about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.git-blame-ignore-revs4
-rw-r--r--.github/CODEOWNERS22
-rw-r--r--.github/labeler.yml18
-rw-r--r--.github/workflows/basic-eval.yml2
-rw-r--r--.github/workflows/check-by-name.yml12
-rw-r--r--.github/workflows/check-cherry-picks.yml1
-rw-r--r--.github/workflows/check-nix-format.yml3
-rw-r--r--.github/workflows/manual-nixos.yml2
-rw-r--r--.github/workflows/manual-nixpkgs.yml2
-rw-r--r--.mailmap1
-rw-r--r--CONTRIBUTING.md9
-rw-r--r--README.md4
-rw-r--r--doc/build-helpers/fetchers.chapter.md6
-rw-r--r--doc/build-helpers/images/dockertools.section.md6
-rw-r--r--doc/build-helpers/images/makediskimage.section.md6
-rw-r--r--doc/build-helpers/testers.chapter.md78
-rw-r--r--doc/default.nix21
-rw-r--r--doc/doc-support/python-interpreter-table.nix63
-rw-r--r--doc/functions/library/.gitkeep0
-rw-r--r--doc/hooks/waf.section.md4
-rw-r--r--doc/languages-frameworks/android.section.md122
-rw-r--r--doc/languages-frameworks/dart.section.md4
-rw-r--r--doc/languages-frameworks/dotnet.section.md1
-rw-r--r--doc/languages-frameworks/hare.section.md53
-rw-r--r--doc/languages-frameworks/haskell.section.md63
-rw-r--r--doc/languages-frameworks/index.md1
-rw-r--r--doc/languages-frameworks/javascript.section.md65
-rw-r--r--doc/languages-frameworks/nim.section.md6
-rw-r--r--doc/languages-frameworks/python.section.md122
-rw-r--r--doc/languages-frameworks/rust.section.md14
-rw-r--r--doc/packages/linux.section.md20
-rw-r--r--doc/stdenv.md1
-rw-r--r--doc/stdenv/meta.chapter.md77
-rw-r--r--doc/stdenv/passthru.chapter.md157
-rw-r--r--doc/stdenv/stdenv.chapter.md165
-rw-r--r--doc/style.css5
-rw-r--r--flake.nix22
-rw-r--r--lib/cli.nix11
-rw-r--r--lib/fixed-points.nix152
-rw-r--r--lib/licenses.nix17
-rw-r--r--lib/systems/default.nix3
-rw-r--r--lib/systems/examples.nix11
-rw-r--r--lib/systems/flake-systems.nix4
-rw-r--r--lib/systems/parse.nix1
-rw-r--r--lib/systems/platforms.nix4
-rw-r--r--lib/tests/misc.nix21
-rw-r--r--lib/tests/release.nix4
-rw-r--r--lib/trivial.nix62
-rw-r--r--maintainers/maintainer-list.nix2540
-rwxr-xr-xmaintainers/scripts/copy-tarballs.pl2
-rwxr-xr-xmaintainers/scripts/kde/collect-metadata.py9
-rwxr-xr-xmaintainers/scripts/kde/collect-missing-deps.py8
-rw-r--r--maintainers/scripts/kde/utils.py39
-rw-r--r--maintainers/scripts/luarocks-packages.csv5
-rw-r--r--maintainers/scripts/nixpkgs-lint.nix8
-rw-r--r--maintainers/scripts/pluginupdate.py5
-rw-r--r--maintainers/team-list.nix199
-rw-r--r--nixos/README.md2
-rw-r--r--nixos/doc/manual/configuration/gpu-accel.chapter.md28
-rw-r--r--nixos/doc/manual/configuration/x-windows.chapter.md19
-rw-r--r--nixos/doc/manual/development/bootspec.chapter.md17
-rw-r--r--nixos/doc/manual/development/running-nixos-tests-interactively.section.md2
-rw-r--r--nixos/doc/manual/installation/upgrading.chapter.md16
-rw-r--r--nixos/doc/manual/release-notes/rl-2111.section.md2
-rw-r--r--nixos/doc/manual/release-notes/rl-2211.section.md2
-rw-r--r--nixos/doc/manual/release-notes/rl-2405.section.md154
-rw-r--r--nixos/doc/manual/release-notes/rl-2411.section.md83
-rw-r--r--nixos/lib/systemd-lib.nix24
-rw-r--r--nixos/lib/systemd-network-units.nix27
-rw-r--r--nixos/lib/test-driver/default.nix13
-rw-r--r--nixos/lib/test-driver/test_driver/driver.py1
-rw-r--r--nixos/lib/test-driver/test_driver/logger.py3
-rw-r--r--nixos/maintainers/scripts/ec2/README.md35
-rw-r--r--nixos/maintainers/scripts/ec2/amazon-image.nix6
-rwxr-xr-xnixos/maintainers/scripts/ec2/create-amis.sh368
-rw-r--r--nixos/maintainers/scripts/lxd/lxd-container-image.nix2
-rw-r--r--nixos/maintainers/scripts/lxd/lxd-virtual-machine-image.nix3
-rw-r--r--nixos/modules/config/no-x-libs.nix9
-rw-r--r--nixos/modules/config/xdg/portal.nix2
-rw-r--r--nixos/modules/hardware/graphics.nix126
-rw-r--r--nixos/modules/hardware/opengl.nix161
-rw-r--r--nixos/modules/hardware/printers.nix2
-rw-r--r--nixos/modules/hardware/video/amdgpu-pro.nix69
-rw-r--r--nixos/modules/hardware/video/nvidia.nix41
-rw-r--r--nixos/modules/hardware/video/virtualbox.nix7
-rw-r--r--nixos/modules/hardware/xone.nix2
-rw-r--r--nixos/modules/image/repart-image.nix4
-rw-r--r--nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma5.nix4
-rw-r--r--nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix4
-rw-r--r--nixos/modules/installer/netboot/netboot.nix4
-rw-r--r--nixos/modules/misc/locate.nix154
-rw-r--r--nixos/modules/misc/version.nix4
-rw-r--r--nixos/modules/module-list.nix22
-rw-r--r--nixos/modules/programs/bash/bash-completion.nix16
-rw-r--r--nixos/modules/programs/bash/bash.nix2
-rw-r--r--nixos/modules/programs/coolercontrol.nix8
-rw-r--r--nixos/modules/programs/fzf.nix2
-rw-r--r--nixos/modules/programs/gdk-pixbuf.nix (renamed from nixos/modules/services/x11/gdk-pixbuf.nix)12
-rw-r--r--nixos/modules/programs/kubeswitch.nix18
-rw-r--r--nixos/modules/programs/ladybird.nix14
-rw-r--r--nixos/modules/programs/less.nix4
-rw-r--r--nixos/modules/programs/miriway.nix2
-rw-r--r--nixos/modules/programs/pantheon-tweaks.nix17
-rw-r--r--nixos/modules/programs/shadow.nix239
-rw-r--r--nixos/modules/programs/steam.nix48
-rw-r--r--nixos/modules/programs/thunderbird.nix89
-rw-r--r--nixos/modules/programs/turbovnc.nix4
-rw-r--r--nixos/modules/programs/wayland/hyprland.nix104
-rw-r--r--nixos/modules/programs/wayland/hyprlock.nix25
-rw-r--r--nixos/modules/programs/wayland/lib.nix12
-rw-r--r--nixos/modules/programs/wayland/river.nix58
-rw-r--r--nixos/modules/programs/wayland/sway.nix178
-rw-r--r--nixos/modules/programs/wayland/wayland-session.nix40
-rw-r--r--nixos/modules/programs/ydotool.nix25
-rw-r--r--nixos/modules/rename.nix8
-rw-r--r--nixos/modules/security/acme/default.nix2
-rw-r--r--nixos/modules/security/krb5/default.nix18
-rw-r--r--nixos/modules/security/krb5/krb5-conf-format.nix73
-rw-r--r--nixos/modules/services/admin/docuum.nix30
-rw-r--r--nixos/modules/services/audio/alsa.nix3
-rw-r--r--nixos/modules/services/audio/mopidy.nix1
-rw-r--r--nixos/modules/services/audio/navidrome.nix2
-rw-r--r--nixos/modules/services/backup/borgbackup.nix2
-rw-r--r--nixos/modules/services/cluster/rke2/default.nix311
-rw-r--r--nixos/modules/services/continuous-integration/hydra/default.nix2
-rw-r--r--nixos/modules/services/databases/postgresql.md21
-rw-r--r--nixos/modules/services/desktop-managers/lomiri.nix15
-rw-r--r--nixos/modules/services/desktop-managers/plasma6.nix7
-rw-r--r--nixos/modules/services/desktops/espanso.nix1
-rw-r--r--nixos/modules/services/display-managers/default.nix4
-rw-r--r--nixos/modules/services/editors/emacs.nix7
-rw-r--r--nixos/modules/services/games/archisteamfarm.nix9
-rw-r--r--nixos/modules/services/hardware/amdgpu.nix43
-rw-r--r--nixos/modules/services/hardware/amdvlk.nix59
-rw-r--r--nixos/modules/services/hardware/handheld-daemon.nix2
-rw-r--r--nixos/modules/services/hardware/kanata.nix23
-rw-r--r--nixos/modules/services/hardware/nvidia-container-toolkit/default.nix8
-rw-r--r--nixos/modules/services/hardware/nvidia-optimus.nix2
-rw-r--r--nixos/modules/services/hardware/power-profiles-daemon.nix6
-rw-r--r--nixos/modules/services/home-automation/ebusd.nix2
-rw-r--r--nixos/modules/services/home-automation/wyoming/faster-whisper.nix3
-rw-r--r--nixos/modules/services/home-automation/wyoming/openwakeword.nix3
-rw-r--r--nixos/modules/services/home-automation/wyoming/piper.nix3
-rw-r--r--nixos/modules/services/logging/journalwatch.nix4
-rw-r--r--nixos/modules/services/mail/postsrsd.nix9
-rw-r--r--nixos/modules/services/mail/public-inbox.nix2
-rw-r--r--nixos/modules/services/mail/stalwart-mail.nix186
-rw-r--r--nixos/modules/services/matrix/synapse.nix2
-rw-r--r--nixos/modules/services/misc/amazon-ssm-agent.nix8
-rw-r--r--nixos/modules/services/misc/anki-sync-server.md2
-rw-r--r--nixos/modules/services/misc/devpi-server.nix8
-rw-r--r--nixos/modules/services/misc/forgejo.nix179
-rw-r--r--nixos/modules/services/misc/gitea.nix2
-rw-r--r--nixos/modules/services/misc/gollum.nix2
-rw-r--r--nixos/modules/services/misc/graphical-desktop.nix2
-rw-r--r--nixos/modules/services/misc/invidious-router.nix4
-rw-r--r--nixos/modules/services/misc/jellyfin.nix2
-rw-r--r--nixos/modules/services/misc/mqtt2influxdb.nix3
-rw-r--r--nixos/modules/services/misc/ollama.nix39
-rw-r--r--nixos/modules/services/misc/open-webui.nix114
-rw-r--r--nixos/modules/services/misc/pghero.nix142
-rw-r--r--nixos/modules/services/misc/portunus.nix9
-rw-r--r--nixos/modules/services/misc/renovate.nix153
-rw-r--r--nixos/modules/services/misc/snapper.nix4
-rw-r--r--nixos/modules/services/monitoring/alloy.nix80
-rw-r--r--nixos/modules/services/monitoring/grafana.nix100
-rw-r--r--nixos/modules/services/monitoring/loki.nix1
-rw-r--r--nixos/modules/services/monitoring/prometheus/default.nix4
-rw-r--r--nixos/modules/services/monitoring/scrutiny.nix4
-rw-r--r--nixos/modules/services/monitoring/zabbix-proxy.nix2
-rw-r--r--nixos/modules/services/network-filesystems/davfs2.nix50
-rw-r--r--nixos/modules/services/network-filesystems/samba.nix6
-rw-r--r--nixos/modules/services/networking/adguardhome.nix11
-rw-r--r--nixos/modules/services/networking/aria2.nix165
-rw-r--r--nixos/modules/services/networking/ddclient.nix22
-rw-r--r--nixos/modules/services/networking/frr.nix27
-rw-r--r--nixos/modules/services/networking/git-daemon.nix4
-rw-r--r--nixos/modules/services/networking/inadyn.nix2
-rw-r--r--nixos/modules/services/networking/kea.nix3
-rw-r--r--nixos/modules/services/networking/mihomo.nix1
-rw-r--r--nixos/modules/services/networking/mycelium.nix2
-rw-r--r--nixos/modules/services/networking/netbird/coturn.nix7
-rw-r--r--nixos/modules/services/networking/netbird/server.nix33
-rw-r--r--nixos/modules/services/networking/oink.nix84
-rw-r--r--nixos/modules/services/networking/rosenpass.nix4
-rw-r--r--nixos/modules/services/networking/ssh/sshd.nix60
-rw-r--r--nixos/modules/services/networking/tailscale-auth.nix2
-rw-r--r--nixos/modules/services/networking/tailscale.nix23
-rw-r--r--nixos/modules/services/networking/wireguard.nix10
-rw-r--r--nixos/modules/services/networking/wstunnel.nix198
-rw-r--r--nixos/modules/services/search/qdrant.nix1
-rw-r--r--nixos/modules/services/search/quickwit.nix190
-rw-r--r--nixos/modules/services/security/bitwarden-directory-connector-cli.nix1
-rw-r--r--nixos/modules/services/security/oauth2-proxy-nginx.nix19
-rw-r--r--nixos/modules/services/security/oauth2-proxy.nix4
-rw-r--r--nixos/modules/services/security/vaultwarden/default.nix47
-rw-r--r--nixos/modules/services/system/dbus.nix8
-rw-r--r--nixos/modules/services/system/kerberos/default.nix84
-rw-r--r--nixos/modules/services/system/kerberos/heimdal.nix105
-rw-r--r--nixos/modules/services/system/kerberos/kerberos-server.md55
-rw-r--r--nixos/modules/services/system/kerberos/mit.nix78
-rw-r--r--nixos/modules/services/system/nix-daemon.nix2
-rw-r--r--nixos/modules/services/torrent/flood.nix85
-rw-r--r--nixos/modules/services/ttys/getty.nix3
-rw-r--r--nixos/modules/services/ttys/kmscon.nix2
-rw-r--r--nixos/modules/services/video/frigate.nix4
-rw-r--r--nixos/modules/services/video/photonvision.nix2
-rw-r--r--nixos/modules/services/wayland/cage.nix2
-rw-r--r--nixos/modules/services/wayland/hypridle.nix26
-rw-r--r--nixos/modules/services/web-apps/akkoma.nix16
-rw-r--r--nixos/modules/services/web-apps/firefly-iii.nix94
-rw-r--r--nixos/modules/services/web-apps/freshrss.nix15
-rw-r--r--nixos/modules/services/web-apps/invoiceplane.nix34
-rw-r--r--nixos/modules/services/web-apps/mastodon.nix67
-rw-r--r--nixos/modules/services/web-apps/mealie.nix3
-rw-r--r--nixos/modules/services/web-apps/nextcloud-notify_push.nix3
-rw-r--r--nixos/modules/services/web-apps/nextcloud.nix18
-rw-r--r--nixos/modules/services/web-apps/nextjs-ollama-llm-ui.nix87
-rw-r--r--nixos/modules/services/web-apps/node-red.nix12
-rw-r--r--nixos/modules/services/web-apps/pretix.nix4
-rw-r--r--nixos/modules/services/web-apps/slskd.nix2
-rw-r--r--nixos/modules/services/web-servers/garage.nix2
-rw-r--r--nixos/modules/services/web-servers/nginx/tailscale-auth.nix4
-rw-r--r--nixos/modules/services/x11/desktop-managers/pantheon.nix5
-rw-r--r--nixos/modules/services/x11/desktop-managers/phosh.nix2
-rw-r--r--nixos/modules/services/x11/desktop-managers/plasma5.nix2
-rw-r--r--nixos/modules/services/x11/desktop-managers/xfce.nix2
-rw-r--r--nixos/modules/services/x11/window-managers/qtile.nix39
-rw-r--r--nixos/modules/services/x11/xserver.nix7
-rw-r--r--nixos/modules/system/boot/initrd-ssh.nix2
-rw-r--r--nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py3
-rw-r--r--nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix6
-rw-r--r--nixos/modules/system/boot/networkd.nix265
-rw-r--r--nixos/modules/system/boot/resolved.nix143
-rw-r--r--nixos/modules/system/boot/stage-1-init.sh1
-rw-r--r--nixos/modules/system/boot/systemd.nix11
-rw-r--r--nixos/modules/system/boot/systemd/coredump.nix2
-rw-r--r--nixos/modules/system/boot/systemd/sysusers.nix21
-rw-r--r--nixos/modules/system/boot/systemd/user.nix12
-rw-r--r--nixos/modules/system/etc/build-composefs-dump.py35
-rw-r--r--nixos/modules/system/etc/etc.nix2
-rw-r--r--nixos/modules/tasks/network-interfaces-scripted.nix6
-rw-r--r--nixos/modules/tasks/network-interfaces-systemd.nix121
-rw-r--r--nixos/modules/virtualisation/containerd.nix1
-rw-r--r--nixos/modules/virtualisation/docker.nix4
-rw-r--r--nixos/modules/virtualisation/lxd-agent.nix2
-rw-r--r--nixos/modules/virtualisation/oci-containers.nix11
-rw-r--r--nixos/modules/virtualisation/proxmox-image.nix83
-rw-r--r--nixos/modules/virtualisation/proxmox-lxc.nix11
-rw-r--r--nixos/modules/virtualisation/virtualbox-guest.nix11
-rw-r--r--nixos/modules/virtualisation/virtualbox-host.nix2
-rw-r--r--nixos/release-combined.nix3
-rw-r--r--nixos/release-small.nix2
-rw-r--r--nixos/tests/acme.nix8
-rw-r--r--nixos/tests/activation/etc-overlay-immutable.nix4
-rw-r--r--nixos/tests/all-tests.nix20
-rw-r--r--nixos/tests/alloy.nix32
-rw-r--r--nixos/tests/aria2.nix43
-rw-r--r--nixos/tests/armagetronad.nix2
-rw-r--r--nixos/tests/ayatana-indicators.nix8
-rw-r--r--nixos/tests/cagebreak.nix6
-rw-r--r--nixos/tests/centrifugo.nix8
-rw-r--r--nixos/tests/clatd.nix97
-rw-r--r--nixos/tests/domination.nix4
-rw-r--r--nixos/tests/firefly-iii.nix99
-rw-r--r--nixos/tests/flood.nix27
-rw-r--r--nixos/tests/forgejo.nix8
-rw-r--r--nixos/tests/gnome-extensions.nix5
-rw-r--r--nixos/tests/grafana/provision/default.nix41
-rw-r--r--nixos/tests/greetd-no-shadow.nix49
-rw-r--r--nixos/tests/kea.nix1
-rw-r--r--nixos/tests/kerberos/heimdal.nix2
-rw-r--r--nixos/tests/kerberos/mit.nix2
-rw-r--r--nixos/tests/kernel-generic.nix1
-rw-r--r--nixos/tests/kubernetes/base.nix2
-rw-r--r--nixos/tests/kubo/default.nix4
-rw-r--r--nixos/tests/kubo/kubo-fuse.nix2
-rw-r--r--nixos/tests/ladybird.nix4
-rw-r--r--nixos/tests/lomiri-filemanager-app.nix48
-rw-r--r--nixos/tests/lomiri.nix18
-rw-r--r--nixos/tests/lvm2/default.nix4
-rw-r--r--nixos/tests/lvm2/systemd-stage-1.nix14
-rw-r--r--nixos/tests/mealie.nix2
-rw-r--r--nixos/tests/misc.nix318
-rw-r--r--nixos/tests/monado.nix2
-rw-r--r--nixos/tests/mpv.nix2
-rw-r--r--nixos/tests/musescore.nix34
-rw-r--r--nixos/tests/mycelium/default.nix3
-rw-r--r--nixos/tests/nextcloud/basic.nix104
-rw-r--r--nixos/tests/nextcloud/default.nix121
-rw-r--r--nixos/tests/nextcloud/with-mysql-and-memcached.nix58
-rw-r--r--nixos/tests/nextcloud/with-objectstore.nix96
-rw-r--r--nixos/tests/nextcloud/with-postgresql-and-redis.nix84
-rw-r--r--nixos/tests/nix/misc.nix64
-rw-r--r--nixos/tests/odoo.nix12
-rw-r--r--nixos/tests/ollama.nix8
-rw-r--r--nixos/tests/open-webui.nix33
-rw-r--r--nixos/tests/openarena.nix2
-rw-r--r--nixos/tests/openssh.nix26
-rw-r--r--nixos/tests/pghero.nix63
-rw-r--r--nixos/tests/phosh.nix2
-rw-r--r--nixos/tests/podman/default.nix29
-rw-r--r--nixos/tests/qtile.nix2
-rw-r--r--nixos/tests/quake3.nix2
-rw-r--r--nixos/tests/quickwit.nix103
-rw-r--r--nixos/tests/renovate.nix69
-rw-r--r--nixos/tests/rke2/default.nix13
-rw-r--r--nixos/tests/rke2/multi-node.nix176
-rw-r--r--nixos/tests/rke2/single-node.nix75
-rw-r--r--nixos/tests/rosenpass.nix14
-rw-r--r--nixos/tests/searx.nix182
-rw-r--r--nixos/tests/seatd.nix2
-rw-r--r--nixos/tests/snapper.nix5
-rw-r--r--nixos/tests/stalwart-mail.nix12
-rw-r--r--nixos/tests/systemd-machinectl.nix24
-rw-r--r--nixos/tests/systemd-networkd-dhcpserver-static-leases.nix38
-rw-r--r--nixos/tests/systemd-networkd-dhcpserver.nix6
-rw-r--r--nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix3
-rw-r--r--nixos/tests/systemd-networkd-vrf.nix4
-rw-r--r--nixos/tests/systemd-networkd.nix18
-rw-r--r--nixos/tests/systemd-resolved.nix75
-rw-r--r--nixos/tests/tayga.nix4
-rw-r--r--nixos/tests/teleport.nix1
-rw-r--r--nixos/tests/tinywl.nix2
-rw-r--r--nixos/tests/turbovnc-headless-server.nix11
-rw-r--r--nixos/tests/vaultwarden.nix271
-rw-r--r--nixos/tests/vector/default.nix1
-rw-r--r--nixos/tests/vector/syslog-quickwit.nix155
-rw-r--r--nixos/tests/web-apps/nextjs-ollama-llm-ui.nix22
-rw-r--r--nixos/tests/web-servers/stargazer.nix15
-rw-r--r--nixos/tests/ydotool.nix257
-rw-r--r--pkgs/README.md185
-rw-r--r--pkgs/applications/accessibility/espeakup/default.nix2
-rw-r--r--pkgs/applications/accessibility/squeekboard/default.nix4
-rw-r--r--pkgs/applications/accessibility/wvkbd/default.nix1
-rw-r--r--pkgs/applications/audio/AMB-plugins/default.nix2
-rw-r--r--pkgs/applications/audio/aether-lv2/default.nix2
-rw-r--r--pkgs/applications/audio/amarok/default.nix18
-rw-r--r--pkgs/applications/audio/amberol/default.nix2
-rw-r--r--pkgs/applications/audio/ams-lv2/default.nix2
-rw-r--r--pkgs/applications/audio/artyFX/default.nix2
-rw-r--r--pkgs/applications/audio/asunder/default.nix2
-rw-r--r--pkgs/applications/audio/aucatctl/default.nix2
-rw-r--r--pkgs/applications/audio/audacious/default.nix2
-rw-r--r--pkgs/applications/audio/autotalent/default.nix2
-rw-r--r--pkgs/applications/audio/bambootracker/default.nix2
-rw-r--r--pkgs/applications/audio/bchoppr/default.nix2
-rw-r--r--pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix2
-rw-r--r--pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix2
-rw-r--r--pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix2
-rw-r--r--pkgs/applications/audio/bolliedelayxt.lv2/default.nix2
-rw-r--r--pkgs/applications/audio/bristol/default.nix2
-rw-r--r--pkgs/applications/audio/brutefir/default.nix2
-rw-r--r--pkgs/applications/audio/buzztrax/default.nix2
-rw-r--r--pkgs/applications/audio/calf/default.nix2
-rw-r--r--pkgs/applications/audio/callaudiod/default.nix2
-rw-r--r--pkgs/applications/audio/cantata/default.nix2
-rw-r--r--pkgs/applications/audio/caps/default.nix2
-rw-r--r--pkgs/applications/audio/cardinal/default.nix5
-rw-r--r--pkgs/applications/audio/carla/default.nix2
-rw-r--r--pkgs/applications/audio/castopod/default.nix8
-rw-r--r--pkgs/applications/audio/caudec/default.nix2
-rw-r--r--pkgs/applications/audio/cdparanoia/default.nix2
-rw-r--r--pkgs/applications/audio/cheesecutter/default.nix2
-rw-r--r--pkgs/applications/audio/cider/default.nix6
-rw-r--r--pkgs/applications/audio/clementine/default.nix2
-rw-r--r--pkgs/applications/audio/clerk/default.nix2
-rw-r--r--pkgs/applications/audio/cozy/default.nix2
-rw-r--r--pkgs/applications/audio/csa/default.nix2
-rw-r--r--pkgs/applications/audio/csound/csound-manual/default.nix2
-rw-r--r--pkgs/applications/audio/delayarchitect/default.nix2
-rw-r--r--pkgs/applications/audio/diopser/default.nix2
-rw-r--r--pkgs/applications/audio/dirt/default.nix2
-rw-r--r--pkgs/applications/audio/dolbybcsoftwaredecode/default.nix2
-rw-r--r--pkgs/applications/audio/dragonfly-reverb/default.nix2
-rw-r--r--pkgs/applications/audio/drumgizmo/default.nix2
-rw-r--r--pkgs/applications/audio/drumkv1/default.nix2
-rw-r--r--pkgs/applications/audio/dsf2flac/default.nix2
-rw-r--r--pkgs/applications/audio/easyaudiosync/0001-fix-project-name.patch13
-rw-r--r--pkgs/applications/audio/easyaudiosync/0002-fix-qt67-deprecated-methods.patch21
-rw-r--r--pkgs/applications/audio/easyaudiosync/0003-fix-darwin-app.patch35
-rw-r--r--pkgs/applications/audio/easyaudiosync/0004-force-qt6.patch21
-rw-r--r--pkgs/applications/audio/easyaudiosync/default.nix98
-rw-r--r--pkgs/applications/audio/easyeffects/default.nix2
-rw-r--r--pkgs/applications/audio/easytag/default.nix66
-rw-r--r--pkgs/applications/audio/exact-audio-copy/default.nix2
-rw-r--r--pkgs/applications/audio/exaile/default.nix4
-rw-r--r--pkgs/applications/audio/famistudio/default.nix9
-rw-r--r--pkgs/applications/audio/faust/faustlive.nix2
-rw-r--r--pkgs/applications/audio/faustPhysicalModeling/default.nix2
-rw-r--r--pkgs/applications/audio/feishin/default.nix4
-rw-r--r--pkgs/applications/audio/fmsynth/default.nix2
-rw-r--r--pkgs/applications/audio/fomp/default.nix2
-rw-r--r--pkgs/applications/audio/freac/default.nix2
-rw-r--r--pkgs/applications/audio/freewheeling/default.nix2
-rw-r--r--pkgs/applications/audio/friture/default.nix2
-rw-r--r--pkgs/applications/audio/ft2-clone/default.nix2
-rw-r--r--pkgs/applications/audio/fverb/default.nix2
-rw-r--r--pkgs/applications/audio/g4music/default.nix6
-rw-r--r--pkgs/applications/audio/geonkick/default.nix2
-rw-r--r--pkgs/applications/audio/giada/default.nix20
-rw-r--r--pkgs/applications/audio/gmpc/default.nix2
-rw-r--r--pkgs/applications/audio/goattracker/default.nix2
-rw-r--r--pkgs/applications/audio/goodvibes/default.nix18
-rw-r--r--pkgs/applications/audio/gpodder/default.nix2
-rw-r--r--pkgs/applications/audio/greg/default.nix2
-rw-r--r--pkgs/applications/audio/gspeech/default.nix2
-rw-r--r--pkgs/applications/audio/guitarix/default.nix2
-rw-r--r--pkgs/applications/audio/gxplugins-lv2/default.nix2
-rw-r--r--pkgs/applications/audio/headset/default.nix2
-rw-r--r--pkgs/applications/audio/helio-workstation/default.nix4
-rw-r--r--pkgs/applications/audio/helm/default.nix2
-rw-r--r--pkgs/applications/audio/helvum/default.nix2
-rw-r--r--pkgs/applications/audio/id3v2/default.nix2
-rw-r--r--pkgs/applications/audio/in-formant/default.nix2
-rw-r--r--pkgs/applications/audio/infamousPlugins/default.nix2
-rw-r--r--pkgs/applications/audio/ingen/default.nix2
-rw-r--r--pkgs/applications/audio/jack-capture/default.nix2
-rw-r--r--pkgs/applications/audio/jack-oscrolloscope/default.nix2
-rw-r--r--pkgs/applications/audio/jack-passthrough/default.nix2
-rw-r--r--pkgs/applications/audio/jalv/default.nix2
-rw-r--r--pkgs/applications/audio/jamesdsp/default.nix2
-rw-r--r--pkgs/applications/audio/japa/default.nix2
-rw-r--r--pkgs/applications/audio/jconvolver/default.nix2
-rw-r--r--pkgs/applications/audio/kid3/default.nix2
-rw-r--r--pkgs/applications/audio/klystrack/default.nix2
-rw-r--r--pkgs/applications/audio/ladspa-sdk/default.nix2
-rw-r--r--pkgs/applications/audio/lash/default.nix2
-rw-r--r--pkgs/applications/audio/ledfx/default.nix6
-rw-r--r--pkgs/applications/audio/listenbrainz-mpd/default.nix6
-rw-r--r--pkgs/applications/audio/littlegptracker/default.nix2
-rw-r--r--pkgs/applications/audio/lollypop/default.nix2
-rw-r--r--pkgs/applications/audio/lpd8editor/default.nix2
-rw-r--r--pkgs/applications/audio/lsp-plugins/default.nix4
-rw-r--r--pkgs/applications/audio/luppp/default.nix2
-rw-r--r--pkgs/applications/audio/lv2bm/default.nix2
-rw-r--r--pkgs/applications/audio/m4acut/default.nix2
-rw-r--r--pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix2
-rw-r--r--pkgs/applications/audio/magnetophonDSP/CompBus/default.nix2
-rw-r--r--pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix2
-rw-r--r--pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix2
-rw-r--r--pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix2
-rw-r--r--pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix2
-rw-r--r--pkgs/applications/audio/mda-lv2/default.nix2
-rw-r--r--pkgs/applications/audio/melmatcheq.lv2/default.nix2
-rw-r--r--pkgs/applications/audio/mid2key/default.nix2
-rw-r--r--pkgs/applications/audio/midivisualizer/default.nix (renamed from pkgs/applications/audio/midi-visualizer/default.nix)12
-rw-r--r--pkgs/applications/audio/miniaudicle/default.nix2
-rw-r--r--pkgs/applications/audio/minidsp/default.nix2
-rw-r--r--pkgs/applications/audio/miniplayer/default.nix2
-rw-r--r--pkgs/applications/audio/mixxx/default.nix6
-rw-r--r--pkgs/applications/audio/moc/default.nix2
-rw-r--r--pkgs/applications/audio/mod-arpeggiator-lv2/default.nix2
-rw-r--r--pkgs/applications/audio/mopidy/iris.nix2
-rw-r--r--pkgs/applications/audio/mopidy/moped.nix2
-rw-r--r--pkgs/applications/audio/mopidy/mopidy.nix2
-rw-r--r--pkgs/applications/audio/mopidy/mopify.nix2
-rw-r--r--pkgs/applications/audio/mopidy/musicbox-webclient.nix2
-rw-r--r--pkgs/applications/audio/mopidy/scrobbler.nix2
-rw-r--r--pkgs/applications/audio/mousai/paths.patch13
-rw-r--r--pkgs/applications/audio/mp3blaster/default.nix2
-rw-r--r--pkgs/applications/audio/mp3val/default.nix2
-rw-r--r--pkgs/applications/audio/mpc/default.nix2
-rw-r--r--pkgs/applications/audio/mpc123/default.nix2
-rw-r--r--pkgs/applications/audio/mpd-touch-screen-gui/default.nix2
-rw-r--r--pkgs/applications/audio/mpdevil/default.nix56
-rw-r--r--pkgs/applications/audio/munt/libmt32emu.nix2
-rw-r--r--pkgs/applications/audio/munt/mt32emu-qt.nix2
-rw-r--r--pkgs/applications/audio/museeks/default.nix2
-rw-r--r--pkgs/applications/audio/musescore/default.nix16
-rw-r--r--pkgs/applications/audio/music-player/default.nix2
-rw-r--r--pkgs/applications/audio/musly/default.nix2
-rw-r--r--pkgs/applications/audio/muso/default.nix2
-rw-r--r--pkgs/applications/audio/mympd/default.nix2
-rw-r--r--pkgs/applications/audio/ncmpcpp/default.nix2
-rw-r--r--pkgs/applications/audio/ncpamixer/default.nix2
-rw-r--r--pkgs/applications/audio/new-session-manager/default.nix2
-rw-r--r--pkgs/applications/audio/noise-repellent/default.nix2
-rw-r--r--pkgs/applications/audio/open-music-kontrollers/jit.nix2
-rw-r--r--pkgs/applications/audio/open-music-kontrollers/mephisto.nix2
-rw-r--r--pkgs/applications/audio/open-music-kontrollers/midi_matrix.nix2
-rw-r--r--pkgs/applications/audio/open-music-kontrollers/orbit.nix2
-rw-r--r--pkgs/applications/audio/open-music-kontrollers/patchmatrix.nix2
-rw-r--r--pkgs/applications/audio/open-music-kontrollers/router.nix2
-rw-r--r--pkgs/applications/audio/open-music-kontrollers/vm.nix2
-rw-r--r--pkgs/applications/audio/orca-c/default.nix2
-rw-r--r--pkgs/applications/audio/osmid/default.nix2
-rw-r--r--pkgs/applications/audio/oxefmsynth/default.nix2
-rw-r--r--pkgs/applications/audio/parlatype/default.nix10
-rw-r--r--pkgs/applications/audio/parrot/default.nix2
-rw-r--r--pkgs/applications/audio/pbpctrl/default.nix2
-rw-r--r--pkgs/applications/audio/pd-plugins/cyclone/default.nix2
-rw-r--r--pkgs/applications/audio/pd-plugins/maxlib/default.nix2
-rw-r--r--pkgs/applications/audio/pd-plugins/mrpeach/default.nix2
-rw-r--r--pkgs/applications/audio/pd-plugins/timbreid/default.nix2
-rw-r--r--pkgs/applications/audio/pd-plugins/zexy/default.nix2
-rw-r--r--pkgs/applications/audio/pianobar/default.nix2
-rw-r--r--pkgs/applications/audio/pianobooster/default.nix2
-rw-r--r--pkgs/applications/audio/picard/default.nix2
-rw-r--r--pkgs/applications/audio/picoloop/default.nix2
-rw-r--r--pkgs/applications/audio/plexamp/default.nix19
-rwxr-xr-xpkgs/applications/audio/plexamp/update-plexamp.sh5
-rw-r--r--pkgs/applications/audio/plugin-torture/default.nix2
-rw-r--r--pkgs/applications/audio/plujain-ramp/default.nix2
-rw-r--r--pkgs/applications/audio/pmidi/default.nix2
-rw-r--r--pkgs/applications/audio/pms/default.nix2
-rw-r--r--pkgs/applications/audio/polyphone/default.nix2
-rw-r--r--pkgs/applications/audio/pragha/default.nix2
-rw-r--r--pkgs/applications/audio/psst/default.nix6
-rw-r--r--pkgs/applications/audio/psst/make-build-reproducible.patch2
-rw-r--r--pkgs/applications/audio/pt2-clone/default.nix2
-rw-r--r--pkgs/applications/audio/puddletag/default.nix2
-rw-r--r--pkgs/applications/audio/pulseaudio-dlna/default.nix2
-rw-r--r--pkgs/applications/audio/pulseaudio-dlna/zeroconf.nix2
-rw-r--r--pkgs/applications/audio/pwvucontrol/Cargo.lock355
-rw-r--r--pkgs/applications/audio/pwvucontrol/default.nix8
-rw-r--r--pkgs/applications/audio/pyradio/default.nix4
-rw-r--r--pkgs/applications/audio/qjackctl/default.nix2
-rw-r--r--pkgs/applications/audio/qmidiarp/default.nix2
-rw-r--r--pkgs/applications/audio/qmidinet/default.nix2
-rw-r--r--pkgs/applications/audio/qpwgraph/default.nix2
-rw-r--r--pkgs/applications/audio/radioboat/default.nix2
-rw-r--r--pkgs/applications/audio/radiotray-ng/default.nix2
-rw-r--r--pkgs/applications/audio/reaper/default.nix8
-rwxr-xr-xpkgs/applications/audio/reaper/updater.sh8
-rw-r--r--pkgs/applications/audio/rhvoice/default.nix2
-rw-r--r--pkgs/applications/audio/rhythmbox/default.nix3
-rw-r--r--pkgs/applications/audio/rofi-mpd/default.nix2
-rw-r--r--pkgs/applications/audio/samplebrain/default.nix2
-rw-r--r--pkgs/applications/audio/samplv1/default.nix2
-rw-r--r--pkgs/applications/audio/setbfree/default.nix2
-rw-r--r--pkgs/applications/audio/sfxr-qt/default.nix2
-rw-r--r--pkgs/applications/audio/sfxr/default.nix2
-rw-r--r--pkgs/applications/audio/sidplayfp/default.nix6
-rw-r--r--pkgs/applications/audio/sonata/default.nix2
-rw-r--r--pkgs/applications/audio/songrec/default.nix2
-rw-r--r--pkgs/applications/audio/sony-headphones-client/default.nix2
-rw-r--r--pkgs/applications/audio/sooperlooper/default.nix2
-rw-r--r--pkgs/applications/audio/sorcer/default.nix2
-rw-r--r--pkgs/applications/audio/sound-juicer/default.nix2
-rw-r--r--pkgs/applications/audio/soundtracker/default.nix2
-rw-r--r--pkgs/applications/audio/spectrojack/default.nix2
-rw-r--r--pkgs/applications/audio/spotify-cli-linux/default.nix2
-rw-r--r--pkgs/applications/audio/spotify-player/default.nix8
-rw-r--r--pkgs/applications/audio/spotifyd/default.nix2
-rw-r--r--pkgs/applications/audio/squishyball/default.nix2
-rw-r--r--pkgs/applications/audio/ssrc/default.nix2
-rw-r--r--pkgs/applications/audio/stone-phaser/default.nix2
-rw-r--r--pkgs/applications/audio/subtitlr/default.nix2
-rw-r--r--pkgs/applications/audio/synthv1/default.nix2
-rw-r--r--pkgs/applications/audio/tageditor/default.nix2
-rw-r--r--pkgs/applications/audio/tagger/default.nix2
-rw-r--r--pkgs/applications/audio/tambura/default.nix2
-rw-r--r--pkgs/applications/audio/tauon/default.nix2
-rw-r--r--pkgs/applications/audio/tidal-hifi/default.nix8
-rw-r--r--pkgs/applications/audio/tone/default.nix2
-rw-r--r--pkgs/applications/audio/tonelib-gfx/default.nix2
-rw-r--r--pkgs/applications/audio/touchosc/default.nix8
-rw-r--r--pkgs/applications/audio/tuner/default.nix2
-rw-r--r--pkgs/applications/audio/vgmstream/default.nix2
-rw-r--r--pkgs/applications/audio/vimpc/default.nix2
-rw-r--r--pkgs/applications/audio/viper4linux/default.nix2
-rw-r--r--pkgs/applications/audio/vocal/default.nix2
-rw-r--r--pkgs/applications/audio/vocproc/default.nix2
-rw-r--r--pkgs/applications/audio/waon/default.nix2
-rw-r--r--pkgs/applications/audio/waylyrics/default.nix6
-rw-r--r--pkgs/applications/audio/whipper/default.nix12
-rw-r--r--pkgs/applications/audio/x42-avldrums/default.nix4
-rw-r--r--pkgs/applications/audio/yasr/default.nix2
-rw-r--r--pkgs/applications/audio/youtube-music/default.nix59
-rw-r--r--pkgs/applications/audio/zam-plugins/default.nix2
-rw-r--r--pkgs/applications/audio/zita-at1/default.nix4
-rw-r--r--pkgs/applications/audio/zynaddsubfx/mruby-zest/default.nix2
-rw-r--r--pkgs/applications/backup/deja-dup/default.nix2
-rw-r--r--pkgs/applications/backup/ludusavi/default.nix8
-rw-r--r--pkgs/applications/backup/proxmox-backup-client/default.nix2
-rw-r--r--pkgs/applications/backup/restic-integrity/default.nix17
-rw-r--r--pkgs/applications/backup/timeshift/unwrapped.nix6
-rw-r--r--pkgs/applications/backup/unifi-protect-backup/default.nix28
-rw-r--r--pkgs/applications/backup/urbackup-client/default.nix6
-rw-r--r--pkgs/applications/backup/vdmfec/default.nix2
-rw-r--r--pkgs/applications/blockchains/besu/default.nix29
-rw-r--r--pkgs/applications/blockchains/bisq-desktop/default.nix2
-rw-r--r--pkgs/applications/blockchains/bitcoin-abc/default.nix4
-rw-r--r--pkgs/applications/blockchains/bitcoin-knots/default.nix2
-rw-r--r--pkgs/applications/blockchains/bitcoin/default.nix4
-rw-r--r--pkgs/applications/blockchains/btcd/default.nix2
-rw-r--r--pkgs/applications/blockchains/clightning/default.nix10
-rw-r--r--pkgs/applications/blockchains/dcrctl/default.nix2
-rw-r--r--pkgs/applications/blockchains/dcrwallet/default.nix8
-rw-r--r--pkgs/applications/blockchains/eclair/default.nix2
-rw-r--r--pkgs/applications/blockchains/electrs/default.nix2
-rwxr-xr-xpkgs/applications/blockchains/electrs/update.sh3
-rw-r--r--pkgs/applications/blockchains/erigon/default.nix4
-rw-r--r--pkgs/applications/blockchains/fulcrum/default.nix4
-rw-r--r--pkgs/applications/blockchains/go-ethereum/default.nix6
-rw-r--r--pkgs/applications/blockchains/gridcoin-research/default.nix2
-rw-r--r--pkgs/applications/blockchains/ledger-live-desktop/default.nix4
-rw-r--r--pkgs/applications/blockchains/lightwalletd/default.nix2
-rw-r--r--pkgs/applications/blockchains/litecoin/default.nix2
-rw-r--r--pkgs/applications/blockchains/lnd/default.nix6
-rw-r--r--pkgs/applications/blockchains/lndhub-go/default.nix6
-rw-r--r--pkgs/applications/blockchains/mycrypto/default.nix2
-rw-r--r--pkgs/applications/blockchains/optimism/default.nix6
-rw-r--r--pkgs/applications/blockchains/pivx/default.nix2
-rw-r--r--pkgs/applications/blockchains/polkadot/Cargo.lock979
-rw-r--r--pkgs/applications/blockchains/polkadot/default.nix15
-rw-r--r--pkgs/applications/blockchains/quorum/default.nix15
-rw-r--r--pkgs/applications/blockchains/quorum/go.mod.patch12
-rw-r--r--pkgs/applications/blockchains/snarkos/default.nix2
-rw-r--r--pkgs/applications/blockchains/sparrow/default.nix2
-rw-r--r--pkgs/applications/blockchains/sparrow/openimajgrabber.nix2
-rw-r--r--pkgs/applications/blockchains/sumokoin/default.nix2
-rw-r--r--pkgs/applications/blockchains/teos/default.nix4
-rwxr-xr-xpkgs/applications/blockchains/teos/update.sh3
-rw-r--r--pkgs/applications/blockchains/terra-station/default.nix2
-rw-r--r--pkgs/applications/blockchains/ton/default.nix6
-rw-r--r--pkgs/applications/blockchains/trezor-suite/default.nix6
-rw-r--r--pkgs/applications/blockchains/vertcoin/default.nix2
-rw-r--r--pkgs/applications/blockchains/wasabiwallet/default.nix4
-rw-r--r--pkgs/applications/blockchains/zecwallet-lite/default.nix2
-rw-r--r--pkgs/applications/display-managers/emptty/default.nix6
-rw-r--r--pkgs/applications/display-managers/greetd/dlm.nix2
-rw-r--r--pkgs/applications/display-managers/greetd/tuigreet.nix19
-rw-r--r--pkgs/applications/display-managers/greetd/wlgreet.nix6
-rw-r--r--pkgs/applications/display-managers/lemurs/default.nix5
-rw-r--r--pkgs/applications/display-managers/lightdm-mini-greeter/default.nix2
-rw-r--r--pkgs/applications/display-managers/lightdm-mobile-greeter/default.nix2
-rw-r--r--pkgs/applications/display-managers/lightdm-slick-greeter/default.nix45
-rw-r--r--pkgs/applications/display-managers/lightdm-tiny-greeter/default.nix2
-rw-r--r--pkgs/applications/display-managers/lightdm/default.nix2
-rw-r--r--pkgs/applications/display-managers/lightdm/gtk-greeter.nix2
-rw-r--r--pkgs/applications/editors/amp/default.nix2
-rw-r--r--pkgs/applications/editors/android-studio/common.nix63
-rw-r--r--pkgs/applications/editors/aseprite/default.nix112
-rwxr-xr-xpkgs/applications/editors/aseprite/skia-make-deps.sh37
-rw-r--r--pkgs/applications/editors/aseprite/skia.nix80
-rw-r--r--pkgs/applications/editors/bluefish/default.nix2
-rw-r--r--pkgs/applications/editors/bluej/default.nix2
-rw-r--r--pkgs/applications/editors/codeblocks/default.nix2
-rw-r--r--pkgs/applications/editors/cpeditor/default.nix2
-rw-r--r--pkgs/applications/editors/dhex/default.nix2
-rw-r--r--pkgs/applications/editors/dit/default.nix2
-rw-r--r--pkgs/applications/editors/eclipse/plugins.nix18
-rw-r--r--pkgs/applications/editors/ed/generic.nix2
-rw-r--r--pkgs/applications/editors/ed/sources.nix2
-rw-r--r--pkgs/applications/editors/edit/default.nix2
-rw-r--r--pkgs/applications/editors/elvis/default.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/elpa-devel-generated.nix494
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix210
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix4
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/agda-input/default.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/color-theme-solarized/default.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/consult-gh/default.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/copilot/default.nix4
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/ebuild-mode/default.nix4
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/el-easydraw/default.nix22
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/enlight/default.nix27
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/evil-markdown/default.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/font-lock-plus/default.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/ghc-mod/default.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/git-undo/default.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/grid/default.nix24
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/helm-words/default.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/idris2-mode/default.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/isearch-plus/default.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/isearch-prop/default.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/jam-mode/default.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/ligo-mode/default.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/lsp-bridge/default.nix10
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/lspce/default.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/matrix-client/default.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/mu4e/default.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/rect-mark/default.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/sunrise-commander/default.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/sv-kalender/default.nix4
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/tree-sitter-langs/default.nix5
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/tsc/default.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/voicemacs/default.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/wat-mode/default.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/xapian-lite/default.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/yes-no/default.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/youtube-dl/default.nix4
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix59
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json2915
-rwxr-xr-xpkgs/applications/editors/emacs/elisp-packages/update-from-overlay.flake.sh9
-rw-r--r--pkgs/applications/editors/emacs/sources.nix2
-rw-r--r--pkgs/applications/editors/gnome-builder/default.nix14
-rw-r--r--pkgs/applications/editors/gnome-latex/default.nix2
-rw-r--r--pkgs/applications/editors/gobby/default.nix2
-rw-r--r--pkgs/applications/editors/greenfoot/default.nix2
-rw-r--r--pkgs/applications/editors/heh/default.nix2
-rw-r--r--pkgs/applications/editors/helix/default.nix2
-rw-r--r--pkgs/applications/editors/hexdino/default.nix2
-rw-r--r--pkgs/applications/editors/howl/default.nix2
-rw-r--r--pkgs/applications/editors/jed/default.nix2
-rw-r--r--pkgs/applications/editors/jedit/default.nix2
-rw-r--r--pkgs/applications/editors/jetbrains/bin/linux.nix2
-rw-r--r--pkgs/applications/editors/jetbrains/bin/versions.json506
-rw-r--r--pkgs/applications/editors/jetbrains/plugins/default.nix35
-rw-r--r--pkgs/applications/editors/jetbrains/plugins/plugins.json347
-rw-r--r--pkgs/applications/editors/jetbrains/source/build.nix4
-rw-r--r--pkgs/applications/editors/joe/default.nix2
-rw-r--r--pkgs/applications/editors/jupp/default.nix2
-rw-r--r--pkgs/applications/editors/jupyter-kernels/clojupyter/default.nix2
-rw-r--r--pkgs/applications/editors/jupyter-kernels/octave/kernel.nix2
-rw-r--r--pkgs/applications/editors/jupyter-kernels/wolfram/kernel.nix2
-rw-r--r--pkgs/applications/editors/kakoune/default.nix2
-rw-r--r--pkgs/applications/editors/kibi/default.nix2
-rw-r--r--pkgs/applications/editors/leafpad/default.nix2
-rw-r--r--pkgs/applications/editors/lite-xl/default.nix2
-rw-r--r--pkgs/applications/editors/lite/default.nix2
-rw-r--r--pkgs/applications/editors/manuskript/default.nix2
-rw-r--r--pkgs/applications/editors/music/tuxguitar/default.nix2
-rw-r--r--pkgs/applications/editors/nano/default.nix2
-rw-r--r--pkgs/applications/editors/ne/default.nix2
-rw-r--r--pkgs/applications/editors/nedit/default.nix2
-rw-r--r--pkgs/applications/editors/neovim/neovim-remote.nix2
-rw-r--r--pkgs/applications/editors/neovim/tests/default.nix2
-rw-r--r--pkgs/applications/editors/neovim/wrapper.nix2
-rw-r--r--pkgs/applications/editors/netbeans/default.nix6
-rw-r--r--pkgs/applications/editors/notepad-next/default.nix2
-rw-r--r--pkgs/applications/editors/nvi/default.nix2
-rw-r--r--pkgs/applications/editors/nvpy/default.nix2
-rw-r--r--pkgs/applications/editors/okteta/default.nix2
-rw-r--r--pkgs/applications/editors/ox/default.nix2
-rw-r--r--pkgs/applications/editors/pixelorama/default.nix2
-rw-r--r--pkgs/applications/editors/poke/default.nix4
-rw-r--r--pkgs/applications/editors/qxw/default.nix2
-rw-r--r--pkgs/applications/editors/rednotebook/default.nix2
-rw-r--r--pkgs/applications/editors/rstudio/default.nix26
-rw-r--r--pkgs/applications/editors/rstudio/use-system-node.patch15
-rw-r--r--pkgs/applications/editors/standardnotes/default.nix2
-rw-r--r--pkgs/applications/editors/sublime/4/common.nix5
-rw-r--r--pkgs/applications/editors/sublime/4/packages.nix6
-rw-r--r--pkgs/applications/editors/teehee/default.nix2
-rw-r--r--pkgs/applications/editors/texstudio/default.nix4
-rw-r--r--pkgs/applications/editors/textadept/default.nix2
-rw-r--r--pkgs/applications/editors/thonny/default.nix1
-rw-r--r--pkgs/applications/editors/tijolo/default.nix35
-rw-r--r--pkgs/applications/editors/tijolo/shards.nix41
-rw-r--r--pkgs/applications/editors/tweak/default.nix2
-rw-r--r--pkgs/applications/editors/typora/default.nix2
-rw-r--r--pkgs/applications/editors/vbindiff/default.nix2
-rw-r--r--pkgs/applications/editors/vim/common.nix6
-rw-r--r--pkgs/applications/editors/vim/default.nix10
-rw-r--r--pkgs/applications/editors/vim/plugins/deprecated.json6
-rw-r--r--pkgs/applications/editors/vim/plugins/generated.nix2184
-rw-r--r--pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix458
-rw-r--r--pkgs/applications/editors/vim/plugins/overrides.nix38
-rw-r--r--pkgs/applications/editors/vim/plugins/patches/vim-sensible/fix-nix-store-path-regex.patch16
-rw-r--r--pkgs/applications/editors/vim/plugins/vim-clap/Cargo.lock193
-rw-r--r--pkgs/applications/editors/vim/plugins/vim-clap/default.nix6
-rw-r--r--pkgs/applications/editors/vim/plugins/vim-plugin-names18
-rw-r--r--pkgs/applications/editors/vscode/extensions/README.md5
-rw-r--r--pkgs/applications/editors/vscode/extensions/chenglou92.rescript-vscode/default.nix6
-rw-r--r--pkgs/applications/editors/vscode/extensions/contextmapper.context-mapper-vscode-extension/default.nix2
-rw-r--r--pkgs/applications/editors/vscode/extensions/default.nix618
-rw-r--r--pkgs/applications/editors/vscode/extensions/equinusocio.vsc-material-theme/default.nix2
-rw-r--r--pkgs/applications/editors/vscode/extensions/eugleo.magic-racket/default.nix2
-rw-r--r--pkgs/applications/editors/vscode/extensions/jackmacwindows.craftos-pc/default.nix2
-rw-r--r--pkgs/applications/editors/vscode/extensions/jebbs.plantuml/default.nix2
-rw-r--r--pkgs/applications/editors/vscode/extensions/kamadorueda.alejandra/default.nix2
-rw-r--r--pkgs/applications/editors/vscode/extensions/mgt19937.typst-preview/default.nix4
-rw-r--r--pkgs/applications/editors/vscode/extensions/ms-dotnettools.csdevkit/default.nix2
-rw-r--r--pkgs/applications/editors/vscode/extensions/ms-python.python/default.nix2
-rw-r--r--pkgs/applications/editors/vscode/extensions/ms-python.vscode-pylance/default.nix6
-rw-r--r--pkgs/applications/editors/vscode/extensions/ms-toolsai.jupyter/default.nix4
-rw-r--r--pkgs/applications/editors/vscode/extensions/ms-vscode-remote.remote-ssh/default.nix2
-rw-r--r--pkgs/applications/editors/vscode/extensions/ms-vscode.cpptools/default.nix23
-rw-r--r--pkgs/applications/editors/vscode/extensions/myriad-dreamin.tinymist/default.nix8
-rw-r--r--pkgs/applications/editors/vscode/extensions/nvarner.typst-lsp/default.nix2
-rw-r--r--pkgs/applications/editors/vscode/extensions/reditorsupport.r/default.nix2
-rw-r--r--pkgs/applications/editors/vscode/extensions/rust-lang.rust-analyzer/default.nix2
-rw-r--r--pkgs/applications/editors/vscode/extensions/sourcery.sourcery/default.nix10
-rw-r--r--pkgs/applications/editors/vscode/extensions/sumneko.lua/default.nix2
-rw-r--r--pkgs/applications/editors/vscode/extensions/tekumara.typos-vscode/default.nix12
-rw-r--r--pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/default.nix2
-rw-r--r--pkgs/applications/editors/vscode/vscode.nix16
-rw-r--r--pkgs/applications/editors/vscode/vscodium.nix12
-rw-r--r--pkgs/applications/editors/wily/default.nix2
-rw-r--r--pkgs/applications/editors/xed-editor/default.nix4
-rw-r--r--pkgs/applications/editors/xmlcopyeditor/default.nix2
-rw-r--r--pkgs/applications/editors/yi/wrapper.nix37
-rw-r--r--pkgs/applications/editors/zee/default.nix2
-rw-r--r--pkgs/applications/emulators/86box/default.nix3
-rwxr-xr-xpkgs/applications/emulators/86box/update.sh12
-rw-r--r--pkgs/applications/emulators/attract-mode/default.nix2
-rw-r--r--pkgs/applications/emulators/box64/default.nix108
-rw-r--r--pkgs/applications/emulators/bsnes/bsnes-hd/default.nix2
-rw-r--r--pkgs/applications/emulators/bsnes/higan/default.nix2
-rw-r--r--pkgs/applications/emulators/c64-debugger/default.nix2
-rw-r--r--pkgs/applications/emulators/caprice32/default.nix2
-rw-r--r--pkgs/applications/emulators/ccemux/default.nix2
-rw-r--r--pkgs/applications/emulators/cdemu/common-drv-attrs.nix2
-rw-r--r--pkgs/applications/emulators/cen64/default.nix2
-rw-r--r--pkgs/applications/emulators/craftos-pc/default.nix2
-rw-r--r--pkgs/applications/emulators/desmume/default.nix2
-rw-r--r--pkgs/applications/emulators/dlx/default.nix2
-rw-r--r--pkgs/applications/emulators/dolphin-emu/default.nix45
-rw-r--r--pkgs/applications/emulators/dolphin-emu/find-minizip-ng.patch8
-rw-r--r--pkgs/applications/emulators/dosbox-x/default.nix2
-rw-r--r--pkgs/applications/emulators/dosbox/default.nix2
-rw-r--r--pkgs/applications/emulators/dynamips/default.nix2
-rw-r--r--pkgs/applications/emulators/emu2/default.nix2
-rw-r--r--pkgs/applications/emulators/fceux/default.nix2
-rw-r--r--pkgs/applications/emulators/flycast/default.nix2
-rw-r--r--pkgs/applications/emulators/gens-gs/default.nix2
-rw-r--r--pkgs/applications/emulators/libdsk/default.nix2
-rw-r--r--pkgs/applications/emulators/mame/default.nix6
-rw-r--r--pkgs/applications/emulators/mupen64plus/default.nix2
-rw-r--r--pkgs/applications/emulators/np2kai/default.nix2
-rw-r--r--pkgs/applications/emulators/openmsx/default.nix2
-rw-r--r--pkgs/applications/emulators/punes/default.nix11
-rw-r--r--pkgs/applications/emulators/retroarch/cores.nix6
-rw-r--r--pkgs/applications/emulators/retroarch/default.nix4
-rw-r--r--pkgs/applications/emulators/retroarch/hashes.json162
-rw-r--r--pkgs/applications/emulators/retroarch/libretro-core-info.nix4
-rw-r--r--pkgs/applications/emulators/retroarch/retroarch-assets.nix6
-rw-r--r--pkgs/applications/emulators/retroarch/retroarch-joypad-autoconfig.nix4
-rw-r--r--pkgs/applications/emulators/retrofe/default.nix2
-rw-r--r--pkgs/applications/emulators/ripes/default.nix2
-rw-r--r--pkgs/applications/emulators/ruffle/default.nix88
-rw-r--r--pkgs/applications/emulators/sameboy/default.nix4
-rw-r--r--pkgs/applications/emulators/simh/default.nix2
-rw-r--r--pkgs/applications/emulators/simplenes/default.nix2
-rw-r--r--pkgs/applications/emulators/tamatool/default.nix2
-rw-r--r--pkgs/applications/emulators/tiny8086/default.nix2
-rw-r--r--pkgs/applications/emulators/tinyemu/default.nix2
-rw-r--r--pkgs/applications/emulators/vbam/default.nix2
-rw-r--r--pkgs/applications/emulators/wine/base.nix2
-rw-r--r--pkgs/applications/emulators/wine/sources.nix6
-rw-r--r--pkgs/applications/emulators/wine/winetricks.nix2
-rw-r--r--pkgs/applications/emulators/xcpc/default.nix2
-rw-r--r--pkgs/applications/emulators/yabause/default.nix2
-rw-r--r--pkgs/applications/emulators/zsnes/2.x.nix2
-rw-r--r--pkgs/applications/emulators/zsnes/default.nix2
-rw-r--r--pkgs/applications/file-managers/browsr/default.nix2
-rw-r--r--pkgs/applications/file-managers/clifm/default.nix4
-rw-r--r--pkgs/applications/file-managers/lf/default.nix2
-rw-r--r--pkgs/applications/file-managers/portfolio-filemanager/default.nix2
-rw-r--r--pkgs/applications/file-managers/projectable/default.nix2
-rw-r--r--pkgs/applications/file-managers/spacefm/default.nix2
-rw-r--r--pkgs/applications/file-managers/vifm/default.nix2
-rw-r--r--pkgs/applications/file-managers/xplorer/default.nix2
-rwxr-xr-xpkgs/applications/finance/odoo/update.sh27
-rw-r--r--pkgs/applications/gis/qgis/unwrapped-ltr.nix2
-rw-r--r--pkgs/applications/gis/qgis/unwrapped.nix2
-rw-r--r--pkgs/applications/gis/spatialite-tools/default.nix2
-rw-r--r--pkgs/applications/gis/tunnelx/default.nix2
-rw-r--r--pkgs/applications/gis/whitebox-tools/default.nix46
-rw-r--r--pkgs/applications/graphics/ImageMagick/6.x.nix2
-rw-r--r--pkgs/applications/graphics/ImageMagick/default.nix7
-rw-r--r--pkgs/applications/graphics/ahoviewer/default.nix2
-rw-r--r--pkgs/applications/graphics/antimony/default.nix2
-rw-r--r--pkgs/applications/graphics/apitrace/default.nix4
-rw-r--r--pkgs/applications/graphics/artem/default.nix2
-rw-r--r--pkgs/applications/graphics/avocode/default.nix2
-rw-r--r--pkgs/applications/graphics/awesomebump/default.nix2
-rw-r--r--pkgs/applications/graphics/brlcad/default.nix25
-rw-r--r--pkgs/applications/graphics/ciano/default.nix2
-rw-r--r--pkgs/applications/graphics/cloudcompare/default.nix4
-rw-r--r--pkgs/applications/graphics/curtail/default.nix4
-rw-r--r--pkgs/applications/graphics/curv/default.nix2
-rw-r--r--pkgs/applications/graphics/deskew/default.nix2
-rw-r--r--pkgs/applications/graphics/djv/default.nix2
-rw-r--r--pkgs/applications/graphics/djview/default.nix26
-rw-r--r--pkgs/applications/graphics/dosage/default.nix2
-rw-r--r--pkgs/applications/graphics/drawing/default.nix2
-rw-r--r--pkgs/applications/graphics/drawio/default.nix10
-rw-r--r--pkgs/applications/graphics/drawpile/default.nix2
-rw-r--r--pkgs/applications/graphics/emulsion/default.nix2
-rw-r--r--pkgs/applications/graphics/f3d/default.nix8
-rw-r--r--pkgs/applications/graphics/feh/default.nix2
-rw-r--r--pkgs/applications/graphics/figma-linux/default.nix4
-rw-r--r--pkgs/applications/graphics/flaca/default.nix2
-rw-r--r--pkgs/applications/graphics/fstl/default.nix2
-rw-r--r--pkgs/applications/graphics/gcolor3/default.nix2
-rw-r--r--pkgs/applications/graphics/gimp/default.nix2
-rw-r--r--pkgs/applications/graphics/gimp/plugins/default.nix2
-rw-r--r--pkgs/applications/graphics/gnome-obfuscate/default.nix6
-rw-r--r--pkgs/applications/graphics/gpicview/default.nix2
-rw-r--r--pkgs/applications/graphics/gqview/default.nix2
-rw-r--r--pkgs/applications/graphics/grafx2/default.nix2
-rw-r--r--pkgs/applications/graphics/gscan2pdf/default.nix2
-rw-r--r--pkgs/applications/graphics/gscreenshot/default.nix2
-rw-r--r--pkgs/applications/graphics/hydrus/default.nix4
-rw-r--r--pkgs/applications/graphics/identity/default.nix2
-rw-r--r--pkgs/applications/graphics/img-cat/default.nix2
-rw-r--r--pkgs/applications/graphics/imlibsetroot/default.nix2
-rw-r--r--pkgs/applications/graphics/imv/default.nix2
-rw-r--r--pkgs/applications/graphics/inkscape/default.nix3
-rw-r--r--pkgs/applications/graphics/inkscape/extensions/silhouette/default.nix2
-rw-r--r--pkgs/applications/graphics/inkscape/fix-ps2pdf-path.patch4
-rw-r--r--pkgs/applications/graphics/inkscape/test-ps2pdf-plugin.nix27
-rw-r--r--pkgs/applications/graphics/ipe/default.nix2
-rw-r--r--pkgs/applications/graphics/json-plot/default.nix2
-rw-r--r--pkgs/applications/graphics/kgraphviewer/default.nix2
-rw-r--r--pkgs/applications/graphics/komikku/default.nix5
-rw-r--r--pkgs/applications/graphics/komorebi/default.nix2
-rw-r--r--pkgs/applications/graphics/krita/generic.nix2
-rw-r--r--pkgs/applications/graphics/litemdview/default.nix2
-rw-r--r--pkgs/applications/graphics/luminance-hdr/default.nix2
-rw-r--r--pkgs/applications/graphics/mandelbulber/default.nix2
-rw-r--r--pkgs/applications/graphics/mangareader/default.nix54
-rw-r--r--pkgs/applications/graphics/meh/default.nix2
-rw-r--r--pkgs/applications/graphics/meme-image-generator/default.nix2
-rw-r--r--pkgs/applications/graphics/meshlab/default.nix2
-rw-r--r--pkgs/applications/graphics/mtpaint/default.nix2
-rw-r--r--pkgs/applications/graphics/mypaint/default.nix2
-rw-r--r--pkgs/applications/graphics/oculante/default.nix2
-rw-r--r--pkgs/applications/graphics/pbrt/default.nix2
-rw-r--r--pkgs/applications/graphics/pdfcpu/default.nix2
-rw-r--r--pkgs/applications/graphics/photoflare/default.nix2
-rw-r--r--pkgs/applications/graphics/phototonic/default.nix2
-rw-r--r--pkgs/applications/graphics/pick-colour-picker/default.nix2
-rw-r--r--pkgs/applications/graphics/pika/default.nix2
-rw-r--r--pkgs/applications/graphics/pixeluvo/default.nix2
-rw-r--r--pkgs/applications/graphics/pizarra/default.nix2
-rw-r--r--pkgs/applications/graphics/potrace/default.nix2
-rw-r--r--pkgs/applications/graphics/processing/default.nix2
-rw-r--r--pkgs/applications/graphics/pymeshlab/default.nix2
-rw-r--r--pkgs/applications/graphics/qimgv/default.nix2
-rw-r--r--pkgs/applications/graphics/qosmic/default.nix2
-rw-r--r--pkgs/applications/graphics/rnote/default.nix2
-rw-r--r--pkgs/applications/graphics/sane/config.nix4
-rw-r--r--pkgs/applications/graphics/solvespace/default.nix2
-rw-r--r--pkgs/applications/graphics/synfigstudio/default.nix2
-rw-r--r--pkgs/applications/graphics/tev/default.nix2
-rw-r--r--pkgs/applications/graphics/textual-paint/default.nix2
-rw-r--r--pkgs/applications/graphics/trimage/default.nix2
-rw-r--r--pkgs/applications/graphics/unigine-heaven/default.nix3
-rw-r--r--pkgs/applications/graphics/unigine-sanctuary/default.nix2
-rw-r--r--pkgs/applications/graphics/unigine-superposition/default.nix2
-rw-r--r--pkgs/applications/graphics/unigine-tropics/default.nix2
-rw-r--r--pkgs/applications/graphics/unigine-valley/default.nix2
-rw-r--r--pkgs/applications/graphics/upscayl/default.nix4
-rw-r--r--pkgs/applications/graphics/vengi-tools/default.nix4
-rw-r--r--pkgs/applications/graphics/veusz/default.nix2
-rw-r--r--pkgs/applications/graphics/vkdt/default.nix2
-rw-r--r--pkgs/applications/graphics/xfig/default.nix2
-rw-r--r--pkgs/applications/graphics/xpano/default.nix2
-rw-r--r--pkgs/applications/graphics/xrgears/default.nix2
-rw-r--r--pkgs/applications/graphics/yacreader/default.nix2
-rw-r--r--pkgs/applications/graphics/yed/default.nix2
-rw-r--r--pkgs/applications/kde/angelfish.nix9
-rw-r--r--pkgs/applications/kde/arianna.nix2
-rw-r--r--pkgs/applications/kde/bomber.nix2
-rw-r--r--pkgs/applications/kde/dragon.nix2
-rw-r--r--pkgs/applications/kde/elisa.nix2
-rw-r--r--pkgs/applications/kde/ghostwriter.nix2
-rw-r--r--pkgs/applications/kde/kalgebra.nix2
-rw-r--r--pkgs/applications/kde/kamoso.nix2
-rw-r--r--pkgs/applications/kde/kcharselect.nix2
-rw-r--r--pkgs/applications/kde/kdiamond.nix2
-rw-r--r--pkgs/applications/kde/kgpg.nix2
-rw-r--r--pkgs/applications/kde/kigo.nix2
-rw-r--r--pkgs/applications/kde/killbots.nix2
-rw-r--r--pkgs/applications/kde/kio-admin.nix2
-rw-r--r--pkgs/applications/kde/klettres.nix2
-rw-r--r--pkgs/applications/kde/klines.nix2
-rw-r--r--pkgs/applications/kde/kmag.nix2
-rw-r--r--pkgs/applications/kde/kmines.nix2
-rw-r--r--pkgs/applications/kde/knetwalk.nix2
-rw-r--r--pkgs/applications/kde/knights.nix2
-rw-r--r--pkgs/applications/kde/kollision.nix2
-rw-r--r--pkgs/applications/kde/kongress.nix2
-rw-r--r--pkgs/applications/kde/kreversi.nix2
-rw-r--r--pkgs/applications/kde/kshisen.nix2
-rw-r--r--pkgs/applications/kde/ksquares.nix2
-rw-r--r--pkgs/applications/kde/kteatime.nix2
-rw-r--r--pkgs/applications/kde/ktimer.nix2
-rw-r--r--pkgs/applications/kde/ktouch.nix2
-rw-r--r--pkgs/applications/kde/kturtle.nix2
-rw-r--r--pkgs/applications/kde/kwave.nix2
-rw-r--r--pkgs/applications/kde/libktorrent.nix2
-rw-r--r--pkgs/applications/kde/merkuro.nix2
-rw-r--r--pkgs/applications/kde/neochat.nix2
-rw-r--r--pkgs/applications/kde/palapeli.nix2
-rw-r--r--pkgs/applications/kde/rocs.nix2
-rw-r--r--pkgs/applications/kde/telly-skout.nix2
-rw-r--r--pkgs/applications/kde/tokodon.nix2
-rw-r--r--pkgs/applications/kde/umbrello.nix2
-rw-r--r--pkgs/applications/kde/zanshin.nix2
-rw-r--r--pkgs/applications/misc/1password-gui/default.nix18
-rw-r--r--pkgs/applications/misc/1password/default.nix10
-rw-r--r--pkgs/applications/misc/ArchiSteamFarm/default.nix26
-rw-r--r--pkgs/applications/misc/ArchiSteamFarm/deps.nix89
-rw-r--r--pkgs/applications/misc/ArchiSteamFarm/web-ui/default.nix8
-rw-r--r--pkgs/applications/misc/acpic/default.nix2
-rw-r--r--pkgs/applications/misc/actiona/default.nix2
-rw-r--r--pkgs/applications/misc/activate-linux/default.nix2
-rw-r--r--pkgs/applications/misc/albert/default.nix2
-rw-r--r--pkgs/applications/misc/anup/default.nix2
-rw-r--r--pkgs/applications/misc/archivy/default.nix3
-rw-r--r--pkgs/applications/misc/artha/default.nix2
-rw-r--r--pkgs/applications/misc/audio/soxr/default.nix2
-rw-r--r--pkgs/applications/misc/auto-multiple-choice/default.nix2
-rw-r--r--pkgs/applications/misc/avizo/default.nix2
-rw-r--r--pkgs/applications/misc/azuredatastudio/default.nix2
-rw-r--r--pkgs/applications/misc/base16-universal-manager/default.nix2
-rw-r--r--pkgs/applications/misc/bashSnippets/default.nix2
-rw-r--r--pkgs/applications/misc/bibletime/default.nix2
-rw-r--r--pkgs/applications/misc/bicon/default.nix2
-rw-r--r--pkgs/applications/misc/bitwarden-menu/default.nix23
-rw-r--r--pkgs/applications/misc/bleachbit/default.nix6
-rw-r--r--pkgs/applications/misc/blogc/default.nix2
-rw-r--r--pkgs/applications/misc/boatswain/default.nix2
-rw-r--r--pkgs/applications/misc/bottles/default.nix2
-rw-r--r--pkgs/applications/misc/calcure/default.nix4
-rw-r--r--pkgs/applications/misc/calcurse/default.nix2
-rw-r--r--pkgs/applications/misc/calibre/default.nix4
-rw-r--r--pkgs/applications/misc/cardpeek/default.nix2
-rw-r--r--pkgs/applications/misc/cartridges/default.nix6
-rw-r--r--pkgs/applications/misc/cataract/build.nix2
-rw-r--r--pkgs/applications/misc/chatblade/default.nix2
-rw-r--r--pkgs/applications/misc/cherrytree/default.nix2
-rw-r--r--pkgs/applications/misc/cipher/default.nix2
-rw-r--r--pkgs/applications/misc/clight/default.nix2
-rw-r--r--pkgs/applications/misc/cobang/default.nix2
-rw-r--r--pkgs/applications/misc/cointop/default.nix2
-rw-r--r--pkgs/applications/misc/colorstorm/default.nix2
-rw-r--r--pkgs/applications/misc/colort/default.nix2
-rw-r--r--pkgs/applications/misc/coltrane/default.nix2
-rw-r--r--pkgs/applications/misc/comodoro/default.nix2
-rw-r--r--pkgs/applications/misc/conceal/default.nix2
-rw-r--r--pkgs/applications/misc/corectrl/default.nix4
-rw-r--r--pkgs/applications/misc/crow-translate/default.nix2
-rw-r--r--pkgs/applications/misc/ctodo/default.nix2
-rw-r--r--pkgs/applications/misc/cubiomes-viewer/default.nix2
-rw-r--r--pkgs/applications/misc/cubocore-packages/coreaction/default.nix2
-rw-r--r--pkgs/applications/misc/cubocore-packages/corefm/default.nix2
-rw-r--r--pkgs/applications/misc/cubocore-packages/coregarage/default.nix2
-rw-r--r--pkgs/applications/misc/cubocore-packages/corehunt/default.nix2
-rw-r--r--pkgs/applications/misc/cubocore-packages/coreimage/default.nix2
-rw-r--r--pkgs/applications/misc/cubocore-packages/coreinfo/default.nix2
-rw-r--r--pkgs/applications/misc/cubocore-packages/corekeyboard/default.nix2
-rw-r--r--pkgs/applications/misc/cubocore-packages/corepad/default.nix2
-rw-r--r--pkgs/applications/misc/cubocore-packages/corepaint/default.nix2
-rw-r--r--pkgs/applications/misc/cubocore-packages/corepdf/default.nix2
-rw-r--r--pkgs/applications/misc/cubocore-packages/corepins/default.nix2
-rw-r--r--pkgs/applications/misc/cubocore-packages/corerenamer/default.nix2
-rw-r--r--pkgs/applications/misc/cubocore-packages/coreshot/default.nix2
-rw-r--r--pkgs/applications/misc/cubocore-packages/corestats/default.nix2
-rw-r--r--pkgs/applications/misc/cubocore-packages/corestuff/default.nix2
-rw-r--r--pkgs/applications/misc/cubocore-packages/coreterminal/default.nix2
-rw-r--r--pkgs/applications/misc/cubocore-packages/coretime/default.nix2
-rw-r--r--pkgs/applications/misc/cubocore-packages/libcprime/default.nix2
-rw-r--r--pkgs/applications/misc/curaengine/default.nix2
-rw-r--r--pkgs/applications/misc/darkman/default.nix28
-rw-r--r--pkgs/applications/misc/darkman/go-mod.patch28
-rw-r--r--pkgs/applications/misc/darkman/makefile.patch12
-rw-r--r--pkgs/applications/misc/deadd-notification-center/default.nix2
-rw-r--r--pkgs/applications/misc/deckmaster/default.nix2
-rw-r--r--pkgs/applications/misc/deco/default.nix2
-rw-r--r--pkgs/applications/misc/devdocs-desktop/default.nix2
-rw-r--r--pkgs/applications/misc/devilspie2/default.nix2
-rw-r--r--pkgs/applications/misc/dialect/default.nix20
-rw-r--r--pkgs/applications/misc/diebahn/default.nix2
-rw-r--r--pkgs/applications/misc/digitalbitbox/default.nix2
-rw-r--r--pkgs/applications/misc/djvulibre/default.nix2
-rw-r--r--pkgs/applications/misc/dmenu-rs/default.nix2
-rw-r--r--pkgs/applications/misc/dmenu/default.nix2
-rw-r--r--pkgs/applications/misc/dmenu/wayland.nix2
-rw-r--r--pkgs/applications/misc/dnd-tools/default.nix2
-rw-r--r--pkgs/applications/misc/doctave/default.nix2
-rw-r--r--pkgs/applications/misc/doing/default.nix2
-rw-r--r--pkgs/applications/misc/done/default.nix2
-rw-r--r--pkgs/applications/misc/dozenal/default.nix2
-rw-r--r--pkgs/applications/misc/dwmbar/default.nix2
-rw-r--r--pkgs/applications/misc/electron-cash/default.nix2
-rw-r--r--pkgs/applications/misc/electrum/default.nix32
-rw-r--r--pkgs/applications/misc/elfx86exts/default.nix2
-rw-r--r--pkgs/applications/misc/emem/default.nix2
-rw-r--r--pkgs/applications/misc/emoji-picker/default.nix2
-rw-r--r--pkgs/applications/misc/epdfview/default.nix2
-rw-r--r--pkgs/applications/misc/exercism/default.nix2
-rw-r--r--pkgs/applications/misc/expenses/default.nix2
-rw-r--r--pkgs/applications/misc/faircamp/default.nix2
-rw-r--r--pkgs/applications/misc/feedbackd/default.nix4
-rw-r--r--pkgs/applications/misc/fetchmail/default.nix3
-rw-r--r--pkgs/applications/misc/fetchmail/v7.nix2
-rw-r--r--pkgs/applications/misc/ff2mpv/default.nix2
-rw-r--r--pkgs/applications/misc/filet/default.nix2
-rw-r--r--pkgs/applications/misc/findex/default.nix8
-rw-r--r--pkgs/applications/misc/flashprint/default.nix4
-rw-r--r--pkgs/applications/misc/flavours/default.nix2
-rw-r--r--pkgs/applications/misc/fluxboxlauncher/default.nix2
-rw-r--r--pkgs/applications/misc/formatter/default.nix2
-rw-r--r--pkgs/applications/misc/fspy/default.nix2
-rw-r--r--pkgs/applications/misc/fusee-interfacee-tk/default.nix2
-rw-r--r--pkgs/applications/misc/gImageReader/default.nix2
-rw-r--r--pkgs/applications/misc/galculator/default.nix2
-rw-r--r--pkgs/applications/misc/gallery-dl/default.nix35
-rw-r--r--pkgs/applications/misc/ganttproject-bin/default.nix4
-rw-r--r--pkgs/applications/misc/geek-life/default.nix2
-rw-r--r--pkgs/applications/misc/genact/default.nix2
-rw-r--r--pkgs/applications/misc/genesys/default.nix2
-rw-r--r--pkgs/applications/misc/getxbook/default.nix2
-rw-r--r--pkgs/applications/misc/gitit/default.nix79
-rw-r--r--pkgs/applications/misc/glom/default.nix2
-rw-r--r--pkgs/applications/misc/gmnitohtml/default.nix10
-rw-r--r--pkgs/applications/misc/gmtp/default.nix2
-rw-r--r--pkgs/applications/misc/gnome-firmware/default.nix4
-rw-r--r--pkgs/applications/misc/gnome-solanum/default.nix2
-rw-r--r--pkgs/applications/misc/gnome-usage/default.nix2
-rw-r--r--pkgs/applications/misc/goldendict-ng/default.nix2
-rw-r--r--pkgs/applications/misc/goldendict/default.nix2
-rw-r--r--pkgs/applications/misc/gollum/default.nix2
-rw-r--r--pkgs/applications/misc/googleearth-pro/default.nix4
-rw-r--r--pkgs/applications/misc/gopacked/default.nix2
-rw-r--r--pkgs/applications/misc/gphoto2/default.nix2
-rw-r--r--pkgs/applications/misc/gpu-burn/default.nix1
-rw-r--r--pkgs/applications/misc/gpu-viewer/default.nix2
-rw-r--r--pkgs/applications/misc/gpxsee/default.nix4
-rw-r--r--pkgs/applications/misc/gramps/default.nix2
-rw-r--r--pkgs/applications/misc/grb/default.nix2
-rw-r--r--pkgs/applications/misc/gsctl/default.nix2
-rw-r--r--pkgs/applications/misc/gtk2fontsel/default.nix2
-rw-r--r--pkgs/applications/misc/gum/default.nix6
-rw-r--r--pkgs/applications/misc/gxmessage/default.nix2
-rw-r--r--pkgs/applications/misc/harsh/default.nix6
-rw-r--r--pkgs/applications/misc/health/default.nix2
-rw-r--r--pkgs/applications/misc/hello-unfree/default.nix2
-rw-r--r--pkgs/applications/misc/hmm/default.nix2
-rw-r--r--pkgs/applications/misc/holochain-launcher/default.nix4
-rw-r--r--pkgs/applications/misc/houdini/default.nix8
-rw-r--r--pkgs/applications/misc/houdini/runtime.nix4
-rw-r--r--pkgs/applications/misc/hr/default.nix2
-rw-r--r--pkgs/applications/misc/hue-plus/default.nix2
-rw-r--r--pkgs/applications/misc/inherd-quake/default.nix2
-rw-r--r--pkgs/applications/misc/inlyne/default.nix2
-rw-r--r--pkgs/applications/misc/inochi2d/creator-dub-lock.json32
-rw-r--r--pkgs/applications/misc/inochi2d/default.nix8
-rw-r--r--pkgs/applications/misc/inochi2d/session-dub-lock.json32
-rw-r--r--pkgs/applications/misc/insulator2/default.nix2
-rw-r--r--pkgs/applications/misc/j4-dmenu-desktop/default.nix2
-rw-r--r--pkgs/applications/misc/jekyll/default.nix2
-rw-r--r--pkgs/applications/misc/johnny-reborn/default.nix2
-rw-r--r--pkgs/applications/misc/johnny-reborn/with-data.nix2
-rw-r--r--pkgs/applications/misc/joplin-desktop/default.nix2
-rw-r--r--pkgs/applications/misc/jp2a/default.nix2
-rw-r--r--pkgs/applications/misc/k2pdfopt/0001-Fix-CMakeLists.patch16
-rw-r--r--pkgs/applications/misc/k2pdfopt/default.nix56
-rw-r--r--pkgs/applications/misc/k4dirstat/default.nix2
-rw-r--r--pkgs/applications/misc/kaufkauflist/default.nix2
-rw-r--r--pkgs/applications/misc/keepass-diff/default.nix2
-rw-r--r--pkgs/applications/misc/keepass-plugins/keepassrpc/default.nix2
-rw-r--r--pkgs/applications/misc/keepassxc/default.nix6
-rw-r--r--pkgs/applications/misc/keylight-controller-mschneider82/default.nix2
-rw-r--r--pkgs/applications/misc/kickoff/default.nix6
-rw-r--r--pkgs/applications/misc/kile-wl/default.nix2
-rw-r--r--pkgs/applications/misc/kiln/default.nix8
-rw-r--r--pkgs/applications/misc/kiwix/default.nix2
-rw-r--r--pkgs/applications/misc/kiwix/tools.nix2
-rw-r--r--pkgs/applications/misc/kjv/default.nix2
-rw-r--r--pkgs/applications/misc/kord/default.nix2
-rw-r--r--pkgs/applications/misc/kratos/default.nix8
-rw-r--r--pkgs/applications/misc/krename/default.nix2
-rw-r--r--pkgs/applications/misc/ksmoothdock/default.nix2
-rw-r--r--pkgs/applications/misc/kupfer/default.nix2
-rw-r--r--pkgs/applications/misc/latte-dock/default.nix6
-rw-r--r--pkgs/applications/misc/lavalauncher/default.nix2
-rw-r--r--pkgs/applications/misc/llpp/default.nix2
-rw-r--r--pkgs/applications/misc/loxodo/default.nix2
-rw-r--r--pkgs/applications/misc/lswt/default.nix2
-rw-r--r--pkgs/applications/misc/lunatask/default.nix2
-rw-r--r--pkgs/applications/misc/mainsail/default.nix32
-rw-r--r--pkgs/applications/misc/marktext/default.nix2
-rw-r--r--pkgs/applications/misc/mbutil/default.nix2
-rw-r--r--pkgs/applications/misc/mdp/default.nix2
-rw-r--r--pkgs/applications/misc/megacmd/default.nix7
-rw-r--r--pkgs/applications/misc/memo/default.nix2
-rw-r--r--pkgs/applications/misc/mepo/default.nix14
-rw-r--r--pkgs/applications/misc/metamorphose2/default.nix2
-rw-r--r--pkgs/applications/misc/michabo/default.nix2
-rw-r--r--pkgs/applications/misc/minigalaxy/default.nix2
-rw-r--r--pkgs/applications/misc/mission-center/Cargo.lock305
-rw-r--r--pkgs/applications/misc/mission-center/default.nix93
-rw-r--r--pkgs/applications/misc/mission-center/gatherer-Cargo.lock347
-rw-r--r--pkgs/applications/misc/mkgmap/default.nix4
-rw-r--r--pkgs/applications/misc/mnamer/default.nix2
-rw-r--r--pkgs/applications/misc/mobilecoin-wallet/default.nix2
-rw-r--r--pkgs/applications/misc/monitorcontrol/default.nix2
-rw-r--r--pkgs/applications/misc/mpvc/default.nix2
-rw-r--r--pkgs/applications/misc/natural-docs/default.nix2
-rw-r--r--pkgs/applications/misc/navi/default.nix2
-rw-r--r--pkgs/applications/misc/neo4j-desktop/default.nix6
-rw-r--r--pkgs/applications/misc/nixnote2/default.nix2
-rw-r--r--pkgs/applications/misc/notable/default.nix2
-rw-r--r--pkgs/applications/misc/notesnook/default.nix21
-rw-r--r--pkgs/applications/misc/ns-usbloader/default.nix3
-rw-r--r--pkgs/applications/misc/nwg-displays/default.nix4
-rw-r--r--pkgs/applications/misc/nwg-dock-hyprland/default.nix22
-rw-r--r--pkgs/applications/misc/nwg-look/default.nix29
-rw-r--r--pkgs/applications/misc/nwg-look/fix-paths.patch35
-rw-r--r--pkgs/applications/misc/nwg-look/go.mod6
-rw-r--r--pkgs/applications/misc/obsidian/default.nix6
-rw-r--r--pkgs/applications/misc/octoprint/default.nix2
-rw-r--r--pkgs/applications/misc/octoprint/plugins.nix12
-rw-r--r--pkgs/applications/misc/ola/default.nix2
-rw-r--r--pkgs/applications/misc/omegat.nix2
-rw-r--r--pkgs/applications/misc/openbangla-keyboard/default.nix2
-rw-r--r--pkgs/applications/misc/openbrf/default.nix2
-rw-r--r--pkgs/applications/misc/opencpn/default.nix2
-rw-r--r--pkgs/applications/misc/openrgb-plugins/effects/default.nix2
-rw-r--r--pkgs/applications/misc/openring/default.nix2
-rw-r--r--pkgs/applications/misc/organicmaps/default.nix4
-rw-r--r--pkgs/applications/misc/orpie/default.nix2
-rw-r--r--pkgs/applications/misc/oxker/default.nix8
-rw-r--r--pkgs/applications/misc/pagefind/default.nix5
-rw-r--r--pkgs/applications/misc/passky-desktop/default.nix2
-rw-r--r--pkgs/applications/misc/pastel/default.nix2
-rw-r--r--pkgs/applications/misc/pattypan/default.nix2
-rw-r--r--pkgs/applications/misc/pdf-quench/default.nix2
-rw-r--r--pkgs/applications/misc/pdfpc/default.nix2
-rw-r--r--pkgs/applications/misc/pdfslicer/default.nix6
-rw-r--r--pkgs/applications/misc/pdfstudio/common.nix4
-rw-r--r--pkgs/applications/misc/pdfstudio/default.nix3
-rw-r--r--pkgs/applications/misc/peaclock/default.nix2
-rw-r--r--pkgs/applications/misc/pell/default.nix2
-rw-r--r--pkgs/applications/misc/perkeep/default.nix2
-rw-r--r--pkgs/applications/misc/pgmanage/default.nix2
-rw-r--r--pkgs/applications/misc/pgmodeler/default.nix2
-rw-r--r--pkgs/applications/misc/phoc/default.nix4
-rw-r--r--pkgs/applications/misc/pinfo/default.nix2
-rw-r--r--pkgs/applications/misc/pipr/default.nix2
-rw-r--r--pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix2
-rw-r--r--pkgs/applications/misc/plasma-theme-switcher/default.nix2
-rw-r--r--pkgs/applications/misc/please-cli/default.nix2
-rw-r--r--pkgs/applications/misc/polychromatic/default.nix67
-rw-r--r--pkgs/applications/misc/pomodoro/default.nix2
-rw-r--r--pkgs/applications/misc/printrun/default.nix4
-rw-r--r--pkgs/applications/misc/process-compose/default.nix2
-rw-r--r--pkgs/applications/misc/process-viewer/default.nix2
-rw-r--r--pkgs/applications/misc/protonup-qt/default.nix2
-rw-r--r--pkgs/applications/misc/pueue/default.nix8
-rw-r--r--pkgs/applications/misc/pw-viz/default.nix2
-rw-r--r--pkgs/applications/misc/pwsafe/default.nix2
-rw-r--r--pkgs/applications/misc/pysentation/default.nix2
-rw-r--r--pkgs/applications/misc/pytrainer/default.nix1
-rw-r--r--pkgs/applications/misc/q4wine/default.nix2
-rw-r--r--pkgs/applications/misc/qcad/default.nix4
-rw-r--r--pkgs/applications/misc/qlcplus/default.nix6
-rw-r--r--pkgs/applications/misc/qsyncthingtray/default.nix2
-rw-r--r--pkgs/applications/misc/qtpass/default.nix2
-rw-r--r--pkgs/applications/misc/raiseorlaunch/default.nix2
-rw-r--r--pkgs/applications/misc/ratt/default.nix2
-rw-r--r--pkgs/applications/misc/regextester/default.nix2
-rw-r--r--pkgs/applications/misc/remarkable/remarkable-mouse/default.nix2
-rw-r--r--pkgs/applications/misc/remarkable/rmapi/default.nix2
-rw-r--r--pkgs/applications/misc/remnote/default.nix67
-rw-r--r--pkgs/applications/misc/remontoire/default.nix2
-rw-r--r--pkgs/applications/misc/rescuetime/default.nix5
-rw-r--r--pkgs/applications/misc/river-tag-overlay/default.nix2
-rw-r--r--pkgs/applications/misc/rivercarro/default.nix2
-rw-r--r--pkgs/applications/misc/rlaunch/default.nix2
-rw-r--r--pkgs/applications/misc/rofi-emoji/default.nix2
-rw-r--r--pkgs/applications/misc/rofi-top/default.nix2
-rw-r--r--pkgs/applications/misc/rootbar/default.nix2
-rw-r--r--pkgs/applications/misc/rsclock/default.nix2
-rw-r--r--pkgs/applications/misc/rusty-psn/default.nix11
-rw-r--r--pkgs/applications/misc/rusty-psn/fix-cargo-lock.patch13
-rw-r--r--pkgs/applications/misc/safeeyes/default.nix4
-rw-r--r--pkgs/applications/misc/sc-im/default.nix2
-rw-r--r--pkgs/applications/misc/seatd/default.nix2
-rw-r--r--pkgs/applications/misc/selectdefaultapplication/default.nix2
-rw-r--r--pkgs/applications/misc/semver/default.nix2
-rw-r--r--pkgs/applications/misc/sent/default.nix2
-rw-r--r--pkgs/applications/misc/sfwbar/default.nix58
-rw-r--r--pkgs/applications/misc/shavee/default.nix2
-rw-r--r--pkgs/applications/misc/sidequest/default.nix2
-rw-r--r--pkgs/applications/misc/sioyek/default.nix2
-rw-r--r--pkgs/applications/misc/skate/default.nix2
-rw-r--r--pkgs/applications/misc/slippy/default.nix5
-rw-r--r--pkgs/applications/misc/slweb/default.nix2
-rw-r--r--pkgs/applications/misc/snowsql/default.nix4
-rw-r--r--pkgs/applications/misc/spacenav-cube-example/default.nix2
-rw-r--r--pkgs/applications/misc/speedread/default.nix2
-rw-r--r--pkgs/applications/misc/spotify-tray/default.nix2
-rw-r--r--pkgs/applications/misc/sticky/default.nix16
-rw-r--r--pkgs/applications/misc/streamdeck-ui/default.nix106
-rw-r--r--pkgs/applications/misc/streamdeck-ui/update-pillow.patch13
-rw-r--r--pkgs/applications/misc/stretchly/default.nix2
-rw-r--r--pkgs/applications/misc/stw/default.nix2
-rw-r--r--pkgs/applications/misc/stylish/default.nix2
-rw-r--r--pkgs/applications/misc/subsurface/default.nix4
-rw-r--r--pkgs/applications/misc/swappy/default.nix2
-rw-r--r--pkgs/applications/misc/sway-contrib/default.nix11
-rw-r--r--pkgs/applications/misc/sway-launcher-desktop/default.nix2
-rw-r--r--pkgs/applications/misc/swaysettings/default.nix2
-rw-r--r--pkgs/applications/misc/syncthing-tray/default.nix28
-rw-r--r--pkgs/applications/misc/syncthing-tray/deps.nix93
-rw-r--r--pkgs/applications/misc/syncthingtray/default.nix4
-rw-r--r--pkgs/applications/misc/tabula-java/default.nix2
-rw-r--r--pkgs/applications/misc/tabula/default.nix2
-rw-r--r--pkgs/applications/misc/tandoor-recipes/default.nix12
-rw-r--r--pkgs/applications/misc/tango/default.nix2
-rw-r--r--pkgs/applications/misc/taskjuggler/default.nix2
-rw-r--r--pkgs/applications/misc/tasknc/default.nix2
-rw-r--r--pkgs/applications/misc/taskwarrior-tui/default.nix2
-rw-r--r--pkgs/applications/misc/tdrop/default.nix2
-rw-r--r--pkgs/applications/misc/terminal-stocks/default.nix6
-rw-r--r--pkgs/applications/misc/terminal-typeracer/default.nix2
-rw-r--r--pkgs/applications/misc/themechanger/default.nix2
-rw-r--r--pkgs/applications/misc/thokr/default.nix2
-rw-r--r--pkgs/applications/misc/ticker/default.nix6
-rw-r--r--pkgs/applications/misc/tickrs/default.nix6
-rw-r--r--pkgs/applications/misc/timewarrior/default.nix2
-rw-r--r--pkgs/applications/misc/tint2/default.nix4
-rw-r--r--pkgs/applications/misc/todoist-electron/default.nix2
-rw-r--r--pkgs/applications/misc/topydo/default.nix2
-rw-r--r--pkgs/applications/misc/transifex-cli/default.nix2
-rw-r--r--pkgs/applications/misc/translatelocally/default.nix2
-rw-r--r--pkgs/applications/misc/tsukae/default.nix2
-rw-r--r--pkgs/applications/misc/ttdl/default.nix2
-rw-r--r--pkgs/applications/misc/tthsum/default.nix2
-rw-r--r--pkgs/applications/misc/tuckr/default.nix8
-rw-r--r--pkgs/applications/misc/tui-journal/default.nix6
-rw-r--r--pkgs/applications/misc/tut/default.nix2
-rw-r--r--pkgs/applications/misc/twitch-chat-downloader/default.nix15
-rw-r--r--pkgs/applications/misc/twmn/default.nix2
-rw-r--r--pkgs/applications/misc/ulauncher/default.nix7
-rw-r--r--pkgs/applications/misc/uni/default.nix6
-rw-r--r--pkgs/applications/misc/usync/default.nix2
-rw-r--r--pkgs/applications/misc/valent/default.nix2
-rw-r--r--pkgs/applications/misc/valentina/default.nix2
-rw-r--r--pkgs/applications/misc/variety/default.nix2
-rw-r--r--pkgs/applications/misc/vhs/default.nix2
-rw-r--r--pkgs/applications/misc/vp/default.nix28
-rw-r--r--pkgs/applications/misc/vym/default.nix2
-rw-r--r--pkgs/applications/misc/wallust/default.nix2
-rw-r--r--pkgs/applications/misc/warpd/default.nix2
-rw-r--r--pkgs/applications/misc/watershot/default.nix2
-rwxr-xr-xpkgs/applications/misc/waylock/update.nu5
-rw-r--r--pkgs/applications/misc/wcalc/default.nix2
-rw-r--r--pkgs/applications/misc/whalebird/default.nix2
-rw-r--r--pkgs/applications/misc/wikicurses/default.nix2
-rw-r--r--pkgs/applications/misc/wlclock/default.nix2
-rw-r--r--pkgs/applications/misc/wmenu/default.nix2
-rw-r--r--pkgs/applications/misc/wofi/default.nix2
-rw-r--r--pkgs/applications/misc/workrave/default.nix2
-rw-r--r--pkgs/applications/misc/wtf/default.nix2
-rw-r--r--pkgs/applications/misc/xca/default.nix2
-rw-r--r--pkgs/applications/misc/xchm/default.nix2
-rw-r--r--pkgs/applications/misc/xdg-launch/default.nix2
-rw-r--r--pkgs/applications/misc/xiphos/default.nix2
-rw-r--r--pkgs/applications/misc/xkblayout-state/default.nix2
-rw-r--r--pkgs/applications/misc/xmenu/default.nix2
-rw-r--r--pkgs/applications/misc/xmrig/moneroocean.nix2
-rw-r--r--pkgs/applications/misc/xpad/default.nix2
-rw-r--r--pkgs/applications/misc/xsw/default.nix2
-rw-r--r--pkgs/applications/misc/xxkb/default.nix2
-rw-r--r--pkgs/applications/misc/yokadi/default.nix2
-rw-r--r--pkgs/applications/misc/yubioath-flutter/default.nix4
-rw-r--r--pkgs/applications/misc/zathura/cb/default.nix33
-rw-r--r--pkgs/applications/misc/zathura/core/default.nix74
-rw-r--r--pkgs/applications/misc/zathura/default.nix13
-rw-r--r--pkgs/applications/misc/zathura/djvu/default.nix33
-rw-r--r--pkgs/applications/misc/zathura/pdf-mupdf/default.nix52
-rw-r--r--pkgs/applications/misc/zathura/pdf-poppler/default.nix28
-rw-r--r--pkgs/applications/misc/zathura/ps/default.nix33
-rw-r--r--pkgs/applications/misc/zathura/wrapper.nix56
-rw-r--r--pkgs/applications/misc/zettlr/generic.nix2
-rw-r--r--pkgs/applications/misc/zine/default.nix2
-rw-r--r--pkgs/applications/misc/zk-shell/default.nix2
-rw-r--r--pkgs/applications/misc/zktree/default.nix2
-rw-r--r--pkgs/applications/misc/zscroll/default.nix2
-rw-r--r--pkgs/applications/networking/avalanchego/default.nix6
-rw-r--r--pkgs/applications/networking/blocky/default.nix8
-rw-r--r--pkgs/applications/networking/browsers/brave/default.nix12
-rw-r--r--pkgs/applications/networking/browsers/browsh/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/castor/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/chromium/browser.nix2
-rw-r--r--pkgs/applications/networking/browsers/chromium/common.nix61
-rw-r--r--pkgs/applications/networking/browsers/chromium/default.nix13
-rw-r--r--pkgs/applications/networking/browsers/chromium/patches/chromium-126-llvm-17.patch29
-rw-r--r--pkgs/applications/networking/browsers/chromium/patches/chromium-126-rust.patch21
-rw-r--r--pkgs/applications/networking/browsers/chromium/recompress-tarball.nix1
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.nix32
-rw-r--r--pkgs/applications/networking/browsers/eolie/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/ephemeral/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix828
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/developer-edition_sources.nix828
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/release_sources.nix818
-rw-r--r--pkgs/applications/networking/browsers/firefox/bindgen-0.64-clang-18.patch39
-rw-r--r--pkgs/applications/networking/browsers/firefox/common.nix13
-rw-r--r--pkgs/applications/networking/browsers/firefox/packages.nix24
-rw-r--r--pkgs/applications/networking/browsers/firefox/rust-1.78.patch77
-rw-r--r--pkgs/applications/networking/browsers/floorp/default.nix15
-rw-r--r--pkgs/applications/networking/browsers/gmni/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/ladybird/default.nix30
-rw-r--r--pkgs/applications/networking/browsers/ladybird/nixos-font-path.patch12
-rw-r--r--pkgs/applications/networking/browsers/lagrange/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/librewolf/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/librewolf/src.json14
-rw-r--r--pkgs/applications/networking/browsers/links2/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/litebrowser/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/lynx/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/microsoft-edge/browser.nix2
-rw-r--r--pkgs/applications/networking/browsers/microsoft-edge/default.nix12
-rw-r--r--pkgs/applications/networking/browsers/mullvad-browser/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/netsurf/browser.nix2
-rw-r--r--pkgs/applications/networking/browsers/netsurf/libparserutils.nix5
-rw-r--r--pkgs/applications/networking/browsers/opera/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/palemoon/bin.nix15
-rw-r--r--pkgs/applications/networking/browsers/polypane/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/qutebrowser/default.nix8
-rw-r--r--pkgs/applications/networking/browsers/surf/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/tor-browser/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/tor-browser/update.nix3
-rw-r--r--pkgs/applications/networking/browsers/vimb/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/vivaldi/default.nix9
-rwxr-xr-xpkgs/applications/networking/browsers/vivaldi/update-vivaldi.sh3
-rw-r--r--pkgs/applications/networking/browsers/w3m/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/yandex-browser/default.nix19
-rw-r--r--pkgs/applications/networking/calls/default.nix4
-rw-r--r--pkgs/applications/networking/circumflex/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/aiac/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/argo-rollouts/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/argo/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/argocd/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/arkade/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/atlantis/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/atmos/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/bosh-cli/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/cilium/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/civo/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/cmctl/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/cni/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/cni/plugins.nix4
-rw-r--r--pkgs/applications/networking/cluster/containerpilot/default.nix25
-rw-r--r--pkgs/applications/networking/cluster/containerpilot/deps.nix173
-rw-r--r--pkgs/applications/networking/cluster/fetchit/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/flink/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/fn-cli/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/func/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/gatekeeper/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/glooctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/habitat/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/hashi-up/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/helm-dashboard/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/helm-docs/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/helm/chart-testing/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/helm/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix2
-rw-r--r--pkgs/applications/networking/cluster/helm/plugins/helm-git.nix2
-rw-r--r--pkgs/applications/networking/cluster/helm/plugins/helm-mapkubeapis.nix2
-rw-r--r--pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix2
-rw-r--r--pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix2
-rw-r--r--pkgs/applications/networking/cluster/helmfile/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/hetzner-kube/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/hubble/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/inframap/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/istioctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/jx/default.nix38
-rw-r--r--pkgs/applications/networking/cluster/k0sctl/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/k3d/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/k3s/1_27/chart-versions.nix10
-rw-r--r--pkgs/applications/networking/cluster/k3s/1_27/versions.nix14
-rw-r--r--pkgs/applications/networking/cluster/k3s/1_28/versions.nix8
-rw-r--r--pkgs/applications/networking/cluster/k3s/1_29/versions.nix8
-rw-r--r--pkgs/applications/networking/cluster/k3s/1_30/versions.nix8
-rw-r--r--pkgs/applications/networking/cluster/k3s/README.md117
-rw-r--r--pkgs/applications/networking/cluster/k3s/builder.nix5
-rw-r--r--pkgs/applications/networking/cluster/k3s/default.nix11
-rw-r--r--pkgs/applications/networking/cluster/k3s/docs/CLUSTER_UPKEEP.md86
-rw-r--r--pkgs/applications/networking/cluster/k3s/docs/PKG_UPKEEP.md60
-rw-r--r--pkgs/applications/networking/cluster/k3s/docs/USAGE.md57
-rw-r--r--pkgs/applications/networking/cluster/k3s/docs/VERSIONING.md46
-rw-r--r--pkgs/applications/networking/cluster/k3s/docs/examples/NVIDIA.md55
-rw-r--r--pkgs/applications/networking/cluster/k3s/docs/examples/STORAGE.md122
-rw-r--r--pkgs/applications/networking/cluster/k3sup/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/k9s/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kaniko/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kconf/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/kluctl/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/kn/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/kompose/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/kontemplate/default.nix35
-rw-r--r--pkgs/applications/networking/cluster/kontemplate/deps.nix111
-rw-r--r--pkgs/applications/networking/cluster/kops/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kpt/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/krane/Gemfile.lock6
-rw-r--r--pkgs/applications/networking/cluster/krane/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/krane/gemset.nix12
-rw-r--r--pkgs/applications/networking/cluster/krelay/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/ktop/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/ktunnel/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/kube-router/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubebuilder/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubecfg/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/kubecm/default.nix7
-rw-r--r--pkgs/applications/networking/cluster/kubecolor/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubeconform/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/kubectl-cnpg/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kubectl-explore/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/kubectl-gadget/default.nix10
-rw-r--r--pkgs/applications/networking/cluster/kubectl-images/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/kubectl-klock/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/kubectl-ktop/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/kubedb-cli/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kubefirst/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kubelogin-oidc/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/kubelogin/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/kubemqctl/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/kubernetes/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubeseal/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/kubeshark/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/kubespy/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/kubevela/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/kubexit/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/kuma/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kuttl/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/kyverno/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/lens/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/levant/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/linkerd/edge.nix6
-rw-r--r--pkgs/applications/networking/cluster/linkerd/generic.nix2
-rw-r--r--pkgs/applications/networking/cluster/minikube/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/nerdctl/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/nixops/plugins/nixops-gce.nix1
-rw-r--r--pkgs/applications/networking/cluster/nixops/plugins/nixops-hetzner.nix1
-rw-r--r--pkgs/applications/networking/cluster/nixops/plugins/nixops-hetznercloud.nix3
-rw-r--r--pkgs/applications/networking/cluster/nixops/plugins/nixops-libvirtd.nix1
-rw-r--r--pkgs/applications/networking/cluster/nixops/unwrapped.nix2
-rw-r--r--pkgs/applications/networking/cluster/node-problem-detector/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/nomad-pack/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/nomad/default.nix20
-rw-r--r--pkgs/applications/networking/cluster/openlens/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/opentofu/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/pachyderm/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/pgo-client/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/popeye/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/prow/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/rancher/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/rke/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/rke2/README.md25
-rw-r--r--pkgs/applications/networking/cluster/rke2/builder.nix99
-rw-r--r--pkgs/applications/networking/cluster/rke2/default.nix58
-rw-r--r--pkgs/applications/networking/cluster/rke2/latest/versions.nix14
-rw-r--r--pkgs/applications/networking/cluster/rke2/stable/versions.nix14
-rw-r--r--pkgs/applications/networking/cluster/rke2/testing/versions.nix14
-rwxr-xr-xpkgs/applications/networking/cluster/rke2/update-script.sh86
-rw-r--r--pkgs/applications/networking/cluster/roxctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/stern/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/talosctl/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/tanka/default.nix31
-rw-r--r--pkgs/applications/networking/cluster/temporal-cli/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/temporal/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/temporalite/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/terraform-docs/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/providers.json9
-rw-r--r--pkgs/applications/networking/cluster/terraform/default.nix7
-rw-r--r--pkgs/applications/networking/cluster/terranix/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/tftui/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/timoni/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/waagent/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/werf/default.nix97
-rw-r--r--pkgs/applications/networking/cluster/yor/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/zarf/default.nix6
-rw-r--r--pkgs/applications/networking/coreth/default.nix6
-rw-r--r--pkgs/applications/networking/cozy-drive/default.nix2
-rw-r--r--pkgs/applications/networking/davmail/default.nix8
-rw-r--r--pkgs/applications/networking/deck/default.nix8
-rw-r--r--pkgs/applications/networking/discordo/default.nix2
-rw-r--r--pkgs/applications/networking/dnscontrol/default.nix16
-rw-r--r--pkgs/applications/networking/dsvpn/default.nix2
-rw-r--r--pkgs/applications/networking/dyndns/dyndnsc/default.nix72
-rw-r--r--pkgs/applications/networking/feedreaders/canto-curses/default.nix2
-rw-r--r--pkgs/applications/networking/feedreaders/castget/default.nix2
-rw-r--r--pkgs/applications/networking/feedreaders/gnome-feeds/default.nix2
-rw-r--r--pkgs/applications/networking/feedreaders/gnome-feeds/listparser.nix2
-rw-r--r--pkgs/applications/networking/feedreaders/goeland/default.nix2
-rw-r--r--pkgs/applications/networking/feedreaders/newsboat/default.nix2
-rw-r--r--pkgs/applications/networking/feedreaders/newsflash/Cargo.lock1001
-rw-r--r--pkgs/applications/networking/feedreaders/newsflash/default.nix109
-rw-r--r--pkgs/applications/networking/feedreaders/rss2email/default.nix2
-rw-r--r--pkgs/applications/networking/feedreaders/russ/default.nix2
-rw-r--r--pkgs/applications/networking/feedreaders/tuifeed/default.nix2
-rw-r--r--pkgs/applications/networking/firehol/default.nix2
-rw-r--r--pkgs/applications/networking/flent/default.nix2
-rw-r--r--pkgs/applications/networking/flexget/default.nix5
-rw-r--r--pkgs/applications/networking/ftp/taxi/default.nix2
-rw-r--r--pkgs/applications/networking/gdrive/default.nix2
-rw-r--r--pkgs/applications/networking/geph/default.nix66
-rw-r--r--pkgs/applications/networking/giara/default.nix2
-rw-r--r--pkgs/applications/networking/gns3/default.nix16
-rw-r--r--pkgs/applications/networking/gns3/server.nix1
-rw-r--r--pkgs/applications/networking/go-graft/default.nix2
-rw-r--r--pkgs/applications/networking/google-drive-ocamlfuse/default.nix2
-rw-r--r--pkgs/applications/networking/gopher/geomyidae/default.nix2
-rw-r--r--pkgs/applications/networking/gopher/gopher/default.nix2
-rw-r--r--pkgs/applications/networking/gopher/phetch/default.nix2
-rw-r--r--pkgs/applications/networking/gopher/sacc/default.nix2
-rw-r--r--pkgs/applications/networking/gossa/default.nix2
-rw-r--r--pkgs/applications/networking/hydroxide/default.nix2
-rw-r--r--pkgs/applications/networking/hyprspace/default.nix2
-rw-r--r--pkgs/applications/networking/ids/suricata/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/abaddon/default.nix3
-rw-r--r--pkgs/applications/networking/instant-messengers/alfaview/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/armcord/default.nix9
-rw-r--r--pkgs/applications/networking/instant-messengers/beeper/default.nix8
-rw-r--r--pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/briar-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/caprine-bin/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/chatterino2/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/chatty/default.nix14
-rw-r--r--pkgs/applications/networking/instant-messengers/deltachat-cursed/default.nix10
-rw-r--r--pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix18
-rw-r--r--pkgs/applications/networking/instant-messengers/discord-screenaudio/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/discord/default.nix32
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-web.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/element/pin.nix10
-rw-r--r--pkgs/applications/networking/instant-messengers/feishu/default.nix106
-rw-r--r--pkgs/applications/networking/instant-messengers/flare-signal/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/fluffychat/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/franz/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/gajim/default.nix8
-rw-r--r--pkgs/applications/networking/instant-messengers/gomuks/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/hamsket/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/iamb/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/default.nix12
-rw-r--r--pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix57
-rw-r--r--pkgs/applications/networking/instant-messengers/matrix-commander/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/mm/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/nheko/default.nix39
-rw-r--r--pkgs/applications/networking/instant-messengers/pantalaimon/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/pidgin-indicator/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-mm-sms/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/poezio/default.nix35
-rw-r--r--pkgs/applications/networking/instant-messengers/profanity/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/psi/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/qq/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/qq/sources.nix12
-rw-r--r--pkgs/applications/networking/instant-messengers/rambox/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/revolt-desktop/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/seren/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/session-desktop/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/generic.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-beta.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/signaldctl/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/slack/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/tangram/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/teamspeak/client.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/teamspeak/client5.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/tg_owt.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/turses/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/twinkle/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/twitch-tui/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/vacuum/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/viber/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/vk-cli/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/webex/default.nix8
-rw-r--r--pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/wire-desktop/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/ytalk/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/zoom-us/default.nix12
-rw-r--r--pkgs/applications/networking/ipfs-upload-client/default.nix2
-rw-r--r--pkgs/applications/networking/iptraf-ng/default.nix2
-rw-r--r--pkgs/applications/networking/irc/bip/default.nix2
-rw-r--r--pkgs/applications/networking/irc/catgirl/default.nix2
-rw-r--r--pkgs/applications/networking/irc/communi/default.nix2
-rw-r--r--pkgs/applications/networking/irc/epic5/default.nix2
-rw-r--r--pkgs/applications/networking/irc/glowing-bear/default.nix2
-rw-r--r--pkgs/applications/networking/irc/hexchat/default.nix2
-rw-r--r--pkgs/applications/networking/irc/irccloud/default.nix2
-rw-r--r--pkgs/applications/networking/irc/tiny/default.nix7
-rw-r--r--pkgs/applications/networking/irc/weechat/default.nix8
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/autosort/default.nix2
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/buffer_autoset/default.nix2
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/edit/default.nix2
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/highmon/default.nix2
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/url_hint/default.nix2
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix2
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix2
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix13
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix2
-rw-r--r--pkgs/applications/networking/irc/wraith/default.nix2
-rw-r--r--pkgs/applications/networking/iroh/default.nix6
-rw-r--r--pkgs/applications/networking/jmeter/default.nix2
-rw-r--r--pkgs/applications/networking/juju/default.nix6
-rw-r--r--pkgs/applications/networking/jxplorer/default.nix2
-rw-r--r--pkgs/applications/networking/ktailctl/default.nix2
-rw-r--r--pkgs/applications/networking/libcoap/default.nix2
-rw-r--r--pkgs/applications/networking/localsend/default.nix2
-rw-r--r--pkgs/applications/networking/mailreaders/aerc/default.nix2
-rw-r--r--pkgs/applications/networking/mailreaders/afew/default.nix2
-rw-r--r--pkgs/applications/networking/mailreaders/balsa/default.nix2
-rw-r--r--pkgs/applications/networking/mailreaders/bubblemail/default.nix2
-rw-r--r--pkgs/applications/networking/mailreaders/claws-mail/default.nix6
-rw-r--r--pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/evolution/evolution-ews/hardcode-gsettings.patch8
-rw-r--r--pkgs/applications/networking/mailreaders/evolution/evolution/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/mailnag/default.nix2
-rw-r--r--pkgs/applications/networking/mailreaders/mailnag/goa-plugin.nix2
-rw-r--r--pkgs/applications/networking/mailreaders/mailspring/default.nix2
-rw-r--r--pkgs/applications/networking/mailreaders/mswatch/default.nix2
-rw-r--r--pkgs/applications/networking/mailreaders/mutt/default.nix20
-rw-r--r--pkgs/applications/networking/mailreaders/neomutt/default.nix37
-rw-r--r--pkgs/applications/networking/mailreaders/notmuch-bower/default.nix2
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/packages.nix6
-rw-r--r--pkgs/applications/networking/mailreaders/trojita/default.nix2
-rw-r--r--pkgs/applications/networking/mailreaders/tutanota-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/mhost/default.nix2
-rw-r--r--pkgs/applications/networking/misc/zammad/default.nix5
-rw-r--r--pkgs/applications/networking/modem-manager-gui/default.nix2
-rw-r--r--pkgs/applications/networking/mullvad/libwg.nix2
-rw-r--r--pkgs/applications/networking/mumble/0001-BUILD-crypto-Migrate-to-OpenSSL-3.0-compatible-API.patch553
-rw-r--r--pkgs/applications/networking/mumble/0002-FIX-positional-audio-Force-8-bytes-alignment-for-CCa.patch31
-rw-r--r--pkgs/applications/networking/mumble/default.nix30
-rw-r--r--pkgs/applications/networking/mumble/overlay.nix2
-rw-r--r--pkgs/applications/networking/n8n/default.nix2
-rw-r--r--pkgs/applications/networking/nali/default.nix2
-rw-r--r--pkgs/applications/networking/ncgopher/default.nix2
-rw-r--r--pkgs/applications/networking/ndppd/default.nix2
-rw-r--r--pkgs/applications/networking/newsreaders/liferea/default.nix2
-rw-r--r--pkgs/applications/networking/newsreaders/pan/default.nix2
-rw-r--r--pkgs/applications/networking/newsreaders/quiterss/default.nix2
-rw-r--r--pkgs/applications/networking/newsreaders/slrn/default.nix2
-rw-r--r--pkgs/applications/networking/nextdns/default.nix4
-rw-r--r--pkgs/applications/networking/nym/default.nix2
-rw-r--r--pkgs/applications/networking/opsdroid/default.nix2
-rw-r--r--pkgs/applications/networking/ostinato/default.nix2
-rw-r--r--pkgs/applications/networking/owamp/default.nix2
-rw-r--r--pkgs/applications/networking/p2p/eiskaltdcpp/default.nix2
-rw-r--r--pkgs/applications/networking/p2p/flood-for-transmission/default.nix2
-rw-r--r--pkgs/applications/networking/p2p/flood/default.nix5
-rw-r--r--pkgs/applications/networking/p2p/frostwire/default.nix99
-rw-r--r--pkgs/applications/networking/p2p/gnunet/default.nix4
-rw-r--r--pkgs/applications/networking/p2p/jesec-rtorrent/default.nix2
-rw-r--r--pkgs/applications/networking/p2p/jesec-rtorrent/libtorrent.nix2
-rw-r--r--pkgs/applications/networking/p2p/magnetico/default.nix24
-rw-r--r--pkgs/applications/networking/p2p/pyrosimple/default.nix2
-rw-r--r--pkgs/applications/networking/p2p/qbittorrent/default.nix4
-rw-r--r--pkgs/applications/networking/p2p/rakshasa-rtorrent/default.nix2
-rw-r--r--pkgs/applications/networking/p2p/rakshasa-rtorrent/libtorrent.nix2
-rw-r--r--pkgs/applications/networking/p2p/retroshare/default.nix2
-rw-r--r--pkgs/applications/networking/p2p/storrent/default.nix2
-rw-r--r--pkgs/applications/networking/p2p/transmission/4.nix6
-rw-r--r--pkgs/applications/networking/p2p/transmission/default.nix7
-rw-r--r--pkgs/applications/networking/p2p/transmission/transmission-3.00-openssl-3.patch37
-rw-r--r--pkgs/applications/networking/p2p/zeronet-conservancy/default.nix2
-rw-r--r--pkgs/applications/networking/pcloud/default.nix6
-rw-r--r--pkgs/applications/networking/pjsip/default.nix2
-rw-r--r--pkgs/applications/networking/powerdns-admin/default.nix2
-rw-r--r--pkgs/applications/networking/protonmail-bridge/default.nix4
-rw-r--r--pkgs/applications/networking/qv2ray/default.nix2
-rw-r--r--pkgs/applications/networking/r53-ddns/default.nix2
-rw-r--r--pkgs/applications/networking/remote/citrix-workspace/sources.nix11
-rw-r--r--pkgs/applications/networking/remote/dayon/default.nix6
-rw-r--r--pkgs/applications/networking/remote/freerdp/3.nix2
-rw-r--r--pkgs/applications/networking/remote/freerdp/default.nix2
-rw-r--r--pkgs/applications/networking/remote/putty/default.nix2
-rw-r--r--pkgs/applications/networking/remote/vmware-horizon-client/default.nix4
-rwxr-xr-xpkgs/applications/networking/remote/vmware-horizon-client/update.sh4
-rw-r--r--pkgs/applications/networking/remote/waypipe/default.nix6
-rw-r--r--pkgs/applications/networking/remote/wayvnc/default.nix2
-rw-r--r--pkgs/applications/networking/remote/xrdp/default.nix2
-rw-r--r--pkgs/applications/networking/scaleft/default.nix6
-rw-r--r--pkgs/applications/networking/seafile-client/default.nix4
-rw-r--r--pkgs/applications/networking/seahub/default.nix2
-rw-r--r--pkgs/applications/networking/seaweedfs/default.nix6
-rw-r--r--pkgs/applications/networking/sieve-connect/default.nix2
-rw-r--r--pkgs/applications/networking/siproxd/default.nix2
-rw-r--r--pkgs/applications/networking/sniffers/sngrep/default.nix2
-rw-r--r--pkgs/applications/networking/soapui/default.nix2
-rw-r--r--pkgs/applications/networking/ssb-patchwork/default.nix2
-rw-r--r--pkgs/applications/networking/station/default.nix2
-rw-r--r--pkgs/applications/networking/sync/acd_cli/default.nix2
-rw-r--r--pkgs/applications/networking/sync/celeste/default.nix5
-rw-r--r--pkgs/applications/networking/sync/desync/default.nix6
-rw-r--r--pkgs/applications/networking/sync/lcsync/default.nix2
-rw-r--r--pkgs/applications/networking/sync/lsyncd/default.nix2
-rw-r--r--pkgs/applications/networking/sync/onedrive/default.nix2
-rw-r--r--pkgs/applications/networking/sync/rclone/default.nix6
-rw-r--r--pkgs/applications/networking/sync/rsync/default.nix3
-rw-r--r--pkgs/applications/networking/sync/rsync/rrsync.nix2
-rw-r--r--pkgs/applications/networking/sync/storj-uplink/default.nix6
-rw-r--r--pkgs/applications/networking/sync/wdt/default.nix6
-rw-r--r--pkgs/applications/networking/syncplay/default.nix6
-rw-r--r--pkgs/applications/networking/syncthing/default.nix6
-rw-r--r--pkgs/applications/networking/synology-cloud-sync-decryption-tool/default.nix2
-rw-r--r--pkgs/applications/networking/synology-drive-client/default.nix2
-rw-r--r--pkgs/applications/networking/termius/default.nix2
-rw-r--r--pkgs/applications/networking/testssl/default.nix4
-rw-r--r--pkgs/applications/networking/tmpmail/default.nix2
-rw-r--r--pkgs/applications/networking/trayscale/default.nix2
-rw-r--r--pkgs/applications/networking/tsung/default.nix2
-rw-r--r--pkgs/applications/networking/wgnord/default.nix2
-rw-r--r--pkgs/applications/networking/xpipe/default.nix6
-rw-r--r--pkgs/applications/networking/zerobin/default.nix2
-rw-r--r--pkgs/applications/networking/znc/modules.nix4
-rw-r--r--pkgs/applications/office/activitywatch/default.nix2
-rw-r--r--pkgs/applications/office/agenda/default.nix2
-rw-r--r--pkgs/applications/office/atlassian-cli/default.nix2
-rw-r--r--pkgs/applications/office/beancount/beancount_share.nix2
-rw-r--r--pkgs/applications/office/beebeep/default.nix2
-rw-r--r--pkgs/applications/office/bookworm/default.nix2
-rw-r--r--pkgs/applications/office/calligra/default.nix2
-rw-r--r--pkgs/applications/office/cutemarked-ng/default.nix2
-rw-r--r--pkgs/applications/office/docear/default.nix2
-rw-r--r--pkgs/applications/office/documenso/default.nix2
-rw-r--r--pkgs/applications/office/espanso/Cargo.lock1104
-rw-r--r--pkgs/applications/office/espanso/default.nix67
-rw-r--r--pkgs/applications/office/espanso/inject-wx-on-darwin.patch223
-rw-r--r--pkgs/applications/office/foliate/default.nix2
-rw-r--r--pkgs/applications/office/gnote/default.nix2
-rw-r--r--pkgs/applications/office/gnumeric/default.nix2
-rw-r--r--pkgs/applications/office/grisbi/default.nix2
-rw-r--r--pkgs/applications/office/homebank/default.nix8
-rw-r--r--pkgs/applications/office/homebank/fix-clang-build.diff23
-rw-r--r--pkgs/applications/office/kexi/default.nix2
-rw-r--r--pkgs/applications/office/kitsas/default.nix2
-rw-r--r--pkgs/applications/office/ledger-web/default.nix2
-rw-r--r--pkgs/applications/office/libreoffice/darwin/default.nix7
-rw-r--r--pkgs/applications/office/libreoffice/default.nix6
-rw-r--r--pkgs/applications/office/mendeley/default.nix6
-rw-r--r--pkgs/applications/office/morgen/default.nix4
-rw-r--r--pkgs/applications/office/notes/default.nix2
-rw-r--r--pkgs/applications/office/notion-app-enhanced/default.nix2
-rw-r--r--pkgs/applications/office/osmo/default.nix2
-rw-r--r--pkgs/applications/office/p3x-onenote/default.nix4
-rw-r--r--pkgs/applications/office/paperless-ngx/default.nix24
-rw-r--r--pkgs/applications/office/paperwork/paperwork-backend.nix8
-rw-r--r--pkgs/applications/office/paperwork/paperwork-gtk.nix2
-rw-r--r--pkgs/applications/office/paperwork/src.nix4
-rw-r--r--pkgs/applications/office/pdfmixtool/default.nix2
-rw-r--r--pkgs/applications/office/pinpoint/default.nix2
-rw-r--r--pkgs/applications/office/planify/default.nix8
-rw-r--r--pkgs/applications/office/portfolio/default.nix8
-rw-r--r--pkgs/applications/office/pympress/default.nix12
-rw-r--r--pkgs/applications/office/qownnotes/default.nix4
-rw-r--r--pkgs/applications/office/qpdfview/default.nix2
-rw-r--r--pkgs/applications/office/rime-cli/default.nix2
-rw-r--r--pkgs/applications/office/roam-research/common.nix8
-rw-r--r--pkgs/applications/office/roam-research/darwin.nix2
-rw-r--r--pkgs/applications/office/roam-research/linux.nix2
-rw-r--r--pkgs/applications/office/scribus/default.nix4
-rw-r--r--pkgs/applications/office/semantik/default.nix2
-rw-r--r--pkgs/applications/office/skrooge/default.nix2
-rw-r--r--pkgs/applications/office/softmaker/generic.nix2
-rw-r--r--pkgs/applications/office/super-productivity/default.nix4
-rw-r--r--pkgs/applications/office/tagainijisho/default.nix2
-rw-r--r--pkgs/applications/office/ticktick/default.nix6
-rw-r--r--pkgs/applications/office/timetrap/default.nix2
-rw-r--r--pkgs/applications/office/timeular/default.nix4
-rw-r--r--pkgs/applications/office/treesheets/default.nix6
-rw-r--r--pkgs/applications/office/tryton/default.nix2
-rw-r--r--pkgs/applications/office/vnote/default.nix2
-rw-r--r--pkgs/applications/office/watson/default.nix2
-rw-r--r--pkgs/applications/office/wpsoffice/default.nix5
-rw-r--r--pkgs/applications/office/zim/default.nix2
-rw-r--r--pkgs/applications/office/zk/default.nix12
-rw-r--r--pkgs/applications/plasma-mobile/plasma-settings.nix1
-rw-r--r--pkgs/applications/radio/anytone-emu/default.nix2
-rw-r--r--pkgs/applications/radio/chirp/default.nix8
-rw-r--r--pkgs/applications/radio/cloudlog/default.nix4
-rw-r--r--pkgs/applications/radio/csdr/default.nix2
-rw-r--r--pkgs/applications/radio/direwolf/default.nix2
-rw-r--r--pkgs/applications/radio/dump1090/default.nix2
-rw-r--r--pkgs/applications/radio/freedv/default.nix4
-rw-r--r--pkgs/applications/radio/gnss-sdr/default.nix2
-rw-r--r--pkgs/applications/radio/gridtracker/default.nix2
-rw-r--r--pkgs/applications/radio/grig/default.nix2
-rw-r--r--pkgs/applications/radio/hackrf/default.nix2
-rw-r--r--pkgs/applications/radio/klog/default.nix2
-rw-r--r--pkgs/applications/radio/openwebrx/default.nix6
-rw-r--r--pkgs/applications/radio/pat/default.nix2
-rw-r--r--pkgs/applications/radio/pothos/default.nix2
-rw-r--r--pkgs/applications/radio/qlog/default.nix4
-rw-r--r--pkgs/applications/radio/quisk/default.nix6
-rw-r--r--pkgs/applications/radio/rtl-ais/default.nix2
-rw-r--r--pkgs/applications/radio/sdr-j-fm/default.nix77
-rw-r--r--pkgs/applications/radio/sdrangel/default.nix4
-rw-r--r--pkgs/applications/radio/srsran/default.nix2
-rw-r--r--pkgs/applications/radio/welle-io/default.nix2
-rw-r--r--pkgs/applications/radio/xlog/default.nix2
-rw-r--r--pkgs/applications/science/astronomy/astrolabe-generator/default.nix2
-rw-r--r--pkgs/applications/science/biology/ants/default.nix4
-rw-r--r--pkgs/applications/science/biology/bedtools/default.nix2
-rw-r--r--pkgs/applications/science/biology/bftools/default.nix2
-rw-r--r--pkgs/applications/science/biology/bowtie/default.nix2
-rw-r--r--pkgs/applications/science/biology/bowtie2/default.nix6
-rw-r--r--pkgs/applications/science/biology/bwa/default.nix2
-rw-r--r--pkgs/applications/science/biology/emboss/default.nix2
-rw-r--r--pkgs/applications/science/biology/gatk/default.nix2
-rw-r--r--pkgs/applications/science/biology/igv/default.nix2
-rw-r--r--pkgs/applications/science/biology/jbrowse/default.nix6
-rw-r--r--pkgs/applications/science/biology/kalign/default.nix2
-rw-r--r--pkgs/applications/science/biology/kent/default.nix4
-rw-r--r--pkgs/applications/science/biology/last/default.nix4
-rw-r--r--pkgs/applications/science/biology/megahit/default.nix2
-rw-r--r--pkgs/applications/science/biology/messer-slim/default.nix2
-rw-r--r--pkgs/applications/science/biology/minimap2/default.nix2
-rw-r--r--pkgs/applications/science/biology/neuron/default.nix52
-rw-r--r--pkgs/applications/science/biology/neuron/neuron_darwin_rpath.patch11
-rw-r--r--pkgs/applications/science/biology/platypus/default.nix2
-rw-r--r--pkgs/applications/science/biology/plink-ng/default.nix2
-rw-r--r--pkgs/applications/science/biology/poretools/default.nix23
-rw-r--r--pkgs/applications/science/biology/raxml/default.nix2
-rw-r--r--pkgs/applications/science/biology/spades/default.nix32
-rw-r--r--pkgs/applications/science/biology/sratoolkit/default.nix4
-rw-r--r--pkgs/applications/science/biology/tandem-aligner/default.nix2
-rw-r--r--pkgs/applications/science/biology/trimal/default.nix2
-rw-r--r--pkgs/applications/science/biology/trimmomatic/default.nix2
-rw-r--r--pkgs/applications/science/biology/vcftools/default.nix2
-rw-r--r--pkgs/applications/science/biology/xenomapper/default.nix2
-rw-r--r--pkgs/applications/science/chemistry/element/default.nix2
-rw-r--r--pkgs/applications/science/chemistry/gwyddion/default.nix4
-rw-r--r--pkgs/applications/science/chemistry/jmol/default.nix6
-rw-r--r--pkgs/applications/science/chemistry/marvin/default.nix2
-rw-r--r--pkgs/applications/science/chemistry/openmolcas/default.nix4
-rw-r--r--pkgs/applications/science/chemistry/siesta/default.nix2
-rw-r--r--pkgs/applications/science/computer-architecture/accelergy/default.nix2
-rw-r--r--pkgs/applications/science/electronics/csxcad/default.nix2
-rw-r--r--pkgs/applications/science/electronics/degate/default.nix2
-rw-r--r--pkgs/applications/science/electronics/dsview/default.nix2
-rw-r--r--pkgs/applications/science/electronics/dwfv/default.nix2
-rw-r--r--pkgs/applications/science/electronics/flopoco/default.nix2
-rw-r--r--pkgs/applications/science/electronics/fped/default.nix2
-rw-r--r--pkgs/applications/science/electronics/fritzing/default.nix2
-rw-r--r--pkgs/applications/science/electronics/gerbv/default.nix2
-rw-r--r--pkgs/applications/science/electronics/gtkwave/default.nix4
-rw-r--r--pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix2
-rw-r--r--pkgs/applications/science/electronics/horizon-eda/base.nix2
-rw-r--r--pkgs/applications/science/electronics/kicad/addons/kikit.nix2
-rw-r--r--pkgs/applications/science/electronics/kicad/versions.nix24
-rw-r--r--pkgs/applications/science/electronics/librepcb/default.nix2
-rw-r--r--pkgs/applications/science/electronics/magic-vlsi/default.nix4
-rw-r--r--pkgs/applications/science/electronics/simulide/default.nix2
-rw-r--r--pkgs/applications/science/electronics/systemc/default.nix6
-rw-r--r--pkgs/applications/science/geometry/antiprism/default.nix2
-rw-r--r--pkgs/applications/science/logic/abc/default.nix2
-rw-r--r--pkgs/applications/science/logic/acgtk/default.nix2
-rw-r--r--pkgs/applications/science/logic/beluga/default.nix2
-rw-r--r--pkgs/applications/science/logic/bitwuzla/default.nix16
-rw-r--r--pkgs/applications/science/logic/boolector/default.nix2
-rw-r--r--pkgs/applications/science/logic/btor2tools/default.nix2
-rw-r--r--pkgs/applications/science/logic/cbmc/0001-Do-not-download-sources-in-cmake.patch14
-rw-r--r--pkgs/applications/science/logic/cbmc/default.nix8
-rw-r--r--pkgs/applications/science/logic/cedille/default.nix2
-rw-r--r--pkgs/applications/science/logic/coq/default.nix1
-rw-r--r--pkgs/applications/science/logic/cryptominisat/default.nix2
-rw-r--r--pkgs/applications/science/logic/cryptoverif/default.nix10
-rw-r--r--pkgs/applications/science/logic/cubicle/default.nix2
-rw-r--r--pkgs/applications/science/logic/cvc3/default.nix2
-rw-r--r--pkgs/applications/science/logic/cvc4/default.nix2
-rw-r--r--pkgs/applications/science/logic/cvc5/default.nix2
-rw-r--r--pkgs/applications/science/logic/dafny/default.nix2
-rw-r--r--pkgs/applications/science/logic/drat-trim/default.nix2
-rw-r--r--pkgs/applications/science/logic/egglog/default.nix2
-rw-r--r--pkgs/applications/science/logic/fast-downward/default.nix2
-rw-r--r--pkgs/applications/science/logic/hol_light/default.nix22
-rw-r--r--pkgs/applications/science/logic/iprover/default.nix2
-rw-r--r--pkgs/applications/science/logic/isabelle/components/isabelle-linter.nix2
-rw-r--r--pkgs/applications/science/logic/kissat/default.nix2
-rw-r--r--pkgs/applications/science/logic/klee/default.nix2
-rw-r--r--pkgs/applications/science/logic/klee/klee-uclibc.nix2
-rw-r--r--pkgs/applications/science/logic/lean4/default.nix4
-rw-r--r--pkgs/applications/science/logic/leo2/default.nix2
-rw-r--r--pkgs/applications/science/logic/leo3/binary.nix2
-rw-r--r--pkgs/applications/science/logic/mcrl2/default.nix2
-rw-r--r--pkgs/applications/science/logic/nusmv/default.nix2
-rw-r--r--pkgs/applications/science/logic/opensmt/default.nix6
-rw-r--r--pkgs/applications/science/logic/ott/default.nix2
-rw-r--r--pkgs/applications/science/logic/petrinizer/default.nix31
-rw-r--r--pkgs/applications/science/logic/prooftree/default.nix6
-rw-r--r--pkgs/applications/science/logic/redprl/default.nix2
-rw-r--r--pkgs/applications/science/logic/sharpsat-td/default.nix2
-rw-r--r--pkgs/applications/science/logic/symbiyosys/default.nix2
-rw-r--r--pkgs/applications/science/logic/tlaplus/default.nix2
-rw-r--r--pkgs/applications/science/logic/tlaplus/tlaplus18.nix2
-rw-r--r--pkgs/applications/science/logic/vampire/default.nix2
-rw-r--r--pkgs/applications/science/logic/verit/default.nix2
-rw-r--r--pkgs/applications/science/logic/why3/default.nix2
-rw-r--r--pkgs/applications/science/logic/yices/default.nix2
-rw-r--r--pkgs/applications/science/logic/z3/default.nix2
-rw-r--r--pkgs/applications/science/machine-learning/labelimg/default.nix2
-rw-r--r--pkgs/applications/science/machine-learning/shogun/default.nix2
-rw-r--r--pkgs/applications/science/math/4ti2/default.nix2
-rw-r--r--pkgs/applications/science/math/LiE/default.nix2
-rw-r--r--pkgs/applications/science/math/R/default.nix12
-rw-r--r--pkgs/applications/science/math/bliss/default.nix2
-rw-r--r--pkgs/applications/science/math/cbc/default.nix2
-rw-r--r--pkgs/applications/science/math/clp/default.nix2
-rw-r--r--pkgs/applications/science/math/colpack/default.nix2
-rw-r--r--pkgs/applications/science/math/csdp/default.nix2
-rw-r--r--pkgs/applications/science/math/dap/default.nix2
-rw-r--r--pkgs/applications/science/math/eigenmath/default.nix6
-rw-r--r--pkgs/applications/science/math/form/default.nix2
-rw-r--r--pkgs/applications/science/math/fricas/default.nix21
-rw-r--r--pkgs/applications/science/math/getdp/default.nix2
-rw-r--r--pkgs/applications/science/math/gfan/default.nix2
-rw-r--r--pkgs/applications/science/math/giac/default.nix2
-rw-r--r--pkgs/applications/science/math/glsurf/default.nix2
-rw-r--r--pkgs/applications/science/math/gmsh/default.nix6
-rw-r--r--pkgs/applications/science/math/gretl/default.nix6
-rw-r--r--pkgs/applications/science/math/labplot/default.nix9
-rw-r--r--pkgs/applications/science/math/lp_solve/default.nix2
-rw-r--r--pkgs/applications/science/math/mathmod/default.nix34
-rw-r--r--pkgs/applications/science/math/mathmod/fix-paths.patch14
-rw-r--r--pkgs/applications/science/math/msieve/default.nix2
-rw-r--r--pkgs/applications/science/math/nota/default.nix2
-rw-r--r--pkgs/applications/science/math/numworks-epsilon/0001-ion-linux-makerules.patch12
-rw-r--r--pkgs/applications/science/math/numworks-epsilon/default.nix12
-rw-r--r--pkgs/applications/science/math/palp/default.nix2
-rw-r--r--pkgs/applications/science/math/pari/gp2c.nix2
-rw-r--r--pkgs/applications/science/math/perseus/default.nix2
-rw-r--r--pkgs/applications/science/math/programmer-calculator/default.nix2
-rw-r--r--pkgs/applications/science/math/pspp/default.nix2
-rw-r--r--pkgs/applications/science/math/qalculate-gtk/default.nix2
-rw-r--r--pkgs/applications/science/math/qalculate-qt/default.nix2
-rw-r--r--pkgs/applications/science/math/ratpoints/default.nix2
-rw-r--r--pkgs/applications/science/math/ripser/default.nix2
-rw-r--r--pkgs/applications/science/math/sage/sage-src.nix11
-rw-r--r--pkgs/applications/science/math/sage/sagedoc.nix4
-rw-r--r--pkgs/applications/science/math/singular/default.nix2
-rw-r--r--pkgs/applications/science/math/speedcrunch/default.nix2
-rw-r--r--pkgs/applications/science/math/symmetrica/default.nix2
-rw-r--r--pkgs/applications/science/math/zegrapher/default.nix2
-rw-r--r--pkgs/applications/science/medicine/xmedcon/default.nix6
-rw-r--r--pkgs/applications/science/misc/bada-bib/default.nix2
-rw-r--r--pkgs/applications/science/misc/boinc/default.nix4
-rw-r--r--pkgs/applications/science/misc/cwltool/default.nix5
-rw-r--r--pkgs/applications/science/misc/cytoscape/default.nix2
-rw-r--r--pkgs/applications/science/misc/gephi/default.nix2
-rw-r--r--pkgs/applications/science/misc/graphia/default.nix2
-rw-r--r--pkgs/applications/science/misc/netlogo/default.nix2
-rw-r--r--pkgs/applications/science/misc/openmodelica/combined/default.nix2
-rw-r--r--pkgs/applications/science/misc/openmodelica/omcompiler/default.nix5
-rw-r--r--pkgs/applications/science/misc/openmodelica/omedit/default.nix2
-rw-r--r--pkgs/applications/science/misc/openmodelica/omlibrary/default.nix2
-rw-r--r--pkgs/applications/science/misc/openmodelica/omparser/default.nix2
-rw-r--r--pkgs/applications/science/misc/openmodelica/omsimulator/default.nix16
-rw-r--r--pkgs/applications/science/misc/openmvg/default.nix2
-rw-r--r--pkgs/applications/science/misc/openrefine/default.nix24
-rw-r--r--pkgs/applications/science/misc/reason-shell/default.nix2
-rw-r--r--pkgs/applications/science/misc/root/5.nix2
-rw-r--r--pkgs/applications/science/misc/root/default.nix40
-rw-r--r--pkgs/applications/science/misc/sasview/xhtml2pdf.nix2
-rw-r--r--pkgs/applications/science/misc/snakemake/default.nix4
-rw-r--r--pkgs/applications/science/misc/tulip/default.nix6
-rw-r--r--pkgs/applications/science/molecular-dynamics/raspa/default.nix2
-rw-r--r--pkgs/applications/science/networking/sumo/default.nix6
-rw-r--r--pkgs/applications/science/physics/dawn/default.nix2
-rw-r--r--pkgs/applications/science/physics/dawncut/default.nix2
-rw-r--r--pkgs/applications/science/physics/elmerfem/default.nix2
-rw-r--r--pkgs/applications/science/physics/nnpdf/default.nix2
-rw-r--r--pkgs/applications/science/physics/professor/default.nix54
-rw-r--r--pkgs/applications/science/physics/quantomatic/default.nix2
-rw-r--r--pkgs/applications/science/physics/sacrifice/default.nix2
-rw-r--r--pkgs/applications/science/physics/xfitter/default.nix2
-rw-r--r--pkgs/applications/science/physics/xflr5/default.nix2
-rw-r--r--pkgs/applications/science/programming/fdr/default.nix2
-rw-r--r--pkgs/applications/science/robotics/betaflight-configurator/default.nix2
-rw-r--r--pkgs/applications/science/robotics/emuflight-configurator/default.nix2
-rw-r--r--pkgs/applications/science/robotics/inav-configurator/default.nix2
-rw-r--r--pkgs/applications/science/robotics/mission-planner/default.nix2
-rw-r--r--pkgs/applications/science/robotics/mujoco/default.nix18
-rw-r--r--pkgs/applications/search/recoll/default.nix2
-rw-r--r--pkgs/applications/system/asusctl/default.nix2
-rw-r--r--pkgs/applications/system/coolercontrol/Cargo.lock1078
-rw-r--r--pkgs/applications/system/coolercontrol/coolercontrol-gui.nix2
-rw-r--r--pkgs/applications/system/coolercontrol/coolercontrol-ui-data.nix2
-rw-r--r--pkgs/applications/system/coolercontrol/coolercontrold.nix2
-rw-r--r--pkgs/applications/system/coolercontrol/default.nix4
-rw-r--r--pkgs/applications/system/glances/default.nix57
-rw-r--r--pkgs/applications/system/supergfxctl/default.nix2
-rw-r--r--pkgs/applications/system/zxfer/default.nix2
-rw-r--r--pkgs/applications/terminal-emulators/alacritty/default.nix2
-rw-r--r--pkgs/applications/terminal-emulators/darktile/default.nix2
-rw-r--r--pkgs/applications/terminal-emulators/dterm/default.nix2
-rw-r--r--pkgs/applications/terminal-emulators/foot/default.nix2
-rw-r--r--pkgs/applications/terminal-emulators/hyper/default.nix2
-rw-r--r--pkgs/applications/terminal-emulators/iterm2/default.nix2
-rw-r--r--pkgs/applications/terminal-emulators/kitty/default.nix8
-rw-r--r--pkgs/applications/terminal-emulators/kitty/themes.nix11
-rw-r--r--pkgs/applications/terminal-emulators/lxterminal/default.nix2
-rw-r--r--pkgs/applications/terminal-emulators/microcom/default.nix2
-rw-r--r--pkgs/applications/terminal-emulators/rio/default.nix8
-rw-r--r--pkgs/applications/terminal-emulators/sakura/default.nix2
-rw-r--r--pkgs/applications/terminal-emulators/st/siduck76-st.nix2
-rw-r--r--pkgs/applications/terminal-emulators/terminator/default.nix6
-rw-r--r--pkgs/applications/terminal-emulators/termite/default.nix2
-rw-r--r--pkgs/applications/terminal-emulators/wayst/default.nix2
-rw-r--r--pkgs/applications/version-management/bitbucket-server-cli/default.nix2
-rw-r--r--pkgs/applications/version-management/commit-formatter/default.nix2
-rw-r--r--pkgs/applications/version-management/commitizen/default.nix4
-rw-r--r--pkgs/applications/version-management/cvs2svn/default.nix2
-rw-r--r--pkgs/applications/version-management/cvsps/default.nix2
-rw-r--r--pkgs/applications/version-management/cvsq/default.nix2
-rw-r--r--pkgs/applications/version-management/cz-cli/default.nix2
-rw-r--r--pkgs/applications/version-management/danger-gitlab/default.nix2
-rw-r--r--pkgs/applications/version-management/deepgit/default.nix2
-rw-r--r--pkgs/applications/version-management/delta/default.nix2
-rw-r--r--pkgs/applications/version-management/gerrit/default.nix6
-rw-r--r--pkgs/applications/version-management/gfold/default.nix6
-rw-r--r--pkgs/applications/version-management/gh/default.nix6
-rw-r--r--pkgs/applications/version-management/git-annex-remote-dbx/default.nix2
-rw-r--r--pkgs/applications/version-management/git-annex-remote-googledrive/default.nix2
-rw-r--r--pkgs/applications/version-management/git-backup/default.nix2
-rw-r--r--pkgs/applications/version-management/git-bars/default.nix2
-rw-r--r--pkgs/applications/version-management/git-branchless/default.nix8
-rw-r--r--pkgs/applications/version-management/git-cache/default.nix2
-rw-r--r--pkgs/applications/version-management/git-cliff/default.nix8
-rw-r--r--pkgs/applications/version-management/git-codeowners/default.nix2
-rw-r--r--pkgs/applications/version-management/git-cola/default.nix2
-rw-r--r--pkgs/applications/version-management/git-credential-manager/default.nix2
-rw-r--r--pkgs/applications/version-management/git-credential-oauth/default.nix4
-rw-r--r--pkgs/applications/version-management/git-delete-merged-branches/default.nix4
-rw-r--r--pkgs/applications/version-management/git-fame/Gemfile.lock159
-rw-r--r--pkgs/applications/version-management/git-fame/gemset.nix637
-rw-r--r--pkgs/applications/version-management/git-interactive-rebase-tool/Cargo.lock1366
-rw-r--r--pkgs/applications/version-management/git-interactive-rebase-tool/default.nix25
-rw-r--r--pkgs/applications/version-management/git-machete/default.nix4
-rw-r--r--pkgs/applications/version-management/git-mit/default.nix6
-rw-r--r--pkgs/applications/version-management/git-octopus/default.nix2
-rw-r--r--pkgs/applications/version-management/git-quick-stats/default.nix2
-rw-r--r--pkgs/applications/version-management/git-radar/default.nix2
-rw-r--r--pkgs/applications/version-management/git-remote-gcrypt/default.nix2
-rw-r--r--pkgs/applications/version-management/git-secret/default.nix2
-rw-r--r--pkgs/applications/version-management/git-series/default.nix2
-rw-r--r--pkgs/applications/version-management/git-stree/default.nix2
-rw-r--r--pkgs/applications/version-management/git-sync/default.nix2
-rw-r--r--pkgs/applications/version-management/git-town/default.nix10
-rw-r--r--pkgs/applications/version-management/git-up/default.nix2
-rw-r--r--pkgs/applications/version-management/git-vendor/default.nix2
-rw-r--r--pkgs/applications/version-management/git/default.nix8
-rwxr-xr-xpkgs/applications/version-management/git/update.sh2
-rw-r--r--pkgs/applications/version-management/gita/default.nix2
-rw-r--r--pkgs/applications/version-management/gitkraken/default.nix18
-rw-r--r--pkgs/applications/version-management/gitlab/data.json16
-rw-r--r--pkgs/applications/version-management/gitlab/default.nix6
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/default.nix9
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix6
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix2
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-pages/default.nix4
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-shell/default.nix11
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-shell/go-mod-tidy.patch12
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix5
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/Gemfile58
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock121
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix141
-rw-r--r--pkgs/applications/version-management/gitmux/default.nix11
-rw-r--r--pkgs/applications/version-management/gitnuro/default.nix28
-rw-r--r--pkgs/applications/version-management/gitoxide/default.nix14
-rw-r--r--pkgs/applications/version-management/gittyup/default.nix2
-rw-r--r--pkgs/applications/version-management/glab/default.nix6
-rw-r--r--pkgs/applications/version-management/glitter/default.nix2
-rw-r--r--pkgs/applications/version-management/gogs/default.nix2
-rw-r--r--pkgs/applications/version-management/gomp/default.nix2
-rw-r--r--pkgs/applications/version-management/gource/default.nix6
-rw-r--r--pkgs/applications/version-management/gql/default.nix2
-rw-r--r--pkgs/applications/version-management/gut/default.nix2
-rw-r--r--pkgs/applications/version-management/hut/default.nix2
-rw-r--r--pkgs/applications/version-management/jujutsu/default.nix8
-rw-r--r--pkgs/applications/version-management/mercurial/default.nix2
-rw-r--r--pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix2
-rw-r--r--pkgs/applications/version-management/monotone/default.nix2
-rw-r--r--pkgs/applications/version-management/nitpick/default.nix2
-rw-r--r--pkgs/applications/version-management/pass-git-helper/default.nix2
-rw-r--r--pkgs/applications/version-management/peru/default.nix2
-rw-r--r--pkgs/applications/version-management/pijul/default.nix2
-rw-r--r--pkgs/applications/version-management/reposurgeon/default.nix2
-rw-r--r--pkgs/applications/version-management/rs-git-fsmonitor/default.nix2
-rw-r--r--pkgs/applications/version-management/sapling/default.nix2
-rw-r--r--pkgs/applications/version-management/scriv/default.nix2
-rw-r--r--pkgs/applications/version-management/sourcehut/scm.nix2
-rw-r--r--pkgs/applications/version-management/stgit/default.nix2
-rw-r--r--pkgs/applications/version-management/subgit/default.nix2
-rw-r--r--pkgs/applications/version-management/sublime-merge/common.nix5
-rw-r--r--pkgs/applications/version-management/subversion/default.nix2
-rw-r--r--pkgs/applications/version-management/svn-all-fast-export/default.nix2
-rw-r--r--pkgs/applications/version-management/tailor/default.nix2
-rw-r--r--pkgs/applications/version-management/thicket/default.nix2
-rw-r--r--pkgs/applications/version-management/verco/default.nix2
-rw-r--r--pkgs/applications/video/adl/default.nix33
-rw-r--r--pkgs/applications/video/ani-cli/default.nix2
-rw-r--r--pkgs/applications/video/animdl/default.nix18
-rw-r--r--pkgs/applications/video/anime-downloader/default.nix2
-rw-r--r--pkgs/applications/video/bombono/default.nix2
-rw-r--r--pkgs/applications/video/clapper/default.nix2
-rw-r--r--pkgs/applications/video/cutecapture/default.nix2
-rw-r--r--pkgs/applications/video/davinci-resolve/default.nix16
-rw-r--r--pkgs/applications/video/dmlive/default.nix2
-rw-r--r--pkgs/applications/video/dra-cla/default.nix2
-rw-r--r--pkgs/applications/video/dvdbackup/default.nix2
-rw-r--r--pkgs/applications/video/dvdstyler/default.nix2
-rw-r--r--pkgs/applications/video/electronplayer/electronplayer.nix2
-rw-r--r--pkgs/applications/video/filebot/default.nix2
-rw-r--r--pkgs/applications/video/flowblade/default.nix4
-rw-r--r--pkgs/applications/video/freetube/default.nix2
-rw-r--r--pkgs/applications/video/glaxnimate/default.nix2
-rw-r--r--pkgs/applications/video/gnomecast/default.nix2
-rw-r--r--pkgs/applications/video/gpu-screen-recorder/default.nix18
-rw-r--r--pkgs/applications/video/gpu-screen-recorder/gpu-screen-recorder-gtk.nix2
-rw-r--r--pkgs/applications/video/handbrake/default.nix94
-rw-r--r--pkgs/applications/video/haruna/default.nix4
-rw-r--r--pkgs/applications/video/hyperion-ng/default.nix2
-rw-r--r--pkgs/applications/video/hypnotix/default.nix4
-rw-r--r--pkgs/applications/video/jellyfin-media-player/default.nix12
-rw-r--r--pkgs/applications/video/jellyfin-media-player/fix-web-path.patch28
-rw-r--r--pkgs/applications/video/jellyfin-mpv-shim/default.nix4
-rw-r--r--pkgs/applications/video/kazam/default.nix2
-rw-r--r--pkgs/applications/video/kodi/addons/archive_tool/default.nix2
-rw-r--r--pkgs/applications/video/kodi/addons/controller-topology-project/default.nix8
-rw-r--r--pkgs/applications/video/kodi/addons/formula1/default.nix29
-rw-r--r--pkgs/applications/video/kodi/addons/future/default.nix2
-rw-r--r--pkgs/applications/video/kodi/addons/infotagger/default.nix4
-rw-r--r--pkgs/applications/video/kodi/addons/inputstreamhelper/default.nix2
-rw-r--r--pkgs/applications/video/kodi/addons/invidious/default.nix5
-rw-r--r--pkgs/applications/video/kodi/addons/jellycon/default.nix2
-rw-r--r--pkgs/applications/video/kodi/addons/jellyfin/default.nix2
-rw-r--r--pkgs/applications/video/kodi/addons/joystick/default.nix2
-rw-r--r--pkgs/applications/video/kodi/addons/keymap/default.nix2
-rw-r--r--pkgs/applications/video/kodi/addons/orftvthek/default.nix6
-rw-r--r--pkgs/applications/video/kodi/addons/osmc-skin/default.nix2
-rw-r--r--pkgs/applications/video/kodi/addons/pdfreader/default.nix2
-rw-r--r--pkgs/applications/video/kodi/addons/plugin-cache/default.nix26
-rw-r--r--pkgs/applications/video/kodi/addons/raiplay/default.nix30
-rw-r--r--pkgs/applications/video/kodi/addons/routing/default.nix2
-rw-r--r--pkgs/applications/video/kodi/addons/simplecache/default.nix26
-rw-r--r--pkgs/applications/video/kodi/addons/sponsorblock/default.nix2
-rw-r--r--pkgs/applications/video/kodi/addons/steam-controller/default.nix2
-rw-r--r--pkgs/applications/video/kodi/addons/upnext/default.nix26
-rw-r--r--pkgs/applications/video/kodi/addons/websocket/default.nix2
-rw-r--r--pkgs/applications/video/kodi/addons/youtube/default.nix9
-rw-r--r--pkgs/applications/video/lbry/default.nix2
-rw-r--r--pkgs/applications/video/lightworks/default.nix6
-rw-r--r--pkgs/applications/video/losslesscut-bin/build-from-dmg.nix13
-rw-r--r--pkgs/applications/video/losslesscut-bin/build-from-windows.nix13
-rw-r--r--pkgs/applications/video/losslesscut-bin/default.nix12
-rw-r--r--pkgs/applications/video/makemkv/default.nix6
-rw-r--r--pkgs/applications/video/media-downloader/default.nix50
-rw-r--r--pkgs/applications/video/memento/default.nix2
-rw-r--r--pkgs/applications/video/mplayer/default.nix2
-rw-r--r--pkgs/applications/video/mpv-shim-default-shaders/default.nix2
-rw-r--r--pkgs/applications/video/mpv/0001-fix-darwin-build.patch29
-rw-r--r--pkgs/applications/video/mpv/darwin-sigtool-no-deep.patch13
-rw-r--r--pkgs/applications/video/mpv/default.nix510
-rw-r--r--pkgs/applications/video/mpv/scripts/autosubsync-mpv.nix38
-rw-r--r--pkgs/applications/video/mpv/scripts/default.nix1
-rw-r--r--pkgs/applications/video/mpv/scripts/manga-reader.nix2
-rw-r--r--pkgs/applications/video/mpv/scripts/memo.nix2
-rw-r--r--pkgs/applications/video/mpv/scripts/modernx-zydezu.nix6
-rw-r--r--pkgs/applications/video/mpv/scripts/modernx.nix2
-rw-r--r--pkgs/applications/video/mpv/scripts/mpv-notify-send.nix5
-rw-r--r--pkgs/applications/video/mpv/scripts/mpv-slicing.nix2
-rw-r--r--pkgs/applications/video/mpv/scripts/mpvacious.nix4
-rw-r--r--pkgs/applications/video/mpv/scripts/quality-menu.nix2
-rw-r--r--pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix2
-rw-r--r--pkgs/applications/video/mpv/scripts/sponsorblock-minimal.nix2
-rw-r--r--pkgs/applications/video/mpv/scripts/thumbnail.nix2
-rw-r--r--pkgs/applications/video/mpv/scripts/videoclip.nix6
-rw-r--r--pkgs/applications/video/mpv/scripts/vr-reversal.nix2
-rw-r--r--pkgs/applications/video/mpv/scripts/youtube-upnext.nix2
-rw-r--r--pkgs/applications/video/mpv/wrapper.nix18
-rw-r--r--pkgs/applications/video/multiviewer-for-f1/default.nix6
-rw-r--r--pkgs/applications/video/obs-studio/plugins/advanced-scene-switcher/default.nix2
-rw-r--r--pkgs/applications/video/obs-studio/plugins/obs-command-source.nix2
-rw-r--r--pkgs/applications/video/obs-studio/plugins/obs-composite-blur.nix2
-rw-r--r--pkgs/applications/video/obs-studio/plugins/obs-gstreamer.nix2
-rw-r--r--pkgs/applications/video/obs-studio/plugins/obs-move-transition.nix4
-rw-r--r--pkgs/applications/video/obs-studio/plugins/obs-rgb-levels-filter.nix2
-rw-r--r--pkgs/applications/video/obs-studio/plugins/obs-shaderfilter.nix2
-rw-r--r--pkgs/applications/video/obs-studio/plugins/obs-teleport/default.nix2
-rw-r--r--pkgs/applications/video/obs-studio/plugins/obs-text-pthread.nix4
-rw-r--r--pkgs/applications/video/obs-studio/plugins/obs-transition-table.nix2
-rw-r--r--pkgs/applications/video/obs-studio/plugins/obs-vintage-filter.nix2
-rw-r--r--pkgs/applications/video/obs-studio/plugins/wlrobs.nix2
-rw-r--r--pkgs/applications/video/omxplayer/default.nix2
-rw-r--r--pkgs/applications/video/open-in-mpv/default.nix4
-rw-r--r--pkgs/applications/video/p2pvc/default.nix2
-rw-r--r--pkgs/applications/video/prism/default.nix2
-rw-r--r--pkgs/applications/video/pyca/default.nix2
-rw-r--r--pkgs/applications/video/qarte/default.nix2
-rw-r--r--pkgs/applications/video/qmediathekview/default.nix2
-rw-r--r--pkgs/applications/video/screenkey/default.nix2
-rw-r--r--pkgs/applications/video/shotcut/default.nix2
-rw-r--r--pkgs/applications/video/simplescreenrecorder/default.nix23
-rw-r--r--pkgs/applications/video/simplescreenrecorder/fix-paths.patch35
-rw-r--r--pkgs/applications/video/stremio/default.nix2
-rw-r--r--pkgs/applications/video/subdl/default.nix2
-rw-r--r--pkgs/applications/video/subtitleedit/default.nix4
-rw-r--r--pkgs/applications/video/tartube/default.nix2
-rw-r--r--pkgs/applications/video/timelens/default.nix2
-rw-r--r--pkgs/applications/video/ustreamer/default.nix15
-rw-r--r--pkgs/applications/video/vdr/plugins.nix4
-rw-r--r--pkgs/applications/video/vdr/softhddevice/default.nix4
-rw-r--r--pkgs/applications/video/vdr/streamdev/default.nix2
-rw-r--r--pkgs/applications/video/vivictpp/default.nix2
-rw-r--r--pkgs/applications/video/w_scan2/default.nix2
-rw-r--r--pkgs/applications/video/webtorrent_desktop/default.nix6
-rw-r--r--pkgs/applications/video/xine/lib.nix2
-rw-r--r--pkgs/applications/video/xplayer/default.nix2
-rw-r--r--pkgs/applications/video/youtube-tui/default.nix2
-rw-r--r--pkgs/applications/virtualization/OVMF/default.nix4
-rw-r--r--pkgs/applications/virtualization/catatonit/default.nix2
-rw-r--r--pkgs/applications/virtualization/cntr/default.nix2
-rw-r--r--pkgs/applications/virtualization/conmon-rs/default.nix2
-rw-r--r--pkgs/applications/virtualization/conmon/default.nix2
-rw-r--r--pkgs/applications/virtualization/containerd/default.nix6
-rw-r--r--pkgs/applications/virtualization/cri-o/default.nix4
-rw-r--r--pkgs/applications/virtualization/crosvm/default.nix10
-rw-r--r--pkgs/applications/virtualization/crun/default.nix2
-rw-r--r--pkgs/applications/virtualization/ddev/default.nix4
-rw-r--r--pkgs/applications/virtualization/docker/buildx.nix4
-rw-r--r--pkgs/applications/virtualization/docker/compose.nix8
-rw-r--r--pkgs/applications/virtualization/docker/default.nix49
-rw-r--r--pkgs/applications/virtualization/docker/distribution.nix23
-rw-r--r--pkgs/applications/virtualization/dumb-init/default.nix2
-rw-r--r--pkgs/applications/virtualization/ecs-agent/default.nix6
-rw-r--r--pkgs/applications/virtualization/firectl/default.nix2
-rw-r--r--pkgs/applications/virtualization/kraft/default.nix1
-rw-r--r--pkgs/applications/virtualization/krunvm/default.nix2
-rw-r--r--pkgs/applications/virtualization/kvmtool/default.nix20
-rw-r--r--pkgs/applications/virtualization/lima/bin.nix22
-rw-r--r--pkgs/applications/virtualization/lima/default.nix6
-rw-r--r--pkgs/applications/virtualization/lkl/default.nix2
-rw-r--r--pkgs/applications/virtualization/looking-glass-client/default.nix2
-rw-r--r--pkgs/applications/virtualization/nixpacks/default.nix6
-rw-r--r--pkgs/applications/virtualization/podman-compose/default.nix2
-rw-r--r--pkgs/applications/virtualization/podman-tui/default.nix4
-rw-r--r--pkgs/applications/virtualization/podman/default.nix6
-rw-r--r--pkgs/applications/virtualization/pods/default.nix2
-rw-r--r--pkgs/applications/virtualization/qboot/default.nix2
-rw-r--r--pkgs/applications/virtualization/qemu/default.nix20
-rw-r--r--pkgs/applications/virtualization/qemu/remove-ui-cocoa-use-safe-area-insets.patch14
-rw-r--r--pkgs/applications/virtualization/qemu/revert-ui-cocoa-add-clipboard-support.patch10
-rw-r--r--pkgs/applications/virtualization/qemu/revert-ui-cocoa-use-the-standard-about-panel.patch145
-rw-r--r--pkgs/applications/virtualization/quickgui/default.nix2
-rw-r--r--pkgs/applications/virtualization/runc/default.nix6
-rw-r--r--pkgs/applications/virtualization/rust-hypervisor-firmware/default.nix6
-rw-r--r--pkgs/applications/virtualization/rvvm/default.nix2
-rw-r--r--pkgs/applications/virtualization/sail-riscv/default.nix2
-rw-r--r--pkgs/applications/virtualization/singularity/generic.nix42
-rw-r--r--pkgs/applications/virtualization/singularity/packages.nix20
-rw-r--r--pkgs/applications/virtualization/spike/default.nix2
-rw-r--r--pkgs/applications/virtualization/tart/default.nix6
-rw-r--r--pkgs/applications/virtualization/tini/default.nix2
-rw-r--r--pkgs/applications/virtualization/virt-manager/default.nix5
-rw-r--r--pkgs/applications/virtualization/virt-manager/qt.nix14
-rw-r--r--pkgs/applications/virtualization/virt-top/default.nix2
-rw-r--r--pkgs/applications/virtualization/virt-viewer/default.nix2
-rw-r--r--pkgs/applications/virtualization/virter/default.nix2
-rw-r--r--pkgs/applications/virtualization/virtualbox/default.nix67
-rw-r--r--pkgs/applications/virtualization/virtualbox/extpack.nix2
-rw-r--r--pkgs/applications/virtualization/virtualbox/gcc-13.patch35
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions-iso/default.nix2
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions/builder.nix37
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions/default.nix11
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions/strlcpy-1.patch29
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions/strlcpy-2.patch86
-rw-r--r--pkgs/applications/virtualization/virtualbox/libxml-2.12.patch47
-rwxr-xr-xpkgs/applications/virtualization/virtualbox/update.sh4
-rw-r--r--pkgs/applications/virtualization/vmware-workstation/default.nix89
-rw-r--r--pkgs/applications/virtualization/vpcs/default.nix2
-rw-r--r--pkgs/applications/virtualization/youki/default.nix2
-rw-r--r--pkgs/applications/window-managers/2bwm/default.nix2
-rw-r--r--pkgs/applications/window-managers/bspwm/default.nix2
-rw-r--r--pkgs/applications/window-managers/cage/default.nix2
-rw-r--r--pkgs/applications/window-managers/cagebreak/default.nix2
-rw-r--r--pkgs/applications/window-managers/cwm/default.nix2
-rw-r--r--pkgs/applications/window-managers/dk/default.nix2
-rw-r--r--pkgs/applications/window-managers/dwm/default.nix2
-rw-r--r--pkgs/applications/window-managers/fbpanel/default.nix2
-rw-r--r--pkgs/applications/window-managers/hackedbox/default.nix2
-rw-r--r--pkgs/applications/window-managers/herbstluftwm/default.nix2
-rw-r--r--pkgs/applications/window-managers/hyprwm/hypr/default.nix2
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprland-plugins/default.nix (renamed from pkgs/applications/window-managers/hyprwm/hyprland/plugins.nix)16
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprland-protocols/default.nix4
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprpaper/default.nix38
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprpicker/default.nix36
-rw-r--r--pkgs/applications/window-managers/hyprwm/xdg-desktop-portal-hyprland/default.nix4
-rw-r--r--pkgs/applications/window-managers/i3/blocks-gaps.nix2
-rw-r--r--pkgs/applications/window-managers/i3/blocks.nix2
-rw-r--r--pkgs/applications/window-managers/i3/bumblebee-status/default.nix2
-rw-r--r--pkgs/applications/window-managers/i3/cycle-focus.nix2
-rw-r--r--pkgs/applications/window-managers/i3/default.nix2
-rw-r--r--pkgs/applications/window-managers/i3/i3-resurrect.nix2
-rw-r--r--pkgs/applications/window-managers/i3/i3ipc-glib.nix2
-rw-r--r--pkgs/applications/window-managers/i3/lock-blur.nix2
-rw-r--r--pkgs/applications/window-managers/i3/lock-color.nix2
-rw-r--r--pkgs/applications/window-managers/i3/lock-fancy-rapid.nix2
-rw-r--r--pkgs/applications/window-managers/i3/lock.nix2
-rw-r--r--pkgs/applications/window-managers/i3/pystatus.nix2
-rw-r--r--pkgs/applications/window-managers/i3/rounded.nix2
-rw-r--r--pkgs/applications/window-managers/jay/default.nix8
-rw-r--r--pkgs/applications/window-managers/jwm/jwm-settings-manager.nix2
-rw-r--r--pkgs/applications/window-managers/leftwm/default.nix2
-rw-r--r--pkgs/applications/window-managers/lemonbar/default.nix6
-rw-r--r--pkgs/applications/window-managers/lemonbar/xft.nix2
-rw-r--r--pkgs/applications/window-managers/lesbar/default.nix2
-rw-r--r--pkgs/applications/window-managers/maui-shell/default.nix2
-rw-r--r--pkgs/applications/window-managers/neocomp/default.nix2
-rw-r--r--pkgs/applications/window-managers/owl/default.nix2
-rw-r--r--pkgs/applications/window-managers/phosh/default.nix4
-rw-r--r--pkgs/applications/window-managers/phosh/phosh-mobile-settings.nix2
-rw-r--r--pkgs/applications/window-managers/sawfish/default.nix2
-rw-r--r--pkgs/applications/window-managers/shod/default.nix2
-rw-r--r--pkgs/applications/window-managers/sommelier/default.nix6
-rw-r--r--pkgs/applications/window-managers/spectrwm/default.nix2
-rw-r--r--pkgs/applications/window-managers/trayer/default.nix2
-rw-r--r--pkgs/applications/window-managers/wayfire/focus-request.nix2
-rw-r--r--pkgs/applications/window-managers/wayfire/windecor.nix2
-rw-r--r--pkgs/applications/window-managers/wayfire/wwp-switcher.nix2
-rw-r--r--pkgs/applications/window-managers/weston/default.nix6
-rw-r--r--pkgs/applications/window-managers/windowchef/default.nix2
-rw-r--r--pkgs/applications/window-managers/wmderlandc/default.nix2
-rw-r--r--pkgs/applications/window-managers/wmii/default.nix2
-rw-r--r--pkgs/applications/window-managers/xmonad/log-applet/default.nix2
-rw-r--r--pkgs/applications/window-managers/xmonad/xmonadctl.nix2
-rw-r--r--pkgs/applications/window-managers/yabar/build.nix2
-rw-r--r--pkgs/build-support/bintools-wrapper/default.nix8
-rw-r--r--pkgs/build-support/deterministic-uname/default.nix22
-rw-r--r--pkgs/build-support/deterministic-uname/deterministic-uname.sh2
-rw-r--r--pkgs/build-support/dotnet/build-dotnet-global-tool/default.nix2
-rw-r--r--pkgs/build-support/dotnet/build-dotnet-module/default.nix40
-rw-r--r--pkgs/build-support/dotnet/build-dotnet-module/hooks/default.nix75
-rw-r--r--pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-build-hook.sh76
-rw-r--r--pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-check-hook.sh62
-rw-r--r--pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-configure-hook.sh98
-rw-r--r--pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-fixup-hook.sh81
-rw-r--r--pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-install-hook.sh80
-rw-r--r--pkgs/build-support/emacs/melpa.nix32
-rw-r--r--pkgs/build-support/flutter/default.nix47
-rw-r--r--pkgs/build-support/libredirect/default.nix2
-rw-r--r--pkgs/build-support/make-pkgconfigitem/default.nix2
-rw-r--r--pkgs/build-support/node/fetch-yarn-deps/default.nix8
-rw-r--r--pkgs/build-support/php/builders/default.nix1
-rw-r--r--pkgs/build-support/php/builders/v1/build-composer-project.nix7
-rw-r--r--pkgs/build-support/php/builders/v1/build-composer-repository.nix5
-rw-r--r--pkgs/build-support/php/builders/v1/build-composer-with-plugin.nix161
-rw-r--r--pkgs/build-support/php/builders/v1/hooks/composer-install-hook.sh2
-rw-r--r--pkgs/build-support/php/builders/v1/hooks/composer-repository-hook.sh2
-rw-r--r--pkgs/build-support/php/builders/v1/hooks/composer-with-plugin-vendor-hook.sh93
-rw-r--r--pkgs/build-support/php/builders/v1/hooks/default.nix15
-rw-r--r--pkgs/build-support/php/builders/v1/hooks/php-script-utils.bash15
-rw-r--r--pkgs/build-support/php/pkgs/composer-local-repo-plugin.nix116
-rw-r--r--pkgs/build-support/php/pkgs/composer-phar.nix2
-rw-r--r--pkgs/build-support/rust/build-rust-crate/build-crate.nix2
-rw-r--r--pkgs/build-support/rust/build-rust-crate/configure-crate.nix2
-rw-r--r--pkgs/build-support/rust/build-rust-crate/default.nix4
-rw-r--r--pkgs/build-support/rust/build-rust-crate/install-crate.nix2
-rw-r--r--pkgs/build-support/rust/build-rust-crate/test/default.nix2
-rw-r--r--pkgs/build-support/rust/hooks/cargo-build-hook.sh2
-rw-r--r--pkgs/build-support/rust/hooks/cargo-check-hook.sh2
-rw-r--r--pkgs/build-support/rust/hooks/cargo-nextest-hook.sh2
-rw-r--r--pkgs/build-support/rust/hooks/maturin-build-hook.sh2
-rw-r--r--pkgs/build-support/setup-hooks/strip.sh16
-rw-r--r--pkgs/build-support/singularity-tools/default.nix2
-rw-r--r--pkgs/build-support/src-only/default.nix2
-rw-r--r--pkgs/build-support/testers/default.nix4
-rw-r--r--pkgs/build-support/testers/hasPkgConfigModules/tester.nix2
-rw-r--r--pkgs/build-support/testers/lychee.nix69
-rw-r--r--pkgs/build-support/testers/test/default.nix2
-rw-r--r--pkgs/build-support/trivial-builders/test/references/default.nix23
-rw-r--r--pkgs/build-support/writers/scripts.nix2
-rw-r--r--pkgs/by-name/_2/_2ship2harkinian/0001-deps.patch16
-rw-r--r--pkgs/by-name/_2/_2ship2harkinian/package.nix216
-rw-r--r--pkgs/by-name/_4/_4d-minesweeper/package.nix2
-rw-r--r--pkgs/by-name/_4/_4th/package.nix2
-rw-r--r--pkgs/by-name/_6/_64gram/package.nix6
-rw-r--r--pkgs/by-name/a4/a4/package.nix2
-rw-r--r--pkgs/by-name/aa/aaaaxy/package.nix8
-rw-r--r--pkgs/by-name/aa/aarch64-esr-decoder/package.nix2
-rw-r--r--pkgs/by-name/ab/aba/package.nix2
-rw-r--r--pkgs/by-name/ab/ablog/package.nix (renamed from pkgs/applications/misc/ablog/default.nix)16
-rw-r--r--pkgs/by-name/ad/ad-ldap-enum/package.nix2
-rw-r--r--pkgs/by-name/ad/ad-miner/package.nix11
-rw-r--r--pkgs/by-name/ad/adbtuifm/package.nix2
-rw-r--r--pkgs/by-name/ad/adrs/package.nix2
-rw-r--r--pkgs/by-name/ad/adwsteamgtk/package.nix2
-rw-r--r--pkgs/by-name/ae/aegisub/package.nix11
-rw-r--r--pkgs/by-name/af/affine/package.nix2
-rw-r--r--pkgs/by-name/af/afterglow-cursors-recolored/package.nix2
-rw-r--r--pkgs/by-name/af/afterstep/package.nix2
-rw-r--r--pkgs/by-name/ag/ags/package.nix2
-rw-r--r--pkgs/by-name/ai/airlift/package.nix9
-rw-r--r--pkgs/by-name/al/alacarte/package.nix2
-rw-r--r--pkgs/by-name/al/alephone-evil/package.nix2
-rw-r--r--pkgs/by-name/al/alephone-pheonix/package.nix2
-rw-r--r--pkgs/by-name/al/allmark/package.nix (renamed from pkgs/servers/allmark/default.nix)25
-rw-r--r--pkgs/by-name/al/alp/package.nix2
-rw-r--r--pkgs/by-name/al/alt-tab-macos/package.nix11
-rw-r--r--pkgs/by-name/am/am2rlauncher/package.nix2
-rw-r--r--pkgs/by-name/am/amazon-ssm-agent/package.nix10
-rw-r--r--pkgs/by-name/am/amber-lang/package.nix49
-rw-r--r--pkgs/by-name/am/amfora/package.nix2
-rw-r--r--pkgs/by-name/an/ananicy-cpp/match-wrappers.patch16
-rw-r--r--pkgs/by-name/an/ananicy-cpp/package.nix (renamed from pkgs/misc/ananicy-cpp/default.nix)26
-rw-r--r--pkgs/by-name/an/ananicy-rules-cachyos/package.nix6
-rw-r--r--pkgs/by-name/an/anime4k/package.nix2
-rw-r--r--pkgs/by-name/an/ansel/package.nix2
-rw-r--r--pkgs/by-name/an/anyrun/package.nix2
-rw-r--r--pkgs/by-name/an/anytype/package.nix4
-rw-r--r--pkgs/by-name/ap/aphorme/package.nix2
-rw-r--r--pkgs/by-name/ap/api-linter/package.nix6
-rw-r--r--pkgs/by-name/ap/apl386/package.nix (renamed from pkgs/data/fonts/apl386/default.nix)6
-rw-r--r--pkgs/by-name/ap/apostrophe/package.nix2
-rw-r--r--pkgs/by-name/ap/application-title-bar/package.nix36
-rw-r--r--pkgs/by-name/ap/aprx/package.nix2
-rw-r--r--pkgs/by-name/ap/apt-mirror/package.nix2
-rw-r--r--pkgs/by-name/ap/apt-offline/package.nix9
-rw-r--r--pkgs/by-name/ap/apt/package.nix4
-rw-r--r--pkgs/by-name/ap/apx-gui/package.nix2
-rw-r--r--pkgs/by-name/ar/arc-browser/package.nix4
-rw-r--r--pkgs/by-name/ar/argtable/package.nix2
-rw-r--r--pkgs/by-name/ar/aribb24/package.nix2
-rw-r--r--pkgs/by-name/ar/ark-pixel-font/limit-builds.patch34
-rw-r--r--pkgs/by-name/ar/ark-pixel-font/package.nix10
-rw-r--r--pkgs/by-name/ar/arkenfox-userjs/package.nix41
-rw-r--r--pkgs/by-name/ar/arrow-cpp/package.nix2
-rw-r--r--pkgs/by-name/ar/artalk/package.nix8
-rw-r--r--pkgs/by-name/ar/arxiv-latex-cleaner/package.nix4
-rw-r--r--pkgs/by-name/as/asahi-bless/package.nix2
-rw-r--r--pkgs/by-name/as/asahi-btsync/package.nix2
-rw-r--r--pkgs/by-name/as/asahi-nvram/package.nix2
-rw-r--r--pkgs/by-name/as/asahi-wifisync/package.nix2
-rw-r--r--pkgs/by-name/as/ascii-draw/package.nix2
-rw-r--r--pkgs/by-name/as/asciiquarium-transparent/package.nix2
-rw-r--r--pkgs/by-name/as/aseprite/package.nix171
-rw-r--r--pkgs/by-name/as/aseprite/shared-fmt.patch71
-rw-r--r--pkgs/by-name/as/aseprite/shared-libwebp.patch (renamed from pkgs/applications/editors/aseprite/shared-libwebp.patch)0
-rw-r--r--pkgs/by-name/as/aseprite/shared-skia-deps.patch (renamed from pkgs/applications/editors/aseprite/shared-skia-deps.patch)0
-rw-r--r--pkgs/by-name/as/assemblyscript/package.nix2
-rw-r--r--pkgs/by-name/as/assetfinder/package.nix12
-rw-r--r--pkgs/by-name/as/ast-grep/package.nix8
-rw-r--r--pkgs/by-name/as/async-profiler/package.nix2
-rw-r--r--pkgs/by-name/at/atac/package.nix2
-rw-r--r--pkgs/by-name/at/atari800/package.nix2
-rw-r--r--pkgs/by-name/at/ataripp/package.nix2
-rw-r--r--pkgs/by-name/at/athens/package.nix6
-rw-r--r--pkgs/by-name/at/atlauncher/package.nix17
-rw-r--r--pkgs/by-name/at/attic-server/package.nix11
-rw-r--r--pkgs/by-name/at/atuin/package.nix23
-rw-r--r--pkgs/by-name/au/audible-cli/package.nix2
-rw-r--r--pkgs/by-name/au/audiness/package.nix4
-rw-r--r--pkgs/by-name/au/audiobookshelf/package.nix2
-rw-r--r--pkgs/by-name/au/audiobookshelf/source.json10
-rw-r--r--pkgs/by-name/au/audion/package.nix6
-rw-r--r--pkgs/by-name/au/authentik/ldap.nix2
-rw-r--r--pkgs/by-name/au/authentik/package.nix2
-rw-r--r--pkgs/by-name/au/auto-cpufreq/fix-version-output.patch (renamed from pkgs/tools/system/auto-cpufreq/fix-version-output.patch)22
-rw-r--r--pkgs/by-name/au/auto-cpufreq/package.nix100
-rw-r--r--pkgs/by-name/au/auto-cpufreq/prevent-install-and-copy.patch (renamed from pkgs/tools/system/auto-cpufreq/prevent-install-and-copy.patch)105
-rw-r--r--pkgs/by-name/au/auto-cpufreq/prevent-update.patch152
-rw-r--r--pkgs/by-name/au/autosuspend/package.nix3
-rw-r--r--pkgs/by-name/au/autotools-language-server/package.nix51
-rw-r--r--pkgs/by-name/av/avisynthplus/package.nix2
-rw-r--r--pkgs/by-name/ay/ayatana-indicator-datetime/package.nix4
-rw-r--r--pkgs/by-name/ay/ayatana-indicator-display/package.nix124
-rw-r--r--pkgs/by-name/ay/ayatana-indicator-messages/package.nix4
-rw-r--r--pkgs/by-name/ay/ayatana-indicator-power/package.nix4
-rw-r--r--pkgs/by-name/ay/ayatana-indicator-session/package.nix4
-rw-r--r--pkgs/by-name/ay/ayatana-indicator-sound/package.nix125
-rw-r--r--pkgs/by-name/ba/babeltrace/package.nix80
-rw-r--r--pkgs/by-name/ba/babeltrace2/package.nix101
-rw-r--r--pkgs/by-name/ba/banana-cursor/package.nix2
-rw-r--r--pkgs/by-name/ba/baresip/package.nix4
-rw-r--r--pkgs/by-name/ba/barrage/package.nix2
-rw-r--r--pkgs/by-name/ba/basedpyright/package-lock.json193
-rw-r--r--pkgs/by-name/ba/basedpyright/package.nix88
-rwxr-xr-xpkgs/by-name/ba/basedpyright/update.sh44
-rw-r--r--pkgs/by-name/ba/bash-language-server/package.nix75
-rw-r--r--pkgs/by-name/ba/bat/package.nix2
-rw-r--r--pkgs/by-name/ba/batmon/package.nix34
-rw-r--r--pkgs/by-name/bc/bcachefs-tools/fix-encrypted-boot.patch92
-rw-r--r--pkgs/by-name/bc/bcachefs-tools/package.nix (renamed from pkgs/tools/filesystems/bcachefs-tools/default.nix)18
-rw-r--r--pkgs/by-name/bd/bdt/package.nix25
-rw-r--r--pkgs/by-name/be/beatsabermodmanager/deps.nix (renamed from pkgs/games/BeatSaberModManager/deps.nix)0
-rw-r--r--pkgs/by-name/be/beatsabermodmanager/package.nix (renamed from pkgs/games/BeatSaberModManager/default.nix)4
-rw-r--r--pkgs/by-name/be/bee/package.nix6
-rw-r--r--pkgs/by-name/be/beekeeper-studio/package.nix6
-rw-r--r--pkgs/by-name/be/benchexec/package.nix2
-rw-r--r--pkgs/by-name/be/bend/package.nix9
-rw-r--r--pkgs/by-name/be/bepass/package.nix2
-rw-r--r--pkgs/by-name/be/berry/package.nix2
-rw-r--r--pkgs/by-name/be/betula/package.nix6
-rw-r--r--pkgs/by-name/bi/bicep/deps.nix133
-rw-r--r--pkgs/by-name/bi/bicep/package.nix23
-rwxr-xr-xpkgs/by-name/bi/bicep/updater.sh9
-rw-r--r--pkgs/by-name/bi/biglybt/package.nix2
-rw-r--r--pkgs/by-name/bi/bilibili/package.nix7
-rw-r--r--pkgs/by-name/bi/bitmagnet/package.nix8
-rw-r--r--pkgs/by-name/bi/bitwarden-cli/package.nix8
-rw-r--r--pkgs/by-name/bi/bitwarden-desktop/package.nix22
-rw-r--r--pkgs/by-name/bk/bk/package.nix2
-rw-r--r--pkgs/by-name/bl/blade-formatter/package-lock.json13221
-rw-r--r--pkgs/by-name/bl/blade-formatter/package.nix67
-rwxr-xr-xpkgs/by-name/bl/blade-formatter/update.sh38
-rw-r--r--pkgs/by-name/bl/blockattack/package.nix2
-rw-r--r--pkgs/by-name/bl/blockbench/package.nix6
-rw-r--r--pkgs/by-name/bl/bluez-tools/package.nix2
-rw-r--r--pkgs/by-name/bm/bmake/001-bootstrap-fix.diff10
-rw-r--r--pkgs/by-name/bm/bmake/002-dont-test-while-installing.diff10
-rw-r--r--pkgs/by-name/bm/bmake/package.nix110
-rw-r--r--pkgs/by-name/bn/bngblaster/package.nix4
-rw-r--r--pkgs/by-name/bo/bochs/package.nix2
-rw-r--r--pkgs/by-name/bo/boehmgc/package.nix7
-rw-r--r--pkgs/by-name/bo/bombsquad/package.nix40
-rw-r--r--pkgs/by-name/bo/bonsai/package.nix31
-rw-r--r--pkgs/by-name/bo/boogie/package.nix6
-rw-r--r--pkgs/by-name/bo/boxbuddy/package.nix8
-rw-r--r--pkgs/by-name/bp/bpftop/package.nix2
-rw-r--r--pkgs/by-name/bp/bpftrace/package.nix2
-rw-r--r--pkgs/by-name/bq/bqn/001-libbqn-path.patch (renamed from pkgs/development/interpreters/bqn/mlochbaum-bqn/001-libbqn-path.patch)0
-rw-r--r--pkgs/by-name/bq/bqn/package.nix62
-rw-r--r--pkgs/by-name/br/braa/package.nix2
-rw-r--r--pkgs/by-name/br/breads-ad/package.nix40
-rw-r--r--pkgs/by-name/br/brickstore/package.nix92
-rw-r--r--pkgs/by-name/br/brill/package.nix2
-rw-r--r--pkgs/by-name/br/broom/package.nix2
-rw-r--r--pkgs/by-name/br/bruno/package.nix10
-rw-r--r--pkgs/by-name/bt/btanks/package.nix (renamed from pkgs/games/btanks/default.nix)68
-rw-r--r--pkgs/by-name/bt/btrfs-assistant/package.nix97
-rw-r--r--pkgs/by-name/bu/buckle/package.nix2
-rw-r--r--pkgs/by-name/bu/buffer/package.nix62
-rw-r--r--pkgs/by-name/bu/bufisk/package.nix2
-rw-r--r--pkgs/by-name/bu/bulk_extractor/package.nix2
-rw-r--r--pkgs/by-name/bu/bulloak/package.nix2
-rw-r--r--pkgs/by-name/bu/bullshit/package.nix2
-rw-r--r--pkgs/by-name/bu/bunbun/package.nix7
-rw-r--r--pkgs/by-name/bu/butt/package.nix4
-rw-r--r--pkgs/by-name/by/bytecode-viewer/package.nix2
-rw-r--r--pkgs/by-name/c-/c-graph/package.nix2
-rw-r--r--pkgs/by-name/c-/c-periphery/package.nix2
-rw-r--r--pkgs/by-name/c2/c2patool/package.nix6
-rw-r--r--pkgs/by-name/ca/caddy/package.nix11
-rw-r--r--pkgs/by-name/ca/caido/package.nix2
-rw-r--r--pkgs/by-name/ca/caligula/package.nix8
-rw-r--r--pkgs/by-name/ca/candy-icons/package.nix2
-rw-r--r--pkgs/by-name/ca/cano/package.nix8
-rw-r--r--pkgs/by-name/ca/cardboard/package.nix2
-rw-r--r--pkgs/by-name/ca/cargo-bloat/package.nix2
-rw-r--r--pkgs/by-name/ca/cargo-bump/package.nix2
-rw-r--r--pkgs/by-name/ca/cargo-features-manager/package.nix2
-rw-r--r--pkgs/by-name/ca/cargo-i18n/package.nix6
-rw-r--r--pkgs/by-name/ca/cargo-information/package.nix2
-rw-r--r--pkgs/by-name/ca/cargo-make/package.nix2
-rw-r--r--pkgs/by-name/ca/cargo-rdme/package.nix6
-rw-r--r--pkgs/by-name/ca/cargo-shear/package.nix6
-rw-r--r--pkgs/by-name/ca/cargo-swift/package.nix2
-rw-r--r--pkgs/by-name/ca/cargo-wasi/package.nix2
-rw-r--r--pkgs/by-name/ca/cargo-xwin/package.nix6
-rw-r--r--pkgs/by-name/ca/castero/package.nix5
-rw-r--r--pkgs/by-name/ca/castxml/package.nix28
-rw-r--r--pkgs/by-name/ca/cat9/package.nix2
-rw-r--r--pkgs/by-name/ca/catppuccin-catwalk/package.nix (renamed from pkgs/development/tools/misc/catppuccin-catwalk/default.nix)43
-rw-r--r--pkgs/by-name/ca/catppuccin-cursors/package.nix (renamed from pkgs/data/icons/catppuccin-cursors/default.nix)42
-rw-r--r--pkgs/by-name/ca/catppuccin-fcitx5/package.nix31
-rw-r--r--pkgs/by-name/ca/catppuccin-gtk/package.nix (renamed from pkgs/data/themes/catppuccin-gtk/default.nix)55
-rw-r--r--pkgs/by-name/ca/catppuccin-plymouth/package.nix56
-rw-r--r--pkgs/by-name/ca/catppuccin-sddm-corners/package.nix2
-rw-r--r--pkgs/by-name/ca/catppuccin-whiskers/package.nix23
-rw-r--r--pkgs/by-name/ca/cavalier/package.nix2
-rw-r--r--pkgs/by-name/cc/ccache/package.nix199
-rw-r--r--pkgs/by-name/cd/cdecl-blocks/cdecl-2.5-lex.patch (renamed from pkgs/by-name/cd/cdecl/cdecl-2.5-lex.patch)0
-rw-r--r--pkgs/by-name/cd/cdecl-blocks/package.nix82
-rw-r--r--pkgs/by-name/cd/cdecl-blocks/test_remove_interactive_line.patch (renamed from pkgs/by-name/cd/cdecl/test_remove_interactive_line.patch)0
-rw-r--r--pkgs/by-name/cd/cdecl/package.nix48
-rw-r--r--pkgs/by-name/cd/cdwe/package.nix2
-rw-r--r--pkgs/by-name/ce/celeste-classic/package.nix2
-rw-r--r--pkgs/by-name/ce/celluloid/package.nix8
-rw-r--r--pkgs/by-name/ce/cemu/0000-spirv-tools-opt-cmakelists.patch (renamed from pkgs/applications/emulators/cemu/cmakelists.patch)0
-rw-r--r--pkgs/by-name/ce/cemu/package.nix (renamed from pkgs/applications/emulators/cemu/default.nix)128
-rw-r--r--pkgs/by-name/ce/cent/package.nix6
-rw-r--r--pkgs/by-name/ce/centerpiece/package.nix8
-rw-r--r--pkgs/by-name/ce/centrifugo/package.nix6
-rw-r--r--pkgs/by-name/ce/certificate-ripper/package.nix2
-rw-r--r--pkgs/by-name/ch/ch341eeprom/package.nix36
-rw-r--r--pkgs/by-name/ch/challenger/package.nix81
-rw-r--r--pkgs/by-name/ch/changelog-d/package.nix6
-rw-r--r--pkgs/by-name/ch/changelog-d/updateScript.nix12
-rw-r--r--pkgs/by-name/ch/charm-freeze/package.nix2
-rw-r--r--pkgs/by-name/ch/chatgpt-shell-cli/package.nix48
-rw-r--r--pkgs/by-name/ch/chess-tui/package.nix2
-rw-r--r--pkgs/by-name/ch/chezmoi/package.nix6
-rw-r--r--pkgs/by-name/ch/chow-centaur/package.nix (renamed from pkgs/applications/audio/ChowCentaur/default.nix)8
-rw-r--r--pkgs/by-name/ch/chow-kick/package.nix (renamed from pkgs/applications/audio/ChowKick/default.nix)16
-rw-r--r--pkgs/by-name/ch/chow-phaser/package.nix (renamed from pkgs/applications/audio/ChowPhaser/default.nix)9
-rw-r--r--pkgs/by-name/ch/chow-tape-model/package.nix (renamed from pkgs/applications/audio/CHOWTapeModel/default.nix)10
-rw-r--r--pkgs/by-name/ch/chrysalis/package.nix2
-rw-r--r--pkgs/by-name/ci/ci-edit/package.nix2
-rw-r--r--pkgs/by-name/ci/cidr-merger/package.nix2
-rw-r--r--pkgs/by-name/ci/cimg/package.nix8
-rw-r--r--pkgs/by-name/cl/clang-tidy-sarif/package.nix37
-rw-r--r--pkgs/by-name/cl/clang-uml/package.nix79
-rw-r--r--pkgs/by-name/cl/clang-uml/wrapper31
-rw-r--r--pkgs/by-name/cl/clarity-city/package.nix2
-rw-r--r--pkgs/by-name/cl/clash-verge-rev/package.nix4
-rw-r--r--pkgs/by-name/cl/clash-verge/package.nix2
-rw-r--r--pkgs/by-name/cl/clatd/package.nix2
-rw-r--r--pkgs/by-name/cl/clickup/package.nix44
-rw-r--r--pkgs/by-name/cl/clipcat/package.nix6
-rw-r--r--pkgs/by-name/cl/cljfmt/package.nix2
-rw-r--r--pkgs/by-name/cl/cloudlogoffline/package.nix31
-rw-r--r--pkgs/by-name/cm/cmake-lint/package.nix46
-rw-r--r--pkgs/by-name/cm/cmake/007-darwin-bsd-ps-abspath.diff41
-rw-r--r--pkgs/by-name/cm/cmake/package.nix15
-rw-r--r--pkgs/by-name/cm/cmakerc/package.nix2
-rw-r--r--pkgs/by-name/co/cockpit/package.nix4
-rw-r--r--pkgs/by-name/co/code2prompt/Cargo.lock1699
-rw-r--r--pkgs/by-name/co/code2prompt/package.nix47
-rw-r--r--pkgs/by-name/co/codeberg-cli/package.nix1
-rw-r--r--pkgs/by-name/co/codefresh/package.nix2
-rw-r--r--pkgs/by-name/co/codeium/package.nix10
-rw-r--r--pkgs/by-name/co/codespelunker/package.nix2
-rw-r--r--pkgs/by-name/co/codux/package.nix6
-rw-r--r--pkgs/by-name/co/coinmp/0001-change-more-reinterpret_cast-from-NULL-to-C-cast-see.patch95
-rw-r--r--pkgs/by-name/co/coinmp/0001-use-static_cast-for-static-cast-fixes-319.patch25
-rw-r--r--pkgs/by-name/co/coinmp/0002-change-reinterpret_cast-of-NULL-to-C-style-case-fixe.patch26
-rw-r--r--pkgs/by-name/co/coinmp/package.nix42
-rw-r--r--pkgs/by-name/co/colorgrind/package.nix33
-rw-r--r--pkgs/by-name/co/comet-gog/package.nix46
-rw-r--r--pkgs/by-name/co/comic-mandown/package.nix1
-rw-r--r--pkgs/by-name/co/commafeed/package.nix3
-rw-r--r--pkgs/by-name/co/commitlint-rs/package.nix41
-rw-r--r--pkgs/by-name/co/composefs/package.nix20
-rw-r--r--pkgs/by-name/co/composer-require-checker/package.nix2
-rw-r--r--pkgs/by-name/co/connman/package.nix3
-rw-r--r--pkgs/by-name/co/connman_dmenu/package.nix2
-rw-r--r--pkgs/by-name/co/conpass/package.nix42
-rw-r--r--pkgs/by-name/co/consul/package.nix6
-rw-r--r--pkgs/by-name/co/convco/package.nix2
-rw-r--r--pkgs/by-name/co/cook-cli/package.nix2
-rw-r--r--pkgs/by-name/co/coost/package.nix2
-rw-r--r--pkgs/by-name/co/corefonts/no-op.conf (renamed from pkgs/data/fonts/corefonts/no-op.conf)0
-rw-r--r--pkgs/by-name/co/corefonts/package.nix (renamed from pkgs/data/fonts/corefonts/default.nix)2
-rw-r--r--pkgs/by-name/co/corrscope/package.nix6
-rw-r--r--pkgs/by-name/co/cosmic-icons/package.nix6
-rw-r--r--pkgs/by-name/co/cosmic-tasks/package.nix2
-rw-r--r--pkgs/by-name/co/coyim/package.nix (renamed from pkgs/applications/networking/instant-messengers/coyim/default.nix)20
-rw-r--r--pkgs/by-name/cp/cppitertools/package.nix99
-rw-r--r--pkgs/by-name/cp/cpu-energy-meter/package.nix2
-rw-r--r--pkgs/by-name/cr/crawley/package.nix8
-rw-r--r--pkgs/by-name/cr/criterion/package.nix2
-rw-r--r--pkgs/by-name/cr/cro-mag-rally/package.nix2
-rw-r--r--pkgs/by-name/cr/crossplane-cli/package.nix8
-rw-r--r--pkgs/by-name/cr/crosswords/package.nix2
-rw-r--r--pkgs/by-name/cr/crunchy-cli/Cargo.lock17
-rw-r--r--pkgs/by-name/cr/crunchy-cli/package.nix5
-rw-r--r--pkgs/by-name/cr/cryptor/package.nix4
-rw-r--r--pkgs/by-name/cs/csharpier/package.nix2
-rw-r--r--pkgs/by-name/cs/csvkit/package.nix2
-rw-r--r--pkgs/by-name/cs/csvlens/package.nix6
-rw-r--r--pkgs/by-name/cu/cucumber/package.nix2
-rw-r--r--pkgs/by-name/cu/cue/package.nix16
-rw-r--r--pkgs/by-name/cu/cups-kyocera-3500-4500/package.nix86
-rw-r--r--pkgs/by-name/cy/cyanrip/package.nix4
-rw-r--r--pkgs/by-name/cy/cyme/Cargo.lock10
-rw-r--r--pkgs/by-name/cy/cyme/package.nix7
-rw-r--r--pkgs/by-name/cz/czkawka/package.nix2
-rw-r--r--pkgs/by-name/da/dapr-cli/package.nix2
-rw-r--r--pkgs/by-name/da/darklua/package.nix2
-rw-r--r--pkgs/by-name/da/datatrove/package.nix65
-rw-r--r--pkgs/by-name/da/davis/package.nix6
-rw-r--r--pkgs/by-name/da/daytona-bin/package.nix2
-rw-r--r--pkgs/by-name/db/dbeaver-bin/package.nix103
-rwxr-xr-xpkgs/by-name/db/dbeaver-bin/update.sh26
-rw-r--r--pkgs/by-name/db/dbgate/package.nix71
-rw-r--r--pkgs/by-name/db/dbqn/package.nix (renamed from pkgs/development/interpreters/bqn/dzaima-bqn/default.nix)8
-rw-r--r--pkgs/by-name/db/dbus-cpp/package.nix2
-rw-r--r--pkgs/by-name/dc/dc3dd/package.nix2
-rw-r--r--pkgs/by-name/dd/ddsmt/package.nix2
-rw-r--r--pkgs/by-name/de/debianutils/package.nix4
-rw-r--r--pkgs/by-name/de/decent-sampler/package.nix2
-rw-r--r--pkgs/by-name/de/decker/package.nix4
-rw-r--r--pkgs/by-name/de/delfin/package.nix6
-rw-r--r--pkgs/by-name/de/deltachat-rpc-server/package.nix26
-rw-r--r--pkgs/by-name/de/dependabot-cli/package.nix3
-rw-r--r--pkgs/by-name/de/design/package.nix58
-rw-r--r--pkgs/by-name/de/desktop-postflop/Cargo.lock3894
-rw-r--r--pkgs/by-name/de/desktop-postflop/package.nix89
-rw-r--r--pkgs/by-name/de/devcontainer/package.nix72
-rw-r--r--pkgs/by-name/de/devenv/package.nix6
-rw-r--r--pkgs/by-name/dg/dgoss/package.nix31
-rw-r--r--pkgs/by-name/di/dillo/package.nix6
-rw-r--r--pkgs/by-name/di/discord-gamesdk/package.nix2
-rw-r--r--pkgs/by-name/di/discordchatexporter-cli/package.nix2
-rw-r--r--pkgs/by-name/di/disko/package.nix2
-rw-r--r--pkgs/by-name/di/dissent/package.nix29
-rw-r--r--pkgs/by-name/di/distribution/package.nix67
-rw-r--r--pkgs/by-name/dm/dmarc-report-converter/package.nix4
-rw-r--r--pkgs/by-name/dm/dmenu-bluetooth/package.nix2
-rw-r--r--pkgs/by-name/dn/dns2tcp/package.nix2
-rw-r--r--pkgs/by-name/dn/dnss/package.nix25
-rw-r--r--pkgs/by-name/do/docfd/package.nix4
-rw-r--r--pkgs/by-name/do/docker-credential-gcr/package.nix2
-rw-r--r--pkgs/by-name/do/docopts/package.nix34
-rw-r--r--pkgs/by-name/do/docuum/package.nix6
-rw-r--r--pkgs/by-name/do/dooit/package.nix2
-rw-r--r--pkgs/by-name/do/doppler/package.nix6
-rw-r--r--pkgs/by-name/do/dorion/package.nix6
-rw-r--r--pkgs/by-name/do/dosbox-staging/package.nix2
-rw-r--r--pkgs/by-name/do/dotbot/package.nix2
-rw-r--r--pkgs/by-name/do/dotenvy/package.nix25
-rw-r--r--pkgs/by-name/do/dotnet-outdated/package.nix2
-rw-r--r--pkgs/by-name/do/doublecmd/package.nix4
-rw-r--r--pkgs/by-name/do/dovecot_exporter/package.nix38
-rw-r--r--pkgs/by-name/do/downonspot/package.nix2
-rw-r--r--pkgs/by-name/dr/dreamchess/package.nix71
-rw-r--r--pkgs/by-name/ds/dsda-doom/package.nix2
-rw-r--r--pkgs/by-name/ds/dstep/package.nix2
-rw-r--r--pkgs/by-name/dt/dtools/package.nix5
-rw-r--r--pkgs/by-name/du/dub/package.nix (renamed from pkgs/development/tools/build-managers/dub/default.nix)71
-rw-r--r--pkgs/by-name/du/duckstation/001-fix-test-inclusion.diff (renamed from pkgs/applications/emulators/duckstation/001-fix-test-inclusion.diff)0
-rw-r--r--pkgs/by-name/du/duckstation/002-hardcode-vars.diff (renamed from pkgs/applications/emulators/duckstation/002-hardcode-vars.diff)0
-rw-r--r--pkgs/by-name/du/duckstation/package.nix (renamed from pkgs/applications/emulators/duckstation/default.nix)39
-rw-r--r--pkgs/by-name/du/duckstation/shaderc-patched.nix21
-rw-r--r--pkgs/by-name/du/dumbpipe/package.nix6
-rw-r--r--pkgs/by-name/du/dune3d/package.nix30
-rw-r--r--pkgs/by-name/dx/dxvk/package.nix1
-rw-r--r--pkgs/by-name/dx/dxvk_1/package.nix2
-rw-r--r--pkgs/by-name/dx/dxvk_2/package.nix2
-rw-r--r--pkgs/by-name/dy/dyalog/package.nix2
-rw-r--r--pkgs/by-name/dy/dynamodb-local/package.nix8
-rw-r--r--pkgs/by-name/e1/e1s/package.nix6
-rw-r--r--pkgs/by-name/ea/eask/package.nix (renamed from pkgs/development/tools/eask/default.nix)18
-rw-r--r--pkgs/by-name/eb/ebpf-usb/package.nix2
-rw-r--r--pkgs/by-name/ec/ecc/package.nix2
-rw-r--r--pkgs/by-name/ec/ecmtools/package.nix2
-rw-r--r--pkgs/by-name/ed/eduvpn-client/nix-python-prefix.patch13
-rw-r--r--pkgs/by-name/ed/eduvpn-client/package.nix11
-rw-r--r--pkgs/by-name/ei/eigenlayer/package.nix6
-rw-r--r--pkgs/by-name/ej/ejsonkms/package.nix41
-rw-r--r--pkgs/by-name/ek/eksctl/package.nix8
-rw-r--r--pkgs/by-name/el/element-call/name.patch10
-rw-r--r--pkgs/by-name/el/element-call/package.json129
-rw-r--r--pkgs/by-name/el/element-call/package.nix58
-rw-r--r--pkgs/by-name/el/elvish/package.nix2
-rw-r--r--pkgs/by-name/em/emacsclient-commands/package.nix2
-rw-r--r--pkgs/by-name/em/emocli/package.nix2
-rw-r--r--pkgs/by-name/em/emulationstation-de/package.nix2
-rw-r--r--pkgs/by-name/em/emulationstation/package.nix2
-rw-r--r--pkgs/by-name/en/endlessh-go/package.nix2
-rw-r--r--pkgs/by-name/en/engage/package.nix2
-rw-r--r--pkgs/by-name/ep/epoll-shim/package.nix (renamed from pkgs/development/libraries/epoll-shim/default.nix)6
-rw-r--r--pkgs/by-name/ep/epy/package.nix28
-rw-r--r--pkgs/by-name/er/errands/package.nix11
-rw-r--r--pkgs/by-name/es/esbuild-config/package.nix5
-rw-r--r--pkgs/by-name/es/escambo/package.nix62
-rw-r--r--pkgs/by-name/es/espflash/package.nix6
-rw-r--r--pkgs/by-name/et/eta/package.nix36
-rw-r--r--pkgs/by-name/et/ethercat/package.nix4
-rw-r--r--pkgs/by-name/eu/eudev/package.nix2
-rw-r--r--pkgs/by-name/ev/evdevhook2/package.nix77
-rw-r--r--pkgs/by-name/ev/evebox/Cargo.lock2636
-rw-r--r--pkgs/by-name/ev/evebox/package.nix34
-rw-r--r--pkgs/by-name/ev/everdo/package.nix34
-rw-r--r--pkgs/by-name/ev/everforest-gtk-theme/package.nix44
-rw-r--r--pkgs/by-name/ew/eww/package.nix2
-rw-r--r--pkgs/by-name/ex/ext3grep/package.nix2
-rw-r--r--pkgs/by-name/ez/eza/package.nix8
-rw-r--r--pkgs/by-name/fa/facter/package.nix2
-rw-r--r--pkgs/by-name/fa/fantomas/package.nix4
-rw-r--r--pkgs/by-name/fa/fastfetch/package.nix4
-rw-r--r--pkgs/by-name/fc/fcast-client/package.nix37
-rw-r--r--pkgs/by-name/fc/fcitx5-catppuccin/package.nix39
-rw-r--r--pkgs/by-name/fc/fcitx5-tokyonight/package.nix44
-rw-r--r--pkgs/by-name/fe/feather/package.nix2
-rw-r--r--pkgs/by-name/fe/felix-fm/package.nix (renamed from pkgs/applications/file-managers/felix-fm/default.nix)21
-rw-r--r--pkgs/by-name/fe/fennel-ls/package.nix2
-rw-r--r--pkgs/by-name/ff/ff2mpv-rust/package.nix6
-rw-r--r--pkgs/by-name/ff/fflogs/package.nix6
-rw-r--r--pkgs/by-name/fg/fgqcanvas/package.nix2
-rw-r--r--pkgs/by-name/fi/fil-plugins/package.nix (renamed from pkgs/applications/audio/FIL-plugins/default.nix)11
-rw-r--r--pkgs/by-name/fi/fileinfo/package.nix2
-rw-r--r--pkgs/by-name/fi/files-cli/package.nix8
-rw-r--r--pkgs/by-name/fi/filterpath/package.nix39
-rw-r--r--pkgs/by-name/fi/find-billy/package.nix2
-rw-r--r--pkgs/by-name/fi/fira-mono/package.nix15
-rw-r--r--pkgs/by-name/fi/fira-sans/package.nix16
-rw-r--r--pkgs/by-name/fi/fira/package.nix4
-rw-r--r--pkgs/by-name/fi/firefly-iii/package.nix8
-rw-r--r--pkgs/by-name/fi/firefoxpwa/package.nix6
-rw-r--r--pkgs/by-name/fj/fjo/package.nix28
-rw-r--r--pkgs/by-name/fl/flac123/package.nix2
-rw-r--r--pkgs/by-name/fl/flake-checker/package.nix6
-rw-r--r--pkgs/by-name/fl/flarectl/package.nix6
-rw-r--r--pkgs/by-name/fl/flashmq/package.nix4
-rw-r--r--pkgs/by-name/fl/flatito/package.nix4
-rw-r--r--pkgs/by-name/fl/flawz/package.nix57
-rw-r--r--pkgs/by-name/fl/fleng/package.nix2
-rw-r--r--pkgs/by-name/fl/flet-client-flutter/package.nix6
-rw-r--r--pkgs/by-name/fl/flip/package.nix2
-rw-r--r--pkgs/by-name/fl/flottbot/package.nix2
-rw-r--r--pkgs/by-name/fl/fluent-gtk-theme/package.nix114
-rw-r--r--pkgs/by-name/fl/fluxcd/package.nix (renamed from pkgs/applications/networking/cluster/fluxcd/default.nix)47
-rwxr-xr-xpkgs/by-name/fl/fluxcd/update.sh (renamed from pkgs/applications/networking/cluster/fluxcd/update.sh)0
-rw-r--r--pkgs/by-name/fm/fm-go/package.nix2
-rw-r--r--pkgs/by-name/fm/fmtoy/package.nix11
-rw-r--r--pkgs/by-name/fo/folio/package.nix2
-rw-r--r--pkgs/by-name/fo/font-manager/package.nix (renamed from pkgs/applications/misc/font-manager/default.nix)18
-rw-r--r--pkgs/by-name/fo/foomatic-db-engine/package.nix (renamed from pkgs/misc/cups/drivers/foomatic-db-engine/default.nix)0
-rw-r--r--pkgs/by-name/fo/foomatic-db-nonfree/package.nix (renamed from pkgs/misc/cups/drivers/foomatic-db-nonfree/default.nix)6
-rw-r--r--pkgs/by-name/fo/foomatic-db-ppds/package.nix (renamed from pkgs/misc/cups/drivers/foomatic-db-ppds/default.nix)0
-rw-r--r--pkgs/by-name/fo/foomatic-db/package.nix (renamed from pkgs/misc/cups/drivers/foomatic-db/default.nix)12
-rw-r--r--pkgs/by-name/fo/footswitch/package.nix2
-rw-r--r--pkgs/by-name/fo/fooyin/package.nix6
-rw-r--r--pkgs/by-name/fo/forgejo-runner/package.nix6
-rw-r--r--pkgs/by-name/fo/forgejo/package.nix52
-rw-r--r--pkgs/by-name/fo/formatjson5/package.nix2
-rw-r--r--pkgs/by-name/fo/fortune-kind/package.nix2
-rw-r--r--pkgs/by-name/fr/francis/package.nix4
-rw-r--r--pkgs/by-name/fr/frankenphp/package.nix14
-rw-r--r--pkgs/by-name/fr/free42/package.nix2
-rw-r--r--pkgs/by-name/fr/freecell-solver/package.nix6
-rw-r--r--pkgs/by-name/fr/frequest/package.nix2
-rw-r--r--pkgs/by-name/fr/fretboard/package.nix6
-rw-r--r--pkgs/by-name/fs/fsuae/package.nix2
-rw-r--r--pkgs/by-name/ft/fte/package.nix2
-rw-r--r--pkgs/by-name/fu/furmark/package.nix9
-rw-r--r--pkgs/by-name/fv/fvwm2/package.nix2
-rw-r--r--pkgs/by-name/fv/fvwm3/package.nix2
-rw-r--r--pkgs/by-name/fw/fwupd/package.nix13
-rw-r--r--pkgs/by-name/fz/fzf-make/package.nix6
-rw-r--r--pkgs/by-name/fz/fzf/package.nix4
-rw-r--r--pkgs/by-name/g3/g3kb-switch/package.nix4
-rw-r--r--pkgs/by-name/ga/gabutdm/package.nix (renamed from pkgs/applications/networking/gabutdm/default.nix)10
-rw-r--r--pkgs/by-name/ga/gambit-project/package.nix42
-rw-r--r--pkgs/by-name/ga/gamescope/package.nix9
-rw-r--r--pkgs/by-name/ga/gamescope/use-pkgconfig.patch9
-rw-r--r--pkgs/by-name/ga/gamja/package.nix2
-rw-r--r--pkgs/by-name/ga/garnet/package.nix2
-rw-r--r--pkgs/by-name/ga/gate/package.nix6
-rw-r--r--pkgs/by-name/gc/gcp-scanner/package.nix2
-rw-r--r--pkgs/by-name/gc/gcs/package.nix2
-rw-r--r--pkgs/by-name/gd/gdtoolkit_3/package.nix (renamed from pkgs/development/tools/gdtoolkit/default.nix)40
-rw-r--r--pkgs/by-name/gd/gdtoolkit_4/package.nix73
-rw-r--r--pkgs/by-name/ge/geesefs/package.nix33
-rw-r--r--pkgs/by-name/ge/gema/package.nix2
-rw-r--r--pkgs/by-name/ge/geopard/package.nix32
-rw-r--r--pkgs/by-name/ge/germinal/package.nix2
-rw-r--r--pkgs/by-name/ge/getmail6/package.nix (renamed from pkgs/tools/networking/getmail6/default.nix)8
-rw-r--r--pkgs/by-name/gh/gh-copilot/package.nix2
-rw-r--r--pkgs/by-name/gh/gh-eco/package.nix45
-rw-r--r--pkgs/by-name/gh/gh-poi/package.nix6
-rw-r--r--pkgs/by-name/gh/ghciwatch/package.nix6
-rw-r--r--pkgs/by-name/gh/ghfetch/package.nix2
-rw-r--r--pkgs/by-name/gi/git-agecrypt/package.nix2
-rw-r--r--pkgs/by-name/gi/git-get/package.nix2
-rw-r--r--pkgs/by-name/gi/git-gr/package.nix2
-rw-r--r--pkgs/by-name/gi/git-pw/package.nix2
-rw-r--r--pkgs/by-name/gi/git-toolbelt/package.nix49
-rw-r--r--pkgs/by-name/gi/git-upstream/package.nix2
-rw-r--r--pkgs/by-name/gi/gitea/package.nix (renamed from pkgs/applications/version-management/gitea/default.nix)55
-rw-r--r--pkgs/by-name/gi/gitea/static-root-path.patch (renamed from pkgs/applications/version-management/gitea/static-root-path.patch)0
-rw-r--r--pkgs/by-name/gi/githooks/package.nix5
-rw-r--r--pkgs/by-name/gi/github-desktop/package.nix4
-rw-r--r--pkgs/by-name/gi/gitlab-ci-local/package.nix6
-rw-r--r--pkgs/by-name/gi/gittuf/package.nix2
-rw-r--r--pkgs/by-name/gi/gitu/package.nix8
-rw-r--r--pkgs/by-name/gi/gitui/package.nix6
-rw-r--r--pkgs/by-name/gl/glance/package.nix6
-rw-r--r--pkgs/by-name/gl/glas/package.nix2
-rw-r--r--pkgs/by-name/gl/glauth/package.nix2
-rw-r--r--pkgs/by-name/gl/glock/package.nix40
-rw-r--r--pkgs/by-name/gm/gmetronome/package.nix2
-rw-r--r--pkgs/by-name/gm/gmic-qt/package.nix4
-rw-r--r--pkgs/by-name/gm/gmic/package.nix14
-rw-r--r--pkgs/by-name/gm/gmid/package.nix4
-rw-r--r--pkgs/by-name/gn/gnome-graphs/package.nix2
-rw-r--r--pkgs/by-name/gn/gnome-monitor-config/package.nix48
-rw-r--r--pkgs/by-name/gn/gnome-online-accounts-gtk/package.nix4
-rw-r--r--pkgs/by-name/gn/gnucap/modelgen-verilog.nix2
-rw-r--r--pkgs/by-name/go/go-bare/package.nix2
-rw-r--r--pkgs/by-name/go/go-camo/package.nix2
-rw-r--r--pkgs/by-name/go/go-critic/package.nix2
-rw-r--r--pkgs/by-name/go/go-errorlint/package.nix2
-rw-r--r--pkgs/by-name/go/go-judge/package.nix6
-rw-r--r--pkgs/by-name/go/go-landlock/package.nix2
-rw-r--r--pkgs/by-name/go/go-secdump/package.nix33
-rw-r--r--pkgs/by-name/go/go-symbols/package.nix39
-rw-r--r--pkgs/by-name/go/gobang/package.nix40
-rw-r--r--pkgs/by-name/go/gobang/update-sqlx.patch1553
-rw-r--r--pkgs/by-name/go/godns/package.nix2
-rw-r--r--pkgs/by-name/go/gofumpt/package.nix2
-rw-r--r--pkgs/by-name/go/gol/package.nix44
-rw-r--r--pkgs/by-name/go/golink/package.nix2
-rw-r--r--pkgs/by-name/go/goofcord/package.nix15
-rw-r--r--pkgs/by-name/go/google-chrome/package.nix6
-rw-r--r--pkgs/by-name/go/gordonflashtool/package.nix2
-rw-r--r--pkgs/by-name/go/gosmee/package.nix4
-rw-r--r--pkgs/by-name/go/goss/package.nix10
-rw-r--r--pkgs/by-name/go/got/package.nix4
-rw-r--r--pkgs/by-name/go/govers/package.nix38
-rw-r--r--pkgs/by-name/gp/gpscorrelate/package.nix2
-rw-r--r--pkgs/by-name/gp/gpsprune/package.nix (renamed from pkgs/applications/misc/gpsprune/default.nix)4
-rw-r--r--pkgs/by-name/gp/gpt4all/package.nix24
-rw-r--r--pkgs/by-name/gp/gptscript/package.nix15
-rw-r--r--pkgs/by-name/gp/gpustat/package.nix2
-rw-r--r--pkgs/by-name/gr/grafana-alloy/package.nix127
-rw-r--r--pkgs/by-name/gr/grafana-kiosk/package.nix6
-rw-r--r--pkgs/by-name/gr/graphicsmagick/imagemagick-compat.nix2
-rw-r--r--pkgs/by-name/gr/graphite-cli/package-lock.json29
-rw-r--r--pkgs/by-name/gr/graphite-cli/package.nix6
-rw-r--r--pkgs/by-name/gr/graphqlmaker/package.nix33
-rw-r--r--pkgs/by-name/gr/grimblast/package.nix2
-rw-r--r--pkgs/by-name/gr/grun/package.nix2
-rw-r--r--pkgs/by-name/gr/gruvbox-gtk-theme/package.nix38
-rw-r--r--pkgs/by-name/gr/gruvbox-plus-icons/package.nix4
-rw-r--r--pkgs/by-name/gr/grype/package.nix11
-rw-r--r--pkgs/by-name/gt/gtimelog/package.nix2
-rw-r--r--pkgs/by-name/gt/gtk-session-lock/package.nix2
-rw-r--r--pkgs/by-name/gt/gtkclipblock/package.nix2
-rw-r--r--pkgs/by-name/gt/gtkhash/package.nix2
-rw-r--r--pkgs/by-name/gt/gtklp/package.nix2
-rw-r--r--pkgs/by-name/gt/gtksheet/package.nix2
-rw-r--r--pkgs/by-name/gt/gtrash/package.nix2
-rw-r--r--pkgs/by-name/gu/guile-lzlib/package.nix2
-rw-r--r--pkgs/by-name/gu/guile-sdl/package.nix (renamed from pkgs/development/guile-modules/guile-sdl/default.nix)56
-rw-r--r--pkgs/by-name/gu/guile-zstd/package.nix2
-rw-r--r--pkgs/by-name/gu/gungnir/package.nix6
-rw-r--r--pkgs/by-name/ha/hachimarupop/package.nix2
-rw-r--r--pkgs/by-name/ha/hacompanion/package.nix4
-rw-r--r--pkgs/by-name/ha/hadolint-sarif/package.nix37
-rw-r--r--pkgs/by-name/ha/halo/package.nix4
-rw-r--r--pkgs/by-name/ha/hare/003-use-mailcap-for-mimetypes.patch13
-rw-r--r--pkgs/by-name/ha/hare/hook.nix56
-rw-r--r--pkgs/by-name/ha/hare/mime-module-test.nix28
-rw-r--r--pkgs/by-name/ha/hare/package.nix29
-rw-r--r--pkgs/by-name/ha/hare/setup-hook.sh39
-rw-r--r--pkgs/by-name/ha/harec/package.nix36
-rw-r--r--pkgs/by-name/ha/haredo/package.nix21
-rw-r--r--pkgs/by-name/ha/haredoc/package.nix34
-rw-r--r--pkgs/by-name/ha/harmonia/package.nix (renamed from pkgs/tools/package-management/harmonia/default.nix)8
-rw-r--r--pkgs/by-name/ha/hatsu/package.nix40
-rw-r--r--pkgs/by-name/ha/havn/package.nix37
-rw-r--r--pkgs/by-name/ha/havoc/package.nix2
-rw-r--r--pkgs/by-name/ha/hayabusa/package.nix2
-rw-r--r--pkgs/by-name/hd/hdos/package.nix64
-rwxr-xr-xpkgs/by-name/hd/hdos/update.sh7
-rw-r--r--pkgs/by-name/he/headphones-toolbox/package.nix2
-rw-r--r--pkgs/by-name/he/hednsextractor/package.nix33
-rw-r--r--pkgs/by-name/he/hellmaker/package.nix39
-rw-r--r--pkgs/by-name/he/hello/package.nix2
-rw-r--r--pkgs/by-name/he/hentai-at-home/package.nix (renamed from pkgs/applications/misc/HentaiAtHome/default.nix)40
-rw-r--r--pkgs/by-name/he/hermitcli/package.nix8
-rw-r--r--pkgs/by-name/he/hexxy/package.nix38
-rw-r--r--pkgs/by-name/hi/hidden-bar/package.nix2
-rw-r--r--pkgs/by-name/hi/hidviz/package.nix2
-rw-r--r--pkgs/by-name/hi/hieroglyphic/Cargo.lock1448
-rw-r--r--pkgs/by-name/hi/hieroglyphic/package.nix20
-rw-r--r--pkgs/by-name/hi/hifile/package.nix4
-rw-r--r--pkgs/by-name/hi/highlight-pointer/package.nix45
-rw-r--r--pkgs/by-name/hi/highs/package.nix4
-rw-r--r--pkgs/by-name/hn/hn-text/package.nix35
-rw-r--r--pkgs/by-name/ho/home-manager/package.nix8
-rw-r--r--pkgs/by-name/ho/horcrux/package.nix27
-rw-r--r--pkgs/by-name/ht/http-server/package.nix2
-rw-r--r--pkgs/by-name/ht/httpdirfs/package.nix2
-rw-r--r--pkgs/by-name/ht/httpie-desktop/package.nix2
-rw-r--r--pkgs/by-name/ht/httping/package.nix71
-rw-r--r--pkgs/by-name/hu/hugo/package.nix8
-rw-r--r--pkgs/by-name/hu/humioctl/package.nix8
-rw-r--r--pkgs/by-name/hu/hurl/package.nix (renamed from pkgs/tools/networking/hurl/default.nix)7
-rw-r--r--pkgs/by-name/hy/hyperspeedcube/Cargo.lock3811
-rw-r--r--pkgs/by-name/hy/hyperspeedcube/package.nix131
-rw-r--r--pkgs/by-name/hy/hyprcursor/package.nix6
-rw-r--r--pkgs/by-name/hy/hyprkeys/package.nix2
-rw-r--r--pkgs/by-name/hy/hyprland-activewindow/package.nix2
-rw-r--r--pkgs/by-name/hy/hyprland-workspaces/package.nix2
-rw-r--r--pkgs/by-name/hy/hyprland/info.json7
-rw-r--r--pkgs/by-name/hy/hyprland/package.nix (renamed from pkgs/applications/window-managers/hyprwm/hyprland/default.nix)51
-rwxr-xr-xpkgs/by-name/hy/hyprland/update.sh35
-rw-r--r--pkgs/by-name/hy/hyprlang/package.nix6
-rw-r--r--pkgs/by-name/hy/hyprshot/package.nix6
-rw-r--r--pkgs/by-name/hy/hyprutils/package.nix44
-rw-r--r--pkgs/by-name/hy/hyprwayland-scanner/package.nix18
-rw-r--r--pkgs/by-name/i2/i2p/package.nix4
-rw-r--r--pkgs/by-name/i3/i3-open-next-ws/package.nix2
-rw-r--r--pkgs/by-name/i3/i3bar-river/package.nix2
-rw-r--r--pkgs/by-name/ia/ianny/package.nix8
-rw-r--r--pkgs/by-name/ic/ice-bar/package.nix41
-rw-r--r--pkgs/by-name/ic/icewm/package.nix10
-rw-r--r--pkgs/by-name/ic/icloudpd/package.nix7
-rw-r--r--pkgs/by-name/id/ida-free/package.nix3
-rw-r--r--pkgs/by-name/id/idb-companion/package.nix2
-rw-r--r--pkgs/by-name/id/ideamaker/mimetypes.xml25
-rw-r--r--pkgs/by-name/id/ideamaker/package.nix225
-rw-r--r--pkgs/by-name/ig/igir/package.nix8
-rw-r--r--pkgs/by-name/ig/igvm-tooling/package.nix28
-rw-r--r--pkgs/by-name/ii/iina/package.nix37
-rw-r--r--pkgs/by-name/ii/iir1/package.nix2
-rw-r--r--pkgs/by-name/ij/ijhttp/package.nix44
-rw-r--r--pkgs/by-name/im/imgbrd-grabber/package.nix (renamed from pkgs/applications/graphics/imgbrd-grabber/default.nix)102
-rw-r--r--pkgs/by-name/im/imhex/package.nix1
-rw-r--r--pkgs/by-name/im/immersed-vr/package.nix2
-rw-r--r--pkgs/by-name/im/immich-go/package.nix4
-rw-r--r--pkgs/by-name/im/imnodes/package.nix56
-rw-r--r--pkgs/by-name/im/impala/package.nix26
-rw-r--r--pkgs/by-name/im/implot/demos/default.nix81
-rw-r--r--pkgs/by-name/im/implot/package.nix41
-rw-r--r--pkgs/by-name/im/impression/package.nix6
-rw-r--r--pkgs/by-name/in/incus/package.nix6
-rw-r--r--pkgs/by-name/in/inja/package.nix46
-rw-r--r--pkgs/by-name/in/inja/simple-cmake-test/CMakeLists.txt5
-rw-r--r--pkgs/by-name/in/inja/simple-cmake-test/default.nix27
-rw-r--r--pkgs/by-name/in/inja/simple-cmake-test/main.cpp8
-rw-r--r--pkgs/by-name/in/inotify-info/package.nix8
-rw-r--r--pkgs/by-name/in/intiface-central/package.nix6
-rw-r--r--pkgs/by-name/in/intiface-central/pubspec.lock.json40
-rw-r--r--pkgs/by-name/in/intune-portal/package.nix4
-rw-r--r--pkgs/by-name/in/invidious-router/package.nix2
-rw-r--r--pkgs/by-name/in/invidtui/package.nix2
-rw-r--r--pkgs/by-name/ip/ipam/package.nix2
-rw-r--r--pkgs/by-name/ip/iplookup-gtk/package.nix58
-rw-r--r--pkgs/by-name/ir/iredis/package.nix2
-rw-r--r--pkgs/by-name/ir/irrd/package.nix (renamed from pkgs/servers/misc/irrd/default.nix)31
-rw-r--r--pkgs/by-name/ir/irust/package.nix56
-rw-r--r--pkgs/by-name/is/iscc/package.nix2
-rw-r--r--pkgs/by-name/it/itch/package.nix2
-rw-r--r--pkgs/by-name/it/itools/package.nix41
-rw-r--r--pkgs/by-name/iw/iw/package.nix (renamed from pkgs/os-specific/linux/iw/default.nix)34
-rw-r--r--pkgs/by-name/iz/izrss/package.nix8
-rw-r--r--pkgs/by-name/ja/jackass/package.nix2
-rw-r--r--pkgs/by-name/ja/jailer/package.nix10
-rw-r--r--pkgs/by-name/ja/jan/package.nix4
-rw-r--r--pkgs/by-name/ja/jasp-desktop/modules.nix3
-rw-r--r--pkgs/by-name/ja/jasp-desktop/package.nix5
-rw-r--r--pkgs/by-name/ja/jasper/package.nix4
-rw-r--r--pkgs/by-name/ja/jazz2/package.nix4
-rw-r--r--pkgs/by-name/jd/jdt-language-server/package.nix6
-rwxr-xr-x[-rw-r--r--]pkgs/by-name/jd/jdt-language-server/update.sh2
-rw-r--r--pkgs/by-name/je/jellyfin-web/package.nix (renamed from pkgs/servers/jellyfin/web.nix)19
-rw-r--r--pkgs/by-name/je/jellyfin/nuget-deps.nix (renamed from pkgs/servers/jellyfin/nuget-deps.nix)34
-rw-r--r--pkgs/by-name/je/jellyfin/package.nix (renamed from pkgs/servers/jellyfin/default.nix)51
-rwxr-xr-xpkgs/by-name/je/jellyfin/update.sh (renamed from pkgs/servers/jellyfin/update.sh)0
-rw-r--r--pkgs/by-name/je/jetbrains-toolbox/package.nix4
-rw-r--r--pkgs/by-name/je/jextract-21/package.nix2
-rw-r--r--pkgs/by-name/je/jextract/package.nix2
-rw-r--r--pkgs/by-name/ji/jikken/package.nix2
-rw-r--r--pkgs/by-name/jn/jnv/package.nix16
-rw-r--r--pkgs/by-name/jo/josm/package.nix (renamed from pkgs/applications/misc/josm/default.nix)8
-rw-r--r--pkgs/by-name/jo/joularjx/package.nix42
-rw-r--r--pkgs/by-name/jo/journalwatch/package.nix2
-rw-r--r--pkgs/by-name/jq/jq-zsh-plugin/package.nix44
-rw-r--r--pkgs/by-name/jr/jrl-cmakemodules/package.nix6
-rw-r--r--pkgs/by-name/js/jsoncons/package.nix6
-rw-r--r--pkgs/by-name/jt/jtdx/package.nix2
-rw-r--r--pkgs/by-name/ju/junest/package.nix33
-rw-r--r--pkgs/by-name/ju/just/fix-just-path-in-tests.patch20
-rw-r--r--pkgs/by-name/ju/just/package.nix33
-rw-r--r--pkgs/by-name/ju/justbuild/package.nix26
-rw-r--r--pkgs/by-name/jw/jwasm/package.nix (renamed from pkgs/development/compilers/jwasm/default.nix)23
-rw-r--r--pkgs/by-name/ka/kalamine/package.nix38
-rw-r--r--pkgs/by-name/ka/kanagawa-gtk-theme/package.nix2
-rw-r--r--pkgs/by-name/ka/kanagawa-icon-theme/package.nix2
-rw-r--r--pkgs/by-name/ka/kanidm/package.nix13
-rw-r--r--pkgs/by-name/ka/karmor/package.nix8
-rw-r--r--pkgs/by-name/ka/katawa-shoujo-re-engineered/package.nix2
-rw-r--r--pkgs/by-name/ka/katriawm/package.nix2
-rw-r--r--pkgs/by-name/kc/kcl-cli/package.nix2
-rw-r--r--pkgs/by-name/ke/keepass/package.nix4
-rw-r--r--pkgs/by-name/ke/kermit-terminal/package.nix6
-rw-r--r--pkgs/by-name/ke/kernel-hardening-checker/package.nix2
-rw-r--r--pkgs/by-name/ke/kew/package.nix2
-rw-r--r--pkgs/by-name/ke/keydb/package.nix2
-rw-r--r--pkgs/by-name/ke/keypunch/package.nix65
-rw-r--r--pkgs/by-name/kg/kgeotag/package.nix2
-rw-r--r--pkgs/by-name/ki/ki/fix-beartype-error.patch38
-rw-r--r--pkgs/by-name/ki/ki/package.nix38
-rw-r--r--pkgs/by-name/ki/kickstart/package.nix2
-rw-r--r--pkgs/by-name/ki/kikit/solidpython/default.nix4
-rw-r--r--pkgs/by-name/ki/kitex/package.nix42
-rw-r--r--pkgs/by-name/ki/kittysay/package.nix6
-rw-r--r--pkgs/by-name/ki/kiwitalk/package.nix62
-rw-r--r--pkgs/by-name/km/kmeet/package.nix2
-rw-r--r--pkgs/by-name/km/kmsvnc/package.nix2
-rw-r--r--pkgs/by-name/kn/knossosnet/package.nix2
-rw-r--r--pkgs/by-name/kn/knxd/package.nix (renamed from pkgs/servers/knxd/default.nix)18
-rw-r--r--pkgs/by-name/ko/koboldcpp/package.nix154
-rw-r--r--pkgs/by-name/ko/koji/package.nix2
-rw-r--r--pkgs/by-name/ko/komac/package.nix2
-rw-r--r--pkgs/by-name/ko/konbucase/package.nix2
-rw-r--r--pkgs/by-name/ko/kontemplate/package.nix37
-rw-r--r--pkgs/by-name/ko/koodo-reader/fix-isdev.patch13
-rw-r--r--pkgs/by-name/ko/koodo-reader/package.nix48
-rw-r--r--pkgs/by-name/ko/kor/package.nix8
-rw-r--r--pkgs/by-name/ko/kotlin-interactive-shell/package.nix4
-rw-r--r--pkgs/by-name/kp/kplex/package.nix2
-rw-r--r--pkgs/by-name/kr/krbjack/package.nix12
-rw-r--r--pkgs/by-name/ks/ks/package.nix30
-rw-r--r--pkgs/by-name/ks/kseexpr/package.nix2
-rw-r--r--pkgs/by-name/ks/kshutdown/package.nix2
-rw-r--r--pkgs/by-name/kt/ktfmt/package.nix2
-rw-r--r--pkgs/by-name/kt/ktls-utils/package.nix4
-rw-r--r--pkgs/by-name/ku/kube-state-metrics/package.nix32
-rw-r--r--pkgs/by-name/ku/kubectl-validate/package.nix2
-rw-r--r--pkgs/by-name/ku/kubefetch/package.nix26
-rw-r--r--pkgs/by-name/ku/kubefwd/package.nix32
-rw-r--r--pkgs/by-name/ku/kubo/package.nix10
-rw-r--r--pkgs/by-name/ky/kyverno-chainsaw/package.nix6
-rw-r--r--pkgs/by-name/la/labwc-menu-generator/package.nix6
-rw-r--r--pkgs/by-name/la/labwc-tweaks-gtk/package.nix8
-rw-r--r--pkgs/by-name/la/labwc/package.nix2
-rw-r--r--pkgs/by-name/la/lan-mouse/package.nix2
-rw-r--r--pkgs/by-name/la/laravel/composer.lock3764
-rw-r--r--pkgs/by-name/la/laravel/package.nix36
-rw-r--r--pkgs/by-name/la/laszip/package.nix (renamed from pkgs/development/libraries/LASzip/default.nix)2
-rw-r--r--pkgs/by-name/la/laszip_2/package.nix (renamed from pkgs/development/libraries/LASzip/LASzip2.nix)8
-rw-r--r--pkgs/by-name/la/latexminted/package.nix38
-rw-r--r--pkgs/by-name/la/laudanum/package.nix2
-rw-r--r--pkgs/by-name/la/lazysql/package.nix31
-rw-r--r--pkgs/by-name/lb/lbreakouthd/package.nix2
-rw-r--r--pkgs/by-name/lc/lc0/package.nix4
-rw-r--r--pkgs/by-name/ld/ldc/bootstrap.nix (renamed from pkgs/development/compilers/ldc/binary.nix)15
-rw-r--r--pkgs/by-name/ld/ldc/package.nix (renamed from pkgs/development/compilers/ldc/generic.nix)100
-rw-r--r--pkgs/by-name/le/leaf/package.nix2
-rw-r--r--pkgs/by-name/le/ledger/package.nix2
-rw-r--r--pkgs/by-name/le/leetgo/package.nix45
-rw-r--r--pkgs/by-name/le/lefthook/package.nix6
-rw-r--r--pkgs/by-name/le/legba/package.nix8
-rw-r--r--pkgs/by-name/le/less/package.nix11
-rw-r--r--pkgs/by-name/le/letterpress/package.nix85
-rw-r--r--pkgs/by-name/le/lexido/package.nix2
-rw-r--r--pkgs/by-name/li/lib60870/package.nix6
-rw-r--r--pkgs/by-name/li/libation/package.nix2
-rw-r--r--pkgs/by-name/li/libbfio/package.nix1
-rw-r--r--pkgs/by-name/li/libburn/package.nix2
-rw-r--r--pkgs/by-name/li/libcamera/package.nix14
-rw-r--r--pkgs/by-name/li/libclipboard/package.nix38
-rw-r--r--pkgs/by-name/li/libcpuid/package.nix4
-rw-r--r--pkgs/by-name/li/libdjinterop/package.nix4
-rw-r--r--pkgs/by-name/li/libedit/package.nix2
-rw-r--r--pkgs/by-name/li/libeduvpn-common/package.nix4
-rw-r--r--pkgs/by-name/li/libepubgen/package.nix2
-rw-r--r--pkgs/by-name/li/libetonyek/package.nix2
-rw-r--r--pkgs/by-name/li/libewf-legacy/package.nix1
-rw-r--r--pkgs/by-name/li/libfmvoice/package.nix6
-rw-r--r--pkgs/by-name/li/libgff/package.nix2
-rw-r--r--pkgs/by-name/li/libiconv-darwin/0001-Support-static-module-loading.patch72
-rw-r--r--pkgs/by-name/li/libiconv-darwin/0002-Fix-ISO-2022-out-of-bounds-write-with-encoded-charac.patch43
-rw-r--r--pkgs/by-name/li/libiconv-darwin/meson.build82
-rw-r--r--pkgs/by-name/li/libiconv-darwin/nixpkgs_test.c34
-rw-r--r--pkgs/by-name/li/libiconv-darwin/package.nix48
-rw-r--r--pkgs/by-name/li/libiconv-darwin/static-modules.gperf73
-rw-r--r--pkgs/by-name/li/libiconv-darwin/static-setup-hook.sh5
-rw-r--r--pkgs/by-name/li/libideviceactivation/package.nix55
-rw-r--r--pkgs/by-name/li/libiec61850/package.nix2
-rw-r--r--pkgs/by-name/li/libisofs/package.nix2
-rw-r--r--pkgs/by-name/li/libitl/package.nix32
-rw-r--r--pkgs/by-name/li/libixion/package.nix2
-rw-r--r--pkgs/by-name/li/liblapin/package.nix2
-rw-r--r--pkgs/by-name/li/libmamba/package.nix2
-rw-r--r--pkgs/by-name/li/libmediainfo/package.nix4
-rw-r--r--pkgs/by-name/li/libmpd/package.nix47
-rw-r--r--pkgs/by-name/li/libmsgraph/package.nix13
-rw-r--r--pkgs/by-name/li/libopus/package.nix (renamed from pkgs/development/libraries/libopus/default.nix)43
-rw-r--r--pkgs/by-name/li/libopus/test-timeout.patch (renamed from pkgs/development/libraries/libopus/test-timeout.patch)0
-rw-r--r--pkgs/by-name/li/liboqs/fix-openssl-detection.patch (renamed from pkgs/development/libraries/liboqs/fix-openssl-detection.patch)0
-rw-r--r--pkgs/by-name/li/liboqs/package.nix (renamed from pkgs/development/libraries/liboqs/default.nix)26
-rw-r--r--pkgs/by-name/li/libpkgconf/package.nix4
-rw-r--r--pkgs/by-name/li/librearp-lv2/package.nix (renamed from pkgs/applications/audio/LibreArp/lv2.nix)8
-rw-r--r--pkgs/by-name/li/librearp/package.nix (renamed from pkgs/applications/audio/LibreArp/default.nix)10
-rw-r--r--pkgs/by-name/li/librum/package.nix2
-rw-r--r--pkgs/by-name/li/libsbml/package.nix4
-rw-r--r--pkgs/by-name/li/libscfg/package.nix2
-rw-r--r--pkgs/by-name/li/libsignal-ffi/package.nix2
-rw-r--r--pkgs/by-name/li/libstrophe/package.nix2
-rw-r--r--pkgs/by-name/li/libstudxml/package.nix38
-rw-r--r--pkgs/by-name/li/libui-ng/package.nix8
-rw-r--r--pkgs/by-name/li/libvibrant/package.nix2
-rw-r--r--pkgs/by-name/li/licensure/package.nix8
-rw-r--r--pkgs/by-name/li/lightningcss/package.nix12
-rw-r--r--pkgs/by-name/li/lilipod/package.nix2
-rw-r--r--pkgs/by-name/li/limine/package.nix4
-rw-r--r--pkgs/by-name/li/lint-staged/package.nix6
-rw-r--r--pkgs/by-name/li/linux-scripts/package.nix64
-rw-r--r--pkgs/by-name/li/listmonk/package.nix2
-rw-r--r--pkgs/by-name/li/literate/dub-lock.json (renamed from pkgs/development/tools/literate-programming/Literate/dub-lock.json)0
-rw-r--r--pkgs/by-name/li/literate/package.nix (renamed from pkgs/development/tools/literate-programming/Literate/default.nix)4
-rw-r--r--pkgs/by-name/li/litmusctl/package.nix6
-rw-r--r--pkgs/by-name/li/littlefs-fuse/package.nix2
-rw-r--r--pkgs/by-name/li/live555/package.nix36
-rw-r--r--pkgs/by-name/li/livi/package.nix2
-rw-r--r--pkgs/by-name/lk/lk-jwt-service/package.nix30
-rw-r--r--pkgs/by-name/ll/llama-cpp/package.nix19
-rw-r--r--pkgs/by-name/ll/llm-ls/package.nix6
-rw-r--r--pkgs/by-name/lm/lmstudio/darwin.nix4
-rw-r--r--pkgs/by-name/lm/lmstudio/linux.nix4
-rw-r--r--pkgs/by-name/lm/lmstudio/package.nix6
-rw-r--r--pkgs/by-name/lo/local-ai/module.nix2
-rw-r--r--pkgs/by-name/lo/local-ai/package.nix52
-rw-r--r--pkgs/by-name/lo/loco-cli/package.nix2
-rw-r--r--pkgs/by-name/lo/logiops/package.nix4
-rw-r--r--pkgs/by-name/lo/logseq/package.nix (renamed from pkgs/applications/misc/logseq/default.nix)10
-rw-r--r--pkgs/by-name/lo/loupe/package.nix2
-rw-r--r--pkgs/by-name/lo/louvre/package.nix4
-rw-r--r--pkgs/by-name/lp/LPCNet/package.nix56
-rw-r--r--pkgs/by-name/lp/lprint/package.nix2
-rw-r--r--pkgs/by-name/ls/lse/package.nix40
-rw-r--r--pkgs/by-name/lu/lubelogger/package.nix2
-rw-r--r--pkgs/by-name/lu/lunacy/package.nix85
-rw-r--r--pkgs/by-name/lu/lunar-client/package.nix6
-rw-r--r--pkgs/by-name/lu/luneta/package.nix2
-rw-r--r--pkgs/by-name/lu/lutgen/package.nix2
-rw-r--r--pkgs/by-name/lx/lx-music-desktop/package.nix10
-rw-r--r--pkgs/by-name/lx/lxd-ui/package.nix4
-rw-r--r--pkgs/by-name/lx/lxgw-neoxihei/package.nix6
-rw-r--r--pkgs/by-name/lx/lxgw-wenkai-tc/package.nix2
-rw-r--r--pkgs/by-name/m1/m1ddc/package.nix43
-rw-r--r--pkgs/by-name/ma/maa-assistant-arknights/fastdeploy-ppocr.nix85
-rw-r--r--pkgs/by-name/ma/maa-assistant-arknights/package.nix105
-rw-r--r--pkgs/by-name/ma/maa-assistant-arknights/pin.json8
-rw-r--r--pkgs/by-name/ma/maa-cli/package.nix54
-rw-r--r--pkgs/by-name/ma/mac-robber/package.nix2
-rw-r--r--pkgs/by-name/ma/mactop/package.nix34
-rw-r--r--pkgs/by-name/ma/majima/package.nix16
-rw-r--r--pkgs/by-name/ma/makima/package.nix6
-rw-r--r--pkgs/by-name/ma/mako/package.nix28
-rw-r--r--pkgs/by-name/ma/maltego/package.nix2
-rw-r--r--pkgs/by-name/ma/malwoverview/package.nix2
-rw-r--r--pkgs/by-name/ma/mangareader/package.nix52
-rw-r--r--pkgs/by-name/ma/manix/package.nix2
-rw-r--r--pkgs/by-name/ma/manticoresearch/package.nix2
-rw-r--r--pkgs/by-name/ma/marcel/package.nix6
-rw-r--r--pkgs/by-name/ma/marge-bot/package.nix11
-rw-r--r--pkgs/by-name/ma/mariadb-connector-java/package.nix7
-rw-r--r--pkgs/by-name/ma/markdown-oxide/package.nix2
-rw-r--r--pkgs/by-name/ma/marked-man/package-lock.json387
-rw-r--r--pkgs/by-name/ma/marked-man/package.nix35
-rw-r--r--pkgs/by-name/ma/marwaita-x/package.nix6
-rw-r--r--pkgs/by-name/ma/massdns/package.nix36
-rw-r--r--pkgs/by-name/ma/mathemagix/package.nix2
-rw-r--r--pkgs/by-name/ma/matrix-hook/package.nix2
-rw-r--r--pkgs/by-name/ma/matrix-media-repo/package.nix68
-rw-r--r--pkgs/by-name/ma/matrix-media-repo/synapse-import-u+x.patch22
-rw-r--r--pkgs/by-name/ma/matugen/package.nix10
-rw-r--r--pkgs/by-name/ma/maven/build-maven-package.nix (renamed from pkgs/development/tools/build-managers/apache-maven/build-package.nix)6
-rw-r--r--pkgs/by-name/ma/maven/build-maven.nix (renamed from pkgs/build-support/build-maven.nix)0
-rw-r--r--pkgs/by-name/ma/maven/package.nix60
-rw-r--r--pkgs/by-name/mc/mcap-cli/package.nix4
-rw-r--r--pkgs/by-name/mc/mcdreforged/package.nix48
-rw-r--r--pkgs/by-name/md/md-tui/package.nix45
-rw-r--r--pkgs/by-name/md/mdsh/package.nix6
-rw-r--r--pkgs/by-name/me/mealie/mealie-frontend.nix2
-rw-r--r--pkgs/by-name/me/mealie/mealie-logs-to-stdout.patch103
-rw-r--r--pkgs/by-name/me/mealie/package.nix46
-rw-r--r--pkgs/by-name/me/media-downloader/package.nix67
-rw-r--r--pkgs/by-name/me/mediasynclite/package.nix54
-rw-r--r--pkgs/by-name/me/mednafen/package.nix2
-rw-r--r--pkgs/by-name/me/meletrix-udev-rules/meletrix.rules26
-rw-r--r--pkgs/by-name/me/meletrix-udev-rules/package.nix24
-rw-r--r--pkgs/by-name/me/meli/package.nix8
-rw-r--r--pkgs/by-name/me/melonDS/package.nix6
-rw-r--r--pkgs/by-name/me/memorado/package.nix51
-rw-r--r--pkgs/by-name/me/menulibre/package.nix4
-rw-r--r--pkgs/by-name/me/mercure/package.nix8
-rw-r--r--pkgs/by-name/me/meson/007-Allow-building-via-ninja-12.patch190
-rw-r--r--pkgs/by-name/me/meson/007-freebsd-pkgconfig-path.patch15
-rw-r--r--pkgs/by-name/me/meson/package.nix23
-rw-r--r--pkgs/by-name/me/meson/setup-hook.sh2
-rw-r--r--pkgs/by-name/me/metacubexd/package.nix55
-rw-r--r--pkgs/by-name/mf/mfoc-hardnested/package.nix2
-rw-r--r--pkgs/by-name/mg/mgba/package.nix2
-rw-r--r--pkgs/by-name/mi/mihomo/package.nix2
-rw-r--r--pkgs/by-name/mi/mimikatz/package.nix2
-rw-r--r--pkgs/by-name/mi/mini-calc/package.nix8
-rw-r--r--pkgs/by-name/mi/minijinja/package.nix6
-rw-r--r--pkgs/by-name/mi/miracode/package.nix2
-rw-r--r--pkgs/by-name/mi/miru/package.nix4
-rw-r--r--pkgs/by-name/mi/misconfig-mapper/package.nix6
-rw-r--r--pkgs/by-name/mi/mixxc/package.nix2
-rw-r--r--pkgs/by-name/mk/mkbootimage/package.nix2
-rw-r--r--pkgs/by-name/mk/mkjson/generated.nix2
-rw-r--r--pkgs/by-name/ml/mlx42/package.nix7
-rw-r--r--pkgs/by-name/mo/modern-cpp-kafka/package.nix10
-rw-r--r--pkgs/by-name/mo/mods/package.nix (renamed from pkgs/tools/misc/mods/default.nix)28
-rw-r--r--pkgs/by-name/mo/moe/package.nix2
-rw-r--r--pkgs/by-name/mo/mokuro/package.nix61
-rw-r--r--pkgs/by-name/mo/mold/package.nix6
-rw-r--r--pkgs/by-name/mo/mommy/package.nix1
-rw-r--r--pkgs/by-name/mo/monaspace/package.nix2
-rw-r--r--pkgs/by-name/mo/moneydance/package.nix2
-rw-r--r--pkgs/by-name/mo/moproxy/package.nix2
-rw-r--r--pkgs/by-name/mo/morewaita-icon-theme/package.nix2
-rw-r--r--pkgs/by-name/mo/mountpoint-s3/package.nix2
-rw-r--r--pkgs/by-name/mo/mousai/package.nix (renamed from pkgs/applications/audio/mousai/default.nix)6
-rw-r--r--pkgs/by-name/mo/mousam/package.nix6
-rw-r--r--pkgs/by-name/mo/mousecape/package.nix2
-rw-r--r--pkgs/by-name/mo/mov-cli/package.nix2
-rw-r--r--pkgs/by-name/mo/movim/package.nix2
-rw-r--r--pkgs/by-name/mp/mpack/CVE-2011-4919.patch (renamed from pkgs/tools/networking/mpack/CVE-2011-4919.patch)0
-rw-r--r--pkgs/by-name/mp/mpack/build-fix.patch (renamed from pkgs/tools/networking/mpack/build-fix.patch)0
-rw-r--r--pkgs/by-name/mp/mpack/package.nix (renamed from pkgs/tools/networking/mpack/default.nix)25
-rw-r--r--pkgs/by-name/mp/mpack/sendmail-via-execvp.diff (renamed from pkgs/tools/networking/mpack/sendmail-via-execvp.diff)0
-rw-r--r--pkgs/by-name/mu/muffon/package.nix41
-rw-r--r--pkgs/by-name/mu/multiplex/package.nix67
-rw-r--r--pkgs/by-name/mu/multirun/package.nix2
-rw-r--r--pkgs/by-name/mu/muparser/package.nix2
-rw-r--r--pkgs/by-name/mu/mus/package.nix2
-rw-r--r--pkgs/by-name/my/mycelium/Cargo.lock1310
-rw-r--r--pkgs/by-name/my/mycelium/package.nix8
-rw-r--r--pkgs/by-name/my/myks/package.nix8
-rw-r--r--pkgs/by-name/my/mysql84/package.nix2
-rw-r--r--pkgs/by-name/my/mystmd/package.nix6
-rw-r--r--pkgs/by-name/my/myxer/package.nix2
-rw-r--r--pkgs/by-name/n2/n2/package.nix2
-rw-r--r--pkgs/by-name/na/namespace-cli/package.nix6
-rw-r--r--pkgs/by-name/na/nanoboyadvance/package.nix2
-rw-r--r--pkgs/by-name/na/naps2/deps.nix106
-rw-r--r--pkgs/by-name/na/naps2/package.nix6
-rw-r--r--pkgs/by-name/na/nats-kafka/package.nix40
-rw-r--r--pkgs/by-name/na/nawk/package.nix2
-rw-r--r--pkgs/by-name/nb/nb-cli/package.nix60
-rw-r--r--pkgs/by-name/ne/needle/nix/default.nix11
-rw-r--r--pkgs/by-name/ne/needle/nix/workspace-state.json93
-rw-r--r--pkgs/by-name/ne/needle/package.nix49
-rw-r--r--pkgs/by-name/ne/nekoray/package.nix1
-rw-r--r--pkgs/by-name/ne/neocities-cli/package.nix2
-rw-r--r--pkgs/by-name/ne/neocities/Gemfile2
-rw-r--r--pkgs/by-name/ne/neocities/Gemfile.lock47
-rw-r--r--pkgs/by-name/ne/neocities/gemset.nix167
-rw-r--r--pkgs/by-name/ne/neocities/package.nix19
-rw-r--r--pkgs/by-name/ne/neovide/package.nix14
-rw-r--r--pkgs/by-name/ne/neovide/skia-externals.json12
-rw-r--r--pkgs/by-name/ne/neovim-qt-unwrapped/package.nix (renamed from pkgs/applications/editors/neovim/neovim-qt.nix)12
-rw-r--r--pkgs/by-name/ne/neovim-qt/package.nix (renamed from pkgs/applications/editors/neovim/qt.nix)4
-rw-r--r--pkgs/by-name/ne/neovim-unwrapped/package.nix25
-rw-r--r--pkgs/by-name/ne/neovim-unwrapped/treesitter-parsers.nix42
-rwxr-xr-xpkgs/by-name/ne/neovim-unwrapped/update-treesitter-parsers.py8
-rw-r--r--pkgs/by-name/ne/nerdfetch/package.nix2
-rw-r--r--pkgs/by-name/ne/netclient/package.nix6
-rw-r--r--pkgs/by-name/ne/netease-cloud-music-gtk/Cargo.lock887
-rw-r--r--pkgs/by-name/ne/netease-cloud-music-gtk/package.nix16
-rw-r--r--pkgs/by-name/ne/netop/package.nix2
-rw-r--r--pkgs/by-name/ne/netproxrc/package.nix2
-rw-r--r--pkgs/by-name/ne/newsraft/package.nix4
-rw-r--r--pkgs/by-name/ne/nextjs-ollama-llm-ui/0001-update-nextjs.patch879
-rw-r--r--pkgs/by-name/ne/nextjs-ollama-llm-ui/0002-use-local-google-fonts.patch20
-rw-r--r--pkgs/by-name/ne/nextjs-ollama-llm-ui/0003-add-standalone-output.patch16
-rw-r--r--pkgs/by-name/ne/nextjs-ollama-llm-ui/package.nix101
-rw-r--r--pkgs/by-name/ne/nextpnr/package.nix2
-rw-r--r--pkgs/by-name/ne/nexusmods-app/deps.nix676
-rw-r--r--pkgs/by-name/ne/nexusmods-app/package.nix122
-rwxr-xr-xpkgs/by-name/ne/nexusmods-app/update.bash9
-rw-r--r--pkgs/by-name/ne/nezha-agent/package.nix6
-rw-r--r--pkgs/by-name/ng/ngrrram/package.nix29
-rw-r--r--pkgs/by-name/nh/nh/package.nix6
-rw-r--r--pkgs/by-name/nh/nhost-cli/package.nix37
-rw-r--r--pkgs/by-name/ni/nickel/Cargo.lock60
-rw-r--r--pkgs/by-name/ni/nickel/package.nix8
-rw-r--r--pkgs/by-name/ni/nicotine-plus/package.nix2
-rw-r--r--pkgs/by-name/ni/nightfox-gtk-theme/package.nix2
-rw-r--r--pkgs/by-name/ni/nim_builder/package.nix2
-rw-r--r--pkgs/by-name/ni/nim_lk/lock.json43
-rw-r--r--pkgs/by-name/ni/nim_lk/package.nix4
-rw-r--r--pkgs/by-name/ni/nimble/lock.json26
-rw-r--r--pkgs/by-name/ni/nimble/package.nix60
-rw-r--r--pkgs/by-name/ni/nimlangserver/package.nix2
-rw-r--r--pkgs/by-name/ni/nimlsp/package.nix8
-rw-r--r--pkgs/by-name/ni/ninja/package.nix (renamed from pkgs/development/tools/build-managers/ninja/default.nix)31
-rw-r--r--pkgs/by-name/ni/ninja/setup-hook.sh (renamed from pkgs/development/tools/build-managers/ninja/setup-hook.sh)0
-rw-r--r--pkgs/by-name/ni/niri/package.nix2
-rw-r--r--pkgs/by-name/ni/nix-direnv/package.nix6
-rw-r--r--pkgs/by-name/ni/nix-janitor/package.nix43
-rw-r--r--pkgs/by-name/ni/nix-lib-nmd/package.nix2
-rw-r--r--pkgs/by-name/ni/nix-lib-nmt/package.nix2
-rw-r--r--pkgs/by-name/ni/nixfmt-rfc-style/date.txt2
-rw-r--r--pkgs/by-name/ni/nixfmt-rfc-style/generated-package.nix17
-rw-r--r--pkgs/by-name/ni/nixfmt-rfc-style/package.nix7
-rwxr-xr-xpkgs/by-name/ni/nixfmt-rfc-style/update.sh6
-rw-r--r--pkgs/by-name/ni/nixos-anywhere/package.nix8
-rw-r--r--pkgs/by-name/nl/nls/package.nix2
-rw-r--r--pkgs/by-name/no/node-hp-scan-to/package.nix6
-rw-r--r--pkgs/by-name/no/nodeinfo/package.nix2
-rw-r--r--pkgs/by-name/no/nofi/package.nix2
-rw-r--r--pkgs/by-name/no/nom/package.nix6
-rw-r--r--pkgs/by-name/no/nomacs/package.nix5
-rw-r--r--pkgs/by-name/no/nomnatong/package.nix2
-rw-r--r--pkgs/by-name/no/normaliz/package.nix6
-rw-r--r--pkgs/by-name/no/normcap/package.nix4
-rw-r--r--pkgs/by-name/no/novelwriter/package.nix73
-rw-r--r--pkgs/by-name/np/np/package.nix2
-rw-r--r--pkgs/by-name/nr/nrf-udev/package.nix40
-rw-r--r--pkgs/by-name/nr/nrr/package.nix6
-rw-r--r--pkgs/by-name/nt/ntfs2btrfs/package.nix2
-rw-r--r--pkgs/by-name/nu/nuclei-templates/package.nix4
-rw-r--r--pkgs/by-name/nu/nucleiparser/package.nix2
-rw-r--r--pkgs/by-name/nu/nuget/package.nix2
-rw-r--r--pkgs/by-name/nu/nulloy/package.nix4
-rw-r--r--pkgs/by-name/nu/numbat/package.nix6
-rw-r--r--pkgs/by-name/nu/numi/package.nix41
-rw-r--r--pkgs/by-name/nu/nuv/package.nix75
-rw-r--r--pkgs/by-name/nu/nuv/tests.nix17
-rw-r--r--pkgs/by-name/nv/nvidia-texture-tools/package.nix2
-rw-r--r--pkgs/by-name/nw/nwg-drawer/package.nix6
-rw-r--r--pkgs/by-name/nw/nwg-hello/package.nix4
-rw-r--r--pkgs/by-name/nw/nwg-panel/package.nix (renamed from pkgs/applications/misc/nwg-panel/default.nix)4
-rw-r--r--pkgs/by-name/nx/nxengine-evo/package.nix2
-rw-r--r--pkgs/by-name/oc/ocis-bin/package.nix6
-rw-r--r--pkgs/by-name/od/odoo/package.nix111
-rwxr-xr-xpkgs/by-name/od/odoo/update.sh26
-rw-r--r--pkgs/by-name/od/odoo15/package.nix (renamed from pkgs/applications/finance/odoo/odoo15.nix)0
-rw-r--r--pkgs/by-name/od/odoo16/package.nix (renamed from pkgs/applications/finance/odoo/default.nix)5
-rw-r--r--pkgs/by-name/oe/oelint-adv/package.nix4
-rw-r--r--pkgs/by-name/of/offpunk/package.nix2
-rw-r--r--pkgs/by-name/oh/oh-my-fish/package.nix2
-rw-r--r--pkgs/by-name/oh/oh-my-posh/package.nix8
-rw-r--r--pkgs/by-name/oi/oil/package.nix6
-rw-r--r--pkgs/by-name/oi/oils-for-unix/package.nix5
-rw-r--r--pkgs/by-name/oi/oink/package.nix30
-rw-r--r--pkgs/by-name/ok/okolors/package.nix26
-rw-r--r--pkgs/by-name/ol/ollama/package.nix57
-rw-r--r--pkgs/by-name/ol/ols/package.nix (renamed from pkgs/development/tools/ols/default.nix)44
-rw-r--r--pkgs/by-name/ol/olvid/package.nix6
-rw-r--r--pkgs/by-name/om/omnictl/package.nix8
-rw-r--r--pkgs/by-name/om/omniorbpy/package.nix2
-rw-r--r--pkgs/by-name/on/onagre/package.nix2
-rw-r--r--pkgs/by-name/on/onedrivegui/package.nix2
-rw-r--r--pkgs/by-name/on/onedriver/package.nix2
-rw-r--r--pkgs/by-name/on/onscripter-en/package.nix67
-rw-r--r--pkgs/by-name/on/onthespot/package.nix20
-rw-r--r--pkgs/by-name/oo/oo7/Cargo.lock1980
-rw-r--r--pkgs/by-name/oo/oo7/package.nix60
-rw-r--r--pkgs/by-name/op/opcua-commander/package.nix2
-rw-r--r--pkgs/by-name/op/open-scq30/package.nix2
-rw-r--r--pkgs/by-name/op/open-webui/package.nix137
-rw-r--r--pkgs/by-name/op/open62541/package.nix (renamed from pkgs/development/libraries/open62541/default.nix)76
-rw-r--r--pkgs/by-name/op/openapi-changes/package.nix2
-rw-r--r--pkgs/by-name/op/openasar/package.nix2
-rw-r--r--pkgs/by-name/op/opencomposite/package.nix12
-rw-r--r--pkgs/by-name/op/openfga-cli/package.nix8
-rw-r--r--pkgs/by-name/op/openfga/package.nix8
-rw-r--r--pkgs/by-name/op/opengv/package.nix2
-rw-r--r--pkgs/by-name/op/openh264/package.nix2
-rw-r--r--pkgs/by-name/op/openorienteering-mapper/package.nix2
-rw-r--r--pkgs/by-name/op/openpgp-card-tools/package.nix (renamed from pkgs/tools/security/openpgp-card-tools/default.nix)17
-rw-r--r--pkgs/by-name/op/openpomodoro-cli/package.nix2
-rw-r--r--pkgs/by-name/op/opensearch-cli/package.nix2
-rw-r--r--pkgs/by-name/op/opensnitch-ui/package.nix2
-rw-r--r--pkgs/by-name/op/opensnitch/package.nix4
-rw-r--r--pkgs/by-name/op/opentelemetry-cpp/package.nix2
-rw-r--r--pkgs/by-name/op/openturns/package.nix1
-rw-r--r--pkgs/by-name/op/openvas-scanner/package.nix4
-rw-r--r--pkgs/by-name/op/openvr/package.nix2
-rw-r--r--pkgs/by-name/op/openvswitch/generic.nix2
-rw-r--r--pkgs/by-name/op/ophcrack-cli/package.nix73
-rw-r--r--pkgs/by-name/op/opshin/package.nix2
-rw-r--r--pkgs/by-name/or/orbiton/package.nix (renamed from pkgs/applications/editors/orbiton/default.nix)8
-rw-r--r--pkgs/by-name/or/orchard/package.nix6
-rw-r--r--pkgs/by-name/or/ord/package.nix48
-rw-r--r--pkgs/by-name/or/ory/package.nix2
-rw-r--r--pkgs/by-name/ot/oterm/package.nix11
-rw-r--r--pkgs/by-name/ot/otus-lisp/package.nix2
-rw-r--r--pkgs/by-name/ou/outfox/package.nix2
-rw-r--r--pkgs/by-name/ou/outputcheck/package.nix2
-rw-r--r--pkgs/by-name/ow/owncloud-client/package.nix4
-rw-r--r--pkgs/by-name/pa/pablodraw/package.nix2
-rw-r--r--pkgs/by-name/pa/pacproxy/package.nix2
-rw-r--r--pkgs/by-name/pa/pacu/package.nix4
-rw-r--r--pkgs/by-name/pa/pantheon-tweaks/package.nix (renamed from pkgs/desktops/pantheon/third-party/pantheon-tweaks/default.nix)20
-rw-r--r--pkgs/by-name/pa/paper-age/package.nix6
-rw-r--r--pkgs/by-name/pa/parallel-hashmap/package.nix2
-rw-r--r--pkgs/by-name/pa/parinfer-rust-emacs/package.nix2
-rw-r--r--pkgs/by-name/pa/passes/package.nix2
-rw-r--r--pkgs/by-name/pa/passmark-performancetest/package.nix2
-rw-r--r--pkgs/by-name/pa/passt/package.nix4
-rw-r--r--pkgs/by-name/pa/patch2pr/package.nix6
-rw-r--r--pkgs/by-name/pa/payloadsallthethings/package.nix33
-rw-r--r--pkgs/by-name/pc/pcsx2/define-rev.patch (renamed from pkgs/applications/emulators/pcsx2/define-rev.patch)0
-rw-r--r--pkgs/by-name/pc/pcsx2/package.nix (renamed from pkgs/applications/emulators/pcsx2/default.nix)54
-rw-r--r--pkgs/by-name/pc/pcsx2/shaderc-patched.nix20
-rw-r--r--pkgs/by-name/pd/pdepend/package.nix2
-rw-r--r--pkgs/by-name/pd/pdf-sign/package.nix2
-rw-r--r--pkgs/by-name/pd/pdfannots2json/package.nix2
-rw-r--r--pkgs/by-name/pd/pdk/Gemfile2
-rw-r--r--pkgs/by-name/pd/pdk/Gemfile.lock22
-rw-r--r--pkgs/by-name/pd/pdk/gemset.nix69
-rw-r--r--pkgs/by-name/pd/pdns-recursor/package.nix2
-rw-r--r--pkgs/by-name/pd/pdpmake/package.nix4
-rw-r--r--pkgs/by-name/pe/peergos/package.nix6
-rw-r--r--pkgs/by-name/pe/pekwm/package.nix2
-rw-r--r--pkgs/by-name/pe/perf_data_converter/package.nix2
-rw-r--r--pkgs/by-name/pe/perl-debug-adapter/package.nix1
-rw-r--r--pkgs/by-name/pe/persepolis/package.nix2
-rw-r--r--pkgs/by-name/pe/pesign/package.nix2
-rw-r--r--pkgs/by-name/pg/pg-dump-anon/package.nix4
-rw-r--r--pkgs/by-name/pg/pget/package.nix2
-rw-r--r--pkgs/by-name/pg/pghero/Gemfile14
-rw-r--r--pkgs/by-name/pg/pghero/Gemfile.lock280
-rw-r--r--pkgs/by-name/pg/pghero/gemset.nix1034
-rw-r--r--pkgs/by-name/pg/pghero/package.nix74
-rw-r--r--pkgs/by-name/pg/pghero/update.nix59
-rw-r--r--pkgs/by-name/pg/pgraphs/package.nix29
-rw-r--r--pkgs/by-name/pg/pgrok/package.nix (renamed from pkgs/tools/networking/pgrok/default.nix)35
-rw-r--r--pkgs/by-name/ph/phel/package.nix2
-rw-r--r--pkgs/by-name/ph/photonvision/package.nix2
-rw-r--r--pkgs/by-name/ph/phpdocumentor/package.nix6
-rw-r--r--pkgs/by-name/ph/phpunit/package.nix6
-rw-r--r--pkgs/by-name/ph/physac/package.nix47
-rw-r--r--pkgs/by-name/pi/picom-pijulius/package.nix17
-rw-r--r--pkgs/by-name/pi/picom/package.nix2
-rw-r--r--pkgs/by-name/pi/pid1/package.nix6
-rw-r--r--pkgs/by-name/pi/pie-cli/package.nix37
-rw-r--r--pkgs/by-name/pi/pinact/package.nix6
-rw-r--r--pkgs/by-name/pi/pingtunnel/package.nix2
-rw-r--r--pkgs/by-name/pi/piv-agent/package.nix2
-rw-r--r--pkgs/by-name/pi/pixel-code/package.nix4
-rw-r--r--pkgs/by-name/pi/pixi/Cargo.lock1398
-rw-r--r--pkgs/by-name/pi/pixi/package.nix14
-rw-r--r--pkgs/by-name/pi/pizauth/package.nix43
-rw-r--r--pkgs/by-name/pk/pkcrack/package.nix4
-rw-r--r--pkgs/by-name/pk/pkcs11-provider/package.nix26
-rw-r--r--pkgs/by-name/pl/plasticity/package.nix4
-rwxr-xr-xpkgs/by-name/pl/plasticity/update.sh2
-rw-r--r--pkgs/by-name/pl/platformsh/package.nix2
-rw-r--r--pkgs/by-name/pl/plattenalbum/package.nix60
-rw-r--r--pkgs/by-name/pl/plemoljp-hs/package.nix2
-rw-r--r--pkgs/by-name/pl/plemoljp-nf/package.nix2
-rw-r--r--pkgs/by-name/pl/plemoljp/package.nix2
-rw-r--r--pkgs/by-name/pl/plow/package.nix2
-rw-r--r--pkgs/by-name/pl/plumber/package.nix6
-rw-r--r--pkgs/by-name/pl/plymouth-proxzima-theme/package.nix39
-rw-r--r--pkgs/by-name/pl/plymouth-vortex-ubuntu-theme/package.nix43
-rw-r--r--pkgs/by-name/pl/plzip/package.nix2
-rw-r--r--pkgs/by-name/pm/pm2/package.nix6
-rw-r--r--pkgs/by-name/pm/pmbootstrap/package.nix (renamed from pkgs/tools/misc/pmbootstrap/default.nix)32
-rw-r--r--pkgs/by-name/pm/pmtiles/package.nix8
-rw-r--r--pkgs/by-name/po/poethepoet/package.nix2
-rw-r--r--pkgs/by-name/po/pokemon-cursor/package.nix2
-rw-r--r--pkgs/by-name/po/polkit_gnome/package.nix (renamed from pkgs/tools/security/polkit-gnome/default.nix)10
-rw-r--r--pkgs/by-name/po/polkit_gnome/polkit-gnome-authentication-agent-1.desktop (renamed from pkgs/tools/security/polkit-gnome/polkit-gnome-authentication-agent-1.desktop)0
-rw-r--r--pkgs/by-name/po/polybar/package.nix2
-rw-r--r--pkgs/by-name/po/polylux2pdfpc/package.nix2
-rw-r--r--pkgs/by-name/po/pomodoro-gtk/package.nix2
-rw-r--r--pkgs/by-name/po/poppins/package.nix2
-rw-r--r--pkgs/by-name/po/poptracker/package.nix10
-rw-r--r--pkgs/by-name/po/portablemc/package.nix2
-rw-r--r--pkgs/by-name/po/pot/package.nix67
-rw-r--r--pkgs/by-name/po/poutine/package.nix33
-rw-r--r--pkgs/by-name/po/powerjoular/package.nix45
-rw-r--r--pkgs/by-name/po/powerpipe/package.nix6
-rw-r--r--pkgs/by-name/po/powersploit/package.nix2
-rw-r--r--pkgs/by-name/pp/ppsspp/package.nix2
-rw-r--r--pkgs/by-name/pr/pragtical/package.nix2
-rw-r--r--pkgs/by-name/pr/presenterm/package.nix2
-rw-r--r--pkgs/by-name/pr/pretalx/package.nix12
-rw-r--r--pkgs/by-name/pr/pretalx/plugins/public-voting.nix2
-rw-r--r--pkgs/by-name/pr/pretix/package.nix16
-rw-r--r--pkgs/by-name/pr/pretix/plugins/pages.nix4
-rw-r--r--pkgs/by-name/pr/pretix/plugins/passbook.nix4
-rw-r--r--pkgs/by-name/pr/probe-rs-tools/package.nix69
-rw-r--r--pkgs/by-name/pr/process-cpp/package.nix78
-rw-r--r--pkgs/by-name/pr/prometheus-jmx-javaagent/package.nix36
-rw-r--r--pkgs/by-name/pr/prometheus-squid-exporter/package.nix22
-rw-r--r--pkgs/by-name/pr/promexplorer/package.nix2
-rw-r--r--pkgs/by-name/pr/promptfoo/package.nix2
-rw-r--r--pkgs/by-name/pr/protege/enforce-plugin-versions.patch43
-rw-r--r--pkgs/by-name/pr/protege/package.nix93
-rw-r--r--pkgs/by-name/pr/protege/platform-independent-only.patch24
-rw-r--r--pkgs/by-name/pr/proto/package.nix8
-rw-r--r--pkgs/by-name/pr/proton-ge-bin/package.nix4
-rw-r--r--pkgs/by-name/pr/proton-pass/package.nix52
-rw-r--r--pkgs/by-name/pr/protonmail-desktop/package.nix4
-rw-r--r--pkgs/by-name/pr/protonplus/package.nix2
-rw-r--r--pkgs/by-name/pr/prox/package.nix2
-rw-r--r--pkgs/by-name/pr/prr/package.nix2
-rw-r--r--pkgs/by-name/ps/ps_mem/package.nix2
-rw-r--r--pkgs/by-name/pt/ptunnel/package.nix2
-rw-r--r--pkgs/by-name/pt/ptyxis/package.nix2
-rw-r--r--pkgs/by-name/pu/pulsar/package.nix2
-rw-r--r--pkgs/by-name/pu/pulumi-esc/package.nix36
-rw-r--r--pkgs/by-name/pu/pupdate/package.nix4
-rw-r--r--pkgs/by-name/pu/puppet-bolt/package.nix11
-rw-r--r--pkgs/by-name/pu/purescm/package.nix17
-rw-r--r--pkgs/by-name/pu/pushup/package.nix2
-rw-r--r--pkgs/by-name/pw/pwalarmctl/package.nix43
-rw-r--r--pkgs/by-name/pw/pwalarmd/package.nix37
-rw-r--r--pkgs/by-name/pw/pwndbg/package.nix1
-rw-r--r--pkgs/by-name/py/pybibget/package.nix42
-rw-r--r--pkgs/by-name/py/pyprland/package.nix6
-rw-r--r--pkgs/by-name/py/pyright/package.nix8
-rw-r--r--pkgs/by-name/py/pyspread/package.nix2
-rw-r--r--pkgs/by-name/py/pyxel/Cargo.lock772
-rw-r--r--pkgs/by-name/py/pyxel/never-bundle-sdl2.patch10
-rw-r--r--pkgs/by-name/py/pyxel/package.nix31
-rw-r--r--pkgs/by-name/py/pyxel/update-bindgen-f16-support.patch13
-rw-r--r--pkgs/by-name/pz/pzip/package.nix2
-rw-r--r--pkgs/by-name/qc/qcm/package.nix6
-rw-r--r--pkgs/by-name/qd/qdrant-web-ui/package.nix35
-rw-r--r--pkgs/by-name/qr/qrcode/package.nix (renamed from pkgs/tools/graphics/qrcode/default.nix)14
-rw-r--r--pkgs/by-name/qr/qrtool/package.nix2
-rw-r--r--pkgs/by-name/qs/qspeakers/package.nix2
-rw-r--r--pkgs/by-name/qu/quarkus/package.nix4
-rw-r--r--pkgs/by-name/qu/quickemu/package.nix82
-rw-r--r--pkgs/by-name/qu/quickjs-ng/package.nix2
-rw-r--r--pkgs/by-name/qu/quicksand/package.nix2
-rw-r--r--pkgs/by-name/qu/quinze/package.nix28
-rw-r--r--pkgs/by-name/r0/r0vm/package.nix59
-rw-r--r--pkgs/by-name/ra/rabbit/package.nix2
-rw-r--r--pkgs/by-name/ra/radcli/package.nix6
-rw-r--r--pkgs/by-name/ra/radicale/package.nix10
-rw-r--r--pkgs/by-name/ra/radicle-node/package.nix61
-rw-r--r--pkgs/by-name/ra/rage/package.nix2
-rw-r--r--pkgs/by-name/ra/rasm/package.nix30
-rw-r--r--pkgs/by-name/ra/raspberrypi-eeprom/package.nix4
-rw-r--r--pkgs/by-name/ra/ratchet/package.nix2
-rw-r--r--pkgs/by-name/ra/rav1e/package.nix (renamed from pkgs/tools/video/rav1e/default.nix)62
-rw-r--r--pkgs/by-name/ra/raygui/package.nix47
-rw-r--r--pkgs/by-name/rc/rc/package.nix2
-rw-r--r--pkgs/by-name/rc/rclip/package.nix11
-rw-r--r--pkgs/by-name/rc/rcp/package.nix6
-rw-r--r--pkgs/by-name/rc/rcu/package.nix5
-rw-r--r--pkgs/by-name/re/reaction/package.nix8
-rw-r--r--pkgs/by-name/re/reactphysics3d/package.nix4
-rw-r--r--pkgs/by-name/re/read-it-later/package.nix2
-rw-r--r--pkgs/by-name/re/recoverdm/package.nix1
-rw-r--r--pkgs/by-name/re/redfishtool/package.nix2
-rw-r--r--pkgs/by-name/re/redict/package.nix4
-rw-r--r--pkgs/by-name/re/redka/package.nix4
-rw-r--r--pkgs/by-name/re/redlib/package.nix6
-rw-r--r--pkgs/by-name/re/redocly/package.nix6
-rw-r--r--pkgs/by-name/re/regal/package.nix8
-rw-r--r--pkgs/by-name/re/release-plz/package.nix46
-rw-r--r--pkgs/by-name/re/ren-find/package.nix2
-rw-r--r--pkgs/by-name/re/renode-dts2repl/package.nix8
-rw-r--r--pkgs/by-name/re/renode-unstable/package.nix4
-rw-r--r--pkgs/by-name/re/renode/package.nix4
-rw-r--r--pkgs/by-name/re/renovate/package.nix107
-rw-r--r--pkgs/by-name/re/rep-grep/package.nix2
-rw-r--r--pkgs/by-name/re/replxx/package.nix2
-rw-r--r--pkgs/by-name/re/reproxy/package.nix6
-rw-r--r--pkgs/by-name/re/rerun/package.nix5
-rw-r--r--pkgs/by-name/re/resorter/package.nix46
-rw-r--r--pkgs/by-name/re/resources/package.nix6
-rw-r--r--pkgs/by-name/re/restls/package.nix2
-rw-r--r--pkgs/by-name/re/retool/package.nix2
-rw-r--r--pkgs/by-name/re/rewind-ai/package.nix82
-rw-r--r--pkgs/by-name/ri/ricochet-refresh/package.nix9
-rw-r--r--pkgs/by-name/ri/ride/package.nix14
-rw-r--r--pkgs/by-name/ri/rimgo/package.nix2
-rw-r--r--pkgs/by-name/ri/ringfairy/package.nix41
-rw-r--r--pkgs/by-name/ri/ringracers/package.nix95
-rw-r--r--pkgs/by-name/ri/rippkgs/package.nix2
-rw-r--r--pkgs/by-name/ri/ripsecrets/package.nix2
-rw-r--r--pkgs/by-name/ri/ripunzip/package.nix8
-rw-r--r--pkgs/by-name/ri/river-filtile/package.nix2
-rw-r--r--pkgs/by-name/ri/river/build.zig.zon.nix24
-rw-r--r--pkgs/by-name/ri/river/package.nix10
-rw-r--r--pkgs/by-name/ro/roave-backward-compatibility-check/package.nix37
-rw-r--r--pkgs/by-name/ro/rockyou/package.nix2
-rw-r--r--pkgs/by-name/ro/roddhjav-apparmor-rules/package.nix47
-rw-r--r--pkgs/by-name/ro/rofi-blezz/package.nix2
-rw-r--r--pkgs/by-name/ro/rofi-obsidian/package.nix8
-rw-r--r--pkgs/by-name/ro/rofimoji/package.nix6
-rw-r--r--pkgs/by-name/ro/roon-tui/package.nix2
-rw-r--r--pkgs/by-name/ro/roslyn-ls/package.nix2
-rw-r--r--pkgs/by-name/rp/rpcs3/package.nix8
-rw-r--r--pkgs/by-name/rq/rqbit/package.nix2
-rw-r--r--pkgs/by-name/rq/rquickshare/package.nix34
-rw-r--r--pkgs/by-name/rs/rs-tftpd/package.nix9
-rw-r--r--pkgs/by-name/rs/rsgain/package.nix6
-rw-r--r--pkgs/by-name/rt/rtaudio_6/package.nix2
-rw-r--r--pkgs/by-name/rt/rtl_fm_streamer/package.nix50
-rw-r--r--pkgs/by-name/ru/rustplayer/package.nix2
-rw-r--r--pkgs/by-name/ru/rusty-diceware/package.nix29
-rw-r--r--pkgs/by-name/rw/rwpspread/package.nix2
-rw-r--r--pkgs/by-name/ry/ryujinx/deps.nix99
-rw-r--r--pkgs/by-name/ry/ryujinx/package.nix6
-rw-r--r--pkgs/by-name/s0/s0ix-selftest-tool/package.nix2
-rw-r--r--pkgs/by-name/s3/s3proxy/package.nix2
-rw-r--r--pkgs/by-name/sa/sabnzbd/package.nix4
-rw-r--r--pkgs/by-name/sa/salut/package.nix2
-rw-r--r--pkgs/by-name/sa/samrewritten/package.nix2
-rw-r--r--pkgs/by-name/sa/sarasa-gothic/package.nix6
-rw-r--r--pkgs/by-name/sa/sarif-fmt/package.nix58
-rw-r--r--pkgs/by-name/sa/satellite/package.nix2
-rw-r--r--pkgs/by-name/sa/satty/package.nix8
-rw-r--r--pkgs/by-name/sc/scc/package.nix6
-rw-r--r--pkgs/by-name/sc/scdoc/package.nix2
-rw-r--r--pkgs/by-name/sc/scenefx/package.nix2
-rw-r--r--pkgs/by-name/sc/scion/package.nix3
-rw-r--r--pkgs/by-name/sc/scope-tui/package.nix2
-rw-r--r--pkgs/by-name/sc/screentest/package.nix2
-rw-r--r--pkgs/by-name/sc/scrutiny-collector/package.nix2
-rw-r--r--pkgs/by-name/sc/scrutiny/package.nix2
-rw-r--r--pkgs/by-name/sd/SDL2_Pango/package.nix48
-rw-r--r--pkgs/by-name/sd/SDL2_gfx/package.nix75
-rw-r--r--pkgs/by-name/sd/SDL2_mixer/package.nix10
-rw-r--r--pkgs/by-name/sd/SDL2_net/package.nix3
-rw-r--r--pkgs/by-name/sd/SDL2_sound/package.nix (renamed from pkgs/development/libraries/SDL2_sound/default.nix)9
-rw-r--r--pkgs/by-name/sd/SDL2_ttf/package.nix65
-rw-r--r--pkgs/by-name/sd/SDL_Pango/0001-fixes.patch (renamed from pkgs/development/libraries/SDL_Pango/fixes.patch)0
-rw-r--r--pkgs/by-name/sd/SDL_Pango/package.nix57
-rw-r--r--pkgs/by-name/sd/SDL_audiolib/package.nix59
-rw-r--r--pkgs/by-name/sd/SDL_gfx/package.nix58
-rw-r--r--pkgs/by-name/sd/SDL_gpu/package.nix52
-rw-r--r--pkgs/by-name/sd/SDL_image/package.nix69
-rw-r--r--pkgs/by-name/sd/SDL_mixer/package.nix (renamed from pkgs/development/libraries/SDL_mixer/default.nix)73
-rw-r--r--pkgs/by-name/sd/SDL_net/package.nix43
-rw-r--r--pkgs/by-name/sd/SDL_sixel/package.nix39
-rw-r--r--pkgs/by-name/sd/SDL_sound/package.nix48
-rw-r--r--pkgs/by-name/sd/SDL_stretch/package.nix31
-rw-r--r--pkgs/by-name/sd/SDL_ttf/package.nix55
-rw-r--r--pkgs/by-name/se/searxng/package.nix154
-rw-r--r--pkgs/by-name/se/seclists/package.nix8
-rwxr-xr-xpkgs/by-name/se/segger-jlink/package.nix10
-rw-r--r--pkgs/by-name/se/selenium-manager/package.nix2
-rw-r--r--pkgs/by-name/se/sendme/package.nix8
-rw-r--r--pkgs/by-name/se/sequoia-sq/package.nix2
-rw-r--r--pkgs/by-name/se/sequoia-wot/package.nix90
-rw-r--r--pkgs/by-name/se/serious-sans/package.nix2
-rw-r--r--pkgs/by-name/se/sesh/package.nix4
-rw-r--r--pkgs/by-name/se/setup-envtest/package.nix30
-rw-r--r--pkgs/by-name/sf/sfwbar/package.nix65
-rw-r--r--pkgs/by-name/sg/sgfutils/package.nix4
-rw-r--r--pkgs/by-name/sh/shadow-tls/package.nix2
-rw-r--r--pkgs/by-name/sh/share-preview/package.nix66
-rw-r--r--pkgs/by-name/sh/shellcheck-sarif/package.nix6
-rw-r--r--pkgs/by-name/sh/shepherd/package.nix2
-rw-r--r--pkgs/by-name/sh/shopware-cli/package.nix6
-rw-r--r--pkgs/by-name/sh/show-midi/package.nix19
-rw-r--r--pkgs/by-name/si/sigi/package.nix8
-rw-r--r--pkgs/by-name/si/signal-backup-deduplicator/package.nix38
-rw-r--r--pkgs/by-name/si/signal-export/package.nix2
-rw-r--r--pkgs/by-name/si/silicon/package.nix1
-rw-r--r--pkgs/by-name/si/silverbullet/package.nix2
-rw-r--r--pkgs/by-name/si/simpleBluez/package.nix47
-rw-r--r--pkgs/by-name/si/simpleDBus/package.nix47
-rw-r--r--pkgs/by-name/si/simplesamlphp/package.nix2
-rw-r--r--pkgs/by-name/si/simplex-chat-desktop/package.nix20
-rw-r--r--pkgs/by-name/si/simplotask/package.nix2
-rw-r--r--pkgs/by-name/si/sink-rotate/package.nix2
-rw-r--r--pkgs/by-name/si/sirikali/package.nix2
-rw-r--r--pkgs/by-name/si/siyuan/package.nix2
-rw-r--r--pkgs/by-name/sk/sketchybar-app-font/package.nix13
-rw-r--r--pkgs/by-name/sk/sketchybar/package.nix2
-rw-r--r--pkgs/by-name/sk/skia-aseprite/deps.nix (renamed from pkgs/applications/editors/aseprite/skia-deps.nix)8
-rw-r--r--pkgs/by-name/sk/skia-aseprite/package.nix115
-rwxr-xr-xpkgs/by-name/sk/skia-aseprite/update.sh71
-rw-r--r--pkgs/by-name/sk/skypeexport/package.nix (renamed from pkgs/applications/networking/instant-messengers/SkypeExport/default.nix)8
-rw-r--r--pkgs/by-name/sl/slimserver/package.nix6
-rw-r--r--pkgs/by-name/sl/slumber/package.nix6
-rw-r--r--pkgs/by-name/sl/slurm-nm/package.nix2
-rw-r--r--pkgs/by-name/sm/smallwm/package.nix2
-rw-r--r--pkgs/by-name/sm/smassh/package.nix2
-rw-r--r--pkgs/by-name/sm/smb3-foundry/package.nix2
-rw-r--r--pkgs/by-name/sm/smile/package.nix20
-rw-r--r--pkgs/by-name/sm/smplayer/package.nix (renamed from pkgs/applications/video/smplayer/default.nix)30
-rw-r--r--pkgs/by-name/sm/smuview/package.nix2
-rw-r--r--pkgs/by-name/sn/snekim/package.nix2
-rw-r--r--pkgs/by-name/sn/snicat/deps.nix12
-rw-r--r--pkgs/by-name/sn/snicat/package.nix26
-rw-r--r--pkgs/by-name/sn/snipaste/package.nix24
-rw-r--r--pkgs/by-name/sn/snipe-it/package.nix6
-rw-r--r--pkgs/by-name/sn/snippetexpander/package.nix1
-rw-r--r--pkgs/by-name/sn/snippetexpandergui/package.nix1
-rw-r--r--pkgs/by-name/sn/snippetexpanderx/package.nix1
-rw-r--r--pkgs/by-name/sn/snowmachine/package.nix2
-rw-r--r--pkgs/by-name/sn/snx-rs/Cargo.lock4253
-rw-r--r--pkgs/by-name/sn/snx-rs/package.nix33
-rw-r--r--pkgs/by-name/so/soju/package.nix (renamed from pkgs/applications/networking/soju/default.nix)10
-rw-r--r--pkgs/by-name/so/sonarlint-ls/package.nix120
-rw-r--r--pkgs/by-name/so/sopwith/package.nix2
-rw-r--r--pkgs/by-name/so/soupault/package.nix2
-rw-r--r--pkgs/by-name/so/sourcery/package.nix12
-rw-r--r--pkgs/by-name/sp/spacedrive/package.nix177
-rw-r--r--pkgs/by-name/sp/spade/package.nix2
-rw-r--r--pkgs/by-name/sp/spades/package.nix46
-rw-r--r--pkgs/by-name/sp/spatial-shell/package.nix37
-rw-r--r--pkgs/by-name/sp/speakersafetyd/package.nix2
-rw-r--r--pkgs/by-name/sp/spice-autorandr/package.nix2
-rw-r--r--pkgs/by-name/sp/spicetify-cli/package.nix24
-rw-r--r--pkgs/by-name/sp/spigot/package.nix2
-rw-r--r--pkgs/by-name/sp/spirit/package.nix8
-rw-r--r--pkgs/by-name/sp/spla/package.nix4
-rw-r--r--pkgs/by-name/sp/sploitscan/package.nix45
-rw-r--r--pkgs/by-name/sp/spoof/package-lock.json3472
-rw-r--r--pkgs/by-name/sp/spoof/package.nix34
-rw-r--r--pkgs/by-name/sp/spotube/package.nix2
-rw-r--r--pkgs/by-name/sq/sqlite-vss/package.nix1
-rw-r--r--pkgs/by-name/sq/squeezelite/package.nix (renamed from pkgs/applications/audio/squeezelite/default.nix)96
-rwxr-xr-xpkgs/by-name/sq/squeezelite/update.sh (renamed from pkgs/applications/audio/squeezelite/update.sh)0
-rw-r--r--pkgs/by-name/sr/sr2t/package.nix40
-rw-r--r--pkgs/by-name/sr/srgn/package.nix36
-rw-r--r--pkgs/by-name/sr/srht-gen-oauth-tok/package.nix2
-rw-r--r--pkgs/by-name/sr/srm-cuarzo/package.nix10
-rw-r--r--pkgs/by-name/ss/ssh-askpass-fullscreen/package.nix2
-rw-r--r--pkgs/by-name/ss/sshesame/package.nix2
-rw-r--r--pkgs/by-name/st/stackit-cli/package.nix6
-rw-r--r--pkgs/by-name/st/stackql/package.nix48
-rw-r--r--pkgs/by-name/st/stalwart-mail/package.nix15
-rw-r--r--pkgs/by-name/st/stanc/package.nix6
-rw-r--r--pkgs/by-name/st/starlark/package.nix10
-rw-r--r--pkgs/by-name/st/starpls-bin/package.nix34
-rw-r--r--pkgs/by-name/st/stash/package.nix50
-rw-r--r--pkgs/by-name/st/static-server/package.nix2
-rw-r--r--pkgs/by-name/st/stats/package.nix4
-rw-r--r--pkgs/by-name/st/stduuid/package.nix2
-rw-r--r--pkgs/by-name/st/steamguard-cli/package.nix8
-rw-r--r--pkgs/by-name/st/steampipe/package.nix4
-rw-r--r--pkgs/by-name/st/stella/package.nix2
-rw-r--r--pkgs/by-name/st/step-cli/package.nix8
-rw-r--r--pkgs/by-name/st/stereotool/package.nix2
-rw-r--r--pkgs/by-name/st/stirling-pdf/package.nix8
-rw-r--r--pkgs/by-name/st/stormlib/package.nix2
-rw-r--r--pkgs/by-name/st/streamdeck-ui/package.nix139
-rw-r--r--pkgs/by-name/st/streamrip/package.nix77
-rw-r--r--pkgs/by-name/st/streamrip/patches/ensure-the-default-config-file-is-writable.patch26
-rw-r--r--pkgs/by-name/st/strictdoc/package.nix4
-rw-r--r--pkgs/by-name/st/sttr/package.nix4
-rw-r--r--pkgs/by-name/st/stylance-cli/package.nix8
-rw-r--r--pkgs/by-name/su/sublime-music/package.nix (renamed from pkgs/applications/audio/sublime-music/default.nix)20
-rw-r--r--pkgs/by-name/su/subprober/package.nix53
-rw-r--r--pkgs/by-name/su/subtitlecomposer/package.nix6
-rw-r--r--pkgs/by-name/su/sudachi-rs/package.nix2
-rw-r--r--pkgs/by-name/su/sudachidict/package.nix2
-rw-r--r--pkgs/by-name/su/sunpaper/package.nix2
-rw-r--r--pkgs/by-name/su/supergfxctl-plasmoid/package.nix38
-rw-r--r--pkgs/by-name/su/supermodel/package.nix2
-rw-r--r--pkgs/by-name/su/supersonic/package.nix6
-rw-r--r--pkgs/by-name/su/surrealdb/package.nix8
-rw-r--r--pkgs/by-name/su/surrealist/package.nix47
-rw-r--r--pkgs/by-name/su/suwayomi-server/package.nix2
-rw-r--r--pkgs/by-name/sv/svelte-language-server/package-lock.json1946
-rw-r--r--pkgs/by-name/sv/svelte-language-server/package.nix34
-rwxr-xr-xpkgs/by-name/sv/svelte-language-server/update.sh30
-rw-r--r--pkgs/by-name/sv/svix-server/package.nix2
-rw-r--r--pkgs/by-name/sv/svp/mpv.nix16
-rw-r--r--pkgs/by-name/sv/svp/package.nix2
-rw-r--r--pkgs/by-name/sw/sway-assign-cgroups/package.nix2
-rw-r--r--pkgs/by-name/sw/sway-easyfocus/package.nix2
-rw-r--r--pkgs/by-name/sw/sway-unwrapped/package.nix2
-rw-r--r--pkgs/by-name/sw/swaycons/package.nix12
-rw-r--r--pkgs/by-name/sw/swaylock/package.nix2
-rw-r--r--pkgs/by-name/sw/swaymux/package.nix2
-rw-r--r--pkgs/by-name/sw/swayosd/package.nix2
-rw-r--r--pkgs/by-name/sw/swayws/package.nix2
-rw-r--r--pkgs/by-name/sw/swaywsr/package.nix8
-rw-r--r--pkgs/by-name/sw/swiftlint/package.nix42
-rw-r--r--pkgs/by-name/sw/switch-to-configuration-ng/src/main.rs73
-rw-r--r--pkgs/by-name/sw/switcheroo/package.nix2
-rw-r--r--pkgs/by-name/sy/syft/package.nix6
-rw-r--r--pkgs/by-name/sy/sylk/package.nix (renamed from pkgs/applications/networking/Sylk/default.nix)19
-rw-r--r--pkgs/by-name/sy/symfony-cli/package.nix6
-rw-r--r--pkgs/by-name/sy/symphony/package.nix4
-rw-r--r--pkgs/by-name/sy/sync/package.nix4
-rw-r--r--pkgs/by-name/sy/syncstorage-rs/Cargo.lock735
-rw-r--r--pkgs/by-name/sy/syncstorage-rs/package.nix4
-rw-r--r--pkgs/by-name/sy/syncthing-tray/package.nix44
-rw-r--r--pkgs/by-name/sy/sysmenu/001-no-runtime-config.patch13
-rw-r--r--pkgs/by-name/sy/sysmenu/002-cflags-fix.patch13
-rw-r--r--pkgs/by-name/sy/sysmenu/package.nix56
-rw-r--r--pkgs/by-name/sy/systemctl-tui/package.nix8
-rw-r--r--pkgs/by-name/ta/tabiew/package.nix41
-rw-r--r--pkgs/by-name/ta/tailscale-nginx-auth/package.nix8
-rw-r--r--pkgs/by-name/ta/taler-exchange/package.nix4
-rw-r--r--pkgs/by-name/ta/taler-merchant/package.nix9
-rw-r--r--pkgs/by-name/ta/tangerine/package.nix2
-rw-r--r--pkgs/by-name/ta/taschenrechner/package.nix2
-rw-r--r--pkgs/by-name/tb/tbump/package.nix41
-rw-r--r--pkgs/by-name/tc/tcsh/package.nix6
-rw-r--r--pkgs/by-name/td/tdf/Cargo.lock1511
-rw-r--r--pkgs/by-name/td/tdf/package.nix55
-rw-r--r--pkgs/by-name/td/tdl/package.nix8
-rw-r--r--pkgs/by-name/te/techmino/Cargo.lock897
-rw-r--r--pkgs/by-name/te/techmino/ccloader.nix44
-rw-r--r--pkgs/by-name/te/techmino/libcoldclear.nix54
-rw-r--r--pkgs/by-name/te/techmino/package.nix75
-rw-r--r--pkgs/by-name/te/tecoc/package.nix2
-rw-r--r--pkgs/by-name/te/telescope/package.nix4
-rw-r--r--pkgs/by-name/te/televido/package.nix59
-rw-r--r--pkgs/by-name/te/templ/package.nix6
-rw-r--r--pkgs/by-name/te/tenv/package.nix6
-rw-r--r--pkgs/by-name/te/tera-cli/package.nix8
-rw-r--r--pkgs/by-name/te/termsonic/package.nix2
-rw-r--r--pkgs/by-name/te/terraform-plugin-docs/package.nix6
-rw-r--r--pkgs/by-name/te/terragrunt/package.nix2
-rw-r--r--pkgs/by-name/te/tetrio-desktop/tetrio-plus.nix7
-rw-r--r--pkgs/by-name/te/textlint-plugin-latex2e/package.nix37
-rw-r--r--pkgs/by-name/te/textlint-plugin-latex2e/test.tex4
-rw-r--r--pkgs/by-name/te/textlint-rule-abbr-within-parentheses/package.nix79
-rw-r--r--pkgs/by-name/te/textlint-rule-abbr-within-parentheses/test.md1
-rw-r--r--pkgs/by-name/te/textlint-rule-alex/package.nix34
-rw-r--r--pkgs/by-name/te/textlint-rule-alex/test.md1
-rw-r--r--pkgs/by-name/te/textlint-rule-common-misspellings/package.nix135
-rw-r--r--pkgs/by-name/te/textlint-rule-common-misspellings/test.md1
-rw-r--r--pkgs/by-name/te/textlint-rule-diacritics/package.nix36
-rw-r--r--pkgs/by-name/te/textlint-rule-diacritics/test.md1
-rw-r--r--pkgs/by-name/te/textlint-rule-en-max-word-count/package.nix79
-rw-r--r--pkgs/by-name/te/textlint-rule-en-max-word-count/test.md1
-rw-r--r--pkgs/by-name/te/textlint-rule-max-comma/package.nix79
-rw-r--r--pkgs/by-name/te/textlint-rule-max-comma/test.md1
-rw-r--r--pkgs/by-name/te/textlint-rule-no-start-duplicated-conjunction/package.nix79
-rw-r--r--pkgs/by-name/te/textlint-rule-no-start-duplicated-conjunction/test.md3
-rw-r--r--pkgs/by-name/te/textlint-rule-period-in-list-item/package.nix79
-rw-r--r--pkgs/by-name/te/textlint-rule-period-in-list-item/test.md1
-rw-r--r--pkgs/by-name/te/textlint-rule-preset-ja-technical-writing/package.nix72
-rw-r--r--pkgs/by-name/te/textlint-rule-preset-ja-technical-writing/test.md1
-rw-r--r--pkgs/by-name/te/textlint-rule-stop-words/package.nix36
-rw-r--r--pkgs/by-name/te/textlint-rule-stop-words/test.md1
-rw-r--r--pkgs/by-name/te/textlint-rule-terminology/package.nix36
-rw-r--r--pkgs/by-name/te/textlint-rule-terminology/test.md1
-rw-r--r--pkgs/by-name/te/textlint-rule-unexpanded-acronym/package.nix79
-rw-r--r--pkgs/by-name/te/textlint-rule-unexpanded-acronym/test.md1
-rw-r--r--pkgs/by-name/te/textlint-rule-write-good/package.nix79
-rw-r--r--pkgs/by-name/te/textlint-rule-write-good/test.md1
-rw-r--r--pkgs/by-name/te/textlint/package.nix136
-rw-r--r--pkgs/by-name/te/textlint/remove-workspaces.patch19
-rw-r--r--pkgs/by-name/te/textpieces/Cargo.lock2512
-rw-r--r--pkgs/by-name/te/textpieces/package.nix65
-rw-r--r--pkgs/by-name/th/thcrap-steam-proton-wrapper/package.nix2
-rw-r--r--pkgs/by-name/th/the-legend-of-edgar/package.nix2
-rw-r--r--pkgs/by-name/th/the-powder-toy/package.nix2
-rw-r--r--pkgs/by-name/ti/tigerbeetle/package.nix2
-rw-r--r--pkgs/by-name/ti/tilda/package.nix2
-rw-r--r--pkgs/by-name/ti/tile38/package.nix (renamed from pkgs/servers/geospatial/tile38/default.nix)6
-rw-r--r--pkgs/by-name/ti/tiny-dfr/package.nix2
-rw-r--r--pkgs/by-name/ti/tinycompress/package.nix2
-rw-r--r--pkgs/by-name/ti/tinymist/Cargo.lock12
-rw-r--r--pkgs/by-name/ti/tinymist/package.nix10
-rw-r--r--pkgs/by-name/ti/tinywm/package.nix2
-rw-r--r--pkgs/by-name/ti/tinyxml-2/package.nix2
-rw-r--r--pkgs/by-name/ti/tippecanoe/package.nix4
-rw-r--r--pkgs/by-name/tk/tkdiff/package.nix2
-rw-r--r--pkgs/by-name/tm/tmsu/package.nix44
-rw-r--r--pkgs/by-name/to/toml-cli/package.nix2
-rw-r--r--pkgs/by-name/to/tootik/package.nix2
-rw-r--r--pkgs/by-name/tp/tparse/package.nix29
-rw-r--r--pkgs/by-name/tp/tpnote/package.nix5
-rw-r--r--pkgs/by-name/tr/tracexec/package.nix8
-rw-r--r--pkgs/by-name/tr/tracy/0001-remove-unifiedtypeidentifiers-framework (renamed from pkgs/development/tools/tracy/0001-remove-unifiedtypeidentifiers-framework)0
-rw-r--r--pkgs/by-name/tr/tracy/package.nix (renamed from pkgs/development/tools/tracy/default.nix)12
-rw-r--r--pkgs/by-name/tr/tradingview/package.nix6
-rw-r--r--pkgs/by-name/tr/trealla/package.nix77
-rw-r--r--pkgs/by-name/tr/treecat/package.nix30
-rw-r--r--pkgs/by-name/tr/treedome/package.nix2
-rw-r--r--pkgs/by-name/tr/treefmt2/package.nix4
-rw-r--r--pkgs/by-name/tr/troubadix/package.nix6
-rw-r--r--pkgs/by-name/tr/trunk-ng/package.nix13
-rw-r--r--pkgs/by-name/tu/tuifimanager/package.nix2
-rw-r--r--pkgs/by-name/tu/tup/package.nix2
-rw-r--r--pkgs/by-name/tu/turtle/package.nix78
-rw-r--r--pkgs/by-name/tu/tuxmux/package.nix12
-rw-r--r--pkgs/by-name/tw/twiggy/package.nix2
-rw-r--r--pkgs/by-name/tx/txr/package.nix2
-rw-r--r--pkgs/by-name/ty/typos-lsp/package.nix6
-rw-r--r--pkgs/by-name/ty/typst-preview/package.nix6
-rw-r--r--pkgs/by-name/ty/typst/package.nix2
-rw-r--r--pkgs/by-name/ty/typstfmt/package.nix2
-rw-r--r--pkgs/by-name/ty/typstyle/package.nix16
-rw-r--r--pkgs/by-name/uc/uchecker/package.nix2
-rw-r--r--pkgs/by-name/uc/uclibc-ng/package.nix3
-rw-r--r--pkgs/by-name/ud/udev-gothic-nf/package.nix2
-rw-r--r--pkgs/by-name/ud/udev-gothic/package.nix2
-rw-r--r--pkgs/by-name/ue/ueberzugpp/package.nix4
-rw-r--r--pkgs/by-name/ue/uefisettings/package.nix2
-rw-r--r--pkgs/by-name/ug/ugm/package.nix2
-rw-r--r--pkgs/by-name/ui/uiua/package.nix8
-rw-r--r--pkgs/by-name/ui/uiua386/package.nix2
-rw-r--r--pkgs/by-name/un/unbook/package.nix2
-rw-r--r--pkgs/by-name/un/unciv/package.nix14
-rw-r--r--pkgs/by-name/un/undbx/package.nix1
-rw-r--r--pkgs/by-name/un/undertime/package.nix47
-rw-r--r--pkgs/by-name/un/uni-sync/package.nix2
-rw-r--r--pkgs/by-name/un/unipicker/package.nix2
-rw-r--r--pkgs/by-name/un/unison-fsmonitor/package.nix6
-rw-r--r--pkgs/by-name/un/universal-android-debloater/package.nix2
-rw-r--r--pkgs/by-name/up/upbound/package.nix6
-rw-r--r--pkgs/by-name/up/updatecli/package.nix35
-rw-r--r--pkgs/by-name/up/upiano/package.nix2
-rw-r--r--pkgs/by-name/up/upsun/package.nix2
-rw-r--r--pkgs/by-name/us/usql/package.nix6
-rw-r--r--pkgs/by-name/ut/ut1999/package.nix2
-rwxr-xr-xpkgs/by-name/uu/uuu/package.nix4
-rw-r--r--pkgs/by-name/uv/uv/Cargo.lock731
-rw-r--r--pkgs/by-name/uv/uv/package.nix44
-rw-r--r--pkgs/by-name/ux/uxn/package.nix8
-rw-r--r--pkgs/by-name/va/vacuum-go/package.nix42
-rw-r--r--pkgs/by-name/va/valkey/package.nix2
-rw-r--r--pkgs/by-name/va/valuta/package.nix2
-rw-r--r--pkgs/by-name/va/varia/package.nix2
-rw-r--r--pkgs/by-name/vc/vcpkg-tool/package.nix4
-rw-r--r--pkgs/by-name/vc/vcpkg/package.nix4
-rw-r--r--pkgs/by-name/ve/vencord/package-lock.json491
-rw-r--r--pkgs/by-name/ve/vencord/package.nix8
-rw-r--r--pkgs/by-name/ve/ventoy/package.nix6
-rw-r--r--pkgs/by-name/ve/vesktop/package.nix228
-rw-r--r--pkgs/by-name/vi/vibrantlinux/package.nix2
-rw-r--r--pkgs/by-name/vi/vikunja/package.nix72
-rw-r--r--pkgs/by-name/vi/vim-startuptime/package.nix39
-rw-r--r--pkgs/by-name/vi/vimix-cursors/package.nix2
-rw-r--r--pkgs/by-name/vi/vinegar/package.nix66
-rw-r--r--pkgs/by-name/vi/violet/package.nix38
-rw-r--r--pkgs/by-name/vk/vkd3d/package.nix63
-rw-r--r--pkgs/by-name/vl/vlc-bittorrent/package.nix2
-rw-r--r--pkgs/by-name/vl/vlc/package.nix15
-rw-r--r--pkgs/by-name/vm/vms-empire/package.nix (renamed from pkgs/games/vms-empire/default.nix)43
-rw-r--r--pkgs/by-name/vo/voidmap/package.nix2
-rw-r--r--pkgs/by-name/vp/vp/package.nix48
-rw-r--r--pkgs/by-name/vp/vpl-gpu-rt/package.nix (renamed from pkgs/by-name/on/onevpl-intel-gpu/package.nix)16
-rw-r--r--pkgs/by-name/vs/vscode-js-debug/package.nix82
-rw-r--r--pkgs/by-name/vu/vunnel/package.nix4
-rw-r--r--pkgs/by-name/vz/vzic/package.nix60
-rw-r--r--pkgs/by-name/wa/waf/hook.nix4
-rw-r--r--pkgs/by-name/wa/waf/package.nix2
-rw-r--r--pkgs/by-name/wa/waf/setup-hook.sh4
-rw-r--r--pkgs/by-name/wa/wait4x/package.nix6
-rw-r--r--pkgs/by-name/wa/wakatime-cli/package.nix (renamed from pkgs/by-name/wa/wakatime/package.nix)6
-rw-r--r--pkgs/by-name/wa/walker/package.nix4
-rw-r--r--pkgs/by-name/wa/wapm/package.nix2
-rw-r--r--pkgs/by-name/wa/warp-terminal/versions.json8
-rw-r--r--pkgs/by-name/wa/waybar-mpris/package.nix2
-rw-r--r--pkgs/by-name/wa/waybar/package.nix3
-rw-r--r--pkgs/by-name/wa/waybox/package.nix2
-rw-r--r--pkgs/by-name/wa/wayfreeze/package.nix33
-rw-r--r--pkgs/by-name/wa/wayland-pipewire-idle-inhibit/package.nix2
-rw-r--r--pkgs/by-name/wa/waylock/build.zig.zon.nix20
-rw-r--r--pkgs/by-name/wa/waylock/package.nix (renamed from pkgs/applications/misc/waylock/default.nix)47
-rwxr-xr-xpkgs/by-name/wa/waylock/update.nu8
-rw-r--r--pkgs/by-name/wb/wb32-dfu-updater/package.nix2
-rw-r--r--pkgs/by-name/we/webcord-vencord/package.nix4
-rw-r--r--pkgs/by-name/we/websploit/package.nix2
-rw-r--r--pkgs/by-name/we/werf/package.nix105
-rw-r--r--pkgs/by-name/wh/when/package.nix2
-rw-r--r--pkgs/by-name/wh/where-is-my-sddm-theme/package.nix85
-rw-r--r--pkgs/by-name/wh/whistle/package.nix6
-rw-r--r--pkgs/by-name/wi/wildcard/package.nix64
-rw-r--r--pkgs/by-name/wi/win-disk-writer/package.nix36
-rw-r--r--pkgs/by-name/wi/windmill/package.nix5
-rw-r--r--pkgs/by-name/wi/windowmaker/dockapps/cputnik.nix2
-rw-r--r--pkgs/by-name/wi/windowmaker/dockapps/libdockapp.nix2
-rw-r--r--pkgs/by-name/wi/windowmaker/dockapps/wmCalClock.nix2
-rw-r--r--pkgs/by-name/wi/windowmaker/dockapps/wmsystemtray.nix2
-rw-r--r--pkgs/by-name/wi/wiper/package.nix34
-rw-r--r--pkgs/by-name/wi/wireguard-vanity-keygen/package.nix4
-rw-r--r--pkgs/by-name/wi/wiremock/package.nix6
-rw-r--r--pkgs/by-name/wi/wit-bindgen/package.nix8
-rw-r--r--pkgs/by-name/wi/wizer/package.nix2
-rw-r--r--pkgs/by-name/wl/wl-clipboard-rs/package.nix6
-rw-r--r--pkgs/by-name/wl/wl-gammarelay-rs/package.nix2
-rw-r--r--pkgs/by-name/wl/wldash/0001-Update-Cargo.lock.patch25
-rw-r--r--pkgs/by-name/wl/wldash/0002-Update-fontconfig.patch112
-rw-r--r--pkgs/by-name/wl/wldash/package.nix77
-rw-r--r--pkgs/by-name/wl/wlinhibit/package.nix42
-rw-r--r--pkgs/by-name/wl/wlogout/package.nix2
-rw-r--r--pkgs/by-name/wl/wlr-layout-ui/package.nix6
-rw-r--r--pkgs/by-name/wl/wlvncc/package.nix2
-rw-r--r--pkgs/by-name/wl/wlx-overlay-s/Cargo.lock1497
-rw-r--r--pkgs/by-name/wl/wlx-overlay-s/package.nix25
-rw-r--r--pkgs/by-name/wo/wonderdraft/package.nix6
-rw-r--r--pkgs/by-name/wo/woodpecker-pipeline-transform/package.nix31
-rw-r--r--pkgs/by-name/wo/woof-doom/package.nix51
-rw-r--r--pkgs/by-name/wo/wordlists/package.nix2
-rw-r--r--pkgs/by-name/wo/workout-tracker/package.nix6
-rw-r--r--pkgs/by-name/wo/workshop-runner/package.nix2
-rw-r--r--pkgs/by-name/wp/wp-cli/package.nix2
-rw-r--r--pkgs/by-name/wp/wpaperd/package.nix2
-rw-r--r--pkgs/by-name/ws/wslay/package.nix2
-rw-r--r--pkgs/by-name/ws/wslu/package.nix2
-rw-r--r--pkgs/by-name/ws/wstunnel/package.nix32
-rw-r--r--pkgs/by-name/wt/wtfis/package.nix4
-rw-r--r--pkgs/by-name/wt/wttrbar/package.nix8
-rw-r--r--pkgs/by-name/wx/wxc/package.nix43
-rw-r--r--pkgs/by-name/wy/wyoming-satellite/package.nix1
-rw-r--r--pkgs/by-name/x1/x16/package.nix2
-rw-r--r--pkgs/by-name/x5/x509-limbo/package.nix2
-rw-r--r--pkgs/by-name/xc/xcaddy/package.nix6
-rw-r--r--pkgs/by-name/xd/xdg-desktop-portal-shana/package.nix2
-rw-r--r--pkgs/by-name/xd/xdg-terminal-exec/package.nix4
-rw-r--r--pkgs/by-name/xd/xdg-user-dirs/package.nix2
-rw-r--r--pkgs/by-name/xe/xemu/package.nix4
-rw-r--r--pkgs/by-name/xe/xenon/package.nix31
-rw-r--r--pkgs/by-name/xe/xevd/package.nix27
-rw-r--r--pkgs/by-name/xf/xfs-undelete/package.nix2
-rw-r--r--pkgs/by-name/xi/xiu/package.nix2
-rw-r--r--pkgs/by-name/xm/xml-tooling-c/package.nix2
-rw-r--r--pkgs/by-name/xm/xmldiff/package.nix2
-rw-r--r--pkgs/by-name/xm/xmltoman/package.nix54
-rw-r--r--pkgs/by-name/xm/xmonad-log/package.nix (renamed from pkgs/tools/misc/xmonad-log/default.nix)15
-rw-r--r--pkgs/by-name/xo/xonsh/package.nix3
-rw-r--r--pkgs/by-name/xo/xonsh/unwrapped.nix2
-rw-r--r--pkgs/by-name/xo/xosview/package.nix2
-rw-r--r--pkgs/by-name/xp/xplr/package.nix8
-rw-r--r--pkgs/by-name/xs/xscreensaver/package.nix6
-rw-r--r--pkgs/by-name/xu/xunit-viewer/package.nix42
-rw-r--r--pkgs/by-name/xu/xunit-viewer/test/example.junit.xml8
-rw-r--r--pkgs/by-name/xu/xunit-viewer/test/example.nix16
-rw-r--r--pkgs/by-name/xw/xwayland-run/package.nix2
-rw-r--r--pkgs/by-name/ya/yabai/package.nix5
-rw-r--r--pkgs/by-name/ya/yamlscript/package.nix4
-rw-r--r--pkgs/by-name/ya/yanic/package.nix6
-rw-r--r--pkgs/by-name/ya/yara-x/package.nix6
-rw-r--r--pkgs/by-name/ya/yazi/package.nix4
-rw-r--r--pkgs/by-name/yc/ycmd/package.nix2
-rw-r--r--pkgs/by-name/ye/yeahwm/package.nix2
-rw-r--r--pkgs/by-name/ye/yesplaymusic/package.nix2
-rw-r--r--pkgs/by-name/yg/yggdrasil/package.nix6
-rw-r--r--pkgs/by-name/yo/yofi/package.nix2
-rw-r--r--pkgs/by-name/yo/yoink/package.nix28
-rw-r--r--pkgs/by-name/yo/youplot/package.nix2
-rw-r--r--pkgs/by-name/yo/youtrack/package.nix8
-rw-r--r--pkgs/by-name/yt/yt-dlg/package.nix7
-rw-r--r--pkgs/by-name/yt/ytdownloader/package.nix60
-rw-r--r--pkgs/by-name/yt/ytree/package.nix2
-rw-r--r--pkgs/by-name/yu/yutto/package.nix2
-rw-r--r--pkgs/by-name/za/zabbix-agent2-plugin-postgresql/package.nix4
-rw-r--r--pkgs/by-name/zc/zcfan/package.nix2
-rw-r--r--pkgs/by-name/ze/zed-editor/Cargo.lock563
-rw-r--r--pkgs/by-name/ze/zed-editor/package.nix21
-rw-r--r--pkgs/by-name/ze/zesarux/package.nix1
-rw-r--r--pkgs/by-name/zf/zfind/package.nix37
-rw-r--r--pkgs/by-name/zi/zig-shell-completions/package.nix (renamed from pkgs/development/compilers/zig/shell-completions.nix)11
-rw-r--r--pkgs/by-name/zm/zmkBATx/package.nix51
-rw-r--r--pkgs/by-name/zo/zola/package.nix2
-rw-r--r--pkgs/by-name/zo/zoraxy/package.nix42
-rw-r--r--pkgs/by-name/zo/zotero-beta/package.nix (renamed from pkgs/applications/office/zotero/zotero_7.nix)131
-rw-r--r--pkgs/by-name/zp/zpaqfranz/package.nix4
-rw-r--r--pkgs/by-name/zp/zpix-pixel-font/package.nix2
-rw-r--r--pkgs/by-name/zs/zs/package.nix2
-rw-r--r--pkgs/by-name/zs/zsh-wd/package.nix37
-rw-r--r--pkgs/by-name/zx/zxtune/package.nix20
-rwxr-xr-xpkgs/common-updater/scripts/update-source-version32
-rw-r--r--pkgs/common-updater/unstable-updater.nix2
-rw-r--r--pkgs/data/documentation/man-pages/default.nix4
-rw-r--r--pkgs/data/documentation/nginx-doc/default.nix2
-rw-r--r--pkgs/data/documentation/zeal/default.nix2
-rw-r--r--pkgs/data/fonts/0xproto/default.nix4
-rw-r--r--pkgs/data/fonts/aileron/default.nix2
-rw-r--r--pkgs/data/fonts/alegreya/default.nix2
-rw-r--r--pkgs/data/fonts/alkalami/default.nix2
-rw-r--r--pkgs/data/fonts/amiri/default.nix2
-rw-r--r--pkgs/data/fonts/andika/default.nix2
-rw-r--r--pkgs/data/fonts/barlow/default.nix2
-rw-r--r--pkgs/data/fonts/behdad-fonts/default.nix2
-rw-r--r--pkgs/data/fonts/blackout/default.nix2
-rw-r--r--pkgs/data/fonts/bqn386/default.nix2
-rw-r--r--pkgs/data/fonts/cabin/default.nix2
-rw-r--r--pkgs/data/fonts/caladea/default.nix2
-rw-r--r--pkgs/data/fonts/camingo-code/default.nix2
-rw-r--r--pkgs/data/fonts/carlito/default.nix2
-rw-r--r--pkgs/data/fonts/catamaran/default.nix43
-rw-r--r--pkgs/data/fonts/charis-sil/default.nix2
-rw-r--r--pkgs/data/fonts/chonburi/default.nix2
-rw-r--r--pkgs/data/fonts/chunk/default.nix2
-rw-r--r--pkgs/data/fonts/clearlyU/default.nix2
-rw-r--r--pkgs/data/fonts/comfortaa/default.nix2
-rw-r--r--pkgs/data/fonts/comic-mono/default.nix2
-rw-r--r--pkgs/data/fonts/comic-neue/default.nix2
-rw-r--r--pkgs/data/fonts/comic-relief/default.nix2
-rw-r--r--pkgs/data/fonts/commit-mono/default.nix2
-rw-r--r--pkgs/data/fonts/cooper-hewitt/default.nix2
-rw-r--r--pkgs/data/fonts/cozette/default.nix2
-rw-r--r--pkgs/data/fonts/creep/default.nix2
-rw-r--r--pkgs/data/fonts/crimson-pro/default.nix2
-rw-r--r--pkgs/data/fonts/crimson/default.nix2
-rw-r--r--pkgs/data/fonts/curie/default.nix2
-rw-r--r--pkgs/data/fonts/dejavu-fonts/default.nix2
-rw-r--r--pkgs/data/fonts/dina/default.nix2
-rw-r--r--pkgs/data/fonts/dm-sans/default.nix2
-rw-r--r--pkgs/data/fonts/dosis/default.nix2
-rw-r--r--pkgs/data/fonts/doulos-sil/default.nix2
-rw-r--r--pkgs/data/fonts/edwin/default.nix2
-rw-r--r--pkgs/data/fonts/efont-unicode/default.nix2
-rw-r--r--pkgs/data/fonts/encode-sans/default.nix2
-rw-r--r--pkgs/data/fonts/et-book/default.nix2
-rw-r--r--pkgs/data/fonts/eunomia/default.nix2
-rw-r--r--pkgs/data/fonts/f1_8/default.nix2
-rw-r--r--pkgs/data/fonts/f5_6/default.nix2
-rw-r--r--pkgs/data/fonts/fa_1/default.nix2
-rw-r--r--pkgs/data/fonts/fantasque-sans-mono/default.nix2
-rw-r--r--pkgs/data/fonts/fanwood/default.nix2
-rw-r--r--pkgs/data/fonts/ferrum/default.nix2
-rw-r--r--pkgs/data/fonts/fg-virgil/default.nix2
-rw-r--r--pkgs/data/fonts/fraunces/default.nix2
-rw-r--r--pkgs/data/fonts/gandom-fonts/default.nix2
-rw-r--r--pkgs/data/fonts/gelasio/default.nix2
-rw-r--r--pkgs/data/fonts/gentium-book-basic/default.nix2
-rw-r--r--pkgs/data/fonts/gentium/default.nix2
-rw-r--r--pkgs/data/fonts/go-font/default.nix2
-rw-r--r--pkgs/data/fonts/goudy-bookletter-1911/default.nix2
-rw-r--r--pkgs/data/fonts/gubbi/default.nix2
-rw-r--r--pkgs/data/fonts/hack/default.nix2
-rw-r--r--pkgs/data/fonts/hackgen/default.nix2
-rw-r--r--pkgs/data/fonts/hackgen/nerdfont.nix2
-rw-r--r--pkgs/data/fonts/hasklig/default.nix2
-rw-r--r--pkgs/data/fonts/hubot-sans/default.nix2
-rw-r--r--pkgs/data/fonts/hyperscrypt/default.nix2
-rw-r--r--pkgs/data/fonts/i-dot-ming/default.nix2
-rw-r--r--pkgs/data/fonts/inconsolata/default.nix2
-rw-r--r--pkgs/data/fonts/inter/default.nix2
-rw-r--r--pkgs/data/fonts/iosevka/bin.nix2
-rw-r--r--pkgs/data/fonts/iosevka/default.nix9
-rw-r--r--pkgs/data/fonts/iosevka/variants.nix180
-rw-r--r--pkgs/data/fonts/iwona/default.nix2
-rw-r--r--pkgs/data/fonts/jetbrains-mono/default.nix2
-rw-r--r--pkgs/data/fonts/jost/default.nix2
-rw-r--r--pkgs/data/fonts/joypixels/default.nix36
-rw-r--r--pkgs/data/fonts/julia-mono/default.nix2
-rw-r--r--pkgs/data/fonts/junicode/default.nix6
-rw-r--r--pkgs/data/fonts/kanit/default.nix2
-rw-r--r--pkgs/data/fonts/kawkab-mono/default.nix2
-rw-r--r--pkgs/data/fonts/kode-mono/default.nix2
-rw-r--r--pkgs/data/fonts/lalezar-fonts/default.nix2
-rw-r--r--pkgs/data/fonts/league-gothic/default.nix2
-rw-r--r--pkgs/data/fonts/league-script-number-one/default.nix2
-rw-r--r--pkgs/data/fonts/league-spartan/default.nix2
-rw-r--r--pkgs/data/fonts/lexend/default.nix2
-rw-r--r--pkgs/data/fonts/libertinus/default.nix2
-rw-r--r--pkgs/data/fonts/libre-baskerville/default.nix2
-rw-r--r--pkgs/data/fonts/libre-franklin/default.nix2
-rw-r--r--pkgs/data/fonts/linden-hill/default.nix2
-rw-r--r--pkgs/data/fonts/linja-pi-pu-lukin/default.nix2
-rw-r--r--pkgs/data/fonts/linja-sike/default.nix2
-rw-r--r--pkgs/data/fonts/lmmath/default.nix2
-rw-r--r--pkgs/data/fonts/lxgw-wenkai/default.nix2
-rw-r--r--pkgs/data/fonts/melete/default.nix2
-rw-r--r--pkgs/data/fonts/merriweather/default.nix2
-rw-r--r--pkgs/data/fonts/meslo-lg/default.nix2
-rw-r--r--pkgs/data/fonts/migmix/default.nix2
-rw-r--r--pkgs/data/fonts/migu/default.nix2
-rw-r--r--pkgs/data/fonts/mona-sans/default.nix2
-rw-r--r--pkgs/data/fonts/monocraft/default.nix16
-rw-r--r--pkgs/data/fonts/mononoki/default.nix2
-rw-r--r--pkgs/data/fonts/montserrat/default.nix2
-rw-r--r--pkgs/data/fonts/nacelle/default.nix2
-rw-r--r--pkgs/data/fonts/nahid-fonts/default.nix2
-rw-r--r--pkgs/data/fonts/nanum-gothic-coding/default.nix2
-rw-r--r--pkgs/data/fonts/navilu/default.nix2
-rw-r--r--pkgs/data/fonts/norwester/default.nix2
-rw-r--r--pkgs/data/fonts/office-code-pro/default.nix2
-rw-r--r--pkgs/data/fonts/oldstandard/default.nix2
-rw-r--r--pkgs/data/fonts/open-fonts/default.nix2
-rw-r--r--pkgs/data/fonts/ostrich-sans/default.nix2
-rw-r--r--pkgs/data/fonts/parastoo-fonts/default.nix2
-rw-r--r--pkgs/data/fonts/paratype-pt/mono.nix2
-rw-r--r--pkgs/data/fonts/paratype-pt/sans.nix2
-rw-r--r--pkgs/data/fonts/paratype-pt/serif.nix2
-rw-r--r--pkgs/data/fonts/pretendard/default.nix2
-rw-r--r--pkgs/data/fonts/prociono/default.nix2
-rw-r--r--pkgs/data/fonts/profont/default.nix2
-rw-r--r--pkgs/data/fonts/proggyfonts/default.nix2
-rw-r--r--pkgs/data/fonts/public-sans/default.nix2
-rw-r--r--pkgs/data/fonts/quattrocento-sans/default.nix2
-rw-r--r--pkgs/data/fonts/quattrocento/default.nix2
-rw-r--r--pkgs/data/fonts/quivira/default.nix2
-rw-r--r--pkgs/data/fonts/recursive/default.nix2
-rw-r--r--pkgs/data/fonts/ricty/default.nix2
-rw-r--r--pkgs/data/fonts/rictydiminished-with-firacode/default.nix2
-rw-r--r--pkgs/data/fonts/roboto-serif/default.nix2
-rw-r--r--pkgs/data/fonts/roboto/default.nix2
-rw-r--r--pkgs/data/fonts/rounded-mgenplus/default.nix2
-rw-r--r--pkgs/data/fonts/route159/default.nix2
-rw-r--r--pkgs/data/fonts/rubik/default.nix2
-rw-r--r--pkgs/data/fonts/sahel-fonts/default.nix2
-rw-r--r--pkgs/data/fonts/samim-fonts/default.nix2
-rw-r--r--pkgs/data/fonts/sarabun/default.nix2
-rw-r--r--pkgs/data/fonts/scheherazade/default.nix2
-rw-r--r--pkgs/data/fonts/shabnam-fonts/default.nix2
-rw-r--r--pkgs/data/fonts/shrikhand/default.nix2
-rw-r--r--pkgs/data/fonts/siji/default.nix2
-rw-r--r--pkgs/data/fonts/sil-padauk/default.nix2
-rw-r--r--pkgs/data/fonts/sitelen-seli-kiwen/default.nix2
-rw-r--r--pkgs/data/fonts/smc-chilanka/default.nix39
-rw-r--r--pkgs/data/fonts/smiley-sans/default.nix2
-rw-r--r--pkgs/data/fonts/sniglet/default.nix2
-rw-r--r--pkgs/data/fonts/sorts-mill-goudy/default.nix2
-rw-r--r--pkgs/data/fonts/source-han-code-jp/default.nix2
-rw-r--r--pkgs/data/fonts/source-han/default.nix4
-rw-r--r--pkgs/data/fonts/tamsyn/default.nix2
-rw-r--r--pkgs/data/fonts/terminus-font-ttf/default.nix2
-rw-r--r--pkgs/data/fonts/terminus-font/default.nix2
-rw-r--r--pkgs/data/fonts/tewi/default.nix2
-rw-r--r--pkgs/data/fonts/theano/default.nix2
-rw-r--r--pkgs/data/fonts/times-newer-roman/default.nix2
-rw-r--r--pkgs/data/fonts/tlwg/default.nix2
-rw-r--r--pkgs/data/fonts/tt2020/default.nix2
-rw-r--r--pkgs/data/fonts/u001/default.nix2
-rw-r--r--pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix2
-rw-r--r--pkgs/data/fonts/undefined-medium/default.nix2
-rw-r--r--pkgs/data/fonts/vazir-code-font/default.nix2
-rw-r--r--pkgs/data/fonts/vazir-fonts/default.nix2
-rw-r--r--pkgs/data/fonts/vegur/default.nix2
-rw-r--r--pkgs/data/fonts/vollkorn/default.nix2
-rw-r--r--pkgs/data/fonts/work-sans/default.nix2
-rw-r--r--pkgs/data/fonts/wqy-microhei/default.nix2
-rw-r--r--pkgs/data/fonts/wqy-zenhei/default.nix2
-rw-r--r--pkgs/data/fonts/xkcd-font/default.nix2
-rw-r--r--pkgs/data/fonts/yanone-kaffeesatz/default.nix2
-rw-r--r--pkgs/data/icons/apple-cursor/default.nix2
-rw-r--r--pkgs/data/icons/arc-icon-theme/default.nix8
-rw-r--r--pkgs/data/icons/capitaine-cursors-themed/default.nix2
-rw-r--r--pkgs/data/icons/capitaine-cursors/default.nix2
-rw-r--r--pkgs/data/icons/comixcursors/default.nix2
-rw-r--r--pkgs/data/icons/faba-icon-theme/default.nix2
-rw-r--r--pkgs/data/icons/faba-mono-icons/default.nix2
-rw-r--r--pkgs/data/icons/flat-remix-icon-theme/default.nix7
-rw-r--r--pkgs/data/icons/google-cursor/default.nix2
-rw-r--r--pkgs/data/icons/hackneyed/default.nix2
-rw-r--r--pkgs/data/icons/kora-icon-theme/default.nix2
-rw-r--r--pkgs/data/icons/phinger-cursors/default.nix2
-rw-r--r--pkgs/data/icons/quintom-cursor-theme/default.nix2
-rw-r--r--pkgs/data/icons/reversal-icon-theme/default.nix2
-rw-r--r--pkgs/data/icons/simp1e-cursors/default.nix2
-rw-r--r--pkgs/data/icons/tango-icon-theme/default.nix2
-rw-r--r--pkgs/data/icons/tau-hydrogen/default.nix2
-rw-r--r--pkgs/data/icons/tela-icon-theme/default.nix2
-rw-r--r--pkgs/data/icons/vanilla-dmz/default.nix2
-rw-r--r--pkgs/data/icons/vimix-cursor-theme/default.nix2
-rw-r--r--pkgs/data/icons/vimix-icon-theme/default.nix2
-rw-r--r--pkgs/data/icons/whitesur-cursors/default.nix2
-rw-r--r--pkgs/data/icons/whitesur-icon-theme/default.nix4
-rw-r--r--pkgs/data/machine-learning/mnist/default.nix2
-rw-r--r--pkgs/data/misc/cacert/default.nix2
-rw-r--r--pkgs/data/misc/clash-geoip/default.nix6
-rw-r--r--pkgs/data/misc/colemak-dh/default.nix2
-rw-r--r--pkgs/data/misc/dbip-country-lite/default.nix6
-rw-r--r--pkgs/data/misc/fedora-backgrounds/generic.nix2
-rw-r--r--pkgs/data/misc/graphs/default.nix2
-rw-r--r--pkgs/data/misc/hackage/pin.json8
-rw-r--r--pkgs/data/misc/media-player-info/default.nix2
-rw-r--r--pkgs/data/misc/mobile-broadband-provider-info/default.nix25
-rw-r--r--pkgs/data/misc/nixos-artwork/wallpapers.nix214
-rw-r--r--pkgs/data/misc/osinfo-db/default.nix4
-rw-r--r--pkgs/data/misc/papirus-folders/default.nix2
-rw-r--r--pkgs/data/misc/shared-mime-info/default.nix2
-rw-r--r--pkgs/data/misc/spdx-license-list-data/default.nix4
-rw-r--r--pkgs/data/misc/v2ray-domain-list-community/default.nix4
-rw-r--r--pkgs/data/misc/v2ray-geoip/default.nix1
-rw-r--r--pkgs/data/soundfonts/generaluser/default.nix2
-rw-r--r--pkgs/data/themes/adapta-kde/default.nix2
-rw-r--r--pkgs/data/themes/adapta/default.nix2
-rw-r--r--pkgs/data/themes/adw-gtk3/default.nix2
-rw-r--r--pkgs/data/themes/adwaita-qt/default.nix2
-rw-r--r--pkgs/data/themes/albatross/default.nix2
-rw-r--r--pkgs/data/themes/andromeda-gtk-theme/default.nix12
-rw-r--r--pkgs/data/themes/ant-theme/ant.nix2
-rw-r--r--pkgs/data/themes/arc-kde/default.nix2
-rw-r--r--pkgs/data/themes/catppuccin-gtk/colloid-src-git-reset.patch17
-rw-r--r--pkgs/data/themes/catppuccin-plymouth/default.nix43
-rw-r--r--pkgs/data/themes/chili-sddm/default.nix2
-rw-r--r--pkgs/data/themes/colloid-gtk-theme/default.nix8
-rw-r--r--pkgs/data/themes/colloid-kde/default.nix2
-rw-r--r--pkgs/data/themes/dracula-theme/default.nix6
-rw-r--r--pkgs/data/themes/e17gtk/default.nix2
-rw-r--r--pkgs/data/themes/equilux-theme/default.nix2
-rw-r--r--pkgs/data/themes/flat-remix-gnome/default.nix10
-rw-r--r--pkgs/data/themes/fluent-gtk-theme/default.nix77
-rw-r--r--pkgs/data/themes/graphite-kde-theme/default.nix2
-rw-r--r--pkgs/data/themes/kde-gruvbox/default.nix2
-rw-r--r--pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix4
-rw-r--r--pkgs/data/themes/layan-gtk-theme/default.nix2
-rw-r--r--pkgs/data/themes/layan-kde/default.nix2
-rw-r--r--pkgs/data/themes/lightly-boehs/default.nix2
-rw-r--r--pkgs/data/themes/lightly-qt/default.nix2
-rw-r--r--pkgs/data/themes/matcha/default.nix2
-rw-r--r--pkgs/data/themes/materia-kde/default.nix2
-rw-r--r--pkgs/data/themes/nordic/default.nix34
-rw-r--r--pkgs/data/themes/orchis-theme/default.nix6
-rw-r--r--pkgs/data/themes/paper-gtk/default.nix2
-rw-r--r--pkgs/data/themes/pitch-black/default.nix2
-rw-r--r--pkgs/data/themes/plata/default.nix2
-rw-r--r--pkgs/data/themes/qogir-kde/default.nix2
-rw-r--r--pkgs/data/themes/qogir/default.nix4
-rw-r--r--pkgs/data/themes/sierra/default.nix2
-rw-r--r--pkgs/data/themes/sweet-nova/default.nix2
-rw-r--r--pkgs/data/themes/tokyonight-gtk-theme/generic.nix2
-rw-r--r--pkgs/data/themes/ubuntu-themes/default.nix1
-rw-r--r--pkgs/data/themes/utterly-nord-plasma/default.nix22
-rw-r--r--pkgs/data/themes/utterly-round-plasma-style/default.nix6
-rw-r--r--pkgs/data/themes/whitesur-kde/default.nix2
-rw-r--r--pkgs/data/themes/yaru/default.nix4
-rw-r--r--pkgs/desktops/budgie/budgie-backgrounds/default.nix2
-rw-r--r--pkgs/desktops/budgie/budgie-control-center/default.nix2
-rw-r--r--pkgs/desktops/budgie/budgie-desktop-view/default.nix2
-rw-r--r--pkgs/desktops/budgie/budgie-desktop/default.nix2
-rw-r--r--pkgs/desktops/budgie/budgie-screensaver/default.nix2
-rw-r--r--pkgs/desktops/cinnamon/bulky/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-common/default.nix2
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-control-center/default.nix2
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-menus/default.nix2
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix2
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-session/default.nix2
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix2
-rw-r--r--pkgs/desktops/cinnamon/mint-x-icons/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/mint-y-icons/default.nix6
-rw-r--r--pkgs/desktops/cinnamon/muffin/default.nix2
-rw-r--r--pkgs/desktops/cinnamon/nemo/default.nix1
-rw-r--r--pkgs/desktops/cinnamon/pix/default.nix8
-rw-r--r--pkgs/desktops/cinnamon/warpinator/default.nix10
-rw-r--r--pkgs/desktops/cinnamon/xapp/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/xreader/default.nix6
-rw-r--r--pkgs/desktops/cinnamon/xviewer/default.nix6
-rw-r--r--pkgs/desktops/deepin/apps/deepin-album/default.nix2
-rw-r--r--pkgs/desktops/deepin/apps/deepin-calculator/default.nix2
-rw-r--r--pkgs/desktops/deepin/apps/deepin-compressor/default.nix2
-rw-r--r--pkgs/desktops/deepin/apps/deepin-editor/default.nix2
-rw-r--r--pkgs/desktops/deepin/apps/deepin-image-viewer/default.nix2
-rw-r--r--pkgs/desktops/deepin/apps/deepin-movie-reborn/default.nix3
-rw-r--r--pkgs/desktops/deepin/apps/deepin-reader/default.nix2
-rw-r--r--pkgs/desktops/deepin/apps/deepin-screensaver/default.nix2
-rw-r--r--pkgs/desktops/deepin/apps/deepin-system-monitor/default.nix2
-rw-r--r--pkgs/desktops/deepin/artwork/deepin-sound-theme/default.nix2
-rw-r--r--pkgs/desktops/deepin/core/dde-appearance/default.nix2
-rw-r--r--pkgs/desktops/deepin/core/dde-dock/default.nix1
-rw-r--r--pkgs/desktops/deepin/core/dde-launchpad/default.nix2
-rw-r--r--pkgs/desktops/deepin/go-package/dde-daemon/default.nix19
-rw-r--r--pkgs/desktops/deepin/go-package/deepin-pw-check/default.nix4
-rw-r--r--pkgs/desktops/deepin/library/disomaster/default.nix2
-rw-r--r--pkgs/desktops/deepin/library/docparser/default.nix2
-rw-r--r--pkgs/desktops/deepin/library/dtk6core/default.nix6
-rw-r--r--pkgs/desktops/deepin/library/dtk6declarative/default.nix2
-rw-r--r--pkgs/desktops/deepin/library/dtk6systemsettings/default.nix1
-rw-r--r--pkgs/desktops/deepin/library/dtkcommon/default.nix2
-rw-r--r--pkgs/desktops/deepin/library/dtkdeclarative/default.nix2
-rw-r--r--pkgs/desktops/deepin/library/dtkwidget/default.nix1
-rw-r--r--pkgs/desktops/deepin/library/util-dfm/default.nix2
-rw-r--r--pkgs/desktops/deepin/misc/deepin-turbo/default.nix2
-rw-r--r--pkgs/desktops/deepin/tools/dde-device-formatter/default.nix2
-rw-r--r--pkgs/desktops/enlightenment/econnman/default.nix2
-rw-r--r--pkgs/desktops/enlightenment/enlightenment/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/ORBit2/default.nix2
-rw-r--r--pkgs/desktops/gnome/apps/file-roller/default.nix5
-rw-r--r--pkgs/desktops/gnome/apps/gnome-connections/default.nix2
-rw-r--r--pkgs/desktops/gnome/apps/gnome-logs/default.nix2
-rw-r--r--pkgs/desktops/gnome/apps/gnome-maps/default.nix6
-rw-r--r--pkgs/desktops/gnome/apps/gnome-nettool/default.nix2
-rw-r--r--pkgs/desktops/gnome/apps/gnome-sound-recorder/default.nix2
-rw-r--r--pkgs/desktops/gnome/apps/gnome-text-editor/default.nix2
-rw-r--r--pkgs/desktops/gnome/core/caribou/default.nix2
-rw-r--r--pkgs/desktops/gnome/core/epiphany/default.nix12
-rw-r--r--pkgs/desktops/gnome/core/evince/default.nix12
-rw-r--r--pkgs/desktops/gnome/core/evolution-data-server/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch16
-rw-r--r--pkgs/desktops/gnome/core/gdm/default.nix6
-rw-r--r--pkgs/desktops/gnome/core/gnome-color-manager/default.nix5
-rw-r--r--pkgs/desktops/gnome/core/gnome-control-center/default.nix6
-rw-r--r--pkgs/desktops/gnome/core/gnome-disk-utility/default.nix2
-rw-r--r--pkgs/desktops/gnome/core/gnome-initial-setup/default.nix14
-rw-r--r--pkgs/desktops/gnome/core/gnome-keyring/default.nix7
-rw-r--r--pkgs/desktops/gnome/core/gnome-online-miners/default.nix2
-rw-r--r--pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix36
-rw-r--r--pkgs/desktops/gnome/core/gnome-shell-extensions/fix_gtop.patch25
-rw-r--r--pkgs/desktops/gnome/core/gnome-shell/default.nix11
-rw-r--r--pkgs/desktops/gnome/core/gnome-software/default.nix12
-rw-r--r--pkgs/desktops/gnome/core/gnome-terminal/default.nix12
-rw-r--r--pkgs/desktops/gnome/core/gucharmap/default.nix12
-rw-r--r--pkgs/desktops/gnome/core/mutter/43/default.nix2
-rw-r--r--pkgs/desktops/gnome/core/mutter/default.nix12
-rw-r--r--pkgs/desktops/gnome/core/nautilus/default.nix6
-rw-r--r--pkgs/desktops/gnome/core/rygel/default.nix16
-rw-r--r--pkgs/desktops/gnome/core/sushi/default.nix2
-rw-r--r--pkgs/desktops/gnome/core/yelp/default.nix2
-rw-r--r--pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix5
-rw-r--r--pkgs/desktops/gnome/extensions/EasyScreenCast/fix-gi-path.patch63
-rw-r--r--pkgs/desktops/gnome/extensions/buildGnomeExtension.nix2
-rw-r--r--pkgs/desktops/gnome/extensions/collisions.json417
-rw-r--r--pkgs/desktops/gnome/extensions/extensionOverrides.nix31
-rw-r--r--pkgs/desktops/gnome/extensions/extensionOverridesPatches/mullvadindicator_at_pobega.github.com.patch25
-rw-r--r--pkgs/desktops/gnome/extensions/extensionOverridesPatches/system-monitor_at_gnome-shell-extensions.gcampax.github.com.patch25
-rw-r--r--pkgs/desktops/gnome/extensions/extensionRenames.nix106
-rw-r--r--pkgs/desktops/gnome/extensions/extensions.json839
-rw-r--r--pkgs/desktops/gnome/extensions/gsconnect/default.nix1
-rw-r--r--pkgs/desktops/gnome/extensions/sound-output-device-chooser/default.nix1
-rwxr-xr-xpkgs/desktops/gnome/extensions/update-extensions.py24
-rw-r--r--pkgs/desktops/gnome/games/aisleriot/default.nix12
-rw-r--r--pkgs/desktops/gnome/misc/geary/default.nix4
-rw-r--r--pkgs/desktops/gnome/misc/gnome-tweaks/default.nix2
-rw-r--r--pkgs/desktops/gnustep/back/default.nix2
-rw-r--r--pkgs/desktops/gnustep/base/default.nix2
-rw-r--r--pkgs/desktops/gnustep/gui/default.nix2
-rw-r--r--pkgs/desktops/gnustep/gworkspace/default.nix2
-rw-r--r--pkgs/desktops/gnustep/make/default.nix6
-rw-r--r--pkgs/desktops/gnustep/systempreferences/default.nix2
-rw-r--r--pkgs/desktops/lomiri/applications/lomiri-filemanager-app/default.nix142
-rw-r--r--pkgs/desktops/lomiri/applications/lomiri-terminal-app/default.nix2
-rw-r--r--pkgs/desktops/lomiri/applications/lomiri/9902-lomiri-Check-NIXOS_XKB_LAYOUTS.patch29
-rw-r--r--pkgs/desktops/lomiri/applications/lomiri/default.nix7
-rw-r--r--pkgs/desktops/lomiri/data/lomiri-session/1001-Unset-QT_QPA_PLATFORMTHEME.patch33
-rw-r--r--pkgs/desktops/lomiri/data/lomiri-session/default.nix2
-rw-r--r--pkgs/desktops/lomiri/default.nix1
-rw-r--r--pkgs/desktops/lomiri/development/cmake-extras/default.nix2
-rw-r--r--pkgs/desktops/lomiri/development/lomiri-app-launch/2001-Inject-current-system-PATH.patch59
-rw-r--r--pkgs/desktops/lomiri/development/lomiri-app-launch/default.nix19
-rw-r--r--pkgs/desktops/lomiri/development/qtmir/default.nix87
-rw-r--r--pkgs/desktops/lomiri/services/biometryd/default.nix1
-rw-r--r--pkgs/desktops/lomiri/services/content-hub/default.nix32
-rw-r--r--pkgs/desktops/lomiri/services/lomiri-indicator-network/default.nix3
-rw-r--r--pkgs/desktops/lomiri/services/telephony-service/default.nix4
-rw-r--r--pkgs/desktops/lumina/lumina/default.nix2
-rw-r--r--pkgs/desktops/lxqt/default.nix5
-rw-r--r--pkgs/desktops/lxqt/libdbusmenu-lxqt/default.nix2
-rw-r--r--pkgs/desktops/lxqt/lximage-qt/default.nix2
-rw-r--r--pkgs/desktops/lxqt/lxqt-notificationd/default.nix2
-rw-r--r--pkgs/desktops/lxqt/lxqt-panel/default.nix2
-rw-r--r--pkgs/desktops/lxqt/lxqt-policykit/default.nix2
-rw-r--r--pkgs/desktops/lxqt/lxqt-session/default.nix2
-rw-r--r--pkgs/desktops/lxqt/obconf-qt/default.nix2
-rw-r--r--pkgs/desktops/lxqt/pavucontrol-qt/default.nix2
-rw-r--r--pkgs/desktops/lxqt/qterminal/default.nix4
-rw-r--r--pkgs/desktops/lxqt/qtermwidget/default.nix10
-rw-r--r--pkgs/desktops/mate/atril/default.nix2
-rw-r--r--pkgs/desktops/mate/eom/default.nix2
-rw-r--r--pkgs/desktops/mate/mate-panel/default.nix6
-rw-r--r--pkgs/desktops/mate/mate-power-manager/default.nix2
-rw-r--r--pkgs/desktops/mate/mate-themes/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/appcenter/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-calculator/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-mail/default.nix11
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-photos/default.nix37
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix4
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix11
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix2
-rw-r--r--pkgs/desktops/pantheon/default.nix6
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix14
-rw-r--r--pkgs/desktops/pantheon/desktop/gala/default.nix9
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel/default.nix2
-rw-r--r--pkgs/desktops/pantheon/granite/7/default.nix2
-rw-r--r--pkgs/desktops/pantheon/granite/default.nix2
-rw-r--r--pkgs/desktops/pantheon/services/contractor/default.nix2
-rw-r--r--pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix39
-rw-r--r--pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix18
-rw-r--r--pkgs/desktops/pantheon/third-party/pantheon-tweaks/fix-paths.patch13
-rw-r--r--pkgs/desktops/plasma-5/3rdparty/addons/bismuth/default.nix2
-rw-r--r--pkgs/desktops/plasma-5/3rdparty/addons/krunner-ssh.nix2
-rw-r--r--pkgs/desktops/plasma-5/3rdparty/addons/krunner-symbols.nix2
-rw-r--r--pkgs/desktops/plasma-5/3rdparty/kwin/scripts/krohnkite.nix2
-rw-r--r--pkgs/desktops/plasma-5/3rdparty/kwin/scripts/parachute.nix2
-rw-r--r--pkgs/desktops/plasma-5/3rdparty/lightly/default.nix2
-rw-r--r--pkgs/desktops/plasma-5/default.nix1
-rw-r--r--pkgs/desktops/plasma-5/plasma-firewall.nix21
-rw-r--r--pkgs/desktops/plasma-5/plasma-integration/default.nix2
-rw-r--r--pkgs/desktops/plasma-5/srcs.nix8
-rw-r--r--pkgs/desktops/xfce/applications/gigolo/default.nix2
-rw-r--r--pkgs/desktops/xfce/applications/ristretto/default.nix2
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-dict/default.nix2
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix23
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-terminal/default.nix2
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-volumed-pulse/default.nix2
-rw-r--r--pkgs/desktops/xfce/applications/xfmpc/default.nix39
-rw-r--r--pkgs/desktops/xfce/core/tumbler/default.nix2
-rw-r--r--pkgs/desktops/xfce/core/xfce4-power-manager/default.nix12
-rw-r--r--pkgs/desktops/xfce/core/xfce4-session/default.nix17
-rw-r--r--pkgs/desktops/xfce/core/xfce4-settings/default.nix10
-rw-r--r--pkgs/desktops/xfce/default.nix7
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-docklike-plugin/default.nix2
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix39
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-verve-plugin/default.nix2
-rw-r--r--pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix2
-rw-r--r--pkgs/development/ada-modules/gnatprove/default.nix2
-rw-r--r--pkgs/development/ada-modules/gprbuild/default.nix2
-rw-r--r--pkgs/development/beam-modules/default.nix5
-rw-r--r--pkgs/development/beam-modules/elixir-ls/default.nix5
-rw-r--r--pkgs/development/beam-modules/elvis-erlang/default.nix4
-rw-r--r--pkgs/development/beam-modules/elvis-erlang/rebar-deps.nix32
-rw-r--r--pkgs/development/beam-modules/erlang-ls/default.nix2
-rw-r--r--pkgs/development/beam-modules/erlfmt/default.nix2
-rw-r--r--pkgs/development/beam-modules/hex/default.nix4
-rw-r--r--pkgs/development/beam-modules/pc/default.nix2
-rw-r--r--pkgs/development/compilers/abcl/default.nix2
-rw-r--r--pkgs/development/compilers/acme/default.nix2
-rw-r--r--pkgs/development/compilers/adoptopenjdk-bin/jdk15-darwin.nix8
-rw-r--r--pkgs/development/compilers/adoptopenjdk-bin/jdk15-linux.nix8
-rw-r--r--pkgs/development/compilers/adoptopenjdk-bin/jdk16-darwin.nix8
-rw-r--r--pkgs/development/compilers/adoptopenjdk-bin/jdk16-linux.nix8
-rw-r--r--pkgs/development/compilers/alan/2.nix2
-rw-r--r--pkgs/development/compilers/alan/default.nix2
-rw-r--r--pkgs/development/compilers/ante/default.nix2
-rw-r--r--pkgs/development/compilers/armips/default.nix2
-rw-r--r--pkgs/development/compilers/as31/default.nix2
-rw-r--r--pkgs/development/compilers/aspectj/default.nix6
-rw-r--r--pkgs/development/compilers/atasm/default.nix2
-rw-r--r--pkgs/development/compilers/august/default.nix2
-rw-r--r--pkgs/development/compilers/ballerina/default.nix6
-rw-r--r--pkgs/development/compilers/bfc/default.nix2
-rw-r--r--pkgs/development/compilers/blueprint/default.nix2
-rw-r--r--pkgs/development/compilers/bs-platform/build-bs-platform.nix5
-rw-r--r--pkgs/development/compilers/bs-platform/default.nix2
-rw-r--r--pkgs/development/compilers/bupc/default.nix2
-rw-r--r--pkgs/development/compilers/c0/default.nix2
-rw-r--r--pkgs/development/compilers/c3c/default.nix16
-rw-r--r--pkgs/development/compilers/cakelisp/default.nix2
-rw-r--r--pkgs/development/compilers/carp/default.nix2
-rw-r--r--pkgs/development/compilers/ccl/default.nix2
-rw-r--r--pkgs/development/compilers/chez/default.nix2
-rw-r--r--pkgs/development/compilers/chicken/4/chicken.nix2
-rw-r--r--pkgs/development/compilers/chicken/5/chicken.nix2
-rw-r--r--pkgs/development/compilers/ciao/default.nix2
-rw-r--r--pkgs/development/compilers/circt/default.nix4
-rw-r--r--pkgs/development/compilers/clasp/clasp-pin-repos-commits.patch90
-rw-r--r--pkgs/development/compilers/clasp/default.nix40
-rw-r--r--pkgs/development/compilers/clasp/dependencies.nix457
-rw-r--r--pkgs/development/compilers/closure/default.nix2
-rw-r--r--pkgs/development/compilers/cmdstan/default.nix4
-rw-r--r--pkgs/development/compilers/cmucl/binary.nix2
-rw-r--r--pkgs/development/compilers/codon/default.nix2
-rw-r--r--pkgs/development/compilers/coffeescript/default.nix2
-rw-r--r--pkgs/development/compilers/colm/default.nix2
-rw-r--r--pkgs/development/compilers/corretto/11.nix11
-rw-r--r--pkgs/development/compilers/corretto/17.nix22
-rw-r--r--pkgs/development/compilers/corretto/19.nix7
-rw-r--r--pkgs/development/compilers/corretto/21.nix4
-rw-r--r--pkgs/development/compilers/crystal/default.nix2
-rw-r--r--pkgs/development/compilers/dart/sources.nix12
-rw-r--r--pkgs/development/compilers/djgpp/default.nix2
-rw-r--r--pkgs/development/compilers/dotnet/8/release-info.json2
-rw-r--r--pkgs/development/compilers/dotnet/8/release.json12
-rw-r--r--pkgs/development/compilers/dotnet/9/deps.nix16
-rw-r--r--pkgs/development/compilers/dotnet/9/release-info.json6
-rw-r--r--pkgs/development/compilers/dotnet/9/release.json12
-rw-r--r--pkgs/development/compilers/dotnet/packages.nix2
-rw-r--r--pkgs/development/compilers/dotnet/patch-restored-packages.proj4
-rw-r--r--pkgs/development/compilers/dotnet/update.nix2
-rw-r--r--pkgs/development/compilers/dotnet/versions/6.0.nix288
-rw-r--r--pkgs/development/compilers/dotnet/versions/7.0.nix322
-rw-r--r--pkgs/development/compilers/dotnet/versions/8.0.nix306
-rw-r--r--pkgs/development/compilers/dotnet/versions/9.0.nix199
-rw-r--r--pkgs/development/compilers/dotnet/vmr.nix71
-rw-r--r--pkgs/development/compilers/edk2/default.nix11
-rw-r--r--pkgs/development/compilers/elm/packages/ghc9_2/elm-format/elm-format.nix2
-rw-r--r--pkgs/development/compilers/elm/packages/ghc9_6/ansi-wl-pprint/default.nix2
-rw-r--r--pkgs/development/compilers/elm/packages/ghc9_6/default.nix2
-rw-r--r--pkgs/development/compilers/elm/packages/ghc9_6/elm/default.nix2
-rw-r--r--pkgs/development/compilers/elm/packages/lamdera/default.nix2
-rw-r--r--pkgs/development/compilers/elm/packages/node/default.nix8
-rw-r--r--pkgs/development/compilers/elm/packages/node/elm-pages/default.nix2
-rw-r--r--pkgs/development/compilers/elm/packages/node/node-packages.nix10
-rw-r--r--pkgs/development/compilers/emscripten/default.nix2
-rw-r--r--pkgs/development/compilers/erg/default.nix8
-rw-r--r--pkgs/development/compilers/factor-lang/factor99.nix2
-rw-r--r--pkgs/development/compilers/fbc/default.nix2
-rw-r--r--pkgs/development/compilers/flix/default.nix6
-rw-r--r--pkgs/development/compilers/flutter/default.nix24
-rw-r--r--pkgs/development/compilers/flutter/engine/constants.nix41
-rw-r--r--pkgs/development/compilers/flutter/engine/default.nix74
-rw-r--r--pkgs/development/compilers/flutter/engine/package.nix311
-rw-r--r--pkgs/development/compilers/flutter/engine/pkg-config.py247
-rw-r--r--pkgs/development/compilers/flutter/engine/source.nix78
-rw-r--r--pkgs/development/compilers/flutter/engine/tools.nix62
-rw-r--r--pkgs/development/compilers/flutter/flutter-tools.nix18
-rw-r--r--pkgs/development/compilers/flutter/flutter.nix30
-rw-r--r--pkgs/development/compilers/flutter/update/get-dart-hashes.nix.in9
-rw-r--r--pkgs/development/compilers/flutter/update/get-engine-hashes.nix.in23
-rwxr-xr-xpkgs/development/compilers/flutter/update/update.py72
-rw-r--r--pkgs/development/compilers/flutter/versions/3_13/data.json4
-rw-r--r--pkgs/development/compilers/flutter/versions/3_16/data.json4
-rw-r--r--pkgs/development/compilers/flutter/versions/3_19/data.json6
-rw-r--r--pkgs/development/compilers/flutter/versions/3_19/engine/patches/flutter-140969.patch41
-rw-r--r--pkgs/development/compilers/flutter/versions/3_22/data.json73
-rw-r--r--pkgs/development/compilers/flutter/versions/3_23/data.json1027
-rw-r--r--pkgs/development/compilers/flutter/wrapper.nix5
-rw-r--r--pkgs/development/compilers/flux/default.nix2
-rw-r--r--pkgs/development/compilers/fsharp/default.nix2
-rw-r--r--pkgs/development/compilers/gbforth/default.nix2
-rw-r--r--pkgs/development/compilers/gcc/common/platform-flags.nix3
-rw-r--r--pkgs/development/compilers/gcc/patches/13/ICE-PR110280.patch60
-rw-r--r--pkgs/development/compilers/gcc/patches/default.nix5
-rw-r--r--pkgs/development/compilers/gcc/versions.nix4
-rw-r--r--pkgs/development/compilers/gforth/boot-forth.nix2
-rw-r--r--pkgs/development/compilers/gforth/default.nix2
-rw-r--r--pkgs/development/compilers/ghc/8.10.7-binary.nix2
-rw-r--r--pkgs/development/compilers/ghc/8.10.7.nix79
-rw-r--r--pkgs/development/compilers/ghc/9.2.4-binary.nix2
-rw-r--r--pkgs/development/compilers/ghc/9.4.8.nix (renamed from pkgs/development/compilers/ghc/9.4.8.fixme.nix)0
-rw-r--r--pkgs/development/compilers/ghc/9.6.3-binary.nix2
-rw-r--r--pkgs/development/compilers/ghc/Cabal-3.12-paths-fix-cycle-aarch64-darwin.patch596
-rw-r--r--pkgs/development/compilers/ghc/common-hadrian.nix100
-rw-r--r--pkgs/development/compilers/ghc/common-make-native-bignum.nix153
-rw-r--r--pkgs/development/compilers/ghdl/default.nix1
-rw-r--r--pkgs/development/compilers/gleam/default.nix10
-rw-r--r--pkgs/development/compilers/gmqcc/default.nix2
-rw-r--r--pkgs/development/compilers/gnostic/default.nix2
-rw-r--r--pkgs/development/compilers/gnu-cim/default.nix2
-rw-r--r--pkgs/development/compilers/gnu-cobol/default.nix2
-rw-r--r--pkgs/development/compilers/gnu-smalltalk/0000-fix_mkorder.patch21
-rw-r--r--pkgs/development/compilers/gnu-smalltalk/default.nix8
-rw-r--r--pkgs/development/compilers/go-jsonnet/default.nix2
-rw-r--r--pkgs/development/compilers/go/1.21.nix6
-rw-r--r--pkgs/development/compilers/go/1.22.nix10
-rw-r--r--pkgs/development/compilers/gwt/2.4.0.nix2
-rw-r--r--pkgs/development/compilers/hop/default.nix2
-rw-r--r--pkgs/development/compilers/hvm/default.nix11
-rw-r--r--pkgs/development/compilers/idris2/idris2.nix2
-rw-r--r--pkgs/development/compilers/inform7/default.nix2
-rw-r--r--pkgs/development/compilers/intercal/default.nix2
-rw-r--r--pkgs/development/compilers/ispc/default.nix8
-rw-r--r--pkgs/development/compilers/jasmin-compiler/default.nix6
-rw-r--r--pkgs/development/compilers/jasmin/default.nix2
-rw-r--r--pkgs/development/compilers/jetbrains-jdk/17.nix156
-rw-r--r--pkgs/development/compilers/jetbrains-jdk/default.nix26
-rw-r--r--pkgs/development/compilers/jetbrains-jdk/jcef.nix46
-rw-r--r--pkgs/development/compilers/julia/default.nix15
-rw-r--r--pkgs/development/compilers/julia/generic.nix6
-rw-r--r--pkgs/development/compilers/julia/patches/1.10/0001-skip-building-docs-as-it-requires-network-access.patch34
-rw-r--r--pkgs/development/compilers/kind2/default.nix2
-rw-r--r--pkgs/development/compilers/koka/default.nix12
-rw-r--r--pkgs/development/compilers/kotlin/default.nix4
-rw-r--r--pkgs/development/compilers/kotlin/native.nix2
-rw-r--r--pkgs/development/compilers/ldc/bootstrap.nix11
-rw-r--r--pkgs/development/compilers/ldc/default.nix4
-rw-r--r--pkgs/development/compilers/ligo/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/12/default.nix48
-rw-r--r--pkgs/development/compilers/llvm/12/lldb/gnu-install-dirs.patch19
-rw-r--r--pkgs/development/compilers/llvm/13/default.nix52
-rw-r--r--pkgs/development/compilers/llvm/13/lldb/gnu-install-dirs.patch19
-rw-r--r--pkgs/development/compilers/llvm/14/default.nix39
-rw-r--r--pkgs/development/compilers/llvm/15/default.nix39
-rw-r--r--pkgs/development/compilers/llvm/16/compiler-rt/asan-offset.patch11
-rw-r--r--pkgs/development/compilers/llvm/16/compiler-rt/freebsd-i386.patch21
-rw-r--r--pkgs/development/compilers/llvm/16/default.nix49
-rw-r--r--pkgs/development/compilers/llvm/17/default.nix48
-rw-r--r--pkgs/development/compilers/llvm/18/default.nix50
-rw-r--r--pkgs/development/compilers/llvm/common/clang/default.nix4
-rw-r--r--pkgs/development/compilers/llvm/common/compiler-rt/default.nix23
-rw-r--r--pkgs/development/compilers/llvm/common/libcxx/default.nix12
-rw-r--r--pkgs/development/compilers/llvm/common/lld/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/common/lldb.nix2
-rw-r--r--pkgs/development/compilers/llvm/common/lldb/gnu-install-dirs.patch19
-rw-r--r--pkgs/development/compilers/llvm/common/llvm/default.nix88
-rw-r--r--pkgs/development/compilers/llvm/git/clang/gnu-install-dirs.patch20
-rw-r--r--pkgs/development/compilers/llvm/git/default.nix54
-rw-r--r--pkgs/development/compilers/lobster/default.nix6
-rw-r--r--pkgs/development/compilers/manticore/default.nix2
-rw-r--r--pkgs/development/compilers/marst/default.nix2
-rw-r--r--pkgs/development/compilers/mercury/default.nix2
-rw-r--r--pkgs/development/compilers/mezzo/default.nix2
-rw-r--r--pkgs/development/compilers/microscheme/default.nix2
-rw-r--r--pkgs/development/compilers/minimacy/default.nix2
-rw-r--r--pkgs/development/compilers/mint/default.nix2
-rw-r--r--pkgs/development/compilers/mlkit/default.nix4
-rw-r--r--pkgs/development/compilers/mosml/default.nix2
-rw-r--r--pkgs/development/compilers/mozart/default.nix2
-rw-r--r--pkgs/development/compilers/mruby/default.nix2
-rw-r--r--pkgs/development/compilers/mrustc/bootstrap.nix2
-rw-r--r--pkgs/development/compilers/mrustc/minicargo.nix2
-rw-r--r--pkgs/development/compilers/nasm/default.nix2
-rw-r--r--pkgs/development/compilers/neko/default.nix2
-rw-r--r--pkgs/development/compilers/nim/build-nim-package.nix23
-rw-r--r--pkgs/development/compilers/nim/default.nix2
-rw-r--r--pkgs/development/compilers/nqc/default.nix2
-rw-r--r--pkgs/development/compilers/obliv-c/default.nix2
-rw-r--r--pkgs/development/compilers/ocaml/ber-metaocaml.nix1
-rw-r--r--pkgs/development/compilers/ocaml/builder.sh9
-rw-r--r--pkgs/development/compilers/odin/default.nix9
-rw-r--r--pkgs/development/compilers/open-watcom/bin.nix2
-rw-r--r--pkgs/development/compilers/open-watcom/v2.nix2
-rw-r--r--pkgs/development/compilers/opendylan/bin.nix2
-rw-r--r--pkgs/development/compilers/opendylan/default.nix2
-rw-r--r--pkgs/development/compilers/openjdk/11.nix6
-rw-r--r--pkgs/development/compilers/openjdk/16.nix11
-rw-r--r--pkgs/development/compilers/openjdk/17.nix6
-rw-r--r--pkgs/development/compilers/openjdk/18.nix9
-rw-r--r--pkgs/development/compilers/openjdk/19.nix12
-rw-r--r--pkgs/development/compilers/openjdk/20.nix6
-rw-r--r--pkgs/development/compilers/openjdk/22.nix422
-rw-r--r--pkgs/development/compilers/openjdk/8.nix6
-rw-r--r--pkgs/development/compilers/openjdk/JavaUpdater.java181
-rw-r--r--pkgs/development/compilers/openjdk/info.json12
-rw-r--r--pkgs/development/compilers/openjdk/meta.nix6
-rw-r--r--pkgs/development/compilers/openjdk/openjfx/11.nix6
-rw-r--r--pkgs/development/compilers/openjdk/openjfx/15.nix2
-rw-r--r--pkgs/development/compilers/openjdk/openjfx/17.nix8
-rw-r--r--pkgs/development/compilers/openjdk/openjfx/19.nix5
-rw-r--r--pkgs/development/compilers/openjdk/openjfx/20.nix23
-rw-r--r--pkgs/development/compilers/openjdk/openjfx/21.nix12
-rw-r--r--pkgs/development/compilers/openjdk/openjfx/22.nix11
-rw-r--r--pkgs/development/compilers/opensmalltalk-vm/default.nix2
-rw-r--r--pkgs/development/compilers/ophis/default.nix2
-rw-r--r--pkgs/development/compilers/orc/default.nix2
-rw-r--r--pkgs/development/compilers/osl/default.nix4
-rw-r--r--pkgs/development/compilers/owl-lisp/default.nix2
-rw-r--r--pkgs/development/compilers/paco/default.nix2
-rw-r--r--pkgs/development/compilers/pakcs/default.nix2
-rw-r--r--pkgs/development/compilers/passerine/default.nix2
-rw-r--r--pkgs/development/compilers/purescript/psc-package/default.nix2
-rw-r--r--pkgs/development/compilers/purescript/purescript/default.nix2
-rw-r--r--pkgs/development/compilers/qbe/default.nix2
-rw-r--r--pkgs/development/compilers/rasm/default.nix34
-rw-r--r--pkgs/development/compilers/reason/tests/hello/default.nix12
-rw-r--r--pkgs/development/compilers/rgbds/default.nix9
-rw-r--r--pkgs/development/compilers/rust/1_77.nix59
-rw-r--r--pkgs/development/compilers/rust/1_78.nix59
-rw-r--r--pkgs/development/compilers/rust/binary.nix4
-rw-r--r--pkgs/development/compilers/rust/cargo-auditable.nix7
-rw-r--r--pkgs/development/compilers/rust/clippy.nix2
-rw-r--r--pkgs/development/compilers/rust/rustc.nix16
-rw-r--r--pkgs/development/compilers/rust/rustfmt.nix2
-rw-r--r--pkgs/development/compilers/sagittarius-scheme/default.nix2
-rw-r--r--pkgs/development/compilers/sbcl/default.nix9
-rw-r--r--pkgs/development/compilers/scala-runners/default.nix2
-rw-r--r--pkgs/development/compilers/scala/2.x.nix2
-rw-r--r--pkgs/development/compilers/scala/bare.nix4
-rw-r--r--pkgs/development/compilers/scryer-prolog/default.nix2
-rwxr-xr-xpkgs/development/compilers/semeru-bin/generate-sources.py4
-rw-r--r--pkgs/development/compilers/semeru-bin/jdk-darwin.nix8
-rw-r--r--pkgs/development/compilers/semeru-bin/jdk-linux.nix8
-rw-r--r--pkgs/development/compilers/semeru-bin/sources.json240
-rw-r--r--pkgs/development/compilers/shaderc/default.nix2
-rw-r--r--pkgs/development/compilers/sjasmplus/default.nix2
-rw-r--r--pkgs/development/compilers/solc/default.nix1
-rw-r--r--pkgs/development/compilers/souffle/default.nix4
-rw-r--r--pkgs/development/compilers/spirv-llvm-translator/default.nix2
-rw-r--r--pkgs/development/compilers/stalin/default.nix2
-rw-r--r--pkgs/development/compilers/swi-prolog/default.nix2
-rw-r--r--pkgs/development/compilers/swift/compiler/default.nix2
-rw-r--r--pkgs/development/compilers/swift/swiftpm/default.nix2
-rw-r--r--pkgs/development/compilers/terra/default.nix2
-rw-r--r--pkgs/development/compilers/teyjus/default.nix2
-rw-r--r--pkgs/development/compilers/tinycc/default.nix5
-rw-r--r--pkgs/development/compilers/tvm/default.nix2
-rw-r--r--pkgs/development/compilers/typescript/default.nix2
-rw-r--r--pkgs/development/compilers/uasm/default.nix2
-rw-r--r--pkgs/development/compilers/unison/default.nix6
-rw-r--r--pkgs/development/compilers/vala/default.nix2
-rw-r--r--pkgs/development/compilers/x11basic/default.nix2
-rw-r--r--pkgs/development/compilers/yap/default.nix2
-rw-r--r--pkgs/development/compilers/yosys/default.nix2
-rw-r--r--pkgs/development/compilers/yosys/plugins/synlig.nix1
-rw-r--r--pkgs/development/compilers/zig/0.10.nix43
-rw-r--r--pkgs/development/compilers/zig/0.10/001-0.10-macho-fixes.patch (renamed from pkgs/development/compilers/zig/002-0.10-macho-fixes.patch)0
-rw-r--r--pkgs/development/compilers/zig/0.10/default.nix109
-rw-r--r--pkgs/development/compilers/zig/0.10/hook.nix47
-rw-r--r--pkgs/development/compilers/zig/0.10/setup-hook.sh70
-rw-r--r--pkgs/development/compilers/zig/0.11.nix37
-rw-r--r--pkgs/development/compilers/zig/0.11/default.nix103
-rw-r--r--pkgs/development/compilers/zig/0.11/hook.nix47
-rw-r--r--pkgs/development/compilers/zig/0.11/setup-hook.sh70
-rw-r--r--pkgs/development/compilers/zig/0.12.nix37
-rw-r--r--pkgs/development/compilers/zig/0.12/default.nix105
-rw-r--r--pkgs/development/compilers/zig/0.12/hook.nix47
-rw-r--r--pkgs/development/compilers/zig/0.12/setup-hook.sh70
-rw-r--r--pkgs/development/compilers/zig/0.13/default.nix105
-rw-r--r--pkgs/development/compilers/zig/0.13/hook.nix32
-rw-r--r--pkgs/development/compilers/zig/0.13/setup-hook.sh70
-rw-r--r--pkgs/development/compilers/zig/0.9.nix47
-rw-r--r--pkgs/development/compilers/zig/0.9/000-0.9-read-dynstr-at-rpath-offset.patch (renamed from pkgs/development/compilers/zig/000-0.9-read-dynstr-at-rpath-offset.patch)0
-rw-r--r--pkgs/development/compilers/zig/0.9/001-0.9-bump-macos-supported-version.patch (renamed from pkgs/development/compilers/zig/001-0.9-bump-macos-supported-version.patch)0
-rw-r--r--pkgs/development/compilers/zig/0.9/default.nix111
-rw-r--r--pkgs/development/compilers/zig/0.9/hook.nix47
-rw-r--r--pkgs/development/compilers/zig/0.9/setup-hook.sh70
-rw-r--r--pkgs/development/compilers/zig/hook.nix2
-rw-r--r--pkgs/development/coq-modules/CoLoR/default.nix2
-rw-r--r--pkgs/development/coq-modules/HoTT/default.nix2
-rw-r--r--pkgs/development/coq-modules/ITree/default.nix2
-rw-r--r--pkgs/development/coq-modules/VST/default.nix2
-rw-r--r--pkgs/development/coq-modules/VplTactic/default.nix2
-rw-r--r--pkgs/development/coq-modules/aac-tactics/default.nix3
-rw-r--r--pkgs/development/coq-modules/category-theory/default.nix2
-rw-r--r--pkgs/development/coq-modules/compcert/default.nix16
-rw-r--r--pkgs/development/coq-modules/coq-bits/default.nix2
-rw-r--r--pkgs/development/coq-modules/coq-elpi/default.nix2
-rw-r--r--pkgs/development/coq-modules/coq-ext-lib/default.nix2
-rw-r--r--pkgs/development/coq-modules/coq-haskell/default.nix2
-rw-r--r--pkgs/development/coq-modules/coq-lsp/default.nix12
-rw-r--r--pkgs/development/coq-modules/coqide/default.nix2
-rw-r--r--pkgs/development/coq-modules/coquelicot/default.nix2
-rw-r--r--pkgs/development/coq-modules/corn/default.nix2
-rw-r--r--pkgs/development/coq-modules/equations/default.nix2
-rw-r--r--pkgs/development/coq-modules/fiat/HEAD.nix2
-rw-r--r--pkgs/development/coq-modules/flocq/default.nix2
-rw-r--r--pkgs/development/coq-modules/goedel/default.nix2
-rw-r--r--pkgs/development/coq-modules/graph-theory/default.nix4
-rw-r--r--pkgs/development/coq-modules/iris/default.nix2
-rw-r--r--pkgs/development/coq-modules/itauto/default.nix2
-rw-r--r--pkgs/development/coq-modules/ltac2/default.nix2
-rw-r--r--pkgs/development/coq-modules/math-classes/default.nix2
-rw-r--r--pkgs/development/coq-modules/mathcomp-analysis/default.nix4
-rw-r--r--pkgs/development/coq-modules/mathcomp-apery/default.nix2
-rw-r--r--pkgs/development/coq-modules/mathcomp-bigenough/default.nix2
-rw-r--r--pkgs/development/coq-modules/mathcomp-finmap/default.nix2
-rw-r--r--pkgs/development/coq-modules/mathcomp-infotheo/default.nix4
-rw-r--r--pkgs/development/coq-modules/mathcomp-word/default.nix6
-rw-r--r--pkgs/development/coq-modules/multinomials/default.nix2
-rw-r--r--pkgs/development/coq-modules/paco/default.nix2
-rw-r--r--pkgs/development/coq-modules/semantics/default.nix2
-rw-r--r--pkgs/development/coq-modules/serapi/default.nix12
-rw-r--r--pkgs/development/coq-modules/smpl/default.nix2
-rw-r--r--pkgs/development/coq-modules/stdpp/default.nix2
-rw-r--r--pkgs/development/coq-modules/tlc/default.nix2
-rw-r--r--pkgs/development/coq-modules/trakt/default.nix2
-rw-r--r--pkgs/development/coq-modules/vcfloat/default.nix2
-rw-r--r--pkgs/development/cuda-modules/aliases.nix2
-rw-r--r--pkgs/development/cuda-modules/cuda/extension.nix5
-rw-r--r--pkgs/development/cuda-modules/cudatoolkit/default.nix2
-rw-r--r--pkgs/development/cuda-modules/cudatoolkit/redist-wrapper.nix2
-rw-r--r--pkgs/development/cuda-modules/modules/cudnn/default.nix2
-rw-r--r--pkgs/development/cuda-modules/modules/generic/manifests/feature/manifest.nix2
-rw-r--r--pkgs/development/cuda-modules/modules/generic/manifests/feature/outputs.nix10
-rw-r--r--pkgs/development/cuda-modules/modules/generic/manifests/feature/package.nix2
-rw-r--r--pkgs/development/cuda-modules/modules/generic/manifests/feature/release.nix2
-rw-r--r--pkgs/development/cuda-modules/modules/generic/manifests/redistrib/manifest.nix8
-rw-r--r--pkgs/development/cuda-modules/modules/generic/manifests/redistrib/package.nix10
-rw-r--r--pkgs/development/cuda-modules/modules/generic/manifests/redistrib/release.nix10
-rw-r--r--pkgs/development/cuda-modules/modules/generic/releases/default.nix12
-rw-r--r--pkgs/development/cuda-modules/modules/generic/types/default.nix12
-rw-r--r--pkgs/development/cuda-modules/modules/tensorrt/default.nix4
-rw-r--r--pkgs/development/cuda-modules/saxpy/default.nix11
-rw-r--r--pkgs/development/embedded/arduino/arduino-language-server/default.nix2
-rw-r--r--pkgs/development/embedded/arduino/arduinoOTA/default.nix2
-rw-r--r--pkgs/development/embedded/blackmagic/default.nix2
-rw-r--r--pkgs/development/embedded/blisp/default.nix2
-rw-r--r--pkgs/development/embedded/bossa/default.nix2
-rw-r--r--pkgs/development/embedded/fpga/ecpdap/default.nix8
-rw-r--r--pkgs/development/embedded/fpga/icestorm/default.nix2
-rw-r--r--pkgs/development/embedded/fpga/tinyprog/default.nix2
-rw-r--r--pkgs/development/embedded/fpga/trellis/default.nix2
-rw-r--r--pkgs/development/embedded/gputils/default.nix2
-rw-r--r--pkgs/development/embedded/platformio/chrootenv.nix3
-rw-r--r--pkgs/development/embedded/platformio/core.nix2
-rw-r--r--pkgs/development/embedded/platformio/default.nix2
-rw-r--r--pkgs/development/embedded/stm8/stm8flash/default.nix2
-rw-r--r--pkgs/development/embedded/teensy-cmake-macros/hook.nix2
-rw-r--r--pkgs/development/embedded/teensy-loader-cli/default.nix4
-rw-r--r--pkgs/development/gnuradio-modules/osmosdr/default.nix8
-rw-r--r--pkgs/development/guile-modules/guile-lib/default.nix2
-rw-r--r--pkgs/development/guile-modules/guile-reader/default.nix2
-rw-r--r--pkgs/development/hare-third-party/hare-compress/default.nix18
-rw-r--r--pkgs/development/hare-third-party/hare-ev/default.nix22
-rw-r--r--pkgs/development/hare-third-party/hare-json/default.nix18
-rw-r--r--pkgs/development/hare-third-party/hare-png/default.nix20
-rw-r--r--pkgs/development/hare-third-party/hare-ssh/default.nix18
-rw-r--r--pkgs/development/hare-third-party/hare-toml/default.nix24
-rw-r--r--pkgs/development/haskell-modules/cabal2nix-unstable.nix6
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix127
-rw-r--r--pkgs/development/haskell-modules/configuration-darwin.nix57
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix1
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix2
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix7
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix3
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix13
-rw-r--r--pkgs/development/haskell-modules/configuration-ghcjs-8.x.nix (renamed from pkgs/development/haskell-modules/configuration-ghcjs.nix)7
-rw-r--r--pkgs/development/haskell-modules/configuration-ghcjs-9.x.nix22
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml19
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml86
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml17
-rw-r--r--pkgs/development/haskell-modules/configuration-nix.nix17
-rw-r--r--pkgs/development/haskell-modules/default.nix6
-rw-r--r--pkgs/development/haskell-modules/generic-builder.nix96
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix2453
-rw-r--r--pkgs/development/haskell-modules/hoogle.nix2
-rw-r--r--pkgs/development/haskell-modules/lib/compose.nix3
-rw-r--r--pkgs/development/idris-modules/bifunctors.nix2
-rw-r--r--pkgs/development/idris-modules/config.nix2
-rw-r--r--pkgs/development/idris-modules/console.nix2
-rw-r--r--pkgs/development/idris-modules/containers.nix2
-rw-r--r--pkgs/development/idris-modules/cube.nix2
-rw-r--r--pkgs/development/idris-modules/default.nix3
-rw-r--r--pkgs/development/idris-modules/hezarfen.nix2
-rw-r--r--pkgs/development/idris-modules/http.nix2
-rw-r--r--pkgs/development/idris-modules/http4idris.nix2
-rw-r--r--pkgs/development/idris-modules/mhd.nix2
-rw-r--r--pkgs/development/idris-modules/patricia.nix2
-rw-r--r--pkgs/development/idris-modules/posix.nix2
-rw-r--r--pkgs/development/idris-modules/rationals.nix2
-rw-r--r--pkgs/development/idris-modules/sdl.nix30
-rw-r--r--pkgs/development/idris-modules/specdris.nix2
-rw-r--r--pkgs/development/idris-modules/tap.nix2
-rw-r--r--pkgs/development/interpreters/acl2/default.nix2
-rw-r--r--pkgs/development/interpreters/alda/default.nix2
-rw-r--r--pkgs/development/interpreters/asmrepl/default.nix2
-rw-r--r--pkgs/development/interpreters/babashka/default.nix2
-rw-r--r--pkgs/development/interpreters/bic/default.nix2
-rw-r--r--pkgs/development/interpreters/bqn/cbqn/cbqn-bytecode.nix35
-rw-r--r--pkgs/development/interpreters/bqn/cbqn/default.nix109
-rw-r--r--pkgs/development/interpreters/bqn/cbqn/replxx.nix37
-rw-r--r--pkgs/development/interpreters/bqn/cbqn/singeli.nix37
-rw-r--r--pkgs/development/interpreters/bqn/cbqn/sources.nix60
-rw-r--r--pkgs/development/interpreters/bqn/mlochbaum-bqn/default.nix64
-rw-r--r--pkgs/development/interpreters/ceptre/default.nix2
-rw-r--r--pkgs/development/interpreters/cling/default.nix2
-rw-r--r--pkgs/development/interpreters/clips/default.nix8
-rw-r--r--pkgs/development/interpreters/clojure/clooj.nix2
-rw-r--r--pkgs/development/interpreters/clojure/default.nix2
-rw-r--r--pkgs/development/interpreters/cyber/default.nix2
-rw-r--r--pkgs/development/interpreters/cyclone/default.nix2
-rw-r--r--pkgs/development/interpreters/duktape/default.nix7
-rw-r--r--pkgs/development/interpreters/dzaima-apl/default.nix2
-rw-r--r--pkgs/development/interpreters/eff/default.nix2
-rw-r--r--pkgs/development/interpreters/elixir/1.17.nix8
-rw-r--r--pkgs/development/interpreters/elixir/generic-builder.nix2
-rw-r--r--pkgs/development/interpreters/emilua/default.nix12
-rw-r--r--pkgs/development/interpreters/erlang/generic-builder.nix4
-rw-r--r--pkgs/development/interpreters/evcxr/default.nix2
-rw-r--r--pkgs/development/interpreters/expr/default.nix6
-rw-r--r--pkgs/development/interpreters/femtolisp/default.nix2
-rw-r--r--pkgs/development/interpreters/gauche/default.nix2
-rw-r--r--pkgs/development/interpreters/gpython/default.nix2
-rw-r--r--pkgs/development/interpreters/groovy/default.nix8
-rw-r--r--pkgs/development/interpreters/hashlink/default.nix2
-rw-r--r--pkgs/development/interpreters/icon-lang/default.nix2
-rw-r--r--pkgs/development/interpreters/jelly/default.nix2
-rw-r--r--pkgs/development/interpreters/jimtcl/default.nix2
-rw-r--r--pkgs/development/interpreters/joker/default.nix2
-rw-r--r--pkgs/development/interpreters/kamilalisp/default.nix8
-rw-r--r--pkgs/development/interpreters/kona/default.nix2
-rw-r--r--pkgs/development/interpreters/lambda-lisp/default.nix2
-rw-r--r--pkgs/development/interpreters/lfe/2.1.nix8
-rw-r--r--pkgs/development/interpreters/lfe/generic-builder.nix2
-rw-r--r--pkgs/development/interpreters/lolcode/default.nix2
-rw-r--r--pkgs/development/interpreters/love/0.10.nix2
-rw-r--r--pkgs/development/interpreters/love/11.nix2
-rw-r--r--pkgs/development/interpreters/lua-5/build-luarocks-package.nix6
-rw-r--r--pkgs/development/interpreters/lua-5/default.nix2
-rw-r--r--pkgs/development/interpreters/luajit/2.0.nix11
-rw-r--r--pkgs/development/interpreters/luajit/2.1.nix8
-rw-r--r--pkgs/development/interpreters/luau/default.nix2
-rw-r--r--pkgs/development/interpreters/lunatic/default.nix2
-rw-r--r--pkgs/development/interpreters/lune/default.nix2
-rw-r--r--pkgs/development/interpreters/micropython/default.nix6
-rw-r--r--pkgs/development/interpreters/mujs/default.nix2
-rw-r--r--pkgs/development/interpreters/nelua/default.nix6
-rw-r--r--pkgs/development/interpreters/nextflow/default.nix2
-rw-r--r--pkgs/development/interpreters/ngn-k/default.nix2
-rw-r--r--pkgs/development/interpreters/npiet/default.nix2
-rw-r--r--pkgs/development/interpreters/perl/interpreter.nix7
-rw-r--r--pkgs/development/interpreters/php/8.1.nix4
-rw-r--r--pkgs/development/interpreters/php/8.2.nix4
-rw-r--r--pkgs/development/interpreters/php/8.3.nix4
-rw-r--r--pkgs/development/interpreters/php/generic.nix4
-rw-r--r--pkgs/development/interpreters/picolisp/default.nix2
-rw-r--r--pkgs/development/interpreters/python/cpython/2.7/default.nix2
-rw-r--r--pkgs/development/interpreters/python/cpython/default.nix31
-rw-r--r--pkgs/development/interpreters/python/cpython/freebsd-cross.patch22
-rw-r--r--pkgs/development/interpreters/python/default.nix4
-rw-r--r--pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/default.nix10
-rw-r--r--pkgs/development/interpreters/qnial/default.nix2
-rw-r--r--pkgs/development/interpreters/quickjs/default.nix2
-rw-r--r--pkgs/development/interpreters/racket/default.nix2
-rw-r--r--pkgs/development/interpreters/racket/racket_7_9.nix2
-rw-r--r--pkgs/development/interpreters/rlci/default.nix2
-rw-r--r--pkgs/development/interpreters/ruby/default.nix13
-rw-r--r--pkgs/development/interpreters/ruby/rubygems/default.nix4
-rw-r--r--pkgs/development/interpreters/rune/default.nix2
-rw-r--r--pkgs/development/interpreters/s9fes/default.nix4
-rw-r--r--pkgs/development/interpreters/scsh/default.nix2
-rw-r--r--pkgs/development/interpreters/snobol4/default.nix2
-rw-r--r--pkgs/development/interpreters/sollya/default.nix2
-rw-r--r--pkgs/development/interpreters/starlark-rust/default.nix2
-rw-r--r--pkgs/development/interpreters/tcl/generic.nix2
-rw-r--r--pkgs/development/interpreters/unicon-lang/default.nix2
-rw-r--r--pkgs/development/interpreters/wamr/default.nix4
-rw-r--r--pkgs/development/interpreters/wasm3/default.nix2
-rw-r--r--pkgs/development/interpreters/wasmer/default.nix8
-rw-r--r--pkgs/development/interpreters/wasmtime/default.nix27
-rw-r--r--pkgs/development/interpreters/wazero/default.nix2
-rw-r--r--pkgs/development/interpreters/yaegi/default.nix2
-rw-r--r--pkgs/development/interpreters/yex-lang/default.nix2
-rw-r--r--pkgs/development/interpreters/zuo/default.nix2
-rw-r--r--pkgs/development/julia-modules/default.nix1
-rw-r--r--pkgs/development/julia-modules/depot.nix5
-rw-r--r--pkgs/development/julia-modules/tests/julia-top-n/app/Main.hs6
-rw-r--r--pkgs/development/julia-modules/tests/julia-top-n/default.nix11
-rw-r--r--pkgs/development/julia-modules/tests/julia-top-n/julia-top-n.cabal1
-rw-r--r--pkgs/development/julia-modules/tests/julia-top-n/package.yaml1
-rw-r--r--pkgs/development/libraries/CoinMP/default.nix26
-rw-r--r--pkgs/development/libraries/SDL/default.nix2
-rw-r--r--pkgs/development/libraries/SDL2/default.nix6
-rw-r--r--pkgs/development/libraries/SDL2_gfx/default.nix51
-rw-r--r--pkgs/development/libraries/SDL2_ttf/default.nix32
-rw-r--r--pkgs/development/libraries/SDL_Pango/default.nix33
-rw-r--r--pkgs/development/libraries/SDL_audiolib/default.nix53
-rw-r--r--pkgs/development/libraries/SDL_compat/default.nix2
-rw-r--r--pkgs/development/libraries/SDL_gfx/default.nix46
-rw-r--r--pkgs/development/libraries/SDL_gpu/default.nix36
-rw-r--r--pkgs/development/libraries/SDL_image/default.nix38
-rw-r--r--pkgs/development/libraries/SDL_net/default.nix23
-rw-r--r--pkgs/development/libraries/SDL_sixel/default.nix27
-rw-r--r--pkgs/development/libraries/SDL_sound/default.nix22
-rw-r--r--pkgs/development/libraries/SDL_stretch/default.nix20
-rw-r--r--pkgs/development/libraries/SDL_ttf/default.nix33
-rw-r--r--pkgs/development/libraries/abseil-cpp/202103.nix2
-rw-r--r--pkgs/development/libraries/abseil-cpp/202111.nix3
-rw-r--r--pkgs/development/libraries/abseil-cpp/202206.nix2
-rw-r--r--pkgs/development/libraries/abseil-cpp/202301.nix2
-rw-r--r--pkgs/development/libraries/abseil-cpp/202308.nix2
-rw-r--r--pkgs/development/libraries/abseil-cpp/202401.nix2
-rw-r--r--pkgs/development/libraries/aften/default.nix2
-rw-r--r--pkgs/development/libraries/agda/agda-categories/default.nix2
-rw-r--r--pkgs/development/libraries/agda/standard-library/default.nix2
-rw-r--r--pkgs/development/libraries/alembic/default.nix2
-rw-r--r--pkgs/development/libraries/alglib/default.nix4
-rw-r--r--pkgs/development/libraries/allegro/5.nix3
-rw-r--r--pkgs/development/libraries/allegro/default.nix2
-rw-r--r--pkgs/development/libraries/alure/default.nix2
-rw-r--r--pkgs/development/libraries/alure2/default.nix2
-rw-r--r--pkgs/development/libraries/amdvlk/default.nix9
-rw-r--r--pkgs/development/libraries/antic/default.nix2
-rw-r--r--pkgs/development/libraries/apr-util/default.nix2
-rw-r--r--pkgs/development/libraries/apr/default.nix4
-rw-r--r--pkgs/development/libraries/aqbanking/default.nix2
-rw-r--r--pkgs/development/libraries/arb/default.nix2
-rw-r--r--pkgs/development/libraries/armadillo/default.nix4
-rw-r--r--pkgs/development/libraries/arrayfire/default.nix2
-rw-r--r--pkgs/development/libraries/aspell/dictionaries.nix134
-rw-r--r--pkgs/development/libraries/assimp/default.nix6
-rw-r--r--pkgs/development/libraries/aubio/default.nix1
-rw-r--r--pkgs/development/libraries/audiality2/default.nix2
-rw-r--r--pkgs/development/libraries/audio/game-music-emu/default.nix2
-rw-r--r--pkgs/development/libraries/audio/libopenmpt-modplug/default.nix2
-rw-r--r--pkgs/development/libraries/audio/libopenmpt/default.nix4
-rw-r--r--pkgs/development/libraries/audio/libsmf/default.nix2
-rw-r--r--pkgs/development/libraries/audio/lilv/default.nix2
-rw-r--r--pkgs/development/libraries/audio/lv2/default.nix2
-rw-r--r--pkgs/development/libraries/audio/lvtk/default.nix2
-rw-r--r--pkgs/development/libraries/audio/qm-dsp/default.nix2
-rw-r--r--pkgs/development/libraries/audio/raul/default.nix2
-rw-r--r--pkgs/development/libraries/audio/roc-toolkit/default.nix12
-rw-r--r--pkgs/development/libraries/audio/rtaudio/default.nix2
-rw-r--r--pkgs/development/libraries/audio/rtmidi/default.nix2
-rw-r--r--pkgs/development/libraries/audio/sratom/default.nix2
-rw-r--r--pkgs/development/libraries/audio/suil/default.nix2
-rw-r--r--pkgs/development/libraries/audio/zita-alsa-pcmi/default.nix2
-rw-r--r--pkgs/development/libraries/audio/zix/default.nix2
-rw-r--r--pkgs/development/libraries/avro-c++/default.nix2
-rw-r--r--pkgs/development/libraries/avro-c/default.nix2
-rw-r--r--pkgs/development/libraries/aws-c-auth/default.nix4
-rw-r--r--pkgs/development/libraries/aws-c-cal/default.nix4
-rw-r--r--pkgs/development/libraries/aws-c-common/default.nix4
-rw-r--r--pkgs/development/libraries/aws-c-http/default.nix4
-rw-r--r--pkgs/development/libraries/aws-c-io/default.nix4
-rw-r--r--pkgs/development/libraries/aws-c-s3/default.nix4
-rw-r--r--pkgs/development/libraries/aws-sdk-cpp/default.nix6
-rw-r--r--pkgs/development/libraries/bashup-events/generic.nix2
-rw-r--r--pkgs/development/libraries/basu/default.nix2
-rw-r--r--pkgs/development/libraries/bc-decaf/default.nix2
-rw-r--r--pkgs/development/libraries/bearssl/default.nix2
-rw-r--r--pkgs/development/libraries/belcard/default.nix2
-rw-r--r--pkgs/development/libraries/belle-sip/default.nix2
-rw-r--r--pkgs/development/libraries/belr/default.nix2
-rw-r--r--pkgs/development/libraries/bencode/default.nix2
-rw-r--r--pkgs/development/libraries/biblesync/default.nix2
-rw-r--r--pkgs/development/libraries/blst/default.nix4
-rw-r--r--pkgs/development/libraries/boca/default.nix2
-rw-r--r--pkgs/development/libraries/boost-process/default.nix32
-rw-r--r--pkgs/development/libraries/boost/1.75.nix2
-rw-r--r--pkgs/development/libraries/boost/1.77.nix2
-rw-r--r--pkgs/development/libraries/boost/1.78.nix2
-rw-r--r--pkgs/development/libraries/boost/1.79.nix2
-rw-r--r--pkgs/development/libraries/boost/1.80.nix2
-rw-r--r--pkgs/development/libraries/boost/1.81.nix2
-rw-r--r--pkgs/development/libraries/boost/1.82.nix2
-rw-r--r--pkgs/development/libraries/boost/1.83.nix2
-rw-r--r--pkgs/development/libraries/boost/1.84.nix2
-rw-r--r--pkgs/development/libraries/boost/1.85.nix2
-rw-r--r--pkgs/development/libraries/bullet/default.nix2
-rw-r--r--pkgs/development/libraries/bullet/roboschool-fork.nix2
-rw-r--r--pkgs/development/libraries/bzrtp/default.nix2
-rw-r--r--pkgs/development/libraries/c-ares/default.nix9
-rw-r--r--pkgs/development/libraries/c-blosc/1.nix2
-rw-r--r--pkgs/development/libraries/c-blosc/2.nix2
-rw-r--r--pkgs/development/libraries/caf/default.nix2
-rw-r--r--pkgs/development/libraries/cairo/default.nix4
-rw-r--r--pkgs/development/libraries/calcium/default.nix2
-rw-r--r--pkgs/development/libraries/catch/default.nix2
-rw-r--r--pkgs/development/libraries/catch2/default.nix2
-rw-r--r--pkgs/development/libraries/ccrtp/default.nix2
-rw-r--r--pkgs/development/libraries/cddlib/default.nix2
-rw-r--r--pkgs/development/libraries/cereal/1.3.0.nix2
-rw-r--r--pkgs/development/libraries/cereal/1.3.2.nix3
-rw-r--r--pkgs/development/libraries/ceres-solver/default.nix1
-rw-r--r--pkgs/development/libraries/cgreen/default.nix2
-rw-r--r--pkgs/development/libraries/cgui/default.nix2
-rw-r--r--pkgs/development/libraries/charls/default.nix2
-rw-r--r--pkgs/development/libraries/chipmunk/default.nix2
-rw-r--r--pkgs/development/libraries/chmlib/default.nix2
-rw-r--r--pkgs/development/libraries/cista/default.nix2
-rw-r--r--pkgs/development/libraries/clanlib/default.nix2
-rw-r--r--pkgs/development/libraries/clap/default.nix4
-rw-r--r--pkgs/development/libraries/classads/default.nix2
-rw-r--r--pkgs/development/libraries/clipper/default.nix2
-rw-r--r--pkgs/development/libraries/cmocka/default.nix2
-rw-r--r--pkgs/development/libraries/coeurl/default.nix2
-rw-r--r--pkgs/development/libraries/cogl/default.nix3
-rw-r--r--pkgs/development/libraries/comedilib/default.nix2
-rw-r--r--pkgs/development/libraries/console-bridge/default.nix2
-rw-r--r--pkgs/development/libraries/cpp-hocon/default.nix2
-rw-r--r--pkgs/development/libraries/cpp-utilities/default.nix4
-rw-r--r--pkgs/development/libraries/cracklib/default.nix2
-rw-r--r--pkgs/development/libraries/croaring/default.nix32
-rw-r--r--pkgs/development/libraries/croaring/fix-pkg-config.patch14
-rw-r--r--pkgs/development/libraries/crocoddyl/default.nix8
-rw-r--r--pkgs/development/libraries/crypto++/default.nix2
-rw-r--r--pkgs/development/libraries/ctpp2/default.nix2
-rw-r--r--pkgs/development/libraries/ctranslate2/default.nix4
-rw-r--r--pkgs/development/libraries/ctypes_sh/default.nix2
-rw-r--r--pkgs/development/libraries/dav1d/default.nix2
-rw-r--r--pkgs/development/libraries/dbxml/default.nix2
-rw-r--r--pkgs/development/libraries/dee/default.nix2
-rw-r--r--pkgs/development/libraries/directx-headers/default.nix4
-rw-r--r--pkgs/development/libraries/dleyna-connector-dbus/default.nix2
-rw-r--r--pkgs/development/libraries/dleyna-core/default.nix5
-rw-r--r--pkgs/development/libraries/dlib/default.nix8
-rw-r--r--pkgs/development/libraries/doctest/default.nix2
-rw-r--r--pkgs/development/libraries/dotconf/default.nix2
-rw-r--r--pkgs/development/libraries/drogon/default.nix2
-rw-r--r--pkgs/development/libraries/dssi/default.nix2
-rw-r--r--pkgs/development/libraries/duckdb/default.nix2
-rw-r--r--pkgs/development/libraries/duckdb/versions.json6
-rw-r--r--pkgs/development/libraries/eccodes/default.nix4
-rw-r--r--pkgs/development/libraries/edencommon/default.nix2
-rw-r--r--pkgs/development/libraries/editline/default.nix4
-rw-r--r--pkgs/development/libraries/egl-wayland/default.nix3
-rw-r--r--pkgs/development/libraries/eglexternalplatform/default.nix2
-rw-r--r--pkgs/development/libraries/elf-header/default.nix2
-rw-r--r--pkgs/development/libraries/enet/default.nix4
-rw-r--r--pkgs/development/libraries/entt/default.nix2
-rw-r--r--pkgs/development/libraries/example-robot-data/default.nix13
-rw-r--r--pkgs/development/libraries/exempi/default.nix2
-rw-r--r--pkgs/development/libraries/exiv2/default.nix3
-rw-r--r--pkgs/development/libraries/expat/default.nix4
-rw-r--r--pkgs/development/libraries/expected-lite/default.nix4
-rw-r--r--pkgs/development/libraries/exprtk/default.nix2
-rw-r--r--pkgs/development/libraries/faad2/default.nix2
-rw-r--r--pkgs/development/libraries/fast-cpp-csv-parser/default.nix2
-rw-r--r--pkgs/development/libraries/fastjson/default.nix2
-rw-r--r--pkgs/development/libraries/fastpbkdf2/default.nix2
-rw-r--r--pkgs/development/libraries/faudio/default.nix4
-rw-r--r--pkgs/development/libraries/fb303/default.nix2
-rw-r--r--pkgs/development/libraries/fbjni/default.nix2
-rw-r--r--pkgs/development/libraries/fcgi/default.nix4
-rw-r--r--pkgs/development/libraries/fcl/default.nix2
-rw-r--r--pkgs/development/libraries/fdk-aac/default.nix2
-rw-r--r--pkgs/development/libraries/ffmpeg/default.nix4
-rw-r--r--pkgs/development/libraries/ffmpeg/generic.nix4
-rw-r--r--pkgs/development/libraries/ffmpegthumbnailer/default.nix2
-rw-r--r--pkgs/development/libraries/ffms/default.nix10
-rw-r--r--pkgs/development/libraries/flite/default.nix2
-rw-r--r--pkgs/development/libraries/fltk/common.nix2
-rw-r--r--pkgs/development/libraries/fmt/default.nix2
-rw-r--r--pkgs/development/libraries/folks/default.nix12
-rw-r--r--pkgs/development/libraries/folly/default.nix2
-rw-r--r--pkgs/development/libraries/fontconfig/default.nix2
-rw-r--r--pkgs/development/libraries/forge/default.nix2
-rw-r--r--pkgs/development/libraries/fox/default.nix1
-rw-r--r--pkgs/development/libraries/fox/fox-1.6.nix2
-rw-r--r--pkgs/development/libraries/freetds/default.nix4
-rw-r--r--pkgs/development/libraries/freetype/default.nix2
-rw-r--r--pkgs/development/libraries/freexl/default.nix2
-rw-r--r--pkgs/development/libraries/fuzzylite/default.nix3
-rw-r--r--pkgs/development/libraries/g2o/default.nix2
-rw-r--r--pkgs/development/libraries/gamin/default.nix6
-rw-r--r--pkgs/development/libraries/ganv/default.nix2
-rw-r--r--pkgs/development/libraries/gbenchmark/default.nix2
-rw-r--r--pkgs/development/libraries/gd/default.nix2
-rw-r--r--pkgs/development/libraries/gdal/default.nix16
-rw-r--r--pkgs/development/libraries/gdbm/default.nix4
-rw-r--r--pkgs/development/libraries/gdcm/default.nix9
-rw-r--r--pkgs/development/libraries/gdk-pixbuf/default.nix13
-rw-r--r--pkgs/development/libraries/gegl/default.nix6
-rw-r--r--pkgs/development/libraries/geis/default.nix2
-rw-r--r--pkgs/development/libraries/gensio/default.nix4
-rw-r--r--pkgs/development/libraries/geoclue/default.nix1
-rw-r--r--pkgs/development/libraries/geocode-glib/default.nix2
-rw-r--r--pkgs/development/libraries/geoip/default.nix2
-rw-r--r--pkgs/development/libraries/geos/3.11.nix5
-rw-r--r--pkgs/development/libraries/getdns/default.nix4
-rw-r--r--pkgs/development/libraries/gettext/default.nix7
-rw-r--r--pkgs/development/libraries/gflags/default.nix2
-rw-r--r--pkgs/development/libraries/giflib/default.nix3
-rw-r--r--pkgs/development/libraries/givaro/3.7.nix2
-rw-r--r--pkgs/development/libraries/givaro/3.nix2
-rw-r--r--pkgs/development/libraries/givaro/default.nix2
-rw-r--r--pkgs/development/libraries/gl2ps/default.nix2
-rw-r--r--pkgs/development/libraries/glbinding/default.nix2
-rw-r--r--pkgs/development/libraries/glew/1.10.nix4
-rw-r--r--pkgs/development/libraries/glew/default.nix2
-rw-r--r--pkgs/development/libraries/glfw/3.x.nix5
-rw-r--r--pkgs/development/libraries/glib/default.nix18
-rw-r--r--pkgs/development/libraries/glibc/common.nix2
-rw-r--r--pkgs/development/libraries/glibc/default.nix2
-rw-r--r--pkgs/development/libraries/glibc/mtrace.nix2
-rw-r--r--pkgs/development/libraries/globalarrays/default.nix2
-rw-r--r--pkgs/development/libraries/gloox/default.nix2
-rw-r--r--pkgs/development/libraries/glpk/default.nix2
-rw-r--r--pkgs/development/libraries/glui/default.nix2
-rw-r--r--pkgs/development/libraries/gmime/2.nix2
-rw-r--r--pkgs/development/libraries/gmime/3.nix2
-rw-r--r--pkgs/development/libraries/gnet/default.nix2
-rw-r--r--pkgs/development/libraries/gnome-online-accounts/default.nix4
-rw-r--r--pkgs/development/libraries/gnome-video-effects/default.nix2
-rw-r--r--pkgs/development/libraries/gnu-efi/default.nix25
-rw-r--r--pkgs/development/libraries/gnutls/default.nix2
-rw-r--r--pkgs/development/libraries/gobject-introspection/default.nix2
-rw-r--r--pkgs/development/libraries/goffice/default.nix2
-rw-r--r--pkgs/development/libraries/gom/default.nix2
-rw-r--r--pkgs/development/libraries/graphene/default.nix2
-rw-r--r--pkgs/development/libraries/grilo-plugins/default.nix2
-rw-r--r--pkgs/development/libraries/grpc/default.nix2
-rw-r--r--pkgs/development/libraries/gsl/default.nix2
-rw-r--r--pkgs/development/libraries/gspell/default.nix2
-rw-r--r--pkgs/development/libraries/gstreamer/bad/default.nix13
-rw-r--r--pkgs/development/libraries/gstreamer/base/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/core/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/devtools/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/ges/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/good/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/libav/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/rs/default.nix3
-rw-r--r--pkgs/development/libraries/gstreamer/rtsp-server/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/ugly/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/vaapi/default.nix4
-rw-r--r--pkgs/development/libraries/gtk-engine-murrine/default.nix2
-rw-r--r--pkgs/development/libraries/gtk-layer-shell/default.nix2
-rw-r--r--pkgs/development/libraries/gtk-sharp/2.0.nix4
-rw-r--r--pkgs/development/libraries/gtk/2.x.nix2
-rw-r--r--pkgs/development/libraries/gtk/3.x.nix6
-rw-r--r--pkgs/development/libraries/gtk/4.x.nix6
-rw-r--r--pkgs/development/libraries/gtk4-layer-shell/default.nix2
-rw-r--r--pkgs/development/libraries/gtkextra/default.nix2
-rw-r--r--pkgs/development/libraries/gtksourceview/5.x.nix10
-rw-r--r--pkgs/development/libraries/gupnp-av/default.nix2
-rw-r--r--pkgs/development/libraries/gupnp/1.6.nix2
-rw-r--r--pkgs/development/libraries/gupnp/default.nix2
-rw-r--r--pkgs/development/libraries/gvfs/default.nix15
-rw-r--r--pkgs/development/libraries/harfbuzz/default.nix2
-rw-r--r--pkgs/development/libraries/herqq/default.nix2
-rw-r--r--pkgs/development/libraries/hiredis-vip/default.nix2
-rw-r--r--pkgs/development/libraries/hmat-oss/default.nix2
-rw-r--r--pkgs/development/libraries/howard-hinnant-date/default.nix2
-rw-r--r--pkgs/development/libraries/hpp-fcl/default.nix3
-rw-r--r--pkgs/development/libraries/hpx/default.nix4
-rw-r--r--pkgs/development/libraries/htmlcxx/default.nix2
-rw-r--r--pkgs/development/libraries/http-parser/default.nix2
-rw-r--r--pkgs/development/libraries/httplib/default.nix6
-rw-r--r--pkgs/development/libraries/hunspell/dictionaries.nix54
-rw-r--r--pkgs/development/libraries/hyena/default.nix2
-rw-r--r--pkgs/development/libraries/hyphen/default.nix2
-rw-r--r--pkgs/development/libraries/imgui/default.nix140
-rw-r--r--pkgs/development/libraries/imgui/demo/CMakeLists.txt11
-rw-r--r--pkgs/development/libraries/imgui/demo/default.nix29
-rw-r--r--pkgs/development/libraries/impy/default.nix2
-rw-r--r--pkgs/development/libraries/imtui/default.nix7
-rw-r--r--pkgs/development/libraries/iniparser/default.nix94
-rw-r--r--pkgs/development/libraries/iniparser/iniparser.pc.in12
-rw-r--r--pkgs/development/libraries/iniparser/no-usr.patch13
-rw-r--r--pkgs/development/libraries/iniparser/remove-fetchcontent-usage.patch17
-rw-r--r--pkgs/development/libraries/intel-gmmlib/default.nix4
-rw-r--r--pkgs/development/libraries/intel-media-sdk/default.nix5
-rw-r--r--pkgs/development/libraries/intel-media-sdk/nixos-search-onevplrt-in-run-opengl-driver-lib.patch45
-rw-r--r--pkgs/development/libraries/isa-l/default.nix2
-rw-r--r--pkgs/development/libraries/isl/generic.nix2
-rw-r--r--pkgs/development/libraries/itk/5.x.nix6
-rw-r--r--pkgs/development/libraries/itk/generic.nix2
-rw-r--r--pkgs/development/libraries/jabcode/default.nix2
-rw-r--r--pkgs/development/libraries/java/commons/compress/default.nix4
-rw-r--r--pkgs/development/libraries/java/commons/daemon/default.nix2
-rw-r--r--pkgs/development/libraries/java/commons/fileupload/default.nix4
-rw-r--r--pkgs/development/libraries/java/commons/io/default.nix2
-rw-r--r--pkgs/development/libraries/java/commons/math/default.nix2
-rw-r--r--pkgs/development/libraries/java/hsqldb/default.nix2
-rw-r--r--pkgs/development/libraries/java/lombok/default.nix2
-rw-r--r--pkgs/development/libraries/java/rhino/default.nix2
-rw-r--r--pkgs/development/libraries/java/smack/default.nix2
-rw-r--r--pkgs/development/libraries/jbigkit/default.nix2
-rw-r--r--pkgs/development/libraries/jemalloc/default.nix6
-rw-r--r--pkgs/development/libraries/jitterentropy/default.nix4
-rw-r--r--pkgs/development/libraries/jose/default.nix4
-rw-r--r--pkgs/development/libraries/json-c/default.nix2
-rw-r--r--pkgs/development/libraries/json-fortran/default.nix4
-rw-r--r--pkgs/development/libraries/json-glib/default.nix2
-rw-r--r--pkgs/development/libraries/jsoncpp/default.nix2
-rw-r--r--pkgs/development/libraries/jsonrpc-glib/default.nix2
-rw-r--r--pkgs/development/libraries/kcp/default.nix2
-rw-r--r--pkgs/development/libraries/kdb/default.nix2
-rw-r--r--pkgs/development/libraries/kddockwidgets/default.nix4
-rw-r--r--pkgs/development/libraries/kde-frameworks/baloo.nix1
-rw-r--r--pkgs/development/libraries/kde-frameworks/knewstuff/default.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/krunner.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/purpose.nix2
-rw-r--r--pkgs/development/libraries/kdsoap/default.nix2
-rw-r--r--pkgs/development/libraries/kerberos/heimdal.nix4
-rw-r--r--pkgs/development/libraries/kerberos/krb5.nix5
-rw-r--r--pkgs/development/libraries/kissfft/default.nix2
-rw-r--r--pkgs/development/libraries/kproperty/default.nix2
-rw-r--r--pkgs/development/libraries/kreport/default.nix2
-rw-r--r--pkgs/development/libraries/kyotocabinet/default.nix2
-rw-r--r--pkgs/development/libraries/lame/default.nix2
-rw-r--r--pkgs/development/libraries/languagemachines/frog.nix2
-rw-r--r--pkgs/development/libraries/languagemachines/libfolia.nix2
-rw-r--r--pkgs/development/libraries/languagemachines/ticcutils.nix2
-rw-r--r--pkgs/development/libraries/languagemachines/ucto.nix2
-rw-r--r--pkgs/development/libraries/languagemachines/uctodata.nix2
-rw-r--r--pkgs/development/libraries/lcrq/default.nix4
-rw-r--r--pkgs/development/libraries/ldb/default.nix6
-rw-r--r--pkgs/development/libraries/leatherman/default.nix2
-rw-r--r--pkgs/development/libraries/lensfun/default.nix2
-rw-r--r--pkgs/development/libraries/lesstif/default.nix2
-rw-r--r--pkgs/development/libraries/level-zero/default.nix22
-rw-r--r--pkgs/development/libraries/level-zero/system-spdlog.diff66
-rw-r--r--pkgs/development/libraries/libAfterImage/default.nix98
-rw-r--r--pkgs/development/libraries/libLAS/default.nix6
-rw-r--r--pkgs/development/libraries/libadwaita/default.nix4
-rw-r--r--pkgs/development/libraries/libappindicator/default.nix2
-rw-r--r--pkgs/development/libraries/libarchive-qt/default.nix2
-rw-r--r--pkgs/development/libraries/libargon2/default.nix2
-rw-r--r--pkgs/development/libraries/libargs/default.nix2
-rw-r--r--pkgs/development/libraries/libasyncns/default.nix2
-rw-r--r--pkgs/development/libraries/libatomic_ops/default.nix2
-rw-r--r--pkgs/development/libraries/libaudec/default.nix2
-rw-r--r--pkgs/development/libraries/libav/default.nix2
-rw-r--r--pkgs/development/libraries/libb2/default.nix2
-rw-r--r--pkgs/development/libraries/libbacktrace/default.nix2
-rw-r--r--pkgs/development/libraries/libbap/default.nix2
-rw-r--r--pkgs/development/libraries/libbladeRF/default.nix2
-rw-r--r--pkgs/development/libraries/libblockdev/default.nix2
-rw-r--r--pkgs/development/libraries/libbluray/default.nix2
-rw-r--r--pkgs/development/libraries/libbsd/default.nix3
-rw-r--r--pkgs/development/libraries/libbytesize/default.nix2
-rw-r--r--pkgs/development/libraries/libcaca/default.nix2
-rw-r--r--pkgs/development/libraries/libcanberra/default.nix2
-rw-r--r--pkgs/development/libraries/libcangjie/default.nix2
-rw-r--r--pkgs/development/libraries/libcdaudio/default.nix2
-rw-r--r--pkgs/development/libraries/libcdio/default.nix2
-rw-r--r--pkgs/development/libraries/libcdr/default.nix4
-rw-r--r--pkgs/development/libraries/libcommuni/default.nix2
-rw-r--r--pkgs/development/libraries/libconfig/default.nix2
-rw-r--r--pkgs/development/libraries/libcork/default.nix2
-rw-r--r--pkgs/development/libraries/libctemplate/default.nix2
-rw-r--r--pkgs/development/libraries/libcxxrt/default.nix6
-rw-r--r--pkgs/development/libraries/libdazzle/default.nix2
-rw-r--r--pkgs/development/libraries/libdeltachat/Cargo.lock2314
-rw-r--r--pkgs/development/libraries/libdeltachat/default.nix7
-rw-r--r--pkgs/development/libraries/libdeltachat/no-static-lib.patch28
-rw-r--r--pkgs/development/libraries/libdevil/0001-il_endian.h-Fix-endian-handling.patch35
-rw-r--r--pkgs/development/libraries/libdevil/default.nix27
-rw-r--r--pkgs/development/libraries/libdevil/ftbfs-libpng15.patch31
-rw-r--r--pkgs/development/libraries/libdevil/il_endian.h.patch27
-rw-r--r--pkgs/development/libraries/libdex/default.nix12
-rw-r--r--pkgs/development/libraries/libdigidocpp/default.nix2
-rw-r--r--pkgs/development/libraries/libdiscid/default.nix2
-rw-r--r--pkgs/development/libraries/libdivecomputer/default.nix2
-rw-r--r--pkgs/development/libraries/libdmtx/default.nix2
-rw-r--r--pkgs/development/libraries/libdvbcsa/default.nix2
-rw-r--r--pkgs/development/libraries/libdvbpsi/default.nix2
-rw-r--r--pkgs/development/libraries/libdvdcss/default.nix2
-rw-r--r--pkgs/development/libraries/libdvdnav/4.2.1.nix23
-rw-r--r--pkgs/development/libraries/libdvdnav/default.nix2
-rw-r--r--pkgs/development/libraries/libdvdread/4.9.9.nix2
-rw-r--r--pkgs/development/libraries/libdvdread/default.nix2
-rw-r--r--pkgs/development/libraries/libee/default.nix2
-rw-r--r--pkgs/development/libraries/libepoxy/default.nix2
-rw-r--r--pkgs/development/libraries/libesmtp/default.nix2
-rw-r--r--pkgs/development/libraries/libev/default.nix6
-rw-r--r--pkgs/development/libraries/libevdev/default.nix2
-rw-r--r--pkgs/development/libraries/libewf/default.nix2
-rw-r--r--pkgs/development/libraries/libexif/default.nix2
-rw-r--r--pkgs/development/libraries/libexttextcat/default.nix2
-rw-r--r--pkgs/development/libraries/libfaketime/default.nix5
-rw-r--r--pkgs/development/libraries/libffi/3.3.nix5
-rw-r--r--pkgs/development/libraries/libffi/default.nix5
-rw-r--r--pkgs/development/libraries/libfilezilla/default.nix2
-rw-r--r--pkgs/development/libraries/libfishsound/default.nix2
-rw-r--r--pkgs/development/libraries/libfm/default.nix2
-rw-r--r--pkgs/development/libraries/libfprint-2-tod1-vfs0090/default.nix2
-rw-r--r--pkgs/development/libraries/libfprint-tod/default.nix2
-rw-r--r--pkgs/development/libraries/libfprint/default.nix2
-rw-r--r--pkgs/development/libraries/libfpx/default.nix9
-rw-r--r--pkgs/development/libraries/libfreefare/default.nix2
-rw-r--r--pkgs/development/libraries/libftdi/1.x.nix2
-rw-r--r--pkgs/development/libraries/libftdi/default.nix2
-rw-r--r--pkgs/development/libraries/libgadu/default.nix2
-rw-r--r--pkgs/development/libraries/libgdiplus/default.nix2
-rw-r--r--pkgs/development/libraries/libgeotiff/default.nix4
-rw-r--r--pkgs/development/libraries/libgit2-glib/default.nix2
-rw-r--r--pkgs/development/libraries/libgit2/default.nix2
-rw-r--r--pkgs/development/libraries/libglibutil/default.nix2
-rw-r--r--pkgs/development/libraries/libglvnd/default.nix2
-rw-r--r--pkgs/development/libraries/libgnt/default.nix2
-rw-r--r--pkgs/development/libraries/libgnurl/default.nix2
-rw-r--r--pkgs/development/libraries/libgourou/default.nix4
-rw-r--r--pkgs/development/libraries/libgpg-error/default.nix6
-rw-r--r--pkgs/development/libraries/libgphoto2/default.nix2
-rw-r--r--pkgs/development/libraries/libgringotts/default.nix2
-rw-r--r--pkgs/development/libraries/libgtop/default.nix14
-rw-r--r--pkgs/development/libraries/libgudev/default.nix2
-rw-r--r--pkgs/development/libraries/libgweather/default.nix2
-rw-r--r--pkgs/development/libraries/libgxps/default.nix2
-rw-r--r--pkgs/development/libraries/libhandy/0.x.nix2
-rw-r--r--pkgs/development/libraries/libhv/default.nix2
-rw-r--r--pkgs/development/libraries/libical/default.nix2
-rw-r--r--pkgs/development/libraries/libiconv/default.nix2
-rw-r--r--pkgs/development/libraries/libime/default.nix6
-rw-r--r--pkgs/development/libraries/libimobiledevice/default.nix2
-rw-r--r--pkgs/development/libraries/libindicator/default.nix2
-rw-r--r--pkgs/development/libraries/libinfinity/default.nix2
-rw-r--r--pkgs/development/libraries/libinklevel/default.nix2
-rw-r--r--pkgs/development/libraries/libipfix/default.nix2
-rw-r--r--pkgs/development/libraries/libircclient/default.nix2
-rw-r--r--pkgs/development/libraries/libjaylink/default.nix2
-rw-r--r--pkgs/development/libraries/libjpeg-turbo/default.nix2
-rw-r--r--pkgs/development/libraries/libjpeg/default.nix2
-rw-r--r--pkgs/development/libraries/libjson/default.nix2
-rw-r--r--pkgs/development/libraries/libjxl/default.nix2
-rw-r--r--pkgs/development/libraries/libkate/default.nix2
-rw-r--r--pkgs/development/libraries/libkrun/default.nix8
-rw-r--r--pkgs/development/libraries/libkrunfw/default.nix2
-rw-r--r--pkgs/development/libraries/liblangtag/default.nix2
-rw-r--r--pkgs/development/libraries/libliftoff/default.nix2
-rw-r--r--pkgs/development/libraries/liblinear/default.nix2
-rw-r--r--pkgs/development/libraries/liblouis/default.nix4
-rw-r--r--pkgs/development/libraries/liblxi/default.nix13
-rw-r--r--pkgs/development/libraries/libmad/default.nix2
-rw-r--r--pkgs/development/libraries/libmanette/default.nix2
-rw-r--r--pkgs/development/libraries/libmatheval/default.nix2
-rw-r--r--pkgs/development/libraries/libmatroska/default.nix2
-rw-r--r--pkgs/development/libraries/libmd/default.nix2
-rw-r--r--pkgs/development/libraries/libmikmod/default.nix2
-rw-r--r--pkgs/development/libraries/libmowgli/default.nix2
-rw-r--r--pkgs/development/libraries/libmpeg2/default.nix2
-rw-r--r--pkgs/development/libraries/libmspack/default.nix2
-rw-r--r--pkgs/development/libraries/libmtp/default.nix2
-rw-r--r--pkgs/development/libraries/libmx/default.nix2
-rw-r--r--pkgs/development/libraries/libnabo/default.nix6
-rw-r--r--pkgs/development/libraries/libnatspec/default.nix2
-rw-r--r--pkgs/development/libraries/libnbd/default.nix15
-rw-r--r--pkgs/development/libraries/libnbd/libnbd-metadata3
-rw-r--r--pkgs/development/libraries/libnftnl/default.nix2
-rw-r--r--pkgs/development/libraries/libngspice/default.nix2
-rw-r--r--pkgs/development/libraries/libnotify/default.nix2
-rw-r--r--pkgs/development/libraries/libnut/default.nix2
-rw-r--r--pkgs/development/libraries/libodfgen/default.nix2
-rw-r--r--pkgs/development/libraries/liboggz/default.nix2
-rw-r--r--pkgs/development/libraries/liboil/default.nix2
-rw-r--r--pkgs/development/libraries/libomxil-bellagio/default.nix2
-rw-r--r--pkgs/development/libraries/libopenshot-audio/default.nix1
-rw-r--r--pkgs/development/libraries/libowfat/default.nix2
-rw-r--r--pkgs/development/libraries/libpar2/default.nix2
-rw-r--r--pkgs/development/libraries/libpeas/2.x.nix2
-rw-r--r--pkgs/development/libraries/libpeas/default.nix2
-rw-r--r--pkgs/development/libraries/libphonenumber/default.nix50
-rw-r--r--pkgs/development/libraries/libplacebo/default.nix9
-rw-r--r--pkgs/development/libraries/libplctag/default.nix4
-rw-r--r--pkgs/development/libraries/libplist/default.nix2
-rw-r--r--pkgs/development/libraries/libpng/12.nix2
-rw-r--r--pkgs/development/libraries/libpng/default.nix8
-rw-r--r--pkgs/development/libraries/libpointmatcher/default.nix2
-rw-r--r--pkgs/development/libraries/libpostal/default.nix2
-rw-r--r--pkgs/development/libraries/libpqxx/6.nix2
-rw-r--r--pkgs/development/libraries/libpqxx/default.nix2
-rw-r--r--pkgs/development/libraries/libproxy/default.nix2
-rw-r--r--pkgs/development/libraries/libpst/default.nix2
-rw-r--r--pkgs/development/libraries/libqalculate/default.nix2
-rw-r--r--pkgs/development/libraries/libqb/default.nix2
-rw-r--r--pkgs/development/libraries/libqtav/default.nix2
-rw-r--r--pkgs/development/libraries/libquotient/default.nix2
-rw-r--r--pkgs/development/libraries/libr3/default.nix2
-rw-r--r--pkgs/development/libraries/libraqm/default.nix2
-rw-r--r--pkgs/development/libraries/libraspberrypi/default.nix1
-rw-r--r--pkgs/development/libraries/librdf/raptor.nix2
-rw-r--r--pkgs/development/libraries/librdf/raptor2.nix2
-rw-r--r--pkgs/development/libraries/libre/default.nix4
-rw-r--r--pkgs/development/libraries/librealsense/default.nix2
-rw-r--r--pkgs/development/libraries/librecast/default.nix2
-rw-r--r--pkgs/development/libraries/librelp/default.nix2
-rw-r--r--pkgs/development/libraries/librem/default.nix4
-rw-r--r--pkgs/development/libraries/libremidi/default.nix2
-rw-r--r--pkgs/development/libraries/libresample/default.nix2
-rw-r--r--pkgs/development/libraries/librevenge/default.nix2
-rw-r--r--pkgs/development/libraries/librist/default.nix2
-rw-r--r--pkgs/development/libraries/librsvg/default.nix17
-rw-r--r--pkgs/development/libraries/libs3/default.nix2
-rw-r--r--pkgs/development/libraries/libsass/default.nix2
-rw-r--r--pkgs/development/libraries/libschrift/default.nix4
-rw-r--r--pkgs/development/libraries/libsearpc/default.nix2
-rw-r--r--pkgs/development/libraries/libsecret/default.nix2
-rw-r--r--pkgs/development/libraries/libserdes/default.nix2
-rw-r--r--pkgs/development/libraries/libshumate/default.nix21
-rw-r--r--pkgs/development/libraries/libsidplayfp/default.nix6
-rw-r--r--pkgs/development/libraries/libsieve/default.nix2
-rw-r--r--pkgs/development/libraries/libsigcxx/3.0.nix2
-rw-r--r--pkgs/development/libraries/libsigcxx/default.nix2
-rw-r--r--pkgs/development/libraries/libsignon-glib/default.nix2
-rw-r--r--pkgs/development/libraries/libsixel/default.nix2
-rw-r--r--pkgs/development/libraries/libskk/default.nix2
-rw-r--r--pkgs/development/libraries/libsmi/default.nix2
-rw-r--r--pkgs/development/libraries/libsndfile/default.nix2
-rw-r--r--pkgs/development/libraries/libsodium/default.nix18
-rw-r--r--pkgs/development/libraries/libsolv/default.nix2
-rw-r--r--pkgs/development/libraries/libspiro/default.nix2
-rw-r--r--pkgs/development/libraries/libsrs2/default.nix2
-rw-r--r--pkgs/development/libraries/libssh2/default.nix8
-rw-r--r--pkgs/development/libraries/libstatgrab/default.nix2
-rw-r--r--pkgs/development/libraries/libstroke/default.nix2
-rw-r--r--pkgs/development/libraries/libsvm/default.nix2
-rw-r--r--pkgs/development/libraries/libtap/default.nix2
-rw-r--r--pkgs/development/libraries/libtasn1/default.nix2
-rw-r--r--pkgs/development/libraries/libthreadar/default.nix2
-rw-r--r--pkgs/development/libraries/libtickit/default.nix2
-rw-r--r--pkgs/development/libraries/libtiff/default.nix7
-rw-r--r--pkgs/development/libraries/libtiger/default.nix2
-rw-r--r--pkgs/development/libraries/libtomcrypt/default.nix2
-rw-r--r--pkgs/development/libraries/libtommath/default.nix2
-rw-r--r--pkgs/development/libraries/libtorrent-rasterbar/1.2.nix2
-rw-r--r--pkgs/development/libraries/libtorrent-rasterbar/default.nix2
-rw-r--r--pkgs/development/libraries/libu2f-host/default.nix2
-rw-r--r--pkgs/development/libraries/libu2f-server/default.nix2
-rw-r--r--pkgs/development/libraries/libuiohook/default.nix2
-rw-r--r--pkgs/development/libraries/libunarr/default.nix2
-rw-r--r--pkgs/development/libraries/libuninameslist/default.nix6
-rw-r--r--pkgs/development/libraries/libunique/3.x.nix2
-rw-r--r--pkgs/development/libraries/libunique/default.nix2
-rw-r--r--pkgs/development/libraries/libunity/default.nix2
-rw-r--r--pkgs/development/libraries/libunwind/default.nix4
-rw-r--r--pkgs/development/libraries/libusb1/default.nix1
-rw-r--r--pkgs/development/libraries/libusbmuxd/default.nix2
-rw-r--r--pkgs/development/libraries/libuv/default.nix2
-rw-r--r--pkgs/development/libraries/libva/default.nix2
-rw-r--r--pkgs/development/libraries/libva/utils.nix2
-rw-r--r--pkgs/development/libraries/libvgm/default.nix6
-rw-r--r--pkgs/development/libraries/libviperfx/default.nix2
-rw-r--r--pkgs/development/libraries/libvirt/default.nix2
-rw-r--r--pkgs/development/libraries/libvisio/default.nix2
-rw-r--r--pkgs/development/libraries/libvisual/default.nix2
-rw-r--r--pkgs/development/libraries/libvmi/default.nix2
-rw-r--r--pkgs/development/libraries/libvncserver/default.nix1
-rw-r--r--pkgs/development/libraries/libvpx/default.nix18
-rw-r--r--pkgs/development/libraries/libwbxml/default.nix6
-rw-r--r--pkgs/development/libraries/libwnck/2.nix2
-rw-r--r--pkgs/development/libraries/libwpd/default.nix2
-rw-r--r--pkgs/development/libraries/libwpe/default.nix3
-rw-r--r--pkgs/development/libraries/libwpe/fdo.nix3
-rw-r--r--pkgs/development/libraries/libxcrypt/default.nix6
-rw-r--r--pkgs/development/libraries/libxkbcommon/default.nix2
-rw-r--r--pkgs/development/libraries/libxl/default.nix2
-rw-r--r--pkgs/development/libraries/libxmi/default.nix2
-rw-r--r--pkgs/development/libraries/libxml2/default.nix11
-rw-r--r--pkgs/development/libraries/libxmlb/default.nix2
-rw-r--r--pkgs/development/libraries/libxslt/default.nix2
-rw-r--r--pkgs/development/libraries/libyaml/default.nix2
-rw-r--r--pkgs/development/libraries/libykneomgr/default.nix2
-rw-r--r--pkgs/development/libraries/libz/default.nix2
-rw-r--r--pkgs/development/libraries/libzdb/default.nix2
-rw-r--r--pkgs/development/libraries/libzip/default.nix2
-rw-r--r--pkgs/development/libraries/libzmf/default.nix2
-rw-r--r--pkgs/development/libraries/lime/default.nix2
-rw-r--r--pkgs/development/libraries/linenoise-ng/default.nix2
-rw-r--r--pkgs/development/libraries/linenoise/default.nix2
-rw-r--r--pkgs/development/libraries/lmdb/default.nix4
-rw-r--r--pkgs/development/libraries/log4cplus/default.nix2
-rw-r--r--pkgs/development/libraries/log4cpp/default.nix2
-rw-r--r--pkgs/development/libraries/log4cxx/default.nix2
-rw-r--r--pkgs/development/libraries/log4shib/default.nix2
-rw-r--r--pkgs/development/libraries/loki/default.nix2
-rw-r--r--pkgs/development/libraries/loudmouth/default.nix2
-rw-r--r--pkgs/development/libraries/luabind/default.nix2
-rw-r--r--pkgs/development/libraries/luabridge/default.nix2
-rw-r--r--pkgs/development/libraries/lyra/default.nix2
-rw-r--r--pkgs/development/libraries/lzo/default.nix4
-rw-r--r--pkgs/development/libraries/mailcore2/default.nix2
-rw-r--r--pkgs/development/libraries/malcontent/default.nix1
-rw-r--r--pkgs/development/libraries/mapnik/datasource-ogr-test-should-fail.patch13
-rw-r--r--pkgs/development/libraries/mapnik/default.nix35
-rw-r--r--pkgs/development/libraries/mapnik/use-sparsehash-package.patch19
-rw-r--r--pkgs/development/libraries/marl/default.nix2
-rw-r--r--pkgs/development/libraries/mathgl/default.nix2
-rw-r--r--pkgs/development/libraries/matio/default.nix6
-rw-r--r--pkgs/development/libraries/matrix-sdk-crypto-nodejs/generic.nix2
-rw-r--r--pkgs/development/libraries/mdds/default.nix2
-rw-r--r--pkgs/development/libraries/medfile/default.nix40
-rw-r--r--pkgs/development/libraries/medfile/hdf5-1.14.patch86
-rw-r--r--pkgs/development/libraries/mediastreamer/default.nix2
-rw-r--r--pkgs/development/libraries/mediastreamer/msopenh264.nix3
-rw-r--r--pkgs/development/libraries/mesa/darwin.patch17
-rw-r--r--pkgs/development/libraries/mesa/default.nix68
-rw-r--r--pkgs/development/libraries/mimalloc/default.nix4
-rw-r--r--pkgs/development/libraries/minilibx/default.nix2
-rw-r--r--pkgs/development/libraries/minixml/default.nix2
-rw-r--r--pkgs/development/libraries/minizip-ng/default.nix1
-rw-r--r--pkgs/development/libraries/minizip/default.nix2
-rw-r--r--pkgs/development/libraries/mitama-cpp-result/default.nix2
-rw-r--r--pkgs/development/libraries/mlib/default.nix4
-rw-r--r--pkgs/development/libraries/mongoc/default.nix6
-rw-r--r--pkgs/development/libraries/mongocxx/default.nix2
-rw-r--r--pkgs/development/libraries/mono-addins/default.nix2
-rw-r--r--pkgs/development/libraries/monocypher/default.nix2
-rw-r--r--pkgs/development/libraries/motif/default.nix26
-rw-r--r--pkgs/development/libraries/mpdecimal/default.nix4
-rw-r--r--pkgs/development/libraries/mpfi/default.nix2
-rw-r--r--pkgs/development/libraries/mpich/default.nix8
-rw-r--r--pkgs/development/libraries/mpir/default.nix2
-rw-r--r--pkgs/development/libraries/mps/default.nix2
-rw-r--r--pkgs/development/libraries/msgpuck/default.nix2
-rw-r--r--pkgs/development/libraries/mtxclient/default.nix7
-rw-r--r--pkgs/development/libraries/muparserx/default.nix2
-rw-r--r--pkgs/development/libraries/mutest/default.nix2
-rw-r--r--pkgs/development/libraries/mvfst/default.nix2
-rw-r--r--pkgs/development/libraries/nanopb/test-message-with-annotations/default.nix7
-rw-r--r--pkgs/development/libraries/nanopb/test-message-with-options/default.nix10
-rw-r--r--pkgs/development/libraries/nanopb/test-simple-proto2/default.nix7
-rw-r--r--pkgs/development/libraries/nanopb/test-simple-proto3/default.nix8
-rw-r--r--pkgs/development/libraries/ncurses/default.nix19
-rw-r--r--pkgs/development/libraries/ndn-cxx/default.nix2
-rw-r--r--pkgs/development/libraries/ndpi/default.nix2
-rw-r--r--pkgs/development/libraries/neatvnc/default.nix2
-rw-r--r--pkgs/development/libraries/neon/default.nix2
-rw-r--r--pkgs/development/libraries/nghttp2/default.nix6
-rw-r--r--pkgs/development/libraries/nghttp3/default.nix6
-rw-r--r--pkgs/development/libraries/ngtcp2/default.nix6
-rw-r--r--pkgs/development/libraries/ngtcp2/gnutls.nix6
-rw-r--r--pkgs/development/libraries/npapi-sdk/default.nix2
-rw-r--r--pkgs/development/libraries/npth/default.nix2
-rw-r--r--pkgs/development/libraries/nspr/default.nix2
-rw-r--r--pkgs/development/libraries/nss/generic.nix2
-rw-r--r--pkgs/development/libraries/nss/latest.nix4
-rw-r--r--pkgs/development/libraries/nss_wrapper/default.nix2
-rw-r--r--pkgs/development/libraries/ntbtls/default.nix2
-rw-r--r--pkgs/development/libraries/ntirpc/default.nix4
-rw-r--r--pkgs/development/libraries/ntl/default.nix2
-rw-r--r--pkgs/development/libraries/numcpp/default.nix2
-rw-r--r--pkgs/development/libraries/nvidia-vaapi-driver/default.nix2
-rw-r--r--pkgs/development/libraries/octomap/default.nix2
-rw-r--r--pkgs/development/libraries/ogre/default.nix4
-rw-r--r--pkgs/development/libraries/oneDNN/default.nix4
-rw-r--r--pkgs/development/libraries/openbabel/2.nix2
-rw-r--r--pkgs/development/libraries/openbabel/default.nix2
-rw-r--r--pkgs/development/libraries/openbsm/default.nix2
-rw-r--r--pkgs/development/libraries/opencascade-occt/default.nix1
-rw-r--r--pkgs/development/libraries/opencl-clang/default.nix2
-rw-r--r--pkgs/development/libraries/opencollada/default.nix2
-rw-r--r--pkgs/development/libraries/opencolorio/1.x.nix2
-rw-r--r--pkgs/development/libraries/opencolorio/default.nix2
-rw-r--r--pkgs/development/libraries/opencv/3.x.nix5
-rw-r--r--pkgs/development/libraries/opencv/4.x.nix11
-rw-r--r--pkgs/development/libraries/opendht/default.nix2
-rw-r--r--pkgs/development/libraries/opendmarc/default.nix2
-rw-r--r--pkgs/development/libraries/openexr/3.nix2
-rw-r--r--pkgs/development/libraries/openexr/default.nix2
-rw-r--r--pkgs/development/libraries/openfec/default.nix7
-rw-r--r--pkgs/development/libraries/openimageio/default.nix2
-rw-r--r--pkgs/development/libraries/openldap/default.nix2
-rw-r--r--pkgs/development/libraries/openpam/default.nix2
-rw-r--r--pkgs/development/libraries/opensaml-cpp/default.nix2
-rw-r--r--pkgs/development/libraries/openscenegraph/default.nix2
-rw-r--r--pkgs/development/libraries/openslide/default.nix2
-rw-r--r--pkgs/development/libraries/openslp/default.nix2
-rw-r--r--pkgs/development/libraries/openssl/default.nix2
-rw-r--r--pkgs/development/libraries/opensubdiv/default.nix2
-rw-r--r--pkgs/development/libraries/openvdb/default.nix2
-rw-r--r--pkgs/development/libraries/openvino/default.nix24
-rw-r--r--pkgs/development/libraries/openxr-loader/default.nix4
-rw-r--r--pkgs/development/libraries/openzwave/default.nix21
-rw-r--r--pkgs/development/libraries/ortp/default.nix2
-rw-r--r--pkgs/development/libraries/osip/default.nix2
-rw-r--r--pkgs/development/libraries/packr/default.nix4
-rw-r--r--pkgs/development/libraries/pango/default.nix2
-rw-r--r--pkgs/development/libraries/pangolin/default.nix2
-rw-r--r--pkgs/development/libraries/pcg-c/default.nix2
-rw-r--r--pkgs/development/libraries/pcmsolver/default.nix2
-rw-r--r--pkgs/development/libraries/pcre/default.nix2
-rw-r--r--pkgs/development/libraries/pcre2/default.nix3
-rw-r--r--pkgs/development/libraries/pdal/default.nix10
-rw-r--r--pkgs/development/libraries/pdfhummus/default.nix6
-rw-r--r--pkgs/development/libraries/pe-parse/default.nix6
-rw-r--r--pkgs/development/libraries/physics/apfel/default.nix2
-rw-r--r--pkgs/development/libraries/physics/applgrid/default.nix2
-rw-r--r--pkgs/development/libraries/physics/fastjet/default.nix2
-rw-r--r--pkgs/development/libraries/physics/geant4/default.nix4
-rw-r--r--pkgs/development/libraries/physics/hepmc2/default.nix2
-rw-r--r--pkgs/development/libraries/physics/hepmc3/default.nix3
-rw-r--r--pkgs/development/libraries/physics/herwig/default.nix2
-rw-r--r--pkgs/development/libraries/physics/lhapdf/default.nix2
-rw-r--r--pkgs/development/libraries/physics/mela/default.nix2
-rw-r--r--pkgs/development/libraries/physics/pythia/default.nix2
-rw-r--r--pkgs/development/libraries/physics/qcdnum/default.nix2
-rw-r--r--pkgs/development/libraries/physics/rivet/default.nix4
-rw-r--r--pkgs/development/libraries/pinocchio/default.nix14
-rw-r--r--pkgs/development/libraries/pipewire/default.nix4
-rw-r--r--pkgs/development/libraries/pipewire/wireplumber.nix6
-rw-r--r--pkgs/development/libraries/pixman/default.nix2
-rw-r--r--pkgs/development/libraries/plasma-wayland-protocols/default.nix4
-rw-r--r--pkgs/development/libraries/platform-folders/default.nix2
-rw-r--r--pkgs/development/libraries/plib/default.nix2
-rw-r--r--pkgs/development/libraries/podofo/0.10.x.nix2
-rw-r--r--pkgs/development/libraries/podofo/default.nix2
-rw-r--r--pkgs/development/libraries/polkit-qt-1/default.nix2
-rw-r--r--pkgs/development/libraries/polkit/default.nix8
-rw-r--r--pkgs/development/libraries/polkit/elogind.patch66
-rw-r--r--pkgs/development/libraries/poppler/default.nix2
-rw-r--r--pkgs/development/libraries/popt/default.nix3
-rw-r--r--pkgs/development/libraries/ppl/default.nix2
-rw-r--r--pkgs/development/libraries/precice/default.nix17
-rw-r--r--pkgs/development/libraries/presage/default.nix2
-rw-r--r--pkgs/development/libraries/process-cpp/default.nix50
-rw-r--r--pkgs/development/libraries/proj/default.nix5
-rw-r--r--pkgs/development/libraries/prometheus-client-c/default.nix4
-rw-r--r--pkgs/development/libraries/properties-cpp/default.nix2
-rw-r--r--pkgs/development/libraries/protobuf/27.nix6
-rw-r--r--pkgs/development/libraries/protobufc/default.nix8
-rw-r--r--pkgs/development/libraries/prototypejs/default.nix2
-rw-r--r--pkgs/development/libraries/pslib/default.nix2
-rw-r--r--pkgs/development/libraries/pth/default.nix2
-rw-r--r--pkgs/development/libraries/pupnp/default.nix2
-rw-r--r--pkgs/development/libraries/pyotherside/default.nix4
-rw-r--r--pkgs/development/libraries/pystring/default.nix2
-rw-r--r--pkgs/development/libraries/python-qt/default.nix1
-rw-r--r--pkgs/development/libraries/qmlbox2d/default.nix2
-rw-r--r--pkgs/development/libraries/qmltermwidget/default.nix2
-rw-r--r--pkgs/development/libraries/qpdf/default.nix2
-rw-r--r--pkgs/development/libraries/qscintilla/default.nix2
-rw-r--r--pkgs/development/libraries/qt-5/5.15/default.nix33
-rw-r--r--pkgs/development/libraries/qt-5/5.15/qtwebengine-ninja-1.12.patch11
-rw-r--r--pkgs/development/libraries/qt-5/5.15/srcs-generated.json160
-rw-r--r--pkgs/development/libraries/qt-5/5.15/srcs.nix16
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtbase.nix2
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtlocation.nix1
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtwayland.nix3
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtwebengine.nix24
-rw-r--r--pkgs/development/libraries/qt-5/qtModule.nix2
-rw-r--r--pkgs/development/libraries/qt-6/default.nix1
-rw-r--r--pkgs/development/libraries/qt-6/modules/qtbase.nix2
-rw-r--r--pkgs/development/libraries/qt-6/modules/qtwebengine.nix2
-rw-r--r--pkgs/development/libraries/qt-6/qtModule.nix2
-rw-r--r--pkgs/development/libraries/qtstyleplugin-kvantum/default.nix4
-rw-r--r--pkgs/development/libraries/qtutilities/default.nix4
-rw-r--r--pkgs/development/libraries/quantlib/default.nix2
-rw-r--r--pkgs/development/libraries/quarto/default.nix4
-rw-r--r--pkgs/development/libraries/quesoglc/default.nix2
-rw-r--r--pkgs/development/libraries/quickflux/default.nix2
-rw-r--r--pkgs/development/libraries/qxmpp/default.nix4
-rw-r--r--pkgs/development/libraries/rabbitmq-c/default.nix11
-rw-r--r--pkgs/development/libraries/range-v3/default.nix2
-rw-r--r--pkgs/development/libraries/rapidcheck/default.nix2
-rw-r--r--pkgs/development/libraries/rapidyaml/default.nix2
-rw-r--r--pkgs/development/libraries/raylib/default.nix2
-rw-r--r--pkgs/development/libraries/rdkafka/default.nix4
-rw-r--r--pkgs/development/libraries/re2/default.nix2
-rw-r--r--pkgs/development/libraries/readline/8.2.nix2
-rw-r--r--pkgs/development/libraries/readosm/default.nix2
-rw-r--r--pkgs/development/libraries/reproc/default.nix2
-rw-r--r--pkgs/development/libraries/resolv_wrapper/default.nix2
-rw-r--r--pkgs/development/libraries/retro-gtk/default.nix2
-rw-r--r--pkgs/development/libraries/rlog/default.nix2
-rw-r--r--pkgs/development/libraries/rlottie/default.nix2
-rw-r--r--pkgs/development/libraries/rnnoise-plugin/default.nix6
-rw-r--r--pkgs/development/libraries/rocksdb/default.nix7
-rw-r--r--pkgs/development/libraries/rtrlib/default.nix2
-rw-r--r--pkgs/development/libraries/rubberband/default.nix4
-rw-r--r--pkgs/development/libraries/rure/default.nix2
-rw-r--r--pkgs/development/libraries/s2n-tls/default.nix4
-rw-r--r--pkgs/development/libraries/schroedinger/default.nix2
-rw-r--r--pkgs/development/libraries/science/astronomy/indilib/default.nix4
-rw-r--r--pkgs/development/libraries/science/astronomy/indilib/indi-full.nix2
-rw-r--r--pkgs/development/libraries/science/biology/htslib/default.nix2
-rw-r--r--pkgs/development/libraries/science/chemistry/harminv/default.nix8
-rw-r--r--pkgs/development/libraries/science/chemistry/mmtf-cpp/default.nix2
-rw-r--r--pkgs/development/libraries/science/chemistry/mstore/default.nix4
-rw-r--r--pkgs/development/libraries/science/chemistry/plumed/default.nix4
-rw-r--r--pkgs/development/libraries/science/chemistry/xcfun/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/QuadProgpp/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/bonmin/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/cholmod-extra/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/clblas/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/clblast/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/ecos/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/faiss/default.nix19
-rw-r--r--pkgs/development/libraries/science/math/ipopt/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/lcalc/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/libamplsolver/default.nix4
-rw-r--r--pkgs/development/libraries/science/math/libtorch/test/default.nix8
-rw-r--r--pkgs/development/libraries/science/math/openspecfun/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/or-tools/default.nix3
-rw-r--r--pkgs/development/libraries/science/math/osi/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/osqp/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/parmetis/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/planarity/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix4
-rw-r--r--pkgs/development/libraries/science/math/suitesparse/4.2.nix2
-rw-r--r--pkgs/development/libraries/science/math/suitesparse/4.4.nix2
-rw-r--r--pkgs/development/libraries/science/math/suitesparse/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/superlu/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/sympow/clean-extra-logfile-output-from-pari.patch6
-rw-r--r--pkgs/development/libraries/science/math/sympow/default.nix41
-rw-r--r--pkgs/development/libraries/science/math/tensorflow-lite/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/zn_poly/default.nix1
-rw-r--r--pkgs/development/libraries/science/networking/ns-3/default.nix5
-rw-r--r--pkgs/development/libraries/science/robotics/edgetpu-compiler/default.nix2
-rw-r--r--pkgs/development/libraries/scope-lite/default.nix2
-rw-r--r--pkgs/development/libraries/scriptaculous/default.nix2
-rw-r--r--pkgs/development/libraries/sentry-native/default.nix4
-rw-r--r--pkgs/development/libraries/serd/default.nix2
-rw-r--r--pkgs/development/libraries/shhmsg/default.nix2
-rw-r--r--pkgs/development/libraries/shhopt/default.nix2
-rw-r--r--pkgs/development/libraries/sigslot/default.nix2
-rw-r--r--pkgs/development/libraries/silgraphite/graphite2.nix2
-rw-r--r--pkgs/development/libraries/simdjson/default.nix4
-rw-r--r--pkgs/development/libraries/slang/default.nix2
-rw-r--r--pkgs/development/libraries/slib/default.nix2
-rw-r--r--pkgs/development/libraries/smooth/default.nix2
-rw-r--r--pkgs/development/libraries/snap7/default.nix2
-rw-r--r--pkgs/development/libraries/soci/bc-soci.nix2
-rw-r--r--pkgs/development/libraries/socket_wrapper/default.nix2
-rw-r--r--pkgs/development/libraries/sope/default.nix2
-rw-r--r--pkgs/development/libraries/sord/default.nix2
-rw-r--r--pkgs/development/libraries/soundtouch/default.nix2
-rw-r--r--pkgs/development/libraries/soxt/default.nix2
-rw-r--r--pkgs/development/libraries/span-lite/default.nix2
-rw-r--r--pkgs/development/libraries/spandsp/3.nix9
-rw-r--r--pkgs/development/libraries/spandsp/common.nix2
-rw-r--r--pkgs/development/libraries/spandsp/default.nix9
-rw-r--r--pkgs/development/libraries/sparsehash/default.nix2
-rw-r--r--pkgs/development/libraries/spdk/0001-fix-setuptools-installation.patch29
-rw-r--r--pkgs/development/libraries/spdk/default.nix20
-rw-r--r--pkgs/development/libraries/spdk/setuptools.patch25
-rw-r--r--pkgs/development/libraries/spectra/default.nix2
-rw-r--r--pkgs/development/libraries/speex/default.nix2
-rw-r--r--pkgs/development/libraries/speexdsp/default.nix2
-rw-r--r--pkgs/development/libraries/sqlcipher/default.nix4
-rw-r--r--pkgs/development/libraries/sqlite/default.nix4
-rw-r--r--pkgs/development/libraries/sqlite/tools.nix4
-rw-r--r--pkgs/development/libraries/sregex/default.nix2
-rw-r--r--pkgs/development/libraries/stfl/default.nix2
-rw-r--r--pkgs/development/libraries/stxxl/default.nix2
-rw-r--r--pkgs/development/libraries/subunit/default.nix2
-rw-r--r--pkgs/development/libraries/swiften/default.nix2
-rw-r--r--pkgs/development/libraries/symengine/default.nix6
-rw-r--r--pkgs/development/libraries/t1lib/default.nix2
-rw-r--r--pkgs/development/libraries/tachyon/default.nix2
-rw-r--r--pkgs/development/libraries/taglib/default.nix2
-rw-r--r--pkgs/development/libraries/talloc/default.nix4
-rw-r--r--pkgs/development/libraries/tbb/2020_3.nix4
-rw-r--r--pkgs/development/libraries/tbb/2021_5.nix71
-rw-r--r--pkgs/development/libraries/tbb/default.nix3
-rw-r--r--pkgs/development/libraries/tbb/gcc13-fixes-2021.5.0.patch13
-rw-r--r--pkgs/development/libraries/tbox/default.nix2
-rw-r--r--pkgs/development/libraries/tcltls/default.nix2
-rw-r--r--pkgs/development/libraries/tdb/default.nix6
-rw-r--r--pkgs/development/libraries/tdlib/default.nix6
-rw-r--r--pkgs/development/libraries/template-glib/default.nix2
-rw-r--r--pkgs/development/libraries/tevent/default.nix6
-rw-r--r--pkgs/development/libraries/theft/default.nix2
-rw-r--r--pkgs/development/libraries/ti-rpc/default.nix2
-rw-r--r--pkgs/development/libraries/tidyp/default.nix2
-rw-r--r--pkgs/development/libraries/timezonemap/default.nix2
-rw-r--r--pkgs/development/libraries/tix/default.nix2
-rw-r--r--pkgs/development/libraries/tk/8.6.nix1
-rw-r--r--pkgs/development/libraries/tk/generic.nix2
-rw-r--r--pkgs/development/libraries/tkimg/default.nix2
-rw-r--r--pkgs/development/libraries/tkrzw/default.nix6
-rw-r--r--pkgs/development/libraries/toml-f/default.nix3
-rw-r--r--pkgs/development/libraries/tpm2-tss/default.nix4
-rw-r--r--pkgs/development/libraries/tweeny/default.nix2
-rw-r--r--pkgs/development/libraries/twolame/default.nix2
-rw-r--r--pkgs/development/libraries/ucx/default.nix4
-rw-r--r--pkgs/development/libraries/udunits/default.nix2
-rw-r--r--pkgs/development/libraries/uid_wrapper/default.nix2
-rw-r--r--pkgs/development/libraries/umockdev/default.nix5
-rw-r--r--pkgs/development/libraries/unibilium/default.nix2
-rw-r--r--pkgs/development/libraries/updfparser/default.nix2
-rw-r--r--pkgs/development/libraries/urdfdom-headers/default.nix8
-rw-r--r--pkgs/development/libraries/urdfdom/default.nix13
-rw-r--r--pkgs/development/libraries/usrsctp/default.nix2
-rw-r--r--pkgs/development/libraries/utf8proc/default.nix2
-rw-r--r--pkgs/development/libraries/uthash/default.nix2
-rw-r--r--pkgs/development/libraries/uthenticode/default.nix2
-rw-r--r--pkgs/development/libraries/v8/default.nix3
-rw-r--r--pkgs/development/libraries/vapoursynth-mvtools/default.nix2
-rw-r--r--pkgs/development/libraries/vapoursynth/default.nix2
-rw-r--r--pkgs/development/libraries/vc/default.nix4
-rw-r--r--pkgs/development/libraries/vectorscan/default.nix2
-rw-r--r--pkgs/development/libraries/virglrenderer/default.nix2
-rw-r--r--pkgs/development/libraries/virtualpg/default.nix5
-rw-r--r--pkgs/development/libraries/vkd3d/default.nix26
-rw-r--r--pkgs/development/libraries/vmmlib/default.nix2
-rw-r--r--pkgs/development/libraries/volk/2.5.0.nix2
-rw-r--r--pkgs/development/libraries/volk/default.nix2
-rw-r--r--pkgs/development/libraries/volume-key/default.nix2
-rw-r--r--pkgs/development/libraries/vrb/default.nix2
-rw-r--r--pkgs/development/libraries/vte/default.nix6
-rw-r--r--pkgs/development/libraries/vulkan-utility-libraries/default.nix2
-rw-r--r--pkgs/development/libraries/waffle/default.nix2
-rw-r--r--pkgs/development/libraries/wangle/default.nix2
-rw-r--r--pkgs/development/libraries/wapp/default.nix2
-rw-r--r--pkgs/development/libraries/waylib/default.nix2
-rw-r--r--pkgs/development/libraries/webkitgtk/default.nix7
-rw-r--r--pkgs/development/libraries/webp-pixbuf-loader/default.nix3
-rw-r--r--pkgs/development/libraries/webrtc-audio-processing/0.3.nix2
-rw-r--r--pkgs/development/libraries/webrtc-audio-processing/default.nix2
-rw-r--r--pkgs/development/libraries/wlroots/default.nix2
-rw-r--r--pkgs/development/libraries/wolfssl/default.nix2
-rw-r--r--pkgs/development/libraries/wxSVG/default.nix6
-rw-r--r--pkgs/development/libraries/wxsqlite3/default.nix6
-rw-r--r--pkgs/development/libraries/wxsqliteplus/default.nix2
-rw-r--r--pkgs/development/libraries/wxwidgets/wxGTK31.nix2
-rw-r--r--pkgs/development/libraries/wxwidgets/wxGTK32.nix14
-rw-r--r--pkgs/development/libraries/xalanc/default.nix2
-rw-r--r--pkgs/development/libraries/xcb-imdkit/default.nix4
-rw-r--r--pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix12
-rw-r--r--pkgs/development/libraries/xdg-desktop-portal-xapp/default.nix6
-rw-r--r--pkgs/development/libraries/xgboost/default.nix34
-rw-r--r--pkgs/development/libraries/xmlrpc-c/default.nix2
-rw-r--r--pkgs/development/libraries/xsd/default.nix2
-rw-r--r--pkgs/development/libraries/xsimd/default.nix36
-rw-r--r--pkgs/development/libraries/xsimd/disable-exp10-test.patch36
-rw-r--r--pkgs/development/libraries/xsimd/disable-polar-test.patch38
-rw-r--r--pkgs/development/libraries/xsimd/disable-test_error_gamma.patch (renamed from pkgs/development/libraries/xsimd/disable-test_error_gamma-test.patch)12
-rw-r--r--pkgs/development/libraries/xsimd/fix-atan-test.patch19
-rw-r--r--pkgs/development/libraries/xsimd/fix-darwin-exp10-implementation.patch22
-rw-r--r--pkgs/development/libraries/xtensor/default.nix31
-rw-r--r--pkgs/development/libraries/xtensor/remove-failing-test_xinfo.patch12
-rw-r--r--pkgs/development/libraries/yaml-cpp/0.3.0.nix2
-rw-r--r--pkgs/development/libraries/yaml-cpp/default.nix2
-rw-r--r--pkgs/development/libraries/yojimbo/default.nix2
-rw-r--r--pkgs/development/libraries/yyjson/default.nix2
-rw-r--r--pkgs/development/libraries/zeitgeist/default.nix2
-rw-r--r--pkgs/development/libraries/zeroc-ice/default.nix2
-rw-r--r--pkgs/development/libraries/zeromq/4.x.nix2
-rw-r--r--pkgs/development/libraries/zint/default.nix2
-rw-r--r--pkgs/development/libraries/zxcvbn-c/default.nix2
-rw-r--r--pkgs/development/libraries/zziplib/default.nix1
-rw-r--r--pkgs/development/lisp-modules/asdf/3.3.nix10
-rw-r--r--pkgs/development/lisp-modules/import/hydra.lisp1
-rw-r--r--pkgs/development/lisp-modules/nix-cl.nix4
-rw-r--r--pkgs/development/lisp-modules/packages.nix75
-rw-r--r--pkgs/development/lua-modules/generated-packages.nix115
-rw-r--r--pkgs/development/lua-modules/overrides.nix94
-rw-r--r--pkgs/development/misc/avr/libc/default.nix9
-rw-r--r--pkgs/development/misc/breakpad/default.nix2
-rw-r--r--pkgs/development/misc/brev-cli/default.nix4
-rw-r--r--pkgs/development/misc/cppreference-doc/default.nix4
-rw-r--r--pkgs/development/misc/haskell/changelog-d/default.nix21
-rw-r--r--pkgs/development/misc/haskell/hasura/graphql-parser.nix2
-rw-r--r--pkgs/development/misc/haskell/hasura/pool.nix2
-rw-r--r--pkgs/development/misc/msp430/mspdebug.nix2
-rw-r--r--pkgs/development/misc/newlib/default.nix2
-rw-r--r--pkgs/development/misc/or1k/newlib.nix4
-rw-r--r--pkgs/development/misc/rappel/default.nix2
-rw-r--r--pkgs/development/misc/resholve/deps.nix4
-rw-r--r--pkgs/development/misc/resholve/test.nix1
-rw-r--r--pkgs/development/misc/umr/default.nix2
-rw-r--r--pkgs/development/misc/vc4/newlib.nix4
-rw-r--r--pkgs/development/mobile/adb-sync/default.nix2
-rw-r--r--pkgs/development/mobile/androidenv/README.md2
-rw-r--r--pkgs/development/mobile/androidenv/compose-android-packages.nix4
-rw-r--r--pkgs/development/mobile/androidenv/default.nix8
-rw-r--r--pkgs/development/mobile/androidenv/ndk-bundle/default.nix6
-rw-r--r--pkgs/development/mobile/genymotion/default.nix4
-rw-r--r--pkgs/development/mobile/gomobile/default.nix2
-rw-r--r--pkgs/development/mobile/ios-webkit-debug-proxy/default.nix2
-rw-r--r--pkgs/development/node-packages/aliases.nix16
-rw-r--r--pkgs/development/node-packages/main-programs.nix2
-rw-r--r--pkgs/development/node-packages/node-env.nix11
-rw-r--r--pkgs/development/node-packages/node-packages.json17
-rw-r--r--pkgs/development/node-packages/node-packages.nix21043
-rw-r--r--pkgs/development/node-packages/overrides.nix63
-rw-r--r--pkgs/development/ocaml-modules/alcotest/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/angstrom-async/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/angstrom-lwt-unix/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/angstrom-unix/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ansiterminal/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/apron/default.nix9
-rw-r--r--pkgs/development/ocaml-modules/asai/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/bap/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/bigarray-overlap/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/binning/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/bisect_ppx/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/bistro/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/bitv/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/brr/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/bytestring/default.nix45
-rw-r--r--pkgs/development/ocaml-modules/ca-certs-nss/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/calendar/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/camlpdf/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/camlzip/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/camomile/0.8.5.nix2
-rw-r--r--pkgs/development/ocaml-modules/camomile/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/cil/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/cmdliner/1_0.nix2
-rw-r--r--pkgs/development/ocaml-modules/cmdliner/1_1.nix6
-rw-r--r--pkgs/development/ocaml-modules/coin/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/colors/default.nix35
-rw-r--r--pkgs/development/ocaml-modules/conduit/async.nix2
-rw-r--r--pkgs/development/ocaml-modules/conduit/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/conduit/lwt-unix.nix2
-rw-r--r--pkgs/development/ocaml-modules/conduit/lwt.nix2
-rw-r--r--pkgs/development/ocaml-modules/conduit/mirage.nix2
-rw-r--r--pkgs/development/ocaml-modules/config-file/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/config/default.nix27
-rw-r--r--pkgs/development/ocaml-modules/containers/data.nix2
-rw-r--r--pkgs/development/ocaml-modules/containers/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/cooltt/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/cryptokit/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/csv/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/cudf/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/data-encoding/default.nix1
-rw-r--r--pkgs/development/ocaml-modules/dates_calc/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/directories/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/dns/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/dns/mirage.nix2
-rw-r--r--pkgs/development/ocaml-modules/dolmen/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/dolmen/loop.nix2
-rw-r--r--pkgs/development/ocaml-modules/dolmen/type.nix2
-rw-r--r--pkgs/development/ocaml-modules/domain-local-await/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/domain-local-timeout/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/domain_shims/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/dtoa/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/dune-site/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/easy-format/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/eio/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/eio/linux.nix2
-rw-r--r--pkgs/development/ocaml-modules/eio/main.nix2
-rw-r--r--pkgs/development/ocaml-modules/eio/posix.nix2
-rw-r--r--pkgs/development/ocaml-modules/ezjsonm-encoding/default.nix20
-rw-r--r--pkgs/development/ocaml-modules/ezjsonm/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/facile/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/farfadet/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/ffmpeg-av.nix2
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avcodec.nix2
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avdevice.nix2
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avfilter.nix2
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avutil.nix2
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swresample.nix2
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swscale.nix2
-rw-r--r--pkgs/development/ocaml-modules/fix/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/fpath/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/functoria/default.nix5
-rw-r--r--pkgs/development/ocaml-modules/functory/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/git/mirage.nix2
-rw-r--r--pkgs/development/ocaml-modules/git/paf.nix2
-rw-r--r--pkgs/development/ocaml-modules/git/unix.nix4
-rw-r--r--pkgs/development/ocaml-modules/gluon/default.nix42
-rw-r--r--pkgs/development/ocaml-modules/gluten/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/graphics/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/h2/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/hpack/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/httpaf/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/index/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/inifiles/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ipaddr/cstruct.nix2
-rw-r--r--pkgs/development/ocaml-modules/ipaddr/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ipaddr/sexp.nix2
-rw-r--r--pkgs/development/ocaml-modules/irmin/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/javalib/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/jsonm/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/junit/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/lablgtk-extras/1.4.nix2
-rw-r--r--pkgs/development/ocaml-modules/lablgtk-extras/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/lablgtk/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/landmarks-ppx/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/landmarks/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/lem/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/letsencrypt/app.nix2
-rw-r--r--pkgs/development/ocaml-modules/letsencrypt/dns.nix2
-rw-r--r--pkgs/development/ocaml-modules/libc/default.nix26
-rw-r--r--pkgs/development/ocaml-modules/linksem/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/lua-ml/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/lwd/nottui-pretty.nix2
-rw-r--r--pkgs/development/ocaml-modules/lwt-exit/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/lwt/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/macaddr/cstruct.nix2
-rw-r--r--pkgs/development/ocaml-modules/macaddr/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/macaddr/sexp.nix2
-rw-r--r--pkgs/development/ocaml-modules/magic-trace/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/markup/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/mccs/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/memprof-limits/default.nix26
-rw-r--r--pkgs/development/ocaml-modules/menhir/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/menhir/sdk.nix2
-rw-r--r--pkgs/development/ocaml-modules/mimic/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/mimic/happy-eyeballs.nix2
-rw-r--r--pkgs/development/ocaml-modules/minisat/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/minttea/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/mirage-crypto/rng.nix2
-rw-r--r--pkgs/development/ocaml-modules/mirage-logs/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/mirage/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/mirage/runtime.nix2
-rw-r--r--pkgs/development/ocaml-modules/morbig/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/mparser/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/mparser/pcre.nix2
-rw-r--r--pkgs/development/ocaml-modules/msat/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/note/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ocaml-monadic/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ocaml-protoc-plugin/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ocaml-protoc/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/ocamlnet/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ocp-ocamlres/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ocplib-simplex/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ocsigen-server/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/odoc/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/otoml/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ounit2/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/owee/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/owl/default.nix1
-rw-r--r--pkgs/development/ocaml-modules/paf/cohttp.nix2
-rw-r--r--pkgs/development/ocaml-modules/pcre/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/pgocaml/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/pgsolver/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/piaf/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/piqi-ocaml/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/plotkicadsch/default.nix3
-rw-r--r--pkgs/development/ocaml-modules/pprint/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ppx_bap/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ppx_cstubs/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/ppx_deriving/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ppx_deriving_protobuf/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ppx_deriving_yaml/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ppx_gen_rec/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ppx_import/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ppx_monad/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ppx_yojson_conv/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/pratter/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/prettym/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/psmt2-frontend/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/pyml/default.nix1
-rw-r--r--pkgs/development/ocaml-modules/qcheck/lin.nix2
-rw-r--r--pkgs/development/ocaml-modules/rdbg/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/reactivedata/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/reason-native/console.nix2
-rw-r--r--pkgs/development/ocaml-modules/reason-native/dir.nix2
-rw-r--r--pkgs/development/ocaml-modules/reason-native/fp.nix2
-rw-r--r--pkgs/development/ocaml-modules/reason-native/pastel.nix2
-rw-r--r--pkgs/development/ocaml-modules/reason-native/qcheck-rely.nix2
-rw-r--r--pkgs/development/ocaml-modules/reason-native/refmterr.nix2
-rw-r--r--pkgs/development/ocaml-modules/reason-native/rely-junit-reporter.nix2
-rw-r--r--pkgs/development/ocaml-modules/reason-native/rely.nix2
-rw-r--r--pkgs/development/ocaml-modules/resource-pooling/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/resto/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/rio/default.nix30
-rw-r--r--pkgs/development/ocaml-modules/riot/default.nix32
-rw-r--r--pkgs/development/ocaml-modules/rpclib/lwt.nix2
-rw-r--r--pkgs/development/ocaml-modules/safepass/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/sail/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/sawja/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/sedlex/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/sel/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/spices/default.nix34
-rw-r--r--pkgs/development/ocaml-modules/stdcompat/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/tcslib/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/telegraml/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/telemetry/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/thread-table/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/topkg/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/torch/default.nix1
-rw-r--r--pkgs/development/ocaml-modules/trace/tef.nix2
-rw-r--r--pkgs/development/ocaml-modules/tty/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/tyxml/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ulex/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/unstrctrd/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/uri/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/uring/default.nix1
-rw-r--r--pkgs/development/ocaml-modules/uucd/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/uucp/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/uuidm/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/uunf/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/uuseg/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/uuuu/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/visitors/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/wasm/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/webmachine/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/wtf8/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/xmlm/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/yojson/default.nix9
-rw-r--r--pkgs/development/ocaml-modules/yuscii/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/zelus/default.nix2
-rw-r--r--pkgs/development/octave-modules/fuzzy-logic-toolkit/default.nix2
-rw-r--r--pkgs/development/octave-modules/nan/default.nix2
-rw-r--r--pkgs/development/octave-modules/netcdf/default.nix2
-rw-r--r--pkgs/development/octave-modules/optiminterp/default.nix2
-rw-r--r--pkgs/development/perl-modules/Bio-BigFile/default.nix2
-rw-r--r--pkgs/development/perl-modules/ImageExifTool/default.nix2
-rw-r--r--pkgs/development/perl-modules/Tirex/default.nix11
-rw-r--r--pkgs/development/perl-modules/WWW-YoutubeViewer/default.nix2
-rw-r--r--pkgs/development/perl-modules/ham/default.nix2
-rw-r--r--pkgs/development/perl-modules/strip-nondeterminism/default.nix2
-rw-r--r--pkgs/development/php-packages/apcu/default.nix2
-rw-r--r--pkgs/development/php-packages/box/default.nix2
-rw-r--r--pkgs/development/php-packages/composer-local-repo-plugin/composer.lock72
-rw-r--r--pkgs/development/php-packages/composer-local-repo-plugin/default.nix33
-rw-r--r--pkgs/development/php-packages/composer/default.nix80
-rw-r--r--pkgs/development/php-packages/cyclonedx-php-composer/composer.lock571
-rw-r--r--pkgs/development/php-packages/cyclonedx-php-composer/default.nix33
-rw-r--r--pkgs/development/php-packages/deployer/default.nix2
-rw-r--r--pkgs/development/php-packages/ds/default.nix2
-rw-r--r--pkgs/development/php-packages/grpc/default.nix2
-rw-r--r--pkgs/development/php-packages/grumphp/default.nix8
-rw-r--r--pkgs/development/php-packages/mongodb/default.nix6
-rw-r--r--pkgs/development/php-packages/pcov/default.nix2
-rw-r--r--pkgs/development/php-packages/pdlib/default.nix2
-rw-r--r--pkgs/development/php-packages/phalcon/default.nix2
-rw-r--r--pkgs/development/php-packages/phive/default.nix2
-rw-r--r--pkgs/development/php-packages/php-cs-fixer/composer.lock1947
-rw-r--r--pkgs/development/php-packages/php-cs-fixer/default.nix8
-rw-r--r--pkgs/development/php-packages/php-parallel-lint/composer.lock1921
-rw-r--r--pkgs/development/php-packages/php-parallel-lint/default.nix8
-rw-r--r--pkgs/development/php-packages/phpstan/default.nix6
-rw-r--r--pkgs/development/php-packages/protobuf/default.nix2
-rw-r--r--pkgs/development/php-packages/psalm/default.nix2
-rw-r--r--pkgs/development/php-packages/psysh/default.nix2
-rw-r--r--pkgs/development/php-packages/relay/default.nix3
-rw-r--r--pkgs/development/php-packages/spx/default.nix2
-rw-r--r--pkgs/development/php-packages/vld/default.nix2
-rw-r--r--pkgs/development/python-modules/aadict/default.nix2
-rw-r--r--pkgs/development/python-modules/about-time/default.nix2
-rw-r--r--pkgs/development/python-modules/accelerate/default.nix3
-rw-r--r--pkgs/development/python-modules/accessible-pygments/default.nix2
-rw-r--r--pkgs/development/python-modules/acme-tiny/default.nix2
-rw-r--r--pkgs/development/python-modules/adafruit-platformdetect/default.nix4
-rw-r--r--pkgs/development/python-modules/adb-enhanced/default.nix4
-rw-r--r--pkgs/development/python-modules/adb-homeassistant/default.nix2
-rw-r--r--pkgs/development/python-modules/add-trailing-comma/default.nix2
-rw-r--r--pkgs/development/python-modules/advocate/default.nix2
-rw-r--r--pkgs/development/python-modules/agate-sql/default.nix2
-rw-r--r--pkgs/development/python-modules/agent-py/default.nix2
-rw-r--r--pkgs/development/python-modules/aigpy/default.nix2
-rw-r--r--pkgs/development/python-modules/ailment/default.nix6
-rw-r--r--pkgs/development/python-modules/aioairzone-cloud/default.nix4
-rw-r--r--pkgs/development/python-modules/aioaladdinconnect/default.nix40
-rw-r--r--pkgs/development/python-modules/aioapns/default.nix2
-rw-r--r--pkgs/development/python-modules/aioautomower/default.nix4
-rw-r--r--pkgs/development/python-modules/aiocache/default.nix9
-rw-r--r--pkgs/development/python-modules/aioesphomeapi/default.nix4
-rw-r--r--pkgs/development/python-modules/aiogram/default.nix8
-rw-r--r--pkgs/development/python-modules/aiohttp-apispec/default.nix2
-rw-r--r--pkgs/development/python-modules/aiohttp-client-cache/default.nix2
-rw-r--r--pkgs/development/python-modules/aiohttp-fast-url-dispatcher/default.nix2
-rw-r--r--pkgs/development/python-modules/aiohttp-fast-zlib/default.nix48
-rw-r--r--pkgs/development/python-modules/aiohttp-swagger/default.nix1
-rw-r--r--pkgs/development/python-modules/aioitertools/default.nix1
-rw-r--r--pkgs/development/python-modules/aiolifx-themes/default.nix4
-rw-r--r--pkgs/development/python-modules/aiolifx/default.nix4
-rw-r--r--pkgs/development/python-modules/aiomisc/default.nix4
-rw-r--r--pkgs/development/python-modules/aiomqtt/default.nix2
-rw-r--r--pkgs/development/python-modules/aiomysensors/default.nix4
-rw-r--r--pkgs/development/python-modules/aioopenexchangerates/default.nix4
-rw-r--r--pkgs/development/python-modules/aioprometheus/default.nix2
-rw-r--r--pkgs/development/python-modules/aioquic/default.nix16
-rw-r--r--pkgs/development/python-modules/aiorecollect/default.nix1
-rw-r--r--pkgs/development/python-modules/aioresponses/default.nix2
-rw-r--r--pkgs/development/python-modules/aiortm/default.nix4
-rw-r--r--pkgs/development/python-modules/aiortsp/default.nix2
-rw-r--r--pkgs/development/python-modules/aioruuvigateway/default.nix2
-rw-r--r--pkgs/development/python-modules/aiosasl/default.nix13
-rw-r--r--pkgs/development/python-modules/aioshelly/default.nix4
-rw-r--r--pkgs/development/python-modules/aioshutil/default.nix22
-rw-r--r--pkgs/development/python-modules/aiosql/default.nix4
-rw-r--r--pkgs/development/python-modules/aiostream/default.nix17
-rw-r--r--pkgs/development/python-modules/aioswitcher/default.nix4
-rw-r--r--pkgs/development/python-modules/aiowaqi/default.nix10
-rw-r--r--pkgs/development/python-modules/aiowatttime/default.nix4
-rw-r--r--pkgs/development/python-modules/aiowithings/default.nix4
-rw-r--r--pkgs/development/python-modules/aioxmpp/default.nix40
-rw-r--r--pkgs/development/python-modules/aiozoneinfo/default.nix49
-rw-r--r--pkgs/development/python-modules/alabaster/default.nix2
-rw-r--r--pkgs/development/python-modules/ale-py/default.nix2
-rw-r--r--pkgs/development/python-modules/alectryon/default.nix2
-rw-r--r--pkgs/development/python-modules/alembic/default.nix2
-rw-r--r--pkgs/development/python-modules/alive-progress/default.nix2
-rw-r--r--pkgs/development/python-modules/allure-behave/default.nix2
-rw-r--r--pkgs/development/python-modules/altair/default.nix2
-rw-r--r--pkgs/development/python-modules/altgraph/default.nix2
-rw-r--r--pkgs/development/python-modules/amaranth-boards/default.nix10
-rw-r--r--pkgs/development/python-modules/amaranth-soc/default.nix15
-rw-r--r--pkgs/development/python-modules/amaranth/default.nix3
-rw-r--r--pkgs/development/python-modules/amazon-kclpy/default.nix40
-rw-r--r--pkgs/development/python-modules/ambiclimate/default.nix36
-rw-r--r--pkgs/development/python-modules/amcrest/default.nix15
-rw-r--r--pkgs/development/python-modules/angr/default.nix4
-rw-r--r--pkgs/development/python-modules/anova-wifi/default.nix6
-rw-r--r--pkgs/development/python-modules/ansible-builder/default.nix2
-rw-r--r--pkgs/development/python-modules/ansible-compat/default.nix19
-rw-r--r--pkgs/development/python-modules/ansible-kernel/default.nix2
-rw-r--r--pkgs/development/python-modules/ansible-navigator/default.nix2
-rw-r--r--pkgs/development/python-modules/ansible-vault-rw/default.nix2
-rw-r--r--pkgs/development/python-modules/ansible/default.nix4
-rw-r--r--pkgs/development/python-modules/ansicolor/default.nix2
-rw-r--r--pkgs/development/python-modules/ansiconv/default.nix2
-rw-r--r--pkgs/development/python-modules/ansimarkup/default.nix2
-rw-r--r--pkgs/development/python-modules/anywidget/default.nix4
-rw-r--r--pkgs/development/python-modules/apispec/default.nix2
-rw-r--r--pkgs/development/python-modules/apkinspector/default.nix4
-rw-r--r--pkgs/development/python-modules/aplpy/default.nix2
-rw-r--r--pkgs/development/python-modules/appdirs/default.nix2
-rw-r--r--pkgs/development/python-modules/approvaltests/default.nix4
-rw-r--r--pkgs/development/python-modules/apricot-select/default.nix20
-rw-r--r--pkgs/development/python-modules/apsw/default.nix6
-rw-r--r--pkgs/development/python-modules/arcam-fmj/default.nix12
-rw-r--r--pkgs/development/python-modules/archinfo/default.nix4
-rw-r--r--pkgs/development/python-modules/archspec/default.nix10
-rw-r--r--pkgs/development/python-modules/area/default.nix2
-rw-r--r--pkgs/development/python-modules/argh/default.nix3
-rw-r--r--pkgs/development/python-modules/argparse-manpage/default.nix6
-rw-r--r--pkgs/development/python-modules/arpy/default.nix2
-rw-r--r--pkgs/development/python-modules/ase/default.nix4
-rw-r--r--pkgs/development/python-modules/asgineer/default.nix2
-rw-r--r--pkgs/development/python-modules/aspy-refactor-imports/default.nix2
-rw-r--r--pkgs/development/python-modules/aspy-yaml/default.nix2
-rw-r--r--pkgs/development/python-modules/asterisk-mbox/default.nix2
-rw-r--r--pkgs/development/python-modules/asteroid-filterbanks/default.nix2
-rw-r--r--pkgs/development/python-modules/asteval/default.nix4
-rw-r--r--pkgs/development/python-modules/astroid/default.nix2
-rw-r--r--pkgs/development/python-modules/astropy-helpers/default.nix4
-rw-r--r--pkgs/development/python-modules/asyncwhois/default.nix4
-rw-r--r--pkgs/development/python-modules/atlassian-python-api/default.nix4
-rw-r--r--pkgs/development/python-modules/attacut/default.nix2
-rw-r--r--pkgs/development/python-modules/attrdict/default.nix2
-rw-r--r--pkgs/development/python-modules/aubio/default.nix12
-rw-r--r--pkgs/development/python-modules/authcaptureproxy/default.nix2
-rw-r--r--pkgs/development/python-modules/authlib/default.nix4
-rw-r--r--pkgs/development/python-modules/autopage/default.nix2
-rw-r--r--pkgs/development/python-modules/autopep8/default.nix3
-rw-r--r--pkgs/development/python-modules/autotrash/default.nix33
-rw-r--r--pkgs/development/python-modules/avro-python3/default.nix2
-rw-r--r--pkgs/development/python-modules/avro3k/default.nix2
-rw-r--r--pkgs/development/python-modules/avwx-engine/default.nix10
-rw-r--r--pkgs/development/python-modules/awkward-cpp/default.nix10
-rw-r--r--pkgs/development/python-modules/awkward/default.nix10
-rw-r--r--pkgs/development/python-modules/aws-encryption-sdk/default.nix10
-rw-r--r--pkgs/development/python-modules/aws-lambda-builders/default.nix4
-rw-r--r--pkgs/development/python-modules/awscrt/default.nix4
-rw-r--r--pkgs/development/python-modules/ax/default.nix7
-rw-r--r--pkgs/development/python-modules/azure-eventgrid/default.nix6
-rw-r--r--pkgs/development/python-modules/azure-eventhub/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-netapp/default.nix11
-rw-r--r--pkgs/development/python-modules/azure-mgmt-network/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-monitor-ingestion/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-multiapi-storage/default.nix2
-rw-r--r--pkgs/development/python-modules/azure-servicebus/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-storage-queue/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-synapse-artifacts/default.nix4
-rw-r--r--pkgs/development/python-modules/b2sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/babelfish/default.nix2
-rw-r--r--pkgs/development/python-modules/backports-shutil-get-terminal-size/default.nix2
-rw-r--r--pkgs/development/python-modules/bambi/default.nix2
-rw-r--r--pkgs/development/python-modules/bandit/default.nix4
-rw-r--r--pkgs/development/python-modules/bap/default.nix2
-rw-r--r--pkgs/development/python-modules/basemap-data/default.nix1
-rw-r--r--pkgs/development/python-modules/bash-kernel/default.nix1
-rw-r--r--pkgs/development/python-modules/batchspawner/default.nix2
-rw-r--r--pkgs/development/python-modules/baycomp/default.nix2
-rw-r--r--pkgs/development/python-modules/bc-detect-secrets/default.nix4
-rw-r--r--pkgs/development/python-modules/bdffont/default.nix6
-rw-r--r--pkgs/development/python-modules/beaker/default.nix2
-rw-r--r--pkgs/development/python-modules/beanhub-extract/default.nix2
-rw-r--r--pkgs/development/python-modules/beanstalkc/default.nix2
-rw-r--r--pkgs/development/python-modules/bellows/default.nix4
-rw-r--r--pkgs/development/python-modules/bencoder/default.nix2
-rw-r--r--pkgs/development/python-modules/bentoml/default.nix85
-rw-r--r--pkgs/development/python-modules/berkeleydb/default.nix38
-rw-r--r--pkgs/development/python-modules/bespon/default.nix2
-rw-r--r--pkgs/development/python-modules/betacode/default.nix2
-rw-r--r--pkgs/development/python-modules/betamax-matchers/default.nix2
-rw-r--r--pkgs/development/python-modules/betamax-serializers/default.nix2
-rw-r--r--pkgs/development/python-modules/betamax/default.nix2
-rw-r--r--pkgs/development/python-modules/bidict/default.nix2
-rw-r--r--pkgs/development/python-modules/bilibili-api-python/default.nix76
-rw-r--r--pkgs/development/python-modules/bimmer-connected/default.nix4
-rw-r--r--pkgs/development/python-modules/binwalk/default.nix2
-rw-r--r--pkgs/development/python-modules/biom-format/default.nix14
-rw-r--r--pkgs/development/python-modules/bjoern/default.nix2
-rw-r--r--pkgs/development/python-modules/black/default.nix2
-rw-r--r--pkgs/development/python-modules/bleach/default.nix2
-rw-r--r--pkgs/development/python-modules/blebox-uniapi/default.nix6
-rw-r--r--pkgs/development/python-modules/blessed/default.nix2
-rw-r--r--pkgs/development/python-modules/blessings/default.nix2
-rw-r--r--pkgs/development/python-modules/bloodyad/default.nix4
-rw-r--r--pkgs/development/python-modules/bluetooth-sensor-state-data/default.nix27
-rw-r--r--pkgs/development/python-modules/bnunicodenormalizer/default.nix4
-rw-r--r--pkgs/development/python-modules/boltztrap2/default.nix13
-rw-r--r--pkgs/development/python-modules/bork/default.nix1
-rw-r--r--pkgs/development/python-modules/boto3-stubs/default.nix4
-rw-r--r--pkgs/development/python-modules/boto3/default.nix4
-rw-r--r--pkgs/development/python-modules/botocore-stubs/default.nix4
-rw-r--r--pkgs/development/python-modules/botocore/default.nix6
-rw-r--r--pkgs/development/python-modules/bottle/default.nix2
-rw-r--r--pkgs/development/python-modules/bpython/default.nix2
-rw-r--r--pkgs/development/python-modules/branca/default.nix4
-rw-r--r--pkgs/development/python-modules/brian2/default.nix2
-rw-r--r--pkgs/development/python-modules/bring-api/default.nix4
-rw-r--r--pkgs/development/python-modules/broadbean/default.nix3
-rw-r--r--pkgs/development/python-modules/brother/default.nix8
-rw-r--r--pkgs/development/python-modules/brotli-asgi/default.nix2
-rw-r--r--pkgs/development/python-modules/bsddb3/default.nix22
-rw-r--r--pkgs/development/python-modules/btest/default.nix2
-rw-r--r--pkgs/development/python-modules/bthome-ble/default.nix6
-rw-r--r--pkgs/development/python-modules/bugsnag/default.nix4
-rw-r--r--pkgs/development/python-modules/buienradar/default.nix6
-rw-r--r--pkgs/development/python-modules/buildout/default.nix2
-rw-r--r--pkgs/development/python-modules/cached-property/default.nix2
-rw-r--r--pkgs/development/python-modules/caio/default.nix11
-rw-r--r--pkgs/development/python-modules/calysto-scheme/default.nix2
-rw-r--r--pkgs/development/python-modules/camelot/default.nix4
-rw-r--r--pkgs/development/python-modules/canals/default.nix2
-rw-r--r--pkgs/development/python-modules/canmatrix/default.nix14
-rw-r--r--pkgs/development/python-modules/captcha/default.nix2
-rw-r--r--pkgs/development/python-modules/cartopy/default.nix16
-rw-r--r--pkgs/development/python-modules/casbin/default.nix8
-rw-r--r--pkgs/development/python-modules/cashews/default.nix70
-rw-r--r--pkgs/development/python-modules/cassandra-driver/default.nix2
-rw-r--r--pkgs/development/python-modules/castepxbin/default.nix2
-rw-r--r--pkgs/development/python-modules/catkin-pkg/default.nix2
-rw-r--r--pkgs/development/python-modules/certomancer/default.nix57
-rw-r--r--pkgs/development/python-modules/cf-xarray/default.nix6
-rw-r--r--pkgs/development/python-modules/cfscrape/default.nix2
-rw-r--r--pkgs/development/python-modules/chainer/default.nix2
-rw-r--r--pkgs/development/python-modules/chat-downloader/default.nix2
-rw-r--r--pkgs/development/python-modules/checkdmarc/default.nix2
-rw-r--r--pkgs/development/python-modules/cheetah3/default.nix2
-rw-r--r--pkgs/development/python-modules/chess/default.nix2
-rw-r--r--pkgs/development/python-modules/chevron/default.nix2
-rw-r--r--pkgs/development/python-modules/chex/default.nix2
-rw-r--r--pkgs/development/python-modules/chromadb/default.nix23
-rw-r--r--pkgs/development/python-modules/cinemagoer/default.nix2
-rw-r--r--pkgs/development/python-modules/circus/default.nix56
-rw-r--r--pkgs/development/python-modules/cirq-rigetti/default.nix9
-rw-r--r--pkgs/development/python-modules/cjkwrap/default.nix2
-rw-r--r--pkgs/development/python-modules/clarabel/default.nix6
-rw-r--r--pkgs/development/python-modules/clarifai-grpc/default.nix4
-rw-r--r--pkgs/development/python-modules/claripy/default.nix4
-rw-r--r--pkgs/development/python-modules/cle/default.nix8
-rw-r--r--pkgs/development/python-modules/cleanlab/default.nix49
-rw-r--r--pkgs/development/python-modules/cli-ui/default.nix47
-rw-r--r--pkgs/development/python-modules/click-datetime/default.nix2
-rw-r--r--pkgs/development/python-modules/click-plugins/default.nix2
-rw-r--r--pkgs/development/python-modules/click-shell/default.nix2
-rw-r--r--pkgs/development/python-modules/clickclick/default.nix1
-rw-r--r--pkgs/development/python-modules/clickgen/default.nix6
-rw-r--r--pkgs/development/python-modules/clickhouse-cli/default.nix2
-rw-r--r--pkgs/development/python-modules/clickhouse-connect/default.nix4
-rw-r--r--pkgs/development/python-modules/clikit/default.nix2
-rw-r--r--pkgs/development/python-modules/clint/default.nix33
-rw-r--r--pkgs/development/python-modules/cloup/default.nix2
-rw-r--r--pkgs/development/python-modules/clustershell/default.nix6
-rw-r--r--pkgs/development/python-modules/cmdstanpy/default.nix15
-rw-r--r--pkgs/development/python-modules/cmigemo/default.nix2
-rw-r--r--pkgs/development/python-modules/cmsis-pack-manager/default.nix2
-rw-r--r--pkgs/development/python-modules/cnvkit/default.nix3
-rw-r--r--pkgs/development/python-modules/co2signal/default.nix2
-rw-r--r--pkgs/development/python-modules/coapthon3/default.nix2
-rw-r--r--pkgs/development/python-modules/coffea/default.nix10
-rw-r--r--pkgs/development/python-modules/cogapp/default.nix2
-rw-r--r--pkgs/development/python-modules/colander/default.nix2
-rw-r--r--pkgs/development/python-modules/color-operations/default.nix58
-rw-r--r--pkgs/development/python-modules/colorspacious/default.nix2
-rw-r--r--pkgs/development/python-modules/commoncode/default.nix2
-rw-r--r--pkgs/development/python-modules/compressai/default.nix2
-rw-r--r--pkgs/development/python-modules/conda-libmamba-solver/default.nix2
-rw-r--r--pkgs/development/python-modules/conda-package-streaming/default.nix2
-rw-r--r--pkgs/development/python-modules/confection/default.nix4
-rw-r--r--pkgs/development/python-modules/configargparse/default.nix2
-rw-r--r--pkgs/development/python-modules/configclass/default.nix2
-rw-r--r--pkgs/development/python-modules/configparser/default.nix6
-rw-r--r--pkgs/development/python-modules/confluent-kafka/default.nix4
-rw-r--r--pkgs/development/python-modules/connexion/default.nix1
-rw-r--r--pkgs/development/python-modules/cons/default.nix2
-rw-r--r--pkgs/development/python-modules/construct-classes/default.nix2
-rw-r--r--pkgs/development/python-modules/contexttimer/default.nix2
-rw-r--r--pkgs/development/python-modules/cookiecutter/default.nix2
-rw-r--r--pkgs/development/python-modules/coredis/default.nix2
-rw-r--r--pkgs/development/python-modules/cose/default.nix2
-rw-r--r--pkgs/development/python-modules/courlan/default.nix4
-rw-r--r--pkgs/development/python-modules/cpyparsing/default.nix4
-rw-r--r--pkgs/development/python-modules/craft-application-1/default.nix2
-rw-r--r--pkgs/development/python-modules/craft-application/default.nix2
-rw-r--r--pkgs/development/python-modules/craft-archives/default.nix2
-rw-r--r--pkgs/development/python-modules/craft-cli/default.nix2
-rw-r--r--pkgs/development/python-modules/craft-parts/default.nix4
-rw-r--r--pkgs/development/python-modules/cram/default.nix2
-rw-r--r--pkgs/development/python-modules/crate/default.nix2
-rw-r--r--pkgs/development/python-modules/crc32c/default.nix9
-rw-r--r--pkgs/development/python-modules/credstash/default.nix2
-rw-r--r--pkgs/development/python-modules/criticality-score/default.nix2
-rw-r--r--pkgs/development/python-modules/crossandra/default.nix39
-rw-r--r--pkgs/development/python-modules/cryptography/default.nix2
-rw-r--r--pkgs/development/python-modules/cson/default.nix2
-rw-r--r--pkgs/development/python-modules/css-parser/default.nix2
-rw-r--r--pkgs/development/python-modules/csscompressor/default.nix2
-rw-r--r--pkgs/development/python-modules/cssmin/default.nix2
-rw-r--r--pkgs/development/python-modules/cssutils/default.nix2
-rw-r--r--pkgs/development/python-modules/csv2md/default.nix28
-rw-r--r--pkgs/development/python-modules/cupy/default.nix2
-rw-r--r--pkgs/development/python-modules/curio/default.nix1
-rw-r--r--pkgs/development/python-modules/curl-cffi/default.nix4
-rw-r--r--pkgs/development/python-modules/curvefitgui/default.nix47
-rw-r--r--pkgs/development/python-modules/customtkinter/default.nix2
-rw-r--r--pkgs/development/python-modules/cvxpy/default.nix2
-rw-r--r--pkgs/development/python-modules/cx-freeze/default.nix2
-rw-r--r--pkgs/development/python-modules/cyclonedx-python-lib/default.nix4
-rw-r--r--pkgs/development/python-modules/cyclopts/default.nix64
-rw-r--r--pkgs/development/python-modules/cython/0.nix2
-rw-r--r--pkgs/development/python-modules/cython/default.nix2
-rw-r--r--pkgs/development/python-modules/daemonocle/default.nix2
-rw-r--r--pkgs/development/python-modules/dahlia/default.nix31
-rw-r--r--pkgs/development/python-modules/daphne/default.nix30
-rw-r--r--pkgs/development/python-modules/daqp/default.nix2
-rw-r--r--pkgs/development/python-modules/dash-bootstrap-components/default.nix41
-rw-r--r--pkgs/development/python-modules/dash-core-components/default.nix2
-rw-r--r--pkgs/development/python-modules/dash-table/default.nix2
-rw-r--r--pkgs/development/python-modules/dash/default.nix4
-rw-r--r--pkgs/development/python-modules/dask-awkward/default.nix14
-rw-r--r--pkgs/development/python-modules/dask-expr/default.nix6
-rw-r--r--pkgs/development/python-modules/dask-gateway-server/default.nix2
-rw-r--r--pkgs/development/python-modules/dask-gateway/default.nix2
-rw-r--r--pkgs/development/python-modules/dask/default.nix4
-rw-r--r--pkgs/development/python-modules/dataclass-wizard/default.nix2
-rw-r--r--pkgs/development/python-modules/dataclasses-json/default.nix4
-rw-r--r--pkgs/development/python-modules/datadog/default.nix2
-rw-r--r--pkgs/development/python-modules/datafusion/default.nix8
-rw-r--r--pkgs/development/python-modules/datasets/default.nix5
-rw-r--r--pkgs/development/python-modules/datasette/default.nix4
-rw-r--r--pkgs/development/python-modules/datashape/default.nix18
-rw-r--r--pkgs/development/python-modules/dateutils/default.nix2
-rw-r--r--pkgs/development/python-modules/dazl/default.nix3
-rw-r--r--pkgs/development/python-modules/dbt-core/default.nix4
-rw-r--r--pkgs/development/python-modules/dbt-extractor/default.nix2
-rw-r--r--pkgs/development/python-modules/dbus-client-gen/default.nix2
-rw-r--r--pkgs/development/python-modules/dbus-deviation/default.nix2
-rw-r--r--pkgs/development/python-modules/dbus-next/default.nix2
-rw-r--r--pkgs/development/python-modules/dbus-python-client-gen/default.nix2
-rw-r--r--pkgs/development/python-modules/dbus-signature-pyparsing/default.nix2
-rw-r--r--pkgs/development/python-modules/deap/default.nix2
-rw-r--r--pkgs/development/python-modules/debtcollector/default.nix2
-rw-r--r--pkgs/development/python-modules/debts/default.nix2
-rw-r--r--pkgs/development/python-modules/debugpy/default.nix2
-rw-r--r--pkgs/development/python-modules/deebot-client/default.nix4
-rw-r--r--pkgs/development/python-modules/deep-chainmap/default.nix2
-rw-r--r--pkgs/development/python-modules/deepdiff/default.nix1
-rw-r--r--pkgs/development/python-modules/deepdish/default.nix2
-rw-r--r--pkgs/development/python-modules/deepl/default.nix2
-rw-r--r--pkgs/development/python-modules/deepmerge/default.nix2
-rw-r--r--pkgs/development/python-modules/deezer-py/default.nix2
-rw-r--r--pkgs/development/python-modules/deezer-python/default.nix18
-rw-r--r--pkgs/development/python-modules/defcon/default.nix2
-rw-r--r--pkgs/development/python-modules/dek/default.nix2
-rw-r--r--pkgs/development/python-modules/deltachat2/default.nix42
-rw-r--r--pkgs/development/python-modules/deltachat2/paths.patch13
-rw-r--r--pkgs/development/python-modules/deprecation/default.nix2
-rw-r--r--pkgs/development/python-modules/detect-secrets/default.nix2
-rw-r--r--pkgs/development/python-modules/devgoldyutils/default.nix2
-rw-r--r--pkgs/development/python-modules/devito/default.nix16
-rw-r--r--pkgs/development/python-modules/dicom2nifti/default.nix17
-rw-r--r--pkgs/development/python-modules/diffusers/default.nix35
-rw-r--r--pkgs/development/python-modules/dinghy/default.nix2
-rw-r--r--pkgs/development/python-modules/diofant/default.nix2
-rw-r--r--pkgs/development/python-modules/dissononce/default.nix2
-rw-r--r--pkgs/development/python-modules/distributed/default.nix10
-rw-r--r--pkgs/development/python-modules/distro/default.nix2
-rw-r--r--pkgs/development/python-modules/django-annoying/default.nix2
-rw-r--r--pkgs/development/python-modules/django-appconf/default.nix2
-rw-r--r--pkgs/development/python-modules/django-auditlog/default.nix2
-rw-r--r--pkgs/development/python-modules/django-autocomplete-light/default.nix2
-rw-r--r--pkgs/development/python-modules/django-cacheops/default.nix2
-rw-r--r--pkgs/development/python-modules/django-celery-results/default.nix2
-rw-r--r--pkgs/development/python-modules/django-configurations/default.nix2
-rw-r--r--pkgs/development/python-modules/django-contrib-comments/default.nix2
-rw-r--r--pkgs/development/python-modules/django-crispy-forms/default.nix6
-rw-r--r--pkgs/development/python-modules/django-cryptography/default.nix3
-rw-r--r--pkgs/development/python-modules/django-dynamic-preferences/default.nix6
-rw-r--r--pkgs/development/python-modules/django-encrypted-model-fields/default.nix2
-rw-r--r--pkgs/development/python-modules/django-extensions/default.nix2
-rw-r--r--pkgs/development/python-modules/django-formset-js-improved/default.nix2
-rw-r--r--pkgs/development/python-modules/django-formtools/default.nix2
-rw-r--r--pkgs/development/python-modules/django-import-export/default.nix4
-rw-r--r--pkgs/development/python-modules/django-ipware/default.nix2
-rw-r--r--pkgs/development/python-modules/django-js-reverse/default.nix1
-rw-r--r--pkgs/development/python-modules/django-libsass/default.nix2
-rw-r--r--pkgs/development/python-modules/django-markup/default.nix2
-rw-r--r--pkgs/development/python-modules/django-modeltranslation/default.nix4
-rw-r--r--pkgs/development/python-modules/django-nose/default.nix32
-rw-r--r--pkgs/development/python-modules/django-oauth-toolkit/default.nix4
-rw-r--r--pkgs/development/python-modules/django-pattern-library/default.nix1
-rw-r--r--pkgs/development/python-modules/django-payments/default.nix2
-rw-r--r--pkgs/development/python-modules/django-pglocks/default.nix2
-rw-r--r--pkgs/development/python-modules/django-phonenumber-field/default.nix2
-rw-r--r--pkgs/development/python-modules/django-picklefield/default.nix2
-rw-r--r--pkgs/development/python-modules/django-pwa/default.nix2
-rw-r--r--pkgs/development/python-modules/django-q/default.nix2
-rw-r--r--pkgs/development/python-modules/django-ranged-response/default.nix2
-rw-r--r--pkgs/development/python-modules/django-ratelimit/default.nix56
-rw-r--r--pkgs/development/python-modules/django-reversion/default.nix2
-rw-r--r--pkgs/development/python-modules/django-scheduler/default.nix2
-rw-r--r--pkgs/development/python-modules/django-scim2/default.nix2
-rw-r--r--pkgs/development/python-modules/django-sesame/default.nix1
-rw-r--r--pkgs/development/python-modules/django-silk/default.nix1
-rw-r--r--pkgs/development/python-modules/django-sr/default.nix30
-rw-r--r--pkgs/development/python-modules/django-tagging/default.nix2
-rw-r--r--pkgs/development/python-modules/django/3.nix2
-rw-r--r--pkgs/development/python-modules/django/4.nix2
-rw-r--r--pkgs/development/python-modules/django/5.nix3
-rw-r--r--pkgs/development/python-modules/djangorestframework/default.nix36
-rw-r--r--pkgs/development/python-modules/dlib/build-cores.patch8
-rw-r--r--pkgs/development/python-modules/dllogger/default.nix2
-rw-r--r--pkgs/development/python-modules/dm-control/default.nix4
-rw-r--r--pkgs/development/python-modules/dm-haiku/default.nix2
-rw-r--r--pkgs/development/python-modules/dm-tree/default.nix2
-rw-r--r--pkgs/development/python-modules/dmenu/default.nix2
-rw-r--r--pkgs/development/python-modules/dnf-plugins-core/default.nix4
-rw-r--r--pkgs/development/python-modules/dnspython/default.nix2
-rw-r--r--pkgs/development/python-modules/docker-py/default.nix37
-rw-r--r--pkgs/development/python-modules/docker-pycreds/default.nix2
-rw-r--r--pkgs/development/python-modules/docker/default.nix33
-rw-r--r--pkgs/development/python-modules/dockerspawner/default.nix2
-rw-r--r--pkgs/development/python-modules/docloud/default.nix2
-rw-r--r--pkgs/development/python-modules/docx2txt/default.nix2
-rw-r--r--pkgs/development/python-modules/dogpile-cache/default.nix2
-rw-r--r--pkgs/development/python-modules/dogtag-pki/default.nix2
-rw-r--r--pkgs/development/python-modules/doit/default.nix2
-rw-r--r--pkgs/development/python-modules/dokuwiki/default.nix2
-rw-r--r--pkgs/development/python-modules/dot2tex/default.nix1
-rw-r--r--pkgs/development/python-modules/dparse/default.nix2
-rw-r--r--pkgs/development/python-modules/dpath/default.nix4
-rw-r--r--pkgs/development/python-modules/dploot/default.nix4
-rw-r--r--pkgs/development/python-modules/dropbox/default.nix8
-rw-r--r--pkgs/development/python-modules/ds4drv/default.nix12
-rw-r--r--pkgs/development/python-modules/dscribe/default.nix47
-rw-r--r--pkgs/development/python-modules/dsmr-parser/default.nix4
-rw-r--r--pkgs/development/python-modules/dtw-python/default.nix4
-rw-r--r--pkgs/development/python-modules/duckdb-engine/default.nix4
-rw-r--r--pkgs/development/python-modules/duckduckgo-search/default.nix42
-rw-r--r--pkgs/development/python-modules/duct-py/default.nix2
-rw-r--r--pkgs/development/python-modules/duecredit/default.nix4
-rw-r--r--pkgs/development/python-modules/duet/default.nix2
-rw-r--r--pkgs/development/python-modules/dunamai/default.nix4
-rw-r--r--pkgs/development/python-modules/dungeon-eos/default.nix2
-rw-r--r--pkgs/development/python-modules/dwdwfsapi/default.nix1
-rw-r--r--pkgs/development/python-modules/dynalite-devices/default.nix2
-rw-r--r--pkgs/development/python-modules/ecos/default.nix27
-rw-r--r--pkgs/development/python-modules/ed25519/default.nix1
-rw-r--r--pkgs/development/python-modules/editables/default.nix11
-rw-r--r--pkgs/development/python-modules/edk2-pytool-library/default.nix4
-rw-r--r--pkgs/development/python-modules/edlib/default.nix1
-rw-r--r--pkgs/development/python-modules/eduvpn-common/use-nix-lib.patch23
-rw-r--r--pkgs/development/python-modules/effdet/default.nix2
-rw-r--r--pkgs/development/python-modules/eggdeps/default.nix2
-rw-r--r--pkgs/development/python-modules/eigenpy/default.nix4
-rw-r--r--pkgs/development/python-modules/einops/default.nix2
-rw-r--r--pkgs/development/python-modules/elastic-apm/default.nix4
-rw-r--r--pkgs/development/python-modules/elastic-transport/default.nix4
-rw-r--r--pkgs/development/python-modules/elasticsearch-dsl/default.nix4
-rw-r--r--pkgs/development/python-modules/elasticsearch8/default.nix14
-rw-r--r--pkgs/development/python-modules/elkm1-lib/default.nix1
-rw-r--r--pkgs/development/python-modules/emcee/default.nix4
-rw-r--r--pkgs/development/python-modules/empy/default.nix2
-rw-r--r--pkgs/development/python-modules/entrance/default.nix2
-rw-r--r--pkgs/development/python-modules/envisage/default.nix1
-rw-r--r--pkgs/development/python-modules/envoy-reader/default.nix1
-rw-r--r--pkgs/development/python-modules/epitran/default.nix1
-rw-r--r--pkgs/development/python-modules/equinox/default.nix2
-rw-r--r--pkgs/development/python-modules/esper/default.nix6
-rw-r--r--pkgs/development/python-modules/et-xmlfile/default.nix2
-rw-r--r--pkgs/development/python-modules/etcd/default.nix2
-rw-r--r--pkgs/development/python-modules/ete3/default.nix2
-rw-r--r--pkgs/development/python-modules/etebase/default.nix2
-rw-r--r--pkgs/development/python-modules/etesync/default.nix2
-rw-r--r--pkgs/development/python-modules/eth-hash/default.nix2
-rw-r--r--pkgs/development/python-modules/etils/default.nix4
-rw-r--r--pkgs/development/python-modules/euclid3/default.nix2
-rw-r--r--pkgs/development/python-modules/eval-type-backport/default.nix2
-rw-r--r--pkgs/development/python-modules/evaluate/default.nix21
-rw-r--r--pkgs/development/python-modules/eventlet/default.nix2
-rw-r--r--pkgs/development/python-modules/ewmh/default.nix2
-rw-r--r--pkgs/development/python-modules/exchangelib/default.nix4
-rw-r--r--pkgs/development/python-modules/execnet/default.nix12
-rw-r--r--pkgs/development/python-modules/experiment-utilities/default.nix2
-rw-r--r--pkgs/development/python-modules/explorerscript/default.nix2
-rw-r--r--pkgs/development/python-modules/extractcode/7z.nix2
-rw-r--r--pkgs/development/python-modules/extractcode/libarchive.nix2
-rw-r--r--pkgs/development/python-modules/eyed3/default.nix2
-rw-r--r--pkgs/development/python-modules/face-recognition/default.nix2
-rw-r--r--pkgs/development/python-modules/face/default.nix2
-rw-r--r--pkgs/development/python-modules/falcon/default.nix2
-rw-r--r--pkgs/development/python-modules/faraday-agent-parameters-types/default.nix10
-rw-r--r--pkgs/development/python-modules/faraday-plugins/default.nix14
-rw-r--r--pkgs/development/python-modules/fastai/default.nix2
-rw-r--r--pkgs/development/python-modules/fastcore/default.nix4
-rw-r--r--pkgs/development/python-modules/fastdiff/default.nix2
-rw-r--r--pkgs/development/python-modules/fastembed/default.nix47
-rw-r--r--pkgs/development/python-modules/faster-fifo/default.nix12
-rw-r--r--pkgs/development/python-modules/fastparquet/default.nix50
-rw-r--r--pkgs/development/python-modules/favicon/default.nix1
-rw-r--r--pkgs/development/python-modules/feedfinder2/default.nix2
-rw-r--r--pkgs/development/python-modules/feedgen/default.nix2
-rw-r--r--pkgs/development/python-modules/fenics/default.nix6
-rw-r--r--pkgs/development/python-modules/ffmpy/default.nix2
-rw-r--r--pkgs/development/python-modules/fido2/default.nix27
-rw-r--r--pkgs/development/python-modules/filebrowser-safe/default.nix2
-rw-r--r--pkgs/development/python-modules/filelock/default.nix2
-rw-r--r--pkgs/development/python-modules/findimports/default.nix4
-rw-r--r--pkgs/development/python-modules/findpython/default.nix2
-rw-r--r--pkgs/development/python-modules/fingerprints/default.nix2
-rw-r--r--pkgs/development/python-modules/fints/default.nix1
-rw-r--r--pkgs/development/python-modules/fipy/default.nix16
-rw-r--r--pkgs/development/python-modules/fire/default.nix2
-rw-r--r--pkgs/development/python-modules/fireflyalgorithm/default.nix2
-rw-r--r--pkgs/development/python-modules/first/default.nix2
-rw-r--r--pkgs/development/python-modules/flake8-blind-except/default.nix2
-rw-r--r--pkgs/development/python-modules/flake8-future-import/default.nix2
-rw-r--r--pkgs/development/python-modules/flake8/default.nix2
-rw-r--r--pkgs/development/python-modules/flask-babel/default.nix1
-rw-r--r--pkgs/development/python-modules/flask-bootstrap/default.nix2
-rw-r--r--pkgs/development/python-modules/flask-caching/default.nix2
-rw-r--r--pkgs/development/python-modules/flask-cors/default.nix2
-rw-r--r--pkgs/development/python-modules/flask-expects-json/default.nix2
-rw-r--r--pkgs/development/python-modules/flask-limiter/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-mail/default.nix45
-rw-r--r--pkgs/development/python-modules/flask-mailman/default.nix2
-rw-r--r--pkgs/development/python-modules/flask-principal/default.nix30
-rw-r--r--pkgs/development/python-modules/flask-seasurf/default.nix2
-rw-r--r--pkgs/development/python-modules/flask-session-captcha/default.nix2
-rw-r--r--pkgs/development/python-modules/flask-session/default.nix2
-rw-r--r--pkgs/development/python-modules/flask-sslify/default.nix2
-rw-r--r--pkgs/development/python-modules/flask-wtf/default.nix2
-rw-r--r--pkgs/development/python-modules/flask/default.nix2
-rw-r--r--pkgs/development/python-modules/flax/default.nix12
-rw-r--r--pkgs/development/python-modules/flet-core/default.nix2
-rw-r--r--pkgs/development/python-modules/flet-runtime/default.nix2
-rw-r--r--pkgs/development/python-modules/flet/default.nix2
-rw-r--r--pkgs/development/python-modules/flickrapi/default.nix2
-rw-r--r--pkgs/development/python-modules/flit-scm/default.nix2
-rw-r--r--pkgs/development/python-modules/flit/default.nix2
-rw-r--r--pkgs/development/python-modules/fluent-logger/default.nix2
-rw-r--r--pkgs/development/python-modules/flufl/i18n.nix2
-rw-r--r--pkgs/development/python-modules/fnv-hash-fast/default.nix2
-rw-r--r--pkgs/development/python-modules/fontbakery/default.nix1
-rw-r--r--pkgs/development/python-modules/fontfeatures/default.nix1
-rw-r--r--pkgs/development/python-modules/fontmath/default.nix2
-rw-r--r--pkgs/development/python-modules/fontparts/default.nix2
-rw-r--r--pkgs/development/python-modules/fontpens/default.nix2
-rw-r--r--pkgs/development/python-modules/fonttools/default.nix2
-rw-r--r--pkgs/development/python-modules/foolscap/default.nix20
-rw-r--r--pkgs/development/python-modules/forbiddenfruit/default.nix30
-rw-r--r--pkgs/development/python-modules/formbox/default.nix2
-rw-r--r--pkgs/development/python-modules/fpylll/default.nix2
-rw-r--r--pkgs/development/python-modules/freud/default.nix90
-rw-r--r--pkgs/development/python-modules/frigidaire/default.nix4
-rw-r--r--pkgs/development/python-modules/frozenlist2/default.nix2
-rw-r--r--pkgs/development/python-modules/fschat/default.nix2
-rw-r--r--pkgs/development/python-modules/fsspec-xrootd/default.nix2
-rw-r--r--pkgs/development/python-modules/fsspec/default.nix2
-rw-r--r--pkgs/development/python-modules/fugashi/default.nix2
-rw-r--r--pkgs/development/python-modules/functiontrace/default.nix2
-rw-r--r--pkgs/development/python-modules/furo/default.nix2
-rw-r--r--pkgs/development/python-modules/future-fstrings/default.nix2
-rw-r--r--pkgs/development/python-modules/fx2/default.nix2
-rw-r--r--pkgs/development/python-modules/fyta-cli/default.nix4
-rw-r--r--pkgs/development/python-modules/galois/default.nix4
-rw-r--r--pkgs/development/python-modules/gardena-bluetooth/default.nix4
-rw-r--r--pkgs/development/python-modules/garminconnect/default.nix4
-rw-r--r--pkgs/development/python-modules/gb-io/default.nix2
-rw-r--r--pkgs/development/python-modules/gdown/default.nix2
-rw-r--r--pkgs/development/python-modules/gemfileparser/default.nix2
-rw-r--r--pkgs/development/python-modules/genie-partner-sdk/default.nix38
-rw-r--r--pkgs/development/python-modules/geodatasets/default.nix54
-rw-r--r--pkgs/development/python-modules/geopandas/default.nix15
-rw-r--r--pkgs/development/python-modules/gflags/default.nix2
-rw-r--r--pkgs/development/python-modules/gguf/default.nix2
-rw-r--r--pkgs/development/python-modules/ghdiff/default.nix2
-rw-r--r--pkgs/development/python-modules/gidgethub/default.nix2
-rw-r--r--pkgs/development/python-modules/gin-config/default.nix2
-rw-r--r--pkgs/development/python-modules/gistyc/default.nix2
-rw-r--r--pkgs/development/python-modules/git-find-repos/default.nix28
-rw-r--r--pkgs/development/python-modules/git-sweep/default.nix2
-rw-r--r--pkgs/development/python-modules/git-url-parse/default.nix2
-rw-r--r--pkgs/development/python-modules/github-webhook/default.nix2
-rw-r--r--pkgs/development/python-modules/github3-py/default.nix2
-rw-r--r--pkgs/development/python-modules/githubkit/default.nix9
-rw-r--r--pkgs/development/python-modules/gitignore-parser/default.nix2
-rw-r--r--pkgs/development/python-modules/glances-api/default.nix4
-rw-r--r--pkgs/development/python-modules/glcontext/default.nix2
-rw-r--r--pkgs/development/python-modules/gmpy2/default.nix16
-rw-r--r--pkgs/development/python-modules/gnureadline/default.nix2
-rw-r--r--pkgs/development/python-modules/gocardless-pro/default.nix6
-rw-r--r--pkgs/development/python-modules/goocalendar/default.nix2
-rw-r--r--pkgs/development/python-modules/goodwe/default.nix4
-rw-r--r--pkgs/development/python-modules/google-ai-generativelanguage/default.nix4
-rw-r--r--pkgs/development/python-modules/google-api-python-client/default.nix6
-rw-r--r--pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-bigquery/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-bigtable/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-container/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-dlp/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-pubsub/default.nix4
-rw-r--r--pkgs/development/python-modules/google-generativeai/default.nix4
-rw-r--r--pkgs/development/python-modules/google-nest-sdm/default.nix8
-rw-r--r--pkgs/development/python-modules/google-pasta/default.nix2
-rw-r--r--pkgs/development/python-modules/gophish/default.nix65
-rw-r--r--pkgs/development/python-modules/gotenberg-client/default.nix2
-rw-r--r--pkgs/development/python-modules/govee-local-api/default.nix13
-rw-r--r--pkgs/development/python-modules/gpiozero/default.nix2
-rw-r--r--pkgs/development/python-modules/gprof2dot/default.nix4
-rw-r--r--pkgs/development/python-modules/gpsoauth/default.nix4
-rw-r--r--pkgs/development/python-modules/gpt-2-simple/default.nix7
-rw-r--r--pkgs/development/python-modules/gpustat/default.nix2
-rw-r--r--pkgs/development/python-modules/gpytorch/default.nix2
-rw-r--r--pkgs/development/python-modules/grad-cam/default.nix31
-rw-r--r--pkgs/development/python-modules/gradient/default.nix2
-rw-r--r--pkgs/development/python-modules/gradio-pdf/default.nix4
-rw-r--r--pkgs/development/python-modules/gradio/client.nix11
-rw-r--r--pkgs/development/python-modules/gradio/default.nix61
-rw-r--r--pkgs/development/python-modules/grafanalib/default.nix1
-rw-r--r--pkgs/development/python-modules/grammalecte/default.nix2
-rw-r--r--pkgs/development/python-modules/graph-tool/default.nix54
-rw-r--r--pkgs/development/python-modules/graphene-django/default.nix4
-rw-r--r--pkgs/development/python-modules/graphql-relay/default.nix2
-rw-r--r--pkgs/development/python-modules/graphtage/default.nix2
-rw-r--r--pkgs/development/python-modules/grappelli-safe/default.nix2
-rw-r--r--pkgs/development/python-modules/graspologic/default.nix2
-rw-r--r--pkgs/development/python-modules/greynoise/default.nix4
-rw-r--r--pkgs/development/python-modules/griffe/default.nix4
-rw-r--r--pkgs/development/python-modules/gruut/default.nix2
-rw-r--r--pkgs/development/python-modules/gspread/default.nix4
-rw-r--r--pkgs/development/python-modules/gssapi/default.nix3
-rw-r--r--pkgs/development/python-modules/gst-python/default.nix4
-rw-r--r--pkgs/development/python-modules/gtts/default.nix2
-rw-r--r--pkgs/development/python-modules/guessit/default.nix2
-rw-r--r--pkgs/development/python-modules/guidance/default.nix2
-rw-r--r--pkgs/development/python-modules/gunicorn/default.nix20
-rw-r--r--pkgs/development/python-modules/gvm-tools/default.nix4
-rw-r--r--pkgs/development/python-modules/gym/default.nix2
-rw-r--r--pkgs/development/python-modules/gymnasium/default.nix2
-rw-r--r--pkgs/development/python-modules/gyp/default.nix2
-rw-r--r--pkgs/development/python-modules/ha-philipsjs/default.nix15
-rw-r--r--pkgs/development/python-modules/habitipy/default.nix28
-rw-r--r--pkgs/development/python-modules/habluetooth/default.nix6
-rw-r--r--pkgs/development/python-modules/hahomematic/default.nix4
-rw-r--r--pkgs/development/python-modules/hakuin/default.nix42
-rw-r--r--pkgs/development/python-modules/halo/default.nix2
-rw-r--r--pkgs/development/python-modules/hass-nabucasa/default.nix4
-rw-r--r--pkgs/development/python-modules/hassil/default.nix23
-rw-r--r--pkgs/development/python-modules/hatch-odoo/default.nix40
-rw-r--r--pkgs/development/python-modules/hatch-vcs/default.nix7
-rw-r--r--pkgs/development/python-modules/hdate/default.nix28
-rw-r--r--pkgs/development/python-modules/hdbscan/default.nix5
-rw-r--r--pkgs/development/python-modules/hdfs/default.nix12
-rw-r--r--pkgs/development/python-modules/heapdict/default.nix2
-rw-r--r--pkgs/development/python-modules/heatzypy/default.nix4
-rw-r--r--pkgs/development/python-modules/hepunits/default.nix4
-rw-r--r--pkgs/development/python-modules/herepy/default.nix4
-rw-r--r--pkgs/development/python-modules/heudiconv/default.nix4
-rw-r--r--pkgs/development/python-modules/hidapi/default.nix2
-rw-r--r--pkgs/development/python-modules/hikari-lightbulb/default.nix2
-rw-r--r--pkgs/development/python-modules/hishel/default.nix4
-rw-r--r--pkgs/development/python-modules/hist/default.nix4
-rw-r--r--pkgs/development/python-modules/hiyapyco/default.nix4
-rw-r--r--pkgs/development/python-modules/hjson/default.nix2
-rw-r--r--pkgs/development/python-modules/hole/default.nix2
-rw-r--r--pkgs/development/python-modules/holidays/default.nix4
-rw-r--r--pkgs/development/python-modules/hologram/default.nix2
-rw-r--r--pkgs/development/python-modules/home-assistant-bluetooth/default.nix5
-rw-r--r--pkgs/development/python-modules/home-assistant-bluetooth/habluetooth-3.0-compat.patch50
-rw-r--r--pkgs/development/python-modules/home-assistant-chip-clusters/default.nix4
-rw-r--r--pkgs/development/python-modules/home-assistant-chip-core/default.nix6
-rw-r--r--pkgs/development/python-modules/hpccm/default.nix30
-rw-r--r--pkgs/development/python-modules/hs-dbus-signature/default.nix2
-rw-r--r--pkgs/development/python-modules/hsaudiotag3k/default.nix2
-rw-r--r--pkgs/development/python-modules/hstspreload/default.nix4
-rw-r--r--pkgs/development/python-modules/html2image/default.nix2
-rw-r--r--pkgs/development/python-modules/htmlmin/default.nix2
-rw-r--r--pkgs/development/python-modules/htseq/default.nix2
-rw-r--r--pkgs/development/python-modules/httmock/default.nix2
-rw-r--r--pkgs/development/python-modules/httpauth/default.nix4
-rw-r--r--pkgs/development/python-modules/httpcore/default.nix2
-rw-r--r--pkgs/development/python-modules/httpie/default.nix2
-rw-r--r--pkgs/development/python-modules/httplib2/default.nix2
-rw-r--r--pkgs/development/python-modules/httptools/default.nix2
-rw-r--r--pkgs/development/python-modules/httpx/default.nix2
-rw-r--r--pkgs/development/python-modules/huey/default.nix2
-rw-r--r--pkgs/development/python-modules/hug/default.nix2
-rw-r--r--pkgs/development/python-modules/huggingface-hub/default.nix10
-rw-r--r--pkgs/development/python-modules/humanfriendly/default.nix14
-rw-r--r--pkgs/development/python-modules/hurry-filesize/default.nix2
-rw-r--r--pkgs/development/python-modules/hvplot/default.nix2
-rw-r--r--pkgs/development/python-modules/hy/default.nix2
-rw-r--r--pkgs/development/python-modules/hydra-core/default.nix2
-rw-r--r--pkgs/development/python-modules/hypercorn/default.nix2
-rw-r--r--pkgs/development/python-modules/hyperlink/default.nix2
-rw-r--r--pkgs/development/python-modules/hyperscan/default.nix2
-rw-r--r--pkgs/development/python-modules/hypothesis/default.nix26
-rw-r--r--pkgs/development/python-modules/hyppo/default.nix18
-rw-r--r--pkgs/development/python-modules/i-pi/default.nix2
-rw-r--r--pkgs/development/python-modules/i2csense/default.nix2
-rw-r--r--pkgs/development/python-modules/i3ipc/default.nix2
-rw-r--r--pkgs/development/python-modules/ibis-framework/default.nix102
-rw-r--r--pkgs/development/python-modules/icalendar/default.nix2
-rw-r--r--pkgs/development/python-modules/icecream/default.nix2
-rw-r--r--pkgs/development/python-modules/ics/default.nix20
-rw-r--r--pkgs/development/python-modules/id/default.nix2
-rw-r--r--pkgs/development/python-modules/image-go-nord/default.nix2
-rw-r--r--pkgs/development/python-modules/imagehash/default.nix2
-rw-r--r--pkgs/development/python-modules/imaplib2/default.nix2
-rw-r--r--pkgs/development/python-modules/imbalanced-learn/default.nix4
-rw-r--r--pkgs/development/python-modules/imia/default.nix2
-rw-r--r--pkgs/development/python-modules/iminuit/default.nix4
-rw-r--r--pkgs/development/python-modules/immutabledict/default.nix2
-rw-r--r--pkgs/development/python-modules/immutables/default.nix2
-rw-r--r--pkgs/development/python-modules/import-expression/default.nix24
-rw-r--r--pkgs/development/python-modules/importlab/default.nix2
-rw-r--r--pkgs/development/python-modules/imutils/default.nix2
-rw-r--r--pkgs/development/python-modules/incomfort-client/default.nix19
-rw-r--r--pkgs/development/python-modules/inequality/default.nix45
-rw-r--r--pkgs/development/python-modules/infinity/default.nix2
-rw-r--r--pkgs/development/python-modules/inflection/default.nix2
-rw-r--r--pkgs/development/python-modules/inifile/default.nix2
-rw-r--r--pkgs/development/python-modules/inkex/default.nix1
-rw-r--r--pkgs/development/python-modules/inline-snapshot/default.nix73
-rw-r--r--pkgs/development/python-modules/inlinestyler/default.nix2
-rw-r--r--pkgs/development/python-modules/inotify-simple/default.nix2
-rw-r--r--pkgs/development/python-modules/inquirer/default.nix2
-rw-r--r--pkgs/development/python-modules/insegel/default.nix2
-rw-r--r--pkgs/development/python-modules/insightface/default.nix15
-rw-r--r--pkgs/development/python-modules/installer/default.nix2
-rw-r--r--pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix3
-rw-r--r--pkgs/development/python-modules/intake-parquet/default.nix17
-rw-r--r--pkgs/development/python-modules/interegular/default.nix2
-rw-r--r--pkgs/development/python-modules/internetarchive/default.nix2
-rw-r--r--pkgs/development/python-modules/interruptingcow/default.nix2
-rw-r--r--pkgs/development/python-modules/into-dbus-python/default.nix2
-rw-r--r--pkgs/development/python-modules/invisible-watermark/default.nix2
-rw-r--r--pkgs/development/python-modules/iocapture/default.nix2
-rw-r--r--pkgs/development/python-modules/ionhash/default.nix1
-rw-r--r--pkgs/development/python-modules/iopath/default.nix2
-rw-r--r--pkgs/development/python-modules/ipfshttpclient/default.nix2
-rw-r--r--pkgs/development/python-modules/ipython-sql/default.nix2
-rw-r--r--pkgs/development/python-modules/ipyvuetify/default.nix2
-rw-r--r--pkgs/development/python-modules/ipywidgets/default.nix4
-rw-r--r--pkgs/development/python-modules/islpy/default.nix6
-rw-r--r--pkgs/development/python-modules/isort/default.nix2
-rw-r--r--pkgs/development/python-modules/isosurfaces/default.nix2
-rw-r--r--pkgs/development/python-modules/itemadapter/default.nix4
-rw-r--r--pkgs/development/python-modules/itemloaders/default.nix4
-rw-r--r--pkgs/development/python-modules/iterfzf/default.nix62
-rw-r--r--pkgs/development/python-modules/itunespy/default.nix2
-rw-r--r--pkgs/development/python-modules/ixia/default.nix30
-rw-r--r--pkgs/development/python-modules/jaxlib/default.nix2
-rw-r--r--pkgs/development/python-modules/jc/default.nix4
-rw-r--r--pkgs/development/python-modules/jdcal/default.nix2
-rw-r--r--pkgs/development/python-modules/jedi-language-server/default.nix2
-rw-r--r--pkgs/development/python-modules/jedi/default.nix2
-rw-r--r--pkgs/development/python-modules/jenkinsapi/default.nix2
-rw-r--r--pkgs/development/python-modules/jishaku/default.nix2
-rw-r--r--pkgs/development/python-modules/jiwer/default.nix2
-rw-r--r--pkgs/development/python-modules/jmp/default.nix2
-rw-r--r--pkgs/development/python-modules/jpype1/default.nix2
-rw-r--r--pkgs/development/python-modules/json-stream-rs-tokenizer/default.nix2
-rw-r--r--pkgs/development/python-modules/json5/default.nix2
-rw-r--r--pkgs/development/python-modules/jsonargparse/default.nix4
-rw-r--r--pkgs/development/python-modules/jsonmerge/default.nix2
-rw-r--r--pkgs/development/python-modules/jsonpath-rw/default.nix2
-rw-r--r--pkgs/development/python-modules/jsonpath/default.nix2
-rw-r--r--pkgs/development/python-modules/jsonref/default.nix2
-rw-r--r--pkgs/development/python-modules/jsonrpc-async/default.nix2
-rw-r--r--pkgs/development/python-modules/jsonrpc-base/default.nix2
-rw-r--r--pkgs/development/python-modules/jsonrpc-websocket/default.nix2
-rw-r--r--pkgs/development/python-modules/jsonrpclib-pelix/default.nix4
-rw-r--r--pkgs/development/python-modules/jsonschema/default.nix2
-rw-r--r--pkgs/development/python-modules/jsonstreams/default.nix2
-rw-r--r--pkgs/development/python-modules/jstyleson/default.nix2
-rw-r--r--pkgs/development/python-modules/jug/default.nix2
-rw-r--r--pkgs/development/python-modules/jupyter-cache/default.nix2
-rw-r--r--pkgs/development/python-modules/jupyter-client/default.nix9
-rw-r--r--pkgs/development/python-modules/jupyter-contrib-nbextensions/default.nix2
-rw-r--r--pkgs/development/python-modules/jupyter-nbextensions-configurator/default.nix29
-rw-r--r--pkgs/development/python-modules/jupyter-packaging/default.nix1
-rw-r--r--pkgs/development/python-modules/jupyter-server-fileid/default.nix2
-rw-r--r--pkgs/development/python-modules/jupyter-server-terminals/default.nix2
-rw-r--r--pkgs/development/python-modules/jupyter-server/default.nix6
-rw-r--r--pkgs/development/python-modules/jupyter-ui-poll/default.nix19
-rw-r--r--pkgs/development/python-modules/jupyterhub/default.nix171
-rw-r--r--pkgs/development/python-modules/jupyterlab-server/default.nix14
-rw-r--r--pkgs/development/python-modules/jupyterlab-widgets/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyterlab/default.nix8
-rw-r--r--pkgs/development/python-modules/k5test/default.nix1
-rw-r--r--pkgs/development/python-modules/kaitaistruct/default.nix8
-rw-r--r--pkgs/development/python-modules/kanidm/default.nix6
-rw-r--r--pkgs/development/python-modules/karton-dashboard/default.nix4
-rw-r--r--pkgs/development/python-modules/kconfiglib/default.nix2
-rw-r--r--pkgs/development/python-modules/keep/default.nix2
-rw-r--r--pkgs/development/python-modules/keepalive/default.nix2
-rw-r--r--pkgs/development/python-modules/keras/default.nix75
-rw-r--r--pkgs/development/python-modules/keyutils/default.nix2
-rw-r--r--pkgs/development/python-modules/khanaa/default.nix2
-rw-r--r--pkgs/development/python-modules/kinparse/default.nix2
-rw-r--r--pkgs/development/python-modules/kivy-garden/default.nix2
-rw-r--r--pkgs/development/python-modules/kivy/default.nix3
-rw-r--r--pkgs/development/python-modules/klaus/default.nix6
-rw-r--r--pkgs/development/python-modules/knack/default.nix2
-rw-r--r--pkgs/development/python-modules/korean-lunar-calendar/default.nix2
-rw-r--r--pkgs/development/python-modules/krfzf-py/default.nix2
-rw-r--r--pkgs/development/python-modules/kserve/default.nix16
-rw-r--r--pkgs/development/python-modules/lacuscore/default.nix6
-rw-r--r--pkgs/development/python-modules/langchain-chroma/default.nix52
-rw-r--r--pkgs/development/python-modules/langchain-community/default.nix61
-rw-r--r--pkgs/development/python-modules/langchain-core/default.nix69
-rw-r--r--pkgs/development/python-modules/langchain-text-splitters/default.nix42
-rw-r--r--pkgs/development/python-modules/langchain/default.nix79
-rw-r--r--pkgs/development/python-modules/langfuse/default.nix63
-rw-r--r--pkgs/development/python-modules/langsmith/default.nix13
-rw-r--r--pkgs/development/python-modules/lark/default.nix2
-rw-r--r--pkgs/development/python-modules/laszip/default.nix4
-rw-r--r--pkgs/development/python-modules/latex2pydata/default.nix33
-rw-r--r--pkgs/development/python-modules/laundrify-aio/default.nix4
-rw-r--r--pkgs/development/python-modules/layoutparser/default.nix2
-rw-r--r--pkgs/development/python-modules/lazr-restfulclient/default.nix2
-rw-r--r--pkgs/development/python-modules/lazr-uri/default.nix2
-rw-r--r--pkgs/development/python-modules/lazy-imports/default.nix2
-rw-r--r--pkgs/development/python-modules/lazy-object-proxy/default.nix2
-rw-r--r--pkgs/development/python-modules/lcgit/default.nix2
-rw-r--r--pkgs/development/python-modules/ldap3/default.nix2
-rw-r--r--pkgs/development/python-modules/ldappool/default.nix2
-rw-r--r--pkgs/development/python-modules/ldaptor/default.nix2
-rw-r--r--pkgs/development/python-modules/leb128/default.nix2
-rw-r--r--pkgs/development/python-modules/ledger-bitcoin/default.nix2
-rw-r--r--pkgs/development/python-modules/ledgerblue/default.nix4
-rw-r--r--pkgs/development/python-modules/ledgercomm/default.nix2
-rw-r--r--pkgs/development/python-modules/ledgerwallet/default.nix3
-rw-r--r--pkgs/development/python-modules/libcloud/default.nix2
-rw-r--r--pkgs/development/python-modules/libgpuarray/default.nix2
-rw-r--r--pkgs/development/python-modules/libgravatar/default.nix2
-rw-r--r--pkgs/development/python-modules/libkeepass/default.nix2
-rw-r--r--pkgs/development/python-modules/libknot/default.nix7
-rw-r--r--pkgs/development/python-modules/liblarch/default.nix2
-rw-r--r--pkgs/development/python-modules/libmambapy/default.nix2
-rw-r--r--pkgs/development/python-modules/libpysal/default.nix86
-rw-r--r--pkgs/development/python-modules/libretranslate/default.nix4
-rw-r--r--pkgs/development/python-modules/libtmux/default.nix18
-rw-r--r--pkgs/development/python-modules/libvirt/default.nix14
-rw-r--r--pkgs/development/python-modules/life360/default.nix17
-rw-r--r--pkgs/development/python-modules/lightgbm/default.nix2
-rw-r--r--pkgs/development/python-modules/lima/default.nix2
-rw-r--r--pkgs/development/python-modules/limnoria/default.nix2
-rw-r--r--pkgs/development/python-modules/linear-operator/default.nix2
-rw-r--r--pkgs/development/python-modules/linecache2/default.nix2
-rw-r--r--pkgs/development/python-modules/lineedit/default.nix2
-rw-r--r--pkgs/development/python-modules/lingva/default.nix4
-rw-r--r--pkgs/development/python-modules/linode/default.nix2
-rw-r--r--pkgs/development/python-modules/litellm/default.nix4
-rw-r--r--pkgs/development/python-modules/litemapy/default.nix2
-rw-r--r--pkgs/development/python-modules/llama-index-agent-openai/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-core/default.nix10
-rw-r--r--pkgs/development/python-modules/llama-index-embeddings-gemini/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-embeddings-google/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-embeddings-huggingface/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-embeddings-openai/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-graph-stores-nebula/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-graph-stores-neo4j/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-llms-ollama/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-llms-openai/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-readers-database/default.nix1
-rw-r--r--pkgs/development/python-modules/llama-index-readers-file/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-readers-s3/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-readers-twitter/default.nix1
-rw-r--r--pkgs/development/python-modules/llama-index-vector-stores-chroma/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-vector-stores-postgres/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-vector-stores-qdrant/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index/default.nix17
-rw-r--r--pkgs/development/python-modules/llama-parse/default.nix4
-rw-r--r--pkgs/development/python-modules/llmx/default.nix73
-rw-r--r--pkgs/development/python-modules/llvmlite/default.nix2
-rw-r--r--pkgs/development/python-modules/lmcloud/default.nix4
-rw-r--r--pkgs/development/python-modules/loadcredential/default.nix2
-rw-r--r--pkgs/development/python-modules/localstack-client/default.nix2
-rw-r--r--pkgs/development/python-modules/localstack/default.nix2
-rw-r--r--pkgs/development/python-modules/localzone/default.nix2
-rw-r--r--pkgs/development/python-modules/log-symbols/default.nix2
-rw-r--r--pkgs/development/python-modules/logbook/default.nix2
-rw-r--r--pkgs/development/python-modules/logi-circle/default.nix2
-rw-r--r--pkgs/development/python-modules/loguru-logging-intercept/default.nix30
-rw-r--r--pkgs/development/python-modules/loguru/default.nix4
-rw-r--r--pkgs/development/python-modules/loopy/default.nix2
-rw-r--r--pkgs/development/python-modules/losant-rest/default.nix4
-rw-r--r--pkgs/development/python-modules/lsp-tree-sitter/default.nix55
-rw-r--r--pkgs/development/python-modules/lunarcalendar/default.nix2
-rw-r--r--pkgs/development/python-modules/lupa/default.nix4
-rw-r--r--pkgs/development/python-modules/luqum/default.nix2
-rw-r--r--pkgs/development/python-modules/lxmf/default.nix4
-rw-r--r--pkgs/development/python-modules/m2crypto/default.nix2
-rw-r--r--pkgs/development/python-modules/macaddress/default.nix2
-rw-r--r--pkgs/development/python-modules/macaroonbakery/default.nix2
-rw-r--r--pkgs/development/python-modules/magic/default.nix2
-rw-r--r--pkgs/development/python-modules/mahotas/default.nix1
-rw-r--r--pkgs/development/python-modules/mail-parser/default.nix2
-rw-r--r--pkgs/development/python-modules/mailcap-fix/default.nix2
-rw-r--r--pkgs/development/python-modules/mailchimp/default.nix2
-rw-r--r--pkgs/development/python-modules/mailsuite/default.nix2
-rw-r--r--pkgs/development/python-modules/manifestoo-core/default.nix6
-rw-r--r--pkgs/development/python-modules/manifestoo/default.nix2
-rw-r--r--pkgs/development/python-modules/manim/default.nix2
-rw-r--r--pkgs/development/python-modules/manuel/default.nix2
-rw-r--r--pkgs/development/python-modules/mapbox-earcut/default.nix3
-rw-r--r--pkgs/development/python-modules/mapclassify/default.nix58
-rw-r--r--pkgs/development/python-modules/marimo/default.nix8
-rw-r--r--pkgs/development/python-modules/markdown-macros/default.nix2
-rw-r--r--pkgs/development/python-modules/markdown2/default.nix2
-rw-r--r--pkgs/development/python-modules/markuppy/default.nix2
-rw-r--r--pkgs/development/python-modules/mat2/default.nix2
-rw-r--r--pkgs/development/python-modules/matchpy/default.nix2
-rw-r--r--pkgs/development/python-modules/matplotlib-sixel/default.nix2
-rw-r--r--pkgs/development/python-modules/matplotlib-venn/default.nix40
-rw-r--r--pkgs/development/python-modules/matrix-api-async/default.nix2
-rw-r--r--pkgs/development/python-modules/matrix-nio/default.nix3
-rw-r--r--pkgs/development/python-modules/mattermostdriver/default.nix2
-rw-r--r--pkgs/development/python-modules/mbstrdecoder/default.nix2
-rw-r--r--pkgs/development/python-modules/mdformat-mkdocs/default.nix4
-rw-r--r--pkgs/development/python-modules/mdformat-tables/default.nix2
-rw-r--r--pkgs/development/python-modules/mdtraj/default.nix2
-rw-r--r--pkgs/development/python-modules/mdx-truly-sane-lists/default.nix3
-rw-r--r--pkgs/development/python-modules/mecab-python3/default.nix2
-rw-r--r--pkgs/development/python-modules/mediapy/default.nix4
-rw-r--r--pkgs/development/python-modules/meeko/default.nix4
-rw-r--r--pkgs/development/python-modules/meep/default.nix4
-rw-r--r--pkgs/development/python-modules/meilisearch/default.nix4
-rw-r--r--pkgs/development/python-modules/meld3/default.nix2
-rw-r--r--pkgs/development/python-modules/memestra/default.nix2
-rw-r--r--pkgs/development/python-modules/memory-allocator/default.nix2
-rw-r--r--pkgs/development/python-modules/memory-profiler/default.nix2
-rw-r--r--pkgs/development/python-modules/mercadopago/default.nix2
-rw-r--r--pkgs/development/python-modules/merge3/default.nix4
-rw-r--r--pkgs/development/python-modules/mergedb/default.nix2
-rw-r--r--pkgs/development/python-modules/mergedeep/default.nix2
-rw-r--r--pkgs/development/python-modules/mergedict/default.nix2
-rw-r--r--pkgs/development/python-modules/mesa/default.nix2
-rw-r--r--pkgs/development/python-modules/meshio/default.nix2
-rw-r--r--pkgs/development/python-modules/meshtastic/default.nix2
-rw-r--r--pkgs/development/python-modules/mhcflurry/default.nix19
-rw-r--r--pkgs/development/python-modules/microsoft-kiota-abstractions/default.nix4
-rw-r--r--pkgs/development/python-modules/midiutil/default.nix2
-rw-r--r--pkgs/development/python-modules/milc/default.nix2
-rw-r--r--pkgs/development/python-modules/milksnake/default.nix2
-rw-r--r--pkgs/development/python-modules/minari/default.nix2
-rw-r--r--pkgs/development/python-modules/minexr/default.nix2
-rw-r--r--pkgs/development/python-modules/minichain/default.nix2
-rw-r--r--pkgs/development/python-modules/minimock/default.nix2
-rw-r--r--pkgs/development/python-modules/minio/default.nix4
-rw-r--r--pkgs/development/python-modules/mip/default.nix2
-rw-r--r--pkgs/development/python-modules/misaka/default.nix2
-rw-r--r--pkgs/development/python-modules/misoc/default.nix2
-rw-r--r--pkgs/development/python-modules/mistune/default.nix2
-rw-r--r--pkgs/development/python-modules/mitmproxy-macos/default.nix2
-rw-r--r--pkgs/development/python-modules/mitmproxy-rs/default.nix2
-rw-r--r--pkgs/development/python-modules/mitmproxy/default.nix6
-rw-r--r--pkgs/development/python-modules/mizani/default.nix4
-rw-r--r--pkgs/development/python-modules/mkdocs-autolinks-plugin/default.nix2
-rw-r--r--pkgs/development/python-modules/mkdocs-drawio-exporter/default.nix2
-rw-r--r--pkgs/development/python-modules/mkdocs-exclude/default.nix2
-rw-r--r--pkgs/development/python-modules/mkdocs-git-revision-date-localized-plugin/default.nix4
-rw-r--r--pkgs/development/python-modules/mkdocs-gitlab-plugin/default.nix2
-rw-r--r--pkgs/development/python-modules/mkdocs-jupyter/default.nix2
-rw-r--r--pkgs/development/python-modules/mkdocs-macros/default.nix2
-rw-r--r--pkgs/development/python-modules/mkdocs-mermaid2-plugin/default.nix2
-rw-r--r--pkgs/development/python-modules/mkdocs-minify-plugin/default.nix2
-rw-r--r--pkgs/development/python-modules/mkdocs-redoc-tag/default.nix2
-rw-r--r--pkgs/development/python-modules/mkdocs-rss-plugin/default.nix6
-rw-r--r--pkgs/development/python-modules/mkdocs-swagger-ui-tag/default.nix2
-rw-r--r--pkgs/development/python-modules/mkdocstrings-python/default.nix4
-rw-r--r--pkgs/development/python-modules/ml-collections/default.nix2
-rw-r--r--pkgs/development/python-modules/ml-dtypes/default.nix2
-rw-r--r--pkgs/development/python-modules/mlx/default.nix2
-rw-r--r--pkgs/development/python-modules/mlxtend/default.nix2
-rw-r--r--pkgs/development/python-modules/mmcv/default.nix6
-rw-r--r--pkgs/development/python-modules/mmtf-python/default.nix2
-rw-r--r--pkgs/development/python-modules/mne-python/default.nix33
-rw-r--r--pkgs/development/python-modules/mock-open/default.nix2
-rw-r--r--pkgs/development/python-modules/mocket/default.nix2
-rw-r--r--pkgs/development/python-modules/mockfs/default.nix2
-rw-r--r--pkgs/development/python-modules/moddb/default.nix2
-rw-r--r--pkgs/development/python-modules/model-bakery/default.nix4
-rw-r--r--pkgs/development/python-modules/model-checker/default.nix6
-rw-r--r--pkgs/development/python-modules/modestmaps/default.nix2
-rw-r--r--pkgs/development/python-modules/mohawk/default.nix2
-rw-r--r--pkgs/development/python-modules/molbar/default.nix73
-rw-r--r--pkgs/development/python-modules/molecule/default.nix4
-rw-r--r--pkgs/development/python-modules/momepy/default.nix57
-rw-r--r--pkgs/development/python-modules/mongoquery/default.nix2
-rw-r--r--pkgs/development/python-modules/monkeyhex/default.nix2
-rw-r--r--pkgs/development/python-modules/monotonic/default.nix2
-rw-r--r--pkgs/development/python-modules/monty/default.nix4
-rw-r--r--pkgs/development/python-modules/monzopy/default.nix4
-rw-r--r--pkgs/development/python-modules/more-properties/default.nix2
-rw-r--r--pkgs/development/python-modules/morecantile/default.nix54
-rw-r--r--pkgs/development/python-modules/morfessor/default.nix2
-rw-r--r--pkgs/development/python-modules/mouseinfo/default.nix2
-rw-r--r--pkgs/development/python-modules/mpd2/default.nix2
-rw-r--r--pkgs/development/python-modules/mpi4py/default.nix1
-rw-r--r--pkgs/development/python-modules/mplhep/default.nix4
-rw-r--r--pkgs/development/python-modules/mpmath/default.nix2
-rw-r--r--pkgs/development/python-modules/mpv/default.nix6
-rw-r--r--pkgs/development/python-modules/mpyq/default.nix2
-rw-r--r--pkgs/development/python-modules/msal-extensions/default.nix2
-rw-r--r--pkgs/development/python-modules/msal/default.nix4
-rw-r--r--pkgs/development/python-modules/mscerts/default.nix4
-rw-r--r--pkgs/development/python-modules/msg-parser/default.nix2
-rw-r--r--pkgs/development/python-modules/msoffcrypto-tool/default.nix4
-rw-r--r--pkgs/development/python-modules/msrest/default.nix2
-rw-r--r--pkgs/development/python-modules/msrestazure/default.nix2
-rw-r--r--pkgs/development/python-modules/mujoco/default.nix15
-rw-r--r--pkgs/development/python-modules/multipledispatch/default.nix2
-rw-r--r--pkgs/development/python-modules/multiset/default.nix2
-rw-r--r--pkgs/development/python-modules/munch/default.nix2
-rw-r--r--pkgs/development/python-modules/mung/default.nix4
-rw-r--r--pkgs/development/python-modules/mutag/default.nix29
-rw-r--r--pkgs/development/python-modules/mwcli/default.nix2
-rw-r--r--pkgs/development/python-modules/mwtypes/default.nix2
-rw-r--r--pkgs/development/python-modules/mwxml/default.nix2
-rw-r--r--pkgs/development/python-modules/mygpoclient/default.nix2
-rw-r--r--pkgs/development/python-modules/myhdl/default.nix2
-rw-r--r--pkgs/development/python-modules/mypy/default.nix12
-rw-r--r--pkgs/development/python-modules/mysql-connector/default.nix2
-rw-r--r--pkgs/development/python-modules/myst-docutils/default.nix2
-rw-r--r--pkgs/development/python-modules/myst-nb/default.nix2
-rw-r--r--pkgs/development/python-modules/naked/default.nix2
-rw-r--r--pkgs/development/python-modules/nameko/default.nix2
-rw-r--r--pkgs/development/python-modules/namex/default.nix36
-rw-r--r--pkgs/development/python-modules/nanobind/default.nix23
-rw-r--r--pkgs/development/python-modules/nanoid/default.nix2
-rw-r--r--pkgs/development/python-modules/napari-console/default.nix2
-rw-r--r--pkgs/development/python-modules/napari-svg/default.nix2
-rw-r--r--pkgs/development/python-modules/napari/default.nix2
-rw-r--r--pkgs/development/python-modules/natural/default.nix32
-rw-r--r--pkgs/development/python-modules/nbclassic/default.nix42
-rw-r--r--pkgs/development/python-modules/nbclient/default.nix2
-rw-r--r--pkgs/development/python-modules/nbdev/default.nix4
-rw-r--r--pkgs/development/python-modules/nbexec/default.nix11
-rw-r--r--pkgs/development/python-modules/nbformat/default.nix2
-rw-r--r--pkgs/development/python-modules/nbmake/default.nix10
-rw-r--r--pkgs/development/python-modules/nbmerge/default.nix2
-rw-r--r--pkgs/development/python-modules/nbtlib/default.nix2
-rw-r--r--pkgs/development/python-modules/nbval/default.nix2
-rw-r--r--pkgs/development/python-modules/nbxmpp/default.nix4
-rw-r--r--pkgs/development/python-modules/nengo/default.nix2
-rw-r--r--pkgs/development/python-modules/neo4j/default.nix4
-rw-r--r--pkgs/development/python-modules/nestedtext/default.nix2
-rw-r--r--pkgs/development/python-modules/netaddr/default.nix2
-rw-r--r--pkgs/development/python-modules/netapp-ontap/default.nix23
-rw-r--r--pkgs/development/python-modules/nettigo-air-monitor/default.nix12
-rw-r--r--pkgs/development/python-modules/newick/default.nix2
-rw-r--r--pkgs/development/python-modules/nfcpy/default.nix2
-rw-r--r--pkgs/development/python-modules/niaarm/default.nix2
-rw-r--r--pkgs/development/python-modules/niaclass/default.nix2
-rw-r--r--pkgs/development/python-modules/nibe/default.nix10
-rw-r--r--pkgs/development/python-modules/nilearn/default.nix2
-rw-r--r--pkgs/development/python-modules/ninja/default.nix2
-rw-r--r--pkgs/development/python-modules/niworkflows/default.nix4
-rw-r--r--pkgs/development/python-modules/nocasedict/default.nix2
-rw-r--r--pkgs/development/python-modules/nocaselist/default.nix2
-rw-r--r--pkgs/development/python-modules/nocturne/default.nix2
-rw-r--r--pkgs/development/python-modules/node-semver/default.nix2
-rw-r--r--pkgs/development/python-modules/nodeenv/default.nix14
-rw-r--r--pkgs/development/python-modules/noneprompt/default.nix39
-rw-r--r--pkgs/development/python-modules/nose-exclude/default.nix29
-rw-r--r--pkgs/development/python-modules/nose-timer/default.nix2
-rw-r--r--pkgs/development/python-modules/nose/default.nix2
-rw-r--r--pkgs/development/python-modules/nosexcover/default.nix33
-rw-r--r--pkgs/development/python-modules/notebook-shim/default.nix2
-rw-r--r--pkgs/development/python-modules/notebook/default.nix12
-rw-r--r--pkgs/development/python-modules/notifications-python-client/default.nix4
-rw-r--r--pkgs/development/python-modules/notmuch/default.nix2
-rw-r--r--pkgs/development/python-modules/nuitka/default.nix4
-rw-r--r--pkgs/development/python-modules/numericalunits/default.nix2
-rw-r--r--pkgs/development/python-modules/nunavut/default.nix2
-rw-r--r--pkgs/development/python-modules/nvdlib/default.nix4
-rw-r--r--pkgs/development/python-modules/nvidia-ml-py/default.nix4
-rw-r--r--pkgs/development/python-modules/oauth2client/default.nix2
-rw-r--r--pkgs/development/python-modules/oauthenticator/default.nix14
-rw-r--r--pkgs/development/python-modules/obfsproxy/default.nix2
-rw-r--r--pkgs/development/python-modules/ochre/default.nix2
-rw-r--r--pkgs/development/python-modules/oci/default.nix4
-rw-r--r--pkgs/development/python-modules/ocrmypdf/default.nix4
-rw-r--r--pkgs/development/python-modules/okonomiyaki/default.nix4
-rw-r--r--pkgs/development/python-modules/ollama/default.nix4
-rw-r--r--pkgs/development/python-modules/ome-zarr/default.nix6
-rw-r--r--pkgs/development/python-modules/oncalendar/default.nix2
-rw-r--r--pkgs/development/python-modules/onetimepad/default.nix2
-rw-r--r--pkgs/development/python-modules/online-judge-tools/default.nix22
-rw-r--r--pkgs/development/python-modules/open-clip-torch/default.nix2
-rw-r--r--pkgs/development/python-modules/openai-triton/bin.nix2
-rw-r--r--pkgs/development/python-modules/openai/default.nix4
-rw-r--r--pkgs/development/python-modules/openapi3/default.nix2
-rw-r--r--pkgs/development/python-modules/opencensus/default.nix2
-rw-r--r--pkgs/development/python-modules/openidc-client/default.nix2
-rw-r--r--pkgs/development/python-modules/openrazer/daemon.nix96
-rw-r--r--pkgs/development/python-modules/openrazer/pylib.nix2
-rw-r--r--pkgs/development/python-modules/openrouteservice/default.nix2
-rw-r--r--pkgs/development/python-modules/opensfm/default.nix1
-rw-r--r--pkgs/development/python-modules/openstacksdk/default.nix2
-rw-r--r--pkgs/development/python-modules/opentelemetry-exporter-prometheus/default.nix5
-rw-r--r--pkgs/development/python-modules/opentelemetry-semantic-conventions/default.nix5
-rw-r--r--pkgs/development/python-modules/opentelemetry-test-utils/default.nix5
-rw-r--r--pkgs/development/python-modules/opower/default.nix14
-rw-r--r--pkgs/development/python-modules/optimum/default.nix18
-rw-r--r--pkgs/development/python-modules/optuna/default.nix2
-rw-r--r--pkgs/development/python-modules/oracledb/default.nix4
-rw-r--r--pkgs/development/python-modules/oras/default.nix4
-rw-r--r--pkgs/development/python-modules/ordered-set/default.nix2
-rw-r--r--pkgs/development/python-modules/orderedmultidict/default.nix2
-rw-r--r--pkgs/development/python-modules/orderedset/default.nix2
-rw-r--r--pkgs/development/python-modules/orjson/default.nix6
-rw-r--r--pkgs/development/python-modules/orm/default.nix2
-rw-r--r--pkgs/development/python-modules/osc/default.nix4
-rw-r--r--pkgs/development/python-modules/oscpy/default.nix2
-rw-r--r--pkgs/development/python-modules/oslo-db/default.nix4
-rw-r--r--pkgs/development/python-modules/oslo-log/default.nix4
-rw-r--r--pkgs/development/python-modules/osmpythontools/default.nix2
-rw-r--r--pkgs/development/python-modules/osqp/default.nix6
-rw-r--r--pkgs/development/python-modules/outcome/default.nix2
-rw-r--r--pkgs/development/python-modules/outspin/default.nix32
-rw-r--r--pkgs/development/python-modules/overly/default.nix2
-rw-r--r--pkgs/development/python-modules/owslib/default.nix20
-rw-r--r--pkgs/development/python-modules/paddle2onnx/default.nix5
-rw-r--r--pkgs/development/python-modules/pagelabels/default.nix2
-rw-r--r--pkgs/development/python-modules/palettable/default.nix2
-rw-r--r--pkgs/development/python-modules/pandoc-attributes/default.nix2
-rw-r--r--pkgs/development/python-modules/pandocfilters/default.nix2
-rw-r--r--pkgs/development/python-modules/panel/default.nix6
-rw-r--r--pkgs/development/python-modules/paperbush/default.nix29
-rw-r--r--pkgs/development/python-modules/papis-python-rofi/default.nix2
-rw-r--r--pkgs/development/python-modules/para/default.nix2
-rw-r--r--pkgs/development/python-modules/parfive/default.nix2
-rw-r--r--pkgs/development/python-modules/parsley/default.nix2
-rw-r--r--pkgs/development/python-modules/parso/default.nix3
-rw-r--r--pkgs/development/python-modules/particle/default.nix1
-rw-r--r--pkgs/development/python-modules/pasimple/default.nix2
-rw-r--r--pkgs/development/python-modules/passlib/default.nix2
-rw-r--r--pkgs/development/python-modules/pastescript/default.nix8
-rw-r--r--pkgs/development/python-modules/patch-ng/default.nix2
-rw-r--r--pkgs/development/python-modules/patch/default.nix2
-rw-r--r--pkgs/development/python-modules/pathlib2/default.nix2
-rw-r--r--pkgs/development/python-modules/pathy/default.nix2
-rw-r--r--pkgs/development/python-modules/patiencediff/default.nix4
-rw-r--r--pkgs/development/python-modules/patsy/default.nix2
-rw-r--r--pkgs/development/python-modules/paver/default.nix2
-rw-r--r--pkgs/development/python-modules/pcffont/default.nix4
-rw-r--r--pkgs/development/python-modules/pcpp/default.nix2
-rw-r--r--pkgs/development/python-modules/pdfplumber/default.nix10
-rw-r--r--pkgs/development/python-modules/pdfrw/default.nix2
-rw-r--r--pkgs/development/python-modules/pdm-backend/default.nix2
-rw-r--r--pkgs/development/python-modules/pdm-pep517/default.nix2
-rw-r--r--pkgs/development/python-modules/pdoc-pyo3-sample-library/default.nix2
-rw-r--r--pkgs/development/python-modules/pdoc3/default.nix2
-rw-r--r--pkgs/development/python-modules/peaqevcore/default.nix4
-rw-r--r--pkgs/development/python-modules/peft/default.nix4
-rw-r--r--pkgs/development/python-modules/pep8-naming/default.nix6
-rw-r--r--pkgs/development/python-modules/peppercorn/default.nix2
-rw-r--r--pkgs/development/python-modules/permissionedforms/default.nix2
-rw-r--r--pkgs/development/python-modules/pettingzoo/default.nix2
-rw-r--r--pkgs/development/python-modules/pex/default.nix4
-rw-r--r--pkgs/development/python-modules/pexif/default.nix2
-rw-r--r--pkgs/development/python-modules/pgmpy/default.nix9
-rw-r--r--pkgs/development/python-modules/phe/default.nix2
-rw-r--r--pkgs/development/python-modules/phpserialize/default.nix2
-rw-r--r--pkgs/development/python-modules/piano-transcription-inference/default.nix2
-rw-r--r--pkgs/development/python-modules/piccolo-theme/default.nix16
-rw-r--r--pkgs/development/python-modules/picos/default.nix2
-rw-r--r--pkgs/development/python-modules/pika-pool/default.nix2
-rw-r--r--pkgs/development/python-modules/pilkit/default.nix2
-rw-r--r--pkgs/development/python-modules/pillow-jpls/default.nix2
-rw-r--r--pkgs/development/python-modules/pillow-simd/default.nix2
-rw-r--r--pkgs/development/python-modules/pillow/default.nix2
-rw-r--r--pkgs/development/python-modules/pims/default.nix4
-rw-r--r--pkgs/development/python-modules/pinboard/default.nix2
-rw-r--r--pkgs/development/python-modules/pinecone-client/default.nix2
-rw-r--r--pkgs/development/python-modules/pins/default.nix8
-rw-r--r--pkgs/development/python-modules/pip/default.nix2
-rw-r--r--pkgs/development/python-modules/pipdeptree/default.nix4
-rw-r--r--pkgs/development/python-modules/pipenv-poetry-migrate/default.nix4
-rw-r--r--pkgs/development/python-modules/pipetools/default.nix2
-rw-r--r--pkgs/development/python-modules/pivy/default.nix2
-rw-r--r--pkgs/development/python-modules/pixel-font-builder/default.nix6
-rw-r--r--pkgs/development/python-modules/pkgutil-resolve-name/default.nix2
-rw-r--r--pkgs/development/python-modules/pkutils/default.nix2
-rw-r--r--pkgs/development/python-modules/playwrightcapture/default.nix4
-rw-r--r--pkgs/development/python-modules/plotly/default.nix4
-rw-r--r--pkgs/development/python-modules/pluginbase/default.nix2
-rw-r--r--pkgs/development/python-modules/plugnplay/default.nix2
-rw-r--r--pkgs/development/python-modules/plugp100/default.nix51
-rw-r--r--pkgs/development/python-modules/plugwise/default.nix4
-rw-r--r--pkgs/development/python-modules/plux/default.nix1
-rw-r--r--pkgs/development/python-modules/plyer/default.nix1
-rw-r--r--pkgs/development/python-modules/plyplus/default.nix2
-rw-r--r--pkgs/development/python-modules/pmdarima/default.nix2
-rw-r--r--pkgs/development/python-modules/pmw/default.nix2
-rw-r--r--pkgs/development/python-modules/pnglatex/default.nix2
-rw-r--r--pkgs/development/python-modules/poetry-semver/default.nix2
-rw-r--r--pkgs/development/python-modules/polib/default.nix2
-rw-r--r--pkgs/development/python-modules/polyswarm-api/default.nix4
-rw-r--r--pkgs/development/python-modules/pooch/default.nix2
-rw-r--r--pkgs/development/python-modules/portalocker/default.nix2
-rw-r--r--pkgs/development/python-modules/potr/default.nix2
-rw-r--r--pkgs/development/python-modules/powerline-mem-segment/default.nix2
-rw-r--r--pkgs/development/python-modules/powerline/default.nix2
-rw-r--r--pkgs/development/python-modules/poyo/default.nix2
-rw-r--r--pkgs/development/python-modules/pplpy/default.nix2
-rw-r--r--pkgs/development/python-modules/pprintpp/default.nix2
-rw-r--r--pkgs/development/python-modules/ppscore/default.nix8
-rw-r--r--pkgs/development/python-modules/priority/default.nix2
-rw-r--r--pkgs/development/python-modules/prometheus-api-client/default.nix2
-rw-r--r--pkgs/development/python-modules/prompthub-py/default.nix2
-rw-r--r--pkgs/development/python-modules/prophet/default.nix2
-rw-r--r--pkgs/development/python-modules/propka/default.nix2
-rw-r--r--pkgs/development/python-modules/protobuf3-to-dict/default.nix2
-rw-r--r--pkgs/development/python-modules/prox-tv/default.nix2
-rw-r--r--pkgs/development/python-modules/proxy-py/default.nix1
-rw-r--r--pkgs/development/python-modules/psd-tools/default.nix4
-rw-r--r--pkgs/development/python-modules/psrpcore/default.nix2
-rw-r--r--pkgs/development/python-modules/psycopg2cffi/default.nix2
-rw-r--r--pkgs/development/python-modules/ptable/default.nix2
-rw-r--r--pkgs/development/python-modules/ptpython/default.nix6
-rw-r--r--pkgs/development/python-modules/ptyprocess/default.nix8
-rw-r--r--pkgs/development/python-modules/publicsuffixlist/default.nix4
-rw-r--r--pkgs/development/python-modules/pudb/default.nix2
-rw-r--r--pkgs/development/python-modules/pulumi-aws/default.nix4
-rw-r--r--pkgs/development/python-modules/puremagic/default.nix4
-rw-r--r--pkgs/development/python-modules/pushbullet-py/default.nix2
-rw-r--r--pkgs/development/python-modules/pushover-complete/default.nix2
-rw-r--r--pkgs/development/python-modules/py-air-control/default.nix2
-rw-r--r--pkgs/development/python-modules/py-canary/default.nix4
-rw-r--r--pkgs/development/python-modules/py-deprecate/default.nix2
-rw-r--r--pkgs/development/python-modules/py-lru-cache/default.nix2
-rw-r--r--pkgs/development/python-modules/py-partiql-parser/default.nix2
-rw-r--r--pkgs/development/python-modules/py-pdf-parser/default.nix2
-rw-r--r--pkgs/development/python-modules/py-slvs/default.nix50
-rw-r--r--pkgs/development/python-modules/py-sonic/default.nix2
-rw-r--r--pkgs/development/python-modules/py-sr25519-bindings/default.nix1
-rw-r--r--pkgs/development/python-modules/py-synologydsm-api/default.nix4
-rw-r--r--pkgs/development/python-modules/py3status/default.nix4
-rw-r--r--pkgs/development/python-modules/py4j/default.nix2
-rw-r--r--pkgs/development/python-modules/pyTelegramBotAPI/default.nix4
-rw-r--r--pkgs/development/python-modules/pyahocorasick/default.nix1
-rw-r--r--pkgs/development/python-modules/pyannote-metrics/default.nix43
-rw-r--r--pkgs/development/python-modules/pyarrow/default.nix2
-rw-r--r--pkgs/development/python-modules/pyasn1-modules/default.nix2
-rw-r--r--pkgs/development/python-modules/pyathena/default.nix4
-rw-r--r--pkgs/development/python-modules/pyautogui/default.nix2
-rw-r--r--pkgs/development/python-modules/pybids/default.nix4
-rw-r--r--pkgs/development/python-modules/pybloom-live/default.nix2
-rw-r--r--pkgs/development/python-modules/pybtex-docutils/default.nix2
-rw-r--r--pkgs/development/python-modules/pybtex/default.nix2
-rw-r--r--pkgs/development/python-modules/pycaption/default.nix4
-rw-r--r--pkgs/development/python-modules/pycardano/default.nix2
-rw-r--r--pkgs/development/python-modules/pycategories/infix.nix2
-rw-r--r--pkgs/development/python-modules/pycfmodel/default.nix22
-rw-r--r--pkgs/development/python-modules/pycomm3/default.nix2
-rw-r--r--pkgs/development/python-modules/pycrdt-websocket/default.nix4
-rw-r--r--pkgs/development/python-modules/pycritty/default.nix2
-rw-r--r--pkgs/development/python-modules/pycuda/default.nix2
-rw-r--r--pkgs/development/python-modules/pycycling/default.nix33
-rw-r--r--pkgs/development/python-modules/pycyphal/default.nix2
-rw-r--r--pkgs/development/python-modules/pydal/default.nix4
-rw-r--r--pkgs/development/python-modules/pydantic-yaml-0/default.nix2
-rw-r--r--pkgs/development/python-modules/pydantic/1.nix4
-rw-r--r--pkgs/development/python-modules/pydeconz/default.nix22
-rw-r--r--pkgs/development/python-modules/pydes/default.nix2
-rw-r--r--pkgs/development/python-modules/pydiscourse/default.nix2
-rw-r--r--pkgs/development/python-modules/pydrawise/default.nix4
-rw-r--r--pkgs/development/python-modules/pydub/default.nix9
-rw-r--r--pkgs/development/python-modules/pydub/ffmpeg-fix-path.patch28
-rw-r--r--pkgs/development/python-modules/pydy/default.nix16
-rw-r--r--pkgs/development/python-modules/pyeclib/default.nix2
-rw-r--r--pkgs/development/python-modules/pyecowitt/default.nix16
-rw-r--r--pkgs/development/python-modules/pyedimax/default.nix17
-rw-r--r--pkgs/development/python-modules/pyee/default.nix2
-rw-r--r--pkgs/development/python-modules/pyefergy/default.nix32
-rw-r--r--pkgs/development/python-modules/pyemd/default.nix2
-rw-r--r--pkgs/development/python-modules/pyemvue/default.nix2
-rw-r--r--pkgs/development/python-modules/pyenvisalink/default.nix4
-rw-r--r--pkgs/development/python-modules/pyexcel-xls/default.nix2
-rw-r--r--pkgs/development/python-modules/pyexploitdb/default.nix4
-rw-r--r--pkgs/development/python-modules/pyfakewebcam/default.nix2
-rw-r--r--pkgs/development/python-modules/pyfftw/default.nix53
-rw-r--r--pkgs/development/python-modules/pyfireservicerota/default.nix1
-rw-r--r--pkgs/development/python-modules/pyflakes/default.nix2
-rw-r--r--pkgs/development/python-modules/pyfribidi/default.nix2
-rw-r--r--pkgs/development/python-modules/pyfume/default.nix2
-rw-r--r--pkgs/development/python-modules/pygame-gui/default.nix11
-rw-r--r--pkgs/development/python-modules/pygame-sdl2/default.nix2
-rw-r--r--pkgs/development/python-modules/pygeos/default.nix48
-rw-r--r--pkgs/development/python-modules/pygetwindow/default.nix2
-rw-r--r--pkgs/development/python-modules/pygit2/default.nix2
-rw-r--r--pkgs/development/python-modules/pyglet/default.nix2
-rw-r--r--pkgs/development/python-modules/pyglm/default.nix2
-rw-r--r--pkgs/development/python-modules/pygments-better-html/default.nix2
-rw-r--r--pkgs/development/python-modules/pygments-style-github/default.nix2
-rw-r--r--pkgs/development/python-modules/pygments/default.nix2
-rw-r--r--pkgs/development/python-modules/pygmt/default.nix2
-rw-r--r--pkgs/development/python-modules/pygpgme/default.nix2
-rw-r--r--pkgs/development/python-modules/pygrok/default.nix2
-rw-r--r--pkgs/development/python-modules/pygtail/default.nix2
-rw-r--r--pkgs/development/python-modules/pygtkspellcheck/default.nix2
-rw-r--r--pkgs/development/python-modules/pyhaversion/default.nix21
-rw-r--r--pkgs/development/python-modules/pyhocon/default.nix4
-rw-r--r--pkgs/development/python-modules/pyimpfuzzy/default.nix2
-rw-r--r--pkgs/development/python-modules/pyinfra/default.nix1
-rw-r--r--pkgs/development/python-modules/pyinstaller-versionfile/default.nix2
-rw-r--r--pkgs/development/python-modules/pyinsteon/default.nix4
-rw-r--r--pkgs/development/python-modules/pyiqvia/default.nix1
-rw-r--r--pkgs/development/python-modules/pyjnius/default.nix2
-rw-r--r--pkgs/development/python-modules/pyjson5/default.nix2
-rw-r--r--pkgs/development/python-modules/pykalman/default.nix2
-rw-r--r--pkgs/development/python-modules/pykdl/default.nix2
-rw-r--r--pkgs/development/python-modules/pykka/default.nix2
-rw-r--r--pkgs/development/python-modules/pykodi/default.nix2
-rw-r--r--pkgs/development/python-modules/pylast/default.nix13
-rw-r--r--pkgs/development/python-modules/pylatex/default.nix2
-rw-r--r--pkgs/development/python-modules/pylaunches/default.nix31
-rw-r--r--pkgs/development/python-modules/pylibacl/default.nix2
-rw-r--r--pkgs/development/python-modules/pylibjpeg-libjpeg/default.nix10
-rw-r--r--pkgs/development/python-modules/pylink-square/default.nix1
-rw-r--r--pkgs/development/python-modules/pylint-celery/default.nix2
-rw-r--r--pkgs/development/python-modules/pylint-django/default.nix2
-rw-r--r--pkgs/development/python-modules/pylint-flask/default.nix2
-rw-r--r--pkgs/development/python-modules/pylint/default.nix2
-rw-r--r--pkgs/development/python-modules/pylion/default.nix2
-rw-r--r--pkgs/development/python-modules/pylpsd/default.nix2
-rw-r--r--pkgs/development/python-modules/pylru/default.nix2
-rw-r--r--pkgs/development/python-modules/pyls-flake8/default.nix2
-rw-r--r--pkgs/development/python-modules/pylyrics/default.nix2
-rw-r--r--pkgs/development/python-modules/pymatgen/default.nix2
-rw-r--r--pkgs/development/python-modules/pymatreader/default.nix2
-rw-r--r--pkgs/development/python-modules/pymatting/default.nix2
-rw-r--r--pkgs/development/python-modules/pymbolic/default.nix2
-rw-r--r--pkgs/development/python-modules/pymc/default.nix12
-rw-r--r--pkgs/development/python-modules/pymdstat/default.nix2
-rw-r--r--pkgs/development/python-modules/pymetar/default.nix2
-rw-r--r--pkgs/development/python-modules/pymetno/default.nix2
-rw-r--r--pkgs/development/python-modules/pymilter/default.nix4
-rw-r--r--pkgs/development/python-modules/pymongo-inmemory/default.nix7
-rw-r--r--pkgs/development/python-modules/pymsgbox/default.nix2
-rw-r--r--pkgs/development/python-modules/pynac/default.nix2
-rw-r--r--pkgs/development/python-modules/pynamecheap/default.nix2
-rw-r--r--pkgs/development/python-modules/pynanoleaf/default.nix2
-rw-r--r--pkgs/development/python-modules/pynetdicom/default.nix29
-rw-r--r--pkgs/development/python-modules/pyngrok/default.nix2
-rw-r--r--pkgs/development/python-modules/pynmeagps/default.nix6
-rw-r--r--pkgs/development/python-modules/pynput/default.nix2
-rw-r--r--pkgs/development/python-modules/pynut2/default.nix2
-rw-r--r--pkgs/development/python-modules/pyocr/default.nix2
-rw-r--r--pkgs/development/python-modules/pyogrio/default.nix75
-rw-r--r--pkgs/development/python-modules/pyomo/default.nix4
-rw-r--r--pkgs/development/python-modules/pyopencl/default.nix2
-rw-r--r--pkgs/development/python-modules/pyopenweathermap/default.nix52
-rw-r--r--pkgs/development/python-modules/pyorthanc/default.nix16
-rw-r--r--pkgs/development/python-modules/pyoverkiz/default.nix4
-rw-r--r--pkgs/development/python-modules/pypdf/default.nix25
-rw-r--r--pkgs/development/python-modules/pypdf2/default.nix12
-rw-r--r--pkgs/development/python-modules/pypdf3/default.nix2
-rw-r--r--pkgs/development/python-modules/pyperscan/default.nix14
-rw-r--r--pkgs/development/python-modules/pypika/default.nix2
-rw-r--r--pkgs/development/python-modules/pyproj/default.nix21
-rw-r--r--pkgs/development/python-modules/pyptlib/default.nix2
-rw-r--r--pkgs/development/python-modules/pypugjs/default.nix6
-rw-r--r--pkgs/development/python-modules/pyqrcode/default.nix2
-rw-r--r--pkgs/development/python-modules/pyqtdarktheme/default.nix2
-rw-r--r--pkgs/development/python-modules/pyquaternion/default.nix2
-rw-r--r--pkgs/development/python-modules/pyquery/default.nix2
-rw-r--r--pkgs/development/python-modules/pyquil/default.nix13
-rw-r--r--pkgs/development/python-modules/pyrabbit2/default.nix2
-rw-r--r--pkgs/development/python-modules/pyramid-exclog/default.nix2
-rw-r--r--pkgs/development/python-modules/pyregion/default.nix1
-rw-r--r--pkgs/development/python-modules/pyreqwest-impersonate/default.nix61
-rw-r--r--pkgs/development/python-modules/pyring-buffer/default.nix2
-rw-r--r--pkgs/development/python-modules/pyrisco/default.nix4
-rw-r--r--pkgs/development/python-modules/pyro-api/default.nix2
-rw-r--r--pkgs/development/python-modules/pyrtlsdr/default.nix1
-rw-r--r--pkgs/development/python-modules/pyrympro/default.nix39
-rw-r--r--pkgs/development/python-modules/pysam/default.nix2
-rw-r--r--pkgs/development/python-modules/pysaml2/default.nix1
-rw-r--r--pkgs/development/python-modules/pysc2/default.nix2
-rw-r--r--pkgs/development/python-modules/pyscf/default.nix8
-rw-r--r--pkgs/development/python-modules/pyschemes/default.nix2
-rw-r--r--pkgs/development/python-modules/pyschlage/default.nix4
-rw-r--r--pkgs/development/python-modules/pyscreeze/default.nix2
-rw-r--r--pkgs/development/python-modules/pyscss/default.nix2
-rw-r--r--pkgs/development/python-modules/pysdl2/default.nix2
-rw-r--r--pkgs/development/python-modules/pysendfile/default.nix2
-rw-r--r--pkgs/development/python-modules/pyserial-asyncio-fast/default.nix4
-rw-r--r--pkgs/development/python-modules/pysftp/default.nix2
-rw-r--r--pkgs/development/python-modules/pyside6/default.nix6
-rw-r--r--pkgs/development/python-modules/pyside6/qt-6.7.1.patch87
-rw-r--r--pkgs/development/python-modules/pysigma/default.nix5
-rw-r--r--pkgs/development/python-modules/pysim/default.nix2
-rw-r--r--pkgs/development/python-modules/pysmartdl/default.nix2
-rw-r--r--pkgs/development/python-modules/pysmf/default.nix2
-rw-r--r--pkgs/development/python-modules/pysnmp/default.nix2
-rw-r--r--pkgs/development/python-modules/pysnooper/default.nix2
-rw-r--r--pkgs/development/python-modules/pysolcast/default.nix4
-rw-r--r--pkgs/development/python-modules/pysonos/default.nix2
-rw-r--r--pkgs/development/python-modules/pystac/default.nix53
-rw-r--r--pkgs/development/python-modules/pystache/default.nix2
-rw-r--r--pkgs/development/python-modules/pystray/default.nix18
-rw-r--r--pkgs/development/python-modules/pysubs2/default.nix2
-rw-r--r--pkgs/development/python-modules/pyswitchbot/default.nix10
-rw-r--r--pkgs/development/python-modules/pytablewriter/default.nix2
-rw-r--r--pkgs/development/python-modules/pytensor/default.nix11
-rw-r--r--pkgs/development/python-modules/pytesseract/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-astropy-header/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-black/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-catchlog/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-cid/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-dotenv/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-emoji/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-fixture-config/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-flask/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-httpbin/default.nix14
-rw-r--r--pkgs/development/python-modules/pytest-md-report/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-mockservers/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-notebook/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-parallel/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-raises/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-recording/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-server-fixtures/default.nix1
-rw-r--r--pkgs/development/python-modules/pytest-shutil/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-snapshot/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-spec/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-subprocess/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-sugar/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-test-utils/default.nix13
-rw-r--r--pkgs/development/python-modules/pytest-testinfra/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-tornado/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-twisted/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-virtualenv/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-voluptuous/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-xvfb/default.nix2
-rw-r--r--pkgs/development/python-modules/python-box/default.nix4
-rw-r--r--pkgs/development/python-modules/python-constraint/default.nix2
-rw-r--r--pkgs/development/python-modules/python-crontab/default.nix4
-rw-r--r--pkgs/development/python-modules/python-csxcad/default.nix1
-rw-r--r--pkgs/development/python-modules/python-daemon/default.nix2
-rw-r--r--pkgs/development/python-modules/python-editor/default.nix2
-rw-r--r--pkgs/development/python-modules/python-etcd/default.nix2
-rw-r--r--pkgs/development/python-modules/python-ethtool/default.nix1
-rw-r--r--pkgs/development/python-modules/python-fontconfig/default.nix17
-rw-r--r--pkgs/development/python-modules/python-fullykiosk/default.nix4
-rw-r--r--pkgs/development/python-modules/python-gvm/default.nix4
-rw-r--r--pkgs/development/python-modules/python-hglib/default.nix2
-rw-r--r--pkgs/development/python-modules/python-hl7/default.nix2
-rw-r--r--pkgs/development/python-modules/python-homewizard-energy/default.nix8
-rw-r--r--pkgs/development/python-modules/python-ipware/default.nix2
-rw-r--r--pkgs/development/python-modules/python-ironicclient/default.nix16
-rw-r--r--pkgs/development/python-modules/python-jose/default.nix2
-rw-r--r--pkgs/development/python-modules/python-jsonrpc-server/default.nix2
-rw-r--r--pkgs/development/python-modules/python-linux-procfs/default.nix1
-rw-r--r--pkgs/development/python-modules/python-magic/default.nix2
-rw-r--r--pkgs/development/python-modules/python-mapnik/default.nix35
-rw-r--r--pkgs/development/python-modules/python-mapnik/python-mapnik_std_optional.patch176
-rw-r--r--pkgs/development/python-modules/python-matter-server/default.nix20
-rw-r--r--pkgs/development/python-modules/python-matter-server/link-paa-root-certs.patch29
-rw-r--r--pkgs/development/python-modules/python-mimeparse/default.nix2
-rw-r--r--pkgs/development/python-modules/python-motionmount/default.nix4
-rw-r--r--pkgs/development/python-modules/python-multipart/default.nix2
-rw-r--r--pkgs/development/python-modules/python-musicpd/default.nix7
-rw-r--r--pkgs/development/python-modules/python-ndn/default.nix2
-rw-r--r--pkgs/development/python-modules/python-packer/default.nix2
-rw-r--r--pkgs/development/python-modules/python-roborock/default.nix4
-rw-r--r--pkgs/development/python-modules/python-rtmidi/default.nix2
-rw-r--r--pkgs/development/python-modules/python-secp256k1-cardano/default.nix2
-rw-r--r--pkgs/development/python-modules/python-string-utils/default.nix2
-rw-r--r--pkgs/development/python-modules/python-swiftclient/default.nix4
-rw-r--r--pkgs/development/python-modules/python-telegram-bot/default.nix4
-rw-r--r--pkgs/development/python-modules/python-trovo/default.nix2
-rw-r--r--pkgs/development/python-modules/python-twitter/default.nix14
-rw-r--r--pkgs/development/python-modules/python-u2flib-server/default.nix1
-rw-r--r--pkgs/development/python-modules/python-utils/default.nix5
-rw-r--r--pkgs/development/python-modules/python-vipaccess/default.nix2
-rw-r--r--pkgs/development/python-modules/python-youtube/default.nix2
-rw-r--r--pkgs/development/python-modules/python3-application/default.nix2
-rw-r--r--pkgs/development/python-modules/python3-eventlib/default.nix2
-rw-r--r--pkgs/development/python-modules/pythondialog/default.nix2
-rw-r--r--pkgs/development/python-modules/pythran/default.nix1
-rw-r--r--pkgs/development/python-modules/pytikz-allefeld/default.nix2
-rw-r--r--pkgs/development/python-modules/pytimeparse2/default.nix2
-rw-r--r--pkgs/development/python-modules/pytm/default.nix2
-rw-r--r--pkgs/development/python-modules/pytomlpp/default.nix2
-rw-r--r--pkgs/development/python-modules/pytools/default.nix2
-rw-r--r--pkgs/development/python-modules/pytorch-lightning/default.nix15
-rw-r--r--pkgs/development/python-modules/pytransportnswv2/default.nix4
-rw-r--r--pkgs/development/python-modules/pytricia/default.nix2
-rw-r--r--pkgs/development/python-modules/pytrydan/default.nix4
-rw-r--r--pkgs/development/python-modules/pytubefix/default.nix28
-rw-r--r--pkgs/development/python-modules/pytun/default.nix4
-rw-r--r--pkgs/development/python-modules/pyturbojpeg/default.nix2
-rw-r--r--pkgs/development/python-modules/pyuca/default.nix2
-rw-r--r--pkgs/development/python-modules/pyvcd/default.nix1
-rw-r--r--pkgs/development/python-modules/pyvex/default.nix6
-rw-r--r--pkgs/development/python-modules/pyvips/default.nix2
-rw-r--r--pkgs/development/python-modules/pyvis/default.nix1
-rw-r--r--pkgs/development/python-modules/pyvista/default.nix4
-rw-r--r--pkgs/development/python-modules/pyvo/default.nix15
-rw-r--r--pkgs/development/python-modules/pywerview/default.nix4
-rw-r--r--pkgs/development/python-modules/pywlroots/default.nix4
-rw-r--r--pkgs/development/python-modules/pyxattr/default.nix2
-rw-r--r--pkgs/development/python-modules/pyxlsb/default.nix1
-rw-r--r--pkgs/development/python-modules/pyxnat/default.nix32
-rw-r--r--pkgs/development/python-modules/pyyaml/default.nix2
-rw-r--r--pkgs/development/python-modules/pyzbar/default.nix2
-rw-r--r--pkgs/development/python-modules/qbittorrent-api/default.nix7
-rw-r--r--pkgs/development/python-modules/qcodes-contrib-drivers/default.nix34
-rw-r--r--pkgs/development/python-modules/qcodes/default.nix102
-rw-r--r--pkgs/development/python-modules/qcs-api-client/default.nix6
-rw-r--r--pkgs/development/python-modules/qcs-sdk-python/Cargo.lock24
-rw-r--r--pkgs/development/python-modules/qcs-sdk-python/default.nix6
-rw-r--r--pkgs/development/python-modules/qdarkstyle/default.nix2
-rw-r--r--pkgs/development/python-modules/qdldl/default.nix2
-rw-r--r--pkgs/development/python-modules/qds-sdk/default.nix2
-rw-r--r--pkgs/development/python-modules/qgrid/default.nix19
-rw-r--r--pkgs/development/python-modules/qiling/default.nix1
-rw-r--r--pkgs/development/python-modules/qimage2ndarray/default.nix2
-rw-r--r--pkgs/development/python-modules/qiskit-aer/default.nix3
-rw-r--r--pkgs/development/python-modules/qiskit-terra/default.nix2
-rw-r--r--pkgs/development/python-modules/qmk-dotty-dict/default.nix2
-rw-r--r--pkgs/development/python-modules/qpageview/default.nix2
-rw-r--r--pkgs/development/python-modules/qrcode-terminal/default.nix38
-rw-r--r--pkgs/development/python-modules/qscintilla-qt5/default.nix2
-rw-r--r--pkgs/development/python-modules/qtile-extras/default.nix6
-rw-r--r--pkgs/development/python-modules/qtile/default.nix34
-rw-r--r--pkgs/development/python-modules/qtile/wrapper.nix8
-rw-r--r--pkgs/development/python-modules/quantile-forest/default.nix4
-rw-r--r--pkgs/development/python-modules/quart/default.nix2
-rw-r--r--pkgs/development/python-modules/quaternion/default.nix2
-rw-r--r--pkgs/development/python-modules/queuelib/default.nix2
-rw-r--r--pkgs/development/python-modules/quil/default.nix10
-rw-r--r--pkgs/development/python-modules/quixote/default.nix2
-rw-r--r--pkgs/development/python-modules/qutip/default.nix18
-rw-r--r--pkgs/development/python-modules/radian/default.nix2
-rw-r--r--pkgs/development/python-modules/ramlfications/default.nix2
-rw-r--r--pkgs/development/python-modules/range-typed-integers/default.nix2
-rw-r--r--pkgs/development/python-modules/rank-bm25/default.nix2
-rw-r--r--pkgs/development/python-modules/rapidfuzz/default.nix4
-rw-r--r--pkgs/development/python-modules/rapidgzip/default.nix4
-rw-r--r--pkgs/development/python-modules/rapidocr-onnxruntime/default.nix129
-rw-r--r--pkgs/development/python-modules/rapidocr-onnxruntime/setup-py-override-version-checking.patch30
-rw-r--r--pkgs/development/python-modules/rasterio/default.nix6
-rw-r--r--pkgs/development/python-modules/ratarmount/default.nix4
-rw-r--r--pkgs/development/python-modules/rauth/default.nix2
-rw-r--r--pkgs/development/python-modules/ray/binary-hashes.nix4
-rw-r--r--pkgs/development/python-modules/ray/default.nix12
-rw-r--r--pkgs/development/python-modules/raylib-python-cffi/default.nix57
-rw-r--r--pkgs/development/python-modules/raylib-python-cffi/fix_pyray_builder.patch61
-rw-r--r--pkgs/development/python-modules/recommonmark/default.nix2
-rw-r--r--pkgs/development/python-modules/regress/default.nix2
-rw-r--r--pkgs/development/python-modules/relatorio/default.nix2
-rw-r--r--pkgs/development/python-modules/releases/default.nix2
-rw-r--r--pkgs/development/python-modules/remote-pdb/default.nix2
-rw-r--r--pkgs/development/python-modules/renault-api/default.nix21
-rw-r--r--pkgs/development/python-modules/reolink-aio/default.nix4
-rw-r--r--pkgs/development/python-modules/repath/default.nix2
-rw-r--r--pkgs/development/python-modules/repl-python-wakatime/default.nix52
-rw-r--r--pkgs/development/python-modules/reportengine/default.nix2
-rw-r--r--pkgs/development/python-modules/reportlab/default.nix2
-rw-r--r--pkgs/development/python-modules/repoze-lru/default.nix2
-rw-r--r--pkgs/development/python-modules/reprshed/default.nix2
-rw-r--r--pkgs/development/python-modules/reqif/default.nix4
-rw-r--r--pkgs/development/python-modules/requests-file/default.nix18
-rw-r--r--pkgs/development/python-modules/requests-gssapi/default.nix2
-rw-r--r--pkgs/development/python-modules/requests-hawk/default.nix2
-rw-r--r--pkgs/development/python-modules/requests-kerberos/default.nix2
-rw-r--r--pkgs/development/python-modules/requests-pkcs12/default.nix4
-rw-r--r--pkgs/development/python-modules/requests-unixsocket/default.nix6
-rw-r--r--pkgs/development/python-modules/requests/default.nix5
-rw-r--r--pkgs/development/python-modules/requestsexceptions/default.nix2
-rw-r--r--pkgs/development/python-modules/reretry/default.nix2
-rw-r--r--pkgs/development/python-modules/resend/default.nix4
-rw-r--r--pkgs/development/python-modules/resize-right/default.nix2
-rw-r--r--pkgs/development/python-modules/returns/default.nix4
-rw-r--r--pkgs/development/python-modules/reuse/default.nix2
-rw-r--r--pkgs/development/python-modules/rfc7464/default.nix2
-rw-r--r--pkgs/development/python-modules/rich-argparse/default.nix20
-rw-r--r--pkgs/development/python-modules/rich-pixels/default.nix45
-rw-r--r--pkgs/development/python-modules/rich-rst/default.nix6
-rw-r--r--pkgs/development/python-modules/rio-tiler/default.nix65
-rw-r--r--pkgs/development/python-modules/rioxarray/default.nix67
-rw-r--r--pkgs/development/python-modules/ripe-atlas-sagan/default.nix2
-rw-r--r--pkgs/development/python-modules/ripser/default.nix2
-rw-r--r--pkgs/development/python-modules/riscv-config/default.nix5
-rw-r--r--pkgs/development/python-modules/riscv-isac/default.nix2
-rw-r--r--pkgs/development/python-modules/rnginline/default.nix2
-rw-r--r--pkgs/development/python-modules/robotframework-seleniumlibrary/default.nix4
-rw-r--r--pkgs/development/python-modules/robotframework/default.nix4
-rw-r--r--pkgs/development/python-modules/robotstatuschecker/default.nix2
-rw-r--r--pkgs/development/python-modules/roku/default.nix2
-rw-r--r--pkgs/development/python-modules/rollbar/default.nix1
-rw-r--r--pkgs/development/python-modules/ronin/default.nix2
-rw-r--r--pkgs/development/python-modules/rotary-embedding-torch/default.nix4
-rw-r--r--pkgs/development/python-modules/routeros-api/default.nix24
-rw-r--r--pkgs/development/python-modules/rowan/default.nix43
-rw-r--r--pkgs/development/python-modules/rpcq/default.nix2
-rw-r--r--pkgs/development/python-modules/rpi-gpio2/default.nix34
-rw-r--r--pkgs/development/python-modules/rply/default.nix2
-rw-r--r--pkgs/development/python-modules/rpy2/default.nix10
-rw-r--r--pkgs/development/python-modules/rsa/default.nix2
-rw-r--r--pkgs/development/python-modules/rst2ansi/default.nix2
-rw-r--r--pkgs/development/python-modules/rtp/default.nix2
-rw-r--r--pkgs/development/python-modules/rtslib/default.nix3
-rw-r--r--pkgs/development/python-modules/rubicon-objc/default.nix2
-rw-r--r--pkgs/development/python-modules/rustworkx/default.nix2
-rw-r--r--pkgs/development/python-modules/ruyaml/default.nix1
-rw-r--r--pkgs/development/python-modules/s2clientprotocol/default.nix2
-rw-r--r--pkgs/development/python-modules/s3fs/default.nix2
-rw-r--r--pkgs/development/python-modules/sabctools/default.nix4
-rw-r--r--pkgs/development/python-modules/sacn/default.nix2
-rw-r--r--pkgs/development/python-modules/safety/default.nix4
-rw-r--r--pkgs/development/python-modules/saneyaml/default.nix2
-rw-r--r--pkgs/development/python-modules/sanic/default.nix1
-rw-r--r--pkgs/development/python-modules/sarif-tools/default.nix2
-rw-r--r--pkgs/development/python-modules/scalene/default.nix1
-rw-r--r--pkgs/development/python-modules/scapy/default.nix2
-rw-r--r--pkgs/development/python-modules/schema-salad/default.nix4
-rw-r--r--pkgs/development/python-modules/schemdraw/default.nix2
-rw-r--r--pkgs/development/python-modules/scikit-build-core/default.nix2
-rw-r--r--pkgs/development/python-modules/scikit-fmm/default.nix36
-rw-r--r--pkgs/development/python-modules/scikit-hep-testdata/default.nix6
-rw-r--r--pkgs/development/python-modules/scikit-learn-extra/default.nix2
-rw-r--r--pkgs/development/python-modules/scikit-learn/default.nix5
-rw-r--r--pkgs/development/python-modules/scikit-misc/default.nix1
-rw-r--r--pkgs/development/python-modules/scikit-rf/default.nix2
-rw-r--r--pkgs/development/python-modules/scikits-odes/default.nix2
-rw-r--r--pkgs/development/python-modules/scikits-samplerate/default.nix40
-rw-r--r--pkgs/development/python-modules/scim2-filter-parser/default.nix2
-rw-r--r--pkgs/development/python-modules/scipy/default.nix10
-rw-r--r--pkgs/development/python-modules/scipy/pocketfft-aligned_alloc.patch30
-rw-r--r--pkgs/development/python-modules/scooby/default.nix2
-rw-r--r--pkgs/development/python-modules/scour/default.nix2
-rw-r--r--pkgs/development/python-modules/scp/default.nix4
-rw-r--r--pkgs/development/python-modules/scrap-engine/default.nix2
-rw-r--r--pkgs/development/python-modules/scrapy/default.nix40
-rw-r--r--pkgs/development/python-modules/screed/default.nix2
-rw-r--r--pkgs/development/python-modules/scripttest/default.nix2
-rw-r--r--pkgs/development/python-modules/sdkmanager/default.nix2
-rw-r--r--pkgs/development/python-modules/sdnotify/default.nix2
-rw-r--r--pkgs/development/python-modules/seabreeze/default.nix2
-rw-r--r--pkgs/development/python-modules/securityreporter/default.nix6
-rw-r--r--pkgs/development/python-modules/seekpath/default.nix2
-rw-r--r--pkgs/development/python-modules/semantic-version/default.nix2
-rw-r--r--pkgs/development/python-modules/sepaxml/default.nix1
-rw-r--r--pkgs/development/python-modules/seqeval/default.nix2
-rw-r--r--pkgs/development/python-modules/serpent/default.nix2
-rw-r--r--pkgs/development/python-modules/serverfiles/default.nix2
-rw-r--r--pkgs/development/python-modules/shap/default.nix2
-rw-r--r--pkgs/development/python-modules/shazamio/default.nix2
-rw-r--r--pkgs/development/python-modules/shiboken2/default.nix3
-rw-r--r--pkgs/development/python-modules/shiboken6/default.nix12
-rw-r--r--pkgs/development/python-modules/shimmy/default.nix2
-rw-r--r--pkgs/development/python-modules/sigstore/default.nix2
-rw-r--r--pkgs/development/python-modules/simanneal/default.nix2
-rw-r--r--pkgs/development/python-modules/simple-salesforce/default.nix2
-rw-r--r--pkgs/development/python-modules/simple-term-menu/default.nix2
-rw-r--r--pkgs/development/python-modules/simple-websocket-server/default.nix2
-rw-r--r--pkgs/development/python-modules/simpleaudio/default.nix2
-rw-r--r--pkgs/development/python-modules/simpleitk/default.nix1
-rw-r--r--pkgs/development/python-modules/simplekv/default.nix2
-rw-r--r--pkgs/development/python-modules/simplemma/default.nix6
-rw-r--r--pkgs/development/python-modules/simplenote/default.nix2
-rw-r--r--pkgs/development/python-modules/single-version/default.nix1
-rw-r--r--pkgs/development/python-modules/siobrultech-protocols/default.nix2
-rw-r--r--pkgs/development/python-modules/sjcl/default.nix2
-rw-r--r--pkgs/development/python-modules/skein/default.nix2
-rw-r--r--pkgs/development/python-modules/skl2onnx/default.nix4
-rw-r--r--pkgs/development/python-modules/skytemple-dtef/default.nix2
-rw-r--r--pkgs/development/python-modules/slack-bolt/default.nix2
-rw-r--r--pkgs/development/python-modules/slack-sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/slackclient/default.nix6
-rw-r--r--pkgs/development/python-modules/slicer/default.nix1
-rw-r--r--pkgs/development/python-modules/slicerator/default.nix2
-rw-r--r--pkgs/development/python-modules/sly/default.nix2
-rw-r--r--pkgs/development/python-modules/smmap/default.nix11
-rw-r--r--pkgs/development/python-modules/smtpdfix/default.nix2
-rw-r--r--pkgs/development/python-modules/snakemake-interface-report-plugins/default.nix2
-rw-r--r--pkgs/development/python-modules/snakemake-storage-plugin-s3/default.nix2
-rw-r--r--pkgs/development/python-modules/snakemake-storage-plugin-xrootd/default.nix2
-rw-r--r--pkgs/development/python-modules/snap-helpers/default.nix2
-rw-r--r--pkgs/development/python-modules/snorkel/default.nix2
-rw-r--r--pkgs/development/python-modules/snscrape/default.nix2
-rw-r--r--pkgs/development/python-modules/socketio-client/default.nix2
-rw-r--r--pkgs/development/python-modules/solax/default.nix4
-rw-r--r--pkgs/development/python-modules/sounddevice/default.nix4
-rw-r--r--pkgs/development/python-modules/soundfile/default.nix2
-rw-r--r--pkgs/development/python-modules/soupsieve/default.nix2
-rw-r--r--pkgs/development/python-modules/spacy-transformers/annotation-test/default.nix8
-rw-r--r--pkgs/development/python-modules/spacy/annotation-test/default.nix8
-rw-r--r--pkgs/development/python-modules/spark-parser/default.nix2
-rw-r--r--pkgs/development/python-modules/sparklines/default.nix6
-rw-r--r--pkgs/development/python-modules/sparse/default.nix4
-rw-r--r--pkgs/development/python-modules/spatial-image/default.nix6
-rw-r--r--pkgs/development/python-modules/spectral-cube/default.nix38
-rw-r--r--pkgs/development/python-modules/spectral-cube/distutils-looseversion.patch152
-rw-r--r--pkgs/development/python-modules/speechbrain/default.nix2
-rw-r--r--pkgs/development/python-modules/speg/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinx-argparse/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinx-basic-ng/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinx-book-theme/default.nix6
-rw-r--r--pkgs/development/python-modules/sphinx-codeautolink/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinx-copybutton/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinx-design/default.nix8
-rw-r--r--pkgs/development/python-modules/sphinx-external-toc/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinx-hoverxref/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinx-issues/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinx-material/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinx-mdinclude/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinx-notfound-page/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinx-prompt/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinx-rtd-dark-mode/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinx-tabs/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinx-version-warning/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinxawesome-theme/default.nix36
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-devhelp/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-ditaa/default.nix42
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-jsmath/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-openapi/default.nix1
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-plantuml/default.nix18
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-wavedrom/default.nix2
-rw-r--r--pkgs/development/python-modules/spinners/default.nix2
-rw-r--r--pkgs/development/python-modules/spsdk/default.nix1
-rw-r--r--pkgs/development/python-modules/spyder-kernels/default.nix26
-rw-r--r--pkgs/development/python-modules/spyder/default.nix21
-rw-r--r--pkgs/development/python-modules/sqids/default.nix2
-rw-r--r--pkgs/development/python-modules/sqlalchemy-citext/default.nix2
-rw-r--r--pkgs/development/python-modules/sqlalchemy-utils/default.nix1
-rw-r--r--pkgs/development/python-modules/sqlalchemy/1_4.nix2
-rw-r--r--pkgs/development/python-modules/sqlalchemy/default.nix2
-rw-r--r--pkgs/development/python-modules/sqlglot/default.nix2
-rw-r--r--pkgs/development/python-modules/sqlite-anyio/default.nix6
-rw-r--r--pkgs/development/python-modules/sqlite-migrate/default.nix2
-rw-r--r--pkgs/development/python-modules/sqlite-utils/default.nix1
-rw-r--r--pkgs/development/python-modules/sqlmodel/default.nix21
-rw-r--r--pkgs/development/python-modules/srt/default.nix4
-rw-r--r--pkgs/development/python-modules/ssdpy/default.nix2
-rw-r--r--pkgs/development/python-modules/sse-starlette/default.nix4
-rw-r--r--pkgs/development/python-modules/sslib/default.nix2
-rw-r--r--pkgs/development/python-modules/starlette-wtf/default.nix2
-rw-r--r--pkgs/development/python-modules/starlette/default.nix2
-rw-r--r--pkgs/development/python-modules/stashy/default.nix2
-rw-r--r--pkgs/development/python-modules/static3/default.nix2
-rw-r--r--pkgs/development/python-modules/staticjinja/default.nix2
-rw-r--r--pkgs/development/python-modules/staticmap/default.nix2
-rw-r--r--pkgs/development/python-modules/statistics/default.nix2
-rw-r--r--pkgs/development/python-modules/statsd/default.nix2
-rw-r--r--pkgs/development/python-modules/std-uritemplate/default.nix4
-rw-r--r--pkgs/development/python-modules/stdlib-list/default.nix2
-rw-r--r--pkgs/development/python-modules/steamship/default.nix2
-rw-r--r--pkgs/development/python-modules/stemming/default.nix2
-rw-r--r--pkgs/development/python-modules/stestr/default.nix2
-rw-r--r--pkgs/development/python-modules/stim/default.nix2
-rw-r--r--pkgs/development/python-modules/stm32loader/default.nix2
-rw-r--r--pkgs/development/python-modules/stone/default.nix25
-rw-r--r--pkgs/development/python-modules/stransi/default.nix2
-rw-r--r--pkgs/development/python-modules/strategies/default.nix2
-rw-r--r--pkgs/development/python-modules/strawberry-graphql/default.nix35
-rw-r--r--pkgs/development/python-modules/strct/default.nix2
-rw-r--r--pkgs/development/python-modules/streamlit/default.nix6
-rw-r--r--pkgs/development/python-modules/stringly/default.nix5
-rw-r--r--pkgs/development/python-modules/stripe/default.nix8
-rw-r--r--pkgs/development/python-modules/striprtf/default.nix2
-rw-r--r--pkgs/development/python-modules/stups-cli-support/default.nix2
-rw-r--r--pkgs/development/python-modules/stups-fullstop/default.nix2
-rw-r--r--pkgs/development/python-modules/stups-tokens/default.nix2
-rw-r--r--pkgs/development/python-modules/stups-zign/default.nix2
-rw-r--r--pkgs/development/python-modules/stytra/default.nix2
-rw-r--r--pkgs/development/python-modules/subprocess-tee/default.nix2
-rw-r--r--pkgs/development/python-modules/sunweg/default.nix10
-rw-r--r--pkgs/development/python-modules/superqt/default.nix4
-rw-r--r--pkgs/development/python-modules/supervise-api/default.nix2
-rw-r--r--pkgs/development/python-modules/supervisor/default.nix2
-rw-r--r--pkgs/development/python-modules/survey/default.nix6
-rw-r--r--pkgs/development/python-modules/sv-ttk/default.nix2
-rw-r--r--pkgs/development/python-modules/svg2tikz/default.nix19
-rw-r--r--pkgs/development/python-modules/svgelements/default.nix17
-rw-r--r--pkgs/development/python-modules/svglib/default.nix2
-rw-r--r--pkgs/development/python-modules/svgwrite/default.nix2
-rw-r--r--pkgs/development/python-modules/swagger-ui-bundle/default.nix1
-rw-r--r--pkgs/development/python-modules/switchbot-api/default.nix2
-rw-r--r--pkgs/development/python-modules/sympy/default.nix2
-rw-r--r--pkgs/development/python-modules/syncedlyrics/default.nix6
-rw-r--r--pkgs/development/python-modules/synergy/default.nix2
-rw-r--r--pkgs/development/python-modules/tabcmd/default.nix6
-rw-r--r--pkgs/development/python-modules/tableaudocumentapi/default.nix19
-rw-r--r--pkgs/development/python-modules/tabledata/default.nix2
-rw-r--r--pkgs/development/python-modules/tabula-py/default.nix4
-rw-r--r--pkgs/development/python-modules/tappy/default.nix20
-rw-r--r--pkgs/development/python-modules/taskw/default.nix4
-rw-r--r--pkgs/development/python-modules/tatsu/default.nix4
-rw-r--r--pkgs/development/python-modules/tblib/default.nix2
-rw-r--r--pkgs/development/python-modules/tbm-utils/default.nix2
-rw-r--r--pkgs/development/python-modules/tcolorpy/default.nix2
-rw-r--r--pkgs/development/python-modules/tcxreader/default.nix2
-rw-r--r--pkgs/development/python-modules/telepath/default.nix2
-rw-r--r--pkgs/development/python-modules/teletype/default.nix2
-rw-r--r--pkgs/development/python-modules/tempest/default.nix6
-rw-r--r--pkgs/development/python-modules/tempita/default.nix2
-rw-r--r--pkgs/development/python-modules/tencentcloud-sdk-python/default.nix4
-rw-r--r--pkgs/development/python-modules/tensorboard-plugin-profile/default.nix2
-rw-r--r--pkgs/development/python-modules/tensorboard-plugin-wit/default.nix2
-rw-r--r--pkgs/development/python-modules/tensordict/default.nix26
-rw-r--r--pkgs/development/python-modules/tensorflow-estimator/bin.nix2
-rw-r--r--pkgs/development/python-modules/tensorly/default.nix4
-rw-r--r--pkgs/development/python-modules/termgraph/default.nix2
-rw-r--r--pkgs/development/python-modules/terminaltexteffects/default.nix36
-rw-r--r--pkgs/development/python-modules/tern/default.nix2
-rw-r--r--pkgs/development/python-modules/tesla-fleet-api/default.nix4
-rw-r--r--pkgs/development/python-modules/teslajsonpy/default.nix4
-rw-r--r--pkgs/development/python-modules/tess/default.nix2
-rw-r--r--pkgs/development/python-modules/tesserocr/default.nix2
-rw-r--r--pkgs/development/python-modules/testbook/default.nix2
-rw-r--r--pkgs/development/python-modules/testcontainers/default.nix18
-rw-r--r--pkgs/development/python-modules/testfixtures/default.nix4
-rw-r--r--pkgs/development/python-modules/testrail-api/default.nix2
-rw-r--r--pkgs/development/python-modules/testrepository/default.nix2
-rw-r--r--pkgs/development/python-modules/testscenarios/default.nix2
-rw-r--r--pkgs/development/python-modules/testtools/default.nix2
-rw-r--r--pkgs/development/python-modules/text-unidecode/default.nix2
-rw-r--r--pkgs/development/python-modules/textparser/default.nix2
-rw-r--r--pkgs/development/python-modules/textual-dev/default.nix17
-rw-r--r--pkgs/development/python-modules/textual/default.nix4
-rw-r--r--pkgs/development/python-modules/tf-keras/default.nix55
-rw-r--r--pkgs/development/python-modules/tf2onnx/default.nix5
-rw-r--r--pkgs/development/python-modules/theano-pymc/default.nix51
-rw-r--r--pkgs/development/python-modules/theano/default.nix117
-rw-r--r--pkgs/development/python-modules/threadloop/default.nix2
-rw-r--r--pkgs/development/python-modules/thrift/default.nix12
-rw-r--r--pkgs/development/python-modules/throttler/default.nix2
-rw-r--r--pkgs/development/python-modules/thttp/default.nix2
-rw-r--r--pkgs/development/python-modules/tika-client/default.nix2
-rw-r--r--pkgs/development/python-modules/tika/default.nix2
-rw-r--r--pkgs/development/python-modules/tiktoken/default.nix2
-rw-r--r--pkgs/development/python-modules/tilestache/default.nix2
-rw-r--r--pkgs/development/python-modules/timecop/default.nix2
-rw-r--r--pkgs/development/python-modules/timezonefinder/default.nix4
-rw-r--r--pkgs/development/python-modules/timm/default.nix8
-rw-r--r--pkgs/development/python-modules/timy/default.nix28
-rw-r--r--pkgs/development/python-modules/tinygrad/default.nix162
-rw-r--r--pkgs/development/python-modules/tinygrad/fix-dlopen-cuda.patch (renamed from pkgs/development/python-modules/gpuctypes/fix-dlopen-cuda.patch)16
-rw-r--r--pkgs/development/python-modules/tinytuya/default.nix4
-rw-r--r--pkgs/development/python-modules/tkinter/default.nix2
-rw-r--r--pkgs/development/python-modules/tlds/default.nix2
-rw-r--r--pkgs/development/python-modules/tlslite-ng/default.nix2
-rw-r--r--pkgs/development/python-modules/tlslite/default.nix2
-rw-r--r--pkgs/development/python-modules/todoist/default.nix2
-rw-r--r--pkgs/development/python-modules/tokenize-rt/default.nix2
-rw-r--r--pkgs/development/python-modules/tokenizers/default.nix6
-rw-r--r--pkgs/development/python-modules/tokenlib/default.nix27
-rw-r--r--pkgs/development/python-modules/tololib/default.nix1
-rw-r--r--pkgs/development/python-modules/toml-adapt/default.nix2
-rw-r--r--pkgs/development/python-modules/toml/default.nix2
-rw-r--r--pkgs/development/python-modules/tomli-w/default.nix2
-rw-r--r--pkgs/development/python-modules/tomli/default.nix2
-rw-r--r--pkgs/development/python-modules/toposort/default.nix2
-rw-r--r--pkgs/development/python-modules/torch/bin.nix29
-rw-r--r--pkgs/development/python-modules/torch/binary-hashes.nix92
-rw-r--r--pkgs/development/python-modules/torch/default.nix32
-rw-r--r--pkgs/development/python-modules/torchaudio/bin.nix10
-rw-r--r--pkgs/development/python-modules/torchaudio/binary-hashes.nix92
-rw-r--r--pkgs/development/python-modules/torchaudio/default.nix12
-rw-r--r--pkgs/development/python-modules/torchio/default.nix4
-rw-r--r--pkgs/development/python-modules/torchrl/default.nix6
-rw-r--r--pkgs/development/python-modules/torchsnapshot/default.nix2
-rw-r--r--pkgs/development/python-modules/torchsummary/default.nix34
-rw-r--r--pkgs/development/python-modules/torchvision/bin.nix12
-rw-r--r--pkgs/development/python-modules/torchvision/binary-hashes.nix92
-rw-r--r--pkgs/development/python-modules/torchvision/default.nix14
-rw-r--r--pkgs/development/python-modules/tornado/4.nix2
-rw-r--r--pkgs/development/python-modules/tornado/5.nix2
-rw-r--r--pkgs/development/python-modules/tornado/default.nix2
-rw-r--r--pkgs/development/python-modules/torrent-parser/default.nix2
-rw-r--r--pkgs/development/python-modules/tox/default.nix6
-rw-r--r--pkgs/development/python-modules/tpm2-pytss/default.nix7
-rw-r--r--pkgs/development/python-modules/tpm2-pytss/pr576-backport.patch117
-rw-r--r--pkgs/development/python-modules/tqdm/default.nix2
-rw-r--r--pkgs/development/python-modules/traceback2/default.nix2
-rw-r--r--pkgs/development/python-modules/trainer/default.nix11
-rw-r--r--pkgs/development/python-modules/transformers/default.nix12
-rw-r--r--pkgs/development/python-modules/transitions/default.nix2
-rw-r--r--pkgs/development/python-modules/translatehtml/default.nix2
-rw-r--r--pkgs/development/python-modules/translatepy/default.nix2
-rw-r--r--pkgs/development/python-modules/tree-sitter-html/Cargo.lock71
-rw-r--r--pkgs/development/python-modules/tree-sitter-html/default.nix56
-rw-r--r--pkgs/development/python-modules/tree-sitter-javascript/Cargo.lock71
-rw-r--r--pkgs/development/python-modules/tree-sitter-javascript/default.nix58
-rw-r--r--pkgs/development/python-modules/tree-sitter-json/Cargo.lock71
-rw-r--r--pkgs/development/python-modules/tree-sitter-json/default.nix58
-rw-r--r--pkgs/development/python-modules/tree-sitter-languages/default.nix68
-rw-r--r--pkgs/development/python-modules/tree-sitter-python/Cargo.lock71
-rw-r--r--pkgs/development/python-modules/tree-sitter-python/default.nix58
-rw-r--r--pkgs/development/python-modules/tree-sitter-rust/Cargo.lock71
-rw-r--r--pkgs/development/python-modules/tree-sitter-rust/default.nix59
-rw-r--r--pkgs/development/python-modules/tree-sitter/default.nix31
-rw-r--r--pkgs/development/python-modules/tree-sitter0_21/default.nix44
-rw-r--r--pkgs/development/python-modules/treelib/default.nix2
-rw-r--r--pkgs/development/python-modules/treelog/default.nix5
-rw-r--r--pkgs/development/python-modules/treeo/default.nix2
-rw-r--r--pkgs/development/python-modules/trfl/default.nix2
-rw-r--r--pkgs/development/python-modules/trimesh/default.nix4
-rw-r--r--pkgs/development/python-modules/trio/default.nix2
-rw-r--r--pkgs/development/python-modules/troposphere/default.nix4
-rw-r--r--pkgs/development/python-modules/trueskill/default.nix2
-rw-r--r--pkgs/development/python-modules/truststore/default.nix16
-rw-r--r--pkgs/development/python-modules/trytond/default.nix8
-rw-r--r--pkgs/development/python-modules/tskit/default.nix23
-rw-r--r--pkgs/development/python-modules/ttn-client/default.nix4
-rw-r--r--pkgs/development/python-modules/tubes/default.nix2
-rw-r--r--pkgs/development/python-modules/tuya-device-sharing-sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/tweedledum/default.nix2
-rw-r--r--pkgs/development/python-modules/twilio/default.nix4
-rw-r--r--pkgs/development/python-modules/twill/default.nix2
-rw-r--r--pkgs/development/python-modules/txgithub/default.nix2
-rw-r--r--pkgs/development/python-modules/txrequests/default.nix2
-rw-r--r--pkgs/development/python-modules/txtai/default.nix14
-rw-r--r--pkgs/development/python-modules/typecode/libmagic.nix2
-rw-r--r--pkgs/development/python-modules/typer-shell/default.nix59
-rw-r--r--pkgs/development/python-modules/types-aiobotocore-packages/default.nix1421
-rw-r--r--pkgs/development/python-modules/types-aiobotocore/default.nix89
-rwxr-xr-xpkgs/development/python-modules/types-aiobotocore/update.sh45
-rw-r--r--pkgs/development/python-modules/types-awscrt/default.nix4
-rw-r--r--pkgs/development/python-modules/types-pillow/default.nix4
-rw-r--r--pkgs/development/python-modules/types-requests/default.nix4
-rw-r--r--pkgs/development/python-modules/typesystem/default.nix2
-rw-r--r--pkgs/development/python-modules/typing-extensions/default.nix8
-rw-r--r--pkgs/development/python-modules/typing-validation/default.nix2
-rw-r--r--pkgs/development/python-modules/u-msgpack-python/default.nix2
-rw-r--r--pkgs/development/python-modules/ua-parser/default.nix2
-rw-r--r--pkgs/development/python-modules/uamqp/default.nix2
-rw-r--r--pkgs/development/python-modules/uarray/default.nix1
-rw-r--r--pkgs/development/python-modules/ubelt/default.nix6
-rw-r--r--pkgs/development/python-modules/ucsmsdk/default.nix4
-rw-r--r--pkgs/development/python-modules/ueberzug/default.nix2
-rw-r--r--pkgs/development/python-modules/ufo2ft/default.nix4
-rw-r--r--pkgs/development/python-modules/uiprotect/default.nix93
-rw-r--r--pkgs/development/python-modules/unearth/default.nix6
-rw-r--r--pkgs/development/python-modules/unicode-rbnf/default.nix2
-rw-r--r--pkgs/development/python-modules/unidata-blocks/default.nix2
-rw-r--r--pkgs/development/python-modules/unidic-lite/default.nix2
-rw-r--r--pkgs/development/python-modules/unifi/default.nix2
-rw-r--r--pkgs/development/python-modules/unique-log-filter/default.nix2
-rw-r--r--pkgs/development/python-modules/universal-silabs-flasher/default.nix4
-rw-r--r--pkgs/development/python-modules/unrpa/default.nix2
-rw-r--r--pkgs/development/python-modules/unstructured/default.nix4
-rw-r--r--pkgs/development/python-modules/update-checker/default.nix2
-rw-r--r--pkgs/development/python-modules/update-copyright/default.nix2
-rw-r--r--pkgs/development/python-modules/uptime-kuma-api/default.nix2
-rw-r--r--pkgs/development/python-modules/uranium/default.nix2
-rw-r--r--pkgs/development/python-modules/uri-template/default.nix2
-rw-r--r--pkgs/development/python-modules/urwid-mitmproxy/default.nix3
-rw-r--r--pkgs/development/python-modules/urwid-readline/default.nix2
-rw-r--r--pkgs/development/python-modules/urwid/default.nix6
-rw-r--r--pkgs/development/python-modules/urwidgets/default.nix2
-rw-r--r--pkgs/development/python-modules/us/default.nix2
-rw-r--r--pkgs/development/python-modules/user-agents/default.nix2
-rw-r--r--pkgs/development/python-modules/usort/default.nix4
-rw-r--r--pkgs/development/python-modules/uvicorn/default.nix2
-rw-r--r--pkgs/development/python-modules/varint/default.nix2
-rw-r--r--pkgs/development/python-modules/vat-moss/default.nix2
-rw-r--r--pkgs/development/python-modules/vcard/default.nix11
-rw-r--r--pkgs/development/python-modules/vega-datasets/default.nix2
-rw-r--r--pkgs/development/python-modules/vega/default.nix2
-rw-r--r--pkgs/development/python-modules/velbus-aio/default.nix8
-rw-r--r--pkgs/development/python-modules/venusian/default.nix2
-rw-r--r--pkgs/development/python-modules/verlib2/default.nix2
-rw-r--r--pkgs/development/python-modules/veryprettytable/default.nix2
-rw-r--r--pkgs/development/python-modules/virtualenv/default.nix2
-rw-r--r--pkgs/development/python-modules/visions/default.nix70
-rw-r--r--pkgs/development/python-modules/visitor/default.nix2
-rw-r--r--pkgs/development/python-modules/viv-utils/default.nix4
-rw-r--r--pkgs/development/python-modules/vllm/default.nix3
-rw-r--r--pkgs/development/python-modules/vmprof/default.nix2
-rw-r--r--pkgs/development/python-modules/vncdo/default.nix2
-rw-r--r--pkgs/development/python-modules/vnoise/default.nix35
-rw-r--r--pkgs/development/python-modules/volatile/default.nix2
-rw-r--r--pkgs/development/python-modules/voluptuous-openapi/default.nix43
-rw-r--r--pkgs/development/python-modules/vowpalwabbit/default.nix2
-rw-r--r--pkgs/development/python-modules/vt-py/default.nix6
-rw-r--r--pkgs/development/python-modules/vtjp/default.nix2
-rw-r--r--pkgs/development/python-modules/wagtail-factories/default.nix6
-rw-r--r--pkgs/development/python-modules/wagtail/default.nix2
-rw-r--r--pkgs/development/python-modules/waitress-django/default.nix2
-rw-r--r--pkgs/development/python-modules/wallbox/default.nix13
-rw-r--r--pkgs/development/python-modules/wandb/default.nix9
-rw-r--r--pkgs/development/python-modules/wasabi/default.nix8
-rw-r--r--pkgs/development/python-modules/wasserstein/default.nix10
-rw-r--r--pkgs/development/python-modules/watchdog-gevent/default.nix2
-rw-r--r--pkgs/development/python-modules/watchdog/default.nix1
-rw-r--r--pkgs/development/python-modules/weasel/default.nix2
-rw-r--r--pkgs/development/python-modules/weasyprint/default.nix1
-rw-r--r--pkgs/development/python-modules/weatherflow4py/default.nix54
-rw-r--r--pkgs/development/python-modules/web3/default.nix2
-rw-r--r--pkgs/development/python-modules/webdataset/default.nix2
-rw-r--r--pkgs/development/python-modules/websockify/default.nix4
-rw-r--r--pkgs/development/python-modules/webssh/default.nix9
-rw-r--r--pkgs/development/python-modules/webssh/remove-typo-in-test-case.patch18
-rw-r--r--pkgs/development/python-modules/weconnect/default.nix4
-rw-r--r--pkgs/development/python-modules/werkzeug/default.nix2
-rw-r--r--pkgs/development/python-modules/wheel/default.nix2
-rw-r--r--pkgs/development/python-modules/wheezy-captcha/default.nix2
-rw-r--r--pkgs/development/python-modules/wheezy-template/default.nix2
-rw-r--r--pkgs/development/python-modules/whirlpool-sixth-sense/default.nix6
-rw-r--r--pkgs/development/python-modules/widgetsnbextension/default.nix4
-rw-r--r--pkgs/development/python-modules/wikipedia/default.nix2
-rw-r--r--pkgs/development/python-modules/wikitextparser/default.nix2
-rw-r--r--pkgs/development/python-modules/willow/default.nix2
-rw-r--r--pkgs/development/python-modules/wled/default.nix27
-rw-r--r--pkgs/development/python-modules/wn/default.nix2
-rw-r--r--pkgs/development/python-modules/woodblock/default.nix2
-rw-r--r--pkgs/development/python-modules/wordfreq/default.nix2
-rw-r--r--pkgs/development/python-modules/ws4py/default.nix2
-rw-r--r--pkgs/development/python-modules/wsgitools/default.nix2
-rw-r--r--pkgs/development/python-modules/wtforms/default.nix2
-rw-r--r--pkgs/development/python-modules/wyoming/default.nix4
-rw-r--r--pkgs/development/python-modules/xapp/default.nix23
-rw-r--r--pkgs/development/python-modules/xarray-dataclasses/default.nix4
-rw-r--r--pkgs/development/python-modules/xcffib/default.nix2
-rw-r--r--pkgs/development/python-modules/xdg-base-dirs/default.nix2
-rw-r--r--pkgs/development/python-modules/xdis/default.nix2
-rw-r--r--pkgs/development/python-modules/xdoctest/default.nix6
-rw-r--r--pkgs/development/python-modules/xdot/default.nix2
-rw-r--r--pkgs/development/python-modules/xhtml2pdf/default.nix2
-rw-r--r--pkgs/development/python-modules/xlwt/default.nix30
-rw-r--r--pkgs/development/python-modules/xml-marshaller/default.nix2
-rw-r--r--pkgs/development/python-modules/xmpppy/default.nix35
-rw-r--r--pkgs/development/python-modules/xnatpy/default.nix2
-rw-r--r--pkgs/development/python-modules/xpybutil/default.nix2
-rw-r--r--pkgs/development/python-modules/xrootd/default.nix2
-rw-r--r--pkgs/development/python-modules/xtensor-python/default.nix10
-rw-r--r--pkgs/development/python-modules/xyzservices/default.nix12
-rw-r--r--pkgs/development/python-modules/yalexs/default.nix15
-rw-r--r--pkgs/development/python-modules/yamale/default.nix2
-rw-r--r--pkgs/development/python-modules/yamllint/default.nix2
-rw-r--r--pkgs/development/python-modules/yamlloader/default.nix2
-rw-r--r--pkgs/development/python-modules/yara-python/default.nix13
-rw-r--r--pkgs/development/python-modules/yaramod/default.nix4
-rw-r--r--pkgs/development/python-modules/yarg/default.nix2
-rw-r--r--pkgs/development/python-modules/yasi/default.nix2
-rw-r--r--pkgs/development/python-modules/ydata-profiling/default.nix103
-rw-r--r--pkgs/development/python-modules/yfinance/default.nix23
-rw-r--r--pkgs/development/python-modules/youless-api/default.nix4
-rw-r--r--pkgs/development/python-modules/yowsup/default.nix2
-rw-r--r--pkgs/development/python-modules/ytmusicapi/default.nix4
-rw-r--r--pkgs/development/python-modules/zarr/default.nix2
-rw-r--r--pkgs/development/python-modules/zbaemon/default.nix2
-rw-r--r--pkgs/development/python-modules/zcbor/default.nix2
-rw-r--r--pkgs/development/python-modules/zconfig/default.nix7
-rw-r--r--pkgs/development/python-modules/zdaemon/default.nix2
-rw-r--r--pkgs/development/python-modules/zephyr-python-api/default.nix2
-rw-r--r--pkgs/development/python-modules/zeroc-ice/default.nix2
-rw-r--r--pkgs/development/python-modules/zerorpc/default.nix2
-rw-r--r--pkgs/development/python-modules/zha-quirks/default.nix4
-rw-r--r--pkgs/development/python-modules/zha/default.nix6
-rw-r--r--pkgs/development/python-modules/zict/default.nix2
-rw-r--r--pkgs/development/python-modules/zigpy-xbee/default.nix2
-rw-r--r--pkgs/development/python-modules/zigpy/default.nix4
-rw-r--r--pkgs/development/python-modules/zipfile2/default.nix4
-rw-r--r--pkgs/development/python-modules/zipstream/default.nix26
-rw-r--r--pkgs/development/python-modules/zlib-ng/default.nix2
-rw-r--r--pkgs/development/python-modules/zm-py/default.nix2
-rw-r--r--pkgs/development/python-modules/zope-contenttype/default.nix2
-rw-r--r--pkgs/development/python-modules/zope-event/default.nix2
-rw-r--r--pkgs/development/python-modules/zope-testrunner/default.nix2
-rw-r--r--pkgs/development/python-modules/zwave-js-server-python/default.nix4
-rw-r--r--pkgs/development/python2-modules/configparser/default.nix2
-rw-r--r--pkgs/development/python2-modules/filelock/default.nix2
-rw-r--r--pkgs/development/python2-modules/hypothesis/default.nix2
-rw-r--r--pkgs/development/python2-modules/pip/default.nix2
-rw-r--r--pkgs/development/python2-modules/pyparsing/default.nix2
-rw-r--r--pkgs/development/python2-modules/scandir/default.nix2
-rw-r--r--pkgs/development/python2-modules/wheel/default.nix2
-rw-r--r--pkgs/development/r-modules/bioc-annotation-packages.nix113
-rw-r--r--pkgs/development/r-modules/bioc-experiment-packages.nix863
-rw-r--r--pkgs/development/r-modules/bioc-packages.nix4485
-rw-r--r--pkgs/development/r-modules/cran-packages.nix4960
-rw-r--r--pkgs/development/r-modules/default.nix369
-rwxr-xr-xpkgs/development/r-modules/generate-r-packages.R6
-rw-r--r--pkgs/development/r-modules/patches/immunotation.patch47
-rw-r--r--pkgs/development/r-modules/patches/rgoslin.patch12
-rw-r--r--pkgs/development/r-modules/patches/spMC.patch8
-rw-r--r--pkgs/development/rocm-modules/5/rocm-runtime/default.nix4
-rw-r--r--pkgs/development/rocm-modules/6/hiprand/default.nix2
-rw-r--r--pkgs/development/rocm-modules/6/rocm-runtime/default.nix4
-rw-r--r--pkgs/development/ruby-modules/bundled-common/default.nix3
-rw-r--r--pkgs/development/ruby-modules/bundler/default.nix4
-rw-r--r--pkgs/development/ruby-modules/gem-config/default.nix8
-rw-r--r--pkgs/development/ruby-modules/gem/default.nix4
-rw-r--r--pkgs/development/scheme-modules/scheme-bytestructures/default.nix4
-rw-r--r--pkgs/development/skaware-packages/execline/default.nix12
-rw-r--r--pkgs/development/skaware-packages/mdevd/default.nix4
-rw-r--r--pkgs/development/skaware-packages/nsss/default.nix2
-rw-r--r--pkgs/development/skaware-packages/s6-dns/default.nix6
-rw-r--r--pkgs/development/skaware-packages/s6-linux-init/default.nix2
-rw-r--r--pkgs/development/skaware-packages/s6-linux-utils/default.nix2
-rw-r--r--pkgs/development/skaware-packages/s6-networking/default.nix10
-rw-r--r--pkgs/development/skaware-packages/s6-portable-utils/default.nix2
-rw-r--r--pkgs/development/skaware-packages/s6-rc/default.nix8
-rw-r--r--pkgs/development/skaware-packages/s6/default.nix8
-rw-r--r--pkgs/development/skaware-packages/skalibs/2_10.nix2
-rw-r--r--pkgs/development/skaware-packages/skalibs/default.nix6
-rw-r--r--pkgs/development/skaware-packages/tipidee/default.nix6
-rw-r--r--pkgs/development/skaware-packages/utmps/default.nix2
-rw-r--r--pkgs/development/tools/aapt/default.nix8
-rw-r--r--pkgs/development/tools/air/default.nix20
-rw-r--r--pkgs/development/tools/algolia-cli/default.nix4
-rw-r--r--pkgs/development/tools/allure/default.nix2
-rw-r--r--pkgs/development/tools/altair-graphql-client/default.nix2
-rw-r--r--pkgs/development/tools/amazon-qldb-shell/default.nix2
-rw-r--r--pkgs/development/tools/ameba/default.nix2
-rw-r--r--pkgs/development/tools/amqpcat/default.nix2
-rw-r--r--pkgs/development/tools/analysis/actionlint/default.nix6
-rw-r--r--pkgs/development/tools/analysis/banana-vera/default.nix2
-rw-r--r--pkgs/development/tools/analysis/cargo-tarpaulin/default.nix2
-rw-r--r--pkgs/development/tools/analysis/checkov/default.nix5
-rw-r--r--pkgs/development/tools/analysis/checkstyle/default.nix4
-rw-r--r--pkgs/development/tools/analysis/coan/default.nix13
-rw-r--r--pkgs/development/tools/analysis/coan/fix-big-endian-config-check.diff22
-rw-r--r--pkgs/development/tools/analysis/codeql/default.nix4
-rw-r--r--pkgs/development/tools/analysis/cppcheck/default.nix6
-rw-r--r--pkgs/development/tools/analysis/emma/default.nix2
-rw-r--r--pkgs/development/tools/analysis/eresi/default.nix2
-rw-r--r--pkgs/development/tools/analysis/findbugs/default.nix2
-rw-r--r--pkgs/development/tools/analysis/flow/default.nix6
-rw-r--r--pkgs/development/tools/analysis/frama-c/default.nix4
-rw-r--r--pkgs/development/tools/analysis/hopper/default.nix2
-rw-r--r--pkgs/development/tools/analysis/hotspot/default.nix2
-rw-r--r--pkgs/development/tools/analysis/jacoco/default.nix2
-rw-r--r--pkgs/development/tools/analysis/oclgrind/default.nix2
-rw-r--r--pkgs/development/tools/analysis/panopticon/default.nix2
-rw-r--r--pkgs/development/tools/analysis/pev/default.nix2
-rw-r--r--pkgs/development/tools/analysis/pmd/default.nix2
-rw-r--r--pkgs/development/tools/analysis/qcachegrind/default.nix2
-rw-r--r--pkgs/development/tools/analysis/radare2/default.nix54
-rw-r--r--pkgs/development/tools/analysis/retdec/default.nix2
-rw-r--r--pkgs/development/tools/analysis/rizin/default.nix2
-rw-r--r--pkgs/development/tools/analysis/rr/default.nix2
-rw-r--r--pkgs/development/tools/analysis/smatch/default.nix2
-rw-r--r--pkgs/development/tools/analysis/stylelint/default.nix6
-rw-r--r--pkgs/development/tools/analysis/svlint/default.nix6
-rw-r--r--pkgs/development/tools/analysis/tflint-plugins/tflint-ruleset-google.nix6
-rw-r--r--pkgs/development/tools/analysis/valgrind/default.nix29
-rw-r--r--pkgs/development/tools/apktool/default.nix2
-rw-r--r--pkgs/development/tools/asn2quickder/default.nix2
-rw-r--r--pkgs/development/tools/async/default.nix2
-rw-r--r--pkgs/development/tools/aws-sam-cli/default.nix11
-rw-r--r--pkgs/development/tools/azcopy/default.nix8
-rw-r--r--pkgs/development/tools/azure-static-sites-client/versions.json48
-rw-r--r--pkgs/development/tools/b4/default.nix2
-rw-r--r--pkgs/development/tools/backblaze-b2/default.nix11
-rw-r--r--pkgs/development/tools/bacon/default.nix6
-rw-r--r--pkgs/development/tools/bazel-gazelle/default.nix4
-rw-r--r--pkgs/development/tools/bazelisk/default.nix2
-rw-r--r--pkgs/development/tools/bearer/default.nix6
-rw-r--r--pkgs/development/tools/bingo/default.nix2
-rw-r--r--pkgs/development/tools/bloaty/default.nix2
-rw-r--r--pkgs/development/tools/boomerang/default.nix2
-rw-r--r--pkgs/development/tools/buf/default.nix20
-rw-r--r--pkgs/development/tools/buf/skip_broken_tests.patch23
-rw-r--r--pkgs/development/tools/build-managers/alire/default.nix3
-rw-r--r--pkgs/development/tools/build-managers/apache-ant/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/apache-maven/default.nix50
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix8
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_5/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_6/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_7/MODULE.bazel.lock1786
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_7/bazel-repository-cache.nix85
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_7/cpp-test-MODULE.bazel.lock839
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_7/cpp-test.nix4
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_7/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_7/protobuf-test.MODULE.bazel.lock14
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_7/protobuf-test.nix1
-rw-r--r--pkgs/development/tools/build-managers/bazel/buildtools/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/bear/default.nix3
-rw-r--r--pkgs/development/tools/build-managers/bloop/default.nix8
-rw-r--r--pkgs/development/tools/build-managers/bob/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/buck/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/buck2/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/buck2/hashes.json10
-rw-r--r--pkgs/development/tools/build-managers/corrosion/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/drake/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/gn/generic.nix2
-rw-r--r--pkgs/development/tools/build-managers/gnumake/4.2/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/gnumake/default.nix5
-rw-r--r--pkgs/development/tools/build-managers/gup/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/icmake/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/kati/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/knit/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/leiningen/default.nix9
-rw-r--r--pkgs/development/tools/build-managers/mage/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/mill/default.nix8
-rw-r--r--pkgs/development/tools/build-managers/moon/default.nix8
-rw-r--r--pkgs/development/tools/build-managers/msbuild/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/muon/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/qbs/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/rake/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/rebar3/rebar-deps.nix2
-rw-r--r--pkgs/development/tools/build-managers/redo-c/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/redo/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/sbt-extras/default.nix9
-rw-r--r--pkgs/development/tools/build-managers/sbt/default.nix14
-rw-r--r--pkgs/development/tools/build-managers/scala-cli/sources.json10
-rw-r--r--pkgs/development/tools/build-managers/scons/3.1.2.nix2
-rw-r--r--pkgs/development/tools/build-managers/scons/4.1.0.nix2
-rw-r--r--pkgs/development/tools/build-managers/scons/4.5.2.nix2
-rw-r--r--pkgs/development/tools/build-managers/xmake/default.nix6
-rw-r--r--pkgs/development/tools/buildah/default.nix6
-rw-r--r--pkgs/development/tools/buildah/wrapper.nix2
-rw-r--r--pkgs/development/tools/buildkit/default.nix4
-rw-r--r--pkgs/development/tools/buildpack/default.nix6
-rw-r--r--pkgs/development/tools/bunyan-rs/default.nix2
-rw-r--r--pkgs/development/tools/butane/default.nix4
-rw-r--r--pkgs/development/tools/capnproto-java/default.nix2
-rw-r--r--pkgs/development/tools/cbfmt/default.nix2
-rw-r--r--pkgs/development/tools/cddl/default.nix2
-rw-r--r--pkgs/development/tools/cdecrypt/default.nix2
-rw-r--r--pkgs/development/tools/ceedling/default.nix2
-rw-r--r--pkgs/development/tools/check-jsonschema/default.nix6
-rw-r--r--pkgs/development/tools/check/default.nix2
-rw-r--r--pkgs/development/tools/click/default.nix2
-rw-r--r--pkgs/development/tools/clickable/default.nix2
-rw-r--r--pkgs/development/tools/clj-kondo/default.nix6
-rw-r--r--pkgs/development/tools/cloud-nuke/default.nix8
-rw-r--r--pkgs/development/tools/cloudsmith-cli/default.nix61
-rw-r--r--pkgs/development/tools/cmake-format/default.nix1
-rw-r--r--pkgs/development/tools/cocogitto/default.nix2
-rw-r--r--pkgs/development/tools/code-maat/default.nix2
-rw-r--r--pkgs/development/tools/codeowners/default.nix2
-rw-r--r--pkgs/development/tools/coder/default.nix20
-rw-r--r--pkgs/development/tools/comby/default.nix2
-rw-r--r--pkgs/development/tools/conftest/default.nix6
-rw-r--r--pkgs/development/tools/continuous-integration/buildbot/master.nix27
-rw-r--r--pkgs/development/tools/continuous-integration/buildbot/pkg.nix2
-rw-r--r--pkgs/development/tools/continuous-integration/buildbot/plugins.nix22
-rw-r--r--pkgs/development/tools/continuous-integration/buildbot/skip_test_linux_distro.patch6
-rw-r--r--pkgs/development/tools/continuous-integration/buildbot/worker.nix2
-rw-r--r--pkgs/development/tools/continuous-integration/buildkite-cli/default.nix2
-rw-r--r--pkgs/development/tools/continuous-integration/cirrus-cli/default.nix6
-rw-r--r--pkgs/development/tools/continuous-integration/drone/default.nix2
-rw-r--r--pkgs/development/tools/continuous-integration/gitea-actions-runner/default.nix2
-rw-r--r--pkgs/development/tools/continuous-integration/github-runner/default.nix4
-rw-r--r--pkgs/development/tools/continuous-integration/github-runner/deps.nix12
-rw-r--r--pkgs/development/tools/continuous-integration/gitlab-runner/default.nix4
-rw-r--r--pkgs/development/tools/continuous-integration/gocd-agent/default.nix2
-rw-r--r--pkgs/development/tools/continuous-integration/gocd-server/default.nix2
-rw-r--r--pkgs/development/tools/continuous-integration/hci/default.nix5
-rw-r--r--pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix4
-rw-r--r--pkgs/development/tools/continuous-integration/jenkins/default.nix2
-rw-r--r--pkgs/development/tools/continuous-integration/woodpecker-pipeline-transform/default.nix23
-rw-r--r--pkgs/development/tools/continuous-integration/woodpecker-plugin-git/default.nix2
-rw-r--r--pkgs/development/tools/continuous-integration/woodpecker/common.nix4
-rw-r--r--pkgs/development/tools/cotton/default.nix2
-rw-r--r--pkgs/development/tools/cpm-cmake/default.nix4
-rw-r--r--pkgs/development/tools/crd2pulumi/default.nix6
-rw-r--r--pkgs/development/tools/ctlptl/default.nix8
-rw-r--r--pkgs/development/tools/database/apgdiff/default.nix34
-rw-r--r--pkgs/development/tools/database/atlas/default.nix8
-rw-r--r--pkgs/development/tools/database/clickhouse-backup/default.nix13
-rw-r--r--pkgs/development/tools/database/dblab/default.nix8
-rw-r--r--pkgs/development/tools/database/dbmate/default.nix6
-rw-r--r--pkgs/development/tools/database/gobang/default.nix35
-rw-r--r--pkgs/development/tools/database/indradb/default.nix2
-rw-r--r--pkgs/development/tools/database/liquibase/default.nix4
-rw-r--r--pkgs/development/tools/database/mermerd/default.nix6
-rw-r--r--pkgs/development/tools/database/movine/default.nix2
-rw-r--r--pkgs/development/tools/database/pg_activity/default.nix2
-rw-r--r--pkgs/development/tools/database/pgweb/default.nix6
-rw-r--r--pkgs/development/tools/database/prisma-engines/default.nix2
-rw-r--r--pkgs/development/tools/database/prqlc/default.nix8
-rw-r--r--pkgs/development/tools/database/pyrseas/default.nix2
-rw-r--r--pkgs/development/tools/database/sleek/default.nix2
-rw-r--r--pkgs/development/tools/database/sqlcmd/default.nix8
-rw-r--r--pkgs/development/tools/database/sqlfluff/default.nix4
-rw-r--r--pkgs/development/tools/database/surrealdb-migrations/default.nix2
-rw-r--r--pkgs/development/tools/database/termdbms/default.nix2
-rw-r--r--pkgs/development/tools/database/timescaledb-tune/default.nix2
-rw-r--r--pkgs/development/tools/database/trino-cli/default.nix2
-rw-r--r--pkgs/development/tools/database/vitess/default.nix8
-rw-r--r--pkgs/development/tools/database/webdis/default.nix2
-rw-r--r--pkgs/development/tools/dbus-test-runner/default.nix2
-rw-r--r--pkgs/development/tools/devbox/default.nix8
-rw-r--r--pkgs/development/tools/devd/default.nix2
-rw-r--r--pkgs/development/tools/devpod/default.nix4
-rw-r--r--pkgs/development/tools/devtodo/default.nix2
-rw-r--r--pkgs/development/tools/dive/default.nix2
-rw-r--r--pkgs/development/tools/doctl/default.nix6
-rw-r--r--pkgs/development/tools/documentation/antora/default.nix2
-rw-r--r--pkgs/development/tools/dprint/default.nix6
-rw-r--r--pkgs/development/tools/drip/default.nix2
-rw-r--r--pkgs/development/tools/dum/default.nix2
-rw-r--r--pkgs/development/tools/dump_syms/default.nix8
-rw-r--r--pkgs/development/tools/dyff/default.nix8
-rw-r--r--pkgs/development/tools/earthly/default.nix6
-rw-r--r--pkgs/development/tools/ejson/default.nix2
-rw-r--r--pkgs/development/tools/electron-fiddle/default.nix2
-rw-r--r--pkgs/development/tools/electron/binary/generic.nix2
-rw-r--r--pkgs/development/tools/electron/binary/info.json42
-rw-r--r--pkgs/development/tools/electron/common.nix6
-rw-r--r--pkgs/development/tools/electron/info.json1840
-rw-r--r--pkgs/development/tools/elkhound/default.nix2
-rw-r--r--pkgs/development/tools/ent/default.nix2
-rw-r--r--pkgs/development/tools/esbuild/default.nix6
-rw-r--r--pkgs/development/tools/esbuild/netlify.nix3
-rw-r--r--pkgs/development/tools/espup/default.nix8
-rw-r--r--pkgs/development/tools/extism-cli/default.nix8
-rw-r--r--pkgs/development/tools/faas-cli/default.nix4
-rw-r--r--pkgs/development/tools/fable/default.nix4
-rw-r--r--pkgs/development/tools/fblog/default.nix2
-rw-r--r--pkgs/development/tools/fermyon-spin/default.nix14
-rw-r--r--pkgs/development/tools/firebase-tools/default.nix6
-rw-r--r--pkgs/development/tools/fission/default.nix8
-rw-r--r--pkgs/development/tools/flamegraph/default.nix14
-rw-r--r--pkgs/development/tools/flootty/default.nix2
-rw-r--r--pkgs/development/tools/fnm/default.nix6
-rw-r--r--pkgs/development/tools/fprettify/default.nix2
-rw-r--r--pkgs/development/tools/frink/default.nix36
-rw-r--r--pkgs/development/tools/fsautocomplete/default.nix6
-rw-r--r--pkgs/development/tools/fsautocomplete/deps.nix26
-rw-r--r--pkgs/development/tools/fusee-nano/default.nix2
-rw-r--r--pkgs/development/tools/gammaray/default.nix2
-rw-r--r--pkgs/development/tools/gemstash/default.nix2
-rw-r--r--pkgs/development/tools/gendef/default.nix2
-rw-r--r--pkgs/development/tools/gi-crystal/default.nix2
-rw-r--r--pkgs/development/tools/ginkgo/default.nix6
-rw-r--r--pkgs/development/tools/github-copilot-intellij-agent/default.nix2
-rw-r--r--pkgs/development/tools/github/cligh/default.nix2
-rw-r--r--pkgs/development/tools/glamoroustoolkit/default.nix2
-rw-r--r--pkgs/development/tools/glock/default.nix26
-rw-r--r--pkgs/development/tools/glock/deps.nix21
-rw-r--r--pkgs/development/tools/glslviewer/default.nix80
-rw-r--r--pkgs/development/tools/go-bindata/default.nix2
-rw-r--r--pkgs/development/tools/go-containerregistry/default.nix4
-rw-r--r--pkgs/development/tools/go-minimock/default.nix6
-rw-r--r--pkgs/development/tools/go-mockery/default.nix6
-rw-r--r--pkgs/development/tools/go-mod-graph-chart/default.nix2
-rw-r--r--pkgs/development/tools/go-symbols/default.nix24
-rw-r--r--pkgs/development/tools/go-symbols/deps.nix11
-rw-r--r--pkgs/development/tools/go-task/default.nix2
-rw-r--r--pkgs/development/tools/go-tools/default.nix2
-rw-r--r--pkgs/development/tools/gocode-gomod/default.nix2
-rw-r--r--pkgs/development/tools/gocover-cobertura/default.nix2
-rw-r--r--pkgs/development/tools/goda/default.nix4
-rw-r--r--pkgs/development/tools/godot/3/mono/default.nix2
-rw-r--r--pkgs/development/tools/goimports-reviser/default.nix4
-rw-r--r--pkgs/development/tools/gojq/default.nix6
-rw-r--r--pkgs/development/tools/golangci-lint/default.nix6
-rw-r--r--pkgs/development/tools/golines/default.nix2
-rw-r--r--pkgs/development/tools/gomplate/default.nix8
-rw-r--r--pkgs/development/tools/goperf/default.nix8
-rw-r--r--pkgs/development/tools/gops/default.nix2
-rw-r--r--pkgs/development/tools/gotestsum/default.nix2
-rw-r--r--pkgs/development/tools/gotools/default.nix8
-rw-r--r--pkgs/development/tools/gotraceui/default.nix2
-rw-r--r--pkgs/development/tools/govers/default.nix21
-rw-r--r--pkgs/development/tools/gox/default.nix2
-rw-r--r--pkgs/development/tools/gptcommit/default.nix2
-rw-r--r--pkgs/development/tools/graphql-client/default.nix2
-rw-r--r--pkgs/development/tools/gtk-mac-bundler/default.nix2
-rw-r--r--pkgs/development/tools/guile/g-wrap/default.nix2
-rw-r--r--pkgs/development/tools/haskell/mueval/default.nix6
-rw-r--r--pkgs/development/tools/hclfmt/default.nix8
-rw-r--r--pkgs/development/tools/hcloud/default.nix2
-rw-r--r--pkgs/development/tools/hobbes/default.nix2
-rw-r--r--pkgs/development/tools/hostess/default.nix2
-rw-r--r--pkgs/development/tools/hotdoc/default.nix2
-rw-r--r--pkgs/development/tools/hover/default.nix4
-rw-r--r--pkgs/development/tools/hred/default.nix2
-rw-r--r--pkgs/development/tools/inferno/default.nix2
-rw-r--r--pkgs/development/tools/infisical/default.nix4
-rw-r--r--pkgs/development/tools/infisical/hashes.json8
-rw-r--r--pkgs/development/tools/initool/default.nix4
-rw-r--r--pkgs/development/tools/irony-server/default.nix2
-rw-r--r--pkgs/development/tools/jaq/default.nix8
-rw-r--r--pkgs/development/tools/java/java-language-server/default.nix5
-rw-r--r--pkgs/development/tools/java/visualvm/default.nix2
-rw-r--r--pkgs/development/tools/jazzy/default.nix2
-rw-r--r--pkgs/development/tools/jbang/default.nix2
-rw-r--r--pkgs/development/tools/jf/default.nix2
-rw-r--r--pkgs/development/tools/jid/default.nix2
-rw-r--r--pkgs/development/tools/jless/default.nix2
-rw-r--r--pkgs/development/tools/jmespath/default.nix2
-rw-r--r--pkgs/development/tools/jo/default.nix2
-rw-r--r--pkgs/development/tools/jp/default.nix2
-rw-r--r--pkgs/development/tools/jq/default.nix2
-rw-r--r--pkgs/development/tools/jql/default.nix8
-rw-r--r--pkgs/development/tools/jqp/default.nix8
-rw-r--r--pkgs/development/tools/jsonnet-bundler/default.nix2
-rw-r--r--pkgs/development/tools/k6/default.nix2
-rw-r--r--pkgs/development/tools/kafka-delta-ingest/default.nix2
-rw-r--r--pkgs/development/tools/kcat/default.nix2
-rw-r--r--pkgs/development/tools/kcli/default.nix2
-rw-r--r--pkgs/development/tools/kdash/default.nix2
-rw-r--r--pkgs/development/tools/knightos/kpack/default.nix2
-rw-r--r--pkgs/development/tools/knightos/scas/default.nix5
-rw-r--r--pkgs/development/tools/knightos/z80e/default.nix2
-rw-r--r--pkgs/development/tools/konstraint/default.nix8
-rw-r--r--pkgs/development/tools/krankerl/default.nix2
-rw-r--r--pkgs/development/tools/krew/default.nix9
-rw-r--r--pkgs/development/tools/ktlint/default.nix6
-rw-r--r--pkgs/development/tools/kube-linter/default.nix2
-rw-r--r--pkgs/development/tools/kube-prompt/default.nix2
-rw-r--r--pkgs/development/tools/kubeswitch/default.nix2
-rw-r--r--pkgs/development/tools/kustomize/default.nix6
-rw-r--r--pkgs/development/tools/kustomize/kustomize-sops.nix2
-rw-r--r--pkgs/development/tools/kythe/default.nix2
-rw-r--r--pkgs/development/tools/language-servers/beancount-language-server/default.nix2
-rw-r--r--pkgs/development/tools/language-servers/ccls/default.nix2
-rw-r--r--pkgs/development/tools/language-servers/crystalline/default.nix2
-rw-r--r--pkgs/development/tools/language-servers/dockerfile-language-server-nodejs/default.nix2
-rw-r--r--pkgs/development/tools/language-servers/dot-language-server/default.nix2
-rw-r--r--pkgs/development/tools/language-servers/emmet-language-server/default.nix2
-rw-r--r--pkgs/development/tools/language-servers/fortls/default.nix4
-rw-r--r--pkgs/development/tools/language-servers/glslls/default.nix2
-rw-r--r--pkgs/development/tools/language-servers/jq-lsp/default.nix6
-rw-r--r--pkgs/development/tools/language-servers/lua-language-server/default.nix70
-rw-r--r--pkgs/development/tools/language-servers/millet/default.nix2
-rw-r--r--pkgs/development/tools/language-servers/neocmakelsp/default.nix8
-rw-r--r--pkgs/development/tools/language-servers/nixd/default.nix242
-rw-r--r--pkgs/development/tools/language-servers/openscad-lsp/default.nix2
-rw-r--r--pkgs/development/tools/language-servers/postgres-lsp/default.nix2
-rw-r--r--pkgs/development/tools/language-servers/pylyzer/default.nix2
-rw-r--r--pkgs/development/tools/language-servers/ruff-lsp/default.nix2
-rw-r--r--pkgs/development/tools/language-servers/rune-languageserver/default.nix2
-rw-r--r--pkgs/development/tools/language-servers/svls/default.nix6
-rw-r--r--pkgs/development/tools/language-servers/typst-lsp/default.nix2
-rw-r--r--pkgs/development/tools/language-servers/verible/default.nix2
-rw-r--r--pkgs/development/tools/language-servers/vhdl-ls/default.nix8
-rw-r--r--pkgs/development/tools/leaps/default.nix2
-rw-r--r--pkgs/development/tools/librarian-puppet-go/default.nix26
-rw-r--r--pkgs/development/tools/librarian-puppet-go/deps.nix12
-rw-r--r--pkgs/development/tools/literate-programming/eweb/default.nix2
-rw-r--r--pkgs/development/tools/literate-programming/funnelweb/default.nix2
-rw-r--r--pkgs/development/tools/literate-programming/noweb/default.nix2
-rw-r--r--pkgs/development/tools/literate-programming/nuweb/default.nix2
-rw-r--r--pkgs/development/tools/ls-lint/default.nix2
-rw-r--r--pkgs/development/tools/lurk/default.nix2
-rw-r--r--pkgs/development/tools/lv_img_conv/default.nix64
-rw-r--r--pkgs/development/tools/maizzle/default.nix6
-rw-r--r--pkgs/development/tools/makerpm/default.nix2
-rw-r--r--pkgs/development/tools/mask/default.nix2
-rw-r--r--pkgs/development/tools/melange/default.nix6
-rw-r--r--pkgs/development/tools/metal-cli/default.nix2
-rw-r--r--pkgs/development/tools/micronaut/default.nix4
-rw-r--r--pkgs/development/tools/minizinc/default.nix6
-rw-r--r--pkgs/development/tools/minizinc/ide.nix4
-rw-r--r--pkgs/development/tools/misc/abi-compliance-checker/default.nix2
-rw-r--r--pkgs/development/tools/misc/act/default.nix6
-rw-r--r--pkgs/development/tools/misc/arcanist/default.nix88
-rw-r--r--pkgs/development/tools/misc/arcanist/dont-require-python3-in-path.patch26
-rw-r--r--pkgs/development/tools/misc/arcanist/shellcomplete-strlen-null.patch13
-rw-r--r--pkgs/development/tools/misc/astyle/default.nix4
-rw-r--r--pkgs/development/tools/misc/automake/automake-1.16.x.nix4
-rw-r--r--pkgs/development/tools/misc/awf/default.nix2
-rw-r--r--pkgs/development/tools/misc/babeltrace/default.nix32
-rw-r--r--pkgs/development/tools/misc/binutils/2.38/libbfd.nix2
-rw-r--r--pkgs/development/tools/misc/binutils/2.38/libopcodes.nix2
-rw-r--r--pkgs/development/tools/misc/binutils/default.nix15
-rw-r--r--pkgs/development/tools/misc/binutils/libbfd.nix2
-rw-r--r--pkgs/development/tools/misc/binutils/libopcodes.nix2
-rw-r--r--pkgs/development/tools/misc/blackfire/default.nix15
-rw-r--r--pkgs/development/tools/misc/blackfire/php-probe.nix35
-rw-r--r--pkgs/development/tools/misc/bonnmotion/default.nix2
-rw-r--r--pkgs/development/tools/misc/bsdbuild/default.nix2
-rw-r--r--pkgs/development/tools/misc/c2ffi/default.nix2
-rw-r--r--pkgs/development/tools/misc/cgdb/default.nix2
-rw-r--r--pkgs/development/tools/misc/clojure-lsp/default.nix2
-rw-r--r--pkgs/development/tools/misc/coccinelle/default.nix57
-rw-r--r--pkgs/development/tools/misc/coreboot-toolchain/default.nix6
-rw-r--r--pkgs/development/tools/misc/coreboot-toolchain/stable.nix12
-rw-r--r--pkgs/development/tools/misc/cppi/default.nix2
-rw-r--r--pkgs/development/tools/misc/creduce/default.nix2
-rw-r--r--pkgs/development/tools/misc/cscope/default.nix2
-rw-r--r--pkgs/development/tools/misc/csmith/default.nix2
-rw-r--r--pkgs/development/tools/misc/ctags/default.nix2
-rw-r--r--pkgs/development/tools/misc/ctags/wrapped.nix146
-rw-r--r--pkgs/development/tools/misc/dart-sass/default.nix10
-rw-r--r--pkgs/development/tools/misc/dart-sass/pubspec.lock.json16
-rw-r--r--pkgs/development/tools/misc/dejagnu/default.nix4
-rw-r--r--pkgs/development/tools/misc/devspace/default.nix2
-rw-r--r--pkgs/development/tools/misc/dfu-programmer/default.nix2
-rw-r--r--pkgs/development/tools/misc/distcc/default.nix2
-rw-r--r--pkgs/development/tools/misc/docopts/default.nix31
-rw-r--r--pkgs/development/tools/misc/docopts/deps.nix11
-rw-r--r--pkgs/development/tools/misc/dura/default.nix2
-rw-r--r--pkgs/development/tools/misc/editorconfig-checker/default.nix2
-rw-r--r--pkgs/development/tools/misc/editorconfig-core-c/default.nix4
-rw-r--r--pkgs/development/tools/misc/elfkickers/default.nix2
-rw-r--r--pkgs/development/tools/misc/elfutils/default.nix2
-rw-r--r--pkgs/development/tools/misc/epm/default.nix2
-rw-r--r--pkgs/development/tools/misc/ezno/default.nix2
-rw-r--r--pkgs/development/tools/misc/fswatch/default.nix2
-rw-r--r--pkgs/development/tools/misc/funzzy/default.nix2
-rw-r--r--pkgs/development/tools/misc/gdb/default.nix6
-rw-r--r--pkgs/development/tools/misc/gdbgui/default.nix2
-rw-r--r--pkgs/development/tools/misc/gef/default.nix6
-rw-r--r--pkgs/development/tools/misc/gf/default.nix2
-rw-r--r--pkgs/development/tools/misc/gnum4/default.nix9
-rw-r--r--pkgs/development/tools/misc/grpc-client-cli/default.nix6
-rw-r--r--pkgs/development/tools/misc/highlight-assertions/default.nix2
-rw-r--r--pkgs/development/tools/misc/hydra-cli/default.nix2
-rw-r--r--pkgs/development/tools/misc/igprof/default.nix2
-rw-r--r--pkgs/development/tools/misc/indent/default.nix2
-rw-r--r--pkgs/development/tools/misc/jcli/default.nix2
-rw-r--r--pkgs/development/tools/misc/libtool/libtool2.nix5
-rw-r--r--pkgs/development/tools/misc/licenseclassifier/default.nix2
-rw-r--r--pkgs/development/tools/misc/linuxkit/default.nix2
-rw-r--r--pkgs/development/tools/misc/lsof/default.nix2
-rw-r--r--pkgs/development/tools/misc/lttng-ust/generic.nix2
-rw-r--r--pkgs/development/tools/misc/luarocks/default.nix11
-rw-r--r--pkgs/development/tools/misc/mdl/default.nix2
-rw-r--r--pkgs/development/tools/misc/mkcert/default.nix2
-rw-r--r--pkgs/development/tools/misc/n98-magerun/default.nix2
-rw-r--r--pkgs/development/tools/misc/n98-magerun2/default.nix2
-rw-r--r--pkgs/development/tools/misc/ninka/default.nix2
-rw-r--r--pkgs/development/tools/misc/nix-bisect/default.nix1
-rw-r--r--pkgs/development/tools/misc/nix-build-uncached/default.nix2
-rw-r--r--pkgs/development/tools/misc/nixbang/default.nix2
-rw-r--r--pkgs/development/tools/misc/one_gadget/default.nix2
-rw-r--r--pkgs/development/tools/misc/orogene/default.nix2
-rw-r--r--pkgs/development/tools/misc/patchelf/default.nix2
-rw-r--r--pkgs/development/tools/misc/patchelf/unstable.nix2
-rw-r--r--pkgs/development/tools/misc/patsh/default.nix2
-rw-r--r--pkgs/development/tools/misc/pest-ide-tools/default.nix8
-rw-r--r--pkgs/development/tools/misc/pkg-config/default.nix13
-rw-r--r--pkgs/development/tools/misc/planus/default.nix2
-rw-r--r--pkgs/development/tools/misc/polylith/default.nix2
-rw-r--r--pkgs/development/tools/misc/premake/3.nix2
-rw-r--r--pkgs/development/tools/misc/premake/5.nix11
-rw-r--r--pkgs/development/tools/misc/premake/default.nix2
-rw-r--r--pkgs/development/tools/misc/protox/default.nix2
-rw-r--r--pkgs/development/tools/misc/ptags/default.nix2
-rw-r--r--pkgs/development/tools/misc/python-launcher/default.nix2
-rw-r--r--pkgs/development/tools/misc/regex-cli/default.nix2
-rw-r--r--pkgs/development/tools/misc/remarkable/remarkable-toolchain/default.nix2
-rw-r--r--pkgs/development/tools/misc/remarkable/remarkable2-toolchain/default.nix2
-rw-r--r--pkgs/development/tools/misc/replacement/default.nix2
-rw-r--r--pkgs/development/tools/misc/reviewdog/default.nix6
-rw-r--r--pkgs/development/tools/misc/riff/default.nix2
-rw-r--r--pkgs/development/tools/misc/rolespec/default.nix2
-rw-r--r--pkgs/development/tools/misc/rsass/default.nix6
-rw-r--r--pkgs/development/tools/misc/samply/default.nix2
-rw-r--r--pkgs/development/tools/misc/sccache/default.nix6
-rw-r--r--pkgs/development/tools/misc/scriptisto/default.nix8
-rw-r--r--pkgs/development/tools/misc/seer/default.nix14
-rw-r--r--pkgs/development/tools/misc/sipp/default.nix2
-rw-r--r--pkgs/development/tools/misc/spruce/default.nix2
-rw-r--r--pkgs/development/tools/misc/strace/default.nix2
-rw-r--r--pkgs/development/tools/misc/swig/2.x.nix2
-rw-r--r--pkgs/development/tools/misc/swig/3.x.nix2
-rw-r--r--pkgs/development/tools/misc/terser/default.nix6
-rw-r--r--pkgs/development/tools/misc/tet/default.nix2
-rw-r--r--pkgs/development/tools/misc/texinfo/4.13a.nix6
-rw-r--r--pkgs/development/tools/misc/texinfo/common.nix9
-rw-r--r--pkgs/development/tools/misc/texlab/default.nix10
-rw-r--r--pkgs/development/tools/misc/tokei/default.nix2
-rw-r--r--pkgs/development/tools/misc/topiary/default.nix2
-rw-r--r--pkgs/development/tools/misc/ttags/default.nix6
-rw-r--r--pkgs/development/tools/misc/typical/default.nix6
-rw-r--r--pkgs/development/tools/misc/universal-ctags/default.nix2
-rw-r--r--pkgs/development/tools/misc/unixbench/default.nix2
-rw-r--r--pkgs/development/tools/misc/unused/default.nix2
-rw-r--r--pkgs/development/tools/misc/usb-modeswitch/default.nix2
-rw-r--r--pkgs/development/tools/misc/vtable-dumper/default.nix2
-rw-r--r--pkgs/development/tools/misc/watson-ruby/default.nix2
-rw-r--r--pkgs/development/tools/misc/xspim/default.nix2
-rw-r--r--pkgs/development/tools/misc/xxgdb/default.nix2
-rw-r--r--pkgs/development/tools/misc/yodl/default.nix2
-rw-r--r--pkgs/development/tools/mix2nix/default.nix2
-rw-r--r--pkgs/development/tools/modd/default.nix2
-rw-r--r--pkgs/development/tools/mongosh/default.nix2
-rw-r--r--pkgs/development/tools/mongosh/package-lock.json1792
-rw-r--r--pkgs/development/tools/mongosh/source.json8
-rw-r--r--pkgs/development/tools/mpfshell/default.nix2
-rw-r--r--pkgs/development/tools/mustache-go/default.nix2
-rw-r--r--pkgs/development/tools/mysql-shell/default.nix2
-rw-r--r--pkgs/development/tools/mysql-shell/innovation.nix2
-rw-r--r--pkgs/development/tools/nagelfar/default.nix2
-rw-r--r--pkgs/development/tools/neil/default.nix2
-rw-r--r--pkgs/development/tools/nodehun/default.nix2
-rw-r--r--pkgs/development/tools/nodenv/default.nix4
-rw-r--r--pkgs/development/tools/nsis/default.nix2
-rw-r--r--pkgs/development/tools/nufmt/default.nix2
-rw-r--r--pkgs/development/tools/nwjs/default.nix12
-rw-r--r--pkgs/development/tools/ocaml/camlidl/default.nix2
-rw-r--r--pkgs/development/tools/ocaml/camlp4/default.nix2
-rw-r--r--pkgs/development/tools/ocaml/cppo/default.nix2
-rw-r--r--pkgs/development/tools/ocaml/dune/1.nix2
-rw-r--r--pkgs/development/tools/ocaml/dune/2.nix2
-rw-r--r--pkgs/development/tools/ocaml/dune/3.nix6
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix4
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/ocamlbuild.nix2
-rw-r--r--pkgs/development/tools/ocaml/merlin/4.x.nix2
-rw-r--r--pkgs/development/tools/ocaml/merlin/default.nix2
-rw-r--r--pkgs/development/tools/ocaml/obelisk/default.nix2
-rw-r--r--pkgs/development/tools/ocaml/ocaml-recovery-parser/default.nix2
-rw-r--r--pkgs/development/tools/ocaml/ocaml-top/default.nix2
-rw-r--r--pkgs/development/tools/ocaml/ocamlbuild/default.nix2
-rw-r--r--pkgs/development/tools/ocaml/ocp-build/default.nix2
-rw-r--r--pkgs/development/tools/ocaml/ocp-indent/default.nix2
-rw-r--r--pkgs/development/tools/ocaml/ocp-index/default.nix2
-rw-r--r--pkgs/development/tools/ocaml/ocsigen-i18n/default.nix20
-rw-r--r--pkgs/development/tools/ocaml/omake/default.nix2
-rw-r--r--pkgs/development/tools/ocaml/opam-publish/default.nix2
-rw-r--r--pkgs/development/tools/ocaml/opam/default.nix2
-rw-r--r--pkgs/development/tools/okteto/default.nix4
-rw-r--r--pkgs/development/tools/omniorb/default.nix2
-rw-r--r--pkgs/development/tools/opcr-policy/default.nix6
-rw-r--r--pkgs/development/tools/open-policy-agent/default.nix4
-rw-r--r--pkgs/development/tools/operator-sdk/default.nix6
-rw-r--r--pkgs/development/tools/oq/default.nix2
-rw-r--r--pkgs/development/tools/oras/default.nix8
-rw-r--r--pkgs/development/tools/oxlint/default.nix2
-rw-r--r--pkgs/development/tools/package-project-cmake/default.nix2
-rw-r--r--pkgs/development/tools/packcc/default.nix2
-rw-r--r--pkgs/development/tools/packer/default.nix8
-rw-r--r--pkgs/development/tools/parsing/bisonc++/default.nix2
-rw-r--r--pkgs/development/tools/parsing/flex/2.5.35.nix2
-rw-r--r--pkgs/development/tools/parsing/flex/default.nix2
-rw-r--r--pkgs/development/tools/parsing/hammer/default.nix2
-rw-r--r--pkgs/development/tools/parsing/javacc/default.nix2
-rw-r--r--pkgs/development/tools/parsing/jikespg/default.nix2
-rw-r--r--pkgs/development/tools/parsing/lemon/default.nix2
-rw-r--r--pkgs/development/tools/parsing/nex/default.nix17
-rw-r--r--pkgs/development/tools/parsing/re-flex/default.nix2
-rw-r--r--pkgs/development/tools/parsing/spicy/default.nix2
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/default.nix2
-rw-r--r--pkgs/development/tools/patcher9x/default.nix2
-rw-r--r--pkgs/development/tools/pax-rs/default.nix2
-rw-r--r--pkgs/development/tools/perseus-cli/default.nix2
-rw-r--r--pkgs/development/tools/pgformatter/default.nix2
-rw-r--r--pkgs/development/tools/pgtop/default.nix2
-rw-r--r--pkgs/development/tools/pigeon/default.nix2
-rw-r--r--pkgs/development/tools/pnpm/default.nix20
-rw-r--r--pkgs/development/tools/pnpm/fetch-deps/default.nix91
-rw-r--r--pkgs/development/tools/pnpm/fetch-deps/pnpm-config-hook.sh40
-rw-r--r--pkgs/development/tools/pnpm/fetch-deps/serve.nix30
-rw-r--r--pkgs/development/tools/pnpm/generic.nix80
-rw-r--r--pkgs/development/tools/pqrs/default.nix6
-rw-r--r--pkgs/development/tools/profiling/pprof/default.nix2
-rw-r--r--pkgs/development/tools/prospector/setoptconf.nix2
-rw-r--r--pkgs/development/tools/protoc-gen-go-grpc/default.nix2
-rw-r--r--pkgs/development/tools/protoc-gen-go-vtproto/default.nix2
-rw-r--r--pkgs/development/tools/protoc-gen-prost-crate/default.nix2
-rw-r--r--pkgs/development/tools/protoc-gen-prost-serde/default.nix2
-rw-r--r--pkgs/development/tools/protoc-gen-tonic/default.nix2
-rw-r--r--pkgs/development/tools/protoc-gen-twirp/default.nix14
-rw-r--r--pkgs/development/tools/protoc-gen-twirp_php/default.nix6
-rw-r--r--pkgs/development/tools/protolint/default.nix8
-rw-r--r--pkgs/development/tools/pry/default.nix2
-rw-r--r--pkgs/development/tools/pscale/default.nix2
-rw-r--r--pkgs/development/tools/pur/default.nix16
-rw-r--r--pkgs/development/tools/pyenv/default.nix4
-rw-r--r--pkgs/development/tools/pypi-mirror/default.nix2
-rw-r--r--pkgs/development/tools/qtcreator/default.nix4
-rw-r--r--pkgs/development/tools/railway/default.nix6
-rw-r--r--pkgs/development/tools/rain/default.nix8
-rw-r--r--pkgs/development/tools/rbspy/default.nix8
-rw-r--r--pkgs/development/tools/rcodesign/default.nix2
-rw-r--r--pkgs/development/tools/react-native-debugger/default.nix2
-rw-r--r--pkgs/development/tools/react-static/default.nix2
-rw-r--r--pkgs/development/tools/reflex/default.nix2
-rw-r--r--pkgs/development/tools/refurb/default.nix2
-rw-r--r--pkgs/development/tools/reindeer/default.nix6
-rw-r--r--pkgs/development/tools/relic/default.nix8
-rw-r--r--pkgs/development/tools/renderdoc/default.nix6
-rw-r--r--pkgs/development/tools/replay-io/default.nix4
-rw-r--r--pkgs/development/tools/reshape/default.nix2
-rw-r--r--pkgs/development/tools/rgp/default.nix32
-rw-r--r--pkgs/development/tools/rover/default.nix2
-rw-r--r--pkgs/development/tools/rq/default.nix2
-rw-r--r--pkgs/development/tools/rslint/default.nix2
-rw-r--r--pkgs/development/tools/rstfmt/default.nix2
-rw-r--r--pkgs/development/tools/rubyfmt/default.nix14
-rw-r--r--pkgs/development/tools/ruff/Cargo.lock3771
-rw-r--r--pkgs/development/tools/ruff/default.nix46
-rw-r--r--pkgs/development/tools/rund/default.nix2
-rw-r--r--pkgs/development/tools/rust/bootimage/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-about/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-all-features/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-benchcmp/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-binstall/default.nix8
-rw-r--r--pkgs/development/tools/rust/cargo-c/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-careful/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-chef/default.nix8
-rw-r--r--pkgs/development/tools/rust/cargo-clone/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-component/default.nix8
-rw-r--r--pkgs/development/tools/rust/cargo-cranky/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-crev/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-cyclonedx/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-deb/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-deny/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-depgraph/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-dephell/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-dist/default.nix8
-rw-r--r--pkgs/development/tools/rust/cargo-duplicates/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-edit/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-generate/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-guppy/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-hakari/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-insta/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-lambda/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-leptos/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-llvm-cov/default.nix8
-rw-r--r--pkgs/development/tools/rust/cargo-local-registry/default.nix7
-rw-r--r--pkgs/development/tools/rust/cargo-machete/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-mobile2/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-modules/default.nix8
-rw-r--r--pkgs/development/tools/rust/cargo-mutants/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-ndk/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-nextest/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-outdated/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-pgrx/buildPgrxExtension.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-public-api/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-readme/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-risczero/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-semver-checks/default.nix8
-rw-r--r--pkgs/development/tools/rust/cargo-show-asm/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-shuttle/Cargo.lock3656
-rw-r--r--pkgs/development/tools/rust/cargo-shuttle/default.nix9
-rw-r--r--pkgs/development/tools/rust/cargo-sort/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-sweep/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-sync-readme/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-tauri/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-temp/default.nix8
-rw-r--r--pkgs/development/tools/rust/cargo-toml-lint/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-ui/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-unused-features/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-update/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-vet/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-watch/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-web/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-whatfeatures/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-workspaces/default.nix8
-rw-r--r--pkgs/development/tools/rust/cargo-zigbuild/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo2junit/default.nix2
-rw-r--r--pkgs/development/tools/rust/cauwugo/default.nix2
-rw-r--r--pkgs/development/tools/rust/cbindgen/default.nix2
-rw-r--r--pkgs/development/tools/rust/crate2nix/default.nix2
-rw-r--r--pkgs/development/tools/rust/critcmp/default.nix2
-rw-r--r--pkgs/development/tools/rust/duckscript/default.nix2
-rw-r--r--pkgs/development/tools/rust/leptosfmt/default.nix2
-rw-r--r--pkgs/development/tools/rust/probe-rs/default.nix38
-rw-r--r--pkgs/development/tools/rust/ra-multiplex/default.nix2
-rw-r--r--pkgs/development/tools/rust/roogle/default.nix2
-rw-r--r--pkgs/development/tools/rust/rust-analyzer/default.nix8
-rw-r--r--pkgs/development/tools/rust/rust-audit-info/default.nix2
-rw-r--r--pkgs/development/tools/rust/rustup/0001-dynamically-patchelf-binaries.patch188
-rw-r--r--pkgs/development/tools/rust/rustup/default.nix24
-rw-r--r--pkgs/development/tools/rust/rusty-man/default.nix2
-rw-r--r--pkgs/development/tools/rust/sqlx-cli/default.nix6
-rw-r--r--pkgs/development/tools/rust/svd2rust/default.nix6
-rw-r--r--pkgs/development/tools/rye/default.nix2
-rw-r--r--pkgs/development/tools/sassc/default.nix2
-rw-r--r--pkgs/development/tools/sauce-connect/default.nix2
-rwxr-xr-xpkgs/development/tools/sauce-connect/update.sh3
-rw-r--r--pkgs/development/tools/sca2d/default.nix2
-rw-r--r--pkgs/development/tools/scalafmt/default.nix4
-rw-r--r--pkgs/development/tools/scenebuilder/default.nix2
-rw-r--r--pkgs/development/tools/scenic-view/default.nix2
-rw-r--r--pkgs/development/tools/scss-lint/default.nix2
-rw-r--r--pkgs/development/tools/selene/default.nix2
-rw-r--r--pkgs/development/tools/selenium/chromedriver/default.nix2
-rw-r--r--pkgs/development/tools/selenium/htmlunit-driver/default.nix2
-rw-r--r--pkgs/development/tools/sem/default.nix2
-rw-r--r--pkgs/development/tools/semantic-release/default.nix6
-rw-r--r--pkgs/development/tools/sentry-cli/default.nix8
-rw-r--r--pkgs/development/tools/shellharden/default.nix2
-rw-r--r--pkgs/development/tools/simavr/default.nix2
-rw-r--r--pkgs/development/tools/skopeo/default.nix2
-rw-r--r--pkgs/development/tools/smlfmt/default.nix2
-rw-r--r--pkgs/development/tools/snazy/default.nix2
-rw-r--r--pkgs/development/tools/so/default.nix2
-rw-r--r--pkgs/development/tools/solarus-quest-editor/default.nix2
-rw-r--r--pkgs/development/tools/spicy/default.nix2
-rw-r--r--pkgs/development/tools/spirv-tools/default.nix2
-rw-r--r--pkgs/development/tools/spring-boot-cli/default.nix4
-rw-r--r--pkgs/development/tools/sqldef/default.nix4
-rw-r--r--pkgs/development/tools/squawk/default.nix6
-rw-r--r--pkgs/development/tools/steamos-devkit/default.nix10
-rw-r--r--pkgs/development/tools/stylua/default.nix2
-rw-r--r--pkgs/development/tools/subxt/default.nix2
-rw-r--r--pkgs/development/tools/supabase-cli/default.nix8
-rw-r--r--pkgs/development/tools/swiftformat/default.nix2
-rw-r--r--pkgs/development/tools/systemfd/default.nix2
-rw-r--r--pkgs/development/tools/tailwindcss/default.nix12
-rw-r--r--pkgs/development/tools/taplo/default.nix2
-rw-r--r--pkgs/development/tools/tapview/default.nix2
-rw-r--r--pkgs/development/tools/teller/default.nix75
-rw-r--r--pkgs/development/tools/tokio-console/default.nix2
-rw-r--r--pkgs/development/tools/toluapp/default.nix2
-rw-r--r--pkgs/development/tools/toml2json/default.nix2
-rw-r--r--pkgs/development/tools/toml2nix/default.nix2
-rw-r--r--pkgs/development/tools/tradcpp/default.nix2
-rw-r--r--pkgs/development/tools/trunk/default.nix6
-rw-r--r--pkgs/development/tools/turbogit/default.nix2
-rw-r--r--pkgs/development/tools/turso-cli/default.nix6
-rw-r--r--pkgs/development/tools/twilio-cli/default.nix4
-rw-r--r--pkgs/development/tools/twitch-cli/default.nix2
-rw-r--r--pkgs/development/tools/typos/default.nix6
-rw-r--r--pkgs/development/tools/unconvert/default.nix8
-rw-r--r--pkgs/development/tools/vagrant/default.nix2
-rw-r--r--pkgs/development/tools/vendir/default.nix4
-rw-r--r--pkgs/development/tools/viceroy/default.nix6
-rw-r--r--pkgs/development/tools/volta/default.nix2
-rw-r--r--pkgs/development/tools/vsce/default.nix6
-rw-r--r--pkgs/development/tools/vulkan-validation-layers/default.nix2
-rw-r--r--pkgs/development/tools/vulkan-validation-layers/robin-hood-hashing.nix2
-rw-r--r--pkgs/development/tools/vultr-cli/default.nix6
-rw-r--r--pkgs/development/tools/wabt/default.nix2
-rw-r--r--pkgs/development/tools/wally-cli/default.nix2
-rw-r--r--pkgs/development/tools/wasm-pack/default.nix2
-rw-r--r--pkgs/development/tools/wasmedge/default.nix6
-rw-r--r--pkgs/development/tools/wasmi/default.nix2
-rw-r--r--pkgs/development/tools/wasmserve/default.nix2
-rw-r--r--pkgs/development/tools/web-ext/default.nix8
-rw-r--r--pkgs/development/tools/wire/default.nix2
-rw-r--r--pkgs/development/tools/wllvm/default.nix2
-rw-r--r--pkgs/development/tools/worker-build/default.nix2
-rw-r--r--pkgs/development/tools/wrangler_1/default.nix2
-rw-r--r--pkgs/development/tools/wxformbuilder/default.nix12
-rw-r--r--pkgs/development/tools/xqilla/default.nix17
-rw-r--r--pkgs/development/tools/yamlfmt/default.nix2
-rw-r--r--pkgs/development/tools/yarn-berry/default.nix2
-rw-r--r--pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix28
-rw-r--r--pkgs/development/tools/yq-go/default.nix6
-rw-r--r--pkgs/development/tools/ytt/default.nix4
-rw-r--r--pkgs/development/tools/yuicompressor/default.nix2
-rw-r--r--pkgs/development/tools/zed/default.nix2
-rw-r--r--pkgs/development/tools/zld/default.nix2
-rw-r--r--pkgs/development/web/boa/default.nix2
-rw-r--r--pkgs/development/web/bootstrap-studio/default.nix4
-rw-r--r--pkgs/development/web/bun/default.nix15
-rw-r--r--pkgs/development/web/cog/default.nix2
-rw-r--r--pkgs/development/web/deno/default.nix8
-rw-r--r--pkgs/development/web/deno/librusty_v8.nix17
-rw-r--r--pkgs/development/web/deno/update/librusty_v8.ts7
-rw-r--r--pkgs/development/web/edge-runtime/Cargo.lock7119
-rw-r--r--pkgs/development/web/edge-runtime/default.nix45
-rw-r--r--pkgs/development/web/edge-runtime/librusty_v8.nix18
-rw-r--r--pkgs/development/web/flyctl/default.nix23
-rw-r--r--pkgs/development/web/function-runner/default.nix8
-rw-r--r--pkgs/development/web/insomnia/default.nix151
-rw-r--r--pkgs/development/web/kore/default.nix2
-rw-r--r--pkgs/development/web/lucky-cli/default.nix2
-rw-r--r--pkgs/development/web/newman/default.nix8
-rw-r--r--pkgs/development/web/nodejs/nodejs.nix2
-rw-r--r--pkgs/development/web/nodejs/v18.nix2
-rw-r--r--pkgs/development/web/nodejs/v22.nix4
-rw-r--r--pkgs/development/web/playwright-test/node-packages.nix2
-rw-r--r--pkgs/development/web/playwright/driver.nix1
-rw-r--r--pkgs/development/web/pnpm-lock-export/default.nix2
-rw-r--r--pkgs/development/web/protege-distribution/default.nix2
-rw-r--r--pkgs/development/web/publii/default.nix2
-rw-r--r--pkgs/development/web/shopify-themekit/default.nix2
-rw-r--r--pkgs/games/0ad/data.nix2
-rw-r--r--pkgs/games/0ad/game.nix2
-rw-r--r--pkgs/games/2048-cli/default.nix2
-rw-r--r--pkgs/games/20kly/default.nix2
-rw-r--r--pkgs/games/90secondportraits/default.nix2
-rw-r--r--pkgs/games/abbaye-des-morts/default.nix2
-rw-r--r--pkgs/games/adom/default.nix60
-rw-r--r--pkgs/games/airshipper/default.nix1
-rw-r--r--pkgs/games/airstrike/default.nix2
-rw-r--r--pkgs/games/alienarena/default.nix2
-rw-r--r--pkgs/games/angband/default.nix2
-rw-r--r--pkgs/games/animatch/default.nix2
-rw-r--r--pkgs/games/anki/bin.nix133
-rw-r--r--pkgs/games/armagetronad/default.nix2
-rw-r--r--pkgs/games/augustus/default.nix2
-rw-r--r--pkgs/games/azimuth/default.nix2
-rw-r--r--pkgs/games/badlion-client/default.nix2
-rw-r--r--pkgs/games/black-hole-solver/default.nix2
-rw-r--r--pkgs/games/blackshades/default.nix2
-rw-r--r--pkgs/games/blightmud/default.nix2
-rw-r--r--pkgs/games/blobby/default.nix2
-rw-r--r--pkgs/games/boohu/default.nix2
-rw-r--r--pkgs/games/braincurses/default.nix2
-rw-r--r--pkgs/games/brogue-ce/default.nix2
-rw-r--r--pkgs/games/brogue/default.nix2
-rw-r--r--pkgs/games/bugdom/default.nix2
-rw-r--r--pkgs/games/cataclysm-dda/common.nix2
-rw-r--r--pkgs/games/chessdb/default.nix2
-rw-r--r--pkgs/games/chiaki4deck/default.nix4
-rw-r--r--pkgs/games/chromium-bsu/default.nix2
-rw-r--r--pkgs/games/classicube/default.nix2
-rw-r--r--pkgs/games/cockatrice/default.nix2
-rw-r--r--pkgs/games/colobot/default.nix2
-rw-r--r--pkgs/games/corsix-th/darwin-cmake-no-fixup-bundle.patch12
-rw-r--r--pkgs/games/corsix-th/default.nix47
-rw-r--r--pkgs/games/crack-attack/default.nix2
-rw-r--r--pkgs/games/crawl/default.nix1
-rw-r--r--pkgs/games/crrcsim/default.nix2
-rw-r--r--pkgs/games/curseofwar/default.nix2
-rw-r--r--pkgs/games/darkplaces/default.nix2
-rw-r--r--pkgs/games/ddnet/default.nix2
-rw-r--r--pkgs/games/domination/default.nix8
-rw-r--r--pkgs/games/doom-ports/chocolate-doom/default.nix2
-rw-r--r--pkgs/games/doom-ports/crispy-doom/default.nix2
-rw-r--r--pkgs/games/doom-ports/doomretro/default.nix2
-rw-r--r--pkgs/games/doom-ports/eureka-editor/default.nix2
-rw-r--r--pkgs/games/doom-ports/odamex/default.nix2
-rw-r--r--pkgs/games/doom-ports/prboom-plus/default.nix2
-rw-r--r--pkgs/games/doom-ports/zandronum/sqlite.nix2
-rw-r--r--pkgs/games/dwarf-fortress/game.nix2
-rw-r--r--pkgs/games/dwarf-fortress/lazy-pack.nix2
-rw-r--r--pkgs/games/dwarf-fortress/legends-browser/default.nix2
-rw-r--r--pkgs/games/dwarf-fortress/twbt/default.nix2
-rw-r--r--pkgs/games/dxx-rebirth/default.nix1
-rw-r--r--pkgs/games/eidolon/default.nix2
-rw-r--r--pkgs/games/empty-epsilon/default.nix14
-rw-r--r--pkgs/games/endgame-singularity/default.nix2
-rw-r--r--pkgs/games/endless-sky/default.nix2
-rw-r--r--pkgs/games/ezquake/default.nix2
-rw-r--r--pkgs/games/factorio/default.nix2
-rw-r--r--pkgs/games/fairymax/default.nix2
-rw-r--r--pkgs/games/fallout-ce/fallout-ce.nix2
-rw-r--r--pkgs/games/fallout-ce/fallout2-ce.nix2
-rw-r--r--pkgs/games/ferium/default.nix6
-rw-r--r--pkgs/games/fheroes2/default.nix4
-rw-r--r--pkgs/games/fish-fillets-ng/default.nix2
-rw-r--r--pkgs/games/fltrator/default.nix2
-rw-r--r--pkgs/games/forge-mtg/default.nix4
-rw-r--r--pkgs/games/freedink/default.nix2
-rw-r--r--pkgs/games/freedroid/default.nix2
-rw-r--r--pkgs/games/freeorion/default.nix2
-rw-r--r--pkgs/games/freesweep/default.nix4
-rw-r--r--pkgs/games/frotz/default.nix2
-rw-r--r--pkgs/games/fteqw/default.nix2
-rw-r--r--pkgs/games/gamepad-tool/default.nix2
-rw-r--r--pkgs/games/gcompris/default.nix23
-rw-r--r--pkgs/games/gemrb/default.nix2
-rw-r--r--pkgs/games/gl-117/default.nix2
-rw-r--r--pkgs/games/gl-gsync-demo/default.nix2
-rw-r--r--pkgs/games/gnujump/default.nix2
-rw-r--r--pkgs/games/gogdl/default.nix7
-rw-r--r--pkgs/games/gogui/default.nix2
-rw-r--r--pkgs/games/gotypist/default.nix2
-rw-r--r--pkgs/games/graphwar/default.nix2
-rw-r--r--pkgs/games/gshogi/default.nix2
-rw-r--r--pkgs/games/harmonist/default.nix2
-rw-r--r--pkgs/games/hase/default.nix2
-rw-r--r--pkgs/games/heroic/default.nix2
-rw-r--r--pkgs/games/hex-a-hop/default.nix2
-rw-r--r--pkgs/games/hikounomizu/default.nix2
-rw-r--r--pkgs/games/hmcl/default.nix4
-rw-r--r--pkgs/games/infra-arcana/default.nix2
-rw-r--r--pkgs/games/instawow/default.nix4
-rw-r--r--pkgs/games/ironwail/default.nix27
-rw-r--r--pkgs/games/julius/darwin-fixes.patch49
-rw-r--r--pkgs/games/julius/default.nix39
-rw-r--r--pkgs/games/jumpy/default.nix2
-rw-r--r--pkgs/games/keeperrl/default.nix2
-rw-r--r--pkgs/games/koboredux/default.nix2
-rw-r--r--pkgs/games/ldmud/default.nix2
-rw-r--r--pkgs/games/legendary-gl/default.nix2
-rw-r--r--pkgs/games/liberal-crime-squad/default.nix2
-rw-r--r--pkgs/games/linthesia/default.nix2
-rw-r--r--pkgs/games/liquidwar/5.nix2
-rw-r--r--pkgs/games/maelstrom/default.nix2
-rw-r--r--pkgs/games/manaplus/default.nix2
-rw-r--r--pkgs/games/mars/default.nix2
-rw-r--r--pkgs/games/mchprs/default.nix2
-rw-r--r--pkgs/games/megaglest/default.nix2
-rw-r--r--pkgs/games/methane/default.nix2
-rw-r--r--pkgs/games/mindustry/default.nix2
-rw-r--r--pkgs/games/minecraft-servers/derivation.nix18
-rw-r--r--pkgs/games/minecraft-servers/versions.json6
-rw-r--r--pkgs/games/minetest/default.nix5
-rw-r--r--pkgs/games/moon-buggy/default.nix2
-rw-r--r--pkgs/games/naev/default.nix4
-rw-r--r--pkgs/games/nanosaur/default.nix2
-rw-r--r--pkgs/games/nanosaur2/default.nix2
-rw-r--r--pkgs/games/netris/default.nix2
-rw-r--r--pkgs/games/newtonwars/default.nix2
-rw-r--r--pkgs/games/nexuiz/default.nix2
-rw-r--r--pkgs/games/nile/default.nix6
-rw-r--r--pkgs/games/npush/default.nix2
-rw-r--r--pkgs/games/nudoku/default.nix2
-rw-r--r--pkgs/games/oh-my-git/default.nix2
-rw-r--r--pkgs/games/oilrush/default.nix2
-rw-r--r--pkgs/games/onscripter-en/default.nix38
-rw-r--r--pkgs/games/openarena/default.nix2
-rw-r--r--pkgs/games/openclonk/default.nix2
-rw-r--r--pkgs/games/opendungeons/default.nix2
-rw-r--r--pkgs/games/openjk/default.nix2
-rw-r--r--pkgs/games/openloco/default.nix2
-rw-r--r--pkgs/games/openmw/default.nix2
-rw-r--r--pkgs/games/openspades/default.nix2
-rw-r--r--pkgs/games/openttd/default.nix8
-rw-r--r--pkgs/games/openttd/jgrpp.nix4
-rw-r--r--pkgs/games/otto-matic/default.nix2
-rw-r--r--pkgs/games/pacvim/default.nix2
-rwxr-xr-xpkgs/games/papermc/update.py11
-rw-r--r--pkgs/games/papermc/versions.json16
-rw-r--r--pkgs/games/pegasus-frontend/default.nix2
-rw-r--r--pkgs/games/pentobi/default.nix2
-rw-r--r--pkgs/games/pingus/default.nix2
-rw-r--r--pkgs/games/pioneer/default.nix2
-rw-r--r--pkgs/games/pokete/default.nix2
-rw-r--r--pkgs/games/powermanga/default.nix2
-rw-r--r--pkgs/games/prismlauncher/default.nix2
-rw-r--r--pkgs/games/pro-office-calculator/default.nix2
-rw-r--r--pkgs/games/purpur/default.nix2
-rw-r--r--pkgs/games/qgo/default.nix2
-rw-r--r--pkgs/games/qtads/default.nix2
-rw-r--r--pkgs/games/quake3/ioquake/default.nix2
-rw-r--r--pkgs/games/quake3/quake3e/default.nix13
-rw-r--r--pkgs/games/quakespasm/default.nix2
-rw-r--r--pkgs/games/qzdl/default.nix2
-rw-r--r--pkgs/games/r2mod_cli/default.nix2
-rw-r--r--pkgs/games/raylib-games/default.nix2
-rw-r--r--pkgs/games/redeclipse/default.nix4
-rw-r--r--pkgs/games/rigsofrods-bin/default.nix2
-rw-r--r--pkgs/games/riko4/default.nix2
-rw-r--r--pkgs/games/rili/default.nix2
-rw-r--r--pkgs/games/rocksndiamonds/default.nix1
-rw-r--r--pkgs/games/rogue/default.nix2
-rw-r--r--pkgs/games/sauerbraten/default.nix2
-rw-r--r--pkgs/games/scid-vs-pc/default.nix4
-rw-r--r--pkgs/games/scrolls/default.nix2
-rw-r--r--pkgs/games/shattered-pixel-dungeon/default.nix4
-rw-r--r--pkgs/games/shattered-pixel-dungeon/experienced-pixel-dungeon.nix6
-rw-r--r--pkgs/games/shattered-pixel-dungeon/shorter-pixel-dungeon.nix6
-rw-r--r--pkgs/games/shipwright/darwin-fixes.patch37
-rw-r--r--pkgs/games/shipwright/default.nix90
-rw-r--r--pkgs/games/sil-q/default.nix2
-rw-r--r--pkgs/games/sil/default.nix2
-rw-r--r--pkgs/games/simutrans/default.nix2
-rw-r--r--pkgs/games/sm64ex/generic.nix1
-rw-r--r--pkgs/games/snake4/default.nix2
-rw-r--r--pkgs/games/soi/default.nix2
-rw-r--r--pkgs/games/solarus/default.nix2
-rw-r--r--pkgs/games/solicurses/default.nix2
-rw-r--r--pkgs/games/space-cadet-pinball/default.nix1
-rw-r--r--pkgs/games/space-orbit/default.nix2
-rw-r--r--pkgs/games/space-station-14-launcher/space-station-14-launcher.nix4
-rw-r--r--pkgs/games/spring/default.nix2
-rw-r--r--pkgs/games/steam/fhsenv.nix7
-rw-r--r--pkgs/games/steam/runtime.nix6
-rw-r--r--pkgs/games/steam/steam.nix2
-rw-r--r--pkgs/games/steam/steamcmd.nix7
-rw-r--r--pkgs/games/stone-kingdoms/default.nix2
-rw-r--r--pkgs/games/super-tux-kart/default.nix2
-rw-r--r--pkgs/games/system-syzygy/default.nix2
-rw-r--r--pkgs/games/t4kcommon/default.nix2
-rw-r--r--pkgs/games/taisei/default.nix2
-rw-r--r--pkgs/games/tcl2048/default.nix2
-rw-r--r--pkgs/games/tecnoballz/default.nix2
-rw-r--r--pkgs/games/tes3cmd/default.nix2
-rw-r--r--pkgs/games/the-butterfly-effect/default.nix2
-rw-r--r--pkgs/games/tintin/default.nix2
-rw-r--r--pkgs/games/tinyfugue/default.nix2
-rw-r--r--pkgs/games/trigger/default.nix2
-rw-r--r--pkgs/games/tuxtype/default.nix2
-rw-r--r--pkgs/games/typespeed/default.nix2
-rw-r--r--pkgs/games/ufoai/default.nix2
-rw-r--r--pkgs/games/uhexen2/default.nix2
-rw-r--r--pkgs/games/ultrastardx/default.nix5
-rw-r--r--pkgs/games/umoria/default.nix2
-rw-r--r--pkgs/games/unvanquished/default.nix3
-rw-r--r--pkgs/games/urbanterror/default.nix2
-rw-r--r--pkgs/games/ut2004/demo.nix2
-rw-r--r--pkgs/games/vassal/default.nix2
-rw-r--r--pkgs/games/vcmi/default.nix11
-rw-r--r--pkgs/games/vessel/default.nix2
-rw-r--r--pkgs/games/vimgolf/default.nix2
-rw-r--r--pkgs/games/vintagestory/default.nix6
-rw-r--r--pkgs/games/warzone2100/default.nix2
-rw-r--r--pkgs/games/wesnoth/default.nix2
-rw-r--r--pkgs/games/widelands/default.nix1
-rw-r--r--pkgs/games/wipeout-rewrite/default.nix2
-rw-r--r--pkgs/games/worldofgoo/default.nix2
-rw-r--r--pkgs/games/wyvern/default.nix2
-rw-r--r--pkgs/games/xconq/default.nix2
-rw-r--r--pkgs/games/xjump/default.nix2
-rw-r--r--pkgs/games/xmoto/default.nix2
-rw-r--r--pkgs/games/xpilot/bloodspilot-client.nix2
-rw-r--r--pkgs/games/xpilot/bloodspilot-server.nix2
-rw-r--r--pkgs/games/xpilot/default.nix2
-rw-r--r--pkgs/games/xsnow/default.nix2
-rw-r--r--pkgs/games/xsok/default.nix2
-rw-r--r--pkgs/games/xtris/default.nix2
-rw-r--r--pkgs/games/zaz/default.nix2
-rw-r--r--pkgs/kde/default.nix3
-rw-r--r--pkgs/kde/frameworks/kio/default.nix4
-rw-r--r--pkgs/kde/frameworks/kio/early-resolve-executables.diff13
-rw-r--r--pkgs/kde/frameworks/ksvg/default.nix10
-rw-r--r--pkgs/kde/gear/accessibility-inspector/default.nix4
-rw-r--r--pkgs/kde/gear/akonadi-search/default.nix2
-rw-r--r--pkgs/kde/gear/angelfish/default.nix2
-rw-r--r--pkgs/kde/gear/audex/default.nix10
-rw-r--r--pkgs/kde/gear/bovo/default.nix3
-rw-r--r--pkgs/kde/gear/calindori/default.nix8
-rw-r--r--pkgs/kde/gear/default.nix6
-rw-r--r--pkgs/kde/gear/francis/default.nix9
-rw-r--r--pkgs/kde/gear/kalm/default.nix4
-rw-r--r--pkgs/kde/gear/katomic/default.nix8
-rw-r--r--pkgs/kde/gear/kblackbox/default.nix3
-rw-r--r--pkgs/kde/gear/kbounce/default.nix3
-rw-r--r--pkgs/kde/gear/kdenlive/default.nix11
-rw-r--r--pkgs/kde/gear/kdepim-addons/default.nix2
-rw-r--r--pkgs/kde/gear/kfourinline/default.nix2
-rw-r--r--pkgs/kde/gear/kjumpingcube/default.nix3
-rw-r--r--pkgs/kde/gear/klickety/default.nix8
-rw-r--r--pkgs/kde/gear/klines/default.nix8
-rw-r--r--pkgs/kde/gear/kmines/default.nix8
-rw-r--r--pkgs/kde/gear/knavalbattle/default.nix8
-rw-r--r--pkgs/kde/gear/kolf/default.nix8
-rw-r--r--pkgs/kde/gear/kollision/default.nix8
-rw-r--r--pkgs/kde/gear/kreversi/default.nix3
-rw-r--r--pkgs/kde/gear/krfb/default.nix18
-rw-r--r--pkgs/kde/gear/krfb/fix-build-with-qt-6.7.1.diff51
-rw-r--r--pkgs/kde/gear/ksudoku/default.nix3
-rw-r--r--pkgs/kde/gear/kubrick/default.nix3
-rw-r--r--pkgs/kde/gear/lskat/default.nix3
-rw-r--r--pkgs/kde/gear/picmi/default.nix3
-rw-r--r--pkgs/kde/gear/skanpage/default.nix2
-rw-r--r--pkgs/kde/gear/skladnik/default.nix4
-rw-r--r--pkgs/kde/gear/spectacle/default.nix11
-rw-r--r--pkgs/kde/generated/dependencies.json87
-rw-r--r--pkgs/kde/generated/licenses.json94
-rw-r--r--pkgs/kde/generated/projects.json6
-rw-r--r--pkgs/kde/generated/sources/frameworks.json432
-rw-r--r--pkgs/kde/generated/sources/gear.json1500
-rw-r--r--pkgs/kde/generated/sources/plasma.json383
-rw-r--r--pkgs/kde/misc/kio-extras-kf5/default.nix (renamed from pkgs/kde/gear/kio-extras-kf5/default.nix)11
-rw-r--r--pkgs/kde/misc/marknote/default.nix27
-rw-r--r--pkgs/kde/misc/pulseaudio-qt/default.nix4
-rw-r--r--pkgs/kde/plasma/default.nix1
-rw-r--r--pkgs/kde/plasma/kinfocenter/0001-tool-paths.patch26
-rw-r--r--pkgs/kde/plasma/krdp/default.nix31
-rw-r--r--pkgs/kde/plasma/krdp/hardcode-openssl-path.patch13
-rw-r--r--pkgs/kde/plasma/kwin/default.nix5
-rw-r--r--pkgs/kde/plasma/plasma-desktop/default.nix5
-rw-r--r--pkgs/kde/plasma/plasma-desktop/wallpaper-paths.patch (renamed from pkgs/kde/plasma/plasma-workspace/wallpaper-paths.patch)4
-rw-r--r--pkgs/kde/plasma/plasma-mobile/default.nix8
-rw-r--r--pkgs/kde/plasma/plasma-workspace/default.nix10
-rw-r--r--pkgs/misc/arm-trusted-firmware/default.nix2
-rw-r--r--pkgs/misc/autotiling/default.nix4
-rw-r--r--pkgs/misc/barebox/default.nix2
-rw-r--r--pkgs/misc/beep/default.nix2
-rw-r--r--pkgs/misc/cliscord/default.nix1
-rw-r--r--pkgs/misc/cups/default.nix6
-rw-r--r--pkgs/misc/cups/drivers/brlaser/default.nix2
-rw-r--r--pkgs/misc/cups/drivers/cnijfilter2/default.nix2
-rw-r--r--pkgs/misc/cups/drivers/cups-pdf-to-pdf/default.nix2
-rw-r--r--pkgs/misc/cups/drivers/hl1210w/default.nix4
-rw-r--r--pkgs/misc/cups/drivers/mfc5890cncupswrapper/default.nix2
-rw-r--r--pkgs/misc/cups/drivers/samsung/1.00.36/module.nix2
-rw-r--r--pkgs/misc/drivers/argononed/default.nix2
-rw-r--r--pkgs/misc/drivers/epkowa/default.nix32
-rw-r--r--pkgs/misc/drivers/epson-escpr2/default.nix6
-rw-r--r--pkgs/misc/drivers/m33-linux/default.nix2
-rw-r--r--pkgs/misc/drivers/steamcontroller/default.nix2
-rw-r--r--pkgs/misc/fastly/default.nix6
-rw-r--r--pkgs/misc/frescobaldi/default.nix2
-rw-r--r--pkgs/misc/ghostscript/default.nix8
-rw-r--r--pkgs/misc/gnuk/generic.nix2
-rw-r--r--pkgs/misc/i3a/default.nix2
-rw-r--r--pkgs/misc/jackaudio/default.nix2
-rw-r--r--pkgs/misc/libcardiacarrest/default.nix2
-rw-r--r--pkgs/misc/lilypond/unstable.nix4
-rw-r--r--pkgs/misc/logging/beats/7.x.nix4
-rw-r--r--pkgs/misc/logging/pacemaker/default.nix2
-rw-r--r--pkgs/misc/long-shebang/default.nix2
-rw-r--r--pkgs/misc/lssecret/default.nix6
-rw-r--r--pkgs/misc/present/default.nix2
-rw-r--r--pkgs/misc/rich-cli/default.nix71
-rw-r--r--pkgs/misc/rkdeveloptool-pine64/default.nix2
-rw-r--r--pkgs/misc/rkdeveloptool/default.nix2
-rw-r--r--pkgs/misc/screensavers/light-locker/default.nix2
-rw-r--r--pkgs/misc/screensavers/physlock/default.nix2
-rw-r--r--pkgs/misc/screensavers/pipes-rs/default.nix2
-rw-r--r--pkgs/misc/screensavers/xlockmore/default.nix4
-rw-r--r--pkgs/misc/seafile-shared/default.nix4
-rw-r--r--pkgs/misc/tmux-plugins/default.nix33
-rw-r--r--pkgs/misc/tpm2-pkcs11/default.nix2
-rw-r--r--pkgs/misc/uq/default.nix2
-rw-r--r--pkgs/misc/urbit/default.nix2
-rw-r--r--pkgs/misc/wiki-tui/default.nix2
-rw-r--r--pkgs/os-specific/bsd/freebsd/default.nix62
-rw-r--r--pkgs/os-specific/bsd/freebsd/lib/default.nix2
-rw-r--r--pkgs/os-specific/bsd/freebsd/patches/13.1/compat-install-dirs.patch4
-rw-r--r--pkgs/os-specific/bsd/freebsd/patches/14.0/libcxxrt-headers.patch11
-rw-r--r--pkgs/os-specific/bsd/freebsd/patches/14.0/localedef.patch158
-rw-r--r--pkgs/os-specific/bsd/freebsd/patches/14.0/tinfo-host-cc.patch15
-rw-r--r--pkgs/os-specific/bsd/freebsd/pkgs/bin.nix92
-rw-r--r--pkgs/os-specific/bsd/freebsd/pkgs/boot-install.nix17
-rw-r--r--pkgs/os-specific/bsd/freebsd/pkgs/cp.nix10
-rw-r--r--pkgs/os-specific/bsd/freebsd/pkgs/csu.nix2
-rw-r--r--pkgs/os-specific/bsd/freebsd/pkgs/filterSource.nix17
-rw-r--r--pkgs/os-specific/bsd/freebsd/pkgs/iconv.nix12
-rw-r--r--pkgs/os-specific/bsd/freebsd/pkgs/include/package.nix2
-rw-r--r--pkgs/os-specific/bsd/freebsd/pkgs/ldd.nix21
-rw-r--r--pkgs/os-specific/bsd/freebsd/pkgs/libc/package.nix2
-rw-r--r--pkgs/os-specific/bsd/freebsd/pkgs/libcapsicum.nix1
-rw-r--r--pkgs/os-specific/bsd/freebsd/pkgs/libcasper.nix26
-rw-r--r--pkgs/os-specific/bsd/freebsd/pkgs/libcxxrt.nix18
-rw-r--r--pkgs/os-specific/bsd/freebsd/pkgs/libdl.nix9
-rw-r--r--pkgs/os-specific/bsd/freebsd/pkgs/libedit.nix7
-rw-r--r--pkgs/os-specific/bsd/freebsd/pkgs/libelf.nix29
-rw-r--r--pkgs/os-specific/bsd/freebsd/pkgs/libjail.nix5
-rw-r--r--pkgs/os-specific/bsd/freebsd/pkgs/libncurses-tinfo.nix15
-rw-r--r--pkgs/os-specific/bsd/freebsd/pkgs/libncurses.nix25
-rw-r--r--pkgs/os-specific/bsd/freebsd/pkgs/libxo.nix6
-rw-r--r--pkgs/os-specific/bsd/freebsd/pkgs/locale.nix7
-rw-r--r--pkgs/os-specific/bsd/freebsd/pkgs/localedef.nix39
-rw-r--r--pkgs/os-specific/bsd/freebsd/pkgs/locales.nix51
-rw-r--r--pkgs/os-specific/bsd/freebsd/pkgs/mkDerivation.nix31
-rw-r--r--pkgs/os-specific/bsd/lib/install-wrapper.sh (renamed from pkgs/os-specific/bsd/freebsd/lib/install-wrapper.sh)1
-rw-r--r--pkgs/os-specific/bsd/netbsd/default.nix42
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/cksum.nix2
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/column.nix6
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/common.nix3
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/compat/package.nix19
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/config.nix4
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/csu.nix9
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/dict.nix2
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/fts/package.nix11
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/genassym.nix6
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/gencat.nix6
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/getconf.nix6
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/getent/package.nix2
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/i18n_module.nix4
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/include.nix6
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/install/package.nix18
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/ld_elf_so.nix5
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/libarch.nix2
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/libc.nix13
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/libcrypt.nix2
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/libcurses.nix2
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/libedit.nix2
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/libm.nix4
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/libossaudio.nix2
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/libpci.nix4
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/libpthread/base.nix6
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/libpthread/package.nix9
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/libresolv.nix4
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/librpcsvc.nix2
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/librt.nix9
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/libterminfo.nix7
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/libutil.nix9
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/locale/package.nix2
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/lorder.nix2
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/make-rules.nix72
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/make.nix59
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/makeMinimal.nix11
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/man.nix2
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/misc.nix2
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/mkDerivation.nix33
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/mknod.nix6
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/mtree.nix4
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/nbperf.nix6
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/netbsdSetupHook/setup-hook.sh10
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/rpcgen.nix6
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/source.nix12
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/stat/package.nix2
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/sys/base.nix5
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/sys/headers.nix2
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/sys/package.nix2
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/tic.nix9
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/tsort.nix2
-rw-r--r--pkgs/os-specific/bsd/netbsd/pkgs/uudecode.nix2
-rw-r--r--pkgs/os-specific/bsd/openbsd/default.nix50
-rw-r--r--pkgs/os-specific/bsd/openbsd/pkgs/csu.nix23
-rw-r--r--pkgs/os-specific/bsd/openbsd/pkgs/include/package.nix57
-rw-r--r--pkgs/os-specific/bsd/openbsd/pkgs/libc/disable-librebuild.patch12
-rw-r--r--pkgs/os-specific/bsd/openbsd/pkgs/libc/netbsd-make-to-lower.patch16
-rw-r--r--pkgs/os-specific/bsd/openbsd/pkgs/libc/package.nix121
-rw-r--r--pkgs/os-specific/bsd/openbsd/pkgs/lorder.nix21
-rw-r--r--pkgs/os-specific/bsd/openbsd/pkgs/make-rules/netbsd-make-sinclude.patch15
-rw-r--r--pkgs/os-specific/bsd/openbsd/pkgs/make-rules/package.nix35
-rw-r--r--pkgs/os-specific/bsd/openbsd/pkgs/mkDerivation.nix98
-rw-r--r--pkgs/os-specific/bsd/openbsd/pkgs/openbsdSetupHook/package.nix3
-rw-r--r--pkgs/os-specific/bsd/openbsd/pkgs/openbsdSetupHook/setup-hook.sh21
-rw-r--r--pkgs/os-specific/bsd/openbsd/pkgs/source.nix8
-rw-r--r--pkgs/os-specific/darwin/apparency/default.nix13
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix2
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/default.nix2
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/libauto/auto_dtrace.h129
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/libauto/default.nix86
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/objc4/pure.nix118
-rw-r--r--pkgs/os-specific/darwin/coconutbattery/default.nix2
-rw-r--r--pkgs/os-specific/darwin/dockutil/default.nix116
-rw-r--r--pkgs/os-specific/darwin/dockutil/generated/default.nix7
-rw-r--r--pkgs/os-specific/darwin/dockutil/generated/workspace-state.json25
-rw-r--r--pkgs/os-specific/darwin/duti/default.nix2
-rw-r--r--pkgs/os-specific/darwin/iproute2mac/default.nix2
-rw-r--r--pkgs/os-specific/darwin/karabiner-elements/default.nix2
-rw-r--r--pkgs/os-specific/darwin/khd/default.nix2
-rw-r--r--pkgs/os-specific/darwin/macfuse/default.nix4
-rw-r--r--pkgs/os-specific/darwin/moltenvk/default.nix2
-rw-r--r--pkgs/os-specific/darwin/osx-cpu-temp/default.nix2
-rw-r--r--pkgs/os-specific/darwin/osxsnarf/default.nix2
-rw-r--r--pkgs/os-specific/darwin/raycast/default.nix45
-rw-r--r--pkgs/os-specific/darwin/reattach-to-user-namespace/default.nix2
-rw-r--r--pkgs/os-specific/darwin/rectangle/default.nix4
-rw-r--r--pkgs/os-specific/darwin/sigtool/default.nix2
-rw-r--r--pkgs/os-specific/darwin/smimesign/default.nix2
-rw-r--r--pkgs/os-specific/darwin/spacebar/default.nix2
-rw-r--r--pkgs/os-specific/darwin/utm/default.nix4
-rw-r--r--pkgs/os-specific/linux/915resolution/default.nix2
-rw-r--r--pkgs/os-specific/linux/acpi-call/default.nix2
-rw-r--r--pkgs/os-specific/linux/acpid/default.nix2
-rw-r--r--pkgs/os-specific/linux/acpitool/default.nix2
-rw-r--r--pkgs/os-specific/linux/adcli/default.nix2
-rw-r--r--pkgs/os-specific/linux/amdctl/default.nix2
-rw-r--r--pkgs/os-specific/linux/amdgpu-pro/default.nix222
-rw-r--r--pkgs/os-specific/linux/anbox/default.nix3
-rw-r--r--pkgs/os-specific/linux/apfs/default.nix4
-rw-r--r--pkgs/os-specific/linux/apparmor/default.nix2
-rw-r--r--pkgs/os-specific/linux/audit/default.nix2
-rw-r--r--pkgs/os-specific/linux/autofs/default.nix28
-rw-r--r--pkgs/os-specific/linux/batman-adv/default.nix1
-rw-r--r--pkgs/os-specific/linux/bbswitch/default.nix2
-rw-r--r--pkgs/os-specific/linux/beefi/default.nix2
-rw-r--r--pkgs/os-specific/linux/below/default.nix2
-rw-r--r--pkgs/os-specific/linux/bionic-prebuilt/default.nix2
-rw-r--r--pkgs/os-specific/linux/bpftune/default.nix24
-rw-r--r--pkgs/os-specific/linux/bridge-utils/default.nix2
-rw-r--r--pkgs/os-specific/linux/btfs/default.nix2
-rw-r--r--pkgs/os-specific/linux/busybox/default.nix4
-rw-r--r--pkgs/os-specific/linux/cannelloni/default.nix2
-rw-r--r--pkgs/os-specific/linux/catfs/default.nix1
-rw-r--r--pkgs/os-specific/linux/consoletools/default.nix2
-rw-r--r--pkgs/os-specific/linux/cshatag/default.nix2
-rw-r--r--pkgs/os-specific/linux/dcgm/default.nix2
-rw-r--r--pkgs/os-specific/linux/disk-indicator/default.nix2
-rw-r--r--pkgs/os-specific/linux/dmidecode/default.nix2
-rw-r--r--pkgs/os-specific/linux/dpdk-kmods/default.nix2
-rw-r--r--pkgs/os-specific/linux/dracut/default.nix2
-rw-r--r--pkgs/os-specific/linux/ebtables/default.nix2
-rw-r--r--pkgs/os-specific/linux/ell/default.nix4
-rw-r--r--pkgs/os-specific/linux/esdm/default.nix1
-rw-r--r--pkgs/os-specific/linux/ethq/default.nix4
-rw-r--r--pkgs/os-specific/linux/exfat/default.nix2
-rw-r--r--pkgs/os-specific/linux/fan2go/default.nix2
-rw-r--r--pkgs/os-specific/linux/firejail/default.nix1
-rw-r--r--pkgs/os-specific/linux/firmware/bt-fw-converter/default.nix2
-rw-r--r--pkgs/os-specific/linux/firmware/fwupd-efi/default.nix8
-rw-r--r--pkgs/os-specific/linux/firmware/linux-firmware/source.nix8
-rw-r--r--pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix10
-rw-r--r--pkgs/os-specific/linux/firmware/raspberrypi/default.nix9
-rw-r--r--pkgs/os-specific/linux/framework-laptop-kmod/default.nix2
-rw-r--r--pkgs/os-specific/linux/freeipa/default.nix4
-rw-r--r--pkgs/os-specific/linux/fsverity-utils/default.nix2
-rw-r--r--pkgs/os-specific/linux/g15daemon/default.nix8
-rw-r--r--pkgs/os-specific/linux/gasket/default.nix2
-rw-r--r--pkgs/os-specific/linux/guvcview/default.nix2
-rw-r--r--pkgs/os-specific/linux/hdparm/default.nix2
-rw-r--r--pkgs/os-specific/linux/hibernate/default.nix2
-rw-r--r--pkgs/os-specific/linux/hid-t150/default.nix40
-rw-r--r--pkgs/os-specific/linux/hid-tmff2/default.nix2
-rw-r--r--pkgs/os-specific/linux/hostapd/default.nix2
-rw-r--r--pkgs/os-specific/linux/i7z/default.nix2
-rw-r--r--pkgs/os-specific/linux/i810switch/default.nix2
-rw-r--r--pkgs/os-specific/linux/iomelt/default.nix2
-rw-r--r--pkgs/os-specific/linux/iotop/default.nix2
-rw-r--r--pkgs/os-specific/linux/iproute/default.nix2
-rw-r--r--pkgs/os-specific/linux/iptables/default.nix2
-rw-r--r--pkgs/os-specific/linux/iputils/default.nix2
-rw-r--r--pkgs/os-specific/linux/irqbalance/default.nix4
-rw-r--r--pkgs/os-specific/linux/kbdlight/default.nix2
-rw-r--r--pkgs/os-specific/linux/kernel-headers/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/common-config.nix12
-rw-r--r--pkgs/os-specific/linux/kernel/generic.nix2
-rw-r--r--pkgs/os-specific/linux/kernel/hardened/patches.json80
-rw-r--r--pkgs/os-specific/linux/kernel/htmldocs.nix11
-rw-r--r--pkgs/os-specific/linux/kernel/kernels-org.json36
-rw-r--r--pkgs/os-specific/linux/kernel/linux-libre.nix5
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rpi.nix36
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-5.10.nix7
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-5.15.nix7
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-5.4.nix1
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-6.1.nix7
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-6.6.nix7
-rw-r--r--pkgs/os-specific/linux/kernel/manual-config.nix15
-rw-r--r--pkgs/os-specific/linux/kernel/patches.nix16
-rw-r--r--pkgs/os-specific/linux/kernel/perf/default.nix1
-rw-r--r--pkgs/os-specific/linux/kernel/rust-1.77-6.8.patch799
-rw-r--r--pkgs/os-specific/linux/kernel/rust-1.77.patch159
-rw-r--r--pkgs/os-specific/linux/kernel/xanmod-kernels.nix17
-rw-r--r--pkgs/os-specific/linux/kernel/zen-kernels.nix9
-rw-r--r--pkgs/os-specific/linux/kexec-tools/default.nix7
-rw-r--r--pkgs/os-specific/linux/kexec-tools/fix-purgatory-llvm-libunwind.patch11
-rw-r--r--pkgs/os-specific/linux/ksmbd-tools/default.nix1
-rw-r--r--pkgs/os-specific/linux/kvdo/default.nix4
-rw-r--r--pkgs/os-specific/linux/ldm/default.nix2
-rw-r--r--pkgs/os-specific/linux/lenovo-legion/app.nix2
-rw-r--r--pkgs/os-specific/linux/libaio/default.nix2
-rw-r--r--pkgs/os-specific/linux/libnvme/default.nix7
-rw-r--r--pkgs/os-specific/linux/libpsm2/default.nix2
-rw-r--r--pkgs/os-specific/linux/libratbag/default.nix4
-rw-r--r--pkgs/os-specific/linux/libselinux/default.nix2
-rw-r--r--pkgs/os-specific/linux/libsepol/default.nix2
-rw-r--r--pkgs/os-specific/linux/libsmbios/default.nix2
-rw-r--r--pkgs/os-specific/linux/libwebcam/default.nix2
-rw-r--r--pkgs/os-specific/linux/lttng-modules/default.nix4
-rw-r--r--pkgs/os-specific/linux/macchanger/default.nix2
-rw-r--r--pkgs/os-specific/linux/mbp-modules/mbp2018-bridge-drv/default.nix2
-rw-r--r--pkgs/os-specific/linux/mceinject/default.nix2
-rw-r--r--pkgs/os-specific/linux/mdadm/default.nix9
-rw-r--r--pkgs/os-specific/linux/mdevctl/default.nix2
-rw-r--r--pkgs/os-specific/linux/microcode/intel.nix4
-rw-r--r--pkgs/os-specific/linux/minimal-bootstrap/coreutils/default.nix2
-rw-r--r--pkgs/os-specific/linux/minimal-bootstrap/coreutils/musl.nix2
-rw-r--r--pkgs/os-specific/linux/minimal-bootstrap/gnumake/default.nix2
-rw-r--r--pkgs/os-specific/linux/minimal-bootstrap/gnumake/musl.nix2
-rw-r--r--pkgs/os-specific/linux/minimal-bootstrap/heirloom/default.nix2
-rw-r--r--pkgs/os-specific/linux/minimal-bootstrap/mes/libc.nix2
-rw-r--r--pkgs/os-specific/linux/minimal-bootstrap/musl/common.nix2
-rw-r--r--pkgs/os-specific/linux/minimal-bootstrap/xz/default.nix2
-rw-r--r--pkgs/os-specific/linux/mstflint_access/default.nix2
-rw-r--r--pkgs/os-specific/linux/multipath-tools/default.nix31
-rw-r--r--pkgs/os-specific/linux/musl-fts/default.nix2
-rw-r--r--pkgs/os-specific/linux/musl/default.nix2
-rw-r--r--pkgs/os-specific/linux/net-tools/default.nix2
-rw-r--r--pkgs/os-specific/linux/nftables/default.nix2
-rw-r--r--pkgs/os-specific/linux/nixos-rebuild/default.nix2
-rw-r--r--pkgs/os-specific/linux/nsncd/default.nix10
-rw-r--r--pkgs/os-specific/linux/numad/default.nix2
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/default.nix53
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/libxnvctrl-build-shared-3xx.patch24
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/libxnvctrl-build-shared.patch21
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/settings.nix50
-rw-r--r--pkgs/os-specific/linux/nvme-cli/default.nix4
-rw-r--r--pkgs/os-specific/linux/open-iscsi/default.nix6
-rw-r--r--pkgs/os-specific/linux/openrazer/driver.nix2
-rw-r--r--pkgs/os-specific/linux/otpw/default.nix2
-rw-r--r--pkgs/os-specific/linux/pam_ssh_agent_auth/default.nix2
-rw-r--r--pkgs/os-specific/linux/pam_u2f/default.nix2
-rw-r--r--pkgs/os-specific/linux/paxctl/default.nix2
-rw-r--r--pkgs/os-specific/linux/pcm/default.nix4
-rw-r--r--pkgs/os-specific/linux/pktgen/default.nix1
-rw-r--r--pkgs/os-specific/linux/pm-utils/default.nix2
-rw-r--r--pkgs/os-specific/linux/pommed-light/default.nix2
-rw-r--r--pkgs/os-specific/linux/prl-tools/default.nix4
-rw-r--r--pkgs/os-specific/linux/procdump/default.nix2
-rw-r--r--pkgs/os-specific/linux/projecteur/default.nix2
-rw-r--r--pkgs/os-specific/linux/psmisc/default.nix2
-rw-r--r--pkgs/os-specific/linux/r8168/default.nix12
-rw-r--r--pkgs/os-specific/linux/radeontop/default.nix2
-rw-r--r--pkgs/os-specific/linux/rdma-core/default.nix4
-rw-r--r--pkgs/os-specific/linux/rt-tests/default.nix4
-rw-r--r--pkgs/os-specific/linux/rtkit/default.nix2
-rw-r--r--pkgs/os-specific/linux/rtl8189fs/default.nix2
-rw-r--r--pkgs/os-specific/linux/rtl8723ds/default.nix2
-rw-r--r--pkgs/os-specific/linux/rtl88x2bu/default.nix14
-rw-r--r--pkgs/os-specific/linux/rust-out-of-tree-module/default.nix2
-rw-r--r--pkgs/os-specific/linux/ryzen-smu/default.nix2
-rw-r--r--pkgs/os-specific/linux/ryzenadj/default.nix2
-rw-r--r--pkgs/os-specific/linux/sasutils/default.nix2
-rw-r--r--pkgs/os-specific/linux/sd-switch/default.nix18
-rw-r--r--pkgs/os-specific/linux/sdparm/default.nix2
-rw-r--r--pkgs/os-specific/linux/service-wrapper/default.nix2
-rw-r--r--pkgs/os-specific/linux/setools/default.nix4
-rw-r--r--pkgs/os-specific/linux/shufflecake/default.nix2
-rw-r--r--pkgs/os-specific/linux/sinit/default.nix2
-rw-r--r--pkgs/os-specific/linux/smem/default.nix2
-rw-r--r--pkgs/os-specific/linux/sssd/default.nix22
-rw-r--r--pkgs/os-specific/linux/swapview/default.nix2
-rw-r--r--pkgs/os-specific/linux/sysklogd/default.nix2
-rw-r--r--pkgs/os-specific/linux/syslinux/default.nix49
-rw-r--r--pkgs/os-specific/linux/syslinux/define-wchar_t.patch11
-rw-r--r--pkgs/os-specific/linux/syslinux/import-efisetjmp.patch22
-rw-r--r--pkgs/os-specific/linux/sysstat/default.nix2
-rw-r--r--pkgs/os-specific/linux/systemd/default.nix12
-rw-r--r--pkgs/os-specific/linux/targetcli/default.nix9
-rw-r--r--pkgs/os-specific/linux/tiscamera/default.nix2
-rw-r--r--pkgs/os-specific/linux/trace-cmd/kernelshark.nix18
-rw-r--r--pkgs/os-specific/linux/trinity/default.nix2
-rw-r--r--pkgs/os-specific/linux/tuna/default.nix1
-rw-r--r--pkgs/os-specific/linux/udisks/2-default.nix2
-rw-r--r--pkgs/os-specific/linux/undervolt/default.nix2
-rw-r--r--pkgs/os-specific/linux/untie/default.nix2
-rw-r--r--pkgs/os-specific/linux/upower/default.nix2
-rw-r--r--pkgs/os-specific/linux/usbguard/default.nix2
-rw-r--r--pkgs/os-specific/linux/usbip/default.nix2
-rw-r--r--pkgs/os-specific/linux/usbtop/default.nix2
-rw-r--r--pkgs/os-specific/linux/usermount/default.nix2
-rw-r--r--pkgs/os-specific/linux/util-linux/default.nix26
-rw-r--r--pkgs/os-specific/linux/uvcdynctrl/default.nix2
-rw-r--r--pkgs/os-specific/linux/v4l2loopback/default.nix2
-rw-r--r--pkgs/os-specific/linux/v86d/default.nix2
-rw-r--r--pkgs/os-specific/linux/vdo/default.nix2
-rw-r--r--pkgs/os-specific/linux/virtio_vmmci/default.nix2
-rw-r--r--pkgs/os-specific/linux/wiringpi/default.nix72
-rw-r--r--pkgs/os-specific/linux/wpa_supplicant/default.nix3
-rw-r--r--pkgs/os-specific/linux/wpa_supplicant/gui.nix2
-rw-r--r--pkgs/os-specific/linux/xf86-video-nested/default.nix2
-rw-r--r--pkgs/os-specific/linux/xone/default.nix2
-rw-r--r--pkgs/os-specific/linux/zenpower/default.nix2
-rw-r--r--pkgs/os-specific/linux/zfs/generic.nix2
-rw-r--r--pkgs/os-specific/linux/zfs/unstable.nix8
-rw-r--r--pkgs/os-specific/windows/cygwin-setup/default.nix2
-rw-r--r--pkgs/os-specific/windows/default.nix6
-rw-r--r--pkgs/os-specific/windows/mcfgthreads/default.nix2
-rw-r--r--pkgs/os-specific/windows/mingw-w64/default.nix16
-rw-r--r--pkgs/os-specific/windows/mingw-w64/headers.nix18
-rw-r--r--pkgs/os-specific/windows/mingw-w64/pthreads.nix6
-rw-r--r--pkgs/pkgs-lib/formats.nix5
-rw-r--r--pkgs/pkgs-lib/formats/hocon/default.nix1
-rw-r--r--pkgs/pkgs-lib/formats/java-properties/default.nix3
-rw-r--r--pkgs/pkgs-lib/formats/libconfig/default.nix1
-rw-r--r--pkgs/servers/adguardhome/bins.nix28
-rw-r--r--pkgs/servers/adguardhome/default.nix2
-rw-r--r--pkgs/servers/akkoma/default.nix6
-rw-r--r--pkgs/servers/alice-lg/default.nix2
-rw-r--r--pkgs/servers/alps/default.nix2
-rw-r--r--pkgs/servers/althttpd/default.nix2
-rw-r--r--pkgs/servers/amqp/qpid-cpp/default.nix2
-rw-r--r--pkgs/servers/amqp/rabbitmq-server/default.nix14
-rw-r--r--pkgs/servers/apache-kafka/default.nix2
-rw-r--r--pkgs/servers/apcupsd/default.nix2
-rw-r--r--pkgs/servers/ariang/default.nix2
-rw-r--r--pkgs/servers/asterisk/default.nix1
-rw-r--r--pkgs/servers/atlassian/bamboo.nix2
-rw-r--r--pkgs/servers/authelia/default.nix2
-rw-r--r--pkgs/servers/bazarr/default.nix4
-rw-r--r--pkgs/servers/beanstalkd/default.nix2
-rw-r--r--pkgs/servers/bililiverecorder/default.nix2
-rw-r--r--pkgs/servers/binserve/default.nix2
-rw-r--r--pkgs/servers/birdwatcher/default.nix2
-rw-r--r--pkgs/servers/bloat/default.nix2
-rw-r--r--pkgs/servers/brickd/default.nix4
-rw-r--r--pkgs/servers/computing/slurm/default.nix4
-rw-r--r--pkgs/servers/corosync/default.nix2
-rw-r--r--pkgs/servers/coturn/default.nix3
-rw-r--r--pkgs/servers/dante/default.nix2
-rw-r--r--pkgs/servers/db-rest/default.nix9
-rw-r--r--pkgs/servers/dendrite/default.nix2
-rw-r--r--pkgs/servers/dex/default.nix6
-rw-r--r--pkgs/servers/dict/default.nix4
-rw-r--r--pkgs/servers/diod/default.nix2
-rw-r--r--pkgs/servers/dns/coredns/default.nix2
-rw-r--r--pkgs/servers/dns/dnsdist/default.nix2
-rw-r--r--pkgs/servers/dns/knot-dns/default.nix4
-rw-r--r--pkgs/servers/dns/knot-resolver/default.nix7
-rw-r--r--pkgs/servers/dns/pdns/default.nix6
-rw-r--r--pkgs/servers/dns/trust-dns/default.nix2
-rw-r--r--pkgs/servers/elasticmq-server-bin/default.nix4
-rw-r--r--pkgs/servers/etcd/3.5/default.nix10
-rw-r--r--pkgs/servers/etebase/default.nix10
-rw-r--r--pkgs/servers/fastnetmon-advanced/default.nix2
-rw-r--r--pkgs/servers/fedigroups/default.nix2
-rw-r--r--pkgs/servers/felix/default.nix2
-rw-r--r--pkgs/servers/fileshare/default.nix2
-rw-r--r--pkgs/servers/filtron/default.nix2
-rw-r--r--pkgs/servers/freeradius/default.nix9
-rw-r--r--pkgs/servers/frr/default.nix5
-rw-r--r--pkgs/servers/ftp/bftpd/default.nix4
-rw-r--r--pkgs/servers/ftp/kamid/default.nix2
-rw-r--r--pkgs/servers/ftp/pure-ftpd/default.nix2
-rw-r--r--pkgs/servers/ftp/vsftpd/default.nix4
-rw-r--r--pkgs/servers/gemini/agate/default.nix46
-rw-r--r--pkgs/servers/gemini/gmnisrv/default.nix2
-rw-r--r--pkgs/servers/gemini/stargazer/default.nix8
-rw-r--r--pkgs/servers/geospatial/geoserver/default.nix6
-rw-r--r--pkgs/servers/geospatial/mapcache/default.nix2
-rw-r--r--pkgs/servers/geospatial/mbtileserver/default.nix2
-rw-r--r--pkgs/servers/geospatial/pg_tileserv/default.nix2
-rw-r--r--pkgs/servers/go-cqhttp/default.nix2
-rw-r--r--pkgs/servers/go-libp2p-daemon/default.nix8
-rw-r--r--pkgs/servers/gopher/gofish/default.nix4
-rw-r--r--pkgs/servers/gortr/default.nix2
-rw-r--r--pkgs/servers/gotify/default.nix2
-rw-r--r--pkgs/servers/gotify/ui.nix1
-rw-r--r--pkgs/servers/gotosocial/default.nix6
-rw-r--r--pkgs/servers/gpm/default.nix4
-rw-r--r--pkgs/servers/h2/default.nix6
-rw-r--r--pkgs/servers/hashi-ui/default.nix2
-rw-r--r--pkgs/servers/hbase/default.nix2
-rw-r--r--pkgs/servers/headphones/default.nix4
-rw-r--r--pkgs/servers/headscale/default.nix7
-rw-r--r--pkgs/servers/headscale/trim-oidc-secret-path.patch13
-rw-r--r--pkgs/servers/heisenbridge/default.nix2
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix81
-rw-r--r--pkgs/servers/home-assistant/custom-components/adaptive_lighting/default.nix4
-rw-r--r--pkgs/servers/home-assistant/custom-components/epex_spot/default.nix8
-rw-r--r--pkgs/servers/home-assistant/custom-components/homematicip_local/default.nix4
-rw-r--r--pkgs/servers/home-assistant/custom-components/localtuya/default.nix2
-rw-r--r--pkgs/servers/home-assistant/custom-components/miele/default.nix2
-rw-r--r--pkgs/servers/home-assistant/custom-components/moonraker/default.nix4
-rw-r--r--pkgs/servers/home-assistant/custom-components/omnik_inverter/default.nix2
-rw-r--r--pkgs/servers/home-assistant/custom-components/smartthinq-sensors/default.nix4
-rw-r--r--pkgs/servers/home-assistant/custom-components/tuya_local/default.nix10
-rw-r--r--pkgs/servers/home-assistant/custom-components/xiaomi_miot/default.nix2
-rw-r--r--pkgs/servers/home-assistant/custom-components/yassi/default.nix6
-rw-r--r--pkgs/servers/home-assistant/custom-lovelace-modules/android-tv-card/default.nix6
-rw-r--r--pkgs/servers/home-assistant/custom-lovelace-modules/mushroom/default.nix6
-rw-r--r--pkgs/servers/home-assistant/default.nix66
-rw-r--r--pkgs/servers/home-assistant/frontend.nix4
-rw-r--r--pkgs/servers/home-assistant/intents.nix13
-rw-r--r--pkgs/servers/home-assistant/stubs.nix8
-rw-r--r--pkgs/servers/home-assistant/tests.nix3
-rwxr-xr-xpkgs/servers/home-assistant/update-component-packages.py1
-rw-r--r--pkgs/servers/home-automation/evcc/default.nix8
-rw-r--r--pkgs/servers/homepage-dashboard/default.nix8
-rw-r--r--pkgs/servers/honk/default.nix2
-rw-r--r--pkgs/servers/hqplayerd/rygel.nix2
-rw-r--r--pkgs/servers/http/angie/console-light.nix2
-rw-r--r--pkgs/servers/http/angie/default.nix12
-rw-r--r--pkgs/servers/http/apache-modules/mod_auth_mellon/default.nix2
-rw-r--r--pkgs/servers/http/apache-modules/mod_cspnonce/default.nix2
-rw-r--r--pkgs/servers/http/apache-modules/mod_itk/default.nix2
-rw-r--r--pkgs/servers/http/apache-modules/mod_python/default.nix2
-rw-r--r--pkgs/servers/http/apache-modules/mod_tile/default.nix9
-rw-r--r--pkgs/servers/http/apache-modules/mod_tile/mod_tile-std_optional.patch26
-rw-r--r--pkgs/servers/http/apt-cacher-ng/default.nix2
-rw-r--r--pkgs/servers/http/couchdb/3.nix2
-rw-r--r--pkgs/servers/http/dave/default.nix2
-rw-r--r--pkgs/servers/http/dufs/default.nix8
-rw-r--r--pkgs/servers/http/envoy/default.nix11
-rw-r--r--pkgs/servers/http/gatling/default.nix4
-rw-r--r--pkgs/servers/http/hiawatha/default.nix27
-rw-r--r--pkgs/servers/http/hiawatha/test.nix84
-rw-r--r--pkgs/servers/http/jetty/12.x.nix4
-rw-r--r--pkgs/servers/http/jetty/common.nix2
-rw-r--r--pkgs/servers/http/lighttpd/default.nix3
-rw-r--r--pkgs/servers/http/lwan/default.nix2
-rw-r--r--pkgs/servers/http/micro-httpd/default.nix2
-rw-r--r--pkgs/servers/http/nginx/generic.nix20
-rw-r--r--pkgs/servers/http/nginx/mainline.nix4
-rw-r--r--pkgs/servers/http/nginx/modules.nix1
-rw-r--r--pkgs/servers/http/nginx/stable.nix4
-rw-r--r--pkgs/servers/http/nix-binary-cache/default.nix2
-rw-r--r--pkgs/servers/http/openresty/default.nix4
-rw-r--r--pkgs/servers/http/pomerium/0001-envoy-allow-specification-of-external-binary.patch (renamed from pkgs/servers/http/pomerium/external-envoy.diff)27
-rw-r--r--pkgs/servers/http/pomerium/default.nix11
-rw-r--r--pkgs/servers/http/pomerium/package.json10
-rw-r--r--pkgs/servers/http/pomerium/yarn-hash2
-rw-r--r--pkgs/servers/http/redstore/default.nix2
-rw-r--r--pkgs/servers/http/router/default.nix2
-rw-r--r--pkgs/servers/http/router/librusty_v8.nix7
-rw-r--r--pkgs/servers/http/showoff/default.nix2
-rw-r--r--pkgs/servers/http/tengine/default.nix2
-rw-r--r--pkgs/servers/http/tomcat/default.nix2
-rw-r--r--pkgs/servers/http/tomcat/tomcat-native.nix2
-rw-r--r--pkgs/servers/http/webfs/default.nix2
-rw-r--r--pkgs/servers/http/yaws/default.nix2
-rw-r--r--pkgs/servers/icecast/default.nix2
-rw-r--r--pkgs/servers/icecream/default.nix2
-rw-r--r--pkgs/servers/identd/nullidentdmod/default.nix2
-rw-r--r--pkgs/servers/identd/oidentd/default.nix2
-rw-r--r--pkgs/servers/invidious/default.nix2
-rw-r--r--pkgs/servers/irc/atheme/default.nix2
-rw-r--r--pkgs/servers/irc/charybdis/default.nix2
-rw-r--r--pkgs/servers/irc/ergochat/default.nix2
-rw-r--r--pkgs/servers/irc/inspircd/default.nix2
-rw-r--r--pkgs/servers/irc/ircd-hybrid/default.nix2
-rw-r--r--pkgs/servers/irc/ngircd/default.nix2
-rw-r--r--pkgs/servers/irc/solanum/default.nix2
-rw-r--r--pkgs/servers/isso/default.nix2
-rw-r--r--pkgs/servers/jackett/default.nix4
-rw-r--r--pkgs/servers/jackett/deps.nix4
-rw-r--r--pkgs/servers/jicofo/default.nix2
-rw-r--r--pkgs/servers/jigasi/default.nix2
-rw-r--r--pkgs/servers/jitsi-videobridge/default.nix2
-rw-r--r--pkgs/servers/keycloak/default.nix4
-rw-r--r--pkgs/servers/keycloak/keycloak-restrict-client-auth/default.nix2
-rw-r--r--pkgs/servers/keycloak/scim-for-keycloak/default.nix2
-rw-r--r--pkgs/servers/keycloak/scim-keycloak-user-storage-spi/default.nix2
-rw-r--r--pkgs/servers/klipper/default.nix8
-rw-r--r--pkgs/servers/kubemq-community/default.nix2
-rw-r--r--pkgs/servers/kwakd/default.nix4
-rw-r--r--pkgs/servers/ldap/389/default.nix19
-rw-r--r--pkgs/servers/ldap/apache-directory-server/default.nix2
-rw-r--r--pkgs/servers/ldap/lldap/default.nix9
-rw-r--r--pkgs/servers/lenpaste/default.nix2
-rw-r--r--pkgs/servers/libreddit/default.nix6
-rw-r--r--pkgs/servers/lidarr/default.nix2
-rw-r--r--pkgs/servers/limesurvey/default.nix2
-rw-r--r--pkgs/servers/ma1sd/default.nix2
-rw-r--r--pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix4
-rw-r--r--pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix2
-rw-r--r--pkgs/servers/mail/exim/default.nix2
-rw-r--r--pkgs/servers/mail/mailhog/default.nix16
-rw-r--r--pkgs/servers/mail/mailpit/default.nix2
-rw-r--r--pkgs/servers/mail/nullmailer/default.nix2
-rw-r--r--pkgs/servers/mail/petidomo/default.nix2
-rw-r--r--pkgs/servers/mail/postfix/default.nix2
-rw-r--r--pkgs/servers/mail/postfix/pfixtools.nix2
-rw-r--r--pkgs/servers/mail/postgrey/default.nix4
-rw-r--r--pkgs/servers/mail/postsrsd/default.nix2
-rw-r--r--pkgs/servers/mail/rspamd/default.nix10
-rw-r--r--pkgs/servers/mail/smtprelay/default.nix6
-rw-r--r--pkgs/servers/mail/sympa/default.nix2
-rw-r--r--pkgs/servers/mastodon/default.nix3
-rw-r--r--pkgs/servers/mastodon/gemset.nix35
-rw-r--r--pkgs/servers/mastodon/source.nix4
-rw-r--r--pkgs/servers/matrix-appservice-discord/default.nix2
-rw-r--r--pkgs/servers/matrix-conduit/Cargo.lock2487
-rw-r--r--pkgs/servers/matrix-conduit/default.nix16
-rw-r--r--pkgs/servers/matrix-hebbot/default.nix2
-rw-r--r--pkgs/servers/matrix-synapse/default.nix6
-rw-r--r--pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix2
-rw-r--r--pkgs/servers/matrix-synapse/matrix-hookshot/default.nix2
-rw-r--r--pkgs/servers/matrix-synapse/plugins/rendezvous.nix2
-rw-r--r--pkgs/servers/matrix-synapse/sliding-sync/default.nix6
-rw-r--r--pkgs/servers/matrix-synapse/tools/rust-synapse-compress-state/default.nix2
-rw-r--r--pkgs/servers/mattermost/default.nix6
-rw-r--r--pkgs/servers/mautrix-discord/default.nix2
-rw-r--r--pkgs/servers/mautrix-facebook/default.nix2
-rw-r--r--pkgs/servers/mautrix-googlechat/default.nix2
-rw-r--r--pkgs/servers/mautrix-signal/default.nix2
-rw-r--r--pkgs/servers/mautrix-telegram/default.nix2
-rw-r--r--pkgs/servers/mediamtx/default.nix33
-rw-r--r--pkgs/servers/memcached/default.nix2
-rw-r--r--pkgs/servers/memos/default.nix2
-rw-r--r--pkgs/servers/metabase/default.nix6
-rw-r--r--pkgs/servers/microbin/default.nix2
-rw-r--r--pkgs/servers/minio/default.nix8
-rw-r--r--pkgs/servers/minio/legacy_fs.nix2
-rw-r--r--pkgs/servers/mir/common.nix227
-rw-r--r--pkgs/servers/mir/default.nix231
-rwxr-xr-xpkgs/servers/mir/update.sh8
-rw-r--r--pkgs/servers/misc/gobgpd/default.nix4
-rw-r--r--pkgs/servers/misc/oven-media-engine/default.nix1
-rw-r--r--pkgs/servers/misc/podgrab/default.nix2
-rw-r--r--pkgs/servers/mjolnir/default.nix2
-rw-r--r--pkgs/servers/monitoring/buildkite-agent-metrics/default.nix8
-rw-r--r--pkgs/servers/monitoring/consul-alerts/default.nix4
-rw-r--r--pkgs/servers/monitoring/fusion-inventory/default.nix2
-rw-r--r--pkgs/servers/monitoring/grafana-agent/default.nix18
-rw-r--r--pkgs/servers/monitoring/grafana-image-renderer/default.nix8
-rw-r--r--pkgs/servers/monitoring/grafana-image-renderer/package.json17
-rw-r--r--pkgs/servers/monitoring/grafana/default.nix21
-rw-r--r--pkgs/servers/monitoring/grafana/plugins/grafana-oncall-app/default.nix13
-rw-r--r--pkgs/servers/monitoring/grafana/plugins/plugins.nix1
-rw-r--r--pkgs/servers/monitoring/icinga2/default.nix2
-rw-r--r--pkgs/servers/monitoring/lcdproc/default.nix2
-rw-r--r--pkgs/servers/monitoring/librenms/default.nix2
-rw-r--r--pkgs/servers/monitoring/mackerel-agent/default.nix4
-rw-r--r--pkgs/servers/monitoring/mtail/default.nix6
-rw-r--r--pkgs/servers/monitoring/munin/default.nix2
-rw-r--r--pkgs/servers/monitoring/nagios/default.nix4
-rw-r--r--pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix4
-rw-r--r--pkgs/servers/monitoring/nagios/plugins/smartmon.nix2
-rw-r--r--pkgs/servers/monitoring/net-snmp/default.nix4
-rw-r--r--pkgs/servers/monitoring/openobserve/default.nix2
-rw-r--r--pkgs/servers/monitoring/phlare/default.nix2
-rw-r--r--pkgs/servers/monitoring/plugins/esxi.nix2
-rw-r--r--pkgs/servers/monitoring/plugins/labs_consol_de.nix2
-rw-r--r--pkgs/servers/monitoring/plugins/openvpn.nix2
-rw-r--r--pkgs/servers/monitoring/plugins/wmiplus/default.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/bitcoin-exporter.nix2
-rw-r--r--pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix2
-rw-r--r--pkgs/servers/monitoring/prometheus/domain-exporter.nix2
-rw-r--r--pkgs/servers/monitoring/prometheus/dovecot-exporter-deps.nix102
-rw-r--r--pkgs/servers/monitoring/prometheus/dovecot-exporter.nix27
-rw-r--r--pkgs/servers/monitoring/prometheus/fastly-exporter.nix6
-rw-r--r--pkgs/servers/monitoring/prometheus/graphite-exporter.nix2
-rw-r--r--pkgs/servers/monitoring/prometheus/ipmi-exporter.nix2
-rw-r--r--pkgs/servers/monitoring/prometheus/jmx-httpserver.nix2
-rw-r--r--pkgs/servers/monitoring/prometheus/json-exporter.nix2
-rw-r--r--pkgs/servers/monitoring/prometheus/junos-czerwonk-exporter.nix6
-rw-r--r--pkgs/servers/monitoring/prometheus/knot-exporter.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/minio-exporter/default.nix2
-rw-r--r--pkgs/servers/monitoring/prometheus/mongodb-exporter.nix2
-rw-r--r--pkgs/servers/monitoring/prometheus/nginx-exporter.nix6
-rw-r--r--pkgs/servers/monitoring/prometheus/php-fpm-exporter.nix2
-rw-r--r--pkgs/servers/monitoring/prometheus/postfix-exporter.nix2
-rw-r--r--pkgs/servers/monitoring/prometheus/postgres-exporter.nix2
-rw-r--r--pkgs/servers/monitoring/prometheus/promscale/default.nix2
-rw-r--r--pkgs/servers/monitoring/prometheus/pushgateway.nix6
-rw-r--r--pkgs/servers/monitoring/prometheus/redis-exporter.nix6
-rw-r--r--pkgs/servers/monitoring/prometheus/sabnzbd-exporter.nix6
-rw-r--r--pkgs/servers/monitoring/prometheus/sachet.nix2
-rw-r--r--pkgs/servers/monitoring/prometheus/surfboard-exporter.nix12
-rw-r--r--pkgs/servers/monitoring/prometheus/wireguard-exporter.nix2
-rw-r--r--pkgs/servers/monitoring/prometheus/xmpp-alerts.nix1
-rw-r--r--pkgs/servers/monitoring/riemann-dash/default.nix2
-rw-r--r--pkgs/servers/monitoring/riemann/default.nix2
-rw-r--r--pkgs/servers/monitoring/sensu-go/default.nix2
-rw-r--r--pkgs/servers/monitoring/sensu/default.nix2
-rw-r--r--pkgs/servers/monitoring/seyren/default.nix2
-rw-r--r--pkgs/servers/monitoring/telegraf/default.nix8
-rw-r--r--pkgs/servers/monitoring/thanos/default.nix6
-rw-r--r--pkgs/servers/monitoring/uptime-kuma/default.nix2
-rw-r--r--pkgs/servers/monitoring/zabbix/agent.nix4
-rw-r--r--pkgs/servers/monitoring/zabbix/agent2.nix2
-rw-r--r--pkgs/servers/monitoring/zabbix/proxy.nix4
-rw-r--r--pkgs/servers/monitoring/zabbix/server.nix4
-rw-r--r--pkgs/servers/monitoring/zabbix/web.nix4
-rw-r--r--pkgs/servers/mpd/default.nix2
-rw-r--r--pkgs/servers/mqtt/mosquitto/default.nix2
-rw-r--r--pkgs/servers/mqtt/nanomq/default.nix2
-rw-r--r--pkgs/servers/mx-puppet-discord/default.nix2
-rw-r--r--pkgs/servers/nas/default.nix2
-rw-r--r--pkgs/servers/nats-server/default.nix6
-rw-r--r--pkgs/servers/networking/exabgp/default.nix6
-rw-r--r--pkgs/servers/networking/rustus/default.nix2
-rw-r--r--pkgs/servers/nextcloud/default.nix12
-rw-r--r--pkgs/servers/nextcloud/notify_push.nix12
-rw-r--r--pkgs/servers/nextcloud/packages/27.json60
-rw-r--r--pkgs/servers/nextcloud/packages/28.json78
-rw-r--r--pkgs/servers/nextcloud/packages/29.json88
-rw-r--r--pkgs/servers/nextcloud/packages/nextcloud-apps.json1
-rw-r--r--pkgs/servers/nfs-ganesha/default.nix4
-rw-r--r--pkgs/servers/nosql/arangodb/default.nix2
-rw-r--r--pkgs/servers/nosql/cassandra/generic.nix2
-rw-r--r--pkgs/servers/nosql/dragonflydb/default.nix2
-rw-r--r--pkgs/servers/nosql/ferretdb/default.nix2
-rw-r--r--pkgs/servers/nosql/influxdb/default.nix27
-rw-r--r--pkgs/servers/nosql/influxdb2/default.nix27
-rw-r--r--pkgs/servers/nosql/influxdb2/fix-unsigned-char.patch13
-rw-r--r--pkgs/servers/nosql/influxdb2/no-deny-warnings.patch10
-rw-r--r--pkgs/servers/nosql/influxdb2/provision.nix2
-rw-r--r--pkgs/servers/nosql/janusgraph/default.nix2
-rw-r--r--pkgs/servers/nosql/mongodb/5.0.nix10
-rw-r--r--pkgs/servers/nosql/mongodb/6.0.nix6
-rw-r--r--pkgs/servers/nosql/mongodb/mongodb.nix6
-rw-r--r--pkgs/servers/nosql/neo4j/default.nix6
-rw-r--r--pkgs/servers/nosql/questdb/default.nix4
-rw-r--r--pkgs/servers/nosql/redis/default.nix6
-rw-r--r--pkgs/servers/nosql/rethinkdb/default.nix2
-rw-r--r--pkgs/servers/nsq/default.nix2
-rw-r--r--pkgs/servers/oauth2-proxy/default.nix2
-rw-r--r--pkgs/servers/olaris/default.nix2
-rw-r--r--pkgs/servers/osmocom/libosmo-sccp/default.nix4
-rw-r--r--pkgs/servers/osmocom/libosmoabis/default.nix4
-rw-r--r--pkgs/servers/osmocom/libosmocore/default.nix4
-rw-r--r--pkgs/servers/osmocom/osmo-bsc/default.nix1
-rw-r--r--pkgs/servers/osmocom/osmo-ggsn/default.nix5
-rw-r--r--pkgs/servers/osmocom/osmo-hlr/default.nix1
-rw-r--r--pkgs/servers/osmocom/osmo-sgsn/default.nix7
-rw-r--r--pkgs/servers/peertube/default.nix13
-rw-r--r--pkgs/servers/photofield/default.nix15
-rw-r--r--pkgs/servers/pies/default.nix2
-rw-r--r--pkgs/servers/pinnwand/default.nix4
-rw-r--r--pkgs/servers/pleroma/default.nix4
-rw-r--r--pkgs/servers/plex/raw.nix11
-rw-r--r--pkgs/servers/pocketbase/default.nix6
-rw-r--r--pkgs/servers/polipo/default.nix2
-rw-r--r--pkgs/servers/portunus/default.nix4
-rw-r--r--pkgs/servers/prowlarr/default.nix12
-rw-r--r--pkgs/servers/pufferpanel/default.nix2
-rw-r--r--pkgs/servers/pulseaudio/qpaeq.nix2
-rw-r--r--pkgs/servers/radarr/default.nix2
-rw-r--r--pkgs/servers/readarr/default.nix14
-rw-r--r--pkgs/servers/redpanda/default.nix4
-rw-r--r--pkgs/servers/redpanda/seastar.nix2
-rw-r--r--pkgs/servers/redpanda/server.nix2
-rw-r--r--pkgs/servers/resgate/default.nix2
-rw-r--r--pkgs/servers/roadrunner/default.nix6
-rw-r--r--pkgs/servers/roon-bridge/default.nix2
-rw-r--r--pkgs/servers/roon-server/default.nix2
-rw-r--r--pkgs/servers/routinator/default.nix2
-rw-r--r--pkgs/servers/rpiplay/default.nix2
-rw-r--r--pkgs/servers/rustdesk-server/Cargo.lock2
-rw-r--r--pkgs/servers/rustdesk-server/default.nix4
-rw-r--r--pkgs/servers/rustypaste/default.nix2
-rw-r--r--pkgs/servers/samba/4.x.nix4
-rw-r--r--pkgs/servers/search/elasticsearch/plugins.nix14
-rw-r--r--pkgs/servers/search/groonga/default.nix6
-rw-r--r--pkgs/servers/search/meilisearch/Cargo.lock874
-rw-r--r--pkgs/servers/search/meilisearch/default.nix50
-rw-r--r--pkgs/servers/search/qdrant/Cargo.lock444
-rw-r--r--pkgs/servers/search/qdrant/default.nix4
-rw-r--r--pkgs/servers/search/quickwit/Cargo.lock60
-rw-r--r--pkgs/servers/search/quickwit/default.nix71
-rw-r--r--pkgs/servers/search/sonic-server/default.nix6
-rw-r--r--pkgs/servers/search/sphinxsearch/default.nix4
-rw-r--r--pkgs/servers/search/typesense/default.nix2
-rw-r--r--pkgs/servers/search/weaviate/default.nix6
-rw-r--r--pkgs/servers/search/zincsearch/default.nix2
-rw-r--r--pkgs/servers/sftpgo/default.nix4
-rw-r--r--pkgs/servers/shairport-sync/default.nix4
-rw-r--r--pkgs/servers/shishi/default.nix2
-rw-r--r--pkgs/servers/sickbeard/sickgear.nix6
-rw-r--r--pkgs/servers/silc-server/default.nix2
-rw-r--r--pkgs/servers/simplehttp2server/default.nix36
-rw-r--r--pkgs/servers/sip/freeswitch/default.nix1
-rw-r--r--pkgs/servers/sks/default.nix2
-rw-r--r--pkgs/servers/skydns/default.nix2
-rw-r--r--pkgs/servers/snac2/default.nix6
-rw-r--r--pkgs/servers/snappymail/default.nix4
-rw-r--r--pkgs/servers/soft-serve/default.nix2
-rw-r--r--pkgs/servers/softether/default.nix2
-rw-r--r--pkgs/servers/sonarr/default.nix14
-rw-r--r--pkgs/servers/spicedb/default.nix10
-rw-r--r--pkgs/servers/spicedb/zed.nix4
-rw-r--r--pkgs/servers/sql/cockroachdb/cockroachdb-bin.nix2
-rw-r--r--pkgs/servers/sql/dolt/default.nix6
-rw-r--r--pkgs/servers/sql/gluesql/default.nix2
-rw-r--r--pkgs/servers/sql/mariadb/default.nix26
-rw-r--r--pkgs/servers/sql/materialize/default.nix2
-rw-r--r--pkgs/servers/sql/monetdb/default.nix2
-rw-r--r--pkgs/servers/sql/mssql/jdbc/default.nix4
-rw-r--r--pkgs/servers/sql/mysql/8.0.x.nix4
-rw-r--r--pkgs/servers/sql/mysql/jdbc/default.nix6
-rw-r--r--pkgs/servers/sql/patroni/default.nix8
-rw-r--r--pkgs/servers/sql/percona-server/lts.nix2
-rw-r--r--pkgs/servers/sql/pgcat/default.nix2
-rw-r--r--pkgs/servers/sql/pgpool/default.nix6
-rw-r--r--pkgs/servers/sql/postgresql/default.nix8
-rw-r--r--pkgs/servers/sql/postgresql/ext/age.nix2
-rw-r--r--pkgs/servers/sql/postgresql/ext/default.nix2
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_safeupdate.nix2
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_similarity.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_squeeze.nix2
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_uuidv7.nix2
-rw-r--r--pkgs/servers/sql/postgresql/ext/pgroonga.nix2
-rw-r--r--pkgs/servers/sql/postgresql/ext/pgrouting.nix2
-rw-r--r--pkgs/servers/sql/postgresql/ext/pgtap.nix2
-rw-r--r--pkgs/servers/sql/postgresql/ext/plv8/0001-build-Allow-using-V8-from-system.patch55
-rw-r--r--pkgs/servers/sql/postgresql/ext/plv8/default.nix17
-rw-r--r--pkgs/servers/sql/postgresql/ext/postgis.nix2
-rw-r--r--pkgs/servers/sql/postgresql/ext/system_stats.nix40
-rw-r--r--pkgs/servers/sql/postgresql/ext/tds_fdw.nix2
-rw-r--r--pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix1
-rw-r--r--pkgs/servers/sql/postgresql/generic.nix6
-rw-r--r--pkgs/servers/sql/rqlite/default.nix8
-rw-r--r--pkgs/servers/sqlpage/default.nix43
-rw-r--r--pkgs/servers/squid/default.nix2
-rw-r--r--pkgs/servers/static-web-server/default.nix2
-rw-r--r--pkgs/servers/stone/default.nix2
-rw-r--r--pkgs/servers/swego/default.nix24
-rw-r--r--pkgs/servers/tacacsplus/default.nix2
-rw-r--r--pkgs/servers/tailscale/default.nix28
-rw-r--r--pkgs/servers/tarantool/default.nix2
-rw-r--r--pkgs/servers/tarssh/default.nix2
-rw-r--r--pkgs/servers/tautulli/default.nix8
-rw-r--r--pkgs/servers/teleport/13/Cargo.lock1956
-rw-r--r--pkgs/servers/teleport/13/default.nix17
-rw-r--r--pkgs/servers/teleport/14/Cargo.lock18
-rw-r--r--pkgs/servers/teleport/14/default.nix10
-rw-r--r--pkgs/servers/teleport/15/Cargo.lock48
-rw-r--r--pkgs/servers/teleport/15/default.nix10
-rw-r--r--pkgs/servers/teleport/default.nix1
-rw-r--r--pkgs/servers/teleport/generic.nix12
-rw-r--r--pkgs/servers/tidb/default.nix18
-rw-r--r--pkgs/servers/tracing/honeycomb/refinery/default.nix2
-rw-r--r--pkgs/servers/tracing/tempo/default.nix6
-rw-r--r--pkgs/servers/traefik/default.nix8
-rw-r--r--pkgs/servers/tt-rss/plugin-auth-ldap/default.nix2
-rw-r--r--pkgs/servers/udpt/default.nix2
-rw-r--r--pkgs/servers/uhub/default.nix2
-rw-r--r--pkgs/servers/ums/default.nix2
-rw-r--r--pkgs/servers/unifi/default.nix5
-rw-r--r--pkgs/servers/unifiedpush-common-proxies/default.nix8
-rw-r--r--pkgs/servers/urserver/default.nix2
-rw-r--r--pkgs/servers/uwsgi/default.nix8
-rw-r--r--pkgs/servers/varnish/default.nix2
-rw-r--r--pkgs/servers/varnish/packages.nix2
-rw-r--r--pkgs/servers/vouch-proxy/default.nix2
-rw-r--r--pkgs/servers/web-apps/5etools/default.nix2
-rw-r--r--pkgs/servers/web-apps/bookstack/default.nix6
-rw-r--r--pkgs/servers/web-apps/bookstack/php-packages.nix352
-rw-r--r--pkgs/servers/web-apps/changedetection-io/default.nix6
-rw-r--r--pkgs/servers/web-apps/discourse/asserts_patch-package_from_path.patch13
-rw-r--r--pkgs/servers/web-apps/discourse/assets_rake_command.patch18
-rw-r--r--pkgs/servers/web-apps/discourse/default.nix74
-rw-r--r--pkgs/servers/web-apps/discourse/mail_receiver/default.nix2
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/all-plugins.nix2
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix6
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock20
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix68
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix6
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock18
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix44
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix2
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile2
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile.lock8
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/gemset.nix8
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-oauth2-basic/default.nix2
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix6
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock2
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/prebuild-theme-transpiler.patch21
-rw-r--r--pkgs/servers/web-apps/discourse/rubyEnv/Gemfile49
-rw-r--r--pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock331
-rw-r--r--pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix536
-rw-r--r--pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch13
-rwxr-xr-xpkgs/servers/web-apps/discourse/update.py53
-rw-r--r--pkgs/servers/web-apps/dokuwiki/default.nix2
-rw-r--r--pkgs/servers/web-apps/dolibarr/default.nix2
-rw-r--r--pkgs/servers/web-apps/engelsystem/default.nix2
-rw-r--r--pkgs/servers/web-apps/freshrss/default.nix4
-rw-r--r--pkgs/servers/web-apps/galene/default.nix6
-rw-r--r--pkgs/servers/web-apps/healthchecks/default.nix2
-rw-r--r--pkgs/servers/web-apps/hedgedoc/default.nix14
-rw-r--r--pkgs/servers/web-apps/invoiceplane/default.nix2
-rw-r--r--pkgs/servers/web-apps/kavita/default.nix2
-rw-r--r--pkgs/servers/web-apps/lemmy/server.nix3
-rw-r--r--pkgs/servers/web-apps/linx-server/default.nix2
-rw-r--r--pkgs/servers/web-apps/matomo/default.nix2
-rw-r--r--pkgs/servers/web-apps/mediawiki/default.nix2
-rw-r--r--pkgs/servers/web-apps/moodle/default.nix4
-rw-r--r--pkgs/servers/web-apps/outline/default.nix8
-rw-r--r--pkgs/servers/web-apps/peering-manager/default.nix1
-rw-r--r--pkgs/servers/web-apps/pgpkeyserver-lite/default.nix2
-rw-r--r--pkgs/servers/web-apps/pict-rs/0.3.nix2
-rw-r--r--pkgs/servers/web-apps/pict-rs/default.nix2
-rw-r--r--pkgs/servers/web-apps/pixelfed/default.nix2
-rw-r--r--pkgs/servers/web-apps/rss-bridge/default.nix2
-rw-r--r--pkgs/servers/web-apps/shaarli/default.nix2
-rw-r--r--pkgs/servers/web-apps/slskd/default.nix2
-rw-r--r--pkgs/servers/web-apps/sogo/default.nix4
-rw-r--r--pkgs/servers/web-apps/wiki-js/default.nix2
-rw-r--r--pkgs/servers/web-apps/wordpress/default.nix4
-rw-r--r--pkgs/servers/web-apps/wordpress/generic.nix4
-rw-r--r--pkgs/servers/web-apps/wordpress/packages/plugins.json112
-rw-r--r--pkgs/servers/web-apps/wordpress/packages/thirdparty.nix37
-rw-r--r--pkgs/servers/webdav-server-rs/default.nix2
-rw-r--r--pkgs/servers/webmesh/default.nix2
-rw-r--r--pkgs/servers/wishlist/default.nix2
-rw-r--r--pkgs/servers/wsdd/default.nix2
-rw-r--r--pkgs/servers/x11/xorg/overrides.nix3
-rw-r--r--pkgs/servers/x11/xorg/xwayland.nix9
-rw-r--r--pkgs/servers/xmpp/ejabberd/default.nix2
-rw-r--r--pkgs/servers/xmpp/prosody-filer/default.nix2
-rw-r--r--pkgs/servers/xmpp/prosody/default.nix8
-rw-r--r--pkgs/servers/zigbee2mqtt/default.nix6
-rw-r--r--pkgs/servers/zoneminder/default.nix2
-rw-r--r--pkgs/shells/bash/5.nix7
-rw-r--r--pkgs/shells/bash/bash-completion/default.nix7
-rw-r--r--pkgs/shells/carapace/default.nix8
-rw-r--r--pkgs/shells/dash/default.nix4
-rw-r--r--pkgs/shells/dgsh/default.nix48
-rw-r--r--pkgs/shells/dgsh/glibc-2.26.patch12
-rw-r--r--pkgs/shells/es/default.nix2
-rw-r--r--pkgs/shells/fish/default.nix2
-rw-r--r--pkgs/shells/fish/plugins/bobthefish.nix2
-rw-r--r--pkgs/shells/fish/plugins/bobthefisher.nix2
-rw-r--r--pkgs/shells/fish/plugins/foreign-env/default.nix2
-rw-r--r--pkgs/shells/fish/plugins/forgit.nix6
-rw-r--r--pkgs/shells/fish/plugins/gruvbox.nix2
-rw-r--r--pkgs/shells/fish/plugins/tide.nix2
-rw-r--r--pkgs/shells/fish/plugins/wakatime-fish.nix8
-rw-r--r--pkgs/shells/hilbish/default.nix2
-rw-r--r--pkgs/shells/hishtory/default.nix4
-rw-r--r--pkgs/shells/jush/default.nix29
-rw-r--r--pkgs/shells/liquidprompt/default.nix35
-rw-r--r--pkgs/shells/mrsh/default.nix2
-rw-r--r--pkgs/shells/murex/default.nix2
-rw-r--r--pkgs/shells/nix-your-shell/default.nix2
-rw-r--r--pkgs/shells/nsh/default.nix2
-rw-r--r--pkgs/shells/nushell/default.nix8
-rw-r--r--pkgs/shells/nushell/nu_scripts/default.nix8
-rw-r--r--pkgs/shells/nushell/plugins/default.nix1
-rw-r--r--pkgs/shells/nushell/plugins/formats.nix6
-rw-r--r--pkgs/shells/nushell/plugins/gstat.nix6
-rw-r--r--pkgs/shells/nushell/plugins/net.nix29
-rw-r--r--pkgs/shells/nushell/plugins/polars.nix45
-rw-r--r--pkgs/shells/nushell/plugins/query.nix6
-rw-r--r--pkgs/shells/oh/default.nix2
-rw-r--r--pkgs/shells/powershell/default.nix13
-rw-r--r--pkgs/shells/rc-9front/default.nix2
-rw-r--r--pkgs/shells/scponly/default.nix2
-rw-r--r--pkgs/shells/zsh/agdsn-zsh-config/default.nix2
-rw-r--r--pkgs/shells/zsh/agkozak-zsh-prompt/default.nix2
-rw-r--r--pkgs/shells/zsh/antibody/default.nix2
-rw-r--r--pkgs/shells/zsh/antidote/default.nix2
-rw-r--r--pkgs/shells/zsh/antigen/default.nix2
-rw-r--r--pkgs/shells/zsh/default.nix4
-rw-r--r--pkgs/shells/zsh/grml-zsh-config/default.nix2
-rw-r--r--pkgs/shells/zsh/lambda-mod-zsh-theme/default.nix2
-rw-r--r--pkgs/shells/zsh/oh-my-zsh/default.nix8
-rw-r--r--pkgs/shells/zsh/spaceship-prompt/default.nix4
-rw-r--r--pkgs/shells/zsh/zi/default.nix2
-rw-r--r--pkgs/shells/zsh/zplug/default.nix2
-rw-r--r--pkgs/shells/zsh/zsh-abbr/default.nix9
-rw-r--r--pkgs/shells/zsh/zsh-autopair/default.nix2
-rw-r--r--pkgs/shells/zsh/zsh-edit/default.nix2
-rw-r--r--pkgs/shells/zsh/zsh-forgit/default.nix2
-rw-r--r--pkgs/shells/zsh/zsh-fzf-history-search/default.nix2
-rw-r--r--pkgs/shells/zsh/zsh-history/default.nix2
-rw-r--r--pkgs/shells/zsh/zsh-powerlevel10k/default.nix2
-rw-r--r--pkgs/shells/zsh/zsh-powerlevel9k/default.nix2
-rw-r--r--pkgs/shells/zsh/zsh-prezto/default.nix8
-rw-r--r--pkgs/shells/zsh/zsh-system-clipboard/default.nix2
-rw-r--r--pkgs/shells/zsh/zsh-vi-mode/default.nix2
-rw-r--r--pkgs/shells/zsh/zsh-you-should-use/default.nix4
-rw-r--r--pkgs/stdenv/adapters.nix6
-rw-r--r--pkgs/stdenv/cross/default.nix49
-rw-r--r--pkgs/stdenv/generic/check-meta.nix8
-rw-r--r--pkgs/test/check-by-name/README.md2
-rw-r--r--pkgs/test/dotnet/default.nix4
-rw-r--r--pkgs/test/dotnet/project-references/default.nix12
-rw-r--r--pkgs/test/dotnet/structured-attrs/default.nix36
-rw-r--r--pkgs/test/dotnet/structured-attrs/nuget-deps.nix5
-rw-r--r--pkgs/test/dotnet/structured-attrs/src/Application.cs10
-rw-r--r--pkgs/test/dotnet/structured-attrs/src/Application.csproj5
-rw-r--r--pkgs/test/dotnet/use-dotnet-from-env/default.nix60
-rw-r--r--pkgs/test/dotnet/use-dotnet-from-env/nuget-deps.nix5
-rw-r--r--pkgs/test/dotnet/use-dotnet-from-env/src/Application.cs3
-rw-r--r--pkgs/test/dotnet/use-dotnet-from-env/src/Application.csproj5
-rw-r--r--pkgs/test/haskell/cabalSdist/local/generated.nix9
-rw-r--r--pkgs/test/haskell/setBuildTarget/default.nix10
-rw-r--r--pkgs/test/kernel.nix62
-rw-r--r--pkgs/test/systemd/nixos/default.nix67
-rw-r--r--pkgs/test/vim/default.nix2
-rw-r--r--pkgs/tools/X11/arandr/default.nix2
-rw-r--r--pkgs/tools/X11/ckbcomp/default.nix4
-rw-r--r--pkgs/tools/X11/dex/default.nix2
-rw-r--r--pkgs/tools/X11/dispad/default.nix2
-rw-r--r--pkgs/tools/X11/jumpapp/default.nix2
-rw-r--r--pkgs/tools/X11/ksuperkey/default.nix2
-rw-r--r--pkgs/tools/X11/mmutils/default.nix2
-rw-r--r--pkgs/tools/X11/nitrogen/default.nix2
-rw-r--r--pkgs/tools/X11/paperview/default.nix2
-rw-r--r--pkgs/tools/X11/pmenu/default.nix2
-rw-r--r--pkgs/tools/X11/ratmen/default.nix2
-rw-r--r--pkgs/tools/X11/runningx/default.nix2
-rw-r--r--pkgs/tools/X11/sct/default.nix2
-rw-r--r--pkgs/tools/X11/smart-wallpaper/default.nix2
-rw-r--r--pkgs/tools/X11/wayv/default.nix2
-rw-r--r--pkgs/tools/X11/wmutils-libwm/default.nix2
-rw-r--r--pkgs/tools/X11/x11vnc/default.nix2
-rw-r--r--pkgs/tools/X11/x2vnc/default.nix2
-rw-r--r--pkgs/tools/X11/xannotate/default.nix2
-rw-r--r--pkgs/tools/X11/xcalib/default.nix2
-rw-r--r--pkgs/tools/X11/xchainkeys/default.nix2
-rw-r--r--pkgs/tools/X11/xdg-utils/default.nix2
-rw-r--r--pkgs/tools/X11/xinput_calibrator/default.nix2
-rw-r--r--pkgs/tools/X11/xkb-switch-i3/default.nix4
-rw-r--r--pkgs/tools/X11/xnotify/default.nix2
-rw-r--r--pkgs/tools/X11/xob/default.nix2
-rw-r--r--pkgs/tools/X11/xplugd/default.nix2
-rw-r--r--pkgs/tools/X11/xpra/libfakeXinerama.nix27
-rw-r--r--pkgs/tools/X11/xprintidle-ng/default.nix2
-rw-r--r--pkgs/tools/X11/xprintidle/default.nix2
-rw-r--r--pkgs/tools/X11/xprompt/default.nix2
-rw-r--r--pkgs/tools/X11/xrestop/default.nix2
-rw-r--r--pkgs/tools/X11/xssstate/default.nix2
-rw-r--r--pkgs/tools/X11/xwinwrap/default.nix2
-rw-r--r--pkgs/tools/X11/xzoom/default.nix2
-rw-r--r--pkgs/tools/admin/acme-sh/default.nix2
-rw-r--r--pkgs/tools/admin/afterburn/default.nix2
-rw-r--r--pkgs/tools/admin/aliyun-cli/default.nix4
-rw-r--r--pkgs/tools/admin/amazon-ecr-credential-helper/default.nix6
-rw-r--r--pkgs/tools/admin/aws-assume-role/default.nix14
-rw-r--r--pkgs/tools/admin/aws-env/default.nix26
-rw-r--r--pkgs/tools/admin/aws-env/deps.nix12
-rw-r--r--pkgs/tools/admin/awscli/default.nix2
-rw-r--r--pkgs/tools/admin/awscli2/default.nix4
-rw-r--r--pkgs/tools/admin/awslimitchecker/default.nix2
-rw-r--r--pkgs/tools/admin/awslogs/default.nix17
-rw-r--r--pkgs/tools/admin/awsls/default.nix2
-rw-r--r--pkgs/tools/admin/awsrm/default.nix2
-rw-r--r--pkgs/tools/admin/awsume/default.nix2
-rw-r--r--pkgs/tools/admin/awsweeper/default.nix2
-rwxr-xr-xpkgs/tools/admin/azure-cli/commit-update-hunks.sh19
-rw-r--r--pkgs/tools/admin/azure-cli/default.nix14
-rw-r--r--pkgs/tools/admin/azure-cli/extensions-generated.nix212
-rw-r--r--pkgs/tools/admin/azure-cli/extensions-manual.nix26
-rw-r--r--pkgs/tools/admin/azure-cli/python-packages.nix13
-rw-r--r--pkgs/tools/admin/balena-cli/default.nix8
-rw-r--r--pkgs/tools/admin/berglas/default.nix2
-rw-r--r--pkgs/tools/admin/bom/default.nix2
-rw-r--r--pkgs/tools/admin/boulder/default.nix2
-rw-r--r--pkgs/tools/admin/certigo/default.nix2
-rw-r--r--pkgs/tools/admin/chkcrontab/default.nix2
-rw-r--r--pkgs/tools/admin/coldsnap/default.nix2
-rw-r--r--pkgs/tools/admin/colmena/default.nix2
-rw-r--r--pkgs/tools/admin/credhub-cli/default.nix4
-rw-r--r--pkgs/tools/admin/cw/default.nix2
-rw-r--r--pkgs/tools/admin/daemontools/default.nix2
-rw-r--r--pkgs/tools/admin/damon/default.nix2
-rw-r--r--pkgs/tools/admin/drawterm/default.nix6
-rw-r--r--pkgs/tools/admin/ejson2env/default.nix16
-rw-r--r--pkgs/tools/admin/ejson2env/test-decryption.nix19
-rw-r--r--pkgs/tools/admin/fastlane/default.nix2
-rw-r--r--pkgs/tools/admin/fioctl/default.nix8
-rw-r--r--pkgs/tools/admin/fits-cloudctl/default.nix8
-rw-r--r--pkgs/tools/admin/gimme-aws-creds/default.nix2
-rw-r--r--pkgs/tools/admin/google-cloud-sdk/components.json616
-rw-r--r--pkgs/tools/admin/google-cloud-sdk/data.nix22
-rw-r--r--pkgs/tools/admin/granted/default.nix8
-rw-r--r--pkgs/tools/admin/iamy/default.nix2
-rw-r--r--pkgs/tools/admin/lego/default.nix8
-rw-r--r--pkgs/tools/admin/meraki-cli/default.nix2
-rw-r--r--pkgs/tools/admin/meshcentral/default.nix8
-rw-r--r--pkgs/tools/admin/meshcentral/package.json9
-rw-r--r--pkgs/tools/admin/meshcentral/yarn.lock2053
-rw-r--r--pkgs/tools/admin/okta-aws-cli/default.nix2
-rw-r--r--pkgs/tools/admin/ossutil/default.nix2
-rw-r--r--pkgs/tools/admin/oxidized/default.nix2
-rw-r--r--pkgs/tools/admin/pebble/default.nix2
-rw-r--r--pkgs/tools/admin/pgadmin/default.nix6
-rw-r--r--pkgs/tools/admin/pgadmin/yarn.lock31
-rw-r--r--pkgs/tools/admin/procs/default.nix2
-rw-r--r--pkgs/tools/admin/proxmove/default.nix2
-rw-r--r--pkgs/tools/admin/pulumi-bin/data.nix434
-rw-r--r--pkgs/tools/admin/pulumi-packages/pulumi-command.nix2
-rw-r--r--pkgs/tools/admin/pulumi-packages/pulumi-random.nix2
-rw-r--r--pkgs/tools/admin/qovery-cli/default.nix6
-rw-r--r--pkgs/tools/admin/salt/default.nix4
-rw-r--r--pkgs/tools/admin/scaleway-cli/default.nix6
-rw-r--r--pkgs/tools/admin/scalr-cli/default.nix2
-rw-r--r--pkgs/tools/admin/simp_le/default.nix36
-rw-r--r--pkgs/tools/admin/ssmsh/default.nix2
-rw-r--r--pkgs/tools/admin/stripe-cli/default.nix2
-rw-r--r--pkgs/tools/admin/trivy/default.nix8
-rw-r--r--pkgs/tools/admin/zbctl/default.nix2
-rw-r--r--pkgs/tools/archivers/7zz/default.nix6
-rwxr-xr-xpkgs/tools/archivers/7zz/update.sh43
-rw-r--r--pkgs/tools/archivers/arc_unpacker/default.nix2
-rw-r--r--pkgs/tools/archivers/cpio/default.nix2
-rw-r--r--pkgs/tools/archivers/ctrtool/default.nix20
-rw-r--r--pkgs/tools/archivers/gnutar/default.nix5
-rw-r--r--pkgs/tools/archivers/innoextract/default.nix2
-rw-r--r--pkgs/tools/archivers/ndstool/default.nix2
-rw-r--r--pkgs/tools/archivers/p7zip/default.nix2
-rw-r--r--pkgs/tools/archivers/payload-dumper-go/default.nix2
-rw-r--r--pkgs/tools/archivers/runzip/default.nix2
-rw-r--r--pkgs/tools/archivers/s-tar/default.nix2
-rw-r--r--pkgs/tools/archivers/sharutils/default.nix3
-rw-r--r--pkgs/tools/archivers/snzip/default.nix2
-rw-r--r--pkgs/tools/archivers/torrent7z/default.nix2
-rw-r--r--pkgs/tools/archivers/unar/default.nix2
-rw-r--r--pkgs/tools/archivers/unzip/default.nix2
-rw-r--r--pkgs/tools/archivers/wimlib/default.nix2
-rw-r--r--pkgs/tools/archivers/xarchive/default.nix2
-rw-r--r--pkgs/tools/archivers/zip/default.nix2
-rw-r--r--pkgs/tools/archivers/zip/fix-time.h-not-included.patch10
-rw-r--r--pkgs/tools/audio/abcm2ps/default.nix2
-rw-r--r--pkgs/tools/audio/abcmidi/default.nix4
-rw-r--r--pkgs/tools/audio/acousticbrainz-client/default.nix42
-rw-r--r--pkgs/tools/audio/beets/builtin-plugins.nix11
-rw-r--r--pkgs/tools/audio/beets/common.nix12
-rw-r--r--pkgs/tools/audio/beets/default.nix69
-rw-r--r--pkgs/tools/audio/beets/patches/bash-completion-always-print.patch45
-rw-r--r--pkgs/tools/audio/beets/patches/fix-embedart-imagick-7.1.1-12.patch13
-rw-r--r--pkgs/tools/audio/beets/patches/fix-pillow10-compat.patch13
-rw-r--r--pkgs/tools/audio/beets/patches/unstable-bash-completion-always-print.patch45
-rw-r--r--pkgs/tools/audio/beets/plugins/alternatives.nix22
-rw-r--r--pkgs/tools/audio/beets/plugins/copyartifacts.nix8
-rw-r--r--pkgs/tools/audio/beets/plugins/extrafiles.nix4
-rw-r--r--pkgs/tools/audio/dl-librescore/default.nix6
-rw-r--r--pkgs/tools/audio/dsp/default.nix2
-rw-r--r--pkgs/tools/audio/ezstream/default.nix2
-rw-r--r--pkgs/tools/audio/glyr/default.nix2
-rw-r--r--pkgs/tools/audio/goxlr-utility/default.nix2
-rw-r--r--pkgs/tools/audio/gvolicon/default.nix2
-rw-r--r--pkgs/tools/audio/kaldi/default.nix6
-rw-r--r--pkgs/tools/audio/mp3cat/default.nix2
-rw-r--r--pkgs/tools/audio/mpd-discord-rpc/default.nix6
-rw-r--r--pkgs/tools/audio/mpd-mpris/default.nix2
-rw-r--r--pkgs/tools/audio/mpd-sima/default.nix2
-rw-r--r--pkgs/tools/audio/mpdcron/default.nix2
-rw-r--r--pkgs/tools/audio/opl3bankeditor/common.nix2
-rw-r--r--pkgs/tools/audio/piper/default.nix2
-rw-r--r--pkgs/tools/audio/shaq/default.nix2
-rw-r--r--pkgs/tools/audio/spotdl/default.nix1
-rw-r--r--pkgs/tools/audio/tidal-dl/default.nix2
-rw-r--r--pkgs/tools/audio/trx/default.nix2
-rw-r--r--pkgs/tools/audio/vgmtools/default.nix2
-rw-r--r--pkgs/tools/audio/volumeicon/default.nix2
-rw-r--r--pkgs/tools/audio/whisper-ctranslate2/default.nix23
-rw-r--r--pkgs/tools/audio/wyoming/openwakeword.nix6
-rw-r--r--pkgs/tools/audio/wyoming/piper.nix1
-rw-r--r--pkgs/tools/audio/yabridge/default.nix2
-rw-r--r--pkgs/tools/audio/yabridgectl/default.nix2
-rw-r--r--pkgs/tools/backup/automysqlbackup/default.nix2
-rw-r--r--pkgs/tools/backup/awsbck/default.nix6
-rw-r--r--pkgs/tools/backup/btrbk/default.nix2
-rw-r--r--pkgs/tools/backup/duplicacy/default.nix2
-rw-r--r--pkgs/tools/backup/duplicati/default.nix2
-rw-r--r--pkgs/tools/backup/gyb/default.nix20
-rw-r--r--pkgs/tools/backup/iceshelf/default.nix2
-rw-r--r--pkgs/tools/backup/luckybackup/default.nix2
-rw-r--r--pkgs/tools/backup/mylvmbackup/default.nix2
-rw-r--r--pkgs/tools/backup/pgbackrest/default.nix4
-rw-r--r--pkgs/tools/backup/rdup/default.nix2
-rw-r--r--pkgs/tools/backup/restic/default.nix2
-rw-r--r--pkgs/tools/backup/restic/rest-server.nix2
-rw-r--r--pkgs/tools/backup/rsnapshot/default.nix2
-rw-r--r--pkgs/tools/backup/s3ql/default.nix2
-rw-r--r--pkgs/tools/backup/sanoid/default.nix2
-rw-r--r--pkgs/tools/backup/store-backup/default.nix2
-rw-r--r--pkgs/tools/backup/tarsnapper/default.nix9
-rw-r--r--pkgs/tools/backup/ugarit-manifest-maker/default.nix2
-rw-r--r--pkgs/tools/backup/ugarit/default.nix2
-rw-r--r--pkgs/tools/backup/wal-e/default.nix2
-rw-r--r--pkgs/tools/backup/wal-g/default.nix2
-rw-r--r--pkgs/tools/backup/zbackup/default.nix2
-rw-r--r--pkgs/tools/backup/zfsnap/default.nix2
-rw-r--r--pkgs/tools/backup/zrepl/default.nix2
-rw-r--r--pkgs/tools/bluetooth/blueman/default.nix4
-rw-r--r--pkgs/tools/bluetooth/obexfs/default.nix2
-rw-r--r--pkgs/tools/bluetooth/obexftp/default.nix2
-rw-r--r--pkgs/tools/bluetooth/openobex/default.nix2
-rw-r--r--pkgs/tools/bootloaders/refind/0002-preserve-dates.patch67
-rw-r--r--pkgs/tools/bootloaders/refind/default.nix5
-rw-r--r--pkgs/tools/cd-dvd/bchunk/default.nix2
-rw-r--r--pkgs/tools/cd-dvd/brasero/default.nix2
-rw-r--r--pkgs/tools/cd-dvd/ccd2iso/default.nix4
-rw-r--r--pkgs/tools/cd-dvd/ccd2iso/include.patch9
-rw-r--r--pkgs/tools/cd-dvd/cdi2iso/default.nix2
-rw-r--r--pkgs/tools/cd-dvd/cdrdao/default.nix2
-rw-r--r--pkgs/tools/cd-dvd/cuetools/default.nix2
-rw-r--r--pkgs/tools/cd-dvd/dvd-vr/default.nix2
-rw-r--r--pkgs/tools/cd-dvd/iat/default.nix2
-rw-r--r--pkgs/tools/cd-dvd/nrg2iso/default.nix2
-rw-r--r--pkgs/tools/cd-dvd/unetbootin/default.nix2
-rw-r--r--pkgs/tools/compression/advancecomp/default.nix2
-rw-r--r--pkgs/tools/compression/brotli/default.nix2
-rw-r--r--pkgs/tools/compression/bsdiff/default.nix2
-rw-r--r--pkgs/tools/compression/bzip2/default.nix2
-rw-r--r--pkgs/tools/compression/bzip3/default.nix2
-rw-r--r--pkgs/tools/compression/crabz/default.nix2
-rw-r--r--pkgs/tools/compression/flips/default.nix2
-rw-r--r--pkgs/tools/compression/gzip/default.nix5
-rw-r--r--pkgs/tools/compression/gzrt/default.nix2
-rw-r--r--pkgs/tools/compression/hactool/default.nix2
-rw-r--r--pkgs/tools/compression/heatshrink/default.nix2
-rw-r--r--pkgs/tools/compression/kzipmix/default.nix2
-rw-r--r--pkgs/tools/compression/lrzip/default.nix2
-rw-r--r--pkgs/tools/compression/lzfse/default.nix2
-rw-r--r--pkgs/tools/compression/lzip/default.nix2
-rw-r--r--pkgs/tools/compression/ncompress/default.nix2
-rw-r--r--pkgs/tools/compression/offzip/default.nix2
-rw-r--r--pkgs/tools/compression/orz/default.nix2
-rw-r--r--pkgs/tools/compression/ouch/default.nix2
-rw-r--r--pkgs/tools/compression/pbzip2/default.nix2
-rw-r--r--pkgs/tools/compression/pigz/default.nix2
-rw-r--r--pkgs/tools/compression/pixz/default.nix2
-rw-r--r--pkgs/tools/compression/upx/default.nix6
-rw-r--r--pkgs/tools/compression/xz/default.nix8
-rw-r--r--pkgs/tools/filesystems/aefs/default.nix2
-rw-r--r--pkgs/tools/filesystems/afpfs-ng/default.nix2
-rw-r--r--pkgs/tools/filesystems/bashmount/default.nix2
-rw-r--r--pkgs/tools/filesystems/bindfs/default.nix2
-rw-r--r--pkgs/tools/filesystems/boxfs/default.nix5
-rw-r--r--pkgs/tools/filesystems/boxfs/libapp-include-ctype.diff11
-rw-r--r--pkgs/tools/filesystems/boxfs/work-around-API-borkage.patch12
-rw-r--r--pkgs/tools/filesystems/btrfs-progs/default.nix4
-rw-r--r--pkgs/tools/filesystems/catcli/default.nix2
-rw-r--r--pkgs/tools/filesystems/ciopfs/default.nix2
-rw-r--r--pkgs/tools/filesystems/cpcfs/default.nix2
-rw-r--r--pkgs/tools/filesystems/disorderfs/default.nix2
-rw-r--r--pkgs/tools/filesystems/dupe-krill/default.nix8
-rw-r--r--pkgs/tools/filesystems/duperemove/default.nix2
-rw-r--r--pkgs/tools/filesystems/dwarfs/default.nix2
-rw-r--r--pkgs/tools/filesystems/dysk/default.nix6
-rw-r--r--pkgs/tools/filesystems/e2fsprogs/default.nix24
-rw-r--r--pkgs/tools/filesystems/encfs/default.nix2
-rw-r--r--pkgs/tools/filesystems/exfatprogs/default.nix4
-rw-r--r--pkgs/tools/filesystems/fatresize/default.nix2
-rw-r--r--pkgs/tools/filesystems/fuse-7z-ng/default.nix2
-rw-r--r--pkgs/tools/filesystems/garage/default.nix1
-rw-r--r--pkgs/tools/filesystems/gcsfuse/default.nix8
-rw-r--r--pkgs/tools/filesystems/genext2fs/default.nix2
-rw-r--r--pkgs/tools/filesystems/gitfs/default.nix2
-rw-r--r--pkgs/tools/filesystems/go-mtpfs/default.nix2
-rw-r--r--pkgs/tools/filesystems/goofys/default.nix2
-rw-r--r--pkgs/tools/filesystems/grive2/default.nix2
-rw-r--r--pkgs/tools/filesystems/httm/Cargo.lock1239
-rw-r--r--pkgs/tools/filesystems/httm/default.nix18
-rw-r--r--pkgs/tools/filesystems/ifuse/default.nix2
-rw-r--r--pkgs/tools/filesystems/ioztat/default.nix2
-rw-r--r--pkgs/tools/filesystems/jmtpfs/default.nix2
-rw-r--r--pkgs/tools/filesystems/juicefs/default.nix2
-rw-r--r--pkgs/tools/filesystems/kdiskmark/default.nix2
-rw-r--r--pkgs/tools/filesystems/lizardfs/default.nix2
-rw-r--r--pkgs/tools/filesystems/mergerfs/default.nix2
-rw-r--r--pkgs/tools/filesystems/mount-zip/default.nix4
-rw-r--r--pkgs/tools/filesystems/mtools/default.nix4
-rw-r--r--pkgs/tools/filesystems/sandboxfs/default.nix2
-rw-r--r--pkgs/tools/filesystems/smbnetfs/default.nix2
-rw-r--r--pkgs/tools/filesystems/snapraid/default.nix2
-rw-r--r--pkgs/tools/filesystems/supertag/default.nix2
-rw-r--r--pkgs/tools/filesystems/tar2ext4/default.nix4
-rw-r--r--pkgs/tools/filesystems/tmsu/default.nix42
-rw-r--r--pkgs/tools/filesystems/tmsu/deps.nix39
-rw-r--r--pkgs/tools/filesystems/upspin/default.nix2
-rw-r--r--pkgs/tools/filesystems/wiimms-iso-tools/default.nix2
-rw-r--r--pkgs/tools/filesystems/wipefreespace/default.nix2
-rw-r--r--pkgs/tools/filesystems/xfsprogs/default.nix4
-rw-r--r--pkgs/tools/filesystems/xtreemfs/default.nix2
-rw-r--r--pkgs/tools/filesystems/yandex-disk/default.nix2
-rw-r--r--pkgs/tools/filesystems/zpool-auto-expand-partitions/default.nix2
-rw-r--r--pkgs/tools/games/joystickwake/default.nix2
-rw-r--r--pkgs/tools/games/minecraft/fabric-installer/default.nix2
-rw-r--r--pkgs/tools/games/minecraft/mcaselector/default.nix13
-rw-r--r--pkgs/tools/games/minecraft/optifine/generic.nix2
-rw-r--r--pkgs/tools/games/minecraft/packwiz/default.nix10
-rw-r--r--pkgs/tools/games/mymcplus/default.nix2
-rw-r--r--pkgs/tools/games/opentracker/default.nix14
-rw-r--r--pkgs/tools/games/pokefinder/default.nix15
-rw-r--r--pkgs/tools/games/ps3-disc-dumper/default.nix2
-rw-r--r--pkgs/tools/games/slipstream/default.nix2
-rw-r--r--pkgs/tools/games/steam-rom-manager/default.nix6
-rw-r--r--pkgs/tools/games/steamback/default.nix2
-rw-r--r--pkgs/tools/games/ukmm/default.nix2
-rw-r--r--pkgs/tools/graphics/adriconf/default.nix2
-rw-r--r--pkgs/tools/graphics/apng2gif/default.nix2
-rw-r--r--pkgs/tools/graphics/astc-encoder/default.nix2
-rw-r--r--pkgs/tools/graphics/asymptote/default.nix5
-rw-r--r--pkgs/tools/graphics/deqp-runner/default.nix2
-rw-r--r--pkgs/tools/graphics/directx-shader-compiler/default.nix6
-rw-r--r--pkgs/tools/graphics/dpic/default.nix2
-rw-r--r--pkgs/tools/graphics/editres/default.nix2
-rw-r--r--pkgs/tools/graphics/epstool/default.nix2
-rw-r--r--pkgs/tools/graphics/exif/default.nix2
-rw-r--r--pkgs/tools/graphics/facedetect/default.nix2
-rw-r--r--pkgs/tools/graphics/fim/default.nix2
-rw-r--r--pkgs/tools/graphics/gfxreconstruct/default.nix14
-rw-r--r--pkgs/tools/graphics/gif2apng/default.nix2
-rw-r--r--pkgs/tools/graphics/gifski/default.nix5
-rw-r--r--pkgs/tools/graphics/gnuplot/default.nix6
-rw-r--r--pkgs/tools/graphics/goverlay/default.nix2
-rw-r--r--pkgs/tools/graphics/guff/default.nix2
-rw-r--r--pkgs/tools/graphics/hobbits/default.nix2
-rw-r--r--pkgs/tools/graphics/imageworsener/default.nix2
-rw-r--r--pkgs/tools/graphics/imgur-screenshot/default.nix2
-rw-r--r--pkgs/tools/graphics/imgurbash2/default.nix2
-rw-r--r--pkgs/tools/graphics/lepton/default.nix2
-rw-r--r--pkgs/tools/graphics/libyafaray/default.nix2
-rw-r--r--pkgs/tools/graphics/lsix/default.nix4
-rw-r--r--pkgs/tools/graphics/maim/default.nix2
-rw-r--r--pkgs/tools/graphics/mangohud/default.nix19
-rw-r--r--pkgs/tools/graphics/mangohud/hardcode-dependencies.patch7
-rw-r--r--pkgs/tools/graphics/maskromtool/default.nix6
-rw-r--r--pkgs/tools/graphics/nifskope/default.nix2
-rw-r--r--pkgs/tools/graphics/optipng/default.nix2
-rw-r--r--pkgs/tools/graphics/oxipng/default.nix2
-rw-r--r--pkgs/tools/graphics/pdftoipe/default.nix2
-rw-r--r--pkgs/tools/graphics/perceptualdiff/default.nix2
-rw-r--r--pkgs/tools/graphics/piglit/default.nix2
-rw-r--r--pkgs/tools/graphics/pikchr/default.nix2
-rw-r--r--pkgs/tools/graphics/ploticus/default.nix2
-rw-r--r--pkgs/tools/graphics/pngcrush/default.nix2
-rw-r--r--pkgs/tools/graphics/pngnq/default.nix2
-rw-r--r--pkgs/tools/graphics/pngout/default.nix2
-rw-r--r--pkgs/tools/graphics/pngquant/default.nix2
-rw-r--r--pkgs/tools/graphics/quirc/default.nix2
-rw-r--r--pkgs/tools/graphics/resvg/default.nix8
-rw-r--r--pkgs/tools/graphics/rocket/default.nix2
-rw-r--r--pkgs/tools/graphics/sanjuuni/default.nix2
-rw-r--r--pkgs/tools/graphics/scrot/default.nix6
-rw-r--r--pkgs/tools/graphics/shot-scraper/default.nix2
-rw-r--r--pkgs/tools/graphics/snapdragon-profiler/default.nix2
-rw-r--r--pkgs/tools/graphics/spirv-cross/default.nix2
-rw-r--r--pkgs/tools/graphics/stegsolve/default.nix2
-rw-r--r--pkgs/tools/graphics/svg2pdf/default.nix6
-rw-r--r--pkgs/tools/graphics/timg/default.nix2
-rw-r--r--pkgs/tools/graphics/viu/default.nix2
-rw-r--r--pkgs/tools/graphics/vkbasalt/default.nix2
-rw-r--r--pkgs/tools/graphics/vkmark/default.nix2
-rw-r--r--pkgs/tools/graphics/vulkan-helper/default.nix2
-rw-r--r--pkgs/tools/graphics/wavefunctioncollapse/default.nix2
-rw-r--r--pkgs/tools/graphics/wdisplays/default.nix2
-rw-r--r--pkgs/tools/graphics/welkin/default.nix2
-rw-r--r--pkgs/tools/inputmethods/evscript/default.nix2
-rw-r--r--pkgs/tools/inputmethods/evsieve/default.nix2
-rw-r--r--pkgs/tools/inputmethods/fcitx5/default.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-bamboo.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-chewing.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-hangul.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-skk.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/with-addons.nix14
-rw-r--r--pkgs/tools/inputmethods/hime/default.nix2
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix19
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-cangjie/default.nix2
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix2
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix6
-rw-r--r--pkgs/tools/inputmethods/ibus/default.nix4
-rw-r--r--pkgs/tools/inputmethods/input-remapper/default.nix2
-rw-r--r--pkgs/tools/inputmethods/interception-tools/default.nix2
-rw-r--r--pkgs/tools/inputmethods/keyd/default.nix2
-rw-r--r--pkgs/tools/inputmethods/keymapper/default.nix10
-rw-r--r--pkgs/tools/inputmethods/nabi/default.nix2
-rw-r--r--pkgs/tools/inputmethods/skk/skk-dicts/default.nix2
-rw-r--r--pkgs/tools/inputmethods/skk/skktools/default.nix2
-rw-r--r--pkgs/tools/inputmethods/triggerhappy/default.nix2
-rw-r--r--pkgs/tools/inputmethods/uim/default.nix2
-rw-r--r--pkgs/tools/llm/heygpt/default.nix2
-rw-r--r--pkgs/tools/misc/0x/default.nix2
-rw-r--r--pkgs/tools/misc/addic7ed-cli/default.nix2
-rw-r--r--pkgs/tools/misc/adrgen/default.nix2
-rw-r--r--pkgs/tools/misc/afetch/default.nix2
-rw-r--r--pkgs/tools/misc/agedu/default.nix2
-rw-r--r--pkgs/tools/misc/aichat/default.nix6
-rw-r--r--pkgs/tools/misc/alarm-clock-applet/default.nix2
-rw-r--r--pkgs/tools/misc/apkeep/default.nix2
-rwxr-xr-xpkgs/tools/misc/archi/update.sh3
-rw-r--r--pkgs/tools/misc/asciinema-agg/default.nix2
-rw-r--r--pkgs/tools/misc/askalono/default.nix2
-rw-r--r--pkgs/tools/misc/astronomer/default.nix2
-rw-r--r--pkgs/tools/misc/autojump/default.nix2
-rw-r--r--pkgs/tools/misc/backdown/default.nix2
-rw-r--r--pkgs/tools/misc/bartib/default.nix5
-rw-r--r--pkgs/tools/misc/bbe/default.nix2
-rw-r--r--pkgs/tools/misc/bdf2psf/default.nix4
-rw-r--r--pkgs/tools/misc/betterdiscordctl/default.nix2
-rw-r--r--pkgs/tools/misc/bfetch/default.nix2
-rw-r--r--pkgs/tools/misc/bfr/default.nix2
-rw-r--r--pkgs/tools/misc/bibtex2html/default.nix2
-rw-r--r--pkgs/tools/misc/bkt/default.nix2
-rw-r--r--pkgs/tools/misc/bkyml/default.nix2
-rw-r--r--pkgs/tools/misc/blflash/default.nix2
-rw-r--r--pkgs/tools/misc/bonk/default.nix2
-rw-r--r--pkgs/tools/misc/broot/default.nix13
-rw-r--r--pkgs/tools/misc/buildtorrent/default.nix2
-rw-r--r--pkgs/tools/misc/calamares-nixos-extensions/default.nix4
-rw-r--r--pkgs/tools/misc/capture/default.nix2
-rw-r--r--pkgs/tools/misc/cf-terraforming/default.nix2
-rw-r--r--pkgs/tools/misc/changelogger/default.nix2
-rw-r--r--pkgs/tools/misc/charasay/default.nix2
-rw-r--r--pkgs/tools/misc/chatgpt-cli/default.nix6
-rw-r--r--pkgs/tools/misc/chef-cli/default.nix2
-rw-r--r--pkgs/tools/misc/clickclack/default.nix2
-rw-r--r--pkgs/tools/misc/clini/default.nix2
-rw-r--r--pkgs/tools/misc/cloc/default.nix2
-rw-r--r--pkgs/tools/misc/clpeak/default.nix2
-rw-r--r--pkgs/tools/misc/clubhouse-cli/default.nix2
-rw-r--r--pkgs/tools/misc/code-minimap/default.nix2
-rw-r--r--pkgs/tools/misc/codevis/default.nix2
-rw-r--r--pkgs/tools/misc/conserver/default.nix2
-rw-r--r--pkgs/tools/misc/coreboot-configurator/default.nix2
-rw-r--r--pkgs/tools/misc/coreboot-utils/default.nix10
-rw-r--r--pkgs/tools/misc/coreutils/default.nix13
-rw-r--r--pkgs/tools/misc/coreutils/fix-mix-flags-deps-libintl.patch49
-rw-r--r--pkgs/tools/misc/cowsay/default.nix2
-rw-r--r--pkgs/tools/misc/crudini/default.nix3
-rw-r--r--pkgs/tools/misc/cunit/default.nix2
-rw-r--r--pkgs/tools/misc/cutecom/default.nix2
-rw-r--r--pkgs/tools/misc/cyberchef/default.nix6
-rw-r--r--pkgs/tools/misc/dashing/default.nix2
-rw-r--r--pkgs/tools/misc/datamash/default.nix2
-rw-r--r--pkgs/tools/misc/datefmt/default.nix2
-rw-r--r--pkgs/tools/misc/dateutils/default.nix2
-rw-r--r--pkgs/tools/misc/ddccontrol/default.nix2
-rw-r--r--pkgs/tools/misc/didyoumean/default.nix2
-rw-r--r--pkgs/tools/misc/diffoscope/default.nix7
-rw-r--r--pkgs/tools/misc/direnv/default.nix2
-rw-r--r--pkgs/tools/misc/discocss/default.nix2
-rw-r--r--pkgs/tools/misc/diskus/default.nix2
-rw-r--r--pkgs/tools/misc/dmg2img/default.nix2
-rw-r--r--pkgs/tools/misc/dotter/default.nix2
-rw-r--r--pkgs/tools/misc/dtach/default.nix2
-rw-r--r--pkgs/tools/misc/dtool/default.nix2
-rw-r--r--pkgs/tools/misc/dua/default.nix2
-rw-r--r--pkgs/tools/misc/dutree/default.nix2
-rw-r--r--pkgs/tools/misc/dwt1-shell-color-scripts/default.nix2
-rw-r--r--pkgs/tools/misc/easeprobe/default.nix2
-rw-r--r--pkgs/tools/misc/eludris/default.nix2
-rw-r--r--pkgs/tools/misc/empty/default.nix2
-rw-r--r--pkgs/tools/misc/encpipe/default.nix2
-rw-r--r--pkgs/tools/misc/esphome/default.nix4
-rw-r--r--pkgs/tools/misc/ethtool/default.nix5
-rw-r--r--pkgs/tools/misc/ets/default.nix2
-rw-r--r--pkgs/tools/misc/eva/default.nix2
-rw-r--r--pkgs/tools/misc/expect/default.nix2
-rw-r--r--pkgs/tools/misc/faketty/default.nix8
-rw-r--r--pkgs/tools/misc/fcp/default.nix2
-rw-r--r--pkgs/tools/misc/fd/default.nix2
-rw-r--r--pkgs/tools/misc/fdtools/default.nix2
-rw-r--r--pkgs/tools/misc/fdupes/default.nix4
-rw-r--r--pkgs/tools/misc/fedifetcher/default.nix2
-rw-r--r--pkgs/tools/misc/fet-sh/default.nix2
-rw-r--r--pkgs/tools/misc/fetchutils/default.nix2
-rw-r--r--pkgs/tools/misc/file/default.nix6
-rw-r--r--pkgs/tools/misc/fileschanged/default.nix2
-rw-r--r--pkgs/tools/misc/findutils/default.nix3
-rw-r--r--pkgs/tools/misc/flitter/default.nix2
-rw-r--r--pkgs/tools/misc/flowgger/default.nix2
-rw-r--r--pkgs/tools/misc/fltrdr/default.nix2
-rw-r--r--pkgs/tools/misc/fluent-bit/default.nix14
-rw-r--r--pkgs/tools/misc/fluent-bit/macos-11-sdk-compat.patch17
-rw-r--r--pkgs/tools/misc/fluentd/default.nix2
-rw-r--r--pkgs/tools/misc/foma/default.nix35
-rw-r--r--pkgs/tools/misc/fontforge/default.nix2
-rw-r--r--pkgs/tools/misc/fortune/default.nix2
-rw-r--r--pkgs/tools/misc/fre/default.nix2
-rw-r--r--pkgs/tools/misc/freshfetch/default.nix2
-rw-r--r--pkgs/tools/misc/fsearch/default.nix2
-rw-r--r--pkgs/tools/misc/fsrx/default.nix2
-rw-r--r--pkgs/tools/misc/fw/default.nix2
-rw-r--r--pkgs/tools/misc/fzy/default.nix2
-rw-r--r--pkgs/tools/misc/g933-utils/default.nix2
-rw-r--r--pkgs/tools/misc/getoptions/default.nix2
-rw-r--r--pkgs/tools/misc/gh-dash/default.nix6
-rw-r--r--pkgs/tools/misc/gh-eco/default.nix33
-rw-r--r--pkgs/tools/misc/gibo/default.nix2
-rw-r--r--pkgs/tools/misc/github-copilot-cli/default.nix2
-rw-r--r--pkgs/tools/misc/gitrs/default.nix2
-rw-r--r--pkgs/tools/misc/glasgow/default.nix2
-rw-r--r--pkgs/tools/misc/go-ios/default.nix2
-rw-r--r--pkgs/tools/misc/go.rice/default.nix2
-rw-r--r--pkgs/tools/misc/goaccess/default.nix4
-rw-r--r--pkgs/tools/misc/godu/default.nix4
-rw-r--r--pkgs/tools/misc/goreleaser/default.nix6
-rw-r--r--pkgs/tools/misc/gotify-cli/default.nix2
-rw-r--r--pkgs/tools/misc/gradescope-submit/default.nix2
-rw-r--r--pkgs/tools/misc/grass-sass/default.nix8
-rw-r--r--pkgs/tools/misc/graylog/plugins.nix12
-rw-r--r--pkgs/tools/misc/grc/default.nix2
-rw-r--r--pkgs/tools/misc/grex/default.nix2
-rw-r--r--pkgs/tools/misc/grit/default.nix2
-rw-r--r--pkgs/tools/misc/grizzly/default.nix2
-rw-r--r--pkgs/tools/misc/grub/default.nix30
-rw-r--r--pkgs/tools/misc/gtkterm/default.nix2
-rw-r--r--pkgs/tools/misc/gwe/default.nix4
-rw-r--r--pkgs/tools/misc/h/default.nix4
-rw-r--r--pkgs/tools/misc/h5utils/default.nix2
-rw-r--r--pkgs/tools/misc/hackertyper/default.nix2
-rw-r--r--pkgs/tools/misc/halp/default.nix2
-rw-r--r--pkgs/tools/misc/hashit/default.nix2
-rw-r--r--pkgs/tools/misc/hashpump/default.nix2
-rw-r--r--pkgs/tools/misc/hdf5/default.nix6
-rw-r--r--pkgs/tools/misc/heatseeker/default.nix2
-rw-r--r--pkgs/tools/misc/hebcal/default.nix2
-rw-r--r--pkgs/tools/misc/heimdall/default.nix2
-rw-r--r--pkgs/tools/misc/hexdiff/default.nix2
-rw-r--r--pkgs/tools/misc/hexyl/default.nix2
-rw-r--r--pkgs/tools/misc/hid-listen/default.nix2
-rw-r--r--pkgs/tools/misc/hostsblock/default.nix2
-rw-r--r--pkgs/tools/misc/html-proofer/default.nix2
-rw-r--r--pkgs/tools/misc/hunt/default.nix6
-rw-r--r--pkgs/tools/misc/ili2c/default.nix4
-rw-r--r--pkgs/tools/misc/infracost/default.nix9
-rw-r--r--pkgs/tools/misc/ink/default.nix2
-rw-r--r--pkgs/tools/misc/inklingreader/default.nix2
-rw-r--r--pkgs/tools/misc/inspec/Gemfile.lock449
-rw-r--r--pkgs/tools/misc/inspec/gemset.nix659
-rw-r--r--pkgs/tools/misc/interactsh/default.nix2
-rw-r--r--pkgs/tools/misc/ipbt/default.nix2
-rw-r--r--pkgs/tools/misc/ipxe/default.nix6
-rw-r--r--pkgs/tools/misc/ised/default.nix2
-rw-r--r--pkgs/tools/misc/isoimagewriter/default.nix2
-rw-r--r--pkgs/tools/misc/jdiskreport/default.nix2
-rw-r--r--pkgs/tools/misc/jdupes/default.nix2
-rw-r--r--pkgs/tools/misc/jstest-gtk/default.nix2
-rw-r--r--pkgs/tools/misc/jugglinglab/default.nix2
-rw-r--r--pkgs/tools/misc/kakoune-cr/default.nix2
-rw-r--r--pkgs/tools/misc/kalker/default.nix7
-rw-r--r--pkgs/tools/misc/kargo/default.nix2
-rw-r--r--pkgs/tools/misc/kb/default.nix2
-rw-r--r--pkgs/tools/misc/kcollectd/default.nix2
-rw-r--r--pkgs/tools/misc/keymapviz/default.nix2
-rw-r--r--pkgs/tools/misc/killport/default.nix2
-rw-r--r--pkgs/tools/misc/krapslog/default.nix6
-rw-r--r--pkgs/tools/misc/kronometer/default.nix2
-rw-r--r--pkgs/tools/misc/krunner-translator/default.nix2
-rw-r--r--pkgs/tools/misc/lazycli/default.nix2
-rw-r--r--pkgs/tools/misc/lazydocker/default.nix6
-rw-r--r--pkgs/tools/misc/lbdb/default.nix2
-rw-r--r--pkgs/tools/misc/leanify/default.nix8
-rw-r--r--pkgs/tools/misc/ledit/default.nix2
-rw-r--r--pkgs/tools/misc/lektor/default.nix2
-rw-r--r--pkgs/tools/misc/lemmeknow/default.nix2
-rw-r--r--pkgs/tools/misc/lemmy-help/default.nix2
-rw-r--r--pkgs/tools/misc/lesspipe/default.nix8
-rw-r--r--pkgs/tools/misc/license-generator/default.nix6
-rw-r--r--pkgs/tools/misc/lifecycled/default.nix2
-rw-r--r--pkgs/tools/misc/limitcpu/default.nix2
-rw-r--r--pkgs/tools/misc/lipl/default.nix2
-rw-r--r--pkgs/tools/misc/lnav/default.nix2
-rw-r--r--pkgs/tools/misc/lokalise2-cli/default.nix4
-rw-r--r--pkgs/tools/misc/lolcat/default.nix2
-rw-r--r--pkgs/tools/misc/lsd/default.nix2
-rw-r--r--pkgs/tools/misc/lwc/default.nix2
-rw-r--r--pkgs/tools/misc/macchina/default.nix2
-rw-r--r--pkgs/tools/misc/man-db/default.nix2
-rw-r--r--pkgs/tools/misc/mastotool/default.nix2
-rw-r--r--pkgs/tools/misc/mbuffer/default.nix2
-rw-r--r--pkgs/tools/misc/mcfly/default.nix8
-rw-r--r--pkgs/tools/misc/memtest86+/default.nix2
-rw-r--r--pkgs/tools/misc/memtest86-efi/default.nix2
-rw-r--r--pkgs/tools/misc/microplane/default.nix2
-rw-r--r--pkgs/tools/misc/minipro/default.nix2
-rw-r--r--pkgs/tools/misc/mise/default.nix2
-rw-r--r--pkgs/tools/misc/mmake/default.nix2
-rw-r--r--pkgs/tools/misc/mmctl/default.nix2
-rw-r--r--pkgs/tools/misc/mongodb-compass/default.nix2
-rw-r--r--pkgs/tools/misc/most/default.nix2
-rw-r--r--pkgs/tools/misc/mpdscribble/default.nix2
-rw-r--r--pkgs/tools/misc/mpremote/default.nix6
-rw-r--r--pkgs/tools/misc/mprocs/default.nix2
-rw-r--r--pkgs/tools/misc/mrtg/default.nix12
-rw-r--r--pkgs/tools/misc/ms-sys/default.nix2
-rw-r--r--pkgs/tools/misc/mstflint/default.nix1
-rw-r--r--pkgs/tools/misc/nagstamon/default.nix2
-rw-r--r--pkgs/tools/misc/nanoemoji/default.nix2
-rw-r--r--pkgs/tools/misc/natls/default.nix2
-rw-r--r--pkgs/tools/misc/nb/default.nix2
-rw-r--r--pkgs/tools/misc/nbench/default.nix2
-rw-r--r--pkgs/tools/misc/neofetch/default.nix2
-rw-r--r--pkgs/tools/misc/netbootxyz-efi/default.nix2
-rw-r--r--pkgs/tools/misc/node-glob/default.nix2
-rw-r--r--pkgs/tools/misc/nomino/default.nix6
-rw-r--r--pkgs/tools/misc/ntfy/default.nix2
-rw-r--r--pkgs/tools/misc/nux/default.nix2
-rw-r--r--pkgs/tools/misc/nvimpager/default.nix17
-rw-r--r--pkgs/tools/misc/ondir/default.nix2
-rw-r--r--pkgs/tools/misc/opentelemetry-collector/contrib.nix6
-rw-r--r--pkgs/tools/misc/opentelemetry-collector/default.nix2
-rw-r--r--pkgs/tools/misc/oscclip/default.nix2
-rw-r--r--pkgs/tools/misc/otel-cli/default.nix2
-rw-r--r--pkgs/tools/misc/pandoc-include/default.nix3
-rw-r--r--pkgs/tools/misc/pandoc-lua-filters/default.nix2
-rw-r--r--pkgs/tools/misc/panoply/default.nix4
-rw-r--r--pkgs/tools/misc/paperlike-go/default.nix2
-rw-r--r--pkgs/tools/misc/parallel/default.nix4
-rw-r--r--pkgs/tools/misc/parquet-tools/default.nix2
-rw-r--r--pkgs/tools/misc/pastebinit/default.nix2
-rw-r--r--pkgs/tools/misc/pazi/default.nix2
-rw-r--r--pkgs/tools/misc/pb/default.nix6
-rw-r--r--pkgs/tools/misc/pb_cli/default.nix2
-rw-r--r--pkgs/tools/misc/peep/default.nix2
-rw-r--r--pkgs/tools/misc/peruse/default.nix2
-rw-r--r--pkgs/tools/misc/pfetch-rs/default.nix8
-rw-r--r--pkgs/tools/misc/pfetch/default.nix2
-rw-r--r--pkgs/tools/misc/pg_top/default.nix2
-rw-r--r--pkgs/tools/misc/pgbadger/default.nix2
-rw-r--r--pkgs/tools/misc/phrase-cli/default.nix6
-rw-r--r--pkgs/tools/misc/pipectl/default.nix2
-rw-r--r--pkgs/tools/misc/pipelight/default.nix2
-rw-r--r--pkgs/tools/misc/pistol/default.nix6
-rw-r--r--pkgs/tools/misc/pkgdiff/default.nix2
-rw-r--r--pkgs/tools/misc/plantuml-server/default.nix6
-rw-r--r--pkgs/tools/misc/plantuml/default.nix4
-rw-r--r--pkgs/tools/misc/plotinus/default.nix2
-rw-r--r--pkgs/tools/misc/pokeget-rs/default.nix2
-rw-r--r--pkgs/tools/misc/portal/default.nix2
-rw-r--r--pkgs/tools/misc/pouf/default.nix7
-rw-r--r--pkgs/tools/misc/powerline-go/default.nix2
-rw-r--r--pkgs/tools/misc/pre-commit/default.nix2
-rw-r--r--pkgs/tools/misc/present-cli/default.nix2
-rw-r--r--pkgs/tools/misc/pricehist/default.nix2
-rw-r--r--pkgs/tools/misc/psw/default.nix2
-rw-r--r--pkgs/tools/misc/pv/default.nix4
-rw-r--r--pkgs/tools/misc/qjoypad/default.nix2
-rw-r--r--pkgs/tools/misc/qmk/default.nix4
-rw-r--r--pkgs/tools/misc/qt6gtk2/default.nix20
-rw-r--r--pkgs/tools/misc/quich/default.nix2
-rw-r--r--pkgs/tools/misc/r3ctl/default.nix2
-rw-r--r--pkgs/tools/misc/ramfetch/default.nix2
-rw-r--r--pkgs/tools/misc/remind/default.nix4
-rw-r--r--pkgs/tools/misc/renameutils/default.nix2
-rw-r--r--pkgs/tools/misc/rfc/default.nix2
-rw-r--r--pkgs/tools/misc/riemann-c-client/default.nix2
-rw-r--r--pkgs/tools/misc/ripdrag/default.nix2
-rw-r--r--pkgs/tools/misc/ristate/default.nix2
-rw-r--r--pkgs/tools/misc/roundup/default.nix2
-rw-r--r--pkgs/tools/misc/rpm-ostree/default.nix2
-rw-r--r--pkgs/tools/misc/rshim-user-space/default.nix8
-rw-r--r--pkgs/tools/misc/rtz/default.nix2
-rw-r--r--pkgs/tools/misc/rustypaste-cli/default.nix2
-rw-r--r--pkgs/tools/misc/sagoin/default.nix2
-rw-r--r--pkgs/tools/misc/savepagenow/default.nix2
-rw-r--r--pkgs/tools/misc/scdl/default.nix10
-rw-r--r--pkgs/tools/misc/screen/default.nix5
-rw-r--r--pkgs/tools/misc/script-directory/default.nix2
-rw-r--r--pkgs/tools/misc/see/default.nix2
-rw-r--r--pkgs/tools/misc/sensible-utils/default.nix2
-rw-r--r--pkgs/tools/misc/setconf/default.nix2
-rw-r--r--pkgs/tools/misc/sfeed/default.nix2
-rw-r--r--pkgs/tools/misc/shadowenv/Cargo.lock.patch13
-rw-r--r--pkgs/tools/misc/shadowenv/default.nix8
-rw-r--r--pkgs/tools/misc/sheldon/default.nix2
-rw-r--r--pkgs/tools/misc/shelldap/default.nix2
-rw-r--r--pkgs/tools/misc/shunit2/default.nix2
-rw-r--r--pkgs/tools/misc/sqlite3-to-mysql/default.nix6
-rw-r--r--pkgs/tools/misc/srisum/default.nix2
-rw-r--r--pkgs/tools/misc/starship/default.nix2
-rw-r--r--pkgs/tools/misc/staruml/default.nix6
-rw-r--r--pkgs/tools/misc/stow/default.nix2
-rw-r--r--pkgs/tools/misc/subberthehut/default.nix2
-rw-r--r--pkgs/tools/misc/svtplay-dl/default.nix4
-rw-r--r--pkgs/tools/misc/svu/default.nix6
-rw-r--r--pkgs/tools/misc/synth/default.nix2
-rw-r--r--pkgs/tools/misc/systrayhelper/default.nix2
-rw-r--r--pkgs/tools/misc/sysz/default.nix2
-rw-r--r--pkgs/tools/misc/szyszka/default.nix2
-rw-r--r--pkgs/tools/misc/t/default.nix2
-rw-r--r--pkgs/tools/misc/tailer/default.nix2
-rw-r--r--pkgs/tools/misc/tailspin/default.nix2
-rw-r--r--pkgs/tools/misc/taoup/default.nix2
-rw-r--r--pkgs/tools/misc/tbls/default.nix8
-rw-r--r--pkgs/tools/misc/tealdeer/default.nix2
-rw-r--r--pkgs/tools/misc/teamocil/default.nix2
-rw-r--r--pkgs/tools/misc/tere/default.nix52
-rw-r--r--pkgs/tools/misc/tfk8s/default.nix2
-rw-r--r--pkgs/tools/misc/theme-sh/default.nix2
-rw-r--r--pkgs/tools/misc/thin-provisioning-tools/Cargo.lock907
-rw-r--r--pkgs/tools/misc/thin-provisioning-tools/default.nix26
-rw-r--r--pkgs/tools/misc/thumbs/default.nix2
-rw-r--r--pkgs/tools/misc/timer/default.nix2
-rw-r--r--pkgs/tools/misc/timidity/default.nix2
-rw-r--r--pkgs/tools/misc/tmux-mem-cpu-load/default.nix4
-rw-r--r--pkgs/tools/misc/tmux-sessionizer/default.nix2
-rw-r--r--pkgs/tools/misc/tmux/default.nix15
-rw-r--r--pkgs/tools/misc/tmuxp/default.nix4
-rw-r--r--pkgs/tools/misc/toastify/default.nix2
-rw-r--r--pkgs/tools/misc/topicctl/default.nix6
-rw-r--r--pkgs/tools/misc/torrenttools/default.nix2
-rw-r--r--pkgs/tools/misc/trash-cli/default.nix8
-rw-r--r--pkgs/tools/misc/trashy/default.nix2
-rw-r--r--pkgs/tools/misc/trillian/default.nix2
-rw-r--r--pkgs/tools/misc/ttfautohint/default.nix2
-rw-r--r--pkgs/tools/misc/ttyplot/default.nix6
-rw-r--r--pkgs/tools/misc/twm/default.nix21
-rw-r--r--pkgs/tools/misc/twspace-dl/default.nix2
-rw-r--r--pkgs/tools/misc/tz/default.nix2
-rw-r--r--pkgs/tools/misc/uair/default.nix2
-rw-r--r--pkgs/tools/misc/ugs/default.nix2
-rw-r--r--pkgs/tools/misc/ugtrain/default.nix2
-rw-r--r--pkgs/tools/misc/undocker/default.nix2
-rw-r--r--pkgs/tools/misc/unparam/default.nix8
-rw-r--r--pkgs/tools/misc/upower-notify/default.nix23
-rw-r--r--pkgs/tools/misc/upower-notify/deps.nix11
-rw-r--r--pkgs/tools/misc/urlencode/default.nix2
-rw-r--r--pkgs/tools/misc/usbimager/default.nix2
-rw-r--r--pkgs/tools/misc/usbmuxd/default.nix2
-rw-r--r--pkgs/tools/misc/usbmuxd2/default.nix2
-rw-r--r--pkgs/tools/misc/uudeview/default.nix2
-rw-r--r--pkgs/tools/misc/uwufetch/default.nix2
-rw-r--r--pkgs/tools/misc/valeronoi/default.nix2
-rw-r--r--pkgs/tools/misc/vector/Cargo.lock1414
-rw-r--r--pkgs/tools/misc/vector/default.nix16
-rw-r--r--pkgs/tools/misc/vector/vector-lto.patch12
-rw-r--r--pkgs/tools/misc/vial/default.nix2
-rw-r--r--pkgs/tools/misc/viddy/default.nix2
-rw-r--r--pkgs/tools/misc/vivid/default.nix2
-rw-r--r--pkgs/tools/misc/vorbisgain/default.nix2
-rw-r--r--pkgs/tools/misc/vsc-leetcode-cli/default.nix2
-rw-r--r--pkgs/tools/misc/vtm/default.nix4
-rw-r--r--pkgs/tools/misc/wakapi/default.nix2
-rw-r--r--pkgs/tools/misc/wasm-tools/default.nix6
-rw-r--r--pkgs/tools/misc/wayback-machine-archiver/default.nix2
-rw-r--r--pkgs/tools/misc/wayback/default.nix2
-rw-r--r--pkgs/tools/misc/waylevel/default.nix2
-rw-r--r--pkgs/tools/misc/wayshot/default.nix2
-rw-r--r--pkgs/tools/misc/webcat/default.nix2
-rw-r--r--pkgs/tools/misc/whatsapp-chat-exporter/default.nix4
-rw-r--r--pkgs/tools/misc/wlc/default.nix2
-rw-r--r--pkgs/tools/misc/woeusb-ng/default.nix2
-rw-r--r--pkgs/tools/misc/wootility/default.nix6
-rw-r--r--pkgs/tools/misc/wyrd/default.nix2
-rw-r--r--pkgs/tools/misc/xcp/default.nix2
-rw-r--r--pkgs/tools/misc/xdaliclock/default.nix2
-rw-r--r--pkgs/tools/misc/xdg-ninja/default.nix2
-rw-r--r--pkgs/tools/misc/xjobs/default.nix2
-rw-r--r--pkgs/tools/misc/xmonad-log/deps.nix12
-rw-r--r--pkgs/tools/misc/xstow/default.nix2
-rw-r--r--pkgs/tools/misc/xxv/default.nix2
-rw-r--r--pkgs/tools/misc/you-get/default.nix6
-rw-r--r--pkgs/tools/misc/yt-dlp/default.nix4
-rw-r--r--pkgs/tools/misc/ytcast/default.nix2
-rw-r--r--pkgs/tools/misc/ytfzf/default.nix2
-rw-r--r--pkgs/tools/misc/yubico-piv-tool/default.nix4
-rw-r--r--pkgs/tools/misc/yubikey-personalization-gui/default.nix2
-rw-r--r--pkgs/tools/misc/yubikey-personalization/default.nix2
-rw-r--r--pkgs/tools/misc/z-lua/default.nix2
-rw-r--r--pkgs/tools/misc/zellij/default.nix2
-rw-r--r--pkgs/tools/misc/zf/default.nix2
-rw-r--r--pkgs/tools/misc/zotero-translation-server/default.nix2
-rw-r--r--pkgs/tools/misc/zoxide/default.nix2
-rw-r--r--pkgs/tools/misc/zthrottle/default.nix2
-rw-r--r--pkgs/tools/networking/aardvark-dns/default.nix6
-rw-r--r--pkgs/tools/networking/ain/default.nix2
-rw-r--r--pkgs/tools/networking/aircrack-ng/default.nix109
-rw-r--r--pkgs/tools/networking/aria2/default.nix12
-rw-r--r--pkgs/tools/networking/badvpn/default.nix2
-rw-r--r--pkgs/tools/networking/bandwhich/default.nix2
-rw-r--r--pkgs/tools/networking/bore-cli/default.nix6
-rw-r--r--pkgs/tools/networking/bore/default.nix1
-rw-r--r--pkgs/tools/networking/brook/default.nix2
-rw-r--r--pkgs/tools/networking/bukubrow/default.nix2
-rw-r--r--pkgs/tools/networking/bwm-ng/default.nix2
-rw-r--r--pkgs/tools/networking/cadaver/default.nix2
-rw-r--r--pkgs/tools/networking/carddav-util/default.nix2
-rw-r--r--pkgs/tools/networking/cfspeedtest/default.nix6
-rw-r--r--pkgs/tools/networking/checkip/default.nix4
-rw-r--r--pkgs/tools/networking/cksfv/default.nix2
-rw-r--r--pkgs/tools/networking/cloudflare-warp/default.nix2
-rw-r--r--pkgs/tools/networking/configurable-http-proxy/default.nix2
-rw-r--r--pkgs/tools/networking/containerlab/default.nix6
-rw-r--r--pkgs/tools/networking/corkscrew/default.nix2
-rw-r--r--pkgs/tools/networking/croc/default.nix7
-rw-r--r--pkgs/tools/networking/croc/test-local-relay.nix7
-rw-r--r--pkgs/tools/networking/curl-impersonate/default.nix2
-rw-r--r--pkgs/tools/networking/curl/default.nix9
-rw-r--r--pkgs/tools/networking/dae/default.nix8
-rw-r--r--pkgs/tools/networking/ddns-go/default.nix6
-rw-r--r--pkgs/tools/networking/decode-spam-headers/default.nix2
-rw-r--r--pkgs/tools/networking/dhcpcd/default.nix13
-rw-r--r--pkgs/tools/networking/dhcpdump/default.nix2
-rw-r--r--pkgs/tools/networking/dirb/default.nix2
-rw-r--r--pkgs/tools/networking/djbdns/default.nix2
-rw-r--r--pkgs/tools/networking/dnscrypt-proxy/default.nix2
-rw-r--r--pkgs/tools/networking/dnscrypt-wrapper/default.nix2
-rw-r--r--pkgs/tools/networking/dnsmasq/default.nix2
-rw-r--r--pkgs/tools/networking/dnsproxy/default.nix6
-rw-r--r--pkgs/tools/networking/dropbear/default.nix2
-rw-r--r--pkgs/tools/networking/edgedb/0001-dynamically-patchelf-binaries.patch8
-rw-r--r--pkgs/tools/networking/edgedb/Cargo.lock1919
-rw-r--r--pkgs/tools/networking/edgedb/default.nix76
-rw-r--r--pkgs/tools/networking/eggdrop/default.nix2
-rw-r--r--pkgs/tools/networking/eternal-terminal/default.nix4
-rw-r--r--pkgs/tools/networking/findomain/default.nix2
-rw-r--r--pkgs/tools/networking/flannel/default.nix6
-rw-r--r--pkgs/tools/networking/frp/default.nix6
-rw-r--r--pkgs/tools/networking/ghz/default.nix6
-rw-r--r--pkgs/tools/networking/globalping-cli/default.nix2
-rw-r--r--pkgs/tools/networking/gnirehtet/default.nix2
-rw-r--r--pkgs/tools/networking/gobgp/default.nix6
-rw-r--r--pkgs/tools/networking/goflow/default.nix2
-rw-r--r--pkgs/tools/networking/goodhosts/default.nix2
-rw-r--r--pkgs/tools/networking/gost/default.nix2
-rw-r--r--pkgs/tools/networking/grpc_cli/default.nix6
-rw-r--r--pkgs/tools/networking/grpcui/default.nix2
-rw-r--r--pkgs/tools/networking/guardian-agent/default.nix47
-rw-r--r--pkgs/tools/networking/guardian-agent/deps.nix58
-rw-r--r--pkgs/tools/networking/gvpe/default.nix2
-rw-r--r--pkgs/tools/networking/hblock/default.nix4
-rw-r--r--pkgs/tools/networking/hostapd-mana/default.nix2
-rw-r--r--pkgs/tools/networking/hp2p/default.nix2
-rw-r--r--pkgs/tools/networking/hping/default.nix2
-rw-r--r--pkgs/tools/networking/http-prompt/default.nix2
-rw-r--r--pkgs/tools/networking/http2tcp/default.nix2
-rw-r--r--pkgs/tools/networking/httperf/default.nix2
-rw-r--r--pkgs/tools/networking/httping/default.nix63
-rw-r--r--pkgs/tools/networking/httplz/default.nix2
-rw-r--r--pkgs/tools/networking/hysteria/default.nix8
-rw-r--r--pkgs/tools/networking/ifwifi/default.nix2
-rw-r--r--pkgs/tools/networking/igmpproxy/default.nix2
-rw-r--r--pkgs/tools/networking/innernet/default.nix2
-rw-r--r--pkgs/tools/networking/iodine/default.nix22
-rw-r--r--pkgs/tools/networking/iperf3d/default.nix2
-rw-r--r--pkgs/tools/networking/juicity/default.nix2
-rw-r--r--pkgs/tools/networking/jwhois/default.nix2
-rw-r--r--pkgs/tools/networking/kapp/default.nix4
-rw-r--r--pkgs/tools/networking/kea/default.nix4
-rw-r--r--pkgs/tools/networking/keepalived/default.nix4
-rw-r--r--pkgs/tools/networking/knock/package.nix2
-rw-r--r--pkgs/tools/networking/lftp/default.nix2
-rw-r--r--pkgs/tools/networking/libnids/default.nix2
-rw-r--r--pkgs/tools/networking/libreswan/default.nix2
-rw-r--r--pkgs/tools/networking/ligolo-ng/default.nix3
-rw-r--r--pkgs/tools/networking/logmein-hamachi/default.nix2
-rw-r--r--pkgs/tools/networking/lychee/default.nix15
-rw-r--r--pkgs/tools/networking/lychee/tests/fail-emptyDirectory.nix28
-rw-r--r--pkgs/tools/networking/lychee/tests/fail.nix21
-rw-r--r--pkgs/tools/networking/lychee/tests/network.nix66
-rw-r--r--pkgs/tools/networking/lychee/tests/ok.nix12
-rw-r--r--pkgs/tools/networking/maubot/default.nix2
-rw-r--r--pkgs/tools/networking/mdk4/default.nix2
-rw-r--r--pkgs/tools/networking/minio-client/default.nix8
-rw-r--r--pkgs/tools/networking/miniupnpc/default.nix16
-rw-r--r--pkgs/tools/networking/miniupnpd/default.nix2
-rw-r--r--pkgs/tools/networking/mockoon/default.nix2
-rw-r--r--pkgs/tools/networking/modemmanager/default.nix32
-rw-r--r--pkgs/tools/networking/moodle-dl/default.nix29
-rw-r--r--pkgs/tools/networking/motrix/default.nix2
-rw-r--r--pkgs/tools/networking/mtr/default.nix2
-rw-r--r--pkgs/tools/networking/mu/default.nix2
-rw-r--r--pkgs/tools/networking/muffet/default.nix2
-rw-r--r--pkgs/tools/networking/mutt-ics/default.nix2
-rw-r--r--pkgs/tools/networking/namespaced-openvpn/default.nix2
-rw-r--r--pkgs/tools/networking/narrowlink/default.nix2
-rw-r--r--pkgs/tools/networking/ndisc6/default.nix2
-rw-r--r--pkgs/tools/networking/ndjbdns/default.nix2
-rw-r--r--pkgs/tools/networking/nebula/default.nix4
-rw-r--r--pkgs/tools/networking/netassert/default.nix2
-rw-r--r--pkgs/tools/networking/netbird/default.nix6
-rw-r--r--pkgs/tools/networking/netdiscover/default.nix2
-rw-r--r--pkgs/tools/networking/nethogs/default.nix2
-rw-r--r--pkgs/tools/networking/netmask/default.nix2
-rw-r--r--pkgs/tools/networking/netselect/default.nix2
-rw-r--r--pkgs/tools/networking/networkmanager/default.nix4
-rw-r--r--pkgs/tools/networking/networkmanager/fix-paths.patch26
-rw-r--r--pkgs/tools/networking/networkmanager/iodine/default.nix70
-rw-r--r--pkgs/tools/networking/nexttrace/default.nix8
-rw-r--r--pkgs/tools/networking/nss-mdns/default.nix2
-rw-r--r--pkgs/tools/networking/ntp/default.nix2
-rw-r--r--pkgs/tools/networking/ntpd-rs/default.nix2
-rw-r--r--pkgs/tools/networking/ntttcp/default.nix2
-rw-r--r--pkgs/tools/networking/nxdomain/default.nix2
-rw-r--r--pkgs/tools/networking/nzbget/default.nix3
-rw-r--r--pkgs/tools/networking/ockam/default.nix6
-rw-r--r--pkgs/tools/networking/oha/default.nix6
-rw-r--r--pkgs/tools/networking/olsrd/default.nix2
-rw-r--r--pkgs/tools/networking/oneshot/default.nix6
-rw-r--r--pkgs/tools/networking/onetun/default.nix2
-rw-r--r--pkgs/tools/networking/oonf-olsrd2/default.nix2
-rw-r--r--pkgs/tools/networking/ooniprobe-cli/default.nix8
-rw-r--r--pkgs/tools/networking/opendrop/default.nix2
-rw-r--r--pkgs/tools/networking/openfortivpn/default.nix4
-rw-r--r--pkgs/tools/networking/openresolv/default.nix4
-rw-r--r--pkgs/tools/networking/openssh/common.nix13
-rw-r--r--pkgs/tools/networking/openssh/copyid.nix2
-rw-r--r--pkgs/tools/networking/openvpn/default.nix2
-rw-r--r--pkgs/tools/networking/owl/default.nix2
-rw-r--r--pkgs/tools/networking/p2p/gtk-gnutella/default.nix2
-rw-r--r--pkgs/tools/networking/pacparser/default.nix2
-rw-r--r--pkgs/tools/networking/passh/default.nix2
-rw-r--r--pkgs/tools/networking/pgrok/build-deps/package.json38
-rwxr-xr-xpkgs/tools/networking/pgrok/update.sh40
-rw-r--r--pkgs/tools/networking/pgrok/web.nix30
-rw-r--r--pkgs/tools/networking/phantomsocks/default.nix15
-rw-r--r--pkgs/tools/networking/photon/default.nix2
-rw-r--r--pkgs/tools/networking/pirate-get/default.nix2
-rw-r--r--pkgs/tools/networking/pixiecore/default.nix2
-rw-r--r--pkgs/tools/networking/pixiewps/default.nix2
-rw-r--r--pkgs/tools/networking/pmacct/default.nix2
-rw-r--r--pkgs/tools/networking/popura/default.nix2
-rw-r--r--pkgs/tools/networking/pptpd/default.nix2
-rw-r--r--pkgs/tools/networking/prettyping/default.nix2
-rw-r--r--pkgs/tools/networking/proxychains-ng/default.nix2
-rw-r--r--pkgs/tools/networking/q/default.nix2
-rw-r--r--pkgs/tools/networking/quickserve/default.nix2
-rw-r--r--pkgs/tools/networking/radsecproxy/default.nix2
-rw-r--r--pkgs/tools/networking/ratman/default.nix2
-rw-r--r--pkgs/tools/networking/ratools/default.nix2
-rw-r--r--pkgs/tools/networking/redfang/default.nix2
-rw-r--r--pkgs/tools/networking/redir/default.nix2
-rw-r--r--pkgs/tools/networking/redli/default.nix2
-rw-r--r--pkgs/tools/networking/rewrk/default.nix2
-rw-r--r--pkgs/tools/networking/rosenpass/tools.nix2
-rw-r--r--pkgs/tools/networking/rtptools/default.nix2
-rw-r--r--pkgs/tools/networking/s3rs/default.nix2
-rw-r--r--pkgs/tools/networking/shadowsocks-libev/default.nix2
-rw-r--r--pkgs/tools/networking/shadowsocks-rust/default.nix8
-rw-r--r--pkgs/tools/networking/shorewall/default.nix2
-rw-r--r--pkgs/tools/networking/simpleproxy/default.nix2
-rw-r--r--pkgs/tools/networking/sing-box/default.nix10
-rw-r--r--pkgs/tools/networking/sish/default.nix4
-rw-r--r--pkgs/tools/networking/sitespeed-io/default.nix8
-rw-r--r--pkgs/tools/networking/snmpcheck/default.nix1
-rw-r--r--pkgs/tools/networking/srelay/default.nix2
-rw-r--r--pkgs/tools/networking/ssldump/default.nix2
-rw-r--r--pkgs/tools/networking/stevenblack-blocklist/default.nix5
-rw-r--r--pkgs/tools/networking/swagger-codegen3/default.nix4
-rw-r--r--pkgs/tools/networking/swaks/default.nix2
-rw-r--r--pkgs/tools/networking/tcpreplay/default.nix2
-rw-r--r--pkgs/tools/networking/tcptraceroute/default.nix2
-rw-r--r--pkgs/tools/networking/teavpn2/default.nix2
-rw-r--r--pkgs/tools/networking/termscp/default.nix2
-rw-r--r--pkgs/tools/networking/termshark/default.nix2
-rw-r--r--pkgs/tools/networking/tgt/default.nix4
-rw-r--r--pkgs/tools/networking/tinyfecvpn/default.nix2
-rw-r--r--pkgs/tools/networking/tinyproxy/default.nix2
-rw-r--r--pkgs/tools/networking/tinystatus/default.nix2
-rw-r--r--pkgs/tools/networking/tox-node/default.nix2
-rw-r--r--pkgs/tools/networking/toxvpn/default.nix2
-rw-r--r--pkgs/tools/networking/tracebox/default.nix2
-rw-r--r--pkgs/tools/networking/trippy/default.nix2
-rw-r--r--pkgs/tools/networking/trurl/default.nix2
-rw-r--r--pkgs/tools/networking/twa/default.nix2
-rw-r--r--pkgs/tools/networking/udp2raw/default.nix2
-rw-r--r--pkgs/tools/networking/urlwatch/default.nix2
-rw-r--r--pkgs/tools/networking/userhosts/default.nix2
-rw-r--r--pkgs/tools/networking/v2ray/default.nix2
-rw-r--r--pkgs/tools/networking/v2raya/default.nix2
-rw-r--r--pkgs/tools/networking/veilid/default.nix2
-rw-r--r--pkgs/tools/networking/voms/default.nix2
-rw-r--r--pkgs/tools/networking/waitron/default.nix2
-rw-r--r--pkgs/tools/networking/wbox/default.nix2
-rw-r--r--pkgs/tools/networking/wgautomesh/default.nix2
-rw-r--r--pkgs/tools/networking/xray/default.nix8
-rw-r--r--pkgs/tools/networking/yrd/default.nix37
-rw-r--r--pkgs/tools/networking/zerotierone/default.nix13
-rw-r--r--pkgs/tools/nix/alejandra/default.nix2
-rw-r--r--pkgs/tools/nix/fh/default.nix2
-rw-r--r--pkgs/tools/nix/nix-melt/default.nix2
-rw-r--r--pkgs/tools/nix/nix-script/default.nix2
-rw-r--r--pkgs/tools/nix/nix-store-gcs-proxy/default.nix2
-rw-r--r--pkgs/tools/nix/nixci/default.nix10
-rw-r--r--pkgs/tools/nix/nixdoc/default.nix6
-rw-r--r--pkgs/tools/nix/nixpkgs-hammering/default.nix2
-rw-r--r--pkgs/tools/nix/nixpkgs-lint/default.nix2
-rw-r--r--pkgs/tools/package-management/apk-tools/default.nix4
-rw-r--r--pkgs/tools/package-management/appimagekit/default.nix2
-rw-r--r--pkgs/tools/package-management/apx/default.nix2
-rw-r--r--pkgs/tools/package-management/cde/default.nix2
-rw-r--r--pkgs/tools/package-management/checkinstall/default.nix2
-rw-r--r--pkgs/tools/package-management/ciel/default.nix2
-rw-r--r--pkgs/tools/package-management/disnix/DisnixWebService/default.nix2
-rw-r--r--pkgs/tools/package-management/disnix/default.nix14
-rw-r--r--pkgs/tools/package-management/disnix/dydisnix/default.nix2
-rw-r--r--pkgs/tools/package-management/dpkg/default.nix2
-rw-r--r--pkgs/tools/package-management/emplace/default.nix6
-rw-r--r--pkgs/tools/package-management/fpm/Gemfile.lock19
-rw-r--r--pkgs/tools/package-management/fpm/gemset.nix54
-rw-r--r--pkgs/tools/package-management/fusesoc/default.nix2
-rw-r--r--pkgs/tools/package-management/gx/default.nix2
-rw-r--r--pkgs/tools/package-management/gx/go/default.nix2
-rw-r--r--pkgs/tools/package-management/libdnf/default.nix4
-rw-r--r--pkgs/tools/package-management/licensee/default.nix2
-rw-r--r--pkgs/tools/package-management/lix/common.nix371
-rw-r--r--pkgs/tools/package-management/lix/default.nix8
-rw-r--r--pkgs/tools/package-management/lix/doc/default.nix7
-rw-r--r--pkgs/tools/package-management/morph/default.nix2
-rw-r--r--pkgs/tools/package-management/nfpm/default.nix2
-rw-r--r--pkgs/tools/package-management/niff/default.nix2
-rw-r--r--pkgs/tools/package-management/nix-doc/default.nix2
-rw-r--r--pkgs/tools/package-management/nix-du/default.nix2
-rw-r--r--pkgs/tools/package-management/nix-index/default.nix8
-rw-r--r--pkgs/tools/package-management/nix-serve/default.nix2
-rw-r--r--pkgs/tools/package-management/nix-top/default.nix2
-rw-r--r--pkgs/tools/package-management/nix/common.nix9
-rw-r--r--pkgs/tools/package-management/nix/default.nix21
-rw-r--r--pkgs/tools/package-management/nix/patches/boehmgc-coroutine-sp-fallback.patch11
-rw-r--r--pkgs/tools/package-management/nixpkgs-review/default.nix6
-rw-r--r--pkgs/tools/package-management/opkg/default.nix2
-rw-r--r--pkgs/tools/package-management/pacman/default.nix2
-rw-r--r--pkgs/tools/package-management/pacup/default.nix4
-rw-r--r--pkgs/tools/package-management/pdm/default.nix10
-rw-r--r--pkgs/tools/package-management/pkg/default.nix4
-rw-r--r--pkgs/tools/package-management/poetry2conda/default.nix2
-rw-r--r--pkgs/tools/package-management/protontricks/default.nix5
-rw-r--r--pkgs/tools/package-management/rpm/default.nix2
-rw-r--r--pkgs/tools/package-management/xbps/default.nix2
-rw-r--r--pkgs/tools/security/acsccid/default.nix2
-rw-r--r--pkgs/tools/security/age-plugin-ledger/default.nix2
-rw-r--r--pkgs/tools/security/age/default.nix27
-rw-r--r--pkgs/tools/security/aide/default.nix2
-rw-r--r--pkgs/tools/security/argocd-vault-plugin/default.nix8
-rw-r--r--pkgs/tools/security/arti/default.nix2
-rw-r--r--pkgs/tools/security/b2sum/default.nix2
-rw-r--r--pkgs/tools/security/bao/default.nix2
-rw-r--r--pkgs/tools/security/bettercap/default.nix2
-rw-r--r--pkgs/tools/security/beyond-identity/default.nix10
-rw-r--r--pkgs/tools/security/binbloom/default.nix4
-rw-r--r--pkgs/tools/security/bkcrack/default.nix4
-rw-r--r--pkgs/tools/security/cdxgen/default.nix6
-rw-r--r--pkgs/tools/security/cewl/default.nix1
-rw-r--r--pkgs/tools/security/cfripper/default.nix26
-rw-r--r--pkgs/tools/security/chain-bench/default.nix2
-rw-r--r--pkgs/tools/security/cherrybomb/default.nix2
-rw-r--r--pkgs/tools/security/chntpw/default.nix2
-rw-r--r--pkgs/tools/security/cnquery/default.nix6
-rw-r--r--pkgs/tools/security/cnspec/default.nix8
-rw-r--r--pkgs/tools/security/crowbar/default.nix2
-rw-r--r--pkgs/tools/security/crowdsec/default.nix8
-rw-r--r--pkgs/tools/security/ctmg/default.nix2
-rw-r--r--pkgs/tools/security/dieharder/default.nix2
-rw-r--r--pkgs/tools/security/dnsenum/default.nix2
-rw-r--r--pkgs/tools/security/doas-sudo-shim/default.nix2
-rw-r--r--pkgs/tools/security/donkey/default.nix2
-rw-r--r--pkgs/tools/security/doona/default.nix2
-rw-r--r--pkgs/tools/security/earlybird/default.nix2
-rw-r--r--pkgs/tools/security/echidna/default.nix2
-rw-r--r--pkgs/tools/security/efitools/aarch64.patch16
-rw-r--r--pkgs/tools/security/efitools/default.nix5
-rw-r--r--pkgs/tools/security/eid-mw/default.nix4
-rw-r--r--pkgs/tools/security/enc/default.nix2
-rw-r--r--pkgs/tools/security/enpass/default.nix2
-rw-r--r--pkgs/tools/security/enum4linux/default.nix2
-rw-r--r--pkgs/tools/security/evil-winrm/default.nix1
-rw-r--r--pkgs/tools/security/exploitdb/default.nix4
-rw-r--r--pkgs/tools/security/fail2ban/default.nix2
-rw-r--r--pkgs/tools/security/faraday-agent-dispatcher/default.nix17
-rw-r--r--pkgs/tools/security/firefox_decrypt/default.nix2
-rw-r--r--pkgs/tools/security/fscan/default.nix2
-rw-r--r--pkgs/tools/security/fulcio/default.nix2
-rw-r--r--pkgs/tools/security/genpass/default.nix2
-rw-r--r--pkgs/tools/security/ggshield/default.nix4
-rw-r--r--pkgs/tools/security/ghauri/default.nix14
-rw-r--r--pkgs/tools/security/ghidra/build.nix54
-rw-r--r--pkgs/tools/security/ghidra/default.nix2
-rw-r--r--pkgs/tools/security/ghidra/with-extensions.nix8
-rw-r--r--pkgs/tools/security/gitleaks/default.nix6
-rw-r--r--pkgs/tools/security/gnu-pw-mgr/default.nix2
-rw-r--r--pkgs/tools/security/gnupg-pkcs11-scd/default.nix2
-rw-r--r--pkgs/tools/security/go-cve-search/default.nix2
-rw-r--r--pkgs/tools/security/gopass/default.nix2
-rw-r--r--pkgs/tools/security/gotrue/default.nix2
-rw-r--r--pkgs/tools/security/gotrue/supabase.nix2
-rw-r--r--pkgs/tools/security/govulncheck/default.nix9
-rw-r--r--pkgs/tools/security/graphw00f/default.nix4
-rw-r--r--pkgs/tools/security/haka/default.nix2
-rw-r--r--pkgs/tools/security/hashdeep/default.nix2
-rw-r--r--pkgs/tools/security/haveged/default.nix2
-rw-r--r--pkgs/tools/security/himitsu/default.nix36
-rw-r--r--pkgs/tools/security/httpx/default.nix6
-rw-r--r--pkgs/tools/security/iaito/default.nix26
-rw-r--r--pkgs/tools/security/jwt-cli/default.nix17
-rw-r--r--pkgs/tools/security/jwt-hack/default.nix23
-rw-r--r--pkgs/tools/security/katana/default.nix2
-rw-r--r--pkgs/tools/security/kbs2/default.nix2
-rw-r--r--pkgs/tools/security/kdigger/default.nix2
-rw-r--r--pkgs/tools/security/keybase/default.nix2
-rw-r--r--pkgs/tools/security/keybase/gui.nix2
-rw-r--r--pkgs/tools/security/keybase/kbfs.nix2
-rw-r--r--pkgs/tools/security/keycard-cli/default.nix2
-rw-r--r--pkgs/tools/security/keyscope/default.nix2
-rw-r--r--pkgs/tools/security/kpcli/default.nix4
-rw-r--r--pkgs/tools/security/kubescape/default.nix6
-rw-r--r--pkgs/tools/security/kubestroyer/default.nix6
-rw-r--r--pkgs/tools/security/ldeep/default.nix11
-rw-r--r--pkgs/tools/security/libtpms/default.nix2
-rw-r--r--pkgs/tools/security/logkeys/default.nix2
-rw-r--r--pkgs/tools/security/mantra/default.nix8
-rw-r--r--pkgs/tools/security/medusa/default.nix2
-rw-r--r--pkgs/tools/security/metasploit/Gemfile2
-rw-r--r--pkgs/tools/security/metasploit/Gemfile.lock123
-rw-r--r--pkgs/tools/security/metasploit/default.nix4
-rw-r--r--pkgs/tools/security/metasploit/gemset.nix224
-rw-r--r--pkgs/tools/security/minica/default.nix6
-rw-r--r--pkgs/tools/security/minio-certgen/default.nix6
-rw-r--r--pkgs/tools/security/minisign/default.nix2
-rw-r--r--pkgs/tools/security/mkrand/default.nix2
-rw-r--r--pkgs/tools/security/mpw/default.nix2
-rw-r--r--pkgs/tools/security/networkminer/default.nix2
-rw-r--r--pkgs/tools/security/nitrokey-app2/default.nix34
-rw-r--r--pkgs/tools/security/nmap-formatter/default.nix6
-rw-r--r--pkgs/tools/security/nmap/default.nix2
-rw-r--r--pkgs/tools/security/notary/default.nix2
-rw-r--r--pkgs/tools/security/notation/default.nix6
-rw-r--r--pkgs/tools/security/nsjail/default.nix2
-rw-r--r--pkgs/tools/security/nuclei/default.nix6
-rw-r--r--pkgs/tools/security/oauth2c/default.nix6
-rw-r--r--pkgs/tools/security/opensc/default.nix1
-rw-r--r--pkgs/tools/security/osv-scanner/default.nix6
-rw-r--r--pkgs/tools/security/pass/extensions/checkup.nix2
-rw-r--r--pkgs/tools/security/pass/extensions/file.nix2
-rw-r--r--pkgs/tools/security/pass/extensions/import.nix1
-rw-r--r--pkgs/tools/security/pass/extensions/otp.nix2
-rw-r--r--pkgs/tools/security/pass/rofi-pass.nix8
-rw-r--r--pkgs/tools/security/pass/wofi-pass.nix2
-rw-r--r--pkgs/tools/security/pass2csv/default.nix2
-rw-r--r--pkgs/tools/security/pgpdump/default.nix2
-rw-r--r--pkgs/tools/security/phrasendrescher/default.nix2
-rw-r--r--pkgs/tools/security/pinentry/default.nix169
-rw-r--r--pkgs/tools/security/plasma-pass/default.nix2
-rw-r--r--pkgs/tools/security/please/default.nix2
-rw-r--r--pkgs/tools/security/proxmark3/default.nix4
-rw-r--r--pkgs/tools/security/quark-engine/default.nix4
-rw-r--r--pkgs/tools/security/radamsa/default.nix2
-rw-r--r--pkgs/tools/security/rblake2sum/default.nix2
-rw-r--r--pkgs/tools/security/rblake3sum/default.nix2
-rw-r--r--pkgs/tools/security/ripasso/cursive.nix2
-rw-r--r--pkgs/tools/security/rng-tools/default.nix6
-rw-r--r--pkgs/tools/security/ronin/default.nix2
-rw-r--r--pkgs/tools/security/rsign2/default.nix2
-rw-r--r--pkgs/tools/security/ruler/default.nix18
-rw-r--r--pkgs/tools/security/safe/default.nix2
-rw-r--r--pkgs/tools/security/saml2aws/default.nix6
-rw-r--r--pkgs/tools/security/schleuder/Gemfile1
-rw-r--r--pkgs/tools/security/schleuder/Gemfile.lock67
-rw-r--r--pkgs/tools/security/schleuder/cli/Gemfile2
-rw-r--r--pkgs/tools/security/schleuder/cli/Gemfile.lock12
-rw-r--r--pkgs/tools/security/schleuder/cli/default.nix2
-rw-r--r--pkgs/tools/security/schleuder/cli/gemset.nix10
-rw-r--r--pkgs/tools/security/schleuder/gemset.nix112
-rw-r--r--pkgs/tools/security/scorecard/default.nix13
-rw-r--r--pkgs/tools/security/secp256k1/default.nix4
-rw-r--r--pkgs/tools/security/semgrep/common.nix12
-rw-r--r--pkgs/tools/security/semgrep/default.nix1
-rw-r--r--pkgs/tools/security/sequoia-sqop/default.nix8
-rw-r--r--pkgs/tools/security/sequoia-sqv/default.nix2
-rw-r--r--pkgs/tools/security/sheesy-cli/default.nix2
-rw-r--r--pkgs/tools/security/shellnoob/default.nix2
-rw-r--r--pkgs/tools/security/sherlock/default.nix6
-rw-r--r--pkgs/tools/security/signing-party/default.nix2
-rw-r--r--pkgs/tools/security/smbmap/default.nix23
-rw-r--r--pkgs/tools/security/snowcat/default.nix2
-rw-r--r--pkgs/tools/security/solo2-cli/default.nix2
-rw-r--r--pkgs/tools/security/spectre-cli/default.nix2
-rw-r--r--pkgs/tools/security/spire/default.nix8
-rw-r--r--pkgs/tools/security/ssdeep/default.nix2
-rw-r--r--pkgs/tools/security/ssh-audit/default.nix7
-rw-r--r--pkgs/tools/security/ssh-to-pgp/default.nix6
-rw-r--r--pkgs/tools/security/sslscan/default.nix4
-rw-r--r--pkgs/tools/security/step-ca/default.nix8
-rw-r--r--pkgs/tools/security/step-kms-plugin/default.nix6
-rw-r--r--pkgs/tools/security/sudo-rs/default.nix2
-rw-r--r--pkgs/tools/security/sudo/default.nix4
-rw-r--r--pkgs/tools/security/tboot/default.nix2
-rw-r--r--pkgs/tools/security/tessen/default.nix2
-rw-r--r--pkgs/tools/security/thc-hydra/default.nix2
-rw-r--r--pkgs/tools/security/tor/default.nix4
-rw-r--r--pkgs/tools/security/tpm-quote-tools/default.nix2
-rw-r--r--pkgs/tools/security/tpm2-tools/default.nix2
-rw-r--r--pkgs/tools/security/truecrack/default.nix2
-rw-r--r--pkgs/tools/security/trufflehog/default.nix6
-rw-r--r--pkgs/tools/security/uncover/default.nix6
-rw-r--r--pkgs/tools/security/vals/default.nix8
-rw-r--r--pkgs/tools/security/vault-medusa/default.nix8
-rw-r--r--pkgs/tools/security/vault-ssh-plus/default.nix6
-rw-r--r--pkgs/tools/security/vault/default.nix8
-rw-r--r--pkgs/tools/security/vault/vault-bin.nix2
-rw-r--r--pkgs/tools/security/vexctl/default.nix2
-rw-r--r--pkgs/tools/security/volatility3/default.nix8
-rw-r--r--pkgs/tools/security/wapiti/default.nix78
-rw-r--r--pkgs/tools/security/witness/default.nix8
-rw-r--r--pkgs/tools/security/xcrawl3r/default.nix2
-rw-r--r--pkgs/tools/security/yarGen/default.nix2
-rw-r--r--pkgs/tools/security/yaralyzer/default.nix33
-rw-r--r--pkgs/tools/security/yersinia/default.nix4
-rw-r--r--pkgs/tools/security/yubikey-agent/default.nix2
-rw-r--r--pkgs/tools/security/yubikey-touch-detector/default.nix2
-rw-r--r--pkgs/tools/security/zeekscript/default.nix2
-rw-r--r--pkgs/tools/security/zmap/default.nix8
-rw-r--r--pkgs/tools/system/actkbd/default.nix2
-rw-r--r--pkgs/tools/system/at/default.nix2
-rw-r--r--pkgs/tools/system/auto-cpufreq/default.nix49
-rw-r--r--pkgs/tools/system/auto-cpufreq/prevent-update.patch60
-rw-r--r--pkgs/tools/system/automatic-timezoned/default.nix6
-rw-r--r--pkgs/tools/system/bfs/default.nix2
-rw-r--r--pkgs/tools/system/bottom/default.nix2
-rw-r--r--pkgs/tools/system/btop/default.nix2
-rw-r--r--pkgs/tools/system/consul-template/default.nix6
-rw-r--r--pkgs/tools/system/das_watchdog/default.nix2
-rw-r--r--pkgs/tools/system/dcfldd/default.nix2
-rw-r--r--pkgs/tools/system/dd_rescue/default.nix2
-rw-r--r--pkgs/tools/system/ddh/default.nix2
-rw-r--r--pkgs/tools/system/ddrescueview/default.nix2
-rw-r--r--pkgs/tools/system/ddrutility/default.nix2
-rw-r--r--pkgs/tools/system/dool/default.nix4
-rw-r--r--pkgs/tools/system/efibootmgr/default.nix2
-rw-r--r--pkgs/tools/system/epilys-bb/default.nix2
-rw-r--r--pkgs/tools/system/fcron/default.nix2
-rw-r--r--pkgs/tools/system/fdisk/default.nix2
-rw-r--r--pkgs/tools/system/go-audit/default.nix2
-rw-r--r--pkgs/tools/system/gopsuinfo/default.nix2
-rw-r--r--pkgs/tools/system/gotop/default.nix2
-rw-r--r--pkgs/tools/system/gptman/default.nix2
-rw-r--r--pkgs/tools/system/gt5/default.nix2
-rw-r--r--pkgs/tools/system/honcho/default.nix2
-rw-r--r--pkgs/tools/system/htop/default.nix2
-rw-r--r--pkgs/tools/system/htop/htop-vim.nix2
-rw-r--r--pkgs/tools/system/incron/default.nix2
-rw-r--r--pkgs/tools/system/inxi/default.nix2
-rw-r--r--pkgs/tools/system/ipmiutil/default.nix2
-rw-r--r--pkgs/tools/system/java-service-wrapper/default.nix4
-rw-r--r--pkgs/tools/system/jobber/default.nix2
-rw-r--r--pkgs/tools/system/jsvc/default.nix6
-rw-r--r--pkgs/tools/system/kanata/default.nix2
-rw-r--r--pkgs/tools/system/localtime/default.nix2
-rw-r--r--pkgs/tools/system/logrotate/default.nix4
-rw-r--r--pkgs/tools/system/memtester/default.nix2
-rw-r--r--pkgs/tools/system/minijail/default.nix10
-rw-r--r--pkgs/tools/system/minijail/tools.nix2
-rw-r--r--pkgs/tools/system/monit/default.nix4
-rw-r--r--pkgs/tools/system/nsc/default.nix2
-rw-r--r--pkgs/tools/system/nvitop/default.nix2
-rw-r--r--pkgs/tools/system/nvtop/build-nvtop.nix2
-rw-r--r--pkgs/tools/system/opencl-info/default.nix38
-rw-r--r--pkgs/tools/system/opencl-info/opencl-info-clhpp2.diff22
-rw-r--r--pkgs/tools/system/openipmi/default.nix6
-rw-r--r--pkgs/tools/system/openseachest/default.nix2
-rw-r--r--pkgs/tools/system/pciutils/default.nix2
-rw-r--r--pkgs/tools/system/pdisk/default.nix2
-rw-r--r--pkgs/tools/system/rex/default.nix2
-rw-r--r--pkgs/tools/system/runitor/default.nix2
-rw-r--r--pkgs/tools/system/sleuthkit/default.nix2
-rw-r--r--pkgs/tools/system/stress-ng/default.nix3
-rw-r--r--pkgs/tools/system/supervise/default.nix2
-rw-r--r--pkgs/tools/system/thinkfan/default.nix2
-rw-r--r--pkgs/tools/system/wsysmon/default.nix2
-rw-r--r--pkgs/tools/system/zps/default.nix2
-rw-r--r--pkgs/tools/system/zx/default.nix16
-rw-r--r--pkgs/tools/text/a2ps/default.nix2
-rw-r--r--pkgs/tools/text/align/default.nix2
-rw-r--r--pkgs/tools/text/amber/default.nix2
-rw-r--r--pkgs/tools/text/anew/default.nix2
-rw-r--r--pkgs/tools/text/angle-grinder/default.nix6
-rw-r--r--pkgs/tools/text/ansifilter/default.nix2
-rw-r--r--pkgs/tools/text/ascii/default.nix25
-rw-r--r--pkgs/tools/text/autocorrect/default.nix2
-rw-r--r--pkgs/tools/text/bashblog/default.nix2
-rw-r--r--pkgs/tools/text/boxes/default.nix2
-rw-r--r--pkgs/tools/text/cconv/default.nix2
-rw-r--r--pkgs/tools/text/choose/default.nix2
-rw-r--r--pkgs/tools/text/chroma/default.nix2
-rw-r--r--pkgs/tools/text/clima/default.nix2
-rw-r--r--pkgs/tools/text/cmigemo/default.nix2
-rw-r--r--pkgs/tools/text/comrak/default.nix2
-rw-r--r--pkgs/tools/text/convertlit/default.nix2
-rw-r--r--pkgs/tools/text/crowdin-cli/default.nix6
-rw-r--r--pkgs/tools/text/csvdiff/default.nix2
-rw-r--r--pkgs/tools/text/csview/default.nix2
-rw-r--r--pkgs/tools/text/d2/default.nix2
-rw-r--r--pkgs/tools/text/diffsitter/default.nix2
-rw-r--r--pkgs/tools/text/difftastic/Cargo.lock501
-rw-r--r--pkgs/tools/text/difftastic/default.nix23
-rw-r--r--pkgs/tools/text/diffutils/default.nix4
-rw-r--r--pkgs/tools/text/epub2txt2/default.nix6
-rw-r--r--pkgs/tools/text/fanficfare/default.nix6
-rw-r--r--pkgs/tools/text/fastmod/default.nix2
-rw-r--r--pkgs/tools/text/frawk/default.nix2
-rw-r--r--pkgs/tools/text/frogmouth/default.nix2
-rw-r--r--pkgs/tools/text/gawk/default.nix5
-rw-r--r--pkgs/tools/text/glogg/default.nix2
-rw-r--r--pkgs/tools/text/gnugrep/default.nix5
-rw-r--r--pkgs/tools/text/gnused/default.nix4
-rw-r--r--pkgs/tools/text/goawk/default.nix2
-rw-r--r--pkgs/tools/text/grin/default.nix2
-rw-r--r--pkgs/tools/text/groff/default.nix2
-rw-r--r--pkgs/tools/text/gucci/default.nix2
-rw-r--r--pkgs/tools/text/hck/default.nix2
-rw-r--r--pkgs/tools/text/hcledit/default.nix2
-rw-r--r--pkgs/tools/text/highlight/default.nix4
-rw-r--r--pkgs/tools/text/html-tidy/default.nix2
-rw-r--r--pkgs/tools/text/html2text/default.nix31
-rw-r--r--pkgs/tools/text/ispell/default.nix2
-rw-r--r--pkgs/tools/text/jen/default.nix2
-rw-r--r--pkgs/tools/text/jotdown/default.nix2
-rw-r--r--pkgs/tools/text/jumanpp/default.nix2
-rw-r--r--pkgs/tools/text/kdiff3/default.nix4
-rw-r--r--pkgs/tools/text/languagetool/default.nix2
-rw-r--r--pkgs/tools/text/link-grammar/default.nix2
-rw-r--r--pkgs/tools/text/mark/default.nix2
-rw-r--r--pkgs/tools/text/markdownlint-cli/default.nix6
-rw-r--r--pkgs/tools/text/markdownlint-cli2/default.nix2
-rw-r--r--pkgs/tools/text/mdbook-admonish/default.nix8
-rw-r--r--pkgs/tools/text/mdbook-footnote/default.nix2
-rw-r--r--pkgs/tools/text/mdbook-graphviz/default.nix8
-rw-r--r--pkgs/tools/text/mdbook-i18n-helpers/default.nix6
-rw-r--r--pkgs/tools/text/mdbook-katex/default.nix8
-rw-r--r--pkgs/tools/text/mdbook-linkcheck/default.nix2
-rw-r--r--pkgs/tools/text/mdbook-mermaid/default.nix2
-rw-r--r--pkgs/tools/text/mdbook-pdf/default.nix2
-rw-r--r--pkgs/tools/text/mdbook-toc/default.nix2
-rw-r--r--pkgs/tools/text/opencc/default.nix2
-rw-r--r--pkgs/tools/text/paperoni/default.nix2
-rw-r--r--pkgs/tools/text/percollate/default.nix10
-rw-r--r--pkgs/tools/text/pinyin-tool/default.nix2
-rw-r--r--pkgs/tools/text/platinum-searcher/default.nix2
-rw-r--r--pkgs/tools/text/pn/default.nix2
-rw-r--r--pkgs/tools/text/pomsky/default.nix2
-rw-r--r--pkgs/tools/text/popfile/default.nix2
-rw-r--r--pkgs/tools/text/proselint/default.nix2
-rw-r--r--pkgs/tools/text/rare-regex/default.nix6
-rw-r--r--pkgs/tools/text/repgrep/default.nix2
-rw-r--r--pkgs/tools/text/replace/default.nix2
-rw-r--r--pkgs/tools/text/rgxg/default.nix2
-rw-r--r--pkgs/tools/text/riffdiff/default.nix2
-rw-r--r--pkgs/tools/text/ripgrep/default.nix2
-rw-r--r--pkgs/tools/text/rnr/default.nix2
-rw-r--r--pkgs/tools/text/runiq/default.nix2
-rw-r--r--pkgs/tools/text/sad/default.nix6
-rw-r--r--pkgs/tools/text/scraper/default.nix2
-rw-r--r--pkgs/tools/text/seehecht/default.nix2
-rw-r--r--pkgs/tools/text/sgml/openjade/default.nix2
-rw-r--r--pkgs/tools/text/sgml/opensp/default.nix2
-rw-r--r--pkgs/tools/text/sgrep/default.nix2
-rw-r--r--pkgs/tools/text/shab/default.nix2
-rw-r--r--pkgs/tools/text/shfmt/default.nix2
-rw-r--r--pkgs/tools/text/shocco/default.nix2
-rw-r--r--pkgs/tools/text/sift/default.nix2
-rw-r--r--pkgs/tools/text/silver-searcher/default.nix2
-rw-r--r--pkgs/tools/text/teip/default.nix7
-rw-r--r--pkgs/tools/text/termbook/default.nix2
-rw-r--r--pkgs/tools/text/tesh/default.nix2
-rw-r--r--pkgs/tools/text/textpieces/default.nix86
-rw-r--r--pkgs/tools/text/tidy-viewer/default.nix2
-rw-r--r--pkgs/tools/text/tml/default.nix2
-rw-r--r--pkgs/tools/text/unrtf/default.nix2
-rw-r--r--pkgs/tools/text/untex/default.nix2
-rw-r--r--pkgs/tools/text/vale/default.nix8
-rw-r--r--pkgs/tools/text/vale/styles.nix24
-rw-r--r--pkgs/tools/text/validator-nu/default.nix1
-rw-r--r--pkgs/tools/text/wrap/default.nix2
-rw-r--r--pkgs/tools/text/xidel/default.nix2
-rw-r--r--pkgs/tools/text/xml/jing-trang/default.nix2
-rw-r--r--pkgs/tools/text/xml/rxp/default.nix2
-rw-r--r--pkgs/tools/text/xml/xmlformat/default.nix2
-rw-r--r--pkgs/tools/text/xml/xmlstarlet/default.nix2
-rw-r--r--pkgs/tools/text/xsv/default.nix2
-rw-r--r--pkgs/tools/typesetting/asciidoctor-with-extensions/default.nix2
-rw-r--r--pkgs/tools/typesetting/asciidoctor/default.nix2
-rw-r--r--pkgs/tools/typesetting/asciidoctorj/default.nix4
-rw-r--r--pkgs/tools/typesetting/hevea/default.nix2
-rw-r--r--pkgs/tools/typesetting/kramdown-asciidoc/default.nix2
-rw-r--r--pkgs/tools/typesetting/marp/default.nix6
-rw-r--r--pkgs/tools/typesetting/mmark/default.nix2
-rw-r--r--pkgs/tools/typesetting/multimarkdown/default.nix2
-rw-r--r--pkgs/tools/typesetting/pdf2djvu/default.nix1
-rw-r--r--pkgs/tools/typesetting/pdfchain/default.nix2
-rw-r--r--pkgs/tools/typesetting/pulldown-cmark/default.nix2
-rw-r--r--pkgs/tools/typesetting/satysfi/default.nix2
-rw-r--r--pkgs/tools/typesetting/sile/default.nix2
-rw-r--r--pkgs/tools/typesetting/skribilo/default.nix2
-rw-r--r--pkgs/tools/typesetting/sshlatex/default.nix2
-rw-r--r--pkgs/tools/typesetting/tex/advi/default.nix2
-rw-r--r--pkgs/tools/typesetting/tex/blahtexml/default.nix2
-rw-r--r--pkgs/tools/typesetting/tex/catdvi/default.nix2
-rw-r--r--pkgs/tools/typesetting/tex/dblatex/default.nix2
-rw-r--r--pkgs/tools/typesetting/tex/latexrun/default.nix2
-rw-r--r--pkgs/tools/typesetting/tex/pgf-tikz/pgf-1.x.nix2
-rw-r--r--pkgs/tools/typesetting/tex/pgf-tikz/pgf-2.x.nix2
-rw-r--r--pkgs/tools/typesetting/tex/pgf-tikz/pgf-3.x.nix2
-rw-r--r--pkgs/tools/typesetting/tex/tetex/default.nix7
-rw-r--r--pkgs/tools/typesetting/tex/texlive/bin.nix2
-rw-r--r--pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix49
-rw-r--r--pkgs/tools/typesetting/tex/texpresso/default.nix6
-rw-r--r--pkgs/tools/typesetting/tex/texpresso/tectonic.nix4
-rw-r--r--pkgs/tools/typesetting/tikzit/default.nix2
-rw-r--r--pkgs/tools/video/atomicparsley/default.nix2
-rw-r--r--pkgs/tools/video/bento4/default.nix6
-rw-r--r--pkgs/tools/video/go2rtc/default.nix8
-rw-r--r--pkgs/tools/video/mjpegtools/default.nix2
-rwxr-xr-xpkgs/tools/video/recyclarr/update.sh23
-rw-r--r--pkgs/tools/video/replay-sorcery/default.nix2
-rw-r--r--pkgs/tools/video/swfmill/default.nix2
-rw-r--r--pkgs/tools/video/tsduck/default.nix2
-rw-r--r--pkgs/tools/video/xjadeo/default.nix2
-rw-r--r--pkgs/tools/virtualization/amazon-ecs-cli/default.nix2
-rw-r--r--pkgs/tools/virtualization/awsebcli/default.nix2
-rw-r--r--pkgs/tools/virtualization/govc/default.nix6
-rw-r--r--pkgs/tools/virtualization/jumppad/default.nix6
-rw-r--r--pkgs/tools/virtualization/kubevirt/default.nix4
-rw-r--r--pkgs/tools/virtualization/linode-cli/default.nix2
-rw-r--r--pkgs/tools/virtualization/mkosi/default.nix1
-rw-r--r--pkgs/tools/virtualization/nixos-shell/default.nix4
-rw-r--r--pkgs/tools/wayland/cliphist/default.nix10
-rw-r--r--pkgs/tools/wayland/clipman/default.nix2
-rw-r--r--pkgs/tools/wayland/gnome-randr/default.nix2
-rw-r--r--pkgs/tools/wayland/kanshi/default.nix4
-rw-r--r--pkgs/tools/wayland/mpvpaper/default.nix2
-rw-r--r--pkgs/tools/wayland/oguri/default.nix2
-rw-r--r--pkgs/tools/wayland/shikane/default.nix8
-rw-r--r--pkgs/tools/wayland/shotman/default.nix8
-rw-r--r--pkgs/tools/wayland/swayr/default.nix2
-rw-r--r--pkgs/tools/wayland/waylogout/default.nix2
-rw-r--r--pkgs/tools/wayland/waynergy/default.nix2
-rw-r--r--pkgs/tools/wayland/wl-clipboard-x11/default.nix2
-rw-r--r--pkgs/tools/wayland/wl-mirror/default.nix6
-rw-r--r--pkgs/tools/wayland/wleave/default.nix2
-rw-r--r--pkgs/tools/wayland/wlprop/default.nix2
-rw-r--r--pkgs/tools/wayland/wlr-randr/default.nix2
-rw-r--r--pkgs/tools/wayland/wlr-which-key/default.nix6
-rw-r--r--pkgs/tools/wayland/wluma/default.nix23
-rw-r--r--pkgs/tools/wayland/wob/default.nix2
-rw-r--r--pkgs/top-level/aliases.nix87
-rw-r--r--pkgs/top-level/all-packages.nix845
-rw-r--r--pkgs/top-level/beam-packages.nix41
-rw-r--r--pkgs/top-level/darwin-aliases.nix1
-rw-r--r--pkgs/top-level/dotnet-packages.nix2
-rw-r--r--pkgs/top-level/haskell-packages.nix4
-rw-r--r--pkgs/top-level/kodi-packages.nix10
-rw-r--r--pkgs/top-level/linux-kernels.nix10
-rw-r--r--pkgs/top-level/lua-packages.nix4
-rw-r--r--pkgs/top-level/make-tarball.nix3
-rw-r--r--pkgs/top-level/nim-overrides.nix23
-rw-r--r--pkgs/top-level/nixpkgs-basic-release-checks.nix2
-rw-r--r--pkgs/top-level/ocaml-packages.nix18
-rw-r--r--pkgs/top-level/perl-packages.nix420
-rw-r--r--pkgs/top-level/php-packages.nix7
-rw-r--r--pkgs/top-level/python-aliases.nix15
-rw-r--r--pkgs/top-level/python-packages.nix232
-rw-r--r--pkgs/top-level/release-cross.nix1
-rw-r--r--pkgs/top-level/release-haskell.nix54
-rw-r--r--pkgs/top-level/release-lib.nix3
-rw-r--r--pkgs/top-level/release.nix3
-rw-r--r--pkgs/top-level/ruby-packages.nix8
-rw-r--r--pkgs/top-level/stage.nix6
11949 files changed, 194523 insertions, 94436 deletions
diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs
index 3ce4c34c30f32..f079fba5eaac3 100644
--- a/.git-blame-ignore-revs
+++ b/.git-blame-ignore-revs
@@ -109,6 +109,10 @@ fb0e5be84331188a69b3edd31679ca6576edb75a
 # postgresql: move packages.nix to ext/default.nix
 719034f6f6749d624faa28dff259309fc0e3e730
 
+# php ecosystem: reformat with nixfmt-rfc-style
+75ae7621330ff8db944ce4dff4374e182d5d151f
+c759efa5e7f825913f9a69ef20f025f50f56dc4d
+
 # pkgs/os-specific/bsd: Reformat with nixfmt-rfc-style 2024-03-01
 3fe3b055adfc020e6a923c466b6bcd978a13069a
 
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 47d5d399f1983..30df10e80de3c 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -67,8 +67,8 @@
 /nixos/lib/make-disk-image.nix                 @raitobezarius
 
 # Nix, the package manager
-pkgs/tools/package-management/nix/                    @raitobezarius @ma27
-nixos/modules/installer/tools/nix-fallback-paths.nix  @raitobezarius @ma27
+pkgs/tools/package-management/nix/                    @raitobezarius
+nixos/modules/installer/tools/nix-fallback-paths.nix  @raitobezarius
 
 # Nixpkgs documentation
 /maintainers/scripts/db-to-md.sh @jtojnar @ryantm
@@ -152,6 +152,7 @@ nixos/modules/installer/tools/nix-fallback-paths.nix  @raitobezarius @ma27
 
 # C compilers
 /pkgs/development/compilers/gcc
+/pkgs/development/compilers/llvm @RossComputerGuy
 /pkgs/development/compilers/emscripten @raitobezarius
 /doc/languages-frameworks/emscripten.section.md @raitobezarius
 
@@ -306,8 +307,8 @@ nixos/modules/services/networking/networkmanager.nix @Janik-Haag
 /pkgs/applications/networking/cluster/terraform-providers @zowoq
 
 # Forgejo
-nixos/modules/services/misc/forgejo.nix      @bendlas @emilylange
-pkgs/applications/version-management/forgejo @bendlas @emilylange
+nixos/modules/services/misc/forgejo.nix @adamcstephens @bendlas @emilylange
+pkgs/by-name/fo/forgejo/package.nix     @adamcstephens @bendlas @emilylange
 
 # Dotnet
 /pkgs/build-support/dotnet                  @IvarWithoutBones
@@ -363,3 +364,16 @@ pkgs/by-name/lx/lxc*                    @adamcstephens
 pkgs/by-name/lx/lxd*                    @adamcstephens
 pkgs/os-specific/linux/lxc/             @adamcstephens
 
+# ExpidusOS, Flutter
+/pkgs/development/compilers/flutter @RossComputerGuy
+/pkgs/desktops/expidus              @RossComputerGuy
+
+# GNU Tar & Zip
+/pkgs/tools/archivers/gnutar        @RossComputerGuy
+/pkgs/tools/archivers/zip           @RossComputerGuy
+
+# SELinux
+/pkgs/os-specific/linux/checkpolicy @RossComputerGuy
+/pkgs/os-specific/linux/libselinux  @RossComputerGuy
+/pkgs/os-specific/linux/libsepol    @RossComputerGuy
+
diff --git a/.github/labeler.yml b/.github/labeler.yml
index 57086953f8d03..90c25048299e8 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -16,6 +16,17 @@
         - nixos/modules/services/x11/desktop-managers/cinnamon.nix
         - nixos/tests/cinnamon.nix
 
+"6.topic: dotnet":
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - doc/languages-frameworks/dotnet.section.md
+        - maintainers/scripts/update-dotnet-lockfiles.nix
+        - pkgs/build-support/dotnet/**/*
+        - pkgs/development/compilers/dotnet/**/*
+        - pkgs/test/dotnet/**/*
+        - pkgs/top-level/dotnet-packages.nix
+
 "6.topic: emacs":
   - any:
     - changed-files:
@@ -134,6 +145,12 @@
       - any-glob-to-any-file:
         - lib/**
 
+"6.topic: llvm/clang":
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - pkgs/development/compilers/llvm/*
+
 "6.topic: lua":
   - any:
     - changed-files:
@@ -201,6 +218,7 @@
         - pkgs/development/node-packages/**/*
         - pkgs/development/tools/yarn/*
         - pkgs/development/tools/yarn2nix-moretea/**/*
+        - pkgs/development/tools/pnpm/**/*
         - pkgs/development/web/nodejs/*
 
 "6.topic: ocaml":
diff --git a/.github/workflows/basic-eval.yml b/.github/workflows/basic-eval.yml
index 1f787397f2611..a5ada7a6e210f 100644
--- a/.github/workflows/basic-eval.yml
+++ b/.github/workflows/basic-eval.yml
@@ -20,7 +20,7 @@ jobs:
     steps:
     - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
     - uses: cachix/install-nix-action@8887e596b4ee1134dae06b98d573bd674693f47c # v26
-    - uses: cachix/cachix-action@18cf96c7c98e048e10a83abd92116114cd8504be # v14
+    - uses: cachix/cachix-action@ad2ddac53f961de1989924296a1f236fcfbaa4fc # v15
       with:
         # This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
         name: nixpkgs-ci
diff --git a/.github/workflows/check-by-name.yml b/.github/workflows/check-by-name.yml
index e857c88f746d3..ce7802f4aa8ee 100644
--- a/.github/workflows/check-by-name.yml
+++ b/.github/workflows/check-by-name.yml
@@ -14,16 +14,16 @@ on:
     # While `edited` is also triggered when the PR title/body is changed,
     # this PR action is fairly quick, and PR's don't get edited that often,
     # so it shouldn't be a problem
+    # There is a feature request for adding a `base_changed` event:
+    # https://github.com/orgs/community/discussions/35058
     types: [opened, synchronize, reopened, edited]
 
 permissions: {}
 
-# Create a check-by-name concurrency group based on the pull request number. if
-# an event triggers a run on the same PR while a previous run is still in
-# progress, the previous run will be canceled and the new one will start.
-concurrency:
-  group: check-by-name-${{ github.event.pull_request.number }}
-  cancel-in-progress: true
+# We don't use a concurrency group here, because the action is triggered quite often (due to the PR edit
+# trigger), and contributers would get notified on any canceled run.
+# There is a feature request for supressing notifications on concurrency-canceled runs:
+# https://github.com/orgs/community/discussions/13015
 
 jobs:
   check:
diff --git a/.github/workflows/check-cherry-picks.yml b/.github/workflows/check-cherry-picks.yml
index 0bee949c3dbc4..67a5506bcc199 100644
--- a/.github/workflows/check-cherry-picks.yml
+++ b/.github/workflows/check-cherry-picks.yml
@@ -4,6 +4,7 @@ on:
     branches:
      - 'release-**'
      - 'staging-**'
+     - '!staging-next'
 
 permissions: {}
 
diff --git a/.github/workflows/check-nix-format.yml b/.github/workflows/check-nix-format.yml
index 6003c9a0b8419..131803213cb57 100644
--- a/.github/workflows/check-nix-format.yml
+++ b/.github/workflows/check-nix-format.yml
@@ -39,6 +39,9 @@ jobs:
             pkgs/development/cuda-modules
             pkgs/test/cuda
             pkgs/top-level/cuda-packages.nix
+          NIX_FMT_PATHS_MAINTAINERS: |
+            maintainers/maintainer-list.nix
+            maintainers/team-list.nix
           NIX_FMT_PATHS_K3S: |
             nixos/modules/services/cluster/k3s
             nixos/tests/k3s
diff --git a/.github/workflows/manual-nixos.yml b/.github/workflows/manual-nixos.yml
index a72b1adfeac03..f841fcadc5005 100644
--- a/.github/workflows/manual-nixos.yml
+++ b/.github/workflows/manual-nixos.yml
@@ -22,7 +22,7 @@ jobs:
         with:
           # explicitly enable sandbox
           extra_nix_config: sandbox = true
-      - uses: cachix/cachix-action@18cf96c7c98e048e10a83abd92116114cd8504be # v14
+      - uses: cachix/cachix-action@ad2ddac53f961de1989924296a1f236fcfbaa4fc # v15
         with:
           # This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
           name: nixpkgs-ci
diff --git a/.github/workflows/manual-nixpkgs.yml b/.github/workflows/manual-nixpkgs.yml
index 52aefa8472ed2..7b2cef0e108b5 100644
--- a/.github/workflows/manual-nixpkgs.yml
+++ b/.github/workflows/manual-nixpkgs.yml
@@ -24,7 +24,7 @@ jobs:
         with:
           # explicitly enable sandbox
           extra_nix_config: sandbox = true
-      - uses: cachix/cachix-action@18cf96c7c98e048e10a83abd92116114cd8504be # v14
+      - uses: cachix/cachix-action@ad2ddac53f961de1989924296a1f236fcfbaa4fc # v15
         with:
           # This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
           name: nixpkgs-ci
diff --git a/.mailmap b/.mailmap
index ba9bcefb55e1c..ce432f161b878 100644
--- a/.mailmap
+++ b/.mailmap
@@ -10,6 +10,7 @@ Robert Hensing <robert@roberthensing.nl> <roberth@users.noreply.github.com>
 Sandro Jäckel <sandro.jaeckel@gmail.com>
 Sandro Jäckel <sandro.jaeckel@gmail.com> <sandro.jaeckel@sap.com>
 superherointj <5861043+superherointj@users.noreply.github.com>
+Tomodachi94 <tomodachi94@protonmail.com> Tomo <68489118+Tomodachi94@users.noreply.github.com>
 Vladimír Čunát <v@cunat.cz> <vcunat@gmail.com>
 Vladimír Čunát <v@cunat.cz> <vladimir.cunat@nic.cz>
 Yifei Sun <ysun@hey.com> StepBroBD <Hi@StepBroBD.com>
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 3623246f6871b..23a826d9a7b7e 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -330,7 +330,14 @@ Container system, boot system and library changes are some examples of the pull
 ## How to merge pull requests
 [pr-merge]: #how-to-merge-pull-requests
 
-The *Nixpkgs committers* are people who have been given
+To streamline automated updates, leverage the nixpkgs-merge-bot by simply commenting `@NixOS/nixpkgs-merge-bot merge`. The bot will verify if the following conditions are met, refusing to merge otherwise:
+
+- the commenter that issued the command should be among the package maintainers;
+- the package should reside in `pkgs/by-name`.
+
+Further, nixpkgs-merge-bot will ensure all ofBorg checks (except the Darwin-related ones) are successfully completed before merging the pull request. Should the checks still be underway, the bot patiently waits for ofBorg to finish before attempting the merge again.
+
+For other pull requests, the *Nixpkgs committers* are people who have been given
 permission to merge.
 
 It is possible for community members that have enough knowledge and experience on a special topic to contribute by merging pull requests.
diff --git a/README.md b/README.md
index 5e6a8c54832b3..8b16318bfc685 100644
--- a/README.md
+++ b/README.md
@@ -52,9 +52,9 @@ Nixpkgs and NixOS are built and tested by our continuous integration
 system, [Hydra](https://hydra.nixos.org/).
 
 * [Continuous package builds for unstable/master](https://hydra.nixos.org/jobset/nixos/trunk-combined)
-* [Continuous package builds for the NixOS 23.11 release](https://hydra.nixos.org/jobset/nixos/release-23.11)
+* [Continuous package builds for the NixOS 24.05 release](https://hydra.nixos.org/jobset/nixos/release-24.05)
 * [Tests for unstable/master](https://hydra.nixos.org/job/nixos/trunk-combined/tested#tabs-constituents)
-* [Tests for the NixOS 23.11 release](https://hydra.nixos.org/job/nixos/release-23.11/tested#tabs-constituents)
+* [Tests for the NixOS 24.05 release](https://hydra.nixos.org/job/nixos/release-24.05/tested#tabs-constituents)
 
 Artifacts successfully built with Hydra are published to cache at
 https://cache.nixos.org/. When successful build and test criteria are
diff --git a/doc/build-helpers/fetchers.chapter.md b/doc/build-helpers/fetchers.chapter.md
index cb37dca06d487..0cc271f5db8c4 100644
--- a/doc/build-helpers/fetchers.chapter.md
+++ b/doc/build-helpers/fetchers.chapter.md
@@ -365,8 +365,8 @@ If `pname` and `version` are specified, `fetchurl` will use those values and wil
   _Default value:_ `{}`.
 
 `passthru` (Attribute Set; _optional_)
-: Specifies any extra [passthru](#var-stdenv-passthru) attributes for the derivation returned by `fetchurl`.
-  Note that `fetchurl` defines [passthru attributes of its own](#ssec-pkgs-fetchers-fetchurl-passthru-outputs).
+: Specifies any extra [`passthru`](#chap-passthru) attributes for the derivation returned by `fetchurl`.
+  Note that `fetchurl` defines [`passthru` attributes of its own](#ssec-pkgs-fetchers-fetchurl-passthru-outputs).
   Attributes specified in `passthru` can override the default attributes returned by `fetchurl`.
 
   _Default value:_ `{}`.
@@ -387,7 +387,7 @@ If `pname` and `version` are specified, `fetchurl` will use those values and wil
 
 ### Passthru outputs {#ssec-pkgs-fetchers-fetchurl-passthru-outputs}
 
-`fetchurl` also defines its own [`passthru`](#var-stdenv-passthru) attributes:
+`fetchurl` also defines its own [`passthru`](#chap-passthru) attributes:
 
 `url` (String)
 
diff --git a/doc/build-helpers/images/dockertools.section.md b/doc/build-helpers/images/dockertools.section.md
index 527e623e78987..aeb831c770c59 100644
--- a/doc/build-helpers/images/dockertools.section.md
+++ b/doc/build-helpers/images/dockertools.section.md
@@ -191,7 +191,7 @@ Similarly, if you encounter errors similar to `Error_Protocol ("certificate has
 
 ### Passthru outputs {#ssec-pkgs-dockerTools-buildImage-passthru-outputs}
 
-`buildImage` defines a few [`passthru`](#var-stdenv-passthru) attributes:
+`buildImage` defines a few [`passthru`](#chap-passthru) attributes:
 
 `buildArgs` (Attribute Set)
 
@@ -576,13 +576,13 @@ This allows the function to produce reproducible images.
 
 `passthru` (Attribute Set; _optional_)
 
-: Use this to pass any attributes as [passthru](#var-stdenv-passthru) for the resulting derivation.
+: Use this to pass any attributes as [`passthru`](#chap-passthru) for the resulting derivation.
 
   _Default value:_ `{}`
 
 ### Passthru outputs {#ssec-pkgs-dockerTools-streamLayeredImage-passthru-outputs}
 
-`streamLayeredImage` also defines its own [`passthru`](#var-stdenv-passthru) attributes:
+`streamLayeredImage` also defines its own [`passthru`](#chap-passthru) attributes:
 
 `imageTag` (String)
 
diff --git a/doc/build-helpers/images/makediskimage.section.md b/doc/build-helpers/images/makediskimage.section.md
index e50479c4e83e4..3edfa906aa6ae 100644
--- a/doc/build-helpers/images/makediskimage.section.md
+++ b/doc/build-helpers/images/makediskimage.section.md
@@ -85,14 +85,14 @@ let
 in
   make-disk-image {
     inherit pkgs lib;
-    config = evalConfig {
+    inherit (evalConfig {
       modules = [
         {
           fileSystems."/" = { device = "/dev/vda"; fsType = "ext4"; autoFormat = true; };
           boot.grub.device = "/dev/vda";
         }
       ];
-    };
+    }) config;
     format = "qcow2";
     onlyNixStore = false;
     partitionTableType = "legacy+gpt";
@@ -104,5 +104,3 @@ in
     memSize = 2048; # Qemu VM memory size in megabytes. Defaults to 1024M.
   }
 ```
-
-
diff --git a/doc/build-helpers/testers.chapter.md b/doc/build-helpers/testers.chapter.md
index b734cbbbd4e29..34cfc00a4953c 100644
--- a/doc/build-helpers/testers.chapter.md
+++ b/doc/build-helpers/testers.chapter.md
@@ -40,6 +40,82 @@ If the `moduleNames` argument is omitted, `hasPkgConfigModules` will use `meta.p
 
 :::
 
+## `lycheeLinkCheck` {#tester-lycheeLinkCheck}
+
+Check a packaged static site's links with the [`lychee` package](https://search.nixos.org/packages?show=lychee&type=packages&query=lychee).
+
+You may use Nix to reproducibly build static websites, such as for software documentation.
+Some packages will install documentation in their `out` or `doc` outputs, or maybe you have dedicated package where you've made your static site reproducible by running a generator, such as [Hugo](https://gohugo.io/) or [mdBook](https://rust-lang.github.io/mdBook/), in a derivation.
+
+If you have a static site that can be built with Nix, you can use `lycheeLinkCheck` to check that the hyperlinks in your site are correct, and do so as part of your Nix workflow and CI.
+
+:::{.example #ex-lycheelinkcheck}
+
+# Check hyperlinks in the `nix` documentation
+
+```nix
+testers.lycheeLinkCheck {
+  site = nix.doc + "/share/doc/nix/manual";
+}
+```
+
+:::
+
+### Return value {#tester-lycheeLinkCheck-return}
+
+This tester produces a package that does not produce useful outputs, but only succeeds if the hyperlinks in your site are correct. The build log will list the broken links.
+
+It has two modes:
+
+- Build the returned derivation; its build process will check that internal hyperlinks are correct. This runs in the sandbox, so it will not check external hyperlinks, but it is quick and reliable.
+
+- Invoke the `.online` attribute with [`nix run`](https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-run) ([experimental](https://nixos.org/manual/nix/stable/contributing/experimental-features#xp-feature-nix-command)). This runs outside the sandbox, and checks that both internal and external hyperlinks are correct.
+  Example:
+
+  ```shell
+  nix run nixpkgs#lychee.tests.ok.online
+  ```
+
+### Inputs {#tester-lycheeLinkCheck-inputs}
+
+`site` (path or derivation) {#tester-lycheeLinkCheck-param-site}
+
+: The path to the files to check.
+
+`remap` (attribe set, optional) {#tester-lycheeLinkCheck-param-remap}
+
+: An attribute set where the attribute names are regular expressions.
+  The values should be strings, derivations, or path values.
+
+  In the returned check's default configuration, external URLs are only checked when you run the `.online` attribute.
+
+  By adding remappings, you can check offline that URLs to external resources are correct, by providing a stand-in from the file system.
+
+  Before checking the existence of a URL, the regular expressions are matched and replaced by their corresponding values.
+
+  Example:
+
+  ```nix
+  {
+    "https://nix\\.dev/manual/nix/[a-z0-9.-]*" = "${nix.doc}/share/doc/nix/manual";
+    "https://nixos\\.org/manual/nix/(un)?stable" = "${emptyDirectory}/placeholder-to-disallow-old-nix-docs-urls";
+  }
+  ```
+
+  Store paths in the attribute values are automatically prefixed with `file://`, because lychee requires this for paths in the file system.
+  If this is a problem, or if you need to control the order in which replacements are performed, use `extraConfig.remap` instead.
+
+`extraConfig` (attribute set) {#tester-lycheeLinkCheck-param-extraConfig}
+
+: Extra configuration to pass to `lychee` in its [configuration file](https://github.com/lycheeverse/lychee/blob/master/lychee.example.toml).
+  It is automatically [translated](https://nixos.org/manual/nixos/stable/index.html#sec-settings-nix-representable) to TOML.
+
+  Example: `{ "include_verbatim" = true; }`
+
+`lychee` (derivation, optional) {#tester-lycheeLinkCheck-param-lychee}
+
+: The `lychee` package to use.
+
 ## `testVersion` {#tester-testVersion}
 
 Checks that the output from running a command contains the specified version string in it as a whole word.
@@ -129,7 +205,7 @@ runCommand "example" {
 
 :::
 
-## `testEqualContents` {#tester-equalContents}
+## `testEqualContents` {#tester-testEqualContents}
 
 Check that two paths have the same contents.
 
diff --git a/doc/default.nix b/doc/default.nix
index ca4091dc222cc..fd623cf15b8c8 100644
--- a/doc/default.nix
+++ b/doc/default.nix
@@ -2,6 +2,7 @@
 let
   inherit (pkgs) lib;
   inherit (lib) hasPrefix removePrefix;
+  fs = lib.fileset;
 
   common = import ./common.nix;
 
@@ -99,13 +100,31 @@ in pkgs.stdenv.mkDerivation {
     nixos-render-docs
   ];
 
-  src = ./.;
+  src = fs.toSource {
+    root = ./.;
+    fileset = fs.unions [
+      (fs.fileFilter (file:
+        file.hasExt "md"
+        || file.hasExt "md.in"
+      ) ./.)
+      ./style.css
+      ./anchor-use.js
+      ./anchor.min.js
+      ./manpage-urls.json
+    ];
+  };
 
   postPatch = ''
     ln -s ${optionsDoc.optionsJSON}/share/doc/nixos/options.json ./config-options.json
   '';
 
+  pythonInterpreterTable = pkgs.callPackage ./doc-support/python-interpreter-table.nix {};
+
+  passAsFile = [ "pythonInterpreterTable" ];
+
   buildPhase = ''
+    substituteInPlace ./languages-frameworks/python.section.md --subst-var-by python-interpreter-table "$(<"$pythonInterpreterTablePath")"
+
     cat \
       ./functions/library.md.in \
       ${lib-docs}/index.md \
diff --git a/doc/doc-support/python-interpreter-table.nix b/doc/doc-support/python-interpreter-table.nix
new file mode 100644
index 0000000000000..6f2b3422f6727
--- /dev/null
+++ b/doc/doc-support/python-interpreter-table.nix
@@ -0,0 +1,63 @@
+# For debugging, run in this directory:
+#     nix eval --impure --raw --expr 'import ./python-interpreter-table.nix {}'
+{ pkgs ? (import ../.. { config = { }; overlays = []; }) }:
+let
+  lib = pkgs.lib;
+  inherit (lib.attrsets) attrNames filterAttrs;
+  inherit (lib.lists) elem filter map naturalSort reverseList;
+  inherit (lib.strings) concatStringsSep;
+
+  isPythonInterpreter = name:
+    /* NB: Package names that don't follow the regular expression:
+      - `python-cosmopolitan` is not part of `pkgs.pythonInterpreters`.
+      - `_prebuilt` interpreters are used for bootstrapping internally.
+      - `python3Minimal` contains python packages, left behind conservatively.
+      - `rustpython` lacks `pythonVersion` and `implementation`.
+    */
+    (lib.strings.match "(pypy|python)([[:digit:]]*)" name) != null;
+
+  interpreterName = pname:
+    let
+      cuteName = {
+        cpython = "CPython";
+        pypy = "PyPy";
+      };
+      interpreter = pkgs.${pname};
+    in
+    "${cuteName.${interpreter.implementation}} ${interpreter.pythonVersion}";
+
+  interpreters = reverseList (naturalSort (
+    filter isPythonInterpreter (attrNames pkgs.pythonInterpreters)
+  ));
+
+  aliases = pname:
+    attrNames (
+      filterAttrs (name: value:
+        isPythonInterpreter name
+        && name != pname
+        && interpreterName name == interpreterName pname
+      ) pkgs
+    );
+
+  result = map (pname: {
+    inherit pname;
+    aliases = aliases pname;
+    interpreter = interpreterName pname;
+  }) interpreters;
+
+  toMarkdown = data:
+    let
+      line = package: ''
+        | ${package.pname} | ${join ", " package.aliases or [ ]} | ${package.interpreter} |
+      '';
+    in
+    join "" (map line data);
+
+  join = lib.strings.concatStringsSep;
+
+in
+''
+  | Package | Aliases | Interpeter |
+  |---------|---------|------------|
+  ${toMarkdown result}
+''
diff --git a/doc/functions/library/.gitkeep b/doc/functions/library/.gitkeep
deleted file mode 100644
index e69de29bb2d1d..0000000000000
--- a/doc/functions/library/.gitkeep
+++ /dev/null
diff --git a/doc/hooks/waf.section.md b/doc/hooks/waf.section.md
index fa027d87a94d7..b58887b6b6471 100644
--- a/doc/hooks/waf.section.md
+++ b/doc/hooks/waf.section.md
@@ -20,10 +20,6 @@ If `wafPath` doesn't exist, then `wafHook` will copy the `waf` provided from Nix
 
 Controls the flags passed to waf tool during build and install phases. For settings specific to build or install phases, use `wafBuildFlags` or `wafInstallFlags` respectively.
 
-#### `dontAddWafCrossFlags` {#dont-add-waf-cross-flags}
-
-When set to `true`, don't add cross compilation flags during configure phase.
-
 #### `dontUseWafConfigure` {#dont-use-waf-configure}
 
 When set to true, don't use the predefined `wafConfigurePhase`.
diff --git a/doc/languages-frameworks/android.section.md b/doc/languages-frameworks/android.section.md
index 1c5687f8ebf1b..d6ed1f35cb0a8 100644
--- a/doc/languages-frameworks/android.section.md
+++ b/doc/languages-frameworks/android.section.md
@@ -3,10 +3,36 @@
 The Android build environment provides three major features and a number of
 supporting features.
 
+## Using androidenv with Android Studio {#using-androidenv-with-android-studio}
+
+Use the `android-studio-full` attribute for a very complete Android SDK, including system images:
+
+```nix
+buildInputs = [ android-studio-full ];
+```
+
+This is identical to:
+
+```nix
+buildInputs = [ androidStudioPackages.stable.full ];
+```
+
+Alternatively, you can pass composeAndroidPackages to the `withSdk` passthru:
+
+```nix
+buildInputs = [
+  (android-studio.withSdk (androidenv.composeAndroidPackages {
+    includeNDK = true;
+  }).androidsdk)
+];
+```
+
+These will export ANDROID_SDK_ROOT and ANDROID_NDK_ROOT to the SDK and NDK directories
+in the specified Android build environment.
+
 ## Deploying an Android SDK installation with plugins {#deploying-an-android-sdk-installation-with-plugins}
 
-The first use case is deploying the SDK with a desired set of plugins or subsets
-of an SDK.
+Alternatively, you can deploy the SDK separately with a desired set of plugins, or subsets of an SDK.
 
 ```nix
 with import <nixpkgs> {};
@@ -145,16 +171,14 @@ androidComposition.platform-tools
 ## Using predefined Android package compositions {#using-predefined-android-package-compositions}
 
 In addition to composing an Android package set manually, it is also possible
-to use a predefined composition that contains all basic packages for a specific
-Android version, such as version 9.0 (API-level 28).
+to use a predefined composition that contains a fairly complete set of Android packages:
 
-The following Nix expression can be used to deploy the entire SDK with all basic
-plugins:
+The following Nix expression can be used to deploy the entire SDK:
 
 ```nix
 with import <nixpkgs> {};
 
-androidenv.androidPkgs_9_0.androidsdk
+androidenv.androidPkgs.androidsdk
 ```
 
 It is also possible to use one plugin only:
@@ -162,50 +186,9 @@ It is also possible to use one plugin only:
 ```nix
 with import <nixpkgs> {};
 
-androidenv.androidPkgs_9_0.platform-tools
-```
-
-## Building an Android application {#building-an-android-application}
-
-In addition to the SDK, it is also possible to build an Ant-based Android
-project and automatically deploy all the Android plugins that a project
-requires.
-
-
-```nix
-with import <nixpkgs> {};
-
-androidenv.buildApp {
-  name = "MyAndroidApp";
-  src = ./myappsources;
-  release = true;
-
-  # If release is set to true, you need to specify the following parameters
-  keyStore = ./keystore;
-  keyAlias = "myfirstapp";
-  keyStorePassword = "mykeystore";
-  keyAliasPassword = "myfirstapp";
-
-  # Any Android SDK parameters that install all the relevant plugins that a
-  # build requires
-  platformVersions = [ "24" ];
-
-  # When we include the NDK, then ndk-build is invoked before Ant gets invoked
-  includeNDK = true;
-}
+androidenv.androidPkgs.platform-tools
 ```
 
-Aside from the app-specific build parameters (`name`, `src`, `release` and
-keystore parameters), the `buildApp {}` function supports all the function
-parameters that the SDK composition function (the function shown in the
-previous section) supports.
-
-This build function is particularly useful when it is desired to use
-[Hydra](https://nixos.org/hydra): the Nix-based continuous integration solution
-to build Android apps. An Android APK gets exposed as a build product and can be
-installed on any Android device with a web browser by navigating to the build
-result page.
-
 ## Spawning emulator instances {#spawning-emulator-instances}
 
 For testing purposes, it can also be quite convenient to automatically generate
@@ -349,3 +332,44 @@ To update the expressions run the `generate.sh` script that is stored in the
 ```bash
 ./generate.sh
 ```
+
+## Building an Android application with Ant {#building-an-android-application-with-ant}
+
+In addition to the SDK, it is also possible to build an Ant-based Android
+project and automatically deploy all the Android plugins that a project
+requires. Most newer Android projects use Gradle, and this is included for historical
+purposes.
+
+```nix
+with import <nixpkgs> {};
+
+androidenv.buildApp {
+  name = "MyAndroidApp";
+  src = ./myappsources;
+  release = true;
+
+  # If release is set to true, you need to specify the following parameters
+  keyStore = ./keystore;
+  keyAlias = "myfirstapp";
+  keyStorePassword = "mykeystore";
+  keyAliasPassword = "myfirstapp";
+
+  # Any Android SDK parameters that install all the relevant plugins that a
+  # build requires
+  platformVersions = [ "24" ];
+
+  # When we include the NDK, then ndk-build is invoked before Ant gets invoked
+  includeNDK = true;
+}
+```
+
+Aside from the app-specific build parameters (`name`, `src`, `release` and
+keystore parameters), the `buildApp {}` function supports all the function
+parameters that the SDK composition function (the function shown in the
+previous section) supports.
+
+This build function is particularly useful when it is desired to use
+[Hydra](https://nixos.org/hydra): the Nix-based continuous integration solution
+to build Android apps. An Android APK gets exposed as a build product and can be
+installed on any Android device with a web browser by navigating to the build
+result page.
diff --git a/doc/languages-frameworks/dart.section.md b/doc/languages-frameworks/dart.section.md
index 019765f75354c..594ef7391cbb1 100644
--- a/doc/languages-frameworks/dart.section.md
+++ b/doc/languages-frameworks/dart.section.md
@@ -98,10 +98,12 @@ The function `buildFlutterApplication` builds Flutter applications.
 
 See the [Dart documentation](#ssec-dart-applications) for more details on required files and arguments.
 
+`flutter` in Nixpkgs always points to `flutterPackages.stable`, which is the latest packaged version. To avoid unforeseen breakage during upgrade, packages in Nixpkgs should use a specific flutter version, such as `flutter319` and `flutter322`, instead of using `flutter` directly.
+
 ```nix
 {  flutter, fetchFromGitHub }:
 
-flutter.buildFlutterApplication {
+flutter322.buildFlutterApplication {
   pname = "firmware-updater";
   version = "0-unstable-2023-04-30";
 
diff --git a/doc/languages-frameworks/dotnet.section.md b/doc/languages-frameworks/dotnet.section.md
index a4e9d6cf9a6c6..36c20a9e9c507 100644
--- a/doc/languages-frameworks/dotnet.section.md
+++ b/doc/languages-frameworks/dotnet.section.md
@@ -117,7 +117,6 @@ For more detail about managing the `deps.nix` file, see [Generating and updating
 * `useDotnetFromEnv` will change the binary wrapper so that it uses the .NET from the environment. The runtime specified by `dotnet-runtime` is given as a fallback in case no .NET is installed in the user's environment. This is most useful for .NET global tools and LSP servers, which often extend the .NET CLI and their runtime should match the users' .NET runtime.
 * `dotnet-sdk` is useful in cases where you need to change what dotnet SDK is being used. You can also set this to the result of `dotnetSdkPackages.combinePackages`, if the project uses multiple SDKs to build.
 * `dotnet-runtime` is useful in cases where you need to change what dotnet runtime is being used. This can be either a regular dotnet runtime, or an aspnetcore.
-* `dotnet-test-sdk` is useful in cases where unit tests expect a different dotnet SDK. By default, this is set to the `dotnet-sdk` attribute.
 * `testProjectFile` is useful in cases where the regular project file does not contain the unit tests. It gets restored and build, but not installed. You may need to regenerate your nuget lockfile after setting this. Note that if set, only tests from this project are executed.
 * `disabledTests` is used to disable running specific unit tests. This gets passed as: `dotnet test --filter "FullyQualifiedName!={}"`, to ensure compatibility with all unit test frameworks.
 * `dotnetRestoreFlags` can be used to pass flags to `dotnet restore`.
diff --git a/doc/languages-frameworks/hare.section.md b/doc/languages-frameworks/hare.section.md
new file mode 100644
index 0000000000000..0ae8abeba45c1
--- /dev/null
+++ b/doc/languages-frameworks/hare.section.md
@@ -0,0 +1,53 @@
+# Hare {#sec-language-hare}
+
+## Building Hare programs with `hareHook` {#ssec-language-hare}
+
+The `hareHook` package sets up the environment for building Hare programs by
+doing the following:
+
+1. Setting the `HARECACHE`, `HAREPATH` and `NIX_HAREFLAGS` environment variables;
+1. Propagating `harec`, `qbe` and two wrapper scripts  for the hare binary.
+
+It is not a function as is the case for some other languages --- *e. g.*, Go or
+Rust ---, but a package to be added to `nativeBuildInputs`.
+
+## Attributes of `hareHook` {#hareHook-attributes}
+
+The following attributes are accepted by `hareHook`:
+
+1. `hareBuildType`: Either `release` (default) or `debug`. It controls if the
+   `-R` flag is added to `NIX_HAREFLAGS`.
+
+## Example for `hareHook` {#ex-hareHook}
+
+```nix
+{
+  hareHook,
+  lib,
+  stdenv,
+}: stdenv.mkDerivation {
+  pname = "<name>";
+  version = "<version>";
+  src = "<src>";
+
+  nativeBuildInputs = [ hareHook ];
+
+  meta = {
+    description = "<description>";
+    inherit (hareHook) badPlatforms platforms;
+  };
+}
+```
+
+## Cross Compilation {#hareHook-cross-compilation}
+
+`hareHook` should handle cross compilation out of the box. This is the main
+purpose of `NIX_HAREFLAGS`: In it, the `-a` flag is passed with the architecture
+of the `hostPlatform`.
+
+However, manual intervention may be needed when a binary compiled by the build
+process must be run for the build to complete --- *e. g.*, when using Hare's
+`hare` module for code generation.
+
+In those cases, `hareHook` provides the `hare-native` script, which is a wrapper
+around the hare binary for using the native (`buildPlatform`) toolchain.
diff --git a/doc/languages-frameworks/haskell.section.md b/doc/languages-frameworks/haskell.section.md
index dde55c329a4ac..6c2af33c8c9eb 100644
--- a/doc/languages-frameworks/haskell.section.md
+++ b/doc/languages-frameworks/haskell.section.md
@@ -923,14 +923,61 @@ for this to work.
 
 `justStaticExecutables drv`
 : Only build and install the executables produced by `drv`, removing everything
-that may refer to other Haskell packages' store paths (like libraries and
-documentation). This dramatically reduces the closure size of the resulting
-derivation. Note that the executables are only statically linked against their
-Haskell dependencies, but will still link dynamically against libc, GMP and
-other system library dependencies. If dependencies use their Cabal-generated
-`Paths_*` module, this may not work as well if GHC's dead code elimination
-is unable to remove the references to the dependency's store path that module
-contains.
+  that may refer to other Haskell packages' store paths (like libraries and
+  documentation). This dramatically reduces the closure size of the resulting
+  derivation. Note that the executables are only statically linked against their
+  Haskell dependencies, but will still link dynamically against libc, GMP and
+  other system library dependencies.
+
+  If a library or its dependencies use their Cabal-generated
+  `Paths_*` module, this may not work as well if GHC's dead code elimination is
+  unable to remove the references to the dependency's store path that module
+  contains.
+  As a consequence, an unused reference may be created from the static binary to such a _library_ store path.
+  (See [nixpkgs#164630][164630] for more information.)
+
+  Importing the `Paths_*` module may cause builds to fail with this message:
+
+  ```
+  error: output '/nix/store/64k8iw0ryz76qpijsnl9v87fb26v28z8-my-haskell-package-1.0.0.0' is not allowed to refer to the following paths:
+           /nix/store/5q5s4a07gaz50h04zpfbda8xjs8wrnhg-ghc-9.6.3
+  ```
+
+  If that happens, first disable the check for GHC references and rebuild the
+  derivation:
+
+  ```nix
+  pkgs.haskell.lib.overrideCabal
+    (pkgs.haskell.lib.justStaticExecutables my-haskell-package)
+    (drv: {
+      disallowGhcReference = false;
+    })
+  ```
+
+  Then use `strings` to determine which libraries are responsible:
+
+  ```
+  $ nix-build ...
+  $ strings result/bin/my-haskell-binary | grep /nix/store/
+  ...
+  /nix/store/n7ciwdlg8yyxdhbrgd6yc2d8ypnwpmgq-hs-opentelemetry-sdk-0.0.3.6/bin
+  ...
+  ```
+
+  Finally, use `remove-references-to` to delete those store paths from the produced output:
+
+  ```nix
+  pkgs.haskell.lib.overrideCabal
+    (pkgs.haskell.lib.justStaticExecutables my-haskell-package)
+    (drv: {
+      postInstall = ''
+        ${drv.postInstall or ""}
+        remove-references-to -t ${pkgs.haskellPackages.hs-opentelemetry-sdk}
+      '';
+    })
+  ```
+
+[164630]: https://github.com/NixOS/nixpkgs/issues/164630
 
 `enableSeparateBinOutput drv`
 : Install executables produced by `drv` to a separate `bin` output. This
diff --git a/doc/languages-frameworks/index.md b/doc/languages-frameworks/index.md
index 920e5e7bd431e..e8fee9c45216c 100644
--- a/doc/languages-frameworks/index.md
+++ b/doc/languages-frameworks/index.md
@@ -19,6 +19,7 @@ dotnet.section.md
 emscripten.section.md
 gnome.section.md
 go.section.md
+hare.section.md
 haskell.section.md
 hy.section.md
 idris.section.md
diff --git a/doc/languages-frameworks/javascript.section.md b/doc/languages-frameworks/javascript.section.md
index f706f92c6691f..76db9d0007ce5 100644
--- a/doc/languages-frameworks/javascript.section.md
+++ b/doc/languages-frameworks/javascript.section.md
@@ -310,6 +310,71 @@ See `node2nix` [docs](https://github.com/svanderburg/node2nix) for more info.
 - `node2nix` has some [bugs](https://github.com/svanderburg/node2nix/issues/238) related to working with lock files from npm distributed with `nodejs_16`.
 - `node2nix` does not like missing packages from npm. If you see something like `Cannot resolve version: vue-loader-v16@undefined` then you might want to try another tool. The package might have been pulled off of npm.
 
+### pnpm {#javascript-pnpm}
+
+Pnpm is available as the top-level package `pnpm`. Additionally, there are variants pinned to certain major versions, like `pnpm_8` and `pnpm_9`, which support different sets of lock file versions.
+
+When packaging an application that includes a `pnpm-lock.yaml`, you need to fetch the pnpm store for that project using a fixed-output-derivation. The functions `pnpm_8.fetchDeps` and `pnpm_9.fetchDeps` can create this pnpm store derivation. In conjunction, the setup hooks `pnpm_8.configHook` and `pnpm_9.configHook` will prepare the build environment to install the prefetched dependencies store. Here is an example for a package that contains a `package.json` and a `pnpm-lock.yaml` files using the above `pnpm_` attributes:
+
+```nix
+{
+  stdenv,
+  nodejs,
+  # This is pinned as { pnpm = pnpm_9; }
+  pnpm
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "foo";
+  version = "0-unstable-1980-01-01";
+
+  src = ...;
+
+  nativeBuildInputs = [
+    nodejs
+    pnpm.configHook
+  ];
+
+  pnpmDeps = pnpm.fetchDeps {
+    inherit (finalAttrs) pname version src;
+    hash = "...";
+  };
+})
+```
+
+NOTE: It is highly recommended to use a pinned version of pnpm (i.e. `pnpm_8` or `pnpm_9`), to increase future reproducibility. It might also be required to use an older version, if the package needs support for a certain lock file version.
+
+In case you are patching `package.json` or `pnpm-lock.yaml`, make sure to pass `finalAttrs.patches` to the function as well (i.e. `inherit (finalAttrs) patches`.
+
+#### Dealing with `sourceRoot` {#javascript-pnpm-sourceRoot}
+
+NOTE: Nixpkgs pnpm tooling doesn't support building projects with a `pnpm-workspace.yaml`, or building monorepos. It maybe possible to use `pnpm.fetchDeps` for these projects, but it may be hard or impossible to produce a binary from such projects ([an example attempt](https://github.com/NixOS/nixpkgs/pull/290715#issuecomment-2144543728)).
+
+If the pnpm project is in a subdirectory, you can just define `sourceRoot` or `setSourceRoot` for `fetchDeps`. Note, that projects using `pnpm-workspace.yaml` are currently not supported, and will probably not work using this approach.
+If `sourceRoot` is different between the parent derivation and `fetchDeps`, you will have to set `pnpmRoot` to effectively be the same location as it is in `fetchDeps`.
+
+Assuming the following directory structure, we can define `sourceRoot` and `pnpmRoot` as follows:
+
+```
+.
+├── frontend
+│   ├── ...
+│   ├── package.json
+│   └── pnpm-lock.yaml
+└── ...
+```
+
+```nix
+  ...
+  pnpmDeps = pnpm.fetchDeps {
+    ...
+    sourceRoot = "${finalAttrs.src.name}/frontend";
+  };
+
+  # by default the working directory is the extracted source
+  pnpmRoot = "frontend";
+```
+
 ### yarn2nix {#javascript-yarn2nix}
 
 #### Preparation {#javascript-yarn2nix-preparation}
diff --git a/doc/languages-frameworks/nim.section.md b/doc/languages-frameworks/nim.section.md
index c6ebf49b83f66..71e3ae25a86d9 100644
--- a/doc/languages-frameworks/nim.section.md
+++ b/doc/languages-frameworks/nim.section.md
@@ -7,7 +7,7 @@ The following example shows a Nim program that depends only on Nim libraries:
 ```nix
 { lib, buildNimPackage, fetchFromGitHub }:
 
-buildNimPackage { } (finalAttrs: {
+buildNimPackage (finalAttrs: {
   pname = "ttop";
   version = "1.2.7";
 
@@ -80,7 +80,6 @@ For example, to propagate a dependency on SDL2 for lockfiles that select the Nim
   /* … */
   sdl2 =
     lockAttrs:
-    finalAttrs:
     { buildInputs ? [ ], ... }:
     {
       buildInputs = buildInputs ++ [ SDL2 ];
@@ -89,9 +88,8 @@ For example, to propagate a dependency on SDL2 for lockfiles that select the Nim
 }
 ```
 
-The annotations in the `nim-overrides.nix` set are functions that take three arguments and return a new attrset to be overlayed on the package being built.
+The annotations in the `nim-overrides.nix` set are functions that take two arguments and return a new attrset to be overlayed on the package being built.
 - lockAttrs: the attrset for this library from within a lockfile. This can be used to implement library version constraints, such as marking libraries as broken or insecure.
-- finalAttrs: the final attrset passed by `buildNimPackage` to `stdenv.mkDerivation`.
 - prevAttrs: the attrset produced by initial arguments to `buildNimPackage` and any preceding lockfile overlays.
 
 ### Overriding an Nim library override {#nim-lock-overrides-overrides}
diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md
index 6fcae4b6520d9..827c85146537d 100644
--- a/doc/languages-frameworks/python.section.md
+++ b/doc/languages-frameworks/python.section.md
@@ -4,16 +4,7 @@
 
 ### Interpreters {#interpreters}
 
-| Package    | Aliases         | Interpreter |
-|------------|-----------------|-------------|
-| python27   | python2, python | CPython 2.7 |
-| python39   |                 | CPython 3.9 |
-| python310  |                 | CPython 3.10 |
-| python311  | python3         | CPython 3.11 |
-| python312  |                 | CPython 3.12 |
-| python313  |                 | CPython 3.13 |
-| pypy27     | pypy2, pypy     | PyPy2.7 |
-| pypy39     | pypy3           | PyPy 3.9 |
+@python-interpreter-table@
 
 The Nix expressions for the interpreters can be found in
 `pkgs/development/interpreters/python`.
@@ -40,8 +31,8 @@ Each interpreter has the following attributes:
 
 ### Building packages and applications {#building-packages-and-applications}
 
-Python libraries and applications that use `setuptools` or
-`distutils` are typically built with respectively the [`buildPythonPackage`](#buildpythonpackage-function) and
+Python libraries and applications that use tools to follow PEP 517 (e.g. `setuptools` or `hatchling`, etc.) or
+previous tools such as `distutils` are typically built with respectively the [`buildPythonPackage`](#buildpythonpackage-function) and
 [`buildPythonApplication`](#buildpythonapplication-function) functions. These two functions also support installing a `wheel`.
 
 All Python packages reside in `pkgs/top-level/python-packages.nix` and all
@@ -87,6 +78,7 @@ The following is an example:
 , fetchPypi
 
 # build-system
+, setuptools
 , setuptools-scm
 
 # dependencies
@@ -116,6 +108,7 @@ buildPythonPackage rec {
   '';
 
   build-system = [
+    setuptools
     setuptools-scm
   ];
 
@@ -143,13 +136,13 @@ buildPythonPackage rec {
 
 The `buildPythonPackage` mainly does four things:
 
-* In the [`buildPhase`](#build-phase), it calls `${python.pythonOnBuildForHost.interpreter} setup.py bdist_wheel` to
+* In the [`buildPhase`](#build-phase), it calls `${python.pythonOnBuildForHost.interpreter} -m build --wheel` to
   build a wheel binary zipfile.
-* In the [`installPhase`](#ssec-install-phase), it installs the wheel file using `pip install *.whl`.
+* In the [`installPhase`](#ssec-install-phase), it installs the wheel file using `${python.pythonOnBuildForHost.interpreter} -m installer *.whl`.
 * In the [`postFixup`](#var-stdenv-postFixup) phase, the `wrapPythonPrograms` bash function is called to
   wrap all programs in the `$out/bin/*` directory to include `$PATH`
   environment variable and add dependent libraries to script's `sys.path`.
-* In the [`installCheck`](#ssec-installCheck-phase) phase, `${python.interpreter} setup.py test` is run.
+* In the [`installCheck`](#ssec-installCheck-phase) phase, `${python.interpreter} -m pytest` is run.
 
 By default tests are run because [`doCheck = true`](#var-stdenv-doCheck). Test dependencies, like
 e.g. the test runner, should be added to [`nativeCheckInputs`](#var-stdenv-nativeCheckInputs).
@@ -186,10 +179,6 @@ following are specific to `buildPythonPackage`:
   `makeWrapperArgs = ["--set FOO BAR" "--set BAZ QUX"]`.
 * `namePrefix`: Prepends text to `${name}` parameter. In case of libraries, this
   defaults to `"python3.8-"` for Python 3.8, etc., and in case of applications to `""`.
-* `pipInstallFlags ? []`: A list of strings. Arguments to be passed to `pip
-  install`. To pass options to `python setup.py install`, use
-  `--install-option`. E.g., `pipInstallFlags=["--install-option='--cpp_implementation'"]`.
-* `pipBuildFlags ? []`: A list of strings. Arguments to be passed to `pip wheel`.
 * `pypaBuildFlags ? []`: A list of strings. Arguments to be passed to `python -m build --wheel`.
 * `pythonPath ? []`: List of packages to be added into `$PYTHONPATH`. Packages
   in `pythonPath` are not propagated (contrary to [`propagatedBuildInputs`](#var-stdenv-propagatedBuildInputs)).
@@ -307,7 +296,6 @@ python3Packages.buildPythonApplication rec {
 
   build-system = with python3Packages; [
     setuptools
-    wheel
   ];
 
   dependencies = with python3Packages; [
@@ -474,13 +462,11 @@ are used in [`buildPythonPackage`](#buildpythonpackage-function).
   with the `eggInstallHook`
 - `eggBuildHook` to skip building for eggs.
 - `eggInstallHook` to install eggs.
-- `pipBuildHook` to build a wheel using `pip` and PEP 517. Note a build system
-  (e.g. `setuptools` or `flit`) should still be added as `build-system`.
 - `pypaBuildHook` to build a wheel using
   [`pypa/build`](https://pypa-build.readthedocs.io/en/latest/index.html) and
   PEP 517/518. Note a build system (e.g. `setuptools` or `flit`) should still
   be added as `build-system`.
-- `pipInstallHook` to install wheels.
+- `pypaInstallHook` to install wheels.
 - `pytestCheckHook` to run tests with `pytest`. See [example usage](#using-pytestcheckhook).
 - `pythonCatchConflictsHook` to fail if the package depends on two different versions of the same dependency.
 - `pythonImportsCheckHook` to check whether importing the listed modules works.
@@ -618,7 +604,8 @@ that sets up an interpreter pointing to them. This matters much more for "big"
 modules like `pytorch` or `tensorflow`.
 
 Module names usually match their names on [pypi.org](https://pypi.org/), but
-you can use the [Nixpkgs search website](https://nixos.org/nixos/packages.html)
+normalized according to PEP 503/508. (e.g. Foo__Bar.baz -> foo-bar-baz)
+You can use the [Nixpkgs search website](https://nixos.org/nixos/packages.html)
 to find them as well (along with non-python packages).
 
 At this point we can create throwaway experimental Python environments with
@@ -846,7 +833,6 @@ building Python libraries is [`buildPythonPackage`](#buildpythonpackage-function
 , buildPythonPackage
 , fetchPypi
 , setuptools
-, wheel
 }:
 
 buildPythonPackage rec {
@@ -861,7 +847,6 @@ buildPythonPackage rec {
 
   build-system = [
     setuptools
-    wheel
   ];
 
   # has no tests
@@ -885,7 +870,7 @@ buildPythonPackage rec {
 What happens here? The function [`buildPythonPackage`](#buildpythonpackage-function) is called and as argument
 it accepts a set. In this case the set is a recursive set, `rec`. One of the
 arguments is the name of the package, which consists of a basename (generally
-following the name on PyPi) and a version. Another argument, `src` specifies the
+following the name on PyPI) and a version. Another argument, `src` specifies the
 source, which in this case is fetched from PyPI using the helper function
 `fetchPypi`. The argument `doCheck` is used to set whether tests should be run
 when building the package. Since there are no tests, we rely on [`pythonImportsCheck`](#using-pythonimportscheck)
@@ -920,7 +905,6 @@ with import <nixpkgs> {};
 
       build-system = [
         python311.pkgs.setuptools
-        python311.pkgs.wheel
       ];
 
       # has no tests
@@ -973,13 +957,13 @@ order to build [`datashape`](https://github.com/blaze/datashape).
 , fetchPypi
 
 # build dependencies
-, setuptools, wheel
+, setuptools
 
 # dependencies
 , numpy, multipledispatch, python-dateutil
 
 # tests
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -994,7 +978,6 @@ buildPythonPackage rec {
 
   build-system = [
     setuptools
-    wheel
   ];
 
   dependencies = [
@@ -1004,7 +987,7 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
-    pytest
+    pytestCheckHook
   ];
 
   meta = {
@@ -1017,8 +1000,8 @@ buildPythonPackage rec {
 ```
 
 We can see several runtime dependencies, `numpy`, `multipledispatch`, and
-`python-dateutil`. Furthermore, we have [`nativeCheckInputs`](#var-stdenv-nativeCheckInputs) with `pytest`.
-`pytest` is a test runner and is only used during the [`checkPhase`](#ssec-check-phase) and is
+`python-dateutil`. Furthermore, we have [`nativeCheckInputs`](#var-stdenv-nativeCheckInputs) with `pytestCheckHook`.
+`pytestCheckHook` is a test runner hook and is only used during the [`checkPhase`](#ssec-check-phase) and is
 therefore not added to `dependencies`.
 
 In the previous case we had only dependencies on other Python packages to consider.
@@ -1031,7 +1014,6 @@ when building the bindings and are therefore added as [`buildInputs`](#var-stden
 , buildPythonPackage
 , fetchPypi
 , setuptools
-, wheel
 , libxml2
 , libxslt
 }:
@@ -1048,7 +1030,6 @@ buildPythonPackage rec {
 
   build-system = [
     setuptools
-    wheel
   ];
 
   buildInputs = [
@@ -1056,6 +1037,14 @@ buildPythonPackage rec {
     libxslt
   ];
 
+  # tests are meant to be ran "in-place" in the same directory as src
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "lxml"
+    "lxml.etree"
+  ];
+
   meta = {
     changelog = "https://github.com/lxml/lxml/releases/tag/lxml-${version}";
     description = "Pythonic binding for the libxml2 and libxslt libraries";
@@ -1083,7 +1072,6 @@ therefore we have to set `LDFLAGS` and `CFLAGS`.
 
 # build dependencies
 , setuptools
-, wheel
 
 # dependencies
 , fftw
@@ -1094,7 +1082,7 @@ therefore we have to set `LDFLAGS` and `CFLAGS`.
 }:
 
 buildPythonPackage rec {
-  pname = "pyFFTW";
+  pname = "pyfftw";
   version = "0.9.2";
   pyproject = true;
 
@@ -1105,7 +1093,6 @@ buildPythonPackage rec {
 
   build-system = [
     setuptools
-    wheel
   ];
 
   buildInputs = [
@@ -1127,6 +1114,8 @@ buildPythonPackage rec {
   # Tests cannot import pyfftw. pyfftw works fine though.
   doCheck = false;
 
+  pythonImportsCheck = [ "pyfftw" ];
+
   meta = {
     changelog = "https://github.com/pyFFTW/pyFFTW/releases/tag/v${version}";
     description = "A pythonic wrapper around FFTW, the FFT library, presenting a unified interface for all the supported transforms";
@@ -1142,10 +1131,8 @@ Note also the line [`doCheck = false;`](#var-stdenv-doCheck), we explicitly disa
 
 It is highly encouraged to have testing as part of the package build. This
 helps to avoid situations where the package was able to build and install,
-but is not usable at runtime. Currently, all packages will use the `test`
-command provided by the setup.py (i.e. `python setup.py test`). However,
-this is currently deprecated https://github.com/pypa/setuptools/pull/1878
-and your package should provide its own [`checkPhase`](#ssec-check-phase).
+but is not usable at runtime.
+Your package should provide its own [`checkPhase`](#ssec-check-phase).
 
 ::: {.note}
 The [`checkPhase`](#ssec-check-phase) for python maps to the `installCheckPhase` on a
@@ -1216,9 +1203,11 @@ been removed, in this case, it's recommended to use `pytestCheckHook`.
 
 #### Using pytestCheckHook {#using-pytestcheckhook}
 
-`pytestCheckHook` is a convenient hook which will substitute the setuptools
-`test` command for a [`checkPhase`](#ssec-check-phase) which runs `pytest`. This is also beneficial
+`pytestCheckHook` is a convenient hook which will set up (or configure)
+a [`checkPhase`](#ssec-check-phase) to run `pytest`. This is also beneficial
 when a package may need many items disabled to run the test suite.
+Most packages use `pytest` or `unittest`, which is compatible with `pytest`,
+so you will most likely use `pytestCheckHook`.
 
 Using the example above, the analogous `pytestCheckHook` usage would be:
 
@@ -1373,10 +1362,12 @@ instead of a dev dependency).
 Keep in mind that while the examples above are done with `requirements.txt`,
 `pythonRelaxDepsHook` works by modifying the resulting wheel file, so it should
 work with any of the [existing hooks](#setup-hooks).
+It indicates that `pythonRelaxDepsHook` has no effect on build time dependencies, such as in `build-system`.
+If a package requires incompatible build time dependencies, they should be removed in `postPatch` with `substituteInPlace` or something similar.
 
 #### Using unittestCheckHook {#using-unittestcheckhook}
 
-`unittestCheckHook` is a hook which will substitute the setuptools `test` command for a [`checkPhase`](#ssec-check-phase) which runs `python -m unittest discover`:
+`unittestCheckHook` is a hook which will set up (or configure) a [`checkPhase`](#ssec-check-phase) to run `python -m unittest discover`:
 
 ```nix
 {
@@ -1390,6 +1381,8 @@ work with any of the [existing hooks](#setup-hooks).
 }
 ```
 
+`pytest` is compatible with `unittest`, so in most cases you can use `pytestCheckHook` instead.
+
 #### Using sphinxHook {#using-sphinxhook}
 
 The `sphinxHook` is a helpful tool to build documentation and manpages
@@ -1468,7 +1461,6 @@ We first create a function that builds `toolz` in `~/path/to/toolz/release.nix`
 , buildPythonPackage
 , fetchPypi
 , setuptools
-, wheel
 }:
 
 buildPythonPackage rec {
@@ -1483,7 +1475,6 @@ buildPythonPackage rec {
 
   build-system = [
     setuptools
-    wheel
   ];
 
   meta = {
@@ -1503,10 +1494,9 @@ with import <nixpkgs> {};
 
 ( let
     toolz = callPackage /path/to/toolz/release.nix {
-      buildPythonPackage = python310
-Packages.buildPythonPackage;
+      buildPythonPackage = python3Packages.buildPythonPackage;
     };
-  in python310.withPackages (ps: [
+  in python3.withPackages (ps: [
     ps.numpy
     toolz
   ])
@@ -1927,6 +1917,8 @@ because we can only provide security support for non-vendored dependencies.
 We recommend [nix-init](https://github.com/nix-community/nix-init) for creating new python packages within nixpkgs,
 as it already prefetches the source, parses dependencies for common formats and prefills most things in `meta`.
 
+See also [contributing section](#contributing).
+
 ### Are Python interpreters built deterministically? {#deterministic-builds}
 
 The Python interpreters are now built deterministically. Minor modifications had
@@ -1944,16 +1936,15 @@ Both are also exported in `nix-shell`.
 It is recommended to test packages as part of the build process.
 Source distributions (`sdist`) often include test files, but not always.
 
-By default the command `python setup.py test` is run as part of the
-[`checkPhase`](#ssec-check-phase), but often it is necessary to pass a custom [`checkPhase`](#ssec-check-phase). An
-example of such a situation is when `py.test` is used.
+The best practice today is to pass a test hook (e.g. pytestCheckHook, unittestCheckHook) into nativeCheckInputs.
+This will reconfigure the checkPhase to make use of that particular test framework.
+Occasionally packages don't make use of a common test framework, which may then require a custom checkPhase.
 
 #### Common issues {#common-issues}
 
-* Non-working tests can often be deselected. By default [`buildPythonPackage`](#buildpythonpackage-function)
-  runs `python setup.py test`. which is deprecated. Most Python modules however
-  do follow the standard test protocol where the pytest runner can be used
-  instead. `pytest` supports the `-k` and `--ignore` parameters to ignore test
+* Non-working tests can often be deselected. Most Python modules
+  do follow the standard test protocol where the pytest runner can be used.
+  `pytest` supports the `-k` and `--ignore` parameters to ignore test
   methods or classes as well as whole files. For `pytestCheckHook` these are
   conveniently exposed as `disabledTests` and `disabledTestPaths` respectively.
 
@@ -1994,14 +1985,25 @@ The following rules are desired to be respected:
 * Python applications live outside of `python-packages.nix` and are packaged
   with [`buildPythonApplication`](#buildpythonapplication-function).
 * Make sure libraries build for all Python interpreters.
-* By default we enable tests. Make sure the tests are found and, in the case of
+  If it fails to build on some Python versions, consider disabling them by setting `disable = pythonAtLeast "3.x"` along with a comment.
+* The two parameters, `pyproject` and `build-system` are set to avoid the legacy setuptools/distutils build.
+* Only unversioned attributes (e.g. `pydantic`, but not `pypdantic_1`) can be included in `dependencies`,
+  since due to `PYTHONPATH` limitations we can only ever support a single version for libraries
+  without running into duplicate module name conflicts.
+* The version restrictions of `dependencies` can be relaxed by [`pythonRelaxDepsHook`](#using-pythonrelaxdepshook).
+* Make sure the tests are enabled using for example [`pytestCheckHook`](#using-pytestcheckhook) and, in the case of
   libraries, are passing for all interpreters. If certain tests fail they can be
   disabled individually. Try to avoid disabling the tests altogether. In any
   case, when you disable tests, leave a comment explaining why.
+* `pythonImportsCheck` is set. This is still a good smoke test even if `pytestCheckHook` is set.
+* `meta.platforms` takes the default value in many cases.
+  It does not need to be set explicitly unless the package requires a specific platform.
+* The file is formatted with `nixfmt-rfc-style`.
 * Commit names of Python libraries should reflect that they are Python
   libraries, so write for example `python311Packages.numpy: 1.11 -> 1.12`.
   It is highly recommended to specify the current default version to enable
   automatic build by ofborg.
+  Note that `pythonPackages` is an alias for `python27Packages`.
 * Attribute names in `python-packages.nix` as well as `pname`s should match the
   library's name on PyPI, but be normalized according to [PEP
   0503](https://www.python.org/dev/peps/pep-0503/#normalized-names). This means
@@ -2015,6 +2017,8 @@ The following rules are desired to be respected:
 * Attribute names in `python-packages.nix` should be sorted alphanumerically to
   avoid merge conflicts and ease locating attributes.
 
+This list is useful for reviewers as well as for self-checking when submitting packages.
+
 ## Package set maintenance {#python-package-set-maintenance}
 
 The whole Python package set has a lot of packages that do not see regular
diff --git a/doc/languages-frameworks/rust.section.md b/doc/languages-frameworks/rust.section.md
index 8a1007b7bb8a9..e12bbe02bfb52 100644
--- a/doc/languages-frameworks/rust.section.md
+++ b/doc/languages-frameworks/rust.section.md
@@ -254,7 +254,7 @@ By default, it takes the `stdenv.hostPlatform.config` and replaces components
 where they are known to differ. But there are ways to customize the argument:
 
  - To choose a different target by name, define
-   `stdenv.hostPlatform.rustc.config` as that name (a string), and that
+   `stdenv.hostPlatform.rust.rustcTarget` as that name (a string), and that
    name will be used instead.
 
    For example:
@@ -262,7 +262,7 @@ where they are known to differ. But there are ways to customize the argument:
    ```nix
    import <nixpkgs> {
      crossSystem = (import <nixpkgs/lib>).systems.examples.armhf-embedded // {
-       rustc.config = "thumbv7em-none-eabi";
+       rust.rustcTarget = "thumbv7em-none-eabi";
      };
    }
    ```
@@ -274,10 +274,10 @@ where they are known to differ. But there are ways to customize the argument:
    ```
 
  - To pass a completely custom target, define
-   `stdenv.hostPlatform.rustc.config` with its name, and
-   `stdenv.hostPlatform.rustc.platform` with the value.  The value will be
+   `stdenv.hostPlatform.rust.rustcTarget` with its name, and
+   `stdenv.hostPlatform.rust.platform` with the value.  The value will be
    serialized to JSON in a file called
-   `${stdenv.hostPlatform.rustc.config}.json`, and the path of that file
+   `${stdenv.hostPlatform.rust.rustcTarget}.json`, and the path of that file
    will be used instead.
 
    For example:
@@ -285,8 +285,8 @@ where they are known to differ. But there are ways to customize the argument:
    ```nix
    import <nixpkgs> {
      crossSystem = (import <nixpkgs/lib>).systems.examples.armhf-embedded // {
-       rustc.config = "thumb-crazy";
-       rustc.platform = { foo = ""; bar = ""; };
+       rust.rustcTarget = "thumb-crazy";
+       rust.platform = { foo = ""; bar = ""; };
      };
    }
    ```
diff --git a/doc/packages/linux.section.md b/doc/packages/linux.section.md
index 4c3b2a3b132a1..90d14772134ba 100644
--- a/doc/packages/linux.section.md
+++ b/doc/packages/linux.section.md
@@ -40,31 +40,29 @@ pkgs.linux_latest.override {
 ## Manual kernel configuration {#sec-manual-kernel-configuration}
 
 Sometimes it may not be desirable to use kernels built with `pkgs.buildLinux`, especially if most of the common configuration has to be altered or disabled to achieve a kernel as expected by the target use case.
-An example of this is building a kernel for use in a VM or micro VM. You can use `pkgs.linuxManualConfig` in these cases. It requires the `src`, `version`, and `configfile` attributes to be specified.
+An example of this is building a kernel for use in a VM or micro VM. You can use `pkgs.linuxPackages_custom` in these cases. It requires the `src`, `version`, and `configfile` attributes to be specified.
 
 :::{.example #ex-using-linux-manual-config}
 
-# Using `pkgs.linuxManualConfig` with a specific source, version, and config file
+# Using `pkgs.linuxPackages_custom` with a specific source, version, and config file
 
 ```nix
-{ pkgs, ... }: {
+{ pkgs, ... }:
+pkgs.linuxPackages_custom {
   version = "6.1.55";
   src = pkgs.fetchurl {
     url = "https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-${version}.tar.xz";
     hash = "sha256:1h0mzx52q9pvdv7rhnvb8g68i7bnlc9rf8gy9qn4alsxq4g28zm8";
   };
   configfile = ./path_to_config_file;
-  linux = pkgs.linuxManualConfig {
-    inherit version src configfile;
-    allowImportFromDerivation = true;
-  };
 }
 ```
 
 If necessary, the version string can be slightly modified to explicitly mark it as a custom version. If you do so, ensure the `modDirVersion` attribute matches the source's version, otherwise the build will fail.
 
 ```nix
-{ pkgs, ... }: {
+{ pkgs, ... }:
+pkgs.linuxPackages_custom {
   version = "6.1.55-custom";
   modDirVersion = "6.1.55";
   src = pkgs.fetchurl {
@@ -72,16 +70,12 @@ If necessary, the version string can be slightly modified to explicitly mark it
     hash = "sha256:1h0mzx52q9pvdv7rhnvb8g68i7bnlc9rf8gy9qn4alsxq4g28zm8";
   };
   configfile = ./path_to_config_file;
-  linux = pkgs.linuxManualConfig {
-    inherit version modDirVersion src configfile;
-    allowImportFromDerivation = true;
-  };
 }
 ```
 
 :::
 
-Additional attributes can be used with `linuxManualConfig` for further customisation. You're encouraged to read [the `pkgs.linuxManualConfig` source code](https://github.com/NixOS/nixpkgs/blob/d77bda728d5041c1294a68fb25c79e2d161f62b9/pkgs/os-specific/linux/kernel/manual-config.nix) to understand how to use them.
+Additional attributes can be used with `linuxManualConfig` for further customisation instead of `linuxPackages_custom`. You're encouraged to read [the `pkgs.linuxManualConfig` source code](https://github.com/NixOS/nixpkgs/blob/d77bda728d5041c1294a68fb25c79e2d161f62b9/pkgs/os-specific/linux/kernel/manual-config.nix) to understand how to use them.
 
 To edit the `.config` file for Linux X.Y from within Nix, proceed as follows:
 
diff --git a/doc/stdenv.md b/doc/stdenv.md
index 1ef81f84b5141..d49f7cb2d1000 100644
--- a/doc/stdenv.md
+++ b/doc/stdenv.md
@@ -3,6 +3,7 @@
 ```{=include=} chapters
 stdenv/stdenv.chapter.md
 stdenv/meta.chapter.md
+stdenv/passthru.chapter.md
 stdenv/multiple-output.chapter.md
 stdenv/cross-compilation.chapter.md
 stdenv/platform-notes.chapter.md
diff --git a/doc/stdenv/meta.chapter.md b/doc/stdenv/meta.chapter.md
index 575d3368326d6..b5955b96eeb64 100644
--- a/doc/stdenv/meta.chapter.md
+++ b/doc/stdenv/meta.chapter.md
@@ -110,83 +110,6 @@ Some packages use this to automatically detect the maximum set of features with
 For example, `systemd` [requires dynamic linking](https://github.com/systemd/systemd/issues/20600#issuecomment-912338965), and [has a `meta.badPlatforms` setting](https://github.com/NixOS/nixpkgs/blob/b03ac42b0734da3e7be9bf8d94433a5195734b19/pkgs/os-specific/linux/systemd/default.nix#L752) similar to the one above.
 Packages which can be built with or without `systemd` support will use `lib.meta.availableOn` to detect whether or not `systemd` is available on the [`hostPlatform`](#ssec-cross-platform-parameters) for which they are being built; if it is not available (e.g. due to a statically-linked host platform like `pkgsStatic`) this support will be disabled by default.
 
-### `tests` {#var-meta-tests}
-
-::: {.warning}
-This attribute is special in that it is not actually under the `meta` attribute set but rather under the `passthru` attribute set. This is due to how `meta` attributes work, and the fact that they are supposed to contain only metadata, not derivations.
-:::
-
-An attribute set with tests as values. A test is a derivation that builds when the test passes and fails to build otherwise.
-
-You can run these tests with:
-
-```ShellSession
-$ cd path/to/nixpkgs
-$ nix-build -A your-package.tests
-```
-
-#### Package tests {#var-meta-tests-packages}
-
-Tests that are part of the source package are often executed in the `installCheckPhase`.
-
-Prefer `passthru.tests` for tests that are introduced in nixpkgs because:
-
-* `passthru.tests` tests the 'real' package, independently from the environment in which it was built
-* we can run `passthru.tests` independently
-* `installCheckPhase` adds overhead to each build
-
-For more on how to write and run package tests, see [](#sec-package-tests).
-
-#### NixOS tests {#var-meta-tests-nixos}
-
-The NixOS tests are available as `nixosTests` in parameters of derivations. For instance, the OpenSMTPD derivation includes lines similar to:
-
-```nix
-{ /* ... , */ nixosTests }:
-{
-  # ...
-  passthru.tests = {
-    basic-functionality-and-dovecot-integration = nixosTests.opensmtpd;
-  };
-}
-```
-
-NixOS tests run in a VM, so they are slower than regular package tests. For more information see [NixOS module tests](https://nixos.org/manual/nixos/stable/#sec-nixos-tests).
-
-Alternatively, you can specify other derivations as tests. You can make use of
-the optional parameter to inject the correct package without
-relying on non-local definitions, even in the presence of `overrideAttrs`.
-Here that's `finalAttrs.finalPackage`, but you could choose a different name if
-`finalAttrs` already exists in your scope.
-
-`(mypkg.overrideAttrs f).passthru.tests` will be as expected, as long as the
-definition of `tests` does not rely on the original `mypkg` or overrides it in
-all places.
-
-```nix
-# my-package/default.nix
-{ stdenv, callPackage }:
-stdenv.mkDerivation (finalAttrs: {
-  # ...
-  passthru.tests.example = callPackage ./example.nix { my-package = finalAttrs.finalPackage; };
-})
-```
-
-```nix
-# my-package/example.nix
-{ runCommand, lib, my-package, ... }:
-runCommand "my-package-test" {
-  nativeBuildInputs = [ my-package ];
-  src = lib.sources.sourcesByRegex ./. [ ".*.in" ".*.expected" ];
-} ''
-  my-package --help
-  my-package <example.in >example.actual
-  diff -U3 --color=auto example.expected example.actual
-  mkdir $out
-''
-```
-
-
 ### `timeout` {#var-meta-timeout}
 
 A timeout (in seconds) for building the derivation. If the derivation takes longer than this time to build, Hydra will fail it due to breaking the timeout. However, all computers do not have the same computing power, hence some builders may decide to apply a multiplicative factor to this value. When filling this value in, try to keep it approximately consistent with other values already present in `nixpkgs`.
diff --git a/doc/stdenv/passthru.chapter.md b/doc/stdenv/passthru.chapter.md
new file mode 100644
index 0000000000000..008b908b2f48e
--- /dev/null
+++ b/doc/stdenv/passthru.chapter.md
@@ -0,0 +1,157 @@
+# Passthru-attributes {#chap-passthru}
+[]{#var-stdenv-passthru} []{#special-variables} <!-- legacy anchors -->
+
+As opposed to most other `mkDerivation` input attributes, `passthru` is not passed to the derivation's [`builder` executable](https://nixos.org/manual/nix/stable/expressions/derivations.html#attr-builder).
+Changing it will not trigger a rebuild – it is "passed through".
+Its value can be accessed as if it was set inside a derivation.
+
+::: {.note}
+`passthru` attributes follow no particular schema, but there are a few [conventional patterns](#sec-common-passthru-attributes).
+:::
+
+:::{.example #ex-accessing-passthru}
+
+## Setting and accessing `passthru` attributes
+
+```nix
+{ stdenv, fetchGit }:
+let
+  hello = stdenv.mkDerivation {
+    pname = "hello";
+    src = fetchGit { /* ... */ };
+
+    passthru = {
+      foo = "bar";
+      baz = {
+        value1 = 4;
+        value2 = 5;
+      };
+    };
+  };
+in
+hello.baz.value1
+```
+
+```
+4
+```
+:::
+
+## Common `passthru`-attributes {#sec-common-passthru-attributes}
+
+Many `passthru` attributes are situational, so this section only lists recurring patterns.
+They fall in one of these categories:
+
+- Global conventions, which are applied almost universally in Nixpkgs.
+
+  Generally these don't entail any special support built into the derivation they belong to.
+  Common examples of this type are [`passthru.tests`](#var-passthru-tests) and [`passthru.updateScript`](#var-passthru-updateScript).
+
+- Conventions for adding extra functionality to a derivation.
+
+  These tend to entail support from the derivation or the `passthru` attribute in question.
+  Common examples of this type are `passthru.optional-dependencies`, `passthru.withPlugins`, and `passthru.withPackages`.
+  All of those allow associating the package with a set of components built for that specific package, such as when building Python runtime environments using (`python.withPackages`)[#python.withpackages-function].
+
+Attributes that apply only to particular [build helpers](#part-builders) or [language ecosystems](#chap-language-support) are documented there.
+
+### `passthru.tests` {#var-passthru-tests}
+[]{#var-meta-tests} <!-- legacy anchor -->
+
+An attribute set with tests as values.
+A test is a derivation that builds when the test passes and fails to build otherwise.
+
+Run these tests with:
+
+```ShellSession
+$ cd path/to/nixpkgs
+$ nix-build -A your-package.tests
+```
+
+:::{.note}
+The Nixpkgs systems for continuous integration [Hydra](https://hydra.nixos.org/) and [`nixpkgs-review`](https://github.com/Mic92/nixpkgs-review) don't build these derivations by default, and ([`@ofborg`](https://github.com/NixOS/ofborg)) only builds them when evaluating pull requests for that particular package, or when manually instructed.
+:::
+
+#### Package tests {#var-passthru-tests-packages}
+[]{#var-meta-tests-packages} <!-- legacy anchor -->
+
+Tests that are part of the source package, if they run quickly, are typically executed in the [`installCheckPhase`](#var-stdenv-phases).
+This phase is also suitable for performing a `--version` test for packages that support such flag.
+Most programs distributed by Nixpkgs support such a `--version` flag, and successfully calling the program with that flag indicates that the package at least got compiled properly.
+
+:::{.example #ex-checking-build-installCheckPhase}
+
+## Checking builds with `installCheckPhase`
+
+When building `git`, a rudimentary test for successful compilation would be running `git --version`:
+
+```nix
+stdenv.mkDerivation (finalAttrs: {
+  pname = "git";
+  version = "1.2.3";
+  # ...
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    echo checking if 'git --version' mentions ${finalAttrs.version}
+    $out/bin/git --version | grep ${finalAttrs.version}
+    runHook postInstallCheck
+  '';
+  # ...
+})
+```
+:::
+
+However, tests that are non-trivial will better fit into `passthru.tests` because they:
+
+- Access the package as consumers would, independently from the environment in which it was built
+- Can be run and debugged without rebuilding the package, which is useful if that takes a long time
+- Don't add overhad to each build, as opposed to `installCheckPhase`
+
+It is also possible to use `passthru.tests` to test the version with [`testVersion`](#tester-testVersion).
+
+<!-- NOTE(@fricklerhandwerk): one may argue whether that testing guide should rather be in the user's manual -->
+For more on how to write and run package tests for Nixpkgs, see the [testing section in the package contributor guide](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#package-tests).
+
+#### NixOS tests {#var-passthru-tests-nixos}
+[]{#var-meta-tests-nixos} <!-- legacy anchor -->
+
+Tests written for NixOS are available as the `nixosTests` argument to package recipes.
+For instance, the [OpenSMTPD derivation](https://search.nixos.org/packages?show=opensmtpd) includes lines similar to:
+
+```nix
+{ nixosTests, ... }:
+{
+  # ...
+  passthru.tests = {
+    basic-functionality-and-dovecot-integration = nixosTests.opensmtpd;
+  };
+}
+```
+
+NixOS tests run in a virtual machine (VM), so they are slower than regular package tests.
+For more information see the NixOS manual on [NixOS module tests](https://nixos.org/manual/nixos/stable/#sec-nixos-tests).
+
+### `passthru.updateScript` {#var-passthru-updateScript}
+<!-- legacy anchors -->
+[]{#var-passthru-updateScript-command}
+[]{#var-passthru-updateScript-set-command}
+[]{#var-passthru-updateScript-set-attrPath}
+[]{#var-passthru-updateScript-set-supportedFeatures}
+[]{#var-passthru-updateScript-env-UPDATE_NIX_NAME}
+[]{#var-passthru-updateScript-env-UPDATE_NIX_PNAME}
+[]{#var-passthru-updateScript-env-UPDATE_NIX_OLD_VERSION}
+[]{#var-passthru-updateScript-env-UPDATE_NIX_ATTR_PATH}
+[]{#var-passthru-updateScript-execution}
+[]{#var-passthru-updateScript-supported-features}
+[]{#var-passthru-updateScript-commit}
+[]{#var-passthru-updateScript-commit-attrPath}
+[]{#var-passthru-updateScript-commit-oldVersion}
+[]{#var-passthru-updateScript-commit-newVersion}
+[]{#var-passthru-updateScript-commit-files}
+[]{#var-passthru-updateScript-commit-commitBody}
+[]{#var-passthru-updateScript-commit-commitMessage}
+[]{#var-passthru-updateScript-example-commit}
+
+Nixpkgs tries to automatically update all packages that have an `passthru.updateScript` attribute.
+See the [section on automatic package updates in the package contributor guide](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#automatic-package-updates) for details.
diff --git a/doc/stdenv/stdenv.chapter.md b/doc/stdenv/stdenv.chapter.md
index f3cdb1f2dc0c0..400fa2de1e764 100644
--- a/doc/stdenv/stdenv.chapter.md
+++ b/doc/stdenv/stdenv.chapter.md
@@ -442,145 +442,6 @@ If set to `true`, `stdenv` will pass specific flags to `make` and other build to
 
 Unless set to `false`, some build systems with good support for parallel building including `cmake`, `meson`, and `qmake` will set it to `true`.
 
-### Special variables {#special-variables}
-
-#### `passthru` {#var-stdenv-passthru}
-
-This is an attribute set which can be filled with arbitrary values. For example:
-
-```nix
-{
-  passthru = {
-    foo = "bar";
-    baz = {
-      value1 = 4;
-      value2 = 5;
-    };
-  };
-}
-```
-
-Values inside it are not passed to the builder, so you can change them without triggering a rebuild. However, they can be accessed outside of a derivation directly, as if they were set inside a derivation itself, e.g. `hello.baz.value1`. We don’t specify any usage or schema of `passthru` - it is meant for values that would be useful outside the derivation in other parts of a Nix expression (e.g. in other derivations). An example would be to convey some specific dependency of your derivation which contains a program with plugins support. Later, others who make derivations with plugins can use passed-through dependency to ensure that their plugin would be binary-compatible with built program.
-
-#### `passthru.updateScript` {#var-passthru-updateScript}
-
-A script to be run by `maintainers/scripts/update.nix` when the package is matched. The attribute can contain one of the following:
-
-- []{#var-passthru-updateScript-command} an executable file, either on the file system:
-
-  ```nix
-  {
-    passthru.updateScript = ./update.sh;
-  }
-  ```
-
-  or inside the expression itself:
-
-  ```nix
-  {
-    passthru.updateScript = writeScript "update-zoom-us" ''
-      #!/usr/bin/env nix-shell
-      #!nix-shell -i bash -p curl pcre2 common-updater-scripts
-
-      set -eu -o pipefail
-
-      version="$(curl -sI https://zoom.us/client/latest/zoom_x86_64.tar.xz | grep -Fi 'Location:' | pcre2grep -o1 '/(([0-9]\.?)+)/')"
-      update-source-version zoom-us "$version"
-    '';
-  }
-  ```
-
-- a list, a script followed by arguments to be passed to it:
-
-  ```nix
-  {
-    passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ];
-  }
-  ```
-
-- an attribute set containing:
-  - [`command`]{#var-passthru-updateScript-set-command} – a string or list in the [format expected by `passthru.updateScript`](#var-passthru-updateScript-command).
-  - [`attrPath`]{#var-passthru-updateScript-set-attrPath} (optional) – a string containing the canonical attribute path for the package. If present, it will be passed to the update script instead of the attribute path on which the package was discovered during Nixpkgs traversal.
-  - [`supportedFeatures`]{#var-passthru-updateScript-set-supportedFeatures} (optional) – a list of the [extra features](#var-passthru-updateScript-supported-features) the script supports.
-
-  ```nix
-  {
-    passthru.updateScript = {
-      command = [ ../../update.sh pname ];
-      attrPath = pname;
-      supportedFeatures = [ /* ... */ ];
-    };
-  }
-  ```
-
-::: {.tip}
-A common pattern is to use the [`nix-update-script`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/common-updater/nix-update.nix) attribute provided in Nixpkgs, which runs [`nix-update`](https://github.com/Mic92/nix-update):
-
-```nix
-{
-  passthru.updateScript = nix-update-script { };
-}
-```
-
-For simple packages, this is often enough, and will ensure that the package is updated automatically by [`nixpkgs-update`](https://ryantm.github.io/nixpkgs-update) when a new version is released. The [update bot](https://nix-community.org/update-bot) runs periodically to attempt to automatically update packages, and will run `passthru.updateScript` if set. While not strictly necessary if the project is listed on [Repology](https://repology.org), using `nix-update-script` allows the package to update via many more sources (e.g. GitHub releases).
-:::
-
-##### How update scripts are executed? {#var-passthru-updateScript-execution}
-
-Update scripts are to be invoked by `maintainers/scripts/update.nix` script. You can run `nix-shell maintainers/scripts/update.nix` in the root of Nixpkgs repository for information on how to use it. `update.nix` offers several modes for selecting packages to update (e.g. select by attribute path, traverse Nixpkgs and filter by maintainer, etc.), and it will execute update scripts for all matched packages that have an `updateScript` attribute.
-
-Each update script will be passed the following environment variables:
-
-- [`UPDATE_NIX_NAME`]{#var-passthru-updateScript-env-UPDATE_NIX_NAME} – content of the `name` attribute of the updated package.
-- [`UPDATE_NIX_PNAME`]{#var-passthru-updateScript-env-UPDATE_NIX_PNAME} – content of the `pname` attribute of the updated package.
-- [`UPDATE_NIX_OLD_VERSION`]{#var-passthru-updateScript-env-UPDATE_NIX_OLD_VERSION} – content of the `version` attribute of the updated package.
-- [`UPDATE_NIX_ATTR_PATH`]{#var-passthru-updateScript-env-UPDATE_NIX_ATTR_PATH} – attribute path the `update.nix` discovered the package on (or the [canonical `attrPath`](#var-passthru-updateScript-set-attrPath) when available). Example: `pantheon.elementary-terminal`
-
-::: {.note}
-An update script will be usually run from the root of the Nixpkgs repository but you should not rely on that. Also note that `update.nix` executes update scripts in parallel by default so you should avoid running `git commit` or any other commands that cannot handle that.
-:::
-
-::: {.tip}
-While update scripts should not create commits themselves, `maintainers/scripts/update.nix` supports automatically creating commits when running it with `--argstr commit true`. If you need to customize commit message, you can have the update script implement [`commit`](#var-passthru-updateScript-commit) feature.
-:::
-
-##### Supported features {#var-passthru-updateScript-supported-features}
-###### `commit` {#var-passthru-updateScript-commit}
-
-This feature allows update scripts to *ask* `update.nix` to create Git commits.
-
-When support of this feature is declared, whenever the update script exits with `0` return status, it is expected to print a JSON list containing an object described below for each updated attribute to standard output.
-
-When `update.nix` is run with `--argstr commit true` arguments, it will create a separate commit for each of the objects. An empty list can be returned when the script did not update any files, for example, when the package is already at the latest version.
-
-The commit object contains the following values:
-
-- [`attrPath`]{#var-passthru-updateScript-commit-attrPath} – a string containing attribute path.
-- [`oldVersion`]{#var-passthru-updateScript-commit-oldVersion} – a string containing old version.
-- [`newVersion`]{#var-passthru-updateScript-commit-newVersion} – a string containing new version.
-- [`files`]{#var-passthru-updateScript-commit-files} – a non-empty list of file paths (as strings) to add to the commit.
-- [`commitBody`]{#var-passthru-updateScript-commit-commitBody} (optional) – a string with extra content to be appended to the default commit message (useful for adding changelog links).
-- [`commitMessage`]{#var-passthru-updateScript-commit-commitMessage} (optional) – a string to use instead of the default commit message.
-
-If the returned array contains exactly one object (e.g. `[{}]`), all values are optional and will be determined automatically.
-
-::: {.example #var-passthru-updateScript-example-commit}
-# Standard output of an update script using commit feature
-
-```json
-[
-  {
-    "attrPath": "volume_key",
-    "oldVersion": "0.3.11",
-    "newVersion": "0.3.12",
-    "files": [
-      "/path/to/nixpkgs/pkgs/development/libraries/volume-key/default.nix"
-    ]
-  }
-]
-```
-:::
-
 ### Fixed-point arguments of `mkDerivation` {#mkderivation-recursive-attributes}
 
 If you pass a function to `mkDerivation`, it will receive as its argument the final arguments, including the overrides when reinvoked via `overrideAttrs`. For example:
@@ -633,7 +494,7 @@ in pkg
 
 Unlike the `pkg` binding in the above example, the `finalAttrs` parameter always references the final attributes. For instance `(pkg.overrideAttrs(x)).finalAttrs.finalPackage` is identical to `pkg.overrideAttrs(x)`, whereas `(pkg.overrideAttrs(x)).original` is the same as the original `pkg`.
 
-See also the section about [`passthru.tests`](#var-meta-tests).
+See also the section about [`passthru.tests`](#var-passthru-tests).
 
 ## Phases {#sec-stdenv-phases}
 
@@ -1145,7 +1006,7 @@ This setup works as follows:
 The installCheck phase checks whether the package was installed correctly by running its test suite against the installed directories. The default `installCheck` calls `make installcheck`.
 
 It is often better to add tests that are not part of the source distribution to `passthru.tests` (see
-[](#var-meta-tests)). This avoids adding overhead to every build and enables us to run them independently.
+[](#var-passthru-tests)). This avoids adding overhead to every build and enables us to run them independently.
 
 #### Variables controlling the installCheck phase {#variables-controlling-the-installcheck-phase}
 
@@ -1558,6 +1419,8 @@ Both parameters take a list of flags as strings. The special `"all"` flag can be
 
 For more in-depth information on these hardening flags and hardening in general, refer to the [Debian Wiki](https://wiki.debian.org/Hardening), [Ubuntu Wiki](https://wiki.ubuntu.com/Security/Features), [Gentoo Wiki](https://wiki.gentoo.org/wiki/Project:Hardened), and the [Arch Wiki](https://wiki.archlinux.org/title/Security).
 
+Note that support for some hardening flags varies by compiler, CPU architecture, target OS and libc. Combinations of these that don't support a particular hardening flag will silently ignore attempts to enable it. To see exactly which hardening flags are being employed in any invocation, the `NIX_DEBUG` environment variable can be used.
+
 ### Hardening flags enabled by default {#sec-hardening-flags-enabled-by-default}
 
 The following flags are enabled by default and might require disabling with `hardeningDisable` if the program to package is incompatible.
@@ -1607,6 +1470,16 @@ installwatch.c:3751:5: error: conflicting types for '__open_2'
 fcntl2.h:50:4: error: call to '__open_missing_mode' declared with attribute error: open with O_CREAT or O_TMPFILE in second argument needs 3 arguments
 ```
 
+Disabling `fortify` implies disablement of `fortify3`
+
+#### `fortify3` {#fortify3}
+
+Adds the `-O2 -D_FORTIFY_SOURCE=3` compiler options. This expands the cases that can be protected by fortify-checks to include some situations with dynamic-length buffers whose length can be inferred at runtime using compiler hints.
+
+Enabling this flag implies enablement of `fortify`. Disabling this flag does not imply disablement of `fortify`.
+
+This flag can sometimes conflict with a build-system's own attempts at enabling fortify support and result in errors complaining about `redefinition of _FORTIFY_SOURCE`.
+
 #### `pic` {#pic}
 
 Adds the `-fPIC` compiler options. This options adds support for position independent code in shared libraries and thus making ASLR possible.
@@ -1655,6 +1528,16 @@ Adds the `-fPIE` compiler and `-pie` linker options. Position Independent Execut
 Static libraries need to be compiled with `-fPIE` so that executables can link them in with the `-pie` linker option.
 If the libraries lack `-fPIE`, you will get the error `recompile with -fPIE`.
 
+#### `zerocallusedregs` {#zerocallusedregs}
+
+Adds the `-fzero-call-used-regs=used-gpr` compiler option. This causes the general-purpose registers that an architecture's calling convention considers "call-used" to be zeroed on return from the function. This can make it harder for attackers to construct useful ROP gadgets and also reduces the chance of data leakage from a function call.
+
+#### `trivialautovarinit` {#trivialautovarinit}
+
+Adds the `-ftrivial-auto-var-init=pattern` compiler option. This causes "trivially-initializable" uninitialized stack variables to be forcibly initialized with a nonzero value that is likely to cause a crash (and therefore be noticed). Uninitialized variables generally take on their values based on fragments of previous program state, and attackers can carefully manipulate that state to craft malicious initial values for these variables.
+
+Use of this flag is controversial as it can prevent tools that detect uninitialized variable use (such as valgrind) from operating correctly.
+
 [^footnote-stdenv-ignored-build-platform]: The build platform is ignored because it is a mere implementation detail of the package satisfying the dependency: As a general programming principle, dependencies are always *specified* as interfaces, not concrete implementation.
 [^footnote-stdenv-native-dependencies-in-path]: Currently, this means for native builds all dependencies are put on the `PATH`. But in the future that may not be the case for sake of matching cross: the platforms would be assumed to be unique for native and cross builds alike, so only the `depsBuild*` and `nativeBuildInputs` would be added to the `PATH`.
 [^footnote-stdenv-propagated-dependencies]: Nix itself already takes a package’s transitive dependencies into account, but this propagation ensures nixpkgs-specific infrastructure like [setup hooks](#ssec-setup-hooks) also are run as if it were a propagated dependency.
diff --git a/doc/style.css b/doc/style.css
index 5bc587a6ee308..f517733be9727 100644
--- a/doc/style.css
+++ b/doc/style.css
@@ -431,6 +431,11 @@ div.appendix .informaltable td {
     padding: 0.5rem;
 }
 
+div.book .variablelist .term,
+div.appendix .variablelist .term {
+    font-weight: 500;
+}
+
 /*
   This relies on highlight.js applying certain classes on the prompts.
   For more details, see https://highlightjs.readthedocs.io/en/latest/css-classes-reference.html#stylable-scopes
diff --git a/flake.nix b/flake.nix
index d920d5d0dddab..b22cf56a9b5f7 100644
--- a/flake.nix
+++ b/flake.nix
@@ -5,14 +5,15 @@
 
   outputs = { self }:
     let
-      jobs = import ./pkgs/top-level/release.nix {
-        nixpkgs = self;
-      };
-
       libVersionInfoOverlay = import ./lib/flake-version-info.nix self;
       lib = (import ./lib).extend libVersionInfoOverlay;
 
       forAllSystems = lib.genAttrs lib.systems.flakeExposed;
+
+      jobs = forAllSystems (system: import ./pkgs/top-level/release.nix {
+        nixpkgs = self;
+        inherit system;
+      });
     in
     {
       lib = lib.extend (final: prev: {
@@ -43,12 +44,15 @@
           );
       });
 
-      checks.x86_64-linux = {
-        tarball = jobs.tarball;
+      checks = forAllSystems (system: {
+        tarball = jobs.${system}.tarball;
+        # Exclude power64 due to "libressl is not available on the requested hostPlatform" with hostPlatform being power64
+      } // lib.optionalAttrs (self.legacyPackages.${system}.stdenv.isLinux && !self.legacyPackages.${system}.targetPlatform.isPower64) {
         # Test that ensures that the nixosSystem function can accept a lib argument
         # Note: prefer not to extend or modify `lib`, especially if you want to share reusable modules
         #       alternatives include: `import` a file, or put a custom library in an option or in `_module.args.<libname>`
         nixosSystemAcceptsLib = (self.lib.nixosSystem {
+          pkgs = self.legacyPackages.${system};
           lib = self.lib.extend (final: prev: {
             ifThisFunctionIsMissingTheTestFails = final.id;
           });
@@ -64,13 +68,13 @@
             })
           ];
         }).config.system.build.toplevel;
-      };
+      });
 
       htmlDocs = {
-        nixpkgsManual = jobs.manual;
+        nixpkgsManual = builtins.mapAttrs (_: jobSet: jobSet.manual) jobs;
         nixosManual = (import ./nixos/release-small.nix {
           nixpkgs = self;
-        }).nixos.manual.x86_64-linux;
+        }).nixos.manual;
       };
 
       # The "legacy" in `legacyPackages` doesn't imply that the packages exposed
diff --git a/lib/cli.nix b/lib/cli.nix
index fcffacb5ea996..311037c519a65 100644
--- a/lib/cli.nix
+++ b/lib/cli.nix
@@ -90,7 +90,16 @@ rec {
     mkOption ?
       k: v: if v == null
             then []
-            else [ (mkOptionName k) (lib.generators.mkValueStringDefault {} v) ]
+            else if optionValueSeparator == null then
+              [ (mkOptionName k) (lib.generators.mkValueStringDefault {} v) ]
+            else
+              [ "${mkOptionName k}${optionValueSeparator}${lib.generators.mkValueStringDefault {} v}" ],
+
+    # how to separate an option from its flag;
+    # by default, there is no separator, so option `-c` and value `5`
+    # would become ["-c" "5"].
+    # This is useful if the command requires equals, for example, `-c=5`.
+    optionValueSeparator ? null
     }:
     options:
       let
diff --git a/lib/fixed-points.nix b/lib/fixed-points.nix
index 3bd18fdd2a5a9..2a31b44f27c17 100644
--- a/lib/fixed-points.nix
+++ b/lib/fixed-points.nix
@@ -1,6 +1,6 @@
 { lib, ... }:
 rec {
-  /*
+  /**
     `fix f` computes the fixed point of the given function `f`. In other words, the return value is `x` in `x = f x`.
 
     `f` must be a lazy function.
@@ -63,27 +63,52 @@ rec {
     See [`extends`](#function-library-lib.fixedPoints.extends) for an example use case.
     There `self` is also often called `final`.
 
-    Type: fix :: (a -> a) -> a
 
-    Example:
-      fix (self: { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; })
-      => { bar = "bar"; foo = "foo"; foobar = "foobar"; }
+    # Inputs
 
-      fix (self: [ 1 2 (elemAt self 0 + elemAt self 1) ])
-      => [ 1 2 3 ]
+    `f`
+
+    : 1\. Function argument
+
+    # Type
+
+    ```
+    fix :: (a -> a) -> a
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.fixedPoints.fix` usage example
+
+    ```nix
+    fix (self: { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; })
+    => { bar = "bar"; foo = "foo"; foobar = "foobar"; }
+
+    fix (self: [ 1 2 (elemAt self 0 + elemAt self 1) ])
+    => [ 1 2 3 ]
+    ```
+
+    :::
   */
   fix = f: let x = f x; in x;
 
-  /*
+  /**
     A variant of `fix` that records the original recursive attribute set in the
     result, in an attribute named `__unfix__`.
 
     This is useful in combination with the `extends` function to
     implement deep overriding.
+
+
+    # Inputs
+
+    `f`
+
+    : 1\. Function argument
   */
   fix' = f: let x = f x // { __unfix__ = f; }; in x;
 
-  /*
+  /**
     Return the fixpoint that `f` converges to when called iteratively, starting
     with the input `x`.
 
@@ -92,7 +117,22 @@ rec {
     0
     ```
 
-    Type: (a -> a) -> a -> a
+
+    # Inputs
+
+    `f`
+
+    : 1\. Function argument
+
+    `x`
+
+    : 2\. Function argument
+
+    # Type
+
+    ```
+    (a -> a) -> a -> a
+    ```
   */
   converge = f: x:
     let
@@ -102,7 +142,7 @@ rec {
       then x
       else converge f x';
 
-  /*
+  /**
     Extend a function using an overlay.
 
     Overlays allow modifying and extending fixed-point functions, specifically ones returning attribute sets.
@@ -217,32 +257,50 @@ rec {
     ```
     :::
 
-    Type:
-      extends :: (Attrs -> Attrs -> Attrs) # The overlay to apply to the fixed-point function
-              -> (Attrs -> Attrs) # A fixed-point function
-              -> (Attrs -> Attrs) # The resulting fixed-point function
 
-    Example:
-      f = final: { a = 1; b = final.a + 2; }
+    # Inputs
+
+    `overlay`
 
-      fix f
-      => { a = 1; b = 3; }
+    : The overlay to apply to the fixed-point function
 
-      fix (extends (final: prev: { a = prev.a + 10; }) f)
-      => { a = 11; b = 13; }
+    `f`
 
-      fix (extends (final: prev: { b = final.a + 5; }) f)
-      => { a = 1; b = 6; }
+    : The fixed-point function
 
-      fix (extends (final: prev: { c = final.a + final.b; }) f)
-      => { a = 1; b = 3; c = 4; }
+    # Type
+
+    ```
+    extends :: (Attrs -> Attrs -> Attrs) # The overlay to apply to the fixed-point function
+            -> (Attrs -> Attrs) # A fixed-point function
+            -> (Attrs -> Attrs) # The resulting fixed-point function
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.fixedPoints.extends` usage example
+
+    ```nix
+    f = final: { a = 1; b = final.a + 2; }
+
+    fix f
+    => { a = 1; b = 3; }
+
+    fix (extends (final: prev: { a = prev.a + 10; }) f)
+    => { a = 11; b = 13; }
+
+    fix (extends (final: prev: { b = final.a + 5; }) f)
+    => { a = 1; b = 6; }
+
+    fix (extends (final: prev: { c = final.a + final.b; }) f)
+    => { a = 1; b = 3; c = 4; }
+    ```
+
+    :::
   */
   extends =
-    # The overlay to apply to the fixed-point function
     overlay:
-    # The fixed-point function
     f:
-    # Wrap with parenthesis to prevent nixdoc from rendering the `final` argument in the documentation
     # The result should be thought of as a function, the argument of that function is not an argument to `extends` itself
     (
       final:
@@ -252,10 +310,29 @@ rec {
       prev // overlay final prev
     );
 
-  /*
+  /**
     Compose two extending functions of the type expected by 'extends'
     into one where changes made in the first are available in the
     'super' of the second
+
+
+    # Inputs
+
+    `f`
+
+    : 1\. Function argument
+
+    `g`
+
+    : 2\. Function argument
+
+    `final`
+
+    : 3\. Function argument
+
+    `prev`
+
+    : 4\. Function argument
   */
   composeExtensions =
     f: g: final: prev:
@@ -263,7 +340,7 @@ rec {
           prev' = prev // fApplied;
       in fApplied // g final prev';
 
-  /*
+  /**
     Compose several extending functions of the type expected by 'extends' into
     one where changes made in preceding functions are made available to
     subsequent ones.
@@ -276,7 +353,7 @@ rec {
   composeManyExtensions =
     lib.foldr (x: y: composeExtensions x y) (final: prev: {});
 
-  /*
+  /**
     Create an overridable, recursive attribute set. For example:
 
     ```
@@ -298,9 +375,20 @@ rec {
   */
   makeExtensible = makeExtensibleWithCustomName "extend";
 
-  /*
+  /**
     Same as `makeExtensible` but the name of the extending attribute is
     customized.
+
+
+    # Inputs
+
+    `extenderName`
+
+    : 1\. Function argument
+
+    `rattrs`
+
+    : 2\. Function argument
   */
   makeExtensibleWithCustomName = extenderName: rattrs:
     fix' (self: (rattrs self) // {
diff --git a/lib/licenses.nix b/lib/licenses.nix
index 16efe6a0d0be5..64d9825ab198f 100644
--- a/lib/licenses.nix
+++ b/lib/licenses.nix
@@ -362,6 +362,12 @@ in mkLicense lset) ({
     fullName = "Creative Commons Attribution Share Alike 4.0";
   };
 
+  cc-sa-10 = {
+    shortName = "CC-SA-1.0";
+    fullName = "Creative Commons Share Alike 1.0";
+    url = "https://creativecommons.org/licenses/sa/1.0";
+  };
+
   cddl = {
     spdxId = "CDDL-1.0";
     fullName = "Common Development and Distribution License 1.0";
@@ -902,6 +908,17 @@ in mkLicense lset) ({
     free = false;
   };
 
+  ncbiPd = {
+    spdxId = "NCBI-PD";
+    fullname = "NCBI Public Domain Notice";
+    # Due to United States copyright law, anything with this "license" does not have a copyright in the
+    # jurisdiction of the United States. However, other jurisdictions may assign the United States
+    # government copyright to the work, and the license explicitly states that in such a case, no license
+    # is granted. This is nonfree and nonredistributable in most jurisdictions other than the United States.
+    free = false;
+    redistributable = false;
+  };
+
   ncsa = {
     spdxId = "NCSA";
     fullName = "University of Illinois/NCSA Open Source License";
diff --git a/lib/systems/default.nix b/lib/systems/default.nix
index fbd6c323bf425..0981122388bb1 100644
--- a/lib/systems/default.nix
+++ b/lib/systems/default.nix
@@ -81,7 +81,7 @@ let
         && final.parsed.kernel == platform.parsed.kernel;
       isCompatible = _: throw "2022-05-23: isCompatible has been removed in favor of canExecute, refer to the 22.11 changelog for details";
       # Derived meta-data
-      useLLVM = final.isFreeBSD;
+      useLLVM = final.isFreeBSD || final.isOpenBSD;
 
       libc =
         /**/ if final.isDarwin              then "libSystem"
@@ -93,6 +93,7 @@ let
         else if final.isAndroid             then "bionic"
         else if final.isLinux /* default */ then "glibc"
         else if final.isFreeBSD             then "fblibc"
+        else if final.isOpenBSD             then "oblibc"
         else if final.isNetBSD              then "nblibc"
         else if final.isAvr                 then "avrlibc"
         else if final.isGhcjs               then null
diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix
index 8a3726f369682..6a9427b2d9de7 100644
--- a/lib/systems/examples.nix
+++ b/lib/systems/examples.nix
@@ -59,7 +59,7 @@ rec {
 
   armv7a-android-prebuilt = {
     config = "armv7a-unknown-linux-androideabi";
-    rustc.config = "armv7-linux-androideabi";
+    rust.rustcTarget = "armv7-linux-androideabi";
     sdkVer = "28";
     ndkVer = "24";
     useAndroidPrebuilt = true;
@@ -67,7 +67,7 @@ rec {
 
   aarch64-android-prebuilt = {
     config = "aarch64-unknown-linux-android";
-    rustc.config = "aarch64-linux-android";
+    rust.rustcTarget = "aarch64-linux-android";
     sdkVer = "28";
     ndkVer = "24";
     useAndroidPrebuilt = true;
@@ -207,7 +207,7 @@ rec {
   aarch64-embedded = {
     config = "aarch64-none-elf";
     libc = "newlib";
-    rustc.config = "aarch64-unknown-none";
+    rust.rustcTarget = "aarch64-unknown-none";
   };
 
   aarch64be-embedded = {
@@ -342,6 +342,11 @@ rec {
     useLLVM = true;
   };
 
+  x86_64-openbsd = {
+    config = "x86_64-unknown-openbsd";
+    useLLVM = true;
+  };
+
   #
   # WASM
   #
diff --git a/lib/systems/flake-systems.nix b/lib/systems/flake-systems.nix
index b1988c6a4fbb0..a68580ff1407b 100644
--- a/lib/systems/flake-systems.nix
+++ b/lib/systems/flake-systems.nix
@@ -16,12 +16,12 @@
   "armv6l-linux"
   "armv7l-linux"
   "i686-linux"
-  "mipsel-linux"
+  # "mipsel-linux" is excluded because it is not bootstrapped
 
   # Other platforms with sufficient support in stdenv which is not formally
   # mandated by their platform tier.
   "aarch64-darwin"
-  "armv5tel-linux"
+  # "armv5tel-linux" is excluded because it is not bootstrapped
   "powerpc64le-linux"
   "riscv64-linux"
 
diff --git a/lib/systems/parse.nix b/lib/systems/parse.nix
index 4890912d7fed4..1d7c95943a794 100644
--- a/lib/systems/parse.nix
+++ b/lib/systems/parse.nix
@@ -469,6 +469,7 @@ rec {
               elem (elemAt l 2) [ "wasi" "redox" "mmixware" "ghcjs" "mingw32" ] ||
               hasPrefix "freebsd" (elemAt l 2) ||
               hasPrefix "netbsd" (elemAt l 2) ||
+              hasPrefix "openbsd" (elemAt l 2) ||
               hasPrefix "genode" (elemAt l 2)
       then {
         cpu    = elemAt l 0;
diff --git a/lib/systems/platforms.nix b/lib/systems/platforms.nix
index d2e8f77bec03e..403ffc028f0be 100644
--- a/lib/systems/platforms.nix
+++ b/lib/systems/platforms.nix
@@ -535,11 +535,9 @@ rec {
       name = "riscv-multiplatform";
       target = "Image";
       autoModules = true;
+      preferBuiltin = true;
       baseConfig = "defconfig";
       DTB = true;
-      extraConfig = ''
-        SERIAL_OF_PLATFORM y
-      '';
     };
   };
 
diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix
index 6774939023d20..408ea54162938 100644
--- a/lib/tests/misc.nix
+++ b/lib/tests/misc.nix
@@ -1639,6 +1639,27 @@ runTests {
     ];
   };
 
+  testToGNUCommandLineSeparator = {
+    expr = cli.toGNUCommandLine { optionValueSeparator = "="; } {
+      data = builtins.toJSON { id = 0; };
+      X = "PUT";
+      retry = 3;
+      retry-delay = null;
+      url = [ "https://example.com/foo" "https://example.com/bar" ];
+      silent = false;
+      verbose = true;
+    };
+
+    expected = [
+      "-X=PUT"
+      "--data={\"id\":0}"
+      "--retry=3"
+      "--url=https://example.com/foo"
+      "--url=https://example.com/bar"
+      "--verbose"
+    ];
+  };
+
   testToGNUCommandLineShell = {
     expr = cli.toGNUCommandLineShell {} {
       data = builtins.toJSON { id = 0; };
diff --git a/lib/tests/release.nix b/lib/tests/release.nix
index 1447e88170913..084fbd94d34c2 100644
--- a/lib/tests/release.nix
+++ b/lib/tests/release.nix
@@ -24,7 +24,9 @@ in
       #
       #   https://github.com/NixOS/nixpkgs/issues/272591
       #
-      [(import ../../pkgs/test/release {})]
+      [(import ../../pkgs/test/release {
+        inherit pkgs lib nix;
+      })]
     ;
 
   }
diff --git a/lib/trivial.nix b/lib/trivial.nix
index dee7eca9699a0..20a3ffebbc2bb 100644
--- a/lib/trivial.nix
+++ b/lib/trivial.nix
@@ -403,7 +403,7 @@ in {
     On each release the first letter is bumped and a new animal is chosen
     starting with that new letter.
   */
-  codeName = "Vicuña";
+  codeName = "Vicuna";
 
   /**
     Returns the current nixpkgs version suffix as string.
@@ -623,6 +623,37 @@ in {
   /**
     Reads a JSON file.
 
+    # Examples
+    :::{.example}
+    ## `lib.trivial.importJSON` usage example
+
+    example.json
+    ```json
+    {
+      "title": "Example JSON",
+      "hello": {
+        "world": "foo",
+        "bar": {
+          "foobar": true
+        }
+      }
+    }
+    ```
+
+    ```nix
+    importJSON ./example.json
+    => {
+      title = "Example JSON";
+      hello = {
+        world = "foo";
+        bar = {
+          foobar = true;
+        };
+      };
+    }
+    ```
+
+    :::
 
     # Inputs
 
@@ -642,6 +673,35 @@ in {
   /**
     Reads a TOML file.
 
+    # Examples
+    :::{.example}
+    ## `lib.trivial.importTOML` usage example
+
+    example.toml
+    ```toml
+    title = "TOML Example"
+
+    [hello]
+    world = "foo"
+
+    [hello.bar]
+    foobar = true
+    ```
+
+    ```nix
+    importTOML ./example.toml
+    => {
+      title = "TOML Example";
+      hello = {
+        world = "foo";
+        bar = {
+          foobar = true;
+        };
+      };
+    }
+    ```
+
+    :::
 
     # Inputs
 
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 1409fb743964c..6f3bcff13251d 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -1,67 +1,68 @@
-/* List of NixOS maintainers.
-    ```nix
-    handle = {
-      # Required
-      name = "Your name";
+/*
+  List of NixOS maintainers.
+   ```nix
+   handle = {
+     # Required
+     name = "Your name";
 
-      # Optional, but at least one of email, matrix or githubId must be given
-      email = "address@example.org";
-      matrix = "@user:example.org";
-      github = "GithubUsername";
-      githubId = your-github-id;
+     # Optional, but at least one of email, matrix or githubId must be given
+     email = "address@example.org";
+     matrix = "@user:example.org";
+     github = "GithubUsername";
+     githubId = your-github-id;
 
-      keys = [{
-        fingerprint = "AAAA BBBB CCCC DDDD EEEE  FFFF 0000 1111 2222 3333";
-      }];
-    };
-    ```
+     keys = [{
+       fingerprint = "AAAA BBBB CCCC DDDD EEEE  FFFF 0000 1111 2222 3333";
+     }];
+   };
+   ```
 
-    where
+   where
 
-    - `handle` is the handle you are going to use in nixpkgs expressions,
-    - `name` is a name that people would know and recognize you by,
-    - `email` is your maintainer email address,
-    - `matrix` is your Matrix user ID,
-    - `github` is your GitHub handle (as it appears in the URL of your profile page, `https://github.com/<userhandle>`),
-    - `githubId` is your GitHub user ID, which can be found at `https://api.github.com/users/<userhandle>`,
-    - `keys` is a list of your PGP/GPG key fingerprints.
+   - `handle` is the handle you are going to use in nixpkgs expressions,
+   - `name` is a name that people would know and recognize you by,
+   - `email` is your maintainer email address,
+   - `matrix` is your Matrix user ID,
+   - `github` is your GitHub handle (as it appears in the URL of your profile page, `https://github.com/<userhandle>`),
+   - `githubId` is your GitHub user ID, which can be found at `https://api.github.com/users/<userhandle>`,
+   - `keys` is a list of your PGP/GPG key fingerprints.
 
-    Specifying a GitHub account ensures that you automatically:
-    - get invited to the @NixOS/nixpkgs-maintainers team ;
-    - once you are part of the @NixOS org, OfBorg will request you review
-      pull requests that modify a package for which you are a maintainer.
+   Specifying a GitHub account ensures that you automatically:
+   - get invited to the @NixOS/nixpkgs-maintainers team ;
+   - once you are part of the @NixOS org, OfBorg will request you review
+     pull requests that modify a package for which you are a maintainer.
 
-    `handle == github` is strongly preferred whenever `github` is an acceptable attribute name and is short and convenient.
+   `handle == github` is strongly preferred whenever `github` is an acceptable attribute name and is short and convenient.
 
-    If `github` begins with a numeral, `handle` should be prefixed with an underscore.
-    ```nix
-    _1example = {
-      github = "1example";
-    };
-    ```
+   If `github` begins with a numeral, `handle` should be prefixed with an underscore.
+   ```nix
+   _1example = {
+     github = "1example";
+   };
+   ```
 
-    Add PGP/GPG keys only if you actually use them to sign commits and/or mail.
+   Add PGP/GPG keys only if you actually use them to sign commits and/or mail.
 
-    To get the required PGP/GPG values for a key run
-    ```shell
-    gpg --fingerprint <email> | head -n 2
-    ```
+   To get the required PGP/GPG values for a key run
+   ```shell
+   gpg --fingerprint <email> | head -n 2
+   ```
 
-    !!! Note that PGP/GPG values stored here are for informational purposes only, don't use this file as a source of truth.
+   !!! Note that PGP/GPG values stored here are for informational purposes only, don't use this file as a source of truth.
 
-    More fields may be added in the future, however, in order to comply with GDPR this file should stay as minimal as possible.
+   More fields may be added in the future, however, in order to comply with GDPR this file should stay as minimal as possible.
 
-    When editing this file:
-     * keep the list alphabetically sorted, check with:
-         nix-instantiate --eval maintainers/scripts/check-maintainers-sorted.nix
-     * test the validity of the format with:
-         nix-build lib/tests/maintainers.nix
+   When editing this file:
+    * keep the list alphabetically sorted, check with:
+        nix-instantiate --eval maintainers/scripts/check-maintainers-sorted.nix
+    * test the validity of the format with:
+        nix-build lib/tests/maintainers.nix
 
-    See `./scripts/check-maintainer-github-handles.sh` for an example on how to work with this data.
+   See `./scripts/check-maintainer-github-handles.sh` for an example on how to work with this data.
 
-    When adding a new maintainer, be aware of the current commit conventions
-    documented at [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#commit-conventions)
-    file located in the root of the Nixpkgs repo.
+   When adding a new maintainer, be aware of the current commit conventions
+   documented at [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#commit-conventions)
+   file located in the root of the Nixpkgs repo.
 */
 {
   _0b11stan = {
@@ -94,9 +95,7 @@
     name = "Joachim Ernst";
     github = "0x4A6F";
     githubId = 9675338;
-    keys = [{
-      fingerprint = "F466 A548 AD3F C1F1 8C88  4576 8702 7528 B006 D66D";
-    }];
+    keys = [ { fingerprint = "F466 A548 AD3F C1F1 8C88  4576 8702 7528 B006 D66D"; } ];
   };
   _0xB10C = {
     email = "nixpkgs@b10c.me";
@@ -109,9 +108,7 @@
     name = "Bela Stoyan";
     github = "0xbe7a";
     githubId = 6232980;
-    keys = [{
-      fingerprint = "2536 9E86 1AA5 9EB7 4C47  B138 6510 870A 77F4 9A99";
-    }];
+    keys = [ { fingerprint = "2536 9E86 1AA5 9EB7 4C47  B138 6510 870A 77F4 9A99"; } ];
   };
   _0xC45 = {
     email = "jason@0xc45.com";
@@ -203,9 +200,7 @@
     github = "4825764518";
     githubId = 100122841;
     name = "Kenzie";
-    keys = [{
-      fingerprint = "D292 365E 3C46 A5AA 75EE  B30B 78DB 7EDE 3540 794B";
-    }];
+    keys = [ { fingerprint = "D292 365E 3C46 A5AA 75EE  B30B 78DB 7EDE 3540 794B"; } ];
   };
   _48cf = {
     name = "czapek";
@@ -218,9 +213,7 @@
     github = "6543";
     githubId = 24977596;
     name = "6543";
-    keys = [{
-      fingerprint = "8722 B61D 7234 1082 553B  201C B8BE 6D61 0E61 C862";
-    }];
+    keys = [ { fingerprint = "8722 B61D 7234 1082 553B  201C B8BE 6D61 0E61 C862"; } ];
   };
   _6AA4FD = {
     email = "f6442954@gmail.com";
@@ -252,9 +245,7 @@
     github = "999eagle";
     githubId = 1221984;
     name = "Sophie Tauchert";
-    keys = [{
-      fingerprint = "7B59 F09E 0FE5 BC34 F032  1FB4 5270 1DE5 F5F5 1125";
-    }];
+    keys = [ { fingerprint = "7B59 F09E 0FE5 BC34 F032  1FB4 5270 1DE5 F5F5 1125"; } ];
   };
   _9glenda = {
     email = "plan9git@proton.me";
@@ -262,9 +253,7 @@
     github = "9glenda";
     githubId = 69043370;
     name = "9glenda";
-    keys = [{
-      fingerprint = "DBF4 E6D0 90B8 BEA4 4BFE  1F1C 3442 4321 39B5 0691";
-    }];
+    keys = [ { fingerprint = "DBF4 E6D0 90B8 BEA4 4BFE  1F1C 3442 4321 39B5 0691"; } ];
   };
   _9R = {
     email = "nix@9-r.net";
@@ -272,6 +261,12 @@
     githubId = 381298;
     name = "9R";
   };
+  _9yokuro = {
+    email = "xzstd099@protonmail.com";
+    github = "9yokuro";
+    githubId = 119095935;
+    name = "9yokuro";
+  };
   A1ca7raz = {
     email = "aya@wtm.moe";
     github = "A1ca7raz";
@@ -358,9 +353,7 @@
     github = "wahjava";
     githubId = 2255192;
     name = "Ashish SHUKLA";
-    keys = [{
-      fingerprint = "F682 CDCC 39DC 0FEA E116  20B6 C746 CFA9 E74F A4B0";
-    }];
+    keys = [ { fingerprint = "F682 CDCC 39DC 0FEA E116  20B6 C746 CFA9 E74F A4B0"; } ];
   };
   abbradar = {
     email = "ab@fmap.me";
@@ -458,9 +451,7 @@
     github = "acuteenvy";
     githubId = 126529524;
     name = "Lena";
-    keys = [{
-      fingerprint = "CE85 54F7 B9BC AC0D D648  5661 AB5F C04C 3C94 443F";
-    }];
+    keys = [ { fingerprint = "CE85 54F7 B9BC AC0D D648  5661 AB5F C04C 3C94 443F"; } ];
   };
   adam248 = {
     email = "adamjbutler091@gmail.com";
@@ -567,9 +558,14 @@
     github = "adtya";
     githubId = 22346805;
     name = "Adithya Nair";
-    keys = [{
-      fingerprint = "51E4 F5AB 1B82 BE45 B422  9CC2 43A5 E25A A5A2 7849";
-    }];
+    keys = [ { fingerprint = "51E4 F5AB 1B82 BE45 B422  9CC2 43A5 E25A A5A2 7849"; } ];
+  };
+  aduh95 = {
+    email = "duhamelantoine1995@gmail.com";
+    github = "aduh95";
+    githubId = 14309773;
+    name = "Antoine du Hamel";
+    keys = [ { fingerprint = "C0D6 2484 39F1 D560 4AAF  FB40 21D9 00FF DB23 3756"; } ];
   };
   aerialx = {
     email = "aaron+nixos@aaronlindsay.com";
@@ -679,9 +675,7 @@
     matrix = "@aikoo7:matrix.org";
     github = "aikooo7";
     githubId = 79667753;
-    keys = [{
-      fingerprint = "B0D7 2955 235F 6AB5 ACFA  1619 8C7F F5BB 1ADE F191";
-    }];
+    keys = [ { fingerprint = "B0D7 2955 235F 6AB5 ACFA  1619 8C7F F5BB 1ADE F191"; } ];
   };
   aimpizza = {
     email = "rickomo.us@gmail.com";
@@ -797,9 +791,7 @@
     email = "alessandro.barenghi@tuta.io";
     github = "akkesm";
     githubId = 56970006;
-    keys = [{
-      fingerprint = "50E2 669C AB38 2F4A 5F72  1667 0D6B FC01 D45E DADD";
-    }];
+    keys = [ { fingerprint = "50E2 669C AB38 2F4A 5F72  1667 0D6B FC01 D45E DADD"; } ];
   };
   akru = {
     email = "mail@akru.me";
@@ -829,9 +821,7 @@
     github = "al3xtjames";
     githubId = 5672538;
     name = "Alex James";
-    keys = [{
-      fingerprint = "F354 FFAB EA89 A49D 33ED  2590 4729 B829 AC5F CC72";
-    }];
+    keys = [ { fingerprint = "F354 FFAB EA89 A49D 33ED  2590 4729 B829 AC5F CC72"; } ];
   };
   alanpearce = {
     email = "alan@alanpearce.eu";
@@ -924,10 +914,10 @@
     name = "Alexandre Esteves";
   };
   alex-fu27 = {
-     email = "alex.fu27@gmail.com";
-     github = "alex-fu27";
-     githubId = 49982580;
-     name = "Alexander Fuchs";
+    email = "alex.fu27@gmail.com";
+    github = "alex-fu27";
+    githubId = 49982580;
+    name = "Alexander Fuchs";
   };
   alexnortung = {
     name = "alexnortung";
@@ -945,9 +935,7 @@
     email = "ashpilkin@gmail.com";
     github = "alexshpilkin";
     githubId = 1010468;
-    keys = [{
-      fingerprint = "B595 D74D 6615 C010 469F  5A13 73E9 AA11 4B3A 894B";
-    }];
+    keys = [ { fingerprint = "B595 D74D 6615 C010 469F  5A13 73E9 AA11 4B3A 894B"; } ];
     matrix = "@alexshpilkin:matrix.org";
     name = "Alexander Shpilkin";
   };
@@ -1023,17 +1011,23 @@
     githubId = 60479013;
     name = "Alma Cemerlic";
   };
+  alois31 = {
+    name = "Alois Wohlschlager";
+    email = "alois1@gmx-topmail.de";
+    matrix = "@aloisw:kde.org";
+    github = "alois31";
+    githubId = 36605164;
+    keys = [ { fingerprint = "CA97 A822 FF24 25D4 74AF  3E4B E0F5 9EA5 E521 6914"; } ];
+  };
   Alper-Celik = {
     email = "alper@alper-celik.dev";
     name = "Alper Çelik";
     github = "Alper-Celik";
     githubId = 110625473;
-    keys = [{
-      fingerprint = "6B69 19DD CEE0 FAF3 5C9F  2984 FA90 C0AB 738A B873";
-    }
-    {
-      fingerprint = "DF68 C500 4024 23CC F9C5  E6CA 3D17 C832 4696 FE70";
-    }];
+    keys = [
+      { fingerprint = "6B69 19DD CEE0 FAF3 5C9F  2984 FA90 C0AB 738A B873"; }
+      { fingerprint = "DF68 C500 4024 23CC F9C5  E6CA 3D17 C832 4696 FE70"; }
+    ];
   };
   alternateved = {
     email = "alternateved@pm.me";
@@ -1046,9 +1040,7 @@
     email = "aluisio@aasg.name";
     github = "AluisioASG";
     githubId = 1904165;
-    keys = [{
-      fingerprint = "7FDB 17B3 C29B 5BA6 E5A9  8BB2 9FAA 63E0 9750 6D9D";
-    }];
+    keys = [ { fingerprint = "7FDB 17B3 C29B 5BA6 E5A9  8BB2 9FAA 63E0 9750 6D9D"; } ];
   };
   alunduil = {
     email = "alunduil@gmail.com";
@@ -1061,9 +1053,7 @@
     github = "illfygli";
     githubId = 42881386;
     name = "Alva";
-    keys = [{
-      fingerprint = "B422 CFB1 C9EF 73F7 E1E2 698D F53E 3233 42F7 A6D3A";
-    }];
+    keys = [ { fingerprint = "B422 CFB1 C9EF 73F7 E1E2 698D F53E 3233 42F7 A6D3A"; } ];
   };
   alxsimon = {
     email = "alexis.simon@normalesup.org";
@@ -1076,9 +1066,13 @@
     github = "alyaeanyx";
     githubId = 74795488;
     name = "alyaeanyx";
-    keys = [{
-      fingerprint = "1F73 8879 5E5A 3DFC E2B3 FA32 87D1 AADC D25B 8DEE";
-    }];
+    keys = [ { fingerprint = "1F73 8879 5E5A 3DFC E2B3 FA32 87D1 AADC D25B 8DEE"; } ];
+  };
+  aman9das = {
+    email = "amandas62640@gmail.com";
+    github = "Aman9das";
+    githubId = 39594914;
+    name = "Aman Das";
   };
   amanjeev = {
     email = "aj@amanjeev.com";
@@ -1134,9 +1128,7 @@
     email = "matilde@diffyq.xyz";
     github = "matilde-ametrine";
     githubId = 90799677;
-    keys = [{
-      fingerprint = "7931 EB4E 4712 D7BE 04F8  6D34 07EE 1FFC A58A 11C5";
-    }];
+    keys = [ { fingerprint = "7931 EB4E 4712 D7BE 04F8  6D34 07EE 1FFC A58A 11C5"; } ];
   };
   amfl = {
     email = "amfl@none.none";
@@ -1168,12 +1160,26 @@
     githubId = 858965;
     name = "Andrew Morsillo";
   };
+  amyipdev = {
+    email = "amy@amyip.net";
+    github = "amyipdev";
+    githubId = 46307646;
+    name = "Amy Parker";
+    keys = [ { fingerprint = "7786 034B D521 49F5 1B0A  2A14 B112 2F04 E962 DDC5"; } ];
+  };
   amz-x = {
     email = "mail@amz-x.com";
     github = "amz-x";
     githubId = 18249234;
     name = "Christopher Crouse";
   };
+  anas = {
+    email = "anas.elgarhy.dev@gmail.com";
+    github = "0x61nas";
+    githubId = 44965145;
+    name = "Anas Elgarhy";
+    keys = [ { fingerprint = "E10B D192 9231 08C7 3C35 7EC3 83E0 3DC6 F383 4086"; } ];
+  };
   AnatolyPopov = {
     email = "aipopov@live.ru";
     github = "AnatolyPopov";
@@ -1271,6 +1277,13 @@
     githubId = 29887;
     name = "Andrew Smith";
   };
+  Andy3153 = {
+    name = "Andrei Dobrete";
+    email = "andy3153@protonmail.com";
+    matrix = "@andy3153:matrix.org";
+    github = "Andy3153";
+    githubId = 53472302;
+  };
   andys8 = {
     github = "andys8";
     githubId = 13085980;
@@ -1305,18 +1318,14 @@
     matrix = "@angryant:envs.net";
     github = "AngryAnt";
     githubId = 102513;
-    keys = [{
-      fingerprint = "B7B7 582E 564E 789B FCB8  71AB 0C6D FE2F B234 534A";
-    }];
+    keys = [ { fingerprint = "B7B7 582E 564E 789B FCB8  71AB 0C6D FE2F B234 534A"; } ];
   };
   anhdle14 = {
     name = "Le Anh Duc";
     email = "anhdle14@icloud.com";
     github = "anhdle14";
     githubId = 9645992;
-    keys = [{
-      fingerprint = "AA4B 8EC3 F971 D350 482E  4E20 0299 AFF9 ECBB 5169";
-    }];
+    keys = [ { fingerprint = "AA4B 8EC3 F971 D350 482E  4E20 0299 AFF9 ECBB 5169"; } ];
   };
   anhduy = {
     email = "vo@anhduy.io";
@@ -1329,9 +1338,7 @@
     email = "i@anillc.cn";
     github = "Anillc";
     githubId = 23411248;
-    keys = [{
-      fingerprint = "6141 1E4F FE10 CE7B 2E14  CD76 0BE8 A88F 47B2 145C";
-    }];
+    keys = [ { fingerprint = "6141 1E4F FE10 CE7B 2E14  CD76 0BE8 A88F 47B2 145C"; } ];
   };
   anirrudh = {
     email = "anik597@gmail.com";
@@ -1401,9 +1408,7 @@
     githubId = 48802534;
     name = "Anselm Schüler";
     matrix = "@schuelermine:matrix.org";
-    keys = [{
-      fingerprint = "CDBF ECA8 36FE E340 1CEB  58FF BA34 EE1A BA3A 0955";
-    }];
+    keys = [ { fingerprint = "CDBF ECA8 36FE E340 1CEB  58FF BA34 EE1A BA3A 0955"; } ];
   };
   anthonyroussel = {
     email = "anthony@roussel.dev";
@@ -1411,9 +1416,7 @@
     githubId = 220084;
     name = "Anthony Roussel";
     matrix = "@anthonyrsl:matrix.org";
-    keys = [{
-      fingerprint = "472D 368A F107 F443 F3A5  C712 9DC4 987B 1A55 E75E";
-    }];
+    keys = [ { fingerprint = "472D 368A F107 F443 F3A5  C712 9DC4 987B 1A55 E75E"; } ];
   };
   antoinerg = {
     email = "roygobeil.antoine@gmail.com";
@@ -1438,9 +1441,7 @@
     github = "antonmosich";
     githubId = 27223336;
     name = "Anton Mosich";
-    keys = [ {
-      fingerprint = "F401 287C 324F 0A1C B321  657B 9B96 97B8 FB18 7D14";
-    } ];
+    keys = [ { fingerprint = "F401 287C 324F 0A1C B321  657B 9B96 97B8 FB18 7D14"; } ];
   };
   antono = {
     email = "self@antono.info";
@@ -1496,9 +1497,7 @@
     github = "aplund";
     githubId = 1369436;
     name = "Austin Lund";
-    keys = [{
-      fingerprint = "7083 E268 4BFD 845F 2B84  9E74 B695 8918 ED23 32CE";
-    }];
+    keys = [ { fingerprint = "7083 E268 4BFD 845F 2B84  9E74 B695 8918 ED23 32CE"; } ];
   };
   applejag = {
     email = "applejag.luminance905@passmail.com";
@@ -1506,12 +1505,8 @@
     githubId = 2477952;
     name = "Kalle Fagerberg";
     keys = [
-      {
-        fingerprint = "F68E 6DB3 79FB 1FF0 7C72  6479 9874 DEDD 3592 5ED0";
-      }
-      {
-        fingerprint = "8DDB 3994 0A34 4FE5 4F3B  3E77 F161 001D EE78 1051";
-      }
+      { fingerprint = "F68E 6DB3 79FB 1FF0 7C72  6479 9874 DEDD 3592 5ED0"; }
+      { fingerprint = "8DDB 3994 0A34 4FE5 4F3B  3E77 F161 001D EE78 1051"; }
     ];
   };
   applePrincess = {
@@ -1519,9 +1514,7 @@
     github = "applePrincess";
     githubId = 17154507;
     name = "Lein Matsumaru";
-    keys = [{
-      fingerprint = "BF8B F725 DA30 E53E 7F11  4ED8 AAA5 0652 F047 9205";
-    }];
+    keys = [ { fingerprint = "BF8B F725 DA30 E53E 7F11  4ED8 AAA5 0652 F047 9205"; } ];
   };
   appsforartists = {
     github = "appsforartists";
@@ -1706,9 +1699,7 @@
     github = "artemist";
     githubId = 1226638;
     name = "Artemis Tosini";
-    keys = [{
-      fingerprint = "3D2B B230 F9FA F0C5 1832  46DD 4FDC 96F1 61E7 BA8A";
-    }];
+    keys = [ { fingerprint = "3D2B B230 F9FA F0C5 1832  46DD 4FDC 96F1 61E7 BA8A"; } ];
   };
   arthsmn = {
     name = "Arthur Cerqueira";
@@ -1771,9 +1762,7 @@
     email = "ascii@moth.contact";
     github = "asciimoth";
     githubId = 91414737;
-    keys = [{
-      fingerprint = "C5C8 4658 CCFD 7E8E 71DE  E933 AF3A E54F C3A3 5C9F";
-    }];
+    keys = [ { fingerprint = "C5C8 4658 CCFD 7E8E 71DE  E933 AF3A E54F C3A3 5C9F"; } ];
   };
   ashalkhakov = {
     email = "artyom.shalkhakov@gmail.com";
@@ -1787,6 +1776,12 @@
     githubId = 816777;
     name = "Ashley Gillman";
   };
+  ashgoldofficial = {
+    email = "ashley.goldwater@gmail.com";
+    github = "ASHGOLDOFFICIAL";
+    githubId = 104313094;
+    name = "Andrey Shaat";
+  };
   ashkitten = {
     email = "ashlea@protonmail.com";
     github = "ashkitten";
@@ -1811,9 +1806,7 @@
     github = "ashuramaruzxc";
     githubId = 72100551;
     name = "Mariia Holovata";
-    keys = [{
-      fingerprint = "409D 201E 9450 8732 A49E  D0FC 6BDA F874 0068 08DF";
-    }];
+    keys = [ { fingerprint = "409D 201E 9450 8732 A49E  D0FC 6BDA F874 0068 08DF"; } ];
   };
   asininemonkey = {
     email = "nixpkgs@asininemonkey.com";
@@ -1838,9 +1831,7 @@
     github = "aspulse";
     githubId = 84216737;
     name = "AsPulse / あすぱる";
-    keys = [{
-      fingerprint = "C919 E69E A7C0 E147 9E0F  C26E 1EDA D0C6 70BD 062D";
-    }];
+    keys = [ { fingerprint = "C919 E69E A7C0 E147 9E0F  C26E 1EDA D0C6 70BD 062D"; } ];
   };
   assistant = {
     email = "assistant.moetron@gmail.com";
@@ -1855,12 +1846,6 @@
     githubId = 7745457;
     name = "Astavie";
   };
-  astindev = {
-    email = "astindev@pm.me";
-    github = "astindev";
-    githubId = 52360869;
-    name = "Astin";
-  };
   astro = {
     email = "astro@spaceboyz.net";
     github = "astro";
@@ -1872,9 +1857,13 @@
     github = "astrobeastie";
     githubId = 26362368;
     name = "Vincent Fischer";
-    keys = [{
-      fingerprint = "BF47 81E1 F304 1ADF 18CE  C401 DE16 C7D1 536D A72F";
-    }];
+    keys = [ { fingerprint = "BF47 81E1 F304 1ADF 18CE  C401 DE16 C7D1 536D A72F"; } ];
+  };
+  astronaut0212 = {
+    email = "goatastronaut0212@proton.me";
+    github = "goatastronaut0212";
+    githubId = 119769817;
+    name = "goatastronaut0212";
   };
   astsmtl = {
     email = "astsmtl@yandex.ru";
@@ -1893,9 +1882,7 @@
     github = "aszlig";
     githubId = 192147;
     name = "aszlig";
-    keys = [{
-      fingerprint = "DD52 6BC7 767D BA28 16C0 95E5 6840 89CE 67EB B691";
-    }];
+    keys = [ { fingerprint = "DD52 6BC7 767D BA28 16C0 95E5 6840 89CE 67EB B691"; } ];
   };
   atalii = {
     email = "taliauster@gmail.com";
@@ -1909,9 +1896,7 @@
     github = "AtaraxiaSjel";
     githubId = 5314145;
     name = "Dmitriy";
-    keys = [{
-      fingerprint = "922D A6E7 58A0 FE4C FAB4 E4B2 FD26 6B81 0DF4 8DF2";
-    }];
+    keys = [ { fingerprint = "922D A6E7 58A0 FE4C FAB4 E4B2 FD26 6B81 0DF4 8DF2"; } ];
   };
   atemu = {
     name = "Atemu";
@@ -1948,11 +1933,7 @@
     email = "m.abdolirad@gmail.com";
     github = "atkrad";
     githubId = 351364;
-    keys = [
-      {
-        fingerprint = "0380 F2F8 DF7A BA1A E7DB  D84A 1935 1496 62CA FDB8";
-      }
-    ];
+    keys = [ { fingerprint = "0380 F2F8 DF7A BA1A E7DB  D84A 1935 1496 62CA FDB8"; } ];
   };
   atnnn = {
     email = "etienne@atnnn.com";
@@ -2013,9 +1994,7 @@
     email = "sven@autumnal.de";
     github = "sevenautumns";
     githubId = 20627275;
-    keys = [{
-      fingerprint = "6A2E 7FDD 1037 11A8 B996  E28E B051 064E 2FCA B71B";
-    }];
+    keys = [ { fingerprint = "6A2E 7FDD 1037 11A8 B996  E28E B051 064E 2FCA B71B"; } ];
   };
   avakhrenev = {
     email = "avakhrenev@gmail.com";
@@ -2029,6 +2008,12 @@
     githubId = 1217745;
     name = "Aldwin Vlasblom";
   };
+  aveltras = {
+    email = "romain.viallard@outlook.fr";
+    github = "aveltras";
+    githubId = 790607;
+    name = "Romain Viallard";
+  };
   averagebit = {
     email = "averagebit@pm.me";
     github = "averagebit";
@@ -2058,18 +2043,14 @@
     github = "aviallon";
     githubId = 7479436;
     name = "Antoine Viallon";
-    keys = [{
-      fingerprint = "4AC4 A28D 7208 FC6F 2B51  5EA9 D126 B13A B555 E16F";
-    }];
+    keys = [ { fingerprint = "4AC4 A28D 7208 FC6F 2B51  5EA9 D126 B13A B555 E16F"; } ];
   };
   avitex = {
     email = "theavitex@gmail.com";
     github = "avitex";
     githubId = 5110816;
     name = "avitex";
-    keys = [{
-      fingerprint = "271E 136C 178E 06FA EA4E  B854 8B36 6C44 3CAB E942";
-    }];
+    keys = [ { fingerprint = "271E 136C 178E 06FA EA4E  B854 8B36 6C44 3CAB E942"; } ];
   };
   avnik = {
     email = "avn@avnik.info";
@@ -2106,9 +2087,7 @@
     matrix = "@azahi:azahi.cc";
     github = "azahi";
     githubId = 22211000;
-    keys = [{
-      fingerprint = "2688 0377 C31D 9E81 9BDF  83A8 C8C6 BDDB 3847 F72B";
-    }];
+    keys = [ { fingerprint = "2688 0377 C31D 9E81 9BDF  83A8 C8C6 BDDB 3847 F72B"; } ];
   };
   azazak123 = {
     email = "azazaka2002@gmail.com";
@@ -2134,27 +2113,14 @@
     github = "B4dM4n";
     githubId = 448169;
     name = "Fabian Möller";
-    keys = [{
-      fingerprint = "6309 E212 29D4 DA30 AF24  BDED 754B 5C09 63C4 2C50";
-    }];
-  };
-  babariviere = {
-    email = "me@babariviere.com";
-    github = "babariviere";
-    githubId = 12128029;
-    name = "Bastien Rivière";
-    keys = [{
-      fingerprint = "74AA 9AB4 E6FF 872B 3C5A  CB3E 3903 5CC0 B75D 1142";
-    }];
+    keys = [ { fingerprint = "6309 E212 29D4 DA30 AF24  BDED 754B 5C09 63C4 2C50"; } ];
   };
   babbaj = {
     name = "babbaj";
     email = "babbaj45@gmail.com";
     github = "babbaj";
     githubId = 12820770;
-    keys = [{
-      fingerprint = "6FBC A462 4EAF C69C A7C4  98C1 F044 3098 48A0 7CAC";
-    }];
+    keys = [ { fingerprint = "6FBC A462 4EAF C69C A7C4  98C1 F044 3098 48A0 7CAC"; } ];
   };
   babeuh = {
     name = "Raphael Le Goaller";
@@ -2181,9 +2147,7 @@
     matrix = "@badele:matrix.org";
     github = "badele";
     githubId = 2806307;
-    keys = [{
-      fingerprint = "00F4 21C4 C537 7BA3 9820 E13F 6B95 E13D E469 CC5D";
-    }];
+    keys = [ { fingerprint = "00F4 21C4 C537 7BA3 9820 E13F 6B95 E13D E469 CC5D"; } ];
   };
   badmutex = {
     email = "github@badi.sh";
@@ -2262,9 +2226,7 @@
     github = "wandersoncferreira";
     githubId = 17708295;
     name = "Wanderson Ferreira";
-    keys = [{
-      fingerprint = "A3E1 C409 B705 50B3 BF41  492B 5684 0A61 4DBE 37AE";
-    }];
+    keys = [ { fingerprint = "A3E1 C409 B705 50B3 BF41  492B 5684 0A61 4DBE 37AE"; } ];
   };
   bastaynav = {
     name = "Ivan Bastrakov";
@@ -2272,9 +2234,7 @@
     matrix = "@bastaynav:matrix.org";
     github = "bastaynav";
     githubId = 6987136;
-    keys = [{
-      fingerprint = "2C6D 37D4 6AA1 DCDA BE8D  F346 43E2 CF4C 01B9 4940";
-    }];
+    keys = [ { fingerprint = "2C6D 37D4 6AA1 DCDA BE8D  F346 43E2 CF4C 01B9 4940"; } ];
   };
   basvandijk = {
     email = "v.dijk.bas@gmail.com";
@@ -2306,9 +2266,7 @@
     matrix = "@baukexyz:matrix.org";
     github = "Bauke";
     githubId = 19501722;
-    keys = [{
-      fingerprint = "C593 27B5 9D0F 2622 23F6  1D03 C1C0 F299 52BC F558";
-    }];
+    keys = [ { fingerprint = "C593 27B5 9D0F 2622 23F6  1D03 C1C0 F299 52BC F558"; } ];
   };
   bb010g = {
     email = "me@bb010g.com";
@@ -2334,10 +2292,12 @@
     github = "bbenne10";
     githubId = 687376;
     name = "Bryan Bennett";
-    keys = [{
-      # compare with https://keybase.io/bbenne10
-      fingerprint = "41EA 00B4 00F9 6970 1CB2  D3AF EF90 E3E9 8B8F 5C0B";
-    }];
+    keys = [
+      {
+        # compare with https://keybase.io/bbenne10
+        fingerprint = "41EA 00B4 00F9 6970 1CB2  D3AF EF90 E3E9 8B8F 5C0B";
+      }
+    ];
   };
   bbenno = {
     email = "nix@bbenno.com";
@@ -2435,18 +2395,14 @@
     email = "b.broich@posteo.de";
     github = "BenediktBroich";
     githubId = 32903896;
-    keys = [{
-      fingerprint = "CB5C 7B3C 3E6F 2A59 A583  A90A 8A60 0376 7BE9 5976";
-    }];
+    keys = [ { fingerprint = "CB5C 7B3C 3E6F 2A59 A583  A90A 8A60 0376 7BE9 5976"; } ];
   };
   benesim = {
     name = "Benjamin Isbarn";
     email = "benjamin.isbarn@gmail.com";
     github = "BeneSim";
     githubId = 29384538;
-    keys = [{
-      fingerprint = "D35E C9CE E631 638F F1D8  B401 6F0E 410D C3EE D02";
-    }];
+    keys = [ { fingerprint = "D35E C9CE E631 638F F1D8  B401 6F0E 410D C3EE D02"; } ];
   };
   benhiemer = {
     name = "Benedikt Hiemer";
@@ -2459,9 +2415,7 @@
     email = "benjaminedwardwebb@gmail.com";
     github = "benjaminedwardwebb";
     githubId = 7118777;
-    keys = [{
-      fingerprint = "E9A3 7864 2165 28CE 507C  CA82 72EA BF75 C331 CD25";
-    }];
+    keys = [ { fingerprint = "E9A3 7864 2165 28CE 507C  CA82 72EA BF75 C331 CD25"; } ];
   };
   Benjamin-L = {
     name = "Benjamin Lee";
@@ -2469,9 +2423,7 @@
     matrix = "@benjamin:computer.surgery";
     github = "Benjamin-L";
     githubId = 6504174;
-    keys = [{
-      fingerprint = "9D84 09A0 44FC 1EEB AE2D  FA30 FB96 24E2 885D 55A4";
-    }];
+    keys = [ { fingerprint = "9D84 09A0 44FC 1EEB AE2D  FA30 FB96 24E2 885D 55A4"; } ];
   };
   benkuhn = {
     email = "ben@ben-kuhn.com";
@@ -2484,9 +2436,7 @@
     github = "benlemasurier";
     githubId = 47993;
     name = "Ben LeMasurier";
-    keys = [{
-      fingerprint = "0FD4 7407 EFD4 8FD8 8BF5  87B3 248D 430A E8E7 4189";
-    }];
+    keys = [ { fingerprint = "0FD4 7407 EFD4 8FD8 8BF5  87B3 248D 430A E8E7 4189"; } ];
   };
   benley = {
     email = "benley@gmail.com";
@@ -2536,9 +2486,7 @@
     email = "nicolas@normie.dev";
     github = "berbiche";
     githubId = 20448408;
-    keys = [{
-      fingerprint = "D446 E58D 87A0 31C7 EC15  88D7 B461 2924 45C6 E696";
-    }];
+    keys = [ { fingerprint = "D446 E58D 87A0 31C7 EC15  88D7 B461 2924 45C6 E696"; } ];
   };
   berce = {
     email = "bert.moens@gmail.com";
@@ -2575,9 +2523,7 @@
     email = "berto.f@protonmail.com";
     github = "bertof";
     githubId = 9915675;
-    keys = [{
-      fingerprint = "17C5 1EF9 C0FE 2EB2 FE56  BB53 FE98 AE5E C52B 1056";
-    }];
+    keys = [ { fingerprint = "17C5 1EF9 C0FE 2EB2 FE56  BB53 FE98 AE5E C52B 1056"; } ];
   };
   betaboon = {
     email = "betaboon@0x80.ninja";
@@ -2652,10 +2598,10 @@
     name = "Alexey Lebedeff";
   };
   binarycat = {
-      email = "binarycat@envs.net";
-      github = "lolbinarycat";
-      githubId = 19915050;
-      name = "binarycat";
+    email = "binarycat@envs.net";
+    github = "lolbinarycat";
+    githubId = 19915050;
+    name = "binarycat";
   };
   binsky = {
     email = "timo@binsky.org";
@@ -2698,9 +2644,7 @@
     email = "blankparticle@gmail.com";
     github = "BlankParticle";
     githubId = 130567419;
-    keys = [{
-      fingerprint = "1757 64C3 7065 AA8D 614D  41C9 0ACE 126D 7B35 9261";
-    }];
+    keys = [ { fingerprint = "1757 64C3 7065 AA8D 614D  41C9 0ACE 126D 7B35 9261"; } ];
   };
   blanky0230 = {
     email = "blanky0230@gmail.com";
@@ -2812,9 +2756,7 @@
     matrix = "@booklearner:matrix.org";
     github = "booklearner";
     githubId = 103979114;
-    keys = [{
-      fingerprint = "17C7 95D4 871C 2F87 83C8  053D 0C61 C4E5 907F 76C8";
-    }];
+    keys = [ { fingerprint = "17C7 95D4 871C 2F87 83C8  053D 0C61 C4E5 907F 76C8"; } ];
   };
   booniepepper = {
     name = "J.R. Hill";
@@ -2864,9 +2806,7 @@
     github = "Br1ght0ne";
     githubId = 12615679;
     name = "Oleksii Filonenko";
-    keys = [{
-      fingerprint = "F549 3B7F 9372 5578 FDD3  D0B8 A1BC 8428 323E CFE8";
-    }];
+    keys = [ { fingerprint = "F549 3B7F 9372 5578 FDD3  D0B8 A1BC 8428 323E CFE8"; } ];
   };
   br337 = {
     email = "brian.porumb@proton.me";
@@ -2957,9 +2897,7 @@
     github = "brhoades";
     githubId = 4763746;
     name = "Billy Rhoades";
-    keys = [{
-      fingerprint = "BF4FCB85C69989B4ED95BF938AE74787A4B7C07E";
-    }];
+    keys = [ { fingerprint = "BF4FCB85C69989B4ED95BF938AE74787A4B7C07E"; } ];
   };
   b-rodrigues = {
     email = "bruno@brodrigues.co";
@@ -3074,7 +3012,7 @@
     githubId = 8891115;
     name = "Brian Choy";
   };
-   ByteSudoer = {
+  ByteSudoer = {
     email = "bytesudoer@gmail.com";
     github = "bytesudoer";
     githubId = 88513682;
@@ -3123,12 +3061,8 @@
     name = "Vladimir Serov";
     keys = [
       # compare with https://keybase.io/cab404
-      {
-        fingerprint = "1BB96810926F4E715DEF567E6BA7C26C3FDF7BB3";
-      }
-      {
-        fingerprint = "1EBC648C64D6045463013B3EB7EFFC271D55DB8A";
-      }
+      { fingerprint = "1BB96810926F4E715DEF567E6BA7C26C3FDF7BB3"; }
+      { fingerprint = "1EBC648C64D6045463013B3EB7EFFC271D55DB8A"; }
     ];
   };
   CactiChameleon9 = {
@@ -3150,12 +3084,8 @@
     github = "cafkafk";
     githubId = 89321978;
     keys = [
-      {
-        fingerprint = "7B9E E848 D074 AE03 7A0C  651A 8ED4 DEF7 375A 30C8";
-      }
-      {
-        fingerprint = "208A 2A66 8A2F CDE7 B5D3  8F64 CDDC 792F 6552 51ED";
-      }
+      { fingerprint = "7B9E E848 D074 AE03 7A0C  651A 8ED4 DEF7 375A 30C8"; }
+      { fingerprint = "208A 2A66 8A2F CDE7 B5D3  8F64 CDDC 792F 6552 51ED"; }
     ];
   };
   CaitlinDavitt = {
@@ -3213,9 +3143,7 @@
     github = "cameronraysmith";
     githubId = 420942;
     name = "Cameron Smith";
-    keys = [{
-      fingerprint = "3F14 C258 856E 88AE E0F9  661E FF04 3B36 8811 DD1C";
-    }];
+    keys = [ { fingerprint = "3F14 C258 856E 88AE E0F9  661E FF04 3B36 8811 DD1C"; } ];
   };
   camillemndn = {
     email = "camillemondon@free.fr";
@@ -3253,14 +3181,22 @@
     github = "CaptainJawZ";
     githubId = 43111068;
   };
+  caralice = {
+    name = "Alice Carroll";
+    email = "nix@alice-carroll.pet";
+    github = "thecaralice";
+    githubId = 43097806;
+    keys = [
+      { fingerprint = "C7EA B182 2AB1 246C 0FB8  DD72 0514 0B67 902C D3AF"; }
+      { fingerprint = "DA77 EDDB 4AF5 244C 665E  9176 A05E A86A 5834 1AA8"; }
+    ];
+  };
   CardboardTurkey = {
     name = "Kiran Ostrolenk";
     email = "kiran@ostrolenk.co.uk";
     github = "CardboardTurkey";
     githubId = 34030186;
-    keys = [{
-      fingerprint = "8BC7 74E4 A2EC 7507 3B61  A647 0BBB 1C8B 1C36 39EE";
-    }];
+    keys = [ { fingerprint = "8BC7 74E4 A2EC 7507 3B61  A647 0BBB 1C8B 1C36 39EE"; } ];
   };
   carloscraveiro = {
     email = "carlos.craveiro@usp.br";
@@ -3383,9 +3319,7 @@
     github = "cburstedde";
     githubId = 109908;
     name = "Carsten Burstedde";
-    keys = [{
-      fingerprint = "1127 A432 6524 BF02 737B  544E 0704 CD9E 550A 6BCD";
-    }];
+    keys = [ { fingerprint = "1127 A432 6524 BF02 737B  544E 0704 CD9E 550A 6BCD"; } ];
   };
   ccellado = {
     email = "annplague@gmail.com";
@@ -3450,12 +3384,8 @@
     githubId = 2054509;
     name = "Constantine Evans";
     keys = [
-      {
-        fingerprint = "32B1 6EE7 DBA5 16DE 526E  4C5A B67D B1D2 0A93 A9F9";
-      }
-      {
-        fingerprint = "669C 1D24 5A87 DB34 6BE4  3216 1A1D 58B8 6AE2 AABD";
-      }
+      { fingerprint = "32B1 6EE7 DBA5 16DE 526E  4C5A B67D B1D2 0A93 A9F9"; }
+      { fingerprint = "669C 1D24 5A87 DB34 6BE4  3216 1A1D 58B8 6AE2 AABD"; }
     ];
   };
   Ch1keen = {
@@ -3493,9 +3423,7 @@
     github = "LostAttractor";
     githubId = 46527539;
     name = "ChaosAttractor";
-    keys = [{
-      fingerprint = "A137 4415 DB7C 6439 10EA  5BF1 0FEE 4E47 5940 E125";
-    }];
+    keys = [ { fingerprint = "A137 4415 DB7C 6439 10EA  5BF1 0FEE 4E47 5940 E125"; } ];
   };
   charlesbaynham = {
     email = "charlesbaynham@gmail.com";
@@ -3513,9 +3441,7 @@
     email = "chayleaf-nix@pavluk.org";
     github = "chayleaf";
     githubId = 9590981;
-    keys = [{
-      fingerprint = "4314 3701 154D 9E5F 7051  7ECF 7817 1AD4 6227 E68E";
-    }];
+    keys = [ { fingerprint = "4314 3701 154D 9E5F 7051  7ECF 7817 1AD4 6227 E68E"; } ];
     matrix = "@chayleaf:matrix.pavluk.org";
     name = "Anna Pavlyuk";
   };
@@ -3549,9 +3475,7 @@
     githubId = 20300586;
     matrix = "@sammy:cherrykitten.dev";
     name = "CherryKitten";
-    keys = [{
-      fingerprint = "264C FA1A 194C 585D F822  F673 C01A 7CBB A617 BD5F";
-    }];
+    keys = [ { fingerprint = "264C FA1A 194C 585D F822  F673 C01A 7CBB A617 BD5F"; } ];
   };
   chessai = {
     email = "chessai1996@gmail.com";
@@ -3569,9 +3493,7 @@
     name = "Diego Rodriguez";
     github = "Chili-Man";
     githubId = 631802;
-    keys = [{
-      fingerprint = "099E 3F97 FA08 3D47 8C75  EBEC E0EB AD78 F019 0BD9";
-    }];
+    keys = [ { fingerprint = "099E 3F97 FA08 3D47 8C75  EBEC E0EB AD78 F019 0BD9"; } ];
   };
   chiroptical = {
     email = "chiroptical@gmail.com";
@@ -3680,9 +3602,7 @@
     github = "christoph-heiss";
     githubId = 7571069;
     name = "Christoph Heiss";
-    keys = [{
-      fingerprint = "9C56 1D64 30B2 8D6B DCBC 9CEB 73D5 E7FD EE3D E49A";
-    }];
+    keys = [ { fingerprint = "9C56 1D64 30B2 8D6B DCBC 9CEB 73D5 E7FD EE3D E49A"; } ];
   };
   chrpinedo = {
     github = "chrpinedo";
@@ -3700,9 +3620,7 @@
     email = "nixos@chuang.cz";
     github = "chuangzhu";
     githubId = 31200881;
-    keys = [{
-      fingerprint = "5D03 A5E6 0754 A3E3 CA57 5037 E838 CED8 1CFF D3F9";
-    }];
+    keys = [ { fingerprint = "5D03 A5E6 0754 A3E3 CA57 5037 E838 CED8 1CFF D3F9"; } ];
   };
   chvp = {
     email = "nixpkgs@cvpetegem.be";
@@ -3717,6 +3635,13 @@
     github = "ciferkey";
     githubId = 101422;
   };
+  cig0 = {
+    name = "Martín Cigorraga";
+    email = "cig0.github@gmail.com";
+    github = "cig0";
+    githubId = 394089;
+    keys = [ { fingerprint = "1828 B459 DB9A 7EE2 03F4 7E6E AFBE ACC5 5D93 84A0"; } ];
+  };
   cigrainger = {
     name = "Christopher Grainger";
     email = "chris@amplified.ai";
@@ -3746,9 +3671,7 @@
     github = "VertexA115";
     githubId = 5567402;
     name = "Alex Zero";
-    keys = [{
-      fingerprint = "A0AA 4646 B8F6 9D45 4553  5A88 A515 50ED B450 302C";
-    }];
+    keys = [ { fingerprint = "A0AA 4646 B8F6 9D45 4553  5A88 A515 50ED B450 302C"; } ];
   };
   cizra = {
     email = "todurov+nix@gmail.com";
@@ -3762,6 +3685,12 @@
     githubId = 136485;
     name = "Chad Jablonski";
   };
+  cjshearer = {
+    email = "cjshearer@live.com";
+    github = "cjshearer";
+    githubId = 7173077;
+    name = "Cody Shearer";
+  };
   ck3d = {
     email = "ck3d@gmx.de";
     github = "ck3d";
@@ -3778,9 +3707,7 @@
     email = "nixpkgs-0efe364@ckie.dev";
     github = "ckiee";
     githubId = 25263210;
-    keys = [{
-      fingerprint = "539F 0655 4D35 38A5 429A  E253 13E7 9449 C052 5215";
-    }];
+    keys = [ { fingerprint = "539F 0655 4D35 38A5 429A  E253 13E7 9449 C052 5215"; } ];
     name = "ckie";
     matrix = "@ckie:ckie.dev";
   };
@@ -3796,6 +3723,13 @@
     githubId = 199180;
     name = "Claes Wallin";
   };
+  clebs = {
+    email = "borja.clemente@gmail.com";
+    github = "clebs";
+    githubId = 1059661;
+    name = "Borja Clemente";
+    keys = [ { fingerprint = "C4E1 58BD FD33 3C77 B6C7  178E 2539 757E F64C 60DD"; } ];
+  };
   cleeyv = {
     email = "cleeyv@riseup.net";
     github = "cleeyv";
@@ -3845,9 +3779,7 @@
     github = "cmars";
     githubId = 23741;
     name = "Casey Marshall";
-    keys = [{
-      fingerprint = "6B78 7E5F B493 FA4F D009  5D10 6DEC 2758 ACD5 A973";
-    }];
+    keys = [ { fingerprint = "6B78 7E5F B493 FA4F D009  5D10 6DEC 2758 ACD5 A973"; } ];
   };
   cmcdragonkai = {
     email = "roger.qiu@matrix.ai";
@@ -3884,9 +3816,7 @@
     github = "Coca162";
     githubId = 62479942;
     name = "Coca";
-    keys = [{
-      fingerprint = "99CB 86FF 62BB 7DA4 8903  B16D 0328 2DF8 8179 AB19";
-    }];
+    keys = [ { fingerprint = "99CB 86FF 62BB 7DA4 8903  B16D 0328 2DF8 8179 AB19"; } ];
   };
   coconnor = {
     email = "coreyoconnor@gmail.com";
@@ -3899,20 +3829,16 @@
     github = "code-asher";
     githubId = 45609798;
     name = "Asher";
-    keys = [{
-      fingerprint = "6E3A FA6D 915C C2A4 D26F  C53E 7BB4 BA9C 783D 2BBC";
-    }];
+    keys = [ { fingerprint = "6E3A FA6D 915C C2A4 D26F  C53E 7BB4 BA9C 783D 2BBC"; } ];
   };
   codebam = {
-      name = "Sean Behan";
-      email = "codebam@riseup.net";
-      matrix = "@codebam:fedora.im";
-      github = "codebam";
-      githubId = 6035884;
-      keys = [{
-        fingerprint = "42CD E212 593C F2FD C723 48A8 0F6D 5021 A87F 92BA";
-      }];
-    };
+    name = "Sean Behan";
+    email = "codebam@riseup.net";
+    matrix = "@codebam:fedora.im";
+    github = "codebam";
+    githubId = 6035884;
+    keys = [ { fingerprint = "42CD E212 593C F2FD C723 48A8 0F6D 5021 A87F 92BA"; } ];
+  };
   codec = {
     email = "codec@fnord.cx";
     github = "codec";
@@ -3930,9 +3856,7 @@
     name = "Guy Boldon";
     github = "codifryed";
     githubId = 27779510;
-    keys = [{
-      fingerprint = "FDF5 EF67 8CC1 FE22 1845  6A22 CF7B BB5B C756 1BD3";
-    }];
+    keys = [ { fingerprint = "FDF5 EF67 8CC1 FE22 1845  6A22 CF7B BB5B C756 1BD3"; } ];
   };
   codsl = {
     email = "codsl@riseup.net";
@@ -3948,7 +3872,7 @@
   };
   coffeeispower = {
     email = "tiagodinis33@proton.me";
-    github = "coffee-is-power";
+    github = "coffeeispower";
     name = "Tiago Dinis";
     githubId = 92828847;
   };
@@ -3958,9 +3882,7 @@
     matrix = "@cofob:matrix.org";
     github = "cofob";
     githubId = 49928332;
-    keys = [{
-      fingerprint = "5F3D 9D3D ECE0 8651 DE14  D29F ACAD 4265 E193 794D";
-    }];
+    keys = [ { fingerprint = "5F3D 9D3D ECE0 8651 DE14  D29F ACAD 4265 E193 794D"; } ];
   };
   Cogitri = {
     email = "oss@cogitri.dev";
@@ -3994,9 +3916,7 @@
     matrix = "@cole-h:matrix.org";
     github = "cole-h";
     githubId = 28582702;
-    keys = [{
-      fingerprint = "68B8 0D57 B2E5 4AC3 EC1F  49B0 B37E 0F23 7101 6A4C";
-    }];
+    keys = [ { fingerprint = "68B8 0D57 B2E5 4AC3 EC1F  49B0 B37E 0F23 7101 6A4C"; } ];
   };
   colemickens = {
     email = "cole.mickens@gmail.com";
@@ -4099,12 +4019,8 @@
     matrix = "@corbansolo:matrix.org";
     name = "Corban Raun";
     keys = [
-      {
-        fingerprint = "6607 0B24 8CE5 64ED 22CE  0950 A697 A56F 1F15 1189";
-      }
-      {
-        fingerprint = "D8CB 816A B678 A4E6 1EC7  5325 230F 4AC1 53F9 0F29";
-      }
+      { fingerprint = "6607 0B24 8CE5 64ED 22CE  0950 A697 A56F 1F15 1189"; }
+      { fingerprint = "D8CB 816A B678 A4E6 1EC7  5325 230F 4AC1 53F9 0F29"; }
     ];
   };
   corngood = {
@@ -4153,9 +4069,7 @@
     github = "cpu";
     githubId = 292650;
     name = "Daniel McCarney";
-    keys = [{
-      fingerprint = "8026 D24A A966 BF9C D3CD  CB3C 08FB 2BFC 470E 75B4";
-    }];
+    keys = [ { fingerprint = "8026 D24A A966 BF9C D3CD  CB3C 08FB 2BFC 470E 75B4"; } ];
   };
   Crafter = {
     email = "crafter@crafter.rocks";
@@ -4210,9 +4124,7 @@
     name = "Jan Möller";
     github = "Croissong";
     githubId = 4162215;
-    keys = [{
-      fingerprint = "CE97 9DEE 904C 26AA 3716  78C2 96A4 38F9 EE72 572F";
-    }];
+    keys = [ { fingerprint = "CE97 9DEE 904C 26AA 3716  78C2 96A4 38F9 EE72 572F"; } ];
   };
   crschnick = {
     email = "crschnick@xpipe.io";
@@ -4226,18 +4138,14 @@
     github = "CRTified";
     githubId = 2440581;
     name = "Carl Richard Theodor Schneider";
-    keys = [{
-      fingerprint = "2017 E152 BB81 5C16 955C  E612 45BC C1E2 709B 1788";
-    }];
+    keys = [ { fingerprint = "2017 E152 BB81 5C16 955C  E612 45BC C1E2 709B 1788"; } ];
   };
   Cryolitia = {
     name = "Beiyan Cryolitia";
     email = "Cryolitia@gmail.com";
     github = "Cryolitia";
     githubId = 23723294;
-    keys = [{
-      fingerprint = "1C3C 6547 538D 7152 310C 0EEA 84DD 0C01 30A5 4DF7";
-    }];
+    keys = [ { fingerprint = "1C3C 6547 538D 7152 310C 0EEA 84DD 0C01 30A5 4DF7"; } ];
   };
   cryptix = {
     email = "cryptix@riseup.net";
@@ -4279,9 +4187,7 @@
     github = "cust0dian";
     githubId = 119854490;
     name = "Serg Nesterov";
-    keys = [{
-      fingerprint = "6E7D BA30 DB5D BA60 693C  3BE3 1512 F6EB 84AE CC8C";
-    }];
+    keys = [ { fingerprint = "6E7D BA30 DB5D BA60 693C  3BE3 1512 F6EB 84AE CC8C"; } ];
   };
   cwoac = {
     email = "oliver@codersoffortune.net";
@@ -4302,26 +4208,20 @@
     github = "CyberShadow";
     githubId = 160894;
 
-    keys = [{
-      fingerprint = "BBED 1B08 8CED 7F95 8917 FBE8 5004 F0FA D051 576D";
-    }];
+    keys = [ { fingerprint = "BBED 1B08 8CED 7F95 8917 FBE8 5004 F0FA D051 576D"; } ];
   };
   cynerd = {
     name = "Karel Kočí";
     email = "cynerd@email.cz";
     github = "Cynerd";
     githubId = 3811900;
-    keys = [{
-      fingerprint = "2B1F 70F9 5F1B 48DA 2265 A7FA A6BC 8B8C EB31 659B";
-    }];
+    keys = [ { fingerprint = "2B1F 70F9 5F1B 48DA 2265 A7FA A6BC 8B8C EB31 659B"; } ];
   };
   cyntheticfox = {
     email = "cyntheticfox@gh0st.sh";
     github = "cyntheticfox";
     githubId = 17628961;
-    keys = [{
-      fingerprint = "73C1 C5DF 51E7 BB92 85E9  A262 5960 278C E235 F821";
-    }];
+    keys = [ { fingerprint = "73C1 C5DF 51E7 BB92 85E9  A262 5960 278C E235 F821"; } ];
     matrix = "@houstdav000:gh0st.ems.host";
     name = "Cynthia Fox";
   };
@@ -4337,12 +4237,8 @@
     githubId = 2217136;
     name = "Ștefan D. Mihăilă";
     keys = [
-      {
-        fingerprint = "CBC9 C7CC 51F0 4A61 3901 C723 6E68 A39B F16A 3ECB";
-      }
-      {
-        fingerprint = "7EAB 1447 5BBA 7DDE 7092 7276 6220 AD78 4622 0A52";
-      }
+      { fingerprint = "CBC9 C7CC 51F0 4A61 3901 C723 6E68 A39B F16A 3ECB"; }
+      { fingerprint = "7EAB 1447 5BBA 7DDE 7092 7276 6220 AD78 4622 0A52"; }
     ];
   };
   cyplo = {
@@ -4364,14 +4260,18 @@
     github = "d4ilyrun";
     githubId = 34611103;
   };
+  d4rkstar = {
+    name = "Bruno Salzano";
+    email = "d4rkstar@gmail.com";
+    github = "d4rkstar";
+    githubId = 4957015;
+  };
   dadada = {
     name = "dadada";
     email = "dadada@dadada.li";
     github = "dadada";
     githubId = 7216772;
-    keys = [{
-      fingerprint = "D68C 8469 5C08 7E0F 733A  28D0 EEB8 D1CE 62C4 DFEA";
-    }];
+    keys = [ { fingerprint = "D68C 8469 5C08 7E0F 733A  28D0 EEB8 D1CE 62C4 DFEA"; } ];
   };
   dalance = {
     email = "dalance@gmail.com";
@@ -4390,9 +4290,7 @@
     github = "DAlperin";
     githubId = 16063713;
     name = "Dov Alperin";
-    keys = [{
-      fingerprint = "4EED 5096 B925 86FA 1101  6673 7F2C 07B9 1B52 BB61";
-    }];
+    keys = [ { fingerprint = "4EED 5096 B925 86FA 1101  6673 7F2C 07B9 1B52 BB61"; } ];
   };
   DamienCassou = {
     email = "damien@cassou.me";
@@ -4417,9 +4315,7 @@
     email = "djc@djc.id.au";
     github = "danc86";
     githubId = 398575;
-    keys = [{
-      fingerprint = "1C56 01F1 D70A B56F EABB  6BC0 26B5 AA2F DAF2 F30A";
-    }];
+    keys = [ { fingerprint = "1C56 01F1 D70A B56F EABB  6BC0 26B5 AA2F DAF2 F30A"; } ];
   };
   dancek = {
     email = "hannu.hartikainen@gmail.com";
@@ -4500,9 +4396,7 @@
     matrix = "@danth:danth.me";
     github = "danth";
     githubId = 28959268;
-    keys = [{
-      fingerprint = "4779 D1D5 3C97 2EAE 34A5  ED3D D8AF C4BF 0567 0F9D";
-    }];
+    keys = [ { fingerprint = "4779 D1D5 3C97 2EAE 34A5  ED3D D8AF C4BF 0567 0F9D"; } ];
   };
   dan-theriault = {
     email = "nix@theriault.codes";
@@ -4540,9 +4434,7 @@
     email = "dasisdormax@mailbox.org";
     github = "dasisdormax";
     githubId = 3714905;
-    keys = [{
-      fingerprint = "E59B A198 61B0 A9ED C1FA  3FB2 02BA 0D44 80CA 6C44";
-    }];
+    keys = [ { fingerprint = "E59B A198 61B0 A9ED C1FA  3FB2 02BA 0D44 80CA 6C44"; } ];
     name = "Maximilian Wende";
   };
   das_j = {
@@ -4568,9 +4460,10 @@
     github = "DataHearth";
     githubId = 28595242;
     name = "DataHearth";
-    keys = [{
-      fingerprint = "A129 2547 0298 BFEE 7EE0  92B3 946E 2D0C 410C 7B3D";
-    }];
+    keys = [
+      { fingerprint = "A129 2547 0298 BFEE 7EE0 92B3 946E 2D0C 410C 7B3D"; }
+      { fingerprint = "FFC4 92C1 5320 B05D 0F8D 7D58 ABF6 737C 6339 6D35"; }
+    ];
   };
   davegallant = {
     name = "Dave Gallant";
@@ -4620,9 +4513,7 @@
     github = "david-r-cox";
     githubId = 4259949;
     name = "David Cox";
-    keys = [{
-      fingerprint = "0056 A3F6 9918 1E0D 8FF0  BCDE 65BB 07FA A4D9 4634";
-    }];
+    keys = [ { fingerprint = "0056 A3F6 9918 1E0D 8FF0  BCDE 65BB 07FA A4D9 4634"; } ];
   };
   davidrusu = {
     email = "davidrusu.me@gmail.com";
@@ -4641,9 +4532,7 @@
     github = "davidtwco";
     githubId = 1295100;
     name = "David Wood";
-    keys = [{
-      fingerprint = "5B08 313C 6853 E5BF FA91  A817 0176 0B4F 9F53 F154";
-    }];
+    keys = [ { fingerprint = "5B08 313C 6853 E5BF FA91  A817 0176 0B4F 9F53 F154"; } ];
   };
   davisrichard437 = {
     email = "davisrichard437@gmail.com";
@@ -4710,9 +4599,7 @@
     github = "dbirks";
     githubId = 7545665;
     name = "David Birks";
-    keys = [{
-      fingerprint = "B26F 9AD8 DA20 3392 EF87  C61A BB99 9F83 D9A1 9A36";
-    }];
+    keys = [ { fingerprint = "B26F 9AD8 DA20 3392 EF87  C61A BB99 9F83 D9A1 9A36"; } ];
   };
   dblsaiko = {
     email = "me@dblsaiko.net";
@@ -4731,9 +4618,7 @@
     github = "dbrgn";
     githubId = 105168;
     name = "Danilo B.";
-    keys = [{
-      fingerprint = "20EE 002D 778A E197 EF7D  0D2C B993 FF98 A90C 9AB1";
-    }];
+    keys = [ { fingerprint = "20EE 002D 778A E197 EF7D  0D2C B993 FF98 A90C 9AB1"; } ];
   };
   dbrock = {
     email = "daniel@brockman.se";
@@ -4770,9 +4655,7 @@
     email = "dearrude@tfwno.gf";
     github = "DearRude";
     githubId = 30749142;
-    keys = [{
-      fingerprint = "4E35 F2E5 2132 D654 E815  A672 DB2C BC24 2868 6000";
-    }];
+    keys = [ { fingerprint = "4E35 F2E5 2132 D654 E815  A672 DB2C BC24 2868 6000"; } ];
   };
   declan = {
     name = "Declan Rixon";
@@ -4785,9 +4668,7 @@
     github = "deejayem";
     githubId = 2564003;
     name = "David Morgan";
-    keys = [{
-      fingerprint = "9B43 6B14 77A8 79C2 6CDB  6604 C171 2510 02C2 00F2";
-    }];
+    keys = [ { fingerprint = "9B43 6B14 77A8 79C2 6CDB  6604 C171 2510 02C2 00F2"; } ];
   };
   deemp = {
     email = "deempleton@gmail.com";
@@ -4812,9 +4693,7 @@
     matrix = "@defelo:matrix.defelo.de";
     github = "Defelo";
     githubId = 41747605;
-    keys = [{
-      fingerprint = "6130 3BBA D7D1 BF74 EFA4  4E3B E7FE 2087 E438 0E64";
-    }];
+    keys = [ { fingerprint = "6130 3BBA D7D1 BF74 EFA4  4E3B E7FE 2087 E438 0E64"; } ];
   };
   deifactor = {
     name = "Ash Zahlen";
@@ -5056,9 +4935,7 @@
     github = "d-goldin";
     githubId = 43349662;
     name = "Dima";
-    keys = [{
-      fingerprint = "1C4E F4FE 7F8E D8B7 1E88 CCDF BAB1 D15F B7B4 D4CE";
-    }];
+    keys = [ { fingerprint = "1C4E F4FE 7F8E D8B7 1E88 CCDF BAB1 D15F B7B4 D4CE"; } ];
   };
   dgollings = {
     email = "daniel.gollings+nixpkgs@gmail.com";
@@ -5130,15 +5007,19 @@
     github = "diniamo";
     githubId = 55629891;
   };
+  diogomdp = {
+    email = "me@diogodp.dev";
+    github = "diogomdp";
+    githubId = 52360869;
+    name = "Diogo";
+  };
   diogotcorreia = {
     name = "Diogo Correia";
     email = "me@diogotc.com";
     matrix = "@dtc:diogotc.com";
     github = "diogotcorreia";
     githubId = 7467891;
-    keys = [{
-      fingerprint = "111F 91B7 5F61 99D8 985B  4C70 12CF 31FD FF17 2B77";
-    }];
+    keys = [ { fingerprint = "111F 91B7 5F61 99D8 985B  4C70 12CF 31FD FF17 2B77"; } ];
   };
   diogox = {
     name = "Diogo Xavier";
@@ -5180,18 +5061,14 @@
     email = "hello@ditsuke.com";
     github = "ditsuke";
     githubId = 72784348;
-    keys = [{
-      fingerprint = "8FD2 153F 4889 541A 54F1  E09E 71B6 C31C 8A5A 9D21";
-    }];
+    keys = [ { fingerprint = "8FD2 153F 4889 541A 54F1  E09E 71B6 C31C 8A5A 9D21"; } ];
   };
   dixslyf = {
     name = "Dixon Sean Low Yan Feng";
     email = "dixonseanlow@protonmail.com";
     github = "dixslyf";
     githubId = 56017218;
-    keys = [{
-      fingerprint = "E6F4 BFB4 8DE3 893F 68FC  A15F FF5F 4B30 A41B BAC8";
-    }];
+    keys = [ { fingerprint = "E6F4 BFB4 8DE3 893F 68FC  A15F FF5F 4B30 A41B BAC8"; } ];
   };
   djacu = {
     email = "daniel.n.baker@gmail.com";
@@ -5305,9 +5182,7 @@
     email = "silkmoth@protonmail.com";
     github = "asciimoth";
     githubId = 91414737;
-    keys = [{
-      fingerprint = "7D6B AE0A A98A FDE9 3396  E721 F87E 15B8 3AA7 3087";
-    }];
+    keys = [ { fingerprint = "7D6B AE0A A98A FDE9 3396  E721 F87E 15B8 3AA7 3087"; } ];
   };
   dominikh = {
     email = "dominik@honnef.co";
@@ -5319,17 +5194,13 @@
     github = "donovanglover";
     githubId = 2374245;
     name = "Donovan Glover";
-    keys = [{
-      fingerprint = "EE7D 158E F9E7 660E 0C33  86B2 8FC5 F7D9 0A5D 8F4D";
-    }];
+    keys = [ { fingerprint = "EE7D 158E F9E7 660E 0C33  86B2 8FC5 F7D9 0A5D 8F4D"; } ];
   };
   donteatoreo = {
     name = "DontEatOreo";
     github = "DontEatOreo";
     githubId = 57304299;
-    keys = [{
-      fingerprint = "33CD 5C0A 673C C54D 661E  5E4C 0DB5 361B EEE5 30AB";
-    }];
+    keys = [ { fingerprint = "33CD 5C0A 673C C54D 661E  5E4C 0DB5 361B EEE5 30AB"; } ];
   };
   doriath = {
     email = "tomasz.zurkowski@gmail.com";
@@ -5361,9 +5232,7 @@
     github = "dottedmag";
     githubId = 16120;
     name = "Misha Gusarov";
-    keys = [{
-      fingerprint = "A8DF 1326 9E5D 9A38 E57C  FAC2 9D20 F650 3E33 8888";
-    }];
+    keys = [ { fingerprint = "A8DF 1326 9E5D 9A38 E57C  FAC2 9D20 F650 3E33 8888"; } ];
   };
   dpaetzel = {
     email = "david.paetzel@posteo.de";
@@ -5376,9 +5245,7 @@
     github = "dpausp";
     githubId = 1965950;
     name = "Tobias Stenzel";
-    keys = [{
-      fingerprint = "4749 0887 CF3B 85A1 6355  C671 78C7 DD40 DF23 FB16";
-    }];
+    keys = [ { fingerprint = "4749 0887 CF3B 85A1 6355  C671 78C7 DD40 DF23 FB16"; } ];
   };
   dpc = {
     email = "dpc@dpc.pw";
@@ -5386,9 +5253,7 @@
     githubId = 9209;
     matrix = "@dpc:matrix.org";
     name = "Dawid Ciężarkiewicz";
-    keys = [{
-      fingerprint = "0402 11D2 0830 2D71 5792 8197 86BB 1D5B 5575 7D38";
-    }];
+    keys = [ { fingerprint = "0402 11D2 0830 2D71 5792 8197 86BB 1D5B 5575 7D38"; } ];
   };
   DPDmancul = {
     name = "Davide Peressoni";
@@ -5414,9 +5279,7 @@
     github = "dr460nf1r3";
     githubId = 12834713;
     name = "Nico Jensch";
-    keys = [{
-      fingerprint = "D245 D484 F357 8CB1 7FD6  DA6B 67DB 29BF F3C9 6757";
-    }];
+    keys = [ { fingerprint = "D245 D484 F357 8CB1 7FD6  DA6B 67DB 29BF F3C9 6757"; } ];
   };
   dragonginger = {
     email = "dragonginger10@gmail.com";
@@ -5458,9 +5321,7 @@
     github = "drperceptron";
     githubId = 92106371;
     name = "Dr Perceptron";
-    keys = [{
-      fingerprint = "7E38 89D9 B1A8 B381 C8DE  A15F 95EB 6DFF 26D1 CEB0";
-    }];
+    keys = [ { fingerprint = "7E38 89D9 B1A8 B381 C8DE  A15F 95EB 6DFF 26D1 CEB0"; } ];
   };
   DrSensor = {
     name = "Fahmi Akbar Wildana";
@@ -5475,9 +5336,7 @@
     matrix = "@drupol:matrix.org";
     github = "drupol";
     githubId = 252042;
-    keys = [{
-      fingerprint = "85F3 72DF 4AF3 EF13 ED34  72A3 0AAF 2901 E804 0715";
-    }];
+    keys = [ { fingerprint = "85F3 72DF 4AF3 EF13 ED34  72A3 0AAF 2901 E804 0715"; } ];
   };
   dsalaza4 = {
     email = "podany270895@gmail.com";
@@ -5490,9 +5349,7 @@
     email = "dominik.schrempf@gmail.com";
     github = "dschrempf";
     githubId = 5596239;
-    keys = [{
-      fingerprint = "62BC E2BD 49DF ECC7 35C7  E153 875F 2BCF 163F 1B29";
-    }];
+    keys = [ { fingerprint = "62BC E2BD 49DF ECC7 35C7  E153 875F 2BCF 163F 1B29"; } ];
   };
   dsferruzza = {
     email = "david.sferruzza@gmail.com";
@@ -5506,9 +5363,7 @@
     matrix = "@dani0854:matrix.org";
     github = "dani0854";
     githubId = 32674935;
-    keys = [{
-      fingerprint = "E033 FE26 0E62 224B B35C  75C9 DE8B 9CED 0696 C600";
-    }];
+    keys = [ { fingerprint = "E033 FE26 0E62 224B B35C  75C9 DE8B 9CED 0696 C600"; } ];
   };
   dsymbol = {
     name = "dsymbol";
@@ -5520,9 +5375,7 @@
     github = "dtzWill";
     githubId = 817330;
     name = "Will Dietz";
-    keys = [{
-      fingerprint = "389A 78CB CD88 5E0C 4701  DEB9 FD42 C7D0 D414 94C8";
-    }];
+    keys = [ { fingerprint = "389A 78CB CD88 5E0C 4701  DEB9 FD42 C7D0 D414 94C8"; } ];
   };
   dudymas = {
     email = "jeremy.white@cloudposse.com";
@@ -5541,9 +5394,7 @@
     github = "jollheef";
     githubId = 1749762;
     name = "Mikhail Klementev";
-    keys = [{
-      fingerprint = "5DD7 C6F6 0630 F08E DAE7  4711 1525 585D 1B43 C62A";
-    }];
+    keys = [ { fingerprint = "5DD7 C6F6 0630 F08E DAE7  4711 1525 585D 1B43 C62A"; } ];
   };
   dunxen = {
     email = "git@dunxen.dev";
@@ -5551,9 +5402,7 @@
     github = "dunxen";
     githubId = 3072149;
     name = "Duncan Dean";
-    keys = [{
-      fingerprint = "9484 44FC E03B 05BA 5AB0  591E C37B 1C1D 44C7 86EE";
-    }];
+    keys = [ { fingerprint = "9484 44FC E03B 05BA 5AB0  591E C37B 1C1D 44C7 86EE"; } ];
   };
   dvn0 = {
     email = "git@dvn.me";
@@ -5616,9 +5465,7 @@
     github = "e1mo";
     githubId = 61651268;
     name = "Moritz Fromm";
-    keys = [{
-      fingerprint = "67BE E563 43B6 420D 550E  DF2A 6D61 7FD0 A85B AADA";
-    }];
+    keys = [ { fingerprint = "67BE E563 43B6 420D 550E  DF2A 6D61 7FD0 A85B AADA"; } ];
   };
   eadwu = {
     email = "edmund.wu@protonmail.com";
@@ -5655,9 +5502,7 @@
     github = "ebbertd";
     githubId = 20522234;
     name = "Daniel Ebbert";
-    keys = [{
-      fingerprint = "E765 FCA3 D9BF 7FDB 856E  AD73 47BC 1559 27CB B9C7";
-    }];
+    keys = [ { fingerprint = "E765 FCA3 D9BF 7FDB 856E  AD73 47BC 1559 27CB B9C7"; } ];
   };
   ebzzry = {
     email = "ebzzry@ebzzry.io";
@@ -5700,9 +5545,7 @@
     github = "eddsteel";
     githubId = 206872;
     name = "Edd Steel";
-    keys = [{
-      fingerprint = "1BE8 48D7 6C7C 4C51 349D  DDCC 3362 0159 D403 85A0";
-    }];
+    keys = [ { fingerprint = "1BE8 48D7 6C7C 4C51 349D  DDCC 3362 0159 D403 85A0"; } ];
   };
   edef = {
     email = "edef@edef.eu";
@@ -5739,9 +5582,7 @@
     email = "ericdrex@gmail.com";
     github = "edrex";
     githubId = 14615;
-    keys = [{
-      fingerprint = "AC47 2CCC 9867 4644 A9CF  EB28 1C5C 1ED0 9F66 6824";
-    }];
+    keys = [ { fingerprint = "AC47 2CCC 9867 4644 A9CF  EB28 1C5C 1ED0 9F66 6824"; } ];
     matrix = "@edrex:matrix.org";
     name = "Eric Drechsel";
   };
@@ -5816,7 +5657,7 @@
     name = "Edvin Källström";
     githubId = 84442052;
   };
-  ekimber  = {
+  ekimber = {
     email = "ekimber@protonmail.com";
     github = "ekimber";
     name = "Edward Kimber";
@@ -5907,9 +5748,7 @@
     email = "fedi.jamoussi@protonmail.ch";
     github = "eljamm";
     githubId = 83901271;
-    keys = [{
-      fingerprint = "FF59 E027 4EE2 E792 512B  BDC8 7630 FDF7 C8FB 1F3F";
-    }];
+    keys = [ { fingerprint = "FF59 E027 4EE2 E792 512B  BDC8 7630 FDF7 C8FB 1F3F"; } ];
   };
   elkowar = {
     email = "thereal.elkowar@gmail.com";
@@ -6094,9 +5933,7 @@
     email = "eownerdead@disroot.org";
     github = "eownerdead";
     githubId = 141208772;
-    keys = [{
-      fingerprint = "4715 17D6 2495 A273 4DDB  5661 009E 5630 5CA5 4D63";
-    }];
+    keys = [ { fingerprint = "4715 17D6 2495 A273 4DDB  5661 009E 5630 5CA5 4D63"; } ];
   };
   eperuffo = {
     email = "info@emanueleperuffo.com";
@@ -6127,18 +5964,14 @@
     github = "ercao";
     githubId = 51725284;
     name = "ercao";
-    keys = [{
-      fingerprint = "F3B0 36F7 B0CB 0964 3C12  D3C7 FFAB D125 7ECF 0889";
-    }];
+    keys = [ { fingerprint = "F3B0 36F7 B0CB 0964 3C12  D3C7 FFAB D125 7ECF 0889"; } ];
   };
   erdnaxe = {
     email = "erdnaxe@crans.org";
     github = "erdnaxe";
     githubId = 2663216;
     name = "Alexandre Iooss";
-    keys = [{
-      fingerprint = "2D37 1AD2 7E2B BC77 97E1  B759 6C79 278F 3FCD CC02";
-    }];
+    keys = [ { fingerprint = "2D37 1AD2 7E2B BC77 97E1  B759 6C79 278F 3FCD CC02"; } ];
   };
   ereslibre = {
     email = "ereslibre@ereslibre.es";
@@ -6184,9 +6017,7 @@
     github = "erictapen";
     githubId = 11532355;
     name = "Kerstin Humm";
-    keys = [{
-      fingerprint = "F178 B4B4 6165 6D1B 7C15  B55D 4029 3358 C7B9 326B";
-    }];
+    keys = [ { fingerprint = "F178 B4B4 6165 6D1B 7C15  B55D 4029 3358 C7B9 326B"; } ];
   };
   ericthemagician = {
     email = "eric@ericyen.com";
@@ -6264,9 +6095,7 @@
     github = "ethancedwards8";
     githubId = 60861925;
     name = "Ethan Carter Edwards";
-    keys = [{
-      fingerprint = "0E69 0F46 3457 D812 3387  C978 F93D DAFA 26EF 2458";
-    }];
+    keys = [ { fingerprint = "0E69 0F46 3457 D812 3387  C978 F93D DAFA 26EF 2458"; } ];
   };
   ethercrow = {
     email = "ethercrow@gmail.com";
@@ -6305,9 +6134,7 @@
     github = "etu";
     githubId = 461970;
     name = "Elis Hirwing";
-    keys = [{
-      fingerprint = "67FE 98F2 8C44 CF22 1828  E12F D57E FA62 5C9A 925F";
-    }];
+    keys = [ { fingerprint = "67FE 98F2 8C44 CF22 1828  E12F D57E FA62 5C9A 925F"; } ];
   };
   euank = {
     email = "euank-nixpkg@euank.com";
@@ -6327,9 +6154,7 @@
     matrix = "@evalexpr:matrix.org";
     github = "evalexpr";
     githubId = 23485511;
-    keys = [{
-      fingerprint = "8129 5B85 9C5A F703 C2F4  1E29 2D1D 402E 1776 3DD6";
-    }];
+    keys = [ { fingerprint = "8129 5B85 9C5A F703 C2F4  1E29 2D1D 402E 1776 3DD6"; } ];
   };
   evan-goode = {
     email = "mail@evangoo.de";
@@ -6379,9 +6204,7 @@
     github = "evilbulgarian";
     githubId = 1960413;
     name = "Vladi Gergov";
-    keys = [{
-      fingerprint = "50D5 67C5 D693 15A2 76F5  5634 3758 5F3C A9EC BFA4";
-    }];
+    keys = [ { fingerprint = "50D5 67C5 D693 15A2 76F5  5634 3758 5F3C A9EC BFA4"; } ];
   };
   evilmav = {
     email = "elenskiy.ilya@gmail.com";
@@ -6438,9 +6261,7 @@
     github = "expipiplus1";
     githubId = 857308;
     name = "Ellie Hermaszewska";
-    keys = [{
-      fingerprint = "FC1D 3E4F CBCA 80DF E870  6397 C811 6E3A 0C1C A76A";
-    }];
+    keys = [ { fingerprint = "FC1D 3E4F CBCA 80DF E870  6397 C811 6E3A 0C1C A76A"; } ];
   };
   exploitoverload = {
     email = "nix@exploitoverload.com";
@@ -6485,9 +6306,7 @@
     name = "Fabian Affolter";
     github = "fabaff";
     githubId = 116184;
-    keys = [{
-      fingerprint = "2F6C 930F D3C4 7E38 6AFA  4EB4 E23C D2DD 36A4 397F";
-    }];
+    keys = [ { fingerprint = "2F6C 930F D3C4 7E38 6AFA  4EB4 E23C D2DD 36A4 397F"; } ];
   };
   fabiangd = {
     email = "fabian.g.droege@gmail.com";
@@ -6500,9 +6319,7 @@
     github = "fabianhauser";
     githubId = 368799;
     name = "Fabian Hauser";
-    keys = [{
-      fingerprint = "50B7 11F4 3DFD 2018 DCE6  E8D0 8A52 A140 BEBF 7D2C";
-    }];
+    keys = [ { fingerprint = "50B7 11F4 3DFD 2018 DCE6  E8D0 8A52 A140 BEBF 7D2C"; } ];
   };
   fabianhjr = {
     email = "fabianhjr@protonmail.com";
@@ -6533,9 +6350,7 @@
     github = "fangpenlin";
     githubId = 201615;
     name = "Fang-Pen Lin";
-    keys = [{
-      fingerprint = "7130 3454 A7CD 0F0A 941A  F9A3 2A26 9964 AD29 2131";
-    }];
+    keys = [ { fingerprint = "7130 3454 A7CD 0F0A 941A  F9A3 2A26 9964 AD29 2131"; } ];
   };
   farcaller = {
     name = "Vladimir Pouzanov";
@@ -6616,12 +6431,20 @@
     githubId = 9959940;
     name = "Andreas Fehn";
   };
+  felbinger = {
+    name = "Nico Felbinger";
+    email = "nico@felbinger.eu";
+    matrix = "@nico:felbinger.eu";
+    github = "felbinger";
+    githubId = 26925347;
+    keys = [ { fingerprint = "0797 D238 9769 CA1E 57B7 2ED9 2BA7 8116 87C9 0DE4"; } ];
+  };
   felipeqq2 = {
     name = "Felipe Silva";
     email = "nixpkgs@felipeqq2.rocks";
     github = "felipeqq2";
     githubId = 71830138;
-    keys = [{ fingerprint = "7391 BF2D A2C3 B2C9 BE25  ACA9 C7A7 4616 F302 5DF4"; }];
+    keys = [ { fingerprint = "7391 BF2D A2C3 B2C9 BE25  ACA9 C7A7 4616 F302 5DF4"; } ];
     matrix = "@felipeqq2:pub.solar";
   };
   felixalbrigtsen = {
@@ -6654,9 +6477,7 @@
         # historical
         fingerprint = "6AB3 7A28 5420 9A41 82D9  0068 910A CB9F 6BD2 6F58";
       }
-      {
-        fingerprint = "7E08 6842 0934 AA1D 6821  1F2A 671E 39E6 744C 807D";
-      }
+      { fingerprint = "7E08 6842 0934 AA1D 6821  1F2A 671E 39E6 744C 807D"; }
     ];
   };
   fernsehmuell = {
@@ -6739,9 +6560,7 @@
     github = "Flakebi";
     githubId = 6499211;
     name = "Sebastian Neubauer";
-    keys = [{
-      fingerprint = "2F93 661D AC17 EA98 A104  F780 ECC7 55EE 583C 1672";
-    }];
+    keys = [ { fingerprint = "2F93 661D AC17 EA98 A104  F780 ECC7 55EE 583C 1672"; } ];
   };
   flandweber = {
     email = "finn@landweber.xyz";
@@ -6841,9 +6660,7 @@
     githubId = 34962634;
     matrix = "@foodogsquared:matrix.org";
     name = "Gabriel Arazas";
-    keys = [{
-      fingerprint = "DDD7 D0BD 602E 564B AA04  FC35 1431 0D91 4115 2B92";
-    }];
+    keys = [ { fingerprint = "DDD7 D0BD 602E 564B AA04  FC35 1431 0D91 4115 2B92"; } ];
   };
   fooker = {
     email = "fooker@lab.sh";
@@ -6856,9 +6673,7 @@
     github = "foolnotion";
     githubId = 844222;
     name = "Bogdan Burlacu";
-    keys = [{
-      fingerprint = "B722 6464 838F 8BDB 2BEA  C8C8 5B0E FDDF BA81 6105";
-    }];
+    keys = [ { fingerprint = "B722 6464 838F 8BDB 2BEA  C8C8 5B0E FDDF BA81 6105"; } ];
   };
   Forden = {
     email = "forden@zuku.tech";
@@ -6883,9 +6698,7 @@
     github = "fpletz";
     githubId = 114159;
     name = "Franz Pletz";
-    keys = [{
-      fingerprint = "8A39 615D CE78 AF08 2E23  F303 846F DED7 7926 17B4";
-    }];
+    keys = [ { fingerprint = "8A39 615D CE78 AF08 2E23  F303 846F DED7 7926 17B4"; } ];
   };
   fps = {
     email = "mista.tapas@gmx.net";
@@ -6974,11 +6787,11 @@
     githubId = 2129135;
     name = "Frederik Rietdijk";
   };
-  friedelino = {
-    email = "friede.mann@posteo.de";
-    github = "friedelino";
-    githubId = 46672819;
-    name = "Frido Friedemann";
+  friedow = {
+    email = "christian@friedow.com";
+    github = "friedow";
+    githubId = 17351844;
+    name = "Christian Friedow";
   };
   friedrichaltheide = {
     github = "friedrichaltheide";
@@ -6997,9 +6810,15 @@
     githubId = 10263813;
     name = "Dominic Shelton";
     matrix = "@frogamic:beeper.com";
-    keys = [{
-      fingerprint = "779A 7CA8 D51C C53A 9C51  43F7 AAE0 70F0 67EC 00A5";
-    }];
+    keys = [ { fingerprint = "779A 7CA8 D51C C53A 9C51  43F7 AAE0 70F0 67EC 00A5"; } ];
+  };
+  frontear = {
+    name = "Ali Rizvi";
+    email = "perm-iterate-0b@icloud.com";
+    matrix = "@frontear:matrix.org";
+    github = "Frontear";
+    githubId = 31909298;
+    keys = [ { fingerprint = "C170 11B7 C0AA BB3F 7415  022C BCB5 CEFD E222 82F5"; } ];
   };
   frontsideair = {
     email = "photonia@gmail.com";
@@ -7024,9 +6843,7 @@
     email = "luiz@lferraz.com";
     github = "Fryuni";
     githubId = 11063910;
-    keys = [{
-      fingerprint = "2109 4B0E 560B 031E F539  62C8 2B56 8731 DB24 47EC";
-    }];
+    keys = [ { fingerprint = "2109 4B0E 560B 031E F539  62C8 2B56 8731 DB24 47EC"; } ];
   };
   fsagbuya = {
     email = "fa@m-labs.ph";
@@ -7034,6 +6851,13 @@
     githubId = 77672306;
     name = "Florian Agbuya";
   };
+  fsnkty = {
+    name = "fsnkty";
+    github = "fsnkty";
+    githubId = 153512689;
+    email = "fsnkty@shimeji.cafe";
+    matrix = "@nuko:shimeji.cafe";
+  };
   fstamour = {
     email = "fr.st-amour@gmail.com";
     github = "fstamour";
@@ -7075,9 +6899,7 @@
     github = "funkeleinhorn";
     githubId = 103313934;
     name = "Funkeleinhorn";
-    keys = [{
-      fingerprint = "689D 1C81 DA0D 1EB2 F029  D24E C7BE A25A 0A33 5A72";
-    }];
+    keys = [ { fingerprint = "689D 1C81 DA0D 1EB2 F029  D24E C7BE A25A 0A33 5A72"; } ];
   };
   fusion809 = {
     email = "brentonhorne77@gmail.com";
@@ -7113,9 +6935,7 @@
     github = "fx-chun";
     githubId = 40049608;
     name = "Faye Chun";
-    keys = [{
-      fingerprint = "ACB8 DB1F E88D A908 6332  BDB1 5A71 B010 2FD7 3FC0";
-    }];
+    keys = [ { fingerprint = "ACB8 DB1F E88D A908 6332  BDB1 5A71 B010 2FD7 3FC0"; } ];
   };
   fxfactorial = {
     email = "edgar.factorial@gmail.com";
@@ -7159,18 +6979,14 @@
     github = "gabyx";
     githubId = 647437;
     name = "Gabriel Nützi";
-    keys = [{
-      fingerprint = "90AE CCB9 7AD3 4CE4 3AED  9402 E969 172A B075 7EB8";
-    }];
+    keys = [ { fingerprint = "90AE CCB9 7AD3 4CE4 3AED  9402 E969 172A B075 7EB8"; } ];
   };
   gador = {
     email = "florian.brandes@posteo.de";
     github = "gador";
     githubId = 1883533;
     name = "Florian Brandes";
-    keys = [{
-      fingerprint = "0200 3EF8 8D2B CF2D 8F00  FFDC BBB3 E40E 5379 7FD9";
-    }];
+    keys = [ { fingerprint = "0200 3EF8 8D2B CF2D 8F00  FFDC BBB3 E40E 5379 7FD9"; } ];
   };
   gaelreyrol = {
     email = "me@gaelreyrol.dev";
@@ -7178,9 +6994,7 @@
     name = "Gaël Reyrol";
     github = "gaelreyrol";
     githubId = 498465;
-    keys = [{
-      fingerprint = "3492 D8FA ACFF 4C5F A56E  50B7 DFB9 B69A 2C42 7F61";
-    }];
+    keys = [ { fingerprint = "3492 D8FA ACFF 4C5F A56E  50B7 DFB9 B69A 2C42 7F61"; } ];
   };
   GaetanLepage = {
     email = "gaetan@glepage.com";
@@ -7200,9 +7014,7 @@
     name = "The Galaxy";
     github = "ga1aksy";
     githubId = 148551648;
-    keys = [{
-      fingerprint = "48CA 3873 9E9F CA8E 76A0  835A E3DE CF85 4212 E1EA";
-    }];
+    keys = [ { fingerprint = "48CA 3873 9E9F CA8E 76A0  835A E3DE CF85 4212 E1EA"; } ];
   };
   gal_bolle = {
     email = "florent.becker@ens-lyon.org";
@@ -7322,27 +7134,29 @@
     email = "genericnerdyusername@proton.me";
     github = "GenericNerdyUsername";
     githubId = 111183546;
-    keys = [{
-      fingerprint = "58CE D4BE 6B10 149E DA80  A990 2F48 6356 A4CB 30F3";
-    }];
+    keys = [ { fingerprint = "58CE D4BE 6B10 149E DA80  A990 2F48 6356 A4CB 30F3"; } ];
   };
   genofire = {
     name = "genofire";
     email = "geno+dev@fireorbit.de";
     github = "genofire";
     githubId = 6905586;
-    keys = [{
-      fingerprint = "386E D1BF 848A BB4A 6B4A  3C45 FC83 907C 125B C2BC";
-    }];
+    keys = [ { fingerprint = "386E D1BF 848A BB4A 6B4A  3C45 FC83 907C 125B C2BC"; } ];
+  };
+  geoffreyfrogeye = {
+    name = "Geoffrey Frogeye";
+    email = "geoffrey@frogeye.fr";
+    matrix = "@geoffrey:frogeye.fr";
+    github = "GeoffreyFrogeye";
+    githubId = 1685403;
+    keys = [ { fingerprint = "4FBA 930D 314A 0321 5E2C  DB0A 8312 C8CA C1BA C289"; } ];
   };
   georgesalkhouri = {
     name = "Georges Alkhouri";
     email = "incense.stitch_0w@icloud.com";
     github = "GeorgesAlkhouri";
     githubId = 6077574;
-    keys = [{
-      fingerprint = "1608 9E8D 7C59 54F2 6A7A 7BD0 8BD2 09DC C54F D339";
-    }];
+    keys = [ { fingerprint = "1608 9E8D 7C59 54F2 6A7A 7BD0 8BD2 09DC C54F D339"; } ];
   };
   georgewhewell = {
     email = "georgerw@gmail.com";
@@ -7355,9 +7169,7 @@
     github = "georgyo";
     githubId = 19374;
     name = "George Shammas";
-    keys = [{
-      fingerprint = "D0CF 440A A703 E0F9 73CB  A078 82BB 70D5 41AE 2DB4";
-    }];
+    keys = [ { fingerprint = "D0CF 440A A703 E0F9 73CB  A078 82BB 70D5 41AE 2DB4"; } ];
   };
   gepbird = {
     email = "gutyina.gergo.2@gmail.com";
@@ -7442,9 +7254,7 @@
     github = "ghthor";
     githubId = 160298;
     name = "Will Owens";
-    keys = [{
-      fingerprint = "8E98 BB01 BFF8 AEA4 E303  FC4C 8074 09C9 2CE2 3033";
-    }];
+    keys = [ { fingerprint = "8E98 BB01 BFF8 AEA4 E303  FC4C 8074 09C9 2CE2 3033"; } ];
   };
   ghuntley = {
     email = "ghuntley@ghuntley.com";
@@ -7463,9 +7273,7 @@
     github = "gigglesquid";
     githubId = 3685154;
     name = "Jack connors";
-    keys = [{
-      fingerprint = "21DF 8034 B212 EDFF 9F19  9C19 F65B 7583 7ABF D019";
-    }];
+    keys = [ { fingerprint = "21DF 8034 B212 EDFF 9F19  9C19 F65B 7583 7ABF D019"; } ];
   };
   gila = {
     email = "jeffry.molanus@gmail.com";
@@ -7549,9 +7357,7 @@
     email = "root@gws.fyi";
     github = "glittershark";
     githubId = 1481027;
-    keys = [{
-      fingerprint = "0F11 A989 879E 8BBB FDC1  E236 44EF 5B5E 861C 09A7";
-    }];
+    keys = [ { fingerprint = "0F11 A989 879E 8BBB FDC1  E236 44EF 5B5E 861C 09A7"; } ];
   };
   gloaming = {
     email = "ch9871@gmail.com";
@@ -7598,9 +7404,7 @@
     github = "Gobidev";
     githubId = 50576978;
     name = "Adrian Groh";
-    keys = [{
-      fingerprint = "62BD BF30 83E9 7076 9665 B60B 3AA3 153E 98B0 D771";
-    }];
+    keys = [ { fingerprint = "62BD BF30 83E9 7076 9665 B60B 3AA3 153E 98B0 D771"; } ];
   };
   goertzenator = {
     email = "daniel.goertzen@gmail.com";
@@ -7619,9 +7423,13 @@
     github = "GoldsteinE";
     githubId = 12019211;
     name = "Maximilian Siling";
-    keys = [{
-      fingerprint = "0BAF 2D87 CB43 746F 6237  2D78 DE60 31AB A0BB 269A";
-    }];
+    keys = [ { fingerprint = "0BAF 2D87 CB43 746F 6237  2D78 DE60 31AB A0BB 269A"; } ];
+  };
+  Golo300 = {
+    email = "lanzingertm@gmail.com";
+    github = "Golo300";
+    githubId = 58785758;
+    name = "Tim Lanzinger";
   };
   Gonzih = {
     email = "gonzih@gmail.com";
@@ -7646,27 +7454,21 @@
     email = "gauvain@govanify.com";
     github = "GovanifY";
     githubId = 6375438;
-    keys = [{
-      fingerprint = "5214 2D39 A7CE F8FA 872B  CA7F DE62 E1E2 A614 5556";
-    }];
+    keys = [ { fingerprint = "5214 2D39 A7CE F8FA 872B  CA7F DE62 E1E2 A614 5556"; } ];
   };
   gp2112 = {
     email = "me@guip.dev";
     github = "gp2112";
     githubId = 26512375;
     name = "Guilherme Paixão";
-    keys = [{
-      fingerprint = "4382 7E28 86E5 C34F 38D5  7753 8C81 4D62 5FBD 99D1";
-    }];
+    keys = [ { fingerprint = "4382 7E28 86E5 C34F 38D5  7753 8C81 4D62 5FBD 99D1"; } ];
   };
   gpanders = {
     name = "Gregory Anders";
     email = "greg@gpanders.com";
     github = "gpanders";
     githubId = 8965202;
-    keys = [{
-      fingerprint = "B9D5 0EDF E95E ECD0 C135  00A9 56E9 3C2F B6B0 8BDB";
-    }];
+    keys = [ { fingerprint = "B9D5 0EDF E95E ECD0 C135  00A9 56E9 3C2F B6B0 8BDB"; } ];
   };
   gpl = {
     email = "nixos-6c64ce18-bbbc-414f-8dcb-f9b6b47fe2bc@isopleth.org";
@@ -7727,9 +7529,14 @@
     github = "GRBurst";
     githubId = 4647221;
     name = "GRBurst";
-    keys = [{
-      fingerprint = "7FC7 98AB 390E 1646 ED4D  8F1F 797F 6238 68CD 00C2";
-    }];
+    keys = [ { fingerprint = "7FC7 98AB 390E 1646 ED4D  8F1F 797F 6238 68CD 00C2"; } ];
+  };
+  greaka = {
+    email = "git@greaka.de";
+    github = "greaka";
+    githubId = 2805834;
+    name = "Greaka";
+    keys = [ { fingerprint = "6275 FB5C C9AC 9D85 FF9E  44C5 EE92 A5CD C367 118C"; } ];
   };
   greg = {
     email = "greg.hellings@gmail.com";
@@ -7888,9 +7695,7 @@
     matrix = "@h7x4:nani.wtf";
     github = "h7x4";
     githubId = 14929991;
-    keys = [{
-      fingerprint = "F7D3 7890 228A 9074 40E1  FD48 46B9 228E 814A 2AAC";
-    }];
+    keys = [ { fingerprint = "F7D3 7890 228A 9074 40E1  FD48 46B9 228E 814A 2AAC"; } ];
   };
   hacker1024 = {
     name = "hacker1024";
@@ -7951,9 +7756,7 @@
     github = "HaoZeke";
     githubId = 4336207;
     name = "Rohit Goswami";
-    keys = [{
-      fingerprint = "74B1 F67D 8E43 A94A 7554  0768 9CCC E364 02CB 49A6";
-    }];
+    keys = [ { fingerprint = "74B1 F67D 8E43 A94A 7554  0768 9CCC E364 02CB 49A6"; } ];
   };
   happyalu = {
     email = "alok@parlikar.com";
@@ -7979,9 +7782,7 @@
     github = "hardselius";
     githubId = 1422583;
     name = "Martin Hardselius";
-    keys = [{
-      fingerprint = "3F35 E4CA CBF4 2DE1 2E90  53E5 03A6 E6F7 8693 6619";
-    }];
+    keys = [ { fingerprint = "3F35 E4CA CBF4 2DE1 2E90  53E5 03A6 E6F7 8693 6619"; } ];
   };
   harrisonthorne = {
     email = "harrisonthorne@proton.me";
@@ -8049,9 +7850,7 @@
     email = "hdhog@hdhog.ru";
     github = "hdhog";
     githubId = 386666;
-    keys = [{
-      fingerprint = "A25F 6321 AAB4 4151 4085  9924 952E ACB7 6703 BA63";
-    }];
+    keys = [ { fingerprint = "A25F 6321 AAB4 4151 4085  9924 952E ACB7 6703 BA63"; } ];
   };
   hectorj = {
     email = "hector.jusforgues+nixos@gmail.com";
@@ -8084,6 +7883,12 @@
     matrix = "@heisfer:matrix.org";
     name = "Heisfer";
   };
+  HeitorAugustoLN = {
+    email = "IAm.HeitorALN@proton.me";
+    github = "HeitorAugustoLN";
+    githubId = 44377258;
+    name = "Heitor Augusto";
+  };
   helium = {
     email = "helium.dev@tuta.io";
     github = "helium18";
@@ -8187,9 +7992,7 @@
     github = "heyimnova";
     githubId = 115728866;
     name = "Nova Witterick";
-    keys = [{
-      fingerprint = "4304 6B43 8D83 078E 3DF7  10D6 DEB0 E15C 6D2A 5A7C";
-    }];
+    keys = [ { fingerprint = "4304 6B43 8D83 078E 3DF7  10D6 DEB0 E15C 6D2A 5A7C"; } ];
   };
   hh = {
     email = "hh@m-labs.hk";
@@ -8234,9 +8037,7 @@
     github = "vale981";
     githubId = 4025991;
     name = "Valentin Boettcher";
-    keys = [{
-      fingerprint = "45A9 9917 578C D629 9F5F  B5B4 C22D 4DE4 D7B3 2D19";
-    }];
+    keys = [ { fingerprint = "45A9 9917 578C D629 9F5F  B5B4 C22D 4DE4 D7B3 2D19"; } ];
   };
   hitsmaxft = {
     name = "Bhe Hongtyu";
@@ -8255,9 +8056,7 @@
     name = "Henrik Jonsson";
     github = "hkjn";
     githubId = 287215;
-    keys = [{
-      fingerprint = "D618 7A03 A40A 3D56 62F5  4B46 03EF BF83 9A5F DC15";
-    }];
+    keys = [ { fingerprint = "D618 7A03 A40A 3D56 62F5  4B46 03EF BF83 9A5F DC15"; } ];
   };
   hleboulanger = {
     email = "hleboulanger@protonmail.com";
@@ -8282,9 +8081,7 @@
     email = "hello@haseebmajid.dev";
     github = "hmajid2301";
     githubId = 998807;
-    keys = [{
-      fingerprint = "A236 785D 59F1 9076 1E9C E8EC 7828 3DB3 D233 E1F9";
-    }];
+    keys = [ { fingerprint = "A236 785D 59F1 9076 1E9C E8EC 7828 3DB3 D233 E1F9"; } ];
   };
   hmenke = {
     name = "Henri Menke";
@@ -8292,9 +8089,7 @@
     matrix = "@hmenke:matrix.org";
     github = "hmenke";
     githubId = 1903556;
-    keys = [{
-      fingerprint = "F1C5 760E 45B9 9A44 72E9  6BFB D65C 9AFB 4C22 4DA3";
-    }];
+    keys = [ { fingerprint = "F1C5 760E 45B9 9A44 72E9  6BFB D65C 9AFB 4C22 4DA3"; } ];
   };
   hodapp = {
     email = "hodapp87@gmail.com";
@@ -8302,6 +8097,12 @@
     githubId = 896431;
     name = "Chris Hodapp";
   };
+  hogcycle = {
+    email = "nate@gysli.ng";
+    github = "hogcycle";
+    githubId = 57007241;
+    name = "hogcycle";
+  };
   holgerpeters = {
     name = "Holger Peters";
     email = "holger.peters@posteo.de";
@@ -8332,9 +8133,7 @@
     matrix = "@honnip:matrix.org";
     github = "honnip";
     githubId = 108175486;
-    keys = [{
-      fingerprint = "E4DD 51F7 FA3F DCF1 BAF6  A72C 576E 43EF 8482 E415";
-    }];
+    keys = [ { fingerprint = "E4DD 51F7 FA3F DCF1 BAF6  A72C 576E 43EF 8482 E415"; } ];
   };
   hoppla20 = {
     email = "privat@vincentcui.de";
@@ -8397,9 +8196,7 @@
     matrix = "@huantian:huantian.dev";
     github = "huantianad";
     githubId = 20760920;
-    keys = [{
-      fingerprint = "731A 7A05 AD8B 3AE5 956A  C227 4A03 18E0 4E55 5DE5";
-    }];
+    keys = [ { fingerprint = "731A 7A05 AD8B 3AE5 956A  C227 4A03 18E0 4E55 5DE5"; } ];
   };
   hubble = {
     name = "Hubble the Wolverine";
@@ -8431,9 +8228,7 @@
     github = "HugoReeves";
     githubId = 20039091;
     name = "Hugo Reeves";
-    keys = [{
-      fingerprint = "78C2 E81C 828A 420B 269A  EBC1 49FA 39F8 A7F7 35F9";
-    }];
+    keys = [ { fingerprint = "78C2 E81C 828A 420B 269A  EBC1 49FA 39F8 A7F7 35F9"; } ];
   };
   hulr = {
     github = "hulr";
@@ -8447,7 +8242,7 @@
     name = "Akshat Agarwal";
   };
   hummeltech = {
-    email = "hummeltech2024@gmail.com";
+    email = "hummeltech@sherpaguru.com";
     github = "hummeltech";
     githubId = 6109326;
     name = "David Hummel";
@@ -8457,9 +8252,7 @@
     github = "Huy-Ngo";
     name = "Ngô Ngọc Đức Huy";
     githubId = 19296926;
-    keys = [{
-      fingerprint = "DF12 23B1 A9FD C5BE 3DA5  B6F7 904A F1C7 CDF6 95C3";
-    }];
+    keys = [ { fingerprint = "DF12 23B1 A9FD C5BE 3DA5  B6F7 904A F1C7 CDF6 95C3"; } ];
   };
   hypersw = {
     email = "baltic@hypersw.net";
@@ -8478,9 +8271,7 @@
     email = "bryan@hyshka.com";
     github = "hyshka";
     githubId = 2090758;
-    keys = [{
-      fingerprint = "24F4 1925 28C4 8797 E539  F247 DB2D 93D1 BFAA A6EA";
-    }];
+    keys = [ { fingerprint = "24F4 1925 28C4 8797 E539  F247 DB2D 93D1 BFAA A6EA"; } ];
   };
   hyzual = {
     email = "hyzual@gmail.com";
@@ -8504,9 +8295,7 @@
     github = "iagocq";
     githubId = 18238046;
     name = "Iago Manoel Brito";
-    keys = [{
-      fingerprint = "DF90 9D58 BEE4 E73A 1B8C  5AF3 35D3 9F9A 9A1B C8DA";
-    }];
+    keys = [ { fingerprint = "DF90 9D58 BEE4 E73A 1B8C  5AF3 35D3 9F9A 9A1B C8DA"; } ];
   };
   iammrinal0 = {
     email = "nixpkgs@mrinalpurohit.in";
@@ -8544,9 +8333,7 @@
     github = "ibizaman";
     githubId = 1044950;
     name = "Pierre Penninckx";
-    keys = [{
-      fingerprint = "A01F 10C6 7176 B2AE 2A34  1A56 D4C5 C37E 6031 A3FE";
-    }];
+    keys = [ { fingerprint = "A01F 10C6 7176 B2AE 2A34  1A56 D4C5 C37E 6031 A3FE"; } ];
   };
   iblech = {
     email = "iblech@speicherleck.de";
@@ -8744,9 +8531,7 @@
     github = "impl";
     githubId = 41129;
     name = "Noah Fontes";
-    keys = [{
-      fingerprint = "F5B2 BE1B 9AAD 98FE 2916  5597 3665 FFF7 9D38 7BAA";
-    }];
+    keys = [ { fingerprint = "F5B2 BE1B 9AAD 98FE 2916  5597 3665 FFF7 9D38 7BAA"; } ];
   };
   imrying = {
     email = "philiprying@gmail.com";
@@ -8790,9 +8575,7 @@
     github = "infinisil";
     githubId = 20525370;
     name = "Silvan Mosberger";
-    keys = [{
-      fingerprint = "6C2B 55D4 4E04 8266 6B7D  DA1A 422E 9EDA E015 7170";
-    }];
+    keys = [ { fingerprint = "6C2B 55D4 4E04 8266 6B7D  DA1A 422E 9EDA E015 7170"; } ];
   };
   infinitivewitch = {
     name = "Infinitive Witch";
@@ -8800,9 +8583,7 @@
     matrix = "@infinitivewitch:fedora.im";
     github = "infinitivewitch";
     githubId = 128256833;
-    keys = [{
-      fingerprint = "CF3D F4AD C7BD 1FDB A88B  E4B3 CA2D 43DA 939D 94FB";
-    }];
+    keys = [ { fingerprint = "CF3D F4AD C7BD 1FDB A88B  E4B3 CA2D 43DA 939D 94FB"; } ];
   };
   ingenieroariel = {
     email = "ariel@nunez.co";
@@ -8815,9 +8596,7 @@
     github = "Intuinewin";
     githubId = 13691729;
     name = "Antoine Labarussias";
-    keys = [{
-      fingerprint = "5CB5 9AA0 D180 1997 2FB3  E0EC 943A 1DE9 372E BE4E";
-    }];
+    keys = [ { fingerprint = "5CB5 9AA0 D180 1997 2FB3  E0EC 943A 1DE9 372E BE4E"; } ];
   };
   invokes-su = {
     email = "nixpkgs-commits@deshaw.com";
@@ -8854,9 +8633,7 @@
     matrix = "@irenes:matrix.org";
     github = "IreneKnapp";
     githubId = 157678;
-    keys = [{
-      fingerprint = "E864 BDFA AB55 36FD C905  5195 DBF2 52AF FB26 19FD";
-    }];
+    keys = [ { fingerprint = "E864 BDFA AB55 36FD C905  5195 DBF2 52AF FB26 19FD"; } ];
   };
   ironicbadger = {
     email = "alexktz@gmail.com";
@@ -8887,9 +8664,7 @@
     email = "isgy@teiyg.com";
     github = "tgys";
     githubId = 13622947;
-    keys = [{
-      fingerprint = "1412 816B A9FA F62F D051 1975 D3E1 B013 B463 1293";
-    }];
+    keys = [ { fingerprint = "1412 816B A9FA F62F D051 1975 D3E1 B013 B463 1293"; } ];
   };
   ius = {
     email = "j.de.gram@gmail.com";
@@ -8921,17 +8696,13 @@
     github = "ivanbrennan";
     githubId = 1672874;
     name = "Ivan Brennan";
-    keys = [{
-      fingerprint = "7311 2700 AB4F 4CDF C68C  F6A5 79C3 C47D C652 EA54";
-    }];
+    keys = [ { fingerprint = "7311 2700 AB4F 4CDF C68C  F6A5 79C3 C47D C652 EA54"; } ];
   };
   ivankovnatsky = {
     github = "ivankovnatsky";
     githubId = 75213;
     name = "Ivan Kovnatsky";
-    keys = [{
-      fingerprint = "6BD3 7248 30BD 941E 9180  C1A3 3A33 FA4C 82ED 674F";
-    }];
+    keys = [ { fingerprint = "6BD3 7248 30BD 941E 9180  C1A3 3A33 FA4C 82ED 674F"; } ];
   };
   ivanmoreau = {
     email = "Iván Molina Rebolledo";
@@ -9034,9 +8805,7 @@
     email = "contact@ja1den.me";
     github = "ja1den";
     githubId = 49811314;
-    keys = [{
-      fingerprint = "CC36 4CF4 32DD 443F 27FC  033C 3475 AA20 D72F 6A93";
-    }];
+    keys = [ { fingerprint = "CC36 4CF4 32DD 443F 27FC  033C 3475 AA20 D72F 6A93"; } ];
   };
   jab = {
     name = "Joshua Bronson";
@@ -9092,9 +8861,7 @@
     matrix = "@jakehamilton:matrix.org";
     github = "jakehamilton";
     githubId = 7005773;
-    keys = [{
-      fingerprint = "B982 0250 1720 D540 6A18  2DA8 188E 4945 E85B 2D21";
-    }];
+    keys = [ { fingerprint = "B982 0250 1720 D540 6A18  2DA8 188E 4945 E85B 2D21"; } ];
   };
   jakeisnt = {
     name = "Jacob Chvatal";
@@ -9290,9 +9057,7 @@
     github = "jcouyang";
     githubId = 1235045;
     name = "Jichao Ouyang";
-    keys = [{
-      fingerprint = "A506 C38D 5CC8 47D0 DF01  134A DA8B 833B 5260 4E63";
-    }];
+    keys = [ { fingerprint = "A506 C38D 5CC8 47D0 DF01  134A DA8B 833B 5260 4E63"; } ];
   };
   jcs090218 = {
     email = "jcs090218@gmail.com";
@@ -9328,9 +9093,7 @@
     email = "jdanek@redhat.com";
     github = "jirkadanek";
     githubId = 17877663;
-    keys = [{
-      fingerprint = "D4A6 F051 AD58 2E7C BCED  5439 6927 5CAD F15D 872E";
-    }];
+    keys = [ { fingerprint = "D4A6 F051 AD58 2E7C BCED  5439 6927 5CAD F15D 872E"; } ];
     name = "Jiri Daněk";
   };
   jdbaldry = {
@@ -9351,6 +9114,12 @@
     githubId = 2377;
     name = "Jonathan del Strother";
   };
+  jdev082 = {
+    email = "jdev0894@gmail.com";
+    github = "jdev082";
+    githubId = 92550746;
+    name = "jdev082";
+  };
   jdreaver = {
     email = "johndreaver@gmail.com";
     github = "jdreaver";
@@ -9465,9 +9234,7 @@
     github = "jfchevrette";
     githubId = 3001;
     name = "Jean-Francois Chevrette";
-    keys = [{
-      fingerprint = "B612 96A9 498E EECD D5E9  C0F0 67A0 5858 0129 0DC6";
-    }];
+    keys = [ { fingerprint = "B612 96A9 498E EECD D5E9  C0F0 67A0 5858 0129 0DC6"; } ];
   };
   jflanglois = {
     email = "yourstruly@julienlanglois.me";
@@ -9480,9 +9247,7 @@
     email = "jeremyfleischman@gmail.com";
     github = "jfly";
     githubId = 277474;
-    keys = [{
-      fingerprint = "F1F1 3395 8E8E 9CC4 D9FC  9647 1931 9CD8 416A 642B";
-    }];
+    keys = [ { fingerprint = "F1F1 3395 8E8E 9CC4 D9FC  9647 1931 9CD8 416A 642B"; } ];
   };
   jfroche = {
     name = "Jean-François Roche";
@@ -9490,9 +9255,7 @@
     matrix = "@jfroche:matrix.pyxel.cloud";
     github = "jfroche";
     githubId = 207369;
-    keys = [{
-      fingerprint = "7EB1 C02A B62B B464 6D7C  E4AE D1D0 9DE1 69EA 19A0";
-    }];
+    keys = [ { fingerprint = "7EB1 C02A B62B B464 6D7C  E4AE D1D0 9DE1 69EA 19A0"; } ];
   };
   jfvillablanca = {
     email = "jmfv.dev@gmail.com";
@@ -9615,9 +9378,7 @@
     github = "jlamur";
     githubId = 7054317;
     name = "Jules Lamur";
-    keys = [{
-      fingerprint = "B768 6CD7 451A 650D 9C54  4204 6710 CF0C 1CBD 7762";
-    }];
+    keys = [ { fingerprint = "B768 6CD7 451A 650D 9C54  4204 6710 CF0C 1CBD 7762"; } ];
   };
   jlbribeiro = {
     email = "nix@jlbribeiro.com";
@@ -9680,13 +9441,9 @@
     name = "João Figueira";
     keys = [
       # GitHub signing key
-      {
-        fingerprint = "EC08 7AA3 DEAD A972 F015  6371 DC7A E56A E98E 02D7";
-      }
+      { fingerprint = "EC08 7AA3 DEAD A972 F015  6371 DC7A E56A E98E 02D7"; }
       # Email encryption
-      {
-        fingerprint = "816D 23F5 E672 EC58 7674  4A73 197F 9A63 2D13 9E30";
-      }
+      { fingerprint = "816D 23F5 E672 EC58 7674  4A73 197F 9A63 2D13 9E30"; }
     ];
   };
   jmettes = {
@@ -9707,6 +9464,12 @@
     githubId = 54179289;
     name = "Jason Miller";
   };
+  jn-sena = {
+    email = "jn-sena@proton.me";
+    github = "jn-sena";
+    githubId = 45771313;
+    name = "Sena";
+  };
   jnsgruk = {
     email = "jon@sgrs.uk";
     github = "jnsgruk";
@@ -9737,14 +9500,17 @@
     githubId = 1102396;
     name = "Jussi Maki";
   };
+  joanmassachs = {
+    github = "joanmassachs";
+    githubId = 22916782;
+    name = "Joan Massachs";
+  };
   joaquintrinanes = {
     email = "hi@joaquint.io";
     github = "JoaquinTrinanes";
     name = "Joaquín Triñanes";
     githubId = 1385934;
-    keys = [{
-      fingerprint = "3A13 5C15 E1D5 850D 2F90  AB25 6E14 46DD 451C 6BAF";
-    }];
+    keys = [ { fingerprint = "3A13 5C15 E1D5 850D 2F90  AB25 6E14 46DD 451C 6BAF"; } ];
   };
   jobojeha = {
     email = "jobojeha@jeppener.de";
@@ -9837,10 +9603,10 @@
     name = "John Children";
   };
   johnjohnstone = {
-   email = "jjohnstone@riseup.net";
-   github = "johnjohnstone";
-   githubId = 3208498;
-   name = "John Johnstone";
+    email = "jjohnstone@riseup.net";
+    github = "johnjohnstone";
+    githubId = 3208498;
+    name = "John Johnstone";
   };
   johnmh = {
     email = "johnmh@openblox.org";
@@ -9890,15 +9656,19 @@
     githubId = 25030997;
     name = "Yuki Okushi";
   };
+  johnylpm = {
+    email = "joaoluisparreira@gmail.com";
+    github = "Johny-LPM";
+    githubId = 168684553;
+    name = "João Marques";
+  };
   jojosch = {
     name = "Johannes Schleifenbaum";
     email = "johannes@js-webcoding.de";
     matrix = "@jojosch:jswc.de";
     github = "jojosch";
     githubId = 327488;
-    keys = [{
-      fingerprint = "7249 70E6 A661 D84E 8B47  678A 0590 93B1 A278 BCD0";
-    }];
+    keys = [ { fingerprint = "7249 70E6 A661 D84E 8B47  678A 0590 93B1 A278 BCD0"; } ];
   };
   jokatzke = {
     email = "jokatzke@fastmail.com";
@@ -9910,10 +9680,12 @@
     email = "ioannis.koutras@gmail.com";
     github = "jokogr";
     githubId = 1252547;
-    keys = [{
-      # compare with https://keybase.io/joko
-      fingerprint = "B154 A8F9 0610 DB45 0CA8  CF39 85EA E7D9 DF56 C5CA";
-    }];
+    keys = [
+      {
+        # compare with https://keybase.io/joko
+        fingerprint = "B154 A8F9 0610 DB45 0CA8  CF39 85EA E7D9 DF56 C5CA";
+      }
+    ];
     name = "Ioannis Koutras";
   };
   jonaenz = {
@@ -9922,9 +9694,7 @@
     matrix = "@jona:matrix.jonaenz.de";
     github = "JonaEnz";
     githubId = 57130301;
-    keys = [{
-      fingerprint = "1CC5 B67C EB9A 13A5 EDF6 F10E 0B4A 3662 FC58 9202";
-    }];
+    keys = [ { fingerprint = "1CC5 B67C EB9A 13A5 EDF6 F10E 0B4A 3662 FC58 9202"; } ];
   };
   jonafato = {
     email = "jon@jonafato.com";
@@ -9963,6 +9733,12 @@
     githubId = 8580434;
     name = "Jonny Bolton";
   };
+  jonochang = {
+    name = "Jono Chang";
+    email = "j.g.chang@gmail.com";
+    github = "jonochang";
+    githubId = 13179;
+  };
   jonringer = {
     email = "jonringer117@gmail.com";
     matrix = "@jonringer:matrix.org";
@@ -10158,7 +9934,7 @@
     githubId = 27734541;
   };
   jtbx = {
-    email = "jtbx@duck.com";
+    email = "jeremy@baxters.nz";
     name = "Jeremy Baxter";
     github = "jtbx";
     githubId = 92071952;
@@ -10168,9 +9944,7 @@
     name = "Julien Coolen";
     github = "jtcoolen";
     githubId = 54635632;
-    keys = [{
-      fingerprint = "4C68 56EE DFDA 20FB 77E8  9169 1964 2151 C218 F6F5";
-    }];
+    keys = [ { fingerprint = "4C68 56EE DFDA 20FB 77E8  9169 1964 2151 C218 F6F5"; } ];
   };
   jtobin = {
     email = "jared@jtobin.io";
@@ -10197,9 +9971,7 @@
     github = "jcmuller";
     matrix = "@jcmuller@beeper.com";
     name = "Juan C. Müller";
-    keys = [{
-      fingerprint = "D78D 25D8 A1B8 2596 267F  35B8 F44E A51A 28F9 B4A7";
-    }];
+    keys = [ { fingerprint = "D78D 25D8 A1B8 2596 267F  35B8 F44E A51A 28F9 B4A7"; } ];
   };
   juaningan = {
     email = "juaningan@gmail.com";
@@ -10310,9 +10082,7 @@
     github = "jvanbruegge";
     githubId = 1529052;
     name = "Jan van Brügge";
-    keys = [{
-      fingerprint = "3513 5CE5 77AD 711F 3825  9A99 3665 72BE 7D6C 78A2";
-    }];
+    keys = [ { fingerprint = "3513 5CE5 77AD 711F 3825  9A99 3665 72BE 7D6C 78A2"; } ];
   };
   jwatt = {
     email = "jwatt@broken.watch";
@@ -10380,18 +10150,14 @@
     github = "kachick";
     githubId = 1180335;
     name = "Kenichi Kamiya";
-    keys = [{
-      fingerprint = "9121 5D87 20CA B405 C63F  24D2 EF6E 574D 040A E2A5";
-    }];
+    keys = [ { fingerprint = "9121 5D87 20CA B405 C63F  24D2 EF6E 574D 040A E2A5"; } ];
   };
   kaction = {
     name = "Dmitry Bogatov";
     email = "KAction@disroot.org";
     github = "KAction";
     githubId = 44864956;
-    keys = [{
-      fingerprint = "3F87 0A7C A7B4 3731 2F13  6083 749F D4DF A2E9 4236";
-    }];
+    keys = [ { fingerprint = "3F87 0A7C A7B4 3731 2F13  6083 749F D4DF A2E9 4236"; } ];
   };
   kaiha = {
     email = "kai.harries@gmail.com";
@@ -10429,9 +10195,7 @@
     email = "kamadorueda@gmail.com";
     github = "kamadorueda";
     githubId = 47480384;
-    keys = [{
-      fingerprint = "2BE3 BAFD 793E A349 ED1F  F00F 04D0 CEAF 916A 9A40";
-    }];
+    keys = [ { fingerprint = "2BE3 BAFD 793E A349 ED1F  F00F 04D0 CEAF 916A 9A40"; } ];
   };
   kamilchm = {
     email = "kamil.chm@gmail.com";
@@ -10444,9 +10208,7 @@
     email = "me@kamillaova.dev";
     github = "Kamillaova";
     githubId = 54859825;
-    keys = [{
-      fingerprint = "B2D0 AA53 8DBE 60B0 0811  3FC0 2D52 5F67 791E 5834";
-    }];
+    keys = [ { fingerprint = "B2D0 AA53 8DBE 60B0 0811  3FC0 2D52 5F67 791E 5834"; } ];
   };
   kampfschlaefer = {
     email = "arnold@arnoldarts.de";
@@ -10460,6 +10222,12 @@
     githubId = 56224949;
     name = "Mia Kanashi";
   };
+  kanielrkirby = {
+    email = "kanielrkirby@runbox.com";
+    github = "kanielrkirby";
+    githubId = 77940607;
+    name = "Kaniel Kirby";
+  };
   karantan = {
     name = "Gasper Vozel";
     email = "karantan@gmail.com";
@@ -10554,9 +10322,7 @@
     github = "kennyballou";
     githubId = 2186188;
     name = "Kenny Ballou";
-    keys = [{
-      fingerprint = "932F 3E8E 1C0F 4A98 95D7  B8B8 B0CA A28A 0295 8308";
-    }];
+    keys = [ { fingerprint = "932F 3E8E 1C0F 4A98 95D7  B8B8 B0CA A28A 0295 8308"; } ];
   };
   kenran = {
     email = "johannes.maier@mailbox.org";
@@ -10594,9 +10360,7 @@
     github = "kevincox";
     githubId = 494012;
     name = "Kevin Cox";
-    keys = [{
-      fingerprint = "B66B 891D D83B 0E67 7D84 FC30 9BB9 2CC1 552E 99AA";
-    }];
+    keys = [ { fingerprint = "B66B 891D D83B 0E67 7D84 FC30 9BB9 2CC1 552E 99AA"; } ];
   };
   kevingriffin = {
     email = "me@kevin.jp";
@@ -10628,9 +10392,7 @@
     github = "kgtkr";
     githubId = 17868838;
     name = "kgtkr";
-    keys = [{
-      fingerprint = "B30D BE93 81E0 3D5D F301 88C8 1F6E B951 9F57 3241";
-    }];
+    keys = [ { fingerprint = "B30D BE93 81E0 3D5D F301 88C8 1F6E B951 9F57 3241"; } ];
   };
   khaneliman = {
     email = "khaneliman12@gmail.com";
@@ -10661,9 +10423,7 @@
     github = "khrj";
     githubId = 44947946;
     name = "Khushraj Rathod";
-    keys = [{
-      fingerprint = "1988 3FD8 EA2E B4EC 0A93  1E22 B77B 2A40 E770 2F19";
-    }];
+    keys = [ { fingerprint = "1988 3FD8 EA2E B4EC 0A93  1E22 B77B 2A40 E770 2F19"; } ];
   };
   KibaFox = {
     email = "kiba.fox@foxypossibilities.com";
@@ -10820,18 +10580,14 @@
     github = "kittywitch";
     githubId = 67870215;
     name = "Kat Inskip";
-    keys = [{
-      fingerprint = "9CC6 44B5 69CD A59B C874  C4C9 E8DD E3ED 1C90 F3A0";
-    }];
+    keys = [ { fingerprint = "9CC6 44B5 69CD A59B C874  C4C9 E8DD E3ED 1C90 F3A0"; } ];
   };
   kiwi = {
     email = "envy1988@gmail.com";
     github = "Kiwi";
     githubId = 35715;
     name = "Robert Djubek";
-    keys = [{
-      fingerprint = "8992 44FC D291 5CA2 0A97  802C 156C 88A5 B0A0 4B2A";
-    }];
+    keys = [ { fingerprint = "8992 44FC D291 5CA2 0A97  802C 156C 88A5 B0A0 4B2A"; } ];
   };
   kjeremy = {
     email = "kjeremy@gmail.com";
@@ -10863,9 +10619,7 @@
     name = "Finn Behrens";
     github = "Kloenk";
     githubId = 12898828;
-    keys = [{
-      fingerprint = "6881 5A95 D715 D429 659B  48A4 B924 45CF C954 6F9D";
-    }];
+    keys = [ { fingerprint = "6881 5A95 D715 D429 659B  48A4 B924 45CF C954 6F9D"; } ];
   };
   kmcopper = {
     email = "kmcopper@danwin1210.me";
@@ -11133,9 +10887,7 @@
     github = "kugland";
     githubId = 1173932;
     name = "André Kugland";
-    keys = [{
-      fingerprint = "6A62 5E60 E3FF FCAE B3AA  50DC 1DA9 3817 80CD D833";
-    }];
+    keys = [ { fingerprint = "6A62 5E60 E3FF FCAE B3AA  50DC 1DA9 3817 80CD D833"; } ];
   };
   kupac = {
     github = "Kupac";
@@ -11172,6 +10924,14 @@
     githubId = 11614750;
     name = "Alexander Sharov";
   };
+  kwaa = {
+    name = "藍+85CD";
+    email = "kwa@kwaa.dev";
+    matrix = "@kwaa:matrix.org";
+    github = "kwaa";
+    githubId = 50108258;
+    keys = [ { fingerprint = "ABCB A12F 1A8E 3CCC F10B  5109 4444 7777 3333 4444"; } ];
+  };
   kwohlfahrt = {
     email = "kai.wohlfahrt@gmail.com";
     github = "kwohlfahrt";
@@ -11195,9 +10955,7 @@
     github = "KyleOndy";
     githubId = 1640900;
     name = "Kyle Ondy";
-    keys = [{
-      fingerprint = "3C79 9D26 057B 64E6 D907  B0AC DB0E 3C33 491F 91C9";
-    }];
+    keys = [ { fingerprint = "3C79 9D26 057B 64E6 D907  B0AC DB0E 3C33 491F 91C9"; } ];
   };
   kylesferrazza = {
     name = "Kyle Sferrazza";
@@ -11206,9 +10964,7 @@
     github = "kylesferrazza";
     githubId = 6677292;
 
-    keys = [{
-      fingerprint = "5A9A 1C9B 2369 8049 3B48  CF5B 81A1 5409 4816 2372";
-    }];
+    keys = [ { fingerprint = "5A9A 1C9B 2369 8049 3B48  CF5B 81A1 5409 4816 2372"; } ];
   };
   l0b0 = {
     email = "victor@engmark.name";
@@ -11233,9 +10989,7 @@
     email = "iam@lach.pw";
     github = "CertainLach";
     githubId = 6235312;
-    keys = [{
-      fingerprint = "323C 95B5 DBF7 2D74 8570  C0B7 40B5 D694 8143 175F";
-    }];
+    keys = [ { fingerprint = "323C 95B5 DBF7 2D74 8570  C0B7 40B5 D694 8143 175F"; } ];
     name = "Yaroslav Bolyukin";
   };
   lachrymal = {
@@ -11248,14 +11002,12 @@
     email = "joseph@lafreniere.xyz";
     github = "lafrenierejm";
     githubId = 11155300;
-    keys = [{
-      fingerprint = "0375 DD9A EDD1 68A3 ADA3  9EBA EE23 6AA0 141E FCA3";
-    }];
+    keys = [ { fingerprint = "0375 DD9A EDD1 68A3 ADA3  9EBA EE23 6AA0 141E FCA3"; } ];
     name = "Joseph LaFreniere";
   };
   lagoja = {
     github = "Lagoja";
-    githubId =750845;
+    githubId = 750845;
     name = "John Lago";
   };
   laikq = {
@@ -11299,9 +11051,7 @@
     matrix = "@Las:matrix.org";
     github = "L-as";
     githubId = 22075344;
-    keys = [{
-      fingerprint = "A093 EA17 F450 D4D1 60A0  1194 AC45 8A7D 1087 D025";
-    }];
+    keys = [ { fingerprint = "A093 EA17 F450 D4D1 60A0  1194 AC45 8A7D 1087 D025"; } ];
     name = "Las Safin";
   };
   lasandell = {
@@ -11407,18 +11157,14 @@
     name = "Lucius Hu";
     github = "lebensterben";
     githubId = 1222865;
-    keys = [{
-      fingerprint = "80C6 77F2 ED0B E732 3835 A8D3 7E47 4E82 E29B 5A7A";
-    }];
+    keys = [ { fingerprint = "80C6 77F2 ED0B E732 3835 A8D3 7E47 4E82 E29B 5A7A"; } ];
   };
   lecoqjacob = {
     name = "Jacob LeCoq";
     email = "lecoqjacob@gmail.com";
     githubId = 9278174;
     github = "lecoqjacob";
-    keys = [{
-      fingerprint = "C505 1E8B 06AC 1776 6875  1B60 93AF DAD0 10B3 CB8D";
-    }];
+    keys = [ { fingerprint = "C505 1E8B 06AC 1776 6875  1B60 93AF DAD0 10B3 CB8D"; } ];
   };
   ledif = {
     email = "refuse@gmail.com";
@@ -11438,14 +11184,17 @@
     githubId = 4158274;
     name = "Michiel Leenaars";
   };
+  legojames = {
+    github = "jrobinson-uk";
+    githubId = 4701504;
+    name = "James Robinson";
+  };
   leifhelm = {
     email = "jakob.leifhelm@gmail.com";
     github = "leifhelm";
     githubId = 31693262;
     name = "Jakob Leifhelm";
-    keys = [{
-      fingerprint = "4A82 F68D AC07 9FFD 8BF0  89C4 6817 AA02 3810 0822";
-    }];
+    keys = [ { fingerprint = "4A82 F68D AC07 9FFD 8BF0  89C4 6817 AA02 3810 0822"; } ];
   };
   leixb = {
     email = "abone9999+nixpkgs@gmail.com";
@@ -11453,9 +11202,7 @@
     github = "Leixb";
     githubId = 17183803;
     name = "Aleix Boné";
-    keys = [{
-      fingerprint = "63D3 F436 EDE8 7E1F 1292  24AF FC03 5BB2 BB28 E15D";
-    }];
+    keys = [ { fingerprint = "63D3 F436 EDE8 7E1F 1292  24AF FC03 5BB2 BB28 E15D"; } ];
   };
   lejonet = {
     email = "daniel@kuehn.se";
@@ -11464,17 +11211,15 @@
     name = "Daniel Kuehn";
   };
   lelgenio = {
-    email = "lelgenio@disroot.org";
+    email = "lelgenio@lelgenio.com";
     github = "lelgenio";
     githubId = 31388299;
     name = "Leonardo Eugênio";
   };
   leo248 = {
-    github ="leo248";
+    github = "leo248";
     githubId = 95365184;
-    keys = [{
-      fingerprint = "81E3 418D C1A2 9687 2C4D  96DC BB1A 818F F295 26D2";
-    }];
+    keys = [ { fingerprint = "81E3 418D C1A2 9687 2C4D  96DC BB1A 818F F295 26D2"; } ];
     name = "leo248";
   };
   leo60228 = {
@@ -11483,9 +11228,7 @@
     github = "leo60228";
     githubId = 8355305;
     name = "leo60228";
-    keys = [{
-      fingerprint = "5BE4 98D5 1C24 2CCD C21A  4604 AC6F 4BA0 78E6 7833";
-    }];
+    keys = [ { fingerprint = "5BE4 98D5 1C24 2CCD C21A  4604 AC6F 4BA0 78E6 7833"; } ];
   };
   leona = {
     email = "nix@leona.is";
@@ -11508,9 +11251,7 @@
   leonm1 = {
     github = "leonm1";
     githubId = 32306579;
-    keys = [{
-      fingerprint = "C12D F14B DC9D 64E1 44C3  4D8A 755C DA4E 5923 416A";
-    }];
+    keys = [ { fingerprint = "C12D F14B DC9D 64E1 44C3  4D8A 755C DA4E 5923 416A"; } ];
     matrix = "@mattleon:matrix.org";
     name = "Matt Leon";
   };
@@ -11550,9 +11291,7 @@
     email = "lexugeyky@outlook.com";
     github = "LEXUGE";
     githubId = 13804737;
-    keys = [{
-      fingerprint = "7FE2 113A A08B 695A C8B8  DDE6 AE53 B4C2 E58E DD45";
-    }];
+    keys = [ { fingerprint = "7FE2 113A A08B 695A C8B8  DDE6 AE53 B4C2 E58E DD45"; } ];
   };
   lf- = {
     email = "nix-maint@lfcode.ca";
@@ -11589,9 +11328,7 @@
     github = "Liassica";
     githubId = 115422798;
     name = "Liassica";
-    keys = [{
-      fingerprint = "83BE 3033 6164 B971 FA82  7036 0D34 0E59 4980 7BDD";
-    }];
+    keys = [ { fingerprint = "83BE 3033 6164 B971 FA82  7036 0D34 0E59 4980 7BDD"; } ];
   };
   liberatys = {
     email = "liberatys@hey.com";
@@ -11650,9 +11387,7 @@
     github = "liketechnik";
     githubId = 24209689;
 
-    keys = [{
-      fingerprint = "92D8 A09D 03DD B774 AABD 53B9 E136 2F07 D750 DB5C";
-    }];
+    keys = [ { fingerprint = "92D8 A09D 03DD B774 AABD 53B9 E136 2F07 D750 DB5C"; } ];
   };
   lilacious = {
     email = "yuchenhe126@gmail.com";
@@ -11697,9 +11432,7 @@
     matrix = "@me:linj.tech";
     github = "jian-lin";
     githubId = 75130626;
-    keys = [{
-      fingerprint = "80EE AAD8 43F9 3097 24B5  3D7E 27E9 7B91 E63A 7FF8";
-    }];
+    keys = [ { fingerprint = "80EE AAD8 43F9 3097 24B5  3D7E 27E9 7B91 E63A 7FF8"; } ];
   };
   link2xt = {
     email = "link2xt@testrun.org";
@@ -11750,9 +11483,7 @@
     github = "livnev";
     githubId = 3964494;
     name = "Lev Livnev";
-    keys = [{
-      fingerprint = "74F5 E5CC 19D3 B5CB 608F  6124 68FF 81E6 A785 0F49";
-    }];
+    keys = [ { fingerprint = "74F5 E5CC 19D3 B5CB 608F  6124 68FF 81E6 A785 0F49"; } ];
   };
   liyangau = {
     email = "d@aufomm.com";
@@ -11796,9 +11527,7 @@
     github = "lockejan";
     githubId = 25434434;
     name = "Jan Schmitt";
-    keys = [{
-      fingerprint = "1763 9903 2D7C 5B82 5D5A  0EAD A2BC 3C6F 1435 1991";
-    }];
+    keys = [ { fingerprint = "1763 9903 2D7C 5B82 5D5A  0EAD A2BC 3C6F 1435 1991"; } ];
   };
   locochoco = {
     email = "contact@locochoco.dev";
@@ -11831,9 +11560,7 @@
     github = "legendofmiracles";
     githubId = 30902201;
     name = "legendofmiracles";
-    keys = [{
-      fingerprint = "CC50 F82C 985D 2679 0703  AF15 19B0 82B3 DEFE 5451";
-    }];
+    keys = [ { fingerprint = "CC50 F82C 985D 2679 0703  AF15 19B0 82B3 DEFE 5451"; } ];
   };
   longer = {
     email = "michal@mieszczak.com.pl";
@@ -11894,9 +11621,7 @@
     email = "loveisgrief@tuta.io";
     github = "LoveIsGrief";
     githubId = 2829538;
-    keys = [{
-      fingerprint = "9847 4F48 18C6 4E0A F0C5  3529 E96D 1EDF A053 45EB";
-    }];
+    keys = [ { fingerprint = "9847 4F48 18C6 4E0A F0C5  3529 E96D 1EDF A053 45EB"; } ];
   };
   lovek323 = {
     email = "jason@oconal.id.au";
@@ -11910,9 +11635,7 @@
     github = "lovesegfault";
     githubId = 7243783;
     name = "Bernardo Meurer";
-    keys = [{
-      fingerprint = "F193 7596 57D5 6DA4 CCD4  786B F4C0 D53B 8D14 C246";
-    }];
+    keys = [ { fingerprint = "F193 7596 57D5 6DA4 CCD4  786B F4C0 D53B 8D14 C246"; } ];
   };
   lowfatcomputing = {
     email = "andreas.wagner@lowfatcomputing.org";
@@ -11920,6 +11643,13 @@
     githubId = 10626;
     name = "Andreas Wagner";
   };
+  lpostula = {
+    email = "lois@postu.la";
+    github = "loispostula";
+    githubId = 1423612;
+    name = "Loïs Postula";
+    keys = [ { fingerprint = "0B4A E7C7 D3B7 53F5 3B3D  774C 3819 3C6A 09C3 9ED1"; } ];
+  };
   lrewega = {
     email = "lrewega@c32.ca";
     github = "lrewega";
@@ -11957,9 +11687,7 @@
     githubId = 153414530;
     matrix = "@ltstf1re:converser.eu";
     name = "Little Starfire";
-    keys = [{
-      fingerprint = "FE6C C3C9 2ACF 4367 2B56  5B22 8603 2ACC 051A 873D";
-    }];
+    keys = [ { fingerprint = "FE6C C3C9 2ACF 4367 2B56  5B22 8603 2ACC 051A 873D"; } ];
   };
   lu15w1r7h = {
     email = "lwirth2000@gmail.com";
@@ -11990,9 +11718,7 @@
     github = "lucas-deangelis";
     githubId = 55180995;
     name = "Lucas De Angelis";
-    keys = [{
-      fingerprint = "3C8B D3AD 93BB 1F36 B8FF  30BD 8627 E5ED F74B 5BF4";
-    }];
+    keys = [ { fingerprint = "3C8B D3AD 93BB 1F36 B8FF  30BD 8627 E5ED F74B 5BF4"; } ];
   };
   lucasew = {
     email = "lucas59356@gmail.com";
@@ -12035,9 +11761,7 @@
     github = "ludovicopiero";
     githubId = 44255157;
     name = "Ludovico Piero";
-    keys = [{
-      fingerprint = "72CA 4F61 46C6 0DAB 6193  4D35 3911 DD27 6CFE 779C";
-    }];
+    keys = [ { fingerprint = "72CA 4F61 46C6 0DAB 6193  4D35 3911 DD27 6CFE 779C"; } ];
   };
   lufia = {
     email = "lufia@lufia.org";
@@ -12050,9 +11774,7 @@
     email = "luflosi@luflosi.de";
     github = "Luflosi";
     githubId = 15217907;
-    keys = [{
-      fingerprint = "66D1 3048 2B5F 2069 81A6  6B83 6F98 7CCF 224D 20B9";
-    }];
+    keys = [ { fingerprint = "66D1 3048 2B5F 2069 81A6  6B83 6F98 7CCF 224D 20B9"; } ];
   };
   luftmensch-luftmensch = {
     email = "valentinobocchetti59@gmail.com";
@@ -12071,9 +11793,7 @@
     github = "propet";
     githubId = 8515861;
     name = "Luis D. Aranda Sánchez";
-    keys = [{
-      fingerprint = "AB7C 81F4 9E07 CC64 F3E7  BC25 DCAC C6F4 AAFC C04E";
-    }];
+    keys = [ { fingerprint = "AB7C 81F4 9E07 CC64 F3E7  BC25 DCAC C6F4 AAFC C04E"; } ];
   };
   luisnquin = {
     email = "lpaandres2020@gmail.com";
@@ -12100,9 +11820,7 @@
     name = "Luiz Ribeiro";
     github = "luizribeiro";
     githubId = 112069;
-    keys = [{
-      fingerprint = "97A0 AE5E 03F3 499B 7D7A  65C6 76A4 1432 37EF 5817";
-    }];
+    keys = [ { fingerprint = "97A0 AE5E 03F3 499B 7D7A  65C6 76A4 1432 37EF 5817"; } ];
   };
   lukas-heiligenbrunner = {
     email = "lukas.heiligenbrunner@gmail.com";
@@ -12171,10 +11889,12 @@
     github = "lunik1";
     githubId = 13547699;
     name = "Corin Hoad";
-    keys = [{
-      # fingerprint = "BA3A 5886 AE6D 526E 20B4  57D6 6A37 DF94 8318 8492"; # old key, superseded
-      fingerprint = "6E69 6A19 4BD8 BFAE 7362  ACDB 6437 4619 95CA 7F16";
-    }];
+    keys = [
+      {
+        # fingerprint = "BA3A 5886 AE6D 526E 20B4  57D6 6A37 DF94 8318 8492"; # old key, superseded
+        fingerprint = "6E69 6A19 4BD8 BFAE 7362  ACDB 6437 4619 95CA 7F16";
+      }
+    ];
   };
   LunNova = {
     email = "nixpkgs-maintainer@lunnova.dev";
@@ -12274,18 +11994,14 @@
     email = "max@haland.org";
     github = "mabster314";
     githubId = 5741741;
-    keys = [{
-      fingerprint = "71EF 8F1F 0C24 8B4D 5CDC 1B47 74B3 D790 77EE 37A8";
-    }];
+    keys = [ { fingerprint = "71EF 8F1F 0C24 8B4D 5CDC 1B47 74B3 D790 77EE 37A8"; } ];
   };
   macalinao = {
     email = "me@ianm.com";
     name = "Ian Macalinao";
     github = "macalinao";
     githubId = 401263;
-    keys = [{
-      fingerprint = "1147 43F1 E707 6F3E 6F4B  2C96 B9A8 B592 F126 F8E8";
-    }];
+    keys = [ { fingerprint = "1147 43F1 E707 6F3E 6F4B  2C96 B9A8 B592 F126 F8E8"; } ];
   };
   mac-chaffee = {
     name = "Mac Chaffee";
@@ -12317,9 +12033,7 @@
     github = "m-rey";
     githubId = 42996147;
     name = "Mæve";
-    keys = [{
-      fingerprint = "96C9 D086 CC9D 7BD7 EF24  80E2 9168 796A 1CC3 AEA2";
-    }];
+    keys = [ { fingerprint = "96C9 D086 CC9D 7BD7 EF24  80E2 9168 796A 1CC3 AEA2"; } ];
   };
   mafo = {
     email = "Marc.Fontaine@gmx.de";
@@ -12392,6 +12106,13 @@
     githubId = 2321672;
     name = "Makise Kurisu";
   };
+  Makuru = {
+    email = "makuru@makuru.org";
+    github = "makuru-dd";
+    githubId = 58048293;
+    name = "Makuru";
+    keys = [ { fingerprint = "5B22 7123 362F DEF1 8F79  BF2B 4792 3A0F EEB5 51C7"; } ];
+  };
   malbarbo = {
     email = "malbarbo@gmail.com";
     github = "malbarbo";
@@ -12415,6 +12136,11 @@
     githubId = 18661391;
     name = "Malte Janz";
   };
+  malteneuss = {
+    github = "malteneuss";
+    githubId = 5301202;
+    name = "Malte Neuss";
+  };
   malte-v = {
     email = "nixpkgs@mal.tc";
     github = "malte-v";
@@ -12603,9 +12329,7 @@
     github = "marzipankaiser";
     githubId = 2551444;
     name = "Marcial Gaißert";
-    keys = [{
-      fingerprint = "B573 5118 0375 A872 FBBF  7770 B629 036B E399 EEE9";
-    }];
+    keys = [ { fingerprint = "B573 5118 0375 A872 FBBF  7770 B629 036B E399 EEE9"; } ];
   };
   masaeedu = {
     email = "masaeedu@gmail.com";
@@ -12691,6 +12415,12 @@
     githubId = 952712;
     name = "Matt Christ";
   };
+  matteopacini = {
+    email = "m@matteopacini.me";
+    github = "matteo-pacini";
+    githubId = 3139724;
+    name = "Matteo Pacini";
+  };
   matthewbauer = {
     email = "mjbauer95@gmail.com";
     github = "matthewbauer";
@@ -12714,9 +12444,7 @@
     github = "matthewpi";
     githubId = 26559841;
     name = "Matthew Penner";
-    keys = [{
-      fingerprint = "5118 F1CC B7B0 6C17 4DD1  5267 3131 1906 AD4C F6D6";
-    }];
+    keys = [ { fingerprint = "5118 F1CC B7B0 6C17 4DD1  5267 3131 1906 AD4C F6D6"; } ];
   };
   matthiasbenaets = {
     email = "matthias.benaets@gmail.com";
@@ -12731,14 +12459,18 @@
     githubId = 427866;
     name = "Matthias Beyer";
   };
+  matthiasq = {
+    email = "matthias.queitsch@mailbox.org";
+    github = "matthias-Q";
+    githubId = 35303817;
+    name = "Matthias Queitsch";
+  };
   MatthieuBarthel = {
     email = "matthieu@imatt.ch";
     name = "Matthieu Barthel";
     github = "MatthieuBarthel";
     githubId = 435534;
-    keys = [{
-      fingerprint = "80EB 0F2B 484A BB80 7BEF  4145 BA23 F10E AADC 2E26";
-    }];
+    keys = [ { fingerprint = "80EB 0F2B 484A BB80 7BEF  4145 BA23 F10E AADC 2E26"; } ];
   };
   matthuszagh = {
     email = "huszaghmatt@gmail.com";
@@ -12764,6 +12496,14 @@
     githubId = 11810057;
     name = "Matt Snider";
   };
+  MattSturgeon = {
+    email = "matt@sturgeon.me.uk";
+    github = "MattSturgeon";
+    githubId = 5046562;
+    matrix = "@mattsturg:matrix.org";
+    name = "Matt Sturgeon";
+    keys = [ { fingerprint = "7082 22EA 1808 E39A 83AC  8B18 4F91 844C ED1A 8299"; } ];
+  };
   matusf = {
     email = "matus.ferech@gmail.com";
     github = "matusf";
@@ -12787,9 +12527,7 @@
     github = "mawis";
     githubId = 2042030;
     name = "Matthias Wimmer";
-    keys = [{
-      fingerprint = "CAEC A12D CE23 37A6 6DFD  17B0 7AC7 631D 70D6 C898";
-    }];
+    keys = [ { fingerprint = "CAEC A12D CE23 37A6 6DFD  17B0 7AC7 631D 70D6 C898"; } ];
   };
   max-amb = {
     email = "max_a@e.email";
@@ -12802,9 +12540,7 @@
     github = "maxbrunet";
     githubId = 32458727;
     name = "Maxime Brunet";
-    keys = [{
-      fingerprint = "E9A2 EE26 EAC6 B3ED 6C10  61F3 4379 62FF 87EC FE2B";
-    }];
+    keys = [ { fingerprint = "E9A2 EE26 EAC6 B3ED 6C10  61F3 4379 62FF 87EC FE2B"; } ];
   };
   maxdamantus = {
     email = "maxdamantus@gmail.com";
@@ -12841,9 +12577,13 @@
     github = "max-niederman";
     githubId = 19580458;
     name = "Max Niederman";
-    keys = [{
-      fingerprint = "1DE4 424D BF77 1192 5DC4  CF5E 9AED 8814 81D8 444E";
-    }];
+    keys = [ { fingerprint = "1DE4 424D BF77 1192 5DC4  CF5E 9AED 8814 81D8 444E"; } ];
+  };
+  maxstrid = {
+    email = "mxwhenderson@gmail.com";
+    github = "maxstrid";
+    githubId = 115441224;
+    name = "Maxwell Henderson";
   };
   maxux = {
     email = "root@maxux.net";
@@ -12945,9 +12685,7 @@
     github = "mccurdyc";
     githubId = 5546264;
     name = "Colton J. McCurdy";
-    keys = [{
-      fingerprint = "D709 03C8 0BE9 ACDC 14F0  3BFB 77BF E531 397E DE94";
-    }];
+    keys = [ { fingerprint = "D709 03C8 0BE9 ACDC 14F0  3BFB 77BF E531 397E DE94"; } ];
   };
   mcmtroffaes = {
     email = "matthias.troffaes@gmail.com";
@@ -12995,9 +12733,7 @@
     github = "mdlayher";
     githubId = 1926905;
     name = "Matt Layher";
-    keys = [{
-      fingerprint = "D709 03C8 0BE9 ACDC 14F0  3BFB 77BF E531 397E DE94";
-    }];
+    keys = [ { fingerprint = "D709 03C8 0BE9 ACDC 14F0  3BFB 77BF E531 397E DE94"; } ];
   };
   mdorman = {
     email = "mdorman@jaunder.io";
@@ -13018,6 +12754,12 @@
     githubId = 14259816;
     name = "Abin Simon";
   };
+  me-and = {
+    name = "Adam Dinwoodie";
+    email = "nix.thunder.wayne@post.dinwoodie.org";
+    github = "me-and";
+    githubId = 1397507;
+  };
   meatcar = {
     email = "nixpkgs@denys.me";
     github = "meatcar";
@@ -13089,9 +12831,7 @@
     github = "melvyn2";
     githubId = 9157412;
     name = "melvyn";
-    keys = [{
-      fingerprint = "232B 9F00 2153 CA86 849C  9224 25A2 B728 0CE3 AFF6";
-    }];
+    keys = [ { fingerprint = "232B 9F00 2153 CA86 849C  9224 25A2 B728 0CE3 AFF6"; } ];
   };
   mephistophiles = {
     email = "mussitantesmortem@gmail.com";
@@ -13180,9 +12920,7 @@
     github = "miangraham";
     githubId = 704580;
     name = "M. Ian Graham";
-    keys = [{
-      fingerprint = "8CE3 2906 516F C4D8 D373  308A E189 648A 55F5 9A9F";
-    }];
+    keys = [ { fingerprint = "8CE3 2906 516F C4D8 D373  308A E189 648A 55F5 9A9F"; } ];
   };
   mib = {
     name = "mib";
@@ -13190,9 +12928,7 @@
     matrix = "@mib:kanp.ai";
     github = "mibmo";
     githubId = 87388017;
-    keys = [{
-      fingerprint = "AB0D C647 B2F7 86EB 045C 7EFE CF6E 67DE D6DC 1E3F";
-    }];
+    keys = [ { fingerprint = "AB0D C647 B2F7 86EB 045C 7EFE CF6E 67DE D6DC 1E3F"; } ];
   };
   mic92 = {
     email = "joerg@thalheim.io";
@@ -13200,10 +12936,12 @@
     github = "Mic92";
     githubId = 96200;
     name = "Jörg Thalheim";
-    keys = [{
-      # compare with https://keybase.io/Mic92
-      fingerprint = "3DEE 1C55 6E1C 3DC5 54F5  875A 003F 2096 411B 5F92";
-    }];
+    keys = [
+      {
+        # compare with https://keybase.io/Mic92
+        fingerprint = "3DEE 1C55 6E1C 3DC5 54F5  875A 003F 2096 411B 5F92";
+      }
+    ];
   };
   michaeladler = {
     email = "therisen06@gmail.com";
@@ -13252,9 +12990,7 @@
     name = "Michael Pacheco";
     github = "MichaelPachec0";
     githubId = 48970112;
-    keys = [{
-      fingerprint = "8D12 991F 5558 C501 70B2  779C 7811 46B0 B5F9 5F64";
-    }];
+    keys = [ { fingerprint = "8D12 991F 5558 C501 70B2  779C 7811 46B0 B5F9 5F64"; } ];
   };
   michaelpj = {
     email = "me@michaelpj.com";
@@ -13304,9 +13040,7 @@
     github = "midchildan";
     githubId = 7343721;
     name = "midchildan";
-    keys = [{
-      fingerprint = "FEF0 AE2D 5449 3482 5F06  40AA 186A 1EDA C5C6 3F83";
-    }];
+    keys = [ { fingerprint = "FEF0 AE2D 5449 3482 5F06  40AA 186A 1EDA C5C6 3F83"; } ];
   };
   mig4ng = {
     email = "mig4ng@gmail.com";
@@ -13367,9 +13101,7 @@
     github = "mikroskeem";
     githubId = 3490861;
     name = "Mark Vainomaa";
-    keys = [{
-      fingerprint = "DB43 2895 CF68 F0CE D4B7  EF60 DA01 5B05 B5A1 1B22";
-    }];
+    keys = [ { fingerprint = "DB43 2895 CF68 F0CE D4B7  EF60 DA01 5B05 B5A1 1B22"; } ];
   };
   milahu = {
     email = "milahu@gmail.com";
@@ -13436,9 +13168,7 @@
     github = "minijackson";
     githubId = 1200507;
     name = "Rémi Nicole";
-    keys = [{
-      fingerprint = "3196 83D3 9A1B 4DE1 3DC2  51FD FEA8 88C9 F5D6 4F62";
-    }];
+    keys = [ { fingerprint = "3196 83D3 9A1B 4DE1 3DC2  51FD FEA8 88C9 F5D6 4F62"; } ];
   };
   minion3665 = {
     name = "Skyler Grey";
@@ -13446,9 +13176,7 @@
     matrix = "@minion3665:matrix.org";
     github = "Minion3665";
     githubId = 34243578;
-    keys = [{
-      fingerprint = "D520 AC8D 7C96 9212 5B2B  BD3A 1AFD 1025 6B3C 714D";
-    }];
+    keys = [ { fingerprint = "D520 AC8D 7C96 9212 5B2B  BD3A 1AFD 1025 6B3C 714D"; } ];
   };
   minizilla = {
     email = "m.billyzaelani@gmail.com";
@@ -13486,9 +13214,7 @@
     github = "mirrorwitch";
     githubId = 146672255;
     name = "mirrorwitch";
-    keys = [{
-        fingerprint = "C3E7 F8C4 9CBC 9320 D360  B117 8516 D0FA 7D8F 58FC";
-    }];
+    keys = [ { fingerprint = "C3E7 F8C4 9CBC 9320 D360  B117 8516 D0FA 7D8F 58FC"; } ];
   };
   Misaka13514 = {
     name = "Misaka13514";
@@ -13496,8 +13222,7 @@
     matrix = "@misaka13514:matrix.org";
     github = "Misaka13514";
     githubId = 54669781;
-    keys =
-      [{ fingerprint = "293B 93D8 A471 059F 85D7  16A6 5BA9 2099 D9BE 2DAA"; }];
+    keys = [ { fingerprint = "293B 93D8 A471 059F 85D7  16A6 5BA9 2099 D9BE 2DAA"; } ];
   };
   mislavzanic = {
     email = "mislavzanic3@gmail.com";
@@ -13511,9 +13236,7 @@
     githubId = 5727578;
     matrix = "@misterio:matrix.org";
     name = "Gabriel Fontes";
-    keys = [{
-      fingerprint = "7088 C742 1873 E0DB 97FF  17C2 245C AB70 B4C2 25E9";
-    }];
+    keys = [ { fingerprint = "7088 C742 1873 E0DB 97FF  17C2 245C AB70 B4C2 25E9"; } ];
   };
   mistydemeo = {
     email = "misty@axo.dev";
@@ -13575,9 +13298,7 @@
     github = "mkf";
     githubId = 7753506;
     name = "Michał Krzysztof Feiler";
-    keys = [{
-      fingerprint = "1E36 9940 CC7E 01C4 CFE8  F20A E35C 2D7C 2C6A C724";
-    }];
+    keys = [ { fingerprint = "1E36 9940 CC7E 01C4 CFE8  F20A E35C 2D7C 2C6A C724"; } ];
   };
   mkg = {
     email = "mkg@vt.edu";
@@ -13591,9 +13312,7 @@
     github = "mkg20001";
     githubId = 7735145;
     name = "Maciej Krüger";
-    keys = [{
-      fingerprint = "E90C BA34 55B3 6236 740C  038F 0D94 8CE1 9CF4 9C5F";
-    }];
+    keys = [ { fingerprint = "E90C BA34 55B3 6236 740C  038F 0D94 8CE1 9CF4 9C5F"; } ];
   };
   mksafavi = {
     name = "MK Safavi";
@@ -13606,9 +13325,7 @@
     github = "mktip";
     githubId = 45905717;
     name = "Mohammad Issa";
-    keys = [{
-      fingerprint = "64BE BF11 96C3 DD7A 443E  8314 1DC0 82FA DE5B A863";
-    }];
+    keys = [ { fingerprint = "64BE BF11 96C3 DD7A 443E  8314 1DC0 82FA DE5B A863"; } ];
   };
   mlaradji = {
     name = "Mohamed Laradji";
@@ -13680,6 +13397,12 @@
     githubId = 7831184;
     name = "John Mercier";
   };
+  modderme123 = {
+    email = "modderme123@gmail.com";
+    github = "modderme123";
+    githubId = 14153763;
+    name = "modderme123";
+  };
   modulistic = {
     email = "modulistic@gmail.com";
     github = "modulistic";
@@ -13704,18 +13427,14 @@
     matrix = "@moritz.hedtke:matrix.org";
     github = "mohe2015";
     githubId = 13287984;
-    keys = [{
-      fingerprint = "1248 D3E1 1D11 4A85 75C9  8934 6794 D45A 488C 2EDE";
-    }];
+    keys = [ { fingerprint = "1248 D3E1 1D11 4A85 75C9  8934 6794 D45A 488C 2EDE"; } ];
   };
   momeemt = {
     name = "Mutsuha Asada";
     email = "me@momee.mt";
     github = "momeemt";
     githubId = 43488453;
-    keys = [{
-      fingerprint = "D94F EA9F 5B08 F6A1 7B8F  EB8B ACB5 4F0C BC6A A7C6";
-    }];
+    keys = [ { fingerprint = "D94F EA9F 5B08 F6A1 7B8F  EB8B ACB5 4F0C BC6A A7C6"; } ];
   };
   monaaraj = {
     name = "Mon Aaraj";
@@ -13748,9 +13467,7 @@
     email = "chris@cdom.io";
     github = "montchr";
     githubId = 1757914;
-    keys = [{
-      fingerprint = "6460 4147 C434 F65E C306  A21F 135E EDD0 F719 34F3";
-    }];
+    keys = [ { fingerprint = "6460 4147 C434 F65E C306  A21F 135E EDD0 F719 34F3"; } ];
   };
   moody = {
     email = "moody@posixcafe.org";
@@ -13775,9 +13492,7 @@
     github = "Moredread";
     githubId = 100848;
     name = "André-Patrick Bubel";
-    keys = [{
-      fingerprint = "4412 38AD CAD3 228D 876C  5455 118C E7C4 24B4 5728";
-    }];
+    keys = [ { fingerprint = "4412 38AD CAD3 228D 876C  5455 118C E7C4 24B4 5728"; } ];
   };
   moretea = {
     email = "maarten@moretea.nl";
@@ -13807,9 +13522,7 @@
     email = "motiejus@jakstys.lt";
     github = "motiejus";
     githubId = 107720;
-    keys = [{
-      fingerprint = "5F6B 7A8A 92A2 60A4 3704  9BEB 6F13 3A0C 1C28 48D7";
-    }];
+    keys = [ { fingerprint = "5F6B 7A8A 92A2 60A4 3704  9BEB 6F13 3A0C 1C28 48D7"; } ];
     matrix = "@motiejus:jakstys.lt";
     name = "Motiejus Jakštys";
   };
@@ -13896,9 +13609,7 @@
     name = "Egor Martynov";
     github = "mrtnvgr";
     githubId = 48406064;
-    keys = [{
-      fingerprint = "6FAD DB43 D5A5 FE52 6835  0943 5B33 79E9 81EF 48B1";
-    }];
+    keys = [ { fingerprint = "6FAD DB43 D5A5 FE52 6835  0943 5B33 79E9 81EF 48B1"; } ];
   };
   mrVanDalo = {
     email = "contact@ingolf-wagner.de";
@@ -13912,9 +13623,7 @@
     name = "Moritz Sanft";
     github = "msanft";
     githubId = 58110325;
-    keys = [{
-      fingerprint = "3CAC 1D21 3D97 88FF 149A  E116 BB8B 30F5 A024 C31C";
-    }];
+    keys = [ { fingerprint = "3CAC 1D21 3D97 88FF 149A  E116 BB8B 30F5 A024 C31C"; } ];
   };
   mschristiansen = {
     email = "mikkel@rheosystems.com";
@@ -13934,6 +13643,12 @@
     githubId = 3856390;
     email = "mschwaig+nixpkgs@eml.cc";
   };
+  msciabarra = {
+    email = "msciabarra@apache.org";
+    github = "sciabarracom";
+    githubId = 30654959;
+    name = "Michele Sciabarra";
+  };
   msiedlarek = {
     email = "mikolaj@siedlarek.pl";
     github = "msiedlarek";
@@ -14048,9 +13763,7 @@
     github = "Munksgaard";
     githubId = 230613;
     matrix = "@philip:matrix.munksgaard.me";
-    keys = [{
-      fingerprint = "5658 4D09 71AF E45F CC29 6BD7 4CE6 2A90 EFC0 B9B2";
-    }];
+    keys = [ { fingerprint = "5658 4D09 71AF E45F CC29 6BD7 4CE6 2A90 EFC0 B9B2"; } ];
   };
   mupdt = {
     email = "nix@pdtpartners.com";
@@ -14070,9 +13783,7 @@
     matrix = "@maxime:visonneau.fr";
     github = "mvisonneau";
     githubId = 1761583;
-    keys = [{
-      fingerprint = "EC63 0CEA E8BC 5EE5 5C58  F2E3 150D 6F0A E919 8D24";
-    }];
+    keys = [ { fingerprint = "EC63 0CEA E8BC 5EE5 5C58  F2E3 150D 6F0A E919 8D24"; } ];
   };
   mvnetbiz = {
     email = "mvnetbiz@gmail.com";
@@ -14145,17 +13856,13 @@
     github = "n3oney";
     githubId = 30625554;
     matrix = "@neoney:matrix.org";
-    keys = [{
-      fingerprint = "9E6A 25F2 C1F2 9D76 ED00  1932 1261 173A 01E1 0298";
-    }];
+    keys = [ { fingerprint = "9E6A 25F2 C1F2 9D76 ED00  1932 1261 173A 01E1 0298"; } ];
   };
   n8henrie = {
     name = "Nathan Henrie";
     github = "n8henrie";
     githubId = 1234956;
-    "keys" = [{
-      "fingerprint" = "F21A 6194 C9DB 9899 CD09 E24E 434B 2C14 B8C3 3422";
-    }];
+    "keys" = [ { "fingerprint" = "F21A 6194 C9DB 9899 CD09 E24E 434B 2C14 B8C3 3422"; } ];
   };
   nadir-ishiguro = {
     github = "nadir-ishiguro";
@@ -14179,9 +13886,7 @@
     github = "nagy";
     githubId = 692274;
     name = "Daniel Nagy";
-    keys = [{
-      fingerprint = "F6AE 2C60 9196 A1BC ECD8  7108 1B8E 8DCB 576F B671";
-    }];
+    keys = [ { fingerprint = "F6AE 2C60 9196 A1BC ECD8  7108 1B8E 8DCB 576F B671"; } ];
   };
   nalbyuites = {
     email = "ashijit007@gmail.com";
@@ -14189,6 +13894,12 @@
     githubId = 1009523;
     name = "Ashijit Pramanik";
   };
+  Name = {
+    name = "Name";
+    email = "lasagna@garfunkles.space";
+    github = "namescode";
+    githubId = 86119896;
+  };
   name-snrl = {
     github = "name-snrl";
     githubId = 72071763;
@@ -14221,9 +13932,7 @@
     github = "nasirhm";
     githubId = 35005234;
     name = "Nasir Hussain";
-    keys = [{
-      fingerprint = "7A10 AB8E 0BEC 566B 090C  9BE3 D812 6E55 9CE7 C35D";
-    }];
+    keys = [ { fingerprint = "7A10 AB8E 0BEC 566B 090C  9BE3 D812 6E55 9CE7 C35D"; } ];
   };
   nat-418 = {
     github = "nat-418";
@@ -14258,9 +13967,7 @@
     github = "natsukium";
     githubId = 25083790;
     name = "Tomoya Otabi";
-    keys = [{
-      fingerprint = "3D14 6004 004C F882 D519  6CD4 9EA4 5A31 DB99 4C53";
-    }];
+    keys = [ { fingerprint = "3D14 6004 004C F882 D519  6CD4 9EA4 5A31 DB99 4C53"; } ];
   };
   natto1784 = {
     email = "natto@weirdnatto.in";
@@ -14274,9 +13981,7 @@
     matrix = "@naxdy:naxdy.org";
     github = "Naxdy";
     githubId = 4532582;
-    keys = [{
-      fingerprint = "BDEA AB07 909D B96F 4106 85F1 CC15 0758 46BC E91B";
-    }];
+    keys = [ { fingerprint = "BDEA AB07 909D B96F 4106 85F1 CC15 0758 46BC E91B"; } ];
   };
   nayala = {
     name = "Nia";
@@ -14288,9 +13993,7 @@
     matrix = "@nazarewk:matrix.org";
     github = "nazarewk";
     githubId = 3494992;
-    keys = [{
-      fingerprint = "4BFF 0614 03A2 47F0 AA0B 4BC4 916D 8B67 2418 92AE";
-    }];
+    keys = [ { fingerprint = "4BFF 0614 03A2 47F0 AA0B 4BC4 916D 8B67 2418 92AE"; } ];
   };
   nbr = {
     github = "nbr";
@@ -14316,9 +14019,7 @@
     github = "ncfavier";
     githubId = 4323933;
     name = "Naïm Favier";
-    keys = [{
-      fingerprint = "F3EB 4BBB 4E71 99BC 299C  D4E9 95AF CE82 1190 8325";
-    }];
+    keys = [ { fingerprint = "F3EB 4BBB 4E71 99BC 299C  D4E9 95AF CE82 1190 8325"; } ];
   };
   nckx = {
     email = "github@tobias.gr";
@@ -14429,9 +14130,7 @@
     email = "me@netali.de";
     github = "NetaliDev";
     githubId = 15304894;
-    keys = [{
-      fingerprint = "F729 2594 6F58 0B05 8FB3  F271 9C55 E636 426B 40A9";
-    }];
+    keys = [ { fingerprint = "F729 2594 6F58 0B05 8FB3  F271 9C55 E636 426B 40A9"; } ];
   };
   netcrns = {
     email = "jason.wing@gmx.de";
@@ -14445,9 +14144,7 @@
     matrix = "@netfox:catgirl.cloud";
     github = "0xnetfox";
     githubId = 97521402;
-    keys = [{
-      fingerprint = "E8E9 43D7 EB83 DB77 E41C  D87F 9C77 CB70 F2E6 3EF7";
-    }];
+    keys = [ { fingerprint = "E8E9 43D7 EB83 DB77 E41C  D87F 9C77 CB70 F2E6 3EF7"; } ];
   };
   netixx = {
     email = "dev.espinetfrancois@gmail.com";
@@ -14473,9 +14170,7 @@
     matrix = "@networkexception:chat.upi.li";
     github = "networkException";
     githubId = 42888162;
-    keys = [{
-      fingerprint = "A0B9 48C5 A263 55C2 035F  8567 FBB7 2A94 52D9 1A72";
-    }];
+    keys = [ { fingerprint = "A0B9 48C5 A263 55C2 035F  8567 FBB7 2A94 52D9 1A72"; } ];
   };
   neverbehave = {
     email = "i@never.pet";
@@ -14537,9 +14232,7 @@
     github = "nicbk";
     githubId = 77309427;
     name = "Nicolás Kennedy";
-    keys = [{
-      fingerprint = "7BC1 77D9 C222 B1DC FB2F  0484 C061 089E FEBF 7A35";
-    }];
+    keys = [ { fingerprint = "7BC1 77D9 C222 B1DC FB2F  0484 C061 089E FEBF 7A35"; } ];
   };
   nicegamer7 = {
     name = "Kermina Awad";
@@ -14581,18 +14274,14 @@
     github = "nicolas-goudry";
     githubId = 8753998;
     name = "Nicolas Goudry";
-    keys = [{
-      fingerprint = "21B6 A59A 4E89 0B1B 83E3 0CDB 01C8 8C03 5450 9AA9";
-    }];
+    keys = [ { fingerprint = "21B6 A59A 4E89 0B1B 83E3 0CDB 01C8 8C03 5450 9AA9"; } ];
   };
   nicoo = {
     email = "nicoo@debian.org";
     github = "nbraud";
     githubId = 1155801;
     name = "nicoo";
-    keys = [{
-      fingerprint = "E44E 9EA5 4B8E 256A FB73 49D3 EC9D 3708 72BC 7A8C";
-    }];
+    keys = [ { fingerprint = "E44E 9EA5 4B8E 256A FB73 49D3 EC9D 3708 72BC 7A8C"; } ];
   };
   nidabdella = {
     name = "Mohamed Nidabdella";
@@ -14605,9 +14294,7 @@
     github = "meithecatte";
     githubId = 23580910;
     name = "Jakub Kądziołka";
-    keys = [{
-      fingerprint = "E576 BFB2 CF6E B13D F571  33B9 E315 A758 4613 1564";
-    }];
+    keys = [ { fingerprint = "E576 BFB2 CF6E B13D F571  33B9 E315 A758 4613 1564"; } ];
   };
   nielsegberts = {
     email = "nix@nielsegberts.nl";
@@ -14670,9 +14357,7 @@
     github = "nim65s";
     githubId = 131929;
     name = "Guilhem Saurel";
-    keys = [{
-      fingerprint = "9B1A 7906 5D2F 2B80 6C8A  5A1C 7D2A CDAF 4653 CF28";
-    }];
+    keys = [ { fingerprint = "9B1A 7906 5D2F 2B80 6C8A  5A1C 7D2A CDAF 4653 CF28"; } ];
   };
   ninjafb = {
     email = "oscar@oronberg.com";
@@ -14713,9 +14398,7 @@
     github = "nixbitcoin";
     githubId = 45737139;
     name = "nixbitcoindev";
-    keys = [{
-      fingerprint = "577A 3452 7F3E 2A85 E80F  E164 DD11 F9AD 5308 B3BA";
-    }];
+    keys = [ { fingerprint = "577A 3452 7F3E 2A85 E80F  E164 DD11 F9AD 5308 B3BA"; } ];
   };
   nixinator = {
     email = "33lockdown33@protonmail.com";
@@ -14746,9 +14429,7 @@
     email = "n@nk.je";
     github = "NKJe";
     githubId = 1102306;
-    keys = [{
-      fingerprint = "B956 C6A4 22AF 86A0 8F77  A8CA DE3B ADFE CD31 A89D";
-    }];
+    keys = [ { fingerprint = "B956 C6A4 22AF 86A0 8F77  A8CA DE3B ADFE CD31 A89D"; } ];
   };
   nkpvk = {
     email = "niko.pavlinek@gmail.com";
@@ -14859,9 +14540,7 @@
     email = "bandali@gnu.org";
     github = "bandali0";
     githubId = 1254858;
-    keys = [{
-      fingerprint = "BE62 7373 8E61 6D6D 1B3A  08E8 A21A 0202 4881 6103";
-    }];
+    keys = [ { fingerprint = "BE62 7373 8E61 6D6D 1B3A  08E8 A21A 0202 4881 6103"; } ];
   };
   not-my-segfault = {
     email = "michal@tar.black";
@@ -14993,13 +14672,6 @@
     github = "numkem";
     githubId = 332423;
   };
-  nu-nu-ko = {
-    email = "nuko@shimeji.cafe";
-    matrix = "@nuko:shimeji.cafe";
-    github = "nu-nu-ko";
-    githubId = 153512689;
-    name = "nuko";
-  };
   nviets = {
     email = "nathan.g.viets@gmail.com";
     github = "nviets";
@@ -15056,9 +14728,7 @@
     githubId = 7851175;
     name = "nzbr";
     matrix = "@nzbr:nzbr.de";
-    keys = [{
-      fingerprint = "BF3A 3EE6 3144 2C5F C9FB  39A7 6C78 B50B 97A4 2F8A";
-    }];
+    keys = [ { fingerprint = "BF3A 3EE6 3144 2C5F C9FB  39A7 6C78 B50B 97A4 2F8A"; } ];
   };
   nzhang-zh = {
     email = "n.zhang.hp.au@gmail.com";
@@ -15066,6 +14736,12 @@
     githubId = 30825096;
     name = "Ning Zhang";
   };
+  o0th = {
+    email = "o0th@pm.me";
+    name = "Sabato Luca Guadagno";
+    github = "o0th";
+    githubId = 22490354;
+  };
   oaksoaj = {
     email = "oaksoaj@riseup.net";
     name = "Oaksoaj";
@@ -15090,9 +14766,13 @@
     github = "obfusk";
     githubId = 1260687;
     name = "FC Stegerman";
-    keys = [{
-      fingerprint = "D5E4 A51D F8D2 55B9 FAC6  A9BB 2F96 07F0 9B36 0F2D";
-    }];
+    keys = [ { fingerprint = "D5E4 A51D F8D2 55B9 FAC6  A9BB 2F96 07F0 9B36 0F2D"; } ];
+  };
+  obreitwi = {
+    email = "oliver@breitwieser.eu";
+    github = "obreitwi";
+    githubId = 123140;
+    name = "Oliver Breitwieser";
   };
   obsidian-systems-maintenance = {
     name = "Obsidian Systems Maintenance";
@@ -15105,9 +14785,7 @@
     github = "ocfox";
     githubId = 47410251;
     name = "ocfox";
-    keys = [{
-      fingerprint = "939E F8A5 CED8 7F50 5BB5  B2D0 24BC 2738 5F70 234F";
-    }];
+    keys = [ { fingerprint = "939E F8A5 CED8 7F50 5BB5  B2D0 24BC 2738 5F70 234F"; } ];
   };
   octodi = {
     name = "octodi";
@@ -15121,9 +14799,7 @@
     github = "oddlama";
     githubId = 31919558;
     name = "oddlama";
-    keys = [{
-      fingerprint = "680A A614 E988 DE3E 84E0  DEFA 503F 6C06 8410 4B0A";
-    }];
+    keys = [ { fingerprint = "680A A614 E988 DE3E 84E0  DEFA 503F 6C06 8410 4B0A"; } ];
   };
   odi = {
     email = "oliver.dunkl@gmail.com";
@@ -15229,9 +14905,7 @@
     email = "dev@onemoresuza.mailer.me";
     github = "onemoresuza";
     githubId = 106456302;
-    keys = [{
-      fingerprint = "484F D3B8 BAD7 BF5D 8B68  2AEA A2ED 1159 935E 4D7E";
-    }];
+    keys = [ { fingerprint = "484F D3B8 BAD7 BF5D 8B68  2AEA A2ED 1159 935E 4D7E"; } ];
   };
   onixie = {
     email = "onixie@gmail.com";
@@ -15280,9 +14954,7 @@
     email = "oliverwilkes2006@icloud.com";
     github = "ooliver1";
     githubId = 34910574;
-    keys = [{
-      fingerprint = "D055 8A23 3947 B7A0 F966  B07F 0B41 0348 9833 7273";
-    }];
+    keys = [ { fingerprint = "D055 8A23 3947 B7A0 F966  B07F 0B41 0348 9833 7273"; } ];
   };
   opeik = {
     email = "sandro@stikic.com";
@@ -15313,9 +14985,7 @@
     github = "orhun";
     githubId = 24392180;
     name = "Orhun Parmaksız";
-    keys = [{
-      fingerprint = "165E 0FF7 C48C 226E 1EC3 63A7 F834 2482 4B3E 4B90";
-    }];
+    keys = [ { fingerprint = "165E 0FF7 C48C 226E 1EC3 63A7 F834 2482 4B3E 4B90"; } ];
   };
   orichter = {
     email = "richter-oliver@gmx.net";
@@ -15370,9 +15040,7 @@
     github = "ostrolucky";
     githubId = 496233;
     name = "Gabriel Ostrolucký";
-    keys = [{
-      fingerprint = "6611 22A7 B778 6E4A E99A  9D6E C79A D015 19EF B134";
-    }];
+    keys = [ { fingerprint = "6611 22A7 B778 6E4A E99A  9D6E C79A D015 19EF B134"; } ];
   };
   otavio = {
     email = "otavio.salvador@ossystems.com.br";
@@ -15403,36 +15071,28 @@
     github = "oxalica";
     githubId = 14816024;
     name = "oxalica";
-    keys = [{
-      fingerprint = "F90F FD6D 585C 2BA1 F13D  E8A9 7571 654C F88E 31C2";
-    }];
+    keys = [ { fingerprint = "F90F FD6D 585C 2BA1 F13D  E8A9 7571 654C F88E 31C2"; } ];
   };
   oxapentane = {
     email = "blame@oxapentane.com";
     github = "oxapentane";
     githubId = 1297357;
     name = "Grigory Shipunov";
-    keys = [{
-      fingerprint = "DD09 98E6 CDF2 9453 7FC6  04F9 91FA 5E5B F9AA 901C";
-    }];
+    keys = [ { fingerprint = "DD09 98E6 CDF2 9453 7FC6  04F9 91FA 5E5B F9AA 901C"; } ];
   };
   oxij = {
     email = "oxij@oxij.org";
     github = "oxij";
     githubId = 391919;
     name = "Jan Malakhovski";
-    keys = [{
-      fingerprint = "514B B966 B46E 3565 0508  86E8 0E6C A66E 5C55 7AA8";
-    }];
+    keys = [ { fingerprint = "514B B966 B46E 3565 0508  86E8 0E6C A66E 5C55 7AA8"; } ];
   };
   oxzi = {
     email = "post@0x21.biz";
     github = "oxzi";
     githubId = 8402811;
     name = "Alvar Penning";
-    keys = [{
-      fingerprint = "EB14 4E67 E57D 27E2 B5A4  CD8C F32A 4563 7FA2 5E31";
-    }];
+    keys = [ { fingerprint = "EB14 4E67 E57D 27E2 B5A4  CD8C F32A 4563 7FA2 5E31"; } ];
   };
   oyren = {
     email = "m.scheuren@oyra.eu";
@@ -15609,9 +15269,7 @@
     github = "PatrickDaG";
     githubId = 58092422;
     name = "Patrick";
-    keys = [{
-      fingerprint = "5E4C 3D74 80C2 35FE 2F0B  D23F 7DD6 A72E C899 617D";
-    }];
+    keys = [ { fingerprint = "5E4C 3D74 80C2 35FE 2F0B  D23F 7DD6 A72E C899 617D"; } ];
   };
   patricksjackson = {
     email = "patrick@jackson.dev";
@@ -15624,9 +15282,7 @@
     github = "Patryk27";
     githubId = 3395477;
     name = "Patryk Wychowaniec";
-    keys = [{
-      fingerprint = "196A BFEC 6A1D D1EC 7594  F8D1 F625 47D0 75E0 9767";
-    }];
+    keys = [ { fingerprint = "196A BFEC 6A1D D1EC 7594  F8D1 F625 47D0 75E0 9767"; } ];
   };
   patryk4815 = {
     email = "patryk.sondej@gmail.com";
@@ -15687,9 +15343,7 @@
     github = "pbek";
     githubId = 1798101;
     name = "Patrizio Bekerle";
-    keys = [{
-      fingerprint = "E005 48D5 D6AC 812C AAD2  AFFA 9C42 B05E 5913 60DC";
-    }];
+    keys = [ { fingerprint = "E005 48D5 D6AC 812C AAD2  AFFA 9C42 B05E 5913 60DC"; } ];
   };
   pbeucher = {
     email = "pierre@crafteo.io";
@@ -15758,6 +15412,12 @@
     githubId = 920910;
     name = "peelz";
   };
+  peigongdsd = {
+    email = "peigong2013@outlook.com";
+    github = "peigongdsd";
+    githubId = 51317171;
+    name = "Peilin Lee";
+  };
   pelme = {
     email = "andreas@pelme.se";
     github = "pelme";
@@ -15835,9 +15495,7 @@
     github = "peterwilli";
     githubId = 1212814;
     name = "Peter Willemsen";
-    keys = [{
-      fingerprint = "A37F D403 88E2 D026 B9F6  9617 5C9D D4BF B96A 28F0";
-    }];
+    keys = [ { fingerprint = "A37F D403 88E2 D026 B9F6  9617 5C9D D4BF B96A 28F0"; } ];
   };
   peti = {
     email = "simons@cryp.to";
@@ -15870,9 +15528,7 @@
     matrix = "@phaer:matrix.org";
     github = "phaer";
     githubId = 101753;
-    keys = [{
-      fingerprint = "5D69 CF04 B7BC 2BC1 A567  9267 00BC F29B 3208 0700";
-    }];
+    keys = [ { fingerprint = "5D69 CF04 B7BC 2BC1 A567  9267 00BC F29B 3208 0700"; } ];
   };
   phdcybersec = {
     name = "Léo Lavaur";
@@ -15880,9 +15536,7 @@
 
     github = "phdcybersec";
     githubId = 82591009;
-    keys = [{
-      fingerprint = "7756 E88F 3C6A 47A5 C5F0  CDFB AB54 6777 F93E 20BF";
-    }];
+    keys = [ { fingerprint = "7756 E88F 3C6A 47A5 C5F0  CDFB AB54 6777 F93E 20BF"; } ];
   };
   phdyellow = {
     name = "Phil Dyer";
@@ -15896,9 +15550,7 @@
 
     github = "phfroidmont";
     githubId = 8150907;
-    keys = [{
-      fingerprint = "3AC6 F170 F011 33CE 393B  CD94 BE94 8AFD 7E78 73BE";
-    }];
+    keys = [ { fingerprint = "3AC6 F170 F011 33CE 393B  CD94 BE94 8AFD 7E78 73BE"; } ];
   };
   phijor = {
     name = "Philipp Joram";
@@ -15917,9 +15569,7 @@
     matrix = "@phil8o:matrix.org";
     github = "philclifford";
     githubId = 8797027;
-    keys = [{
-      fingerprint = "FC15 E59F 0CFA 9329 101B  71D9 92F7 A790 E9BA F1F7";
-    }];
+    keys = [ { fingerprint = "FC15 E59F 0CFA 9329 101B  71D9 92F7 A790 E9BA F1F7"; } ];
     name = "Phil Clifford";
   };
   phile314 = {
@@ -15940,6 +15590,12 @@
     githubId = 43863;
     name = "Philip Taron";
   };
+  philtaken = {
+    email = "philipp.herzog@protonmail.com";
+    github = "philtaken";
+    githubId = 13309623;
+    name = "Philipp Herzog";
+  };
   phip1611 = {
     email = "phip1611@gmail.com";
     github = "phip1611";
@@ -16049,9 +15705,7 @@
     github = "pingiun";
     githubId = 1576660;
     name = "Jelle Besseling";
-    keys = [{
-      fingerprint = "A3A3 65AE 16ED A7A0 C29C  88F1 9712 452E 8BE3 372E";
-    }];
+    keys = [ { fingerprint = "A3A3 65AE 16ED A7A0 C29C  88F1 9712 452E 8BE3 372E"; } ];
   };
   pinkcreeper100 = {
     email = "benmoreosm@gmail.com";
@@ -16064,9 +15718,13 @@
     github = "pinpox";
     githubId = 1719781;
     name = "Pablo Ovelleiro Corral";
-    keys = [{
-      fingerprint = "D03B 218C AE77 1F77 D7F9  20D9 823A 6154 4264 08D3";
-    }];
+    keys = [ { fingerprint = "D03B 218C AE77 1F77 D7F9  20D9 823A 6154 4264 08D3"; } ];
+  };
+  piotrkwiecinski = {
+    email = "piokwiecinski+nixpkgs@gmail.com";
+    github = "piotrkwiecinski";
+    githubId = 2151333;
+    name = "Piotr Kwiecinski";
   };
   piperswe = {
     email = "contact@piperswe.me";
@@ -16104,6 +15762,12 @@
     githubId = 4622652;
     name = "Pedro Magalhães";
   };
+  pjungkamp = {
+    email = "philipp@jungkamp.dev";
+    github = "PJungkamp";
+    githubId = 56401138;
+    name = "Philipp Jungkamp";
+  };
   pkharvey = {
     email = "kayharvey@protonmail.com";
     github = "pkharvey";
@@ -16140,9 +15804,7 @@
     email = "labadens.pierre+nixpkgs@gmail.com";
     github = "plabadens";
     githubId = 4303706;
-    keys = [{
-      fingerprint = "B00F E582 FD3F 0732 EA48  3937 F558 14E4 D687 4375";
-    }];
+    keys = [ { fingerprint = "B00F E582 FD3F 0732 EA48  3937 F558 14E4 D687 4375"; } ];
   };
   plchldr = {
     email = "mail@oddco.de";
@@ -16198,9 +15860,7 @@
     github = "pmenke-de";
     githubId = 898922;
     name = "Philipp Menke";
-    keys = [{
-      fingerprint = "ED54 5EFD 64B6 B5AA EC61 8C16 EB7F 2D4C CBE2 3B69";
-    }];
+    keys = [ { fingerprint = "ED54 5EFD 64B6 B5AA EC61 8C16 EB7F 2D4C CBE2 3B69"; } ];
   };
   pmeunier = {
     email = "pierre-etienne.meunier@inria.fr";
@@ -16220,9 +15880,7 @@
     name = "Philip White";
     github = "philipmw";
     githubId = 1379645;
-    keys = [{
-      fingerprint = "9AB0 6C94 C3D1 F9D0 B9D9  A832 BC54 6FB3 B16C 8B0B";
-    }];
+    keys = [ { fingerprint = "9AB0 6C94 C3D1 F9D0 B9D9  A832 BC54 6FB3 B16C 8B0B"; } ];
   };
   pmy = {
     email = "pmy@xqzp.net";
@@ -16259,9 +15917,7 @@
     github = "pnotequalnp";
     githubId = 46154511;
     name = "Kevin Mullins";
-    keys = [{
-      fingerprint = "2CD2 B030 BD22 32EF DF5A  008A 3618 20A4 5DB4 1E9A";
-    }];
+    keys = [ { fingerprint = "2CD2 B030 BD22 32EF DF5A  008A 3618 20A4 5DB4 1E9A"; } ];
   };
   podocarp = {
     email = "xdjiaxd@gmail.com";
@@ -16345,9 +16001,7 @@
     github = "poscat0x04";
     githubId = 53291983;
     name = "Poscat Tarski";
-    keys = [{
-      fingerprint = "48AD DE10 F27B AFB4 7BB0  CCAF 2D25 95A0 0D08 ACE0";
-    }];
+    keys = [ { fingerprint = "48AD DE10 F27B AFB4 7BB0  CCAF 2D25 95A0 0D08 ACE0"; } ];
   };
   posch = {
     email = "tp@fonz.de";
@@ -16389,9 +16043,7 @@
     github = "pradyuman";
     githubId = 9904569;
     name = "Pradyuman Vig";
-    keys = [{
-      fingerprint = "240B 57DE 4271 2480 7CE3  EAC8 4F74 D536 1C4C A31E";
-    }];
+    keys = [ { fingerprint = "240B 57DE 4271 2480 7CE3  EAC8 4F74 D536 1C4C A31E"; } ];
   };
   preisschild = {
     email = "florian@florianstroeger.com";
@@ -16405,9 +16057,7 @@
     matrix = "@presto8:matrix.org";
     github = "presto8";
     githubId = 246631;
-    keys = [{
-      fingerprint = "3E46 7EF1 54AA A1D0 C7DF  A694 E45C B17F 1940 CA52";
-    }];
+    keys = [ { fingerprint = "3E46 7EF1 54AA A1D0 C7DF  A694 E45C B17F 1940 CA52"; } ];
   };
   priegger = {
     email = "philipp@riegger.name";
@@ -16444,9 +16094,7 @@
     matrix = "@princemachiavelli:matrix.org";
     github = "Princemachiavelli";
     githubId = 2730968;
-    keys = [{
-      fingerprint = "DD54 130B ABEC B65C 1F6B  2A38 8312 4F97 A318 EA18";
-    }];
+    keys = [ { fingerprint = "DD54 130B ABEC B65C 1F6B  2A38 8312 4F97 A318 EA18"; } ];
   };
   p-rintz = {
     email = "nix@rintz.net";
@@ -16526,9 +16174,7 @@
     github = "prrlvr";
     githubId = 33699501;
     name = "Pierre-Olivier Rey";
-    keys = [{
-      fingerprint = "40A0 78FD 297B 0AC1 E6D8  A119 4D38 49D9 9555 1307";
-    }];
+    keys = [ { fingerprint = "40A0 78FD 297B 0AC1 E6D8  A119 4D38 49D9 9555 1307"; } ];
   };
   prtzl = {
     email = "matej.blagsic@protonmail.com";
@@ -16541,9 +16187,7 @@
     github = "prusnak";
     githubId = 42201;
     name = "Pavol Rusnak";
-    keys = [{
-      fingerprint = "86E6 792F C27B FD47 8860  C110 91F3 B339 B9A0 2A3D";
-    }];
+    keys = [ { fingerprint = "86E6 792F C27B FD47 8860  C110 91F3 B339 B9A0 2A3D"; } ];
   };
   psanford = {
     email = "psanford@sanford.io";
@@ -16557,9 +16201,7 @@
     githubId = 37886;
     name = "Philipp Schmitt";
     matrix = "@pschmitt:one.ems.host";
-    keys = [{
-      fingerprint = "9FBF 2ABF FB37 F7F3 F502  44E5 DC43 9C47 EACB 17F9";
-    }];
+    keys = [ { fingerprint = "9FBF 2ABF FB37 F7F3 F502  44E5 DC43 9C47 EACB 17F9"; } ];
   };
   pshirshov = {
     email = "pshirshov@eml.cc";
@@ -16658,6 +16300,12 @@
     github = "PhilippWoelfel";
     githubId = 19400064;
   };
+  pyle = {
+    name = "Adam Pyle";
+    email = "adam@pyle.dev";
+    github = "pyle";
+    githubId = 7279609;
+  };
   pyrolagus = {
     email = "pyrolagus@gmail.com";
     github = "PyroLagus";
@@ -16670,9 +16318,7 @@
     matrix = "@pyrox:pyrox.dev";
     github = "pyrox0";
     githubId = 35778371;
-    keys = [{
-      fingerprint = "4CA9 72FB ADC8 1416 0F10  3138 FE1D 8A7D 620C 611F";
-    }];
+    keys = [ { fingerprint = "4CA9 72FB ADC8 1416 0F10  3138 FE1D 8A7D 620C 611F"; } ];
   };
   pyxels = {
     email = "pyxels.dev@gmail.com";
@@ -16692,9 +16338,7 @@
     github = "qbit";
     githubId = 68368;
     matrix = "@qbit:tapenet.org";
-    keys = [{
-      fingerprint = "3586 3350 BFEA C101 DB1A 4AF0 1F81 112D 62A9 ADCE";
-    }];
+    keys = [ { fingerprint = "3586 3350 BFEA C101 DB1A 4AF0 1F81 112D 62A9 ADCE"; } ];
   };
   qdlmcfresh = {
     name = "Philipp Urlbauer";
@@ -16745,6 +16389,12 @@
     githubId = 22085373;
     name = "Luis Hebendanz";
   };
+  qubitnano = {
+    name = "qubitnano";
+    email = "qubitnano@protonmail.com";
+    github = "qubitnano";
+    githubId = 146656568;
+  };
   queezle = {
     email = "git@queezle.net";
     github = "queezle42";
@@ -16756,9 +16406,7 @@
     github = "quentinmit";
     githubId = 115761;
     name = "Quentin Smith";
-    keys = [{
-      fingerprint = "1C71 A066 5400 AACD 142E  B1A0 04EE 05A8 FCEF B697";
-    }];
+    keys = [ { fingerprint = "1C71 A066 5400 AACD 142E  B1A0 04EE 05A8 FCEF B697"; } ];
   };
   quentini = {
     email = "quentini@airmail.cc";
@@ -16784,15 +16432,19 @@
     githubId = 2141853;
     name = "Bang Lee";
   };
+  qwqawawow = {
+    email = "eihqnh@outlook.com";
+    github = "qwqawawow";
+    githubId = 40905037;
+    name = "qwqawawow";
+  };
   qyliss = {
     email = "hi@alyssa.is";
     github = "alyssais";
     githubId = 2768870;
     name = "Alyssa Ross";
     matrix = "@qyliss:fairydust.space";
-    keys = [{
-      fingerprint = "7573 56D7 79BB B888 773E  415E 736C CDF9 EF51 BD97";
-    }];
+    keys = [ { fingerprint = "7573 56D7 79BB B888 773E  415E 736C CDF9 EF51 BD97"; } ];
   };
   qyriad = {
     email = "qyriad@qyriad.me";
@@ -16830,9 +16482,7 @@
     email = "pr9@tuta.io";
     github = "rafa-dot-el";
     githubId = 104688305;
-    keys = [{
-      fingerprint = "5F0B 3EAC F1F9 8155 0946 CDF5 469E 3255 A40D 2AD6";
-    }];
+    keys = [ { fingerprint = "5F0B 3EAC F1F9 8155 0946 CDF5 469E 3255 A40D 2AD6"; } ];
   };
   rafaelgg = {
     email = "rafael.garcia.gallego@gmail.com";
@@ -16882,9 +16532,7 @@
     github = "rake5k";
     githubId = 13007345;
     name = "Christian Harke";
-    keys = [{
-      fingerprint = "4EBB 30F1 E89A 541A A7F2 52BE 830A 9728 6309 66F4";
-    }];
+    keys = [ { fingerprint = "4EBB 30F1 E89A 541A A7F2 52BE 830A 9728 6309 66F4"; } ];
   };
   rakesh4g = {
     email = "rakeshgupta4u@gmail.com";
@@ -16910,9 +16558,7 @@
     email = "nix@caseylink.com";
     github = "Ramblurr";
     githubId = 14830;
-    keys = [{
-      fingerprint = "978C 4D08 058B A26E B97C  B518 2078 2DBC ACFA ACDA";
-    }];
+    keys = [ { fingerprint = "978C 4D08 058B A26E B97C  B518 2078 2DBC ACFA ACDA"; } ];
   };
   ramkromberg = {
     email = "ramkromberg@mail.com";
@@ -16988,9 +16634,7 @@
     githubId = 98173832;
     name = "Balthazar Patiachvili";
     matrix = "@ratcornu:skweel.skaven.org";
-    keys = [{
-      fingerprint = "1B91 F087 3D06 1319 D3D0  7F91 FA47 BDA2 6048 9ADA";
-    }];
+    keys = [ { fingerprint = "1B91 F087 3D06 1319 D3D0  7F91 FA47 BDA2 6048 9ADA"; } ];
   };
   ratsclub = {
     email = "victor@freire.dev.br";
@@ -17050,9 +16694,7 @@
     name = "Rocky Breslow";
     github = "rbreslow";
     githubId = 1774125;
-    keys = [{
-      fingerprint = "B5B7 BCA0 EE6F F31E 263A  69E3 A0D3 2ACC A38B 88ED";
-    }];
+    keys = [ { fingerprint = "B5B7 BCA0 EE6F F31E 263A  69E3 A0D3 2ACC A38B 88ED"; } ];
   };
   rbrewer = {
     email = "rwb123@gmail.com";
@@ -17066,6 +16708,13 @@
     githubId = 52847440;
     name = "Ryan Burns";
   };
+  rconybea = {
+    email = "n1xpkgs@hushmail.com";
+    github = "rconybea";
+    githubId = 8570969;
+    name = "Roland Conybeare";
+    keys = [ { fingerprint = "bw5Cr/4ul1C2UvxopphbZbFI1i5PCSnOmPID7mJ/Ogo"; } ];
+  };
   rdnetto = {
     email = "rdnetto@gmail.com";
     github = "rdnetto";
@@ -17086,9 +16735,7 @@
     githubId = 7413633;
     keys = [
       # compare with https://keybase.io/reckenrode
-      {
-        fingerprint = "01D7 5486 3A6D 64EA AC77 0D26 FBF1 9A98 2CCE 0048";
-      }
+      { fingerprint = "01D7 5486 3A6D 64EA AC77 0D26 FBF1 9A98 2CCE 0048"; }
     ];
   };
   redbaron = {
@@ -17103,6 +16750,12 @@
     githubId = 1922770;
     name = "Tim Engler";
   };
+  redhawk = {
+    email = "redhawk76767676@gmail.com";
+    github = "Redhawk18";
+    githubId = 77415970;
+    name = "Redhawk";
+  };
   redvers = {
     email = "red@infect.me";
     github = "redvers";
@@ -17204,9 +16857,7 @@
     name = "Tassilo Tanneberger";
     github = "tanneberger";
     githubId = 32239737;
-    keys = [{
-      fingerprint = "91EB E870 1639 1323 642A  6803 B966 009D 57E6 9CC6";
-    }];
+    keys = [ { fingerprint = "91EB E870 1639 1323 642A  6803 B966 009D 57E6 9CC6"; } ];
   };
   rewine = {
     email = "lhongxu@outlook.com";
@@ -17231,9 +16882,7 @@
     email = "nixpkgs@rgbcu.be";
     github = "RGBCube";
     githubId = 78925721;
-    keys = [{
-      fingerprint = "jPaU3Vpm/GN0tUuDg72n2+bd9dDMWe4bnKM325eP7eI";
-    }];
+    keys = [ { fingerprint = "jPaU3Vpm/GN0tUuDg72n2+bd9dDMWe4bnKM325eP7eI"; } ];
   };
   rgnns = {
     email = "jglievano@gmail.com";
@@ -17386,12 +17035,8 @@
     github = "rissson";
     githubId = 18313093;
     keys = [
-      {
-        fingerprint = "8A0E 6A7C 08AB B9DE 67DE  2A13 F6FD 87B1 5C26 3EC9";
-      }
-      {
-        fingerprint = "C0A7 A9BB 115B C857 4D75  EA99 BBB7 A680 1DF1 E03F";
-      }
+      { fingerprint = "8A0E 6A7C 08AB B9DE 67DE  2A13 F6FD 87B1 5C26 3EC9"; }
+      { fingerprint = "C0A7 A9BB 115B C857 4D75  EA99 BBB7 A680 1DF1 E03F"; }
     ];
   };
   rixed = {
@@ -17455,9 +17100,7 @@
     github = "rnhmjoj";
     githubId = 2817565;
     name = "Michele Guerini Rocco";
-    keys = [{
-      fingerprint = "92B2 904F D293 C94D C4C9  3E6B BFBA F4C9 75F7 6450";
-    }];
+    keys = [ { fingerprint = "92B2 904F D293 C94D C4C9  3E6B BFBA F4C9 75F7 6450"; } ];
   };
   roastiek = {
     email = "r.dee.b.b@gmail.com";
@@ -17597,9 +17240,7 @@
     github = "Rookeur";
     githubId = 57438432;
     name = "Adrien Langou";
-    keys = [{
-      fingerprint = "3B8F FC41 0094 2CB4 5A2A  7DF2 5A44 DA8F 9071 91B0";
-    }];
+    keys = [ { fingerprint = "3B8F FC41 0094 2CB4 5A2A  7DF2 5A44 DA8F 9071 91B0"; } ];
   };
   roosemberth = {
     email = "roosembert.palacios+nixpkgs@posteo.ch";
@@ -17607,17 +17248,13 @@
     github = "roosemberth";
     githubId = 3621083;
     name = "Roosembert (Roosemberth) Palacios";
-    keys = [{
-      fingerprint = "78D9 1871 D059 663B 6117  7532 CAAA ECE5 C224 2BB7";
-    }];
+    keys = [ { fingerprint = "78D9 1871 D059 663B 6117  7532 CAAA ECE5 C224 2BB7"; } ];
   };
   rople380 = {
     name = "rople380";
     github = "rople380";
     githubId = 55679162;
-    keys = [{
-      fingerprint = "1401 1B63 393D 16C1 AA9C  C521 8526 B757 4A53 6236";
-    }];
+    keys = [ { fingerprint = "1401 1B63 393D 16C1 AA9C  C521 8526 B757 4A53 6236"; } ];
   };
   rosehobgoblin = {
     name = "J. L. Bowden";
@@ -17639,8 +17276,10 @@
   RossComputerGuy = {
     name = "Tristan Ross";
     email = "tristan.ross@midstall.com";
+    matrix = "@rosscomputerguy:matrix.org";
     github = "RossComputerGuy";
     githubId = 19699320;
+    keys = [ { fingerprint = "FD5D F7A8 85BB 378A 0157  5356 B09C 4220 3566 9AF8"; } ];
   };
   rostan-t = {
     name = "Rostan Tabet";
@@ -17660,6 +17299,11 @@
     githubId = 7439756;
     name = "Rowan Goemans";
   };
+  roydubnium = {
+    github = "RoyDubnium";
+    githubId = 72664566;
+    name = "Roy Davison";
+  };
   royneary = {
     email = "christian@ulrich.earth";
     github = "royneary";
@@ -17701,9 +17345,7 @@
     github = "rrbutani";
     githubId = 7833358;
     matrix = "@rbutani:matrix.org";
-    keys = [{
-      fingerprint = "7DCA 5615 8AB2 621F 2F32  9FF4 1C7C E491 479F A273";
-    }];
+    keys = [ { fingerprint = "7DCA 5615 8AB2 621F 2F32  9FF4 1C7C E491 479F A273"; } ];
     name = "Rahul Butani";
   };
   rski = {
@@ -17799,9 +17441,7 @@
     email = "hi@grass.show";
     github = "running-grass";
     githubId = 17241154;
-    keys = [{
-      fingerprint = "5156 0FAB FF32 83EC BC8C  EA13 9344 3660 9397 0138";
-    }];
+    keys = [ { fingerprint = "5156 0FAB FF32 83EC BC8C  EA13 9344 3660 9397 0138"; } ];
   };
   rushmorem = {
     email = "rushmore@webenchanter.com";
@@ -17886,9 +17526,7 @@
     github = "ryane";
     githubId = 7346;
     name = "Ryan Eschinger";
-    keys = [{
-      fingerprint = "E4F4 1EAB BF0F C785 06D8  62EF EF68 CF41 D42A 593D";
-    }];
+    keys = [ { fingerprint = "E4F4 1EAB BF0F C785 06D8  62EF EF68 CF41 D42A 593D"; } ];
   };
   ryangibb = {
     email = "ryan@freumh.org";
@@ -17931,9 +17569,7 @@
     github = "rycee";
     githubId = 798147;
     name = "Robert Helgesson";
-    keys = [{
-      fingerprint = "36CA CF52 D098 CC0E 78FB  0CB1 3573 356C 25C4 24D4";
-    }];
+    keys = [ { fingerprint = "36CA CF52 D098 CC0E 78FB  0CB1 3573 356C 25C4 24D4"; } ];
   };
   ryneeverett = {
     email = "ryneeverett@gmail.com";
@@ -17952,17 +17588,13 @@
     github = "rastertail";
     githubId = 8082305;
     name = "Maxwell Beck";
-    keys = [{
-      fingerprint = "D260 79E3 C2BC 2E43 905B  D057 BB3E FA30 3760 A0DB";
-    }];
+    keys = [ { fingerprint = "D260 79E3 C2BC 2E43 905B  D057 BB3E FA30 3760 A0DB"; } ];
   };
   ryze = {
     name = "Ryze";
     github = "ryze312";
     githubId = 50497128;
-    keys = [{
-      fingerprint = "73D5 BFF5 0AD7 F3C1 AF1A  AC24 9B29 6C5C EAEA AAC1";
-    }];
+    keys = [ { fingerprint = "73D5 BFF5 0AD7 F3C1 AF1A  AC24 9B29 6C5C EAEA AAC1"; } ];
   };
   rzetterberg = {
     email = "richard.zetterberg@gmail.com";
@@ -17983,9 +17615,7 @@
     matrix = "@mark.sagikazar:matrix.org";
     github = "sagikazarmark";
     githubId = 1226384;
-    keys = [{
-      fingerprint = "E628 C811 6FB8 1657 F706  4EA4 F251 ADDC 9D04 1C7E";
-    }];
+    keys = [ { fingerprint = "E628 C811 6FB8 1657 F706  4EA4 F251 ADDC 9D04 1C7E"; } ];
   };
   sailord = {
     name = "Sailord";
@@ -18023,6 +17653,12 @@
     githubId = 6022042;
     name = "Sam Parkinson";
   };
+  samemrecebi = {
+    name = "Emre Çebi";
+    email = "emre@cebi.io";
+    github = "samemrecebi";
+    githubId = 64419750;
+  };
   samhug = {
     email = "s@m-h.ug";
     github = "samhug";
@@ -18040,9 +17676,7 @@
     github = "samlich";
     githubId = 1349989;
     name = "samlich";
-    keys = [{
-      fingerprint = "AE8C 0836 FDF6 3FFC 9580  C588 B156 8953 B193 9F1C";
-    }];
+    keys = [ { fingerprint = "AE8C 0836 FDF6 3FFC 9580  C588 B156 8953 B193 9F1C"; } ];
   };
   samlukeyes123 = {
     email = "samlukeyes123@gmail.com";
@@ -18074,18 +17708,14 @@
     email = "samuele.facenda@gmail.com";
     github = "SamueleFacenda";
     githubId = 92163673;
-    keys = [{
-      fingerprint = "3BA5 A3DB 3239 E2AC 1F3B  68A0 0DB8 3F58 B259 6271";
-    }];
+    keys = [ { fingerprint = "3BA5 A3DB 3239 E2AC 1F3B  68A0 0DB8 3F58 B259 6271"; } ];
   };
   samuel-martineau = {
     name = "Samuel Martineau";
     email = "samuel@smartineau.me";
     github = "Samuel-Martineau";
     githubId = 44237969;
-    keys = [{
-      fingerprint = "79A1 CC17 67C7 32B6 A8A2  BF4F 71E0 8761 642D ACD2";
-    }];
+    keys = [ { fingerprint = "79A1 CC17 67C7 32B6 A8A2  BF4F 71E0 8761 642D ACD2"; } ];
   };
   samuelrivas = {
     email = "samuelrivas@gmail.com";
@@ -18110,9 +17740,7 @@
     email = "samyak201@gmail.com";
     github = "Samyak2";
     githubId = 34161949;
-    keys = [{
-      fingerprint = "155C F413 0129 C058 9A5F  5524 3658 73F2 F0C6 153B";
-    }];
+    keys = [ { fingerprint = "155C F413 0129 C058 9A5F  5524 3658 73F2 F0C6 153B"; } ];
   };
   sander = {
     email = "s.vanderburg@tudelft.nl";
@@ -18149,9 +17777,7 @@
     github = "sascha8a";
     githubId = 6937965;
     name = "Alexander Lampalzer";
-    keys = [{
-      fingerprint = "0350 3136 E22C C561 30E3 A4AE 2087 9CCA CD5C D670";
-    }];
+    keys = [ { fingerprint = "0350 3136 E22C C561 30E3 A4AE 2087 9CCA CD5C D670"; } ];
   };
   saschagrunert = {
     email = "mail@saschagrunert.de";
@@ -18269,9 +17895,7 @@
     name = "Jamie Quigley";
     github = "Sciencentistguy";
     githubId = 4983935;
-    keys = [{
-      fingerprint = "30BB FF3F AB0B BB3E 0435  F83C 8E8F F66E 2AE8 D970";
-    }];
+    keys = [ { fingerprint = "30BB FF3F AB0B BB3E 0435  F83C 8E8F F66E 2AE8 D970"; } ];
   };
   scm2342 = {
     name = "Sven Mattsen";
@@ -18316,9 +17940,7 @@
     matrix = "@Scrumplex:duckhub.io";
     github = "Scrumplex";
     githubId = 11587657;
-    keys = [{
-      fingerprint = "E173 237A C782 296D 98F5  ADAC E13D FD4B 4712 7951";
-    }];
+    keys = [ { fingerprint = "E173 237A C782 296D 98F5  ADAC E13D FD4B 4712 7951"; } ];
   };
   sdht0 = {
     email = "nixpkgs@sdht.in";
@@ -18368,20 +17990,14 @@
     github = "seberm";
     githubId = 212597;
     name = "Otto Sabart";
-    keys = [{
-      fingerprint = "0AF6 4C3B 1F12 14B3 8C8C  5786 1FA2 DBE6 7438 7CC3";
-    }];
+    keys = [ { fingerprint = "0AF6 4C3B 1F12 14B3 8C8C  5786 1FA2 DBE6 7438 7CC3"; } ];
   };
   sebrut = {
     email = "kontakt@sebastian-rutofski.de";
     github = "sebrut";
     githubId = 3962409;
     name = "Sebastian Rutofski";
-    keys = [
-      {
-        fingerprint = "F1D4 8061 2830 3AF6 42DC  3867 C37F 3374 2A95 C547";
-      }
-    ];
+    keys = [ { fingerprint = "F1D4 8061 2830 3AF6 42DC  3867 C37F 3374 2A95 C547"; } ];
   };
   sebtm = {
     email = "mail@sebastian-sellmeier.de";
@@ -18395,9 +18011,7 @@
     matrix = "@sef:exotic.sh";
     github = "sefidel";
     githubId = 71049646;
-    keys = [{
-      fingerprint = "8BDF DFB5 6842 2393 82A0  441B 9238 BC70 9E05 516A";
-    }];
+    keys = [ { fingerprint = "8BDF DFB5 6842 2393 82A0  441B 9238 BC70 9E05 516A"; } ];
   };
   sei40kr = {
     name = "Seong Yong-ju";
@@ -18405,6 +18019,11 @@
     github = "sei40kr";
     githubId = 11665236;
   };
+  seineeloquenz = {
+    name = "Alexander Linder";
+    github = "SeineEloquenz";
+    githubId = 34923333;
+  };
   seirl = {
     name = "Antoine Pietri";
     email = "antoine.pietri1@gmail.com";
@@ -18454,9 +18073,7 @@
     email = "sephi@fhtagn.top";
     github = "sephii";
     githubId = 754333;
-    keys = [{
-      fingerprint = "2A9D 8E76 5EE2 237D 7B6B  A2A5 4228 AB9E C061 2ADA";
-    }];
+    keys = [ { fingerprint = "2A9D 8E76 5EE2 237D 7B6B  A2A5 4228 AB9E C061 2ADA"; } ];
   };
   sepi = {
     email = "raffael@mancini.lu";
@@ -18471,15 +18088,13 @@
     name = "Sebastian Jordan";
   };
   septem9er = {
-  name = "Septem9er";
-  email = "develop@septem9er.de";
-  matrix = "@septem9er:fairydust.space";
-  github = "septem9er";
-  githubId = 33379902;
-  keys = [{
-    fingerprint = "C408 07F9 8677 3D98 EFF3 0980 355A 9AFB FD8E AD33";
-  }];
-};
+    name = "Septem9er";
+    email = "develop@septem9er.de";
+    matrix = "@septem9er:fairydust.space";
+    github = "septem9er";
+    githubId = 33379902;
+    keys = [ { fingerprint = "C408 07F9 8677 3D98 EFF3 0980 355A 9AFB FD8E AD33"; } ];
+  };
   seqizz = {
     email = "seqizz@gmail.com";
     github = "seqizz";
@@ -18514,9 +18129,7 @@
     github = "servalcatty";
     githubId = 51969817;
     name = "Serval";
-    keys = [{
-      fingerprint = "A317 37B3 693C 921B 480C  C629 4A2A AAA3 82F8 294C";
-    }];
+    keys = [ { fingerprint = "A317 37B3 693C 921B 480C  C629 4A2A AAA3 82F8 294C"; } ];
   };
   sestrella = {
     email = "sestrella.me@gmail.com";
@@ -18529,9 +18142,7 @@
     email = "sable@seyleri.us";
     github = "seylerius";
     githubId = 1145981;
-    keys = [{
-      fingerprint = "7246 B6E1 ABB9 9A48 4395  FD11 DC26 B921 A9E9 DBDE";
-    }];
+    keys = [ { fingerprint = "7246 B6E1 ABB9 9A48 4395  FD11 DC26 B921 A9E9 DBDE"; } ];
   };
   sfrijters = {
     email = "sfrijters@gmail.com";
@@ -18630,9 +18241,7 @@
     github = "shayne";
     githubId = 79330;
     name = "Shayne Sweeney";
-    keys = [{
-      fingerprint = "AFCB 29A0 F12E F367 9575  DABE 69DA 13E8 6BF4 03B0";
-    }];
+    keys = [ { fingerprint = "AFCB 29A0 F12E F367 9575  DABE 69DA 13E8 6BF4 03B0"; } ];
   };
   shazow = {
     email = "andrey.petrov@shazow.net";
@@ -18681,9 +18290,7 @@
     name = "Shiryel";
     github = "shiryel";
     githubId = 35617139;
-    keys = [{
-      fingerprint = "AB63 4CD9 3322 BD42 6231  F764 C404 1EA6 B326 33DE";
-    }];
+    keys = [ { fingerprint = "AB63 4CD9 3322 BD42 6231  F764 C404 1EA6 B326 33DE"; } ];
   };
   shivaraj-bh = {
     email = "sbh69840@gmail.com";
@@ -18738,9 +18345,7 @@
     email = "shreerammodi10@gmail.com";
     github = "shrimpram";
     githubId = 67710369;
-    keys = [{
-      fingerprint = "EA88 EA07 26E9 6CBF 6365  3966 163B 16EE 76ED 24CE";
-    }];
+    keys = [ { fingerprint = "EA88 EA07 26E9 6CBF 6365  3966 163B 16EE 76ED 24CE"; } ];
   };
   shyim = {
     email = "s.sayakci@gmail.com";
@@ -18808,9 +18413,7 @@
     github = "sikmir";
     githubId = 688044;
     name = "Nikolay Korotkiy";
-    keys = [{
-      fingerprint = "ADF4 C13D 0E36 1240 BD01  9B51 D1DE 6D7F 6936 63A5";
-    }];
+    keys = [ { fingerprint = "ADF4 C13D 0E36 1240 BD01  9B51 D1DE 6D7F 6936 63A5"; } ];
   };
   silky = {
     name = "Noon van der Silk";
@@ -18819,15 +18422,13 @@
     githubId = 129525;
   };
   sils = {
-      name = "Silas Schöffel";
-      email = "sils@sils.li";
-      matrix = "@sils:vhack.eu";
-      github = "s1ls";
-      githubId = 91412114;
-      keys = [{
-        fingerprint = "C1DA A551 B422 7A6F 3FD9  6B3A 467B 7D12 9EA7 3AC9";
-      }];
-    };
+    name = "Silas Schöffel";
+    email = "sils@sils.li";
+    matrix = "@sils:vhack.eu";
+    github = "s1ls";
+    githubId = 91412114;
+    keys = [ { fingerprint = "C1DA A551 B422 7A6F 3FD9  6B3A 467B 7D12 9EA7 3AC9"; } ];
+  };
   Silver-Golden = {
     name = "Brendan Golden";
     email = "github+nixpkgs@brendan.ie";
@@ -18904,9 +18505,7 @@
     github = "siriobalmelli";
     githubId = 23038812;
     name = "Sirio Balmelli";
-    keys = [{
-      fingerprint = "B234 EFD4 2B42 FE81 EE4D  7627 F72C 4A88 7F9A 24CA";
-    }];
+    keys = [ { fingerprint = "B234 EFD4 2B42 FE81 EE4D  7627 F72C 4A88 7F9A 24CA"; } ];
   };
   sironheart = {
     email = "git@beisenherz.dev";
@@ -18983,6 +18582,11 @@
     githubId = 106779009;
     name = "Slambert";
   };
+  slashformotion = {
+    github = "slashformotion";
+    githubId = 45801817;
+    name = "slashformotion";
+  };
   slbtty = {
     email = "shenlebantongying@gmail.com";
     github = "shenlebantongying";
@@ -19005,30 +18609,24 @@
   slotThe = {
     name = "Tony Zorman";
     email = "tonyzorman@mailbox.org";
-    github= "slotThe";
+    github = "slotThe";
     matrix = "@slot-:matrix.org";
     githubId = 50166980;
-    keys = [{
-      fingerprint = "4896 FB6C 9528 46C3 414C 2475 C927 DE8C 7DFD 57B8";
-    }];
+    keys = [ { fingerprint = "4896 FB6C 9528 46C3 414C 2475 C927 DE8C 7DFD 57B8"; } ];
   };
   slwst = {
     email = "email@slw.st";
     github = "slwst";
     githubId = 11047377;
     name = "slwst";
-    keys = [{
-      fingerprint = "6CEB 4A2F E6DC C345 1B2B  4733 AD52 C5FB 3EFE CC7A";
-    }];
+    keys = [ { fingerprint = "6CEB 4A2F E6DC C345 1B2B  4733 AD52 C5FB 3EFE CC7A"; } ];
   };
   smakarov = {
     email = "setser200018@gmail.com";
     github = "SeTSeR";
     githubId = 12733495;
     name = "Sergey Makarov";
-    keys = [{
-      fingerprint = "6F8A 18AE 4101 103F 3C54  24B9 6AA2 3A11 93B7 064B";
-    }];
+    keys = [ { fingerprint = "6F8A 18AE 4101 103F 3C54  24B9 6AA2 3A11 93B7 064B"; } ];
   };
   smancill = {
     email = "smancill@smancill.dev";
@@ -19041,9 +18639,7 @@
     github = "smaret";
     githubId = 95471;
     name = "Sébastien Maret";
-    keys = [{
-      fingerprint = "4242 834C D401 86EF 8281  4093 86E3 0E5A 0F5F C59C";
-    }];
+    keys = [ { fingerprint = "4242 834C D401 86EF 8281  4093 86E3 0E5A 0F5F C59C"; } ];
   };
   smasher164 = {
     email = "aindurti@gmail.com";
@@ -19069,9 +18665,7 @@
     email = "mason.bourgeois@gmail.com";
     github = "Smona";
     githubId = 7091399;
-    keys = [{
-      fingerprint = "897E 6BE3 0345 B43D CADD  05B7 290F CF08 1AED B3EC";
-    }];
+    keys = [ { fingerprint = "897E 6BE3 0345 B43D CADD  05B7 290F CF08 1AED B3EC"; } ];
   };
   smrehman = {
     name = "Syed Moiz Ur Rehman";
@@ -19120,9 +18714,7 @@
     github = "snf1k";
     githubId = 149651684;
     matrix = "@snowflake:mozilla.org";
-    keys = [{
-      fingerprint = "8223 7B6F 2FF4 8F16 B652  6CA3 934F 9E5F 9701 2C0B";
-    }];
+    keys = [ { fingerprint = "8223 7B6F 2FF4 8F16 B652  6CA3 934F 9E5F 9701 2C0B"; } ];
   };
   snpschaaf = {
     email = "philipe.schaaf@secunet.com";
@@ -19165,9 +18757,7 @@
     name = "Soham S Gumaste";
     github = "SohamG";
     githubId = 7116239;
-    keys = [{
-      fingerprint = "E067 520F 5EF2 C175 3F60  50C0 BA46 725F 6A26 7442";
-    }];
+    keys = [ { fingerprint = "E067 520F 5EF2 C175 3F60  50C0 BA46 725F 6A26 7442"; } ];
   };
   soispha = {
     name = "Soispha";
@@ -19175,9 +18765,7 @@
     matrix = "@soispha:vhack.eu";
     github = "soispha";
     githubId = 132207423;
-    keys = [{
-      fingerprint = "9606 FC74 9FCE 1636 0723  D4AD A5E9 4010 C3A6 42AD";
-    }];
+    keys = [ { fingerprint = "9606 FC74 9FCE 1636 0723  D4AD A5E9 4010 C3A6 42AD"; } ];
   };
   solson = {
     email = "scott@solson.me";
@@ -19224,9 +18812,7 @@
     name = "Ruby Iris Juric";
     github = "Sorixelle";
     githubId = 38685302;
-    keys = [{
-      fingerprint = "2D76 76C7 A28E 16FC 75C7  268D 1B55 6ED8 4B0E 303A";
-    }];
+    keys = [ { fingerprint = "2D76 76C7 A28E 16FC 75C7  268D 1B55 6ED8 4B0E 303A"; } ];
   };
   sorki = {
     email = "srk@48.io";
@@ -19258,9 +18844,7 @@
     matrix = "@soywod:matrix.org";
     github = "soywod";
     githubId = 10437171;
-    keys = [{
-      fingerprint = "75F0 AB7C FE01 D077 AEE6  CAFD 353E 4A18 EE0F AB72";
-    }];
+    keys = [ { fingerprint = "75F0 AB7C FE01 D077 AEE6  CAFD 353E 4A18 EE0F AB72"; } ];
   };
   spacefault = {
     github = "spacefault";
@@ -19321,9 +18905,7 @@
     email = "bintangadiputrapratama@gmail.com";
     github = "spitulax";
     githubId = 96517350;
-    keys = [{
-      fingerprint = "652F FAAD 5CB8 AF1D 3F96  9521 929E D6C4 0414 D3F5";
-    }];
+    keys = [ { fingerprint = "652F FAAD 5CB8 AF1D 3F96  9521 929E D6C4 0414 D3F5"; } ];
   };
   spk = {
     email = "laurent@spkdev.net";
@@ -19420,9 +19002,7 @@
     email = "starcraft66@gmail.com";
     github = "starcraft66";
     githubId = 1858154;
-    keys = [{
-      fingerprint = "8597 4506 EC69 5392 0443  0805 9D98 CDAC FF04 FD78";
-    }];
+    keys = [ { fingerprint = "8597 4506 EC69 5392 0443  0805 9D98 CDAC FF04 FD78"; } ];
   };
   stargate01 = {
     email = "christoph.honal@web.de";
@@ -19484,9 +19064,7 @@
     matrix = "@steinybot:matrix.org";
     github = "steinybot";
     githubId = 4659562;
-    keys = [{
-      fingerprint = "2709 1DEC CC42 4635 4299  569C 21DE 1CAE 5976 2A0F";
-    }];
+    keys = [ { fingerprint = "2709 1DEC CC42 4635 4299  569C 21DE 1CAE 5976 2A0F"; } ];
   };
   stelcodes = {
     email = "stel@stel.codes";
@@ -19499,9 +19077,7 @@
     email = "ysun@hey.com";
     github = "stepbrobd";
     githubId = 81826728;
-    keys = [{
-      fingerprint = "AC7C 52E6 BA2F E8DE 8F0F  5D78 D973 170F 9B86 DB70";
-    }];
+    keys = [ { fingerprint = "AC7C 52E6 BA2F E8DE 8F0F  5D78 D973 170F 9B86 DB70"; } ];
   };
   stephank = {
     email = "nix@stephank.nl";
@@ -19515,9 +19091,7 @@
     email = "stephen.huan@cgdct.moe";
     github = "stephen-huan";
     githubId = 20411956;
-    keys = [{
-      fingerprint = "EA6E 2794 8C7D BF5D 0DF0  85A1 0FBC 2E3B A99D D60E";
-    }];
+    keys = [ { fingerprint = "EA6E 2794 8C7D BF5D 0DF0  85A1 0FBC 2E3B A99D D60E"; } ];
   };
   stephenmw = {
     email = "stephen@q5comm.com";
@@ -19547,9 +19121,7 @@
     email = "steven@steshaw.org";
     github = "steshaw";
     githubId = 45735;
-    keys = [{
-      fingerprint = "0AFE 77F7 474D 1596 EE55  7A29 1D9A 17DF D23D CB91";
-    }];
+    keys = [ { fingerprint = "0AFE 77F7 474D 1596 EE55  7A29 1D9A 17DF D23D CB91"; } ];
   };
   stesie = {
     email = "stesie@brokenpipe.de";
@@ -19598,7 +19170,7 @@
     github = "StillerHarpo";
     githubId = 25526706;
     name = "Florian Engel";
-    keys = [{ fingerprint = "4E2D9B26940E0DABF376B7AF76762421D45837DE"; }];
+    keys = [ { fingerprint = "4E2D9B26940E0DABF376B7AF76762421D45837DE"; } ];
     matrix = "@qe7ftcyrpg:matrix.org";
   };
   stites = {
@@ -19661,9 +19233,7 @@
     matrix = "@stv0ge:matrix.org";
     github = "stv0g";
     githubId = 285829;
-    keys = [{
-      fingerprint = "09BE 3BAE 8D55 D4CD 8579  285A 9675 EAC3 4897 E6E2";
-    }];
+    keys = [ { fingerprint = "09BE 3BAE 8D55 D4CD 8579  285A 9675 EAC3 4897 E6E2"; } ];
   };
   SubhrajyotiSen = {
     email = "subhrajyoti12@gmail.com";
@@ -19707,12 +19277,6 @@
     githubId = 36031171;
     name = "Supa";
   };
-  superbo = {
-    email = "supernbo@gmail.com";
-    github = "SuperBo";
-    githubId = 2666479;
-    name = "Y Nguyen";
-  };
   superherointj = {
     email = "sergiomarcelo@yandex.com";
     github = "superherointj";
@@ -19896,9 +19460,7 @@
     github = "t4ccer";
     githubId = 64430288;
     name = "Tomasz Maciosowski";
-    keys = [{
-      fingerprint = "6866 981C 4992 4D64 D154  E1AC 19E5 A2D8 B1E4 3F19";
-    }];
+    keys = [ { fingerprint = "6866 981C 4992 4D64 D154  E1AC 19E5 A2D8 B1E4 3F19"; } ];
   };
   t4sm5n = {
     email = "t4sm5n@gmail.com";
@@ -19911,9 +19473,7 @@
     github = "tadeokondrak";
     githubId = 4098453;
     name = "Tadeo Kondrak";
-    keys = [{
-      fingerprint = "0F2B C0C7 E77C 5B42 AC5B  4C18 FBE6 07FC C495 16D3";
-    }];
+    keys = [ { fingerprint = "0F2B C0C7 E77C 5B42 AC5B  4C18 FBE6 07FC C495 16D3"; } ];
   };
   tadfisher = {
     email = "tadfisher@gmail.com";
@@ -19938,9 +19498,7 @@
     github = "taikx4";
     githubId = 94917129;
     name = "taikx4";
-    keys = [{
-      fingerprint = "6B02 8103 C4E5 F68C D77C  9E54 CCD5 2C7B 37BB 837E";
-    }];
+    keys = [ { fingerprint = "6B02 8103 C4E5 F68C D77C  9E54 CCD5 2C7B 37BB 837E"; } ];
   };
   tailhook = {
     email = "paul@colomiets.name";
@@ -20075,9 +19633,7 @@
     email = "contact@tchekda.fr";
     github = "Tchekda";
     githubId = 23559888;
-    keys = [{
-      fingerprint = "44CE A8DD 3B31 49CD 6246  9D8F D0A0 07ED A4EA DA0F";
-    }];
+    keys = [ { fingerprint = "44CE A8DD 3B31 49CD 6246  9D8F D0A0 07ED A4EA DA0F"; } ];
     name = "David Tchekachev";
   };
   tcheronneau = {
@@ -20097,12 +19653,6 @@
     githubId = 2389333;
     name = "Andy Tockman";
   };
-  tcmal = {
-    email = "me@aria.rip";
-    github = "tcmal";
-    githubId = 4183876;
-    name = "Aria Shrimpton";
-  };
   teatwig = {
     email = "nix@teatwig.net";
     name = "tea";
@@ -20144,7 +19694,7 @@
     matrix = "@tejing:matrix.org";
     github = "tejing1";
     githubId = 5663576;
-    keys = [{ fingerprint = "6F0F D43B 80E5 583E 60FC  51DC 4936 D067 EB12 AB32"; }];
+    keys = [ { fingerprint = "6F0F D43B 80E5 583E 60FC  51DC 4936 D067 EB12 AB32"; } ];
   };
   telotortium = {
     email = "rirelan@gmail.com";
@@ -20213,9 +19763,7 @@
     github = "teutat3s";
     githubId = 10206665;
     name = "teutat3s";
-    keys = [{
-      fingerprint = "81A1 1C61 F413 8C84 9139  A4FA 18DA E600 A6BB E705";
-    }];
+    keys = [ { fingerprint = "81A1 1C61 F413 8C84 9139  A4FA 18DA E600 A6BB E705"; } ];
   };
   tex = {
     email = "milan.svoboda@centrum.cz";
@@ -20277,18 +19825,14 @@
     matrix = "@thbltp:matrix.org";
     github = "thblt";
     githubId = 2453136;
-    keys = [{
-      fingerprint = "D2A2 F0A1 E7A8 5E6F B711  DEE5 63A4 4817 A52E AB7B";
-    }];
+    keys = [ { fingerprint = "D2A2 F0A1 E7A8 5E6F B711  DEE5 63A4 4817 A52E AB7B"; } ];
   };
   theaninova = {
     name = "Thea Schöbl";
     email = "dev@theaninova.de";
     github = "Theaninova";
     githubId = 19289296;
-    keys = [{
-      fingerprint = "6C9E EFC5 1AE0 0131 78DE  B9C8 68FF FB1E C187 88CA";
-    }];
+    keys = [ { fingerprint = "6C9E EFC5 1AE0 0131 78DE  B9C8 68FF FB1E C187 88CA"; } ];
   };
   the-argus = {
     email = "i.mcfarlane2002@gmail.com";
@@ -20328,14 +19872,18 @@
     github = "thefossguy";
     githubId = 44400303;
   };
+  thehans255 = {
+    name = "Hans Jorgensen";
+    email = "foss-contact@thehans255.com";
+    github = "thehans255";
+    githubId = 15896573;
+  };
   thekostins = {
     name = "Konstantin";
     email = "anisimovkosta19@gmail.com";
     github = "TheKostins";
     githubId = 39405421;
-    keys = [{
-      fingerprint = "B216 7B33 E248 097F D82A  991D C94D 589A 4D0D CDD2";
-    }];
+    keys = [ { fingerprint = "B216 7B33 E248 097F D82A  991D C94D 589A 4D0D CDD2"; } ];
   };
   thelegy = {
     email = "mail+nixos@0jb.de";
@@ -20366,9 +19914,7 @@
     github = "therealr5";
     githubId = 72568063;
     name = "Rouven Seifert";
-    keys = [{
-      fingerprint = "1169 87A8 DD3F 78FF 8601  BF4D B95E 8FE6 B11C 4D09";
-    }];
+    keys = [ { fingerprint = "1169 87A8 DD3F 78FF 8601  BF4D B95E 8FE6 B11C 4D09"; } ];
   };
   therishidesai = {
     email = "desai.rishi1@gmail.com";
@@ -20380,9 +19926,7 @@
     email = "me@thesola.io";
     github = "Thesola10";
     githubId = 7287268;
-    keys = [{
-      fingerprint = "1D05 13A6 1AC4 0D8D C6D6  5F2C 8924 5619 BEBB 95BA";
-    }];
+    keys = [ { fingerprint = "1D05 13A6 1AC4 0D8D C6D6  5F2C 8924 5619 BEBB 95BA"; } ];
     name = "Karim Vergnes";
   };
   thetallestjj = {
@@ -20500,9 +20044,7 @@
     github = "Thunderbottom";
     githubId = 11243138;
     name = "Chinmay D. Pai";
-    keys = [{
-      fingerprint = "7F3E EEAA EE66 93CC 8782  042A 7550 7BE2 56F4 0CED";
-    }];
+    keys = [ { fingerprint = "7F3E EEAA EE66 93CC 8782  042A 7550 7BE2 56F4 0CED"; } ];
   };
   thyol = {
     name = "thyol";
@@ -20548,6 +20090,12 @@
     githubId = 14172;
     name = "Tim Cuthbertson";
   };
+  timhae = {
+    email = "tim.haering@posteo.net";
+    githubId = 6264882;
+    github = "timhae";
+    name = "Tim Häring";
+  };
   timma = {
     email = "kunduru.it.iitb@gmail.com";
     github = "ktrsoft";
@@ -20608,18 +20156,14 @@
     name = "Theodore Ni";
     github = "tjni";
     githubId = 3806110;
-    keys = [{
-      fingerprint = "4384 B8E1 299F C028 1641  7B8F EC30 EFBE FA7E 84A4";
-    }];
+    keys = [ { fingerprint = "4384 B8E1 299F C028 1641  7B8F EC30 EFBE FA7E 84A4"; } ];
   };
   tkerber = {
     email = "tk@drwx.org";
     github = "tkerber";
     githubId = 5722198;
     name = "Thomas Kerber";
-    keys = [{
-      fingerprint = "556A 403F B0A2 D423 F656  3424 8489 B911 F9ED 617B";
-    }];
+    keys = [ { fingerprint = "556A 403F B0A2 D423 F656  3424 8489 B911 F9ED 617B"; } ];
   };
   tljuniper = {
     email = "tljuniper1@gmail.com";
@@ -20675,9 +20219,7 @@
     github = "toastal";
     githubId = 561087;
     name = "toastal";
-    keys = [{
-      fingerprint = "7944 74B7 D236 DAB9 C9EF  E7F9 5CCE 6F14 66D4 7C9E";
-    }];
+    keys = [ { fingerprint = "7944 74B7 D236 DAB9 C9EF  E7F9 5CCE 6F14 66D4 7C9E"; } ];
   };
   toasteruwu = {
     email = "Aki@ToasterUwU.com";
@@ -20697,6 +20239,12 @@
     githubId = 858790;
     name = "Tobias Mayer";
   };
+  tobz619 = {
+    email = "toloke@yahoo.co.uk";
+    github = "tobz619";
+    githubId = 93312805;
+    name = "Tobi Oloke";
+  };
   tochiaha = {
     email = "tochiahan@proton.me";
     github = "Tochiaha";
@@ -20714,9 +20262,7 @@
     githubId = 62384384;
     matrix = "@tomasajt:matrix.org";
     name = "TomaSajt";
-    keys = [{
-      fingerprint = "8CA9 8016 F44D B717 5B44  6032 F011 163C 0501 22A1";
-    }];
+    keys = [ { fingerprint = "8CA9 8016 F44D B717 5B44  6032 F011 163C 0501 22A1"; } ];
   };
   tomaskala = {
     email = "public+nixpkgs@tomaskala.com";
@@ -20748,11 +20294,12 @@
     name = "Tomkoid";
   };
   tomodachi94 = {
-    email = "tomodachi94+nixpkgs@protonmail.com";
+    email = "tomodachi94@protonmail.com";
     matrix = "@tomodachi94:matrix.org";
     github = "tomodachi94";
     githubId = 68489118;
     name = "Tomodachi94";
+    keys = [ { fingerprint = "B208 D6E5 B8ED F47D 5687  627B 2E27 5F21 C4D5 54A3"; } ];
   };
   tomsiewert = {
     email = "tom@siewert.io";
@@ -20817,6 +20364,12 @@
     github = "tpwrules";
     githubId = 208010;
   };
+  traverseda = {
+    email = "traverse.da@gmail.com";
+    github = "traverseda";
+    githubId = 2125828;
+    name = "Alex Davies";
+  };
   travisbhartwell = {
     email = "nafai@travishartwell.net";
     github = "travisbhartwell";
@@ -20966,9 +20519,7 @@
     github = "tuxinaut";
     githubId = 722482;
     name = "Denny Schäfer";
-    keys = [{
-      fingerprint = "C752 0E49 4D92 1740 D263  C467 B057 455D 1E56 7270";
-    }];
+    keys = [ { fingerprint = "C752 0E49 4D92 1740 D263  C467 B057 455D 1E56 7270"; } ];
   };
   tv = {
     email = "tv@krebsco.de";
@@ -21017,9 +20568,7 @@
     email = "twhitehead@gmail.com";
     github = "twhitehead";
     githubId = 787843;
-    keys = [{
-      fingerprint = "E631 8869 586F 99B4 F6E6  D785 5942 58F0 389D 2802";
-    }];
+    keys = [ { fingerprint = "E631 8869 586F 99B4 F6E6  D785 5942 58F0 389D 2802"; } ];
   };
   twitchy0 = {
     email = "code@nitinpassa.com";
@@ -21032,9 +20581,7 @@
     email = "tom@bibbu.net";
     github = "twz123";
     githubId = 1215104;
-    keys = [{
-      fingerprint = "B1FD 4E2A 84B2 2379 F4BF  2EF5 FE33 A228 2371 E831";
-    }];
+    keys = [ { fingerprint = "B1FD 4E2A 84B2 2379 F4BF  2EF5 FE33 A228 2371 E831"; } ];
   };
   tylerjl = {
     email = "tyler+nixpkgs@langlois.to";
@@ -21114,36 +20661,28 @@
     matrix = "@unhidden0174:matrix.org";
     github = "unclamped";
     githubId = 104658278;
-    keys = [{
-      fingerprint = "57A2 CC43 3068 CB62 89C1  F1DA 9137 BB2E 77AD DE7E";
-    }];
+    keys = [ { fingerprint = "57A2 CC43 3068 CB62 89C1  F1DA 9137 BB2E 77AD DE7E"; } ];
   };
   unclechu = {
     name = "Viacheslav Lotsmanov";
     email = "lotsmanov89@gmail.com";
     github = "unclechu";
     githubId = 799353;
-    keys = [{
-      fingerprint = "EE59 5E29 BB5B F2B3 5ED2  3F1C D276 FF74 6700 7335";
-    }];
+    keys = [ { fingerprint = "EE59 5E29 BB5B F2B3 5ED2  3F1C D276 FF74 6700 7335"; } ];
   };
   undefined-moe = {
     name = "undefined";
     email = "i@undefined.moe";
     github = "undefined-moe";
     githubId = 29992205;
-    keys = [{
-      fingerprint = "6684 4E7D D213 C75D 8828  6215 C714 A58B 6C1E 0F52";
-    }];
+    keys = [ { fingerprint = "6684 4E7D D213 C75D 8828  6215 C714 A58B 6C1E 0F52"; } ];
   };
   unhammer = {
     email = "unhammer@fsfe.org";
     github = "unhammer";
     githubId = 56868;
     name = "Kevin Brubeck Unhammer";
-    keys = [{
-      fingerprint = "50D4 8796 0B86 3F05 4B6A  12F9 7426 06DE 766A C60C";
-    }];
+    keys = [ { fingerprint = "50D4 8796 0B86 3F05 4B6A  12F9 7426 06DE 766A C60C"; } ];
   };
   uniquepointer = {
     email = "uniquepointer@mailbox.org";
@@ -21181,9 +20720,7 @@
     matrix = "@urandom0:matrix.org";
     github = "urandom2";
     githubId = 2526260;
-    keys = [{
-      fingerprint = "04A3 A2C6 0042 784A AEA7  D051 0447 A663 F7F3 E236";
-    }];
+    keys = [ { fingerprint = "04A3 A2C6 0042 784A AEA7  D051 0447 A663 F7F3 E236"; } ];
     name = "Colin Arnott";
   };
   urbas = {
@@ -21313,9 +20850,7 @@
     github = "VergeDX";
     githubId = 25173827;
     name = "Vanilla";
-    keys = [{
-      fingerprint = "2649 340C C909 F821 D251  6714 3750 028E D04F A42E";
-    }];
+    keys = [ { fingerprint = "2649 340C C909 F821 D251  6714 3750 028E D04F A42E"; } ];
   };
   vanschelven = {
     email = "klaas@vanschelven.com";
@@ -21335,6 +20870,12 @@
     githubId = 6943308;
     name = "Varun Patro";
   };
+  vasissualiyp = {
+    email = "vaspust@gmail.com";
+    github = "vasissualiyp";
+    githubId = 110242808;
+    name = "Vasilii Pustovoit";
+  };
   vbgl = {
     email = "Vincent.Laporte@gmail.com";
     github = "vbgl";
@@ -21366,9 +20907,7 @@
     matrix = "@vcunat:matrix.org";
     github = "vcunat";
     githubId = 1785925;
-    keys = [{
-      fingerprint = "B600 6460 B60A 80E7 8206  2449 E747 DF1F 9575 A3AA";
-    }];
+    keys = [ { fingerprint = "B600 6460 B60A 80E7 8206  2449 E747 DF1F 9575 A3AA"; } ];
   };
   vdemeester = {
     email = "vincent@sbr.pm";
@@ -21393,9 +20932,7 @@
     email = "mail@vincent-haupert.de";
     github = "veehaitch";
     githubId = 15069839;
-    keys = [{
-      fingerprint = "4D23 ECDF 880D CADF 5ECA  4458 874B D6F9 16FA A742";
-    }];
+    keys = [ { fingerprint = "4D23 ECDF 880D CADF 5ECA  4458 874B D6F9 16FA A742"; } ];
   };
   vel = {
     email = "llathasa@outlook.com";
@@ -21420,9 +20957,7 @@
     email = "me@skye.vg";
     github = "vgskye";
     githubId = 116078858;
-    keys = [{
-      fingerprint = "CDEA 7E04 69E3 0885 A754  4B05 0104 BC05 F41B 77B8";
-    }];
+    keys = [ { fingerprint = "CDEA 7E04 69E3 0885 A754  4B05 0104 BC05 F41B 77B8"; } ];
   };
   victormeriqui = {
     name = "Victor Meriqui";
@@ -21435,9 +20970,7 @@
     github = "victormignot";
     githubId = 58660971;
     name = "Victor Mignot";
-    keys = [{
-      fingerprint = "CA5D F91A D672 683A 1F65  BBC9 0317 096D 20E0 067B";
-    }];
+    keys = [ { fingerprint = "CA5D F91A D672 683A 1F65  BBC9 0317 096D 20E0 067B"; } ];
   };
   vidbina = {
     email = "vid@bina.me";
@@ -21457,14 +20990,18 @@
     githubId = 5837359;
     name = "Adrian Pistol";
   };
+  vigress8 = {
+    email = "vig@disroot.org";
+    github = "vigress8";
+    githubId = 150687949;
+    name = "Vigress";
+  };
   vikanezrimaya = {
     email = "vika@fireburn.ru";
     github = "vikanezrimaya";
     githubId = 7953163;
     name = "Vika Shleina";
-    keys = [{
-      fingerprint = "5814 50EB 6E17 E715 7C63  E7F1 9879 8C3C 4D68 8D6D";
-    }];
+    keys = [ { fingerprint = "5814 50EB 6E17 E715 7C63  E7F1 9879 8C3C 4D68 8D6D"; } ];
   };
   viktornordling = {
     email = "antique_paler_0i@icloud.com";
@@ -21489,9 +21026,7 @@
     github = "vincentbernat";
     githubId = 631446;
     name = "Vincent Bernat";
-    keys = [{
-      fingerprint = "AEF2 3487 66F3 71C6 89A7  3600 95A4 2FE8 3535 25F9";
-    }];
+    keys = [ { fingerprint = "AEF2 3487 66F3 71C6 89A7  3600 95A4 2FE8 3535 25F9"; } ];
   };
   vinetos = {
     name = "vinetos";
@@ -21594,9 +21129,7 @@
     github = "vncsb";
     githubId = 19562240;
     name = "Vinicius Bernardino";
-    keys = [{
-      fingerprint = "F0D3 920C 722A 541F 0CCD  66E3 A7BA BA05 3D78 E7CA";
-    }];
+    keys = [ { fingerprint = "F0D3 920C 722A 541F 0CCD  66E3 A7BA BA05 3D78 E7CA"; } ];
   };
   voidless = {
     email = "julius.schmitt@yahoo.de";
@@ -21711,9 +21244,7 @@
     email = "wackbyte@pm.me";
     github = "wackbyte";
     githubId = 29505620;
-    keys = [{
-      fingerprint = "E595 7FE4 FEF6 714B 1AD3  1483 937F 2AE5 CCEF BF59";
-    }];
+    keys = [ { fingerprint = "E595 7FE4 FEF6 714B 1AD3  1483 937F 2AE5 CCEF BF59"; } ];
   };
   waelwindows = {
     email = "waelwindows9922@gmail.com";
@@ -21726,9 +21257,7 @@
     email = "williamvphan@yahoo.fr";
     github = "wahtique";
     githubId = 55251330;
-    keys = [{
-      fingerprint = "9262 E3A7 D129 C4DD A7C1  26CE 370D D9BE 9121 F0B3";
-    }];
+    keys = [ { fingerprint = "9262 E3A7 D129 C4DD A7C1  26CE 370D D9BE 9121 F0B3"; } ];
   };
   waiting-for-dev = {
     email = "marc@lamarciana.com";
@@ -21741,9 +21270,7 @@
     email = "sheng@a64.work";
     github = "wakira";
     githubId = 2338339;
-    keys = [{
-      fingerprint = "47F7 009E 3AE3 1DA7 988E  12E1 8C9B 0A8F C0C0 D862";
-    }];
+    keys = [ { fingerprint = "47F7 009E 3AE3 1DA7 988E  12E1 8C9B 0A8F C0C0 D862"; } ];
   };
   wamirez = {
     email = "wamirez@protonmail.com";
@@ -21794,9 +21321,7 @@
     matrix = "@weathercold:matrix.org";
     github = "Weathercold";
     githubId = 49368953;
-    keys = [{
-      fingerprint = "D20F C904 A145 8B28 53D8  FBA0 0422 0096 01E4 87FC";
-    }];
+    keys = [ { fingerprint = "D20F C904 A145 8B28 53D8  FBA0 0422 0096 01E4 87FC"; } ];
   };
   wegank = {
     name = "Weijia Wang";
@@ -21815,9 +21340,7 @@
     github = "welteki";
     githubId = 16267532;
     name = "Han Verstraete";
-    keys = [{
-      fingerprint = "2145 955E 3F5E 0C95 3458  41B5 11F7 BAEA 8567 43FF";
-    }];
+    keys = [ { fingerprint = "2145 955E 3F5E 0C95 3458  41B5 11F7 BAEA 8567 43FF"; } ];
   };
   wenngle = {
     name = "Zeke Stephens";
@@ -21848,9 +21371,7 @@
     email = "wgn@wesnel.dev";
     github = "wesnel";
     githubId = 43357387;
-    keys = [{
-      fingerprint = "F844 80B2 0CA9 D6CC C7F5  2479 A776 D2AD 099E 8BC0";
-    }];
+    keys = [ { fingerprint = "F844 80B2 0CA9 D6CC C7F5  2479 A776 D2AD 099E 8BC0"; } ];
   };
   wexder = {
     email = "wexder19@gmail.com";
@@ -21869,9 +21390,7 @@
     github = "WhiteBlackGoose";
     githubId = 31178401;
     name = "WhiteBlackGoose";
-    keys = [{
-      fingerprint = "640B EDDE 9734 310A BFA3  B257 52ED AE6A 3995 AFAB";
-    }];
+    keys = [ { fingerprint = "640B EDDE 9734 310A BFA3  B257 52ED AE6A 3995 AFAB"; } ];
   };
   whiteley = {
     email = "mattwhiteley@gmail.com";
@@ -21902,19 +21421,19 @@
     email = "go.wigust@gmail.com";
     github = "wigust";
     githubId = 7709598;
-    keys = [{
-      # primary: "C955 CC5D C048 7FB1 7966  40A9 199A F6A3 67E9 4ABB"
-      fingerprint = "7238 7123 8EAC EB63 4548  5857 167F 8EA5 001A FA9C";
-    }];
+    keys = [
+      {
+        # primary: "C955 CC5D C048 7FB1 7966  40A9 199A F6A3 67E9 4ABB"
+        fingerprint = "7238 7123 8EAC EB63 4548  5857 167F 8EA5 001A FA9C";
+      }
+    ];
   };
   wildsebastian = {
     name = "Sebastian Wild";
     email = "sebastian@wild-siena.com";
     github = "wildsebastian";
     githubId = 1215623;
-    keys = [{
-      fingerprint = "DA03 D6C6 3F58 E796 AD26  E99B 366A 2940 479A 06FC";
-    }];
+    keys = [ { fingerprint = "DA03 D6C6 3F58 E796 AD26  E99B 366A 2940 479A 06FC"; } ];
   };
   willbush = {
     email = "git@willbush.dev";
@@ -21922,9 +21441,7 @@
     github = "willbush";
     githubId = 2023546;
     name = "Will Bush";
-    keys = [{
-      fingerprint = "4441 422E 61E4 C8F3 EBFE  5E33 3823 864B 54B1 3BDA";
-    }];
+    keys = [ { fingerprint = "4441 422E 61E4 C8F3 EBFE  5E33 3823 864B 54B1 3BDA"; } ];
   };
   willcohen = {
     github = "willcohen";
@@ -21936,9 +21453,7 @@
     github = "williamvds";
     githubId = 26379999;
     name = "William Vigolo";
-    keys = [{
-      fingerprint = "9848 B216 BCBE 29BB 1C6A  E0D5 7A4D F5A8 CDBD 49C7";
-    }];
+    keys = [ { fingerprint = "9848 B216 BCBE 29BB 1C6A  E0D5 7A4D F5A8 CDBD 49C7"; } ];
   };
   willibutz = {
     email = "willibutz@posteo.de";
@@ -21992,9 +21507,7 @@
     email = "jade@witchof.space";
     github = "witchof0x20";
     githubId = 36118348;
-    keys = [{
-      fingerprint = "69C9 876B 5797 1B2E 11C5  7C39 80A1 F76F C9F9 54AE";
-    }];
+    keys = [ { fingerprint = "69C9 876B 5797 1B2E 11C5  7C39 80A1 F76F C9F9 54AE"; } ];
   };
   wizeman = {
     email = "rcorreia@wizy.org";
@@ -22067,9 +21580,7 @@
     email = "walther@technowledgy.de";
     github = "wolfgangwalther";
     githubId = 9132420;
-    keys = [{
-      fingerprint = "F943 A0BC 720C 5BEF 73CD E02D B398 93FA 5F65 CAE1";
-    }];
+    keys = [ { fingerprint = "F943 A0BC 720C 5BEF 73CD E02D B398 93FA 5F65 CAE1"; } ];
   };
   womfoo = {
     email = "kranium@gikos.net";
@@ -22112,9 +21623,7 @@
     email = "Winston@Milli.ng";
     github = "wrmilling";
     githubId = 6162814;
-    keys = [{
-      fingerprint = "21E1 6B8D 2EE8 7530 6A6C  9968 D830 77B9 9F8C 6643";
-    }];
+    keys = [ { fingerprint = "21E1 6B8D 2EE8 7530 6A6C  9968 D830 77B9 9F8C 6643"; } ];
   };
   wscott = {
     email = "wsc9tt@gmail.com";
@@ -22255,7 +21764,7 @@
   xgwq = {
     name = "XGWQ";
     email = "nixos.xgwq@xnee.net";
-    keys = [{ fingerprint = "6489 9EF2 A256 5C04 7426  686C 8337 A748 74EB E129"; }];
+    keys = [ { fingerprint = "6489 9EF2 A256 5C04 7426  686C 8337 A748 74EB E129"; } ];
     matrix = "@xgwq:nerdberg.de";
     github = "peterablehmann";
     githubId = 36541313;
@@ -22295,6 +21804,11 @@
     githubId = 46590321;
     name = "xrelkd";
   };
+  xtrayambak = {
+    github = "xTrayambak";
+    githubId = 59499552;
+    name = "Trayambak Rai";
+  };
   xurei = {
     email = "olivier.bourdoux@gmail.com";
     github = "xurei";
@@ -22396,8 +21910,8 @@
     github = "yavko";
     githubId = 15178513;
     keys = [
-      {fingerprint = "DC05 7015 ECD7 E68A 6426  EFD8 F07D 19A3 2407 F857";}
-      {fingerprint = "2874 581F F832 C9E9 AEC6  8D84 E57B F27C 8BB0 80B0";}
+      { fingerprint = "DC05 7015 ECD7 E68A 6426  EFD8 F07D 19A3 2407 F857"; }
+      { fingerprint = "2874 581F F832 C9E9 AEC6  8D84 E57B F27C 8BB0 80B0"; }
     ];
   };
   yayayayaka = {
@@ -22418,14 +21932,12 @@
     email = "ydlr@ydlr.io";
     github = "ydlr";
     githubId = 58453832;
-    keys = [{
-      fingerprint = "FD0A C425 9EF5 4084 F99F 9B47 2ACC 9749 7C68 FAD4";
-    }];
+    keys = [ { fingerprint = "FD0A C425 9EF5 4084 F99F 9B47 2ACC 9749 7C68 FAD4"; } ];
   };
   YellowOnion = {
     name = "Daniel Hill";
     email = "daniel@gluo.nz";
-    github   = "YellowOnion";
+    github = "YellowOnion";
     githubId = 364160;
     matrix = "@woobilicious:matrix.org";
   };
@@ -22488,9 +22000,7 @@
     name = "Yurii Matsiuk";
     github = "ymatsiuk";
     githubId = 24990891;
-    keys = [{
-      fingerprint = "7BB8 84B5 74DA FDB1 E194  ED21 6130 2290 2986 01AA";
-    }];
+    keys = [ { fingerprint = "7BB8 84B5 74DA FDB1 E194  ED21 6130 2290 2986 01AA"; } ];
   };
   ymeister = {
     name = "Yuri Meister";
@@ -22520,6 +22030,11 @@
     githubId = 40352765;
     name = "Yoctocell";
   };
+  yomaq = {
+    name = "yomaq";
+    github = "yomaq";
+    githubId = 112864332;
+  };
   yorickvp = {
     email = "yorickvanpelt@gmail.com";
     matrix = "@yorickvp:matrix.org";
@@ -22577,9 +22092,7 @@
     github = "Yumasi";
     githubId = 24368641;
     name = "Guillaume Pagnoux";
-    keys = [{
-      fingerprint = "85F8 E850 F8F2 F823 F934  535B EC50 6589 9AEA AF4C";
-    }];
+    keys = [ { fingerprint = "85F8 E850 F8F2 F823 F934  535B EC50 6589 9AEA AF4C"; } ];
   };
   yunfachi = {
     email = "yunfachi@gmail.com";
@@ -22617,9 +22130,7 @@
     github = "yusdacra";
     githubId = 19897088;
     name = "Yusuf Bera Ertan";
-    keys = [{
-      fingerprint = "9270 66BD 8125 A45B 4AC4 0326 6180 7181 F60E FCB2";
-    }];
+    keys = [ { fingerprint = "9270 66BD 8125 A45B 4AC4 0326 6180 7181 F60E FCB2"; } ];
   };
   yuu = {
     email = "yuunix@grrlz.net";
@@ -22627,17 +22138,13 @@
     github = "yuuyins";
     githubId = 86538850;
     name = "Yuu Yin";
-    keys = [{
-      fingerprint = "9F19 3AE8 AA25 647F FC31  46B5 416F 303B 43C2 0AC3";
-    }];
+    keys = [ { fingerprint = "9F19 3AE8 AA25 647F FC31  46B5 416F 303B 43C2 0AC3"; } ];
   };
   yvan-sraka = {
     email = "yvan@sraka.xyz";
     github = "yvan-sraka";
     githubId = 705213;
-    keys = [{
-      fingerprint = "FE9A 953C 97E4 54FE 6598  BFDD A4FB 3EAA 6F45 2379";
-    }];
+    keys = [ { fingerprint = "FE9A 953C 97E4 54FE 6598  BFDD A4FB 3EAA 6F45 2379"; } ];
     matrix = "@/yvan:matrix.org";
     name = "Yvan Sraka";
   };
@@ -22659,6 +22166,13 @@
     githubId = 5253988;
     name = "yvt";
   };
+  yzx9 = {
+    email = "yuan.zx@outlook.com";
+    github = "yzx9";
+    githubId = 41458459;
+    name = "Zexin Yuan";
+    keys = [ { fingerprint = "FE16 B281 90EF 6C3F F661  6441 C2DD 1916 FE47 1BE2"; } ];
+  };
   zachcoyle = {
     email = "zach.coyle@gmail.com";
     github = "zachcoyle";
@@ -22718,9 +22232,7 @@
     email = "zane@zanevaniperen.com";
     github = "vs49688";
     githubId = 4423262;
-    keys = [{
-      fingerprint = "61AE D40F 368B 6F26 9DAE  3892 6861 6B2D 8AC4 DCC5";
-    }];
+    keys = [ { fingerprint = "61AE D40F 368B 6F26 9DAE  3892 6861 6B2D 8AC4 DCC5"; } ];
   };
   zaninime = {
     email = "francesco@zanini.me";
@@ -22758,9 +22270,7 @@
     email = "zacc@ztdp.ca";
     github = "zedseven";
     githubId = 25164338;
-    keys = [{
-      fingerprint = "065A 0A98 FE61 E1C1 41B0  AFE7 64FA BC62 F457 2875";
-    }];
+    keys = [ { fingerprint = "065A 0A98 FE61 E1C1 41B0  AFE7 64FA BC62 F457 2875"; } ];
   };
   zelkourban = {
     name = "zelkourban";
@@ -22779,18 +22289,22 @@
     email = "i@zenithal.me";
     github = "ZenithalHourlyRate";
     githubId = 19512674;
-    keys = [{
-      fingerprint = "1127 F188 280A E312 3619  3329 87E1 7EEF 9B18 B6C9";
-    }];
+    keys = [ { fingerprint = "1127 F188 280A E312 3619  3329 87E1 7EEF 9B18 B6C9"; } ];
+  };
+  zeorin = {
+    name = "Xandor Schiefer";
+    email = "me@xandor.co.za";
+    matrix = "@zeorin:matrix.org";
+    github = "zeorin";
+    githubId = 1187078;
+    keys = [ { fingerprint = "863F 093A CF82 D2C8 6FD7  FB74 5E1C 0971 FE4F 665A"; } ];
   };
   zeratax = {
     email = "mail@zera.tax";
     github = "zeratax";
     githubId = 5024958;
     name = "Jona Abdinghoff";
-    keys = [{
-      fingerprint = "44F7 B797 9D3A 27B1 89E0  841E 8333 735E 784D F9D4";
-    }];
+    keys = [ { fingerprint = "44F7 B797 9D3A 27B1 89E0  841E 8333 735E 784D F9D4"; } ];
   };
   zeri = {
     name = "zeri";
@@ -22835,6 +22349,12 @@
     githubId = 3248;
     name = "zimbatm";
   };
+  zimeg = {
+    email = "zim@o526.net";
+    github = "zimeg";
+    githubId = 18134219;
+    name = "zimeg";
+  };
   Zimmi48 = {
     email = "theo.zimmermann@telecom-paris.fr";
     github = "Zimmi48";
@@ -22871,9 +22391,7 @@
     githubId = 44469426;
     name = "Zoey de Souza Pessanha";
     email = "zoey.spessanha@outlook.com";
-    keys = [{
-      fingerprint = "EAA1 51DB 472B 0122 109A  CB17 1E1E 889C DBD6 A315";
-    }];
+    keys = [ { fingerprint = "EAA1 51DB 472B 0122 109A  CB17 1E1E 889C DBD6 A315"; } ];
   };
   zohl = {
     email = "zohl@fmap.me";
@@ -22967,8 +22485,8 @@
   zzzsy = {
     email = "me@zzzsy.top";
     github = "zzzsyyy";
-    githubId = 	59917878;
+    githubId = 59917878;
     name = "Mathias Zhang";
   };
 }
-/* Keep the list alphabetically sorted. */
+# Keep the list alphabetically sorted.
diff --git a/maintainers/scripts/copy-tarballs.pl b/maintainers/scripts/copy-tarballs.pl
index b17cd82f4d1c8..30fbac6f002d9 100755
--- a/maintainers/scripts/copy-tarballs.pl
+++ b/maintainers/scripts/copy-tarballs.pl
@@ -1,5 +1,5 @@
 #! /usr/bin/env nix-shell
-#! nix-shell -i perl -p perl perlPackages.NetAmazonS3 perlPackages.FileSlurp perlPackages.JSON perlPackages.LWPProtocolHttps nixUnstable nixUnstable.perl-bindings
+#! nix-shell -i perl -p perl perlPackages.NetAmazonS3 perlPackages.FileSlurp perlPackages.JSON perlPackages.LWPProtocolHttps nix nix.perl-bindings
 
 # This command uploads tarballs to tarballs.nixos.org, the
 # content-addressed cache used by fetchurl as a fallback for when
diff --git a/maintainers/scripts/kde/collect-metadata.py b/maintainers/scripts/kde/collect-metadata.py
index eaa6196471365..3a7a3e95508e0 100755
--- a/maintainers/scripts/kde/collect-metadata.py
+++ b/maintainers/scripts/kde/collect-metadata.py
@@ -27,8 +27,13 @@ import utils
     ),
     default=pathlib.Path(__file__).parent.parent.parent.parent
 )
-def main(repo_metadata: pathlib.Path, nixpkgs: pathlib.Path):
-    metadata = utils.KDERepoMetadata.from_repo_metadata_checkout(repo_metadata)
+@click.option(
+    "--unstable",
+    default=False,
+    is_flag=True
+)
+def main(repo_metadata: pathlib.Path, nixpkgs: pathlib.Path, unstable: bool):
+    metadata = utils.KDERepoMetadata.from_repo_metadata_checkout(repo_metadata, unstable)
     out_dir = nixpkgs / "pkgs/kde/generated"
     metadata.write_json(out_dir)
 
diff --git a/maintainers/scripts/kde/collect-missing-deps.py b/maintainers/scripts/kde/collect-missing-deps.py
index 9625da71c3e51..3ec1411986c85 100755
--- a/maintainers/scripts/kde/collect-missing-deps.py
+++ b/maintainers/scripts/kde/collect-missing-deps.py
@@ -80,6 +80,11 @@ OK_MISSING_BY_PACKAGE = {
     "plasma-desktop": {
         "scim",  # upstream is dead, not packaged in Nixpkgs
     },
+    "poppler-qt6": {
+        "gobject-introspection-1.0",  # we don't actually want to build the GTK variant
+        "gdk-pixbuf-2.0",
+        "gtk+-3.0",
+    },
     "powerdevil": {
         "DDCUtil",  # cursed, intentionally disabled
     },
@@ -87,6 +92,9 @@ OK_MISSING_BY_PACKAGE = {
         "Qt6Qml",  # tests only
         "Qt6Quick",
     },
+    "skladnik": {
+        "POVRay",  # too expensive to rerender all the assets
+    },
     "syntax-highlighting": {
         "XercesC",  # only used for extra validation at build time
     }
diff --git a/maintainers/scripts/kde/utils.py b/maintainers/scripts/kde/utils.py
index b3a00093d7038..14ca61df35543 100644
--- a/maintainers/scripts/kde/utils.py
+++ b/maintainers/scripts/kde/utils.py
@@ -104,7 +104,7 @@ class KDERepoMetadata:
         return project
 
     @classmethod
-    def from_repo_metadata_checkout(cls, repo_metadata: pathlib.Path):
+    def from_repo_metadata_checkout(cls, repo_metadata: pathlib.Path, unstable=False):
         projects = [
             Project.from_yaml(metadata_file)
             for metadata_file in repo_metadata.glob("projects-invent/**/metadata.yaml")
@@ -122,29 +122,32 @@ class KDERepoMetadata:
             dep_graph={},
         )
 
-        dep_specs = ["dependency-data-stable-kf6-qt6"]
         dep_graph = collections.defaultdict(set)
 
-        for spec in dep_specs:
-            spec_path = repo_metadata / "dependencies" / spec
-            for line in spec_path.open():
-                line = line.strip()
-                if line.startswith("#"):
-                    continue
-                if not line:
-                    continue
+        if unstable:
+            spec_name = "dependency-data-kf6-qt6"
+        else:
+            spec_name = "dependency-data-stable-kf6-qt6"
 
-                dependent, dependency = line.split(": ")
+        spec_path = repo_metadata / "dependencies" / spec_name
+        for line in spec_path.open():
+            line = line.strip()
+            if line.startswith("#"):
+                continue
+            if not line:
+                continue
 
-                dependent = self.try_lookup_package(dependent)
-                if dependent is None:
-                    continue
+            dependent, dependency = line.split(": ")
 
-                dependency = self.try_lookup_package(dependency)
-                if dependency is None:
-                    continue
+            dependent = self.try_lookup_package(dependent)
+            if dependent is None:
+                continue
 
-                dep_graph[dependent].add(dependency)
+            dependency = self.try_lookup_package(dependency)
+            if dependency is None:
+                continue
+
+            dep_graph[dependent].add(dependency)
 
         self.dep_graph = dep_graph
 
diff --git a/maintainers/scripts/luarocks-packages.csv b/maintainers/scripts/luarocks-packages.csv
index 0091e93b7d58c..d4b6190f19259 100644
--- a/maintainers/scripts/luarocks-packages.csv
+++ b/maintainers/scripts/luarocks-packages.csv
@@ -1,5 +1,6 @@
 name,rockspec,ref,server,version,luaversion,maintainers
 alt-getopt,,,,,,arobyn
+ansicolors,,,,,,Freed-Wu
 bit32,,,,5.3.0-1,5.1,lblasc
 argparse,,,,,,
 basexx,,,,,,
@@ -76,7 +77,9 @@ lualdap,,,,,,aanderse
 lualogging,,,,,,
 luaossl,,,,,5.1,
 luaposix,,,,34.1.1-1,,vyp lblasc
+luaprompt,,,,,,Freed-Wu
 luarepl,,,,,,
+luarocks,,,,,,mrcjkb teto
 luarocks-build-rust-mlua,,,,,,mrcjkb
 luarocks-build-treesitter-parser,,,,,,mrcjkb
 luasec,,,,,,flosse
@@ -97,6 +100,7 @@ luuid,,,,20120509-2,,
 luv,,,,1.44.2-1,,
 lush.nvim,,,https://luarocks.org/dev,,,teto
 lyaml,,,,,,lblasc
+lz.n,,,,,,mrcjkb
 magick,,,,,5.1,donovanglover
 markdown,,,,,,
 mediator_lua,,,,,,
@@ -112,6 +116,7 @@ nvim-nio,,,,,,mrcjkb
 pathlib.nvim,,,,,,
 penlight,,,,,,alerque
 plenary.nvim,https://raw.githubusercontent.com/nvim-lua/plenary.nvim/master/plenary.nvim-scm-1.rockspec,,,,5.1,
+psl,,,,0.3,,
 rapidjson,,,,,,
 rest.nvim,,,,,5.1,teto
 rocks.nvim,,,,,,mrcjkb
diff --git a/maintainers/scripts/nixpkgs-lint.nix b/maintainers/scripts/nixpkgs-lint.nix
index b400ce034b3e0..979ec286d8090 100644
--- a/maintainers/scripts/nixpkgs-lint.nix
+++ b/maintainers/scripts/nixpkgs-lint.nix
@@ -1,18 +1,22 @@
 { stdenv, lib, makeWrapper, perl, perlPackages }:
 
 stdenv.mkDerivation {
-  name = "nixpkgs-lint-1";
+  pname = "nixpkgs-lint";
+  version = "1";
 
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ perl perlPackages.XMLSimple ];
 
   dontUnpack = true;
-  buildPhase = "true";
+  dontBuild = true;
 
   installPhase =
     ''
       mkdir -p $out/bin
       cp ${./nixpkgs-lint.pl} $out/bin/nixpkgs-lint
+      # make the built version hermetic
+      substituteInPlace  $out/bin/nixpkgs-lint \
+        --replace-fail "#! /usr/bin/env nix-shell" "#! ${lib.getExe perl}"
       wrapProgram $out/bin/nixpkgs-lint --set PERL5LIB $PERL5LIB
     '';
 
diff --git a/maintainers/scripts/pluginupdate.py b/maintainers/scripts/pluginupdate.py
index 239f529f9eaa3..ce4f55ae1e3cd 100644
--- a/maintainers/scripts/pluginupdate.py
+++ b/maintainers/scripts/pluginupdate.py
@@ -108,7 +108,7 @@ class Repo:
 
     @property
     def name(self):
-        return self.uri.split("/")[-1]
+        return self.uri.strip("/").split("/")[-1]
 
     @property
     def branch(self):
@@ -788,7 +788,10 @@ def update_plugins(editor: Editor, args):
     fetch_config = FetchConfig(args.proc, args.github_token)
     update = editor.get_update(args.input_file, args.outfile, fetch_config)
 
+    start_time = time.time()
     redirects = update()
+    duration = time.time() - start_time
+    print(f"The plugin update took {duration}s.")
     editor.rewrite_input(fetch_config, args.input_file, editor.deprecated, redirects)
 
     autocommit = not args.no_commit
diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix
index e0c1629a6f23a..26ed7fd6ef510 100644
--- a/maintainers/team-list.nix
+++ b/maintainers/team-list.nix
@@ -1,4 +1,5 @@
-/* List of maintainer teams.
+/*
+  List of maintainer teams.
     name = {
       # Required
       members = [ maintainer1 maintainer2 ];
@@ -25,10 +26,11 @@
    * keep the list alphabetically sorted
    * test the validity of the format with:
        nix-build lib/tests/teams.nix
-  */
+*/
 
 { lib }:
-with lib.maintainers; {
+with lib.maintainers;
+{
   acme = {
     members = [
       aanderse
@@ -67,9 +69,7 @@ with lib.maintainers; {
       minijackson
       yurrriq
     ];
-    githubTeams = [
-      "beam"
-    ];
+    githubTeams = [ "beam" ];
     scope = "Maintain BEAM-related packages and modules.";
     shortName = "BEAM";
     enableFeatureFreezePing = true;
@@ -95,9 +95,7 @@ with lib.maintainers; {
   };
 
   budgie = {
-    members = [
-      bobby285271
-    ];
+    members = [ bobby285271 ];
     scope = "Maintain Budgie desktop environment";
     shortName = "Budgie";
   };
@@ -144,9 +142,7 @@ with lib.maintainers; {
   };
 
   cloudposse = {
-    members = [
-      dudymas
-    ];
+    members = [ dudymas ];
     scope = "Maintain atmos and applications made by the Cloud Posse team.";
     shortName = "CloudPosse";
     enableFeatureFreezePing = true;
@@ -178,12 +174,8 @@ with lib.maintainers; {
   };
 
   darwin = {
-    members = [
-      toonn
-    ];
-    githubTeams = [
-      "darwin-maintainers"
-    ];
+    members = [ toonn ];
+    githubTeams = [ "darwin-maintainers" ];
     scope = "Maintain Darwin compatibility of packages and Darwin-only packages.";
     shortName = "Darwin";
     enableFeatureFreezePing = true;
@@ -213,9 +205,7 @@ with lib.maintainers; {
   };
 
   deepin = {
-    members = [
-      rewine
-    ];
+    members = [ rewine ];
     scope = "Maintain deepin desktop environment and related packages.";
     shortName = "DDE";
     enableFeatureFreezePing = true;
@@ -236,7 +226,6 @@ with lib.maintainers; {
     members = [
       cole-h
       grahamc
-      hoverbear
     ];
     scope = "Group registration for packages maintained by Determinate Systems.";
     shortName = "Determinate Systems employees";
@@ -263,29 +252,21 @@ with lib.maintainers; {
 
   docs = {
     members = [ ];
-    githubTeams = [
-      "documentation-team"
-    ];
+    githubTeams = [ "documentation-team" ];
     scope = "Maintain nixpkgs/NixOS documentation and tools for building it.";
     shortName = "Docs";
     enableFeatureFreezePing = true;
   };
 
   emacs = {
-    members = [
-      adisbladis
-    ];
+    members = [ adisbladis ];
     scope = "Maintain the Emacs editor and packages.";
     shortName = "Emacs";
   };
 
   enlightenment = {
-    members = [
-      romildo
-    ];
-    githubTeams = [
-      "enlightenment"
-    ];
+    members = [ romildo ];
+    githubTeams = [ "enlightenment" ];
     scope = "Maintain Enlightenment desktop environment and related packages.";
     shortName = "Enlightenment";
     enableFeatureFreezePing = true;
@@ -304,7 +285,12 @@ with lib.maintainers; {
   };
 
   flutter = {
-    members = [ mkg20001 RossComputerGuy FlafyDev hacker1024 ];
+    members = [
+      mkg20001
+      RossComputerGuy
+      FlafyDev
+      hacker1024
+    ];
     scope = "Maintain Flutter and Dart-related packages and build tools";
     shortName = "flutter";
     enableFeatureFreezePing = false;
@@ -345,6 +331,16 @@ with lib.maintainers; {
     shortName = "freedesktop.org packaging";
   };
 
+  fslabs = {
+    # Verify additions to this team with at least one already existing member of the team.
+    members = [
+      greaka
+      lpostula
+    ];
+    scope = "Group registration for packages maintained by Foresight Spatial Labs.";
+    shortName = "Foresight Spatial Labs employees";
+  };
+
   gcc = {
     members = [
       synthetica
@@ -364,9 +360,7 @@ with lib.maintainers; {
       sikmir
       willcohen
     ];
-    githubTeams = [
-      "geospatial"
-    ];
+    githubTeams = [ "geospatial" ];
     scope = "Maintain geospatial packages.";
     shortName = "Geospatial";
     enableFeatureFreezePing = true;
@@ -391,9 +385,7 @@ with lib.maintainers; {
       qbit
       mfrw
     ];
-    githubTeams = [
-      "golang"
-    ];
+    githubTeams = [ "golang" ];
     scope = "Maintain Golang compilers.";
     shortName = "Go";
     enableFeatureFreezePing = true;
@@ -406,9 +398,7 @@ with lib.maintainers; {
       jtojnar
       dasj19
     ];
-    githubTeams = [
-      "gnome"
-    ];
+    githubTeams = [ "gnome" ];
     scope = "Maintain GNOME desktop environment and platform.";
     shortName = "GNOME";
     enableFeatureFreezePing = true;
@@ -419,7 +409,6 @@ with lib.maintainers; {
       bandresen
       hlolli
       glittershark
-      babariviere
       ericdallo
       thiagokokada
     ];
@@ -435,9 +424,7 @@ with lib.maintainers; {
       ncfavier
       sternenseemann
     ];
-    githubTeams = [
-      "haskell"
-    ];
+    githubTeams = [ "haskell" ];
     scope = "Maintain Haskell packages and infrastructure.";
     shortName = "Haskell";
     enableFeatureFreezePing = true;
@@ -464,9 +451,7 @@ with lib.maintainers; {
   };
 
   infisical = {
-    members = [
-      akhilmhdh
-    ];
+    members = [ akhilmhdh ];
     scope = "Maintain Infisical";
     shortName = "Infisical";
   };
@@ -560,9 +545,7 @@ with lib.maintainers; {
       uthar
       hraban
     ];
-    githubTeams = [
-      "lisp"
-    ];
+    githubTeams = [ "lisp" ];
     scope = "Maintain the Lisp ecosystem.";
     shortName = "lisp";
     enableFeatureFreezePing = true;
@@ -578,18 +561,14 @@ with lib.maintainers; {
       rrbutani
       sternenseemann
     ];
-    githubTeams = [
-      "llvm"
-    ];
+    githubTeams = [ "llvm" ];
     scope = "Maintain LLVM package sets and related packages";
     shortName = "LLVM";
     enableFeatureFreezePing = true;
   };
 
   lomiri = {
-    members = [
-      OPNA2608
-    ];
+    members = [ OPNA2608 ];
     scope = "Maintain Lomiri desktop environment and related packages.";
     shortName = "Lomiri";
     enableFeatureFreezePing = true;
@@ -606,21 +585,15 @@ with lib.maintainers; {
   };
 
   lua = {
-    githubTeams = [
-      "lua"
-    ];
+    githubTeams = [ "lua" ];
     scope = "Maintain the lua ecosystem.";
     shortName = "lua";
     enableFeatureFreezePing = true;
   };
 
   lumina = {
-    members = [
-      romildo
-    ];
-    githubTeams = [
-      "lumina"
-    ];
+    members = [ romildo ];
+    githubTeams = [ "lumina" ];
     scope = "Maintain lumina desktop environment and related packages.";
     shortName = "Lumina";
     enableFeatureFreezePing = true;
@@ -639,12 +612,8 @@ with lib.maintainers; {
   };
 
   lxqt = {
-    members = [
-      romildo
-    ];
-    githubTeams = [
-      "lxqt"
-    ];
+    members = [ romildo ];
+    githubTeams = [ "lxqt" ];
     scope = "Maintain LXQt desktop environment and related packages.";
     shortName = "LXQt";
     enableFeatureFreezePing = true;
@@ -680,6 +649,7 @@ with lib.maintainers; {
       dandellion
       sumnerevans
       nickcao
+      teutat3s
     ];
     scope = "Maintain the ecosystem around Matrix, a decentralized messenger.";
     shortName = "Matrix";
@@ -708,9 +678,7 @@ with lib.maintainers; {
   };
 
   mobile = {
-    members = [
-      samueldr
-    ];
+    members = [ samueldr ];
     scope = "Maintain Mobile NixOS.";
     shortName = "Mobile";
   };
@@ -757,21 +725,15 @@ with lib.maintainers; {
   };
 
   ocaml = {
-    members = [
-      alizter
-    ];
-    githubTeams = [
-      "ocaml"
-    ];
+    members = [ alizter ];
+    githubTeams = [ "ocaml" ];
     scope = "Maintain the OCaml compiler and package set.";
     shortName = "OCaml";
     enableFeatureFreezePing = true;
   };
 
   openstack = {
-    members = [
-      SuperSandro2000
-    ];
+    members = [ SuperSandro2000 ];
     scope = "Maintain the ecosystem around OpenStack";
     shortName = "OpenStack";
   };
@@ -792,18 +754,14 @@ with lib.maintainers; {
       davidak
       bobby285271
     ];
-    githubTeams = [
-      "pantheon"
-    ];
+    githubTeams = [ "pantheon" ];
     scope = "Maintain Pantheon desktop environment and platform.";
     shortName = "Pantheon";
     enableFeatureFreezePing = true;
   };
 
   perl = {
-    members = [
-      sgo
-    ];
+    members = [ sgo ];
     scope = "Maintain the Perl interpreter and Perl packages.";
     shortName = "Perl";
     enableFeatureFreezePing = true;
@@ -817,9 +775,7 @@ with lib.maintainers; {
       patka
       talyz
     ];
-    githubTeams = [
-      "php"
-    ];
+    githubTeams = [ "php" ];
     scope = "Maintain PHP related packages and extensions.";
     shortName = "PHP";
     enableFeatureFreezePing = true;
@@ -830,17 +786,13 @@ with lib.maintainers; {
       saschagrunert
       vdemeester
     ];
-    githubTeams = [
-      "podman"
-    ];
+    githubTeams = [ "podman" ];
     scope = "Maintain Podman and CRI-O related packages and modules.";
     shortName = "Podman";
   };
 
   postgres = {
-    members = [
-      thoughtpolice
-    ];
+    members = [ thoughtpolice ];
     scope = "Maintain the PostgreSQL package and plugins along with the NixOS module.";
     shortName = "PostgreSQL";
   };
@@ -849,7 +801,7 @@ with lib.maintainers; {
     members = [
       hexa
       jonringer
-      tjni
+      natsukium
     ];
     scope = "Maintain the Python interpreter and related packages.";
     shortName = "Python";
@@ -866,9 +818,7 @@ with lib.maintainers; {
       SuperSandro2000
       ttuegel
     ];
-    githubTeams = [
-      "qt-kde"
-    ];
+    githubTeams = [ "qt-kde" ];
     scope = "Maintain the Qt framework, KDE application suite, Plasma desktop environment and related projects.";
     shortName = "Qt / KDE";
     enableFeatureFreezePing = true;
@@ -898,9 +848,7 @@ with lib.maintainers; {
 
   release = {
     members = [ ];
-    githubTeams = [
-      "nixos-release-managers"
-    ];
+    githubTeams = [ "nixos-release-managers" ];
     scope = "Manage the current nixpkgs/NixOS release.";
     shortName = "Release";
   };
@@ -911,16 +859,13 @@ with lib.maintainers; {
       Flakebi
       mschwaig
     ];
-    githubTeams = [
-      "rocm-maintainers"
-    ];
+    githubTeams = [ "rocm-maintainers" ];
     scope = "Maintain ROCm and related packages.";
     shortName = "ROCm";
   };
 
   ruby = {
-    members = [
-    ];
+    members = [ ];
     scope = "Maintain the Ruby interpreter and related packages.";
     shortName = "Ruby";
     enableFeatureFreezePing = true;
@@ -934,9 +879,7 @@ with lib.maintainers; {
       winter
       zowoq
     ];
-    githubTeams = [
-      "rust"
-    ];
+    githubTeams = [ "rust" ];
     scope = "Maintain the Rust compiler toolchain and nixpkgs integration.";
     shortName = "Rust";
     enableFeatureFreezePing = true;
@@ -953,6 +896,12 @@ with lib.maintainers; {
     shortName = "SageMath";
   };
 
+  sdl = {
+    members = [ ];
+    scope = "Maintain SDL libraries.";
+    shortName = "SDL";
+  };
+
   sphinx = {
     members = [ ];
     scope = "Maintain Sphinx related packages.";
@@ -961,9 +910,7 @@ with lib.maintainers; {
 
   serokell = {
     # Verify additions by approval of an already existing member of the team.
-    members = [
-      balsoft
-    ];
+    members = [ balsoft ];
     scope = "Group registration for Serokell employees who collectively maintain packages.";
     shortName = "Serokell employees";
   };
@@ -982,27 +929,21 @@ with lib.maintainers; {
 
   systemd = {
     members = [ ];
-    githubTeams = [
-      "systemd"
-    ];
+    githubTeams = [ "systemd" ];
     scope = "Maintain systemd for NixOS.";
     shortName = "systemd";
     enableFeatureFreezePing = true;
   };
 
   tests = {
-    members = [
-      tfc
-    ];
+    members = [ tfc ];
     scope = "Maintain the NixOS VM test runner.";
     shortName = "NixOS tests";
     enableFeatureFreezePing = true;
   };
 
   tts = {
-    members = [
-      mic92
-    ];
+    members = [ mic92 ];
     scope = "coqui-ai TTS (formerly Mozilla TTS) and leaf packages";
     shortName = "coqui-ai TTS";
   };
diff --git a/nixos/README.md b/nixos/README.md
index 07e82bf0ad938..5f751e10e20a0 100644
--- a/nixos/README.md
+++ b/nixos/README.md
@@ -48,7 +48,7 @@ Reviewing process:
   - Description, default and example should be provided.
 - Ensure that option changes are backward compatible.
   - `mkRenamedOptionModuleWith` provides a way to make renamed option backward compatible.
-  - Use `lib.versionAtLeast config.system.stateVersion "23.11"` on backward incompatible changes which may corrupt, change or update the state stored on existing setups.
+  - Use `lib.versionAtLeast config.system.stateVersion "24.05"` on backward incompatible changes which may corrupt, change or update the state stored on existing setups.
 - Ensure that removed options are declared with `mkRemovedOptionModule`.
 - Ensure that changes that are not backward compatible are mentioned in release notes.
 - Ensure that documentations affected by the change is updated.
diff --git a/nixos/doc/manual/configuration/gpu-accel.chapter.md b/nixos/doc/manual/configuration/gpu-accel.chapter.md
index 3b98bdd97c681..8afa2807b7b60 100644
--- a/nixos/doc/manual/configuration/gpu-accel.chapter.md
+++ b/nixos/doc/manual/configuration/gpu-accel.chapter.md
@@ -30,7 +30,7 @@ $ export \
 ```
 
 The second mechanism is to add the OpenCL driver package to
-[](#opt-hardware.opengl.extraPackages).
+[](#opt-hardware.graphics.extraPackages).
 This links the ICD file under `/run/opengl-driver`, where it will be visible
 to the ICD loader.
 
@@ -51,12 +51,12 @@ Platform Vendor      Advanced Micro Devices, Inc.
 Modern AMD [Graphics Core
 Next](https://en.wikipedia.org/wiki/Graphics_Core_Next) (GCN) GPUs are
 supported through the rocmPackages.clr.icd package. Adding this package to
-[](#opt-hardware.opengl.extraPackages)
+[](#opt-hardware.graphics.extraPackages)
 enables OpenCL support:
 
 ```nix
 {
-  hardware.opengl.extraPackages = [
+  hardware.graphics.extraPackages = [
     rocmPackages.clr.icd
   ];
 }
@@ -71,13 +71,13 @@ intel-compute-runtime package. The proprietary Intel OpenCL runtime, in
 the intel-ocl package, is an alternative for Gen7 GPUs.
 
 The intel-compute-runtime or intel-ocl package can be added to
-[](#opt-hardware.opengl.extraPackages)
+[](#opt-hardware.graphics.extraPackages)
 to enable OpenCL support. For example, for Gen8 and later GPUs, the following
 configuration can be used:
 
 ```nix
 {
-  hardware.opengl.extraPackages = [
+  hardware.graphics.extraPackages = [
     intel-compute-runtime
   ];
 }
@@ -90,8 +90,8 @@ compute API for GPUs. It is used directly by games or indirectly though
 compatibility layers like
 [DXVK](https://github.com/doitsujin/dxvk/wiki).
 
-By default, if [](#opt-hardware.opengl.driSupport)
-is enabled, mesa is installed and provides Vulkan for supported hardware.
+By default, if [](#opt-hardware.graphics.enable)
+is enabled, Mesa is installed and provides Vulkan for supported hardware.
 
 Similar to OpenCL, Vulkan drivers are loaded through the *Installable
 Client Driver* (ICD) mechanism. ICD files for Vulkan are JSON files that
@@ -110,7 +110,7 @@ $ export \
 ```
 
 The second mechanism is to add the Vulkan driver package to
-[](#opt-hardware.opengl.extraPackages).
+[](#opt-hardware.graphics.extraPackages).
 This links the ICD file under `/run/opengl-driver`, where it will be
 visible to the ICD loader.
 
@@ -140,18 +140,18 @@ Modern AMD [Graphics Core
 Next](https://en.wikipedia.org/wiki/Graphics_Core_Next) (GCN) GPUs are
 supported through either radv, which is part of mesa, or the amdvlk
 package. Adding the amdvlk package to
-[](#opt-hardware.opengl.extraPackages)
+[](#opt-hardware.graphics.extraPackages)
 makes amdvlk the default driver and hides radv and lavapipe from the device list.
 A specific driver can be forced as follows:
 
 ```nix
 {
-  hardware.opengl.extraPackages = [
+  hardware.graphics.extraPackages = [
     pkgs.amdvlk
   ];
 
   # To enable Vulkan support for 32-bit applications, also add:
-  hardware.opengl.extraPackages32 = [
+  hardware.graphics.extraPackages32 = [
     pkgs.driversi686Linux.amdvlk
   ];
 
@@ -171,7 +171,7 @@ graphics hardware acceleration capabilities for video processing.
 
 VA-API drivers are loaded by `libva`. The version in nixpkgs is built to search
 the opengl driver path, so drivers can be installed in
-[](#opt-hardware.opengl.extraPackages).
+[](#opt-hardware.graphics.extraPackages).
 
 VA-API can be tested using:
 
@@ -185,7 +185,7 @@ Modern Intel GPUs use the iHD driver, which can be installed with:
 
 ```nix
 {
-  hardware.opengl.extraPackages = [
+  hardware.graphics.extraPackages = [
     intel-media-driver
   ];
 }
@@ -195,7 +195,7 @@ Older Intel GPUs use the i965 driver, which can be installed with:
 
 ```nix
 {
-  hardware.opengl.extraPackages = [
+  hardware.graphics.extraPackages = [
     intel-vaapi-driver
   ];
 }
diff --git a/nixos/doc/manual/configuration/x-windows.chapter.md b/nixos/doc/manual/configuration/x-windows.chapter.md
index 31752330dd9a8..362ae5d7e5df1 100644
--- a/nixos/doc/manual/configuration/x-windows.chapter.md
+++ b/nixos/doc/manual/configuration/x-windows.chapter.md
@@ -79,7 +79,7 @@ Wine, you should also set the following:
 
 ```nix
 {
-  hardware.opengl.driSupport32Bit = true;
+  hardware.graphics.enable32Bit = true;
 }
 ```
 
@@ -183,23 +183,6 @@ If you have an older card, you may have to use one of the legacy drivers:
 You may need to reboot after enabling this driver to prevent a clash
 with other kernel modules.
 
-## Proprietary AMD drivers {#sec-x11--graphics-cards-amd}
-
-AMD provides a proprietary driver for its graphics cards that is not
-enabled by default because it's not Free Software, is often broken in
-nixpkgs and as of this writing doesn't offer more features or
-performance. If you still want to use it anyway, you need to explicitly
-set:
-
-```nix
-{
-  services.xserver.videoDrivers = [ "amdgpu-pro" ];
-}
-```
-
-You will need to reboot after enabling this driver to prevent a clash
-with other kernel modules.
-
 ## Touchpads {#sec-x11-touchpads}
 
 Support for Synaptics touchpads (found in many laptops such as the Dell
diff --git a/nixos/doc/manual/development/bootspec.chapter.md b/nixos/doc/manual/development/bootspec.chapter.md
index 96c12f24e7f1f..eb307c43088ed 100644
--- a/nixos/doc/manual/development/bootspec.chapter.md
+++ b/nixos/doc/manual/development/bootspec.chapter.md
@@ -1,17 +1,17 @@
-# Experimental feature: Bootspec {#sec-experimental-bootspec}
+# Bootspec {#sec-bootspec}
 
-Bootspec is a experimental feature, introduced in the [RFC-0125 proposal](https://github.com/NixOS/rfcs/pull/125), the reference implementation can be found [there](https://github.com/NixOS/nixpkgs/pull/172237) in order to standardize bootloader support
-and advanced boot workflows such as SecureBoot and potentially more.
+Bootspec is a feature introduced in [RFC-0125](https://github.com/NixOS/rfcs/pull/125) in order to standardize bootloader support and advanced boot workflows such as SecureBoot and potentially more.
+The reference implementation can be found [here](https://github.com/NixOS/nixpkgs/pull/172237).
 
-You can enable the creation of bootspec documents through [`boot.bootspec.enable = true`](options.html#opt-boot.bootspec.enable), which will prompt a warning until [RFC-0125](https://github.com/NixOS/rfcs/pull/125) is officially merged.
+The creation of bootspec documents is enabled by default.
 
-## Schema {#sec-experimental-bootspec-schema}
+## Schema {#sec-bootspec-schema}
 
 The bootspec schema is versioned and validated against [a CUE schema file](https://cuelang.org/) which should considered as the source of truth for your applications.
 
 You will find the current version [here](../../../modules/system/activation/bootspec.cue).
 
-## Extensions mechanism {#sec-experimental-bootspec-extensions}
+## Extensions mechanism {#sec-bootspec-extensions}
 
 Bootspec cannot account for all usecases.
 
@@ -29,8 +29,9 @@ An example for SecureBoot is to get the Nix store path to `/etc/os-release` in o
 
 To reduce incompatibility and prevent names from clashing between applications, it is **highly recommended** to use a unique namespace for your extensions.
 
-## External bootloaders {#sec-experimental-bootspec-external-bootloaders}
+## External bootloaders {#sec-bootspec-external-bootloaders}
 
 It is possible to enable your own bootloader through [`boot.loader.external.installHook`](options.html#opt-boot.loader.external.installHook) which can wrap an existing bootloader.
 
-Currently, there is no good story to compose existing bootloaders to enrich their features, e.g. SecureBoot, etc. It will be necessary to reimplement or reuse existing parts.
+Currently, there is no good story to compose existing bootloaders to enrich their features, e.g. SecureBoot, etc.
+It will be necessary to reimplement or reuse existing parts.
diff --git a/nixos/doc/manual/development/running-nixos-tests-interactively.section.md b/nixos/doc/manual/development/running-nixos-tests-interactively.section.md
index 4b8385d7e0d94..422dbf174ad56 100644
--- a/nixos/doc/manual/development/running-nixos-tests-interactively.section.md
+++ b/nixos/doc/manual/development/running-nixos-tests-interactively.section.md
@@ -44,7 +44,7 @@ As an alternative, you can proxy the guest shell to a local TCP server by first
 starting a TCP server in a terminal using the command:
 
 ```ShellSession
-$ socat 'READLINE,PROMPT=$ ' tcp-listen:4444,reuseaddr`
+$ socat 'READLINE,PROMPT=$ ' tcp-listen:4444,reuseaddr
 ```
 
 In the terminal where the test driver is running, connect to this server by
diff --git a/nixos/doc/manual/installation/upgrading.chapter.md b/nixos/doc/manual/installation/upgrading.chapter.md
index 11fc65502f953..1a3fc10ec8005 100644
--- a/nixos/doc/manual/installation/upgrading.chapter.md
+++ b/nixos/doc/manual/installation/upgrading.chapter.md
@@ -6,7 +6,7 @@ expressions and associated binaries. The NixOS channels are updated
 automatically from NixOS's Git repository after certain tests have
 passed and all packages have been built. These channels are:
 
--   *Stable channels*, such as [`nixos-23.11`](https://channels.nixos.org/nixos-23.11).
+-   *Stable channels*, such as [`nixos-24.05`](https://channels.nixos.org/nixos-24.05).
     These only get conservative bug fixes and package upgrades. For
     instance, a channel update may cause the Linux kernel on your system
     to be upgraded from 4.19.34 to 4.19.38 (a minor bug fix), but not
@@ -19,7 +19,7 @@ passed and all packages have been built. These channels are:
     radical changes between channel updates. It's not recommended for
     production systems.
 
--   *Small channels*, such as [`nixos-23.11-small`](https://channels.nixos.org/nixos-23.11-small)
+-   *Small channels*, such as [`nixos-24.05-small`](https://channels.nixos.org/nixos-24.05-small)
     or [`nixos-unstable-small`](https://channels.nixos.org/nixos-unstable-small).
     These are identical to the stable and unstable channels described above,
     except that they contain fewer binary packages. This means they get updated
@@ -38,8 +38,8 @@ supported stable release.
 
 When you first install NixOS, you're automatically subscribed to the
 NixOS channel that corresponds to your installation source. For
-instance, if you installed from a 23.11 ISO, you will be subscribed to
-the `nixos-23.11` channel. To see which NixOS channel you're subscribed
+instance, if you installed from a 24.05 ISO, you will be subscribed to
+the `nixos-24.05` channel. To see which NixOS channel you're subscribed
 to, run the following as root:
 
 ```ShellSession
@@ -54,16 +54,16 @@ To switch to a different NixOS channel, do
 ```
 
 (Be sure to include the `nixos` parameter at the end.) For instance, to
-use the NixOS 23.11 stable channel:
+use the NixOS 24.05 stable channel:
 
 ```ShellSession
-# nix-channel --add https://channels.nixos.org/nixos-23.11 nixos
+# nix-channel --add https://channels.nixos.org/nixos-24.05 nixos
 ```
 
 If you have a server, you may want to use the "small" channel instead:
 
 ```ShellSession
-# nix-channel --add https://channels.nixos.org/nixos-23.11-small nixos
+# nix-channel --add https://channels.nixos.org/nixos-24.05-small nixos
 ```
 
 And if you want to live on the bleeding edge:
@@ -117,6 +117,6 @@ modules. You can also specify a channel explicitly, e.g.
 
 ```nix
 {
-  system.autoUpgrade.channel = "https://channels.nixos.org/nixos-23.11";
+  system.autoUpgrade.channel = "https://channels.nixos.org/nixos-24.05";
 }
 ```
diff --git a/nixos/doc/manual/release-notes/rl-2111.section.md b/nixos/doc/manual/release-notes/rl-2111.section.md
index 8edf4fd35e4fb..4143f440f2890 100644
--- a/nixos/doc/manual/release-notes/rl-2111.section.md
+++ b/nixos/doc/manual/release-notes/rl-2111.section.md
@@ -146,7 +146,7 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 - [touchegg](https://github.com/JoseExposito/touchegg), a multi-touch gesture recognizer. Available as [services.touchegg](#opt-services.touchegg.enable).
 
-- [pantheon-tweaks](https://github.com/pantheon-tweaks/pantheon-tweaks), an unofficial system settings panel for Pantheon. Available as [programs.pantheon-tweaks](#opt-programs.pantheon-tweaks.enable).
+- [pantheon-tweaks](https://github.com/pantheon-tweaks/pantheon-tweaks), an unofficial system settings panel for Pantheon. Available as `programs.pantheon-tweaks`.
 
 - [joycond](https://github.com/DanielOgorchock/joycond), a service that uses `hid-nintendo` to provide nintendo joycond pairing and better nintendo switch pro controller support.
 
diff --git a/nixos/doc/manual/release-notes/rl-2211.section.md b/nixos/doc/manual/release-notes/rl-2211.section.md
index 77cb6c9baadbc..4630b0987436c 100644
--- a/nixos/doc/manual/release-notes/rl-2211.section.md
+++ b/nixos/doc/manual/release-notes/rl-2211.section.md
@@ -366,7 +366,7 @@ In addition to numerous new and upgraded packages, this release includes the fol
       __Note:__ secrets from these files will be leaked into the store unless you use a
       [**file**-provider or env-var](https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#file-provider) for secrets!
 
-    - [services.grafana.provision.notifiers](#opt-services.grafana.provision.notifiers) is not affected by this change because
+    - `services.grafana.provision.notifiers` is not affected by this change because
       this feature is deprecated by Grafana and will probably be removed in Grafana 10.
       It's recommended to use `services.grafana.provision.alerting.contactPoints` instead.
 
diff --git a/nixos/doc/manual/release-notes/rl-2405.section.md b/nixos/doc/manual/release-notes/rl-2405.section.md
index 484cc4a3b6725..ed895586f2b0c 100644
--- a/nixos/doc/manual/release-notes/rl-2405.section.md
+++ b/nixos/doc/manual/release-notes/rl-2405.section.md
@@ -1,4 +1,4 @@
-# Release 24.05 (“Uakari”, 2024.05/??) {#sec-release-24.05}
+# Release 24.05 (“Uakari”, 2024.05/31) {#sec-release-24.05}
 
 Support is planned until the end of December 2024, handing over to 24.11.
 
@@ -22,13 +22,13 @@ In addition to numerous new and upgraded packages, this release has the followin
 
   This makes `nix run nixpkgs#hello` and `nix-build '<nixpkgs>' -A hello` work out of the box with no added configuration, reusing dependencies already on the system.
 
-  This may be undesirable if nix commands are not going to be run on the built system since it adds nixpkgs to the system closure. For such closure-size-constrained non-interactive systems, this setting should be disabled.
+  This may be undesirable if Nix commands are not going to be run on the built system since it adds nixpkgs to the system closure. For such closure-size-constrained non-interactive systems, this setting should be disabled.
 
-  To disable this, set [nixpkgs.flake.setNixPath](#opt-nixpkgs.flake.setNixPath) and [nixpkgs.flake.setFlakeRegistry](#opt-nixpkgs.flake.setFlakeRegistry) to false.
+  To disable it, set [nixpkgs.flake.setNixPath](#opt-nixpkgs.flake.setNixPath) and [nixpkgs.flake.setFlakeRegistry](#opt-nixpkgs.flake.setFlakeRegistry) to false.
 
 - NixOS AMIs are now uploaded regularly to a new AWS Account.
   Instructions on how to use them can be found on <https://nixos.github.io/amis>.
-  We are working on integration the data into the NixOS homepage.
+  We are working on integrating the data into the NixOS homepage.
   The list in `nixos/modules/virtualisation/amazon-ec2-amis.nix` will stop
   being updated and will be removed in the future.
 
@@ -42,14 +42,20 @@ In addition to numerous new and upgraded packages, this release has the followin
   }
   ```
 
+- Cinnamon has been updated to 6.0. Please be aware that the [Wayland session](https://blog.linuxmint.com/?p=4591) is still experimental in this release and could potentially [affect Xorg sessions](https://blog.linuxmint.com/?p=4639). We suggest a reboot when switching between sessions.
+
+- GNOME has been updated to 46 "Kathmandu". Refer to the [release notes](https://release.gnome.org/46/) for more details. Notably this release brings experimental VRR support, default GTK renderer changes and WebDAV support in Online Accounts. This release we have also stopped including the legacy and unsupported Adwaita-Dark theme by default.
+
 - Lomiri (formerly known as Unity8) desktop mode, using Mir 2.x to function as a Wayland compositor, is now available and can be installed with `services.desktopManager.lomiri.enable = true`. Note that some core applications, services and indicators have yet to be packaged, and some functions may remain incomplete, but the base experience should be there.
 
+- LXQt has been updated to 2.0, which is based on Qt 6 and features Wayland support for many applications.
+
 - MATE has been updated to 1.28.
-  - To properly support panel plugins built with Wayland (in-process) support, we are introducing `services.xserver.desktopManager.mate.extraPanelApplets` option, please use that for installing panel applets.
-  - Similarly, please use `services.xserver.desktopManager.mate.extraCajaExtensions` option for installing Caja extensions.
-  - To use the Wayland session, enable `services.xserver.desktopManager.mate.enableWaylandSession`. This is opt-in for now as it is in early stage and introduces a new set of Wayfire closure. Due to [known issues with LightDM](https://github.com/canonical/lightdm/issues/63), we suggest using SDDM for display manager.
+  - To properly support panel plugins built with Wayland (in-process) support, we are introducing the `services.xserver.desktopManager.mate.extraPanelApplets` option, please use that for installing panel applets.
+  - Similarly, please use the `services.xserver.desktopManager.mate.extraCajaExtensions` option for installing Caja extensions.
+  - To use the Wayland session, enable `services.xserver.desktopManager.mate.enableWaylandSession`. This is opt-in for now as it is in early an stage and introduces a new set of Wayfire closures. Due to [known issues with LightDM](https://github.com/canonical/lightdm/issues/63), we suggest using SDDM as the display manager.
 
-- Plasma 6 is now available and can be installed with `services.xserver.desktopManager.plasma6.enable = true;`. Plasma 5 will likely be deprecated in the next release (24.11). Note that Plasma 6 runs as Wayland by default, and the X11 session needs to be explicitly selected if necessary.
+- Plasma 6 is now available and can be installed with `services.desktopManager.plasma6.enable = true;`. Plasma 5 will likely be deprecated in the next release (24.11). Note that Plasma 6 runs as Wayland by default, and the X11 session needs to be explicitly selected if necessary.
 
 ## New Services {#sec-release-24.05-new-services}
 
@@ -65,7 +71,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 - [armagetronad](https://wiki.armagetronad.org), a mid-2000s 3D lightcycle game widely played at iD Tech Camps. You can define multiple servers using `services.armagetronad.<server>.enable`.
 
 - [BenchExec](https://github.com/sosy-lab/benchexec), a framework for reliable benchmarking and resource measurement, available as [programs.benchexec](#opt-programs.benchexec.enable),
-  As well as related programs
+  as well as related programs
   [CPU Energy Meter](https://github.com/sosy-lab/cpu-energy-meter), available as [programs.cpu-energy-meter](#opt-programs.cpu-energy-meter.enable), and
   [PQoS Wrapper](https://gitlab.com/sosy-lab/software/pqos-wrapper), available as [programs.pqos-wrapper](#opt-programs.pqos-wrapper.enable).
 
@@ -111,7 +117,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - [Jottacloud Command-line Tool](https://docs.jottacloud.com/en/articles/1436834-jottacloud-command-line-tool), a CLI for the [Jottacloud](https://jottacloud.com/) cloud storage provider. Available as [services.jotta-cli](#opt-services.jotta-cli.enable).
 
-- [keto](https://www.ory.sh/keto/), a permission & access control server, the first open source implementation of ["Zanzibar: Google's Consistent, Global Authorization System"](https://research.google/pubs/zanzibar-googles-consistent-global-authorization-system/).
+- [keto](https://www.ory.sh/keto/), a permission & access control server, the first open source implementation of [*Zanzibar: Google's Consistent, Global Authorization System*](https://research.google/pubs/zanzibar-googles-consistent-global-authorization-system/).
 
 - [manticoresearch](https://manticoresearch.com), easy to use open source fast database for search. Available as [services.manticore](#opt-services.manticore.enable).
 
@@ -135,8 +141,12 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - [nh](https://github.com/viperML/nh), yet another Nix CLI helper. Available as [programs.nh](#opt-programs.nh.enable).
 
+- [oink](https://github.com/rlado/oink), a dynamic DNS client for Porkbun. Available as [services.oink](#opt-services.oink.enable).
+
 - [ollama](https://ollama.ai), server for running large language models locally.
 
+- [nextjs-ollama-llm-ui](https://github.com/jakobhoeg/nextjs-ollama-llm-ui), light-weight frontend server to chat with Ollama models through a web app.
+
 - [ownCloud Infinite Scale Stack](https://owncloud.com/infinite-scale-4-0/), a modern and scalable rewrite of ownCloud.
 
 - [PhotonVision](https://photonvision.org/), a free, fast, and easy-to-use computer vision solution for the FIRST® Robotics Competition.
@@ -149,7 +159,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - [private-gpt](https://github.com/zylon-ai/private-gpt), a service to interact with your documents using the power of LLMs, 100% privately, no data leaks. Available as [services.private-gpt](#opt-services.private-gpt.enable).
 
-- [Prometheus DNSSEC Exporter](https://github.com/chrj/prometheus-dnssec-exporter), check for validity and expiration in DNSSEC signatures and expose metrics for Prometheus. Available as [services.prometheus.exporters.dnssec](#opt-services.prometheus.exporters.dnssec.enable).
+- [Prometheus DNSSEC Exporter](https://github.com/chrj/prometheus-dnssec-exporter): check for validity and expiration in DNSSEC signatures and expose metrics for Prometheus. Available as [services.prometheus.exporters.dnssec](#opt-services.prometheus.exporters.dnssec.enable).
 
 - [prometheus-nats-exporter](https://github.com/nats-io/prometheus-nats-exporter), a Prometheus exporter for NATS. Available as [services.prometheus.exporters.nats](#opt-services.prometheus.exporters.nats.enable).
 
@@ -197,10 +207,14 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - [xdg-terminal-exec](https://github.com/Vladimir-csp/xdg-terminal-exec), the proposed Default Terminal Execution Specification.
 
+- Convenience options for `amdgpu`, open source driver for Radeon cards, is now available under `hardware.amdgpu`.
+
 - [ydotool](https://github.com/ReimuNotMoe/ydotool), a generic command-line automation tool now has a module. Available as [programs.ydotool](#opt-programs.ydotool.enable).
 
 - [your_spotify](https://github.com/Yooooomi/your_spotify), a self hosted Spotify tracking dashboard. Available as [services.your_spotify](#opt-services.your_spotify.enable)
 
+- [RKE2](https://github.com/rancher/rke2), also known as RKE Government, is Rancher's next-generation Kubernetes distribution. Available as [services.rke2](#opt-services.rke2.enable).
+
 ## Backward Incompatibilities {#sec-release-24.05-incompatibilities}
 
 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
@@ -227,7 +241,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `chromium` and `ungoogled-chromium` had a long-standing issue regarding Widevine DRM handling in nixpkgs fixed.
   `chromium` now no longer automatically downloads Widevine when encountering DRM protected content.
-  To be able to play DRM protected content in `chromium` now, you have to explicitly opt-in as originally intended using `chromium.override { enableWideVine = true; }`.
+  To be able to play DRM protected content in `chromium`, you now have to explicitly opt-in as originally intended using `chromium.override { enableWideVine = true; }`.
   This override was added almost 10 years ago.
 
 - `craftos-pc` package has been updated to v2.8, which includes [breaking changes](https://github.com/MCJack123/craftos2/releases/tag/v2.8).
@@ -253,13 +267,13 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
   such as tensorflow. The original runfile-based `cudatoolkit` is still
   available as `cudatoolkit-legacy-runfile`.
 
-- `cudaPackages.nsight_systems` now has most vendored third party-libraries removed, though we now only ship it for `cudaPackages_11_8` and later, due to outdated dependencies. Users comfortable with the vendored dependencies may use `overrideAttrs` to amend the `postPatch` phase and the `meta.broken` correspondingly. Alternatively, one could package the deprecated `boost170` locally, as required for `cudaPackages_11_4.nsight_systems`.
+- `cudaPackages.nsight_systems` now has most vendored third-party libraries removed, though we now only ship it for `cudaPackages_11_8` and later, due to outdated dependencies. Users comfortable with the vendored dependencies may use `overrideAttrs` to amend the `postPatch` phase and the `meta.broken` correspondingly. Alternatively, one could package the deprecated `boost170` locally, as required for `cudaPackages_11_4.nsight_systems`.
 
 - `cudaPackages.autoFixElfFiles` has been deprecated for `pkgs.autoFixElfFiles`. Functionality has not changed, but the setuphook has been renamed and moved to the top-level package scope.
 
 - `davfs2`'s `services.davfs2.extraConfig` setting has been deprecated and converted to the free-form type option named `services.davfs2.settings` according to RFC42.
 
-- `dwarf-fortress` has been updated to version 50, and its derivations continue to menace with spikes of Nix and bash [TODO what does this mean?]. Version 50 is identical to the version on Steam, but without the paid elements like tilepacks.
+- `dwarf-fortress` has been updated to version 50, which is identical to the version on Steam, but without the paid elements like tilepacks.
   dfhack and Dwarf Therapist still work, and older versions are still packaged in case you'd like to roll back. Note that DF 50 saves will not be compatible with DF 0.47 and earlier.
   See [Bay 12 Games](http://www.bay12games.com/dwarves/) for more details on what's new in Dwarf Fortress.
 
@@ -269,14 +283,14 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `erlang-ls` package no longer ships the `els_dap` binary as of v0.51.0.
 
-- `erlang_node_short_name`, `erlang_node_name`, `port` and `options` configuration parameters are gone, and have been replaced with an `environment` parameter.
+- `erlang_node_short_name`, `erlang_node_name`: `port` and `options` configuration parameters are gone, and have been replaced with an `environment` parameter.
     Use the appropriate [environment variables](https://hexdocs.pm/livebook/readme.html#environment-variables) inside `environment` to configure the service instead.
 
 - `firefox-devedition`, `firefox-beta`, `firefox-esr` executable file names for now match their package names, which is consistent with the `firefox-*-bin` packages. The desktop entries are also updated so that you can have multiple editions of firefox in your app launcher.
 
-- `gauge` now supports installing plugins using nix. For the old imperative approach, switch to `gauge-unwrapped`.
+- `gauge` now supports installing plugins using Nix. For the old imperative approach, switch to `gauge-unwrapped`.
   You can load plugins from an existing gauge manifest file using `gauge.fromManifest ./path/to/manifest.json` or
-  specify plugins in nix using `gauge.withPlugins (p: with p; [ js html-report xml-report ])`.
+  specify plugins in Nix using `gauge.withPlugins (p: with p; [ js html-report xml-report ])`.
 
 - `gitea` has been updated to 1.21, which introduces several breaking changes, including:
   - Custom themes and other assets that were previously stored in `custom/public/*` now belong in `custom/public/assets/*`
@@ -302,7 +316,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `himalaya` has been updated to v1.0.0-beta.4, which introduces breaking changes. Check out the [release note](https://github.com/soywod/himalaya/releases/tag/v1.0.0-beta.4) for details.
 
-- `halloy` has been updated to 2024.5, which introduced a breaking change by switching the config format from YAML to TOML. See https://github.com/squidowl/halloy/releases/tag/2024.5 for details.
+- `halloy` has been updated to 2024.5, which introduced a breaking change by switching the config format from YAML to TOML. See <https://github.com/squidowl/halloy/releases/tag/2024.5> for details.
 
 - `hvm` was updated to version 2.
 
@@ -310,7 +324,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `idris2` was updated to v0.7.0. This version introduces breaking changes. Check out the [changelog](https://github.com/idris-lang/Idris2/blob/v0.7.0/CHANGELOG.md#v070) for details.
 
-- `inetutils` now has a lower priority to avoid shadowing the commonly used `util-linux`. If one wishes to restore the default priority, simply use `lib.setPrio 5 inetutils` or override with `meta.priority = 5`.
+- `inetutils` now has a lower priority to avoid shadowing the commonly-used `util-linux`. If one wishes to restore the default priority, simply use `lib.setPrio 5 inetutils` or override with `meta.priority = 5`.
 
 - `jdt-language-server` package now uses upstream's provided python wrapper instead of our own custom wrapper. This results in the following breaking and notable changes:
 
@@ -322,7 +336,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `julia` environments can now be built with arbitrary packages from the ecosystem using the `.withPackages` function. For example: `julia.withPackages ["Plots"]`.
 
-- `k3s` has been updated to version [v1.30](https://github.com/k3s-io/k3s/releases/tag/v1.30.0%2Bk3s1), previous supported versions are available under release specific names (e.g. k3s_1_27, k3s_1_28, and k3s_1_29) and present to help you migrate to the latest supported version. See [changelog and upgrade notes](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.30.md#changelog-since-v1290) for more information.
+- `k3s` has been updated to version [v1.30](https://github.com/k3s-io/k3s/releases/tag/v1.30.0%2Bk3s1), previous supported versions are available under release-specific names (e.g. k3s_1_27, k3s_1_28, and k3s_1_29) in order to help you migrate to the latest supported version. See [changelog and upgrade notes](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.30.md#changelog-since-v1290) for more information.
 
 - `k9s` was updated to v0.31. There have been various breaking changes in the config file format,
   check out the changelog of [v0.29](https://github.com/derailed/k9s/releases/tag/v0.29.0),
@@ -336,12 +350,12 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `livebook` package is now built as a `mix release` instead of an `escript`.
   This means that configuration now has to be done using [environment variables](https://hexdocs.pm/livebook/readme.html#environment-variables) instead of command line arguments.
-  This has the further implication that the `livebook` service configuration has changed.
+  This has the further consequence that the `livebook` service configuration has changed.
 
 - `lua` interpreters default LUA_PATH and LUA_CPATH are not overriden by nixpkgs
   anymore, we patch LUA_ROOT instead which is more respectful to upstream.
 
-- `luarocks-packages-updater`'s .csv format used to define lua packages to be updated, has changed: `src` (URL of a git repository) has now become `rockspec` (URL of a rockspec) to remove ambiguity regarding which rockspec to use and simplify implementation.
+- `luarocks-packages-updater`'s .csv format, used to define lua packages to be updated, has changed: `src` (URL of a git repository) has now become `rockspec` (URL of a rockspec) to remove ambiguity regarding which rockspec to use and simplify implementation.
 
 - `mkosi` was updated to v22. Parts of the user interface have changed. Consult the
   release notes of [v19](https://github.com/systemd/mkosi/releases/tag/v19),
@@ -351,7 +365,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `mongodb-4_4` has been removed as it has reached end of life. Consequently, `unifi7` and `unifi8` now use MongoDB 5.0 by default.
 
-- `mongodb-5_0` and newer requires a cpu with the avx instruction set to run.
+- `mongodb-5_0` and newer requires a cpu with the AVX instruction set to run.
 
 - `neo4j` has been updated to version 5. You may want to read the [release notes for Neo4j 5](https://neo4j.com/release-notes/database/neo4j-5/).
 
@@ -371,7 +385,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
   `CONFIG_FILE_NAME` includes `bpf_pinning`, `ematch_map`, `group`, `nl_protos`, `rt_dsfield`, `rt_protos`, `rt_realms`, `rt_scopes`, and `rt_tables`.
 
 - `nextcloud26` has been removed since it's not maintained anymore by upstream. The latest available version of Nextcloud is now v29 (available as `pkgs.nextcloud29`). The installation logic is as follows:
-  - If [`services.nextcloud.package`](#opt-services.nextcloud.package) is specified explicitly, this package will be installed (**recommended**)
+  - If [`services.nextcloud.package`](#opt-services.nextcloud.package) is specified explicitly, this package will be installed (**recommended**).
   - If [`system.stateVersion`](#opt-system.stateVersion) is >=24.05, `pkgs.nextcloud29` will be installed by default.
   - If [`system.stateVersion`](#opt-system.stateVersion) is >=23.11, `pkgs.nextcloud27` will be installed by default.
   - Please note that an upgrade from v27 (or older) to v29 directly is not possible. Please upgrade to `nextcloud28` (or earlier) first. Nextcloud prohibits skipping major versions while upgrading. You can upgrade by declaring [`services.nextcloud.package = pkgs.nextcloud28;`](options.html#opt-services.nextcloud.package).
@@ -408,7 +422,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 - `pipewire` and `wireplumber` modules have removed support for using
 `environment.etc."pipewire/..."` and `environment.etc."wireplumber/..."`.
 Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for PipeWire and
-`services.pipewire.wireplumber.configPackages` for WirePlumber instead."
+`services.pipewire.wireplumber.configPackages` for WirePlumber instead.
 
 - `power.ups` now generates `upsd.conf`, `upsd.users` and `upsmon.conf` automatically from a set of new configuration options. This breaks compatibility with existing `power.ups` setups where these files were created manually. Back up these files before upgrading NixOS.
 
@@ -417,7 +431,17 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
 
 - `screen`'s module has been cleaned, and will now require you to set `programs.screen.enable` in order to populate `screenrc` and add the program to the environment.
 
-- `security.pam.enableSSHAgentAuth` now requires `services.openssh.authorizedKeysFiles` to be non-empty,
+- `security.acme.defaults.server` now has a default value instead of `null`.
+  This effectively uses the same server, the Let's Encrypt production server,
+  but makes the default explicit, instead of relying on the Lego default.
+
+  A side effect of this is that the directory in which account data is stored
+  changes and the ACME module will request a new account and new certificates
+  for all domains.  This may cause issues if you pin an `acccounturl` in a CAA
+  DNS record.  To avoid this, you
+  may set `security.acme.defaults.server = null` to keep the old hashes.
+
+- `security.pam.sshAgentAuth.enable` now requires `services.openssh.authorizedKeysFiles` to be non-empty,
   which is the case when `services.openssh.enable` is true. Previously, `pam_ssh_agent_auth` silently failed to work.
 
 - `security.pam.enableSSHAgentAuth` was replaced by the `sshAgentAuth` attrset, and **only**
@@ -440,7 +464,7 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
 - `frr` was updated to 10.0, which introduces the default of `enforce-first-as` for BGP. Please disable again if needed.
 
 - `services.aria2.rpcSecret` has been replaced with `services.aria2.rpcSecretFile`.
-  This was done so that secrets aren't stored in the world-readable nix store.
+  This was done so that secrets aren't stored in the world-readable Nix store.
   To migrate, you will have to create a file with the same exact string, and change
   your module options to point to that file. For example, `services.aria2.rpcSecret =
   "mysecret"` becomes `services.aria2.rpcSecretFile = "/path/to/secret_file"`
@@ -452,7 +476,7 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
 - `services.frp.settings` now generates the frp configuration file in TOML format as [recommended by upstream](https://github.com/fatedier/frp#configuration-files), instead of the legacy INI format. This has also introduced other changes in the configuration file structure and options:
   - The `settings.common` section in the configuration is no longer valid and all the options form inside it now go directly under `settings`.
   - Configuration option names have been changed from snake_case to camelCase. For example: `server_addr` becomes `serverAddr`, `server_port` becomes `serverPort` etc.
-  - Proxies are now defined with a new option `settings.proxies` which takes a list of proxies.
+  - Proxies are now defined with a new option, `settings.proxies`, which takes a list of proxies.
   - Consult the [upstream documentation](https://github.com/fatedier/frp#example-usage) for more details on the changes.
 
 - `services.hledger-web.capabilities` options has been replaced by a new option `services.hledger-web.allow`.
@@ -512,13 +536,11 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
   - to get previous behaviour of upstream defaults, set it to `null`
   - default value has changed from `[]` to `null`, in order to preserve default behaviour
 
-can now be used to disable the upstream fallback servers entirely by setting it to an empty list. To get the previous behaviour of the upstream defaults set it to null, the new default, instead.
-
 - `services.vikunja` systemd service now uses `vikunja` as dynamic user instead of `vikunja-api`. Database users might need to be changed.
 
 - `services.vikunja.setupNginx` setting has been removed. Users now need to set up the webserver configuration on their own with a proxy pass to the vikunja service.
 
-- `services.vmagent` module deprecates `dataDir`, `group` and `user` setting in favor of systemd provided CacheDirectory and DynamicUser.
+- `services.vmagent` module deprecates `dataDir`, `group` and `user` settings in favor of the systemd-provided CacheDirectory and DynamicUser.
 
 - `services.vmagent.remoteWriteUrl` setting has been renamed to `services.vmagent.remoteWrite.url` and now defaults to `null`.
 
@@ -540,9 +562,9 @@ can now be used to disable the upstream fallback servers entirely by setting it
 
   - Remove swap policy. This helps prevent killing processes when user's swap is small.
 
-  - Expand the memory pressure policy to `system.slice`, `user-.slice`, and all user owned slices. Reference: [commit](https://src.fedoraproject.org/rpms/systemd/c/7665e1796f915dedbf8e014f0a78f4f576d609bb).
+  - Expand the memory pressure policy to `system.slice`, `user-.slice`, and all user-owned slices. Reference: [commit](https://src.fedoraproject.org/rpms/systemd/c/7665e1796f915dedbf8e014f0a78f4f576d609bb).
 
-  - `systemd.oomd.enableUserServices` is renamed to `systemd.oomd.enableUserSlices`.
+  - Rename `systemd.oomd.enableUserServices` to `systemd.oomd.enableUserSlices`.
 
 - `systemd.sysusers.enable` option was added. If enabled, users and
   groups are created with systemd-sysusers instead of with a custom perl script.
@@ -571,11 +593,11 @@ can now be used to disable the upstream fallback servers entirely by setting it
 
 - `xxd` has been moved from `vim` default output to its own output to reduce closure size. The canonical way to reference it across all platforms is `unixtools.xxd`.
 
-- `youtrack` is bumped to 2023.3. The update is not performed automatically, it requires manual interaction. See the YouTrack section in the manual for details.
+- `youtrack` was bumped to 2023.3. The update is not performed automatically, it requires manual interaction. See the YouTrack section in the manual for details.
 
 - Ada packages (libraries and tools) have been moved into the `gnatPackages` scope. `gnatPackages` uses the default GNAT compiler, `gnat12Packages` and `gnat13Packages` use the respective matching compiler version.
 
-- Paths provided as `restartTriggers` and `reloadTriggers` for systemd units will now be copied into the nix store to make the behavior consistent.
+- Paths provided as `restartTriggers` and `reloadTriggers` for systemd units will now be copied into the Nix store to make the behavior consistent.
   Previously, `restartTriggers = [ ./config.txt ]`, if defined in a flake, would trigger a restart when any part of the flake changed; and if not defined in a flake, would never trigger a restart even if the contents of `config.txt` changed.
 
 - A warning has been added for services that are
@@ -615,16 +637,14 @@ can now be used to disable the upstream fallback servers entirely by setting it
 
 - `castopod` has some migration actions to be taken in case of a S3 setup. Some new features may also need some manual migration actions. See [https://code.castopod.org/adaures/castopod/-/releases](https://code.castopod.org/adaures/castopod/-/releases) for more information.
 
-- `cinnamon` has been updated to 6.0. Please beware that the [Wayland session](https://blog.linuxmint.com/?p=4591) is still experimental in this release and could potentially [affect Xorg sessions](https://blog.linuxmint.com/?p=4639). We suggest a reboot when switching between sessions.
-
-- `documentation.man.mandoc` now uses `MANPATH` by defaultwas to set the directories where mandoc will search for manual pages.
+- `documentation.man.mandoc` now, by default, uses `MANPATH` to set the directories where mandoc will search for manual pages.
   This enables mandoc to find manual pages in Nix profiles. To set the manual search paths via the `mandoc.conf` configuration file like before, use `documentation.man.mandoc.settings.manpath` instead.
 
 - `drbd` out-of-tree Linux kernel driver has been added in version 9.2.7. With it the DRBD 9.x features can be used instead of the 8.x features provided by the 8.4.11 in-tree driver.
 
 - `garage` has been updated to v1.x.x. Users should read the [upstream release notes](https://git.deuxfleurs.fr/Deuxfleurs/garage/releases/tag/v1.0.0) and follow the documentation when changing over their `services.garage.package` and performing this manual upgrade.
 
-- `hardware.pulseaudio` module now sets permission of pulse user home directory to 755 when running in "systemWide" mode. It fixes [issue 114399](https://github.com/NixOS/nixpkgs/issues/114399).
+- `hardware.pulseaudio` module now sets permissions of pulse user home directory to 755 when running in systemWide mode. It fixes [issue 114399](https://github.com/NixOS/nixpkgs/issues/114399).
 
 - `kavita` has been updated to 0.8.0, requiring a manual forced library scan on all libraries for migration. Refer to upstream's [release notes](https://github.com/Kareadita/Kavita/releases/tag/v0.8.0) for details.
 
@@ -632,7 +652,7 @@ can now be used to disable the upstream fallback servers entirely by setting it
 
 - `libass` now uses the native CoreText backend on Darwin, which may fix subtitle rendering issues with `mpv`, `ffmpeg`, etc.
 
-- `libjxl` version bumped from 0.8.2 to 0.9.1 [dropped support for the butteraugli API](https://github.com/libjxl/libjxl/pull/2576). You will no longer be able to set `enableButteraugli` on `libaom`.
+- `libjxl` version was bumped from 0.8.2 to 0.9.1 [dropped support for the butteraugli API](https://github.com/libjxl/libjxl/pull/2576). You will no longer be able to set `enableButteraugli` on `libaom`.
 
 - [`lilypond`](https://lilypond.org/index.html) and [`denemo`](https://www.denemo.org) are now compiled with Guile 3.0.
 
@@ -645,9 +665,9 @@ can now be used to disable the upstream fallback servers entirely by setting it
 
 - `mpich` now requires `withPm` to be a list, e.g. `"hydra:gforker"` becomes `[ "hydra" "gforker" ]`.
 
-- `nextcloud-setup.service` no longer changes the group of each file & directory inside `/var/lib/nextcloud/{config,data,store-apps}` if one of these directories has the wrong owner group. This was part of transitioning the group used for `/var/lib/nextcloud`, but isn't necessary anymore.
+- `nextcloud-setup.service` no longer changes the group of each file and directory inside `/var/lib/nextcloud/{config,data,store-apps}` if one of these directories has the wrong owner group. This was part of transitioning the group used for `/var/lib/nextcloud`, but isn't necessary anymore.
 
-- `oils-for-unix`, the oil shell's c++ version is now available. The python version is still available as `oil`.
+- `oils-for-unix`, the oil shell's C++ version is now available. The Python version is still available as `oil`.
 
 - `pkgsExtraHardening`, a new top-level package set, was added. This is a set of packages built with stricter hardening flags - those that have not yet received enough testing to be applied universally, those that are more likely to cause build failures or those that have drawbacks to their use (e.g. performance or required hardware features).
 
@@ -716,7 +736,7 @@ can now be used to disable the upstream fallback servers entirely by setting it
 - `services.zfs.zed.enableMail` now uses the global `sendmail` wrapper defined by an email module
   (such as msmtp or Postfix). It no longer requires using a special ZFS build with email support.
 
-- `sonarr` version bumped to from 3.0.10 to 4.0.3. Consequently existing config database files will be upgraded automatically, but note that some old apparently-working configs [might actually be corrupt and fail to upgrade cleanly](https://forums.sonarr.tv/t/sonarr-v4-released/33089).
+- `sonarr` version was bumped to from 3.0.10 to 4.0.3. Consequently existing config database files will be upgraded automatically, but note that some old apparently-working configs [might actually be corrupt and fail to upgrade cleanly](https://forums.sonarr.tv/t/sonarr-v4-released/33089).
 
 - `stdenv`: The `--replace` flag in `substitute`, `substituteInPlace`, `substituteAll`, `substituteAllStream`, and `substituteStream` is now deprecated if favor of the new `--replace-fail`, `--replace-warn` and `--replace-quiet`. The deprecated `--replace` equates to `--replace-warn`.
 
@@ -757,3 +777,51 @@ can now be used to disable the upstream fallback servers entirely by setting it
 - Lisp modules: previously deprecated interface based on `common-lisp.sh` has now been removed.
 
 - The `systemd-confinement` module extension is now compatible with `DynamicUser=true` and thus `ProtectSystem=strict` too.
+
+
+## Nixpkgs Library {#sec-release-24.05-nixpkgs-lib}
+
+### Additions and Improvements {#sec-release-24.05-lib-additions-improvements}
+
+New functions:
+- [`lib.asserts.assertEachOneOf`](https://nixos.org/manual/nixpkgs/unstable#function-library-lib.asserts.assertEachOneOf): Check that each value is one of the allowed ones.
+- [`lib.attrsets.longestValidPathPrefix`](https://nixos.org/manual/nixpkgs/unstable#function-library-lib.attrsets.longestValidPathPrefix): The longest prefix of an attribute path that refers to an existing attribute in a nesting of attribute sets.
+- [`lib.attrsets.mapCartesianProduct`](https://nixos.org/manual/nixpkgs/unstable#function-library-lib.attrsets.mapCartesianProduct): Apply a function to the cartesian product of attribute set value combinations.
+- [`lib.trivial.xor`](https://nixos.org/manual/nixpkgs/unstable#function-library-lib.trivial.xor): Boolean "exclusive or"
+- [`lib.lists.ifilter0`](https://nixos.org/manual/nixpkgs/unstable#function-library-lib.lists.ifilter0): Filter a list for elements that satisfy a predicate function. The predicate function is called with both the index and value for each element.
+- [`lib.lists.sortOn`](https://nixos.org/manual/nixpkgs/unstable#function-library-lib.lists.sortOn): Sort a list based on the default comparison of a derived property.
+- [`lib.path.hasStorePathPrefix`](https://nixos.org/manual/nixpkgs/unstable#function-library-lib.path.hasStorePathPrefix): Whether a [path](https://nixos.org/manual/nix/stable/language/values.html#type-path) has a [store path](https://nixos.org/manual/nix/stable/store/store-path.html#store-path) as a prefix.
+- [`lib.filesystem.packagesFromDirectoryRecursive`](https://nixos.org/manual/nixpkgs/unstable#function-library-lib.filesystem.packagesFromDirectoryRecursive): Transform a directory tree containing package files suitable for `callPackage` into a matching nested attribute set of derivations.
+- [`lib.fileset.toList`](https://nixos.org/manual/nixpkgs/unstable#function-library-lib.fileset.toList): The list of file paths contained in a given file set.
+- [`lib.fileset.maybeMissing`](https://nixos.org/manual/nixpkgs/unstable#function-library-lib.fileset.maybeMissing): Create a file set from a path that may or may not exist.
+- [`lib.derivations.optionalDrvAttr`](https://nixos.org/manual/nixpkgs/unstable#function-library-lib.derivations.optionalDrvAttr): Conditionally set a derivation attribute.
+- [`lib.strings.makeIncludePath`](https://nixos.org/manual/nixpkgs/unstable#function-library-lib.strings.makeIncludePath): Construct an include search path (such as `C_INCLUDE_PATH`) containing the header files for a set of packages or paths.
+
+Improvements:
+- [`lib.fixedPoints.extends`](https://nixos.org/manual/nixpkgs/unstable#function-library-lib.fixedPoints.extends): Better documentation
+- [`lib.customisation.makeScope`](https://nixos.org/manual/nixpkgs/unstable/#function-library-lib.customisation.makeScope): Better documentation
+- [`lib.derivations.lazyDerivation`](https://nixos.org/manual/nixpkgs/unstable#function-library-lib.derivations.lazyDerivation): Now supports multiple outputs with an `outputs` argument
+- [`lib.gvariant`](https://nixos.org/manual/nixpkgs/unstable#sec-functions-library-gvariant): Better error message for integers and attribute set values
+- [`lib.filesets.gitTracked`](https://nixos.org/manual/nixpkgs/unstable#function-library-lib.fileset.gitTracked): Now works within store paths
+
+Misc:
+- The [`lib/` directory](https://github.com/NixOS/nixpkgs/tree/release-24.05/lib) is a self-contained flake now, including a working [`lib.trivial.version`](https://nixos.org/manual/nixpkgs/unstable/#function-library-lib.trivial.version) (but note that fetching a subtree by itself is not supported in Nix yet)
+- [Various minor performance improvements](https://github.com/NixOS/nixpkgs/issues?q=author%3Aadisbladis+label%3A%226.topic%3A+lib%22+created%3A%3C2024-05-31+)
+
+Module System:
+- New types:
+  - [`types.attrTag`](https://nixos.org/manual/nixos/unstable/#sec-option-types-sums): A tagged union type
+  - `types.nonEmptyListOf`: A non-empty list
+- Improved types:
+  - `types.uniq`/`unique` now check the wrapped type
+
+### Deprecations {#sec-release-24.05-lib-deprecations}
+
+- [`lib.options.mdDoc`](https://nixos.org/manual/nixpkgs/unstable#function-library-lib.options.mdDoc) is obsolete and now emits a warning. The core ecosystem has completely migrated to markdown, so marking markdown as markdown is redundant.
+- `lib.attrsets.zipWithNames` is now a deprecated alias of [`lib.attrsets.zipAttrsWithNames`](https://nixos.org/manual/nixpkgs/unstable/#function-library-lib.attrsets.zipAttrsWithNames)
+- `lib.attrsets.cartesianProductOfSets` has been renamed to [`lib.attrsets.cartesianProduct`](https://nixos.org/manual/nixpkgs/unstable/#function-library-lib.attrsets.cartesianProduct)
+
+### Internal {#sec-release-24.05-lib-internal}
+- `lib` now has [Readme for contributing](https://github.com/NixOS/nixpkgs/tree/master/lib#readme).
+- Some function's documentation is now written using the [accepted doc comment syntax](https://github.com/NixOS/rfcs/pull/145).
+- `odoo` has been updated from `16.0.20231024` to `17.0.20240507`.
diff --git a/nixos/doc/manual/release-notes/rl-2411.section.md b/nixos/doc/manual/release-notes/rl-2411.section.md
index 530ca68e0c77c..57d8c59e612b3 100644
--- a/nixos/doc/manual/release-notes/rl-2411.section.md
+++ b/nixos/doc/manual/release-notes/rl-2411.section.md
@@ -4,18 +4,91 @@
 
 ## Highlights {#sec-release-24.11-highlights}
 
-- Create the first release note entry in this section!
+- Convenience options for `amdgpu`, open source driver for Radeon cards, is now available under `hardware.amdgpu`.
+
+- [AMDVLK](https://github.com/GPUOpen-Drivers/AMDVLK), AMD's open source Vulkan driver, is now available to be configured as `hardware.amdgpu.amdvlk` option.
+  This also allows configuring runtime settings of AMDVLK and enabling experimental features.
 
 ## New Services {#sec-release-24.11-new-services}
 
-- Create the first release note entry in this section!
+- [Open-WebUI](https://github.com/open-webui/open-webui), a user-friendly WebUI
+  for LLMs. Available as [services.open-webui](#opt-services.open-webui.enable)
+  service.
+
+- [Quickwit](https://quickwit.io), sub-second search & analytics engine on cloud storage. Available as [services.quickwit](options.html#opt-services.quickwit).
+
+- [Flood](https://flood.js.org/), a beautiful WebUI for various torrent clients. Available as [services.flood](options.html#opt-services.flood).
+
+- [Renovate](https://github.com/renovatebot/renovate), a dependency updating tool for various git forges and language ecosystems. Available as [services.renovate](#opt-services.renovate.enable).
 
 ## Backward Incompatibilities {#sec-release-24.11-incompatibilities}
 
-- Create the first release note entry in this section!
+- `androidenv.androidPkgs_9_0` has been removed, and replaced with `androidenv.androidPkgs` for a more complete Android SDK including support for Android 9 and later.
 
-## Other Notable Changes {#sec-release-24.11-notable-changes}
+- `nginx` package no longer includes `gd` and `geoip` dependencies. For enabling it, override `nginx` package with the optionals `withImageFilter` and `withGeoIP`.
+
+- `openssh` and `openssh_hpn` are now compiled without Kerberos 5 / GSSAPI support in an effort to reduce the attack surface of the components for the majority of users. Users needing this support can
+  use the new `opensshWithKerberos` and `openssh_hpnWithKerberos` flavors (e.g. `programs.ssh.package = pkgs.openssh_gssapi`).
+
+- `nvimpager` was updated to version 0.13.0, which changes the order of user and
+  nvimpager settings: user commands in `-c` and `--cmd` now override the
+  respective default settings because they are executed later.
+
+- `services.forgejo.mailerPasswordFile` has been deprecated by the drop-in replacement `services.forgejo.secrets.mailer.PASSWD`,
+  which is part of the new free-form `services.forgejo.secrets` option.
+  `services.forgejo.secrets` is a small wrapper over systemd's `LoadCredential=`. It has the same structure (sections/keys) as
+  `services.forgejo.settings` but takes file paths that will be read before service startup instead of some plaintext value.
+
+- `services.ddclient.use` has been deprecated: `ddclient` now supports separate IPv4 and IPv6 configuration. Use `services.ddclient.usev4` and `services.ddclient.usev6` instead.
+
+- `vaultwarden` lost the capability to bind to privileged ports. If you rely on
+   this behavior, override the systemd unit to allow `CAP_NET_BIND_SERVICE` in
+   your local configuration.
 
-- Create the first release note entry in this section!
+- The Invoiceplane module now only accepts the structured `settings` option.
+  `extraConfig` is now removed.
+
+- Legacy package `stalwart-mail_0_6` was dropped, please note the
+  [manual upgrade process](https://github.com/stalwartlabs/mail-server/blob/main/UPGRADING.md)
+  before changing the package to `pkgs.stalwart-mail` in
+  [`services.stalwart-mail.package`](#opt-services.stalwart-mail.package).
+
+- `haskell.lib.compose.justStaticExecutables` now disallows references to GHC in the
+  output by default, to alert users to closure size issues caused by
+  [#164630](https://github.com/NixOS/nixpkgs/issues/164630). See ["Packaging
+  Helpers" in the Haskell section of the Nixpkgs
+  manual](https://nixos.org/manual/nixpkgs/unstable/#haskell-packaging-helpers)
+  for information on working around `output '...' is not allowed to refer to
+  the following paths` errors caused by this change.
+
+- The `stalwart-mail` module now uses RocksDB as the default storage backend
+  for `stateVersion` ≥ 24.11. (It was previously using SQLite for structured
+  data and the filesystem for blobs).
+
+- `zx` was updated to v8, which introduces several breaking changes.
+  See the [v8 changelog](https://github.com/google/zx/releases/tag/8.0.0) for more information.
+
+- The `portunus` package and service do not support weak password hashes anymore.
+  If you installed Portunus on NixOS 23.11 or earlier, upgrade to NixOS 24.05 first to get support for strong password hashing.
+  Then, follow the instructions on the [upstream release notes](https://github.com/majewsky/portunus/releases/tag/v2.0.0) to upgrade all existing user accounts to strong password hashes.
+  If you need to upgrade to 24.11 without having completed the migration, consider the security implications of weak password hashes on your user accounts, and add the following to your configuration:
+  ```nix
+  services.portunus.package      = pkgs.portunus.override { libxcrypt = pkgs.libxcrypt-legacy; };
+  services.portunus.ldap.package = pkgs.openldap.override { libxcrypt = pkgs.libxcrypt-legacy; };
+  ```
+
+- The `tracy` package no longer works on X11, since it's moved to Wayland
+  support, which is the intended default behavior by Tracy maintainers.
+  X11 users have to switch to the new package `tracy-x11`.
+
+## Other Notable Changes {#sec-release-24.11-notable-changes}
 
 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
+
+- `hareHook` has been added as the language framework for Hare. From now on, it,
+  not the `hare` package, should be added to `nativeBuildInputs` when building
+  Hare programs.
+
+- To facilitate dependency injection, the `imgui` package now builds a static archive using vcpkg' CMake rules.
+  The derivation now installs "impl" headers selectively instead of by a wildcard.
+  Use `imgui.src` if you just want to access the unpacked sources.
diff --git a/nixos/lib/systemd-lib.nix b/nixos/lib/systemd-lib.nix
index 0641da8e77517..dac5cc7b700c8 100644
--- a/nixos/lib/systemd-lib.nix
+++ b/nixos/lib/systemd-lib.nix
@@ -182,6 +182,30 @@ in rec {
   in if errors == [] then true
      else trace (concatStringsSep "\n" errors) false;
 
+  checkUnitConfigWithLegacyKey = legacyKey: group: checks: attrs:
+    let
+      dump = lib.generators.toPretty { }
+        (lib.generators.withRecursion { depthLimit = 2; throwOnDepthLimit = false; } attrs);
+      attrs' =
+        if legacyKey == null
+          then attrs
+        else if ! attrs?${legacyKey}
+          then attrs
+        else if removeAttrs attrs [ legacyKey ] == {}
+          then attrs.${legacyKey}
+        else throw ''
+          The declaration
+
+          ${dump}
+
+          must not mix unit options with the legacy key '${legacyKey}'.
+
+          This can be fixed by moving all settings from within ${legacyKey}
+          one level up.
+        '';
+    in
+    checkUnitConfig group checks attrs';
+
   toOption = x:
     if x == true then "true"
     else if x == false then "false"
diff --git a/nixos/lib/systemd-network-units.nix b/nixos/lib/systemd-network-units.nix
index ae581495772a8..c35309a6d2628 100644
--- a/nixos/lib/systemd-network-units.nix
+++ b/nixos/lib/systemd-network-units.nix
@@ -63,13 +63,13 @@ in {
       ${attrsToSection def.l2tpConfig}
     '' + flip concatMapStrings def.l2tpSessions (x: ''
       [L2TPSession]
-      ${attrsToSection x.l2tpSessionConfig}
+      ${attrsToSection x}
     '') + optionalString (def.wireguardConfig != { }) ''
       [WireGuard]
       ${attrsToSection def.wireguardConfig}
     '' + flip concatMapStrings def.wireguardPeers (x: ''
       [WireGuardPeer]
-      ${attrsToSection x.wireguardPeerConfig}
+      ${attrsToSection x}
     '') + optionalString (def.bondConfig != { }) ''
       [Bond]
       ${attrsToSection def.bondConfig}
@@ -122,13 +122,13 @@ in {
       ${concatStringsSep "\n" (map (s: "Xfrm=${s}") def.xfrm)}
     '' + "\n" + flip concatMapStrings def.addresses (x: ''
       [Address]
-      ${attrsToSection x.addressConfig}
+      ${attrsToSection x}
     '') + flip concatMapStrings def.routingPolicyRules (x: ''
       [RoutingPolicyRule]
-      ${attrsToSection x.routingPolicyRuleConfig}
+      ${attrsToSection x}
     '') + flip concatMapStrings def.routes (x: ''
       [Route]
-      ${attrsToSection x.routeConfig}
+      ${attrsToSection x}
     '') + optionalString (def.dhcpV4Config != { }) ''
       [DHCPv4]
       ${attrsToSection def.dhcpV4Config}
@@ -147,24 +147,27 @@ in {
     '' + optionalString (def.ipv6SendRAConfig != { }) ''
       [IPv6SendRA]
       ${attrsToSection def.ipv6SendRAConfig}
-    '' + flip concatMapStrings def.ipv6Prefixes (x: ''
+    '' + flip concatMapStrings def.ipv6PREF64Prefixes (x: ''
+      [IPv6PREF64Prefix]
+      ${attrsToSection x}
+    '') + flip concatMapStrings def.ipv6Prefixes (x: ''
       [IPv6Prefix]
-      ${attrsToSection x.ipv6PrefixConfig}
+      ${attrsToSection x}
     '') + flip concatMapStrings def.ipv6RoutePrefixes (x: ''
       [IPv6RoutePrefix]
-      ${attrsToSection x.ipv6RoutePrefixConfig}
+      ${attrsToSection x}
     '') + flip concatMapStrings def.dhcpServerStaticLeases (x: ''
       [DHCPServerStaticLease]
-      ${attrsToSection x.dhcpServerStaticLeaseConfig}
+      ${attrsToSection x}
     '') + optionalString (def.bridgeConfig != { }) ''
       [Bridge]
       ${attrsToSection def.bridgeConfig}
     '' + flip concatMapStrings def.bridgeFDBs (x: ''
       [BridgeFDB]
-      ${attrsToSection x.bridgeFDBConfig}
+      ${attrsToSection x}
     '') + flip concatMapStrings def.bridgeMDBs (x: ''
       [BridgeMDB]
-      ${attrsToSection x.bridgeMDBConfig}
+      ${attrsToSection x}
     '') + optionalString (def.lldpConfig != { }) ''
       [LLDP]
       ${attrsToSection def.lldpConfig}
@@ -251,7 +254,7 @@ in {
       ${attrsToSection def.quickFairQueueingConfigClass}
     '' + flip concatMapStrings def.bridgeVLANs (x: ''
       [BridgeVLAN]
-      ${attrsToSection x.bridgeVLANConfig}
+      ${attrsToSection x}
     '') + def.extraConfig;
 
 }
diff --git a/nixos/lib/test-driver/default.nix b/nixos/lib/test-driver/default.nix
index 7a88694b3167e..26652db6016e6 100644
--- a/nixos/lib/test-driver/default.nix
+++ b/nixos/lib/test-driver/default.nix
@@ -13,11 +13,20 @@
 , extraPythonPackages ? (_ : [])
 , nixosTests
 }:
-
+let
+  fs = lib.fileset;
+in
 python3Packages.buildPythonApplication {
   pname = "nixos-test-driver";
   version = "1.1";
-  src = ./.;
+  src = fs.toSource {
+    root = ./.;
+    fileset = fs.unions [
+      ./pyproject.toml
+      ./test_driver
+      ./extract-docstrings.py
+    ];
+  };
   pyproject = true;
 
   propagatedBuildInputs = [
diff --git a/nixos/lib/test-driver/test_driver/driver.py b/nixos/lib/test-driver/test_driver/driver.py
index 10092fc966c8f..01b64b92e9770 100644
--- a/nixos/lib/test-driver/test_driver/driver.py
+++ b/nixos/lib/test-driver/test_driver/driver.py
@@ -106,7 +106,6 @@ class Driver:
         with self.logger.subtest(name):
             try:
                 yield
-                return True
             except Exception as e:
                 self.logger.error(f'Test "{name}" failed with error: "{e}"')
                 raise e
diff --git a/nixos/lib/test-driver/test_driver/logger.py b/nixos/lib/test-driver/test_driver/logger.py
index 6fb8a3cf4e5de..484829254b812 100644
--- a/nixos/lib/test-driver/test_driver/logger.py
+++ b/nixos/lib/test-driver/test_driver/logger.py
@@ -53,7 +53,6 @@ class AbstractLogger(ABC):
 
 
 class JunitXMLLogger(AbstractLogger):
-
     class TestCaseState:
         def __init__(self) -> None:
             self.stdout = ""
@@ -227,7 +226,7 @@ class XMLLogger(AbstractLogger):
     def __init__(self, outfile: str) -> None:
         self.logfile_handle = codecs.open(outfile, "wb")
         self.xml = XMLGenerator(self.logfile_handle, encoding="utf-8")
-        self.queue: "Queue[Dict[str, str]]" = Queue()
+        self.queue: Queue[dict[str, str]] = Queue()
 
         self._print_serial_logs = True
 
diff --git a/nixos/maintainers/scripts/ec2/README.md b/nixos/maintainers/scripts/ec2/README.md
index 1328109d464a3..eb2c9088d5a2c 100644
--- a/nixos/maintainers/scripts/ec2/README.md
+++ b/nixos/maintainers/scripts/ec2/README.md
@@ -1,7 +1,36 @@
 # Amazon images
 
-* The `create-amis.sh` script will be replaced by https://github.com/NixOS/amis which will regularly upload AMIs per NixOS channel bump.
+AMIs are regularly uploaded from Hydra. This automation lives in
+https://github.com/NixOS/amis
 
-* @arianvp is planning to drop zfs support
-* @arianvp is planning to rewrite the image builder to use the repart-based image builder.
 
+## How to upload an AMI for testing
+
+If you want to upload an AMI from changes in a local nixpkgs checkout.
+
+```bash
+nix-build nixos/release.nix -A amazonImage
+
+export AWS_REGION=us-west-2
+export AWS_PROFILE=my-profile
+nix run nixpkgs#upload-ami -- --image-info ./result/nix-support/image-info.json
+```
+
+## How to build your own NixOS config into an AMI
+
+I suggest looking at https://github.com/nix-community/nixos-generators for a user-friendly interface.
+
+```bash
+nixos-generate -c ./my-config.nix -f amazon
+
+export AWS_REGION=us-west-2
+export AWS_PROFILE=my-profile
+nix run github:NixOS/amis#upload-ami -- --image-info ./result/nix-support/image-info.json
+```
+
+## Roadmap
+
+* @arianvp is planning to drop zfs support unless someone else picks it up
+* @arianvp is planning to rewrite the image builder to use the repart-based image builder.
+* @arianvp is planning to perhaps rewrite `upload-ami` to use coldnsap
+* @arianvp is planning to move `upload-ami` tooling into nixpkgs once it has stabilized. And only keep the Github Action in separate repo
diff --git a/nixos/maintainers/scripts/ec2/amazon-image.nix b/nixos/maintainers/scripts/ec2/amazon-image.nix
index 357b86367d984..8b6a9bc52b128 100644
--- a/nixos/maintainers/scripts/ec2/amazon-image.nix
+++ b/nixos/maintainers/scripts/ec2/amazon-image.nix
@@ -71,9 +71,8 @@ in {
       '';
 
     zfsBuilder = import ../../../lib/make-multi-disk-zfs-image.nix {
-      inherit lib config configFile;
+      inherit lib config configFile pkgs;
       inherit (cfg) contents format name;
-      pkgs = import ../../../.. { inherit (pkgs) system; }; # ensure we use the regular qemu-kvm package
 
       includeChannel = true;
 
@@ -120,10 +119,9 @@ in {
     };
 
     extBuilder = import ../../../lib/make-disk-image.nix {
-      inherit lib config configFile;
+      inherit lib config configFile pkgs;
 
       inherit (cfg) contents format name;
-      pkgs = import ../../../.. { inherit (pkgs) system; }; # ensure we use the regular qemu-kvm package
 
       fsType = "ext4";
       partitionTableType = if config.ec2.efi then "efi" else "legacy+gpt";
diff --git a/nixos/maintainers/scripts/ec2/create-amis.sh b/nixos/maintainers/scripts/ec2/create-amis.sh
deleted file mode 100755
index d182c5c2a4794..0000000000000
--- a/nixos/maintainers/scripts/ec2/create-amis.sh
+++ /dev/null
@@ -1,368 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -p awscli -p jq -p qemu -i bash
-# shellcheck shell=bash
-#
-# Future Deprecation?
-# This entire thing should probably be replaced with a generic terraform config
-
-# Uploads and registers NixOS images built from the
-# <nixos/release.nix> amazonImage attribute. Images are uploaded and
-# registered via a home region, and then copied to other regions.
-
-# The home region requires an s3 bucket, and an IAM role named "vmimport"
-# (by default) with access to the S3 bucket. The name can be
-# configured with the "service_role_name" variable. Configuration of the
-# vmimport role is documented in
-# https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html
-
-# set -x
-set -euo pipefail
-
-var () { true; }
-
-# configuration
-var ${state_dir:=$HOME/amis/ec2-images}
-var ${home_region:=eu-west-1}
-var ${bucket:=nixos-amis}
-var ${service_role_name:=vmimport}
-
-# Output of the command:
-# $ nix-shell -I nixpkgs=. -p awscli --run 'aws ec2 describe-regions --region us-east-1 --all-regions --query "Regions[].{Name:RegionName}" --output text | sort | sed -e s/^/\ \ /'
-var ${regions:=
-  af-south-1
-  ap-east-1
-  ap-northeast-1
-  ap-northeast-2
-  ap-northeast-3
-  ap-south-1
-  ap-south-2
-  ap-southeast-1
-  ap-southeast-2
-  ap-southeast-3
-  ap-southeast-4
-  ca-central-1
-  eu-central-1
-  eu-central-2
-  eu-north-1
-  eu-south-1
-  eu-south-2
-  eu-west-1
-  eu-west-2
-  eu-west-3
-  il-central-1
-  me-central-1
-  me-south-1
-  sa-east-1
-  us-east-1
-  us-east-2
-  us-west-1
-  us-west-2
-}
-
-regions=($regions)
-
-log() {
-    echo "$@" >&2
-}
-
-if [ "$#" -ne 1 ]; then
-    log "Usage: ./upload-amazon-image.sh IMAGE_OUTPUT"
-    exit 1
-fi
-
-# result of the amazon-image from nixos/release.nix
-store_path=$1
-
-if [ ! -e "$store_path" ]; then
-    log "Store path: $store_path does not exist, fetching..."
-    nix-store --realise "$store_path"
-fi
-
-if [ ! -d "$store_path" ]; then
-    log "store_path: $store_path is not a directory. aborting"
-    exit 1
-fi
-
-read_image_info() {
-    if [ ! -e "$store_path/nix-support/image-info.json" ]; then
-        log "Image missing metadata"
-        exit 1
-    fi
-    jq -r "$1" "$store_path/nix-support/image-info.json"
-}
-
-# We handle a single image per invocation, store all attributes in
-# globals for convenience.
-zfs_disks=$(read_image_info .disks)
-is_zfs_image=
-if jq -e .boot <<< "$zfs_disks"; then
-  is_zfs_image=1
-  zfs_boot=".disks.boot"
-fi
-image_label="$(read_image_info .label)${is_zfs_image:+-ZFS}"
-image_system=$(read_image_info .system)
-image_files=( $(read_image_info ".disks.root.file") )
-
-image_logical_bytes=$(read_image_info "${zfs_boot:-.disks.root}.logical_bytes")
-
-if [[ -n "$is_zfs_image" ]]; then
-  image_files+=( $(read_image_info .disks.boot.file) )
-fi
-
-# Derived attributes
-
-image_logical_gigabytes=$(((image_logical_bytes-1)/1024/1024/1024+1)) # Round to the next GB
-
-case "$image_system" in
-    aarch64-linux)
-        amazon_arch=arm64
-        ;;
-    x86_64-linux)
-        amazon_arch=x86_64
-        ;;
-    *)
-        log "Unknown system: $image_system"
-        exit 1
-esac
-
-image_name="NixOS-${image_label}-${image_system}"
-image_description="NixOS ${image_label} ${image_system}"
-
-log "Image Details:"
-log " Name: $image_name"
-log " Description: $image_description"
-log " Size (gigabytes): $image_logical_gigabytes"
-log " System: $image_system"
-log " Amazon Arch: $amazon_arch"
-
-read_state() {
-    local state_key=$1
-    local type=$2
-
-    cat "$state_dir/$state_key.$type" 2>/dev/null || true
-}
-
-write_state() {
-    local state_key=$1
-    local type=$2
-    local val=$3
-
-    mkdir -p "$state_dir"
-    echo "$val" > "$state_dir/$state_key.$type"
-}
-
-wait_for_import() {
-    local region=$1
-    local task_id=$2
-    local state snapshot_id
-    log "Waiting for import task $task_id to be completed"
-    while true; do
-        read -r state message snapshot_id < <(
-            aws ec2 describe-import-snapshot-tasks --region "$region" --import-task-ids "$task_id" | \
-                jq -r '.ImportSnapshotTasks[].SnapshotTaskDetail | "\(.Status) \(.StatusMessage) \(.SnapshotId)"'
-        )
-        log " ... state=$state message=$message snapshot_id=$snapshot_id"
-        case "$state" in
-            active)
-                sleep 10
-                ;;
-            completed)
-                echo "$snapshot_id"
-                return
-                ;;
-            *)
-                log "Unexpected snapshot import state: '${state}'"
-                log "Full response: "
-                aws ec2 describe-import-snapshot-tasks --region "$region" --import-task-ids "$task_id" >&2
-                exit 1
-                ;;
-        esac
-    done
-}
-
-wait_for_image() {
-    local region=$1
-    local ami_id=$2
-    local state
-    log "Waiting for image $ami_id to be available"
-
-    while true; do
-        read -r state < <(
-            aws ec2 describe-images --image-ids "$ami_id" --region "$region" | \
-                jq -r ".Images[].State"
-        )
-        log " ... state=$state"
-        case "$state" in
-            pending)
-                sleep 10
-                ;;
-            available)
-                return
-                ;;
-            *)
-                log "Unexpected AMI state: '${state}'"
-                exit 1
-                ;;
-        esac
-    done
-}
-
-
-make_image_public() {
-    local region=$1
-    local ami_id=$2
-
-    wait_for_image "$region" "$ami_id"
-
-    log "Making image $ami_id public"
-
-    aws ec2 modify-image-attribute \
-        --image-id "$ami_id" --region "$region" --launch-permission 'Add={Group=all}' >&2
-}
-
-upload_image() {
-    local region=$1
-
-    for image_file in "${image_files[@]}"; do
-        local aws_path=${image_file#/}
-
-        if [[ -n "$is_zfs_image" ]]; then
-            local suffix=${image_file%.*}
-            suffix=${suffix##*.}
-        fi
-
-        local state_key="$region.$image_label${suffix:+.${suffix}}.$image_system"
-        local task_id
-        task_id=$(read_state "$state_key" task_id)
-        local snapshot_id
-        snapshot_id=$(read_state "$state_key" snapshot_id)
-        local ami_id
-        ami_id=$(read_state "$state_key" ami_id)
-
-        if [ -z "$task_id" ]; then
-            log "Checking for image on S3"
-            if ! aws s3 ls --region "$region" "s3://${bucket}/${aws_path}" >&2; then
-                log "Image missing from aws, uploading"
-                aws s3 cp --region "$region" "$image_file" "s3://${bucket}/${aws_path}" >&2
-            fi
-
-            log "Importing image from S3 path s3://$bucket/$aws_path"
-
-            task_id=$(aws ec2 import-snapshot --role-name "$service_role_name" --disk-container "{
-              \"Description\": \"nixos-image-${image_label}-${image_system}\",
-              \"Format\": \"vhd\",
-              \"UserBucket\": {
-                  \"S3Bucket\": \"$bucket\",
-                  \"S3Key\": \"$aws_path\"
-              }
-            }" --region "$region" | jq -r '.ImportTaskId')
-
-            write_state "$state_key" task_id "$task_id"
-        fi
-
-        if [ -z "$snapshot_id" ]; then
-            snapshot_id=$(wait_for_import "$region" "$task_id")
-            write_state "$state_key" snapshot_id "$snapshot_id"
-        fi
-    done
-
-    if [ -z "$ami_id" ]; then
-        log "Registering snapshot $snapshot_id as AMI"
-
-        local block_device_mappings=(
-            "DeviceName=/dev/xvda,Ebs={SnapshotId=$snapshot_id,VolumeSize=$image_logical_gigabytes,DeleteOnTermination=true,VolumeType=gp3}"
-        )
-
-        if [[ -n "$is_zfs_image" ]]; then
-            local root_snapshot_id=$(read_state "$region.$image_label.root.$image_system" snapshot_id)
-
-            local root_image_logical_bytes=$(read_image_info ".disks.root.logical_bytes")
-            local root_image_logical_gigabytes=$(((root_image_logical_bytes-1)/1024/1024/1024+1)) # Round to the next GB
-
-            block_device_mappings+=(
-                "DeviceName=/dev/xvdb,Ebs={SnapshotId=$root_snapshot_id,VolumeSize=$root_image_logical_gigabytes,DeleteOnTermination=true,VolumeType=gp3}"
-            )
-        fi
-
-
-        local extra_flags=(
-            --root-device-name /dev/xvda
-            --sriov-net-support simple
-            --ena-support
-            --virtualization-type hvm
-        )
-
-        block_device_mappings+=("DeviceName=/dev/sdb,VirtualName=ephemeral0")
-        block_device_mappings+=("DeviceName=/dev/sdc,VirtualName=ephemeral1")
-        block_device_mappings+=("DeviceName=/dev/sdd,VirtualName=ephemeral2")
-        block_device_mappings+=("DeviceName=/dev/sde,VirtualName=ephemeral3")
-
-        ami_id=$(
-            aws ec2 register-image \
-                --name "$image_name" \
-                --description "$image_description" \
-                --region "$region" \
-                --architecture $amazon_arch \
-                --block-device-mappings "${block_device_mappings[@]}" \
-                --boot-mode $(read_image_info .boot_mode) \
-                "${extra_flags[@]}" \
-                | jq -r '.ImageId'
-              )
-
-        write_state "$state_key" ami_id "$ami_id"
-    fi
-
-    [[ -v PRIVATE ]] || make_image_public "$region" "$ami_id"
-
-    echo "$ami_id"
-}
-
-copy_to_region() {
-    local region=$1
-    local from_region=$2
-    local from_ami_id=$3
-
-    state_key="$region.$image_label.$image_system"
-    ami_id=$(read_state "$state_key" ami_id)
-
-    if [ -z "$ami_id" ]; then
-        log "Copying $from_ami_id to $region"
-        ami_id=$(
-            aws ec2 copy-image \
-                --region "$region" \
-                --source-region "$from_region" \
-                --source-image-id "$from_ami_id" \
-                --name "$image_name" \
-                --description "$image_description" \
-                | jq -r '.ImageId'
-              )
-
-        write_state "$state_key" ami_id "$ami_id"
-    fi
-
-    [[ -v PRIVATE ]] || make_image_public "$region" "$ami_id"
-
-    echo "$ami_id"
-}
-
-upload_all() {
-    home_image_id=$(upload_image "$home_region")
-    jq -n \
-       --arg key "$home_region.$image_system" \
-       --arg value "$home_image_id" \
-       '$ARGS.named'
-
-    for region in "${regions[@]}"; do
-        if [ "$region" = "$home_region" ]; then
-            continue
-        fi
-        copied_image_id=$(copy_to_region "$region" "$home_region" "$home_image_id")
-
-        jq -n \
-           --arg key "$region.$image_system" \
-           --arg value "$copied_image_id" \
-           '$ARGS.named'
-    done
-}
-
-upload_all | jq --slurp from_entries
diff --git a/nixos/maintainers/scripts/lxd/lxd-container-image.nix b/nixos/maintainers/scripts/lxd/lxd-container-image.nix
index 930ab34af3856..8c0e75e84f753 100644
--- a/nixos/maintainers/scripts/lxd/lxd-container-image.nix
+++ b/nixos/maintainers/scripts/lxd/lxd-container-image.nix
@@ -20,7 +20,7 @@
     };
   in ''
     if [ ! -e /etc/nixos/configuration.nix ]; then
-      install -m 644 -D ${config} /etc/nixos/configuration.nix
+      install -m 0644 -D ${config} /etc/nixos/configuration.nix
     fi
   '';
 
diff --git a/nixos/maintainers/scripts/lxd/lxd-virtual-machine-image.nix b/nixos/maintainers/scripts/lxd/lxd-virtual-machine-image.nix
index bbbdd1f3fa173..8a1c9b0d634cd 100644
--- a/nixos/maintainers/scripts/lxd/lxd-virtual-machine-image.nix
+++ b/nixos/maintainers/scripts/lxd/lxd-virtual-machine-image.nix
@@ -20,8 +20,7 @@
     };
   in ''
     if [ ! -e /etc/nixos/configuration.nix ]; then
-      mkdir -p /etc/nixos
-      cp ${config} /etc/nixos/configuration.nix
+      install -m 0644 -D ${config} /etc/nixos/configuration.nix
     fi
   '';
 
diff --git a/nixos/modules/config/no-x-libs.nix b/nixos/modules/config/no-x-libs.nix
index 1d7976cef36a2..930e57dbde5bb 100644
--- a/nixos/modules/config/no-x-libs.nix
+++ b/nixos/modules/config/no-x-libs.nix
@@ -39,25 +39,27 @@ with lib;
       # dep of graphviz, libXpm is optional for Xpm support
       gd = super.gd.override { withXorg = false; };
       ghostscript = super.ghostscript.override { cupsSupport = false; x11Support = false; };
-      gjs = super.gjs.overrideAttrs { doCheck = false; installTests = false; }; # avoid test dependency on gtk3
+      gjs = (super.gjs.override { installTests = false; }).overrideAttrs { doCheck = false; }; # avoid test dependency on gtk3
       gobject-introspection = super.gobject-introspection.override { x11Support = false; };
       gpg-tui = super.gpg-tui.override { x11Support = false; };
       gpsd = super.gpsd.override { guiSupport = false; };
       graphviz = super.graphviz-nox;
       gst_all_1 = super.gst_all_1 // {
         gst-plugins-bad = super.gst_all_1.gst-plugins-bad.override { guiSupport = false; };
-        gst-plugins-base = super.gst_all_1.gst-plugins-base.override { enableWayland = false; enableX11 = false; };
+        gst-plugins-base = super.gst_all_1.gst-plugins-base.override { enableGl = false; enableWayland = false; enableX11 = false; };
         gst-plugins-good = super.gst_all_1.gst-plugins-good.override { enableWayland = false; enableX11 = false; gtkSupport = false; qt5Support = false; qt6Support = false; };
+        gst-plugins-rs = super.gst_all_1.gst-plugins-rs.override { withGtkPlugins = false; };
       };
       imagemagick = super.imagemagick.override { libX11Support = false; libXtSupport = false; };
       imagemagickBig = super.imagemagickBig.override { libX11Support = false; libXtSupport = false; };
       intel-vaapi-driver = super.intel-vaapi-driver.override { enableGui = false; };
       libdevil = super.libdevil-nox;
       libextractor = super.libextractor.override { gtkSupport = false; };
+      libplacebo = super.libplacebo.override { vulkanSupport = false; };
       libva = super.libva-minimal;
       limesuite = super.limesuite.override { withGui = false; };
       mc = super.mc.override { x11Support = false; };
-      mpv-unwrapped = super.mpv-unwrapped.override { sdl2Support = false; x11Support = false; waylandSupport = false; };
+      mpv-unwrapped = super.mpv-unwrapped.override { drmSupport = false; screenSaverSupport = false; sdl2Support = false; vulkanSupport = false; waylandSupport = false; x11Support = false; };
       msmtp = super.msmtp.override { withKeyring = false; };
       mupdf = super.mupdf.override { enableGL = false; enableX11 = false; };
       neofetch = super.neofetch.override { x11Support = false; };
@@ -70,6 +72,7 @@ with lib;
       networkmanager-vpnc = super.networkmanager-vpnc.override { withGnome = false; };
       pango = super.pango.override { x11Support = false; };
       pinentry-curses = super.pinentry-curses.override { withLibsecret = false; };
+      pinentry-tty = super.pinentry-tty.override { withLibsecret = false; };
       pipewire = super.pipewire.override { vulkanSupport = false; x11Support = false; };
       pythonPackagesExtensions = super.pythonPackagesExtensions ++ [
         (python-final: python-prev: {
diff --git a/nixos/modules/config/xdg/portal.nix b/nixos/modules/config/xdg/portal.nix
index 2c4d07c4953cb..2368ca04a49ea 100644
--- a/nixos/modules/config/xdg/portal.nix
+++ b/nixos/modules/config/xdg/portal.nix
@@ -96,7 +96,7 @@ in
         Sets which portal backend should be used to provide the implementation
         for the requested interface. For details check {manpage}`portals.conf(5)`.
 
-        Configs will be linked to `/etx/xdg/xdg-desktop-portal/` with the name `$desktop-portals.conf`
+        Configs will be linked to `/etc/xdg/xdg-desktop-portal/` with the name `$desktop-portals.conf`
         for `xdg.portal.config.$desktop` and `portals.conf` for `xdg.portal.config.common`
         as an exception.
       '';
diff --git a/nixos/modules/hardware/graphics.nix b/nixos/modules/hardware/graphics.nix
new file mode 100644
index 0000000000000..99c122f75c2a1
--- /dev/null
+++ b/nixos/modules/hardware/graphics.nix
@@ -0,0 +1,126 @@
+{ config, lib, pkgs, ... }:
+let
+  cfg = config.hardware.graphics;
+
+  driversEnv = pkgs.buildEnv {
+    name = "graphics-drivers";
+    paths = [ cfg.package ] ++ cfg.extraPackages;
+  };
+
+  driversEnv32 = pkgs.buildEnv {
+    name = "graphics-drivers-32bit";
+    paths = [ cfg.package32 ] ++ cfg.extraPackages32;
+  };
+in
+{
+  imports = [
+    (lib.mkRenamedOptionModule [ "services" "xserver" "vaapiDrivers" ] [ "hardware" "opengl" "extraPackages" ])
+    (lib.mkRemovedOptionModule [ "hardware" "opengl" "s3tcSupport" ] "S3TC support is now always enabled in Mesa.")
+    (lib.mkRemovedOptionModule [ "hardware" "opengl" "driSupport"] "The setting can be removed.")
+
+    (lib.mkRenamedOptionModule [ "hardware" "opengl" "enable"] [ "hardware" "graphics" "enable" ])
+    (lib.mkRenamedOptionModule [ "hardware" "opengl" "driSupport32Bit"] [ "hardware" "graphics" "enable32Bit" ])
+    (lib.mkRenamedOptionModule [ "hardware" "opengl" "package"] [ "hardware" "graphics" "package" ])
+    (lib.mkRenamedOptionModule [ "hardware" "opengl" "package32"] [ "hardware" "graphics" "package32" ])
+    (lib.mkRenamedOptionModule [ "hardware" "opengl" "extraPackages"] [ "hardware" "graphics" "extraPackages" ])
+    (lib.mkRenamedOptionModule [ "hardware" "opengl" "extraPackages32"] [ "hardware" "graphics" "extraPackages32" ])
+  ];
+
+  options.hardware.graphics = {
+    enable = lib.mkOption {
+      description = ''
+        Whether to enable hardware accelerated graphics drivers.
+
+        This is required to allow most graphical applications and
+        environments to use hardware rendering, video encode/decode
+        acceleration, etc.
+
+        This option should be enabled by default by the corresponding modules,
+        so you do not usually have to set it yourself.
+      '';
+      type = lib.types.bool;
+      default = false;
+    };
+
+    enable32Bit = lib.mkOption {
+      description = ''
+        On 64-bit systems, whether to also install 32-bit drivers for
+        32-bit applications (such as Wine).
+      '';
+      type = lib.types.bool;
+      default = false;
+    };
+
+    package = lib.mkOption {
+      description = ''
+        The package that provides the default driver set.
+      '';
+      type = lib.types.package;
+      internal = true;
+    };
+
+    package32 = lib.mkOption {
+      description = ''
+        The package that provides the 32-bit driver set. Used when {option}`enable32Bit` is enabled.
+        set.
+      '';
+      type = lib.types.package;
+      internal = true;
+    };
+
+    extraPackages = lib.mkOption {
+      description = ''
+        Additional packages to add to the default graphics driver lookup path.
+        This can be used to add OpenCL drivers, VA-API/VDPAU drivers, etc.
+
+        ::: {.note}
+        intel-media-driver supports hardware Broadwell (2014) or newer. Older hardware should use the mostly unmaintained intel-vaapi-driver driver.
+        :::
+      '';
+      type = lib.types.listOf lib.types.package;
+      default = [];
+      example = lib.literalExpression "with pkgs; [ intel-media-driver intel-ocl intel-vaapi-driver ]";
+    };
+
+    extraPackages32 = lib.mkOption {
+      description = ''
+        Additional packages to add to 32-bit graphics driver lookup path on 64-bit systems.
+        Used when {option}`enable32Bit` is set. This can be used to add OpenCL drivers, VA-API/VDPAU drivers, etc.
+
+        ::: {.note}
+        intel-media-driver supports hardware Broadwell (2014) or newer. Older hardware should use the mostly unmaintained intel-vaapi-driver driver.
+        :::
+      '';
+      type = lib.types.listOf lib.types.package;
+      default = [];
+      example = lib.literalExpression "with pkgs.pkgsi686Linux; [ intel-media-driver intel-vaapi-driver ]";
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    assertions = [
+      {
+        assertion = cfg.enable32Bit -> pkgs.stdenv.isx86_64;
+        message = "`hardware.graphics.enable32Bit` only makes sense on a 64-bit system.";
+      }
+      {
+        assertion = cfg.enable32Bit -> (config.boot.kernelPackages.kernel.features.ia32Emulation or false);
+        message = "`hardware.graphics.enable32Bit` requires a kernel that supports 32-bit emulation";
+      }
+    ];
+
+    systemd.tmpfiles.settings.graphics-driver = {
+      "/run/opengl-driver"."L+".argument = toString driversEnv;
+      "/run/opengl-driver-32" =
+        if pkgs.stdenv.isi686 then
+          { "L+".argument = "opengl-driver"; }
+        else if cfg.enable32Bit then
+          { "L+".argument = toString driversEnv32; }
+        else
+          { "r" = {}; };
+    };
+
+    hardware.graphics.package = lib.mkDefault pkgs.mesa.drivers;
+    hardware.graphics.package32 = lib.mkDefault pkgs.pkgsi686Linux.mesa.drivers;
+  };
+}
diff --git a/nixos/modules/hardware/opengl.nix b/nixos/modules/hardware/opengl.nix
deleted file mode 100644
index 25324fd8b0af9..0000000000000
--- a/nixos/modules/hardware/opengl.nix
+++ /dev/null
@@ -1,161 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-
-  cfg = config.hardware.opengl;
-
-  kernelPackages = config.boot.kernelPackages;
-
-  videoDrivers = config.services.xserver.videoDrivers;
-
-  package = pkgs.buildEnv {
-    name = "opengl-drivers";
-    paths = [ cfg.package ] ++ cfg.extraPackages;
-  };
-
-  package32 = pkgs.buildEnv {
-    name = "opengl-drivers-32bit";
-    paths = [ cfg.package32 ] ++ cfg.extraPackages32;
-  };
-
-in
-
-{
-
-  imports = [
-    (mkRenamedOptionModule [ "services" "xserver" "vaapiDrivers" ] [ "hardware" "opengl" "extraPackages" ])
-    (mkRemovedOptionModule [ "hardware" "opengl" "s3tcSupport" ] "S3TC support is now always enabled in Mesa.")
-  ];
-
-  options = {
-
-    hardware.opengl = {
-      enable = mkOption {
-        description = ''
-          Whether to enable OpenGL drivers. This is needed to enable
-          OpenGL support in X11 systems, as well as for Wayland compositors
-          like sway and Weston. It is enabled by default
-          by the corresponding modules, so you do not usually have to
-          set it yourself, only if there is no module for your wayland
-          compositor of choice. See services.xserver.enable and
-          programs.sway.enable.
-        '';
-        type = types.bool;
-        default = false;
-      };
-
-      driSupport = mkOption {
-        type = types.bool;
-        default = true;
-        description = ''
-          Whether to enable accelerated OpenGL rendering through the
-          Direct Rendering Interface (DRI).
-        '';
-      };
-
-      driSupport32Bit = mkOption {
-        type = types.bool;
-        default = false;
-        description = ''
-          On 64-bit systems, whether to support Direct Rendering for
-          32-bit applications (such as Wine).  This is currently only
-          supported for the `nvidia` as well as
-          `Mesa`.
-        '';
-      };
-
-      package = mkOption {
-        type = types.package;
-        internal = true;
-        description = ''
-          The package that provides the OpenGL implementation.
-        '';
-      };
-
-      package32 = mkOption {
-        type = types.package;
-        internal = true;
-        description = ''
-          The package that provides the 32-bit OpenGL implementation on
-          64-bit systems. Used when {option}`driSupport32Bit` is
-          set.
-        '';
-      };
-
-      extraPackages = mkOption {
-        type = types.listOf types.package;
-        default = [];
-        example = literalExpression "with pkgs; [ intel-media-driver intel-ocl intel-vaapi-driver ]";
-        description = ''
-          Additional packages to add to OpenGL drivers.
-          This can be used to add OpenCL drivers, VA-API/VDPAU drivers etc.
-
-          ::: {.note}
-          intel-media-driver supports hardware Broadwell (2014) or newer. Older hardware should use the mostly unmaintained intel-vaapi-driver driver.
-          :::
-        '';
-      };
-
-      extraPackages32 = mkOption {
-        type = types.listOf types.package;
-        default = [];
-        example = literalExpression "with pkgs.pkgsi686Linux; [ intel-media-driver intel-vaapi-driver ]";
-        description = ''
-          Additional packages to add to 32-bit OpenGL drivers on 64-bit systems.
-          Used when {option}`driSupport32Bit` is set. This can be used to add OpenCL drivers, VA-API/VDPAU drivers etc.
-
-          ::: {.note}
-          intel-media-driver supports hardware Broadwell (2014) or newer. Older hardware should use the mostly unmaintained intel-vaapi-driver driver.
-          :::
-        '';
-      };
-
-      setLdLibraryPath = mkOption {
-        type = types.bool;
-        internal = true;
-        default = false;
-        description = ''
-          Whether the `LD_LIBRARY_PATH` environment variable
-          should be set to the locations of driver libraries. Drivers which
-          rely on overriding libraries should set this to true. Drivers which
-          support `libglvnd` and other dispatch libraries
-          instead of overriding libraries should not set this.
-        '';
-      };
-    };
-
-  };
-
-  config = mkIf cfg.enable {
-    assertions = [
-      { assertion = cfg.driSupport32Bit -> pkgs.stdenv.isx86_64;
-        message = "Option driSupport32Bit only makes sense on a 64-bit system.";
-      }
-      { assertion = cfg.driSupport32Bit -> (config.boot.kernelPackages.kernel.features.ia32Emulation or false);
-        message = "Option driSupport32Bit requires a kernel that supports 32bit emulation";
-      }
-    ];
-
-    systemd.tmpfiles.rules = [
-      "L+ /run/opengl-driver - - - - ${package}"
-      (
-        if pkgs.stdenv.isi686 then
-          "L+ /run/opengl-driver-32 - - - - opengl-driver"
-        else if cfg.driSupport32Bit then
-          "L+ /run/opengl-driver-32 - - - - ${package32}"
-        else
-          "r /run/opengl-driver-32"
-      )
-    ];
-
-    environment.sessionVariables.LD_LIBRARY_PATH = mkIf cfg.setLdLibraryPath
-      ([ "/run/opengl-driver/lib" ] ++ optional cfg.driSupport32Bit "/run/opengl-driver-32/lib");
-
-    hardware.opengl.package = mkDefault pkgs.mesa.drivers;
-    hardware.opengl.package32 = mkDefault pkgs.pkgsi686Linux.mesa.drivers;
-
-    boot.extraModulePackages = optional (elem "virtualbox" videoDrivers) kernelPackages.virtualboxGuestAdditions;
-  };
-}
diff --git a/nixos/modules/hardware/printers.nix b/nixos/modules/hardware/printers.nix
index de2f84d4831b8..ace900d88586d 100644
--- a/nixos/modules/hardware/printers.nix
+++ b/nixos/modules/hardware/printers.nix
@@ -13,7 +13,7 @@ let
     } // optionalAttrs (p.description != null) {
       D = p.description;
     } // optionalAttrs (p.ppdOptions != {}) {
-      o = mapAttrsToList (name: value: "'${name}'='${value}'") p.ppdOptions;
+      o = mapAttrsToList (name: value: "${name}=${value}") p.ppdOptions;
     });
   in ''
     ${pkgs.cups}/bin/lpadmin ${args} -E
diff --git a/nixos/modules/hardware/video/amdgpu-pro.nix b/nixos/modules/hardware/video/amdgpu-pro.nix
deleted file mode 100644
index 2a86280eec8cb..0000000000000
--- a/nixos/modules/hardware/video/amdgpu-pro.nix
+++ /dev/null
@@ -1,69 +0,0 @@
-# This module provides the proprietary AMDGPU-PRO drivers.
-
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-
-  drivers = config.services.xserver.videoDrivers;
-
-  enabled = elem "amdgpu-pro" drivers;
-
-  package = config.boot.kernelPackages.amdgpu-pro;
-  package32 = pkgs.pkgsi686Linux.linuxPackages.amdgpu-pro.override { kernel = null; };
-
-  opengl = config.hardware.opengl;
-
-in
-
-{
-
-  config = mkIf enabled {
-    services.xserver.drivers = singleton
-      { name = "amdgpu"; modules = [ package ]; display = true; };
-
-    hardware.opengl.package = package;
-    hardware.opengl.package32 = package32;
-    hardware.opengl.setLdLibraryPath = true;
-
-    boot.extraModulePackages = [ package.kmod ];
-
-    boot.kernelPackages = pkgs.linuxKernel.packagesFor
-      (pkgs.linuxKernel.kernels.linux_5_10.override {
-        structuredExtraConfig = {
-          DEVICE_PRIVATE = kernel.yes;
-          KALLSYMS_ALL = kernel.yes;
-        };
-      });
-
-    hardware.firmware = [ package.fw ];
-
-    systemd.tmpfiles.settings.amdgpu-pro = {
-      "/run/amdgpu"."L+".argument = "${package}/opt/amdgpu";
-      "/run/amdgpu-pro"."L+".argument = "${package}/opt/amdgpu-pro";
-    };
-
-    system.requiredKernelConfig = with config.lib.kernelConfig; [
-      (isYes "DEVICE_PRIVATE")
-      (isYes "KALLSYMS_ALL")
-    ];
-
-    boot.initrd.extraUdevRulesCommands = mkIf (!config.boot.initrd.systemd.enable) ''
-      cp -v ${package}/etc/udev/rules.d/*.rules $out/
-    '';
-    boot.initrd.services.udev.packages = [ package ];
-
-    environment.systemPackages =
-      [ package.vulkan ] ++
-      # this isn't really DRI, but we'll reuse this option for now
-      optional config.hardware.opengl.driSupport32Bit package32.vulkan;
-
-    environment.etc = {
-      "modprobe.d/blacklist-radeon.conf".source = package + "/etc/modprobe.d/blacklist-radeon.conf";
-      amd.source = package + "/etc/amd";
-    };
-
-  };
-
-}
diff --git a/nixos/modules/hardware/video/nvidia.nix b/nixos/modules/hardware/video/nvidia.nix
index 3caec769400cb..0274dfcaa70f9 100644
--- a/nixos/modules/hardware/video/nvidia.nix
+++ b/nixos/modules/hardware/video/nvidia.nix
@@ -206,6 +206,19 @@ in
         option is supported is used
       '';
 
+      prime.reverseSync.setupCommands.enable =
+        (lib.mkEnableOption ''
+          configure the display manager to be able to use the outputs
+          attached to the NVIDIA GPU.
+          Disable in order to configure the NVIDIA GPU outputs manually using xrandr.
+          Note that this configuration will only be successful when a display manager
+          for which the {option}`services.xserver.displayManager.setupCommands`
+          option is supported is used
+        '')
+        // {
+          default = true;
+        };
+
       nvidiaSettings =
         (lib.mkEnableOption ''
           nvidia-settings, NVIDIA's GUI configuration tool
@@ -275,7 +288,7 @@ in
               softdep nvidia post: nvidia-uvm
             '';
           };
-          systemd.tmpfiles.rules = lib.optional config.virtualisation.docker.enableNvidia "L+ /run/nvidia-docker/bin - - - - ${nvidia_x11.bin}/origBin";
+          systemd.tmpfiles.rules = lib.mkIf config.virtualisation.docker.enableNvidia [ "L+ /run/nvidia-docker/bin - - - - ${nvidia_x11.bin}/origBin" ];
           services.udev.extraRules = ''
             # Create /dev/nvidia-uvm when the nvidia-uvm module is loaded.
             KERNEL=="nvidia", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidiactl c 195 255'"
@@ -284,12 +297,13 @@ in
             KERNEL=="nvidia_uvm", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia-uvm c $$(grep nvidia-uvm /proc/devices | cut -d \  -f 1) 0'"
             KERNEL=="nvidia_uvm", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia-uvm-tools c $$(grep nvidia-uvm /proc/devices | cut -d \  -f 1) 1'"
           '';
-          hardware.opengl = {
+          hardware.graphics = {
             extraPackages = [ nvidia_x11.out ];
             extraPackages32 = [ nvidia_x11.lib32 ];
           };
           environment.systemPackages = [ nvidia_x11.bin ];
         })
+
         # X11
         (lib.mkIf nvidiaEnabled {
           assertions = [
@@ -436,11 +450,13 @@ in
               providerCmdParams =
                 if syncCfg.enable then "\"${gpuProviderName}\" NVIDIA-0" else "NVIDIA-G0 \"${gpuProviderName}\"";
             in
-            lib.optionalString (syncCfg.enable || reverseSyncCfg.enable) ''
-              # Added by nvidia configuration module for Optimus/PRIME.
-              ${lib.getExe pkgs.xorg.xrandr} --setprovideroutputsource ${providerCmdParams}
-              ${lib.getExe pkgs.xorg.xrandr} --auto
-            '';
+            lib.optionalString
+              (syncCfg.enable || (reverseSyncCfg.enable && reverseSyncCfg.setupCommands.enable))
+              ''
+                # Added by nvidia configuration module for Optimus/PRIME.
+                ${lib.getExe pkgs.xorg.xrandr} --setprovideroutputsource ${providerCmdParams}
+                ${lib.getExe pkgs.xorg.xrandr} --auto
+              '';
 
           environment.etc = {
             "nvidia/nvidia-application-profiles-rc" = lib.mkIf nvidia_x11.useProfiles {
@@ -451,10 +467,11 @@ in
             "egl/egl_external_platform.d".source = "/run/opengl-driver/share/egl/egl_external_platform.d/";
           };
 
-          hardware.opengl = {
+          hardware.graphics = {
             extraPackages = [ pkgs.nvidia-vaapi-driver ];
             extraPackages32 = [ pkgs.pkgsi686Linux.nvidia-vaapi-driver ];
           };
+
           environment.systemPackages =
             lib.optional cfg.nvidiaSettings nvidia_x11.settings
             ++ lib.optional cfg.nvidiaPersistenced nvidia_x11.persistenced
@@ -527,16 +544,12 @@ in
                 };
               })
             ];
+
           services.acpid.enable = true;
 
           services.dbus.packages = lib.optional cfg.dynamicBoost.enable nvidia_x11.bin;
 
-          hardware.firmware =
-            let
-              isOpen = cfg.open;
-              isNewUnfree = lib.versionAtLeast nvidia_x11.version "555";
-            in
-            lib.optional (isOpen || isNewUnfree) nvidia_x11.firmware;
+          hardware.firmware = lib.optional (cfg.open || lib.versionAtLeast nvidia_x11.version "555") nvidia_x11.firmware;
 
           systemd.tmpfiles.rules =
             [
diff --git a/nixos/modules/hardware/video/virtualbox.nix b/nixos/modules/hardware/video/virtualbox.nix
new file mode 100644
index 0000000000000..31ed92b7d148e
--- /dev/null
+++ b/nixos/modules/hardware/video/virtualbox.nix
@@ -0,0 +1,7 @@
+{ lib, config, ... }:
+let
+  inherit (config.boot) kernelPackages;
+  inherit (config.services.xserver) videoDrivers;
+in {
+  boot.extraModulePackages = lib.mkIf (lib.elem "virtualbox" videoDrivers) [ kernelPackages.virtualboxGuestAdditions ];
+}
diff --git a/nixos/modules/hardware/xone.nix b/nixos/modules/hardware/xone.nix
index 89690d8c6fb10..bb3b42399d8e1 100644
--- a/nixos/modules/hardware/xone.nix
+++ b/nixos/modules/hardware/xone.nix
@@ -6,7 +6,7 @@ let
 in
 {
   options.hardware.xone = {
-    enable = mkEnableOption "the xone driver for Xbox One and Xbobx Series X|S accessories";
+    enable = mkEnableOption "the xone driver for Xbox One and Xbox Series X|S accessories";
   };
 
   config = mkIf cfg.enable {
diff --git a/nixos/modules/image/repart-image.nix b/nixos/modules/image/repart-image.nix
index 59d5fc26efe9b..e404067299004 100644
--- a/nixos/modules/image/repart-image.nix
+++ b/nixos/modules/image/repart-image.nix
@@ -10,7 +10,6 @@
 , mypy
 , systemd
 , fakeroot
-, util-linux
 
   # filesystem tools
 , dosfstools
@@ -105,7 +104,6 @@ in
   nativeBuildInputs = [
     systemd
     fakeroot
-    util-linux
   ] ++ lib.optionals (compression.enable) [
     compressionPkg
   ] ++ fileSystemTools;
@@ -148,7 +146,7 @@ in
     runHook preBuild
 
     echo "Building image with systemd-repart..."
-    unshare --map-root-user fakeroot systemd-repart \
+    fakeroot systemd-repart \
       ''${systemdRepartFlags[@]} \
       ${imageFileBasename}.raw \
       | tee repart-output.json
diff --git a/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma5.nix b/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma5.nix
index 61e94ffed8894..d1a42fc7a713b 100644
--- a/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma5.nix
+++ b/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma5.nix
@@ -23,7 +23,7 @@
 
   environment.systemPackages = with pkgs; [
     # Graphical text editor
-    kate
+    plasma5Packages.kate
   ];
 
   system.activationScripts.installerDesktop = let
@@ -40,7 +40,7 @@
 
     ln -sfT ${manualDesktopFile} ${desktopDir + "nixos-manual.desktop"}
     ln -sfT ${pkgs.gparted}/share/applications/gparted.desktop ${desktopDir + "gparted.desktop"}
-    ln -sfT ${pkgs.konsole}/share/applications/org.kde.konsole.desktop ${desktopDir + "org.kde.konsole.desktop"}
+    ln -sfT ${pkgs.plasma5Packages.konsole}/share/applications/org.kde.konsole.desktop ${desktopDir + "org.kde.konsole.desktop"}
     ln -sfT ${pkgs.calamares-nixos}/share/applications/io.calamares.calamares.desktop ${desktopDir + "io.calamares.calamares.desktop"}
   '';
 
diff --git a/nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix b/nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix
index ce111bcebd5c9..770df5bb997b9 100644
--- a/nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix
+++ b/nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix
@@ -23,7 +23,7 @@
 
   environment.systemPackages = with pkgs; [
     # Graphical text editor
-    kate
+    plasma5Packages.kate
   ];
 
   system.activationScripts.installerDesktop = let
@@ -40,7 +40,7 @@
 
     ln -sfT ${manualDesktopFile} ${desktopDir + "nixos-manual.desktop"}
     ln -sfT ${pkgs.gparted}/share/applications/gparted.desktop ${desktopDir + "gparted.desktop"}
-    ln -sfT ${pkgs.konsole}/share/applications/org.kde.konsole.desktop ${desktopDir + "org.kde.konsole.desktop"}
+    ln -sfT ${pkgs.plasma5Packages.konsole}/share/applications/org.kde.konsole.desktop ${desktopDir + "org.kde.konsole.desktop"}
   '';
 
 }
diff --git a/nixos/modules/installer/netboot/netboot.nix b/nixos/modules/installer/netboot/netboot.nix
index c88a53393d13f..93f806b75eb11 100644
--- a/nixos/modules/installer/netboot/netboot.nix
+++ b/nixos/modules/installer/netboot/netboot.nix
@@ -37,10 +37,6 @@ with lib;
     # here and it causes a cyclic dependency.
     boot.loader.grub.enable = false;
 
-    # !!! Hack - attributes expected by other modules.
-    environment.systemPackages = [ pkgs.grub2_efi ]
-      ++ (lib.optionals (pkgs.stdenv.hostPlatform.system != "aarch64-linux") [pkgs.grub2 pkgs.syslinux]);
-
     fileSystems."/" = mkImageMediaOverride
       { fsType = "tmpfs";
         options = [ "mode=0755" ];
diff --git a/nixos/modules/misc/locate.nix b/nixos/modules/misc/locate.nix
index 84c711c2b4efa..0e9adefff5e1e 100644
--- a/nixos/modules/misc/locate.nix
+++ b/nixos/modules/misc/locate.nix
@@ -1,24 +1,22 @@
 { config, lib, pkgs, ... }:
 
-with lib;
-
 let
   cfg = config.services.locate;
-  isMLocate = hasPrefix "mlocate" cfg.package.name;
-  isPLocate = hasPrefix "plocate" cfg.package.name;
+  isMLocate = lib.hasPrefix "mlocate" cfg.package.name;
+  isPLocate = lib.hasPrefix "plocate" cfg.package.name;
   isMorPLocate = isMLocate || isPLocate;
-  isFindutils = hasPrefix "findutils" cfg.package.name;
+  isFindutils = lib.hasPrefix "findutils" cfg.package.name;
 in
 {
   imports = [
-    (mkRenamedOptionModule [ "services" "locate" "period" ] [ "services" "locate" "interval" ])
-    (mkRenamedOptionModule [ "services" "locate" "locate" ] [ "services" "locate" "package" ])
-    (mkRemovedOptionModule [ "services" "locate" "includeStore" ] "Use services.locate.prunePaths")
+    (lib.mkRenamedOptionModule [ "services" "locate" "period" ] [ "services" "locate" "interval" ])
+    (lib.mkRenamedOptionModule [ "services" "locate" "locate" ] [ "services" "locate" "package" ])
+    (lib.mkRemovedOptionModule [ "services" "locate" "includeStore" ] "Use services.locate.prunePaths")
   ];
 
-  options.services.locate = with types; {
-    enable = mkOption {
-      type = bool;
+  options.services.locate = {
+    enable = lib.mkOption {
+      type = lib.types.bool;
       default = false;
       description = ''
         If enabled, NixOS will periodically update the database of
@@ -26,12 +24,12 @@ in
       '';
     };
 
-    package = mkPackageOption pkgs [ "findutils" "locate" ] {
+    package = lib.mkPackageOption pkgs [ "findutils" "locate" ] {
       example = "mlocate";
     };
 
-    interval = mkOption {
-      type = str;
+    interval = lib.mkOption {
+      type = lib.types.str;
       default = "02:15";
       example = "hourly";
       description = ''
@@ -46,24 +44,24 @@ in
       '';
     };
 
-    extraFlags = mkOption {
-      type = listOf str;
+    extraFlags = lib.mkOption {
+      type = lib.types.listOf lib.types.str;
       default = [ ];
       description = ''
         Extra flags to pass to {command}`updatedb`.
       '';
     };
 
-    output = mkOption {
-      type = path;
+    output = lib.mkOption {
+      type = lib.types.path;
       default = "/var/cache/locatedb";
       description = ''
         The database file to build.
       '';
     };
 
-    localuser = mkOption {
-      type = nullOr str;
+    localuser = lib.mkOption {
+      type = lib.types.nullOr lib.types.str;
       default = "nobody";
       description = ''
         The user to search non-network directories as, using
@@ -71,8 +69,8 @@ in
       '';
     };
 
-    pruneFS = mkOption {
-      type = listOf str;
+    pruneFS = lib.mkOption {
+      type = lib.types.listOf lib.types.str;
       default = [
         "afs"
         "anon_inodefs"
@@ -158,8 +156,8 @@ in
       '';
     };
 
-    prunePaths = mkOption {
-      type = listOf path;
+    prunePaths = lib.mkOption {
+      type = lib.types.listOf lib.types.path;
       default = [
         "/tmp"
         "/var/tmp"
@@ -175,10 +173,10 @@ in
       '';
     };
 
-    pruneNames = mkOption {
-      type = listOf str;
+    pruneNames = lib.mkOption {
+      type = lib.types.listOf lib.types.str;
       default = lib.optionals (!isFindutils) [ ".bzr" ".cache" ".git" ".hg" ".svn" ];
-      defaultText = literalMD ''
+      defaultText = lib.literalMD ''
         `[ ".bzr" ".cache" ".git" ".hg" ".svn" ]`, if
         supported by the locate implementation (i.e. mlocate or plocate).
       '';
@@ -187,8 +185,8 @@ in
       '';
     };
 
-    pruneBindMounts = mkOption {
-      type = bool;
+    pruneBindMounts = lib.mkOption {
+      type = lib.types.bool;
       default = false;
       description = ''
         Whether not to index bind mounts
@@ -197,10 +195,10 @@ in
 
   };
 
-  config = mkIf cfg.enable {
-    users.groups = mkMerge [
-      (mkIf isMLocate { mlocate = { }; })
-      (mkIf isPLocate { plocate = { }; })
+  config = lib.mkIf cfg.enable {
+    users.groups = lib.mkMerge [
+      (lib.mkIf isMLocate { mlocate = { }; })
+      (lib.mkIf isPLocate { plocate = { }; })
     ];
 
     security.wrappers =
@@ -211,46 +209,46 @@ in
           setgid = true;
           setuid = false;
         };
-        mlocate = mkIf isMLocate {
+        mlocate = lib.mkIf isMLocate {
           group = "mlocate";
           source = "${cfg.package}/bin/locate";
         };
-        plocate = mkIf isPLocate {
+        plocate = lib.mkIf isPLocate {
           group = "plocate";
           source = "${cfg.package}/bin/plocate";
         };
       in
-      mkIf isMorPLocate {
-        locate = mkMerge [ common mlocate plocate ];
-        plocate = mkIf isPLocate (mkMerge [ common plocate ]);
+      lib.mkIf isMorPLocate {
+        locate = lib.mkMerge [ common mlocate plocate ];
+        plocate = lib.mkIf isPLocate (lib.mkMerge [ common plocate ]);
       };
 
-    environment.systemPackages = [ cfg.package ];
+    environment = {
+      # write /etc/updatedb.conf for manual calls to `updatedb`
+      etc."updatedb.conf".text = ''
+        PRUNEFS="${lib.concatStringsSep " " cfg.pruneFS}"
+        PRUNENAMES="${lib.concatStringsSep " " cfg.pruneNames}"
+        PRUNEPATHS="${lib.concatStringsSep " " cfg.prunePaths}"
+        PRUNE_BIND_MOUNTS="${if cfg.pruneBindMounts then "yes" else "no"}"
+      '';
 
-    environment.variables.LOCATE_PATH = cfg.output;
+      systemPackages = [ cfg.package ];
 
-    environment.etc = {
-      # write /etc/updatedb.conf for manual calls to `updatedb`
-      "updatedb.conf" = {
-        text = ''
-          PRUNEFS="${lib.concatStringsSep " " cfg.pruneFS}"
-          PRUNENAMES="${lib.concatStringsSep " " cfg.pruneNames}"
-          PRUNEPATHS="${lib.concatStringsSep " " cfg.prunePaths}"
-          PRUNE_BIND_MOUNTS="${if cfg.pruneBindMounts then "yes" else "no"}"
-        '';
+      variables = lib.mkIf isFindutils {
+        LOCATE_PATH = cfg.output;
       };
     };
 
-    warnings = optional (isMorPLocate && cfg.localuser != null)
+    warnings = lib.optional (isMorPLocate && cfg.localuser != null)
       "mlocate and plocate do not support the services.locate.localuser option. updatedb will run as root. Silence this warning by setting services.locate.localuser = null."
-    ++ optional (isFindutils && cfg.pruneNames != [ ])
+    ++ lib.optional (isFindutils && cfg.pruneNames != [ ])
       "findutils locate does not support pruning by directory component"
-    ++ optional (isFindutils && cfg.pruneBindMounts)
+    ++ lib.optional (isFindutils && cfg.pruneBindMounts)
       "findutils locate does not support skipping bind mounts";
 
     systemd.services.update-locatedb = {
       description = "Update Locate Database";
-      path = mkIf (!isMorPLocate) [ pkgs.su ];
+      path = lib.mkIf (!isMorPLocate) [ pkgs.su ];
 
       # mlocate's updatedb takes flags via a configuration file or
       # on the command line, but not by environment variable.
@@ -258,42 +256,44 @@ in
         if isMorPLocate then
           let
             toFlags = x:
-              optional (cfg.${x} != [ ])
-                "--${lib.toLower x} '${concatStringsSep " " cfg.${x}}'";
-            args = concatLists (map toFlags [ "pruneFS" "pruneNames" "prunePaths" ]);
+              lib.optional (cfg.${x} != [ ])
+                "--${lib.toLower x} '${lib.concatStringsSep " " cfg.${x}}'";
+            args = lib.concatLists (map toFlags [ "pruneFS" "pruneNames" "prunePaths" ]);
           in
           ''
             exec ${cfg.package}/bin/updatedb \
-              --output ${toString cfg.output} ${concatStringsSep " " args} \
+              --output ${toString cfg.output} ${lib.concatStringsSep " " args} \
               --prune-bind-mounts ${if cfg.pruneBindMounts then "yes" else "no"} \
-              ${concatStringsSep " " cfg.extraFlags}
+              ${lib.concatStringsSep " " cfg.extraFlags}
           ''
         else ''
           exec ${cfg.package}/bin/updatedb \
-            ${optionalString (cfg.localuser != null && !isMorPLocate) "--localuser=${cfg.localuser}"} \
-            --output=${toString cfg.output} ${concatStringsSep " " cfg.extraFlags}
+            ${lib.optionalString (cfg.localuser != null && !isMorPLocate) "--localuser=${cfg.localuser}"} \
+            --output=${toString cfg.output} ${lib.concatStringsSep " " cfg.extraFlags}
         '';
-      environment = optionalAttrs (!isMorPLocate) {
-        PRUNEFS = concatStringsSep " " cfg.pruneFS;
-        PRUNEPATHS = concatStringsSep " " cfg.prunePaths;
-        PRUNENAMES = concatStringsSep " " cfg.pruneNames;
+      environment = lib.optionalAttrs (!isMorPLocate) {
+        PRUNEFS = lib.concatStringsSep " " cfg.pruneFS;
+        PRUNEPATHS = lib.concatStringsSep " " cfg.prunePaths;
+        PRUNENAMES = lib.concatStringsSep " " cfg.pruneNames;
         PRUNE_BIND_MOUNTS = if cfg.pruneBindMounts then "yes" else "no";
       };
-      serviceConfig.Nice = 19;
-      serviceConfig.IOSchedulingClass = "idle";
-      serviceConfig.PrivateTmp = "yes";
-      serviceConfig.PrivateNetwork = "yes";
-      serviceConfig.NoNewPrivileges = "yes";
-      serviceConfig.ReadOnlyPaths = "/";
-      # Use dirOf cfg.output because mlocate creates temporary files next to
-      # the actual database. We could specify and create them as well,
-      # but that would make this quite brittle when they change something.
-      # NOTE: If /var/cache does not exist, this leads to the misleading error message:
-      # update-locatedb.service: Failed at step NAMESPACE spawning …/update-locatedb-start: No such file or directory
-      serviceConfig.ReadWritePaths = dirOf cfg.output;
+      serviceConfig = {
+        Nice = 19;
+        IOSchedulingClass = "idle";
+        PrivateTmp = "yes";
+        PrivateNetwork = "yes";
+        NoNewPrivileges = "yes";
+        ReadOnlyPaths = "/";
+        # Use dirOf cfg.output because mlocate creates temporary files next to
+        # the actual database. We could specify and create them as well,
+        # but that would make this quite brittle when they change something.
+        # NOTE: If /var/cache does not exist, this leads to the misleading error message:
+        # update-locatedb.service: Failed at step NAMESPACE spawning …/update-locatedb-start: No such file or directory
+        ReadWritePaths = dirOf cfg.output;
+      };
     };
 
-    systemd.timers.update-locatedb = mkIf (cfg.interval != "never") {
+    systemd.timers.update-locatedb = lib.mkIf (cfg.interval != "never") {
       description = "Update timer for locate database";
       partOf = [ "update-locatedb.service" ];
       wantedBy = [ "timers.target" ];
diff --git a/nixos/modules/misc/version.nix b/nixos/modules/misc/version.nix
index 29e9498018ec9..db917f73a0645 100644
--- a/nixos/modules/misc/version.nix
+++ b/nixos/modules/misc/version.nix
@@ -121,7 +121,7 @@ in
     image = {
 
       id = lib.mkOption {
-        type = types.nullOr (types.strMatching "^[a-z0-9._-]+$");
+        type = types.nullOr types.str;
         default = null;
         description = ''
           Image identifier.
@@ -135,7 +135,7 @@ in
       };
 
       version = lib.mkOption {
-        type = types.nullOr (types.strMatching "^[a-z0-9._-~^]+$");
+        type = types.nullOr types.str;
         default = null;
         description = ''
           Image version.
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 70482bffed56e..d412e414f68b5 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -67,6 +67,7 @@
   ./hardware/gkraken.nix
   ./hardware/glasgow.nix
   ./hardware/gpgsmartcards.nix
+  ./hardware/graphics.nix
   ./hardware/hackrf.nix
   ./hardware/i2c.nix
   ./hardware/infiniband.nix
@@ -84,7 +85,6 @@
   ./hardware/new-lg4ff.nix
   ./hardware/nitrokey.nix
   ./hardware/onlykey/default.nix
-  ./hardware/opengl.nix
   ./hardware/openrazer.nix
   ./hardware/opentabletdriver.nix
   ./hardware/pcmcia.nix
@@ -103,7 +103,6 @@
   ./hardware/uni-sync.nix
   ./hardware/usb-modeswitch.nix
   ./hardware/usb-storage.nix
-  ./hardware/video/amdgpu-pro.nix
   ./hardware/video/bumblebee.nix
   ./hardware/video/capture/mwprocapture.nix
   ./hardware/video/displaylink.nix
@@ -111,6 +110,7 @@
   ./hardware/video/nvidia.nix
   ./hardware/video/switcheroo-control.nix
   ./hardware/video/uvcvideo/default.nix
+  ./hardware/video/virtualbox.nix
   ./hardware/video/webcam/facetimehd.nix
   ./hardware/video/webcam/ipu6.nix
   ./hardware/wooting.nix
@@ -196,6 +196,7 @@
   ./programs/fzf.nix
   ./programs/gamemode.nix
   ./programs/gamescope.nix
+  ./programs/gdk-pixbuf.nix
   ./programs/geary.nix
   ./programs/git.nix
   ./programs/gnome-disks.nix
@@ -218,6 +219,7 @@
   ./programs/kbdlight.nix
   ./programs/kclock.nix
   ./programs/kdeconnect.nix
+  ./programs/ladybird.nix
   ./programs/lazygit.nix
   ./programs/kubeswitch.nix
   ./programs/less.nix
@@ -249,7 +251,6 @@
   ./programs/oblogout.nix
   ./programs/oddjobd.nix
   ./programs/openvpn3.nix
-  ./programs/pantheon-tweaks.nix
   ./programs/partition-manager.nix
   ./programs/plotinus.nix
   ./programs/pqos-wrapper.nix
@@ -282,6 +283,7 @@
   ./programs/systemtap.nix
   ./programs/thefuck.nix
   ./programs/thunar.nix
+  ./programs/thunderbird.nix
   ./programs/tmux.nix
   ./programs/traceroute.nix
   ./programs/trippy.nix
@@ -293,6 +295,7 @@
   ./programs/virt-manager.nix
   ./programs/wavemon.nix
   ./programs/wayland/cardboard.nix
+  ./programs/wayland/hyprlock.nix
   ./programs/wayland/hyprland.nix
   ./programs/wayland/labwc.nix
   ./programs/wayland/river.nix
@@ -418,6 +421,7 @@
   ./services/cluster/kubernetes/scheduler.nix
   ./services/cluster/pacemaker/default.nix
   ./services/cluster/patroni/default.nix
+  ./services/cluster/rke2/default.nix
   ./services/cluster/spark/default.nix
   ./services/computing/boinc/client.nix
   ./services/computing/foldingathome/client.nix
@@ -545,6 +549,8 @@
   ./services/games/xonotic.nix
   ./services/hardware/acpid.nix
   ./services/hardware/actkbd.nix
+  ./services/hardware/amdgpu.nix
+  ./services/hardware/amdvlk.nix
   ./services/hardware/argonone.nix
   ./services/hardware/asusd.nix
   ./services/hardware/auto-cpufreq.nix
@@ -768,12 +774,14 @@
   ./services/misc/octoprint.nix
   ./services/misc/ollama.nix
   ./services/misc/ombi.nix
+  ./services/misc/open-webui.nix
   ./services/misc/osrm.nix
   ./services/misc/owncast.nix
   ./services/misc/packagekit.nix
   ./services/misc/paperless.nix
   ./services/misc/parsoid.nix
   ./services/misc/persistent-evdev.nix
+  ./services/misc/pghero.nix
   ./services/misc/pinnwand.nix
   ./services/misc/plex.nix
   ./services/misc/plikd.nix
@@ -788,6 +796,7 @@
   ./services/misc/radarr.nix
   ./services/misc/readarr.nix
   ./services/misc/redmine.nix
+  ./services/misc/renovate.nix
   ./services/misc/ripple-data-api.nix
   ./services/misc/rippled.nix
   ./services/misc/rmfakecloud.nix
@@ -830,6 +839,7 @@
   ./services/misc/zoneminder.nix
   ./services/misc/zookeeper.nix
   ./services/monitoring/alerta.nix
+  ./services/monitoring/alloy.nix
   ./services/monitoring/apcupsd.nix
   ./services/monitoring/arbtt.nix
   ./services/monitoring/below.nix
@@ -1109,6 +1119,7 @@
   ./services/networking/ocserv.nix
   ./services/networking/ofono.nix
   ./services/networking/oidentd.nix
+  ./services/networking/oink.nix
   ./services/networking/onedrive.nix
   ./services/networking/openconnect.nix
   ./services/networking/openvpn.nix
@@ -1243,6 +1254,7 @@
   ./services/search/meilisearch.nix
   ./services/search/opensearch.nix
   ./services/search/qdrant.nix
+  ./services/search/quickwit.nix
   ./services/search/sonic-server.nix
   ./services/search/typesense.nix
   ./services/security/aesmd.nix
@@ -1305,6 +1317,7 @@
   ./services/system/zram-generator.nix
   ./services/torrent/deluge.nix
   ./services/torrent/flexget.nix
+  ./services/torrent/flood.nix
   ./services/torrent/magnetico.nix
   ./services/torrent/opentracker.nix
   ./services/torrent/peerflix.nix
@@ -1325,6 +1338,7 @@
   ./services/video/unifi-video.nix
   ./services/video/v4l2-relayd.nix
   ./services/wayland/cage.nix
+  ./services/wayland/hypridle.nix
   ./services/web-apps/akkoma.nix
   ./services/web-apps/alps.nix
   ./services/web-apps/anuko-time-tracker.nix
@@ -1399,6 +1413,7 @@
   ./services/web-apps/netbox.nix
   ./services/web-apps/nextcloud.nix
   ./services/web-apps/nextcloud-notify_push.nix
+  ./services/web-apps/nextjs-ollama-llm-ui.nix
   ./services/web-apps/nexus.nix
   ./services/web-apps/nifi.nix
   ./services/web-apps/node-red.nix
@@ -1489,7 +1504,6 @@
   ./services/x11/display-managers/xpra.nix
   ./services/x11/extra-layouts.nix
   ./services/x11/fractalart.nix
-  ./services/x11/gdk-pixbuf.nix
   ./services/x11/hardware/cmt.nix
   ./services/x11/hardware/digimend.nix
   ./services/x11/hardware/synaptics.nix
diff --git a/nixos/modules/programs/bash/bash-completion.nix b/nixos/modules/programs/bash/bash-completion.nix
index c973d36fdfbf0..f143361bc9331 100644
--- a/nixos/modules/programs/bash/bash-completion.nix
+++ b/nixos/modules/programs/bash/bash-completion.nix
@@ -1,16 +1,22 @@
 { config, lib, pkgs, ... }:
 
 let
-  enable = config.programs.bash.enableCompletion;
+  cfg = config.programs.bash;
 in
 {
-  options = {
-    programs.bash.enableCompletion = lib.mkEnableOption "Bash completion for all interactive bash shells" // {
+  options.programs.bash.completion = {
+    enable = lib.mkEnableOption "Bash completion for all interactive bash shells" // {
       default = true;
     };
+
+    package = lib.mkPackageOption pkgs "bash-completion" { };
   };
 
-  config = lib.mkIf enable {
+  imports = [
+    (lib.mkRenamedOptionModule [ "programs" "bash" "enableCompletion" ] [ "programs" "bash" "completion" "enable" ])
+  ];
+
+  config = lib.mkIf cfg.completion.enable {
     programs.bash.promptPluginInit = ''
       # Check whether we're running a version of Bash that has support for
       # programmable completion. If we do, enable all modules installed in
@@ -19,7 +25,7 @@ in
       # $XDG_DATA_DIRS/bash-completion/completions/
       # on demand, so they do not need to be sourced here.
       if shopt -q progcomp &>/dev/null; then
-        . "${pkgs.bash-completion}/etc/profile.d/bash_completion.sh"
+        . "${cfg.completion.package}/etc/profile.d/bash_completion.sh"
         nullglobStatus=$(shopt -p nullglob)
         shopt -s nullglob
         for p in $NIX_PROFILES; do
diff --git a/nixos/modules/programs/bash/bash.nix b/nixos/modules/programs/bash/bash.nix
index 0f8c40da801b6..4c06f0aad9f81 100644
--- a/nixos/modules/programs/bash/bash.nix
+++ b/nixos/modules/programs/bash/bash.nix
@@ -198,7 +198,7 @@ in
 
     users.defaultUserShell = lib.mkDefault pkgs.bashInteractive;
 
-    environment.pathsToLink = lib.optionals cfg.enableCompletion [
+    environment.pathsToLink = lib.optionals cfg.completion.enable [
       "/etc/bash_completion.d"
       "/share/bash-completion"
     ];
diff --git a/nixos/modules/programs/coolercontrol.nix b/nixos/modules/programs/coolercontrol.nix
index 8c9a39d2eba99..1c64d46ae2b90 100644
--- a/nixos/modules/programs/coolercontrol.nix
+++ b/nixos/modules/programs/coolercontrol.nix
@@ -48,9 +48,11 @@ in
 
     # Nvidia support
     (lib.mkIf cfg.nvidiaSupport {
-      systemd.services.coolercontrold.path = with config.boot.kernelPackages; [
-        nvidia_x11 # nvidia-smi
-        nvidia_x11.settings # nvidia-settings
+      systemd.services.coolercontrold.path = let
+        nvidiaPkg = config.hardware.nvidia.package;
+      in [
+        nvidiaPkg # nvidia-smi
+        nvidiaPkg.settings # nvidia-settings
       ];
     })
   ]);
diff --git a/nixos/modules/programs/fzf.nix b/nixos/modules/programs/fzf.nix
index 66ad7d418de68..b9258ab1e5052 100644
--- a/nixos/modules/programs/fzf.nix
+++ b/nixos/modules/programs/fzf.nix
@@ -15,7 +15,7 @@ in
     environment.systemPackages = lib.mkIf (cfg.keybindings || cfg.fuzzyCompletion) [ pkgs.fzf ];
 
     programs = {
-      # load after programs.bash.enableCompletion
+      # load after programs.bash.completion.enable
       bash.promptPluginInit = lib.mkAfter (lib.optionalString cfg.fuzzyCompletion ''
         source ${pkgs.fzf}/share/fzf/completion.bash
       '' + lib.optionalString cfg.keybindings ''
diff --git a/nixos/modules/services/x11/gdk-pixbuf.nix b/nixos/modules/programs/gdk-pixbuf.nix
index 9e89d9f96c4af..f96259ccd2c78 100644
--- a/nixos/modules/services/x11/gdk-pixbuf.nix
+++ b/nixos/modules/programs/gdk-pixbuf.nix
@@ -1,16 +1,20 @@
 { config, lib, pkgs, ... }:
 
 let
-  cfg = config.services.xserver.gdk-pixbuf;
+  cfg = config.programs.gdk-pixbuf;
 
   loadersCache = pkgs.gnome._gdkPixbufCacheBuilder_DO_NOT_USE {
-    extraLoaders = lib.unique (cfg.modulePackages);
+    extraLoaders = lib.unique cfg.modulePackages;
   };
 in
 
 {
+  imports = [
+    (lib.mkRenamedOptionModule [ "services" "xserver" "gdk-pixbuf" ] [ "programs" "gdk-pixbuf" ])
+  ];
+
   options = {
-    services.xserver.gdk-pixbuf.modulePackages = lib.mkOption {
+    programs.gdk-pixbuf.modulePackages = lib.mkOption {
       type = lib.types.listOf lib.types.package;
       default = [ ];
       description = "Packages providing GDK-Pixbuf modules, for cache generation.";
@@ -22,7 +26,7 @@ in
   # GDK_PIXBUF_MODULE_FILE to point to it.
   config = lib.mkIf (cfg.modulePackages != []) {
     environment.sessionVariables = {
-      GDK_PIXBUF_MODULE_FILE = "${loadersCache}";
+      GDK_PIXBUF_MODULE_FILE = loadersCache;
     };
   };
 }
diff --git a/nixos/modules/programs/kubeswitch.nix b/nixos/modules/programs/kubeswitch.nix
index 304df48e3c11a..9348540022f23 100644
--- a/nixos/modules/programs/kubeswitch.nix
+++ b/nixos/modules/programs/kubeswitch.nix
@@ -29,17 +29,13 @@ in
 
   config =
     let
-      shell_files = pkgs.stdenv.mkDerivation rec {
-        name = "kubeswitch-shell-files";
-        phases = [ "installPhase" ];
-        installPhase = ''
-          mkdir -p $out/share
-          for shell in bash zsh; do
-            ${cfg.package}/bin/switcher init $shell | sed 's/switch(/${cfg.commandName}(/' > $out/share/${cfg.commandName}_init.$shell
-            ${cfg.package}/bin/switcher --cmd ${cfg.commandName} completion $shell > $out/share/${cfg.commandName}_completion.$shell
-          done
-        '';
-      };
+      shell_files = pkgs.runCommand "kubeswitch-shell-files" {} ''
+        mkdir -p $out/share
+        for shell in bash zsh; do
+          ${cfg.package}/bin/switcher init $shell | sed 's/switch(/${cfg.commandName}(/' > $out/share/${cfg.commandName}_init.$shell
+          ${cfg.package}/bin/switcher --cmd ${cfg.commandName} completion $shell > $out/share/${cfg.commandName}_completion.$shell
+        done
+      '';
     in
     lib.mkIf cfg.enable {
       environment.systemPackages = [ cfg.package ];
diff --git a/nixos/modules/programs/ladybird.nix b/nixos/modules/programs/ladybird.nix
new file mode 100644
index 0000000000000..43bfe445ef58e
--- /dev/null
+++ b/nixos/modules/programs/ladybird.nix
@@ -0,0 +1,14 @@
+{ config, pkgs, lib, ... }:
+
+let
+  cfg = config.programs.ladybird;
+in {
+  options = {
+    programs.ladybird.enable = lib.mkEnableOption "the Ladybird web browser";
+  };
+
+  config = lib.mkIf cfg.enable {
+    environment.systemPackages = [ pkgs.ladybird ];
+    fonts.fontDir.enable = true;
+  };
+}
diff --git a/nixos/modules/programs/less.nix b/nixos/modules/programs/less.nix
index c904fc2089aa3..50ea1586f6880 100644
--- a/nixos/modules/programs/less.nix
+++ b/nixos/modules/programs/less.nix
@@ -35,6 +35,8 @@ in
       # therefore also enables this module
       enable = lib.mkEnableOption "less, a file pager";
 
+      package = lib.mkPackageOption pkgs "less" { };
+
       configFile = lib.mkOption {
         type = lib.types.nullOr lib.types.path;
         default = null;
@@ -110,7 +112,7 @@ in
 
   config = lib.mkIf cfg.enable {
 
-    environment.systemPackages = [ pkgs.less ];
+    environment.systemPackages = [ cfg.package ];
 
     environment.variables = {
       LESSKEYIN_SYSTEM = builtins.toString lessKey;
diff --git a/nixos/modules/programs/miriway.nix b/nixos/modules/programs/miriway.nix
index 00c1356ab0836..418bb3dc4f2dd 100644
--- a/nixos/modules/programs/miriway.nix
+++ b/nixos/modules/programs/miriway.nix
@@ -65,7 +65,7 @@ in {
       };
     };
 
-    hardware.opengl.enable = lib.mkDefault true;
+    hardware.graphics.enable = lib.mkDefault true;
     fonts.enableDefaultPackages = lib.mkDefault true;
     programs.dconf.enable = lib.mkDefault true;
     programs.xwayland.enable = lib.mkDefault true;
diff --git a/nixos/modules/programs/pantheon-tweaks.nix b/nixos/modules/programs/pantheon-tweaks.nix
deleted file mode 100644
index b7258e2eb4bfe..0000000000000
--- a/nixos/modules/programs/pantheon-tweaks.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-{
-  meta = {
-    maintainers = lib.teams.pantheon.members;
-  };
-
-  ###### interface
-  options = {
-    programs.pantheon-tweaks.enable = lib.mkEnableOption "Pantheon Tweaks, an unofficial system settings panel for Pantheon";
-  };
-
-  ###### implementation
-  config = lib.mkIf config.programs.pantheon-tweaks.enable {
-    services.xserver.desktopManager.pantheon.extraSwitchboardPlugs = [ pkgs.pantheon-tweaks ];
-  };
-}
diff --git a/nixos/modules/programs/shadow.nix b/nixos/modules/programs/shadow.nix
index f09bfaa5393d7..ef5bad69e934e 100644
--- a/nixos/modules/programs/shadow.nix
+++ b/nixos/modules/programs/shadow.nix
@@ -4,7 +4,18 @@ let
   cfg = config.security.loginDefs;
 in
 {
-  options = with lib.types; {
+  options = {
+
+    security.shadow.enable = lib.mkEnableOption "" // {
+      default = true;
+      description = ''
+        Enable the shadow authentication suite, which provides critical programs such as su, login, passwd.
+
+        Note: This is currently experimental. Only disable this if you're
+        confident that you can recover your system if it breaks.
+      '';
+    };
+
     security.loginDefs = {
       package = lib.mkPackageOption pkgs "shadow" { };
 
@@ -12,7 +23,7 @@ in
         description = ''
           Use chfn SUID to allow non-root users to change their account GECOS information.
         '';
-        type = nullOr str;
+        type = lib.types.nullOr lib.types.str;
         default = null;
       };
 
@@ -22,7 +33,7 @@ in
           the site-specific configuration for the shadow password suite.
           See login.defs(5) man page for available options.
         '';
-        type = submodule {
+        type = lib.types.submodule {
           freeformType = (pkgs.formats.keyValue { }).type;
           /* There are three different sources for user/group id ranges, each of which gets
              used by different programs:
@@ -37,62 +48,62 @@ in
             DEFAULT_HOME = lib.mkOption {
               description = "Indicate if login is allowed if we can't cd to the home directory.";
               default = "yes";
-              type = enum [ "yes" "no" ];
+              type = lib.types.enum [ "yes" "no" ];
             };
 
             ENCRYPT_METHOD = lib.mkOption {
               description = "This defines the system default encryption algorithm for encrypting passwords.";
               # The default crypt() method, keep in sync with the PAM default
               default = "YESCRYPT";
-              type = enum [ "YESCRYPT" "SHA512" "SHA256" "MD5" "DES"];
+              type = lib.types.enum [ "YESCRYPT" "SHA512" "SHA256" "MD5" "DES"];
             };
 
             SYS_UID_MIN = lib.mkOption {
               description = "Range of user IDs used for the creation of system users by useradd or newusers.";
               default = 400;
-              type = int;
+              type = lib.types.int;
             };
 
             SYS_UID_MAX = lib.mkOption {
               description = "Range of user IDs used for the creation of system users by useradd or newusers.";
               default = 999;
-              type = int;
+              type = lib.types.int;
             };
 
             UID_MIN = lib.mkOption {
               description = "Range of user IDs used for the creation of regular users by useradd or newusers.";
               default = 1000;
-              type = int;
+              type = lib.types.int;
             };
 
             UID_MAX = lib.mkOption {
               description = "Range of user IDs used for the creation of regular users by useradd or newusers.";
               default = 29999;
-              type = int;
+              type = lib.types.int;
             };
 
             SYS_GID_MIN = lib.mkOption {
               description = "Range of group IDs used for the creation of system groups by useradd, groupadd, or newusers";
               default = 400;
-              type = int;
+              type = lib.types.int;
             };
 
             SYS_GID_MAX = lib.mkOption {
               description = "Range of group IDs used for the creation of system groups by useradd, groupadd, or newusers";
               default = 999;
-              type = int;
+              type = lib.types.int;
             };
 
             GID_MIN = lib.mkOption {
               description = "Range of group IDs used for the creation of regular groups by useradd, groupadd, or newusers.";
               default = 1000;
-              type = int;
+              type = lib.types.int;
             };
 
             GID_MAX = lib.mkOption {
               description = "Range of group IDs used for the creation of regular groups by useradd, groupadd, or newusers.";
               default = 29999;
-              type = int;
+              type = lib.types.int;
             };
 
             TTYGROUP = lib.mkOption {
@@ -100,7 +111,7 @@ in
                 The terminal permissions: the login tty will be owned by the TTYGROUP group,
                 and the permissions will be set to TTYPERM'';
               default = "tty";
-              type = str;
+              type = lib.types.str;
             };
 
             TTYPERM = lib.mkOption {
@@ -108,14 +119,14 @@ in
                 The terminal permissions: the login tty will be owned by the TTYGROUP group,
                 and the permissions will be set to TTYPERM'';
               default = "0620";
-              type = str;
+              type = lib.types.str;
             };
 
             # Ensure privacy for newly created home directories.
             UMASK = lib.mkOption {
               description = "The file mode creation mask is initialized to this value.";
               default = "077";
-              type = str;
+              type = lib.types.str;
             };
           };
         };
@@ -132,107 +143,115 @@ in
         used outside the store (in particular in /etc/passwd).
       '';
       example = lib.literalExpression "pkgs.zsh";
-      type = either path shellPackage;
+      type = lib.types.either lib.types.path lib.types.shellPackage;
     };
   };
 
   ###### implementation
 
-  config = {
-    assertions = [
-      {
-        assertion = cfg.settings.SYS_UID_MIN <= cfg.settings.SYS_UID_MAX;
-        message = "SYS_UID_MIN must be less than or equal to SYS_UID_MAX";
-      }
-      {
-        assertion = cfg.settings.UID_MIN <= cfg.settings.UID_MAX;
-        message = "UID_MIN must be less than or equal to UID_MAX";
-      }
-      {
-        assertion = cfg.settings.SYS_GID_MIN <= cfg.settings.SYS_GID_MAX;
-        message = "SYS_GID_MIN must be less than or equal to SYS_GID_MAX";
-      }
-      {
-        assertion = cfg.settings.GID_MIN <= cfg.settings.GID_MAX;
-        message = "GID_MIN must be less than or equal to GID_MAX";
-      }
-    ];
-
-    security.loginDefs.settings.CHFN_RESTRICT =
-      lib.mkIf (cfg.chfnRestrict != null) cfg.chfnRestrict;
-
-    environment.systemPackages = lib.optional config.users.mutableUsers cfg.package
-      ++ lib.optional (lib.types.shellPackage.check config.users.defaultUserShell) config.users.defaultUserShell
-      ++ lib.optional (cfg.chfnRestrict != null) pkgs.util-linux;
-
-    environment.etc =
-      # Create custom toKeyValue generator
-      # see https://man7.org/linux/man-pages/man5/login.defs.5.html for config specification
-      let
-        toKeyValue = lib.generators.toKeyValue {
-          mkKeyValue = lib.generators.mkKeyValueDefault { } " ";
-        };
-      in
-      {
-        # /etc/login.defs: global configuration for pwdutils.
-        # You cannot login without it!
-        "login.defs".source = pkgs.writeText "login.defs" (toKeyValue cfg.settings);
-
-        # /etc/default/useradd: configuration for useradd.
-        "default/useradd".source = pkgs.writeText "useradd" ''
-          GROUP=100
-          HOME=/home
-          SHELL=${utils.toShellPath config.users.defaultUserShell}
-        '';
-      };
+  config = lib.mkMerge [
+    {
+      assertions = [
+        {
+          assertion = config.security.shadow.enable || config.services.greetd.enable;
+          message = "You must enable at least one VT login method, either security.shadow.enable or services.greetd.enable";
+        }
+      ];
+    }
+    (lib.mkIf config.security.shadow.enable {
+      assertions = [
+        {
+          assertion = cfg.settings.SYS_UID_MIN <= cfg.settings.SYS_UID_MAX;
+          message = "SYS_UID_MIN must be less than or equal to SYS_UID_MAX";
+        }
+        {
+          assertion = cfg.settings.UID_MIN <= cfg.settings.UID_MAX;
+          message = "UID_MIN must be less than or equal to UID_MAX";
+        }
+        {
+          assertion = cfg.settings.SYS_GID_MIN <= cfg.settings.SYS_GID_MAX;
+          message = "SYS_GID_MIN must be less than or equal to SYS_GID_MAX";
+        }
+        {
+          assertion = cfg.settings.GID_MIN <= cfg.settings.GID_MAX;
+          message = "GID_MIN must be less than or equal to GID_MAX";
+        }
+      ];
 
-    security.pam.services = {
-      chsh = { rootOK = true; };
-      chfn = { rootOK = true; };
-      su = {
-        rootOK = true;
-        forwardXAuth = true;
-        logFailures = true;
-      };
-      passwd = { };
-      # Note: useradd, groupadd etc. aren't setuid root, so it
-      # doesn't really matter what the PAM config says as long as it
-      # lets root in.
-      useradd.rootOK = true;
-      usermod.rootOK = true;
-      userdel.rootOK = true;
-      groupadd.rootOK = true;
-      groupmod.rootOK = true;
-      groupmems.rootOK = true;
-      groupdel.rootOK = true;
-      login = {
-        startSession = true;
-        allowNullPassword = true;
-        showMotd = true;
-        updateWtmp = true;
-      };
-      chpasswd = { rootOK = true; };
-    };
+      security.loginDefs.settings.CHFN_RESTRICT = lib.mkIf (cfg.chfnRestrict != null) cfg.chfnRestrict;
+
+      environment.systemPackages = lib.optional config.users.mutableUsers cfg.package
+        ++ lib.optional (lib.types.shellPackage.check config.users.defaultUserShell) config.users.defaultUserShell
+        ++ lib.optional (cfg.chfnRestrict != null) pkgs.util-linux;
+
+      environment.etc =
+        # Create custom toKeyValue generator
+        # see https://man7.org/linux/man-pages/man5/login.defs.5.html for config specification
+        let
+          toKeyValue = lib.generators.toKeyValue {
+            mkKeyValue = lib.generators.mkKeyValueDefault { } " ";
+          };
+        in {
+          # /etc/login.defs: global configuration for pwdutils.
+          # You cannot login without it!
+          "login.defs".source = pkgs.writeText "login.defs" (toKeyValue cfg.settings);
+
+          # /etc/default/useradd: configuration for useradd.
+          "default/useradd".source = pkgs.writeText "useradd" ''
+            GROUP=100
+            HOME=/home
+            SHELL=${utils.toShellPath config.users.defaultUserShell}
+          '';
+        };
 
-    security.wrappers =
-      let
-        mkSetuidRoot = source: {
-          setuid = true;
-          owner = "root";
-          group = "root";
-          inherit source;
+      security.pam.services = {
+        chsh.rootOK = true;
+        chfn.rootOK = true;
+        su = {
+          rootOK = true;
+          forwardXAuth = true;
+          logFailures = true;
         };
-      in
-      {
-        su = mkSetuidRoot "${cfg.package.su}/bin/su";
-        sg = mkSetuidRoot "${cfg.package.out}/bin/sg";
-        newgrp = mkSetuidRoot "${cfg.package.out}/bin/newgrp";
-        newuidmap = mkSetuidRoot "${cfg.package.out}/bin/newuidmap";
-        newgidmap = mkSetuidRoot "${cfg.package.out}/bin/newgidmap";
-      }
-      // lib.optionalAttrs config.users.mutableUsers {
-        chsh = mkSetuidRoot "${cfg.package.out}/bin/chsh";
-        passwd = mkSetuidRoot "${cfg.package.out}/bin/passwd";
+        passwd = { };
+        # Note: useradd, groupadd etc. aren't setuid root, so it
+        # doesn't really matter what the PAM config says as long as it
+        # lets root in.
+        useradd.rootOK = true;
+        usermod.rootOK = true;
+        userdel.rootOK = true;
+        groupadd.rootOK = true;
+        groupmod.rootOK = true;
+        groupmems.rootOK = true;
+        groupdel.rootOK = true;
+        login = {
+          startSession = true;
+          allowNullPassword = true;
+          showMotd = true;
+          updateWtmp = true;
+        };
+        chpasswd.rootOK = true;
       };
-  };
+
+      security.wrappers =
+        let
+          mkSetuidRoot = source: {
+            setuid = true;
+            owner = "root";
+            group = "root";
+            inherit source;
+          };
+        in
+          {
+            su = mkSetuidRoot "${cfg.package.su}/bin/su";
+            sg = mkSetuidRoot "${cfg.package.out}/bin/sg";
+            newgrp = mkSetuidRoot "${cfg.package.out}/bin/newgrp";
+            newuidmap = mkSetuidRoot "${cfg.package.out}/bin/newuidmap";
+            newgidmap = mkSetuidRoot "${cfg.package.out}/bin/newgidmap";
+          }
+          // lib.optionalAttrs config.users.mutableUsers {
+            chsh = mkSetuidRoot "${cfg.package.out}/bin/chsh";
+            passwd = mkSetuidRoot "${cfg.package.out}/bin/passwd";
+          };
+    })
+  ];
 }
diff --git a/nixos/modules/programs/steam.nix b/nixos/modules/programs/steam.nix
index d76863aff83be..2ee464dc22d37 100644
--- a/nixos/modules/programs/steam.nix
+++ b/nixos/modules/programs/steam.nix
@@ -4,6 +4,8 @@ let
   cfg = config.programs.steam;
   gamescopeCfg = config.programs.gamescope;
 
+  extraCompatPaths = lib.makeSearchPathOutput "steamcompattool" "" cfg.extraCompatPackages;
+
   steam-gamescope = let
     exports = builtins.attrValues (builtins.mapAttrs (n: v: "export ${n}=${v}") cfg.gamescopeSession.env);
   in
@@ -42,17 +44,18 @@ in {
       '';
       apply = steam: steam.override (prev: {
         extraEnv = (lib.optionalAttrs (cfg.extraCompatPackages != [ ]) {
-          STEAM_EXTRA_COMPAT_TOOLS_PATHS = lib.makeSearchPathOutput "steamcompattool" "" cfg.extraCompatPackages;
+          STEAM_EXTRA_COMPAT_TOOLS_PATHS = extraCompatPaths;
         }) // (lib.optionalAttrs cfg.extest.enable {
           LD_PRELOAD = "${pkgs.pkgsi686Linux.extest}/lib/libextest.so";
         }) // (prev.extraEnv or {});
         extraLibraries = pkgs: let
           prevLibs = if prev ? extraLibraries then prev.extraLibraries pkgs else [ ];
-          additionalLibs = with config.hardware.opengl;
+          additionalLibs = with config.hardware.graphics;
             if pkgs.stdenv.hostPlatform.is64bit
             then [ package ] ++ extraPackages
             else [ package32 ] ++ extraPackages32;
         in prevLibs ++ additionalLibs;
+        extraPkgs = p: (cfg.extraPackages ++ lib.optionals (prev ? extraPkgs) (prev.extraPkgs p));
       } // lib.optionalAttrs (cfg.gamescopeSession.enable && gamescopeCfg.capSysNice)
       {
         buildFHSEnv = pkgs.buildFHSEnv.override {
@@ -69,6 +72,19 @@ in {
       '';
     };
 
+    extraPackages = lib.mkOption {
+      type = lib.types.listOf lib.types.package;
+      default = [ ];
+      example = lib.literalExpression ''
+        with pkgs; [
+          gamescope
+        ]
+      '';
+      description = ''
+        Additional packages to add to the Steam environment.
+      '';
+    };
+
     extraCompatPackages = lib.mkOption {
       type = lib.types.listOf lib.types.package;
       default = [ ];
@@ -86,6 +102,19 @@ in {
       '';
     };
 
+    fontPackages = lib.mkOption {
+      type = lib.types.listOf lib.types.package;
+      # `fonts.packages` is a list of paths now, filter out which are not packages
+      default = builtins.filter lib.types.package.check config.fonts.packages;
+      defaultText = lib.literalExpression "builtins.filter lib.types.package.check config.fonts.packages";
+      example = lib.literalExpression "with pkgs; [ source-han-sans ]";
+      description = ''
+        Font packages to use in Steam.
+
+        Defaults to system fonts, but could be overridden to use other fonts — useful for users who would like to customize CJK fonts used in Steam. According to the [upstream issue](https://github.com/ValveSoftware/steam-for-linux/issues/10422#issuecomment-1944396010), Steam only follows the per-user fontconfig configuration.
+      '';
+    };
+
     remotePlay.openFirewall = lib.mkOption {
       type = lib.types.bool;
       default = false;
@@ -139,13 +168,17 @@ in {
       Load the extest library into Steam, to translate X11 input events to
       uinput events (e.g. for using Steam Input on Wayland)
     '';
+
+    protontricks = {
+      enable = lib.mkEnableOption "protontricks, a simple wrapper for running Winetricks commands for Proton-enabled games";
+      package = lib.mkPackageOption pkgs "protontricks" { };
+    };
   };
 
   config = lib.mkIf cfg.enable {
-    hardware.opengl = { # this fixes the "glXChooseVisual failed" bug, context: https://github.com/NixOS/nixpkgs/issues/47932
+    hardware.graphics = { # this fixes the "glXChooseVisual failed" bug, context: https://github.com/NixOS/nixpkgs/issues/47932
       enable = true;
-      driSupport = true;
-      driSupport32Bit = true;
+      enable32Bit = true;
     };
 
     security.wrappers = lib.mkIf (cfg.gamescopeSession.enable && gamescopeCfg.capSysNice) {
@@ -158,6 +191,8 @@ in {
       };
     };
 
+    programs.steam.extraPackages = cfg.fontPackages;
+
     programs.gamescope.enable = lib.mkDefault cfg.gamescopeSession.enable;
     services.displayManager.sessionPackages = lib.mkIf cfg.gamescopeSession.enable [ gamescopeSessionFile ];
 
@@ -169,7 +204,8 @@ in {
     environment.systemPackages = [
       cfg.package
       cfg.package.run
-    ] ++ lib.optional cfg.gamescopeSession.enable steam-gamescope;
+    ] ++ lib.optional cfg.gamescopeSession.enable steam-gamescope
+    ++ lib.optional cfg.protontricks.enable (cfg.protontricks.package.override { inherit extraCompatPaths; });
 
     networking.firewall = lib.mkMerge [
       (lib.mkIf (cfg.remotePlay.openFirewall || cfg.localNetworkGameTransfers.openFirewall) {
diff --git a/nixos/modules/programs/thunderbird.nix b/nixos/modules/programs/thunderbird.nix
new file mode 100644
index 0000000000000..b15c1df609439
--- /dev/null
+++ b/nixos/modules/programs/thunderbird.nix
@@ -0,0 +1,89 @@
+{
+  pkgs,
+  config,
+  lib,
+  ...
+}:
+let
+  cfg = config.programs.thunderbird;
+  policyFormat = pkgs.formats.json { };
+  policyDoc = "https://github.com/thunderbird/policy-templates";
+in
+{
+  options.programs.thunderbird = {
+    enable = lib.mkEnableOption "Thunderbird mail client";
+
+    package = lib.mkPackageOption pkgs "thunderbird" { };
+
+    policies = lib.mkOption {
+      type = policyFormat.type;
+      default = { };
+      description = ''
+        Group policies to install.
+
+        See [Thunderbird's documentation](${policyDoc})
+        for a list of available options.
+
+        This can be used to install extensions declaratively! Check out the
+        documentation of the `ExtensionSettings` policy for details.
+
+      '';
+    };
+
+    preferences = lib.mkOption {
+      type =
+        with lib.types;
+        attrsOf (oneOf [
+          bool
+          int
+          str
+        ]);
+      default = { };
+      description = ''
+        Preferences to set from `about:config`.
+
+        Some of these might be able to be configured more ergonomically
+        using policies.
+      '';
+    };
+
+    preferencesStatus = lib.mkOption {
+      type = lib.types.enum [
+        "default"
+        "locked"
+        "user"
+        "clear"
+      ];
+      default = "locked";
+      description = ''
+        The status of `thunderbird.preferences`.
+
+        `status` can assume the following values:
+        - `"default"`: Preferences appear as default.
+        - `"locked"`: Preferences appear as default and can't be changed.
+        - `"user"`: Preferences appear as changed.
+        - `"clear"`: Value has no effect. Resets to factory defaults on each startup.
+      '';
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    environment.systemPackages = [ cfg.package ];
+
+    environment.etc =
+      let
+        policiesJSON = policyFormat.generate "thunderbird-policies.json" { inherit (cfg) policies; };
+      in
+      lib.mkIf (cfg.policies != { }) { "thunderbird/policies/policies.json".source = policiesJSON; };
+
+    programs.thunderbird.policies = {
+      DisableAppUpdate = true;
+      Preferences = builtins.mapAttrs (_: value: {
+        Value = value;
+        Status = cfg.preferencesStatus;
+      }) cfg.preferences;
+    };
+  };
+
+  meta.maintainers = with lib.maintainers; [ nydragon ];
+}
diff --git a/nixos/modules/programs/turbovnc.nix b/nixos/modules/programs/turbovnc.nix
index c28b7f7d79910..c7ab18a2e2886 100644
--- a/nixos/modules/programs/turbovnc.nix
+++ b/nixos/modules/programs/turbovnc.nix
@@ -17,7 +17,7 @@ in
           Whether to set up NixOS such that TurboVNC's built-in software OpenGL
           implementation works.
 
-          This will enable {option}`hardware.opengl.enable` so that OpenGL
+          This will enable {option}`hardware.graphics.enable` so that OpenGL
           programs can find Mesa's llvmpipe drivers.
 
           Setting this option to `false` does not mean that software
@@ -46,7 +46,7 @@ in
     # can find the llvmpipe `swrast.so` software rendering DRI lib via `libglvnd`.
     # This comment exists to explain why `hardware.` is involved,
     # even though 100% software rendering is used.
-    hardware.opengl.enable = true;
+    hardware.graphics.enable = true;
 
   };
 }
diff --git a/nixos/modules/programs/wayland/hyprland.nix b/nixos/modules/programs/wayland/hyprland.nix
index c963429f2e2a9..5a21bd153b632 100644
--- a/nixos/modules/programs/wayland/hyprland.nix
+++ b/nixos/modules/programs/wayland/hyprland.nix
@@ -1,46 +1,41 @@
-{ config
-, lib
-, pkgs
-, ...
-}:
+{ config, lib, pkgs, ... }:
+
 let
   cfg = config.programs.hyprland;
 
-  finalPortalPackage = cfg.portalPackage.override {
-    hyprland = cfg.finalPackage;
-  };
+  wayland-lib = import ./lib.nix { inherit lib; };
 in
 {
   options.programs.hyprland = {
-    enable = lib.mkEnableOption null // {
-      description = ''
-        Whether to enable Hyprland, the dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
-
-        You can manually launch Hyprland by executing {command}`Hyprland` on a TTY.
-
-        A configuration file will be generated in {file}`~/.config/hypr/hyprland.conf`.
-        See <https://wiki.hyprland.org> for more information.
+    enable = lib.mkEnableOption ''
+      Hyprland, the dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
+      You can manually launch Hyprland by executing {command}`Hyprland` on a TTY.
+      A configuration file will be generated in {file}`~/.config/hypr/hyprland.conf`.
+      See <https://wiki.hyprland.org> for more information'';
+
+    package = lib.mkPackageOption pkgs "hyprland" {
+      extraDescription = ''
+        If the package is not overridable with `enableXWayland`, then the module option
+        {option}`xwayland` will have no effect.
       '';
-    };
-
-    package = lib.mkPackageOption pkgs "hyprland" { };
-
-    finalPackage = lib.mkOption {
-      type = lib.types.package;
-      readOnly = true;
-      default = cfg.package.override {
+    } // {
+      apply = p: wayland-lib.genFinalPackage p {
         enableXWayland = cfg.xwayland.enable;
       };
-      defaultText = lib.literalExpression
-        "`programs.hyprland.package` with applied configuration";
-      description = ''
-        The Hyprland package after applying configuration.
-      '';
     };
 
-    portalPackage = lib.mkPackageOption pkgs "xdg-desktop-portal-hyprland" { };
+    portalPackage = lib.mkPackageOption pkgs "xdg-desktop-portal-hyprland" {
+      extraDescription = ''
+        If the package is not overridable with `hyprland`, then the Hyprland package
+        used by the portal may differ from the one set in the module option {option}`package`.
+      '';
+    } // {
+      apply = p: wayland-lib.genFinalPackage p {
+        hyprland = cfg.package;
+      };
+    };
 
-    xwayland.enable = lib.mkEnableOption ("XWayland") // { default = true; };
+    xwayland.enable = lib.mkEnableOption "XWayland" // { default = true; };
 
     systemd.setPath.enable = lib.mkEnableOption null // {
       default = true;
@@ -53,33 +48,32 @@ in
     };
   };
 
-  config = lib.mkIf cfg.enable {
-    environment.systemPackages = [ cfg.finalPackage ];
-
-    fonts.enableDefaultPackages = lib.mkDefault true;
-    hardware.opengl.enable = lib.mkDefault true;
-
-    programs = {
-      dconf.enable = lib.mkDefault true;
-      xwayland.enable = lib.mkDefault cfg.xwayland.enable;
-    };
+  config = lib.mkIf cfg.enable (lib.mkMerge [
+    {
+      environment.systemPackages = [ cfg.package ];
 
-    security.polkit.enable = true;
+      # To make a Hyprland session available if a display manager like SDDM is enabled:
+      services.displayManager.sessionPackages = [ cfg.package ];
 
-    services.displayManager.sessionPackages = [ cfg.finalPackage ];
+      xdg.portal = {
+        enable = true;
+        extraPortals = [ cfg.portalPackage ];
+        configPackages = lib.mkDefault [ cfg.package ];
+      };
 
-    xdg.portal = {
-      enable = lib.mkDefault true;
-      extraPortals = [ finalPortalPackage ];
-      configPackages = lib.mkDefault [ cfg.finalPackage ];
-    };
+      systemd = lib.mkIf cfg.systemd.setPath.enable {
+        user.extraConfig = ''
+          DefaultEnvironment="PATH=$PATH:/run/current-system/sw/bin:/etc/profiles/per-user/%u/bin:/run/wrappers/bin"
+        '';
+      };
+    }
 
-    systemd = lib.mkIf cfg.systemd.setPath.enable {
-      user.extraConfig = ''
-        DefaultEnvironment="PATH=$PATH:/run/current-system/sw/bin:/etc/profiles/per-user/%u/bin:/run/wrappers/bin"
-      '';
-    };
-  };
+    (import ./wayland-session.nix {
+      inherit lib pkgs;
+      enableXWayland = cfg.xwayland.enable;
+      enableWlrPortal = lib.mkDefault false; # Hyprland has its own portal, wlr is not needed
+    })
+  ]);
 
   imports = [
     (lib.mkRemovedOptionModule
@@ -95,4 +89,6 @@ in
       "Nvidia patches are no longer needed"
     )
   ];
+
+  meta.maintainers = with lib.maintainers; [ fufexan ];
 }
diff --git a/nixos/modules/programs/wayland/hyprlock.nix b/nixos/modules/programs/wayland/hyprlock.nix
new file mode 100644
index 0000000000000..6c60765e80cc7
--- /dev/null
+++ b/nixos/modules/programs/wayland/hyprlock.nix
@@ -0,0 +1,25 @@
+{ lib, pkgs, config, ... }:
+
+let
+  cfg = config.programs.hyprlock;
+in
+{
+  options.programs.hyprlock = {
+    enable = lib.mkEnableOption "hyprlock, Hyprland's GPU-accelerated screen locking utility";
+    package = lib.mkPackageOption pkgs "hyprlock" { };
+  };
+
+  config = lib.mkIf cfg.enable {
+    environment.systemPackages = [
+      cfg.package
+    ];
+
+    # Hyprlock needs Hypridle systemd service to be running to detect idle time
+    services.hypridle.enable = true;
+
+    # Hyprlock needs PAM access to authenticate, else it fallbacks to su
+    security.pam.services.hyprlock = {};
+  };
+
+  meta.maintainers = with lib.maintainers; [ johnrtitor ];
+}
diff --git a/nixos/modules/programs/wayland/lib.nix b/nixos/modules/programs/wayland/lib.nix
new file mode 100644
index 0000000000000..0f275d3f18c56
--- /dev/null
+++ b/nixos/modules/programs/wayland/lib.nix
@@ -0,0 +1,12 @@
+{ lib }:
+
+{
+  genFinalPackage = pkg: args:
+    let
+      expectedArgs = with lib;
+        lib.naturalSort (lib.attrNames args);
+      existingArgs = with lib;
+        naturalSort (intersectLists expectedArgs (attrNames (functionArgs pkg.override)));
+    in
+      if existingArgs != expectedArgs then pkg else pkg.override args;
+}
diff --git a/nixos/modules/programs/wayland/river.nix b/nixos/modules/programs/wayland/river.nix
index 6f8bafb155064..6391f00e2f626 100644
--- a/nixos/modules/programs/wayland/river.nix
+++ b/nixos/modules/programs/wayland/river.nix
@@ -1,37 +1,40 @@
-{
-  config,
-  pkgs,
-  lib,
-  ...
-}:
+{ config, lib, pkgs, ... }:
+
 let
   cfg = config.programs.river;
-in {
+
+  wayland-lib = import ./lib.nix { inherit lib; };
+in
+{
   options.programs.river = {
     enable = lib.mkEnableOption "river, a dynamic tiling Wayland compositor";
 
     package = lib.mkPackageOption pkgs "river" {
       nullable = true;
       extraDescription = ''
+        If the package is not overridable with `xwaylandSupport`, then the module option
+        {option}`xwayland` will have no effect.
+
         Set to `null` to not add any River package to your path.
         This should be done if you want to use the Home Manager River module to install River.
       '';
+    } // {
+      apply = p: if p == null then null else
+        wayland-lib.genFinalPackage p {
+          xwaylandSupport = cfg.xwayland.enable;
+        };
     };
 
+    xwayland.enable = lib.mkEnableOption "XWayland" // { default = true; };
+
     extraPackages = lib.mkOption {
       type = with lib.types; listOf package;
-      default = with pkgs; [
-        swaylock
-        foot
-        dmenu
-      ];
+      default = with pkgs; [ swaylock foot dmenu ];
       defaultText = lib.literalExpression ''
         with pkgs; [ swaylock foot dmenu ];
       '';
       example = lib.literalExpression ''
-        with pkgs; [
-          termite rofi light
-        ]
+        with pkgs; [ termite rofi light ]
       '';
       description = ''
         Extra packages to be installed system wide. See
@@ -41,19 +44,22 @@ in {
     };
   };
 
-  config =
-    lib.mkIf cfg.enable (lib.mkMerge [
-      {
-        environment.systemPackages = lib.optional (cfg.package != null) cfg.package ++ cfg.extraPackages;
+  config = lib.mkIf cfg.enable (lib.mkMerge [
+    {
+      environment.systemPackages = lib.optional (cfg.package != null) cfg.package ++ cfg.extraPackages;
+
+      # To make a river session available if a display manager like SDDM is enabled:
+      services.displayManager.sessionPackages = lib.optional (cfg.package != null) cfg.package;
 
-        # To make a river session available if a display manager like SDDM is enabled:
-        services.displayManager.sessionPackages = lib.optionals (cfg.package != null) [ cfg.package ];
+      # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050913
+      xdg.portal.config.river.default = lib.mkDefault [ "wlr" "gtk" ];
+    }
 
-        # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050913
-        xdg.portal.config.river.default = lib.mkDefault [ "wlr" "gtk" ];
-      }
-      (import ./wayland-session.nix { inherit lib pkgs; })
-    ]);
+    (import ./wayland-session.nix {
+      inherit lib pkgs;
+      enableXWayland = cfg.xwayland.enable;
+    })
+  ]);
 
   meta.maintainers = with lib.maintainers; [ GaetanLepage ];
 }
diff --git a/nixos/modules/programs/wayland/sway.nix b/nixos/modules/programs/wayland/sway.nix
index cec634b6b0338..e3e32aa7a56ab 100644
--- a/nixos/modules/programs/wayland/sway.nix
+++ b/nixos/modules/programs/wayland/sway.nix
@@ -1,52 +1,11 @@
-{ config, pkgs, lib, ... }:
+{ config, lib, pkgs, ... }:
 
 let
   cfg = config.programs.sway;
 
-  wrapperOptions = lib.types.submodule {
-    options =
-      let
-        mkWrapperFeature  = default: description: lib.mkOption {
-          type = lib.types.bool;
-          inherit default;
-          example = !default;
-          description = "Whether to make use of the ${description}";
-        };
-      in {
-        base = mkWrapperFeature true ''
-          base wrapper to execute extra session commands and prepend a
-          dbus-run-session to the sway command.
-        '';
-        gtk = mkWrapperFeature false ''
-          wrapGAppsHook wrapper to execute sway with required environment
-          variables for GTK applications.
-        '';
-    };
-  };
-
-  genFinalPackage = pkg:
-    let
-      expectedArgs = lib.naturalSort [
-        "extraSessionCommands"
-        "extraOptions"
-        "withBaseWrapper"
-        "withGtkWrapper"
-        "isNixOS"
-      ];
-      existedArgs = with lib;
-        naturalSort
-        (intersectLists expectedArgs (attrNames (functionArgs pkg.override)));
-    in if existedArgs != expectedArgs then
-      pkg
-    else
-      pkg.override {
-        extraSessionCommands = cfg.extraSessionCommands;
-        extraOptions = cfg.extraOptions;
-        withBaseWrapper = cfg.wrapperFeatures.base;
-        withGtkWrapper = cfg.wrapperFeatures.gtk;
-        isNixOS = true;
-      };
-in {
+  wayland-lib = import ./lib.nix { inherit lib; };
+in
+{
   options.programs.sway = {
     enable = lib.mkEnableOption ''
       Sway, the i3-compatible tiling Wayland compositor. You can manually launch
@@ -55,28 +14,36 @@ in {
       <https://github.com/swaywm/sway/wiki> and
       "man 5 sway" for more information'';
 
-    package = lib.mkOption {
-      type = with lib.types; nullOr package;
-      default = pkgs.sway;
-      apply = p: if p == null then null else genFinalPackage p;
-      defaultText = lib.literalExpression "pkgs.sway";
-      description = ''
-        Sway package to use. If the package does not contain the override arguments
-        `extraSessionCommands`, `extraOptions`, `withBaseWrapper`, `withGtkWrapper`,
-        `isNixOS`, then the module options {option}`wrapperFeatures`,
-        {option}`wrapperFeatures` and {option}`wrapperFeatures` will have no effect.
-        Set to `null` to not add any Sway package to your path. This should be done if
-        you want to use the Home Manager Sway module to install Sway.
+    package = lib.mkPackageOption pkgs "sway" {
+      nullable = true;
+      extraDescription = ''
+        If the package is not overridable with `extraSessionCommands`, `extraOptions`,
+        `withBaseWrapper`, `withGtkWrapper`, `enableXWayland` and `isNixOS`,
+        then the module options {option}`wrapperFeatures`, {option}`extraSessionCommands`,
+        {option}`extraOptions` and {option}`xwayland` will have no effect.
+
+        Set to `null` to not add any Sway package to your path.
+        This should be done if you want to use the Home Manager Sway module to install Sway.
       '';
+    } // {
+      apply = p: if p == null then null else
+        wayland-lib.genFinalPackage p {
+          extraSessionCommands = cfg.extraSessionCommands;
+          extraOptions = cfg.extraOptions;
+          withBaseWrapper = cfg.wrapperFeatures.base;
+          withGtkWrapper = cfg.wrapperFeatures.gtk;
+          enableXWayland = cfg.xwayland.enable;
+          isNixOS = true;
+        };
     };
 
-    wrapperFeatures = lib.mkOption {
-      type = wrapperOptions;
-      default = { };
-      example = { gtk = true; };
-      description = ''
-        Attribute set of features to enable in the wrapper.
-      '';
+    wrapperFeatures = {
+      base = lib.mkEnableOption ''
+        the base wrapper to execute extra session commands and prepend a
+        dbus-run-session to the sway command'' // { default = true; };
+      gtk = lib.mkEnableOption ''
+        the wrapGAppsHook wrapper to execute sway with required environment
+        variables for GTK applications'';
     };
 
     extraSessionCommands = lib.mkOption {
@@ -114,19 +81,16 @@ in {
       '';
     };
 
+    xwayland.enable = lib.mkEnableOption "XWayland" // { default = true; };
+
     extraPackages = lib.mkOption {
       type = with lib.types; listOf package;
-      default = with pkgs; [
-        swaylock swayidle foot dmenu wmenu
-      ];
+      default = with pkgs; [ swaylock swayidle foot dmenu wmenu ];
       defaultText = lib.literalExpression ''
         with pkgs; [ swaylock swayidle foot dmenu wmenu ];
       '';
       example = lib.literalExpression ''
-        with pkgs; [
-          i3status i3status-rust
-          termite rofi light
-        ]
+        with pkgs; [ i3status i3status-rust termite rofi light ]
       '';
       description = ''
         Extra packages to be installed system wide. See
@@ -135,46 +99,50 @@ in {
         for a list of useful software.
       '';
     };
-
   };
 
-  config = lib.mkIf cfg.enable
-    (lib.mkMerge [
-      {
-        assertions = [
-          {
-            assertion = cfg.extraSessionCommands != "" -> cfg.wrapperFeatures.base;
-            message = ''
-              The extraSessionCommands for Sway will not be run if
-              wrapperFeatures.base is disabled.
-            '';
-          }
-        ];
-
-        environment = {
-          systemPackages = lib.optional (cfg.package != null) cfg.package ++ cfg.extraPackages;
-          # Needed for the default wallpaper:
-          pathsToLink = lib.optionals (cfg.package != null) [ "/share/backgrounds/sway" ];
-          etc = {
-            "sway/config.d/nixos.conf".source = pkgs.writeText "nixos.conf" ''
-              # Import the most important environment variables into the D-Bus and systemd
-              # user environments (e.g. required for screen sharing and Pinentry prompts):
-              exec dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP
-            '';
-          } // lib.optionalAttrs (cfg.package != null) {
-            "sway/config".source = lib.mkOptionDefault "${cfg.package}/etc/sway/config";
-          };
+  config = lib.mkIf cfg.enable (lib.mkMerge [
+    {
+      assertions = [
+        {
+          assertion = cfg.extraSessionCommands != "" -> cfg.wrapperFeatures.base;
+          message = ''
+            The extraSessionCommands for Sway will not be run if wrapperFeatures.base is disabled.
+          '';
+        }
+      ];
+
+      environment = {
+        systemPackages = lib.optional (cfg.package != null) cfg.package ++ cfg.extraPackages;
+
+        # Needed for the default wallpaper:
+        pathsToLink = lib.optional (cfg.package != null) "/share/backgrounds/sway";
+
+        etc = {
+          "sway/config.d/nixos.conf".source = pkgs.writeText "nixos.conf" ''
+            # Import the most important environment variables into the D-Bus and systemd
+            # user environments (e.g. required for screen sharing and Pinentry prompts):
+            exec dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP
+          '';
+        } // lib.optionalAttrs (cfg.package != null) {
+          "sway/config".source = lib.mkOptionDefault "${cfg.package}/etc/sway/config";
         };
+      };
+
+      programs.gnupg.agent.pinentryPackage = lib.mkDefault pkgs.pinentry-gnome3;
 
-        programs.gnupg.agent.pinentryPackage = lib.mkDefault pkgs.pinentry-gnome3;
+      # To make a Sway session available if a display manager like SDDM is enabled:
+      services.displayManager.sessionPackages = lib.optional (cfg.package != null) cfg.package;
 
-        # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050913
-        xdg.portal.config.sway.default = lib.mkDefault [ "wlr" "gtk" ];
+      # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050913
+      xdg.portal.config.sway.default = lib.mkDefault [ "wlr" "gtk" ];
+    }
 
-        # To make a Sway session available if a display manager like SDDM is enabled:
-        services.displayManager.sessionPackages = lib.optionals (cfg.package != null) [ cfg.package ]; }
-      (import ./wayland-session.nix { inherit lib pkgs; })
-    ]);
+    (import ./wayland-session.nix {
+      inherit lib pkgs;
+      enableXWayland = cfg.xwayland.enable;
+    })
+  ]);
 
   meta.maintainers = with lib.maintainers; [ primeos colemickens ];
 }
diff --git a/nixos/modules/programs/wayland/wayland-session.nix b/nixos/modules/programs/wayland/wayland-session.nix
index 47ee0788e0f38..09fb2a5f14b2e 100644
--- a/nixos/modules/programs/wayland/wayland-session.nix
+++ b/nixos/modules/programs/wayland/wayland-session.nix
@@ -1,23 +1,27 @@
-{ lib, pkgs, ... }: {
-    security = {
-      polkit.enable = true;
-      pam.services.swaylock = {};
-    };
+{
+  lib,
+  pkgs,
+  enableXWayland ? true,
+  enableWlrPortal ? true,
+}:
 
-    hardware.opengl.enable = lib.mkDefault true;
-    fonts.enableDefaultPackages = lib.mkDefault true;
+{
+  security = {
+    polkit.enable = true;
+    pam.services.swaylock = {};
+  };
 
-    programs = {
-      dconf.enable = lib.mkDefault true;
-      xwayland.enable = lib.mkDefault true;
-    };
+  hardware.graphics.enable = lib.mkDefault true;
+  fonts.enableDefaultPackages = lib.mkDefault true;
 
-    xdg.portal = {
-      enable = lib.mkDefault true;
+  programs = {
+    dconf.enable = lib.mkDefault true;
+    xwayland.enable = lib.mkDefault enableXWayland;
+  };
 
-      extraPortals = [
-        # For screen sharing
-        pkgs.xdg-desktop-portal-wlr
-      ];
-    };
+  xdg.portal.wlr.enable = enableWlrPortal;
+
+  # Window manager only sessions (unlike DEs) don't handle XDG
+  # autostart files, so force them to run the service
+  services.xserver.desktopManager.runXdgAutostartIfNone = lib.mkDefault true;
 }
diff --git a/nixos/modules/programs/ydotool.nix b/nixos/modules/programs/ydotool.nix
index f639e9283de42..643a5d369f3fc 100644
--- a/nixos/modules/programs/ydotool.nix
+++ b/nixos/modules/programs/ydotool.nix
@@ -14,23 +14,32 @@ in
 
   options.programs.ydotool = {
     enable = lib.mkEnableOption ''
-      ydotoold system service and install ydotool.
-      Add yourself to the 'ydotool' group to be able to use it.
+      ydotoold system service and {command}`ydotool` for members of
+      {option}`programs.ydotool.group`.
     '';
+    group = lib.mkOption {
+      type = lib.types.str;
+      default = "ydotool";
+      description = ''
+        Group which users must be in to use {command}`ydotool`.
+      '';
+    };
   };
 
-  config = lib.mkIf cfg.enable {
-    users.groups.ydotool = { };
+  config = let
+    runtimeDirectory = "ydotoold";
+  in lib.mkIf cfg.enable {
+    users.groups."${config.programs.ydotool.group}" = { };
 
     systemd.services.ydotoold = {
       description = "ydotoold - backend for ydotool";
       wantedBy = [ "multi-user.target" ];
       partOf = [ "multi-user.target" ];
       serviceConfig = {
-        Group = "ydotool";
-        RuntimeDirectory = "ydotoold";
+        Group = config.programs.ydotool.group;
+        RuntimeDirectory = runtimeDirectory;
         RuntimeDirectoryMode = "0750";
-        ExecStart = "${lib.getExe' pkgs.ydotool "ydotoold"} --socket-path=/run/ydotoold/socket --socket-perm=0660";
+        ExecStart = "${lib.getExe' pkgs.ydotool "ydotoold"} --socket-path=${config.environment.variables.YDOTOOL_SOCKET} --socket-perm=0660";
 
         # hardening
 
@@ -76,7 +85,7 @@ in
     };
 
     environment.variables = {
-      YDOTOOL_SOCKET = "/run/ydotoold/socket";
+      YDOTOOL_SOCKET = "/run/${runtimeDirectory}/socket";
     };
     environment.systemPackages = with pkgs; [ ydotool ];
   };
diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index 01985995a651d..d4661a19188c8 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -40,12 +40,16 @@ in
     (mkRemovedOptionModule [ "networking" "vpnc" ] "Use environment.etc.\"vpnc/service.conf\" instead.")
     (mkRemovedOptionModule [ "networking" "wicd" ] "The corresponding package was removed from nixpkgs.")
     (mkRemovedOptionModule [ "programs" "gnome-documents" ] "The corresponding package was removed from nixpkgs.")
+    (mkRemovedOptionModule [ "programs" "pantheon-tweaks" ] ''
+      pantheon-tweaks is no longer a switchboard plugin but an independent app,
+      adding the package to environment.systemPackages is sufficient.
+    '')
     (mkRemovedOptionModule [ "programs" "tilp2" ] "The corresponding package was removed from nixpkgs.")
     (mkRemovedOptionModule [ "programs" "way-cooler" ] ("way-cooler is abandoned by its author: " +
       "https://way-cooler.org/blog/2020/01/09/way-cooler-post-mortem.html"))
     (mkRemovedOptionModule [ "security" "hideProcessInformation" ] ''
-        The hidepid module was removed, since the underlying machinery
-        is broken when using cgroups-v2.
+      The hidepid module was removed, since the underlying machinery
+      is broken when using cgroups-v2.
     '')
     (mkRemovedOptionModule [ "services" "baget" "enable" ] "The baget module was removed due to the upstream package being unmaintained.")
     (mkRemovedOptionModule [ "services" "beegfs" ] "The BeeGFS module has been removed")
diff --git a/nixos/modules/security/acme/default.nix b/nixos/modules/security/acme/default.nix
index 5ffafdc37fefb..83581d02840ed 100644
--- a/nixos/modules/security/acme/default.nix
+++ b/nixos/modules/security/acme/default.nix
@@ -545,7 +545,7 @@ let
       };
 
       server = mkOption {
-        type = types.str;
+        type = types.nullOr types.str;
         inherit (defaultAndText "server" "https://acme-v02.api.letsencrypt.org/directory") default defaultText;
         example = "https://acme-staging-v02.api.letsencrypt.org/directory";
         description = ''
diff --git a/nixos/modules/security/krb5/default.nix b/nixos/modules/security/krb5/default.nix
index 78426c07cbc98..6714c41d8a07c 100644
--- a/nixos/modules/security/krb5/default.nix
+++ b/nixos/modules/security/krb5/default.nix
@@ -77,8 +77,22 @@ in {
     };
   };
 
-  config = mkIf cfg.enable {
-    environment = {
+  config = {
+    assertions = mkIf (cfg.enable || config.services.kerberos_server.enable) [(let
+      implementation = cfg.package.passthru.implementation or "<NOT SET>";
+    in {
+      assertion = lib.elem implementation [ "krb5" "heimdal" ];
+      message = ''
+        `security.krb5.package` must be one of:
+
+          - krb5
+          - heimdal
+
+        Currently chosen implementation: ${implementation}
+      '';
+    })];
+
+    environment = mkIf cfg.enable {
       systemPackages = [ cfg.package ];
       etc."krb5.conf".source = format.generate "krb5.conf" cfg.settings;
     };
diff --git a/nixos/modules/security/krb5/krb5-conf-format.nix b/nixos/modules/security/krb5/krb5-conf-format.nix
index 5a6bbed9fd188..3e5e64ae0cb04 100644
--- a/nixos/modules/security/krb5/krb5-conf-format.nix
+++ b/nixos/modules/security/krb5/krb5-conf-format.nix
@@ -7,17 +7,61 @@
 let
   inherit (lib) boolToString concatMapStringsSep concatStringsSep filter
     isAttrs isBool isList mapAttrsToList mkOption singleton splitString;
-  inherit (lib.types) attrsOf bool coercedTo either int listOf oneOf path
-    str submodule;
+  inherit (lib.types) attrsOf bool coercedTo either enum int listOf oneOf
+    path str submodule;
 in
-{ }: {
-  type = let
-    section = attrsOf relation;
-    relation = either (attrsOf value) value;
+{
+  enableKdcACLEntries ? false
+}: rec {
+  sectionType = let
+    relation = oneOf [
+      (listOf (attrsOf value))
+      (attrsOf value)
+      value
+    ];
     value = either (listOf atom) atom;
     atom = oneOf [int str bool];
+  in attrsOf relation;
+
+  type = let
+    aclEntry = submodule {
+      options = {
+        principal = mkOption {
+          type = str;
+          description = "Which principal the rule applies to";
+        };
+        access = mkOption {
+          type = either
+            (listOf (enum ["add" "cpw" "delete" "get" "list" "modify"]))
+            (enum ["all"]);
+          default = "all";
+          description = "The changes the principal is allowed to make.";
+        };
+        target = mkOption {
+          type = str;
+          default = "*";
+          description = "The principals that 'access' applies to.";
+        };
+      };
+    };
+
+    realm = submodule ({ name, ... }: {
+      freeformType = sectionType;
+      options = {
+        acl = mkOption {
+          type = listOf aclEntry;
+          default = [
+            { principal = "*/admin"; access = "all"; }
+            { principal = "admin"; access = "all"; }
+          ];
+          description = ''
+            The privileges granted to a user.
+          '';
+        };
+      };
+    });
   in submodule {
-    freeformType = attrsOf section;
+    freeformType = attrsOf sectionType;
     options = {
       include = mkOption {
         default = [ ];
@@ -40,7 +84,17 @@ in
         '';
         type = coercedTo path singleton (listOf path);
       };
-    };
+
+    }
+    //
+    (lib.optionalAttrs enableKdcACLEntries {
+      realms = mkOption {
+        type = attrsOf realm;
+        description = ''
+          The realm(s) to serve keys for.
+        '';
+      };
+    });
   };
 
   generate = let
@@ -71,6 +125,9 @@ in
         ${name} = {
         ${indent (concatStringsSep "\n" (mapAttrsToList formatValue relation))}
         }''
+      else if isList relation
+      then
+        concatMapStringsSep "\n" (formatRelation name) relation
       else formatValue name relation;
 
     formatValue = name: value:
diff --git a/nixos/modules/services/admin/docuum.nix b/nixos/modules/services/admin/docuum.nix
index 6f6cd4e027337..51a21740b276a 100644
--- a/nixos/modules/services/admin/docuum.nix
+++ b/nixos/modules/services/admin/docuum.nix
@@ -2,7 +2,7 @@
 
 let
   cfg = config.services.docuum;
-  inherit (lib) mkIf mkEnableOption mkOption getExe types;
+  inherit (lib) mkIf mkEnableOption mkOption getExe types optionals concatMap;
 in
 {
   options.services.docuum = {
@@ -14,6 +14,27 @@ in
       default = "10 GB";
       example = "50%";
     };
+
+    minAge = mkOption {
+      description = "Sets the minimum age of images to be considered for deletion.";
+      type = types.nullOr types.str;
+      default = null;
+      example = "1d";
+    };
+
+    keep = mkOption {
+      description = "Prevents deletion of images for which repository:tag matches the specified regex.";
+      type = types.listOf types.str;
+      default = [];
+      example = [ "^my-image" ];
+    };
+
+    deletionChunkSize = mkOption {
+      description = "Removes specified quantity of images at a time.";
+      type = types.int;
+      default = 1;
+      example = 10;
+    };
   };
 
   config = mkIf cfg.enable {
@@ -35,10 +56,13 @@ in
         DynamicUser = true;
         StateDirectory = "docuum";
         SupplementaryGroups = [ "docker" ];
-        ExecStart = utils.escapeSystemdExecArgs [
+        ExecStart = utils.escapeSystemdExecArgs ([
           (getExe pkgs.docuum)
           "--threshold" cfg.threshold
-        ];
+          "--deletion-chunk-size" cfg.deletionChunkSize
+        ] ++ (concatMap (keep: [ "--keep" keep ]) cfg.keep)
+          ++ (optionals (cfg.minAge != null) [ "--min-age" cfg.minAge ])
+        );
       };
     };
   };
diff --git a/nixos/modules/services/audio/alsa.nix b/nixos/modules/services/audio/alsa.nix
index e53da4b64e7bc..b002cb1274ac3 100644
--- a/nixos/modules/services/audio/alsa.nix
+++ b/nixos/modules/services/audio/alsa.nix
@@ -106,7 +106,8 @@ in
         serviceConfig = {
           Type = "oneshot";
           RemainAfterExit = true;
-          ExecStart = "${pkgs.coreutils}/bin/mkdir -p /var/lib/alsa";
+          ExecStartPre = "${pkgs.coreutils}/bin/mkdir -p /var/lib/alsa";
+          ExecStart = "${alsa-utils}/sbin/alsactl restore --ignore";
           ExecStop = "${alsa-utils}/sbin/alsactl store --ignore";
         };
       };
diff --git a/nixos/modules/services/audio/mopidy.nix b/nixos/modules/services/audio/mopidy.nix
index 1d6c45b64a16c..198ca74359dc1 100644
--- a/nixos/modules/services/audio/mopidy.nix
+++ b/nixos/modules/services/audio/mopidy.nix
@@ -78,6 +78,7 @@ in {
     systemd.services.mopidy = {
       wantedBy = [ "multi-user.target" ];
       after = [ "network-online.target" "sound.target" ];
+      wants = [ "network-online.target" ];
       description = "mopidy music player daemon";
       serviceConfig = {
         ExecStart = "${mopidyEnv}/bin/mopidy --config ${concatStringsSep ":" ([mopidyConf] ++ cfg.extraConfigFiles)}";
diff --git a/nixos/modules/services/audio/navidrome.nix b/nixos/modules/services/audio/navidrome.nix
index a9db9228827a2..06d2d174a4df3 100644
--- a/nixos/modules/services/audio/navidrome.nix
+++ b/nixos/modules/services/audio/navidrome.nix
@@ -157,5 +157,5 @@ in
 
       networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.settings.Port ];
     };
-  meta.maintainers = with maintainers; [ nu-nu-ko ];
+  meta.maintainers = with maintainers; [ fsnkty ];
 }
diff --git a/nixos/modules/services/backup/borgbackup.nix b/nixos/modules/services/backup/borgbackup.nix
index 04f971008073e..a3c0715c9e607 100644
--- a/nixos/modules/services/backup/borgbackup.nix
+++ b/nixos/modules/services/backup/borgbackup.nix
@@ -361,7 +361,7 @@ in {
             type = types.bool;
             example = true;
             description = ''
-              Set the `persistentTimer` option for the
+              Set the `Persistent` option for the
               {manpage}`systemd.timer(5)`
               which triggers the backup immediately if the last trigger
               was missed (e.g. if the system was powered down).
diff --git a/nixos/modules/services/cluster/rke2/default.nix b/nixos/modules/services/cluster/rke2/default.nix
new file mode 100644
index 0000000000000..9ddbd299fdf8d
--- /dev/null
+++ b/nixos/modules/services/cluster/rke2/default.nix
@@ -0,0 +1,311 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+  cfg = config.services.rke2;
+in
+{
+  imports = [ ];
+
+  options.services.rke2 = {
+    enable = mkEnableOption "rke2";
+
+    package = mkPackageOption pkgs "rke2" { };
+
+    role = mkOption {
+      type = types.enum [ "server" "agent" ];
+      description = ''
+        Whether rke2 should run as a server or agent.
+
+        If it's a server:
+
+        - By default it also runs workloads as an agent.
+        - any optionals is allowed.
+
+        If it's an agent:
+
+        - `serverAddr` is required.
+        - `token` or `tokenFile` is required.
+        - `agentToken` or `agentTokenFile` or `disable` or `cni` are not allowed.
+      '';
+      default = "server";
+    };
+
+    configPath = mkOption {
+      type = types.path;
+      description = "Load configuration from FILE.";
+      default = "/etc/rancher/rke2/config.yaml";
+    };
+
+    debug = mkOption {
+      type = types.bool;
+      description = "Turn on debug logs.";
+      default = false;
+    };
+
+    dataDir = mkOption {
+      type = types.path;
+      description = "The folder to hold state in.";
+      default = "/var/lib/rancher/rke2";
+    };
+
+    token = mkOption {
+      type = types.str;
+      description = ''
+        Shared secret used to join a server or agent to a cluster.
+
+        > WARNING: This option will expose store your token unencrypted world-readable in the nix store.
+        If this is undesired use the `tokenFile` option instead.
+      '';
+      default = "";
+    };
+
+    tokenFile = mkOption {
+      type = types.nullOr types.path;
+      description = "File path containing rke2 token to use when connecting to the server.";
+      default = null;
+    };
+
+    disable = mkOption {
+      type = types.listOf types.str;
+      description = "Do not deploy packaged components and delete any deployed components.";
+      default = [ ];
+    };
+
+    nodeName = mkOption {
+      type = types.nullOr types.str;
+      description = "Node name.";
+      default = null;
+    };
+
+    nodeLabel = mkOption {
+      type = types.listOf types.str;
+      description = "Registering and starting kubelet with set of labels.";
+      default = [ ];
+    };
+
+    nodeTaint = mkOption {
+      type = types.listOf types.str;
+      description = "Registering kubelet with set of taints.";
+      default = [ ];
+    };
+
+    nodeIP = mkOption {
+      type = types.nullOr types.str;
+      description = "IPv4/IPv6 addresses to advertise for node.";
+      default = null;
+    };
+
+    agentToken = mkOption {
+      type = types.str;
+      description = ''
+        Shared secret used to join agents to the cluster, but not servers.
+
+        > **WARNING**: This option will expose store your token unencrypted world-readable in the nix store.
+        If this is undesired use the `agentTokenFile` option instead.
+      '';
+      default = "";
+    };
+
+    agentTokenFile = mkOption {
+      type = types.nullOr types.path;
+      description = "File path containing rke2 agent token to use when connecting to the server.";
+      default = null;
+    };
+
+    serverAddr = mkOption {
+      type = types.str;
+      description = "The rke2 server to connect to, used to join a cluster.";
+      example = "https://10.0.0.10:6443";
+      default = "";
+    };
+
+    selinux = mkOption {
+      type = types.bool;
+      description = "Enable SELinux in containerd.";
+      default = false;
+    };
+
+    cni = mkOption {
+      type = types.enum [ "none" "canal" "cilium" "calico" "flannel" ];
+      description = ''
+        CNI Plugins to deploy, one of `none`, `calico`, `canal`, `cilium` or `flannel`.
+
+        All CNI plugins get installed via a helm chart after the main components are up and running
+        and can be [customized by modifying the helm chart options](https://docs.rke2.io/helm).
+
+        [Learn more about RKE2 and CNI plugins](https://docs.rke2.io/networking/basic_network_options)
+
+        > **WARNING**: Flannel support in RKE2 is currently experimental.
+      '';
+      default = "canal";
+    };
+
+    cisHardening = mkOption {
+      type = types.bool;
+      description = ''
+        Enable CIS Hardening for RKE2.
+
+        It will set the configurations and controls required to address Kubernetes benchmark controls
+        from the Center for Internet Security (CIS).
+
+        Learn more about [CIS Hardening for RKE2](https://docs.rke2.io/security/hardening_guide).
+
+        > **NOTICE**:
+        >
+        > You may need restart the `systemd-sysctl` muaually by:
+        >
+        > ```shell
+        > sudo systemctl restart systemd-sysctl
+        > ```
+      '';
+      default = false;
+    };
+
+    extraFlags = mkOption {
+      type = types.listOf types.str;
+      description = ''
+        Extra flags to pass to the rke2 service/agent.
+
+        Here you can find all the available flags:
+
+        - [Server Configuration Reference](https://docs.rke2.io/reference/server_config)
+        - [Agent Configuration Reference](https://docs.rke2.io/reference/linux_agent_config)
+      '';
+      example = [ "--disable-kube-proxy" "--cluster-cidr=10.24.0.0/16" ];
+      default = [ ];
+    };
+
+    environmentVars = mkOption {
+      type = types.attrsOf types.str;
+      description = ''
+        Environment variables for configuring the rke2 service/agent.
+
+        Here you can find all the available environment variables:
+
+        - [Server Configuration Reference](https://docs.rke2.io/reference/server_config)
+        - [Agent Configuration Reference](https://docs.rke2.io/reference/linux_agent_config)
+
+        Besides the options above, you can also active environment variables by edit/create those files:
+
+        - `/etc/default/rke2`
+        - `/etc/sysconfig/rke2`
+        - `/usr/local/lib/systemd/system/rke2.env`
+      '';
+      # See: https://github.com/rancher/rke2/blob/master/bundle/lib/systemd/system/rke2-server.env#L1
+      default = {
+        HOME = "/root";
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    assertions = [
+      {
+        assertion = cfg.role == "agent" -> (builtins.pathExists cfg.configPath || cfg.serverAddr != "");
+        message = "serverAddr or configPath (with 'server' key) should be set if role is 'agent'";
+      }
+      {
+        assertion = cfg.role == "agent" -> (builtins.pathExists cfg.configPath || cfg.tokenFile != null || cfg.token != "");
+        message = "token or tokenFile or configPath (with 'token' or 'token-file' keys) should be set if role is 'agent'";
+      }
+      {
+        assertion = cfg.role == "agent" -> ! (cfg.agentTokenFile != null || cfg.agentToken != "");
+        message = "agentToken or agentTokenFile should be set if role is 'agent'";
+      }
+      {
+        assertion = cfg.role == "agent" -> ! (cfg.disable != [ ]);
+        message = "disable should not be set if role is 'agent'";
+      }
+      {
+        assertion = cfg.role == "agent" -> ! (cfg.cni != "canal");
+        message = "cni should not be set if role is 'agent'";
+      }
+    ];
+
+    environment.systemPackages = [ config.services.rke2.package ];
+    # To configure NetworkManager to ignore calico/flannel related network interfaces.
+    # See: https://docs.rke2.io/known_issues#networkmanager
+    environment.etc."NetworkManager/conf.d/rke2-canal.conf" = {
+      enable = config.networking.networkmanager.enable;
+      text = ''
+        [keyfile]
+        unmanaged-devices=interface-name:cali*;interface-name:flannel*
+      '';
+    };
+    # See: https://docs.rke2.io/security/hardening_guide#set-kernel-parameters
+    boot.kernel.sysctl = mkIf cfg.cisHardening {
+      "vm.panic_on_oom" = 0;
+      "vm.overcommit_memory" = 1;
+      "kernel.panic" = 10;
+      "kernel.panic_on_oops" = 1;
+    };
+
+    systemd.services.rke2 = {
+      description = "Rancher Kubernetes Engine v2";
+      documentation = [ "https://github.com/rancher/rke2#readme" ];
+      after = [ "network-online.target" ];
+      wants = [ "network-online.target" ];
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = {
+        Type = if cfg.role == "agent" then "exec" else "notify";
+        EnvironmentFile = [
+          "-/etc/default/%N"
+          "-/etc/sysconfig/%N"
+          "-/usr/local/lib/systemd/system/%N.env"
+        ];
+        Environment = mapAttrsToList (k: v: "${k}=${v}") cfg.environmentVars;
+        KillMode = "process";
+        Delegate = "yes";
+        LimitNOFILE = 1048576;
+        LimitNPROC = "infinity";
+        LimitCORE = "infinity";
+        TasksMax = "infinity";
+        TimeoutStartSec = 0;
+        Restart = "always";
+        RestartSec = "5s";
+        ExecStartPre = [
+          # There is a conflict between RKE2 and `nm-cloud-setup.service`. This service add a routing table that
+          # interfere with the CNI plugin's configuration. This script checks if the service is enabled and if so,
+          # failed the RKE2 start.
+          # See: https://github.com/rancher/rke2/issues/1053
+          (pkgs.writeScript "check-nm-cloud-setup.sh" ''
+            #! ${pkgs.runtimeShell}
+            set -x
+            ! /run/current-system/systemd/bin/systemctl is-enabled --quiet nm-cloud-setup.service
+          '')
+          "-${pkgs.kmod}/bin/modprobe br_netfilter"
+          "-${pkgs.kmod}/bin/modprobe overlay"
+        ];
+        ExecStart = "${cfg.package}/bin/rke2 '${cfg.role}' ${escapeShellArgs (
+             (optional (cfg.configPath != "/etc/rancher/rke2/config.yaml") "--config=${cfg.configPath}")
+          ++ (optional cfg.debug "--debug")
+          ++ (optional (cfg.dataDir != "/var/lib/rancher/rke2") "--data-dir=${cfg.dataDir}")
+          ++ (optional (cfg.token != "") "--token=${cfg.token}")
+          ++ (optional (cfg.tokenFile != null) "--token-file=${cfg.tokenFile}")
+          ++ (optionals (cfg.role == "server" && cfg.disable != [ ]) (map (d: "--disable=${d}") cfg.disable))
+          ++ (optional (cfg.nodeName != null) "--node-name=${cfg.nodeName}")
+          ++ (optionals (cfg.nodeLabel != [ ]) (map (l: "--node-label=${l}") cfg.nodeLabel))
+          ++ (optionals (cfg.nodeTaint != [ ]) (map (t: "--node-taint=${t}") cfg.nodeTaint))
+          ++ (optional (cfg.nodeIP != null) "--node-ip=${cfg.nodeIP}")
+          ++ (optional (cfg.role == "server" && cfg.agentToken != "") "--agent-token=${cfg.agentToken}")
+          ++ (optional (cfg.role == "server" && cfg.agentTokenFile != null) "--agent-token-file=${cfg.agentTokenFile}")
+          ++ (optional (cfg.serverAddr != "") "--server=${cfg.serverAddr}")
+          ++ (optional cfg.selinux "--selinux")
+          ++ (optional (cfg.role == "server" && cfg.cni != "canal") "--cni=${cfg.cni}")
+          ++ (optional cfg.cisHardening "--profile=${if cfg.package.version >= "1.25" then "cis-1.23" else "cis-1.6"}")
+          ++ cfg.extraFlags
+        )}";
+        ExecStopPost = let
+          killProcess = pkgs.writeScript "kill-process.sh" ''
+            #! ${pkgs.runtimeShell}
+            /run/current-system/systemd/bin/systemd-cgls /system.slice/$1 | \
+            ${pkgs.gnugrep}/bin/grep -Eo '[0-9]+ (containerd|kubelet)' | \
+            ${pkgs.gawk}/bin/awk '{print $1}' | \
+            ${pkgs.findutils}/bin/xargs -r ${pkgs.util-linux}/bin/kill
+          '';
+        in "-${killProcess} %n";
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/continuous-integration/hydra/default.nix b/nixos/modules/services/continuous-integration/hydra/default.nix
index 23f07eb64b92d..b516c3d6192cb 100644
--- a/nixos/modules/services/continuous-integration/hydra/default.nix
+++ b/nixos/modules/services/continuous-integration/hydra/default.nix
@@ -335,7 +335,7 @@ in
           mkdir -m 0700 -p ${baseDir}/queue-runner
           mkdir -m 0750 -p ${baseDir}/build-logs
           mkdir -m 0750 -p ${baseDir}/runcommand-logs
-          chown hydra-queue-runner.hydra \
+          chown hydra-queue-runner:hydra \
             ${baseDir}/queue-runner \
             ${baseDir}/build-logs \
             ${baseDir}/runcommand-logs
diff --git a/nixos/modules/services/databases/postgresql.md b/nixos/modules/services/databases/postgresql.md
index 8a587832cd8c0..e76f127335c7b 100644
--- a/nixos/modules/services/databases/postgresql.md
+++ b/nixos/modules/services/databases/postgresql.md
@@ -244,6 +244,27 @@ The upgrade process is:
      $ ./delete_old_cluster.sh
      ```
 
+## Versioning and End-of-Life {#module-services-postgres-versioning}
+
+PostgreSQL's versioning policy is described [here](https://www.postgresql.org/support/versioning/). TLDR:
+
+- Each major version is supported for 5 years.
+- Every three months there will be a new minor release, containing bug and security fixes.
+- For criticial/security fixes there could be more minor releases inbetween. This happens *very* infrequently.
+- After five years, a final minor version is released. This usually happens in early November.
+- After that a version is considered end-of-life (EOL).
+- Around February each year is the first time an EOL-release will not have received regular updates anymore.
+
+Technically, we'd not want to have EOL'ed packages in a stable NixOS release, which is to be supported until one month after the previous release. Thus, with NixOS' release schedule in May and November, the oldest PostgreSQL version in nixpkgs would have to be supported until December. It could be argued that a soon-to-be-EOL-ed version should thus be removed in May for the .05 release already. But since new security vulnerabilities are first disclosed in Februrary of the following year, we agreed on keeping the oldest PostgreSQL major version around one more cycle in [#310580](https://github.com/NixOS/nixpkgs/pull/310580#discussion_r1597284693).
+
+Thus:
+- In September/October the new major version will be released and added to nixos-unstable.
+- In November the last minor version for the oldest major will be released.
+- Both the current stable .05 release and nixos-unstable should be updated to the latest minor.
+- In November, before branch-off for the .11 release, the EOL-ed major will be removed from nixos-unstable.
+
+This leaves a small gap of a couple of weeks after the latest minor release and the end of our support window for the .05 release, in which there could be an emergency release to other major versions of PostgreSQL - but not the oldest major we have in that branch. In that case: If we can't trivially patch the issue, we will mark the package/version as insecure **immediately**.
+
 ## Options {#module-services-postgres-options}
 
 A complete list of options for the PostgreSQL module may be found [here](#opt-services.postgresql.enable).
diff --git a/nixos/modules/services/desktop-managers/lomiri.nix b/nixos/modules/services/desktop-managers/lomiri.nix
index 0a1b86096e765..0b871aa38183e 100644
--- a/nixos/modules/services/desktop-managers/lomiri.nix
+++ b/nixos/modules/services/desktop-managers/lomiri.nix
@@ -22,6 +22,7 @@ in {
         libusermetrics
         lomiri
         lomiri-download-manager
+        lomiri-filemanager-app
         lomiri-schemas # exposes some required dbus interfaces
         lomiri-session # wrappers to properly launch the session
         lomiri-sounds
@@ -34,10 +35,15 @@ in {
         morph-browser
         qtmir # not having its desktop file for Xwayland available causes any X11 application to crash the session
         suru-icon-theme
-        telephony-service
+        # telephony-service # currently broken: https://github.com/NixOS/nixpkgs/pull/314043
       ]);
+      variables = {
+        # To override the keyboard layouts in Lomiri
+        NIXOS_XKB_LAYOUTS = config.services.xserver.xkb.layout;
+      };
     };
 
+    hardware.pulseaudio.enable = lib.mkDefault true;
     networking.networkmanager.enable = lib.mkDefault true;
 
     systemd.packages = with pkgs.lomiri; [
@@ -57,7 +63,7 @@ in {
     ];
 
     # Copy-pasted basic stuff
-    hardware.opengl.enable = lib.mkDefault true;
+    hardware.graphics.enable = lib.mkDefault true;
     fonts.enableDefaultPackages = lib.mkDefault true;
     programs.dconf.enable = lib.mkDefault true;
 
@@ -71,11 +77,14 @@ in {
       enable = true;
       packages = (with pkgs; [
         ayatana-indicator-datetime
+        ayatana-indicator-display
         ayatana-indicator-messages
         ayatana-indicator-power
         ayatana-indicator-session
+      ] ++ lib.optionals (config.hardware.pulseaudio.enable || config.services.pipewire.pulse.enable) [
+        ayatana-indicator-sound
       ]) ++ (with pkgs.lomiri; [
-        telephony-service
+        # telephony-service # currently broken: https://github.com/NixOS/nixpkgs/pull/314043
       ] ++ lib.optionals config.networking.networkmanager.enable [
         lomiri-indicator-network
       ]);
diff --git a/nixos/modules/services/desktop-managers/plasma6.nix b/nixos/modules/services/desktop-managers/plasma6.nix
index 83f6b5bc0ea10..d4f961254f028 100644
--- a/nixos/modules/services/desktop-managers/plasma6.nix
+++ b/nixos/modules/services/desktop-managers/plasma6.nix
@@ -142,11 +142,11 @@ in {
         okular
         kate
         khelpcenter
-        print-manager
         dolphin
         dolphin-plugins
         spectacle
         ffmpegthumbs
+        krdp
       ];
     in
       requiredPackages
@@ -168,12 +168,13 @@ in {
         )
         kio-extras-kf5
       ]
-      # Optional hardware support features
+      # Optional and hardware support features
       ++ lib.optionals config.hardware.bluetooth.enable [bluedevil bluez-qt pkgs.openobex pkgs.obexftp]
       ++ lib.optional config.networking.networkmanager.enable plasma-nm
       ++ lib.optional config.hardware.pulseaudio.enable plasma-pa
       ++ lib.optional config.services.pipewire.pulse.enable plasma-pa
       ++ lib.optional config.powerManagement.enable powerdevil
+      ++ lib.optional config.services.printing.enable print-manager
       ++ lib.optional config.services.colord.enable colord-kde
       ++ lib.optional config.services.hardware.bolt.enable plasma-thunderbolt
       ++ lib.optional config.services.samba.enable kdenetwork-filesharing
@@ -202,7 +203,7 @@ in {
     environment.sessionVariables.KPACKAGE_DEP_RESOLVERS_PATH = "${kdePackages.frameworkintegration.out}/libexec/kf6/kpackagehandlers";
 
     # Enable GTK applications to load SVG icons
-    services.xserver.gdk-pixbuf.modulePackages = [pkgs.librsvg];
+    programs.gdk-pixbuf.modulePackages = [pkgs.librsvg];
 
     fonts.packages = [cfg.notoPackage pkgs.hack-font];
     fonts.fontconfig.defaultFonts = {
diff --git a/nixos/modules/services/desktops/espanso.nix b/nixos/modules/services/desktops/espanso.nix
index a9b15b2659459..a6b8a078247b1 100644
--- a/nixos/modules/services/desktops/espanso.nix
+++ b/nixos/modules/services/desktops/espanso.nix
@@ -15,7 +15,6 @@ in {
   };
 
   config = mkIf cfg.enable {
-    services.espanso.package = mkIf cfg.wayland pkgs.espanso-wayland;
     systemd.user.services.espanso = {
       description = "Espanso daemon";
       serviceConfig = {
diff --git a/nixos/modules/services/display-managers/default.nix b/nixos/modules/services/display-managers/default.nix
index feba4b163ccd2..9a7bd6c84b15b 100644
--- a/nixos/modules/services/display-managers/default.nix
+++ b/nixos/modules/services/display-managers/default.nix
@@ -212,9 +212,7 @@ in
       after = [ "acpid.service" "systemd-logind.service" "systemd-user-sessions.service" ];
       restartIfChanged = false;
 
-      environment = lib.optionalAttrs config.hardware.opengl.setLdLibraryPath {
-        LD_LIBRARY_PATH = lib.makeLibraryPath [ pkgs.addOpenGLRunpath.driverLink ];
-      } // cfg.environment;
+      environment = cfg.environment;
 
       preStart = cfg.preStart;
       script = lib.mkIf (config.systemd.services.display-manager.enable == true) cfg.execCmd;
diff --git a/nixos/modules/services/editors/emacs.nix b/nixos/modules/services/editors/emacs.nix
index 35f257cee1e3a..98d8506e67278 100644
--- a/nixos/modules/services/editors/emacs.nix
+++ b/nixos/modules/services/editors/emacs.nix
@@ -6,8 +6,7 @@ let
 
   cfg = config.services.emacs;
 
-  editorScript = pkgs.writeScriptBin "emacseditor" ''
-    #!${pkgs.runtimeShell}
+  editorScript = pkgs.writeShellScriptBin "emacseditor" ''
     if [ -z "$1" ]; then
       exec ${cfg.package}/bin/emacsclient --create-frame --alternate-editor ${cfg.package}/bin/emacs
     else
@@ -70,8 +69,8 @@ in
       description = "Emacs: the extensible, self-documenting text editor";
 
       serviceConfig = {
-        Type = "forking";
-        ExecStart = "${pkgs.bash}/bin/bash -c 'source ${config.system.build.setEnvironment}; exec ${cfg.package}/bin/emacs --daemon'";
+        Type = "notify";
+        ExecStart = "${pkgs.runtimeShell} -c 'source ${config.system.build.setEnvironment}; exec ${cfg.package}/bin/emacs --fg-daemon'";
         ExecStop = "${cfg.package}/bin/emacsclient --eval (kill-emacs)";
         Restart = "always";
       };
diff --git a/nixos/modules/services/games/archisteamfarm.nix b/nixos/modules/services/games/archisteamfarm.nix
index 33898f8387e99..7062332db34ab 100644
--- a/nixos/modules/services/games/archisteamfarm.nix
+++ b/nixos/modules/services/games/archisteamfarm.nix
@@ -164,8 +164,11 @@ in
   };
 
   config = lib.mkIf cfg.enable {
-    # TODO: drop with 24.11
-    services.archisteamfarm.dataDir = lib.mkIf (lib.versionAtLeast config.system.stateVersion "24.05") (lib.mkDefault "/var/lib/asf");
+    services.archisteamfarm = {
+      # TODO: drop with 24.11
+      dataDir = lib.mkIf (lib.versionAtLeast config.system.stateVersion "24.05") (lib.mkDefault "/var/lib/asf");
+      settings.IPC = lib.mkIf (!cfg.web-ui.enable) false;
+    };
 
     users = {
       users.archisteamfarm = {
@@ -193,7 +196,7 @@ in
             Group = "archisteamfarm";
             WorkingDirectory = cfg.dataDir;
             Type = "simple";
-            ExecStart = "${lib.getExe cfg.package} --no-restart --process-required --service --system-required --path ${cfg.dataDir}";
+            ExecStart = "${lib.getExe cfg.package} --no-restart --service --system-required --path ${cfg.dataDir}";
             Restart = "always";
 
             # copied from the default systemd service at
diff --git a/nixos/modules/services/hardware/amdgpu.nix b/nixos/modules/services/hardware/amdgpu.nix
new file mode 100644
index 0000000000000..24016fc646975
--- /dev/null
+++ b/nixos/modules/services/hardware/amdgpu.nix
@@ -0,0 +1,43 @@
+{ config, lib, pkgs, ... }:
+
+let
+  cfg = config.hardware.amdgpu;
+in {
+  options.hardware.amdgpu = {
+    legacySupport.enable = lib.mkEnableOption ''
+      using `amdgpu` kernel driver instead of `radeon` for Southern Islands
+      (Radeon HD 7000) series and Sea Islands (Radeon HD 8000)
+      series cards. Note: this removes support for analog video outputs,
+      which is only available in the `radeon` driver
+    '';
+    initrd.enable = lib.mkEnableOption ''
+      loading `amdgpu` kernelModule in stage 1.
+      Can fix lower resolution in boot screen during initramfs phase
+    '';
+    opencl.enable = lib.mkEnableOption ''OpenCL support using ROCM runtime library'';
+    # cfg.amdvlk option is defined in ./amdvlk.nix module
+  };
+
+  config = {
+    boot.kernelParams = lib.optionals cfg.legacySupport.enable [
+      "amdgpu.si_support=1"
+      "amdgpu.cik_support=1"
+      "radeon.si_support=0"
+      "radeon.cik_support=0"
+    ];
+
+    boot.initrd.kernelModules = lib.optionals cfg.initrd.enable [ "amdgpu" ];
+
+    hardware.opengl = lib.mkIf cfg.opencl.enable {
+      enable = lib.mkDefault true;
+      extraPackages = [
+        pkgs.rocmPackages.clr
+        pkgs.rocmPackages.clr.icd
+      ];
+    };
+  };
+
+  meta = {
+    maintainers = with lib.maintainers; [ johnrtitor ];
+  };
+}
diff --git a/nixos/modules/services/hardware/amdvlk.nix b/nixos/modules/services/hardware/amdvlk.nix
new file mode 100644
index 0000000000000..32d6fb3be21dc
--- /dev/null
+++ b/nixos/modules/services/hardware/amdvlk.nix
@@ -0,0 +1,59 @@
+{ config, lib, pkgs, ... }:
+
+let
+  cfg = config.hardware.amdgpu.amdvlk;
+in {
+  options.hardware.amdgpu.amdvlk = {
+    enable = lib.mkEnableOption "AMDVLK Vulkan driver";
+
+    package = lib.mkPackageOption pkgs "amdvlk" { };
+
+    supportExperimental.enable = lib.mkEnableOption "Experimental features support";
+
+    support32Bit.enable = lib.mkEnableOption "32-bit driver support";
+    support32Bit.package = lib.mkPackageOption pkgs [ "driversi686Linux" "amdvlk" ] { };
+
+    settings = lib.mkOption {
+      type = with lib.types; attrsOf (either str int);
+      default = { };
+      example = {
+        AllowVkPipelineCachingToDisk = 1;
+        ShaderCacheMode = 1;
+        IFH = 0;
+        EnableVmAlwaysValid = 1;
+        IdleAfterSubmitGpuMask = 1;
+      };
+      description = ''
+        Runtime settings for AMDVLK to be configured {file}`/etc/amd/amdVulkanSettings.cfg`.
+        See [AMDVLK GitHub page](https://github.com/GPUOpen-Drivers/AMDVLK?tab=readme-ov-file#runtime-settings).
+      '';
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    hardware.graphics = {
+      enable = true;
+      extraPackages = [ cfg.package ];
+      extraPackages32 = [ cfg.support32Bit.package ];
+    };
+
+    services.xserver.videoDrivers = [ "amdgpu" ];
+
+    environment.sessionVariables = lib.mkIf cfg.supportExperimental.enable {
+      AMDVLK_ENABLE_DEVELOPING_EXT = "all";
+    };
+
+    environment.etc = lib.mkIf (cfg.settings != { }) {
+      "amd/amdVulkanSettings.cfg".text = lib.concatStrings
+        (lib.mapAttrsToList
+          (n: v: ''
+            ${n},${builtins.toString v}
+          '')
+          cfg.settings);
+    };
+  };
+
+  meta = {
+    maintainers = with lib.maintainers; [ johnrtitor ];
+  };
+}
diff --git a/nixos/modules/services/hardware/handheld-daemon.nix b/nixos/modules/services/hardware/handheld-daemon.nix
index 6c9d5aa3e22c8..a5ba1856d015b 100644
--- a/nixos/modules/services/hardware/handheld-daemon.nix
+++ b/nixos/modules/services/hardware/handheld-daemon.nix
@@ -8,7 +8,7 @@ with lib; let
 in
 {
   options.services.handheld-daemon = {
-    enable = mkEnableOption "Enable Handheld Daemon";
+    enable = mkEnableOption "Handheld Daemon";
     package = mkPackageOption pkgs "handheld-daemon" { };
 
     user = mkOption {
diff --git a/nixos/modules/services/hardware/kanata.nix b/nixos/modules/services/hardware/kanata.nix
index 46af3e36b9859..60fb33881f256 100644
--- a/nixos/modules/services/hardware/kanata.nix
+++ b/nixos/modules/services/hardware/kanata.nix
@@ -7,7 +7,7 @@ let
 
   upstreamDoc = "See [the upstream documentation](https://github.com/jtroo/kanata/blob/main/docs/config.adoc) and [example config files](https://github.com/jtroo/kanata/tree/main/cfg_samples) for more information.";
 
-  keyboard = {
+  keyboard = { name, config, ... }: {
     options = {
       devices = mkOption {
         type = types.listOf types.str;
@@ -48,6 +48,21 @@ let
           ${upstreamDoc}
         '';
       };
+      configFile = mkOption {
+        type = types.path;
+        default = mkConfig name config;
+        defaultText =
+          "A config file generated by values from other kanata module options.";
+        description = ''
+          The config file.
+
+          By default, it is generated by values from other kanata
+          module options.
+
+          You can also set it to your own full config file which
+          overrides all other kanata module options.  ${upstreamDoc}
+        '';
+      };
       extraArgs = mkOption {
         type = types.listOf types.str;
         default = [ ];
@@ -85,6 +100,10 @@ let
 
       ${keyboard.config}
     '';
+    # Only the config file generated by this module is checked.  A
+    # user-provided one is not checked because it may not be available
+    # at build time.  I think this is a good balance between module
+    # complexity and functionality.
     checkPhase = ''
       ${getExe cfg.package} --cfg "$target" --check --debug
     '';
@@ -96,7 +115,7 @@ let
       Type = "notify";
       ExecStart = ''
         ${getExe cfg.package} \
-          --cfg ${mkConfig name keyboard} \
+          --cfg ${keyboard.configFile} \
           --symlink-path ''${RUNTIME_DIRECTORY}/${name} \
           ${optionalString (keyboard.port != null) "--port ${toString keyboard.port}"} \
           ${utils.escapeSystemdExecArgs keyboard.extraArgs}
diff --git a/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix b/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix
index 6c6bc667e6498..bd12667a56474 100644
--- a/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix
+++ b/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix
@@ -69,14 +69,18 @@
     virtualisation.docker.daemon.settings = lib.mkIf
       (config.hardware.nvidia-container-toolkit.enable &&
        (lib.versionAtLeast config.virtualisation.docker.package.version "25")) {
-      features.cdi = true;
-    };
+         features.cdi = true;
+       };
 
     hardware.nvidia-container-toolkit.mounts = let
       nvidia-driver = config.hardware.nvidia.package;
     in (lib.mkMerge [
       [{ hostPath = pkgs.addDriverRunpath.driverLink;
          containerPath = pkgs.addDriverRunpath.driverLink; }
+       { hostPath = "${lib.getLib nvidia-driver}/etc";
+         containerPath = "${lib.getLib nvidia-driver}/etc"; }
+       { hostPath = "${lib.getLib nvidia-driver}/share";
+         containerPath = "${lib.getLib nvidia-driver}/share"; }
        { hostPath = "${lib.getLib pkgs.glibc}/lib";
          containerPath = "${lib.getLib pkgs.glibc}/lib"; }
        { hostPath = "${lib.getLib pkgs.glibc}/lib64";
diff --git a/nixos/modules/services/hardware/nvidia-optimus.nix b/nixos/modules/services/hardware/nvidia-optimus.nix
index d53175052c74a..307bc78098d14 100644
--- a/nixos/modules/services/hardware/nvidia-optimus.nix
+++ b/nixos/modules/services/hardware/nvidia-optimus.nix
@@ -23,7 +23,7 @@ let kernel = config.boot.kernelPackages; in
   ###### implementation
 
   config = lib.mkIf config.hardware.nvidiaOptimus.disable {
-    boot.blacklistedKernelModules = ["nouveau" "nvidia" "nvidiafb" "nvidia-drm"];
+    boot.blacklistedKernelModules = ["nouveau" "nvidia" "nvidiafb" "nvidia-drm" "nvidia-modeset"];
     boot.kernelModules = [ "bbswitch" ];
     boot.extraModulePackages = [ kernel.bbswitch ];
 
diff --git a/nixos/modules/services/hardware/power-profiles-daemon.nix b/nixos/modules/services/hardware/power-profiles-daemon.nix
index 05e5b7a00b420..7651c65b9f181 100644
--- a/nixos/modules/services/hardware/power-profiles-daemon.nix
+++ b/nixos/modules/services/hardware/power-profiles-daemon.nix
@@ -39,6 +39,12 @@ in
           which conflicts with services.tlp.enable = true;
         '';
       }
+      { assertion = !config.services.auto-cpufreq.enable;
+        message = ''
+          You have set services.power-profiles-daemon.enable = true;
+          which conflicts with services.auto-cpufreq.enable = true;
+        '';
+      }
     ];
 
     environment.systemPackages = [ cfg.package ];
diff --git a/nixos/modules/services/home-automation/ebusd.nix b/nixos/modules/services/home-automation/ebusd.nix
index ac9ec06639c13..f5c5479e8eaff 100644
--- a/nixos/modules/services/home-automation/ebusd.nix
+++ b/nixos/modules/services/home-automation/ebusd.nix
@@ -138,7 +138,7 @@ in
       after = [ "network.target" ];
       serviceConfig = {
         ExecStart = let
-          args = cli.toGNUCommandLineShell { } (foldr (a: b: a // b) { } [
+          args = cli.toGNUCommandLineShell { optionValueSeparator = "="; } (foldr (a: b: a // b) { } [
             {
               inherit (cfg) device port configpath scanconfig readonly;
               foreground = true;
diff --git a/nixos/modules/services/home-automation/wyoming/faster-whisper.nix b/nixos/modules/services/home-automation/wyoming/faster-whisper.nix
index d0fca6a41c7b6..45664103665f7 100644
--- a/nixos/modules/services/home-automation/wyoming/faster-whisper.nix
+++ b/nixos/modules/services/home-automation/wyoming/faster-whisper.nix
@@ -113,6 +113,9 @@ in
       nameValuePair "wyoming-faster-whisper-${server}" {
         inherit (options) enable;
         description = "Wyoming faster-whisper server instance ${server}";
+        wants = [
+          "network-online.target"
+        ];
         after = [
           "network-online.target"
         ];
diff --git a/nixos/modules/services/home-automation/wyoming/openwakeword.nix b/nixos/modules/services/home-automation/wyoming/openwakeword.nix
index 856a4ef7366d0..f9848970bf734 100644
--- a/nixos/modules/services/home-automation/wyoming/openwakeword.nix
+++ b/nixos/modules/services/home-automation/wyoming/openwakeword.nix
@@ -108,6 +108,9 @@ in
   config = mkIf cfg.enable {
     systemd.services."wyoming-openwakeword" = {
       description = "Wyoming openWakeWord server";
+      wants = [
+        "network-online.target"
+      ];
       after = [
         "network-online.target"
       ];
diff --git a/nixos/modules/services/home-automation/wyoming/piper.nix b/nixos/modules/services/home-automation/wyoming/piper.nix
index 5b5f898d7ca35..a26fe8e84f609 100644
--- a/nixos/modules/services/home-automation/wyoming/piper.nix
+++ b/nixos/modules/services/home-automation/wyoming/piper.nix
@@ -117,6 +117,9 @@ in
       nameValuePair "wyoming-piper-${server}" {
         inherit (options) enable;
         description = "Wyoming Piper server instance ${server}";
+        wants = [
+          "network-online.target"
+        ];
         after = [
           "network-online.target"
         ];
diff --git a/nixos/modules/services/logging/journalwatch.nix b/nixos/modules/services/logging/journalwatch.nix
index 71b29d57b7eb7..48fd992ffb65a 100644
--- a/nixos/modules/services/logging/journalwatch.nix
+++ b/nixos/modules/services/logging/journalwatch.nix
@@ -56,6 +56,8 @@ in {
         '';
       };
 
+      package = mkPackageOption pkgs "journalwatch" { };
+
       priority = mkOption {
         type = types.int;
         default = 6;
@@ -240,7 +242,7 @@ in {
         # requires a relative directory name to create beneath /var/lib
         StateDirectory = user;
         StateDirectoryMode = "0750";
-        ExecStart = "${pkgs.python3Packages.journalwatch}/bin/journalwatch mail";
+        ExecStart = "${getExe cfg.package} mail";
         # lowest CPU and IO priority, but both still in best-effort class to prevent starvation
         Nice=19;
         IOSchedulingPriority=7;
diff --git a/nixos/modules/services/mail/postsrsd.nix b/nixos/modules/services/mail/postsrsd.nix
index 2ebc675ab10af..92f01dd4101e8 100644
--- a/nixos/modules/services/mail/postsrsd.nix
+++ b/nixos/modules/services/mail/postsrsd.nix
@@ -120,14 +120,9 @@ in {
         if [ ! -e "${cfg.secretsFile}" ]; then
           echo "WARNING: secrets file not found, autogenerating!"
           DIR="$(dirname "${cfg.secretsFile}")"
-          if [ ! -d "$DIR" ]; then
-            mkdir -p -m750 "$DIR"
-            chown "${cfg.user}:${cfg.group}" "$DIR"
-          fi
-          dd if=/dev/random bs=18 count=1 | base64 > "${cfg.secretsFile}"
-          chmod 600 "${cfg.secretsFile}"
+          install -m 750 -o ${cfg.user} -g ${cfg.group} -d "$DIR"
+          install -m 600 -o ${cfg.user} -g ${cfg.group} <(dd if=/dev/random bs=18 count=1 | base64) "${cfg.secretsFile}"
         fi
-        chown "${cfg.user}:${cfg.group}" "${cfg.secretsFile}"
       '';
     };
 
diff --git a/nixos/modules/services/mail/public-inbox.nix b/nixos/modules/services/mail/public-inbox.nix
index 14a2ab48fa250..98063e0331bd8 100644
--- a/nixos/modules/services/mail/public-inbox.nix
+++ b/nixos/modules/services/mail/public-inbox.nix
@@ -455,7 +455,7 @@ in
           after = [ "public-inbox-init.service" "public-inbox-watch.service" ];
           requires = [ "public-inbox-init.service" ];
           serviceConfig = {
-            BindPathsReadOnly =
+            BindReadOnlyPaths =
               map (c: c.dir) (lib.attrValues cfg.settings.coderepo);
             ExecStart = escapeShellArgs (
               [ "${cfg.package}/bin/public-inbox-httpd" ] ++
diff --git a/nixos/modules/services/mail/stalwart-mail.nix b/nixos/modules/services/mail/stalwart-mail.nix
index c69a2ca400bae..ed3c5389354ce 100644
--- a/nixos/modules/services/mail/stalwart-mail.nix
+++ b/nixos/modules/services/mail/stalwart-mail.nix
@@ -7,28 +7,13 @@ let
   configFormat = pkgs.formats.toml { };
   configFile = configFormat.generate "stalwart-mail.toml" cfg.settings;
   dataDir = "/var/lib/stalwart-mail";
-  stalwartAtLeast = versionAtLeast cfg.package.version;
+  useLegacyStorage = versionOlder config.system.stateVersion "24.11";
 
 in {
   options.services.stalwart-mail = {
     enable = mkEnableOption "the Stalwart all-in-one email server";
 
-    package = mkOption {
-      type = types.package;
-      description = ''
-        Which package to use for the Stalwart mail server.
-
-        ::: {.note}
-        Upgrading from version 0.6.0 to version 0.7.0 or higher requires manual
-        intervention. See <https://github.com/stalwartlabs/mail-server/blob/main/UPGRADING.md>
-        for upgrade instructions.
-        :::
-      '';
-      default = pkgs.stalwart-mail_0_6;
-      defaultText = lib.literalExpression "pkgs.stalwart-mail_0_6";
-      example = lib.literalExpression "pkgs.stalwart-mail";
-      relatedPackages = [ "stalwart-mail_0_6" "stalwart-mail" ];
-    };
+    package = mkPackageOption pkgs "stalwart-mail" { };
 
     settings = mkOption {
       inherit (configFormat) type;
@@ -44,90 +29,109 @@ in {
 
   config = mkIf cfg.enable {
 
-    warnings = lib.optionals (!stalwartAtLeast "0.7.0") [
-      ''
-        Versions of stalwart-mail < 0.7.0 will get deprecated in NixOS 24.11.
-        Please set services.stalwart-mail.package to pkgs.stalwart-mail to
-        upgrade to the latest version.
-        Please note that upgrading to version >= 0.7 requires manual
-        intervention, see <https://github.com/stalwartlabs/mail-server/blob/main/UPGRADING.md>
-        for upgrade instructions.
-      ''
-    ];
-
     # Default config: all local
     services.stalwart-mail.settings = {
-      global.tracing.method = mkDefault "stdout";
-      global.tracing.level = mkDefault "info";
+      tracer.stdout = {
+        type = mkDefault "stdout";
+        level = mkDefault "info";
+        ansi = mkDefault false;  # no colour markers to journald
+        enable = mkDefault true;
+      };
       queue.path = mkDefault "${dataDir}/queue";
       report.path = mkDefault "${dataDir}/reports";
-      store.db.type = mkDefault "sqlite";
-      store.db.path = mkDefault "${dataDir}/data/index.sqlite3";
-      store.blob.type = mkDefault "fs";
-      store.blob.path = mkDefault "${dataDir}/data/blobs";
+      store = if useLegacyStorage then {
+        # structured data in SQLite, blobs on filesystem
+        db.type = mkDefault "sqlite";
+        db.path = mkDefault "${dataDir}/data/index.sqlite3";
+        fs.type = mkDefault "fs";
+        fs.path = mkDefault "${dataDir}/data/blobs";
+      } else {
+        # everything in RocksDB
+        db.type = mkDefault "rocksdb";
+        db.path = mkDefault "${dataDir}/db";
+        db.compression = mkDefault "lz4";
+      };
       storage.data = mkDefault "db";
       storage.fts = mkDefault "db";
       storage.lookup = mkDefault "db";
-      storage.blob = mkDefault "blob";
+      storage.blob = mkDefault (if useLegacyStorage then "fs" else "db");
+      directory.internal.type = mkDefault "internal";
+      directory.internal.store = mkDefault "db";
+      storage.directory = mkDefault "internal";
       resolver.type = mkDefault "system";
-      resolver.public-suffix = mkDefault ["https://publicsuffix.org/list/public_suffix_list.dat"];
+      resolver.public-suffix = lib.mkDefault [
+        "file://${pkgs.publicsuffix-list}/share/publicsuffix/public_suffix_list.dat"
+      ];
     };
 
-    systemd.services.stalwart-mail = {
-      wantedBy = [ "multi-user.target" ];
-      after = [ "local-fs.target" "network.target" ];
-
-      preStart = ''
-        mkdir -p ${dataDir}/{queue,reports,data/blobs}
-      '';
+    # This service stores a potentially large amount of data.
+    # Running it as a dynamic user would force chown to be run everytime the
+    # service is restarted on a potentially large number of files.
+    # That would cause unnecessary and unwanted delays.
+    users = {
+      groups.stalwart-mail = { };
+      users.stalwart-mail = {
+        isSystemUser = true;
+        group = "stalwart-mail";
+      };
+    };
 
-      serviceConfig = {
-        ExecStart =
-          "${cfg.package}/bin/stalwart-mail --config=${configFile}";
-
-        # Base from template resources/systemd/stalwart-mail.service
-        Type = "simple";
-        LimitNOFILE = 65536;
-        KillMode = "process";
-        KillSignal = "SIGINT";
-        Restart = "on-failure";
-        RestartSec = 5;
-        StandardOutput = "journal";
-        StandardError = "journal";
-        SyslogIdentifier = "stalwart-mail";
-
-        DynamicUser = true;
-        User = "stalwart-mail";
-        StateDirectory = "stalwart-mail";
-
-        # Bind standard privileged ports
-        AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ];
-        CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ];
-
-        # Hardening
-        DeviceAllow = [ "" ];
-        LockPersonality = true;
-        MemoryDenyWriteExecute = true;
-        PrivateDevices = true;
-        PrivateUsers = false;  # incompatible with CAP_NET_BIND_SERVICE
-        ProcSubset = "pid";
-        PrivateTmp = true;
-        ProtectClock = true;
-        ProtectControlGroups = true;
-        ProtectHome = true;
-        ProtectHostname = true;
-        ProtectKernelLogs = true;
-        ProtectKernelModules = true;
-        ProtectKernelTunables = true;
-        ProtectProc = "invisible";
-        ProtectSystem = "strict";
-        RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
-        RestrictNamespaces = true;
-        RestrictRealtime = true;
-        RestrictSUIDSGID = true;
-        SystemCallArchitectures = "native";
-        SystemCallFilter = [ "@system-service" "~@privileged" ];
-        UMask = "0077";
+    systemd = {
+      packages = [ cfg.package ];
+      services.stalwart-mail = {
+        wantedBy = [ "multi-user.target" ];
+        after = [ "local-fs.target" "network.target" ];
+
+        preStart = if useLegacyStorage then ''
+          mkdir -p ${dataDir}/{queue,reports,data/blobs}
+        '' else ''
+          mkdir -p ${dataDir}/{queue,reports,db}
+        '';
+
+        serviceConfig = {
+          ExecStart = [
+            ""
+            "${cfg.package}/bin/stalwart-mail --config=${configFile}"
+          ];
+
+          StandardOutput = "journal";
+          StandardError = "journal";
+
+          StateDirectory = "stalwart-mail";
+
+          # Bind standard privileged ports
+          AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ];
+          CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ];
+
+          # Hardening
+          DeviceAllow = [ "" ];
+          LockPersonality = true;
+          MemoryDenyWriteExecute = true;
+          PrivateDevices = true;
+          PrivateUsers = false;  # incompatible with CAP_NET_BIND_SERVICE
+          ProcSubset = "pid";
+          PrivateTmp = true;
+          ProtectClock = true;
+          ProtectControlGroups = true;
+          ProtectHome = true;
+          ProtectHostname = true;
+          ProtectKernelLogs = true;
+          ProtectKernelModules = true;
+          ProtectKernelTunables = true;
+          ProtectProc = "invisible";
+          ProtectSystem = "strict";
+          RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
+          RestrictNamespaces = true;
+          RestrictRealtime = true;
+          RestrictSUIDSGID = true;
+          SystemCallArchitectures = "native";
+          SystemCallFilter = [ "@system-service" "~@privileged" ];
+          UMask = "0077";
+        };
+        unitConfig.ConditionPathExists = [
+          ""
+          "${configFile}"
+        ];
       };
     };
 
@@ -136,6 +140,6 @@ in {
   };
 
   meta = {
-    maintainers = with maintainers; [ happysalada pacien ];
+    maintainers = with maintainers; [ happysalada pacien onny ];
   };
 }
diff --git a/nixos/modules/services/matrix/synapse.nix b/nixos/modules/services/matrix/synapse.nix
index bc88fb53012b7..6d2e6201d66d3 100644
--- a/nixos/modules/services/matrix/synapse.nix
+++ b/nixos/modules/services/matrix/synapse.nix
@@ -1121,7 +1121,7 @@ in {
           The client listener on matrix-synapse is configured to use UNIX domain sockets.
           This configuration is incompatible with the `register_new_matrix_user` script.
 
-          Disable  `services.mastrix-synapse.enableRegistrationScript` to continue.
+          Disable  `services.matrix-synapse.enableRegistrationScript` to continue.
         '';
       }
     ]
diff --git a/nixos/modules/services/misc/amazon-ssm-agent.nix b/nixos/modules/services/misc/amazon-ssm-agent.nix
index 9ab4a7f96d087..0da10621d0a09 100644
--- a/nixos/modules/services/misc/amazon-ssm-agent.nix
+++ b/nixos/modules/services/misc/amazon-ssm-agent.nix
@@ -28,13 +28,7 @@ in {
 
   options.services.amazon-ssm-agent = {
     enable = mkEnableOption "Amazon SSM agent";
-
-    package = mkOption {
-      type = types.path;
-      description = "The Amazon SSM agent package to use";
-      default = pkgs.amazon-ssm-agent.override { overrideEtc = false; };
-      defaultText = literalExpression "pkgs.amazon-ssm-agent.override { overrideEtc = false; }";
-    };
+    package = mkPackageOption pkgs "amazon-ssm-agent" {};
   };
 
   config = mkIf cfg.enable {
diff --git a/nixos/modules/services/misc/anki-sync-server.md b/nixos/modules/services/misc/anki-sync-server.md
index f58d3d8ad0dab..5482a4aa0e5ff 100644
--- a/nixos/modules/services/misc/anki-sync-server.md
+++ b/nixos/modules/services/misc/anki-sync-server.md
@@ -52,7 +52,7 @@ following options:
 
 ```nix
 {
-  services.anki-sync-server.host = "0.0.0.0";
+  services.anki-sync-server.address = "0.0.0.0";
   services.anki-sync-server.openFirewall = true;
 }
 ```
diff --git a/nixos/modules/services/misc/devpi-server.nix b/nixos/modules/services/misc/devpi-server.nix
index 0234db4bc2c5b..92c0c6206c8b3 100644
--- a/nixos/modules/services/misc/devpi-server.nix
+++ b/nixos/modules/services/misc/devpi-server.nix
@@ -74,8 +74,9 @@ in
       # have 0600 permissions.
       preStart =
         ''
-          cp ${cfg.secretFile} ${runtimeDir}/${secretsFileName}
-          chmod 0600 ${runtimeDir}/*${secretsFileName}
+          ${optionalString (!isNull cfg.secretFile)
+            "install -Dm 0600 \${CREDENTIALS_DIRECTORY}/devpi-secret ${runtimeDir}/${secretsFileName}"
+          }
 
           if [ -f ${serverDir}/.nodeinfo ]; then
             # already initialized the package index, exit gracefully
@@ -85,6 +86,9 @@ in
         + strings.optionalString cfg.replica "--role=replica --master-url=${cfg.primaryUrl}";
 
       serviceConfig = {
+        LoadCredential = lib.mkIf (! isNull cfg.secretFile) [
+          "devpi-secret:${cfg.secretFile}"
+        ];
         Restart = "always";
         ExecStart =
           let
diff --git a/nixos/modules/services/misc/forgejo.nix b/nixos/modules/services/misc/forgejo.nix
index babed2d5acd48..9a102918f35e3 100644
--- a/nixos/modules/services/misc/forgejo.nix
+++ b/nixos/modules/services/misc/forgejo.nix
@@ -12,6 +12,15 @@ let
   usePostgresql = cfg.database.type == "postgres";
   useSqlite = cfg.database.type == "sqlite3";
 
+  secrets = let
+    mkSecret = section: values: lib.mapAttrsToList (key: value: {
+      env = envEscape "FORGEJO__${section}__${key}__FILE";
+      path = value;
+    }) values;
+    # https://codeberg.org/forgejo/forgejo/src/tag/v7.0.2/contrib/environment-to-ini/environment-to-ini.go
+    envEscape = string: lib.replaceStrings [ "." "-" ] [ "_0X2E_" "_0X2D_" ] (lib.strings.toUpper string);
+  in lib.flatten (lib.mapAttrsToList mkSecret cfg.secrets);
+
   inherit (lib)
     literalExpression
     mkChangedOptionModule
@@ -34,6 +43,7 @@ in
     (mkRenamedOptionModule [ "services" "forgejo" "appName" ] [ "services" "forgejo" "settings" "DEFAULT" "APP_NAME" ])
     (mkRemovedOptionModule [ "services" "forgejo" "extraConfig" ] "services.forgejo.extraConfig has been removed. Please use the freeform services.forgejo.settings option instead")
     (mkRemovedOptionModule [ "services" "forgejo" "database" "password" ] "services.forgejo.database.password has been removed. Please use services.forgejo.database.passwordFile instead")
+    (mkRenamedOptionModule [ "services" "forgejo" "mailerPasswordFile" ] [ "services" "forgejo" "secrets" "mailer" "PASSWD" ])
 
     # copied from services.gitea; remove at some point
     (mkRenamedOptionModule [ "services" "forgejo" "cookieSecure" ] [ "services" "forgejo" "settings" "session" "COOKIE_SECURE" ])
@@ -224,13 +234,6 @@ in
         description = "Path to the git repositories.";
       };
 
-      mailerPasswordFile = mkOption {
-        type = types.nullOr types.str;
-        default = null;
-        example = "/run/keys/forgejo-mailpw";
-        description = "Path to a file containing the SMTP password.";
-      };
-
       settings = mkOption {
         default = { };
         description = ''
@@ -347,6 +350,44 @@ in
           };
         };
       };
+
+      secrets = mkOption {
+        default = { };
+        description = ''
+          This is a small wrapper over systemd's `LoadCredential`.
+
+          It takes the same sections and keys as {option}`services.forgejo.settings`,
+          but the value of each key is a path instead of a string or bool.
+
+          The path is then loaded as credential, exported as environment variable
+          and then feed through
+          <https://codeberg.org/forgejo/forgejo/src/branch/forgejo/contrib/environment-to-ini/environment-to-ini.go>.
+
+          It does the required environment variable escaping for you.
+
+          ::: {.note}
+          Keys specified here take priority over the ones in {option}`services.forgejo.settings`!
+          :::
+        '';
+        example = literalExpression ''
+        {
+          metrics = {
+            TOKEN = "/run/keys/forgejo-metrics-token";
+          };
+          camo = {
+            HMAC_KEY = "/run/keys/forgejo-camo-hmac";
+          };
+          service = {
+            HCAPTCHA_SECRET = "/run/keys/forgejo-hcaptcha-secret";
+            HCAPTCHA_SITEKEY = "/run/keys/forgejo-hcaptcha-sitekey";
+          };
+        }
+        '';
+        type = types.submodule {
+          freeformType = with types; attrsOf (attrsOf path);
+          options = { };
+        };
+      };
     };
   };
 
@@ -381,7 +422,6 @@ in
           HOST = if cfg.database.socket != null then cfg.database.socket else cfg.database.host + ":" + toString cfg.database.port;
           NAME = cfg.database.name;
           USER = cfg.database.user;
-          PASSWD = "#dbpass#";
         })
         (mkIf useSqlite {
           PATH = cfg.database.path;
@@ -397,7 +437,6 @@ in
 
       server = mkIf cfg.lfs.enable {
         LFS_START_SERVER = true;
-        LFS_JWT_SECRET = "#lfsjwtsecret#";
       };
 
       session = {
@@ -405,21 +444,30 @@ in
       };
 
       security = {
-        SECRET_KEY = "#secretkey#";
-        INTERNAL_TOKEN = "#internaltoken#";
         INSTALL_LOCK = true;
       };
 
-      mailer = mkIf (cfg.mailerPasswordFile != null) {
-        PASSWD = "#mailerpass#";
+      lfs = mkIf cfg.lfs.enable {
+        PATH = cfg.lfs.contentDir;
+      };
+    };
+
+    services.forgejo.secrets = {
+      security = {
+        SECRET_KEY = "${cfg.customDir}/conf/secret_key";
+        INTERNAL_TOKEN = "${cfg.customDir}/conf/internal_token";
       };
 
       oauth2 = {
-        JWT_SECRET = "#oauth2jwtsecret#";
+        JWT_SECRET = "${cfg.customDir}/conf/oauth2_jwt_secret";
       };
 
-      lfs = mkIf cfg.lfs.enable {
-        PATH = cfg.lfs.contentDir;
+      database = mkIf (cfg.database.passwordFile != null) {
+        PASSWD = cfg.database.passwordFile;
+      };
+
+      server = mkIf cfg.lfs.enable {
+        LFS_JWT_SECRET = "${cfg.customDir}/conf/lfs_jwt_secret";
       };
     };
 
@@ -476,6 +524,37 @@ in
       "z '${cfg.lfs.contentDir}' 0750 ${cfg.user} ${cfg.group} - -"
     ];
 
+    systemd.services.forgejo-secrets = mkIf (!cfg.useWizard) {
+      description = "Forgejo secret bootstrap helper";
+      script = ''
+        if [ ! -s '${cfg.secrets.security.SECRET_KEY}' ]; then
+            ${exe} generate secret SECRET_KEY > '${cfg.secrets.security.SECRET_KEY}'
+        fi
+
+        if [ ! -s '${cfg.secrets.oauth2.JWT_SECRET}' ]; then
+            ${exe} generate secret JWT_SECRET > '${cfg.secrets.oauth2.JWT_SECRET}'
+        fi
+
+        ${optionalString cfg.lfs.enable ''
+        if [ ! -s '${cfg.secrets.server.LFS_JWT_SECRET}' ]; then
+            ${exe} generate secret LFS_JWT_SECRET > '${cfg.secrets.server.LFS_JWT_SECRET}'
+        fi
+        ''}
+
+        if [ ! -s '${cfg.secrets.security.INTERNAL_TOKEN}' ]; then
+            ${exe} generate secret INTERNAL_TOKEN > '${cfg.secrets.security.INTERNAL_TOKEN}'
+        fi
+      '';
+      serviceConfig = {
+        Type = "oneshot";
+        RemainAfterExit = true;
+        User = cfg.user;
+        Group = cfg.group;
+        ReadWritePaths = [ cfg.customDir ];
+        UMask = "0077";
+      };
+    };
+
     systemd.services.forgejo = {
       description = "Forgejo (Beyond coding. We forge.)";
       after = [
@@ -484,11 +563,15 @@ in
         "postgresql.service"
       ] ++ optionals useMysql [
         "mysql.service"
+      ] ++ optionals (!cfg.useWizard) [
+        "forgejo-secrets.service"
       ];
       requires = optionals (cfg.database.createDatabase && usePostgresql) [
         "postgresql.service"
       ] ++ optionals (cfg.database.createDatabase && useMysql) [
         "mysql.service"
+      ] ++ optionals (!cfg.useWizard) [
+        "forgejo-secrets.service"
       ];
       wantedBy = [ "multi-user.target" ];
       path = [ cfg.package pkgs.git pkgs.gnupg ];
@@ -501,61 +584,15 @@ in
       # lfs_jwt_secret.
       # We have to consider this to stay compatible with older installations.
       preStart =
-        let
-          runConfig = "${cfg.customDir}/conf/app.ini";
-          secretKey = "${cfg.customDir}/conf/secret_key";
-          oauth2JwtSecret = "${cfg.customDir}/conf/oauth2_jwt_secret";
-          oldLfsJwtSecret = "${cfg.customDir}/conf/jwt_secret"; # old file for LFS_JWT_SECRET
-          lfsJwtSecret = "${cfg.customDir}/conf/lfs_jwt_secret"; # new file for LFS_JWT_SECRET
-          internalToken = "${cfg.customDir}/conf/internal_token";
-          replaceSecretBin = "${pkgs.replace-secret}/bin/replace-secret";
-        in
         ''
-          # copy custom configuration and generate random secrets if needed
-          ${lib.optionalString (!cfg.useWizard) ''
+          ${optionalString (!cfg.useWizard) ''
             function forgejo_setup {
-              cp -f '${format.generate "app.ini" cfg.settings}' '${runConfig}'
-
-              if [ ! -s '${secretKey}' ]; then
-                  ${exe} generate secret SECRET_KEY > '${secretKey}'
-              fi
-
-              # Migrate LFS_JWT_SECRET filename
-              if [[ -s '${oldLfsJwtSecret}' && ! -s '${lfsJwtSecret}' ]]; then
-                  mv '${oldLfsJwtSecret}' '${lfsJwtSecret}'
-              fi
-
-              if [ ! -s '${oauth2JwtSecret}' ]; then
-                  ${exe} generate secret JWT_SECRET > '${oauth2JwtSecret}'
-              fi
-
-              ${optionalString cfg.lfs.enable ''
-              if [ ! -s '${lfsJwtSecret}' ]; then
-                  ${exe} generate secret LFS_JWT_SECRET > '${lfsJwtSecret}'
-              fi
-              ''}
-
-              if [ ! -s '${internalToken}' ]; then
-                  ${exe} generate secret INTERNAL_TOKEN > '${internalToken}'
-              fi
-
-              chmod u+w '${runConfig}'
-              ${replaceSecretBin} '#secretkey#' '${secretKey}' '${runConfig}'
-              ${replaceSecretBin} '#oauth2jwtsecret#' '${oauth2JwtSecret}' '${runConfig}'
-              ${replaceSecretBin} '#internaltoken#' '${internalToken}' '${runConfig}'
-
-              ${optionalString cfg.lfs.enable ''
-                ${replaceSecretBin} '#lfsjwtsecret#' '${lfsJwtSecret}' '${runConfig}'
-              ''}
-
-              ${optionalString (cfg.database.passwordFile != null) ''
-                ${replaceSecretBin} '#dbpass#' '${cfg.database.passwordFile}' '${runConfig}'
-              ''}
-
-              ${optionalString (cfg.mailerPasswordFile != null) ''
-                ${replaceSecretBin} '#mailerpass#' '${cfg.mailerPasswordFile}' '${runConfig}'
-              ''}
-              chmod u-w '${runConfig}'
+              config='${cfg.customDir}/conf/app.ini'
+              cp -f '${format.generate "app.ini" cfg.settings}' "$config"
+
+              chmod u+w "$config"
+              ${lib.getExe' cfg.package "environment-to-ini"} --config "$config"
+              chmod u-w "$config"
             }
             (umask 027; forgejo_setup)
           ''}
@@ -616,6 +653,8 @@ in
         # System Call Filtering
         SystemCallArchitectures = "native";
         SystemCallFilter = [ "~@cpu-emulation @debug @keyring @mount @obsolete @privileged @setuid" "setrlimit" ];
+        # cfg.secrets
+        LoadCredential = map (e: "${e.env}:${e.path}") secrets;
       };
 
       environment = {
@@ -625,7 +664,7 @@ in
         # is resolved.
         GITEA_WORK_DIR = cfg.stateDir;
         GITEA_CUSTOM = cfg.customDir;
-      };
+      } // lib.listToAttrs (map (e: lib.nameValuePair e.env "%d/${e.env}") secrets);
     };
 
     services.openssh.settings.AcceptEnv = mkIf (!cfg.settings.START_SSH_SERVER or false) "GIT_PROTOCOL";
diff --git a/nixos/modules/services/misc/gitea.nix b/nixos/modules/services/misc/gitea.nix
index a8526688b074f..d43250c882683 100644
--- a/nixos/modules/services/misc/gitea.nix
+++ b/nixos/modules/services/misc/gitea.nix
@@ -722,5 +722,5 @@ in
       timerConfig.OnCalendar = cfg.dump.interval;
     };
   };
-  meta.maintainers = with lib.maintainers; [ srhb ma27 pyrox0 ];
+  meta.maintainers = with lib.maintainers; [ ma27 techknowlogick SuperSandro2000 ];
 }
diff --git a/nixos/modules/services/misc/gollum.nix b/nixos/modules/services/misc/gollum.nix
index 3966ef036bec4..f320e78a91060 100644
--- a/nixos/modules/services/misc/gollum.nix
+++ b/nixos/modules/services/misc/gollum.nix
@@ -110,7 +110,7 @@ in
     users.groups."${cfg.group}" = { };
 
     systemd.tmpfiles.rules = [
-      "d '${cfg.stateDir}' - ${config.users.users.gollum.name} ${config.users.groups.gollum.name} - -"
+      "d '${cfg.stateDir}' - ${cfg.user} ${cfg.group} - -"
     ];
 
     systemd.services.gollum = {
diff --git a/nixos/modules/services/misc/graphical-desktop.nix b/nixos/modules/services/misc/graphical-desktop.nix
index a88c02e610bf4..c8fe0d921c6ad 100644
--- a/nixos/modules/services/misc/graphical-desktop.nix
+++ b/nixos/modules/services/misc/graphical-desktop.nix
@@ -38,7 +38,7 @@ in
 
     fonts.enableDefaultPackages = lib.mkDefault true;
 
-    hardware.opengl.enable = lib.mkDefault true;
+    hardware.graphics.enable = lib.mkDefault true;
 
     programs.gnupg.agent.pinentryPackage = lib.mkOverride 1100 pkgs.pinentry-gnome3;
 
diff --git a/nixos/modules/services/misc/invidious-router.nix b/nixos/modules/services/misc/invidious-router.nix
index 33da7e96b5235..7a90c6ab9ddc0 100644
--- a/nixos/modules/services/misc/invidious-router.nix
+++ b/nixos/modules/services/misc/invidious-router.nix
@@ -8,10 +8,10 @@
   settingsFormat = pkgs.formats.yaml {};
   configFile = settingsFormat.generate "config.yaml" cfg.settings;
 in {
-  meta.maintainers = [lib.maintainers.s1ls];
+  meta.maintainers = [lib.maintainers.sils];
 
   options.services.invidious-router = {
-    enable = lib.mkEnableOption "Enables the invidious-router service";
+    enable = lib.mkEnableOption "the invidious-router service";
     port = lib.mkOption {
       type = lib.types.port;
       default = 8050;
diff --git a/nixos/modules/services/misc/jellyfin.nix b/nixos/modules/services/misc/jellyfin.nix
index a1d3910bd93b0..a006090878422 100644
--- a/nixos/modules/services/misc/jellyfin.nix
+++ b/nixos/modules/services/misc/jellyfin.nix
@@ -160,5 +160,5 @@ in
 
   };
 
-  meta.maintainers = with maintainers; [ minijackson nu-nu-ko ];
+  meta.maintainers = with maintainers; [ minijackson fsnkty ];
 }
diff --git a/nixos/modules/services/misc/mqtt2influxdb.nix b/nixos/modules/services/misc/mqtt2influxdb.nix
index a2d6a2b34a239..925139b449b8e 100644
--- a/nixos/modules/services/misc/mqtt2influxdb.nix
+++ b/nixos/modules/services/misc/mqtt2influxdb.nix
@@ -125,6 +125,7 @@ in {
   options = {
     services.mqtt2influxdb = {
       enable = mkEnableOption "BigClown MQTT to InfluxDB bridge.";
+      package = mkPackageOption pkgs ["python3Packages" "mqtt2influxdb"] {};
       environmentFiles = mkOption {
         type = types.listOf types.path;
         default = [];
@@ -245,7 +246,7 @@ in {
       '';
       serviceConfig = {
         EnvironmentFile = cfg.environmentFiles;
-        ExecStart = "${cfg.package}/bin/mqtt2influxdb -dc ${finalConfig}";
+        ExecStart = "${lib.getExe cfg.package} -dc ${finalConfig}";
         RuntimeDirectory = "mqtt2influxdb";
       };
     };
diff --git a/nixos/modules/services/misc/ollama.nix b/nixos/modules/services/misc/ollama.nix
index c0341984aa351..886eaa180b9ef 100644
--- a/nixos/modules/services/misc/ollama.nix
+++ b/nixos/modules/services/misc/ollama.nix
@@ -11,6 +11,11 @@ let
   };
 in
 {
+  imports = [
+    (lib.mkRemovedOptionModule [ "services" "ollama" "listenAddress" ]
+      "Use `services.ollama.host` and `services.ollama.port` instead.")
+  ];
+
   options = {
     services.ollama = {
       enable = lib.mkEnableOption "ollama server for local large language models";
@@ -64,12 +69,20 @@ in
           See also `services.ollama.sandbox`.
         '';
       };
-      listenAddress = lib.mkOption {
+      host = lib.mkOption {
         type = types.str;
-        default = "127.0.0.1:11434";
-        example = "0.0.0.0:11111";
+        default = "127.0.0.1";
+        example = "0.0.0.0";
         description = ''
-          The address which the ollama server HTTP interface binds and listens to.
+          The host address which the ollama server HTTP interface listens to.
+        '';
+      };
+      port = lib.mkOption {
+        type = types.port;
+        default = 11434;
+        example = 11111;
+        description = ''
+          Which port the ollama server listens to.
         '';
       };
       acceleration = lib.mkOption {
@@ -80,9 +93,9 @@ in
           What interface to use for hardware acceleration.
 
           - `null`: default behavior
-            if `nixpkgs.config.rocmSupport` is enabled, uses `"rocm"`
-            if `nixpkgs.config.cudaSupport` is enabled, uses `"cuda"`
-            otherwise defaults to `false`
+            - if `nixpkgs.config.rocmSupport` is enabled, uses `"rocm"`
+            - if `nixpkgs.config.cudaSupport` is enabled, uses `"cuda"`
+            - otherwise defaults to `false`
           - `false`: disable GPU, only use CPU
           - `"rocm"`: supported by most modern AMD GPUs
           - `"cuda"`: supported by most modern NVIDIA GPUs
@@ -103,6 +116,14 @@ in
           Since `ollama run` is mostly a shell around the ollama server, this is usually sufficient.
         '';
       };
+      openFirewall = lib.mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to open the firewall for ollama.
+          This adds `services.ollama.port` to `networking.firewall.allowedTCPPorts`.
+        '';
+      };
     };
   };
 
@@ -114,7 +135,7 @@ in
       environment = cfg.environmentVariables // {
         HOME = cfg.home;
         OLLAMA_MODELS = cfg.models;
-        OLLAMA_HOST = cfg.listenAddress;
+        OLLAMA_HOST = "${cfg.host}:${toString cfg.port}";
       };
       serviceConfig = {
         ExecStart = "${lib.getExe ollamaPackage} serve";
@@ -125,6 +146,8 @@ in
       };
     };
 
+    networking.firewall = lib.mkIf cfg.openFirewall { allowedTCPPorts = [ cfg.port ]; };
+
     environment.systemPackages = [ ollamaPackage ];
   };
 
diff --git a/nixos/modules/services/misc/open-webui.nix b/nixos/modules/services/misc/open-webui.nix
new file mode 100644
index 0000000000000..b4016d03f675f
--- /dev/null
+++ b/nixos/modules/services/misc/open-webui.nix
@@ -0,0 +1,114 @@
+{
+  config,
+  lib,
+  pkgs,
+  ...
+}:
+let
+  inherit (lib) types;
+
+  cfg = config.services.open-webui;
+in
+{
+  options = {
+    services.open-webui = {
+      enable = lib.mkEnableOption "Open-WebUI server";
+      package = lib.mkPackageOption pkgs "open-webui" { };
+
+      stateDir = lib.mkOption {
+        type = types.path;
+        default = "/var/lib/open-webui";
+        example = "/home/foo";
+        description = "State directory of Open-WebUI.";
+      };
+
+      host = lib.mkOption {
+        type = types.str;
+        default = "127.0.0.1";
+        example = "0.0.0.0";
+        description = ''
+          The host address which the Open-WebUI server HTTP interface listens to.
+        '';
+      };
+
+      port = lib.mkOption {
+        type = types.port;
+        default = 8080;
+        example = 11111;
+        description = ''
+          Which port the Open-WebUI server listens to.
+        '';
+      };
+
+      environment = lib.mkOption {
+        type = types.attrsOf types.str;
+        default = {
+          SCARF_NO_ANALYTICS = "True";
+          DO_NOT_TRACK = "True";
+          ANONYMIZED_TELEMETRY = "False";
+        };
+        example = ''
+          {
+            OLLAMA_API_BASE_URL = "http://127.0.0.1:11434";
+            # Disable authentication
+            WEBUI_AUTH = "False";
+          }
+        '';
+        description = "Extra environment variables for Open-WebUI";
+      };
+
+      openFirewall = lib.mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to open the firewall for Open-WebUI.
+          This adds `services.open-webui.port` to `networking.firewall.allowedTCPPorts`.
+        '';
+      };
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    systemd.services.open-webui = {
+      description = "User-friendly WebUI for LLMs";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" ];
+
+      environment = {
+        STATIC_DIR = ".";
+        DATA_DIR = ".";
+        HF_HOME = ".";
+        SENTENCE_TRANSFORMERS_HOME = ".";
+      } // cfg.environment;
+
+      serviceConfig = {
+        ExecStart = "${lib.getExe cfg.package} serve --host ${cfg.host} --port ${toString cfg.port}";
+        WorkingDirectory = cfg.stateDir;
+        StateDirectory = "open-webui";
+        RuntimeDirectory = "open-webui";
+        RuntimeDirectoryMode = "0755";
+        PrivateTmp = true;
+        DynamicUser = true;
+        DevicePolicy = "closed";
+        LockPersonality = true;
+        MemoryDenyWriteExecute = false; # onnxruntime/capi/onnxruntime_pybind11_state.so: cannot enable executable stack as shared object requires: Permission Denied
+        PrivateUsers = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectControlGroups = true;
+        ProcSubset = "all"; # Error in cpuinfo: failed to parse processor information from /proc/cpuinfo
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        SystemCallArchitectures = "native";
+        UMask = "0077";
+      };
+    };
+
+    networking.firewall = lib.mkIf cfg.openFirewall { allowedTCPPorts = [ cfg.port ]; };
+  };
+
+  meta.maintainers = with lib.maintainers; [ shivaraj-bh ];
+}
diff --git a/nixos/modules/services/misc/pghero.nix b/nixos/modules/services/misc/pghero.nix
new file mode 100644
index 0000000000000..39515f10c8e1d
--- /dev/null
+++ b/nixos/modules/services/misc/pghero.nix
@@ -0,0 +1,142 @@
+{ config, pkgs, lib, utils, ... }:
+let
+  cfg = config.services.pghero;
+  settingsFormat = pkgs.formats.yaml { };
+  settingsFile = settingsFormat.generate "pghero.yaml" cfg.settings;
+in
+{
+  options.services.pghero = {
+    enable = lib.mkEnableOption "PgHero service";
+    package = lib.mkPackageOption pkgs "pghero" { };
+
+    listenAddress = lib.mkOption {
+      type = lib.types.str;
+      example = "[::1]:3000";
+      description = ''
+        `hostname:port` to listen for HTTP traffic.
+
+        This is bound using the systemd socket activation.
+      '';
+    };
+
+    extraArgs = lib.mkOption {
+      type = lib.types.listOf lib.types.str;
+      default = [ ];
+      description = ''
+        Additional command-line arguments for the systemd service.
+
+        Refer to the [Puma web server documentation] for available arguments.
+
+        [Puma web server documentation]: https://puma.io/puma#configuration
+      '';
+    };
+
+    settings = lib.mkOption {
+      type = settingsFormat.type;
+      default = { };
+      example = {
+        databases = {
+          primary = {
+            url = "<%= ENV['PRIMARY_DATABASE_URL'] %>";
+          };
+        };
+      };
+      description = ''
+        PgHero configuration. Refer to the [PgHero documentation] for more
+        details.
+
+        [PgHero documentation]: https://github.com/ankane/pghero/blob/master/guides/Linux.md#multiple-databases
+      '';
+    };
+
+    environment = lib.mkOption {
+      type = lib.types.attrsOf lib.types.str;
+      default = { };
+      description = ''
+        Environment variables to set for the service. Secrets should be
+        specified using {option}`environmentFile`.
+      '';
+    };
+
+    environmentFiles = lib.mkOption {
+      type = lib.types.listOf lib.types.path;
+      default = [ ];
+      description = ''
+        File to load environment variables from. Loaded variables override
+        values set in {option}`environment`.
+      '';
+    };
+
+    extraGroups = lib.mkOption {
+      type = lib.types.listOf lib.types.str;
+      default = [ ];
+      example = [ "tlskeys" ];
+      description = ''
+        Additional groups for the systemd service.
+      '';
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    systemd.sockets.pghero = {
+      unitConfig.Description = "PgHero HTTP socket";
+      wantedBy = [ "sockets.target" ];
+      listenStreams = [ cfg.listenAddress ];
+    };
+
+    systemd.services.pghero = {
+      description = "PgHero performance dashboard for PostgreSQL";
+      wantedBy = [ "multi-user.target" ];
+      requires = [ "pghero.socket" ];
+      after = [ "pghero.socket" "network.target" ];
+
+      environment = {
+        RAILS_ENV = "production";
+        PGHERO_CONFIG_PATH = settingsFile;
+      } // cfg.environment;
+
+      serviceConfig = {
+        Type = "notify";
+        WatchdogSec = "10";
+
+        ExecStart = utils.escapeSystemdExecArgs ([
+          (lib.getExe cfg.package)
+          "--bind-to-activated-sockets"
+          "only"
+        ] ++ cfg.extraArgs);
+        Restart = "always";
+
+        WorkingDirectory = "${cfg.package}/share/pghero";
+
+        EnvironmentFile = cfg.environmentFiles;
+        SupplementaryGroups = cfg.extraGroups;
+
+        DynamicUser = true;
+        UMask = "0077";
+
+        ProtectHome = true;
+        ProtectProc = "invisible";
+        ProcSubset = "pid";
+        ProtectClock = true;
+        ProtectHostname = true;
+        ProtectControlGroups = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        PrivateUsers = true;
+        PrivateDevices = true;
+        RestrictRealtime = true;
+        RestrictNamespaces = true;
+        RestrictAddressFamilies = [ "AF_INET" "AF_INET6" "AF_UNIX" ];
+        DeviceAllow = [ "" ];
+        DevicePolicy = "closed";
+        CapabilityBoundingSet = [ "" ];
+        MemoryDenyWriteExecute = true;
+        LockPersonality = true;
+        SystemCallArchitectures = "native";
+        SystemCallErrorNumber = "EPERM";
+        SystemCallFilter = [ "@system-service" ];
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/misc/portunus.nix b/nixos/modules/services/misc/portunus.nix
index bdb35da788e3a..c7abb2cfa2a3e 100644
--- a/nixos/modules/services/misc/portunus.nix
+++ b/nixos/modules/services/misc/portunus.nix
@@ -98,6 +98,10 @@ in
 
           The OIDC secret must be set as the `DEX_CLIENT_''${id}` environment variable
           in the [](#opt-services.dex.environmentFile) setting.
+
+          ::: {.note}
+          Make sure the id only contains characters that are allowed in an environment variable name, e.g. no -.
+          :::
         '';
       };
 
@@ -111,10 +115,7 @@ in
     ldap = {
       package = mkOption {
         type = types.package;
-        # needs openldap built with a libxcrypt that support crypt sha256 until users have had time to migrate to newer hashes
-        # Ref: <https://github.com/majewsky/portunus/issues/2>
-        # TODO: remove in NixOS 24.11 (cf. same note on pkgs/servers/portunus/default.nix)
-        default = pkgs.openldap.override { libxcrypt = pkgs.libxcrypt-legacy; };
+        default = pkgs.openldap;
         defaultText = lib.literalExpression "pkgs.openldap.override { libxcrypt = pkgs.libxcrypt-legacy; }";
         description = "The OpenLDAP package to use.";
       };
diff --git a/nixos/modules/services/misc/renovate.nix b/nixos/modules/services/misc/renovate.nix
new file mode 100644
index 0000000000000..25a719c91cbd8
--- /dev/null
+++ b/nixos/modules/services/misc/renovate.nix
@@ -0,0 +1,153 @@
+{
+  config,
+  lib,
+  pkgs,
+  ...
+}:
+let
+  inherit (lib)
+    mkEnableOption
+    mkPackageOption
+    mkOption
+    types
+    mkIf
+    ;
+  json = pkgs.formats.json { };
+  cfg = config.services.renovate;
+  generateValidatedConfig =
+    name: value:
+    pkgs.callPackage (
+      { runCommand, jq }:
+      runCommand name
+        {
+          nativeBuildInputs = [
+            jq
+            cfg.package
+          ];
+          value = builtins.toJSON value;
+          passAsFile = [ "value" ];
+          preferLocalBuild = true;
+        }
+        ''
+          jq . "$valuePath"> $out
+          renovate-config-validator $out
+        ''
+    ) { };
+  generateConfig = if cfg.validateSettings then generateValidatedConfig else json.generate;
+in
+{
+  meta.maintainers = with lib.maintainers; [ marie natsukium ];
+
+  options.services.renovate = {
+    enable = mkEnableOption "renovate";
+    package = mkPackageOption pkgs "renovate" { };
+    schedule = mkOption {
+      type = with types; nullOr str;
+      description = "How often to run renovate. See {manpage}`systemd.time(7)` for the format.";
+      example = "*:0/10";
+      default = null;
+    };
+    credentials = mkOption {
+      type = with types; attrsOf path;
+      description = ''
+        Allows configuring environment variable credentials for renovate, read from files.
+        This should always be used for passing confidential data to renovate.
+      '';
+      example = {
+        RENOVATE_TOKEN = "/etc/renovate/token";
+      };
+      default = { };
+    };
+    runtimePackages = mkOption {
+      type = with types; listOf package;
+      description = "Packages available to renovate.";
+      default = [ ];
+    };
+    validateSettings = mkOption {
+      type = types.bool;
+      default = true;
+      description = "Weither to run renovate's config validator on the built configuration.";
+    };
+    settings = mkOption {
+      type = json.type;
+      default = { };
+      example = {
+        platform = "gitea";
+        endpoint = "https://git.example.com";
+        gitAuthor = "Renovate <renovate@example.com>";
+      };
+      description = ''
+        Renovate's global configuration.
+        If you want to pass secrets to renovate, please use {option}`services.renovate.credentials` for that.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    services.renovate.settings = {
+      cacheDir = "/var/cache/renovate";
+      baseDir = "/var/lib/renovate";
+    };
+
+    systemd.services.renovate = {
+      description = "Renovate dependency updater";
+      documentation = [ "https://docs.renovatebot.com/" ];
+      after = [ "network.target" ];
+      startAt = lib.optional (cfg.schedule != null) cfg.schedule;
+      path = [
+        config.systemd.package
+        pkgs.git
+      ] ++ cfg.runtimePackages;
+
+      serviceConfig = {
+        Type = "oneshot";
+        User = "renovate";
+        Group = "renovate";
+        DynamicUser = true;
+        LoadCredential = lib.mapAttrsToList (name: value: "SECRET-${name}:${value}") cfg.credentials;
+        RemainAfterExit = false;
+        Restart = "on-failure";
+        CacheDirectory = "renovate";
+        StateDirectory = "renovate";
+
+        # Hardening
+        CapabilityBoundingSet = [ "" ];
+        DeviceAllow = [ "" ];
+        LockPersonality = true;
+        PrivateDevices = true;
+        PrivateUsers = true;
+        ProcSubset = "pid";
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectProc = "invisible";
+        RestrictAddressFamilies = [
+          "AF_INET"
+          "AF_INET6"
+        ];
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        SystemCallArchitectures = "native";
+        UMask = "0077";
+      };
+
+      script = ''
+        ${lib.concatStringsSep "\n" (
+          builtins.map (name: "export ${name}=$(systemd-creds cat 'SECRET-${name}')") (
+            lib.attrNames cfg.credentials
+          )
+        )}
+        exec ${lib.escapeShellArg (lib.getExe cfg.package)}
+      '';
+
+      environment = {
+        RENOVATE_CONFIG_FILE = generateConfig "renovate-config.json" cfg.settings;
+        HOME = "/var/lib/renovate";
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/misc/snapper.nix b/nixos/modules/services/misc/snapper.nix
index 33207ac2b5bd5..4e0b4c551e23f 100644
--- a/nixos/modules/services/misc/snapper.nix
+++ b/nixos/modules/services/misc/snapper.nix
@@ -108,7 +108,7 @@ in
       type = types.bool;
       example = true;
       description = ''
-        Set the `persistentTimer` option for the
+        Set the `Persistent` option for the
         {manpage}`systemd.timer(5)`
         which triggers the snapshot immediately if the last trigger
         was missed (e.g. if the system was powered down).
@@ -235,7 +235,7 @@ in
       timerConfig.OnUnitActiveSec = cfg.cleanupInterval;
     };
 
-    systemd.services.snapper-boot = lib.optionalAttrs cfg.snapshotRootOnBoot {
+    systemd.services.snapper-boot = lib.mkIf cfg.snapshotRootOnBoot {
       description = "Take snapper snapshot of root on boot";
       inherit documentation;
       serviceConfig.ExecStart = "${pkgs.snapper}/bin/snapper --config root create --cleanup-algorithm number --description boot";
diff --git a/nixos/modules/services/monitoring/alloy.nix b/nixos/modules/services/monitoring/alloy.nix
new file mode 100644
index 0000000000000..abe8fcd7e1beb
--- /dev/null
+++ b/nixos/modules/services/monitoring/alloy.nix
@@ -0,0 +1,80 @@
+{ lib, pkgs, config, ... }:
+with lib;
+let
+  cfg = config.services.alloy;
+in
+{
+  meta = {
+    maintainers = with maintainers; [ flokli hbjydev ];
+  };
+
+  options.services.alloy = {
+    enable = mkEnableOption "Grafana Alloy";
+
+    package = mkPackageOption pkgs "grafana-alloy" { };
+
+    configPath = mkOption {
+      type = lib.types.path;
+      default = "/etc/alloy";
+      description = ''
+        Alloy configuration file/directory path.
+
+        We default to `/etc/alloy` here, and expect the user to configure a
+        configuration file via `environment.etc."alloy/config.alloy"`.
+
+        This allows config reload, contrary to specifying a store path.
+        A `reloadTrigger` for `config.alloy` is configured.
+
+        Other `*.alloy` files in the same directory (ignoring subdirs) are also
+        honored, but it's necessary to manually extend
+        `systemd.services.alloy.reloadTriggers` to enable config reload
+        during nixos-rebuild switch.
+
+        This can also point to another directory containing `*.alloy` files, or
+        a single Alloy file in the Nix store (at the cost of reload).
+
+        Component names must be unique across all Alloy configuration files, and
+        configuration blocks must not be repeated.
+
+        Alloy will continue to run if subsequent reloads of the configuration
+        file fail, potentially marking components as unhealthy depending on
+        the nature of the failure. When this happens, Alloy will continue
+        functioning in the last valid state.
+      '';
+    };
+
+    extraFlags = mkOption {
+      type = with lib.types; listOf str;
+      default = [ ];
+      example = [ "--server.http.listen-addr=127.0.0.1:12346" "--disable-reporting" ];
+      description = ''
+        Extra command-line flags passed to {command}`alloy run`.
+
+        See <https://grafana.com/docs/alloy/latest/reference/cli/run/>
+      '';
+    };
+  };
+
+
+  config = mkIf cfg.enable {
+    systemd.services.alloy = {
+      wantedBy = [ "multi-user.target" ];
+      reloadTriggers = [ config.environment.etc."alloy/config.alloy".source or null ];
+      serviceConfig = {
+        Restart = "always";
+        DynamicUser = true;
+        RestartSec = 2;
+        SupplementaryGroups = [
+          # allow to read the systemd journal for loki log forwarding
+          "systemd-journal"
+        ];
+        ExecStart = "${lib.getExe cfg.package} run ${cfg.configPath} ${escapeShellArgs cfg.extraFlags}";
+        ExecReload = "${pkgs.coreutils}/bin/kill -SIGHUP $MAINPID";
+        ConfigurationDirectory = "alloy";
+        StateDirectory = "alloy";
+        WorkingDirectory = "%S/alloy";
+        Type = "simple";
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/monitoring/grafana.nix b/nixos/modules/services/monitoring/grafana.nix
index 9d453c5394824..32919950adc1e 100644
--- a/nixos/modules/services/monitoring/grafana.nix
+++ b/nixos/modules/services/monitoring/grafana.nix
@@ -47,13 +47,6 @@ let
   datasourceFileOrDir = mkProvisionCfg "datasource" "datasources" cfg.provision.datasources;
   dashboardFileOrDir = mkProvisionCfg "dashboard" "providers" cfg.provision.dashboards;
 
-  notifierConfiguration = {
-    apiVersion = 1;
-    notifiers = cfg.provision.notifiers;
-  };
-
-  notifierFileOrDir = pkgs.writeText "notifier.yaml" (builtins.toJSON notifierConfiguration);
-
   generateAlertingProvisioningYaml = x:
     if (cfg.provision.alerting."${x}".path == null)
     then provisioningSettingsFormat.generate "${x}.yaml" cfg.provision.alerting."${x}".settings
@@ -74,10 +67,9 @@ let
     fi
   '';
   provisionConfDir = pkgs.runCommand "grafana-provisioning" { nativeBuildInputs = [ pkgs.xorg.lndir ]; } ''
-    mkdir -p $out/{alerting,datasources,dashboards,notifiers,plugins}
+    mkdir -p $out/{alerting,datasources,dashboards,plugins}
     ${ln { src = datasourceFileOrDir;    dir = "datasources"; filename = "datasource"; }}
     ${ln { src = dashboardFileOrDir;     dir = "dashboards";  filename = "dashboard"; }}
-    ${ln { src = notifierFileOrDir;      dir = "notifiers";   filename = "notifier"; }}
     ${ln { src = rulesFileOrDir;         dir = "alerting";    filename = "rules"; }}
     ${ln { src = contactPointsFileOrDir; dir = "alerting";    filename = "contactPoints"; }}
     ${ln { src = policiesFileOrDir;      dir = "alerting";    filename = "policies"; }}
@@ -161,73 +153,13 @@ let
       };
     };
   };
-
-  grafanaTypes.notifierConfig = types.submodule {
-    options = {
-      name = mkOption {
-        type = types.str;
-        default = "default";
-        description = "Notifier name.";
-      };
-      type = mkOption {
-        type = types.enum [ "dingding" "discord" "email" "googlechat" "hipchat" "kafka" "line" "teams" "opsgenie" "pagerduty" "prometheus-alertmanager" "pushover" "sensu" "sensugo" "slack" "telegram" "threema" "victorops" "webhook" ];
-        description = "Notifier type.";
-      };
-      uid = mkOption {
-        type = types.str;
-        description = "Unique notifier identifier.";
-      };
-      org_id = mkOption {
-        type = types.int;
-        default = 1;
-        description = "Organization ID.";
-      };
-      org_name = mkOption {
-        type = types.str;
-        default = "Main Org.";
-        description = "Organization name.";
-      };
-      is_default = mkOption {
-        type = types.bool;
-        description = "Is the default notifier.";
-        default = false;
-      };
-      send_reminder = mkOption {
-        type = types.bool;
-        default = true;
-        description = "Should the notifier be sent reminder notifications while alerts continue to fire.";
-      };
-      frequency = mkOption {
-        type = types.str;
-        default = "5m";
-        description = "How frequently should the notifier be sent reminders.";
-      };
-      disable_resolve_message = mkOption {
-        type = types.bool;
-        default = false;
-        description = "Turn off the message that sends when an alert returns to OK.";
-      };
-      settings = mkOption {
-        type = types.nullOr types.attrs;
-        default = null;
-        description = "Settings for the notifier type.";
-      };
-      secure_settings = mkOption {
-        type = types.nullOr types.attrs;
-        default = null;
-        description = ''
-          Secure settings for the notifier type. Please note that the contents of this option
-          will end up in a world-readable Nix store. Use the file provider
-          pointing at a reasonably secured file in the local filesystem
-          to work around that. Look at the documentation for details:
-          <https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#file-provider>
-        '';
-      };
-    };
-  };
 in
 {
   imports = [
+    (mkRemovedOptionModule [ "services" "grafana" "provision" "notifiers" ] ''
+      Notifiers (services.grafana.provision.notifiers) were removed in Grafana 11.
+    '')
+
     (mkRenamedOptionModule [ "services" "grafana" "protocol" ] [ "services" "grafana" "settings" "server" "protocol" ])
     (mkRenamedOptionModule [ "services" "grafana" "addr" ] [ "services" "grafana" "settings" "server" "http_addr" ])
     (mkRenamedOptionModule [ "services" "grafana" "port" ] [ "services" "grafana" "settings" "server" "http_port" ])
@@ -1256,15 +1188,6 @@ in
         };
       };
 
-
-      notifiers = mkOption {
-        description = "Grafana notifier configuration.";
-        default = [ ];
-        type = types.listOf grafanaTypes.notifierConfig;
-        apply = x: map _filter x;
-      };
-
-
       alerting = {
         rules = {
           path = mkOption {
@@ -1746,12 +1669,6 @@ in
             Use file provider or an env-var instead.
           '';
 
-        # Warn about deprecated notifiers.
-        deprecatedNotifiers = optional (cfg.provision.notifiers != [ ]) ''
-          Notifiers are deprecated upstream and will be removed in Grafana 11.
-          Use `services.grafana.provision.alerting.contactPoints` instead.
-        '';
-
         # Ensure that `secureJsonData` of datasources provisioned via `datasources.settings`
         # only uses file/env providers.
         secureJsonDataWithoutFileProvider = optional
@@ -1770,15 +1687,10 @@ in
             Declarations in the `secureJsonData`-block of a datasource will be leaked to the
             Nix store unless a file-provider or an env-var is used!
           '';
-
-        notifierSecureSettingsWithoutFileProvider = optional
-          (any (x: x.secure_settings != null) cfg.provision.notifiers)
-          "Notifier secure settings will be stored as plaintext in the Nix store! Use file provider instead.";
       in
       passwordWithoutFileProvider
-      ++ deprecatedNotifiers
       ++ secureJsonDataWithoutFileProvider
-      ++ notifierSecureSettingsWithoutFileProvider;
+      ;
 
     environment.systemPackages = [ cfg.package ];
 
diff --git a/nixos/modules/services/monitoring/loki.nix b/nixos/modules/services/monitoring/loki.nix
index de4f1bc7aa23e..307119ecbf8ba 100644
--- a/nixos/modules/services/monitoring/loki.nix
+++ b/nixos/modules/services/monitoring/loki.nix
@@ -94,6 +94,7 @@ in {
     systemd.services.loki = {
       description = "Loki Service Daemon";
       wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" ];
 
       serviceConfig = let
         conf = if cfg.configFile == null
diff --git a/nixos/modules/services/monitoring/prometheus/default.nix b/nixos/modules/services/monitoring/prometheus/default.nix
index 7e707a13b7903..4de80acfa9a8b 100644
--- a/nixos/modules/services/monitoring/prometheus/default.nix
+++ b/nixos/modules/services/monitoring/prometheus/default.nix
@@ -181,6 +181,10 @@ let
         communicating with external systems (federation, remote
         storage, Alertmanager).
       '';
+
+      query_log_file = mkOpt types.str ''
+        Path to the file prometheus should write its query log to.
+      '';
     };
   };
 
diff --git a/nixos/modules/services/monitoring/scrutiny.nix b/nixos/modules/services/monitoring/scrutiny.nix
index 031f5a30cada6..c649d333e401a 100644
--- a/nixos/modules/services/monitoring/scrutiny.nix
+++ b/nixos/modules/services/monitoring/scrutiny.nix
@@ -140,8 +140,8 @@ in
 
             options.api.endpoint = mkOption {
               type = str;
-              default = "http://localhost:${toString cfg.settings.web.listen.port}";
-              defaultText = literalExpression ''"http://localhost:''${config.services.scrutiny.settings.web.listen.port}"'';
+              default = "http://${cfg.settings.web.listen.host}:${toString cfg.settings.web.listen.port}";
+              defaultText = literalExpression ''"http://''${config.services.scrutiny.settings.web.listen.host}:''${config.services.scrutiny.settings.web.listen.port}"'';
               description = "Scrutiny app API endpoint for sending metrics to.";
             };
 
diff --git a/nixos/modules/services/monitoring/zabbix-proxy.nix b/nixos/modules/services/monitoring/zabbix-proxy.nix
index 7fa471b6404a8..dec403df85ea8 100644
--- a/nixos/modules/services/monitoring/zabbix-proxy.nix
+++ b/nixos/modules/services/monitoring/zabbix-proxy.nix
@@ -103,7 +103,7 @@ in
 
         port = mkOption {
           type = types.port;
-          default = if cfg.database.type == "mysql" then mysql.port else pgsql.services.port;
+          default = if cfg.database.type == "mysql" then mysql.port else pgsql.settings.port;
           defaultText = literalExpression ''
             if config.${opt.database.type} == "mysql"
             then config.${options.services.mysql.port}
diff --git a/nixos/modules/services/network-filesystems/davfs2.nix b/nixos/modules/services/network-filesystems/davfs2.nix
index 23c04658031fb..9a7d0daa6421f 100644
--- a/nixos/modules/services/network-filesystems/davfs2.nix
+++ b/nixos/modules/services/network-filesystems/davfs2.nix
@@ -20,14 +20,10 @@ let
     else toString value;
 
   configFile = pkgs.writeText "davfs2.conf" (
-    if (cfg.settings != { }) then
-      (toINIWithGlobalSection {
-        mkSectionName = escapeString;
-        mkKeyValue = k: v: "${k} ${formatValue v}";
-      } cfg.settings)
-    else
-      cfg.extraConfig
-  );
+    toINIWithGlobalSection {
+      mkSectionName = escapeString;
+      mkKeyValue = k: v: "${k} ${formatValue v}";
+    } cfg.settings);
 in
 {
 
@@ -53,29 +49,6 @@ in
       '';
     };
 
-    extraConfig = mkOption {
-      type = lines;
-      default = "";
-      example = ''
-        proxy foo.bar:8080
-        use_locks 0
-
-        [/media/dav]
-        use_locks 1
-
-        [/home/otto/mywebspace]
-        gui_optimize 1
-      '';
-      description = ''
-        Extra lines appended to the configuration of davfs2.
-        See {manpage}`davfs2.conf(5)` for available settings.
-
-        **Note**: Please pass structured settings via
-        {option}`settings` instead, this option
-        will get deprecated in the future.
-      ''  ;
-    };
-
     settings = mkOption {
       type = submodule {
         freeformType = let
@@ -109,21 +82,6 @@ in
 
   config = mkIf cfg.enable {
 
-    assertions = [
-      {
-        assertion = cfg.extraConfig != "" -> cfg.settings == { };
-        message = ''
-          services.davfs2.extraConfig and services.davfs2.settings cannot be used together.
-          Please prefer using services.davfs2.settings.
-        '';
-      }
-    ];
-
-    warnings = optional (cfg.extraConfig != "") ''
-      services.davfs2.extraConfig will be deprecated in future releases;
-      please use services.davfs2.settings instead.
-    '';
-
     environment.systemPackages = [ pkgs.davfs2 ];
     environment.etc."davfs2/davfs2.conf".source = configFile;
 
diff --git a/nixos/modules/services/network-filesystems/samba.nix b/nixos/modules/services/network-filesystems/samba.nix
index 66ef3f14ed700..c70d0cf7beac3 100644
--- a/nixos/modules/services/network-filesystems/samba.nix
+++ b/nixos/modules/services/network-filesystems/samba.nix
@@ -201,14 +201,10 @@ in
               message   = "If samba.nsswins is enabled, then samba.enableWinbindd must also be enabled";
             }
           ];
-        # Always provide a smb.conf to shut up programs like smbclient and smbspool.
-        environment.etc."samba/smb.conf".source = mkOptionDefault (
-          if cfg.enable then configFile
-          else pkgs.writeText "smb-dummy.conf" "# Samba is disabled."
-        );
       }
 
       (mkIf cfg.enable {
+        environment.etc."samba/smb.conf".source = configFile;
 
         system.nssModules = optional cfg.nsswins samba;
         system.nssDatabases.hosts = optional cfg.nsswins "wins";
diff --git a/nixos/modules/services/networking/adguardhome.nix b/nixos/modules/services/networking/adguardhome.nix
index df9927351edc3..5be3e0bea224a 100644
--- a/nixos/modules/services/networking/adguardhome.nix
+++ b/nixos/modules/services/networking/adguardhome.nix
@@ -140,7 +140,7 @@ in {
       {
         assertion = cfg.settings != null
           -> !(hasAttrByPath [ "bind_port" ] cfg.settings);
-        message = "AdGuard option `settings.bind_host' has been superseded by `services.adguardhome.port'";
+        message = "AdGuard option `settings.bind_port' has been superseded by `services.adguardhome.port'";
       }
       {
         assertion = settings != null -> cfg.mutableSettings
@@ -167,8 +167,13 @@ in {
       preStart = optionalString (settings != null) ''
         if    [ -e "$STATE_DIRECTORY/AdGuardHome.yaml" ] \
            && [ "${toString cfg.mutableSettings}" = "1" ]; then
+          # First run a schema_version update on the existing configuration
+          # This ensures that both the new config and the existing one have the same schema_version
+          # Note: --check-config has the side effect of modifying the file at rest!
+          ${lib.getExe cfg.package} -c "$STATE_DIRECTORY/AdGuardHome.yaml" --check-config
+
           # Writing directly to AdGuardHome.yaml results in empty file
-          ${pkgs.yaml-merge}/bin/yaml-merge "$STATE_DIRECTORY/AdGuardHome.yaml" "${configFile}" > "$STATE_DIRECTORY/AdGuardHome.yaml.tmp"
+          ${lib.getExe pkgs.yaml-merge} "$STATE_DIRECTORY/AdGuardHome.yaml" "${configFile}" > "$STATE_DIRECTORY/AdGuardHome.yaml.tmp"
           mv "$STATE_DIRECTORY/AdGuardHome.yaml.tmp" "$STATE_DIRECTORY/AdGuardHome.yaml"
         else
           cp --force "${configFile}" "$STATE_DIRECTORY/AdGuardHome.yaml"
@@ -178,7 +183,7 @@ in {
 
       serviceConfig = {
         DynamicUser = true;
-        ExecStart = "${cfg.package}/bin/adguardhome ${args}";
+        ExecStart = "${lib.getExe cfg.package} ${args}";
         AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ]
           ++ optionals cfg.allowDHCP [ "CAP_NET_RAW" ];
         Restart = "always";
diff --git a/nixos/modules/services/networking/aria2.nix b/nixos/modules/services/networking/aria2.nix
index f32f5682c9801..f0d5c5c8a21e3 100644
--- a/nixos/modules/services/networking/aria2.nix
+++ b/nixos/modules/services/networking/aria2.nix
@@ -1,98 +1,132 @@
 { config, lib, pkgs, ... }:
 
-with lib;
-
 let
   cfg = config.services.aria2;
 
   homeDir = "/var/lib/aria2";
-
-  settingsDir = "${homeDir}";
-  sessionFile = "${homeDir}/aria2.session";
-  downloadDir = "${homeDir}/Downloads";
-
-  rangesToStringList = map (x: builtins.toString x.from +"-"+ builtins.toString x.to);
-
-  settingsFile = pkgs.writeText "aria2.conf"
-  ''
-    dir=${cfg.downloadDir}
-    listen-port=${concatStringsSep "," (rangesToStringList cfg.listenPortRange)}
-    rpc-listen-port=${toString cfg.rpcListenPort}
-  '';
-
+  defaultRpcListenPort = 6800;
+  defaultDir = "${homeDir}/Downloads";
+
+  portRangesToString = ranges: lib.concatStringsSep "," (map
+    (x:
+      if x.from == x.to
+      then builtins.toString x.from
+      else builtins.toString x.from + "-" + builtins.toString x.to
+    )
+    ranges);
+
+  customToKeyValue = lib.generators.toKeyValue {
+    mkKeyValue = lib.generators.mkKeyValueDefault
+      {
+        mkValueString = v:
+          if builtins.isList v then portRangesToString v
+          else lib.generators.mkValueStringDefault { } v;
+      } "=";
+  };
 in
 {
   imports = [
-    (mkRemovedOptionModule [ "services" "aria2" "rpcSecret" ] "Use services.aria2.rpcSecretFile instead")
+    (lib.mkRemovedOptionModule [ "services" "aria2" "rpcSecret" ] "Use services.aria2.rpcSecretFile instead")
+    (lib.mkRemovedOptionModule [ "services" "aria2" "extraArguments" ] "Use services.aria2.settings instead")
+    (lib.mkRenamedOptionModule [ "services" "aria2" "downloadDir" ] [ "services" "aria2" "settings" "dir" ])
+    (lib.mkRenamedOptionModule [ "services" "aria2" "listenPortRange" ] [ "services" "aria2" "settings" "listen-port" ])
+    (lib.mkRenamedOptionModule [ "services" "aria2" "rpcListenPort" ] [ "services" "aria2" "settings" "rpc-listen-port" ])
   ];
 
   options = {
     services.aria2 = {
-      enable = mkOption {
-        type = types.bool;
+      enable = lib.mkOption {
+        type = lib.types.bool;
         default = false;
         description = ''
           Whether or not to enable the headless Aria2 daemon service.
 
-          Aria2 daemon can be controlled via the RPC interface using
-          one of many WebUI (http://localhost:6800/ by default).
+          Aria2 daemon can be controlled via the RPC interface using one of many
+          WebUIs (http://localhost:${toString defaultRpcListenPort}/ by default).
 
-          Targets are downloaded to ${downloadDir} by default and are
-          accessible to users in the "aria2" group.
+          Targets are downloaded to `${defaultDir}` by default and are
+          accessible to users in the `aria2` group.
         '';
       };
-      openPorts = mkOption {
-        type = types.bool;
+      openPorts = lib.mkOption {
+        type = lib.types.bool;
         default = false;
         description = ''
-          Open listen and RPC ports found in listenPortRange and rpcListenPort
-          options in the firewall.
-        '';
-      };
-      downloadDir = mkOption {
-        type = types.path;
-        default = downloadDir;
-        description = ''
-          Directory to store downloaded files.
-        '';
-      };
-      listenPortRange = mkOption {
-        type = types.listOf types.attrs;
-        default = [ { from = 6881; to = 6999; } ];
-        description = ''
-          Set UDP listening port range used by DHT(IPv4, IPv6) and UDP tracker.
+          Open listen and RPC ports found in `settings.listen-port` and
+          `settings.rpc-listen-port` options in the firewall.
         '';
       };
-      rpcListenPort = mkOption {
-        type = types.int;
-        default = 6800;
-        description = "Specify a port number for JSON-RPC/XML-RPC server to listen to. Possible Values: 1024-65535";
-      };
-      rpcSecretFile = mkOption {
-        type = types.path;
+      rpcSecretFile = lib.mkOption {
+        type = lib.types.path;
         example = "/run/secrets/aria2-rpc-token.txt";
         description = ''
           A file containing the RPC secret authorization token.
           Read https://aria2.github.io/manual/en/html/aria2c.html#rpc-auth to know how this option value is used.
         '';
       };
-      extraArguments = mkOption {
-        type = types.separatedString " ";
-        example = "--rpc-listen-all --remote-time=true";
-        default = "";
+      settings = lib.mkOption {
         description = ''
-          Additional arguments to be passed to Aria2.
+          Generates the `aria2.conf` file. Refer to [the documentation][0] for
+          all possible settings.
+
+          [0]: https://aria2.github.io/manual/en/html/aria2c.html#synopsis
         '';
+        default = { };
+        type = lib.types.submodule {
+          freeformType = with lib.types; attrsOf (oneOf [ bool int float singleLineStr ]);
+          options = {
+            save-session = lib.mkOption {
+              type = lib.types.singleLineStr;
+              default = "${homeDir}/aria2.session";
+              description = "Save error/unfinished downloads to FILE on exit.";
+            };
+            dir = lib.mkOption {
+              type = lib.types.singleLineStr;
+              default = defaultDir;
+              description = "Directory to store downloaded files.";
+            };
+            conf-path = lib.mkOption {
+              type = lib.types.singleLineStr;
+              default = "${homeDir}/aria2.conf";
+              description = "Configuration file path.";
+            };
+            enable-rpc = lib.mkOption {
+              type = lib.types.bool;
+              default = true;
+              description = "Enable JSON-RPC/XML-RPC server.";
+            };
+            listen-port = lib.mkOption {
+              type = with lib.types; listOf (attrsOf port);
+              default = [{ from = 6881; to = 6999; }];
+              description = "Set UDP listening port range used by DHT(IPv4, IPv6) and UDP tracker.";
+            };
+            rpc-listen-port = lib.mkOption {
+              type = lib.types.port;
+              default = defaultRpcListenPort;
+              description = "Specify a port number for JSON-RPC/XML-RPC server to listen to. Possible Values: 1024-65535";
+            };
+          };
+        };
       };
     };
   };
 
-  config = mkIf cfg.enable {
+  config = lib.mkIf cfg.enable {
+    assertions = [
+      {
+        assertion = cfg.settings.enable-rpc;
+        message = "RPC has to be enabled, the default module option takes care of that.";
+      }
+      {
+        assertion = !(cfg.settings ? rpc-secret);
+        message = "Set the RPC secret through services.aria2.rpcSecretFile so it will not end up in the world-readable nix store.";
+      }
+    ];
 
     # Need to open ports for proper functioning
-    networking.firewall = mkIf cfg.openPorts {
-      allowedUDPPortRanges = config.services.aria2.listenPortRange;
-      allowedTCPPorts = [ config.services.aria2.rpcListenPort ];
+    networking.firewall = lib.mkIf cfg.openPorts {
+      allowedUDPPortRanges = config.services.aria2.settings.listen-port;
+      allowedTCPPorts = [ config.services.aria2.settings.rpc-listen-port ];
     };
 
     users.users.aria2 = {
@@ -107,7 +141,7 @@ in
 
     systemd.tmpfiles.rules = [
       "d '${homeDir}' 0770 aria2 aria2 - -"
-      "d '${config.services.aria2.downloadDir}' 0770 aria2 aria2 - -"
+      "d '${config.services.aria2.settings.dir}' 0770 aria2 aria2 - -"
     ];
 
     systemd.services.aria2 = {
@@ -115,22 +149,25 @@ in
       after = [ "network.target" ];
       wantedBy = [ "multi-user.target" ];
       preStart = ''
-        if [[ ! -e "${sessionFile}" ]]
+        if [[ ! -e "${cfg.settings.save-session}" ]]
         then
-          touch "${sessionFile}"
+          touch "${cfg.settings.save-session}"
         fi
-        cp -f "${settingsFile}" "${settingsDir}/aria2.conf"
-        echo "rpc-secret=$(cat "$CREDENTIALS_DIRECTORY/rpcSecretFile")" >> "${settingsDir}/aria2.conf"
+        cp -f "${pkgs.writeText "aria2.conf" (customToKeyValue cfg.settings)}" "${cfg.settings.conf-path}"
+        chmod +w "${cfg.settings.conf-path}"
+        echo "rpc-secret=$(cat "$CREDENTIALS_DIRECTORY/rpcSecretFile")" >> "${cfg.settings.conf-path}"
       '';
 
       serviceConfig = {
         Restart = "on-abort";
-        ExecStart = "${pkgs.aria2}/bin/aria2c --enable-rpc --conf-path=${settingsDir}/aria2.conf ${config.services.aria2.extraArguments} --save-session=${sessionFile}";
+        ExecStart = "${pkgs.aria2}/bin/aria2c --conf-path=${cfg.settings.conf-path}";
         ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
         User = "aria2";
         Group = "aria2";
-        LoadCredential="rpcSecretFile:${cfg.rpcSecretFile}";
+        LoadCredential = "rpcSecretFile:${cfg.rpcSecretFile}";
       };
     };
   };
+
+  meta.maintainers = [ lib.maintainers.timhae ];
 }
diff --git a/nixos/modules/services/networking/ddclient.nix b/nixos/modules/services/networking/ddclient.nix
index b912550e1155e..272a50eb92de8 100644
--- a/nixos/modules/services/networking/ddclient.nix
+++ b/nixos/modules/services/networking/ddclient.nix
@@ -11,7 +11,9 @@ let
     # This file can be used as a template for configFile or is automatically generated by Nix options.
     cache=${dataDir}/ddclient.cache
     foreground=YES
-    use=${cfg.use}
+    ${lib.optionalString (cfg.use != "") "use=${cfg.use}"}
+    ${lib.optionalString (cfg.use == "" && cfg.usev4 != "") "usev4=${cfg.usev4}"}
+    ${lib.optionalString (cfg.use == "" && cfg.usev6 != "") "usev6=${cfg.usev6}"}
     login=${cfg.username}
     password=${if cfg.protocol == "nsupdate" then "/run/${RuntimeDirectory}/ddclient.key" else "@password_placeholder@"}
     protocol=${cfg.protocol}
@@ -163,12 +165,26 @@ with lib;
       };
 
       use = mkOption {
-        default = "web, web=checkip.dyndns.com/, web-skip='Current IP Address: '";
+        default = "";
         type = str;
         description = ''
           Method to determine the IP address to send to the dynamic DNS provider.
         '';
       };
+      usev4 = mkOption {
+        default = "webv4, webv4=checkip.dyndns.com/, webv4-skip='Current IP Address: '";
+        type = str;
+        description = ''
+          Method to determine the IPv4 address to send to the dynamic DNS provider. Only used if `use` is not set.
+        '';
+      };
+      usev6 = mkOption {
+        default = "webv6, webv6=checkipv6.dyndns.com/, webv6-skip='Current IP Address: '";
+        type = str;
+        description = ''
+          Method to determine the IPv6 address to send to the dynamic DNS provider. Only used if `use` is not set.
+        '';
+      };
 
       verbose = mkOption {
         default = false;
@@ -204,6 +220,8 @@ with lib;
   ###### implementation
 
   config = mkIf config.services.ddclient.enable {
+    warnings = lib.optional (cfg.use != "") "Setting `use` is deprecated, ddclient now supports `usev4` and `usev6` for separate IPv4/IPv6 configuration.";
+
     systemd.services.ddclient = {
       description = "Dynamic DNS Client";
       wantedBy = [ "multi-user.target" ];
diff --git a/nixos/modules/services/networking/frr.nix b/nixos/modules/services/networking/frr.nix
index 7f611ce7b1c7d..df2b4035d2f07 100644
--- a/nixos/modules/services/networking/frr.nix
+++ b/nixos/modules/services/networking/frr.nix
@@ -23,10 +23,9 @@ let
     "pbr"
     "bfd"
     "fabric"
-    "mgmt"
   ];
 
-  allServices = services ++ [ "zebra" ];
+  allServices = services ++ [ "zebra" "mgmt" ];
 
   isEnabled = service: cfg.${service}.enable;
 
@@ -137,6 +136,20 @@ in
             '';
           };
         };
+        mgmt = (serviceOptions "mgmt") // {
+          enable = mkOption {
+            type = types.bool;
+            default = isEnabled "static";
+            defaultText = lib.literalExpression "config.services.frr.static.enable";
+            description = ''
+              Whether to enable the Configuration management daemon.
+
+              The Configuration management daemon is automatically
+              enabled if needed, at the moment this is when staticd
+              is enabled.
+            '';
+          };
+        };
       };
     }
     { options.services.frr = (genAttrs services serviceOptions); }
@@ -164,7 +177,7 @@ in
 
     environment.etc = let
       mkEtcLink = service: {
-        name = "frr/${service}.conf";
+        name = "frr/${daemonName service}.conf";
         value.source = configFile service;
       };
     in
@@ -196,18 +209,18 @@ in
               unitConfig.Documentation = if service == "zebra" then "man:zebra(8)"
                 else "man:${daemon}(8) man:zebra(8)";
 
-              restartTriggers = [
+              restartTriggers = mkIf (service != "mgmt") [
                 (configFile service)
               ];
-              reloadIfChanged = true;
+              reloadIfChanged = (service != "mgmt");
 
               serviceConfig = {
                 PIDFile = "frr/${daemon}.pid";
-                ExecStart = "${pkgs.frr}/libexec/frr/${daemon} -f /etc/frr/${service}.conf"
+                ExecStart = "${pkgs.frr}/libexec/frr/${daemon}"
                   + optionalString (scfg.vtyListenAddress != "") " -A ${scfg.vtyListenAddress}"
                   + optionalString (scfg.vtyListenPort != null) " -P ${toString scfg.vtyListenPort}"
                   + " " + (concatStringsSep " " scfg.extraOptions);
-                ExecReload = "${pkgs.python3.interpreter} ${pkgs.frr}/libexec/frr/frr-reload.py --reload --daemon ${daemonName service} --bindir ${pkgs.frr}/bin --rundir /run/frr /etc/frr/${service}.conf";
+                ExecReload = mkIf (service != "mgmt") "${pkgs.python3.interpreter} ${pkgs.frr}/libexec/frr/frr-reload.py --reload --daemon ${daemon} --bindir ${pkgs.frr}/bin --rundir /run/frr /etc/frr/${daemon}.conf";
                 Restart = "on-abnormal";
               };
             });
diff --git a/nixos/modules/services/networking/git-daemon.nix b/nixos/modules/services/networking/git-daemon.nix
index 6be72505c216e..522e6b14f868f 100644
--- a/nixos/modules/services/networking/git-daemon.nix
+++ b/nixos/modules/services/networking/git-daemon.nix
@@ -27,6 +27,8 @@ in
         '';
       };
 
+      package = mkPackageOption pkgs "git" { };
+
       basePath = mkOption {
         type = types.str;
         default = "";
@@ -119,7 +121,7 @@ in
     systemd.services.git-daemon = {
       after = [ "network.target" ];
       wantedBy = [ "multi-user.target" ];
-      script = "${pkgs.git}/bin/git daemon --reuseaddr "
+      script = "${getExe cfg.package} daemon --reuseaddr "
         + (optionalString (cfg.basePath != "") "--base-path=${cfg.basePath} ")
         + (optionalString (cfg.listenAddress != "") "--listen=${cfg.listenAddress} ")
         + "--port=${toString cfg.port} --user=${cfg.user} --group=${cfg.group} ${cfg.options} "
diff --git a/nixos/modules/services/networking/inadyn.nix b/nixos/modules/services/networking/inadyn.nix
index baa4302096c2c..7022673538c8a 100644
--- a/nixos/modules/services/networking/inadyn.nix
+++ b/nixos/modules/services/networking/inadyn.nix
@@ -202,7 +202,7 @@ in
         startAt = cfg.interval;
         serviceConfig = {
           Type = "oneshot";
-          ExecStart = ''${lib.getExe pkgs.inadyn} -f ${configFile} --cache-dir ''${CACHE_DIRECTORY}/inadyn -1 --foreground -l ${cfg.logLevel}'';
+          ExecStart = ''${lib.getExe pkgs.inadyn} -f ${configFile} --cache-dir ''${CACHE_DIRECTORY} -1 --foreground -l ${cfg.logLevel}'';
           LoadCredential = "config:${configFile}";
           CacheDirectory = "inadyn";
 
diff --git a/nixos/modules/services/networking/kea.nix b/nixos/modules/services/networking/kea.nix
index 66173c145d16a..11add600b66fb 100644
--- a/nixos/modules/services/networking/kea.nix
+++ b/nixos/modules/services/networking/kea.nix
@@ -278,6 +278,9 @@ in
         "https://kea.readthedocs.io/en/kea-${package.version}/arm/agent.html"
       ];
 
+      wants = [
+        "network-online.target"
+      ];
       after = [
         "network-online.target"
         "time-sync.target"
diff --git a/nixos/modules/services/networking/mihomo.nix b/nixos/modules/services/networking/mihomo.nix
index 312530caeaade..d4bb10496279d 100644
--- a/nixos/modules/services/networking/mihomo.nix
+++ b/nixos/modules/services/networking/mihomo.nix
@@ -25,6 +25,7 @@ in
     webui = lib.mkOption {
       default = null;
       type = lib.types.nullOr lib.types.path;
+      example = lib.literalExpression "pkgs.metacubexd";
       description = ''
         Local web interface to use.
 
diff --git a/nixos/modules/services/networking/mycelium.nix b/nixos/modules/services/networking/mycelium.nix
index 9487a5daafee0..0d0b2945af4c1 100644
--- a/nixos/modules/services/networking/mycelium.nix
+++ b/nixos/modules/services/networking/mycelium.nix
@@ -60,6 +60,8 @@ in
     networking.firewall.allowedTCPPorts = lib.optionals cfg.openFirewall [ 9651 ];
     networking.firewall.allowedUDPPorts = lib.optionals cfg.openFirewall [ 9650 9651 ];
 
+    environment.systemPackages = [ cfg.package ];
+
     systemd.services.mycelium = {
       description = "Mycelium network";
       after = [ "network.target" ];
diff --git a/nixos/modules/services/networking/netbird/coturn.nix b/nixos/modules/services/networking/netbird/coturn.nix
index 746d70a07250d..29ff1e8fc15ee 100644
--- a/nixos/modules/services/networking/netbird/coturn.nix
+++ b/nixos/modules/services/networking/netbird/coturn.nix
@@ -60,6 +60,7 @@ in
       default = null;
       description = ''
         The password of the user used by netbird to connect to the coturn server.
+        Be advised this will be world readable in the nix store.
       '';
     };
 
@@ -142,7 +143,11 @@ in
           ];
         });
 
-      security.acme.certs.${cfg.domain}.postRun = optionalString cfg.useAcmeCertificates "systemctl restart coturn.service";
+      security.acme.certs = mkIf cfg.useAcmeCertificates {
+        ${cfg.domain}.postRun = ''
+          systemctl restart coturn.service
+        '';
+      };
 
       networking.firewall = {
         allowedUDPPorts = cfg.openPorts;
diff --git a/nixos/modules/services/networking/netbird/server.nix b/nixos/modules/services/networking/netbird/server.nix
index a4de0fda6a134..2b6ad696646e9 100644
--- a/nixos/modules/services/networking/netbird/server.nix
+++ b/nixos/modules/services/networking/netbird/server.nix
@@ -2,6 +2,7 @@
 
 let
   inherit (lib)
+    mkDefault
     mkEnableOption
     mkIf
     mkOption
@@ -15,7 +16,7 @@ in
 
 {
   meta = {
-    maintainers = with lib.maintainers; [ thubrecht ];
+    maintainers = with lib.maintainers; [thubrecht patrickdag];
     doc = ./server.md;
   };
 
@@ -41,26 +42,46 @@ in
   config = mkIf cfg.enable {
     services.netbird.server = {
       dashboard = {
-        inherit (cfg) enable domain enableNginx;
+        domain = mkDefault cfg.domain;
+        enable = mkDefault cfg.enable;
+        enableNginx = mkDefault cfg.enableNginx;
 
         managementServer = "https://${cfg.domain}";
       };
 
       management =
         {
-          inherit (cfg) enable domain enableNginx;
+          domain = mkDefault cfg.domain;
+          enable = mkDefault cfg.enable;
+          enableNginx = mkDefault cfg.enableNginx;
         }
-        // (optionalAttrs cfg.coturn.enable {
+        // (optionalAttrs cfg.coturn.enable rec {
           turnDomain = cfg.domain;
           turnPort = config.services.coturn.tls-listening-port;
+          # We cannot merge a list of attrsets so we have to redefine the whole list
+          settings = {
+            TURNConfig.Turns = mkDefault [
+              {
+                Proto = "udp";
+                URI = "turn:${turnDomain}:${builtins.toString turnPort}";
+                Username = "netbird";
+                Password =
+                  if (cfg.coturn.password != null)
+                  then cfg.coturn.password
+                  else {_secret = cfg.coturn.passwordFile;};
+              }
+            ];
+          };
         });
 
       signal = {
-        inherit (cfg) enable domain enableNginx;
+        domain = mkDefault cfg.domain;
+        enable = mkDefault cfg.enable;
+        enableNginx = mkDefault cfg.enableNginx;
       };
 
       coturn = {
-        inherit (cfg) domain;
+        domain = mkDefault cfg.domain;
       };
     };
   };
diff --git a/nixos/modules/services/networking/oink.nix b/nixos/modules/services/networking/oink.nix
new file mode 100644
index 0000000000000..cd0fdf172331d
--- /dev/null
+++ b/nixos/modules/services/networking/oink.nix
@@ -0,0 +1,84 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.oink;
+  makeOinkConfig = attrs: (pkgs.formats.json { }).generate
+    "oink.json" (mapAttrs' (k: v: nameValuePair (toLower k) v) attrs);
+  oinkConfig = makeOinkConfig {
+    global = cfg.settings;
+    domains = cfg.domains;
+  };
+in
+{
+  options.services.oink = {
+    enable = mkEnableOption "Oink, a dynamic DNS client for Porkbun";
+    package = mkPackageOption pkgs "oink" { };
+    settings = {
+      apiKey = mkOption {
+        type = types.str;
+        description = "API key to use when modifying DNS records.";
+      };
+      secretApiKey = mkOption {
+        type = types.str;
+        description = "Secret API key to use when modifying DNS records.";
+      };
+      interval = mkOption {
+        # https://github.com/rlado/oink/blob/v1.1.1/src/main.go#L364
+        type = types.ints.between 60 172800; # 48 hours
+        default = 900;
+        description = "Seconds to wait before sending another request.";
+      };
+      ttl = mkOption {
+        type = types.ints.between 600 172800;
+        default = 600;
+        description = ''
+          The TTL ("Time to Live") value to set for your DNS records.
+
+          The TTL controls how long in seconds your records will be cached
+          for. A smaller value will allow the record to update quicker.
+        '';
+      };
+    };
+    domains = mkOption {
+      type = with types; listOf (attrsOf anything);
+      default = [];
+      example = [
+        {
+          domain = "nixos.org";
+          subdomain = "";
+          ttl = 1200;
+        }
+        {
+          domain = "nixos.org";
+          subdomain = "hydra";
+        }
+      ];
+      description = ''
+        List of attribute sets containing configuration for each domain.
+
+        Each attribute set must have two attributes, one named *domain*
+        and another named *subdomain*. The domain attribute must specify
+        the root domain that you want to configure, and the subdomain
+        attribute must specify its subdomain if any. If you want to
+        configure the root domain rather than a subdomain, leave the
+        subdomain attribute as an empty string.
+
+        Additionally, you can use attributes from *services.oink.settings*
+        to override settings per-domain.
+
+        Every domain listed here *must* have API access enabled in
+        Porkbun's control panel.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.oink = {
+      description = "Dynamic DNS client for Porkbun";
+      wantedBy = [ "multi-user.target" ];
+      script = "${cfg.package}/bin/oink -c ${oinkConfig}";
+    };
+  };
+}
diff --git a/nixos/modules/services/networking/rosenpass.nix b/nixos/modules/services/networking/rosenpass.nix
index 66b6f960a81ab..92ecc1cb31a36 100644
--- a/nixos/modules/services/networking/rosenpass.nix
+++ b/nixos/modules/services/networking/rosenpass.nix
@@ -130,8 +130,8 @@ in
             relevant = config.systemd.network.enable;
             root = config.systemd.network.netdevs;
             peer = (x: x.wireguardPeers);
-            key = (x: if x.wireguardPeerConfig ? PublicKey then x.wireguardPeerConfig.PublicKey else null);
-            description = "${options.systemd.network.netdevs}.\"<name>\".wireguardPeers.*.wireguardPeerConfig.PublicKey";
+            key = x: x.PublicKey or null;
+            description = "${options.systemd.network.netdevs}.\"<name>\".wireguardPeers.*.PublicKey";
           }
           {
             relevant = config.networking.wireguard.enable;
diff --git a/nixos/modules/services/networking/ssh/sshd.nix b/nixos/modules/services/networking/ssh/sshd.nix
index 0fdb708bf052f..1e4e34a4f1675 100644
--- a/nixos/modules/services/networking/ssh/sshd.nix
+++ b/nixos/modules/services/networking/ssh/sshd.nix
@@ -5,11 +5,11 @@ with lib;
 let
 
   # The splicing information needed for nativeBuildInputs isn't available
-  # on the derivations likely to be used as `cfgc.package`.
+  # on the derivations likely to be used as `cfg.package`.
   # This middle-ground solution ensures *an* sshd can do their basic validation
   # on the configuration.
   validationPackage = if pkgs.stdenv.buildPlatform == pkgs.stdenv.hostPlatform
-    then cfgc.package
+    then cfg.package
     else pkgs.buildPackages.openssh;
 
   # dont use the "=" operator
@@ -169,6 +169,13 @@ in
         '';
       };
 
+      package = mkOption {
+        type = types.package;
+        default = config.programs.ssh.package;
+        defaultText = literalExpression "programs.ssh.package";
+        description = "OpenSSH package to use for sshd.";
+      };
+
       startWhenNeeded = mkOption {
         type = types.bool;
         default = false;
@@ -342,7 +349,7 @@ in
           freeformType = settingsFormat.type;
           options = {
             AuthorizedPrincipalsFile = mkOption {
-              type = types.str;
+              type = types.nullOr types.str;
               default = "none"; # upstream default
               description = ''
                 Specifies a file that lists principal names that are accepted for certificate authentication. The default
@@ -350,16 +357,18 @@ in
               '';
             };
             LogLevel = mkOption {
-              type = types.enum [ "QUIET" "FATAL" "ERROR" "INFO" "VERBOSE" "DEBUG" "DEBUG1" "DEBUG2" "DEBUG3" ];
+              type = types.nullOr (types.enum [ "QUIET" "FATAL" "ERROR" "INFO" "VERBOSE" "DEBUG" "DEBUG1" "DEBUG2" "DEBUG3" ]);
               default = "INFO"; # upstream default
               description = ''
                 Gives the verbosity level that is used when logging messages from sshd(8). Logging with a DEBUG level
                 violates the privacy of users and is not recommended.
               '';
             };
-            UsePAM = mkEnableOption "PAM authentication" // { default = true; };
+            UsePAM =
+              mkEnableOption "PAM authentication"
+              // { default = true; type = types.nullOr types.bool; };
             UseDns = mkOption {
-              type = types.bool;
+              type = types.nullOr types.bool;
               # apply if cfg.useDns then "yes" else "no"
               default = false;
               description = ''
@@ -370,14 +379,14 @@ in
               '';
             };
             X11Forwarding = mkOption {
-              type = types.bool;
+              type = types.nullOr types.bool;
               default = false;
               description = ''
                 Whether to allow X11 connections to be forwarded.
               '';
             };
             PasswordAuthentication = mkOption {
-              type = types.bool;
+              type = types.nullOr types.bool;
               default = true;
               description = ''
                 Specifies whether password authentication is allowed.
@@ -385,20 +394,20 @@ in
             };
             PermitRootLogin = mkOption {
               default = "prohibit-password";
-              type = types.enum ["yes" "without-password" "prohibit-password" "forced-commands-only" "no"];
+              type = types.nullOr (types.enum ["yes" "without-password" "prohibit-password" "forced-commands-only" "no"]);
               description = ''
                 Whether the root user can login using ssh.
               '';
             };
             KbdInteractiveAuthentication = mkOption {
-              type = types.bool;
+              type = types.nullOr types.bool;
               default = true;
               description = ''
                 Specifies whether keyboard-interactive authentication is allowed.
               '';
             };
             GatewayPorts = mkOption {
-              type = types.str;
+              type = types.nullOr types.str;
               default = "no";
               description = ''
                 Specifies whether remote hosts are allowed to connect to
@@ -407,7 +416,7 @@ in
               '';
             };
             KexAlgorithms = mkOption {
-              type = types.listOf types.str;
+              type = types.nullOr (types.listOf types.str);
               default = [
                 "sntrup761x25519-sha512@openssh.com"
                 "curve25519-sha256"
@@ -424,7 +433,7 @@ in
               '';
             };
             Macs = mkOption {
-              type = types.listOf types.str;
+              type = types.nullOr (types.listOf types.str);
               default = [
                 "hmac-sha2-512-etm@openssh.com"
                 "hmac-sha2-256-etm@openssh.com"
@@ -440,14 +449,14 @@ in
               '';
             };
             StrictModes = mkOption {
-              type = types.bool;
+              type = types.nullOr (types.bool);
               default = true;
               description = ''
                 Whether sshd should check file modes and ownership of directories
               '';
             };
             Ciphers = mkOption {
-              type = types.listOf types.str;
+              type = types.nullOr (types.listOf types.str);
               default = [
                 "chacha20-poly1305@openssh.com"
                 "aes256-gcm@openssh.com"
@@ -502,7 +511,9 @@ in
               '';
             };
             # Disabled by default, since pam_motd handles this.
-            PrintMotd = mkEnableOption "printing /etc/motd when a user logs in interactively";
+            PrintMotd =
+              mkEnableOption "printing /etc/motd when a user logs in interactively"
+              // { type = types.nullOr types.bool; };
           };
         });
       };
@@ -544,8 +555,8 @@ in
       };
     users.groups.sshd = {};
 
-    services.openssh.moduliFile = mkDefault "${cfgc.package}/etc/ssh/moduli";
-    services.openssh.sftpServerExecutable = mkDefault "${cfgc.package}/libexec/sftp-server";
+    services.openssh.moduliFile = mkDefault "${cfg.package}/etc/ssh/moduli";
+    services.openssh.sftpServerExecutable = mkDefault "${cfg.package}/libexec/sftp-server";
 
     environment.etc = authKeysFiles // authPrincipalsFiles //
       { "ssh/moduli".source = cfg.moduliFile;
@@ -559,7 +570,7 @@ in
             wantedBy = optional (!cfg.startWhenNeeded) "multi-user.target";
             after = [ "network.target" ];
             stopIfChanged = false;
-            path = [ cfgc.package pkgs.gawk ];
+            path = [ cfg.package pkgs.gawk ];
             environment.LD_LIBRARY_PATH = nssModulesPath;
 
             restartTriggers = optionals (!cfg.startWhenNeeded) [
@@ -593,7 +604,7 @@ in
             serviceConfig =
               { ExecStart =
                   (optionalString cfg.startWhenNeeded "-") +
-                  "${cfgc.package}/bin/sshd " + (optionalString cfg.startWhenNeeded "-i ") +
+                  "${cfg.package}/bin/sshd " + (optionalString cfg.startWhenNeeded "-i ") +
                   "-D " +  # don't detach into a daemon process
                   "-f /etc/ssh/sshd_config";
                 KillMode = "process";
@@ -639,7 +650,10 @@ in
     security.pam.services.sshd = lib.mkIf cfg.settings.UsePAM
       { startSession = true;
         showMotd = true;
-        unixAuth = cfg.settings.PasswordAuthentication;
+        unixAuth =
+          if cfg.settings.PasswordAuthentication == true
+          then true
+          else false;
       };
 
     # These values are merged with the ones defined externally, see:
@@ -701,6 +715,10 @@ in
 
     assertions = [{ assertion = if cfg.settings.X11Forwarding then cfgc.setXAuthLocation else true;
                     message = "cannot enable X11 forwarding without setting xauth location";}
+                  { assertion = (builtins.match "(.*\n)?(\t )*[Kk][Ee][Rr][Bb][Ee][Rr][Oo][Ss][Aa][Uu][Tt][Hh][Ee][Nn][Tt][Ii][Cc][Aa][Tt][Ii][Oo][Nn][ |\t|=|\"]+yes.*" "${configFile}\n${cfg.extraConfig}") != null -> cfgc.package.withKerberos;
+                    message = "cannot enable Kerberos authentication without using a package with Kerberos support";}
+                  { assertion = (builtins.match "(.*\n)?(\t )*[Gg][Ss][Ss][Aa][Pp][Ii][Aa][Uu][Tt][Hh][Ee][Nn][Tt][Ii][Cc][Aa][Tt][Ii][Oo][Nn][ |\t|=|\"]+yes.*" "${configFile}\n${cfg.extraConfig}") != null -> cfgc.package.withKerberos;
+                    message = "cannot enable GSSAPI authentication without using a package with Kerberos support";}
                   (let
                     duplicates =
                       # Filter out the groups with more than 1 element
diff --git a/nixos/modules/services/networking/tailscale-auth.nix b/nixos/modules/services/networking/tailscale-auth.nix
index c3a515212e782..f21d1f108911c 100644
--- a/nixos/modules/services/networking/tailscale-auth.nix
+++ b/nixos/modules/services/networking/tailscale-auth.nix
@@ -14,7 +14,7 @@ let
 in
 {
   options.services.tailscaleAuth = {
-    enable = mkEnableOption "Enable tailscale.nginx-auth, to authenticate users via tailscale.";
+    enable = mkEnableOption "tailscale.nginx-auth, to authenticate users via tailscale";
 
     package = mkPackageOption pkgs "tailscale-nginx-auth" {};
 
diff --git a/nixos/modules/services/networking/tailscale.nix b/nixos/modules/services/networking/tailscale.nix
index a79e47d8491b8..a690dc610e825 100644
--- a/nixos/modules/services/networking/tailscale.nix
+++ b/nixos/modules/services/networking/tailscale.nix
@@ -61,12 +61,21 @@ in {
     };
 
     extraUpFlags = mkOption {
-      description = "Extra flags to pass to {command}`tailscale up`.";
+      description = ''
+        Extra flags to pass to {command}`tailscale up`. Only applied if `authKeyFile` is specified.";
+      '';
       type = types.listOf types.str;
       default = [];
       example = ["--ssh"];
     };
 
+    extraSetFlags = mkOption {
+      description = "Extra flags to pass to {command}`tailscale set`.";
+      type = types.listOf types.str;
+      default = [];
+      example = ["--advertise-exit-node"];
+    };
+
     extraDaemonFlags = mkOption {
       description = "Extra flags to pass to {command}`tailscaled`.";
       type = types.listOf types.str;
@@ -120,6 +129,18 @@ in {
       '';
     };
 
+    systemd.services.tailscaled-set = mkIf (cfg.extraSetFlags != []) {
+      after = ["tailscaled.service"];
+      wants = ["tailscaled.service"];
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = {
+        Type = "oneshot";
+      };
+      script = ''
+        ${cfg.package}/bin/tailscale set ${escapeShellArgs cfg.extraSetFlags}
+      '';
+    };
+
     boot.kernel.sysctl = mkIf (cfg.useRoutingFeatures == "server" || cfg.useRoutingFeatures == "both") {
       "net.ipv4.conf.all.forwarding" = mkOverride 97 true;
       "net.ipv6.conf.all.forwarding" = mkOverride 97 true;
diff --git a/nixos/modules/services/networking/wireguard.nix b/nixos/modules/services/networking/wireguard.nix
index 3f68af3a86c96..81abae2c9303d 100644
--- a/nixos/modules/services/networking/wireguard.nix
+++ b/nixos/modules/services/networking/wireguard.nix
@@ -80,6 +80,15 @@ let
         description = "Commands called at the end of the interface setup.";
       };
 
+      preShutdown = mkOption {
+        example = literalExpression ''"''${pkgs.iproute2}/bin/ip netns del foo"'';
+        default = "";
+        type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
+        description = ''
+          Commands called before shutting down the interface.
+        '';
+      };
+
       postShutdown = mkOption {
         example = literalExpression ''"''${pkgs.openresolv}/bin/resolvconf -d wg0"'';
         default = "";
@@ -497,6 +506,7 @@ let
         '';
 
         postStop = ''
+          ${values.preShutdown}
           ${ipPostMove} link del dev "${name}"
           ${values.postShutdown}
         '';
diff --git a/nixos/modules/services/networking/wstunnel.nix b/nixos/modules/services/networking/wstunnel.nix
index efb65aead116a..1b169567624c0 100644
--- a/nixos/modules/services/networking/wstunnel.nix
+++ b/nixos/modules/services/networking/wstunnel.nix
@@ -7,6 +7,9 @@ let
     (name: value: if value == true then "--${name}" else "--${name}=${value}")
     attrs
   );
+
+  hostPortToString = { host, port }: "${host}:${builtins.toString port}";
+
   hostPortSubmodule = {
     options = {
       host = mkOption {
@@ -19,28 +22,7 @@ let
       };
     };
   };
-  localRemoteSubmodule = {
-    options = {
-      local = mkOption {
-        description = "Local address and port to listen on.";
-        type = types.submodule hostPortSubmodule;
-        example = {
-          host = "127.0.0.1";
-          port = 51820;
-        };
-      };
-      remote = mkOption {
-        description = "Address and port on remote to forward traffic to.";
-        type = types.submodule hostPortSubmodule;
-        example = {
-          host = "127.0.0.1";
-          port = 51820;
-        };
-      };
-    };
-  };
-  hostPortToString = { host, port }: "${host}:${builtins.toString port}";
-  localRemoteToString = { local, remote }: utils.escapeSystemdExecArg "${hostPortToString local}:${hostPortToString remote}";
+
   commonOptions = {
     enable = mkOption {
       description = "Whether to enable this `wstunnel` instance.";
@@ -66,10 +48,16 @@ let
       };
     };
 
-    verboseLogging = mkOption {
-      description = "Enable verbose logging.";
-      type = types.bool;
-      default = false;
+    loggingLevel = mkOption {
+      description = ''
+        Passed to --log-lvl
+
+        Control the log verbosity. i.e: TRACE, DEBUG, INFO, WARN, ERROR, OFF
+        For more details, checkout [EnvFilter](https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#example-syntax)
+      '';
+      type = types.nullOr types.str;
+      example = "INFO";
+      default = null;
     };
 
     environmentFile = mkOption {
@@ -99,11 +87,12 @@ let
 
       restrictTo = mkOption {
         description = "Accepted traffic will be forwarded only to this service. Set to `null` to allow forwarding to arbitrary addresses.";
-        type = types.nullOr (types.submodule hostPortSubmodule);
-        example = {
+        type = types.listOf (types.submodule hostPortSubmodule);
+        default = [];
+        example = [{
           host = "127.0.0.1";
           port = 51820;
-        };
+        }];
       };
 
       enableHTTPS = mkOption {
@@ -134,59 +123,36 @@ let
       };
     };
   };
+
   clientSubmodule = { config, ... }: {
     options = commonOptions // {
       connectTo = mkOption {
         description = "Server address and port to connect to.";
-        type = types.submodule hostPortSubmodule;
-        example = {
-          host = "example.com";
-        };
-      };
-
-      enableHTTPS = mkOption {
-        description = "Enable HTTPS when connecting to the server.";
-        type = types.bool;
-        default = true;
+        type = types.str;
+        example = "https://wstunnel.server.com:8443";
       };
 
       localToRemote = mkOption {
-        description = "Local hosts and ports to listen on, plus the hosts and ports on remote to forward traffic to. Setting a local port to a value less than 1024 will additionally give the process the required CAP_NET_BIND_SERVICE capability.";
-        type = types.listOf (types.submodule localRemoteSubmodule);
+        description = ''Listen on local and forwards traffic from remote.'';
+        type = types.listOf (types.str);
         default = [];
-        example = [ {
-          local = {
-            host = "127.0.0.1";
-            port = 8080;
-          };
-          remote = {
-            host = "127.0.0.1";
-            port = 8080;
-          };
-        } ];
+        example = [
+          "tcp://1212:google.com:443"
+          "unix:///tmp/wstunnel.sock:g.com:443"
+        ];
       };
 
-      dynamicToRemote = mkOption {
-        description = "Host and port for the SOCKS5 proxy to dynamically forward traffic to. Leave this at `null` to disable the SOCKS5 proxy. Setting the port to a value less than 1024 will additionally give the service the required CAP_NET_BIND_SERVICE capability.";
-        type = types.nullOr (types.submodule hostPortSubmodule);
-        default = null;
-        example = {
-          host = "127.0.0.1";
-          port = 1080;
-        };
-      };
-
-      udp = mkOption {
-        description = "Whether to forward UDP instead of TCP traffic.";
-        type = types.bool;
-        default = false;
+      remoteToLocal = mkOption {
+        description = "Listen on remote and forwards traffic from local. Only tcp is supported";
+        type = types.listOf (types.str);
+        default = [];
+        example = [
+          "tcp://1212:google.com:443"
+          "unix://wstunnel.sock:g.com:443"
+        ];
       };
 
-      udpTimeout = mkOption {
-        description = "When using UDP forwarding, timeout in seconds after which the tunnel connection is closed. `-1` means no timeout.";
-        type = types.int;
-        default = 30;
-      };
+      addNetBind = mkEnableOption "Whether add CAP_NET_BIND_SERVICE to the tunnel service, this should be enabled if you want to bind port < 1024";
 
       httpProxy = mkOption {
         description = ''
@@ -214,12 +180,6 @@ let
         example = "wstunnel";
       };
 
-      hostHeader = mkOption {
-        description = "Use this as the HTTP host header instead of the real hostname. Useful for circumventing hostname-based firewalls.";
-        type = types.nullOr types.str;
-        default = null;
-      };
-
       tlsSNI = mkOption {
         description = "Use this as the SNI while connecting via TLS. Useful for circumventing hostname-based firewalls.";
         type = types.nullOr types.str;
@@ -234,7 +194,7 @@ let
 
       # The original argument name `websocketPingFrequency` is a misnomer, as the frequency is the inverse of the interval.
       websocketPingInterval = mkOption {
-        description = "Do a heartbeat ping every N seconds to keep up the websocket connection.";
+        description = "Frequency at which the client will send websocket ping to the server.";
         type = types.nullOr types.ints.unsigned;
         default = null;
       };
@@ -261,6 +221,7 @@ let
       };
     };
   };
+
   generateServerUnit = name: serverCfg: {
     name = "wstunnel-server-${name}";
     value = {
@@ -282,11 +243,11 @@ let
             else tlsKey;
         in ''
           ${package}/bin/wstunnel \
-            --server \
-            ${optionalString (restrictTo != null)     "--restrictTo=${utils.escapeSystemdExecArg (hostPortToString restrictTo)}"} \
-            ${optionalString (resolvedTlsCertificate != null) "--tlsCertificate=${utils.escapeSystemdExecArg resolvedTlsCertificate}"} \
-            ${optionalString (resolvedTlsKey != null)         "--tlsKey=${utils.escapeSystemdExecArg resolvedTlsKey}"} \
-            ${optionalString verboseLogging "--verbose"} \
+            server \
+            ${concatStringsSep " " (builtins.map (hostPair:   "--restrict-to ${utils.escapeSystemdExecArg (hostPortToString hostPair)}") restrictTo)} \
+            ${optionalString (resolvedTlsCertificate != null) "--tls-certificate ${utils.escapeSystemdExecArg resolvedTlsCertificate}"} \
+            ${optionalString (resolvedTlsKey != null)         "--tls-private-key ${utils.escapeSystemdExecArg resolvedTlsKey}"} \
+            ${optionalString (loggingLevel != null) "--log-lvl ${loggingLevel}"} \
             ${attrsToArgs extraArgs} \
             ${utils.escapeSystemdExecArg "${if enableHTTPS then "wss" else "ws"}://${hostPortToString listen}"}
         '';
@@ -304,10 +265,10 @@ let
         ProtectControlGroups = true;
         PrivateDevices = true;
         RestrictSUIDSGID = true;
-
       };
     };
   };
+
   generateClientUnit = name: clientCfg: {
     name = "wstunnel-client-${name}";
     value = {
@@ -319,28 +280,25 @@ let
       serviceConfig = {
         Type = "simple";
         ExecStart = with clientCfg; ''
-          ${package}/bin/wstunnel \
-            ${concatStringsSep " " (builtins.map (x:          "--localToRemote=${localRemoteToString x}") localToRemote)} \
-            ${concatStringsSep " " (mapAttrsToList (n: v:     "--customHeaders=\"${n}: ${v}\"") customHeaders)} \
-            ${optionalString (dynamicToRemote != null)        "--dynamicToRemote=${utils.escapeSystemdExecArg (hostPortToString dynamicToRemote)}"} \
-            ${optionalString udp                              "--udp"} \
-            ${optionalString (httpProxy != null)              "--httpProxy=${httpProxy}"} \
-            ${optionalString (soMark != null)                 "--soMark=${toString soMark}"} \
-            ${optionalString (upgradePathPrefix != null)      "--upgradePathPrefix=${upgradePathPrefix}"} \
-            ${optionalString (hostHeader != null)             "--hostHeader=${hostHeader}"} \
-            ${optionalString (tlsSNI != null)                 "--tlsSNI=${tlsSNI}"} \
-            ${optionalString tlsVerifyCertificate             "--tlsVerifyCertificate"} \
-            ${optionalString (websocketPingInterval != null)  "--websocketPingFrequency=${toString websocketPingInterval}"} \
-            ${optionalString (upgradeCredentials != null)     "--upgradeCredentials=${upgradeCredentials}"} \
-            --udpTimeoutSec=${toString udpTimeout} \
-            ${optionalString verboseLogging "--verbose"} \
+          ${package}/bin/wstunnel client \
+            ${concatStringsSep " " (builtins.map (x:          "--local-to-remote ${x}") localToRemote)} \
+            ${concatStringsSep " " (builtins.map (x:          "--remote-to-local ${x}") remoteToLocal)} \
+            ${concatStringsSep " " (mapAttrsToList (n: v:     "--http-headers \"${n}: ${v}\"") customHeaders)} \
+            ${optionalString (httpProxy != null)              "--http-proxy ${httpProxy}"} \
+            ${optionalString (soMark != null)                 "--socket-so-mark=${toString soMark}"} \
+            ${optionalString (upgradePathPrefix != null)      "--http-upgrade-path-prefix ${upgradePathPrefix}"} \
+            ${optionalString (tlsSNI != null)                 "--tls-sni-override ${tlsSNI}"} \
+            ${optionalString tlsVerifyCertificate             "--tls-verify-certificate"} \
+            ${optionalString (websocketPingInterval != null)  "--websocket-ping-frequency-sec ${toString websocketPingInterval}"} \
+            ${optionalString (upgradeCredentials != null)     "--http-upgrade-credentials ${upgradeCredentials}"} \
+            ${optionalString (loggingLevel != null) "--log-lvl ${loggingLevel}"} \
             ${attrsToArgs extraArgs} \
-            ${utils.escapeSystemdExecArg "${if enableHTTPS then "wss" else "ws"}://${hostPortToString connectTo}"}
+            ${utils.escapeSystemdExecArg connectTo}
         '';
         EnvironmentFile = optional (clientCfg.environmentFile != null) clientCfg.environmentFile;
         DynamicUser = true;
         PrivateTmp = true;
-        AmbientCapabilities = (optionals (clientCfg.soMark != null) [ "CAP_NET_ADMIN" ]) ++ (optionals ((clientCfg.dynamicToRemote.port or 1024) < 1024 || (any (x: x.local.port < 1024) clientCfg.localToRemote)) [ "CAP_NET_BIND_SERVICE" ]);
+        AmbientCapabilities = (optionals (clientCfg.soMark != null) [ "CAP_NET_ADMIN" ]) ++ (optionals (clientCfg.addNetBind) [ "CAP_NET_BIND_SERVICE" ]);
         NoNewPrivileges = true;
         RestrictNamespaces = "uts ipc pid user cgroup";
         ProtectSystem = "strict";
@@ -363,14 +321,17 @@ in {
       default = {};
       example = {
         "wg-tunnel" = {
-          listen.port = 8080;
+          listen = {
+            host = "0.0.0.0";
+            port = 8080;
+          };
           enableHTTPS = true;
           tlsCertificate = "/var/lib/secrets/fullchain.pem";
           tlsKey = "/var/lib/secrets/key.pem";
-          restrictTo = {
+          restrictTo = [{
             host = "127.0.0.1";
             port = 51820;
-          };
+          }];
         };
       };
     };
@@ -381,22 +342,15 @@ in {
       default = {};
       example = {
         "wg-tunnel" = {
-          connectTo = {
-            host = "example.com";
-            port = 8080;
-          };
-          enableHTTPS = true;
-          localToRemote = {
-            local = {
-              host = "127.0.0.1";
-              port = 51820;
-            };
-            remote = {
-              host = "127.0.0.1";
-              port = 51820;
-            };
-          };
-          udp = true;
+          connectTo = "https://wstunnel.server.com:8443";
+          localToRemote = [
+            "tcp://1212:google.com:443"
+            "tcp://2:n.lan:4?proxy_protocol"
+          ];
+          remoteToLocal = [
+            "socks5://[::1]:1212"
+            "unix://wstunnel.sock:g.com:443"
+          ];
         };
       };
     };
@@ -418,12 +372,12 @@ in {
       '';
     }) cfg.servers) ++
     (mapAttrsToList (name: clientCfg: {
-      assertion = !(clientCfg.localToRemote == [] && clientCfg.dynamicToRemote == null);
+      assertion = !(clientCfg.localToRemote == [] && clientCfg.remoteToLocal == []);
       message = ''
-        Either one of services.wstunnel.clients."${name}".localToRemote or services.wstunnel.clients."${name}".dynamicToRemote must be set.
+        Either one of services.wstunnel.clients."${name}".localToRemote or services.wstunnel.clients."${name}".remoteToLocal must be set.
       '';
     }) cfg.clients);
   };
 
-  meta.maintainers = with maintainers; [ alyaeanyx ];
+  meta.maintainers = with maintainers; [ alyaeanyx neverbehave ];
 }
diff --git a/nixos/modules/services/search/qdrant.nix b/nixos/modules/services/search/qdrant.nix
index f28178a5f1751..41a4e9b41f6d9 100644
--- a/nixos/modules/services/search/qdrant.nix
+++ b/nixos/modules/services/search/qdrant.nix
@@ -60,6 +60,7 @@ in {
 
   config = mkIf cfg.enable {
     services.qdrant.settings = {
+      service.static_content_dir = mkDefault pkgs.qdrant-web-ui;
       storage.storage_path = mkDefault "/var/lib/qdrant/storage";
       storage.snapshots_path = mkDefault "/var/lib/qdrant/snapshots";
       # The following default values are the same as in the default config,
diff --git a/nixos/modules/services/search/quickwit.nix b/nixos/modules/services/search/quickwit.nix
new file mode 100644
index 0000000000000..6b2db935cf0bf
--- /dev/null
+++ b/nixos/modules/services/search/quickwit.nix
@@ -0,0 +1,190 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.quickwit;
+
+  settingsFormat = pkgs.formats.yaml {};
+  quickwitYml = settingsFormat.generate "quickwit.yml" cfg.settings;
+
+  usingDefaultDataDir = cfg.dataDir == "/var/lib/quickwit";
+  usingDefaultUserAndGroup = cfg.user == "quickwit" && cfg.group == "quickwit";
+in
+{
+
+  options.services.quickwit = {
+    enable = mkEnableOption "Quickwit";
+
+    package = lib.mkPackageOption pkgs "Quickwit" {
+      default = [ "quickwit" ];
+    };
+
+    settings = lib.mkOption {
+      type = lib.types.submodule {
+        freeformType = settingsFormat.type;
+
+        options."rest" = lib.mkOption {
+          default = {};
+          description = ''
+            Rest server configuration for Quickwit
+          '';
+
+          type = lib.types.submodule {
+            freeformType = settingsFormat.type;
+
+            options."listen_port" = lib.mkOption {
+              type = lib.types.port;
+              default = 7280;
+              description = ''
+                The port to listen on for HTTP REST traffic.
+              '';
+            };
+          };
+        };
+
+        options."grpc_listen_port" = lib.mkOption {
+          type = lib.types.port;
+          default = 7281;
+          description = ''
+            The port to listen on for gRPC traffic.
+          '';
+        };
+
+        options."listen_address" = lib.mkOption {
+          type = lib.types.str;
+          default = "127.0.0.1";
+          description = ''
+            Listen address of Quickwit.
+          '';
+        };
+
+        options."version" = lib.mkOption {
+          type = lib.types.float;
+          default = 0.7;
+          description = ''
+            Configuration file version.
+          '';
+        };
+      };
+
+      default = {};
+
+      description = ''
+        Quickwit configuration.
+      '';
+    };
+
+    dataDir = lib.mkOption {
+      type = lib.types.path;
+      default = "/var/lib/quickwit";
+      apply = converge (removeSuffix "/");
+      description = ''
+        Data directory for Quickwit. If you change this, you need to
+        manually create the directory. You also need to create the
+        `quickwit` user and group, or change
+        [](#opt-services.quickwit.user) and
+        [](#opt-services.quickwit.group) to existing ones with
+        access to the directory.
+      '';
+    };
+
+    user = lib.mkOption {
+      type = lib.types.str;
+      default = "quickwit";
+      description = ''
+        The user Quickwit runs as. Should be left at default unless
+        you have very specific needs.
+      '';
+    };
+
+    group = lib.mkOption {
+      type = lib.types.str;
+      default = "quickwit";
+      description = ''
+        The group quickwit runs as. Should be left at default unless
+        you have very specific needs.
+      '';
+    };
+
+    extraFlags = lib.mkOption {
+      description = "Extra command line options to pass to Quickwit.";
+      default = [ ];
+      type = lib.types.listOf lib.types.str;
+    };
+
+    restartIfChanged = lib.mkOption {
+      type = lib.types.bool;
+      description = ''
+        Automatically restart the service on config change.
+        This can be set to false to defer restarts on a server or cluster.
+        Please consider the security implications of inadvertently running an older version,
+        and the possibility of unexpected behavior caused by inconsistent versions across a cluster when disabling this option.
+      '';
+      default = true;
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.quickwit = {
+      description = "Quickwit";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" ];
+      inherit (cfg) restartIfChanged;
+      environment = {
+        QW_DATA_DIR = cfg.dataDir;
+      };
+      serviceConfig = {
+        ExecStart = ''
+          ${cfg.package}/bin/quickwit run --config ${quickwitYml} \
+          ${escapeShellArgs cfg.extraFlags}
+        '';
+        User = cfg.user;
+        Group = cfg.group;
+        Restart = "on-failure";
+        DynamicUser = usingDefaultUserAndGroup && usingDefaultDataDir;
+        CapabilityBoundingSet = [ "" ];
+        DevicePolicy = "closed";
+        LockPersonality = true;
+        MemoryDenyWriteExecute = true;
+        NoNewPrivileges = true;
+        PrivateDevices = true;
+        ProcSubset = "pid";
+        ProtectClock = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectControlGroups = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectProc = "invisible";
+        ProtectSystem = "strict";
+        ReadWritePaths = [
+          "/var/lib/quickwit"
+        ];
+        RestrictAddressFamilies = [
+          "AF_NETLINK"
+          "AF_INET"
+          "AF_INET6"
+        ];
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+        SystemCallArchitectures = "native";
+        SystemCallFilter = [
+          # 1. allow a reasonable set of syscalls
+          "@system-service @resources"
+          # 2. and deny unreasonable ones
+          "~@privileged"
+          # 3. then allow the required subset within denied groups
+          "@chown"
+        ];
+      } // (optionalAttrs (usingDefaultDataDir) {
+        StateDirectory = "quickwit";
+        StateDirectoryMode = "0700";
+      });
+    };
+
+    environment.systemPackages = [ cfg.package ];
+  };
+}
diff --git a/nixos/modules/services/security/bitwarden-directory-connector-cli.nix b/nixos/modules/services/security/bitwarden-directory-connector-cli.nix
index d21322caf4c33..fef4a88648979 100644
--- a/nixos/modules/services/security/bitwarden-directory-connector-cli.nix
+++ b/nixos/modules/services/security/bitwarden-directory-connector-cli.nix
@@ -260,6 +260,7 @@ in {
         description = "Sync timer for Bitwarden Directory Connector";
         wantedBy = ["timers.target"];
         after = ["network-online.target"];
+        wants = ["network-online.target"];
         timerConfig = {
           OnCalendar = cfg.interval;
           Unit = "bitwarden-directory-connector-cli.service";
diff --git a/nixos/modules/services/security/oauth2-proxy-nginx.nix b/nixos/modules/services/security/oauth2-proxy-nginx.nix
index 07192e7287b05..2dffeb993803f 100644
--- a/nixos/modules/services/security/oauth2-proxy-nginx.nix
+++ b/nixos/modules/services/security/oauth2-proxy-nginx.nix
@@ -73,6 +73,7 @@ in
       virtualHosts.${cfg.domain}.locations."/oauth2/" = {
         proxyPass = cfg.proxy;
         extraConfig = ''
+          auth_request off;
           proxy_set_header X-Scheme                $scheme;
           proxy_set_header X-Auth-Request-Redirect $scheme://$host$request_uri;
         '';
@@ -83,6 +84,15 @@ in
   } ++ (lib.mapAttrsToList (vhost: conf: {
     virtualHosts.${vhost} = {
       locations = {
+        "/".extraConfig = ''
+          # pass information via X-User and X-Email headers to backend, requires running with --set-xauthrequest flag
+          proxy_set_header X-User  $user;
+          proxy_set_header X-Email $email;
+
+          # if you enabled --cookie-refresh, this is needed for it to work with auth_request
+          add_header Set-Cookie $auth_cookie;
+        '';
+
         "/oauth2/auth" = let
           maybeQueryArg = name: value:
             if value == null then null
@@ -102,6 +112,7 @@ in
             proxy_pass_request_body           off;
           '';
         };
+
         "@redirectToAuth2ProxyLogin" = {
           return = "307 https://${cfg.domain}/oauth2/start?rd=$scheme://$host$request_uri";
           extraConfig = ''
@@ -114,16 +125,10 @@ in
         auth_request /oauth2/auth;
         error_page 401 = @redirectToAuth2ProxyLogin;
 
-        # pass information via X-User and X-Email headers to backend,
-        # requires running with --set-xauthrequest flag
+        # set variables being used in locations."/".extraConfig
         auth_request_set $user   $upstream_http_x_auth_request_user;
         auth_request_set $email  $upstream_http_x_auth_request_email;
-        proxy_set_header X-User  $user;
-        proxy_set_header X-Email $email;
-
-        # if you enabled --cookie-refresh, this is needed for it to work with auth_request
         auth_request_set $auth_cookie $upstream_http_set_cookie;
-        add_header Set-Cookie $auth_cookie;
       '';
     };
   }) cfg.virtualHosts)));
diff --git a/nixos/modules/services/security/oauth2-proxy.nix b/nixos/modules/services/security/oauth2-proxy.nix
index 3079a1d030c52..a897f04ea6333 100644
--- a/nixos/modules/services/security/oauth2-proxy.nix
+++ b/nixos/modules/services/security/oauth2-proxy.nix
@@ -586,11 +586,11 @@ in
         wantedBy = [ "multi-user.target" ];
         wants = [ "network-online.target" ] ++ lib.optionals needsKeycloak [ "keycloak.service" ];
         after = [ "network-online.target" ] ++ lib.optionals needsKeycloak [ "keycloak.service" ];
-
+        restartTriggers = [ cfg.keyFile ];
         serviceConfig = {
           User = "oauth2-proxy";
           Restart = "always";
-          ExecStart = "${cfg.package}/bin/oauth2-proxy ${configString}";
+          ExecStart = "${lib.getExe cfg.package} ${configString}";
           EnvironmentFile = lib.mkIf (cfg.keyFile != null) cfg.keyFile;
         };
       };
diff --git a/nixos/modules/services/security/vaultwarden/default.nix b/nixos/modules/services/security/vaultwarden/default.nix
index 33957be437b30..41f7de5d80fab 100644
--- a/nixos/modules/services/security/vaultwarden/default.nix
+++ b/nixos/modules/services/security/vaultwarden/default.nix
@@ -5,6 +5,8 @@ let
   user = config.users.users.vaultwarden.name;
   group = config.users.groups.vaultwarden.name;
 
+  StateDirectory = if lib.versionOlder config.system.stateVersion "24.11" then "bitwarden_rs" else "vaultwarden";
+
   # Convert name from camel case (e.g. disable2FARemember) to upper case snake case (e.g. DISABLE_2FA_REMEMBER).
   nameToEnvVar = name:
     let
@@ -23,7 +25,7 @@ let
       configEnv = lib.concatMapAttrs (name: value: lib.optionalAttrs (value != null) {
         ${nameToEnvVar name} = if lib.isBool value then lib.boolToString value else toString value;
       }) cfg.config;
-    in { DATA_FOLDER = "/var/lib/bitwarden_rs"; } // lib.optionalAttrs (!(configEnv ? WEB_VAULT_ENABLED) || configEnv.WEB_VAULT_ENABLED == "true") {
+    in { DATA_FOLDER = "/var/lib/${StateDirectory}"; } // lib.optionalAttrs (!(configEnv ? WEB_VAULT_ENABLED) || configEnv.WEB_VAULT_ENABLED == "true") {
       WEB_VAULT_FOLDER = "${cfg.webVaultPackage}/share/vaultwarden/vault";
     } // configEnv;
 
@@ -176,16 +178,45 @@ in {
         User = user;
         Group = group;
         EnvironmentFile = [ configFile ] ++ lib.optional (cfg.environmentFile != null) cfg.environmentFile;
-        ExecStart = "${vaultwarden}/bin/vaultwarden";
+        ExecStart = lib.getExe vaultwarden;
         LimitNOFILE = "1048576";
-        PrivateTmp = "true";
-        PrivateDevices = "true";
-        ProtectHome = "true";
+        CapabilityBoundingSet = [ "" ];
+        DeviceAllow = [ "" ];
+        DevicePolicy = "closed";
+        LockPersonality = true;
+        MemoryDenyWriteExecute = true;
+        NoNewPrivileges = true;
+        PrivateDevices = true;
+        PrivateTmp = true;
+        PrivateUsers = true;
+        ProcSubset = "pid";
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectProc = "noaccess";
         ProtectSystem = "strict";
-        AmbientCapabilities = "CAP_NET_BIND_SERVICE";
-        StateDirectory = "bitwarden_rs";
+        RemoveIPC = true;
+        RestrictAddressFamilies = [
+          "AF_INET"
+          "AF_INET6"
+          "AF_UNIX"
+        ];
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+        inherit StateDirectory;
         StateDirectoryMode = "0700";
+        SystemCallArchitectures = "native";
+        SystemCallFilter = [
+          "@system-service"
+          "~@privileged"
+        ];
         Restart = "always";
+        UMask = "0077";
       };
       wantedBy = [ "multi-user.target" ];
     };
@@ -193,7 +224,7 @@ in {
     systemd.services.backup-vaultwarden = lib.mkIf (cfg.backupDir != null) {
       description = "Backup vaultwarden";
       environment = {
-        DATA_FOLDER = "/var/lib/bitwarden_rs";
+        DATA_FOLDER = "/var/lib/${StateDirectory}";
         BACKUP_FOLDER = cfg.backupDir;
       };
       path = with pkgs; [ sqlite ];
diff --git a/nixos/modules/services/system/dbus.nix b/nixos/modules/services/system/dbus.nix
index 26f4eba707f92..d84136125f934 100644
--- a/nixos/modules/services/system/dbus.nix
+++ b/nixos/modules/services/system/dbus.nix
@@ -128,10 +128,14 @@ in
         contents."/etc/dbus-1".source = pkgs.makeDBusConf {
           inherit (cfg) apparmor;
           suidHelper = "/bin/false";
-          serviceDirectories = [ pkgs.dbus ];
+          serviceDirectories = [ pkgs.dbus config.boot.initrd.systemd.package ];
         };
         packages = [ pkgs.dbus ];
-        storePaths = [ "${pkgs.dbus}/bin/dbus-daemon" ];
+        storePaths = [
+          "${pkgs.dbus}/bin/dbus-daemon"
+          "${config.boot.initrd.systemd.package}/share/dbus-1/system-services"
+          "${config.boot.initrd.systemd.package}/share/dbus-1/system.d"
+        ];
         targets.sockets.wants = [ "dbus.socket" ];
       };
     })
diff --git a/nixos/modules/services/system/kerberos/default.nix b/nixos/modules/services/system/kerberos/default.nix
index 7fe970c9609a9..34c7c6c84f865 100644
--- a/nixos/modules/services/system/kerberos/default.nix
+++ b/nixos/modules/services/system/kerberos/default.nix
@@ -1,75 +1,59 @@
-{config, lib, ...}:
+{ config, pkgs, lib, ... }:
 
 let
-  inherit (lib) mkOption mkIf types length attrNames;
+  inherit (lib) mkOption types;
   cfg = config.services.kerberos_server;
-  kerberos = config.security.krb5.package;
+  inherit (config.security.krb5) package;
 
-  aclEntry = {
-    options = {
-      principal = mkOption {
-        type = types.str;
-        description = "Which principal the rule applies to";
-      };
-      access = mkOption {
-        type = types.either
-          (types.listOf (types.enum ["add" "cpw" "delete" "get" "list" "modify"]))
-          (types.enum ["all"]);
-        default = "all";
-        description = "The changes the principal is allowed to make.";
-      };
-      target = mkOption {
-        type = types.str;
-        default = "*";
-        description = "The principals that 'access' applies to.";
-      };
-    };
-  };
-
-  realm = {
-    options = {
-      acl = mkOption {
-        type = types.listOf (types.submodule aclEntry);
-        default = [
-          { principal = "*/admin"; access = "all"; }
-          { principal = "admin"; access = "all"; }
-        ];
-        description = ''
-          The privileges granted to a user.
-        '';
-      };
-    };
-  };
+  format = import ../../../security/krb5/krb5-conf-format.nix { inherit pkgs lib; } { enableKdcACLEntries = true; };
 in
 
 {
   imports = [
+    (lib.mkRenamedOptionModule [ "services" "kerberos_server" "realms" ] [ "services" "kerberos_server" "settings" "realms" ])
+
     ./mit.nix
     ./heimdal.nix
   ];
 
-  ###### interface
   options = {
     services.kerberos_server = {
       enable = lib.mkEnableOption "the kerberos authentication server";
 
-      realms = mkOption {
-        type = types.attrsOf (types.submodule realm);
+      settings = mkOption {
+        type = format.type;
         description = ''
-          The realm(s) to serve keys for.
+          Settings for the kerberos server of choice.
+
+          See the following documentation:
+          - Heimdal: {manpage}`kdc.conf(5)`
+          - MIT Kerberos: <https://web.mit.edu/kerberos/krb5-1.21/doc/admin/conf_files/kdc_conf.html>
         '';
+        default = { };
       };
     };
   };
 
+  config = lib.mkIf cfg.enable {
+    environment.systemPackages = [ package ];
+    assertions = [
+      {
+        assertion = cfg.settings.realms != { };
+        message = "The server needs at least one realm";
+      }
+      {
+        assertion = lib.length (lib.attrNames cfg.settings.realms) <= 1;
+        message = "Only one realm per server is currently supported.";
+      }
+    ];
+
+    systemd.slices.system-kerberos-server = { };
+    systemd.targets.kerberos-server = {
+      wantedBy = [ "multi-user.target" ];
+    };
+  };
 
-  ###### implementation
-
-  config = mkIf cfg.enable {
-    environment.systemPackages = [ kerberos ];
-    assertions = [{
-      assertion = length (attrNames cfg.realms) <= 1;
-      message = "Only one realm per server is currently supported.";
-    }];
+  meta = {
+    doc = ./kerberos-server.md;
   };
 }
diff --git a/nixos/modules/services/system/kerberos/heimdal.nix b/nixos/modules/services/system/kerberos/heimdal.nix
index ecafc92766704..cec4dd276e6b9 100644
--- a/nixos/modules/services/system/kerberos/heimdal.nix
+++ b/nixos/modules/services/system/kerberos/heimdal.nix
@@ -1,68 +1,87 @@
 { pkgs, config, lib, ... } :
 
 let
-  inherit (lib) mkIf concatStringsSep concatMapStrings toList mapAttrs
-    mapAttrsToList;
+  inherit (lib)  mapAttrs;
   cfg = config.services.kerberos_server;
-  kerberos = config.security.krb5.package;
-  stateDir = "/var/heimdal";
-  aclFiles = mapAttrs
-    (name: {acl, ...}: pkgs.writeText "${name}.acl" (concatMapStrings ((
-      {principal, access, target, ...} :
-      "${principal}\t${concatStringsSep "," (toList access)}\t${target}\n"
-    )) acl)) cfg.realms;
+  package = config.security.krb5.package;
 
-  kdcConfigs = mapAttrsToList (name: value: ''
-    database = {
-      dbname = ${stateDir}/heimdal
-      acl_file = ${value}
-    }
-  '') aclFiles;
-  kdcConfFile = pkgs.writeText "kdc.conf" ''
-    [kdc]
-    ${concatStringsSep "\n" kdcConfigs}
-  '';
+  aclConfigs = lib.pipe cfg.settings.realms [
+    (mapAttrs (name: { acl, ... }: lib.concatMapStringsSep "\n" (
+      { principal, access, target, ... }:
+      "${principal}\t${lib.concatStringsSep "," (lib.toList access)}\t${target}"
+    ) acl))
+    (lib.mapAttrsToList (name: text:
+      {
+        dbname = "/var/lib/heimdal/heimdal";
+        acl_file = pkgs.writeText "${name}.acl" text;
+      }
+    ))
+  ];
+
+  finalConfig = cfg.settings // {
+    realms = mapAttrs (_: v: removeAttrs v [ "acl" ]) (cfg.settings.realms or { });
+    kdc = (cfg.settings.kdc or { }) // {
+      database = aclConfigs;
+    };
+  };
+
+  format = import ../../../security/krb5/krb5-conf-format.nix { inherit pkgs lib; } { enableKdcACLEntries = true; };
+
+  kdcConfFile = format.generate "kdc.conf" finalConfig;
 in
 
 {
-  # No documentation about correct triggers, so guessing at them.
+  config = lib.mkIf (cfg.enable && package.passthru.implementation == "heimdal") {
+    environment.etc."heimdal-kdc/kdc.conf".source = kdcConfFile;
+
+    systemd.tmpfiles.settings."10-heimdal" = let
+      databases = lib.pipe finalConfig.kdc.database [
+        (map (dbAttrs: dbAttrs.dbname or null))
+        (lib.filter (x: x != null))
+        lib.unique
+      ];
+    in lib.genAttrs databases (_: {
+      d = {
+        user = "root";
+        group = "root";
+        mode = "0700";
+      };
+    });
 
-  config = mkIf (cfg.enable && kerberos == pkgs.heimdal) {
     systemd.services.kadmind = {
       description = "Kerberos Administration Daemon";
-      wantedBy = [ "multi-user.target" ];
-      preStart = ''
-        mkdir -m 0755 -p ${stateDir}
-      '';
-      serviceConfig.ExecStart =
-        "${kerberos}/libexec/kadmind --config-file=/etc/heimdal-kdc/kdc.conf";
+      partOf = [ "kerberos-server.target" ];
+      wantedBy = [ "kerberos-server.target" ];
+      serviceConfig = {
+        ExecStart = "${package}/libexec/kadmind --config-file=/etc/heimdal-kdc/kdc.conf";
+        Slice = "system-kerberos-server.slice";
+        StateDirectory = "heimdal";
+      };
       restartTriggers = [ kdcConfFile ];
     };
 
     systemd.services.kdc = {
       description = "Key Distribution Center daemon";
-      wantedBy = [ "multi-user.target" ];
-      preStart = ''
-        mkdir -m 0755 -p ${stateDir}
-      '';
-      serviceConfig.ExecStart =
-        "${kerberos}/libexec/kdc --config-file=/etc/heimdal-kdc/kdc.conf";
+      partOf = [ "kerberos-server.target" ];
+      wantedBy = [ "kerberos-server.target" ];
+      serviceConfig = {
+        ExecStart = "${package}/libexec/kdc --config-file=/etc/heimdal-kdc/kdc.conf";
+        Slice = "system-kerberos-server.slice";
+        StateDirectory = "heimdal";
+      };
       restartTriggers = [ kdcConfFile ];
     };
 
     systemd.services.kpasswdd = {
       description = "Kerberos Password Changing daemon";
-      wantedBy = [ "multi-user.target" ];
-      preStart = ''
-        mkdir -m 0755 -p ${stateDir}
-      '';
-      serviceConfig.ExecStart = "${kerberos}/libexec/kpasswdd";
+      partOf = [ "kerberos-server.target" ];
+      wantedBy = [ "kerberos-server.target" ];
+      serviceConfig = {
+        ExecStart = "${package}/libexec/kpasswdd";
+        Slice = "system-kerberos-server.slice";
+        StateDirectory = "heimdal";
+      };
       restartTriggers = [ kdcConfFile ];
     };
-
-    environment.etc = {
-      # Can be set via the --config-file option to KDC
-      "heimdal-kdc/kdc.conf".source = kdcConfFile;
-    };
   };
 }
diff --git a/nixos/modules/services/system/kerberos/kerberos-server.md b/nixos/modules/services/system/kerberos/kerberos-server.md
new file mode 100644
index 0000000000000..80c71be1541e4
--- /dev/null
+++ b/nixos/modules/services/system/kerberos/kerberos-server.md
@@ -0,0 +1,55 @@
+# kerberos_server {#module-services-kerberos-server}
+
+Kerberos is a computer-network authentication protocol that works on the basis of tickets to allow nodes communicating over a non-secure network to prove their identity to one another in a secure manner.
+
+This module provides both the MIT and Heimdal implementations of the a Kerberos server.
+
+## Usage {#module-services-kerberos-server-usage}
+
+To enable a Kerberos server:
+
+```nix
+{
+  security.krb5 = {
+    # Here you can choose between the MIT and Heimdal implementations.
+    package = pkgs.krb5;
+    # package = pkgs.heimdal;
+
+    # Optionally set up a client on the same machine as the server
+    enable = true;
+    settings = {
+      libdefaults.default_realm = "EXAMPLE.COM";
+      realms."EXAMPLE.COM" = {
+        kdc = "kerberos.example.com";
+        admin_server = "kerberos.example.com";
+      };
+    };
+  }
+
+  services.kerberos-server = {
+    enable = true;
+    settings = {
+      realms."EXAMPLE.COM" = {
+        acl = [{ principal = "adminuser"; access=  ["add" "cpw"]; }];
+      };
+    };
+  };
+}
+```
+
+## Notes {#module-services-kerberos-server-notes}
+
+- The Heimdal documentation will sometimes assume that state is stored in `/var/heimdal`, but this module uses `/var/lib/heimdal` instead.
+- Due to the heimdal implementation being chosen through `security.krb5.package`, it is not possible to have a system with one implementation of the client and another of the server.
+- While `services.kerberos_server.settings` has a common freeform type between the two implementations, the actual settings that can be set can vary between the two implementations. To figure out what settings are available, you should consult the upstream documentation for the implementation you are using.
+
+## Upstream Documentation {#module-services-kerberos-server-upstream-documentation}
+
+- MIT Kerberos homepage: https://web.mit.edu/kerberos
+- MIT Kerberos docs: https://web.mit.edu/kerberos/krb5-latest/doc/index.html
+
+- Heimdal Kerberos GitHub wiki: https://github.com/heimdal/heimdal/wiki
+- Heimdal kerberos doc manpages (Debian unstable): https://manpages.debian.org/unstable/heimdal-docs/index.html
+- Heimdal Kerberos kdc manpages (Debian unstable): https://manpages.debian.org/unstable/heimdal-kdc/index.html
+
+Note the version number in the URLs, it may be different for the latest version.
diff --git a/nixos/modules/services/system/kerberos/mit.nix b/nixos/modules/services/system/kerberos/mit.nix
index a654bd1fe7e1b..9ce58986e27af 100644
--- a/nixos/modules/services/system/kerberos/mit.nix
+++ b/nixos/modules/services/system/kerberos/mit.nix
@@ -1,31 +1,37 @@
 { pkgs, config, lib, ... } :
 
 let
-  inherit (lib) mkIf concatStrings concatStringsSep concatMapStrings toList
-    mapAttrs mapAttrsToList;
+  inherit (lib) mapAttrs;
   cfg = config.services.kerberos_server;
-  kerberos = config.security.krb5.package;
-  stateDir = "/var/lib/krb5kdc";
+  package = config.security.krb5.package;
   PIDFile = "/run/kdc.pid";
+
+  format = import ../../../security/krb5/krb5-conf-format.nix { inherit pkgs lib; } { enableKdcACLEntries = true; };
+
   aclMap = {
     add = "a"; cpw = "c"; delete = "d"; get = "i"; list = "l"; modify = "m";
     all = "*";
   };
-  aclFiles = mapAttrs
-    (name: {acl, ...}: (pkgs.writeText "${name}.acl" (concatMapStrings (
-      {principal, access, target, ...} :
-      let access_code = map (a: aclMap.${a}) (toList access); in
-      "${principal} ${concatStrings access_code} ${target}\n"
-    ) acl))) cfg.realms;
-  kdcConfigs = mapAttrsToList (name: value: ''
-    ${name} = {
-      acl_file = ${value}
-    }
-  '') aclFiles;
-  kdcConfFile = pkgs.writeText "kdc.conf" ''
-    [realms]
-    ${concatStringsSep "\n" kdcConfigs}
-  '';
+
+  aclConfigs = lib.pipe cfg.settings.realms [
+    (mapAttrs (name: { acl, ... }: lib.concatMapStringsSep "\n" (
+      { principal, access, target, ... }: let
+        access_code = map (a: aclMap.${a}) (lib.toList access);
+      in "${principal} ${lib.concatStrings access_code} ${target}"
+    ) acl))
+
+    (lib.concatMapAttrs (name: text: {
+      ${name} = {
+        acl_file = pkgs.writeText "${name}.acl" text;
+      };
+    }))
+  ];
+
+  finalConfig = cfg.settings // {
+    realms = mapAttrs (n: v: (removeAttrs v [ "acl" ]) // aclConfigs.${n}) (cfg.settings.realms or { });
+  };
+
+  kdcConfFile = format.generate "kdc.conf" finalConfig;
   env = {
     # What Debian uses, could possibly link directly to Nix store?
     KRB5_KDC_PROFILE = "/etc/krb5kdc/kdc.conf";
@@ -33,36 +39,38 @@ let
 in
 
 {
-  config = mkIf (cfg.enable && kerberos == pkgs.krb5) {
+  config = lib.mkIf (cfg.enable && package.passthru.implementation == "krb5") {
+    environment = {
+      etc."krb5kdc/kdc.conf".source = kdcConfFile;
+      variables = env;
+    };
+
     systemd.services.kadmind = {
       description = "Kerberos Administration Daemon";
-      wantedBy = [ "multi-user.target" ];
-      preStart = ''
-        mkdir -m 0755 -p ${stateDir}
-      '';
-      serviceConfig.ExecStart = "${kerberos}/bin/kadmind -nofork";
+      partOf = [ "kerberos-server.target" ];
+      wantedBy = [ "kerberos-server.target" ];
+      serviceConfig = {
+        ExecStart = "${package}/bin/kadmind -nofork";
+        Slice = "system-kerberos-server.slice";
+        StateDirectory = "krb5kdc";
+      };
       restartTriggers = [ kdcConfFile ];
       environment = env;
     };
 
     systemd.services.kdc = {
       description = "Key Distribution Center daemon";
-      wantedBy = [ "multi-user.target" ];
-      preStart = ''
-        mkdir -m 0755 -p ${stateDir}
-      '';
+      partOf = [ "kerberos-server.target" ];
+      wantedBy = [ "kerberos-server.target" ];
       serviceConfig = {
         Type = "forking";
         PIDFile = PIDFile;
-        ExecStart = "${kerberos}/bin/krb5kdc -P ${PIDFile}";
+        ExecStart = "${package}/bin/krb5kdc -P ${PIDFile}";
+        Slice = "system-kerberos-server.slice";
+        StateDirectory = "krb5kdc";
       };
       restartTriggers = [ kdcConfFile ];
       environment = env;
     };
-
-    environment.etc = {
-      "krb5kdc/kdc.conf".source = kdcConfFile;
-    };
-    environment.variables = env;
   };
 }
diff --git a/nixos/modules/services/system/nix-daemon.nix b/nixos/modules/services/system/nix-daemon.nix
index 0a5b0e2fcb80a..3d44bdac34bf6 100644
--- a/nixos/modules/services/system/nix-daemon.nix
+++ b/nixos/modules/services/system/nix-daemon.nix
@@ -164,7 +164,7 @@ in
         nixPackage
         pkgs.nix-info
       ]
-      ++ optional (config.programs.bash.enableCompletion) pkgs.nix-bash-completions;
+      ++ optional (config.programs.bash.completion.enable) pkgs.nix-bash-completions;
 
     systemd.packages = [ nixPackage ];
 
diff --git a/nixos/modules/services/torrent/flood.nix b/nixos/modules/services/torrent/flood.nix
new file mode 100644
index 0000000000000..213f4ef046483
--- /dev/null
+++ b/nixos/modules/services/torrent/flood.nix
@@ -0,0 +1,85 @@
+{ config, lib, pkgs, utils, ... }:
+
+let
+  cfg = config.services.flood;
+in
+{
+  meta.maintainers = with lib.maintainers; [ thiagokokada ];
+
+  options.services.flood = {
+    enable = lib.mkEnableOption "flood";
+    package = lib.mkPackageOption pkgs "flood" { };
+    openFirewall = lib.mkEnableOption "" // {
+      description = "Whether to open the firewall for the port in {option}`services.flood.port`.";
+    };
+    port = lib.mkOption {
+      type = lib.types.int;
+      description = "Port to bind webserver.";
+      default = 3000;
+      example = 3001;
+    };
+    host = lib.mkOption {
+      type = lib.types.str;
+      description = "Host to bind webserver.";
+      default = "localhost";
+      example = "::";
+    };
+    extraArgs = lib.mkOption {
+      type = with lib.types; listOf str;
+      description = "Extra arguments passed to `flood`.";
+      default = [ ];
+      example = [ "--baseuri=/" ];
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    systemd.services.flood = {
+      description = "A modern web UI for various torrent clients.";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+      unitConfig = {
+        Documentation = "https://github.com/jesec/flood/wiki";
+      };
+      serviceConfig = {
+        Restart = "on-failure";
+        RestartSec = "3s";
+        ExecStart = utils.escapeSystemdExecArgs ([
+          (lib.getExe cfg.package)
+          "--host"
+          cfg.host
+          "--port"
+          (toString cfg.port)
+          "--rundir=/var/lib/flood"
+        ] ++ cfg.extraArgs);
+
+        CapabilityBoundingSet = [ "" ];
+        DynamicUser = true;
+        LockPersonality = true;
+        NoNewPrivileges = true;
+        PrivateDevices = true;
+        PrivateTmp = true;
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectProc = "invisible";
+        ProtectSystem = "strict";
+        RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+        StateDirectory = "flood";
+        SystemCallArchitectures = "native";
+        SystemCallFilter = [ "@system-service" "@pkey" "~@privileged" ];
+      };
+    };
+
+    networking.firewall.allowedTCPPorts = lib.mkIf cfg.openFirewall [
+      cfg.port
+    ];
+  };
+}
+
diff --git a/nixos/modules/services/ttys/getty.nix b/nixos/modules/services/ttys/getty.nix
index 011016dd5fd14..e88bb4628635e 100644
--- a/nixos/modules/services/ttys/getty.nix
+++ b/nixos/modules/services/ttys/getty.nix
@@ -101,7 +101,7 @@ in
   config = {
     # Note: this is set here rather than up there so that changing
     # nixos.label would not rebuild manual pages
-    services.getty.greetingLine = mkDefault ''<<< Welcome to NixOS ${config.system.nixos.label} (\m) - \l >>>'';
+    services.getty.greetingLine = mkDefault ''<<< Welcome to ${config.system.nixos.distroName} ${config.system.nixos.label} (\m) - \l >>>'';
     services.getty.helpLine = mkIf (config.documentation.nixos.enable && config.documentation.doc.enable) "\nRun 'nixos-help' for the NixOS manual.";
 
     systemd.services."getty@" =
@@ -158,4 +158,5 @@ in
 
   };
 
+  meta.maintainers = with maintainers; [ RossComputerGuy ];
 }
diff --git a/nixos/modules/services/ttys/kmscon.nix b/nixos/modules/services/ttys/kmscon.nix
index 74314e1e76e40..031c5bbb383e1 100644
--- a/nixos/modules/services/ttys/kmscon.nix
+++ b/nixos/modules/services/ttys/kmscon.nix
@@ -107,7 +107,7 @@ in {
         fonts = optional (cfg.fonts != null) "font-name=${lib.concatMapStringsSep ", " (f: f.name) cfg.fonts}";
       in lib.concatStringsSep "\n" (render ++ fonts);
 
-    hardware.opengl.enable = mkIf cfg.hwRender true;
+    hardware.graphics.enable = mkIf cfg.hwRender true;
 
     fonts = mkIf (cfg.fonts != null) {
       fontconfig.enable = true;
diff --git a/nixos/modules/services/video/frigate.nix b/nixos/modules/services/video/frigate.nix
index 0e6bde447c033..c3ec4a3c76c34 100644
--- a/nixos/modules/services/video/frigate.nix
+++ b/nixos/modules/services/video/frigate.nix
@@ -427,10 +427,6 @@ in
         PrivateTmp = true;
         CacheDirectory = "frigate";
         CacheDirectoryMode = "0750";
-
-        BindPaths = [
-          "/migrations:${cfg.package}/share/frigate/migrations:ro"
-        ];
       };
     };
   };
diff --git a/nixos/modules/services/video/photonvision.nix b/nixos/modules/services/video/photonvision.nix
index d4568258db7d2..e2b27b3cc4104 100644
--- a/nixos/modules/services/video/photonvision.nix
+++ b/nixos/modules/services/video/photonvision.nix
@@ -6,7 +6,7 @@ in
 {
   options = {
     services.photonvision = {
-      enable = lib.mkEnableOption "Enable PhotonVision";
+      enable = lib.mkEnableOption "PhotonVision";
 
       package = lib.mkPackageOption pkgs "photonvision" {};
 
diff --git a/nixos/modules/services/wayland/cage.nix b/nixos/modules/services/wayland/cage.nix
index 91949f197cfed..870ae58f8646e 100644
--- a/nixos/modules/services/wayland/cage.nix
+++ b/nixos/modules/services/wayland/cage.nix
@@ -101,7 +101,7 @@ in {
       session required ${config.systemd.package}/lib/security/pam_systemd.so
     '';
 
-    hardware.opengl.enable = mkDefault true;
+    hardware.graphics.enable = mkDefault true;
 
     systemd.targets.graphical.wants = [ "cage-tty1.service" ];
 
diff --git a/nixos/modules/services/wayland/hypridle.nix b/nixos/modules/services/wayland/hypridle.nix
new file mode 100644
index 0000000000000..5442802df9871
--- /dev/null
+++ b/nixos/modules/services/wayland/hypridle.nix
@@ -0,0 +1,26 @@
+{ lib, pkgs, config, ... }:
+
+let
+  cfg = config.services.hypridle;
+in
+{
+  options.services.hypridle = {
+    enable = lib.mkEnableOption "hypridle, Hyprland's idle daemon";
+    package = lib.mkPackageOption pkgs "hypridle" { };
+  };
+
+  config = lib.mkIf cfg.enable {
+    environment.systemPackages = [
+      cfg.package
+    ];
+
+    systemd.user.services.hypridle = {
+      description = "Hypridle idle daemon";
+      wantedBy = [ "graphical-session.target" ];
+      partOf = [ "graphical-session.target" ];
+      script = lib.getExe cfg.package;
+    };
+  };
+
+  meta.maintainers = with lib.maintainers; [ johnrtitor ];
+}
diff --git a/nixos/modules/services/web-apps/akkoma.nix b/nixos/modules/services/web-apps/akkoma.nix
index 7c9bf6c465164..8ba3c7eaa1e6a 100644
--- a/nixos/modules/services/web-apps/akkoma.nix
+++ b/nixos/modules/services/web-apps/akkoma.nix
@@ -119,7 +119,7 @@ let
         -o ${escapeShellArg cfg.user } \
         -g ${escapeShellArg cfg.group} \
         <(hexdump -n 16 -e '"%02x"' /dev/urandom) \
-        "$RUNTIME_DIRECTORY/cookie"
+        "''${RUNTIME_DIRECTORY%%:*}/cookie"
     '';
   };
 
@@ -131,7 +131,7 @@ let
         -o ${escapeShellArg cfg.user} \
         -g ${escapeShellArg cfg.group} \
         ${escapeShellArg cfg.dist.cookie._secret} \
-        "$RUNTIME_DIRECTORY/cookie"
+        "''${RUNTIME_DIRECTORY%%:*}/cookie"
     '';
   };
 
@@ -181,7 +181,7 @@ let
     name = "akkoma-config";
     runtimeInputs = with pkgs; [ coreutils replace-secret ];
     text = ''
-      cd "$RUNTIME_DIRECTORY"
+      cd "''${RUNTIME_DIRECTORY%%:*}"
       tmp="$(mktemp config.exs.XXXXXXXXXX)"
       trap 'rm -f "$tmp"' EXIT TERM
 
@@ -279,7 +279,7 @@ let
         cd "${cfg.package}"
 
         RUNTIME_DIRECTORY="''${RUNTIME_DIRECTORY:-/run/akkoma}"
-        AKKOMA_CONFIG_PATH="$RUNTIME_DIRECTORY/config.exs" \
+        AKKOMA_CONFIG_PATH="''${RUNTIME_DIRECTORY%%:*}/config.exs" \
         ERL_EPMD_ADDRESS="${cfg.dist.address}" \
         ERL_EPMD_PORT="${toString cfg.dist.epmdPort}" \
         ERL_FLAGS=${lib.escapeShellArg (lib.escapeShellArgs ([
@@ -287,7 +287,7 @@ let
           "-kernel" "inet_dist_listen_min" (toString cfg.dist.portMin)
           "-kernel" "inet_dist_listen_max" (toString cfg.dist.portMax)
         ] ++ cfg.dist.extraFlags))} \
-        RELEASE_COOKIE="$(<"$RUNTIME_DIRECTORY/cookie")" \
+        RELEASE_COOKIE="$(<"''${RUNTIME_DIRECTORY%%:*}/cookie")" \
         RELEASE_NAME="akkoma" \
           exec "${cfg.package}/bin/$(basename "$0")" "$@"
       '';
@@ -984,7 +984,7 @@ in {
         RemainAfterExit = true;
         UMask = "0077";
 
-        RuntimeDirectory = "akkoma";
+        RuntimeDirectory = mkBefore "akkoma";
 
         ExecStart = mkMerge [
           (mkIf (cfg.dist.cookie == null) [ genScript ])
@@ -1072,7 +1072,7 @@ in {
 
         ProtectProc = "noaccess";
         ProcSubset = "pid";
-        ProtectSystem = mkIf (!isConfined) "strict";
+        ProtectSystem = "strict";
         ProtectHome = true;
         PrivateTmp = true;
         PrivateDevices = true;
@@ -1136,6 +1136,6 @@ in {
     };
   };
 
-  meta.maintainers = with maintainers; [ mvs tcmal ];
+  meta.maintainers = with maintainers; [ mvs ];
   meta.doc = ./akkoma.md;
 }
diff --git a/nixos/modules/services/web-apps/firefly-iii.nix b/nixos/modules/services/web-apps/firefly-iii.nix
index b0024ce09c38e..3e51bd226b02e 100644
--- a/nixos/modules/services/web-apps/firefly-iii.nix
+++ b/nixos/modules/services/web-apps/firefly-iii.nix
@@ -3,8 +3,8 @@
 let
   inherit (lib) optionalString mkDefault mkIf mkOption mkEnableOption literalExpression;
   inherit (lib.types) nullOr attrsOf oneOf str int bool path package enum submodule;
-  inherit (lib.strings) concatMapStringsSep removePrefix toShellVars removeSuffix hasSuffix;
-  inherit (lib.attrsets) attrValues genAttrs filterAttrs mapAttrs' nameValuePair;
+  inherit (lib.strings) concatLines removePrefix toShellVars removeSuffix hasSuffix;
+  inherit (lib.attrsets) mapAttrsToList attrValues genAttrs filterAttrs mapAttrs' nameValuePair;
   inherit (builtins) isInt isString toString typeOf;
 
   cfg = config.services.firefly-iii;
@@ -21,18 +21,10 @@ let
     (filterAttrs (n: v: hasSuffix "_FILE" n) cfg.settings);
   env-nonfile-values = filterAttrs (n: v: ! hasSuffix "_FILE" n) cfg.settings;
 
-  envfile = pkgs.writeText "firefly-iii-env" ''
-    ${toShellVars env-file-values}
-    ${toShellVars env-nonfile-values}
-  '';
-
   fileenv-func = ''
-    cp --no-preserve=mode ${envfile} /tmp/firefly-iii-env
-    ${concatMapStringsSep "\n"
-      (n: "${pkgs.replace-secret}/bin/replace-secret ${n} ${n} /tmp/firefly-iii-env")
-      (attrValues env-file-values)}
     set -a
-    . /tmp/firefly-iii-env
+    ${toShellVars env-nonfile-values}
+    ${concatLines (mapAttrsToList (n: v: "${n}=\"$(< ${v})\"") env-file-values)}
     set +a
   '';
 
@@ -41,22 +33,21 @@ let
 
     ${optionalString (cfg.settings.DB_CONNECTION == "sqlite")
       "touch ${cfg.dataDir}/storage/database/database.sqlite"}
-    ${artisan} migrate --seed --no-interaction --force
-    ${artisan} firefly-iii:decrypt-all
+    ${artisan} package:discover
     ${artisan} firefly-iii:upgrade-database
-    ${artisan} firefly-iii:correct-database
-    ${artisan} firefly-iii:report-integrity
     ${artisan} firefly-iii:laravel-passport-keys
     ${artisan} cache:clear
-
-    mv /tmp/firefly-iii-env /run/phpfpm/firefly-iii-env
+    ${artisan} view:cache
+    ${artisan} route:cache
+    ${artisan} config:cache
   '';
 
   commonServiceConfig = {
     Type = "oneshot";
     User = user;
     Group = group;
-    StateDirectory = "${removePrefix "/var/lib/" cfg.dataDir}";
+    StateDirectory = "firefly-iii";
+    ReadWritePaths = [cfg.dataDir];
     WorkingDirectory = cfg.package;
     PrivateTmp = true;
     PrivateDevices = true;
@@ -146,6 +137,7 @@ in {
 
     virtualHost = mkOption {
       type = str;
+      default = "localhost";
       description = ''
         The hostname at which you wish firefly-iii to be served. If you have
         enabled nginx using `services.firefly-iii.enableNginx` then this will
@@ -170,14 +162,15 @@ in {
     };
 
     settings = mkOption {
+      default = {};
       description = ''
         Options for firefly-iii configuration. Refer to
         <https://github.com/firefly-iii/firefly-iii/blob/main/.env.example> for
         details on supported values. All <option>_FILE values supported by
         upstream are supported here.
 
-        APP_URL will be set by `services.firefly-iii.virtualHost`, do not
-        redefine it here.
+        APP_URL will be the same as `services.firefly-iii.virtualHost` if the
+        former is unset in `services.firefly-iii.settings`.
       '';
       example = literalExpression ''
         {
@@ -192,7 +185,6 @@ in {
           DB_PASSWORD_FILE = "/var/secrets/firefly-iii-mysql-password.txt;
         }
       '';
-      default = {};
       type = submodule {
         freeformType = attrsOf (oneOf [str int bool]);
         options = {
@@ -216,9 +208,9 @@ in {
           };
           DB_PORT = mkOption {
             type = nullOr int;
-            default = if cfg.settings.DB_CONNECTION == "sqlite" then null
+            default = if cfg.settings.DB_CONNECTION == "pgsql" then 5432
                       else if cfg.settings.DB_CONNECTION == "mysql" then 3306
-                      else 5432;
+                      else null;
             defaultText = ''
               `null` if DB_CONNECTION is "sqlite", `3306` if "mysql", `5432` if "pgsql"
             '';
@@ -227,6 +219,21 @@ in {
               this value to be filled.
             '';
           };
+          DB_HOST = mkOption {
+            type = str;
+            default = if cfg.settings.DB_CONNECTION == "pgsql" then "/run/postgresql"
+                      else "localhost";
+            defaultText = ''
+              "localhost" if DB_CONNECTION is "sqlite" or "mysql", "/run/postgresql" if "pgsql".
+            '';
+            description = ''
+              The machine which hosts your database. This is left at the
+              default value for "mysql" because we use the "DB_SOCKET" option
+              to connect to a unix socket instead. "pgsql" requires that the
+              unix socket location be specified here instead of at "DB_SOCKET".
+              This option does not affect "sqlite".
+            '';
+          };
           APP_KEY_FILE = mkOption {
             type = path;
             description = ''
@@ -235,6 +242,20 @@ in {
               /dev/urandom | base64)" > /path/to/key-file`.
             '';
           };
+          APP_URL = mkOption {
+            type = str;
+            default = if cfg.virtualHost == "localhost" then "http://${cfg.virtualHost}"
+                      else "https://${cfg.virtualHost}";
+            defaultText = ''
+              http(s)://''${config.services.firefly-iii.virtualHost}
+            '';
+            description = ''
+              The APP_URL used by firefly-iii internally. Please make sure this
+              URL matches the external URL of your Firefly III installation. It
+              is used to validate specific requests and to generate URLs in
+              emails.
+            '';
+          };
         };
       };
     };
@@ -242,12 +263,6 @@ in {
 
   config = mkIf cfg.enable {
 
-    services.firefly-iii = {
-      settings = {
-        APP_URL = cfg.virtualHost;
-      };
-    };
-
     services.phpfpm.pools.firefly-iii = {
       inherit user group;
       phpPackage = cfg.package.phpPackage;
@@ -262,29 +277,27 @@ in {
       } // cfg.poolConfig;
     };
 
-    systemd.services.phpfpm-firefly-iii.serviceConfig = {
-      EnvironmentFile = "/run/phpfpm/firefly-iii-env";
-      ExecStartPost = "${pkgs.coreutils}/bin/rm /run/phpfpm/firefly-iii-env";
-    };
-
     systemd.services.firefly-iii-setup = {
+      after = [ "postgresql.service" "mysql.service" ];
       requiredBy = [ "phpfpm-firefly-iii.service" ];
       before = [ "phpfpm-firefly-iii.service" ];
       serviceConfig = {
         ExecStart = firefly-iii-maintenance;
         RuntimeDirectory = "phpfpm";
         RuntimeDirectoryPreserve = true;
+        RemainAfterExit = true;
       } // commonServiceConfig;
       unitConfig.JoinsNamespaceOf = "phpfpm-firefly-iii.service";
+      restartTriggers = [ cfg.package ];
     };
 
     systemd.services.firefly-iii-cron = {
+      after = [ "firefly-iii-setup.service" "postgresql.service" "mysql.service" ];
+      wants = [ "firefly-iii-setup.service" ];
       description = "Daily Firefly III cron job";
-      script = ''
-        ${fileenv-func}
-        ${artisan} firefly-iii:cron
-      '';
-      serviceConfig = commonServiceConfig;
+      serviceConfig = {
+        ExecStart = "${artisan} firefly-iii:cron";
+      } // commonServiceConfig;
     };
 
     systemd.timers.firefly-iii-cron = {
@@ -295,6 +308,7 @@ in {
         Persistent = true;
       };
       wantedBy = [ "timers.target" ];
+      restartTriggers = [ cfg.package ];
     };
 
     services.nginx = mkIf cfg.enableNginx {
diff --git a/nixos/modules/services/web-apps/freshrss.nix b/nixos/modules/services/web-apps/freshrss.nix
index 77c5ecb246171..021101fecaa48 100644
--- a/nixos/modules/services/web-apps/freshrss.nix
+++ b/nixos/modules/services/web-apps/freshrss.nix
@@ -10,7 +10,7 @@ in
   meta.maintainers = with maintainers; [ etu stunkymonkey mattchrist ];
 
   options.services.freshrss = {
-    enable = mkEnableOption "FreshRSS feed reader";
+    enable = mkEnableOption "FreshRSS RSS aggregator and reader with php-fpm backend.";
 
     package = mkPackageOption pkgs "freshrss" { };
 
@@ -108,7 +108,7 @@ in
       type = types.str;
       default = poolName;
       description = ''
-        Name of the phpfpm pool to use and setup. If not specified, a pool will be created
+        Name of the php-fpm pool to use and setup. If not specified, a pool will be created
         with default values.
       '';
     };
@@ -255,13 +255,10 @@ in
         {
           description = "Set up the state directory for FreshRSS before use";
           wantedBy = [ "multi-user.target" ];
-          serviceConfig = defaultServiceConfig //{
-            Type = "oneshot";
-            User = "freshrss";
-            Group = "freshrss";
-            StateDirectory = "freshrss";
-            WorkingDirectory = cfg.package;
+          serviceConfig = defaultServiceConfig // {
+            RemainAfterExit = true;
           };
+          restartIfChanged = true;
           environment = {
             DATA_PATH = cfg.dataDir;
           };
@@ -299,7 +296,7 @@ in
         environment = {
           DATA_PATH = cfg.dataDir;
         };
-        serviceConfig = defaultServiceConfig //{
+        serviceConfig = defaultServiceConfig // {
           ExecStart = "${cfg.package}/app/actualize_script.php";
         };
       };
diff --git a/nixos/modules/services/web-apps/invoiceplane.nix b/nixos/modules/services/web-apps/invoiceplane.nix
index 4d0e25958e35a..9a9f180b21021 100644
--- a/nixos/modules/services/web-apps/invoiceplane.nix
+++ b/nixos/modules/services/web-apps/invoiceplane.nix
@@ -39,20 +39,17 @@ let
 
   extraConfig = hostName: cfg: let
     settings = mapAttrsToList (k: v: "${k}=${mkPhpValue v}") cfg.settings;
-  in pkgs.writeText "extraConfig.php" ''
-    ${concatStringsSep "\n" settings}
-    ${toString cfg.extraConfig}
-  '';
+  in pkgs.writeText "extraConfig.php" (concatStringsSep "\n" settings);
 
   pkg = hostName: cfg: pkgs.stdenv.mkDerivation rec {
     pname = "invoiceplane-${hostName}";
     version = src.version;
     src = pkgs.invoiceplane;
 
-    postPhase = ''
+    postPatch = ''
       # Patch index.php file to load additional config file
       substituteInPlace index.php \
-        --replace "require('vendor/autoload.php');" "require('vendor/autoload.php'); \$dotenv = Dotenv\Dotenv::createImmutable(__DIR__, 'extraConfig.php'); \$dotenv->load();";
+        --replace-fail "require('vendor/autoload.php');" "require('vendor/autoload.php'); \$dotenv = Dotenv\Dotenv::createImmutable(__DIR__, 'extraConfig.php'); \$dotenv->load();";
     '';
 
     installPhase = ''
@@ -182,25 +179,6 @@ let
           '';
         };
 
-        extraConfig = mkOption {
-          type = types.nullOr types.lines;
-          default = null;
-          example = ''
-            SETUP_COMPLETED=true
-            DISABLE_SETUP=true
-            IP_URL=https://invoice.example.com
-          '';
-          description = ''
-            InvoicePlane configuration. Refer to
-            <https://github.com/InvoicePlane/InvoicePlane/blob/master/ipconfig.php.example>
-            for details on supported values.
-
-            **Note**: Please pass structured settings via
-            `services.invoiceplane.sites.${name}.settings` instead, this option
-            will get deprecated in the future.
-          '';
-        };
-
         settings = mkOption {
           type = types.attrsOf types.anything;
           default = {};
@@ -269,12 +247,6 @@ in
   # implementation
   config = mkIf (eachSite != {}) (mkMerge [{
 
-    warnings = flatten (mapAttrsToList (hostName: cfg: [
-      (optional (cfg.extraConfig != null) ''
-        services.invoiceplane.sites."${hostName}".extraConfig will be deprecated in future releases, please use the settings option now.
-      '')
-    ]) eachSite);
-
     assertions = flatten (mapAttrsToList (hostName: cfg: [
       { assertion = cfg.database.createLocally -> cfg.database.user == user;
         message = ''services.invoiceplane.sites."${hostName}".database.user must be ${user} if the database is to be automatically provisioned'';
diff --git a/nixos/modules/services/web-apps/mastodon.nix b/nixos/modules/services/web-apps/mastodon.nix
index 570f2770fb291..daebd6441cb5d 100644
--- a/nixos/modules/services/web-apps/mastodon.nix
+++ b/nixos/modules/services/web-apps/mastodon.nix
@@ -20,8 +20,6 @@ let
 
     DB_USER = cfg.database.user;
 
-    REDIS_HOST = cfg.redis.host;
-    REDIS_PORT = toString(cfg.redis.port);
     DB_HOST = cfg.database.host;
     DB_NAME = cfg.database.name;
     LOCAL_DOMAIN = cfg.localDomain;
@@ -34,6 +32,8 @@ let
 
     TRUSTED_PROXY_IP = cfg.trustedProxy;
   }
+  // lib.optionalAttrs (cfg.redis.host != null) { REDIS_HOST = cfg.redis.host; }
+  // lib.optionalAttrs (cfg.redis.port != null) { REDIS_PORT = toString(cfg.redis.port); }
   // lib.optionalAttrs (cfg.redis.createLocally && cfg.redis.enableUnixSocket) { REDIS_URL = "unix://${config.services.redis.servers.mastodon.unixSocket}"; }
   // lib.optionalAttrs (cfg.database.host != "/run/postgresql" && cfg.database.port != null) { DB_PORT = toString cfg.database.port; }
   // lib.optionalAttrs cfg.smtp.authenticate { SMTP_LOGIN  = cfg.smtp.user; }
@@ -90,6 +90,11 @@ let
     SystemCallArchitectures = "native";
   };
 
+  # Services that all Mastodon units After= and Requires= on
+  commonServices = lib.optional redisActuallyCreateLocally "redis-mastodon.service"
+    ++ lib.optional databaseActuallyCreateLocally "postgresql.service"
+    ++ lib.optional cfg.automaticMigrations "mastodon-init-db.service";
+
   envFile = pkgs.writeText "mastodon.env" (lib.concatMapStrings (s: s + "\n") (
     (lib.concatLists (lib.mapAttrsToList (name: value:
       lib.optional (value != null) ''${name}="${toString value}"''
@@ -117,14 +122,8 @@ let
       jobClassLabel = toString ([""] ++ processCfg.jobClasses);
       threads = toString (if processCfg.threads == null then cfg.sidekiqThreads else processCfg.threads);
     in {
-      after = [ "network.target" "mastodon-init-dirs.service" ]
-        ++ lib.optional redisActuallyCreateLocally "redis-mastodon.service"
-        ++ lib.optional databaseActuallyCreateLocally "postgresql.service"
-        ++ lib.optional cfg.automaticMigrations "mastodon-init-db.service";
-      requires = [ "mastodon-init-dirs.service" ]
-        ++ lib.optional redisActuallyCreateLocally "redis-mastodon.service"
-        ++ lib.optional databaseActuallyCreateLocally "postgresql.service"
-        ++ lib.optional cfg.automaticMigrations "mastodon-init-db.service";
+      after = [ "network.target" "mastodon-init-dirs.service" ] ++ commonServices;
+      requires = [ "mastodon-init-dirs.service" ] ++ commonServices;
       description = "Mastodon sidekiq${jobClassLabel}";
       wantedBy = [ "mastodon.target" ];
       environment = env // {
@@ -149,14 +148,8 @@ let
       (map (i: {
         name = "mastodon-streaming-${toString i}";
         value = {
-          after = [ "network.target" "mastodon-init-dirs.service" ]
-            ++ lib.optional redisActuallyCreateLocally "redis-mastodon.service"
-            ++ lib.optional databaseActuallyCreateLocally "postgresql.service"
-            ++ lib.optional cfg.automaticMigrations "mastodon-init-db.service";
-          requires = [ "mastodon-init-dirs.service" ]
-            ++ lib.optional redisActuallyCreateLocally "redis-mastodon.service"
-            ++ lib.optional databaseActuallyCreateLocally "postgresql.service"
-            ++ lib.optional cfg.automaticMigrations "mastodon-init-db.service";
+          after = [ "network.target" "mastodon-init-dirs.service" ] ++ commonServices;
+          requires = [ "mastodon-init-dirs.service" ] ++ commonServices;
           wantedBy = [ "mastodon.target" "mastodon-streaming.target" ];
           description = "Mastodon streaming ${toString i}";
           environment = env // { SOCKET = "/run/mastodon-streaming/streaming-${toString i}.socket"; };
@@ -401,14 +394,20 @@ in {
 
         host = lib.mkOption {
           description = "Redis host.";
-          type = lib.types.str;
-          default = "127.0.0.1";
+          type = lib.types.nullOr lib.types.str;
+          default = if cfg.redis.createLocally && !cfg.redis.enableUnixSocket then "127.0.0.1" else null;
+          defaultText = lib.literalExpression ''
+            if config.${opt.redis.createLocally} && !config.${opt.redis.enableUnixSocket} then "127.0.0.1" else null
+          '';
         };
 
         port = lib.mkOption {
           description = "Redis port.";
-          type = lib.types.port;
-          default = 31637;
+          type = lib.types.nullOr lib.types.port;
+          default = if cfg.redis.createLocally && !cfg.redis.enableUnixSocket then 31637 else null;
+          defaultText = lib.literalExpression ''
+            if config.${opt.redis.createLocally} && !config.${opt.redis.enableUnixSocket} then 31637 else null
+          '';
         };
 
         passwordFile = lib.mkOption {
@@ -632,6 +631,20 @@ in {
   config = lib.mkIf cfg.enable (lib.mkMerge [{
     assertions = [
       {
+        assertion = !redisActuallyCreateLocally -> (cfg.redis.host != "127.0.0.1" && cfg.redis.port != null);
+        message = ''
+          `services.mastodon.redis.host` and `services.mastodon.redis.port` need to be set if
+            `services.mastodon.redis.createLocally` is not enabled.
+        '';
+      }
+      {
+        assertion = redisActuallyCreateLocally -> (!cfg.redis.enableUnixSocket || (cfg.redis.host == null && cfg.redis.port == null));
+        message = ''
+          `services.mastodon.redis.enableUnixSocket` needs to be disabled if
+            `services.mastodon.redis.host` and `services.mastodon.redis.port` is used.
+        '';
+      }
+      {
         assertion = redisActuallyCreateLocally -> (!cfg.redis.enableUnixSocket || cfg.redis.passwordFile == null);
         message = ''
           <option>services.mastodon.redis.enableUnixSocket</option> needs to be disabled if
@@ -783,14 +796,8 @@ in {
     };
 
     systemd.services.mastodon-web = {
-      after = [ "network.target" "mastodon-init-dirs.service" ]
-        ++ lib.optional redisActuallyCreateLocally "redis-mastodon.service"
-        ++ lib.optional databaseActuallyCreateLocally "postgresql.service"
-        ++ lib.optional cfg.automaticMigrations "mastodon-init-db.service";
-      requires = [ "mastodon-init-dirs.service" ]
-        ++ lib.optional redisActuallyCreateLocally "redis-mastodon.service"
-        ++ lib.optional databaseActuallyCreateLocally "postgresql.service"
-        ++ lib.optional cfg.automaticMigrations "mastodon-init-db.service";
+      after = [ "network.target" "mastodon-init-dirs.service" ] ++ commonServices;
+      requires = [ "mastodon-init-dirs.service" ] ++ commonServices;
       wantedBy = [ "mastodon.target" ];
       description = "Mastodon web";
       environment = env // (if cfg.enableUnixSocket
diff --git a/nixos/modules/services/web-apps/mealie.nix b/nixos/modules/services/web-apps/mealie.nix
index 8f68828e7a0be..2484b2489c0d0 100644
--- a/nixos/modules/services/web-apps/mealie.nix
+++ b/nixos/modules/services/web-apps/mealie.nix
@@ -28,8 +28,6 @@ in
         Configuration of the Mealie service.
 
         See [the mealie documentation](https://nightly.mealie.io/documentation/getting-started/installation/backend-config/) for available options and default values.
-
-        In addition to the official documentation, you can set {env}`MEALIE_LOG_FILE`.
       '';
       example = {
         ALLOW_SIGNUP = "false";
@@ -61,6 +59,7 @@ in
         PRODUCTION = "true";
         ALEMBIC_CONFIG_FILE="${pkg}/config/alembic.ini";
         API_PORT = toString cfg.port;
+        BASE_URL = "http://localhost:${toString cfg.port}";
         DATA_DIR = "/var/lib/mealie";
         CRF_MODEL_PATH = "/var/lib/mealie/model.crfmodel";
       } // (builtins.mapAttrs (_: val: toString val) cfg.settings);
diff --git a/nixos/modules/services/web-apps/nextcloud-notify_push.nix b/nixos/modules/services/web-apps/nextcloud-notify_push.nix
index d6d17158a5590..4da5aff0c83e2 100644
--- a/nixos/modules/services/web-apps/nextcloud-notify_push.nix
+++ b/nixos/modules/services/web-apps/nextcloud-notify_push.nix
@@ -90,7 +90,7 @@ in
         export DATABASE_PASSWORD="$(<"${cfg.dbpassFile}")"
       '' + ''
         export DATABASE_URL="${dbUrl}"
-        ${cfg.package}/bin/notify_push '${cfgN.datadir}/config/config.php'
+        exec ${cfg.package}/bin/notify_push '${cfgN.datadir}/config/config.php'
       '';
       serviceConfig = {
         User = "nextcloud";
@@ -98,6 +98,7 @@ in
         RuntimeDirectory = [ "nextcloud-notify_push" ];
         Restart = "on-failure";
         RestartSec = "5s";
+        Type = "notify";
       };
     };
 
diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix
index 91d03dc160779..d7eb2c6cb734f 100644
--- a/nixos/modules/services/web-apps/nextcloud.nix
+++ b/nixos/modules/services/web-apps/nextcloud.nix
@@ -793,6 +793,16 @@ in {
         '';
       };
     };
+
+    cron.memoryLimit = mkOption {
+      type = types.nullOr types.str;
+      default = null;
+      example = "1G";
+      description = ''
+        The `memory_limit` of PHP is equal to [](#opt-services.nextcloud.maxUploadSize).
+        The value can be customized for `nextcloud-cron.service` using this option.
+      '';
+    };
   };
 
   config = mkIf cfg.enable (mkMerge [
@@ -1001,7 +1011,13 @@ in {
             Type = "exec";
             User = "nextcloud";
             ExecCondition = "${lib.getExe phpPackage} -f ${webroot}/occ status -e";
-            ExecStart = "${lib.getExe phpPackage} -f ${webroot}/cron.php";
+            ExecStart = lib.concatStringsSep " " ([
+              (lib.getExe phpPackage)
+            ] ++ optional (cfg.cron.memoryLimit != null) "-dmemory_limit=${cfg.cron.memoryLimit}"
+              ++ [
+              "-f"
+              "${webroot}/cron.php"
+            ]);
             KillMode = "process";
           };
         };
diff --git a/nixos/modules/services/web-apps/nextjs-ollama-llm-ui.nix b/nixos/modules/services/web-apps/nextjs-ollama-llm-ui.nix
new file mode 100644
index 0000000000000..9bd2cf310c0af
--- /dev/null
+++ b/nixos/modules/services/web-apps/nextjs-ollama-llm-ui.nix
@@ -0,0 +1,87 @@
+{
+  config,
+  pkgs,
+  lib,
+  ...
+}:
+let
+  cfg = config.services.nextjs-ollama-llm-ui;
+  # we have to override the URL to a Ollama service here, because it gets baked into the web app.
+  nextjs-ollama-llm-ui = cfg.package.override { inherit (cfg) ollamaUrl; };
+in
+{
+  options = {
+    services.nextjs-ollama-llm-ui = {
+      enable = lib.mkEnableOption ''
+        Simple Ollama web UI service; an easy to use web frontend for a Ollama backend service.
+        Run state-of-the-art AI large language models (LLM) similar to ChatGPT locally with privacy
+        on your personal computer.
+        This service is stateless and doesn't store any data on the server; all data is kept
+        locally in your web browser.
+        See https://github.com/jakobhoeg/nextjs-ollama-llm-ui.
+
+        Required: You need the Ollama backend service running by having
+        "services.nextjs-ollama-llm-ui.ollamaUrl" point to the correct url.
+        You can host such a backend service with NixOS through "services.ollama".
+      '';
+      package = lib.mkPackageOption pkgs "nextjs-ollama-llm-ui" { };
+
+      hostname = lib.mkOption {
+        type = lib.types.str;
+        default = "127.0.0.1";
+        example = "ui.example.org";
+        description = ''
+          The hostname under which the Ollama UI interface should be accessible.
+          By default it uses localhost/127.0.0.1 to be accessible only from the local machine.
+          Change to "0.0.0.0" to make it directly accessible from the local network.
+
+          Note: You should keep it at 127.0.0.1 and only serve to the local
+          network or internet from a (home) server behind a reverse-proxy and secured encryption.
+          See https://wiki.nixos.org/wiki/Nginx for instructions on how to set up a reverse-proxy.
+        '';
+      };
+
+      port = lib.mkOption {
+        type = lib.types.port;
+        default = 3000;
+        example = 3000;
+        description = ''
+          The port under which the Ollama UI interface should be accessible.
+        '';
+      };
+
+      ollamaUrl = lib.mkOption {
+        type = lib.types.str;
+        default = "127.0.0.1:11434";
+        example = "https://ollama.example.org";
+        description = ''
+          The address (including host and port) under which we can access the Ollama backend server.
+          !Note that if the the UI service is running under a domain "https://ui.example.org",
+          the Ollama backend service must allow "CORS" requests from this domain, e.g. by adding
+          "services.ollama.environment.OLLAMA_ORIGINS = [ ... "https://ui.example.org" ];"!
+        '';
+      };
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    systemd.services = {
+
+      nextjs-ollama-llm-ui = {
+        wantedBy = [ "multi-user.target" ];
+        description = "Nextjs Ollama LLM Ui.";
+        after = [ "network.target" ];
+        environment = {
+          HOSTNAME = cfg.hostname;
+          PORT = toString cfg.port;
+          NEXT_PUBLIC_OLLAMA_URL = cfg.ollamaUrl;
+        };
+        serviceConfig = {
+          ExecStart = "${lib.getExe nextjs-ollama-llm-ui}";
+          DynamicUser = true;
+        };
+      };
+    };
+  };
+  meta.maintainers = with lib.maintainers; [ malteneuss ];
+}
diff --git a/nixos/modules/services/web-apps/node-red.nix b/nixos/modules/services/web-apps/node-red.nix
index 7c8a2a6687b9c..4c095ea79bbde 100644
--- a/nixos/modules/services/web-apps/node-red.nix
+++ b/nixos/modules/services/web-apps/node-red.nix
@@ -5,15 +5,6 @@ with lib;
 let
   cfg = config.services.node-red;
   defaultUser = "node-red";
-  finalPackage = if cfg.withNpmAndGcc then node-red_withNpmAndGcc else cfg.package;
-  node-red_withNpmAndGcc = pkgs.runCommand "node-red" {
-    nativeBuildInputs = [ pkgs.makeWrapper ];
-  }
-  ''
-    mkdir -p $out/bin
-    makeWrapper ${pkgs.nodePackages.node-red}/bin/node-red $out/bin/node-red \
-      --set PATH '${lib.makeBinPath [ pkgs.nodePackages.npm pkgs.gcc ]}:$PATH' \
-  '';
 in
 {
   options.services.node-red = {
@@ -127,11 +118,12 @@ in
       environment = {
         HOME = cfg.userDir;
       };
+      path = lib.optionals cfg.withNpmAndGcc [ pkgs.nodePackages.npm pkgs.gcc ];
       serviceConfig = mkMerge [
         {
           User = cfg.user;
           Group = cfg.group;
-          ExecStart = "${finalPackage}/bin/node-red ${pkgs.lib.optionalString cfg.safe "--safe"} --settings ${cfg.configFile} --port ${toString cfg.port} --userDir ${cfg.userDir} ${concatStringsSep " " (mapAttrsToList (name: value: "-D ${name}=${value}") cfg.define)}";
+          ExecStart = "${cfg.package}/bin/node-red ${pkgs.lib.optionalString cfg.safe "--safe"} --settings ${cfg.configFile} --port ${toString cfg.port} --userDir ${cfg.userDir} ${concatStringsSep " " (mapAttrsToList (name: value: "-D ${name}=${value}") cfg.define)}";
           PrivateTmp = true;
           Restart = "always";
           WorkingDirectory = cfg.userDir;
diff --git a/nixos/modules/services/web-apps/pretix.nix b/nixos/modules/services/web-apps/pretix.nix
index 498face7456db..9786b61160260 100644
--- a/nixos/modules/services/web-apps/pretix.nix
+++ b/nixos/modules/services/web-apps/pretix.nix
@@ -310,7 +310,7 @@ in
               type = types.str;
               default = "redis+socket://${config.services.redis.servers.pretix.unixSocket}?virtual_host=1";
               defaultText = literalExpression ''
-                optionalString config.services.pretix.celery.enable "redis+socket://''${config.services.redis.servers.pretix.unixSocket}?virtual_host=1"
+                redis+socket://''${config.services.redis.servers.pretix.unixSocket}?virtual_host=1
               '';
               description = ''
                 URI to the celery backend used for the asynchronous job queue.
@@ -321,7 +321,7 @@ in
               type = types.str;
               default = "redis+socket://${config.services.redis.servers.pretix.unixSocket}?virtual_host=2";
               defaultText = literalExpression ''
-                optionalString config.services.pretix.celery.enable "redis+socket://''${config.services.redis.servers.pretix.unixSocket}?virtual_host=2"
+                redis+socket://''${config.services.redis.servers.pretix.unixSocket}?virtual_host=2
               '';
               description = ''
                 URI to the celery broker used for the asynchronous job queue.
diff --git a/nixos/modules/services/web-apps/slskd.nix b/nixos/modules/services/web-apps/slskd.nix
index 15a5fd1177adf..6254fe294eeed 100644
--- a/nixos/modules/services/web-apps/slskd.nix
+++ b/nixos/modules/services/web-apps/slskd.nix
@@ -5,7 +5,7 @@ let
   defaultUser = "slskd";
 in {
   options.services.slskd = with lib; with types; {
-    enable = mkEnableOption "enable slskd";
+    enable = mkEnableOption "slskd";
 
     package = mkPackageOptionMD pkgs "slskd" { };
 
diff --git a/nixos/modules/services/web-servers/garage.nix b/nixos/modules/services/web-servers/garage.nix
index 8d1966aee091b..7cf71ff6ff06f 100644
--- a/nixos/modules/services/web-servers/garage.nix
+++ b/nixos/modules/services/web-servers/garage.nix
@@ -83,7 +83,7 @@ in
       # These assertions can be removed in NixOS 24.11, when all users have been
       # warned once.
       {
-        assertion = (cfg.settings ? replication_factor || cfg.settings ? replication_mode) || lib.versionOlder cfg.package "1.0.0";
+        assertion = (cfg.settings ? replication_factor || cfg.settings ? replication_mode) || lib.versionOlder cfg.package.version "1.0.0";
         message = ''
           Garage 1.0.0 requires an explicit replication factor to be set.
           Please set replication_factor to 1 explicitly to preserve the previous behavior.
diff --git a/nixos/modules/services/web-servers/nginx/tailscale-auth.nix b/nixos/modules/services/web-servers/nginx/tailscale-auth.nix
index ca272268f5724..de1d708cbb423 100644
--- a/nixos/modules/services/web-servers/nginx/tailscale-auth.nix
+++ b/nixos/modules/services/web-servers/nginx/tailscale-auth.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, ... }:
 
 let
   inherit (lib)
@@ -22,7 +22,7 @@ in
   ];
 
   options.services.nginx.tailscaleAuth = {
-    enable = mkEnableOption "Enable tailscale.nginx-auth, to authenticate nginx users via tailscale.";
+    enable = mkEnableOption "tailscale.nginx-auth, to authenticate nginx users via tailscale";
 
     expectedTailnet = mkOption {
       default = "";
diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixos/modules/services/x11/desktop-managers/pantheon.nix
index 008bc65eb6a4f..0e9a06706d4f6 100644
--- a/nixos/modules/services/x11/desktop-managers/pantheon.nix
+++ b/nixos/modules/services/x11/desktop-managers/pantheon.nix
@@ -269,11 +269,6 @@ in
       programs.bash.vteIntegration = mkDefault true;
       programs.zsh.vteIntegration = mkDefault true;
 
-      # Use native GTK file chooser on Qt apps. This is because Qt does not know Pantheon.
-      # https://invent.kde.org/qt/qt/qtbase/-/blob/6.6/src/gui/platform/unix/qgenericunixthemes.cpp#L1312
-      # https://github.com/elementary/default-settings/blob/7.0.2/profile.d/qt-qpa-platformtheme.sh
-      environment.variables.QT_QPA_PLATFORMTHEME = mkDefault "gtk3";
-
       # Default Fonts
       fonts.packages = with pkgs; [
         inter
diff --git a/nixos/modules/services/x11/desktop-managers/phosh.nix b/nixos/modules/services/x11/desktop-managers/phosh.nix
index e8494b2c017c9..12b39f927c012 100644
--- a/nixos/modules/services/x11/desktop-managers/phosh.nix
+++ b/nixos/modules/services/x11/desktop-managers/phosh.nix
@@ -216,7 +216,7 @@ in
 
     security.pam.services.phosh = {};
 
-    hardware.opengl.enable = mkDefault true;
+    hardware.graphics.enable = mkDefault true;
 
     services.gnome.core-shell.enable = true;
     services.gnome.core-os-services.enable = true;
diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix
index 7d80b9b2641c3..53d3b91bfa17c 100644
--- a/nixos/modules/services/x11/desktop-managers/plasma5.nix
+++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix
@@ -327,7 +327,7 @@ in
       };
 
       # Enable GTK applications to load SVG icons
-      services.xserver.gdk-pixbuf.modulePackages = [ pkgs.librsvg ];
+      programs.gdk-pixbuf.modulePackages = [ pkgs.librsvg ];
 
       fonts.packages = with pkgs; [ cfg.notoPackage hack-font ];
       fonts.fontconfig.defaultFonts = {
diff --git a/nixos/modules/services/x11/desktop-managers/xfce.nix b/nixos/modules/services/x11/desktop-managers/xfce.nix
index 85d0d199de3f2..727802f3a63e2 100644
--- a/nixos/modules/services/x11/desktop-managers/xfce.nix
+++ b/nixos/modules/services/x11/desktop-managers/xfce.nix
@@ -153,7 +153,7 @@ in
     }];
 
     services.xserver.updateDbusEnvironment = true;
-    services.xserver.gdk-pixbuf.modulePackages = [ pkgs.librsvg ];
+    programs.gdk-pixbuf.modulePackages = [ pkgs.librsvg ];
 
     # Enable helpful DBus services.
     services.udisks2.enable = true;
diff --git a/nixos/modules/services/x11/window-managers/qtile.nix b/nixos/modules/services/x11/window-managers/qtile.nix
index 700ead8366008..4603ca3fb50f0 100644
--- a/nixos/modules/services/x11/window-managers/qtile.nix
+++ b/nixos/modules/services/x11/window-managers/qtile.nix
@@ -7,6 +7,10 @@ let
 in
 
 {
+  imports = [
+    (mkRemovedOptionModule [ "services" "xserver" "windowManager" "qtile" "backend" ] "The qtile package now provides separate display sessions for both X11 and Wayland.")
+  ];
+
   options.services.xserver.windowManager.qtile = {
     enable = mkEnableOption "qtile";
 
@@ -22,14 +26,6 @@ in
       '';
     };
 
-    backend = mkOption {
-      type = types.enum [ "x11" "wayland" ];
-      default = "x11";
-      description = ''
-          Backend to use in qtile: `x11` or `wayland`.
-      '';
-    };
-
     extraPackages = mkOption {
         type = types.functionTo (types.listOf types.package);
         default = _: [];
@@ -57,25 +53,14 @@ in
   };
 
   config = mkIf cfg.enable {
-    services.xserver.windowManager.qtile.finalPackage = pkgs.python3.withPackages (p:
-      [ (cfg.package.unwrapped or cfg.package) ] ++ (cfg.extraPackages p)
-    );
-
-    services.xserver.windowManager.session = [{
-      name = "qtile";
-      start = ''
-        ${cfg.finalPackage}/bin/qtile start -b ${cfg.backend} \
-        ${optionalString (cfg.configFile != null)
-        "--config \"${cfg.configFile}\""} &
-        waitPID=$!
-      '';
-    }];
+    services = {
+      xserver.windowManager.qtile.finalPackage = pkgs.python3.pkgs.qtile.override { extraPackages = cfg.extraPackages pkgs.python3.pkgs; };
+      displayManager.sessionPackages = [ cfg.finalPackage ];
+    };
 
-    environment.systemPackages = [
-      # pkgs.qtile is currently a buildenv of qtile and its dependencies.
-      # For userland commands, we want the underlying package so that
-      # packages such as python don't bleed into userland and overwrite intended behavior.
-      (cfg.package.unwrapped or cfg.package)
-    ];
+    environment = {
+      etc."xdg/qtile/config.py" = mkIf (cfg.configFile != null) { source = cfg.configFile; };
+      systemPackages = [ cfg.finalPackage ];
+    };
   };
 }
diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix
index 5a86d055c2719..57e83399eded6 100644
--- a/nixos/modules/services/x11/xserver.nix
+++ b/nixos/modules/services/x11/xserver.nix
@@ -302,7 +302,7 @@ in
         default = [ "modesetting" "fbdev" ];
         example = [
           "nvidia"
-          "amdgpu-pro"
+          "amdgpu"
         ];
         # TODO(@oxij): think how to easily add the rest, like those nvidia things
         relatedPackages = concatLists
@@ -716,10 +716,7 @@ in
 
         restartIfChanged = false;
 
-        environment =
-          optionalAttrs config.hardware.opengl.setLdLibraryPath
-            { LD_LIBRARY_PATH = lib.makeLibraryPath [ pkgs.addOpenGLRunpath.driverLink ]; }
-          // config.services.displayManager.environment;
+        environment = config.services.displayManager.environment;
 
         preStart =
           ''
diff --git a/nixos/modules/system/boot/initrd-ssh.nix b/nixos/modules/system/boot/initrd-ssh.nix
index 9ce5a85b4f073..d1cd601c2d9b1 100644
--- a/nixos/modules/system/boot/initrd-ssh.nix
+++ b/nixos/modules/system/boot/initrd-ssh.nix
@@ -82,7 +82,7 @@ in
       type = types.bool;
       default = false;
       description = ''
-        Allow leaving {option}`config.boot.initrd.network.ssh` empty,
+        Allow leaving {option}`config.boot.initrd.network.ssh.hostKeys` empty,
         to deploy ssh host keys out of band.
       '';
     };
diff --git a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
index 03bff1dee5b9d..694d34d1c059a 100644
--- a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
+++ b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
@@ -196,8 +196,7 @@ def get_generations(profile: str | None = None) -> list[SystemIdentifier]:
         f"{NIX}/bin/nix-env",
         "--list-generations",
         "-p",
-        "/nix/var/nix/profiles/%s" % ("system-profiles/" + profile if profile else "system"),
-        "--option", "build-users-group", ""],
+        "/nix/var/nix/profiles/%s" % ("system-profiles/" + profile if profile else "system")],
         universal_newlines=True)
     gen_lines = gen_list.split('\n')
     gen_lines.pop()
diff --git a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix
index cee8663f0040e..e73048dc2ecbe 100644
--- a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix
+++ b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix
@@ -323,15 +323,15 @@ in {
     assertions = [
       {
         assertion = (hasPrefix "/" efi.efiSysMountPoint);
-        message = "The ESP mount point '${efi.efiSysMountPoint}' must be an absolute path";
+        message = "The ESP mount point '${toString efi.efiSysMountPoint}' must be an absolute path";
       }
       {
         assertion = cfg.xbootldrMountPoint == null || (hasPrefix "/" cfg.xbootldrMountPoint);
-        message = "The XBOOTLDR mount point '${cfg.xbootldrMountPoint}' must be an absolute path";
+        message = "The XBOOTLDR mount point '${toString cfg.xbootldrMountPoint}' must be an absolute path";
       }
       {
         assertion = cfg.xbootldrMountPoint != efi.efiSysMountPoint;
-        message = "The XBOOTLDR mount point '${cfg.xbootldrMountPoint}' cannot be the same as the ESP mount point '${efi.efiSysMountPoint}'";
+        message = "The XBOOTLDR mount point '${toString cfg.xbootldrMountPoint}' cannot be the same as the ESP mount point '${toString efi.efiSysMountPoint}'";
       }
       {
         assertion = (config.boot.kernelPackages.kernel.features or { efiBootStub = true; }) ? efiBootStub;
diff --git a/nixos/modules/system/boot/networkd.nix b/nixos/modules/system/boot/networkd.nix
index 7f53efbf83f5d..761bbe6e03d4a 100644
--- a/nixos/modules/system/boot/networkd.nix
+++ b/nixos/modules/system/boot/networkd.nix
@@ -386,7 +386,7 @@ let
         (assertValueOneOf "UDP6ZeroChecksumRx" boolValues)
       ];
 
-      sectionL2TPSession = checkUnitConfig "L2TPSession" [
+      sectionL2TPSession = checkUnitConfigWithLegacyKey "l2tpSessionConfig" "L2TPSession" [
         (assertOnlyFields [
           "Name"
           "SessionId"
@@ -421,7 +421,7 @@ let
       # NOTE The PresharedKey directive is missing on purpose here, please
       # do not add it to this list. The nix store is world-readable,let's
       # refrain ourselves from providing a footgun.
-      sectionWireGuardPeer = checkUnitConfig "WireGuardPeer" [
+      sectionWireGuardPeer = checkUnitConfigWithLegacyKey "wireguardPeerConfig" "WireGuardPeer" [
         (assertOnlyFields [
           "PublicKey"
           "PresharedKeyFile"
@@ -712,7 +712,7 @@ let
         (assertValueOneOf "KeepConfiguration" (boolValues ++ ["static" "dhcp-on-stop" "dhcp"]))
       ];
 
-      sectionAddress = checkUnitConfig "Address" [
+      sectionAddress = checkUnitConfigWithLegacyKey "addressConfig" "Address" [
         (assertOnlyFields [
           "Address"
           "Peer"
@@ -737,7 +737,7 @@ let
         (assertValueOneOf "AutoJoin" boolValues)
       ];
 
-      sectionRoutingPolicyRule = checkUnitConfig "RoutingPolicyRule" [
+      sectionRoutingPolicyRule = checkUnitConfigWithLegacyKey "routingPolicyRuleConfig" "RoutingPolicyRule" [
         (assertOnlyFields [
           "TypeOfService"
           "From"
@@ -772,7 +772,7 @@ let
         (assertRange "SuppressInterfaceGroup" 0 2147483647)
       ];
 
-      sectionRoute = checkUnitConfig "Route" [
+      sectionRoute = checkUnitConfigWithLegacyKey "routeConfig" "Route" [
         (assertOnlyFields [
           "Gateway"
           "GatewayOnLink"
@@ -952,6 +952,7 @@ let
           "UseGateway"
           "UseRoutePrefix"
           "Token"
+          "UsePREF64"
         ])
         (assertValueOneOf "UseDNS" boolValues)
         (assertValueOneOf "UseDomains" (boolValues ++ ["route"]))
@@ -962,6 +963,7 @@ let
         (assertValueOneOf "UseMTU" boolValues)
         (assertValueOneOf "UseGateway" boolValues)
         (assertValueOneOf "UseRoutePrefix" boolValues)
+        (assertValueOneOf "UsePREF64" boolValues)
       ];
 
       sectionDHCPServer = checkUnitConfig "DHCPServer" [
@@ -1033,7 +1035,15 @@ let
         (assertValueOneOf "EmitDomains" boolValues)
       ];
 
-      sectionIPv6Prefix = checkUnitConfig "IPv6Prefix" [
+      sectionIPv6PREF64Prefix = checkUnitConfigWithLegacyKey "ipv6PREF64PrefixConfig" "IPv6PREF64Prefix" [
+        (assertOnlyFields [
+          "Prefix"
+          "LifetimeSec"
+        ])
+        (assertInt "LifetimeSec")
+      ];
+
+      sectionIPv6Prefix = checkUnitConfigWithLegacyKey "ipv6PrefixConfig" "IPv6Prefix" [
         (assertOnlyFields [
           "AddressAutoconfiguration"
           "OnLink"
@@ -1048,7 +1058,7 @@ let
         (assertValueOneOf "Assign" boolValues)
       ];
 
-      sectionIPv6RoutePrefix = checkUnitConfig "IPv6RoutePrefix" [
+      sectionIPv6RoutePrefix = checkUnitConfigWithLegacyKey "ipv6RoutePrefixConfig" "IPv6RoutePrefix" [
         (assertOnlyFields [
           "Route"
           "LifetimeSec"
@@ -1057,7 +1067,7 @@ let
         (assertInt "LifetimeSec")
       ];
 
-      sectionDHCPServerStaticLease = checkUnitConfig "DHCPServerStaticLease" [
+      sectionDHCPServerStaticLease = checkUnitConfigWithLegacyKey "dhcpServerStaticLeaseConfig" "DHCPServerStaticLease" [
         (assertOnlyFields [
           "MACAddress"
           "Address"
@@ -1104,7 +1114,7 @@ let
         (assertRange "Priority" 0 63)
       ];
 
-      sectionBridgeFDB = checkUnitConfig "BridgeFDB" [
+      sectionBridgeFDB = checkUnitConfigWithLegacyKey "bridgeFDBConfig" "BridgeFDB" [
         (assertOnlyFields [
           "MACAddress"
           "Destination"
@@ -1121,7 +1131,7 @@ let
         (assertValueOneOf "AssociatedWith" [ "use" "self" "master" "router" ])
       ];
 
-      sectionBridgeMDB = checkUnitConfig "BridgeMDB" [
+      sectionBridgeMDB = checkUnitConfigWithLegacyKey "bridgeMDBConfig" "BridgeMDB" [
         (assertOnlyFields [
           "MulticastGroupAddress"
           "VLANId"
@@ -1524,7 +1534,7 @@ let
         (assertRange "Weight" 1 1023)
       ];
 
-      sectionBridgeVLAN = checkUnitConfig "BridgeVLAN" [
+      sectionBridgeVLAN = checkUnitConfigWithLegacyKey "bridgeVLANConfig" "BridgeVLAN" [
         (assertOnlyFields [
           "VLAN"
           "EgressUntagged"
@@ -1627,34 +1637,21 @@ let
 
   };
 
-
-  l2tpSessionOptions = {
-    options = {
-      l2tpSessionConfig = mkOption {
-        default = {};
-        type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionL2TPSession;
-        description = ''
-          Each attribute in this set specifies an option in the
-          `[L2TPSession]` section of the unit.  See
-          {manpage}`systemd.netdev(5)` for details.
-        '';
-      };
+  mkSubsectionType = oldKey: checkF:
+    let
+      type = types.addCheck (types.attrsOf unitOption) checkF;
+    in type // {
+      merge = loc: defs:
+        let
+          final = type.merge loc defs;
+        in
+        if final?${oldKey}
+          then warn
+            "Using '${oldKey}' is deprecated! Move all attributes inside one level up and remove it."
+            final.${oldKey}
+        else
+          final;
     };
-  };
-
-  wireguardPeerOptions = {
-    options = {
-      wireguardPeerConfig = mkOption {
-        default = {};
-        type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionWireGuardPeer;
-        description = ''
-          Each attribute in this set specifies an option in the
-          `[WireGuardPeer]` section of the unit.  See
-          {manpage}`systemd.netdev(5)` for details.
-        '';
-      };
-    };
-  };
 
   netdevOptions = commonNetworkOptions // {
 
@@ -1805,12 +1802,12 @@ let
 
     l2tpSessions = mkOption {
       default = [];
-      example = [ { l2tpSessionConfig={
+      example = [ {
         SessionId = 25;
         PeerSessionId = 26;
         Name = "l2tp-sess";
-      };}];
-      type = with types; listOf (submodule l2tpSessionOptions);
+      }];
+      type = types.listOf (mkSubsectionType "l2tpSessionConfig" check.netdev.sectionL2TPSession);
       description = ''
         Each item in this array specifies an option in the
         `[L2TPSession]` section of the unit. See
@@ -1838,14 +1835,14 @@ let
 
     wireguardPeers = mkOption {
       default = [];
-      example = [ { wireguardPeerConfig={
+      example = [ {
         Endpoint = "192.168.1.1:51820";
         PublicKey = "27s0OvaBBdHoJYkH9osZpjpgSOVNw+RaKfboT/Sfq0g=";
         PresharedKeyFile = "/etc/wireguard/psk.key";
         AllowedIPs = [ "10.0.0.1/32" ];
         PersistentKeepalive = 15;
-      };}];
-      type = with types; listOf (submodule wireguardPeerOptions);
+      } ];
+      type = types.listOf (mkSubsectionType "wireguardPeerConfig" check.netdev.sectionWireGuardPeer);
       description = ''
         Each item in this array specifies an option in the
         `[WireGuardPeer]` section of the unit. See
@@ -1917,143 +1914,6 @@ let
 
   };
 
-  addressOptions = {
-    options = {
-      addressConfig = mkOption {
-        example = { Address = "192.168.0.100/24"; };
-        type = types.addCheck (types.attrsOf unitOption) check.network.sectionAddress;
-        description = ''
-          Each attribute in this set specifies an option in the
-          `[Address]` section of the unit.  See
-          {manpage}`systemd.network(5)` for details.
-        '';
-      };
-    };
-  };
-
-  routingPolicyRulesOptions = {
-    options = {
-      routingPolicyRuleConfig = mkOption {
-        default = { };
-        example = { Table = 10; IncomingInterface = "eth1"; Family = "both"; };
-        type = types.addCheck (types.attrsOf unitOption) check.network.sectionRoutingPolicyRule;
-        description = ''
-          Each attribute in this set specifies an option in the
-          `[RoutingPolicyRule]` section of the unit.  See
-          {manpage}`systemd.network(5)` for details.
-        '';
-      };
-    };
-  };
-
-  routeOptions = {
-    options = {
-      routeConfig = mkOption {
-        default = {};
-        example = { Gateway = "192.168.0.1"; };
-        type = types.addCheck (types.attrsOf unitOption) check.network.sectionRoute;
-        description = ''
-          Each attribute in this set specifies an option in the
-          `[Route]` section of the unit.  See
-          {manpage}`systemd.network(5)` for details.
-        '';
-      };
-    };
-  };
-
-  ipv6PrefixOptions = {
-    options = {
-      ipv6PrefixConfig = mkOption {
-        default = {};
-        example = { Prefix = "fd00::/64"; };
-        type = types.addCheck (types.attrsOf unitOption) check.network.sectionIPv6Prefix;
-        description = ''
-          Each attribute in this set specifies an option in the
-          `[IPv6Prefix]` section of the unit.  See
-          {manpage}`systemd.network(5)` for details.
-        '';
-      };
-    };
-  };
-
-  ipv6RoutePrefixOptions = {
-    options = {
-      ipv6RoutePrefixConfig = mkOption {
-        default = {};
-        example = { Route = "fd00::/64"; };
-        type = types.addCheck (types.attrsOf unitOption) check.network.sectionIPv6RoutePrefix;
-        description = ''
-          Each attribute in this set specifies an option in the
-          `[IPv6RoutePrefix]` section of the unit.  See
-          {manpage}`systemd.network(5)` for details.
-        '';
-      };
-    };
-  };
-
-  dhcpServerStaticLeaseOptions = {
-    options = {
-      dhcpServerStaticLeaseConfig = mkOption {
-        default = {};
-        example = { MACAddress = "65:43:4a:5b:d8:5f"; Address = "192.168.1.42"; };
-        type = types.addCheck (types.attrsOf unitOption) check.network.sectionDHCPServerStaticLease;
-        description = ''
-          Each attribute in this set specifies an option in the
-          `[DHCPServerStaticLease]` section of the unit.  See
-          {manpage}`systemd.network(5)` for details.
-
-          Make sure to configure the corresponding client interface to use
-          `ClientIdentifier=mac`.
-        '';
-      };
-    };
-  };
-
-  bridgeFDBOptions = {
-    options = {
-      bridgeFDBConfig = mkOption {
-        default = {};
-        example = { MACAddress = "65:43:4a:5b:d8:5f"; Destination = "192.168.1.42"; VNI = 20; };
-        type = types.addCheck (types.attrsOf unitOption) check.network.sectionBridgeFDB;
-        description = ''
-          Each attribute in this set specifies an option in the
-          `[BridgeFDB]` section of the unit.  See
-          {manpage}`systemd.network(5)` for details.
-        '';
-      };
-    };
-  };
-
-  bridgeMDBOptions = {
-    options = {
-      bridgeMDBConfig = mkOption {
-        default = {};
-        example = { MulticastGroupAddress = "ff02::1:2:3:4"; VLANId = 10; };
-        type = types.addCheck (types.attrsOf unitOption) check.network.sectionBridgeMDB;
-        description = ''
-          Each attribute in this set specifies an option in the
-          `[BridgeMDB]` section of the unit.  See
-          {manpage}`systemd.network(5)` for details.
-        '';
-      };
-    };
-  };
-
-  bridgeVLANOptions = {
-    options = {
-      bridgeVLANConfig = mkOption {
-        default = {};
-        example = { VLAN = 20; };
-        type = types.addCheck (types.attrsOf unitOption) check.network.sectionBridgeVLAN;
-        description = ''
-          Each attribute in this set specifies an option in the
-          `[BridgeVLAN]` section of the unit.  See
-          {manpage}`systemd.network(5)` for details.
-        '';
-      };
-    };
-  };
-
   networkOptions = commonNetworkOptions // {
 
     linkConfig = mkOption {
@@ -2163,10 +2023,20 @@ let
       '';
     };
 
+    ipv6PREF64Prefixes = mkOption {
+      default = [];
+      example = [ { Prefix = "64:ff9b::/96"; } ];
+      type = types.listOf (mkSubsectionType "ipv6PREF64PrefixConfig" check.network.sectionIPv6PREF64Prefix);
+      description = ''
+        A list of IPv6PREF64Prefix sections to be added to the unit. See
+        {manpage}`systemd.network(5)` for details.
+      '';
+    };
+
     dhcpServerStaticLeases = mkOption {
       default = [];
-      example = [ { dhcpServerStaticLeaseConfig = { MACAddress = "65:43:4a:5b:d8:5f"; Address = "192.168.1.42"; }; } ];
-      type = with types; listOf (submodule dhcpServerStaticLeaseOptions);
+      example = [ { MACAddress = "65:43:4a:5b:d8:5f"; Address = "192.168.1.42"; } ];
+      type = types.listOf (mkSubsectionType "dhcpServerStaticLeaseConfig" check.network.sectionDHCPServerStaticLease);
       description = ''
         A list of DHCPServerStaticLease sections to be added to the unit.  See
         {manpage}`systemd.network(5)` for details.
@@ -2175,8 +2045,8 @@ let
 
     ipv6Prefixes = mkOption {
       default = [];
-      example = [ { ipv6PrefixConfig = { AddressAutoconfiguration = true; OnLink = true; }; } ];
-      type = with types; listOf (submodule ipv6PrefixOptions);
+      example = [ { AddressAutoconfiguration = true; OnLink = true; } ];
+      type = types.listOf (mkSubsectionType "ipv6PrefixConfig" check.network.sectionIPv6Prefix);
       description = ''
         A list of ipv6Prefix sections to be added to the unit.  See
         {manpage}`systemd.network(5)` for details.
@@ -2185,8 +2055,8 @@ let
 
     ipv6RoutePrefixes = mkOption {
       default = [];
-      example = [ { ipv6RoutePrefixConfig = { Route = "fd00::/64"; LifetimeSec = 3600; }; } ];
-      type = with types; listOf (submodule ipv6RoutePrefixOptions);
+      example = [ { Route = "fd00::/64"; LifetimeSec = 3600; } ];
+      type = types.listOf (mkSubsectionType "ipv6RoutePrefixConfig" check.network.sectionIPv6RoutePrefix);
       description = ''
         A list of ipv6RoutePrefix sections to be added to the unit.  See
         {manpage}`systemd.network(5)` for details.
@@ -2206,8 +2076,8 @@ let
 
     bridgeFDBs = mkOption {
       default = [];
-      example = [ { bridgeFDBConfig = { MACAddress = "90:e2:ba:43:fc:71"; Destination = "192.168.100.4"; VNI = 3600; }; } ];
-      type = with types; listOf (submodule bridgeFDBOptions);
+      example = [ { MACAddress = "90:e2:ba:43:fc:71"; Destination = "192.168.100.4"; VNI = 3600; } ];
+      type = types.listOf (mkSubsectionType "bridgeFDBConfig" check.network.sectionBridgeFDB);
       description = ''
         A list of BridgeFDB sections to be added to the unit.  See
         {manpage}`systemd.network(5)` for details.
@@ -2216,8 +2086,8 @@ let
 
     bridgeMDBs = mkOption {
       default = [];
-      example = [ { bridgeMDBConfig = { MulticastGroupAddress = "ff02::1:2:3:4"; VLANId = 10; } ; } ];
-      type = with types; listOf (submodule bridgeMDBOptions);
+      example = [ { MulticastGroupAddress = "ff02::1:2:3:4"; VLANId = 10; } ];
+      type = types.listOf (mkSubsectionType "bridgeMDBConfig" check.network.sectionBridgeMDB);
       description = ''
         A list of BridgeMDB sections to be added to the unit.  See
         {manpage}`systemd.network(5)` for details.
@@ -2534,8 +2404,8 @@ let
 
     bridgeVLANs = mkOption {
       default = [];
-      example = [ { bridgeVLANConfig = { VLAN = "10-20"; }; } ];
-      type = with types; listOf (submodule bridgeVLANOptions);
+      example = [ { VLAN = "10-20"; } ];
+      type = types.listOf (mkSubsectionType "bridgeVLANConfig" check.network.sectionBridgeVLAN);
       description = ''
         A list of BridgeVLAN sections to be added to the unit.  See
         {manpage}`systemd.network(5)` for details.
@@ -2685,7 +2555,8 @@ let
 
     addresses = mkOption {
       default = [ ];
-      type = with types; listOf (submodule addressOptions);
+      example = [ { Address = "192.168.0.100/24"; } ];
+      type = types.listOf (mkSubsectionType "addressConfig" check.network.sectionAddress);
       description = ''
         A list of address sections to be added to the unit.  See
         {manpage}`systemd.network(5)` for details.
@@ -2694,7 +2565,8 @@ let
 
     routingPolicyRules = mkOption {
       default = [ ];
-      type = with types; listOf (submodule routingPolicyRulesOptions);
+      example = [ { Table = 10; IncomingInterface = "eth1"; Family = "both"; } ];
+      type = types.listOf (mkSubsectionType "routingPolicyRuleConfig" check.network.sectionRoutingPolicyRule);
       description = ''
         A list of routing policy rules sections to be added to the unit.  See
         {manpage}`systemd.network(5)` for details.
@@ -2703,7 +2575,8 @@ let
 
     routes = mkOption {
       default = [ ];
-      type = with types; listOf (submodule routeOptions);
+      example = [ { Gateway = "192.168.0.1"; } ];
+      type = types.listOf (mkSubsectionType "routeConfig" check.network.sectionRoute);
       description = ''
         A list of route sections to be added to the unit.  See
         {manpage}`systemd.network(5)` for details.
diff --git a/nixos/modules/system/boot/resolved.nix b/nixos/modules/system/boot/resolved.nix
index 64a15179438fe..b658a7a2dc05e 100644
--- a/nixos/modules/system/boot/resolved.nix
+++ b/nixos/modules/system/boot/resolved.nix
@@ -7,6 +7,20 @@ let
   dnsmasqResolve = config.services.dnsmasq.enable &&
                    config.services.dnsmasq.resolveLocalQueries;
 
+  resolvedConf = ''
+    [Resolve]
+    ${optionalString (config.networking.nameservers != [])
+      "DNS=${concatStringsSep " " config.networking.nameservers}"}
+    ${optionalString (cfg.fallbackDns != null)
+      "FallbackDNS=${concatStringsSep " " cfg.fallbackDns}"}
+    ${optionalString (cfg.domains != [])
+      "Domains=${concatStringsSep " " cfg.domains}"}
+    LLMNR=${cfg.llmnr}
+    DNSSEC=${cfg.dnssec}
+    DNSOverTLS=${cfg.dnsovertls}
+    ${config.services.resolved.extraConfig}
+  '';
+
 in
 {
 
@@ -126,60 +140,87 @@ in
       '';
     };
 
-  };
-
-  config = mkIf cfg.enable {
-
-    assertions = [
-      { assertion = !config.networking.useHostResolvConf;
-        message = "Using host resolv.conf is not supported with systemd-resolved";
-      }
-    ];
-
-    users.users.systemd-resolve.group = "systemd-resolve";
-
-    # add resolve to nss hosts database if enabled and nscd enabled
-    # system.nssModules is configured in nixos/modules/system/boot/systemd.nix
-    # added with order 501 to allow modules to go before with mkBefore
-    system.nssDatabases.hosts = (mkOrder 501 ["resolve [!UNAVAIL=return]"]);
-
-    systemd.additionalUpstreamSystemUnits = [
-      "systemd-resolved.service"
-    ];
-
-    systemd.services.systemd-resolved = {
-      wantedBy = [ "multi-user.target" ];
-      aliases = [ "dbus-org.freedesktop.resolve1.service" ];
-      restartTriggers = [ config.environment.etc."systemd/resolved.conf".source ];
-    };
-
-    environment.etc = {
-      "systemd/resolved.conf".text = ''
-        [Resolve]
-        ${optionalString (config.networking.nameservers != [])
-          "DNS=${concatStringsSep " " config.networking.nameservers}"}
-        ${optionalString (cfg.fallbackDns != null)
-          "FallbackDNS=${concatStringsSep " " cfg.fallbackDns}"}
-        ${optionalString (cfg.domains != [])
-          "Domains=${concatStringsSep " " cfg.domains}"}
-        LLMNR=${cfg.llmnr}
-        DNSSEC=${cfg.dnssec}
-        DNSOverTLS=${cfg.dnsovertls}
-        ${config.services.resolved.extraConfig}
+    boot.initrd.services.resolved.enable = mkOption {
+      default = config.boot.initrd.systemd.network.enable;
+      defaultText = "config.boot.initrd.systemd.network.enable";
+      description = ''
+        Whether to enable resolved for stage 1 networking.
+        Uses the toplevel 'services.resolved' options for 'resolved.conf'
       '';
-
-      # symlink the dynamic stub resolver of resolv.conf as recommended by upstream:
-      # https://www.freedesktop.org/software/systemd/man/systemd-resolved.html#/etc/resolv.conf
-      "resolv.conf".source = "/run/systemd/resolve/stub-resolv.conf";
-    } // optionalAttrs dnsmasqResolve {
-      "dnsmasq-resolv.conf".source = "/run/systemd/resolve/resolv.conf";
     };
 
-    # If networkmanager is enabled, ask it to interface with resolved.
-    networking.networkmanager.dns = "systemd-resolved";
-
-    networking.resolvconf.package = pkgs.systemd;
-
   };
 
+  config = mkMerge [
+    (mkIf cfg.enable {
+
+      assertions = [
+        { assertion = !config.networking.useHostResolvConf;
+          message = "Using host resolv.conf is not supported with systemd-resolved";
+        }
+      ];
+
+      users.users.systemd-resolve.group = "systemd-resolve";
+
+      # add resolve to nss hosts database if enabled and nscd enabled
+      # system.nssModules is configured in nixos/modules/system/boot/systemd.nix
+      # added with order 501 to allow modules to go before with mkBefore
+      system.nssDatabases.hosts = (mkOrder 501 ["resolve [!UNAVAIL=return]"]);
+
+      systemd.additionalUpstreamSystemUnits = [
+        "systemd-resolved.service"
+      ];
+
+      systemd.services.systemd-resolved = {
+        wantedBy = [ "sysinit.target" ];
+        aliases = [ "dbus-org.freedesktop.resolve1.service" ];
+        restartTriggers = [ config.environment.etc."systemd/resolved.conf".source ];
+      };
+
+      environment.etc = {
+        "systemd/resolved.conf".text = resolvedConf;
+
+        # symlink the dynamic stub resolver of resolv.conf as recommended by upstream:
+        # https://www.freedesktop.org/software/systemd/man/systemd-resolved.html#/etc/resolv.conf
+        "resolv.conf".source = "/run/systemd/resolve/stub-resolv.conf";
+      } // optionalAttrs dnsmasqResolve {
+        "dnsmasq-resolv.conf".source = "/run/systemd/resolve/resolv.conf";
+      };
+
+      # If networkmanager is enabled, ask it to interface with resolved.
+      networking.networkmanager.dns = "systemd-resolved";
+
+      networking.resolvconf.package = pkgs.systemd;
+
+    })
+
+    (mkIf config.boot.initrd.services.resolved.enable {
+
+      assertions = [
+        {
+          assertion = config.boot.initrd.systemd.enable;
+          message = "'boot.initrd.services.resolved.enable' can only be enabled with systemd stage 1.";
+        }
+      ];
+
+      boot.initrd.systemd = {
+        contents = {
+          "/etc/tmpfiles.d/resolv.conf".text =
+            "L /etc/resolv.conf - - - - /run/systemd/resolve/stub-resolv.conf";
+          "/etc/systemd/resolved.conf".text = resolvedConf;
+        };
+
+        additionalUpstreamUnits = ["systemd-resolved.service"];
+        users.systemd-resolve = {};
+        groups.systemd-resolve = {};
+        storePaths = ["${config.boot.initrd.systemd.package}/lib/systemd/systemd-resolved"];
+        services.systemd-resolved = {
+          wantedBy = ["sysinit.target"];
+          aliases = [ "dbus-org.freedesktop.resolve1.service" ];
+        };
+      };
+
+    })
+  ];
+
 }
diff --git a/nixos/modules/system/boot/stage-1-init.sh b/nixos/modules/system/boot/stage-1-init.sh
index 59cf1a47fb7f9..23e9df2189e78 100644
--- a/nixos/modules/system/boot/stage-1-init.sh
+++ b/nixos/modules/system/boot/stage-1-init.sh
@@ -576,6 +576,7 @@ while read -u 3 mountPoint; do
       mount -t "$fsType" /dev/root /tmp-iso
       mountFS tmpfs /iso size="$fsSize" tmpfs
 
+      echo "copying ISO contents to RAM..."
       cp -r /tmp-iso/* /mnt-root/iso/
 
       umount /tmp-iso
diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix
index c82924763d5e8..14a4ab596b52c 100644
--- a/nixos/modules/system/boot/systemd.nix
+++ b/nixos/modules/system/boot/systemd.nix
@@ -503,8 +503,8 @@ in
     environment.systemPackages = [ cfg.package ];
 
     environment.etc = let
-      # generate contents for /etc/systemd/system-${type} from attrset of links and packages
-      hooks = type: links: pkgs.runCommand "system-${type}" {
+      # generate contents for /etc/systemd/${dir} from attrset of links and packages
+      hooks = dir: links: pkgs.runCommand "${dir}" {
           preferLocalBuild = true;
           packages = cfg.packages;
       } ''
@@ -512,7 +512,7 @@ in
         mkdir -p $out
         for package in $packages
         do
-          for hook in $package/lib/systemd/system-${type}/*
+          for hook in $package/lib/systemd/${dir}/*
           do
             ln -s $hook $out/
           done
@@ -562,8 +562,9 @@ in
         ${cfg.sleep.extraConfig}
       '';
 
-      "systemd/system-generators" = { source = hooks "generators" cfg.generators; };
-      "systemd/system-shutdown" = { source = hooks "shutdown" cfg.shutdown; };
+      "systemd/user-generators" = { source = hooks "user-generators" cfg.user.generators; };
+      "systemd/system-generators" = { source = hooks "system-generators" cfg.generators; };
+      "systemd/system-shutdown" = { source = hooks "system-shutdown" cfg.shutdown; };
     });
 
     services.dbus.enable = true;
diff --git a/nixos/modules/system/boot/systemd/coredump.nix b/nixos/modules/system/boot/systemd/coredump.nix
index 1f29f6686d0d0..ccf5d449b94a3 100644
--- a/nixos/modules/system/boot/systemd/coredump.nix
+++ b/nixos/modules/system/boot/systemd/coredump.nix
@@ -53,7 +53,7 @@ in {
           pkgs.substitute {
             src = "${systemd}/example/sysctl.d/50-coredump.conf";
             substitutions = [
-              "--replace"
+              "--replace-fail"
               "${systemd}"
               "${pkgs.symlinkJoin { name = "systemd"; paths = [ systemd ]; }}"
             ];
diff --git a/nixos/modules/system/boot/systemd/sysusers.nix b/nixos/modules/system/boot/systemd/sysusers.nix
index de70009705973..476251e140456 100644
--- a/nixos/modules/system/boot/systemd/sysusers.nix
+++ b/nixos/modules/system/boot/systemd/sysusers.nix
@@ -12,7 +12,7 @@ let
     ${lib.concatLines (lib.mapAttrsToList
       (username: opts:
         let
-          uid = if opts.uid == null then "-" else toString opts.uid;
+          uid = if opts.uid == null then "/var/lib/nixos/uid/${username}" else toString opts.uid;
         in
           ''u ${username} ${uid}:${opts.group} "${opts.description}" ${opts.home} ${utils.toShellPath opts.shell}''
       )
@@ -21,7 +21,7 @@ let
 
     # Groups
     ${lib.concatLines (lib.mapAttrsToList
-      (groupname: opts: ''g ${groupname} ${if opts.gid == null then "-" else toString opts.gid}'') userCfg.groups)
+      (groupname: opts: ''g ${groupname} ${if opts.gid == null then "/var/lib/nixos/gid/${groupname}" else toString opts.gid}'') userCfg.groups)
     }
 
     # Group membership
@@ -106,6 +106,23 @@ in
             };
           })
           (lib.filterAttrs (_username: opts: opts.home != "/var/empty") userCfg.users);
+
+        # Create uid/gid marker files for those without an explicit id
+        tmpfiles.settings.nixos-uid = lib.mapAttrs'
+          (username: opts: lib.nameValuePair "/var/lib/nixos/uid/${username}" {
+            f = {
+              user = username;
+            };
+          })
+          (lib.filterAttrs (_username: opts: opts.uid == null) userCfg.users);
+
+        tmpfiles.settings.nixos-gid = lib.mapAttrs'
+          (groupname: opts: lib.nameValuePair "/var/lib/nixos/gid/${groupname}" {
+            f = {
+              group = groupname;
+            };
+          })
+          (lib.filterAttrs (_groupname: opts: opts.gid == null) userCfg.groups);
       })
 
       (lib.mkIf config.users.mutableUsers {
diff --git a/nixos/modules/system/boot/systemd/user.nix b/nixos/modules/system/boot/systemd/user.nix
index 2685cf7e283a2..53fca631678c1 100644
--- a/nixos/modules/system/boot/systemd/user.nix
+++ b/nixos/modules/system/boot/systemd/user.nix
@@ -144,6 +144,18 @@ in {
       };
     };
 
+    systemd.user.generators = mkOption {
+      type = types.attrsOf types.path;
+      default = {};
+      example = { systemd-gpt-auto-generator = "/dev/null"; };
+      description = ''
+        Definition of systemd generators; see {manpage}`systemd.generator(5)`.
+
+        For each `NAME = VALUE` pair of the attrSet, a link is generated from
+        `/etc/systemd/user-generators/NAME` to `VALUE`.
+      '';
+    };
+
     systemd.additionalUpstreamUserUnits = mkOption {
       default = [];
       type = types.listOf types.str;
diff --git a/nixos/modules/system/etc/build-composefs-dump.py b/nixos/modules/system/etc/build-composefs-dump.py
index bba454dd888d6..fe739a621ec4d 100644
--- a/nixos/modules/system/etc/build-composefs-dump.py
+++ b/nixos/modules/system/etc/build-composefs-dump.py
@@ -175,7 +175,7 @@ def main() -> None:
                 paths[glob_target] = composefs_path
                 add_leading_directories(glob_target, attrs, paths)
         else:  # Without globbing
-            if mode == "symlink":
+            if mode == "symlink" or mode == "direct-symlink":
                 composefs_path = ComposefsPath(
                     attrs,
                     # A high approximation of the size of a symlink
@@ -184,24 +184,23 @@ def main() -> None:
                     mode="0777",
                     payload=source,
                 )
+            elif os.path.isdir(source):
+                composefs_path = ComposefsPath(
+                    attrs,
+                    size=4096,
+                    filetype=FileType.directory,
+                    mode=mode,
+                    payload=source,
+                )
             else:
-                if os.path.isdir(source):
-                    composefs_path = ComposefsPath(
-                        attrs,
-                        size=4096,
-                        filetype=FileType.directory,
-                        mode=mode,
-                        payload=source,
-                    )
-                else:
-                    composefs_path = ComposefsPath(
-                        attrs,
-                        size=os.stat(source).st_size,
-                        filetype=FileType.file,
-                        mode=mode,
-                        # payload needs to be relative path in this case
-                        payload=target.lstrip("/"),
-                    )
+                composefs_path = ComposefsPath(
+                    attrs,
+                    size=os.stat(source).st_size,
+                    filetype=FileType.file,
+                    mode=mode,
+                    # payload needs to be relative path in this case
+                    payload=target.lstrip("/"),
+                )
             paths[target] = composefs_path
             add_leading_directories(target, attrs, paths)
 
diff --git a/nixos/modules/system/etc/etc.nix b/nixos/modules/system/etc/etc.nix
index 9fded1e1c9742..80ca69e495e9d 100644
--- a/nixos/modules/system/etc/etc.nix
+++ b/nixos/modules/system/etc/etc.nix
@@ -62,7 +62,7 @@ let
     ]) etc'}
   '';
 
-  etcHardlinks = filter (f: f.mode != "symlink") etc';
+  etcHardlinks = filter (f: f.mode != "symlink" && f.mode != "direct-symlink") etc';
 
   build-composefs-dump = pkgs.runCommand "build-composefs-dump.py"
     {
diff --git a/nixos/modules/tasks/network-interfaces-scripted.nix b/nixos/modules/tasks/network-interfaces-scripted.nix
index 2f2d282fbefb4..bbf2d337aac64 100644
--- a/nixos/modules/tasks/network-interfaces-scripted.nix
+++ b/nixos/modules/tasks/network-interfaces-scripted.nix
@@ -203,10 +203,10 @@ let
                   ''
                     echo "${cidr}" >> $state
                     echo -n "adding address ${cidr}... "
-                    if out=$(ip addr add "${cidr}" dev "${i.name}" 2>&1); then
+                    if out=$(ip addr replace "${cidr}" dev "${i.name}" 2>&1); then
                       echo "done"
-                    elif ! echo "$out" | grep "File exists" >/dev/null 2>&1; then
-                      echo "'ip addr add "${cidr}" dev "${i.name}"' failed: $out"
+                    else
+                      echo "'ip addr replace "${cidr}" dev "${i.name}"' failed: $out"
                       exit 1
                     fi
                   ''
diff --git a/nixos/modules/tasks/network-interfaces-systemd.nix b/nixos/modules/tasks/network-interfaces-systemd.nix
index 2009c9a7e6e28..c1241d11de879 100644
--- a/nixos/modules/tasks/network-interfaces-systemd.nix
+++ b/nixos/modules/tasks/network-interfaces-systemd.nix
@@ -32,13 +32,13 @@ let
     optionalAttrs (gateway != null && gateway.interface != null) {
       networks."40-${gateway.interface}" = {
         matchConfig.Name = gateway.interface;
-        routes = [{
-          routeConfig = {
+        routes = [
+          ({
             Gateway = gateway.address;
           } // optionalAttrs (gateway.metric != null) {
             Metric = gateway.metric;
-          };
-        }];
+          })
+        ];
       };
     }
   ));
@@ -95,65 +95,64 @@ let
       address = forEach (interfaceIps i)
         (ip: "${ip.address}/${toString ip.prefixLength}");
       routes = forEach (interfaceRoutes i)
-        (route: {
+        (route: mkMerge [
           # Most of these route options have not been tested.
           # Please fix or report any mistakes you may find.
-          routeConfig =
-            optionalAttrs (route.address != null && route.prefixLength != null) {
-              Destination = "${route.address}/${toString route.prefixLength}";
-            } //
-            optionalAttrs (route.options ? fastopen_no_cookie) {
-              FastOpenNoCookie = route.options.fastopen_no_cookie;
-            } //
-            optionalAttrs (route.via != null) {
-              Gateway = route.via;
-            } //
-            optionalAttrs (route.type != null) {
-              Type = route.type;
-            } //
-            optionalAttrs (route.options ? onlink) {
-              GatewayOnLink = true;
-            } //
-            optionalAttrs (route.options ? initrwnd) {
-              InitialAdvertisedReceiveWindow = route.options.initrwnd;
-            } //
-            optionalAttrs (route.options ? initcwnd) {
-              InitialCongestionWindow = route.options.initcwnd;
-            } //
-            optionalAttrs (route.options ? pref) {
-              IPv6Preference = route.options.pref;
-            } //
-            optionalAttrs (route.options ? mtu) {
-              MTUBytes = route.options.mtu;
-            } //
-            optionalAttrs (route.options ? metric) {
-              Metric = route.options.metric;
-            } //
-            optionalAttrs (route.options ? src) {
-              PreferredSource = route.options.src;
-            } //
-            optionalAttrs (route.options ? protocol) {
-              Protocol = route.options.protocol;
-            } //
-            optionalAttrs (route.options ? quickack) {
-              QuickAck = route.options.quickack;
-            } //
-            optionalAttrs (route.options ? scope) {
-              Scope = route.options.scope;
-            } //
-            optionalAttrs (route.options ? from) {
-              Source = route.options.from;
-            } //
-            optionalAttrs (route.options ? table) {
-              Table = route.options.table;
-            } //
-            optionalAttrs (route.options ? advmss) {
-              TCPAdvertisedMaximumSegmentSize = route.options.advmss;
-            } //
-            optionalAttrs (route.options ? ttl-propagate) {
-              TTLPropagate = route.options.ttl-propagate == "enabled";
-            };
-        });
+          (mkIf (route.address != null && route.prefixLength != null) {
+            Destination = "${route.address}/${toString route.prefixLength}";
+          })
+          (mkIf (route.options ? fastopen_no_cookie) {
+            FastOpenNoCookie = route.options.fastopen_no_cookie;
+          })
+          (mkIf (route.via != null) {
+            Gateway = route.via;
+          })
+          (mkIf (route.type != null) {
+            Type = route.type;
+          })
+          (mkIf (route.options ? onlink) {
+            GatewayOnLink = true;
+          })
+          (mkIf (route.options ? initrwnd) {
+            InitialAdvertisedReceiveWindow = route.options.initrwnd;
+          })
+          (mkIf (route.options ? initcwnd) {
+            InitialCongestionWindow = route.options.initcwnd;
+          })
+          (mkIf (route.options ? pref) {
+            IPv6Preference = route.options.pref;
+          })
+          (mkIf (route.options ? mtu) {
+            MTUBytes = route.options.mtu;
+          })
+          (mkIf (route.options ? metric) {
+            Metric = route.options.metric;
+          })
+          (mkIf (route.options ? src) {
+            PreferredSource = route.options.src;
+          })
+          (mkIf (route.options ? protocol) {
+            Protocol = route.options.protocol;
+          })
+          (mkIf (route.options ? quickack) {
+            QuickAck = route.options.quickack;
+          })
+          (mkIf (route.options ? scope) {
+            Scope = route.options.scope;
+          })
+          (mkIf (route.options ? from) {
+            Source = route.options.from;
+          })
+          (mkIf (route.options ? table) {
+            Table = route.options.table;
+          })
+          (mkIf (route.options ? advmss) {
+            TCPAdvertisedMaximumSegmentSize = route.options.advmss;
+          })
+          (mkIf (route.options ? ttl-propagate) {
+            TTLPropagate = route.options.ttl-propagate == "enabled";
+          })
+        ]);
       networkConfig.IPv6PrivacyExtensions = "kernel";
       linkConfig = optionalAttrs (i.macAddress != null) {
         MACAddress = i.macAddress;
diff --git a/nixos/modules/virtualisation/containerd.nix b/nixos/modules/virtualisation/containerd.nix
index ea89a994b172a..73fb9f3b55d2f 100644
--- a/nixos/modules/virtualisation/containerd.nix
+++ b/nixos/modules/virtualisation/containerd.nix
@@ -84,7 +84,6 @@ in
         # "limits" defined below are adopted from upstream: https://github.com/containerd/containerd/blob/master/containerd.service
         LimitNPROC = "infinity";
         LimitCORE = "infinity";
-        LimitNOFILE = "infinity";
         TasksMax = "infinity";
         OOMScoreAdjust = "-999";
 
diff --git a/nixos/modules/virtualisation/docker.nix b/nixos/modules/virtualisation/docker.nix
index bcc649dcbec0a..8a0894ed85c3d 100644
--- a/nixos/modules/virtualisation/docker.nix
+++ b/nixos/modules/virtualisation/docker.nix
@@ -244,8 +244,8 @@ in
       };
 
       assertions = [
-        { assertion = cfg.enableNvidia && pkgs.stdenv.isx86_64 -> config.hardware.opengl.driSupport32Bit or false;
-          message = "Option enableNvidia on x86_64 requires 32bit support libraries";
+        { assertion = cfg.enableNvidia && pkgs.stdenv.isx86_64 -> config.hardware.graphics.enable32Bit or false;
+          message = "Option enableNvidia on x86_64 requires 32-bit support libraries";
         }];
 
       virtualisation.docker.daemon.settings = {
diff --git a/nixos/modules/virtualisation/lxd-agent.nix b/nixos/modules/virtualisation/lxd-agent.nix
index 8d536e18a34e4..d319371478481 100644
--- a/nixos/modules/virtualisation/lxd-agent.nix
+++ b/nixos/modules/virtualisation/lxd-agent.nix
@@ -50,7 +50,7 @@ in {
   };
 
   options = {
-    virtualisation.lxd.agent.enable = lib.mkEnableOption "Enable LXD agent";
+    virtualisation.lxd.agent.enable = lib.mkEnableOption "LXD agent";
   };
 
   config = lib.mkIf cfg.enable {
diff --git a/nixos/modules/virtualisation/oci-containers.nix b/nixos/modules/virtualisation/oci-containers.nix
index 4308d410c69c7..f4fa934231798 100644
--- a/nixos/modules/virtualisation/oci-containers.nix
+++ b/nixos/modules/virtualisation/oci-containers.nix
@@ -221,6 +221,13 @@ let
           example = "hello-world";
         };
 
+        preRunExtraOptions = mkOption {
+          type = with types; listOf str;
+          default = [];
+          description = "Extra options for {command}`${defaultBackend}` that go before the `run` argument.";
+          example = [ "--runtime" "runsc" ];
+        };
+
         extraOptions = mkOption {
           type = with types; listOf str;
           default = [];
@@ -284,7 +291,9 @@ let
       else throw "Unhandled backend: ${cfg.backend}";
 
     script = concatStringsSep " \\\n  " ([
-      "exec ${cfg.backend} run"
+      "exec ${cfg.backend} "
+    ]  ++ map escapeShellArg container.preRunExtraOptions ++ [
+      "run"
       "--rm"
       "--name=${escapedName}"
       "--log-driver=${container.log-driver}"
diff --git a/nixos/modules/virtualisation/proxmox-image.nix b/nixos/modules/virtualisation/proxmox-image.nix
index 6349bcef99e6b..01ad86c08cd78 100644
--- a/nixos/modules/virtualisation/proxmox-image.nix
+++ b/nixos/modules/virtualisation/proxmox-image.nix
@@ -16,7 +16,7 @@ with lib;
       };
       scsihw = mkOption {
         type = types.str;
-        default = "virtio-scsi-pci";
+        default = "virtio-scsi-single";
         example = "lsi";
         description = ''
           SCSI controller type. Must be one of the supported values given in
@@ -158,6 +158,31 @@ with lib;
         any specific VMID.
       '';
     };
+    cloudInit = {
+      enable = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Whether the VM should accept cloud init configurations from PVE.
+        '';
+      };
+      defaultStorage = mkOption {
+        default = "local-lvm";
+        example = "tank";
+        type = types.str;
+        description = ''
+          Default storage name for cloud init drive.
+        '';
+      };
+      device = mkOption {
+        default = "ide2";
+        example = "scsi0";
+        type = types.str;
+        description = ''
+          Bus/device to which the cloud init drive is attached.
+        '';
+      };
+    };
   };
 
   config = let
@@ -216,37 +241,21 @@ with lib;
           seccompSupport = false;
           guestAgentSupport = false;
         }).overrideAttrs ( super: rec {
-
-          version = "7.2.1";
+          # Check https://github.com/proxmox/pve-qemu/tree/master for the version
+          # of qemu and patch to use
+          version = "8.1.5";
           src = pkgs.fetchurl {
-            url= "https://download.qemu.org/qemu-${version}.tar.xz";
-            sha256 = "sha256-jIVpms+dekOl/immTN1WNwsMLRrQdLr3CYqCTReq1zs=";
+            url = "https://download.qemu.org/qemu-${version}.tar.xz";
+            hash = "sha256-l2Ox7+xP1JeWtQgNCINRLXDLY4nq1lxmHMNoalIjKJY=";
           };
           patches = [
             # Proxmox' VMA tool is published as a particular patch upon QEMU
-            (pkgs.fetchpatch {
-              url =
-                let
-                  rev = "abb04bb6272c1202ca9face0827917552b9d06f6";
-                  path = "debian/patches/pve/0027-PVE-Backup-add-vma-backup-format-code.patch";
-                in "https://git.proxmox.com/?p=pve-qemu.git;a=blob_plain;hb=${rev};f=${path}";
-              hash = "sha256-3d0HHdvaExCry6zcULnziYnWIAnn24vECkI4sjj2BMg=";
-            })
-
-            # Proxmox' VMA tool uses O_DIRECT which fails on tmpfs
-            # Filed to upstream issue tracker: https://bugzilla.proxmox.com/show_bug.cgi?id=4710
-            (pkgs.writeText "inline.patch" ''
-                --- a/vma-writer.c   2023-05-01 15:11:13.361341177 +0200
-                +++ b/vma-writer.c   2023-05-01 15:10:51.785293129 +0200
-                @@ -306,7 +306,7 @@
-                             /* try to use O_NONBLOCK */
-                             fcntl(vmaw->fd, F_SETFL, fcntl(vmaw->fd, F_GETFL)|O_NONBLOCK);
-                         } else  {
-                -            oflags = O_NONBLOCK|O_DIRECT|O_WRONLY|O_EXCL;
-                +            oflags = O_NONBLOCK|O_WRONLY|O_EXCL;
-                             vmaw->fd = qemu_create(filename, oflags, 0644, errp);
-                         }
-            '')
+            "${pkgs.fetchFromGitHub {
+              owner = "proxmox";
+              repo = "pve-qemu";
+              rev = "71dd2d48f9122e60e4c0a8480122a27aab15dc70";
+              hash = "sha256-Q8AxNv4geDdlbVIWphRO5P3ESo0SGgvUpVPmPJzubJM=";
+            }}/debian/patches/pve/0027-PVE-Backup-add-vma-backup-format-code.patch"
           ];
 
           buildInputs = super.buildInputs ++ [ pkgs.libuuid ];
@@ -262,7 +271,7 @@ with lib;
         mv "vzdump-qemu-${cfg.filenameSuffix}.vma.zst" $out/
 
         mkdir -p $out/nix-support
-        echo "file vma $out/vzdump-qemu-${cfg.filenameSuffix}.vma.zst" >> $out/nix-support/hydra-build-products
+        echo "file vma $out/vzdump-qemu-${cfg.filenameSuffix}.vma.zst" > $out/nix-support/hydra-build-products
       '';
       inherit (cfg.qemuConf) additionalSpace diskSize bootSize;
       format = "raw";
@@ -298,6 +307,20 @@ with lib;
       fsType = "vfat";
     };
 
-    services.qemuGuest.enable = lib.mkDefault true;
+    networking = mkIf cfg.cloudInit.enable {
+      hostName = mkForce "";
+      useDHCP = false;
+    };
+
+    services = {
+      cloud-init = mkIf cfg.cloudInit.enable {
+        enable = true;
+        network.enable = true;
+      };
+      sshd.enable = mkDefault true;
+      qemuGuest.enable = true;
+    };
+
+    proxmox.qemuExtraConf.${cfg.cloudInit.device} = "${cfg.cloudInit.defaultStorage}:vm-9999-cloudinit,media=cdrom";
   };
 }
diff --git a/nixos/modules/virtualisation/proxmox-lxc.nix b/nixos/modules/virtualisation/proxmox-lxc.nix
index 9b9f99e5b8172..ff1c0972166cf 100644
--- a/nixos/modules/virtualisation/proxmox-lxc.nix
+++ b/nixos/modules/virtualisation/proxmox-lxc.nix
@@ -55,6 +55,8 @@ with lib;
         loader.initScript.enable = true;
       };
 
+      console.enable = true;
+
       networking = mkIf (!cfg.manageNetwork) {
         useDHCP = false;
         useHostResolvConf = false;
@@ -68,8 +70,13 @@ with lib;
         startWhenNeeded = mkDefault true;
       };
 
-      systemd.mounts = mkIf (!cfg.privileged)
-        [{ where = "/sys/kernel/debug"; enable = false; }];
+      systemd = {
+        mounts = mkIf (!cfg.privileged) [{
+          enable = false;
+          where = "/sys/kernel/debug";
+        }];
+        services."getty@".unitConfig.ConditionPathExists = [ "" "/dev/%I" ];
+      };
 
     };
 }
diff --git a/nixos/modules/virtualisation/virtualbox-guest.nix b/nixos/modules/virtualisation/virtualbox-guest.nix
index 649ff3abb9ae9..b4933cffa2c0c 100644
--- a/nixos/modules/virtualisation/virtualbox-guest.nix
+++ b/nixos/modules/virtualisation/virtualbox-guest.nix
@@ -31,7 +31,9 @@ let
   };
 in
 {
-  ###### interface
+  imports = [
+    (mkRenamedOptionModule [ "virtualisation" "virtualbox" "guest" "draganddrop" ] [ "virtualisation" "virtualbox" "guest" "dragAndDrop" ])
+  ];
 
   options.virtualisation.virtualbox.guest = {
     enable = mkOption {
@@ -52,7 +54,7 @@ in
       description = "Whether to enable seamless mode. When activated windows from the guest appear next to the windows of the host.";
     };
 
-    draganddrop = mkOption {
+    dragAndDrop = mkOption {
       default = true;
       type = types.bool;
       description = "Whether to enable drag and drop support.";
@@ -111,5 +113,10 @@ in
         systemd.user.services.virtualboxClientSeamless = mkVirtualBoxUserService "--seamless";
       }
     )
+    (
+      mkIf cfg.dragAndDrop {
+        systemd.user.services.virtualboxClientDragAndDrop = mkVirtualBoxUserService "--draganddrop";
+      }
+    )
   ]);
 }
diff --git a/nixos/modules/virtualisation/virtualbox-host.nix b/nixos/modules/virtualisation/virtualbox-host.nix
index 609799995c527..a34fe132ba7e1 100644
--- a/nixos/modules/virtualisation/virtualbox-host.nix
+++ b/nixos/modules/virtualisation/virtualbox-host.nix
@@ -134,7 +134,7 @@ in
     assertions = [
       {
         assertion = !cfg.addNetworkInterface;
-        message = "VirtualBox KVM only supports standard NAT networking for VMs. Please turn off virtualisation.virtualbox.host.addNetworkInferface.";
+        message = "VirtualBox KVM only supports standard NAT networking for VMs. Please turn off virtualisation.virtualbox.host.addNetworkInterface.";
       }
 
       {
diff --git a/nixos/release-combined.nix b/nixos/release-combined.nix
index 10834da35207e..00ab7efb03b4c 100644
--- a/nixos/release-combined.nix
+++ b/nixos/release-combined.nix
@@ -102,6 +102,7 @@ in rec {
         (onSystems ["x86_64-linux"] "nixos.tests.installer.swraid")
         (onSystems ["x86_64-linux"] "nixos.tests.installer.zfsroot")
         (onSystems ["x86_64-linux"] "nixos.tests.nixos-rebuild-specialisations")
+        (onFullSupported "nixos.tests.nix-misc.default")
         (onFullSupported "nixos.tests.ipv6")
         (onFullSupported "nixos.tests.keymap.azerty")
         (onFullSupported "nixos.tests.keymap.colemak")
@@ -112,7 +113,7 @@ in rec {
         (onFullSupported "nixos.tests.latestKernel.login")
         (onFullSupported "nixos.tests.lightdm")
         (onFullSupported "nixos.tests.login")
-        (onFullSupported "nixos.tests.misc.default")
+        (onFullSupported "nixos.tests.misc")
         (onFullSupported "nixos.tests.mutableUsers")
         (onFullSupported "nixos.tests.nat.firewall")
         (onFullSupported "nixos.tests.nat.standalone")
diff --git a/nixos/release-small.nix b/nixos/release-small.nix
index b87a58f5eee83..98e36b0669e79 100644
--- a/nixos/release-small.nix
+++ b/nixos/release-small.nix
@@ -124,7 +124,7 @@ in rec {
         "nixos.tests.firewall"
         "nixos.tests.ipv6"
         "nixos.tests.login"
-        "nixos.tests.misc.default"
+        "nixos.tests.misc"
         "nixos.tests.nat.firewall"
         "nixos.tests.nat.standalone"
         "nixos.tests.nfs4.simple"
diff --git a/nixos/tests/acme.nix b/nixos/tests/acme.nix
index 511d3c589faef..379496583d25d 100644
--- a/nixos/tests/acme.nix
+++ b/nixos/tests/acme.nix
@@ -392,8 +392,6 @@ in {
   testScript = { nodes, ... }:
     let
       caDomain = nodes.acme.test-support.acme.caDomain;
-      newServerSystem = nodes.webserver.config.system.build.toplevel;
-      switchToNewServer = "${newServerSystem}/bin/switch-to-configuration test";
     in
     # Note, wait_for_unit does not work for oneshot services that do not have RemainAfterExit=true,
     # this is because a oneshot goes from inactive => activating => inactive, and never
@@ -545,6 +543,12 @@ in {
           check_fullchain(webserver, "http.example.test")
           check_issuer(webserver, "http.example.test", "pebble")
 
+      # Perform account hash test
+      with subtest("Assert that account hash didn't unexpected change"):
+          hash = webserver.succeed("ls /var/lib/acme/.lego/accounts/")
+          print("Account hash: " + hash)
+          assert hash.strip() == "d590213ed52603e9128d"
+
       # Perform renewal test
       with subtest("Can renew certificates when they expire"):
           hash = webserver.succeed("sha256sum /var/lib/acme/http.example.test/cert.pem")
diff --git a/nixos/tests/activation/etc-overlay-immutable.nix b/nixos/tests/activation/etc-overlay-immutable.nix
index f347f9cf8efe2..f0abf70d350ff 100644
--- a/nixos/tests/activation/etc-overlay-immutable.nix
+++ b/nixos/tests/activation/etc-overlay-immutable.nix
@@ -13,6 +13,7 @@
     users.mutableUsers = false;
     boot.initrd.systemd.enable = true;
     boot.kernelPackages = pkgs.linuxPackages_latest;
+    time.timeZone = "Utc";
 
     specialisation.new-generation.configuration = {
       environment.etc."newgen".text = "newgen";
@@ -23,6 +24,9 @@
     with subtest("/etc is mounted as an overlay"):
       machine.succeed("findmnt --kernel --type overlay /etc")
 
+    with subtest("direct symlinks point to the target without indirection"):
+      assert machine.succeed("readlink -n /etc/localtime") == "/etc/zoneinfo/Utc"
+
     with subtest("switching to the same generation"):
       machine.succeed("/run/current-system/bin/switch-to-configuration test")
 
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index 8146a9b86026f..8d5b865891e4a 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -115,6 +115,7 @@ in {
   akkoma = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./akkoma.nix {};
   akkoma-confined = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./akkoma.nix { confined = true; };
   alice-lg = handleTest ./alice-lg.nix {};
+  alloy = handleTest ./alloy.nix {};
   allTerminfo = handleTest ./all-terminfo.nix {};
   alps = handleTest ./alps.nix {};
   amazon-init-shell = handleTest ./amazon-init-shell.nix {};
@@ -129,6 +130,7 @@ in {
   appliance-repart-image = runTest ./appliance-repart-image.nix;
   apparmor = handleTest ./apparmor.nix {};
   archi = handleTest ./archi.nix {};
+  aria2 = handleTest ./aria2.nix {};
   armagetronad = handleTest ./armagetronad.nix {};
   artalk = handleTest ./artalk.nix {};
   atd = handleTest ./atd.nix {};
@@ -326,6 +328,7 @@ in {
   firewall-nftables = handleTest ./firewall.nix { nftables = true; };
   fish = handleTest ./fish.nix {};
   flannel = handleTestOn ["x86_64-linux"] ./flannel.nix {};
+  flood = handleTest ./flood.nix {};
   floorp = handleTest ./firefox.nix { firefoxPackage = pkgs.floorp; };
   fluentd = handleTest ./fluentd.nix {};
   fluidd = handleTest ./fluidd.nix {};
@@ -379,6 +382,7 @@ in {
   grafana-agent = handleTest ./grafana-agent.nix {};
   graphite = handleTest ./graphite.nix {};
   graylog = handleTest ./graylog.nix {};
+  greetd-no-shadow = handleTest ./greetd-no-shadow.nix {};
   grocy = handleTest ./grocy.nix {};
   grow-partition = runTest ./grow-partition.nix;
   grub = handleTest ./grub.nix {};
@@ -410,6 +414,7 @@ in {
   pyload = handleTest ./pyload.nix {};
   oci-containers = handleTestOn ["aarch64-linux" "x86_64-linux"] ./oci-containers.nix {};
   odoo = handleTest ./odoo.nix {};
+  odoo16 = handleTest ./odoo.nix { package = pkgs.odoo16; };
   odoo15 = handleTest ./odoo.nix { package = pkgs.odoo15; };
   # 9pnet_virtio used to mount /nix partition doesn't support
   # hibernation. This test happens to work on x86_64-linux but
@@ -516,6 +521,7 @@ in {
   lxd-image-server = handleTest ./lxd-image-server.nix {};
   #logstash = handleTest ./logstash.nix {};
   lomiri = handleTest ./lomiri.nix {};
+  lomiri-filemanager-app = runTest ./lomiri-filemanager-app.nix;
   lomiri-system-settings = handleTest ./lomiri-system-settings.nix {};
   lorri = handleTest ./lorri/default.nix {};
   maddy = discoverTests (import ./maddy { inherit handleTest; });
@@ -616,6 +622,7 @@ in {
   # TODO: put in networking.nix after the test becomes more complete
   networkingProxy = handleTest ./networking-proxy.nix {};
   nextcloud = handleTest ./nextcloud {};
+  nextjs-ollama-llm-ui = runTest ./web-apps/nextjs-ollama-llm-ui.nix;
   nexus = handleTest ./nexus.nix {};
   # TODO: Test nfsv3 + Kerberos
   nfs3 = handleTest ./nfs { version = 3; };
@@ -642,6 +649,7 @@ in {
   nitter = handleTest ./nitter.nix {};
   nix-config = handleTest ./nix-config.nix {};
   nix-ld = handleTest ./nix-ld.nix {};
+  nix-misc = handleTest ./nix/misc.nix {};
   nix-serve = handleTest ./nix-serve.nix {};
   nix-serve-ssh = handleTest ./nix-serve-ssh.nix {};
   nixops = handleTest ./nixops/default.nix {};
@@ -690,6 +698,7 @@ in {
   outline = handleTest ./outline.nix {};
   image-contents = handleTest ./image-contents.nix {};
   openvscode-server = handleTest ./openvscode-server.nix {};
+  open-webui = runTest ./open-webui.nix;
   orangefs = handleTest ./orangefs.nix {};
   os-prober = handleTestOn ["x86_64-linux"] ./os-prober.nix {};
   osquery = handleTestOn ["x86_64-linux"] ./osquery.nix {};
@@ -716,6 +725,7 @@ in {
   pg_anonymizer = handleTest ./pg_anonymizer.nix {};
   pgadmin4 = handleTest ./pgadmin4.nix {};
   pgbouncer = handleTest ./pgbouncer.nix {};
+  pghero = runTest ./pghero.nix;
   pgjwt = handleTest ./pgjwt.nix {};
   pgmanage = handleTest ./pgmanage.nix {};
   pgvecto-rs = handleTest ./pgvecto-rs.nix {};
@@ -782,9 +792,10 @@ in {
   qgis = handleTest ./qgis.nix { qgisPackage = pkgs.qgis; };
   qgis-ltr = handleTest ./qgis.nix { qgisPackage = pkgs.qgis-ltr; };
   qownnotes = handleTest ./qownnotes.nix {};
-  qtile = handleTest ./qtile.nix {};
+  qtile = handleTestOn ["x86_64-linux" "aarch64-linux"] ./qtile.nix {};
   quake3 = handleTest ./quake3.nix {};
   quicktun = handleTest ./quicktun.nix {};
+  quickwit = handleTest ./quickwit.nix {};
   quorum = handleTest ./quorum.nix {};
   rabbitmq = handleTest ./rabbitmq.nix {};
   radarr = handleTest ./radarr.nix {};
@@ -795,10 +806,12 @@ in {
   redis = handleTest ./redis.nix {};
   redlib = handleTest ./redlib.nix {};
   redmine = handleTest ./redmine.nix {};
+  renovate = handleTest ./renovate.nix {};
   restartByActivationScript = handleTest ./restart-by-activation-script.nix {};
   restic-rest-server = handleTest ./restic-rest-server.nix {};
   restic = handleTest ./restic.nix {};
   retroarch = handleTest ./retroarch.nix {};
+  rke2 = handleTestOn ["aarch64-linux" "x86_64-linux"] ./rke2 {};
   rkvm = handleTest ./rkvm {};
   robustirc-bridge = handleTest ./robustirc-bridge.nix {};
   roundcube = handleTest ./roundcube.nix {};
@@ -822,7 +835,7 @@ in {
   scrutiny = handleTest ./scrutiny.nix {};
   sddm = handleTest ./sddm.nix {};
   seafile = handleTest ./seafile.nix {};
-  searx = handleTest ./searx.nix {};
+  searx = runTest ./searx.nix;
   seatd = handleTest ./seatd.nix {};
   service-runner = handleTest ./service-runner.nix {};
   sftpgo = runTest ./sftpgo.nix;
@@ -930,6 +943,7 @@ in {
   systemd-oomd = handleTest ./systemd-oomd.nix {};
   systemd-portabled = handleTest ./systemd-portabled.nix {};
   systemd-repart = handleTest ./systemd-repart.nix {};
+  systemd-resolved = handleTest ./systemd-resolved.nix {};
   systemd-shutdown = handleTest ./systemd-shutdown.nix {};
   systemd-sysupdate = runTest ./systemd-sysupdate.nix;
   systemd-sysusers-mutable = runTest ./systemd-sysusers-mutable.nix;
@@ -1007,7 +1021,7 @@ in {
   vault-agent = handleTest ./vault-agent.nix {};
   vault-dev = handleTest ./vault-dev.nix {};
   vault-postgresql = handleTest ./vault-postgresql.nix {};
-  vaultwarden = handleTest ./vaultwarden.nix {};
+  vaultwarden = discoverTests (import ./vaultwarden.nix);
   vector = handleTest ./vector {};
   vengi-tools = handleTest ./vengi-tools.nix {};
   victoriametrics = handleTest ./victoriametrics.nix {};
diff --git a/nixos/tests/alloy.nix b/nixos/tests/alloy.nix
new file mode 100644
index 0000000000000..d87492127d5bb
--- /dev/null
+++ b/nixos/tests/alloy.nix
@@ -0,0 +1,32 @@
+import ./make-test-python.nix ({ lib, pkgs, ... }:
+
+  let
+    nodes = {
+      machine = {
+        services.alloy = {
+          enable = true;
+        };
+        environment.etc."alloy/config.alloy".text = "";
+      };
+    };
+  in
+  {
+    name = "alloy";
+
+    meta = with lib.maintainers; {
+      maintainers = [ flokli hbjydev ];
+    };
+
+    inherit nodes;
+
+    testScript = ''
+      start_all()
+
+      machine.wait_for_unit("alloy.service")
+      machine.wait_for_open_port(12345)
+      machine.succeed(
+          "curl -sSfN http://127.0.0.1:12345/-/healthy"
+      )
+      machine.shutdown()
+    '';
+  })
diff --git a/nixos/tests/aria2.nix b/nixos/tests/aria2.nix
new file mode 100644
index 0000000000000..48fe2094b5dcf
--- /dev/null
+++ b/nixos/tests/aria2.nix
@@ -0,0 +1,43 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+let
+  rpcSecret = "supersecret";
+  rpc-listen-port = 6800;
+  curlBody = {
+    jsonrpc = 2.0;
+    id = 1;
+    method = "aria2.getVersion";
+    params = [ "token:${rpcSecret}" ];
+  };
+in
+rec {
+  name = "aria2";
+
+  nodes.machine = {
+    environment.etc."aria2Rpc".text = rpcSecret;
+    services.aria2 = {
+      enable = true;
+      rpcSecretFile = "/etc/aria2Rpc";
+      settings = {
+        inherit rpc-listen-port;
+        allow-overwrite = false;
+        check-integrity = true;
+        console-log-level = "warn";
+        listen-port = [{ from = 20000; to = 20010; } { from = 22222; to = 22222; }];
+        max-concurrent-downloads = 50;
+        seed-ratio = 1.2;
+        summary-interval = 0;
+      };
+    };
+  };
+
+  testScript = ''
+    machine.start()
+    machine.wait_for_unit("aria2.service")
+    curl_cmd = 'curl --fail-with-body -X POST -H "Content-Type: application/json" \
+                -d \'${builtins.toJSON curlBody}\' http://localhost:${toString rpc-listen-port}/jsonrpc'
+    print(machine.wait_until_succeeds(curl_cmd, timeout=10))
+    machine.shutdown()
+  '';
+
+  meta.maintainers = [ pkgs.lib.maintainers.timhae ];
+})
diff --git a/nixos/tests/armagetronad.nix b/nixos/tests/armagetronad.nix
index d59827354b771..ca93ce8fb6c5d 100644
--- a/nixos/tests/armagetronad.nix
+++ b/nixos/tests/armagetronad.nix
@@ -12,7 +12,7 @@ let
     { pkgs, ... }:
 
     { imports = [ ./common/user-account.nix ./common/x11.nix ];
-      hardware.opengl.driSupport = true;
+      hardware.graphics.enable = true;
       virtualisation.memorySize = 256;
       environment = {
         systemPackages = [ pkgs.armagetronad ];
diff --git a/nixos/tests/ayatana-indicators.nix b/nixos/tests/ayatana-indicators.nix
index 13a0982a142bb..ccb1e059a6973 100644
--- a/nixos/tests/ayatana-indicators.nix
+++ b/nixos/tests/ayatana-indicators.nix
@@ -28,12 +28,14 @@ in {
       enable = true;
       packages = with pkgs; [
         ayatana-indicator-datetime
+        ayatana-indicator-display
         ayatana-indicator-messages
         ayatana-indicator-power
         ayatana-indicator-session
+        ayatana-indicator-sound
       ] ++ (with pkgs.lomiri; [
         lomiri-indicator-network
-        telephony-service
+        # telephony-service # currently broken: https://github.com/NixOS/nixpkgs/pull/314043
       ]);
     };
 
@@ -41,6 +43,8 @@ in {
 
     services.accounts-daemon.enable = true; # messages
 
+    hardware.pulseaudio.enable = true; # sound
+
     # Lomiri-ish setup for Lomiri indicators
     # TODO move into a Lomiri module, once the package set is far enough for the DE to start
 
@@ -92,7 +96,7 @@ in {
 
     # Now check if all indicators were brought up successfully, and kill them for later
   '' + (runCommandOverAyatanaIndicators (service: let serviceExec = builtins.replaceStrings [ "." ] [ "-" ] service; in ''
-    machine.succeed("pgrep -u ${user} -f ${serviceExec}")
+    machine.wait_until_succeeds("pgrep -u ${user} -f ${serviceExec}")
     machine.succeed("pkill -f ${serviceExec}")
   '')) + ''
 
diff --git a/nixos/tests/cagebreak.nix b/nixos/tests/cagebreak.nix
index 1fef7cb57cfc5..4d7664c1505f3 100644
--- a/nixos/tests/cagebreak.nix
+++ b/nixos/tests/cagebreak.nix
@@ -14,9 +14,7 @@ in
   };
 
   nodes.machine = { config, ... }:
-  let
-    alice = config.users.users.alice;
-  in {
+  {
     # Automatically login on tty1 as a normal user:
     imports = [ ./common/user-account.nix ];
     services.getty.autologinUser = "alice";
@@ -31,7 +29,7 @@ in
       fi
     '';
 
-    hardware.opengl.enable = true;
+    hardware.graphics.enable = true;
     programs.xwayland.enable = true;
     security.polkit.enable = true;
     environment.systemPackages = [ pkgs.cagebreak pkgs.wayland-utils ];
diff --git a/nixos/tests/centrifugo.nix b/nixos/tests/centrifugo.nix
index 45c2904f5585f..8e940f74caa4b 100644
--- a/nixos/tests/centrifugo.nix
+++ b/nixos/tests/centrifugo.nix
@@ -24,12 +24,10 @@ in
             engine = "redis";
             # Connect to local Redis shard via Unix socket.
             redis_address =
-              let
-                otherNodes = lib.take index nodes ++ lib.drop (index + 1) nodes;
-              in
-              map (name: "${name}:${toString redisPort}") otherNodes ++ [
+              let toRedisAddresses = map (name: "${name}:${toString redisPort}"); in
+              toRedisAddresses (lib.take index nodes) ++ [
                 "unix://${config.services.redis.servers.centrifugo.unixSocket}"
-              ];
+              ] ++ toRedisAddresses (lib.drop (index + 1) nodes);
             usage_stats_disable = true;
             api_insecure = true;
           };
diff --git a/nixos/tests/clatd.nix b/nixos/tests/clatd.nix
index 00021d87ba5f4..d0d504851ce4e 100644
--- a/nixos/tests/clatd.nix
+++ b/nixos/tests/clatd.nix
@@ -6,8 +6,8 @@
 # Client | clat    Address: 192.0.0.1/32  (configured via clatd)
 #        |         Route:   default
 #        |
-#        | eth1    Address: 2001:db8::2/64
-#        |  |      Route:   default via 2001:db8::1
+#        | eth1    Address: Assigned via SLAAC within 2001:db8::/64
+#        |  |      Route:   default via IPv6LL address
 #        +--|---
 #           | VLAN 3
 #        +--|---
@@ -31,7 +31,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
 {
   name = "clatd";
   meta = with pkgs.lib.maintainers; {
-    maintainers = [ hax404 ];
+    maintainers = [ hax404 jmbaur ];
   };
 
   nodes = {
@@ -59,25 +59,26 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
             "100.64.0.2/24"
           ];
           routes = [
-            { routeConfig = { Destination = "192.0.2.0/24"; Gateway = "100.64.0.1"; }; }
+            { Destination = "192.0.2.0/24"; Gateway = "100.64.0.1"; }
           ];
         };
       };
     };
 
     # The router is configured with static IPv4 addresses towards the server
-    # and IPv6 addresses towards the client. For NAT64, the Well-Known prefix
-    # 64:ff9b::/96 is used. NAT64 is done with TAYGA which provides the
-    # tun-interface nat64 and does the translation over it. The IPv6 packets
-    # are sent to this interfaces and received as IPv4 packets and vice versa.
-    # As TAYGA only translates IPv6 addresses to dedicated IPv4 addresses, it
-    # needs a pool of IPv4 addresses which must be at least as big as the
-    # expected amount of clients. In this test, the packets from the pool are
-    # directly routed towards the client. In normal cases, there would be a
-    # second source NAT44 to map all clients behind one IPv4 address.
+    # and IPv6 addresses towards the client. DNS64 is exposed towards the
+    # client so clatd is able to auto-discover the PLAT prefix. For NAT64, the
+    # Well-Known prefix 64:ff9b::/96 is used. NAT64 is done with TAYGA which
+    # provides the tun-interface nat64 and does the translation over it. The
+    # IPv6 packets are sent to this interfaces and received as IPv4 packets and
+    # vice versa. As TAYGA only translates IPv6 addresses to dedicated IPv4
+    # addresses, it needs a pool of IPv4 addresses which must be at least as
+    # big as the expected amount of clients. In this test, the packets from the
+    # pool are directly routed towards the client. In normal cases, there would
+    # be a second source NAT44 to map all clients behind one IPv4 address.
     router = {
       boot.kernel.sysctl = {
-        "net.ipv4.ip_forward" = 1;
+        "net.ipv4.conf.all.forwarding" = 1;
         "net.ipv6.conf.all.forwarding" = 1;
       };
 
@@ -102,6 +103,36 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
         };
       };
 
+      systemd.network.networks."40-eth2" = {
+        networkConfig.IPv6SendRA = true;
+        ipv6Prefixes = [ { Prefix = "2001:db8::/64"; } ];
+        ipv6PREF64Prefixes = [ { Prefix = "64:ff9b::/96"; } ];
+        ipv6SendRAConfig = {
+          EmitDNS = true;
+          DNS = "_link_local";
+        };
+      };
+
+      services.resolved.extraConfig = ''
+        DNSStubListener=no
+      '';
+
+      networking.extraHosts = ''
+        192.0.0.171 ipv4only.arpa
+        192.0.0.170 ipv4only.arpa
+      '';
+
+      services.coredns = {
+        enable = true;
+        config = ''
+          .:53 {
+            bind ::
+            hosts /etc/hosts
+            dns64 64:ff9b::/96
+          }
+        '';
+      };
+
       services.tayga = {
         enable = true;
         ipv4 = {
@@ -127,10 +158,10 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
       };
     };
 
-    # The client is configured with static IPv6 addresses. It has also a static
-    # default route towards the router. To reach the IPv4-only server, the
-    # client starts the clat daemon which starts and configures the local
-    # IPv4 -> IPv6 translation via Tayga.
+    # The client uses SLAAC to assign IPv6 addresses. To reach the IPv4-only
+    # server, the client starts the clat daemon which starts and configures the
+    # local IPv4 -> IPv6 translation via Tayga after discovering the PLAT
+    # prefix via DNS64.
     client = {
       virtualisation.vlans = [
         3 # towards router
@@ -145,25 +176,36 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
         enable = true;
         networks."vlan1" = {
           matchConfig.Name = "eth1";
-          address = [
-            "2001:db8::2/64"
-          ];
-          routes = [
-            { routeConfig = { Destination = "::/0"; Gateway = "2001:db8::1"; }; }
-          ];
+
+          # NOTE: clatd does not actually use the PREF64 prefix discovered by
+          # systemd-networkd (nor does systemd-networkd do anything with it,
+          # yet), but we set this to confirm it works. See the test script
+          # below.
+          ipv6AcceptRAConfig.UsePREF64 = true;
         };
       };
 
       services.clatd = {
         enable = true;
-        settings.plat-prefix = "64:ff9b::/96";
+        # NOTE: Perl's Net::DNS resolver does not seem to work well querying
+        # for AAAA records to systemd-resolved's default IPv4 bind address
+        # (127.0.0.53), so we add an IPv6 listener address to systemd-resolved
+        # and tell clatd to use that instead.
+        settings.dns64-servers = "::1";
       };
 
+      # Allow clatd to find dns server. See comment above.
+      services.resolved.extraConfig = ''
+        DNSStubListenerExtra=::1
+      '';
+
       environment.systemPackages = [ pkgs.mtr ];
     };
   };
 
   testScript = ''
+    import json
+
     start_all()
 
     # wait for all machines to start up
@@ -178,6 +220,11 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
         'journalctl -u clatd -e | grep -q "Starting up TAYGA, using config file"'
       )
 
+    with subtest("networkd exports PREF64 prefix"):
+      assert json.loads(client.succeed("networkctl status eth1 --json=short"))[
+          "NDisc"
+      ]["PREF64"][0]["Prefix"] == [0x0, 0x64, 0xFF, 0x9B] + ([0] * 12)
+
     with subtest("Test ICMP"):
       client.wait_until_succeeds("ping -c 3 100.64.0.2 >&2")
 
diff --git a/nixos/tests/domination.nix b/nixos/tests/domination.nix
index 409a7f3029c42..9e4badd2e369d 100644
--- a/nixos/tests/domination.nix
+++ b/nixos/tests/domination.nix
@@ -10,6 +10,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
     ];
 
     services.xserver.enable = true;
+    sound.enable = true;
     environment.systemPackages = [ pkgs.domination ];
   };
 
@@ -18,6 +19,9 @@ import ./make-test-python.nix ({ pkgs, ... }: {
   testScript =
     ''
       machine.wait_for_x()
+      # Add a dummy sound card, or an error reporting popup will appear,
+      # covering the main window and preventing OCR
+      machine.execute("modprobe snd-dummy")
       machine.execute("domination >&2 &")
       machine.wait_for_window("Menu")
       machine.wait_for_text(r"(New Game|Start Server|Load Game|Help Manual|Join Game|About|Play Online)")
diff --git a/nixos/tests/firefly-iii.nix b/nixos/tests/firefly-iii.nix
index c93d799320a48..f8e4ca4bfe2b4 100644
--- a/nixos/tests/firefly-iii.nix
+++ b/nixos/tests/firefly-iii.nix
@@ -1,14 +1,19 @@
-import ./make-test-python.nix ({ lib, pkgs, ... }: {
+import ./make-test-python.nix ({ lib, ... }:
+
+let
+  db-pass = "Test2Test2";
+  app-key = "TestTestTestTestTestTestTestTest";
+in
+{
   name = "firefly-iii";
   meta.maintainers = [ lib.maintainers.savyajha ];
 
-  nodes.machine = { config, ... }: {
+  nodes.fireflySqlite = { config, ... }: {
     environment.etc = {
-      "firefly-iii-appkey".text = "TestTestTestTestTestTestTestTest";
+      "firefly-iii-appkey".text = app-key;
     };
     services.firefly-iii = {
       enable = true;
-      virtualHost = "http://localhost";
       enableNginx = true;
       settings = {
         APP_KEY_FILE = "/etc/firefly-iii-appkey";
@@ -18,9 +23,89 @@ import ./make-test-python.nix ({ lib, pkgs, ... }: {
     };
   };
 
+  nodes.fireflyPostgresql = { config, pkgs, ... }: {
+    environment.etc = {
+      "firefly-iii-appkey".text = app-key;
+      "postgres-pass".text = db-pass;
+    };
+    services.firefly-iii = {
+      enable = true;
+      enableNginx = true;
+      settings = {
+        APP_KEY_FILE = "/etc/firefly-iii-appkey";
+        LOG_CHANNEL = "stdout";
+        SITE_OWNER = "mail@example.com";
+        DB_CONNECTION = "pgsql";
+        DB_DATABASE = "firefly";
+        DB_USERNAME = "firefly";
+        DB_PASSWORD_FILE = "/etc/postgres-pass";
+        PGSQL_SCHEMA = "firefly";
+      };
+    };
+
+    services.postgresql = {
+      enable = true;
+      package = pkgs.postgresql_16;
+      authentication = ''
+        local all postgres peer
+        local firefly firefly password
+      '';
+      initialScript = pkgs.writeText "firefly-init.sql" ''
+        CREATE USER "firefly" WITH LOGIN PASSWORD '${db-pass}';
+        CREATE DATABASE "firefly" WITH OWNER "firefly";
+        \c firefly
+        CREATE SCHEMA AUTHORIZATION firefly;
+      '';
+    };
+  };
+
+  nodes.fireflyMysql = { config, pkgs, ... }: {
+    environment.etc = {
+      "firefly-iii-appkey".text = app-key;
+      "mysql-pass".text = db-pass;
+    };
+    services.firefly-iii = {
+      enable = true;
+      enableNginx = true;
+      settings = {
+        APP_KEY_FILE = "/etc/firefly-iii-appkey";
+        LOG_CHANNEL = "stdout";
+        SITE_OWNER = "mail@example.com";
+        DB_CONNECTION = "mysql";
+        DB_DATABASE = "firefly";
+        DB_USERNAME = "firefly";
+        DB_PASSWORD_FILE = "/etc/mysql-pass";
+        DB_SOCKET = "/run/mysqld/mysqld.sock";
+      };
+    };
+
+    services.mysql = {
+      enable = true;
+      package = pkgs.mariadb;
+      initialScript = pkgs.writeText "firefly-init.sql" ''
+        create database firefly DEFAULT CHARACTER SET utf8mb4;
+        create user 'firefly'@'localhost' identified by '${db-pass}';
+        grant all on firefly.* to 'firefly'@'localhost';
+      '';
+      settings.mysqld.character-set-server = "utf8mb4";
+    };
+  };
+
   testScript = ''
-    machine.wait_for_unit("phpfpm-firefly-iii.service")
-    machine.wait_for_unit("nginx.service")
-    machine.succeed("curl -fvvv -Ls http://localhost/ | grep 'Firefly III'")
+    fireflySqlite.wait_for_unit("phpfpm-firefly-iii.service")
+    fireflySqlite.wait_for_unit("nginx.service")
+    fireflySqlite.succeed("curl -fvvv -Ls http://localhost/ | grep 'Firefly III'")
+    fireflySqlite.succeed("curl -fvvv -Ls http://localhost/v1/js/app.js")
+    fireflySqlite.succeed("systemctl start firefly-iii-cron.service")
+    fireflyPostgresql.wait_for_unit("phpfpm-firefly-iii.service")
+    fireflyPostgresql.wait_for_unit("nginx.service")
+    fireflyPostgresql.wait_for_unit("postgresql.service")
+    fireflyPostgresql.succeed("curl -fvvv -Ls http://localhost/ | grep 'Firefly III'")
+    fireflyPostgresql.succeed("systemctl start firefly-iii-cron.service")
+    fireflyMysql.wait_for_unit("phpfpm-firefly-iii.service")
+    fireflyMysql.wait_for_unit("nginx.service")
+    fireflyMysql.wait_for_unit("mysql.service")
+    fireflyMysql.succeed("curl -fvvv -Ls http://localhost/ | grep 'Firefly III'")
+    fireflyMysql.succeed("systemctl start firefly-iii-cron.service")
   '';
 })
diff --git a/nixos/tests/flood.nix b/nixos/tests/flood.nix
new file mode 100644
index 0000000000000..075d37e62835f
--- /dev/null
+++ b/nixos/tests/flood.nix
@@ -0,0 +1,27 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+let
+  port = 3001;
+in
+{
+  name = "flood";
+  meta = {
+    maintainers = with pkgs.lib.maintainers; [ thiagokokada ];
+  };
+
+  nodes.machine = { pkgs, ... }: {
+    services.flood = {
+      inherit port;
+      enable = true;
+      openFirewall = true;
+      extraArgs = [ "--baseuri=/" ];
+    };
+  };
+
+  testScript = /* python */ ''
+    machine.start()
+    machine.wait_for_unit("flood.service")
+    machine.wait_for_open_port(${toString port})
+
+    machine.succeed("curl --fail http://localhost:${toString port}")
+  '';
+})
diff --git a/nixos/tests/forgejo.nix b/nixos/tests/forgejo.nix
index 827fae2790c6e..c5bf8e32524cb 100644
--- a/nixos/tests/forgejo.nix
+++ b/nixos/tests/forgejo.nix
@@ -41,6 +41,8 @@ let
     hash = "sha256-h2/UIp8IjPo3eE4Gzx52Fb7pcgG/Ww7u31w5fdKVMos=";
   };
 
+  metricSecret = "fakesecret";
+
   supportedDbTypes = [ "mysql" "postgres" "sqlite3" ];
   makeForgejoTest = type: nameValuePair type (makeTest {
     name = "forgejo-${type}";
@@ -59,6 +61,8 @@ let
             ENABLE_PUSH_CREATE_USER = true;
             DEFAULT_PUSH_CREATE_PRIVATE = false;
           };
+          settings.metrics.ENABLED = true;
+          secrets.metrics.TOKEN = pkgs.writeText "metrics_secret" metricSecret;
         };
         environment.systemPackages = [ config.services.forgejo.package pkgs.gnupg pkgs.jq pkgs.file pkgs.htmlq ];
         services.openssh.enable = true;
@@ -192,6 +196,10 @@ let
             timeout=10
         )
 
+        with subtest("Testing /metrics endpoint with token from cfg.secrets"):
+            server.fail("curl --fail http://localhost:3000/metrics")
+            server.succeed('curl --fail http://localhost:3000/metrics -H "Authorization: Bearer ${metricSecret}"')
+
         with subtest("Testing runner registration and action workflow"):
             server.succeed(
                 "su -l forgejo -c 'GITEA_WORK_DIR=/var/lib/forgejo gitea actions generate-runner-token' | sed 's/^/TOKEN=/' | tee /var/lib/forgejo/runner_token"
diff --git a/nixos/tests/gnome-extensions.nix b/nixos/tests/gnome-extensions.nix
index 51ccabd7e6a65..332cf44b0ed4f 100644
--- a/nixos/tests/gnome-extensions.nix
+++ b/nixos/tests/gnome-extensions.nix
@@ -84,7 +84,6 @@ import ./make-test-python.nix (
       "dash-to-dock"
       "dash-to-panel"
       "ddterm"
-      "emoji-selector"
       "gsconnect"
       "system-monitor-next"
       "desktop-icons-ng-ding"
@@ -138,11 +137,11 @@ import ./make-test-python.nix (
             # Enable and optionally disable
 
             machine.succeed(f"${run "gnome-extensions enable {extension}"}")
-            checkState("ENABLED", extension)
+            checkState("ACTIVE", extension)
 
             if disable:
                 machine.succeed(f"${run "gnome-extensions disable {extension}"}")
-                checkState("DISABLED", extension)
+                checkState("INACTIVE", extension)
     ''
     + lib.concatLines (map (e: ''checkExtension("${e}", False)'') alwaysOnExtensions)
     + lib.concatLines (map (e: ''checkExtension("${e}", True)'') testExtensions)
diff --git a/nixos/tests/grafana/provision/default.nix b/nixos/tests/grafana/provision/default.nix
index d33d16ce12099..f9dd8b2961ac7 100644
--- a/nixos/tests/grafana/provision/default.nix
+++ b/nixos/tests/grafana/provision/default.nix
@@ -1,7 +1,7 @@
 import ../../make-test-python.nix ({ lib, pkgs, ... }:
 
 let
-  inherit (lib) mkMerge nameValuePair maintainers;
+  inherit (lib) mkMerge maintainers;
 
   baseGrafanaConf = {
     services.grafana = {
@@ -33,35 +33,6 @@ let
   };
 
   extraNodeConfs = {
-    provisionLegacyNotifiers = {
-      services.grafana.provision = {
-        datasources.settings = {
-          apiVersion = 1;
-          datasources = [{
-            name = "Test Datasource";
-            type = "testdata";
-            access = "proxy";
-            uid = "test_datasource";
-          }];
-        };
-        dashboards.settings = {
-          apiVersion = 1;
-          providers = [{
-            name = "default";
-            options.path = "/var/lib/grafana/dashboards";
-          }];
-        };
-        notifiers = [{
-          uid = "test_notifiers";
-          name = "Test Notifiers";
-          type = "email";
-          settings = {
-            singleEmail = true;
-            addresses = "test@test.com";
-          };
-        }];
-      };
-    };
     provisionNix = {
       services.grafana.provision = {
         datasources.settings = {
@@ -242,15 +213,5 @@ in {
             machine.succeed(
                 "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/v1/provisioning/mute-timings | grep Test\ Mute\ Timing"
             )
-
-    with subtest("Successful notifiers provision"):
-        provisionLegacyNotifiers.wait_for_unit("grafana.service")
-        provisionLegacyNotifiers.wait_for_open_port(3000)
-        print(provisionLegacyNotifiers.succeed(
-            "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/alert-notifications/uid/test_notifiers"
-        ))
-        provisionLegacyNotifiers.succeed(
-            "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/alert-notifications/uid/test_notifiers | grep Test\ Notifiers"
-        )
   '';
 })
diff --git a/nixos/tests/greetd-no-shadow.nix b/nixos/tests/greetd-no-shadow.nix
new file mode 100644
index 0000000000000..382218ffa948f
--- /dev/null
+++ b/nixos/tests/greetd-no-shadow.nix
@@ -0,0 +1,49 @@
+import ./make-test-python.nix ({ pkgs, latestKernel ? false, ... }:
+{
+  name = "greetd-no-shadow";
+  meta = with pkgs.lib.maintainers; {
+    maintainers = [ ];
+  };
+
+  nodes.machine =
+    { pkgs, lib, ... }: {
+
+      users.users.alice = {
+        isNormalUser = true;
+        group = "alice";
+        password = "foobar";
+      };
+      users.groups.alice = {};
+
+      # This means login(1) breaks, so we must use greetd/agreety instead.
+      security.shadow.enable = false;
+
+      services.greetd = {
+        enable = true;
+        settings = {
+          default_session = {
+            command = "${pkgs.greetd.greetd}/bin/agreety --cmd bash";
+          };
+        };
+      };
+    };
+
+  testScript = ''
+      machine.start()
+
+      machine.wait_for_unit("multi-user.target")
+      machine.wait_until_succeeds("pgrep -f 'agretty.*tty1'")
+      machine.screenshot("postboot")
+
+      with subtest("Log in as alice on a virtual console"):
+          machine.wait_until_tty_matches("1", "login: ")
+          machine.send_chars("alice\n")
+          machine.wait_until_tty_matches("1", "login: alice")
+          machine.wait_until_succeeds("pgrep login")
+          machine.wait_until_tty_matches("1", "Password: ")
+          machine.send_chars("foobar\n")
+          machine.wait_until_succeeds("pgrep -u alice bash")
+          machine.send_chars("touch done\n")
+          machine.wait_for_file("/home/alice/done")
+  '';
+})
diff --git a/nixos/tests/kea.nix b/nixos/tests/kea.nix
index 98a8e93a07609..653e280ec8b7e 100644
--- a/nixos/tests/kea.nix
+++ b/nixos/tests/kea.nix
@@ -57,6 +57,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...}: {
           };
 
           subnet4 = [ {
+            id = 1;
             subnet = "10.0.0.0/29";
             pools = [ {
               pool = "10.0.0.3 - 10.0.0.3";
diff --git a/nixos/tests/kerberos/heimdal.nix b/nixos/tests/kerberos/heimdal.nix
index 393289f7a92ca..098080a84592e 100644
--- a/nixos/tests/kerberos/heimdal.nix
+++ b/nixos/tests/kerberos/heimdal.nix
@@ -4,7 +4,7 @@ import ../make-test-python.nix ({pkgs, ...}: {
   nodes.machine = { config, libs, pkgs, ...}:
   { services.kerberos_server =
     { enable = true;
-      realms = {
+      settings.realms = {
         "FOO.BAR".acl = [{principal = "admin"; access = ["add" "cpw"];}];
       };
     };
diff --git a/nixos/tests/kerberos/mit.nix b/nixos/tests/kerberos/mit.nix
index 1191d047abbf0..172261f95fe6b 100644
--- a/nixos/tests/kerberos/mit.nix
+++ b/nixos/tests/kerberos/mit.nix
@@ -4,7 +4,7 @@ import ../make-test-python.nix ({pkgs, ...}: {
   nodes.machine = { config, libs, pkgs, ...}:
   { services.kerberos_server =
     { enable = true;
-      realms = {
+      settings.realms = {
         "FOO.BAR".acl = [{principal = "admin"; access = ["add" "cpw"];}];
       };
     };
diff --git a/nixos/tests/kernel-generic.nix b/nixos/tests/kernel-generic.nix
index 11a3bf80c15e4..6a8633808702f 100644
--- a/nixos/tests/kernel-generic.nix
+++ b/nixos/tests/kernel-generic.nix
@@ -37,6 +37,7 @@ let
       linux_rt_5_10
       linux_rt_5_15
       linux_rt_6_1
+      linux_rt_6_6
       linux_libre
 
       linux_testing;
diff --git a/nixos/tests/kubernetes/base.nix b/nixos/tests/kubernetes/base.nix
index ba7b2d9b1d2de..13a2bc03831de 100644
--- a/nixos/tests/kubernetes/base.nix
+++ b/nixos/tests/kubernetes/base.nix
@@ -47,7 +47,7 @@ let
                   '') (attrValues nodes);
                 };
               };
-              programs.bash.enableCompletion = true;
+              programs.bash.completion.enable = true;
               environment.systemPackages = [ wrapKubectl ];
               services.flannel.iface = "eth1";
               services.kubernetes = {
diff --git a/nixos/tests/kubo/default.nix b/nixos/tests/kubo/default.nix
index d8c0c69dc1fbd..629922fc366db 100644
--- a/nixos/tests/kubo/default.nix
+++ b/nixos/tests/kubo/default.nix
@@ -1,7 +1,5 @@
 { recurseIntoAttrs, runTest }:
 recurseIntoAttrs {
   kubo = runTest ./kubo.nix;
-  # The FUSE functionality is completely broken since Kubo v0.24.0
-  # See https://github.com/ipfs/kubo/issues/10242
-  # kubo-fuse = runTest ./kubo-fuse.nix;
+  kubo-fuse = runTest ./kubo-fuse.nix;
 }
diff --git a/nixos/tests/kubo/kubo-fuse.nix b/nixos/tests/kubo/kubo-fuse.nix
index 71a5bf61649f6..c8c273fc0dfc7 100644
--- a/nixos/tests/kubo/kubo-fuse.nix
+++ b/nixos/tests/kubo/kubo-fuse.nix
@@ -23,7 +23,7 @@
 
     with subtest("FUSE mountpoint"):
         machine.fail("echo a | su bob -l -c 'ipfs add --quieter'")
-        # The FUSE mount functionality is broken as of v0.13.0 and v0.17.0.
+        # The FUSE mount functionality is broken as of v0.13.0. This is still the case with v0.29.0.
         # See https://github.com/ipfs/kubo/issues/9044.
         # Workaround: using CID Version 1 avoids that.
         ipfs_hash = machine.succeed(
diff --git a/nixos/tests/ladybird.nix b/nixos/tests/ladybird.nix
index 8ed0f47887c7d..85c23353a668a 100644
--- a/nixos/tests/ladybird.nix
+++ b/nixos/tests/ladybird.nix
@@ -10,9 +10,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
     ];
 
     services.xserver.enable = true;
-    environment.systemPackages = [
-      pkgs.ladybird
-    ];
+    programs.ladybird.enable = true;
   };
 
   enableOCR = true;
diff --git a/nixos/tests/lomiri-filemanager-app.nix b/nixos/tests/lomiri-filemanager-app.nix
new file mode 100644
index 0000000000000..de42c9d150894
--- /dev/null
+++ b/nixos/tests/lomiri-filemanager-app.nix
@@ -0,0 +1,48 @@
+{ pkgs, lib, ... }:
+{
+  name = "lomiri-filemanager-app-standalone";
+  meta.maintainers = lib.teams.lomiri.members;
+
+  nodes.machine =
+    { config, pkgs, ... }:
+    {
+      imports = [ ./common/x11.nix ];
+
+      services.xserver.enable = true;
+
+      environment = {
+        systemPackages = with pkgs.lomiri; [
+          suru-icon-theme
+          lomiri-filemanager-app
+        ];
+        variables = {
+          UITK_ICON_THEME = "suru";
+        };
+      };
+
+      i18n.supportedLocales = [ "all" ];
+
+      fonts.packages = with pkgs; [
+        # Intended font & helps with OCR
+        ubuntu_font_family
+      ];
+    };
+
+  enableOCR = true;
+
+  testScript = ''
+    machine.wait_for_x()
+
+    with subtest("lomiri filemanager launches"):
+        machine.execute("lomiri-filemanager-app >&2 &")
+        machine.wait_for_text(r"(filemanager.ubports|alice|items|directories|files|folder)")
+        machine.screenshot("lomiri-filemanager_open")
+
+    machine.succeed("pkill -f lomiri-filemanager-app")
+
+    with subtest("lomiri filemanager localisation works"):
+        machine.execute("env LANG=de_DE.UTF-8 lomiri-filemanager-app >&2 &")
+        machine.wait_for_text(r"(Elemente|Verzeichnisse|Dateien|Ordner)")
+        machine.screenshot("lomiri-filemanager_localised")
+  '';
+}
diff --git a/nixos/tests/lomiri.nix b/nixos/tests/lomiri.nix
index 3f20aae441351..e9134a202cd17 100644
--- a/nixos/tests/lomiri.nix
+++ b/nixos/tests/lomiri.nix
@@ -268,7 +268,7 @@ in {
         machine.screenshot("settings_content-hub_peers")
 
         # Select Morph as content source
-        mouse_click(300, 100)
+        mouse_click(370, 100)
 
         # Expect Morph to be brought into the foreground, with its Downloads page open
         machine.wait_for_text("No downloads")
@@ -290,7 +290,7 @@ in {
     # There's a test app we could use that also displays their contents, but it's abit inconsistent.
     with subtest("ayatana indicators work"):
         mouse_click(735, 0) # the cog in the top-right, for the session indicator
-        machine.wait_for_text(r"(Notifications|Battery|Time|Date|System)")
+        machine.wait_for_text(r"(Notifications|Rotation|Battery|Sound|Time|Date|System)")
         machine.screenshot("indicators_open")
 
         # Indicator order within the menus *should* be fixed based on per-indicator order setting
@@ -298,13 +298,25 @@ in {
         machine.send_key("left")
         machine.send_key("left")
         machine.send_key("left")
+        machine.send_key("left")
+        machine.send_key("left")
         # Notifications are usually empty, nothing to check there
 
-        with subtest("lomiri indicator network works"):
+        with subtest("ayatana indicator display works"):
             # We start on this, don't go right
+            machine.wait_for_text("Lock")
+            machine.screenshot("indicators_display")
+
+        with subtest("lomiri indicator network works"):
+            machine.send_key("right")
             machine.wait_for_text(r"(Flight|Wi-Fi)")
             machine.screenshot("indicators_network")
 
+        with subtest("ayatana indicator sound works"):
+            machine.send_key("right")
+            machine.wait_for_text(r"(Silent|Volume)")
+            machine.screenshot("indicators_sound")
+
         with subtest("ayatana indicator power works"):
             machine.send_key("right")
             machine.wait_for_text(r"(Charge|Battery settings)")
diff --git a/nixos/tests/lvm2/default.nix b/nixos/tests/lvm2/default.nix
index 84f24cbc38593..ba1bdb5de5454 100644
--- a/nixos/tests/lvm2/default.nix
+++ b/nixos/tests/lvm2/default.nix
@@ -10,7 +10,7 @@ let
   tests = let callTest = p: lib.flip (import p) { inherit system pkgs; }; in {
     thinpool = { test = callTest ./thinpool.nix; kernelFilter = lib.id; };
     # we would like to test all versions, but the kernel module currently does not compile against the other versions
-    vdo = { test = callTest ./vdo.nix; kernelFilter = lib.filter (v: v == "5.15"); };
+    vdo = { test = callTest ./vdo.nix; kernelFilter = lib.filter (v: v == "6.1"); };
 
 
     # systemd in stage 1
@@ -26,7 +26,7 @@ let
     };
     vdo-sd-stage-1 = {
       test = callTest ./systemd-stage-1.nix;
-      kernelFilter = lib.filter (v: v == "5.15");
+      kernelFilter = lib.filter (v: v == "6.1");
       flavour = "vdo";
     };
   };
diff --git a/nixos/tests/lvm2/systemd-stage-1.nix b/nixos/tests/lvm2/systemd-stage-1.nix
index 7f106e1b0dd64..fe57a615a9555 100644
--- a/nixos/tests/lvm2/systemd-stage-1.nix
+++ b/nixos/tests/lvm2/systemd-stage-1.nix
@@ -81,7 +81,17 @@ in import ../make-test-python.nix ({ pkgs, lib, ... }: {
       kernelPackages = lib.mkIf (kernelPackages != null) kernelPackages;
     };
 
-    specialisation.boot-lvm.configuration.virtualisation.rootDevice = "/dev/test_vg/test_lv";
+    specialisation.boot-lvm.configuration.virtualisation = {
+      useDefaultFilesystems = false;
+      fileSystems = {
+        "/" = {
+          device = "/dev/test_vg/test_lv";
+          fsType = "xfs";
+        };
+      };
+
+      rootDevice = "/dev/test_vg/test_lv";
+    };
   };
 
   testScript = ''
@@ -99,7 +109,7 @@ in import ../make-test-python.nix ({ pkgs, lib, ... }: {
 
     # Ensure we have successfully booted from LVM
     assert "(initrd)" in machine.succeed("systemd-analyze")  # booted with systemd in stage 1
-    assert "/dev/mapper/test_vg-test_lv on / type ext4" in machine.succeed("mount")
+    assert "/dev/mapper/test_vg-test_lv on / type xfs" in machine.succeed("mount")
     assert "hello" in machine.succeed("cat /test")
     ${extraCheck}
   '';
diff --git a/nixos/tests/mealie.nix b/nixos/tests/mealie.nix
index 88f749c712948..810d47ecd2ec4 100644
--- a/nixos/tests/mealie.nix
+++ b/nixos/tests/mealie.nix
@@ -3,7 +3,7 @@ import ./make-test-python.nix ({ pkgs, ...} :
 {
   name = "mealie";
   meta = with pkgs.lib.maintainers; {
-    maintainers = [ litchipi ];
+    maintainers = [ litchipi anoa ];
   };
 
   nodes = {
diff --git a/nixos/tests/misc.nix b/nixos/tests/misc.nix
index 83e0f46be3ecf..33b3ca2c11c2e 100644
--- a/nixos/tests/misc.nix
+++ b/nixos/tests/misc.nix
@@ -1,185 +1,139 @@
 # Miscellaneous small tests that don't warrant their own VM run.
-{ pkgs, ... }:
-
-let
-  inherit (pkgs) lib;
-  tests = {
-    default = testsForPackage { nixPackage = pkgs.nix; };
-    lix = testsForPackage { nixPackage = pkgs.lix; };
-  };
-
-  testsForPackage = args: lib.recurseIntoAttrs {
-    # If the attribute is not named 'test'
-    # You will break all the universe on the release-*.nix side of things.
-    # `discoverTests` relies on `test` existence to perform a `callTest`.
-    test = testMiscFeatures args;
-    passthru.override = args': testsForPackage (args // args');
-  };
-
-  testMiscFeatures = { nixPackage, ... }: pkgs.testers.nixosTest (
-  let
-    foo = pkgs.writeText "foo" "Hello World";
-  in {
-    name = "misc";
-    meta.maintainers = with lib.maintainers; [ raitobezarius ];
-
-    nodes.machine =
-      { lib, ... }:
-      { swapDevices = lib.mkOverride 0
-          [ { device = "/root/swapfile"; size = 128; } ];
-        environment.variables.EDITOR = lib.mkOverride 0 "emacs";
-        documentation.nixos.enable = lib.mkOverride 0 true;
-        systemd.tmpfiles.rules = [ "d /tmp 1777 root root 10d" ];
-        systemd.tmpfiles.settings."10-test"."/tmp/somefile".d = {};
-        virtualisation.fileSystems = { "/tmp2" =
-          { fsType = "tmpfs";
-            options = [ "mode=1777" "noauto" ];
-          };
-          # Tests https://discourse.nixos.org/t/how-to-make-a-derivations-executables-have-the-s-permission/8555
-          "/user-mount/point" = {
-            device = "/user-mount/source";
-            fsType = "none";
-            options = [ "bind" "rw" "user" "noauto" ];
-          };
-          "/user-mount/denied-point" = {
-            device = "/user-mount/denied-source";
-            fsType = "none";
-            options = [ "bind" "rw" "noauto" ];
-          };
+
+import ./make-test-python.nix ({ lib, pkgs, ...} : let
+  foo = pkgs.writeText "foo" "Hello World";
+in {
+  name = "misc";
+  meta.maintainers = with lib.maintainers; [ eelco ];
+
+  nodes.machine =
+    { lib, ... }:
+    { swapDevices = lib.mkOverride 0
+        [ { device = "/root/swapfile"; size = 128; } ];
+      environment.variables.EDITOR = lib.mkOverride 0 "emacs";
+      documentation.nixos.enable = lib.mkOverride 0 true;
+      systemd.tmpfiles.rules = [ "d /tmp 1777 root root 10d" ];
+      systemd.tmpfiles.settings."10-test"."/tmp/somefile".d = {};
+      virtualisation.fileSystems = { "/tmp2" =
+        { fsType = "tmpfs";
+          options = [ "mode=1777" "noauto" ];
+        };
+        # Tests https://discourse.nixos.org/t/how-to-make-a-derivations-executables-have-the-s-permission/8555
+        "/user-mount/point" = {
+          device = "/user-mount/source";
+          fsType = "none";
+          options = [ "bind" "rw" "user" "noauto" ];
+        };
+        "/user-mount/denied-point" = {
+          device = "/user-mount/denied-source";
+          fsType = "none";
+          options = [ "bind" "rw" "noauto" ];
         };
-        systemd.automounts = lib.singleton
-          { wantedBy = [ "multi-user.target" ];
-            where = "/tmp2";
-          };
-        users.users.sybil = { isNormalUser = true; group = "wheel"; };
-        users.users.alice = { isNormalUser = true; };
-        security.sudo = { enable = true; wheelNeedsPassword = false; };
-        boot.kernel.sysctl."vm.swappiness" = 1;
-        boot.kernelParams = [ "vsyscall=emulate" ];
-        system.extraDependencies = [ foo ];
-
-        nix.package = nixPackage;
       };
-
-    testScript =
-      ''
-        import json
-
-
-        def get_path_info(path):
-            result = machine.succeed(f"nix --option experimental-features nix-command path-info --json {path}")
-            parsed = json.loads(result)
-            return parsed
-
-
-        with subtest("nix-db"):
-            info = get_path_info("${foo}")
-            print(info)
-
-            if (
-                info[0]["narHash"]
-                != "sha256-BdMdnb/0eWy3EddjE83rdgzWWpQjfWPAj3zDIFMD3Ck="
-            ):
-                raise Exception("narHash not set")
-
-            if info[0]["narSize"] != 128:
-                raise Exception("narSize not set")
-
-        with subtest("nixos-version"):
-            machine.succeed("[ `nixos-version | wc -w` = 2 ]")
-
-        with subtest("nixos-rebuild"):
-            assert "NixOS module" in machine.succeed("nixos-rebuild --help")
-
-        with subtest("Sanity check for uid/gid assignment"):
-            assert "4" == machine.succeed("id -u messagebus").strip()
-            assert "4" == machine.succeed("id -g messagebus").strip()
-            assert "users:x:100:" == machine.succeed("getent group users").strip()
-
-        with subtest("Regression test for GMP aborts on QEMU."):
-            machine.succeed("expr 1 + 2")
-
-        with subtest("the swap file got created"):
-            machine.wait_for_unit("root-swapfile.swap")
-            machine.succeed("ls -l /root/swapfile | grep 134217728")
-
-        with subtest("whether kernel.poweroff_cmd is set"):
-            machine.succeed('[ -x "$(cat /proc/sys/kernel/poweroff_cmd)" ]')
-
-        with subtest("whether the io cgroupv2 controller is properly enabled"):
-            machine.succeed("grep -q '\\bio\\b' /sys/fs/cgroup/cgroup.controllers")
-
-        with subtest("whether we have a reboot record in wtmp"):
-            machine.shutdown
-            machine.wait_for_unit("multi-user.target")
-            machine.succeed("last | grep reboot >&2")
-
-        with subtest("whether we can override environment variables"):
-            machine.succeed('[ "$EDITOR" = emacs ]')
-
-        with subtest("whether hostname (and by extension nss_myhostname) works"):
-            assert "machine" == machine.succeed("hostname").strip()
-            assert "machine" == machine.succeed("hostname -s").strip()
-
-        with subtest("whether systemd-udevd automatically loads modules for our hardware"):
-            machine.succeed("systemctl start systemd-udev-settle.service")
-            machine.wait_for_unit("systemd-udev-settle.service")
-            assert "mousedev" in machine.succeed("lsmod")
-
-        with subtest("whether systemd-tmpfiles-clean works"):
-            machine.succeed(
-                "touch /tmp/foo", "systemctl start systemd-tmpfiles-clean", "[ -e /tmp/foo ]"
-            )
-            # move into the future
-            machine.succeed(
-                'date -s "@$(($(date +%s) + 1000000))"',
-                "systemctl start systemd-tmpfiles-clean",
-            )
-            machine.fail("[ -e /tmp/foo ]")
-
-        with subtest("whether systemd-tmpfiles settings works"):
-            machine.succeed("[ -e /tmp/somefile ]")
-
-        with subtest("whether automounting works"):
-            machine.fail("grep '/tmp2 tmpfs' /proc/mounts")
-            machine.succeed("touch /tmp2/x")
-            machine.succeed("grep '/tmp2 tmpfs' /proc/mounts")
-
-        with subtest(
-            "Whether mounting by a user is possible with the `user` option in fstab (#95444)"
-        ):
-            machine.succeed("mkdir -p /user-mount/source")
-            machine.succeed("touch /user-mount/source/file")
-            machine.succeed("chmod -R a+Xr /user-mount/source")
-            machine.succeed("mkdir /user-mount/point")
-            machine.succeed("chown alice:users /user-mount/point")
-            machine.succeed("su - alice -c 'mount /user-mount/point'")
-            machine.succeed("su - alice -c 'ls /user-mount/point/file'")
-        with subtest(
-            "Whether mounting by a user is denied without the `user` option in  fstab"
-        ):
-            machine.succeed("mkdir -p /user-mount/denied-source")
-            machine.succeed("touch /user-mount/denied-source/file")
-            machine.succeed("chmod -R a+Xr /user-mount/denied-source")
-            machine.succeed("mkdir /user-mount/denied-point")
-            machine.succeed("chown alice:users /user-mount/denied-point")
-            machine.fail("su - alice -c 'mount /user-mount/denied-point'")
-
-        with subtest("shell-vars"):
-            machine.succeed('[ -n "$NIX_PATH" ]')
-
-        with subtest("nix-db"):
-            machine.succeed("nix-store -qR /run/current-system | grep nixos-")
-
-        with subtest("Test sysctl"):
-            machine.wait_for_unit("systemd-sysctl.service")
-            assert "1" == machine.succeed("sysctl -ne vm.swappiness").strip()
-            machine.execute("sysctl vm.swappiness=60")
-            assert "60" == machine.succeed("sysctl -ne vm.swappiness").strip()
-
-        with subtest("Test boot parameters"):
-            assert "vsyscall=emulate" in machine.succeed("cat /proc/cmdline")
-      '';
-  });
-  in
-  tests
+      systemd.automounts = lib.singleton
+        { wantedBy = [ "multi-user.target" ];
+          where = "/tmp2";
+        };
+      users.users.sybil = { isNormalUser = true; group = "wheel"; };
+      users.users.alice = { isNormalUser = true; };
+      security.sudo = { enable = true; wheelNeedsPassword = false; };
+      boot.kernel.sysctl."vm.swappiness" = 1;
+      boot.kernelParams = [ "vsyscall=emulate" ];
+      system.extraDependencies = [ foo ];
+    };
+
+  testScript =
+    ''
+      with subtest("nixos-version"):
+          machine.succeed("[ `nixos-version | wc -w` = 2 ]")
+
+      with subtest("nixos-rebuild"):
+          assert "NixOS module" in machine.succeed("nixos-rebuild --help")
+
+      with subtest("Sanity check for uid/gid assignment"):
+          assert "4" == machine.succeed("id -u messagebus").strip()
+          assert "4" == machine.succeed("id -g messagebus").strip()
+          assert "users:x:100:" == machine.succeed("getent group users").strip()
+
+      with subtest("Regression test for GMP aborts on QEMU."):
+          machine.succeed("expr 1 + 2")
+
+      with subtest("the swap file got created"):
+          machine.wait_for_unit("root-swapfile.swap")
+          machine.succeed("ls -l /root/swapfile | grep 134217728")
+
+      with subtest("whether kernel.poweroff_cmd is set"):
+          machine.succeed('[ -x "$(cat /proc/sys/kernel/poweroff_cmd)" ]')
+
+      with subtest("whether the io cgroupv2 controller is properly enabled"):
+          machine.succeed("grep -q '\\bio\\b' /sys/fs/cgroup/cgroup.controllers")
+
+      with subtest("whether we have a reboot record in wtmp"):
+          machine.shutdown
+          machine.wait_for_unit("multi-user.target")
+          machine.succeed("last | grep reboot >&2")
+
+      with subtest("whether we can override environment variables"):
+          machine.succeed('[ "$EDITOR" = emacs ]')
+
+      with subtest("whether hostname (and by extension nss_myhostname) works"):
+          assert "machine" == machine.succeed("hostname").strip()
+          assert "machine" == machine.succeed("hostname -s").strip()
+
+      with subtest("whether systemd-udevd automatically loads modules for our hardware"):
+          machine.succeed("systemctl start systemd-udev-settle.service")
+          machine.wait_for_unit("systemd-udev-settle.service")
+          assert "mousedev" in machine.succeed("lsmod")
+
+      with subtest("whether systemd-tmpfiles-clean works"):
+          machine.succeed(
+              "touch /tmp/foo", "systemctl start systemd-tmpfiles-clean", "[ -e /tmp/foo ]"
+          )
+          # move into the future
+          machine.succeed(
+              'date -s "@$(($(date +%s) + 1000000))"',
+              "systemctl start systemd-tmpfiles-clean",
+          )
+          machine.fail("[ -e /tmp/foo ]")
+
+      with subtest("whether systemd-tmpfiles settings works"):
+          machine.succeed("[ -e /tmp/somefile ]")
+
+      with subtest("whether automounting works"):
+          machine.fail("grep '/tmp2 tmpfs' /proc/mounts")
+          machine.succeed("touch /tmp2/x")
+          machine.succeed("grep '/tmp2 tmpfs' /proc/mounts")
+
+      with subtest(
+          "Whether mounting by a user is possible with the `user` option in fstab (#95444)"
+      ):
+          machine.succeed("mkdir -p /user-mount/source")
+          machine.succeed("touch /user-mount/source/file")
+          machine.succeed("chmod -R a+Xr /user-mount/source")
+          machine.succeed("mkdir /user-mount/point")
+          machine.succeed("chown alice:users /user-mount/point")
+          machine.succeed("su - alice -c 'mount /user-mount/point'")
+          machine.succeed("su - alice -c 'ls /user-mount/point/file'")
+      with subtest(
+          "Whether mounting by a user is denied without the `user` option in  fstab"
+      ):
+          machine.succeed("mkdir -p /user-mount/denied-source")
+          machine.succeed("touch /user-mount/denied-source/file")
+          machine.succeed("chmod -R a+Xr /user-mount/denied-source")
+          machine.succeed("mkdir /user-mount/denied-point")
+          machine.succeed("chown alice:users /user-mount/denied-point")
+          machine.fail("su - alice -c 'mount /user-mount/denied-point'")
+
+      with subtest("shell-vars"):
+          machine.succeed('[ -n "$NIX_PATH" ]')
+
+      with subtest("Test sysctl"):
+          machine.wait_for_unit("systemd-sysctl.service")
+          assert "1" == machine.succeed("sysctl -ne vm.swappiness").strip()
+          machine.execute("sysctl vm.swappiness=60")
+          assert "60" == machine.succeed("sysctl -ne vm.swappiness").strip()
+
+      with subtest("Test boot parameters"):
+          assert "vsyscall=emulate" in machine.succeed("cat /proc/cmdline")
+    '';
+})
diff --git a/nixos/tests/monado.nix b/nixos/tests/monado.nix
index 8368950951e73..6f0d27ee42454 100644
--- a/nixos/tests/monado.nix
+++ b/nixos/tests/monado.nix
@@ -5,7 +5,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
     { pkgs, ... }:
 
     {
-      hardware.opengl.enable = true;
+      hardware.graphics.enable = true;
       users.users.alice = {
         isNormalUser = true;
         uid = 1000;
diff --git a/nixos/tests/mpv.nix b/nixos/tests/mpv.nix
index 32a81cbe2495e..c2e151c224760 100644
--- a/nixos/tests/mpv.nix
+++ b/nixos/tests/mpv.nix
@@ -12,7 +12,7 @@ in
     {
       environment.systemPackages = [
         pkgs.curl
-        (pkgs.wrapMpv pkgs.mpv-unwrapped {
+        (pkgs.mpv.override {
           scripts = [ pkgs.mpvScripts.simple-mpv-webui ];
         })
       ];
diff --git a/nixos/tests/musescore.nix b/nixos/tests/musescore.nix
index 0720631ed284b..559c91ed8e550 100644
--- a/nixos/tests/musescore.nix
+++ b/nixos/tests/musescore.nix
@@ -43,13 +43,10 @@ in
     )
 
     # Start MuseScore window
-    machine.execute("DISPLAY=:0.0 mscore >&2 &")
+    machine.execute("env XDG_RUNTIME_DIR=$PWD DISPLAY=:0.0 mscore >&2 &")
 
     # Wait until MuseScore has launched
-    machine.wait_for_window("MuseScore 4")
-
-    # Wait until the window has completely initialised
-    machine.wait_for_text("MuseScore 4")
+    machine.wait_for_window("MuseScore Studio")
 
     machine.screenshot("MuseScore0")
 
@@ -75,29 +72,22 @@ in
     machine.screenshot("MuseScore2")
 
     # Go to the export dialogue and create a PDF
-    machine.send_key("alt-f")
-    machine.sleep(1)
-    machine.send_key("e")
-
-    # Wait until the export dialogue appears.
-    machine.wait_for_text("Export")
+    machine.send_key("ctrl-p")
 
-    machine.screenshot("MuseScore3")
+    # Wait until the Print dialogue appears.
+    machine.wait_for_window("Print")
 
-    machine.send_key("shift-tab")
-    machine.sleep(1)
-    machine.send_key("ret")
+    machine.screenshot("MuseScore4")
+    machine.send_key("alt-p")
     machine.sleep(1)
-    machine.send_key("ret")
 
-    machine.screenshot("MuseScore4")
+    machine.screenshot("MuseScore5")
 
     # Wait until PDF is exported
-    machine.wait_for_file('"/root/Documents/MuseScore4/Scores/Untitled score.pdf"')
+    machine.wait_for_file('"/root/Untitled score.pdf"')
 
-    # Check that it contains the title of the score
-    machine.succeed('pdfgrep "Untitled score" "/root/Documents/MuseScore4/Scores/Untitled score.pdf"')
-
-    machine.screenshot("MuseScore5")
+    ## Check that it contains the title of the score
+    machine.succeed('pdfgrep "Untitled score" "/root/Untitled score.pdf"')
+    machine.copy_from_vm("/root/Untitled score.pdf")
   '';
 })
diff --git a/nixos/tests/mycelium/default.nix b/nixos/tests/mycelium/default.nix
index 9174c49d70869..956a822a21860 100644
--- a/nixos/tests/mycelium/default.nix
+++ b/nixos/tests/mycelium/default.nix
@@ -51,6 +51,9 @@ in
       peer1.wait_for_unit("mycelium.service")
       peer2.wait_for_unit("mycelium.service")
 
+      peer1.succeed("mycelium peers list | grep 192.168.1.12")
+      peer2.succeed("mycelium peers list | grep 192.168.1.11")
+
       peer1.succeed("ping -c5 ${peer2-ip}")
       peer2.succeed("ping -c5 ${peer1-ip}")
     '';
diff --git a/nixos/tests/nextcloud/basic.nix b/nixos/tests/nextcloud/basic.nix
index 428fe0aa10db9..2a32f2b4d1992 100644
--- a/nixos/tests/nextcloud/basic.nix
+++ b/nixos/tests/nextcloud/basic.nix
@@ -1,27 +1,27 @@
-args@{ pkgs, nextcloudVersion ? 22, ... }:
+{ name, pkgs, testBase, system,... }:
 
-(import ../make-test-python.nix ({ pkgs, ...}: let
-  adminpass = "notproduction";
-  adminuser = "root";
-in {
-  name = "nextcloud-basic";
+with import ../../lib/testing-python.nix { inherit system pkgs; };
+runTest ({ config, ... }: {
+  inherit name;
   meta = with pkgs.lib.maintainers; {
-    maintainers = [ globin eqyiel ];
+    maintainers = [ globin eqyiel ma27 ];
   };
 
-  nodes = rec {
+  imports = [ testBase ];
+
+  nodes = {
     # The only thing the client needs to do is download a file.
     client = { ... }: {
       services.davfs2.enable = true;
       systemd.tmpfiles.settings.nextcloud = {
         "/tmp/davfs2-secrets"."f+" = {
           mode = "0600";
-          argument = "http://nextcloud/remote.php/dav/files/${adminuser} ${adminuser} ${adminpass}";
+          argument = "http://nextcloud/remote.php/dav/files/${config.adminuser} ${config.adminuser} ${config.adminpass}";
         };
       };
       virtualisation.fileSystems = {
         "/mnt/dav" = {
-          device = "http://nextcloud/remote.php/dav/files/${adminuser}";
+          device = "http://nextcloud/remote.php/dav/files/${config.adminuser}";
           fsType = "davfs";
           options = let
             davfs2Conf = (pkgs.writeText "davfs2.conf" "secrets /tmp/davfs2-secrets");
@@ -30,11 +30,7 @@ in {
       };
     };
 
-    nextcloud = { config, pkgs, ... }: let
-      cfg = config;
-    in {
-      networking.firewall.allowedTCPPorts = [ 80 ];
-
+    nextcloud = { config, pkgs, ... }: {
       systemd.tmpfiles.rules = [
         "d /var/lib/nextcloud-data 0750 nextcloud nginx - -"
       ];
@@ -42,14 +38,7 @@ in {
       services.nextcloud = {
         enable = true;
         datadir = "/var/lib/nextcloud-data";
-        hostName = "nextcloud";
-        database.createLocally = true;
-        config = {
-          # Don't inherit adminuser since "root" is supposed to be the default
-          adminpassFile = "${pkgs.writeText "adminpass" adminpass}"; # Don't try this at home!
-          dbtableprefix = "nixos_";
-        };
-        package = pkgs.${"nextcloud" + (toString nextcloudVersion)};
+        config.dbtableprefix = "nixos_";
         autoUpdateApps = {
           enable = true;
           startAt = "20:00";
@@ -57,64 +46,31 @@ in {
         phpExtraExtensions = all: [ all.bz2 ];
       };
 
-      environment.systemPackages = [ cfg.services.nextcloud.occ ];
+      specialisation.withoutMagick.configuration = {
+        services.nextcloud.enableImagemagick = false;
+      };
     };
-
-    nextcloudWithoutMagick = args@{ config, pkgs, lib, ... }:
-      lib.mkMerge
-      [ (nextcloud args)
-        { services.nextcloud.enableImagemagick = false; } ];
   };
 
-  testScript = { nodes, ... }: let
-    withRcloneEnv = pkgs.writeScript "with-rclone-env" ''
-      #!${pkgs.runtimeShell}
-      export RCLONE_CONFIG_NEXTCLOUD_TYPE=webdav
-      export RCLONE_CONFIG_NEXTCLOUD_URL="http://nextcloud/remote.php/dav/files/${adminuser}"
-      export RCLONE_CONFIG_NEXTCLOUD_VENDOR="nextcloud"
-      export RCLONE_CONFIG_NEXTCLOUD_USER="${adminuser}"
-      export RCLONE_CONFIG_NEXTCLOUD_PASS="$(${pkgs.rclone}/bin/rclone obscure ${adminpass})"
-      "''${@}"
-    '';
-    copySharedFile = pkgs.writeScript "copy-shared-file" ''
-      #!${pkgs.runtimeShell}
-      echo 'hi' | ${withRcloneEnv} ${pkgs.rclone}/bin/rclone rcat nextcloud:test-shared-file
-    '';
-
-    diffSharedFile = pkgs.writeScript "diff-shared-file" ''
-      #!${pkgs.runtimeShell}
-      diff <(echo 'hi') <(${pkgs.rclone}/bin/rclone cat nextcloud:test-shared-file)
-    '';
-
+  test-helpers.extraTests = { nodes, ... }: let
     findInClosure = what: drv: pkgs.runCommand "find-in-closure" { exportReferencesGraph = [ "graph" drv ]; inherit what; } ''
       test -e graph
       grep "$what" graph >$out || true
     '';
-    nextcloudUsesImagick = findInClosure "imagick" nodes.nextcloud.system.build.vm;
-    nextcloudWithoutDoesntUseIt = findInClosure "imagick" nodes.nextcloudWithoutMagick.system.build.vm;
+    nexcloudWithImagick = findInClosure "imagick" nodes.nextcloud.system.build.vm;
+    nextcloudWithoutImagick = findInClosure "imagick" nodes.nextcloud.specialisation.withoutMagick.configuration.system.build.vm;
   in ''
-    assert open("${nextcloudUsesImagick}").read() != ""
-    assert open("${nextcloudWithoutDoesntUseIt}").read() == ""
+    with subtest("File is in proper nextcloud home"):
+        nextcloud.succeed("test -f ${nodes.nextcloud.services.nextcloud.datadir}/data/root/files/test-shared-file")
+
+    with subtest("Closure checks"):
+        assert open("${nexcloudWithImagick}").read() != ""
+        assert open("${nextcloudWithoutImagick}").read() == ""
+
+    with subtest("Davfs2"):
+        assert "hi" in client.succeed("cat /mnt/dav/test-shared-file")
 
-    nextcloud.start()
-    client.start()
-    nextcloud.wait_for_unit("multi-user.target")
-    # This is just to ensure the nextcloud-occ program is working
-    nextcloud.succeed("nextcloud-occ status")
-    nextcloud.succeed("curl -sSf http://nextcloud/login")
-    # Ensure that no OpenSSL 1.1 is used.
-    nextcloud.succeed(
-        "${nodes.nextcloud.services.phpfpm.pools.nextcloud.phpPackage}/bin/php -i | grep 'OpenSSL Library Version' | awk -F'=>' '{ print $2 }' | awk '{ print $2 }' | grep -v 1.1"
-    )
-    nextcloud.succeed(
-        "${withRcloneEnv} ${copySharedFile}"
-    )
-    client.wait_for_unit("multi-user.target")
-    nextcloud.succeed("test -f /var/lib/nextcloud-data/data/root/files/test-shared-file")
-    client.succeed(
-        "${withRcloneEnv} ${diffSharedFile}"
-    )
-    assert "hi" in client.succeed("cat /mnt/dav/test-shared-file")
-    nextcloud.succeed("grep -vE '^HBEGIN:oc_encryption_module' /var/lib/nextcloud-data/data/root/files/test-shared-file")
+    with subtest("Ensure SSE is disabled by default"):
+        nextcloud.succeed("grep -vE '^HBEGIN:oc_encryption_module' /var/lib/nextcloud-data/data/root/files/test-shared-file")
   '';
-})) args
+})
diff --git a/nixos/tests/nextcloud/default.nix b/nixos/tests/nextcloud/default.nix
index d024adffd9f06..33aa227d2b032 100644
--- a/nixos/tests/nextcloud/default.nix
+++ b/nixos/tests/nextcloud/default.nix
@@ -5,21 +5,108 @@
 
 with pkgs.lib;
 
-foldl
-  (matrix: ver: matrix // {
-    "basic${toString ver}" = import ./basic.nix { inherit system pkgs; nextcloudVersion = ver; };
-    "with-postgresql-and-redis${toString ver}" = import ./with-postgresql-and-redis.nix {
-      inherit system pkgs;
-      nextcloudVersion = ver;
-    };
-    "with-mysql-and-memcached${toString ver}" = import ./with-mysql-and-memcached.nix {
-      inherit system pkgs;
-      nextcloudVersion = ver;
-    };
-    "with-declarative-redis-and-secrets${toString ver}" = import ./with-declarative-redis-and-secrets.nix {
-      inherit system pkgs;
-      nextcloudVersion = ver;
+let
+  baseModule = { config, ... }: {
+    imports = [
+      {
+        options.test-helpers = {
+          rclone = mkOption { type = types.str; };
+          upload-sample = mkOption { type = types.str; };
+          check-sample = mkOption { type = types.str; };
+          init = mkOption { type = types.str; default = ""; };
+          extraTests = mkOption { type = types.either types.str (types.functionTo types.str); default = ""; };
+        };
+        options.adminuser = mkOption { type = types.str; };
+        options.adminpass = mkOption { type = types.str; };
+      }
+    ];
+
+    adminuser = "root";
+    adminpass = "hunter2";
+
+    test-helpers.rclone = "${pkgs.writeShellScript "rclone" ''
+      set -euo pipefail
+      export PATH="${pkgs.rclone}/bin:$PATH"
+      export RCLONE_CONFIG_NEXTCLOUD_TYPE=webdav
+      export RCLONE_CONFIG_NEXTCLOUD_URL="http://nextcloud/remote.php/dav/files/${config.adminuser}"
+      export RCLONE_CONFIG_NEXTCLOUD_VENDOR="nextcloud"
+      export RCLONE_CONFIG_NEXTCLOUD_USER="${config.adminuser}"
+      export RCLONE_CONFIG_NEXTCLOUD_PASS="$(rclone obscure ${config.adminpass})"
+      exec "$@"
+    ''}";
+    test-helpers.upload-sample = "${pkgs.writeShellScript "rclone-upload" ''
+      <<<'hi' rclone rcat nextcloud:test-shared-file
+    ''}";
+    test-helpers.check-sample = "${pkgs.writeShellScript "check-sample" ''
+      set -e
+      diff <(echo 'hi') <(rclone cat nextcloud:test-shared-file)
+    ''}";
+
+    nodes = {
+      client = { ... }: {};
+      nextcloud = {
+        networking.firewall.allowedTCPPorts = [ 80 ];
+        services.nextcloud = {
+          enable = true;
+          hostName = "nextcloud";
+          https = false;
+          database.createLocally = true;
+          config = {
+            adminpassFile = "${pkgs.writeText "adminpass" config.adminpass}"; # Don't try this at home!
+          };
+        };
+      };
     };
-  })
-{ }
-  [ 27 28 29 ]
+
+    testScript = args@{ nodes, ... }: let
+      inherit (config) test-helpers;
+    in mkBefore ''
+      nextcloud.start()
+      client.start()
+      nextcloud.wait_for_unit("multi-user.target")
+
+      ${test-helpers.init}
+
+      with subtest("Ensure nextcloud-occ is working"):
+          nextcloud.succeed("nextcloud-occ status")
+          nextcloud.succeed("curl -sSf http://nextcloud/login")
+
+      with subtest("Upload/Download test"):
+          nextcloud.succeed(
+              "${test-helpers.rclone} ${test-helpers.upload-sample}"
+          )
+          client.wait_for_unit("multi-user.target")
+          client.succeed(
+              "${test-helpers.rclone} ${test-helpers.check-sample}"
+          )
+
+      ${if builtins.isFunction test-helpers.extraTests then test-helpers.extraTests args else test-helpers.extraTests}
+    '';
+  };
+
+  genTests = version:
+    let
+      testBase.imports = [
+        baseModule
+        {
+          nodes.nextcloud = { pkgs, ... }: {
+            services.nextcloud.package = pkgs.${"nextcloud${toString version}"};
+          };
+        }
+      ];
+
+      callNextcloudTest = path:
+        let
+          name = "${removeSuffix ".nix" (baseNameOf path)}${toString version}";
+        in nameValuePair name (import path {
+          inherit system pkgs testBase;
+          name = "nextcloud-${name}";
+        });
+    in map callNextcloudTest [
+      ./basic.nix
+      ./with-mysql-and-memcached.nix
+      ./with-postgresql-and-redis.nix
+      ./with-objectstore.nix
+    ];
+in
+listToAttrs (concatMap genTests [ 27 28 29 ])
diff --git a/nixos/tests/nextcloud/with-mysql-and-memcached.nix b/nixos/tests/nextcloud/with-mysql-and-memcached.nix
index 035a7fdcb0c80..07a3e56fae4af 100644
--- a/nixos/tests/nextcloud/with-mysql-and-memcached.nix
+++ b/nixos/tests/nextcloud/with-mysql-and-memcached.nix
@@ -1,79 +1,37 @@
-args@{ pkgs, nextcloudVersion ? 22, ... }:
+{ pkgs, testBase, system, ... }:
 
-(import ../make-test-python.nix ({ pkgs, ...}: let
-  adminpass = "hunter2";
-  adminuser = "root";
-in {
+with import ../../lib/testing-python.nix { inherit system pkgs; };
+runTest ({ config, ... }: {
   name = "nextcloud-with-mysql-and-memcached";
   meta = with pkgs.lib.maintainers; {
     maintainers = [ eqyiel ];
   };
 
-  nodes = {
-    # The only thing the client needs to do is download a file.
-    client = { ... }: {};
+  imports = [ testBase ];
 
+  nodes = {
     nextcloud = { config, pkgs, ... }: {
-      networking.firewall.allowedTCPPorts = [ 80 ];
-
       services.nextcloud = {
-        enable = true;
-        hostName = "nextcloud";
-        https = true;
-        package = pkgs.${"nextcloud" + (toString nextcloudVersion)};
         caching = {
           apcu = true;
           redis = false;
           memcached = true;
         };
-        database.createLocally = true;
-        config = {
-          dbtype = "mysql";
-          # Don't inherit adminuser since "root" is supposed to be the default
-          adminpassFile = "${pkgs.writeText "adminpass" adminpass}"; # Don't try this at home!
-        };
+        config.dbtype = "mysql";
       };
 
       services.memcached.enable = true;
     };
   };
 
-  testScript = let
+  test-helpers.init = let
     configureMemcached = pkgs.writeScript "configure-memcached" ''
-      #!${pkgs.runtimeShell}
       nextcloud-occ config:system:set memcached_servers 0 0 --value 127.0.0.1 --type string
       nextcloud-occ config:system:set memcached_servers 0 1 --value 11211 --type integer
       nextcloud-occ config:system:set memcache.local --value '\OC\Memcache\APCu' --type string
       nextcloud-occ config:system:set memcache.distributed --value '\OC\Memcache\Memcached' --type string
     '';
-    withRcloneEnv = pkgs.writeScript "with-rclone-env" ''
-      #!${pkgs.runtimeShell}
-      export RCLONE_CONFIG_NEXTCLOUD_TYPE=webdav
-      export RCLONE_CONFIG_NEXTCLOUD_URL="http://nextcloud/remote.php/dav/files/${adminuser}"
-      export RCLONE_CONFIG_NEXTCLOUD_VENDOR="nextcloud"
-      export RCLONE_CONFIG_NEXTCLOUD_USER="${adminuser}"
-      export RCLONE_CONFIG_NEXTCLOUD_PASS="$(${pkgs.rclone}/bin/rclone obscure ${adminpass})"
-    '';
-    copySharedFile = pkgs.writeScript "copy-shared-file" ''
-      #!${pkgs.runtimeShell}
-      echo 'hi' | ${pkgs.rclone}/bin/rclone rcat nextcloud:test-shared-file
-    '';
-
-    diffSharedFile = pkgs.writeScript "diff-shared-file" ''
-      #!${pkgs.runtimeShell}
-      diff <(echo 'hi') <(${pkgs.rclone}/bin/rclone cat nextcloud:test-shared-file)
-    '';
   in ''
-    start_all()
-    nextcloud.wait_for_unit("multi-user.target")
     nextcloud.succeed("${configureMemcached}")
-    nextcloud.succeed("curl -sSf http://nextcloud/login")
-    nextcloud.succeed(
-        "${withRcloneEnv} ${copySharedFile}"
-    )
-    client.wait_for_unit("multi-user.target")
-    client.succeed(
-        "${withRcloneEnv} ${diffSharedFile}"
-    )
   '';
-})) args
+})
diff --git a/nixos/tests/nextcloud/with-objectstore.nix b/nixos/tests/nextcloud/with-objectstore.nix
new file mode 100644
index 0000000000000..fc26760b8babd
--- /dev/null
+++ b/nixos/tests/nextcloud/with-objectstore.nix
@@ -0,0 +1,96 @@
+{ name, pkgs, testBase, system, ... }:
+
+with import ../../lib/testing-python.nix { inherit system pkgs; };
+runTest ({ config, lib, ... }: let
+  accessKey = "BKIKJAA5BMMU2RHO6IBB";
+  secretKey = "V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12";
+
+  rootCredentialsFile = pkgs.writeText "minio-credentials-full" ''
+    MINIO_ROOT_USER=${accessKey}
+    MINIO_ROOT_PASSWORD=${secretKey}
+  '';
+in {
+  inherit name;
+  meta = with pkgs.lib.maintainers; {
+    maintainers = [ onny ma27 ];
+  };
+
+  imports = [ testBase ];
+
+  nodes = {
+    nextcloud = { config, pkgs, ... }: {
+      networking.firewall.allowedTCPPorts = [ 9000 ];
+      environment.systemPackages = [ pkgs.minio-client ];
+
+      services.nextcloud.config.objectstore.s3 = {
+        enable = true;
+        bucket = "nextcloud";
+        autocreate = true;
+        key = accessKey;
+        secretFile = "${pkgs.writeText "secretKey" secretKey}";
+        hostname = "nextcloud";
+        useSsl = false;
+        port = 9000;
+        usePathStyle = true;
+        region = "us-east-1";
+      };
+
+      services.minio = {
+        enable = true;
+        listenAddress = "0.0.0.0:9000";
+        consoleAddress = "0.0.0.0:9001";
+        inherit rootCredentialsFile;
+      };
+    };
+  };
+
+  test-helpers.init = ''
+    nextcloud.wait_for_open_port(9000)
+  '';
+
+  test-helpers.extraTests = { nodes, ... }: ''
+    with subtest("File is not on the filesystem"):
+        nextcloud.succeed("test ! -e ${nodes.nextcloud.services.nextcloud.home}/data/root/files/test-shared-file")
+
+    with subtest("Check if file is in S3"):
+        nextcloud.succeed(
+            "mc config host add minio http://localhost:9000 ${accessKey} ${secretKey} --api s3v4"
+        )
+        files = nextcloud.succeed('mc ls minio/nextcloud|sort').strip().split('\n')
+
+        # Cannot assert an exact number here, nc27 writes more stuff initially into S3.
+        # For now let's assume it's always the most recently added file.
+        assert len(files) > 0, f"""
+          Expected to have at least one object in minio/nextcloud. But `mc ls` gave output:
+
+          '{files}'
+        """
+
+        import re
+        ptrn = re.compile("^\[[A-Z0-9 :-]+\] +(?P<details>[A-Za-z0-9 :]+)$")
+        match = ptrn.match(files[-1].strip())
+        assert match, "Cannot match mc client output!"
+        size, type_, file = tuple(match.group('details').split(' '))
+
+        assert size == "3B", f"""
+          Expected size of uploaded file to be 3 bytes, got {size}
+        """
+
+        assert type_ == 'STANDARD', f"""
+          Expected type of bucket entry to be a file, i.e. 'STANDARD'. Got {type_}
+        """
+
+        assert file.startswith('urn:oid'), """
+          Expected filename to start with 'urn:oid', instead got '{file}.
+        """
+
+    with subtest("Test download from S3"):
+        client.succeed(
+            "env AWS_ACCESS_KEY_ID=${accessKey} AWS_SECRET_ACCESS_KEY=${secretKey} "
+            + f"${lib.getExe pkgs.awscli2} s3 cp s3://nextcloud/{file} test --endpoint-url http://nextcloud:9000 "
+            + "--region us-east-1"
+        )
+
+        client.succeed("test hi = $(cat test)")
+  '';
+})
diff --git a/nixos/tests/nextcloud/with-postgresql-and-redis.nix b/nixos/tests/nextcloud/with-postgresql-and-redis.nix
index 06afc589403dd..24c17f70932d3 100644
--- a/nixos/tests/nextcloud/with-postgresql-and-redis.nix
+++ b/nixos/tests/nextcloud/with-postgresql-and-redis.nix
@@ -1,45 +1,30 @@
-args@{ pkgs, nextcloudVersion ? 22, ... }:
+{ name, pkgs, testBase, system, ... }:
 
-(import ../make-test-python.nix ({ pkgs, ...}: let
-  adminpass = "hunter2";
-  adminuser = "custom-admin-username";
-in {
-  name = "nextcloud-with-postgresql-and-redis";
+with import ../../lib/testing-python.nix { inherit system pkgs; };
+runTest ({ config, ... }: {
+  inherit name;
   meta = with pkgs.lib.maintainers; {
-    maintainers = [ eqyiel ];
+    maintainers = [ eqyiel ma27 ];
   };
 
-  nodes = {
-    # The only thing the client needs to do is download a file.
-    client = { ... }: {};
+  imports = [ testBase ];
 
+  nodes = {
     nextcloud = { config, pkgs, lib, ... }: {
-      networking.firewall.allowedTCPPorts = [ 80 ];
-
       services.nextcloud = {
-        enable = true;
-        hostName = "nextcloud";
-        package = pkgs.${"nextcloud" + (toString nextcloudVersion)};
         caching = {
           apcu = false;
           redis = true;
           memcached = false;
         };
-        database.createLocally = true;
-        config = {
-          dbtype = "pgsql";
-          inherit adminuser;
-          adminpassFile = toString (pkgs.writeText "admin-pass-file" ''
-            ${adminpass}
-          '');
-        };
+        config.dbtype = "pgsql";
         notify_push = {
           enable = true;
           logLevel = "debug";
         };
         extraAppsEnable = true;
-        extraApps = {
-          inherit (pkgs."nextcloud${lib.versions.major config.services.nextcloud.package.version}Packages".apps) notify_push notes;
+        extraApps = with config.services.nextcloud.package.packages.apps; {
+          inherit notify_push notes;
         };
         settings.trusted_proxies = [ "::1" ];
       };
@@ -49,50 +34,27 @@ in {
     };
   };
 
-  testScript = let
+  test-helpers.init = let
     configureRedis = pkgs.writeScript "configure-redis" ''
-      #!${pkgs.runtimeShell}
       nextcloud-occ config:system:set redis 'host' --value 'localhost' --type string
       nextcloud-occ config:system:set redis 'port' --value 6379 --type integer
       nextcloud-occ config:system:set memcache.local --value '\OC\Memcache\Redis' --type string
       nextcloud-occ config:system:set memcache.locking --value '\OC\Memcache\Redis' --type string
     '';
-    withRcloneEnv = pkgs.writeScript "with-rclone-env" ''
-      #!${pkgs.runtimeShell}
-      export RCLONE_CONFIG_NEXTCLOUD_TYPE=webdav
-      export RCLONE_CONFIG_NEXTCLOUD_URL="http://nextcloud/remote.php/dav/files/${adminuser}"
-      export RCLONE_CONFIG_NEXTCLOUD_VENDOR="nextcloud"
-      export RCLONE_CONFIG_NEXTCLOUD_USER="${adminuser}"
-      export RCLONE_CONFIG_NEXTCLOUD_PASS="$(${pkgs.rclone}/bin/rclone obscure ${adminpass})"
-      "''${@}"
-    '';
-    copySharedFile = pkgs.writeScript "copy-shared-file" ''
-      #!${pkgs.runtimeShell}
-      echo 'hi' | ${pkgs.rclone}/bin/rclone rcat nextcloud:test-shared-file
-    '';
-
-    diffSharedFile = pkgs.writeScript "diff-shared-file" ''
-      #!${pkgs.runtimeShell}
-      diff <(echo 'hi') <(${pkgs.rclone}/bin/rclone cat nextcloud:test-shared-file)
-    '';
   in ''
-    start_all()
-    nextcloud.wait_for_unit("multi-user.target")
     nextcloud.succeed("${configureRedis}")
-    nextcloud.succeed("curl -sSf http://nextcloud/login")
-    nextcloud.succeed(
-        "${withRcloneEnv} ${copySharedFile}"
-    )
-    client.wait_for_unit("multi-user.target")
-    client.execute("${pkgs.lib.getExe pkgs.nextcloud-notify_push.passthru.test_client} http://nextcloud ${adminuser} ${adminpass} >&2 &")
-    client.succeed(
-        "${withRcloneEnv} ${diffSharedFile}"
-    )
-    nextcloud.wait_until_succeeds("journalctl -u nextcloud-notify_push | grep -q \"Sending ping to ${adminuser}\"")
+  '';
+
+  test-helpers.extraTests = ''
+    with subtest("notify-push"):
+        client.execute("${pkgs.lib.getExe pkgs.nextcloud-notify_push.passthru.test_client} http://nextcloud ${config.adminuser} ${config.adminpass} >&2 &")
+        nextcloud.wait_until_succeeds("journalctl -u nextcloud-notify_push | grep -q \"Sending ping to ${config.adminuser}\"")
 
-    # redis cache should not be empty
-    nextcloud.fail('test "[]" = "$(redis-cli --json KEYS "*")"')
+    with subtest("Redis is used for caching"):
+        # redis cache should not be empty
+        nextcloud.fail('test "[]" = "$(redis-cli --json KEYS "*")"')
 
-    nextcloud.fail("curl -f http://nextcloud/nix-apps/notes/lib/AppInfo/Application.php")
+    with subtest("No code is returned when requesting PHP files (regression test)"):
+        nextcloud.fail("curl -f http://nextcloud/nix-apps/notes/lib/AppInfo/Application.php")
   '';
-})) args
+})
diff --git a/nixos/tests/nix/misc.nix b/nixos/tests/nix/misc.nix
new file mode 100644
index 0000000000000..6a22ffe0d901f
--- /dev/null
+++ b/nixos/tests/nix/misc.nix
@@ -0,0 +1,64 @@
+# Miscellaneous small tests that don't warrant their own VM run.
+{ pkgs, ... }:
+
+let
+  inherit (pkgs) lib;
+  tests = {
+    default = testsForPackage { nixPackage = pkgs.nix; };
+    lix = testsForPackage { nixPackage = pkgs.lix; };
+  };
+
+  testsForPackage = args: lib.recurseIntoAttrs {
+    # If the attribute is not named 'test'
+    # You will break all the universe on the release-*.nix side of things.
+    # `discoverTests` relies on `test` existence to perform a `callTest`.
+    test = testMiscFeatures args;
+    passthru.override = args': testsForPackage (args // args');
+  };
+
+  testMiscFeatures = { nixPackage, ... }: pkgs.testers.nixosTest (
+  let
+    foo = pkgs.writeText "foo" "Hello World";
+  in {
+    name = "${nixPackage.pname}-misc";
+    meta.maintainers = with lib.maintainers; [ raitobezarius artturin ];
+
+    nodes.machine =
+      { lib, ... }:
+      {
+        system.extraDependencies = [ foo ];
+
+        nix.package = nixPackage;
+      };
+
+    testScript =
+      ''
+        import json
+
+        def get_path_info(path):
+            result = machine.succeed(f"nix --option experimental-features nix-command path-info --json {path}")
+            parsed = json.loads(result)
+            return parsed
+
+        with subtest("nix-db"):
+            out = "${foo}"
+            info = get_path_info(out)
+            print(info)
+
+            pathinfo = info[0] if isinstance(info, list) else info[out]
+
+            if (
+                pathinfo["narHash"]
+                != "sha256-BdMdnb/0eWy3EddjE83rdgzWWpQjfWPAj3zDIFMD3Ck="
+            ):
+                raise Exception("narHash not set")
+
+            if pathinfo["narSize"] != 128:
+                raise Exception("narSize not set")
+
+        with subtest("nix-db"):
+            machine.succeed("nix-store -qR /run/current-system | grep nixos-")
+      '';
+  });
+  in
+  tests
diff --git a/nixos/tests/odoo.nix b/nixos/tests/odoo.nix
index 00ae4a2137d10..45ec7b7d7a6b7 100644
--- a/nixos/tests/odoo.nix
+++ b/nixos/tests/odoo.nix
@@ -14,6 +14,18 @@ import ./make-test-python.nix ({ pkgs, lib, package ? pkgs.odoo, ...} : {
         package = package;
         domain = "localhost";
       };
+
+      # odoo does not automatically initialize its database,
+      # even if passing what _should_ be the equivalent of these options:
+      #  settings = {
+      #    options = {
+      #      database = "odoo";
+      #      init = "base";
+      #    };
+      #  };
+      systemd.services.odoo.preStart = ''
+        HOME=$STATE_DIRECTORY ${package}/bin/odoo -d odoo -i base --stop-after-init --without-demo all
+      '';
     };
   };
 
diff --git a/nixos/tests/ollama.nix b/nixos/tests/ollama.nix
index 4b21f445cdbd3..30e475553eb1a 100644
--- a/nixos/tests/ollama.nix
+++ b/nixos/tests/ollama.nix
@@ -1,10 +1,10 @@
 import ./make-test-python.nix ({ pkgs, lib, ... }:
 let
-  mainPort = "11434";
-  altPort = "11435";
+  mainPort = 11434;
+  altPort = 11435;
 
   curlRequest = port: request:
-    "curl http://127.0.0.1:${port}/api/generate -d '${builtins.toJSON request}'";
+    "curl http://127.0.0.1:${toString port}/api/generate -d '${builtins.toJSON request}'";
 
   prompt = {
     model = "tinydolphin";
@@ -38,7 +38,7 @@ in
 
     altAddress = { ... }: {
       services.ollama.enable = true;
-      services.ollama.listenAddress = "127.0.0.1:${altPort}";
+      services.ollama.port = altPort;
     };
   };
 
diff --git a/nixos/tests/open-webui.nix b/nixos/tests/open-webui.nix
new file mode 100644
index 0000000000000..f10ef1ad98fb0
--- /dev/null
+++ b/nixos/tests/open-webui.nix
@@ -0,0 +1,33 @@
+{ lib, ... }:
+let
+  mainPort = "8080";
+in
+{
+  name = "open-webui";
+  meta = with lib.maintainers; {
+    maintainers = [ shivaraj-bh ];
+  };
+
+  nodes = {
+    machine =
+      { ... }:
+      {
+        services.open-webui = {
+          enable = true;
+          environment = {
+            # Requires network connection
+            RAG_EMBEDDING_MODEL = "";
+          };
+        };
+      };
+  };
+
+  testScript = ''
+    machine.start()
+
+    machine.wait_for_unit("open-webui.service")
+    machine.wait_for_open_port(${mainPort})
+
+    machine.succeed("curl http://127.0.0.1:${mainPort}")
+  '';
+}
diff --git a/nixos/tests/openarena.nix b/nixos/tests/openarena.nix
index 63dc1b9a68570..4dfe71a9a1e95 100644
--- a/nixos/tests/openarena.nix
+++ b/nixos/tests/openarena.nix
@@ -5,7 +5,7 @@ let
     { pkgs, ... }:
 
     { imports = [ ./common/x11.nix ];
-      hardware.opengl.driSupport = true;
+      hardware.graphics.enable = true;
       environment.systemPackages = [ pkgs.openarena ];
     };
 
diff --git a/nixos/tests/openssh.nix b/nixos/tests/openssh.nix
index 140723a2df810..d420c482ca7f2 100644
--- a/nixos/tests/openssh.nix
+++ b/nixos/tests/openssh.nix
@@ -111,21 +111,23 @@ in {
     server-no-openssl =
       { ... }:
       {
-        programs.ssh.package = pkgs.opensshPackages.openssh.override {
-          linkOpenssl = false;
-        };
         services.openssh = {
           enable = true;
+          package = pkgs.opensshPackages.openssh.override {
+            linkOpenssl = false;
+          };
           hostKeys = [
             { type = "ed25519"; path = "/etc/ssh/ssh_host_ed25519_key"; }
           ];
           settings = {
-            # Must not specify the OpenSSL provided algorithms.
-            Ciphers = [ "chacha20-poly1305@openssh.com" ];
-            KexAlgorithms = [
-              "curve25519-sha256"
-              "curve25519-sha256@libssh.org"
-            ];
+            # Since this test is against an OpenSSH-without-OpenSSL,
+            # we have to override NixOS's defaults ciphers (which require OpenSSL)
+            # and instead set these to null, which will mean OpenSSH uses its defaults.
+            # Expectedly, OpenSSH's defaults don't require OpenSSL when it's compiled
+            # without OpenSSL.
+            Ciphers = null;
+            KexAlgorithms = null;
+            Macs = null;
           };
         };
         users.users.root.openssh.authorizedKeys.keys = [
@@ -136,11 +138,11 @@ in {
     server-no-pam =
       { pkgs, ... }:
       {
-        programs.ssh.package = pkgs.opensshPackages.openssh.override {
-          withPAM = false;
-        };
         services.openssh = {
           enable = true;
+          package = pkgs.opensshPackages.openssh.override {
+            withPAM = false;
+          };
           settings = {
             UsePAM = false;
           };
diff --git a/nixos/tests/pghero.nix b/nixos/tests/pghero.nix
new file mode 100644
index 0000000000000..bce32da008862
--- /dev/null
+++ b/nixos/tests/pghero.nix
@@ -0,0 +1,63 @@
+let
+  pgheroPort = 1337;
+  pgheroUser = "pghero";
+  pgheroPass = "pghero";
+in
+{ lib, ... }: {
+  name = "pghero";
+  meta.maintainers = [ lib.maintainers.tie ];
+
+  nodes.machine = { config, ... }: {
+    services.postgresql = {
+      enable = true;
+      # This test uses default peer authentication (socket and its directory is
+      # world-readably by default), so we essentially test that we can connect
+      # with DynamicUser= set.
+      ensureUsers = [{
+        name = "pghero";
+        ensureClauses.superuser = true;
+      }];
+    };
+    services.pghero = {
+      enable = true;
+      listenAddress = "[::]:${toString pgheroPort}";
+      settings = {
+        databases = {
+          postgres.url = "<%= ENV['POSTGRES_DATABASE_URL'] %>";
+          nulldb.url = "nulldb:///";
+        };
+      };
+      environment = {
+        PGHERO_USERNAME = pgheroUser;
+        PGHERO_PASSWORD = pgheroPass;
+        POSTGRES_DATABASE_URL = "postgresql:///postgres?host=/run/postgresql";
+      };
+    };
+  };
+
+  testScript = ''
+    pgheroPort = ${toString pgheroPort}
+    pgheroUser = "${pgheroUser}"
+    pgheroPass = "${pgheroPass}"
+
+    pgheroUnauthorizedURL = f"http://localhost:{pgheroPort}"
+    pgheroBaseURL = f"http://{pgheroUser}:{pgheroPass}@localhost:{pgheroPort}"
+
+    def expect_http_code(node, code, url):
+        http_code = node.succeed(f"curl -s -o /dev/null -w '%{{http_code}}' '{url}'")
+        assert http_code.split("\n")[-1].strip() == code, \
+          f"expected HTTP status code {code} but got {http_code}"
+
+    machine.wait_for_unit("postgresql.service")
+    machine.wait_for_unit("pghero.service")
+
+    with subtest("requires HTTP Basic Auth credentials"):
+      expect_http_code(machine, "401", pgheroUnauthorizedURL)
+
+    with subtest("works with some databases being unavailable"):
+      expect_http_code(machine, "500", pgheroBaseURL + "/nulldb")
+
+    with subtest("connects to the PostgreSQL database"):
+      expect_http_code(machine, "200", pgheroBaseURL + "/postgres")
+  '';
+}
diff --git a/nixos/tests/phosh.nix b/nixos/tests/phosh.nix
index d505f0ffc5245..64d6889aaf741 100644
--- a/nixos/tests/phosh.nix
+++ b/nixos/tests/phosh.nix
@@ -3,7 +3,7 @@ import ./make-test-python.nix ({ pkgs, ...}: let
 in {
   name = "phosh";
   meta = with pkgs.lib.maintainers; {
-    maintainers = [ tomfitzhenry zhaofengli ];
+    maintainers = [ zhaofengli ];
   };
 
   nodes = {
diff --git a/nixos/tests/podman/default.nix b/nixos/tests/podman/default.nix
index 3eea45832f0a6..f57523cf58886 100644
--- a/nixos/tests/podman/default.nix
+++ b/nixos/tests/podman/default.nix
@@ -1,5 +1,22 @@
 import ../make-test-python.nix (
-  { pkgs, lib, ... }: {
+  { pkgs, lib, ... }:
+  let
+    quadletContainerFile = pkgs.writeText "quadlet.container" ''
+      [Unit]
+      Description=A test quadlet container
+
+      [Container]
+      Image=localhost/scratchimg:latest
+      Exec=bash -c 'trap exit SIGTERM SIGINT; while true; do sleep 1; done'
+      ContainerName=quadlet
+      Volume=/nix/store:/nix/store
+      Volume=/run/current-system/sw/bin:/bin
+
+      [Install]
+      WantedBy=default.target
+    '';
+  in
+  {
     name = "podman";
     meta = {
       maintainers = lib.teams.podman.members;
@@ -174,6 +191,16 @@ import ../make-test-python.nix (
       with subtest("A podman non-member can not use the docker cli"):
           docker.fail(su_cmd("docker version", user="mallory"))
 
+      with subtest("A rootless quadlet container service is created"):
+          dir = "/home/alice/.config/containers/systemd"
+          rootless.succeed(su_cmd("tar cv --files-from /dev/null | podman import - scratchimg"))
+          rootless.succeed(su_cmd(f"mkdir -p {dir}"))
+          rootless.succeed(su_cmd(f"cp -f ${quadletContainerFile} {dir}/quadlet.container"))
+          rootless.systemctl("daemon-reload", "alice")
+          rootless.systemctl("start quadlet", "alice")
+          rootless.wait_until_succeeds(su_cmd("podman ps | grep quadlet"), timeout=20)
+          rootless.systemctl("stop quadlet", "alice")
+
       # TODO: add docker-compose test
 
     '';
diff --git a/nixos/tests/qtile.nix b/nixos/tests/qtile.nix
index b4d8f9d421144..96afaa342c524 100644
--- a/nixos/tests/qtile.nix
+++ b/nixos/tests/qtile.nix
@@ -10,7 +10,7 @@ import ./make-test-python.nix ({ lib, ...} : {
     test-support.displayManager.auto.user = "alice";
 
     services.xserver.windowManager.qtile.enable = true;
-    services.displayManager.defaultSession = lib.mkForce "none+qtile";
+    services.displayManager.defaultSession = lib.mkForce "qtile";
 
     environment.systemPackages = [ pkgs.kitty ];
   };
diff --git a/nixos/tests/quake3.nix b/nixos/tests/quake3.nix
index 4b7ca03b365b5..ff4025e56f4c4 100644
--- a/nixos/tests/quake3.nix
+++ b/nixos/tests/quake3.nix
@@ -21,7 +21,7 @@ let
     { pkgs, ... }:
 
     { imports = [ ./common/x11.nix ];
-      hardware.opengl.driSupport = true;
+      hardware.graphics.enable = true;
       environment.systemPackages = [ pkgs.quake3demo ];
       nixpkgs.config.packageOverrides = overrides;
       nixpkgs.config.allowUnfreePredicate = unfreePredicate;
diff --git a/nixos/tests/quickwit.nix b/nixos/tests/quickwit.nix
new file mode 100644
index 0000000000000..7e617c63d7973
--- /dev/null
+++ b/nixos/tests/quickwit.nix
@@ -0,0 +1,103 @@
+import ./make-test-python.nix ({ lib, pkgs, ... }:
+
+let
+  # Define an example Quickwit index schema,
+  # and some `exampleDocs` below, to test if ingesting
+  # and querying works as expected.
+  index_yaml = ''
+    version: 0.7
+    index_id: example_server_logs
+    doc_mapping:
+      mode: dynamic
+      field_mappings:
+        - name: datetime
+          type: datetime
+          fast: true
+          input_formats:
+            - iso8601
+          output_format: iso8601
+          fast_precision: seconds
+          fast: true
+        - name: git
+          type: text
+          tokenizer: raw
+        - name: hostname
+          type: text
+          tokenizer: raw
+        - name: level
+          type: text
+          tokenizer: raw
+        - name: message
+          type: text
+        - name: location
+          type: text
+        - name: source
+          type: text
+      timestamp_field: datetime
+
+    search_settings:
+      default_search_fields: [message]
+
+    indexing_settings:
+      commit_timeout_secs: 10
+  '';
+
+  exampleDocs = ''
+    {"datetime":"2024-05-03T02:36:41.017674444Z","git":"e6e1f087ce12065e44ed3b87b50784e6f9bcc2f9","hostname":"machine-1","level":"Info","message":"Processing request done","location":"path/to/server.c:6442:32","source":""}
+    {"datetime":"2024-05-04T02:36:41.017674444Z","git":"e6e1f087ce12065e44ed3b87b50784e6f9bcc2f9","hostname":"machine-1","level":"Info","message":"Got exception processing request: HTTP 404","location":"path/to/server.c:6444:32","source":""}
+    {"datetime":"2024-05-05T02:36:41.017674444Z","git":"e6e1f087ce12065e44ed3b87b50784e6f9bcc2f9","hostname":"machine-1","level":"Info","message":"Got exception processing request: HTTP 404","location":"path/to/server.c:6444:32","source":""}
+    {"datetime":"2024-05-06T02:36:41.017674444Z","git":"e6e1f087ce12065e44ed3b87b50784e6f9bcc2f9","hostname":"machine-2","level":"Info","message":"Got exception processing request: HTTP 404","location":"path/to/server.c:6444:32","source":""}
+  '';
+in
+{
+  name = "quickwit";
+  meta.maintainers = [ pkgs.lib.maintainers.happysalada ];
+
+  nodes = {
+    quickwit = { config, pkgs, ... }: {
+      services.quickwit.enable = true;
+    };
+  };
+
+  testScript =
+  ''
+    quickwit.wait_for_unit("quickwit")
+    quickwit.wait_for_open_port(7280)
+    quickwit.wait_for_open_port(7281)
+
+    quickwit.wait_until_succeeds(
+      "journalctl -o cat -u quickwit.service | grep 'version: ${pkgs.quickwit.version}'"
+    )
+
+    quickwit.wait_until_succeeds(
+      "journalctl -o cat -u quickwit.service | grep 'transitioned to ready state'"
+    )
+
+    with subtest("verify UI installed"):
+      machine.succeed("curl -sSf http://127.0.0.1:7280/ui/")
+
+    with subtest("injest and query data"):
+      import json
+
+      # Test CLI ingestion
+      print(machine.succeed('${pkgs.quickwit}/bin/quickwit index create --index-config ${pkgs.writeText "index.yaml" index_yaml}'))
+      # Important to use `--wait`, otherwise the queries below race with index processing.
+      print(machine.succeed('${pkgs.quickwit}/bin/quickwit index ingest --index example_server_logs --input-path ${pkgs.writeText "exampleDocs.json" exampleDocs} --wait'))
+
+      # Test CLI query
+      cli_query_output = machine.succeed('${pkgs.quickwit}/bin/quickwit index search --index example_server_logs --query "exception"')
+      print(cli_query_output)
+
+      # Assert query result is as expected.
+      num_hits = len(json.loads(cli_query_output)["hits"])
+      assert num_hits == 3, f"cli_query_output contains unexpected number of results: {num_hits}"
+
+      # Test API query
+      api_query_output = machine.succeed('curl --fail http://127.0.0.1:7280/api/v1/example_server_logs/search?query=exception')
+      print(api_query_output)
+
+    quickwit.log(quickwit.succeed(
+      "systemd-analyze security quickwit.service | grep -v '✓'"
+    ))
+  '';
+})
diff --git a/nixos/tests/renovate.nix b/nixos/tests/renovate.nix
new file mode 100644
index 0000000000000..a30b5b3d60b9c
--- /dev/null
+++ b/nixos/tests/renovate.nix
@@ -0,0 +1,69 @@
+import ./make-test-python.nix (
+  { pkgs, ... }:
+  {
+    name = "renovate";
+    meta.maintainers = with pkgs.lib.maintainers; [ marie natsukium ];
+
+    nodes.machine =
+      { config, ... }:
+      {
+        services.renovate = {
+          enable = true;
+          settings = {
+            platform = "gitea";
+            endpoint = "http://localhost:3000";
+            autodiscover = true;
+            gitAuthor = "Renovate <renovate@example.com>";
+          };
+          credentials = {
+            RENOVATE_TOKEN = "/etc/renovate-token";
+          };
+        };
+        environment.systemPackages = [
+          config.services.forgejo.package
+          pkgs.tea
+          pkgs.git
+        ];
+        services.forgejo = {
+          enable = true;
+          settings.server.HTTP_PORT = 3000;
+        };
+      };
+
+    testScript = ''
+      def gitea(command):
+        return machine.succeed(f"cd /var/lib/forgejo && sudo --user=forgejo GITEA_WORK_DIR=/var/lib/forgejo GITEA_CUSTOM=/var/lib/forgejo/custom gitea {command}")
+
+      machine.wait_for_unit("forgejo.service")
+      machine.wait_for_open_port(3000)
+
+      machine.systemctl("stop forgejo.service")
+
+      gitea("admin user create --username meow --email meow@example.com --password meow")
+
+      machine.systemctl("start forgejo.service")
+      machine.wait_for_unit("forgejo.service")
+      machine.wait_for_open_port(3000)
+
+      accessToken = gitea("admin user generate-access-token --raw --username meow --scopes all | tr -d '\n'")
+
+      machine.succeed(f"tea login add --name default --user meow --token '{accessToken}' --password meow --url http://localhost:3000")
+      machine.succeed("tea repo create --name kitty --init")
+      machine.succeed("git config --global user.name Meow")
+      machine.succeed("git config --global user.email meow@example.com")
+      machine.succeed(f"git clone http://meow:{accessToken}@localhost:3000/meow/kitty.git /tmp/kitty")
+      machine.succeed("echo '{ \"name\": \"meow\", \"version\": \"0.1.0\" }' > /tmp/kitty/package.json")
+      machine.succeed("git -C /tmp/kitty add /tmp/kitty/package.json")
+      machine.succeed("git -C /tmp/kitty commit -m 'add package.json'")
+      machine.succeed("git -C /tmp/kitty push origin")
+
+      machine.succeed(f"echo '{accessToken}' > /etc/renovate-token")
+      machine.systemctl("start renovate.service")
+
+      machine.succeed("tea pulls list --repo meow/kitty | grep 'Configure Renovate'")
+      machine.succeed("tea pulls merge --repo meow/kitty 1")
+
+      machine.systemctl("start renovate.service")
+    '';
+  }
+)
diff --git a/nixos/tests/rke2/default.nix b/nixos/tests/rke2/default.nix
new file mode 100644
index 0000000000000..e8a5f382b735f
--- /dev/null
+++ b/nixos/tests/rke2/default.nix
@@ -0,0 +1,13 @@
+{ system ? builtins.currentSystem
+, pkgs ? import ../../.. { inherit system; }
+, lib ? pkgs.lib
+}:
+let
+  allRKE2 = lib.filterAttrs (n: _: lib.strings.hasPrefix "rke2" n) pkgs;
+in
+{
+  # Run a single node rke2 cluster and verify a pod can run
+  singleNode = lib.mapAttrs (_: rke2: import ./single-node.nix { inherit system pkgs rke2; }) allRKE2;
+  # Run a multi-node rke2 cluster and verify pod networking works across nodes
+  multiNode = lib.mapAttrs (_: rke2: import ./multi-node.nix { inherit system pkgs rke2; }) allRKE2;
+}
diff --git a/nixos/tests/rke2/multi-node.nix b/nixos/tests/rke2/multi-node.nix
new file mode 100644
index 0000000000000..ddf0b60f6fba4
--- /dev/null
+++ b/nixos/tests/rke2/multi-node.nix
@@ -0,0 +1,176 @@
+import ../make-test-python.nix ({ pkgs, lib, rke2, ... }:
+  let
+    pauseImage = pkgs.dockerTools.streamLayeredImage {
+      name = "test.local/pause";
+      tag = "local";
+      contents = pkgs.buildEnv {
+        name = "rke2-pause-image-env";
+        paths = with pkgs; [ tini bashInteractive coreutils socat ];
+      };
+      config.Entrypoint = [ "/bin/tini" "--" "/bin/sleep" "inf" ];
+    };
+    # A daemonset that responds 'server' on port 8000
+    networkTestDaemonset = pkgs.writeText "test.yml" ''
+      apiVersion: apps/v1
+      kind: DaemonSet
+      metadata:
+        name: test
+        labels:
+          name: test
+      spec:
+        selector:
+          matchLabels:
+            name: test
+        template:
+          metadata:
+            labels:
+              name: test
+          spec:
+            containers:
+            - name: test
+              image: test.local/pause:local
+              imagePullPolicy: Never
+              resources:
+                limits:
+                  memory: 20Mi
+              command: ["socat", "TCP4-LISTEN:8000,fork", "EXEC:echo server"]
+    '';
+    tokenFile = pkgs.writeText "token" "p@s$w0rd";
+    agentTokenFile = pkgs.writeText "agent-token" "p@s$w0rd";
+  in
+  {
+    name = "${rke2.name}-multi-node";
+    meta.maintainers = rke2.meta.maintainers;
+
+    nodes = {
+      server1 = { pkgs, ... }: {
+        networking.firewall.enable = false;
+        networking.useDHCP = false;
+        networking.defaultGateway = "192.168.1.1";
+        networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkForce [
+          { address = "192.168.1.1"; prefixLength = 24; }
+        ];
+
+        virtualisation.memorySize = 1536;
+        virtualisation.diskSize = 4096;
+
+        services.rke2 = {
+          enable = true;
+          role = "server";
+          inherit tokenFile;
+          inherit agentTokenFile;
+          nodeName = "${rke2.name}-server1";
+          package = rke2;
+          nodeIP = "192.168.1.1";
+          disable = [
+            "rke2-coredns"
+            "rke2-metrics-server"
+            "rke2-ingress-nginx"
+          ];
+          extraFlags = [
+            "--cluster-reset"
+          ];
+        };
+      };
+
+      server2 = { pkgs, ... }: {
+        networking.firewall.enable = false;
+        networking.useDHCP = false;
+        networking.defaultGateway = "192.168.1.2";
+        networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkForce [
+          { address = "192.168.1.2"; prefixLength = 24; }
+        ];
+
+        virtualisation.memorySize = 1536;
+        virtualisation.diskSize = 4096;
+
+        services.rke2 = {
+          enable = true;
+          role = "server";
+          serverAddr = "https://192.168.1.1:6443";
+          inherit tokenFile;
+          inherit agentTokenFile;
+          nodeName = "${rke2.name}-server2";
+          package = rke2;
+          nodeIP = "192.168.1.2";
+          disable = [
+            "rke2-coredns"
+            "rke2-metrics-server"
+            "rke2-ingress-nginx"
+          ];
+        };
+      };
+
+      agent1 = { pkgs, ... }: {
+        networking.firewall.enable = false;
+        networking.useDHCP = false;
+        networking.defaultGateway = "192.168.1.3";
+        networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkForce [
+          { address = "192.168.1.3"; prefixLength = 24; }
+        ];
+
+        virtualisation.memorySize = 1536;
+        virtualisation.diskSize = 4096;
+
+        services.rke2 = {
+          enable = true;
+          role = "agent";
+          tokenFile = agentTokenFile;
+          serverAddr = "https://192.168.1.2:6443";
+          nodeName = "${rke2.name}-agent1";
+          package = rke2;
+          nodeIP = "192.168.1.3";
+        };
+      };
+    };
+
+    testScript = let
+      kubectl = "${pkgs.kubectl}/bin/kubectl --kubeconfig=/etc/rancher/rke2/rke2.yaml";
+      ctr = "${pkgs.containerd}/bin/ctr -a /run/k3s/containerd/containerd.sock";
+      jq = "${pkgs.jq}/bin/jq";
+      ping = "${pkgs.iputils}/bin/ping";
+    in ''
+      machines = [server1, server2, agent1]
+
+      for machine in machines:
+          machine.start()
+          machine.wait_for_unit("rke2")
+
+      # wait for the agent to show up
+      server1.succeed("${kubectl} get node ${rke2.name}-agent1")
+
+      for machine in machines:
+          machine.succeed("${pauseImage} | ${ctr} image import -")
+
+      server1.succeed("${kubectl} cluster-info")
+      server1.wait_until_succeeds("${kubectl} get serviceaccount default")
+
+      # Now create a pod on each node via a daemonset and verify they can talk to each other.
+      server1.succeed("${kubectl} apply -f ${networkTestDaemonset}")
+      server1.wait_until_succeeds(
+          f'[ "$(${kubectl} get ds test -o json | ${jq} .status.numberReady)" -eq {len(machines)} ]'
+      )
+
+      # Get pod IPs
+      pods = server1.succeed("${kubectl} get po -o json | ${jq} '.items[].metadata.name' -r").splitlines()
+      pod_ips = [
+          server1.succeed(f"${kubectl} get po {n} -o json | ${jq} '.status.podIP' -cr").strip() for n in pods
+      ]
+
+      # Verify each server can ping each pod ip
+      for pod_ip in pod_ips:
+          server1.succeed(f"${ping} -c 1 {pod_ip}")
+          agent1.succeed(f"${ping} -c 1 {pod_ip}")
+
+      # Verify the pods can talk to each other
+      resp = server1.wait_until_succeeds(f"${kubectl} exec {pods[0]} -- socat TCP:{pod_ips[1]}:8000 -")
+      assert resp.strip() == "server"
+      resp = server1.wait_until_succeeds(f"${kubectl} exec {pods[1]} -- socat TCP:{pod_ips[0]}:8000 -")
+      assert resp.strip() == "server"
+
+      # Cleanup
+      server1.succeed("${kubectl} delete -f ${networkTestDaemonset}")
+      for machine in machines:
+          machine.shutdown()
+    '';
+  })
diff --git a/nixos/tests/rke2/single-node.nix b/nixos/tests/rke2/single-node.nix
new file mode 100644
index 0000000000000..5a512eacca0f1
--- /dev/null
+++ b/nixos/tests/rke2/single-node.nix
@@ -0,0 +1,75 @@
+import ../make-test-python.nix ({ pkgs, lib, rke2, ... }:
+  let
+    pauseImage = pkgs.dockerTools.streamLayeredImage {
+      name = "test.local/pause";
+      tag = "local";
+      contents = pkgs.buildEnv {
+        name = "rke2-pause-image-env";
+        paths = with pkgs; [ tini (hiPrio coreutils) busybox ];
+      };
+      config.Entrypoint = [ "/bin/tini" "--" "/bin/sleep" "inf" ];
+    };
+    testPodYaml = pkgs.writeText "test.yaml" ''
+      apiVersion: v1
+      kind: Pod
+      metadata:
+        name: test
+      spec:
+        containers:
+        - name: test
+          image: test.local/pause:local
+          imagePullPolicy: Never
+          command: ["sh", "-c", "sleep inf"]
+    '';
+  in
+  {
+    name = "${rke2.name}-single-node";
+    meta.maintainers = rke2.meta.maintainers;
+
+    nodes.machine = { pkgs, ... }: {
+      networking.firewall.enable = false;
+      networking.useDHCP = false;
+      networking.defaultGateway = "192.168.1.1";
+      networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkForce [
+        { address = "192.168.1.1"; prefixLength = 24; }
+      ];
+
+      virtualisation.memorySize = 1536;
+      virtualisation.diskSize = 4096;
+
+      services.rke2 = {
+        enable = true;
+        role = "server";
+        package = rke2;
+        nodeIP = "192.168.1.1";
+        disable = [
+          "rke2-coredns"
+          "rke2-metrics-server"
+          "rke2-ingress-nginx"
+        ];
+        extraFlags = [
+          "--cluster-reset"
+        ];
+      };
+    };
+
+    testScript = let
+      kubectl = "${pkgs.kubectl}/bin/kubectl --kubeconfig=/etc/rancher/rke2/rke2.yaml";
+      ctr = "${pkgs.containerd}/bin/ctr -a /run/k3s/containerd/containerd.sock";
+    in ''
+      start_all()
+
+      machine.wait_for_unit("rke2")
+      machine.succeed("${kubectl} cluster-info")
+      machine.wait_until_succeeds(
+        "${pauseImage} | ${ctr} -n k8s.io image import -"
+      )
+
+      machine.wait_until_succeeds("${kubectl} get serviceaccount default")
+      machine.succeed("${kubectl} apply -f ${testPodYaml}")
+      machine.succeed("${kubectl} wait --for 'condition=Ready' pod/test")
+      machine.succeed("${kubectl} delete -f ${testPodYaml}")
+
+      machine.shutdown()
+    '';
+  })
diff --git a/nixos/tests/rosenpass.nix b/nixos/tests/rosenpass.nix
index ec4046c8c035b..8765fd201c0e5 100644
--- a/nixos/tests/rosenpass.nix
+++ b/nixos/tests/rosenpass.nix
@@ -74,10 +74,8 @@ in
           wireguardConfig.ListenPort = server.wg.listen;
           wireguardPeers = [
             {
-              wireguardPeerConfig = {
-                AllowedIPs = [ "::/0" ];
-                PublicKey = client.wg.public;
-              };
+              AllowedIPs = [ "::/0" ];
+              PublicKey = client.wg.public;
             }
           ];
         };
@@ -97,11 +95,9 @@ in
 
         systemd.network.netdevs."10-${deviceName}".wireguardPeers = [
           {
-            wireguardPeerConfig = {
-              AllowedIPs = [ "::/0" ];
-              PublicKey = server.wg.public;
-              Endpoint = "server:${builtins.toString server.wg.listen}";
-            };
+            AllowedIPs = [ "::/0" ];
+            PublicKey = server.wg.public;
+            Endpoint = "server:${builtins.toString server.wg.listen}";
           }
         ];
 
diff --git a/nixos/tests/searx.nix b/nixos/tests/searx.nix
index 02a88f690db78..0008424f068b2 100644
--- a/nixos/tests/searx.nix
+++ b/nixos/tests/searx.nix
@@ -1,4 +1,4 @@
-import ./make-test-python.nix ({ pkgs, ...} :
+{ pkgs, ... }:
 
 {
   name = "searx";
@@ -7,108 +7,108 @@ import ./make-test-python.nix ({ pkgs, ...} :
   };
 
   # basic setup: searx running the built-in webserver
-  nodes.base = { ... }: {
-    imports = [ ../modules/profiles/minimal.nix ];
-
-    services.searx = {
-      enable = true;
-      environmentFile = pkgs.writeText "secrets" ''
-        WOLFRAM_API_KEY  = sometoken
-        SEARX_SECRET_KEY = somesecret
-      '';
+  nodes.base =
+    { ... }:
+    {
+      services.searx = {
+        enable = true;
+        environmentFile = pkgs.writeText "secrets" ''
+          WOLFRAM_API_KEY  = sometoken
+          SEARX_SECRET_KEY = somesecret
+        '';
 
-      settings.server =
-        { port = "8080";
+        settings.server = {
+          port = "8080";
           bind_address = "0.0.0.0";
           secret_key = "@SEARX_SECRET_KEY@";
         };
-      settings.engines = [
-        { name = "wolframalpha";
-          api_key = "@WOLFRAM_API_KEY@";
-          engine = "wolframalpha_api";
-        }
-        { name = "startpage";
-          shortcut = "start";
-        }
-      ];
-    };
+        settings.engines = [
+          {
+            name = "wolframalpha";
+            api_key = "@WOLFRAM_API_KEY@";
+            engine = "wolframalpha_api";
+          }
+          {
+            name = "startpage";
+            shortcut = "start";
+          }
+        ];
+      };
 
-  };
+    };
 
   # fancy setup: run in uWSGI and use nginx as proxy
-  nodes.fancy = { config, ... }: {
-    imports = [ ../modules/profiles/minimal.nix ];
-
-    services.searx = {
-      enable = true;
-      # searx refuses to run if unchanged
-      settings.server.secret_key = "somesecret";
-
-      runInUwsgi = true;
-      uwsgiConfig = {
-        # serve using the uwsgi protocol
-        socket = "/run/searx/uwsgi.sock";
-        chmod-socket = "660";
-
-        # use /searx as url "mountpoint"
-        mount = "/searx=searx.webapp:application";
-        module = "";
-        manage-script-name = true;
+  nodes.fancy =
+    { config, ... }:
+    {
+      services.searx = {
+        enable = true;
+        # searx refuses to run if unchanged
+        settings.server.secret_key = "somesecret";
+
+        runInUwsgi = true;
+        uwsgiConfig = {
+          # serve using the uwsgi protocol
+          socket = "/run/searx/uwsgi.sock";
+          chmod-socket = "660";
+
+          # use /searx as url "mountpoint"
+          mount = "/searx=searx.webapp:application";
+          module = "";
+          manage-script-name = true;
+        };
       };
-    };
 
-    # use nginx as reverse proxy
-    services.nginx.enable = true;
-    services.nginx.virtualHosts.localhost = {
-      locations."/searx".extraConfig =
-        ''
+      # use nginx as reverse proxy
+      services.nginx.enable = true;
+      services.nginx.virtualHosts.localhost = {
+        locations."/searx".extraConfig = ''
           include ${pkgs.nginx}/conf/uwsgi_params;
           uwsgi_pass unix:/run/searx/uwsgi.sock;
         '';
-      locations."/searx/static/".alias = "${config.services.searx.package}/share/static/";
-    };
-
-    # allow nginx access to the searx socket
-    users.users.nginx.extraGroups = [ "searx" ];
-
-  };
-
-  testScript =
-    ''
-      base.start()
-
-      with subtest("Settings have been merged"):
-          base.wait_for_unit("searx-init")
-          base.wait_for_file("/run/searx/settings.yml")
-          output = base.succeed(
-              "${pkgs.yq-go}/bin/yq eval"
-              " '.engines[] | select(.name==\"startpage\") | .shortcut'"
-              " /run/searx/settings.yml"
-          ).strip()
-          assert output == "start", "Settings not merged"
+        locations."/searx/static/".alias = "${config.services.searx.package}/share/static/";
+      };
 
-      with subtest("Environment variables have been substituted"):
-          base.succeed("grep -q somesecret /run/searx/settings.yml")
-          base.succeed("grep -q sometoken /run/searx/settings.yml")
-          base.copy_from_vm("/run/searx/settings.yml")
+      # allow nginx access to the searx socket
+      users.users.nginx.extraGroups = [ "searx" ];
 
-      with subtest("Basic setup is working"):
-          base.wait_for_open_port(8080)
-          base.wait_for_unit("searx")
-          base.succeed(
-              "${pkgs.curl}/bin/curl --fail http://localhost:8080"
-          )
-          base.shutdown()
+    };
 
-      with subtest("Nginx+uWSGI setup is working"):
-          fancy.start()
-          fancy.wait_for_open_port(80)
-          fancy.wait_for_unit("uwsgi")
-          fancy.succeed(
-              "${pkgs.curl}/bin/curl --fail http://localhost/searx >&2"
-          )
-          fancy.succeed(
-              "${pkgs.curl}/bin/curl --fail http://localhost/searx/static/themes/simple/js/leaflet.js >&2"
-          )
-    '';
-})
+  testScript = ''
+    base.start()
+
+    with subtest("Settings have been merged"):
+        base.wait_for_unit("searx-init")
+        base.wait_for_file("/run/searx/settings.yml")
+        output = base.succeed(
+            "${pkgs.yq-go}/bin/yq eval"
+            " '.engines[] | select(.name==\"startpage\") | .shortcut'"
+            " /run/searx/settings.yml"
+        ).strip()
+        assert output == "start", "Settings not merged"
+
+    with subtest("Environment variables have been substituted"):
+        base.succeed("grep -q somesecret /run/searx/settings.yml")
+        base.succeed("grep -q sometoken /run/searx/settings.yml")
+        base.copy_from_vm("/run/searx/settings.yml")
+
+    with subtest("Basic setup is working"):
+        base.wait_for_open_port(8080)
+        base.wait_for_unit("searx")
+        base.succeed(
+            "${pkgs.curl}/bin/curl --fail http://localhost:8080"
+        )
+        base.shutdown()
+
+    with subtest("Nginx+uWSGI setup is working"):
+        fancy.start()
+        fancy.wait_for_open_port(80)
+        fancy.wait_for_unit("uwsgi")
+        fancy.succeed(
+            "${pkgs.curl}/bin/curl --fail http://localhost/searx >&2"
+        )
+        fancy.succeed(
+            "${pkgs.curl}/bin/curl --fail http://localhost/searx/static/themes/simple/js/leaflet.js >&2"
+        )
+  '';
+}
diff --git a/nixos/tests/seatd.nix b/nixos/tests/seatd.nix
index 138a6cb1cf44c..9178492fdb0ef 100644
--- a/nixos/tests/seatd.nix
+++ b/nixos/tests/seatd.nix
@@ -39,7 +39,7 @@ in
           dwl -s 'foot touch /tmp/foot_started'
     '';
 
-    hardware.opengl.enable = true;
+    hardware.graphics.enable = true;
     virtualisation.qemu.options = [ "-vga none -device virtio-gpu-pci" ];
     services.seatd.enable = true;
   };
diff --git a/nixos/tests/snapper.nix b/nixos/tests/snapper.nix
index 674523584fdaa..0369419930f15 100644
--- a/nixos/tests/snapper.nix
+++ b/nixos/tests/snapper.nix
@@ -19,7 +19,9 @@ import ./make-test-python.nix ({ ... }:
     services.snapper.filters = "/nix";
   };
 
-  testScript = ''
+  testScript = { nodes, ... }: let
+    inherit (nodes.machine.services.snapper) snapshotRootOnBoot;
+  in ''
     machine.succeed("btrfs subvolume create /home/.snapshots")
     machine.succeed("snapper -c home list")
     machine.succeed("snapper -c home create --description empty")
@@ -31,5 +33,6 @@ import ./make-test-python.nix ({ ... }:
     machine.succeed("snapper -c home delete 2")
     machine.succeed("systemctl --wait start snapper-timeline.service")
     machine.succeed("systemctl --wait start snapper-cleanup.service")
+    machine.${if snapshotRootOnBoot then "succeed" else "fail"}("systemctl cat snapper-boot.service")
   '';
 })
diff --git a/nixos/tests/stalwart-mail.nix b/nixos/tests/stalwart-mail.nix
index 581090cd70f48..173b4fce4ad5d 100644
--- a/nixos/tests/stalwart-mail.nix
+++ b/nixos/tests/stalwart-mail.nix
@@ -18,8 +18,8 @@ in import ./make-test-python.nix ({ lib, ... }: {
         server.hostname = domain;
 
         certificate."snakeoil" = {
-          cert = "file://${certs.${domain}.cert}";
-          private-key = "file://${certs.${domain}.key}";
+          cert = "%{file:${certs.${domain}.cert}}%";
+          private-key = "%{file:${certs.${domain}.key}}%";
         };
 
         server.tls = {
@@ -40,8 +40,6 @@ in import ./make-test-python.nix ({ lib, ... }: {
           };
         };
 
-        resolver.public-suffix = [ ];  # do not fetch from web in sandbox
-
         session.auth.mechanisms = "[plain]";
         session.auth.directory = "'in-memory'";
         storage.directory = "in-memory";
@@ -53,13 +51,13 @@ in import ./make-test-python.nix ({ lib, ... }: {
           type = "memory";
           principals = [
             {
-              type = "individual";
+              class = "individual";
               name = "alice";
               secret = "foobar";
               email = [ "alice@${domain}" ];
             }
             {
-              type = "individual";
+              class = "individual";
               name = "bob";
               secret = "foobar";
               email = [ "bob@${domain}" ];
@@ -117,6 +115,6 @@ in import ./make-test-python.nix ({ lib, ... }: {
   '';
 
   meta = {
-    maintainers = with lib.maintainers; [ happysalada pacien ];
+    maintainers = with lib.maintainers; [ happysalada pacien onny ];
   };
 })
diff --git a/nixos/tests/systemd-machinectl.nix b/nixos/tests/systemd-machinectl.nix
index 9d761c6d4d8b8..555a8bb43b30e 100644
--- a/nixos/tests/systemd-machinectl.nix
+++ b/nixos/tests/systemd-machinectl.nix
@@ -76,10 +76,23 @@ in
       };
     };
 
+    systemd.nspawn.${containerName} = {
+      filesConfig = {
+        # workaround to fix kernel namespaces; needed for Nix sandbox
+        # https://github.com/systemd/systemd/issues/27994#issuecomment-1704005670
+        Bind = "/proc:/run/proc";
+      };
+    };
+
     systemd.services."systemd-nspawn@${containerName}" = {
       serviceConfig.Environment = [
         # Disable tmpfs for /tmp
         "SYSTEMD_NSPAWN_TMPFS_TMP=0"
+
+        # force unified cgroup delegation, which would be the default
+        # if systemd could check the capabilities of the installed systemd.
+        # see also: https://github.com/NixOS/nixpkgs/pull/198526
+        "SYSTEMD_NSPAWN_UNIFIED_HIERARCHY=1"
       ];
       overrideStrategy = "asDropin";
     };
@@ -121,6 +134,17 @@ in
     machine.succeed("machinectl start ${containerName}");
     machine.wait_until_succeeds("systemctl -M ${containerName} is-active default.target");
 
+    # Test systemd-nspawn configured unified cgroup delegation
+    # see also:
+    # https://github.com/systemd/systemd/blob/main/docs/CGROUP_DELEGATION.md#three-different-tree-setups-
+    machine.succeed('systemd-run --pty --wait -M ${containerName} /run/current-system/sw/bin/stat --format="%T" --file-system /sys/fs/cgroup > fstype')
+    machine.succeed('test $(tr -d "\\r" < fstype) = cgroup2fs')
+
+    # Test if systemd-nspawn provides a working environment for nix to build derivations
+    # https://nixos.org/guides/nix-pills/07-working-derivation
+    machine.succeed('systemd-run --pty --wait -M ${containerName} /run/current-system/sw/bin/nix-instantiate --expr \'derivation { name = "myname"; builder = "/bin/sh"; args = [ "-c" "echo foo > $out" ]; system = "${pkgs.system}"; }\' --add-root /tmp/drv')
+    machine.succeed('systemd-run --pty --wait -M ${containerName} /run/current-system/sw/bin/nix-store --option substitute false --realize /tmp/drv')
+
     # Test nss_mymachines without nscd
     machine.succeed('LD_LIBRARY_PATH="/run/current-system/sw/lib" getent -s hosts:mymachines hosts ${containerName}');
 
diff --git a/nixos/tests/systemd-networkd-dhcpserver-static-leases.nix b/nixos/tests/systemd-networkd-dhcpserver-static-leases.nix
index f6d5411aa5cad..fda9f35cbe104 100644
--- a/nixos/tests/systemd-networkd-dhcpserver-static-leases.nix
+++ b/nixos/tests/systemd-networkd-dhcpserver-static-leases.nix
@@ -24,14 +24,14 @@ import ./make-test-python.nix ({ lib, ... }: {
           "01-eth1" = {
             name = "eth1";
             networkConfig = {
+              # IPForward prevents dynamic address configuration
+              IPForward = true;
               DHCPServer = true;
               Address = "10.0.0.1/24";
             };
             dhcpServerStaticLeases = [{
-              dhcpServerStaticLeaseConfig = {
-                MACAddress = "02:de:ad:be:ef:01";
-                Address = "10.0.0.10";
-              };
+              MACAddress = "02:de:ad:be:ef:01";
+              Address = "10.0.0.10";
             }];
           };
         };
@@ -41,20 +41,30 @@ import ./make-test-python.nix ({ lib, ... }: {
     client = {
       virtualisation.vlans = [ 1 ];
       systemd.services.systemd-networkd.environment.SYSTEMD_LOG_LEVEL = "debug";
+      systemd.network = {
+        enable = true;
+        links."10-eth1" = {
+          matchConfig.OriginalName = "eth1";
+          linkConfig.MACAddress = "02:de:ad:be:ef:01";
+        };
+        networks."40-eth1" = {
+          matchConfig.Name = "eth1";
+          networkConfig = {
+            DHCP = "ipv4";
+            IPv6AcceptRA = false;
+          };
+          # This setting is important to have the router assign the
+          # configured lease based on the client's MAC address. Also see:
+          # https://github.com/systemd/systemd/issues/21368#issuecomment-982193546
+          dhcpV4Config.ClientIdentifier = "mac";
+          linkConfig.RequiredForOnline = "routable";
+        };
+      };
       networking = {
-        useNetworkd = true;
         useDHCP = false;
         firewall.enable = false;
-        interfaces.eth1 = {
-          useDHCP = true;
-          macAddress = "02:de:ad:be:ef:01";
-        };
+        interfaces.eth1 = lib.mkForce {};
       };
-
-      # This setting is important to have the router assign the
-      # configured lease based on the client's MAC address. Also see:
-      # https://github.com/systemd/systemd/issues/21368#issuecomment-982193546
-      systemd.network.networks."40-eth1".dhcpV4Config.ClientIdentifier = "mac";
     };
   };
   testScript = ''
diff --git a/nixos/tests/systemd-networkd-dhcpserver.nix b/nixos/tests/systemd-networkd-dhcpserver.nix
index 665d8b5a05291..fda0c9d641938 100644
--- a/nixos/tests/systemd-networkd-dhcpserver.nix
+++ b/nixos/tests/systemd-networkd-dhcpserver.nix
@@ -54,7 +54,7 @@ import ./make-test-python.nix ({pkgs, ...}: {
             name = "eth1";
             networkConfig.Bridge = "br0";
             bridgeVLANs = [
-              { bridgeVLANConfig = { PVID = 2; EgressUntagged = 2; }; }
+              { PVID = 2; EgressUntagged = 2; }
             ];
           };
           "02-br0" = {
@@ -69,8 +69,8 @@ import ./make-test-python.nix ({pkgs, ...}: {
               PoolSize = 1;
             };
             bridgeVLANs = [
-              { bridgeVLANConfig = { PVID = 1; EgressUntagged = 1; }; }
-              { bridgeVLANConfig = { VLAN = 2; }; }
+              { PVID = 1; EgressUntagged = 1; }
+              { VLAN = 2; }
             ];
           };
           "02-vlan2" = {
diff --git a/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix b/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix
index 1e55341657bdb..6c056d9a10183 100644
--- a/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix
+++ b/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix
@@ -66,6 +66,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
           settings = {
             interfaces-config.interfaces = [ "eth1" ];
             subnet6 = [ {
+              id = 1;
               interface = "eth1";
               subnet = "2001:DB8::/32";
               pd-pools = [ {
@@ -258,7 +259,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
           "01-lo" = {
             name = "lo";
             addresses = [
-              { addressConfig.Address = "FD42::1/128"; }
+              { Address = "FD42::1/128"; }
             ];
           };
         };
diff --git a/nixos/tests/systemd-networkd-vrf.nix b/nixos/tests/systemd-networkd-vrf.nix
index d4227526a30d4..4f2a45577c169 100644
--- a/nixos/tests/systemd-networkd-vrf.nix
+++ b/nixos/tests/systemd-networkd-vrf.nix
@@ -59,14 +59,14 @@ in {
           matchConfig.Name = "vrf1";
           networkConfig.IPForward = "yes";
           routes = [
-            { routeConfig = { Destination = "192.168.1.2"; Metric = 100; }; }
+            { Destination = "192.168.1.2"; Metric = 100; }
           ];
         };
         networks."10-vrf2" = {
           matchConfig.Name = "vrf2";
           networkConfig.IPForward = "yes";
           routes = [
-            { routeConfig = { Destination = "192.168.2.3"; Metric = 100; }; }
+            { Destination = "192.168.2.3"; Metric = 100; }
           ];
         };
 
diff --git a/nixos/tests/systemd-networkd.nix b/nixos/tests/systemd-networkd.nix
index 6b241b93d5118..44ad713cd6dfc 100644
--- a/nixos/tests/systemd-networkd.nix
+++ b/nixos/tests/systemd-networkd.nix
@@ -23,13 +23,13 @@ let generateNodeConf = { lib, pkgs, config, privk, pubk, peerId, nodeId, ...}: {
               ListenPort = 51820;
               FirewallMark = 42;
             };
-            wireguardPeers = [ {wireguardPeerConfig={
+            wireguardPeers = [ {
               Endpoint = "192.168.1.${peerId}:51820";
               PublicKey = pubk;
               PresharedKeyFile = pkgs.writeText "psk.key" "yTL3sCOL33Wzi6yCnf9uZQl/Z8laSE+zwpqOHC4HhFU=";
               AllowedIPs = [ "10.0.0.${peerId}/32" ];
               PersistentKeepalive = 15;
-            };}];
+            } ];
           };
         };
         networks = {
@@ -41,8 +41,8 @@ let generateNodeConf = { lib, pkgs, config, privk, pubk, peerId, nodeId, ...}: {
             matchConfig = { Name = "wg0"; };
             address = [ "10.0.0.${nodeId}/32" ];
             routes = [
-              { routeConfig = { Gateway = "10.0.0.${nodeId}"; Destination = "10.0.0.0/24"; }; }
-              { routeConfig = { Gateway = "10.0.0.${nodeId}"; Destination = "10.0.0.0/24"; Table = "custom"; }; }
+              { Gateway = "10.0.0.${nodeId}"; Destination = "10.0.0.0/24"; }
+              { Gateway = "10.0.0.${nodeId}"; Destination = "10.0.0.0/24"; Table = "custom"; }
             ];
           };
           "30-eth1" = {
@@ -52,11 +52,11 @@ let generateNodeConf = { lib, pkgs, config, privk, pubk, peerId, nodeId, ...}: {
               "fe80::${nodeId}/64"
             ];
             routingPolicyRules = [
-              { routingPolicyRuleConfig = { Table = 10; IncomingInterface = "eth1"; Family = "both"; };}
-              { routingPolicyRuleConfig = { Table = 20; OutgoingInterface = "eth1"; };}
-              { routingPolicyRuleConfig = { Table = 30; From = "192.168.1.1"; To = "192.168.1.2"; SourcePort = 666 ; DestinationPort = 667; };}
-              { routingPolicyRuleConfig = { Table = 40; IPProtocol = "tcp"; InvertRule = true; };}
-              { routingPolicyRuleConfig = { Table = 50; IncomingInterface = "eth1"; Family = "ipv4"; };}
+              { Table = 10; IncomingInterface = "eth1"; Family = "both"; }
+              { Table = 20; OutgoingInterface = "eth1"; }
+              { Table = 30; From = "192.168.1.1"; To = "192.168.1.2"; SourcePort = 666 ; DestinationPort = 667; }
+              { Table = 40; IPProtocol = "tcp"; InvertRule = true; }
+              { Table = 50; IncomingInterface = "eth1"; Family = "ipv4"; }
             ];
           };
         };
diff --git a/nixos/tests/systemd-resolved.nix b/nixos/tests/systemd-resolved.nix
new file mode 100644
index 0000000000000..3eedc17f4b34f
--- /dev/null
+++ b/nixos/tests/systemd-resolved.nix
@@ -0,0 +1,75 @@
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
+  name = "systemd-resolved";
+  meta.maintainers = [ lib.maintainers.elvishjerricco ];
+
+  nodes.server = { lib, config, ... }: let
+    exampleZone = pkgs.writeTextDir "example.com.zone" ''
+      @ SOA ns.example.com. noc.example.com. 2019031301 86400 7200 3600000 172800
+      @       A       ${(lib.head config.networking.interfaces.eth1.ipv4.addresses).address}
+      @       AAAA    ${(lib.head config.networking.interfaces.eth1.ipv6.addresses).address}
+    '';
+  in {
+    networking.firewall.enable = false;
+    networking.useDHCP = false;
+
+    networking.interfaces.eth1.ipv6.addresses = lib.mkForce [
+      { address = "fd00::1"; prefixLength = 64; }
+    ];
+
+    services.knot = {
+      enable = true;
+      settings = {
+        server.listen = [
+          "0.0.0.0@53"
+          "::@53"
+        ];
+        template.default.storage = exampleZone;
+        zone."example.com".file = "example.com.zone";
+      };
+    };
+  };
+
+  nodes.client = { nodes, ... }: let
+    inherit (lib.head nodes.server.networking.interfaces.eth1.ipv4.addresses) address;
+  in {
+    networking.nameservers = [ address ];
+    networking.interfaces.eth1.ipv6.addresses = lib.mkForce [
+      { address = "fd00::2"; prefixLength = 64; }
+    ];
+    services.resolved.enable = true;
+    services.resolved.fallbackDns = [ ];
+    networking.useNetworkd = true;
+    networking.useDHCP = false;
+    systemd.network.networks."40-eth0".enable = false;
+
+    testing.initrdBackdoor = true;
+    boot.initrd = {
+      systemd.enable = true;
+      systemd.initrdBin = [ pkgs.iputils ];
+      network.enable = true;
+      services.resolved.enable = true;
+    };
+  };
+
+  testScript = { nodes, ... }: let
+    address4 = (lib.head nodes.server.networking.interfaces.eth1.ipv4.addresses).address;
+    address6 = (lib.head nodes.server.networking.interfaces.eth1.ipv6.addresses).address;
+  in ''
+    start_all()
+    server.wait_for_unit("multi-user.target")
+
+    def test_client():
+        query = client.succeed("resolvectl query example.com")
+        assert "${address4}" in query
+        assert "${address6}" in query
+        client.succeed("ping -4 -c 1 example.com")
+        client.succeed("ping -6 -c 1 example.com")
+
+    client.wait_for_unit("initrd.target")
+    test_client()
+    client.switch_root()
+
+    client.wait_for_unit("multi-user.target")
+    test_client()
+  '';
+})
diff --git a/nixos/tests/tayga.nix b/nixos/tests/tayga.nix
index 204391d1312f2..e3c57b7d58feb 100644
--- a/nixos/tests/tayga.nix
+++ b/nixos/tests/tayga.nix
@@ -55,7 +55,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
             "100.64.0.2/24"
           ];
           routes = [
-            { routeConfig = { Destination = "192.0.2.0/24"; Gateway = "100.64.0.1"; }; }
+            { Destination = "192.0.2.0/24"; Gateway = "100.64.0.1"; }
           ];
         };
       };
@@ -202,7 +202,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
             "2001:db8::2/64"
           ];
           routes = [
-            { routeConfig = { Destination = "64:ff9b::/96"; Gateway = "2001:db8::1"; }; }
+            { Destination = "64:ff9b::/96"; Gateway = "2001:db8::1"; }
           ];
         };
       };
diff --git a/nixos/tests/teleport.nix b/nixos/tests/teleport.nix
index 2fb347155759a..3621cce0599e1 100644
--- a/nixos/tests/teleport.nix
+++ b/nixos/tests/teleport.nix
@@ -9,7 +9,6 @@ with import ../lib/testing-python.nix { inherit system pkgs; };
 let
   packages = with pkgs; {
     "default" = teleport;
-    "13" = teleport_13;
     "14" = teleport_14;
   };
 
diff --git a/nixos/tests/tinywl.nix b/nixos/tests/tinywl.nix
index 9199866b57af7..2dc354812a75e 100644
--- a/nixos/tests/tinywl.nix
+++ b/nixos/tests/tinywl.nix
@@ -16,7 +16,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
         systemPackages = with pkgs; [ tinywl foot wayland-utils ];
       };
 
-      hardware.opengl.enable = true;
+      hardware.graphics.enable = true;
 
       # Automatically start TinyWL when logging in on tty1:
       programs.bash.loginShellInit = ''
diff --git a/nixos/tests/turbovnc-headless-server.nix b/nixos/tests/turbovnc-headless-server.nix
index a155f9f907b25..e4eff4f078447 100644
--- a/nixos/tests/turbovnc-headless-server.nix
+++ b/nixos/tests/turbovnc-headless-server.nix
@@ -24,11 +24,14 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
     };
 
     # So that we can ssh into the VM, see e.g.
-    # http://blog.patapon.info/nixos-local-vm/#accessing-the-vm-with-ssh
+    # https://nixos.org/manual/nixos/stable/#sec-nixos-test-port-forwarding
     services.openssh.enable = true;
-    services.openssh.settings.PermitRootLogin = "yes";
-    users.extraUsers.root.password = "";
     users.mutableUsers = false;
+    # `test-instrumentation.nix` already sets an empty root password.
+    # The following have to all be set to allow an empty SSH login password.
+    services.openssh.settings.PermitRootLogin = "yes";
+    services.openssh.settings.PermitEmptyPasswords = "yes";
+    security.pam.services.sshd.allowNullPassword = true; # the default `UsePam yes` makes this necessary
   };
 
   testScript = ''
@@ -124,7 +127,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
         machine.wait_until_succeeds("test -f /tmp/glxgears-should-fail.stderr")
         wait_until_terminated_or_succeeds(
             termination_check_shell_command="pidof glxgears",
-            success_check_shell_command="grep 'libGL error: failed to load driver: swrast' /tmp/glxgears-should-fail.stderr",
+            success_check_shell_command="grep 'MESA-LOADER: failed to open swrast' /tmp/glxgears-should-fail.stderr",
             get_detail_message_fn=lambda: "Contents of /tmp/glxgears-should-fail.stderr:\n"
             + machine.succeed("cat /tmp/glxgears-should-fail.stderr"),
         )
diff --git a/nixos/tests/vaultwarden.nix b/nixos/tests/vaultwarden.nix
index 28ff170e36107..baefa67dbf535 100644
--- a/nixos/tests/vaultwarden.nix
+++ b/nixos/tests/vaultwarden.nix
@@ -1,38 +1,94 @@
-{ system ? builtins.currentSystem
-, config ? { }
-, pkgs ? import ../.. { inherit system config; }
-}:
-
 # These tests will:
 #  * Set up a vaultwarden server
-#  * Have Firefox use the web vault to create an account, log in, and save a password to the valut
+#  * Have Firefox use the web vault to create an account, log in, and save a password to the vault
 #  * Have the bw cli log in and read that password from the vault
 #
 # Note that Firefox must be on the same machine as the server for WebCrypto APIs to be available (or HTTPS must be configured)
 #
 # The same tests should work without modification on the official bitwarden server, if we ever package that.
 
-with import ../lib/testing-python.nix { inherit system pkgs; };
-with pkgs.lib;
 let
-  backends = [ "sqlite" "mysql" "postgresql" ];
-
-  dbPassword = "please_dont_hack";
-
-  userEmail = "meow@example.com";
-  userPassword = "also_super_secret_ZJWpBKZi668QGt"; # Must be complex to avoid interstitial warning on the signup page
-
-  storedPassword = "seeeecret";
+  makeVaultwardenTest = name: {
+    backend ? name,
+    withClient ? true,
+    testScript ? null,
+  }: import ./make-test-python.nix ({ lib, pkgs, ...}: let
+    dbPassword = "please_dont_hack";
+    userEmail = "meow@example.com";
+    userPassword = "also_super_secret_ZJWpBKZi668QGt"; # Must be complex to avoid interstitial warning on the signup page
+    storedPassword = "seeeecret";
+
+    testRunner = pkgs.writers.writePython3Bin "test-runner" {
+      libraries = [ pkgs.python3Packages.selenium ];
+      flakeIgnore = [  "E501" ];
+    } ''
+
+      from selenium.webdriver.common.by import By
+      from selenium.webdriver import Firefox
+      from selenium.webdriver.firefox.options import Options
+      from selenium.webdriver.support.ui import WebDriverWait
+      from selenium.webdriver.support import expected_conditions as EC
+
+      options = Options()
+      options.add_argument('--headless')
+      driver = Firefox(options=options)
+
+      driver.implicitly_wait(20)
+      driver.get('http://localhost:8080/#/register')
+
+      wait = WebDriverWait(driver, 10)
+
+      wait.until(EC.title_contains("Vaultwarden Web"))
+
+      driver.find_element(By.CSS_SELECTOR, 'input#register-form_input_email').send_keys(
+          '${userEmail}'
+      )
+      driver.find_element(By.CSS_SELECTOR, 'input#register-form_input_name').send_keys(
+          'A Cat'
+      )
+      driver.find_element(By.CSS_SELECTOR, 'input#register-form_input_master-password').send_keys(
+          '${userPassword}'
+      )
+      driver.find_element(By.CSS_SELECTOR, 'input#register-form_input_confirm-master-password').send_keys(
+          '${userPassword}'
+      )
+      if driver.find_element(By.CSS_SELECTOR, 'input#checkForBreaches').is_selected():
+          driver.find_element(By.CSS_SELECTOR, 'input#checkForBreaches').click()
+
+      driver.find_element(By.XPATH, "//button[contains(., 'Create account')]").click()
+
+      wait.until_not(EC.title_contains("Create account"))
+
+      driver.find_element(By.XPATH, "//button[contains(., 'Continue')]").click()
+
+      driver.find_element(By.CSS_SELECTOR, 'input#login_input_master-password').send_keys(
+          '${userPassword}'
+      )
+      driver.find_element(By.XPATH, "//button[contains(., 'Log in')]").click()
+
+      wait.until(EC.title_contains("Vaults"))
+
+      driver.find_element(By.XPATH, "//button[contains(., 'New item')]").click()
+
+      driver.find_element(By.CSS_SELECTOR, 'input#name').send_keys(
+          'secrets'
+      )
+      driver.find_element(By.CSS_SELECTOR, 'input#loginPassword').send_keys(
+          '${storedPassword}'
+      )
+
+      driver.find_element(By.XPATH, "//button[contains(., 'Save')]").click()
+    '';
+  in {
+    inherit name;
 
-  makeVaultwardenTest = backend: makeTest {
-    name = "vaultwarden-${backend}";
     meta = {
-      maintainers = with pkgs.lib.maintainers; [ jjjollyjim ];
+      maintainers = with pkgs.lib.maintainers; [ dotlambda SuperSandro2000 ];
     };
 
     nodes = {
-      server = { pkgs, ... }:
-        let backendConfig = {
+      server = { pkgs, ... }: lib.mkMerge [
+        {
           mysql = {
             services.mysql = {
               enable = true;
@@ -53,119 +109,53 @@ let
           postgresql = {
             services.postgresql = {
               enable = true;
-              initialScript = pkgs.writeText "postgresql-init.sql" ''
-                CREATE USER bitwardenuser WITH PASSWORD '${dbPassword}';
-                CREATE DATABASE bitwarden WITH OWNER bitwardenuser;
-              '';
+              ensureDatabases = [ "vaultwarden" ];
+              ensureUsers = [{
+                name = "vaultwarden";
+                ensureDBOwnership = true;
+              }];
             };
 
-            services.vaultwarden.config.databaseUrl = "postgresql://bitwardenuser:${dbPassword}@localhost/bitwarden";
+            services.vaultwarden.config.databaseUrl = "postgresql:///vaultwarden?host=/run/postgresql";
 
             systemd.services.vaultwarden.after = [ "postgresql.service" ];
           };
 
-          sqlite = { };
-        };
-        in
-        mkMerge [
-          backendConfig.${backend}
-          {
-            services.vaultwarden = {
-              enable = true;
-              dbBackend = backend;
-              config = {
-                rocketAddress = "0.0.0.0";
-                rocketPort = 80;
-              };
-            };
+          sqlite = {
+            services.vaultwarden.backupDir = "/var/lib/vaultwarden/backups";
+
+            environment.systemPackages = [ pkgs.sqlite ];
+          };
+        }.${backend}
 
-            networking.firewall.allowedTCPPorts = [ 80 ];
-
-            environment.systemPackages =
-              let
-                testRunner = pkgs.writers.writePython3Bin "test-runner"
-                  {
-                    libraries = [ pkgs.python3Packages.selenium ];
-                    flakeIgnore = [
-                      "E501"
-                    ];
-                  } ''
-
-                  from selenium.webdriver.common.by import By
-                  from selenium.webdriver import Firefox
-                  from selenium.webdriver.firefox.options import Options
-                  from selenium.webdriver.support.ui import WebDriverWait
-                  from selenium.webdriver.support import expected_conditions as EC
-
-                  options = Options()
-                  options.add_argument('--headless')
-                  driver = Firefox(options=options)
-
-                  driver.implicitly_wait(20)
-                  driver.get('http://localhost/#/register')
-
-                  wait = WebDriverWait(driver, 10)
-
-                  wait.until(EC.title_contains("Vaultwarden Web"))
-
-                  driver.find_element(By.CSS_SELECTOR, 'input#register-form_input_email').send_keys(
-                      '${userEmail}'
-                  )
-                  driver.find_element(By.CSS_SELECTOR, 'input#register-form_input_name').send_keys(
-                      'A Cat'
-                  )
-                  driver.find_element(By.CSS_SELECTOR, 'input#register-form_input_master-password').send_keys(
-                      '${userPassword}'
-                  )
-                  driver.find_element(By.CSS_SELECTOR, 'input#register-form_input_confirm-master-password').send_keys(
-                      '${userPassword}'
-                  )
-                  if driver.find_element(By.CSS_SELECTOR, 'input#checkForBreaches').is_selected():
-                      driver.find_element(By.CSS_SELECTOR, 'input#checkForBreaches').click()
-
-                  driver.find_element(By.XPATH, "//button[contains(., 'Create account')]").click()
-
-                  wait.until_not(EC.title_contains("Create account"))
-
-                  driver.find_element(By.XPATH, "//button[contains(., 'Continue')]").click()
-
-                  driver.find_element(By.CSS_SELECTOR, 'input#login_input_master-password').send_keys(
-                      '${userPassword}'
-                  )
-                  driver.find_element(By.XPATH, "//button[contains(., 'Log in')]").click()
-
-                  wait.until(EC.title_contains("Vaults"))
-
-                  driver.find_element(By.XPATH, "//button[contains(., 'New item')]").click()
-
-                  driver.find_element(By.CSS_SELECTOR, 'input#name').send_keys(
-                      'secrets'
-                  )
-                  driver.find_element(By.CSS_SELECTOR, 'input#loginPassword').send_keys(
-                      '${storedPassword}'
-                  )
-
-                  driver.find_element(By.XPATH, "//button[contains(., 'Save')]").click()
-                '';
-              in
-              [ pkgs.firefox-unwrapped pkgs.geckodriver testRunner ];
-
-          }
-        ];
-
-      client = { pkgs, ... }:
         {
-          environment.systemPackages = [ pkgs.bitwarden-cli ];
-        };
+          services.vaultwarden = {
+            enable = true;
+            dbBackend = backend;
+            config = {
+              rocketAddress = "0.0.0.0";
+              rocketPort = 8080;
+            };
+          };
+
+          networking.firewall.allowedTCPPorts = [ 8080 ];
+
+          environment.systemPackages = [ pkgs.firefox-unwrapped pkgs.geckodriver testRunner ];
+        }
+      ];
+    } // lib.optionalAttrs withClient {
+      client = { pkgs, ... }: {
+        environment.systemPackages = [ pkgs.bitwarden-cli ];
+      };
     };
 
-    testScript = ''
+    testScript = if testScript != null then testScript else ''
       start_all()
       server.wait_for_unit("vaultwarden.service")
-      server.wait_for_open_port(80)
+      server.wait_for_open_port(8080)
 
       with subtest("configure the cli"):
-          client.succeed("bw --nointeraction config server http://server")
+          client.succeed("bw --nointeraction config server http://server:8080")
 
       with subtest("can't login to nonexistent account"):
           client.fail(
@@ -184,15 +174,40 @@ let
           client.succeed(f"bw --nointeraction --raw --session {key} sync -f")
 
       with subtest("get the password with the cli"):
-          password = client.succeed(
-              f"bw --nointeraction --raw --session {key} list items | ${pkgs.jq}/bin/jq -r .[].login.password"
+          password = client.wait_until_succeeds(
+              f"bw --nointeraction --raw --session {key} list items | ${pkgs.jq}/bin/jq -r .[].login.password",
+              timeout=60
           )
           assert password.strip() == "${storedPassword}"
+
+      with subtest("Check systemd unit hardening"):
+          server.log(server.succeed("systemd-analyze security vaultwarden.service | grep -v ✓"))
     '';
-  };
+  });
 in
-builtins.listToAttrs (
-  map
-    (backend: { name = backend; value = makeVaultwardenTest backend; })
-    backends
-)
+builtins.mapAttrs (k: v: makeVaultwardenTest k v) {
+  mysql = {};
+  postgresql = {};
+  sqlite = {};
+  sqlite-backup = {
+    backend = "sqlite";
+    withClient = false;
+
+    testScript = ''
+      start_all()
+      server.wait_for_unit("vaultwarden.service")
+      server.wait_for_open_port(8080)
+
+      with subtest("Set up vaultwarden"):
+          server.succeed("PYTHONUNBUFFERED=1 test-runner | systemd-cat -t test-runner")
+
+      with subtest("Run the backup script"):
+          server.start_job("backup-vaultwarden.service")
+
+      with subtest("Check that backup exists"):
+          server.succeed('[ -d "/var/lib/vaultwarden/backups" ]')
+          server.succeed('[ -f "/var/lib/vaultwarden/backups/db.sqlite3" ]')
+          server.succeed('[ -d "/var/lib/vaultwarden/backups/attachments" ]')
+    '';
+  };
+}
diff --git a/nixos/tests/vector/default.nix b/nixos/tests/vector/default.nix
index 990b067e81774..dc3747da74216 100644
--- a/nixos/tests/vector/default.nix
+++ b/nixos/tests/vector/default.nix
@@ -8,4 +8,5 @@
   api = import ./api.nix { inherit system pkgs; };
   dnstap = import ./dnstap.nix { inherit system pkgs; };
   nginx-clickhouse = import ./nginx-clickhouse.nix { inherit system pkgs; };
+  syslog-quickwit = import ./syslog-quickwit.nix { inherit system pkgs; };
 }
diff --git a/nixos/tests/vector/syslog-quickwit.nix b/nixos/tests/vector/syslog-quickwit.nix
new file mode 100644
index 0000000000000..89c46d42ee75c
--- /dev/null
+++ b/nixos/tests/vector/syslog-quickwit.nix
@@ -0,0 +1,155 @@
+import ../make-test-python.nix ({ lib, pkgs, ... }:
+
+# Based on https://quickwit.io/docs/log-management/send-logs/using-vector
+
+{
+  name = "vector-syslog-quickwit";
+  meta.maintainers = [ pkgs.lib.maintainers.happysalada ];
+
+  nodes = {
+    quickwit = { config, pkgs, ... }: {
+      environment.systemPackages = [ pkgs.jq ];
+
+      networking.firewall.allowedTCPPorts = [ 7280 ];
+
+      services.quickwit = {
+        enable = true;
+        settings = {
+          listen_address = "::";
+        };
+      };
+    };
+
+    syslog = { config, pkgs, ... }: {
+      services.vector = {
+        enable = true;
+
+        settings = {
+          sources = {
+            generate_syslog = {
+              type = "demo_logs";
+              format = "syslog";
+              interval = 0.5;
+            };
+          };
+
+          transforms = {
+            remap_syslog = {
+              inputs = ["generate_syslog"];
+              type = "remap";
+              source = ''
+                structured = parse_syslog!(.message)
+                .timestamp_nanos = to_unix_timestamp!(structured.timestamp, unit: "nanoseconds")
+                .body = structured
+                .service_name = structured.appname
+                .resource_attributes.source_type = .source_type
+                .resource_attributes.host.hostname = structured.hostname
+                .resource_attributes.service.name = structured.appname
+                .attributes.syslog.procid = structured.procid
+                .attributes.syslog.facility = structured.facility
+                .attributes.syslog.version = structured.version
+                .severity_text = if includes(["emerg", "err", "crit", "alert"], structured.severity) {
+                  "ERROR"
+                } else if structured.severity == "warning" {
+                  "WARN"
+                } else if structured.severity == "debug" {
+                  "DEBUG"
+                } else if includes(["info", "notice"], structured.severity) {
+                  "INFO"
+                } else {
+                 structured.severity
+                }
+                .scope_name = structured.msgid
+                del(.message)
+                del(.timestamp)
+                del(.service)
+                del(.source_type)
+              '';
+            };
+          };
+
+          sinks = {
+            #emit_syslog = {
+            #  inputs = ["remap_syslog"];
+            #  type = "console";
+            #  encoding.codec = "json";
+            #};
+            quickwit_logs = {
+              type = "http";
+              method = "post";
+              inputs = [ "remap_syslog" ];
+              encoding.codec = "json";
+              framing.method = "newline_delimited";
+              uri = "http://quickwit:7280/api/v1/otel-logs-v0_7/ingest";
+            };
+          };
+        };
+      };
+    };
+  };
+
+  testScript =
+  let
+    aggregationQuery = pkgs.writeText "aggregation-query.json" ''
+      {
+        "query": "*",
+        "max_hits": 0,
+        "aggs": {
+          "count_per_minute": {
+            "histogram": {
+                "field": "timestamp_nanos",
+                "interval": 60000000
+            },
+            "aggs": {
+              "severity_text_count": {
+                "terms": {
+                  "field": "severity_text"
+                }
+              }
+            }
+          }
+        }
+      }
+    '';
+  in
+  ''
+    quickwit.wait_for_unit("quickwit")
+    quickwit.wait_for_open_port(7280)
+    quickwit.wait_for_open_port(7281)
+
+    quickwit.wait_until_succeeds(
+      "journalctl -o cat -u quickwit.service | grep 'transitioned to ready state'"
+    )
+
+    syslog.wait_for_unit("vector")
+    syslog.wait_until_succeeds(
+      "journalctl -o cat -u vector.service | grep 'Vector has started'"
+    )
+
+    quickwit.wait_until_succeeds(
+      "journalctl -o cat -u quickwit.service | grep 'publish-new-splits'"
+    )
+
+    # Wait for logs to be generated
+    # Test below aggregates by the minute
+    syslog.sleep(60 * 2)
+
+    quickwit.wait_until_succeeds(
+      "curl -sSf -XGET http://127.0.0.1:7280/api/v1/otel-logs-v0_7/search?query=severity_text:ERROR |"
+      + " jq '.num_hits' | grep -v '0'"
+    )
+
+    quickwit.wait_until_succeeds(
+      "journalctl -o cat -u quickwit.service | grep 'SearchRequest'"
+    )
+
+    quickwit.wait_until_succeeds(
+      "curl -sSf -XPOST -H 'Content-Type: application/json' http://127.0.0.1:7280/api/v1/otel-logs-v0_7/search --data @${aggregationQuery} |"
+      + " jq '.num_hits' | grep -v '0'"
+    )
+
+    quickwit.wait_until_succeeds(
+      "journalctl -o cat -u quickwit.service | grep 'count_per_minute'"
+    )
+  '';
+})
diff --git a/nixos/tests/web-apps/nextjs-ollama-llm-ui.nix b/nixos/tests/web-apps/nextjs-ollama-llm-ui.nix
new file mode 100644
index 0000000000000..3bb9d1e62aefe
--- /dev/null
+++ b/nixos/tests/web-apps/nextjs-ollama-llm-ui.nix
@@ -0,0 +1,22 @@
+{ lib, ... }:
+
+{
+  name = "nextjs-ollama-llm-ui";
+  meta.maintainers = with lib.maintainers; [ malteneuss ];
+
+  nodes.machine =
+    { pkgs, ... }:
+    {
+      services.nextjs-ollama-llm-ui = {
+        enable = true;
+        port = 8080;
+      };
+    };
+
+  testScript = ''
+    # Ensure the service is started and reachable
+    machine.wait_for_unit("nextjs-ollama-llm-ui.service")
+    machine.wait_for_open_port(8080)
+    machine.succeed("curl --fail http://127.0.0.1:8080")
+  '';
+}
diff --git a/nixos/tests/web-servers/stargazer.nix b/nixos/tests/web-servers/stargazer.nix
index f56d1b8c94545..52bc93af17194 100644
--- a/nixos/tests/web-servers/stargazer.nix
+++ b/nixos/tests/web-servers/stargazer.nix
@@ -1,9 +1,9 @@
 { pkgs, lib, ... }:
 let
-  test_script = pkgs.stdenv.mkDerivation rec {
+  test_script = pkgs.stdenv.mkDerivation {
     pname = "stargazer-test-script";
     inherit (pkgs.stargazer) version src;
-    buildInputs = with pkgs; [ (python3.withPackages (ps: with ps; [ cryptography ])) ];
+    buildInputs = with pkgs; [ (python3.withPackages (ps: with ps; [ cryptography urllib3 ])) ];
     dontBuild = true;
     doCheck = false;
     installPhase = ''
@@ -11,7 +11,7 @@ let
       cp scripts/gemini-diagnostics $out/bin/test
     '';
   };
-  test_env = pkgs.stdenv.mkDerivation rec {
+  test_env = pkgs.stdenv.mkDerivation {
     pname = "stargazer-test-env";
     inherit (pkgs.stargazer) version src;
     buildPhase = ''
@@ -23,7 +23,7 @@ let
       cp -r * $out/
     '';
   };
-  scgi_server = pkgs.stdenv.mkDerivation rec {
+  scgi_server = pkgs.stdenv.mkDerivation {
     pname = "stargazer-test-scgi-server";
     inherit (pkgs.stargazer) version src;
     buildInputs = with pkgs; [ python3 ];
@@ -100,7 +100,12 @@ in
           }
           {
             route = "localhost:/no-exist";
-            root = "./does_not_exist";
+            root = "${test_env}/does_not_exist";
+          }
+          {
+            route = "localhost=/rss.xml";
+            root = "${test_env}/test_data/test_site";
+            mime-override = "application/atom+xml";
           }
         ];
       };
diff --git a/nixos/tests/ydotool.nix b/nixos/tests/ydotool.nix
index 818ac6f2d50de..45e3d27adeb49 100644
--- a/nixos/tests/ydotool.nix
+++ b/nixos/tests/ydotool.nix
@@ -1,115 +1,184 @@
-import ./make-test-python.nix (
-  { pkgs, lib, ... }:
-  let
-    textInput = "This works.";
-    inputBoxText = "Enter input";
-    inputBox = pkgs.writeShellScript "zenity-input" ''
-      ${lib.getExe pkgs.gnome.zenity} --entry --text '${inputBoxText}:' > /tmp/output &
-    '';
-  in
-  {
-    name = "ydotool";
-
-    meta = {
-      maintainers = with lib.maintainers; [
-        OPNA2608
-        quantenzitrone
-      ];
-    };
+{
+  system ? builtins.currentSystem,
+  config ? { },
+  pkgs ? import ../.. { inherit system config; },
+  lib ? pkgs.lib,
+}:
+let
+  makeTest = import ./make-test-python.nix;
+  textInput = "This works.";
+  inputBoxText = "Enter input";
+  inputBox = pkgs.writeShellScript "zenity-input" ''
+    ${lib.getExe pkgs.gnome.zenity} --entry --text '${inputBoxText}:' > /tmp/output &
+  '';
+  asUser = ''
+    def as_user(cmd: str):
+        """
+        Return a shell command for running a shell command as a specific user.
+        """
+        return f"sudo -u alice -i {cmd}"
+  '';
+in
+{
+  headless = makeTest {
+    name = "headless";
 
-    nodes = {
-      headless =
-        { config, ... }:
-        {
-          imports = [ ./common/user-account.nix ];
+    enableOCR = true;
 
-          users.users.alice.extraGroups = [ "ydotool" ];
+    nodes.machine = {
+      imports = [ ./common/user-account.nix ];
 
-          programs.ydotool.enable = true;
+      users.users.alice.extraGroups = [ "ydotool" ];
 
-          services.getty.autologinUser = "alice";
-        };
+      programs.ydotool.enable = true;
 
-      x11 =
-        { config, ... }:
-        {
-          imports = [
-            ./common/user-account.nix
-            ./common/auto.nix
-            ./common/x11.nix
-          ];
+      services.getty.autologinUser = "alice";
+    };
 
-          users.users.alice.extraGroups = [ "ydotool" ];
+    testScript =
+      asUser
+      + ''
+        start_all()
 
-          programs.ydotool.enable = true;
+        machine.wait_for_unit("multi-user.target")
+        machine.wait_for_text("alice")
+        machine.succeed(as_user("ydotool type 'echo ${textInput} > /tmp/output'")) # text input
+        machine.succeed(as_user("ydotool key 28:1 28:0")) # text input
+        machine.screenshot("headless_input")
+        machine.wait_for_file("/tmp/output")
+        machine.wait_until_succeeds("grep '${textInput}' /tmp/output") # text input
+      '';
 
-          test-support.displayManager.auto = {
-            enable = true;
-            user = "alice";
-          };
+    meta.maintainers = with lib.maintainers; [
+      OPNA2608
+      quantenzitrone
+    ];
+  };
 
-          services.xserver.windowManager.dwm.enable = true;
-          services.displayManager.defaultSession = lib.mkForce "none+dwm";
-        };
+  x11 = makeTest {
+    name = "x11";
 
-      wayland =
-        { config, ... }:
-        {
-          imports = [ ./common/user-account.nix ];
+    enableOCR = true;
 
-          services.cage = {
-            enable = true;
-            user = "alice";
-          };
+    nodes.machine = {
+      imports = [
+        ./common/user-account.nix
+        ./common/auto.nix
+        ./common/x11.nix
+      ];
 
-          programs.ydotool.enable = true;
+      users.users.alice.extraGroups = [ "ydotool" ];
 
-          services.cage.program = inputBox;
-        };
+      programs.ydotool.enable = true;
+
+      test-support.displayManager.auto = {
+        enable = true;
+        user = "alice";
+      };
+
+      services.xserver.windowManager.dwm.enable = true;
+      services.displayManager.defaultSession = lib.mkForce "none+dwm";
     };
 
+    testScript =
+      asUser
+      + ''
+        start_all()
+
+        machine.wait_for_x()
+        machine.execute(as_user("${inputBox}"))
+        machine.wait_for_text("${inputBoxText}")
+        machine.succeed(as_user("ydotool type '${textInput}'")) # text input
+        machine.screenshot("x11_input")
+        machine.succeed(as_user("ydotool mousemove -a 400 110")) # mouse input
+        machine.succeed(as_user("ydotool click 0xC0")) # mouse input
+        machine.wait_for_file("/tmp/output")
+        machine.wait_until_succeeds("grep '${textInput}' /tmp/output") # text input
+      '';
+
+    meta.maintainers = with lib.maintainers; [
+      OPNA2608
+      quantenzitrone
+    ];
+  };
+
+  wayland = makeTest {
+    name = "wayland";
+
     enableOCR = true;
 
-    testScript =
-      { nodes, ... }:
-      ''
-        def as_user(cmd: str):
-          """
-          Return a shell command for running a shell command as a specific user.
-          """
-          return f"sudo -u alice -i {cmd}"
+    nodes.machine = {
+      imports = [ ./common/user-account.nix ];
+
+      services.cage = {
+        enable = true;
+        user = "alice";
+      };
+
+      programs.ydotool.enable = true;
+
+      services.cage.program = inputBox;
+    };
+
+    testScript = ''
+      start_all()
+
+      machine.wait_for_unit("graphical.target")
+      machine.wait_for_text("${inputBoxText}")
+      machine.succeed("ydotool type '${textInput}'") # text input
+      machine.screenshot("wayland_input")
+      machine.succeed("ydotool mousemove -a 100 100") # mouse input
+      machine.succeed("ydotool click 0xC0") # mouse input
+      machine.wait_for_file("/tmp/output")
+      machine.wait_until_succeeds("grep '${textInput}' /tmp/output") # text input
+    '';
+
+    meta.maintainers = with lib.maintainers; [
+      OPNA2608
+      quantenzitrone
+    ];
+  };
+
+  customGroup =
+    let
+      name = "customGroup";
+      nodeName = "${name}Node";
+      insideGroupUsername = "ydotool-user";
+      outsideGroupUsername = "other-user";
+      groupName = "custom-group";
+    in
+    makeTest {
+      inherit name;
+
+      nodes."${nodeName}" = {
+        programs.ydotool = {
+          enable = true;
+          group = groupName;
+        };
+
+        users.users = {
+          "${insideGroupUsername}" = {
+            isNormalUser = true;
+            extraGroups = [ groupName ];
+          };
+          "${outsideGroupUsername}".isNormalUser = true;
+        };
+      };
 
+      testScript = ''
         start_all()
 
-        # Headless
-        headless.wait_for_unit("multi-user.target")
-        headless.wait_for_text("alice")
-        headless.succeed(as_user("ydotool type 'echo ${textInput} > /tmp/output'")) # text input
-        headless.succeed(as_user("ydotool key 28:1 28:0")) # text input
-        headless.screenshot("headless_input")
-        headless.wait_for_file("/tmp/output")
-        headless.wait_until_succeeds("grep '${textInput}' /tmp/output") # text input
-
-        # X11
-        x11.wait_for_x()
-        x11.execute(as_user("${inputBox}"))
-        x11.wait_for_text("${inputBoxText}")
-        x11.succeed(as_user("ydotool type '${textInput}'")) # text input
-        x11.screenshot("x11_input")
-        x11.succeed(as_user("ydotool mousemove -a 400 110")) # mouse input
-        x11.succeed(as_user("ydotool click 0xC0")) # mouse input
-        x11.wait_for_file("/tmp/output")
-        x11.wait_until_succeeds("grep '${textInput}' /tmp/output") # text input
-
-        # Wayland
-        wayland.wait_for_unit("graphical.target")
-        wayland.wait_for_text("${inputBoxText}")
-        wayland.succeed("ydotool type '${textInput}'") # text input
-        wayland.screenshot("wayland_input")
-        wayland.succeed("ydotool mousemove -a 100 100") # mouse input
-        wayland.succeed("ydotool click 0xC0") # mouse input
-        wayland.wait_for_file("/tmp/output")
-        wayland.wait_until_succeeds("grep '${textInput}' /tmp/output") # text input
+        # Wait for service to start
+        ${nodeName}.wait_for_unit("multi-user.target")
+        ${nodeName}.wait_for_unit("ydotoold.service")
+
+        # Verify that user with the configured group can use the service
+        ${nodeName}.succeed("sudo --login --user=${insideGroupUsername} ydotool type 'Hello, World!'")
+
+        # Verify that user without the configured group can't use the service
+        ${nodeName}.fail("sudo --login --user=${outsideGroupUsername} ydotool type 'Hello, World!'")
       '';
-  }
-)
+
+      meta.maintainers = with lib.maintainers; [ l0b0 ];
+    };
+}
diff --git a/pkgs/README.md b/pkgs/README.md
index fd958702fb493..7c99f3f4418f2 100644
--- a/pkgs/README.md
+++ b/pkgs/README.md
@@ -32,6 +32,7 @@ Before adding a new package, please consider the following questions:
 * Does the project have a clear license statement? Remember that software is unfree by default (all rights reserved), and merely providing access to the source code does not imply its redistribution. In case of doubt, ask upstream.
 * How realistic is it that it will be used by other people? It's good that nixpkgs caters to various niches, but if it's a niche of 5 people it's probably too small.
 * Are you willing to maintain the package? You should care enough about the package to be willing to keep it up and running for at least one complete Nixpkgs' release life-cycle.
+  * In case you are not able to maintain the package you wrote, you can seek someone to fill that role, effectively adopting the package.
 
 If any of these questions' answer is no, then you should probably not add the package.
 
@@ -374,6 +375,7 @@ All versions of a package _must_ be included in `all-packages.nix` to make sure
 * `meta.description` must:
   * Be short, just one sentence.
   * Be capitalized.
+  * Not start with the definite or an indefinite article.
   * Not start with the package name.
     * More generally, it should not refer to the package name.
   * Not end with a period (or any punctuation for that matter).
@@ -459,7 +461,10 @@ Examples going from bad to best practices:
 
 ## Patches
 
-Patches available online should be retrieved using `fetchpatch`.
+Sometimes, changes are needed to the source to allow building a derivation in nixpkgs, or to get earlier access to an upstream fix or improvement.
+When using the `patches` parameter to `mkDerivation`, make sure the patch name clearly describes the reason for the patch, or add a comment.
+
+Patches already merged upstream or published elsewhere should be retrieved using `fetchpatch`.
 
 ```nix
 {
@@ -473,7 +478,9 @@ Patches available online should be retrieved using `fetchpatch`.
 }
 ```
 
-Otherwise, you can add a `.patch` file to the `nixpkgs` repository. In the interest of keeping our maintenance burden to a minimum, only patches that are unique to `nixpkgs` should be added in this way.
+Otherwise, you can add a `.patch` file to the `nixpkgs` repository.
+In the interest of keeping our maintenance burden and the size of nixpkgs to a minimum, only do this for patches that are unique to `nixpkgs` or that have been proposed upstream but are not merged yet, cannot be easily fetched or have a high chance to disappear in the future due to unstable or unreliable URLs.
+The latter avoids link rot when the upstream abandons, squashes or rebases their change, in which case the commit may get garbage-collected.
 
 If a patch is available online but does not cleanly apply, it can be modified in some fixed ways by using additional optional arguments for `fetchpatch`. Check [the `fetchpatch` reference](https://nixos.org/manual/nixpkgs/unstable/#fetchpatch) for details.
 
@@ -593,6 +600,34 @@ buildGoModule rec {
 }
 ```
 
+Any derivaton can be specified as a test, even if it's in a different file.
+Such a derivaton that implements a test can depend on the package under test, even in the presence of `overrideAttrs`.
+
+In the following example, `(my-package.overrideAttrs f).passthru.tests` will work as expected, as long as the definition of `tests` does not rely on the original `my-package` or overrides all occurrences of `my-package`:
+
+```nix
+# my-package/default.nix
+{ stdenv, callPackage }:
+stdenv.mkDerivation (finalAttrs: {
+  # ...
+  passthru.tests.example = callPackage ./example.nix { my-package = finalAttrs.finalPackage; };
+})
+```
+
+```nix
+# my-package/example.nix
+{ runCommand, lib, my-package, ... }:
+runCommand "my-package-test" {
+  nativeBuildInputs = [ my-package ];
+  src = lib.sources.sourcesByRegex ./. [ ".*.in" ".*.expected" ];
+} ''
+  my-package --help
+  my-package <example.in >example.actual
+  diff -U3 --color=auto example.expected example.actual
+  mkdir $out
+''
+```
+
 ### Writing larger package tests
 [larger-package-tests]: #writing-larger-package-tests
 
@@ -678,6 +713,152 @@ stdenv.mkDerivation {
 }
 ```
 
+## Automatic package updates
+[automatic-package-updates]: #automatic-package-updates
+
+Nixpkgs periodically tries to update all packages that have a `passthru.updateScript` attribute.
+
+> [!Note]
+> A common pattern is to use the [`nix-update-script`](../pkgs/common-updater/nix-update.nix) attribute provided in Nixpkgs, which runs [`nix-update`](https://github.com/Mic92/nix-update):
+>
+> ```nix
+> { stdenv, nix-update-script }:
+> stdenv.mkDerivation {
+>   # ...
+>   passthru.updateScript = nix-update-script { };
+> }
+> ```
+>
+> For simple packages, this is often enough, and will ensure that the package is updated automatically by [`nixpkgs-update`](https://ryantm.github.io/nixpkgs-update) when a new version is released.
+> The [update bot](https://nix-community.org/update-bot) runs periodically to attempt to automatically update packages, and will run `passthru.updateScript` if set.
+> While not strictly necessary if the project is listed on [Repology](https://repology.org), using `nix-update-script` allows the package to update via many more sources (e.g. GitHub releases).
+
+The `passthru.updateScript` attribute can contain one of the following:
+
+- an executable file, either on the file system:
+
+  ```nix
+  { stdenv }:
+  stdenv.mkDerivation {
+    # ...
+    passthru.updateScript = ./update.sh;
+  }
+  ```
+
+  or inside the expression itself:
+
+  ```nix
+  { stdenv, writeScript }:
+  stdenv.mkDerivation {
+    # ...
+    passthru.updateScript = writeScript "update-zoom-us" ''
+      #!/usr/bin/env nix-shell
+      #!nix-shell -i bash -p curl pcre2 common-updater-scripts
+
+      set -eu -o pipefail
+
+      version="$(curl -sI https://zoom.us/client/latest/zoom_x86_64.tar.xz | grep -Fi 'Location:' | pcre2grep -o1 '/(([0-9]\.?)+)/')"
+      update-source-version zoom-us "$version"
+    '';
+  }
+  ```
+
+- a list, a script file followed by arguments to be passed to it:
+
+  ```nix
+  { stdenv }:
+  stdenv.mkDerivation {
+    # ...
+    passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ];
+  }
+  ```
+
+- an attribute set containing:
+  - `command`
+
+    A string or list in the [format expected by `passthru.updateScript`][automatic-package-updates]
+
+  - `attrPath` (optional)
+
+    A string containing the canonical attribute path for the package.
+
+    If present, it will be passed to the update script instead of the attribute path on which the package was discovered during Nixpkgs traversal.
+
+  - `supportedFeatures` (optional)
+
+    A list of the [extra features the script supports][supported-features].
+
+    ```nix
+    { stdenv }:
+    stdenv.mkDerivation rec {
+      pname = "my-package";
+      # ...
+      passthru.updateScript = {
+        command = [ ../../update.sh pname ];
+        attrPath = pname;
+        supportedFeatures = [ /* ... */ ];
+      };
+    }
+    ```
+
+### How are update scripts executed?
+
+Update scripts are to be invoked by the [automatic package update script](../maintainers/scripts/update.nix).
+You can run `nix-shell maintainers/scripts/update.nix` in the root of Nixpkgs repository for information on how to use it.
+`update.nix` offers several modes for selecting packages to update, and it will execute update scripts for all matched packages that have an `updateScript` attribute.
+
+Each update script will be passed the following environment variables:
+
+- [`UPDATE_NIX_NAME`] – content of the `name` attribute of the updated package
+- [`UPDATE_NIX_PNAME`] – content of the `pname` attribute of the updated package
+- [`UPDATE_NIX_OLD_VERSION`] – content of the `version` attribute of the updated package
+- [`UPDATE_NIX_ATTR_PATH`] – attribute path the `update.nix` discovered the package on (or the package's specified `attrPath` when available). Example: `pantheon.elementary-terminal`
+
+> [!Note]
+> An update script will be usually run from the root of the Nixpkgs repository, but you should not rely on that.
+> Also note that `update.nix` executes update scripts in parallel by default, so you should avoid running `git commit` or any other commands that cannot handle that.
+
+While update scripts should not create commits themselves, `update.nix` supports automatically creating commits when running it with `--argstr commit true`.
+If you need to customize commit message, you can have the update script implement the `commit` feature.
+
+### Supported features
+[update-script-supported-features]: #supported-features
+
+- `commit`
+
+  This feature allows update scripts to *ask* `update.nix` to create Git commits.
+
+  When support of this feature is declared, whenever the update script exits with `0` return status, it is expected to print a JSON list containing an object described below for each updated attribute to standard output.
+  Example:
+
+  ```json
+  [
+    {
+      "attrPath": "volume_key",
+      "oldVersion": "0.3.11",
+      "newVersion": "0.3.12",
+      "files": [
+        "/path/to/nixpkgs/pkgs/development/libraries/volume-key/default.nix"
+      ]
+    }
+  ]
+  ```
+  :::
+
+  When `update.nix` is run with `--argstr commit true`, it will create a separate commit for each of the objects.
+  An empty list can be returned when the script did not update any files; for example, when the package is already at the latest version.
+
+  The commit object contains the following values:
+
+  - `attrPath` – a string containing the attribute path
+  - `oldVersion` – a string containing the old version
+  - `newVersion` – a string containing the new version
+  - `files` – a non-empty list of file paths (as strings) to add to the commit
+  - `commitBody` (optional) – a string with extra content to be appended to the default commit message (useful for adding changelog links)
+  - `commitMessage` (optional) – a string to use instead of the default commit message
+
+  If the returned list contains exactly one object (e.g. `[{}]`), all values are optional and will be determined automatically.
+
 ## Reviewing contributions
 
 ### Package updates
diff --git a/pkgs/applications/accessibility/espeakup/default.nix b/pkgs/applications/accessibility/espeakup/default.nix
index a0adef6aa935e..c35cc483ea99c 100644
--- a/pkgs/applications/accessibility/espeakup/default.nix
+++ b/pkgs/applications/accessibility/espeakup/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     owner = "linux-speakup";
     repo = "espeakup";
     rev = "v${version}";
-    sha256 = "0lmjwafvfxy07zn18v3dzjwwpnid2xffgvy2dzlwkbns8gb60ds2";
+    hash = "sha256-Qjdg1kParsnpb8Lv51wXLdrLufxtbBTsP8B3t53islI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/accessibility/squeekboard/default.nix b/pkgs/applications/accessibility/squeekboard/default.nix
index 494988a39b2f3..37468e4775976 100644
--- a/pkgs/applications/accessibility/squeekboard/default.nix
+++ b/pkgs/applications/accessibility/squeekboard/default.nix
@@ -66,10 +66,10 @@ stdenv.mkDerivation rec {
   passthru.tests.phosh = nixosTests.phosh;
 
   meta = with lib; {
-    description = "A virtual keyboard supporting Wayland";
+    description = "Virtual keyboard supporting Wayland";
     homepage = "https://gitlab.gnome.org/World/Phosh/squeekboard";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ artturin tomfitzhenry ];
+    maintainers = with maintainers; [ artturin ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/accessibility/wvkbd/default.nix b/pkgs/applications/accessibility/wvkbd/default.nix
index a918797e2de28..ff8e5626f63ac 100644
--- a/pkgs/applications/accessibility/wvkbd/default.nix
+++ b/pkgs/applications/accessibility/wvkbd/default.nix
@@ -44,7 +44,6 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/jjsullivan5196/wvkbd";
     description = "On-screen keyboard for wlroots";
-    maintainers = [ maintainers.elohmeier ];
     platforms = platforms.linux;
     license = licenses.gpl3Plus;
     mainProgram = "wvkbd-mobintl";
diff --git a/pkgs/applications/audio/AMB-plugins/default.nix b/pkgs/applications/audio/AMB-plugins/default.nix
index b388674fa4492..97bd35264bb56 100644
--- a/pkgs/applications/audio/AMB-plugins/default.nix
+++ b/pkgs/applications/audio/AMB-plugins/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   preInstall="mkdir -p $out/lib/ladspa";
 
   meta = {
-    description = "A set of ambisonics ladspa plugins";
+    description = "Set of ambisonics ladspa plugins";
     longDescription = ''
       Mono and stereo to B-format panning, horizontal rotator, square, hexagon and cube decoders.
     '';
diff --git a/pkgs/applications/audio/aether-lv2/default.nix b/pkgs/applications/audio/aether-lv2/default.nix
index 6710aaa87f4e3..afec5763022d3 100644
--- a/pkgs/applications/audio/aether-lv2/default.nix
+++ b/pkgs/applications/audio/aether-lv2/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://dougal-s.github.io/Aether/";
-    description = "An algorithmic reverb LV2 based on Cloudseed";
+    description = "Algorithmic reverb LV2 based on Cloudseed";
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
     license = licenses.mit;
diff --git a/pkgs/applications/audio/amarok/default.nix b/pkgs/applications/audio/amarok/default.nix
index e48e27b5cc699..4115dae3aeb34 100644
--- a/pkgs/applications/audio/amarok/default.nix
+++ b/pkgs/applications/audio/amarok/default.nix
@@ -1,23 +1,23 @@
-{ mkDerivation, fetchurl, lib
+{ stdenv, fetchurl, lib
 , extra-cmake-modules, kdoctools
 , qca-qt5, qjson, qtquickcontrols2, qtscript, qtwebengine
 , karchive, kcmutils, kconfig, kdnssd, kguiaddons, kinit, kirigami2, knewstuff, knotifyconfig, ktexteditor, kwindowsystem
-, fftw, phonon, plasma-framework, threadweaver, breeze-icons
+, fftw, phonon, plasma-framework, threadweaver, breeze-icons, wrapQtAppsHook
 , curl, ffmpeg, gdk-pixbuf, libaio, liblastfm, libmtp, loudmouth, lzo, lz4, mariadb-embedded, pcre, snappy, taglib, taglib_extras
 }:
 
-mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "amarok";
-  version = "2.9.71";
+  version = "3.0.0";
 
   src = fetchurl {
-    url = "mirror://kde/unstable/${pname}/${version}/${pname}-${version}.tar.xz";
-    sha256 = "0kz8wixjmy4yxq2gk11ybswryxb6alfymd3bzcar9xinscllhh3a";
+    url = "mirror://kde/stable/amarok/${finalAttrs.version}/amarok-${finalAttrs.version}.tar.xz";
+    sha256 = "sha256-FKh2eDBfrXagodrKVVpndf+mQuXrvMzs2R9JcJOZLBw=";
   };
 
   outputs = [ "out" "doc" ];
 
-  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapQtAppsHook ];
 
   propagatedBuildInputs = [
     qca-qt5 qjson qtquickcontrols2 qtscript qtwebengine
@@ -31,8 +31,8 @@ mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://amarok.kde.org";
-    description = "A powerful music player with an intuitive interface";
+    description = "Powerful music player with an intuitive interface";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ peterhoeg ];
   };
-}
+})
diff --git a/pkgs/applications/audio/amberol/default.nix b/pkgs/applications/audio/amberol/default.nix
index 6d6946a241673..8ec6c3e6b1ab7 100644
--- a/pkgs/applications/audio/amberol/default.nix
+++ b/pkgs/applications/audio/amberol/default.nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/World/amberol";
-    description = "A small and simple sound and music player";
+    description = "Small and simple sound and music player";
     maintainers = with maintainers; [ linsui ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/ams-lv2/default.nix b/pkgs/applications/audio/ams-lv2/default.nix
index 3d3589de5485c..bf0e3275ca6bb 100644
--- a/pkgs/applications/audio/ams-lv2/default.nix
+++ b/pkgs/applications/audio/ams-lv2/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation  rec {
   '';
 
   meta = with lib; {
-    description = "An LV2 port of the internal modules found in Alsa Modular Synth";
+    description = "LV2 port of the internal modules found in Alsa Modular Synth";
     homepage = "https://github.com/blablack/ams-lv2";
     license = licenses.gpl3;
     maintainers = [ maintainers.goibhniu ];
diff --git a/pkgs/applications/audio/artyFX/default.nix b/pkgs/applications/audio/artyFX/default.nix
index f68c6fa5c7dc4..e7c909c966378 100644
--- a/pkgs/applications/audio/artyFX/default.nix
+++ b/pkgs/applications/audio/artyFX/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://openavproductions.com/artyfx/";
-    description = "A LV2 plugin bundle of artistic realtime effects";
+    description = "LV2 plugin bundle of artistic realtime effects";
     license = licenses.gpl2;
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/asunder/default.nix b/pkgs/applications/audio/asunder/default.nix
index 8e209a4717faf..2c734acafdcdb 100644
--- a/pkgs/applications/audio/asunder/default.nix
+++ b/pkgs/applications/audio/asunder/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A graphical Audio CD ripper and encoder for Linux";
+    description = "Graphical Audio CD ripper and encoder for Linux";
     mainProgram = "asunder";
     homepage = "http://littlesvr.ca/asunder/index.php";
     license = licenses.gpl2;
diff --git a/pkgs/applications/audio/aucatctl/default.nix b/pkgs/applications/audio/aucatctl/default.nix
index 2914d3f343884..dce352a866885 100644
--- a/pkgs/applications/audio/aucatctl/default.nix
+++ b/pkgs/applications/audio/aucatctl/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
     '';
 
   meta = with lib; {
-    description = "The aucatctl utility sends MIDI messages to control sndiod and/or aucat volumes";
+    description = "Utility that allows to send MIDI messages to control sndiod and/or aucat volumes";
     homepage = "http://www.sndio.org";
     license = licenses.isc;
     maintainers = with maintainers; [ sna ];
diff --git a/pkgs/applications/audio/audacious/default.nix b/pkgs/applications/audio/audacious/default.nix
index cd97d460d3b38..beca5afc721da 100644
--- a/pkgs/applications/audio/audacious/default.nix
+++ b/pkgs/applications/audio/audacious/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A lightweight and versatile audio player";
+    description = "Lightweight and versatile audio player";
     homepage = "https://audacious-media-player.org/";
     maintainers = with maintainers; [ eelco ramkromberg ttuegel thiagokokada ];
     platforms = with platforms; linux;
diff --git a/pkgs/applications/audio/autotalent/default.nix b/pkgs/applications/audio/autotalent/default.nix
index ba96aa51d6068..8e77cc352b155 100644
--- a/pkgs/applications/audio/autotalent/default.nix
+++ b/pkgs/applications/audio/autotalent/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://tombaran.info/autotalent.html";
-    description = "A real-time pitch correction LADSPA plugin (no MIDI control)";
+    description = "Real-time pitch correction LADSPA plugin (no MIDI control)";
     license = licenses.gpl2;
     maintainers = [ maintainers.michalrus ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/bambootracker/default.nix b/pkgs/applications/audio/bambootracker/default.nix
index 5f955334fef20..77ee141ef070d 100644
--- a/pkgs/applications/audio/bambootracker/default.nix
+++ b/pkgs/applications/audio/bambootracker/default.nix
@@ -75,7 +75,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A tracker for YM2608 (OPNA) which was used in NEC PC-8801/9801 series computers";
+    description = "Tracker for YM2608 (OPNA) which was used in NEC PC-8801/9801 series computers";
     mainProgram = "BambooTracker";
     homepage = "https://bambootracker.github.io/BambooTracker/";
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/audio/bchoppr/default.nix b/pkgs/applications/audio/bchoppr/default.nix
index 1d1afc0dd940c..fc31d09b2dabf 100644
--- a/pkgs/applications/audio/bchoppr/default.nix
+++ b/pkgs/applications/audio/bchoppr/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/sjaehn/BChoppr";
-    description = "An audio stream chopping LV2 plugin";
+    description = "Audio stream chopping LV2 plugin";
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
index 8eda6c204b7f8..71243f6774603 100644
--- a/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
+++ b/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A digital audio workstation";
+    description = "Digital audio workstation";
     longDescription = ''
       Bitwig Studio is a multi-platform music-creation system for
       production, performance and DJing, with a focus on flexible
diff --git a/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
index 24d5147327aa5..6e0643b270d1f 100644
--- a/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
+++ b/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
@@ -106,7 +106,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A digital audio workstation";
+    description = "Digital audio workstation";
     longDescription = ''
       Bitwig Studio is a multi-platform music-creation system for
       production, performance and DJing, with a focus on flexible
diff --git a/pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix
index e795128ba944f..6ff0217c59ead 100644
--- a/pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix
+++ b/pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix
@@ -112,7 +112,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A digital audio workstation";
+    description = "Digital audio workstation";
     longDescription = ''
       Bitwig Studio is a multi-platform music-creation system for
       production, performance and DJing, with a focus on flexible
diff --git a/pkgs/applications/audio/bolliedelayxt.lv2/default.nix b/pkgs/applications/audio/bolliedelayxt.lv2/default.nix
index 7ea601dcd923d..5fd5ec43268b7 100644
--- a/pkgs/applications/audio/bolliedelayxt.lv2/default.nix
+++ b/pkgs/applications/audio/bolliedelayxt.lv2/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation  rec {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "A flexible LV2 delay plugin";
+    description = "Flexible LV2 delay plugin";
     homepage = "https://github.com/MrBollie/bolliedelayxt.lv2";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/bristol/default.nix b/pkgs/applications/audio/bristol/default.nix
index fc50691155ecc..96f99e54ffc75 100644
--- a/pkgs/applications/audio/bristol/default.nix
+++ b/pkgs/applications/audio/bristol/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A range of synthesiser, electric piano and organ emulations";
+    description = "Range of synthesiser, electric piano and organ emulations";
     homepage = "https://bristol.sourceforge.net";
     license = licenses.gpl3;
     platforms = [ "x86_64-linux" "i686-linux" ];
diff --git a/pkgs/applications/audio/brutefir/default.nix b/pkgs/applications/audio/brutefir/default.nix
index 8cb54bf410bf0..47f4648943a1e 100644
--- a/pkgs/applications/audio/brutefir/default.nix
+++ b/pkgs/applications/audio/brutefir/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://torger.se/anders/brutefir.html";
-    description = "A software convolution engine";
+    description = "Software convolution engine";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ auchter ];
     platforms = [ "x86_64-linux" "i686-linux" ];
diff --git a/pkgs/applications/audio/buzztrax/default.nix b/pkgs/applications/audio/buzztrax/default.nix
index eee9d4cadbc01..38bb5d68e69b9 100644
--- a/pkgs/applications/audio/buzztrax/default.nix
+++ b/pkgs/applications/audio/buzztrax/default.nix
@@ -65,7 +65,7 @@ stdenv.mkDerivation {
   env.NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
 
   meta = with lib; {
-    description = "Buzztrax is a modular music composer for Linux.";
+    description = "Buzztrax is a modular music composer for Linux";
     homepage = "https://www.buzztrax.org/";
     license = licenses.lgpl21Plus;
     maintainers = [ maintainers.bendlas ];
diff --git a/pkgs/applications/audio/calf/default.nix b/pkgs/applications/audio/calf/default.nix
index ecc43dd10c470..2fa5bdae14587 100644
--- a/pkgs/applications/audio/calf/default.nix
+++ b/pkgs/applications/audio/calf/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://calf-studio-gear.org";
-    description = "A set of high quality open source audio plugins for musicians";
+    description = "Set of high quality open source audio plugins for musicians";
     license = licenses.lgpl2;
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/callaudiod/default.nix b/pkgs/applications/audio/callaudiod/default.nix
index 0723bfe7a0f42..2a64a18326c16 100644
--- a/pkgs/applications/audio/callaudiod/default.nix
+++ b/pkgs/applications/audio/callaudiod/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
     description = "Daemon for dealing with audio routing during phone calls";
     homepage = "https://gitlab.com/mobian1/callaudiod";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ pacman99 tomfitzhenry ];
+    maintainers = with maintainers; [ pacman99 ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/audio/cantata/default.nix b/pkgs/applications/audio/cantata/default.nix
index 0d5c856252537..a9ce19cfdb811 100644
--- a/pkgs/applications/audio/cantata/default.nix
+++ b/pkgs/applications/audio/cantata/default.nix
@@ -110,7 +110,7 @@ mkDerivation rec {
   cmakeFlags = lib.flatten (map (e: map (f: fstat e.enable f) e.names) options);
 
   meta = with lib; {
-    description = "A graphical client for MPD";
+    description = "Graphical client for MPD";
     mainProgram = "cantata";
     homepage = "https://github.com/cdrummond/cantata";
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/audio/caps/default.nix b/pkgs/applications/audio/caps/default.nix
index e0f71fa264619..90b361aeef762 100644
--- a/pkgs/applications/audio/caps/default.nix
+++ b/pkgs/applications/audio/caps/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A selection of LADSPA plugins implementing classic effects";
+    description = "Selection of LADSPA plugins implementing classic effects";
     longDescription = ''
       The C* Audio Plugin Suite is a selection of classic effects,
       unique filters and signal generators.  The digital guitarist
diff --git a/pkgs/applications/audio/cardinal/default.nix b/pkgs/applications/audio/cardinal/default.nix
index 33ad843db529d..654d22233a3b4 100644
--- a/pkgs/applications/audio/cardinal/default.nix
+++ b/pkgs/applications/audio/cardinal/default.nix
@@ -1,5 +1,4 @@
 { stdenv
-, fetchFromGitHub
 , fetchurl
 , cmake
 , dbus
@@ -27,11 +26,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cardinal";
-  version = "24.04";
+  version = "24.05";
 
   src = fetchurl {
     url = "https://github.com/DISTRHO/Cardinal/releases/download/${version}/cardinal+deps-${version}.tar.xz";
-    hash = "sha256-vowDdHAXVZ+HSMoQsvJdzghsJzH+OrSpx6MxPRAgtJA=";
+    hash = "sha256-ZUJI5utUtST+idlL7WKBIs850EpK98cnmO47g8/iZcI=";
   };
 
   prePatch = ''
diff --git a/pkgs/applications/audio/carla/default.nix b/pkgs/applications/audio/carla/default.nix
index 7ba8188546c4d..b13ffdeb24c1d 100644
--- a/pkgs/applications/audio/carla/default.nix
+++ b/pkgs/applications/audio/carla/default.nix
@@ -93,7 +93,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://kx.studio/Applications:Carla";
-    description = "An audio plugin host";
+    description = "Audio plugin host";
     longDescription = ''
       It currently supports LADSPA (including LRDF), DSSI, LV2, VST2/3
       and AU plugin formats, plus GIG, SF2 and SFZ file support.
diff --git a/pkgs/applications/audio/castopod/default.nix b/pkgs/applications/audio/castopod/default.nix
index bd66a6835562d..3f098c3653444 100644
--- a/pkgs/applications/audio/castopod/default.nix
+++ b/pkgs/applications/audio/castopod/default.nix
@@ -7,11 +7,11 @@
 }:
 stdenv.mkDerivation {
   pname = "castopod";
-  version = "1.10.5";
+  version = "1.11.0";
 
   src = fetchurl {
-    url = "https://code.castopod.org/adaures/castopod/uploads/66de724407be8f940af5eb1d633fbbc3/castopod-1.10.5.tar.gz";
-    sha256 = "0ssdgqxqldg2f6ni54k5vlndnjjy9lah47q1crpz5nnkkjgvc96y";
+    url = "https://code.castopod.org/adaures/castopod/uploads/0f1fbf6eb849b208e26b53d930b9e22f/castopod-1.11.0.tar.gz";
+    sha256 = "09l4q8v809jnvgx9vpa1fyjhgqdbbrwkyk591kx5k1gg935rmgnx";
   };
 
   dontBuild = true;
@@ -47,7 +47,7 @@ stdenv.mkDerivation {
   passthru.updateScript = ./update.sh;
 
   meta = with lib; {
-    description = "An open-source hosting platform made for podcasters who want to engage and interact with their audience";
+    description = "Open-source hosting platform made for podcasters who want to engage and interact with their audience";
     homepage = "https://castopod.org";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ alexoundos ];
diff --git a/pkgs/applications/audio/caudec/default.nix b/pkgs/applications/audio/caudec/default.nix
index 8b76425f6876f..c1fd7acc90bd1 100644
--- a/pkgs/applications/audio/caudec/default.nix
+++ b/pkgs/applications/audio/caudec/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
    meta = with lib; {
     homepage = "https://caudec.cocatre.net/";
-    description = "A multiprocess audio converter that supports many formats (FLAC, MP3, Ogg Vorbis, Windows codecs and many more)";
+    description = "Multiprocess audio converter that supports many formats (FLAC, MP3, Ogg Vorbis, Windows codecs and many more)";
     license     = licenses.gpl3;
     platforms   = platforms.linux ++ platforms.darwin;
   };
diff --git a/pkgs/applications/audio/cdparanoia/default.nix b/pkgs/applications/audio/cdparanoia/default.nix
index f32772b4a3923..4c861a177846d 100644
--- a/pkgs/applications/audio/cdparanoia/default.nix
+++ b/pkgs/applications/audio/cdparanoia/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://xiph.org/paranoia";
-    description = "A tool and library for reading digital audio from CDs";
+    description = "Tool and library for reading digital audio from CDs";
     license = with licenses; [ gpl2Plus lgpl21Plus ];
     platforms = platforms.unix;
     mainProgram = "cdparanoia";
diff --git a/pkgs/applications/audio/cheesecutter/default.nix b/pkgs/applications/audio/cheesecutter/default.nix
index 8e2877c40c7bb..b1c44f2bebc8b 100644
--- a/pkgs/applications/audio/cheesecutter/default.nix
+++ b/pkgs/applications/audio/cheesecutter/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = with lib; {
-    description = "A tracker program for composing music for the SID chip";
+    description = "Tracker program for composing music for the SID chip";
     homepage = "https://github.com/theyamo/CheeseCutter/";
     license = licenses.gpl2Plus;
     platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
diff --git a/pkgs/applications/audio/cider/default.nix b/pkgs/applications/audio/cider/default.nix
index b9a688370dcd1..21dd14ddc7ce5 100644
--- a/pkgs/applications/audio/cider/default.nix
+++ b/pkgs/applications/audio/cider/default.nix
@@ -2,11 +2,11 @@
 
 appimageTools.wrapType2 rec {
   pname = "cider";
-  version = "1.6.2";
+  version = "1.6.3";
 
   src = fetchurl {
     url = "https://github.com/ciderapp/Cider/releases/download/v${version}/Cider-${version}.AppImage";
-    sha256 = "sha256-43QmTnFp8raEyZO5NK/UlRM8Ykd0y4iaYlL3MpROmsk=";
+    sha256 = "sha256-NwoV1eeAN0u9VXWpu5mANXhmgqe8u3h7BlsREP1f/pI=";
   };
 
   extraInstallCommands =
@@ -23,7 +23,7 @@ appimageTools.wrapType2 rec {
     '';
 
   meta = with lib; {
-    description = "A new look into listening and enjoying Apple Music in style and performance.";
+    description = "New look into listening and enjoying Apple Music in style and performance";
     homepage = "https://github.com/ciderapp/Cider";
     license = licenses.agpl3Only;
     mainProgram = "cider";
diff --git a/pkgs/applications/audio/clementine/default.nix b/pkgs/applications/audio/clementine/default.nix
index e7cffe1bd9497..75394a4afcfdc 100644
--- a/pkgs/applications/audio/clementine/default.nix
+++ b/pkgs/applications/audio/clementine/default.nix
@@ -128,7 +128,7 @@ in mkDerivation {
 
   meta = with lib; {
     homepage = "https://www.clementine-player.org";
-    description = "A multiplatform music player";
+    description = "Multiplatform music player";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.ttuegel ];
diff --git a/pkgs/applications/audio/clerk/default.nix b/pkgs/applications/audio/clerk/default.nix
index fa306d44c0a69..f77b03daac786 100644
--- a/pkgs/applications/audio/clerk/default.nix
+++ b/pkgs/applications/audio/clerk/default.nix
@@ -72,7 +72,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "An MPD client based on rofi/fzf";
+    description = "MPD client based on rofi/fzf";
     homepage = "https://github.com/carnager/clerk";
     license = licenses.mit;
     maintainers = with maintainers; [ anderspapitto rewine ];
diff --git a/pkgs/applications/audio/cozy/default.nix b/pkgs/applications/audio/cozy/default.nix
index 65cad453f6b73..6777893460877 100644
--- a/pkgs/applications/audio/cozy/default.nix
+++ b/pkgs/applications/audio/cozy/default.nix
@@ -64,7 +64,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A modern audio book player for Linux";
+    description = "Modern audio book player for Linux";
     homepage = "https://cozy.geigi.de/";
     maintainers = with maintainers; [ makefu aleksana ];
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/audio/csa/default.nix b/pkgs/applications/audio/csa/default.nix
index 0f7ad460a8c69..a861d8b0a4779 100644
--- a/pkgs/applications/audio/csa/default.nix
+++ b/pkgs/applications/audio/csa/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://sourceforge.net/projects/csa/";
-    description = "A group of LADSPA Audio plugins for FM broadcast and more";
+    description = "Group of LADSPA Audio plugins for FM broadcast and more";
     longDescription = ''
       CSA means : Contrôle Signal Audio.
       It contains the following plugins:
diff --git a/pkgs/applications/audio/csound/csound-manual/default.nix b/pkgs/applications/audio/csound/csound-manual/default.nix
index ffb4821d767d1..bb4db74e22ab4 100644
--- a/pkgs/applications/audio/csound/csound-manual/default.nix
+++ b/pkgs/applications/audio/csound/csound-manual/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The Csound Canonical Reference Manual";
+    description = "Csound Canonical Reference Manual";
     homepage = "https://github.com/csound/manual";
     license = licenses.fdl12Plus;
     maintainers = with maintainers; [ hlolli ];
diff --git a/pkgs/applications/audio/delayarchitect/default.nix b/pkgs/applications/audio/delayarchitect/default.nix
index 3500d51d29529..a3a38c93953f2 100644
--- a/pkgs/applications/audio/delayarchitect/default.nix
+++ b/pkgs/applications/audio/delayarchitect/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/jpcima/DelayArchitect";
-    description = "A visual, musical editor for delay effects";
+    description = "Visual, musical editor for delay effects";
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.all;
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/audio/diopser/default.nix b/pkgs/applications/audio/diopser/default.nix
index 67b95aef923f1..cba5d4615b385 100644
--- a/pkgs/applications/audio/diopser/default.nix
+++ b/pkgs/applications/audio/diopser/default.nix
@@ -75,7 +75,7 @@ in  stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A totally original phase rotation plugin";
+    description = "Totally original phase rotation plugin";
     homepage = "https://github.com/robbert-vdh/diopser";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ magnetophon ];
diff --git a/pkgs/applications/audio/dirt/default.nix b/pkgs/applications/audio/dirt/default.nix
index 4b9be9a080855..6b3ea6320638c 100644
--- a/pkgs/applications/audio/dirt/default.nix
+++ b/pkgs/applications/audio/dirt/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "An unimpressive thingie for playing bits of samples with some level of accuracy";
+    description = "Unimpressive thingie for playing bits of samples with some level of accuracy";
     homepage = "https://github.com/tidalcycles/Dirt";
     license = licenses.gpl3;
     maintainers = with maintainers; [ anderspapitto ];
diff --git a/pkgs/applications/audio/dolbybcsoftwaredecode/default.nix b/pkgs/applications/audio/dolbybcsoftwaredecode/default.nix
index fddbfc117bdaf..1e54e25ec98aa 100644
--- a/pkgs/applications/audio/dolbybcsoftwaredecode/default.nix
+++ b/pkgs/applications/audio/dolbybcsoftwaredecode/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Dolby B & C software decoder";
+    description = "Dolby B & C software decoder";
     homepage = "https://sourceforge.net/projects/dolbybcsoftwaredecode/";
     maintainers = with maintainers; [ lorenz ];
 
diff --git a/pkgs/applications/audio/dragonfly-reverb/default.nix b/pkgs/applications/audio/dragonfly-reverb/default.nix
index 59494587157c2..a495e77651b04 100644
--- a/pkgs/applications/audio/dragonfly-reverb/default.nix
+++ b/pkgs/applications/audio/dragonfly-reverb/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/michaelwillis/dragonfly-reverb";
-    description = "A hall-style reverb based on freeverb3 algorithms";
+    description = "Hall-style reverb based on freeverb3 algorithms";
     maintainers = [ maintainers.magnetophon ];
     license = licenses.gpl3Plus;
     platforms = ["x86_64-linux"];
diff --git a/pkgs/applications/audio/drumgizmo/default.nix b/pkgs/applications/audio/drumgizmo/default.nix
index 08183c004fd6e..f7d05198939b7 100644
--- a/pkgs/applications/audio/drumgizmo/default.nix
+++ b/pkgs/applications/audio/drumgizmo/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An LV2 sample based drum plugin";
+    description = "LV2 sample based drum plugin";
     homepage = "https://www.drumgizmo.org";
     license = licenses.lgpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/drumkv1/default.nix b/pkgs/applications/audio/drumkv1/default.nix
index 8dfb00318c159..73d55c97f56f2 100644
--- a/pkgs/applications/audio/drumkv1/default.nix
+++ b/pkgs/applications/audio/drumkv1/default.nix
@@ -14,7 +14,7 @@ mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
 
   meta = with lib; {
-    description = "An old-school drum-kit sampler synthesizer with stereo fx";
+    description = "Old-school drum-kit sampler synthesizer with stereo fx";
     mainProgram = "drumkv1_jack";
     homepage = "http://drumkv1.sourceforge.net/";
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/audio/dsf2flac/default.nix b/pkgs/applications/audio/dsf2flac/default.nix
index 2459c1c6929da..0a7eaf0a2dac5 100644
--- a/pkgs/applications/audio/dsf2flac/default.nix
+++ b/pkgs/applications/audio/dsf2flac/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ];
 
   meta = with lib; {
-    description = "A DSD to FLAC transcoding tool";
+    description = "DSD to FLAC transcoding tool";
     homepage = "https://github.com/hank/dsf2flac";
     license = licenses.gpl2;
     maintainers = with maintainers; [ artemist ];
diff --git a/pkgs/applications/audio/easyaudiosync/0001-fix-project-name.patch b/pkgs/applications/audio/easyaudiosync/0001-fix-project-name.patch
new file mode 100644
index 0000000000000..ed7a462d02c67
--- /dev/null
+++ b/pkgs/applications/audio/easyaudiosync/0001-fix-project-name.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7065538..b2716e1 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -4,7 +4,7 @@ if (VCPKG)
+   include("${CMAKE_SOURCE_DIR}/cmake/vcpkg.cmake")
+ endif ()
+ 
+-project("Easy Audio Sync"
++project("easyaudiosync"
+   VERSION 1.1.1
+   DESCRIPTION "Audio library syncing and conversion utility"
+   HOMEPAGE_URL "https://github.com/complexlogic/EasyAudioSync"
diff --git a/pkgs/applications/audio/easyaudiosync/0002-fix-qt67-deprecated-methods.patch b/pkgs/applications/audio/easyaudiosync/0002-fix-qt67-deprecated-methods.patch
new file mode 100644
index 0000000000000..523c1821a10f2
--- /dev/null
+++ b/pkgs/applications/audio/easyaudiosync/0002-fix-qt67-deprecated-methods.patch
@@ -0,0 +1,21 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index e7befae..8689f13 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -43,11 +43,14 @@ configure_file("${PROJECT_SOURCE_DIR}/translations/languages.hpp.in" "${PROJECT_
+ 
+ # Make lupdate target for Qt 6
+ if (${QT_VERSION} VERSION_GREATER_EQUAL "6")
+-  qt_add_lupdate(${EXECUTABLE_NAME}
++  qt_add_lupdate(
+     TS_FILES ${TS_FILES} "${PROJECT_SOURCE_DIR}/translations/source.ts"
++    SOURCE_TARGETS ${EXECUTABLE_NAME}
+   )
+ endif ()
+-qt_add_translation(QM_FILES "${TS_FILES}")
++qt_add_translations(
++  ${EXECUTABLE_NAME} 
++)
+ foreach (FILE ${QM_FILES})
+   get_filename_component(BASENAME ${FILE} NAME)
+   string(APPEND TRANSLATION_FILES "    <file>${BASENAME}</file>\n")
diff --git a/pkgs/applications/audio/easyaudiosync/0003-fix-darwin-app.patch b/pkgs/applications/audio/easyaudiosync/0003-fix-darwin-app.patch
new file mode 100644
index 0000000000000..f547a20446f34
--- /dev/null
+++ b/pkgs/applications/audio/easyaudiosync/0003-fix-darwin-app.patch
@@ -0,0 +1,35 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index e7befae..e7dc255 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -86,7 +86,6 @@ if (UNIX)
+     )
+   endif ()
+   if (APPLE)
+-    if (DMG)
+       set_target_properties(${EXECUTABLE_NAME} PROPERTIES 
+                             MACOSX_BUNDLE ON
+                             MACOSX_BUNDLE_EXECUTABLE_NAME "${EXECUTABLE_NAME}"
+@@ -94,21 +93,12 @@ if (UNIX)
+                             MACOSX_BUNDLE_ICON_FILE "${EXECUTABLE_NAME}.icns"
+                             MACOSX_BUNDLE_GUI_IDENTIFIER "${RDNS_NAME}"
+                             MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJECT_VERSION}"
+-                            MACOSX_BUNDLE_BUNDLE_NAME "${PROJECT_NAME}"
++                            MACOSX_BUNDLE_BUNDLE_NAME "Easy Audio Sync"
+                             MACOSX_BUNDLE_SHORT_VERSION_STRING "${PROJECT_VERSION}"
+                             MACOSX_BUNDLE_BUNDLE_VERSION "${PROJECT_VERSION}"
+                             MACOSX_BUNDLE_COPYRIGHT "Public Domain"
+ 
+       )
+-      install(CODE "include(BundleUtilities)\nfixup_bundle(\"${PROJECT_BINARY_DIR}/${EXECUTABLE_NAME}.app\" \"\" \"\")")
+-      add_custom_target(my_install COMMAND ${CMAKE_COMMAND} --build . --target install WORKING_DIRECTORY "${PROJECT_BINARY_DIR}")
+-      add_custom_target(dmg
+-        COMMAND mv "${EXECUTABLE_NAME}.app" "${PROJECT_NAME}.app" # fixup_bundle won't accept app names with spaces so need to manually rename
+-        COMMAND "${MACDEPLOYQT}" "${PROJECT_NAME}.app" -dmg
+-        COMMAND mv "${PROJECT_NAME}.dmg" "${EXECUTABLE_NAME}-${PROJECT_VERSION}-${CMAKE_OSX_ARCHITECTURES}.dmg"
+-        WORKING_DIRECTORY "${PROJECT_BINARY_DIR}")
+-      add_dependencies(dmg my_install)
+-    endif ()
+   else ()
+     install(TARGETS ${EXECUTABLE_NAME} DESTINATION "${CMAKE_INSTALL_PREFIX}/bin")
+     set (DATA_DIR "${CMAKE_INSTALL_PREFIX}/share")
diff --git a/pkgs/applications/audio/easyaudiosync/0004-force-qt6.patch b/pkgs/applications/audio/easyaudiosync/0004-force-qt6.patch
new file mode 100644
index 0000000000000..267f6094039f5
--- /dev/null
+++ b/pkgs/applications/audio/easyaudiosync/0004-force-qt6.patch
@@ -0,0 +1,21 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7065538..1946574 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -19,14 +19,8 @@ set(EXECUTABLE_OUTPUT_PATH "${PROJECT_BINARY_DIR}")
+ set(VS_STARTUP_PROJECT ${EXECUTABLE_NAME})
+ 
+ # Configure options
+-if (WIN32 OR APPLE)
+-  set(QT_VERSION "6")
+-else ()
+-  set(QT_VERSION "5" CACHE STRING "Qt major version to use (5 or 6).")
+-  if (NOT (QT_VERSION STREQUAL "5" OR QT_VERSION STREQUAL "6"))
+-    message(FATAL_ERROR "Unsupported Qt version '${QT_VERSION}'. Only 5 and 6 are supported")
+-  endif ()
+-endif ()
++set(QT_VERSION "6")
++
+ if (APPLE)
+   option(DMG "Make deployable DMG" OFF)
+ endif ()
diff --git a/pkgs/applications/audio/easyaudiosync/default.nix b/pkgs/applications/audio/easyaudiosync/default.nix
new file mode 100644
index 0000000000000..0b910dfb573b8
--- /dev/null
+++ b/pkgs/applications/audio/easyaudiosync/default.nix
@@ -0,0 +1,98 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, cmake
+, qtbase
+, qttools
+, spdlog
+, ffmpeg
+, taglib
+, wrapQtAppsHook
+, makeDesktopItem
+, copyDesktopItems
+}:
+
+stdenv.mkDerivation rec {
+  pname = "easyaudiosync";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "complexlogic";
+    repo = "EasyAudioSync";
+    rev = "v${version}";
+    hash = "sha256-w98tj9BuixPhuDgwn74EYY0gvKH6kbfQmtg030RWRU0=";
+  };
+
+  patches = [
+    ./0001-fix-project-name.patch
+    ./0002-fix-qt67-deprecated-methods.patch
+    ./0003-fix-darwin-app.patch
+    ./0004-force-qt6.patch
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    wrapQtAppsHook
+  ] ++ lib.optional stdenv.isLinux copyDesktopItems;
+
+  buildInputs = [
+    qtbase
+    qttools
+    ffmpeg
+    spdlog
+    taglib
+  ];
+
+  installPhase =
+    ''
+      runHook preInstall
+    '' + lib.optionalString stdenv.isDarwin ''
+      mkdir -p $out/Applications
+      mv "easyaudiosync.app" "Easy Audio Sync.app"
+      cp -r "Easy Audio Sync.app" $out/Applications
+    '' + lib.optionalString stdenv.isLinux ''
+      install -Dm755 easyaudiosync $out/bin/easyaudiosync
+
+      for RES in 48 64 128 256; do
+        install -Dm755 "$src/assets/icons/easyaudiosync''${RES}.png" "$out/share/icons/hicolor/''${RES}x''${RES}/apps/easyaudiosync.png"
+      done
+
+      install -Dm755 "$src/assets/icons/easyaudiosync.svg" "$out/share/icons/hicolor/scalable/apps/easyaudiosync.svg"
+    '' + ''
+      runHook postInstall
+    '';
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "easyaudiosync";
+      exec = "easyaudiosync";
+      icon = "easyaudiosync";
+      desktopName = "Easy Audio Sync";
+      categories = [
+        "Qt"
+        "Audio"
+        "AudioVideo"
+      ];
+      comment = "Audio library syncing and conversion utility";
+    })
+  ];
+
+  meta = with lib; {
+    description = "Audio library syncing and conversion utility";
+    longDescription = ''
+      Easy Audio Sync is an audio library syncing and conversion utility.
+      The intended use is syncing an audio library with many lossless files to a mobile device
+      with limited storage.
+
+      The program's design is inspired by the rsync utility. It supports folder-based
+      source to destination syncing, with added audio transcoding capability, and is
+      GUI-based instead of CLI-based.
+    '';
+    homepage = "https://github.com/complexlogic/EasyAudioSync";
+    license = licenses.unlicense;
+    maintainers = with maintainers; [ matteopacini ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/applications/audio/easyeffects/default.nix b/pkgs/applications/audio/easyeffects/default.nix
index 4bb2926b1b4ea..4730df0464d66 100644
--- a/pkgs/applications/audio/easyeffects/default.nix
+++ b/pkgs/applications/audio/easyeffects/default.nix
@@ -112,7 +112,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     changelog = "https://github.com/wwmm/easyeffects/blob/v${version}/CHANGELOG.md";
-    description = "Audio effects for PipeWire applications.";
+    description = "Audio effects for PipeWire applications";
     homepage = "https://github.com/wwmm/easyeffects";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/applications/audio/easytag/default.nix b/pkgs/applications/audio/easytag/default.nix
index 34a4ddc64b379..35ba2666f0b6b 100644
--- a/pkgs/applications/audio/easytag/default.nix
+++ b/pkgs/applications/audio/easytag/default.nix
@@ -1,25 +1,65 @@
-{ lib, stdenv, fetchurl, pkg-config, intltool, gtk3, glib, libid3tag, id3lib, taglib
-, libvorbis, libogg, opusfile, flac, itstool, libxml2, gsettings-desktop-schemas
-, gnome, wrapGAppsHook3
+{
+  lib,
+  stdenv,
+  fetchurl,
+  pkg-config,
+  intltool,
+  gtk3,
+  glib,
+  libid3tag,
+  id3lib,
+  taglib,
+  libvorbis,
+  libogg,
+  opusfile,
+  flac,
+  itstool,
+  libxml2,
+  gsettings-desktop-schemas,
+  gnome,
+  wrapGAppsHook3,
+  fetchpatch,
 }:
 
-let
+stdenv.mkDerivation rec {
   pname = "easytag";
   version = "2.4.3";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1mbxnqrw1fwcgraa1bgik25vdzvf97vma5pzknbwbqq5ly9fwlgw";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    hash = "sha256-/FHukqcF48WXnf8WVfdJbv+2i5jxraBUfoy7wDO2fdU=";
   };
 
+  patches = [
+    # https://gitlab.gnome.org/GNOME/easytag/-/merge_requests/8
+    # Borrowed from Gentoo
+    (fetchpatch {
+      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-sound/easytag/files/easytag-2.4.3-ogg-corruption.patch?id=b175a159c1138702bdfb009ff4d6565019ed3c4a";
+      hash = "sha256-z75dYTEVp1raSFROjpakLeBjF96sgWBxxRB6ut9wYXw=";
+    })
+  ];
+
   NIX_LDFLAGS = "-lid3tag -lz";
 
-  nativeBuildInputs = [ pkg-config intltool itstool libxml2 wrapGAppsHook3 ];
+  nativeBuildInputs = [
+    pkg-config
+    intltool
+    itstool
+    libxml2
+    wrapGAppsHook3
+  ];
   buildInputs = [
-    gtk3 glib libid3tag id3lib taglib libvorbis libogg opusfile flac
-    gsettings-desktop-schemas gnome.adwaita-icon-theme
+    gtk3
+    glib
+    libid3tag
+    id3lib
+    taglib
+    libvorbis
+    libogg
+    opusfile
+    flac
+    gsettings-desktop-schemas
+    gnome.adwaita-icon-theme
   ];
 
   doCheck = false; # fails 1 out of 9 tests
@@ -36,7 +76,7 @@ in stdenv.mkDerivation rec {
     mainProgram = "easytag";
     homepage = "https://gitlab.gnome.org/GNOME/easytag";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ ];
-    platforms = platforms.linux;
+    maintainers = with maintainers; [ matteopacini ];
+    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/applications/audio/exact-audio-copy/default.nix b/pkgs/applications/audio/exact-audio-copy/default.nix
index bd5e55bc21061..ec7dad91a8084 100644
--- a/pkgs/applications/audio/exact-audio-copy/default.nix
+++ b/pkgs/applications/audio/exact-audio-copy/default.nix
@@ -76,7 +76,7 @@ symlinkJoin {
   paths = [ wrapper desktopItem ];
 
   meta = with lib; {
-    description = "A precise CD audio grabber for creating perfect quality rips using CD and DVD drives";
+    description = "Precise CD audio grabber for creating perfect quality rips using CD and DVD drives";
     homepage = "https://www.exactaudiocopy.de/";
     changelog = "https://www.exactaudiocopy.de/en/index.php/resources/whats-new/whats-new/";
     license = licenses.unfree;
diff --git a/pkgs/applications/audio/exaile/default.nix b/pkgs/applications/audio/exaile/default.nix
index 624f14558142c..4f49564898a9a 100644
--- a/pkgs/applications/audio/exaile/default.nix
+++ b/pkgs/applications/audio/exaile/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
     gst-plugins-ugly
     gst-libav
   ]) ++ (with python3.pkgs; [
-    bsddb3
+    berkeleydb
     dbus-python
     mutagen
     pygobject3
@@ -92,7 +92,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.exaile.org/";
-    description = "A music player with a simple interface and powerful music management capabilities";
+    description = "Music player with a simple interface and powerful music management capabilities";
     mainProgram = "exaile";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ ryneeverett ];
diff --git a/pkgs/applications/audio/famistudio/default.nix b/pkgs/applications/audio/famistudio/default.nix
index 3d7b0563ac222..b858edf29bca5 100644
--- a/pkgs/applications/audio/famistudio/default.nix
+++ b/pkgs/applications/audio/famistudio/default.nix
@@ -6,6 +6,7 @@
 , fetchFromGitHub
 , ffmpeg
 , glfw
+, libglvnd
 , libogg
 , libvorbis
 , makeWrapper
@@ -23,13 +24,13 @@ let
 in
 buildDotnetModule rec {
   pname = "famistudio";
-  version = "4.2.0";
+  version = "4.2.1";
 
   src = fetchFromGitHub {
     owner = "BleuBleu";
     repo = "FamiStudio";
     rev = "refs/tags/${version}";
-    hash = "sha256-ydEWLL05B86672j3MVo/90tgDHg8FJ2EZaesqrBZy4A=";
+    hash = "sha256-WYy/6cWQg3Ayok/eAdnvlWAvdcuhy/sdlWOVvaYcPkc=";
   };
 
   postPatch = let
@@ -89,6 +90,10 @@ buildDotnetModule rec {
   dotnet-sdk = dotnetCorePackages.sdk_7_0;
   dotnet-runtime = dotnetCorePackages.runtime_7_0;
 
+  runtimeDeps = lib.optionals stdenv.hostPlatform.isLinux [
+    libglvnd
+  ];
+
   executables = [ "FamiStudio" ];
 
   postInstall = ''
diff --git a/pkgs/applications/audio/faust/faustlive.nix b/pkgs/applications/audio/faust/faustlive.nix
index 3826bb8b4badf..9051334cb2be1 100644
--- a/pkgs/applications/audio/faust/faustlive.nix
+++ b/pkgs/applications/audio/faust/faustlive.nix
@@ -85,7 +85,7 @@ stdenv.mkDerivation rec {
   postPatch = "cd Build";
 
   meta = with lib; {
-    description = "A standalone just-in-time Faust compiler";
+    description = "Standalone just-in-time Faust compiler";
     mainProgram = "FaustLive";
     longDescription = ''
       FaustLive is a standalone just-in-time Faust compiler. It tries to bring
diff --git a/pkgs/applications/audio/faustPhysicalModeling/default.nix b/pkgs/applications/audio/faustPhysicalModeling/default.nix
index bf9ab68f9e888..0b451211dc49f 100644
--- a/pkgs/applications/audio/faustPhysicalModeling/default.nix
+++ b/pkgs/applications/audio/faustPhysicalModeling/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The physical models included with faust compiled as jack standalone and lv2 instruments";
+    description = "Physical models included with faust compiled as jack standalone and lv2 instruments";
     homepage = "https://github.com/grame-cncm/faust/tree/master-dev/examples/physicalModeling";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/feishin/default.nix b/pkgs/applications/audio/feishin/default.nix
index 90561314fec90..98a0c5edebce1 100644
--- a/pkgs/applications/audio/feishin/default.nix
+++ b/pkgs/applications/audio/feishin/default.nix
@@ -3,7 +3,7 @@
   stdenv,
   buildNpmPackage,
   fetchFromGitHub,
-  electron_27,
+  electron_30,
   darwin,
   copyDesktopItems,
   makeDesktopItem,
@@ -20,7 +20,7 @@ let
     hash = "sha256-eNGHrSF/MgRHh0CVc0l8denZIbAnPXwFCZJZcvF+Xtc=";
   };
 
-  electron = electron_27;
+  electron = electron_30;
 in
 buildNpmPackage {
   inherit pname version;
diff --git a/pkgs/applications/audio/fmsynth/default.nix b/pkgs/applications/audio/fmsynth/default.nix
index 57b4bec50adb9..72dbd50b51b42 100644
--- a/pkgs/applications/audio/fmsynth/default.nix
+++ b/pkgs/applications/audio/fmsynth/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
   preInstall = "mkdir -p $out/lib/lv2";
 
   meta = {
-    description = "a flexible 8 operator FM synthesizer for LV2";
+    description = "Flexible 8 operator FM synthesizer for LV2";
     longDescription = ''
       The synth core supports:
 
diff --git a/pkgs/applications/audio/fomp/default.nix b/pkgs/applications/audio/fomp/default.nix
index 8dc86cb8ccf5d..1b99041af286d 100644
--- a/pkgs/applications/audio/fomp/default.nix
+++ b/pkgs/applications/audio/fomp/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://drobilla.net/software/fomp.html";
-    description = "An LV2 port of the MCP, VCO, FIL, and WAH plugins by Fons Adriaensen";
+    description = "LV2 port of the MCP, VCO, FIL, and WAH plugins by Fons Adriaensen";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/freac/default.nix b/pkgs/applications/audio/freac/default.nix
index 226a26b6c138a..6f4df5a433aae 100644
--- a/pkgs/applications/audio/freac/default.nix
+++ b/pkgs/applications/audio/freac/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "The fre:ac audio converter project";
+    description = "Audio converter and CD ripper with support for various popular formats and encoders";
     license = licenses.gpl2Plus;
     homepage = "https://www.freac.org/";
     maintainers = with maintainers; [ shamilton ];
diff --git a/pkgs/applications/audio/freewheeling/default.nix b/pkgs/applications/audio/freewheeling/default.nix
index 976421aee7abc..2da35c3adec85 100644
--- a/pkgs/applications/audio/freewheeling/default.nix
+++ b/pkgs/applications/audio/freewheeling/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "format" ];
 
   meta = {
-    description = "A live looping instrument with JACK and MIDI support";
+    description = "Live looping instrument with JACK and MIDI support";
     longDescription = ''
         Freewheeling allows us to build repetitive grooves
         by sampling and directing loops from within spirited improvisation.
diff --git a/pkgs/applications/audio/friture/default.nix b/pkgs/applications/audio/friture/default.nix
index 60a098bb1ab8b..b42cfb05c7fa0 100644
--- a/pkgs/applications/audio/friture/default.nix
+++ b/pkgs/applications/audio/friture/default.nix
@@ -48,7 +48,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A real-time audio analyzer";
+    description = "Real-time audio analyzer";
     mainProgram = "friture";
     homepage = "https://friture.org/";
     license = licenses.gpl3;
diff --git a/pkgs/applications/audio/ft2-clone/default.nix b/pkgs/applications/audio/ft2-clone/default.nix
index 20615369cb643..aac0eacad0d45 100644
--- a/pkgs/applications/audio/ft2-clone/default.nix
+++ b/pkgs/applications/audio/ft2-clone/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A highly accurate clone of the classic Fasttracker II software for MS-DOS";
+    description = "Highly accurate clone of the classic Fasttracker II software for MS-DOS";
     homepage = "https://16-bits.org/ft2.php";
     license = licenses.bsd3;
     maintainers = with maintainers; [ fgaz ];
diff --git a/pkgs/applications/audio/fverb/default.nix b/pkgs/applications/audio/fverb/default.nix
index 2cd723b73bc9a..6d28b8e88bf9c 100644
--- a/pkgs/applications/audio/fverb/default.nix
+++ b/pkgs/applications/audio/fverb/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A stereo variant of the reverberator by Jon Dattorro, for lv2";
+    description = "Stereo variant of the reverberator by Jon Dattorro, for lv2";
     homepage = "https://github.com/jpcima/fverb";
     license = licenses.bsd2;
     maintainers = [ maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/g4music/default.nix b/pkgs/applications/audio/g4music/default.nix
index 0cc1987c356d0..da7e7777af5ff 100644
--- a/pkgs/applications/audio/g4music/default.nix
+++ b/pkgs/applications/audio/g4music/default.nix
@@ -15,14 +15,14 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "g4music";
-  version = "3.5.2";
+  version = "3.6.2";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "neithern";
     repo = "g4music";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-ljSXTEp+f4HMXhGWDGHdX6whm90Vo5KWOQunU2hHwo8=";
+    hash = "sha256-yNKDTcLunTLhAtOBrjuycw0rrdCSwmhhVyBg3AfMUCQ=";
   };
 
   nativeBuildInputs = [
@@ -50,7 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A beautiful, fast, fluent, light weight music player written in GTK4";
+    description = "Beautiful, fast, fluent, light weight music player written in GTK4";
     mainProgram = "g4music";
     homepage = "https://gitlab.gnome.org/neithern/g4music";
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/audio/geonkick/default.nix b/pkgs/applications/audio/geonkick/default.nix
index 9b1b5fb7c685f..2ff3c823a7ab7 100644
--- a/pkgs/applications/audio/geonkick/default.nix
+++ b/pkgs/applications/audio/geonkick/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.com/iurie-sw/geonkick";
-    description = "A free software percussion synthesizer";
+    description = "Free software percussion synthesizer";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/giada/default.nix b/pkgs/applications/audio/giada/default.nix
index 5f0044f9fb0d5..2880bce40f8bc 100644
--- a/pkgs/applications/audio/giada/default.nix
+++ b/pkgs/applications/audio/giada/default.nix
@@ -21,15 +21,15 @@
 , nlohmann_json
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "giada";
   version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "monocasual";
-    repo = pname;
-    rev = version;
-    sha256 = "sha256-vTOUS9mI4B3yRNnM2dNCH7jgMuD3ztdhe1FMgXUIt58=";
+    repo = "giada";
+    rev = finalAttrs.version;
+    hash = "sha256-vTOUS9mI4B3yRNnM2dNCH7jgMuD3ztdhe1FMgXUIt58=";
     fetchSubmodules = true;
   };
 
@@ -66,12 +66,12 @@ stdenv.mkDerivation rec {
     libXrandr
   ];
 
-  meta = with lib; {
-    description = "A free, minimal, hardcore audio tool for DJs, live performers and electronic musicians";
+  meta = {
+    description = "Free, minimal, hardcore audio tool for DJs, live performers and electronic musicians";
     mainProgram = "giada";
     homepage = "https://giadamusic.com/";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ kashw2 ];
-    platforms = platforms.all;
+    license = lib.licenses.gpl3;
+    maintainers = with lib.maintainers; [ kashw2 ];
+    platforms = lib.platforms.all;
   };
-}
+})
diff --git a/pkgs/applications/audio/gmpc/default.nix b/pkgs/applications/audio/gmpc/default.nix
index 071e900b59b27..3bd6f3138146c 100644
--- a/pkgs/applications/audio/gmpc/default.nix
+++ b/pkgs/applications/audio/gmpc/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gmpclient.org";
-    description = "A GTK2 frontend for Music Player Daemon";
+    description = "GTK2 frontend for Music Player Daemon";
     license = licenses.gpl2;
     maintainers = [];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/goattracker/default.nix b/pkgs/applications/audio/goattracker/default.nix
index 17373c1d5a526..810b4185330c3 100644
--- a/pkgs/applications/audio/goattracker/default.nix
+++ b/pkgs/applications/audio/goattracker/default.nix
@@ -66,7 +66,7 @@ in stdenv.mkDerivation (finalAttrs: {
   desktopItems = [ desktopItem ];
 
   meta = {
-    description = "A crossplatform music editor for creating Commodore 64 music. Uses reSID library by Dag Lem and supports alternatively HardSID & CatWeasel devices"
+    description = "Crossplatform music editor for creating Commodore 64 music. Uses reSID library by Dag Lem and supports alternatively HardSID & CatWeasel devices"
       + lib.optionalString isStereo " - Stereo version";
     homepage = "https://cadaver.github.io/tools.html";
     downloadPage = "https://sourceforge.net/projects/goattracker2/";
diff --git a/pkgs/applications/audio/goodvibes/default.nix b/pkgs/applications/audio/goodvibes/default.nix
index d2eb394e59b3d..165bf2b88653d 100644
--- a/pkgs/applications/audio/goodvibes/default.nix
+++ b/pkgs/applications/audio/goodvibes/default.nix
@@ -1,13 +1,14 @@
 { lib
 , stdenv
 , fetchFromGitLab
+, fetchpatch
 , meson
 , ninja
 , pkg-config
 , glib
 , glib-networking
 , gtk3
-, libsoup
+, libsoup_3
 , keybinder3
 , gst_all_1
 , wrapGAppsHook3
@@ -17,14 +18,21 @@
 
 stdenv.mkDerivation rec {
   pname = "goodvibes";
-  version = "0.7.9";
+  version = "0.8.0";
 
   src = fetchFromGitLab {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-yXrCE3nsdZP4JHKVslzQafjZ380zC8sZv5TJf8dJqJw=";
+    hash = "sha256-KflLEc6BFA3pBY9HukEm5NluGi2igFNP6joOMdmZ0Ds=";
   };
+  patches = [
+    # Fixes a compilation error
+    (fetchpatch {
+      url = "https://gitlab.com/goodvibes/goodvibes/-/commit/e332f831b91ee068a1a58846d7607b30ab010116.patch";
+      hash = "sha256-PzbTltbD0xWJAytCGg1TAwBLrICP+9QZbCbG1QQ8Qmw=";
+    })
+  ];
 
   nativeBuildInputs = [
     meson
@@ -40,7 +48,7 @@ stdenv.mkDerivation rec {
     # for libsoup TLS support
     glib-networking
     gtk3
-    libsoup
+    libsoup_3
     keybinder3
   ] ++ (with gst_all_1; [
     gstreamer
@@ -55,7 +63,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A lightweight internet radio player";
+    description = "Lightweight internet radio player";
     homepage = "https://gitlab.com/goodvibes/goodvibes";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/gpodder/default.nix b/pkgs/applications/audio/gpodder/default.nix
index cde01e65bdeed..0e6178006ccfc 100644
--- a/pkgs/applications/audio/gpodder/default.nix
+++ b/pkgs/applications/audio/gpodder/default.nix
@@ -87,7 +87,7 @@ python3Packages.buildPythonApplication rec {
   passthru.updateScript = gitUpdater {};
 
   meta = with lib; {
-    description = "A podcatcher written in python";
+    description = "Podcatcher written in python";
     longDescription = ''
       gPodder downloads and manages free audio and video content (podcasts)
       for you. Listen directly on your computer or on your mobile devices.
diff --git a/pkgs/applications/audio/greg/default.nix b/pkgs/applications/audio/greg/default.nix
index 5e6d5e2583ab0..77ed401f6662d 100644
--- a/pkgs/applications/audio/greg/default.nix
+++ b/pkgs/applications/audio/greg/default.nix
@@ -17,7 +17,7 @@ with pythonPackages; buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/manolomartinez/greg";
-    description = "A command-line podcast aggregator";
+    description = "Command-line podcast aggregator";
     mainProgram = "greg";
     license = licenses.gpl3;
     maintainers = with maintainers; [ edwtjo ];
diff --git a/pkgs/applications/audio/gspeech/default.nix b/pkgs/applications/audio/gspeech/default.nix
index 86a93c78962de..2a253c735e37e 100644
--- a/pkgs/applications/audio/gspeech/default.nix
+++ b/pkgs/applications/audio/gspeech/default.nix
@@ -68,7 +68,7 @@ python3.pkgs.buildPythonApplication rec {
   strictDeps = false;
 
   meta = with lib; {
-    description = "A minimal GUI for the Text To Speech 'Svox Pico'. Read clipboard or selected text in different languages and manage it : pause, stop, replay";
+    description = "Minimal GUI for the Text To Speech 'Svox Pico'. Read clipboard or selected text in different languages and manage it : pause, stop, replay";
     homepage = "https://github.com/mothsART/gSpeech";
     maintainers = with maintainers; [ mothsart ];
     license = licenses.gpl3;
diff --git a/pkgs/applications/audio/guitarix/default.nix b/pkgs/applications/audio/guitarix/default.nix
index 50c00101dc210..71ac598000daf 100644
--- a/pkgs/applications/audio/guitarix/default.nix
+++ b/pkgs/applications/audio/guitarix/default.nix
@@ -105,7 +105,7 @@ stdenv.mkDerivation (finalAttrs: {
   env.NIX_CFLAGS_COMPILE = toString [ "-fpermissive" ];
 
   meta = with lib; {
-    description = "A virtual guitar amplifier for Linux running with JACK";
+    description = "Virtual guitar amplifier for Linux running with JACK";
     mainProgram = "guitarix";
     longDescription = ''
         guitarix is a virtual guitar amplifier for Linux running with
diff --git a/pkgs/applications/audio/gxplugins-lv2/default.nix b/pkgs/applications/audio/gxplugins-lv2/default.nix
index 847096c38816f..93ae0cbc2e04d 100644
--- a/pkgs/applications/audio/gxplugins-lv2/default.nix
+++ b/pkgs/applications/audio/gxplugins-lv2/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/brummer10/GxPlugins.lv2";
-    description = "A set of extra lv2 plugins from the guitarix project";
+    description = "Set of extra lv2 plugins from the guitarix project";
     maintainers = [ maintainers.magnetophon ];
     license = licenses.gpl3Plus;
   };
diff --git a/pkgs/applications/audio/headset/default.nix b/pkgs/applications/audio/headset/default.nix
index f505bc8c0ecb4..009ce3f0b7033 100644
--- a/pkgs/applications/audio/headset/default.nix
+++ b/pkgs/applications/audio/headset/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple music player for YouTube and Reddit";
+    description = "Simple music player for YouTube and Reddit";
     homepage = "https://headsetapp.co/";
     license = licenses.mit;
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/audio/helio-workstation/default.nix b/pkgs/applications/audio/helio-workstation/default.nix
index eaaa197a9c6af..dc4bf6333d384 100644
--- a/pkgs/applications/audio/helio-workstation/default.nix
+++ b/pkgs/applications/audio/helio-workstation/default.nix
@@ -5,14 +5,14 @@
 
 stdenv.mkDerivation rec {
   pname = "helio-workstation";
-  version = "3.12";
+  version = "3.13";
 
   src = fetchFromGitHub {
     owner = "helio-fm";
     repo = pname;
     rev = version;
     fetchSubmodules = true;
-    sha256 = "sha256-U5F78RlM6+R+Ms00Z3aTh3npkbgL+FhhFtc9OpGvbdY=";
+    sha256 = "sha256-esCulHphPD0gr0dsVBnRTvsGp56vHZmzdbz99mWq9R4=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/audio/helm/default.nix b/pkgs/applications/audio/helm/default.nix
index a7dff6a3ab724..b6331fd213925 100644
--- a/pkgs/applications/audio/helm/default.nix
+++ b/pkgs/applications/audio/helm/default.nix
@@ -49,7 +49,7 @@
 
   meta = with lib; {
     homepage = "http://tytel.org/helm";
-    description = "A free, cross-platform, polyphonic synthesizer";
+    description = "Free, cross-platform, polyphonic synthesizer";
     longDescription = ''
       A free, cross-platform, polyphonic synthesizer.
       Features:
diff --git a/pkgs/applications/audio/helvum/default.nix b/pkgs/applications/audio/helvum/default.nix
index 6e3de0f14bb75..6e8aec5bd9484 100644
--- a/pkgs/applications/audio/helvum/default.nix
+++ b/pkgs/applications/audio/helvum/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A GTK patchbay for pipewire";
+    description = "GTK patchbay for pipewire";
     homepage = "https://gitlab.freedesktop.org/pipewire/helvum";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fufexan ];
diff --git a/pkgs/applications/audio/id3v2/default.nix b/pkgs/applications/audio/id3v2/default.nix
index 6129f25236e6b..b50affb2a95ea 100644
--- a/pkgs/applications/audio/id3v2/default.nix
+++ b/pkgs/applications/audio/id3v2/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A command line editor for id3v2 tags";
+    description = "Command line editor for id3v2 tags";
     homepage = "https://id3v2.sourceforge.net/";
     license = licenses.gpl2Plus;
     platforms = with platforms; unix;
diff --git a/pkgs/applications/audio/in-formant/default.nix b/pkgs/applications/audio/in-formant/default.nix
index 89e7e876af8ea..a6bcc68bf5a7a 100644
--- a/pkgs/applications/audio/in-formant/default.nix
+++ b/pkgs/applications/audio/in-formant/default.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A real-time pitch and formant tracking software";
+    description = "Real-time pitch and formant tracking software";
     mainProgram = "in-formant";
     homepage = "https://github.com/in-formant/in-formant";
     license = licenses.asl20;
diff --git a/pkgs/applications/audio/infamousPlugins/default.nix b/pkgs/applications/audio/infamousPlugins/default.nix
index 38c8663a53c66..062431bd4080a 100644
--- a/pkgs/applications/audio/infamousPlugins/default.nix
+++ b/pkgs/applications/audio/infamousPlugins/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://ssj71.github.io/infamousPlugins";
-    description = "A collection of open-source LV2 plugins";
+    description = "Collection of open-source LV2 plugins";
     longDescription = ''
       These are audio plugins in the LV2 format, developed for linux. Most are suitable for live use.
       This collection contains:
diff --git a/pkgs/applications/audio/ingen/default.nix b/pkgs/applications/audio/ingen/default.nix
index 81a97d5a054e6..b81201cc83e4f 100644
--- a/pkgs/applications/audio/ingen/default.nix
+++ b/pkgs/applications/audio/ingen/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation  rec {
   '';
 
   meta = with lib; {
-    description = "A modular audio processing system using JACK and LV2 or LADSPA plugins";
+    description = "Modular audio processing system using JACK and LV2 or LADSPA plugins";
     homepage = "http://drobilla.net/software/ingen";
     license = licenses.agpl3Plus;
     maintainers = [ maintainers.goibhniu ];
diff --git a/pkgs/applications/audio/jack-capture/default.nix b/pkgs/applications/audio/jack-capture/default.nix
index 62fa23be2e5b8..c3fc09cb088f9 100644
--- a/pkgs/applications/audio/jack-capture/default.nix
+++ b/pkgs/applications/audio/jack-capture/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "format" ];
 
   meta = with lib; {
-    description = "A program for recording soundfiles with jack";
+    description = "Program for recording soundfiles with jack";
     mainProgram = "jack_capture";
     homepage = "https://github.com/kmatheussen/jack_capture/";
     license = licenses.gpl2;
diff --git a/pkgs/applications/audio/jack-oscrolloscope/default.nix b/pkgs/applications/audio/jack-oscrolloscope/default.nix
index 8cdac43a3882e..ea2d37151c79d 100644
--- a/pkgs/applications/audio/jack-oscrolloscope/default.nix
+++ b/pkgs/applications/audio/jack-oscrolloscope/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple waveform viewer for JACK";
+    description = "Simple waveform viewer for JACK";
     mainProgram = "jack_oscrolloscope";
     homepage = "http://das.nasophon.de/jack_oscrolloscope";
     license = licenses.gpl2;
diff --git a/pkgs/applications/audio/jack-passthrough/default.nix b/pkgs/applications/audio/jack-passthrough/default.nix
index 6126257b35e6e..b73e3035a6706 100644
--- a/pkgs/applications/audio/jack-passthrough/default.nix
+++ b/pkgs/applications/audio/jack-passthrough/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation (finalAttrs: {
   buildInputs = [ fmt_9 libjack2 ];
 
   meta = with lib; {
-    description = "A simple app to help with JACK apps that behave strangely.";
+    description = "Simple app to help with JACK apps that behave strangely";
     longDescription = ''
       Creates a JACK passthrough client with an arbitrary name and number of
       ports. Common uses include tricking stubborn applications into creating
diff --git a/pkgs/applications/audio/jalv/default.nix b/pkgs/applications/audio/jalv/default.nix
index b640b55c5476b..a528a209efa74 100644
--- a/pkgs/applications/audio/jalv/default.nix
+++ b/pkgs/applications/audio/jalv/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation  rec {
   ];
 
   meta = with lib; {
-    description = "A simple but fully featured LV2 host for Jack";
+    description = "Simple but fully featured LV2 host for Jack";
     homepage = "http://drobilla.net/software/jalv";
     license = licenses.isc;
     maintainers = [ maintainers.goibhniu ];
diff --git a/pkgs/applications/audio/jamesdsp/default.nix b/pkgs/applications/audio/jamesdsp/default.nix
index 4d2b7cf6dba17..4f9b5c68c859b 100644
--- a/pkgs/applications/audio/jamesdsp/default.nix
+++ b/pkgs/applications/audio/jamesdsp/default.nix
@@ -79,7 +79,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     broken = (stdenv.isLinux && stdenv.isAarch64);
-    description = "An audio effect processor for PipeWire clients";
+    description = "Audio effect processor for PipeWire clients";
     mainProgram = "jamesdsp";
     homepage = "https://github.com/Audio4Linux/JDSP4Linux";
     license = lib.licenses.gpl3Only;
diff --git a/pkgs/applications/audio/japa/default.nix b/pkgs/applications/audio/japa/default.nix
index a6ee28cc1498a..ca95624f3ed66 100644
--- a/pkgs/applications/audio/japa/default.nix
+++ b/pkgs/applications/audio/japa/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    description = "A 'perceptual' or 'psychoacoustic' audio spectrum analyser for JACK and ALSA";
+    description = "'perceptual' or 'psychoacoustic' audio spectrum analyser for JACK and ALSA";
     homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/index.html";
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/jconvolver/default.nix b/pkgs/applications/audio/jconvolver/default.nix
index 5294ae5f13a18..0abda14b56e63 100644
--- a/pkgs/applications/audio/jconvolver/default.nix
+++ b/pkgs/applications/audio/jconvolver/default.nix
@@ -105,7 +105,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A JACK client and audio file convolver with reverb samples";
+    description = "JACK client and audio file convolver with reverb samples";
     homepage = "https://kokkinizita.linuxaudio.org/linuxaudio/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ orivej ];
diff --git a/pkgs/applications/audio/kid3/default.nix b/pkgs/applications/audio/kid3/default.nix
index cae02e03e613c..8cc6f6d8ec604 100644
--- a/pkgs/applications/audio/kid3/default.nix
+++ b/pkgs/applications/audio/kid3/default.nix
@@ -95,7 +95,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = {
-    description = "A simple and powerful audio tag editor";
+    description = "Simple and powerful audio tag editor";
     inherit mainProgram;
     homepage = "https://kid3.kde.org/";
     license = lib.licenses.lgpl2Plus;
diff --git a/pkgs/applications/audio/klystrack/default.nix b/pkgs/applications/audio/klystrack/default.nix
index 597ed4bd2cb2b..83c3410a88c16 100644
--- a/pkgs/applications/audio/klystrack/default.nix
+++ b/pkgs/applications/audio/klystrack/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A chiptune tracker";
+    description = "Chiptune tracker";
     homepage = "https://kometbomb.github.io/klystrack";
     license = licenses.mit;
     maintainers = with maintainers; [ suhr ];
diff --git a/pkgs/applications/audio/ladspa-sdk/default.nix b/pkgs/applications/audio/ladspa-sdk/default.nix
index 34f7be934c2ec..de0f07b64fddb 100644
--- a/pkgs/applications/audio/ladspa-sdk/default.nix
+++ b/pkgs/applications/audio/ladspa-sdk/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "The SDK for the LADSPA audio plugin standard";
+    description = "SDK for the LADSPA audio plugin standard";
     longDescription = ''
       The LADSPA SDK, including the ladspa.h API header file,
       ten example LADSPA plugins and
diff --git a/pkgs/applications/audio/lash/default.nix b/pkgs/applications/audio/lash/default.nix
index 6c8ea6528f9ba..090c457d44a86 100644
--- a/pkgs/applications/audio/lash/default.nix
+++ b/pkgs/applications/audio/lash/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation  rec {
   '';
 
   meta = with lib; {
-    description = "A Linux Audio Session Handler";
+    description = "Linux Audio Session Handler";
     longDescription = ''
       Session management system for GNU/Linux audio applications.
     '';
diff --git a/pkgs/applications/audio/ledfx/default.nix b/pkgs/applications/audio/ledfx/default.nix
index bcbe1bc397d3e..f45c7dc3af558 100644
--- a/pkgs/applications/audio/ledfx/default.nix
+++ b/pkgs/applications/audio/ledfx/default.nix
@@ -6,12 +6,12 @@
 
 python3.pkgs.buildPythonPackage rec {
   pname = "ledfx";
-  version = "2.0.96";
+  version = "2.0.99";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-nvPHAnoD5j1rneeuMufQkXj8YWXau2zJYug+Avpe87I=";
+    hash = "sha256-pwrAVcIwZ3RDYFMDk80q5aVSqLTQ5weZqgB3GRRu2ig=";
   };
 
   pythonRelaxDeps = true;
@@ -58,6 +58,7 @@ python3.pkgs.buildPythonPackage rec {
     sounddevice
     stupidartnet
     uvloop
+    vnoise
     voluptuous
     zeroconf
   ];
@@ -71,5 +72,6 @@ python3.pkgs.buildPythonPackage rec {
     changelog = "https://github.com/LedFx/LedFx/blob/${version}/CHANGELOG.rst";
     license = licenses.gpl3Only;
     maintainers = teams.c3d2.members;
+    mainProgram = "ledfx";
   };
 }
diff --git a/pkgs/applications/audio/listenbrainz-mpd/default.nix b/pkgs/applications/audio/listenbrainz-mpd/default.nix
index 625bad268da86..d8bdd4fec98d3 100644
--- a/pkgs/applications/audio/listenbrainz-mpd/default.nix
+++ b/pkgs/applications/audio/listenbrainz-mpd/default.nix
@@ -14,17 +14,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "listenbrainz-mpd";
-  version = "2.3.6";
+  version = "2.3.7";
 
   src = fetchFromGitea {
     domain = "codeberg.org";
     owner = "elomatreb";
     repo = "listenbrainz-mpd";
     rev = "v${version}";
-    hash = "sha256-ZcpxMVUb24Ckb3CunibNYvDRk6MOsutUCUfElbUQ8Ok=";
+    hash = "sha256-xnVhPiHhI7VqkSBBlrKJBpdS6kd51DMlKWVnJIo/OQQ=";
   };
 
-  cargoHash = "sha256-uZlzWxdruwPemUnvhjyh9uKRb8vj7462N/2u2bTGQgI=";
+  cargoHash = "sha256-Reglc7UtsFk+VIwg4Q9TIChVrWweuV6yPWxbtTDH6mU=";
 
   nativeBuildInputs = [ pkg-config installShellFiles asciidoctor ];
 
diff --git a/pkgs/applications/audio/littlegptracker/default.nix b/pkgs/applications/audio/littlegptracker/default.nix
index b575f717be747..fad1d3f15cac6 100644
--- a/pkgs/applications/audio/littlegptracker/default.nix
+++ b/pkgs/applications/audio/littlegptracker/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation {
   };
 
   meta = with lib; {
-    description = "A music tracker similar to lsdj optimised to run on portable game consoles";
+    description = "Music tracker similar to lsdj optimised to run on portable game consoles";
     longDescription = ''
       LittleGPTracker (a.k.a 'The piggy', 'lgpt') is a music tracker optimised
       to run on portable game consoles. It is currently running on Game Park's
diff --git a/pkgs/applications/audio/lollypop/default.nix b/pkgs/applications/audio/lollypop/default.nix
index 1b833425610d8..8b492e09cc5cc 100644
--- a/pkgs/applications/audio/lollypop/default.nix
+++ b/pkgs/applications/audio/lollypop/default.nix
@@ -97,7 +97,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     changelog = "https://gitlab.gnome.org/World/lollypop/tags/${version}";
-    description = "A modern music player for GNOME";
+    description = "Modern music player for GNOME";
     homepage = "https://gitlab.gnome.org/World/lollypop";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ lovesegfault ];
diff --git a/pkgs/applications/audio/lpd8editor/default.nix b/pkgs/applications/audio/lpd8editor/default.nix
index 4b92417dc694c..4c48ca18ad37f 100644
--- a/pkgs/applications/audio/lpd8editor/default.nix
+++ b/pkgs/applications/audio/lpd8editor/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A linux editor for the Akai LPD8";
+    description = "Linux editor for the Akai LPD8";
     homepage = "https://github.com/charlesfleche/lpd8editor";
     license = licenses.mit;
     maintainers = with maintainers; [ pinpox ];
diff --git a/pkgs/applications/audio/lsp-plugins/default.nix b/pkgs/applications/audio/lsp-plugins/default.nix
index 89cd9b6ff329b..56b508df7f6f6 100644
--- a/pkgs/applications/audio/lsp-plugins/default.nix
+++ b/pkgs/applications/audio/lsp-plugins/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "lsp-plugins";
-  version = "1.2.15";
+  version = "1.2.16";
 
   src = fetchurl {
     url = "https://github.com/sadko4u/${pname}/releases/download/${version}/${pname}-src-${version}.tar.gz";
-    sha256 = "sha256-krku+jFGOvLwixNGd+0jBzE/17k/OU0zAePLhnxd864=";
+    sha256 = "sha256-w2BUIF44z78syLroQk2asVXA5bt9P9POiuwxpnlkc8o=";
   };
 
   outputs = [ "out" "dev" "doc" ];
diff --git a/pkgs/applications/audio/luppp/default.nix b/pkgs/applications/audio/luppp/default.nix
index 23b084bddb573..3ade4a2ea8f03 100644
--- a/pkgs/applications/audio/luppp/default.nix
+++ b/pkgs/applications/audio/luppp/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://openavproductions.com/luppp/";  # https does not work
-    description = "A music creation tool, intended for live use";
+    description = "Music creation tool, intended for live use";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ prusnak ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/lv2bm/default.nix b/pkgs/applications/audio/lv2bm/default.nix
index 033a7c8cfe706..dd831f024c2a1 100644
--- a/pkgs/applications/audio/lv2bm/default.nix
+++ b/pkgs/applications/audio/lv2bm/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/portalmod/lv2bm";
-    description = "A benchmark tool for LV2 plugins";
+    description = "Benchmark tool for LV2 plugins";
     license = licenses.gpl3;
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/m4acut/default.nix b/pkgs/applications/audio/m4acut/default.nix
index f9612dc210090..44958f25e5e5e 100644
--- a/pkgs/applications/audio/m4acut/default.nix
+++ b/pkgs/applications/audio/m4acut/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ l-smash ];
 
   meta = with lib; {
-    description = "Losslessly & gaplessly cut m4a (AAC in MP4) files.";
+    description = "Losslessly & gaplessly cut m4a (AAC in MP4) files";
     homepage = "https://github.com/nu774/m4acut";
     license = with licenses; [ bsdOriginal zlib ];
     maintainers = [ maintainers.chkno ];
diff --git a/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix b/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix
index 36ec1c38ca324..09e87abec0ea3 100644
--- a/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix
+++ b/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A compressor with character. For jack and lv2";
+    description = "Compressor with character. For jack and lv2";
     homepage = "https://github.com/magnetophon/CharacterCompressor";
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix b/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix
index 21f5f2206f076..ce90f0f5f1641 100644
--- a/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix
+++ b/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A group of compressors mixed into a bus, sidechained from that mix bus. For jack and lv2";
+    description = "Group of compressors mixed into a bus, sidechained from that mix bus. For jack and lv2";
     homepage = "https://github.com/magnetophon/CompBus";
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix b/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix
index a8fecfedb5c37..98fae67d71c52 100644
--- a/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix
+++ b/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A chorus algorithm that maintains constant and symmetric detuning depth (in cents), regardless of modulation rate. For jack and lv2";
+    description = "Chorus algorithm that maintains constant and symmetric detuning depth (in cents), regardless of modulation rate. For jack and lv2";
     homepage = "https://github.com/magnetophon/constant-detune-chorus";
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix b/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix
index 168687052dcd5..66f66d2e24483 100644
--- a/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix
+++ b/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A fast yet clean lookahead limiter for jack and lv2";
+    description = "Fast yet clean lookahead limiter for jack and lv2";
     homepage = "https://magnetophon.github.io/LazyLimiter/";
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix b/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix
index a89b4e56485e2..0caba36177438 100644
--- a/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix
+++ b/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A collection of bread and butter compressors";
+    description = "Collection of bread and butter compressors";
     homepage = "https://github.com/magnetophon/faustCompressors";
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix b/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix
index 51f6baf704243..42163d9879b8b 100644
--- a/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix
+++ b/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A multiband compressor made from shelving filters.";
+    description = "Multiband compressor made from shelving filters";
     homepage = "https://github.com/magnetophon/shelfMultiBand";
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/mda-lv2/default.nix b/pkgs/applications/audio/mda-lv2/default.nix
index 98812bec4d87f..b1f0f5b53c5b7 100644
--- a/pkgs/applications/audio/mda-lv2/default.nix
+++ b/pkgs/applications/audio/mda-lv2/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://drobilla.net/software/mda-lv2.html";
-    description = "An LV2 port of the MDA plugins by Paul Kellett";
+    description = "LV2 port of the MDA plugins by Paul Kellett";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/melmatcheq.lv2/default.nix b/pkgs/applications/audio/melmatcheq.lv2/default.nix
index 55c6e4c185a40..7469b8146f72c 100644
--- a/pkgs/applications/audio/melmatcheq.lv2/default.nix
+++ b/pkgs/applications/audio/melmatcheq.lv2/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/brummer10/MelMatchEQ.lv2";
-    description = "a profiling EQ using a 26 step Mel Frequency Band";
+    description = "Profiling EQ using a 26 step Mel Frequency Band";
     maintainers = with maintainers; [ magnetophon ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/mid2key/default.nix b/pkgs/applications/audio/mid2key/default.nix
index a4794e8a2e901..f17fd476613a5 100644
--- a/pkgs/applications/audio/mid2key/default.nix
+++ b/pkgs/applications/audio/mid2key/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://code.google.com/p/mid2key/";
-    description = "A simple tool which maps midi notes to simulated keystrokes";
+    description = "Simple tool which maps midi notes to simulated keystrokes";
     license = licenses.gpl3;
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/midi-visualizer/default.nix b/pkgs/applications/audio/midivisualizer/default.nix
index 907a17eccb301..10a2a5de6a096 100644
--- a/pkgs/applications/audio/midi-visualizer/default.nix
+++ b/pkgs/applications/audio/midivisualizer/default.nix
@@ -20,14 +20,14 @@
 , Kernel
 }:
 
-stdenv.mkDerivation rec {
-  pname = "MIDIVisualizer";
+stdenv.mkDerivation (finalAttrs: {
+  pname = "midivisualizer";
   version = "7.0";
 
   src = fetchFromGitHub {
     owner = "kosua20";
-    repo = pname;
-    rev = "v${version}";
+    repo = "MIDIVisualizer";
+    rev = "v${finalAttrs.version}";
     sha256 = "sha256-wfPSPH+E9cErVvfJZqHttFtjiUYJopM/u6w6NpRHifE=";
   };
 
@@ -65,11 +65,11 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A small MIDI visualizer tool, using OpenGL";
+    description = "Small MIDI visualizer tool, using OpenGL";
     mainProgram = "MIDIVisualizer";
     homepage = "https://github.com/kosua20/MIDIVisualizer";
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = [ maintainers.ericdallo ];
   };
-}
+})
diff --git a/pkgs/applications/audio/miniaudicle/default.nix b/pkgs/applications/audio/miniaudicle/default.nix
index d0aed09ee8632..f3cd335b47be6 100644
--- a/pkgs/applications/audio/miniaudicle/default.nix
+++ b/pkgs/applications/audio/miniaudicle/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
   buildFlags = [ "linux-${audioBackend}" ];
 
   meta = with lib; {
-    description = "A light-weight integrated development environment for the ChucK digital audio programming language";
+    description = "Light-weight integrated development environment for the ChucK digital audio programming language";
     mainProgram = "miniAudicle";
     homepage = "https://audicle.cs.princeton.edu/mini/";
     downloadPage = "https://audicle.cs.princeton.edu/mini/linux/";
diff --git a/pkgs/applications/audio/minidsp/default.nix b/pkgs/applications/audio/minidsp/default.nix
index 5c3da313e3c4f..1ba98f0034813 100644
--- a/pkgs/applications/audio/minidsp/default.nix
+++ b/pkgs/applications/audio/minidsp/default.nix
@@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec {
   nativeBuildInputs = lib.optionals stdenv.isLinux [pkg-config];
 
   meta = with lib; {
-    description = "A control interface for some MiniDSP products";
+    description = "Control interface for some MiniDSP products";
     homepage = "https://github.com/mrene/minidsp-rs";
     license = licenses.asl20;
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/pkgs/applications/audio/miniplayer/default.nix b/pkgs/applications/audio/miniplayer/default.nix
index e3837baeca048..2d87078b786dc 100644
--- a/pkgs/applications/audio/miniplayer/default.nix
+++ b/pkgs/applications/audio/miniplayer/default.nix
@@ -34,7 +34,7 @@ buildPythonApplication rec {
   # pythonImportsCheck is disabled because this package doesn't expose any modules.
 
   meta = with lib; {
-    description = "A curses-based MPD client with basic functionality that can also display an album art";
+    description = "Curses-based MPD client with basic functionality that can also display an album art";
     homepage = "https://github.com/GuardKenzie/miniplayer";
     license = licenses.mit;
     maintainers = with maintainers; [ azahi ];
diff --git a/pkgs/applications/audio/mixxx/default.nix b/pkgs/applications/audio/mixxx/default.nix
index 0ebc6c604bdc9..0f65d5cea8c7c 100644
--- a/pkgs/applications/audio/mixxx/default.nix
+++ b/pkgs/applications/audio/mixxx/default.nix
@@ -57,13 +57,13 @@
 
 mkDerivation rec {
   pname = "mixxx";
-  version = "2.4.0";
+  version = "2.4.1";
 
   src = fetchFromGitHub {
     owner = "mixxxdj";
     repo = "mixxx";
     rev = version;
-    hash = "sha256-JSWUzerm7D6AKq6g/9eRrt3EE2movRdM+VLUg07sLHo=";
+    hash = "sha256-BOdXgA+z3sFE4ngAEhSbp1gDbsti1STJY2Yy6Hp+zTE=";
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapGAppsHook3 ];
@@ -147,7 +147,7 @@ mkDerivation rec {
     description = "Digital DJ mixing software";
     mainProgram = "mixxx";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ goibhniu bfortz ];
+    maintainers = with maintainers; [ goibhniu bfortz benley ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/audio/moc/default.nix b/pkgs/applications/audio/moc/default.nix
index 6e408a5d12b54..e81382f344050 100644
--- a/pkgs/applications/audio/moc/default.nix
+++ b/pkgs/applications/audio/moc/default.nix
@@ -91,7 +91,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An ncurses console audio player designed to be powerful and easy to use";
+    description = "Terminal audio player designed to be powerful and easy to use";
     homepage = "http://moc.daper.net/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ aethelz pSub jagajaga ];
diff --git a/pkgs/applications/audio/mod-arpeggiator-lv2/default.nix b/pkgs/applications/audio/mod-arpeggiator-lv2/default.nix
index a628e38469f51..0f8ef18d569a5 100644
--- a/pkgs/applications/audio/mod-arpeggiator-lv2/default.nix
+++ b/pkgs/applications/audio/mod-arpeggiator-lv2/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "a LV2 arpeggiator";
+    description = "LV2 arpeggiator";
     homepage = "https://github.com/moddevices/mod-arpeggiator-lv2";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/mopidy/iris.nix b/pkgs/applications/audio/mopidy/iris.nix
index 38a6a55e3d96f..66af8c6586873 100644
--- a/pkgs/applications/audio/mopidy/iris.nix
+++ b/pkgs/applications/audio/mopidy/iris.nix
@@ -22,7 +22,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/jaedb/Iris";
-    description = "A fully-functional Mopidy web client encompassing Spotify and many other backends";
+    description = "Fully-functional Mopidy web client encompassing Spotify and many other backends";
     license = licenses.asl20;
     maintainers = [ maintainers.rvolosatovs ];
   };
diff --git a/pkgs/applications/audio/mopidy/moped.nix b/pkgs/applications/audio/mopidy/moped.nix
index ec1b2ddaff06a..3e4e728c3c2de 100644
--- a/pkgs/applications/audio/mopidy/moped.nix
+++ b/pkgs/applications/audio/mopidy/moped.nix
@@ -18,7 +18,7 @@ pythonPackages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/martijnboland/moped";
-    description = "A web client for Mopidy";
+    description = "Web client for Mopidy";
     license = licenses.mit;
     maintainers = [];
     hydraPlatforms = [];
diff --git a/pkgs/applications/audio/mopidy/mopidy.nix b/pkgs/applications/audio/mopidy/mopidy.nix
index bf7f9a07f7721..ef604a6b41502 100644
--- a/pkgs/applications/audio/mopidy/mopidy.nix
+++ b/pkgs/applications/audio/mopidy/mopidy.nix
@@ -45,7 +45,7 @@ pythonPackages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://www.mopidy.com/";
-    description = "An extensible music server that plays music from local disk, Spotify, SoundCloud, and more";
+    description = "Extensible music server that plays music from local disk, Spotify, SoundCloud, and more";
     mainProgram = "mopidy";
     license = licenses.asl20;
     maintainers = [ maintainers.fpletz ];
diff --git a/pkgs/applications/audio/mopidy/mopify.nix b/pkgs/applications/audio/mopidy/mopify.nix
index 68ba39a0ab42d..b5f89f4f4511b 100644
--- a/pkgs/applications/audio/mopidy/mopify.nix
+++ b/pkgs/applications/audio/mopidy/mopify.nix
@@ -16,7 +16,7 @@ pythonPackages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/dirkgroenen/mopidy-mopify";
-    description = "A mopidy webclient based on the Spotify webbased interface";
+    description = "Mopidy webclient based on the Spotify webbased interface";
     license = licenses.gpl3;
     maintainers = [ maintainers.Gonzih ];
   };
diff --git a/pkgs/applications/audio/mopidy/musicbox-webclient.nix b/pkgs/applications/audio/mopidy/musicbox-webclient.nix
index 02dc7b37cef1e..902d209f0286a 100644
--- a/pkgs/applications/audio/mopidy/musicbox-webclient.nix
+++ b/pkgs/applications/audio/mopidy/musicbox-webclient.nix
@@ -22,7 +22,7 @@ pythonPackages.buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Mopidy frontend extension and web client with additional features for Pi MusicBox";
+    description = "Mopidy frontend extension and web client with additional features for Pi MusicBox";
     homepage = "https://github.com/pimusicbox/mopidy-musicbox-webclient";
     changelog = "https://github.com/pimusicbox/mopidy-musicbox-webclient/blob/v${version}/CHANGELOG.rst";
     license = licenses.asl20;
diff --git a/pkgs/applications/audio/mopidy/scrobbler.nix b/pkgs/applications/audio/mopidy/scrobbler.nix
index a7d9194ab9b8a..f283356c808ad 100644
--- a/pkgs/applications/audio/mopidy/scrobbler.nix
+++ b/pkgs/applications/audio/mopidy/scrobbler.nix
@@ -17,7 +17,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/mopidy/mopidy-scrobbler";
-    description = "Mopidy extension for scrobbling played tracks to Last.fm.";
+    description = "Mopidy extension for scrobbling played tracks to Last.fm";
     license = licenses.asl20;
     maintainers = with maintainers; [ jakeisnt ];
   };
diff --git a/pkgs/applications/audio/mousai/paths.patch b/pkgs/applications/audio/mousai/paths.patch
deleted file mode 100644
index 35b328ad0ea3c..0000000000000
--- a/pkgs/applications/audio/mousai/paths.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/backend/utils.py b/src/backend/utils.py
-index cebc009..0087c09 100644
---- a/src/backend/utils.py
-+++ b/src/backend/utils.py
-@@ -79,7 +79,7 @@ class Utils:
-     @staticmethod
-     def get_default_audio_sources():
-         pactl_output = subprocess.run(
--            ['/usr/bin/pactl', 'info'],
-+            ['@pactl@', 'info'],
-             stdout=subprocess.PIPE,
-             text=True
-         ).stdout.splitlines()
diff --git a/pkgs/applications/audio/mp3blaster/default.nix b/pkgs/applications/audio/mp3blaster/default.nix
index 8d4a63f3b9ef1..1faeddb4d8e0b 100644
--- a/pkgs/applications/audio/mp3blaster/default.nix
+++ b/pkgs/applications/audio/mp3blaster/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   ]);
 
   meta = with lib; {
-    description = "An audio player for the text console";
+    description = "Audio player for the text console";
     homepage = "http://www.mp3blaster.org/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ earldouglas ];
diff --git a/pkgs/applications/audio/mp3val/default.nix b/pkgs/applications/audio/mp3val/default.nix
index daa03617824b1..506829ac3a000 100644
--- a/pkgs/applications/audio/mp3val/default.nix
+++ b/pkgs/applications/audio/mp3val/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "fortify" ];
 
   meta = {
-    description = "A tool for validating and repairing MPEG audio streams";
+    description = "Tool for validating and repairing MPEG audio streams";
     longDescription = ''
       MP3val is a small, high-speed, free software tool for checking MPEG audio
       files' integrity. It can be useful for finding corrupted files (e.g.
diff --git a/pkgs/applications/audio/mpc/default.nix b/pkgs/applications/audio/mpc/default.nix
index 9f7d8a06e206b..b0dcbfa18c595 100644
--- a/pkgs/applications/audio/mpc/default.nix
+++ b/pkgs/applications/audio/mpc/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.musicpd.org/clients/mpc/";
-    description = "A minimalist command line interface to MPD";
+    description = "Minimalist command line interface to MPD";
     changelog = "https://raw.githubusercontent.com/MusicPlayerDaemon/mpc/v${version}/NEWS";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ AndersonTorres ];
diff --git a/pkgs/applications/audio/mpc123/default.nix b/pkgs/applications/audio/mpc123/default.nix
index 5f9f0229cb498..1061705115ea5 100644
--- a/pkgs/applications/audio/mpc123/default.nix
+++ b/pkgs/applications/audio/mpc123/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A Musepack (.mpc) audio player";
+    description = "Musepack (.mpc) audio player";
     homepage = "https://github.com/bucciarati/mpc123";
     license = lib.licenses.gpl2Plus;
     mainProgram = "mpc123";
diff --git a/pkgs/applications/audio/mpd-touch-screen-gui/default.nix b/pkgs/applications/audio/mpd-touch-screen-gui/default.nix
index ce00cb2bd03e7..87f2dea11f065 100644
--- a/pkgs/applications/audio/mpd-touch-screen-gui/default.nix
+++ b/pkgs/applications/audio/mpd-touch-screen-gui/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
   doCheck = true;
 
   meta = with lib; {
-    description = "A small MPD client that let's you view covers and has controls suitable for small touchscreens";
+    description = "Small MPD client that let's you view covers and has controls suitable for small touchscreens";
     homepage = "https://github.com/muesli4/mpd-touch-screen-gui";
     # See: https://github.com/muesli4/mpd-touch-screen-gui/tree/master/LICENSES
     license = licenses.lgpl3Plus;
diff --git a/pkgs/applications/audio/mpdevil/default.nix b/pkgs/applications/audio/mpdevil/default.nix
deleted file mode 100644
index 3ca2a0e661526..0000000000000
--- a/pkgs/applications/audio/mpdevil/default.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-{ lib, fetchFromGitHub
-, pkg-config, meson ,ninja
-, python3Packages
-, gdk-pixbuf, glib, gobject-introspection, gtk3
-, libnotify
-, wrapGAppsHook3 }:
-
-python3Packages.buildPythonApplication rec {
-  pname = "mpdevil";
-  version = "1.11.0";
-
-  src = fetchFromGitHub {
-    owner = "SoongNoonien";
-    repo = pname;
-    rev = "refs/tags/v${version}";
-    sha256 = "sha256-ooNZSsVtIeueqgj9hR9OZp08qm8gGokiq8IU3U/ZV5w=";
-  };
-
-  format = "other";
-
-  nativeBuildInputs = [
-    glib.dev gobject-introspection gtk3 pkg-config meson ninja wrapGAppsHook3
-  ];
-
-  buildInputs = [
-    gdk-pixbuf glib libnotify
-  ];
-
-  propagatedBuildInputs = with python3Packages; [
-    beautifulsoup4 distutils-extra mpd2 notify-py pygobject3 requests
-  ];
-
-  postInstall = ''
-    glib-compile-schemas $out/share/glib-2.0/schemas
-  '';
-
-  preFixup = ''
-    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
-  '';
-
-  # Prevent double wrapping.
-  dontWrapGApps = true;
-  # Otherwise wrapGAppsHook3 do not pick up the dependencies correctly.
-  strictDeps = false;
-  # There aren't any checks.
-  doCheck = false;
-
-  meta = with lib; {
-    description = "A simple music browser for MPD";
-    homepage = "https://github.com/SoongNoonien/mpdevil";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ apfelkuchen6 ];
-    mainProgram = "mpdevil";
-  };
-}
diff --git a/pkgs/applications/audio/munt/libmt32emu.nix b/pkgs/applications/audio/munt/libmt32emu.nix
index e011804944b53..c8a9263b7501f 100644
--- a/pkgs/applications/audio/munt/libmt32emu.nix
+++ b/pkgs/applications/audio/munt/libmt32emu.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://munt.sourceforge.net/";
-    description = "A library to emulate Roland MT-32, CM-32L, CM-64 and LAPC-I devices";
+    description = "Library to emulate Roland MT-32, CM-32L, CM-64 and LAPC-I devices";
     license = with licenses; [ lgpl21Plus ];
     maintainers = with maintainers; [ OPNA2608 ];
     platforms = platforms.unix; # Not tested on ReactOS yet :)
diff --git a/pkgs/applications/audio/munt/mt32emu-qt.nix b/pkgs/applications/audio/munt/mt32emu-qt.nix
index 9ebb59ddafdde..e84ad492c488e 100644
--- a/pkgs/applications/audio/munt/mt32emu-qt.nix
+++ b/pkgs/applications/audio/munt/mt32emu-qt.nix
@@ -64,7 +64,7 @@ mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://munt.sourceforge.net/";
-    description = "A synthesizer application built on Qt and libmt32emu";
+    description = "Synthesizer application built on Qt and libmt32emu";
     mainProgram = "mt32emu-qt";
     longDescription = ''
       mt32emu-qt is a synthesiser application that facilitates both realtime
diff --git a/pkgs/applications/audio/museeks/default.nix b/pkgs/applications/audio/museeks/default.nix
index 5db7f5bd40844..3a54d3923d007 100644
--- a/pkgs/applications/audio/museeks/default.nix
+++ b/pkgs/applications/audio/museeks/default.nix
@@ -27,7 +27,7 @@ appimageTools.wrapType2 {
   '';
 
   meta = with lib; {
-    description = "A simple, clean and cross-platform music player";
+    description = "Simple, clean and cross-platform music player";
     homepage = "https://github.com/martpie/museeks";
     license = licenses.mit;
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/audio/musescore/default.nix b/pkgs/applications/audio/musescore/default.nix
index a5058f9b78346..479e8850872c5 100644
--- a/pkgs/applications/audio/musescore/default.nix
+++ b/pkgs/applications/audio/musescore/default.nix
@@ -20,6 +20,9 @@
 , qtdeclarative
 , qtgraphicaleffects
 , flac
+, libopusenc
+, libopus
+, tinyxml-2
 , qtquickcontrols
 , qtquickcontrols2
 , qtscript
@@ -47,13 +50,13 @@ let
   } else portaudio;
 in stdenv'.mkDerivation (finalAttrs: {
   pname = "musescore";
-  version = "4.3.0";
+  version = "4.3.2";
 
   src = fetchFromGitHub {
     owner = "musescore";
     repo = "MuseScore";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-X3zvrIf5DOC5PWcnuw0aClm++IWUED1ZzAyjnp7Mo+g=";
+    sha256 = "sha256-QjvY8R2nq/DeFDikHn9qr4aCEwzAcogQXM5vdZqhoMM=";
   };
 
   cmakeFlags = [
@@ -62,8 +65,12 @@ in stdenv'.mkDerivation (finalAttrs: {
     # not useful on NixOS, see:
     # https://github.com/musescore/MuseScore/issues/15571
     "-DMUE_BUILD_CRASHPAD_CLIENT=OFF"
-    # Use our freetype
+    # Use our versions of system libraries
     "-DMUE_COMPILE_USE_SYSTEM_FREETYPE=ON"
+    "-DMUE_COMPILE_USE_SYSTEM_TINYXML=ON"
+    # Implies also -DMUE_COMPILE_USE_SYSTEM_OPUS=ON
+    "-DMUE_COMPILE_USE_SYSTEM_OPUSENC=ON"
+    "-DMUE_COMPILE_USE_SYSTEM_FLAC=ON"
     # From some reason, in $src/build/cmake/SetupBuildEnvironment.cmake,
     # upstream defaults to compiling to x86_64 only, unless this cmake flag is
     # set
@@ -102,6 +109,9 @@ in stdenv'.mkDerivation (finalAttrs: {
     portaudio'
     portmidi
     flac
+    libopusenc
+    libopus
+    tinyxml-2
     qtbase
     qtdeclarative
     qtgraphicaleffects
diff --git a/pkgs/applications/audio/music-player/default.nix b/pkgs/applications/audio/music-player/default.nix
index 0a93443df473a..137c463437756 100644
--- a/pkgs/applications/audio/music-player/default.nix
+++ b/pkgs/applications/audio/music-player/default.nix
@@ -35,7 +35,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "An extensible music player daemon written in Rust";
+    description = "Extensible music player daemon written in Rust";
     homepage = "https://github.com/tsirysndr/music-player";
     changelog = "https://github.com/tsirysndr/music-player/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/applications/audio/musly/default.nix b/pkgs/applications/audio/musly/default.nix
index 43c5fc3365d15..1f8e1a9f3aef1 100644
--- a/pkgs/applications/audio/musly/default.nix
+++ b/pkgs/applications/audio/musly/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://www.musly.org";
-    description = "A fast and high-quality audio music similarity library written in C/C++";
+    description = "Fast and high-quality audio music similarity library written in C/C++";
     longDescription = ''
       Musly analyzes the the audio signal of music pieces to estimate their similarity.
       No meta-data about the music piece is included in the similarity estimation.
diff --git a/pkgs/applications/audio/muso/default.nix b/pkgs/applications/audio/muso/default.nix
index 217ff8afef8af..8cf4e31b79e47 100644
--- a/pkgs/applications/audio/muso/default.nix
+++ b/pkgs/applications/audio/muso/default.nix
@@ -30,7 +30,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "An automatic music sorter (based on ID3 tags)";
+    description = "Automatic music sorter (based on ID3 tags)";
     mainProgram = "muso";
     homepage = "https://github.com/quebin31/muso";
     license = with licenses; [ gpl3Plus ];
diff --git a/pkgs/applications/audio/mympd/default.nix b/pkgs/applications/audio/mympd/default.nix
index 5d60783e01716..8e635ddd4796d 100644
--- a/pkgs/applications/audio/mympd/default.nix
+++ b/pkgs/applications/audio/mympd/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://jcorporation.github.io/myMPD";
-    description = "A standalone and mobile friendly web mpd client with a tiny footprint and advanced features";
+    description = "Standalone and mobile friendly web mpd client with a tiny footprint and advanced features";
     maintainers = [ lib.maintainers.doronbehar ];
     platforms = lib.platforms.linux;
     license = lib.licenses.gpl2Plus;
diff --git a/pkgs/applications/audio/ncmpcpp/default.nix b/pkgs/applications/audio/ncmpcpp/default.nix
index 9577d8ab3959c..e2ecb813f5528 100644
--- a/pkgs/applications/audio/ncmpcpp/default.nix
+++ b/pkgs/applications/audio/ncmpcpp/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
     ++ lib.optional taglibSupport taglib;
 
   meta = with lib; {
-    description = "A featureful ncurses based MPD client inspired by ncmpc";
+    description = "Featureful ncurses based MPD client inspired by ncmpc";
     homepage    = "https://rybczak.net/ncmpcpp/";
     changelog   = "https://github.com/ncmpcpp/ncmpcpp/blob/${version}/CHANGELOG.md";
     license     = licenses.gpl2Plus;
diff --git a/pkgs/applications/audio/ncpamixer/default.nix b/pkgs/applications/audio/ncpamixer/default.nix
index d33024c0dfbe3..77519fde31c59 100644
--- a/pkgs/applications/audio/ncpamixer/default.nix
+++ b/pkgs/applications/audio/ncpamixer/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An ncurses mixer for PulseAudio inspired by pavucontrol";
+    description = "Terminal mixer for PulseAudio inspired by pavucontrol";
     homepage = "https://github.com/fulhax/ncpamixer";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/new-session-manager/default.nix b/pkgs/applications/audio/new-session-manager/default.nix
index 5f23b9be651cc..6e24f0c90d292 100644
--- a/pkgs/applications/audio/new-session-manager/default.nix
+++ b/pkgs/applications/audio/new-session-manager/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://new-session-manager.jackaudio.org/";
-    description = "A session manager designed for audio applications.";
+    description = "Session manager designed for audio applications";
     maintainers = [ maintainers._6AA4FD ];
     license = licenses.gpl3Plus;
     platforms = ["x86_64-linux"];
diff --git a/pkgs/applications/audio/noise-repellent/default.nix b/pkgs/applications/audio/noise-repellent/default.nix
index bcd2f8e4c42a5..d1860141ebb31 100644
--- a/pkgs/applications/audio/noise-repellent/default.nix
+++ b/pkgs/applications/audio/noise-repellent/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An lv2 plugin for broadband noise reduction";
+    description = "LV2 plugin for broadband noise reduction";
     homepage    = "https://github.com/lucianodato/noise-repellent";
     license     = licenses.gpl3;
     maintainers = [ maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/open-music-kontrollers/jit.nix b/pkgs/applications/audio/open-music-kontrollers/jit.nix
index 937a6446a8da3..b82b12385ea3c 100644
--- a/pkgs/applications/audio/open-music-kontrollers/jit.nix
+++ b/pkgs/applications/audio/open-music-kontrollers/jit.nix
@@ -8,5 +8,5 @@ callPackage ./generic.nix (args // rec {
 
   additionalBuildInputs = [ lv2 fontconfig libvterm-neovim ];
 
-  description = "A Just-in-Time C/Rust compiler embedded in an LV2 plugin";
+  description = "Just-in-Time C/Rust compiler embedded in an LV2 plugin";
 })
diff --git a/pkgs/applications/audio/open-music-kontrollers/mephisto.nix b/pkgs/applications/audio/open-music-kontrollers/mephisto.nix
index 2328b9979158a..e63c2fb7325c2 100644
--- a/pkgs/applications/audio/open-music-kontrollers/mephisto.nix
+++ b/pkgs/applications/audio/open-music-kontrollers/mephisto.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A Just-in-time FAUST embedded in an LV2 plugin";
+    description = "Just-in-time FAUST embedded in an LV2 plugin";
     homepage = "https://git.open-music-kontrollers.ch/~hp/mephisto.lv2";
     license = licenses.artistic2;
     maintainers = [ maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/open-music-kontrollers/midi_matrix.nix b/pkgs/applications/audio/open-music-kontrollers/midi_matrix.nix
index cd431d1a1d3da..7da92eb45b18e 100644
--- a/pkgs/applications/audio/open-music-kontrollers/midi_matrix.nix
+++ b/pkgs/applications/audio/open-music-kontrollers/midi_matrix.nix
@@ -6,5 +6,5 @@ callPackage ./generic.nix (args // rec {
 
   sha256 = "1nwmfxdzk4pvbwcgi3d7v4flqc10bmi2fxhrhrpfa7cafqs40ib6";
 
-  description = "An LV2 MIDI channel matrix patcher";
+  description = "LV2 MIDI channel matrix patcher";
 })
diff --git a/pkgs/applications/audio/open-music-kontrollers/orbit.nix b/pkgs/applications/audio/open-music-kontrollers/orbit.nix
index 930fc17760f91..21fdf44b24c04 100644
--- a/pkgs/applications/audio/open-music-kontrollers/orbit.nix
+++ b/pkgs/applications/audio/open-music-kontrollers/orbit.nix
@@ -8,5 +8,5 @@ callPackage ./generic.nix (args // rec {
 
   additionalBuildInputs = [ zlib ];
 
-  description = "An LV2 time event manipulation plugin bundle";
+  description = "LV2 time event manipulation plugin bundle";
 })
diff --git a/pkgs/applications/audio/open-music-kontrollers/patchmatrix.nix b/pkgs/applications/audio/open-music-kontrollers/patchmatrix.nix
index cc343e0330c30..39b68ba3a577c 100644
--- a/pkgs/applications/audio/open-music-kontrollers/patchmatrix.nix
+++ b/pkgs/applications/audio/open-music-kontrollers/patchmatrix.nix
@@ -9,5 +9,5 @@ callPackage ./generic.nix (args // rec {
 
   additionalBuildInputs = [ libjack2 ];
 
-  description = "A JACK patchbay in flow matrix style";
+  description = "JACK patchbay in flow matrix style";
 })
diff --git a/pkgs/applications/audio/open-music-kontrollers/router.nix b/pkgs/applications/audio/open-music-kontrollers/router.nix
index 40d3a5e6fbcd1..b7e734db2803c 100644
--- a/pkgs/applications/audio/open-music-kontrollers/router.nix
+++ b/pkgs/applications/audio/open-music-kontrollers/router.nix
@@ -7,5 +7,5 @@ callPackage ./generic.nix (args // rec {
   url = "https://git.open-music-kontrollers.ch/lv2/${pname}.lv2/snapshot/${pname}.lv2-7d754dd64c540d40b828166401617715dc235ca3.tar.xz";
   sha256 = "sha256-LjaW5Xdxfjzd6IJ2ptHzmHt7fhU1HQo7ubZ4USVqRE8=";
 
-  description = "An atom/audio/CV router LV2 plugin bundle";
+  description = "Atom/Audio/CV router LV2 plugin bundle";
 })
diff --git a/pkgs/applications/audio/open-music-kontrollers/vm.nix b/pkgs/applications/audio/open-music-kontrollers/vm.nix
index 8d432d356cf5e..c35da5bf36364 100644
--- a/pkgs/applications/audio/open-music-kontrollers/vm.nix
+++ b/pkgs/applications/audio/open-music-kontrollers/vm.nix
@@ -6,5 +6,5 @@ callPackage ./generic.nix (args // rec {
 
   sha256 = "013gq7jn556nkk1nq6zzh9nmp3fb36jd7ndzvyq3qryw7khzkagc";
 
-  description = "A programmable virtual machine LV2 plugin";
+  description = "Programmable virtual machine LV2 plugin";
 })
diff --git a/pkgs/applications/audio/orca-c/default.nix b/pkgs/applications/audio/orca-c/default.nix
index be40def26441b..3dfea97ace2a7 100644
--- a/pkgs/applications/audio/orca-c/default.nix
+++ b/pkgs/applications/audio/orca-c/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "An esoteric programming language designed to quickly create procedural sequencers";
+    description = "Esoteric programming language designed to quickly create procedural sequencers";
     homepage = "https://git.sr.ht/~rabbits/orca";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/applications/audio/osmid/default.nix b/pkgs/applications/audio/osmid/default.nix
index 1a65826dca338..79b809428ea53 100644
--- a/pkgs/applications/audio/osmid/default.nix
+++ b/pkgs/applications/audio/osmid/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/llloret/osmid";
-    description = "A lightweight, portable, easy to use tool to convert MIDI to OSC and OSC to MIDI";
+    description = "Lightweight, portable, easy to use tool to convert MIDI to OSC and OSC to MIDI";
     license = licenses.mit;
     maintainers = with maintainers; [ c0deaddict ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/oxefmsynth/default.nix b/pkgs/applications/audio/oxefmsynth/default.nix
index 81cdc29be7a49..ef4482e8f1cc4 100644
--- a/pkgs/applications/audio/oxefmsynth/default.nix
+++ b/pkgs/applications/audio/oxefmsynth/default.nix
@@ -35,7 +35,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/oxesoft/oxefmsynth";
-    description = "An open source VST 2.4 instrument plugin";
+    description = "Open source VST 2.4 instrument plugin";
     maintainers = [ maintainers.hirenashah ];
     platforms = [ "x86_64-linux" ];
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/audio/parlatype/default.nix b/pkgs/applications/audio/parlatype/default.nix
index 927de1d938569..3d9a3da25c2ea 100644
--- a/pkgs/applications/audio/parlatype/default.nix
+++ b/pkgs/applications/audio/parlatype/default.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "parlatype";
-  version = "4.1";
+  version = "4.2";
 
   src = fetchFromGitHub {
     owner = "gkarsay";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0546rl5sm7xmgl54cqps3a7bhfs7xdvz98jgdcf4sgiz1k2vh9xq";
+    sha256 = "1wi9f23zgvsa98xcxgghm53jlafnr3pan1zl4gkn0yd8b2d6avhk";
   };
 
   nativeBuildInputs = [
@@ -58,9 +58,6 @@ stdenv.mkDerivation rec {
   ];
 
   postPatch = ''
-    substituteInPlace data/meson_post_install.py \
-      --replace-fail 'gtk-update-icon-cache' 'gtk4-update-icon-cache'
-    patchShebangs data/meson_post_install.py
     patchShebangs libparlatype/tests/data/generate_config_data
   '';
 
@@ -76,8 +73,7 @@ stdenv.mkDerivation rec {
       useful for journalists, students, scientists and whoever needs to
       transcribe audio files.
     '';
-    # maintainer lost control of parlatype.org
-    homepage = "https://github.com/gkarsay/parlatype";
+    homepage = "https://www.parlatype.xyz/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ alexshpilkin melchips ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/parrot/default.nix b/pkgs/applications/audio/parrot/default.nix
index 8520b92015555..db5b89bb39fa0 100644
--- a/pkgs/applications/audio/parrot/default.nix
+++ b/pkgs/applications/audio/parrot/default.nix
@@ -38,7 +38,7 @@ rustPlatform.buildRustPackage {
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "A hassle-free Discord music bot";
+    description = "Hassle-free Discord music bot";
     homepage = "https://github.com/aquelemiguel/parrot";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ gerg-l ];
diff --git a/pkgs/applications/audio/pbpctrl/default.nix b/pkgs/applications/audio/pbpctrl/default.nix
index 1cb18d8318239..9567a75de6134 100644
--- a/pkgs/applications/audio/pbpctrl/default.nix
+++ b/pkgs/applications/audio/pbpctrl/default.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ dbus ];
 
   meta = with lib; {
-    description = "Control Google Pixel Buds Pro from the Linux command line.";
+    description = "Control Google Pixel Buds Pro from the Linux command line";
     homepage = "https://github.com/qzed/pbpctrl";
     license = with licenses; [ asl20 mit ];
     maintainers = [ maintainers.vanilla ];
diff --git a/pkgs/applications/audio/pd-plugins/cyclone/default.nix b/pkgs/applications/audio/pd-plugins/cyclone/default.nix
index 12efbfb64a4c3..db46c1224ee6c 100644
--- a/pkgs/applications/audio/pd-plugins/cyclone/default.nix
+++ b/pkgs/applications/audio/pd-plugins/cyclone/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A library of PureData classes, bringing some level of compatibility between Max/MSP and Pd environments";
+    description = "Library of PureData classes, bringing some level of compatibility between Max/MSP and Pd environments";
     homepage = "http://puredata.info/downloads/cyclone";
     license = licenses.tcltk;
     maintainers = with maintainers; [ magnetophon carlthome ];
diff --git a/pkgs/applications/audio/pd-plugins/maxlib/default.nix b/pkgs/applications/audio/pd-plugins/maxlib/default.nix
index 1fc3475bc6ac2..567141afaffea 100644
--- a/pkgs/applications/audio/pd-plugins/maxlib/default.nix
+++ b/pkgs/applications/audio/pd-plugins/maxlib/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A library of non-tilde externals for puredata, by Miller Puckette";
+    description = "Library of non-tilde externals for puredata, by Miller Puckette";
     homepage = "http://puredata.info/downloads/maxlib";
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/pd-plugins/mrpeach/default.nix b/pkgs/applications/audio/pd-plugins/mrpeach/default.nix
index 71f5e9438e1c3..e11c5cd00a186 100644
--- a/pkgs/applications/audio/pd-plugins/mrpeach/default.nix
+++ b/pkgs/applications/audio/pd-plugins/mrpeach/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "A collection of Pd objectclasses for OSC-messages";
+    description = "Collection of Pd objectclasses for OSC-messages";
     homepage = "http://puredata.info/downloads/osc";
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/pd-plugins/timbreid/default.nix b/pkgs/applications/audio/pd-plugins/timbreid/default.nix
index 7fd2adefce075..f3da39f15b33d 100644
--- a/pkgs/applications/audio/pd-plugins/timbreid/default.nix
+++ b/pkgs/applications/audio/pd-plugins/timbreid/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = {
-    description = "A collection of audio feature analysis externals for puredata";
+    description = "Collection of audio feature analysis externals for puredata";
     homepage = "http://williambrent.conflations.com/pages/research.html";
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/pd-plugins/zexy/default.nix b/pkgs/applications/audio/pd-plugins/zexy/default.nix
index 13944c8a01b25..3e5285fbba406 100644
--- a/pkgs/applications/audio/pd-plugins/zexy/default.nix
+++ b/pkgs/applications/audio/pd-plugins/zexy/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "The swiss army knife for puredata";
+    description = "Swiss army knife for puredata";
     homepage = "http://puredata.info/downloads/zexy";
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/pianobar/default.nix b/pkgs/applications/audio/pianobar/default.nix
index 3d2d6e1263b0c..7854203d89396 100644
--- a/pkgs/applications/audio/pianobar/default.nix
+++ b/pkgs/applications/audio/pianobar/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   CFLAGS = "-std=c99";
 
   meta = with lib; {
-    description = "A console front-end for Pandora.com";
+    description = "Console front-end for Pandora.com";
     homepage = "https://6xq.net/pianobar/";
     platforms = platforms.unix;
     license = licenses.mit; # expat version
diff --git a/pkgs/applications/audio/pianobooster/default.nix b/pkgs/applications/audio/pianobooster/default.nix
index a83c5ee7e401d..8a78ca046e4de 100644
--- a/pkgs/applications/audio/pianobooster/default.nix
+++ b/pkgs/applications/audio/pianobooster/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A MIDI file player that teaches you how to play the piano";
+    description = "MIDI file player that teaches you how to play the piano";
     mainProgram = "pianobooster";
     homepage = "https://github.com/pianobooster/PianoBooster";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/audio/picard/default.nix b/pkgs/applications/audio/picard/default.nix
index 82909a6296bff..76edc412a3921 100644
--- a/pkgs/applications/audio/picard/default.nix
+++ b/pkgs/applications/audio/picard/default.nix
@@ -76,7 +76,7 @@ pythonPackages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://picard.musicbrainz.org";
     changelog = "https://picard.musicbrainz.org/changelog";
-    description = "The official MusicBrainz tagger";
+    description = "Official MusicBrainz tagger";
     mainProgram = "picard";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
diff --git a/pkgs/applications/audio/picoloop/default.nix b/pkgs/applications/audio/picoloop/default.nix
index 74d2e305b74f3..cc9d0646d9879 100644
--- a/pkgs/applications/audio/picoloop/default.nix
+++ b/pkgs/applications/audio/picoloop/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A synth and a stepsequencer (a clone of the famous nanoloop)";
+    description = "Synth and a stepsequencer (a clone of the famous nanoloop)";
     homepage = "https://github.com/yoyz/picoloop";
     platforms = platforms.linux;
     license = licenses.bsd3;
diff --git a/pkgs/applications/audio/plexamp/default.nix b/pkgs/applications/audio/plexamp/default.nix
index 29f8dd929bad7..ec79cbefabf0f 100644
--- a/pkgs/applications/audio/plexamp/default.nix
+++ b/pkgs/applications/audio/plexamp/default.nix
@@ -2,24 +2,25 @@
 
 let
   pname = "plexamp";
-  version = "4.8.3";
+  version = "4.10.1";
 
   src = fetchurl {
     url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage";
-    name="${pname}-${version}.AppImage";
-    hash = "sha512-CrSXmRVatVSkMyB1QaNSL/tK60rQvT9JraRtYYLl0Fau3M1LJXK9yqvt77AjwIwIvi2Dm5SROG+c4rA1XtI4Yg==";
+    name = "${pname}-${version}.AppImage";
+    hash = "sha512-Y43W6aPnZEMnkBQwSHbT8PWjuhkfNxce79Y9cixEPnq4VybROHGb9s6ghV7kP81TSWkb9QruFhmXfuJRSkXxTw==";
   };
 
   appimageContents = appimageTools.extractType2 {
     inherit pname version src;
   };
-in appimageTools.wrapType2 {
+in
+appimageTools.wrapType2 {
   inherit pname version src;
 
   extraInstallCommands = ''
     install -m 444 -D ${appimageContents}/plexamp.desktop $out/share/applications/plexamp.desktop
-    install -m 444 -D ${appimageContents}/plexamp.png \
-      $out/share/icons/hicolor/512x512/apps/plexamp.png
+    install -m 444 -D ${appimageContents}/plexamp.svg \
+      $out/share/icons/hicolor/scalable/apps/plexamp.svg
     substituteInPlace $out/share/applications/${pname}.desktop \
       --replace 'Exec=AppRun' 'Exec=${pname}'
   '';
@@ -27,11 +28,11 @@ in appimageTools.wrapType2 {
   passthru.updateScript = ./update-plexamp.sh;
 
   meta = with lib; {
-    description = "A beautiful Plex music player for audiophiles, curators, and hipsters";
+    description = "Beautiful Plex music player for audiophiles, curators, and hipsters";
     homepage = "https://plexamp.com/";
-    changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/53";
+    changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/73";
     license = licenses.unfree;
-    maintainers = with maintainers; [ killercup synthetica ];
+    maintainers = with maintainers; [ killercup redhawk synthetica ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/audio/plexamp/update-plexamp.sh b/pkgs/applications/audio/plexamp/update-plexamp.sh
index b6b8def1e310a..44ad9b9250147 100755
--- a/pkgs/applications/audio/plexamp/update-plexamp.sh
+++ b/pkgs/applications/audio/plexamp/update-plexamp.sh
@@ -5,7 +5,7 @@
 set -Eeuxo pipefail
 
 cleanup() {
-    rm -rf "$TMPDIR"
+  rm -rf "$TMPDIR"
 }
 
 trap cleanup EXIT
@@ -42,9 +42,10 @@ if diff "$DEFAULT_NIX" "$WORKING_NIX"; then
 fi
 
 # update sha hash (convenietly provided)
-sed -i "s@sha.* = .*;@sha512 = \"$SHA512\";@g" "$WORKING_NIX"
+sed -i "s@hash.* = .*;@hash = \"sha512-$SHA512\";@g" "$WORKING_NIX"
 
 # update the changelog ("just" increment the number)
+# manually check that the changelog corresponds to our Plexamp version
 CHANGELOG_URL=$(rg --only-matching 'changelog = "(.+)";' --replace '$1' $WORKING_NIX)
 CHANGELOG_NUMBER=$(rg --only-matching '.*/([0-9]+)' --replace '$1' <<< $CHANGELOG_URL)
 NEXT_CHANGELOG=$(($CHANGELOG_NUMBER + 1))
diff --git a/pkgs/applications/audio/plugin-torture/default.nix b/pkgs/applications/audio/plugin-torture/default.nix
index abfda0f022e3d..b3f671adc4b2a 100644
--- a/pkgs/applications/audio/plugin-torture/default.nix
+++ b/pkgs/applications/audio/plugin-torture/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
     homepage = "https://github.com/cth103/plugin-torture";
-    description = "A tool to test LADSPA and LV2 plugins";
+    description = "Tool to test LADSPA and LV2 plugins";
     license = licenses.gpl2;
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/plujain-ramp/default.nix b/pkgs/applications/audio/plujain-ramp/default.nix
index d8f5357efdbe9..c8af8a1c5a1e7 100644
--- a/pkgs/applications/audio/plujain-ramp/default.nix
+++ b/pkgs/applications/audio/plujain-ramp/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   installFlags = [ "INSTALL_PATH=$(out)/lib/lv2" ];
 
   meta = with lib; {
-    description = "A mono rhythmic tremolo LV2 Audio Plugin";
+    description = "Mono rhythmic tremolo LV2 Audio Plugin";
     homepage = "https://github.com/Houston4444/plujain-ramp";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/pmidi/default.nix b/pkgs/applications/audio/pmidi/default.nix
index c8725fa9a36a7..d8c33351a8dd1 100644
--- a/pkgs/applications/audio/pmidi/default.nix
+++ b/pkgs/applications/audio/pmidi/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://www.parabola.me.uk/alsa/pmidi.html";
-    description = "A straightforward command line program to play midi files through the ALSA sequencer";
+    description = "Straightforward command line program to play midi files through the ALSA sequencer";
     maintainers = with maintainers; [ lheckemann ];
     license = licenses.gpl2;
     mainProgram = "pmidi";
diff --git a/pkgs/applications/audio/pms/default.nix b/pkgs/applications/audio/pms/default.nix
index d8c7bffcb0f44..77883d27834ff 100644
--- a/pkgs/applications/audio/pms/default.nix
+++ b/pkgs/applications/audio/pms/default.nix
@@ -14,7 +14,7 @@ buildGoModule {
   vendorHash = "sha256-XNFzG4hGDUN0wWbpBoQWUH1bWIgoYcyP4tNRGSV4ro4=";
 
   meta = with lib; {
-    description = "An interactive Vim-like console client for MPD";
+    description = "Interactive Vim-like console client for MPD";
     homepage = "https://ambientsound.github.io/pms/";
     license = licenses.mit;
     maintainers = with maintainers; [ deejayem ];
diff --git a/pkgs/applications/audio/polyphone/default.nix b/pkgs/applications/audio/polyphone/default.nix
index a01ce9773afa9..f9e33dc94a801 100644
--- a/pkgs/applications/audio/polyphone/default.nix
+++ b/pkgs/applications/audio/polyphone/default.nix
@@ -45,7 +45,7 @@ mkDerivation rec {
 
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
-    description = "A soundfont editor for creating musical instruments";
+    description = "Soundfont editor for creating musical instruments";
     mainProgram = "polyphone";
     homepage = "https://www.polyphone-soundfonts.com/";
     license = licenses.gpl3;
diff --git a/pkgs/applications/audio/pragha/default.nix b/pkgs/applications/audio/pragha/default.nix
index 2ae9e233c4e27..00c442e7f58c2 100644
--- a/pkgs/applications/audio/pragha/default.nix
+++ b/pkgs/applications/audio/pragha/default.nix
@@ -94,7 +94,7 @@ mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A lightweight GTK+ music manager - fork of Consonance Music Manager";
+    description = "Lightweight GTK+ music manager - fork of Consonance Music Manager";
     mainProgram = "pragha";
     homepage = "https://pragha-music-player.github.io/";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/audio/psst/default.nix b/pkgs/applications/audio/psst/default.nix
index 4d81f3f212bbb..2bd8573ab5807 100644
--- a/pkgs/applications/audio/psst/default.nix
+++ b/pkgs/applications/audio/psst/default.nix
@@ -16,13 +16,13 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "psst";
-  version = "unstable-2024-04-01";
+  version = "unstable-2024-05-26";
 
   src = fetchFromGitHub {
     owner = "jpochyla";
     repo = pname;
-    rev = "37d8da11774c6eff3d1c2902ac883dace178e832";
-    hash = "sha256-BGIbf7jtrspFqURyy2AIYKSSkcirLgj0oUBq0CHl+2s=";
+    rev = "6c9cd3f91653764b832ea5136cda04c9e0f8fe50";
+    hash = "sha256-bttF+yX1BT4t1TUmJBs0OZuPD+6uPxHlb8YzRIVNKTQ=";
   };
 
   cargoLock = {
diff --git a/pkgs/applications/audio/psst/make-build-reproducible.patch b/pkgs/applications/audio/psst/make-build-reproducible.patch
index 5598c443b3c6b..17a93ef76caed 100644
--- a/pkgs/applications/audio/psst/make-build-reproducible.patch
+++ b/pkgs/applications/audio/psst/make-build-reproducible.patch
@@ -51,7 +51,7 @@ index fcbd491..2d71ee3 100644
 -pub const GIT_VERSION: &str = git_version!();
 -pub const BUILD_TIME: &str = include!(concat!(env!("OUT_DIR"), "/build-time.txt"));
 -pub const REMOTE_URL: &str = include!(concat!(env!("OUT_DIR"), "/remote-url.txt"));
-+pub const GIT_VERSION: &str = "37d8da11774c6eff3d1c2902ac883dace178e832";
++pub const GIT_VERSION: &str = "6c9cd3f91653764b832ea5136cda04c9e0f8fe50";
 +pub const BUILD_TIME: &str = "1970-01-01 00:00:00";
 +pub const REMOTE_URL: &str = "https://github.com/jpochyla/psst";
  
diff --git a/pkgs/applications/audio/pt2-clone/default.nix b/pkgs/applications/audio/pt2-clone/default.nix
index 975b44866e817..98ff39c0f5b47 100644
--- a/pkgs/applications/audio/pt2-clone/default.nix
+++ b/pkgs/applications/audio/pt2-clone/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A highly accurate clone of the classic ProTracker 2.3D software for Amiga";
+    description = "Highly accurate clone of the classic ProTracker 2.3D software for Amiga";
     homepage = "https://16-bits.org/pt2.php";
     license = licenses.bsd3;
     maintainers = with maintainers; [ fgaz ];
diff --git a/pkgs/applications/audio/puddletag/default.nix b/pkgs/applications/audio/puddletag/default.nix
index 3b6e215d2ffbd..97ea40d7438b4 100644
--- a/pkgs/applications/audio/puddletag/default.nix
+++ b/pkgs/applications/audio/puddletag/default.nix
@@ -74,7 +74,7 @@ python3.pkgs.buildPythonApplication rec {
   dontStrip = true; # we are not generating any binaries
 
   meta = with lib; {
-    description = "An audio tag editor similar to the Windows program, Mp3tag";
+    description = "Audio tag editor similar to the Windows program, Mp3tag";
     mainProgram = "puddletag";
     homepage = "https://docs.puddletag.net";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/audio/pulseaudio-dlna/default.nix b/pkgs/applications/audio/pulseaudio-dlna/default.nix
index 57f99b81299e3..8027ec70aa5cf 100644
--- a/pkgs/applications/audio/pulseaudio-dlna/default.nix
+++ b/pkgs/applications/audio/pulseaudio-dlna/default.nix
@@ -66,7 +66,7 @@ python3Packages.buildPythonApplication {
   '';
 
   meta = with lib; {
-    description = "A lightweight streaming server which brings DLNA / UPNP and Chromecast support to PulseAudio and Linux";
+    description = "Lightweight streaming server which brings DLNA / UPNP and Chromecast support to PulseAudio and Linux";
     mainProgram = "pulseaudio-dlna";
     homepage = "https://github.com/Cygn/pulseaudio-dlna";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/audio/pulseaudio-dlna/zeroconf.nix b/pkgs/applications/audio/pulseaudio-dlna/zeroconf.nix
index d4f3306697d7c..5448e3b3b2e68 100644
--- a/pkgs/applications/audio/pulseaudio-dlna/zeroconf.nix
+++ b/pkgs/applications/audio/pulseaudio-dlna/zeroconf.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     ++ lib.optionals (pythonOlder "3.5") [ typing ];
 
   meta = with lib; {
-    description = "A pure python implementation of multicast DNS service discovery";
+    description = "Pure python implementation of multicast DNS service discovery";
     homepage = "https://github.com/jstasiak/python-zeroconf";
     license = licenses.lgpl21;
     maintainers = [ ];
diff --git a/pkgs/applications/audio/pwvucontrol/Cargo.lock b/pkgs/applications/audio/pwvucontrol/Cargo.lock
index c894d9222ae7a..c07b91890643e 100644
--- a/pkgs/applications/audio/pwvucontrol/Cargo.lock
+++ b/pkgs/applications/audio/pwvucontrol/Cargo.lock
@@ -4,18 +4,18 @@ version = 3
 
 [[package]]
 name = "aho-corasick"
-version = "1.0.4"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "anyhow"
-version = "1.0.75"
+version = "1.0.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+checksum = "c9d19de80eff169429ac1e9f48fffb163916b448a44e8e046186232046d9e1f9"
 
 [[package]]
 name = "autocfg"
@@ -29,7 +29,7 @@ version = "0.66.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "cexpr",
  "clang-sys",
  "lazy_static",
@@ -40,7 +40,7 @@ dependencies = [
  "regex",
  "rustc-hash",
  "shlex",
- "syn 2.0.29",
+ "syn 2.0.43",
 ]
 
 [[package]]
@@ -51,18 +51,15 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.0"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
 
 [[package]]
 name = "bitmaps"
-version = "2.1.0"
+version = "3.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2"
-dependencies = [
- "typenum",
-]
+checksum = "a1d084b0137aaa901caf9f1e8b21daa6aa24d41cd806e111335541eff9683bd6"
 
 [[package]]
 name = "block"
@@ -72,11 +69,11 @@ checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
 
 [[package]]
 name = "cairo-rs"
-version = "0.18.0"
+version = "0.18.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d859b656775a6b1dd078d3e5924884e6ea88aa649a7fdde03d5b2ec56ffcc10b"
+checksum = "f33613627f0dea6a731b0605101fad59ba4f193a52c96c4687728d822605a8a1"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "cairo-sys-rs",
  "glib",
  "libc",
@@ -86,9 +83,9 @@ dependencies = [
 
 [[package]]
 name = "cairo-sys-rs"
-version = "0.18.0"
+version = "0.18.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd4d115132e01c0165e3bf5f56aedee8980b0b96ede4eb000b693c05a8adb8ff"
+checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51"
 dependencies = [
  "glib-sys",
  "libc",
@@ -97,9 +94,9 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.82"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
 dependencies = [
  "libc",
 ]
@@ -115,9 +112,9 @@ dependencies = [
 
 [[package]]
 name = "cfg-expr"
-version = "0.15.4"
+version = "0.15.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b40ccee03b5175c18cde8f37e7d2a33bcef6f8ec8f7cc0d81090d1bb380949c9"
+checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3"
 dependencies = [
  "smallvec",
  "target-lexicon",
@@ -173,9 +170,9 @@ dependencies = [
 
 [[package]]
 name = "futures"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -188,9 +185,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -198,15 +195,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -215,38 +212,38 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
 name = "futures-macro"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.43",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
 
 [[package]]
 name = "futures-task"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
 name = "futures-util"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -262,9 +259,9 @@ dependencies = [
 
 [[package]]
 name = "gdk-pixbuf"
-version = "0.18.0"
+version = "0.18.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbc9c2ed73a81d556b65d08879ba4ee58808a6b1927ce915262185d6d547c6f3"
+checksum = "446f32b74d22c33b7b258d4af4ffde53c2bf96ca2e29abdf1a785fe59bd6c82c"
 dependencies = [
  "gdk-pixbuf-sys",
  "gio",
@@ -288,9 +285,9 @@ dependencies = [
 
 [[package]]
 name = "gdk4"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6982d9815ed6ac95b0467b189e81f29dea26d08a732926ec113e65744ed3f96c"
+checksum = "7edb019ad581f8ecf8ea8e4baa6df7c483a95b5a59be3140be6a9c3b0c632af6"
 dependencies = [
  "cairo-rs",
  "gdk-pixbuf",
@@ -340,9 +337,9 @@ dependencies = [
 
 [[package]]
 name = "gio"
-version = "0.18.1"
+version = "0.18.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7884cba6b1c5db1607d970cadf44b14a43913d42bc68766eea6a5e2fe0891524"
+checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -372,11 +369,11 @@ dependencies = [
 
 [[package]]
 name = "glib"
-version = "0.18.1"
+version = "0.18.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "331156127e8166dd815cf8d2db3a5beb492610c716c03ee6db4f2d07092af0a7"
+checksum = "951bbd7fdc5c044ede9f05170f05a3ae9479239c3afdfe2d22d537a3add15c4e"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "futures-channel",
  "futures-core",
  "futures-executor",
@@ -396,16 +393,16 @@ dependencies = [
 
 [[package]]
 name = "glib-macros"
-version = "0.18.0"
+version = "0.18.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "179643c50bf28d20d2f6eacd2531a88f2f5d9747dd0b86b8af1e8bb5dd0de3c0"
+checksum = "72793962ceece3863c2965d7f10c8786323b17c7adea75a515809fa20ab799a5"
 dependencies = [
  "heck",
- "proc-macro-crate",
+ "proc-macro-crate 2.0.1",
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.43",
 ]
 
 [[package]]
@@ -460,9 +457,9 @@ dependencies = [
 
 [[package]]
 name = "gsk4"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc25855255120f294d874acd6eaf4fbed7ce1cdc550e2d8415ea57fafbe816d5"
+checksum = "0d958e351d2f210309b32d081c832d7de0aca0b077aa10d88336c6379bd01f7e"
 dependencies = [
  "cairo-rs",
  "gdk4",
@@ -475,9 +472,9 @@ dependencies = [
 
 [[package]]
 name = "gsk4-sys"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1ecf3a63bf1223d68f80f72cc896c4d8c80482fbce1c9a12c66d3de7290ee46"
+checksum = "12bd9e3effea989f020e8f1ff3fa3b8c63ba93d43b899c11a118868853a56d55"
 dependencies = [
  "cairo-sys-rs",
  "gdk4-sys",
@@ -491,9 +488,9 @@ dependencies = [
 
 [[package]]
 name = "gtk4"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3b095b26f2a2df70be1805d3590eeb9d7a05ecb5be9649b82defc72dc56228c"
+checksum = "5aeb51aa3e9728575a053e1f43543cd9992ac2477e1b186ad824fd4adfb70842"
 dependencies = [
  "cairo-rs",
  "field-offset",
@@ -517,7 +514,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d57ec49cf9b657f69a05bca8027cff0a8dfd0c49e812be026fc7311f2163832f"
 dependencies = [
  "anyhow",
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
  "proc-macro-error",
  "proc-macro2",
  "quote",
@@ -526,9 +523,9 @@ dependencies = [
 
 [[package]]
 name = "gtk4-sys"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b0bdde87c50317b4f355bcbb4a9c2c414ece1b7c824fb4ad4ba8f3bdb2c6603"
+checksum = "54d8c4aa23638ce9faa2caf7e2a27d4a1295af2155c8e8d28c4d4eeca7a65eb8"
 dependencies = [
  "cairo-sys-rs",
  "gdk-pixbuf-sys",
@@ -545,9 +542,9 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.14.0"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 
 [[package]]
 name = "heck"
@@ -556,24 +553,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
-name = "im-rc"
-version = "15.1.0"
+name = "imbl"
+version = "3.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af1955a75fa080c677d3972822ec4bad316169ab1cfc6c257a942c2265dbe5fe"
+checksum = "bc3be8d8cd36f33a46b1849f31f837c44d9fa87223baee3b4bd96b8f11df81eb"
 dependencies = [
  "bitmaps",
+ "imbl-sized-chunks",
  "rand_core",
  "rand_xoshiro",
- "sized-chunks",
- "typenum",
  "version_check",
 ]
 
 [[package]]
+name = "imbl-sized-chunks"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "144006fb58ed787dcae3f54575ff4349755b00ccc99f4b4873860b654be1ed63"
+dependencies = [
+ "bitmaps",
+]
+
+[[package]]
 name = "indexmap"
-version = "2.0.0"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
 dependencies = [
  "equivalent",
  "hashbrown",
@@ -593,9 +598,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 [[package]]
 name = "libadwaita"
-version = "0.5.2"
+version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06444f4ca05a60693da6e9e2b591bd40a298e65a118a8d5e830771718b3e0253"
+checksum = "2fe7e70c06507ed10a16cda707f358fbe60fe0dc237498f78c686ade92fd979c"
 dependencies = [
  "gdk-pixbuf",
  "gdk4",
@@ -609,9 +614,9 @@ dependencies = [
 
 [[package]]
 name = "libadwaita-sys"
-version = "0.5.2"
+version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "021cfe3d1fcfa82411765a791f7e9b32f35dd98ce88d2e3fa10e7320f5cc8ce7"
+checksum = "5e10aaa38de1d53374f90deeb4535209adc40cc5dba37f9704724169bceec69a"
 dependencies = [
  "gdk4-sys",
  "gio-sys",
@@ -625,9 +630,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.147"
+version = "0.2.151"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
 
 [[package]]
 name = "libloading"
@@ -641,11 +646,11 @@ dependencies = [
 
 [[package]]
 name = "libspa"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcdea6b6663acf456641a4dea1b87fa6970a3e881596237713192d8f5423b542"
+checksum = "0434617020ddca18b86067912970c55410ca654cdafd775480322f50b857a8c4"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "cc",
  "convert_case",
  "cookie-factory",
@@ -658,9 +663,9 @@ dependencies = [
 
 [[package]]
 name = "libspa-sys"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e63fc701d3375e6e255765d6a6172d9af06583115e78f3dfe2c8ff1dfd0b2dab"
+checksum = "b3e70ca3f3e70f858ef363046d06178c427b4e0b63d210c95fd87d752679d345"
 dependencies = [
  "bindgen",
  "cc",
@@ -697,9 +702,9 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.5.0"
+version = "2.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
 
 [[package]]
 name = "memoffset"
@@ -727,16 +732,15 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
 name = "nix"
-version = "0.26.2"
+version = "0.26.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a"
+checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
 dependencies = [
  "bitflags 1.3.2",
  "cfg-if",
  "libc",
  "memoffset 0.7.1",
  "pin-utils",
- "static_assertions",
 ]
 
 [[package]]
@@ -780,15 +784,15 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.18.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "pango"
-version = "0.18.0"
+version = "0.18.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06a9e54b831d033206160096b825f2070cf5fda7e35167b1c01e9e774f9202d1"
+checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4"
 dependencies = [
  "gio",
  "glib",
@@ -817,9 +821,9 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.12"
+version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
 
 [[package]]
 name = "pin-utils"
@@ -829,12 +833,12 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
 name = "pipewire"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "062c97c31818918b8bffdc66cfd93f3e4b4141f505c63234f9ff0a658fddedab"
+checksum = "a2d009c8dd65e890b515a71950f7e4c801523b8894ff33863a40830bf762e9e9"
 dependencies = [
  "anyhow",
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "libc",
  "libspa",
  "libspa-sys",
@@ -846,9 +850,9 @@ dependencies = [
 
 [[package]]
 name = "pipewire-sys"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d558e2cffe5f97ac32c7e0b6cb6074b5271b8c2c628ac68633342ee08fdab308"
+checksum = "890c084e7b737246cb4799c86b71a0e4da536031ff7473dd639eba9f95039f64"
 dependencies = [
  "bindgen",
  "libspa-sys",
@@ -857,9 +861,9 @@ dependencies = [
 
 [[package]]
 name = "pkg-config"
-version = "0.3.27"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a"
 
 [[package]]
 name = "proc-macro-crate"
@@ -868,7 +872,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
 dependencies = [
  "once_cell",
- "toml_edit",
+ "toml_edit 0.19.15",
+]
+
+[[package]]
+name = "proc-macro-crate"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a"
+dependencies = [
+ "toml_datetime",
+ "toml_edit 0.20.2",
 ]
 
 [[package]]
@@ -897,9 +911,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.66"
+version = "1.0.71"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
+checksum = "75cb1540fadbd5b8fbccc4dddad2734eba435053f725621c070711a14bb5f4b8"
 dependencies = [
  "unicode-ident",
 ]
@@ -913,7 +927,7 @@ dependencies = [
  "gettext-rs",
  "glib",
  "gtk4",
- "im-rc",
+ "imbl",
  "libadwaita",
  "log",
  "once_cell",
@@ -947,9 +961,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.9.3"
+version = "1.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -959,9 +973,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.3.6"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -970,9 +984,9 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.4"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "rustc-hash"
@@ -991,61 +1005,59 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.18"
+version = "1.0.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
+checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
 
 [[package]]
 name = "serde"
-version = "1.0.183"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c"
-
-[[package]]
-name = "serde_spanned"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
+checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
 dependencies = [
- "serde",
+ "serde_derive",
 ]
 
 [[package]]
-name = "shlex"
-version = "1.1.0"
+name = "serde_derive"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
+checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.43",
+]
 
 [[package]]
-name = "sized-chunks"
+name = "serde_spanned"
 version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
 dependencies = [
- "bitmaps",
- "typenum",
+ "serde",
 ]
 
 [[package]]
+name = "shlex"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
+
+[[package]]
 name = "slab"
-version = "0.4.8"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
 name = "smallvec"
-version = "1.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
-
-[[package]]
-name = "static_assertions"
-version = "1.1.0"
+version = "1.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
 
 [[package]]
 name = "syn"
@@ -1060,9 +1072,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.29"
+version = "2.0.43"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a"
+checksum = "ee659fb5f3d355364e1f3e5bc10fb82068efbf824a1e9d1c9504244a6469ad53"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1071,9 +1083,9 @@ dependencies = [
 
 [[package]]
 name = "system-deps"
-version = "6.1.1"
+version = "6.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30c2de8a4d8f4b823d634affc9cd2a74ec98c53a756f317e529a48046cbf71f3"
+checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331"
 dependencies = [
  "cfg-expr",
  "heck",
@@ -1084,46 +1096,46 @@ dependencies = [
 
 [[package]]
 name = "target-lexicon"
-version = "0.12.11"
+version = "0.12.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a"
+checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a"
 
 [[package]]
 name = "temp-dir"
-version = "0.1.11"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab"
+checksum = "dd16aa9ffe15fe021c6ee3766772132c6e98dfa395a167e16864f61a9cfb71d6"
 
 [[package]]
 name = "thiserror"
-version = "1.0.47"
+version = "1.0.52"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f"
+checksum = "83a48fd946b02c0a526b2e9481c8e2a17755e47039164a86c4070446e3a4614d"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.47"
+version = "1.0.52"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b"
+checksum = "e7fbe9b594d6568a6a1443250a7e67d80b74e1e96f6d1715e1e21cc1888291d3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.43",
 ]
 
 [[package]]
 name = "toml"
-version = "0.7.6"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542"
+checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit",
+ "toml_edit 0.20.2",
 ]
 
 [[package]]
@@ -1137,28 +1149,33 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.19.14"
+version = "0.19.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a"
+checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
  "indexmap",
- "serde",
- "serde_spanned",
  "toml_datetime",
  "winnow",
 ]
 
 [[package]]
-name = "typenum"
-version = "1.16.0"
+name = "toml_edit"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
+dependencies = [
+ "indexmap",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow",
+]
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.11"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-segmentation"
@@ -1202,9 +1219,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "winnow"
-version = "0.5.14"
+version = "0.5.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d09770118a7eb1ccaf4a594a221334119a44a814fcb0d31c5b85e83e97227a97"
+checksum = "97a4882e6b134d6c28953a387571f1acdd3496830d5e36c5e3a1075580ea641c"
 dependencies = [
  "memchr",
 ]
@@ -1212,9 +1229,9 @@ dependencies = [
 [[package]]
 name = "wireplumber"
 version = "0.1.0"
-source = "git+https://github.com/arcnmx/wireplumber.rs.git?rev=341b0c4e8d177f5f21c109cf88cca4f2dc1f853a#341b0c4e8d177f5f21c109cf88cca4f2dc1f853a"
+source = "git+https://github.com/arcnmx/wireplumber.rs.git?rev=2c0ee463d029d3562ee66db90554c5af573565c1#2c0ee463d029d3562ee66db90554c5af573565c1"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "gio",
  "glib",
  "libc",
@@ -1228,7 +1245,7 @@ dependencies = [
 [[package]]
 name = "wireplumber-sys"
 version = "0.1.0"
-source = "git+https://github.com/arcnmx/wireplumber.rs.git?rev=341b0c4e8d177f5f21c109cf88cca4f2dc1f853a#341b0c4e8d177f5f21c109cf88cca4f2dc1f853a"
+source = "git+https://github.com/arcnmx/wireplumber.rs.git?rev=2c0ee463d029d3562ee66db90554c5af573565c1#2c0ee463d029d3562ee66db90554c5af573565c1"
 dependencies = [
  "gio-sys",
  "glib-sys",
diff --git a/pkgs/applications/audio/pwvucontrol/default.nix b/pkgs/applications/audio/pwvucontrol/default.nix
index ae631e1ff5166..f6733b1e4fdfd 100644
--- a/pkgs/applications/audio/pwvucontrol/default.nix
+++ b/pkgs/applications/audio/pwvucontrol/default.nix
@@ -34,19 +34,19 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "pwvucontrol";
-  version = "0.3.1";
+  version = "0.4.2";
 
   src = fetchFromGitHub {
     owner = "saivert";
     repo = "pwvucontrol";
     rev = version;
-    hash = "sha256-t4JUpKtuO1JgrdsNbl0M/SwPmoqu7WxsaD74vlJeVhY=";
+    hash = "sha256-cWNWdCMk9hF8Nzq2UFBEKSx1zS8JlplMG7B5gv7BaZA=";
   };
 
   cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "wireplumber-0.1.0" = "sha256-+LZ8xKok2AOegW8WvfrfZGXuQB4xHrLNshcTOHab+xQ=";
+      "wireplumber-0.1.0" = "sha256-r3p4OpmMgiFgjn1Fj4LeMOhx6R2UWollIdJRy/0kiNM=";
     };
   };
 
@@ -77,7 +77,7 @@ stdenv.mkDerivation rec {
     description = "Pipewire Volume Control";
     homepage = "https://github.com/saivert/pwvucontrol";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ figsoda ];
+    maintainers = with maintainers; [ figsoda Guanran928 ];
     mainProgram = "pwvucontrol";
     platforms = platforms.linux;
   };
diff --git a/pkgs/applications/audio/pyradio/default.nix b/pkgs/applications/audio/pyradio/default.nix
index 45cec01bd6985..6e07d531514ce 100644
--- a/pkgs/applications/audio/pyradio/default.nix
+++ b/pkgs/applications/audio/pyradio/default.nix
@@ -6,13 +6,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "pyradio";
-  version = "0.9.3.6";
+  version = "0.9.3.9";
 
   src = fetchFromGitHub {
     owner = "coderholic";
     repo = "pyradio";
     rev = "refs/tags/${version}";
-    hash = "sha256-As4xjwJtEKlnFuBigC7nN0kAPe0+99rE9KZ0F6i7qIQ=";
+    hash = "sha256-EoHCOg4nPkKRSFX/3AUKJaXzS6J1quwtv+mKeKBu5Ns=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/qjackctl/default.nix b/pkgs/applications/audio/qjackctl/default.nix
index 47f8f10fbf0ff..871f9012a584c 100644
--- a/pkgs/applications/audio/qjackctl/default.nix
+++ b/pkgs/applications/audio/qjackctl/default.nix
@@ -37,7 +37,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A Qt application to control the JACK sound server daemon";
+    description = "Qt application to control the JACK sound server daemon";
     mainProgram = "qjackctl";
     homepage = "https://github.com/rncbc/qjackctl";
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/audio/qmidiarp/default.nix b/pkgs/applications/audio/qmidiarp/default.nix
index 7b7f929e53798..6e9edbebf0301 100644
--- a/pkgs/applications/audio/qmidiarp/default.nix
+++ b/pkgs/applications/audio/qmidiarp/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   ]);
 
   meta = with lib; {
-    description = "An advanced MIDI arpeggiator";
+    description = "Advanced MIDI arpeggiator";
     mainProgram = "qmidiarp";
     longDescription = ''
       An advanced MIDI arpeggiator, programmable step sequencer and LFO for Linux.
diff --git a/pkgs/applications/audio/qmidinet/default.nix b/pkgs/applications/audio/qmidinet/default.nix
index 29c8ad7a797f7..f6985abfbe3f8 100644
--- a/pkgs/applications/audio/qmidinet/default.nix
+++ b/pkgs/applications/audio/qmidinet/default.nix
@@ -16,7 +16,7 @@ mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
 
   meta = with lib; {
-    description = "A MIDI network gateway application that sends and receives MIDI data (ALSA Sequencer and/or JACK MIDI) over the network";
+    description = "MIDI network gateway application that sends and receives MIDI data (ALSA Sequencer and/or JACK MIDI) over the network";
     mainProgram = "qmidinet";
     homepage = "http://qmidinet.sourceforge.net/";
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/audio/qpwgraph/default.nix b/pkgs/applications/audio/qpwgraph/default.nix
index 97427b99e5867..72b06a0bab0e0 100644
--- a/pkgs/applications/audio/qpwgraph/default.nix
+++ b/pkgs/applications/audio/qpwgraph/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
   cmakeFlags = [ "-DCONFIG_WAYLAND=ON" ];
 
   meta = with lib; {
-    description = "Qt graph manager for PipeWire, similar to QjackCtl.";
+    description = "Qt graph manager for PipeWire, similar to QjackCtl";
     longDescription = ''
       qpwgraph is a graph manager dedicated for PipeWire,
       using the Qt C++ framework, based and pretty much like
diff --git a/pkgs/applications/audio/radioboat/default.nix b/pkgs/applications/audio/radioboat/default.nix
index b5421115201a3..ebb19dcf479e1 100644
--- a/pkgs/applications/audio/radioboat/default.nix
+++ b/pkgs/applications/audio/radioboat/default.nix
@@ -50,7 +50,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A terminal web radio client";
+    description = "Terminal web radio client";
     mainProgram = "radioboat";
     homepage = "https://github.com/slashformotion/radioboat";
     license = licenses.asl20;
diff --git a/pkgs/applications/audio/radiotray-ng/default.nix b/pkgs/applications/audio/radiotray-ng/default.nix
index c67f3f4c56c0c..51dbc26f5617d 100644
--- a/pkgs/applications/audio/radiotray-ng/default.nix
+++ b/pkgs/applications/audio/radiotray-ng/default.nix
@@ -102,7 +102,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An internet radio player for linux";
+    description = "Internet radio player for linux";
     homepage = "https://github.com/ebruck/radiotray-ng";
     license = licenses.gpl3;
     maintainers = with maintainers; [ dtzWill ];
diff --git a/pkgs/applications/audio/reaper/default.nix b/pkgs/applications/audio/reaper/default.nix
index 7adba1d0c1566..833b4e3b073a1 100644
--- a/pkgs/applications/audio/reaper/default.nix
+++ b/pkgs/applications/audio/reaper/default.nix
@@ -28,13 +28,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "reaper";
-  version = "7.15";
+  version = "7.16";
 
   src = fetchurl {
     url = url_for_platform version stdenv.hostPlatform.qemuArch;
-    hash = if stdenv.isDarwin then "sha256-7tWgbHIkARgsPi0buvbQb4qTqndyPwRRqut1Gj4WNZE=" else {
-      x86_64-linux = "sha256-O1xh+DKwPKTcQrNhWMX5ErKa1hXq0yeyt/XJMQav11c=";
-      aarch64-linux = "sha256-rQE8Aa+iFWpA18udCXm4JW8BPTEDeEQAupy353Sbcl8=";
+    hash = if stdenv.isDarwin then "sha256-UMliD9tk8VDpeQ4tBC31peemv7HAKHW0xtqoSkzYG4Y=" else {
+      x86_64-linux = "sha256-sK0GVK29SGkLBILeWcFjcvQ956NCPb1HvqmXLeLbgP8=";
+      aarch64-linux = "sha256-mJ/UtrWaPq3Oar8rMvRFm8iafK1I7bL42deIQyiHVMk=";
     }.${stdenv.hostPlatform.system};
   };
 
diff --git a/pkgs/applications/audio/reaper/updater.sh b/pkgs/applications/audio/reaper/updater.sh
index 31832f7173c66..ef070c38aa229 100755
--- a/pkgs/applications/audio/reaper/updater.sh
+++ b/pkgs/applications/audio/reaper/updater.sh
@@ -9,18 +9,14 @@ function set_hash_for_linux() {
   local arch=$1
   pkg_hash=$(nix-prefetch-url https://www.reaper.fm/files/${reaper_ver%.*}.x/reaper${reaper_ver/./}_linux_$arch.tar.xz)
   pkg_hash=$(nix hash to-sri "sha256:$pkg_hash")
-  # reset the version so the second architecture update doesn't get ignored
-  update-source-version reaper 0 "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" --system=$arch-linux
-  update-source-version reaper "${reaper_ver}" "$pkg_hash" --system=$arch-linux
+  update-source-version reaper "${reaper_ver}" "$pkg_hash" --system=$arch-linux --ignore-same-version
 }
 
 function set_hash_for_darwin() {
   local arch=$1
   pkg_hash=$(nix-prefetch-url https://www.reaper.fm/files/${reaper_ver%.*}.x/reaper${reaper_ver/./}_universal.dmg)
   pkg_hash=$(nix hash to-sri "sha256:$pkg_hash")
-  # reset the version so the second architecture update doesn't get ignored
-  update-source-version reaper 0 "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" --system=$arch-darwin
-  update-source-version reaper "${reaper_ver}" "$pkg_hash" --system=$arch-darwin
+  update-source-version reaper "${reaper_ver}" "$pkg_hash" --system=$arch-darwin --ignore-same-version
 }
 
 set_hash_for_linux aarch64
diff --git a/pkgs/applications/audio/rhvoice/default.nix b/pkgs/applications/audio/rhvoice/default.nix
index 7fe8a12dd42d7..16614d0e32e69 100644
--- a/pkgs/applications/audio/rhvoice/default.nix
+++ b/pkgs/applications/audio/rhvoice/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    description = "A free and open source speech synthesizer for Russian language and others";
+    description = "Free and open source speech synthesizer for Russian language and others";
     homepage = "https://github.com/Olga-Yakovleva/RHVoice/wiki";
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ berce ];
diff --git a/pkgs/applications/audio/rhythmbox/default.nix b/pkgs/applications/audio/rhythmbox/default.nix
index 0ef2bd5a6c40e..f09a663454b95 100644
--- a/pkgs/applications/audio/rhythmbox/default.nix
+++ b/pkgs/applications/audio/rhythmbox/default.nix
@@ -4,7 +4,6 @@
 , pkg-config
 , meson
 , ninja
-, fetchFromGitLab
 , python3
 , vala
 , glib
@@ -114,7 +113,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/rhythmbox";
-    description = "A music playing application for GNOME";
+    description = "Music playing application for GNOME";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.rasendubi ];
diff --git a/pkgs/applications/audio/rofi-mpd/default.nix b/pkgs/applications/audio/rofi-mpd/default.nix
index 65c4c700e262e..ec76fbdf801bb 100644
--- a/pkgs/applications/audio/rofi-mpd/default.nix
+++ b/pkgs/applications/audio/rofi-mpd/default.nix
@@ -17,7 +17,7 @@ python3Packages.buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A rofi menu for interacting with MPD written in Python";
+    description = "Rofi menu for interacting with MPD written in Python";
     mainProgram = "rofi-mpd";
     homepage = "https://github.com/JakeStanger/Rofi_MPD";
     license = licenses.mit;
diff --git a/pkgs/applications/audio/samplebrain/default.nix b/pkgs/applications/audio/samplebrain/default.nix
index 54314812491c3..ae3549ff16d91 100644
--- a/pkgs/applications/audio/samplebrain/default.nix
+++ b/pkgs/applications/audio/samplebrain/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A custom sample mashing app";
+    description = "Custom sample mashing app";
     mainProgram = "samplebrain";
     homepage = "https://thentrythis.org/projects/samplebrain";
     changelog = "https://gitlab.com/then-try-this/samplebrain/-/releases/v${version}_release";
diff --git a/pkgs/applications/audio/samplv1/default.nix b/pkgs/applications/audio/samplv1/default.nix
index 1af25d0d75b56..991af8eac354b 100644
--- a/pkgs/applications/audio/samplv1/default.nix
+++ b/pkgs/applications/audio/samplv1/default.nix
@@ -17,7 +17,7 @@ mkDerivation rec {
   buildInputs = [ libjack2 alsa-lib liblo libsndfile lv2 qtbase rubberband ];
 
   meta = with lib; {
-    description = "An old-school all-digital polyphonic sampler synthesizer with stereo fx";
+    description = "Old-school all-digital polyphonic sampler synthesizer with stereo fx";
     mainProgram = "samplv1_jack";
     homepage = "http://samplv1.sourceforge.net/";
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/audio/setbfree/default.nix b/pkgs/applications/audio/setbfree/default.nix
index d1ac18eabbcf3..309cac8e8559c 100644
--- a/pkgs/applications/audio/setbfree/default.nix
+++ b/pkgs/applications/audio/setbfree/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation  rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A DSP tonewheel organ emulator";
+    description = "DSP tonewheel organ emulator";
     homepage = "https://setbfree.org";
     license = licenses.gpl2;
     platforms = [ "x86_64-linux" "i686-linux" ]; # fails on ARM and Darwin
diff --git a/pkgs/applications/audio/sfxr-qt/default.nix b/pkgs/applications/audio/sfxr-qt/default.nix
index 529d12db967f8..33724f9230e73 100644
--- a/pkgs/applications/audio/sfxr-qt/default.nix
+++ b/pkgs/applications/audio/sfxr-qt/default.nix
@@ -57,7 +57,7 @@ mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/agateau/sfxr-qt";
-    description = "A sound effect generator, QtQuick port of sfxr";
+    description = "Sound effect generator, QtQuick port of sfxr";
     mainProgram = "sfxr-qt";
     license = licenses.gpl2;
     maintainers = with maintainers; [ fgaz ];
diff --git a/pkgs/applications/audio/sfxr/default.nix b/pkgs/applications/audio/sfxr/default.nix
index 6f148fae25244..d3314facb6920 100644
--- a/pkgs/applications/audio/sfxr/default.nix
+++ b/pkgs/applications/audio/sfxr/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     broken = stdenv.isDarwin;
     homepage = "http://www.drpetter.se/project_sfxr.html";
-    description = "A videogame sound effect generator";
+    description = "Videogame sound effect generator";
     mainProgram = "sfxr";
     license = licenses.mit;
     maintainers = with maintainers; [ fgaz ];
diff --git a/pkgs/applications/audio/sidplayfp/default.nix b/pkgs/applications/audio/sidplayfp/default.nix
index 72e3e380a8481..c0a30fb900162 100644
--- a/pkgs/applications/audio/sidplayfp/default.nix
+++ b/pkgs/applications/audio/sidplayfp/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "sidplayfp";
-  version = "2.7.0";
+  version = "2.8.0";
 
   src = fetchFromGitHub {
     owner = "libsidplayfp";
     repo = "sidplayfp";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-bIX9BByUdScbS0NCrUjF5PTHG9T6hrPGjD5XM0eQgfA=";
+    hash = "sha256-2OgU2J/tot5HK4FV1pvZzI9u/e8p65Ymnqj7IdCcfIs=";
   };
 
   strictDeps = true;
@@ -54,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A SID player using libsidplayfp";
+    description = "SID player using libsidplayfp";
     homepage = "https://github.com/libsidplayfp/sidplayfp";
     license = with licenses; [ gpl2Plus ];
     mainProgram = "sidplayfp";
diff --git a/pkgs/applications/audio/sonata/default.nix b/pkgs/applications/audio/sonata/default.nix
index b0093a8093da7..8b6b9631a85d0 100644
--- a/pkgs/applications/audio/sonata/default.nix
+++ b/pkgs/applications/audio/sonata/default.nix
@@ -45,7 +45,7 @@ in buildPythonApplication rec {
   '';
 
   meta = {
-    description = "An elegant client for the Music Player Daemon";
+    description = "Elegant client for the Music Player Daemon";
     mainProgram = "sonata";
     longDescription = ''
       Sonata is an elegant client for the Music Player Daemon.
diff --git a/pkgs/applications/audio/songrec/default.nix b/pkgs/applications/audio/songrec/default.nix
index 5493418ba1a27..37d69bcd48a19 100644
--- a/pkgs/applications/audio/songrec/default.nix
+++ b/pkgs/applications/audio/songrec/default.nix
@@ -39,7 +39,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "An open-source Shazam client for Linux, written in Rust";
+    description = "Open-source Shazam client for Linux, written in Rust";
     homepage = "https://github.com/marin-m/SongRec";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/sony-headphones-client/default.nix b/pkgs/applications/audio/sony-headphones-client/default.nix
index 24cae82f1b02d..81d405b9d85ac 100644
--- a/pkgs/applications/audio/sony-headphones-client/default.nix
+++ b/pkgs/applications/audio/sony-headphones-client/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A client recreating the functionality of the Sony Headphones app";
+    description = "Client recreating the functionality of the Sony Headphones app";
     homepage = "https://github.com/Plutoberth/SonyHeadphonesClient";
     license = licenses.mit;
     maintainers = with maintainers; [ stunkymonkey ];
diff --git a/pkgs/applications/audio/sooperlooper/default.nix b/pkgs/applications/audio/sooperlooper/default.nix
index 35fb524ab3015..5e2ea785b281c 100644
--- a/pkgs/applications/audio/sooperlooper/default.nix
+++ b/pkgs/applications/audio/sooperlooper/default.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A live looping sampler capable of immediate loop recording, overdubbing, multiplying, reversing and more";
+    description = "Live looping sampler capable of immediate loop recording, overdubbing, multiplying, reversing and more";
     longDescription = ''
       It allows for multiple simultaneous multi-channel loops limited only by your computer's available memory.
       The application is a standalone JACK client with an engine controllable via OSC and MIDI.
diff --git a/pkgs/applications/audio/sorcer/default.nix b/pkgs/applications/audio/sorcer/default.nix
index 4da290791758d..6c28d540458f5 100644
--- a/pkgs/applications/audio/sorcer/default.nix
+++ b/pkgs/applications/audio/sorcer/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
     homepage = "http://openavproductions.com/sorcer/";
-    description = "A wavetable LV2 plugin synth, targeted at the electronic / dubstep genre";
+    description = "Wavetable LV2 plugin synth, targeted at the electronic / dubstep genre";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/sound-juicer/default.nix b/pkgs/applications/audio/sound-juicer/default.nix
index 88e7a314c822e..ef299ac7074cf 100644
--- a/pkgs/applications/audio/sound-juicer/default.nix
+++ b/pkgs/applications/audio/sound-juicer/default.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A Gnome CD Ripper";
+    description = "Gnome CD Ripper";
     mainProgram = "sound-juicer";
     homepage = "https://gitlab.gnome.org/GNOME/sound-juicer";
     maintainers = [ maintainers.bdimcheff ];
diff --git a/pkgs/applications/audio/soundtracker/default.nix b/pkgs/applications/audio/soundtracker/default.nix
index bf308fd29d280..02c4813e03703 100644
--- a/pkgs/applications/audio/soundtracker/default.nix
+++ b/pkgs/applications/audio/soundtracker/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation (finalAttrs: {
   ] ++ lib.optional stdenv.isLinux alsa-lib;
 
   meta = with lib; {
-    description = "A music tracking tool similar in design to the DOS program FastTracker and the Amiga legend ProTracker";
+    description = "Music tracking tool similar in design to the DOS program FastTracker and the Amiga legend ProTracker";
     longDescription = ''
       SoundTracker is a pattern-oriented music editor (similar to the DOS
       program 'FastTracker'). Samples are lined up on tracks and patterns
diff --git a/pkgs/applications/audio/spectrojack/default.nix b/pkgs/applications/audio/spectrojack/default.nix
index 54cb7101e6e8f..92ac92af7e9a3 100644
--- a/pkgs/applications/audio/spectrojack/default.nix
+++ b/pkgs/applications/audio/spectrojack/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A little spectrogram/audiogram/sonogram/whatever for JACK";
+    description = "Little spectrogram/audiogram/sonogram/whatever for JACK";
     homepage = "http://sed.free.fr/spectrojack";
     license = lib.licenses.publicDomain;
     maintainers = with lib.maintainers; [ sleexyz ];
diff --git a/pkgs/applications/audio/spotify-cli-linux/default.nix b/pkgs/applications/audio/spotify-cli-linux/default.nix
index 73b1ea9132061..38aec6ea6f082 100644
--- a/pkgs/applications/audio/spotify-cli-linux/default.nix
+++ b/pkgs/applications/audio/spotify-cli-linux/default.nix
@@ -22,7 +22,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://pwittchen.github.io/spotify-cli-linux/";
     maintainers = [ maintainers.kmein ];
-    description = "A command line interface to Spotify on Linux.";
+    description = "Command line interface to Spotify on Linux";
     mainProgram = "spotifycli";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/spotify-player/default.nix b/pkgs/applications/audio/spotify-player/default.nix
index e0bc35858b047..2a250ff946652 100644
--- a/pkgs/applications/audio/spotify-player/default.nix
+++ b/pkgs/applications/audio/spotify-player/default.nix
@@ -33,16 +33,16 @@ assert lib.assertOneOf "withAudioBackend" withAudioBackend [ "" "alsa" "pulseaud
 
 rustPlatform.buildRustPackage rec {
   pname = "spotify-player";
-  version = "0.18.1";
+  version = "0.18.2";
 
   src = fetchFromGitHub {
     owner = "aome510";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-3nPESnBWaxWjWMvRG7gbXt8FzuPlx2soOonCKom+tzA=";
+    hash = "sha256-bLUPQgqSsE9tF5YiFj5B+Ylyy96DhWFNjwqXbQ9H8uc=";
   };
 
-  cargoHash = "sha256-9HroNMHvmNjGPnEO4kTDalHBXe5MH7btEwk6maLh05E=";
+  cargoHash = "sha256-rptGA7J63rHdmxuPIguhZYYs8tZbpidJ0fXroBBoEIM=";
 
   nativeBuildInputs = [
     pkg-config
@@ -92,7 +92,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = {
-    description = "A terminal spotify player that has feature parity with the official client";
+    description = "Terminal spotify player that has feature parity with the official client";
     homepage = "https://github.com/aome510/spotify-player";
     changelog = "https://github.com/aome510/spotify-player/releases/tag/v${version}";
     mainProgram = "spotify_player";
diff --git a/pkgs/applications/audio/spotifyd/default.nix b/pkgs/applications/audio/spotifyd/default.nix
index c80843896425b..13c85e7d3584c 100644
--- a/pkgs/applications/audio/spotifyd/default.nix
+++ b/pkgs/applications/audio/spotifyd/default.nix
@@ -38,7 +38,7 @@ rustPackages.rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "An open source Spotify client running as a UNIX daemon";
+    description = "Open source Spotify client running as a UNIX daemon";
     homepage = "https://spotifyd.rs/";
     changelog = "https://github.com/Spotifyd/spotifyd/blob/${src.rev}/CHANGELOG.md";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/audio/squishyball/default.nix b/pkgs/applications/audio/squishyball/default.nix
index af8eb9b373142..170cfe63ba255 100644
--- a/pkgs/applications/audio/squishyball/default.nix
+++ b/pkgs/applications/audio/squishyball/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A tool to perform sample comparison testing on the command line";
+    description = "Tool to perform sample comparison testing on the command line";
     longDescription = ''
        squishyball is a simple command-line utility for performing
        double-blind A/B, A/B/X or X/X/Y testing on the command line.
diff --git a/pkgs/applications/audio/ssrc/default.nix b/pkgs/applications/audio/ssrc/default.nix
index d6d776c860588..73fd622fbeb23 100644
--- a/pkgs/applications/audio/ssrc/default.nix
+++ b/pkgs/applications/audio/ssrc/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = with lib; {
-    description = "A high quality audio sampling rate converter";
+    description = "High quality audio sampling rate converter";
     longDescription = ''
       This program converts sampling rates of PCM wav files. This
       program also has a function to apply dither to its output and
diff --git a/pkgs/applications/audio/stone-phaser/default.nix b/pkgs/applications/audio/stone-phaser/default.nix
index a60200fa567fd..6bef356172cd5 100644
--- a/pkgs/applications/audio/stone-phaser/default.nix
+++ b/pkgs/applications/audio/stone-phaser/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
     homepage = "https://github.com/jpcima/stone-phaser";
-    description = "A classic analog phaser effect, made with DPF and Faust";
+    description = "Classic analog phaser effect, made with DPF and Faust";
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
     license = licenses.boost;
diff --git a/pkgs/applications/audio/subtitlr/default.nix b/pkgs/applications/audio/subtitlr/default.nix
index 67847f3b91b02..0444fa7d4535c 100644
--- a/pkgs/applications/audio/subtitlr/default.nix
+++ b/pkgs/applications/audio/subtitlr/default.nix
@@ -27,7 +27,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "This application, a subtitle generator for YouTube, utilizes OpenAI's Whisper API.";
+    description = "This application, a subtitle generator for YouTube, utilizes OpenAI's Whisper API";
     homepage = "https://github.com/yoanbernabeu/Subtitlr/";
     license = licenses.mit;
     maintainers = with maintainers; [ qjoly ];
diff --git a/pkgs/applications/audio/synthv1/default.nix b/pkgs/applications/audio/synthv1/default.nix
index 770c5d924a1db..77dfec0dd8e6d 100644
--- a/pkgs/applications/audio/synthv1/default.nix
+++ b/pkgs/applications/audio/synthv1/default.nix
@@ -14,7 +14,7 @@ mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
 
   meta = with lib; {
-    description = "An old-school 4-oscillator subtractive polyphonic synthesizer with stereo fx";
+    description = "Old-school 4-oscillator subtractive polyphonic synthesizer with stereo fx";
     mainProgram = "synthv1_jack";
     homepage = "https://synthv1.sourceforge.io/";
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/audio/tageditor/default.nix b/pkgs/applications/audio/tageditor/default.nix
index 2d720955baa91..af45e965b7ec4 100644
--- a/pkgs/applications/audio/tageditor/default.nix
+++ b/pkgs/applications/audio/tageditor/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/Martchus/tageditor";
-    description = "A tag editor with Qt GUI and command-line interface supporting MP4/M4A/AAC (iTunes), ID3, Vorbis, Opus, FLAC and Matroska";
+    description = "Tag editor with Qt GUI and command-line interface supporting MP4/M4A/AAC (iTunes), ID3, Vorbis, Opus, FLAC and Matroska";
     license = licenses.gpl2;
     maintainers = [ maintainers.matthiasbeyer ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/tagger/default.nix b/pkgs/applications/audio/tagger/default.nix
index bac0d7c9d8337..4298702073393 100644
--- a/pkgs/applications/audio/tagger/default.nix
+++ b/pkgs/applications/audio/tagger/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An easy-to-use music tag (metadata) editor";
+    description = "Easy-to-use music tag (metadata) editor";
     homepage = "https://github.com/nlogozzo/NickvisionTagger";
     mainProgram = "org.nickvision.tagger";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/audio/tambura/default.nix b/pkgs/applications/audio/tambura/default.nix
index e1d62754c4494..9fcf9bb70ef93 100644
--- a/pkgs/applications/audio/tambura/default.nix
+++ b/pkgs/applications/audio/tambura/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A FAUST patch inspired by the Indian Tambura/Tanpura - a four string drone instrument, known for its unique rich harmonic timbre";
+    description = "FAUST patch inspired by the Indian Tambura/Tanpura - a four string drone instrument, known for its unique rich harmonic timbre";
     homepage = "https://github.com/olilarkin/Tambura";
     license = licenses.gpl2;
     maintainers = [ maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/tauon/default.nix b/pkgs/applications/audio/tauon/default.nix
index 2d7a3f441e4c6..990f0601c51dc 100644
--- a/pkgs/applications/audio/tauon/default.nix
+++ b/pkgs/applications/audio/tauon/default.nix
@@ -133,7 +133,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "The Linux desktop music player from the future";
+    description = "Linux desktop music player from the future";
     mainProgram = "tauon";
     homepage = "https://tauonmusicbox.rocks/";
     changelog = "https://github.com/Taiko2k/TauonMusicBox/releases/tag/v${finalAttrs.version}";
diff --git a/pkgs/applications/audio/tidal-hifi/default.nix b/pkgs/applications/audio/tidal-hifi/default.nix
index 744508f404d9b..e432560524faf 100644
--- a/pkgs/applications/audio/tidal-hifi/default.nix
+++ b/pkgs/applications/audio/tidal-hifi/default.nix
@@ -32,15 +32,16 @@
 , systemd
 , xdg-utils
 , xorg
+, libGL
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "tidal-hifi";
-  version = "5.12.0";
+  version = "5.13.1";
 
   src = fetchurl {
     url = "https://github.com/Mastermindzh/tidal-hifi/releases/download/${finalAttrs.version}/tidal-hifi_${finalAttrs.version}_amd64.deb";
-    sha256 = "sha256-DwUKoDaXA99ILxlyay5dRL/ewnzyqSSR6fxPxkr8X34=";
+    sha256 = "sha256-TnvVm0qjm41if90+f9YtO8wR6NYg6oUZbZd0RiUU33M=";
   };
 
   nativeBuildInputs = [ autoPatchelfHook dpkg makeWrapper ];
@@ -84,6 +85,7 @@ stdenv.mkDerivation (finalAttrs: {
     xorg.libXScrnSaver
     xorg.libxshmfence
     xorg.libXtst
+    libGL
   ];
 
   runtimeDependencies =
@@ -113,7 +115,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     changelog = "https://github.com/Mastermindzh/tidal-hifi/releases/tag/${finalAttrs.version}";
-    description = "The web version of Tidal running in electron with hifi support thanks to widevine";
+    description = "Web version of Tidal running in electron with hifi support thanks to widevine";
     homepage = "https://github.com/Mastermindzh/tidal-hifi";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ qbit spikespaz ];
diff --git a/pkgs/applications/audio/tone/default.nix b/pkgs/applications/audio/tone/default.nix
index dc10439ab0fc9..c6dc5daa04239 100644
--- a/pkgs/applications/audio/tone/default.nix
+++ b/pkgs/applications/audio/tone/default.nix
@@ -24,7 +24,7 @@ buildDotnetModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/sandreas/tone";
-    description = "A cross platform utility to dump and modify audio metadata for a wide variety of formats";
+    description = "Cross platform utility to dump and modify audio metadata for a wide variety of formats";
     license = licenses.asl20;
     maintainers = [ maintainers.jvanbruegge ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/tonelib-gfx/default.nix b/pkgs/applications/audio/tonelib-gfx/default.nix
index 260ebd40872ef..826433128e7da 100644
--- a/pkgs/applications/audio/tonelib-gfx/default.nix
+++ b/pkgs/applications/audio/tonelib-gfx/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
  '';
 
   meta = with lib; {
-    description = "Tonelib GFX is an amp and effects modeling software for electric guitar and bass.";
+    description = "Tonelib GFX is an amp and effects modeling software for electric guitar and bass";
     homepage = "https://tonelib.net/";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
diff --git a/pkgs/applications/audio/touchosc/default.nix b/pkgs/applications/audio/touchosc/default.nix
index 23d254efc0b55..bc53b296357b6 100644
--- a/pkgs/applications/audio/touchosc/default.nix
+++ b/pkgs/applications/audio/touchosc/default.nix
@@ -45,7 +45,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "touchosc";
-  version = "1.3.1.204";
+  version = "1.3.3.207";
 
   suffix = {
     aarch64-linux = "linux-arm64";
@@ -56,9 +56,9 @@ stdenv.mkDerivation rec {
   src = fetchurl {
     url = "https://hexler.net/pub/${pname}/${pname}-${version}-${suffix}.deb";
     hash = {
-      aarch64-linux = "sha256-uSXCgwJUEQZDKPAHDT4kKcvkBg9c+T0nrpvYW8jG8Kg=";
-      armv7l-linux  = "sha256-dG5BF8n66YCYCZzc1pLf2qpMLmbv6lfVZYfgry25jQ0=";
-      x86_64-linux  = "sha256-R07kTuwsfe6WhGpHeyZS/HydDUSH6AByx0pJu/i40xE=";
+      aarch64-linux = "sha256-peEO5haVHXvCT+F48UiKdgwuccqBuZACEXnepB4dcvY=";
+      armv7l-linux  = "sha256-uQNoEye/Jd3T6pLJY2sN7hkTQl3AAilG5Vr9G61vFRM=";
+      x86_64-linux  = "sha256-+/r9gRK8HyynlJ1syC2VQ6VboPEzsVNqEVrQfNLeEv0=";
     }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   };
 
diff --git a/pkgs/applications/audio/tuner/default.nix b/pkgs/applications/audio/tuner/default.nix
index 8262fa152bde9..8637340f38262 100644
--- a/pkgs/applications/audio/tuner/default.nix
+++ b/pkgs/applications/audio/tuner/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/louis77/tuner";
-    description = "An app to discover and play internet radio stations";
+    description = "App to discover and play internet radio stations";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     mainProgram = "com.github.louis77.tuner";
diff --git a/pkgs/applications/audio/vgmstream/default.nix b/pkgs/applications/audio/vgmstream/default.nix
index 99802872ef036..95d36296033ed 100644
--- a/pkgs/applications/audio/vgmstream/default.nix
+++ b/pkgs/applications/audio/vgmstream/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   ] ++ lib.optional (! buildAudaciousPlugin) "-DBUILD_AUDACIOUS=OFF";
 
   meta = with lib; {
-    description = "A library for playback of various streamed audio formats used in video games";
+    description = "Library for playback of various streamed audio formats used in video games";
     homepage    = "https://vgmstream.org";
     maintainers = with maintainers; [ zane ];
     license     = with licenses; isc;
diff --git a/pkgs/applications/audio/vimpc/default.nix b/pkgs/applications/audio/vimpc/default.nix
index 713f444ef1ea7..f85bf4ebd8672 100644
--- a/pkgs/applications/audio/vimpc/default.nix
+++ b/pkgs/applications/audio/vimpc/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A vi/vim inspired client for the Music Player Daemon (mpd)";
+    description = "Vi/vim inspired client for the Music Player Daemon (mpd)";
     homepage = "https://github.com/boysetsfrog/vimpc";
     license = licenses.gpl3;
     platforms = platforms.unix;
diff --git a/pkgs/applications/audio/viper4linux/default.nix b/pkgs/applications/audio/viper4linux/default.nix
index 118af6853e5ad..289c6fbf233f7 100644
--- a/pkgs/applications/audio/viper4linux/default.nix
+++ b/pkgs/applications/audio/viper4linux/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An Adaptive Digital Sound Processor";
+    description = "Adaptive Digital Sound Processor";
     homepage = "https://github.com/Audio4Linux/Viper4Linux";
     license = licenses.gpl3Plus;
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/audio/vocal/default.nix b/pkgs/applications/audio/vocal/default.nix
index eeea9a73f1e69..ee97a92ac3283 100644
--- a/pkgs/applications/audio/vocal/default.nix
+++ b/pkgs/applications/audio/vocal/default.nix
@@ -84,7 +84,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "The podcast client for the modern free desktop";
+    description = "Podcast client for the modern free desktop";
     longDescription = ''
       Vocal is a powerful, fast, and intuitive application that helps users find new podcasts, manage their libraries, and enjoy the best that independent audio and video publishing has to offer. Vocal features full support for both episode downloading and streaming, native system integration, iTunes store search and top 100 charts (with international results support), iTunes link parsing, OPML importing and exporting, and so much more. Plus, it has great smart features like automatically keeping your library clean from old files, and the ability to set custom skip intervals.
     '';
diff --git a/pkgs/applications/audio/vocproc/default.nix b/pkgs/applications/audio/vocproc/default.nix
index bb402f425daa2..e7dd5cc8716ca 100644
--- a/pkgs/applications/audio/vocproc/default.nix
+++ b/pkgs/applications/audio/vocproc/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://hyperglitch.com/dev/VocProc";
-    description = "An LV2 plugin for pitch shifting (with or without formant correction), vocoding, automatic pitch correction and harmonizing of singing voice (harmonizer)";
+    description = "LV2 plugin for pitch shifting (with or without formant correction), vocoding, automatic pitch correction and harmonizing of singing voice (harmonizer)";
     license = licenses.gpl2;
     maintainers = [ maintainers.michalrus ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/waon/default.nix b/pkgs/applications/audio/waon/default.nix
index 970ab087b2ca7..b1f66798dd9c7 100644
--- a/pkgs/applications/audio/waon/default.nix
+++ b/pkgs/applications/audio/waon/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Wave-to-Notes transcriber";
+    description = "Wave-to-Notes transcriber";
     homepage = "https://kichiki.github.io/WaoN/";
     license = licenses.gpl2;
     maintainers = [ maintainers.puckipedia ];
diff --git a/pkgs/applications/audio/waylyrics/default.nix b/pkgs/applications/audio/waylyrics/default.nix
index a7be3babf5626..69069f01243c3 100644
--- a/pkgs/applications/audio/waylyrics/default.nix
+++ b/pkgs/applications/audio/waylyrics/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "waylyrics";
-  version = "0.3.8";
+  version = "0.3.12";
 
   src = fetchFromGitHub {
     owner = "waylyrics";
     repo = "waylyrics";
     rev = "v${version}";
-    hash = "sha256-ZOz8LkMznSX/7nSu7IpZ8kVemo2AuRLOgrS3WWg+BXU=";
+    hash = "sha256-FfrgeUDKiM9m0mvKlu02KEuvsq+3Gv3yPFW1DIQw05I=";
   };
 
-  cargoHash = "sha256-mURcz3i98qlsn/rzZjeJncyVX5xsuqWY2/PcNA6WAWQ=";
+  cargoHash = "sha256-xD46aKT18Kl+81Pfv+zleUUKhSV1Px7JFjhXw1/4cBA=";
 
   nativeBuildInputs = [ pkg-config wrapGAppsHook4 ];
   buildInputs = [ openssl dbus ];
diff --git a/pkgs/applications/audio/whipper/default.nix b/pkgs/applications/audio/whipper/default.nix
index 53d7262d78df7..179bb96660859 100644
--- a/pkgs/applications/audio/whipper/default.nix
+++ b/pkgs/applications/audio/whipper/default.nix
@@ -3,9 +3,12 @@
 , fetchFromGitHub
 , fetchpatch
 , installShellFiles
+, wrapGAppsNoGuiHook
+, gobject-introspection
 , libcdio-paranoia
 , cdrdao
 , libsndfile
+, glib
 , flac
 , sox
 , util-linux
@@ -37,6 +40,8 @@ in python3.pkgs.buildPythonApplication rec {
 
   nativeBuildInputs = with python3.pkgs; [
     installShellFiles
+    wrapGAppsNoGuiHook
+    gobject-introspection
 
     setuptools-scm
     docutils
@@ -54,7 +59,7 @@ in python3.pkgs.buildPythonApplication rec {
     setuptools
   ];
 
-  buildInputs = [ libsndfile ];
+  buildInputs = [ libsndfile glib ];
 
   nativeCheckInputs = with python3.pkgs; [
     twisted
@@ -62,8 +67,11 @@ in python3.pkgs.buildPythonApplication rec {
 
   makeWrapperArgs = [
     "--prefix" "PATH" ":" (lib.makeBinPath bins)
+    "\${gappsWrapperArgs[@]}"
   ];
 
+  dontWrapGApps = true;
+
   outputs = [ "out" "man" ];
   postBuild = ''
     make -C man
@@ -88,7 +96,7 @@ in python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/whipper-team/whipper";
-    description = "A CD ripper aiming for accuracy over speed";
+    description = "CD ripper aiming for accuracy over speed";
     maintainers = with maintainers; [ emily ];
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/pkgs/applications/audio/x42-avldrums/default.nix b/pkgs/applications/audio/x42-avldrums/default.nix
index 16e1a24343c53..3234a719e3c00 100644
--- a/pkgs/applications/audio/x42-avldrums/default.nix
+++ b/pkgs/applications/audio/x42-avldrums/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "x42-avldrums";
-  version = "0.7.2";
+  version = "0.7.3";
 
   src = fetchFromGitHub {
     owner = "x42";
     repo = "avldrums.lv2";
     rev = "v${version}";
-    hash = "sha256-NNqBZTWjIM97qsXTW/+6T7eOAELi/OwXh4mCYPD/C6I=";
+    hash = "sha256-AZKHjzgw0TtLHh4TF+yOUSa+GlNVwyHCpJWAZikXTy4=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/audio/yasr/default.nix b/pkgs/applications/audio/yasr/default.nix
index b90b7272b1ab0..7da1e066413b7 100644
--- a/pkgs/applications/audio/yasr/default.nix
+++ b/pkgs/applications/audio/yasr/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://yasr.sourceforge.net";
-    description = "A general-purpose console screen reader";
+    description = "General-purpose console screen reader";
     longDescription = "Yasr is a general-purpose console screen reader for GNU/Linux and other Unix-like operating systems.";
     platforms = lib.platforms.linux;
     license = lib.licenses.gpl2;
diff --git a/pkgs/applications/audio/youtube-music/default.nix b/pkgs/applications/audio/youtube-music/default.nix
index 642ba8e3fc0ff..e02bc32412bd2 100644
--- a/pkgs/applications/audio/youtube-music/default.nix
+++ b/pkgs/applications/audio/youtube-music/default.nix
@@ -4,74 +4,34 @@
 , electron
 , python3
 , stdenv
-, stdenvNoCC
 , copyDesktopItems
-, moreutils
-, cacert
-, jq
-, nodePackages
+, nodejs
+, pnpm
 , makeDesktopItem
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "youtube-music";
-  version = "3.3.6";
+  version = "3.3.12";
 
   src = fetchFromGitHub {
     owner = "th-ch";
     repo = "youtube-music";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-nxpctEG4XoxW6jOAxGdgTEYr6YnhFRR8+5HUQLxRJB0=";
+    hash = "sha256-kBGMp58086NQ77x1YGS5NewWfiDaXHOEbyflHPtdfIs=";
   };
 
-  pnpmDeps = stdenvNoCC.mkDerivation {
-    pname = "${finalAttrs.pname}-pnpm-deps";
-    inherit (finalAttrs) src version ELECTRON_SKIP_BINARY_DOWNLOAD;
-
-    nativeBuildInputs = [ jq moreutils nodePackages.pnpm cacert ];
-
-    installPhase = ''
-      export HOME=$(mktemp -d)
-
-      pnpm config set store-dir $out
-      pnpm install --frozen-lockfile --ignore-script
-
-      rm -rf $out/v3/tmp
-      for f in $(find $out -name "*.json"); do
-        sed -i -E -e 's/"checkedAt":[0-9]+,//g' $f
-        jq --sort-keys . $f | sponge $f
-      done
-    '';
-
-    dontBuild = true;
-    dontFixup = true;
-    outputHashMode = "recursive";
-    outputHash = {
-      x86_64-linux = "sha256-bujlQxP6Lr3qPUDxYXKyb702ZJY/xbuCsu3wVDhcb+8=";
-      aarch64-linux = "sha256-0kyjjttpXpFVhdza5NAjGrRn++qc/N5/u2dQl7VufLE=";
-      x86_64-darwin = "sha256-Q37QJt/mhfpSguOlkJGKFTCrIOrpbG3OBwaD/Bg09Us=";
-      aarch64-darwin = "sha256-wbfjzoGa/6vIlOOVX3bKNQ2uxzph3WSofo3MGXqA6yQ=";
-    }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
+  pnpmDeps = pnpm.fetchDeps {
+    inherit (finalAttrs) pname version src;
+    hash = "sha256-t5omzz6y8lVFGAuhtc+HF5gwu4Ntt/dxml+nWysEpVs=";
   };
 
-  nativeBuildInputs = [ makeWrapper python3 nodePackages.pnpm nodePackages.nodejs ]
+  nativeBuildInputs = [ makeWrapper python3 nodejs pnpm.configHook ]
     ++ lib.optionals (!stdenv.isDarwin) [ copyDesktopItems ];
 
 
   ELECTRON_SKIP_BINARY_DOWNLOAD = 1;
 
-  preBuild = ''
-    export HOME=$(mktemp -d)
-    export STORE_PATH=$(mktemp -d)
-
-    cp -Tr "$pnpmDeps" "$STORE_PATH"
-    chmod -R +w "$STORE_PATH"
-
-    pnpm config set store-dir "$STORE_PATH"
-    pnpm install --offline --frozen-lockfile --ignore-script
-    patchShebangs node_modules/{*,.*}
-  '';
-
   postBuild = lib.optionalString stdenv.isDarwin ''
     cp -R ${electron}/Applications/Electron.app Electron.app
     chmod -R u+w Electron.app
@@ -127,8 +87,9 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     description = "Electron wrapper around YouTube Music";
     homepage = "https://th-ch.github.io/youtube-music/";
+    changelog = "https://github.com/th-ch/youtube-music/blob/master/changelog.md#${lib.replaceStrings ["."] [""] finalAttrs.src.rev}";
     license = licenses.mit;
-    maintainers = [ maintainers.aacebedo ];
+    maintainers = with maintainers; [ aacebedo SuperSandro2000 ];
     mainProgram = "youtube-music";
     platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
   };
diff --git a/pkgs/applications/audio/zam-plugins/default.nix b/pkgs/applications/audio/zam-plugins/default.nix
index 11f039588882d..1638954c15c83 100644
--- a/pkgs/applications/audio/zam-plugins/default.nix
+++ b/pkgs/applications/audio/zam-plugins/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.zamaudio.com/?p=976";
-    description = "A collection of LV2/LADSPA/VST/JACK audio plugins by ZamAudio";
+    description = "Collection of LV2/LADSPA/VST/JACK audio plugins by ZamAudio";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/zita-at1/default.nix b/pkgs/applications/audio/zita-at1/default.nix
index 4e9544e39602d..d55942368f8fe 100644
--- a/pkgs/applications/audio/zita-at1/default.nix
+++ b/pkgs/applications/audio/zita-at1/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "zita-at1";
-  version = "0.6.2";
+  version = "0.8.2";
 
   src = fetchurl {
     url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
-    sha256 = "0mxfn61zvhlq3r1mqipyqzjbanrfdkk8x4nxbz8nlbdk0bf3vfqr";
+    sha256 = "sha256-NSYTJmgOmL/CgGI/rBGQuqmccZEzvwYgchb7e4XqmmM=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/audio/zynaddsubfx/mruby-zest/default.nix b/pkgs/applications/audio/zynaddsubfx/mruby-zest/default.nix
index f490e452b51c0..7f33e10f74208 100644
--- a/pkgs/applications/audio/zynaddsubfx/mruby-zest/default.nix
+++ b/pkgs/applications/audio/zynaddsubfx/mruby-zest/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The Zest Framework used in ZynAddSubFX's UI";
+    description = "Zest Framework used in ZynAddSubFX's UI";
     homepage = "https://github.com/mruby-zest";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ kira-bruneau ];
diff --git a/pkgs/applications/backup/deja-dup/default.nix b/pkgs/applications/backup/deja-dup/default.nix
index bb5c3c0c980fd..8e30c7b8998c0 100644
--- a/pkgs/applications/backup/deja-dup/default.nix
+++ b/pkgs/applications/backup/deja-dup/default.nix
@@ -65,7 +65,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A simple backup tool";
+    description = "Simple backup tool";
     longDescription = ''
       Déjà Dup is a simple backup tool. It hides the complexity \
       of backing up the Right Way (encrypted, off-site, and regular) \
diff --git a/pkgs/applications/backup/ludusavi/default.nix b/pkgs/applications/backup/ludusavi/default.nix
index 29e0950775cba..17b006f38566f 100644
--- a/pkgs/applications/backup/ludusavi/default.nix
+++ b/pkgs/applications/backup/ludusavi/default.nix
@@ -1,6 +1,8 @@
 { lib
+, stdenv
 , rustPlatform
 , fetchFromGitHub
+, installShellFiles
 , cmake
 , pkg-config
 , makeWrapper
@@ -34,6 +36,7 @@ rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = [
     cmake
+    installShellFiles
     pkg-config
     makeWrapper
   ];
@@ -57,6 +60,11 @@ rustPlatform.buildRustPackage rec {
     install -Dm644 "assets/ludusavi.desktop" -t "$out/share/applications/"
     install -Dm644 assets/MaterialIcons-Regular.ttf -t "$out/share/fonts/TTF/"
     install -Dm644 LICENSE -t "$out/share/licenses/ludusavi/"
+  '' + lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
+    installShellCompletion --cmd ludusavi \
+      --bash <($out/bin/ludusavi complete bash) \
+      --fish <($out/bin/ludusavi complete fish) \
+      --zsh <($out/bin/ludusavi complete zsh)
   '';
 
   postFixup =
diff --git a/pkgs/applications/backup/proxmox-backup-client/default.nix b/pkgs/applications/backup/proxmox-backup-client/default.nix
index 41060b725110b..fde70e9a8f9ab 100644
--- a/pkgs/applications/backup/proxmox-backup-client/default.nix
+++ b/pkgs/applications/backup/proxmox-backup-client/default.nix
@@ -146,7 +146,7 @@ rustPlatform.buildRustPackage {
   };
 
   meta = with lib; {
-    description = "The command line client for Proxmox Backup Server";
+    description = "Command line client for Proxmox Backup Server";
     homepage = "https://pbs.proxmox.com/docs/backup-client.html";
     changelog = "https://git.proxmox.com/?p=proxmox-backup.git;a=blob;f=debian/changelog;hb=refs/tags/v${version}";
     license = licenses.agpl3Only;
diff --git a/pkgs/applications/backup/restic-integrity/default.nix b/pkgs/applications/backup/restic-integrity/default.nix
index 9065f7f486c0f..d0311e5d40d0a 100644
--- a/pkgs/applications/backup/restic-integrity/default.nix
+++ b/pkgs/applications/backup/restic-integrity/default.nix
@@ -1,24 +1,25 @@
 { lib
 , rustPlatform
-, fetchFromGitLab
+, fetchFromGitea
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "restic-integrity";
-  version = "1.2.1";
-  src = fetchFromGitLab {
-    domain = "gitlab.upi.li";
+  version = "1.2.2";
+
+  src = fetchFromGitea {
+    domain = "git.nwex.de";
     owner = "networkException";
     repo = "restic-integrity";
     rev = version;
-    hash = "sha256-/n8muqW9ol0AY9RM3N4nqLDw0U1h0308M1uRCMS2kOM=";
+    hash = "sha256-QiISJCxxJH8wQeH/klB48POn6W9juQmIMCLGzGSyl6w=";
   };
 
-  cargoHash = "sha256-TYDPzjWxTK9hQhzSknkCao9lq9UjZN3yQX3wtkMmP6E=";
+  cargoHash = "sha256-GxehJjDd0AHbEc8kPWyLXAOPbrPCT59LddAL1ydnT5g=";
 
   meta = with lib; {
-    description = "A CLI tool to check the integrity of a restic repository without unlocking it";
-    homepage = "https://gitlab.upi.li/networkException/restic-integrity";
+    description = "CLI tool to check the integrity of a restic repository without unlocking it";
+    homepage = "https://git.nwex.de/networkException/restic-integrity";
     license = with licenses; [ bsd2 ];
     maintainers = with maintainers; [ janik ];
     mainProgram = "restic-integrity";
diff --git a/pkgs/applications/backup/timeshift/unwrapped.nix b/pkgs/applications/backup/timeshift/unwrapped.nix
index dd0cff4d55553..d009522f5c976 100644
--- a/pkgs/applications/backup/timeshift/unwrapped.nix
+++ b/pkgs/applications/backup/timeshift/unwrapped.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "timeshift";
-  version = "24.01.1";
+  version = "24.06.1";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "timeshift";
     rev = version;
-    hash = "sha256-vAKUR0VsOuiQmB+1jPOR0KufzfXaxAsf3EOPzdgFt0A=";
+    hash = "sha256-H4PCZ1WwNg34WSDXgmH6pUPBglXafLTFfIzvmWiyeCw=";
   };
 
   patches = [
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A system restore tool for Linux";
+    description = "System restore tool for Linux";
     longDescription = ''
       TimeShift creates filesystem snapshots using rsync+hardlinks or BTRFS snapshots.
       Snapshots can be restored using TimeShift installed on the system or from Live CD or USB.
diff --git a/pkgs/applications/backup/unifi-protect-backup/default.nix b/pkgs/applications/backup/unifi-protect-backup/default.nix
index 1eb0909bc09bf..4981d509e236d 100644
--- a/pkgs/applications/backup/unifi-protect-backup/default.nix
+++ b/pkgs/applications/backup/unifi-protect-backup/default.nix
@@ -3,16 +3,32 @@
 , python3
 }:
 
-python3.pkgs.buildPythonApplication rec {
+let
+  python = python3.override {
+    packageOverrides = self: super: {
+      pyunifiprotect = super.pyunifiprotect.overridePythonAttrs {
+        version = "unstable-2024-06-08";
+        src = fetchFromGitHub {
+          owner = "ep1cman";
+          repo = "pyunifiprotect";
+          rev = "d967bca2c65e0aa6a7363afb6367c3745c076747";
+          hash = "sha256-gSAK/T9cjIiRC/WjwrdLP+LHzEEUsNbwpXClYqpnMio=";
+        };
+      };
+    };
+  };
+in
+
+python.pkgs.buildPythonApplication rec {
   pname = "unifi-protect-backup";
-  version = "0.10.7";
+  version = "0.11.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "ep1cman";
     repo = "unifi-protect-backup";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Ypx9drM9Ks3RR75lz2COflr6GF6Bm9D+GwJWPGwuq/c=";
+    hash = "sha256-t4AgPFqKS6u9yITIkUUB19/SxVwR7X8Cc01oPx3M+E0=";
   };
 
   pythonRelaxDeps = [
@@ -22,12 +38,12 @@ python3.pkgs.buildPythonApplication rec {
     "pyunifiprotect"
   ];
 
-  nativeBuildInputs = with python3.pkgs; [
+  nativeBuildInputs = with python.pkgs; [
     poetry-core
     pythonRelaxDepsHook
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  propagatedBuildInputs = with python.pkgs; [
     aiocron
     aiolimiter
     aiorun
@@ -40,7 +56,7 @@ python3.pkgs.buildPythonApplication rec {
     pyunifiprotect
   ];
 
-  nativeCheckInputs = with python3.pkgs; [
+  nativeCheckInputs = with python.pkgs; [
     pytestCheckHook
   ];
 
diff --git a/pkgs/applications/backup/urbackup-client/default.nix b/pkgs/applications/backup/urbackup-client/default.nix
index 3e6158f69ab51..1b714bdccb2af 100644
--- a/pkgs/applications/backup/urbackup-client/default.nix
+++ b/pkgs/applications/backup/urbackup-client/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "urbackup-client";
-  version = "2.5.24";
+  version = "2.5.25";
 
   src = fetchzip {
     url = "https://hndl.urbackup.org/Client/${version}/urbackup-client-${version}.tar.gz";
-    sha256 = "sha256-n0/NVClZz6ANgEdPCtdZxsEvllIl32vwDjC2nq5R8Z4=";
+    sha256 = "sha256-+xm2mBcTLMvrstCq2sLgJiU3zbFCassKvln3SMmRH9s=";
   };
 
   postPatch = ''
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "An easy to setup Open Source client/server backup system";
+    description = "Easy to setup Open Source client/server backup system";
     longDescription = "An easy to setup Open Source client/server backup system, that through a combination of image and file backups accomplishes both data safety and a fast restoration time";
     homepage = "https://www.urbackup.org/index.html";
     license = licenses.agpl3Plus;
diff --git a/pkgs/applications/backup/vdmfec/default.nix b/pkgs/applications/backup/vdmfec/default.nix
index 2f9b4a4bfaea2..20dda868a6643 100644
--- a/pkgs/applications/backup/vdmfec/default.nix
+++ b/pkgs/applications/backup/vdmfec/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A program that adds error correction blocks";
+    description = "Program that adds error correction blocks";
     homepage = "http://members.tripod.com/professor_tom/archives/index.html";
     maintainers = [ maintainers.ar1a ];
     license = with licenses; [ gpl2 /* for vdmfec */ bsd2 /* for fec */ ];
diff --git a/pkgs/applications/blockchains/besu/default.nix b/pkgs/applications/blockchains/besu/default.nix
index f599c44b5a62a..ef985a2806b7b 100644
--- a/pkgs/applications/blockchains/besu/default.nix
+++ b/pkgs/applications/blockchains/besu/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv, fetchurl, makeWrapper, jre }:
+{ lib, stdenv, fetchurl, makeWrapper, jemalloc, jre, runCommand, testers }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: rec {
   pname = "besu";
   version = "24.1.2";
 
@@ -9,6 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-CC24z0+2dSeqDddX5dJUs7SX9QJ8Iyh/nAp0pqdDvwg=";
   };
 
+  buildInputs = lib.optionals stdenv.isLinux [ jemalloc ];
   nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
@@ -16,15 +17,33 @@ stdenv.mkDerivation rec {
     cp -r bin $out/
     mkdir -p $out/lib
     cp -r lib $out/
-    wrapProgram $out/bin/${pname} --set JAVA_HOME "${jre}"
+    wrapProgram $out/bin/${pname} \
+      --set JAVA_HOME "${jre}" \
+      --suffix ${if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH"} : ${lib.makeLibraryPath buildInputs}
   '';
 
+  passthru.tests = {
+    version = testers.testVersion {
+      package = finalAttrs.finalPackage;
+      version = "v${version}";
+    };
+    jemalloc = runCommand "${pname}-test-jemalloc"
+      {
+        nativeBuildInputs = [ finalAttrs.finalPackage ];
+        meta.platforms = with lib.platforms; linux;
+      } ''
+      # Expect to find this string in the output, ignore other failures.
+      (besu 2>&1 || true) | grep -q "# jemalloc: ${jemalloc.version}"
+      mkdir $out
+    '';
+  };
+
   meta = with lib; {
-    description = "An enterprise-grade Java-based, Apache 2.0 licensed Ethereum client";
+    description = "Enterprise-grade Java-based, Apache 2.0 licensed Ethereum client";
     homepage = "https://www.hyperledger.org/projects/besu";
     license = licenses.asl20;
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     platforms = platforms.all;
     maintainers = with maintainers; [ mmahut ];
   };
-}
+})
diff --git a/pkgs/applications/blockchains/bisq-desktop/default.nix b/pkgs/applications/blockchains/bisq-desktop/default.nix
index d4a3bdf0a444b..5e3d54c305960 100644
--- a/pkgs/applications/blockchains/bisq-desktop/default.nix
+++ b/pkgs/applications/blockchains/bisq-desktop/default.nix
@@ -115,7 +115,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = ./update.sh;
 
   meta = with lib; {
-    description = "A decentralized bitcoin exchange network";
+    description = "Decentralized bitcoin exchange network";
     homepage = "https://bisq.network";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.mit;
diff --git a/pkgs/applications/blockchains/bitcoin-abc/default.nix b/pkgs/applications/blockchains/bitcoin-abc/default.nix
index 7a41062d6bf16..8389779a2c8a0 100644
--- a/pkgs/applications/blockchains/bitcoin-abc/default.nix
+++ b/pkgs/applications/blockchains/bitcoin-abc/default.nix
@@ -25,13 +25,13 @@
 
 mkDerivation rec {
   pname = "bitcoin" + lib.optionalString (!withGui) "d" + "-abc";
-  version = "0.29.4";
+  version = "0.29.6";
 
   src = fetchFromGitHub {
     owner = "bitcoin-ABC";
     repo = "bitcoin-abc";
     rev = "v${version}";
-    hash = "sha256-RT9sdwwF39arW2AnoQ9KnRzYqhnQhpjWU1eykTiKWSo=";
+    hash = "sha256-q+7NoZQDzEXBOFeob9Om5mnuocbaYjvdckv7Cur7nCI=";
   };
 
   nativeBuildInputs = [ pkg-config cmake ];
diff --git a/pkgs/applications/blockchains/bitcoin-knots/default.nix b/pkgs/applications/blockchains/bitcoin-knots/default.nix
index 181c14ecd7a93..0306be5378292 100644
--- a/pkgs/applications/blockchains/bitcoin-knots/default.nix
+++ b/pkgs/applications/blockchains/bitcoin-knots/default.nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A derivative of Bitcoin Core with a collection of improvements";
+    description = "Derivative of Bitcoin Core with a collection of improvements";
     homepage = "https://bitcoinknots.org/";
     maintainers = with maintainers; [ prusnak mmahut ];
     license = licenses.mit;
diff --git a/pkgs/applications/blockchains/bitcoin/default.nix b/pkgs/applications/blockchains/bitcoin/default.nix
index 7385d4bd9c455..7e995ad60a8c6 100644
--- a/pkgs/applications/blockchains/bitcoin/default.nix
+++ b/pkgs/applications/blockchains/bitcoin/default.nix
@@ -33,14 +33,14 @@ let
 in
 stdenv.mkDerivation rec {
   pname = if withGui then "bitcoin" else "bitcoind";
-  version = "27.0";
+  version = "27.1";
 
   src = fetchurl {
     urls = [
       "https://bitcoincore.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
     ];
     # hash retrieved from signed SHA256SUMS
-    sha256 = "9c1ee651d3b157baccc3388be28b8cf3bfcefcd2493b943725ad6040ca6b146b";
+    sha256 = "0c1051fd921b8fae912f5c2dfd86b085ab45baa05cd7be4585b10b4d1818f3da";
   };
 
   nativeBuildInputs =
diff --git a/pkgs/applications/blockchains/btcd/default.nix b/pkgs/applications/blockchains/btcd/default.nix
index a5bdc2bb98463..85c8692a567d2 100644
--- a/pkgs/applications/blockchains/btcd/default.nix
+++ b/pkgs/applications/blockchains/btcd/default.nix
@@ -23,7 +23,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "An alternative full node bitcoin implementation written in Go (golang)";
+    description = "Alternative full node bitcoin implementation written in Go (golang)";
     homepage = "https://github.com/btcsuite/btcd";
     license = licenses.isc;
     maintainers = with maintainers; [ _0xB10C ];
diff --git a/pkgs/applications/blockchains/clightning/default.nix b/pkgs/applications/blockchains/clightning/default.nix
index cab5a9c42d7b0..2d1efc3e882e7 100644
--- a/pkgs/applications/blockchains/clightning/default.nix
+++ b/pkgs/applications/blockchains/clightning/default.nix
@@ -16,17 +16,18 @@
 , python3
 , sqlite
 , zlib
+, jq
 }:
 let
   py3 = python3.withPackages (p: [ p.mako ]);
 in
 stdenv.mkDerivation rec {
   pname = "clightning";
-  version = "24.02.2";
+  version = "24.05";
 
   src = fetchurl {
     url = "https://github.com/ElementsProject/lightning/releases/download/v${version}/clightning-v${version}.zip";
-    sha256 = "sha256-KQS/4VmUxJkNpvPcxL5Up9f25leiPzvi2AiKuzRQmDo=";
+    hash = "sha256-FD7JFM80wrruqBWjYnJHZh2f2GZJ6XDQmUQ0XetnWBg=";
   };
 
   # when building on darwin we need dawin.cctools to provide the correct libtool
@@ -35,7 +36,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoconf autogen automake gettext libtool lowdown protobuf py3 unzip which ]
     ++ lib.optionals stdenv.isDarwin [ darwin.cctools darwin.autoSignDarwinBinariesHook ];
 
-  buildInputs = [ gmp libsodium sqlite zlib ];
+  buildInputs = [ gmp libsodium sqlite zlib jq ];
 
   # this causes some python trouble on a darwin host so we skip this step.
   # also we have to tell libwally-core to use sed instead of gsed.
@@ -44,6 +45,7 @@ stdenv.mkDerivation rec {
       tools/generate-wire.py \
       tools/update-mocks.sh \
       tools/mockup.sh \
+      tools/fromschema.py \
       devtools/sql-rewrite.py
   '' else ''
     substituteInPlace external/libwally-core/tools/autogen.sh --replace gsed sed && \
@@ -67,7 +69,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Bitcoin Lightning Network implementation in C";
+    description = "Bitcoin Lightning Network implementation in C";
     longDescription = ''
       c-lightning is a standard compliant implementation of the Lightning
       Network protocol. The Lightning Network is a scalability solution for
diff --git a/pkgs/applications/blockchains/dcrctl/default.nix b/pkgs/applications/blockchains/dcrctl/default.nix
index 04411399ac34d..c388bd75f724e 100644
--- a/pkgs/applications/blockchains/dcrctl/default.nix
+++ b/pkgs/applications/blockchains/dcrctl/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
 
   meta = {
     homepage = "https://decred.org";
-    description = "A secure Decred wallet daemon written in Go (golang)";
+    description = "Secure Decred wallet daemon written in Go (golang)";
     license = with lib.licenses; [ isc ];
     maintainers = with lib.maintainers; [ ];
     mainProgram = "dcrctl";
diff --git a/pkgs/applications/blockchains/dcrwallet/default.nix b/pkgs/applications/blockchains/dcrwallet/default.nix
index cb7e19ada141c..ee195b0e6aacf 100644
--- a/pkgs/applications/blockchains/dcrwallet/default.nix
+++ b/pkgs/applications/blockchains/dcrwallet/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "dcrwallet";
-  version = "2.0.0";
+  version = "2.0.2";
 
   src = fetchFromGitHub {
     owner = "decred";
     repo = "dcrwallet";
     rev = "release-v${version}";
-    hash = "sha256-KBmEMYNVHGkkFXE99nI0uCGGDpkC0MvSFWFPEQwvx+o=";
+    hash = "sha256-fsmil9YQNvXDyBxyt+Ei3F5U/dvbrzbZ01+v9o3+jVY=";
   };
 
-  vendorHash = "sha256-66S1evvX/SEKFXB00dyI9IEuV8dmqM+k1wuhTtgVpBs=";
+  vendorHash = "sha256-ehtgsBCFzMft8285IjpsQ6y9HPb/UpZmcj9X4m8ZKXo=";
 
   subPackages = [ "." ];
 
@@ -24,7 +24,7 @@ buildGoModule rec {
 
   meta = {
     homepage = "https://decred.org";
-    description = "A secure Decred wallet daemon written in Go (golang)";
+    description = "Secure Decred wallet daemon written in Go (golang)";
     license = with lib.licenses; [ isc ];
     maintainers = with lib.maintainers; [ juaningan ];
     mainProgram = "dcrwallet";
diff --git a/pkgs/applications/blockchains/eclair/default.nix b/pkgs/applications/blockchains/eclair/default.nix
index 3d05546caff68..c1abd9f265b79 100644
--- a/pkgs/applications/blockchains/eclair/default.nix
+++ b/pkgs/applications/blockchains/eclair/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A scala implementation of the Lightning Network";
+    description = "Scala implementation of the Lightning Network";
     homepage = "https://github.com/ACINQ/eclair";
     license = licenses.asl20;
     maintainers = with maintainers; [ prusnak ];
diff --git a/pkgs/applications/blockchains/electrs/default.nix b/pkgs/applications/blockchains/electrs/default.nix
index e289aede5473f..d77694b450f22 100644
--- a/pkgs/applications/blockchains/electrs/default.nix
+++ b/pkgs/applications/blockchains/electrs/default.nix
@@ -35,7 +35,7 @@ rustPlatform.buildRustPackage rec {
   passthru.updateScript = ./update.sh;
 
   meta = with lib; {
-    description = "An efficient re-implementation of Electrum Server in Rust";
+    description = "Efficient re-implementation of Electrum Server in Rust";
     homepage = "https://github.com/romanz/electrs";
     license = licenses.mit;
     maintainers = with maintainers; [ prusnak ];
diff --git a/pkgs/applications/blockchains/electrs/update.sh b/pkgs/applications/blockchains/electrs/update.sh
index 14105d71a448a..db6a2fa5639f2 100755
--- a/pkgs/applications/blockchains/electrs/update.sh
+++ b/pkgs/applications/blockchains/electrs/update.sh
@@ -34,7 +34,6 @@ git -C $repo verify-tag v${version}
 rm -rf $repo/.git
 hash=$(nix hash path $repo)
 
-(cd "$nixpkgs" && update-source-version electrs "$version" "$hash")
-sed -i 's|cargoHash = .*|cargoHash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";|' "$scriptDir/default.nix"
+(cd "$nixpkgs" && update-source-version electrs "$version" "$hash" && update-source-version electrs --ignore-same-version --source-key=cargoDeps)
 echo
 echo "electrs: $oldVersion -> $version"
diff --git a/pkgs/applications/blockchains/erigon/default.nix b/pkgs/applications/blockchains/erigon/default.nix
index 4e22796cd6d10..ed470dec1f355 100644
--- a/pkgs/applications/blockchains/erigon/default.nix
+++ b/pkgs/applications/blockchains/erigon/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "erigon";
-  version = "2.60.0";
+  version = "2.60.1";
 in
 buildGoModule {
   inherit pname version;
@@ -11,7 +11,7 @@ buildGoModule {
     owner = "ledgerwatch";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-c0CArubKvdh9xcvBM15O4vGwAsSHzaINtoKd0XczJHU=";
+    hash = "sha256-VZzDG9qUjEBSNxQcmkqPTTDQjh7BZFqyRSaCfio8X2I=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/blockchains/fulcrum/default.nix b/pkgs/applications/blockchains/fulcrum/default.nix
index 655a65936857c..189af6c028691 100644
--- a/pkgs/applications/blockchains/fulcrum/default.nix
+++ b/pkgs/applications/blockchains/fulcrum/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fulcrum";
-  version = "1.10.0";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "cculianu";
     repo = "Fulcrum";
     rev = "v${version}";
-    sha256 = "sha256-HTyOlbrmZHN2MbG70auGkuPPo3fTN/oCHi6Lwnq+gKk=";
+    sha256 = "sha256-VY6yUdmU8MLwSH3VeAWCGbdouOxGrhDc1usYj70jrd8=";
   };
 
   nativeBuildInputs = [ pkg-config qmake ];
diff --git a/pkgs/applications/blockchains/go-ethereum/default.nix b/pkgs/applications/blockchains/go-ethereum/default.nix
index 028232f6cc707..7ee1ffab25593 100644
--- a/pkgs/applications/blockchains/go-ethereum/default.nix
+++ b/pkgs/applications/blockchains/go-ethereum/default.nix
@@ -9,17 +9,17 @@ let
 
 in buildGoModule rec {
   pname = "go-ethereum";
-  version = "1.14.3";
+  version = "1.14.5";
 
   src = fetchFromGitHub {
     owner = "ethereum";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-h2i/q4gfvqO8SgFxjoIhm4y0icpt+qe0Tq+3W6Ld8KM=";
+    sha256 = "sha256-IY0BKoDRMVRZTIysdUgqhTFQx0Pz+kl61vbPbhSdT8k=";
   };
 
   proxyVendor = true;
-  vendorHash = "sha256-ugoRsxzJjPOS5yPhwqXhMPuThvyqCWvZD7PBnrkm0sQ=";
+  vendorHash = "sha256-vzxtoLlD1RjmKBpMPqcH/AAzk2l/NifpRl4Sp4qBYLg=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/blockchains/gridcoin-research/default.nix b/pkgs/applications/blockchains/gridcoin-research/default.nix
index 5774c082e2a34..ac38af861493b 100644
--- a/pkgs/applications/blockchains/gridcoin-research/default.nix
+++ b/pkgs/applications/blockchains/gridcoin-research/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A POS-based cryptocurrency that rewards users for participating on the BOINC network";
+    description = "POS-based cryptocurrency that rewards users for participating on the BOINC network";
     longDescription = ''
       A POS-based cryptocurrency that rewards users for participating on the BOINC network,
       using peer-to-peer technology to operate with no central authority - managing transactions,
diff --git a/pkgs/applications/blockchains/ledger-live-desktop/default.nix b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
index 462ae649510a1..36344bf1a6e15 100644
--- a/pkgs/applications/blockchains/ledger-live-desktop/default.nix
+++ b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
@@ -2,11 +2,11 @@
 
 let
   pname = "ledger-live-desktop";
-  version = "2.80.0";
+  version = "2.81.2";
 
   src = fetchurl {
     url = "https://download.live.ledger.com/${pname}-${version}-linux-x86_64.AppImage";
-    hash = "sha256-mtvLrA2wQM1om9En16/4AQFeddcRDoEyOwrefo5tOkk=";
+    hash = "sha256-dnlIIOOYmCN209avQFMcoekB7nJpc2dJnS2OBI+dq7E=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/applications/blockchains/lightwalletd/default.nix b/pkgs/applications/blockchains/lightwalletd/default.nix
index 5b89ec20091a9..f66cd78adba16 100644
--- a/pkgs/applications/blockchains/lightwalletd/default.nix
+++ b/pkgs/applications/blockchains/lightwalletd/default.nix
@@ -34,7 +34,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A backend service that provides a bandwidth-efficient interface to the Zcash blockchain";
+    description = "Backend service that provides a bandwidth-efficient interface to the Zcash blockchain";
     homepage = "https://github.com/zcash/lightwalletd";
     maintainers = with maintainers; [ centromere ];
     license = licenses.mit;
diff --git a/pkgs/applications/blockchains/litecoin/default.nix b/pkgs/applications/blockchains/litecoin/default.nix
index c8e3140eb5de0..3f8f5e236a6da 100644
--- a/pkgs/applications/blockchains/litecoin/default.nix
+++ b/pkgs/applications/blockchains/litecoin/default.nix
@@ -56,7 +56,7 @@ mkDerivation rec {
 
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
-    description = "A lite version of Bitcoin using scrypt as a proof-of-work algorithm";
+    description = "Lite version of Bitcoin using scrypt as a proof-of-work algorithm";
     longDescription= ''
       Litecoin is a peer-to-peer Internet currency that enables instant payments
       to anyone in the world. It is based on the Bitcoin protocol but differs
diff --git a/pkgs/applications/blockchains/lnd/default.nix b/pkgs/applications/blockchains/lnd/default.nix
index d4eef345eb777..a4271b9367951 100644
--- a/pkgs/applications/blockchains/lnd/default.nix
+++ b/pkgs/applications/blockchains/lnd/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "lnd";
-  version = "0.17.5-beta";
+  version = "0.18.0-beta";
 
   src = fetchFromGitHub {
     owner = "lightningnetwork";
     repo = "lnd";
     rev = "v${version}";
-    hash = "sha256-q/mzF6LPW/ThgqfGgjtax8GvoC3JEpg0IetfSTo1XYk=";
+    hash = "sha256-LkVlsmL/NjWtKUnerqTiT/jNfxazYw0B0GhBDCTGmao=";
   };
 
-  vendorHash = "sha256-unT0zJrOEmKHpoUsrBHKfn5IziGlaqEtMfkeo/74Rfc=";
+  vendorHash = "sha256-T7jPuhAEeQ0U43J9gTQ+0/BdLAn4BOupAkmmmofhHtY=";
 
   subPackages = [ "cmd/lncli" "cmd/lnd" ];
 
diff --git a/pkgs/applications/blockchains/lndhub-go/default.nix b/pkgs/applications/blockchains/lndhub-go/default.nix
index b236ed5da4424..cb6774fdc3fc1 100644
--- a/pkgs/applications/blockchains/lndhub-go/default.nix
+++ b/pkgs/applications/blockchains/lndhub-go/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "lndhub-go";
-  version = "0.14.0";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "getAlby";
     repo = "lndhub.go";
     rev = version;
-    sha256 = "sha256-m+Sc/rsYIbvd1oOqG4OT+wPtSxlgFq8m03n28eZIWJU=";
+    sha256 = "sha256-PHBzM/lYYu6hXa5jiFQR/K5j+vmxaYH7xuoxOhFbhMk=";
   };
 
-  vendorHash = "sha256-a4yVuEfhLNM8IEYnafWf///SNLqQL5XZfGgJ5AZLx3c=";
+  vendorHash = "sha256-Vo29w04cRW0syD2tjieKVeZ3srFNuEC3T17birVWn6k=";
 
   doCheck = false; # tests require networking
 
diff --git a/pkgs/applications/blockchains/mycrypto/default.nix b/pkgs/applications/blockchains/mycrypto/default.nix
index 0e4de3af6ba7e..0798b888d022e 100644
--- a/pkgs/applications/blockchains/mycrypto/default.nix
+++ b/pkgs/applications/blockchains/mycrypto/default.nix
@@ -34,7 +34,7 @@ in appimageTools.wrapType2 {
   '';
 
   meta = with lib; {
-    description = "A free, open-source interface for interacting with the blockchain";
+    description = "Free, open-source interface for interacting with the blockchain";
     longDescription = ''
       MyCrypto is an open-source, client-side tool for generating ether wallets,
       handling ERC-20 tokens, and interacting with the blockchain more easily.
diff --git a/pkgs/applications/blockchains/optimism/default.nix b/pkgs/applications/blockchains/optimism/default.nix
index fcd5245d095d4..5411d5a06a22d 100644
--- a/pkgs/applications/blockchains/optimism/default.nix
+++ b/pkgs/applications/blockchains/optimism/default.nix
@@ -6,19 +6,19 @@
 
 buildGoModule rec {
   pname = "optimism";
-  version = "1.7.4";
+  version = "1.7.7";
 
   src = fetchFromGitHub {
     owner = "ethereum-optimism";
     repo = "optimism";
     rev = "op-node/v${version}";
-    hash = "sha256-220fnMJDgvdGJtN0XkKtqNP94KfbmN5qhghfjHJaAxQ=";
+    hash = "sha256-KN6Y8YhYGNGg/t4t599RAo6mF7Wn7GaSnrLEk3WLekc=";
     fetchSubmodules = true;
   };
 
   subPackages = [ "op-node/cmd" "op-proposer/cmd" "op-batcher/cmd" ];
 
-  vendorHash = "sha256-yG910xpk2MHCD2LHh7aD09KMCux1X252fOHCsyUc/ks=";
+  vendorHash = "sha256-MWGjRj5SMFi3O86l3Gc/oavzWd1TtoKr53eEXbCOamQ=";
 
   buildInputs = [
     libpcap
diff --git a/pkgs/applications/blockchains/pivx/default.nix b/pkgs/applications/blockchains/pivx/default.nix
index 7b03cc494b508..9e6894d760d46 100644
--- a/pkgs/applications/blockchains/pivx/default.nix
+++ b/pkgs/applications/blockchains/pivx/default.nix
@@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     broken = true;
-    description = "An open source crypto-currency focused on fast private transactions";
+    description = "Open source crypto-currency focused on fast private transactions";
     longDescription = ''
       PIVX is an MIT licensed, open source, blockchain-based cryptocurrency with
       ultra fast transactions, low fees, high network decentralization, and
diff --git a/pkgs/applications/blockchains/polkadot/Cargo.lock b/pkgs/applications/blockchains/polkadot/Cargo.lock
index 626f85e8b0ce5..35ecdef1364c3 100644
--- a/pkgs/applications/blockchains/polkadot/Cargo.lock
+++ b/pkgs/applications/blockchains/polkadot/Cargo.lock
@@ -294,6 +294,9 @@ name = "arbitrary"
 version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110"
+dependencies = [
+ "derive_arbitrary",
+]
 
 [[package]]
 name = "ark-bls12-377"
@@ -808,6 +811,7 @@ dependencies = [
  "cumulus-primitives-utility",
  "frame-benchmarking",
  "frame-executive",
+ "frame-metadata-hash-extension",
  "frame-support",
  "frame-system",
  "frame-system-benchmarking",
@@ -894,6 +898,7 @@ dependencies = [
  "cumulus-pallet-parachain-system",
  "cumulus-pallet-xcmp-queue",
  "emulated-integration-tests-common",
+ "frame-metadata-hash-extension",
  "frame-support",
  "frame-system",
  "pallet-asset-conversion",
@@ -939,6 +944,7 @@ dependencies = [
  "cumulus-primitives-utility",
  "frame-benchmarking",
  "frame-executive",
+ "frame-metadata-hash-extension",
  "frame-support",
  "frame-system",
  "frame-system-benchmarking",
@@ -1896,7 +1902,7 @@ dependencies = [
  "bp-parachains",
  "bp-polkadot-core",
  "bp-runtime",
- "ed25519-dalek 2.1.0",
+ "ed25519-dalek 2.1.1",
  "finality-grandpa",
  "parity-scale-codec",
  "sp-application-crypto",
@@ -2096,6 +2102,7 @@ dependencies = [
  "substrate-wasm-builder",
  "testnet-parachains-constants",
  "tuplex",
+ "xcm-fee-payment-runtime-api",
 ]
 
 [[package]]
@@ -2256,6 +2263,7 @@ dependencies = [
  "testnet-parachains-constants",
  "tuplex",
  "westend-runtime-constants",
+ "xcm-fee-payment-runtime-api",
 ]
 
 [[package]]
@@ -2363,9 +2371,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
 
 [[package]]
 name = "bytes"
-version = "1.4.0"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
 
 [[package]]
 name = "bzip2-sys"
@@ -2507,6 +2515,32 @@ dependencies = [
 ]
 
 [[package]]
+name = "chain-spec-guide-runtime"
+version = "0.0.0"
+dependencies = [
+ "docify",
+ "pallet-balances",
+ "pallet-sudo",
+ "pallet-timestamp",
+ "pallet-transaction-payment",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "parity-scale-codec",
+ "polkadot-sdk-frame",
+ "sc-chain-spec",
+ "scale-info",
+ "serde",
+ "serde_json",
+ "sp-application-crypto",
+ "sp-core",
+ "sp-genesis-builder",
+ "sp-keyring",
+ "sp-runtime",
+ "sp-std 14.0.0",
+ "staging-chain-spec-builder",
+ "substrate-wasm-builder",
+]
+
+[[package]]
 name = "chrono"
 version = "0.4.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2603,15 +2637,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "ckb-merkle-mountain-range"
-version = "0.6.0"
-source = "git+https://github.com/paritytech/merkle-mountain-range.git?branch=master#537f0e3f67c5adf7afff0800bbb81f02f17570a1"
-dependencies = [
- "cfg-if",
- "itertools 0.10.5",
-]
-
-[[package]]
 name = "clang-sys"
 version = "1.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2874,6 +2899,7 @@ dependencies = [
  "substrate-wasm-builder",
  "testnet-parachains-constants",
  "westend-runtime-constants",
+ "xcm-fee-payment-runtime-api",
 ]
 
 [[package]]
@@ -3129,6 +3155,7 @@ dependencies = [
  "staging-xcm-executor",
  "substrate-wasm-builder",
  "testnet-parachains-constants",
+ "xcm-fee-payment-runtime-api",
 ]
 
 [[package]]
@@ -3225,6 +3252,7 @@ dependencies = [
  "staging-xcm-executor",
  "substrate-wasm-builder",
  "testnet-parachains-constants",
+ "xcm-fee-payment-runtime-api",
 ]
 
 [[package]]
@@ -3289,6 +3317,7 @@ dependencies = [
  "substrate-wasm-builder",
  "testnet-parachains-constants",
  "westend-runtime-constants",
+ "xcm-fee-payment-runtime-api",
 ]
 
 [[package]]
@@ -4363,6 +4392,7 @@ dependencies = [
  "sp-std 14.0.0",
  "sp-transaction-pool",
  "sp-version",
+ "staging-parachain-info",
  "substrate-wasm-builder",
 ]
 
@@ -4689,6 +4719,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "derive_arbitrary"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611"
+dependencies = [
+ "proc-macro2 1.0.82",
+ "quote 1.0.35",
+ "syn 2.0.61",
+]
+
+[[package]]
 name = "derive_more"
 version = "0.99.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4961,9 +5002,9 @@ dependencies = [
 
 [[package]]
 name = "ed25519-dalek"
-version = "2.1.0"
+version = "2.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0"
+checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871"
 dependencies = [
  "curve25519-dalek 4.1.2",
  "ed25519 2.2.2",
@@ -5345,9 +5386,9 @@ dependencies = [
 
 [[package]]
 name = "fastrand"
-version = "2.0.0"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
+checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
 
 [[package]]
 name = "fastrlp"
@@ -5783,6 +5824,27 @@ dependencies = [
 ]
 
 [[package]]
+name = "frame-metadata-hash-extension"
+version = "0.1.0"
+dependencies = [
+ "array-bytes",
+ "docify",
+ "frame-metadata",
+ "frame-support",
+ "frame-system",
+ "log",
+ "merkleized-metadata",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-api",
+ "sp-runtime",
+ "sp-tracing 16.0.0",
+ "sp-transaction-pool",
+ "substrate-test-runtime-client",
+ "substrate-wasm-builder",
+]
+
+[[package]]
 name = "frame-omni-bencher"
 version = "0.1.0"
 dependencies = [
@@ -6160,9 +6222,9 @@ checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
 name = "futures-timer"
-version = "3.0.2"
+version = "3.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
+checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24"
 
 [[package]]
 name = "futures-util"
@@ -7234,123 +7296,15 @@ checksum = "c33070833c9ee02266356de0c43f723152bd38bd96ddf52c82b3af10c9138b28"
 name = "kitchensink-runtime"
 version = "3.0.0-dev"
 dependencies = [
- "frame-benchmarking",
- "frame-benchmarking-pallet-pov",
- "frame-election-provider-support",
- "frame-executive",
- "frame-support",
- "frame-system",
- "frame-system-benchmarking",
- "frame-system-rpc-runtime-api",
- "frame-try-runtime",
  "log",
  "node-primitives",
- "pallet-alliance",
- "pallet-asset-conversion",
- "pallet-asset-conversion-ops",
- "pallet-asset-conversion-tx-payment",
- "pallet-asset-rate",
- "pallet-asset-tx-payment",
- "pallet-assets",
- "pallet-authority-discovery",
- "pallet-authorship",
- "pallet-babe",
- "pallet-bags-list",
- "pallet-balances",
- "pallet-beefy",
- "pallet-beefy-mmr",
- "pallet-bounties",
- "pallet-broker",
- "pallet-child-bounties",
- "pallet-collective",
- "pallet-contracts",
- "pallet-conviction-voting",
- "pallet-core-fellowship",
- "pallet-democracy",
- "pallet-election-provider-multi-phase",
- "pallet-election-provider-support-benchmarking",
- "pallet-elections-phragmen",
  "pallet-example-mbm",
  "pallet-example-tasks",
- "pallet-fast-unstake",
- "pallet-glutton",
- "pallet-grandpa",
- "pallet-identity",
- "pallet-im-online",
- "pallet-indices",
- "pallet-insecure-randomness-collective-flip",
- "pallet-lottery",
- "pallet-membership",
- "pallet-message-queue",
- "pallet-migrations",
- "pallet-mixnet",
- "pallet-mmr",
- "pallet-multisig",
- "pallet-nft-fractionalization",
- "pallet-nfts",
- "pallet-nfts-runtime-api",
- "pallet-nis",
- "pallet-nomination-pools",
- "pallet-nomination-pools-benchmarking",
- "pallet-nomination-pools-runtime-api",
- "pallet-offences",
- "pallet-offences-benchmarking",
- "pallet-parameters",
- "pallet-preimage",
- "pallet-proxy",
- "pallet-ranked-collective",
- "pallet-recovery",
- "pallet-referenda",
- "pallet-remark",
- "pallet-root-testing",
- "pallet-safe-mode",
- "pallet-salary",
- "pallet-scheduler",
- "pallet-session",
- "pallet-session-benchmarking",
- "pallet-skip-feeless-payment",
- "pallet-society",
- "pallet-staking",
- "pallet-staking-reward-curve",
- "pallet-staking-runtime-api",
- "pallet-state-trie-migration",
- "pallet-statement",
- "pallet-sudo",
- "pallet-timestamp",
- "pallet-tips",
- "pallet-transaction-payment",
- "pallet-transaction-payment-rpc-runtime-api",
- "pallet-transaction-storage",
- "pallet-treasury",
- "pallet-tx-pause",
- "pallet-uniques",
- "pallet-utility",
- "pallet-vesting",
- "pallet-whitelist",
  "parity-scale-codec",
+ "polkadot-sdk",
  "primitive-types",
  "scale-info",
  "serde_json",
- "sp-api",
- "sp-authority-discovery",
- "sp-block-builder",
- "sp-consensus-babe",
- "sp-consensus-beefy",
- "sp-consensus-grandpa",
- "sp-core",
- "sp-genesis-builder",
- "sp-inherents",
- "sp-io",
- "sp-mixnet",
- "sp-offchain",
- "sp-runtime",
- "sp-session",
- "sp-staking",
- "sp-statement-store",
- "sp-std 14.0.0",
- "sp-storage 19.0.0",
- "sp-transaction-pool",
- "sp-version",
  "static_assertions",
  "substrate-wasm-builder",
 ]
@@ -7626,7 +7580,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "276bb57e7af15d8f100d3c11cbdd32c6752b7eef4ba7a18ecf464972c07abcce"
 dependencies = [
  "bs58 0.4.0",
- "ed25519-dalek 2.1.0",
+ "ed25519-dalek 2.1.1",
  "log",
  "multiaddr",
  "multihash 0.17.0",
@@ -8049,8 +8003,9 @@ dependencies = [
 
 [[package]]
 name = "litep2p"
-version = "0.3.0"
-source = "git+https://github.com/paritytech/litep2p?rev=e03a6023882db111beeb24d8c0ceaac0721d3f0f#e03a6023882db111beeb24d8c0ceaac0721d3f0f"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f02542ae3a94b4c4ffa37dc56388c923e286afa3bf65452e3984b50b2a2f316"
 dependencies = [
  "async-trait",
  "bs58 0.4.0",
@@ -8062,7 +8017,7 @@ dependencies = [
  "hex-literal",
  "indexmap 2.2.3",
  "libc",
- "mockall",
+ "mockall 0.12.1",
  "multiaddr",
  "multihash 0.17.0",
  "network-interface",
@@ -8347,6 +8302,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "merkleized-metadata"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f313fcff1d2a4bcaa2deeaa00bf7530d77d5f7bd0467a117dde2e29a75a7a17a"
+dependencies = [
+ "array-bytes",
+ "blake3",
+ "frame-metadata",
+ "parity-scale-codec",
+ "scale-decode",
+ "scale-info",
+]
+
+[[package]]
 name = "merlin"
 version = "3.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8409,7 +8378,7 @@ dependencies = [
  "pallet-minimal-template",
  "polkadot-sdk-docs",
  "polkadot-sdk-frame",
- "simple-mermaid",
+ "simple-mermaid 0.1.1",
 ]
 
 [[package]]
@@ -8558,12 +8527,27 @@ dependencies = [
  "downcast",
  "fragile",
  "lazy_static",
- "mockall_derive",
+ "mockall_derive 0.11.4",
  "predicates 2.1.5",
  "predicates-tree",
 ]
 
 [[package]]
+name = "mockall"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43766c2b5203b10de348ffe19f7e54564b64f3d6018ff7648d1e2d6d3a0f0a48"
+dependencies = [
+ "cfg-if",
+ "downcast",
+ "fragile",
+ "lazy_static",
+ "mockall_derive 0.12.1",
+ "predicates 3.0.3",
+ "predicates-tree",
+]
+
+[[package]]
 name = "mockall_derive"
 version = "0.11.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8576,6 +8560,18 @@ dependencies = [
 ]
 
 [[package]]
+name = "mockall_derive"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af7cbce79ec385a1d4f54baa90a76401eb15d9cab93685f62e7e9f942aa00ae2"
+dependencies = [
+ "cfg-if",
+ "proc-macro2 1.0.82",
+ "quote 1.0.35",
+ "syn 2.0.61",
+]
+
+[[package]]
 name = "multiaddr"
 version = "0.17.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8963,10 +8959,12 @@ dependencies = [
  "sc-sync-state-rpc",
  "sc-transaction-pool-api",
  "sp-api",
+ "sp-application-crypto",
  "sp-block-builder",
  "sp-blockchain",
  "sp-consensus",
  "sp-consensus-babe",
+ "sp-consensus-beefy",
  "sp-keystore",
  "sp-runtime",
  "sp-statement-store",
@@ -9001,6 +8999,7 @@ dependencies = [
 name = "node-testing"
 version = "3.0.0-dev"
 dependencies = [
+ "frame-metadata-hash-extension",
  "frame-system",
  "fs_extra",
  "futures",
@@ -9756,7 +9755,7 @@ dependencies = [
  "bp-beefy",
  "bp-runtime",
  "bp-test-utils",
- "ckb-merkle-mountain-range 0.5.2",
+ "ckb-merkle-mountain-range",
  "frame-support",
  "frame-system",
  "log",
@@ -9877,6 +9876,7 @@ dependencies = [
  "sp-io",
  "sp-runtime",
  "sp-std 14.0.0",
+ "sp-tracing 16.0.0",
 ]
 
 [[package]]
@@ -10131,6 +10131,7 @@ dependencies = [
  "frame-support",
  "frame-system",
  "pallet-balances",
+ "pallet-nomination-pools",
  "pallet-staking",
  "pallet-staking-reward-curve",
  "pallet-timestamp",
@@ -10482,7 +10483,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-identity"
-version = "28.0.0"
+version = "29.0.0"
 dependencies = [
  "enumflags2",
  "frame-benchmarking",
@@ -10804,6 +10805,7 @@ dependencies = [
  "frame-system",
  "pallet-bags-list",
  "pallet-balances",
+ "pallet-delegated-staking",
  "pallet-nomination-pools",
  "pallet-staking",
  "pallet-staking-reward-curve",
@@ -10844,7 +10846,32 @@ dependencies = [
 ]
 
 [[package]]
-name = "pallet-nomination-pools-test-staking"
+name = "pallet-nomination-pools-test-delegate-stake"
+version = "1.0.0"
+dependencies = [
+ "frame-election-provider-support",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-bags-list",
+ "pallet-balances",
+ "pallet-delegated-staking",
+ "pallet-nomination-pools",
+ "pallet-staking",
+ "pallet-staking-reward-curve",
+ "pallet-timestamp",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-staking",
+ "sp-std 14.0.0",
+ "sp-tracing 16.0.0",
+]
+
+[[package]]
+name = "pallet-nomination-pools-test-transfer-stake"
 version = "1.0.0"
 dependencies = [
  "frame-election-provider-support",
@@ -11798,6 +11825,7 @@ dependencies = [
  "docify",
  "frame-benchmarking",
  "frame-executive",
+ "frame-metadata-hash-extension",
  "frame-support",
  "frame-system",
  "frame-system-benchmarking",
@@ -11959,9 +11987,9 @@ dependencies = [
 
 [[package]]
 name = "parity-scale-codec"
-version = "3.6.11"
+version = "3.6.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1b5927e4a9ae8d6cdb6a69e4e04a0ec73381a358e21b8a576f44769f34e7c24"
+checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee"
 dependencies = [
  "arrayvec 0.7.4",
  "bitvec",
@@ -11974,11 +12002,11 @@ dependencies = [
 
 [[package]]
 name = "parity-scale-codec-derive"
-version = "3.6.9"
+version = "3.6.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be30eaf4b0a9fba5336683b38de57bb86d179a35862ba6bfcf57625d006bde5b"
+checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c"
 dependencies = [
- "proc-macro-crate 2.0.0",
+ "proc-macro-crate 3.1.0",
  "proc-macro2 1.0.82",
  "quote 1.0.35",
  "syn 1.0.109",
@@ -12300,6 +12328,7 @@ dependencies = [
  "staging-xcm-executor",
  "substrate-wasm-builder",
  "testnet-parachains-constants",
+ "xcm-fee-payment-runtime-api",
 ]
 
 [[package]]
@@ -12400,6 +12429,7 @@ dependencies = [
  "substrate-wasm-builder",
  "testnet-parachains-constants",
  "westend-runtime-constants",
+ "xcm-fee-payment-runtime-api",
 ]
 
 [[package]]
@@ -12647,6 +12677,7 @@ dependencies = [
  "polkadot-primitives-test-helpers",
  "polkadot-subsystem-bench",
  "rand 0.8.5",
+ "rstest",
  "sc-network",
  "schnellru",
  "sp-core",
@@ -12663,7 +12694,6 @@ version = "7.0.0"
 dependencies = [
  "assert_matches",
  "async-trait",
- "env_logger 0.11.3",
  "fatality",
  "futures",
  "futures-timer",
@@ -12679,17 +12709,29 @@ dependencies = [
  "polkadot-primitives-test-helpers",
  "polkadot-subsystem-bench",
  "rand 0.8.5",
+ "rstest",
  "sc-network",
  "schnellru",
  "sp-application-crypto",
  "sp-core",
  "sp-keyring",
+ "sp-tracing 16.0.0",
  "thiserror",
  "tokio",
  "tracing-gum",
 ]
 
 [[package]]
+name = "polkadot-ckb-merkle-mountain-range"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4b44320e5f7ce2c18227537a3032ae5b2c476a7e8eddba45333e1011fc31b92"
+dependencies = [
+ "cfg-if",
+ "itertools 0.10.5",
+]
+
+[[package]]
 name = "polkadot-cli"
 version = "7.0.0"
 dependencies = [
@@ -12801,6 +12843,7 @@ dependencies = [
  "parity-scale-codec",
  "polkadot-node-primitives",
  "polkadot-primitives",
+ "quickcheck",
  "reed-solomon-novelpoly",
  "sp-core",
  "sp-trie",
@@ -13447,6 +13490,7 @@ dependencies = [
  "async-trait",
  "bitvec",
  "derive_more",
+ "fatality",
  "futures",
  "orchestra",
  "polkadot-node-jaeger",
@@ -13489,6 +13533,7 @@ dependencies = [
  "parity-scale-codec",
  "parking_lot 0.12.1",
  "pin-project",
+ "polkadot-erasure-coding",
  "polkadot-node-jaeger",
  "polkadot-node-metrics",
  "polkadot-node-network-protocol",
@@ -13539,7 +13584,7 @@ dependencies = [
 
 [[package]]
 name = "polkadot-parachain-bin"
-version = "1.12.0"
+version = "1.13.0"
 dependencies = [
  "assert_cmd",
  "asset-hub-rococo-runtime",
@@ -13710,10 +13755,12 @@ dependencies = [
  "sc-sync-state-rpc",
  "sc-transaction-pool-api",
  "sp-api",
+ "sp-application-crypto",
  "sp-block-builder",
  "sp-blockchain",
  "sp-consensus",
  "sp-consensus-babe",
+ "sp-consensus-beefy",
  "sp-keystore",
  "sp-runtime",
  "substrate-frame-rpc-system",
@@ -13849,9 +13896,396 @@ dependencies = [
 ]
 
 [[package]]
+name = "polkadot-sdk"
+version = "0.1.0"
+dependencies = [
+ "asset-test-utils",
+ "assets-common",
+ "binary-merkle-tree",
+ "bp-asset-hub-rococo",
+ "bp-asset-hub-westend",
+ "bp-bridge-hub-cumulus",
+ "bp-bridge-hub-kusama",
+ "bp-bridge-hub-polkadot",
+ "bp-bridge-hub-rococo",
+ "bp-bridge-hub-westend",
+ "bp-header-chain",
+ "bp-kusama",
+ "bp-messages",
+ "bp-parachains",
+ "bp-polkadot",
+ "bp-polkadot-bulletin",
+ "bp-polkadot-core",
+ "bp-relayers",
+ "bp-rococo",
+ "bp-runtime",
+ "bp-test-utils",
+ "bp-westend",
+ "bp-xcm-bridge-hub",
+ "bp-xcm-bridge-hub-router",
+ "bridge-hub-common",
+ "bridge-hub-test-utils",
+ "bridge-runtime-common",
+ "cumulus-client-cli",
+ "cumulus-client-collator",
+ "cumulus-client-consensus-aura",
+ "cumulus-client-consensus-common",
+ "cumulus-client-consensus-proposer",
+ "cumulus-client-consensus-relay-chain",
+ "cumulus-client-network",
+ "cumulus-client-parachain-inherent",
+ "cumulus-client-pov-recovery",
+ "cumulus-client-service",
+ "cumulus-pallet-aura-ext",
+ "cumulus-pallet-dmp-queue",
+ "cumulus-pallet-parachain-system",
+ "cumulus-pallet-parachain-system-proc-macro",
+ "cumulus-pallet-session-benchmarking",
+ "cumulus-pallet-solo-to-para",
+ "cumulus-pallet-xcm",
+ "cumulus-pallet-xcmp-queue",
+ "cumulus-ping",
+ "cumulus-primitives-aura",
+ "cumulus-primitives-core",
+ "cumulus-primitives-parachain-inherent",
+ "cumulus-primitives-proof-size-hostfunction",
+ "cumulus-primitives-storage-weight-reclaim",
+ "cumulus-primitives-timestamp",
+ "cumulus-primitives-utility",
+ "cumulus-relay-chain-inprocess-interface",
+ "cumulus-relay-chain-interface",
+ "cumulus-relay-chain-minimal-node",
+ "cumulus-relay-chain-rpc-interface",
+ "cumulus-test-relay-sproof-builder",
+ "emulated-integration-tests-common",
+ "fork-tree",
+ "frame-benchmarking",
+ "frame-benchmarking-cli",
+ "frame-benchmarking-pallet-pov",
+ "frame-election-provider-solution-type",
+ "frame-election-provider-support",
+ "frame-executive",
+ "frame-metadata-hash-extension",
+ "frame-remote-externalities",
+ "frame-support",
+ "frame-support-procedural",
+ "frame-support-procedural-tools",
+ "frame-support-procedural-tools-derive",
+ "frame-system",
+ "frame-system-benchmarking",
+ "frame-system-rpc-runtime-api",
+ "frame-try-runtime",
+ "generate-bags",
+ "mmr-gadget",
+ "mmr-rpc",
+ "pallet-alliance",
+ "pallet-asset-conversion",
+ "pallet-asset-conversion-ops",
+ "pallet-asset-conversion-tx-payment",
+ "pallet-asset-rate",
+ "pallet-asset-tx-payment",
+ "pallet-assets",
+ "pallet-atomic-swap",
+ "pallet-aura",
+ "pallet-authority-discovery",
+ "pallet-authorship",
+ "pallet-babe",
+ "pallet-bags-list",
+ "pallet-balances",
+ "pallet-beefy",
+ "pallet-beefy-mmr",
+ "pallet-bounties",
+ "pallet-bridge-grandpa",
+ "pallet-bridge-messages",
+ "pallet-bridge-parachains",
+ "pallet-bridge-relayers",
+ "pallet-broker",
+ "pallet-child-bounties",
+ "pallet-collator-selection",
+ "pallet-collective",
+ "pallet-collective-content",
+ "pallet-contracts",
+ "pallet-contracts-mock-network",
+ "pallet-contracts-proc-macro",
+ "pallet-contracts-uapi",
+ "pallet-conviction-voting",
+ "pallet-core-fellowship",
+ "pallet-delegated-staking",
+ "pallet-democracy",
+ "pallet-dev-mode",
+ "pallet-election-provider-multi-phase",
+ "pallet-election-provider-support-benchmarking",
+ "pallet-elections-phragmen",
+ "pallet-fast-unstake",
+ "pallet-glutton",
+ "pallet-grandpa",
+ "pallet-identity",
+ "pallet-im-online",
+ "pallet-indices",
+ "pallet-insecure-randomness-collective-flip",
+ "pallet-lottery",
+ "pallet-membership",
+ "pallet-message-queue",
+ "pallet-migrations",
+ "pallet-mixnet",
+ "pallet-mmr",
+ "pallet-multisig",
+ "pallet-nft-fractionalization",
+ "pallet-nfts",
+ "pallet-nfts-runtime-api",
+ "pallet-nis",
+ "pallet-node-authorization",
+ "pallet-nomination-pools",
+ "pallet-nomination-pools-benchmarking",
+ "pallet-nomination-pools-runtime-api",
+ "pallet-offences",
+ "pallet-offences-benchmarking",
+ "pallet-paged-list",
+ "pallet-parameters",
+ "pallet-preimage",
+ "pallet-proxy",
+ "pallet-ranked-collective",
+ "pallet-recovery",
+ "pallet-referenda",
+ "pallet-remark",
+ "pallet-root-offences",
+ "pallet-root-testing",
+ "pallet-safe-mode",
+ "pallet-salary",
+ "pallet-scheduler",
+ "pallet-scored-pool",
+ "pallet-session",
+ "pallet-session-benchmarking",
+ "pallet-skip-feeless-payment",
+ "pallet-society",
+ "pallet-staking",
+ "pallet-staking-reward-curve",
+ "pallet-staking-reward-fn",
+ "pallet-staking-runtime-api",
+ "pallet-state-trie-migration",
+ "pallet-statement",
+ "pallet-sudo",
+ "pallet-timestamp",
+ "pallet-tips",
+ "pallet-transaction-payment",
+ "pallet-transaction-payment-rpc",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "pallet-transaction-storage",
+ "pallet-treasury",
+ "pallet-tx-pause",
+ "pallet-uniques",
+ "pallet-utility",
+ "pallet-vesting",
+ "pallet-whitelist",
+ "pallet-xcm",
+ "pallet-xcm-benchmarks",
+ "pallet-xcm-bridge-hub",
+ "pallet-xcm-bridge-hub-router",
+ "parachains-common",
+ "parachains-runtimes-test-utils",
+ "polkadot-approval-distribution",
+ "polkadot-availability-bitfield-distribution",
+ "polkadot-availability-distribution",
+ "polkadot-availability-recovery",
+ "polkadot-cli",
+ "polkadot-collator-protocol",
+ "polkadot-core-primitives",
+ "polkadot-dispute-distribution",
+ "polkadot-erasure-coding",
+ "polkadot-gossip-support",
+ "polkadot-network-bridge",
+ "polkadot-node-collation-generation",
+ "polkadot-node-core-approval-voting",
+ "polkadot-node-core-av-store",
+ "polkadot-node-core-backing",
+ "polkadot-node-core-bitfield-signing",
+ "polkadot-node-core-candidate-validation",
+ "polkadot-node-core-chain-api",
+ "polkadot-node-core-chain-selection",
+ "polkadot-node-core-dispute-coordinator",
+ "polkadot-node-core-parachains-inherent",
+ "polkadot-node-core-prospective-parachains",
+ "polkadot-node-core-provisioner",
+ "polkadot-node-core-pvf",
+ "polkadot-node-core-pvf-checker",
+ "polkadot-node-core-pvf-common",
+ "polkadot-node-core-pvf-execute-worker",
+ "polkadot-node-core-pvf-prepare-worker",
+ "polkadot-node-core-runtime-api",
+ "polkadot-node-jaeger",
+ "polkadot-node-metrics",
+ "polkadot-node-network-protocol",
+ "polkadot-node-primitives",
+ "polkadot-node-subsystem",
+ "polkadot-node-subsystem-types",
+ "polkadot-node-subsystem-util",
+ "polkadot-overseer",
+ "polkadot-parachain-primitives",
+ "polkadot-primitives",
+ "polkadot-rpc",
+ "polkadot-runtime-common",
+ "polkadot-runtime-metrics",
+ "polkadot-runtime-parachains",
+ "polkadot-sdk-frame",
+ "polkadot-service",
+ "polkadot-statement-distribution",
+ "polkadot-statement-table",
+ "rococo-runtime-constants",
+ "sc-allocator",
+ "sc-authority-discovery",
+ "sc-basic-authorship",
+ "sc-block-builder",
+ "sc-chain-spec",
+ "sc-chain-spec-derive",
+ "sc-cli",
+ "sc-client-api",
+ "sc-client-db",
+ "sc-consensus",
+ "sc-consensus-aura",
+ "sc-consensus-babe",
+ "sc-consensus-babe-rpc",
+ "sc-consensus-beefy",
+ "sc-consensus-beefy-rpc",
+ "sc-consensus-epochs",
+ "sc-consensus-grandpa",
+ "sc-consensus-grandpa-rpc",
+ "sc-consensus-manual-seal",
+ "sc-consensus-pow",
+ "sc-consensus-slots",
+ "sc-executor",
+ "sc-executor-common",
+ "sc-executor-polkavm",
+ "sc-executor-wasmtime",
+ "sc-informant",
+ "sc-keystore",
+ "sc-mixnet",
+ "sc-network",
+ "sc-network-common",
+ "sc-network-gossip",
+ "sc-network-light",
+ "sc-network-statement",
+ "sc-network-sync",
+ "sc-network-transactions",
+ "sc-network-types",
+ "sc-offchain",
+ "sc-proposer-metrics",
+ "sc-rpc",
+ "sc-rpc-api",
+ "sc-rpc-server",
+ "sc-rpc-spec-v2",
+ "sc-service",
+ "sc-state-db",
+ "sc-statement-store",
+ "sc-storage-monitor",
+ "sc-sync-state-rpc",
+ "sc-sysinfo",
+ "sc-telemetry",
+ "sc-tracing",
+ "sc-tracing-proc-macro",
+ "sc-transaction-pool",
+ "sc-transaction-pool-api",
+ "sc-utils",
+ "slot-range-helper",
+ "snowbridge-beacon-primitives",
+ "snowbridge-core",
+ "snowbridge-ethereum",
+ "snowbridge-outbound-queue-merkle-tree",
+ "snowbridge-outbound-queue-runtime-api",
+ "snowbridge-pallet-ethereum-client",
+ "snowbridge-pallet-ethereum-client-fixtures",
+ "snowbridge-pallet-inbound-queue",
+ "snowbridge-pallet-inbound-queue-fixtures",
+ "snowbridge-pallet-outbound-queue",
+ "snowbridge-pallet-system",
+ "snowbridge-router-primitives",
+ "snowbridge-runtime-common",
+ "snowbridge-runtime-test-common",
+ "snowbridge-system-runtime-api",
+ "sp-api",
+ "sp-api-proc-macro",
+ "sp-application-crypto",
+ "sp-arithmetic",
+ "sp-authority-discovery",
+ "sp-block-builder",
+ "sp-blockchain",
+ "sp-consensus",
+ "sp-consensus-aura",
+ "sp-consensus-babe",
+ "sp-consensus-beefy",
+ "sp-consensus-grandpa",
+ "sp-consensus-pow",
+ "sp-consensus-slots",
+ "sp-core",
+ "sp-core-hashing",
+ "sp-core-hashing-proc-macro",
+ "sp-crypto-ec-utils 0.10.0",
+ "sp-crypto-hashing",
+ "sp-crypto-hashing-proc-macro",
+ "sp-database",
+ "sp-debug-derive 14.0.0",
+ "sp-externalities 0.25.0",
+ "sp-genesis-builder",
+ "sp-inherents",
+ "sp-io",
+ "sp-keyring",
+ "sp-keystore",
+ "sp-maybe-compressed-blob",
+ "sp-metadata-ir",
+ "sp-mixnet",
+ "sp-mmr-primitives",
+ "sp-npos-elections",
+ "sp-offchain",
+ "sp-panic-handler",
+ "sp-rpc",
+ "sp-runtime",
+ "sp-runtime-interface 24.0.0",
+ "sp-runtime-interface-proc-macro 17.0.0",
+ "sp-session",
+ "sp-staking",
+ "sp-state-machine",
+ "sp-statement-store",
+ "sp-std 14.0.0",
+ "sp-storage 19.0.0",
+ "sp-timestamp",
+ "sp-tracing 16.0.0",
+ "sp-transaction-pool",
+ "sp-transaction-storage-proof",
+ "sp-trie",
+ "sp-version",
+ "sp-version-proc-macro",
+ "sp-wasm-interface 20.0.0",
+ "sp-weights",
+ "staging-chain-spec-builder",
+ "staging-node-inspect",
+ "staging-parachain-info",
+ "staging-tracking-allocator",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
+ "subkey",
+ "substrate-bip39",
+ "substrate-build-script-utils",
+ "substrate-frame-rpc-support",
+ "substrate-frame-rpc-system",
+ "substrate-prometheus-endpoint",
+ "substrate-rpc-client",
+ "substrate-state-trie-migration-rpc",
+ "substrate-wasm-builder",
+ "testnet-parachains-constants",
+ "tracing-gum",
+ "tracing-gum-proc-macro",
+ "westend-runtime-constants",
+ "xcm-emulator",
+ "xcm-fee-payment-runtime-api",
+ "xcm-procedural",
+ "xcm-simulator",
+]
+
+[[package]]
 name = "polkadot-sdk-docs"
 version = "0.0.1"
 dependencies = [
+ "chain-spec-guide-runtime",
  "cumulus-client-service",
  "cumulus-pallet-aura-ext",
  "cumulus-pallet-parachain-system",
@@ -13859,6 +14293,7 @@ dependencies = [
  "cumulus-primitives-storage-weight-reclaim",
  "docify",
  "frame-executive",
+ "frame-metadata-hash-extension",
  "frame-support",
  "frame-system",
  "kitchensink-runtime",
@@ -13885,7 +14320,9 @@ dependencies = [
  "pallet-uniques",
  "pallet-utility",
  "parity-scale-codec",
+ "polkadot-sdk",
  "polkadot-sdk-frame",
+ "sc-chain-spec",
  "sc-cli",
  "sc-client-db",
  "sc-consensus-aura",
@@ -13900,10 +14337,11 @@ dependencies = [
  "sc-rpc-api",
  "sc-service",
  "scale-info",
- "simple-mermaid",
+ "simple-mermaid 0.1.1",
  "sp-api",
  "sp-arithmetic",
  "sp-core",
+ "sp-genesis-builder",
  "sp-io",
  "sp-keyring",
  "sp-offchain",
@@ -13915,6 +14353,7 @@ dependencies = [
  "staging-xcm",
  "subkey",
  "substrate-wasm-builder",
+ "xcm-docs",
 ]
 
 [[package]]
@@ -13960,6 +14399,7 @@ dependencies = [
  "env_logger 0.11.3",
  "frame-benchmarking",
  "frame-benchmarking-cli",
+ "frame-metadata-hash-extension",
  "frame-support",
  "frame-system",
  "frame-system-rpc-runtime-api",
@@ -14097,6 +14537,7 @@ dependencies = [
  "polkadot-node-subsystem-util",
  "polkadot-primitives",
  "polkadot-primitives-test-helpers",
+ "polkadot-subsystem-bench",
  "rand_chacha 0.3.1",
  "sc-keystore",
  "sc-network",
@@ -14161,6 +14602,7 @@ dependencies = [
  "polkadot-overseer",
  "polkadot-primitives",
  "polkadot-primitives-test-helpers",
+ "polkadot-statement-distribution",
  "prometheus",
  "pyroscope",
  "pyroscope_pprofrs",
@@ -14185,6 +14627,7 @@ dependencies = [
  "sp-keystore",
  "sp-runtime",
  "sp-timestamp",
+ "strum 0.24.1",
  "substrate-prometheus-endpoint",
  "tokio",
  "tracing-gum",
@@ -14652,15 +15095,6 @@ dependencies = [
 
 [[package]]
 name = "proc-macro-crate"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8"
-dependencies = [
- "toml_edit 0.20.7",
-]
-
-[[package]]
-name = "proc-macro-crate"
 version = "3.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
@@ -15481,6 +15915,7 @@ dependencies = [
  "jsonpath_lib",
  "log",
  "num-traits",
+ "parking_lot 0.12.1",
  "serde_json",
  "sp-runtime",
  "substrate-prometheus-endpoint",
@@ -15720,6 +16155,7 @@ dependencies = [
  "bitvec",
  "frame-benchmarking",
  "frame-executive",
+ "frame-metadata-hash-extension",
  "frame-remote-externalities",
  "frame-support",
  "frame-system",
@@ -16326,10 +16762,12 @@ name = "sc-chain-spec"
 version = "28.0.0"
 dependencies = [
  "array-bytes",
+ "clap 4.5.3",
  "docify",
  "log",
  "memmap2 0.9.3",
  "parity-scale-codec",
+ "regex",
  "sc-chain-spec-derive",
  "sc-client-api",
  "sc-executor",
@@ -16474,7 +16912,7 @@ dependencies = [
  "futures",
  "futures-timer",
  "log",
- "mockall",
+ "mockall 0.11.4",
  "parking_lot 0.12.1",
  "sc-client-api",
  "sc-network-types",
@@ -16656,6 +17094,7 @@ dependencies = [
  "sc-rpc",
  "serde",
  "serde_json",
+ "sp-application-crypto",
  "sp-consensus-beefy",
  "sp-core",
  "sp-runtime",
@@ -16999,7 +17438,7 @@ dependencies = [
  "linked_hash_set",
  "litep2p",
  "log",
- "mockall",
+ "mockall 0.11.4",
  "multistream-select",
  "once_cell",
  "parity-scale-codec",
@@ -17137,7 +17576,7 @@ dependencies = [
  "futures-timer",
  "libp2p",
  "log",
- "mockall",
+ "mockall 0.11.4",
  "parity-scale-codec",
  "prost 0.12.4",
  "prost-build 0.12.4",
@@ -17221,12 +17660,15 @@ name = "sc-network-types"
 version = "0.10.0"
 dependencies = [
  "bs58 0.5.0",
+ "ed25519-dalek 2.1.1",
  "libp2p-identity",
  "litep2p",
  "multiaddr",
  "multihash 0.17.0",
+ "quickcheck",
  "rand 0.8.5",
  "thiserror",
+ "zeroize",
 ]
 
 [[package]]
@@ -17722,6 +18164,29 @@ dependencies = [
 ]
 
 [[package]]
+name = "scale-bits"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e57b1e7f6b65ed1f04e79a85a57d755ad56d76fdf1e9bddcc9ae14f71fcdcf54"
+dependencies = [
+ "parity-scale-codec",
+ "scale-type-resolver",
+]
+
+[[package]]
+name = "scale-decode"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b12ebca36cec2a3f983c46295b282b35e5f8496346fb859a8776dad5389e5389"
+dependencies = [
+ "derive_more",
+ "parity-scale-codec",
+ "scale-bits",
+ "scale-type-resolver",
+ "smallvec",
+]
+
+[[package]]
 name = "scale-info"
 version = "2.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -17748,6 +18213,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "scale-type-resolver"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0cded6518aa0bd6c1be2b88ac81bf7044992f0f154bfbabd5ad34f43512abcb"
+
+[[package]]
 name = "schannel"
 version = "0.1.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -17856,9 +18327,9 @@ dependencies = [
 
 [[package]]
 name = "sctp-proto"
-version = "0.1.7"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f64cef148d3295c730c3cb340b0b252a4d570b1c7d4bf0808f88540b0a888bc"
+checksum = "b6220f78bb44c15f326b0596113305f6101097a18755d53727a575c97e09fb24"
 dependencies = [
  "bytes",
  "crc",
@@ -18364,6 +18835,11 @@ dependencies = [
 
 [[package]]
 name = "simple-mermaid"
+version = "0.1.0"
+source = "git+https://github.com/kianenigma/simple-mermaid.git?branch=main#e48b187bcfd5cc75111acd9d241f1bd36604344b"
+
+[[package]]
+name = "simple-mermaid"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "620a1d43d70e142b1d46a929af51d44f383db9c7a2ec122de2cd992ccfcf3c18"
@@ -18422,9 +18898,9 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.2"
+version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "smol"
@@ -19500,7 +19976,7 @@ name = "sp-io"
 version = "30.0.0"
 dependencies = [
  "bytes",
- "ed25519-dalek 2.1.0",
+ "ed25519-dalek 2.1.1",
  "libsecp256k1",
  "log",
  "parity-scale-codec",
@@ -19573,9 +20049,9 @@ name = "sp-mmr-primitives"
 version = "26.0.0"
 dependencies = [
  "array-bytes",
- "ckb-merkle-mountain-range 0.6.0",
  "log",
  "parity-scale-codec",
+ "polkadot-ckb-merkle-mountain-range",
  "scale-info",
  "serde",
  "sp-api",
@@ -19654,7 +20130,7 @@ dependencies = [
  "scale-info",
  "serde",
  "serde_json",
- "simple-mermaid",
+ "simple-mermaid 0.1.1",
  "sp-api",
  "sp-application-crypto",
  "sp-arithmetic",
@@ -19801,6 +20277,7 @@ dependencies = [
 name = "sp-state-machine"
 version = "0.35.0"
 dependencies = [
+ "arbitrary",
  "array-bytes",
  "assert_matches",
  "hash-db",
@@ -19826,7 +20303,7 @@ version = "10.0.0"
 dependencies = [
  "aes-gcm",
  "curve25519-dalek 4.1.2",
- "ed25519-dalek 2.1.0",
+ "ed25519-dalek 2.1.1",
  "hkdf",
  "parity-scale-codec",
  "rand 0.8.5",
@@ -20113,7 +20590,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
 
 [[package]]
 name = "staging-chain-spec-builder"
-version = "3.0.0"
+version = "1.6.1"
 dependencies = [
  "clap 4.5.3",
  "log",
@@ -20131,101 +20608,26 @@ dependencies = [
  "clap 4.5.3",
  "clap_complete",
  "criterion",
- "frame-benchmarking",
- "frame-benchmarking-cli",
- "frame-support",
- "frame-system",
- "frame-system-rpc-runtime-api",
  "futures",
  "jsonrpsee",
  "kitchensink-runtime",
  "log",
- "mmr-gadget",
  "nix 0.28.0",
  "node-primitives",
  "node-rpc",
  "node-testing",
- "pallet-asset-conversion-tx-payment",
- "pallet-asset-tx-payment",
- "pallet-assets",
- "pallet-balances",
- "pallet-contracts",
- "pallet-glutton",
- "pallet-im-online",
- "pallet-root-testing",
- "pallet-skip-feeless-payment",
- "pallet-sudo",
- "pallet-timestamp",
- "pallet-transaction-payment",
- "pallet-treasury",
  "parity-scale-codec",
  "platforms",
+ "polkadot-sdk",
  "rand 0.8.5",
  "regex",
- "sc-authority-discovery",
- "sc-basic-authorship",
- "sc-block-builder",
- "sc-chain-spec",
- "sc-cli",
- "sc-client-api",
- "sc-client-db",
- "sc-consensus",
- "sc-consensus-babe",
- "sc-consensus-beefy",
- "sc-consensus-epochs",
- "sc-consensus-grandpa",
- "sc-consensus-slots",
- "sc-executor",
- "sc-keystore",
- "sc-mixnet",
- "sc-network",
- "sc-network-common",
- "sc-network-statement",
- "sc-network-sync",
- "sc-offchain",
- "sc-rpc",
- "sc-service",
  "sc-service-test",
- "sc-statement-store",
- "sc-storage-monitor",
- "sc-sync-state-rpc",
- "sc-sysinfo",
- "sc-telemetry",
- "sc-transaction-pool",
- "sc-transaction-pool-api",
  "scale-info",
  "serde",
  "serde_json",
  "soketto",
- "sp-api",
- "sp-application-crypto",
- "sp-authority-discovery",
- "sp-blockchain",
- "sp-consensus",
- "sp-consensus-babe",
- "sp-consensus-beefy",
- "sp-consensus-grandpa",
- "sp-core",
- "sp-crypto-hashing",
- "sp-externalities 0.25.0",
- "sp-genesis-builder",
- "sp-inherents",
- "sp-io",
- "sp-keyring",
- "sp-keystore",
- "sp-mixnet",
- "sp-mmr-primitives",
- "sp-runtime",
- "sp-state-machine",
- "sp-statement-store",
- "sp-timestamp",
- "sp-tracing 16.0.0",
- "sp-transaction-storage-proof",
- "sp-trie",
  "staging-node-inspect",
- "substrate-build-script-utils",
  "substrate-cli-test-utils",
- "substrate-rpc-client",
  "tempfile",
  "tokio",
  "tokio-util",
@@ -20374,17 +20776,17 @@ dependencies = [
 
 [[package]]
 name = "str0m"
-version = "0.4.1"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3f10d3f68e60168d81110410428a435dbde28cc5525f5f7c6fdec92dbdc2800"
+checksum = "6706347e49b13373f7ddfafad47df7583ed52083d6fc8a594eb2c80497ef959d"
 dependencies = [
  "combine",
  "crc",
+ "fastrand 2.1.0",
  "hmac 0.12.1",
  "once_cell",
  "openssl",
  "openssl-sys",
- "rand 0.8.5",
  "sctp-proto",
  "serde",
  "sha-1 0.10.1",
@@ -20709,6 +21111,7 @@ version = "2.0.0"
 dependencies = [
  "array-bytes",
  "frame-executive",
+ "frame-metadata-hash-extension",
  "frame-support",
  "frame-system",
  "frame-system-rpc-runtime-api",
@@ -20800,13 +21203,22 @@ dependencies = [
 name = "substrate-wasm-builder"
 version = "17.0.0"
 dependencies = [
+ "array-bytes",
  "build-helper",
  "cargo_metadata",
  "console",
  "filetime",
+ "frame-metadata",
+ "merkleized-metadata",
+ "parity-scale-codec",
  "parity-wasm",
  "polkavm-linker",
+ "sc-executor",
+ "sp-core",
+ "sp-io",
  "sp-maybe-compressed-blob",
+ "sp-tracing 16.0.0",
+ "sp-version",
  "strum 0.26.2",
  "tempfile",
  "toml 0.8.8",
@@ -21046,7 +21458,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
 dependencies = [
  "cfg-if",
- "fastrand 2.0.0",
+ "fastrand 2.1.0",
  "redox_syscall 0.4.1",
  "rustix 0.38.21",
  "windows-sys 0.48.0",
@@ -21078,6 +21490,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
 
 [[package]]
+name = "test-log"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dffced63c2b5c7be278154d76b479f9f9920ed34e7574201407f0b14e2bbb93"
+dependencies = [
+ "env_logger 0.11.3",
+ "test-log-macros",
+ "tracing-subscriber 0.3.18",
+]
+
+[[package]]
+name = "test-log-macros"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5999e24eaa32083191ba4e425deb75cdf25efefabe5aaccb7446dd0d4122a3f5"
+dependencies = [
+ "proc-macro2 1.0.82",
+ "quote 1.0.35",
+ "syn 2.0.61",
+]
+
+[[package]]
 name = "test-parachain-adder"
 version = "1.0.0"
 dependencies = [
@@ -21216,9 +21650,9 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
 
 [[package]]
 name = "thiserror"
-version = "1.0.50"
+version = "1.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
+checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
 dependencies = [
  "thiserror-impl",
 ]
@@ -21245,9 +21679,9 @@ dependencies = [
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.50"
+version = "1.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
+checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
 dependencies = [
  "proc-macro2 1.0.82",
  "quote 1.0.35",
@@ -21491,9 +21925,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.7.8"
+version = "0.7.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d"
+checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1"
 dependencies = [
  "bytes",
  "futures-core",
@@ -21501,7 +21935,6 @@ dependencies = [
  "futures-sink",
  "pin-project-lite 0.2.12",
  "tokio",
- "tracing",
 ]
 
 [[package]]
@@ -21547,17 +21980,6 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.20.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81"
-dependencies = [
- "indexmap 2.2.3",
- "toml_datetime",
- "winnow",
-]
-
-[[package]]
-name = "toml_edit"
 version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
@@ -22734,6 +23156,7 @@ dependencies = [
  "frame-benchmarking",
  "frame-election-provider-support",
  "frame-executive",
+ "frame-metadata-hash-extension",
  "frame-remote-externalities",
  "frame-support",
  "frame-system",
@@ -22752,6 +23175,7 @@ dependencies = [
  "pallet-beefy-mmr",
  "pallet-collective",
  "pallet-conviction-voting",
+ "pallet-delegated-staking",
  "pallet-democracy",
  "pallet-election-provider-multi-phase",
  "pallet-election-provider-support-benchmarking",
@@ -23302,6 +23726,31 @@ dependencies = [
 ]
 
 [[package]]
+name = "xcm-docs"
+version = "0.1.0"
+dependencies = [
+ "docify",
+ "pallet-balances",
+ "pallet-message-queue",
+ "pallet-xcm",
+ "parity-scale-codec",
+ "polkadot-parachain-primitives",
+ "polkadot-primitives",
+ "polkadot-runtime-parachains",
+ "polkadot-sdk-frame",
+ "scale-info",
+ "simple-mermaid 0.1.0",
+ "sp-io",
+ "sp-runtime",
+ "sp-std 14.0.0",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
+ "test-log",
+ "xcm-simulator",
+]
+
+[[package]]
 name = "xcm-emulator"
 version = "0.5.0"
 dependencies = [
@@ -23399,12 +23848,16 @@ name = "xcm-simulator"
 version = "7.0.0"
 dependencies = [
  "frame-support",
+ "frame-system",
  "parity-scale-codec",
  "paste",
  "polkadot-core-primitives",
  "polkadot-parachain-primitives",
+ "polkadot-primitives",
  "polkadot-runtime-parachains",
+ "scale-info",
  "sp-io",
+ "sp-runtime",
  "sp-std 14.0.0",
  "staging-xcm",
  "staging-xcm-builder",
diff --git a/pkgs/applications/blockchains/polkadot/default.nix b/pkgs/applications/blockchains/polkadot/default.nix
index 190bfc28d1327..6af16ffac8a46 100644
--- a/pkgs/applications/blockchains/polkadot/default.nix
+++ b/pkgs/applications/blockchains/polkadot/default.nix
@@ -17,13 +17,13 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "polkadot";
-  version = "1.12.0";
+  version = "1.13.0";
 
   src = fetchFromGitHub {
     owner = "paritytech";
     repo = "polkadot-sdk";
     rev = "polkadot-v${version}";
-    hash = "sha256-/m7Tg+9JHbnwKwWPY8gWIJkIHktGFlqcrbLLgNWjfwU=";
+    hash = "sha256-9ZjiKv+05//Kf6q3mL1P5kOCOm1KCGmQIZkrD54pyeI=";
 
     # the build process of polkadot requires a .git folder in order to determine
     # the git commit hash that is being built and add it to the version string.
@@ -48,10 +48,9 @@ rustPlatform.buildRustPackage rec {
     lockFile = ./Cargo.lock;
     outputHashes = {
       "ark-secret-scalar-0.0.2" = "sha256-91sODxaj0psMw0WqigMCGO5a7+NenAsRj5ZmW6C7lvc=";
-      "ckb-merkle-mountain-range-0.6.0" = "sha256-oTe1l406lTpgOefPai664JYwzezLjkIDXpiZTfjbd28=";
       "common-0.1.0" = "sha256-LHz2dK1p8GwyMimlR7AxHLz1tjTYolPwdjP7pxork1o=";
       "fflonk-0.1.0" = "sha256-+BvZ03AhYNP0D8Wq9EMsP+lSgPA6BBlnWkoxTffVLwo=";
-      "litep2p-0.3.0" = "sha256-y0my2vi0+2CWNOtCh/vtsUbIcU1iNSFAJbLiCktEcOc=";
+      "simple-mermaid-0.1.0" = "sha256-IekTldxYq+uoXwGvbpkVTXv2xrcZ0TQfyyE2i2zH+6w=";
       "sp-ark-bls12-381-0.4.2" = "sha256-nNr0amKhSvvI9BlsoP+8v6Xppx/s7zkf0l9Lm3DW8w8=";
       "sp-crypto-ec-utils-0.4.1" = "sha256-/Sw1ZM/JcJBokFE4y2mv/P43ciTL5DEm0PDG0jZvMkI=";
     };
@@ -82,8 +81,6 @@ rustPlatform.buildRustPackage rec {
   # available for `rustc-wasm32`
   WASM_BUILD_STD = 0;
 
-  # NOTE: we need to force lld otherwise rust-lld is not found for wasm32 target
-  CARGO_TARGET_WASM32_UNKNOWN_UNKNOWN_LINKER = "lld";
   OPENSSL_NO_VENDOR = 1;
   PROTOC = "${protobuf}/bin/protoc";
   ROCKSDB_LIB_DIR = "${rocksdb}/lib";
@@ -93,6 +90,10 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://polkadot.network";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ akru andresilva FlorianFranzen RaghavSood ];
-    platforms = platforms.unix;
+    # See Iso::from_arch in src/isa/mod.rs in cranelift-codegen-meta.
+    platforms = intersectLists platforms.unix (platforms.aarch64 ++ platforms.s390x ++ platforms.riscv64 ++ platforms.x86);
+    # See comment about wasm32-unknown-unknown in rustc.nix.
+    broken = lib.any (a: lib.hasAttr a stdenv.hostPlatform.gcc) [ "cpu" "float-abi" "fpu" ] ||
+      !stdenv.hostPlatform.gcc.thumb or true;
   };
 }
diff --git a/pkgs/applications/blockchains/quorum/default.nix b/pkgs/applications/blockchains/quorum/default.nix
index b50d91a07e895..23e1d92a83143 100644
--- a/pkgs/applications/blockchains/quorum/default.nix
+++ b/pkgs/applications/blockchains/quorum/default.nix
@@ -2,21 +2,16 @@
 
 buildGoModule rec {
   pname = "quorum";
-  version = "23.4.0";
+  version = "24.4.1";
 
   src = fetchFromGitHub {
     owner = "Consensys";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-N8MlDHo6LQ/m9xFUeOCm6bqDtjnCc86i/s4ebFLjUT0=";
+    hash = "sha256-pW8I4ivcKo6dsa8rQVKU6nUZuKxaki/7cMDKwEsSzNw=";
   };
 
-  vendorHash = "sha256-dTYKGFqVaAnspvKhfBU10bpSzhtQHGTm6KxnNKUVAIg=";
-
-  patches = [
-    # Add missing requirements
-    ./go.mod.patch
-  ];
+  vendorHash = "sha256-YK2zpQz4pAFyA+aHOn6Nx0htl5SJ2HNC+TDV1RdLQJk=";
 
   subPackages = [
     "cmd/geth"
@@ -26,10 +21,10 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "A permissioned implementation of Ethereum supporting data privacy";
+    description = "Permissioned implementation of Ethereum supporting data privacy";
     homepage = "https://consensys.net/quorum/";
     license = licenses.lgpl3;
     maintainers = with maintainers; [ mmahut ];
-    platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/blockchains/quorum/go.mod.patch b/pkgs/applications/blockchains/quorum/go.mod.patch
deleted file mode 100644
index 7161371ac60c3..0000000000000
--- a/pkgs/applications/blockchains/quorum/go.mod.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/go.mod b/go.mod
-index ace412f41..3336c1e08 100644
---- a/go.mod
-+++ b/go.mod
-@@ -89,6 +89,7 @@ require (
- 	golang.org/x/text v0.3.7
- 	golang.org/x/time v0.0.0-20201208040808-7e3f01d25324
- 	google.golang.org/grpc v1.46.0
-+	google.golang.org/protobuf v1.28.0
- 	gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
- 	gopkg.in/karalabe/cookiejar.v2 v2.0.0-20150724131613-8dcd6a7f4951
- 	gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce
diff --git a/pkgs/applications/blockchains/snarkos/default.nix b/pkgs/applications/blockchains/snarkos/default.nix
index a60f414bf1237..8e6fb1b388937 100644
--- a/pkgs/applications/blockchains/snarkos/default.nix
+++ b/pkgs/applications/blockchains/snarkos/default.nix
@@ -50,7 +50,7 @@ rustPlatform.buildRustPackage rec {
 
 
   meta = with lib; {
-    description = "A Decentralized Operating System for Zero-Knowledge Applications";
+    description = "Decentralized Operating System for Zero-Knowledge Applications";
     homepage = "https://snarkos.org";
     license = licenses.asl20;
     maintainers = with maintainers; [ happysalada ];
diff --git a/pkgs/applications/blockchains/sparrow/default.nix b/pkgs/applications/blockchains/sparrow/default.nix
index ab58899889de8..8fa33c91b12e8 100644
--- a/pkgs/applications/blockchains/sparrow/default.nix
+++ b/pkgs/applications/blockchains/sparrow/default.nix
@@ -250,7 +250,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A modern desktop Bitcoin wallet application supporting most hardware wallets and built on common standards such as PSBT, with an emphasis on transparency and usability.";
+    description = "Modern desktop Bitcoin wallet application supporting most hardware wallets and built on common standards such as PSBT, with an emphasis on transparency and usability";
     homepage = "https://sparrowwallet.com";
     sourceProvenance = with sourceTypes; [
       binaryBytecode
diff --git a/pkgs/applications/blockchains/sparrow/openimajgrabber.nix b/pkgs/applications/blockchains/sparrow/openimajgrabber.nix
index 0bf642d49d1ca..8fac6f1a27ae6 100644
--- a/pkgs/applications/blockchains/sparrow/openimajgrabber.nix
+++ b/pkgs/applications/blockchains/sparrow/openimajgrabber.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A collection of libraries and tools for multimedia (images, text, video, audio, etc.) content analysis and content generation. This package only builds the OpenIMAJGrabber for Linux.";
+    description = "Collection of libraries and tools for multimedia (images, text, video, audio, etc.) content analysis and content generation. This package only builds the OpenIMAJGrabber for Linux";
     homepage = "http://www.openimaj.org";
     license = licenses.bsd0;
     maintainers = with maintainers; [ emmanuelrosa _1000101 ];
diff --git a/pkgs/applications/blockchains/sumokoin/default.nix b/pkgs/applications/blockchains/sumokoin/default.nix
index 8fdf387ef78bd..5a0c31a33a1cc 100644
--- a/pkgs/applications/blockchains/sumokoin/default.nix
+++ b/pkgs/applications/blockchains/sumokoin/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "format" ];
 
   meta = with lib; {
-    description = "A fork of Monero and a truely fungible cryptocurrency";
+    description = "Fork of Monero and a truely fungible cryptocurrency";
     homepage = "https://www.sumokoin.org/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ wegank ];
diff --git a/pkgs/applications/blockchains/teos/default.nix b/pkgs/applications/blockchains/teos/default.nix
index fbd8c08575d5d..c2e4fb01384d9 100644
--- a/pkgs/applications/blockchains/teos/default.nix
+++ b/pkgs/applications/blockchains/teos/default.nix
@@ -49,7 +49,7 @@ in
     __darwinAllowLocalNetworking = true;
 
     meta = meta // {
-      description = "A Lightning watchtower compliant with BOLT13, written in Rust";
+      description = "Lightning watchtower compliant with BOLT13, written in Rust";
     };
   };
 
@@ -78,7 +78,7 @@ in
     __darwinAllowLocalNetworking = true;
 
     meta = meta // {
-      description = "A Lightning watchtower plugin for clightning";
+      description = "Lightning watchtower plugin for clightning";
       mainProgram = "watchtower-client";
     };
   };
diff --git a/pkgs/applications/blockchains/teos/update.sh b/pkgs/applications/blockchains/teos/update.sh
index b7e344cda8447..f27be08299b2c 100755
--- a/pkgs/applications/blockchains/teos/update.sh
+++ b/pkgs/applications/blockchains/teos/update.sh
@@ -25,7 +25,6 @@ git -C "$repo" checkout "tags/v${version}"
 rm -rf "${repo}/.git"
 hashcheck=$(nix hash path "$repo")
 
-(cd "$nixpkgs" && update-source-version teos "$version" "$hashcheck")
-sed -i 's|cargoHash = .*|cargoHash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";|' "${scriptDir}/default.nix"
+(cd "$nixpkgs" && update-source-version teos "$version" "$hashcheck" && update-source-version teos --ignore-same-version --source-key=cargoDeps)
 echo
 echo "rust-teos: $oldVersion -> $version"
diff --git a/pkgs/applications/blockchains/terra-station/default.nix b/pkgs/applications/blockchains/terra-station/default.nix
index 54ecd28550c2b..2ae6ca12b6054 100644
--- a/pkgs/applications/blockchains/terra-station/default.nix
+++ b/pkgs/applications/blockchains/terra-station/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "Terra station is the official wallet of the Terra blockchain.";
+    description = "Terra station is the official wallet of the Terra blockchain";
     homepage = "https://docs.terra.money/docs/learn/terra-station/README.html";
     license = licenses.isc;
     maintainers = [ maintainers.peterwilli ];
diff --git a/pkgs/applications/blockchains/ton/default.nix b/pkgs/applications/blockchains/ton/default.nix
index c602a88dc7bd2..07be7664acba2 100644
--- a/pkgs/applications/blockchains/ton/default.nix
+++ b/pkgs/applications/blockchains/ton/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ton";
-  version = "2024.04";
+  version = "2024.06";
 
   src = fetchFromGitHub {
     owner = "ton-blockchain";
     repo = "ton";
     rev = "v${version}";
-    hash = "sha256-hh8D4IZX6RS/RXdhVONhgetqp89kpTC2IwDQ2KHdKsE=";
+    hash = "sha256-5fuRdVayvmM+yK1WsdtWlCZpxz7KKBs+ZRfnueP0Ny0=";
     fetchSubmodules = true;
   };
 
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
     # The build fails on darwin as:
     #   error: aligned allocation function of type 'void *(std::size_t, std::align_val_t)' is only available on macOS 10.13 or newer
     broken = stdenv.isDarwin;
-    description = "A fully decentralized layer-1 blockchain designed by Telegram";
+    description = "Fully decentralized layer-1 blockchain designed by Telegram";
     homepage = "https://ton.org/";
     changelog = "https://github.com/ton-blockchain/ton/blob/v${version}/Changelog.md";
     license = licenses.lgpl2Only;
diff --git a/pkgs/applications/blockchains/trezor-suite/default.nix b/pkgs/applications/blockchains/trezor-suite/default.nix
index a718d06c714ac..5884fd2a275da 100644
--- a/pkgs/applications/blockchains/trezor-suite/default.nix
+++ b/pkgs/applications/blockchains/trezor-suite/default.nix
@@ -8,7 +8,7 @@
 
 let
   pname = "trezor-suite";
-  version = "24.5.2";
+  version = "24.5.4";
   name = "${pname}-${version}";
 
   suffix = {
@@ -19,8 +19,8 @@ let
   src = fetchurl {
     url = "https://github.com/trezor/${pname}/releases/download/v${version}/Trezor-Suite-${version}-${suffix}.AppImage";
     hash = { # curl -Lfs https://github.com/trezor/trezor-suite/releases/latest/download/latest-linux{-arm64,}.yml | grep ^sha512 | sed 's/: /-/'
-      aarch64-linux = "sha512-U3Az5MtsHup+aNO6lVHeAXRAnNLUbQkL5qMTpYZTaLgiZEFQCUigBJXNPaiUiHA1rJAsFh6wpv20iRMcqRr9gA==";
-      x86_64-linux  = "sha512-9Gz0T9/GpTEzZDNk8tV7dg4QvQIB4IoEcOLIjrig6kmlaUoPwwoWFuJP0BH5WW2AhOZ+CEWBP6zFD7uw6VVDnA==";
+      aarch64-linux = "sha512-gkN6e4Ndc96FT6vaCmSxuViTKuOc5vnCqptPN8IRno9Nv8L0k6hB7O+0g5E+9hd+3o5WASXKefYIOZAnPI3RZA==";
+      x86_64-linux  = "sha512-uHMI0fm02XdOyt6mAXEZuTZkNlNykTQbJNeGATBrlLLR98cxrOj8DQ1S7gPd5dkQCJzdmR7ydylj/XPOHsV2Ug==";
     }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   };
 
diff --git a/pkgs/applications/blockchains/vertcoin/default.nix b/pkgs/applications/blockchains/vertcoin/default.nix
index 097b5711da32c..835c89768de91 100644
--- a/pkgs/applications/blockchains/vertcoin/default.nix
+++ b/pkgs/applications/blockchains/vertcoin/default.nix
@@ -75,7 +75,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A digital currency with mining decentralisation and ASIC resistance as a key focus";
+    description = "Digital currency with mining decentralisation and ASIC resistance as a key focus";
     homepage = "https://vertcoin.org/";
     license = licenses.mit;
     maintainers = [ maintainers.mmahut ];
diff --git a/pkgs/applications/blockchains/wasabiwallet/default.nix b/pkgs/applications/blockchains/wasabiwallet/default.nix
index 2d8b7b7c7385d..b010eb1184e74 100644
--- a/pkgs/applications/blockchains/wasabiwallet/default.nix
+++ b/pkgs/applications/blockchains/wasabiwallet/default.nix
@@ -25,11 +25,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "wasabiwallet";
-  version = "2.0.7.2";
+  version = "2.0.8.1";
 
   src = fetchurl {
     url = "https://github.com/zkSNACKs/WalletWasabi/releases/download/v${version}/Wasabi-${version}.tar.gz";
-    sha256 = "sha256-s/rzjlPsOylbuQx7gDnctvl1tms95RqErk0vVlzhouw=";
+    sha256 = "sha256-9q93C8Q4MKrpvAs6cb4sgo3PDVhk9ZExeHIZ9Qm8P2w=";
   };
 
   dontBuild = true;
diff --git a/pkgs/applications/blockchains/zecwallet-lite/default.nix b/pkgs/applications/blockchains/zecwallet-lite/default.nix
index 2b51f76ffcca9..1659bae052b93 100644
--- a/pkgs/applications/blockchains/zecwallet-lite/default.nix
+++ b/pkgs/applications/blockchains/zecwallet-lite/default.nix
@@ -19,7 +19,7 @@ appimageTools.wrapType2 rec {
     '';
 
   meta = with lib; {
-    description = "A fully featured shielded wallet for Zcash";
+    description = "Fully featured shielded wallet for Zcash";
     homepage = "https://www.zecwallet.co/";
     license = licenses.mit;
     maintainers = with maintainers; [ colinsane ];
diff --git a/pkgs/applications/display-managers/emptty/default.nix b/pkgs/applications/display-managers/emptty/default.nix
index 2e4650f563ba6..eb25c1b109050 100644
--- a/pkgs/applications/display-managers/emptty/default.nix
+++ b/pkgs/applications/display-managers/emptty/default.nix
@@ -8,18 +8,18 @@
 
 buildGoModule rec {
   pname = "emptty";
-  version = "0.12.0";
+  version = "0.12.1";
 
   src = fetchFromGitHub {
     owner = "tvrzna";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-64Ta0k4TzJcQC+RDybHzFUj96ZSRUOeYQ2U9KFjDXjk=";
+    hash = "sha256-9qNAQBmcFKPpJ+AqfOy3emA1fvqI/XaT39KwI5fpXHU=";
   };
 
   buildInputs = [ pam libX11 ];
 
-  vendorHash = "sha256-tviPb05puHvBdDkSsRrBExUVxQy+DzmkjB+W9W2CG4M=";
+  vendorHash = "sha256-PLyemAUcCz9H7+nAxftki3G7rQoEeyPzY3YUEj2RFn4=";
 
   meta = with lib; {
     description = "Dead simple CLI Display Manager on TTY";
diff --git a/pkgs/applications/display-managers/greetd/dlm.nix b/pkgs/applications/display-managers/greetd/dlm.nix
index 02df9876bad12..a73a96c779a84 100644
--- a/pkgs/applications/display-managers/greetd/dlm.nix
+++ b/pkgs/applications/display-managers/greetd/dlm.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "01a8k60qnx2pgxb2adgw30c2hjb60w6230khm5hyqgmp7z4rm8k8";
 
   meta = with lib; {
-    description = "A stupid simple graphical login manager";
+    description = "Stupid simple graphical login manager";
     mainProgram = "dlm";
     homepage = "https://git.sr.ht/~kennylevinsen/dlm";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/display-managers/greetd/tuigreet.nix b/pkgs/applications/display-managers/greetd/tuigreet.nix
index d0aebc5921b97..40b52ecf7592b 100644
--- a/pkgs/applications/display-managers/greetd/tuigreet.nix
+++ b/pkgs/applications/display-managers/greetd/tuigreet.nix
@@ -5,23 +5,24 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tuigreet";
-  version = "0.9.0";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "apognu";
-    repo = pname;
-    rev = version;
-    sha256 = "sha256-o1NPwZ2gvFxq988RhLz/6ucL4qb2dGtMdhNvAbQzIvg=";
+    repo = "tuigreet";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-e0YtpakEaaWdgu+bMr2VFoUc6+SUMFk4hYtSyk5aApY=";
   };
 
-  cargoSha256 = "sha256-dfzNRs3NOtHoWBq6tx3DjL2knNwsdxBmjqJbPzQJifQ=";
+  cargoSha256 = "sha256-RkJjAmZ++4nc/lLh8g0LxGq2DjZGxQEjFOl8Yzx116A=";
 
-  meta = with lib; {
+  meta = {
     description = "Graphical console greeter for greetd";
     homepage = "https://github.com/apognu/tuigreet";
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ luc65r ivar ];
-    platforms = platforms.linux;
+    changelog = "https://github.com/apognu/tuigreet/releases/tag/${version}";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ luc65r ivar ];
+    platforms = lib.platforms.linux;
     mainProgram = "tuigreet";
   };
 }
diff --git a/pkgs/applications/display-managers/greetd/wlgreet.nix b/pkgs/applications/display-managers/greetd/wlgreet.nix
index 1026f3a61e779..cdaf1ff0c9268 100644
--- a/pkgs/applications/display-managers/greetd/wlgreet.nix
+++ b/pkgs/applications/display-managers/greetd/wlgreet.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wlgreet";
-  version = "0.4.1";
+  version = "0.5.0";
 
   src = fetchFromSourcehut {
     owner = "~kennylevinsen";
     repo = pname;
     rev = version;
-    hash = "sha256-qfEzr8tAE1+PK7xs1NQ1q6d/GlFA7/kSWXbJDOCrEsw=";
+    hash = "sha256-TQTHFBOTxtSuzrAG4cjZ9oirl80xc0rPdYeLJ0t39DQ=";
   };
 
-  cargoHash = "sha256-1ugExUtrzqyd9dTlBHcc44UrtEfYrfUryuG79IkTv2Y=";
+  cargoHash = "sha256-+YGhfEq2RltPq5oLLh1h+vGphDpoGZNVdvzko3P1iUQ=";
 
   nativeBuildInputs = [ autoPatchelfHook ];
   buildInputs = [ gcc-unwrapped ];
diff --git a/pkgs/applications/display-managers/lemurs/default.nix b/pkgs/applications/display-managers/lemurs/default.nix
index a83b6c271448e..bb085c8a406be 100644
--- a/pkgs/applications/display-managers/lemurs/default.nix
+++ b/pkgs/applications/display-managers/lemurs/default.nix
@@ -19,9 +19,6 @@ rustPlatform.buildRustPackage rec {
 
   cargoHash = "sha256-uuHPJe+1VsnLRGbHtgTMrib6Tk359cwTDVfvtHnDToo=";
 
-  # Fixes a lock issue
-  preConfigure = "cargo update --offline";
-
   buildInputs = [
     linux-pam
   ];
@@ -31,7 +28,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A customizable TUI display/login manager written in Rust";
+    description = "Customizable TUI display/login manager written in Rust";
     homepage = "https://github.com/coastalwhite/lemurs";
     license = with licenses; [asl20 mit];
     maintainers = with maintainers; [jeremiahs];
diff --git a/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix b/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix
index 16fa1cfe4dcf3..b72b837eaf344 100644
--- a/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix
+++ b/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   }];
 
   meta = with lib; {
-    description = "A minimal, configurable, single-user GTK3 LightDM greeter";
+    description = "Minimal, configurable, single-user GTK3 LightDM greeter";
     mainProgram = "lightdm-mini-greeter";
     homepage = "https://github.com/prikhi/lightdm-mini-greeter";
     license = licenses.gpl3;
diff --git a/pkgs/applications/display-managers/lightdm-mobile-greeter/default.nix b/pkgs/applications/display-managers/lightdm-mobile-greeter/default.nix
index 87a6560f6f643..a18397262fde0 100644
--- a/pkgs/applications/display-managers/lightdm-mobile-greeter/default.nix
+++ b/pkgs/applications/display-managers/lightdm-mobile-greeter/default.nix
@@ -49,7 +49,7 @@ rustPlatform.buildRustPackage rec {
   }];
 
   meta = with lib; {
-    description = "A simple log in screen for use on touch screens";
+    description = "Simple log in screen for use on touch screens";
     homepage = "https://git.raatty.club/raatty/lightdm-mobile-greeter";
     maintainers = with maintainers; [ colinsane ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/display-managers/lightdm-slick-greeter/default.nix b/pkgs/applications/display-managers/lightdm-slick-greeter/default.nix
index b7aded60260d5..d7054e6f4080a 100644
--- a/pkgs/applications/display-managers/lightdm-slick-greeter/default.nix
+++ b/pkgs/applications/display-managers/lightdm-slick-greeter/default.nix
@@ -1,11 +1,11 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, meson
+, ninja
 , pkg-config
 , python3
 , vala
-, intltool
-, autoreconfHook
 , wrapGAppsHook3
 , cinnamon
 , lightdm
@@ -22,20 +22,20 @@
 
 stdenv.mkDerivation rec {
   pname = "lightdm-slick-greeter";
-  version = "2.0.3";
+  version = "2.0.5";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "slick-greeter";
     rev = version;
-    sha256 = "sha256-ROOCxOjqJ8dTZjfQpjmE9oDQJzt6QFVVf3nrJ26mFU8=";
+    sha256 = "sha256-Q37CprukHvDRBcuPbfusKg2DY+JCwmjVX1+KnfSH2iw=";
   };
 
   nativeBuildInputs = [
+    meson
+    ninja
     pkg-config
     vala
-    intltool
-    autoreconfHook
     wrapGAppsHook3
     python3
     python3.pkgs.wrapPython
@@ -58,43 +58,28 @@ stdenv.mkDerivation rec {
 
   postPatch = ''
     substituteInPlace src/slick-greeter.vala \
-      --replace "/usr/bin/numlockx" "${numlockx}/bin/numlockx" \
-      --replace "/usr/share/xsessions/" "/run/current-system/sw/share/xsessions/" \
-      --replace "/usr/share/wayland-sessions/" "/run/current-system/sw/share/wayland-sessions/" \
-      --replace "/usr/bin/slick-greeter" "${placeholder "out"}/bin/slick-greeter"
+      --replace-fail "/usr/bin/numlockx" "${numlockx}/bin/numlockx" \
+      --replace-fail "/usr/share/xsessions/" "/run/current-system/sw/share/xsessions/" \
+      --replace-fail "/usr/share/wayland-sessions/" "/run/current-system/sw/share/wayland-sessions/" \
+      --replace-fail "/usr/bin/slick-greeter" "${placeholder "out"}/bin/slick-greeter"
 
     substituteInPlace src/session-list.vala \
-      --replace "/usr/share" "${placeholder "out"}/share"
+      --replace-fail "/usr/share" "${placeholder "out"}/share"
 
     # We prefer stable path here.
     substituteInPlace data/x.dm.slick-greeter.gschema.xml \
-      --replace "/usr/share/onboard" "/run/current-system/sw/share/onboard"
+      --replace-fail "/usr/share/onboard" "/run/current-system/sw/share/onboard"
 
     patchShebangs files/usr/bin/*
   '';
 
-  preAutoreconf = ''
-    # intltoolize fails during autoreconfPhase unless this
-    # directory is created manually.
-    mkdir m4
-  '';
-
-  configureFlags = [
-    "--localstatedir=/var"
-    "--sysconfdir=/etc"
+  mesonFlags = [
     "--sbindir=${placeholder "out"}/bin"
   ];
 
-  installFlags = [
-    "localstatedir=\${TMPDIR}"
-    "sysconfdir=${placeholder "out"}/etc"
-  ];
-
   postInstall = ''
     substituteInPlace "$out/share/xgreeters/slick-greeter.desktop" \
-      --replace "Exec=slick-greeter" "Exec=$out/bin/slick-greeter"
-
-    cp -r files/usr/* $out
+      --replace-fail "Exec=slick-greeter" "Exec=$out/bin/slick-greeter"
   '';
 
   preFixup = ''
@@ -110,7 +95,7 @@ stdenv.mkDerivation rec {
   }];
 
   meta = with lib; {
-    description = "A slick-looking LightDM greeter";
+    description = "Slick-looking LightDM greeter";
     homepage = "https://github.com/linuxmint/slick-greeter";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ water-sucks bobby285271 ];
diff --git a/pkgs/applications/display-managers/lightdm-tiny-greeter/default.nix b/pkgs/applications/display-managers/lightdm-tiny-greeter/default.nix
index 1090be3c932eb..42e5e004a62a7 100644
--- a/pkgs/applications/display-managers/lightdm-tiny-greeter/default.nix
+++ b/pkgs/applications/display-managers/lightdm-tiny-greeter/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   }];
 
   meta = with lib; {
-    description = "A tiny multi user lightdm greeter";
+    description = "Tiny multi user lightdm greeter";
     mainProgram = "lightdm-tiny-greeter";
     homepage = "https://github.com/off-world/lightdm-tiny-greeter";
     license = licenses.bsd3;
diff --git a/pkgs/applications/display-managers/lightdm/default.nix b/pkgs/applications/display-managers/lightdm/default.nix
index 8365ac3b5a22f..8361461fb7d37 100644
--- a/pkgs/applications/display-managers/lightdm/default.nix
+++ b/pkgs/applications/display-managers/lightdm/default.nix
@@ -120,7 +120,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/canonical/lightdm";
-    description = "A cross-desktop display manager";
+    description = "Cross-desktop display manager";
     platforms = platforms.linux;
     license = licenses.gpl3;
     maintainers = with maintainers; [ ] ++ teams.pantheon.members;
diff --git a/pkgs/applications/display-managers/lightdm/gtk-greeter.nix b/pkgs/applications/display-managers/lightdm/gtk-greeter.nix
index e3ef95bdcdc67..8bf003d37194b 100644
--- a/pkgs/applications/display-managers/lightdm/gtk-greeter.nix
+++ b/pkgs/applications/display-managers/lightdm/gtk-greeter.nix
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/Xubuntu/lightdm-gtk-greeter";
-    description = "A GTK greeter for LightDM";
+    description = "GTK greeter for LightDM";
     mainProgram = "lightdm-gtk-greeter";
     platforms = platforms.linux;
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/editors/amp/default.nix b/pkgs/applications/editors/amp/default.nix
index de05659d73417..e559ceb73ec73 100644
--- a/pkgs/applications/editors/amp/default.nix
+++ b/pkgs/applications/editors/amp/default.nix
@@ -22,7 +22,7 @@ rustPlatform.buildRustPackage rec {
   preCheck = "export HOME=`mktemp -d`";
 
   meta = with lib; {
-    description = "A modern text editor inspired by Vim";
+    description = "Modern text editor inspired by Vim";
     homepage = "https://amp.rs";
     license = [ licenses.gpl3 ];
     maintainers = [ maintainers.sb0 ];
diff --git a/pkgs/applications/editors/android-studio/common.nix b/pkgs/applications/editors/android-studio/common.nix
index 291a280bdf0f2..87b7a99833dec 100644
--- a/pkgs/applications/editors/android-studio/common.nix
+++ b/pkgs/applications/editors/android-studio/common.nix
@@ -1,7 +1,7 @@
 { channel, pname, version, sha256Hash }:
 
 { alsa-lib
-, bash
+, runtimeShell
 , buildFHSEnv
 , cacert
 , coreutils
@@ -65,6 +65,7 @@
 , zlib
 , makeDesktopItem
 , tiling_wm # if we are using a tiling wm, need to set _JAVA_AWT_WM_NONREPARENTING in wrapper
+, androidenv
 }:
 
 let
@@ -214,20 +215,55 @@ let
         '')
     ];
   };
-in runCommand
-  drvName
-  {
-    startScript = ''
-      #!${bash}/bin/bash
-      ${fhsEnv}/bin/${drvName}-fhs-env ${androidStudio}/bin/studio.sh "$@"
+  mkAndroidStudioWrapper = {androidStudio, androidSdk ? null}: runCommand drvName {
+    startScript = let
+      hasAndroidSdk = androidSdk != null;
+      androidSdkRoot = lib.optionalString hasAndroidSdk "${androidSdk}/libexec/android-sdk";
+    in ''
+      #!${runtimeShell}
+      ${lib.optionalString hasAndroidSdk ''
+        echo "=== nixpkgs Android Studio wrapper" >&2
+
+        # Default ANDROID_SDK_ROOT to the packaged one, if not provided.
+        ANDROID_SDK_ROOT="''${ANDROID_SDK_ROOT-${androidSdkRoot}}"
+
+        if [ -d "$ANDROID_SDK_ROOT" ]; then
+          export ANDROID_SDK_ROOT
+          # Legacy compatibility.
+          export ANDROID_HOME="$ANDROID_SDK_ROOT"
+          echo "  - ANDROID_SDK_ROOT=$ANDROID_SDK_ROOT" >&2
+
+          # See if we can export ANDROID_NDK_ROOT too.
+          ANDROID_NDK_ROOT="$ANDROID_SDK_ROOT/ndk-bundle"
+          if [ ! -d "$ANDROID_NDK_ROOT" ]; then
+            ANDROID_NDK_ROOT="$(ls "$ANDROID_SDK_ROOT/ndk/"* 2>/dev/null | head -n1)"
+          fi
+
+          if [ -d "$ANDROID_NDK_ROOT" ]; then
+            export ANDROID_NDK_ROOT
+            echo "  - ANDROID_NDK_ROOT=$ANDROID_NDK_ROOT" >&2
+          else
+            unset ANDROID_NDK_ROOT
+          fi
+        else
+          unset ANDROID_SDK_ROOT
+          unset ANDROID_HOME
+        fi
+      ''}
+      exec ${fhsEnv}/bin/${drvName}-fhs-env ${androidStudio}/bin/studio.sh "$@"
     '';
     preferLocalBuild = true;
     allowSubstitutes = false;
-    passthru = {
+    passthru = let
+      withSdk = androidSdk: mkAndroidStudioWrapper { inherit androidStudio androidSdk; };
+    in {
       unwrapped = androidStudio;
+      full = withSdk androidenv.androidPkgs.androidsdk;
+      inherit withSdk;
+      sdk = androidSdk;
     };
     meta = with lib; {
-      description = "The Official IDE for Android (${channel} channel)";
+      description = "Official IDE for Android (${channel} channel)";
       longDescription = ''
         Android Studio is the official IDE for Android app development, based on
         IntelliJ IDEA.
@@ -245,9 +281,9 @@ in runCommand
       # source-code itself).
       platforms = [ "x86_64-linux" ];
       maintainers = with maintainers; rec {
-        stable = [ alapshin ];
-        beta = [ alapshin ];
-        canary = [ alapshin ];
+        stable = [ alapshin numinit ];
+        beta = [ alapshin numinit ];
+        canary = [ alapshin numinit ];
         dev = canary;
       }."${channel}";
       mainProgram = pname;
@@ -261,4 +297,5 @@ in runCommand
 
     ln -s ${androidStudio}/bin/studio.png $out/share/pixmaps/${pname}.png
     ln -s ${desktopItem}/share/applications $out/share/applications
-  ''
+  '';
+in mkAndroidStudioWrapper { inherit androidStudio; }
diff --git a/pkgs/applications/editors/aseprite/default.nix b/pkgs/applications/editors/aseprite/default.nix
deleted file mode 100644
index e41edcdd66b89..0000000000000
--- a/pkgs/applications/editors/aseprite/default.nix
+++ /dev/null
@@ -1,112 +0,0 @@
-{ stdenv, lib, callPackage, fetchFromGitHub, cmake, ninja, pkg-config
-, curl, freetype, giflib, libjpeg, libpng, libwebp, pixman, tinyxml, zlib
-, harfbuzzFull, glib, fontconfig, pcre
-, libX11, libXext, libXcursor, libXxf86vm, libGL, libXi
-, cmark
-}:
-
-# Unfree version is not redistributable:
-# https://dev.aseprite.org/2016/09/01/new-source-code-license/
-# Consider supporting the developer: https://aseprite.org/#buy
-
-let
-  skia = callPackage ./skia.nix {};
-in
-stdenv.mkDerivation rec {
-  pname = "aseprite";
-  version = "1.3.6";
-
-  src = fetchFromGitHub {
-    owner = "aseprite";
-    repo = "aseprite";
-    rev = "v${version}";
-    fetchSubmodules = true;
-    hash = "sha256-17f6pIGsOIswnyY63pjHKEEYuCo43kf25mPLBv4vQAs=";
-  };
-
-  nativeBuildInputs = [
-    cmake pkg-config ninja
-  ];
-
-  buildInputs = [
-    curl freetype giflib libjpeg libpng libwebp pixman tinyxml zlib
-    libX11 libXext libXcursor libXxf86vm
-    cmark
-    harfbuzzFull glib fontconfig pcre
-    skia libGL libXi
-  ];
-
-  patches = [
-    ./shared-libwebp.patch
-    ./shared-skia-deps.patch
-  ];
-
-  postPatch = ''
-    sed -i src/ver/CMakeLists.txt -e "s-set(VERSION \".*\")-set(VERSION \"$version\")-"
-  '';
-
-  cmakeFlags = [
-    "-DENABLE_UPDATER=OFF"
-    "-DUSE_SHARED_CURL=ON"
-    "-DUSE_SHARED_FREETYPE=ON"
-    "-DUSE_SHARED_GIFLIB=ON"
-    "-DUSE_SHARED_JPEGLIB=ON"
-    "-DUSE_SHARED_LIBPNG=ON"
-    "-DUSE_SHARED_LIBWEBP=ON"
-    "-DUSE_SHARED_PIXMAN=ON"
-    "-DUSE_SHARED_TINYXML=ON"
-    "-DUSE_SHARED_ZLIB=ON"
-    "-DUSE_SHARED_CMARK=ON"
-    "-DUSE_SHARED_HARFBUZZ=ON"
-    "-DUSE_SHARED_WEBP=ON"
-    # Disable libarchive programs.
-    "-DENABLE_CAT=OFF"
-    "-DENABLE_CPIO=OFF"
-    "-DENABLE_TAR=OFF"
-    # UI backend.
-    "-DLAF_WITH_EXAMPLES=OFF"
-    "-DLAF_OS_BACKEND=skia"
-    "-DENABLE_DESKTOP_INTEGRATION=ON"
-    "-DSKIA_DIR=${skia}"
-    "-DSKIA_LIBRARY_DIR=${skia}/out/Release"
-  ];
-
-  postInstall = ''
-    # Install desktop icons.
-    src="$out/share/aseprite/data/icons"
-    for size in 16 32 48 64; do
-      dst="$out"/share/icons/hicolor/"$size"x"$size"
-      install -Dm644 "$src"/ase"$size".png "$dst"/apps/aseprite.png
-      install -Dm644 "$src"/doc"$size".png "$dst"/mimetypes/aseprite.png
-    done
-    # Delete unneeded artifacts of bundled libraries.
-    rm -rf "$out"/include "$out"/lib
-  '';
-
-  passthru = { inherit skia; };
-
-  meta = with lib; {
-    homepage = "https://www.aseprite.org/";
-    description = "Animated sprite editor & pixel art tool";
-    license = licenses.unfree;
-    longDescription =
-      ''Aseprite is a program to create animated sprites. Its main features are:
-
-          - Sprites are composed by layers & frames (as separated concepts).
-          - Supported color modes: RGBA, Indexed (palettes up to 256 colors), and Grayscale.
-          - Load/save sequence of PNG files and GIF animations (and FLC, FLI, JPG, BMP, PCX, TGA).
-          - Export/import animations to/from Sprite Sheets.
-          - Tiled drawing mode, useful to draw patterns and textures.
-          - Undo/Redo for every operation.
-          - Real-time animation preview.
-          - Multiple editors support.
-          - Pixel-art specific tools like filled Contour, Polygon, Shading mode, etc.
-          - Onion skinning.
-
-        This version is not redistributable: https://dev.aseprite.org/2016/09/01/new-source-code-license/
-        Consider supporting the developer: https://aseprite.org/#buy
-      '';
-    maintainers = with maintainers; [ orivej ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/applications/editors/aseprite/skia-make-deps.sh b/pkgs/applications/editors/aseprite/skia-make-deps.sh
deleted file mode 100755
index bee69cc40d9d8..0000000000000
--- a/pkgs/applications/editors/aseprite/skia-make-deps.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env bash
-
-FILTER=$1
-OUT=skia-deps.nix
-REVISION=861e4743af6d9bf6077ae6dda7274e5a136ee4e2
-DEPS=$(curl -s https://raw.githubusercontent.com/aseprite/skia/$REVISION/DEPS)
-THIRD_PARTY_DEPS=$(echo "$DEPS" | grep third_party | grep "#" -v | sed 's/"//g')
-
-function write_fetch_defs ()
-{
-  while read -r DEP; do
-    NAME=$(echo "$DEP" | cut -d: -f1 | cut -d/ -f3 | sed 's/ //g')
-    URL=$(echo "$DEP" | cut -d: -f2- | cut -d@ -f1 | sed 's/ //g')
-    REV=$(echo "$DEP" | cut -d: -f2- | cut -d@ -f2 | sed 's/[ ,]//g')
-
-    echo "Fetching $NAME@$REV"
-    PREFETCH=$(nix-prefetch-git --rev "$REV" "$URL")
-
-(
-cat <<EOF
-  $NAME = fetchgit {
-    url = "$URL";
-    rev = "$REV";
-    sha256 = $(echo $PREFETCH | jq '.sha256');
-  };
-EOF
-) >> "$OUT"
-
-  echo "----------"
-  echo
-  done <<< "$1"
-}
-
-echo "{ fetchgit }:" > "$OUT"
-echo "{" >> "$OUT"
-write_fetch_defs "$(echo "$THIRD_PARTY_DEPS" | grep -E "$FILTER")"
-echo "}" >> "$OUT"
diff --git a/pkgs/applications/editors/aseprite/skia.nix b/pkgs/applications/editors/aseprite/skia.nix
deleted file mode 100644
index 03487aa8941ef..0000000000000
--- a/pkgs/applications/editors/aseprite/skia.nix
+++ /dev/null
@@ -1,80 +0,0 @@
-{ stdenv, lib, fetchFromGitHub, fetchgit, python3, gn, ninja
-, fontconfig, expat, icu, libglvnd, libjpeg, libpng, libwebp, zlib
-, mesa, libX11, harfbuzzFull
-}:
-
-let
-  # skia-deps.nix is generated by: ./skia-make-deps.sh 'angle2|dng_sdk|piex|sfntly'
-  depSrcs = import ./skia-deps.nix { inherit fetchgit; };
-in
-stdenv.mkDerivation {
-  pname = "skia";
-  version = "aseprite-m102";
-
-  src = fetchFromGitHub {
-    owner = "aseprite";
-    repo = "skia";
-    # latest commit from aseprite-m102 branch
-    rev = "861e4743af6d9bf6077ae6dda7274e5a136ee4e2";
-    hash = "sha256-IlZbalmHl549uDUfPG8hlzub8TLWhG0EsV6HVAPdsl0=";
-  };
-
-  nativeBuildInputs = [ python3 gn ninja ];
-
-  buildInputs = [
-    fontconfig expat icu libglvnd libjpeg libpng libwebp zlib
-    mesa libX11 harfbuzzFull
-  ];
-
-  preConfigure = with depSrcs; ''
-    mkdir -p third_party/externals
-    ln -s ${angle2} third_party/externals/angle2
-    ln -s ${dng_sdk} third_party/externals/dng_sdk
-    ln -s ${piex} third_party/externals/piex
-    ln -s ${sfntly} third_party/externals/sfntly
-  '';
-
-  configurePhase = ''
-    runHook preConfigure
-    gn gen out/Release --args="is_debug=false is_official_build=true extra_cflags=[\"-I${harfbuzzFull.dev}/include/harfbuzz\"]"
-    runHook postConfigure
-  '';
-
-  buildPhase = ''
-    runHook preBuild
-    ninja -C out/Release skia modules
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    mkdir -p $out
-
-    # Glob will match all subdirs.
-    shopt -s globstar
-
-    # All these paths are used in some way when building aseprite.
-    cp -r --parents -t $out/ \
-      include/codec \
-      include/config \
-      include/core \
-      include/effects \
-      include/gpu \
-      include/private \
-      include/utils \
-      include/third_party/skcms/*.h \
-      out/Release/*.a \
-      src/gpu/**/*.h \
-      src/core/*.h \
-      modules/skshaper/include/*.h \
-      third_party/externals/angle2/include \
-      third_party/skcms/**/*.h
-  '';
-
-  meta = with lib; {
-    description = "Skia is a complete 2D graphic library for drawing Text, Geometries, and Images";
-    homepage = "https://skia.org/";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/applications/editors/bluefish/default.nix b/pkgs/applications/editors/bluefish/default.nix
index 41b107f0dcae3..d9140fc1ea8c3 100644
--- a/pkgs/applications/editors/bluefish/default.nix
+++ b/pkgs/applications/editors/bluefish/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A powerful editor targeted towards programmers and webdevelopers";
+    description = "Powerful editor targeted towards programmers and webdevelopers";
     homepage = "https://bluefish.openoffice.nl/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ vbgl ];
diff --git a/pkgs/applications/editors/bluej/default.nix b/pkgs/applications/editors/bluej/default.nix
index 0e8629a0693c6..802bc15fc5839 100644
--- a/pkgs/applications/editors/bluej/default.nix
+++ b/pkgs/applications/editors/bluej/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple integrated development environment for Java";
+    description = "Simple integrated development environment for Java";
     homepage = "https://www.bluej.org/";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.gpl2ClasspathPlus;
diff --git a/pkgs/applications/editors/codeblocks/default.nix b/pkgs/applications/editors/codeblocks/default.nix
index 4c53fbb2a4b7c..235fef97d0836 100644
--- a/pkgs/applications/editors/codeblocks/default.nix
+++ b/pkgs/applications/editors/codeblocks/default.nix
@@ -129,7 +129,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     maintainers = [ maintainers.linquize ];
     platforms = platforms.all;
-    description = "The open source, cross platform, free C, C++ and Fortran IDE";
+    description = "Open source, cross platform, free C, C++ and Fortran IDE";
     longDescription =
       ''
         Code::Blocks is a free C, C++ and Fortran IDE built to meet the most demanding needs of its users.
diff --git a/pkgs/applications/editors/cpeditor/default.nix b/pkgs/applications/editors/cpeditor/default.nix
index 9f8c14a37e039..48e00514cbed0 100644
--- a/pkgs/applications/editors/cpeditor/default.nix
+++ b/pkgs/applications/editors/cpeditor/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An IDE specially designed for competitive programming";
+    description = "IDE specially designed for competitive programming";
     homepage = "https://cpeditor.org";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/editors/dhex/default.nix b/pkgs/applications/editors/dhex/default.nix
index 4ee1897bda79e..af6e547e63d39 100644
--- a/pkgs/applications/editors/dhex/default.nix
+++ b/pkgs/applications/editors/dhex/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A themeable hex editor with diff mode";
+    description = "Themeable hex editor with diff mode";
     homepage = "http://www.dettus.net/dhex/";
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [qknight];
diff --git a/pkgs/applications/editors/dit/default.nix b/pkgs/applications/editors/dit/default.nix
index bb148ab9260ee..d0ded7ae72bdc 100644
--- a/pkgs/applications/editors/dit/default.nix
+++ b/pkgs/applications/editors/dit/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A console text editor for Unix that you already know how to use";
+    description = "Console text editor for Unix that you already know how to use";
     homepage = "https://hisham.hm/dit/";
     license = licenses.gpl2;
     platforms = with platforms; linux;
diff --git a/pkgs/applications/editors/eclipse/plugins.nix b/pkgs/applications/editors/eclipse/plugins.nix
index 26ac2e0282197..b40b08c97e5fe 100644
--- a/pkgs/applications/editors/eclipse/plugins.nix
+++ b/pkgs/applications/editors/eclipse/plugins.nix
@@ -152,7 +152,7 @@ rec {
     '';
 
     meta = with lib; {
-      description = "A powerful parser generator for processing structured text or binary files";
+      description = "Powerful parser generator for processing structured text or binary files";
       homepage = "https://www.antlr.org/";
       sourceProvenance = with sourceTypes; [ binaryBytecode ];
       license = licenses.bsd3;
@@ -175,7 +175,7 @@ rec {
     '';
 
     meta = with lib; {
-      description = "A powerful parser generator for processing structured text or binary files";
+      description = "Powerful parser generator for processing structured text or binary files";
       homepage = "https://www.antlr.org/";
       sourceProvenance = with sourceTypes; [ binaryBytecode ];
       license = licenses.bsd3;
@@ -552,7 +552,7 @@ rec {
 
     meta = with lib; {
       homepage = "http://scala-ide.org/";
-      description = "The Scala IDE for Eclipse";
+      description = "Scala IDE for Eclipse";
       sourceProvenance = with sourceTypes; [ binaryBytecode ];
       license = licenses.bsd3;
       platforms = platforms.all;
@@ -616,7 +616,7 @@ rec {
 
     meta = with lib; {
       homepage = "https://github.com/vrapper/vrapper";
-      description = "A wrapper to provide a Vim-like input scheme for moving around and editing text";
+      description = "Wrapper to provide a Vim-like input scheme for moving around and editing text";
       sourceProvenance = with sourceTypes; [ binaryBytecode ];
       license = licenses.gpl3;
       platforms = platforms.all;
@@ -640,7 +640,7 @@ rec {
 
     meta = with lib; {
       homepage = "https://github.com/oyse/yedit";
-      description = "A YAML editor plugin for Eclipse";
+      description = "YAML editor plugin for Eclipse";
       sourceProvenance = with sourceTypes; [ binaryBytecode ];
       license = licenses.epl10;
       platforms = platforms.all;
@@ -658,7 +658,7 @@ rec {
 
     meta = with lib; {
       homepage = "https://www.eclipse.org/gef/zest/";
-      description = "The Eclipse Visualization Toolkit";
+      description = "Eclipse Visualization Toolkit";
       sourceProvenance = with sourceTypes; [ binaryBytecode ];
       platforms = platforms.all;
       maintainers = [ maintainers.romildo ];
@@ -681,7 +681,7 @@ rec {
 
     meta = with lib; {
       homepage = "https://ant.apache.org/ivy/ivyde/index.html";
-      description = "A plugin which integrates Apache Ivy's dependency management";
+      description = "Plugin which integrates Apache Ivy's dependency management";
       sourceProvenance = with sourceTypes; [ binaryBytecode ];
       license = licenses.asl20;
       platforms = platforms.all;
@@ -705,7 +705,7 @@ rec {
 
     meta = with lib; {
       homepage = "https://ant.apache.org/ivy/ivyde/index.html";
-      description = "A graph viewer of the resolved dependencies.";
+      description = "Graph viewer of the resolved dependencies";
       longDescription = ''
         Apache IvyDE Resolve Visualizer is an optional dependency of Apache IvyDE since
         it requires additional plugins to be installed (Zest).
@@ -733,7 +733,7 @@ rec {
 
     meta = with lib; {
       homepage = "https://ant.apache.org/ivy/index.html";
-      description = "A popular dependency manager focusing on flexibility and simplicity";
+      description = "Popular dependency manager focusing on flexibility and simplicity";
       sourceProvenance = with sourceTypes; [ binaryBytecode ];
       license = licenses.asl20;
       platforms = platforms.all;
diff --git a/pkgs/applications/editors/ed/generic.nix b/pkgs/applications/editors/ed/generic.nix
index 70ec6badf25ec..70ffdb4c4af93 100644
--- a/pkgs/applications/editors/ed/generic.nix
+++ b/pkgs/applications/editors/ed/generic.nix
@@ -13,12 +13,14 @@
 , stdenv
 , fetchurl
 , lzip
+, runtimeShellPackage
 }:
 
 stdenv.mkDerivation {
   inherit pname version src patches;
 
   nativeBuildInputs = [ lzip ];
+  buildInputs = [ runtimeShellPackage ];
 
   configureFlags = [
     "CC=${stdenv.cc.targetPrefix}cc"
diff --git a/pkgs/applications/editors/ed/sources.nix b/pkgs/applications/editors/ed/sources.nix
index de20aa1bf8a7f..6601876c88b09 100644
--- a/pkgs/applications/editors/ed/sources.nix
+++ b/pkgs/applications/editors/ed/sources.nix
@@ -4,7 +4,7 @@
 
 let
   meta = {
-    description = "The GNU implementation of the standard Unix editor";
+    description = "GNU implementation of the standard Unix editor";
     longDescription = ''
       GNU ed is a line-oriented text editor. It is used to create, display,
       modify and otherwise manipulate text files, both interactively and via
diff --git a/pkgs/applications/editors/edit/default.nix b/pkgs/applications/editors/edit/default.nix
index 192aa903f3e9d..b1a0440bb004f 100644
--- a/pkgs/applications/editors/edit/default.nix
+++ b/pkgs/applications/editors/edit/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "A relaxing mix of Vi and ACME";
+    description = "Relaxing mix of Vi and ACME";
     homepage = "https://c9x.me/edit";
     license = lib.licenses.publicDomain;
     maintainers = with lib.maintainers; [ AndersonTorres vrthra ];
diff --git a/pkgs/applications/editors/elvis/default.nix b/pkgs/applications/editors/elvis/default.nix
index eb288ff8b2a8d..046aac459b53c 100644
--- a/pkgs/applications/editors/elvis/default.nix
+++ b/pkgs/applications/editors/elvis/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://elvis.the-little-red-haired-girl.org/";
-    description = "A vi clone for Unix and other operating systems";
+    description = "Vi clone for Unix and other operating systems";
     license = lib.licenses.free;
   };
 }
diff --git a/pkgs/applications/editors/emacs/elisp-packages/elpa-devel-generated.nix b/pkgs/applications/editors/emacs/elisp-packages/elpa-devel-generated.nix
index fd0ec451ec93f..8d25c1ec2c2f1 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/elpa-devel-generated.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/elpa-devel-generated.nix
@@ -345,10 +345,10 @@
       elpaBuild {
         pname = "auctex";
         ename = "auctex";
-        version = "14.0.4.0.20240427.91120";
+        version = "14.0.5.0.20240519.95252";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/auctex-14.0.4.0.20240427.91120.tar";
-          sha256 = "1qp2vgmna7fi66qdi4flgvl0l4cpz516klkx2rcd6wixvhyc53rx";
+          url = "https://elpa.gnu.org/devel/auctex-14.0.5.0.20240519.95252.tar";
+          sha256 = "0nb8djks4lpbkmsm4v8v6rnhh1wplcnarfc80fi7mglw26cls1lq";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -490,10 +490,10 @@
       elpaBuild {
         pname = "beframe";
         ename = "beframe";
-        version = "1.0.1.0.20240224.51508";
+        version = "1.1.1.0.20240522.34215";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/beframe-1.0.1.0.20240224.51508.tar";
-          sha256 = "105axrl2m6x5gc523ai9lna89jf44n2na337brxqn1jflnnpdh43";
+          url = "https://elpa.gnu.org/devel/beframe-1.1.1.0.20240522.34215.tar";
+          sha256 = "1ws11ynbcgi37sbh6p3nilq9ca26694qzqvd1h4dk0lb815b66l4";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -593,10 +593,10 @@
       elpaBuild {
         pname = "boxy";
         ename = "boxy";
-        version = "1.1.4.0.20240326.215209";
+        version = "1.1.4.0.20240505.204058";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/boxy-1.1.4.0.20240326.215209.tar";
-          sha256 = "077q9xxrsd98r4h9xj4djgiwfw34bjx3w0mhnbip2p57xknjjr46";
+          url = "https://elpa.gnu.org/devel/boxy-1.1.4.0.20240505.204058.tar";
+          sha256 = "18sgxarymy65vjzb94jjd0npxfd7920xlw49py5lc2y8d508p3rf";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -613,10 +613,10 @@
       elpaBuild {
         pname = "boxy-headings";
         ename = "boxy-headings";
-        version = "2.1.5.0.20240326.215829";
+        version = "2.1.6.0.20240505.204122";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/boxy-headings-2.1.5.0.20240326.215829.tar";
-          sha256 = "0zh5g1k2nql8jyg9ws0spsbhzwfa28f6qxs9krihp5qgz8kihn2p";
+          url = "https://elpa.gnu.org/devel/boxy-headings-2.1.6.0.20240505.204122.tar";
+          sha256 = "1m3k25j5z7q1gz2bbmyjkh79rq2b4350zz6csb2l0l8s4g1yddph";
         };
         packageRequires = [ boxy emacs org ];
         meta = {
@@ -700,10 +700,10 @@
       elpaBuild {
         pname = "bufferlo";
         ename = "bufferlo";
-        version = "0.6.0.20240105.200601";
+        version = "0.8.0.20240516.162426";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/bufferlo-0.6.0.20240105.200601.tar";
-          sha256 = "02iqarvq8b2siivbv878f2yzkm5law15idnbi5wv72v5pc2hxrjk";
+          url = "https://elpa.gnu.org/devel/bufferlo-0.8.0.20240516.162426.tar";
+          sha256 = "1w4vw1f5qmgv9207wpgmw5ahq4kans5dh775l213vzh32s6cdxx1";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -767,10 +767,10 @@
       elpaBuild {
         pname = "cape";
         ename = "cape";
-        version = "1.5.0.20240411.220758";
+        version = "1.5.0.20240517.221612";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/cape-1.5.0.20240411.220758.tar";
-          sha256 = "0mbw0azs2a33ywq1iqqvm2r5pyhpl1qfjkzmqv473n7qm658gkfg";
+          url = "https://elpa.gnu.org/devel/cape-1.5.0.20240517.221612.tar";
+          sha256 = "1gxk070lf204hp62zlxqkc0h8k7ml6sywms1m8kadbl650dl8fdc";
         };
         packageRequires = [ compat emacs ];
         meta = {
@@ -927,6 +927,25 @@
           license = lib.licenses.free;
         };
       }) {};
+    colorful-mode = callPackage ({ compat
+                                 , elpaBuild
+                                 , emacs
+                                 , fetchurl
+                                 , lib }:
+      elpaBuild {
+        pname = "colorful-mode";
+        ename = "colorful-mode";
+        version = "1.0.0.0.20240427.103837";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/devel/colorful-mode-1.0.0.0.20240427.103837.tar";
+          sha256 = "1ggasm3b678rnh96l4bynlbqciwsznsrljhxsi9ifak4xb3zlg8s";
+        };
+        packageRequires = [ compat emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/colorful-mode.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     comint-mime = callPackage ({ elpaBuild
                                , emacs
                                , fetchurl
@@ -969,10 +988,10 @@
       elpaBuild {
         pname = "company";
         ename = "company";
-        version = "0.10.2.0.20240311.194338";
+        version = "0.10.2.0.20240514.232026";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/company-0.10.2.0.20240311.194338.tar";
-          sha256 = "1bmf7xa7pwfmwqrdz3sjnbbaqr472n6f2n8mz5qrzc4y09xl8i0r";
+          url = "https://elpa.gnu.org/devel/company-0.10.2.0.20240514.232026.tar";
+          sha256 = "10sh1pi3wb38r5v6vka0g3dxsmp3yr6p2iqrr3icqrx8mbz2mhvz";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1045,10 +1064,10 @@
       elpaBuild {
         pname = "compat";
         ename = "compat";
-        version = "29.1.4.5.0.20240401.110429";
+        version = "29.1.4.5.0.20240520.101243";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/compat-29.1.4.5.0.20240401.110429.tar";
-          sha256 = "1mbkvl2fcdcnc8jriwn61z0aim0llg7rgb9rh12rq8djrinw1r5d";
+          url = "https://elpa.gnu.org/devel/compat-29.1.4.5.0.20240520.101243.tar";
+          sha256 = "0ik2qlvkd414fs2zpks7bfdylcwpchx0mw2d5932156k3bchm0ib";
         };
         packageRequires = [ emacs seq ];
         meta = {
@@ -1060,10 +1079,10 @@
       elpaBuild {
         pname = "consult";
         ename = "consult";
-        version = "1.5.0.20240420.92954";
+        version = "1.6.0.20240517.91901";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/consult-1.5.0.20240420.92954.tar";
-          sha256 = "1cg72m5aqvh7apdv3j4fhm232168vi0iddx3n9w42jwmhsxxq7fr";
+          url = "https://elpa.gnu.org/devel/consult-1.6.0.20240517.91901.tar";
+          sha256 = "0nyx7dncdqv40cfwzy2hfi4f23mph6q41yz5d04r0mzachpbh5zg";
         };
         packageRequires = [ compat emacs ];
         meta = {
@@ -1071,6 +1090,26 @@
           license = lib.licenses.free;
         };
       }) {};
+    consult-denote = callPackage ({ consult
+                                  , denote
+                                  , elpaBuild
+                                  , emacs
+                                  , fetchurl
+                                  , lib }:
+      elpaBuild {
+        pname = "consult-denote";
+        ename = "consult-denote";
+        version = "0.0.0.0.20240521.82207";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/devel/consult-denote-0.0.0.0.20240521.82207.tar";
+          sha256 = "1yj93195gzjgwfms6k2chwbhq3w14vpab7r9dq24gjxcgb3f63w3";
+        };
+        packageRequires = [ consult denote emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/consult-denote.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     consult-hoogle = callPackage ({ elpaBuild
                                   , emacs
                                   , fetchurl
@@ -1131,10 +1170,10 @@
       elpaBuild {
         pname = "corfu";
         ename = "corfu";
-        version = "1.3.0.20240413.92757";
+        version = "1.3.0.20240514.120535";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/corfu-1.3.0.20240413.92757.tar";
-          sha256 = "0qf5nvg70sb313mv1m1mycipf182lz8c0y2rsacniqzykvqhbv74";
+          url = "https://elpa.gnu.org/devel/corfu-1.3.0.20240514.120535.tar";
+          sha256 = "0nqq690pnjx7dlab6ba1y1n8m6bhbwm1yl7iqzv8php9j4bxyd20";
         };
         packageRequires = [ compat emacs ];
         meta = {
@@ -1166,10 +1205,10 @@
       elpaBuild {
         pname = "counsel";
         ename = "counsel";
-        version = "0.14.2.0.20240413.191055";
+        version = "0.14.2.0.20240520.132838";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/counsel-0.14.2.0.20240413.191055.tar";
-          sha256 = "14iphwfpmbmg44f1gx54y3ks920z3p86mfvg99h86yy817wb73pl";
+          url = "https://elpa.gnu.org/devel/counsel-0.14.2.0.20240520.132838.tar";
+          sha256 = "1xpvkyljahcjf84f4b40ivax1i06vyyyhlj3v7x0g90qjl6ba2cr";
         };
         packageRequires = [ emacs ivy swiper ];
         meta = {
@@ -1315,10 +1354,10 @@
       elpaBuild {
         pname = "dape";
         ename = "dape";
-        version = "0.10.0.0.20240427.142238";
+        version = "0.11.1.0.20240518.161137";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/dape-0.10.0.0.20240427.142238.tar";
-          sha256 = "0d2mn565l5ag023z1yqg5nj0fj0iraf5yifh54pyl6cnz7ipmcj3";
+          url = "https://elpa.gnu.org/devel/dape-0.11.1.0.20240518.161137.tar";
+          sha256 = "1v359ilhbpsvyvr7x1c9lj2hadsblp2lxd7vwsqx87bf1ls2cpzi";
         };
         packageRequires = [ emacs jsonrpc ];
         meta = {
@@ -1345,10 +1384,10 @@
       elpaBuild {
         pname = "dash";
         ename = "dash";
-        version = "2.19.1.0.20240405.94636";
+        version = "2.19.1.0.20240510.132708";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/dash-2.19.1.0.20240405.94636.tar";
-          sha256 = "0s1wqxjv1xdhd251zpk52wlglcc5apbhdhld30vmb7c9bq9288xw";
+          url = "https://elpa.gnu.org/devel/dash-2.19.1.0.20240510.132708.tar";
+          sha256 = "1m16w781gzsjim087jj8n42kn1lrvkplsigbsx0l7fd6hqagyl2k";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1408,10 +1447,10 @@
       elpaBuild {
         pname = "denote";
         ename = "denote";
-        version = "2.3.5.0.20240427.91057";
+        version = "2.3.5.0.20240520.93621";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/denote-2.3.5.0.20240427.91057.tar";
-          sha256 = "0xa0jxd6fbd2ayhaaxn1rnimi35pipgidx9l6v19swal0yk08kf4";
+          url = "https://elpa.gnu.org/devel/denote-2.3.5.0.20240520.93621.tar";
+          sha256 = "12mxsadpikjp3315cd20cp59r9f3g9jznkljp2yc3bkkjfrbjz5v";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1460,10 +1499,10 @@
       elpaBuild {
         pname = "devdocs";
         ename = "devdocs";
-        version = "0.6.1.0.20240329.73808";
+        version = "0.6.1.0.20240428.71147";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/devdocs-0.6.1.0.20240329.73808.tar";
-          sha256 = "1q4n5r5ki8f7qksr18w273l7qw8c38snn6d842kxwp9zg2417i8x";
+          url = "https://elpa.gnu.org/devel/devdocs-0.6.1.0.20240428.71147.tar";
+          sha256 = "0pvv4rvr14rc51gxb20zbyh42ijpq37dsmlzdsk8ypbfbgz3jw1s";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1518,10 +1557,10 @@
       elpaBuild {
         pname = "diff-hl";
         ename = "diff-hl";
-        version = "1.9.2.0.20240401.235744";
+        version = "1.9.2.0.20240505.211034";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/diff-hl-1.9.2.0.20240401.235744.tar";
-          sha256 = "1ilmi9a5g2h3xw49kiavr6pwp091i6j3qd7yxyixvw15ygvc6mi8";
+          url = "https://elpa.gnu.org/devel/diff-hl-1.9.2.0.20240505.211034.tar";
+          sha256 = "0mbxas2mx0pyvs3ccpp6ss2q8j7n5mva1ngg004fdhp8br8qknhn";
         };
         packageRequires = [ cl-lib emacs ];
         meta = {
@@ -1621,10 +1660,10 @@
       elpaBuild {
         pname = "dired-preview";
         ename = "dired-preview";
-        version = "0.1.1.0.20240425.180328";
+        version = "0.2.0.0.20240507.55800";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/dired-preview-0.1.1.0.20240425.180328.tar";
-          sha256 = "1wn8k1wr126nw22sczjrhkxwsjnbhr08ym01sy8d4422wif0l4as";
+          url = "https://elpa.gnu.org/devel/dired-preview-0.2.0.0.20240507.55800.tar";
+          sha256 = "1m7zgmjhw86yrhj5chci73rbgky3ybzni5j6xvwpxqxl6g41ph04";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1732,10 +1771,10 @@
       elpaBuild {
         pname = "drepl";
         ename = "drepl";
-        version = "0.2.0.20240421.84519";
+        version = "0.3.0.20240511.124331";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/drepl-0.2.0.20240421.84519.tar";
-          sha256 = "1kxxj0dd9yj168gaq89hm1sqajv8p8y7mgpqrxsqbz2hg6p568af";
+          url = "https://elpa.gnu.org/devel/drepl-0.3.0.20240511.124331.tar";
+          sha256 = "0xfmna8a8nh48ir9nl5gv4y03kqsvrzars74lza5k0cdsslga4gr";
         };
         packageRequires = [ comint-mime emacs ];
         meta = {
@@ -1866,10 +1905,10 @@
       elpaBuild {
         pname = "eev";
         ename = "eev";
-        version = "20240309.0.20240325.4057";
+        version = "20240513.0.20240517.104050";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/eev-20240309.0.20240325.4057.tar";
-          sha256 = "0h6b69ykrdkzhqkv8b0qjanpfkcw4408kcxlv672h3i660w9jj0j";
+          url = "https://elpa.gnu.org/devel/eev-20240513.0.20240517.104050.tar";
+          sha256 = "03bdj2f3y5xj33vq7mgxb8s0n05b5qnrsbak2xqjv2bgfky08dmq";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1884,10 +1923,10 @@
       elpaBuild {
         pname = "ef-themes";
         ename = "ef-themes";
-        version = "1.6.1.0.20240427.83621";
+        version = "1.7.0.0.20240510.44643";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/ef-themes-1.6.1.0.20240427.83621.tar";
-          sha256 = "1pjq8yblcmk4mp83bqcnb154rq8dbn8qn6q394wzzwnn6kv08ay2";
+          url = "https://elpa.gnu.org/devel/ef-themes-1.7.0.0.20240510.44643.tar";
+          sha256 = "0iygfxy4h74nd2glx7kb4faw4b0f2gpfakdwi1icfkkn021kr781";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1895,7 +1934,8 @@
           license = lib.licenses.free;
         };
       }) {};
-    eglot = callPackage ({ eldoc
+    eglot = callPackage ({ compat
+                         , eldoc
                          , elpaBuild
                          , emacs
                          , external-completion
@@ -1905,16 +1945,18 @@
                          , lib
                          , project
                          , seq
+                         , track-changes
                          , xref }:
       elpaBuild {
         pname = "eglot";
         ename = "eglot";
-        version = "1.17.0.20240423.182809";
+        version = "1.17.0.20240518.213720";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/eglot-1.17.0.20240423.182809.tar";
-          sha256 = "129ibvdqcv7jablim041x55vm4awyvcjk295nrrffryzbb75fgi9";
+          url = "https://elpa.gnu.org/devel/eglot-1.17.0.20240518.213720.tar";
+          sha256 = "10hpsip9ai41pxh5a32dwh9z90h2lrjvd3jh666zl3m11g906iwh";
         };
         packageRequires = [
+          compat
           eldoc
           emacs
           external-completion
@@ -1922,6 +1964,7 @@
           jsonrpc
           project
           seq
+          track-changes
           xref
         ];
         meta = {
@@ -1987,10 +2030,10 @@
       elpaBuild {
         pname = "elisp-benchmarks";
         ename = "elisp-benchmarks";
-        version = "1.14.0.20240404.94558";
+        version = "1.16.0.20240518.180006";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/elisp-benchmarks-1.14.0.20240404.94558.tar";
-          sha256 = "1lfpwwm9114x7431pc12kppb0mgia1zd4b5pnfpvqyk3159xx40v";
+          url = "https://elpa.gnu.org/devel/elisp-benchmarks-1.16.0.20240518.180006.tar";
+          sha256 = "1pc3qs0j8hh68lbh4lqyf2xkahiylpqaaac3cpvard0wdp9b4wsr";
         };
         packageRequires = [];
         meta = {
@@ -2002,10 +2045,10 @@
       elpaBuild {
         pname = "ellama";
         ename = "ellama";
-        version = "0.9.1.0.20240415.73018";
+        version = "0.9.4.0.20240517.145740";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/ellama-0.9.1.0.20240415.73018.tar";
-          sha256 = "1fcw0ll24bj32mjjb952in5shnyxz63gdkg80njy89s2bknw1ra1";
+          url = "https://elpa.gnu.org/devel/ellama-0.9.4.0.20240517.145740.tar";
+          sha256 = "0qb849ij6v7d8kk9mkx7nbk24d1dh32kydjddxykyn64xixw79kc";
         };
         packageRequires = [ emacs llm spinner ];
         meta = {
@@ -2110,10 +2153,10 @@
       elpaBuild {
         pname = "emms";
         ename = "emms";
-        version = "19.0.20240414.193332";
+        version = "19.0.20240512.173549";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/emms-19.0.20240414.193332.tar";
-          sha256 = "03jxpxgrlr1amxix4skfyag5pl6xvls011rcjjx1ka5sjdvnygvp";
+          url = "https://elpa.gnu.org/devel/emms-19.0.20240512.173549.tar";
+          sha256 = "13y0g21giswhhysm5252q1rb066a3sap4z51j4cprmwhj282zglj";
         };
         packageRequires = [ cl-lib nadvice seq ];
         meta = {
@@ -2179,10 +2222,10 @@
       elpaBuild {
         pname = "erc";
         ename = "erc";
-        version = "5.6snapshot0.20240419.135452";
+        version = "5.6snapshot0.20240518.154805";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/erc-5.6snapshot0.20240419.135452.tar";
-          sha256 = "1yx1k6r6fg77r6h7bvi1v205mnxmw8qjqr96k4dh73a7ik972vmh";
+          url = "https://elpa.gnu.org/devel/erc-5.6snapshot0.20240518.154805.tar";
+          sha256 = "0hscaz2nn08zv54gr2xfcg4pf66hycjsz31v603mbqyzgx6538hl";
         };
         packageRequires = [ compat emacs ];
         meta = {
@@ -2214,10 +2257,10 @@
       elpaBuild {
         pname = "ess";
         ename = "ess";
-        version = "24.1.1.0.20240426.115232";
+        version = "24.1.1.0.20240516.81354";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/ess-24.1.1.0.20240426.115232.tar";
-          sha256 = "1rskraim68fibf568f07r62h14ni45wvzifn21qyfcvv8slb63jd";
+          url = "https://elpa.gnu.org/devel/ess-24.1.1.0.20240516.81354.tar";
+          sha256 = "0r4kk65sd8kzdm11c7dz1m4qicjv6zg36r7gdg2mzpl0ym33g8aj";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2311,10 +2354,10 @@
       elpaBuild {
         pname = "exwm";
         ename = "exwm";
-        version = "0.28.0.20240403.140839";
+        version = "0.28.0.20240517.92828";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/exwm-0.28.0.20240403.140839.tar";
-          sha256 = "1hyf2m1inifvxzv6y2wmrfylp9vrb130nj1pvpy169miw2n50vzm";
+          url = "https://elpa.gnu.org/devel/exwm-0.28.0.20240517.92828.tar";
+          sha256 = "0d65091s706ajfqi9kp3m6k9hvlwhab6f484fs5v14c9rvspy1pa";
         };
         packageRequires = [ emacs xelb ];
         meta = {
@@ -2432,10 +2475,10 @@
       elpaBuild {
         pname = "flymake";
         ename = "flymake";
-        version = "1.3.7.0.20240422.65418";
+        version = "1.3.7.0.20240503.61639";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/flymake-1.3.7.0.20240422.65418.tar";
-          sha256 = "0gq3x3ssvsccwjajd3w835dd1zvlakj7gxdn6b1fqj46rkyi60vw";
+          url = "https://elpa.gnu.org/devel/flymake-1.3.7.0.20240503.61639.tar";
+          sha256 = "0qrdjynam3nvhm5qwjks308r28f8wlgsfdmdw4d7sb4xqyr2mzrz";
         };
         packageRequires = [ eldoc emacs project ];
         meta = {
@@ -2855,10 +2898,10 @@
       elpaBuild {
         pname = "gtags-mode";
         ename = "gtags-mode";
-        version = "1.5.0.20240425.21931";
+        version = "1.6.0.20240511.23214";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/gtags-mode-1.5.0.20240425.21931.tar";
-          sha256 = "13gdalm2n75yifpfy2wsbf47l6q4rklvd4akszn423nmcl9bnb8x";
+          url = "https://elpa.gnu.org/devel/gtags-mode-1.6.0.20240511.23214.tar";
+          sha256 = "0wi1pfvx7wrd8jfnhlim2zp4k2n96c6prl42f8asbvq1rgi5qh1p";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3008,10 +3051,10 @@
       elpaBuild {
         pname = "hyperbole";
         ename = "hyperbole";
-        version = "9.0.2pre0.20240420.120926";
+        version = "9.0.2pre0.20240519.180059";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/hyperbole-9.0.2pre0.20240420.120926.tar";
-          sha256 = "1mr05p3lhz1xnivl8mqhzdw9qrh0klasjisl75gn14n7l233nir7";
+          url = "https://elpa.gnu.org/devel/hyperbole-9.0.2pre0.20240519.180059.tar";
+          sha256 = "0i5h57a2ng28ijwds7ddy5ay8dkkgg817p35ig51mjrk7ljz6w2n";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3019,6 +3062,23 @@
           license = lib.licenses.free;
         };
       }) {};
+    idlwave = callPackage ({ elpaBuild
+                           , fetchurl
+                           , lib }:
+      elpaBuild {
+        pname = "idlwave";
+        ename = "idlwave";
+        version = "6.5.0.0.20240430.163614";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/devel/idlwave-6.5.0.0.20240430.163614.tar";
+          sha256 = "165lbvhrvrd1szvqns6pd7wmr9zxszzvq3lqz11qg20didi6sngr";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/idlwave.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     ilist = callPackage ({ elpaBuild, fetchurl, lib }:
       elpaBuild {
         pname = "ilist";
@@ -3107,10 +3167,10 @@
       elpaBuild {
         pname = "ivy";
         ename = "ivy";
-        version = "0.14.2.0.20240405.203954";
+        version = "0.14.2.0.20240519.163855";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/ivy-0.14.2.0.20240405.203954.tar";
-          sha256 = "02mkfciafhdc9b41s0kv07l9z77zyq7a2j1ljdiwbmcbkdis028p";
+          url = "https://elpa.gnu.org/devel/ivy-0.14.2.0.20240519.163855.tar";
+          sha256 = "1r1b5znx1dzwpz903sm85sm2yp03yp4mvds782j8lngl46r5ibsr";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3270,10 +3330,10 @@
       elpaBuild {
         pname = "jinx";
         ename = "jinx";
-        version = "1.6.0.20240415.42305";
+        version = "1.7.0.20240515.101640";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/jinx-1.6.0.20240415.42305.tar";
-          sha256 = "12jvkb9nis5kin7ii7aan7b2d8cd5q1f9qpp6g506m18gdi12f48";
+          url = "https://elpa.gnu.org/devel/jinx-1.7.0.20240515.101640.tar";
+          sha256 = "1ghp16kmplj9kj92867xsv3bnl6f0w95xl8hgjxbck4krj8k6is5";
         };
         packageRequires = [ compat emacs ];
         meta = {
@@ -3566,16 +3626,16 @@
           license = lib.licenses.free;
         };
       }) {};
-    llm = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+    llm = callPackage ({ elpaBuild, emacs, fetchurl, lib, plz }:
       elpaBuild {
         pname = "llm";
         ename = "llm";
-        version = "0.12.3.0.20240331.11827";
+        version = "0.15.0.0.20240518.145931";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/llm-0.12.3.0.20240331.11827.tar";
-          sha256 = "0nc9p0cjxzmfrxrir45lj6yyqwpaw30rdgbhw5dl83shnps4fi58";
+          url = "https://elpa.gnu.org/devel/llm-0.15.0.0.20240518.145931.tar";
+          sha256 = "0dzvgq7lvlg62rzv9p62r5m0gm5glwd37mnw3sf6w5h3jfnkpzv0";
         };
-        packageRequires = [ emacs ];
+        packageRequires = [ emacs plz ];
         meta = {
           homepage = "https://elpa.gnu.org/packages/llm.html";
           license = lib.licenses.free;
@@ -3798,10 +3858,10 @@
       elpaBuild {
         pname = "mct";
         ename = "mct";
-        version = "1.0.0.0.20240320.41315";
+        version = "1.0.0.0.20240429.72524";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/mct-1.0.0.0.20240320.41315.tar";
-          sha256 = "02rifid9g3q6a92xp1xpkmmm00awhxfk573lbapcl473sjy5dwfp";
+          url = "https://elpa.gnu.org/devel/mct-1.0.0.0.20240429.72524.tar";
+          sha256 = "07nb0y0ld6x2j5g1a0sjm5ihck41xkk55p5hm5279ddjklcp8p6a";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3947,10 +4007,10 @@
       elpaBuild {
         pname = "modus-themes";
         ename = "modus-themes";
-        version = "4.4.0.0.20240427.84336";
+        version = "4.4.0.0.20240505.33119";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/modus-themes-4.4.0.0.20240427.84336.tar";
-          sha256 = "003kzj9s22qyzvavzh9q0x5dh6jg3n8ykvbihkx5hw16ar7cxmgg";
+          url = "https://elpa.gnu.org/devel/modus-themes-4.4.0.0.20240505.33119.tar";
+          sha256 = "1y637n8cll4932hyi16gnzpjqypwgwxbyq8mfhgjbz26663nksxs";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -4116,10 +4176,10 @@
       elpaBuild {
         pname = "nano-modeline";
         ename = "nano-modeline";
-        version = "1.0.1.0.20240318.92455";
+        version = "1.1.0.0.20240429.102433";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/nano-modeline-1.0.1.0.20240318.92455.tar";
-          sha256 = "14n5gmbpnbcrj2h2c12s35pdb93r1hflklpnv0bh5gpla154f6ln";
+          url = "https://elpa.gnu.org/devel/nano-modeline-1.1.0.0.20240429.102433.tar";
+          sha256 = "0jlaqkrqn2x4fhlz57c94586xjqi1sb89p6py4j5r00669djwhrf";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -4220,10 +4280,10 @@
       elpaBuild {
         pname = "notmuch-indicator";
         ename = "notmuch-indicator";
-        version = "1.1.0.0.20240117.25556";
+        version = "1.2.0.0.20240511.94138";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/notmuch-indicator-1.1.0.0.20240117.25556.tar";
-          sha256 = "003pq429x6yjqv4hw7ryigqmpzrk5frwmlk1ar35z9n83xsnl128";
+          url = "https://elpa.gnu.org/devel/notmuch-indicator-1.2.0.0.20240511.94138.tar";
+          sha256 = "0f1bq1mbjiy1akqml3fb85xz5923j3w2dz4p6yij3kfb5cks42d1";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -4393,10 +4453,10 @@
       elpaBuild {
         pname = "org";
         ename = "org";
-        version = "9.7pre0.20240426.150943";
+        version = "9.7pre0.20240521.135840";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/org-9.7pre0.20240426.150943.tar";
-          sha256 = "0n7d6zrwvrism7blfdri19mvrhcc71cga7qwbvpnq0a9mamv1ypy";
+          url = "https://elpa.gnu.org/devel/org-9.7pre0.20240521.135840.tar";
+          sha256 = "06j7kjbpd390i0kqvvnlkpdzqkwiicbdgjymif338l0qx2kl4sg5";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -4412,10 +4472,10 @@
       elpaBuild {
         pname = "org-contacts";
         ename = "org-contacts";
-        version = "1.1.0.20240410.112834";
+        version = "1.1.0.20240521.114436";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/org-contacts-1.1.0.20240410.112834.tar";
-          sha256 = "0mns2fkzn1yc968k2nc4y5gys1m7dbcj67mdb8vfj54iwdkw316z";
+          url = "https://elpa.gnu.org/devel/org-contacts-1.1.0.20240521.114436.tar";
+          sha256 = "0srbl81ngk24c9kf991ps2j53kpqriwgs8ld4lfcqmxzclr5y8iv";
         };
         packageRequires = [ emacs org ];
         meta = {
@@ -4470,10 +4530,10 @@
       elpaBuild {
         pname = "org-modern";
         ename = "org-modern";
-        version = "1.2.0.20240327.153104";
+        version = "1.2.0.20240515.193202";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/org-modern-1.2.0.20240327.153104.tar";
-          sha256 = "0gkkcvjbjyr5h8idafc0lppjwdr84y860800ns7z894i89iy01li";
+          url = "https://elpa.gnu.org/devel/org-modern-1.2.0.20240515.193202.tar";
+          sha256 = "05mbgm95rlcv5liswlckd26izz5p3a6mkcfnz60widnilfmza9k6";
         };
         packageRequires = [ compat emacs ];
         meta = {
@@ -4508,10 +4568,10 @@
       elpaBuild {
         pname = "org-real";
         ename = "org-real";
-        version = "1.0.8.0.20240328.105118";
+        version = "1.0.9.0.20240505.204156";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/org-real-1.0.8.0.20240328.105118.tar";
-          sha256 = "018bhg886mhv5wzvahvi36bpmh6lpgfahs2dxcrhlb5jqaf8kj50";
+          url = "https://elpa.gnu.org/devel/org-real-1.0.9.0.20240505.204156.tar";
+          sha256 = "05z8kycyqcfj0w18mnqys54wnlwa9yijlb5c0h86fqbhr7shbjmp";
         };
         packageRequires = [ boxy emacs org ];
         meta = {
@@ -4546,10 +4606,10 @@
       elpaBuild {
         pname = "org-transclusion";
         ename = "org-transclusion";
-        version = "1.3.2.0.20240420.151651";
+        version = "1.4.0.0.20240520.170949";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/org-transclusion-1.3.2.0.20240420.151651.tar";
-          sha256 = "0izvaxis7yc2zfxff3dzsc27r8s4kl65x97rjxhz0cp3iqfsb91x";
+          url = "https://elpa.gnu.org/devel/org-transclusion-1.4.0.0.20240520.170949.tar";
+          sha256 = "15i8my50y1m44rhk06rfs6bwlc3mavb73bjysg3wp1j132m2dcrl";
         };
         packageRequires = [ emacs org ];
         meta = {
@@ -4834,6 +4894,44 @@
           license = lib.licenses.free;
         };
       }) {};
+    plz-event-source = callPackage ({ elpaBuild
+                                    , emacs
+                                    , fetchurl
+                                    , lib
+                                    , plz }:
+      elpaBuild {
+        pname = "plz-event-source";
+        ename = "plz-event-source";
+        version = "0.1pre0.20240501.111443";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/devel/plz-event-source-0.1pre0.20240501.111443.tar";
+          sha256 = "1bygbgzvyc6k8bqrnl5gwdbjmlrdh25fmf7n0rllfz4b055cdj6a";
+        };
+        packageRequires = [ emacs plz ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/plz-event-source.html";
+          license = lib.licenses.free;
+        };
+      }) {};
+    plz-media-type = callPackage ({ elpaBuild
+                                  , emacs
+                                  , fetchurl
+                                  , lib
+                                  , plz }:
+      elpaBuild {
+        pname = "plz-media-type";
+        ename = "plz-media-type";
+        version = "0.1pre0.20240501.111146";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/devel/plz-media-type-0.1pre0.20240501.111146.tar";
+          sha256 = "0l2zgxgi48rvzs79qq2bjmp7bg2qhd3709rpyzfkv77gigcjwqj6";
+        };
+        packageRequires = [ emacs plz ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/plz-media-type.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     plz-see = callPackage ({ elpaBuild, emacs, fetchurl, lib, plz }:
       elpaBuild {
         pname = "plz-see";
@@ -4936,10 +5034,10 @@
       elpaBuild {
         pname = "posframe";
         ename = "posframe";
-        version = "1.4.3.0.20240426.60433";
+        version = "1.4.3.0.20240507.14806";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/posframe-1.4.3.0.20240426.60433.tar";
-          sha256 = "1j5l16z765wz5qs1x49vpkmj1cbxbsa69wlrf19r4qc7b6gijzm5";
+          url = "https://elpa.gnu.org/devel/posframe-1.4.3.0.20240507.14806.tar";
+          sha256 = "08jhv15hwrdjgdzl6d8xwdmx46afwlpd6yz3h5k7y7lhbnlc5jkp";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -4987,10 +5085,10 @@
       elpaBuild {
         pname = "project";
         ename = "project";
-        version = "0.10.0.0.20240415.22959";
+        version = "0.10.0.0.20240512.175655";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/project-0.10.0.0.20240415.22959.tar";
-          sha256 = "0clz75455r6pzjcj9jbpqgi201plmm4094nz7s19xmq1ifll9pzy";
+          url = "https://elpa.gnu.org/devel/project-0.10.0.0.20240512.175655.tar";
+          sha256 = "1228kpfyj3zd1bz8xjv257mhhxgvrj8d67saxgfxix3y62fhb2wc";
         };
         packageRequires = [ emacs xref ];
         meta = {
@@ -5032,10 +5130,10 @@
       elpaBuild {
         pname = "pulsar";
         ename = "pulsar";
-        version = "1.0.1.0.20240117.25720";
+        version = "1.0.1.0.20240429.64508";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/pulsar-1.0.1.0.20240117.25720.tar";
-          sha256 = "09qq4cribybn86s6dz77rbmazzl3c88305brkiza2pn2cg10g8xw";
+          url = "https://elpa.gnu.org/devel/pulsar-1.0.1.0.20240429.64508.tar";
+          sha256 = "1ak3vphfw0rsm4rrqyg72zjjwm68ypwxbbif8fz31rnsp0n66f8n";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -5047,10 +5145,10 @@
       elpaBuild {
         pname = "pyim";
         ename = "pyim";
-        version = "5.3.3.0.20240407.80210";
+        version = "5.3.4.0.20240508.25615";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/pyim-5.3.3.0.20240407.80210.tar";
-          sha256 = "1vk0q0wczr9yiwm89kljdlsil7plr2z0cr5sw48fxy4dzgjdjkfb";
+          url = "https://elpa.gnu.org/devel/pyim-5.3.4.0.20240508.25615.tar";
+          sha256 = "0p079girx795fvqswdjh8l5mwdyndanfcsvb1qvj2klq063y1vv5";
         };
         packageRequires = [ async emacs xr ];
         meta = {
@@ -5079,10 +5177,10 @@
       elpaBuild {
         pname = "python";
         ename = "python";
-        version = "0.28.0.20240427.62346";
+        version = "0.28.0.20240518.202234";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/python-0.28.0.20240427.62346.tar";
-          sha256 = "1knzsgi2g40b9ba5s81653h913mlsh71y83b8qc71v9l16lgy1fg";
+          url = "https://elpa.gnu.org/devel/python-0.28.0.20240518.202234.tar";
+          sha256 = "0nk9rdr62c9j27gbjz3z6ri35aw026pmj6lhqvn6j9ci8ijif3yf";
         };
         packageRequires = [ compat emacs seq ];
         meta = {
@@ -5409,10 +5507,10 @@
       elpaBuild {
         pname = "relint";
         ename = "relint";
-        version = "1.24.0.20240401.74454";
+        version = "1.24.0.20240510.91500";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/relint-1.24.0.20240401.74454.tar";
-          sha256 = "07q0571ks81al09xl1ms52rznp6y7scvlnh2ax1nj67f3jmikzcd";
+          url = "https://elpa.gnu.org/devel/relint-1.24.0.20240510.91500.tar";
+          sha256 = "171dnhya0ij5lapn9h2d8ssxx163lwgasvfssd07739171h07389";
         };
         packageRequires = [ emacs xr ];
         meta = {
@@ -5895,10 +5993,10 @@
       elpaBuild {
         pname = "spacious-padding";
         ename = "spacious-padding";
-        version = "0.4.1.0.20240311.74539";
+        version = "0.5.0.0.20240429.82953";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/spacious-padding-0.4.1.0.20240311.74539.tar";
-          sha256 = "1xgnplcvp73fpyi9rx5wbn0hjbcv65vlrb7dqkgjc0chaivp4dgm";
+          url = "https://elpa.gnu.org/devel/spacious-padding-0.5.0.0.20240429.82953.tar";
+          sha256 = "0k5w5d9prlasvv6074nxl8782mbhhvccpkc1zjrp228frkbgfpmi";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -5993,10 +6091,10 @@
       elpaBuild {
         pname = "srht";
         ename = "srht";
-        version = "0.4.0.20231117.115741";
+        version = "0.4.0.20240506.104337";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/srht-0.4.0.20231117.115741.tar";
-          sha256 = "03wyfx0zhgfpbhwyxrbd6mj0465m82910l77r12gsg1vbk78l4l0";
+          url = "https://elpa.gnu.org/devel/srht-0.4.0.20240506.104337.tar";
+          sha256 = "1fs6av8l3v4vvzxxhd20rzwrwh8dkk1d1x21jkjx8nczj2jydwb0";
         };
         packageRequires = [ emacs plz transient ];
         meta = {
@@ -6029,10 +6127,10 @@
       elpaBuild {
         pname = "standard-themes";
         ename = "standard-themes";
-        version = "2.0.1.0.20240427.84421";
+        version = "2.0.1.0.20240520.83250";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/standard-themes-2.0.1.0.20240427.84421.tar";
-          sha256 = "09vmyjm148r1ajxlsrdqrgi988a2px5dn5z9k0l3lg88a38rxgz6";
+          url = "https://elpa.gnu.org/devel/standard-themes-2.0.1.0.20240520.83250.tar";
+          sha256 = "08lb47hilg5dniqxlxp773s16m0shqmglcrf1qdm48ddg05911gx";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -6062,10 +6160,10 @@
       elpaBuild {
         pname = "substitute";
         ename = "substitute";
-        version = "0.2.1.0.20240117.30048";
+        version = "0.3.1.0.20240522.34122";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/substitute-0.2.1.0.20240117.30048.tar";
-          sha256 = "1vkjg3w12r7j3dl5jx5wha412lknns37535vjd4x6xgk2rs3yvh0";
+          url = "https://elpa.gnu.org/devel/substitute-0.3.1.0.20240522.34122.tar";
+          sha256 = "02n78x82sl7i0xzpp1468i1bwm9kic2ycc9vvhymxalpiylc3iqq";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -6126,10 +6224,10 @@
       elpaBuild {
         pname = "svg-tag-mode";
         ename = "svg-tag-mode";
-        version = "0.3.2.0.20240122.120925";
+        version = "0.3.2.0.20240429.105240";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/svg-tag-mode-0.3.2.0.20240122.120925.tar";
-          sha256 = "17qixxhy889l2v17pw3b2qrk2g6x4a7yfh0bzxfhlizq10sy24hz";
+          url = "https://elpa.gnu.org/devel/svg-tag-mode-0.3.2.0.20240429.105240.tar";
+          sha256 = "0isp9zcyx9dqb0nah1b990nikwiaxm5lvqlbya9v1rcb3fbvf9hc";
         };
         packageRequires = [ emacs svg-lib ];
         meta = {
@@ -6145,10 +6243,10 @@
       elpaBuild {
         pname = "swiper";
         ename = "swiper";
-        version = "0.14.2.0.20240405.204232";
+        version = "0.14.2.0.20240520.120545";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/swiper-0.14.2.0.20240405.204232.tar";
-          sha256 = "1b5dn8v6rm6m7b2agdxf50jkmrfx6ac8fnwyqabr3zzcshpl6ixm";
+          url = "https://elpa.gnu.org/devel/swiper-0.14.2.0.20240520.120545.tar";
+          sha256 = "1wcxf1d3kn19yq3gk4d4fqs7p61i1rm316glzlcksny6rp2f1sma";
         };
         packageRequires = [ emacs ivy ];
         meta = {
@@ -6449,10 +6547,10 @@
       elpaBuild {
         pname = "track-changes";
         ename = "track-changes";
-        version = "1.1.0.20240419.221900";
+        version = "1.2.0.20240505.172329";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/track-changes-1.1.0.20240419.221900.tar";
-          sha256 = "16xvkp3fq89jbf87phk6yl9cbfmmgb8r376hh08kwrsmbpaz6bd2";
+          url = "https://elpa.gnu.org/devel/track-changes-1.2.0.20240505.172329.tar";
+          sha256 = "1mvgwrrqfa3yix9lrsx4mb6zqaydjjqc69nh9lyrcgi54819jlvh";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -6537,10 +6635,10 @@
       elpaBuild {
         pname = "transient";
         ename = "transient";
-        version = "0.6.0.0.20240414.135949";
+        version = "0.6.0.0.20240509.184906";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/transient-0.6.0.0.20240414.135949.tar";
-          sha256 = "1rf1zszrfd02n4ky8n72sqzwb3zk16j92plflfc2wdrzaw9k2mmr";
+          url = "https://elpa.gnu.org/devel/transient-0.6.0.0.20240509.184906.tar";
+          sha256 = "1axy5ccwd4n63saaf10af182r2k3j8x4vbyhxa81rdv73ndr652g";
         };
         packageRequires = [ compat emacs seq ];
         meta = {
@@ -6715,10 +6813,10 @@
       elpaBuild {
         pname = "urgrep";
         ename = "urgrep";
-        version = "0.4.2snapshot0.20240310.204507";
+        version = "0.5.1snapshot0.20240511.180511";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/urgrep-0.4.2snapshot0.20240310.204507.tar";
-          sha256 = "173ql2ng8blfw4y7nbfgjmzpgvw0xabb1sk2c1mis6k36ali851w";
+          url = "https://elpa.gnu.org/devel/urgrep-0.5.1snapshot0.20240511.180511.tar";
+          sha256 = "03dpbsmx11r14mi6vlh4phknmxlayxng2rfphv8q7wn4cvgv18q2";
         };
         packageRequires = [ compat emacs project ];
         meta = {
@@ -6786,10 +6884,10 @@
       elpaBuild {
         pname = "use-package";
         ename = "use-package";
-        version = "2.4.5.0.20240330.124921";
+        version = "2.4.5.0.20240518.103045";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/use-package-2.4.5.0.20240330.124921.tar";
-          sha256 = "0jc1389g63bsy2w2fkw332vpwqrm5xci8skqf7mkg39y8nj2j0fw";
+          url = "https://elpa.gnu.org/devel/use-package-2.4.5.0.20240518.103045.tar";
+          sha256 = "0zh4vb5h2733glbj3izflw0laxvf2y34cm924jpgyrjkz66ld6wc";
         };
         packageRequires = [ bind-key emacs ];
         meta = {
@@ -6950,10 +7048,10 @@
       elpaBuild {
         pname = "vertico";
         ename = "vertico";
-        version = "1.8.0.20240424.195903";
+        version = "1.8.0.20240511.204721";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/vertico-1.8.0.20240424.195903.tar";
-          sha256 = "0yhk9cp3qlan2vci31an1d3c4mqz2ckbs7xhs12qk6vich66yshk";
+          url = "https://elpa.gnu.org/devel/vertico-1.8.0.20240511.204721.tar";
+          sha256 = "0gd68x98dghqa7da0ybah2w27bxipal262n9d6rpdhxb361cmpca";
         };
         packageRequires = [ compat emacs ];
         meta = {
@@ -7155,10 +7253,10 @@
       elpaBuild {
         pname = "which-key";
         ename = "which-key";
-        version = "3.6.0.0.20240423.92028";
+        version = "3.6.0.0.20240501.85118";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/which-key-3.6.0.0.20240423.92028.tar";
-          sha256 = "0bx47186nrsfbjcfci7qfx3s874q4wvys6imkr4k0i9mmfnchvaa";
+          url = "https://elpa.gnu.org/devel/which-key-3.6.0.0.20240501.85118.tar";
+          sha256 = "080i7b37fzvf020q4dqxy0dr8na0qqaymv8bd048yrw70wcrlz0w";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -7184,6 +7282,24 @@
           license = lib.licenses.free;
         };
       }) {};
+    window-tool-bar = callPackage ({ elpaBuild
+                                   , emacs
+                                   , fetchurl
+                                   , lib }:
+      elpaBuild {
+        pname = "window-tool-bar";
+        ename = "window-tool-bar";
+        version = "0.2.0.20240519.64147";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/devel/window-tool-bar-0.2.0.20240519.64147.tar";
+          sha256 = "1z5fdlrrjdx0lhfwzahnlqxg75fy9abrj3izc8mfwy5j1bkrym6m";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/window-tool-bar.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     windower = callPackage ({ elpaBuild
                             , emacs
                             , fetchurl
@@ -7275,10 +7391,10 @@
       elpaBuild {
         pname = "wrap-search";
         ename = "wrap-search";
-        version = "4.14.11.0.20240427.191832";
+        version = "4.16.13.0.20240517.214404";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/wrap-search-4.14.11.0.20240427.191832.tar";
-          sha256 = "0286jkxhzn6x2jbvwlrknni3fdf9h2a2mi96kkasy91bph3snx2a";
+          url = "https://elpa.gnu.org/devel/wrap-search-4.16.13.0.20240517.214404.tar";
+          sha256 = "14rk7gyab0m19z0rhrpqcfdqrdrbz9v5zw36rkn5qxzrpv6cw7hq";
         };
         packageRequires = [];
         meta = {
@@ -7365,10 +7481,10 @@
       elpaBuild {
         pname = "xref";
         ename = "xref";
-        version = "1.6.3.0.20240328.32323";
+        version = "1.6.3.0.20240518.3950";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/xref-1.6.3.0.20240328.32323.tar";
-          sha256 = "04rxbfzvz4z3q04r3817vrkx7w6kspdmpyl30h9v37vmwyxw722j";
+          url = "https://elpa.gnu.org/devel/xref-1.6.3.0.20240518.3950.tar";
+          sha256 = "0k60vvhpw5bzbs3qv28sip7dl2p44m8bczx54ff32klgfwpk06zk";
         };
         packageRequires = [ emacs ];
         meta = {
diff --git a/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix b/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix
index 88d511c6a3841..b1145baf3781e 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix
@@ -295,10 +295,10 @@
       elpaBuild {
         pname = "auctex";
         ename = "auctex";
-        version = "14.0.4";
+        version = "14.0.5";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/auctex-14.0.4.tar";
-          sha256 = "14rfv7xlwdqp42dilmpg11d58q8pzw15fv01hq80iv9kyzsfvxd7";
+          url = "https://elpa.gnu.org/packages/auctex-14.0.5.tar";
+          sha256 = "0sycj6ad5jazmsxq37hsnvbywkpj66lrw3d3mxqr1wqkb67cdd3k";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -430,10 +430,10 @@
       elpaBuild {
         pname = "beframe";
         ename = "beframe";
-        version = "1.0.1";
+        version = "1.1.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/beframe-1.0.1.tar";
-          sha256 = "1p8zglpdcss0p307i4h2zpqbsiipmgmk0a2fx6j9w3lx0zgaf2xj";
+          url = "https://elpa.gnu.org/packages/beframe-1.1.1.tar";
+          sha256 = "0xx2zvgjilivi6nnr2x9bwwcifinj66j6r07wxjawqkrsknyypas";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -535,10 +535,10 @@
       elpaBuild {
         pname = "boxy-headings";
         ename = "boxy-headings";
-        version = "2.1.5";
+        version = "2.1.6";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/boxy-headings-2.1.5.tar";
-          sha256 = "0w3cy2r8iqsb79r33lllj08v719hq0xniq5pbr9sl8kn2raxcjhr";
+          url = "https://elpa.gnu.org/packages/boxy-headings-2.1.6.tar";
+          sha256 = "0wnks9a4agvqjivp9myl8zcdq6rj7hh5ig73f8qv5imar0i76izc";
         };
         packageRequires = [ boxy emacs org ];
         meta = {
@@ -614,10 +614,10 @@
       elpaBuild {
         pname = "bufferlo";
         ename = "bufferlo";
-        version = "0.6";
+        version = "0.8";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/bufferlo-0.6.tar";
-          sha256 = "0gvg1mag8ngjmjl4d6zr99k7mq368l1m6dxy9mk6icgxm3sqr1yk";
+          url = "https://elpa.gnu.org/packages/bufferlo-0.8.tar";
+          sha256 = "0ypd611xmjsir24nv8gr19pq7f1n0gbgq9yzvfy3m6k97gpw2jzq";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -820,6 +820,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    colorful-mode = callPackage ({ compat, elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "colorful-mode";
+        ename = "colorful-mode";
+        version = "1.0.0";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/colorful-mode-1.0.0.tar";
+          sha256 = "1gmbrb5z3rmw0fjrdymfbcx74szcy963dx53ksykvfd9355azj3x";
+        };
+        packageRequires = [ compat emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/colorful-mode.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     comint-mime = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "comint-mime";
@@ -937,10 +952,10 @@
       elpaBuild {
         pname = "consult";
         ename = "consult";
-        version = "1.5";
+        version = "1.6";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/consult-1.5.tar";
-          sha256 = "1gx4cjrcaq5dn3rrd2dm30jz07zrnddf0y33qi0dmiqlsyg7l9qw";
+          url = "https://elpa.gnu.org/packages/consult-1.6.tar";
+          sha256 = "00wsv6dvlyf7ygi586pdyhgp7f5ic2qqyqjz3g2g8hmgya5javdb";
         };
         packageRequires = [ compat emacs ];
         meta = {
@@ -948,6 +963,26 @@
           license = lib.licenses.free;
         };
       }) {};
+    consult-denote = callPackage ({ consult
+                                  , denote
+                                  , elpaBuild
+                                  , emacs
+                                  , fetchurl
+                                  , lib }:
+      elpaBuild {
+        pname = "consult-denote";
+        ename = "consult-denote";
+        version = "0.0.0";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/consult-denote-0.0.0.tar";
+          sha256 = "191qf8knrmimam98jv8kgrl6mfrnwpdmw160s5qw6wcik7j4z6kv";
+        };
+        packageRequires = [ consult denote emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/consult-denote.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     consult-hoogle = callPackage ({ elpaBuild
                                   , emacs
                                   , fetchurl
@@ -1166,10 +1201,10 @@
       elpaBuild {
         pname = "dape";
         ename = "dape";
-        version = "0.10.0";
+        version = "0.11.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/dape-0.10.0.tar";
-          sha256 = "1x6mbis4vmghp3vf4pxyzdp68nnrraw9ayx3gzbp1bvcmr62qdig";
+          url = "https://elpa.gnu.org/packages/dape-0.11.1.tar";
+          sha256 = "0i04wwklypzxh78gwd9zjxjm3lwi2sn7qpqnlgd6n8hhcigyzhp0";
         };
         packageRequires = [ emacs jsonrpc ];
         meta = {
@@ -1442,10 +1477,10 @@
       elpaBuild {
         pname = "dired-preview";
         ename = "dired-preview";
-        version = "0.1.1";
+        version = "0.2.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/dired-preview-0.1.1.tar";
-          sha256 = "08c9bvsdb7w9ggav9yrpz12nf9zlq4h1zq8ssdf9pwrx2nzy06p7";
+          url = "https://elpa.gnu.org/packages/dired-preview-0.2.0.tar";
+          sha256 = "15l01javijjjjc9bycljgshg9jv3clmfnsisy7f3caqxq78sb61l";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1547,10 +1582,10 @@
       elpaBuild {
         pname = "drepl";
         ename = "drepl";
-        version = "0.2";
+        version = "0.3";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/drepl-0.2.tar";
-          sha256 = "1vf61d6iihpnr3h4cyxksd64qj8rw2a9ihjm3krvjmigxr2r6awx";
+          url = "https://elpa.gnu.org/packages/drepl-0.3.tar";
+          sha256 = "0dy8xvx5nwibiyhddm6nhcw384vhkhsbbxcs4hah0yxwajfm8yds";
         };
         packageRequires = [ comint-mime emacs ];
         meta = {
@@ -1667,10 +1702,10 @@
       elpaBuild {
         pname = "eev";
         ename = "eev";
-        version = "20240309";
+        version = "20240513";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/eev-20240309.tar";
-          sha256 = "0nn6jdc37n2nx3i97ljl5a37dwxv5qx12ar15yr702hbsgaxyfa5";
+          url = "https://elpa.gnu.org/packages/eev-20240513.tar";
+          sha256 = "133blp5696f2adxqny5kyylr6s3n3vixs0ak1n3i58sqb0krp2pj";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1682,10 +1717,10 @@
       elpaBuild {
         pname = "ef-themes";
         ename = "ef-themes";
-        version = "1.6.1";
+        version = "1.7.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/ef-themes-1.6.1.tar";
-          sha256 = "0wkiqjnqnxwzskpxam44qxxz13fbpgnf17c1qrin8ad8i9b49bvq";
+          url = "https://elpa.gnu.org/packages/ef-themes-1.7.0.tar";
+          sha256 = "0d6rpwk1z9sc1yzfc4d4icb43pqwvdfvqap1m4r4aajvc5kasq1v";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1781,10 +1816,10 @@
       elpaBuild {
         pname = "elisp-benchmarks";
         ename = "elisp-benchmarks";
-        version = "1.14";
+        version = "1.16";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/elisp-benchmarks-1.14.tar";
-          sha256 = "050wja4axngnxggfxhg4b4lcbf1q674zr933r9qkc3ww731f42qa";
+          url = "https://elpa.gnu.org/packages/elisp-benchmarks-1.16.tar";
+          sha256 = "0v5db89z6hirvixgjwyz3a9dkx6xf486hy51sprvslki706m08p2";
         };
         packageRequires = [];
         meta = {
@@ -1796,10 +1831,10 @@
       elpaBuild {
         pname = "ellama";
         ename = "ellama";
-        version = "0.9.1";
+        version = "0.9.4";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/ellama-0.9.1.tar";
-          sha256 = "1kyylhavqa2wsgjgqybg25aiz0fyw4njpady2k2xhry5jw9i78vs";
+          url = "https://elpa.gnu.org/packages/ellama-0.9.4.tar";
+          sha256 = "12l8k7dwcdgndy0zbdgkhx94y46fkzwjrbwlgj9922zbk38nnz46";
         };
         packageRequires = [ emacs llm spinner ];
         meta = {
@@ -2592,10 +2627,10 @@
       elpaBuild {
         pname = "gtags-mode";
         ename = "gtags-mode";
-        version = "1.5";
+        version = "1.6";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/gtags-mode-1.5.tar";
-          sha256 = "15jmynzm2xrvb410vka3jzzdcxbsm3vkihz27yzym708jb0bd8ji";
+          url = "https://elpa.gnu.org/packages/gtags-mode-1.6.tar";
+          sha256 = "1r3ih44kzkrx9bmfl8ri2yv90b7g4nhb0vvdnz1ba3f44x15ppjx";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2964,10 +2999,10 @@
       elpaBuild {
         pname = "jinx";
         ename = "jinx";
-        version = "1.6";
+        version = "1.7";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/jinx-1.6.tar";
-          sha256 = "0jy2g587930d4jqi4asrci3411bby9j6wrxczyskacvjs41vqyip";
+          url = "https://elpa.gnu.org/packages/jinx-1.7.tar";
+          sha256 = "13snfsrwdbn23fdwpk42xp24x8bskl8sgsbq51nr896smjp2x3b4";
         };
         packageRequires = [ compat emacs ];
         meta = {
@@ -3246,16 +3281,16 @@
           license = lib.licenses.free;
         };
       }) {};
-    llm = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+    llm = callPackage ({ elpaBuild, emacs, fetchurl, lib, plz }:
       elpaBuild {
         pname = "llm";
         ename = "llm";
-        version = "0.12.3";
+        version = "0.15.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/llm-0.12.3.tar";
-          sha256 = "19c3i8jfhvc0zqha2mlynk16ws4wgc1hdjrp7gp290bacvr560vg";
+          url = "https://elpa.gnu.org/packages/llm-0.15.0.tar";
+          sha256 = "1y3gs8zsng87wmlkx5az396hci4xyn0ww7cbaavisqbrxam51qvj";
         };
-        packageRequires = [ emacs ];
+        packageRequires = [ emacs plz ];
         meta = {
           homepage = "https://elpa.gnu.org/packages/llm.html";
           license = lib.licenses.free;
@@ -3745,10 +3780,10 @@
       elpaBuild {
         pname = "nano-modeline";
         ename = "nano-modeline";
-        version = "1.0.1";
+        version = "1.1.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/nano-modeline-1.0.1.tar";
-          sha256 = "0frvg9zy9i8qqb6il0csxmgxsd373n696kwz1xqq28jikvhzkwyy";
+          url = "https://elpa.gnu.org/packages/nano-modeline-1.1.0.tar";
+          sha256 = "1x4b4j82vzbi1mhbs9bwgw41hcagnfk56kswjk928i179pnkr0cx";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3839,10 +3874,10 @@
       elpaBuild {
         pname = "notmuch-indicator";
         ename = "notmuch-indicator";
-        version = "1.1.0";
+        version = "1.2.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/notmuch-indicator-1.1.0.tar";
-          sha256 = "1g30hzb238w9cnxqw8w7gw5l8sl4rx122napmm9rx974hdk3zk9k";
+          url = "https://elpa.gnu.org/packages/notmuch-indicator-1.2.0.tar";
+          sha256 = "1n525slxs0l5nbila1sy62fz384yz7f54nrq1ixdlq0j3czgh9kz";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -4004,10 +4039,10 @@
       elpaBuild {
         pname = "org";
         ename = "org";
-        version = "9.6.28";
+        version = "9.6.30";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/org-9.6.28.tar";
-          sha256 = "1slh28vjwhb65q0630p1syv6ampdsqgrdmisyj4f328g3j2brpkw";
+          url = "https://elpa.gnu.org/packages/org-9.6.30.tar";
+          sha256 = "0h2p7gjiys5ch68y35l6bpw9pp852vprmfzi0dk86z1wkilhycip";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -4094,10 +4129,10 @@
       elpaBuild {
         pname = "org-real";
         ename = "org-real";
-        version = "1.0.8";
+        version = "1.0.9";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/org-real-1.0.8.tar";
-          sha256 = "03g12czy833yzj7idkharsbl2zd1ajnsf7ay8qxqljwqrz8m91gw";
+          url = "https://elpa.gnu.org/packages/org-real-1.0.9.tar";
+          sha256 = "0g19pgg7rqijb6q1vpifvpzl2gyc13a42q1n23x3kawl2srhcjp2";
         };
         packageRequires = [ boxy emacs org ];
         meta = {
@@ -4124,10 +4159,10 @@
       elpaBuild {
         pname = "org-transclusion";
         ename = "org-transclusion";
-        version = "1.3.2";
+        version = "1.4.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/org-transclusion-1.3.2.tar";
-          sha256 = "14w9n10s6nh3nylkx3xzbqjb9pp4dja85agh0h2bzlbkaq4j7vij";
+          url = "https://elpa.gnu.org/packages/org-transclusion-1.4.0.tar";
+          sha256 = "0ci6xja3jkj1a9f76sf3780gcjrdpbds2y2bwba3b55fjmr1fscl";
         };
         packageRequires = [ emacs org ];
         meta = {
@@ -4544,10 +4579,10 @@
       elpaBuild {
         pname = "pyim";
         ename = "pyim";
-        version = "5.3.3";
+        version = "5.3.4";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/pyim-5.3.3.tar";
-          sha256 = "03khpd3skv7ijmnn721dvila8x6pvg9pl4p7djyz8m59xgvv55dp";
+          url = "https://elpa.gnu.org/packages/pyim-5.3.4.tar";
+          sha256 = "0axi8vizr2pdswdnnkr409k926h9k7w3c18nbmb9j3pfc32inkjs";
         };
         packageRequires = [ async emacs xr ];
         meta = {
@@ -5314,10 +5349,10 @@
       elpaBuild {
         pname = "spacious-padding";
         ename = "spacious-padding";
-        version = "0.4.1";
+        version = "0.5.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/spacious-padding-0.4.1.tar";
-          sha256 = "0w9f19sxpbaagwxfnsg3qmk95v8vnkfcyd3l6i9ns9ww26sb2fgl";
+          url = "https://elpa.gnu.org/packages/spacious-padding-0.5.0.tar";
+          sha256 = "0x5bsyd6b1d3bzrsrpf9nvw7xj5ch114m2dilq64bg8y2db3452z";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -5449,10 +5484,10 @@
       elpaBuild {
         pname = "substitute";
         ename = "substitute";
-        version = "0.2.1";
+        version = "0.3.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/substitute-0.2.1.tar";
-          sha256 = "09cqxfp9az6cckh0bq1155g6xh9rjn0ppjyc6879ihx6ba61li53";
+          url = "https://elpa.gnu.org/packages/substitute-0.3.1.tar";
+          sha256 = "0038kkn6v2w3asg9abwary2cacr9wbw90wdvq7q9wyk1818cygff";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -5788,10 +5823,10 @@
       elpaBuild {
         pname = "track-changes";
         ename = "track-changes";
-        version = "1.1";
+        version = "1.2";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/track-changes-1.1.tar";
-          sha256 = "04srqkpyc6l3s95jyf2p5pqqf1z67i7k89334r6ybqj1l91h2prn";
+          url = "https://elpa.gnu.org/packages/track-changes-1.2.tar";
+          sha256 = "0al6a1xjs6p2pn6z976pnmfqz2x5xcz99b5gkdzz90ywbn7018m4";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -6013,10 +6048,10 @@
       elpaBuild {
         pname = "urgrep";
         ename = "urgrep";
-        version = "0.4.1";
+        version = "0.5.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/urgrep-0.4.1.tar";
-          sha256 = "046096vk8d5xy33icv4s0s101lrx3xan9ppvh77rqxd95gglhgap";
+          url = "https://elpa.gnu.org/packages/urgrep-0.5.0.tar";
+          sha256 = "14vga04hf03hj1ilcpl3qblmb7mhl9j0qwkq2whbc50p98avkhqi";
         };
         packageRequires = [ compat emacs project ];
         meta = {
@@ -6449,6 +6484,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    window-tool-bar = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "window-tool-bar";
+        ename = "window-tool-bar";
+        version = "0.2";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/window-tool-bar-0.2.tar";
+          sha256 = "191v21rrw1j560512mjn1s1avhirk1awy746xajjra8lb1ywnxw7";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/window-tool-bar.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     windower = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "windower";
@@ -6533,10 +6583,10 @@
       elpaBuild {
         pname = "wrap-search";
         ename = "wrap-search";
-        version = "4.14.11";
+        version = "4.16.13";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/wrap-search-4.14.11.tar";
-          sha256 = "07x6fcig69d3hmcmvpj75h605j8sfjwmd4z1yd4rb6np60dh42ff";
+          url = "https://elpa.gnu.org/packages/wrap-search-4.16.13.tar";
+          sha256 = "0h5wlvmxq1rcmkhmaan3118w5480xx1gblg73lsfhxnj2xkmhrbi";
         };
         packageRequires = [];
         meta = {
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
index 371676c2d1e33..73e7f9a2c6722 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
@@ -35,6 +35,8 @@ in
 
   emacs-conflict = callPackage ./manual-packages/emacs-conflict { };
 
+  enlight = callPackage ./manual-packages/enlight { };
+
   ess-R-object-popup = callPackage ./manual-packages/ess-R-object-popup { };
 
   evil-markdown = callPackage ./manual-packages/evil-markdown { };
@@ -45,6 +47,8 @@ in
 
   git-undo = callPackage ./manual-packages/git-undo { };
 
+  grid = callPackage ./manual-packages/grid { };
+
   haskell-unicode-input-method = callPackage ./manual-packages/haskell-unicode-input-method { };
 
   helm-words = callPackage ./manual-packages/helm-words { };
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/agda-input/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/agda-input/default.nix
index a96f7393dfaff..a3c820fac6e73 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/agda-input/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/agda-input/default.nix
@@ -13,6 +13,6 @@ trivialBuild {
 
   meta = {
     inherit (haskellPackages.Agda.meta) homepage license;
-    description = "Standalone package providing the agda-input method without building Agda.";
+    description = "Standalone package providing the agda-input method without building Agda";
   };
 }
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/color-theme-solarized/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/color-theme-solarized/default.nix
index 07322879b5bee..94486bdbfb4b4 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/color-theme-solarized/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/color-theme-solarized/default.nix
@@ -6,7 +6,7 @@
 
 trivialBuild {
   pname = "color-theme-solarized";
-  version = "0.pre+unstable=2017-10-24";
+  version = "0-unstable-2017-10-24";
 
   src = fetchFromGitHub {
     owner = "sellout";
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/consult-gh/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/consult-gh/default.nix
index 64addcf38893e..e6e53f96f6590 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/consult-gh/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/consult-gh/default.nix
@@ -45,7 +45,7 @@ melpaBuild {
 
   meta = {
     homepage = "https://github.com/armindarvish/consult-gh";
-    description = "A GitHub CLI client inside GNU Emacs using Consult";
+    description = "GitHub CLI client inside GNU Emacs using Consult";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ AndersonTorres ];
   };
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/copilot/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/copilot/default.nix
index efe18de7600e1..da7f779852158 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/copilot/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/copilot/default.nix
@@ -8,7 +8,7 @@
 }:
 trivialBuild {
   pname = "copilot";
-  version = "unstable-2023-12-26";
+  version = "0-unstable-2023-12-26";
   src = fetchFromGitHub {
     owner = "zerolfx";
     repo = "copilot.el";
@@ -26,7 +26,7 @@ trivialBuild {
   '';
 
   meta = {
-    description = "An unofficial copilot plugin for Emacs";
+    description = "Unofficial copilot plugin for Emacs";
     homepage = "https://github.com/zerolfx/copilot.el";
     platforms = [
       "x86_64-darwin"
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/ebuild-mode/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/ebuild-mode/default.nix
index e714a20cb3794..fbd16c3f47af0 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/ebuild-mode/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/ebuild-mode/default.nix
@@ -7,11 +7,11 @@
 
 melpaBuild rec {
   pname = "ebuild-mode";
-  version = "1.70";
+  version = "1.71";
 
   src = fetchzip {
     url = "https://gitweb.gentoo.org/proj/ebuild-mode.git/snapshot/ebuild-mode-${version}.tar.bz2";
-    hash = "sha256-dOm3xJMFLelwcImIwckeQHx1GqV9PB+I45QA9UT1nCM=";
+    hash = "sha256-HvaiH3I6hJMb1XFFf8FOw22X+47UayCIWAGuXAVP/ls=";
   };
 
   # not used but needs to be set; why?
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/el-easydraw/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/el-easydraw/default.nix
index 608777208bb6b..148bb9dbc7f98 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/el-easydraw/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/el-easydraw/default.nix
@@ -2,22 +2,22 @@
 , melpaBuild
 , fetchFromGitHub
 , writeText
-, unstableGitUpdater
+, writeScript
 , gzip
 }:
 
 let
-  rev = "de68851724072c6695e675f090b33a8abec040c9";
+  rev = "99067dba625db3ac54ca4d3a3c811c41de207309";
 in
 melpaBuild {
   pname = "edraw";
-  version = "1.1.0";
+  version = "20240612.1012";
 
   src = fetchFromGitHub {
     owner = "misohena";
     repo = "el-easydraw";
     inherit rev;
-    hash = "sha256-l9i+HCRKnKiDqID+bfAOPE7LpVBZp1AOPkceX8KbDXM=";
+    hash = "sha256-32N8kXGFCvB6IHKwUsBGpdtAAf/p3nlq8mAdZrxLt0c=";
   };
 
   commit = rev;
@@ -33,7 +33,19 @@ melpaBuild {
        "msg"))
   '';
 
-  passthru.updateScript = unstableGitUpdater { };
+  passthru.updateScript = writeScript "update.sh" ''
+    #!/usr/bin/env nix-shell
+    #!nix-shell -i bash -p common-updater-scripts coreutils git gnused
+    set -eu -o pipefail
+    tmpdir="$(mktemp -d)"
+    git clone --depth=1 https://github.com/misohena/el-easydraw.git "$tmpdir"
+    pushd "$tmpdir"
+    commit=$(git show -s --pretty='format:%H')
+    # Based on: https://github.com/melpa/melpa/blob/2d8716906a0c9e18d6c979d8450bf1d15dd785eb/package-build/package-build.el#L523-L533
+    version=$(TZ=UTC git show -s --pretty='format:%cd' --date='format-local:%Y%m%d.%H%M' | sed 's|\.0*|.|')
+    popd
+    update-source-version emacsPackages.el-easydraw $version --rev="$commit"
+  '';
 
   meta = {
     homepage = "https://github.com/misohena/el-easydraw";
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/enlight/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/enlight/default.nix
new file mode 100644
index 0000000000000..6faa3ef8ad937
--- /dev/null
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/enlight/default.nix
@@ -0,0 +1,27 @@
+{
+  lib,
+  compat,
+  fetchFromGitHub,
+  melpaBuild,
+}:
+
+melpaBuild {
+  pname = "enlight";
+  version = "20240601.1150";
+
+  src = fetchFromGitHub {
+    owner = "ichernyshovvv";
+    repo = "enlight";
+    rev = "76753736da1777c8f9ebbeb08beec15b330a5878";
+    hash = "sha256-Ccfv4Ud5B4L4FfIOI2PDKikV9x8x3a7VeHYDyLV7t4g=";
+  };
+
+  packageRequires = [ compat ];
+
+  meta = {
+    homepage = "https://github.com/ichernyshovvv/enlight";
+    description = "Highly customizable startup screen for Emacs";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+  };
+}
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/evil-markdown/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/evil-markdown/default.nix
index d4079a53dcaa0..b95b05f986107 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/evil-markdown/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/evil-markdown/default.nix
@@ -8,7 +8,7 @@
 
 trivialBuild rec {
   pname = "evil-markdown";
-  version = "0.pre+unstable=2021-07-21";
+  version = "0-unstable-2021-07-21";
 
   src = fetchFromGitHub {
     owner = "Somelauw";
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/font-lock-plus/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/font-lock-plus/default.nix
index 019d241f507b0..be52cf155e5b3 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/font-lock-plus/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/font-lock-plus/default.nix
@@ -5,7 +5,7 @@
 
 trivialBuild {
   pname = "font-lock-plus";
-  version = "208+unstable=2018-01-01";
+  version = "208-unstable-2018-01-01";
 
   src = fetchFromGitHub {
     owner = "emacsmirror";
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/ghc-mod/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/ghc-mod/default.nix
index 824fbdec90042..e9ce9a35c409b 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/ghc-mod/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/ghc-mod/default.nix
@@ -19,7 +19,7 @@ melpaBuild {
   '';
 
   meta = {
-    description = "An extension of haskell-mode that provides completion of symbols and documentation browsing";
+    description = "Extension of haskell-mode that provides completion of symbols and documentation browsing";
     license = lib.licenses.bsd3;
   };
 }
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/git-undo/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/git-undo/default.nix
index b8bbe7db577bb..f0f16c8cf0636 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/git-undo/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/git-undo/default.nix
@@ -6,7 +6,7 @@
 
 trivialBuild {
   pname = "git-undo";
-  version = "0.pre+unstable=2019-12-21";
+  version = "0-unstable-2019-12-21";
 
   src = fetchFromGitHub {
     owner = "jwiegley";
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/grid/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/grid/default.nix
new file mode 100644
index 0000000000000..91b69b0fbbda2
--- /dev/null
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/grid/default.nix
@@ -0,0 +1,24 @@
+{
+  lib,
+  fetchFromGitHub,
+  melpaBuild,
+}:
+
+melpaBuild {
+  pname = "grid";
+  version = "20240526.1305";
+
+  src = fetchFromGitHub {
+    owner = "ichernyshovvv";
+    repo = "grid.el";
+    rev = "564eccf4e009955f1a6c268382d00e157d4eb302";
+    hash = "sha256-3QDw4W3FbFvb2zpkDHAo9BJKxs3LaehyvUVJPKqS9RE=";
+  };
+
+  meta = {
+    homepage = "https://github.com/ichernyshovvv/grid.el";
+    description = "Library to put text data into boxes and manipulate them";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+  };
+}
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/helm-words/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/helm-words/default.nix
index 21a65614398af..eb16701f3856f 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/helm-words/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/helm-words/default.nix
@@ -8,7 +8,7 @@
 
 trivialBuild rec {
   pname = "helm-words";
-  version = "0.pre+unstable=2019-03-12";
+  version = "0-unstable-2019-03-12";
 
   src = fetchFromGitHub {
     owner = "emacsmirror";
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/idris2-mode/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/idris2-mode/default.nix
index c415b783bc948..59dd35bc34421 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/idris2-mode/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/idris2-mode/default.nix
@@ -24,7 +24,7 @@ trivialBuild rec {
 
   meta = with lib; {
     homepage = "https://github.com/idris-community/idris2-mode";
-    description = "This is an emacs mode for editing Idris 2 code.";
+    description = "This is an emacs mode for editing Idris 2 code";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ wuyoli ];
     inherit (emacs.meta) platforms;
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/isearch-plus/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/isearch-plus/default.nix
index c28a17743421f..d4f60c609381d 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/isearch-plus/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/isearch-plus/default.nix
@@ -6,7 +6,7 @@
 
 trivialBuild {
   pname = "isearch-plus";
-  version = "3434+unstable=2021-08-23";
+  version = "3434-unstable-2021-08-23";
 
   src = fetchFromGitHub {
     owner = "emacsmirror";
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/isearch-prop/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/isearch-prop/default.nix
index d5283da41dff6..00ff1f0a9b216 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/isearch-prop/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/isearch-prop/default.nix
@@ -6,7 +6,7 @@
 
 trivialBuild {
   pname = "isearch-prop";
-  version = "0.pre+unstable=2019-05-01";
+  version = "0-unstable-2019-05-01";
 
   src = fetchFromGitHub {
     owner = "emacsmirror";
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/jam-mode/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/jam-mode/default.nix
index 09b7877c9deba..6b060ffa3eac0 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/jam-mode/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/jam-mode/default.nix
@@ -21,7 +21,7 @@ trivialBuild rec {
   '';
 
   meta = with lib; {
-    description = "An Emacs major mode for editing Jam files";
+    description = "Emacs major mode for editing Jam files";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ qyliss ];
     platforms = platforms.all;
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/ligo-mode/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/ligo-mode/default.nix
index a81ffcc37e7c7..c70835a0dacb3 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/ligo-mode/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/ligo-mode/default.nix
@@ -35,7 +35,7 @@ melpaBuild {
   passthru.updateScript = unstableGitUpdater { };
 
   meta = {
-    description = "A major mode for editing LIGO source code";
+    description = "Major mode for editing LIGO source code";
     homepage = "https://gitlab.com/ligolang/ligo";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ ];
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/lsp-bridge/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/lsp-bridge/default.nix
index 96c18bc07d2ec..62048d867619c 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/lsp-bridge/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/lsp-bridge/default.nix
@@ -16,7 +16,7 @@
 }:
 
 let
-  rev = "14180dcfa42a50e5365175a1bf5dc9dd8db196eb";
+  rev = "152431c0b1d731d0302e1849690e2361f3caf7c1";
   python = python3.withPackages (ps: with ps; [
     epc
     orjson
@@ -28,13 +28,13 @@ let
 in
 melpaBuild {
   pname = "lsp-bridge";
-  version = "20240520.1548";
+  version = "20240615.2321";
 
   src = fetchFromGitHub {
     owner = "manateelazycat";
     repo = "lsp-bridge";
     inherit rev;
-    hash = "sha256-HIOIHvcazCeyAlMoVSPl8uVXh5zI+UuoNNJgIhFO6BY=";
+    hash = "sha256-LIjqr1IntQ6WTFOO3b6cAuB6LslG1HzVa9C+GYUyQOU=";
   };
 
   commit = rev;
@@ -88,6 +88,8 @@ melpaBuild {
     runHook postCheck
   '';
 
+  __darwinAllowLocalNetworking = true;
+
   passthru.updateScript = writeScript "update.sh" ''
     #!/usr/bin/env nix-shell
     #!nix-shell -i bash -p common-updater-scripts coreutils git gnused
@@ -106,7 +108,7 @@ melpaBuild {
   '';
 
   meta = with lib; {
-    description = "A blazingly fast LSP client for Emacs";
+    description = "Blazingly fast LSP client for Emacs";
     homepage = "https://github.com/manateelazycat/lsp-bridge";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fxttr kira-bruneau ];
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/lspce/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/lspce/default.nix
index 398f366f52100..97a9bea4f96ca 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/lspce/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/lspce/default.nix
@@ -9,7 +9,7 @@
 }:
 
 let
-  version = "unstable-2024-02-03";
+  version = "1.0.0-unstable-2024-02-03";
 
   src = fetchFromGitHub {
     owner = "zbelial";
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/matrix-client/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/matrix-client/default.nix
index d8efbb9e9cb36..a17689ddf52dc 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/matrix-client/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/matrix-client/default.nix
@@ -67,7 +67,7 @@ in melpaBuild {
   '';
 
   meta = {
-    description = "A chat client and API wrapper for Matrix.org";
+    description = "Chat client and API wrapper for Matrix.org";
     license = lib.licenses.gpl3Plus;
   };
 }
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/mu4e/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/mu4e/default.nix
index 81fd973ecbd95..430b8af291a4b 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/mu4e/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/mu4e/default.nix
@@ -28,6 +28,6 @@ elpaBuild {
   '';
 
   meta = mu.meta // {
-    description = "A full-featured e-mail client";
+    description = "Full-featured e-mail client";
   };
 }
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/rect-mark/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/rect-mark/default.nix
index aef7fbf8c9a0b..8d4fcf5090c34 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/rect-mark/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/rect-mark/default.nix
@@ -15,8 +15,6 @@ trivialBuild rec {
     hash = "sha256-/8T1VTYkKUxlNWXuuS54S5jpl4UxJBbgSuWc17a/VyM=";
   };
 
-  buildInputs = [ emacs ];
-
   meta = with lib; {
     homepage = "http://emacswiki.org/emacs/RectangleMark";
     description = "Mark a rectangle of text with highlighting";
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/sunrise-commander/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/sunrise-commander/default.nix
index 035f17d6415a0..efc422d601f06 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/sunrise-commander/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/sunrise-commander/default.nix
@@ -6,7 +6,7 @@
 
 trivialBuild {
   pname = "sunrise-commander";
-  version = "unstable=2021-09-27";
+  version = "0-unstable-2021-09-27";
 
   src = fetchFromGitHub {
     owner = "sunrise-commander";
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/sv-kalender/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/sv-kalender/default.nix
index 73fee0dcf3988..48cc866029a8c 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/sv-kalender/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/sv-kalender/default.nix
@@ -5,13 +5,13 @@ trivialBuild {
   version = "1.11";
 
   src = fetchurl {
-    url = "http://bigwalter.net/daniel/elisp/sv-kalender.el";
+    url = "https://raw.githubusercontent.com/emacsmirror/emacswiki.org/ec4fa36bdba5d2c5c4f5e0400a70768c10e969e8/sv-kalender.el";
     sha256 = "0mcx7g1pg6kfp0i4b9rh3q9csgdf3054ijswy368bxwdxsjgfz2m";
   };
 
   meta = with lib; {
     description = "Swedish calendar for Emacs";
-    homepage = "http://bigwalter.net/daniel/elisp/sv-kalender.el";
+    homepage = "https://www.emacswiki.org/emacs/sv-kalender.el";
     platforms = platforms.all;
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.rycee ];
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/tree-sitter-langs/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/tree-sitter-langs/default.nix
index f8a0ec28a3a2e..d9e2b850588c8 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/tree-sitter-langs/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/tree-sitter-langs/default.nix
@@ -1,10 +1,5 @@
 { lib
-, pkgs
-, symlinkJoin
-, fetchzip
-, melpaBuild
 , stdenv
-, fetchFromGitHub
 , writeText
 , melpaStablePackages
 , runCommand
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/tsc/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/tsc/default.nix
index a81f5827027f7..018299650a9a4 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/tsc/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/tsc/default.nix
@@ -78,7 +78,7 @@ in symlinkJoin {
   };
 
   meta = {
-    description = "The core APIs of the Emacs binding for tree-sitter.";
+    description = "Core APIs of the Emacs binding for tree-sitter";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ pimeys ];
   };
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/voicemacs/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/voicemacs/default.nix
index d7c3758bf324e..60f3e3a75e053 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/voicemacs/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/voicemacs/default.nix
@@ -17,7 +17,7 @@
 
 trivialBuild {
   pname = "voicemacs";
-  version = "unstable-2022-02-16";
+  version = "0-unstable-2022-02-16";
 
   src = fetchFromGitHub {
     owner = "jcaw";
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/wat-mode/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/wat-mode/default.nix
index 529acfa097216..6eb5b9478541c 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/wat-mode/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/wat-mode/default.nix
@@ -21,7 +21,7 @@ melpaBuild rec {
 
   meta = {
     homepage = "https://github.com/devonsparks/wat-mode";
-    description = "An Emacs major mode for WebAssembly's text format";
+    description = "Emacs major mode for WebAssembly's text format";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ nagy ];
   };
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/xapian-lite/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/xapian-lite/default.nix
index 0f9da8136214c..afd1ddb0fbebd 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/xapian-lite/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/xapian-lite/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://git.sr.ht/~casouri/xapian-lite";
-    description = "A minimal Emacs dynamic module for Xapian";
+    description = "Minimal Emacs dynamic module for Xapian";
     maintainers = [ lib.maintainers.kotatsuyaki ];
     license = lib.licenses.gpl3Plus;
     inherit (emacs.meta) platforms;
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/yes-no/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/yes-no/default.nix
index 2b51332c30d4a..2cb229a4e1e39 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/yes-no/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/yes-no/default.nix
@@ -2,7 +2,7 @@
 
 trivialBuild {
   pname = "yes-no";
-  version = "2017-10-01";
+  version = "0-unstable-2017-10-01";
 
   src = fetchurl {
     url = "https://raw.githubusercontent.com/emacsmirror/emacswiki.org/143bcaeb679a8fa8a548e92a5a9d5c2baff50d9c/yes-no.el";
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/youtube-dl/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/youtube-dl/default.nix
index e6e645a3b3a1c..ec25ab9b1bdf8 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/youtube-dl/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/youtube-dl/default.nix
@@ -6,7 +6,7 @@
 
 trivialBuild {
   pname = "youtube-dl";
-  version = "0.pre+unstable=2018-10-12";
+  version = "1.0-unstable-2018-10-12";
 
   src = fetchFromGitHub {
     owner = "skeeto";
@@ -15,8 +15,6 @@ trivialBuild {
     sha256 = "sha256-Etl95rcoRACDPjcTPQqYK2L+w8OZbOrTrRT0JadMdH4=";
   };
 
-  buildInputs = [ emacs ];
-
   meta = with lib; {
     description = "Emacs youtube-dl download manager";
     homepage = "https://github.com/skeeto/youtube-dl-emacs";
diff --git a/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix b/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix
index d9cb7b0aa5cec..762359a47e275 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix
@@ -64,10 +64,10 @@
       elpaBuild {
         pname = "annotate";
         ename = "annotate";
-        version = "2.2.1";
+        version = "2.2.2";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/annotate-2.2.1.tar";
-          sha256 = "04k42bc3jbna3jipcpsj31lhcj1cqabak4pmllz9c0jf1z74hx94";
+          url = "https://elpa.nongnu.org/nongnu/annotate-2.2.2.tar";
+          sha256 = "0hrb7kjzhgy46hxaa77rv5ilsdsv6zxpawnkx4viw5jq0v5s4fl6";
         };
         packageRequires = [];
         meta = {
@@ -736,10 +736,10 @@
       elpaBuild {
         pname = "editorconfig";
         ename = "editorconfig";
-        version = "0.10.1";
+        version = "0.11.0";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/editorconfig-0.10.1.tar";
-          sha256 = "1xv2yfs8v2bcf9nvbchdw8lxryfnhy3zh0n6vnxyxnbx2590qa9s";
+          url = "https://elpa.nongnu.org/nongnu/editorconfig-0.11.0.tar";
+          sha256 = "0adzm6fhx5vgg20qy9f7cqpnx938mp1ls91y5cw71pjm9ihs2cyv";
         };
         packageRequires = [ emacs nadvice ];
         meta = {
@@ -1525,6 +1525,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    gptel = callPackage ({ compat, elpaBuild, emacs, fetchurl, lib, transient }:
+      elpaBuild {
+        pname = "gptel";
+        ename = "gptel";
+        version = "0.8.6";
+        src = fetchurl {
+          url = "https://elpa.nongnu.org/nongnu/gptel-0.8.6.tar";
+          sha256 = "1ds0i32bdmdi5w68cjxm9xlg0m9n29yr4hl6sqi8gn3kgswfx1sb";
+        };
+        packageRequires = [ compat emacs transient ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/gptel.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     graphql-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "graphql-mode";
@@ -1989,16 +2004,20 @@
           license = lib.licenses.free;
         };
       }) {};
-    macrostep = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+    macrostep = callPackage ({ cl-lib ? null
+                             , compat
+                             , elpaBuild
+                             , fetchurl
+                             , lib }:
       elpaBuild {
         pname = "macrostep";
         ename = "macrostep";
-        version = "0.9.2";
+        version = "0.9.4";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/macrostep-0.9.2.tar";
-          sha256 = "0ij216575987fi4l4305h5xnvic21lizybkyq5mx67zvhcq75yfs";
+          url = "https://elpa.nongnu.org/nongnu/macrostep-0.9.4.tar";
+          sha256 = "01n3qhxfjd9vg93ddrhnm275v24ih5qczkphc232m0csswxghpdk";
         };
-        packageRequires = [ cl-lib ];
+        packageRequires = [ cl-lib compat ];
         meta = {
           homepage = "https://elpa.gnu.org/packages/macrostep.html";
           license = lib.licenses.free;
@@ -2073,10 +2092,10 @@
       elpaBuild {
         pname = "mastodon";
         ename = "mastodon";
-        version = "1.0.12";
+        version = "1.0.21";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/mastodon-1.0.12.tar";
-          sha256 = "1kmzlz9sb7vkyw84kmpg39zj2hhyrvpb0g6h54ikrxccbn8g22s2";
+          url = "https://elpa.nongnu.org/nongnu/mastodon-1.0.21.tar";
+          sha256 = "1qlpkg28q4iyvjjzv8b40b8q7ni7rc94lj5akgzxbzw4avpp1217";
         };
         packageRequires = [ emacs persist request ];
         meta = {
@@ -2696,10 +2715,10 @@
       elpaBuild {
         pname = "racket-mode";
         ename = "racket-mode";
-        version = "1.0.20240419.71343";
+        version = "1.0.20240514.112412";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/racket-mode-1.0.20240419.71343.tar";
-          sha256 = "152cm66y4pk5ggr7rbj9pzf2w0c6adkh1dd3cjwmq96mpxydx2na";
+          url = "https://elpa.nongnu.org/nongnu/racket-mode-1.0.20240514.112412.tar";
+          sha256 = "1ysjq9jvkm8qibj0z6j4q90sx19xyz9z9qzdlci9mw872r21ak9h";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3570,10 +3589,10 @@
       elpaBuild {
         pname = "xah-fly-keys";
         ename = "xah-fly-keys";
-        version = "25.1.20240423172921";
+        version = "25.6.20240521220424";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/xah-fly-keys-25.1.20240423172921.tar";
-          sha256 = "00h6bmfl4mpx44j1phvijffzlqm1xs2gfprmpwbghc29p5lbd2pj";
+          url = "https://elpa.nongnu.org/nongnu/xah-fly-keys-25.6.20240521220424.tar";
+          sha256 = "029hy3qmf6nvibbq9w2b964gzbw99lja595h4g1y5zzyrgzqrhrn";
         };
         packageRequires = [ emacs ];
         meta = {
diff --git a/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json b/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json
index b21538281143a..9dd51bcbc5a47 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json
+++ b/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json
@@ -451,40 +451,6 @@
   }
  },
  {
-  "ename": "ac-cider",
-  "commit": "e8adefaf2e284ef91baec3dbd3e10c868de69926",
-  "sha256": "1dszpb706h34miq2bxqyq1ycbran5ax36vcniwp8vvhgcjsw5sz6",
-  "fetcher": "github",
-  "repo": "clojure-emacs/ac-cider",
-  "unstable": {
-   "version": [
-    20161006,
-    719
-   ],
-   "deps": [
-    "auto-complete",
-    "cider",
-    "cl-lib"
-   ],
-   "commit": "d8670939bbf88079263d5ace2b8bc04cf325be36",
-   "sha256": "01g1h2j0rfih8v0yvvr5gjh3abcj2mz3jmfbis8a60ivmngab732"
-  },
-  "stable": {
-   "version": [
-    0,
-    2,
-    3
-   ],
-   "deps": [
-    "auto-complete",
-    "cider",
-    "cl-lib"
-   ],
-   "commit": "4be034e5f82421b0a836ec7ff45815c67caffcee",
-   "sha256": "12s7wy7fyk5z9q287j871gcsrvj90f4c81h39p66d99jw0cl93qj"
-  }
- },
- {
   "ename": "ac-clang",
   "commit": "a6ff6bbfa11f08647bf17afe75bfb4dcafd86683",
   "sha256": "08yaaiva6j98rqn9d4wfc0yrjh1nifbnj2rz342q863n76fybbxv",
@@ -1721,11 +1687,11 @@
   "repo": "brownts/ada-ts-mode",
   "unstable": {
    "version": [
-    20240426,
-    256
+    20240506,
+    1140
    ],
-   "commit": "a0c001fd768b062089127b09c838ca51b8214360",
-   "sha256": "1j2hid05fnzd3q5z89xib70n4w530ifpqqlhv0jhg70npwj7pny7"
+   "commit": "3f83ab4c99cf13cf4693dde29eb1e950bbbb6595",
+   "sha256": "1jqsv7f24j39kbh4msvsfm0sv90k20fnw9r1wvmbgi8m7xgdhgzv"
   }
  },
  {
@@ -3031,11 +2997,11 @@
   "repo": "franburstall/amsreftex",
   "unstable": {
    "version": [
-    20240210,
-    1109
+    20240512,
+    1746
    ],
-   "commit": "d64705a7a252be2554b717a38252d8999b0c1504",
-   "sha256": "1q9d93v9zxcs8yngl5liqq3gngl04lnjnka34x8iqbknrl55mzd0"
+   "commit": "c508b05536a04ee153a9947f025d24930c52209a",
+   "sha256": "1a99xm0rwb6cmx8dl0mrc8h50f7ssf3xz3n6cc4xagj2b6135jia"
   }
  },
  {
@@ -3289,21 +3255,17 @@
  },
  {
   "ename": "anki-editor",
-  "commit": "8155d649e4b129d0c72da6bb2b1aac66c8483491",
-  "sha256": "18c5p82llq11vg1svqvbjrcnm7695nbbc6pwwl9jdjplasar585l",
+  "commit": "d5680d254b73eea91a113e152401255b7d3bf7c0",
+  "sha256": "012q9kw6xwcyyaha1wfnbqiysy3475mfbcd6bkji9fvdzps6np1b",
   "fetcher": "github",
-  "repo": "louietan/anki-editor",
+  "repo": "anki-editor/anki-editor",
   "unstable": {
    "version": [
-    20190922,
-    1223
-   ],
-   "deps": [
-    "dash",
-    "request"
+    20240514,
+    1944
    ],
-   "commit": "084ffad14fa700ad1ba95d8cbfe4a8f6052e2408",
-   "sha256": "0zjd5yid333shvjm4zy3p7zdpa09xcl96gc4wvi2paxjad6iqhwz"
+   "commit": "32d81be1d8305c5ccde12c7d0b29845d4f831888",
+   "sha256": "1chlj0igxk2mmmdvmw3qahp3pz9ra6yabm4711xhlnx7zj028lkc"
   }
  },
  {
@@ -3384,14 +3346,14 @@
   "repo": "noctuid/annalist.el",
   "unstable": {
    "version": [
-    20190929,
-    207
+    20240501,
+    1201
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "08df07e4530953a2c0b1aa553adcab37b7b614b0",
-   "sha256": "1jlb5w4972l8m2aa18q2l6arfpm65g4nk21dn1yi8c9dbpk2g67c"
+   "commit": "e1ef5dad75fa502d761f70d9ddf1aeb1c423f41d",
+   "sha256": "1di8wknirx3ql9bqp940yy5p07n2x82wgqyvfmdxblagh7pcp8a8"
   },
   "stable": {
    "version": [
@@ -3414,11 +3376,11 @@
   "repo": "bastibe/annotate.el",
   "unstable": {
    "version": [
-    20240326,
-    1828
+    20240509,
+    1144
    ],
-   "commit": "3a27be3aa024d314da84c89cb86af58dbf3a2cb9",
-   "sha256": "02rv530xhcxlgqlj0cywcg3r2yhgv055fr9d3fa82g6nq364qf03"
+   "commit": "bc82194ca5b10a05cab4169f6eacc5c18af61ec0",
+   "sha256": "0vzvy7bxp6pb42x16jms7sw2l1mp7m0xfz3xk55hwyxfz8rh66gp"
   },
   "stable": {
    "version": [
@@ -3833,11 +3795,11 @@
   "repo": "radian-software/apheleia",
   "unstable": {
    "version": [
-    20240413,
-    2257
+    20240517,
+    2228
    ],
-   "commit": "66bf5195b4e922f23a9d573f2823daeb63e7ed5b",
-   "sha256": "0yqks35q9vv7qymwx96b9smmg7dpb12lacclq63ypfhkwakd2wgg"
+   "commit": "61766b50b24fa16be519d77795dc63522e04dce8",
+   "sha256": "1zichs8b1kczzb63r1pwyiqzav7c0x8sxdvg0inv02w5wq96r2wc"
   },
   "stable": {
    "version": [
@@ -4008,11 +3970,11 @@
   "repo": "waymondo/apropospriate-theme",
   "unstable": {
    "version": [
-    20230925,
-    114
+    20240517,
+    1823
    ],
-   "commit": "ac2e16d23528dbc4efe1844f54366b9392d20ae6",
-   "sha256": "1rv0bj09lyylc3pq7vyg2y0pgpnx0lzmbvfjvpslmprb9vhfqbdg"
+   "commit": "84ee370da4c19db8051761b1b64bbdc8e1c7dc73",
+   "sha256": "13zccq7q1rwhb671f3501j75gy676n611khhzdqxizsgy2mb72nz"
   },
   "stable": {
    "version": [
@@ -4554,11 +4516,11 @@
   "repo": "contrapunctus/async-backup",
   "unstable": {
    "version": [
-    20220131,
-    1438
+    20230412,
+    1534
    ],
-   "commit": "6ddb39fe77d66cdef48b87cb0d0554ad7d132308",
-   "sha256": "14clnfjn4wwi0kza5d98d2iv9sjfnxs28cabm9psjvi239lx0f9d"
+   "commit": "d07a7bd4a5c3332a8a585680d67925385c595927",
+   "sha256": "09vhgczs3xx23srdqjnnxw9vqhrnjy5w04dl9hp22jvbd1z1nzbc"
   }
  },
  {
@@ -4815,26 +4777,26 @@
   "repo": "tsuu32/auctex-cluttex",
   "unstable": {
    "version": [
-    20220730,
-    1100
+    20240519,
+    1303
    ],
    "deps": [
     "auctex"
    ],
-   "commit": "f4012ac86e612eac7662c62afd946e59b3b405bd",
-   "sha256": "163p1x5zrw39cq2l7vf4zf8283a0bsg9wfs25yvs77dlgsvzvb5c"
+   "commit": "1a940892dcbe3e4874d2d60db92de1cb34a1b773",
+   "sha256": "02pllfdx68l694ic6w6lgdvjlqfgnk5bv4jlcrcfiw9n65js4ay0"
   },
   "stable": {
    "version": [
     0,
-    2,
+    3,
     0
    ],
    "deps": [
     "auctex"
    ],
-   "commit": "4e05ad8976f352e67d56d9a479a4a570dfe7ba73",
-   "sha256": "0zgd7yascqn2dwjd20f1v962q7b24wibla5fwnbl9df1x36asqhs"
+   "commit": "1a940892dcbe3e4874d2d60db92de1cb34a1b773",
+   "sha256": "02pllfdx68l694ic6w6lgdvjlqfgnk5bv4jlcrcfiw9n65js4ay0"
   }
  },
  {
@@ -5870,14 +5832,14 @@
   "repo": "erjoalgo/autobuild",
   "unstable": {
    "version": [
-    20230906,
-    1629
+    20240430,
+    1600
    ],
    "deps": [
     "selcand"
    ],
-   "commit": "593a5138ded2793bdc0ff5681bf7af2e2a50ca67",
-   "sha256": "0sgcg5a05zcf3s6c9my3jw7z7mqrfdk1fsclkrhdl1qk89h24cvz"
+   "commit": "4760f6ea843d5d15c3fcf7cbf6b69153b61739fa",
+   "sha256": "1viywj3r0znxflyg8fgdcz4jiv598b02jl8097sp02s49jv3vqaz"
   },
   "stable": {
    "version": [
@@ -6083,27 +6045,27 @@
   "repo": "oantolin/embark",
   "unstable": {
    "version": [
-    20231208,
-    459
+    20240419,
+    452
    ],
    "deps": [
     "avy",
     "embark"
    ],
-   "commit": "47b0c75d4bf4f72a7af839667c877c80bd493cdb",
-   "sha256": "14alpanynww6z7yxxyiiy24c0p4pq1argsb0pmqavq25mdxgn4v2"
+   "commit": "195add1f1ccd1059472c9df7334c97c4d155425e",
+   "sha256": "1361jvwr3wjbpmq6dfkrhhhv9vrmqpkp1j18syp311g6h8hzi3hg"
   },
   "stable": {
    "version": [
     1,
-    0
+    1
    ],
    "deps": [
     "avy",
     "embark"
    ],
-   "commit": "47b0c75d4bf4f72a7af839667c877c80bd493cdb",
-   "sha256": "14alpanynww6z7yxxyiiy24c0p4pq1argsb0pmqavq25mdxgn4v2"
+   "commit": "195add1f1ccd1059472c9df7334c97c4d155425e",
+   "sha256": "1361jvwr3wjbpmq6dfkrhhhv9vrmqpkp1j18syp311g6h8hzi3hg"
   }
  },
  {
@@ -6226,11 +6188,11 @@
   "repo": "nverno/awk-ts-mode",
   "unstable": {
    "version": [
-    20231130,
-    12
+    20240517,
+    1251
    ],
-   "commit": "9cd2b2ad05d85e05be9da7275077697223d79878",
-   "sha256": "0skx2sc575g4w2g4xy340j0i7a6rhxl18xxrg1i42mdiy1k5h3bc"
+   "commit": "343d19c5b3c99f1a665d0c6bddb7b18278306b06",
+   "sha256": "1vnnn8gg6i5gszqa128j7m22dlcpzh6c66xv6mvqcva2l1vkx8d8"
   }
  },
  {
@@ -8058,20 +8020,26 @@
   "repo": "liuyinz/binky.el",
   "unstable": {
    "version": [
-    20240428,
-    352
+    20240519,
+    732
    ],
-   "commit": "d5717053910f1d66f16c22a3d8834b43a507575e",
-   "sha256": "1z8yv4xvg2rvc9djkcp72r8b8x0bd26sp2zrfd780wcw4rar6ada"
+   "deps": [
+    "dash"
+   ],
+   "commit": "f2fe74321f87dfe46421a7a7aaaec30b7f831059",
+   "sha256": "17h4jypfhlc7wbw3k7mr8l9hz3f5ji77xxi80i6p7mj5613j26fc"
   },
   "stable": {
    "version": [
+    2,
     1,
-    4,
-    2
+    0
+   ],
+   "deps": [
+    "dash"
    ],
-   "commit": "d692f3a3551ae412b0b3fc71d14b7d3991255084",
-   "sha256": "0a5jjzbywgq6yh0489690mv6x5h6dsfc1dv7dqaq92h7mi8w1d3c"
+   "commit": "f2fe74321f87dfe46421a7a7aaaec30b7f831059",
+   "sha256": "17h4jypfhlc7wbw3k7mr8l9hz3f5ji77xxi80i6p7mj5613j26fc"
   }
  },
  {
@@ -8082,8 +8050,8 @@
   "repo": "SqrtMinusOne/biome",
   "unstable": {
    "version": [
-    20240426,
-    1407
+    20240519,
+    1037
    ],
    "deps": [
     "compat",
@@ -8091,8 +8059,8 @@
     "request",
     "transient"
    ],
-   "commit": "804a0576f5c87c167c61f00d037581688ab806be",
-   "sha256": "0izip46biwsmyc862jz4k9dlc27ilmcxdw7nb3wjsc98hsd72512"
+   "commit": "6c5d786219741e10332304566d4a18db3eddae2b",
+   "sha256": "0jr2zwzddf6hhmarj9z9dhfcpa7dkid36qy5fms0ncin8bdccl28"
   }
  },
  {
@@ -8345,15 +8313,15 @@
   "repo": "Artawower/blamer.el",
   "unstable": {
    "version": [
-    20240320,
-    2028
+    20240512,
+    1514
    ],
    "deps": [
     "async",
     "posframe"
    ],
-   "commit": "ab7d19c2ee54424d3ffc853982fe875ad47b6e7f",
-   "sha256": "127rnzwf64br0p2i3mjkzfdcjhpwn873ln1gcbhanls6sgka2ahl"
+   "commit": "4cc2e6daaecf84c8dd00792f86724413423293a6",
+   "sha256": "1xyx1gls4d9xzlfwr0xkbblk8mzk3xhwbdqlag1xxdqnd1z96n5n"
   },
   "stable": {
    "version": [
@@ -9173,11 +9141,11 @@
   "repo": "Michael-Allan/Breccia.Emacs",
   "unstable": {
    "version": [
-    20240425,
-    2224
+    20240507,
+    504
    ],
-   "commit": "fd8c536bb24cc58447213f8cada94f96ccf036dc",
-   "sha256": "0rlgxkv8grsyxl9k8jmlnmaakzzw4jnmm48y29sg50mjaj219gf7"
+   "commit": "dafb49308796f75db802e2d23596dfd3fb7e37b0",
+   "sha256": "1fb20vhszf7la1skzy093m6kl3q3akicirbpdp0vhd3xs47jzk1h"
   }
  },
  {
@@ -10704,8 +10672,8 @@
   "repo": "chenyanming/calibredb.el",
   "unstable": {
    "version": [
-    20240331,
-    409
+    20240507,
+    456
    ],
    "deps": [
     "dash",
@@ -10715,8 +10683,8 @@
     "s",
     "transient"
    ],
-   "commit": "b526095e4b1c7866958fe53518eb897a8c87a19b",
-   "sha256": "0092v35yv63ijqaqwjp368kw295f07p1vc2hlqx4fgarsz6kc71n"
+   "commit": "8ca1b5262f0f0e4a0e295efc2c14db00333e9a85",
+   "sha256": "0f3fqgl8kqb1r3dcfd9fn0sh68ky2l13mmd6hqib7lmg4lf7aljz"
   },
   "stable": {
    "version": [
@@ -10738,10 +10706,10 @@
  },
  {
   "ename": "call-graph",
-  "commit": "a6acf099e2510c82b4b03e2f35051afc3d28af45",
-  "sha256": "0cklr79gqqrb94jq8aq65wqriamay78vv9sd3jrvp86ixl3ig5xc",
+  "commit": "1206dea4f7040221775b315fd1e858448ca3dde6",
+  "sha256": "05gzsps5sr8id03imrhvwvns1c97r5kxfjdy3bns6a772n6danxn",
   "fetcher": "github",
-  "repo": "beacoder/call-graph",
+  "repo": "emacsattic/call-graph",
   "unstable": {
    "version": [
     20230222,
@@ -10883,14 +10851,14 @@
   "repo": "minad/cape",
   "unstable": {
    "version": [
-    20240411,
-    2207
+    20240517,
+    2216
    ],
    "deps": [
     "compat"
    ],
-   "commit": "bf22aa6ce0ffca1a1a77b693dddcd05eddc386f0",
-   "sha256": "1ah0nwib2k46467j0fhq9kckx7cqnjgwpdb7zk9jw8rbrjlndcpw"
+   "commit": "a71e5c96564163837810b96bd34322b42f6e4d9c",
+   "sha256": "0rwkn8p8p7axrh46x9cp3f90n5ic0dpm409pjn627s9sbz0j2vkj"
   },
   "stable": {
    "version": [
@@ -11268,6 +11236,30 @@
   }
  },
  {
+  "ename": "casual-dired",
+  "commit": "ee1942517d15e34316ce3d9cc60d22e41556e232",
+  "sha256": "1g3vrlfl9482rcx1bmqbprf921ywz5dbcm685yxmfbr2fwbbgad5",
+  "fetcher": "github",
+  "repo": "kickingvegas/casual-dired",
+  "unstable": {
+   "version": [
+    20240517,
+    2348
+   ],
+   "commit": "d49c5c84d222ff8db2038d1f25b32c607a46c8b6",
+   "sha256": "0rn71abqr198ww6v6fi813dnb4lgi1nsmgk7vw482znnd4jyw937"
+  },
+  "stable": {
+   "version": [
+    1,
+    1,
+    2
+   ],
+   "commit": "d49c5c84d222ff8db2038d1f25b32c607a46c8b6",
+   "sha256": "0rn71abqr198ww6v6fi813dnb4lgi1nsmgk7vw482znnd4jyw937"
+  }
+ },
+ {
   "ename": "catmacs",
   "commit": "e62e45ea234a574ed602f27c3c6bc240bcd4fa43",
   "sha256": "0ym1szmq9ib75yiyy5jw647fcs7gg0d5dkskqc293pg81qf3im50",
@@ -11608,15 +11600,15 @@
   "repo": "ema2159/centaur-tabs",
   "unstable": {
    "version": [
-    20240411,
-    2153
+    20240521,
+    2204
    ],
    "deps": [
     "cl-lib",
     "powerline"
    ],
-   "commit": "24d90efc72754cd1197a0c2f14d18e7c90dd2b4f",
-   "sha256": "03j73jhda6pbw203w21zk7w97fv5isr6fdbip40h9id7f112vhaw"
+   "commit": "3346b23545932c73c4c88a4cdb54778ecff95443",
+   "sha256": "1p2jllqv6d5xh1j06y9844msww56ldinnil8c1zd9jd4q6jsvnrz"
   },
   "stable": {
    "version": [
@@ -11836,7 +11828,7 @@
   "repo": "worr/cfn-mode",
   "unstable": {
    "version": [
-    20240421,
+    20240519,
     805
    ],
    "deps": [
@@ -11844,8 +11836,8 @@
     "s",
     "yaml-mode"
    ],
-   "commit": "3aa78685b9158022f49da43821c0888f377fa213",
-   "sha256": "0jarry76dzhn9zh41bfzyinibifzcxbzs8vmkdlpd0d97npcdxjh"
+   "commit": "6ef789934d6b9b78cdbe5c90703f4afead736ead",
+   "sha256": "04hynyv60g9y3z76zlwvgfqmm4i9450skxhx0r8bw9m8yf04841i"
   },
   "stable": {
    "version": [
@@ -11935,11 +11927,11 @@
   "repo": "GrammarSoft/cg3",
   "unstable": {
    "version": [
-    20240419,
-    1148
+    20240430,
+    2040
    ],
-   "commit": "913974345a9fce9e6ac76934ed535df7e44d47d6",
-   "sha256": "183agf7njdg1zcrclfpa84izwwy230730anz3cz1rr0r77cqvmgv"
+   "commit": "06fb61345a4f3aae4bda74f3dfe261b1ec9d902d",
+   "sha256": "1bvbwk79wd13gvfa99ngz2z00b6wc2w8fh1py27zk024hxqbhf3v"
   },
   "stable": {
    "version": [
@@ -11974,23 +11966,26 @@
   "repo": "positron-solutions/champagne",
   "unstable": {
    "version": [
-    20231229,
-    947
+    20240515,
+    310
    ],
    "deps": [
     "posframe"
    ],
-   "commit": "2106273c47f898006a799f0c5e35922af4b41f54",
-   "sha256": "1cmbbnqjbg5sw3svvr99dk6lrmiir6yy8cvz69bl3r7ga6cpiacv"
+   "commit": "42ef0451e4abe800f047583c4c3b04e51b29d5ee",
+   "sha256": "1ja4n1kgkz6ri4x903rrgvdi9nhgkzvggm8w8i8ib5hcby3ln591"
   },
   "stable": {
    "version": [
     0,
-    2,
-    0
+    3,
+    2
    ],
-   "commit": "31092b7f487e872d208dcaecdc24b5438b78f6a0",
-   "sha256": "0nynrg58nl03fxwyalwqw2s694y1jf4as0qcswhi3i2k9c6679d0"
+   "deps": [
+    "posframe"
+   ],
+   "commit": "42ef0451e4abe800f047583c4c3b04e51b29d5ee",
+   "sha256": "1ja4n1kgkz6ri4x903rrgvdi9nhgkzvggm8w8i8ib5hcby3ln591"
   }
  },
  {
@@ -12106,14 +12101,14 @@
   "repo": "xenodium/chatgpt-shell",
   "unstable": {
    "version": [
-    20240402,
-    2216
+    20240517,
+    2003
    ],
    "deps": [
     "shell-maker"
    ],
-   "commit": "42cf53ba7d43e0622e8c4c57ef8f635e1248182b",
-   "sha256": "1lg3ymw6vsxkk8vpkbyia5l3xl2bgsk2xsw5n5nrhax9qs3axh1b"
+   "commit": "910b0ad5cdb633f6be64f88596219a7eb58af226",
+   "sha256": "1mqdgsy1l9lc94cg1q8gzm7phc3f4rafk39cjlf5i9a1wai7f7p6"
   }
  },
  {
@@ -12124,15 +12119,15 @@
   "repo": "kimim/chatu",
   "unstable": {
    "version": [
-    20240425,
-    1349
+    20240518,
+    615
    ],
    "deps": [
     "org",
     "plantuml-mode"
    ],
-   "commit": "3175ac95de1a1dc75ff5be1bf3a2e80e0abd5229",
-   "sha256": "0wf63z7ang91gzqqh0d2a5h41zdvm9xkblkkz0ldp4ppk8wpggkg"
+   "commit": "f813f0bc926346fbd8151d2ae7079119d4657abb",
+   "sha256": "1xg5mcxsjlkayls1zknqgx3niwwrbrvj5dpmx68sljjwz4j8b8y5"
   }
  },
  {
@@ -12764,8 +12759,8 @@
   "repo": "clojure-emacs/cider",
   "unstable": {
    "version": [
-    20240424,
-    1919
+    20240522,
+    1030
    ],
    "deps": [
     "clojure-mode",
@@ -12776,8 +12771,8 @@
     "spinner",
     "transient"
    ],
-   "commit": "1cd6ab7b7cb4a7e079a273600c4d28307c3aba40",
-   "sha256": "1hcj1fwp2433j3vfmzyv8sh4icg6rsk70av6prrg4adqwzgvhh7m"
+   "commit": "5a477c58dca86cbee723ddb2d0670689f53c47ed",
+   "sha256": "075ikfwrn3n0czzlj2233y7d0ljal8hwzab1vqhfl100q61j0hrj"
   },
   "stable": {
    "version": [
@@ -13110,29 +13105,30 @@
   "repo": "pprevos/citar-denote",
   "unstable": {
    "version": [
-    20240424,
-    2023
+    20240520,
+    2325
    ],
    "deps": [
     "citar",
     "dash",
     "denote"
    ],
-   "commit": "6e236e9100d1401cd7c628c5f799badded77967d",
-   "sha256": "0yqjigf4qj296q15dkq0qpwab9a80fn5rafb192ykh5qg8sbhc2v"
+   "commit": "1c62db7107b1ff9de5f87a03d9ac1973c4bbb0ec",
+   "sha256": "0140a7zxs479na6p94g9rsxg7sp08jx7ri4y1h764wxwfvl8qf8c"
   },
   "stable": {
    "version": [
     2,
-    0
+    2,
+    1
    ],
    "deps": [
     "citar",
     "dash",
     "denote"
    ],
-   "commit": "0c68a4f74f5dcfc23ef03b211658a2ccc5d9aa3b",
-   "sha256": "0g476awbrdws7k7smk1qasz15df20zilx3wqbi3wj0i1q2dbsi8z"
+   "commit": "4586e030445ff40a4939fe0ecc1aae667825052d",
+   "sha256": "0rsi2j4gfznpyvf3z1p1xxl0zxfbddha4ig4d30svwnq2maxri7r"
   }
  },
  {
@@ -13207,8 +13203,8 @@
   "repo": "andras-simonyi/citeproc-el",
   "unstable": {
    "version": [
-    20240307,
-    1412
+    20240513,
+    1309
    ],
    "deps": [
     "compat",
@@ -13220,8 +13216,8 @@
     "s",
     "string-inflection"
    ],
-   "commit": "cb2d3e72116e626133703aa9875d680442249abe",
-   "sha256": "1jlyxq0hk6wrprpjlq8cgs14hzl8lxgdkyfl1c9lnwcr3c7iijrd"
+   "commit": "fed285385c1a8c0248890cd591f64a0e2598334d",
+   "sha256": "19m3q2izbgzvaimk9z38zznj1602vmr8y93c2sfrkyssjb4rmxfy"
   },
   "stable": {
    "version": [
@@ -13289,11 +13285,11 @@
   "repo": "universal-ctags/citre",
   "unstable": {
    "version": [
-    20240425,
-    1635
+    20240508,
+    1154
    ],
-   "commit": "a78cf13d5c3c1c0275b332da5888cd0973de70fe",
-   "sha256": "0fjv9s8x533dmy4vnz2k56ydwydjiak8hp4mk9yvcnam5j1vi51v"
+   "commit": "fe670ff2410fe4cd59cdce8ef1b947deefa71879",
+   "sha256": "1fancp1z955z2clnr9rh6iqpg6cisama9drx51356n4afv60q9pv"
   },
   "stable": {
    "version": [
@@ -14083,11 +14079,11 @@
   "repo": "clojure-emacs/clojure-mode",
   "unstable": {
    "version": [
-    20240304,
-    559
+    20240516,
+    525
    ],
-   "commit": "3792e08b76aa7fdae18938e1966ea140b9817a9a",
-   "sha256": "12zq6026s4yq6dbx1jy9g2fxy8ia2lm8ifx4qmnrfhcbscaj841l"
+   "commit": "faee3efbb1e940af0e5777514923c8dea567f87d",
+   "sha256": "1d3pwwwwzfaqbynpmkpnmfmf2gh7nviy8nc18m0nm9g27i9x3wk4"
   },
   "stable": {
    "version": [
@@ -14461,10 +14457,10 @@
    "version": [
     3,
     29,
-    2
+    3
    ],
-   "commit": "d3190d6a730207a56ef2144566468975167a811e",
-   "sha256": "0yjk4kqrln8smz457dxansfl69zyikr5015xm23xa4g7x1rihkgg"
+   "commit": "b39fb31bf411c3925bd937f8cffbc471c2588c34",
+   "sha256": "1bwa80zrqyav0bxpq6b9vrjijbfn5g52vqhzvy70g7bp3jbp6vzm"
   }
  },
  {
@@ -14532,11 +14528,11 @@
   "repo": "tumashu/cnfonts",
   "unstable": {
    "version": [
-    20240426,
-    601
+    20240430,
+    536
    ],
-   "commit": "d81b1d5932fbbed509f4b011eb14d2e0e1e73971",
-   "sha256": "0whkwxi6720rgv22w2xnb4ji092x4hrh4fabbnlm6dvf85g16mqn"
+   "commit": "1f57d4f64f50e4dbc7ab4d963278b746f904c454",
+   "sha256": "1jrrpmlagncv46pyq10182bi7mcqy85iy46nw33fskaswypxhwji"
   },
   "stable": {
    "version": [
@@ -14933,14 +14929,14 @@
   "repo": "ankurdave/color-identifiers-mode",
   "unstable": {
    "version": [
-    20240218,
-    1801
+    20240505,
+    2245
    ],
    "deps": [
     "dash"
    ],
-   "commit": "6cb50ae7e61189f55387e5350c20651e081d613c",
-   "sha256": "10miij6w40jki1ii9y05ks9wgzzmpiz3qd6mpicc5c9i83cm0d1j"
+   "commit": "8e189b03ad602cc457308934fbb91b2dc8f286df",
+   "sha256": "1dhikxir170ssrl8l8qwgg5f9kk391y0wmaa9dw2v20y2jvhpvzh"
   },
   "stable": {
    "version": [
@@ -15076,11 +15072,11 @@
   "repo": "purcell/color-theme-sanityinc-tomorrow",
   "unstable": {
    "version": [
-    20240406,
-    1456
+    20240429,
+    949
    ],
-   "commit": "42b24a3fa3fbdcb36cd2936a38abe142cda65294",
-   "sha256": "103l62ma6vgq5p15jn125fz4f42s3aghg3l48vh5ngcb9y6w5ip0"
+   "commit": "5f3b2039eda57e9e4501f8decab5808d9edf98eb",
+   "sha256": "11vpha0nmcxh7b1cp27778sacjzccp87b6db3mnsir5mbnxyhfx4"
   },
   "stable": {
    "version": [
@@ -15520,11 +15516,11 @@
   "repo": "company-mode/company-mode",
   "unstable": {
    "version": [
-    20240311,
-    1943
+    20240428,
+    2258
    ],
-   "commit": "b0a522ac5bf8ba3d2f4f22e3aa846a4f82978a16",
-   "sha256": "11ghdfbyg8fvi79l0xvaqhpnzlnjfl3ng517pb2h37hp2cyy8b5i"
+   "commit": "32f030a4c79bbf082cc21ec21b2cf8ba9dfa22cc",
+   "sha256": "19y5s4jxz62ak9q3cq66d1gijpbv9bkxazm4qyglsk9ayjz03q43"
   },
   "stable": {
    "version": [
@@ -15802,26 +15798,26 @@
   "repo": "redguardtoo/company-ctags",
   "unstable": {
    "version": [
-    20211211,
-    338
+    20240511,
+    856
    ],
    "deps": [
     "company"
    ],
-   "commit": "313508ba5d4f1e4b5d5d554faaa74076201c3248",
-   "sha256": "0hf7lq6rcs6xhmgpc8bwk115rykyfvakcjqpanlsh5m3fdswjq03"
+   "commit": "2e079a634afa5687bdb004e3883ac0671a222401",
+   "sha256": "1ilinm5kih3kiljvdbh9x84w8vwcplyas3k8j6x1j6v4gj4k16gn"
   },
   "stable": {
    "version": [
     0,
-    0,
-    7
+    1,
+    1
    ],
    "deps": [
     "company"
    ],
-   "commit": "313508ba5d4f1e4b5d5d554faaa74076201c3248",
-   "sha256": "0hf7lq6rcs6xhmgpc8bwk115rykyfvakcjqpanlsh5m3fdswjq03"
+   "commit": "2e079a634afa5687bdb004e3883ac0671a222401",
+   "sha256": "1ilinm5kih3kiljvdbh9x84w8vwcplyas3k8j6x1j6v4gj4k16gn"
   }
  },
  {
@@ -16106,16 +16102,16 @@
   "repo": "jcs-elpa/company-fuzzy",
   "unstable": {
    "version": [
-    20240101,
-    943
+    20240519,
+    904
    ],
    "deps": [
     "company",
     "ht",
     "s"
    ],
-   "commit": "059e3e0893a2b3c0ad4bf27b6963e7547b97b5d4",
-   "sha256": "02n4y3zj7hypqhlki1kh2iha794449p9jyhj1rmr3bqidg2f73ig"
+   "commit": "ae4dbb00d91fae8f13e236093d99c7e4d0d8fa73",
+   "sha256": "1akl4d83lydq1sjp56kfwwv4zya0awpvm8ifw7sj4f1fmvkz8awr"
   },
   "stable": {
    "version": [
@@ -17472,11 +17468,11 @@
   "repo": "mohkale/compile-multi",
   "unstable": {
    "version": [
-    20240421,
-    1100
+    20240507,
+    1829
    ],
-   "commit": "fab41595a704260a295544aecbecb16896824e88",
-   "sha256": "14zswpaymzsrc1xcd4xamnydy4hi7fk0inryh6gyqwkgzkzkshf2"
+   "commit": "1fbd38806c70ebe8ebfec49cc7606284396a31e6",
+   "sha256": "138wayb49ywjgxdc19xlv7gr5is0yc9jwaxrxhjp1jj9mjidy1x0"
   },
   "stable": {
    "version": [
@@ -17495,14 +17491,14 @@
   "repo": "mohkale/compile-multi",
   "unstable": {
    "version": [
-    20240421,
-    1100
+    20240506,
+    1319
    ],
    "deps": [
     "all-the-icons-completion"
    ],
-   "commit": "fab41595a704260a295544aecbecb16896824e88",
-   "sha256": "14zswpaymzsrc1xcd4xamnydy4hi7fk0inryh6gyqwkgzkzkshf2"
+   "commit": "4f9cc1d3c448ecc496540a65578191733c09b0fd",
+   "sha256": "0q95fs78wz63s3lldh7h8l4gqmk67dlwg2kkiyl8f4byp77cf0p4"
   },
   "stable": {
    "version": [
@@ -17555,17 +17551,17 @@
   "repo": "mkcms/compiler-explorer.el",
   "unstable": {
    "version": [
-    20240425,
-    2138
+    20240517,
+    1816
    ],
    "deps": [
     "eldoc",
     "map",
-    "request",
+    "plz",
     "seq"
    ],
-   "commit": "fcf17db156877e35be589dbc82dd6d5736038961",
-   "sha256": "1bqcxr33jrd5jk2z77asn64sscb034pki2vs9c57vlqas4dwyb8r"
+   "commit": "ca01cbfa5941750f3cf2232f00e28032ef7f9bce",
+   "sha256": "05yzp9gch1hw10xgk742zdgky0vbbqhyn6fzxj2n6ilwaslcnprh"
   },
   "stable": {
    "version": [
@@ -17856,6 +17852,29 @@
   }
  },
  {
+  "ename": "conner",
+  "commit": "0fe4a5498ca9860d8b06d48f643e87d32f416f84",
+  "sha256": "1cxmpdlp3rq1is79hx917nh2kbg200n9w2l1laakas38y3rd43ag",
+  "fetcher": "github",
+  "repo": "tralph3/conner",
+  "unstable": {
+   "version": [
+    20240512,
+    1717
+   ],
+   "commit": "d8dabaab32e39b01500841b7465076c6ad73c3b9",
+   "sha256": "1iw787gp2r7ab3xc8s6brsdc7a8cg5g2vsjlb1qhir6zmyz5y5dz"
+  },
+  "stable": {
+   "version": [
+    0,
+    4
+   ],
+   "commit": "05de24bdac7c424d88eabd7cd0307f9b8bcc2aa3",
+   "sha256": "1s2dnbmfic0v2i9inp95a7psrwiajrpjc99b59rxaqqk5qwpf8hm"
+  }
+ },
+ {
   "ename": "constant-theme",
   "commit": "35763febad20f29320d459394f810668db6c3353",
   "sha256": "13m4r37gscnqg3qmb0rs2r8sslp0irm7n4p6p496mmvljvjmpv6b",
@@ -17878,25 +17897,25 @@
   "repo": "minad/consult",
   "unstable": {
    "version": [
-    20240420,
-    929
+    20240516,
+    2240
    ],
    "deps": [
     "compat"
    ],
-   "commit": "8989c7a5c5035f9e3429f85f1006d0c6cb5d5e8d",
-   "sha256": "0zrxs4134csg7ygrlq800mpa7xs3z6z547l28jv3c5v2s2ls1k97"
+   "commit": "80407622f323669c735737272ecbc3b602434b77",
+   "sha256": "0rrxyds14a3c1f96q3hx92hm4axl66cgghrvc3j745s257macx0y"
   },
   "stable": {
    "version": [
     1,
-    5
+    6
    ],
    "deps": [
     "compat"
    ],
-   "commit": "d8888bb67f881a3c4855c9ce7224de18a7dc3901",
-   "sha256": "0wgc30vinc62vppakwyxzfqpxqm0nl3srz4d42xs873i5bsczkab"
+   "commit": "6eba1a3fa8e13681091a30b2490a03bdce5f243a",
+   "sha256": "1c6skqx5aqkb0mfnm5zw4mvzcrcr34zcd5jz3ypgb5483nv9kp3c"
   }
  },
  {
@@ -18035,14 +18054,14 @@
   "repo": "karthink/consult-dir",
   "unstable": {
    "version": [
-    20230725,
-    2338
+    20240506,
+    236
    ],
    "deps": [
     "consult"
    ],
-   "commit": "3268ec3f7194c086ecfbd2863e029f42d91b77c1",
-   "sha256": "12mp2c7mx60l758c4gjnx4lv37fp1b8ifagak8l2dcmg2rm7kxd4"
+   "commit": "15891383f34d43acc5bb82bda92239b1f54cf178",
+   "sha256": "1jq931w66iawc1rf01n9mfmnxwvrv2zc711nwnmykdv6ynd636dm"
   },
   "stable": {
    "version": [
@@ -18265,16 +18284,16 @@
   "repo": "gagbo/consult-lsp",
   "unstable": {
    "version": [
-    20230209,
-    714
+    20240507,
+    2105
    ],
    "deps": [
     "consult",
     "f",
     "lsp-mode"
    ],
-   "commit": "f8db3252c0daa41225ba4ed1c0d178b281cd3e90",
-   "sha256": "0hbavrwxa8mhgijh0wn517fns07ng84q6vya9bvblcx8pq9qw6z0"
+   "commit": "68583913168bf66fd4d542b2517a2dcab19c447c",
+   "sha256": "1g3z2f5j2qvzlszn9f4qnbiggn9scaydkgifx2a4pc0ak4zs1m2s"
   },
   "stable": {
    "version": [
@@ -18298,16 +18317,16 @@
   "repo": "mclear-tools/consult-notes",
   "unstable": {
    "version": [
-    20240306,
-    1529
+    20240516,
+    1423
    ],
    "deps": [
     "consult",
     "dash",
     "s"
    ],
-   "commit": "652d0281b81becac643efe96386facf23e1dee01",
-   "sha256": "0ka4mr4gg2nmkg0fr7i9dq3f3jmq9m16wbzjk5w9x5yxhh9rymx2"
+   "commit": "c97420c8e91aaae214be7de897eb7eb9b7843520",
+   "sha256": "0nf06al179p3g7n0zvcxkwhq1ygakg4n554a1w8f6k00m1syslsh"
   }
  },
  {
@@ -18541,6 +18560,30 @@
   }
  },
  {
+  "ename": "context-transient",
+  "commit": "eae3d8f214a0967fd5bc1d48e45e27a639f61e0d",
+  "sha256": "1kgyd202db6wgkygmpjqa2w7f8qbhd4z5wymr615zvw1qal3407q",
+  "fetcher": "github",
+  "repo": "licht1stein/context-transient.el",
+  "unstable": {
+   "version": [
+    20240507,
+    1534
+   ],
+   "commit": "efd8343f46f9fb2a1ee391c0292fb35d4f91b107",
+   "sha256": "0fmp011hnarc73b3zicknwfvql5a2q7ijmy63p0qnw735c9xcjvr"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    0
+   ],
+   "commit": "efd8343f46f9fb2a1ee391c0292fb35d4f91b107",
+   "sha256": "0fmp011hnarc73b3zicknwfvql5a2q7ijmy63p0qnw735c9xcjvr"
+  }
+ },
+ {
   "ename": "contextual",
   "commit": "7325c1a705d07d6916d55a1fc2bb7012e22504fd",
   "sha256": "0zsyshy2n17zmk3l2shpd4ci9l0xwyx3bmv0psqlpcd0zcjdsfdv",
@@ -18982,15 +19025,15 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20240413,
-    1905
+    20240520,
+    1323
    ],
    "deps": [
     "ivy",
     "swiper"
    ],
-   "commit": "28ac6c7e32ec0b90803fd35f8d1f04ed0fe2e6a5",
-   "sha256": "1zyxm69ld137k9qnjmn87a2qh9qls1phycfcr3h5p3a0d0ackgd6"
+   "commit": "8133016ab1b37da233e6daaab471e40abf0f7ba9",
+   "sha256": "0yswdy8yxqs2vpmrskrl6lx7y6m891x5y09gk01kr9ww7zy7wklc"
   },
   "stable": {
    "version": [
@@ -21291,8 +21334,8 @@
   "repo": "emacs-lsp/dap-mode",
   "unstable": {
    "version": [
-    20240424,
-    1359
+    20240514,
+    1617
    ],
    "deps": [
     "bui",
@@ -21305,8 +21348,8 @@
     "posframe",
     "s"
    ],
-   "commit": "22af181d627577968f03213ba59d02458d3e734a",
-   "sha256": "1q360xhnmfnjgrkmzq69p2wc0rphz7fsbjzgn3hjw0a8kv3jsq0y"
+   "commit": "11431a26bc4c8ca92b097dbdbcbdc9e3d7fb5583",
+   "sha256": "1m77dwy1p7jy41v7gjqk9w7jy6sh3blg2qrlw22f3y1d6n0h3lvs"
   },
   "stable": {
    "version": [
@@ -21563,11 +21606,11 @@
   "repo": "magnars/dash.el",
   "unstable": {
    "version": [
-    20240405,
-    946
+    20240510,
+    1327
    ],
-   "commit": "885332bbc4582b08d4f24526250876f3a7569067",
-   "sha256": "1v700mlwwas57kqnp1hqv0ln0cqv44nlcp7lv9c4rha7q5gzmikz"
+   "commit": "1de9dcb83eacfb162b6d9a118a4770b1281bcd84",
+   "sha256": "1nkz7m2yllvin3aynnp1wldjzasah9rv4nlydcxxh5qx4ws3dpka"
   },
   "stable": {
    "version": [
@@ -22094,11 +22137,11 @@
   "url": "https://salsa.debian.org/emacsen-team/debian-el.git",
   "unstable": {
    "version": [
-    20240404,
-    541
+    20240519,
+    1104
    ],
-   "commit": "7bbbf575f0ce11cb4b6acd89e56000ae388b1413",
-   "sha256": "1s2jqqmmnwcf8bx6vn1754ji5kgdwzcm5hi5j0s4rj1yl9s9jnd4"
+   "commit": "a76a38cf0af5625b38e1d298bbfa3ae5a2a1ebc9",
+   "sha256": "0k3r9a9qsi380m4j53j4irfv591irg9w2i0pqk1c8fv3rwxrdiq5"
   },
   "stable": {
    "version": [
@@ -22640,15 +22683,15 @@
   "repo": "pprevos/denote-explore",
   "unstable": {
    "version": [
-    20240426,
-    450
+    20240512,
+    113
    ],
    "deps": [
     "dash",
     "denote"
    ],
-   "commit": "9e1a5162dbec751fe62ce4b99bcb0e5024f39f94",
-   "sha256": "06yhh543piflgx8ql70wmsz56g8a7nja66n7s48rwq7d7pxb6znq"
+   "commit": "7073ef97758fbcf953557efa15da9226283ff6b0",
+   "sha256": "151ba0mhq61y2iwic5645rh4agklp1rg3618xcc7r76b4078fybs"
   }
  },
  {
@@ -22884,11 +22927,11 @@
   "repo": "blahgeek/emacs-devdocs-browser",
   "unstable": {
    "version": [
-    20240414,
-    1251
+    20240511,
+    306
    ],
-   "commit": "d4ebae6b12ba13393270278a75b053d53af3ac54",
-   "sha256": "08rrhi7d29h8mzvi7wd4ikj5k7g1kscys709l8aaiq1mxf0nhxj8"
+   "commit": "0655b89651458777354a3b89c1d486e0fda1928d",
+   "sha256": "1yamaqscprvrwvgxm5q0bgjmdd31jg86z4zd2mp62xq5mqhg9ncj"
   }
  },
  {
@@ -23139,14 +23182,14 @@
   "repo": "dgutov/diff-hl",
   "unstable": {
    "version": [
-    20240401,
-    2357
+    20240505,
+    2110
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "09a0f8fcc7e6ce3f49dca64cdfab898d6762f2a4",
-   "sha256": "1kszgnp6nrsx8sphk5lnnkvymb5p17djvgpc3433dwjic6rz97ml"
+   "commit": "11f3113e790526d5ee00f61f8e7cd0d01e323b2e",
+   "sha256": "1a6hqb0258kdskixcwacq41d7x71rlpwwapmbpd9ds8w6dj5vi40"
   },
   "stable": {
    "version": [
@@ -23262,15 +23305,15 @@
   "repo": "pkryger/difftastic.el",
   "unstable": {
    "version": [
-    20240423,
-    1553
+    20240429,
+    2057
    ],
    "deps": [
     "compat",
     "magit"
    ],
-   "commit": "56ec9ba861b132a96220837d711f6e79c26c268d",
-   "sha256": "1qdiph2wkx7anrpfilxpk9cdzjx6ig0pwzswh9prppdk3flyw5qb"
+   "commit": "90b9b223bfc39786f6fcf266cdc1cb982bdc37aa",
+   "sha256": "1z7q6rr3cnp6fpx0439hbk22g1kl84xa6k3pbxm4mph2cqw536jm"
   }
  },
  {
@@ -23304,20 +23347,20 @@
   "repo": "retroj/digistar-mode",
   "unstable": {
    "version": [
-    20240220,
-    1600
+    20240515,
+    1529
    ],
-   "commit": "178cb58a3a52d22168f641a5436addf0904d5c45",
-   "sha256": "16mn9g5gxv6g3dcphiyxpwhkn042zkhi6w8941r7f0mc238msnp3"
+   "commit": "546adaccb1f90d6947c2c80c2fab4933f40bc274",
+   "sha256": "16a4x0zxrhs2c4k7v3qhinbxayx213mb8b84jrs21sq7whfad63d"
   },
   "stable": {
    "version": [
     0,
     9,
-    9
+    13
    ],
-   "commit": "178cb58a3a52d22168f641a5436addf0904d5c45",
-   "sha256": "16mn9g5gxv6g3dcphiyxpwhkn042zkhi6w8941r7f0mc238msnp3"
+   "commit": "a0f0756b132202fadf487d689d3c4312f480d2a7",
+   "sha256": "0i055f0kvm4ymq9a7ad4zg2kzw4gf60db0kcg5q8gmlsri7ppsl2"
   }
  },
  {
@@ -25876,16 +25919,16 @@
   "repo": "seagle0128/doom-modeline",
   "unstable": {
    "version": [
-    20240425,
-    609
+    20240510,
+    144
    ],
    "deps": [
     "compat",
     "nerd-icons",
     "shrink-path"
    ],
-   "commit": "150b5bf8da8050e5db1193f827c33b16a5d8dd3f",
-   "sha256": "13zfwww73x5ax7vql7fhgyzwwx0xhkh1fs9b6x746nbyl3p5vnnl"
+   "commit": "65d0bd83eb7c393092e032c24b882f3ba19b4899",
+   "sha256": "1w657ss91f00kb3gghi9rs0a8cw2bszvik4yjzn6cj7m8ji3k3qi"
   },
   "stable": {
    "version": [
@@ -26581,16 +26624,16 @@
   "repo": "jacktasia/dumb-jump",
   "unstable": {
    "version": [
-    20240114,
-    354
+    20240514,
+    702
    ],
    "deps": [
     "dash",
     "popup",
     "s"
    ],
-   "commit": "ede6a04187e79a29ef31d14760ac0d8d4c5f4cc5",
-   "sha256": "1ly7xsfliyw38hqh862p6m37mxl460k4zq1fy3xs0jz9q3ak84iq"
+   "commit": "3c2ab8dfff3a10d3c5f2efd69cfbc81fb5dbbd39",
+   "sha256": "0q37akv7xnwq14a7zn7cjr3njkkkl7vfrkkr0di8bw9p6dyvwqw4"
   },
   "stable": {
    "version": [
@@ -26776,11 +26819,11 @@
   "repo": "xenodium/dwim-shell-command",
   "unstable": {
    "version": [
-    20240414,
-    1607
+    20240520,
+    1732
    ],
-   "commit": "3dc879fa4c473d1f7c0929ebb0cebcbe729553cc",
-   "sha256": "0axj93kfimhn7kywpnv7394gaw9rz402lixmwqyka85f1rcw3dzc"
+   "commit": "c20a474ba8fc0ad73a1b30aeb99502cbfc709c0b",
+   "sha256": "0lj8rkvpns4fpdmwriax0i5yijqraji1vjbdc6scyvpmdmsqd3p1"
   }
  },
  {
@@ -27510,28 +27553,28 @@
   "repo": "swflint/emacs-universal-sidecar",
   "unstable": {
    "version": [
-    20240115,
-    1727
+    20240428,
+    1852
    ],
    "deps": [
     "ebdb",
     "universal-sidecar"
    ],
-   "commit": "9050eaea7946e613a4b9ecd9dd1462614699edb1",
-   "sha256": "169n0d4hsx9azch1w14wlmilm411hb7v0564xrcwww5w145jrs9m"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   },
   "stable": {
    "version": [
     1,
-    5,
-    2
+    6,
+    0
    ],
    "deps": [
     "ebdb",
     "universal-sidecar"
    ],
-   "commit": "9050eaea7946e613a4b9ecd9dd1462614699edb1",
-   "sha256": "169n0d4hsx9azch1w14wlmilm411hb7v0564xrcwww5w145jrs9m"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   }
  },
  {
@@ -27575,15 +27618,15 @@
   "repo": "joostkremers/ebib",
   "unstable": {
    "version": [
-    20240426,
-    642
+    20240430,
+    1436
    ],
    "deps": [
     "compat",
     "parsebib"
    ],
-   "commit": "4055e30872e642f746633bab96c3383836d61e68",
-   "sha256": "072dbc7wm9mwcbfw0a9957izamk2amcqag53p4n32r3cdn9v94zk"
+   "commit": "2f2d39d1953fa10d7c3dad6a4611d8ec0d489aba",
+   "sha256": "0x40cwcibl3dsyxmqn3yhsbw5pyisx5yypjy6qm7hzi6r2wxgvzr"
   },
   "stable": {
    "version": [
@@ -27607,8 +27650,8 @@
   "repo": "swflint/emacs-universal-sidecar",
   "unstable": {
    "version": [
-    20240320,
-    1935
+    20240428,
+    1852
    ],
    "deps": [
     "citeproc",
@@ -27616,22 +27659,23 @@
     "universal-sidecar",
     "universal-sidecar-citeproc"
    ],
-   "commit": "e38aa3fbf570ab1eef3bf0441e5be59586672377",
-   "sha256": "11kbbv6s4qinx0l95f7j6ic40ykfcjpmz6wsl8jx9fdqrlh9b91w"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   },
   "stable": {
    "version": [
     1,
-    5,
-    2
+    6,
+    0
    ],
    "deps": [
     "citeproc",
+    "ebib",
     "universal-sidecar",
     "universal-sidecar-citeproc"
    ],
-   "commit": "9050eaea7946e613a4b9ecd9dd1462614699edb1",
-   "sha256": "169n0d4hsx9azch1w14wlmilm411hb7v0564xrcwww5w145jrs9m"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   }
  },
  {
@@ -27687,11 +27731,11 @@
   "repo": "benzanol/echo-bar.el",
   "unstable": {
    "version": [
-    20240307,
-    741
+    20240521,
+    326
    ],
-   "commit": "71ef563df7f1b85cfe64854b6e40bb353a281cc5",
-   "sha256": "1hgnmyphzww9gq6ww3x0xckn25rb26dlkbh22vf23566yhq1s993"
+   "commit": "0e221754cb40406609ae5c79ac294683850638e1",
+   "sha256": "0cwpphdj78g6w4an58qrf3mbqji0lm6cfzkz099pcppg17ljz4h4"
   }
  },
  {
@@ -28149,26 +28193,26 @@
   "repo": "editorconfig/editorconfig-emacs",
   "unstable": {
    "version": [
-    20240318,
-    2049
+    20240512,
+    1958
    ],
    "deps": [
     "nadvice"
    ],
-   "commit": "6b85f0475f01ff97f3233acb68e2646d2ca32a91",
-   "sha256": "1c78vv29sq8hk59mw7ir3wqrwz5gl9nd7gf3dgla6kdfw6ba3783"
+   "commit": "6ac848e380322bb52d6f70a032e12f70d60daab1",
+   "sha256": "08fl3jg2vklyczqdz3ifaa0j4zkq7siz0m141lzcq5rahi7c65g6"
   },
   "stable": {
    "version": [
     0,
-    10,
-    1
+    11,
+    0
    ],
    "deps": [
     "nadvice"
    ],
-   "commit": "ed760770ed5397120b3d68b69afc0778c48d3a47",
-   "sha256": "1hwqhfm32sg4y0l0yn7378vjb6icgd92lkazy2z6dmnks5sbz0a3"
+   "commit": "f1531bab5b57e40759167b7e5db49acbbc09972f",
+   "sha256": "0bqwmh4lcnbn5gcn38qg4jjfs9bfkbr4dj4dafglgds6a5lhznws"
   }
  },
  {
@@ -28567,16 +28611,16 @@
   "repo": "fsharp/emacs-fsharp-mode",
   "unstable": {
    "version": [
-    20230324,
-    1942
+    20240514,
+    1923
    ],
    "deps": [
     "eglot",
     "fsharp-mode",
     "jsonrpc"
    ],
-   "commit": "0ce19f272949f9ed335ab7a9fd9454c01f07eb8f",
-   "sha256": "1qy1g4nka6k083n0zmas6cq9bkcpij10xyzac0lfilggkr4hqz1w"
+   "commit": "677d78c4d6cb574086408082dedbcaef04a85359",
+   "sha256": "0by1ln0raa89dj2jng6kak69b7nzr3ic090wrg4gg6mqky5qbm5n"
   },
   "stable": {
    "version": [
@@ -28600,27 +28644,27 @@
   "repo": "yveszoundi/eglot-java",
   "unstable": {
    "version": [
-    20240322,
-    239
+    20240501,
+    922
    ],
    "deps": [
     "eglot",
     "jsonrpc"
    ],
-   "commit": "d09a4204ece16a5be4ddea71476ef87e565733bd",
-   "sha256": "1dl751frdhvk9474m885m1k5fka0rbpsnawgjb3qfmg4zi2v053v"
+   "commit": "492282d653c91b07ec10b30eb8a05cbfdc4017c7",
+   "sha256": "1h1psfx2pjx8jhxi86s0qwqk5prvn9s8nz4adxyvb5nx0329d351"
   },
   "stable": {
    "version": [
     1,
-    34
+    35
    ],
    "deps": [
     "eglot",
     "jsonrpc"
    ],
-   "commit": "d09a4204ece16a5be4ddea71476ef87e565733bd",
-   "sha256": "1dl751frdhvk9474m885m1k5fka0rbpsnawgjb3qfmg4zi2v053v"
+   "commit": "492282d653c91b07ec10b30eb8a05cbfdc4017c7",
+   "sha256": "1h1psfx2pjx8jhxi86s0qwqk5prvn9s8nz4adxyvb5nx0329d351"
   }
  },
  {
@@ -28901,15 +28945,15 @@
   "repo": "ahyatt/ekg",
   "unstable": {
    "version": [
-    20240320,
-    242
+    20240506,
+    419
    ],
    "deps": [
     "llm",
     "triples"
    ],
-   "commit": "8f050a65837d6d3ec4ea3ba7539541518d061539",
-   "sha256": "0hd5d7kiw8qbdpgxkv6zpknp799g61cqdjsi7jlgmj1dznryrxz6"
+   "commit": "c23f6672fa1075d11e942dffc1c37701731b94f0",
+   "sha256": "0s0cdvifxiz0r4widbcqlg19mcnxkhpcbgibi0c4p9n1iaqc1bfp"
   },
   "stable": {
    "version": [
@@ -29443,20 +29487,20 @@
   "repo": "emacs-eldev/eldev",
   "unstable": {
    "version": [
-    20240427,
-    1730
+    20240511,
+    2039
    ],
-   "commit": "089fc7f172bea0d1aae63f5595ced02c6486b2dd",
-   "sha256": "0n9l74vcwydwpc7ignqppskppnnhlgqf2cfcsr3a1bsw6x0rcw26"
+   "commit": "5153b5a747aaadb51ac14f3963e3ffbf59273e74",
+   "sha256": "183pa9sxg0qg0kd75vgll7xfaplpkrlj077vdqhh5qcciikhqhla"
   },
   "stable": {
    "version": [
     1,
-    9,
+    10,
     1
    ],
-   "commit": "4da05948a10f1d7297ee80907e1412de76170b51",
-   "sha256": "1v0jwzwq0xpih8m4aymz90fdfvypkiqczh0ip5jg4kcvzikliw3f"
+   "commit": "56335373099a6e2d3756fe5b7cce539d91c43bd3",
+   "sha256": "1qir0wagqb8yhmkb12zzadl146w952p3q92bpffd0hq0y6gcp2n5"
   }
  },
  {
@@ -29692,20 +29736,20 @@
   "repo": "swflint/electric-ospl-mode",
   "unstable": {
    "version": [
-    20240319,
-    1842
+    20240428,
+    1829
    ],
-   "commit": "e5283062fdf66aa2d664059b307839bf94413055",
-   "sha256": "0l60xc2l1ms8hzf5v5vk9spvdicqkvpkskwg07i3p00p2ldns0v8"
+   "commit": "deab4493530ab4bb2112c18d8ca6ccc652e24a63",
+   "sha256": "1l8d2yjg7rq67vwd0mq8lnfbvwvdp707nm856m9ns3j7jbhpzf9a"
   },
   "stable": {
    "version": [
     3,
-    1,
-    2
+    2,
+    0
    ],
-   "commit": "e5283062fdf66aa2d664059b307839bf94413055",
-   "sha256": "0l60xc2l1ms8hzf5v5vk9spvdicqkvpkskwg07i3p00p2ldns0v8"
+   "commit": "deab4493530ab4bb2112c18d8ca6ccc652e24a63",
+   "sha256": "1l8d2yjg7rq67vwd0mq8lnfbvwvdp707nm856m9ns3j7jbhpzf9a"
   }
  },
  {
@@ -30064,15 +30108,15 @@
   "repo": "karthink/elfeed-tube",
   "unstable": {
    "version": [
-    20240123,
-    1825
+    20240511,
+    418
    ],
    "deps": [
     "aio",
     "elfeed"
    ],
-   "commit": "92c66d6adcebe0588ccf811616decf7ef8a8ac65",
-   "sha256": "1mz2mk9vzdpj0x6dv1grkz03algrsf62kfqrlhnww60vnzqi6i3r"
+   "commit": "1f5ad2cc26d6290eb77dd36716e5887cb2cd617c",
+   "sha256": "1c0nxzqhldn59hgalvx24r7wn0s641jv6akv8vra6m8qwarw9ksk"
   },
   "stable": {
    "version": [
@@ -30584,28 +30628,28 @@
   "repo": "s-kostyaev/ellama",
   "unstable": {
    "version": [
-    20240415,
-    730
+    20240517,
+    1457
    ],
    "deps": [
     "llm",
     "spinner"
    ],
-   "commit": "6e6ec8e28b8ce32ff207b1b026aaaeddc1bd8239",
-   "sha256": "1nwwqvl91c65r45yxa2dcl4a41r3ahw6294h79riya48nrp8kn54"
+   "commit": "fddc1022b5e16e356d6f65ddac51bd2ccf25209c",
+   "sha256": "0pkhm4kz6wrad3vwk9xf8876sz3fc9m7bypffzfa7wg0ivz547jk"
   },
   "stable": {
    "version": [
     0,
     9,
-    1
+    4
    ],
    "deps": [
     "llm",
     "spinner"
    ],
-   "commit": "6e6ec8e28b8ce32ff207b1b026aaaeddc1bd8239",
-   "sha256": "1nwwqvl91c65r45yxa2dcl4a41r3ahw6294h79riya48nrp8kn54"
+   "commit": "fddc1022b5e16e356d6f65ddac51bd2ccf25209c",
+   "sha256": "0pkhm4kz6wrad3vwk9xf8876sz3fc9m7bypffzfa7wg0ivz547jk"
   }
  },
  {
@@ -31347,15 +31391,15 @@
   "repo": "emacscollective/elx",
   "unstable": {
    "version": [
-    20240415,
-    1535
+    20240506,
+    1556
    ],
    "deps": [
     "compat",
     "llama"
    ],
-   "commit": "4b3b0af5b8d1e530a1a8fc44af650886b23918b1",
-   "sha256": "17c4lq6flzx0nsjcmdpaq8isdz73d337d9nv8fqb1719shniq2cm"
+   "commit": "9db9f8dcc595717d82943fef66f554a4b40aff0b",
+   "sha256": "1cn4qya2miky1bwiwdkbp6kykcf5syy3hb7vfz5jlld4i9ckc23c"
   },
   "stable": {
    "version": [
@@ -31379,11 +31423,11 @@
   "repo": "tecosaur/emacs-everywhere",
   "unstable": {
    "version": [
-    20240416,
-    749
+    20240509,
+    1715
    ],
-   "commit": "8868b9e371d3d09add67022e46b3e4db0a0c22a0",
-   "sha256": "0viss80p4sls6qqi9hcdzzx5gibf4s27rqv1nfcdxibw2j1ici95"
+   "commit": "0b731ca6da351ba40953d090acf69e81757d437b",
+   "sha256": "0y5p0lvggjhv37fvr2li16x4kxf8y6nab8l38bdrmws34cip54cz"
   }
  },
  {
@@ -31724,13 +31768,13 @@
   "stable": {
    "version": [
     1,
-    0
+    1
    ],
    "deps": [
     "compat"
    ],
-   "commit": "47b0c75d4bf4f72a7af839667c877c80bd493cdb",
-   "sha256": "14alpanynww6z7yxxyiiy24c0p4pq1argsb0pmqavq25mdxgn4v2"
+   "commit": "195add1f1ccd1059472c9df7334c97c4d155425e",
+   "sha256": "1361jvwr3wjbpmq6dfkrhhhv9vrmqpkp1j18syp311g6h8hzi3hg"
   }
  },
  {
@@ -31755,15 +31799,15 @@
   "stable": {
    "version": [
     1,
-    0
+    1
    ],
    "deps": [
     "compat",
     "consult",
     "embark"
    ],
-   "commit": "47b0c75d4bf4f72a7af839667c877c80bd493cdb",
-   "sha256": "14alpanynww6z7yxxyiiy24c0p4pq1argsb0pmqavq25mdxgn4v2"
+   "commit": "195add1f1ccd1059472c9df7334c97c4d155425e",
+   "sha256": "1361jvwr3wjbpmq6dfkrhhhv9vrmqpkp1j18syp311g6h8hzi3hg"
   }
  },
  {
@@ -31950,16 +31994,16 @@
   "url": "https://git.savannah.gnu.org/git/emms.git",
   "unstable": {
    "version": [
-    20240414,
-    1933
+    20240512,
+    1735
    ],
    "deps": [
     "cl-lib",
     "nadvice",
     "seq"
    ],
-   "commit": "01110352afecd160165041bee55a63e959f66835",
-   "sha256": "0hz0yf49l6lq897lvfrv8pzkm7k6frnkqxr28800yhb7d6hcd3ix"
+   "commit": "c86ede13e80ad573f52e46de54fd24a97e2faa88",
+   "sha256": "04zw0al519n1xiyy15lzf1mv65d2fip5ha46h8lj03psl777bc4x"
   },
   "stable": {
    "version": [
@@ -32361,15 +32405,15 @@
   "repo": "isamert/empv.el",
   "unstable": {
    "version": [
-    20240423,
-    2355
+    20240517,
+    1701
    ],
    "deps": [
     "compat",
     "s"
    ],
-   "commit": "d9ab5d355c2e92c2c4e709d6945e6fab25069ccb",
-   "sha256": "0khj0xz3g5f0xa6qac7xyi2rjbm48l3wlk01q3x6fznccn5ch6wx"
+   "commit": "c7313288e350de7331779c0b37a8298980f6ff57",
+   "sha256": "00w59r7ycpv7819kbyjcvpiif9kzqh7k5nk1nfy2wgs1saxkg8ln"
   },
   "stable": {
    "version": [
@@ -32665,14 +32709,14 @@
   "repo": "purcell/envrc",
   "unstable": {
    "version": [
-    20240415,
-    1016
+    20240517,
+    1633
    ],
    "deps": [
     "inheritenv"
    ],
-   "commit": "8571bf94b6a63ffd9a84100106602f88ba186854",
-   "sha256": "03mjws4fp00g5smivs1iz0r78mmd5sgj1g4xyi8aq21mpv5rd2m0"
+   "commit": "4405f6e7b2e300aa91211bd505364d8f01667c97",
+   "sha256": "0jkydssnmljj8d29h15gar90r5cgin8qnlwampf2af26zfxxgq3v"
   },
   "stable": {
    "version": [
@@ -33524,21 +33568,19 @@
   "repo": "erlang/otp",
   "unstable": {
    "version": [
-    20240418,
-    631
+    20240517,
+    1225
    ],
-   "commit": "5df3992d695da4d7e8777cf7605279ce9d131f1c",
-   "sha256": "1zn34znba898b4kyrr2v88rbxlh709biff7z99llrvaxl0id6q3k"
+   "commit": "601a012837ea0a5c8095bf24223132824177124d",
+   "sha256": "1vaczg52wb4nzkm3py6b2ndxq1fb7nr3n41sn9wc16v4r8nq35b1"
   },
   "stable": {
    "version": [
     27,
-    0,
-    -1,
-    3
+    0
    ],
-   "commit": "5df3992d695da4d7e8777cf7605279ce9d131f1c",
-   "sha256": "1zn34znba898b4kyrr2v88rbxlh709biff7z99llrvaxl0id6q3k"
+   "commit": "601a012837ea0a5c8095bf24223132824177124d",
+   "sha256": "1vaczg52wb4nzkm3py6b2ndxq1fb7nr3n41sn9wc16v4r8nq35b1"
   }
  },
  {
@@ -33946,14 +33988,14 @@
   "repo": "SqrtMinusOne/eshell-atuin",
   "unstable": {
    "version": [
-    20240409,
-    932
+    20240519,
+    2200
    ],
    "deps": [
     "compat"
    ],
-   "commit": "1b71d4c18039bc3b46095adb557f6987caab4a43",
-   "sha256": "0mkv3460prgjx8pcfvfnavcd6h93f4cd4lqv0k7mynjiq57qy8np"
+   "commit": "b8bff27bbd7d4e7c28770d6f88d8ebcb1b965a9e",
+   "sha256": "0rqjljiwb1j345a4y2md44dbk6qpicz02cbzrbpfbi0a937y0222"
   }
  },
  {
@@ -34182,11 +34224,11 @@
   "repo": "akreisher/eshell-syntax-highlighting",
   "unstable": {
    "version": [
-    20240416,
-    102
+    20240509,
+    241
    ],
-   "commit": "070b33c20a907d973f41c0be1dcfd1335b8aa1e0",
-   "sha256": "0r4n6v9rlfmibrld1axbvxdll2j4c8vrp4glfpziglak1j764ifc"
+   "commit": "1198fd658d317747eb606a50c7767fef579af324",
+   "sha256": "1j2qfaw2jrd9gpn7a0i0wd5hjqgzj3akgkayrw73bh285iz19fm6"
   },
   "stable": {
    "version": [
@@ -34540,11 +34582,11 @@
   "repo": "emacs-ess/ESS",
   "unstable": {
    "version": [
-    20240410,
-    1836
+    20240516,
+    811
    ],
-   "commit": "8030e29de88c1f234184278e9839d7a78d3ddc6c",
-   "sha256": "1xx4srd4qmc0plh3lr1ar0qpamwh41wabrxrjg2205d1dxrqv0wp"
+   "commit": "f307097eac4d182986ed200924f92f14210a7c46",
+   "sha256": "08cnnmzj0da0vwv8m4cszhk0yy347pmqjmld7cvzn9xvqpghkmxv"
   },
   "stable": {
    "version": [
@@ -35156,11 +35198,11 @@
   "repo": "beacoder/everlasting-scratch",
   "unstable": {
    "version": [
-    20230105,
-    507
+    20240430,
+    1713
    ],
-   "commit": "1b7dac779501dcd988552aa6455a5be89e8b0562",
-   "sha256": "0hpv7a7jjs0shs7cda8q1bigwjb31miqbf8f4wr2swmjhh15w7h8"
+   "commit": "1837142ae14fdfd4d634434ceff966b348826259",
+   "sha256": "15509mjlk382yws41gb90xqn9g06agjpd6c8b8ps4ykmswm6ad5h"
   },
   "stable": {
    "version": [
@@ -35179,15 +35221,15 @@
   "repo": "emacs-evil/evil",
   "unstable": {
    "version": [
-    20240421,
-    1915
+    20240521,
+    954
    ],
    "deps": [
     "cl-lib",
     "goto-chg"
    ],
-   "commit": "fe44a565e6806dba4c298a76eb8800063016ec2d",
-   "sha256": "0xx73x82q26zgj33agmdzf4z4wk2m88f91wry071k8ja0qd9n5hc"
+   "commit": "0b134d3bbf73c93f5fed2bb89a35f408a9d627ed",
+   "sha256": "1nrvrb520wpphbhj1ck7jz2ks55yd7bkzycbjzbh534zax1nri93"
   },
   "stable": {
    "version": [
@@ -35871,6 +35913,36 @@
   }
  },
  {
+  "ename": "evil-lispops",
+  "commit": "3c3707521cf3967a452161961f1bce8d0dc83b08",
+  "sha256": "0iq7bacjdsbvzm10mif94amfnb5q00cpxklfz64cnwg3srgiaxfd",
+  "fetcher": "github",
+  "repo": "precompute/evil-lispops",
+  "unstable": {
+   "version": [
+    20240428,
+    1356
+   ],
+   "deps": [
+    "evil"
+   ],
+   "commit": "372b52df1a45fcea6c9461e7909cfdbb1db822a9",
+   "sha256": "1rvp5w1n13b9g4r0f6081w15rd52f46291i0ip0zxcz5q31szcg6"
+  },
+  "stable": {
+   "version": [
+    0,
+    10,
+    2
+   ],
+   "deps": [
+    "evil"
+   ],
+   "commit": "372b52df1a45fcea6c9461e7909cfdbb1db822a9",
+   "sha256": "1rvp5w1n13b9g4r0f6081w15rd52f46291i0ip0zxcz5q31szcg6"
+  }
+ },
+ {
   "ename": "evil-lispy",
   "commit": "f752bec984b45890e4d74ddd76cbadb0b3bf2942",
   "sha256": "07xkijnsww6060b6x88x5jwaw49ndz2dmaa6cbw78l28s4xgpnhc",
@@ -37691,16 +37763,17 @@
   "repo": "ananthakumaran/exunit.el",
   "unstable": {
    "version": [
-    20240401,
-    1344
+    20240502,
+    431
    ],
    "deps": [
     "f",
+    "project",
     "s",
     "transient"
    ],
-   "commit": "3b63d8835398ccadbcec080c8c1e00cd638b62b0",
-   "sha256": "0ci0x6jzw2ah3hm362r73wj3vipv1f01pybag29znmdvqfg95flb"
+   "commit": "b6134ce920a4bbc561f65fac1d1bf37206d97505",
+   "sha256": "1r28j6n373g85rrlwbx0z7mmjz76q9a9fs74grsl5rdjrpab57cn"
   }
  },
  {
@@ -38145,11 +38218,11 @@
   "repo": "WJCFerguson/emacs-faff-theme",
   "unstable": {
    "version": [
-    20240416,
-    2057
+    20240520,
+    1303
    ],
-   "commit": "9b8ff139442b29a16a437c367f201f263bbb884c",
-   "sha256": "103npmlln3c394fkacapx17zjyw4niwqqn8c768gij0ny4k0qfg4"
+   "commit": "452546431e3bef05fbf8914f6d41b8b7a3557bf3",
+   "sha256": "1dikgq84xfv2hq340f9m2nvhn4h09sv9py0sm3214nfssn6z4a55"
   },
   "stable": {
    "version": [
@@ -38705,11 +38778,11 @@
   "repo": "technomancy/fennel-mode",
   "unstable": {
    "version": [
-    20240425,
-    129
+    20240502,
+    1555
    ],
-   "commit": "dd7a320b1582b726d011f4fca24d36614b5ffba8",
-   "sha256": "0f19c55slndp0vdhbwx7s2cz54a26vvyy7knxd2nrhl6wnrazhma"
+   "commit": "b07a726f4d8b6e7f69fdf7f2105abfa5707680dc",
+   "sha256": "129s957d4g288x75x1ixb4i8g6nbf2y032jj4minzhn51627cy88"
   },
   "stable": {
    "version": [
@@ -39185,11 +39258,11 @@
   "repo": "thisirs/find-temp-file",
   "unstable": {
    "version": [
-    20221119,
-    1350
+    20240512,
+    1635
    ],
-   "commit": "601e39b052c66df4cd928cf7e308dd6a54769a99",
-   "sha256": "0mlzrwiv9m8404lx576gkig8icmp7v2fk36x7z1zw2r4vi6r0qc1"
+   "commit": "76414b6ba8660905675ec8969f5db0adb270bb80",
+   "sha256": "0shsazfr3r5a3ar6d6bj394vck5k21mda9isp40apba541bbvr5k"
   }
  },
  {
@@ -39426,11 +39499,11 @@
   "repo": "LemonBreezes/emacs-fish-completion",
   "unstable": {
    "version": [
-    20240405,
-    2052
+    20240518,
+    1403
    ],
-   "commit": "807628cc4b0f7a07b6e512f7c7825a78ee5c73fc",
-   "sha256": "12rs6l3w08smp37p18365bj4as1i3jrwl54zbrxw2navjyqmp11m"
+   "commit": "1256f137a2039805d4e87f8e6c11a162ed019587",
+   "sha256": "0l2axq9hnz41wz7nj730s7qlgj7zig03xpmzhbyja1av84jndpvi"
   },
   "stable": {
    "version": [
@@ -40405,14 +40478,14 @@
   "repo": "worr/cfn-mode",
   "unstable": {
    "version": [
-    20231030,
-    1003
+    20240512,
+    2341
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "0eb3dd630391e4d8a26e09c9032cfb9f4bd71e08",
-   "sha256": "1nrhybhpkv3rvks1vqzahfjg0vva76kakd99wpdqsa60ylb5i4jw"
+   "commit": "b26a95a219aa700256b22fd026cace57bce1701b",
+   "sha256": "1vcapcym8baf9xfk572s8xfds440lp88wg3zlzghxsfbim4w9ddx"
   },
   "stable": {
    "version": [
@@ -45163,8 +45236,8 @@
   "repo": "magit/forge",
   "unstable": {
    "version": [
-    20240423,
-    2033
+    20240519,
+    1510
    ],
    "deps": [
     "closql",
@@ -45179,8 +45252,8 @@
     "transient",
     "yaml"
    ],
-   "commit": "b54c8610a48c092aec8adde289cb9ba52ff7e23c",
-   "sha256": "1akx3qf3kfyc21bhg1pdlp92ncnx95wdhsqaj45haqjalad9a0zp"
+   "commit": "d3b14f2cb6740d18827ed713715908b517e4a899",
+   "sha256": "058g4gi3p3r70h1bdpphbg65xwggq4azyw70wgq30b9q13v90lkh"
   },
   "stable": {
    "version": [
@@ -45250,15 +45323,15 @@
   "repo": "lassik/emacs-format-all-the-code",
   "unstable": {
    "version": [
-    20240205,
-    2153
+    20240511,
+    1811
    ],
    "deps": [
     "inheritenv",
     "language-id"
    ],
-   "commit": "1f4a69811b4b6a00c74fa2566ef731b17b9a2ed1",
-   "sha256": "1p8bh96yksbpajx2pqxjc4vf7nfncwc3mvh1fcj8afw53g72is8m"
+   "commit": "c5ddfc5f3317eaa2a7541a818a0fce961e5e61dd",
+   "sha256": "0br35g9pyif8qws2x9nzn9p3l7ajqsni94japmrwsd943fqixzl0"
   },
   "stable": {
    "version": [
@@ -45398,14 +45471,14 @@
   "repo": "rnkn/fountain-mode",
   "unstable": {
    "version": [
-    20240329,
-    229
+    20240520,
+    307
    ],
    "deps": [
     "seq"
    ],
-   "commit": "b25315fed996cf1d41cc2d612dacc62b3e95f928",
-   "sha256": "15r0pzdmimm72jx26zgdxf7fwwcppl45vvh33xx5wnhqzd140hwn"
+   "commit": "7e10f27dd5d9a5d18e08a5454321e961167dfbf7",
+   "sha256": "0z7lf948l4yn8znir2nca2bd38c6wqcgihf6cx603j1q7ipfxnwb"
   },
   "stable": {
    "version": [
@@ -46557,11 +46630,11 @@
   "repo": "gvol/gap-mode",
   "unstable": {
    "version": [
-    20240126,
-    359
+    20240430,
+    210
    ],
-   "commit": "b816fcf70840887461764ebdbb34c8b37dd42ba2",
-   "sha256": "0w5g7hfcbi32bs42rqbzskb1a3pwr4qv02c948xdik7bs0nnjgyd"
+   "commit": "09b4082b6e28141537696bb832c8ecc975ec57d8",
+   "sha256": "16gl5y1m6b7s5f5ap7sk0xf51vziqkgzajw6817bcg9ih5lbf8z9"
   }
  },
  {
@@ -46626,11 +46699,11 @@
   "repo": "godotengine/emacs-gdscript-mode",
   "unstable": {
    "version": [
-    20240424,
-    2157
+    20240509,
+    1523
    ],
-   "commit": "2737f1c68cbeba38d34e5728c9fc2cd69e9a8f88",
-   "sha256": "0q8diqv5qcn7xxb42wl5mva8a51l0rhxsbm248walqdrrb0l9jk3"
+   "commit": "32086df83335ce0e5120b21b80cf7996edb2232e",
+   "sha256": "1w4bkqg17abxzpcb4w5askspps6zcq503544qnj1j97fmc2zmvha"
   },
   "stable": {
    "version": [
@@ -46785,14 +46858,14 @@
   "repo": "emacs-geiser/chibi",
   "unstable": {
    "version": [
-    20211204,
-    1938
+    20240521,
+    2252
    ],
    "deps": [
     "geiser"
    ],
-   "commit": "5a6a5a580ea45cd4974df21629a8d50cbe3d6e99",
-   "sha256": "071m2cvwanra9rd8vmybw8xd4k9a23x02cyy12f7qyjy5fp9s968"
+   "commit": "2502fed1349c2703eea528b74bcc980ad6bceab8",
+   "sha256": "1j8vld3s653af8jyvdb3sl16ix3al4fxprawgi3r9rrvrai2wz22"
   },
   "stable": {
    "version": [
@@ -47544,16 +47617,16 @@
   "repo": "magit/ghub",
   "unstable": {
    "version": [
-    20240415,
-    1555
+    20240507,
+    1647
    ],
    "deps": [
     "compat",
     "let-alist",
     "treepy"
    ],
-   "commit": "e0a65456098c5e0f2cf2724d071e9033f7b0bf3a",
-   "sha256": "0kxvd5bfwddcikm4xd82n24pm2mx7i4hqi5ikaypdav2hlp9s0x5"
+   "commit": "1df5298c3c4d26ec3720dc6c31f8bfd07858f8a9",
+   "sha256": "1ag8jkc9kkq6rikz19gv2m2hj85f37zwdxxnx16825hf1q9xcjpk"
   },
   "stable": {
    "version": [
@@ -47658,6 +47731,30 @@
   }
  },
  {
+  "ename": "girly-notebook-theme",
+  "commit": "984f419a8f77855487ab178fbb94c048d5a8a6b9",
+  "sha256": "00vwb2fz24h8pzvp062iq32gmv6bswy6320m19c6nl123vkmsck0",
+  "fetcher": "github",
+  "repo": "melissaboiko/girly-notebook-theme",
+  "unstable": {
+   "version": [
+    20240513,
+    1344
+   ],
+   "commit": "e27603d5afb2b60714b8acef61f3477d11c34e00",
+   "sha256": "11spfigfnc3yp1vzqxaq6i0pc02shigfy8zvw8cyxqs6cpglbywr"
+  },
+  "stable": {
+   "version": [
+    1,
+    2,
+    1
+   ],
+   "commit": "e27603d5afb2b60714b8acef61f3477d11c34e00",
+   "sha256": "11spfigfnc3yp1vzqxaq6i0pc02shigfy8zvw8cyxqs6cpglbywr"
+  }
+ },
+ {
   "ename": "gist",
   "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
   "sha256": "053fl8aw0ram9wsabzvmlm5w2klwd2pgcn2w9r1yqfs4xqja5sd3",
@@ -47879,26 +47976,28 @@
   "repo": "liuyinz/git-cliff.el",
   "unstable": {
    "version": [
-    20240407,
-    940
+    20240517,
+    1042
    ],
    "deps": [
+    "dash",
     "transient"
    ],
-   "commit": "b217b0576798767cc0a96343ba43adca3c04f760",
-   "sha256": "03bbm924i10h0chly5za991qplkp15dphgksnhni4i30k5s8znkb"
+   "commit": "90db86c1a600fc319e7c8172839bfe18c3e4221b",
+   "sha256": "0i0gdcs9lh7jm5sjwss0gadl7k645rns67va5d9xahzvfz1qkzb9"
   },
   "stable": {
    "version": [
     0,
-    6,
+    7,
     0
    ],
    "deps": [
+    "dash",
     "transient"
    ],
-   "commit": "6715b76f0734aa730958e87555b63b59c80585ff",
-   "sha256": "1795zwcic7imh7ybzjvbybyqrnnfh887y1bvn95wyywqrjrkk22m"
+   "commit": "14be943b04c1a0e9a0771bc6fc748d0e961af825",
+   "sha256": "00bis5dk15wrmccd1pla87z2cbr5fgqg6gqjvkn7iry73sax8c61"
   }
  },
  {
@@ -47942,16 +48041,16 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20240415,
-    1544
+    20240520,
+    1135
    ],
    "deps": [
     "compat",
     "transient",
     "with-editor"
    ],
-   "commit": "68075aff58e7ae5c852b9eabb69df454267deeaf",
-   "sha256": "16l6gm5kh739d3pclyqgfkc0kqf97zl03hzgx5iqadbx8gpcvzxg"
+   "commit": "22fd8f8594202a0679ccc2f7d02bca44d48b8039",
+   "sha256": "1ddx82j2j8sf9w7vc9jqa8fm54slprz4jyg3bxmsh6qb0y7n3yni"
   },
   "stable": {
    "version": [
@@ -49403,27 +49502,28 @@
   "url": "https://git.thanosapollo.org/gnosis",
   "unstable": {
    "version": [
-    20240417,
-    1322
+    20240517,
+    334
    ],
    "deps": [
     "compat",
     "emacsql"
    ],
-   "commit": "ad7b3563cb0b63afdb3ee14ada8e282c3a65b72e",
-   "sha256": "1mvf9wq8mwxl5vvnhgsgi6ahw45cg1sihgknb59pp38mg33yarxv"
+   "commit": "b9c6c04e33ad2f541ab116dda9e460f21034a8eb",
+   "sha256": "0h9jjag7ip4rgwr3if9rjlglsp7fiklx52685d527gkv6wqqd5a7"
   },
   "stable": {
    "version": [
     0,
     2,
-    0
+    5
    ],
    "deps": [
+    "compat",
     "emacsql"
    ],
-   "commit": "3433d348e214cff704c2bef1a855c0ea655ad32b",
-   "sha256": "0y59cc330348yjfw346smc3fha7r0l7zxppydllax31hmx3g4k7d"
+   "commit": "b9c6c04e33ad2f541ab116dda9e460f21034a8eb",
+   "sha256": "0h9jjag7ip4rgwr3if9rjlglsp7fiklx52685d527gkv6wqqd5a7"
   }
  },
  {
@@ -50329,11 +50429,11 @@
   "repo": "lorniu/go-translate",
   "unstable": {
    "version": [
-    20240313,
-    356
+    20240522,
+    333
    ],
-   "commit": "377375c87f64e7d069c8fc310ccfefd8771226f3",
-   "sha256": "1p5acy25ap0lpnv178xrkz2lyjppsfss8vcqarjpvd1hv40wfv5m"
+   "commit": "8cc1f9d013fd99d5bec8b862f8acb249c9104e7e",
+   "sha256": "15z86y5dvwdcds6w6vl1bv6j4rakc5a4gzawbacpb8wz25nbbigx"
   },
   "stable": {
    "version": [
@@ -50958,7 +51058,7 @@
    "version": [
     0,
     37,
-    1
+    2
    ],
    "deps": [
     "dash",
@@ -50966,8 +51066,8 @@
     "magit-popup",
     "s"
    ],
-   "commit": "bf28314d9e3287ad1674f80d8a80d2245c0159ae",
-   "sha256": "1v02h68s1fir6s7y3zjq0s8gmg5qkac637yf3mv68lglb9cwqjll"
+   "commit": "9a1b3c8fdfd0fcbe460b3546ef1fba26905e6bd0",
+   "sha256": "1bcakhih2c3ql2npq4v8bsq88dknbk8658b94hbfhy16an81l2zn"
   }
  },
  {
@@ -51121,28 +51221,52 @@
   "repo": "karthink/gptel",
   "unstable": {
    "version": [
-    20240428,
-    314
+    20240520,
+    1943
    ],
    "deps": [
     "compat",
     "transient"
    ],
-   "commit": "306fe3bd8c2933b48a871976161a7030c7e5b9f8",
-   "sha256": "0zdjzjv6znfzdrjdpkvnhbrb2dkqf9kgg4z2hgl2wmx4lkwnvcdx"
+   "commit": "3bce2caa5dc773d1b1fce53e8453d2e1ce534b8b",
+   "sha256": "1v6pvla6kv9ym3vkd37k2hkn71ycgh4av933ipjqycy1zrwb968i"
   },
   "stable": {
    "version": [
     0,
     8,
-    5
+    6
    ],
    "deps": [
     "compat",
     "transient"
    ],
-   "commit": "45aae4f721e37139a57420273b6e4252229141d0",
-   "sha256": "1w9sji73dixch1b5i420j44qb3jd0zknpypz46g33pbyhg9xwqln"
+   "commit": "cdb07d0d2bb6a4fe6d6a620aa4eec98f70fe6f78",
+   "sha256": "1k3mq0xjxdbwbhssd16yh6hfg3jpm9qqx4q4jc2igisjja75nmrv"
+  }
+ },
+ {
+  "ename": "gpx",
+  "commit": "4c77f84fd928654cee560b238c35240d1b984366",
+  "sha256": "196zdi3f1mi8dr2sigv66hlrxz9n2klgipl7izb9fqkvxv9g3xi2",
+  "fetcher": "github",
+  "repo": "mkcms/gpx-mode",
+  "unstable": {
+   "version": [
+    20240513,
+    1737
+   ],
+   "commit": "b79baf93040fb5c89e803848e8aff31331ea03b8",
+   "sha256": "0ffqzihh1c874bj53hdgjcvwhkmp2pdmcl6rmzjv1m9ijxhxnjmj"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    0
+   ],
+   "commit": "b79baf93040fb5c89e803848e8aff31331ea03b8",
+   "sha256": "0ffqzihh1c874bj53hdgjcvwhkmp2pdmcl6rmzjv1m9ijxhxnjmj"
   }
  },
  {
@@ -51923,14 +52047,14 @@
   "repo": "greduan/emacs-theme-gruvbox",
   "unstable": {
    "version": [
-    20230921,
-    120
+    20240515,
+    553
    ],
    "deps": [
     "autothemer"
    ],
-   "commit": "9ee1159acd15ee014d5643cdaa4e00e06efa6d63",
-   "sha256": "1nm0rspn7d53ymcmgvnk69rnlzcqn87m332dncwzj9d2f4mz1l6b"
+   "commit": "3388a96d8e59c120bc243c1f90c614237f6ac3b5",
+   "sha256": "0r0yqa47zlwr9bv9m84dq3vl43k1gk5hlclcg40v4wqkiiyhwbvw"
   },
   "stable": {
    "version": [
@@ -52462,11 +52586,11 @@
   "repo": "idlip/haki",
   "unstable": {
    "version": [
-    20240412,
-    1016
+    20240501,
+    1610
    ],
-   "commit": "a564a4feab9e1bd7f022128934ed55c83d120b69",
-   "sha256": "0f3mhvfmvjmkr0lncykkv95n8v5c8nygq209c4b76kwbap06lhcb"
+   "commit": "e076785ca936b723751b8957c5d5eab8dde12346",
+   "sha256": "17ypcl68d2f3m0nqma80g1mrbj50wbf4ljl02xl518y0i9cix50a"
   }
  },
  {
@@ -53279,16 +53403,16 @@
   "repo": "emacs-helm/helm",
   "unstable": {
    "version": [
-    20240425,
-    825
+    20240521,
+    1457
    ],
    "deps": [
     "helm-core",
     "popup",
     "wfnames"
    ],
-   "commit": "753563ee010e865f3f0fd9d491c2052eb1347fd8",
-   "sha256": "103pnnki9338ahgz1z2jfl5fyix19mvlsq0cvgn1pnd7h75v14r9"
+   "commit": "c65a9039b6574183aa3f3e0b647c85470c002339",
+   "sha256": "0m0b6gb393q60cha19wm0xsry6rihqyp2v6yqcrbmhjr4qbsmni6"
   },
   "stable": {
    "version": [
@@ -54172,14 +54296,14 @@
   "repo": "emacs-helm/helm",
   "unstable": {
    "version": [
-    20240411,
-    1719
+    20240518,
+    1434
    ],
    "deps": [
     "async"
    ],
-   "commit": "6ae44dba0cb72a3a6950cbe36d104db9c69dfb49",
-   "sha256": "01lqwqjgg1m7ixm160z88cv6mbacs1vxbkvzcgns0lspxckvl1b1"
+   "commit": "ba2eb552353635222f14984b8a2f4456b4ac62e2",
+   "sha256": "15nb9dd59fbzmq2b78pnb9iy1d2q6bdnq6xxsmpycqr10kbmsv1p"
   },
   "stable": {
    "version": [
@@ -58275,6 +58399,21 @@
   }
  },
  {
+  "ename": "hide-secrets",
+  "commit": "7a61ad9493fde6c950919111d14798f10bc637d6",
+  "sha256": "182az3wqbi72sz63vvjyv1niqn1bbgjxjax4hrbfpn4ls9f2sb5b",
+  "fetcher": "gitlab",
+  "repo": "ostseepinguin1/hide-secrets-el",
+  "unstable": {
+   "version": [
+    20240512,
+    1933
+   ],
+   "commit": "e774f3fdacd875707fde25e32f8760e54a440689",
+   "sha256": "14jlh6x6pp43rw4q88xfz527zaj4r4mbydxyqr9hw6m3ihhq0vq2"
+  }
+ },
+ {
   "ename": "hidepw",
   "commit": "f2ee7663bcedaffa935b8379cc77168035cb1f14",
   "sha256": "0qnvlcjldg1mcb5ilcy538sbf294glrx5g1a7vbmspdm3wby7lna",
@@ -58707,14 +58846,26 @@
   "repo": "Lindydancer/highlight2clipboard",
   "unstable": {
    "version": [
-    20151020,
-    1840
+    20240516,
+    1942
+   ],
+   "deps": [
+    "htmlize"
+   ],
+   "commit": "6564fafd09a9c676b4d393f2260a0c73daac7257",
+   "sha256": "1xi8cmf33k7vjqk8p3h1b26fsmdwimlb030sw6ifq4r7nd6bamz1"
+  },
+  "stable": {
+   "version": [
+    0,
+    0,
+    3
    ],
    "deps": [
     "htmlize"
    ],
-   "commit": "6ce58a060d9c5843ccb8c79ec2bba7858c68ac15",
-   "sha256": "06nnqry36ncqacfzd8yvc4q59bwk3vgf9a14rkpph2hk2rfvq2m6"
+   "commit": "6564fafd09a9c676b4d393f2260a0c73daac7257",
+   "sha256": "1xi8cmf33k7vjqk8p3h1b26fsmdwimlb030sw6ifq4r7nd6bamz1"
   }
  },
  {
@@ -60096,11 +60247,11 @@
   "url": "https://git.savannah.gnu.org/git/hyperbole.git",
   "unstable": {
    "version": [
-    20240420,
-    1609
+    20240519,
+    1800
    ],
-   "commit": "31c60562fc3b2c23719b2c617be8a65bc5d128ff",
-   "sha256": "18k4n5z33275p4idh3r5i1ym148lvnv4r88pqbwh2zb9wg4z1y1c"
+   "commit": "61937530ea3713b37ed34b8ad62331a507ccf8c6",
+   "sha256": "0i6h8m04njp9vwzibm2ja299lrgygw222mgknf773dys3bdnf7pm"
   }
  },
  {
@@ -60111,8 +60262,8 @@
   "repo": "ushin/hyperdrive.el",
   "unstable": {
    "version": [
-    20240424,
-    1953
+    20240522,
+    627
    ],
    "deps": [
     "compat",
@@ -60122,8 +60273,8 @@
     "taxy-magit-section",
     "transient"
    ],
-   "commit": "3d509c7a5998511c2951eedcd236e5939c8c0fc5",
-   "sha256": "0z3ybggny7b7n3fnl4kpg4fgzqh4pdn0v55lsbrbfibvszhbfwxs"
+   "commit": "f32525eea6032d3422a4419fe65d6c32eb359b8b",
+   "sha256": "0rs5ij0z82f2aiq5lrr0rkp33cxx2wb149mb2mrjczwrqm9riwbn"
   },
   "stable": {
    "version": [
@@ -61853,11 +62004,11 @@
   "repo": "jcs-elpa/indent-control",
   "unstable": {
    "version": [
-    20240303,
-    2359
+    20240512,
+    503
    ],
-   "commit": "4ede831b8680946f8e4a6cafd4f522c464160c00",
-   "sha256": "0pjd6mdhf5x9nkm2g5bqgav6ii15gs8d74kj3bigqkfv0m3q5s53"
+   "commit": "bf4863c9f7d1d5cadf47b78bebbafc5431361597",
+   "sha256": "0rkbsy5bc2kfvx4wiig5rnjw69lpi57lgcpp04810sngskima4sj"
   },
   "stable": {
    "version": [
@@ -62162,11 +62313,11 @@
   "repo": "nonsequitur/inf-ruby",
   "unstable": {
    "version": [
-    20240310,
-    1803
+    20240509,
+    143
    ],
-   "commit": "b88ff8bd5fe2e468de611b0211842634beaeb5da",
-   "sha256": "1qq5dnaj7nyhllg6kx7h2fgk8bisvn35kc4i2d4xsgpsf11293wp"
+   "commit": "1dcaa0aad2eec23582263f934005140ddf70f52c",
+   "sha256": "1rxxn0329c3xvcn931rwb2chfzxm2m9zi2zq6kvgi5bwq2p5b53q"
   },
   "stable": {
    "version": [
@@ -62471,25 +62622,26 @@
   "repo": "chaosemer/init-dir",
   "unstable": {
    "version": [
-    20240326,
-    2204
+    20240521,
+    349
    ],
    "deps": [
     "benchmark-init"
    ],
-   "commit": "5f351041b0f81bfbf81437ce1d39bbd37de9319d",
-   "sha256": "0nb8y9jyrig1217pfddbcfsdfbvqchs8fvyi0hic283c2lygycsy"
+   "commit": "fd3da1d7a4caf337eebf53de5cd6f5cadad00537",
+   "sha256": "1jpdjvkhjrnkcb12w6297hpdiw5vbnw67zby0fmsjz86rjwx08dy"
   },
   "stable": {
    "version": [
     0,
-    2
+    2,
+    1
    ],
    "deps": [
     "benchmark-init"
    ],
-   "commit": "5f351041b0f81bfbf81437ce1d39bbd37de9319d",
-   "sha256": "0nb8y9jyrig1217pfddbcfsdfbvqchs8fvyi0hic283c2lygycsy"
+   "commit": "fd3da1d7a4caf337eebf53de5cd6f5cadad00537",
+   "sha256": "1jpdjvkhjrnkcb12w6297hpdiw5vbnw67zby0fmsjz86rjwx08dy"
   }
  },
  {
@@ -63055,10 +63207,10 @@
   "unstable": {
    "version": [
     20240428,
-    218
+    852
    ],
-   "commit": "f1a7c5d464a937ec87c23a4a0bb41207eab07adf",
-   "sha256": "0ia0d3qw34l04phl75injihgi3i6m0299d1kj0wvdvm6b8ah5cnz"
+   "commit": "98a7dd345c20db85a5477272148d6fb7801ac651",
+   "sha256": "0wdyv5i5p4banp100x7y6cldbg7dvrzsyj7z8pldyi4d6iardxy2"
   }
  },
  {
@@ -63591,11 +63743,11 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20240405,
-    2019
+    20240519,
+    1636
    ],
-   "commit": "a38bc60eb78e38304d1183d98d4fc76671263ee1",
-   "sha256": "0vi26fpm6pyhi7475pgs73prrb0yw4k6nss02b7536p2pjnaxckq"
+   "commit": "6a98b006f140b588490c24c5f794aac4250bf300",
+   "sha256": "054wjara59jjqrhr7hq0h4h3f3k6gvbx6m8066s5hryvi1ij2p4y"
   },
   "stable": {
    "version": [
@@ -64531,15 +64683,15 @@
   "repo": "emacs-jabber/emacs-jabber",
   "unstable": {
    "version": [
-    20240306,
-    524
+    20240522,
+    1532
    ],
    "deps": [
     "fsm",
     "srv"
    ],
-   "commit": "633cb73633143ec093c291af94b008f456037e8b",
-   "sha256": "1agbcbqvfdh0933b1rzsnmv27kfr8ns3202bgpqhnnvpn2dmp448"
+   "commit": "02372a6673372779571b524319e08b84241e87c6",
+   "sha256": "0ps998w5z0qs676l29ag47mrrsg9k2g7pgl7fbfc0crbi2ivzj2a"
   }
  },
  {
@@ -65328,25 +65480,25 @@
   "repo": "minad/jinx",
   "unstable": {
    "version": [
-    20240415,
-    423
+    20240515,
+    1016
    ],
    "deps": [
     "compat"
    ],
-   "commit": "77cac7f240f45d6c4836e844bd68151c7f863298",
-   "sha256": "0paid82g8q7spbi4qb10vbg8izjw7347psybfpww4q0fsjjn6hhj"
+   "commit": "3c36f1eb31713869ffbdbf55971671efa4f01966",
+   "sha256": "04f9yd710rrn1v5b44jaackrnc7f6ywy4r5j5ig12gkddbx3r29i"
   },
   "stable": {
    "version": [
     1,
-    6
+    7
    ],
    "deps": [
     "compat"
    ],
-   "commit": "f4abad42cd0bdcff62ac325a644cb8faad186a4b",
-   "sha256": "0kl9jpd6a68q1s3lc74jkx0nsk66lpwg7zx61a5h0w0m410l1g1q"
+   "commit": "3c36f1eb31713869ffbdbf55971671efa4f01966",
+   "sha256": "04f9yd710rrn1v5b44jaackrnc7f6ywy4r5j5ig12gkddbx3r29i"
   }
  },
  {
@@ -65482,11 +65634,11 @@
   "repo": "Michael-Allan/Java_Mode_Tamed",
   "unstable": {
    "version": [
-    20240425,
-    1650
+    20240508,
+    951
    ],
-   "commit": "7c88ff37c2a957a5d07be7a1c878b3325b55f719",
-   "sha256": "1fkf605g0g2vp9ls3g7n4fkwy9p24iyr4k02rfwfqj2m04gzzhws"
+   "commit": "4a0bcf5a8f86e26ce76df0ea984c316e63df13f3",
+   "sha256": "11ka3hcfzh7dzk37zb7lblyq6r5k2f4dpn8c1nkiyzamchbfg4df"
   }
  },
  {
@@ -66388,11 +66540,11 @@
   "repo": "llemaitre19/jtsx",
   "unstable": {
    "version": [
-    20240418,
-    2018
+    20240519,
+    1546
    ],
-   "commit": "32dec6d5d5725a7fe2d50537e46c224349008896",
-   "sha256": "1g82cfkkv7vjsk29bfjjwjhwark1h371pzrfqnrm5sfpyn1h3nxv"
+   "commit": "7bbf02f046e375c23fe5a90eb0a9557e843eba41",
+   "sha256": "1x7w6g535la7fs05v2xil4bggif7j9f3qphc49fz9ay6q6rfsc84"
   },
   "stable": {
    "version": [
@@ -66430,11 +66582,11 @@
   "repo": "JuliaEditorSupport/julia-emacs",
   "unstable": {
    "version": [
-    20240409,
-    1316
+    20240506,
+    1205
    ],
-   "commit": "60f23fea669add4a1624573eb6383f4180f5a6c9",
-   "sha256": "0lsypckp0ghdbqbrw4m9dgq3w8bmyn15mv6iiya9f84bm6r60dn2"
+   "commit": "d360ad5285b8a0be1818fd6c2b4307c34e468c6e",
+   "sha256": "0gxj3qn4jmggb2bh7bmykb62g29m24g8k11jx481pf56qn2g3rc2"
   },
   "stable": {
    "version": [
@@ -66501,8 +66653,8 @@
   "repo": "gcv/julia-snail",
   "unstable": {
    "version": [
-    20240428,
-    522
+    20240521,
+    22
    ],
    "deps": [
     "dash",
@@ -66511,8 +66663,8 @@
     "s",
     "spinner"
    ],
-   "commit": "a63ee2a61efd6af2d6a597bfa40cc98630406a8e",
-   "sha256": "15qqhpbak60bskws5hc6k02089vyzrhivj91jykzi38jzz3vy808"
+   "commit": "f7784c50078332aeeb8e388bf5b8f13042b7406b",
+   "sha256": "0cds08nyr7px5mbna2gbmv6a82hc1my45illdgswf7k67jby46zr"
   },
   "stable": {
    "version": [
@@ -66569,25 +66721,25 @@
   "repo": "shg/julia-vterm.el",
   "unstable": {
    "version": [
-    20230815,
-    2318
+    20240514,
+    724
    ],
    "deps": [
     "vterm"
    ],
-   "commit": "6d67b618a6f2714d283095b088b12859fb663df9",
-   "sha256": "02al9s2fb9a1nf6s31szbh0pxw32rljj8fpmx9bs132c54x79ph8"
+   "commit": "2298cd42d354f069adbb7bb06b3b15222e5f54a2",
+   "sha256": "0r0anwzar8rwiwzwg637nshj59mssiipbilcc6kvxr73ffviy127"
   },
   "stable": {
    "version": [
     0,
-    22
+    25
    ],
    "deps": [
     "vterm"
    ],
-   "commit": "e4d1c28935c47429442ddfcd735cb8d8c2d8db66",
-   "sha256": "0q11f5f7j7rwzd4n1r84cfzx8cw631h4nfykjqrm5zbgkc9zmfd0"
+   "commit": "5e94f761be563db1f537ce37508ffa2cc33fc567",
+   "sha256": "01hvb5b884rv7q3mng8l71iwikzinvbwns41na30l0rqpzljcqs7"
   }
  },
  {
@@ -67126,11 +67278,11 @@
   "repo": "meritamen/emacs-kanagawa-theme",
   "unstable": {
    "version": [
-    20240424,
-    308
+    20240501,
+    38
    ],
-   "commit": "dca0ee1e2978eb82b37c777d894dc447faa70619",
-   "sha256": "0ac5as108lsc89pggda52jskf110jx1mvdir5rmdpzrl9fdkacix"
+   "commit": "3ac33b6a4c7c7ad751ec8f264aa05f135b5d953d",
+   "sha256": "0dbdv64yzhrhhzg0asxnabzhv1jhcihmkby3ilw8hgls0w0r24c0"
   }
  },
  {
@@ -67205,15 +67357,15 @@
   "repo": "ogdenwebb/emacs-kaolin-themes",
   "unstable": {
    "version": [
-    20240217,
-    2054
+    20240507,
+    1430
    ],
    "deps": [
     "autothemer",
     "cl-lib"
    ],
-   "commit": "b03749c914b1319caccce4cf96630e3fba5335f5",
-   "sha256": "15246nsiwdfy5zl5iml4qxslz8p7k9lrzdr7p6bn71afk721vz5y"
+   "commit": "ba7a003d7aa5d4681a8464f4dec6ab4e9fb271d2",
+   "sha256": "1x0hrl0klfgvm7l2lcqr15apjsy9pfqzbk54idmk7yfk6mz9pr2c"
   },
   "stable": {
    "version": [
@@ -67404,8 +67556,8 @@
   "repo": "jinnovation/kele.el",
   "unstable": {
    "version": [
-    20240415,
-    2325
+    20240428,
+    2141
    ],
    "deps": [
     "async",
@@ -67417,8 +67569,8 @@
     "s",
     "yaml"
    ],
-   "commit": "8f3c4515ae55376f49d2be338d876686a34d121d",
-   "sha256": "16c7787aspgki933h6393142hxlxz97wcnvg8l4w9c763i5fkqxr"
+   "commit": "ee667b6581113be21e7d24935cf8a431eb382432",
+   "sha256": "038zqsgbg4j7mrhw7rf61qp0bja2m675rhxk6y8bbnvkva8z24w9"
   },
   "stable": {
    "version": [
@@ -67955,28 +68107,28 @@
   "repo": "khoj-ai/khoj",
   "unstable": {
    "version": [
-    20240427,
-    1312
+    20240501,
+    1100
    ],
    "deps": [
     "dash",
     "transient"
    ],
-   "commit": "12258f02d7c526bc1c91afddbce165f78c3e8a7a",
-   "sha256": "1g863m2h3xss2aq3xqvh271rjrgzdld7p3qhglc6xz1qn6pvv41g"
+   "commit": "bc8b92a77dc40c93a5fdf6639f367d814339bbad",
+   "sha256": "195b9xnlmnlnnl84app8kqbacvlxfxr3li393p43wp5inqsajg2h"
   },
   "stable": {
    "version": [
     1,
-    11,
-    1
+    12,
+    0
    ],
    "deps": [
     "dash",
     "transient"
    ],
-   "commit": "12258f02d7c526bc1c91afddbce165f78c3e8a7a",
-   "sha256": "1g863m2h3xss2aq3xqvh271rjrgzdld7p3qhglc6xz1qn6pvv41g"
+   "commit": "bc8b92a77dc40c93a5fdf6639f367d814339bbad",
+   "sha256": "195b9xnlmnlnnl84app8kqbacvlxfxr3li393p43wp5inqsajg2h"
   }
  },
  {
@@ -68412,11 +68564,11 @@
   "repo": "bricka/emacs-kotlin-ts-mode",
   "unstable": {
    "version": [
-    20240417,
-    838
+    20240513,
+    1429
    ],
-   "commit": "a8747af6465b384941ce8f199bdfecb3d0c09812",
-   "sha256": "044i01kvpilvj6f8h4xn9a0kkpbmq724adphj51pvibv736w4k4s"
+   "commit": "786b7eacb6c10b7a4e0c0537264264f299632679",
+   "sha256": "02b854m19f86l5g2j3gc7gb2w9834fm7c6rhjkrc5blwj8i3janm"
   }
  },
  {
@@ -68840,8 +68992,8 @@
   "repo": "isamert/lab.el",
   "unstable": {
    "version": [
-    20240404,
-    736
+    20240517,
+    1837
    ],
    "deps": [
     "async-await",
@@ -68852,8 +69004,8 @@
     "request",
     "s"
    ],
-   "commit": "ca6a02c567adb562305d0887140d631e2d6f01f6",
-   "sha256": "02q2w84rpq0cl7crl6k875wj5g1gq5w1kqlr2whq3jwv1ajfcyg1"
+   "commit": "fec1d5ad4e09c89c7260dc440f2dce6692b1ec0f",
+   "sha256": "0gfkxxdqli97x81pcxj1p3w1z6q5w7sn7q636hycrj97v3rdv8br"
   },
   "stable": {
    "version": [
@@ -69133,11 +69285,11 @@
   "repo": "lassik/emacs-language-id",
   "unstable": {
    "version": [
-    20240325,
-    1223
+    20240510,
+    1342
    ],
-   "commit": "c05a566ab5c938b31873b24d698c3d9ff0948ea9",
-   "sha256": "01rhxsbsn4ilkc9z2556lmpzvnx2d2a2xzmxq3932sd55al98whg"
+   "commit": "435114f208b97e97aa1576ef1966a33d90cad01b",
+   "sha256": "1gwdiyvzm3dz1dj5l763f1v68bb15g5qfmy5b9p58695l5hi135z"
   },
   "stable": {
    "version": [
@@ -70403,11 +70555,11 @@
   "repo": "merrickluo/liberime",
   "unstable": {
    "version": [
-    20230113,
-    556
+    20240515,
+    255
    ],
-   "commit": "cc9eb9812fd6f68e78ed6a0c0a85da7a18765753",
-   "sha256": "11c2wj00wwbdxqkzl60sd77cp43rja5v8hrvhrvhg75v62kawva2"
+   "commit": "c5839f541763f661a4d46784f3f14adad28ee2b0",
+   "sha256": "1h4q0nmckfwl2cmp1kaj83ac2lzpdwq7m3r8q722zd05lvnm145v"
   },
   "stable": {
    "version": [
@@ -71347,15 +71499,15 @@
   "repo": "sulami/literate-calc-mode.el",
   "unstable": {
    "version": [
-    20240402,
-    808
+    20240513,
+    1200
    ],
    "deps": [
     "dash",
     "s"
    ],
-   "commit": "ceddadc4f130626d3430fc8c5cfff71628221a60",
-   "sha256": "1chs7kpfwjl65p0m4zlgx3lhsixlis9bg3lilmlhw65436y7nl8s"
+   "commit": "5e8ce01ff3d85ff81f366724330026d68449bc19",
+   "sha256": "1jfd2d2qzk6cprwynmk6v5409hgrgl310zv5vbgapq06j49gzriq"
   }
  },
  {
@@ -71621,11 +71773,11 @@
   "repo": "tarsius/llama",
   "unstable": {
    "version": [
-    20240415,
-    1539
+    20240520,
+    1947
    ],
-   "commit": "40d671b35e51afbc0d690f33c965d322375c4b27",
-   "sha256": "1khnl8z1hf7qrwmxikkdmxhb9fp1ngbr6x3lh2n4nrr5kinmqf3c"
+   "commit": "cea812d16129749deb524771e615a4a831604a83",
+   "sha256": "1wlc1m9w5s03w91i132yzxbd93pdfnxsf0pq56pfsl6xvrqbj82k"
   },
   "stable": {
    "version": [
@@ -71648,14 +71800,14 @@
   "repo": "kurnevsky/llama-cpp.el",
   "unstable": {
    "version": [
-    20231228,
-    2043
+    20240511,
+    1039
    ],
    "deps": [
     "dash"
    ],
-   "commit": "e876c05eca8ffadc39d3c5013c2581f1e9f8f94f",
-   "sha256": "0pxhz02k7kswv37j45rrcssc29xnk3x738p9ysvybldbix5pbq9h"
+   "commit": "5cea3698aa63921b21888f126cae4f3ebc1baa39",
+   "sha256": "05vma524dyn9q4rcvz0fpdji6p8wxjriaga6ay39qxppxg54c1v3"
   }
  },
  {
@@ -72339,8 +72491,8 @@
   "repo": "emacs-lsp/lsp-dart",
   "unstable": {
    "version": [
-    20240401,
-    1646
+    20240520,
+    1834
    ],
    "deps": [
     "dap-mode",
@@ -72352,8 +72504,8 @@
     "lsp-mode",
     "lsp-treemacs"
    ],
-   "commit": "ee476aa9bb891873943bb4f9dc4b729921c2de37",
-   "sha256": "1k5h8x4fk6n71hhi8sc5wqasfkf0887hh787n8xdfmkhxc9gids3"
+   "commit": "1f52e81c9371055ff9188117ace81f009d1c79f2",
+   "sha256": "18wvsbszdxgmjvpj6b32scg0g8lj54cm3fz725zph44brm98v391"
   },
   "stable": {
    "version": [
@@ -72546,8 +72698,8 @@
   "repo": "emacs-lsp/lsp-java",
   "unstable": {
    "version": [
-    20230922,
-    1154
+    20240501,
+    1928
    ],
    "deps": [
     "dap-mode",
@@ -72559,8 +72711,8 @@
     "request",
     "treemacs"
    ],
-   "commit": "449673da7221a30f1b1756cedcc48b9a2b52a51e",
-   "sha256": "1y1dr9nk50ji48z91gd1drfxqkq2189shria83cclm0lna45zfy1"
+   "commit": "37c95ef7e992001250d893277acfccf4af0099b4",
+   "sha256": "172mp8na5w3dc7k6rl543dar85siz15vlhqidinim8hg9c4v6xqz"
   },
   "stable": {
    "version": [
@@ -72735,8 +72887,8 @@
   "repo": "emacs-lsp/lsp-metals",
   "unstable": {
    "version": [
-    20240413,
-    851
+    20240508,
+    627
    ],
    "deps": [
     "dap-mode",
@@ -72749,8 +72901,8 @@
     "scala-mode",
     "treemacs"
    ],
-   "commit": "01060e9df33bb077ba6bb56ccfebc140aef8f8f3",
-   "sha256": "0whjz5vh9xf35nvr5an52d7qsf2ayr2pfwvr37qhz1rjg0rv2kzd"
+   "commit": "fa4072cbe7a7061cdb218b9a3619979f7facba0e",
+   "sha256": "0zwf5x80y54vdpvglnbk2rrwiabl82hiingig70z99a3707lxx3k"
   },
   "stable": {
    "version": [
@@ -72780,8 +72932,8 @@
   "repo": "emacs-lsp/lsp-mode",
   "unstable": {
    "version": [
-    20240427,
-    2141
+    20240514,
+    1430
    ],
    "deps": [
     "dash",
@@ -72792,8 +72944,8 @@
     "markdown-mode",
     "spinner"
    ],
-   "commit": "32bf5aa458f2bafb318a34bed64cb3f681aa0b51",
-   "sha256": "1a1g0b4yrwqqj8kpvmpqsjdrshk1kyhy54d9yhpfj4f4gghmay2f"
+   "commit": "62e1f68c1f2363f7ebe8f1c2762e472f3b5de46a",
+   "sha256": "17r4jg0i9df74bbphi4809l3q3mqy462syw5msf0sjv7k0f5fml0"
   },
   "stable": {
    "version": [
@@ -73205,16 +73357,16 @@
   "repo": "emacs-lsp/lsp-ui",
   "unstable": {
    "version": [
-    20240424,
-    412
+    20240514,
+    1943
    ],
    "deps": [
     "dash",
     "lsp-mode",
     "markdown-mode"
    ],
-   "commit": "a59fb5d02eaa97908a06cfc07156de73458c8ae8",
-   "sha256": "1fy172s224ddpdilqflbd3dhs3s6xb2gash6a5svw3lp92mwdnl9"
+   "commit": "00f1fecdfb41c30428734cf27e492f26f46627fb",
+   "sha256": "1zpmszary67g9wvkjrm1i7ilcmmdbbzp7liq47xii4k78y9dj55l"
   },
   "stable": {
    "version": [
@@ -73605,14 +73757,15 @@
   "repo": "emacsorphanage/macrostep",
   "unstable": {
    "version": [
-    20240328,
-    2134
+    20240513,
+    2203
    ],
    "deps": [
-    "cl-lib"
+    "cl-lib",
+    "compat"
    ],
-   "commit": "e28d0a028f702d2dbf9a33ab691c3459268ed35e",
-   "sha256": "0gw2429mgivvjjpx149m26i6yiayhs9s9g8lx5r64kccdci1xrl1"
+   "commit": "4939d88779761e8b5461b4cf73f86600172987db",
+   "sha256": "03lriwibv3r8prkg8rih8p80ykxqg9hvax88bg64mdx2jv9l4ygb"
   },
   "stable": {
    "version": [
@@ -73735,14 +73888,14 @@
   "repo": "roadrunner1776/magik",
   "unstable": {
    "version": [
-    20240409,
-    1410
+    20240521,
+    1419
    ],
    "deps": [
     "compat"
    ],
-   "commit": "7540f14d3d62856313b5cbebefcfd813784ee77b",
-   "sha256": "1rbidw6scix7wcx09wfjhnln1ar5b9f1bdj9k7mfjcvb46mmaczq"
+   "commit": "51ec2d21e4d68fc549d2022f86a882e090541ec3",
+   "sha256": "1mxpwx1n537gjhb09h8d8mnf8ra5qlcnn13260447xk7z620sh8l"
   },
   "stable": {
    "version": [
@@ -73765,8 +73918,8 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20240426,
-    2118
+    20240522,
+    204
    ],
    "deps": [
     "compat",
@@ -73777,8 +73930,8 @@
     "transient",
     "with-editor"
    ],
-   "commit": "49ba535f526266b69fcaf7442acfa59ad8473caf",
-   "sha256": "0mcy3sndpajhg95ivr8cl5jsk7pnfc4zhjwyjxsj6yqqc77rw92h"
+   "commit": "f9268a959828d0c6ab26171dd2fb1ffc55e5ae70",
+   "sha256": "1xghq21qqjb2b31i75rd7j0h4fk7242vhbq976q1hls5j7a7x2mr"
   },
   "stable": {
    "version": [
@@ -73887,6 +74040,40 @@
   }
  },
  {
+  "ename": "magit-file-icons",
+  "commit": "d3d921177674e531d53df5b6205ea6a426491186",
+  "sha256": "0qcw8mr78mc7bpyzxcix23cvk89fkd8f9ykj7qaxixgizfcmgyhj",
+  "fetcher": "github",
+  "repo": "gekoke/magit-file-icons",
+  "unstable": {
+   "version": [
+    20240520,
+    216
+   ],
+   "deps": [
+    "el-patch",
+    "magit",
+    "nerd-icons"
+   ],
+   "commit": "d85fad81e74a9b6ce9fd7ab341f265d5a181d2a8",
+   "sha256": "1q03a4zzb2nvxgm84jj3wm4067hp2n4894xmxhc98w981vli41qm"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    2
+   ],
+   "deps": [
+    "el-patch",
+    "magit",
+    "nerd-icons"
+   ],
+   "commit": "33458112ae3701a82a02a4b88dd52baef48ababe",
+   "sha256": "1whx00jp2rgad2f3zir7qmhjpspsx6zs2hk8wlkv4hlsv9s1knpa"
+  }
+ },
+ {
   "ename": "magit-filenotify",
   "commit": "ca5541d2ce3553e9ade2c1ec1c0d78103dfd0c4d",
   "sha256": "1ihk5yi6psqkccpi2bq2h70kn7k874zl7wcinjaq21lirk4z7bvn",
@@ -73955,15 +74142,15 @@
   "repo": "emacsorphanage/magit-gerrit",
   "unstable": {
    "version": [
-    20231002,
-    1538
+    20240514,
+    1139
    ],
    "deps": [
     "magit",
     "transient"
    ],
-   "commit": "9b6c476a4a5e715d68081dda45312f7e2bedd484",
-   "sha256": "0gs6zhgywjikxr1lkbbih1ayxl4i4w82vsfg0yqsj6cdbi6r109c"
+   "commit": "46fe81c76fd2d3e5e97207cd1d951f22ecb16573",
+   "sha256": "16xb13mamx0rnlsxg4xs0nc1xif59rw3xa22y7fz4897cjyrlp84"
   },
   "stable": {
    "version": [
@@ -74288,15 +74475,15 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20240426,
-    1325
+    20240508,
+    2349
    ],
    "deps": [
     "compat",
     "dash"
    ],
-   "commit": "fef45b274ecb4dc0448bd34dac26f7eaff621e59",
-   "sha256": "1mh6lj5w52id5v7bl0j5789cbg5kirz1r76g5xrby6grk3zln942"
+   "commit": "855d924969eb6231d62ab446f727c9f7ad5c4913",
+   "sha256": "0x13wwm6f93qvaqq7qlx97ahvbvgkqf2xdq7vjn6wm9h2mdkw4hh"
   },
   "stable": {
    "version": [
@@ -74428,8 +74615,8 @@
   "repo": "alphapapa/magit-todos",
   "unstable": {
    "version": [
-    20240421,
-    1131
+    20240519,
+    247
    ],
    "deps": [
     "async",
@@ -74441,8 +74628,8 @@
     "s",
     "transient"
    ],
-   "commit": "f73921e484dbae056e84080c743dffd241cb6bf3",
-   "sha256": "0axy2pnvs7n091cfvsr54a4px5vxj5pbi0lzqak3n4zpzw0vdf0r"
+   "commit": "501c8db90ab59f8b619618b9d10db2a32a113727",
+   "sha256": "19p54cnh105k06d63avbqwq8bbnk4hl5ff5vgq3lcx005qvmpc43"
   },
   "stable": {
    "version": [
@@ -75258,11 +75445,11 @@
   "repo": "jrblevin/markdown-mode",
   "unstable": {
    "version": [
-    20240318,
-    1307
+    20240501,
+    1057
    ],
-   "commit": "fd6c5508f979ab526e024a591eaec963712cb211",
-   "sha256": "15vip2y7lgypnipyabrq1qlqwg6s3365gsfij3bipxbnx2p9n1p1"
+   "commit": "0cdebc833ed9b98baf9f260ed12b1e36b0ca0e89",
+   "sha256": "09v1vkj02l58kz74rqh3vdfy75gi48pvcaz99k9i54wncy61bv5j"
   },
   "stable": {
    "version": [
@@ -75603,28 +75790,28 @@
   "repo": "martianh/mastodon.el",
   "unstable": {
    "version": [
-    20240327,
-    1353
+    20240521,
+    1721
    ],
    "deps": [
     "persist",
     "request"
    ],
-   "commit": "d54aa9aa3e4276b9519ff9123e9dc0c123d9dd3b",
-   "sha256": "096zsjlqx2cv4zq607f9n7mr60d5avhfczf3nxsa8wkjsj97qrlh"
+   "commit": "49def07b3d9b6f0718ef9402a3808ca01557245e",
+   "sha256": "158a5hqhmz1dvdg7rcrdikbsqli8gc1kwks6gvbji2qb99zcd8x6"
   },
   "stable": {
    "version": [
     1,
     0,
-    19
+    21
    ],
    "deps": [
     "persist",
     "request"
    ],
-   "commit": "d54aa9aa3e4276b9519ff9123e9dc0c123d9dd3b",
-   "sha256": "096zsjlqx2cv4zq607f9n7mr60d5avhfczf3nxsa8wkjsj97qrlh"
+   "commit": "49def07b3d9b6f0718ef9402a3808ca01557245e",
+   "sha256": "158a5hqhmz1dvdg7rcrdikbsqli8gc1kwks6gvbji2qb99zcd8x6"
   }
  },
  {
@@ -75658,16 +75845,16 @@
   "repo": "matsievskiysv/math-preview",
   "unstable": {
    "version": [
-    20230425,
-    1820
+    20240519,
+    740
    ],
    "deps": [
     "dash",
     "json",
     "s"
    ],
-   "commit": "620de35fc8cf940eba5a567767eac2288708d8cb",
-   "sha256": "0ni08900p0pbajw143iw0b7a62qiqcm9b6jy7pqgpn437vydjx1z"
+   "commit": "7c12235c7f8bb1af0e712a8bfa77f1f2635d964a",
+   "sha256": "0ia9ca9nlq7wjzwk7h1q0kw00avifmc86v0yimn04p21zv3bg45n"
   },
   "stable": {
    "version": [
@@ -75762,11 +75949,11 @@
   "url": "https://git.code.sf.net/p/matlab-emacs/src",
   "unstable": {
    "version": [
-    20240418,
-    1949
+    20240521,
+    1748
    ],
-   "commit": "005954382db3df9c41585701467cedffe48b2ff4",
-   "sha256": "018m24csl0d3p8987m7dhb2d3wjkb4r9agxfww31gaszc4bdaar5"
+   "commit": "a78b368387c85437f8de187acf0a2b1cbeeacc3f",
+   "sha256": "1aw1xm0dawppzr8vjnry6rigvxx204h1msrxjxsvnljr4xr9i40h"
   }
  },
  {
@@ -76247,11 +76434,11 @@
   "repo": "gvol/emacs-memento-mori",
   "unstable": {
    "version": [
-    20240407,
-    1417
+    20240429,
+    327
    ],
-   "commit": "7cc2e89511c1c131789737b4c9daeee0147916f0",
-   "sha256": "1chf40k3gf1gzqlcivl8ry6nwaps7b9cbkmy10pviaslwijifyzh"
+   "commit": "424dc591b3dd8fe7f2f3ddef1baa647aa2b0cc7e",
+   "sha256": "1drsc9akr48q5bxrw43fs2lqjp5cdf2nxvng0nvr5v4xvckd1a9x"
   },
   "stable": {
    "version": [
@@ -76830,11 +77017,11 @@
   "repo": "kazu-yamamoto/Mew",
   "unstable": {
    "version": [
-    20240427,
-    946
+    20240515,
+    152
    ],
-   "commit": "82c531e328ca1073e4d4115ca844ba9f0859c4a1",
-   "sha256": "0xbbdz6yac4qkz1w0ljip9g7knlpp8mhsi6y9pczww1hg05kqlcb"
+   "commit": "6eedf619d726aa11f23962e406331b7aba8ac82c",
+   "sha256": "0rp1zfrh6mdv107fz2d75cgayi18397k53dy40d6jxszbcq32x7v"
   },
   "stable": {
    "version": [
@@ -77105,6 +77292,35 @@
   }
  },
  {
+  "ename": "mindstream",
+  "commit": "0381cf3e8bfc3209686e9fd827adfbf3bcf624a5",
+  "sha256": "1ayy8bmj9nk98bpgmmskpj76b5dmdifd2qmkn88mjiq2ahkxjj17",
+  "fetcher": "github",
+  "repo": "countvajhula/mindstream",
+  "unstable": {
+   "version": [
+    20240519,
+    1715
+   ],
+   "deps": [
+    "magit"
+   ],
+   "commit": "ae8b10b077d71de5e8ad966e03527e8d55b3e18d",
+   "sha256": "17f68h5ibn3klcfj570fprx7n9q59x8wjwdbzzhry2c7g9ay94nl"
+  },
+  "stable": {
+   "version": [
+    1,
+    0
+   ],
+   "deps": [
+    "magit"
+   ],
+   "commit": "f95e7fc2c6d529533709ae63a55e8ace9287ec0b",
+   "sha256": "08m5qlfbl0ilf0z0s6n3lgmjzwc5gh650jmxgl7a6rlzgw3rrh6a"
+  }
+ },
+ {
   "ename": "minesweeper",
   "commit": "d3828ad7599d13728b5571b882344c3ada434b85",
   "sha256": "061l7xh7vjg5krz5lskj2jvrnsv2qq4bwg0qkkysmy4zp9f3m5iq",
@@ -77145,26 +77361,28 @@
   "repo": "liuyinz/mini-echo.el",
   "unstable": {
    "version": [
-    20240418,
-    1047
+    20240518,
+    849
    ],
    "deps": [
+    "dash",
     "hide-mode-line"
    ],
-   "commit": "adeb402f5e508424960b6165d596b25fd6a6d756",
-   "sha256": "0jcac2p3ml17q6fsf8jaxc0nx17jjj3z1zvcsqv0k2r53ya8k41x"
+   "commit": "4e2918225bea7fa7d232260bd0b2de48df68c6f8",
+   "sha256": "1bccmx0sd7qjfgd1p8yskw12phxc89arbiz064xk9jcl1cxaz57x"
   },
   "stable": {
    "version": [
     0,
-    8,
-    0
+    9,
+    2
    ],
    "deps": [
+    "dash",
     "hide-mode-line"
    ],
-   "commit": "9e01966d56514aa1fe9b7cc281da390ab33532d1",
-   "sha256": "0q4hvbypnjg5q1szwki2md45r5kkdxrr4zxqh57y7d53idjzhpnf"
+   "commit": "f0feae3bbd0becd79ea086d4a1b811162470b162",
+   "sha256": "1wz5ssp480zlfxdvgywxx72gkf7mldrd4gxah18ys09yycawa0hi"
   }
  },
  {
@@ -77535,6 +77753,38 @@
   }
  },
  {
+  "ename": "mise",
+  "commit": "46ca1d980230fdc13454d9011b5e6c55f047027c",
+  "sha256": "00haka75iildiq554pdq7zsn5pw88xw0glaa05dvahy3n3p5k61b",
+  "fetcher": "github",
+  "repo": "liuyinz/mise.el",
+  "unstable": {
+   "version": [
+    20240514,
+    452
+   ],
+   "deps": [
+    "dash",
+    "inheritenv"
+   ],
+   "commit": "cb19405eba3cfd679a5e3ac75c8c4c1146b16015",
+   "sha256": "0h0xkps9m1g7q21hij23rli7jq1ygzc74h8fn9am9rmj4dgy5dkg"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    0
+   ],
+   "deps": [
+    "dash",
+    "inheritenv"
+   ],
+   "commit": "e2db0d204890721e372ed89deb554d9a75385486",
+   "sha256": "02j067pyqf2xx48qg383wvhk267pj9wd6ckv1azsa20cm713bph4"
+  }
+ },
+ {
   "ename": "mistty",
   "commit": "8a66484b8aff8298222e70466f8f9b09b31bc598",
   "sha256": "1xymccwmffccf5b5a29mmhwymmllmkd4nbmxk52g7c81xrwnrcnb",
@@ -77542,11 +77792,11 @@
   "repo": "szermatt/mistty",
   "unstable": {
    "version": [
-    20231122,
-    2029
+    20240429,
+    1645
    ],
-   "commit": "d51d6d995db42377d225169ec8ad200cbbfca401",
-   "sha256": "0534s8d565y9sgqxf531xnj4lc67wsixpgg5x630rxaf5b8dwzcy"
+   "commit": "bf68d5b52d9dfae68c83340cabea2681057e82ea",
+   "sha256": "0a95xjlhb1963cqqxcikf4k31mxkbbksnfbnnmrc5zl63b9ykpww"
   },
   "stable": {
    "version": [
@@ -77864,20 +78114,20 @@
   "repo": "DCsunset/modaled",
   "unstable": {
    "version": [
-    20240330,
-    1956
+    20240511,
+    1540
    ],
-   "commit": "01ef8befac15f77f1b9129bade37e78b6bf7d612",
-   "sha256": "1nza8pff0adj6sp20wr3yb8a7jdlklwk49qwamb09pal3lidq7pf"
+   "commit": "c7259e3e91fc8de4f17b2de9c83a12e855ae7932",
+   "sha256": "1vqfz3dcwlcmla8smwwn9r3kp859d10946zgab9y2x8zzidz7702"
   },
   "stable": {
    "version": [
     0,
     8,
-    3
+    4
    ],
-   "commit": "01ef8befac15f77f1b9129bade37e78b6bf7d612",
-   "sha256": "1nza8pff0adj6sp20wr3yb8a7jdlklwk49qwamb09pal3lidq7pf"
+   "commit": "c7259e3e91fc8de4f17b2de9c83a12e855ae7932",
+   "sha256": "1vqfz3dcwlcmla8smwwn9r3kp859d10946zgab9y2x8zzidz7702"
   }
  },
  {
@@ -78139,11 +78389,11 @@
   "repo": "protesilaos/modus-themes",
   "unstable": {
    "version": [
-    20240427,
-    843
+    20240505,
+    331
    ],
-   "commit": "56bd9c8f32b4179e4207f553f8656934c0076a85",
-   "sha256": "0id7b9gl1cl2w2q921fx1gvmh9dsvll9r93k0yszn6v3hf98sjpm"
+   "commit": "d2762db19ed48bd0cbba61c41940be479760a35e",
+   "sha256": "1y8z4yfnqic9gg2nm0rqldhwkfz134zxv1x57x3jh9k04p1nblc1"
   },
   "stable": {
    "version": [
@@ -78163,11 +78413,11 @@
   "repo": "kuanyui/moe-theme.el",
   "unstable": {
    "version": [
-    20240417,
-    1111
+    20240430,
+    1601
    ],
-   "commit": "0fb1274cb29863597e627757230feedf7d90482c",
-   "sha256": "015wi8nx18705yqrkgrvk52rsb2nyv91c04wyx6imwfvfp2vh52d"
+   "commit": "6df0d99a1a2006b218282f15d84609b88478ca7a",
+   "sha256": "1rshp0n9nhnapp2glds6zrnp2l4nv93s0kxb8iqjr5n6a9x6m68y"
   },
   "stable": {
    "version": [
@@ -78501,14 +78751,14 @@
   "repo": "tarsius/moody",
   "unstable": {
    "version": [
-    20240415,
-    1545
+    20240520,
+    1715
    ],
    "deps": [
     "compat"
    ],
-   "commit": "28abaf874b87b6d6c09ef1ab63856de4ed743974",
-   "sha256": "033wg9qfw2rklinvii6dqpqcdg0agxsn2njq3ywq0xwwldhmms6p"
+   "commit": "1faf8c16073bb62ade53906eef549ed8ac79ae70",
+   "sha256": "1jbly23pr5lhgd9i6c0619v9pfrppk6614czf0wvz8ibkgdwsk2c"
   },
   "stable": {
    "version": [
@@ -79433,20 +79683,20 @@
   "repo": "mkcms/mu4e-overview",
   "unstable": {
    "version": [
-    20240330,
-    1441
+    20240521,
+    1445
    ],
-   "commit": "758ea4b3945fa377ae33e45f8213280d38e0551d",
-   "sha256": "0qdxsfsambbrb3dbch4pyjm9k59cbjlzkx9075aipdi8nl0nvygf"
+   "commit": "51327c894721680633292a43a4e610542b4eceb3",
+   "sha256": "1pxapgihcf5c8ycmqzd2gysm0v6r0pw41kbym4xdwyqr6alhz94a"
   },
   "stable": {
    "version": [
     0,
     4,
-    0
+    1
    ],
-   "commit": "758ea4b3945fa377ae33e45f8213280d38e0551d",
-   "sha256": "0qdxsfsambbrb3dbch4pyjm9k59cbjlzkx9075aipdi8nl0nvygf"
+   "commit": "11e16c36aaa14da777a068761055b57c49168f1e",
+   "sha256": "0hi2waz0bwzsq3sk6x7zdx7qn3dns82rphpnfd9r7cqyqjlmzy74"
   }
  },
  {
@@ -79555,8 +79805,8 @@
   "repo": "mihaiolteanu/mugur",
   "unstable": {
    "version": [
-    20231024,
-    755
+    20240517,
+    504
    ],
    "deps": [
     "anaphora",
@@ -79564,8 +79814,8 @@
     "dash",
     "s"
    ],
-   "commit": "9d55e6eac893abfc0a2622d6ac2a791ce5b23fbb",
-   "sha256": "1571bxz6jjdpxdcmv3aisd87pwrr46z0pljql45n9lsvs01liyr3"
+   "commit": "7fe7f6a9dd80389fcd9754e9191192e697a88882",
+   "sha256": "010jns9id9gxggxgd2d3wpjag1nf8ahqmq57a3mdmfrr1lnvvxzi"
   },
   "stable": {
    "version": [
@@ -81037,11 +81287,11 @@
   "repo": "rainstormstudio/nerd-icons.el",
   "unstable": {
    "version": [
-    20240412,
-    1831
+    20240520,
+    1050
    ],
-   "commit": "fb395120e9de33b276d16caaccaefd98d4340b92",
-   "sha256": "0iyjd18b3v730ixz5ayr72m4z8p6vv5m0nplpndl0s7a7ypdm9l9"
+   "commit": "5ed32f43f2e92ac2600d0ff823ec75e4476cc53e",
+   "sha256": "0x0zipfdm6w861kmw3jjjsc1jqxdw0ggpylvwxbgbspfngl83awj"
   },
   "stable": {
    "version": [
@@ -81512,11 +81762,11 @@
   "repo": "nickel-lang/nickel-mode",
   "unstable": {
    "version": [
-    20230707,
-    1228
+    20240514,
+    1236
    ],
-   "commit": "8b7828892341bbca789723d487546905ca443dc3",
-   "sha256": "06327va6dybljw4qvz7p30qndnwl18nblai04y689p8x4a69kgxq"
+   "commit": "71441281e66500e978e10eb44d58e33a28f55b4e",
+   "sha256": "02rnh6fjvhn5jkridax4x4fmvv74hm1d183s5g8avpjzmyisgmyc"
   }
  },
  {
@@ -81682,10 +81932,10 @@
    "version": [
     1,
     12,
-    0
+    1
    ],
-   "commit": "65d0dfcbbea6b8ca7d8a3a0f673ecb522379e43c",
-   "sha256": "0jlqqbhmzhlwfhf1axdi3qm6gd1l66s66dw9cn83h9akgvpjf0vv"
+   "commit": "2daa09ba270b0a43e1929d29b073348aa985dfaa",
+   "sha256": "00033jmh30z2vjxs40hjfnn74inlfwzn412l26wi2nzg63wnwgj5"
   }
  },
  {
@@ -81840,20 +82090,20 @@
   "repo": "nix-community/nix-ts-mode",
   "unstable": {
    "version": [
-    20231107,
-    1639
+    20240514,
+    1605
    ],
-   "commit": "2dddc6e9ca33be211675afca3896fd661fc38a0c",
-   "sha256": "1a7l7r44v1ysz63k6dzn8sqbn90yaqp36crjzl3q56j8lx5f8rih"
+   "commit": "49d890e86a4597911366208930af6457ce1d46e7",
+   "sha256": "1s2kcm8rg35cl3vgbqny0ac2l00nqj5xdpll4z0is7zbhib74ll5"
   },
   "stable": {
    "version": [
     0,
     1,
-    2
+    4
    ],
-   "commit": "670023ec3d4e2f667a387a27990b4879e06ef60b",
-   "sha256": "0rwimbq6mp3z2xhhp535ysq44rcljc8swvaxsgfr5zvidpl2xh43"
+   "commit": "49d890e86a4597911366208930af6457ce1d46e7",
+   "sha256": "1s2kcm8rg35cl3vgbqny0ac2l00nqj5xdpll4z0is7zbhib74ll5"
   }
  },
  {
@@ -83020,10 +83270,10 @@
  },
  {
   "ename": "number",
-  "commit": "49d56b297ab729695249143dd65d3c67543cfcc6",
-  "sha256": "1nwcdv5ibirxx3sqadh6mnpj40ni3wna7wnjh343mx38dk2dzncf",
+  "commit": "a84d58f0dfdf5f58205fb79d6d52d00637f443aa",
+  "sha256": "1qf0v4s8jgpk2biqhscnxvn24hwh6pd1aw9k90jmgn7rd5nb979v",
   "fetcher": "github",
-  "repo": "chrisdone/number",
+  "repo": "emacsattic/number",
   "unstable": {
    "version": [
     20170901,
@@ -83315,6 +83565,24 @@
   }
  },
  {
+  "ename": "ob-acl2",
+  "commit": "7055689bfc0c4cbacbb69d801cb30b12d5fd3f27",
+  "sha256": "1fwgry16y55xsz99pp5yxv1lbjfcpgp184kwsnm2k7bvvmnh4yqz",
+  "fetcher": "github",
+  "repo": "tani/ob-acl2",
+  "unstable": {
+   "version": [
+    20240505,
+    1844
+   ],
+   "deps": [
+    "org"
+   ],
+   "commit": "db6b274de3cd16e17b5b525c94bf3ad9cc279970",
+   "sha256": "1995n8ha605sq60dml8m0lcrgv2gqbdhd8hihgrxs2wp18y7nhqx"
+  }
+ },
+ {
   "ename": "ob-ada-spark",
   "commit": "4f04564c778f9d404f50381c895a75f22361dae3",
   "sha256": "0iyyhq8xvjs3a263xdmnba7gx8lzwgqbsqk64dcr2bcrpqiia9f8",
@@ -84087,26 +84355,27 @@
   "repo": "shg/ob-julia-vterm.el",
   "unstable": {
    "version": [
-    20230815,
-    2332
+    20240514,
+    328
    ],
    "deps": [
     "julia-vterm",
     "queue"
    ],
-   "commit": "22f8825185231654397ae31e2a586ec39f98ab6f",
-   "sha256": "1pvb602lrgrncbzqly9ga0rzxvlypysqzp2njf808jipdd9b2bja"
+   "commit": "e1aae4f54cd06f33c63a16d88df4856947f46201",
+   "sha256": "04hknkcqkfn5bfbxx9mx1naczjxnk1aalhyqvra6m7p1n832mvqm"
   },
   "stable": {
    "version": [
     0,
-    2
+    5
    ],
    "deps": [
-    "julia-vterm"
+    "julia-vterm",
+    "queue"
    ],
-   "commit": "5893d75cdb9e687b98b99b3675165f4edf0083a6",
-   "sha256": "12ya7dn7fd0szm6pi68f7h4cyb5cy56cfs43nl9f4v8v2qvlyh5y"
+   "commit": "e1aae4f54cd06f33c63a16d88df4856947f46201",
+   "sha256": "04hknkcqkfn5bfbxx9mx1naczjxnk1aalhyqvra6m7p1n832mvqm"
   }
  },
  {
@@ -85182,26 +85451,26 @@
   "repo": "oer/oer-reveal",
   "unstable": {
    "version": [
-    20240414,
-    1312
+    20240513,
+    956
    ],
    "deps": [
     "org-re-reveal"
    ],
-   "commit": "4a8000a196e663be9fec61d0e6fed27814945086",
-   "sha256": "1rcydba1si626bqdh6j8537lnivyvr201dw7dmrxvkqpk9q6v1xy"
+   "commit": "08c44d4fd212a7433ad2f863299b5c1bdd87e23f",
+   "sha256": "19c7qx8lyiysm59fnlvzgj53phs8x0k36wwyvm845h42azrhha9k"
   },
   "stable": {
    "version": [
     4,
     24,
-    3
+    7
    ],
    "deps": [
     "org-re-reveal"
    ],
-   "commit": "4a8000a196e663be9fec61d0e6fed27814945086",
-   "sha256": "1rcydba1si626bqdh6j8537lnivyvr201dw7dmrxvkqpk9q6v1xy"
+   "commit": "08c44d4fd212a7433ad2f863299b5c1bdd87e23f",
+   "sha256": "19c7qx8lyiysm59fnlvzgj53phs8x0k36wwyvm845h42azrhha9k"
   }
  },
  {
@@ -85252,16 +85521,16 @@
   "repo": "tarsius/ol-notmuch",
   "unstable": {
    "version": [
-    20240415,
-    1546
+    20240503,
+    1711
    ],
    "deps": [
     "compat",
     "notmuch",
     "org"
    ],
-   "commit": "05f3fc9ea77d32892726c94cd7a876733890da91",
-   "sha256": "1jbwi4vpvcl7zzbx5rjmpmxp1mh1lxbprgxryqmj5mync0gx3a0k"
+   "commit": "f176ad73496ee086688ec5eeafcfff9372a833bc",
+   "sha256": "0gychpz53nhrrbs9w67400hbpyxp3q5jmhpj84fnqhnmf9q2dmnz"
   },
   "stable": {
    "version": [
@@ -85358,11 +85627,11 @@
   "repo": "rnkn/olivetti",
   "unstable": {
    "version": [
-    20231104,
-    538
+    20240519,
+    914
    ],
-   "commit": "1f8b3d5cb155f7497083001037a09a972befab21",
-   "sha256": "1v5f0glp0ggmmzzhaxlijc58w4ip1nlik9lx7rcl6symsqcmqmq1"
+   "commit": "5a7bd951d6135ff7ee3b45086308c14abce0936f",
+   "sha256": "1hww0900rfvfj43bn86ybzyc745js1xabp2whqd6dxajiklynky1"
   },
   "stable": {
    "version": [
@@ -85970,20 +86239,20 @@
   "repo": "danielfleischer/opensub",
   "unstable": {
    "version": [
-    20240405,
-    750
+    20240501,
+    1946
    ],
-   "commit": "2e3d55fd1ebc909caa81b06f3323d123ec557d03",
-   "sha256": "1bw3sp5i9zanrkgkwd69rc11ay3pmk5x42ifgyvg08ql7zlghxx2"
+   "commit": "22cc8ef1e119c3cc5f605ca5be4cf680745c503a",
+   "sha256": "1v7cn4j43xzdwgpn9103bv057n5pmd9yrdvciv3lwz85dqimlp9a"
   },
   "stable": {
    "version": [
     0,
-    2,
+    3,
     0
    ],
-   "commit": "2e3d55fd1ebc909caa81b06f3323d123ec557d03",
-   "sha256": "1bw3sp5i9zanrkgkwd69rc11ay3pmk5x42ifgyvg08ql7zlghxx2"
+   "commit": "22cc8ef1e119c3cc5f605ca5be4cf680745c503a",
+   "sha256": "1v7cn4j43xzdwgpn9103bv057n5pmd9yrdvciv3lwz85dqimlp9a"
   }
  },
  {
@@ -86237,26 +86506,26 @@
   "repo": "rksm/org-ai",
   "unstable": {
    "version": [
-    20240103,
-    235
+    20240517,
+    1114
    ],
    "deps": [
     "websocket"
    ],
-   "commit": "329bebaf90f013a54449806e6e65f2fab04cee1f",
-   "sha256": "104w41syib8dyysf4k551yrrw0s3cfn1w9dk9336zf2cz9n33svx"
+   "commit": "fdcff489ef11bbc4b54c87b34a97bcc02f3994d4",
+   "sha256": "1j6rr8kn10j9wxqwhs4yd9k4fzjf2rz545if23xwqlg6ca39l16x"
   },
   "stable": {
    "version": [
     0,
     4,
-    3
+    7
    ],
    "deps": [
     "websocket"
    ],
-   "commit": "329bebaf90f013a54449806e6e65f2fab04cee1f",
-   "sha256": "104w41syib8dyysf4k551yrrw0s3cfn1w9dk9336zf2cz9n33svx"
+   "commit": "44e1298fd1b6ca9466f13ab6aadb08be6bde0b12",
+   "sha256": "0bag3ysg94l8dbvn7qnpyv2cd9f164aipmvkmxpvrgw4xl41lcqw"
   }
  },
  {
@@ -86629,6 +86898,29 @@
   }
  },
  {
+  "ename": "org-bookmarks",
+  "commit": "f5f6d68cdd49cea0f9baa7457a945df4ca530a8f",
+  "sha256": "1781jkbq16bxgjf86gnaprdpxrmzcqm6b2dc2nza7ycg300md7sg",
+  "fetcher": "git",
+  "url": "https://repo.or.cz/org-bookmarks.git",
+  "unstable": {
+   "version": [
+    20240520,
+    16
+   ],
+   "commit": "774b2cad8b77920e5ea2089d7dd11c8ccab4a471",
+   "sha256": "0z2703qjwbvivpqxqdxjb7rzv3yrcxvzksrpm768wdazvrk7gq9b"
+  },
+  "stable": {
+   "version": [
+    1,
+    1
+   ],
+   "commit": "cdd57bf2aee9a26883312a2c5e48701e4b60802f",
+   "sha256": "04ydqa930b4xkk67i1ql59man08pc9y6l3nx3bpsi6va2djh0zjz"
+  }
+ },
+ {
   "ename": "org-bookmarks-extractor",
   "commit": "75eb7d9f514db21c776f90ac856ea747b1060036",
   "sha256": "1bzwmqm23h8vsp3bskzwg9hzpvqbs4lznqs3wyn9zqxsv9h80fb5",
@@ -87079,14 +87371,14 @@
   "url": "https://repo.or.cz/org-contacts.git",
   "unstable": {
    "version": [
-    20240410,
-    1128
+    20240521,
+    1144
    ],
    "deps": [
     "org"
    ],
-   "commit": "0ff9a6dae6c1b67f0da0c63bc75b8c1063eac85d",
-   "sha256": "00ds6zyraf2nzj73mr3ncq2p9dn1b39cddqwj0fsglk3hlwg7d87"
+   "commit": "722bc2ec91ca66a33f6b57cd02010f4fdbf542a9",
+   "sha256": "0750kckr7qfwnz5c3vr0s0d4nnfx3dshpgj19wh9yijq92v6q6mf"
   }
  },
  {
@@ -88064,16 +88356,16 @@
   "repo": "beacoder/org-ivy-search",
   "unstable": {
    "version": [
-    20231213,
-    857
+    20240430,
+    1713
    ],
    "deps": [
     "beacon",
     "ivy",
     "org"
    ],
-   "commit": "aeff31203c4c407d3f921124b6798ffd04772a11",
-   "sha256": "0rdbka4c0vfnpcvy1s08pk7qk4g9q651wlfhqqv5fmzm7gm9ylrq"
+   "commit": "2ec41a54f3849e783cfb16eddcfd310097ed6d5e",
+   "sha256": "08y2hzx5444cf16q44hyb53zna0yklp7jxjrj63cqvlyjgxx37pz"
   }
  },
  {
@@ -88227,30 +88519,29 @@
   "repo": "gizmomogwai/org-kanban",
   "unstable": {
    "version": [
-    20220723,
-    1216
+    20240430,
+    944
    ],
    "deps": [
     "dash",
-    "org",
     "s"
    ],
-   "commit": "e78deb03880ae89d6bceae6563ef1383526233a1",
-   "sha256": "006y8glnd3h5nmcb0fdq650xnknhi5n74v7adk1maf26r8rpc6vy"
+   "commit": "e316be6a4f64c4869b911d2cbdc4673a0e398a5f",
+   "sha256": "10hczqx620vhf93y61rf4hliqpasrw3r12sxsh6z03x2zv6jhl0s"
   },
   "stable": {
    "version": [
     0,
     6,
-    5
+    6
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "e78deb03880ae89d6bceae6563ef1383526233a1",
-   "sha256": "006y8glnd3h5nmcb0fdq650xnknhi5n74v7adk1maf26r8rpc6vy"
+   "commit": "83d5a657d4c190c62663c9b2357105002795b2e3",
+   "sha256": "1ma1grcwjfkps3chs1f0md33hkkl4bj7s9apws61anr2yfcj5j7k"
   }
  },
  {
@@ -88584,14 +88875,14 @@
   "repo": "minad/org-modern",
   "unstable": {
    "version": [
-    20240428,
-    741
+    20240515,
+    1932
    ],
    "deps": [
     "compat"
    ],
-   "commit": "a06443c1d0251decada41a3bdca30f712cf9a96e",
-   "sha256": "18q7xab693ql68vlpxbn066pn7yshrmmqi6m0r2v4193mhlffflr"
+   "commit": "ea829ce4b3ac035808d411b1a088e0947d75f554",
+   "sha256": "1igv0ph5nk0b6bav5fndgl5jrnf20hml0vkx81ia1amhv7isbiax"
   },
   "stable": {
    "version": [
@@ -88659,11 +88950,11 @@
   "repo": "unhammer/org-mru-clock",
   "unstable": {
    "version": [
-    20230704,
-    850
+    20240522,
+    826
    ],
-   "commit": "66fe744df9100efc4ec68089f7d0ce56a0d38b8b",
-   "sha256": "03xb95qxsr86xv3g0x36dlrm5sidd9fhnfxawjiqkj02bpp9by1n"
+   "commit": "198beb2089ea5e457dd13e8ac64d775eeff8fd89",
+   "sha256": "06v5hjbj3ikch68wnqqcf5h3ihjp5ki5p8z58ql5v5rl3yrgr5pq"
   },
   "stable": {
    "version": [
@@ -88837,15 +89128,15 @@
   "repo": "org-noter/org-noter",
   "unstable": {
    "version": [
-    20240207,
-    2329
+    20240509,
+    1756
    ],
    "deps": [
     "cl-lib",
     "org"
    ],
-   "commit": "9e4f57957b8f54db20a4e13bf8d6b32e004ab3e8",
-   "sha256": "13i6xq1rq2dz9c41h97c69fziqvvjjw8nzh45qc35fyc53zqdphl"
+   "commit": "68646b685a0d8c02419234922a9e2d885d6419df",
+   "sha256": "17kgy2b89cc0v3q49pgrp6x46f2908v6vscxg4pczf6zc83rmwzp"
   }
  },
  {
@@ -89469,15 +89760,15 @@
   "repo": "oer/org-re-reveal",
   "unstable": {
    "version": [
-    20240421,
-    716
+    20240430,
+    1155
    ],
    "deps": [
     "htmlize",
     "org"
    ],
-   "commit": "81cf9dfd3be4480bbaa6d0b6452ea38e8d4e45c0",
-   "sha256": "1qbp198xg8pkd9zdvapq8bdsxilgqqync8m3r1csg8nz8lbpkk1b"
+   "commit": "ceb5420fd5200c3b4165ffc71360d5388dba7d29",
+   "sha256": "1ibdcjma6km680ckygd55plwjn5aagf1bfw1sa4374715k4r7722"
   },
   "stable": {
    "version": [
@@ -89648,8 +89939,8 @@
   "repo": "jkitchin/org-ref",
   "unstable": {
    "version": [
-    20240426,
-    1644
+    20240509,
+    1211
    ],
    "deps": [
     "avy",
@@ -89665,8 +89956,8 @@
     "request",
     "s"
    ],
-   "commit": "feaf7ea25cefaa347e6d593bf3a56064b92f16d6",
-   "sha256": "0ksyrc3wcbw965mpg6avd2qawksbz745lyqh15hlsmx70q0rvs02"
+   "commit": "e435bc60228b985806ea7ea0856ceef1e5262c83",
+   "sha256": "1d13p33aypa3jip4xs5lx6vsimv7xg0m766nm35xapbmjjfihjkv"
   },
   "stable": {
    "version": [
@@ -89882,8 +90173,8 @@
   "repo": "ahmed-shariff/org-roam-ql",
   "unstable": {
    "version": [
-    20240226,
-    1311
+    20240503,
+    1845
    ],
    "deps": [
     "magit-section",
@@ -89892,13 +90183,13 @@
     "s",
     "transient"
    ],
-   "commit": "2bd7c59ce1216b5d76e2a067be2f25807cd4d831",
-   "sha256": "05cjwqqsflw42mgz4ca1l73z35jwv3y1nlba4spwbsmp3p2nigls"
+   "commit": "f628fef081394f159f196f4350132aecb3edb8cc",
+   "sha256": "1ssxvy6y79f035whk9b8jg1vqsy6vymgq9yrzbxv06g5vsggvlh5"
   },
   "stable": {
    "version": [
     0,
-    1
+    2
    ],
    "deps": [
     "magit-section",
@@ -89907,8 +90198,8 @@
     "s",
     "transient"
    ],
-   "commit": "b45260649453779c87688f5dae4041a338c53744",
-   "sha256": "12bdadwwj69bbv676jb706ik9slp7rwb5mhrbsl0plmwq9mv6ii6"
+   "commit": "f628fef081394f159f196f4350132aecb3edb8cc",
+   "sha256": "1ssxvy6y79f035whk9b8jg1vqsy6vymgq9yrzbxv06g5vsggvlh5"
   }
  },
  {
@@ -89919,8 +90210,8 @@
   "repo": "ahmed-shariff/org-roam-ql",
   "unstable": {
    "version": [
-    20230902,
-    613
+    20240503,
+    1845
    ],
    "deps": [
     "org-ql",
@@ -89929,13 +90220,13 @@
     "s",
     "transient"
    ],
-   "commit": "31b7de04430e2e989564cc58d82c2b92f2383ee4",
-   "sha256": "1wj6ark2a4lk2f95y6d7hf3m8calm98ws3mvdm6x459rnfmgx78a"
+   "commit": "f628fef081394f159f196f4350132aecb3edb8cc",
+   "sha256": "1ssxvy6y79f035whk9b8jg1vqsy6vymgq9yrzbxv06g5vsggvlh5"
   },
   "stable": {
    "version": [
     0,
-    1
+    2
    ],
    "deps": [
     "org-ql",
@@ -89944,8 +90235,8 @@
     "s",
     "transient"
    ],
-   "commit": "b45260649453779c87688f5dae4041a338c53744",
-   "sha256": "12bdadwwj69bbv676jb706ik9slp7rwb5mhrbsl0plmwq9mv6ii6"
+   "commit": "f628fef081394f159f196f4350132aecb3edb8cc",
+   "sha256": "1ssxvy6y79f035whk9b8jg1vqsy6vymgq9yrzbxv06g5vsggvlh5"
   }
  },
  {
@@ -89994,11 +90285,11 @@
   "repo": "LionyxML/ros",
   "unstable": {
    "version": [
-    20220320,
-    1705
+    20240512,
+    452
    ],
-   "commit": "70e0f33ee027ca1dce68351ad14a9e47a452fc17",
-   "sha256": "0qjfb2fllzkh1d0jprxdsvg6fcrrhc7wc2lg0kffp5vwmfv7m3db"
+   "commit": "50e16f5031d281458bd574f07aad16c0d1d18663",
+   "sha256": "0i84ik1rwmp77575vk6kq9cmv0cfh9iy43wcmcv5zgvyw57878kl"
   }
  },
  {
@@ -91205,6 +91496,40 @@
   }
  },
  {
+  "ename": "org-web-track",
+  "commit": "25771b652e4d2e73dfe3c50fec31c1f606855692",
+  "sha256": "0h44zagzkr1d857im39q6yn9pxcqc57kkkagn33smxp6xl0hv5gh",
+  "fetcher": "github",
+  "repo": "p-snow/org-web-track",
+  "unstable": {
+   "version": [
+    20240424,
+    756
+   ],
+   "deps": [
+    "enlive",
+    "request"
+   ],
+   "commit": "92e97112aa63cbe14f7727b157eb3c11239bf86c",
+   "sha256": "1ni3l38zh2lzr2ri7vh6khp9c6fn4hafgc6234y707ysniz9dryx"
+  },
+  "stable": {
+   "version": [
+    0,
+    0,
+    1
+   ],
+   "deps": [
+    "enlive",
+    "org",
+    "org-agenda",
+    "request"
+   ],
+   "commit": "dab6a42982ad290564b09d2c1c3dbe3c63295964",
+   "sha256": "1v6zj6hkhn5xjq318vs5yhsdg6mgaw4qjd9fgi2fps7ry79drzf3"
+  }
+ },
+ {
   "ename": "org-wild-notifier",
   "commit": "114552a24f73f13b253e3db4885039b680f6ef33",
   "sha256": "1lmpa614jnkpmfg3m1d2wjn9w0zig3gwd02n3dyjn23n71fiyhkp",
@@ -91763,11 +92088,11 @@
   "repo": "Artawower/orgnote.el",
   "unstable": {
    "version": [
-    20231211,
-    2104
+    20240516,
+    1842
    ],
-   "commit": "0919f9fd05b83870b8a7073eb94f77199e681241",
-   "sha256": "1p23qas9kdycp0l634a74a6h039ccg6f6maqqdi49kp9mwlsd1p9"
+   "commit": "0b6ab72bede2fa757758016ae69db2cc8332fa2d",
+   "sha256": "0g05x2ns54c4vyx1rxspi8x7b1q5z8cib4k7qlm5wnbblccmbvk3"
   },
   "stable": {
    "version": [
@@ -93783,14 +94108,14 @@
   "repo": "purcell/package-lint",
   "unstable": {
    "version": [
-    20240330,
-    1458
+    20240507,
+    1722
    ],
    "deps": [
     "let-alist"
    ],
-   "commit": "17e4ab20dd3e36fa540007b4f4047170c23bdb10",
-   "sha256": "1xr7sq7pvvdw9prf2vds048s5s7fq1s0cxs21sxdc54sszy17nsg"
+   "commit": "cb8b0ddaa14cafe9e4ab9a81b2ad47319fd54f27",
+   "sha256": "0rq1205jnm6rf1zgsccfbf649qdzrlf8rh21qszwb367q9vawfm9"
   },
   "stable": {
    "version": [
@@ -94495,20 +94820,26 @@
   "repo": "justinbarclay/parinfer-rust-mode",
   "unstable": {
    "version": [
-    20240419,
-    415
+    20240506,
+    816
    ],
-   "commit": "823188f3d8d1f00693c3d1d754e58ad95ad0a8dd",
-   "sha256": "0cfn4na6xrapc096yyqs0kw8ni7ls49fds9k92ahlr67919m437v"
+   "deps": [
+    "track-changes"
+   ],
+   "commit": "d3bfb2745cc0858e2741dc2a2f00a86f456656ec",
+   "sha256": "0q60hj9300wiz1kr5x1r3zqhfk97ndyzj2ks49y1r5klmp9w5l9a"
   },
   "stable": {
    "version": [
     0,
-    8,
-    6
+    9,
+    0
+   ],
+   "deps": [
+    "track-changes"
    ],
-   "commit": "39f588e3f58ef1a8a301c031f831b8f74fbb3ec1",
-   "sha256": "1pr4dqzawgqid2aws31zxnlf3363bgnj7djav324b5q2xic5qfy7"
+   "commit": "d3bfb2745cc0858e2741dc2a2f00a86f456656ec",
+   "sha256": "0q60hj9300wiz1kr5x1r3zqhfk97ndyzj2ks49y1r5klmp9w5l9a"
   }
  },
  {
@@ -95395,15 +95726,15 @@
   "repo": "vedang/pdf-tools",
   "unstable": {
    "version": [
-    20240411,
-    1703
+    20240429,
+    407
    ],
    "deps": [
     "let-alist",
     "tablist"
    ],
-   "commit": "94e9f20a78f64a83daf641891923681a52d03919",
-   "sha256": "0gz20v97aaf7mny029xwypnagy6cm20hh4slcsfhcd0s9dvdqfsl"
+   "commit": "30b50544e55b8dbf683c2d932d5c33ac73323a16",
+   "sha256": "1ci9g8aj77a34pgp21d768pglfw1h0dcw68d61xxlzwrrclzfhgx"
   },
   "stable": {
    "version": [
@@ -95427,15 +95758,15 @@
   "repo": "kimim/pdf-view-pagemark",
   "unstable": {
    "version": [
-    20230901,
-    2245
+    20240518,
+    626
    ],
    "deps": [
     "pdf-tools",
     "posframe"
    ],
-   "commit": "5a044bead5855c5fd46a691fee01dc931c959cab",
-   "sha256": "1miwmnrijkmzjrfnigag3dvyp68h8d2516zp1xsp368n392y1gc2"
+   "commit": "a746cf8b86d030ebfc61bb2ff10c0e16b5d195c6",
+   "sha256": "12srnrkscf840g447mdc487ds061rhwv26rd2w9mj57mgxndqxzm"
   }
  },
  {
@@ -95623,11 +95954,11 @@
   "repo": "mpwang/perfect-margin",
   "unstable": {
    "version": [
-    20240111,
-    1158
+    20240512,
+    1120
    ],
-   "commit": "bd15823219c93261536966b4dc65c1ae45a404cf",
-   "sha256": "1z1f9fkzaryqfrgszjd2s16xi2s9mlzdpl9nsb7c049n8xh0611i"
+   "commit": "d2973b0dc44b086353a2920a66fec0fcc1b3b60a",
+   "sha256": "15m60851pzfm4kiql0w1l7h8y5cyhcxmfzan86wswcxhssyi7673"
   }
  },
  {
@@ -96083,19 +96414,25 @@
   "repo": "emarsden/pg-el",
   "unstable": {
    "version": [
-    20240414,
-    1912
+    20240520,
+    1322
    ],
-   "commit": "4b71a337fedf16678e546fa8d1df0ea496762f40",
-   "sha256": "0m1pcabz5mxxxsk0ixw8388q9fkbydkj64mnzn371a9jxdl16b0v"
+   "deps": [
+    "peg"
+   ],
+   "commit": "0f20a0051ab898ea53903284c47a4703555380ca",
+   "sha256": "0ynv154yhb878aqcjg1fv7zfvfrp839n8ys4wqp7gqhdqdwrf68h"
   },
   "stable": {
    "version": [
     0,
-    32
+    34
    ],
-   "commit": "4b71a337fedf16678e546fa8d1df0ea496762f40",
-   "sha256": "0m1pcabz5mxxxsk0ixw8388q9fkbydkj64mnzn371a9jxdl16b0v"
+   "deps": [
+    "peg"
+   ],
+   "commit": "0f20a0051ab898ea53903284c47a4703555380ca",
+   "sha256": "0ynv154yhb878aqcjg1fv7zfvfrp839n8ys4wqp7gqhdqdwrf68h"
   }
  },
  {
@@ -97260,6 +97597,30 @@
   }
  },
  {
+  "ename": "pkl-mode",
+  "commit": "0380195d1ed91de7aad8b1d0620d978eac43e47f",
+  "sha256": "1ffm7p4y353wpfv62zj9rc8n0qgcivm0nivn9qsn138af32hkhh2",
+  "fetcher": "github",
+  "repo": "sin-ack/pkl-mode",
+  "unstable": {
+   "version": [
+    20240422,
+    1529
+   ],
+   "commit": "c57fe374a9c57eee6432d0b449e410ab8dc40a89",
+   "sha256": "0wmaydx4lvanqr27i1bs4lxhxviyvwf9fzih8hra1qm21n54bw11"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    3
+   ],
+   "commit": "c57fe374a9c57eee6432d0b449e410ab8dc40a89",
+   "sha256": "0wmaydx4lvanqr27i1bs4lxhxviyvwf9fzih8hra1qm21n54bw11"
+  }
+ },
+ {
   "ename": "plain-org-wiki",
   "commit": "6b515386c3969b8d79e14b506bc0d9e1ec3097c4",
   "sha256": "0m0mm0ki92561axm89mwc6vcx9rwdb7ai9hlvgnhf40k94s97lz6",
@@ -98045,32 +98406,34 @@
   "repo": "mavit/poly-ansible",
   "unstable": {
    "version": [
-    20240418,
-    1123
+    20240520,
+    1500
    ],
    "deps": [
     "ansible",
     "ansible-doc",
     "jinja2-mode",
-    "polymode"
+    "polymode",
+    "yaml-mode"
    ],
-   "commit": "5c4423671c051db26a48de72773abdf2395bb6aa",
-   "sha256": "0fmbxhn8cbfdad37m1jssm1jblia0b4fzdv89lrz0k5wqyzlkz4g"
+   "commit": "187ad18b7c03eb2b286b4d49eb36572bb7847d57",
+   "sha256": "0980z444419pk7xgic6g5vvi30yibxfimd0rp0zznrshmc9xxra8"
   },
   "stable": {
    "version": [
     0,
     4,
-    0
+    1
    ],
    "deps": [
     "ansible",
     "ansible-doc",
     "jinja2-mode",
-    "polymode"
+    "polymode",
+    "yaml-mode"
    ],
-   "commit": "5c4423671c051db26a48de72773abdf2395bb6aa",
-   "sha256": "0fmbxhn8cbfdad37m1jssm1jblia0b4fzdv89lrz0k5wqyzlkz4g"
+   "commit": "187ad18b7c03eb2b286b4d49eb36572bb7847d57",
+   "sha256": "0980z444419pk7xgic6g5vvi30yibxfimd0rp0zznrshmc9xxra8"
   }
  },
  {
@@ -98826,11 +99189,11 @@
   "repo": "tumashu/posframe",
   "unstable": {
    "version": [
-    20240426,
-    604
+    20240507,
+    148
    ],
-   "commit": "468ac1ab50d7e0feae2c06f12596bbc169f2abe4",
-   "sha256": "10q76iggl3hpdhwzm48kadn129i2567fjnpxid8kxmqffk712k8y"
+   "commit": "f4e9e509ba96ceb3c2b2b054957291607fb52651",
+   "sha256": "0hz7jgpsg3adgwg2qqgd9vy1mhbkr3c9rsy0zx5kmn42npdcf4az"
   },
   "stable": {
    "version": [
@@ -99820,6 +100183,30 @@
   }
  },
  {
+  "ename": "project-butler",
+  "commit": "bb78b814f378e58997f2032fc79a41dfb1442a2c",
+  "sha256": "0jdk3fax67f1prly0g8s3kb4fg1hjqyjcajhalzg1x2cxvwwbz70",
+  "fetcher": "codeberg",
+  "repo": "jabbo/project-butler",
+  "unstable": {
+   "version": [
+    20240520,
+    943
+   ],
+   "commit": "1cf28f5e5e584bac2411662405c96f13d43179f9",
+   "sha256": "129m9mhpfsghk5gwvqjn7zblncj3wd2n3b46mcj0j20qqbkmbblr"
+  },
+  "stable": {
+   "version": [
+    0,
+    3,
+    0
+   ],
+   "commit": "1cf28f5e5e584bac2411662405c96f13d43179f9",
+   "sha256": "129m9mhpfsghk5gwvqjn7zblncj3wd2n3b46mcj0j20qqbkmbblr"
+  }
+ },
+ {
   "ename": "project-explorer",
   "commit": "c2e5d686b8a18c7a17965ff6c5af8f5817b7ab31",
   "sha256": "076lzmyi1n7yrgdgyh9qinq271qk6k64x0msbzarihr3p4psrn8m",
@@ -100291,8 +100678,8 @@
   "repo": "mohkale/projection",
   "unstable": {
    "version": [
-    20240421,
-    1410
+    20240517,
+    2023
    ],
    "deps": [
     "compat",
@@ -100300,8 +100687,8 @@
     "project",
     "s"
    ],
-   "commit": "d0aa74fbe08d7e28b95a0d2006399565f51655ef",
-   "sha256": "1j02vy7s10c8ddhfclj66xfnk34rb5paf2hzjm9lnpn4krif64wm"
+   "commit": "c6df3b19204113642ee14a87598d65c03688f0fa",
+   "sha256": "1f78nq135waqgkr5z9m5gxhplb2spbkap0diykb6h9j8l6g8xij7"
   }
  },
  {
@@ -100331,15 +100718,15 @@
   "repo": "mohkale/projection",
   "unstable": {
    "version": [
-    20240316,
-    2222
+    20240517,
+    2021
    ],
    "deps": [
     "compile-multi",
     "projection"
    ],
-   "commit": "dc489480a6e4be82e570266202144730b3ddde5f",
-   "sha256": "198jlknm3za6n1wp1ns5vbw5554xfrdqdaayhrgqr3f8cil2y0vh"
+   "commit": "68f2387219f2627506f5e345e9be04bd11aa0e65",
+   "sha256": "0785a47xirwk7q2159gmlibg3rkl54z211xykr0bld2jj73g0jyc"
   }
  },
  {
@@ -100525,11 +100912,11 @@
   "repo": "ProofGeneral/PG",
   "unstable": {
    "version": [
-    20240425,
-    939
+    20240513,
+    720
    ],
-   "commit": "6cace58d0d632c4eafa18959319a484fb5c07238",
-   "sha256": "128ixkmfjs4g83r00fvj7wp0azgmmabkhhhv8mqqm7zbj9rii611"
+   "commit": "55e133360c1b66b834f9ae2c4478d2c81b2d33ef",
+   "sha256": "00r3zyrc08j5a5np0xc6jkzvlpjxnax7dg2br8h85hk3fml2gihf"
   },
   "stable": {
    "version": [
@@ -100810,15 +101197,15 @@
   "repo": "thierryvolpiatto/psession",
   "unstable": {
    "version": [
-    20231117,
-    1648
+    20240515,
+    1449
    ],
    "deps": [
     "async",
     "cl-lib"
    ],
-   "commit": "5fdca68ca4bf4fafaf3aa438401ec611bc430782",
-   "sha256": "1696cqk9p06n9b8jqn37qb5y15slvfljsp5yxvahmscfcfnjfqs3"
+   "commit": "5a5b11df882339b4474ab0cc6dd847aaab6a84b6",
+   "sha256": "1cgx1k9vgq8avpjr1ig87wf6mv042504bf770x46dba3zswwy98z"
   },
   "stable": {
    "version": [
@@ -101650,28 +102037,28 @@
   "repo": "tumashu/pyim",
   "unstable": {
    "version": [
-    20230908,
-    39
+    20240508,
+    256
    ],
    "deps": [
     "async",
     "xr"
    ],
-   "commit": "64067b20ce0e964b1342b378180f24a1d4503797",
-   "sha256": "0fggdwxrvnc8aqyp9zibzs53sdhqhamkv55chf8qklqcg19ghn6a"
+   "commit": "f22c20f2e6af55b3a758defabe4c842fb94cde2b",
+   "sha256": "0bnlz5bja6gg619sldlwqzdy1pccmcsxkk4g91njp7d8670xc241"
   },
   "stable": {
    "version": [
     5,
     3,
-    3
+    4
    ],
    "deps": [
     "async",
     "xr"
    ],
-   "commit": "64067b20ce0e964b1342b378180f24a1d4503797",
-   "sha256": "0fggdwxrvnc8aqyp9zibzs53sdhqhamkv55chf8qklqcg19ghn6a"
+   "commit": "f22c20f2e6af55b3a758defabe4c842fb94cde2b",
+   "sha256": "0bnlz5bja6gg619sldlwqzdy1pccmcsxkk4g91njp7d8670xc241"
   }
  },
  {
@@ -101965,15 +102352,15 @@
   "repo": "wbolster/emacs-python-black",
   "unstable": {
    "version": [
-    20230313,
-    1037
+    20240520,
+    729
    ],
    "deps": [
     "dash",
     "reformatter"
    ],
-   "commit": "0714b0007c0b620f88ed9cc91035caea43f3d75f",
-   "sha256": "17jaw7pcgb27sq1aklq0hqb827152vvmbxdxrrgwsfag6ccw75pr"
+   "commit": "4da1519345b3d5c513d82ef0d39536dd9c626d42",
+   "sha256": "0haxkpjggf91ahy6zl4qzpv7l9chi9yd0c0a054y3kjpvn64axqd"
   },
   "stable": {
    "version": [
@@ -102012,16 +102399,16 @@
   "repo": "wbolster/emacs-python-coverage",
   "unstable": {
    "version": [
-    20211224,
-    1420
+    20240509,
+    856
    ],
    "deps": [
     "dash",
     "s",
     "xml+"
    ],
-   "commit": "a341615af03dbe3ce0ac9b63cf43dc01c1ae5ebe",
-   "sha256": "1k5air9sgg95jl949lwf9hz8i4ivy646mnm4pc37wsxkh4g46wqh"
+   "commit": "7f130066460ab8a58c2667d9f76a3e2c168e0759",
+   "sha256": "0dxc09422nqpwdcvh90j41631198dxsxc6np1hhs5m6qf3fjsx1m"
   }
  },
  {
@@ -102175,11 +102562,11 @@
   "repo": "python-mode-devs/python-mode",
   "unstable": {
    "version": [
-    20231218,
-    645
+    20240520,
+    1744
    ],
-   "commit": "9678f77d0d0ab3d672374c4457b5a02ce49cd206",
-   "sha256": "10k1n6pmhy7ia60h1i2c4mzavlam8hqymq22w6r372pasfdp0x89"
+   "commit": "5279a81ecaa9fc535915c58336c96baf3f2aa8b1",
+   "sha256": "0vhi7rlpd696244xl2kvlmqkq94cqwrhd6cvg8hfz6b4v1bbdf4r"
   },
   "stable": {
    "version": [
@@ -102902,11 +103289,11 @@
   "repo": "greghendershott/racket-mode",
   "unstable": {
    "version": [
-    20240418,
-    1446
+    20240514,
+    1524
    ],
-   "commit": "d5f4007fd2c2604673125035f4852dce1b639b33",
-   "sha256": "0di1xb89i6r9lxc86ny53f7w7pqqd0r21qrf663jkjxlakhbwjzk"
+   "commit": "d2cff2b7f210846108875c7eccb1b5ab98bceb74",
+   "sha256": "0gxjm594k1i0xiavmk27z9mv9qh5q4k5h3ih198pm637k31ziviy"
   }
  },
  {
@@ -103132,11 +103519,11 @@
   "repo": "Raku/raku-mode",
   "unstable": {
    "version": [
-    20210927,
-    1227
+    20240429,
+    1007
    ],
-   "commit": "4ee9045eeb90f7831d7c0ee2e4adfcd957f712be",
-   "sha256": "0z8yclpb67x0k7x4ai13wvpc6w6s9z6kkib6a1lm4jpp4gyyraqw"
+   "commit": "14f9b9bba08c0bbb7f3895380d0b1a9feb7a168d",
+   "sha256": "03r858crkxfp2nswsk81ajr8ynqm501a3l6qmbmlk57pb1p2a1py"
   },
   "stable": {
    "version": [
@@ -103195,11 +103582,11 @@
   "repo": "kakakaya/random-splash-image",
   "unstable": {
    "version": [
-    20151003,
-    130
+    20240501,
+    1550
    ],
-   "commit": "907e2db5ceff781ac7f4dbdd65fe71736c36aa22",
-   "sha256": "1z25xmz8pl3rsfahw6ay8wx5wbnlxabnzr2dq20m0i5jyci8lqll"
+   "commit": "05a5cdb8315577536de5e425f6ef6cbb994c6282",
+   "sha256": "1kjkgg577v2ddwkh3zvghyw8zr7lkzg51qiwdzf722p5ml5afnf4"
   }
  },
  {
@@ -105297,26 +105684,26 @@
   "repo": "swflint/retraction-viewer",
   "unstable": {
    "version": [
-    20240419,
-    1316
+    20240509,
+    1440
    ],
    "deps": [
     "plz"
    ],
-   "commit": "280fbb60c44a184e0060640966ad9ddc80602e21",
-   "sha256": "0a9zrlhb943ni4bqc9ma8f2wx0y7vp51jmmf8b0kgy82yx8m6blq"
+   "commit": "e8ab96e5a95a93849b912e2684b9776c685ac4bd",
+   "sha256": "10kyj2jjykbzi2afyqg57w1pkf310155zjb3hzl6nm6h844gnhji"
   },
   "stable": {
    "version": [
     1,
     0,
-    4
+    6
    ],
    "deps": [
     "plz"
    ],
-   "commit": "87efb813a0dd3b320299d771779e68efe4344cf0",
-   "sha256": "0kmhmak47c9ffi0wc21k1qrq8gxgdzv064s38vzfw67781d6mi8a"
+   "commit": "e8ab96e5a95a93849b912e2684b9776c685ac4bd",
+   "sha256": "10kyj2jjykbzi2afyqg57w1pkf310155zjb3hzl6nm6h844gnhji"
   }
  },
  {
@@ -105327,28 +105714,28 @@
   "repo": "swflint/retraction-viewer",
   "unstable": {
    "version": [
-    20240419,
-    837
+    20240509,
+    1440
    ],
    "deps": [
     "retraction-viewer",
     "universal-sidecar"
    ],
-   "commit": "87efb813a0dd3b320299d771779e68efe4344cf0",
-   "sha256": "0kmhmak47c9ffi0wc21k1qrq8gxgdzv064s38vzfw67781d6mi8a"
+   "commit": "e8ab96e5a95a93849b912e2684b9776c685ac4bd",
+   "sha256": "10kyj2jjykbzi2afyqg57w1pkf310155zjb3hzl6nm6h844gnhji"
   },
   "stable": {
    "version": [
     1,
     0,
-    4
+    6
    ],
    "deps": [
     "retraction-viewer",
     "universal-sidecar"
    ],
-   "commit": "87efb813a0dd3b320299d771779e68efe4344cf0",
-   "sha256": "0kmhmak47c9ffi0wc21k1qrq8gxgdzv064s38vzfw67781d6mi8a"
+   "commit": "e8ab96e5a95a93849b912e2684b9776c685ac4bd",
+   "sha256": "10kyj2jjykbzi2afyqg57w1pkf310155zjb3hzl6nm6h844gnhji"
   }
  },
  {
@@ -105751,6 +106138,21 @@
   }
  },
  {
+  "ename": "ride-mode",
+  "commit": "07536aeb9581da1ffbe25cc4e7d6d5d056062cf7",
+  "sha256": "0yhqg5qnkl4rz2b524md7z8x5b80ck2mgcdhwh5dr5wfqc72sbnl",
+  "fetcher": "github",
+  "repo": "deadblackclover/ride-mode",
+  "unstable": {
+   "version": [
+    20240511,
+    1623
+   ],
+   "commit": "b693e5c33090530d2ea9d792fa148ea983f8607f",
+   "sha256": "1iwb941ld1rfshdq11km561xr75a3n63cw70h6x8wyb6iqdwbwk3"
+  }
+ },
+ {
   "ename": "right-click-context",
   "commit": "f6963fc11d697b95ebbdaf7fe27c91a6229d08b6",
   "sha256": "189nkxkc7lr2fm5qgmylmz6xv6mpphslj4fgpmr8ynnx9z3nxms2",
@@ -106052,11 +106454,11 @@
   "repo": "jgkamat/rmsbolt",
   "unstable": {
    "version": [
-    20240301,
-    1749
+    20240507,
+    47
    ],
-   "commit": "1aeeadf7114316b9949e3c212a883ca95c3ddab0",
-   "sha256": "01nhxmildizza26vkf20qvmhh7n5g1sl7vyn7i1dwpi74334in64"
+   "commit": "32604147643dbfebe499ea8a4b139cc68acd2746",
+   "sha256": "07l5c1apdck8a73z4mh3r7jpwz1c97p4i6qz1lg5ygmr1wnhpncy"
   }
  },
  {
@@ -106067,14 +106469,14 @@
   "repo": "dgutov/robe",
   "unstable": {
    "version": [
-    20240327,
-    308
+    20240509,
+    155
    ],
    "deps": [
     "inf-ruby"
    ],
-   "commit": "e8c86ee553589ff03418102426420b5049d4a044",
-   "sha256": "070r79mdydhv6l7mia7xshzmp0jgvkfjvnpgg361m5xs92mprxfr"
+   "commit": "6bc8a07fc483407971de0966d367a11006b3ab80",
+   "sha256": "144cdg0wp53g4rsmr5ps4r9fhqr686qvikf2pcyi0idyx7dcsaij"
   },
   "stable": {
    "version": [
@@ -107055,11 +107457,11 @@
   "repo": "rust-lang/rust-mode",
   "unstable": {
    "version": [
-    20240415,
-    936
+    20240520,
+    749
    ],
-   "commit": "e54bbae8c4c2af580b5721ad5ac151f2ad19293e",
-   "sha256": "1vzgyizvn3p7f1p8awnlm4n2fh7b6j3cs636zyqpqck32x4pdqda"
+   "commit": "d00d83d3a207a5b7c2994392b2781f627e3159ce",
+   "sha256": "08b4aj8achz3rl311m5p98sdgnh96ggfmia4qp2l147vd1a23r93"
   },
   "stable": {
    "version": [
@@ -107308,16 +107710,16 @@
   "repo": "sagemath/sage-shell-mode",
   "unstable": {
    "version": [
-    20231013,
-    1408
+    20240504,
+    726
    ],
    "deps": [
     "cl-lib",
     "deferred",
     "let-alist"
    ],
-   "commit": "2f069323cb722c608405a3621d8185f4b7130fc3",
-   "sha256": "16mchj8glijkn1ycqzgkc424ij1gxa9qp6dhkhgrskqcyjgxxaly"
+   "commit": "4291700e981a2105d55fa56382ba25046d3d268d",
+   "sha256": "1dch7cwwslffgnzp1djlhz6a792ci42p4bvazxd9lqzhzal0rsbb"
   },
   "stable": {
    "version": [
@@ -107684,14 +108086,14 @@
   "repo": "openscad/emacs-scad-mode",
   "unstable": {
    "version": [
-    20240224,
-    1251
+    20240429,
+    1628
    ],
    "deps": [
     "compat"
    ],
-   "commit": "1bae3dab16adf1f0d47befcc6d2b63a50af87231",
-   "sha256": "137kn3ilbl6gnq6jc21mzhlc7vyy9nvr3qf0p6f1hmdixm2cbyr7"
+   "commit": "8b830727c343bf762d9469b413f0c2a4c1996fe2",
+   "sha256": "07rk69b0sbcwh4mjpapzv93awwl4w5n0q73915rrxifqf6n3bjsp"
   },
   "stable": {
    "version": [
@@ -107748,6 +108150,21 @@
   }
  },
  {
+  "ename": "scala-repl",
+  "commit": "68a9875d9551ef6003f8ed853489b164cf1e71b5",
+  "sha256": "0cdw913dsvyzflhbijy0n1rwh5hq3ghfcinmpkn6i3y2j5dk4agh",
+  "fetcher": "github",
+  "repo": "sheepduke/scala-repl.el",
+  "unstable": {
+   "version": [
+    20240427,
+    1456
+   ],
+   "commit": "679bdf663e0b32a5a285d6f98daa2e3d5de60289",
+   "sha256": "1qvx7p58fr2v0vpxarliacw97dlw839av4n8chn3g18cw34k7ir0"
+  }
+ },
+ {
   "ename": "scala-ts-mode",
   "commit": "0dce6a06d842251ca42c515bcdd5c8e4b63424b6",
   "sha256": "0x3ip9x72jbn56ddvjxd0qggq5bcp1bdvyy36nx51czlvz8vw4gf",
@@ -108035,14 +108452,11 @@
   "repo": "zk-phi/scratch-palette",
   "unstable": {
    "version": [
-    20210306,
-    427
-   ],
-   "deps": [
-    "popwin"
+    20240516,
+    1817
    ],
-   "commit": "e4642ed8a2b744ba48a8e11ca83861f8e4b9c5b3",
-   "sha256": "1cvcsj6ayhfwdpp2mb75ja8bif33z085dip76bvyqliwjnjl2sgn"
+   "commit": "6b344af6b33b6b0bfd08e213dd0d43b714f7a5e9",
+   "sha256": "0a09lxfj49m1x894byqb6bgcbckiasaxka5r6g2n4rmk7hpj1rmq"
   }
  },
  {
@@ -108468,11 +108882,11 @@
   "repo": "erjoalgo/selcand",
   "unstable": {
    "version": [
-    20230628,
-    733
+    20240430,
+    1408
    ],
-   "commit": "b6fc231a784df570df0f817d34f926f141a65126",
-   "sha256": "1hh0y9qy19kvq29z5zrjpk2lll2iydl16dhl88kapfprmv9mrli2"
+   "commit": "6baa1771eacbcfe7ec854362bed17baea865424e",
+   "sha256": "0df2h0ahzp6zqvg104dp8cq3nc6q7wg0v4v7mac0mpibgd35j0qq"
   },
   "stable": {
    "version": [
@@ -109956,14 +110370,14 @@
   "repo": "xuchunyang/shr-tag-pre-highlight.el",
   "unstable": {
    "version": [
-    20200626,
-    1047
+    20240515,
+    1420
    ],
    "deps": [
     "language-detection"
    ],
-   "commit": "931c447bc0d6c134ddc9657c664eeee33afbc54d",
-   "sha256": "09gcprqhl1ds4k407rlsjqr9y56a9wvjkli70wrf2l7w3dcm4qq0"
+   "commit": "af8ae8d558d1e26d276130c100e02746278ce037",
+   "sha256": "1ncmgziclhj3694kzq6qwsrafzcpn6a5r6fwbcjnjk6z9dahisq8"
   },
   "stable": {
    "version": [
@@ -110110,14 +110524,14 @@
   "repo": "cask/shut-up",
   "unstable": {
    "version": [
-    20210403,
-    1249
+    20240429,
+    605
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "ff6f06f3b080ee833a25a22da8cb5b96e911dc77",
-   "sha256": "1kghm1vwy38k9l4a4jjabhqi49v4p27abk82q6yfpm304ygw816v"
+   "commit": "ed62a7fefdf04c81346061016f1bc69ca045aaf6",
+   "sha256": "1wrxdkgsr7rrz0h6kl6a68r1f1nn098p1cmg4693yaam5pl8lscf"
   },
   "stable": {
    "version": [
@@ -110140,11 +110554,11 @@
   "repo": "riscy/shx-for-emacs",
   "unstable": {
    "version": [
-    20221224,
-    2230
+    20240512,
+    1515
    ],
-   "commit": "b99d16f36bc278d668d8428c4bc9af77064c336a",
-   "sha256": "1wkqnc5n8if8fsh7f3bdr5nzn6dbj1nzdxlmnz8nflmx4g32fp6v"
+   "commit": "ae32d2f6917e16c8feb8b7372267449179abd608",
+   "sha256": "1gkfh5zhcxi9xwffc8ydbn6879h20ddfwvk6279dysg15gasb551"
   },
   "stable": {
    "version": [
@@ -110263,14 +110677,14 @@
   "repo": "emacs-sideline/sideline",
   "unstable": {
    "version": [
-    20240404,
-    900
+    20240521,
+    31
    ],
    "deps": [
     "ht"
    ],
-   "commit": "c1729b2b9d2ca6b37bf605ca2271e570f30316f0",
-   "sha256": "0ck92g14fhhi1xg76na8ck8ivv5wx5igh898wzr5p6qx92mv5hf7"
+   "commit": "31ef3c21d99785e7a066ad8c188ddcd2b478b5fe",
+   "sha256": "17qflpmc7kwn0cikysardxda25wanmax55hc6ifwgcp330wp4742"
   },
   "stable": {
    "version": [
@@ -110322,16 +110736,16 @@
   "repo": "emacs-sideline/sideline-flycheck",
   "unstable": {
    "version": [
-    20240402,
-    2255
+    20240509,
+    742
    ],
    "deps": [
     "flycheck",
     "ht",
     "sideline"
    ],
-   "commit": "212b8193becc012d39ccb1e68abf0e19f68764f4",
-   "sha256": "0g6i9ql35w9p3k941g2n9rj0md7j1snr6dpm9y4sid8fbyxvs1f2"
+   "commit": "f809e627e433bd9a58471e4dea1ed50305eef7f2",
+   "sha256": "0z0152cnkb8bwc3j0gi1zyasvwxc7anlrj2qr0zj6pbxyl61k5m3"
   },
   "stable": {
    "version": [
@@ -110355,14 +110769,14 @@
   "repo": "emacs-sideline/sideline-flymake",
   "unstable": {
    "version": [
-    20240309,
-    1112
+    20240509,
+    742
    ],
    "deps": [
     "sideline"
    ],
-   "commit": "e6a9ae69fc048f8eaacbf653e7136678dbef4597",
-   "sha256": "08mng3wqlrflnywiy8m29psk9sks32niy3xgzxrawkkidfv79m9p"
+   "commit": "06e84875022a5645ece8f4c2c8b56aa5f003c65d",
+   "sha256": "10gk7l93c13z8mpvd598x06bhv8zz21157madxdw1f7jarkssqh7"
   },
   "stable": {
    "version": [
@@ -110854,8 +111268,8 @@
   "repo": "magit/sisyphus",
   "unstable": {
    "version": [
-    20240415,
-    1548
+    20240506,
+    1558
    ],
    "deps": [
     "compat",
@@ -110863,8 +111277,8 @@
     "llama",
     "magit"
    ],
-   "commit": "38285f880302b9a2363085d816d6cd660ff7d17d",
-   "sha256": "0vkyfc9rbc22x7a7qy8i3w97a8p65qvjz5jxiqbh2vldp57hx5f7"
+   "commit": "db9b36065faf149fef214248bdba1d90492cd2e9",
+   "sha256": "0czzvnchviwszgdpq1s3j2m9881a7dxh7hdd7hg7ay9ab18j0f1i"
   },
   "stable": {
    "version": [
@@ -111155,11 +111569,11 @@
   "repo": "slim-template/emacs-slim",
   "unstable": {
    "version": [
-    20170728,
-    1348
+    20240513,
+    2118
    ],
-   "commit": "3636d18ab1c8b316eea71c4732eb44743e2ded87",
-   "sha256": "1sqylm6ipmlh9249mmwfb16b4pv94cvzdwvi3zakdpz713phyjw5"
+   "commit": "8c92169817f2fa59255f547f0a9fb4fbb8309db9",
+   "sha256": "051clmalyyvbqq2gj1b69mymx34c46wsk02k6izp6igfnjf4isjv"
   },
   "stable": {
    "version": [
@@ -111178,14 +111592,14 @@
   "repo": "slime/slime",
   "unstable": {
    "version": [
-    20240427,
-    406
+    20240516,
+    319
    ],
    "deps": [
     "macrostep"
    ],
-   "commit": "c2e45e7004743fdd8620e2fea67f30a17b6a558a",
-   "sha256": "1f8i31b2b21v5r0awahhjqn499agalqnzy8lyp3wj91r0pbsqn1f"
+   "commit": "5ced74ab35d91f6be7d8fa10e1098aaae6b749e3",
+   "sha256": "0bq0vi22mr43l64q501hkv11sp58bmn8hgxmc61if0xc1rlcs68v"
   },
   "stable": {
    "version": [
@@ -111433,11 +111847,11 @@
   "repo": "joaotavora/sly",
   "unstable": {
    "version": [
-    20240413,
-    2145
+    20240501,
+    1118
    ],
-   "commit": "0ebe705c08af7126e0b2ce66a33fc7d23864b193",
-   "sha256": "1a7xi627dqm9zvhj5ky50h7z4nkcr54xal05mgq8hf9r0c8xba9g"
+   "commit": "ba40c8f054ec3b7040a6c36a1ef3e9596b936421",
+   "sha256": "0qhnn09pinrdjbkgl89xhgbrji2gagq05rrknklybklyvik851l6"
   },
   "stable": {
    "version": [
@@ -113599,11 +114013,11 @@
   "repo": "condy0919/spdx.el",
   "unstable": {
    "version": [
-    20240425,
-    103
+    20240522,
+    104
    ],
-   "commit": "28801aa911d43bb0b2545f83781a3c629266fd72",
-   "sha256": "15a26n645snjr92vp46pyv1pbkskb8arvvfb6hi8sy8m4vxc1bm3"
+   "commit": "448e0e5e491e2447da2590ff216675e083d910ff",
+   "sha256": "160h11025fkxg734ri944l2jndfpmg9mlar0jy8aqk3bys3mc85i"
   }
  },
  {
@@ -113641,11 +114055,11 @@
   "repo": "brailcom/speechd-el",
   "unstable": {
    "version": [
-    20240427,
-    2112
+    20240513,
+    1716
    ],
-   "commit": "64218c59f1636af6a0cb3690bf0bedae1dd17442",
-   "sha256": "1m7bfbk1iwdqa9dnf1b0isbl7pj3msxx4j6grr4d4pzb4hqphbfl"
+   "commit": "ac7497e394bf7d46e0b2c27570f5507f6a50a157",
+   "sha256": "1y8r75sl28kll8r6qzqnbri18j2kgvqfh73yi9kszld5zz8d95mp"
   }
  },
  {
@@ -114365,11 +114779,11 @@
   "repo": "srfi-explorations/emacs-srfi",
   "unstable": {
    "version": [
-    20240425,
-    1823
+    20240507,
+    58
    ],
-   "commit": "75b5b3e9b49bb450c1245ba7d7627ecb27baa53d",
-   "sha256": "0xaa2wa8p3606gclw2myj57sglii150dq9w26qisvhxym3i97r4k"
+   "commit": "7d3584b0b887a3bedebe5fd829fa7623c1d730fc",
+   "sha256": "13652cn287d17jfvj37a14iy3awisibmrm7dglivm8hcjlkaj9fg"
   },
   "stable": {
    "version": [
@@ -114837,20 +115251,20 @@
   "repo": "stacked-git/stgit",
   "unstable": {
    "version": [
-    20240407,
-    2229
+    20240505,
+    2218
    ],
-   "commit": "9afe502c74f51ed7d4e794da11c01e25718b0f64",
-   "sha256": "1sa9pndfjsja0gk7jc8vlfpzmahpvbqpb8b1dx6cl0568w13s1b5"
+   "commit": "e2b799d7bd39f69b66b54d556e345699dee740d6",
+   "sha256": "1x1f0qrwk5nxcqlyk6ga0mh919pa5fgs72dpr86fh778vraadw2d"
   },
   "stable": {
    "version": [
     2,
     4,
-    6
+    7
    ],
-   "commit": "9afe502c74f51ed7d4e794da11c01e25718b0f64",
-   "sha256": "1sa9pndfjsja0gk7jc8vlfpzmahpvbqpb8b1dx6cl0568w13s1b5"
+   "commit": "e2b799d7bd39f69b66b54d556e345699dee740d6",
+   "sha256": "1x1f0qrwk5nxcqlyk6ga0mh919pa5fgs72dpr86fh778vraadw2d"
   }
  },
  {
@@ -114940,15 +115354,15 @@
   "repo": "beacoder/stock-tracker",
   "unstable": {
    "version": [
-    20230625,
-    524
+    20240430,
+    247
    ],
    "deps": [
     "async",
     "dash"
    ],
-   "commit": "cdffcaa6bb75c450a511a31d0c69e30a4edd562d",
-   "sha256": "0dmg2zh92la3qw9swzn4pz3qmn0qs6rd84dihf43v9r2682nrqb7"
+   "commit": "7004467c995e0104cad874361669e6b395b3da48",
+   "sha256": "03f27qmmfdqj4khjgs611222lc38s80fjimfggg4641rzqgxqq4h"
   },
   "stable": {
    "version": [
@@ -115766,14 +116180,14 @@
   "repo": "rougier/svg-tag-mode",
   "unstable": {
    "version": [
-    20240122,
-    1209
+    20240429,
+    1052
    ],
    "deps": [
     "svg-lib"
    ],
-   "commit": "f01307dd7720ed952355db0a552ae555c13ced13",
-   "sha256": "13fyg7wn2rzf19ni2niv868rp2iqm1ckqyg0rc99sbgz5i2qdzcw"
+   "commit": "a152bc90a7c9dc17112893a19ddf91078b909057",
+   "sha256": "12spnrblv3h7yzc0cpk0xj6sbcfcq2y4j3mg7a16m2nhafw2kn0y"
   }
  },
  {
@@ -116133,14 +116547,14 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20240405,
-    1642
+    20240520,
+    1202
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "e0b1a6c224afb652d11b315913b8ad0c3ca8ecbc",
-   "sha256": "06370wzd058lx1k9dl76zzs0r9nycnlggfxxdw2691q8ypjqbd7q"
+   "commit": "c8808d88c633fdd00f7671fee054954f3a7598b8",
+   "sha256": "14f5kfs3sj699397pz6w59pyv9qhw8jbswyq0964k483570n4skp"
   },
   "stable": {
    "version": [
@@ -116444,11 +116858,11 @@
   "repo": "liushihao456/symbols-outline.el",
   "unstable": {
    "version": [
-    20231229,
-    941
+    20240517,
+    819
    ],
-   "commit": "af4cba0c409a38e25eb572687a3a6848953ef868",
-   "sha256": "0jqw0p3cmjjbgsihnk49v88v7ypbxmpcsl4wb3cs83n2c4qgd11y"
+   "commit": "bfebe73b1322cdc32353375b55f5f56aad85fb57",
+   "sha256": "0gnmqw3gdgjqb0vfzl2vi3zvk89mnx2yxq8sdz7rn4y8hbyxsmh0"
   }
  },
  {
@@ -117577,16 +117991,16 @@
   "repo": "zevlg/telega.el",
   "unstable": {
    "version": [
-    20240410,
-    928
+    20240515,
+    2217
    ],
    "deps": [
     "rainbow-identifiers",
     "transient",
     "visual-fill-column"
    ],
-   "commit": "d73e02dfe41580ff2d93a6c6feb2af254087bbf6",
-   "sha256": "1jg9l1dkiji5mqhbbfmgi0p4gdzw0m8hf7k4imnn61046llar8q0"
+   "commit": "3d2e5ee323366906b00d8ed40e818d41e82b73e5",
+   "sha256": "117mck96hd0ai0ra7kv8kv78v88vms55ac64dqbrqndiwna4c6sl"
   },
   "stable": {
    "version": [
@@ -117666,14 +118080,14 @@
   "repo": "caramelhooves/teleport.el",
   "unstable": {
    "version": [
-    20240101,
-    1358
+    20240501,
+    740
    ],
    "deps": [
     "dash"
    ],
-   "commit": "d8fa80e7f548287279c9620e26c354e68b1559af",
-   "sha256": "1b301mkvbr22bzj0hm0v0mr9ahw7491rl7l6374kiq4l8rlyp54g"
+   "commit": "7a99ec17e5c1d3bab3bc842e045b06ea335c97b9",
+   "sha256": "15kns3478xvwnn0dl883swh7x7k043b71zrv3gk0jazh60vn3q6j"
   }
  },
  {
@@ -117746,14 +118160,14 @@
   "repo": "Crandel/tempel-collection",
   "unstable": {
    "version": [
-    20240404,
-    1026
+    20240507,
+    805
    ],
    "deps": [
     "tempel"
    ],
-   "commit": "e87b1fee9554f9bc7415df053c8d8c9f03c13955",
-   "sha256": "1j762811nlnimzvsmv6h1l3mpsd8wxa2ay48n73wxj3cv8qxz82r"
+   "commit": "cf2594313a41f6a29205e378411ebb10e9d764c3",
+   "sha256": "1zq17avwf9mfgr5jq9fnvx4c25a2mfr2wf3ip1ix5n3700z48ry7"
   }
  },
  {
@@ -118415,15 +118829,15 @@
   "repo": "johannes-mueller/test-cockpit.el",
   "unstable": {
    "version": [
-    20240220,
-    2058
+    20240519,
+    1747
    ],
    "deps": [
     "projectile",
     "toml"
    ],
-   "commit": "11c23ddb9284b21a1072c37f168574096ee3bd2f",
-   "sha256": "0lg3f03a0bh6crffms1qfs7vlp32cg3rjhr1phmghcxdcm8xj4ca"
+   "commit": "2b836e5f954059210b6efaecebfe5fd7c72e726c",
+   "sha256": "0f62xly0pvsfqnkzm0yfflbd54mljbfc6jzp8kqk8w8598j548ak"
   }
  },
  {
@@ -118684,11 +119098,11 @@
   "repo": "monkeyjunglejuice/matrix-emacs-theme",
   "unstable": {
    "version": [
-    20240422,
-    919
+    20240429,
+    920
    ],
-   "commit": "2e373d5de799ef2546d6905949aa9ef21da5eea4",
-   "sha256": "15bf21y0sfsy1wpyazfcwr9cqs2vvmhwr2j2p37a2fiadrv27da4"
+   "commit": "d0c7fd3584c07952de26a5ae44ca6159f1960bb7",
+   "sha256": "0vhmmya0dayjsmvyxiyh1sf3hmdxdgv8qcfx7ffh385saqpqifkd"
   }
  },
  {
@@ -118908,21 +119322,21 @@
   "repo": "facebook/fbthrift",
   "unstable": {
    "version": [
-    20240421,
-    1632
+    20240519,
+    1631
    ],
-   "commit": "a1067af97a4a6070f4247657faf66ff25c1caffd",
-   "sha256": "0kjxyhr0kbw8dzd79gdj32srn5avnp4650ws1iy8q9rrppya9rr5"
+   "commit": "8baf3aed99934494267647ee8f309f9d712d4325",
+   "sha256": "0svd697slkv6k46byvca8b9l4vkxgikyxanik78iwpz52mmgpc88"
   },
   "stable": {
    "version": [
     2024,
-    4,
-    22,
+    5,
+    20,
     0
    ],
-   "commit": "a1067af97a4a6070f4247657faf66ff25c1caffd",
-   "sha256": "0kjxyhr0kbw8dzd79gdj32srn5avnp4650ws1iy8q9rrppya9rr5"
+   "commit": "8baf3aed99934494267647ee8f309f9d712d4325",
+   "sha256": "0svd697slkv6k46byvca8b9l4vkxgikyxanik78iwpz52mmgpc88"
   }
  },
  {
@@ -120333,15 +120747,15 @@
   "repo": "magit/transient",
   "unstable": {
    "version": [
-    20240421,
-    1737
+    20240509,
+    1849
    ],
    "deps": [
     "compat",
     "seq"
    ],
-   "commit": "2dd0102ec3df901d421fc338e5c768467cc54ecf",
-   "sha256": "02qhhm37pmqpm51hn7sz7wn34x1vwixxka2fvlllq1vbmvzxinp6"
+   "commit": "3d395d643b1476b07c6c3d7217f5b2ad2c0b425e",
+   "sha256": "1vrnxd95dmf6v6nzvzcf4nxz4sag9qwl1hj2ciiffl2d420shjsh"
   },
   "stable": {
    "version": [
@@ -120791,14 +121205,14 @@
   "repo": "erickgnavar/tree-sitter-ispell.el",
   "unstable": {
    "version": [
-    20230205,
-    533
+    20240522,
+    1356
    ],
    "deps": [
     "tree-sitter"
    ],
-   "commit": "d8c33c05f689c2cab36b8a9856811f18a4ab7c59",
-   "sha256": "19i2hv6zy9797dz4b6xrwlkci5fdq4v2mxd55li2bpd6sgga28ns"
+   "commit": "960e68d6c4a296e5ecf10d27bfd8bac42ba4a2ed",
+   "sha256": "1v0v6m5g03ydv38a9465nx3i5qfi106macwd5s63rllx88m395xg"
   }
  },
  {
@@ -120809,26 +121223,26 @@
   "repo": "emacs-tree-sitter/tree-sitter-langs",
   "unstable": {
    "version": [
-    20240425,
-    231
+    20240519,
+    717
    ],
    "deps": [
     "tree-sitter"
    ],
-   "commit": "ace4624f78ddb6c29e4efa904c6dd8636fad53fe",
-   "sha256": "1kaklazmr26gh6ff8p7r2xs1pc40ajwlhhinsbnl52prz3bc7702"
+   "commit": "6ce3de71c21a55ffe33ecdead57fff290a5d07df",
+   "sha256": "1i36zfww14zjxlcq8gkwj5346356zfcx6ldi59bp9c7vvi2gavg8"
   },
   "stable": {
    "version": [
     0,
     12,
-    182
+    196
    ],
    "deps": [
     "tree-sitter"
    ],
-   "commit": "f75e8c1b4aa6c13d4b9a48545993d66a1d7e2eb1",
-   "sha256": "0zvz1kmx145g73wh2zjvrswcl9iiqlq59dlwf88p93n7wzk2ivbg"
+   "commit": "6ce3de71c21a55ffe33ecdead57fff290a5d07df",
+   "sha256": "1i36zfww14zjxlcq8gkwj5346356zfcx6ldi59bp9c7vvi2gavg8"
   }
  },
  {
@@ -120905,8 +121319,8 @@
   "repo": "Alexander-Miller/treemacs",
   "unstable": {
    "version": [
-    20240229,
-    2108
+    20240518,
+    932
    ],
    "deps": [
     "ace-window",
@@ -120918,8 +121332,8 @@
     "pfuture",
     "s"
    ],
-   "commit": "8c6df39f01a4d47fda2cc943645fa067f771b748",
-   "sha256": "12jfivx5gqayv8n2q08f7inwqmxck51q0r9nxgb1m1kzi5vdisqp"
+   "commit": "923fbbdea57b27ed3293079b13846206add85d9d",
+   "sha256": "1dw8igrag918c9s2pz80nmri09kxay10v617zafg91kdqzpnwgyy"
   },
   "stable": {
    "version": [
@@ -121243,11 +121657,11 @@
   "repo": "renzmann/treesit-auto",
   "unstable": {
    "version": [
-    20240420,
-    1457
+    20240511,
+    1425
    ],
-   "commit": "ecd898c4879614bf36d84a77c08a10aca25c3841",
-   "sha256": "190sv2ig3lisp2yiwy38ng8k9ckhpgjga5njnf88qnyp3r44bvcc"
+   "commit": "016bd286a1ba4628f833a626f8b9d497882ecdf3",
+   "sha256": "03bvam7cpxqp4idhd235n76qdqhsbgw7m2lphy8qqwslbmcq23m4"
   },
   "stable": {
    "version": [
@@ -121864,11 +122278,11 @@
   "repo": "emacs-typescript/typescript.el",
   "unstable": {
    "version": [
-    20230116,
-    1533
+    20240507,
+    617
    ],
-   "commit": "4fcb4594819caf472ae42ea068a1c7795cf07f46",
-   "sha256": "12vw5mjl8d4cfv0z46180llmwdwfqrfp88p1fvgp2viizwmw03ym"
+   "commit": "1cf78d7ef8e0a1684a2cf265539c54ccff4068c0",
+   "sha256": "1f2sba6ld55w6mdbwwz4kqfp2rsgmbdm88apxjfglsa5nlh7g50b"
   },
   "stable": {
    "version": [
@@ -122911,26 +123325,26 @@
   "repo": "swflint/emacs-universal-sidecar",
   "unstable": {
    "version": [
-    20240130,
-    2120
+    20240429,
+    1525
    ],
    "deps": [
     "magit-section"
    ],
-   "commit": "d7a30e53fdda44a07160ef438ae1068178f23785",
-   "sha256": "0zhafx5rk6221whi167j6vvlld7wwnd7capzdflv3x8d5jbhy87k"
+   "commit": "e16f5974c77e7126cd5c9b7448116ee94a6a1e72",
+   "sha256": "0n0ndahcamfqz9wrj1l43xr8q5lc03k204ny95mwlnahq27z9qsm"
   },
   "stable": {
    "version": [
     1,
-    5,
-    2
+    6,
+    0
    ],
    "deps": [
     "magit-section"
    ],
-   "commit": "9050eaea7946e613a4b9ecd9dd1462614699edb1",
-   "sha256": "169n0d4hsx9azch1w14wlmilm411hb7v0564xrcwww5w145jrs9m"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   }
  },
  {
@@ -122941,26 +123355,26 @@
   "repo": "swflint/emacs-universal-sidecar",
   "unstable": {
    "version": [
-    20240115,
-    1727
+    20240428,
+    1852
    ],
    "deps": [
     "citeproc"
    ],
-   "commit": "9050eaea7946e613a4b9ecd9dd1462614699edb1",
-   "sha256": "169n0d4hsx9azch1w14wlmilm411hb7v0564xrcwww5w145jrs9m"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   },
   "stable": {
    "version": [
     1,
-    5,
-    2
+    6,
+    0
    ],
    "deps": [
     "citeproc"
    ],
-   "commit": "9050eaea7946e613a4b9ecd9dd1462614699edb1",
-   "sha256": "169n0d4hsx9azch1w14wlmilm411hb7v0564xrcwww5w145jrs9m"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   }
  },
  {
@@ -122971,30 +123385,30 @@
   "repo": "swflint/emacs-universal-sidecar",
   "unstable": {
    "version": [
-    20240115,
-    1727
+    20240428,
+    1852
    ],
    "deps": [
     "bibtex-completion",
     "elfeed",
     "universal-sidecar"
    ],
-   "commit": "9050eaea7946e613a4b9ecd9dd1462614699edb1",
-   "sha256": "169n0d4hsx9azch1w14wlmilm411hb7v0564xrcwww5w145jrs9m"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   },
   "stable": {
    "version": [
     1,
-    5,
-    2
+    6,
+    0
    ],
    "deps": [
     "bibtex-completion",
     "elfeed",
     "universal-sidecar"
    ],
-   "commit": "9050eaea7946e613a4b9ecd9dd1462614699edb1",
-   "sha256": "169n0d4hsx9azch1w14wlmilm411hb7v0564xrcwww5w145jrs9m"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   }
  },
  {
@@ -123005,30 +123419,30 @@
   "repo": "swflint/emacs-universal-sidecar",
   "unstable": {
    "version": [
-    20240115,
-    1727
+    20240428,
+    1852
    ],
    "deps": [
     "elfeed",
     "elfeed-score",
     "universal-sidecar"
    ],
-   "commit": "9050eaea7946e613a4b9ecd9dd1462614699edb1",
-   "sha256": "169n0d4hsx9azch1w14wlmilm411hb7v0564xrcwww5w145jrs9m"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   },
   "stable": {
    "version": [
     1,
-    5,
-    2
+    6,
+    0
    ],
    "deps": [
     "elfeed",
     "elfeed-score",
     "universal-sidecar"
    ],
-   "commit": "9050eaea7946e613a4b9ecd9dd1462614699edb1",
-   "sha256": "169n0d4hsx9azch1w14wlmilm411hb7v0564xrcwww5w145jrs9m"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   }
  },
  {
@@ -123039,28 +123453,28 @@
   "repo": "swflint/emacs-universal-sidecar",
   "unstable": {
    "version": [
-    20240115,
-    1727
+    20240428,
+    1852
    ],
    "deps": [
     "org-roam",
     "universal-sidecar"
    ],
-   "commit": "9050eaea7946e613a4b9ecd9dd1462614699edb1",
-   "sha256": "169n0d4hsx9azch1w14wlmilm411hb7v0564xrcwww5w145jrs9m"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   },
   "stable": {
    "version": [
     1,
-    5,
-    2
+    6,
+    0
    ],
    "deps": [
     "org-roam",
     "universal-sidecar"
    ],
-   "commit": "9050eaea7946e613a4b9ecd9dd1462614699edb1",
-   "sha256": "169n0d4hsx9azch1w14wlmilm411hb7v0564xrcwww5w145jrs9m"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   }
  },
  {
@@ -124548,13 +124962,13 @@
   "repo": "minad/vertico",
   "unstable": {
    "version": [
-    20240424,
-    1959
+    20240511,
+    2047
    ],
    "deps": [
     "compat"
    ],
-   "commit": "1def56a1e678ff9a8eeafafda9c474a5fbb097c4",
+   "commit": "ba650a7ab90d66686ba787937ac9e71f749c598e",
    "sha256": "0cxaqlg0mllrnf7zx7j6rdmx3x42s9b2marisi7zwfiymsnbgarr"
   },
   "stable": {
@@ -124577,16 +124991,16 @@
   "repo": "radian-software/prescient.el",
   "unstable": {
    "version": [
-    20240226,
-    204
+    20240505,
+    2249
    ],
    "deps": [
     "compat",
     "prescient",
     "vertico"
    ],
-   "commit": "c39bf07c56b427bf41aafd7d20eaef5cf3c312b5",
-   "sha256": "0pfc0ycp4cr9zwkjv3rqfkwkx8p52ad7aq2c60j0qwp3yd0cghc4"
+   "commit": "0765418e4362099db8788fcb745ce9b7602aa001",
+   "sha256": "1194racjqb6m2npsdyzbyf77ajrw8qkaq87ciy2z9fxxmzgwj84w"
   },
   "stable": {
    "version": [
@@ -125271,11 +125685,11 @@
   "repo": "emacs-vs/vs-dark-theme",
   "unstable": {
    "version": [
-    20240410,
-    216
+    20240521,
+    2336
    ],
-   "commit": "26fb8e1dee98fd8d423abc35655859e1098325ee",
-   "sha256": "0ixa8kk4m0bg03qcahli8pp6srcavggkrfncyqg5igf8wg7d1wy5"
+   "commit": "d0d9fb57582677fc1f9a4a1467ec3f6470aff0d6",
+   "sha256": "03qy8d7vbnkx2ssfby7kgdjmz691rqw4vlikhpb37xkmhsqa0w0d"
   },
   "stable": {
    "version": [
@@ -125294,11 +125708,11 @@
   "repo": "emacs-vs/vs-light-theme",
   "unstable": {
    "version": [
-    20240410,
-    216
+    20240521,
+    2340
    ],
-   "commit": "0ede987bac1c8dbeb07990a75e70b63cf9baf7e2",
-   "sha256": "0y5p2jbcjby0hrnhh2z99j27wsvkk8lrwdq2krd5188ssj66ca17"
+   "commit": "bc0250f261c066f576fa13112dcfbb10a4e5c6ef",
+   "sha256": "1ys5xhll909zfx02hf2gqbwcf3jcq83b5xxvajrr6xxqwa4mk9h3"
   },
   "stable": {
    "version": [
@@ -125371,11 +125785,11 @@
   "repo": "akermu/emacs-libvterm",
   "unstable": {
    "version": [
-    20240325,
-    1551
+    20240520,
+    231
    ],
-   "commit": "ae4ae1aef2fcae98a37aad83f2a6aeeaeacedd4f",
-   "sha256": "180fa3ihcgp9f6gnp9z34cpc1k8ai75kmdagb4rc9qqb4z8lp9i2"
+   "commit": "df057b1af2bb89a1deb288086f13be296af42090",
+   "sha256": "11j89pldhmw9v2g1sqcg4piniijz4wzgmim1jv46iwnaiwzw20fi"
   }
  },
  {
@@ -126341,26 +126755,26 @@
   "repo": "pzel/weblio",
   "unstable": {
    "version": [
-    20210718,
-    1410
+    20240514,
+    1005
    ],
    "deps": [
     "request"
    ],
-   "commit": "2b4b0c206440b5c63960214feacfceb0c26231c7",
-   "sha256": "1iy1finnxqjbdivzyn7crpnha87mq1fmd98pkx2r8sk551nfw35s"
+   "commit": "952d085fd814b139562ef947c7dcabc31f92341d",
+   "sha256": "1v36x3iyav5i28zp5b1899071xlxawq6ml642258bilhaba2j37a"
   },
   "stable": {
    "version": [
     0,
-    3,
-    4
+    4,
+    0
    ],
    "deps": [
     "request"
    ],
-   "commit": "2b4b0c206440b5c63960214feacfceb0c26231c7",
-   "sha256": "1iy1finnxqjbdivzyn7crpnha87mq1fmd98pkx2r8sk551nfw35s"
+   "commit": "952d085fd814b139562ef947c7dcabc31f92341d",
+   "sha256": "1v36x3iyav5i28zp5b1899071xlxawq6ml642258bilhaba2j37a"
   }
  },
  {
@@ -126841,11 +127255,11 @@
   "repo": "justbur/emacs-which-key",
   "unstable": {
    "version": [
-    20240423,
-    1320
+    20240501,
+    1251
    ],
-   "commit": "ba323d6712d54806aa82847d017e94eafcf99d6f",
-   "sha256": "1ainrah6qnn9qvjcfgx133v4rvvyq15iy7kvi2rmbxxlfj5x6y1i"
+   "commit": "1e89fa000e9ba9549f15ef57abccd118d5f2fe1a",
+   "sha256": "01g5fgrbdgzh302ah7pqdrf98hxgah40140jjwfrx3mwcdicj7f1"
   },
   "stable": {
    "version": [
@@ -127417,15 +127831,15 @@
   "repo": "bmag/emacs-purpose",
   "unstable": {
    "version": [
-    20210628,
-    715
+    20240504,
+    1017
    ],
    "deps": [
     "imenu-list",
     "let-alist"
    ],
-   "commit": "bb462f12f836414425edac32ebd069b4fd5b98d4",
-   "sha256": "1cw513mh3gyl21qpmgwqjgpi8kwddmd4n69l4ax5a5pv3vvwrcx9"
+   "commit": "776c5ef8fe2f0da0f9885526e3556af0f5736600",
+   "sha256": "0w23mljzw314nbr63wzl8m04ii1zjbl5gxgvmr9g8mfq848brsbf"
   },
   "stable": {
    "version": [
@@ -127925,15 +128339,28 @@
   "repo": "swflint/emacs-universal-sidecar",
   "unstable": {
    "version": [
-    20240323,
-    1901
+    20240428,
+    1852
    ],
    "deps": [
     "compat",
     "universal-sidecar"
    ],
-   "commit": "b67153c880284db0ed9864370b16287fd855fb54",
-   "sha256": "0irbpsfndggi1fmwsnqdr6nky4b9xbiila5rxkbrr28y2r6bxsck"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
+  },
+  "stable": {
+   "version": [
+    1,
+    6,
+    0
+   ],
+   "deps": [
+    "compat",
+    "universal-sidecar"
+   ],
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   }
  },
  {
@@ -128337,14 +128764,14 @@
   "repo": "cjennings/emacs-wttrin",
   "unstable": {
    "version": [
-    20240422,
-    1633
+    20240521,
+    2004
    ],
    "deps": [
     "xterm-color"
    ],
-   "commit": "9b98fedc44b1ddcebaa48df2975493b37797c2fb",
-   "sha256": "180amp1n0qdn6m6vlzg0ddfxfqf37fjaswfxdxn03298j0jgzw14"
+   "commit": "5655b5fd438622581f84eb84c8880f20e11b87ed",
+   "sha256": "1mna2jahwv6kyr832jba4ch3xwx618v4dwhwaxxchv9hzgxpf38g"
   },
   "stable": {
    "version": [
@@ -128622,6 +129049,30 @@
   }
  },
  {
+  "ename": "xkb-mode",
+  "commit": "e2eedab31d075174dcc0151cc063927430462923",
+  "sha256": "1jd7gw9c01fmp1d3bh1ilnrcmrb0l1v6i18pw33fjnr4788v2m5s",
+  "fetcher": "github",
+  "repo": "captainflasmr/xkb-mode",
+  "unstable": {
+   "version": [
+    20240506,
+    904
+   ],
+   "commit": "b1de5233dc12749a97ad6a63d86b921bf1e33d3b",
+   "sha256": "0lhmr10k8vszfmq6s0x2vilxf15chci0lhf3990jwnl0y8x08i33"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    0
+   ],
+   "commit": "b1de5233dc12749a97ad6a63d86b921bf1e33d3b",
+   "sha256": "0lhmr10k8vszfmq6s0x2vilxf15chci0lhf3990jwnl0y8x08i33"
+  }
+ },
+ {
   "ename": "xkcd",
   "commit": "855ea20024b606314f8590129259747cac0bcc97",
   "sha256": "0gy2952zg1rq5gl10x7iwbchz5jibfcvikd3chifqbmil80wh6b5",
@@ -128882,14 +129333,14 @@
   "repo": "js-emacs/xref-js2",
   "unstable": {
    "version": [
-    20240417,
-    1454
+    20240504,
+    1449
    ],
    "deps": [
     "js2-mode"
    ],
-   "commit": "db816e926302293c134d1260322b0553953a43e2",
-   "sha256": "0wsi4ix44h0vzjbw25iga4ghk5l06398l7fpv75iayyspmnl6gxq"
+   "commit": "e215af9eedac69b40942fff9d5514704f9f4d43e",
+   "sha256": "0ngry3ncs6cixxxbb361ifrp2z466j4gw2d381n3siva1vvwcdqi"
   },
   "stable": {
    "version": [
@@ -129327,26 +129778,26 @@
   "repo": "zkry/yaml-pro",
   "unstable": {
    "version": [
-    20240313,
-    307
+    20240520,
+    1215
    ],
    "deps": [
     "yaml"
    ],
-   "commit": "775c0a4b82c79da0eb91620fb0cbbf6c8642815b",
-   "sha256": "16l1nmi9rizrcmx53xc8yr4y6lw5cg26hnwbw6l38i9nzhklx23n"
+   "commit": "d57cbd84ad0afd0fd3168e3d0e6cb5969b610b39",
+   "sha256": "1h6a6na77xfm88qcly6nc1r6bmf5l9aihjdyajfagfdms1wh8qf3"
   },
   "stable": {
    "version": [
     1,
-    0,
+    1,
     0
    ],
    "deps": [
     "yaml"
    ],
-   "commit": "c5d4d7eb3d2221dea7ee8c04286f1272806929c1",
-   "sha256": "0b0s3c7h3l94743qqpx16djn4d6xsrb59yhmz3fr7afrysp7d77q"
+   "commit": "d57cbd84ad0afd0fd3168e3d0e6cb5969b610b39",
+   "sha256": "1h6a6na77xfm88qcly6nc1r6bmf5l9aihjdyajfagfdms1wh8qf3"
   }
  },
  {
@@ -129612,14 +130063,14 @@
   "repo": "AndreaCrotti/yasnippet-snippets",
   "unstable": {
    "version": [
-    20240221,
-    1621
+    20240507,
+    943
    ],
    "deps": [
     "yasnippet"
    ],
-   "commit": "e6ec9f1822913cea7dc67cde6aeb8f2625980950",
-   "sha256": "0jvpsqbfl5ax2jzc30hkhd7z9l98ncnaqnpl72lws8iknhjnd29k"
+   "commit": "6fafad13bb4689600285d9e38c61958dd63c356d",
+   "sha256": "0p38k8a3l9vpph1g2a6wz40y30wb2nhp770rv8947bxzjc5xc0gf"
   },
   "stable": {
    "version": [
@@ -130575,14 +131026,14 @@
   "repo": "ymherklotz/emacs-zettelkasten",
   "unstable": {
    "version": [
-    20230108,
-    1724
+    20240517,
+    1319
    ],
    "deps": [
     "s"
    ],
-   "commit": "cc4d69c302a46b8f802a1871aae091df1f3398ba",
-   "sha256": "16an3pym99r0w6810zw1m1jydb7zvk01mw55zxl64kjc37zdlckr"
+   "commit": "6a33faf7b4231b03d056099a1aff40bbeee6e720",
+   "sha256": "0y67wpkivv947v0hi1n32azb8l9avxy7ss51psyyl5bnpzynxhxa"
   },
   "stable": {
    "version": [
diff --git a/pkgs/applications/editors/emacs/elisp-packages/update-from-overlay.flake.sh b/pkgs/applications/editors/emacs/elisp-packages/update-from-overlay.flake.sh
new file mode 100755
index 0000000000000..6f8e4d058c733
--- /dev/null
+++ b/pkgs/applications/editors/emacs/elisp-packages/update-from-overlay.flake.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env nix
+#! nix shell nixpkgs#bash nixpkgs#curl nixpkgs#nix nixpkgs#coreutils --command bash
+set -xeuo pipefail
+
+# Since flakes are not stable yet, we can't suppose everyone is using them.
+# Therefore, the original ./update-from-overlay should not be modified.
+# So, let's create a wrapper!
+
+source ./update-from-overlay
diff --git a/pkgs/applications/editors/emacs/sources.nix b/pkgs/applications/editors/emacs/sources.nix
index c8f80ef9fe6c9..aecd0b1fd66dc 100644
--- a/pkgs/applications/editors/emacs/sources.nix
+++ b/pkgs/applications/editors/emacs/sources.nix
@@ -24,7 +24,7 @@ let
         "mainline" = "https://www.gnu.org/software/emacs/";
         "macport" = "https://bitbucket.org/mituharu/emacs-mac/";
       }.${variant};
-      description = "The extensible, customizable GNU text editor"
+      description = "Extensible, customizable GNU text editor"
                     + lib.optionalString (variant == "macport") " - macport variant";
       longDescription = ''
       GNU Emacs is an extensible, customizable text editor—and more. At its core
diff --git a/pkgs/applications/editors/gnome-builder/default.nix b/pkgs/applications/editors/gnome-builder/default.nix
index f0e7b272f8a73..9bcbbe32d1c1a 100644
--- a/pkgs/applications/editors/gnome-builder/default.nix
+++ b/pkgs/applications/editors/gnome-builder/default.nix
@@ -40,15 +40,15 @@
 , xvfb-run
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-builder";
-  version = "46.1";
+  version = "46.2";
 
   outputs = [ "out" "devdoc" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-lhaWbVIqLIUCizPAm605cudp6fkK91VNXnGDfb3HiHE=";
+    url = "mirror://gnome/sources/gnome-builder/${lib.versions.major finalAttrs.version}/gnome-builder-${finalAttrs.version}.tar.xz";
+    hash = "sha256-DIV7iQA7JHh/Kx0qrhLSdaB0xmhLSIA7SMACdtk3GWM=";
   };
 
   patches = [
@@ -154,11 +154,11 @@ stdenv.mkDerivation rec {
   '';
 
   passthru.updateScript = gnome.updateScript {
-    packageName = pname;
+    packageName = "gnome-builder";
   };
 
   meta = with lib; {
-    description = "An IDE for writing GNOME-based software";
+    description = "IDE for writing GNOME-based software";
     longDescription = ''
       Global search, auto-completion, source code map, documentation
       reference, and other features expected in an IDE, but with a focus
@@ -175,4 +175,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     mainProgram = "gnome-builder";
   };
-}
+})
diff --git a/pkgs/applications/editors/gnome-latex/default.nix b/pkgs/applications/editors/gnome-latex/default.nix
index 505bddde4f5eb..2c9ecd828a643 100644
--- a/pkgs/applications/editors/gnome-latex/default.nix
+++ b/pkgs/applications/editors/gnome-latex/default.nix
@@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/swilmet/gnome-latex";
-    description = "A LaTeX editor for the GNOME desktop";
+    description = "LaTeX editor for the GNOME desktop";
     maintainers = with maintainers; [ manveru bobby285271 ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/editors/gobby/default.nix b/pkgs/applications/editors/gobby/default.nix
index 8801afa34e6c4..489a790e9e237 100644
--- a/pkgs/applications/editors/gobby/default.nix
+++ b/pkgs/applications/editors/gobby/default.nix
@@ -22,7 +22,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://gobby.0x539.de/";
-    description = "A GTK-based collaborative editor supporting multiple documents in one session and a multi-user chat";
+    description = "GTK-based collaborative editor supporting multiple documents in one session and a multi-user chat";
     mainProgram = "gobby-0.5";
     license = lib.licenses.gpl2Plus;
     maintainers = [ ];
diff --git a/pkgs/applications/editors/greenfoot/default.nix b/pkgs/applications/editors/greenfoot/default.nix
index e4734355fd551..50a912fd0f01c 100644
--- a/pkgs/applications/editors/greenfoot/default.nix
+++ b/pkgs/applications/editors/greenfoot/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple integrated development environment for Java";
+    description = "Simple integrated development environment for Java";
     homepage = "https://www.greenfoot.org/";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.gpl2ClasspathPlus;
diff --git a/pkgs/applications/editors/heh/default.nix b/pkgs/applications/editors/heh/default.nix
index 23d9ffafea20a..7fd704ab6e8bb 100644
--- a/pkgs/applications/editors/heh/default.nix
+++ b/pkgs/applications/editors/heh/default.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-YcTaLq04NhmnJ1pdbiKMRIBSFvHNWNgoAS8Uz8uGGAw=";
 
   meta = with lib; {
-    description = "A cross-platform terminal UI used for modifying file data in hex or ASCII.";
+    description = "Cross-platform terminal UI used for modifying file data in hex or ASCII";
     homepage = "https://github.com/ndd7xv/heh";
     changelog = "https://github.com/ndd7xv/heh/releases/tag/${src.rev}";
     license = with licenses; [ mit ];
diff --git a/pkgs/applications/editors/helix/default.nix b/pkgs/applications/editors/helix/default.nix
index 382104a3d7f70..fe2979bc56baf 100644
--- a/pkgs/applications/editors/helix/default.nix
+++ b/pkgs/applications/editors/helix/default.nix
@@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A post-modern modal text editor";
+    description = "Post-modern modal text editor";
     homepage = "https://helix-editor.com";
     license = licenses.mpl20;
     mainProgram = "hx";
diff --git a/pkgs/applications/editors/hexdino/default.nix b/pkgs/applications/editors/hexdino/default.nix
index 8ebd84cf248db..1fb7449791512 100644
--- a/pkgs/applications/editors/hexdino/default.nix
+++ b/pkgs/applications/editors/hexdino/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-nldA8gDMj0iO+HgatiuMqzR6ZCjbxFsTp5pDGbFKA1k=";
 
   meta = with lib; {
-    description = "A hex editor with vim like keybindings written in Rust";
+    description = "Hex editor with vim like keybindings written in Rust";
     homepage = "https://github.com/Luz/hexdino";
     license = licenses.mit;
     maintainers = [ maintainers.luz ];
diff --git a/pkgs/applications/editors/howl/default.nix b/pkgs/applications/editors/howl/default.nix
index 9406604413c4d..3a261f3e8714c 100644
--- a/pkgs/applications/editors/howl/default.nix
+++ b/pkgs/applications/editors/howl/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://howl.io/";
-    description = "A general purpose, fast and lightweight editor with a keyboard-centric minimalistic user interface";
+    description = "General purpose, fast and lightweight editor with a keyboard-centric minimalistic user interface";
     license = licenses.mit;
     maintainers = with maintainers; [ pacien ];
     mainProgram = "howl";
diff --git a/pkgs/applications/editors/jed/default.nix b/pkgs/applications/editors/jed/default.nix
index 29c8bc258ccbd..3bf06286f6d5c 100644
--- a/pkgs/applications/editors/jed/default.nix
+++ b/pkgs/applications/editors/jed/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A programmable text editor written around S-Lang";
+    description = "Programmable text editor written around S-Lang";
     longDescription = ''
       JED is a freely available text editor for Unix, VMS, MSDOS, OS/2, BeOS,
       QNX, and win9X/NT platforms. Although it is a powerful editor designed for
diff --git a/pkgs/applications/editors/jedit/default.nix b/pkgs/applications/editors/jedit/default.nix
index 8fdf8e7c8de26..a2ea101d61c38 100644
--- a/pkgs/applications/editors/jedit/default.nix
+++ b/pkgs/applications/editors/jedit/default.nix
@@ -104,7 +104,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A programmer's text editor written in Java";
+    description = "Programmer's text editor written in Java";
     homepage = "http://www.jedit.org";
     license = lib.licenses.gpl2Only;
     mainProgram = "jedit";
diff --git a/pkgs/applications/editors/jetbrains/bin/linux.nix b/pkgs/applications/editors/jetbrains/bin/linux.nix
index ca70c4e4cec57..1effb9def0079 100644
--- a/pkgs/applications/editors/jetbrains/bin/linux.nix
+++ b/pkgs/applications/editors/jetbrains/bin/linux.nix
@@ -110,7 +110,7 @@ with stdenv; lib.makeOverridable mkDerivation (rec {
       --set-default JDK_HOME "$jdk" \
       --set-default ANDROID_JAVA_HOME "$jdk" \
       --set-default JAVA_HOME "$jdk" \
-      --set-default JETBRAINSCLIENT_JDK "$jdk" \
+      --set-default JETBRAINS_CLIENT_JDK "$jdk" \
       --set-default ${hiName}_JDK "$jdk" \
       --set-default ${hiName}_VM_OPTIONS ${vmoptsFile}
 
diff --git a/pkgs/applications/editors/jetbrains/bin/versions.json b/pkgs/applications/editors/jetbrains/bin/versions.json
index 8fc5468aa5882..5078fb22eec9e 100644
--- a/pkgs/applications/editors/jetbrains/bin/versions.json
+++ b/pkgs/applications/editors/jetbrains/bin/versions.json
@@ -3,524 +3,524 @@
     "clion": {
       "update-channel": "CLion RELEASE",
       "url-template": "https://download.jetbrains.com/cpp/CLion-{version}.tar.gz",
-      "version": "2024.1.1",
-      "sha256": "299ff2eb9c91282df074c58c0ecf73ecf59c7d077bc309f085229eaa32fbd46d",
-      "url": "https://download.jetbrains.com/cpp/CLion-2024.1.1.tar.gz",
-      "build_number": "241.15989.121"
+      "version": "2024.1.3",
+      "sha256": "96f90b3898ce1393381f4ba4a46356b07993bb44e09680df383898bca3f508a3",
+      "url": "https://download.jetbrains.com/cpp/CLion-2024.1.3.tar.gz",
+      "build_number": "241.17890.19"
     },
     "datagrip": {
       "update-channel": "DataGrip RELEASE",
       "url-template": "https://download.jetbrains.com/datagrip/datagrip-{version}.tar.gz",
-      "version": "2024.1.2",
-      "sha256": "449ca450179bda3a342f92ff0fe44e52b51c11adcda4d2836a215282ffc0fc95",
-      "url": "https://download.jetbrains.com/datagrip/datagrip-2024.1.2.tar.gz",
-      "build_number": "241.15989.49"
+      "version": "2024.1.4",
+      "sha256": "16b918fc53004726454e0c08e2a77adbabae34c6852eb1c0612635d3667e73a5",
+      "url": "https://download.jetbrains.com/datagrip/datagrip-2024.1.4.tar.gz",
+      "build_number": "241.17890.24"
     },
     "dataspell": {
       "update-channel": "DataSpell RELEASE",
       "url-template": "https://download.jetbrains.com/python/dataspell-{version}.tar.gz",
-      "version": "2024.1.1",
-      "sha256": "0913a4938c7df68796b4d29cf0cf8d836da270aa34239fc7d756138f21e1a895",
-      "url": "https://download.jetbrains.com/python/dataspell-2024.1.1.tar.gz",
-      "build_number": "241.15989.62"
+      "version": "2024.1.2",
+      "sha256": "5013b652c4bb7c8be3e8b518f3d7acd83c4d1c371c8703e6bcfebec7854d4c28",
+      "url": "https://download.jetbrains.com/python/dataspell-2024.1.2.tar.gz",
+      "build_number": "241.17890.10"
     },
     "gateway": {
       "update-channel": "Gateway RELEASE",
       "url-template": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-{version}.tar.gz",
-      "version": "2024.1.1",
-      "sha256": "d83df71dacb8d71cd7af6ca06267b7006b9172d121b316a8a3ad41db7c870193",
-      "url": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2024.1.1.tar.gz",
-      "build_number": "241.15989.158"
+      "version": "2024.1.2",
+      "sha256": "d0ca5471d4e445ea931b25d1ee55cec0c40bb455de1aec861d5aa5ca0bbc176d",
+      "url": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2024.1.2.tar.gz",
+      "build_number": "241.17011.87"
     },
     "goland": {
       "update-channel": "GoLand RELEASE",
       "url-template": "https://download.jetbrains.com/go/goland-{version}.tar.gz",
-      "version": "2024.1.1",
-      "sha256": "d952641bb05a38c771ae64b381f7d3735e20695df89180cc7f5ba9b31c0e437d",
-      "url": "https://download.jetbrains.com/go/goland-2024.1.1.tar.gz",
-      "build_number": "241.15989.157"
+      "version": "2024.1.3",
+      "sha256": "9937511083ab4bc0fb83463d1e0e7f2b054856c1e2064f43a7b1bd9ad899e3b3",
+      "url": "https://download.jetbrains.com/go/goland-2024.1.3.tar.gz",
+      "build_number": "241.17890.21"
     },
     "idea-community": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIC-{version}.tar.gz",
-      "version": "2024.1.1",
-      "sha256": "4d4221630c4d1dcb9f198370f82d9364014a4a624684ad8b3958be9f01eb656a",
-      "url": "https://download.jetbrains.com/idea/ideaIC-2024.1.1.tar.gz",
-      "build_number": "241.15989.150"
+      "version": "2024.1.3",
+      "sha256": "d2ae9701c948f77464415928891446e83e31abd3275a0d331febb7d58e1e1b97",
+      "url": "https://download.jetbrains.com/idea/ideaIC-2024.1.3.tar.gz",
+      "build_number": "241.17890.1"
     },
     "idea-ultimate": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIU-{version}.tar.gz",
-      "version": "2024.1.1",
-      "sha256": "d78b5ad0cf8325ca0659aae36b9979a581dab6cf8c7cd127cfb7f86440f282c9",
-      "url": "https://download.jetbrains.com/idea/ideaIU-2024.1.1.tar.gz",
-      "build_number": "241.15989.150"
+      "version": "2024.1.3",
+      "sha256": "358ddba5a187cb900efff7df06b1ffdda5a16d1e12cdf49328db486a066f6352",
+      "url": "https://download.jetbrains.com/idea/ideaIU-2024.1.3.tar.gz",
+      "build_number": "241.17890.1"
     },
     "mps": {
       "update-channel": "MPS RELEASE",
       "url-template": "https://download.jetbrains.com/mps/{versionMajorMinor}/MPS-{version}.tar.gz",
-      "version": "2023.3",
-      "sha256": "7f40c6a9b29e17e29fd2acb2e0d1d31d3353e28fce31a479dd81dd1b66c1fa8c",
-      "url": "https://download.jetbrains.com/mps/2023.3/MPS-2023.3.tar.gz",
-      "build_number": "233.13135.979"
+      "version": "2023.3.1",
+      "sha256": "52a40fe05dd8d53a3f68faa7a6e40b73f72f80db5976d8ebd781955493a65fe1",
+      "url": "https://download.jetbrains.com/mps/2023.3/MPS-2023.3.1.tar.gz",
+      "build_number": "233.13135.1068"
     },
     "phpstorm": {
       "update-channel": "PhpStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}.tar.gz",
-      "version": "2024.1.1",
-      "sha256": "bb3d10d5ce7419f5123937bcd40f1584fca4b844a2f83b6850fec57cd1f44282",
-      "url": "https://download.jetbrains.com/webide/PhpStorm-2024.1.1.tar.gz",
-      "build_number": "241.15989.102",
+      "version": "2024.1.3",
+      "sha256": "d785599f7d6bfdfb746eec68d5e606fe6df370909138243c35c549b574759432",
+      "url": "https://download.jetbrains.com/webide/PhpStorm-2024.1.3.tar.gz",
+      "build_number": "241.17890.8",
       "version-major-minor": "2022.3"
     },
     "pycharm-community": {
       "update-channel": "PyCharm RELEASE",
       "url-template": "https://download.jetbrains.com/python/pycharm-community-{version}.tar.gz",
-      "version": "2024.1.1",
-      "sha256": "715f30966c5597adc6ef544051a796de8a6cc5a5182938b8e14a1e6ad5e5edfd",
-      "url": "https://download.jetbrains.com/python/pycharm-community-2024.1.1.tar.gz",
-      "build_number": "241.15989.155"
+      "version": "2024.1.3",
+      "sha256": "7c05b5ade8c5eea48677d83a2ec816a86559dadfcf04c67f2c8584acf8716bc3",
+      "url": "https://download.jetbrains.com/python/pycharm-community-2024.1.3.tar.gz",
+      "build_number": "241.17890.14"
     },
     "pycharm-professional": {
       "update-channel": "PyCharm RELEASE",
       "url-template": "https://download.jetbrains.com/python/pycharm-professional-{version}.tar.gz",
-      "version": "2024.1.1",
-      "sha256": "b7e12b8d16164137f4cb0677fcac18af78aa117d33c511cce3fcf3972b4e3b17",
-      "url": "https://download.jetbrains.com/python/pycharm-professional-2024.1.1.tar.gz",
-      "build_number": "241.15989.155"
+      "version": "2024.1.3",
+      "sha256": "be3be94349ec55726fe9180d8a46097e7110a9e1cb7fd2cca85b961814a6e415",
+      "url": "https://download.jetbrains.com/python/pycharm-professional-2024.1.3.tar.gz",
+      "build_number": "241.17890.14"
     },
     "rider": {
       "update-channel": "Rider RELEASE",
       "url-template": "https://download.jetbrains.com/rider/JetBrains.Rider-{version}.tar.gz",
-      "version": "2024.1.1",
-      "sha256": "390967705d8e13f39754cbf39a9bec2bb33c6d0f8eeffcdb3d68a5c9ced696ea",
-      "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2024.1.1.tar.gz",
-      "build_number": "241.14494.325"
+      "version": "2024.1.3",
+      "sha256": "9cb256e2c12c493a5bbb7c84a44aa618732c67a137fa0eddb748a777e25b29d5",
+      "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2024.1.3.tar.gz",
+      "build_number": "241.17011.166"
     },
     "ruby-mine": {
       "update-channel": "RubyMine RELEASE",
       "url-template": "https://download.jetbrains.com/ruby/RubyMine-{version}.tar.gz",
-      "version": "2024.1.1",
-      "sha256": "32e324e976c63e6f5897b392469240382baf5ab94c700b7f75c4a575a1f5d1dc",
-      "url": "https://download.jetbrains.com/ruby/RubyMine-2024.1.1.tar.gz",
-      "build_number": "241.15989.113"
+      "version": "2024.1.3",
+      "sha256": "e732aaf0dc07aaef7b9bff08d8335ed5361ff179f4e50f5cd6433884527fb452",
+      "url": "https://download.jetbrains.com/ruby/RubyMine-2024.1.3.tar.gz",
+      "build_number": "241.17890.15"
     },
     "rust-rover": {
-      "update-channel": "RustRover EAP",
+      "update-channel": "RustRover RELEASE",
       "url-template": "https://download.jetbrains.com/rustrover/RustRover-{version}.tar.gz",
-      "version": "2024.1 EAP",
-      "sha256": "10a904c833990c4621f919a36d31744dd1700dce42ff3addbc909937b6f6329d",
-      "url": "https://download.jetbrains.com/rustrover/RustRover-241.15989.101.tar.gz",
-      "build_number": "241.15989.101"
+      "version": "2024.1.1",
+      "sha256": "a0abd85542dd02d82f6adeabd4fa819731003883f0b6cac8a86f421f2a6f1c39",
+      "url": "https://download.jetbrains.com/rustrover/RustRover-2024.1.1.tar.gz",
+      "build_number": "241.15989.206"
     },
     "webstorm": {
       "update-channel": "WebStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webstorm/WebStorm-{version}.tar.gz",
-      "version": "2024.1.2",
-      "sha256": "10110ac54ab7db1ca4560f83fdb921ca6217437dba1ad4ceb1c6cf0887ec5f29",
-      "url": "https://download.jetbrains.com/webstorm/WebStorm-2024.1.2.tar.gz",
-      "build_number": "241.15989.105"
+      "version": "2024.1.4",
+      "sha256": "d22f38c8c02520deef21a57f3c85800dcf44a2ace8174a6dd0daa0a2789d5657",
+      "url": "https://download.jetbrains.com/webstorm/WebStorm-2024.1.4.tar.gz",
+      "build_number": "241.17890.13"
     },
     "writerside": {
       "update-channel": "Writerside EAP",
       "url-template": "https://download.jetbrains.com/writerside/writerside-{version}.tar.gz",
       "version": "2024.1 EAP",
-      "sha256": "24da41b0eb4ca23652d05ecbccc5d2c792c3d49a964d8b6eb765ccd9cbcc7c3d",
-      "url": "https://download.jetbrains.com/writerside/writerside-241.15989.11.tar.gz",
-      "build_number": "241.15989.11"
+      "sha256": "efb69c46ab8f3a461c42d5b6d4f7e843d01f584ae97030110d36d71de453e320",
+      "url": "https://download.jetbrains.com/writerside/writerside-241.16003.85.tar.gz",
+      "build_number": "241.16003.85"
     }
   },
   "aarch64-linux": {
     "clion": {
       "update-channel": "CLion RELEASE",
       "url-template": "https://download.jetbrains.com/cpp/CLion-{version}-aarch64.tar.gz",
-      "version": "2024.1.1",
-      "sha256": "2323f3b64f690b0b099cdcb14ef6b80440abafda1c0113a6b96df9656167e638",
-      "url": "https://download.jetbrains.com/cpp/CLion-2024.1.1-aarch64.tar.gz",
-      "build_number": "241.15989.121"
+      "version": "2024.1.3",
+      "sha256": "0609fefc65d5bafcb4fff54d9c4b135ec305d058dc3f350f659c6389bf944eb9",
+      "url": "https://download.jetbrains.com/cpp/CLion-2024.1.3-aarch64.tar.gz",
+      "build_number": "241.17890.19"
     },
     "datagrip": {
       "update-channel": "DataGrip RELEASE",
       "url-template": "https://download.jetbrains.com/datagrip/datagrip-{version}-aarch64.tar.gz",
-      "version": "2024.1.2",
-      "sha256": "98b9a89ba49fa16376dbdec01412893635465a67ee482c80f9c48e10dcf0bead",
-      "url": "https://download.jetbrains.com/datagrip/datagrip-2024.1.2-aarch64.tar.gz",
-      "build_number": "241.15989.49"
+      "version": "2024.1.4",
+      "sha256": "e9ec44d7a219c3d6d1ae7cd2fd59bd67f62997f403f17154d9de3f700b52c412",
+      "url": "https://download.jetbrains.com/datagrip/datagrip-2024.1.4-aarch64.tar.gz",
+      "build_number": "241.17890.24"
     },
     "dataspell": {
       "update-channel": "DataSpell RELEASE",
       "url-template": "https://download.jetbrains.com/python/dataspell-{version}-aarch64.tar.gz",
-      "version": "2024.1.1",
-      "sha256": "3ee14b5d19d15ef652c6ca7ff8026d438980de5c28ce0375e8418a32fe8fed62",
-      "url": "https://download.jetbrains.com/python/dataspell-2024.1.1-aarch64.tar.gz",
-      "build_number": "241.15989.62"
+      "version": "2024.1.2",
+      "sha256": "d5060ecc3909f8e21a8b29224c16f874c3c634ae7ca4c649821c467d744a556c",
+      "url": "https://download.jetbrains.com/python/dataspell-2024.1.2-aarch64.tar.gz",
+      "build_number": "241.17890.10"
     },
     "gateway": {
       "update-channel": "Gateway RELEASE",
       "url-template": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-{version}-aarch64.tar.gz",
-      "version": "2024.1.1",
-      "sha256": "6ea42d3605f5dc25b67b5254947bb3cd1a3cce7e81520ae5f486224bbbbc5de3",
-      "url": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2024.1.1-aarch64.tar.gz",
-      "build_number": "241.15989.158"
+      "version": "2024.1.2",
+      "sha256": "ca3983e280d2184ce806741d47c72fb9d8e3610c89ee7e56940960a8385b473b",
+      "url": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2024.1.2-aarch64.tar.gz",
+      "build_number": "241.17011.87"
     },
     "goland": {
       "update-channel": "GoLand RELEASE",
       "url-template": "https://download.jetbrains.com/go/goland-{version}-aarch64.tar.gz",
-      "version": "2024.1.1",
-      "sha256": "d5577561744d4cedf7c092acde9faafbcd57527678693a964517383cdf831eeb",
-      "url": "https://download.jetbrains.com/go/goland-2024.1.1-aarch64.tar.gz",
-      "build_number": "241.15989.157"
+      "version": "2024.1.3",
+      "sha256": "b8caa2618cd85c4bc3a4d95c6f1ec4207f93e754048fff571f1d667536512e45",
+      "url": "https://download.jetbrains.com/go/goland-2024.1.3-aarch64.tar.gz",
+      "build_number": "241.17890.21"
     },
     "idea-community": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIC-{version}-aarch64.tar.gz",
-      "version": "2024.1.1",
-      "sha256": "ae95111e01ce8f2f6dc0083306f121d8eb229dc001f1a5f0d69e4d20b2bc1d3c",
-      "url": "https://download.jetbrains.com/idea/ideaIC-2024.1.1-aarch64.tar.gz",
-      "build_number": "241.15989.150"
+      "version": "2024.1.3",
+      "sha256": "d484fe1eac4b08109880ce207d208dec19782ee786fd393c19caa2dc31abbc1f",
+      "url": "https://download.jetbrains.com/idea/ideaIC-2024.1.3-aarch64.tar.gz",
+      "build_number": "241.17890.1"
     },
     "idea-ultimate": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIU-{version}-aarch64.tar.gz",
-      "version": "2024.1.1",
-      "sha256": "4cec9ac0fbc1468708a9ae226a94d0ad1ef73829d49537d4363abd2ecda4bc62",
-      "url": "https://download.jetbrains.com/idea/ideaIU-2024.1.1-aarch64.tar.gz",
-      "build_number": "241.15989.150"
+      "version": "2024.1.3",
+      "sha256": "0d913b3d78f254e13ee3edf0f868067eebdb586f25cb3be439b8067e0d5689fb",
+      "url": "https://download.jetbrains.com/idea/ideaIU-2024.1.3-aarch64.tar.gz",
+      "build_number": "241.17890.1"
     },
     "mps": {
       "update-channel": "MPS RELEASE",
       "url-template": "https://download.jetbrains.com/mps/{versionMajorMinor}/MPS-{version}.tar.gz",
-      "version": "2023.3",
+      "version": "2023.3.1",
       "sha256": "7f40c6a9b29e17e29fd2acb2e0d1d31d3353e28fce31a479dd81dd1b66c1fa8c",
-      "url": "https://download.jetbrains.com/mps/2023.3/MPS-2023.3.tar.gz",
-      "build_number": "233.13135.979"
+      "url": "https://download.jetbrains.com/mps/2023.3.1/MPS-2023.3.1.tar.gz",
+      "build_number": "233.13135.1068"
     },
     "phpstorm": {
       "update-channel": "PhpStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}-aarch64.tar.gz",
-      "version": "2024.1.1",
-      "sha256": "c1ff0b85679cee8c17ee3ea4b19ccb3278540821c7162354bee900d95cbc52a4",
-      "url": "https://download.jetbrains.com/webide/PhpStorm-2024.1.1-aarch64.tar.gz",
-      "build_number": "241.15989.102",
+      "version": "2024.1.3",
+      "sha256": "4c9637be78764d7f41394a23a1477c42346f3211a9f31683f3beb7dbeef700e7",
+      "url": "https://download.jetbrains.com/webide/PhpStorm-2024.1.3-aarch64.tar.gz",
+      "build_number": "241.17890.8",
       "version-major-minor": "2022.3"
     },
     "pycharm-community": {
       "update-channel": "PyCharm RELEASE",
       "url-template": "https://download.jetbrains.com/python/pycharm-community-{version}-aarch64.tar.gz",
-      "version": "2024.1.1",
-      "sha256": "525c18749d9e2abd3ae2abea68c6be202348a9a026077f5782042baf12acf100",
-      "url": "https://download.jetbrains.com/python/pycharm-community-2024.1.1-aarch64.tar.gz",
-      "build_number": "241.15989.155"
+      "version": "2024.1.3",
+      "sha256": "bf3156d442119f6a522c08e888a591d6c199a441550bff90ee5729087d0401b9",
+      "url": "https://download.jetbrains.com/python/pycharm-community-2024.1.3-aarch64.tar.gz",
+      "build_number": "241.17890.14"
     },
     "pycharm-professional": {
       "update-channel": "PyCharm RELEASE",
       "url-template": "https://download.jetbrains.com/python/pycharm-professional-{version}-aarch64.tar.gz",
-      "version": "2024.1.1",
-      "sha256": "141fbfb473e78270ec161f938963c77cdaad16cfc32985b9ec7a70fdb5e3e0bc",
-      "url": "https://download.jetbrains.com/python/pycharm-professional-2024.1.1-aarch64.tar.gz",
-      "build_number": "241.15989.155"
+      "version": "2024.1.3",
+      "sha256": "44f6134f352d0d3754a29d6ca6a6c2a084a2918d302946b45141714f3b8ceaaf",
+      "url": "https://download.jetbrains.com/python/pycharm-professional-2024.1.3-aarch64.tar.gz",
+      "build_number": "241.17890.14"
     },
     "rider": {
       "update-channel": "Rider RELEASE",
       "url-template": "https://download.jetbrains.com/rider/JetBrains.Rider-{version}-aarch64.tar.gz",
-      "version": "2024.1.1",
-      "sha256": "9f079193067cf1e4595a5142bb2341187e8730f3551b4583c940f2822d9c5be2",
-      "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2024.1.1-aarch64.tar.gz",
-      "build_number": "241.14494.325"
+      "version": "2024.1.3",
+      "sha256": "8991e31b3edc0a4347a9711e4f7267b91d3176d47abfa4f560d83d214ba70ff0",
+      "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2024.1.3-aarch64.tar.gz",
+      "build_number": "241.17011.166"
     },
     "ruby-mine": {
       "update-channel": "RubyMine RELEASE",
       "url-template": "https://download.jetbrains.com/ruby/RubyMine-{version}-aarch64.tar.gz",
-      "version": "2024.1.1",
-      "sha256": "87c7c6f86cc0337311eea595ee0754bcce3f4e88579c1f022abca19037ba7c51",
-      "url": "https://download.jetbrains.com/ruby/RubyMine-2024.1.1-aarch64.tar.gz",
-      "build_number": "241.15989.113"
+      "version": "2024.1.3",
+      "sha256": "420dfd86a2f6964ab47c38addc65cb71178dc14092a25c0df2c3635e1b6c5896",
+      "url": "https://download.jetbrains.com/ruby/RubyMine-2024.1.3-aarch64.tar.gz",
+      "build_number": "241.17890.15"
     },
     "rust-rover": {
-      "update-channel": "RustRover EAP",
+      "update-channel": "RustRover RELEASE",
       "url-template": "https://download.jetbrains.com/rustrover/RustRover-{version}-aarch64.tar.gz",
-      "version": "2024.1 EAP",
-      "sha256": "6ee90aee367cd9ecc8db99020133e17299113c1e016b3344a4762eb8b954317a",
-      "url": "https://download.jetbrains.com/rustrover/RustRover-241.15989.101-aarch64.tar.gz",
-      "build_number": "241.15989.101"
+      "version": "2024.1.1",
+      "sha256": "aa19d94bbe8618cdf6e3f18163dc9537cfac454fc2e4ff4f01c11dd98cdd6a89",
+      "url": "https://download.jetbrains.com/rustrover/RustRover-2024.1.1-aarch64.tar.gz",
+      "build_number": "241.15989.206"
     },
     "webstorm": {
       "update-channel": "WebStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webstorm/WebStorm-{version}-aarch64.tar.gz",
-      "version": "2024.1.2",
-      "sha256": "de1443570d2769e5dae11da2c3a8049c438f6f16b598a214ab000a300c148476",
-      "url": "https://download.jetbrains.com/webstorm/WebStorm-2024.1.2-aarch64.tar.gz",
-      "build_number": "241.15989.105"
+      "version": "2024.1.4",
+      "sha256": "a0d8462ecdae484b42f87729fe9d16283a1ff4375e0a7079d06e56a9c6b6ef09",
+      "url": "https://download.jetbrains.com/webstorm/WebStorm-2024.1.4-aarch64.tar.gz",
+      "build_number": "241.17890.13"
     },
     "writerside": {
       "update-channel": "Writerside EAP",
       "url-template": "https://download.jetbrains.com/writerside/writerside-{version}-aarch64.tar.gz",
       "version": "2024.1 EAP",
-      "sha256": "9b72a2422f2cb1f2bb2034ef4eaf130ee7a9062cf99ba53b8df62cc4e1c76c42",
-      "url": "https://download.jetbrains.com/writerside/writerside-241.15989.11-aarch64.tar.gz",
-      "build_number": "241.15989.11"
+      "sha256": "d9f764a8fcbdf13e67f1f152f790c38602792b07fdfd7a8935d320ed8ae68921",
+      "url": "https://download.jetbrains.com/writerside/writerside-241.16003.85-aarch64.tar.gz",
+      "build_number": "241.16003.85"
     }
   },
   "x86_64-darwin": {
     "clion": {
       "update-channel": "CLion RELEASE",
       "url-template": "https://download.jetbrains.com/cpp/CLion-{version}.dmg",
-      "version": "2024.1.1",
-      "sha256": "43a765102080acd6dc1fa5a26e0c5efcc3d2e7a22a0bf054a3b9ba4714a9c43e",
-      "url": "https://download.jetbrains.com/cpp/CLion-2024.1.1.dmg",
-      "build_number": "241.15989.121"
+      "version": "2024.1.3",
+      "sha256": "b08fb203c870c79a7778e44292968656e711416b985d6c60ed46dc1d6d0269a1",
+      "url": "https://download.jetbrains.com/cpp/CLion-2024.1.3.dmg",
+      "build_number": "241.17890.19"
     },
     "datagrip": {
       "update-channel": "DataGrip RELEASE",
       "url-template": "https://download.jetbrains.com/datagrip/datagrip-{version}.dmg",
-      "version": "2024.1.2",
-      "sha256": "41a4dabdd2ad97387d806742c41b34e5a1544860c159f5d71c09b00a1e605356",
-      "url": "https://download.jetbrains.com/datagrip/datagrip-2024.1.2.dmg",
-      "build_number": "241.15989.49"
+      "version": "2024.1.4",
+      "sha256": "2221288ed33060d67368aa9d56a8d7c25df8158b5d38bb26ddf145ef58de8721",
+      "url": "https://download.jetbrains.com/datagrip/datagrip-2024.1.4.dmg",
+      "build_number": "241.17890.24"
     },
     "dataspell": {
       "update-channel": "DataSpell RELEASE",
       "url-template": "https://download.jetbrains.com/python/dataspell-{version}.dmg",
-      "version": "2024.1.1",
-      "sha256": "dfbe160a8a1676dad81b5d5ca35d8d02258a5684c3a140bbb415edae575a058b",
-      "url": "https://download.jetbrains.com/python/dataspell-2024.1.1.dmg",
-      "build_number": "241.15989.62"
+      "version": "2024.1.2",
+      "sha256": "5284682b7446ec3328e73dd16d6c11c331487fd21a20029c8b9ddb38c7d00968",
+      "url": "https://download.jetbrains.com/python/dataspell-2024.1.2.dmg",
+      "build_number": "241.17890.10"
     },
     "gateway": {
       "update-channel": "Gateway RELEASE",
       "url-template": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-{version}.dmg",
-      "version": "2024.1.1",
-      "sha256": "0e230192d3532e4740a354bf7f58ae2efd4036607cb9ef4eaf4cca1ca0354df0",
-      "url": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2024.1.1.dmg",
-      "build_number": "241.15989.158"
+      "version": "2024.1.2",
+      "sha256": "be7e34b5a4a4e28b90c3d90f5761767d3d6e996cdc5846d3f8bd0e05d3ee0f1a",
+      "url": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2024.1.2.dmg",
+      "build_number": "241.17011.87"
     },
     "goland": {
       "update-channel": "GoLand RELEASE",
       "url-template": "https://download.jetbrains.com/go/goland-{version}.dmg",
-      "version": "2024.1.1",
-      "sha256": "189d8582a0474e1f6eac858f3528af85d6ca36918d659f66edf2fd26d70b07af",
-      "url": "https://download.jetbrains.com/go/goland-2024.1.1.dmg",
-      "build_number": "241.15989.157"
+      "version": "2024.1.3",
+      "sha256": "086a84677a4d72712673206a35d5d75dc793c8753fb92bc82b3410ca6356d2f7",
+      "url": "https://download.jetbrains.com/go/goland-2024.1.3.dmg",
+      "build_number": "241.17890.21"
     },
     "idea-community": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIC-{version}.dmg",
-      "version": "2024.1.1",
-      "sha256": "b38881e1db85082fe167b24e7022aef958a9129bf07b56aff47ec43ac894c427",
-      "url": "https://download.jetbrains.com/idea/ideaIC-2024.1.1.dmg",
-      "build_number": "241.15989.150"
+      "version": "2024.1.3",
+      "sha256": "8ad56d0c4517bdcfb8e970cce1d8e1b44672454eb658e14d452ee59bb5659a56",
+      "url": "https://download.jetbrains.com/idea/ideaIC-2024.1.3.dmg",
+      "build_number": "241.17890.1"
     },
     "idea-ultimate": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIU-{version}.dmg",
-      "version": "2024.1.1",
-      "sha256": "2a32561669c4f21ed134006d4fe9c948881dc3b8e12c00f11c1616952f6975cc",
-      "url": "https://download.jetbrains.com/idea/ideaIU-2024.1.1.dmg",
-      "build_number": "241.15989.150"
+      "version": "2024.1.3",
+      "sha256": "338dc0847fb71d3d83cef52705439f86a37052fae737cf9d36f01a2d27e40ad2",
+      "url": "https://download.jetbrains.com/idea/ideaIU-2024.1.3.dmg",
+      "build_number": "241.17890.1"
     },
     "mps": {
       "update-channel": "MPS RELEASE",
       "url-template": "https://download.jetbrains.com/mps/{versionMajorMinor}/MPS-{version}-macos.dmg",
-      "version": "2023.3",
+      "version": "2023.3.1",
       "sha256": "c1e46dcb3429772b164f423cedc644f388217d1e7310d682b2341f9e744333bf",
-      "url": "https://download.jetbrains.com/mps/2023.3/MPS-2023.3-macos.dmg",
-      "build_number": "233.13135.979"
+      "url": "https://download.jetbrains.com/mps/2023.3.1/MPS-2023.3.1-macos.dmg",
+      "build_number": "233.13135.1068"
     },
     "phpstorm": {
       "update-channel": "PhpStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}.dmg",
-      "version": "2024.1.1",
-      "sha256": "0232f3e562698bbacf8c72446fc868d50d2b308ce17b6a0655fe351b46370fa4",
-      "url": "https://download.jetbrains.com/webide/PhpStorm-2024.1.1.dmg",
-      "build_number": "241.15989.102",
+      "version": "2024.1.3",
+      "sha256": "68403a8f6afd6d0a13355dd6ea8b333a1fd785fd1422fe902105d3c02359ee04",
+      "url": "https://download.jetbrains.com/webide/PhpStorm-2024.1.3.dmg",
+      "build_number": "241.17890.8",
       "version-major-minor": "2022.3"
     },
     "pycharm-community": {
       "update-channel": "PyCharm RELEASE",
       "url-template": "https://download.jetbrains.com/python/pycharm-community-{version}.dmg",
-      "version": "2024.1.1",
-      "sha256": "73485ede957df2dc5c4a2936aa6d380fefccf1f5523407a1ad22ef6d757901d5",
-      "url": "https://download.jetbrains.com/python/pycharm-community-2024.1.1.dmg",
-      "build_number": "241.15989.155"
+      "version": "2024.1.3",
+      "sha256": "e115df42536457558b632647b93f86605feaca23bcec5af2d03a8c50ce80e81e",
+      "url": "https://download.jetbrains.com/python/pycharm-community-2024.1.3.dmg",
+      "build_number": "241.17890.14"
     },
     "pycharm-professional": {
       "update-channel": "PyCharm RELEASE",
       "url-template": "https://download.jetbrains.com/python/pycharm-professional-{version}.dmg",
-      "version": "2024.1.1",
-      "sha256": "3acd4e5f9d78229cc70664f25068732f7e0b7afa7f8895280e9698870e5cdccb",
-      "url": "https://download.jetbrains.com/python/pycharm-professional-2024.1.1.dmg",
-      "build_number": "241.15989.155"
+      "version": "2024.1.3",
+      "sha256": "01e29968ef3b5ef18b5425a1aa23d5a36d8c9f413a8ff6b0565f0d59e8601779",
+      "url": "https://download.jetbrains.com/python/pycharm-professional-2024.1.3.dmg",
+      "build_number": "241.17890.14"
     },
     "rider": {
       "update-channel": "Rider RELEASE",
       "url-template": "https://download.jetbrains.com/rider/JetBrains.Rider-{version}.dmg",
-      "version": "2024.1.1",
-      "sha256": "1c6f52b9629f77ca6a2f903fbadaae9dc80237b061dfeb94638d029a43bdf0c5",
-      "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2024.1.1.dmg",
-      "build_number": "241.14494.325"
+      "version": "2024.1.3",
+      "sha256": "54eccb5d26825ae5022ab57207197f4fea68a02a0e6c4dceb3c79ce81750b1e5",
+      "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2024.1.3.dmg",
+      "build_number": "241.17011.166"
     },
     "ruby-mine": {
       "update-channel": "RubyMine RELEASE",
       "url-template": "https://download.jetbrains.com/ruby/RubyMine-{version}.dmg",
-      "version": "2024.1.1",
-      "sha256": "839fe79e93a293a514e8abdaec60ca9a79cddb889fe4fe1287e2b74540a9ec57",
-      "url": "https://download.jetbrains.com/ruby/RubyMine-2024.1.1.dmg",
-      "build_number": "241.15989.113"
+      "version": "2024.1.3",
+      "sha256": "ed9c8bd4fcc4e9756f60f44d4cbb74b47031cee52503f5dc869e98b1be988d9d",
+      "url": "https://download.jetbrains.com/ruby/RubyMine-2024.1.3.dmg",
+      "build_number": "241.17890.15"
     },
     "rust-rover": {
-      "update-channel": "RustRover EAP",
+      "update-channel": "RustRover RELEASE",
       "url-template": "https://download.jetbrains.com/rustrover/RustRover-{version}.dmg",
-      "version": "2024.1 EAP",
-      "sha256": "c0b5885e7d85cc89d79110b4a56c3a08784c43b03e42686ec91cd4679bf9f469",
-      "url": "https://download.jetbrains.com/rustrover/RustRover-241.15989.101.dmg",
-      "build_number": "241.15989.101"
+      "version": "2024.1.1",
+      "sha256": "e7b23829baa464de3456757a880a8daf364c867c23a7ce1c126b1b210cdea400",
+      "url": "https://download.jetbrains.com/rustrover/RustRover-2024.1.1.dmg",
+      "build_number": "241.15989.206"
     },
     "webstorm": {
       "update-channel": "WebStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webstorm/WebStorm-{version}.dmg",
-      "version": "2024.1.2",
-      "sha256": "a5b79c530596bcef503847ea38a11263c871a9f8267d2e4fe4ef025c166d144f",
-      "url": "https://download.jetbrains.com/webstorm/WebStorm-2024.1.2.dmg",
-      "build_number": "241.15989.105"
+      "version": "2024.1.4",
+      "sha256": "d4a8a990f92a183911dd6f7a75c671b9851d77e9e269e9e2bc5e6973a0b9f691",
+      "url": "https://download.jetbrains.com/webstorm/WebStorm-2024.1.4.dmg",
+      "build_number": "241.17890.13"
     },
     "writerside": {
       "update-channel": "Writerside EAP",
       "url-template": "https://download.jetbrains.com/writerside/writerside-{version}.dmg",
       "version": "2024.1 EAP",
-      "sha256": "36ec40a47989be9ab263f4b9f182fcc5b155f3fd068174e7539adc55f892b230",
-      "url": "https://download.jetbrains.com/writerside/writerside-241.15989.11.dmg",
-      "build_number": "241.15989.11"
+      "sha256": "a9ad84d95ad86b38f35bec25032235b907e19ddf3ef696404f4341650a7eb7b1",
+      "url": "https://download.jetbrains.com/writerside/writerside-241.16003.85.dmg",
+      "build_number": "241.16003.85"
     }
   },
   "aarch64-darwin": {
     "clion": {
       "update-channel": "CLion RELEASE",
       "url-template": "https://download.jetbrains.com/cpp/CLion-{version}-aarch64.dmg",
-      "version": "2024.1.1",
-      "sha256": "08dab457cf1cb07e4489653f22a12e2997dea2b788ab0a5494de40a86b39f104",
-      "url": "https://download.jetbrains.com/cpp/CLion-2024.1.1-aarch64.dmg",
-      "build_number": "241.15989.121"
+      "version": "2024.1.3",
+      "sha256": "0d9e1267ac09a6384eba29088e627219fd00586c1055a1c2f46d1da10f1da467",
+      "url": "https://download.jetbrains.com/cpp/CLion-2024.1.3-aarch64.dmg",
+      "build_number": "241.17890.19"
     },
     "datagrip": {
       "update-channel": "DataGrip RELEASE",
       "url-template": "https://download.jetbrains.com/datagrip/datagrip-{version}-aarch64.dmg",
-      "version": "2024.1.2",
-      "sha256": "583c32f39918681673028a20cb911a41fc4495cf44c151c0790594042ec9e160",
-      "url": "https://download.jetbrains.com/datagrip/datagrip-2024.1.2-aarch64.dmg",
-      "build_number": "241.15989.49"
+      "version": "2024.1.4",
+      "sha256": "329bc223f5a3d16c68c2d271f2576f9e174ab88a9871b928f1dd8601b2d2cf70",
+      "url": "https://download.jetbrains.com/datagrip/datagrip-2024.1.4-aarch64.dmg",
+      "build_number": "241.17890.24"
     },
     "dataspell": {
       "update-channel": "DataSpell RELEASE",
       "url-template": "https://download.jetbrains.com/python/dataspell-{version}-aarch64.dmg",
-      "version": "2024.1.1",
-      "sha256": "eb345888f6e926439a1142614e10b36123b40fbd876d31060856c7e532b53f64",
-      "url": "https://download.jetbrains.com/python/dataspell-2024.1.1-aarch64.dmg",
-      "build_number": "241.15989.62"
+      "version": "2024.1.2",
+      "sha256": "ee69b1ed4ebfe1f4f41e6d617d4ccc8ac2d9a484dace45f2a3c0532a4a091ae2",
+      "url": "https://download.jetbrains.com/python/dataspell-2024.1.2-aarch64.dmg",
+      "build_number": "241.17890.10"
     },
     "gateway": {
       "update-channel": "Gateway RELEASE",
       "url-template": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-{version}-aarch64.dmg",
-      "version": "2024.1.1",
-      "sha256": "c82e70fd6688c218da7a541ac0a0d06652389112f73a667964ee7a8e0a5bfc44",
-      "url": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2024.1.1-aarch64.dmg",
-      "build_number": "241.15989.158"
+      "version": "2024.1.2",
+      "sha256": "70aab722715cb1abbab01e25109b6ca967588bcf3c1cec666986e42b825b0d9d",
+      "url": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2024.1.2-aarch64.dmg",
+      "build_number": "241.17011.87"
     },
     "goland": {
       "update-channel": "GoLand RELEASE",
       "url-template": "https://download.jetbrains.com/go/goland-{version}-aarch64.dmg",
-      "version": "2024.1.1",
-      "sha256": "c04972578b92b2e8a9c0dfa52c01f09d9ed8640f12cf17e454d37ae6bea24a4a",
-      "url": "https://download.jetbrains.com/go/goland-2024.1.1-aarch64.dmg",
-      "build_number": "241.15989.157"
+      "version": "2024.1.3",
+      "sha256": "9b4dc9d1374178b2f8f0a30004afc9c1ef2d009441d3e096a76bda7456758522",
+      "url": "https://download.jetbrains.com/go/goland-2024.1.3-aarch64.dmg",
+      "build_number": "241.17890.21"
     },
     "idea-community": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIC-{version}-aarch64.dmg",
-      "version": "2024.1.1",
-      "sha256": "fc5bdc7c325708d0754d9bd4868db02c1c3b9a14e910dd641b76478e5b805441",
-      "url": "https://download.jetbrains.com/idea/ideaIC-2024.1.1-aarch64.dmg",
-      "build_number": "241.15989.150"
+      "version": "2024.1.3",
+      "sha256": "0b51284ee1e1e1390f9bce1211ee8b48b03b4d5d2394fb7180b12f80a7817d63",
+      "url": "https://download.jetbrains.com/idea/ideaIC-2024.1.3-aarch64.dmg",
+      "build_number": "241.17890.1"
     },
     "idea-ultimate": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIU-{version}-aarch64.dmg",
-      "version": "2024.1.1",
-      "sha256": "bc1d350f18c493cd24c479f6c4f5b167b2cc62b8ff6e43e831b8ab90d4e079d2",
-      "url": "https://download.jetbrains.com/idea/ideaIU-2024.1.1-aarch64.dmg",
-      "build_number": "241.15989.150"
+      "version": "2024.1.3",
+      "sha256": "43fccfb343c69529b97a048adfde577d3ad3ee701240a2c9cace6936f4cd356d",
+      "url": "https://download.jetbrains.com/idea/ideaIU-2024.1.3-aarch64.dmg",
+      "build_number": "241.17890.1"
     },
     "mps": {
       "update-channel": "MPS RELEASE",
       "url-template": "https://download.jetbrains.com/mps/{versionMajorMinor}/MPS-{version}-macos-aarch64.dmg",
-      "version": "2023.3",
-      "url": "https://download.jetbrains.com/mps/2023.3/MPS-2023.3-macos-aarch64.dmg",
+      "version": "2023.3.1",
+      "url": "https://download.jetbrains.com/mps/2023.3.1/MPS-2023.3.1-macos-aarch64.dmg",
       "sha256": "133e5bae81d675a6ee7780efec18dd96dfed059dbfdd2ad4a1028d9956a1ec6e",
-      "build_number": "233.13135.979"
+      "build_number": "233.13135.1068"
     },
     "phpstorm": {
       "update-channel": "PhpStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}-aarch64.dmg",
-      "version": "2024.1.1",
-      "sha256": "b6b2b6181c724c320a491cea013c620f662e3fbc3a2f62718354d9e88c9d210d",
-      "url": "https://download.jetbrains.com/webide/PhpStorm-2024.1.1-aarch64.dmg",
-      "build_number": "241.15989.102",
+      "version": "2024.1.3",
+      "sha256": "e4b767f5348fc3854ffc057baeffcd10c0c293b5aa3cbeeb2d2e7bd14531a4bb",
+      "url": "https://download.jetbrains.com/webide/PhpStorm-2024.1.3-aarch64.dmg",
+      "build_number": "241.17890.8",
       "version-major-minor": "2022.3"
     },
     "pycharm-community": {
       "update-channel": "PyCharm RELEASE",
       "url-template": "https://download.jetbrains.com/python/pycharm-community-{version}-aarch64.dmg",
-      "version": "2024.1.1",
-      "sha256": "68e55873a82457fcb8eb1033dbb4e0be817f5b5423b067d8b632fbe5f1d6a4bb",
-      "url": "https://download.jetbrains.com/python/pycharm-community-2024.1.1-aarch64.dmg",
-      "build_number": "241.15989.155"
+      "version": "2024.1.3",
+      "sha256": "4f0112b2629faa60325e82d70e8864bb796a41942eb06ddb287ca1ef0d9feba9",
+      "url": "https://download.jetbrains.com/python/pycharm-community-2024.1.3-aarch64.dmg",
+      "build_number": "241.17890.14"
     },
     "pycharm-professional": {
       "update-channel": "PyCharm RELEASE",
       "url-template": "https://download.jetbrains.com/python/pycharm-professional-{version}-aarch64.dmg",
-      "version": "2024.1.1",
-      "sha256": "091a2531325c1df23619ee50998d5d7d7348dc9d25fd7416ccb07aa7d6100c39",
-      "url": "https://download.jetbrains.com/python/pycharm-professional-2024.1.1-aarch64.dmg",
-      "build_number": "241.15989.155"
+      "version": "2024.1.3",
+      "sha256": "28ec2b34fecc8abd38a1ba1661f8a3e784b7cb8d7cf496a51235475db66a190a",
+      "url": "https://download.jetbrains.com/python/pycharm-professional-2024.1.3-aarch64.dmg",
+      "build_number": "241.17890.14"
     },
     "rider": {
       "update-channel": "Rider RELEASE",
       "url-template": "https://download.jetbrains.com/rider/JetBrains.Rider-{version}-aarch64.dmg",
-      "version": "2024.1.1",
-      "sha256": "d197249cc5cb8fb3ec30f3ed5468dd6d7782e97adb1e48a0509d2415b48f7a1b",
-      "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2024.1.1-aarch64.dmg",
-      "build_number": "241.14494.325"
+      "version": "2024.1.3",
+      "sha256": "ecde83909aff440727db6641c3f071c06e35b06e2148703ffa4ff270670469e2",
+      "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2024.1.3-aarch64.dmg",
+      "build_number": "241.17011.166"
     },
     "ruby-mine": {
       "update-channel": "RubyMine RELEASE",
       "url-template": "https://download.jetbrains.com/ruby/RubyMine-{version}-aarch64.dmg",
-      "version": "2024.1.1",
-      "sha256": "5e6bd929f2b74145aa763ca277ade3c3512342b38a5a21a605c0b319f487b49e",
-      "url": "https://download.jetbrains.com/ruby/RubyMine-2024.1.1-aarch64.dmg",
-      "build_number": "241.15989.113"
+      "version": "2024.1.3",
+      "sha256": "a26d85b37141a4daacb0afbc58f269fdb5a5fbb49861a9881779e4b906a85ffe",
+      "url": "https://download.jetbrains.com/ruby/RubyMine-2024.1.3-aarch64.dmg",
+      "build_number": "241.17890.15"
     },
     "rust-rover": {
-      "update-channel": "RustRover EAP",
+      "update-channel": "RustRover RELEASE",
       "url-template": "https://download.jetbrains.com/rustrover/RustRover-{version}-aarch64.dmg",
-      "version": "2024.1 EAP",
-      "sha256": "1d63faf3d687508b976989768ee44ac3632017d55fce0557591dff2eae37d6a2",
-      "url": "https://download.jetbrains.com/rustrover/RustRover-241.15989.101-aarch64.dmg",
-      "build_number": "241.15989.101"
+      "version": "2024.1.1",
+      "sha256": "955a2da9eaa21593e457555653c1945c87a7b629b1a74d9e86f53a025e94c5ba",
+      "url": "https://download.jetbrains.com/rustrover/RustRover-2024.1.1-aarch64.dmg",
+      "build_number": "241.15989.206"
     },
     "webstorm": {
       "update-channel": "WebStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webstorm/WebStorm-{version}-aarch64.dmg",
-      "version": "2024.1.2",
-      "sha256": "b3ce2aabba5bc3afef95d768aa721bb245d2fce0ec8d69d61d011c2b23087d97",
-      "url": "https://download.jetbrains.com/webstorm/WebStorm-2024.1.2-aarch64.dmg",
-      "build_number": "241.15989.105"
+      "version": "2024.1.4",
+      "sha256": "37eaeeaf614e43215782c5af844e3df993cdc50e1370f5a6ecde562b3052218b",
+      "url": "https://download.jetbrains.com/webstorm/WebStorm-2024.1.4-aarch64.dmg",
+      "build_number": "241.17890.13"
     },
     "writerside": {
       "update-channel": "Writerside EAP",
       "url-template": "https://download.jetbrains.com/writerside/writerside-{version}-aarch64.dmg",
       "version": "2024.1 EAP",
-      "sha256": "624f9f2fb0ed7c7d42484e42c16b9b0ec0c542ad8187d81b11ef1d38576c589d",
-      "url": "https://download.jetbrains.com/writerside/writerside-241.15989.11-aarch64.dmg",
-      "build_number": "241.15989.11"
+      "sha256": "d3bb0079046570dbfa5175b388e091b1567c024a7ec8587e7c8e5389cf1bd721",
+      "url": "https://download.jetbrains.com/writerside/writerside-241.16003.85-aarch64.dmg",
+      "build_number": "241.16003.85"
     }
   }
 }
diff --git a/pkgs/applications/editors/jetbrains/plugins/default.nix b/pkgs/applications/editors/jetbrains/plugins/default.nix
index 40c7fdbc18533..93e6ca28608fa 100644
--- a/pkgs/applications/editors/jetbrains/plugins/default.nix
+++ b/pkgs/applications/editors/jetbrains/plugins/default.nix
@@ -63,8 +63,7 @@ let
       ids);
 
 
-in
-rec {
+in {
   # Only use if you know what youre doing
   raw = { inherit files byId byName; };
 
@@ -96,23 +95,19 @@ rec {
 
       inherit (ide) meta;
 
-      buildPhase =
-        let
-          pluginCmdsLines = map (plugin: "ln -s ${plugin} \"$out\"/${meta.mainProgram}/plugins/${baseNameOf plugin}") plugins;
-          pluginCmds = builtins.concatStringsSep "\n" pluginCmdsLines;
-        in
-        ''
-          cp -r ${ide} $out
-          chmod +w -R $out
-          IFS=' ' read -ra pluginArray <<< "$newPlugins"
-          for plugin in "''${pluginArray[@]}"
-          do
-            ln -s "$plugin" -t $out/${meta.mainProgram}/plugins/
-          done
-          sed "s|${ide.outPath}|$out|" \
-            -i $(realpath $out/bin/${meta.mainProgram}) \
-            -i $(realpath $out/bin/${meta.mainProgram}-remote-dev-server)
-          autoPatchelf $out
-        '';
+      buildPhase = ''
+        cp -r ${ide} $out
+        chmod +w -R $out
+        rm -f $out/${meta.mainProgram}/plugins/plugin-classpath.txt
+        IFS=' ' read -ra pluginArray <<< "$newPlugins"
+        for plugin in "''${pluginArray[@]}"
+        do
+          ln -s "$plugin" -t $out/${meta.mainProgram}/plugins/
+        done
+        sed "s|${ide.outPath}|$out|" \
+          -i $(realpath $out/bin/${meta.mainProgram}) \
+          -i $(realpath $out/bin/${meta.mainProgram}-remote-dev-server)
+        autoPatchelf $out
+      '';
     };
 }
diff --git a/pkgs/applications/editors/jetbrains/plugins/plugins.json b/pkgs/applications/editors/jetbrains/plugins/plugins.json
index cbc1207aabede..48b9fed7f85ab 100644
--- a/pkgs/applications/editors/jetbrains/plugins/plugins.json
+++ b/pkgs/applications/editors/jetbrains/plugins/plugins.json
@@ -17,17 +17,17 @@
         "webstorm"
       ],
       "builds": {
-        "233.13135.979": "https://plugins.jetbrains.com/files/164/515255/IdeaVim-2.10.2-signed.zip",
-        "241.14494.325": "https://plugins.jetbrains.com/files/164/515255/IdeaVim-2.10.2-signed.zip",
-        "241.15989.101": "https://plugins.jetbrains.com/files/164/515255/IdeaVim-2.10.2-signed.zip",
-        "241.15989.102": "https://plugins.jetbrains.com/files/164/515255/IdeaVim-2.10.2-signed.zip",
-        "241.15989.105": "https://plugins.jetbrains.com/files/164/515255/IdeaVim-2.10.2-signed.zip",
-        "241.15989.113": "https://plugins.jetbrains.com/files/164/515255/IdeaVim-2.10.2-signed.zip",
-        "241.15989.121": "https://plugins.jetbrains.com/files/164/515255/IdeaVim-2.10.2-signed.zip",
-        "241.15989.150": "https://plugins.jetbrains.com/files/164/515255/IdeaVim-2.10.2-signed.zip",
-        "241.15989.155": "https://plugins.jetbrains.com/files/164/515255/IdeaVim-2.10.2-signed.zip",
-        "241.15989.157": "https://plugins.jetbrains.com/files/164/515255/IdeaVim-2.10.2-signed.zip",
-        "241.15989.49": "https://plugins.jetbrains.com/files/164/515255/IdeaVim-2.10.2-signed.zip"
+        "233.13135.1068": "https://plugins.jetbrains.com/files/164/546759/IdeaVim-2.12.0-signed.zip",
+        "241.15989.206": "https://plugins.jetbrains.com/files/164/546759/IdeaVim-2.12.0-signed.zip",
+        "241.17011.166": "https://plugins.jetbrains.com/files/164/546759/IdeaVim-2.12.0-signed.zip",
+        "241.17890.1": "https://plugins.jetbrains.com/files/164/546759/IdeaVim-2.12.0-signed.zip",
+        "241.17890.13": "https://plugins.jetbrains.com/files/164/546759/IdeaVim-2.12.0-signed.zip",
+        "241.17890.14": "https://plugins.jetbrains.com/files/164/546759/IdeaVim-2.12.0-signed.zip",
+        "241.17890.15": "https://plugins.jetbrains.com/files/164/546759/IdeaVim-2.12.0-signed.zip",
+        "241.17890.19": "https://plugins.jetbrains.com/files/164/546759/IdeaVim-2.12.0-signed.zip",
+        "241.17890.21": "https://plugins.jetbrains.com/files/164/546759/IdeaVim-2.12.0-signed.zip",
+        "241.17890.24": "https://plugins.jetbrains.com/files/164/546759/IdeaVim-2.12.0-signed.zip",
+        "241.17890.8": "https://plugins.jetbrains.com/files/164/546759/IdeaVim-2.12.0-signed.zip"
       },
       "name": "ideavim"
     },
@@ -36,7 +36,7 @@
         "idea-ultimate"
       ],
       "builds": {
-        "241.15989.150": "https://plugins.jetbrains.com/files/631/530669/python-241.15989.166.zip"
+        "241.17890.1": "https://plugins.jetbrains.com/files/631/552809/python-241.17890.1.zip"
       },
       "name": "python"
     },
@@ -57,17 +57,17 @@
         "webstorm"
       ],
       "builds": {
-        "233.13135.979": null,
-        "241.14494.325": null,
-        "241.15989.101": null,
-        "241.15989.102": null,
-        "241.15989.105": null,
-        "241.15989.113": null,
-        "241.15989.121": null,
-        "241.15989.150": null,
-        "241.15989.155": null,
-        "241.15989.157": null,
-        "241.15989.49": null
+        "233.13135.1068": null,
+        "241.15989.206": null,
+        "241.17011.166": null,
+        "241.17890.1": null,
+        "241.17890.13": null,
+        "241.17890.14": null,
+        "241.17890.15": null,
+        "241.17890.19": null,
+        "241.17890.21": null,
+        "241.17890.24": null,
+        "241.17890.8": null
       },
       "name": "kotlin"
     },
@@ -88,17 +88,17 @@
         "webstorm"
       ],
       "builds": {
-        "233.13135.979": null,
-        "241.14494.325": "https://plugins.jetbrains.com/files/6981/513562/ini-241.14494.240.zip",
-        "241.15989.101": "https://plugins.jetbrains.com/files/6981/527916/ini-241.15989.113.zip",
-        "241.15989.102": "https://plugins.jetbrains.com/files/6981/527916/ini-241.15989.113.zip",
-        "241.15989.105": "https://plugins.jetbrains.com/files/6981/527916/ini-241.15989.113.zip",
-        "241.15989.113": "https://plugins.jetbrains.com/files/6981/527916/ini-241.15989.113.zip",
-        "241.15989.121": "https://plugins.jetbrains.com/files/6981/527916/ini-241.15989.113.zip",
-        "241.15989.150": "https://plugins.jetbrains.com/files/6981/527916/ini-241.15989.113.zip",
-        "241.15989.155": "https://plugins.jetbrains.com/files/6981/527916/ini-241.15989.113.zip",
-        "241.15989.157": "https://plugins.jetbrains.com/files/6981/527916/ini-241.15989.113.zip",
-        "241.15989.49": "https://plugins.jetbrains.com/files/6981/527916/ini-241.15989.113.zip"
+        "233.13135.1068": null,
+        "241.15989.206": null,
+        "241.17011.166": "https://plugins.jetbrains.com/files/6981/547306/ini-241.17011.124.zip",
+        "241.17890.1": "https://plugins.jetbrains.com/files/6981/552764/ini-241.17890.13.zip",
+        "241.17890.13": "https://plugins.jetbrains.com/files/6981/552764/ini-241.17890.13.zip",
+        "241.17890.14": "https://plugins.jetbrains.com/files/6981/552764/ini-241.17890.13.zip",
+        "241.17890.15": "https://plugins.jetbrains.com/files/6981/552764/ini-241.17890.13.zip",
+        "241.17890.19": "https://plugins.jetbrains.com/files/6981/552764/ini-241.17890.13.zip",
+        "241.17890.21": "https://plugins.jetbrains.com/files/6981/552764/ini-241.17890.13.zip",
+        "241.17890.24": "https://plugins.jetbrains.com/files/6981/552764/ini-241.17890.13.zip",
+        "241.17890.8": "https://plugins.jetbrains.com/files/6981/552764/ini-241.17890.13.zip"
       },
       "name": "ini"
     },
@@ -108,8 +108,8 @@
         "phpstorm"
       ],
       "builds": {
-        "241.15989.102": "https://plugins.jetbrains.com/files/7219/529388/Symfony_Plugin-2023.1.271.zip",
-        "241.15989.150": "https://plugins.jetbrains.com/files/7219/529388/Symfony_Plugin-2023.1.271.zip"
+        "241.17890.1": "https://plugins.jetbrains.com/files/7219/542990/Symfony_Plugin-2024.1.274.zip",
+        "241.17890.8": "https://plugins.jetbrains.com/files/7219/542990/Symfony_Plugin-2024.1.274.zip"
       },
       "name": "symfony-support"
     },
@@ -119,25 +119,29 @@
         "phpstorm"
       ],
       "builds": {
-        "241.15989.102": "https://plugins.jetbrains.com/files/7320/507957/PHP_Annotations-10.0.0.zip",
-        "241.15989.150": "https://plugins.jetbrains.com/files/7320/507957/PHP_Annotations-10.0.0.zip"
+        "241.17890.1": "https://plugins.jetbrains.com/files/7320/507957/PHP_Annotations-10.0.0.zip",
+        "241.17890.8": "https://plugins.jetbrains.com/files/7320/507957/PHP_Annotations-10.0.0.zip"
       },
       "name": "php-annotations"
     },
     "7322": {
       "compatible": [
+        "clion",
         "datagrip",
         "goland",
         "idea-community",
+        "pycharm-community",
         "rider",
         "rust-rover"
       ],
       "builds": {
-        "241.14494.325": "https://plugins.jetbrains.com/files/7322/513587/python-ce-241.14494.240.zip",
-        "241.15989.101": "https://plugins.jetbrains.com/files/7322/530366/python-ce-241.15989.150.zip",
-        "241.15989.150": "https://plugins.jetbrains.com/files/7322/530366/python-ce-241.15989.150.zip",
-        "241.15989.157": "https://plugins.jetbrains.com/files/7322/530366/python-ce-241.15989.150.zip",
-        "241.15989.49": "https://plugins.jetbrains.com/files/7322/530366/python-ce-241.15989.150.zip"
+        "241.15989.206": "https://plugins.jetbrains.com/files/7322/530366/python-ce-241.15989.150.zip",
+        "241.17011.166": "https://plugins.jetbrains.com/files/7322/540027/python-ce-241.17011.48.zip",
+        "241.17890.1": "https://plugins.jetbrains.com/files/7322/552840/python-ce-241.17890.1.zip",
+        "241.17890.14": "https://plugins.jetbrains.com/files/7322/552840/python-ce-241.17890.1.zip",
+        "241.17890.19": "https://plugins.jetbrains.com/files/7322/552840/python-ce-241.17890.1.zip",
+        "241.17890.21": "https://plugins.jetbrains.com/files/7322/552840/python-ce-241.17890.1.zip",
+        "241.17890.24": "https://plugins.jetbrains.com/files/7322/552840/python-ce-241.17890.1.zip"
       },
       "name": "python-community-edition"
     },
@@ -157,16 +161,16 @@
         "webstorm"
       ],
       "builds": {
-        "233.13135.979": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
-        "241.14494.325": null,
-        "241.15989.102": null,
-        "241.15989.105": null,
-        "241.15989.113": null,
-        "241.15989.121": null,
-        "241.15989.150": null,
-        "241.15989.155": null,
-        "241.15989.157": null,
-        "241.15989.49": null
+        "233.13135.1068": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
+        "241.17011.166": null,
+        "241.17890.1": null,
+        "241.17890.13": null,
+        "241.17890.14": null,
+        "241.17890.15": null,
+        "241.17890.19": null,
+        "241.17890.21": null,
+        "241.17890.24": null,
+        "241.17890.8": null
       },
       "name": "-deprecated-rust"
     },
@@ -186,16 +190,16 @@
         "webstorm"
       ],
       "builds": {
-        "233.13135.979": null,
-        "241.14494.325": null,
-        "241.15989.102": null,
-        "241.15989.105": null,
-        "241.15989.113": null,
-        "241.15989.121": null,
-        "241.15989.150": null,
-        "241.15989.155": null,
-        "241.15989.157": null,
-        "241.15989.49": null
+        "233.13135.1068": null,
+        "241.17011.166": null,
+        "241.17890.1": null,
+        "241.17890.13": null,
+        "241.17890.14": null,
+        "241.17890.15": null,
+        "241.17890.19": null,
+        "241.17890.21": null,
+        "241.17890.24": null,
+        "241.17890.8": null
       },
       "name": "-deprecated-rust-beta"
     },
@@ -209,10 +213,10 @@
         "ruby-mine"
       ],
       "builds": {
-        "241.15989.113": "https://plugins.jetbrains.com/files/8554/508289/featuresTrainer-241.14494.150.zip",
-        "241.15989.150": "https://plugins.jetbrains.com/files/8554/508289/featuresTrainer-241.14494.150.zip",
-        "241.15989.155": "https://plugins.jetbrains.com/files/8554/508289/featuresTrainer-241.14494.150.zip",
-        "241.15989.157": "https://plugins.jetbrains.com/files/8554/508289/featuresTrainer-241.14494.150.zip"
+        "241.17890.1": "https://plugins.jetbrains.com/files/8554/535094/featuresTrainer-241.17011.14.zip",
+        "241.17890.14": "https://plugins.jetbrains.com/files/8554/535094/featuresTrainer-241.17011.14.zip",
+        "241.17890.15": "https://plugins.jetbrains.com/files/8554/535094/featuresTrainer-241.17011.14.zip",
+        "241.17890.21": "https://plugins.jetbrains.com/files/8554/535094/featuresTrainer-241.17011.14.zip"
       },
       "name": "ide-features-trainer"
     },
@@ -233,17 +237,17 @@
         "webstorm"
       ],
       "builds": {
-        "233.13135.979": "https://plugins.jetbrains.com/files/8607/530004/NixIDEA-0.4.0.13.zip",
-        "241.14494.325": "https://plugins.jetbrains.com/files/8607/530004/NixIDEA-0.4.0.13.zip",
-        "241.15989.101": "https://plugins.jetbrains.com/files/8607/530004/NixIDEA-0.4.0.13.zip",
-        "241.15989.102": "https://plugins.jetbrains.com/files/8607/530004/NixIDEA-0.4.0.13.zip",
-        "241.15989.105": "https://plugins.jetbrains.com/files/8607/530004/NixIDEA-0.4.0.13.zip",
-        "241.15989.113": "https://plugins.jetbrains.com/files/8607/530004/NixIDEA-0.4.0.13.zip",
-        "241.15989.121": "https://plugins.jetbrains.com/files/8607/530004/NixIDEA-0.4.0.13.zip",
-        "241.15989.150": "https://plugins.jetbrains.com/files/8607/530004/NixIDEA-0.4.0.13.zip",
-        "241.15989.155": "https://plugins.jetbrains.com/files/8607/530004/NixIDEA-0.4.0.13.zip",
-        "241.15989.157": "https://plugins.jetbrains.com/files/8607/530004/NixIDEA-0.4.0.13.zip",
-        "241.15989.49": "https://plugins.jetbrains.com/files/8607/530004/NixIDEA-0.4.0.13.zip"
+        "233.13135.1068": "https://plugins.jetbrains.com/files/8607/555059/NixIDEA-0.4.0.14.zip",
+        "241.15989.206": "https://plugins.jetbrains.com/files/8607/555059/NixIDEA-0.4.0.14.zip",
+        "241.17011.166": "https://plugins.jetbrains.com/files/8607/555059/NixIDEA-0.4.0.14.zip",
+        "241.17890.1": "https://plugins.jetbrains.com/files/8607/555059/NixIDEA-0.4.0.14.zip",
+        "241.17890.13": "https://plugins.jetbrains.com/files/8607/555059/NixIDEA-0.4.0.14.zip",
+        "241.17890.14": "https://plugins.jetbrains.com/files/8607/555059/NixIDEA-0.4.0.14.zip",
+        "241.17890.15": "https://plugins.jetbrains.com/files/8607/555059/NixIDEA-0.4.0.14.zip",
+        "241.17890.19": "https://plugins.jetbrains.com/files/8607/555059/NixIDEA-0.4.0.14.zip",
+        "241.17890.21": "https://plugins.jetbrains.com/files/8607/555059/NixIDEA-0.4.0.14.zip",
+        "241.17890.24": "https://plugins.jetbrains.com/files/8607/555059/NixIDEA-0.4.0.14.zip",
+        "241.17890.8": "https://plugins.jetbrains.com/files/8607/555059/NixIDEA-0.4.0.14.zip"
       },
       "name": "nixidea"
     },
@@ -253,8 +257,8 @@
         "idea-ultimate"
       ],
       "builds": {
-        "241.15989.150": "https://plugins.jetbrains.com/files/9568/521002/go-plugin-241.15989.21.zip",
-        "241.15989.157": "https://plugins.jetbrains.com/files/9568/521002/go-plugin-241.15989.21.zip"
+        "241.17890.1": "https://plugins.jetbrains.com/files/9568/534161/go-plugin-241.17011.2.zip",
+        "241.17890.21": "https://plugins.jetbrains.com/files/9568/534161/go-plugin-241.17011.2.zip"
       },
       "name": "go"
     },
@@ -275,17 +279,17 @@
         "webstorm"
       ],
       "builds": {
-        "233.13135.979": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
-        "241.14494.325": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip",
-        "241.15989.101": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip",
-        "241.15989.102": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip",
-        "241.15989.105": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip",
-        "241.15989.113": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip",
-        "241.15989.121": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip",
-        "241.15989.150": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip",
-        "241.15989.155": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip",
-        "241.15989.157": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip",
-        "241.15989.49": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip"
+        "233.13135.1068": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
+        "241.15989.206": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip",
+        "241.17011.166": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip",
+        "241.17890.1": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip",
+        "241.17890.13": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip",
+        "241.17890.14": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip",
+        "241.17890.15": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip",
+        "241.17890.19": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip",
+        "241.17890.21": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip",
+        "241.17890.24": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip",
+        "241.17890.8": "https://plugins.jetbrains.com/files/10037/493010/CSVEditor-3.3.0-241.zip"
       },
       "name": "csv-editor"
     },
@@ -306,17 +310,17 @@
         "webstorm"
       ],
       "builds": {
-        "233.13135.979": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
-        "241.14494.325": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip",
-        "241.15989.101": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip",
-        "241.15989.102": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip",
-        "241.15989.105": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip",
-        "241.15989.113": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip",
-        "241.15989.121": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip",
-        "241.15989.150": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip",
-        "241.15989.155": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip",
-        "241.15989.157": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip",
-        "241.15989.49": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip"
+        "233.13135.1068": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
+        "241.15989.206": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip",
+        "241.17011.166": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip",
+        "241.17890.1": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip",
+        "241.17890.13": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip",
+        "241.17890.14": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip",
+        "241.17890.15": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip",
+        "241.17890.19": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip",
+        "241.17890.21": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip",
+        "241.17890.24": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip",
+        "241.17890.8": "https://plugins.jetbrains.com/files/12062/508223/keymap-vscode-241.14494.150.zip"
       },
       "name": "vscode-keymap"
     },
@@ -337,17 +341,17 @@
         "webstorm"
       ],
       "builds": {
-        "233.13135.979": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
-        "241.14494.325": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip",
-        "241.15989.101": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip",
-        "241.15989.102": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip",
-        "241.15989.105": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip",
-        "241.15989.113": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip",
-        "241.15989.121": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip",
-        "241.15989.150": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip",
-        "241.15989.155": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip",
-        "241.15989.157": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip",
-        "241.15989.49": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip"
+        "233.13135.1068": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
+        "241.15989.206": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip",
+        "241.17011.166": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip",
+        "241.17890.1": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip",
+        "241.17890.13": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip",
+        "241.17890.14": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip",
+        "241.17890.15": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip",
+        "241.17890.19": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip",
+        "241.17890.21": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip",
+        "241.17890.24": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip",
+        "241.17890.8": "https://plugins.jetbrains.com/files/12559/508216/keymap-eclipse-241.14494.150.zip"
       },
       "name": "eclipse-keymap"
     },
@@ -368,17 +372,17 @@
         "webstorm"
       ],
       "builds": {
-        "233.13135.979": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
-        "241.14494.325": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip",
-        "241.15989.101": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip",
-        "241.15989.102": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip",
-        "241.15989.105": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip",
-        "241.15989.113": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip",
-        "241.15989.121": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip",
-        "241.15989.150": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip",
-        "241.15989.155": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip",
-        "241.15989.157": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip",
-        "241.15989.49": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip"
+        "233.13135.1068": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
+        "241.15989.206": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip",
+        "241.17011.166": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip",
+        "241.17890.1": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip",
+        "241.17890.13": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip",
+        "241.17890.14": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip",
+        "241.17890.15": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip",
+        "241.17890.19": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip",
+        "241.17890.21": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip",
+        "241.17890.24": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip",
+        "241.17890.8": "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip"
       },
       "name": "visual-studio-keymap"
     },
@@ -399,17 +403,17 @@
         "webstorm"
       ],
       "builds": {
-        "233.13135.979": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "241.14494.325": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "241.15989.101": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "241.15989.102": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "241.15989.105": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "241.15989.113": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "241.15989.121": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "241.15989.150": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "241.15989.155": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "241.15989.157": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "241.15989.49": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar"
+        "233.13135.1068": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "241.15989.206": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "241.17011.166": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "241.17890.1": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "241.17890.13": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "241.17890.14": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "241.17890.15": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "241.17890.19": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "241.17890.21": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "241.17890.24": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "241.17890.8": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar"
       },
       "name": "darcula-pitch-black"
     },
@@ -430,17 +434,17 @@
         "webstorm"
       ],
       "builds": {
-        "233.13135.979": "https://plugins.jetbrains.com/files/17718/517133/github-copilot-intellij-1.5.2.5345.zip",
-        "241.14494.325": "https://plugins.jetbrains.com/files/17718/517133/github-copilot-intellij-1.5.2.5345.zip",
-        "241.15989.101": "https://plugins.jetbrains.com/files/17718/517133/github-copilot-intellij-1.5.2.5345.zip",
-        "241.15989.102": "https://plugins.jetbrains.com/files/17718/517133/github-copilot-intellij-1.5.2.5345.zip",
-        "241.15989.105": "https://plugins.jetbrains.com/files/17718/517133/github-copilot-intellij-1.5.2.5345.zip",
-        "241.15989.113": "https://plugins.jetbrains.com/files/17718/517133/github-copilot-intellij-1.5.2.5345.zip",
-        "241.15989.121": "https://plugins.jetbrains.com/files/17718/517133/github-copilot-intellij-1.5.2.5345.zip",
-        "241.15989.150": "https://plugins.jetbrains.com/files/17718/517133/github-copilot-intellij-1.5.2.5345.zip",
-        "241.15989.155": "https://plugins.jetbrains.com/files/17718/517133/github-copilot-intellij-1.5.2.5345.zip",
-        "241.15989.157": "https://plugins.jetbrains.com/files/17718/517133/github-copilot-intellij-1.5.2.5345.zip",
-        "241.15989.49": "https://plugins.jetbrains.com/files/17718/517133/github-copilot-intellij-1.5.2.5345.zip"
+        "233.13135.1068": "https://plugins.jetbrains.com/files/17718/551329/github-copilot-intellij-1.5.6.5692.zip",
+        "241.15989.206": "https://plugins.jetbrains.com/files/17718/551329/github-copilot-intellij-1.5.6.5692.zip",
+        "241.17011.166": "https://plugins.jetbrains.com/files/17718/551329/github-copilot-intellij-1.5.6.5692.zip",
+        "241.17890.1": "https://plugins.jetbrains.com/files/17718/551329/github-copilot-intellij-1.5.6.5692.zip",
+        "241.17890.13": "https://plugins.jetbrains.com/files/17718/551329/github-copilot-intellij-1.5.6.5692.zip",
+        "241.17890.14": "https://plugins.jetbrains.com/files/17718/551329/github-copilot-intellij-1.5.6.5692.zip",
+        "241.17890.15": "https://plugins.jetbrains.com/files/17718/551329/github-copilot-intellij-1.5.6.5692.zip",
+        "241.17890.19": "https://plugins.jetbrains.com/files/17718/551329/github-copilot-intellij-1.5.6.5692.zip",
+        "241.17890.21": "https://plugins.jetbrains.com/files/17718/551329/github-copilot-intellij-1.5.6.5692.zip",
+        "241.17890.24": "https://plugins.jetbrains.com/files/17718/551329/github-copilot-intellij-1.5.6.5692.zip",
+        "241.17890.8": "https://plugins.jetbrains.com/files/17718/551329/github-copilot-intellij-1.5.6.5692.zip"
       },
       "name": "github-copilot"
     },
@@ -461,17 +465,17 @@
         "webstorm"
       ],
       "builds": {
-        "233.13135.979": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "241.14494.325": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "241.15989.101": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "241.15989.102": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "241.15989.105": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "241.15989.113": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "241.15989.121": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "241.15989.150": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "241.15989.155": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "241.15989.157": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "241.15989.49": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip"
+        "233.13135.1068": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "241.15989.206": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "241.17011.166": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "241.17890.1": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "241.17890.13": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "241.17890.14": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "241.17890.15": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "241.17890.19": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "241.17890.21": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "241.17890.24": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "241.17890.8": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip"
       },
       "name": "netbeans-6-5-keymap"
     },
@@ -482,9 +486,9 @@
         "rust-rover"
       ],
       "builds": {
-        "241.15989.101": "https://plugins.jetbrains.com/files/22407/526873/intellij-rust-241.25989.101.zip",
-        "241.15989.121": "https://plugins.jetbrains.com/files/22407/526873/intellij-rust-241.25989.101.zip",
-        "241.15989.150": "https://plugins.jetbrains.com/files/22407/526873/intellij-rust-241.25989.101.zip"
+        "241.15989.206": "https://plugins.jetbrains.com/files/22407/542571/intellij-rust-241.25989.199.zip",
+        "241.17890.1": "https://plugins.jetbrains.com/files/22407/542571/intellij-rust-241.25989.199.zip",
+        "241.17890.19": "https://plugins.jetbrains.com/files/22407/542571/intellij-rust-241.25989.199.zip"
       },
       "name": "rust"
     }
@@ -499,20 +503,21 @@
     "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip": "sha256-Nb2tSxL+mAY1qJ3waipgV8ep+0R/BaYnzz7zfwtLHmk=",
     "https://plugins.jetbrains.com/files/13017/508253/keymap-visualStudio-241.14494.150.zip": "sha256-tNgt0vIkdCB/LcaSj58mT6cNlw4lytRo0cZSt7sIERU=",
     "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar": "sha256-eXInfAqY3yEZRXCAuv3KGldM1pNKEioNwPB0rIGgJFw=",
-    "https://plugins.jetbrains.com/files/164/515255/IdeaVim-2.10.2-signed.zip": "sha256-FP6th8J3ymfTrwvJ3Ms7fsNPh3f9ab5ZVg5yPpKV/rY=",
-    "https://plugins.jetbrains.com/files/17718/517133/github-copilot-intellij-1.5.2.5345.zip": "sha256-BaBYXN8eulaJtJSKrz9bZ2Yn8029goSAUvjYU+BaiIU=",
+    "https://plugins.jetbrains.com/files/164/546759/IdeaVim-2.12.0-signed.zip": "sha256-6ibo1vdwO4olQTCWpWAefT3QCwgtzTo1ojilDes8Rvg=",
+    "https://plugins.jetbrains.com/files/17718/551329/github-copilot-intellij-1.5.6.5692.zip": "sha256-p2xY8eN3tOvlXhuZm4R7zl67lnKbaJwKwPZSolDTaX0=",
     "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip": "sha256-KrzZTKZMQqoEMw+vDUv2jjs0EX0leaPBkU8H/ecq/oI=",
-    "https://plugins.jetbrains.com/files/22407/526873/intellij-rust-241.25989.101.zip": "sha256-v1r14zx591Vr8JmQxfysQ/aO8HDYCorwnnOEKDIfx+Y=",
-    "https://plugins.jetbrains.com/files/631/530669/python-241.15989.166.zip": "sha256-1mdv8xJfaa8Ln4/jsnyQyd6C19C8++XYpOBDU67SDGc=",
-    "https://plugins.jetbrains.com/files/6981/513562/ini-241.14494.240.zip": "sha256-QC42nC7mEE3X1cmKj8jkwzpDJzX7ZoOPEd9y6i8IuvM=",
-    "https://plugins.jetbrains.com/files/6981/527916/ini-241.15989.113.zip": "sha256-JgFoDqeMxdg3E9ZWHVsJGSygKAifFCEa9S+RdLFkLBI=",
-    "https://plugins.jetbrains.com/files/7219/529388/Symfony_Plugin-2023.1.271.zip": "sha256-vboCsF7e4Kx56hkKEXkFO9A/ElxNAITi4cIFwLcXxCU=",
+    "https://plugins.jetbrains.com/files/22407/542571/intellij-rust-241.25989.199.zip": "sha256-ACeMU2llicj8VHBJJSAk2SIQaZrD2ykmY0b3VDiedV4=",
+    "https://plugins.jetbrains.com/files/631/552809/python-241.17890.1.zip": "sha256-ASnW9SteKd88h2tAuZSHjnK+NMV7lm/3MN1tMqRvtmg=",
+    "https://plugins.jetbrains.com/files/6981/547306/ini-241.17011.124.zip": "sha256-6EU2ExUMvXG2pJ77ZgZIsPC6gWX8MTZB0rRttYNRfX4=",
+    "https://plugins.jetbrains.com/files/6981/552764/ini-241.17890.13.zip": "sha256-7JQpKNttNfTvzfZ2Qj42FZAtSqx6GjWHhT0WRecK3tc=",
+    "https://plugins.jetbrains.com/files/7219/542990/Symfony_Plugin-2024.1.274.zip": "sha256-92uUIFz5kEjrbgPnomi0VXc9Du17evzGsO5ApsrtHrA=",
     "https://plugins.jetbrains.com/files/7320/507957/PHP_Annotations-10.0.0.zip": "sha256-JIZ6Iq3sOcAm8fBXnjRrG9dqCZuD/WajyVmn1JjYMBA=",
-    "https://plugins.jetbrains.com/files/7322/513587/python-ce-241.14494.240.zip": "sha256-6YC/aoiTRLAh87C2v3k24BLBH/tsdTWuDK/CBv8y1QI=",
     "https://plugins.jetbrains.com/files/7322/530366/python-ce-241.15989.150.zip": "sha256-VJWFzUk/lloFCfHbXX7lQRV6bGseCqEPA8XOLlkqNho=",
+    "https://plugins.jetbrains.com/files/7322/540027/python-ce-241.17011.48.zip": "sha256-UrvhbGhcqxGke5tZTktyaWVYIWO5NhOU/WiswMYr83Y=",
+    "https://plugins.jetbrains.com/files/7322/552840/python-ce-241.17890.1.zip": "sha256-njHcuJmpc/5JsfZ6mmjcRK2j78J0E4bu68T1A0DNdVU=",
     "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip": "sha256-+Lc/avYBLpyIV63DlbhAJtieHDv4HdggqdGFDw9iqN0=",
-    "https://plugins.jetbrains.com/files/8554/508289/featuresTrainer-241.14494.150.zip": "sha256-D2gF9bLAEFd1+6vZskiM2Eyl5e8hmyh/VHrmW2NociE=",
-    "https://plugins.jetbrains.com/files/8607/530004/NixIDEA-0.4.0.13.zip": "sha256-6MI3mRCzSWmdMfjlkE4SMZmKnvWLjMGmYvcPw0PoBNY=",
-    "https://plugins.jetbrains.com/files/9568/521002/go-plugin-241.15989.21.zip": "sha256-4wM2FFZMTJlWEmxoSrZgkJXdSxUUtDoGZGrobnrMH78="
+    "https://plugins.jetbrains.com/files/8554/535094/featuresTrainer-241.17011.14.zip": "sha256-p26GW1NyVI8OR1VypeWUFWW8qlwB+LtzrEoKyXBwiCw=",
+    "https://plugins.jetbrains.com/files/8607/555059/NixIDEA-0.4.0.14.zip": "sha256-oP/tvAqzMSDLJ0Jah1eLJDZIm9WhOZas7lPWrvjWFMM=",
+    "https://plugins.jetbrains.com/files/9568/534161/go-plugin-241.17011.2.zip": "sha256-6+VdZVI/U+UxxNZM1/Va8RsiHG0ZnR6PpoOAhaOqk9U="
   }
 }
diff --git a/pkgs/applications/editors/jetbrains/source/build.nix b/pkgs/applications/editors/jetbrains/source/build.nix
index a9d509128f87b..ede98aea221b6 100644
--- a/pkgs/applications/editors/jetbrains/source/build.nix
+++ b/pkgs/applications/editors/jetbrains/source/build.nix
@@ -30,7 +30,7 @@
 
 let
 
-  jbr = jetbrains.jdk-no-jcef;
+  jbr = jetbrains.jdk-no-jcef-17;
 
   ideaSrc = fetchFromGitHub {
     owner = "jetbrains";
@@ -100,7 +100,7 @@ let
     sourceRoot = "source/native/fsNotifier/linux";
     buildPhase = ''
       runHook preBuild
-      cc -O2 -Wall -Wextra -Wpedantic -D "VERSION=\"${buildVer}\"" -std=c11 main.c inotify.c util.c -o fsnotifier
+      $CC -O2 -Wall -Wextra -Wpedantic -D "VERSION=\"${buildVer}\"" -std=c11 main.c inotify.c util.c -o fsnotifier
       runHook postBuild
     '';
     installPhase = ''
diff --git a/pkgs/applications/editors/joe/default.nix b/pkgs/applications/editors/joe/default.nix
index 4a335a351c750..9059fe69bdce2 100644
--- a/pkgs/applications/editors/joe/default.nix
+++ b/pkgs/applications/editors/joe/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A full featured terminal-based screen editor";
+    description = "Full featured terminal-based screen editor";
     longDescription = ''
       JOE (Joe's Own Editor) is a full featured terminal-based screen editor
       which is distributed under the GNU General Public License (GPL). JOE has
diff --git a/pkgs/applications/editors/jupp/default.nix b/pkgs/applications/editors/jupp/default.nix
index c31c1fe10c053..72e82da61ddad 100644
--- a/pkgs/applications/editors/jupp/default.nix
+++ b/pkgs/applications/editors/jupp/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.mirbsd.org/jupp.htm";
     downloadPage = "https://www.mirbsd.org/MirOS/dist/jupp/";
-    description = "A portable fork of Joe's editor";
+    description = "Portable fork of Joe's editor";
     longDescription = ''
       This is the portable version of JOE's Own Editor, which is currently
       developed at sourceforge, licenced under the GNU General Public License,
diff --git a/pkgs/applications/editors/jupyter-kernels/clojupyter/default.nix b/pkgs/applications/editors/jupyter-kernels/clojupyter/default.nix
index 5acca288f9633..2f06cf3757c9e 100644
--- a/pkgs/applications/editors/jupyter-kernels/clojupyter/default.nix
+++ b/pkgs/applications/editors/jupyter-kernels/clojupyter/default.nix
@@ -26,7 +26,7 @@ let
   version = "0.3.3";
 
   meta = with lib; {
-    description = "A Jupyter kernel for Clojure";
+    description = "Jupyter kernel for Clojure";
     homepage = "https://github.com/clojupyter/clojupyter";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];  # deps from maven
     license = licenses.mit;
diff --git a/pkgs/applications/editors/jupyter-kernels/octave/kernel.nix b/pkgs/applications/editors/jupyter-kernels/octave/kernel.nix
index 7223d9e69a896..f1a83bc274c27 100644
--- a/pkgs/applications/editors/jupyter-kernels/octave/kernel.nix
+++ b/pkgs/applications/editors/jupyter-kernels/octave/kernel.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = {
-    description = "A Jupyter kernel for Octave.";
+    description = "Jupyter kernel for Octave";
     homepage = "https://github.com/Calysto/octave_kernel";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ thomasjm ];
diff --git a/pkgs/applications/editors/jupyter-kernels/wolfram/kernel.nix b/pkgs/applications/editors/jupyter-kernels/wolfram/kernel.nix
index 65b02bac59b8d..e1beb4048b14d 100644
--- a/pkgs/applications/editors/jupyter-kernels/wolfram/kernel.nix
+++ b/pkgs/applications/editors/jupyter-kernels/wolfram/kernel.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Jupyter kernel for Wolfram Language.";
+    description = "Jupyter kernel for Wolfram Language";
     homepage = "https://github.com/WolframResearch/WolframLanguageForJupyter";
     license = licenses.mit;
     maintainers = with maintainers; [ fbeffa ];
diff --git a/pkgs/applications/editors/kakoune/default.nix b/pkgs/applications/editors/kakoune/default.nix
index a1319f5735461..0e8ccb1d2d314 100644
--- a/pkgs/applications/editors/kakoune/default.nix
+++ b/pkgs/applications/editors/kakoune/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "http://kakoune.org/";
-    description = "A vim inspired text editor";
+    description = "Vim inspired text editor";
     license = licenses.publicDomain;
     mainProgram = "kak";
     maintainers = with maintainers; [ vrthra ];
diff --git a/pkgs/applications/editors/kibi/default.nix b/pkgs/applications/editors/kibi/default.nix
index a5056575fa4a2..368249cc3fe82 100644
--- a/pkgs/applications/editors/kibi/default.nix
+++ b/pkgs/applications/editors/kibi/default.nix
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A text editor in ≤1024 lines of code, written in Rust";
+    description = "Text editor in ≤1024 lines of code, written in Rust";
     homepage = "https://github.com/ilai-deutel/kibi";
     license = licenses.mit;
     maintainers = with maintainers; [ robertodr ];
diff --git a/pkgs/applications/editors/leafpad/default.nix b/pkgs/applications/editors/leafpad/default.nix
index b02067a2113e5..b5beb0d74d8a7 100644
--- a/pkgs/applications/editors/leafpad/default.nix
+++ b/pkgs/applications/editors/leafpad/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A notepad clone for GTK 2.0";
+    description = "Notepad clone for GTK 2.0";
     homepage = "http://tarot.freeshell.org/leafpad";
     platforms = platforms.linux;
     maintainers = [ maintainers.flosse ];
diff --git a/pkgs/applications/editors/lite-xl/default.nix b/pkgs/applications/editors/lite-xl/default.nix
index 33c0c2926fa85..333968cb89604 100644
--- a/pkgs/applications/editors/lite-xl/default.nix
+++ b/pkgs/applications/editors/lite-xl/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A lightweight text editor written in Lua";
+    description = "Lightweight text editor written in Lua";
     homepage = "https://github.com/lite-xl/lite-xl";
     license = licenses.mit;
     maintainers = with maintainers; [ sefidel ];
diff --git a/pkgs/applications/editors/lite/default.nix b/pkgs/applications/editors/lite/default.nix
index 77f3a38bc6c5e..a58fb9756661d 100644
--- a/pkgs/applications/editors/lite/default.nix
+++ b/pkgs/applications/editors/lite/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A lightweight text editor written in Lua";
+    description = "Lightweight text editor written in Lua";
     homepage = "https://github.com/rxi/lite";
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne ];
diff --git a/pkgs/applications/editors/manuskript/default.nix b/pkgs/applications/editors/manuskript/default.nix
index a687063dfdd1c..f598c686998d7 100644
--- a/pkgs/applications/editors/manuskript/default.nix
+++ b/pkgs/applications/editors/manuskript/default.nix
@@ -41,7 +41,7 @@ python3Packages.buildPythonApplication rec {
   doCheck = false;
 
   meta = {
-    description = "A open-source tool for writers";
+    description = "Open-source tool for writers";
     homepage = "https://www.theologeek.ch/manuskript";
     longDescription = ''
     Manuskript is a tool for those writer who like to organize and
diff --git a/pkgs/applications/editors/music/tuxguitar/default.nix b/pkgs/applications/editors/music/tuxguitar/default.nix
index cf20d102cb50f..47614b260b825 100644
--- a/pkgs/applications/editors/music/tuxguitar/default.nix
+++ b/pkgs/applications/editors/music/tuxguitar/default.nix
@@ -32,7 +32,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A multitrack guitar tablature editor";
+    description = "Multitrack guitar tablature editor";
     longDescription = ''
       TuxGuitar is a multitrack guitar tablature editor and player written
       in Java-SWT. It can open GuitarPro, PowerTab and TablEdit files.
diff --git a/pkgs/applications/editors/nano/default.nix b/pkgs/applications/editors/nano/default.nix
index ff68ffb600345..210b90e6990dd 100644
--- a/pkgs/applications/editors/nano/default.nix
+++ b/pkgs/applications/editors/nano/default.nix
@@ -74,7 +74,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.nano-editor.org/";
-    description = "A small, user-friendly console text editor";
+    description = "Small, user-friendly console text editor";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ joachifm nequissimus ];
     platforms = platforms.all;
diff --git a/pkgs/applications/editors/ne/default.nix b/pkgs/applications/editors/ne/default.nix
index 017354222e824..7a3244dba84ec 100644
--- a/pkgs/applications/editors/ne/default.nix
+++ b/pkgs/applications/editors/ne/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
   meta = with lib; {
-    description = "The nice editor";
+    description = "Nice editor";
     homepage = "https://ne.di.unimi.it/";
     longDescription = ''
       ne is a free (GPL'd) text editor based on the POSIX standard that runs
diff --git a/pkgs/applications/editors/nedit/default.nix b/pkgs/applications/editors/nedit/default.nix
index 41c72cc51eaa3..374c5ee28c84a 100644
--- a/pkgs/applications/editors/nedit/default.nix
+++ b/pkgs/applications/editors/nedit/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://sourceforge.net/projects/nedit";
-    description = "A fast, compact Motif/X11 plain text editor";
+    description = "Fast, compact Motif/X11 plain text editor";
     platforms = with platforms; linux ++ darwin;
     license = licenses.gpl2;
   };
diff --git a/pkgs/applications/editors/neovim/neovim-remote.nix b/pkgs/applications/editors/neovim/neovim-remote.nix
index 0f3c2359aab16..f85d379faa85c 100644
--- a/pkgs/applications/editors/neovim/neovim-remote.nix
+++ b/pkgs/applications/editors/neovim/neovim-remote.nix
@@ -42,7 +42,7 @@ with python3.pkgs; buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A tool that helps controlling nvim processes from a terminal";
+    description = "Tool that helps controlling nvim processes from a terminal";
     homepage = "https://github.com/mhinz/neovim-remote/";
     license = licenses.mit;
     maintainers = with maintainers; [ edanaher ];
diff --git a/pkgs/applications/editors/neovim/tests/default.nix b/pkgs/applications/editors/neovim/tests/default.nix
index cbe811c33b683..b07f517ea474a 100644
--- a/pkgs/applications/editors/neovim/tests/default.nix
+++ b/pkgs/applications/editors/neovim/tests/default.nix
@@ -1,6 +1,6 @@
 # run tests by building `neovim.tests`
 { vimUtils, writeText, neovim, vimPlugins
-, lib, fetchFromGitHub, neovimUtils, wrapNeovimUnstable
+, lib, neovimUtils, wrapNeovimUnstable
 , neovim-unwrapped
 , fetchFromGitLab
 , runCommandLocal
diff --git a/pkgs/applications/editors/neovim/wrapper.nix b/pkgs/applications/editors/neovim/wrapper.nix
index 391bf102f749b..e877f1e1f764a 100644
--- a/pkgs/applications/editors/neovim/wrapper.nix
+++ b/pkgs/applications/editors/neovim/wrapper.nix
@@ -103,7 +103,7 @@ let
       postBuild = lib.optionalString stdenv.isLinux ''
         rm $out/share/applications/nvim.desktop
         substitute ${neovim-unwrapped}/share/applications/nvim.desktop $out/share/applications/nvim.desktop \
-          --replace 'Name=Neovim' 'Name=Neovim wrapper'
+          --replace-warn 'Name=Neovim' 'Name=Neovim wrapper'
       ''
       + lib.optionalString finalAttrs.withPython3 ''
         makeWrapper ${python3Env.interpreter} $out/bin/nvim-python3 --unset PYTHONPATH --unset PYTHONSAFEPATH
diff --git a/pkgs/applications/editors/netbeans/default.nix b/pkgs/applications/editors/netbeans/default.nix
index b61d88450148f..df5fbc3fcae32 100644
--- a/pkgs/applications/editors/netbeans/default.nix
+++ b/pkgs/applications/editors/netbeans/default.nix
@@ -3,7 +3,7 @@
 }:
 
 let
-  version = "21";
+  version = "22";
   desktopItem = makeDesktopItem {
     name = "netbeans";
     exec = "netbeans";
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   inherit version;
   src = fetchurl {
     url = "mirror://apache/netbeans/netbeans/${version}/netbeans-${version}-bin.zip";
-    hash = "sha256-enGpaDxSaoR8H/Q7yUA9XAHFC3OePFFw/v+yqn+69/0=";
+    hash = "sha256-uuzC2iiTSn3czWod3aBbNh8mVM5bCvmjKUl0ptNdm3M=";
   };
 
   buildCommand = ''
@@ -61,7 +61,7 @@ stdenv.mkDerivation {
   buildInputs = [ perl libicns imagemagick ];
 
   meta = {
-    description = "An integrated development environment for Java, C, C++ and PHP";
+    description = "Integrated development environment for Java, C, C++ and PHP";
     homepage = "https://netbeans.apache.org/";
     license = lib.licenses.asl20;
     sourceProvenance = with lib.sourceTypes; [
diff --git a/pkgs/applications/editors/notepad-next/default.nix b/pkgs/applications/editors/notepad-next/default.nix
index 2b6502023c9aa..837648a40d36f 100644
--- a/pkgs/applications/editors/notepad-next/default.nix
+++ b/pkgs/applications/editors/notepad-next/default.nix
@@ -34,7 +34,7 @@ mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/dail8859/NotepadNext";
-    description = "A cross-platform, reimplementation of Notepad++";
+    description = "Cross-platform, reimplementation of Notepad++";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
     maintainers = [ maintainers.sebtm ];
diff --git a/pkgs/applications/editors/nvi/default.nix b/pkgs/applications/editors/nvi/default.nix
index c749000533e2d..2001ba2497d17 100644
--- a/pkgs/applications/editors/nvi/default.nix
+++ b/pkgs/applications/editors/nvi/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "vi_cv_path_preserve=/tmp" ];
 
   meta = with lib; {
-    description = "The Berkeley Vi Editor";
+    description = "Berkeley Vi Editor";
     license = licenses.free;
     platforms = platforms.unix;
     broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/nvi.x86_64-darwin
diff --git a/pkgs/applications/editors/nvpy/default.nix b/pkgs/applications/editors/nvpy/default.nix
index c304c30be9e80..ddb76bad3686f 100644
--- a/pkgs/applications/editors/nvpy/default.nix
+++ b/pkgs/applications/editors/nvpy/default.nix
@@ -33,7 +33,7 @@ in pythonPackages.buildPythonApplication rec {
   '';
 
   meta = with pkgs.lib; {
-    description = "A simplenote-syncing note-taking tool inspired by Notational Velocity";
+    description = "Simplenote-syncing note-taking tool inspired by Notational Velocity";
     homepage = "https://github.com/cpbotha/nvpy";
     platforms = platforms.linux;
     license = licenses.bsd3;
diff --git a/pkgs/applications/editors/okteta/default.nix b/pkgs/applications/editors/okteta/default.nix
index d42e6f6eb675d..856626bf68b0c 100644
--- a/pkgs/applications/editors/okteta/default.nix
+++ b/pkgs/applications/editors/okteta/default.nix
@@ -30,7 +30,7 @@ mkDerivation rec {
 
   meta = with lib; {
     license = licenses.gpl2;
-    description = "A hex editor";
+    description = "Hex editor";
     homepage = "https://apps.kde.org/okteta/";
     maintainers = with maintainers; [ peterhoeg bkchr ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/editors/ox/default.nix b/pkgs/applications/editors/ox/default.nix
index 24ce2cec46df1..978f2b2aaa1a3 100644
--- a/pkgs/applications/editors/ox/default.nix
+++ b/pkgs/applications/editors/ox/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-VFrN58SRTRGH+RSc59RIdsysR3umnrU2KM5XVCp9u1Q=";
 
   meta = with lib; {
-    description = "An independent Rust text editor that runs in your terminal";
+    description = "Independent Rust text editor that runs in your terminal";
     homepage = "https://github.com/curlpipe/ox";
     changelog = "https://github.com/curlpipe/ox/releases/tag/${version}";
     license = licenses.gpl2Only;
diff --git a/pkgs/applications/editors/pixelorama/default.nix b/pkgs/applications/editors/pixelorama/default.nix
index b4719dcd4fbb3..c82f3a703b223 100644
--- a/pkgs/applications/editors/pixelorama/default.nix
+++ b/pkgs/applications/editors/pixelorama/default.nix
@@ -85,7 +85,7 @@ in stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://orama-interactive.itch.io/pixelorama";
-    description = "A free & open-source 2D sprite editor, made with the Godot Engine!";
+    description = "Free & open-source 2D sprite editor, made with the Godot Engine!";
     changelog = "https://github.com/Orama-Interactive/Pixelorama/blob/${finalAttrs.src.rev}/CHANGELOG.md";
     license = licenses.mit;
     platforms = [ "i686-linux" "x86_64-linux" ];
diff --git a/pkgs/applications/editors/poke/default.nix b/pkgs/applications/editors/poke/default.nix
index 36d35bc44dc1a..604758d0df5ae 100644
--- a/pkgs/applications/editors/poke/default.nix
+++ b/pkgs/applications/editors/poke/default.nix
@@ -19,11 +19,11 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "poke";
-  version = "4.0";
+  version = "4.1";
 
   src = fetchurl {
     url = "mirror://gnu/poke/poke-${finalAttrs.version}.tar.gz";
-    hash = "sha256-ArqyLLH6YVOhtqknyLs81Y1QhUPBRIQqbX7nTxmXOnc=";
+    hash = "sha256-COyupB9zdKzUI44Su/l+jNXlctWRfpVrc7nUMCbp10A=";
   };
 
   outputs = [ "out" "dev" "info" "lib" ]
diff --git a/pkgs/applications/editors/qxw/default.nix b/pkgs/applications/editors/qxw/default.nix
index 2d2af2ce508ef..53cdbcfc27070 100644
--- a/pkgs/applications/editors/qxw/default.nix
+++ b/pkgs/applications/editors/qxw/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A program to help create and publish crosswords";
+    description = "Program to help create and publish crosswords";
     homepage = "https://www.quinapalus.com/qxw.html";
     license = licenses.gpl2;
     maintainers = [ maintainers.tckmn ];
diff --git a/pkgs/applications/editors/rednotebook/default.nix b/pkgs/applications/editors/rednotebook/default.nix
index 645e719823a1e..8cf715c51f2e1 100644
--- a/pkgs/applications/editors/rednotebook/default.nix
+++ b/pkgs/applications/editors/rednotebook/default.nix
@@ -33,7 +33,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://rednotebook.sourceforge.io/";
     changelog = "https://github.com/jendrikseipp/rednotebook/blob/v${version}/CHANGELOG.md";
-    description = "A modern journal that includes a calendar navigation, customizable templates, export functionality and word clouds";
+    description = "Modern journal that includes a calendar navigation, customizable templates, export functionality and word clouds";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ orivej ];
     mainProgram = "rednotebook";
diff --git a/pkgs/applications/editors/rstudio/default.nix b/pkgs/applications/editors/rstudio/default.nix
index 72c9ef5a2730c..3278fc9ef158f 100644
--- a/pkgs/applications/editors/rstudio/default.nix
+++ b/pkgs/applications/editors/rstudio/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , mkDerivation
 , fetchurl
+, fetchpatch
 , fetchFromGitHub
 , makeDesktopItem
 , copyDesktopItems
@@ -28,8 +29,6 @@
 , soci
 , postgresql
 , nodejs
-, mkYarnModules
-, fetchYarnDeps
 , qmake
 , server ? false # build server version
 , sqlite
@@ -39,7 +38,7 @@
 
 let
   pname = "RStudio";
-  version = "2023.12.1+402";
+  version = "2024.04.1+748";
   RSTUDIO_VERSION_MAJOR = lib.versions.major version;
   RSTUDIO_VERSION_MINOR = lib.versions.minor version;
   RSTUDIO_VERSION_PATCH = lib.versions.patch version;
@@ -50,8 +49,8 @@ let
   src = fetchFromGitHub {
     owner = "rstudio";
     repo = "rstudio";
-    rev = version;
-    hash = "sha256-ecMzkpHazg8jEBz9wh8hqRX2UdziOC8b6F+3xxdugy0=";
+    rev = "v" + version;
+    hash = "sha256-fzxbhN9NdM0E2rxezj2BMEZ8obUbX0Zw8haDNmfAkWs=";
   };
 
   mathJaxSrc = fetchurl {
@@ -62,8 +61,8 @@ let
   rsconnectSrc = fetchFromGitHub {
     owner = "rstudio";
     repo = "rsconnect";
-    rev = "v1.2.0";
-    hash = "sha256-ghRz4Frd+I9ShRNNOE/kdk9KjRCj0Z1mPnThueriiUY=";
+    rev = "v1.2.2";
+    hash = "sha256-wvM9Bm7Nb6yU9z0o+uF5lB2kdgjOW5wZSk6y48NPF2U=";
   };
 
   # Ideally, rev should match the rstudio release name.
@@ -118,6 +117,7 @@ in
       "-DRSTUDIO_USE_SYSTEM_SOCI=ON"
       "-DRSTUDIO_USE_SYSTEM_BOOST=ON"
       "-DRSTUDIO_USE_SYSTEM_YAML_CPP=ON"
+      "-DRSTUDIO_DISABLE_CHECK_FOR_UPDATES=ON"
       "-DQUARTO_ENABLED=TRUE"
       "-DPANDOC_VERSION=${pandoc.version}"
       "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}/lib/rstudio"
@@ -134,6 +134,13 @@ in
       ./pandoc-nix-path.patch
       ./use-system-quarto.patch
       ./ignore-etc-os-release.patch
+
+      (fetchpatch {
+        name = "use-system-yaml-patch";
+        url = "https://github.com/rstudio/rstudio/commit/04de8ca8b83dcc7fee9fd65e6ef58c372489d5ef.patch";
+        hash = "sha256-FHSSOPsw6AAYBj/fgNT6idyxvRj3SG+fbla0UDjug1Y=";
+      })
+
     ];
 
     postPatch = ''
@@ -182,6 +189,11 @@ in
 
       unzip -q ${mathJaxSrc} -d dependencies/mathjax-27
 
+     # As of Chocolate Cosmos, node 18.19.1 is used for runtime
+     # 18.18.2 is still used for build
+     # see https://github.com/rstudio/rstudio/commit/facb5cf1ab38fe77813aaf36590804e4f865d780
+     mkdir -p dependencies/common/node/18.19.1
+
       mkdir -p dependencies/pandoc/${pandoc.version}
       cp ${pandoc}/bin/pandoc dependencies/pandoc/${pandoc.version}/pandoc
 
diff --git a/pkgs/applications/editors/rstudio/use-system-node.patch b/pkgs/applications/editors/rstudio/use-system-node.patch
index 6e0acf46dda05..5e8b2170da105 100644
--- a/pkgs/applications/editors/rstudio/use-system-node.patch
+++ b/pkgs/applications/editors/rstudio/use-system-node.patch
@@ -11,21 +11,6 @@ index d18362b..98cdd4c 100644
  
  # enable copilot
  copilot-enabled=1
-diff --git a/src/cpp/server/CMakeLists.txt b/src/cpp/server/CMakeLists.txt
-index 30dd638..cb4a645 100644
---- a/src/cpp/server/CMakeLists.txt
-+++ b/src/cpp/server/CMakeLists.txt
-@@ -250,10 +250,6 @@ if (UNIX AND NOT APPLE)
-            DESTINATION ${RSERVER_SYSTEMD_DIR})
- 
-    # install node
--   install(
--      DIRECTORY "${RSTUDIO_DEPENDENCIES_DIR}/common/node/${RSTUDIO_NODE_VERSION}/"
--      DESTINATION "${RSTUDIO_INSTALL_BIN}/node"
--      USE_SOURCE_PERMISSIONS)
- 
- elseif(APPLE)
- 
 diff --git a/src/gwt/build.xml b/src/gwt/build.xml
 index 033d605..f1ee63d 100644
 --- a/src/gwt/build.xml
diff --git a/pkgs/applications/editors/standardnotes/default.nix b/pkgs/applications/editors/standardnotes/default.nix
index bc44c8e9f6200..70b5900ccde88 100644
--- a/pkgs/applications/editors/standardnotes/default.nix
+++ b/pkgs/applications/editors/standardnotes/default.nix
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = callPackage ./update.nix {};
 
   meta = with lib; {
-    description = "A simple and private notes app";
+    description = "Simple and private notes app";
     longDescription = ''
       Standard Notes is a private notes app that features unmatched simplicity,
       end-to-end encryption, powerful extensions, and open-source applications.
diff --git a/pkgs/applications/editors/sublime/4/common.nix b/pkgs/applications/editors/sublime/4/common.nix
index f8083902fdde4..952194e0260c6 100644
--- a/pkgs/applications/editors/sublime/4/common.nix
+++ b/pkgs/applications/editors/sublime/4/common.nix
@@ -192,10 +192,7 @@ stdenv.mkDerivation (rec {
           fi
 
           for platform in ${lib.escapeShellArgs meta.platforms}; do
-              # The script will not perform an update when the version attribute is up to date from previous platform run
-              # We need to clear it before each run
-              update-source-version "${packageAttribute}.${primaryBinary}" 0 "${lib.fakeSha256}" --file="$versionFile" --version-key=buildVersion --source-key="sources.$platform"
-              update-source-version "${packageAttribute}.${primaryBinary}" "$latestVersion" --file="$versionFile" --version-key=buildVersion --source-key="sources.$platform"
+              update-source-version "${packageAttribute}.${primaryBinary}" "$latestVersion" --ignore-same-version --file="$versionFile" --version-key=buildVersion --source-key="sources.$platform"
           done
         '';
       in
diff --git a/pkgs/applications/editors/sublime/4/packages.nix b/pkgs/applications/editors/sublime/4/packages.nix
index d77a6205fc208..9bfbbd1c1d695 100644
--- a/pkgs/applications/editors/sublime/4/packages.nix
+++ b/pkgs/applications/editors/sublime/4/packages.nix
@@ -11,9 +11,9 @@ in
   } { };
 
   sublime4-dev = common {
-    buildVersion = "4173";
+    buildVersion = "4175";
     dev = true;
-    x64sha256 = "JEf974X+m0XaZ5x2g4o5XYkdo2A0cIZNjFLCrIgFzEA=";
-    aarch64sha256 = "+aVV7o59ZFwSOyV0DDNUpaq3q21bXslE+Oz/i33X+4Y=";
+    x64sha256 = "xncyxAaFJLLMko/iF6fhnpkOEHzD3nzWWGQCRK9srq4=";
+    aarch64sha256 = "oqz1HASwmv0B1T3ZQBdIOZD9wYcHbni8tovW7jGp3KM=";
   } { };
 }
diff --git a/pkgs/applications/editors/teehee/default.nix b/pkgs/applications/editors/teehee/default.nix
index 271609c4464a3..7015987ae9e6c 100644
--- a/pkgs/applications/editors/teehee/default.nix
+++ b/pkgs/applications/editors/teehee/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-hEc7MaqTXMrKiosYacPw/b1ANnfZKdlhThOp2h14fg4=";
 
   meta = with lib; {
-    description = "A modal terminal hex editor";
+    description = "Modal terminal hex editor";
     homepage = "https://github.com/Gskartwii/teehee";
     changelog = "https://github.com/Gskartwii/teehee/releases/tag/${src.rev}";
     license = licenses.asl20;
diff --git a/pkgs/applications/editors/texstudio/default.nix b/pkgs/applications/editors/texstudio/default.nix
index d084dd7c3f4c0..9c31bcdebbce4 100644
--- a/pkgs/applications/editors/texstudio/default.nix
+++ b/pkgs/applications/editors/texstudio/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "texstudio";
-  version = "4.7.3";
+  version = "4.8.0";
 
   src = fetchFromGitHub {
     owner = "texstudio-org";
     repo = "texstudio";
     rev = finalAttrs.version;
-    hash = "sha256-hAuNjlFr23l5ztfoa2RTHKZtH2aXF1EuWTd/ZyKuyHg=";
+    hash = "sha256-oPC0HJgBWCAGZ1pVTiHyDO3NQ3u/+1fA2KrxuBCB+IY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/editors/textadept/default.nix b/pkgs/applications/editors/textadept/default.nix
index 075c3ecd5bf6a..936361c844066 100644
--- a/pkgs/applications/editors/textadept/default.nix
+++ b/pkgs/applications/editors/textadept/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     ) (import ./deps.nix));
 
   meta = with lib; {
-    description = "An extensible text editor based on Scintilla with Lua scripting.";
+    description = "Extensible text editor based on Scintilla with Lua scripting";
     homepage = "http://foicica.com/textadept";
     license = licenses.mit;
     maintainers = with maintainers; [ raskin mirrexagon arcuru ];
diff --git a/pkgs/applications/editors/thonny/default.nix b/pkgs/applications/editors/thonny/default.nix
index 8098d3d1d1e36..fa29fae667131 100644
--- a/pkgs/applications/editors/thonny/default.nix
+++ b/pkgs/applications/editors/thonny/default.nix
@@ -34,6 +34,7 @@ buildPythonApplication rec {
     pyperclip
     asttokens
     send2trash
+    dbus-next
   ];
 
   preInstall = ''
diff --git a/pkgs/applications/editors/tijolo/default.nix b/pkgs/applications/editors/tijolo/default.nix
index 2b76d492924be..ff198df57fe82 100644
--- a/pkgs/applications/editors/tijolo/default.nix
+++ b/pkgs/applications/editors/tijolo/default.nix
@@ -2,34 +2,49 @@
 , lib
 , fetchFromGitHub
 , crystal
-, vte
+, vte-gtk4
 , libgit2
+, gtk4
+, libadwaita
 , editorconfig-core-c
-, gtksourceview4
-, wrapGAppsHook3
+, gtksourceview5
+, wrapGAppsHook4
+, gobject-introspection
 , desktopToDarwinBundle
 }:
+
 crystal.buildCrystalPackage rec {
   pname = "tijolo";
-  version = "0.7.4";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "hugopl";
     repo = "tijolo";
     rev = "v${version}";
-    hash = "sha256-3TfXvRVP3lu43qF3RWCHnZ3czTaSl5EzrhuTlpnMfKo=";
+    hash = "sha256-+sRcS5bVH6WLmSDLiPw608OB6OjBVwLqWxGT5Y6caBc=";
   };
 
-  nativeBuildInputs = [ wrapGAppsHook3 ]
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace-fail "shards install" "true"
+  '';
+
+  shardsFile = ./shards.nix;
+  copyShardDeps = true;
+
+  preBuild = ''
+    cd lib/gi-crystal && shards build -Dpreview_mt --release --no-debug
+    cd ../.. && mkdir bin/ && cp lib/gi-crystal/bin/gi-crystal bin/
+  '';
+
+  nativeBuildInputs = [ wrapGAppsHook4 gobject-introspection ]
     ++ lib.optionals stdenv.isDarwin [ desktopToDarwinBundle ];
-  buildInputs = [ vte libgit2 gtksourceview4 editorconfig-core-c ];
+  buildInputs = [ gtk4 libadwaita vte-gtk4 libgit2 gtksourceview5 editorconfig-core-c ];
 
   buildTargets = [ "all" ];
   doCheck = false;
 
-  shardsFile = ./shards.nix;
-
-  installTargets = [ "install" "install-fonts"];
+  installTargets = [ "install" "post-install" "install-fonts"];
   doInstallCheck = false;
 
   meta = with lib; {
diff --git a/pkgs/applications/editors/tijolo/shards.nix b/pkgs/applications/editors/tijolo/shards.nix
index 480251e777552..360778119e285 100644
--- a/pkgs/applications/editors/tijolo/shards.nix
+++ b/pkgs/applications/editors/tijolo/shards.nix
@@ -1,27 +1,42 @@
 {
-  compiled_license = {
-    url = "https://github.com/elorest/compiled_license.git";
-    rev = "v1.2.2";
-    sha256 = "1f412r6m31cc093lcw31m2rp5s3y7vh6q3wc3xh9b8vccvmj21p7";
-  };
   fzy = {
     url = "https://github.com/hugopl/fzy.git";
     rev = "v0.5.5";
     sha256 = "1zk95m43ymx9ilwr6iw9l44nkmp4sas28ib0dkr07hkhgrkw68sv";
   };
-  gobject = {
-    url = "https://github.com/jhass/crystal-gobject.git";
-    rev = "v0.10.0";
-    sha256 = "02cc3486ifbffdbvgl75ylwn47gpfb2j0srz92jx5yz1d596x746";
+  gi-crystal = {
+    url = "https://github.com/hugopl/gi-crystal.git";
+    rev = "v0.22.2";
+    sha256 = "0bpa1f8iaf97z2kbgjc7nc8km7nd7bppiwna319lm2hvm8m5pw15";
+  };
+  gtk4 = {
+    url = "https://github.com/hugopl/gtk4.cr.git";
+    rev = "v0.16.1";
+    sha256 = "1cqkbh072y70l8g0p040vf50k920p32ry1larnwn9mqabd74jwaj";
+  };
+  harfbuzz = {
+    url = "https://github.com/hugopl/harfbuzz.cr.git";
+    rev = "v0.2.0";
+    sha256 = "06wgqxwyib5416yp53j2iwcbr3bl4jjxb1flm7z103l365par694";
+  };
+  libadwaita = {
+    url = "https://github.com/geopjr/libadwaita.cr.git";
+    rev = "cffabb56e911d2a90c53c2fd14d6bd08bf5ac446";
+    sha256 = "0gcq04vgxg0vff9fcalgzq9phq0y76diihkzhlfn91bdxwkx7rl3";
+  };
+  pango = {
+    url = "https://github.com/hugopl/pango.cr.git";
+    rev = "v0.3.1";
+    sha256 = "0xlf127flimnll875mcq92q7xsi975rrgdpcpmnrwllhdhfx9qmv";
   };
   toml = {
     url = "https://github.com/crystal-community/toml.cr.git";
     rev = "v0.7.0";
     sha256 = "0vznx2irvx6m8w6chdf9ms72n2w0cf2m5cwh0cjmp1jz9y3xwv7z";
   };
-  version_from_shard = {
-    url = "https://github.com/hugopl/version_from_shard.git";
-    rev = "v1.2.5";
-    sha256 = "0xizj0q4rd541rwjbx04cjifc2gfx4l5v6q2y7gmd0ndjmkgb8ik";
+  vte = {
+    url = "https://github.com/hugopl/vte.cr.git";
+    rev = "v0.1.0";
+    sha256 = "18x2l9cm8czhwpdfng3rz00kn07c49y0555kf2j5l2wb0g05snh3";
   };
 }
diff --git a/pkgs/applications/editors/tweak/default.nix b/pkgs/applications/editors/tweak/default.nix
index 9663728e6ef90..24d6152e68bb4 100644
--- a/pkgs/applications/editors/tweak/default.nix
+++ b/pkgs/applications/editors/tweak/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "CC:=$(CC)" "LINK:=$(CC)" ];
 
   meta = with lib; {
-    description = "An efficient hex editor";
+    description = "Efficient hex editor";
     homepage = "http://www.chiark.greenend.org.uk/~sgtatham/tweak";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/applications/editors/typora/default.nix b/pkgs/applications/editors/typora/default.nix
index 2a4134ee3f00c..9445f422def4d 100644
--- a/pkgs/applications/editors/typora/default.nix
+++ b/pkgs/applications/editors/typora/default.nix
@@ -95,7 +95,7 @@ in stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A markdown editor, a markdown reader";
+    description = "Markdown editor, a markdown reader";
     homepage = "https://typora.io/";
     license = licenses.unfree;
     maintainers = with maintainers; [ npulidomateo ];
diff --git a/pkgs/applications/editors/vbindiff/default.nix b/pkgs/applications/editors/vbindiff/default.nix
index 30d902ce0fd08..6a9f745a77947 100644
--- a/pkgs/applications/editors/vbindiff/default.nix
+++ b/pkgs/applications/editors/vbindiff/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "A terminal visual binary diff viewer";
+    description = "Terminal visual binary diff viewer";
     homepage = "https://www.cjmweb.net/vbindiff/";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.unix;
diff --git a/pkgs/applications/editors/vim/common.nix b/pkgs/applications/editors/vim/common.nix
index 8b38e1c6e6e4a..d2e3013a782d9 100644
--- a/pkgs/applications/editors/vim/common.nix
+++ b/pkgs/applications/editors/vim/common.nix
@@ -1,6 +1,6 @@
 { lib, fetchFromGitHub }:
 rec {
-  version = "9.1.0377";
+  version = "9.1.0412";
 
   outputs = [ "out" "xxd" ];
 
@@ -8,7 +8,7 @@ rec {
     owner = "vim";
     repo = "vim";
     rev = "v${version}";
-    hash = "sha256-cfN/QbnpWIQmLtpXWPc1JnaaX+J10ietObN/B9lE1F0=";
+    hash = "sha256-uLdXFZ8eW+iMXrvkaEkArZmRfAiyORaEZxFFPt0TrdI=";
   };
 
   enableParallelBuilding = true;
@@ -33,7 +33,7 @@ rec {
   '';
 
   meta = with lib; {
-    description = "The most popular clone of the VI editor";
+    description = "Most popular clone of the VI editor";
     homepage    = "http://www.vim.org";
     license     = licenses.vim;
     maintainers = with maintainers; [ das_j equirosa philiptaron ];
diff --git a/pkgs/applications/editors/vim/default.nix b/pkgs/applications/editors/vim/default.nix
index d04fa241ba73f..b9c5f4ff7bbcc 100644
--- a/pkgs/applications/editors/vim/default.nix
+++ b/pkgs/applications/editors/vim/default.nix
@@ -26,18 +26,22 @@ stdenv.mkDerivation {
   configureFlags = [
     "--enable-multibyte"
     "--enable-nls"
-  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) ([
     "vim_cv_toupper_broken=no"
     "--with-tlib=ncurses"
     "vim_cv_terminfo=yes"
     "vim_cv_tgetent=zero" # it does on native anyway
-    "vim_cv_timer_create=yes"
     "vim_cv_tty_group=tty"
     "vim_cv_tty_mode=0660"
     "vim_cv_getcwd_broken=no"
     "vim_cv_stat_ignores_slash=yes"
     "vim_cv_memmove_handles_overlap=yes"
-  ];
+  ] ++ lib.optionals stdenv.hostPlatform.isFreeBSD [
+    "vim_cv_timer_create=no"
+    "vim_cv_timer_create_with_lrt=yes"
+  ] ++ lib.optionals (!stdenv.hostPlatform.isFreeBSD) [
+    "vim_cv_timer_create=yes"
+  ]);
 
   # which.sh is used to for vim's own shebang patching, so make it find
   # binaries for the host platform.
diff --git a/pkgs/applications/editors/vim/plugins/deprecated.json b/pkgs/applications/editors/vim/plugins/deprecated.json
index 2158caac1bb0d..d679dfed6db4c 100644
--- a/pkgs/applications/editors/vim/plugins/deprecated.json
+++ b/pkgs/applications/editors/vim/plugins/deprecated.json
@@ -8,11 +8,11 @@
         "new": "cmp-tmux"
     },
     "fern-vim": {
-        "date": "2024-05-17",
+        "date": "2024-05-28",
         "new": "vim-fern"
     },
     "gina-vim": {
-        "date": "2024-05-17",
+        "date": "2024-06-19",
         "new": "vim-gina"
     },
     "gist-vim": {
@@ -60,7 +60,7 @@
         "new": "vim-suda"
     },
     "vim-fsharp": {
-        "date": "2024-05-17",
+        "date": "2024-06-19",
         "new": "zarchive-vim-fsharp"
     },
     "vim-jade": {
diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix
index d6089e70b84d6..29e087d801fe1 100644
--- a/pkgs/applications/editors/vim/plugins/generated.nix
+++ b/pkgs/applications/editors/vim/plugins/generated.nix
@@ -65,24 +65,24 @@ final: prev:
 
   CopilotChat-nvim = buildVimPlugin {
     pname = "CopilotChat.nvim";
-    version = "2024-05-08";
+    version = "2024-05-31";
     src = fetchFromGitHub {
       owner = "CopilotC-Nvim";
       repo = "CopilotChat.nvim";
-      rev = "af18fa2fbc765ddf9bacd22e15c974642f20d19b";
-      sha256 = "16s0sj1qydz56xc1ydgnm9q6qndrj535c86113ji8nsgxs29gk1k";
+      rev = "82923efe22b604cf9c0cad0bb2a74aa9247755ab";
+      sha256 = "0dh4hy62xjd8kjnmcflrsdj02b6wrakzppcawfj8r7w1nnbsmlbd";
     };
     meta.homepage = "https://github.com/CopilotC-Nvim/CopilotChat.nvim/";
   };
 
   Coqtail = buildVimPlugin {
     pname = "Coqtail";
-    version = "2024-05-06";
+    version = "2024-06-15";
     src = fetchFromGitHub {
       owner = "whonore";
       repo = "Coqtail";
-      rev = "60d5fef9e8f272ca9dd40d68dd692fb448a5f606";
-      sha256 = "0acwav5f9hrjcwg3lw2l8dhh9y5yqcd0af8wkimzryfa1k7vqxiq";
+      rev = "a36352930b5e5f8d33dda09eef0c9d7c96190a02";
+      sha256 = "07vy515qgfc6f1y96dn0ykm0kh3ylkhf6igb23f4jv608ylz4f12";
     };
     meta.homepage = "https://github.com/whonore/Coqtail/";
   };
@@ -137,12 +137,12 @@ final: prev:
 
   Ionide-vim = buildVimPlugin {
     pname = "Ionide-vim";
-    version = "2024-03-26";
+    version = "2024-05-24";
     src = fetchFromGitHub {
       owner = "ionide";
       repo = "Ionide-vim";
-      rev = "d94dd8f0e34fe230bd84d930f63732619163ab6e";
-      sha256 = "1cyd8yysspcw552ws6zn1zpf1dgyhxjr8n8plikr0mh05jzqzv01";
+      rev = "00099c3cf53cba28a1d8084ab8d21639c62bd747";
+      sha256 = "1c3fzc87468zcl2fk6av0fl848sp82wpr9rdc4yc3l33p2mxqqy9";
     };
     meta.homepage = "https://github.com/ionide/Ionide-vim/";
   };
@@ -185,24 +185,24 @@ final: prev:
 
   LazyVim = buildVimPlugin {
     pname = "LazyVim";
-    version = "2024-05-16";
+    version = "2024-06-18";
     src = fetchFromGitHub {
       owner = "LazyVim";
       repo = "LazyVim";
-      rev = "07923f3701af23504bb09bf6cc11c4fb0a1894e7";
-      sha256 = "1ggnx9gw4x6cis570djvpmk21cnfixay2b1k2c3gs7vxmfivh0lj";
+      rev = "67eece6d74f071035ca7b934a753d71d1677dd9b";
+      sha256 = "15r8n3ch609lifv8lvyis5kn663c6jjj4zkzhyn4v4cxcxj3lb5d";
     };
     meta.homepage = "https://github.com/LazyVim/LazyVim/";
   };
 
   LeaderF = buildVimPlugin {
     pname = "LeaderF";
-    version = "2024-05-13";
+    version = "2024-06-19";
     src = fetchFromGitHub {
       owner = "Yggdroot";
       repo = "LeaderF";
-      rev = "25218c5ff71e2569155a23a757fbc0d79b3a5608";
-      sha256 = "1kja577s73qkpx2i5qaqwv37mhn3i24zm436j4apcy03048hmlmx";
+      rev = "11c08af2ae56fac83772d21aa5133913784ca2c4";
+      sha256 = "1yld7h2s1yr5l65iagk51xx4znf1vh5m7c5c4gmmp5zr2px0bn8b";
     };
     meta.homepage = "https://github.com/Yggdroot/LeaderF/";
   };
@@ -317,12 +317,12 @@ final: prev:
 
   SchemaStore-nvim = buildVimPlugin {
     pname = "SchemaStore.nvim";
-    version = "2024-05-14";
+    version = "2024-06-15";
     src = fetchFromGitHub {
       owner = "b0o";
       repo = "SchemaStore.nvim";
-      rev = "3c32d6a7bc56d56d4e3cc16fb21b59465a527aeb";
-      sha256 = "0z4s60ahpm7scqqajli95jcjafcza37wwjh8lzhlydc2zy7xg4z0";
+      rev = "35f36c50b9f1e1e916d0e3f004cb48dffd2bf737";
+      sha256 = "0a3488c74hrykcmharzza5svy9c0smw9yzafpdsgw10adav2mxqb";
     };
     meta.homepage = "https://github.com/b0o/SchemaStore.nvim/";
   };
@@ -389,12 +389,12 @@ final: prev:
 
   SpaceVim = buildVimPlugin {
     pname = "SpaceVim";
-    version = "2024-02-19";
+    version = "2024-06-02";
     src = fetchFromGitHub {
       owner = "SpaceVim";
       repo = "SpaceVim";
-      rev = "f393801c5f82a1cdc96fcd70ba9ae6d17eecedee";
-      sha256 = "1yvkgzb786v35h6pw6shw61zibg50npw59f0qyq0f0w7afccschc";
+      rev = "af055c0c73e4d49c57acbb40d9f6e248f2a38d52";
+      sha256 = "1ngh7m1mkam8vavpzgym3nii25ivw2b557hj72mi2j1f18xgvf90";
     };
     meta.homepage = "https://github.com/SpaceVim/SpaceVim/";
   };
@@ -510,12 +510,12 @@ final: prev:
 
   actions-preview-nvim = buildVimPlugin {
     pname = "actions-preview.nvim";
-    version = "2024-05-07";
+    version = "2024-06-16";
     src = fetchFromGitHub {
       owner = "aznhe21";
       repo = "actions-preview.nvim";
-      rev = "e8d41b608e24319548637685c7cfa66fadaff2b2";
-      sha256 = "1nvly9hhf02dfcqp0saf7inh502mdyivha2ksqyq0f07bp1qkzcd";
+      rev = "9f52a01c374318e91337697ebed51c6fae57f8a4";
+      sha256 = "0gr3gwmb2mcqphybx1yxsbpdlvvjpchzwich3a9wnz5mrjzyr24m";
     };
     meta.homepage = "https://github.com/aznhe21/actions-preview.nvim/";
   };
@@ -534,12 +534,12 @@ final: prev:
 
   aerial-nvim = buildVimPlugin {
     pname = "aerial.nvim";
-    version = "2024-05-16";
+    version = "2024-06-17";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "aerial.nvim";
-      rev = "97a838ccc03ba010a667cba49d9820f6823f4d51";
-      sha256 = "0pkbyiskvqpnl5d6lr60agdqn52skx87x5jdzflni087wxffr0ag";
+      rev = "eb25396dae306cef5b8fffbe9ae98283d2f1c199";
+      sha256 = "1byzkpcc77a2zwlypgmcmzik816i4qcaydb8ssy0vxrf3nsjx9s4";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/stevearc/aerial.nvim/";
@@ -595,12 +595,12 @@ final: prev:
 
   ale = buildVimPlugin {
     pname = "ale";
-    version = "2024-05-09";
+    version = "2024-06-02";
     src = fetchFromGitHub {
       owner = "dense-analysis";
       repo = "ale";
-      rev = "c88bddfa83dbb96c2f57426794ed98a0e181ea7e";
-      sha256 = "06mbkp68wwl1pnpzl1plfv3g7089ljlkp3bw5rgj0xjq5yd4bkfi";
+      rev = "c7c41e157478fc9d4f65e9f640bfce75fa211fd7";
+      sha256 = "1g7q3nc0y0k1hwg22mqcwypsriss6q12bx1d653sg5jsm7l8lrck";
     };
     meta.homepage = "https://github.com/dense-analysis/ale/";
   };
@@ -655,12 +655,12 @@ final: prev:
 
   ansible-vim = buildVimPlugin {
     pname = "ansible-vim";
-    version = "2023-10-29";
+    version = "2024-06-08";
     src = fetchFromGitHub {
       owner = "pearofducks";
       repo = "ansible-vim";
-      rev = "afc739e505053a6143a1fc6cedac6fb4d7a1d4db";
-      sha256 = "0hfbfjnzs53anzc9ljmbiph3xsq8d84kxx03msab05953sgyq3id";
+      rev = "3329367d2e5f90d203c8d340c53fa83c60a1ad41";
+      sha256 = "1xvp2w97644hyj8afifb498pm0pa5bcpkwy6slzd8xas40zhj6cr";
     };
     meta.homepage = "https://github.com/pearofducks/ansible-vim/";
   };
@@ -703,24 +703,24 @@ final: prev:
 
   arrow-nvim = buildVimPlugin {
     pname = "arrow.nvim";
-    version = "2024-05-07";
+    version = "2024-05-28";
     src = fetchFromGitHub {
       owner = "otavioschwanck";
       repo = "arrow.nvim";
-      rev = "33f3ce4c710c1717c491119016808c8d529d76a2";
-      sha256 = "0qagjxl3c8gp19q6ghj9cv5yv7naqm2d6p83bfrbkw92ba2i8nli";
+      rev = "0b0191d967d9fd837a850f2ccaa95d5917239404";
+      sha256 = "13brj1c482nag37wik4c61y2cb771yg9vkshqi3irqlzbyf1bhqb";
     };
     meta.homepage = "https://github.com/otavioschwanck/arrow.nvim/";
   };
 
   astrotheme = buildVimPlugin {
     pname = "astrotheme";
-    version = "2024-05-08";
+    version = "2024-06-17";
     src = fetchFromGitHub {
       owner = "AstroNvim";
       repo = "astrotheme";
-      rev = "7e47b7900229365bc0dca2a2eee2acc62dfc9dc3";
-      sha256 = "14gjl0w921c3bgl4hcvv1px42j1z7i2bsqh91lps33r18sj3x833";
+      rev = "ab0cb19c32181126f92b8239700cec97ba81b0fd";
+      sha256 = "187glbn1lysawl4rs9rzvzqwd26yl6kkc72sabx1hs9wn3xl3x0i";
     };
     meta.homepage = "https://github.com/AstroNvim/astrotheme/";
   };
@@ -823,24 +823,24 @@ final: prev:
 
   asyncrun-vim = buildVimPlugin {
     pname = "asyncrun.vim";
-    version = "2024-05-13";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "skywind3000";
       repo = "asyncrun.vim";
-      rev = "4261fa97f4a5429ec4bf5cfeaba74159c7e74f12";
-      sha256 = "18ib7d5bk2hgb7jyyw1ypskp6hrgawwbsnq7zlm811sxz5jiv045";
+      rev = "182c636909cfd41e1d72e1278a7db6a4e5271b81";
+      sha256 = "0mbr0abpwj45bnc3riv3mgfj9ic3xjbxkgwmkzjrr42zw208rki5";
     };
     meta.homepage = "https://github.com/skywind3000/asyncrun.vim/";
   };
 
   asynctasks-vim = buildVimPlugin {
     pname = "asynctasks.vim";
-    version = "2023-12-11";
+    version = "2024-06-18";
     src = fetchFromGitHub {
       owner = "skywind3000";
       repo = "asynctasks.vim";
-      rev = "851da4282ffb2ce3d5e4c2f70d2d09da7839d48f";
-      sha256 = "12xm92dz599w0imd7flpvay4d73hfvj0hrnz90aq6xvfrry8mzpq";
+      rev = "2604a6dd7348cff5bbca869ba68170f67b48159a";
+      sha256 = "033x1z1jr2s6cv0ff98qjqn62vz82isajbxbb4hbyihhk4d0zka5";
     };
     meta.homepage = "https://github.com/skywind3000/asynctasks.vim/";
   };
@@ -859,12 +859,12 @@ final: prev:
 
   aurora = buildVimPlugin {
     pname = "aurora";
-    version = "2024-03-20";
+    version = "2024-06-14";
     src = fetchFromGitHub {
       owner = "ray-x";
       repo = "aurora";
-      rev = "f712bacedb99b862f558540a1d67ec5b7dcee30b";
-      sha256 = "13ip7kz9di88cind0c6zbl78bjcmyadlh36fdk1j8zfxilh406s8";
+      rev = "31fc4eb67afca6d88a98cb9a17c206d72224423e";
+      sha256 = "13h8xf5f5ny2rc50z1v1kbrypx9xlbfg2l0pafkg9m05w70kmc93";
     };
     meta.homepage = "https://github.com/ray-x/aurora/";
   };
@@ -919,12 +919,12 @@ final: prev:
 
   auto-session = buildVimPlugin {
     pname = "auto-session";
-    version = "2024-04-14";
+    version = "2024-05-21";
     src = fetchFromGitHub {
       owner = "rmagatti";
       repo = "auto-session";
-      rev = "9e0a169b6fce8791278abbd110717b921afe634d";
-      sha256 = "0d1rbdsrlprr8dsw948i352c8564hglh56vwg80qxqib2ssfxvy2";
+      rev = "af2219b9fa99c1d7ac409bd9eac094c459d3f52d";
+      sha256 = "16qs3xqlfcdcrd9phyf180hhcp28cc4z2lsg68zr3jhdlyls6yxj";
     };
     meta.homepage = "https://github.com/rmagatti/auto-session/";
   };
@@ -979,12 +979,12 @@ final: prev:
 
   awesome-vim-colorschemes = buildVimPlugin {
     pname = "awesome-vim-colorschemes";
-    version = "2023-05-06";
+    version = "2024-05-18";
     src = fetchFromGitHub {
       owner = "rafi";
       repo = "awesome-vim-colorschemes";
-      rev = "4b2787b8894c4a70c42d15c2808d7cf278cb6abb";
-      sha256 = "1nldzigjx57q0kgqgrp57h8nb0n88yf1nj0snarqpbpg05d395gm";
+      rev = "ae5e02298c8de6a5aa98fe4d29a21874cfcc3619";
+      sha256 = "0rjrv4dh6cr1ppgp7jmxhp00xrjmzv536zf479jwpn1qngmnr6bd";
     };
     meta.homepage = "https://github.com/rafi/awesome-vim-colorschemes/";
   };
@@ -1027,36 +1027,37 @@ final: prev:
 
   baleia-nvim = buildVimPlugin {
     pname = "baleia.nvim";
-    version = "2024-01-06";
+    version = "2024-05-31";
     src = fetchFromGitHub {
       owner = "m00qek";
       repo = "baleia.nvim";
-      rev = "6d9cbdaca3a428bc7296f838fdfce3ad01ee7495";
-      sha256 = "sha256-0NmiGzMFvL1awYOVtiaSd+O4sAR524x68xwWLgArlqs=";
+      rev = "4d3b27dbec65a44ceecd9306f605a980bcf4e9b1";
+      sha256 = "095jjam8x5xpr2q8xnvl479i4hc2s7zz2vqcgfk5mv60f52k35h0";
+      fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/m00qek/baleia.nvim/";
   };
 
   bamboo-nvim = buildVimPlugin {
     pname = "bamboo.nvim";
-    version = "2024-05-15";
+    version = "2024-06-18";
     src = fetchFromGitHub {
       owner = "ribru17";
       repo = "bamboo.nvim";
-      rev = "2ca4ac5ddf80c0171469ec8d74fce036c98be458";
-      sha256 = "1jcfwds6395i89scxkzd75cmgz99kcqrk73ic3z5k27vn6n59n8m";
+      rev = "a1b2661f3cb248ae4fafc0cc50ca2588532e231d";
+      sha256 = "0f004i98g6jvgnl561bmhzga09gdh1nizk95ahyyg6y5bkqkbrn8";
     };
     meta.homepage = "https://github.com/ribru17/bamboo.nvim/";
   };
 
   barbar-nvim = buildVimPlugin {
     pname = "barbar.nvim";
-    version = "2024-05-15";
+    version = "2024-05-28";
     src = fetchFromGitHub {
       owner = "romgrk";
       repo = "barbar.nvim";
-      rev = "5880baa3bf6b262ee3c465519fce3e71a6045dec";
-      sha256 = "0rk6l5vhxnryiy42rdykpqs5i9jh2g1bk19s674br5rsiwzmrml5";
+      rev = "d181f2cfd4b828f9c6f1e10e69c68241de59f54f";
+      sha256 = "1qxhi60h5vy3ygm66i18122ib1xr01l8m6jn43bfav6x74jdr3si";
     };
     meta.homepage = "https://github.com/romgrk/barbar.nvim/";
   };
@@ -1075,12 +1076,12 @@ final: prev:
 
   base16-nvim = buildVimPlugin {
     pname = "base16-nvim";
-    version = "2024-04-18";
+    version = "2024-05-23";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "base16-nvim";
-      rev = "eec6882101dd189117f79c5d18d389d20cfc0415";
-      sha256 = "060cm7071gr3vpizd7iinpgk50igsqrgcrffa0ali2r6mdhxcwd7";
+      rev = "6ac181b5733518040a33017dde654059cd771b7c";
+      sha256 = "0q47jbh6abn2hql9ghi9ayx3l8pdrdcdrnf4qfk7cp0v1bl7y48r";
     };
     meta.homepage = "https://github.com/RRethy/base16-nvim/";
   };
@@ -1099,12 +1100,12 @@ final: prev:
 
   base46 = buildVimPlugin {
     pname = "base46";
-    version = "2024-05-14";
+    version = "2024-06-02";
     src = fetchFromGitHub {
       owner = "nvchad";
       repo = "base46";
-      rev = "a2bd5e8896fc7b6110e62dc4efdb3bf0f077baed";
-      sha256 = "1h30781h2iykwiknchil0zp0p2lyzdi5vkz363l74q1hq7gb38pc";
+      rev = "87e09eb9e959966397bd9d8aab18d88ef349c913";
+      sha256 = "1j2hm9400dlynkzxyxqzp4rz4kxjai5hiqv4b3lxg21g49lq5aa6";
     };
     meta.homepage = "https://github.com/nvchad/base46/";
   };
@@ -1207,12 +1208,12 @@ final: prev:
 
   bluloco-nvim = buildVimPlugin {
     pname = "bluloco.nvim";
-    version = "2024-03-17";
+    version = "2024-06-14";
     src = fetchFromGitHub {
       owner = "uloco";
       repo = "bluloco.nvim";
-      rev = "a41b4f849043dd32188e3d56758d8259e5ff7ae7";
-      sha256 = "08sggd2r0krn7kd0qgdi2rdnscp5nzn3d6ihvmy11h2181hi7kwc";
+      rev = "e7586def35c3584f1cc71fecf3e89e53dc4a40c6";
+      sha256 = "030n232cbf5fhwddf59fv4jqqwsvbks7a0xksd14sccp8p1d92gc";
     };
     meta.homepage = "https://github.com/uloco/bluloco.nvim/";
   };
@@ -1279,12 +1280,12 @@ final: prev:
 
   bufexplorer = buildVimPlugin {
     pname = "bufexplorer";
-    version = "2023-05-02";
+    version = "2024-05-30";
     src = fetchFromGitHub {
       owner = "jlanzarotta";
       repo = "bufexplorer";
-      rev = "20f0440948653b5482d555a35a432135ba46a26d";
-      sha256 = "0bh3p4zqw75nky0c1ff5wjavzqv0px9ypy62ddriayb8p55nmdn0";
+      rev = "2308e87960c05bd8da7bbf62c903e1f42d6cc9b9";
+      sha256 = "1ss3vshlsrfyrnn3fadhfp49zc0w70r6wzjaww2d8jqw7afwlx5x";
     };
     meta.homepage = "https://github.com/jlanzarotta/bufexplorer/";
   };
@@ -1303,12 +1304,12 @@ final: prev:
 
   bufferline-nvim = buildVimPlugin {
     pname = "bufferline.nvim";
-    version = "2024-04-22";
+    version = "2024-05-24";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "bufferline.nvim";
-      rev = "73540cb95f8d95aa1af3ed57713c6720c78af915";
-      sha256 = "0z3fg5zff1gng6wzsbj56sbbvmq9f30y6bzzkd9kjrfzsml6cybc";
+      rev = "99337f63f0a3c3ab9519f3d1da7618ca4f91cffe";
+      sha256 = "00rvijzj17449zmsiqwp8ybcsdd84frny3kl3b7wm57bbiis9w7h";
     };
     meta.homepage = "https://github.com/akinsho/bufferline.nvim/";
   };
@@ -1375,24 +1376,24 @@ final: prev:
 
   ccc-nvim = buildVimPlugin {
     pname = "ccc.nvim";
-    version = "2024-04-28";
+    version = "2024-06-03";
     src = fetchFromGitHub {
       owner = "uga-rosa";
       repo = "ccc.nvim";
-      rev = "f388f1981d222967c741fe9927edf9ba5fa3bcbe";
-      sha256 = "1d0v96vxghm5dzjm03hhrds0qafvhbjnq1il9z7bkg3r062vs6j1";
+      rev = "22924b7bde685e1816140f17a897950ef82b969a";
+      sha256 = "18np41as7j6axbfl5l1cv5b0xpsslfj6pcc8ih1sax4awnfbpf46";
     };
     meta.homepage = "https://github.com/uga-rosa/ccc.nvim/";
   };
 
   chadtree = buildVimPlugin {
     pname = "chadtree";
-    version = "2024-05-10";
+    version = "2024-06-17";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "chadtree";
-      rev = "28ec469ed46c6366dbda7f3a4f57b204d7bf8e49";
-      sha256 = "1f9bmaj0lhiwzig0g36gbsy3mkq2lmcqx762h4z3kn1acci3dlk1";
+      rev = "156372cb7485a49b02229bd1e3d07fccc5a1c089";
+      sha256 = "1yrncyvfqa16vypdh7ay0nb7wzgidd3cxx81bc01jw4h3f1gfrx0";
     };
     meta.homepage = "https://github.com/ms-jpq/chadtree/";
   };
@@ -1433,6 +1434,18 @@ final: prev:
     meta.homepage = "https://github.com/yunlingz/ci_dark/";
   };
 
+  cinnamon-nvim = buildVimPlugin {
+    pname = "cinnamon.nvim";
+    version = "2024-06-19";
+    src = fetchFromGitHub {
+      owner = "declancm";
+      repo = "cinnamon.nvim";
+      rev = "513154670f9e174e0b5dc75dd0662c5da493c284";
+      sha256 = "0apnz8qmj0173dw4nnxj3zjr5695f20za599pwlmfrld0nfgaqc2";
+    };
+    meta.homepage = "https://github.com/declancm/cinnamon.nvim/";
+  };
+
   circles-nvim = buildVimPlugin {
     pname = "circles.nvim";
     version = "2023-04-08";
@@ -1447,12 +1460,12 @@ final: prev:
 
   citruszest-nvim = buildVimPlugin {
     pname = "citruszest.nvim";
-    version = "2024-04-29";
+    version = "2024-05-28";
     src = fetchFromGitHub {
       owner = "zootedb0t";
       repo = "citruszest.nvim";
-      rev = "44c7ef5568f5377f3d9b5a8b7b267c015ea3205c";
-      sha256 = "10d5ia00q5wfycnvyxfn5hffy2n5jk4igjm5859i56i11pl0qmsa";
+      rev = "665de14b9a61067a706a53c233e67126f7edf53e";
+      sha256 = "11v9jxk4wln7i542mjswh964dsy8isanzhpy2px4pqnwaxq58cy7";
     };
     meta.homepage = "https://github.com/zootedb0t/citruszest.nvim/";
   };
@@ -1471,12 +1484,12 @@ final: prev:
 
   clangd_extensions-nvim = buildVimPlugin {
     pname = "clangd_extensions.nvim";
-    version = "2024-05-04";
+    version = "2024-06-06";
     src = fetchFromGitHub {
       owner = "p00f";
       repo = "clangd_extensions.nvim";
-      rev = "430a8f56605cb1d0ed9876301d6e9bf675195e16";
-      sha256 = "1gqbl3s963dmz0bldxl99sg7zvqgmcfz3x1g8i5whaqqx3ig82m3";
+      rev = "a8500531c4ed3a207e744a374ea038744a0f93eb";
+      sha256 = "1y42abwy5ax64ccr90pk31gycja1yv3c6qgi0wmkfi6smmn25g0g";
     };
     meta.homepage = "https://github.com/p00f/clangd_extensions.nvim/";
   };
@@ -1519,12 +1532,12 @@ final: prev:
 
   cloak-nvim = buildVimPlugin {
     pname = "cloak.nvim";
-    version = "2024-03-23";
+    version = "2024-06-12";
     src = fetchFromGitHub {
       owner = "laytan";
       repo = "cloak.nvim";
-      rev = "6e5bcd50bebc5cdb7cd3a00eb3d97ab7c4cc3b94";
-      sha256 = "1bplsykmfg923vrywfw0wi1zjy19lc7impch27kcrawji6g838nv";
+      rev = "648aca6d33ec011dc3166e7af3b38820d01a71e4";
+      sha256 = "1jfjc65iimzy2phm8w1x6m0f6hrmiy3kc0mq9bm02168xqi0vfjp";
     };
     meta.homepage = "https://github.com/laytan/cloak.nvim/";
   };
@@ -1543,12 +1556,12 @@ final: prev:
 
   cmake-tools-nvim = buildVimPlugin {
     pname = "cmake-tools.nvim";
-    version = "2024-05-12";
+    version = "2024-06-11";
     src = fetchFromGitHub {
       owner = "Civitasv";
       repo = "cmake-tools.nvim";
-      rev = "b221c5973ca520b0f079e16cd9919a8d944f7890";
-      sha256 = "0whqznv233hn8241h0nv5r30qcnlzf6ziqxpjcdsxp97s1vcg1pi";
+      rev = "09bd61415ecdba84f378fe734680f69375260985";
+      sha256 = "1ygqn0qwmgq19c46aadrqb7kysmwh5igrdj5jwy79zc6f20zh3b7";
     };
     meta.homepage = "https://github.com/Civitasv/cmake-tools.nvim/";
   };
@@ -1565,26 +1578,37 @@ final: prev:
     meta.homepage = "https://github.com/winston0410/cmd-parser.nvim/";
   };
 
+  cmp-ai = buildVimPlugin {
+    pname = "cmp-ai";
+    version = "2024-06-02";
+    src = fetchFromGitHub {
+      owner = "tzachar";
+      repo = "cmp-ai";
+      rev = "2b787129314c5fb8bfd41a6919d4889210e6b265";
+      sha256 = "sha256-ul2X6kIdreJ9dCQERw7C3l2dss7Mtcwtm7CGhAxjjvY=";
+    };
+    meta.homepage = "https://github.com/tzachar/cmp-ai/";
+  };
+
   cmp-async-path = buildVimPlugin {
     pname = "cmp-async-path";
-    version = "2024-02-02";
-    src = fetchFromGitHub {
-      owner = "FelipeLema";
-      repo = "cmp-async-path";
-      rev = "9d581eec5acf812316913565c135b0d1ee2c9a71";
-      sha256 = "0dv00zsgyjqk98cnxkmc4hjqgsm5mhjg4q2j7xkwz17kq59fiv26";
+    version = "2024-03-25";
+    src = fetchgit {
+      url = "https://codeberg.org/FelipeLema/cmp-async-path/";
+      rev = "7df7f3721c45aac26b6e0474087538f4681c9c7a";
+      sha256 = "15k6q1hfv9bggzz8vh9pd5mz9vay2cr6xp7bb4iqhahsgyr9c99d";
     };
-    meta.homepage = "https://github.com/FelipeLema/cmp-async-path/";
+    meta.homepage = "https://codeberg.org/FelipeLema/cmp-async-path/";
   };
 
   cmp-beancount = buildVimPlugin {
     pname = "cmp-beancount";
-    version = "2024-04-01";
+    version = "2024-06-03";
     src = fetchFromGitHub {
       owner = "crispgm";
       repo = "cmp-beancount";
-      rev = "1d5b887a33c9ea76798fdd41146c675451cf4e94";
-      sha256 = "0nlfs0sjlw4vhwacavmah7gyypj7fi0w8kqcgy0fv515h6zwfym0";
+      rev = "c8a2533828b84546ae279d60137aec92bd52dc72";
+      sha256 = "0cc6xgy6awzjz49rmy74znrgjcq8lw6q9krz75fv9cywd7gw8r6p";
     };
     meta.homepage = "https://github.com/crispgm/cmp-beancount/";
   };
@@ -1603,12 +1627,12 @@ final: prev:
 
   cmp-calc = buildVimPlugin {
     pname = "cmp-calc";
-    version = "2023-08-18";
+    version = "2024-05-18";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "cmp-calc";
-      rev = "ce91d14d2e7a8b3f6ad86d85e34d41c1ae6268d9";
-      sha256 = "1vcwkrr7v04m0m3brppcppcfazw6awxxpann4rp9j1x62nbi60ld";
+      rev = "5947b412da67306c5b68698a02a846760059be2e";
+      sha256 = "0bbi7b06fcpn9qwap6p44p1r0msnszdl6japn0izgk13853lb3ac";
     };
     meta.homepage = "https://github.com/hrsh7th/cmp-calc/";
   };
@@ -1735,12 +1759,12 @@ final: prev:
 
   cmp-fish = buildVimPlugin {
     pname = "cmp-fish";
-    version = "2022-09-01";
+    version = "2024-06-17";
     src = fetchFromGitHub {
       owner = "mtoohey31";
       repo = "cmp-fish";
-      rev = "8ae7bfb1b3251d433c4adf4e64396ef929fbd91f";
-      sha256 = "02yvzj7n8j20x6hxbgj7jy2ddhfqbccg6bg9hfl2yg67prqmz7p5";
+      rev = "3a23492e2aead05522a9887ec685d70e8c987323";
+      sha256 = "0sl5spsbdmcky4ccvymd0hi1mh4gd3c770y08jiaaqx92vkmp9qm";
     };
     meta.homepage = "https://github.com/mtoohey31/cmp-fish/";
   };
@@ -1771,12 +1795,12 @@ final: prev:
 
   cmp-git = buildVimPlugin {
     pname = "cmp-git";
-    version = "2024-04-15";
+    version = "2024-05-28";
     src = fetchFromGitHub {
       owner = "petertriho";
       repo = "cmp-git";
-      rev = "b9603f18496bc3ca07e6bd474607081af709e750";
-      sha256 = "0r27gf1j77fmqi2m8n5q3s326wp3ns81p7vcfhn6j74y979v11jg";
+      rev = "8dfbc33fb32c33e5c0be9dcc8176a4f4d395f95e";
+      sha256 = "0n66skklf71sbnk2vbsx23nqhs5a920w6aphfa5f3i1vrch2rz5f";
     };
     meta.homepage = "https://github.com/petertriho/cmp-git/";
   };
@@ -1843,36 +1867,36 @@ final: prev:
 
   cmp-nvim-lsp = buildVimPlugin {
     pname = "cmp-nvim-lsp";
-    version = "2023-12-10";
+    version = "2024-05-17";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "cmp-nvim-lsp";
-      rev = "5af77f54de1b16c34b23cba810150689a3a90312";
-      sha256 = "03q0v6wgi1lphcfjjdsc26zhnmj3ab9xxsiyp1adl3s1ybv22jzz";
+      rev = "39e2eda76828d88b773cc27a3f61d2ad782c922d";
+      sha256 = "13zcw6c7zppvbsjlr8yj3vml6ayalvhjbbqszljmn1f9hmkpwg89";
     };
     meta.homepage = "https://github.com/hrsh7th/cmp-nvim-lsp/";
   };
 
   cmp-nvim-lsp-document-symbol = buildVimPlugin {
     pname = "cmp-nvim-lsp-document-symbol";
-    version = "2023-04-01";
+    version = "2024-05-29";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "cmp-nvim-lsp-document-symbol";
-      rev = "f0f53f704c08ea501f9d222b23491b0d354644b0";
-      sha256 = "1zcplbb2kkq3f9mmy6zfgscdiccqiwkjr4d91qqjxp80yi1v9z4j";
+      rev = "f94f7ba948e32cd302caba1c2ca3f7c697fb4fcf";
+      sha256 = "0iyy37l0pc09hs610c40q5qzvg344200kvdkn0z8pjc4zk9wc6q4";
     };
     meta.homepage = "https://github.com/hrsh7th/cmp-nvim-lsp-document-symbol/";
   };
 
   cmp-nvim-lsp-signature-help = buildVimPlugin {
     pname = "cmp-nvim-lsp-signature-help";
-    version = "2023-02-03";
+    version = "2024-05-17";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "cmp-nvim-lsp-signature-help";
-      rev = "3d8912ebeb56e5ae08ef0906e3a54de1c66b92f1";
-      sha256 = "0bkviamzpkw6yv4cyqa9pqm1g2gsvzk87v8xc4574yf86jz5hg68";
+      rev = "031e6ba70b0ad5eee49fd2120ff7a2e325b17fa7";
+      sha256 = "08ipis3agyiaiqn91lq6imsnwyhqpadah7aj1v47v12ycy923cxl";
     };
     meta.homepage = "https://github.com/hrsh7th/cmp-nvim-lsp-signature-help/";
   };
@@ -1891,24 +1915,24 @@ final: prev:
 
   cmp-nvim-tags = buildVimPlugin {
     pname = "cmp-nvim-tags";
-    version = "2024-04-18";
+    version = "2024-06-05";
     src = fetchFromGitHub {
       owner = "quangnguyen30192";
       repo = "cmp-nvim-tags";
-      rev = "3580b6c97c35831afc25a23f1e7f4aa8ad070481";
-      sha256 = "074y4h2p5dx72s7y6spi1iqqpmva3f2mr33pra155ahzqpzqi3v7";
+      rev = "e126a09ef49f0611c127dea851fa0052aa223f15";
+      sha256 = "1y663aw4f2wc0fr222743jf066vrp3zpak03fg10yshb2p994mr2";
     };
     meta.homepage = "https://github.com/quangnguyen30192/cmp-nvim-tags/";
   };
 
   cmp-nvim-ultisnips = buildVimPlugin {
     pname = "cmp-nvim-ultisnips";
-    version = "2023-07-05";
+    version = "2024-06-01";
     src = fetchFromGitHub {
       owner = "quangnguyen30192";
       repo = "cmp-nvim-ultisnips";
-      rev = "24bca5c3e137b28cd87442d4fc51a2b312dd99cc";
-      sha256 = "0frkj8xv1jm96klsff4x2hbqbbyxbfz9iaxq3wx1bldhdb71r88r";
+      rev = "404401792ec62d51ca2e8c279a81996082c2f937";
+      sha256 = "004f53rj8037zgxf9jkkyszhsykmgdvy4mc003k7cpxsypv2gz3a";
     };
     meta.homepage = "https://github.com/quangnguyen30192/cmp-nvim-ultisnips/";
   };
@@ -2227,12 +2251,12 @@ final: prev:
 
   coc-nvim = buildVimPlugin {
     pname = "coc.nvim";
-    version = "2024-05-06";
+    version = "2024-05-29";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc.nvim";
-      rev = "ad6b31032f4eb4c407dfc30c3de94e67571ecc07";
-      sha256 = "0jyymnlj3qs4f6ilmq2wxj3ghxq0iand4am0d70i81s7izw26wcg";
+      rev = "f0ce9ae23d6ce9d0cbabe73bdb738e45accc6f08";
+      sha256 = "1ddf0y0ixb9aqjwax7jsnji6yhnvs13caml47c39bgcq80s37zk5";
     };
     meta.homepage = "https://github.com/neoclide/coc.nvim/";
   };
@@ -2263,24 +2287,24 @@ final: prev:
 
   codeium-vim = buildVimPlugin {
     pname = "codeium.vim";
-    version = "2024-05-03";
+    version = "2024-06-19";
     src = fetchFromGitHub {
       owner = "Exafunction";
       repo = "codeium.vim";
-      rev = "9406f13cf3eaa08318b76746bd105a04506cab27";
-      sha256 = "083qfmiskr0xahi5c8h46qkrsy4bahcy63rf74g315wwfcv491vz";
+      rev = "625a5cf79443a532c81f9290b3344ed8f91d2e20";
+      sha256 = "1i2l9ss9i39zdxmfzrpvwsp6lx49ly7synrr2bm6byywmpx1cp37";
     };
     meta.homepage = "https://github.com/Exafunction/codeium.vim/";
   };
 
   codewindow-nvim = buildVimPlugin {
     pname = "codewindow.nvim";
-    version = "2023-09-23";
+    version = "2024-06-05";
     src = fetchFromGitHub {
       owner = "gorbit99";
       repo = "codewindow.nvim";
-      rev = "8c8f5ff66e123491c946c04848d744fcdc7cac6c";
-      sha256 = "18xlrphibm5f49l04wrjzaxb2xfdqmydrj2d4pi7z6vxny6rkvgy";
+      rev = "dd7017617962943eb1d152fc58940f11c6775a4a";
+      sha256 = "1kxkf50rkqrzqz03jvygbwxb1yfmqh0gskr00vpmyrq51569a2hw";
     };
     meta.homepage = "https://github.com/gorbit99/codewindow.nvim/";
   };
@@ -2347,12 +2371,12 @@ final: prev:
 
   comment-nvim = buildVimPlugin {
     pname = "comment.nvim";
-    version = "2023-08-07";
+    version = "2024-06-09";
     src = fetchFromGitHub {
       owner = "numtostr";
       repo = "comment.nvim";
-      rev = "0236521ea582747b58869cb72f70ccfa967d2e89";
-      sha256 = "1mvi7c6n9ybgs6lfylzhkidifa6jkgsbj808knx57blvi5k7blgr";
+      rev = "e30b7f2008e52442154b66f7c519bfd2f1e32acb";
+      sha256 = "0dyz78j0kj3j99y5g8wncl7794g6z2qs05gfg9ddxaa4xswhyjc7";
     };
     meta.homepage = "https://github.com/numtostr/comment.nvim/";
   };
@@ -2441,6 +2465,18 @@ final: prev:
     meta.homepage = "https://github.com/krady21/compiler-explorer.nvim/";
   };
 
+  compiler-nvim = buildVimPlugin {
+    pname = "compiler.nvim";
+    version = "2024-06-14";
+    src = fetchFromGitHub {
+      owner = "Zeioth";
+      repo = "compiler.nvim";
+      rev = "520ca6e0bd924e3ca8bd26e036a3b830955cf52f";
+      sha256 = "18086w0hawhf94xzbgrk2h5qsnxx58w9193v5ldwmx55l7dn9i16";
+    };
+    meta.homepage = "https://github.com/Zeioth/compiler.nvim/";
+  };
+
   completion-buffers = buildVimPlugin {
     pname = "completion-buffers";
     version = "2021-01-17";
@@ -2503,24 +2539,24 @@ final: prev:
 
   conflict-marker-vim = buildVimPlugin {
     pname = "conflict-marker.vim";
-    version = "2022-11-01";
+    version = "2024-05-20";
     src = fetchFromGitHub {
       owner = "rhysd";
       repo = "conflict-marker.vim";
-      rev = "11a4d42244755505b66b15cd4496a150432eb5e3";
-      sha256 = "00sdnhr7fnj27sdjj88cypbw5zp264z290a0xfyp9gbmdnz1nlgx";
+      rev = "62742b2ffe7a433988759c67b5c5a22eff74a14b";
+      sha256 = "1fg99ry73p1kxms30dfgf1pfmmi31rvrdhh839qrk1d82w8mf9vz";
     };
     meta.homepage = "https://github.com/rhysd/conflict-marker.vim/";
   };
 
   conform-nvim = buildVimPlugin {
     pname = "conform.nvim";
-    version = "2024-05-16";
+    version = "2024-06-19";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "conform.nvim";
-      rev = "00f9d91391b04b1935e2f15948bd96cc111e7d3a";
-      sha256 = "0ydckbdj7zps3i04hb5cx5ddzxy5g1pc022i6zfrpfs0yqv9jjiv";
+      rev = "bde3bee1773c96212b6c49f009e05174f932c23a";
+      sha256 = "083a6glk20zj1rxnajchi6v6mah9632qmbzrs270lmjplk6dc2qk";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/stevearc/conform.nvim/";
@@ -2528,12 +2564,12 @@ final: prev:
 
   conjure = buildVimPlugin {
     pname = "conjure";
-    version = "2024-03-11";
+    version = "2024-05-31";
     src = fetchFromGitHub {
       owner = "Olical";
       repo = "conjure";
-      rev = "dfb9f75010a181c090ab905b2a2b4180aea20f15";
-      sha256 = "0swwnb5sr3j5yx77f94ymdc1jpv1nyi0qj9l402qzz5dc4pi2mp6";
+      rev = "934687860a71d1d03e569ce11f880a4d404e69aa";
+      sha256 = "1j0rsyw37wc0sh3im1m20akriyj0fmwlhbwfpkzav25wk9c8kmf2";
     };
     meta.homepage = "https://github.com/Olical/conjure/";
   };
@@ -2564,36 +2600,36 @@ final: prev:
 
   copilot-cmp = buildVimPlugin {
     pname = "copilot-cmp";
-    version = "2023-09-09";
+    version = "2024-06-17";
     src = fetchFromGitHub {
       owner = "zbirenbaum";
       repo = "copilot-cmp";
-      rev = "72fbaa03695779f8349be3ac54fa8bd77eed3ee3";
-      sha256 = "09j6jm77dw6g0d2yxxg954kbsf7vx4zgjyfjq1n9ls5z36i0vf5j";
+      rev = "b6e5286b3d74b04256d0a7e3bd2908eabec34b44";
+      sha256 = "1y7qp011rm8nx5qr4r97n1zc64377iipankkmn0qz441cjin03zk";
     };
     meta.homepage = "https://github.com/zbirenbaum/copilot-cmp/";
   };
 
   copilot-lua = buildVimPlugin {
     pname = "copilot.lua";
-    version = "2024-02-28";
+    version = "2024-06-15";
     src = fetchFromGitHub {
       owner = "zbirenbaum";
       repo = "copilot.lua";
-      rev = "f7612f5af4a7d7615babf43ab1e67a2d790c13a6";
-      sha256 = "01xwq4kz4a3m90z29pf5yp8aiax1nv80lpxzxqc3k7nfr5vfqz95";
+      rev = "86537b286f18783f8b67bccd78a4ef4345679625";
+      sha256 = "13ri0rj0bgs3s5hkh0hc9blk9xv9knv8q97zrx0y90w4b9k50b8w";
     };
     meta.homepage = "https://github.com/zbirenbaum/copilot.lua/";
   };
 
   copilot-vim = buildVimPlugin {
     pname = "copilot.vim";
-    version = "2024-05-10";
+    version = "2024-06-14";
     src = fetchFromGitHub {
       owner = "github";
       repo = "copilot.vim";
-      rev = "dfa657c80c915a6a3eb6d9010046a0576ad25a37";
-      sha256 = "0jf0hljpg5yl26qazz3xpg7hcdv3ywjw81s4g2b42wsrwsmafzsf";
+      rev = "88d08cf54f623341adde4b18362bffc95174dcd5";
+      sha256 = "1ih8f8bbivywlaj54jaxnz6i05770qss028fafqsvn3h9cindigi";
     };
     meta.homepage = "https://github.com/github/copilot.vim/";
   };
@@ -2636,24 +2672,24 @@ final: prev:
 
   coq_nvim = buildVimPlugin {
     pname = "coq_nvim";
-    version = "2024-04-26";
+    version = "2024-06-11";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "coq_nvim";
-      rev = "23ab6c20039a43bb21ce1c586ef0eece026c68bd";
-      sha256 = "0ng4z0600fsbg7ln72305vyvhn7fd4rj0xzi1n7f57avhqvc4lpr";
+      rev = "83808cfdebca290c84808c85b73f4dbcf5cf981f";
+      sha256 = "17l52gd96kfqq4nc0z8qprigvzzrbsa1vijx7kdvgr0qbw4mr5gy";
     };
     meta.homepage = "https://github.com/ms-jpq/coq_nvim/";
   };
 
   cornelis = buildVimPlugin {
     pname = "cornelis";
-    version = "2024-04-17";
+    version = "2024-05-17";
     src = fetchFromGitHub {
       owner = "isovector";
       repo = "cornelis";
-      rev = "c97b4817034a927dcadb22294cf97a88087a935f";
-      sha256 = "03wkq7jly9syv7kqsf66hdq8p7fqk6a240azcys9fsak797nbs1a";
+      rev = "06d6020eed1a3520bb2887337dd5b27b1755968b";
+      sha256 = "020ykz38y5mgz1m6njscgd4pksdfx1sryl1ws950l833dhhzdzc0";
     };
     meta.homepage = "https://github.com/isovector/cornelis/";
   };
@@ -2684,12 +2720,12 @@ final: prev:
 
   crates-nvim = buildVimPlugin {
     pname = "crates.nvim";
-    version = "2024-05-14";
+    version = "2024-06-19";
     src = fetchFromGitHub {
       owner = "saecki";
       repo = "crates.nvim";
-      rev = "d556c00d60c9421c913ee54ff690df2a34f6264e";
-      sha256 = "0hm9nj5hakjhp6rx0hl4x70dsv03gxbcm8c9fw2xgqm9hwwbap27";
+      rev = "909d233a8a86fd5ca8ef9eb1e404e89b81e05c41";
+      sha256 = "1gbksj75hpkxn5mvvqhyhwx9l2b5xrp2vgwplydxgp3ml4f66rv7";
     };
     meta.homepage = "https://github.com/saecki/crates.nvim/";
   };
@@ -2708,24 +2744,24 @@ final: prev:
 
   csharpls-extended-lsp-nvim = buildVimPlugin {
     pname = "csharpls-extended-lsp.nvim";
-    version = "2023-12-25";
+    version = "2024-06-10";
     src = fetchFromGitHub {
       owner = "Decodetalkers";
       repo = "csharpls-extended-lsp.nvim";
-      rev = "bde4aebe0dc74952188c2130c6831a1d8e4ce5c6";
-      sha256 = "0hl25bhxaslh0fzpnl7a2xpsl7n22ziri0si9m2knig1yfd0b0xj";
+      rev = "5a474b06743bb20a90191994457f5e62f444976b";
+      sha256 = "0h98968hhd6zs3j6kpsycvgcvwkfp6bffr5114yr9i9j6s0hxcs9";
     };
     meta.homepage = "https://github.com/Decodetalkers/csharpls-extended-lsp.nvim/";
   };
 
   csv-vim = buildVimPlugin {
     pname = "csv.vim";
-    version = "2023-12-01";
+    version = "2024-06-09";
     src = fetchFromGitHub {
       owner = "chrisbra";
       repo = "csv.vim";
-      rev = "962f88787ec6873eba1c7dbbd81d2723f1ee3c4b";
-      sha256 = "11gwamrqqmcy5jvbmnmyvx94pknlx3ppvyk4b6vhm4dghwmhq9nb";
+      rev = "4d5255829afe3b6badb0c8a040116704c0d3213c";
+      sha256 = "1zkiv887rajmidl8jrk2mz6qmdq1378ivklwam6hxfa027wwigi2";
     };
     meta.homepage = "https://github.com/chrisbra/csv.vim/";
   };
@@ -2780,12 +2816,12 @@ final: prev:
 
   cyberdream-nvim = buildVimPlugin {
     pname = "cyberdream.nvim";
-    version = "2024-05-15";
+    version = "2024-06-18";
     src = fetchFromGitHub {
       owner = "scottmckendry";
       repo = "cyberdream.nvim";
-      rev = "c7aa987f31abf4fc58fa1eafd917a337759e5d69";
-      sha256 = "1f227s9sp4lx5vgfr568p5vnchrgr9vbsgsxl94rvjpc10vkbjyz";
+      rev = "db76342d8dff74b9382bf1e9c9e648ee16869809";
+      sha256 = "1vzhylvw54jsz3fnmbx85if1izkmzzzbpzmdzw6dvmyqiw4axj7i";
     };
     meta.homepage = "https://github.com/scottmckendry/cyberdream.nvim/";
   };
@@ -2816,36 +2852,36 @@ final: prev:
 
   dashboard-nvim = buildVimPlugin {
     pname = "dashboard-nvim";
-    version = "2024-05-05";
+    version = "2024-06-12";
     src = fetchFromGitHub {
       owner = "nvimdev";
       repo = "dashboard-nvim";
-      rev = "a0a78099658c7d4be3714f657b18ca8285d5d106";
-      sha256 = "1vfzh9dsfggchxsyypkl8njdapmy5vhd0kwihvv32997x2sh1qks";
+      rev = "b88c997f468a1bacb1e9b13ff3b567638caa06e6";
+      sha256 = "0q77lzd9ls62dc3fbzrc401aaxah2sh1p1g9zfsxvimb4y313b7c";
     };
     meta.homepage = "https://github.com/nvimdev/dashboard-nvim/";
   };
 
   debugprint-nvim = buildVimPlugin {
     pname = "debugprint.nvim";
-    version = "2024-05-16";
+    version = "2024-06-14";
     src = fetchFromGitHub {
       owner = "andrewferrier";
       repo = "debugprint.nvim";
-      rev = "1a77a32dda9ba25000118c82aa9146b780dfb540";
-      sha256 = "048bvdz06f1hxmix3nhjj5dwynhaazg6895mnd1lj3m8z3rfs9gh";
+      rev = "bc691e879a3c1c7b92f62e830d58ec3f40331fbd";
+      sha256 = "0paylwmbs15vnj25nxcqn4dw7nzw3xqp7xdq2mr4p6xdhyw4akvx";
     };
     meta.homepage = "https://github.com/andrewferrier/debugprint.nvim/";
   };
 
   deepwhite-nvim = buildVimPlugin {
     pname = "deepwhite.nvim";
-    version = "2024-03-25";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "Verf";
       repo = "deepwhite.nvim";
-      rev = "264cf7a2e881b806edd379342cffba3da38fbc07";
-      sha256 = "1xjqqvn7ijc6gcifm972gflx36zf542wqyphs3hkxyx0h2ngfix9";
+      rev = "f1db7888f0a7cf84d6d802c17c074bccca0a72a5";
+      sha256 = "1zjs2h6kln346sw2p7msrqv6h451i8b4n7kbmdjncvxmf8b9jw1l";
     };
     meta.homepage = "https://github.com/Verf/deepwhite.nvim/";
   };
@@ -2936,24 +2972,24 @@ final: prev:
 
   denops-vim = buildVimPlugin {
     pname = "denops.vim";
-    version = "2024-05-16";
+    version = "2024-06-18";
     src = fetchFromGitHub {
       owner = "vim-denops";
       repo = "denops.vim";
-      rev = "9dd9ae9da9b8d65916dd44e0e4d881665397de63";
-      sha256 = "1cvicx69741jna07vm4rchclnspcbpdj8yyik0bsicf95w5w6blp";
+      rev = "c6fa7c615ea7209ece65b2322591f0dd0167358d";
+      sha256 = "1qxnk06sxrs1i5rhraiid9v6jr2nw5psgj8f0n42jfbpiadb6m2h";
     };
     meta.homepage = "https://github.com/vim-denops/denops.vim/";
   };
 
   deol-nvim = buildVimPlugin {
     pname = "deol.nvim";
-    version = "2024-04-15";
+    version = "2024-06-18";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deol.nvim";
-      rev = "c77537a563a58221eb996ea64304dbe22ebc6f64";
-      sha256 = "0gnrx5ll1hmpxsn5jw229w8sa2kkswyw6bdd1ffgx7bvfk7z2k4m";
+      rev = "7fe1a74a1e9abba978e3a1e02f798bf04de71a5f";
+      sha256 = "0s61cwhjacnj5rvg87l263pf8rrla6ym8z89pp43wqj875d8d8s5";
     };
     meta.homepage = "https://github.com/Shougo/deol.nvim/";
   };
@@ -3166,12 +3202,12 @@ final: prev:
 
   deoplete-nvim = buildVimPlugin {
     pname = "deoplete.nvim";
-    version = "2024-03-12";
+    version = "2024-06-05";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deoplete.nvim";
-      rev = "43d7457059d65335ee0ceaa5505befbdd78ad705";
-      sha256 = "1x41fdynyb68r6lw62244avic5br6bw28bgz7n2rfdlz9ayimbz1";
+      rev = "e5a47d4a2f0b2b6f568e708163e2354097e611c6";
+      sha256 = "1cj5y29gkm2l1c7g7bp50k522dn4yk67sywc19lcyizpwxvqq0a2";
     };
     meta.homepage = "https://github.com/Shougo/deoplete.nvim/";
   };
@@ -3190,12 +3226,12 @@ final: prev:
 
   dhall-vim = buildVimPlugin {
     pname = "dhall-vim";
-    version = "2024-05-08";
+    version = "2024-05-18";
     src = fetchFromGitHub {
       owner = "vmchale";
       repo = "dhall-vim";
-      rev = "c1790ded928a57abba9ebc8f46cf57a52733af04";
-      sha256 = "05jd65bxclgmb97hyg9akcz4zw7n81wh53a1dp7rxvannbxzd6db";
+      rev = "bd9fd99f21dbc7174fb728a21d04e073ef7dd930";
+      sha256 = "15g06ddnljvi9c9n8sk6n50bb1sh7qq1d1q2xwqh59846n14sh31";
     };
     meta.homepage = "https://github.com/vmchale/dhall-vim/";
   };
@@ -3226,24 +3262,24 @@ final: prev:
 
   dial-nvim = buildVimPlugin {
     pname = "dial.nvim";
-    version = "2023-11-30";
+    version = "2024-05-18";
     src = fetchFromGitHub {
       owner = "monaqa";
       repo = "dial.nvim";
-      rev = "27eb570085db2ef44bff4f620d3806039184651c";
-      sha256 = "1f7ycdn9y27lz6925aqcjfhdyp1rab845dnc665cyzl5rai3kpsj";
+      rev = "7af2daaaf933b0617ded0f78b49f4d5fc45f9f64";
+      sha256 = "131h6qpnzdgq72z4wkf3pm1xm848iyhbkim3689l0x950z1f56n1";
     };
     meta.homepage = "https://github.com/monaqa/dial.nvim/";
   };
 
   diffview-nvim = buildVimPlugin {
     pname = "diffview.nvim";
-    version = "2023-11-20";
+    version = "2024-06-13";
     src = fetchFromGitHub {
       owner = "sindrets";
       repo = "diffview.nvim";
-      rev = "3dc498c9777fe79156f3d32dddd483b8b3dbd95f";
-      sha256 = "1zvgm0icmc4z48vnd6pn7pvl6sg89mm4symr0rwiix8s942nfiyw";
+      rev = "4516612fe98ff56ae0415a259ff6361a89419b0a";
+      sha256 = "0brabpd02596hg98bml118bx6z2sly98kf1cr2p0xzybiinb4zs9";
     };
     meta.homepage = "https://github.com/sindrets/diffview.nvim/";
   };
@@ -3322,24 +3358,24 @@ final: prev:
 
   dressing-nvim = buildVimPlugin {
     pname = "dressing.nvim";
-    version = "2024-05-16";
+    version = "2024-06-19";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "dressing.nvim";
-      rev = "572314728cb1ce012e825fd66331f52c94acac12";
-      sha256 = "1i65g5qlk2i16d74frpwra8m8cvvcwj6d1hncd2gdk1h4pssxgyc";
+      rev = "6741f1062d3dc6e4755367a7e9b347b553623f04";
+      sha256 = "0mwg7z7gns6gw3b6iq2xs0hynn846k7r4q4fzqba8ky8bzzh8mrf";
     };
     meta.homepage = "https://github.com/stevearc/dressing.nvim/";
   };
 
   dropbar-nvim = buildVimPlugin {
     pname = "dropbar.nvim";
-    version = "2024-05-16";
+    version = "2024-06-15";
     src = fetchFromGitHub {
       owner = "Bekaboo";
       repo = "dropbar.nvim";
-      rev = "9fc10fa1a34ec3e55b470962e4e94644611bd209";
-      sha256 = "135qc6ix0kav0knq4y5843525z5kh1rs2d56k71rk9986kb4vlk1";
+      rev = "79847a78ec0c58f5e5c0360192b03d0cee803e95";
+      sha256 = "0k92lqkqfah0xgl3yq85f1fr8pryp6cfcgglwdbsqw1jwsh37687";
     };
     meta.homepage = "https://github.com/Bekaboo/dropbar.nvim/";
   };
@@ -3358,12 +3394,12 @@ final: prev:
 
   edge = buildVimPlugin {
     pname = "edge";
-    version = "2024-05-15";
+    version = "2024-06-03";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "edge";
-      rev = "896dbba0bf99b0cc2764c55a170958c9b0e78595";
-      sha256 = "11i9xgg3yl1ccra8bdqjdrkha2gjk2hmxqdb98gzkg20yhqb12q4";
+      rev = "2153187e3ca56c11a7f35852bbaef6525c936b1c";
+      sha256 = "17bjyn241iy7qflw8yqlzxi4536b9l6hnxcbgbxsj8a7s3f51iqd";
     };
     meta.homepage = "https://github.com/sainnhe/edge/";
   };
@@ -3382,12 +3418,12 @@ final: prev:
 
   edgy-nvim = buildVimPlugin {
     pname = "edgy.nvim";
-    version = "2024-03-26";
+    version = "2024-06-16";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "edgy.nvim";
-      rev = "de79b7d92a5979cd71a9a1d8b6282515345e5055";
-      sha256 = "0z5mb5cnwdpcswy3w099vyfjz0hmb04j4vbkgxnc8g9y6lffn2rs";
+      rev = "a8bc1d24798c80a391f1a5d898a50c41a7f93883";
+      sha256 = "066963g4jykzw5fg3mhv301ksc67vmjgzw0fm9izip9qrpb9i91h";
     };
     meta.homepage = "https://github.com/folke/edgy.nvim/";
   };
@@ -3419,24 +3455,24 @@ final: prev:
 
   efmls-configs-nvim = buildVimPlugin {
     pname = "efmls-configs-nvim";
-    version = "2024-05-07";
+    version = "2024-05-21";
     src = fetchFromGitHub {
       owner = "creativenull";
       repo = "efmls-configs-nvim";
-      rev = "f477186ecc12ac025a9948d17edc69242e1ee96b";
-      sha256 = "0mgljq23h4phk5r6dnkyijyv54j71h2cgvxjg4c8lgnqvas0cksl";
+      rev = "eb2be5b24dbf7200a80bcd5c64bc63afbc8ae86f";
+      sha256 = "1k7spx8iagmklrbb3l6dmj217j8110nja03dhpz52znzsir5vlpj";
     };
     meta.homepage = "https://github.com/creativenull/efmls-configs-nvim/";
   };
 
   elixir-tools-nvim = buildVimPlugin {
     pname = "elixir-tools.nvim";
-    version = "2024-05-02";
+    version = "2024-06-14";
     src = fetchFromGitHub {
       owner = "elixir-tools";
       repo = "elixir-tools.nvim";
-      rev = "51eddb03a7a8c9f00d6415b356a4d3b75d8e75b6";
-      sha256 = "1fckakkqgagn7n6wr92333acxy7wi3c7ny6y1pxr88nigzb5p9sk";
+      rev = "ab10b425a4d4b34447b0699bd93aa42f97bdf4b5";
+      sha256 = "180h1w5aka6kz9np5l2xr6kiyw9xkj238lqcgqqv2dx7chdssxsi";
     };
     meta.homepage = "https://github.com/elixir-tools/elixir-tools.nvim/";
   };
@@ -3467,12 +3503,12 @@ final: prev:
 
   emmet-vim = buildVimPlugin {
     pname = "emmet-vim";
-    version = "2021-12-04";
+    version = "2024-06-14";
     src = fetchFromGitHub {
       owner = "mattn";
       repo = "emmet-vim";
-      rev = "def5d57a1ae5afb1b96ebe83c4652d1c03640f4d";
-      sha256 = "1x9v455q4z71dqzalvswd0l4lsp7ic0h1sr1z6pcgwf8ik3j7f7x";
+      rev = "3fb2f63799e1922f7647ed9ff3b32154031a76ee";
+      sha256 = "03rlfwfnghqp6bjnpi2mb4f0ki7fyj2im718f51mpfv6wr5c5gac";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/mattn/emmet-vim/";
@@ -3504,24 +3540,24 @@ final: prev:
 
   eva01-vim = buildVimPlugin {
     pname = "eva01.vim";
-    version = "2024-03-26";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "hachy";
       repo = "eva01.vim";
-      rev = "93ae0d296459ed124c288990001848b3956339fa";
-      sha256 = "166i51ic1xnp3lxmipa7sgrwcfcma30sc66ymg96dccrv0p3k0ig";
+      rev = "54412cbd92e74f43f4fc4479d12726f09723ce55";
+      sha256 = "1gimw4sjnkkr9lw6951fx0ksaii64jc3mfc071dzj0ildrn323w8";
     };
     meta.homepage = "https://github.com/hachy/eva01.vim/";
   };
 
   everforest = buildVimPlugin {
     pname = "everforest";
-    version = "2024-05-15";
+    version = "2024-06-02";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "everforest";
-      rev = "090cc3aa2e9ed0533625821191404bb7802da19e";
-      sha256 = "0wbifby4k2wkh5glsnxx4da4rx3mv3lfv8ff3nnchnxjfnbk9gnl";
+      rev = "9dbd4d1c3255ed801e515f2ed388f4c6ceb62f6e";
+      sha256 = "1ccawa3m5crqgwz30bm6pz6rdjdnqkp6w724qrbq5d053gss42jq";
     };
     meta.homepage = "https://github.com/sainnhe/everforest/";
   };
@@ -3574,6 +3610,18 @@ final: prev:
     meta.homepage = "https://github.com/brooth/far.vim/";
   };
 
+  faster-nvim = buildVimPlugin {
+    pname = "faster.nvim";
+    version = "2024-04-11";
+    src = fetchFromGitHub {
+      owner = "pteroctopus";
+      repo = "faster.nvim";
+      rev = "e85c5bdff0cd1e17cbee855ae23c25e7b8e597cb";
+      sha256 = "sha256-oruxdxoMq46F9lf1JxkbrqdzR0JwDE1y/cVCaTD4SBg=";
+    };
+    meta.homepage = "https://github.com/pteroctopus/faster.nvim/";
+  };
+
   fastfold = buildVimPlugin {
     pname = "fastfold";
     version = "2023-03-21";
@@ -3600,12 +3648,12 @@ final: prev:
 
   feline-nvim = buildVimPlugin {
     pname = "feline.nvim";
-    version = "2024-04-29";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "freddiehaddad";
       repo = "feline.nvim";
-      rev = "b43be71ebc3ff0e451a627b47751fd7747dc15fb";
-      sha256 = "0j5a6nsjv4nsrhvwlbnrm7cys94k62kx4450famb07b8q7miwi72";
+      rev = "8bc28b94a16304aad2f53b8c3653b14803748c28";
+      sha256 = "0xwzzcfbp9g7kxni5wpq621dfbv4cif9daz5brpcgh7nqd5zh76z";
     };
     meta.homepage = "https://github.com/freddiehaddad/feline.nvim/";
   };
@@ -3622,18 +3670,6 @@ final: prev:
     meta.homepage = "https://github.com/bakpakin/fennel.vim/";
   };
 
-  fern-vim = buildVimPlugin {
-    pname = "fern.vim";
-    version = "2024-05-08";
-    src = fetchFromGitHub {
-      owner = "lambdalisue";
-      repo = "vim-fern";
-      rev = "a675dff495a0a0fd15663ebbae585c19825a64c5";
-      sha256 = "1bxd4x5iac6c1ca5vxw2y1bxxlzjhn6gkxfnw91q68cj7lik5575";
-    };
-    meta.homepage = "https://github.com/lambdalisue/vim-fern/";
-  };
-
   ferret = buildVimPlugin {
     pname = "ferret";
     version = "2024-03-28";
@@ -3648,12 +3684,12 @@ final: prev:
 
   fidget-nvim = buildNeovimPlugin {
     pname = "fidget.nvim";
-    version = "2024-04-04";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "j-hui";
       repo = "fidget.nvim";
-      rev = "1ba38e4cbb24683973e00c2e36f53ae64da38ef5";
-      sha256 = "0g0z1g1nmrjmg9298vg2ski6m41f1yhpas8kr9mi8pa6ibk4m63x";
+      rev = "ef99df04a1c53a453602421bc0f756997edc8289";
+      sha256 = "1j0s31k8dszb0sq46c492hj27w0ag2zmxy75y8204f3j80dkz68s";
     };
     meta.homepage = "https://github.com/j-hui/fidget.nvim/";
   };
@@ -3684,12 +3720,12 @@ final: prev:
 
   firenvim = buildVimPlugin {
     pname = "firenvim";
-    version = "2024-05-12";
+    version = "2024-06-06";
     src = fetchFromGitHub {
       owner = "glacambre";
       repo = "firenvim";
-      rev = "fc72687977e1c34259c42f0e408655cf2638760d";
-      sha256 = "18q5lby9hlhbd1z2bpnm9s2vrfz88g19rq78hx10d1vp3f576jla";
+      rev = "e412ab23c5b56b7eb3c361da8a1f8a2e94c51001";
+      sha256 = "1prrmc41221f334b1cxhc7msxz5a83m0k7hg2hzspszggfgv49vh";
     };
     meta.homepage = "https://github.com/glacambre/firenvim/";
   };
@@ -3709,12 +3745,12 @@ final: prev:
 
   flash-nvim = buildVimPlugin {
     pname = "flash.nvim";
-    version = "2024-05-14";
+    version = "2024-06-04";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "flash.nvim";
-      rev = "11a2e667d19d8f48c93c6ed2e2e525ac6b1b79be";
-      sha256 = "1z1hx7862zkslqm4znhl722rh5b6ajyl3051vic8bhwinmm0dhqp";
+      rev = "43f67935d388fbb540f8b40e8cbfd80de54f978a";
+      sha256 = "0ib7cyk4dqnm0jyq21n3d0mqljwc4s3dyb5xpkrmw1kv6k9h3m2v";
     };
     meta.homepage = "https://github.com/folke/flash.nvim/";
   };
@@ -3745,12 +3781,12 @@ final: prev:
 
   flit-nvim = buildVimPlugin {
     pname = "flit.nvim";
-    version = "2024-04-08";
+    version = "2024-06-18";
     src = fetchFromGitHub {
       owner = "ggandor";
       repo = "flit.nvim";
-      rev = "56490317983218b09698f8c960c3669958b12b32";
-      sha256 = "1m1l9dh7gwphf7ry7wzvx1hrha3i9b5alp6kpazpjidnjr1mjzb9";
+      rev = "a9be4e76c30a128f1e51af448c8321bf8366bcd4";
+      sha256 = "0fx2jrnfmr5bl537ha02w3wmkmx89n938h2a4vgc2771kwpb1cy5";
     };
     meta.homepage = "https://github.com/ggandor/flit.nvim/";
   };
@@ -3805,12 +3841,12 @@ final: prev:
 
   flutter-tools-nvim = buildVimPlugin {
     pname = "flutter-tools.nvim";
-    version = "2024-04-19";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "flutter-tools.nvim";
-      rev = "f04131d6b2c82c2a7624a8843642d6269b50b437";
-      sha256 = "0i8nincmm9jnq36hhgmygq2101993mabya61mmjgpcf96dl1mdwj";
+      rev = "990a1349c29f7d474a0cd51355aba773ccc9deea";
+      sha256 = "1qn6b6hmyscxiczwp1k530l1k165wlnqxjk820737d27l451c5vm";
     };
     meta.homepage = "https://github.com/akinsho/flutter-tools.nvim/";
   };
@@ -3853,12 +3889,12 @@ final: prev:
 
   friendly-snippets = buildVimPlugin {
     pname = "friendly-snippets";
-    version = "2024-05-16";
+    version = "2024-06-17";
     src = fetchFromGitHub {
       owner = "rafamadriz";
       repo = "friendly-snippets";
-      rev = "dd2fd1281d4b22e7b4a5bfafa3e142d958e251f2";
-      sha256 = "06w5m39zbkbqr85cj32dn44n11z4yji4k9iij722fci9cp66g2wl";
+      rev = "682157939e57bd6a2c86277dfd4d6fbfce63dbac";
+      sha256 = "16fivgnm9vzsk0gqjg8xjp15lrfdlq0w9wa00344yifqvbfam9qi";
     };
     meta.homepage = "https://github.com/rafamadriz/friendly-snippets/";
   };
@@ -3901,12 +3937,12 @@ final: prev:
 
   fuzzy-nvim = buildVimPlugin {
     pname = "fuzzy.nvim";
-    version = "2024-05-16";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "tzachar";
       repo = "fuzzy.nvim";
-      rev = "e29d96b5fab9bb9f613c86bd54ea9b7ef2de61bb";
-      sha256 = "1z7ksmhyg6dch7hf4257fvvyqfwzw4q6na1gy01irf379f89xlm2";
+      rev = "68608f6a232f7e73ccf81437bf12108128f15bd4";
+      sha256 = "1sw0w4dq0pq6dxs3rg2jkl64lk6hj1fqkndq4i5b35sxda1i27mq";
     };
     meta.homepage = "https://github.com/tzachar/fuzzy.nvim/";
   };
@@ -3961,24 +3997,24 @@ final: prev:
 
   fzf-lua = buildNeovimPlugin {
     pname = "fzf-lua";
-    version = "2024-05-14";
+    version = "2024-06-19";
     src = fetchFromGitHub {
       owner = "ibhagwan";
       repo = "fzf-lua";
-      rev = "e412b1b0db62ccfccee41d994da87923eb2d8abd";
-      sha256 = "0vsq389n73inzlc4gy98025jbpjhwkzc2gwj3y15x03sqpvj2mvn";
+      rev = "c56717d6833166adadd11cad05d979b1fb370c57";
+      sha256 = "17cwiv25qg3lvlm6j5v95pdxd92470kb1495xvp2iaanzzmkl1h8";
     };
     meta.homepage = "https://github.com/ibhagwan/fzf-lua/";
   };
 
   fzf-vim = buildVimPlugin {
     pname = "fzf.vim";
-    version = "2024-05-14";
+    version = "2024-06-06";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "fzf.vim";
-      rev = "3656cbb9ef2e3955d1e60bb63be5e2413c0950d7";
-      sha256 = "0m2frn1ybslphwysmkmp8qx69panpmxjsss4jn1gf2knw1cmdkp0";
+      rev = "279e1ec068f526e985ee7e3f62a71f083bbe0196";
+      sha256 = "11gxry27alq4fzynmzw0h2q3vjx5jc2krj1pq9q9xs7yc5fj46y5";
     };
     meta.homepage = "https://github.com/junegunn/fzf.vim/";
   };
@@ -4057,24 +4093,24 @@ final: prev:
 
   git-blame-nvim = buildVimPlugin {
     pname = "git-blame.nvim";
-    version = "2024-05-10";
+    version = "2024-05-28";
     src = fetchFromGitHub {
       owner = "f-person";
       repo = "git-blame.nvim";
-      rev = "fb84fad97cd4b51caee3c865e8a33a0d413b77a8";
-      sha256 = "0yn410ld7xrclpd24smf088xaig9zhv01612yv2qjbz9w16q689d";
+      rev = "408d5487d908dfe5d48e5645d8b27ddcc16b11e0";
+      sha256 = "0m7rg9yn08c9c57dpyxqlswk19mgl8r8krwqhjj3l3n93mbxqym0";
     };
     meta.homepage = "https://github.com/f-person/git-blame.nvim/";
   };
 
   git-conflict-nvim = buildVimPlugin {
     pname = "git-conflict.nvim";
-    version = "2024-01-22";
+    version = "2024-06-03";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "git-conflict.nvim";
-      rev = "4c8e252b87d54d944c1e56bfb477f78b6fdaf661";
-      sha256 = "0rv8z3nd150j9ffw12l40cyzvw0q0066kqvj4fr3v2d8ja48kzhg";
+      rev = "bfd9fe6fba9a161fc199771d85996236a0d0faad";
+      sha256 = "1lwxnfa6scw64pxq1viqrbdcsn2gf8hysqkbnn66y5518b5rc5z4";
     };
     meta.homepage = "https://github.com/akinsho/git-conflict.nvim/";
   };
@@ -4091,6 +4127,18 @@ final: prev:
     meta.homepage = "https://github.com/rhysd/git-messenger.vim/";
   };
 
+  git-prompt-string-lualine-nvim = buildVimPlugin {
+    pname = "git-prompt-string-lualine.nvim";
+    version = "2024-04-22";
+    src = fetchFromGitHub {
+      owner = "mikesmithgh";
+      repo = "git-prompt-string-lualine.nvim";
+      rev = "5426ce15462abe4faf5cd76db7476b2686120fe9";
+      sha256 = "sha256-BM1AEpIcOd5nr4N/ZoxK9NodiUbUuY9hw7n/wRTXzzk=";
+    };
+    meta.homepage = "https://github.com/mikesmithgh/git-prompt-string-lualine.nvim/";
+  };
+
   git-worktree-nvim = buildVimPlugin {
     pname = "git-worktree.nvim";
     version = "2023-11-07";
@@ -4141,12 +4189,12 @@ final: prev:
 
   gitsigns-nvim = buildNeovimPlugin {
     pname = "gitsigns.nvim";
-    version = "2024-05-06";
+    version = "2024-06-19";
     src = fetchFromGitHub {
       owner = "lewis6991";
       repo = "gitsigns.nvim";
-      rev = "805610a9393fa231f2c2b49cb521bfa413fadb3d";
-      sha256 = "0cxcq40i84l1jblvvn913hiz9qik62g0iij097prxgz2jx66lvdz";
+      rev = "651d5ed082605f3ed96b0f037a768ca06ecf8fc3";
+      sha256 = "0fllibgmp1sfargpkswg1h3kg667y0sdazc0z5midaq8skr9crz6";
     };
     meta.homepage = "https://github.com/lewis6991/gitsigns.nvim/";
   };
@@ -4201,12 +4249,12 @@ final: prev:
 
   go-nvim = buildVimPlugin {
     pname = "go.nvim";
-    version = "2024-05-13";
+    version = "2024-06-19";
     src = fetchFromGitHub {
       owner = "ray-x";
       repo = "go.nvim";
-      rev = "db45cc91cf1bedb5fe5640cf71c452d43a87595a";
-      sha256 = "1g22fg37clakkg4013s48223k1rf9knicmld0adbsi7hx6cizbz4";
+      rev = "78c6d7b970a79c34dc0f35149f4bd845e09803d6";
+      sha256 = "0pg14jml1n27imy4rdb1ri7wi7bnh2fp8q7rah5az8k80g26ghpg";
     };
     meta.homepage = "https://github.com/ray-x/go.nvim/";
   };
@@ -4297,12 +4345,12 @@ final: prev:
 
   grapple-nvim = buildVimPlugin {
     pname = "grapple.nvim";
-    version = "2024-04-28";
+    version = "2024-05-18";
     src = fetchFromGitHub {
       owner = "cbochs";
       repo = "grapple.nvim";
-      rev = "493f174a1ace3f2d55ba2191129e43b3875b9124";
-      sha256 = "0b55kkvjsw176510gic7jm2ym6nvllaz4wi91fihmmhdp7k9s988";
+      rev = "7aedc261b05a6c030397c4bc26416efbe746ebf1";
+      sha256 = "0cc5qxgm4v2z5p2q3famwi3k7qw8x11mzlhryd95g32p90f8m5ba";
     };
     meta.homepage = "https://github.com/cbochs/grapple.nvim/";
   };
@@ -4357,72 +4405,72 @@ final: prev:
 
   gruvbox-material = buildVimPlugin {
     pname = "gruvbox-material";
-    version = "2024-05-15";
+    version = "2024-06-03";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "gruvbox-material";
-      rev = "8f504421acd991b786ae6796176a1c5878221052";
-      sha256 = "0nx7z1as9fcr8bq6q2n9wx7cw78acsvi0qc3sdcklfw5scrmpn3l";
+      rev = "905a41c86dbfed42f89c13c36f0e3407e9318910";
+      sha256 = "150lr7imib2wk3pjlp6jx0w2vz005q89f7r0vnvpw1gh2f6rjl5q";
     };
     meta.homepage = "https://github.com/sainnhe/gruvbox-material/";
   };
 
   gruvbox-material-nvim = buildVimPlugin {
     pname = "gruvbox-material.nvim";
-    version = "2024-05-11";
+    version = "2024-06-16";
     src = fetchFromGitHub {
       owner = "f4z3r";
       repo = "gruvbox-material.nvim";
-      rev = "186bfd9fc87ada2e408158bc0f72799b46370add";
-      sha256 = "0a19dsjhx50fpl2apwwllpvc9bznigc4f41lhyb0ydldi6x0rg13";
+      rev = "0ab9d8c7a8b4cd26338ca0c816c4ca1a48f9d5d6";
+      sha256 = "0il0rkj3yskfy591phdvyd8kdc14303m1g58hygvdd46ccsxj8kw";
     };
     meta.homepage = "https://github.com/f4z3r/gruvbox-material.nvim/";
   };
 
   gruvbox-nvim = buildVimPlugin {
     pname = "gruvbox.nvim";
-    version = "2024-05-07";
+    version = "2024-06-05";
     src = fetchFromGitHub {
       owner = "ellisonleao";
       repo = "gruvbox.nvim";
-      rev = "c442515506caa166118e157980f62a9ac24fa8c3";
-      sha256 = "07yp690ybjknlczbdglhrb9mdalf13s9pf190kv20a2yx8ipj1yq";
+      rev = "d4cde3853a172485961b515c36d51d757728d6e6";
+      sha256 = "0aqz3gybdl1sj92p53md63pwgfs1d60k8vjc0x69wqya81dl7cn3";
     };
     meta.homepage = "https://github.com/ellisonleao/gruvbox.nvim/";
   };
 
   guard-collection = buildVimPlugin {
     pname = "guard-collection";
-    version = "2024-05-10";
+    version = "2024-06-06";
     src = fetchFromGitHub {
       owner = "nvimdev";
       repo = "guard-collection";
-      rev = "78df199510b9c8e2a1da0cdf71a01c4f6009a47d";
-      sha256 = "01y36ra8xrlr2s7lbxz5zw923rdhrnqwg0aa2hbpza7adwx8q0s0";
+      rev = "c1651e33a450279b76e6aa70d131472201ef930d";
+      sha256 = "1axnx1wa32mh5s2vzhhc5y1471053y5ml9gnvmiiqax94m7acvzp";
     };
     meta.homepage = "https://github.com/nvimdev/guard-collection/";
   };
 
   guard-nvim = buildVimPlugin {
     pname = "guard.nvim";
-    version = "2024-02-10";
+    version = "2024-06-05";
     src = fetchFromGitHub {
       owner = "nvimdev";
       repo = "guard.nvim";
-      rev = "4ffdefe0f181ea7e449f60fe94ccc967220181c5";
-      sha256 = "0apv9jii9lw1rk84qycxgyfddcri9y5i3zkf2mpd1jhl1czw7iyb";
+      rev = "b066152fe06122b047a6b3ce427a19d8b6e628ce";
+      sha256 = "0qcq5acnq6hgxpi9f3qsixsgvlzlaq1nmizwbanzkqgcj6ac4bzj";
     };
     meta.homepage = "https://github.com/nvimdev/guard.nvim/";
   };
 
   guess-indent-nvim = buildVimPlugin {
     pname = "guess-indent.nvim";
-    version = "2023-04-03";
+    version = "2024-06-19";
     src = fetchFromGitHub {
       owner = "nmac427";
       repo = "guess-indent.nvim";
-      rev = "b8ae749fce17aa4c267eec80a6984130b94f80b2";
-      sha256 = "1i31vbwih28yzjnkmv1xkjrbviyardk7j1dpxmcwa1ch8v4iz93y";
+      rev = "6c75506e71836f34fe5c5efa322dfce3e0494e7b";
+      sha256 = "0pg2jbksvdh6sy1ygygiax5r1d93axmdg6n0jdk6iyfa1jlzdhrw";
     };
     meta.homepage = "https://github.com/nmac427/guess-indent.nvim/";
   };
@@ -4453,35 +4501,35 @@ final: prev:
 
   hardhat-nvim = buildVimPlugin {
     pname = "hardhat.nvim";
-    version = "2024-05-12";
+    version = "2024-06-14";
     src = fetchFromGitHub {
       owner = "TheSnakeWitcher";
       repo = "hardhat.nvim";
-      rev = "65657641b66d58ec5f3d165d6d76ac06e373e189";
-      sha256 = "0kxbdic7ssdan57ni3bs008jv01mb531i3xbdpcnbzk7i83mhh6r";
+      rev = "9d5b241261904ae22429877c1459e7c632dba736";
+      sha256 = "1xb93g4cxy3w4jjagaqmyvf2qfii4fm5biriadkmf4a08vdxg682";
     };
     meta.homepage = "https://github.com/TheSnakeWitcher/hardhat.nvim/";
   };
 
   hardtime-nvim = buildVimPlugin {
     pname = "hardtime.nvim";
-    version = "2024-04-17";
+    version = "2024-06-10";
     src = fetchFromGitHub {
       owner = "m4xshen";
       repo = "hardtime.nvim";
-      rev = "eaf4bc31b86419c26ad7b3a142dd36ca545ca2e4";
-      sha256 = "0z2ppcfqd9zkhmr8xkckq7a7a8pjgma0f6jyyzg83yb3f4443yhw";
+      rev = "9a4e24fb40482dc85a93bf6cf344a030b9bf9a39";
+      sha256 = "01b34bmyw236xr8bcwwn40s6360ybmrd9lpbw0hnvkn4nsml6hi6";
     };
     meta.homepage = "https://github.com/m4xshen/hardtime.nvim/";
   };
 
   hare-vim = buildVimPlugin {
     pname = "hare.vim";
-    version = "2024-05-12";
+    version = "2024-05-24";
     src = fetchgit {
       url = "https://git.sr.ht/~sircmpwn/hare.vim";
-      rev = "188309129ac77590113f13d6f0da28c3f6f4d494";
-      sha256 = "0rz1hx3zljs3g5namlyzafvl12vi164vq3mqj02zd04hmm1rsr0b";
+      rev = "e0d38c0563224aa7b0101f64640788691f6c15b9";
+      sha256 = "1csc5923acy7awgix0qfkal39v4shzw5vyvw56vkmazvc8n8rqs6";
     };
     meta.homepage = "https://git.sr.ht/~sircmpwn/hare.vim";
   };
@@ -4500,36 +4548,36 @@ final: prev:
 
   haskell-scope-highlighting-nvim = buildVimPlugin {
     pname = "haskell-scope-highlighting.nvim";
-    version = "2023-04-29";
+    version = "2024-05-23";
     src = fetchFromGitHub {
       owner = "kiyoon";
       repo = "haskell-scope-highlighting.nvim";
-      rev = "ffeda85bae909816cbbf9d061aea9115cf8166f2";
-      sha256 = "sha256-f0y6rU0IqN8RZ7d1iyvHot2zLQ0yt4JOZhpdhlGZrqc=";
+      rev = "8d882e6710865217394cf1cad5fc9e2becd6d6f6";
+      sha256 = "1a7mnb8a0a4v3gyw7padwbqchxmjnygbvvr5m2cixlmb01ahs9ap";
     };
     meta.homepage = "https://github.com/kiyoon/haskell-scope-highlighting.nvim/";
   };
 
   haskell-snippets-nvim = buildVimPlugin {
     pname = "haskell-snippets.nvim";
-    version = "2024-05-13";
+    version = "2024-05-20";
     src = fetchFromGitHub {
       owner = "mrcjkb";
       repo = "haskell-snippets.nvim";
-      rev = "b00139b127f775f481f434bf9c60957185c74e4c";
-      sha256 = "03y9d1nk9v8q1hwcrjg4h47c5vglj6rzv4mjawbgid6mxh8gmsy8";
+      rev = "46462fe142521bd5719412dc9d740c2e54a9186e";
+      sha256 = "14cqvs09yk1b9dk8k0l322kxqahr5hzv7iiz72pjfjjk888dhdr2";
     };
     meta.homepage = "https://github.com/mrcjkb/haskell-snippets.nvim/";
   };
 
   haskell-tools-nvim = buildNeovimPlugin {
     pname = "haskell-tools.nvim";
-    version = "2024-05-13";
+    version = "2024-06-16";
     src = fetchFromGitHub {
       owner = "MrcJkb";
       repo = "haskell-tools.nvim";
-      rev = "81115b0c1007e7cc2986b72c6efaa726d6deab06";
-      sha256 = "0sg3ckr3xamapz9wq4wdvrdngvgj25plcdja4bg8ik1l6rpwjigm";
+      rev = "0223bf4b47ab517030f406617c153e7d1e4a7811";
+      sha256 = "1ab3s6lrqh870qcphxjsvj5q8jg7lxv27119r5qyp60rf657q39a";
     };
     meta.homepage = "https://github.com/MrcJkb/haskell-tools.nvim/";
   };
@@ -4584,12 +4632,12 @@ final: prev:
 
   heirline-nvim = buildVimPlugin {
     pname = "heirline.nvim";
-    version = "2024-05-12";
+    version = "2024-05-21";
     src = fetchFromGitHub {
       owner = "rebelot";
       repo = "heirline.nvim";
-      rev = "c52391dc4428d503f65e6bcb1533e6334f22a136";
-      sha256 = "0hplfmqy9gx21ifqyj23ydq7zsm9v0kfhhqb4s9bjb1djx9209j4";
+      rev = "0d797435e54645a5f98bad7ad6046aac1ef95c1e";
+      sha256 = "0payyx0j0s4wgk5xvczdnjqkj5nymlhw4f7hcw3sl9m334vnxshb";
     };
     meta.homepage = "https://github.com/rebelot/heirline.nvim/";
   };
@@ -4632,11 +4680,11 @@ final: prev:
 
   himalaya-vim = buildVimPlugin {
     pname = "himalaya-vim";
-    version = "2024-05-15";
+    version = "2024-05-27";
     src = fetchgit {
       url = "https://git.sr.ht/~soywod/himalaya-vim";
-      rev = "7d839d4ddb24b76fff748ebabf8a538c8cf79953";
-      sha256 = "1yrnyrc03csm1dx6cjsj8k5q3jyhk2cjfpc2rsh8l11gpin37s5h";
+      rev = "cea041c927a04a841aea53abcedd4a0d153d4ca8";
+      sha256 = "0yrilhvqklfbfknkdskywf95mfhbr9rfjs2gmppnzgfs7fg6jn63";
     };
     meta.homepage = "https://git.sr.ht/~soywod/himalaya-vim";
   };
@@ -4691,36 +4739,36 @@ final: prev:
 
   hop-nvim = buildVimPlugin {
     pname = "hop.nvim";
-    version = "2024-04-25";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "smoka7";
       repo = "hop.nvim";
-      rev = "6ff23501a1fd1c75c91dfd99ff5befcfdb02c11d";
-      sha256 = "0a621aljh16apa8vc6nf4l4h2h7amxdwx5hqw3fmiipxc9g9cczr";
+      rev = "036462a345792279c58f2f6445756efab706f04a";
+      sha256 = "0das4rci4p3zfmjxkm8rax5pwp81bvssz0cnyzgjqjbzxfijd6px";
     };
     meta.homepage = "https://github.com/smoka7/hop.nvim/";
   };
 
   hotpot-nvim = buildVimPlugin {
     pname = "hotpot.nvim";
-    version = "2024-04-04";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "rktjmp";
       repo = "hotpot.nvim";
-      rev = "5c96b423a6663c91c47d6184f810acf1dacf4615";
-      sha256 = "136jawqxirrs130ka15hnbwlgplrkisahcv91v4avcbr46rx09d6";
+      rev = "7f53e1d4fdc907e808999c83ad3592e336398add";
+      sha256 = "0kn3jmzicpp2r6q3p1bdv2yw32b8rpilzafs25hpryanyngbswmk";
     };
     meta.homepage = "https://github.com/rktjmp/hotpot.nvim/";
   };
 
   hover-nvim = buildVimPlugin {
     pname = "hover.nvim";
-    version = "2024-05-05";
+    version = "2024-06-12";
     src = fetchFromGitHub {
       owner = "lewis6991";
       repo = "hover.nvim";
-      rev = "82684ebd5f2a812d6d05a629b14109618b54cbfc";
-      sha256 = "1d7f9sfl6455799ra9fvyvmwcrs8803xgmsp0qb9rgw2n37ky22i";
+      rev = "4339cbbcb572b1934c53dcb66ad4bf6a0abb7918";
+      sha256 = "1nnhm8xhkdjvqal7016v22cljhpga8y0mydmvalz954cviskhna3";
     };
     meta.homepage = "https://github.com/lewis6991/hover.nvim/";
   };
@@ -4763,12 +4811,12 @@ final: prev:
 
   iceberg-vim = buildVimPlugin {
     pname = "iceberg.vim";
-    version = "2022-11-23";
+    version = "2024-06-19";
     src = fetchFromGitHub {
       owner = "cocopon";
       repo = "iceberg.vim";
-      rev = "e01ac08c2202e7544531f4d806f6893539da6471";
-      sha256 = "19a0wk1qjp385jmd3kp3r5mkmly90j0jipz64zkbpdsh0v8fvsnk";
+      rev = "23835d5ed696436f716cbfdb56a93a7850fe3b18";
+      sha256 = "04cw04yirvbfq1l7wbavpnx46830qsp3cgx6rqidhhj794pn3xvc";
     };
     meta.homepage = "https://github.com/cocopon/iceberg.vim/";
   };
@@ -4811,12 +4859,12 @@ final: prev:
 
   image-nvim = buildNeovimPlugin {
     pname = "image.nvim";
-    version = "2024-05-14";
+    version = "2024-06-16";
     src = fetchFromGitHub {
       owner = "3rd";
       repo = "image.nvim";
-      rev = "b979fa1194443c97dd8cb6053a4cec163c9048f5";
-      sha256 = "0x1v1flsghf3v78mfsnkcp03d45i10c668imkxqs9zylsxmpnrpf";
+      rev = "bdd5506be7fb39668692e30141f1637b691379af";
+      sha256 = "0dfvg393l0rwr8lm25fkw8gh1vx592jc1ccslal81jvyjnvgc237";
     };
     meta.homepage = "https://github.com/3rd/image.nvim/";
   };
@@ -4847,12 +4895,12 @@ final: prev:
 
   inc-rename-nvim = buildVimPlugin {
     pname = "inc-rename.nvim";
-    version = "2024-05-13";
+    version = "2024-06-06";
     src = fetchFromGitHub {
       owner = "smjonas";
       repo = "inc-rename.nvim";
-      rev = "7c6125b1ee476b56708a6518a37b2a3357f57bfc";
-      sha256 = "0h7mngb02gdcp091nx4bjwpqh1a12qx7cbp2m6qdp4n3dfk6lxqr";
+      rev = "535b508c0cb14d00c1836ad901b3c531cb1152bb";
+      sha256 = "0bng09gybbcm34xdj50m32s303ips319mdh0q7va99228zyf8nib";
     };
     meta.homepage = "https://github.com/smjonas/inc-rename.nvim/";
   };
@@ -4895,12 +4943,12 @@ final: prev:
 
   indent-blankline-nvim = buildVimPlugin {
     pname = "indent-blankline.nvim";
-    version = "2024-03-14";
+    version = "2024-05-23";
     src = fetchFromGitHub {
       owner = "lukas-reineke";
       repo = "indent-blankline.nvim";
-      rev = "3d08501caef2329aba5121b753e903904088f7e6";
-      sha256 = "09p7y9d08sb1fqpy84yga39cf9misir6wx3rby67v2pl3i01k7sy";
+      rev = "d98f537c3492e87b6dc6c2e3f66ac517528f406f";
+      sha256 = "0zb52msar7hl38xmi3pvjsynjabqyv2rsajrzdx46wqp018v971b";
     };
     meta.homepage = "https://github.com/lukas-reineke/indent-blankline.nvim/";
   };
@@ -5015,12 +5063,12 @@ final: prev:
 
   iron-nvim = buildVimPlugin {
     pname = "iron.nvim";
-    version = "2024-05-16";
+    version = "2024-05-17";
     src = fetchFromGitHub {
       owner = "Vigemus";
       repo = "iron.nvim";
-      rev = "0525058037bb0a600cb0850cb5f5b440f631b826";
-      sha256 = "0ylada692n1q2djscir70qqyxqpw3g6m5al4d3pmhnhabara5262";
+      rev = "c993d018d11829528b0fe91eb9ba412e453071ea";
+      sha256 = "04pc9m1zw02b1yz3j2ldw78asvcr9hfyx1sdx7zxb4pcx8l6i2p5";
     };
     meta.homepage = "https://github.com/Vigemus/iron.nvim/";
   };
@@ -5124,12 +5172,12 @@ final: prev:
 
   jsonfly-nvim = buildVimPlugin {
     pname = "jsonfly.nvim";
-    version = "2024-05-12";
+    version = "2024-06-02";
     src = fetchFromGitHub {
       owner = "Myzel394";
       repo = "jsonfly.nvim";
-      rev = "5a2a67bff2f8e3347dea82bd74d25bfe248bf637";
-      sha256 = "18lmrccnhl2czbffnjk2z5n7pprjlk11vjvjw1jry8lgicfhvxv8";
+      rev = "4d22028b13513f14f0739d3833b2dfca7a6c7aef";
+      sha256 = "0661vq4075icaks95rvzsq14h10hb5bnn5lk21s0z6vclp9h0czm";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/Myzel394/jsonfly.nvim/";
@@ -5137,12 +5185,12 @@ final: prev:
 
   julia-vim = buildVimPlugin {
     pname = "julia-vim";
-    version = "2024-04-23";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "JuliaEditorSupport";
       repo = "julia-vim";
-      rev = "16b0cc336eb1b74205396a7677940d88976e2365";
-      sha256 = "0r34z1c760h86axrihxg5fhz945710p29j8xc0xdr2lyv2d17kdn";
+      rev = "7946ce330b6287c9293aece5b14feafa1125779e";
+      sha256 = "0j80pvv3k21zqx0bik257xmmj4a7cjx3d1fp787k1gksr7zcxpby";
     };
     meta.homepage = "https://github.com/JuliaEditorSupport/julia-vim/";
   };
@@ -5161,12 +5209,12 @@ final: prev:
 
   kanagawa-nvim = buildVimPlugin {
     pname = "kanagawa.nvim";
-    version = "2024-04-29";
+    version = "2024-06-12";
     src = fetchFromGitHub {
       owner = "rebelot";
       repo = "kanagawa.nvim";
-      rev = "860e4f80df71221d18bf2cd9ef1deb4d364274d2";
-      sha256 = "1cmlv5r9ckihk0y496lr5zy2baks2qxkvfnd0l49bv3rp9zfbym1";
+      rev = "fe5b2c9e2549862c3dc3f3c8e9cf7ddece0f40c2";
+      sha256 = "1ip8f9i822d6mmaxvzrvap19k5lr9mp8k6lgh2xyspszbgxi0nhg";
     };
     meta.homepage = "https://github.com/rebelot/kanagawa.nvim/";
   };
@@ -5197,12 +5245,12 @@ final: prev:
 
   knap = buildVimPlugin {
     pname = "knap";
-    version = "2024-02-25";
+    version = "2024-06-13";
     src = fetchFromGitHub {
       owner = "frabjous";
       repo = "knap";
-      rev = "d4ea571d2d4e139d288b758c5bab31788d30eea3";
-      sha256 = "1yhbmbl4va312xayj1ah5gz3wss4h89mn8qigm9iadxrq339ppnw";
+      rev = "0040760bb504a713ea5988c7c490a15faf477c57";
+      sha256 = "1l09cc3mi9w9y6g23cylxd5jsrwh451bbmi7w7amymwz17419wsf";
     };
     meta.homepage = "https://github.com/frabjous/knap/";
   };
@@ -5281,16 +5329,28 @@ final: prev:
 
   lazy-nvim = buildVimPlugin {
     pname = "lazy.nvim";
-    version = "2024-05-16";
+    version = "2024-06-18";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "lazy.nvim";
-      rev = "05240b41548c4245a04d34ee54f789e824129991";
-      sha256 = "1if5nq5z329l815nzrqs383ycck9s3hm5mhvz2ar001alszg4azc";
+      rev = "bc620783663ab09d16bff9fdecc07da65b2a1528";
+      sha256 = "180rvpy9bv7c7gnimhwgzyxr2hml9v371ki8n73v726ssk4x1pzc";
     };
     meta.homepage = "https://github.com/folke/lazy.nvim/";
   };
 
+  lazydev-nvim = buildVimPlugin {
+    pname = "lazydev.nvim";
+    version = "2024-06-15";
+    src = fetchFromGitHub {
+      owner = "folke";
+      repo = "lazydev.nvim";
+      rev = "6184ebbbc8045d70077659b7d30c705a588dc62f";
+      sha256 = "1kj3p5x7h8k1xp8m5pxjkzbfigcbrschgm1kzlc3qkv0py3i5k5h";
+    };
+    meta.homepage = "https://github.com/folke/lazydev.nvim/";
+  };
+
   lazygit-nvim = buildVimPlugin {
     pname = "lazygit.nvim";
     version = "2024-05-13";
@@ -5305,12 +5365,12 @@ final: prev:
 
   lean-nvim = buildVimPlugin {
     pname = "lean.nvim";
-    version = "2024-04-09";
+    version = "2024-06-10";
     src = fetchFromGitHub {
       owner = "Julian";
       repo = "lean.nvim";
-      rev = "2828898ad6f6ac6c1c9f404d72bd3d56546b0c72";
-      sha256 = "16wxih5nhdybzrm04z18cjwhjvdxq3yjdsq02v7q4kxwkbz5sy1a";
+      rev = "3c0b48374146abd651da5623f3f73f96121a616f";
+      sha256 = "145hpcg64pxxfqhryzs88q0yyw163a892npsra6rbdnca1jzlr8z";
     };
     meta.homepage = "https://github.com/Julian/lean.nvim/";
   };
@@ -5341,24 +5401,24 @@ final: prev:
 
   leap-nvim = buildVimPlugin {
     pname = "leap.nvim";
-    version = "2024-05-14";
+    version = "2024-06-18";
     src = fetchFromGitHub {
       owner = "ggandor";
       repo = "leap.nvim";
-      rev = "b1ecfb63c0b8babfd0dcd6b5ca6de37bbf3526cd";
-      sha256 = "0sp3zbxl3lq80aw7k64cnkbr1m6liq41spgykjx07js32pwzw4mx";
+      rev = "2ec33f2a38974fe6997c42c5ce61ce84eab84cc8";
+      sha256 = "0xavag2c5mq5ii14b5dvm7nm13cs97nhag28gpvjdzwgkzz3c21v";
     };
     meta.homepage = "https://github.com/ggandor/leap.nvim/";
   };
 
   legendary-nvim = buildVimPlugin {
     pname = "legendary.nvim";
-    version = "2024-05-10";
+    version = "2024-06-14";
     src = fetchFromGitHub {
       owner = "mrjones2014";
       repo = "legendary.nvim";
-      rev = "33108b19edadee8c2758f6bc574cc8335fdf89fb";
-      sha256 = "1w9zchqpbf3nvdxdx7xv5wy4my8xknnxwgcf3hvlycvxsg001xxd";
+      rev = "89e0d00c5aed623c1f29cf2a963fd1737358e92a";
+      sha256 = "0i4xh66xydssvr4n2kknrg1qibj8ikfvy5m6ljbmhbvgxim74y48";
     };
     meta.homepage = "https://github.com/mrjones2014/legendary.nvim/";
   };
@@ -5533,12 +5593,12 @@ final: prev:
 
   lir-nvim = buildVimPlugin {
     pname = "lir.nvim";
-    version = "2024-03-15";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "tamago324";
       repo = "lir.nvim";
-      rev = "7a9d45de08fecd23a04aca1f96688d744830029e";
-      sha256 = "17pvzsk1w50bdl9ddrgylck7sam41vvz4x4pm5jkxc4bs7vvffd8";
+      rev = "5b1a927cfee45845d7d4450a1e8f2f63cf0baaac";
+      sha256 = "0c5b4lrk8d37nmybavbv0pmr10162kpgpzslxjag3q30ljxnspwp";
     };
     meta.homepage = "https://github.com/tamago324/lir.nvim/";
   };
@@ -5593,12 +5653,12 @@ final: prev:
 
   litee-nvim = buildVimPlugin {
     pname = "litee.nvim";
-    version = "2023-11-11";
+    version = "2024-06-06";
     src = fetchFromGitHub {
       owner = "ldelossa";
       repo = "litee.nvim";
-      rev = "3c51764a615566e4c0223362f4be00acc23c430e";
-      sha256 = "1y68zqlzm4ba7fg62drs2flxbyizar1m9vyqgbah7bfdvw4gw0al";
+      rev = "4efaf373322d9e71eaff31164abb393417cc6f6a";
+      sha256 = "13ajn5xply01k4wpsl0v37igama8pgy0kz1lgvv7jn8b1m04yh9x";
     };
     meta.homepage = "https://github.com/ldelossa/litee.nvim/";
   };
@@ -5617,12 +5677,12 @@ final: prev:
 
   llm-nvim = buildVimPlugin {
     pname = "llm.nvim";
-    version = "2024-02-22";
+    version = "2024-06-18";
     src = fetchFromGitHub {
       owner = "huggingface";
       repo = "llm.nvim";
-      rev = "51b76dac9c33c0122adfe28daf52ceaa31c4aa02";
-      sha256 = "07i1ixbiby4c81lkydwvygz6vxs1xhqnwzcsad3xzcaz7zdl00kx";
+      rev = "9832a149bdcf0709433ca9c2c3a1c87460e98d13";
+      sha256 = "1ywlvpbsgdzn7idv0sjcbp6nh2h18h9a9cmqvl3b3h928651xi53";
     };
     meta.homepage = "https://github.com/huggingface/llm.nvim/";
   };
@@ -5665,12 +5725,12 @@ final: prev:
 
   lsp-overloads-nvim = buildVimPlugin {
     pname = "lsp-overloads.nvim";
-    version = "2024-04-13";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "Issafalcon";
       repo = "lsp-overloads.nvim";
-      rev = "be3486a501fdda84ea91a0949178b75e8476030d";
-      sha256 = "097vn7y6gal2fimpvvqm70jz6im3pnb370dxvc7zmw1yrr3zjhc4";
+      rev = "78f4cf53ff72a234d7903c1d41872c8b21c6007b";
+      sha256 = "03791qzm3qv2gw176bwki4dmizjy3myzdm2c62y4hjafx4y9mn8d";
     };
     meta.homepage = "https://github.com/Issafalcon/lsp-overloads.nvim/";
   };
@@ -5701,12 +5761,12 @@ final: prev:
 
   lsp-zero-nvim = buildVimPlugin {
     pname = "lsp-zero.nvim";
-    version = "2024-05-08";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "VonHeikemen";
       repo = "lsp-zero.nvim";
-      rev = "f12d50716e8e59ea9f5cf484eac6968c33a95917";
-      sha256 = "07dsgbgqmdlv2lv498lwzb8vq7fl4hdlr4psym6ilssmqjc6xkx2";
+      rev = "16de3b18c5f7b6230d89b8e64ce9a4801b6f8d08";
+      sha256 = "1z39f3qagyhrm90hz4pilbqnbyncpxgzsx236yw9mdgfqni912ms";
     };
     meta.homepage = "https://github.com/VonHeikemen/lsp-zero.nvim/";
   };
@@ -5725,23 +5785,23 @@ final: prev:
 
   lsp_lines-nvim = buildVimPlugin {
     pname = "lsp_lines.nvim";
-    version = "2024-03-09";
+    version = "2024-05-19";
     src = fetchgit {
       url = "https://git.sr.ht/~whynothugo/lsp_lines.nvim";
-      rev = "6f3defec73f7c87939e800e9afa5d0571b19b401";
-      sha256 = "1bkvghdj53wak8c0s293vzl788z96cz2p5c61qh2bdzh6qpn55d2";
+      rev = "7d9e2748b61bff6ebba6e30adbc7173ccf21c055";
+      sha256 = "1w1nmh3nkci7w1apk0mx5sdwlgi4ilkgx3cgxl79iv5bwwyfdjs2";
     };
     meta.homepage = "https://git.sr.ht/~whynothugo/lsp_lines.nvim";
   };
 
   lsp_signature-nvim = buildVimPlugin {
     pname = "lsp_signature.nvim";
-    version = "2024-05-10";
+    version = "2024-06-15";
     src = fetchFromGitHub {
       owner = "ray-x";
       repo = "lsp_signature.nvim";
-      rev = "aed5d1162b0f07bb3af34bedcc5f70a2b6466ed8";
-      sha256 = "11x1mv3bzg7d9k2s69766p7abrzbdnv4knj6yx06b6vngdk2x03z";
+      rev = "a38da0a61c172bb59e34befc12efe48359884793";
+      sha256 = "1p6fznwg6pxr39x08lf9qhjkcvfysd58k1as6d4lwibkav7rfkki";
     };
     meta.homepage = "https://github.com/ray-x/lsp_signature.nvim/";
   };
@@ -5772,24 +5832,24 @@ final: prev:
 
   lspsaga-nvim = buildVimPlugin {
     pname = "lspsaga.nvim";
-    version = "2024-05-16";
+    version = "2024-06-11";
     src = fetchFromGitHub {
       owner = "nvimdev";
       repo = "lspsaga.nvim";
-      rev = "9b33a6c2a2cc53f3b3897623b5a650916c8c2345";
-      sha256 = "0wql9wv51aqwazkl6i7373hdddzjr5zpdw2injjvdg9fhxb0g738";
+      rev = "6f920cfabddb9b7de5a3a4d0b7cd4f0774ae23e2";
+      sha256 = "1zgc53kdc10k7pa67svjw9bndazblmjw1lrsmdprggsxvcd1x2n8";
     };
     meta.homepage = "https://github.com/nvimdev/lspsaga.nvim/";
   };
 
   ltex_extra-nvim = buildVimPlugin {
     pname = "ltex_extra.nvim";
-    version = "2024-04-13";
+    version = "2024-06-15";
     src = fetchFromGitHub {
       owner = "barreiroleo";
       repo = "ltex_extra.nvim";
-      rev = "4296c2c7aefbca721d02a011366a1de30598046c";
-      sha256 = "07ql6j5m3sdkwdn273xmqryksrz4ggw3plgxr4f6n7s07jq05qrs";
+      rev = "24acd044ce7a26b3cdb537cbd094de37c3e1ac45";
+      sha256 = "1dq93f4aj3xni9xbls8bhsf5jja36dlpgdlkfk1lvkvyh489wrrq";
     };
     meta.homepage = "https://github.com/barreiroleo/ltex_extra.nvim/";
   };
@@ -5820,12 +5880,12 @@ final: prev:
 
   luasnip = buildNeovimPlugin {
     pname = "luasnip";
-    version = "2024-05-16";
+    version = "2024-06-07";
     src = fetchFromGitHub {
       owner = "l3mon4d3";
       repo = "luasnip";
-      rev = "78296bfabf756dbb6c7134aa219e75564dddf40f";
-      sha256 = "14z095b95qaxvpaz22pfls4by59fdxqjbkkv7ggjhhhhf0y3by94";
+      rev = "50fcf17db7c75af80e6b6109acfbfb4504768780";
+      sha256 = "0aa5imzbfz50d7vpmxixqjri147x7w7883p8qm6dp2m1ygijrx30";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/l3mon4d3/luasnip/";
@@ -5833,12 +5893,12 @@ final: prev:
 
   luatab-nvim = buildVimPlugin {
     pname = "luatab.nvim";
-    version = "2021-12-05";
+    version = "2024-06-16";
     src = fetchFromGitHub {
       owner = "alvarosevilla95";
       repo = "luatab.nvim";
-      rev = "79d53c11bd77274b49b50f1d6fdb10529d7354b7";
-      sha256 = "0cn244bh82b52pysimvqwl0spj6jadxb673jw6mnmd52nlv634f5";
+      rev = "93504f3eda13fc925834429d4caa419d65bc6a01";
+      sha256 = "138wp7qm2w0p7y02hplnl6grgi49p9r9wbxfb6brx1zgyqqcxv09";
     };
     meta.homepage = "https://github.com/alvarosevilla95/luatab.nvim/";
   };
@@ -5867,6 +5927,18 @@ final: prev:
     meta.homepage = "https://github.com/mkasa/lushtags/";
   };
 
+  lz-n = buildNeovimPlugin {
+    pname = "lz.n";
+    version = "2024-06-19";
+    src = fetchFromGitHub {
+      owner = "nvim-neorocks";
+      repo = "lz.n";
+      rev = "ed1dfca4c69ad84558bace90740b3ea2dd6ac842";
+      sha256 = "122rx7khasj0liwrw07m4x7ysq86342b3q5fzg0gdkln7nn5pv4n";
+    };
+    meta.homepage = "https://github.com/nvim-neorocks/lz.n/";
+  };
+
   magma-nvim-goose = buildVimPlugin {
     pname = "magma-nvim-goose";
     version = "2023-07-04";
@@ -5881,12 +5953,12 @@ final: prev:
 
   mark-radar-nvim = buildVimPlugin {
     pname = "mark-radar.nvim";
-    version = "2024-02-29";
+    version = "2024-06-04";
     src = fetchFromGitHub {
       owner = "winston0410";
       repo = "mark-radar.nvim";
-      rev = "bf27e13ce18eb5f34d61d8ea7d91adccb24f2090";
-      sha256 = "0ik2kyzlkc930fkbmw9x0mallpffgc7ym4v5rricamn43q07vgm2";
+      rev = "94dd7092cf930087f9342874a56de7d6324a13b8";
+      sha256 = "0s5bzfrcd7mi3csvcwbpdzvw9b378z5jfivjfrg1z6hpwqm8m5n7";
     };
     meta.homepage = "https://github.com/winston0410/mark-radar.nvim/";
   };
@@ -5903,6 +5975,18 @@ final: prev:
     meta.homepage = "https://github.com/iamcco/markdown-preview.nvim/";
   };
 
+  markdown-nvim = buildVimPlugin {
+    pname = "markdown.nvim";
+    version = "2024-06-10";
+    src = fetchFromGitHub {
+      owner = "tadmccorkle";
+      repo = "markdown.nvim";
+      rev = "d6dd17dd36fd8d83f5bf2fef6a9acc24ffa6ff9c";
+      sha256 = "1i6ays4c4azx7fvfy4hm69psmafyvqf7q33a8692cj6q8zl5fvxd";
+    };
+    meta.homepage = "https://github.com/tadmccorkle/markdown.nvim/";
+  };
+
   markid = buildVimPlugin {
     pname = "markid";
     version = "2023-10-18";
@@ -5929,36 +6013,36 @@ final: prev:
 
   mason-lspconfig-nvim = buildVimPlugin {
     pname = "mason-lspconfig.nvim";
-    version = "2024-05-11";
+    version = "2024-06-12";
     src = fetchFromGitHub {
       owner = "williamboman";
       repo = "mason-lspconfig.nvim";
-      rev = "9ae570e206360e47d30b4c35a4550c165f4ea7b7";
-      sha256 = "147dhkrqz8fiwpafayk0ww685ncijjzxxd21nf93lagra9rx2l75";
+      rev = "37a336b653f8594df75c827ed589f1c91d91ff6c";
+      sha256 = "1xiv4km5m3y8znqq2a5f31fqw5aygcdr11lwpg0xrvf359z41g7i";
     };
     meta.homepage = "https://github.com/williamboman/mason-lspconfig.nvim/";
   };
 
   mason-tool-installer-nvim = buildVimPlugin {
     pname = "mason-tool-installer.nvim";
-    version = "2024-05-11";
+    version = "2024-06-03";
     src = fetchFromGitHub {
       owner = "WhoIsSethDaniel";
       repo = "mason-tool-installer.nvim";
-      rev = "c1fbdcb0d8d1295314f1612c4a247253e70299d9";
-      sha256 = "1pxfnflbklpi7y71h7yq4ac20nimxc1fqh4kpxl8hifqnqgbllrs";
+      rev = "c5e07b8ff54187716334d585db34282e46fa2932";
+      sha256 = "1zpf9v6abg482hbpi0mg0v2g67jvvnxd25aiclyh7bb24s8ljc0y";
     };
     meta.homepage = "https://github.com/WhoIsSethDaniel/mason-tool-installer.nvim/";
   };
 
   mason-nvim = buildVimPlugin {
     pname = "mason.nvim";
-    version = "2024-05-14";
+    version = "2024-06-01";
     src = fetchFromGitHub {
       owner = "williamboman";
       repo = "mason.nvim";
-      rev = "49ff59aded1047a773670651cfa40e76e63c6377";
-      sha256 = "1w9hzrnm0iiaha0c6qwbdjj94c5yq9837rjy7hzx2aaww37frbkm";
+      rev = "0950b15060067f752fde13a779a994f59516ce3d";
+      sha256 = "1g8wb8j0jn0pakskdcxif0n2gp92cl2qlrlfxphhvhixgy7kwzyg";
     };
     meta.homepage = "https://github.com/williamboman/mason.nvim/";
   };
@@ -5977,12 +6061,12 @@ final: prev:
 
   material-nvim = buildVimPlugin {
     pname = "material.nvim";
-    version = "2024-04-04";
+    version = "2024-06-15";
     src = fetchFromGitHub {
       owner = "marko-cerovac";
       repo = "material.nvim";
-      rev = "772e41a7f33743224f30799a3a887dc7dd853f8d";
-      sha256 = "0knb5d6z1hjzn3ib0nznv54rpyyk0ms6g2na59apmcwdqh1wyz6a";
+      rev = "173bde5eea25e73c5ece9448e19c3e30b5b21ae1";
+      sha256 = "0smlnk3d5dv33ww1k96f7mbyy6xs3ma179f86kifv08k1wn7n4xq";
     };
     meta.homepage = "https://github.com/marko-cerovac/material.nvim/";
   };
@@ -6025,12 +6109,12 @@ final: prev:
 
   melange-nvim = buildVimPlugin {
     pname = "melange-nvim";
-    version = "2024-03-30";
+    version = "2024-05-29";
     src = fetchFromGitHub {
       owner = "savq";
       repo = "melange-nvim";
-      rev = "5feb4a08876b81ccb61cae1adaffa2e737124922";
-      sha256 = "0y093aznqxkmbwprj0mgabxf2d6zy2nrr3s95mjr59c078b4lch5";
+      rev = "b76b906cd6ed3c3152a47924a8eb5dcb35b326d8";
+      sha256 = "0xy98wlbdljcf08wzl4hndwadmswb3a4jmf0ynnrrkczg73pbq2b";
     };
     meta.homepage = "https://github.com/savq/melange-nvim/";
   };
@@ -6073,12 +6157,12 @@ final: prev:
 
   mini-nvim = buildVimPlugin {
     pname = "mini.nvim";
-    version = "2024-05-12";
+    version = "2024-06-14";
     src = fetchFromGitHub {
       owner = "echasnovski";
       repo = "mini.nvim";
-      rev = "c333187fcc76d7e772dac32c2a440a949fe34be4";
-      sha256 = "1mdqavyq7aar03c1za5z4ca7zgpb2knyy8zz0xlcxjz67q093zcr";
+      rev = "ebc8cb0c1f73ee6c53e0560957a37a2307a70f98";
+      sha256 = "0jvrqs9fmn8m1h5wdnl981dpjyp4w9b5q09ypblg6dp1f817c0nf";
     };
     meta.homepage = "https://github.com/echasnovski/mini.nvim/";
   };
@@ -6109,12 +6193,12 @@ final: prev:
 
   mkdnflow-nvim = buildVimPlugin {
     pname = "mkdnflow.nvim";
-    version = "2024-04-25";
+    version = "2024-06-14";
     src = fetchFromGitHub {
       owner = "jakewvincent";
       repo = "mkdnflow.nvim";
-      rev = "4c8890890426d57f20fc6d459c7631e0bbb50975";
-      sha256 = "1vwqg20d83gcfjwmay6yz96n4qnjlampkw58i9r03s0k3kwyik28";
+      rev = "e6179d25f7e696baa612aa35b951b5ca3f3e75b6";
+      sha256 = "02mvgvdrq9p80gcgh668qajgc32pxhn5aahw0gkc40mc4f10lzlm";
     };
     meta.homepage = "https://github.com/jakewvincent/mkdnflow.nvim/";
   };
@@ -6133,24 +6217,24 @@ final: prev:
 
   modicator-nvim = buildVimPlugin {
     pname = "modicator.nvim";
-    version = "2024-03-05";
+    version = "2024-06-19";
     src = fetchFromGitHub {
       owner = "mawkler";
       repo = "modicator.nvim";
-      rev = "780ea1e98c9bee8f3816685213b0aac42b34cd75";
-      sha256 = "1db48c8yfpvlz5v17c7vxrsjz8n0x0fxjbb59w0bm88n85rd2pnv";
+      rev = "d1d327fd4bdfc3af4cfdf83b85c2eaefa71de7a8";
+      sha256 = "1w1rybbh6dhzc0qvw5mr0kv0qcpqxasdhwzghl5g1k9rq520q42y";
     };
     meta.homepage = "https://github.com/mawkler/modicator.nvim/";
   };
 
   modus-themes-nvim = buildVimPlugin {
     pname = "modus-themes.nvim";
-    version = "2024-05-14";
+    version = "2024-06-08";
     src = fetchFromGitHub {
       owner = "miikanissi";
       repo = "modus-themes.nvim";
-      rev = "bed70e9562d83852f40e4b5b0bd92b4fd9d4323c";
-      sha256 = "1jbwl34x6hn7y7smz4kww6y4as7qykcfd99y8jhp8af1b8c7rjzs";
+      rev = "181dc38ddbcf9ad94d454cb06b13c859d4ff28d1";
+      sha256 = "0q6r73irr5fk4z4garfx7h15bfxlacn2qynk0gg4jjrh6my0vdy8";
     };
     meta.homepage = "https://github.com/miikanissi/modus-themes.nvim/";
   };
@@ -6169,24 +6253,24 @@ final: prev:
 
   molten-nvim = buildVimPlugin {
     pname = "molten-nvim";
-    version = "2024-05-10";
+    version = "2024-06-01";
     src = fetchFromGitHub {
       owner = "benlubas";
       repo = "molten-nvim";
-      rev = "ab9351baff839c2ea4b0c1b5d1ad8d4968c7f1c1";
-      sha256 = "16764rcq4y520i6y002vk3gq2vlrr62mbw0wvpr0nnv7z6gqrbis";
+      rev = "47b9a56d4bc0f877ff9469910b9653c46d462db4";
+      sha256 = "09sarlw6zniph9kajvmfvxy3sjn5r7g02i4dncv9q3ybasjgqya7";
     };
     meta.homepage = "https://github.com/benlubas/molten-nvim/";
   };
 
   monokai-pro-nvim = buildVimPlugin {
     pname = "monokai-pro.nvim";
-    version = "2024-04-09";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "loctvl842";
       repo = "monokai-pro.nvim";
-      rev = "aafde73a622435891d36b411d8623e705ead6293";
-      sha256 = "14cdrkglg0swn5nfs23z0j7jpf5gjdm1cgz1arhi1afi8dx8cr6g";
+      rev = "2bad2a92fe0ff6c8581d33a853a1b17592b83239";
+      sha256 = "0kbr165ifkn3g131chmn6c4ishfsjikninndscpcp8dq0gv81d4h";
     };
     meta.homepage = "https://github.com/loctvl842/monokai-pro.nvim/";
   };
@@ -6205,12 +6289,12 @@ final: prev:
 
   mru = buildVimPlugin {
     pname = "mru";
-    version = "2023-05-27";
+    version = "2024-06-06";
     src = fetchFromGitHub {
       owner = "yegappan";
       repo = "mru";
-      rev = "a120bf35c55455ad3f82525a590a13d6c4e57fda";
-      sha256 = "0djk5z1bs3w3ysvpq8yabb2g7n0vbamsj95pa4jgsnah3slmqrkm";
+      rev = "b6718c95dad3699dd2ea49892359904cdda1a773";
+      sha256 = "0yr9vn573kwfy3jaykkapashn78p5fz7w8m5585j8lbqknxfs8zn";
     };
     meta.homepage = "https://github.com/yegappan/mru/";
   };
@@ -6481,12 +6565,12 @@ final: prev:
 
   neo-tree-nvim = buildVimPlugin {
     pname = "neo-tree.nvim";
-    version = "2024-05-15";
+    version = "2024-06-11";
     src = fetchFromGitHub {
       owner = "nvim-neo-tree";
       repo = "neo-tree.nvim";
-      rev = "6e20108c4a8128782f534f5fe90c757b44212ef6";
-      sha256 = "0awbglyhf9jqn7zpxbbmpb7ch85jc5l1lj6axi3amrz9866wdcfs";
+      rev = "206241e451c12f78969ff5ae53af45616ffc9b72";
+      sha256 = "17l55gbsls8s2hp7a3hrmqzsclq9ckgc76ii8kpc6an0910axlbq";
     };
     meta.homepage = "https://github.com/nvim-neo-tree/neo-tree.nvim/";
   };
@@ -6505,12 +6589,12 @@ final: prev:
 
   neoconf-nvim = buildVimPlugin {
     pname = "neoconf.nvim";
-    version = "2024-05-16";
+    version = "2024-06-19";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "neoconf.nvim";
-      rev = "f5717f0ff26189e6a7bc9c3ae705d9e6cff20a99";
-      sha256 = "099rhngmw5vqnh0jkgkbrnc5apvh06jqg3khrsap3m1s2snw5799";
+      rev = "60f6dd6aa1006fa5c3ff4b7bf01586dcecbe9187";
+      sha256 = "03hz05kpzrbwy2d9pdmi2yihg7svsh876fv3kk0276v9276hwi1s";
     };
     meta.homepage = "https://github.com/folke/neoconf.nvim/";
   };
@@ -6541,24 +6625,24 @@ final: prev:
 
   neodev-nvim = buildVimPlugin {
     pname = "neodev.nvim";
-    version = "2024-03-29";
+    version = "2024-06-04";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "neodev.nvim";
-      rev = "ce9a2e8eaba5649b553529c5498acb43a6c317cd";
-      sha256 = "1gkgiyz1q2jimbfwq1zjzq1zdv2zvvj02ka5raxi7zvvacqlw0lq";
+      rev = "02893eeb9d6e8503817bd52385e111cba9a90500";
+      sha256 = "0var4hv2wdbmh4fjrhiqm6mc89hv3sn5idwdjs7k7gwd1vdk4j5y";
     };
     meta.homepage = "https://github.com/folke/neodev.nvim/";
   };
 
   neoformat = buildVimPlugin {
     pname = "neoformat";
-    version = "2024-05-15";
+    version = "2024-05-30";
     src = fetchFromGitHub {
       owner = "sbdchd";
       repo = "neoformat";
-      rev = "34d4d89fea22645b16f69f818dcb7b6b682b0c1a";
-      sha256 = "0881raz42f4wsb1c10kwjx56biv4k9r6dxlnpiarwmpj6mag952l";
+      rev = "82864d6c7926c4f3b535a2fd7eab919b116fc969";
+      sha256 = "069bd2jh6z1yg14134s7rssnqhf5xii1knfzfn0jsd9riga5329h";
     };
     meta.homepage = "https://github.com/sbdchd/neoformat/";
   };
@@ -6577,12 +6661,12 @@ final: prev:
 
   neogit = buildVimPlugin {
     pname = "neogit";
-    version = "2024-05-16";
+    version = "2024-06-17";
     src = fetchFromGitHub {
       owner = "NeogitOrg";
       repo = "neogit";
-      rev = "9040f6face04f93e6903f25f038d67550fc9027b";
-      sha256 = "1sdkn3aapqd5kgbgm1gyam7fc46xzvq4f2ivayrdx9jln61pp8y5";
+      rev = "11dea1b67bb153cd5b4a2de348ceefa69508dfce";
+      sha256 = "07d8kmn19hngl06ak2ch7p0mfjwlgyim0xkjfmnsdhxd0ksqdn49";
     };
     meta.homepage = "https://github.com/NeogitOrg/neogit/";
   };
@@ -6637,48 +6721,48 @@ final: prev:
 
   neorepl-nvim = buildVimPlugin {
     pname = "neorepl.nvim";
-    version = "2024-04-21";
+    version = "2024-06-02";
     src = fetchFromGitHub {
       owner = "ii14";
       repo = "neorepl.nvim";
-      rev = "b927ffdbe67fb25ef9e8fd9324234e3d54cfb7f7";
-      sha256 = "1yd3kh5ddhldk8y4fc8gn55wh4a53g8c9x7x8313d98162383b2n";
+      rev = "15f4c4e523e1fbec74766e1967e1c2491df013c9";
+      sha256 = "01rzgvl80dzdw64swfvk755kbakcmxv5vdnwhw09dm87ph6ij49w";
     };
     meta.homepage = "https://github.com/ii14/neorepl.nvim/";
   };
 
   neorg = buildVimPlugin {
     pname = "neorg";
-    version = "2024-05-13";
+    version = "2024-06-13";
     src = fetchFromGitHub {
       owner = "nvim-neorg";
       repo = "neorg";
-      rev = "1dbaa207d4fe077bd0a11870990c24f2fff0be5d";
-      sha256 = "1dffb9kb3jr5ffjfx351d2lymr8dywm3vm3z74542p5swmi5nbcx";
+      rev = "ebf75f57fa8dadd8747a678724b273b398143dc4";
+      sha256 = "05zq8q88z14hd9y9ywp09kxjxpxfzb72yjm3gl7px8xxh18nqrds";
     };
     meta.homepage = "https://github.com/nvim-neorg/neorg/";
   };
 
   neorg-telescope = buildVimPlugin {
     pname = "neorg-telescope";
-    version = "2024-04-19";
+    version = "2024-06-19";
     src = fetchFromGitHub {
       owner = "nvim-neorg";
       repo = "neorg-telescope";
-      rev = "92c1c6064429c74505de8e5d84a6dc8488a6f8e3";
-      sha256 = "0varnp4wm1sp9mr8yglj2kb5wl8cdf4q9ymxf3szvbv2xw1bbnb2";
+      rev = "fe255a3432ce639de7a374ccfb8602f517244dcd";
+      sha256 = "0w86sh0pfff7qipjwgfqhsvm95j0hlv1srn9p2fphg1jsixfd5jm";
     };
     meta.homepage = "https://github.com/nvim-neorg/neorg-telescope/";
   };
 
   neoscroll-nvim = buildVimPlugin {
     pname = "neoscroll.nvim";
-    version = "2024-04-30";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "karb94";
       repo = "neoscroll.nvim";
-      rev = "e78657719485c5663b88e5d96ffcfb6a2fe3eec0";
-      sha256 = "19f7q9d0gx1g08c4cyd66c4ldznzgrzi632kv7z0cbk58hisac3d";
+      rev = "a731f66f1d39ec6175fd201c5bf849e54abda99c";
+      sha256 = "1f9f5gqn1kbrhwfblqcsjacm7y17qai931xmrlny7hqlv1c6a26i";
     };
     meta.homepage = "https://github.com/karb94/neoscroll.nvim/";
   };
@@ -6721,12 +6805,12 @@ final: prev:
 
   neotest = buildNeovimPlugin {
     pname = "neotest";
-    version = "2024-04-28";
+    version = "2024-06-09";
     src = fetchFromGitHub {
       owner = "nvim-neotest";
       repo = "neotest";
-      rev = "5caac5cc235d495a2382bc2980630ef36ac87032";
-      sha256 = "1i1d6m17wf3p76nm75jk4ayd4zyhslmqi2pc7j8qx87391mnz2c4";
+      rev = "f30bab1faef13d47f3905e065215c96a42d075ad";
+      sha256 = "04jsfxq9xs751wspqbi850bwykyzf0d4fw4ar5gqwij34zja19h7";
     };
     meta.homepage = "https://github.com/nvim-neotest/neotest/";
   };
@@ -6770,12 +6854,12 @@ final: prev:
 
   neotest-dotnet = buildVimPlugin {
     pname = "neotest-dotnet";
-    version = "2024-04-13";
+    version = "2024-06-01";
     src = fetchFromGitHub {
       owner = "Issafalcon";
       repo = "neotest-dotnet";
-      rev = "3844d16706d7655f4c84387bdb68eb8fb0155ef2";
-      sha256 = "0dh66m1yyzzsrcxrhaydqm7ymqspggnd345c8mfjprp7312x3yc5";
+      rev = "caeb52b602fa8a5855c5839c338fb65b50a40ab3";
+      sha256 = "1w73kzljwkxdanvdqig96jmkfd2v2hjwbqn2h095dkwf71pygnbb";
     };
     meta.homepage = "https://github.com/Issafalcon/neotest-dotnet/";
   };
@@ -6807,12 +6891,12 @@ final: prev:
 
   neotest-go = buildVimPlugin {
     pname = "neotest-go";
-    version = "2024-05-07";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "nvim-neotest";
       repo = "neotest-go";
-      rev = "27c80deab9cf5cb30b20ee407b3a6c7285518128";
-      sha256 = "11d8x7kqb4bxjwc4wdhxv5672i6svyj3k52p44711vlbcfal44j5";
+      rev = "92950ad7be2ca02a41abca5c6600ff6ffaf5b5d6";
+      sha256 = "0wmxiv06zjjsr2fzp20p8lynn8wxqlx86r6zycan8v6kgs2vljh4";
     };
     meta.homepage = "https://github.com/nvim-neotest/neotest-go/";
   };
@@ -6831,12 +6915,12 @@ final: prev:
 
   neotest-gtest = buildVimPlugin {
     pname = "neotest-gtest";
-    version = "2024-05-13";
+    version = "2024-06-12";
     src = fetchFromGitHub {
       owner = "alfaix";
       repo = "neotest-gtest";
-      rev = "20c24948d52b63aee948bf8db2c82da90f580330";
-      sha256 = "1zrj3lcx8wai3nihrw59b8b03x9nw7725nafz3ls0923j6d6j6ys";
+      rev = "b44c8afc26cea75ffc80617ce07b4e745a56e589";
+      sha256 = "09h94w4s1yp3qx0n342qkksixgilkfmqiqp65jayfxiwa3jpkgya";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/alfaix/neotest-gtest/";
@@ -6844,24 +6928,24 @@ final: prev:
 
   neotest-haskell = buildVimPlugin {
     pname = "neotest-haskell";
-    version = "2024-05-13";
+    version = "2024-06-16";
     src = fetchFromGitHub {
       owner = "MrcJkb";
       repo = "neotest-haskell";
-      rev = "febce450a3faf6f0fa012a43afe8b3086bd2eee6";
-      sha256 = "0dbz3wn7qdnpjlshkwq4x6wyzpj6p764hhjrrg0hamanhq1lqn8g";
+      rev = "0481d2c79564d6658caa1a4962bdfba3a608b5d1";
+      sha256 = "142j5s3fcyggkrx92w8k6d3vas2m7580k9vd6ca913adby5ys2cn";
     };
     meta.homepage = "https://github.com/MrcJkb/neotest-haskell/";
   };
 
   neotest-java = buildVimPlugin {
     pname = "neotest-java";
-    version = "2024-05-08";
+    version = "2024-06-15";
     src = fetchFromGitHub {
       owner = "rcasia";
       repo = "neotest-java";
-      rev = "d0058e2f389cdcd7b0682aea76300a2fc1b9f0b7";
-      sha256 = "05q5flyls4pgk8rzvjdqw0igw45wz23ny61kyjh0ag2b3zky1y34";
+      rev = "7b9e0419bd92f641f730e31a4236074e53a5ac99";
+      sha256 = "1f9a0aa4q6c4armj9fjmbkpk2j2svgiyf1mlmq46g0mqcmhnnbbh";
     };
     meta.homepage = "https://github.com/rcasia/neotest-java/";
   };
@@ -6916,12 +7000,12 @@ final: prev:
 
   neotest-playwright = buildVimPlugin {
     pname = "neotest-playwright";
-    version = "2024-02-23";
+    version = "2024-06-18";
     src = fetchFromGitHub {
       owner = "thenbe";
       repo = "neotest-playwright";
-      rev = "39968792371cb48d395dc54c0498b7373ef73986";
-      sha256 = "0vvw5rv36iyfz3gk9rngvz3jdahyhzjvv5gics0qr88mww923m5q";
+      rev = "f61463f5c74d53fc5975b7e086b7c6e9356d9215";
+      sha256 = "18d9qqxqrgng373xlkiinxcp9s13zj40sjxsibhdccji75pr3ziy";
     };
     meta.homepage = "https://github.com/thenbe/neotest-playwright/";
   };
@@ -7012,24 +7096,24 @@ final: prev:
 
   neotest-zig = buildVimPlugin {
     pname = "neotest-zig";
-    version = "2024-05-06";
+    version = "2024-06-17";
     src = fetchFromGitHub {
       owner = "lawrence-laz";
       repo = "neotest-zig";
-      rev = "3b94c749e26e2c02e5f07aaea6149a7e417db1e7";
-      sha256 = "0irklycyjqjwns5w9jb92x3r012gkhrsjinggxvbwhlj2bkhq6b0";
+      rev = "7cc48ba642a6acb96f377054cc4439c6a135fb5d";
+      sha256 = "0dlc2zd5qwak5gwv1pv1arbpj56scnaz4n1my50i97rvj4yf3vmh";
     };
     meta.homepage = "https://github.com/lawrence-laz/neotest-zig/";
   };
 
   neovim-ayu = buildVimPlugin {
     pname = "neovim-ayu";
-    version = "2024-04-05";
+    version = "2024-06-08";
     src = fetchFromGitHub {
       owner = "Shatur";
       repo = "neovim-ayu";
-      rev = "e03beacbc51f1a985d7a4b69828fd7612a4151e0";
-      sha256 = "1yf3j0lqcsng1ksq5wb1l8pcw6r9f6apzn6y2w5j431sm2by5jw4";
+      rev = "123dda90019215646700bfec70f178ad95820545";
+      sha256 = "0g0nyasr7df7wsbfkcvkpwxyhsl93iq35q46fick8iq3mdf0mjl4";
     };
     meta.homepage = "https://github.com/Shatur/neovim-ayu/";
   };
@@ -7144,12 +7228,12 @@ final: prev:
 
   nfnl = buildVimPlugin {
     pname = "nfnl";
-    version = "2024-03-31";
+    version = "2024-05-30";
     src = fetchFromGitHub {
       owner = "Olical";
       repo = "nfnl";
-      rev = "d6b33ae7376dda6f26cca8365d9beaf66f43c410";
-      sha256 = "1m6zdzkaynja934bzdqhw78zc58j70c00l6c8yh04iaxn41vi155";
+      rev = "7614d666eaea1674dc96184e0e3c1a8bc2c4a3b2";
+      sha256 = "1wz7fwcycz6xwwnw0nqsgkxz4dgmabz8rr6574yvbvyjg3blr7s0";
     };
     meta.homepage = "https://github.com/Olical/nfnl/";
   };
@@ -7168,12 +7252,12 @@ final: prev:
 
   night-owl-nvim = buildVimPlugin {
     pname = "night-owl.nvim";
-    version = "2024-05-02";
+    version = "2024-05-28";
     src = fetchFromGitHub {
       owner = "oxfist";
       repo = "night-owl.nvim";
-      rev = "42b85926978c8cba6ed4a57c84a530449e59904b";
-      sha256 = "03fzkrs4qigrbc0rmj6zgfniyng6779hr0811x7i3r747b8p7ksz";
+      rev = "9e95ff4bb6fa0e7dfd40472b9dde19fd0b75aa0e";
+      sha256 = "1bps5cp7ahnhw7z6yrpv9fyxj7jlgxmzfjk949lrw3ryz6kgzry8";
     };
     meta.homepage = "https://github.com/oxfist/night-owl.nvim/";
   };
@@ -7228,12 +7312,12 @@ final: prev:
 
   nlsp-settings-nvim = buildVimPlugin {
     pname = "nlsp-settings.nvim";
-    version = "2024-05-16";
+    version = "2024-06-19";
     src = fetchFromGitHub {
       owner = "tamago324";
       repo = "nlsp-settings.nvim";
-      rev = "103e764d3e733b89375cb7f877a5b70b0e0e125f";
-      sha256 = "10pw7c8fhqljdi65xpn19iwxfsbd4gfd0nxzyqjxa4xl3w9dyywk";
+      rev = "4c068cf7a74d77cc405aedda875f3174f7eb9143";
+      sha256 = "1q5wrryf5xp13lljjgm95aavn4s2cq0p52pbxcxykm97vm1zi9n7";
     };
     meta.homepage = "https://github.com/tamago324/nlsp-settings.nvim/";
   };
@@ -7252,24 +7336,24 @@ final: prev:
 
   no-clown-fiesta-nvim = buildVimPlugin {
     pname = "no-clown-fiesta.nvim";
-    version = "2024-03-14";
+    version = "2024-05-30";
     src = fetchFromGitHub {
       owner = "aktersnurra";
       repo = "no-clown-fiesta.nvim";
-      rev = "0cf858e14aa98218c4aec92011bded80e935549b";
-      sha256 = "0vfii1m25c64846yy3kj9yabiqyhf64msd7p5rlqwfqc4l2y67hh";
+      rev = "caf86fbc3cf390cac8c5fba599f1500f49f622d7";
+      sha256 = "0kgcrsinb1lsla9y6yf4svnbay2s75zc5yhil2j149n64ff08gqa";
     };
     meta.homepage = "https://github.com/aktersnurra/no-clown-fiesta.nvim/";
   };
 
   no-neck-pain-nvim = buildVimPlugin {
     pname = "no-neck-pain.nvim";
-    version = "2024-05-15";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "shortcuts";
       repo = "no-neck-pain.nvim";
-      rev = "7c38c67fec5a29d9f4e9a59546a67dd2a26b5ff1";
-      sha256 = "0w365j4a480w0sw22h8aa5i6lisnmj2q33q0gdfbg3hx9swskmrr";
+      rev = "741ad26c4acc45f2164a3933f7825b0e555b724d";
+      sha256 = "04yfraal84zin7gvhfrx9v5359m3s3gvrxydw7xp5rz2rvsraqn3";
     };
     meta.homepage = "https://github.com/shortcuts/no-neck-pain.nvim/";
   };
@@ -7288,24 +7372,24 @@ final: prev:
 
   noice-nvim = buildVimPlugin {
     pname = "noice.nvim";
-    version = "2024-05-16";
+    version = "2024-06-18";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "noice.nvim";
-      rev = "2c49d4a7fdeaca930bb08a8239bdf5bccc26507b";
-      sha256 = "0slxiq7s1b0iars3p59bp2krk2zf2wr95qz9paa1jdkc6i7azzmf";
+      rev = "88ac36864b5976a64b14a8f156c616f41b32f228";
+      sha256 = "0qkm5g6mfaydgbsgkkng79j3zm0nfbnim30ibjpgby74fjpmzp09";
     };
     meta.homepage = "https://github.com/folke/noice.nvim/";
   };
 
   none-ls-nvim = buildVimPlugin {
     pname = "none-ls.nvim";
-    version = "2024-05-14";
+    version = "2024-06-14";
     src = fetchFromGitHub {
       owner = "nvimtools";
       repo = "none-ls.nvim";
-      rev = "10c976d633862b9fe16171f5f5f17732bc54e19f";
-      sha256 = "1xvvfqbxl1v4yls156wwx36qzjdipxs0whqzgsps27984fpvwpci";
+      rev = "cc0a3c45047e3daf85d07c1571d65476cfce6480";
+      sha256 = "1aa2dcrrwmbh8dh8vccwz2jdwyfsy10jagvqbpmh7ax1mnmphnqv";
     };
     meta.homepage = "https://github.com/nvimtools/none-ls.nvim/";
   };
@@ -7324,12 +7408,12 @@ final: prev:
 
   nordic-nvim = buildVimPlugin {
     pname = "nordic.nvim";
-    version = "2024-03-15";
+    version = "2024-06-16";
     src = fetchFromGitHub {
       owner = "andersevenrud";
       repo = "nordic.nvim";
-      rev = "9697dc86e888f603cdb7e3a0742b7814b8a01cd1";
-      sha256 = "1rf4z8rvdh4iv4ifq3z1hic2ldcpkja82834w5nhig3x2rn5hw7m";
+      rev = "c88388b2a5f6e621df2718c316b856d4971bb89d";
+      sha256 = "0js2dmiaa5jwym2c3xwzcwprbnyk7rp61wn7hzl3gkgn239sv6ca";
     };
     meta.homepage = "https://github.com/andersevenrud/nordic.nvim/";
   };
@@ -7360,12 +7444,12 @@ final: prev:
 
   nui-nvim = buildNeovimPlugin {
     pname = "nui.nvim";
-    version = "2024-05-06";
+    version = "2024-06-05";
     src = fetchFromGitHub {
       owner = "MunifTanjim";
       repo = "nui.nvim";
-      rev = "a3597dc88b53489d3fddbddbbd13787355253bb0";
-      sha256 = "1sg0b1vq6cggxw9vif7slp2362rw5xz2a0snhhmzz1frd2ckr72v";
+      rev = "322978c734866996274467de084a95e4f9b5e0b1";
+      sha256 = "1l1gzpza26pybg6fcjif5ypqmxl490wv82my13bwkc1v83a5x4xm";
     };
     meta.homepage = "https://github.com/MunifTanjim/nui.nvim/";
   };
@@ -7396,12 +7480,12 @@ final: prev:
 
   nvchad = buildVimPlugin {
     pname = "nvchad";
-    version = "2024-05-03";
+    version = "2024-06-06";
     src = fetchFromGitHub {
       owner = "nvchad";
       repo = "nvchad";
-      rev = "156eeef8ecae812acd79d5eb58070d734a6202c6";
-      sha256 = "1jpsiqkgml1x81vc0x2d94k3a3xwbmp7s5wnh9rfdnrrwc6zv5pq";
+      rev = "164e8cc7fcb9006a1edd4ddfc98bf8c7f4fe2e0d";
+      sha256 = "1qk0m5z5jqv875q96mavmbnpd8570d9xzr928izj807660r3b0p3";
     };
     meta.homepage = "https://github.com/nvchad/nvchad/";
   };
@@ -7444,12 +7528,12 @@ final: prev:
 
   nvim-autopairs = buildVimPlugin {
     pname = "nvim-autopairs";
-    version = "2024-05-16";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "windwp";
       repo = "nvim-autopairs";
-      rev = "b0b79e42a28f09719a7da9534c3731fa37319d9b";
-      sha256 = "0xaaazahwc4f5d1vb8g0y4gz70wqc65gihf7512r8llw3c5diix9";
+      rev = "c15de7e7981f1111642e7e53799e1211d4606cb9";
+      sha256 = "0nd175qdh4fr0qjvdj7fa89lxhzdrf6ilc5r5vajzbfmbj72lh30";
     };
     meta.homepage = "https://github.com/windwp/nvim-autopairs/";
   };
@@ -7480,12 +7564,12 @@ final: prev:
 
   nvim-bqf = buildVimPlugin {
     pname = "nvim-bqf";
-    version = "2024-05-07";
+    version = "2024-06-04";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-bqf";
-      rev = "7751b6ef9fbc3907478eaf23e866c4316a2ed1b4";
-      sha256 = "088s8n9xwkpcc5jyqa8hmrghbazzcqq44hxrlxp9zclqxpp29z16";
+      rev = "1b24dc6050c34e8cd377b6b4cd6abe40509e0187";
+      sha256 = "0y7hmx2am89lphx9bnszrbxm2s7y12vv3ksnr6i03nvhbx1xzgwk";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-bqf/";
   };
@@ -7516,12 +7600,12 @@ final: prev:
 
   nvim-cmp = buildNeovimPlugin {
     pname = "nvim-cmp";
-    version = "2024-05-12";
+    version = "2024-06-08";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "nvim-cmp";
-      rev = "24122371810089d390847d8ba66325c1f1aa64c0";
-      sha256 = "0s4va3b06agy070fkqghx460q20jddvni14gbvjdvgkaf56xn8f3";
+      rev = "a110e12d0b58eefcf5b771f533fc2cf3050680ac";
+      sha256 = "0qn7yz2nqp1k5p337nys0d2sr34ybs52s8sx4gg9krl76l91zlgf";
     };
     meta.homepage = "https://github.com/hrsh7th/nvim-cmp/";
   };
@@ -7540,12 +7624,12 @@ final: prev:
 
   nvim-cokeline = buildVimPlugin {
     pname = "nvim-cokeline";
-    version = "2024-03-20";
+    version = "2024-05-18";
     src = fetchFromGitHub {
       owner = "willothy";
       repo = "nvim-cokeline";
-      rev = "32929480b1753a5c2a99435e891da9be1e61e0b9";
-      sha256 = "0p3gliqn62fzfjkx25ny2yf4514x4a4nli2qgh5ccz4di9nfw5vf";
+      rev = "8145048ae68e05f31979c13b0adf7aa99f04f4c0";
+      sha256 = "1wjsgqinfrhcgcpb6vgp03h9dsc2xwpdvfbmsrgdz5b1mvwy2x8m";
     };
     meta.homepage = "https://github.com/willothy/nvim-cokeline/";
   };
@@ -7636,60 +7720,60 @@ final: prev:
 
   nvim-dap = buildVimPlugin {
     pname = "nvim-dap";
-    version = "2024-05-16";
+    version = "2024-06-03";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-dap";
-      rev = "5a2f7121869394502521c52b2bc581ab22c69447";
-      sha256 = "17z6p952a5f027cpvrc0yi65784nc832hjdyv25igf3x1l6bd6ai";
+      rev = "6f79b822997f2e8a789c6034e147d42bc6706770";
+      sha256 = "009aal7bljwrryb74c02jgmfzvhg7v2hcr5xy19r000whnjgh89i";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-dap/";
   };
 
   nvim-dap-go = buildVimPlugin {
     pname = "nvim-dap-go";
-    version = "2024-05-02";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "leoluz";
       repo = "nvim-dap-go";
-      rev = "5faf165f5062187320eaf9d177c3c1f647adc22e";
-      sha256 = "1ml1ln2psdb14bgrpa2zpalgqhimj0qzd28cnkzhhsdg49a19hyk";
+      rev = "a0c5a2b991d7e9304a9a032cf177e22a4b0acda1";
+      sha256 = "1msz8fiwsvjdda870k2y85plb4wg7xs3fh5w7hg8iwgmx6ykxh07";
     };
     meta.homepage = "https://github.com/leoluz/nvim-dap-go/";
   };
 
   nvim-dap-python = buildVimPlugin {
     pname = "nvim-dap-python";
-    version = "2024-04-10";
+    version = "2024-06-03";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-dap-python";
-      rev = "3dffa58541d1f52c121fe58ced046268c838d802";
-      sha256 = "0kjcv8wvh7hwr9wy2najyrxz88fa4s7djz2lnmz2gfrmqhihibjl";
+      rev = "ae0225d0d4a46e18e6057ab3701ef87bbbd6aaad";
+      sha256 = "1g0gn0rpdmypjay0dwd9iw64qvm63g78ig839ys4z2mnwqx6vsx2";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-dap-python/";
   };
 
   nvim-dap-ui = buildVimPlugin {
     pname = "nvim-dap-ui";
-    version = "2024-04-28";
+    version = "2024-05-28";
     src = fetchFromGitHub {
       owner = "rcarriga";
       repo = "nvim-dap-ui";
-      rev = "5934302d63d1ede12c0b22b6f23518bb183fc972";
-      sha256 = "0qzbny9dlra0dyfhg4ljywrsnrq373xa9mzawj8nck3kbiv3ia6v";
+      rev = "b7267003ba4dd860350be86f75b9d9ea287cedca";
+      sha256 = "0sz6p8n58gw1mbvk6y6pjfz1pdp979msxy2za0b492wwxwqbhqln";
     };
     meta.homepage = "https://github.com/rcarriga/nvim-dap-ui/";
   };
 
   nvim-dap-virtual-text = buildVimPlugin {
     pname = "nvim-dap-virtual-text";
-    version = "2024-04-05";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "theHamsta";
       repo = "nvim-dap-virtual-text";
-      rev = "3e8e207513e6ef520894950acd76b79902714103";
-      sha256 = "1jsb5l4vda1qgsf8qpnz18gniw1fliia5hgap0l7xl40syvcczzm";
+      rev = "d7c695ea39542f6da94ee4d66176f5d660ab0a77";
+      sha256 = "1hqnwq2hy7qn62qxp204c9mx6japjhd6q8sfac0kfvzgw49v3khi";
     };
     meta.homepage = "https://github.com/theHamsta/nvim-dap-virtual-text/";
   };
@@ -7766,6 +7850,18 @@ final: prev:
     meta.homepage = "https://github.com/sakhnik/nvim-gdb/";
   };
 
+  nvim-genghis = buildVimPlugin {
+    pname = "nvim-genghis";
+    version = "2024-06-19";
+    src = fetchFromGitHub {
+      owner = "chrisgrieser";
+      repo = "nvim-genghis";
+      rev = "6077a6376f9a15eaf3d60a12caca57adb59028b5";
+      sha256 = "1lm9mjjqwgf4cqgh4xkq9kfbx9bjz6p68dfimixm3rlsvrxz2wai";
+    };
+    meta.homepage = "https://github.com/chrisgrieser/nvim-genghis/";
+  };
+
   nvim-gps = buildVimPlugin {
     pname = "nvim-gps";
     version = "2022-07-05";
@@ -7780,36 +7876,36 @@ final: prev:
 
   nvim-highlight-colors = buildVimPlugin {
     pname = "nvim-highlight-colors";
-    version = "2024-04-19";
+    version = "2024-06-05";
     src = fetchFromGitHub {
       owner = "brenoprata10";
       repo = "nvim-highlight-colors";
-      rev = "432dc7a817a4973041f02b418169667c491f60fd";
-      sha256 = "1x2791sbifpwk3rzakggja7gr7s4icainaqyhg2x587vw26739cc";
+      rev = "30f305d57d658615cd827146f5e56db8b6833475";
+      sha256 = "0znm5am5xpz1i88fz0q6pjnvm5d41rban8wxkrxm5cyjxx1nrb3m";
     };
     meta.homepage = "https://github.com/brenoprata10/nvim-highlight-colors/";
   };
 
   nvim-highlite = buildVimPlugin {
     pname = "nvim-highlite";
-    version = "2024-04-30";
+    version = "2024-06-07";
     src = fetchFromGitHub {
       owner = "Iron-E";
       repo = "nvim-highlite";
-      rev = "2d35a04be004e11a1e90a9de98fd2e51847f8f53";
-      sha256 = "0szzbmwvhxzy818mv1cnw0ivaalshkifp40yzxgmlr0jkfby3g42";
+      rev = "c6982939cdd0046a89d0849383476b69569d5462";
+      sha256 = "1km15lghjs7v9b5dx9dnzqml4ay7w6s6dmidzk957i7n2j8wn1vw";
     };
     meta.homepage = "https://github.com/Iron-E/nvim-highlite/";
   };
 
   nvim-hlslens = buildVimPlugin {
     pname = "nvim-hlslens";
-    version = "2024-04-05";
+    version = "2024-06-14";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-hlslens";
-      rev = "3e8fceb2b030100857ee72741a8f48c9a1d8595e";
-      sha256 = "0j6i7rv78xxkmqgmi4w7yqhj4rng7p2skbgs8gq8jcb3k6ghcs3q";
+      rev = "1db56afda3e85791a14b096e483dfda699dd9163";
+      sha256 = "13mx0p3ia7wajvjk1gvyhnv2v5z900bjr4c82b1wbdpmv68z69yv";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-hlslens/";
   };
@@ -7828,24 +7924,24 @@ final: prev:
 
   nvim-jdtls = buildVimPlugin {
     pname = "nvim-jdtls";
-    version = "2024-05-16";
+    version = "2024-06-06";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-jdtls";
-      rev = "29255ea26dfb51ef0213f7572bff410f1afb002d";
-      sha256 = "1h3hdl99mb5r8mslcp7s78abyrrjjhmkndbif8c5iah7wmfnyq2c";
+      rev = "40e8494e04c1bcd5dd6c0d0bc187d2d10965017d";
+      sha256 = "1abrx6a3d2yd6dlykhbjwfvqw18w126qkr4y4va9xv26k78p17gw";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-jdtls/";
   };
 
   nvim-jqx = buildVimPlugin {
     pname = "nvim-jqx";
-    version = "2023-02-28";
+    version = "2024-05-31";
     src = fetchFromGitHub {
       owner = "gennaro-tedesco";
       repo = "nvim-jqx";
-      rev = "11b1d0368e5b23b9c356da8e5f70bb5827f27f62";
-      sha256 = "1sv9p5kn0v7m2r8zq6j43hvg2bavai3qhymxh7mc4bw9jfa621md";
+      rev = "07393e80fa8097e82f9038fec05e948fe8a60fd1";
+      sha256 = "0s2z4nd5anh5r3z4iv9fa4m5vnkbdl6aj7rw5ssn3cm52kplw3fq";
     };
     meta.homepage = "https://github.com/gennaro-tedesco/nvim-jqx/";
   };
@@ -7899,24 +7995,24 @@ final: prev:
 
   nvim-lilypond-suite = buildVimPlugin {
     pname = "nvim-lilypond-suite";
-    version = "2024-01-18";
+    version = "2024-06-07";
     src = fetchFromGitHub {
       owner = "martineausimon";
       repo = "nvim-lilypond-suite";
-      rev = "2f2c420de6a466adfa1a13c1488262b43fcabb2c";
-      sha256 = "1gx0x8m7nm72f0vgg59qfn59prj1f9jcykdyhxgwcrzfhzqq9qfr";
+      rev = "939bbb26be3e52c41364c04b31bcab4552cb7b92";
+      sha256 = "00yaam9mg9fc9wkvzf0mq6yrkl3mpm1s0z042xi67m05gk78lsxi";
     };
     meta.homepage = "https://github.com/martineausimon/nvim-lilypond-suite/";
   };
 
   nvim-lint = buildVimPlugin {
     pname = "nvim-lint";
-    version = "2024-05-16";
+    version = "2024-06-07";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-lint";
-      rev = "1f98d6c863f91706369d74aeb2eb3f02b2e96861";
-      sha256 = "1g5zryga6pjg5hm5475qszl3rd8s5iahds8qc2rjvqjkrh20h05h";
+      rev = "941fa1220a61797a51f3af9ec6b7d74c8c7367ce";
+      sha256 = "152j681hplib3vyizx1lcnkr3d411a4gi743716h759x0g20bmic";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-lint/";
   };
@@ -7947,12 +8043,12 @@ final: prev:
 
   nvim-lspconfig = buildVimPlugin {
     pname = "nvim-lspconfig";
-    version = "2024-05-16";
+    version = "2024-06-18";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "nvim-lspconfig";
-      rev = "cee94b22adc96582d9136f85fb3b076feda8825c";
-      sha256 = "1gz5vwb0hdqaxi2xh9dl87rf1yc10xinh3w83vd02cr9h88n5qv0";
+      rev = "5c33bf1f708ac8cb839469e1a03d45987fec305c";
+      sha256 = "1mdqckjmk1hdxgipa2qwncwmbv6ad8mi5cqisinkz7610k55sxpm";
     };
     meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
   };
@@ -7995,24 +8091,24 @@ final: prev:
 
   nvim-luapad = buildVimPlugin {
     pname = "nvim-luapad";
-    version = "2022-12-11";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "rafcamlet";
       repo = "nvim-luapad";
-      rev = "a5b3d6aa1fe5fe75e6124927392a9d3a60a0ecce";
-      sha256 = "05b2wnw9p5wpcc85fh40ddw90ls4k0mcmpa5rcadhy5c4xaf3q2h";
+      rev = "176686eb616a5ada5dfc748f2b5109194bbe8a71";
+      sha256 = "1rqyzf6nfcs8kdyjgm3rw76ns4sqrhl5lhfyx2h7rj9j8pncchh7";
     };
     meta.homepage = "https://github.com/rafcamlet/nvim-luapad/";
   };
 
   nvim-metals = buildVimPlugin {
     pname = "nvim-metals";
-    version = "2024-05-02";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "scalameta";
       repo = "nvim-metals";
-      rev = "c6268555d0b471262af78818f11a086ddf30688b";
-      sha256 = "1bzq2ybqhpsi0f7z14d2kvgn84xfj7zv7n2jpgk1ki0jsdw396xg";
+      rev = "1b87e6bfa4174b5fbaee9ca7ec79d8eae8df7f18";
+      sha256 = "13yi6wby4ybdh536ghjsvp2svzszzc08wi2lxx9rsqcm22aah0sm";
     };
     meta.homepage = "https://github.com/scalameta/nvim-metals/";
   };
@@ -8031,12 +8127,12 @@ final: prev:
 
   nvim-navbuddy = buildVimPlugin {
     pname = "nvim-navbuddy";
-    version = "2024-03-24";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "SmiteshP";
       repo = "nvim-navbuddy";
-      rev = "f34237e8a41ebc6e2716af2ebf49854d8c5289c8";
-      sha256 = "12cm863ny6i9raqmxr7mql1wglxnm3rvmfa8v4dpjr5c64bg758i";
+      rev = "f22bac988f2dd073601d75ba39ea5636ab6e38cb";
+      sha256 = "034pmg403y0y1fxnb1jv291mr016bx1vn68y543v6v4dpbdlr7di";
     };
     meta.homepage = "https://github.com/SmiteshP/nvim-navbuddy/";
   };
@@ -8055,24 +8151,24 @@ final: prev:
 
   nvim-neoclip-lua = buildVimPlugin {
     pname = "nvim-neoclip.lua";
-    version = "2023-12-04";
+    version = "2024-06-01";
     src = fetchFromGitHub {
       owner = "AckslD";
       repo = "nvim-neoclip.lua";
-      rev = "798cd0592a81c185465db3a091a0ff8a21af60fd";
-      sha256 = "16dyzbqpc6427sgcrbd5fb3z0bnhdydhsdsa90i346y3v8lqpnj2";
+      rev = "709c97fabec9da7d04f7d2f5e207423af8c02871";
+      sha256 = "0sh5a680jr9390hdn7h6j72h2148089is506qk4khxrqag2yd4zi";
     };
     meta.homepage = "https://github.com/AckslD/nvim-neoclip.lua/";
   };
 
   nvim-nio = buildNeovimPlugin {
     pname = "nvim-nio";
-    version = "2024-05-02";
+    version = "2024-06-09";
     src = fetchFromGitHub {
       owner = "nvim-neotest";
       repo = "nvim-nio";
-      rev = "8765cbc4d0c629c8158a5341e1b4305fd93c3a90";
-      sha256 = "0drzp2fyancyz57k8nkwc1bd7bksy1f8bpy92njiccpdflwhkyjm";
+      rev = "7969e0a8ffabdf210edd7978ec954a47a737bbcc";
+      sha256 = "0ip31k5rnmv47rbka1v5mhljmff7friyj4gcqzz4hqj1yccfl1l0";
     };
     meta.homepage = "https://github.com/nvim-neotest/nvim-nio/";
   };
@@ -8091,12 +8187,12 @@ final: prev:
 
   nvim-notify = buildVimPlugin {
     pname = "nvim-notify";
-    version = "2024-02-17";
+    version = "2024-05-17";
     src = fetchFromGitHub {
       owner = "rcarriga";
       repo = "nvim-notify";
-      rev = "5371f4bfc1f6d3adf4fe9d62cd3a9d44356bfd15";
-      sha256 = "1daf6qhm9p0smcqi8w6vr8agnvyv9ra3z7f0ijlcab8qgqwhz5n4";
+      rev = "d333b6f167900f6d9d42a59005d82919830626bf";
+      sha256 = "0000a56y6xp2hzb5pf0in9336s9r29w590kxqdxdl5gfpz08f763";
     };
     meta.homepage = "https://github.com/rcarriga/nvim-notify/";
   };
@@ -8115,16 +8211,40 @@ final: prev:
 
   nvim-osc52 = buildVimPlugin {
     pname = "nvim-osc52";
-    version = "2024-05-13";
+    version = "2024-05-24";
     src = fetchFromGitHub {
       owner = "ojroques";
       repo = "nvim-osc52";
-      rev = "42361eee0d4f23937d9abb9864eaedeeaaed5bf7";
-      sha256 = "01ibiyrsc7d58vf6w2cdhcf3vfkfyqcws3w6sdqy9rwlmvamb14k";
+      rev = "04cfaba1865ae5c53b6f887c3ca7304973824fb2";
+      sha256 = "0rfn4lxbk3pwlnsa7ldcg3qh4zcapci9fr20gp56c6zcdjwayn3i";
     };
     meta.homepage = "https://github.com/ojroques/nvim-osc52/";
   };
 
+  nvim-paredit = buildVimPlugin {
+    pname = "nvim-paredit";
+    version = "2024-03-30";
+    src = fetchFromGitHub {
+      owner = "julienvincent";
+      repo = "nvim-paredit";
+      rev = "8dd4ffd6ee0d798026f9ad6cf04344560207b9f1";
+      sha256 = "0kqd87m58ya9faijs2ldzirps5ayillfmcdgd19b342jw0q393k6";
+    };
+    meta.homepage = "https://github.com/julienvincent/nvim-paredit/";
+  };
+
+  nvim-parinfer = buildVimPlugin {
+    pname = "nvim-parinfer";
+    version = "2023-08-09";
+    src = fetchFromGitHub {
+      owner = "gpanders";
+      repo = "nvim-parinfer";
+      rev = "5ca09287ab3f4144f78ff7977fabc27466f71044";
+      sha256 = "0qci774sf7kxsq1a77nmis4zgjggf89w0j5ibzdbrw11cyv0nb3n";
+    };
+    meta.homepage = "https://github.com/gpanders/nvim-parinfer/";
+  };
+
   nvim-peekup = buildVimPlugin {
     pname = "nvim-peekup";
     version = "2023-02-23";
@@ -8139,12 +8259,12 @@ final: prev:
 
   nvim-pqf = buildVimPlugin {
     pname = "nvim-pqf";
-    version = "2024-05-13";
+    version = "2024-05-20";
     src = fetchFromGitHub {
       owner = "yorickpeterse";
       repo = "nvim-pqf";
-      rev = "8de182d1b2b677ad6ba264e15b6230f74881e96d";
-      sha256 = "0ifpvr6jrzk2yhi80x2fsrlr1ha86n6wrwb3p813fif9pmxnbq8v";
+      rev = "148ee2ca8b06d83fd9bf6f9b9497724ad39a07d6";
+      sha256 = "10h5zk7qkj9m640bjncrmf40jlajfrmvgcbxkc1y6hpgymyzalg5";
     };
     meta.homepage = "https://github.com/yorickpeterse/nvim-pqf/";
   };
@@ -8163,36 +8283,36 @@ final: prev:
 
   nvim-rename-state = buildVimPlugin {
     pname = "nvim-rename-state";
-    version = "2023-01-30";
+    version = "2024-06-02";
     src = fetchFromGitHub {
       owner = "olrtg";
       repo = "nvim-rename-state";
-      rev = "8ba78ea517a605ea1a89bd1ed335886435010882";
-      sha256 = "15n1xnip4dzil7fh50s2216wbryzv75jggmz4qabdfv0s6zz67n2";
+      rev = "7ad7679fead547326addbcd2be0ddf5a9d360542";
+      sha256 = "0xjrdci7m2qbk80ckh795nrrl2v3q7wwg4l5x501vx93n9ynrjpx";
     };
     meta.homepage = "https://github.com/olrtg/nvim-rename-state/";
   };
 
   nvim-scrollbar = buildVimPlugin {
     pname = "nvim-scrollbar";
-    version = "2023-05-23";
+    version = "2024-06-03";
     src = fetchFromGitHub {
       owner = "petertriho";
       repo = "nvim-scrollbar";
-      rev = "35f99d559041c7c0eff3a41f9093581ceea534e8";
-      sha256 = "1hyi8x7w8gb2sybqv12jbva4y8jh7zf6nf4d7m3py2jh5k2mxc6c";
+      rev = "d09f14aa16c9f2748e77008f9da7b1f76e4e7b85";
+      sha256 = "1zm0xaph29hk2dw4rpmpz67nxxbr39f67zfil5gwyzk3d87q56k3";
     };
     meta.homepage = "https://github.com/petertriho/nvim-scrollbar/";
   };
 
   nvim-scrollview = buildVimPlugin {
     pname = "nvim-scrollview";
-    version = "2024-03-20";
+    version = "2024-06-13";
     src = fetchFromGitHub {
       owner = "dstein64";
       repo = "nvim-scrollview";
-      rev = "5a7eb7e6c1b921761615b57a6140d73b1cc2b034";
-      sha256 = "00bciq19ry0bm05grlissw1x5nkwi1f6bm0lzw4kmm2zk3zb903n";
+      rev = "fd334e5ad0c616987d1b9114890a59c97165cf83";
+      sha256 = "1s8dr79mnqw2ii54myi43fy3knd2i28c2k5g59fln2m8g90j21lg";
     };
     meta.homepage = "https://github.com/dstein64/nvim-scrollview/";
   };
@@ -8209,14 +8329,26 @@ final: prev:
     meta.homepage = "https://github.com/s1n7ax/nvim-search-and-replace/";
   };
 
+  nvim-snippets = buildVimPlugin {
+    pname = "nvim-snippets";
+    version = "2024-06-10";
+    src = fetchFromGitHub {
+      owner = "garymjr";
+      repo = "nvim-snippets";
+      rev = "5c978b3ba0c504dc9f94ca93d17029f26064d229";
+      sha256 = "1s8hdcwg92w0n24drknpndsjxdsy18xr3fbchdid8l002a7apnxy";
+    };
+    meta.homepage = "https://github.com/garymjr/nvim-snippets/";
+  };
+
   nvim-snippy = buildVimPlugin {
     pname = "nvim-snippy";
-    version = "2024-05-01";
+    version = "2024-06-10";
     src = fetchFromGitHub {
       owner = "dcampos";
       repo = "nvim-snippy";
-      rev = "1184a8734e998649f3bb9a5db9efd4543282050b";
-      sha256 = "0lgqiwnsm4ahgkv7qnxyi48m2i7wybxkxv29869v71bidnbkm6yb";
+      rev = "f25299bd83f4257d0e4d00bcb90578ddd248ae3a";
+      sha256 = "0cww81nmw9wmqr9zyvkkfkagjg0v7lp1nqgnkz7m59gd2mj9szvc";
     };
     meta.homepage = "https://github.com/dcampos/nvim-snippy/";
   };
@@ -8247,36 +8379,36 @@ final: prev:
 
   nvim-spectre = buildVimPlugin {
     pname = "nvim-spectre";
-    version = "2024-04-29";
+    version = "2024-06-04";
     src = fetchFromGitHub {
       owner = "nvim-pack";
       repo = "nvim-spectre";
-      rev = "4651801ba37a9407b7257287aec45b6653ffc5e9";
-      sha256 = "0xna3g63ypagl4jxv9m0kfjzlqnhnlhzjm1gapgmmrzbcb9m3ml3";
+      rev = "ec67d4b5370094b923dfcf6b09b39142f2964861";
+      sha256 = "0b99x2cc18bny35l2njlfd6cv9ynxhbmlkbpkg2ikp0k3138jga3";
     };
     meta.homepage = "https://github.com/nvim-pack/nvim-spectre/";
   };
 
   nvim-spider = buildVimPlugin {
     pname = "nvim-spider";
-    version = "2024-04-27";
+    version = "2024-06-04";
     src = fetchFromGitHub {
       owner = "chrisgrieser";
       repo = "nvim-spider";
-      rev = "76819082ef964db1f67f92454e18ad28ae34b37b";
-      sha256 = "1g0c3lids9kww2awsz0ykgvwm7945a9nvxg96iads735hfwc7p49";
+      rev = "b17d85c086d963852b7e3f543e0cd187b5112bc5";
+      sha256 = "0cnmmsiq3pknsa1kmh1i7qb5a97ysir86a1k10idzw3qfjffsjnz";
     };
     meta.homepage = "https://github.com/chrisgrieser/nvim-spider/";
   };
 
   nvim-surround = buildVimPlugin {
     pname = "nvim-surround";
-    version = "2024-05-16";
+    version = "2024-06-09";
     src = fetchFromGitHub {
       owner = "kylechui";
       repo = "nvim-surround";
-      rev = "79aaa42da1f698ed31bcbe7f83081f69dca7ba17";
-      sha256 = "040mfsmxr7yfpmfi797vzaxcfp98l897nrz2pd5a6ghpvj3b83ij";
+      rev = "b36bf49d097a09781ad6ac0cfea28b40b74570a3";
+      sha256 = "1z2drdxrs058xdjdr8khf1gm7l7pmvvysxp9ynp54dz5wlvspbxv";
     };
     meta.homepage = "https://github.com/kylechui/nvim-surround/";
   };
@@ -8319,36 +8451,36 @@ final: prev:
 
   nvim-tree-lua = buildVimPlugin {
     pname = "nvim-tree.lua";
-    version = "2024-05-14";
+    version = "2024-06-09";
     src = fetchFromGitHub {
       owner = "nvim-tree";
       repo = "nvim-tree.lua";
-      rev = "2bc725a3ebc23f0172fb0ab4d1134b81bcc13812";
-      sha256 = "11snxarz0af9fa8n387l9lzwhfbnp5q0va21kc203ski7c9w18b2";
+      rev = "2086e564c4d23fea714e8a6d63b881e551af2f41";
+      sha256 = "0scmn05y9ya1lwz7ad7519bq1n3ha8hs7i28kgw83r5syp0bg8zc";
     };
     meta.homepage = "https://github.com/nvim-tree/nvim-tree.lua/";
   };
 
   nvim-treesitter = buildVimPlugin {
     pname = "nvim-treesitter";
-    version = "2024-05-16";
+    version = "2024-06-19";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter";
-      rev = "8012b55eee65eba1d1ee4df0a186d30e72dcbe65";
-      sha256 = "1lwr83l5xn2mfka3pajfsh1cmxzdpysspmv2cab6ams9bn8w4jwf";
+      rev = "66ae8748fd4e8550c8b17cf115c9739aea1e4067";
+      sha256 = "0hll69cjhgjnbyh6xqvk9xk6pr8fna9h1rj4nz3fkmq57iwzs812";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
   };
 
   nvim-treesitter-context = buildVimPlugin {
     pname = "nvim-treesitter-context";
-    version = "2024-05-16";
+    version = "2024-06-02";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-context";
-      rev = "6d076414ffedd80411cb0260da8da2788e816e33";
-      sha256 = "0a5dgb81iy8jikcvd8ixvicp84wifzkwp47dpm1vpjyvwamj2jvv";
+      rev = "5efba33af0f39942e426340da7bc15d7dec16474";
+      sha256 = "0dbw3d3d30yg79vp7008yi93n9y258imvr1baydpni571z8yinl6";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-context/";
   };
@@ -8391,12 +8523,12 @@ final: prev:
 
   nvim-treesitter-textobjects = buildVimPlugin {
     pname = "nvim-treesitter-textobjects";
-    version = "2024-05-15";
+    version = "2024-06-05";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-textobjects";
-      rev = "84cc9ed772f1fee2f47c1e076f518829583d8347";
-      sha256 = "0z08c1yz3sn4cdijj9k61zjrny8wp7q1gq1jz9knwg327slm0syd";
+      rev = "34867c69838078df7d6919b130c0541c0b400c47";
+      sha256 = "0c8f2y8glhsbd2nbb0iwjly8f07mjy55z3j53l0p360dgj23kmpw";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/";
   };
@@ -8415,36 +8547,36 @@ final: prev:
 
   nvim-ts-autotag = buildVimPlugin {
     pname = "nvim-ts-autotag";
-    version = "2024-02-07";
+    version = "2024-06-11";
     src = fetchFromGitHub {
       owner = "windwp";
       repo = "nvim-ts-autotag";
-      rev = "531f48334c422222aebc888fd36e7d109cb354cd";
-      sha256 = "1azlkqjvdnam4plm98a23j21swwlk1lvpa7cj3cpvi8q6wi09wkh";
+      rev = "06fe07d7523ba8c755fac7c913fceba43b1720ee";
+      sha256 = "1k23jy33abcxc84qgkw68mzbcl8fxpvg8p5phh5pgvp5n32aspbz";
     };
     meta.homepage = "https://github.com/windwp/nvim-ts-autotag/";
   };
 
   nvim-ts-context-commentstring = buildVimPlugin {
     pname = "nvim-ts-context-commentstring";
-    version = "2024-05-07";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "joosepalviste";
       repo = "nvim-ts-context-commentstring";
-      rev = "0bdccb9c67a42a5e2d99384dc9bfa29b1451528f";
-      sha256 = "0b4cx7k53w3cjfnp6nyvvpi1dnnpdp4j67sszsra61fk8pyqp4w2";
+      rev = "cb064386e667def1d241317deed9fd1b38f0dc2e";
+      sha256 = "13xyrzp9gfbnrxp6v7xxpiwyk18rnw5pn3vw01f0xvnpfsqfz3w4";
     };
     meta.homepage = "https://github.com/joosepalviste/nvim-ts-context-commentstring/";
   };
 
   nvim-ufo = buildVimPlugin {
     pname = "nvim-ufo";
-    version = "2024-04-03";
+    version = "2024-06-06";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-ufo";
-      rev = "a5390706f510d39951dd581f6d2a972741b3fa26";
-      sha256 = "0fyc504ay04402gk1vly0lz8fa5yyfmix16zsvl29grw6rpjacvp";
+      rev = "aa2e676af592b4e99c105d80d6eafd1afc215d99";
+      sha256 = "1311x43lsfkkqa22xzqnas76p3qqhwnhz5xa77gkry5k43jnycyy";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-ufo/";
   };
@@ -8463,12 +8595,12 @@ final: prev:
 
   nvim-web-devicons = buildVimPlugin {
     pname = "nvim-web-devicons";
-    version = "2024-05-13";
+    version = "2024-06-09";
     src = fetchFromGitHub {
       owner = "nvim-tree";
       repo = "nvim-web-devicons";
-      rev = "e37bb1feee9e7320c76050a55443fa843b4b6f83";
-      sha256 = "0kxj9xj94zln8ah2i0r09p0c8prn0rs1vwgf5dvmjn3j8m4x3nnn";
+      rev = "c0cfc1738361b5da1cd0a962dd6f774cc444f856";
+      sha256 = "1fwc0xrg07cr7x8cgksckqlkwbjl3nh0qvailp89zd35al9pzw4g";
     };
     meta.homepage = "https://github.com/nvim-tree/nvim-web-devicons/";
   };
@@ -8547,12 +8679,12 @@ final: prev:
 
   obsidian-nvim = buildVimPlugin {
     pname = "obsidian.nvim";
-    version = "2024-05-08";
+    version = "2024-06-17";
     src = fetchFromGitHub {
       owner = "epwalsh";
       repo = "obsidian.nvim";
-      rev = "2e1f03416583232899dc1b6e27673da5e705abef";
-      sha256 = "1c3zxz60g7jgm3cd9xhzp73qa218b1z6rfiaf9n4wcbzb88c8scl";
+      rev = "7e087da48bd88fb3a6c6229a97713ac35694337a";
+      sha256 = "1dgqm7qjnkgz9wm8fv5j6q2f46ip9hac1csbwxv7lqavi1xw9p0l";
     };
     meta.homepage = "https://github.com/epwalsh/obsidian.nvim/";
   };
@@ -8583,24 +8715,24 @@ final: prev:
 
   octo-nvim = buildVimPlugin {
     pname = "octo.nvim";
-    version = "2024-04-17";
+    version = "2024-06-15";
     src = fetchFromGitHub {
       owner = "pwntester";
       repo = "octo.nvim";
-      rev = "5646539320cd62af6ff28f48ec92aeb724c68e18";
-      sha256 = "1qknswy3hs9lkwbs4pqqbsngyvk7ibl6lhdl0df46ymzpmpkkb8h";
+      rev = "1f0029d5283443bad9a818fd7d9db253404bf8aa";
+      sha256 = "1il6jy83d56lxlgxyklvl76dxk7iikq2941jl6ihbf0v5lbig472";
     };
     meta.homepage = "https://github.com/pwntester/octo.nvim/";
   };
 
   oil-nvim = buildVimPlugin {
     pname = "oil.nvim";
-    version = "2024-05-16";
+    version = "2024-06-16";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "oil.nvim";
-      rev = "9e3a02252dc5686f374f79f50a13cfe7547c05af";
-      sha256 = "04wqq3s4mwz1f5v85iyh6wx43q4sfj5iqhg82krs7n4rq9nh3r4s";
+      rev = "64a3a555b40d96faae488ed6cf5d0f8b38520891";
+      sha256 = "1wmg72r6ydmrgiy4c8jv8fpgkf2wwxpyq7zv4a2bx4imhly4zccx";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/stevearc/oil.nvim/";
@@ -8608,12 +8740,12 @@ final: prev:
 
   ollama-nvim = buildVimPlugin {
     pname = "ollama.nvim";
-    version = "2023-12-22";
+    version = "2024-06-09";
     src = fetchFromGitHub {
       owner = "nomnivore";
       repo = "ollama.nvim";
-      rev = "d99e2462be8875602d173c117d5301862669d985";
-      sha256 = "1qjx6xrxrvsbn52njinlvrrqnl2j2j07g86yi031mnbx2zmbkric";
+      rev = "45e58779fecde7ac5b8f62800bbe7180d4b48507";
+      sha256 = "0a203q0hm6dbm6nn7g5azidhnabzialawyvl7qz8r2c6knvbkmgj";
     };
     meta.homepage = "https://github.com/nomnivore/ollama.nvim/";
   };
@@ -8632,12 +8764,12 @@ final: prev:
 
   omnisharp-extended-lsp-nvim = buildVimPlugin {
     pname = "omnisharp-extended-lsp.nvim";
-    version = "2024-03-31";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "Hoffs";
       repo = "omnisharp-extended-lsp.nvim";
-      rev = "6e0aa6465f8fa8ac6c833f6ac4713adfee0202a0";
-      sha256 = "1i8dx4k4k7d1p713sinxnvm259pir4yz41kfnaaa1bpfwzfm3jsp";
+      rev = "f872cfa38b30a34e179fb028f68588d09bd44114";
+      sha256 = "1xlnfr9vdvxhz09njz2lgyiww10fcg79vzm372zqw99dcqr9jm4p";
     };
     meta.homepage = "https://github.com/Hoffs/omnisharp-extended-lsp.nvim/";
   };
@@ -8692,12 +8824,12 @@ final: prev:
 
   onedarkpro-nvim = buildVimPlugin {
     pname = "onedarkpro.nvim";
-    version = "2024-05-13";
+    version = "2024-06-08";
     src = fetchFromGitHub {
       owner = "olimorris";
       repo = "onedarkpro.nvim";
-      rev = "5cf25dd6db58c6eb1cec47ad333e2b76051f8562";
-      sha256 = "1yrns9y6dmfbg4hdv2v78izbwdnxxy9i6pnympkvihlpbqdshqar";
+      rev = "308527d45efb9f2a0bd4b4004c1c02023557ed6b";
+      sha256 = "0s0wm06ymagrax1lngz81p7bhk2f9k2ivxy6vx2a7fwam8yayrfs";
     };
     meta.homepage = "https://github.com/olimorris/onedarkpro.nvim/";
   };
@@ -8716,12 +8848,12 @@ final: prev:
 
   onenord-nvim = buildVimPlugin {
     pname = "onenord.nvim";
-    version = "2024-05-09";
+    version = "2024-06-01";
     src = fetchFromGitHub {
       owner = "rmehri01";
       repo = "onenord.nvim";
-      rev = "f1e25fd839442d4b3c6bd36cfc7fa56edc629671";
-      sha256 = "0a24km5pd7r2zj0bwzi6wmnkf0lxr9gd82k6x4ybm5777z4bp66r";
+      rev = "70b716fd36a18284ad768402523b79ccdadafedf";
+      sha256 = "18vrjaw60225q3phxm7lzf0fvfa3ii9gr2zdgyfvxa85iyzcfqqn";
     };
     meta.homepage = "https://github.com/rmehri01/onenord.nvim/";
   };
@@ -8776,60 +8908,60 @@ final: prev:
 
   orgmode = buildVimPlugin {
     pname = "orgmode";
-    version = "2024-05-14";
+    version = "2024-06-14";
     src = fetchFromGitHub {
       owner = "nvim-orgmode";
       repo = "orgmode";
-      rev = "8ec0bcc6f6476d246159f738081256c97a7a9b2c";
-      sha256 = "17glhwnkb7k96ihh3p3w8pjnprc2lrhlhrrb6v9m5azbhsjy7ysg";
+      rev = "cc51c1914e3f0bf20bd543a7176df5bab12ec247";
+      sha256 = "1pr5fh2pr3awmxvaw0n811165nf9p3n0pp2cg4f8qs15y6ncbkq7";
     };
     meta.homepage = "https://github.com/nvim-orgmode/orgmode/";
   };
 
   other-nvim = buildVimPlugin {
     pname = "other.nvim";
-    version = "2024-04-16";
+    version = "2024-06-10";
     src = fetchFromGitHub {
       owner = "rgroli";
       repo = "other.nvim";
-      rev = "2a82971d3763474df29d5d32d0699b5bb13c551f";
-      sha256 = "1jxiyabkg3y8fcnms9rms844038hjmynbg9wykfmn7n38sxig300";
+      rev = "63f587dde62149bd2ed3e31edceb49d5c4097a26";
+      sha256 = "0chlpvz1y1w52s3cqhf5f1pnj0h451qsylfhr33qvg1nf1qmxckg";
     };
     meta.homepage = "https://github.com/rgroli/other.nvim/";
   };
 
   otter-nvim = buildVimPlugin {
     pname = "otter.nvim";
-    version = "2024-05-11";
+    version = "2024-06-09";
     src = fetchFromGitHub {
       owner = "jmbuhr";
       repo = "otter.nvim";
-      rev = "5cd161f28835fada50d99c89dc05041565a27bdb";
-      sha256 = "18vl93j93s9i22ybw3vl129kvhz8382yg8b1r1m0xnfyiklpkzg5";
+      rev = "cbb1be0586eae18cbea38ada46af428d2bebf81a";
+      sha256 = "085lx5z7abbn7rq23pma5xmymzgjajp0slg0g42wafxpn7rby9kv";
     };
     meta.homepage = "https://github.com/jmbuhr/otter.nvim/";
   };
 
   outline-nvim = buildVimPlugin {
     pname = "outline.nvim";
-    version = "2024-05-02";
+    version = "2024-06-05";
     src = fetchFromGitHub {
       owner = "hedyhli";
       repo = "outline.nvim";
-      rev = "dbd836893fb99cfc33119d7c4abbdb700210f54b";
-      sha256 = "1sy82vh9629wwyvc1j3q0vqfj7vichw90kl4vsa087v8sfn8r35z";
+      rev = "028e0bc8ad3d511e9fc1f0678594a608eb908ee5";
+      sha256 = "1ng8pg64cvgaagx8dri172z9qwv34ld4293amy48fddm9xxgmdqw";
     };
     meta.homepage = "https://github.com/hedyhli/outline.nvim/";
   };
 
   overseer-nvim = buildVimPlugin {
     pname = "overseer.nvim";
-    version = "2024-05-16";
+    version = "2024-06-14";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "overseer.nvim";
-      rev = "7a9b654df4b3b246d05fff857f32e9fb8ddfb013";
-      sha256 = "1qp5vkswgl3cz7qcnsl8dywwwcg8561dqhyp08zd2ifj933r1b5j";
+      rev = "d78fa84c06d37b1eb3bd42b4b5467c7476e74589";
+      sha256 = "130y8gjbyr3bg9l24s0iiiv40wpqq48axzvbjpraalca181zkhcd";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/stevearc/overseer.nvim/";
@@ -8919,6 +9051,18 @@ final: prev:
     meta.homepage = "https://github.com/NLKNguyen/papercolor-theme/";
   };
 
+  parpar-nvim = buildVimPlugin {
+    pname = "parpar.nvim";
+    version = "2023-09-12";
+    src = fetchFromGitHub {
+      owner = "dundalek";
+      repo = "parpar.nvim";
+      rev = "e99a88f0f0b1234f49a3efe9c49b712b58a5acfc";
+      sha256 = "09y0q4shgi8a88z42lrkh41ay64yhb7050rlc3b6r2lk6k72xdqz";
+    };
+    meta.homepage = "https://github.com/dundalek/parpar.nvim/";
+  };
+
   pear-tree = buildVimPlugin {
     pname = "pear-tree";
     version = "2019-12-08";
@@ -8945,24 +9089,24 @@ final: prev:
 
   persisted-nvim = buildVimPlugin {
     pname = "persisted.nvim";
-    version = "2024-05-07";
+    version = "2024-06-15";
     src = fetchFromGitHub {
       owner = "olimorris";
       repo = "persisted.nvim";
-      rev = "1e9fd63e25bdbb5dbb6b8b10f817b2446977146c";
-      sha256 = "1y61izajz6p2b1vfa20f3j5rl1fjbfmbzny3ywkfai4dsnrks8yi";
+      rev = "0a9eebf5cc92b1113a382a660ee73f21ffd62ae7";
+      sha256 = "0gyacxix6m9wpzlm6a5p1s2aa9916750fd8chgkga8m3q34bdq9a";
     };
     meta.homepage = "https://github.com/olimorris/persisted.nvim/";
   };
 
   persistence-nvim = buildVimPlugin {
     pname = "persistence.nvim";
-    version = "2024-05-16";
+    version = "2024-06-12";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "persistence.nvim";
-      rev = "5fe077056c821aab41f87650bd6e1c48cd7dd047";
-      sha256 = "1saanhqa9ldm1xlq5w28w72yxkwh60cay3cazi62zwmph0mgygp9";
+      rev = "95d03ad5450389ad7dc2a0fab14ebb3d46bc2c96";
+      sha256 = "1hmwrr15w8ybvy8m2jrn34n5dq2svklf498k7j431mw9y1knj68v";
     };
     meta.homepage = "https://github.com/folke/persistence.nvim/";
   };
@@ -9053,12 +9197,12 @@ final: prev:
 
   plenary-nvim = buildNeovimPlugin {
     pname = "plenary.nvim";
-    version = "2024-04-25";
+    version = "2024-05-20";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "plenary.nvim";
-      rev = "08e301982b9a057110ede7a735dd1b5285eb341f";
-      sha256 = "03x9mxxqscahs3plml9pw0q6yacyiz6nvw4pcbpqlcqj99f0qbdz";
+      rev = "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683";
+      sha256 = "0n2p8krzwiw682f0yb6n8faamffpp336rjy50pbqf3jmc6czd5z4";
     };
     meta.homepage = "https://github.com/nvim-lua/plenary.nvim/";
   };
@@ -9186,12 +9330,12 @@ final: prev:
 
   promise-async = buildVimPlugin {
     pname = "promise-async";
-    version = "2024-02-27";
+    version = "2024-06-10";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "promise-async";
-      rev = "93540c168c5ed2b030ec3e6c40ab8bbb85e36355";
-      sha256 = "059icgs1hi7sl1mjgrg468mz2p21ahag5j0wpwmc9by7sf99da5z";
+      rev = "28c1d5a295eb5310afa2523d4ae9aa41ec5a9de2";
+      sha256 = "11v2jqjil6l1i9rl93pcdn0b8nk8f0zg10fk3p3q4z641c8m8xjf";
     };
     meta.homepage = "https://github.com/kevinhwang91/promise-async/";
   };
@@ -9343,11 +9487,11 @@ final: prev:
 
   rainbow-delimiters-nvim = buildVimPlugin {
     pname = "rainbow-delimiters.nvim";
-    version = "2024-05-11";
+    version = "2024-06-14";
     src = fetchgit {
       url = "https://gitlab.com/HiPhish/rainbow-delimiters.nvim";
-      rev = "dd1156723eb8483e4403eb8765bbdff456b6981d";
-      sha256 = "1cj3hylb73wqgllr5wnqjlzlwqr9s4f5yb4g4s2lra4g7a08grxj";
+      rev = "5c9660801ce345cd3835e1947c12b54290ab7e71";
+      sha256 = "0jm02hp7g5pqfrv2jr93gd4zz8v33w4cb220m7akq07gwhj7fag8";
     };
     meta.homepage = "https://gitlab.com/HiPhish/rainbow-delimiters.nvim";
   };
@@ -9426,12 +9570,12 @@ final: prev:
 
   refactoring-nvim = buildVimPlugin {
     pname = "refactoring.nvim";
-    version = "2024-03-15";
+    version = "2024-06-15";
     src = fetchFromGitHub {
       owner = "theprimeagen";
       repo = "refactoring.nvim";
-      rev = "d2786877c91aa409c824f27b4ce8a9f560dda60a";
-      sha256 = "0s0pd2b9hnz4rbgva1xad7lzg8z8mq7j8x15ppnrw6bplx5m35jd";
+      rev = "e6b10b2346bd7e469a5f17099775ad906da153ae";
+      sha256 = "1m0ah5f1w18g7y78ra78yczzpdb4giwk9hsig3379f26xz5fknp2";
     };
     meta.homepage = "https://github.com/theprimeagen/refactoring.nvim/";
   };
@@ -9450,12 +9594,12 @@ final: prev:
 
   remember-nvim = buildVimPlugin {
     pname = "remember.nvim";
-    version = "2023-06-12";
+    version = "2024-06-13";
     src = fetchFromGitHub {
       owner = "vladdoster";
       repo = "remember.nvim";
-      rev = "b7613e14692478a0428dc69ca380b6fbb2448e60";
-      sha256 = "1kki1v7bdixkyn53ryqsz4r53j68s9csfdxg8ffchkd7qamwzlsw";
+      rev = "1b5176283bcf91d052b5755d9ba6e8ce14dfc95b";
+      sha256 = "128ci86rypdnmv2c93qj04pmhdx70b7vdcnzgcr417dmn5212s2l";
     };
     meta.homepage = "https://github.com/vladdoster/remember.nvim/";
   };
@@ -9486,12 +9630,12 @@ final: prev:
 
   rest-nvim = buildNeovimPlugin {
     pname = "rest.nvim";
-    version = "2024-05-04";
+    version = "2024-06-10";
     src = fetchFromGitHub {
       owner = "rest-nvim";
       repo = "rest.nvim";
-      rev = "f96edb54a2940322bc7ed81a1031be04db7d3a99";
-      sha256 = "0yfmpkwx38ynwyn9prkkqqaqgi55dam9zswjj3nls30rxahqvg1p";
+      rev = "c7944769dc489b9e4bc493e40820c2818eab2569";
+      sha256 = "14afbxl60k2197zl8vs4rskb0rs09d00kvnr0zsnvzydv5gf38pn";
     };
     meta.homepage = "https://github.com/rest-nvim/rest.nvim/";
   };
@@ -9532,6 +9676,18 @@ final: prev:
     meta.homepage = "https://github.com/mfukar/robotframework-vim/";
   };
 
+  rocks-nvim = buildNeovimPlugin {
+    pname = "rocks.nvim";
+    version = "2024-06-19";
+    src = fetchFromGitHub {
+      owner = "nvim-neorocks";
+      repo = "rocks.nvim";
+      rev = "6737e01a76eaaae06d11b45c8b5b774fa97c283b";
+      sha256 = "0vl6rm3rv1730iw3bwzrwjsgr1hw5h4ksdgpir5spd3vqj7i97lz";
+    };
+    meta.homepage = "https://github.com/nvim-neorocks/rocks.nvim/";
+  };
+
   ron-vim = buildVimPlugin {
     pname = "ron.vim";
     version = "2022-08-19";
@@ -9606,12 +9762,12 @@ final: prev:
 
   rustaceanvim = buildNeovimPlugin {
     pname = "rustaceanvim";
-    version = "2024-05-16";
+    version = "2024-06-18";
     src = fetchFromGitHub {
       owner = "mrcjkb";
       repo = "rustaceanvim";
-      rev = "50c09f3afa35d3b32e09ac1b155e95c53a98b8e8";
-      sha256 = "0ws8c2bpnhkvgslpa95llydn60kyh7qg66y6a7h9g89mwxda0m6v";
+      rev = "14a5a4bdf23d1971d1a6386b73b89e57590a5e7d";
+      sha256 = "098zlwlrdw5icvns5a7qp4bl2ly1imv2fm3981i9wqdvvvzqmn3k";
     };
     meta.homepage = "https://github.com/mrcjkb/rustaceanvim/";
   };
@@ -9642,12 +9798,12 @@ final: prev:
 
   satellite-nvim = buildVimPlugin {
     pname = "satellite.nvim";
-    version = "2024-02-16";
+    version = "2024-06-11";
     src = fetchFromGitHub {
       owner = "lewis6991";
       repo = "satellite.nvim";
-      rev = "40eb89743e3439c66192abfc31eb3280622a5d3c";
-      sha256 = "1zi3m7zhjl9naggmq9z81x9lfvahjs9bmp43d6b1p1idxa716pij";
+      rev = "777ed56e1ef45ec808df701730b6597fc4fb0fbc";
+      sha256 = "16byf6fa7amxad3gkwi2xyb2i5q5g7c6q0phmf15pqc1skxnr0nk";
     };
     meta.homepage = "https://github.com/lewis6991/satellite.nvim/";
   };
@@ -9702,12 +9858,12 @@ final: prev:
 
   searchbox-nvim = buildVimPlugin {
     pname = "searchbox.nvim";
-    version = "2024-04-26";
+    version = "2024-05-17";
     src = fetchFromGitHub {
       owner = "VonHeikemen";
       repo = "searchbox.nvim";
-      rev = "6cf79dc53794b06a95791a034341f1332e04dd58";
-      sha256 = "138wazdwncgknh4jmaa22i7q8fa8qgc18085xykfvbcf9ljvi0ya";
+      rev = "5cbf11fbaa24da8810f467736cef7dde2410dfb2";
+      sha256 = "01nqlfw4l9zncqip5xwvlisqgmqxlkrz6pvgvgiv7p7vbj2kxg1n";
     };
     meta.homepage = "https://github.com/VonHeikemen/searchbox.nvim/";
   };
@@ -9774,12 +9930,12 @@ final: prev:
 
   sg-nvim = buildVimPlugin {
     pname = "sg.nvim";
-    version = "2024-03-14";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "sourcegraph";
       repo = "sg.nvim";
-      rev = "8d7735bfb810d919806da1e1c4f839fbc6ecccfe";
-      sha256 = "1wb6k3zyk5xa2s6v9x5kly9wv6hi4mpw9630fkyj0ixc4z67y4j9";
+      rev = "8bdd4d19da2268072708d5fe18fda9c23e16509d";
+      sha256 = "03qkd7xxi4q7mw1sgnsa9pmkk8012ndg9ij5ssw8l689v5dx6377";
     };
     meta.homepage = "https://github.com/sourcegraph/sg.nvim/";
   };
@@ -9835,24 +9991,24 @@ final: prev:
 
   slimv = buildVimPlugin {
     pname = "slimv";
-    version = "2023-07-01";
+    version = "2024-06-17";
     src = fetchFromGitHub {
       owner = "kovisoft";
       repo = "slimv";
-      rev = "f4775f044cbb28ff4a444143cd2e6712b3694f21";
-      sha256 = "1k67h7i07xab8f5a0qn0psrmj1xbm42w03gh5kmal8ay3maqvscd";
+      rev = "e2c2bbb698c89de8c8aa91ad9ab1fd40ef6add00";
+      sha256 = "0da4hcqb2936jby7zx84i0i2qxxg4wfkcfx4xx1fa92bgv79s0mx";
     };
     meta.homepage = "https://github.com/kovisoft/slimv/";
   };
 
   smart-splits-nvim = buildVimPlugin {
     pname = "smart-splits.nvim";
-    version = "2024-05-14";
+    version = "2024-06-15";
     src = fetchFromGitHub {
       owner = "mrjones2014";
       repo = "smart-splits.nvim";
-      rev = "2846aee230e2dd0a3b8912d8eba86dae7d1d16b2";
-      sha256 = "0xaqvin1gcr4a4nmssaazaqnvp7mmhnrl4kz1raw1nn8krww9rj2";
+      rev = "3d9fa9e4b31c30d6b328f2447a4dc7dceffbc2ea";
+      sha256 = "1pvi03f98f6lys6l3jlra9l95dpavdc9y8ghl91mlwvlglrnwjrk";
     };
     meta.homepage = "https://github.com/mrjones2014/smart-splits.nvim/";
   };
@@ -9895,12 +10051,12 @@ final: prev:
 
   snap = buildVimPlugin {
     pname = "snap";
-    version = "2024-01-17";
+    version = "2024-06-05";
     src = fetchFromGitHub {
       owner = "camspiers";
       repo = "snap";
-      rev = "c0bcae835facb945c25073d233c15dbfeb7adc5e";
-      sha256 = "00sv4pl6pbg4hyq1cx1k9gzngdf603m35bkp9iaacrd1fxg6vqic";
+      rev = "486a2ab714eee79c392abfb45bdb94398409ed34";
+      sha256 = "1ghca3fjdd0v3s4jldilki7kzhz891qxkf1l0dzx4h4p420kc42d";
     };
     meta.homepage = "https://github.com/camspiers/snap/";
   };
@@ -9931,12 +10087,12 @@ final: prev:
 
   sonokai = buildVimPlugin {
     pname = "sonokai";
-    version = "2024-05-15";
+    version = "2024-06-03";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "sonokai";
-      rev = "d638deba408349ccb60bf5278ff7f23ff52b164a";
-      sha256 = "141mcy6l56am1hzawdbpjmvj82mp8zbpgkdwmq9wfclawmhfdqqh";
+      rev = "a90d437f1f4e48825150065987d175e2a45fa39e";
+      sha256 = "0w7y53mdpb7xi26bm9xrhsszxngidcxfpwv7z9h5bdn1x53sb8i2";
     };
     meta.homepage = "https://github.com/sainnhe/sonokai/";
   };
@@ -10088,12 +10244,12 @@ final: prev:
 
   srcery-vim = buildVimPlugin {
     pname = "srcery-vim";
-    version = "2024-03-26";
+    version = "2024-05-31";
     src = fetchFromGitHub {
       owner = "srcery-colors";
       repo = "srcery-vim";
-      rev = "7439a86e19714adaf1d4ae2c69ada19d5c779526";
-      sha256 = "1s237nky24ijr732dylyag86fkng5a93jv36makbq4sqr2b1icl9";
+      rev = "c7398b0b32009406cf3918a655c364c44d7ab99b";
+      sha256 = "1bn5jbzs4rv3n8kz00mgvmkk6f9z7m7ki1ayynhlmkknqmf8izmq";
     };
     meta.homepage = "https://github.com/srcery-colors/srcery-vim/";
   };
@@ -10136,12 +10292,12 @@ final: prev:
 
   staline-nvim = buildVimPlugin {
     pname = "staline.nvim";
-    version = "2024-05-16";
+    version = "2024-06-02";
     src = fetchFromGitHub {
       owner = "tamton-aquib";
       repo = "staline.nvim";
-      rev = "2bda31da08c620adce08df8359bd402044399340";
-      sha256 = "17wkf3j7nyjk4ch88hkgb68lyr34z0kk9qhmk7n4h673jhn2lh34";
+      rev = "d337bc9b343df3328921ef4c3f8ff604102d0201";
+      sha256 = "0ab52sxa4pwlvf7vm3mjxf2ny3bm32wz0kagxadp7w65iy59ajqy";
     };
     meta.homepage = "https://github.com/tamton-aquib/staline.nvim/";
   };
@@ -10196,12 +10352,12 @@ final: prev:
 
   statuscol-nvim = buildVimPlugin {
     pname = "statuscol.nvim";
-    version = "2024-04-19";
+    version = "2024-06-15";
     src = fetchFromGitHub {
       owner = "luukvbaal";
       repo = "statuscol.nvim";
-      rev = "483b9a596dfd63d541db1aa51ee6ee9a1441c4cc";
-      sha256 = "0dvpfbyvsalim5ml37vprh5ay9brdjfpcn08rgg77xp6pcjrk2qb";
+      rev = "d6f7f5437c5404d958b88bb73e0721b1c0e09223";
+      sha256 = "0qv4prxfgzn740jjhscafi7dgiirm1w4h2f4ph74j7x28yk94dlk";
     };
     meta.homepage = "https://github.com/luukvbaal/statuscol.nvim/";
   };
@@ -10232,12 +10388,12 @@ final: prev:
 
   substitute-nvim = buildVimPlugin {
     pname = "substitute.nvim";
-    version = "2023-11-17";
+    version = "2024-05-29";
     src = fetchFromGitHub {
       owner = "gbprod";
       repo = "substitute.nvim";
-      rev = "17ffaeb5a1dc2dbef39cf0865d8a4b6000836714";
-      sha256 = "0jf6r6zxgr4709lfl2ry7z8qh4zql8w4x56bqj0jfkga35l9c7c1";
+      rev = "8b93e792747520b6490237b5b32963e256fbde24";
+      sha256 = "1ndi6s8w5kyyzk9cjk7vq70sg3cnmgi2inpm2gfnhmv8yqy8rqbg";
     };
     meta.homepage = "https://github.com/gbprod/substitute.nvim/";
   };
@@ -10256,12 +10412,12 @@ final: prev:
 
   supertab = buildVimPlugin {
     pname = "supertab";
-    version = "2021-04-30";
+    version = "2024-06-07";
     src = fetchFromGitHub {
       owner = "ervandew";
       repo = "supertab";
-      rev = "f0093ae12a9115498f887199809a6114659fc858";
-      sha256 = "1r1ck62raxhwcxjv7hic7jm9b5inm1vdqc51zn4nybclys7grnss";
+      rev = "8c638fe17b470f4a27554cdf8e641bafa5e2a7a4";
+      sha256 = "1l2q1kw37pdqdk9nhr9rmr3c9kh8llwf44qvs7r245gifcjn2n75";
     };
     meta.homepage = "https://github.com/ervandew/supertab/";
   };
@@ -10280,12 +10436,12 @@ final: prev:
 
   sved = buildVimPlugin {
     pname = "sved";
-    version = "2022-08-11";
+    version = "2024-06-18";
     src = fetchFromGitHub {
       owner = "peterbjorgensen";
       repo = "sved";
-      rev = "f175866cc1d9a79fa4f4f5906c8a7aa83504b62e";
-      sha256 = "0gg5091d6h9l546hxqi5ddw0kv7f8v17l1zkhsh2dxrpdlgnnqs0";
+      rev = "3edf1030c28e3a5e3b01aea7f94fa04ac4f0e48a";
+      sha256 = "15idmbzbgmvh75l75y6zkhpa6f72978rxqflfr08apz7g56zl9kl";
     };
     meta.homepage = "https://github.com/peterbjorgensen/sved/";
   };
@@ -10316,12 +10472,12 @@ final: prev:
 
   switch-vim = buildVimPlugin {
     pname = "switch.vim";
-    version = "2023-08-22";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "AndrewRadev";
       repo = "switch.vim";
-      rev = "68d269301181835788dcdcb6d5bca337fb954395";
-      sha256 = "0llpr59wgagr1mvaml80pqbci025phgdfn84zn82s1mmgaa4xjl3";
+      rev = "21defb202ebb8406b8ed63183a43ea026f2645b3";
+      sha256 = "0ph3khcw62rj6xnkjnjv4w63y1dz0w4qv56b5m3c6gd4aiv6wash";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/AndrewRadev/switch.vim/";
@@ -10353,12 +10509,12 @@ final: prev:
 
   tabby-nvim = buildVimPlugin {
     pname = "tabby.nvim";
-    version = "2024-03-28";
+    version = "2024-06-10";
     src = fetchFromGitHub {
       owner = "nanozuki";
       repo = "tabby.nvim";
-      rev = "67d374290efc6108a7a5017c3405c0dbb4c8b92d";
-      sha256 = "0pwml4adsknfrnl7wrd2dkb1pzgcvwggi03c02p3pyrk5hnhgx70";
+      rev = "229605a2ccf36798f77eb7d1b55b5905df487162";
+      sha256 = "1pdzjxrd2938r2slb67dw1hrm23dsx9h8dvx288ian040prbpyf1";
     };
     meta.homepage = "https://github.com/nanozuki/tabby.nvim/";
   };
@@ -10414,12 +10570,12 @@ final: prev:
 
   tabout-nvim = buildVimPlugin {
     pname = "tabout.nvim";
-    version = "2024-04-27";
+    version = "2024-05-18";
     src = fetchFromGitHub {
       owner = "abecodes";
       repo = "tabout.nvim";
-      rev = "26cf934f872e2fbfab55d572c5eb7dad0e82238e";
-      sha256 = "157zglv8l9qdkralyddnfi6zavr3km6wcxk2x4hs5vg1pi60v8qa";
+      rev = "3d7fbc7f5e91ef0f96b4d787c78ad9f8820de3ec";
+      sha256 = "1v5bjy8d4y5yiyccijdqcsw61dvvbqdd7c54cvc5v0l5rlhbp20d";
     };
     meta.homepage = "https://github.com/abecodes/tabout.nvim/";
   };
@@ -10462,12 +10618,12 @@ final: prev:
 
   tagbar = buildVimPlugin {
     pname = "tagbar";
-    version = "2024-01-26";
+    version = "2024-06-06";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "tagbar";
-      rev = "12edcb59449b335555652898f82dd6d5c59d519a";
-      sha256 = "14nl91jzpbj0rd3w96qjl1z6w64y27ss3hiw08lpfhqd7f929x5b";
+      rev = "0815b5455c792a610d28ff3e7981642c9cf05d62";
+      sha256 = "1vdj7ardgbmpj9qjfb5r2yp5avscny6v14p6552jphbyqkczd9pb";
     };
     meta.homepage = "https://github.com/preservim/tagbar/";
   };
@@ -10571,12 +10727,12 @@ final: prev:
 
   telescope-coc-nvim = buildVimPlugin {
     pname = "telescope-coc.nvim";
-    version = "2024-04-08";
+    version = "2024-05-18";
     src = fetchFromGitHub {
       owner = "fannheyward";
       repo = "telescope-coc.nvim";
-      rev = "55ca0d6960eb1c32f9f7967fa71926f7bad484a8";
-      sha256 = "0yzw9k406q1ixascqw8maw9raqny6cc0cp1idmdsrp8dnvl954v8";
+      rev = "0819a790dc95336ce2a954513434a76bb76c41c7";
+      sha256 = "06njpa3i8wp73snjgih04ba6mny2m7inkfivl9pic1izcp4r61a6";
     };
     meta.homepage = "https://github.com/fannheyward/telescope-coc.nvim/";
   };
@@ -10595,24 +10751,24 @@ final: prev:
 
   telescope-file-browser-nvim = buildVimPlugin {
     pname = "telescope-file-browser.nvim";
-    version = "2024-04-23";
+    version = "2024-06-09";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-file-browser.nvim";
-      rev = "4d5fd21bae12ee6e9a79232e1c377f43c419d0c5";
-      sha256 = "01dpbmcjnd2iwwiw0zawhh7d1vh4x3wvqf55w7kh4b111bl9399z";
+      rev = "a7ab9a957b17199183388c6f357d614fcaa508e5";
+      sha256 = "0g3wh4bspjwmzrd0gl5wwkm6lscbaih8jqzhxzlnbbxk8aky75fr";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-file-browser.nvim/";
   };
 
   telescope-frecency-nvim = buildVimPlugin {
     pname = "telescope-frecency.nvim";
-    version = "2024-05-01";
+    version = "2024-06-19";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-frecency.nvim";
-      rev = "6b6565e6584c86ca501bdac485cbdc2ca64556e4";
-      sha256 = "0rmj6sk7yz5qmn6mdpcww2lgsq9q4x7r166a8lhwlm8ch3lddcf6";
+      rev = "78570e237c8b2494dd74ffe196fbd01d0c9e5460";
+      sha256 = "1vsfsi39i8f8x6cbsrq491s54p1gh8fh3a0vjgik7x07a9i21l6h";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-frecency.nvim/";
   };
@@ -10668,12 +10824,12 @@ final: prev:
 
   telescope-live-grep-args-nvim = buildVimPlugin {
     pname = "telescope-live-grep-args.nvim";
-    version = "2023-12-15";
+    version = "2024-06-09";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-live-grep-args.nvim";
-      rev = "731a046da7dd3adff9de871a42f9b7fb85f60f47";
-      sha256 = "0sczw6b6vk01cdncyfq6svasrfrisbxd3valsxy0qrv768h2sqwl";
+      rev = "8ad632f793fd437865f99af5684f78300dac93fb";
+      sha256 = "17spr5qii62g49w5ha9awyya8iqdj6gpv3bbs76pykg0rnyz4mix";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-live-grep-args.nvim/";
   };
@@ -10692,12 +10848,12 @@ final: prev:
 
   telescope-manix = buildNeovimPlugin {
     pname = "telescope-manix";
-    version = "2024-05-12";
+    version = "2024-06-03";
     src = fetchFromGitHub {
       owner = "MrcJkb";
       repo = "telescope-manix";
-      rev = "bfffb3a8cf1c0a4e615622c400fe13de973fe96b";
-      sha256 = "0ghrnb76ls1wnmjw525n9d203fc4y17azs8d6mcms4wf7kx7k4ag";
+      rev = "da337930d3998fad976331155e789f8785543e68";
+      sha256 = "0fhic35pnalxnlqnmq4xs4k4gcp7cs8j724chd0i3pvmbixk8b8y";
     };
     meta.homepage = "https://github.com/MrcJkb/telescope-manix/";
   };
@@ -10837,12 +10993,12 @@ final: prev:
 
   telescope-nvim = buildNeovimPlugin {
     pname = "telescope.nvim";
-    version = "2024-05-16";
+    version = "2024-06-15";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope.nvim";
-      rev = "52f500110bcf9190b44b4d8640162adc86772ec4";
-      sha256 = "0l3vd9xabwx40rqmmwzj1sgnn62z0gg174yl2gl7k2w935nj707z";
+      rev = "c392f1b78eaaf870ca584bd698e78076ed301b26";
+      sha256 = "14k0z9k0d8krs50filg8d38fkcpxv4gy9lilgfj2wrvssd6c9vqy";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/";
   };
@@ -11041,12 +11197,12 @@ final: prev:
 
   tmux-nvim = buildVimPlugin {
     pname = "tmux.nvim";
-    version = "2024-04-25";
+    version = "2024-06-17";
     src = fetchFromGitHub {
       owner = "aserowy";
       repo = "tmux.nvim";
-      rev = "53ea7eab504730e7e8397fd2ae0133053d56afc8";
-      sha256 = "13cbfjiq3d6vvzbbp31ssy6x0lbd6d1y67b8x3jq6cf5jfi0as1z";
+      rev = "da618e075f42793400c3ee1e59ef3ebada2cb23c";
+      sha256 = "00jbds0fg8aqdfq2swjlch22x6j2ispmj5q11jqgp0h99xdxmvr1";
     };
     meta.homepage = "https://github.com/aserowy/tmux.nvim/";
   };
@@ -11065,12 +11221,12 @@ final: prev:
 
   todo-comments-nvim = buildVimPlugin {
     pname = "todo-comments.nvim";
-    version = "2024-03-27";
+    version = "2024-06-12";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "todo-comments.nvim";
-      rev = "a7e39ae9e74f2c8c6dc4eea6d40c3971ae84752d";
-      sha256 = "1z6d0cc0vjl504var8p4l6wshbs5i447wg7y7rmk6i4kb39m94q4";
+      rev = "51e10f838e84b4756c16311d0b1ef0972c6482d2";
+      sha256 = "06kbz52ddr0nkvzm92c71wghm1kngwa3bnn329k6wl13qy2j7i09";
     };
     meta.homepage = "https://github.com/folke/todo-comments.nvim/";
   };
@@ -11090,24 +11246,24 @@ final: prev:
 
   toggleterm-nvim = buildVimPlugin {
     pname = "toggleterm.nvim";
-    version = "2024-04-22";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "toggleterm.nvim";
-      rev = "066cccf48a43553a80a210eb3be89a15d789d6e6";
-      sha256 = "1z058jxwcynwyw6fnkjsqdpnmbl9pa956fnm1x4w96hy00d5pklq";
+      rev = "fee58a0473fd92b28c34f8f724e4918b15ba30a3";
+      sha256 = "1iavy1182n0fwiv6rr6i9lb2kyqbw1fg49fy782nsbmkr25b7kc7";
     };
     meta.homepage = "https://github.com/akinsho/toggleterm.nvim/";
   };
 
   tokyonight-nvim = buildVimPlugin {
     pname = "tokyonight.nvim";
-    version = "2024-05-16";
+    version = "2024-06-13";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "tokyonight.nvim";
-      rev = "634015fff1457ed66cf5364213a2bbbc51a82d6c";
-      sha256 = "0fk0afw5d8nwpz1244c0d6sk8hjk63swapwrxcxk0c1f12qc364l";
+      rev = "81c867c5f638597a82c82094dcb90ed42444dabc";
+      sha256 = "0bq6yjzv7sza4f2mp5x7bv19pg0mj5j6xh3crz4q20l16f2i3hag";
     };
     meta.homepage = "https://github.com/folke/tokyonight.nvim/";
   };
@@ -11150,12 +11306,12 @@ final: prev:
 
   treesj = buildVimPlugin {
     pname = "treesj";
-    version = "2024-04-22";
+    version = "2024-05-28";
     src = fetchFromGitHub {
       owner = "Wansmer";
       repo = "treesj";
-      rev = "e1e82ab4237619d342c7102c9f13d4b9833bfd39";
-      sha256 = "1sfrcafs9i69rsy1m3ng2qfibs5bncsfbggz3apsdyv6vxnzw28m";
+      rev = "f98deb33805485b56a8d44d1a27d16874af00d7f";
+      sha256 = "0w20crwgnf2l8hl71hq1drif2czc2yhbac2m50lgrf6nk8s7x4i9";
     };
     meta.homepage = "https://github.com/Wansmer/treesj/";
   };
@@ -11186,12 +11342,12 @@ final: prev:
 
   triptych-nvim = buildVimPlugin {
     pname = "triptych.nvim";
-    version = "2024-05-06";
+    version = "2024-06-02";
     src = fetchFromGitHub {
       owner = "simonmclean";
       repo = "triptych.nvim";
-      rev = "41dada0eb0f7c2b9d504df952be8535afab33115";
-      sha256 = "1h4hg5fxhvswcldh6lfn5sx8xbqn6kfzwk206c7xdqid1c4rcvw8";
+      rev = "d7ced78687c2ab203743edf0725761f6664f66cb";
+      sha256 = "0ciz9j262z7ijarpyg1yxb3vcqvm8fhar6245fj7wliirnrs7jaz";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/simonmclean/triptych.nvim/";
@@ -11199,12 +11355,12 @@ final: prev:
 
   trouble-nvim = buildVimPlugin {
     pname = "trouble.nvim";
-    version = "2024-03-29";
+    version = "2024-06-14";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "trouble.nvim";
-      rev = "b9cf677f20bb2faa2dacfa870b084e568dca9572";
-      sha256 = "1507s1s19n3p6p8r77sqswjqgrm5p8q37d1syq2j7cl0zbckp14h";
+      rev = "58a3acfc6d8d819324dab4c87068596319032e64";
+      sha256 = "0vs7s7byz80mdww86icvgk7ksvbbgm67afiw8vn19ghf2hr78s8r";
     };
     meta.homepage = "https://github.com/folke/trouble.nvim/";
   };
@@ -11233,6 +11389,18 @@ final: prev:
     meta.homepage = "https://github.com/tesaguri/trust.vim/";
   };
 
+  ts-comments-nvim = buildVimPlugin {
+    pname = "ts-comments.nvim";
+    version = "2024-06-10";
+    src = fetchFromGitHub {
+      owner = "folke";
+      repo = "ts-comments.nvim";
+      rev = "c075b4ee00f6e111b44bf99a8cfd5a4cfce9258a";
+      sha256 = "1w1lgd0hpslxa47iyqmfdri2agsra5sq1b7qwzpry5nidm2w81yi";
+    };
+    meta.homepage = "https://github.com/folke/ts-comments.nvim/";
+  };
+
   tslime-vim = buildVimPlugin {
     pname = "tslime.vim";
     version = "2020-09-09";
@@ -11271,24 +11439,24 @@ final: prev:
 
   typescript-tools-nvim = buildVimPlugin {
     pname = "typescript-tools.nvim";
-    version = "2024-01-16";
+    version = "2024-06-18";
     src = fetchFromGitHub {
       owner = "pmizio";
       repo = "typescript-tools.nvim";
-      rev = "c43d9580c3ff5999a1eabca849f807ab33787ea7";
-      sha256 = "1af90ydixj8lpm0q6kkd7yv61wpyd572vgb44a4jpfbsaxhl75wj";
+      rev = "3f942ec187523d1d82f813106ceea9be9dac5287";
+      sha256 = "0yr8vmfq6rm7xd39jig1k6fjqhzb7pi0x9iy9mv5vvixj4drz21i";
     };
     meta.homepage = "https://github.com/pmizio/typescript-tools.nvim/";
   };
 
   typescript-vim = buildVimPlugin {
     pname = "typescript-vim";
-    version = "2024-04-30";
+    version = "2024-05-21";
     src = fetchFromGitHub {
       owner = "leafgarland";
       repo = "typescript-vim";
-      rev = "eb4d90d3e449b4a3c1a17f56e4429ff4e0a6b3a6";
-      sha256 = "0nczd6x91i1p56ndkw3m5lhcq3madqcyffzb3avr9zqwlmw36aas";
+      rev = "8d169e16b5487771f6568125d4c63e6086e524d9";
+      sha256 = "042dnb5y8v3xb5nz564snicxkxalki1zm32y09imkskfkv588l52";
     };
     meta.homepage = "https://github.com/leafgarland/typescript-vim/";
   };
@@ -11319,12 +11487,12 @@ final: prev:
 
   ultimate-autopair-nvim = buildVimPlugin {
     pname = "ultimate-autopair.nvim";
-    version = "2024-05-06";
+    version = "2024-06-10";
     src = fetchFromGitHub {
       owner = "altermo";
       repo = "ultimate-autopair.nvim";
-      rev = "042587c63b2b2776a83337748d53dba8b67ec545";
-      sha256 = "1636jwzim6v3sf2jfrbvc1p5x38ddhjfsssq2v31a3rzkyv74qg3";
+      rev = "035d92eab05ac1390afef7204e3fcad9a50fa443";
+      sha256 = "086lmfrllhnlx5c6ksi0lx287zfi86vlazy69sqb0876d0lfn2gs";
     };
     meta.homepage = "https://github.com/altermo/ultimate-autopair.nvim/";
   };
@@ -11367,12 +11535,12 @@ final: prev:
 
   unison = buildVimPlugin {
     pname = "unison";
-    version = "2024-05-16";
+    version = "2024-06-18";
     src = fetchFromGitHub {
       owner = "unisonweb";
       repo = "unison";
-      rev = "faa7b92c6f1d05d20b3ba7249e5c2dd3a76c19c1";
-      sha256 = "05nimvwjyg2sphgfv2xq6wggl54frh7lrgsxv7jg1c9w1lmg6z77";
+      rev = "e354912fe85c39ae0b148562ddf31aa622e24638";
+      sha256 = "1k17nkcdx5xlsw2r6izsyh1fjjfa9mj1v77yd00wznibczd9jnkq";
     };
     meta.homepage = "https://github.com/unisonweb/unison/";
   };
@@ -11391,12 +11559,12 @@ final: prev:
 
   urlview-nvim = buildVimPlugin {
     pname = "urlview.nvim";
-    version = "2023-10-29";
+    version = "2024-06-04";
     src = fetchFromGitHub {
       owner = "axieax";
       repo = "urlview.nvim";
-      rev = "7d622e11adbc2cac5bba62345ade9b6672d564a4";
-      sha256 = "1cqzvbglqjy4563p4q08lsy3yhbsvn8i2davjlgplxvnvb76i68d";
+      rev = "c07733179e27c225ac3c58c3951701ee10b2dbde";
+      sha256 = "1qbqn9h7602dw8vgj5m1i45g679n8j82h38hl0ab9lhxxykf2cys";
     };
     meta.homepage = "https://github.com/axieax/urlview.nvim/";
   };
@@ -11475,24 +11643,24 @@ final: prev:
 
   vim-CtrlXA = buildVimPlugin {
     pname = "vim-CtrlXA";
-    version = "2024-05-10";
+    version = "2024-06-07";
     src = fetchFromGitHub {
       owner = "Konfekt";
       repo = "vim-CtrlXA";
-      rev = "d5c463d7a9b1249b3ecc03f796639fadf391c05f";
-      sha256 = "18jj5vqwz3xa3c9hyc1l0dcjnnxyb9a1wj4r5zg01ida5gsv3dkf";
+      rev = "afab3d2479bcf97f4c4cadf72db7e28a4db56873";
+      sha256 = "1bfwggqm33a9jg8q2yzljjcjypgwpwkf3v0ip96m7q4hg65wvbma";
     };
     meta.homepage = "https://github.com/Konfekt/vim-CtrlXA/";
   };
 
   vim-DetectSpellLang = buildVimPlugin {
     pname = "vim-DetectSpellLang";
-    version = "2022-03-15";
+    version = "2024-06-15";
     src = fetchFromGitHub {
       owner = "konfekt";
       repo = "vim-DetectSpellLang";
-      rev = "d5b55e3307e72e45f8d736818c76884016583538";
-      sha256 = "0l9bdgqaxfpndpf4v5kxn34zx5pnhf62chp4flzyyhhzlz52dqjw";
+      rev = "c5ae86e2b010fc4e89d16ae0512b5f01a38dfb3c";
+      sha256 = "1m0r0vazqrfg0ap4q4iirgf8j75d4hrn9xa3v75kq5ab0agcihgr";
     };
     meta.homepage = "https://github.com/konfekt/vim-DetectSpellLang/";
   };
@@ -11799,24 +11967,24 @@ final: prev:
 
   vim-agda = buildVimPlugin {
     pname = "vim-agda";
-    version = "2023-06-30";
+    version = "2024-05-17";
     src = fetchFromGitHub {
       owner = "msuperdock";
       repo = "vim-agda";
-      rev = "36d6b9f2fd8b2bdc9cd70fad74298db09b694a57";
-      sha256 = "149250pc0y44zqi1ya7kmkk0q4q78zmhpb7vannm4rk990sj0xjq";
+      rev = "884cd77ade0170fed10c8179e4b2f5d0760d38a2";
+      sha256 = "1n2874y6qdlsnpi06pw6gi3fib30njldj6k21knn8h3isib74msw";
     };
     meta.homepage = "https://github.com/msuperdock/vim-agda/";
   };
 
   vim-airline = buildVimPlugin {
     pname = "vim-airline";
-    version = "2024-04-24";
+    version = "2024-06-16";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline";
-      rev = "ff0f9a45a5d81d2c8aa67601c264b18c4fe26b15";
-      sha256 = "1bw6xfc4l41g3rmvyvyxvvq3iyjb0adn5yfamaxi3jkamgc09ik3";
+      rev = "02894b6ef4752afd8579fc837aec5fb4f62409f7";
+      sha256 = "07jxqibg8zdir3w5lq2ibjvf6zw9b9386y9pwybgzg91c9pvd9xk";
     };
     meta.homepage = "https://github.com/vim-airline/vim-airline/";
   };
@@ -12075,12 +12243,12 @@ final: prev:
 
   vim-better-whitespace = buildVimPlugin {
     pname = "vim-better-whitespace";
-    version = "2024-01-13";
+    version = "2024-06-12";
     src = fetchFromGitHub {
       owner = "ntpeters";
       repo = "vim-better-whitespace";
-      rev = "029f35c783f1b504f9be086b9ea757a36059c846";
-      sha256 = "189s0bhavrsv5im810cdl2723wfjr0k267fl83m8zy5mc8ir156k";
+      rev = "86a0579b330b133b8181b8e088943e81c26a809e";
+      sha256 = "19717vah1j37b2yqyk3wbwv71ffsh6qgvjzxzgvfljnp8ib0zrls";
     };
     meta.homepage = "https://github.com/ntpeters/vim-better-whitespace/";
   };
@@ -12303,12 +12471,12 @@ final: prev:
 
   vim-code-dark = buildVimPlugin {
     pname = "vim-code-dark";
-    version = "2024-04-11";
+    version = "2024-05-21";
     src = fetchFromGitHub {
       owner = "tomasiser";
       repo = "vim-code-dark";
-      rev = "05d7843412c4fb7d1bdafefd04462ac4db841f0f";
-      sha256 = "1ycb94cdady4x1bv957zcndrsk16ia54q5kg1k8r8x0ir0gclmac";
+      rev = "4624dc223bf574aa9a731c2383c579847303c380";
+      sha256 = "10pnwfid1v8l7qsj2v1394318h28ipg723rxd4pgkbqnmsvdw8vw";
     };
     meta.homepage = "https://github.com/tomasiser/vim-code-dark/";
   };
@@ -12519,12 +12687,12 @@ final: prev:
 
   vim-dadbod = buildVimPlugin {
     pname = "vim-dadbod";
-    version = "2024-05-01";
+    version = "2024-05-31";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-dadbod";
-      rev = "37523ffe0849b51db07fa7f48430c2aca5420a0e";
-      sha256 = "0lcdpmppy4h0q700z9jkn3k5w0kpfv4kg87mvr4wmzh4pcxac5gh";
+      rev = "7888cb7164d69783d3dce4e0283decd26b82538b";
+      sha256 = "125fzaimjf0vzgl880vjqs5hm9zncbvxjwr5g34psmidhx4x82gk";
     };
     meta.homepage = "https://github.com/tpope/vim-dadbod/";
   };
@@ -12543,12 +12711,12 @@ final: prev:
 
   vim-dadbod-ui = buildVimPlugin {
     pname = "vim-dadbod-ui";
-    version = "2024-05-15";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "kristijanhusak";
       repo = "vim-dadbod-ui";
-      rev = "ac28346e964c1b814b19942903c379d57aea82f3";
-      sha256 = "125kbkk5ib3nc1a2nki6mkf2zwh9i179n59ri1dzpx0whs1q4m9w";
+      rev = "0dc68d9225a70d42f8645049482e090c1a8dce25";
+      sha256 = "1wmx9wrcffik5b73q9g9gdhm4h84h62s5acwz9rxzwf24amdg1y3";
     };
     meta.homepage = "https://github.com/kristijanhusak/vim-dadbod-ui/";
   };
@@ -12925,6 +13093,18 @@ final: prev:
     meta.homepage = "https://github.com/int3/vim-extradite/";
   };
 
+  vim-fern = buildVimPlugin {
+    pname = "vim-fern";
+    version = "2024-05-08";
+    src = fetchFromGitHub {
+      owner = "lambdalisue";
+      repo = "vim-fern";
+      rev = "a675dff495a0a0fd15663ebbae585c19825a64c5";
+      sha256 = "1bxd4x5iac6c1ca5vxw2y1bxxlzjhn6gkxfnw91q68cj7lik5575";
+    };
+    meta.homepage = "https://github.com/lambdalisue/vim-fern/";
+  };
+
   vim-fetch = buildVimPlugin {
     pname = "vim-fetch";
     version = "2023-05-29";
@@ -13023,12 +13203,12 @@ final: prev:
 
   vim-flog = buildVimPlugin {
     pname = "vim-flog";
-    version = "2024-01-24";
+    version = "2024-06-13";
     src = fetchFromGitHub {
       owner = "rbong";
       repo = "vim-flog";
-      rev = "6289ab2e237ceeefdbcc7eb584b63d144bf88d94";
-      sha256 = "0l085wk1plzxg3hxj9gjqg9ws8b43g2wbzjralzfj0r3py7icnb5";
+      rev = "255631abf7ea132393fc7dd745d6911c37ac6a4c";
+      sha256 = "0k92fs7wq1yhbwgf29awv70k06nb36x375b4rjwc4sf559i223mc";
     };
     meta.homepage = "https://github.com/rbong/vim-flog/";
   };
@@ -13083,12 +13263,12 @@ final: prev:
 
   vim-fugitive = buildVimPlugin {
     pname = "vim-fugitive";
-    version = "2024-05-15";
+    version = "2024-06-12";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fugitive";
-      rev = "19ca61c78c86a2ce6a425aee9b1c6664e5149ea6";
-      sha256 = "0k9q0ms0vm58dyrbgm21bp9ryx3jf1ns53jznd1yq8kh7mrcmppi";
+      rev = "64d6cafb9dcbacce18c26d7daf617ebb96b273f3";
+      sha256 = "1ddab7xflb08gy168042k8w35z84hdvrbz5kx37v96skayq30rni";
     };
     meta.homepage = "https://github.com/tpope/vim-fugitive/";
   };
@@ -13215,12 +13395,12 @@ final: prev:
 
   vim-glsl = buildVimPlugin {
     pname = "vim-glsl";
-    version = "2022-05-10";
+    version = "2024-06-15";
     src = fetchFromGitHub {
       owner = "tikhomirov";
       repo = "vim-glsl";
-      rev = "bfd330a271933c3372fcfa8ce052970746c8e9dd";
-      sha256 = "0nqpg95mh5z0wmiqvc8cfzq1gb99ximc1gbz9bv3x7239f66z5vn";
+      rev = "40dd0b143ef93f3930a8a409f60c1bb85e28b727";
+      sha256 = "0m7c0z7f4zz4vnl0ls71grnish7m07kqz9n2jsrm6hsq5pjn36bp";
     };
     meta.homepage = "https://github.com/tikhomirov/vim-glsl/";
   };
@@ -13239,12 +13419,12 @@ final: prev:
 
   vim-go = buildVimPlugin {
     pname = "vim-go";
-    version = "2024-04-13";
+    version = "2024-06-11";
     src = fetchFromGitHub {
       owner = "fatih";
       repo = "vim-go";
-      rev = "feef9b31507f8e942bcd21f9e1f22d587c83c72d";
-      sha256 = "10baiz4hklzwr53vrvivmx86c84d66k0yzbajd3p8mi19h3a96gy";
+      rev = "665ef24144b748b842a0a27c237e63f3447f901a";
+      sha256 = "1yh9phdrax4b5v9bb37n8bzxbi6a8ca422c90f73r9cwgvfx4i2v";
     };
     meta.homepage = "https://github.com/fatih/vim-go/";
   };
@@ -13407,12 +13587,12 @@ final: prev:
 
   vim-helm = buildVimPlugin {
     pname = "vim-helm";
-    version = "2024-02-05";
+    version = "2024-05-31";
     src = fetchFromGitHub {
       owner = "towolf";
       repo = "vim-helm";
-      rev = "86cc6766db60b8cc5731068d0c2111dee1f2b328";
-      sha256 = "0b7fxf43v8px2d4vfhj1b8d2scrr6h8dr9hfg6y7k1yk9jainsy9";
+      rev = "ae1ebc160d2b9b90108477ab10df7a4fc501e358";
+      sha256 = "04lv5sv6533fnyg28pbghrqnimhaxssav4lam1zh7h4y5cq7rdn6";
     };
     meta.homepage = "https://github.com/towolf/vim-helm/";
   };
@@ -13576,12 +13756,12 @@ final: prev:
 
   vim-illuminate = buildVimPlugin {
     pname = "vim-illuminate";
-    version = "2024-04-18";
+    version = "2024-05-17";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "vim-illuminate";
-      rev = "e522e0dd742a83506db0a72e1ced68c9c130f185";
-      sha256 = "0l9306c3867r6dqn4272kkzql63pwfaibhdwisjlc7pcv9wzah53";
+      rev = "5eeb7951fc630682c322e88a9bbdae5c224ff0aa";
+      sha256 = "0g86iv1mndcalrizdhl3z8ryj19jnqv139jwijpzyfk8gi677lhd";
     };
     meta.homepage = "https://github.com/RRethy/vim-illuminate/";
   };
@@ -13841,12 +14021,12 @@ final: prev:
 
   vim-just = buildVimPlugin {
     pname = "vim-just";
-    version = "2024-05-01";
+    version = "2024-06-17";
     src = fetchFromGitHub {
       owner = "NoahTheDuke";
       repo = "vim-just";
-      rev = "a621ede3bcf551144358c112ba1f4e6c2e84e092";
-      sha256 = "1ih2jd14faq80jdxrz42pdmcnz3k5pl4h5hn90x03w1m14bkpmxz";
+      rev = "5ad2c6b625d40d929d58cddeca9c459d5f380755";
+      sha256 = "0bmm3z4njnajv1qzqam9i9lfsaxfw8n792wzdyg7yklp534zaxxn";
     };
     meta.homepage = "https://github.com/NoahTheDuke/vim-just/";
   };
@@ -13877,12 +14057,12 @@ final: prev:
 
   vim-lastplace = buildVimPlugin {
     pname = "vim-lastplace";
-    version = "2024-04-23";
+    version = "2024-05-18";
     src = fetchFromGitHub {
       owner = "farmergreg";
       repo = "vim-lastplace";
-      rev = "cf0abc5f89c88f0c5219abe89334a8a3ef91fefd";
-      sha256 = "1c8wgq1w8dg32l8hga695wdisb7m42nl3nzpwx5ywfr1vjwl6ah3";
+      rev = "e58cb0df716d3c88605ae49db5c4741db8b48aa9";
+      sha256 = "07h25bq42vilrf6wv31p5i22293m0x4x5aa35agnm668bppabwgb";
     };
     meta.homepage = "https://github.com/farmergreg/vim-lastplace/";
   };
@@ -14105,12 +14285,12 @@ final: prev:
 
   vim-lsp-settings = buildVimPlugin {
     pname = "vim-lsp-settings";
-    version = "2024-05-01";
+    version = "2024-06-13";
     src = fetchFromGitHub {
       owner = "mattn";
       repo = "vim-lsp-settings";
-      rev = "54ade15279bc11eea0780bf06d191e6e97c3ea5d";
-      sha256 = "0hcfr8bvxp442sls8iyw43gc9k7kwh3y47v777smz3als89pi76f";
+      rev = "3debb34bf6fac8e1cb195d9e89a23b7ea98bee47";
+      sha256 = "0pdw13m2xn4fih0kk9acbhlgq660a7p6c7ppp4jb310jf0l3xg3i";
     };
     meta.homepage = "https://github.com/mattn/vim-lsp-settings/";
   };
@@ -14238,12 +14418,12 @@ final: prev:
 
   vim-matchup = buildVimPlugin {
     pname = "vim-matchup";
-    version = "2024-02-24";
+    version = "2024-05-29";
     src = fetchFromGitHub {
       owner = "andymass";
       repo = "vim-matchup";
-      rev = "2d660e4aa7c566014c667af2cda0458043527902";
-      sha256 = "0a5527gmwf0chdn91s2s8pa7iny3qa5a88c413g4vwch12mn2vrj";
+      rev = "1535a769d5dca851fe7d41b0be95f7c7203a4bef";
+      sha256 = "0vw4fwyzkhg0fqavp90mq5smh95qcksjbld7cfpyrzqcj678h3fk";
     };
     meta.homepage = "https://github.com/andymass/vim-matchup/";
   };
@@ -14274,12 +14454,12 @@ final: prev:
 
   vim-merginal = buildVimPlugin {
     pname = "vim-merginal";
-    version = "2024-02-28";
+    version = "2024-05-17";
     src = fetchFromGitHub {
       owner = "idanarye";
       repo = "vim-merginal";
-      rev = "8c4a549235a226805f86539b810259356c4bfc22";
-      sha256 = "1fpxlgp57wc5zmm3n9r974w4d282148hspjyp8iw1gf1jxgf20jc";
+      rev = "9ae2f12132d3ab8871d9dd6f8371149e826b7818";
+      sha256 = "01inqqwzf0f9ck9av4bm3jz4s32lr1dljk2nwdmwkdhrjizrvy5s";
     };
     meta.homepage = "https://github.com/idanarye/vim-merginal/";
   };
@@ -14346,12 +14526,12 @@ final: prev:
 
   vim-monokai-tasty = buildVimPlugin {
     pname = "vim-monokai-tasty";
-    version = "2024-01-08";
+    version = "2024-05-23";
     src = fetchFromGitHub {
       owner = "patstockwell";
       repo = "vim-monokai-tasty";
-      rev = "57c67feac63158a232c43aee2f463a994029b699";
-      sha256 = "0fslz2jhnhyda9in9wjvw8ab47aa5d9zzc5l8g53jkqbn7r13kpc";
+      rev = "539c1784bf8e6ace2656885336eeb0fa47cf918a";
+      sha256 = "0v355n4x4maf8ln8rbc8fnwlssdrn7a36d8jzpb4sn67brn3xqx6";
     };
     meta.homepage = "https://github.com/patstockwell/vim-monokai-tasty/";
   };
@@ -14766,12 +14946,12 @@ final: prev:
 
   vim-paper = buildVimPlugin {
     pname = "vim-paper";
-    version = "2024-04-16";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "yorickpeterse";
       repo = "vim-paper";
-      rev = "790c31c56ce510cc0c0f777090be4140fe130d1d";
-      sha256 = "1w958a6ga1a6518f5cr1nag6vkkxh92hqcv5k6f7410xm7fqdya6";
+      rev = "01b79707c2144f9c845057da2e7d6ec024e15c76";
+      sha256 = "1wqq97h25mqy4dzc8795rq6ic52lz2fhndxwhyqm765ldyxxhlwl";
     };
     meta.homepage = "https://github.com/yorickpeterse/vim-paper/";
   };
@@ -14862,12 +15042,12 @@ final: prev:
 
   vim-plug = buildVimPlugin {
     pname = "vim-plug";
-    version = "2024-05-14";
+    version = "2024-06-19";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "vim-plug";
-      rev = "3f1daea5bd4f7a9d1211996ea706daf3b639bf05";
-      sha256 = "1nw4dfvqws9k8fd3gkfm1vk59a3bhi80518h8n7dfifgpnqvddy1";
+      rev = "d863d0783236e1a46291f7791347740891186154";
+      sha256 = "0h8np5gfqa1r2089sxmrpfg5rfggsms3d688c2d7fb9vsba8ghhi";
     };
     meta.homepage = "https://github.com/junegunn/vim-plug/";
   };
@@ -14982,12 +15162,12 @@ final: prev:
 
   vim-prosession = buildVimPlugin {
     pname = "vim-prosession";
-    version = "2024-03-07";
+    version = "2024-06-13";
     src = fetchFromGitHub {
       owner = "dhruvasagar";
       repo = "vim-prosession";
-      rev = "1cb2eadde0b79f49eb4b5a54cc78735aea33cbca";
-      sha256 = "01ky6lgxcb9ghgmd8bw0ja6rvd0hsds8fzdpa7dn8j6x7yl4mcbv";
+      rev = "4b8323d4e9b74afe9132a34b2d7ea6cfa9461550";
+      sha256 = "0xhbqphjldw5ygxmblx9r2zgbda1dgc2h0py6h05ss43cdvzikwa";
     };
     meta.homepage = "https://github.com/dhruvasagar/vim-prosession/";
   };
@@ -15090,12 +15270,12 @@ final: prev:
 
   vim-quickrun = buildVimPlugin {
     pname = "vim-quickrun";
-    version = "2022-07-10";
+    version = "2024-06-02";
     src = fetchFromGitHub {
       owner = "thinca";
       repo = "vim-quickrun";
-      rev = "50f9ced186cf2651f4356aa3548c2306e181ec3b";
-      sha256 = "1wv498ikprc8cmvlmyspw3mll9na5aa8w3yni8vzrdlca6zy3l0q";
+      rev = "c6c50a9926ca18605ae2472a343b8212f3a2af29";
+      sha256 = "0zl3fh0b1s5p330p1fyz1mkwc3mag651a11mh1sa3gif1bxvg3sy";
     };
     meta.homepage = "https://github.com/thinca/vim-quickrun/";
   };
@@ -15294,24 +15474,24 @@ final: prev:
 
   vim-search-pulse = buildVimPlugin {
     pname = "vim-search-pulse";
-    version = "2022-04-26";
+    version = "2024-06-07";
     src = fetchFromGitHub {
       owner = "inside";
       repo = "vim-search-pulse";
-      rev = "3ae2681332c52ed54c443e09d2ef09ae05eaa445";
-      sha256 = "0si6mqrassa7jpdhpiya3f507a74k46h07sbfks7hvxkhk51q7yx";
+      rev = "006934330dc9eab47a09eeee4c8a50a9b4c065b8";
+      sha256 = "12dn4hgjqxcdhm3381qz4qqr44g6y3jsrrid9h3gc5ccc28fzk76";
     };
     meta.homepage = "https://github.com/inside/vim-search-pulse/";
   };
 
   vim-sensible = buildVimPlugin {
     pname = "vim-sensible";
-    version = "2023-03-29";
+    version = "2024-06-08";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-sensible";
-      rev = "3e878abfd6ddc6fb5dba48b41f2b72c3a2f8249f";
-      sha256 = "10jyd0nlzmp8grmvdf15jlr29aim2w29c6yqpzs6753zsj6x9mn1";
+      rev = "0ce2d843d6f588bb0c8c7eec6449171615dc56d9";
+      sha256 = "0a1hyrak7klwsdfpajqw6vm0qi9bkh0q51mzc8k20h876dijdsnm";
     };
     meta.homepage = "https://github.com/tpope/vim-sensible/";
   };
@@ -15354,12 +15534,12 @@ final: prev:
 
   vim-shellcheck = buildVimPlugin {
     pname = "vim-shellcheck";
-    version = "2019-07-25";
+    version = "2024-06-04";
     src = fetchFromGitHub {
       owner = "itspriddle";
       repo = "vim-shellcheck";
-      rev = "4346419ac57ef341a15aa39c827c0848f17c6faf";
-      sha256 = "0j28nqmfjxzhwylp2r1mp5v39fws5jvn7k9maam97mi3j66a9jz5";
+      rev = "52aaa9c0d976756923ee8bd5f02f7d6a4a7f1bcc";
+      sha256 = "1749wi96gj9qzkws3hs494mnmc9w99s8gcmi35qzwng77jp7jvqm";
     };
     meta.homepage = "https://github.com/itspriddle/vim-shellcheck/";
   };
@@ -15438,12 +15618,12 @@ final: prev:
 
   vim-slime = buildVimPlugin {
     pname = "vim-slime";
-    version = "2024-05-15";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "jpalardy";
       repo = "vim-slime";
-      rev = "0e1d0a43ddf4b9f06c1bc1da149f9408fedcc2e0";
-      sha256 = "16asnwpza7jrhh2sgcsnv6l4brbccfxf6ka44fsm1lgrp0m5gncx";
+      rev = "ca59df2570e1a12f9ddfa90b6118df4d87453fcd";
+      sha256 = "06c2j7a97al2pyj2immjba3h7bv0ldlw7dly3halikxn01qdznr9";
     };
     meta.homepage = "https://github.com/jpalardy/vim-slime/";
   };
@@ -15534,24 +15714,24 @@ final: prev:
 
   vim-snipmate = buildVimPlugin {
     pname = "vim-snipmate";
-    version = "2024-01-01";
+    version = "2024-06-16";
     src = fetchFromGitHub {
       owner = "garbas";
       repo = "vim-snipmate";
-      rev = "6e5d2efda6bfc3243be28e88032b7079381f5bdb";
-      sha256 = "09v4psmnx1ig0y47cdz9fz2kkbkvxhc5xg9p5y2k6hxjjlvayqid";
+      rev = "673e686c46149d947283620847ea64deb2a0be6c";
+      sha256 = "08j897l9gpna5x969mgc137vy8ajdq7i8mvz2xwiaf5x13b8db4c";
     };
     meta.homepage = "https://github.com/garbas/vim-snipmate/";
   };
 
   vim-snippets = buildVimPlugin {
     pname = "vim-snippets";
-    version = "2024-02-24";
+    version = "2024-06-10";
     src = fetchFromGitHub {
       owner = "honza";
       repo = "vim-snippets";
-      rev = "393d980157b8149b3ff65a48bc4aae24dca9c846";
-      sha256 = "0fkygzr5srgyyv59glawi9a2j47b57sp20ak9q4qa3izf0z8pk94";
+      rev = "96d79529edc3dee1ccf2ce7b75a88cb546ec2501";
+      sha256 = "0b23p9yqbix0b2vxsh9g9la369540b1281x4qb7ysddivmf2jp5p";
     };
     meta.homepage = "https://github.com/honza/vim-snippets/";
   };
@@ -15606,12 +15786,12 @@ final: prev:
 
   vim-spirv = buildVimPlugin {
     pname = "vim-spirv";
-    version = "2024-05-16";
+    version = "2024-06-19";
     src = fetchFromGitHub {
       owner = "kbenzie";
       repo = "vim-spirv";
-      rev = "0111c3f1738d210c25b6c1bbe7a60c0fb487895a";
-      sha256 = "1hviir5g12yhr9vvyb2nff35hymp1nqnywqq72cb6ys1qg6vsnsw";
+      rev = "64b8125fdca0e67cfe7c415f133809a4d23eb8b5";
+      sha256 = "01r9wz4sc7qlaibi2hhrymcgzrfjchif3cn9w1q71prbvchjhpnm";
     };
     meta.homepage = "https://github.com/kbenzie/vim-spirv/";
   };
@@ -15798,12 +15978,12 @@ final: prev:
 
   vim-teal = buildVimPlugin {
     pname = "vim-teal";
-    version = "2021-01-05";
+    version = "2024-06-19";
     src = fetchFromGitHub {
       owner = "teal-language";
       repo = "vim-teal";
-      rev = "d2aa107b257879e774680792a2aebaf9cd5742e0";
-      sha256 = "02ag8vhmh1zj99vhvqslfnasw9i5psx396r7qyag0yyzyp9ynzkc";
+      rev = "912602f9fab602234a55ad8b0f5f590f657d3e66";
+      sha256 = "0lqr6ss3pvsd9q3w88vy3qf456939crddv17jhc1ynib90ngb59c";
     };
     meta.homepage = "https://github.com/teal-language/vim-teal/";
   };
@@ -15847,12 +16027,12 @@ final: prev:
 
   vim-test = buildVimPlugin {
     pname = "vim-test";
-    version = "2024-04-20";
+    version = "2024-06-15";
     src = fetchFromGitHub {
       owner = "vim-test";
       repo = "vim-test";
-      rev = "eb5bd18d58a859e7d55d732d37e4e2b94fa50275";
-      sha256 = "0v4yi5h8w06vkcl13zhl8hmb79d1g1rc4wrbwj86rxcq7yj490vk";
+      rev = "79c14672b0bfec6f92c626dc331326fdbed62b4f";
+      sha256 = "0vbfnqggh2lwcpfx110phlasmdqq66fdjcgvanydj1vqpvfn8fsa";
     };
     meta.homepage = "https://github.com/vim-test/vim-test/";
   };
@@ -15991,12 +16171,12 @@ final: prev:
 
   vim-tmux-navigator = buildVimPlugin {
     pname = "vim-tmux-navigator";
-    version = "2024-04-13";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "christoomey";
       repo = "vim-tmux-navigator";
-      rev = "a26954a585b02a2ac02f87145e204f8798a7cbc2";
-      sha256 = "01nqxcsn2w24w33d0c4k2w5xyxb0xxvwn7a3pxlzv4i1k36nyaz9";
+      rev = "5b3c701686fb4e6629c100ed32e827edf8dad01e";
+      sha256 = "0kcrz2hlv672v0967n7zz1f5xl8vh41nmps0pvms9bplw1p5nzx3";
     };
     meta.homepage = "https://github.com/christoomey/vim-tmux-navigator/";
   };
@@ -16027,12 +16207,12 @@ final: prev:
 
   vim-tpipeline = buildVimPlugin {
     pname = "vim-tpipeline";
-    version = "2024-04-12";
+    version = "2024-06-13";
     src = fetchFromGitHub {
       owner = "vimpostor";
       repo = "vim-tpipeline";
-      rev = "5dd3832bd6e239feccb11cadca583cdcf9d5bda1";
-      sha256 = "14f4fjjjjml3rbh99385xzkkcfqa7awa9bjc191qvvvycqipp0hw";
+      rev = "f59f144b73e79aae7a73bb86bf527e79ad86de8f";
+      sha256 = "0h16bs65ic5iwry8mq22v4xkn1wc2a6xin0vqn5qnlg38q7fgpn1";
     };
     meta.homepage = "https://github.com/vimpostor/vim-tpipeline/";
   };
@@ -16363,12 +16543,12 @@ final: prev:
 
   vim-xkbswitch = buildVimPlugin {
     pname = "vim-xkbswitch";
-    version = "2024-03-12";
+    version = "2024-06-19";
     src = fetchFromGitHub {
       owner = "lyokha";
       repo = "vim-xkbswitch";
-      rev = "42ef558e792e35600e608d1cd7ad8a760f157269";
-      sha256 = "0aim4bdznk4iklz67nrbw67x3vjv18nmiqy2730b75kl88v0n6iw";
+      rev = "bcd79dd6a1b74efe1a16c70fe6a06bfc6a99e543";
+      sha256 = "1ym08zy9lbqakflbif48kvgirfd4fajpaynmx8wgp6q2xhks6xvd";
     };
     meta.homepage = "https://github.com/lyokha/vim-xkbswitch/";
   };
@@ -16507,12 +16687,12 @@ final: prev:
 
   vimfiler-vim = buildVimPlugin {
     pname = "vimfiler.vim";
-    version = "2023-05-18";
+    version = "2024-05-20";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "vimfiler.vim";
-      rev = "1c1d2b4f9e70c0b48bcf11bf51c482b8a2d776a8";
-      sha256 = "136rlz18dx7m8k1sdq3r7pww5dipkzq7b21figh03fmcvrrdk74w";
+      rev = "69d5bc6070d5b3ff4e73719d970bae50a71d2c67";
+      sha256 = "1qi8yiq270bkwhkism0ld80dab66l11zzhy7kmzvmaz2fxzglvp3";
     };
     meta.homepage = "https://github.com/Shougo/vimfiler.vim/";
   };
@@ -16579,12 +16759,12 @@ final: prev:
 
   vimspector = buildVimPlugin {
     pname = "vimspector";
-    version = "2024-05-16";
+    version = "2024-06-09";
     src = fetchFromGitHub {
       owner = "puremourning";
       repo = "vimspector";
-      rev = "c37d50fc463013bdad2ba044615b0bc2ce163681";
-      sha256 = "1iqx1x5mig0zd9vrc81fqavz4i59065a6yavqicws2d8la8rppv2";
+      rev = "ee3bd0120525978521168eda1c3a64ef24e3cb86";
+      sha256 = "0g2zxgafxr90cmc8anvr0d5wkvzbpba8b6jblsdnq93648p38qx8";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/puremourning/vimspector/";
@@ -16592,24 +16772,24 @@ final: prev:
 
   vimtex = buildVimPlugin {
     pname = "vimtex";
-    version = "2024-05-13";
+    version = "2024-06-13";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "9665df7f51ee24aa81dbd81782e0a22480209753";
-      sha256 = "0y93msqsiww0nvlfgbi9z6lgpis8fbfmhqgky3944r4hmprv0jdw";
+      rev = "8ed94566e6fe3f5b163131dc374d224d2d320db7";
+      sha256 = "13na944xyy8cj6pck6af4p9hhrr3811pa43zmmj42bxrf5kpbqds";
     };
     meta.homepage = "https://github.com/lervag/vimtex/";
   };
 
   vimux = buildVimPlugin {
     pname = "vimux";
-    version = "2024-02-19";
+    version = "2024-06-03";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "vimux";
-      rev = "f7c41607d9246ec4b6cc28587cce84d75d106e3e";
-      sha256 = "0df041kccvdgn82qqxbwzamc3g1zs5agyyg2xfkqz4ibayq7z5d7";
+      rev = "fa35410805b82ffabc29e3cb5cdf3ad0b8dc402d";
+      sha256 = "0i47x15nzvy6xdgx8kfdbm000c33svanglnn77ilxrv19kjy6j3v";
     };
     meta.homepage = "https://github.com/preservim/vimux/";
   };
@@ -16676,24 +16856,24 @@ final: prev:
 
   vista-vim = buildVimPlugin {
     pname = "vista.vim";
-    version = "2024-04-06";
+    version = "2024-06-11";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vista.vim";
-      rev = "04fa99afe865b16324af94fd8a8391121117d8f7";
-      sha256 = "0gjma1ba0ds0dznhqdajmhib1i49b08iv7hf0c4vjz833kcjagqj";
+      rev = "c07585b588071adc8e9670becadb89307153e4d1";
+      sha256 = "0gpa38jn41pa550l30kvb5wb04bac45sl4dxbwhqhnay42wc90fk";
     };
     meta.homepage = "https://github.com/liuchengxu/vista.vim/";
   };
 
   vscode-nvim = buildVimPlugin {
     pname = "vscode.nvim";
-    version = "2024-05-09";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "Mofiqul";
       repo = "vscode.nvim";
-      rev = "1a2cb491a962acf3bbf53c6d0a61b4ec76012570";
-      sha256 = "1mjsy9g2hkrzhy6bhrphpiz3nr8wr4l7jxacbz224jm7x1i2zn1l";
+      rev = "ff3926901d4160886f707a8a70b5c2e82979a7c4";
+      sha256 = "0x8930yals2cwbyw4vssfhb39pvrwpq90ysh1aczcyivrajm24ir";
     };
     meta.homepage = "https://github.com/Mofiqul/vscode.nvim/";
   };
@@ -16736,12 +16916,12 @@ final: prev:
 
   which-key-nvim = buildVimPlugin {
     pname = "which-key.nvim";
-    version = "2023-10-20";
+    version = "2024-06-07";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "which-key.nvim";
-      rev = "4433e5ec9a507e5097571ed55c02ea9658fb268a";
-      sha256 = "1inm7szfhji6l9k4khq9fvddbwj348gilgbd6b8nlygd7wz23y5s";
+      rev = "0099511294f16b81c696004fa6a403b0ae61f7a0";
+      sha256 = "1n6cs9590n9r24yxm4yf74bqmk1ky6hc7i9c8n7sc4icjkagkz65";
     };
     meta.homepage = "https://github.com/folke/which-key.nvim/";
   };
@@ -16772,12 +16952,12 @@ final: prev:
 
   wiki-vim = buildVimPlugin {
     pname = "wiki.vim";
-    version = "2024-05-16";
+    version = "2024-06-17";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "wiki.vim";
-      rev = "2cdd5e5a73dd2fe54935b929aa802c39264b552e";
-      sha256 = "1qqkyy6s1367xss7rj7rssz0m7h2bh76nml0i7nv7f88rclgrsh8";
+      rev = "da5f1e0a5acd70d4e44c54b4d6286fd8f97742ab";
+      sha256 = "0aiy18yw2kkj1xb7ixlw86xlxpn1v1pqa19d05kr4jnbabdajcr4";
     };
     meta.homepage = "https://github.com/lervag/wiki.vim/";
   };
@@ -16880,12 +17060,12 @@ final: prev:
 
   wrapping-nvim = buildVimPlugin {
     pname = "wrapping.nvim";
-    version = "2024-04-07";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "andrewferrier";
       repo = "wrapping.nvim";
-      rev = "d1ac69c0db82ff0c7540088a0f91d74ad7378c3d";
-      sha256 = "0cmvgmynr3jkp9ikygrn773f3j8n6580ajvv29p8lzg6h5pvafdc";
+      rev = "3a823200c297885b70515fa8d974e1763c578e26";
+      sha256 = "1srk34zppj7lyw69yh5w7014s1mh5bdn7k74yacifwrwnwwdxj5n";
     };
     meta.homepage = "https://github.com/andrewferrier/wrapping.nvim/";
   };
@@ -16940,24 +17120,24 @@ final: prev:
 
   yanky-nvim = buildVimPlugin {
     pname = "yanky.nvim";
-    version = "2024-05-15";
+    version = "2024-06-10";
     src = fetchFromGitHub {
       owner = "gbprod";
       repo = "yanky.nvim";
-      rev = "ec4353355d4eabef451d16d46a3e0535176b81aa";
-      sha256 = "04wgkw03xxlwy1cvjrvdssfw7v5q1alb2wbk0nawhca5rv27r2p4";
+      rev = "73215b77d22ebb179cef98e7e1235825431d10e4";
+      sha256 = "03qdr72nssiwm12fmvmi3x579d4rxkfhscphsr107l3widc5a7j0";
     };
     meta.homepage = "https://github.com/gbprod/yanky.nvim/";
   };
 
   yats-vim = buildVimPlugin {
     pname = "yats.vim";
-    version = "2024-02-08";
+    version = "2024-05-31";
     src = fetchFromGitHub {
       owner = "HerringtonDarkholme";
       repo = "yats.vim";
-      rev = "6927af6e3e45d0ce585684be5681bada0ffcc3a7";
-      sha256 = "0vfcbsm77kmxs6876kac28ncjlp96hqwaj5sgjxkk5jx8077jq0p";
+      rev = "9b16b86f7be4603b416ab18a9e57a34e86e7bec2";
+      sha256 = "0j9am39pdgl1swbxax1kjn57fni0z41y8gdw8m8hmmmqam9va6dh";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/HerringtonDarkholme/yats.vim/";
@@ -17025,14 +17205,14 @@ final: prev:
 
   zenbones-nvim = buildVimPlugin {
     pname = "zenbones.nvim";
-    version = "2024-03-30";
+    version = "2024-06-16";
     src = fetchFromGitHub {
-      owner = "mcchrish";
+      owner = "zenbones-theme";
       repo = "zenbones.nvim";
-      rev = "453ec69d82d644ee6998a3464da49d0261df9f80";
-      sha256 = "006y9abl1l01ja6fr59gpxwybha9h0pda8160fwxciichynkld32";
+      rev = "e9ba8305f65524f9355515cdd8704b2c6ba2def6";
+      sha256 = "0bmj5b4n0rj7i1nh9lccszqv3jbcdcjw5gi6v010d3cf312rkda6";
     };
-    meta.homepage = "https://github.com/mcchrish/zenbones.nvim/";
+    meta.homepage = "https://github.com/zenbones-theme/zenbones.nvim/";
   };
 
   zenburn = buildVimPlugin {
@@ -17073,12 +17253,12 @@ final: prev:
 
   zk-nvim = buildVimPlugin {
     pname = "zk-nvim";
-    version = "2024-04-14";
+    version = "2024-06-03";
     src = fetchFromGitHub {
       owner = "zk-org";
       repo = "zk-nvim";
-      rev = "e2b6d62b18a88249016bf917d4e5bb0e417ac974";
-      sha256 = "16mmrl34f1bsr1dfl1drg62wwycc23n9w0qczmqz7ylpgb6k8i02";
+      rev = "1f331d994d90f1dc93d023508951be437d19813e";
+      sha256 = "0zq18axf849vv90nc5x3g2mr2wc6wphgwj3a8mmkr8q1rk16c9k4";
     };
     meta.homepage = "https://github.com/zk-org/zk-nvim/";
   };
@@ -17109,60 +17289,60 @@ final: prev:
 
   catppuccin-nvim = buildVimPlugin {
     pname = "catppuccin-nvim";
-    version = "2024-05-08";
+    version = "2024-06-14";
     src = fetchFromGitHub {
       owner = "catppuccin";
       repo = "nvim";
-      rev = "d97387aea8264f484bb5d5e74f2182a06c83e0d8";
-      sha256 = "1wybci6cjadjd5z0wkx2jmwb9ir72s4g4qrd9qsjl2qjfiaf26k9";
+      rev = "c0bea773a09e49e123136b099bce9ddc1bf395d2";
+      sha256 = "15ccqv7r382rk8l50ims0a9m5kn4kzgd3bar5427w12skayp0d09";
     };
     meta.homepage = "https://github.com/catppuccin/nvim/";
   };
 
   catppuccin-vim = buildVimPlugin {
     pname = "catppuccin-vim";
-    version = "2023-09-12";
+    version = "2024-05-28";
     src = fetchFromGitHub {
       owner = "catppuccin";
       repo = "vim";
-      rev = "be4725cfc3fb6ed96f706d9d1bd5baa24d2b048c";
-      sha256 = "1mhrch0ck3g1gs79c6mlbj2krhqqk7hp5g0v7ahap71bcfk5yxk7";
+      rev = "43771ad2a9ee18b276fb2c388906b904be361dde";
+      sha256 = "0bj1g4lliayia561gfxv6hk12hig68fq3vwi5n3brxi0li7gjm40";
     };
     meta.homepage = "https://github.com/catppuccin/vim/";
   };
 
   dracula-vim = buildVimPlugin {
     pname = "dracula-vim";
-    version = "2024-04-14";
+    version = "2024-06-13";
     src = fetchFromGitHub {
       owner = "dracula";
       repo = "vim";
-      rev = "28874a1e9d583eb0b1dfebb9191445b822812ea3";
-      sha256 = "1answqiln7pg1f0cpgknjrnnzk4cslhn19vnv2hvji9xm45lvvbv";
+      rev = "ada471d684d4acfe803c4e033d7c3ae5d7252db6";
+      sha256 = "1w1bxg532l1khgb285xs4y6l40bj4dq0kdh6iwfihw6x0mqsrv1j";
     };
     meta.homepage = "https://github.com/dracula/vim/";
   };
 
   embark-vim = buildVimPlugin {
     pname = "embark-vim";
-    version = "2024-02-14";
+    version = "2024-06-17";
     src = fetchFromGitHub {
       owner = "embark-theme";
       repo = "vim";
-      rev = "d0ce0502c83864721c92d0723dde10f38a09c714";
-      sha256 = "01bx2hkxmqi9401n327m9k63m8n2jyqklgl3xkv0w3h0a16wc7h6";
+      rev = "2ab955cb0b5eaf0b00cc5064234064f02822f458";
+      sha256 = "0ncr3kf7s0j2ghr0321vajsfphs4cp710xxrwdhphfxdpzxjlsbw";
     };
     meta.homepage = "https://github.com/embark-theme/vim/";
   };
 
   gbprod-nord = buildVimPlugin {
     pname = "gbprod-nord";
-    version = "2024-04-02";
+    version = "2024-05-21";
     src = fetchFromGitHub {
       owner = "gbprod";
       repo = "nord.nvim";
-      rev = "a6f4979566e44a69ddc80c9df73e960af1ab1840";
-      sha256 = "1fykygiq7izp19ylppvsw5v1i1rmy6x6abc5sjlls6wmcgz5dsvn";
+      rev = "c707723cf0c0f19a409a6190209d51d6ec057943";
+      sha256 = "14d1l8a6g0fflkqs2ks2fgawxl1qqhx36izxvz5yacz1yqz63dnb";
     };
     meta.homepage = "https://github.com/gbprod/nord.nvim/";
   };
@@ -17205,12 +17385,12 @@ final: prev:
 
   nightfly = buildVimPlugin {
     pname = "nightfly";
-    version = "2024-04-20";
+    version = "2024-06-19";
     src = fetchFromGitHub {
       owner = "bluz71";
       repo = "vim-nightfly-colors";
-      rev = "a54ba6131c4e5feb47176efb78b1f93501df1572";
-      sha256 = "1ajnyr7lwhmpjzdwni0hzgd46x64kgdgb3x0qjmvw2q456vs1fap";
+      rev = "b20ee4855bd3cb9fbe0615cf0e27bbb8b04df13e";
+      sha256 = "1wcvnx0s328md2zil1gwxqsl19jin5vmpxvzajjx52yxsrgm0qrm";
     };
     meta.homepage = "https://github.com/bluz71/vim-nightfly-colors/";
   };
@@ -17229,12 +17409,12 @@ final: prev:
 
   nvchad-ui = buildVimPlugin {
     pname = "nvchad-ui";
-    version = "2024-05-08";
+    version = "2024-06-15";
     src = fetchFromGitHub {
       owner = "nvchad";
       repo = "ui";
-      rev = "4f507775f3935a39d994e7a1d3688e30f7fb8713";
-      sha256 = "0lrxhbcdmy2xpwwdxg9dyh954y7xxb8zc75b2lxf5z8lmpxi3ccp";
+      rev = "75a0044e5f4d164d93557fd49863e088f0ecf749";
+      sha256 = "1md8gsibb1224df6qi2vnyxp5ja51vfppdziply33zdlh7qa6ycc";
     };
     meta.homepage = "https://github.com/nvchad/ui/";
   };
@@ -17277,12 +17457,12 @@ final: prev:
 
   rose-pine = buildVimPlugin {
     pname = "rose-pine";
-    version = "2024-05-14";
+    version = "2024-06-09";
     src = fetchFromGitHub {
       owner = "rose-pine";
       repo = "neovim";
-      rev = "b6fe88c3282cf9f117a3e836d761c2d78d02f417";
-      sha256 = "1fwwp7szzz2yp4z5hngqn8ll8765xv0nlhgcb75yj257kz7x5lq1";
+      rev = "8c4660cfe697621bcc61d37b3651ffed94fe7fed";
+      sha256 = "1gdjd9a3y2kgsjg5ivxwmqymibgzhhj1h6lg7hq811jlip3p0p63";
     };
     meta.homepage = "https://github.com/rose-pine/neovim/";
   };
@@ -17335,17 +17515,5 @@ final: prev:
     meta.homepage = "https://github.com/jhradilek/vim-snippets/";
   };
 
-  compiler-nvim = buildVimPlugin {
-    pname = "compiler-nvim";
-    version = "2024-04-26";
-    src = fetchFromGitHub {
-      owner = "Zeioth";
-      repo = "compiler.nvim";
-      rev = "cb14acd32ba9ea09d01bbe3493aefdc59b68965c";
-      sha256 = "sha256-YZyT5B0nk9LxaEA5ntuKPs7yf/Ix7zs3f6N3UOc9AIU=";
-    };
-    meta.homepage = "https://github.com/Zeioth/compiler.nvim/";
-  };
-
 
 }
diff --git a/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix b/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix
index 06bf0213761b5..c4a0aea589992 100644
--- a/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix
+++ b/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix
@@ -5,12 +5,12 @@
 {
   ada = buildGrammar {
     language = "ada";
-    version = "0.0.0+rev=ba0894e";
+    version = "0.0.0+rev=e8e2515";
     src = fetchFromGitHub {
       owner = "briot";
       repo = "tree-sitter-ada";
-      rev = "ba0894efa03beb70780156b91e28c716b7a4764d";
-      hash = "sha256-30yCHcO9LdZ9VKQpObWRfk49M5tC85IZvutXgzGwTjQ=";
+      rev = "e8e2515465cc2d7c444498e68bdb9f1d86767f95";
+      hash = "sha256-qfuVoh3R418F1FMN6CTXNnCaAk5gQj5lI/NoaJgnkW8=";
     };
     meta.homepage = "https://github.com/briot/tree-sitter-ada";
   };
@@ -50,12 +50,12 @@
   };
   arduino = buildGrammar {
     language = "arduino";
-    version = "0.0.0+rev=babb6d4";
+    version = "0.0.0+rev=afb34b2";
     src = fetchFromGitHub {
       owner = "ObserverOfTime";
       repo = "tree-sitter-arduino";
-      rev = "babb6d4da69b359bbb80adbf1fe39c0da9175210";
-      hash = "sha256-nA/4SRlXfm8hMZw/GOQFAxzoPNAzVP0cCnHLc1ZawXU=";
+      rev = "afb34b2c65f507932c5c6ddbf0d5a9ca6a772f2f";
+      hash = "sha256-iccyGSsbNDhvkrT20/bqx9s5tkghl6DONzJz5UEtTJ8=";
     };
     meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-arduino";
   };
@@ -180,14 +180,25 @@
     };
     meta.homepage = "https://gitlab.com/gabmus/tree-sitter-blueprint.git";
   };
+  bp = buildGrammar {
+    language = "bp";
+    version = "0.0.0+rev=2326d70";
+    src = fetchFromGitHub {
+      owner = "ambroisie";
+      repo = "tree-sitter-bp";
+      rev = "2326d709fb9cf73cf124fdbc803c267f851721a4";
+      hash = "sha256-h9T8tfS2K85N9NLwYj6tu2MHPj4YyG/UBYoezfWuEyI=";
+    };
+    meta.homepage = "https://github.com/ambroisie/tree-sitter-bp";
+  };
   c = buildGrammar {
     language = "c";
-    version = "0.0.0+rev=82fb86a";
+    version = "0.0.0+rev=deca017";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-c";
-      rev = "82fb86aa544843bd17a9f0f3dc16edf645a34349";
-      hash = "sha256-wiCgRSrJodNq7WVQTIDsQ6K/ZrgnSFdGG9kDegu6zGs=";
+      rev = "deca017a554045b4c203e7ddff39ae64ff05e071";
+      hash = "sha256-uvvARjD4729GO8vpmrhAzheEQ3oz7LYmF8awdyS2/Rw=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-c";
   };
@@ -237,23 +248,23 @@
   };
   clojure = buildGrammar {
     language = "clojure";
-    version = "0.0.0+rev=3a1ace9";
+    version = "0.0.0+rev=f4236d4";
     src = fetchFromGitHub {
       owner = "sogaiu";
       repo = "tree-sitter-clojure";
-      rev = "3a1ace906c151dd631cf6f149b5083f2b60e6a9e";
-      hash = "sha256-pLOCUReklkRt9t5kalDrOAlE9U7a2O8sXaZFjYhagcg=";
+      rev = "f4236d4da8aa92bc105d9c118746474c608e6af7";
+      hash = "sha256-UlK6D/xnuPFL/Cu5W7hBMQ/zbodFwrS1CeJDjVpZFpo=";
     };
     meta.homepage = "https://github.com/sogaiu/tree-sitter-clojure";
   };
   cmake = buildGrammar {
     language = "cmake";
-    version = "0.0.0+rev=20ffd6d";
+    version = "0.0.0+rev=4864abb";
     src = fetchFromGitHub {
       owner = "uyha";
       repo = "tree-sitter-cmake";
-      rev = "20ffd6d3b4da1acdbf2d08204b2130a5b2f7c4b3";
-      hash = "sha256-Cnv6u6hCcuF9hrFafD3laeZbOSJ0u415vGWmLJeNdJo=";
+      rev = "4864abb95a1f6e54d6b362677beef9fb674b41e9";
+      hash = "sha256-asJ4BDARnQdc+d0H+DDpW+/gDGuEIbc8PVL0B3KrA0Y=";
     };
     meta.homepage = "https://github.com/uyha/tree-sitter-cmake";
   };
@@ -292,12 +303,12 @@
   };
   corn = buildGrammar {
     language = "corn";
-    version = "0.0.0+rev=604d73c";
+    version = "0.0.0+rev=4646547";
     src = fetchFromGitHub {
       owner = "jakestanger";
       repo = "tree-sitter-corn";
-      rev = "604d73c38d4c28ca68e9e441ffd405d68cb63051";
-      hash = "sha256-ewpLp+se6XTY8aRoz247YlouS1p/kaS7CqVFu412C+Q=";
+      rev = "464654742cbfd3a3de560aba120998f1d5dfa844";
+      hash = "sha256-fI7S+TkI2ofQ/Hal4CJ2HAaeQrjOju1rgJvyc6P3t9k=";
     };
     meta.homepage = "https://github.com/jakestanger/tree-sitter-corn";
   };
@@ -314,12 +325,12 @@
   };
   cpp = buildGrammar {
     language = "cpp";
-    version = "0.0.0+rev=2369fa9";
+    version = "0.0.0+rev=7ce8946";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-cpp";
-      rev = "2369fa991eba294e9238e28280ffcd58132f94bc";
-      hash = "sha256-reDeaGf7jDaNzPW7ivvq3n9Tl/SuZYs/O/d93whHa7U=";
+      rev = "7ce8946cae4bb25adebe5b50394f702beb007026";
+      hash = "sha256-haU0fXNwYh3YaP8VMY1krRHxrGvNkDV4hMcxp5z9TVA=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-cpp";
   };
@@ -348,12 +359,12 @@
   };
   cuda = buildGrammar {
     language = "cuda";
-    version = "0.0.0+rev=e7878a9";
+    version = "0.0.0+rev=1f188ef";
     src = fetchFromGitHub {
       owner = "theHamsta";
       repo = "tree-sitter-cuda";
-      rev = "e7878a9cf4157e9d6c8013ff5605c9f26d62894d";
-      hash = "sha256-1UCYWY6DvanLdFeS0ALHG3eJT/Rk/muZTkFm3YwF5II=";
+      rev = "1f188eff83b562ffae36d13e1b804ec6f3b9f1d9";
+      hash = "sha256-AZXk29yM21KOTVWWUKkr1+sr7gv7ViD6kDjwrJZoCzg=";
     };
     meta.homepage = "https://github.com/theHamsta/tree-sitter-cuda";
   };
@@ -436,12 +447,12 @@
   };
   djot = buildGrammar {
     language = "djot";
-    version = "0.0.0+rev=0e9a836";
+    version = "0.0.0+rev=87bf828";
     src = fetchFromGitHub {
       owner = "treeman";
       repo = "tree-sitter-djot";
-      rev = "0e9a836ec47612ade15645fb1680adb549894a6c";
-      hash = "sha256-PdToOLDgEYKVCYT7jmCBNWtuQ0XLgOYF1/PycSxP3XU=";
+      rev = "87bf82874c86dcf563f5521069d603ed50e5f0cc";
+      hash = "sha256-abAEVbS9hqc1uHx6NxXRBA2SLrCL3gBBPLgAK9Tz3G4=";
     };
     meta.homepage = "https://github.com/treeman/tree-sitter-djot";
   };
@@ -469,12 +480,12 @@
   };
   doxygen = buildGrammar {
     language = "doxygen";
-    version = "0.0.0+rev=4a30eba";
+    version = "0.0.0+rev=ccd998f";
     src = fetchFromGitHub {
       owner = "amaanq";
       repo = "tree-sitter-doxygen";
-      rev = "4a30eba5d047d6a8c5b005202b4848c0b33d76ca";
-      hash = "sha256-yR2JtWYdy84z38Idx84qIuUPoBMiSj/7TVw0J1+g/U8=";
+      rev = "ccd998f378c3f9345ea4eeb223f56d7b84d16687";
+      hash = "sha256-Yh6FaRvWmeqnSnBgOojWbs1wJaeEoNJlvSEqgzjGh7o=";
     };
     meta.homepage = "https://github.com/amaanq/tree-sitter-doxygen";
   };
@@ -492,12 +503,12 @@
   };
   earthfile = buildGrammar {
     language = "earthfile";
-    version = "0.0.0+rev=cc99a3f";
+    version = "0.0.0+rev=b5bdcb5";
     src = fetchFromGitHub {
       owner = "glehmann";
       repo = "tree-sitter-earthfile";
-      rev = "cc99a3f5e4281b63fdd63dca4750e808fd52628f";
-      hash = "sha256-wOKNkNoNw2Stv+8zhVAX2No8Y060Kri/j5iytJvviUc=";
+      rev = "b5bdcb5813ce0e582fbd8e03eb42c80d3cc8984e";
+      hash = "sha256-fhHu8kniYOLhrlHLgfP1NHtBxURrM7GNn51zmPNcTIU=";
     };
     meta.homepage = "https://github.com/glehmann/tree-sitter-earthfile";
   };
@@ -515,12 +526,12 @@
   };
   eds = buildGrammar {
     language = "eds";
-    version = "0.0.0+rev=fde6202";
+    version = "0.0.0+rev=0ad62cb";
     src = fetchFromGitHub {
       owner = "uyha";
       repo = "tree-sitter-eds";
-      rev = "fde62029d4c715562230070b9af51a9500c2ce10";
-      hash = "sha256-E+VDOAnmbyUXzwhu+j2DXXBpuiI/d9gZdGsikAboLP4=";
+      rev = "0ad62cb635c2f4353359a88dec9e3a57bbf9f66d";
+      hash = "sha256-dbREFx/P6PMHSwoAaEBKSqRolPTFrLDBhMfZKPsvxbc=";
     };
     meta.homepage = "https://github.com/uyha/tree-sitter-eds";
   };
@@ -537,12 +548,12 @@
   };
   elixir = buildGrammar {
     language = "elixir";
-    version = "0.0.0+rev=de690fa";
+    version = "0.0.0+rev=c7ae8b7";
     src = fetchFromGitHub {
       owner = "elixir-lang";
       repo = "tree-sitter-elixir";
-      rev = "de690fa8a028f122af46d9d2685679fe5f2d7d60";
-      hash = "sha256-bvbOWF+Fy3IhOPhkW6pB/3LcLXnPzqVQb8GOCCQWzw0=";
+      rev = "c7ae8b77e2749826dcf23df6514f08fdd68c66a3";
+      hash = "sha256-1B3jVMJs1WNU3K7t42mv9Ab85KEaa8vn8zURksNts+E=";
     };
     meta.homepage = "https://github.com/elixir-lang/tree-sitter-elixir";
   };
@@ -592,12 +603,12 @@
   };
   erlang = buildGrammar {
     language = "erlang";
-    version = "0.0.0+rev=868306b";
+    version = "0.0.0+rev=b8e44bc";
     src = fetchFromGitHub {
       owner = "WhatsApp";
       repo = "tree-sitter-erlang";
-      rev = "868306b033f5163658e8777940da68d61afad5cb";
-      hash = "sha256-9QRYYKSy7riZfUVSnYzTIGH0tznU90Q1nYwe7DDr284=";
+      rev = "b8e44bc0a3b2ce6bceea47c0b1c0f303a6b322b8";
+      hash = "sha256-9sfucj3jx5KVt/okHyCZLIJUbYFHPO4Ld/IWWjVXKDA=";
     };
     meta.homepage = "https://github.com/WhatsApp/tree-sitter-erlang";
   };
@@ -625,12 +636,12 @@
   };
   fennel = buildGrammar {
     language = "fennel";
-    version = "0.0.0+rev=8ad1770";
+    version = "0.0.0+rev=cfbfa47";
     src = fetchFromGitHub {
       owner = "alexmozaidze";
       repo = "tree-sitter-fennel";
-      rev = "8ad17704b3c2469155947d4e8fcb618cf1328459";
-      hash = "sha256-7a2spHMApW+yc/wrpVwWl9ykPAdC4QTOeMIs1jxajsU=";
+      rev = "cfbfa478dc2dbef267ee94ae4323d9c886f45e94";
+      hash = "sha256-0LusII7BPGFQTyEkxZi6h9HUDF0eHvGwA4fiQE2h3YQ=";
     };
     meta.homepage = "https://github.com/alexmozaidze/tree-sitter-fennel";
   };
@@ -812,12 +823,12 @@
   };
   gleam = buildGrammar {
     language = "gleam";
-    version = "0.0.0+rev=8432ffe";
+    version = "0.0.0+rev=02a17bf";
     src = fetchFromGitHub {
       owner = "gleam-lang";
       repo = "tree-sitter-gleam";
-      rev = "8432ffe32ccd360534837256747beb5b1c82fca1";
-      hash = "sha256-PO01z8vyzDT4ZGPxgZl9PPsp/gktT2TaCwutMy87i8E=";
+      rev = "02a17bf9d0553406268cdbf466d57808ae712bf3";
+      hash = "sha256-rZPe7rrnPa4QGnFUjwoaj/7HJzNDSigc7w4gJEFXZD4=";
     };
     meta.homepage = "https://github.com/gleam-lang/tree-sitter-gleam";
   };
@@ -834,12 +845,12 @@
   };
   glsl = buildGrammar {
     language = "glsl";
-    version = "0.0.0+rev=8c9fb41";
+    version = "0.0.0+rev=7f91bf3";
     src = fetchFromGitHub {
       owner = "theHamsta";
       repo = "tree-sitter-glsl";
-      rev = "8c9fb41836dc202bbbcf0e2369f256055786dedb";
-      hash = "sha256-aUM0gisdoV3A9lWSjn21wXIBI8ZrKI/5IffAaf917e4=";
+      rev = "7f91bf34cadc06a96efc475df501ffca4dda9410";
+      hash = "sha256-M676GDkyUGosih5R77duEy4jUrIz3bGwD+G6n68gJX0=";
     };
     meta.homepage = "https://github.com/theHamsta/tree-sitter-glsl";
   };
@@ -911,12 +922,12 @@
   };
   gotmpl = buildGrammar {
     language = "gotmpl";
-    version = "0.0.0+rev=17144a7";
+    version = "0.0.0+rev=9d3f6e5";
     src = fetchFromGitHub {
       owner = "ngalaiko";
       repo = "tree-sitter-go-template";
-      rev = "17144a77be0acdecebd9d557398883569fed41de";
-      hash = "sha256-aB8MTTKzxV9+66goNfFRI39wzuBiGECAc8HvAQzIv80=";
+      rev = "9d3f6e526dd074b9edae9070b7bb778f00e87a5b";
+      hash = "sha256-ndd85YVO2brK7JVBFOg6bbKV66qVPjo4DVi7GaT/eZA=";
     };
     meta.homepage = "https://github.com/ngalaiko/tree-sitter-go-template";
   };
@@ -1021,12 +1032,12 @@
   };
   hcl = buildGrammar {
     language = "hcl";
-    version = "0.0.0+rev=e936d3f";
+    version = "0.0.0+rev=422cbe1";
     src = fetchFromGitHub {
       owner = "MichaHoffmann";
       repo = "tree-sitter-hcl";
-      rev = "e936d3fef8bac884661472dce71ad82284761eb1";
-      hash = "sha256-lcvs4auZrMb1f9ocrAnLVxX8JnvrPT18LsJBqoNG9Oo=";
+      rev = "422cbe1d93a8ae3847744b664041fc76876babcd";
+      hash = "sha256-PrA/F8IIJDzr2HjX9NToApzbM7nO+NesMcKhOQyOyNU=";
     };
     meta.homepage = "https://github.com/MichaHoffmann/tree-sitter-hcl";
   };
@@ -1043,12 +1054,12 @@
   };
   helm = buildGrammar {
     language = "helm";
-    version = "0.0.0+rev=17144a7";
+    version = "0.0.0+rev=9d3f6e5";
     src = fetchFromGitHub {
       owner = "ngalaiko";
       repo = "tree-sitter-go-template";
-      rev = "17144a77be0acdecebd9d557398883569fed41de";
-      hash = "sha256-aB8MTTKzxV9+66goNfFRI39wzuBiGECAc8HvAQzIv80=";
+      rev = "9d3f6e526dd074b9edae9070b7bb778f00e87a5b";
+      hash = "sha256-ndd85YVO2brK7JVBFOg6bbKV66qVPjo4DVi7GaT/eZA=";
     };
     location = "dialects/helm";
     meta.homepage = "https://github.com/ngalaiko/tree-sitter-go-template";
@@ -1066,12 +1077,12 @@
   };
   hlsl = buildGrammar {
     language = "hlsl";
-    version = "0.0.0+rev=feea0ff";
+    version = "0.0.0+rev=5e1225a";
     src = fetchFromGitHub {
       owner = "theHamsta";
       repo = "tree-sitter-hlsl";
-      rev = "feea0ff6eccda8be958c133985dca8977db3d887";
-      hash = "sha256-VIrNt9pjNtwVbQKZGPota5blxbPGGEhdiRYtPNU/XtA=";
+      rev = "5e1225a30712ca0a9040509806c7ba274a1bbcde";
+      hash = "sha256-gBByrpw5iCGoOy1zrg0emuAd1Vd8KOKFeJLZOCWh9qU=";
     };
     meta.homepage = "https://github.com/theHamsta/tree-sitter-hlsl";
   };
@@ -1154,45 +1165,45 @@
   };
   hyprlang = buildGrammar {
     language = "hyprlang";
-    version = "0.0.0+rev=e5da7d0";
+    version = "0.0.0+rev=c9012d6";
     src = fetchFromGitHub {
       owner = "luckasRanarison";
       repo = "tree-sitter-hyprlang";
-      rev = "e5da7d0aa44403153e0394d87d9edea4e5bd6609";
-      hash = "sha256-jKp880I0XkApB3aFINAPfwn1txuMwalh4NrLUHan3H4=";
+      rev = "c9012d6dcaaa939f17c21e1fdb17b013d139e6b9";
+      hash = "sha256-yI/3DVX2SgvU+mP1KVe7OA8OtqXbaZG9/mTUQjUHCgk=";
     };
     meta.homepage = "https://github.com/luckasRanarison/tree-sitter-hyprlang";
   };
   idl = buildGrammar {
     language = "idl";
-    version = "0.0.0+rev=006a526";
+    version = "0.0.0+rev=9f56001";
     src = fetchFromGitHub {
       owner = "cathaysia";
       repo = "tree-sitter-idl";
-      rev = "006a5266d771cab57da58a6ade483ebd3075638d";
-      hash = "sha256-NV7VojLenoq7RDyN1HMuyZFjcQhZeC6OtRz/y4bAe58=";
+      rev = "9f56001f8ed29b0ea9fa4f02813f3e83ab0a2aaa";
+      hash = "sha256-L5O9pep1No4oWSM7nA71RYY2X688+rm/2pTETP7ifOA=";
     };
     meta.homepage = "https://github.com/cathaysia/tree-sitter-idl";
   };
   ini = buildGrammar {
     language = "ini";
-    version = "0.0.0+rev=bcb84a2";
+    version = "0.0.0+rev=87176e5";
     src = fetchFromGitHub {
       owner = "justinmk";
       repo = "tree-sitter-ini";
-      rev = "bcb84a2d4bcd6f55b911c42deade75c8f90cb0c5";
-      hash = "sha256-dYPeVTNWO4apY5dsjsKViavU7YtLeGTp6BzEemXhsEU=";
+      rev = "87176e524f0a98f5be75fa44f4f0ff5c6eac069c";
+      hash = "sha256-IyHrIxcmuzs60zUiJv4E3nSkhSkgbcaLDUdeDx5mlHk=";
     };
     meta.homepage = "https://github.com/justinmk/tree-sitter-ini";
   };
   inko = buildGrammar {
     language = "inko";
-    version = "0.0.0+rev=4cef9aa";
+    version = "0.0.0+rev=234c87b";
     src = fetchFromGitHub {
       owner = "inko-lang";
       repo = "tree-sitter-inko";
-      rev = "4cef9aa4980606311b906b2f2b8c6cf791c60396";
-      hash = "sha256-NnZ5sSNwVVsx1I8eacvTl+1Vn/PL3NsrlFNPHQMUP6I=";
+      rev = "234c87be1dac20f766ddf6f486a7bde2a4bc5594";
+      hash = "sha256-7BADt6NjH9chOzCDtJSLjBZaRqeLvOH006q0hI4pZaI=";
     };
     meta.homepage = "https://github.com/inko-lang/tree-sitter-inko";
   };
@@ -1209,12 +1220,12 @@
   };
   janet_simple = buildGrammar {
     language = "janet_simple";
-    version = "0.0.0+rev=51271e2";
+    version = "0.0.0+rev=2a05cab";
     src = fetchFromGitHub {
       owner = "sogaiu";
       repo = "tree-sitter-janet-simple";
-      rev = "51271e260346878e1a1aa6c506ce6a797b7c25e2";
-      hash = "sha256-QXH/s0mB9kDKuYYB+Pa+nPjArt4pjcsLXCHP4I3nGwU=";
+      rev = "2a05cab838dfec52daa76f10920917d2e69a85bc";
+      hash = "sha256-NOnm40FSzTX6Pf4NchH0hYcTwyxX/usEVKxz8KsIlk4=";
     };
     meta.homepage = "https://github.com/sogaiu/tree-sitter-janet-simple";
   };
@@ -1231,12 +1242,12 @@
   };
   javascript = buildGrammar {
     language = "javascript";
-    version = "0.0.0+rev=e88537c";
+    version = "0.0.0+rev=391a8fc";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-javascript";
-      rev = "e88537c2703546f3f0887dd3f16898e1749cdba5";
-      hash = "sha256-/poR9qMfjWKJW6aw0s6VjNh7fkf/HvUJNZIeZ1YEwVM=";
+      rev = "391a8fcc48a11f63bf18ec9885f6f069e760949a";
+      hash = "sha256-GOIhkoiiUhkTpUhDm/sfLtsNhOrVoGx2uiXEteruT2g=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-javascript";
   };
@@ -1308,12 +1319,12 @@
   };
   julia = buildGrammar {
     language = "julia";
-    version = "0.0.0+rev=acd5ca1";
+    version = "0.0.0+rev=f1baa5f";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-julia";
-      rev = "acd5ca12cc278df7960629c2429a096c7ac4bbea";
-      hash = "sha256-1dOUMS4nlPaG5WxpCONXclVgq4F/Ti4JQK81KOnxvIk=";
+      rev = "f1baa5f8e271109d01cc8ff7473c11df2d8a9aee";
+      hash = "sha256-a0yLJMnXllHPij8fBjwqYgKRc6GxHHCQjSbPOKdLh9I=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-julia";
   };
@@ -1341,12 +1352,12 @@
   };
   kdl = buildGrammar {
     language = "kdl";
-    version = "0.0.0+rev=49fb89a";
+    version = "0.0.0+rev=b37e3d5";
     src = fetchFromGitHub {
       owner = "amaanq";
       repo = "tree-sitter-kdl";
-      rev = "49fb89a854d93b58a65a19724ac307195ca11941";
-      hash = "sha256-U8N6aaTyYT6zaOKJ8S+3dMjS4ngxc9Yo7g4OFi03RR4=";
+      rev = "b37e3d58e5c5cf8d739b315d6114e02d42e66664";
+      hash = "sha256-irx8aMEdZG2WcQVE2c7ahwLjqEoUAOOjvhDDk69a6lE=";
     };
     meta.homepage = "https://github.com/amaanq/tree-sitter-kdl";
   };
@@ -1363,12 +1374,12 @@
   };
   koto = buildGrammar {
     language = "koto";
-    version = "0.0.0+rev=919440e";
+    version = "0.0.0+rev=d410987";
     src = fetchFromGitHub {
       owner = "koto-lang";
       repo = "tree-sitter-koto";
-      rev = "919440e1376109bab4edac52594c17c02ae0be5a";
-      hash = "sha256-R3p0X741yOBAC6NTB46PTkh41NLmaVUvQPLBG1+PG+Y=";
+      rev = "d4109879ba1387d19095269a7473bd7d274ab848";
+      hash = "sha256-PKbxUSlLHBQBhOzQpaGpP24zmfxjRD9rO5I4OIeeL4g=";
     };
     meta.homepage = "https://github.com/koto-lang/tree-sitter-koto";
   };
@@ -1441,23 +1452,23 @@
   };
   liquid = buildGrammar {
     language = "liquid";
-    version = "0.0.0+rev=2933698";
+    version = "0.0.0+rev=0419ac4";
     src = fetchFromGitHub {
       owner = "hankthetank27";
       repo = "tree-sitter-liquid";
-      rev = "293369818da219d97327908aab33707b04b63fd9";
-      hash = "sha256-RmpVKvQfk4IQuE3KOTL3nbBS7LSpBlvMpl5JDAAKb5Q=";
+      rev = "0419ac4868585320eee8615c90b864a1b04ef433";
+      hash = "sha256-1FPDsQSPM86NvMrmxIOVnIC65bUOFtKEwRuAtMDbw6M=";
     };
     meta.homepage = "https://github.com/hankthetank27/tree-sitter-liquid";
   };
   liquidsoap = buildGrammar {
     language = "liquidsoap";
-    version = "0.0.0+rev=a9b8012";
+    version = "0.0.0+rev=14feafa";
     src = fetchFromGitHub {
       owner = "savonet";
       repo = "tree-sitter-liquidsoap";
-      rev = "a9b8012366eab7d0c28bbda5f75a847be931008f";
-      hash = "sha256-n8kT4bxRSp3EOJwsm0S4kKYq6Iln1vvvho/di4N0lRs=";
+      rev = "14feafa91630afb1ab9988cf9b738b7ea29f3f89";
+      hash = "sha256-FERYGF9D163b6S/YBwHwkrUM2qRkEKOViSDRa61OjtQ=";
     };
     meta.homepage = "https://github.com/savonet/tree-sitter-liquidsoap";
   };
@@ -1496,23 +1507,23 @@
   };
   luap = buildGrammar {
     language = "luap";
-    version = "0.0.0+rev=31461ae";
+    version = "0.0.0+rev=c134aae";
     src = fetchFromGitHub {
       owner = "amaanq";
       repo = "tree-sitter-luap";
-      rev = "31461ae9bd0866cb5117cfe5de71189854fd0f3e";
-      hash = "sha256-SW2ubK5317GUc1dQLkhoaisMgctLOwr6TPVYSQh02vE=";
+      rev = "c134aaec6acf4fa95fe4aa0dc9aba3eacdbbe55a";
+      hash = "sha256-4mMUHBsdK4U4uhh8GpKlG3p/s3ZCcLX1qATPyTD4Xhg=";
     };
     meta.homepage = "https://github.com/amaanq/tree-sitter-luap";
   };
   luau = buildGrammar {
     language = "luau";
-    version = "0.0.0+rev=5b088fa";
+    version = "0.0.0+rev=5aa9b88";
     src = fetchFromGitHub {
       owner = "amaanq";
       repo = "tree-sitter-luau";
-      rev = "5b088fac748f2666a315cafd1638a214388eb23e";
-      hash = "sha256-m0xHQu9nxjyrCMza9Aw/kRK8Rlhtc2DRbtyyFtMZkJU=";
+      rev = "5aa9b88a8e3327276ec6e72de997f04ac80b1ae4";
+      hash = "sha256-7cxnELiCmLOPecca3U2CN1F4CUSbL8upxAn0PxwU6dM=";
     };
     meta.homepage = "https://github.com/amaanq/tree-sitter-luau";
   };
@@ -1608,12 +1619,12 @@
   };
   mlir = buildGrammar {
     language = "mlir";
-    version = "0.0.0+rev=a708e9b";
+    version = "0.0.0+rev=00c32d8";
     src = fetchFromGitHub {
       owner = "artagnon";
       repo = "tree-sitter-mlir";
-      rev = "a708e9b3f3d7f2fc85ac3fd1d4317c51b101eab0";
-      hash = "sha256-ITimvcYGqPUrqg3Z9EyfhEznzME2TKBOJpr0Fbc3OoE=";
+      rev = "00c32d8562dc957b187da110a3443307962b8da8";
+      hash = "sha256-cyd9n1ydIEoBL+hnRiCSEC2S9H1hrWZlMCxVbxWyazI=";
     };
     generate = true;
     meta.homepage = "https://github.com/artagnon/tree-sitter-mlir";
@@ -1642,12 +1653,12 @@
   };
   nickel = buildGrammar {
     language = "nickel";
-    version = "0.0.0+rev=58baf89";
+    version = "0.0.0+rev=43433d8";
     src = fetchFromGitHub {
       owner = "nickel-lang";
       repo = "tree-sitter-nickel";
-      rev = "58baf89db8fdae54a84bcf22c80ff10ee3f929ed";
-      hash = "sha256-WuY6X1mnXdjiy4joIcY8voK2sqICFf0GvudulZ9lwqg=";
+      rev = "43433d8477b24cd13acaac20a66deda49b7e2547";
+      hash = "sha256-9Ei0uy+eGK9oiH7y2KIhB1E88SRzGnZinqECT3kYTVE=";
     };
     meta.homepage = "https://github.com/nickel-lang/tree-sitter-nickel";
   };
@@ -1777,12 +1788,12 @@
   };
   odin = buildGrammar {
     language = "odin";
-    version = "0.0.0+rev=f25b8c5";
+    version = "0.0.0+rev=d37b8f2";
     src = fetchFromGitHub {
       owner = "amaanq";
       repo = "tree-sitter-odin";
-      rev = "f25b8c5201c1480dc0c8c4155a059a79a5a40719";
-      hash = "sha256-720CY0OKlq1P+9g0VHQ6l0lTBjGy/tYiolL8e2ahd8o=";
+      rev = "d37b8f24f653378b268ec18404e9c14ad355b128";
+      hash = "sha256-QZn+XgVQXEaMZF4XkMfS4bHf/tQIersI8982JQyiXms=";
     };
     meta.homepage = "https://github.com/amaanq/tree-sitter-odin";
   };
@@ -1832,35 +1843,35 @@
   };
   perl = buildGrammar {
     language = "perl";
-    version = "0.0.0+rev=d4ebabd";
+    version = "0.0.0+rev=309cb8d";
     src = fetchFromGitHub {
       owner = "tree-sitter-perl";
       repo = "tree-sitter-perl";
-      rev = "d4ebabd45bcb053fcc7f6688b5c8ed80c7ae7a32";
-      hash = "sha256-0WnI0L6Tuy3FD4XxCZR1HcQyo5uv0VXhK8eqopCAS+A=";
+      rev = "309cb8d33bcfd0a81050b21be08f9eb3f2fe2138";
+      hash = "sha256-eMmU6qkg9ZVjtxaW1tSPhqsPe2WX3/frPfqMxXCziyo=";
     };
     meta.homepage = "https://github.com/tree-sitter-perl/tree-sitter-perl";
   };
   php = buildGrammar {
     language = "php";
-    version = "0.0.0+rev=27afeb0";
+    version = "0.0.0+rev=4f124bc";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-php";
-      rev = "27afeb02e49ff30acd17b67897b1c0114561a38c";
-      hash = "sha256-PnxjmaC9FPhHlhbhDR+VIbzf5K7Pon7V0pLMymvqoKo=";
+      rev = "4f124bc6075e1c3333e80190c1c170933ed72c95";
+      hash = "sha256-qYfcJCcZ2s/z61aPhO/y+v32FnEwf0rBvtvPiQVtBOE=";
     };
     location = "php";
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
   };
   php_only = buildGrammar {
     language = "php_only";
-    version = "0.0.0+rev=27afeb0";
+    version = "0.0.0+rev=4f124bc";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-php";
-      rev = "27afeb02e49ff30acd17b67897b1c0114561a38c";
-      hash = "sha256-PnxjmaC9FPhHlhbhDR+VIbzf5K7Pon7V0pLMymvqoKo=";
+      rev = "4f124bc6075e1c3333e80190c1c170933ed72c95";
+      hash = "sha256-qYfcJCcZ2s/z61aPhO/y+v32FnEwf0rBvtvPiQVtBOE=";
     };
     location = "php_only";
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
@@ -2044,12 +2055,12 @@
   };
   pymanifest = buildGrammar {
     language = "pymanifest";
-    version = "0.0.0+rev=e3b82b7";
+    version = "0.0.0+rev=be06258";
     src = fetchFromGitHub {
       owner = "ObserverOfTime";
       repo = "tree-sitter-pymanifest";
-      rev = "e3b82b78721aee07f676dac8473ae69db51debcf";
-      hash = "sha256-pZCqeSdiYctbFthdb8Olw35CAXQmT7jG2LOO/3NN/8s=";
+      rev = "be062582956165019d3253794b4d712f66dfeaaa";
+      hash = "sha256-Kud/E67Sh9F4nc8nzW5UXFHW5+kGftLyFzwLOKLcpL8=";
     };
     meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-pymanifest";
   };
@@ -2088,23 +2099,23 @@
   };
   qmljs = buildGrammar {
     language = "qmljs";
-    version = "0.0.0+rev=2c57cac";
+    version = "0.0.0+rev=febf48a";
     src = fetchFromGitHub {
       owner = "yuja";
       repo = "tree-sitter-qmljs";
-      rev = "2c57cac27e207425f8df15327884434cb12365a3";
-      hash = "sha256-LFOujMN9HMtDqjq2ZOP0oxydQHFS0wvL6ORBqruGXeM=";
+      rev = "febf48a5b6928600cd8fb2a01254743af550780d";
+      hash = "sha256-bRb5h6gBBxbzhxpCxJK8CsQ5BCtPTuKtuZesE/+mDY0=";
     };
     meta.homepage = "https://github.com/yuja/tree-sitter-qmljs";
   };
   query = buildGrammar {
     language = "query";
-    version = "0.0.0+rev=d25e8d1";
+    version = "0.0.0+rev=f767fb0";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "tree-sitter-query";
-      rev = "d25e8d183f319497b8b22a2a1585975b020da722";
-      hash = "sha256-c4ttg5UXtRlUdtljQwczoBSR/oX+rnj5gUqR8EIYMKQ=";
+      rev = "f767fb0ac5e711b6d44c5e0c8d1f349687a86ce0";
+      hash = "sha256-snr0ze1VCaAf448mHkrB9qbWTMvjSlPdVl2VtesMIHI=";
     };
     meta.homepage = "https://github.com/nvim-treesitter/tree-sitter-query";
   };
@@ -2130,25 +2141,36 @@
     };
     meta.homepage = "https://github.com/6cdh/tree-sitter-racket";
   };
+  ralph = buildGrammar {
+    language = "ralph";
+    version = "0.0.0+rev=48b9d9d";
+    src = fetchFromGitHub {
+      owner = "alephium";
+      repo = "tree-sitter-ralph";
+      rev = "48b9d9d6e2b55ce8f9eb09ceb0d952e4b1cc87a0";
+      hash = "sha256-Yf2vq7h7UrJmdjQbXU8HM0hjUwwRBFlEV1O+ZUyMIuk=";
+    };
+    meta.homepage = "https://github.com/alephium/tree-sitter-ralph";
+  };
   rasi = buildGrammar {
     language = "rasi";
-    version = "0.0.0+rev=43196d9";
+    version = "0.0.0+rev=6c9bbcf";
     src = fetchFromGitHub {
       owner = "Fymyte";
       repo = "tree-sitter-rasi";
-      rev = "43196d934a9a6ab3c7093a8683efd0111bb03db1";
-      hash = "sha256-7zhQ5wGm0FFyuTiBVN2KgvUTw8G6fwUGR8HKJ69kR+c=";
+      rev = "6c9bbcfdf5f0f553d9ebc01750a3aa247a37b8aa";
+      hash = "sha256-sPrIVgGGaBaXeqHNxjcdJ/S2FvxyV6rD9UPKU/tpspw=";
     };
     meta.homepage = "https://github.com/Fymyte/tree-sitter-rasi";
   };
   rbs = buildGrammar {
     language = "rbs";
-    version = "0.0.0+rev=e5e807a";
+    version = "0.0.0+rev=88d8ed4";
     src = fetchFromGitHub {
       owner = "joker1007";
       repo = "tree-sitter-rbs";
-      rev = "e5e807a50fcd104a2d740d354632fc671700a0bf";
-      hash = "sha256-xEh1oHrLPjLT5LSJfOBFgi0nholVr8EFVGlEMPNIxSI=";
+      rev = "88d8ed487b5449ddda2fc0c4fe23b71cba29ca24";
+      hash = "sha256-z7Ls0SXh18bRMX+FpVIzaeeuItyeCTOnGgQ3tDyrtSU=";
     };
     meta.homepage = "https://github.com/joker1007/tree-sitter-rbs";
   };
@@ -2187,23 +2209,23 @@
   };
   rego = buildGrammar {
     language = "rego";
-    version = "0.0.0+rev=9ac75e7";
+    version = "0.0.0+rev=20b5a59";
     src = fetchFromGitHub {
       owner = "FallenAngel97";
       repo = "tree-sitter-rego";
-      rev = "9ac75e71b2d791e0aadeef68098319d86a2a14cf";
-      hash = "sha256-L6n6Z5y9t1ixpy9mktB9HVKy69jigqbIFB2SrSW/yoo=";
+      rev = "20b5a5958c837bc9f74b231022a68a594a313f6d";
+      hash = "sha256-XwlVsOlxYzB0x+T05iuIp7nFAoQkMByKiHXZ0t5QsjI=";
     };
     meta.homepage = "https://github.com/FallenAngel97/tree-sitter-rego";
   };
   requirements = buildGrammar {
     language = "requirements";
-    version = "0.0.0+rev=8666a4d";
+    version = "0.0.0+rev=5ad9b75";
     src = fetchFromGitHub {
       owner = "ObserverOfTime";
       repo = "tree-sitter-requirements";
-      rev = "8666a4dfeb3107144398158bc3dd7a3f59d89ccb";
-      hash = "sha256-M+/I0pn79Juk8LRB6LLRAyA3R5zcm6rIoR4viT9SW0c=";
+      rev = "5ad9b7581b3334f6ad492847d007f2fac6e6e5f2";
+      hash = "sha256-L3PF6B+d+v/pjAQGVwkc7hCKrhbAB7u/BdXOpEum08w=";
     };
     meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-requirements";
   };
@@ -2231,14 +2253,14 @@
   };
   roc = buildGrammar {
     language = "roc";
-    version = "0.0.0+rev=7df2c08";
+    version = "0.0.0+rev=df46a85";
     src = fetchFromGitHub {
-      owner = "nat-418";
+      owner = "faldor20";
       repo = "tree-sitter-roc";
-      rev = "7df2c0892e62efb81a7504d9799d4e0d0443d241";
-      hash = "sha256-8HJH63NcSuqmPviVWO+UE27ydoU7vRXEIXSTjKLSYvk=";
+      rev = "df46a85abda9f948d38f5d4e3684cec49c42fef2";
+      hash = "sha256-4E9ZnMizo+1wnnkYSPNKMkTTyDKRJT+JqtUWoJH45aA=";
     };
-    meta.homepage = "https://github.com/nat-418/tree-sitter-roc";
+    meta.homepage = "https://github.com/faldor20/tree-sitter-roc";
   };
   ron = buildGrammar {
     language = "ron";
@@ -2264,12 +2286,12 @@
   };
   ruby = buildGrammar {
     language = "ruby";
-    version = "0.0.0+rev=788a63c";
+    version = "0.0.0+rev=dc2d7d6";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-ruby";
-      rev = "788a63ca1b7619288980aaafd37d890ee2469421";
-      hash = "sha256-FvLSj0lTNNabneXrDH7/HQq4mcTLvBwhkPW/Pf48JWc=";
+      rev = "dc2d7d6b50f9975bc3c35bbec0ba11b2617b736b";
+      hash = "sha256-HV/hJwftBTCj9WomIcLB6n0LcQRHAzlQsJBNOxu6XJo=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-ruby";
   };
@@ -2331,23 +2353,23 @@
   };
   slang = buildGrammar {
     language = "slang";
-    version = "0.0.0+rev=6858753";
+    version = "0.0.0+rev=865d79e";
     src = fetchFromGitHub {
       owner = "theHamsta";
       repo = "tree-sitter-slang";
-      rev = "68587530d86aaeb1f1cb17fdada795281cdd0556";
-      hash = "sha256-hWMfiwQEd39WKifIM6NhbXnoKI5zPIGxU2GBvfdjQ9s=";
+      rev = "865d79e236c7f0e04276c969453d021d1da4b15f";
+      hash = "sha256-vZ+Av0lSJaSKUVdEGMtAtXwGIUaIUvS5CvWWfOei/30=";
     };
     meta.homepage = "https://github.com/theHamsta/tree-sitter-slang";
   };
   slint = buildGrammar {
     language = "slint";
-    version = "0.0.0+rev=0701312";
+    version = "0.0.0+rev=d82ab8c";
     src = fetchFromGitHub {
       owner = "slint-ui";
       repo = "tree-sitter-slint";
-      rev = "0701312b74b87fe20e61aa662ba41c5815b5d428";
-      hash = "sha256-GwJptJ3AP3i4rVdXi2JmhngbSHCz3fqy+ymwSlx6h94=";
+      rev = "d82ab8c19ea1b60ff570256eaef7d137cc5ecb63";
+      hash = "sha256-NFKh3Z9vU1KImjU4Yd/Bnxq3E8kz8k/w2TzEvAtffnY=";
     };
     meta.homepage = "https://github.com/slint-ui/tree-sitter-slint";
   };
@@ -2375,23 +2397,23 @@
   };
   snakemake = buildGrammar {
     language = "snakemake";
-    version = "0.0.0+rev=ba1b386";
+    version = "0.0.0+rev=5a7b140";
     src = fetchFromGitHub {
       owner = "osthomas";
       repo = "tree-sitter-snakemake";
-      rev = "ba1b3868eaa960b945593404af9a7c2f296d3643";
-      hash = "sha256-7xYevZTRZwhotT2rBigrRT4w5j4TVgyB416a2XWTL+I=";
+      rev = "5a7b14074bca95b25935e865ca8f1efad32317e4";
+      hash = "sha256-mYqftgJOnlWgQZrXaNtFXvjRQgC14PXYyruTVw5J8Zg=";
     };
     meta.homepage = "https://github.com/osthomas/tree-sitter-snakemake";
   };
   solidity = buildGrammar {
     language = "solidity";
-    version = "0.0.0+rev=b5a23ea";
+    version = "0.0.0+rev=ee5a2d2";
     src = fetchFromGitHub {
       owner = "JoranHonig";
       repo = "tree-sitter-solidity";
-      rev = "b5a23ead0f69d38b5c9a630f52f5c129132c16ed";
-      hash = "sha256-xOW5C/Bcx2xg/6MPYulQkolWGwyQ+htRKvTnkFnqzOE=";
+      rev = "ee5a2d2ba30b487c4bbf613d2ef310a454c09c7c";
+      hash = "sha256-q9SFHnxBUDet65WuxxYFS3N8xDHuQz7K2LWED7uSaWA=";
     };
     meta.homepage = "https://github.com/JoranHonig/tree-sitter-solidity";
   };
@@ -2421,12 +2443,12 @@
   };
   sourcepawn = buildGrammar {
     language = "sourcepawn";
-    version = "0.0.0+rev=4c62065";
+    version = "0.0.0+rev=645d093";
     src = fetchFromGitHub {
       owner = "nilshelmig";
       repo = "tree-sitter-sourcepawn";
-      rev = "4c62065c4136873ef42a9efe128380cbe7ae4f64";
-      hash = "sha256-cJDEBX821nJnGQLfZ/Me/PDdX5cQuJYzhrJZOLfl+sk=";
+      rev = "645d093763bcaaf7535edbdf6575a5c978b16491";
+      hash = "sha256-P5l0jaDsPXFenVaoLeeGSp6firHpeNM4/v93eshd8l0=";
     };
     meta.homepage = "https://github.com/nilshelmig/tree-sitter-sourcepawn";
   };
@@ -2443,12 +2465,12 @@
   };
   sql = buildGrammar {
     language = "sql";
-    version = "0.0.0+rev=25f94f9";
+    version = "0.0.0+rev=89fd00d";
     src = fetchFromGitHub {
       owner = "derekstride";
       repo = "tree-sitter-sql";
-      rev = "25f94f998de79bae9df28add9782f9ea6ea0e2b8";
-      hash = "sha256-UmGvjtN0Pi7uH8+Sb6JbvdV60gow7KQCbDRcKo3nMYw=";
+      rev = "89fd00d0aff3bc9985ac37caf362ec4fd9b2ba1d";
+      hash = "sha256-QTKggsvVWhszlcYS/WOPkykUyTDgwV1yVJ7jADA/5SM=";
     };
     meta.homepage = "https://github.com/derekstride/tree-sitter-sql";
   };
@@ -2476,12 +2498,12 @@
   };
   starlark = buildGrammar {
     language = "starlark";
-    version = "0.0.0+rev=b31a616";
+    version = "0.0.0+rev=018d0e0";
     src = fetchFromGitHub {
       owner = "amaanq";
       repo = "tree-sitter-starlark";
-      rev = "b31a616aac5d05f927f3f9dd809789db7805b632";
-      hash = "sha256-AVQNg7Ck2x1+5asFqJHQ3sdNKJrLVeck9fsgNMBU3x8=";
+      rev = "018d0e09d9d0f0dd6740a37682b8ee4512e8b2ac";
+      hash = "sha256-Qp7FvREjO+FP7ovj6UE8JA3Se8W46iGxNrmmSsruOdA=";
     };
     meta.homepage = "https://github.com/amaanq/tree-sitter-starlark";
   };
@@ -2498,12 +2520,12 @@
   };
   styled = buildGrammar {
     language = "styled";
-    version = "0.0.0+rev=c68a457";
+    version = "0.0.0+rev=65835cc";
     src = fetchFromGitHub {
       owner = "mskelton";
       repo = "tree-sitter-styled";
-      rev = "c68a4572e2d6403b6e99066c9a113b43f4a07a27";
-      hash = "sha256-ZOMHyhtlKVOty+0lyUX7aJiwyP9yNN+r0eXVhpu22WQ=";
+      rev = "65835cca33a5f033bcde580ed66cde01c1fabbbe";
+      hash = "sha256-pcvt3ow6rVYCYbcVzIz3FGWpqoVCPX7zuOj3vKpkOfU=";
     };
     meta.homepage = "https://github.com/mskelton/tree-sitter-styled";
   };
@@ -2531,23 +2553,23 @@
   };
   svelte = buildGrammar {
     language = "svelte";
-    version = "0.0.0+rev=2c97326";
+    version = "0.0.0+rev=7218cf6";
     src = fetchFromGitHub {
       owner = "tree-sitter-grammars";
       repo = "tree-sitter-svelte";
-      rev = "2c97326cd96b7c3016c3d249e8dc244c89b4abeb";
-      hash = "sha256-rlfLelXjNLtQ2/UACwxB3QO5l+QYFLsfGnBaxTAtgTE=";
+      rev = "7218cf622b057ae9c530e1f0a7a3ce49806ca55e";
+      hash = "sha256-mS4KxJXXb/EzQB5H+Pj+/SEbCTerGFjKiJah8oAGA8c=";
     };
     meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-svelte";
   };
   swift = buildGrammar {
     language = "swift";
-    version = "0.0.0+rev=c9c669b";
+    version = "0.0.0+rev=d657f98";
     src = fetchFromGitHub {
       owner = "alex-pinkus";
       repo = "tree-sitter-swift";
-      rev = "c9c669b4513479e07a0ff44cf14f72351959ac21";
-      hash = "sha256-OyT7jkGTuNG7eQrQvZRI49ipu+MMXTOz/1O7r42MaOk=";
+      rev = "d657f98dd6bbc34cb48438c9e5956f15a6d89f1d";
+      hash = "sha256-KE+qjTP3UWKvcLJPYIJmEGeKBWAdpCzgW4/vIccueng=";
     };
     generate = true;
     meta.homepage = "https://github.com/alex-pinkus/tree-sitter-swift";
@@ -2620,35 +2642,35 @@
   };
   teal = buildGrammar {
     language = "teal";
-    version = "0.0.0+rev=33482c9";
+    version = "0.0.0+rev=19b02da";
     src = fetchFromGitHub {
       owner = "euclidianAce";
       repo = "tree-sitter-teal";
-      rev = "33482c92a0dfa694491d34e167a1d2f52b0dccb1";
-      hash = "sha256-6T9hn+Tvz8AYMsAu2J8vt6WkRQRrdGwGJcw3c85W14I=";
+      rev = "19b02da829d1721a521bf7b802eb80a50bd53aab";
+      hash = "sha256-xIws9Q8AsaIowv6nc01ZpF87Dy8rL78EoZgXuBmg6Kg=";
     };
     generate = true;
     meta.homepage = "https://github.com/euclidianAce/tree-sitter-teal";
   };
   templ = buildGrammar {
     language = "templ";
-    version = "0.0.0+rev=d631f60";
+    version = "0.0.0+rev=cf84ea5";
     src = fetchFromGitHub {
       owner = "vrischmann";
       repo = "tree-sitter-templ";
-      rev = "d631f60287c0904770bc41aa865e249594b52422";
-      hash = "sha256-rANNbNlybga+IGNfclMGX0On48sQ3WTWvw3bnhxKsZk=";
+      rev = "cf84ea53e2e2531f23009d676ac206090c1e2392";
+      hash = "sha256-CQ11t4beqkjhtZktrawuavgQPSFzbwJrU/aSbPsqBPA=";
     };
     meta.homepage = "https://github.com/vrischmann/tree-sitter-templ";
   };
   terraform = buildGrammar {
     language = "terraform";
-    version = "0.0.0+rev=e936d3f";
+    version = "0.0.0+rev=422cbe1";
     src = fetchFromGitHub {
       owner = "MichaHoffmann";
       repo = "tree-sitter-hcl";
-      rev = "e936d3fef8bac884661472dce71ad82284761eb1";
-      hash = "sha256-lcvs4auZrMb1f9ocrAnLVxX8JnvrPT18LsJBqoNG9Oo=";
+      rev = "422cbe1d93a8ae3847744b664041fc76876babcd";
+      hash = "sha256-PrA/F8IIJDzr2HjX9NToApzbM7nO+NesMcKhOQyOyNU=";
     };
     location = "dialects/terraform";
     meta.homepage = "https://github.com/MichaHoffmann/tree-sitter-hcl";
@@ -2688,12 +2710,12 @@
   };
   tlaplus = buildGrammar {
     language = "tlaplus";
-    version = "0.0.0+rev=ef18145";
+    version = "0.0.0+rev=200f9da";
     src = fetchFromGitHub {
       owner = "tlaplus-community";
       repo = "tree-sitter-tlaplus";
-      rev = "ef18145e7f985f592ad41b04004b24a590f58b71";
-      hash = "sha256-y/AtFMj4aKwjiahYWk63U9BEMpnq7LUQDnPrXsun3kI=";
+      rev = "200f9dab6b23f3b9bb8f67fc811221517f56c373";
+      hash = "sha256-oIyZ+x0bRnxVAQGiuPgFXjHwZ/MSdC9Ge52cG3oYS3E=";
     };
     meta.homepage = "https://github.com/tlaplus-community/tree-sitter-tlaplus";
   };
@@ -2744,12 +2766,12 @@
   };
   tsx = buildGrammar {
     language = "tsx";
-    version = "0.0.0+rev=4ad3010";
+    version = "0.0.0+rev=4f3eb66";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-typescript";
-      rev = "4ad3010c91d700026d036b5230e2d99ba94ae8a4";
-      hash = "sha256-9GCo/xjP6J/tEimx4ce2Qd7XhhbSuWZoTVrysac7BOw=";
+      rev = "4f3eb6655a1cd1a1f87ef10201f8e22886dcd76e";
+      hash = "sha256-f/xk4MdGVvkZv0642aOwA9UFZSb0GvoLu+jgXUp/bhw=";
     };
     location = "tsx";
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-typescript";
@@ -2767,35 +2789,35 @@
   };
   twig = buildGrammar {
     language = "twig";
-    version = "0.0.0+rev=eaf80e6";
+    version = "0.0.0+rev=085648e";
     src = fetchFromGitHub {
       owner = "gbprod";
       repo = "tree-sitter-twig";
-      rev = "eaf80e6af969e25993576477a9dbdba3e48c1305";
-      hash = "sha256-fp7HcdJEFxi/zBFSrM86THwBMpqFwAGugcTVbPk3bd4=";
+      rev = "085648e01d1422163a1702a44e72303b4e2a0bd1";
+      hash = "sha256-87jFYAAnblTeEdlXqTjyiiNee/OgasPam1b2xyKQIHY=";
     };
     meta.homepage = "https://github.com/gbprod/tree-sitter-twig";
   };
   typescript = buildGrammar {
     language = "typescript";
-    version = "0.0.0+rev=4ad3010";
+    version = "0.0.0+rev=4f3eb66";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-typescript";
-      rev = "4ad3010c91d700026d036b5230e2d99ba94ae8a4";
-      hash = "sha256-9GCo/xjP6J/tEimx4ce2Qd7XhhbSuWZoTVrysac7BOw=";
+      rev = "4f3eb6655a1cd1a1f87ef10201f8e22886dcd76e";
+      hash = "sha256-f/xk4MdGVvkZv0642aOwA9UFZSb0GvoLu+jgXUp/bhw=";
     };
     location = "typescript";
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-typescript";
   };
   typespec = buildGrammar {
     language = "typespec";
-    version = "0.0.0+rev=fd9a83c";
+    version = "0.0.0+rev=28821d0";
     src = fetchFromGitHub {
       owner = "happenslol";
       repo = "tree-sitter-typespec";
-      rev = "fd9a83c6c0aaaff4b1354454b5b9f130f59dd553";
-      hash = "sha256-IFXjqsdgnJotOlb9v4XbcA2+U0txXUsv0RQA+RCilVU=";
+      rev = "28821d0d6da5f0a6b5eb02b9bad953fecafd7248";
+      hash = "sha256-MzUcz6vnsakszAMJtTOajniFC72sCREdrMhS/zDa3Ng=";
     };
     meta.homepage = "https://github.com/happenslol/tree-sitter-typespec";
   };
@@ -2879,12 +2901,12 @@
   };
   v = buildGrammar {
     language = "v";
-    version = "0.0.0+rev=7e11a6f";
+    version = "0.0.0+rev=e91f8a4";
     src = fetchFromGitHub {
       owner = "vlang";
       repo = "v-analyzer";
-      rev = "7e11a6f8f369df935664fadd2f0c99d90fe3226f";
-      hash = "sha256-zCXfYW8NCsdqKKEMkZUudpCEQM4bLePyCGFS0w86DY0=";
+      rev = "e91f8a42de7842f24f4ce600754f2b6651985fd4";
+      hash = "sha256-38nerR7oZBwxXWd08QqEEMSxAZqXRHCRdLbMEbRhcQI=";
     };
     location = "tree_sitter_v";
     meta.homepage = "https://github.com/vlang/v-analyzer";
@@ -2946,12 +2968,12 @@
   };
   vimdoc = buildGrammar {
     language = "vimdoc";
-    version = "0.0.0+rev=b711df7";
+    version = "0.0.0+rev=2249c44";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "tree-sitter-vimdoc";
-      rev = "b711df784dd43d0a8ed8ddbfca0ddcc3239d94b4";
-      hash = "sha256-+QbLL5EC3oNiwd7h7MW/mutHhGPUHhbYTQcu6x6atcI=";
+      rev = "2249c44ecd3f5cf22da3dcccfb74f816ddb29245";
+      hash = "sha256-v+XSWGm2Wdn9/rxNFMqXYACkGn6AvxZdxkClLuKnWGU=";
     };
     meta.homepage = "https://github.com/neovim/tree-sitter-vimdoc";
   };
@@ -2979,12 +3001,12 @@
   };
   wgsl_bevy = buildGrammar {
     language = "wgsl_bevy";
-    version = "0.0.0+rev=59d5fbd";
+    version = "0.0.0+rev=1e12c79";
     src = fetchFromGitHub {
       owner = "theHamsta";
       repo = "tree-sitter-wgsl-bevy";
-      rev = "59d5fbd562c0e17c45312f49485098cce467f5ac";
-      hash = "sha256-4Df7UEHjoIQv4pSdxLlw9c1k0BwnVNRbZ8x/Ky0Q4DE=";
+      rev = "1e12c7925c41bb09818d86e30cd78644fde7d31a";
+      hash = "sha256-7pntsp8mqXyQK+81FefZv32GNlJsnOWIhvJ9o6Q4FUQ=";
     };
     meta.homepage = "https://github.com/theHamsta/tree-sitter-wgsl-bevy";
   };
@@ -3068,23 +3090,23 @@
   };
   zathurarc = buildGrammar {
     language = "zathurarc";
-    version = "0.0.0+rev=e9e8de0";
+    version = "0.0.0+rev=6e7c8ed";
     src = fetchFromGitHub {
       owner = "Freed-Wu";
       repo = "tree-sitter-zathurarc";
-      rev = "e9e8de071ab79ed1f6e3365f05fcf890b6d85a2f";
-      hash = "sha256-yQyoqRGLVSs3bcfUrQNJllWcufROgo1M+jS/ba7OIgo=";
+      rev = "6e7c8edfcd6f5f7c12b2fa9ffc6d042f1b6d7068";
+      hash = "sha256-tr9igIwfxXJJZAanRmDAhG3uu1vdT2nfW3Ng3EZ0094=";
     };
     meta.homepage = "https://github.com/Freed-Wu/tree-sitter-zathurarc";
   };
   zig = buildGrammar {
     language = "zig";
-    version = "0.0.0+rev=0d08703";
+    version = "0.0.0+rev=7c5a29b";
     src = fetchFromGitHub {
       owner = "maxxnino";
       repo = "tree-sitter-zig";
-      rev = "0d08703e4c3f426ec61695d7617415fff97029bd";
-      hash = "sha256-a3W7eBUN4V3HD3YPr1+3tpuWQfIQy1Wu8qxCQx0hEnI=";
+      rev = "7c5a29b721d409be8842017351bf007d7e384401";
+      hash = "sha256-UXJCh8GvXzn+sssTrIsLViXD3TiBZhLFABYCKM+fNMQ=";
     };
     meta.homepage = "https://github.com/maxxnino/tree-sitter-zig";
   };
diff --git a/pkgs/applications/editors/vim/plugins/overrides.nix b/pkgs/applications/editors/vim/plugins/overrides.nix
index 37fbd0448208d..2c8147cfce73c 100644
--- a/pkgs/applications/editors/vim/plugins/overrides.nix
+++ b/pkgs/applications/editors/vim/plugins/overrides.nix
@@ -135,7 +135,7 @@
   barbecue-nvim = super.barbecue-nvim.overrideAttrs {
     dependencies = with self; [ nvim-lspconfig nvim-navic nvim-web-devicons ];
     meta = {
-      description = "A VS Code like winbar for Neovim";
+      description = "VS Code like winbar for Neovim";
       homepage = "https://github.com/utilyre/barbecue.nvim";
       license = lib.licenses.mit;
       maintainers = with lib.maintainers; [ lightquantum ];
@@ -215,6 +215,10 @@
     '';
   };
 
+  cmp-ai = super.cmp-ai.overrideAttrs {
+    dependencies = with self; [ nvim-cmp plenary-nvim ];
+  };
+
   cmp-clippy = super.cmp-clippy.overrideAttrs {
     dependencies = with self; [ nvim-cmp plenary-nvim ];
   };
@@ -453,13 +457,17 @@
     dependencies = with self; [ copilot-lua plenary-nvim ];
   };
 
-  copilot-vim = super.copilot-vim.overrideAttrs {
+  copilot-vim = super.copilot-vim.overrideAttrs (old: {
     postInstall = ''
-      substituteInPlace $out/autoload/copilot/agent.vim \
+      substituteInPlace $out/autoload/copilot/client.vim \
         --replace "  let node = get(g:, 'copilot_node_command', ''\'''\')" \
                   "  let node = get(g:, 'copilot_node_command', '${nodejs}/bin/node')"
     '';
-  };
+
+    meta = old.meta // {
+      license = lib.licenses.unfree;
+    };
+  });
 
   coq_nvim = super.coq_nvim.overrideAttrs {
     passthru.python3Dependencies = ps:
@@ -1007,6 +1015,10 @@
     dependencies = [ self.plenary-nvim ];
   };
 
+  neotest-playwright = super.neotest-playwright.overrideAttrs {
+    dependencies = [ self.telescope-nvim ];
+  };
+
   neo-tree-nvim = super.neo-tree-nvim.overrideAttrs {
     dependencies = with self; [ plenary-nvim nui-nvim ];
   };
@@ -1038,6 +1050,13 @@
     nvimRequireCheck = "dapui";
   };
 
+  nvim-genghis = super.nvim-genghis.overrideAttrs {
+    dependencies = [ self.dressing-nvim ];
+
+    doInstallCheck = true;
+    nvimRequireCheck = "genghis";
+  };
+
   nvim-lsputils = super.nvim-lsputils.overrideAttrs {
     dependencies = with self; [ popfix ];
   };
@@ -1089,21 +1108,20 @@
         inherit (old) version src;
         sourceRoot = "${old.src.name}/spectre_oxi";
 
-        cargoHash = "sha256-seBq1zJNzNVfCQckIHq7rHI/Y8MyxP88cee3NO7NYgo=";
-
+        cargoHash = "sha256-ZBlxJjkHb2buvXK6VGP6FMnSFk8RUX7IgHjNofnGDAs=";
 
         preCheck = ''
           mkdir tests/tmp/
         '';
       };
     in
-    (lib.optionalAttrs stdenv.isLinux {
+    {
       dependencies = with self;
         [ plenary-nvim ];
       postInstall = ''
         ln -s ${spectre_oxi}/lib/libspectre_oxi.* $out/lua/spectre_oxi.so
       '';
-    }));
+    });
 
   nvim-teal-maker = super.nvim-teal-maker.overrideAttrs {
     postPatch = ''
@@ -1225,7 +1243,7 @@
         pname = "sg-nvim-rust";
         inherit (old) version src;
 
-        cargoHash = "sha256-iGNLk3ckm90i5m05V/va+hO9RMiOUKL19dkszoUCwlU=";
+        cargoHash = "sha256-dqa5Rd3NeOSqv18F1QdkrWEypJ0bvVwIDwrMOyBVsDM=";
 
         nativeBuildInputs = [ pkg-config ];
 
@@ -1896,7 +1914,7 @@
     '';
 
     meta = with lib; {
-      description = "A code-completion engine for Vim";
+      description = "Code-completion engine for Vim";
       homepage = "https://github.com/Valloric/YouCompleteMe";
       license = licenses.gpl3;
       maintainers = with maintainers; [ marcweber jagajaga ];
diff --git a/pkgs/applications/editors/vim/plugins/patches/vim-sensible/fix-nix-store-path-regex.patch b/pkgs/applications/editors/vim/plugins/patches/vim-sensible/fix-nix-store-path-regex.patch
index 27241632ee8d1..184f06a1a3835 100644
--- a/pkgs/applications/editors/vim/plugins/patches/vim-sensible/fix-nix-store-path-regex.patch
+++ b/pkgs/applications/editors/vim/plugins/patches/vim-sensible/fix-nix-store-path-regex.patch
@@ -1,25 +1,13 @@
-From 07c799a1b170c0e28b385474b511c1034cfcb263 Mon Sep 17 00:00:00 2001
-From: Janik H <janik@aq0.de>
-Date: Sat, 16 Sep 2023 19:45:32 +0200
-Subject: [PATCH] fix nix store path regex
-
----
- plugin/sensible.vim | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
 diff --git a/plugin/sensible.vim b/plugin/sensible.vim
-index 0fc26e0..b3ee6e9 100644
+index c9387ae..a226760 100644
 --- a/plugin/sensible.vim
 +++ b/plugin/sensible.vim
 @@ -26,7 +26,7 @@ function! s:MaySet(option) abort
      silent verbose execute 'setglobal all' a:option . '?'
      redir END
    endif
--  return out !~# " \\(\\~[\\/][^\n]*\\|Lua\\)$"
+-  return out !~# " \\(\\~[\\/]\\|Lua\\)[^\n]*$"
 +  return out !~# "/nix/store/.*" && out !~# " \\(\\~[\\/][^\n]*\\|Lua\\)$"
  endfunction
  
  if s:MaySet('backspace')
--- 
-2.41.0
-
diff --git a/pkgs/applications/editors/vim/plugins/vim-clap/Cargo.lock b/pkgs/applications/editors/vim/plugins/vim-clap/Cargo.lock
index a03a20d495549..85ce295754aa3 100644
--- a/pkgs/applications/editors/vim/plugins/vim-clap/Cargo.lock
+++ b/pkgs/applications/editors/vim/plugins/vim-clap/Cargo.lock
@@ -109,7 +109,7 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
 ]
 
 [[package]]
@@ -126,7 +126,7 @@ checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf"
 dependencies = [
  "async-trait",
  "axum-core",
- "base64 0.21.7",
+ "base64",
  "bytes",
  "futures-util",
  "http 1.1.0",
@@ -216,12 +216,6 @@ dependencies = [
 
 [[package]]
 name = "base64"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
-
-[[package]]
-name = "base64"
 version = "0.21.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
@@ -324,7 +318,7 @@ checksum = "031718ddb8f78aa5def78a09e90defe30151d1f6c672f937af4dd916429ed996"
 dependencies = [
  "semver",
  "serde",
- "toml",
+ "toml 0.5.11",
  "url",
 ]
 
@@ -461,7 +455,7 @@ dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
 ]
 
 [[package]]
@@ -472,7 +466,7 @@ checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
 
 [[package]]
 name = "cli"
-version = "0.1.53"
+version = "0.1.54"
 dependencies = [
  "anyhow",
  "clap",
@@ -509,7 +503,7 @@ dependencies = [
 
 [[package]]
 name = "code_tools"
-version = "0.1.53"
+version = "0.1.54"
 dependencies = [
  "cargo_metadata",
  "maple_config",
@@ -520,7 +514,7 @@ dependencies = [
  "serde",
  "serde_json",
  "tokio",
- "toml",
+ "toml 0.8.12",
  "tracing",
  "which",
 ]
@@ -713,7 +707,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "strsim 0.10.0",
- "syn 2.0.52",
+ "syn",
 ]
 
 [[package]]
@@ -724,7 +718,7 @@ checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
 dependencies = [
  "darling_core",
  "quote",
- "syn 2.0.52",
+ "syn",
 ]
 
 [[package]]
@@ -763,7 +757,7 @@ dependencies = [
 
 [[package]]
 name = "dirs"
-version = "0.1.53"
+version = "0.1.54"
 dependencies = [
  "directories",
 ]
@@ -808,8 +802,8 @@ dependencies = [
  "itertools 0.12.1",
  "maple_config",
  "quote",
- "syn 1.0.109",
- "toml",
+ "syn",
+ "toml 0.8.12",
  "toml_edit",
 ]
 
@@ -867,11 +861,11 @@ dependencies = [
 
 [[package]]
 name = "extracted_fzy"
-version = "0.1.53"
+version = "0.1.54"
 
 [[package]]
 name = "filter"
-version = "0.1.53"
+version = "0.1.54"
 dependencies = [
  "icon",
  "matcher",
@@ -966,7 +960,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
 ]
 
 [[package]]
@@ -1173,7 +1167,7 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "322106e6bd0cba2d5ead589ddb8150a13d7c4217cf80d7c4f682ca994ccc6aa9"
 dependencies = [
- "base64 0.21.7",
+ "base64",
  "bytes",
  "headers-core",
  "http 1.1.0",
@@ -1378,7 +1372,7 @@ dependencies = [
 
 [[package]]
 name = "icon"
-version = "0.1.53"
+version = "0.1.54"
 dependencies = [
  "itertools 0.10.5",
  "pattern",
@@ -1566,7 +1560,18 @@ checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
 dependencies = [
  "bitflags 2.4.2",
  "libc",
- "redox_syscall 0.4.1",
+ "redox_syscall",
+]
+
+[[package]]
+name = "libredox"
+version = "0.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607"
+dependencies = [
+ "bitflags 2.4.2",
+ "libc",
+ "redox_syscall",
 ]
 
 [[package]]
@@ -1669,30 +1674,30 @@ dependencies = [
 
 [[package]]
 name = "maple_config"
-version = "0.1.53"
+version = "0.1.54"
 dependencies = [
- "dirs 0.1.53",
+ "dirs 0.1.54",
  "once_cell",
  "paths",
  "serde",
  "serde_json",
- "toml",
+ "toml 0.8.12",
  "types",
 ]
 
 [[package]]
 name = "maple_core"
-version = "0.1.53"
+version = "0.1.54"
 dependencies = [
  "async-trait",
- "base64 0.13.1",
+ "base64",
  "chrono",
  "chrono-humanize",
  "clap",
  "code_tools",
  "colors-transform",
  "copypasta",
- "dirs 0.1.53",
+ "dirs 0.1.54",
  "filter",
  "futures",
  "git2 0.15.0",
@@ -1717,12 +1722,12 @@ dependencies = [
  "rpc",
  "serde",
  "serde_json",
- "strsim 0.10.0",
+ "strsim 0.11.0",
  "sublime_syntax",
  "subprocess",
  "thiserror",
  "tokio",
- "toml",
+ "toml 0.8.12",
  "tracing",
  "tree_sitter",
  "types",
@@ -1732,7 +1737,7 @@ dependencies = [
 
 [[package]]
 name = "maple_derive"
-version = "0.1.53"
+version = "0.1.54"
 dependencies = [
  "async-trait",
  "darling",
@@ -1740,15 +1745,15 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
  "types",
 ]
 
 [[package]]
 name = "maple_lsp"
-version = "0.1.53"
+version = "0.1.54"
 dependencies = [
- "dirs 0.1.53",
+ "dirs 0.1.54",
  "futures-util",
  "lsp-types",
  "parking_lot",
@@ -1758,14 +1763,14 @@ dependencies = [
  "serde_json",
  "thiserror",
  "tokio",
- "toml",
+ "toml 0.8.12",
  "tracing",
  "which",
 ]
 
 [[package]]
 name = "maple_markdown"
-version = "0.1.53"
+version = "0.1.54"
 dependencies = [
  "axum",
  "axum-extra",
@@ -1782,7 +1787,7 @@ dependencies = [
 
 [[package]]
 name = "matcher"
-version = "0.1.53"
+version = "0.1.54"
 dependencies = [
  "code_tools",
  "extracted_fzy",
@@ -2043,16 +2048,16 @@ checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.4.1",
+ "redox_syscall",
  "smallvec",
  "windows-targets 0.48.5",
 ]
 
 [[package]]
 name = "paths"
-version = "0.1.53"
+version = "0.1.54"
 dependencies = [
- "dirs 0.1.53",
+ "dirs 0.1.54",
  "dunce",
  "itertools 0.10.5",
  "serde",
@@ -2061,7 +2066,7 @@ dependencies = [
 
 [[package]]
 name = "pattern"
-version = "0.1.53"
+version = "0.1.54"
 dependencies = [
  "once_cell",
  "regex",
@@ -2090,7 +2095,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
 ]
 
 [[package]]
@@ -2117,7 +2122,7 @@ version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef"
 dependencies = [
- "base64 0.21.7",
+ "base64",
  "indexmap",
  "line-wrap",
  "quick-xml",
@@ -2167,7 +2172,7 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[package]]
 name = "printer"
-version = "0.1.53"
+version = "0.1.54"
 dependencies = [
  "filter",
  "icon",
@@ -2285,15 +2290,6 @@ dependencies = [
 
 [[package]]
 name = "redox_syscall"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
-dependencies = [
- "bitflags 1.3.2",
-]
-
-[[package]]
-name = "redox_syscall"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
@@ -2314,7 +2310,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
 dependencies = [
  "getrandom",
- "libredox",
+ "libredox 0.0.1",
  "thiserror",
 ]
 
@@ -2368,7 +2364,7 @@ version = "0.11.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "78bf93c4af7a8bb7d879d51cebe797356ff10ae8516ace542b5182d9dcac10b2"
 dependencies = [
- "base64 0.21.7",
+ "base64",
  "bytes",
  "encoding_rs",
  "futures-core",
@@ -2426,7 +2422,7 @@ dependencies = [
 
 [[package]]
 name = "rpc"
-version = "0.1.53"
+version = "0.1.54"
 dependencies = [
  "serde",
  "serde_json",
@@ -2472,7 +2468,7 @@ version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
 dependencies = [
- "base64 0.21.7",
+ "base64",
 ]
 
 [[package]]
@@ -2554,7 +2550,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
 ]
 
 [[package]]
@@ -2586,7 +2582,16 @@ checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+dependencies = [
+ "serde",
 ]
 
 [[package]]
@@ -2690,7 +2695,7 @@ checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
 
 [[package]]
 name = "sublime_syntax"
-version = "0.1.53"
+version = "0.1.54"
 dependencies = [
  "colors-transform",
  "rgb2ansi256",
@@ -2710,17 +2715,6 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "1.0.109"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "syn"
 version = "2.0.52"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
@@ -2787,13 +2781,13 @@ dependencies = [
 
 [[package]]
 name = "termion"
-version = "1.5.6"
+version = "3.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "077185e2eac69c3f8379a4298e1e07cd36beb962290d4a51199acf0fdc10607e"
+checksum = "417813675a504dfbbf21bfde32c03e5bf9f2413999962b479023c02848c1c7a5"
 dependencies = [
  "libc",
+ "libredox 0.0.2",
  "numtoa",
- "redox_syscall 0.2.16",
  "redox_termios",
 ]
 
@@ -2814,7 +2808,7 @@ checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
 ]
 
 [[package]]
@@ -2930,7 +2924,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
 ]
 
 [[package]]
@@ -2979,18 +2973,35 @@ dependencies = [
 ]
 
 [[package]]
+name = "toml"
+version = "0.8.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit",
+]
+
+[[package]]
 name = "toml_datetime"
 version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+dependencies = [
+ "serde",
+]
 
 [[package]]
 name = "toml_edit"
-version = "0.21.1"
+version = "0.22.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
+checksum = "d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef"
 dependencies = [
  "indexmap",
+ "serde",
+ "serde_spanned",
  "toml_datetime",
  "winnow",
 ]
@@ -3055,7 +3066,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
 ]
 
 [[package]]
@@ -3250,14 +3261,14 @@ dependencies = [
 
 [[package]]
 name = "tree_sitter"
-version = "0.1.53"
+version = "0.1.54"
 dependencies = [
  "cc",
  "criterion",
  "once_cell",
  "rand",
  "serde",
- "toml",
+ "toml 0.8.12",
  "tracing",
  "tree-sitter",
  "tree-sitter-bash",
@@ -3309,7 +3320,7 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 
 [[package]]
 name = "types"
-version = "0.1.53"
+version = "0.1.54"
 dependencies = [
  "icon",
  "pattern",
@@ -3365,7 +3376,7 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
 
 [[package]]
 name = "upgrade"
-version = "0.1.53"
+version = "0.1.54"
 dependencies = [
  "indicatif",
  "reqwest",
@@ -3399,7 +3410,7 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
 name = "utils"
-version = "0.1.53"
+version = "0.1.54"
 dependencies = [
  "bytecount",
  "memchr",
@@ -3470,7 +3481,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
  "wasm-bindgen-shared",
 ]
 
@@ -3504,7 +3515,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -3801,9 +3812,9 @@ checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
 
 [[package]]
 name = "winnow"
-version = "0.5.40"
+version = "0.6.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+checksum = "14b9415ee827af173ebb3f15f9083df5a122eb93572ec28741fb153356ea2578"
 dependencies = [
  "memchr",
 ]
@@ -3868,7 +3879,7 @@ checksum = "7e2c411759b501fb9501aac2b1b2d287a6e93e5bdcf13c25306b23e1b716dd0e"
 
 [[package]]
 name = "xtask"
-version = "0.1.53"
+version = "0.1.54"
 dependencies = [
  "anyhow",
  "chrono",
diff --git a/pkgs/applications/editors/vim/plugins/vim-clap/default.nix b/pkgs/applications/editors/vim/plugins/vim-clap/default.nix
index ba23886437011..4ace5711cd3d9 100644
--- a/pkgs/applications/editors/vim/plugins/vim-clap/default.nix
+++ b/pkgs/applications/editors/vim/plugins/vim-clap/default.nix
@@ -11,17 +11,17 @@
 }:
 
 let
-  version = "0.53";
+  version = "0.54";
 
   src = fetchFromGitHub {
     owner = "liuchengxu";
     repo = "vim-clap";
     rev = "v${version}";
-    hash = "sha256-0D9HMFh0G9Dq78v/Aau7VXN9jBad6ZevqTCjx7FT9Yw=";
+    hash = "sha256-rhCum59GCIAwdi5QgSaPfrALelAIMncNetu81i53Q8c=";
   };
 
   meta = with lib; {
-    description = "A modern performant fuzzy picker for Vim and NeoVim";
+    description = "Modern performant fuzzy picker for Vim and NeoVim";
     mainProgram = "maple";
     homepage = "https://github.com/liuchengxu/vim-clap";
     changelog = "https://github.com/liuchengxu/vim-clap/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/applications/editors/vim/plugins/vim-plugin-names b/pkgs/applications/editors/vim/plugins/vim-plugin-names
index 7637b8d34ef25..b2370410771a0 100644
--- a/pkgs/applications/editors/vim/plugins/vim-plugin-names
+++ b/pkgs/applications/editors/vim/plugins/vim-plugin-names
@@ -119,6 +119,7 @@ https://github.com/ms-jpq/chadtree/,HEAD,
 https://github.com/vim-scripts/changeColorScheme.vim/,,
 https://github.com/sudormrfbin/cheatsheet.nvim/,,
 https://github.com/yunlingz/ci_dark/,,
+https://github.com/declancm/cinnamon.nvim/,HEAD,
 https://github.com/projekt0n/circles.nvim/,,
 https://github.com/zootedb0t/citruszest.nvim/,,
 https://github.com/xavierd/clang_complete/,,
@@ -130,7 +131,8 @@ https://github.com/laytan/cloak.nvim/,HEAD,
 https://github.com/asheq/close-buffers.vim/,HEAD,
 https://github.com/Civitasv/cmake-tools.nvim/,,
 https://github.com/winston0410/cmd-parser.nvim/,,
-https://github.com/FelipeLema/cmp-async-path/,HEAD,
+https://github.com/tzachar/cmp-ai/,HEAD,
+https://codeberg.org/FelipeLema/cmp-async-path/,,
 https://github.com/crispgm/cmp-beancount/,HEAD,
 https://github.com/hrsh7th/cmp-buffer/,,
 https://github.com/hrsh7th/cmp-calc/,,
@@ -298,11 +300,11 @@ https://github.com/google/executor.nvim/,HEAD,
 https://github.com/jinh0/eyeliner.nvim/,HEAD,
 https://github.com/fenetikm/falcon/,,
 https://github.com/brooth/far.vim/,,
+https://github.com/pteroctopus/faster.nvim/,HEAD,
 https://github.com/konfekt/fastfold/,,
 https://github.com/lilydjwg/fcitx.vim/,fcitx5,
 https://github.com/freddiehaddad/feline.nvim/,,
 https://github.com/bakpakin/fennel.vim/,,
-https://github.com/lambdalisue/fern.vim/,,
 https://github.com/wincent/ferret/,,
 https://github.com/j-hui/fidget.nvim/,,
 https://github.com/bogado/file-line/,,
@@ -341,6 +343,7 @@ https://github.com/lambdalisue/gina.vim/,,
 https://github.com/f-person/git-blame.nvim/,,
 https://github.com/akinsho/git-conflict.nvim/,HEAD,
 https://github.com/rhysd/git-messenger.vim/,,
+https://github.com/mikesmithgh/git-prompt-string-lualine.nvim/,HEAD,
 https://github.com/ThePrimeagen/git-worktree.nvim/,,
 https://github.com/wintermute-cell/gitignore.nvim/,HEAD,
 https://github.com/vim-scripts/gitignore.vim/,,
@@ -444,6 +447,7 @@ https://github.com/sk1418/last256/,,
 https://github.com/latex-box-team/latex-box/,,
 https://github.com/dundalek/lazy-lsp.nvim/,HEAD,
 https://github.com/folke/lazy.nvim/,HEAD,
+https://github.com/folke/lazydev.nvim/,,
 https://github.com/kdheepak/lazygit.nvim/,,
 https://github.com/Julian/lean.nvim/,,
 https://github.com/leanprover/lean.vim/,,
@@ -492,9 +496,11 @@ https://github.com/l3mon4d3/luasnip/,,
 https://github.com/alvarosevilla95/luatab.nvim/,,
 https://github.com/rktjmp/lush.nvim/,,
 https://github.com/mkasa/lushtags/,,
+https://github.com/nvim-neorocks/lz.n/,,
 https://github.com/WhiteBlackGoose/magma-nvim-goose/,HEAD,
 https://github.com/winston0410/mark-radar.nvim/,HEAD,
 https://github.com/iamcco/markdown-preview.nvim/,,
+https://github.com/tadmccorkle/markdown.nvim/,HEAD,
 https://github.com/David-Kunz/markid/,HEAD,
 https://github.com/chentoast/marks.nvim/,,
 https://github.com/williamboman/mason-lspconfig.nvim/,HEAD,
@@ -654,6 +660,7 @@ https://github.com/allendang/nvim-expand-expr/,,
 https://github.com/vijaymarupudi/nvim-fzf/,,
 https://github.com/vijaymarupudi/nvim-fzf-commands/,,
 https://github.com/sakhnik/nvim-gdb/,,
+https://github.com/chrisgrieser/nvim-genghis/,HEAD,
 https://github.com/smiteshp/nvim-gps/,,
 https://github.com/brenoprata10/nvim-highlight-colors/,HEAD,
 https://github.com/Iron-E/nvim-highlite/,,
@@ -684,6 +691,8 @@ https://github.com/yamatsum/nvim-nonicons/,,
 https://github.com/rcarriga/nvim-notify/,,
 https://github.com/LhKipp/nvim-nu/,HEAD,
 https://github.com/ojroques/nvim-osc52/,,
+https://github.com/julienvincent/nvim-paredit/,,
+https://github.com/gpanders/nvim-parinfer/,HEAD,
 https://github.com/gennaro-tedesco/nvim-peekup/,,
 https://github.com/yorickpeterse/nvim-pqf/,HEAD,
 https://github.com/jamestthompson3/nvim-remote-containers/,HEAD,
@@ -691,6 +700,7 @@ https://github.com/olrtg/nvim-rename-state/,HEAD,
 https://github.com/petertriho/nvim-scrollbar/,HEAD,
 https://github.com/dstein64/nvim-scrollview/,,
 https://github.com/s1n7ax/nvim-search-and-replace/,HEAD,
+https://github.com/garymjr/nvim-snippets/,,
 https://github.com/dcampos/nvim-snippy/,HEAD,
 https://github.com/ishan9299/nvim-solarized-lua/,,
 https://github.com/lucidph3nx/nvim-sops/,HEAD,
@@ -750,6 +760,7 @@ https://github.com/drewtempelmeyer/palenight.vim/,,
 https://github.com/JoosepAlviste/palenightfall.nvim/,,
 https://github.com/roobert/palette.nvim/,HEAD,
 https://github.com/NLKNguyen/papercolor-theme/,,
+https://github.com/dundalek/parpar.nvim/,,
 https://github.com/tmsvg/pear-tree/,,
 https://github.com/steelsojka/pears.nvim/,,
 https://github.com/olimorris/persisted.nvim/,HEAD,
@@ -802,6 +813,7 @@ https://github.com/vim-scripts/restore_view.vim/,HEAD,restore-view-vim
 https://github.com/gu-fan/riv.vim/,,
 https://github.com/kevinhwang91/rnvimr/,,
 https://github.com/mfukar/robotframework-vim/,,
+https://github.com/nvim-neorocks/rocks.nvim/,,
 https://github.com/ron-rs/ron.vim/,,
 https://github.com/jmederosalvarado/roslyn.nvim/,HEAD,
 https://github.com/keith/rspec.vim/,,
@@ -944,6 +956,7 @@ https://github.com/simonmclean/triptych.nvim/,HEAD,
 https://github.com/folke/trouble.nvim/,,
 https://github.com/Pocco81/true-zen.nvim/,,
 https://github.com/tesaguri/trust.vim/,HEAD,
+https://github.com/folke/ts-comments.nvim/,HEAD,
 https://github.com/jgdavey/tslime.vim/,,
 https://github.com/Quramy/tsuquyomi/,,
 https://github.com/folke/twilight.nvim/,,
@@ -1091,6 +1104,7 @@ https://github.com/tpope/vim-eunuch/,,
 https://github.com/tommcdo/vim-exchange/,,
 https://github.com/terryma/vim-expand-region/,,
 https://github.com/int3/vim-extradite/,,
+https://github.com/lambdalisue/vim-fern/,,
 https://github.com/wsdjeg/vim-fetch/,,
 https://github.com/fadein/vim-figlet/,HEAD,
 https://github.com/tpope/vim-fireplace/,,
diff --git a/pkgs/applications/editors/vscode/extensions/README.md b/pkgs/applications/editors/vscode/extensions/README.md
index 656ea1bdb3ae0..12ac4f5f5bb2e 100644
--- a/pkgs/applications/editors/vscode/extensions/README.md
+++ b/pkgs/applications/editors/vscode/extensions/README.md
@@ -20,6 +20,11 @@
   - `description` should mention it is a Visual Studio Code extension.
   - `downloadPage` is the VSCode marketplace URL.
   - `homepage` is the source-code URL.
+  - `maintainers`:
+    - optionally consider adding yourself as a maintainer to be notified of updates, breakages and help with upkeep.
+    - recommended format is:
+      - a `non-nested with`, such as: `with lib.maintainers; [ your-username ];`.
+      - maintainers are listed in alphabetical order.
   - verify `license` in upstream.
 
 * On commit messages:
diff --git a/pkgs/applications/editors/vscode/extensions/chenglou92.rescript-vscode/default.nix b/pkgs/applications/editors/vscode/extensions/chenglou92.rescript-vscode/default.nix
index fadcfe758a553..d0b27457b68a0 100644
--- a/pkgs/applications/editors/vscode/extensions/chenglou92.rescript-vscode/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/chenglou92.rescript-vscode/default.nix
@@ -5,7 +5,7 @@
   callPackage,
 }:
 let
-  version = "1.50.0";
+  version = "1.54.0";
   rescript-editor-analysis = callPackage ./rescript-editor-analysis.nix { inherit version; };
   arch =
     if stdenv.isLinux then
@@ -21,7 +21,7 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
     name = "rescript-vscode";
     publisher = "chenglou92";
     inherit version;
-    hash = "sha256-Dt7mqZQ/vEUFyUD5SsY6RGzg9kq19/Amksrwtfv0TuE=";
+    hash = "sha256-c7TJED5YpHRwn7Ooq8sG+N99b7tH6TOgeC9TTYdb4JA=";
   };
   postPatch = ''
     rm -r ${analysisDir}
@@ -29,7 +29,7 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
   '';
 
   meta = {
-    description = "The official VSCode plugin for ReScript";
+    description = "Official VSCode plugin for ReScript";
     homepage = "https://github.com/rescript-lang/rescript-vscode";
     maintainers = [
       lib.maintainers.dlip
diff --git a/pkgs/applications/editors/vscode/extensions/contextmapper.context-mapper-vscode-extension/default.nix b/pkgs/applications/editors/vscode/extensions/contextmapper.context-mapper-vscode-extension/default.nix
index 9202ddb72b16d..71d540fafd89e 100644
--- a/pkgs/applications/editors/vscode/extensions/contextmapper.context-mapper-vscode-extension/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/contextmapper.context-mapper-vscode-extension/default.nix
@@ -24,7 +24,7 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
   '';
 
   meta = {
-    description = "A VSCode extension for Context Mapper";
+    description = "VSCode extension for Context Mapper";
     downloadPage = "https://marketplace.visualstudio.com/items?itemName=${mktplcRef.publisher}.${mktplcRef.name}";
     homepage = "https://github.com/ContextMapper/vscode-extension";
     license = lib.licenses.asl20;
diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix
index d46f2a3effd4e..770a646f4d942 100644
--- a/pkgs/applications/editors/vscode/extensions/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/default.nix
@@ -49,7 +49,7 @@ let
         };
         meta = {
           changelog = "https://github.com/1Password/op-vscode/releases";
-          description = "A VSCode extension that integrates your development workflow with 1Password service";
+          description = "VSCode extension that integrates your development workflow with 1Password service";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=1Password.op-vscode";
           homepage = "https://github.com/1Password/op-vscode";
           license = lib.licenses.mit;
@@ -65,7 +65,7 @@ let
           sha256 = "TVBvF/5KQVvWX1uHwZDlmvwGjOO5/lXbgVzB26U8rNQ=";
         };
         meta = {
-          description = "A Visual Studio Code extension providing rainbow brackets";
+          description = "Visual Studio Code extension providing rainbow brackets";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=2gua.rainbow-brackets";
           homepage = "https://github.com/lcultx/rainbow-brackets";
           license = lib.licenses.mit;
@@ -95,7 +95,7 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/42Crunch.vscode-openapi/changelog";
-          description = "A Visual Studio Code extension with rich support for the OpenAPI Specification (OAS).";
+          description = "Visual Studio Code extension with rich support for the OpenAPI Specification (OAS)";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=42Crunch.vscode-openapi";
           homepage = "https://github.com/42Crunch/vscode-openapi";
           license = lib.licenses.gpl3;
@@ -153,7 +153,7 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/adzero.vscode-sievehighlight/changelog";
-          description = "A Visual Studio Code extension to enable syntax highlight support for Sieve mail filtering language";
+          description = "Visual Studio Code extension to enable syntax highlight support for Sieve mail filtering language";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=adzero.vscode-sievehighlight";
           homepage = "https://github.com/adzero/vscode-sievehighlight";
           license = lib.licenses.mit;
@@ -233,7 +233,7 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/alexisvt.flutter-snippets/changelog";
-          description = "A set of helpful widget snippets for day to day Flutter development";
+          description = "Set of helpful widget snippets for day to day Flutter development";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=alexisvt.flutter-snippets";
           homepage = "https://github.com/Alexisvt/flutter-snippets";
           license = lib.licenses.mit;
@@ -334,7 +334,7 @@ let
           hash = "sha256-awbqFv6YuYI0tzM/QbHRTUl4B2vNUdy52F4nPmv+dRU=";
         };
         meta = {
-          description = "An arctic, north-bluish clean and elegant Visual Studio Code theme.";
+          description = "Arctic, north-bluish clean and elegant Visual Studio Code theme";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=arcticicestudio.nord-visual-studio-code";
           homepage = "https://github.com/arcticicestudio/nord-visual-studio-code";
           license = lib.licenses.mit;
@@ -406,8 +406,8 @@ let
         mktplcRef = {
           name = "vscode-neovim";
           publisher = "asvetliakov";
-          version = "1.11.4";
-          hash = "sha256-dAovrYfA5muPNhFIHycxuO0CIWPT4T9hsEzri1JDOUI=";
+          version = "1.17.2";
+          hash = "sha256-IA09vUleY7hazu65kadES4iq3XojyJ3sXOOGaw0vJnU=";
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/asvetliakov.vscode-neovim/changelog";
@@ -476,7 +476,7 @@ let
           hash = "sha256-79Yg4I0OkfG7PaDYnTA8HK8jrSxre4FGriq0Baiq7wA=";
         };
         meta = {
-          description = "A Visual Studio Code extension for Spellchecker";
+          description = "Visual Studio Code extension for Spellchecker";
           changelog = "https://marketplace.visualstudio.com/items/ban.spellright/changelog";
           homepage = "https://github.com/bartosz-antosik/vscode-spellright";
           license = lib.licenses.mit;
@@ -484,6 +484,23 @@ let
         };
       };
 
+      banacorn.agda-mode = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          publisher = "banacorn";
+          name = "agda-mode";
+          version = "0.4.7";
+          hash = "sha256-gNa3n16lP3ooBRvGaugTua4IXcIzpMk7jBYMJDQsY00=";
+        };
+        meta = {
+          changelog = "https://marketplace.visualstudio.com/items/banacorn.agda-mode/changelog";
+          description = "agda-mode on VS Code";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=banacorn.agda-mode";
+          homepage = "https://github.com/banacorn/agda-mode-vscode";
+          maintainers = with lib.maintainers; [ Anillc ];
+          license = lib.licenses.mit;
+        };
+      };
+
       batisteo.vscode-django = buildVscodeMarketplaceExtension {
         mktplcRef = {
           publisher = "batisteo";
@@ -505,8 +522,8 @@ let
         mktplcRef = {
           name = "vscode-bazel";
           publisher = "bazelbuild";
-          version = "0.7.0";
-          sha256 = "05wvih09184bsp4rv2m55z0sasra2qrvch5m3bkbrjq7rcqgibgx";
+          version = "0.10.0";
+          sha256 = "sha256-8SUOzsUmfgt9fAy037qLVNrGJPvTnIeMNz2tbN5psbs=";
         };
         meta = {
           description = "Bazel support for Visual Studio Code";
@@ -542,6 +559,22 @@ let
 
       betterthantomorrow.calva = callPackage ./betterthantomorrow.calva { };
 
+      bierner.comment-tagged-templates = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "comment-tagged-templates";
+          publisher = "bierner";
+          version = "0.3.3";
+          hash = "sha256-M2XdMQ2l6oMYiHTdfRJ/n/Ys3LecEPwAozQtLBcn7FY=";
+        };
+        meta = {
+          changelog = "https://marketplace.visualstudio.com/items/bierner.comment-tagged-templates/changelog";
+          description = "VS Code extension that adds basic syntax highlighting for JavaScript and TypeScript tagged template strings using language identifier comments";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=bierner.comment-tagged-templates";
+          homepage = "https://github.com/mjbvz/vscode-comment-tagged-templates";
+          license = lib.licenses.mit;
+        };
+      };
+
       bierner.docs-view = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "docs-view";
@@ -551,7 +584,7 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/bierner.docs-view/changelog";
-          description = "A VSCode extension that displays documentation in the sidebar or panel";
+          description = "VSCode extension that displays documentation in the sidebar or panel";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=bierner.docs-view";
           homepage = "https://github.com/mattbierner/vscode-docs-view#readme";
           license = lib.licenses.mit;
@@ -570,6 +603,22 @@ let
         };
       };
 
+      bierner.github-markdown-preview = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "github-markdown-preview";
+          publisher = "bierner";
+          version = "0.3.0";
+          hash = "sha256-7pbl5OgvJ6S0mtZWsEyUzlg+lkUhdq3rkCCpLsvTm4g=";
+        };
+        meta = {
+          description = "A VSCode extension that changes the markdown preview to support GitHub markdown features";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=bierner.github-markdown-preview";
+          homepage = "https://github.com/mjbvz/vscode-github-markdown-preview";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.pandapip1 ];
+        };
+      };
+
       bierner.markdown-checkbox = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "markdown-checkbox";
@@ -594,6 +643,23 @@ let
         };
       };
 
+      bierner.markdown-footnotes = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "markdown-footnotes";
+          publisher = "bierner";
+          version = "0.1.1";
+          hash = "sha256-h/Iyk8CKFr0M5ULXbEbjFsqplnlN7F+ZvnUTy1An5t4=";
+        };
+        meta = {
+          changelog = "https://marketplace.visualstudio.com/items/bierner.markdown-footnotes/changelog";
+          description = "Adds [^1] footnote syntax support to VS Code's built-in Markdown preview";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=bierner.markdown-footnotes";
+          homepage = "https://github.com/mjbvz/vscode-markdown-footnotes";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.uncenter ];
+        };
+      };
+
       bierner.markdown-mermaid = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "markdown-mermaid";
@@ -606,14 +672,59 @@ let
         };
       };
 
+      bierner.markdown-preview-github-styles = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "markdown-preview-github-styles";
+          publisher = "bierner";
+          version = "2.0.4";
+          hash = "sha256-jJulxvjMNsqQqmsb5szQIAUuLWuHw824Caa0KArjUVw=";
+        };
+        meta = {
+          changelog = "https://marketplace.visualstudio.com/items/bierner.markdown-preview-github-styles/changelog";
+          description = "Changes VS Code's built-in markdown preview to match GitHub's styling";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=bierner.markdown-preview-github-styles";
+          homepage = "https://github.com/mjbvz/vscode-github-markdown-preview-style";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.uncenter ];
+        };
+      };
+
+      biomejs.biome = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "biome";
+          publisher = "biomejs";
+          version = "2024.5.251958";
+          hash = "sha256-Pxbvj6e3nRwuLKmPEtE02JdHmZbyuXNh4T+FZKjBkWo=";
+        };
+        meta = {
+          changelog = "https://github.com/biomejs/biome-vscode/blob/main/CHANGELOG.md";
+          description = "Biome LSP extension for Visual Studio Code";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=biomejs.biome";
+          homepage = "https://github.com/biomejs/biome-vscode";
+          license = with lib.licenses; [
+            mit
+            # or
+            asl20
+          ];
+          maintainers = [ lib.maintainers.uncenter ];
+        };
+      };
+
       bmalehorn.vscode-fish = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "vscode-fish";
           publisher = "bmalehorn";
-          version = "1.0.35";
-          hash = "sha256-V51Qe6M1CMm9fLOSFEwqeZiC8tWCbVH0AzkLe7kR2vY=";
+          version = "1.0.38";
+          hash = "sha256-QEifCTlzYMX+5H6+k2o1lsQrhW3vxVpn+KFg/3WVVFo=";
+        };
+        meta = {
+          changelog = "https://marketplace.visualstudio.com/items/bmalehorn.vscode-fish/changelog";
+          description = "Fish syntax highlighting and formatting for VS Code";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=bmalehorn.vscode-fish";
+          homepage = "https://github.com/bmalehorn/vscode-fish";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.uncenter ];
         };
-        meta.license = lib.licenses.mit;
       };
 
       bmewburn.vscode-intelephense-client = buildVscodeMarketplaceExtension {
@@ -712,7 +823,7 @@ let
           hash = "sha256-tVbd+j9+90Z07+jGAiT0gylZN9YWHdJmq2sh1wf2oGE=";
         };
         meta = {
-          description = "A cyberpunk-inspired colour theme to satisfy your neon dreams";
+          description = "Cyberpunk-inspired colour theme to satisfy your neon dreams";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=carrie999.cyberpunk-2020";
           homepage = "https://github.com/Carrie999/cyberpunk";
           license = lib.licenses.mit;
@@ -783,7 +894,7 @@ let
         meta = {
           license = lib.licenses.mit;
           changelog = "https://marketplace.visualstudio.com/items/charliermarsh.ruff/changelog";
-          description = "A Visual Studio Code extension with support for the Ruff linter.";
+          description = "Visual Studio Code extension with support for the Ruff linter";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=charliermarsh.ruff";
           homepage = "https://github.com/astral-sh/ruff-vscode";
           maintainers = [ lib.maintainers.azd325 ];
@@ -799,7 +910,7 @@ let
         };
         meta = {
           changelog = "https://github.com/cameronmaske/pytest-vscode/blob/master/CHANGELOG.md";
-          description = "A Visual Studio Code extension that adds IntelliSense support for pytest fixtures";
+          description = "Visual Studio Code extension that adds IntelliSense support for pytest fixtures";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=Cameron.vscode-pytest";
           license = lib.licenses.unlicense;
           maintainers = [ lib.maintainers.rhoriguchi ];
@@ -828,7 +939,7 @@ let
       chris-hayes.chatgpt-reborn = buildVscodeMarketplaceExtension {
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/chris-hayes.chatgpt-reborn/changelog";
-          description = "A Visual Studio Code extension to support ChatGPT, GPT-3 and Codex conversations";
+          description = "Visual Studio Code extension to support ChatGPT, GPT-3 and Codex conversations";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=chris-hayes.chatgpt-reborn";
           homepage = "https://github.com/christopher-hayes/vscode-chatgpt-reborn";
           license = lib.licenses.isc;
@@ -878,7 +989,7 @@ let
           hash = "sha256-N1X8wB2n6JYoFHCP5iHBXHnEaRa9S1zooQZsR5mUeh8=";
         };
         meta = {
-          description = "An extension for Visual Studio Code to open any Coder workspace in VS Code with a single click.";
+          description = "Extension for Visual Studio Code to open any Coder workspace in VS Code with a single click";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=coder.coder-remote";
           homepage = "https://github.com/coder/vscode-coder";
           license = lib.licenses.mit;
@@ -906,7 +1017,7 @@ let
           hash = "sha256-blqLK7S+RmEoyr9zktS5/SNC0GeSXnNpbhltyajoAfw=";
         };
         meta = {
-          description = "A Visual Studio Code extension to provide purely hover translation";
+          description = "Visual Studio Code extension to provide purely hover translation";
           longDescription = ''
             Code Translate is a purely hover translation extension
             - Non-intrusive display of translation results: perfectly integrated with VS Code code analysis.
@@ -948,26 +1059,26 @@ let
             sources = {
               "x86_64-linux" = {
                 arch = "linux-x64";
-                hash = "sha256-GQH+KKteWbCz18AlTWjLWrVpPRxumi+iDPS5n+5xy/0=";
+                hash = "sha256-ZlbPRFQwvZNCp8K/rbHqVa3coXa2dT4nOrNChC9naC8=";
               };
               "x86_64-darwin" = {
                 arch = "darwin-x64";
-                hash = "sha256-xBwuAtvRdOgYkfxP0JaxhAQZx5AJWymDVQ50piTx608=";
+                hash = "sha256-hSRdvno8VZNi48rckaqWbAgDXT6RXEcPnkNOT8DV1wA=";
               };
               "aarch64-linux" = {
                 arch = "linux-arm64";
-                hash = "sha256-oLLKnNZ+E06PbUrhj5Y0HOdHhUs/fXd+3lZXX/P2C10=";
+                hash = "sha256-rimE7dKT6zajHo6E42z7IyfP35xBXThIwMHhZjaZwHk=";
               };
               "aarch64-darwin" = {
                 arch = "darwin-arm64";
-                hash = "sha256-nWuyqOIELp8MrjzCFH3yu4pWm5KsNxmx3eacgStWKG0=";
+                hash = "sha256-7TeUAZLiEnqi5i5nHLhtv5aMxIcw7iiABOAkwP1YYqM=";
               };
             };
           in
           {
             name = "continue";
             publisher = "Continue";
-            version = "0.8.25";
+            version = "0.8.40";
           }
           // sources.${stdenv.system};
         nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ];
@@ -1030,6 +1141,21 @@ let
         };
       };
 
+      danielgavin.ols = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          publisher = "DanielGavin";
+          name = "ols";
+          version = "0.1.28";
+          hash = "sha256-yVXltjvtLc+zqela/Jyg+g66PU61+YTMX1hWPW8fIkk=";
+        };
+        meta = {
+          description = "Visual Studio Code extension for Odin language";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=DanielGavin.ols";
+          homepage = "https://github.com/DanielGavin/ols";
+          license = lib.licenses.mit;
+        };
+      };
+
       daohong-emilio.yash = buildVscodeMarketplaceExtension {
         mktplcRef = {
           publisher = "daohong-emilio";
@@ -1107,7 +1233,7 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/dbaeumer.vscode-eslint/changelog";
-          description = "Integrates ESLint JavaScript into VS Code.";
+          description = "Integrates ESLint JavaScript into VS Code";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint";
           homepage = "https://github.com/Microsoft/vscode-eslint";
           license = lib.licenses.mit;
@@ -1124,7 +1250,7 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/denoland.vscode-deno/changelog";
-          description = "A language server client for Deno";
+          description = "Language server client for Deno";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=denoland.vscode-deno";
           homepage = "https://github.com/denoland/vscode_deno";
           license = lib.licenses.mit;
@@ -1141,7 +1267,7 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/DEVSENSE.composer-php-vscode/changelog";
-          description = "A visual studio code extension for full development integration for Composer, the PHP package manager.";
+          description = "Visual studio code extension for full development integration for Composer, the PHP package manager";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=DEVSENSE.composer-php-vscode";
           homepage = "https://github.com/DEVSENSE/phptools-docs";
           license = lib.licenses.unfree;
@@ -1191,7 +1317,7 @@ let
 
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/DEVSENSE.phptools-vscode/changelog";
-          description = "A visual studio code extension for full development integration for the PHP language.";
+          description = "Visual studio code extension for full development integration for the PHP language";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=DEVSENSE.phptools-vscode";
           homepage = "https://github.com/DEVSENSE/phptools-docs";
           license = lib.licenses.unfree;
@@ -1214,7 +1340,7 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/DEVSENSE.profiler-php-vscode/changelog";
-          description = "A visual studio code extension for PHP and XDebug profiling and inspecting.";
+          description = "Visual studio code extension for PHP and XDebug profiling and inspecting";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=DEVSENSE.profiler-php-vscode";
           homepage = "https://github.com/DEVSENSE/phptools-docs";
           license = lib.licenses.unfree;
@@ -1255,7 +1381,7 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/dhedgecock.radical-vscode/changelog";
-          description = "A dark theme for radical hacking inspired by retro futuristic design";
+          description = "Dark theme for radical hacking inspired by retro futuristic design";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=dhedgecock.radical-vscode";
           homepage = "https://github.com/dhedgecock/radical-vscode";
           license = lib.licenses.isc;
@@ -1272,11 +1398,11 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/discloud.discloud/changelog";
-          description = "A Visual Studio Code extension for hosting and managing applications on Discloud";
+          description = "Visual Studio Code extension for hosting and managing applications on Discloud";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=discloud.discloud";
           homepage = "https://github.com/discloud/vscode-discloud";
           license = lib.licenses.asl20;
-          maintainers = [ lib.maintainers.astindev ];
+          maintainers = [ lib.maintainers.diogomdp ];
         };
       };
 
@@ -1301,7 +1427,7 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/DivyanshuAgrawal.competitive-programming-helper/changelog";
-          description = "Makes judging, compiling, and downloading problems for competitve programming easy. Also supports auto-submit for a few sites.";
+          description = "Makes judging, compiling, and downloading problems for competitve programming easy. Also supports auto-submit for a few sites";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=DivyanshuAgrawal.competitive-programming-helper";
           homepage = "https://github.com/agrawal-d/cph";
           license = lib.licenses.gpl3;
@@ -1385,7 +1511,7 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/eamodio.gitlens/changelog";
-          description = "A Visual Studio Code extension that improves its built-in Git capabilities";
+          description = "Visual Studio Code extension that improves its built-in Git capabilities";
           longDescription = ''
             Supercharge the Git capabilities built into Visual Studio Code — Visualize code authorship at a glance via Git
             blame annotations and code lens, seamlessly navigate and explore Git repositories, gain valuable insights via
@@ -1407,7 +1533,7 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/earthly.earthfile-syntax-highlighting/changelog";
-          description = "Syntax highlighting for Earthly build Earthfiles.";
+          description = "Syntax highlighting for Earthly build Earthfiles";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=earthly.earthfile-syntax-highlighting";
           homepage = "https://github.com/earthly/earthfile-grammar";
           license = lib.licenses.mpl20;
@@ -1477,12 +1603,12 @@ let
         mktplcRef = {
           name = "elixir-ls";
           publisher = "JakeBecker";
-          version = "0.21.3";
-          hash = "sha256-C6QFlqMIcefQhzBuVd3CnQHHaDdM1de7j+a/06wZ9FQ=";
+          version = "0.22.0";
+          hash = "sha256-pus5rOyVgheiblvWrkM3H/GZifBzUGR++JiHN4aU/3I=";
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/JakeBecker.elixir-ls/changelog";
-          description = "Elixir support with debugger, autocomplete, and more. Powered by ElixirLS.";
+          description = "Elixir support with debugger, autocomplete, and more. Powered by ElixirLS";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=JakeBecker.elixir-ls";
           homepage = "https://github.com/elixir-lsp/elixir-ls";
           license = lib.licenses.mit;
@@ -1528,7 +1654,7 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/emroussel.atomize-atom-one-dark-theme/changelog";
-          description = "A detailed and accurate Atom One Dark theme for VSCode";
+          description = "Detailed and accurate Atom One Dark theme for VSCode";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=emroussel.atomize-atom-one-dark-theme";
           homepage = "https://github.com/emroussel/atomize/blob/main/README.md";
           license = lib.licenses.mit;
@@ -1544,7 +1670,7 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/enkia.tokyo-night/changelog";
-          description = "A clean Visual Studio Code theme that celebrates the lights of Downtown Tokyo at night";
+          description = "Clean Visual Studio Code theme that celebrates the lights of Downtown Tokyo at night";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=enkia.tokyo-night";
           homepage = "https://github.com/enkia/tokyo-night-vscode-theme";
           license = lib.licenses.mit;
@@ -1561,7 +1687,7 @@ let
           hash = "sha256-XqtyZVlsPaPkKB9HdigKSXjCwqXe9wzJWeRcPpS6EVM=";
         };
         meta = {
-          description = "Material Theme Icons, the most epic icons theme for Visual Studio Code and Material Theme.";
+          description = "Material Theme Icons, the most epic icons theme for Visual Studio Code and Material Theme";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=Equinusocio.vsc-material-theme-icons";
           homepage = "https://github.com/material-theme/vsc-material-theme-icons";
           license = lib.licenses.asl20;
@@ -1605,7 +1731,7 @@ let
           hash = "sha256-caNcbDTB/F2mdlGpfIfJv13lzY5Wwj7p7r8dAte9+3A=";
         };
         meta = {
-          description = "A Visual Studio Code extension of using chinese-english dictonary in right-click menu";
+          description = "Visual Studio Code extension of using chinese-english dictonary in right-click menu";
           homepage = "https://github.com/exiahuang/fanyi-vscode";
           changelog = "https://marketplace.visualstudio.com/items/ExiaHuang.dictionary/changelog";
           license = lib.licenses.gpl3Only;
@@ -1613,10 +1739,27 @@ let
         };
       };
 
+      fabiospampinato.vscode-open-in-github = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vscode-open-in-github";
+          publisher = "fabiospampinato";
+          version = "2.3.0";
+          hash = "sha256-vrW6uZyeEJipGtfz7BEeeAwiwtBlfQLjC7jAP1v5GoE=";
+        };
+        meta = {
+          changelog = "https://marketplace.visualstudio.com/items/fabiospampinato.vscode-open-in-github/changelog";
+          description = "VS Code extension to open the current project or file in github.com";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=fabiospampinato.vscode-open-in-github";
+          homepage = "https://github.com/fabiospampinato/vscode-open-in-github";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.uncenter ];
+        };
+      };
+
       file-icons.file-icons = buildVscodeMarketplaceExtension {
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/file-icons.file-icons/changelog";
-          description = "File-specific icons in VSCode for improved visual grepping.";
+          description = "File-specific icons in VSCode for improved visual grepping";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=file-icons.file-icons";
           homepage = "https://github.com/file-icons/vscode";
           license = lib.licenses.mit;
@@ -1639,7 +1782,7 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/firefox-devtools.vscode-firefox-debug/changelog";
-          description = "A Visual Studio Code extension for debugging web applications and browser extensions in Firefox";
+          description = "Visual Studio Code extension for debugging web applications and browser extensions in Firefox";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=firefox-devtools.vscode-firefox-debug";
           homepage = "https://github.com/firefox-devtools/vscode-firefox-debug";
           license = lib.licenses.mit;
@@ -1672,7 +1815,7 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/foam.foam-vscode/changelog";
-          description = "A personal knowledge management and sharing system for VSCode ";
+          description = "Personal knowledge management and sharing system for VSCode ";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=foam.foam-vscode";
           homepage = "https://foambubble.github.io/";
           license = lib.licenses.mit;
@@ -1716,6 +1859,23 @@ let
         };
       };
 
+      fortran-lang.linter-gfortran = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "linter-gfortran";
+          publisher = "fortran-lang";
+          version = "3.4.2024061701";
+          hash = "sha256-i357EzQ8cm8NPsMBbsV5ToMoBDa59Bh6ylC9tNjMY6s=";
+        };
+        meta = {
+          changelog = "https://marketplace.visualstudio.com/items/fortran-lang.linter-gfortran/changelog";
+          description = "Fortran language support for Visual Studio Code";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=fortran-lang.linter-gfortran";
+          homepage = "https://github.com/fortran-lang/vscode-fortran-support";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.uncenter ];
+        };
+      };
+
       foxundermoon.shell-format = callPackage ./foxundermoon.shell-format { };
 
       freebroccolo.reasonml = buildVscodeMarketplaceExtension {
@@ -1743,7 +1903,7 @@ let
           hash = "sha256-9Vo6lwqD1eE3zY0Gi9ME/6lPwmwuJ3Iq9StHPvncnM4=";
         };
         meta = {
-          description = "A Visual Studio Code extension using google translation to helping you quickly translate text right in your code rocket";
+          description = "Visual Studio Code extension using google translation to helping you quickly translate text right in your code rocket";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=funkyremi.vscode-google-translate";
           homepage = "https://github.com/funkyremi/vscode-google-translate.git";
           changelog = "https://marketplace.visualstudio.com/items/funkyremi.vscode-google-translate/changelog";
@@ -1752,6 +1912,22 @@ let
         };
       };
 
+      garlicbreadcleric.pandoc-markdown-syntax = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "pandoc-markdown-syntax";
+          publisher = "garlicbreadcleric";
+          version = "0.0.2";
+          hash = "sha256-YAMH5smLyBuoTdlxSCTPyMIKOWTSIdf2MQVZuOO2V1w=";
+        };
+        meta = {
+          description = "A VSCode extension that adds syntax highlighting for Pandoc-flavored Markdown";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=garlicbreadcleric.pandoc-markdown-syntax";
+          homepage = "https://github.com/garlicbreadcleric/vscode-pandoc-markdown";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.pandapip1 ];
+        };
+      };
+
       gencer.html-slim-scss-css-class-completion = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "html-slim-scss-css-class-completion";
@@ -1771,7 +1947,7 @@ let
       genieai.chatgpt-vscode = buildVscodeMarketplaceExtension {
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/genieai.chatgpt-vscode/changelog";
-          description = "A Visual Studio Code extension to support ChatGPT, GPT-3 and Codex conversations";
+          description = "Visual Studio Code extension to support ChatGPT, GPT-3 and Codex conversations";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=genieai.chatgpt-vscode";
           homepage = "https://github.com/ai-genie/chatgpt-vscode";
           license = lib.licenses.isc;
@@ -1805,12 +1981,12 @@ let
         mktplcRef = {
           publisher = "github";
           name = "copilot";
-          version = "1.180.827";
-          hash = "sha256-HA1na9FoExIiAay+tEjxWKqpG2+wq4Oww77Gl2Bhciw=";
+          version = "1.200.920";
+          hash = "sha256-LMShW9GN/wsDBodVn33Ui4qW0619r13VO2rSTPVE9TQ=";
         };
 
         meta = {
-          description = "GitHub Copilot uses OpenAI Codex to suggest code and entire functions in real-time right from your editor.";
+          description = "GitHub Copilot uses OpenAI Codex to suggest code and entire functions in real-time right from your editor";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=GitHub.copilot";
           homepage = "https://github.com/features/copilot";
           license = lib.licenses.unfree;
@@ -1822,8 +1998,8 @@ let
         mktplcRef = {
           publisher = "github";
           name = "copilot-chat";
-          version = "0.14.2024032901"; # compatible with vscode 1.88.1
-          hash = "sha256-+6N7IGO5j0wP5Zg8CwapHeKGWiZzc43VM4jCtqJDJIQ=";
+          version = "0.16.2024060502"; # compatible with vscode 1.90.0
+          hash = "sha256-SAydDc3JlJzfCtbJICy3rWx8psVPdRdPfOuzR9Dqtp8=";
         };
         meta = {
           description = "GitHub Copilot Chat is a companion extension to GitHub Copilot that houses experimental chat features";
@@ -1858,7 +2034,7 @@ let
           hash = "sha256-sEc6Fbn4XpK8vNK32R4fjnx/R+1xYOwcuhKlo7sPd5o=";
         };
         meta = {
-          description = "A Visual Studio Code extension for GitHub Actions workflows and runs for github.com hosted repositories";
+          description = "Visual Studio Code extension for GitHub Actions workflows and runs for github.com hosted repositories";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=github.vscode-github-actions";
           homepage = "https://github.com/github/vscode-github-actions";
           license = lib.licenses.mit;
@@ -1955,7 +2131,7 @@ let
           hash = "sha256-u3VcpgLKiEeUr1I6w71wleKyaO6v0gmHiw5Ama6fv88=";
         };
         meta = {
-          description = "GraphQL extension for VSCode built with the aim to tightly integrate the GraphQL Ecosystem with VSCode for an awesome developer experience.";
+          description = "GraphQL extension for VSCode built with the aim to tightly integrate the GraphQL Ecosystem with VSCode for an awesome developer experience";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql";
           homepage = "https://github.com/graphql/graphiql/tree/main/packages/vscode-graphql";
           license = lib.licenses.mit;
@@ -1971,7 +2147,7 @@ let
           hash = "sha256-qazU0UyZ9de6Huj2AYZqqBo4jVW/ZQmFJhV7XXAblxo=";
         };
         meta = {
-          description = "Adds full GraphQL syntax highlighting and language support such as bracket matching.";
+          description = "Adds full GraphQL syntax highlighting and language support such as bracket matching";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=GraphQL.vscode-graphql-syntax";
           homepage = "https://github.com/graphql/graphiql/tree/main/packages/vscode-graphql-syntax";
           license = lib.licenses.mit;
@@ -2062,7 +2238,7 @@ let
         };
         meta = {
           changelog = "https://github.com/hbenl/vscode-test-explorer/blob/master/CHANGELOG.md";
-          description = "A Visual Studio Code extension that runs your tests in the sidebar";
+          description = "Visual Studio Code extension that runs your tests in the sidebar";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=hbenl.vscode-test-explorer";
           homepage = "https://github.com/hbenl/vscode-test-explorer";
           license = lib.licenses.mit;
@@ -2077,7 +2253,7 @@ let
           hash = "sha256-SPcSnS7LnRL5gdiJIVsFaN7eccrUHSj9uQYIQZllm0M=";
         };
         meta = {
-          description = "This unofficial extension integrates Draw.io into VS Code.";
+          description = "This unofficial extension integrates Draw.io into VS Code";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=hediet.vscode-drawio";
           homepage = "https://github.com/hediet/vscode-drawio";
           license = lib.licenses.gpl3Only;
@@ -2189,7 +2365,7 @@ let
           hash = "sha256-g6mlScxv8opZuqgWtTJ3k0Yo7W7WzIkwB+8lWf6cMiU=";
         };
         meta = {
-          description = "A Visual Studio Code extension to translate the comments for computer language";
+          description = "Visual Studio Code extension to translate the comments for computer language";
           longDescription = ''
             This plugin uses the Google Translate API to translate comments for the VSCode programming language.
           '';
@@ -2247,7 +2423,7 @@ let
         '';
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/jackmacwindows.vscode-computercraft/changelog";
-          description = "A Visual Studio Code extension for ComputerCraft and CC: Tweaked auto-completion";
+          description = "Visual Studio Code extension for ComputerCraft and CC: Tweaked auto-completion";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=jackmacwindows.vscode-computercraft";
           homepage = "https://github.com/MCJack123/vscode-computercraft";
           license = lib.licenses.mit;
@@ -2313,7 +2489,7 @@ let
           hash = "sha256-BHw+T2EPdQq/wOD5kzvSln5SBFTYUXip8QDjnAGBfFY=";
         };
         meta = {
-          description = "A VSCode extension to formats all files in the current workspace";
+          description = "VSCode extension to formats all files in the current workspace";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=jbockle.jbockle-format-files";
           homepage = "https://github.com/jbockle/format-files";
           license = lib.licenses.mit;
@@ -2330,7 +2506,7 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/jdinhlife.gruvbox/changelog";
-          description = "A port of Gruvbox theme to VS Code editor";
+          description = "Port of Gruvbox theme to VS Code editor";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=jdinhlife.gruvbox";
           homepage = "https://github.com/jdinhify/vscode-theme-gruvbox";
           license = lib.licenses.mit;
@@ -2420,7 +2596,7 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/julialang.language-julia/changelog";
-          description = "A Visual Studio Code extension for Julia programming language";
+          description = "Visual Studio Code extension for Julia programming language";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=julialang.language-julia";
           homepage = "https://github.com/julia-vscode/julia-vscode";
           license = lib.licenses.mit;
@@ -2549,6 +2725,23 @@ let
           };
         };
 
+      kravets.vscode-publint = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vscode-publint";
+          publisher = "Kravets";
+          version = "0.0.1";
+          hash = "sha256-6nG5Yqi8liumQ2K9ynV8mNXiXGaGo/cp4Cib1kqdp1c=";
+        };
+        meta = {
+          changelog = "https://marketplace.visualstudio.com/items/Kravets.vscode-publint/changelog";
+          description = "Lint packaging errors in VS Code with publint";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=Kravets.vscode-publint";
+          homepage = "https://github.com/kravetsone/vscode-publint";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.uncenter ];
+        };
+      };
+
       kubukoz.nickel-syntax = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "nickel-syntax";
@@ -2561,6 +2754,22 @@ let
         };
       };
 
+      lapo.asn1js = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "asn1js";
+          publisher = "lapo";
+          version = "0.1.4";
+          hash = "sha256-utbIKlwNHnJZj/51f8hEDmUA/A26De/gY73iT4tXKRU=";
+        };
+        meta = {
+          description = "Decode ASN.1 content inside VSCode";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=lapo.asn1js";
+          homepage = "https://github.com/lapo-luchini/vscode-asn1js";
+          maintainers = with lib.maintainers; [ katexochen ];
+          license = lib.licenses.isc;
+        };
+      };
+
       llvm-org.lldb-vscode = llvmPackages.lldb;
 
       llvm-vs-code-extensions.vscode-clangd = buildVscodeMarketplaceExtension {
@@ -2701,7 +2910,7 @@ let
           hash = "sha256-0FX5KBsvUmI+JMGBnaI3kJmmD+Y6XFl7LRHU0ADbHos=";
         };
         meta = {
-          description = "VsCoq is an extension for Visual Studio Code (VS Code) and VSCodium with support for the Coq Proof Assistant.";
+          description = "VsCoq is an extension for Visual Studio Code (VS Code) and VSCodium with support for the Coq Proof Assistant";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=maximedenes.vscoq";
           homepage = "https://github.com/coq-community/vscoq";
           license = lib.licenses.mit;
@@ -2721,6 +2930,40 @@ let
         };
       };
 
+      meganrogge.template-string-converter = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "template-string-converter";
+          publisher = "meganrogge";
+          version = "0.6.1";
+          hash = "sha256-w0ppzh0m/9Hw3BPJbAKsNcMStdzoH9ODf3zweRcCG5k=";
+        };
+        meta = {
+          changelog = "https://marketplace.visualstudio.com/items/meganrogge.template-string-converter/changelog";
+          description = "VS Code extension to autocorrect from quotes to backticks";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=meganrogge.template-string-converter";
+          homepage = "https://github.com/meganrogge/template-string-converter";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.uncenter ];
+        };
+      };
+
+      mesonbuild.mesonbuild = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          publisher = "mesonbuild";
+          name = "mesonbuild";
+          version = "1.24.0";
+          hash = "sha256-n7c2CUiTIej2Y/QMGWpv6anuCDjqpo2W+hJylfvvMVE=";
+        };
+        meta = {
+          changelog = "https://marketplace.visualstudio.com/items/mesonbuild.mesonbuild/changelog";
+          description = "Meson language support for Visual Studio Code";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=mesonbuild.mesonbuild";
+          homepage = "https://github.com/mesonbuild/vscode-meson";
+          maintainers = with lib.maintainers; [ Anillc ];
+          license = lib.licenses.asl20;
+        };
+      };
+
       mgt19937.typst-preview = callPackage ./mgt19937.typst-preview { };
 
       mhutchie.git-graph = buildVscodeMarketplaceExtension {
@@ -2784,7 +3027,7 @@ let
 
         meta = {
           changelog = "https://github.com/moshfeu/vscode-compare-folders/releases";
-          description = "The extension allows you to compare folders, show the diffs in a list and present diff in a splitted view side by side";
+          description = "Extension allows you to compare folders, show the diffs in a list and present diff in a splitted view side by side";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=moshfeu.compare-folders";
           homepage = "https://github.com/moshfeu/vscode-compare-folders";
           license = lib.licenses.mit;
@@ -2991,7 +3234,7 @@ let
           hash = "sha256-rHST7CYCVins3fqXC+FYiS5Xgcjmi7QW7M4yFrUR04U=";
         };
         meta = {
-          description = "Popular extensions for C++ development in Visual Studio Code.";
+          description = "Popular extensions for C++ development in Visual Studio Code";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools-extension-pack";
           homepage = "https://github.com/microsoft/vscode-cpptools";
           license = lib.licenses.mit;
@@ -3046,7 +3289,7 @@ let
           hash = "sha256-FJolnWU0DbuQYvMuGL3mytf0h39SH9rUPCl2ahLXLuY=";
         };
         meta = {
-          description = "A Visual Studio Code extension for PowerShell language support";
+          description = "Visual Studio Code extension for PowerShell language support";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=ms-vscode.PowerShell";
           homepage = "https://github.com/PowerShell/vscode-powershell";
           license = lib.licenses.mit;
@@ -3062,7 +3305,7 @@ let
           hash = "sha256-M53jhAVawk2yCeSrLkWrUit3xbDc0zgCK2snbK+BaSs=";
         };
         meta = {
-          description = "A Visual Studio Code extension that converts from the Test Explorer UI API into native VS Code testing";
+          description = "Visual Studio Code extension that converts from the Test Explorer UI API into native VS Code testing";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=ms-vscode.test-adapter-converter";
           homepage = "https://github.com/microsoft/vscode-test-adapter-converter";
           license = lib.licenses.mit;
@@ -3077,7 +3320,7 @@ let
           hash = "sha256-qakwJWak+IrIeeVcMDWV/fLPx5M8LQGCyhVt4TS/Lmc=";
         };
         meta = {
-          description = "Additional Tomorrow and Tomorrow Night themes for VS Code. Based on the TextMate themes.";
+          description = "Additional Tomorrow and Tomorrow Night themes for VS Code. Based on the TextMate themes";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=ms-vscode.Theme-TomorrowKit";
           homepage = "https://github.com/microsoft/vscode-themes";
           license = lib.licenses.mit;
@@ -3093,8 +3336,8 @@ let
           hash = "sha256-E9H1nPWG5JuzBxbYc/yWd8Y3azEWrd9whGirl0GK7kU=";
         };
         meta = {
-          description = "Open any folder or repository inside a Docker container.";
-          downloadPage = "Use a container as your development environment";
+          description = "Open any folder or repository inside a Docker container";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers";
           homepage = "https://code.visualstudio.com/docs/devcontainers/containers";
           license = lib.licenses.unfree;
           maintainers = [ lib.maintainers.anthonyroussel ];
@@ -3103,6 +3346,39 @@ let
 
       ms-vscode-remote.remote-ssh = callPackage ./ms-vscode-remote.remote-ssh { };
 
+      ms-vscode-remote.remote-ssh-edit = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "remote-ssh-edit";
+          publisher = "ms-vscode-remote";
+          version = "0.86.0";
+          hash = "sha256-JsbaoIekUo2nKCu+fNbGlh5d1Tt/QJGUuXUGP04TsDI=";
+        };
+        meta = {
+          description = "A Visual Studio Code extension that complements the Remote SSH extension with syntax colorization, keyword intellisense, and simple snippets when editing SSH configuration files";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh-edit";
+          homepage = "https://code.visualstudio.com/docs/remote/ssh";
+          license = lib.licenses.unfree;
+          maintainers = [ lib.maintainers.pandapip1 ];
+        };
+      };
+
+      ms-vscode-remote.remote-wsl = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "remote-wsl";
+          publisher = "ms-vscode-remote";
+          version = "0.88.2";
+          hash = "sha256-fl7fLNd3EHA9eMiPUIL/23SUiA81gveqZLFkqaHTX+Q=";
+        };
+        meta = {
+          changelog = "https://marketplace.visualstudio.com/items/ms-vscode-remote.remote-wsl/changelog";
+          description = "Windows Subsystem for Linux support for Visual Studio Code";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl";
+          homepage = "https://code.visualstudio.com/docs/remote/wsl";
+          license = lib.licenses.unfree;
+          maintainers = [ lib.maintainers.uncenter ];
+        };
+      };
+
       ms-vsliveshare.vsliveshare = callPackage ./ms-vsliveshare.vsliveshare { };
 
       mshr-h.veriloghdl = buildVscodeMarketplaceExtension {
@@ -3114,7 +3390,7 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/mshr-h.VerilogHDL/changelog";
-          description = "A Visual Studio Code extension for supporting Verilog-HDL, SystemVerilog, Bluespec and SystemVerilog";
+          description = "Visual Studio Code extension for supporting Verilog-HDL, SystemVerilog, Bluespec and SystemVerilog";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=mshr-h.VerilogHDL";
           homepage = "https://github.com/mshr-h/vscode-verilog-hdl-support";
           license = lib.licenses.mit;
@@ -3197,6 +3473,23 @@ let
         };
       };
 
+      nefrob.vscode-just-syntax = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vscode-just-syntax";
+          publisher = "nefrob";
+          version = "0.3.0";
+          hash = "sha256-WBoqH9TNco9lyjOJfP54DynjmYZmPUY+YrZ1rQlC518=";
+        };
+        meta = {
+          changelog = "https://marketplace.visualstudio.com/items/nefrob.vscode-just-syntax/changelog";
+          description = "Justfile syntax support for Visual Studio Code";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=nefrob.vscode-just-syntax";
+          homepage = "https://github.com/nefrob/vscode-just";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.uncenter ];
+        };
+      };
+
       njpwerner.autodocstring = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "autodocstring";
@@ -3239,7 +3532,7 @@ let
           hash = "sha256-fatJZquCDsLDFGVzBol2D6LIZUbZ6GzqcVEFAwLodW0=";
         };
         meta = {
-          description = "A dark theme designed specifically for syntax highlighting";
+          description = "Dark theme designed specifically for syntax highlighting";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=nur.just-black";
           homepage = "https://github.com/nurmohammed840/extension.vsix/tree/Just-Black";
           license = lib.licenses.mit;
@@ -3294,6 +3587,21 @@ let
         };
       };
 
+      phind.phind = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "phind";
+          publisher = "phind";
+          version = "0.22.2";
+          hash = "sha256-nN/7IVa4WaA5V39CHx0nrvWBmBNtISvAINTQzk02x1w=";
+        };
+        meta = {
+          description = "Using Phind AI service to provide answers based on the code context";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=phind.phind";
+          license = lib.licenses.unfree;
+          maintainers = [ lib.maintainers.onny ];
+        };
+      };
+
       phoenixframework.phoenix = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "phoenix";
@@ -3376,7 +3684,7 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/PythagoraTechnologies.gpt-pilot-vs-code/changelog";
-          description = "A VSCode extension for assisting the developer to code, debug, build applications using LLMs/AI";
+          description = "VSCode extension for assisting the developer to code, debug, build applications using LLMs/AI";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=PythagoraTechnologies.gpt-pilot-vs-code";
           homepage = "https://github.com/Pythagora-io/gpt-pilot/";
           license = lib.licenses.asl20;
@@ -3477,7 +3785,7 @@ let
           hash = "sha256-KQiSD18W9NnsqhRt+XM3ko70u4zX4enn3OpMt0ebViU=";
         };
         meta = {
-          description = "C/C++ must-have highlighter that understands many coding styles and APIs. Use with 'Reloaded Themes' extension.";
+          description = "C/C++ must-have highlighter that understands many coding styles and APIs. Use with 'Reloaded Themes' extension";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=reloadedextensions.reloaded-cpp";
           homepage = "https://github.com/kobalicek/reloaded-cpp";
           license = lib.licenses.mit;
@@ -3752,7 +4060,7 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/signageos.signageos-vscode-sops/changelog";
-          description = "A Visual Studio Code extension for SOPS support";
+          description = "Visual Studio Code extension for SOPS support";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=signageos.signageos-vscode-sops";
           homepage = "https://github.com/signageos/vscode-sops";
           license = lib.licenses.unfree;
@@ -3769,7 +4077,7 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/silofy.hackthebox/changelog";
-          description = "A Visual Studio Code theme built for hackers by hackers";
+          description = "Visual Studio Code theme built for hackers by hackers";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=silofy.hackthebox";
           homepage = "https://github.com/silofy/hackthebox";
           license = lib.licenses.mit;
@@ -3884,7 +4192,7 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/stephlin.vscode-tmux-keybinding/changelog";
-          description = "A simple extension for tmux behavior in vscode terminal.";
+          description = "Simple extension for tmux behavior in vscode terminal";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=stephlin.vscode-tmux-keybinding";
           homepage = "https://github.com/StephLin/vscode-tmux-keybinding";
           license = lib.licenses.mit;
@@ -3901,7 +4209,7 @@ let
         };
         meta = {
           changelog = "https://github.com/stkb/Rewrap/blob/master/CHANGELOG.md";
-          description = "Hard word wrapping for comments and other text at a given column.";
+          description = "Hard word wrapping for comments and other text at a given column";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=stkb.rewrap";
           homepage = "https://github.com/stkb/Rewrap#readme";
           license = lib.licenses.asl20;
@@ -3913,8 +4221,8 @@ let
         mktplcRef = {
           name = "code-spell-checker";
           publisher = "streetsidesoftware";
-          version = "3.0.1";
-          hash = "sha256-KeYE6/yO2n3RHPjnJOnOyHsz4XW81y9AbkSC/I975kQ=";
+          version = "4.0.3";
+          hash = "sha256-CEGwbw5RpFsfB/g2inScIqWB7/3oxgxz7Yuc6V3OiHg=";
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/streetsidesoftware.code-spell-checker/changelog";
@@ -3969,7 +4277,7 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/supermaven.supermaven/changelog";
-          description = "A Visual Studio Code extension for code completion suggestions";
+          description = "Visual Studio Code extension for code completion suggestions";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=supermaven.supermaven";
           homepage = "https://supermaven.com/";
           license = lib.licenses.unfree;
@@ -4064,7 +4372,7 @@ let
           hash = "sha256-PdhNFyVUWcOfli/ZlT+6TmtWrV31fBP1E1Vd4QWOY+A=";
         };
         meta = {
-          description = "Icons for Visual Studio Code.";
+          description = "Icons for Visual Studio Code";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=tal7aouy.icons";
           homepage = "https://github.com/tal7aouy/vscode-icons";
           license = lib.licenses.mit;
@@ -4092,7 +4400,7 @@ let
           sha256 = "sha256-+IFqgWliKr+qjBLmQlzF44XNbN7Br5a119v9WAnZOu4=";
         };
         meta = {
-          description = "A simple theme with bright colors and comes in three versions — dark, light and mirage for all day long comfortable work.";
+          description = "Simple theme with bright colors and comes in three versions — dark, light and mirage for all day long comfortable work";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=teabyii.ayu";
           homepage = "https://github.com/ayu-theme/vscode-ayu";
           license = lib.licenses.mit;
@@ -4107,7 +4415,7 @@ let
           hash = "sha256-t9DYY1fqW7M5F1pbIUtnnodxMzIzURew4RXT78djWMI=";
         };
         meta = {
-          description = "A VSCode extension that provides some language features for Yew's html macro syntax";
+          description = "VSCode extension that provides some language features for Yew's html macro syntax";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=TechTheAwesome.rust-yew";
           homepage = "https://github.com/TechTheAwesome/code-yew-server";
           license = lib.licenses.gpl3Only;
@@ -4152,7 +4460,7 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/thorerik.hacker-theme/changelog";
-          description = "The perfect theme for writing IP tracers in Visual Basic and reverse-proxying a UNIX-system firewall";
+          description = "Perfect theme for writing IP tracers in Visual Basic and reverse-proxying a UNIX-system firewall";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=thorerik.hacker-theme";
           homepage = "https://github.com/thorerik/vscode-hacker-theme";
           license = lib.licenses.mit;
@@ -4224,7 +4532,7 @@ let
         };
         meta = {
           changelog = "https://github.com/open-policy-agent/vscode-opa/blob/master/CHANGELOG.md";
-          description = "An extension for VS Code which provides support for OPA";
+          description = "Extension for VS Code which provides support for OPA";
           homepage = "https://github.com/open-policy-agent/vscode-opa";
           license = lib.licenses.asl20;
           maintainers = [ lib.maintainers.msanft ];
@@ -4289,8 +4597,8 @@ let
         mktplcRef = {
           name = "uiua-vscode";
           publisher = "uiua-lang";
-          version = "0.0.42";
-          hash = "sha256-cgLWgMej1Nv8kNK2MfgO3Z/xJPXdcmYs8LXrFNfc3jQ=";
+          version = "0.0.44";
+          hash = "sha256-lumK7gcj/NIhiZKT6F++ZsTFKWw7ZVaKZgIsQvZAGs4=";
         };
         meta = {
           description = "VSCode language extension for Uiua";
@@ -4316,7 +4624,7 @@ let
           rm -r $out/share/vscode/extensions/uloco.theme-bluloco-light/screenshots
         '';
         meta = {
-          description = "A fancy but yet sophisticated light designer color scheme / theme for Visual Studio Code";
+          description = "Fancy but yet sophisticated light designer color scheme / theme for Visual Studio Code";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=uloco.theme-bluloco-light";
           homepage = "https://github.com/uloco/theme-bluloco-light";
           license = lib.licenses.lgpl3;
@@ -4348,7 +4656,7 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/usernamehw.errorlens/changelog";
-          description = "A Visual Studio Code extension that improves highlighting of errors, warnings and other language diagnostics";
+          description = "Visual Studio Code extension that improves highlighting of errors, warnings and other language diagnostics";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens";
           homepage = "https://github.com/usernamehw/vscode-error-lens";
           license = lib.licenses.mit;
@@ -4422,7 +4730,7 @@ let
           hash = "sha256-aXAS3QX+mrX0kJqf1LUsvguqRxxC0o+jj1bKQteXPNA=";
         };
         meta = {
-          description = "See relevant code examples from GitHub for over 100K different APIs right in your editor.";
+          description = "See relevant code examples from GitHub for over 100K different APIs right in your editor";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.intellicode-api-usage-examples";
           homepage = "https://github.com/MicrosoftDocs/intellicode";
           license = lib.licenses.cc-by-40;
@@ -4446,6 +4754,23 @@ let
         };
       };
 
+      vitaliymaz.vscode-svg-previewer = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vscode-svg-previewer";
+          publisher = "vitaliymaz";
+          version = "0.7.0";
+          hash = "sha256-iX+Js2Pqz1gLDwrihuYtDwQG4ek7GiOhL3M0j3jHF/Y=";
+        };
+        meta = {
+          changelog = "https://marketplace.visualstudio.com/items/vitaliymaz.vscode-svg-previewer/changelog";
+          description = "Preview SVGs in VS Code";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=vitaliymaz.vscode-svg-previewer";
+          homepage = "https://github.com/vitaliymaz/vscode-svg-previewer";
+          license = lib.licenses.unfree;
+          maintainers = [ lib.maintainers.uncenter ];
+        };
+      };
+
       vlanguage.vscode-vlang = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "vscode-vlang";
@@ -4454,7 +4779,7 @@ let
           hash = "sha256-hlBALxBs5wZZFk4lgAkdkGs731Xuc2p0qxffOW6mMWQ=";
         };
         meta = {
-          description = "V language support (syntax highlighting, formatter, snippets) for Visual Studio Code.";
+          description = "V language support (syntax highlighting, formatter, snippets) for Visual Studio Code";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=vlanguage.vscode-vlang";
           homepage = "https://github.com/vlang/vscode-vlang";
           license = lib.licenses.mit;
@@ -4472,7 +4797,7 @@ let
 
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/vscjava.vscode-gradle/changelog";
-          description = "A Visual Studio Code extension for Gradle build tool";
+          description = "Visual Studio Code extension for Gradle build tool";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-gradle";
           homepage = "https://github.com/microsoft/vscode-gradle";
           license = lib.licenses.mit;
@@ -4560,8 +4885,8 @@ let
         mktplcRef = {
           name = "vscode-icons";
           publisher = "vscode-icons-team";
-          version = "12.2.0";
-          sha256 = "12s5br0s9n99vjn6chivzdsjb71p0lai6vnif7lv13x497dkw4rz";
+          version = "12.8.0";
+          hash = "sha256-2+Wf0AL9C5xOQCjA9maMt/W/kviNuiyMfaOFDU82KxM=";
         };
         meta = {
           description = "Bring real icons to your Visual Studio Code";
@@ -4605,7 +4930,7 @@ let
         };
         meta = {
           changelog = "https://github.com/vuejs/language-tools/blob/master/CHANGELOG.md";
-          description = "The official Vue VSCode extension";
+          description = "Official Vue VSCode extension";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=Vue.volar";
           homepage = "https://github.com/vuejs/language-tools";
           license = lib.licenses.mit;
@@ -4701,7 +5026,7 @@ let
           hash = "sha256-tN/jlG2PzuiCeERpgQvdqDoa3UgrUaM7fKHv6KFqujc=";
         };
         meta = {
-          description = "A VSCode extension for quickly changing the case (camelCase, CONSTANT_CASE, snake_case, etc) of the current selection or current word";
+          description = "VSCode extension for quickly changing the case (camelCase, CONSTANT_CASE, snake_case, etc) of the current selection or current word";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=wmaurer.change-case";
           homepage = "https://github.com/wmaurer/vscode-change-case";
           license = lib.licenses.mit;
@@ -4733,6 +5058,23 @@ let
         };
       };
 
+      xdebug.php-debug = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "php-debug";
+          publisher = "xdebug";
+          version = "1.34.0";
+          hash = "sha256-WAcXWCMmvuw7nkfGcOgmK+s+Nw6XpvNR4POXD85E/So=";
+        };
+        meta = {
+          description = "PHP Debug Adapter";
+          license = lib.licenses.mit;
+          homepage = "https://github.com/xdebug/vscode-php-debug";
+          changelog = "https://github.com/xdebug/vscode-php-debug/blob/main/CHANGELOG.md";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=xdebug.php-debug";
+          maintainers = [ lib.maintainers.onny ];
+        };
+      };
+
       xyz.local-history = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "local-history";
@@ -4745,6 +5087,22 @@ let
         };
       };
 
+      yoavbls.pretty-ts-errors = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "pretty-ts-errors";
+          publisher = "yoavbls";
+          version = "0.5.3";
+          hash = "sha256-JSCyTzz10eoUNu76wNUuvPVVKq4KaVKobS1CAPqgXUA=";
+        };
+        meta = {
+          description = "Make TypeScript errors prettier and human-readable in VSCode";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=yoavbls.pretty-ts-errors";
+          homepage = "https://github.com/yoavbls/pretty-ts-errors";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.uncenter ];
+        };
+      };
+
       yzhang.dictionary-completion = buildVscodeMarketplaceExtension {
         mktplcRef = {
           publisher = "yzhang";
@@ -4753,7 +5111,7 @@ let
           hash = "sha256-dpJcJARRKzRNHfXs/qknud8OQ8xIyeaVnt/EcDq0k4E=";
         };
         meta = {
-          description = "A Visual Studio Code extension to help user easyly finish long words ";
+          description = "Visual Studio Code extension to help user easyly finish long words ";
           longDescription = ''
             Dictionary completion allows user to get a list of keywords, based off of the current word at the cursor.
             This is useful if you are typing a long word (e.g. acknowledgeable) and don't want to finish typing or don't remember the Spelling
@@ -4782,6 +5140,22 @@ let
         };
       };
 
+      zaaack.markdown-editor = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "markdown-editor";
+          publisher = "zaaack";
+          version = "0.1.10";
+          hash = "sha256-K1nczR059BsiHpT1xdtJjpFLl5krt4H9+CrEsIycq9U=";
+        };
+        meta = {
+          description = "Visual Studio Code extension for WYSIWYG markdown editing";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=zaaack.markdown-editor";
+          homepage = "https://github.com/zaaack/vscode-markdown-editor";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.pandapip1 ];
+        };
+      };
+
       zainchen.json = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "json";
@@ -4791,13 +5165,29 @@ let
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/ZainChen.json/changelog";
-          description = "A Visual Studio Code extension for JSON support";
+          description = "Visual Studio Code extension for JSON support";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=ZainChen.json";
           license = lib.licenses.mit;
           maintainers = [ lib.maintainers.rhoriguchi ];
         };
       };
 
+      zguolee.tabler-icons = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "tabler-icons";
+          publisher = "zguolee";
+          version = "0.3.4";
+          hash = "sha256-0XvB9UXqKHbL/ejUfciSvFzZ3GacaQ7pq6hJqRaxq+8=";
+        };
+        meta = {
+          description = "Tabler product icon theme for Visual Studio Code";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=zguolee.tabler-icons";
+          homepage = "https://github.com/zguolee/vscode-tabler-icons";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.uncenter ];
+        };
+      };
+
       zhuangtongfa.material-theme = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "material-theme";
@@ -4818,7 +5208,7 @@ let
           hash = "sha256-PXaHSEXoN0ZboHIoDg37tZ+Gv6xFXP4wGBS3YS/53TY=";
         };
         meta = {
-          description = "Basic RISC-V colorization and snippets support.";
+          description = "Basic RISC-V colorization and snippets support";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=zhwu95.riscv";
           homepage = "https://github.com/zhuanhao-wu/vscode-riscv-support";
           license = lib.licenses.mit;
@@ -4865,18 +5255,18 @@ let
     };
 
   aliases = super: {
-    _13xforever = super."13xforever";
-    _1Password = super."1Password";
-    _2gua = super."2gua";
-    _4ops = super."4ops";
-    Arjun.swagger-viewer = super.arjun.swagger-viewer;
-    jakebecker.elixir-ls = super.elixir-lsp.vscode-elixir-ls;
-    jpoissonnier.vscode-styled-components = super.styled-components.vscode-styled-components;
-    matklad.rust-analyzer = super.rust-lang.rust-analyzer; # Previous publisher
-    ms-vscode.go = super.golang.go;
-    ms-vscode.PowerShell = super.ms-vscode.powershell;
-    rioj7.commandOnAllFiles = super.rioj7.commandonallfiles;
-    WakaTime.vscode-wakatime = super.wakatime.vscode-wakatime;
+    _13xforever = throw "_13xforever is deprecated in favor of 13xforever"; # Added 2024-05-29
+    _1Password = throw "_1Password is deprecated in favor of 1Password"; # Added 2024-05-29
+    _2gua = throw "_2gua is deprecated in favor of 2gua"; # Added 2024-05-29
+    _4ops = throw "_4ops is deprecated in favor of 4ops"; # Added 2024-05-29
+    Arjun.swagger-viewer = throw "Arjun.swagger-viewer is deprecated in favor of arjun.swagger-viewer"; # Added 2024-05-29
+    jakebecker.elixir-ls = throw "jakebecker.elixir-ls is deprecated in favor of elixir-lsp.vscode-elixir-ls"; # Added 2024-05-29
+    jpoissonnier.vscode-styled-components = throw "jpoissonnier.vscode-styled-components is deprecated in favor of styled-components.vscode-styled-components"; # Added 2024-05-29
+    matklad.rust-analyzer = throw "matklad.rust-analyzer is deprecated in favor of rust-lang.rust-analyzer"; # Added 2024-05-29
+    ms-vscode.go = throw "ms-vscode.go is deprecated in favor of golang.go"; # Added 2024-05-29
+    ms-vscode.PowerShell = throw "ms-vscode.PowerShell is deprecated in favor of super.ms-vscode.powershell"; # Added 2024-05-29
+    rioj7.commandOnAllFiles = throw "rioj7.commandOnAllFiles is deprecated in favor of rioj7.commandonallfiles"; # Added 2024-05-29
+    WakaTime.vscode-wakatime = throw "WakaTime.vscode-wakatime is deprecated in favor of wakatime.vscode-wakatime"; # Added 2024-05-29
   };
 
   # TODO: add overrides overlay, so that we can have a generated.nix
diff --git a/pkgs/applications/editors/vscode/extensions/equinusocio.vsc-material-theme/default.nix b/pkgs/applications/editors/vscode/extensions/equinusocio.vsc-material-theme/default.nix
index ba20cb5b3bbe4..c85d7c271280b 100644
--- a/pkgs/applications/editors/vscode/extensions/equinusocio.vsc-material-theme/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/equinusocio.vsc-material-theme/default.nix
@@ -16,7 +16,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
 
   meta = with lib; {
     changelog = "https://marketplace.visualstudio.com/items/Equinusocio.vsc-material-theme/changelog";
-    description = "The most epic theme now for Visual Studio Code";
+    description = "Most epic theme now for Visual Studio Code";
     downloadPage = "https://marketplace.visualstudio.com/items?itemName=Equinusocio.vsc-material-theme";
     homepage = "https://github.com/material-theme/vsc-material-theme";
     license = licenses.asl20;
diff --git a/pkgs/applications/editors/vscode/extensions/eugleo.magic-racket/default.nix b/pkgs/applications/editors/vscode/extensions/eugleo.magic-racket/default.nix
index 81b0520a53d71..f9165e7da0d94 100644
--- a/pkgs/applications/editors/vscode/extensions/eugleo.magic-racket/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/eugleo.magic-racket/default.nix
@@ -24,7 +24,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
   '';
   meta = {
     changelog = "https://marketplace.visualstudio.com/items/evzen-wybitul.magic-racket/changelog";
-    description = "The best coding experience for Racket in VS Code";
+    description = "Best coding experience for Racket in VS Code";
     downloadPage = "https://marketplace.visualstudio.com/items?itemName=evzen-wybitul.magic-racket";
     homepage = "https://github.com/Eugleo/magic-racket";
     license = lib.licenses.agpl3Only;
diff --git a/pkgs/applications/editors/vscode/extensions/jackmacwindows.craftos-pc/default.nix b/pkgs/applications/editors/vscode/extensions/jackmacwindows.craftos-pc/default.nix
index 27f091d5110f6..e2c8e46773d41 100644
--- a/pkgs/applications/editors/vscode/extensions/jackmacwindows.craftos-pc/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/jackmacwindows.craftos-pc/default.nix
@@ -33,7 +33,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
   '';
   meta = {
     changelog = "https://marketplace.visualstudio.com/items/jackmacwindows.craftos-pc/changelog";
-    description = "A Visual Studio Code extension for opening a CraftOS-PC window";
+    description = "Visual Studio Code extension for opening a CraftOS-PC window";
     downloadPage = "https://marketplace.visualstudio.com/items?itemName=jackmacwindows.craftos-pc";
     homepage = "https://www.craftos-pc.cc/docs/extension";
     license = lib.licenses.mit;
diff --git a/pkgs/applications/editors/vscode/extensions/jebbs.plantuml/default.nix b/pkgs/applications/editors/vscode/extensions/jebbs.plantuml/default.nix
index afe4cd7bdb742..eb6b5ab49626c 100644
--- a/pkgs/applications/editors/vscode/extensions/jebbs.plantuml/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/jebbs.plantuml/default.nix
@@ -23,7 +23,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
   '';
 
   meta = {
-    description = "A Visual Studio Code extension for supporting Rich PlantUML";
+    description = "Visual Studio Code extension for supporting Rich PlantUML";
     downloadPage = "https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml";
     homepage = "https://github.com/qjebbs/vscode-plantuml";
     changelog = "https://marketplace.visualstudio.com/items/jebbs.plantuml/changelog";
diff --git a/pkgs/applications/editors/vscode/extensions/kamadorueda.alejandra/default.nix b/pkgs/applications/editors/vscode/extensions/kamadorueda.alejandra/default.nix
index a3658346147e3..a9c07334c7b0b 100644
--- a/pkgs/applications/editors/vscode/extensions/kamadorueda.alejandra/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/kamadorueda.alejandra/default.nix
@@ -30,7 +30,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
     | sponge package.json
   '';
   meta = {
-    description = "The Uncompromising Nix Code Formatter";
+    description = "Uncompromising Nix Code Formatter";
     homepage = "https://github.com/kamadorueda/alejandra";
     license = lib.licenses.unlicense;
     maintainers = [ lib.maintainers.kamadorueda ];
diff --git a/pkgs/applications/editors/vscode/extensions/mgt19937.typst-preview/default.nix b/pkgs/applications/editors/vscode/extensions/mgt19937.typst-preview/default.nix
index 615589bf8dd79..c3319e375d094 100644
--- a/pkgs/applications/editors/vscode/extensions/mgt19937.typst-preview/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/mgt19937.typst-preview/default.nix
@@ -12,8 +12,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
   mktplcRef = {
     name = "typst-preview";
     publisher = "mgt19937";
-    version = "0.11.6";
-    hash = "sha256-8//6eUzMg5AX9NNQm5mzNGlOG50Cxl0Rt1+dPq0J2DU=";
+    version = "0.11.7";
+    hash = "sha256-70dVGoSBDKCtvn7xiC/gAh4OQ8nNDiI/M900r2zlOfU=";
   };
 
   buildInputs = [ typst-preview ];
diff --git a/pkgs/applications/editors/vscode/extensions/ms-dotnettools.csdevkit/default.nix b/pkgs/applications/editors/vscode/extensions/ms-dotnettools.csdevkit/default.nix
index 50480e3460a95..b98c35a3f078b 100644
--- a/pkgs/applications/editors/vscode/extensions/ms-dotnettools.csdevkit/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/ms-dotnettools.csdevkit/default.nix
@@ -116,7 +116,7 @@ buildVscodeMarketplaceExtension {
 
   meta = {
     changelog = "https://marketplace.visualstudio.com/items/ms-dotnettools.csdevkit/changelog";
-    description = "The official Visual Studio Code extension for C# from Microsoft";
+    description = "Official Visual Studio Code extension for C# from Microsoft";
     downloadPage = "https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit";
     license = lib.licenses.unfree;
     maintainers = [ lib.maintainers.ggg ];
diff --git a/pkgs/applications/editors/vscode/extensions/ms-python.python/default.nix b/pkgs/applications/editors/vscode/extensions/ms-python.python/default.nix
index 35bc6cdcef238..5d56759f08615 100644
--- a/pkgs/applications/editors/vscode/extensions/ms-python.python/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/ms-python.python/default.nix
@@ -82,7 +82,7 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
   '';
 
   meta = {
-    description = "A Visual Studio Code extension with rich support for the Python language";
+    description = "Visual Studio Code extension with rich support for the Python language";
     downloadPage = "https://marketplace.visualstudio.com/items?itemName=ms-python.python";
     homepage = "https://github.com/Microsoft/vscode-python";
     changelog = "https://github.com/microsoft/vscode-python/releases";
diff --git a/pkgs/applications/editors/vscode/extensions/ms-python.vscode-pylance/default.nix b/pkgs/applications/editors/vscode/extensions/ms-python.vscode-pylance/default.nix
index ad8c6a9eac461..780b0e12896ea 100644
--- a/pkgs/applications/editors/vscode/extensions/ms-python.vscode-pylance/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/ms-python.vscode-pylance/default.nix
@@ -8,15 +8,15 @@ vscode-utils.buildVscodeMarketplaceExtension {
   mktplcRef = {
     name = "vscode-pylance";
     publisher = "MS-python";
-    version = "2024.5.1";
-    hash = "sha256-w+T4dySTt2RpdBYd1Nnxh8RR9wqEu9pkS4R1Ay7Fn+8=";
+    version = "2024.6.1";
+    hash = "sha256-NOx0WJC32MUm6TmLkiN67FHKwBmB0S3feFVIQNxR2PQ=";
   };
 
   buildInputs = [ pyright ];
 
   meta = {
     changelog = "https://marketplace.visualstudio.com/items/ms-python.vscode-pylance/changelog";
-    description = "A performant, feature-rich language server for Python in VS Code";
+    description = "Performant, feature-rich language server for Python in VS Code";
     downloadPage = "https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance";
     homepage = "https://github.com/microsoft/pylance-release";
     license = lib.licenses.unfree;
diff --git a/pkgs/applications/editors/vscode/extensions/ms-toolsai.jupyter/default.nix b/pkgs/applications/editors/vscode/extensions/ms-toolsai.jupyter/default.nix
index 41803cadb3a79..25dcb68952141 100644
--- a/pkgs/applications/editors/vscode/extensions/ms-toolsai.jupyter/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/ms-toolsai.jupyter/default.nix
@@ -9,8 +9,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
   mktplcRef = {
     name = "jupyter";
     publisher = "ms-toolsai";
-    version = "2024.2.0";
-    hash = "sha256-QavZ8NNeu0FHLvorhHybzfmdQqKnyXD6MYA8AzabPQw=";
+    version = "2024.5.0";
+    hash = "sha256-bGHXbqv+YXC8NUXIY+bxFsMvoV6h8E2/2F6Ku4bJwT0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/editors/vscode/extensions/ms-vscode-remote.remote-ssh/default.nix b/pkgs/applications/editors/vscode/extensions/ms-vscode-remote.remote-ssh/default.nix
index 3872aad7ea4b8..20a8769d90470 100644
--- a/pkgs/applications/editors/vscode/extensions/ms-vscode-remote.remote-ssh/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/ms-vscode-remote.remote-ssh/default.nix
@@ -98,7 +98,7 @@ buildVscodeMarketplaceExtension {
   };
 
   meta = {
-    description = "Use any remote machine with a SSH server as your development environment.";
+    description = "Use any remote machine with a SSH server as your development environment";
     license = lib.licenses.unfree;
     maintainers = [ lib.maintainers.tbenst ];
   };
diff --git a/pkgs/applications/editors/vscode/extensions/ms-vscode.cpptools/default.nix b/pkgs/applications/editors/vscode/extensions/ms-vscode.cpptools/default.nix
index 0e23614a166d7..13684518a302c 100644
--- a/pkgs/applications/editors/vscode/extensions/ms-vscode.cpptools/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/ms-vscode.cpptools/default.nix
@@ -73,6 +73,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
     stdenv.cc.cc.lib
   ];
 
+  dontAutoPatchelf = true;
+
   postPatch = ''
     mv ./package.json ./package_orig.json
 
@@ -87,21 +89,30 @@ vscode-utils.buildVscodeMarketplaceExtension {
     touch "./install.lock"
 
     # Clang-format from nix package.
-    mv ./LLVM/ ./LLVM_orig
+    rm -rf ./LLVM
     mkdir "./LLVM/"
     find "${clang-tools}" -mindepth 1 -maxdepth 1 | xargs ln -s -t "./LLVM"
 
     # Patching binaries
-    chmod +x bin/cpptools bin/cpptools-srv bin/cpptools-wordexp debugAdapters/bin/OpenDebugAD7
+    chmod +x bin/cpptools bin/cpptools-srv bin/cpptools-wordexp bin/libc.so debugAdapters/bin/OpenDebugAD7
     patchelf --replace-needed liblttng-ust.so.0 liblttng-ust.so.1 ./debugAdapters/bin/libcoreclrtraceptprovider.so
   '';
 
-  postFixup = lib.optionalString gdbUseFixed ''
-    wrapProgram $out/share/vscode/extensions/ms-vscode.cpptools/debugAdapters/bin/OpenDebugAD7 --prefix PATH : ${lib.makeBinPath [ gdb ]}
-  '';
+  postFixup =
+    ''
+      autoPatchelf $out/share/vscode/extensions/ms-vscode.cpptools/debugAdapters
+
+      # cpptools* are distributed by the extension and need to be run through the distributed musl interpretter
+      patchelf --set-interpreter $out/share/vscode/extensions/ms-vscode.cpptools/bin/libc.so $out/share/vscode/extensions/ms-vscode.cpptools/bin/cpptools
+      patchelf --set-interpreter $out/share/vscode/extensions/ms-vscode.cpptools/bin/libc.so $out/share/vscode/extensions/ms-vscode.cpptools/bin/cpptools-srv
+      patchelf --set-interpreter $out/share/vscode/extensions/ms-vscode.cpptools/bin/libc.so $out/share/vscode/extensions/ms-vscode.cpptools/bin/cpptools-wordexp
+    ''
+    + lib.optionalString gdbUseFixed ''
+      wrapProgram $out/share/vscode/extensions/ms-vscode.cpptools/debugAdapters/bin/OpenDebugAD7 --prefix PATH : ${lib.makeBinPath [ gdb ]}
+    '';
 
   meta = {
-    description = "The C/C++ extension adds language support for C/C++ to Visual Studio Code, including features such as IntelliSense and debugging.";
+    description = "C/C++ extension adds language support for C/C++ to Visual Studio Code, including features such as IntelliSense and debugging";
     homepage = "https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools";
     license = lib.licenses.unfree;
     maintainers = with lib.maintainers; [
diff --git a/pkgs/applications/editors/vscode/extensions/myriad-dreamin.tinymist/default.nix b/pkgs/applications/editors/vscode/extensions/myriad-dreamin.tinymist/default.nix
index 21a412b91e31d..99878c88568e7 100644
--- a/pkgs/applications/editors/vscode/extensions/myriad-dreamin.tinymist/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/myriad-dreamin.tinymist/default.nix
@@ -10,10 +10,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
   mktplcRef = {
     name = "tinymist";
     publisher = "myriad-dreamin";
-    # Please update the corresponding binary (tinymist) when updating
-    # this extension.
-    version = "0.11.9";
-    hash = "sha256-h49SI/KoA5sbLIkJreZoux7mTIhGZ7HqtgE1EAh3vYM=";
+    inherit (tinymist) version;
+    hash = "sha256-Oama8FkRhEY4yza77RpWHg0Aeo9WFhveucJqJvCYMJQ=";
   };
 
   nativeBuildInputs = [
@@ -30,7 +28,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
 
   meta = {
     changelog = "https://marketplace.visualstudio.com/items/myriad-dreamin.tinymist/changelog";
-    description = "A VSCode extension for providing an integration solution for Typst";
+    description = "VSCode extension for providing an integration solution for Typst";
     downloadPage = "https://marketplace.visualstudio.com/items?itemName=myriad-dreamin.tinymist";
     homepage = "https://github.com/myriad-dreamin/tinymist";
     license = lib.licenses.asl20;
diff --git a/pkgs/applications/editors/vscode/extensions/nvarner.typst-lsp/default.nix b/pkgs/applications/editors/vscode/extensions/nvarner.typst-lsp/default.nix
index 22344e3b2b2b9..13fdcef74019e 100644
--- a/pkgs/applications/editors/vscode/extensions/nvarner.typst-lsp/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/nvarner.typst-lsp/default.nix
@@ -30,7 +30,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
 
   meta = {
     changelog = "https://marketplace.visualstudio.com/items/nvarner.typst-lsp/changelog";
-    description = "A VSCode extension for providing a language server for Typst";
+    description = "VSCode extension for providing a language server for Typst";
     downloadPage = "https://marketplace.visualstudio.com/items?itemName=nvarner.typst-lsp";
     homepage = "https://github.com/nvarner/typst-lsp";
     license = lib.licenses.mit;
diff --git a/pkgs/applications/editors/vscode/extensions/reditorsupport.r/default.nix b/pkgs/applications/editors/vscode/extensions/reditorsupport.r/default.nix
index c2c2217762efa..5fc6dfa5071b7 100644
--- a/pkgs/applications/editors/vscode/extensions/reditorsupport.r/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/reditorsupport.r/default.nix
@@ -33,7 +33,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
   '';
   meta = {
     changelog = "https://marketplace.visualstudio.com/items/REditorSupport.r/changelog";
-    description = "A Visual Studio Code extension for the R programming language";
+    description = "Visual Studio Code extension for the R programming language";
     downloadPage = "https://marketplace.visualstudio.com/items?itemName=REditorSupport.r";
     homepage = "https://github.com/REditorSupport/vscode-R";
     license = lib.licenses.mit;
diff --git a/pkgs/applications/editors/vscode/extensions/rust-lang.rust-analyzer/default.nix b/pkgs/applications/editors/vscode/extensions/rust-lang.rust-analyzer/default.nix
index 6fd65c9ae9b4a..dcdbf3dd2cbf6 100644
--- a/pkgs/applications/editors/vscode/extensions/rust-lang.rust-analyzer/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/rust-lang.rust-analyzer/default.nix
@@ -93,7 +93,7 @@ vscode-utils.buildVscodeExtension {
   '';
 
   meta = {
-    description = "An alternative rust language server to the RLS";
+    description = "Alternative rust language server to the RLS";
     homepage = "https://github.com/rust-lang/rust-analyzer";
     license = [
       lib.licenses.mit
diff --git a/pkgs/applications/editors/vscode/extensions/sourcery.sourcery/default.nix b/pkgs/applications/editors/vscode/extensions/sourcery.sourcery/default.nix
index 143ce42045612..07616924d18a0 100644
--- a/pkgs/applications/editors/vscode/extensions/sourcery.sourcery/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/sourcery.sourcery/default.nix
@@ -3,15 +3,15 @@
   stdenv,
   vscode-utils,
   autoPatchelfHook,
-  libxcrypt-legacy,
+  zlib,
 }:
 
 vscode-utils.buildVscodeMarketplaceExtension {
   mktplcRef = {
     name = "sourcery";
     publisher = "sourcery";
-    version = "1.16.0";
-    hash = "sha256-SHgS2C+ElTJW4v90Wg0QcsSL2FoSz+SxZQpgq2J4JiU=";
+    version = "1.19.0";
+    hash = "sha256-Wit2ozgaVwINL3PvPfmZWQ4WN7seQMWfXwXGgEKecn0=";
   };
 
   postPatch = ''
@@ -24,12 +24,12 @@ vscode-utils.buildVscodeMarketplaceExtension {
 
   buildInputs = [
     stdenv.cc.cc.lib
-    libxcrypt-legacy
+    zlib
   ];
 
   meta = {
     changelog = "https://sourcery.ai/changelog/";
-    description = "A VSCode extension for Sourcery, an AI-powered code review and pair programming tool for Python";
+    description = "VSCode extension for Sourcery, an AI-powered code review and pair programming tool for Python";
     downloadPage = "https://marketplace.visualstudio.com/items?itemName=sourcery.sourcery";
     homepage = "https://github.com/sourcery-ai/sourcery-vscode";
     license = lib.licenses.unfree;
diff --git a/pkgs/applications/editors/vscode/extensions/sumneko.lua/default.nix b/pkgs/applications/editors/vscode/extensions/sumneko.lua/default.nix
index 4a8db2db4be54..3f27cb681fe0f 100644
--- a/pkgs/applications/editors/vscode/extensions/sumneko.lua/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/sumneko.lua/default.nix
@@ -22,7 +22,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
   '';
 
   meta = {
-    description = "The Lua language server provides various language features for Lua to make development easier and faster.";
+    description = "Lua language server provides various language features for Lua to make development easier and faster";
     homepage = "https://marketplace.visualstudio.com/items?itemName=sumneko.lua";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.lblasc ];
diff --git a/pkgs/applications/editors/vscode/extensions/tekumara.typos-vscode/default.nix b/pkgs/applications/editors/vscode/extensions/tekumara.typos-vscode/default.nix
index 140a371efd456..f56f477c8560d 100644
--- a/pkgs/applications/editors/vscode/extensions/tekumara.typos-vscode/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/tekumara.typos-vscode/default.nix
@@ -13,19 +13,19 @@ let
     {
       x86_64-linux = {
         arch = "linux-x64";
-        hash = "sha256-CPUlJ1QzGiZKd4r46Iioc5svw0oLsMsYnc0KxT1p0zM=";
+        hash = "sha256-fvDzsFOG1pdmpC3RDY8zGP0yL/TzX6i00LnIX+yceVU=";
       };
       aarch64-linux = {
         arch = "linux-arm64";
-        hash = "sha256-qSTCZHL7nfB300qwuqgl/4u+SYNMA2BFCrD+yQEgN/c=";
+        hash = "sha256-3yRZzOTuiTbkUUz1D3mZo7G5vayM6W9YBbJxTiVou9g=";
       };
       x86_64-darwin = {
         arch = "darwin-x64";
-        hash = "sha256-FcZH2bB5B3wnu6F76kGp9FBdD3yZtr57TQ5xaUfRcmY=";
+        hash = "sha256-fKvR2bea4UxvnZ+LlWR/ahpKe8mk5f4mZrjqTFpsC5A=";
       };
       aarch64-darwin = {
         arch = "darwin-arm64";
-        hash = "sha256-3HdK4x2WNdb9Zxqjtn9lmbgrMOzz14rH0ZF0x9B0BHY=";
+        hash = "sha256-nkK3BH+MRi6KdThq4kYR9ZAfnuSkC2r/lKWpEtmD7Ak=";
       };
     }
     .${system} or (throw "Unsupported system: ${system}");
@@ -37,7 +37,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
     # Please update the corresponding binary (typos-lsp)
     # when updating this extension.
     # See pkgs/by-name/ty/typos-lsp/package.nix
-    version = "0.1.18";
+    version = "0.1.19";
     inherit (extInfo) hash arch;
   };
 
@@ -55,7 +55,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
 
   meta = {
     changelog = "https://marketplace.visualstudio.com/items/tekumara.typos-vscode/changelog";
-    description = "A VSCode extension for providing a low false-positive source code spell checker";
+    description = "VSCode extension for providing a low false-positive source code spell checker";
     downloadPage = "https://marketplace.visualstudio.com/items?itemName=tekumara.typos-vscode";
     homepage = "https://github.com/tekumara/typos-lsp";
     license = lib.licenses.mit;
diff --git a/pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/default.nix b/pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/default.nix
index 8ed7c0b946b40..6f14d1e918215 100644
--- a/pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/default.nix
@@ -197,7 +197,7 @@ stdenv.mkDerivation {
   };
 
   meta = {
-    description = "A native debugger extension for VSCode based on LLDB";
+    description = "Native debugger extension for VSCode based on LLDB";
     homepage = "https://github.com/vadimcn/vscode-lldb";
     license = [ lib.licenses.mit ];
     maintainers = [ lib.maintainers.nigelgbanks ];
diff --git a/pkgs/applications/editors/vscode/vscode.nix b/pkgs/applications/editors/vscode/vscode.nix
index e8ff066642b27..2eb93a086ea6d 100644
--- a/pkgs/applications/editors/vscode/vscode.nix
+++ b/pkgs/applications/editors/vscode/vscode.nix
@@ -30,21 +30,21 @@ let
   archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "1zfh48g6prjhjcyrz5impsnm6khw7s75k8k54bp0cszl81ddsysx";
-    x86_64-darwin = "1w5fzq8dmzrs2ggxvcbcs03psxxi1dbzx5l0jn52szi1g5y3daxi";
-    aarch64-linux = "0rs4zzddfpwbf86cjl4r65cxccs4ypz1s7lw98vq0j8pfx8vkgqi";
-    aarch64-darwin = "0gha1b6q3k57yrbp7qrrknlbbbbhcjd6slbyrzlwjcz1ddvs7c8s";
-    armv7l-linux = "01s1vxbmg3zp47kwlsjr781v6c51l5bcpf9pc91id0qcrhax703k";
+    x86_64-linux = "039yb1v4vcgsyp3gfvsfm7pxivf20ycyvidhrk26jfm54ghbbnlz";
+    x86_64-darwin = "1nkwww12yalkxja8vdln45kzrbybhrca8q0zxj8kk9s8bdzsvr5d";
+    aarch64-linux = "0pz8qji6n7j0vrm4l84vxw2sad6q3swz7jda4zyw1n13y7p9kpcj";
+    aarch64-darwin = "1a1b233f28x0v7rb7295jdivzxqvp812x585vacxx1qfmpn6mabl";
+    armv7l-linux = "12569045nzz5zsmaqd4xvq5lmajcl7w3qdv0n9m5rh2g6s32585c";
   }.${system} or throwSystem;
 in
   callPackage ./generic.nix rec {
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.89.1";
+    version = "1.90.1";
     pname = "vscode" + lib.optionalString isInsiders "-insiders";
 
     # This is used for VS Code - Remote SSH test
-    rev = "dc96b837cf6bb4af9cd736aa3af08cf8279f7685";
+    rev = "611f9bfce64f25108829dd295f54a6894e87339d";
 
     executableName = "code" + lib.optionalString isInsiders "-insiders";
     longName = "Visual Studio Code" + lib.optionalString isInsiders " - Insiders";
@@ -68,7 +68,7 @@ in
       src = fetchurl {
         name = "vscode-server-${rev}.tar.gz";
         url = "https://update.code.visualstudio.com/commit:${rev}/server-linux-x64/stable";
-        sha256 = "05gvq96vw69lb8ip8pfd9g43j8kvfwlrdmm11b41fpdafhi45f89";
+        sha256 = "1j4fd3281jsm10ngq9lzwph3nil0xwbypc180sh5wifb66bmprf6";
       };
     };
 
diff --git a/pkgs/applications/editors/vscode/vscodium.nix b/pkgs/applications/editors/vscode/vscodium.nix
index 76666b3b3c822..3461744ec6ebf 100644
--- a/pkgs/applications/editors/vscode/vscodium.nix
+++ b/pkgs/applications/editors/vscode/vscodium.nix
@@ -15,11 +15,11 @@ let
   archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "1n3gb12asid2qwwzf9fj974ws9n7has9l23ni8jscx9cp63l5rbl";
-    x86_64-darwin = "0gkplg2c5g7964m58fmv7b70d69g4yqrax5zn1rm4rl2agxgwyff";
-    aarch64-linux = "0412222l9r81f3aa3zlzrg42hzslvvck5kds7zrmpssjrd41jxfh";
-    aarch64-darwin = "1iv49m646vsbcgaxydxhpjbxspz7918brdk51gmbqf258shf8rii";
-    armv7l-linux = "1sblaigrxscx4l1kln1zxzm5da5lr50y1k6qb4igq6wxbdx55iay";
+    x86_64-linux = "1r76ikfikagg9v278pgiqhnjsv7pqn0xi372y1l0wsashlxl7kb0";
+    x86_64-darwin = "156604xzazmb54p0rdkv5wy9livg0xz2jviycdizablmvsxybs57";
+    aarch64-linux = "0cp120pcjpgf9qvmks9f8l2caxqlvnqvmxa7fh9mf83zpkdmnsnl";
+    aarch64-darwin = "1k06648jx64irshs0v4qy6xlkd9mk514xf21dlfhvic4aj89kcx9";
+    armv7l-linux = "0jy8hkbxh1969kskggg2y86cphly9l9gs7y4plj90jmlvlzjjjxm";
   }.${system} or throwSystem;
 
   sourceRoot = lib.optionalString (!stdenv.isDarwin) ".";
@@ -29,7 +29,7 @@ in
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.88.1.24104";
+    version = "1.90.1.24165";
     pname = "vscodium";
 
     executableName = "codium";
diff --git a/pkgs/applications/editors/wily/default.nix b/pkgs/applications/editors/wily/default.nix
index 0e883a51210af..5c6eb5dc5ba3a 100644
--- a/pkgs/applications/editors/wily/default.nix
+++ b/pkgs/applications/editors/wily/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An emulation of ACME";
+    description = "Emulation of ACME";
     homepage = "http://wily.sourceforge.net";
     license = licenses.artistic1;
     maintainers = [ maintainers.vrthra ];
diff --git a/pkgs/applications/editors/xed-editor/default.nix b/pkgs/applications/editors/xed-editor/default.nix
index cb147cf099eb8..d44b07292ca0e 100644
--- a/pkgs/applications/editors/xed-editor/default.nix
+++ b/pkgs/applications/editors/xed-editor/default.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xed-editor";
-  version = "3.4.5";
+  version = "3.6.2";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "xed";
     rev = version;
-    sha256 = "sha256-MXRxzmRo/dRhp5Llib9ng1gzWW8uvzqTMjUVK8a3eJ8=";
+    sha256 = "sha256-+yY+vzDMeS4AMMAklzADD4/LAQgav3clM2CCK6xh47Q=";
   };
 
   patches = [
diff --git a/pkgs/applications/editors/xmlcopyeditor/default.nix b/pkgs/applications/editors/xmlcopyeditor/default.nix
index 857b61521b552..fe3a12a37c20f 100644
--- a/pkgs/applications/editors/xmlcopyeditor/default.nix
+++ b/pkgs/applications/editors/xmlcopyeditor/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A fast, free, validating XML editor";
+    description = "Fast, free, validating XML editor";
     homepage = "https://xml-copy-editor.sourceforge.io/";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/applications/editors/yi/wrapper.nix b/pkgs/applications/editors/yi/wrapper.nix
deleted file mode 100644
index 356a04b36e96a..0000000000000
--- a/pkgs/applications/editors/yi/wrapper.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-# To use this for hacking of your Yi config file, drop into a shell
-# with env attribute.
-{ lib, stdenv, makeWrapper
-, haskellPackages
-, extraPackages ? (s: [])
-}:
-let
-  yiEnv = haskellPackages.ghcWithPackages
-    (self: [ self.yi ] ++ extraPackages self);
-in
-stdenv.mkDerivation {
-  pname = "yi-custom";
-  version = "0.0.0.1";
-  dontUnpack = true;
-  nativeBuildInputs = [ makeWrapper ];
-
-  buildCommand = ''
-    mkdir -p $out/bin
-    makeWrapper ${haskellPackages.yi}/bin/yi $out/bin/yi \
-      --set NIX_GHC ${yiEnv}/bin/ghc
-  '';
-
-  # For hacking purposes
-  passthru.env = yiEnv;
-
-  meta = with lib; {
-    description = "Allows Yi to find libraries and the compiler easily";
-    # This wrapper and wrapper only is under PD
-    license = licenses.publicDomain;
-    maintainers = with maintainers; [ ];
-
-    # dependency yi-language no longer builds
-    hydraPlatforms = lib.platforms.none;
-    broken = true;
-  };
-
-}
diff --git a/pkgs/applications/editors/zee/default.nix b/pkgs/applications/editors/zee/default.nix
index b0ebcf635c5fd..38ca48ee4056a 100644
--- a/pkgs/applications/editors/zee/default.nix
+++ b/pkgs/applications/editors/zee/default.nix
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-fBBjtjM7AnyAL6EOFstL4h6yS+UoLgxck6Mc0tJcXaI=";
 
   meta = with lib; {
-    description = "A modern text editor for the terminal written in Rust";
+    description = "Modern text editor for the terminal written in Rust";
     homepage = "https://github.com/zee-editor/zee";
     license = licenses.mit;
     maintainers = with maintainers; [ booklearner ];
diff --git a/pkgs/applications/emulators/86box/default.nix b/pkgs/applications/emulators/86box/default.nix
index 1e9b887d2d6a5..0e543fa8d821f 100644
--- a/pkgs/applications/emulators/86box/default.nix
+++ b/pkgs/applications/emulators/86box/default.nix
@@ -88,6 +88,7 @@ stdenv.mkDerivation (finalAttrs: {
       rev = "v${finalAttrs.version}";
       hash = "sha256-58nNTOLund/KeDlNwzwwihjFVigs/P0K8SN07zExE2c=";
     };
+    updateScript = ./update.sh;
   };
 
   # Some libraries are loaded dynamically, but QLibrary doesn't seem to search
@@ -102,7 +103,7 @@ stdenv.mkDerivation (finalAttrs: {
     '';
 
   meta = with lib; {
-    description = "Emulator of x86-based machines based on PCem.";
+    description = "Emulator of x86-based machines based on PCem";
     mainProgram = "86Box";
     homepage = "https://86box.net/";
     license = with licenses; [ gpl2Only ] ++ optional (unfreeEnableDiscord || unfreeEnableRoms) unfree;
diff --git a/pkgs/applications/emulators/86box/update.sh b/pkgs/applications/emulators/86box/update.sh
new file mode 100755
index 0000000000000..8af12478529f3
--- /dev/null
+++ b/pkgs/applications/emulators/86box/update.sh
@@ -0,0 +1,12 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p jq nix-prefetch-github common-updater-scripts
+
+set -euo pipefail
+
+latest_release=$(curl --silent https://api.github.com/repos/86Box/86Box/releases/latest)
+version=$(jq -r '.tag_name' <<<"$latest_release" | cut -c2-)
+main_hash=$(nix-prefetch-github --json --rev "v$version" 86Box 86Box | jq -r '.hash')
+roms_hash=$(nix-prefetch-github --json --rev "v$version" 86Box roms | jq -r '.hash')
+
+update-source-version _86Box "_$version" "$main_hash"
+update-source-version _86Box "$version" "$roms_hash" --source-key=roms
diff --git a/pkgs/applications/emulators/attract-mode/default.nix b/pkgs/applications/emulators/attract-mode/default.nix
index 9173faf7fe5bb..53765e927a0d6 100644
--- a/pkgs/applications/emulators/attract-mode/default.nix
+++ b/pkgs/applications/emulators/attract-mode/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A frontend for arcade cabinets and media PCs";
+    description = "Frontend for arcade cabinets and media PCs";
     homepage = "http://attractmode.org";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ hrdinka ];
diff --git a/pkgs/applications/emulators/box64/default.nix b/pkgs/applications/emulators/box64/default.nix
index 19653ea73060c..5a6e87b0644aa 100644
--- a/pkgs/applications/emulators/box64/default.nix
+++ b/pkgs/applications/emulators/box64/default.nix
@@ -1,26 +1,33 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, gitUpdater
-, cmake
-, python3
-, withDynarec ? (stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isRiscV64)
-, runCommand
-, hello-x86_64
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  gitUpdater,
+  cmake,
+  python3,
+  withDynarec ? (
+    stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isRiscV64 || stdenv.hostPlatform.isLoongArch64
+  ),
+  runCommand,
+  hello-x86_64,
 }:
 
-# Currently only supported on ARM & RISC-V
-assert withDynarec -> (stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isRiscV64);
+# Currently only supported on specific archs
+assert
+  withDynarec
+  -> (
+    stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isRiscV64 || stdenv.hostPlatform.isLoongArch64
+  );
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "box64";
-  version = "0.2.6";
+  version = "0.2.8";
 
   src = fetchFromGitHub {
     owner = "ptitSeb";
     repo = "box64";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-eKYnBuaEWRb6kDGFvuG+xM70LbUAcJ6Zcr6hPHqi9Do=";
+    hash = "sha256-P+m+JS3THh3LWMZYW6BQ7QyNWlBuL+hMcUtUbpMHzis=";
   };
 
   nativeBuildInputs = [
@@ -28,23 +35,27 @@ stdenv.mkDerivation (finalAttrs: {
     python3
   ];
 
-  cmakeFlags = [
-    "-DNOGIT=ON"
-
-    # Arch mega-option
-    "-DARM64=${lib.boolToString stdenv.hostPlatform.isAarch64}"
-    "-DRV64=${lib.boolToString stdenv.hostPlatform.isRiscV64}"
-    "-DPPC64LE=${lib.boolToString (stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian)}"
-    "-DLARCH64=${lib.boolToString stdenv.hostPlatform.isLoongArch64}"
-  ] ++ lib.optionals stdenv.hostPlatform.isx86_64 [
-    # x86_64 has no arch-specific mega-option, manually enable the options that apply to it
-    "-DLD80BITS=ON"
-    "-DNOALIGN=ON"
-  ] ++ [
-    # Arch dynarec
-    "-DARM_DYNAREC=${lib.boolToString (withDynarec && stdenv.hostPlatform.isAarch64)}"
-    "-DRV64_DYNAREC=${lib.boolToString (withDynarec && stdenv.hostPlatform.isRiscV64)}"
-  ];
+  cmakeFlags =
+    [
+      (lib.cmakeBool "NOGIT" true)
+
+      # Arch mega-option
+      (lib.cmakeBool "ARM64" stdenv.hostPlatform.isAarch64)
+      (lib.cmakeBool "RV64" stdenv.hostPlatform.isRiscV64)
+      (lib.cmakeBool "PPC64LE" (stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian))
+      (lib.cmakeBool "LARCH64" stdenv.hostPlatform.isLoongArch64)
+    ]
+    ++ lib.optionals stdenv.hostPlatform.isx86_64 [
+      # x86_64 has no arch-specific mega-option, manually enable the options that apply to it
+      (lib.cmakeBool "LD80BITS" true)
+      (lib.cmakeBool "NOALIGN" true)
+    ]
+    ++ [
+      # Arch dynarec
+      (lib.cmakeBool "ARM_DYNAREC" (withDynarec && stdenv.hostPlatform.isAarch64))
+      (lib.cmakeBool "RV64_DYNAREC" (withDynarec && stdenv.hostPlatform.isRiscV64))
+      (lib.cmakeBool "LARCH64_DYNAREC" (withDynarec && stdenv.hostPlatform.isLoongArch64))
+    ];
 
   installPhase = ''
     runHook preInstall
@@ -71,24 +82,33 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   passthru = {
-    updateScript = gitUpdater {
-      rev-prefix = "v";
-    };
-    tests.hello = runCommand "box64-test-hello" {
-      nativeBuildInputs = [ finalAttrs.finalPackage ];
-    } ''
-      # There is no actual "Hello, world!" with any of the logging enabled, and with all logging disabled it's hard to
-      # tell what problems the emulator has run into.
-      BOX64_NOBANNER=0 BOX64_LOG=1 box64 ${hello-x86_64}/bin/hello --version | tee $out
-    '';
+    updateScript = gitUpdater { rev-prefix = "v"; };
+    tests.hello =
+      runCommand "box64-test-hello" { nativeBuildInputs = [ finalAttrs.finalPackage ]; }
+        # There is no actual "Hello, world!" with any of the logging enabled, and with all logging disabled it's hard to
+        # tell what problems the emulator has run into.
+        ''
+          BOX64_NOBANNER=0 BOX64_LOG=1 box64 ${lib.getExe hello-x86_64} --version | tee $out
+        '';
   };
 
-  meta = with lib; {
+  meta = {
     homepage = "https://box86.org/";
     description = "Lets you run x86_64 Linux programs on non-x86_64 Linux systems";
-    license = licenses.mit;
-    maintainers = with maintainers; [ gador OPNA2608 ];
+    changelog = "https://github.com/ptitSeb/box64/releases/tag/v${finalAttrs.version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [
+      gador
+      OPNA2608
+    ];
     mainProgram = "box64";
-    platforms = [ "x86_64-linux" "aarch64-linux" "riscv64-linux" "powerpc64le-linux" "loongarch64-linux" "mips64el-linux" ];
+    platforms = [
+      "x86_64-linux"
+      "aarch64-linux"
+      "riscv64-linux"
+      "powerpc64le-linux"
+      "loongarch64-linux"
+      "mips64el-linux"
+    ];
   };
 })
diff --git a/pkgs/applications/emulators/bsnes/bsnes-hd/default.nix b/pkgs/applications/emulators/bsnes/bsnes-hd/default.nix
index 4b8e94dac1d10..354437e7c7b0b 100644
--- a/pkgs/applications/emulators/bsnes/bsnes-hd/default.nix
+++ b/pkgs/applications/emulators/bsnes/bsnes-hd/default.nix
@@ -73,7 +73,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A fork of bsnes that adds HD video features";
+    description = "Fork of bsnes that adds HD video features";
     homepage = "https://github.com/DerKoun/bsnes-hd";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ stevebob ];
diff --git a/pkgs/applications/emulators/bsnes/higan/default.nix b/pkgs/applications/emulators/bsnes/higan/default.nix
index 0b9eb51d3baf8..17700859ca3a4 100644
--- a/pkgs/applications/emulators/bsnes/higan/default.nix
+++ b/pkgs/applications/emulators/bsnes/higan/default.nix
@@ -156,7 +156,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://github.com/higan-emu/higan";
-    description = "An open-source, cycle-accurate multi-system emulator";
+    description = "Open-source, cycle-accurate multi-system emulator";
     longDescription = ''
       higan is a multi-system emulator, originally developed by Near, with an
       uncompromising focus on accuracy and code readability.
diff --git a/pkgs/applications/emulators/c64-debugger/default.nix b/pkgs/applications/emulators/c64-debugger/default.nix
index fcd3a0aa9b527..ad0da506b4ffb 100644
--- a/pkgs/applications/emulators/c64-debugger/default.nix
+++ b/pkgs/applications/emulators/c64-debugger/default.nix
@@ -12,7 +12,7 @@
 }:
 
 stdenv.mkDerivation {
-  name = "c64-debugger";
+  pname = "c64-debugger";
   version = "0.64.58.6";
 
   src = fetchgit {
diff --git a/pkgs/applications/emulators/caprice32/default.nix b/pkgs/applications/emulators/caprice32/default.nix
index 7a4f4b1ab4aed..54ebfc49964f5 100644
--- a/pkgs/applications/emulators/caprice32/default.nix
+++ b/pkgs/applications/emulators/caprice32/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A complete emulation of CPC464, CPC664 and CPC6128";
+    description = "Complete emulation of CPC464, CPC664 and CPC6128";
     homepage = "https://github.com/ColinPitrat/caprice32";
     license = licenses.gpl2;
     maintainers = [ ];
diff --git a/pkgs/applications/emulators/ccemux/default.nix b/pkgs/applications/emulators/ccemux/default.nix
index 8e00b8281efa2..0aba58f5f10a6 100644
--- a/pkgs/applications/emulators/ccemux/default.nix
+++ b/pkgs/applications/emulators/ccemux/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A modular ComputerCraft emulator";
+    description = "Modular ComputerCraft emulator";
     homepage = "https://github.com/CCEmuX/CCEmuX";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.mit;
diff --git a/pkgs/applications/emulators/cdemu/common-drv-attrs.nix b/pkgs/applications/emulators/cdemu/common-drv-attrs.nix
index 9c43e358981ef..2a99841eeed81 100644
--- a/pkgs/applications/emulators/cdemu/common-drv-attrs.nix
+++ b/pkgs/applications/emulators/cdemu/common-drv-attrs.nix
@@ -9,7 +9,7 @@
     inherit hash;
   };
   meta = with lib; {
-    description = "A suite of tools for emulating optical drives and discs";
+    description = "Suite of tools for emulating optical drives and discs";
     longDescription = ''
       CDEmu consists of:
 
diff --git a/pkgs/applications/emulators/cen64/default.nix b/pkgs/applications/emulators/cen64/default.nix
index e13adbb71de82..d9c0048b7b34b 100644
--- a/pkgs/applications/emulators/cen64/default.nix
+++ b/pkgs/applications/emulators/cen64/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Cycle-Accurate Nintendo 64 Emulator";
+    description = "Cycle-Accurate Nintendo 64 Emulator";
     license = licenses.bsd3;
     homepage = "https://github.com/n64dev/cen64";
     maintainers = [ maintainers._414owen ];
diff --git a/pkgs/applications/emulators/craftos-pc/default.nix b/pkgs/applications/emulators/craftos-pc/default.nix
index 0d077d7669f25..1952bd6e6bd32 100644
--- a/pkgs/applications/emulators/craftos-pc/default.nix
+++ b/pkgs/applications/emulators/craftos-pc/default.nix
@@ -85,7 +85,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "An implementation of the CraftOS-PC API written in C++ using SDL";
+    description = "Implementation of the CraftOS-PC API written in C++ using SDL";
     homepage = "https://www.craftos-pc.cc";
     license = with licenses; [ mit free ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/emulators/desmume/default.nix b/pkgs/applications/emulators/desmume/default.nix
index 89078bc6411a5..19f28f7962f65 100644
--- a/pkgs/applications/emulators/desmume/default.nix
+++ b/pkgs/applications/emulators/desmume/default.nix
@@ -81,7 +81,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://www.github.com/TASVideos/desmume/";
-    description = "An open-source Nintendo DS emulator";
+    description = "Open-source Nintendo DS emulator";
     longDescription = ''
       DeSmuME is a freeware emulator for the NDS roms & Nintendo DS Lite games
       created by YopYop156 and now maintained by the TASvideos team. It supports
diff --git a/pkgs/applications/emulators/dlx/default.nix b/pkgs/applications/emulators/dlx/default.nix
index 9573dd6d48dc3..8230f2b52c9c8 100644
--- a/pkgs/applications/emulators/dlx/default.nix
+++ b/pkgs/applications/emulators/dlx/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.davidviner.com/dlx.html?name=DLX+Simulator";
-    description = "An DLX simulator written in C";
+    description = "DLX simulator written in C";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
   };
diff --git a/pkgs/applications/emulators/dolphin-emu/default.nix b/pkgs/applications/emulators/dolphin-emu/default.nix
index 568f43d3564cc..c9f1e1572ab13 100644
--- a/pkgs/applications/emulators/dolphin-emu/default.nix
+++ b/pkgs/applications/emulators/dolphin-emu/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , pkg-config
 , wrapQtAppsHook
@@ -59,45 +58,30 @@
 
 stdenv.mkDerivation rec {
   pname = "dolphin-emu";
-  version = "5.0-21088";
+  version = "5.0-21460";
 
   src = fetchFromGitHub {
     owner = "dolphin-emu";
     repo = "dolphin";
-    rev = "9240f579eab18a2f67eef23846a6b508393d0e6c";
-    hash = "sha256-lOiDbEQZoi9Bsiyta/w+B1VXNNW4qST2cBZekqo5dDA=";
+    rev = "a9544510468740b77cf06ef28daaa65fe247fd32";
+    hash = "sha256-mhD7Uaqi8GzHdR7Y81TspvCnrZH2evWuWFgXMQ2c8g0=";
     fetchSubmodules = true;
   };
 
   patches = [
-    # Remove when merged https://github.com/dolphin-emu/dolphin/pull/12070
+    # TODO: Remove when merged https://github.com/dolphin-emu/dolphin/pull/12736
     ./find-minizip-ng.patch
-
-    # fix buidl w/ glibc-2.39
-    (fetchpatch {
-      url = "https://github.com/dolphin-emu/dolphin/commit/3da2e15e6b95f02f66df461e87c8b896e450fdab.patch";
-      hash = "sha256-+8yGF412wQUYbyEuYWd41pgOgEbhCaezexxcI5CNehc=";
-    })
   ];
 
   strictDeps = true;
 
   nativeBuildInputs = [
-    stdenv.cc
     cmake
     pkg-config
     wrapQtAppsHook
   ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [
-    CoreBluetooth
-    ForceFeedback
-    IOBluetooth
-    IOKit
-    moltenvk
-    OpenGL
-    VideoToolbox
-  ] ++ [
+  buildInputs = [
     bzip2
     cubeb
     curl
@@ -123,7 +107,9 @@ stdenv.mkDerivation rec {
     SDL2
     sfml
     xxHash
-    xz # LibLZMA
+    xz
+    # Causes linker errors with minizip-ng, prefer vendored. Possible reason why: https://github.com/dolphin-emu/dolphin/pull/12070#issuecomment-1677311838
+    #zlib-ng
   ] ++ lib.optionals stdenv.isLinux [
     alsa-lib
     bluez
@@ -135,6 +121,14 @@ stdenv.mkDerivation rec {
     #mgba # Derivation doesn't support Darwin
     udev
     vulkan-loader
+  ] ++ lib.optionals stdenv.isDarwin [
+    CoreBluetooth
+    ForceFeedback
+    IOBluetooth
+    IOKit
+    moltenvk
+    OpenGL
+    VideoToolbox
   ];
 
   cmakeFlags = [
@@ -160,13 +154,6 @@ stdenv.mkDerivation rec {
     "--set QT_QPA_PLATFORM xcb"
   ];
 
-  # Use nix-provided libraries instead of submodules
-  postPatch = lib.optionalString stdenv.isDarwin ''
-    substituteInPlace CMakeLists.txt \
-      --replace "if(NOT APPLE)" "if(true)" \
-      --replace "if(LIBUSB_FOUND AND NOT APPLE)" "if(LIBUSB_FOUND)"
-  '';
-
   postInstall = lib.optionalString stdenv.hostPlatform.isLinux ''
     install -D $src/Data/51-usb-device.rules $out/etc/udev/rules.d/51-usb-device.rules
   '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
diff --git a/pkgs/applications/emulators/dolphin-emu/find-minizip-ng.patch b/pkgs/applications/emulators/dolphin-emu/find-minizip-ng.patch
index b5c64d6e713d2..b8a6d81aed554 100644
--- a/pkgs/applications/emulators/dolphin-emu/find-minizip-ng.patch
+++ b/pkgs/applications/emulators/dolphin-emu/find-minizip-ng.patch
@@ -1,11 +1,11 @@
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index ee44d04458..2fa6bd8a10 100644
+index fb37788513..289a25fa57 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -678,7 +678,7 @@ dolphin_find_optional_system_library_pkgconfig(ZSTD libzstd>=1.4.0 zstd::zstd Ex
- 
- dolphin_find_optional_system_library_pkgconfig(ZLIB zlib-ng ZLIB::ZLIB Externals/zlib-ng)
+@@ -676,7 +676,7 @@ dolphin_find_optional_system_library_pkgconfig(ZLIB zlib-ng ZLIB::ZLIB Externals
  
+ # https://github.com/zlib-ng/minizip-ng/commit/6c5f265a55f1a12a7a016cd2962feff91cff5d2e
+ add_definitions(-DMZ_COMPAT_VERSION=110)  # This macro is for forwards compatibility with 4.0.4+
 -dolphin_find_optional_system_library_pkgconfig(MINIZIP minizip>=3.0.0 minizip::minizip Externals/minizip)
 +dolphin_find_optional_system_library_pkgconfig(MINIZIP minizip-ng>=3.0.0 minizip::minizip Externals/minizip)
  
diff --git a/pkgs/applications/emulators/dosbox-x/default.nix b/pkgs/applications/emulators/dosbox-x/default.nix
index 7ec2b8df3b715..9920e9e77baf1 100644
--- a/pkgs/applications/emulators/dosbox-x/default.nix
+++ b/pkgs/applications/emulators/dosbox-x/default.nix
@@ -120,7 +120,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://dosbox-x.com";
-    description = "A cross-platform DOS emulator based on the DOSBox project";
+    description = "Cross-platform DOS emulator based on the DOSBox project";
     longDescription = ''
       DOSBox-X is an expanded fork of DOSBox with specific focus on running
       Windows 3.x/9x/Me, PC-98 and 3D support via 3dfx.
diff --git a/pkgs/applications/emulators/dosbox/default.nix b/pkgs/applications/emulators/dosbox/default.nix
index f17d3a783ba9d..2a1171ccf3b78 100644
--- a/pkgs/applications/emulators/dosbox/default.nix
+++ b/pkgs/applications/emulators/dosbox/default.nix
@@ -78,7 +78,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.dosbox.com/";
-    description = "A DOS emulator";
+    description = "DOS emulator";
     longDescription = ''
       DOSBox is an emulator that recreates a MS-DOS compatible environment
       (complete with Sound, Input, Graphics and even basic networking). This
diff --git a/pkgs/applications/emulators/dynamips/default.nix b/pkgs/applications/emulators/dynamips/default.nix
index 2c529af3a80f3..1abc0dcf52365 100644
--- a/pkgs/applications/emulators/dynamips/default.nix
+++ b/pkgs/applications/emulators/dynamips/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "A Cisco router emulator";
+    description = "Cisco router emulator";
     longDescription = ''
       Dynamips is an emulator computer program that was written to emulate Cisco
       routers.
diff --git a/pkgs/applications/emulators/emu2/default.nix b/pkgs/applications/emulators/emu2/default.nix
index a919d644d720c..22f2e17902e84 100644
--- a/pkgs/applications/emulators/emu2/default.nix
+++ b/pkgs/applications/emulators/emu2/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/dmsc/emu2/";
-    description = "A simple text-mode x86 + DOS emulator";
+    description = "Simple text-mode x86 + DOS emulator";
     platforms = platforms.linux;
     maintainers = with maintainers; [ AndersonTorres ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/emulators/fceux/default.nix b/pkgs/applications/emulators/fceux/default.nix
index 6a33b68dbe708..c5b3188b3ca40 100644
--- a/pkgs/applications/emulators/fceux/default.nix
+++ b/pkgs/applications/emulators/fceux/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "http://www.fceux.com/";
-    description = "A Nintendo Entertainment System (NES) Emulator";
+    description = "Nintendo Entertainment System (NES) Emulator";
     mainProgram = "fceux";
     changelog = "https://github.com/TASEmulators/blob/fceux/${finalAttrs.src.rev}/changelog.txt";
     license = with lib.licenses; [ gpl2Plus ];
diff --git a/pkgs/applications/emulators/flycast/default.nix b/pkgs/applications/emulators/flycast/default.nix
index 6c598c5f51284..8f426f9c52651 100644
--- a/pkgs/applications/emulators/flycast/default.nix
+++ b/pkgs/applications/emulators/flycast/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/flyinghead/flycast";
     changelog = "https://github.com/flyinghead/flycast/releases/tag/v${version}";
-    description = "A multi-platform Sega Dreamcast, Naomi and Atomiswave emulator";
+    description = "Multi-platform Sega Dreamcast, Naomi and Atomiswave emulator";
     mainProgram = "flycast";
     license = licenses.gpl2Only;
     platforms = platforms.unix;
diff --git a/pkgs/applications/emulators/gens-gs/default.nix b/pkgs/applications/emulators/gens-gs/default.nix
index 66c4eb8ada23a..9699d24be6a76 100644
--- a/pkgs/applications/emulators/gens-gs/default.nix
+++ b/pkgs/applications/emulators/gens-gs/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://segaretro.org/Gens/GS";
-    description = "A Genesis/Mega Drive emulator";
+    description = "Genesis/Mega Drive emulator";
     platforms = [ "i686-linux" ];
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.eelco ];
diff --git a/pkgs/applications/emulators/libdsk/default.nix b/pkgs/applications/emulators/libdsk/default.nix
index 356e0631659f1..a0ea910adad90 100644
--- a/pkgs/applications/emulators/libdsk/default.nix
+++ b/pkgs/applications/emulators/libdsk/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A library for accessing discs and disc image files";
+    description = "Library for accessing discs and disc image files";
     homepage = "http://www.seasip.info/Unix/LibDsk/";
     license = licenses.gpl2Plus;
     maintainers = [ ];
diff --git a/pkgs/applications/emulators/mame/default.nix b/pkgs/applications/emulators/mame/default.nix
index 4ba40b417c8cb..804c5b1cceeed 100644
--- a/pkgs/applications/emulators/mame/default.nix
+++ b/pkgs/applications/emulators/mame/default.nix
@@ -38,14 +38,14 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "mame";
-  version = "0.265";
+  version = "0.266";
   srcVersion = builtins.replaceStrings [ "." ] [ "" ] version;
 
   src = fetchFromGitHub {
     owner = "mamedev";
     repo = "mame";
     rev = "mame${srcVersion}";
-    hash = "sha256-jXGmABFeoT8g2UtVV159gUpdWcBvb9aX3uiFi2neVQI=";
+    hash = "sha256-nggpDKcZURwC4SQHiRnF7lJNaAWSniVHvsF/IjAPd9E=";
   };
 
   outputs = [ "out" "tools" ];
@@ -176,7 +176,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.mamedev.org/";
-    description = "A multi-purpose emulation framework";
+    description = "Multi-purpose emulation framework";
     longDescription = ''
       MAME's purpose is to preserve decades of software history. As electronic
       technology continues to rush forward, MAME prevents this important
diff --git a/pkgs/applications/emulators/mupen64plus/default.nix b/pkgs/applications/emulators/mupen64plus/default.nix
index ba8c69cfb3e02..81c86eeafecbe 100644
--- a/pkgs/applications/emulators/mupen64plus/default.nix
+++ b/pkgs/applications/emulators/mupen64plus/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Nintendo 64 Emulator";
+    description = "Nintendo 64 Emulator";
     license = licenses.gpl2Plus;
     homepage = "http://www.mupen64plus.org/";
     maintainers = [ maintainers.sander ];
diff --git a/pkgs/applications/emulators/np2kai/default.nix b/pkgs/applications/emulators/np2kai/default.nix
index 4a0ed1d519f9d..0fc56e2844173 100644
--- a/pkgs/applications/emulators/np2kai/default.nix
+++ b/pkgs/applications/emulators/np2kai/default.nix
@@ -190,7 +190,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A PC-9801 series emulator";
+    description = "PC-9801 series emulator";
     homepage = "https://github.com/AZO234/NP2kai";
     license = licenses.mit;
     maintainers = with maintainers; [ OPNA2608 ];
diff --git a/pkgs/applications/emulators/openmsx/default.nix b/pkgs/applications/emulators/openmsx/default.nix
index 1c34c0025c8e1..cc6992f7bcccb 100644
--- a/pkgs/applications/emulators/openmsx/default.nix
+++ b/pkgs/applications/emulators/openmsx/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://openmsx.org";
-    description = "The MSX emulator that aims for perfection";
+    description = "MSX emulator that aims for perfection";
     longDescription = ''
       OpenMSX is an emulator for the MSX home computer system. Its goal is
       to emulate all aspects of the MSX with 100% accuracy.
diff --git a/pkgs/applications/emulators/punes/default.nix b/pkgs/applications/emulators/punes/default.nix
index ba5f1205a58bd..a7b435c3a0ae8 100644
--- a/pkgs/applications/emulators/punes/default.nix
+++ b/pkgs/applications/emulators/punes/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , lib
 , fetchFromGitHub
+, fetchpatch
 , gitUpdater
 , cmake
 , pkg-config
@@ -27,6 +28,16 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-TIXjYkInWV3yVnvXrdHcmeWYeps5TcvkG2Xjg4roIds=";
   };
 
+  patches = [
+    # Fix FTBFS with Qt 6.7.1
+    # Remove when https://github.com/punesemu/puNES/pull/403 merged & in release
+    (fetchpatch {
+      name = "0001-punes-Fix-compatibility-with-Qt-6.7.1.patch";
+      url = "https://github.com/punesemu/puNES/commit/78c72d2dfcd570e7463a78da10904cebae6127f5.patch";
+      hash = "sha256-xRalKIOb1qWgqJsFLcm7uUOblEfHDYbkukmcr4/+4Qc=";
+    })
+  ];
+
   nativeBuildInputs = [
     cmake
     pkg-config
diff --git a/pkgs/applications/emulators/retroarch/cores.nix b/pkgs/applications/emulators/retroarch/cores.nix
index d4fb8a4c3afb6..532109eefa6d8 100644
--- a/pkgs/applications/emulators/retroarch/cores.nix
+++ b/pkgs/applications/emulators/retroarch/cores.nix
@@ -405,7 +405,7 @@ in
     hardeningDisable = [ "format" ];
     makefile = "Makefile";
     meta = {
-      description = "Port of DOSBox to libretro aiming for simplicity and ease of use.";
+      description = "Port of DOSBox to libretro aiming for simplicity and ease of use";
       license = lib.licenses.gpl2Only;
     };
   };
@@ -510,7 +510,7 @@ in
   fuse = mkLibretroCore {
     core = "fuse";
     meta = {
-      description = "A port of the Fuse Unix Spectrum Emulator to libretro";
+      description = "Port of the Fuse Unix Spectrum Emulator to libretro";
       license = lib.licenses.gpl3Only;
     };
   };
@@ -809,7 +809,7 @@ in
       && sed -i -e 's,CPUFLAGS  :=,,g' Makefile
     '';
     meta = {
-      description = "Parallel Mupen64plus rewrite for libretro.";
+      description = "Parallel Mupen64plus rewrite for libretro";
       license = lib.licenses.gpl3Only;
     };
   };
diff --git a/pkgs/applications/emulators/retroarch/default.nix b/pkgs/applications/emulators/retroarch/default.nix
index 0e86d182f3e22..7e7090a87a640 100644
--- a/pkgs/applications/emulators/retroarch/default.nix
+++ b/pkgs/applications/emulators/retroarch/default.nix
@@ -47,12 +47,12 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "retroarch-bare";
-  version = "1.18.0";
+  version = "1.19.1";
 
   src = fetchFromGitHub {
     owner = "libretro";
     repo = "RetroArch";
-    hash = "sha256-uOnFkLrLQlBbUlIFA8wrOkQdVIvO7Np7fvi+sPJPtHE=";
+    hash = "sha256-NVe5dhH3w7RL1C7Z736L5fdi/+aO+Ah9Dpa4u4kn0JY=";
     rev = "v${version}";
   };
 
diff --git a/pkgs/applications/emulators/retroarch/hashes.json b/pkgs/applications/emulators/retroarch/hashes.json
index a7655cb9bb3c3..249d3db287034 100644
--- a/pkgs/applications/emulators/retroarch/hashes.json
+++ b/pkgs/applications/emulators/retroarch/hashes.json
@@ -55,20 +55,20 @@
         "src": {
             "owner": "libretro",
             "repo": "beetle-pce-libretro",
-            "rev": "0eb4b423452da40dbf4393e09d4126c3090a1210",
-            "hash": "sha256-PhhItDKvlvx3uBDx+xEUVr0sW2Y9HiTR/IvsnXVNAqo="
+            "rev": "3d91a940b3a48254152a8789b79616ceefe4067f",
+            "hash": "sha256-6zXl49Rns6wCZmcEUWkWqYeSH6W1+qs6Sb998pQ/+Lo="
         },
-        "version": "unstable-2024-05-17"
+        "version": "unstable-2024-06-14"
     },
     "beetle-pce-fast": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "libretro",
             "repo": "beetle-pce-fast-libretro",
-            "rev": "414149d335ce2a3284db6cdffbb8ed2ce42dbe5f",
-            "hash": "sha256-sta71o4NJIPDZlQkAFLzx+XlHVA8MmUjuZ17MuCKhOY="
+            "rev": "a653bbbdc5cf2bf960e614efdcf9446a9aa8cdf9",
+            "hash": "sha256-ty4Uluo8D8x+jB7fOqI/AgpTxdttzpbeARiICd3oh9c="
         },
-        "version": "unstable-2024-05-17"
+        "version": "unstable-2024-06-14"
     },
     "beetle-pcfx": {
         "fetcher": "fetchFromGitHub",
@@ -85,10 +85,10 @@
         "src": {
             "owner": "libretro",
             "repo": "beetle-psx-libretro",
-            "rev": "1743ca1a97cc90eac463def2e6118602b3d230c0",
-            "hash": "sha256-0ViuIo+iEIthRayJQeedOo2L+uTsJQh6PTJ21zlC/f0="
+            "rev": "6e881f9939dd9b33fb5f5587745524a0828c9ef4",
+            "hash": "sha256-mFIqsybkpSF17HmrfReazYUqVLzuDGwCjzaV7BTLKJ8="
         },
-        "version": "unstable-2024-05-17"
+        "version": "unstable-2024-06-14"
     },
     "beetle-saturn": {
         "fetcher": "fetchFromGitHub",
@@ -115,10 +115,10 @@
         "src": {
             "owner": "libretro",
             "repo": "beetle-supergrafx-libretro",
-            "rev": "c96c05c0b6e948df00da7e6253ff3e2874314baa",
-            "hash": "sha256-ruxp66E7D+r/9h7lzggIy9q9DKWKJikVzL5Oqsy9kQM="
+            "rev": "29b2a6e12c13d623ad94dcb64e1cb341d93ff02d",
+            "hash": "sha256-sbpCG3QsSn8NOjWC0snvsd7jZYClSbKI79QUnigQwzc="
         },
-        "version": "unstable-2024-05-17"
+        "version": "unstable-2024-06-14"
     },
     "beetle-vb": {
         "fetcher": "fetchFromGitHub",
@@ -165,10 +165,10 @@
         "src": {
             "owner": "libretro",
             "repo": "bsnes-libretro",
-            "rev": "37606e377ebae5d3175cd6267e4ddfa3f3c5091f",
-            "hash": "sha256-B1ragos8ZeCjg8Xlt6SC8V69iTZ6OXTpPptlWw4EMOU="
+            "rev": "9131a4c705e18f7b96e7dbfcfe70b158d10afed1",
+            "hash": "sha256-NotqQMBHV6E3LSXJHQ5FqIbq2OQbXx6xCbLYV9g12kQ="
         },
-        "version": "unstable-2024-05-17"
+        "version": "unstable-2024-06-16"
     },
     "bsnes-hd": {
         "fetcher": "fetchFromGitHub",
@@ -246,10 +246,10 @@
         "src": {
             "owner": "schellingb",
             "repo": "dosbox-pure",
-            "rev": "1c7ad4fafc5204e3aff83e2caa6020cb2fe43a2d",
-            "hash": "sha256-cOamfnwLilAz2I8CKA18JvauadbObuAq4JabNcdw7EQ="
+            "rev": "1e3cb35355769467ca7be192e740eb9728ecc88c",
+            "hash": "sha256-svVpHUOPPAFMypmeaHLCQfwTAVOZajTMKyeKvWLZlcc="
         },
-        "version": "unstable-2024-05-20"
+        "version": "unstable-2024-06-03"
     },
     "easyrpg": {
         "fetcher": "fetchFromGitHub",
@@ -287,31 +287,31 @@
         "src": {
             "owner": "libretro",
             "repo": "fbneo",
-            "rev": "312473be86f25e1a0456d4bb9d12462d90d59131",
-            "hash": "sha256-QU+ZG1onr3BtXZAUT9o5LypFozZsAF6biTj05sKtV+s="
+            "rev": "634d207adade213bbe83684be2a183d158f56e52",
+            "hash": "sha256-hmnb7euH2VfGnF8ztGFhXYmqaCY49APDG0Y3s4ku7Ac="
         },
-        "version": "unstable-2024-05-20"
+        "version": "unstable-2024-06-02"
     },
     "fceumm": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "libretro",
             "repo": "libretro-fceumm",
-            "rev": "aebea8783652bc75b21b9d2dcb28cedf1fa78e8a",
-            "hash": "sha256-4ux8pI2d8djkwY0M+h5tlXrLGIDHnMFiFqAWKrZAsxA="
+            "rev": "fe4a4f8a53cc7f91278f393710abb4f32c4e0a8f",
+            "hash": "sha256-/rZoARZf3SfN8E0o0qm34FYCYscqeEcLg3eYSXenK8s="
         },
-        "version": "unstable-2024-04-06"
+        "version": "unstable-2024-06-15"
     },
     "flycast": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "flyinghead",
             "repo": "flycast",
-            "rev": "0fa3e9a37b37d2ab200a910ff2a5736ca8c57a1b",
-            "hash": "sha256-c2cDQ2MSsP/rUrX89Mj5Gplb0WS2EjjOBCNd5QFbuHw=",
+            "rev": "ca613db70d8897e06562fe089e3e9543b41526a0",
+            "hash": "sha256-wYKHC+EvLnq+PnL1/hNcrhDyCY+4kaiSjIUKJ9SGPHc=",
             "fetchSubmodules": true
         },
-        "version": "unstable-2024-05-21"
+        "version": "unstable-2024-06-11"
     },
     "fmsx": {
         "fetcher": "fetchFromGitHub",
@@ -338,30 +338,30 @@
         "src": {
             "owner": "libretro",
             "repo": "fuse-libretro",
-            "rev": "847dbbd6f787823ac9a5dfacdd68ab181063374e",
-            "hash": "sha256-jzS7SFALV/YjI77ST+IWHwUsuhT+Zr5w4t6C7O8yzFM="
+            "rev": "9fc41a5f153e1f2fa2dbcfdd215c7ec97d98a29c",
+            "hash": "sha256-eEgPnSIpKC7s+4JoEHDGPlwYPa5Y8EpoxmNhyOIIcU8="
         },
-        "version": "unstable-2023-06-23"
+        "version": "unstable-2024-06-16"
     },
     "gambatte": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "libretro",
             "repo": "gambatte-libretro",
-            "rev": "238b195bca073bc1a2032c4e92c097d157e521f8",
-            "hash": "sha256-i9+a1kVlJ6EPaCOMkuIZgujNEg6MwPRM3mHnhconWHo="
+            "rev": "863002046a812758da6064daaf579fef1cec19a3",
+            "hash": "sha256-7rkyMcaKDNOESNrmwYCKM71x3WM8eSN9LBX0xOQRhJ0="
         },
-        "version": "unstable-2024-05-17"
+        "version": "unstable-2024-06-14"
     },
     "genesis-plus-gx": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "libretro",
             "repo": "Genesis-Plus-GX",
-            "rev": "58cf8471e3aa09ac4cb4c4b2dc5fdf3d1d54d626",
-            "hash": "sha256-y1pVoKrIV5n2wKoUIkUEor2CKTx9CyvkDagkByuFeiE="
+            "rev": "4e54d585d540d461ecc412c91ca4a79e2338f3b6",
+            "hash": "sha256-7P6w6pXplOfpP7w+JztNd49FdKBPM8eQeSh93YAG0Y4="
         },
-        "version": "unstable-2024-05-17"
+        "version": "unstable-2024-06-14"
     },
     "gpsp": {
         "fetcher": "fetchFromGitHub",
@@ -408,11 +408,11 @@
         "src": {
             "owner": "libretro",
             "repo": "mame",
-            "rev": "4ee35952a8fdb1332e970fa14c3e79c8c968050c",
-            "hash": "sha256-UIAMq8AIdLKX8SIF2V0+Vc6kHPJ0rmdx4BeqoSrCfFE=",
+            "rev": "db65a583bd2da39514a544c58362a6ac170179ac",
+            "hash": "sha256-FTsoLsx7IhyAw/pdaGAeNzysc7vZ3CcyXKWcBJ0pOb8=",
             "fetchSubmodules": true
         },
-        "version": "unstable-2024-05-21"
+        "version": "unstable-2024-06-13"
     },
     "mame2000": {
         "fetcher": "fetchFromGitHub",
@@ -429,20 +429,20 @@
         "src": {
             "owner": "libretro",
             "repo": "mame2003-libretro",
-            "rev": "cb2c76b2185c6600d1985b041eae001c674ffc08",
-            "hash": "sha256-HBDJsYEC4G/wELYe8IGfq+9Hv2Sx+v52YxYfLQRZ+ns="
+            "rev": "ce82eaa30932c988e9d9abc0ac5d6d637fb88cc6",
+            "hash": "sha256-vCqv2EhgYtJwNE2sRcs8KTg0cGlRSmhykRLkt8mUKlg="
         },
-        "version": "unstable-2024-05-21"
+        "version": "unstable-2024-06-07"
     },
     "mame2003-plus": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "libretro",
             "repo": "mame2003-plus-libretro",
-            "rev": "97dfe652dba01872bc5dd5d13a0dfb6588286adf",
-            "hash": "sha256-BQoc8y0eJkK8PpPqHjQ8qKp8/xrjl789bxNy+RdU3Sc="
+            "rev": "ecd00b18187c7fff75b6d9a70ac1b349e79652bb",
+            "hash": "sha256-1dVNNlDKDJwGHou/bY/grj/p9BJmfUwDxEiw2zQ7gSg="
         },
-        "version": "unstable-2024-05-21"
+        "version": "unstable-2024-06-08"
     },
     "mame2010": {
         "fetcher": "fetchFromGitHub",
@@ -489,10 +489,10 @@
         "src": {
             "owner": "libretro",
             "repo": "mesen",
-            "rev": "d6f2f1797694f87e698c737b068f621889e96fa9",
-            "hash": "sha256-iLX9UvrjYjGjyaLD4sC10gntWUvgZrwiUqTS7S7YDdc="
+            "rev": "91db6be681f70b2080525c267af6132555323ea1",
+            "hash": "sha256-rw/bwHaeglO/DPeOCFHAWF5Y5DXVKiteO4bWZjTB4rI="
         },
-        "version": "unstable-2024-01-30"
+        "version": "unstable-2024-06-09"
     },
     "mesen-s": {
         "fetcher": "fetchFromGitHub",
@@ -550,10 +550,10 @@
         "src": {
             "owner": "libretro",
             "repo": "neocd_libretro",
-            "rev": "71ebe5044639b825e5bd1bd590fef3e918133b80",
-            "hash": "sha256-YVxt3bJ54DD91VHkeQyYdo/BEq//lnBKd9Y42Vby3qc="
+            "rev": "c5a266254ffbaa2730d2814195f60e7be153fc86",
+            "hash": "sha256-MJhUYFNrtt2SSLun75OXKrT7nZzLBtyslqG9mziQuRk="
         },
-        "version": "unstable-2024-02-01"
+        "version": "unstable-2024-06-16"
     },
     "nestopia": {
         "fetcher": "fetchFromGitHub",
@@ -611,10 +611,10 @@
         "src": {
             "owner": "libretro",
             "repo": "parallel-n64",
-            "rev": "1b57f9199b1f8a4510f7f89f14afa9cabf9b3bdd",
-            "hash": "sha256-L20RGav0FJfydOICCNhAMGxIuIvPABDtCs5tWzrh768="
+            "rev": "330fa5efd306ad116c44faf6833a8108ed4144b0",
+            "hash": "sha256-pltPoWfXFh9OhWnQ+XMhHVZCo6BCGr6jCDhiL5T7LNM="
         },
-        "version": "unstable-2024-01-15"
+        "version": "unstable-2024-06-10"
     },
     "pcsx2": {
         "fetcher": "fetchFromGitHub",
@@ -631,53 +631,53 @@
         "src": {
             "owner": "libretro",
             "repo": "pcsx_rearmed",
-            "rev": "87f07621f8f864204d15e5514b7dcda7ed458fd4",
-            "hash": "sha256-J9HzZzzeih/Hv/hi+JmGloPMTgtRSdAubnipMDUOpIM="
+            "rev": "1cdeae2b66fc3ef486ec8016ed5fad437f1a4409",
+            "hash": "sha256-Zw5CWDeAy3pUV4qXFIfs6kFlEaYhNhl+6pu5fOx34j0="
         },
-        "version": "unstable-2024-05-20"
+        "version": "unstable-2024-06-17"
     },
     "picodrive": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "libretro",
             "repo": "picodrive",
-            "rev": "ad93670449a28825d4b2cebf2eeff72cf03377a9",
-            "hash": "sha256-AGupXJVUkOt7XjXE1s5Y3SzZjZBAujaAAsR0CgxfKe0=",
+            "rev": "535217f16bc2848ec70985c41e1d131709352641",
+            "hash": "sha256-K96eN3Erw1G+vQa8pag72hrtgf+tttoNIMXdgCGNy6k=",
             "fetchSubmodules": true
         },
-        "version": "unstable-2024-03-26"
+        "version": "unstable-2024-06-15"
     },
     "play": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "jpd002",
             "repo": "Play-",
-            "rev": "0efd17e79dc470c86cd1363a93130888c1e7a528",
-            "hash": "sha256-+f1xOSqKUJmM0bhtsPR9zk6mybo2HOXLURtYVb6qBGU=",
+            "rev": "a5753e582963e8555985abdfe6b5692bac52d701",
+            "hash": "sha256-OabW7OYitDzMh2bbAokfM+HwMaLo2cY3/FB78/ouvrY=",
             "fetchSubmodules": true
         },
-        "version": "unstable-2024-05-17"
+        "version": "unstable-2024-06-10"
     },
     "ppsspp": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "hrydgard",
             "repo": "ppsspp",
-            "rev": "1a01e4fd2e1ad1a6c5a7a1511ddeb495f525ae9e",
-            "hash": "sha256-MWXfHbWQXi/UflOV4zchrBVdh+Nt04HnvoTbpLNyq/Q=",
+            "rev": "cfcca0ed13ca86eb6e1ee7bb4161aabee6c2af06",
+            "hash": "sha256-K96Ajh/jXxILiKXBaTiNh6FwptPQQG39jGq45aQ7veY=",
             "fetchSubmodules": true
         },
-        "version": "unstable-2024-05-21"
+        "version": "unstable-2024-06-16"
     },
     "prboom": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "libretro",
             "repo": "libretro-prboom",
-            "rev": "ab05295d81fed2bb9db9f68a7ceeec7a544191d8",
-            "hash": "sha256-ekVVxYg+Uet3pfir6P7PwI87p5XF2ATbFbux1t38ETs="
+            "rev": "9d412db570d3291829b308e6d1ac17f04acdda17",
+            "hash": "sha256-50Nl8IyaQRLOQtTRYhJFwTH8ojMxNVVn/c+oGCeJts0="
         },
-        "version": "unstable-2024-05-07"
+        "version": "unstable-2024-05-23"
     },
     "prosystem": {
         "fetcher": "fetchFromGitHub",
@@ -694,10 +694,10 @@
         "src": {
             "owner": "libretro",
             "repo": "libretro-uae",
-            "rev": "3432007d28ef173707e2b32bd931932e5b74085d",
-            "hash": "sha256-spkl8A4mijM4uSpFojAFiYZl7tetWpCBKCDMUM8byUU="
+            "rev": "4493a194dd42e593914c26952ee8cb4ba750f596",
+            "hash": "sha256-uSnxx85+AX/15UvyOOiVApKT5I9SjKITfi5Osd4nBSE="
         },
-        "version": "unstable-2024-05-20"
+        "version": "unstable-2024-05-25"
     },
     "quicknes": {
         "fetcher": "fetchFromGitHub",
@@ -754,10 +754,10 @@
         "src": {
             "owner": "snes9xgit",
             "repo": "snes9x",
-            "rev": "738e53989e29c912eba3be4656df18cecc76e69b",
-            "hash": "sha256-riz4WBK/Qrw6QuIyi6ylNdDBxYOq1SsltC7/GAunZbM="
+            "rev": "a9e64edf73f36fb1a4ac616b11131f6380d8e968",
+            "hash": "sha256-3m2YTy1Y/ENhI4qmH3FQBZMEKNHsDJVZeOOLRrLj8lw="
         },
-        "version": "unstable-2024-05-19"
+        "version": "unstable-2024-06-13"
     },
     "snes9x2002": {
         "fetcher": "fetchFromGitHub",
@@ -794,10 +794,10 @@
         "src": {
             "owner": "stella-emu",
             "repo": "stella",
-            "rev": "49166ca9949708c3bddaed5cc549194c4bfcfae5",
-            "hash": "sha256-Oszglo1BQYTkuSZ96RSIBa1A0v/4qLQSBzsSVmOq07I="
+            "rev": "b477cb56bc6fd8b6977dcee279f16de01348bdae",
+            "hash": "sha256-jGyEah9eBEvNB4HewL60yXZvpHseeScYrHsRtzUtjN8="
         },
-        "version": "unstable-2024-05-13"
+        "version": "unstable-2024-06-15"
     },
     "stella2014": {
         "fetcher": "fetchFromGitHub",
@@ -814,10 +814,10 @@
         "src": {
             "owner": "libretro",
             "repo": "swanstation",
-            "rev": "6a0cc4a1cf3b8a89150160f631f477c36dc6e559",
-            "hash": "sha256-YciqQW5Q9NYbzdsWeYc92CDWBaXT3HZmDsd3WkqPYzo="
+            "rev": "7a27436548128c00e70b08dde63c52118e2a6228",
+            "hash": "sha256-u7D044lKNAH4aAaY/Ol7BR3dNeusX4wirIMdUEGw2oM="
         },
-        "version": "unstable-2024-05-21"
+        "version": "unstable-2024-05-30"
     },
     "tgbdual": {
         "fetcher": "fetchFromGitHub",
diff --git a/pkgs/applications/emulators/retroarch/libretro-core-info.nix b/pkgs/applications/emulators/retroarch/libretro-core-info.nix
index b70d4431c59de..3e11deb4b40f0 100644
--- a/pkgs/applications/emulators/retroarch/libretro-core-info.nix
+++ b/pkgs/applications/emulators/retroarch/libretro-core-info.nix
@@ -6,13 +6,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "libretro-core-info";
-  version = "1.18.0";
+  version = "1.19.0";
 
   src = fetchFromGitHub {
     owner = "libretro";
     repo = "libretro-core-info";
     rev = "v${version}";
-    hash = "sha256-tIuDDueYocvRDbA8CTR5ubGI7/Up02zUENw/HaDwC0U=";
+    hash = "sha256-dMMX9i2xPKay6BKC52fYxElcGSllHkSZyOXX/t3l6Io=";
   };
 
   makeFlags = [
diff --git a/pkgs/applications/emulators/retroarch/retroarch-assets.nix b/pkgs/applications/emulators/retroarch/retroarch-assets.nix
index b97d551a6c868..f1d34f9f5ac1f 100644
--- a/pkgs/applications/emulators/retroarch/retroarch-assets.nix
+++ b/pkgs/applications/emulators/retroarch/retroarch-assets.nix
@@ -6,13 +6,13 @@
 
 stdenvNoCC.mkDerivation {
   pname = "retroarch-assets";
-  version = "1.17.0-unstable-2024-04-24";
+  version = "1.19.0-unstable-2024-05-30";
 
   src = fetchFromGitHub {
     owner = "libretro";
     repo = "retroarch-assets";
-    rev = "9c0bd0d1015889592ad4362b800ac90ff4d019e1";
-    hash = "sha256-DB4i4iKx174822OJwJ5QIuMBLywufcR4+4Y+R01W+KQ=";
+    rev = "771e60b1eacd4edc57c19b61ab2c713200af0a3f";
+    hash = "sha256-304xYXY5cESjSxepb5xpfMeJBnG+EJBiaVnhSUE3icQ=";
   };
 
   makeFlags = [
diff --git a/pkgs/applications/emulators/retroarch/retroarch-joypad-autoconfig.nix b/pkgs/applications/emulators/retroarch/retroarch-joypad-autoconfig.nix
index b4e60fdcaba87..36bc02c43f7d3 100644
--- a/pkgs/applications/emulators/retroarch/retroarch-joypad-autoconfig.nix
+++ b/pkgs/applications/emulators/retroarch/retroarch-joypad-autoconfig.nix
@@ -6,13 +6,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "retroarch-joypad-autoconfig";
-  version = "1.18.1";
+  version = "1.19.0";
 
   src = fetchFromGitHub {
     owner = "libretro";
     repo = "retroarch-joypad-autoconfig";
     rev = "v${version}";
-    hash = "sha256-eWfSqHusTri1HQUkSxY/iAceF/9PFVMC0rhLu/4W35k=";
+    hash = "sha256-iwxTMwGHix2K5UyjBWFamyo3nVULxwbIF+djyQWz5L0=";
   };
 
   makeFlags = [
diff --git a/pkgs/applications/emulators/retrofe/default.nix b/pkgs/applications/emulators/retrofe/default.nix
index fe61849d5ae1a..37e05f744d8bf 100644
--- a/pkgs/applications/emulators/retrofe/default.nix
+++ b/pkgs/applications/emulators/retrofe/default.nix
@@ -67,7 +67,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A frontend for arcade cabinets and media PCs";
+    description = "Frontend for arcade cabinets and media PCs";
     homepage = "http://retrofe.nl/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ hrdinka ];
diff --git a/pkgs/applications/emulators/ripes/default.nix b/pkgs/applications/emulators/ripes/default.nix
index d1ebaf34be25b..92b7aca0a1444 100644
--- a/pkgs/applications/emulators/ripes/default.nix
+++ b/pkgs/applications/emulators/ripes/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = unstableGitUpdater { };
 
   meta = with lib; {
-    description = "A graphical processor simulator and assembly editor for the RISC-V ISA";
+    description = "Graphical processor simulator and assembly editor for the RISC-V ISA";
     homepage = "https://github.com/mortbopet/Ripes";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/applications/emulators/ruffle/default.nix b/pkgs/applications/emulators/ruffle/default.nix
index e538def0d47c5..0d9e05dc2e86d 100644
--- a/pkgs/applications/emulators/ruffle/default.nix
+++ b/pkgs/applications/emulators/ruffle/default.nix
@@ -6,6 +6,7 @@
   pkg-config,
   python3,
   rustPlatform,
+  stdenv,
   lib,
   wayland,
   xorg,
@@ -18,6 +19,7 @@
   gsettings-desktop-schemas,
   glib,
   libxkbcommon,
+  darwin,
 }:
 
 let
@@ -34,56 +36,62 @@ rustPlatform.buildRustPackage {
     hash = "sha256-WfoYQku1NFhvWyqeSVKtsMMEyUA97YFD7cvdn4XYIPI=";
   };
 
-  nativeBuildInputs = [
-    glib
-    gsettings-desktop-schemas
-    jre_minimal
-    makeWrapper
-    pkg-config
-    python3
-    wrapGAppsHook3
-  ];
+  nativeBuildInputs =
+    [ jre_minimal ]
+    ++ lib.optionals stdenv.isLinux [
+      glib
+      gsettings-desktop-schemas
+      makeWrapper
+      pkg-config
+      python3
+      wrapGAppsHook3
+    ]
+    ++ lib.optionals stdenv.isDarwin [ rustPlatform.bindgenHook ];
 
-  buildInputs = [
-    alsa-lib
-    cairo
-    gtk3
-    openssl
-    wayland
-    xorg.libX11
-    xorg.libXcursor
-    xorg.libXrandr
-    xorg.libXi
-    xorg.libxcb
-    xorg.libXrender
-    vulkan-loader
-    udev
-  ];
+  buildInputs =
+    lib.optionals stdenv.isLinux [
+      alsa-lib
+      cairo
+      gtk3
+      openssl
+      wayland
+      xorg.libX11
+      xorg.libXcursor
+      xorg.libXrandr
+      xorg.libXi
+      xorg.libxcb
+      xorg.libXrender
+      vulkan-loader
+      udev
+    ]
+    ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.AppKit ];
 
   dontWrapGApps = true;
 
-  preFixup = ''
+  preFixup = lib.optionalString stdenv.isLinux ''
     patchelf $out/bin/ruffle_desktop \
       --add-needed libxkbcommon-x11.so \
       --add-needed libwayland-client.so \
       --add-rpath ${libxkbcommon}/lib:${wayland}/lib
   '';
 
-  postFixup = ''
-    # This name is too generic
-    mv $out/bin/exporter $out/bin/ruffle_exporter
+  postFixup =
+    ''
+      # This name is too generic
+      mv $out/bin/exporter $out/bin/ruffle_exporter
+    ''
+    + lib.optionalString stdenv.isLinux ''
+      vulkanWrapperArgs+=(
+        --prefix LD_LIBRARY_PATH ':' ${vulkan-loader}/lib
+      )
 
-    vulkanWrapperArgs+=(
-      --prefix LD_LIBRARY_PATH ':' ${vulkan-loader}/lib
-    )
+      wrapProgram $out/bin/ruffle_exporter \
+        "''${vulkanWrapperArgs[@]}"
 
-    wrapProgram $out/bin/ruffle_exporter \
-      "''${vulkanWrapperArgs[@]}"
-
-    wrapProgram $out/bin/ruffle_desktop \
-      "''${vulkanWrapperArgs[@]}" \
-      "''${gappsWrapperArgs[@]}"
-  '';
+      wrapProgram $out/bin/ruffle_desktop \
+        "''${vulkanWrapperArgs[@]}" \
+        "''${gappsWrapperArgs[@]}"
+    '';
 
   cargoBuildFlags = [ "--workspace" ];
 
@@ -99,7 +107,7 @@ rustPlatform.buildRustPackage {
   };
 
   meta = with lib; {
-    description = "An Adobe Flash Player emulator written in the Rust programming language";
+    description = "Adobe Flash Player emulator written in the Rust programming language";
     homepage = "https://ruffle.rs/";
     license = with licenses; [
       mit
@@ -109,7 +117,7 @@ rustPlatform.buildRustPackage {
       govanify
       jchw
     ];
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
     mainProgram = "ruffle_desktop";
   };
 }
diff --git a/pkgs/applications/emulators/sameboy/default.nix b/pkgs/applications/emulators/sameboy/default.nix
index 643092b0a06b7..c00a8eef2b8e3 100644
--- a/pkgs/applications/emulators/sameboy/default.nix
+++ b/pkgs/applications/emulators/sameboy/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sameboy";
-  version = "0.16.3";
+  version = "0.16.6";
 
   src = fetchFromGitHub {
     owner = "LIJI32";
     repo = "SameBoy";
     rev = "v${version}";
-    sha256 = "sha256-sQWmuF1dQgvW9WyOxgxaupTUcde3KzzYiGv+v1N5ssk=";
+    sha256 = "sha256-URth/0hMfxnBJpfA1k+UU9/jJzfte2UXeLv5JnBDGUs=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/emulators/simh/default.nix b/pkgs/applications/emulators/simh/default.nix
index b0cae68ed2180..74419d500a53e 100644
--- a/pkgs/applications/emulators/simh/default.nix
+++ b/pkgs/applications/emulators/simh/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://simh.trailing-edge.com/";
-    description = "A collection of simulators of historic hardware";
+    description = "Collection of simulators of historic hardware";
     longDescription = ''
       SimH (History Simulator) is a collection of simulators for historically
       significant or just plain interesting computer hardware and software from
diff --git a/pkgs/applications/emulators/simplenes/default.nix b/pkgs/applications/emulators/simplenes/default.nix
index 05a00e2c9201b..5fba8b5376e92 100644
--- a/pkgs/applications/emulators/simplenes/default.nix
+++ b/pkgs/applications/emulators/simplenes/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/amhndu/SimpleNES";
-    description = "An NES emulator written in C++";
+    description = "NES emulator written in C++";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ivar ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/emulators/tamatool/default.nix b/pkgs/applications/emulators/tamatool/default.nix
index cc245ebbe1fae..04e5452bf72d5 100644
--- a/pkgs/applications/emulators/tamatool/default.nix
+++ b/pkgs/applications/emulators/tamatool/default.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A cross-platform Tamagotchi P1 explorer";
+    description = "Cross-platform Tamagotchi P1 explorer";
     homepage = "https://github.com/jcrona/tamatool";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ fgaz ];
diff --git a/pkgs/applications/emulators/tiny8086/default.nix b/pkgs/applications/emulators/tiny8086/default.nix
index c236cd0950f61..a3dc3c07265c8 100644
--- a/pkgs/applications/emulators/tiny8086/default.nix
+++ b/pkgs/applications/emulators/tiny8086/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/adriancable/8086tiny";
-    description = "An open-source small 8086 emulator";
+    description = "Open-source small 8086 emulator";
     longDescription = ''
       8086tiny is a tiny, open-source (MIT), portable (little-endian hosts)
       Intel PC emulator, powerful enough to run DOS, Windows 3.0, Excel, MS
diff --git a/pkgs/applications/emulators/tinyemu/default.nix b/pkgs/applications/emulators/tinyemu/default.nix
index ca3f8acd88ca2..31dbfc9c23db6 100644
--- a/pkgs/applications/emulators/tinyemu/default.nix
+++ b/pkgs/applications/emulators/tinyemu/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://bellard.org/tinyemu/";
-    description = "A system emulator for the RISC-V and x86 architectures";
+    description = "System emulator for the RISC-V and x86 architectures";
     longDescription = ''
       TinyEMU is a system emulator for the RISC-V and x86 architectures. Its
       purpose is to be small and simple while being complete.
diff --git a/pkgs/applications/emulators/vbam/default.nix b/pkgs/applications/emulators/vbam/default.nix
index 3c89fed020b41..b5141c59f91ea 100644
--- a/pkgs/applications/emulators/vbam/default.nix
+++ b/pkgs/applications/emulators/vbam/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta =  with lib; {
-    description = "A merge of the original Visual Boy Advance forks";
+    description = "Merge of the original Visual Boy Advance forks";
     license = licenses.gpl2;
     maintainers = with maintainers; [ lassulus netali ];
     homepage = "https://vba-m.com/";
diff --git a/pkgs/applications/emulators/wine/base.nix b/pkgs/applications/emulators/wine/base.nix
index 1c62a9aad97d3..dfc72683d7d3b 100644
--- a/pkgs/applications/emulators/wine/base.nix
+++ b/pkgs/applications/emulators/wine/base.nix
@@ -193,7 +193,7 @@ lib.optionalAttrs (buildScript != null) { builder = buildScript; }
       fromSource
       binaryNativeCode  # mono, gecko
     ];
-    description = "An Open Source implementation of the Windows API on top of X, OpenGL, and Unix";
+    description = "Open Source implementation of the Windows API on top of X, OpenGL, and Unix";
     inherit badPlatforms platforms;
     maintainers = with lib.maintainers; [ avnik raskin bendlas jmc-figueira reckenrode ];
     inherit mainProgram;
diff --git a/pkgs/applications/emulators/wine/sources.nix b/pkgs/applications/emulators/wine/sources.nix
index abede892b5ecf..9abb44fd61a4e 100644
--- a/pkgs/applications/emulators/wine/sources.nix
+++ b/pkgs/applications/emulators/wine/sources.nix
@@ -69,9 +69,9 @@ in rec {
 
   unstable = fetchurl rec {
     # NOTE: Don't forget to change the hash for staging as well.
-    version = "9.9";
+    version = "9.11";
     url = "https://dl.winehq.org/wine/source/9.x/wine-${version}.tar.xz";
-    hash = "sha256-TWengSxKvUo96SMjjmD1qGsWrH+yD2KU4Nxu+ei+yjY=";
+    hash = "sha256-36AMJk6nEWnQKoSagz5Iyudh+whCKgDfhkTr1nv4ckA=";
     inherit (stable) patches;
 
     ## see http://wiki.winehq.org/Gecko
@@ -117,7 +117,7 @@ in rec {
   staging = fetchFromGitLab rec {
     # https://gitlab.winehq.org/wine/wine-staging
     inherit (unstable) version;
-    hash = "sha256-JJrt2zTCjI8Zectoa5B0eZm2BLQm9u5cHbqVEHygwd0=";
+    hash = "sha256-vqlikMatRlGxvWJ6BJu2HyBclV4x+vzNPNe8py7jKqo=";
     domain = "gitlab.winehq.org";
     owner = "wine";
     repo = "wine-staging";
diff --git a/pkgs/applications/emulators/wine/winetricks.nix b/pkgs/applications/emulators/wine/winetricks.nix
index 2b31faae18a42..6d3ac4f662963 100644
--- a/pkgs/applications/emulators/wine/winetricks.nix
+++ b/pkgs/applications/emulators/wine/winetricks.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "A script to install DLLs needed to work around problems in Wine";
+    description = "Script to install DLLs needed to work around problems in Wine";
     mainProgram = "winetricks";
     license = lib.licenses.lgpl21;
     homepage = "https://github.com/Winetricks/winetricks";
diff --git a/pkgs/applications/emulators/xcpc/default.nix b/pkgs/applications/emulators/xcpc/default.nix
index 6482f05cf1b11..d2d946c400fd1 100644
--- a/pkgs/applications/emulators/xcpc/default.nix
+++ b/pkgs/applications/emulators/xcpc/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     ++ optional motifSupport lesstif;
 
   meta = {
-    description = "A portable Amstrad CPC 464/664/6128 emulator written in C";
+    description = "Portable Amstrad CPC 464/664/6128 emulator written in C";
     homepage = "https://www.xcpc-emulator.net";
     license = licenses.gpl2Plus;
     maintainers = [ ];
diff --git a/pkgs/applications/emulators/yabause/default.nix b/pkgs/applications/emulators/yabause/default.nix
index fea9a439bb8fe..53fcc870f1a16 100644
--- a/pkgs/applications/emulators/yabause/default.nix
+++ b/pkgs/applications/emulators/yabause/default.nix
@@ -27,7 +27,7 @@ mkDerivation rec {
   ] ;
 
   meta = with lib; {
-    description = "An open-source Sega Saturn emulator";
+    description = "Open-source Sega Saturn emulator";
     mainProgram = "yabause";
     homepage = "https://yabause.org/";
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/emulators/zsnes/2.x.nix b/pkgs/applications/emulators/zsnes/2.x.nix
index df253477d07bb..4a446174a34d2 100644
--- a/pkgs/applications/emulators/zsnes/2.x.nix
+++ b/pkgs/applications/emulators/zsnes/2.x.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/xyproto/zsnes";
-    description = "A maintained fork of zsnes";
+    description = "Maintained fork of zsnes";
     license = lib.licenses.gpl2Plus;
     maintainers = [ lib.maintainers.AndersonTorres ];
     platforms = lib.intersectLists lib.platforms.linux lib.platforms.x86;
diff --git a/pkgs/applications/emulators/zsnes/default.nix b/pkgs/applications/emulators/zsnes/default.nix
index ebe7af84d7fcf..98fed7058611c 100644
--- a/pkgs/applications/emulators/zsnes/default.nix
+++ b/pkgs/applications/emulators/zsnes/default.nix
@@ -65,7 +65,7 @@ in stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "A Super Nintendo Entertainment System Emulator";
+    description = "Super Nintendo Entertainment System Emulator";
     license = lib.licenses.gpl2Plus;
     maintainers = [ lib.maintainers.sander ];
     homepage = "https://www.zsnes.com";
diff --git a/pkgs/applications/file-managers/browsr/default.nix b/pkgs/applications/file-managers/browsr/default.nix
index dbf481ed00482..ba88f782ef657 100644
--- a/pkgs/applications/file-managers/browsr/default.nix
+++ b/pkgs/applications/file-managers/browsr/default.nix
@@ -82,7 +82,7 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   meta = with lib; {
-    description = "A file explorer in your terminal";
+    description = "File explorer in your terminal";
     mainProgram = "browsr";
     homepage = "https://juftin.com/browsr";
     changelog = "https://github.com/juftin/browsr/releases/tag/${src.rev}";
diff --git a/pkgs/applications/file-managers/clifm/default.nix b/pkgs/applications/file-managers/clifm/default.nix
index 026c6f52d0207..cd263dd2e851a 100644
--- a/pkgs/applications/file-managers/clifm/default.nix
+++ b/pkgs/applications/file-managers/clifm/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "clifm";
-  version = "1.18";
+  version = "1.19";
 
   src = fetchFromGitHub {
     owner = "leo-arch";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-tgCGZCLCWcF7ktXqDHjoUkeVqxg6QVOkZb7pbk3nA+U=";
+    hash = "sha256-QNxEvFZ5e4jQV2Tv2/D9KPRDoCoQlrqStFnbKVgcXxg=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/file-managers/lf/default.nix b/pkgs/applications/file-managers/lf/default.nix
index 20f91b9518a90..5e6c09b89c89e 100644
--- a/pkgs/applications/file-managers/lf/default.nix
+++ b/pkgs/applications/file-managers/lf/default.nix
@@ -33,7 +33,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A terminal file manager written in Go and heavily inspired by ranger";
+    description = "Terminal file manager written in Go and heavily inspired by ranger";
     longDescription = ''
       lf (as in "list files") is a terminal file manager written in Go. It is
       heavily inspired by ranger with some missing and extra features. Some of
diff --git a/pkgs/applications/file-managers/portfolio-filemanager/default.nix b/pkgs/applications/file-managers/portfolio-filemanager/default.nix
index 4c21e8cbe0574..8375e18634b08 100644
--- a/pkgs/applications/file-managers/portfolio-filemanager/default.nix
+++ b/pkgs/applications/file-managers/portfolio-filemanager/default.nix
@@ -73,7 +73,7 @@ python3.pkgs.buildPythonApplication rec {
   };
 
   meta = with lib; {
-    description = "A minimalist file manager for those who want to use Linux mobile devices";
+    description = "Minimalist file manager for those who want to use Linux mobile devices";
     homepage = "https://github.com/tchx84/Portfolio";
     changelog = "https://github.com/tchx84/Portfolio/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/file-managers/projectable/default.nix b/pkgs/applications/file-managers/projectable/default.nix
index c5b6009bf22f2..207ea0d0ba0a7 100644
--- a/pkgs/applications/file-managers/projectable/default.nix
+++ b/pkgs/applications/file-managers/projectable/default.nix
@@ -40,7 +40,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A TUI file manager built for projects";
+    description = "TUI file manager built for projects";
     homepage = "https://github.com/dzfrias/projectable";
     changelog = "https://github.com/dzfrias/projectable/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/applications/file-managers/spacefm/default.nix b/pkgs/applications/file-managers/spacefm/default.nix
index 4de3580c1df3e..f7c7eac9a3a3f 100644
--- a/pkgs/applications/file-managers/spacefm/default.nix
+++ b/pkgs/applications/file-managers/spacefm/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
   # Revert when libplist builds again…
 
   meta = with lib;  {
-    description = "A multi-panel tabbed file manager";
+    description = "Multi-panel tabbed file manager";
     longDescription = ''
       Multi-panel tabbed file and desktop manager for Linux
       with built-in VFS, udev- or HAL-based device manager,
diff --git a/pkgs/applications/file-managers/vifm/default.nix b/pkgs/applications/file-managers/vifm/default.nix
index c8e038a6f605b..f58768593c8f7 100644
--- a/pkgs/applications/file-managers/vifm/default.nix
+++ b/pkgs/applications/file-managers/vifm/default.nix
@@ -45,7 +45,7 @@ in stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A vi-like file manager${lib.optionalString isFullPackage "; Includes support for optional features"}";
+    description = "Vi-like file manager${lib.optionalString isFullPackage "; Includes support for optional features"}";
     maintainers = with maintainers; [ raskin ];
     platforms = if mediaSupport then platforms.linux else platforms.unix;
     license = licenses.gpl2;
diff --git a/pkgs/applications/file-managers/xplorer/default.nix b/pkgs/applications/file-managers/xplorer/default.nix
index 76edf8ee48328..027c051fef79a 100644
--- a/pkgs/applications/file-managers/xplorer/default.nix
+++ b/pkgs/applications/file-managers/xplorer/default.nix
@@ -86,7 +86,7 @@ rustPlatform.buildRustPackage {
   '';
 
   meta = with lib; {
-    description = "A customizable, modern file manager";
+    description = "Customizable, modern file manager";
     homepage = "https://xplorer.space";
     license = licenses.asl20;
     maintainers = with maintainers; [ dit7ya ];
diff --git a/pkgs/applications/finance/odoo/update.sh b/pkgs/applications/finance/odoo/update.sh
deleted file mode 100755
index 0f7ee144cf8a2..0000000000000
--- a/pkgs/applications/finance/odoo/update.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -i bash -p curl gnused nix coreutils nix-prefetch
-
-set -euo pipefail
-
-DOCKER=$(curl -s https://raw.githubusercontent.com/odoo/docker/master/16.0/Dockerfile)
-
-get_var() {
-  echo "$DOCKER" | grep -E "^[A-Z][A-Z][A-Z] ODOO_$1" | sed -r "s|^[A-Z]{3} ODOO_$1.||g"
-}
-
-VERSION=$(get_var VERSION)
-RELEASE=$(get_var RELEASE)
-
-latestVersion="$VERSION.$RELEASE"
-currentVersion=$(nix-instantiate --eval -E "with import ./. {}; odoo.version or (lib.getVersion odoo)" | tr -d '"')
-
-if [[ "$currentVersion" == "$latestVersion" ]]; then
-  echo "odoo is up-to-date: $currentVersion"
-  exit 0
-fi
-
-cd "$(dirname "${BASH_SOURCE[0]}")"
-
-sed -ri "s| hash.+ # odoo| hash = \"$(nix-prefetch -q fetchzip --url "https://nightly.odoo.com/${VERSION}/nightly/src/odoo_${latestVersion}.zip")\"; # odoo|g" default.nix
-sed -ri "s| odoo_version.+| odoo_version = \"$VERSION\";|" default.nix
-sed -ri "s| odoo_release.+| odoo_release = \"$RELEASE\";|" default.nix
diff --git a/pkgs/applications/gis/qgis/unwrapped-ltr.nix b/pkgs/applications/gis/qgis/unwrapped-ltr.nix
index f76f82856055c..aa313fef857cc 100644
--- a/pkgs/applications/gis/qgis/unwrapped-ltr.nix
+++ b/pkgs/applications/gis/qgis/unwrapped-ltr.nix
@@ -180,7 +180,7 @@ in mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Free and Open Source Geographic Information System";
+    description = "Free and Open Source Geographic Information System";
     homepage = "https://www.qgis.org";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; teams.geospatial.members ++ [ lsix ];
diff --git a/pkgs/applications/gis/qgis/unwrapped.nix b/pkgs/applications/gis/qgis/unwrapped.nix
index 19fcb5344445a..c20e9209f0746 100644
--- a/pkgs/applications/gis/qgis/unwrapped.nix
+++ b/pkgs/applications/gis/qgis/unwrapped.nix
@@ -181,7 +181,7 @@ in mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Free and Open Source Geographic Information System";
+    description = "Free and Open Source Geographic Information System";
     homepage = "https://www.qgis.org";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; teams.geospatial.members ++ [ lsix ];
diff --git a/pkgs/applications/gis/spatialite-tools/default.nix b/pkgs/applications/gis/spatialite-tools/default.nix
index b05b3949aef6e..cdd7911a5d3fa 100644
--- a/pkgs/applications/gis/spatialite-tools/default.nix
+++ b/pkgs/applications/gis/spatialite-tools/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A complete sqlite3-compatible CLI front-end for libspatialite";
+    description = "Complete sqlite3-compatible CLI front-end for libspatialite";
     homepage = "https://www.gaia-gis.it/fossil/spatialite-tools";
     license = with licenses; [ mpl11 gpl2Plus lgpl21Plus ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/gis/tunnelx/default.nix b/pkgs/applications/gis/tunnelx/default.nix
index 270faac53f685..8209635d8859a 100644
--- a/pkgs/applications/gis/tunnelx/default.nix
+++ b/pkgs/applications/gis/tunnelx/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A program for drawing cave surveys in 2D";
+    description = "Program for drawing cave surveys in 2D";
     homepage = "https://github.com/CaveSurveying/tunnelx/";
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ goatchurchprime ];
diff --git a/pkgs/applications/gis/whitebox-tools/default.nix b/pkgs/applications/gis/whitebox-tools/default.nix
index b8ccd554f7715..df2343d8813e5 100644
--- a/pkgs/applications/gis/whitebox-tools/default.nix
+++ b/pkgs/applications/gis/whitebox-tools/default.nix
@@ -1,31 +1,51 @@
-{ lib
-, stdenv
-, rustPlatform
-, fetchFromGitHub
-, Security
+{
+  lib,
+  stdenv,
+  cmake,
+  rustPlatform,
+  pkg-config,
+  fetchFromGitHub,
+  atk,
+  gtk3,
+  glib,
+  openssl,
+  Security,
+  nix-update-script,
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "whitebox_tools";
-  version = "2.2.0";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "jblindsay";
     repo = "whitebox-tools";
     rev = "v${version}";
-    hash = "sha256-DQ7BPRd90GNQVfD5NoVcxoyd2L3WZvIkecmRJVUY1R4=";
+    hash = "sha256-kvtfEEydwonoDux1VbAxqrF/Hf8Qh8mhprYnROGOC6g=";
   };
 
-  cargoHash = "sha256-BounjGGhbU5dxNV8WjVDQtV7YONNVRldc/t+wet1Gh8=";
+  cargoHash = "sha256-6v/3b6BHh/n7M2ZhLVKRvv0Va2xbLUSsxUb5paOStbQ=";
 
-  buildInputs = lib.optional stdenv.isDarwin Security;
+  buildInputs = [
+    atk
+    glib
+    gtk3
+    openssl
+  ] ++ lib.optional stdenv.isDarwin Security;
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
 
   doCheck = false;
 
-  meta = with lib; {
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
     homepage = "https://jblindsay.github.io/ghrg/WhiteboxTools/index.html";
-    description = "An advanced geospatial data analysis platform";
-    license = licenses.mit;
-    maintainers = [ maintainers.mpickering ];
+    description = "Advanced geospatial data analysis platform";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ mpickering ];
   };
 }
diff --git a/pkgs/applications/graphics/ImageMagick/6.x.nix b/pkgs/applications/graphics/ImageMagick/6.x.nix
index 9be6460d8f1de..99810a8d496f4 100644
--- a/pkgs/applications/graphics/ImageMagick/6.x.nix
+++ b/pkgs/applications/graphics/ImageMagick/6.x.nix
@@ -115,7 +115,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://legacy.imagemagick.org/";
     changelog = "https://legacy.imagemagick.org/script/changelog.php";
-    description = "A software suite to create, edit, compose, or convert bitmap images";
+    description = "Software suite to create, edit, compose, or convert bitmap images";
     pkgConfigModules = [ "ImageMagick" "MagickWand" ];
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/applications/graphics/ImageMagick/default.nix b/pkgs/applications/graphics/ImageMagick/default.nix
index c15af9d94fb28..491ef7c1f538c 100644
--- a/pkgs/applications/graphics/ImageMagick/default.nix
+++ b/pkgs/applications/graphics/ImageMagick/default.nix
@@ -135,13 +135,16 @@ stdenv.mkDerivation (finalAttrs: {
     inherit nixos-icons;
     inherit (perlPackages) ImageMagick;
     inherit (python3.pkgs) img2pdf;
-    pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+    pkg-config = testers.hasPkgConfigModules {
+      package = finalAttrs.finalPackage;
+      version = lib.head (lib.splitString "-" finalAttrs.version);
+    };
   };
 
   meta = with lib; {
     homepage = "http://www.imagemagick.org/";
     changelog = "https://github.com/ImageMagick/Website/blob/main/ChangeLog.md";
-    description = "A software suite to create, edit, compose, or convert bitmap images";
+    description = "Software suite to create, edit, compose, or convert bitmap images";
     pkgConfigModules = [ "ImageMagick" "MagickWand" ];
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ erictapen dotlambda rhendric ];
diff --git a/pkgs/applications/graphics/ahoviewer/default.nix b/pkgs/applications/graphics/ahoviewer/default.nix
index 4c1d309ebbab6..eaec49ec89bba 100644
--- a/pkgs/applications/graphics/ahoviewer/default.nix
+++ b/pkgs/applications/graphics/ahoviewer/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/ahodesuka/ahoviewer";
-    description = "A GTK2 image viewer, manga reader, and booru browser";
+    description = "GTK2 image viewer, manga reader, and booru browser";
     mainProgram = "ahoviewer";
     maintainers = with maintainers; [ xzfc ];
     license = licenses.mit;
diff --git a/pkgs/applications/graphics/antimony/default.nix b/pkgs/applications/graphics/antimony/default.nix
index 56ee01f8bbe80..d39961da9077c 100644
--- a/pkgs/applications/graphics/antimony/default.nix
+++ b/pkgs/applications/graphics/antimony/default.nix
@@ -61,7 +61,7 @@ in
     ];
 
     meta = with lib; {
-      description = "A computer-aided design (CAD) tool from a parallel universe";
+      description = "Computer-aided design (CAD) tool from a parallel universe";
       mainProgram = "antimony";
       homepage    = "https://github.com/mkeeter/antimony";
       license     = licenses.mit;
diff --git a/pkgs/applications/graphics/apitrace/default.nix b/pkgs/applications/graphics/apitrace/default.nix
index 8d642c67820e7..c6057ccc285b2 100644
--- a/pkgs/applications/graphics/apitrace/default.nix
+++ b/pkgs/applications/graphics/apitrace/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "apitrace";
-  version = "11.1";
+  version = "12.0";
 
   src = fetchFromGitHub {
     owner = "apitrace";
     repo = "apitrace";
     rev = version;
-    hash = "sha256-rvC6iVWNNxH11hzQvRTo+SQi9jEUCPWGSdJmKJe9SQ0=";
+    hash = "sha256-Y2ceE0F7q5tP64Mtvkc7JHOZQN30MDVCPHfiWDnfTSQ=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/graphics/artem/default.nix b/pkgs/applications/graphics/artem/default.nix
index 36d200ad07c46..8b391f104d83c 100644
--- a/pkgs/applications/graphics/artem/default.nix
+++ b/pkgs/applications/graphics/artem/default.nix
@@ -43,7 +43,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A small CLI program to convert images to ASCII art";
+    description = "Small CLI program to convert images to ASCII art";
     homepage = "https://github.com/finefindus/artem";
     changelog = "https://github.com/finefindus/artem/blob/v${version}/CHANGELOG.md";
     license = licenses.mpl20;
diff --git a/pkgs/applications/graphics/avocode/default.nix b/pkgs/applications/graphics/avocode/default.nix
index c10f85a99dcec..2bd13de7d5d63 100644
--- a/pkgs/applications/graphics/avocode/default.nix
+++ b/pkgs/applications/graphics/avocode/default.nix
@@ -98,7 +98,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://avocode.com/";
-    description = "The bridge between designers and developers";
+    description = "Bridge between designers and developers";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = platforms.linux;
diff --git a/pkgs/applications/graphics/awesomebump/default.nix b/pkgs/applications/graphics/awesomebump/default.nix
index ef9a2f7c77665..8f5b4c0c659cd 100644
--- a/pkgs/applications/graphics/awesomebump/default.nix
+++ b/pkgs/applications/graphics/awesomebump/default.nix
@@ -55,7 +55,7 @@ in mkDerivation {
 
   meta = {
     homepage = "https://github.com/kmkolasinski/AwesomeBump";
-    description = "A program to generate normal, height, specular or ambient occlusion textures from a single image";
+    description = "Program to generate normal, height, specular or ambient occlusion textures from a single image";
     license = lib.licenses.gpl3Plus;
     maintainers = [ lib.maintainers.eelco ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/applications/graphics/brlcad/default.nix b/pkgs/applications/graphics/brlcad/default.nix
index f30a6acbbbee7..91b063f8fc935 100644
--- a/pkgs/applications/graphics/brlcad/default.nix
+++ b/pkgs/applications/graphics/brlcad/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , cmake
 , fontconfig
 , libX11
@@ -11,15 +12,25 @@
 
 stdenv.mkDerivation rec {
   pname = "brlcad";
-  version = "7.34.2";
+  version = "7.38.2";
 
   src = fetchFromGitHub {
     owner = "BRL-CAD";
-    repo = pname;
+    repo = "brlcad";
     rev = "refs/tags/rel-${lib.replaceStrings [ "." ] [ "-" ] version}";
-    hash = "sha256-oafu255xElEIk8p4yvNyR2maykUfxQui/L5MkicA+JA=";
+    hash = "sha256-23UTeH4gY2x/QGYZ64glAkf6LmsXBAppIOHgoUdxgpo=";
   };
 
+  patches = [
+    # This commit was bringing an impurity in the rpath resulting in:
+    # RPATH of binary /nix/store/rq2hjvfgq2nvh5zxch51ij34rqqdpark-brlcad-7.38.0/bin/tclsh contains a forbidden reference to /build/
+    (fetchpatch {
+      url = "https://github.com/BRL-CAD/brlcad/commit/fbdbf042b2db4c7d46839a17bbf4985cdb81f0ae.patch";
+      revert = true;
+      hash = "sha256-Wfihd7TLkE8aOpLdDtYmhhd7nZijiVGh1nbUjWr/BjQ=";
+    })
+  ];
+
   nativeBuildInputs = [
     cmake
   ];
@@ -36,11 +47,19 @@ stdenv.mkDerivation rec {
     "-DBRLCAD_ENABLE_STRICT=OFF"
   ];
 
+  env.NIX_CFLAGS_COMPILE = toString [
+    # Needed with GCC 12
+    "-Wno-error=array-bounds"
+  ];
+
   meta = with lib; {
     homepage = "https://brlcad.org";
     description = "BRL-CAD is a powerful cross-platform open source combinatorial solid modeling system";
+    changelog = "https://github.com/BRL-CAD/brlcad/releases/tag/${src.rev}";
     license = with licenses; [ lgpl21 bsd2 ];
     maintainers = with maintainers; [ GaetanLepage ];
     platforms = platforms.linux;
+    # error Exactly one of ON_LITTLE_ENDIAN or ON_BIG_ENDIAN should be defined.
+    broken = stdenv.system == "aarch64-linux";
   };
 }
diff --git a/pkgs/applications/graphics/ciano/default.nix b/pkgs/applications/graphics/ciano/default.nix
index 454a1d28c4772..1106bd9581942 100644
--- a/pkgs/applications/graphics/ciano/default.nix
+++ b/pkgs/applications/graphics/ciano/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/robertsanseries/ciano";
-    description = "A multimedia file converter focused on simplicity";
+    description = "Multimedia file converter focused on simplicity";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/graphics/cloudcompare/default.nix b/pkgs/applications/graphics/cloudcompare/default.nix
index f66189e0c75c1..eac82182f61dc 100644
--- a/pkgs/applications/graphics/cloudcompare/default.nix
+++ b/pkgs/applications/graphics/cloudcompare/default.nix
@@ -11,7 +11,7 @@
 , flann
 , gdal
 , gmp
-, LASzip
+, laszip
 , mpfr
 , pdal
 , pcl
@@ -48,7 +48,7 @@ mkDerivation rec {
     flann
     gdal
     gmp
-    LASzip
+    laszip
     mpfr
     pdal
     pcl
diff --git a/pkgs/applications/graphics/curtail/default.nix b/pkgs/applications/graphics/curtail/default.nix
index 0ef67bdcc85fa..6ff083d08f02e 100644
--- a/pkgs/applications/graphics/curtail/default.nix
+++ b/pkgs/applications/graphics/curtail/default.nix
@@ -20,14 +20,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "curtail";
-  version = "1.9.1";
+  version = "1.10.0";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "Huluti";
     repo = "Curtail";
     rev = "refs/tags/${version}";
-    sha256 = "sha256-9xTdT2mS3aWyimkxrNwCuWIzZ0dPE7w4xUwO53kKr30=";
+    sha256 = "sha256-xwpjyMMdjYMrd79/EzoNae4rQuq2VjwJRNoudNGD78E=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/curv/default.nix b/pkgs/applications/graphics/curv/default.nix
index 71793b861508f..7113437245a38 100644
--- a/pkgs/applications/graphics/curv/default.nix
+++ b/pkgs/applications/graphics/curv/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A 2D and 3D geometric modelling programming language for creating art with maths";
+    description = "2D and 3D geometric modelling programming language for creating art with maths";
     homepage = "https://github.com/curv3d/curv";
     license = licenses.asl20;
     platforms = platforms.all;
diff --git a/pkgs/applications/graphics/deskew/default.nix b/pkgs/applications/graphics/deskew/default.nix
index f43a26f692a34..71ed3051d084f 100644
--- a/pkgs/applications/graphics/deskew/default.nix
+++ b/pkgs/applications/graphics/deskew/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A command line tool for deskewing scanned text documents";
+    description = "Command line tool for deskewing scanned text documents";
     homepage = "https://galfar.vevb.net/deskew";
     license = with licenses; [ mit mpl11 ];
     maintainers = with maintainers; [ryantm];
diff --git a/pkgs/applications/graphics/djv/default.nix b/pkgs/applications/graphics/djv/default.nix
index 735807691af79..00d3d93a25e15 100644
--- a/pkgs/applications/graphics/djv/default.nix
+++ b/pkgs/applications/graphics/djv/default.nix
@@ -168,7 +168,7 @@ stdenv.mkDerivation rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A professional review software for VFX, animation, and film production";
+    description = "Professional review software for VFX, animation, and film production";
     homepage = "https://darbyjohnston.github.io/DJV/";
     platforms = platforms.linux;
     maintainers = [ maintainers.blitz ];
diff --git a/pkgs/applications/graphics/djview/default.nix b/pkgs/applications/graphics/djview/default.nix
index 5bbbfc0c686cf..3678b9760c812 100644
--- a/pkgs/applications/graphics/djview/default.nix
+++ b/pkgs/applications/graphics/djview/default.nix
@@ -1,6 +1,9 @@
 { lib, stdenv
 , mkDerivation
 , fetchurl
+, autoconf
+, automake
+, libtool
 , pkg-config
 , djvulibre
 , qtbase
@@ -12,14 +15,19 @@
 
 mkDerivation rec {
   pname = "djview";
-  version = "4.10.6";
+  version = "4.12";
+
+  outputs = [ "out" "man" ];
 
   src = fetchurl {
     url = "mirror://sourceforge/djvu/${pname}-${version}.tar.gz";
-    sha256 = "08bwv8ppdzhryfcnifgzgdilb12jcnivl4ig6hd44f12d76z6il4";
+    hash = "sha256-VnPGqLfhlbkaFyCyQJGRW4FF3jSHnbEVi8k2sQDq8+M=";
   };
 
   nativeBuildInputs = [
+    autoconf
+    automake
+    libtool
     pkg-config
     qttools
   ];
@@ -31,24 +39,24 @@ mkDerivation rec {
     libtiff
   ] ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.AGL;
 
+  preConfigure = ''
+    NOCONFIGURE=1 ./autogen.sh
+  '';
+
   configureFlags = [
     "--disable-silent-rules"
     "--disable-dependency-tracking"
     "--with-x"
     "--with-tiff"
-    # NOTE: 2019-09-19: experimental "--enable-npdjvu" fails
+    "--disable-nsdejavu" # 2023-11-14: modern browsers have dropped support for NPAPI
   ] ++ lib.optional stdenv.isDarwin "--enable-mac";
 
-  passthru = {
-    mozillaPlugin = "/lib/mozilla/plugins";
-  };
-
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A portable DjVu viewer (Qt5) and browser (nsdejavu) plugin";
+    description = "Portable DjVu viewer (Qt5) and browser (nsdejavu) plugin";
     mainProgram = "djview";
     homepage = "https://djvu.sourceforge.net/djview4.html";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ Anton-Latukha ];
     longDescription = ''
diff --git a/pkgs/applications/graphics/dosage/default.nix b/pkgs/applications/graphics/dosage/default.nix
index d04820afad96c..e943bf4f31816 100644
--- a/pkgs/applications/graphics/dosage/default.nix
+++ b/pkgs/applications/graphics/dosage/default.nix
@@ -20,7 +20,7 @@ python3Packages.buildPythonApplication rec {
   ];
 
   meta = {
-    description = "A comic strip downloader and archiver";
+    description = "Comic strip downloader and archiver";
     mainProgram = "dosage";
     homepage = "https://dosage.rocks/";
     license = lib.licenses.mit;
diff --git a/pkgs/applications/graphics/drawing/default.nix b/pkgs/applications/graphics/drawing/default.nix
index cf4b650219194..6f464a1ec0b4a 100644
--- a/pkgs/applications/graphics/drawing/default.nix
+++ b/pkgs/applications/graphics/drawing/default.nix
@@ -62,7 +62,7 @@ python3.pkgs.buildPythonApplication rec {
   strictDeps = false;
 
   meta = with lib; {
-    description = "A free basic image editor, similar to Microsoft Paint, but aiming at the GNOME desktop";
+    description = "Free basic image editor, similar to Microsoft Paint, but aiming at the GNOME desktop";
     mainProgram = "drawing";
     homepage = "https://maoschanz.github.io/drawing/";
     changelog = "https://github.com/maoschanz/drawing/releases/tag/${version}";
diff --git a/pkgs/applications/graphics/drawio/default.nix b/pkgs/applications/graphics/drawio/default.nix
index 007f855d805db..fdecceeac74e7 100644
--- a/pkgs/applications/graphics/drawio/default.nix
+++ b/pkgs/applications/graphics/drawio/default.nix
@@ -14,24 +14,24 @@
 
 stdenv.mkDerivation rec {
   pname = "drawio";
-  version = "24.4.0";
+  version = "24.4.8";
 
   src = fetchFromGitHub {
     owner = "jgraph";
     repo = "drawio-desktop";
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-x+9e0DPvYuxFqZAuCuzndz2E1iKdsmtN9WGUQPc9/uM=";
+    hash = "sha256-dtkRi7oisdgMAbaltPcz5umxcd6/F1WOjKQpJUAFFY0=";
   };
 
   # `@electron/fuses` tries to run `codesign` and fails. Disable and use autoSignDarwinBinariesHook instead
   postPatch = ''
-    sed -i -e 's/resetAdHocDarwinSignature:.*/resetAdHocDarwinSignature: false,/' build/fuses.js
+    sed -i -e 's/resetAdHocDarwinSignature:.*/resetAdHocDarwinSignature: false,/' build/fuses.cjs
   '';
 
   offlineCache = fetchYarnDeps {
     yarnLock = src + "/yarn.lock";
-    hash = "sha256-OL4AcV8Fy25liRn4oVTLjUKyIuDKBsXHyN5RG3qexu4=";
+    hash = "sha256-JbDIaO5jgPAoSD3hkMaKp3vLU5Avt+G5h427bvWJ08k=";
   };
 
   nativeBuildInputs = [
@@ -114,7 +114,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A desktop application for creating diagrams";
+    description = "Desktop application for creating diagrams";
     homepage = "https://about.draw.io/";
     license = licenses.asl20;
     changelog = "https://github.com/jgraph/drawio-desktop/releases/tag/v${version}";
diff --git a/pkgs/applications/graphics/drawpile/default.nix b/pkgs/applications/graphics/drawpile/default.nix
index 5c43c609f31f6..0522879d9d3e1 100644
--- a/pkgs/applications/graphics/drawpile/default.nix
+++ b/pkgs/applications/graphics/drawpile/default.nix
@@ -97,7 +97,7 @@ in mkDerivation rec {
   ];
 
   meta = {
-    description = "A collaborative drawing program that allows multiple users to sketch on the same canvas simultaneously";
+    description = "Collaborative drawing program that allows multiple users to sketch on the same canvas simultaneously";
     mainProgram = "drawpile-srv";
     homepage = "https://drawpile.net/";
     downloadPage = "https://drawpile.net/download/";
diff --git a/pkgs/applications/graphics/emulsion/default.nix b/pkgs/applications/graphics/emulsion/default.nix
index 67342c57c8464..a57a33e11b51b 100644
--- a/pkgs/applications/graphics/emulsion/default.nix
+++ b/pkgs/applications/graphics/emulsion/default.nix
@@ -68,7 +68,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A fast and minimalistic image viewer";
+    description = "Fast and minimalistic image viewer";
     homepage = "https://arturkovacs.github.io/emulsion-website/";
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/graphics/f3d/default.nix b/pkgs/applications/graphics/f3d/default.nix
index 3b45ca987f1a2..dd893ba9a976e 100644
--- a/pkgs/applications/graphics/f3d/default.nix
+++ b/pkgs/applications/graphics/f3d/default.nix
@@ -10,13 +10,14 @@
 , libGL
 , Cocoa
 , OpenGL
+, withManual ? !stdenv.isDarwin
 }:
 
 stdenv.mkDerivation rec {
   pname = "f3d";
   version = "2.4.0";
 
-  outputs = [ "out" "man" ];
+  outputs = [ "out" ] ++ lib.optionals withManual [ "man" ];
 
   src = fetchFromGitHub {
     owner = "f3d-app";
@@ -27,8 +28,11 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     cmake
+  ] ++ lib.optionals withManual [
+    # manpage
     help2man
     gzip
+  ] ++ lib.optionals stdenv.hostPlatform.isElf [
     # https://github.com/f3d-app/f3d/pull/1217
     autoPatchelfHook
   ];
@@ -41,7 +45,7 @@ stdenv.mkDerivation rec {
     "-DCMAKE_INSTALL_LIBDIR=lib"
     "-DCMAKE_INSTALL_INCLUDEDIR=include"
     "-DCMAKE_INSTALL_BINDIR=bin"
-
+  ] ++ lib.optionals withManual [
     "-DF3D_LINUX_GENERATE_MAN=ON"
   ];
 
diff --git a/pkgs/applications/graphics/feh/default.nix b/pkgs/applications/graphics/feh/default.nix
index de43122b9080c..f4adcace1ec43 100644
--- a/pkgs/applications/graphics/feh/default.nix
+++ b/pkgs/applications/graphics/feh/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
   doCheck = true;
 
   meta = with lib; {
-    description = "A light-weight image viewer";
+    description = "Light-weight image viewer";
     homepage = "https://feh.finalrewind.org/";
     # released under a variant of the MIT license
     # https://spdx.org/licenses/MIT-feh.html
diff --git a/pkgs/applications/graphics/figma-linux/default.nix b/pkgs/applications/graphics/figma-linux/default.nix
index 6c794c9706bb2..55583cd188090 100644
--- a/pkgs/applications/graphics/figma-linux/default.nix
+++ b/pkgs/applications/graphics/figma-linux/default.nix
@@ -10,11 +10,11 @@
 with lib;
 stdenv.mkDerivation (finalAttrs: {
   pname = "figma-linux";
-  version = "0.11.3";
+  version = "0.11.4";
 
   src = fetchurl {
     url = "https://github.com/Figma-Linux/figma-linux/releases/download/v${finalAttrs.version}/figma-linux_${finalAttrs.version}_linux_amd64.deb";
-    hash = "sha256-9UfyCqgsg9XAFyZ7V7TogkQou4x+ixFUfjXZ1/qlDmA=";
+    hash = "sha256-ukUsNgWOtIRe54vsmRdI62syjIPwSsgNV7kITCw0YUQ=";
   };
 
   nativeBuildInputs = [ autoPatchelfHook dpkg wrapGAppsHook3 ];
diff --git a/pkgs/applications/graphics/flaca/default.nix b/pkgs/applications/graphics/flaca/default.nix
index 90fec04b36e5f..b2d82b458b495 100644
--- a/pkgs/applications/graphics/flaca/default.nix
+++ b/pkgs/applications/graphics/flaca/default.nix
@@ -32,7 +32,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-w+PeuH6VFIu3iH5EXF6gEwyYoGeqXX0yd5jJs2NqisQ=";
 
   meta = with lib; {
-    description = "A CLI tool to losslessly compress JPEG and PNG images";
+    description = "CLI tool to losslessly compress JPEG and PNG images";
     longDescription = "A CLI tool for x86-64 Linux machines that simplifies the task of maximally, losslessly compressing JPEG and PNG images for use in production web environments";
     homepage = "https://github.com/Blobfolio/flaca";
     maintainers = with maintainers; [ zzzsy ];
diff --git a/pkgs/applications/graphics/fstl/default.nix b/pkgs/applications/graphics/fstl/default.nix
index a004c2dd8d77d..c3d1f5eb655ee 100644
--- a/pkgs/applications/graphics/fstl/default.nix
+++ b/pkgs/applications/graphics/fstl/default.nix
@@ -23,7 +23,7 @@ mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "The fastest STL file viewer";
+    description = "Fastest STL file viewer";
     mainProgram = "fstl";
     homepage = "https://github.com/fstl-app/fstl";
     license = licenses.mit;
diff --git a/pkgs/applications/graphics/gcolor3/default.nix b/pkgs/applications/graphics/gcolor3/default.nix
index a5b89a605d55b..38c38143ff9ff 100644
--- a/pkgs/applications/graphics/gcolor3/default.nix
+++ b/pkgs/applications/graphics/gcolor3/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple color chooser written in GTK3";
+    description = "Simple color chooser written in GTK3";
     mainProgram = "gcolor3";
     homepage = "https://gitlab.gnome.org/World/gcolor3";
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/graphics/gimp/default.nix b/pkgs/applications/graphics/gimp/default.nix
index 33ddbd9159fef..fe89869809e99 100644
--- a/pkgs/applications/graphics/gimp/default.nix
+++ b/pkgs/applications/graphics/gimp/default.nix
@@ -190,7 +190,7 @@ in stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "The GNU Image Manipulation Program";
+    description = "GNU Image Manipulation Program";
     homepage = "https://www.gimp.org/";
     maintainers = with maintainers; [ jtojnar ];
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/graphics/gimp/plugins/default.nix b/pkgs/applications/graphics/gimp/plugins/default.nix
index b628cf8166311..fe4904ee254a4 100644
--- a/pkgs/applications/graphics/gimp/plugins/default.nix
+++ b/pkgs/applications/graphics/gimp/plugins/default.nix
@@ -147,7 +147,7 @@ in
     };
 
     meta = with lib; {
-      description = "The GIMP Animation Package";
+      description = "GIMP Animation Package";
       homepage = "https://www.gimp.org";
       # The main code is given in GPLv3, but it has ffmpeg in it, and I think ffmpeg license
       # falls inside "free".
diff --git a/pkgs/applications/graphics/gnome-obfuscate/default.nix b/pkgs/applications/graphics/gnome-obfuscate/default.nix
index 49499f7d7322e..1a091929b3e49 100644
--- a/pkgs/applications/graphics/gnome-obfuscate/default.nix
+++ b/pkgs/applications/graphics/gnome-obfuscate/default.nix
@@ -20,20 +20,20 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-obfuscate";
-  version = "0.0.9";
+  version = "0.0.10";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = "Obfuscate";
     rev = finalAttrs.version;
-    hash = "sha256-aUhzact437V/bSsG2Ddu2mC03LbyXFg+hJiuGy5NQfQ=";
+    hash = "sha256-/Plvvn1tle8t/bsPcsamn5d81CqnyGCyGYPF6j6U5NI=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit (finalAttrs) src;
     name = "${finalAttrs.pname}-${finalAttrs.version}";
-    hash = "sha256-HUQvdCmzjdmuJGDLtC/86yzbRimLzx+XbW29f+Ua48w=";
+    hash = "sha256-9lrxK2psdIPGsOC6p8T+3AGPrX6PjrK9mFirdJqBSMM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/gpicview/default.nix b/pkgs/applications/graphics/gpicview/default.nix
index fcef4751eab72..9015677843545 100644
--- a/pkgs/applications/graphics/gpicview/default.nix
+++ b/pkgs/applications/graphics/gpicview/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ gtk2 ];
 
   meta = with lib; {
-    description = "A simple and fast image viewer for X";
+    description = "Simple and fast image viewer for X";
     homepage = "https://lxde.sourceforge.net/gpicview/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ lovek323 ];
diff --git a/pkgs/applications/graphics/gqview/default.nix b/pkgs/applications/graphics/gqview/default.nix
index 8237473c79b1a..89b86bf24b206 100644
--- a/pkgs/applications/graphics/gqview/default.nix
+++ b/pkgs/applications/graphics/gqview/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   NIX_LDFLAGS = "-lm";
 
   meta = with lib; {
-    description = "A fast image viewer";
+    description = "Fast image viewer";
     homepage = "https://gqview.sourceforge.net";
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/pkgs/applications/graphics/grafx2/default.nix b/pkgs/applications/graphics/grafx2/default.nix
index cd2d89d0e99c2..fa80fe718ce4f 100644
--- a/pkgs/applications/graphics/grafx2/default.nix
+++ b/pkgs/applications/graphics/grafx2/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "http://grafx2.eu/";
-    description = "The ultimate 256-color painting program";
+    description = "Ultimate 256-color painting program";
     longDescription = ''
       GrafX2 is a bitmap paint program inspired by the Amiga programs ​Deluxe
       Paint and Brilliance. Specialized in 256-color drawing, it includes a very
diff --git a/pkgs/applications/graphics/gscan2pdf/default.nix b/pkgs/applications/graphics/gscan2pdf/default.nix
index 0989c07d8a6f9..6aaf257496cd9 100644
--- a/pkgs/applications/graphics/gscan2pdf/default.nix
+++ b/pkgs/applications/graphics/gscan2pdf/default.nix
@@ -146,7 +146,7 @@ perlPackages.buildPerlPackage rec {
   '';
 
   meta = {
-    description = "A GUI to produce PDFs or DjVus from scanned documents";
+    description = "GUI to produce PDFs or DjVus from scanned documents";
     homepage = "https://gscan2pdf.sourceforge.net/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ pacien ];
diff --git a/pkgs/applications/graphics/gscreenshot/default.nix b/pkgs/applications/graphics/gscreenshot/default.nix
index a09b39bdadb45..c3468f65dcab6 100644
--- a/pkgs/applications/graphics/gscreenshot/default.nix
+++ b/pkgs/applications/graphics/gscreenshot/default.nix
@@ -58,7 +58,7 @@ python3Packages.buildPythonApplication rec {
   patches = [ ./0001-Changing-paths-to-be-nix-compatible.patch ];
 
   meta = {
-    description = "A screenshot frontend (CLI and GUI) for a variety of screenshot backends";
+    description = "Screenshot frontend (CLI and GUI) for a variety of screenshot backends";
 
     longDescription = ''
       gscreenshot provides a common frontend and expanded functionality to a
diff --git a/pkgs/applications/graphics/hydrus/default.nix b/pkgs/applications/graphics/hydrus/default.nix
index e2a0d62acae6f..03d7be3dfad1e 100644
--- a/pkgs/applications/graphics/hydrus/default.nix
+++ b/pkgs/applications/graphics/hydrus/default.nix
@@ -14,14 +14,14 @@
 
 python3Packages.buildPythonPackage rec {
   pname = "hydrus";
-  version = "572";
+  version = "578";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "hydrusnetwork";
     repo = "hydrus";
     rev = "refs/tags/v${version}";
-    hash = "sha256-mLb4rUsoMDxl7lPrrRJq/bWSqZlgg94efHJzgykZJ/g=";
+    hash = "sha256-u2SXhL57iNVjRFqerzc/TByB9ArAJx81mxOjTBVBMkg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/identity/default.nix b/pkgs/applications/graphics/identity/default.nix
index 8d9caa58543cf..debc7e2f423b0 100644
--- a/pkgs/applications/graphics/identity/default.nix
+++ b/pkgs/applications/graphics/identity/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A program for comparing multiple versions of an image or video";
+    description = "Program for comparing multiple versions of an image or video";
     mainProgram = "identity";
     homepage = "https://gitlab.gnome.org/YaLTeR/identity";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/graphics/img-cat/default.nix b/pkgs/applications/graphics/img-cat/default.nix
index 414f4b2a3b332..d148320b86986 100644
--- a/pkgs/applications/graphics/img-cat/default.nix
+++ b/pkgs/applications/graphics/img-cat/default.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
   vendorHash = "sha256-4kF+LwVNBY770wHLLcVlAqPoy4SNhbp2TxdNWRiJL6Q=";
 
   meta = with lib; {
-    description = "A tool to output images as RGB ANSI graphics on the terminal";
+    description = "Tool to output images as RGB ANSI graphics on the terminal";
     homepage = "https://github.com/trashhalo/imgcat";
     license = licenses.mit;
     maintainers = with maintainers; [ penguwin ];
diff --git a/pkgs/applications/graphics/imlibsetroot/default.nix b/pkgs/applications/graphics/imlibsetroot/default.nix
index a4059ccba28b7..7fac0a0d386c9 100644
--- a/pkgs/applications/graphics/imlibsetroot/default.nix
+++ b/pkgs/applications/graphics/imlibsetroot/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A Xinerama Aware Background Changer";
+    description = "Xinerama Aware Background Changer";
     homepage = "http://robotmonkeys.net/2010/03/30/imlibsetroot/";
     license = licenses.mitAdvertising;
     platforms = platforms.linux;
diff --git a/pkgs/applications/graphics/imv/default.nix b/pkgs/applications/graphics/imv/default.nix
index 98aa410e96147..077979096cd73 100644
--- a/pkgs/applications/graphics/imv/default.nix
+++ b/pkgs/applications/graphics/imv/default.nix
@@ -118,7 +118,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A command line image viewer for tiling window managers";
+    description = "Command line image viewer for tiling window managers";
     homepage = "https://sr.ht/~exec64/imv/";
     license = licenses.mit;
     maintainers = with maintainers; [ rnhmjoj markus1189 ];
diff --git a/pkgs/applications/graphics/inkscape/default.nix b/pkgs/applications/graphics/inkscape/default.nix
index 358931534ad99..c285fc3116401 100644
--- a/pkgs/applications/graphics/inkscape/default.nix
+++ b/pkgs/applications/graphics/inkscape/default.nix
@@ -3,6 +3,7 @@
 , boehmgc
 , boost
 , cairo
+, callPackage
 , cmake
 , desktopToDarwinBundle
 , fetchurl
@@ -172,6 +173,8 @@ stdenv.mkDerivation rec {
     done
   '';
 
+  passthru.tests.ps2pdf-plugin = callPackage ./test-ps2pdf-plugin.nix { };
+
   meta = with lib; {
     description = "Vector graphics editor";
     homepage = "https://www.inkscape.org";
diff --git a/pkgs/applications/graphics/inkscape/extensions/silhouette/default.nix b/pkgs/applications/graphics/inkscape/extensions/silhouette/default.nix
index 59693cece6203..3aef4497e1cf0 100644
--- a/pkgs/applications/graphics/inkscape/extensions/silhouette/default.nix
+++ b/pkgs/applications/graphics/inkscape/extensions/silhouette/default.nix
@@ -82,7 +82,7 @@ python3.pkgs.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "An extension to drive Silhouette vinyl cutters (e.g. Cameo, Portrait, Curio series) from within Inkscape.";
+    description = "Extension to drive Silhouette vinyl cutters (e.g. Cameo, Portrait, Curio series) from within Inkscape";
     homepage = "https://github.com/fablabnbg/inkscape-silhouette";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ jfly ];
diff --git a/pkgs/applications/graphics/inkscape/fix-ps2pdf-path.patch b/pkgs/applications/graphics/inkscape/fix-ps2pdf-path.patch
index 9cd8e4b34cb59..0a28533591e1e 100644
--- a/pkgs/applications/graphics/inkscape/fix-ps2pdf-path.patch
+++ b/pkgs/applications/graphics/inkscape/fix-ps2pdf-path.patch
@@ -6,7 +6,7 @@ diff -Naur inkscape-1.2.2_2022-12-01_b0a8486541.orig/share/extensions/eps_input.
      <id>org.inkscape.input.eps</id>
      <dependency type="extension">org.inkscape.input.pdf</dependency>
 -    <dependency type="executable" location="path">ps2pdf</dependency>
-+    <dependency type="executable" location="path">@ghostscript@/bin/ps2pdf</dependency>
++    <dependency type="executable" location="absolute">@ghostscript@/bin/ps2pdf</dependency>
      <param name="crop" type="bool" gui-hidden="true">true</param>
      <param name="autorotate" type="optiongroup" appearance="combo" gui-text="Determine page orientation from text direction"
      gui-description="The PS/EPS importer can try to determine the page orientation such that the majority of the text runs left-to-right.">
@@ -18,7 +18,7 @@ diff -Naur inkscape-1.2.2_2022-12-01_b0a8486541.orig/share/extensions/ps_input.i
      <id>org.inkscape.input.postscript_input</id>
      <dependency type="extension">org.inkscape.input.pdf</dependency>
 -    <dependency type="executable" location="path">ps2pdf</dependency>
-+    <dependency type="executable" location="path">@ghostscript@/bin/ps2pdf</dependency>
++    <dependency type="executable" location="absolute">@ghostscript@/bin/ps2pdf</dependency>
      <param name="autorotate" type="optiongroup" appearance="combo" gui-text="Determine page orientation from text direction"
      gui-description="The PS/EPS importer can try to determine the page orientation such that the majority of the text runs left-to-right.">
          <option value="None">Disabled</option>
diff --git a/pkgs/applications/graphics/inkscape/test-ps2pdf-plugin.nix b/pkgs/applications/graphics/inkscape/test-ps2pdf-plugin.nix
new file mode 100644
index 0000000000000..3e55557c860e1
--- /dev/null
+++ b/pkgs/applications/graphics/inkscape/test-ps2pdf-plugin.nix
@@ -0,0 +1,27 @@
+{ inkscape, runCommand, writeTextFile }:
+
+let
+  svg_file = writeTextFile {
+    name = "test.svg";
+    text = ''
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="50" height="50" version="1.1">
+  <ellipse cx="1" cy="1" rx="1" ry="1" />
+</svg>'';
+  };
+in
+runCommand "inkscape-test-eps"
+{
+  nativeBuildInputs = [ inkscape ];
+} ''
+  echo ps test
+  inkscape ${svg_file} --export-type=ps -o test.ps
+  inkscape test.ps -o test.ps.svg
+
+  echo eps test
+  inkscape ${svg_file} --export-type=eps -o test.eps
+  inkscape test.eps -o test.eps.svg
+
+  # inkscape does not return an error code, only does not create files
+  [[ -f test.ps.svg && -f test.eps.svg ]] && touch $out
+''
diff --git a/pkgs/applications/graphics/ipe/default.nix b/pkgs/applications/graphics/ipe/default.nix
index fd5fb779517c8..131881341f797 100644
--- a/pkgs/applications/graphics/ipe/default.nix
+++ b/pkgs/applications/graphics/ipe/default.nix
@@ -81,7 +81,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An editor for drawing figures";
+    description = "Editor for drawing figures";
     homepage = "http://ipe.otfried.org"; # https not available
     license = licenses.gpl3Plus;
     longDescription = ''
diff --git a/pkgs/applications/graphics/json-plot/default.nix b/pkgs/applications/graphics/json-plot/default.nix
index 39c4b45cd1d6d..b7d880ce42f22 100644
--- a/pkgs/applications/graphics/json-plot/default.nix
+++ b/pkgs/applications/graphics/json-plot/default.nix
@@ -27,7 +27,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "Dead simple terminal plots from JSON (or CSV) data. Bar charts, line charts, scatter plots, histograms and heatmaps are supported.";
+    description = "Dead simple terminal plots from JSON (or CSV) data. Bar charts, line charts, scatter plots, histograms and heatmaps are supported";
     homepage = "https://github.com/sgreben/jp";
     license = licenses.mit;
     maintainers = with maintainers; [ urandom ];
diff --git a/pkgs/applications/graphics/kgraphviewer/default.nix b/pkgs/applications/graphics/kgraphviewer/default.nix
index 20098eabeff48..3758c091a831b 100644
--- a/pkgs/applications/graphics/kgraphviewer/default.nix
+++ b/pkgs/applications/graphics/kgraphviewer/default.nix
@@ -28,7 +28,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A Graphviz dot graph viewer for KDE";
+    description = "Graphviz dot graph viewer for KDE";
     mainProgram = "kgraphviewer";
     license     = licenses.gpl2;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/applications/graphics/komikku/default.nix b/pkgs/applications/graphics/komikku/default.nix
index bdc81a532fdc1..6d938fe4bddc9 100644
--- a/pkgs/applications/graphics/komikku/default.nix
+++ b/pkgs/applications/graphics/komikku/default.nix
@@ -19,7 +19,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "komikku";
-  version = "1.46.0";
+  version = "1.48.1";
 
   format = "other";
 
@@ -28,7 +28,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "valos";
     repo = "Komikku";
     rev = "v${version}";
-    hash = "sha256-0yobGclfZzv0S0HtqeTr4vzK5d6PTQNWMszP0B4k770=";
+    hash = "sha256-U4MmVK75tPYJStJ0RRjfbzSbpGLJ07rJg6ClHI+tAfM=";
   };
 
   nativeBuildInputs = [
@@ -62,6 +62,7 @@ python3.pkgs.buildPythonApplication rec {
     natsort
     piexif
     pillow
+    pillow-heif
     curl-cffi
     pygobject3
     python-magic
diff --git a/pkgs/applications/graphics/komorebi/default.nix b/pkgs/applications/graphics/komorebi/default.nix
index 261f451d07c2f..4d60cde30cd38 100644
--- a/pkgs/applications/graphics/komorebi/default.nix
+++ b/pkgs/applications/graphics/komorebi/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
   passthru.tests.version = testers.testVersion { package = komorebi; };
 
   meta = with lib; {
-    description = "A beautiful and customizable wallpaper manager for Linux";
+    description = "Beautiful and customizable wallpaper manager for Linux";
     homepage = "https://github.com/Komorebi-Fork/komorebi";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ kranzes ];
diff --git a/pkgs/applications/graphics/krita/generic.nix b/pkgs/applications/graphics/krita/generic.nix
index 8df637ffa1ce1..ff859b4ed7ed9 100644
--- a/pkgs/applications/graphics/krita/generic.nix
+++ b/pkgs/applications/graphics/krita/generic.nix
@@ -73,7 +73,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A free and open source painting application";
+    description = "Free and open source painting application";
     homepage = "https://krita.org/";
     maintainers = with maintainers; [ abbradar sifmelcara nek0 ];
     mainProgram = "krita";
diff --git a/pkgs/applications/graphics/litemdview/default.nix b/pkgs/applications/graphics/litemdview/default.nix
index 9fedae23069c0..e07c22165277d 100644
--- a/pkgs/applications/graphics/litemdview/default.nix
+++ b/pkgs/applications/graphics/litemdview/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://notabug.org/g0tsu/litemdview";
-    description = "A suckless markdown viewer";
+    description = "Suckless markdown viewer";
     longDescription = ''
       LiteMDview is a lightweight, extremely fast markdown viewer with lots of useful features. One of them is ability to use your prefered text editor to edit markdown files, every time you save the file, litemdview reloads those changes (I call it live-reload). It has a convinient navigation through local directories, has support for a basic "git-like" folders hierarchy as well as vimwiki projects.
 
diff --git a/pkgs/applications/graphics/luminance-hdr/default.nix b/pkgs/applications/graphics/luminance-hdr/default.nix
index 53d127857617d..ef0f687d334b6 100644
--- a/pkgs/applications/graphics/luminance-hdr/default.nix
+++ b/pkgs/applications/graphics/luminance-hdr/default.nix
@@ -34,7 +34,7 @@ mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://qtpfsgui.sourceforge.net/";
-    description = "A complete open source solution for HDR photography";
+    description = "Complete open source solution for HDR photography";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = [ maintainers.hrdinka ];
diff --git a/pkgs/applications/graphics/mandelbulber/default.nix b/pkgs/applications/graphics/mandelbulber/default.nix
index 1f11160968215..af6dffd249393 100644
--- a/pkgs/applications/graphics/mandelbulber/default.nix
+++ b/pkgs/applications/graphics/mandelbulber/default.nix
@@ -54,7 +54,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A 3D fractal rendering engine";
+    description = "3D fractal rendering engine";
     mainProgram = "mandelbulber2";
     longDescription = "Mandelbulber creatively generates three-dimensional fractals. Explore trigonometric, hyper-complex, Mandelbox, IFS, and many other 3D fractals.";
     homepage = "https://mandelbulber.com";
diff --git a/pkgs/applications/graphics/mangareader/default.nix b/pkgs/applications/graphics/mangareader/default.nix
deleted file mode 100644
index 37a58ea0ba453..0000000000000
--- a/pkgs/applications/graphics/mangareader/default.nix
+++ /dev/null
@@ -1,54 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, wrapQtAppsHook
-, extra-cmake-modules
-, cmake
-, kio
-, ki18n
-, kxmlgui
-, kconfig
-, karchive
-, kcoreaddons
-, kconfigwidgets
-, nix-update-script
-}:
-
-stdenv.mkDerivation rec {
-  pname = "mangareader";
-  version = "2.1.0";
-
-  src = fetchFromGitHub {
-    owner = "g-fb";
-    repo = pname;
-    rev = version;
-    hash = "sha256-YZZcp+HS/P/GxWYyOpO35nByJSzv4HahzzrZSVRcCRs=";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    extra-cmake-modules
-    wrapQtAppsHook
-  ];
-
-  buildInputs = [
-    kio
-    ki18n
-    kxmlgui
-    kconfig
-    karchive
-    kcoreaddons
-    kconfigwidgets
-  ];
-
-  passthru.updateScript = nix-update-script { };
-
-  meta = with lib; {
-    description = "Qt manga reader for local files";
-    homepage = "https://github.com/g-fb/mangareader";
-    changelog = "https://github.com/g-fb/mangareader/releases/tag/${src.rev}";
-    platforms = platforms.linux;
-    license = with licenses; [ gpl3Plus cc-by-nc-sa-40 ];
-    maintainers = with maintainers; [ zendo ];
-  };
-}
diff --git a/pkgs/applications/graphics/meh/default.nix b/pkgs/applications/graphics/meh/default.nix
index 992a739bb3775..49477277d92bd 100644
--- a/pkgs/applications/graphics/meh/default.nix
+++ b/pkgs/applications/graphics/meh/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
   buildInputs = [ libXext libX11 libjpeg libpng giflib ];
 
   meta = {
-    description = "A minimal image viewer using raw XLib";
+    description = "Minimal image viewer using raw XLib";
     homepage = "https://www.johnhawthorn.com/meh/";
     license = lib.licenses.mit;
     platforms = lib.platforms.linux;
diff --git a/pkgs/applications/graphics/meme-image-generator/default.nix b/pkgs/applications/graphics/meme-image-generator/default.nix
index d9e21d3f57a2e..e60351bf962d6 100644
--- a/pkgs/applications/graphics/meme-image-generator/default.nix
+++ b/pkgs/applications/graphics/meme-image-generator/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
   vendorHash = null;
 
   meta = with lib; {
-    description = "A command line utility for creating image macro style memes";
+    description = "Command line utility for creating image macro style memes";
     homepage = "https://github.com/nomad-software/meme";
     license = licenses.mit;
     maintainers = [ maintainers.fgaz ];
diff --git a/pkgs/applications/graphics/meshlab/default.nix b/pkgs/applications/graphics/meshlab/default.nix
index a77a39445c045..549780a8acb70 100644
--- a/pkgs/applications/graphics/meshlab/default.nix
+++ b/pkgs/applications/graphics/meshlab/default.nix
@@ -91,7 +91,7 @@ mkDerivation rec {
   '';
 
   meta = {
-    description = "A system for processing and editing 3D triangular meshes";
+    description = "System for processing and editing 3D triangular meshes";
     mainProgram = "meshlab";
     homepage = "https://www.meshlab.net/";
     license = lib.licenses.gpl3Only;
diff --git a/pkgs/applications/graphics/mtpaint/default.nix b/pkgs/applications/graphics/mtpaint/default.nix
index 332acf25e498c..991eb8925f379 100644
--- a/pkgs/applications/graphics/mtpaint/default.nix
+++ b/pkgs/applications/graphics/mtpaint/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "gtk3" "intl" "man" ];
 
   meta = {
-    description = "A simple GTK painting program";
+    description = "Simple GTK painting program";
     longDescription = ''
       mtPaint is a simple GTK painting program designed for
       creating icons and pixel based artwork.  It can edit indexed palette
diff --git a/pkgs/applications/graphics/mypaint/default.nix b/pkgs/applications/graphics/mypaint/default.nix
index 0d261b5e6034a..8abd4cba4846f 100644
--- a/pkgs/applications/graphics/mypaint/default.nix
+++ b/pkgs/applications/graphics/mypaint/default.nix
@@ -132,7 +132,7 @@ in buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A graphics application for digital painters";
+    description = "Graphics application for digital painters";
     homepage = "http://mypaint.org/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/graphics/oculante/default.nix b/pkgs/applications/graphics/oculante/default.nix
index 34e0af1fa1138..3f3d39769f811 100644
--- a/pkgs/applications/graphics/oculante/default.nix
+++ b/pkgs/applications/graphics/oculante/default.nix
@@ -73,7 +73,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A minimalistic crossplatform image viewer written in Rust";
+    description = "Minimalistic crossplatform image viewer written in Rust";
     homepage = "https://github.com/woelper/oculante";
     changelog = "https://github.com/woelper/oculante/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/applications/graphics/pbrt/default.nix b/pkgs/applications/graphics/pbrt/default.nix
index 962f6dc97acd0..07483df7e4d77 100644
--- a/pkgs/applications/graphics/pbrt/default.nix
+++ b/pkgs/applications/graphics/pbrt/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://pbrt.org/";
-    description = "The renderer described in the third edition of the book 'Physically Based Rendering: From Theory To Implementation'";
+    description = "Renderer described in the third edition of the book 'Physically Based Rendering: From Theory To Implementation'";
     platforms = platforms.linux;
     license = licenses.bsd2;
     maintainers = [ maintainers.juliendehos ];
diff --git a/pkgs/applications/graphics/pdfcpu/default.nix b/pkgs/applications/graphics/pdfcpu/default.nix
index 77458c3cc5af8..d8ca4fbcabf10 100644
--- a/pkgs/applications/graphics/pdfcpu/default.nix
+++ b/pkgs/applications/graphics/pdfcpu/default.nix
@@ -60,7 +60,7 @@ buildGoModule rec {
   subPackages = [ "cmd/pdfcpu" ];
 
   meta = with lib; {
-    description = "A PDF processor written in Go";
+    description = "PDF processor written in Go";
     homepage = "https://pdfcpu.io";
     license = licenses.asl20;
     maintainers = with maintainers; [ doronbehar ];
diff --git a/pkgs/applications/graphics/photoflare/default.nix b/pkgs/applications/graphics/photoflare/default.nix
index 3f47a0073d245..bb79b8c8ddc0f 100644
--- a/pkgs/applications/graphics/photoflare/default.nix
+++ b/pkgs/applications/graphics/photoflare/default.nix
@@ -20,7 +20,7 @@ mkDerivation rec {
   env.NIX_CFLAGS_COMPILE = "-I${graphicsmagick}/include/GraphicsMagick";
 
   meta = with lib; {
-    description = "A cross-platform image editor with a powerful features and a very friendly graphical user interface";
+    description = "Cross-platform image editor with a powerful features and a very friendly graphical user interface";
     mainProgram = "photoflare";
     homepage = "https://photoflare.io";
     maintainers = [ maintainers.omgbebebe ];
diff --git a/pkgs/applications/graphics/phototonic/default.nix b/pkgs/applications/graphics/phototonic/default.nix
index 345398435a07a..e3fea1ee9c478 100644
--- a/pkgs/applications/graphics/phototonic/default.nix
+++ b/pkgs/applications/graphics/phototonic/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An image viewer and organizer";
+    description = "Image viewer and organizer";
     mainProgram = "phototonic";
     homepage = "https://github.com/oferkv/phototonic";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/graphics/pick-colour-picker/default.nix b/pkgs/applications/graphics/pick-colour-picker/default.nix
index fd736c3ec7ab8..98980ed7fd462 100644
--- a/pkgs/applications/graphics/pick-colour-picker/default.nix
+++ b/pkgs/applications/graphics/pick-colour-picker/default.nix
@@ -46,7 +46,7 @@ buildPythonPackage rec {
     homepage = "https://kryogenix.org/code/pick/";
     license = licenses.mit;
     platforms = platforms.linux;
-    description = "A colour picker that remembers where you picked colours from";
+    description = "Colour picker that remembers where you picked colours from";
     mainProgram = "pick-colour-picker";
     maintainers = [ maintainers.mkg20001 ];
 
diff --git a/pkgs/applications/graphics/pika/default.nix b/pkgs/applications/graphics/pika/default.nix
index b9cbf142a21ff..e1e5726eb54d3 100644
--- a/pkgs/applications/graphics/pika/default.nix
+++ b/pkgs/applications/graphics/pika/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://superhighfives.com/pika";
-    description = "An open-source colour picker app for macOS";
+    description = "Open-source colour picker app for macOS";
     platforms = platforms.darwin;
     license = licenses.mit;
     maintainers = with maintainers; [ arkivm ];
diff --git a/pkgs/applications/graphics/pixeluvo/default.nix b/pkgs/applications/graphics/pixeluvo/default.nix
index 2c94b4645c562..0ae800710d486 100644
--- a/pkgs/applications/graphics/pixeluvo/default.nix
+++ b/pkgs/applications/graphics/pixeluvo/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Beautifully Designed Image and Photo Editor for Windows and Linux";
+    description = "Beautifully Designed Image and Photo Editor for Windows and Linux";
     homepage = "http://www.pixeluvo.com/";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
diff --git a/pkgs/applications/graphics/pizarra/default.nix b/pkgs/applications/graphics/pizarra/default.nix
index 6fd94f57e1e75..c636637763d7d 100644
--- a/pkgs/applications/graphics/pizarra/default.nix
+++ b/pkgs/applications/graphics/pizarra/default.nix
@@ -40,7 +40,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A simple blackboard written in GTK";
+    description = "Simple blackboard written in GTK";
     mainProgram = "pizarra";
     longDescription = ''
       A simple endless blackboard.
diff --git a/pkgs/applications/graphics/potrace/default.nix b/pkgs/applications/graphics/potrace/default.nix
index b46c2060ede0e..5a7093396283a 100644
--- a/pkgs/applications/graphics/potrace/default.nix
+++ b/pkgs/applications/graphics/potrace/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://potrace.sourceforge.net/";
-    description = "A tool for tracing a bitmap, which means, transforming a bitmap into a smooth, scalable image";
+    description = "Tool for tracing a bitmap, which means, transforming a bitmap into a smooth, scalable image";
     platforms = platforms.unix;
     maintainers = [ maintainers.pSub ];
     license = licenses.gpl2;
diff --git a/pkgs/applications/graphics/processing/default.nix b/pkgs/applications/graphics/processing/default.nix
index d71ded259e831..9ea148323cde0 100644
--- a/pkgs/applications/graphics/processing/default.nix
+++ b/pkgs/applications/graphics/processing/default.nix
@@ -106,7 +106,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A language and IDE for electronic arts";
+    description = "Language and IDE for electronic arts";
     homepage = "https://processing.org";
     license = with licenses; [ gpl2Only lgpl21Only ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/graphics/pymeshlab/default.nix b/pkgs/applications/graphics/pymeshlab/default.nix
index 5bf8339797b42..255b14f09211e 100644
--- a/pkgs/applications/graphics/pymeshlab/default.nix
+++ b/pkgs/applications/graphics/pymeshlab/default.nix
@@ -98,7 +98,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = {
-    description = "The open source mesh processing python library";
+    description = "Open source mesh processing python library";
     homepage = "https://github.com/cnr-isti-vclab/PyMeshLab";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ nim65s ];
diff --git a/pkgs/applications/graphics/qimgv/default.nix b/pkgs/applications/graphics/qimgv/default.nix
index c6789fd057380..f4eedb6c3fb0e 100644
--- a/pkgs/applications/graphics/qimgv/default.nix
+++ b/pkgs/applications/graphics/qimgv/default.nix
@@ -54,7 +54,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A Qt5 image viewer with optional video support";
+    description = "Qt5 image viewer with optional video support";
     mainProgram = "qimgv";
     homepage = "https://github.com/easymodo/qimgv";
     license = licenses.gpl3;
diff --git a/pkgs/applications/graphics/qosmic/default.nix b/pkgs/applications/graphics/qosmic/default.nix
index a3a688fd0366b..ebee900cf9d6a 100644
--- a/pkgs/applications/graphics/qosmic/default.nix
+++ b/pkgs/applications/graphics/qosmic/default.nix
@@ -71,7 +71,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A cosmic recursive flame fractal editor";
+    description = "Cosmic recursive flame fractal editor";
     mainProgram = "qosmic";
     homepage = "https://github.com/bitsed/qosmic";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/graphics/rnote/default.nix b/pkgs/applications/graphics/rnote/default.nix
index 2d60d46d612a1..1e189138eba22 100644
--- a/pkgs/applications/graphics/rnote/default.nix
+++ b/pkgs/applications/graphics/rnote/default.nix
@@ -93,5 +93,7 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dotlambda gepbird yrd ];
     platforms = platforms.unix;
+    # compiler error since 2023-11-17
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/applications/graphics/sane/config.nix b/pkgs/applications/graphics/sane/config.nix
index 8c7b94faca6cf..0405eeb05c2c4 100644
--- a/pkgs/applications/graphics/sane/config.nix
+++ b/pkgs/applications/graphics/sane/config.nix
@@ -29,8 +29,8 @@ installSanePath = path: ''
       fi
     '';
     disableBackend = backend: ''
-      grep -q '${backend}' $out/etc/sane.d/dll.conf || { echo '${backend} is not a default plugin in $SANE_CONFIG_DIR/dll.conf'; exit 1; }
-      substituteInPlace $out/etc/sane.d/dll.conf --replace '${backend}' '# ${backend} disabled in nixos config'
+      grep -w -q '${backend}' $out/etc/sane.d/dll.conf || { echo '${backend} is not a default plugin in $SANE_CONFIG_DIR/dll.conf'; exit 1; }
+      sed -i 's/\b${backend}\b/# ${backend} disabled by nixos config/' $out/etc/sane.d/dll.conf
     '';
 in
 stdenv.mkDerivation {
diff --git a/pkgs/applications/graphics/solvespace/default.nix b/pkgs/applications/graphics/solvespace/default.nix
index 610ef336a9e3f..fc360943fae39 100644
--- a/pkgs/applications/graphics/solvespace/default.nix
+++ b/pkgs/applications/graphics/solvespace/default.nix
@@ -92,7 +92,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ "-DENABLE_OPENMP=ON" ];
 
   meta = with lib; {
-    description = "A parametric 3d CAD program";
+    description = "Parametric 3d CAD program";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.edef ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/graphics/synfigstudio/default.nix b/pkgs/applications/graphics/synfigstudio/default.nix
index 858fef718aaa5..f1edfe81fb638 100644
--- a/pkgs/applications/graphics/synfigstudio/default.nix
+++ b/pkgs/applications/graphics/synfigstudio/default.nix
@@ -144,7 +144,7 @@ stdenv.mkDerivation {
   };
 
   meta = with lib; {
-    description = "A 2D animation program";
+    description = "2D animation program";
     homepage = "http://www.synfig.org";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.goibhniu ];
diff --git a/pkgs/applications/graphics/tev/default.nix b/pkgs/applications/graphics/tev/default.nix
index 7447e549465aa..288eb7aef6ca6 100644
--- a/pkgs/applications/graphics/tev/default.nix
+++ b/pkgs/applications/graphics/tev/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   env.CXXFLAGS = "-include cstdint";
 
   meta = with lib; {
-    description = "A high dynamic range (HDR) image comparison tool";
+    description = "High dynamic range (HDR) image comparison tool";
     mainProgram = "tev";
     longDescription = ''
       A high dynamic range (HDR) image comparison tool for graphics people. tev
diff --git a/pkgs/applications/graphics/textual-paint/default.nix b/pkgs/applications/graphics/textual-paint/default.nix
index 89d94d6f4c7e2..c11a5cd632d75 100644
--- a/pkgs/applications/graphics/textual-paint/default.nix
+++ b/pkgs/applications/graphics/textual-paint/default.nix
@@ -70,7 +70,7 @@ python.pkgs.buildPythonApplication rec {
   pythonImportsCheck = [ "textual_paint" ];
 
   meta = with lib; {
-    description = "A TUI image editor inspired by MS Paint";
+    description = "TUI image editor inspired by MS Paint";
     homepage = "https://github.com/1j01/textual-paint";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/pkgs/applications/graphics/trimage/default.nix b/pkgs/applications/graphics/trimage/default.nix
index 269ffa5852331..4a0bf082c10ac 100644
--- a/pkgs/applications/graphics/trimage/default.nix
+++ b/pkgs/applications/graphics/trimage/default.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "A cross-platform tool for optimizing PNG and JPG files";
+    description = "Cross-platform tool for optimizing PNG and JPG files";
     homepage = "https://github.com/Kilian/Trimage";
     license = lib.licenses.mit;
     mainProgram = "trimage";
diff --git a/pkgs/applications/graphics/unigine-heaven/default.nix b/pkgs/applications/graphics/unigine-heaven/default.nix
index 1677e4d65eef4..96492ef9e61aa 100644
--- a/pkgs/applications/graphics/unigine-heaven/default.nix
+++ b/pkgs/applications/graphics/unigine-heaven/default.nix
@@ -98,11 +98,12 @@ stdenv.mkDerivation
 
   meta =
     {
-      description = "The Unigine Heaven GPU benchmarking tool";
+      description = "Unigine Heaven GPU benchmarking tool";
       homepage = "https://benchmark.unigine.com/heaven";
       sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
       license = lib.licenses.unfree;
       maintainers = [ lib.maintainers.BarinovMaxim ];
       platforms = [ "x86_64-linux" "i686-linux" ];
+      mainProgram = "heaven";
     };
 }
diff --git a/pkgs/applications/graphics/unigine-sanctuary/default.nix b/pkgs/applications/graphics/unigine-sanctuary/default.nix
index b62df6f56eea0..15565aa4083d7 100644
--- a/pkgs/applications/graphics/unigine-sanctuary/default.nix
+++ b/pkgs/applications/graphics/unigine-sanctuary/default.nix
@@ -88,7 +88,7 @@ stdenv.mkDerivation rec{
   dontUnpack = true;
 
   meta = {
-    description = "The Unigine Heaven GPU benchmarking tool";
+    description = "Unigine Heaven GPU benchmarking tool";
     homepage = "https://benchmark.unigine.com/sanctuary";
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
diff --git a/pkgs/applications/graphics/unigine-superposition/default.nix b/pkgs/applications/graphics/unigine-superposition/default.nix
index 07813cbc415e7..926fe1a1d744c 100644
--- a/pkgs/applications/graphics/unigine-superposition/default.nix
+++ b/pkgs/applications/graphics/unigine-superposition/default.nix
@@ -137,7 +137,7 @@ buildFHSEnv {
   '';
 
   meta = {
-    description = "The Unigine Superposition GPU benchmarking tool";
+    description = "Unigine Superposition GPU benchmarking tool";
     homepage = "https://benchmark.unigine.com/superposition";
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
diff --git a/pkgs/applications/graphics/unigine-tropics/default.nix b/pkgs/applications/graphics/unigine-tropics/default.nix
index f75aa81e45f53..6053db7a3f6e6 100644
--- a/pkgs/applications/graphics/unigine-tropics/default.nix
+++ b/pkgs/applications/graphics/unigine-tropics/default.nix
@@ -86,7 +86,7 @@ stdenv.mkDerivation {
   dontUnpack = true;
 
   meta = {
-    description = "The Unigine Heaven GPU benchmarking tool";
+    description = "Unigine Heaven GPU benchmarking tool";
     homepage = "https://benchmark.unigine.com/tropics";
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
diff --git a/pkgs/applications/graphics/unigine-valley/default.nix b/pkgs/applications/graphics/unigine-valley/default.nix
index 6d73cf82cd66e..ff6f30b6c5e9c 100644
--- a/pkgs/applications/graphics/unigine-valley/default.nix
+++ b/pkgs/applications/graphics/unigine-valley/default.nix
@@ -126,7 +126,7 @@ stdenv.mkDerivation rec {
   stripDebugList = [ "${instPath}/bin" ];
 
   meta = {
-    description = "The Unigine Valley GPU benchmarking tool";
+    description = "Unigine Valley GPU benchmarking tool";
     homepage = "https://unigine.com/products/benchmarks/valley/";
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree; # see also: $out/$instPath/documentation/License.pdf
diff --git a/pkgs/applications/graphics/upscayl/default.nix b/pkgs/applications/graphics/upscayl/default.nix
index 12518b6f40a23..202900983e14c 100644
--- a/pkgs/applications/graphics/upscayl/default.nix
+++ b/pkgs/applications/graphics/upscayl/default.nix
@@ -4,11 +4,11 @@
   lib,
 }: let
   pname = "upscayl";
-  version = "2.11.0";
+  version = "2.11.5";
 
   src = fetchurl {
     url = "https://github.com/upscayl/upscayl/releases/download/v${version}/upscayl-${version}-linux.AppImage";
-    hash = "sha256-XhvOzARP8Ytlf23vNMYZ5x1UKvKOlM/69yhysasW3dA=";
+    hash = "sha256-owxSm8t7rHM5ywJPp8sJQ5aAyNKgrbyJY6qFp78/UhM=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/applications/graphics/vengi-tools/default.nix b/pkgs/applications/graphics/vengi-tools/default.nix
index 402d820843ddc..21a0389949046 100644
--- a/pkgs/applications/graphics/vengi-tools/default.nix
+++ b/pkgs/applications/graphics/vengi-tools/default.nix
@@ -29,13 +29,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "vengi-tools";
-  version = "0.0.31";
+  version = "0.0.32";
 
   src = fetchFromGitHub {
     owner = "mgerhardy";
     repo = "vengi";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-0ta7rBWc4qUqsKDU/KSzx2x+fF2GVw77lQvRgt4bkpI=";
+    hash = "sha256-3oL+hRFATdJmBmZK55Ui2blj8LTqt/zJWJ85kSUFCY4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/veusz/default.nix b/pkgs/applications/graphics/veusz/default.nix
index 67f5a76e5e97a..d5ccbf7166197 100644
--- a/pkgs/applications/graphics/veusz/default.nix
+++ b/pkgs/applications/graphics/veusz/default.nix
@@ -61,7 +61,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A scientific plotting and graphing program with a GUI";
+    description = "Scientific plotting and graphing program with a GUI";
     mainProgram = "veusz";
     homepage = "https://veusz.github.io/";
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/graphics/vkdt/default.nix b/pkgs/applications/graphics/vkdt/default.nix
index e7776062de44f..ee9357bc04af1 100644
--- a/pkgs/applications/graphics/vkdt/default.nix
+++ b/pkgs/applications/graphics/vkdt/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A vulkan-powered raw image processor";
+    description = "Vulkan-powered raw image processor";
     homepage = "https://github.com/hanatos/vkdt";
     license = licenses.bsd2;
     maintainers = with maintainers; [ paperdigits ];
diff --git a/pkgs/applications/graphics/xfig/default.nix b/pkgs/applications/graphics/xfig/default.nix
index cb96daeb12708..1929bff925fba 100644
--- a/pkgs/applications/graphics/xfig/default.nix
+++ b/pkgs/applications/graphics/xfig/default.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     changelog = "https://sourceforge.net/p/mcj/xfig/ci/${version}/tree/CHANGES";
-    description = "An interactive drawing tool for X11";
+    description = "Interactive drawing tool for X11";
     mainProgram = "xfig";
     longDescription = ''
       Note that you need to have the <literal>netpbm</literal> tools
diff --git a/pkgs/applications/graphics/xpano/default.nix b/pkgs/applications/graphics/xpano/default.nix
index c4b43c5963fea..cd6f5ff850345 100644
--- a/pkgs/applications/graphics/xpano/default.nix
+++ b/pkgs/applications/graphics/xpano/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A panorama stitching tool";
+    description = "Panorama stitching tool";
     mainProgram = "Xpano";
     homepage = "https://krupkat.github.io/xpano/";
     changelog = "https://github.com/krupkat/xpano/releases/tag/v${version}";
diff --git a/pkgs/applications/graphics/xrgears/default.nix b/pkgs/applications/graphics/xrgears/default.nix
index 2f367e8a70d5c..cdb0977b4e974 100644
--- a/pkgs/applications/graphics/xrgears/default.nix
+++ b/pkgs/applications/graphics/xrgears/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.freedesktop.org/monado/demos/xrgears";
-    description = "An OpenXR example using Vulkan for rendering";
+    description = "OpenXR example using Vulkan for rendering";
     mainProgram = "xrgears";
     platforms = platforms.linux;
     license = licenses.mit;
diff --git a/pkgs/applications/graphics/yacreader/default.nix b/pkgs/applications/graphics/yacreader/default.nix
index 9487e0c352fe7..d3cead3671694 100644
--- a/pkgs/applications/graphics/yacreader/default.nix
+++ b/pkgs/applications/graphics/yacreader/default.nix
@@ -19,7 +19,7 @@ mkDerivation rec {
   propagatedBuildInputs = [ qtquickcontrols2 qtgraphicaleffects qtdeclarative ];
 
   meta = {
-    description = "A comic reader for cross-platform reading and managing your digital comic collection";
+    description = "Comic reader for cross-platform reading and managing your digital comic collection";
     homepage = "http://www.yacreader.com";
     license = lib.licenses.gpl3;
     mainProgram = "YACReader";
diff --git a/pkgs/applications/graphics/yed/default.nix b/pkgs/applications/graphics/yed/default.nix
index 7c6029312c8ca..3599cf70032a5 100644
--- a/pkgs/applications/graphics/yed/default.nix
+++ b/pkgs/applications/graphics/yed/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     homepage = "https://www.yworks.com/products/yed";
-    description = "A powerful desktop application that can be used to quickly and effectively generate high-quality diagrams";
+    description = "Powerful desktop application that can be used to quickly and effectively generate high-quality diagrams";
     platforms = jre.meta.platforms;
     maintainers = with maintainers; [ abbradar ];
     mainProgram = "yed";
diff --git a/pkgs/applications/kde/angelfish.nix b/pkgs/applications/kde/angelfish.nix
index 1bd6084a1883b..326a9fc309ac2 100644
--- a/pkgs/applications/kde/angelfish.nix
+++ b/pkgs/applications/kde/angelfish.nix
@@ -4,6 +4,7 @@
 , cmake
 , corrosion
 , extra-cmake-modules
+, fetchpatch2
 , futuresql
 , kconfig
 , kcoreaddons
@@ -30,6 +31,14 @@
 mkDerivation rec {
   pname = "angelfish";
 
+  patches = [
+    (fetchpatch2 {
+      name = "fix-build-with-corrosion-0.5.patch";
+      url = "https://invent.kde.org/network/angelfish/-/commit/b04928e3b62a11b647622b81fb67b7c0db656ac8.patch";
+      hash = "sha256-9rpkMKQKrvGJFIQDwSIeeZyk4/vd348r660mBOKzM2E=";
+    })
+  ];
+
   cargoDeps = rustPlatform.fetchCargoTarball {
     # include version in the name so we invalidate the FOD
     name = "${pname}-${srcs.angelfish.version}";
diff --git a/pkgs/applications/kde/arianna.nix b/pkgs/applications/kde/arianna.nix
index ba88e4ecbded1..95427d74e2955 100644
--- a/pkgs/applications/kde/arianna.nix
+++ b/pkgs/applications/kde/arianna.nix
@@ -52,7 +52,7 @@ mkDerivation {
   ];
 
   meta = with lib; {
-    description = "An Epub Reader for Plasma and Plasma Mobile";
+    description = "Epub Reader for Plasma and Plasma Mobile";
     mainProgram = "arianna";
     homepage = "https://invent.kde.org/graphics/arianna";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/kde/bomber.nix b/pkgs/applications/kde/bomber.nix
index 1e52a6d877275..59c6ab779cf35 100644
--- a/pkgs/applications/kde/bomber.nix
+++ b/pkgs/applications/kde/bomber.nix
@@ -7,7 +7,7 @@ mkDerivation {
   pname = "bomber";
   meta = with lib; {
     homepage = "https://apps.kde.org/bomber/";
-    description = "A single player arcade game";
+    description = "Single player arcade game";
     mainProgram = "bomber";
     longDescription = ''
       Bomber is a single player arcade game. The player is invading various
diff --git a/pkgs/applications/kde/dragon.nix b/pkgs/applications/kde/dragon.nix
index a9e9425b7bb5b..38d81647edadf 100644
--- a/pkgs/applications/kde/dragon.nix
+++ b/pkgs/applications/kde/dragon.nix
@@ -12,7 +12,7 @@ mkDerivation {
   meta = {
     homepage = "https://apps.kde.org/dragonplayer/";
     license = with lib.licenses; [ gpl2Plus fdl12Plus ];
-    description = "A simple media player for KDE";
+    description = "Simple media player for KDE";
     mainProgram = "dragon";
     maintainers = [ lib.maintainers.jonathanreeve ];
   };
diff --git a/pkgs/applications/kde/elisa.nix b/pkgs/applications/kde/elisa.nix
index b9a384616416b..82facd60e72a3 100644
--- a/pkgs/applications/kde/elisa.nix
+++ b/pkgs/applications/kde/elisa.nix
@@ -41,7 +41,7 @@ mkDerivation {
 
   meta = with lib; {
     homepage = "https://apps.kde.org/elisa/";
-    description = "A simple media player for KDE";
+    description = "Simple media player for KDE";
     mainProgram = "elisa";
     license = licenses.gpl3;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/pkgs/applications/kde/ghostwriter.nix b/pkgs/applications/kde/ghostwriter.nix
index d9399986959e7..b29d1a9519b66 100644
--- a/pkgs/applications/kde/ghostwriter.nix
+++ b/pkgs/applications/kde/ghostwriter.nix
@@ -32,7 +32,7 @@ mkDerivation {
   ];
 
   meta = with lib; {
-    description = "A cross-platform, aesthetic, distraction-free Markdown editor";
+    description = "Cross-platform, aesthetic, distraction-free Markdown editor";
     mainProgram = "ghostwriter";
     homepage = "https://ghostwriter.kde.org/";
     changelog = "https://invent.kde.org/office/ghostwriter/-/blob/master/CHANGELOG.md";
diff --git a/pkgs/applications/kde/kalgebra.nix b/pkgs/applications/kde/kalgebra.nix
index ed1b0b567e0be..539ee30a66802 100644
--- a/pkgs/applications/kde/kalgebra.nix
+++ b/pkgs/applications/kde/kalgebra.nix
@@ -39,7 +39,7 @@ mkDerivation {
 
   meta = {
     homepage = "https://apps.kde.org/kalgebra/";
-    description = "A 2D and 3D Graph Calculator";
+    description = "2D and 3D Graph Calculator";
     license = with lib.licenses; [ gpl2Plus ];
     maintainers = with lib.maintainers; [ ninjafb ];
   };
diff --git a/pkgs/applications/kde/kamoso.nix b/pkgs/applications/kde/kamoso.nix
index 878c127a977ca..bb83ccb8f20b1 100644
--- a/pkgs/applications/kde/kamoso.nix
+++ b/pkgs/applications/kde/kamoso.nix
@@ -39,7 +39,7 @@ mkDerivation {
 
   meta = {
     homepage = "https://apps.kde.org/kamoso/";
-    description = "A simple and friendly program to use your camera";
+    description = "Simple and friendly program to use your camera";
     mainProgram = "kamoso";
     license = with lib.licenses; [ lgpl21Only gpl3Only ];
   };
diff --git a/pkgs/applications/kde/kcharselect.nix b/pkgs/applications/kde/kcharselect.nix
index 54549aeb73caa..ae607c5fe49e4 100644
--- a/pkgs/applications/kde/kcharselect.nix
+++ b/pkgs/applications/kde/kcharselect.nix
@@ -10,7 +10,7 @@ mkDerivation {
     homepage = "https://apps.kde.org/kcharselect/";
     license = lib.licenses.gpl2Plus;
     maintainers = [ lib.maintainers.schmittlauch ];
-    description = "A tool to select special characters from all installed fonts and copy them into the clipboard";
+    description = "Tool to select special characters from all installed fonts and copy them into the clipboard";
     mainProgram = "kcharselect";
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
diff --git a/pkgs/applications/kde/kdiamond.nix b/pkgs/applications/kde/kdiamond.nix
index d5b18530aff9e..7da4e4605289c 100644
--- a/pkgs/applications/kde/kdiamond.nix
+++ b/pkgs/applications/kde/kdiamond.nix
@@ -4,7 +4,7 @@ mkDerivation {
   pname = "kdiamond";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.kdiamond";
-    description = "A single player puzzle game";
+    description = "Single player puzzle game";
     mainProgram = "kdiamond";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/kde/kgpg.nix b/pkgs/applications/kde/kgpg.nix
index c39e521802e4c..0aa84dd5eaffc 100644
--- a/pkgs/applications/kde/kgpg.nix
+++ b/pkgs/applications/kde/kgpg.nix
@@ -19,7 +19,7 @@ mkDerivation {
   '';
   meta = {
     homepage = "https://apps.kde.org/kgpg/";
-    description = "A KDE based interface for GnuPG, a powerful encryption utility";
+    description = "KDE based interface for GnuPG, a powerful encryption utility";
     mainProgram = "kgpg";
     license = [ lib.licenses.gpl2 ];
     maintainers = [ lib.maintainers.ttuegel ];
diff --git a/pkgs/applications/kde/kigo.nix b/pkgs/applications/kde/kigo.nix
index 1fcedb3938648..7d6b99fd136ae 100644
--- a/pkgs/applications/kde/kigo.nix
+++ b/pkgs/applications/kde/kigo.nix
@@ -4,7 +4,7 @@ mkDerivation {
   pname = "kigo";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.kigo";
-    description = "An open-source implementation of the popular Go game";
+    description = "Open-source implementation of the popular Go game";
     mainProgram = "kigo";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/kde/killbots.nix b/pkgs/applications/kde/killbots.nix
index 6ac75851619f1..39a774b8212ed 100644
--- a/pkgs/applications/kde/killbots.nix
+++ b/pkgs/applications/kde/killbots.nix
@@ -4,7 +4,7 @@ mkDerivation {
   pname = "killbots";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.killbots";
-    description = "A game where you avoid robots";
+    description = "Game where you avoid robots";
     mainProgram = "killbots";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/kde/kio-admin.nix b/pkgs/applications/kde/kio-admin.nix
index 4734d447a1ac8..70215ee863ed2 100644
--- a/pkgs/applications/kde/kio-admin.nix
+++ b/pkgs/applications/kde/kio-admin.nix
@@ -7,7 +7,7 @@ mkDerivation {
   buildInputs = [ qtbase kio ki18n polkit-qt ];
 
   meta = with lib; {
-    description = "Manage files as administrator using the admin:// KIO protocol.";
+    description = "Manage files as administrator using the admin:// KIO protocol";
     homepage = "https://invent.kde.org/system/kio-admin";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/kde/klettres.nix b/pkgs/applications/kde/klettres.nix
index 583edfb8a56c1..806aa6583d5c3 100644
--- a/pkgs/applications/kde/klettres.nix
+++ b/pkgs/applications/kde/klettres.nix
@@ -4,7 +4,7 @@ mkDerivation {
   pname = "klettres";
   meta = with lib; {
     homepage = "https://invent.kde.org/education/klettres";
-    description = "An application specially designed to help the user to learn an alphabet";
+    description = "Application specially designed to help the user to learn an alphabet";
     mainProgram = "klettres";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/kde/klines.nix b/pkgs/applications/kde/klines.nix
index a7b4d81f5fe4c..de628516c826c 100644
--- a/pkgs/applications/kde/klines.nix
+++ b/pkgs/applications/kde/klines.nix
@@ -4,7 +4,7 @@ mkDerivation {
   pname = "klines";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.klines";
-    description = "A simple but highly addictive one player game";
+    description = "Simple but highly addictive one player game";
     mainProgram = "klines";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/kde/kmag.nix b/pkgs/applications/kde/kmag.nix
index dc6cec7e5a475..adf63b145f89c 100644
--- a/pkgs/applications/kde/kmag.nix
+++ b/pkgs/applications/kde/kmag.nix
@@ -4,7 +4,7 @@ mkDerivation {
   pname = "kmag";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/utilities/org.kde.kmag";
-    description = "A small Linux utility to magnify a part of the screen";
+    description = "Small Linux utility to magnify a part of the screen";
     mainProgram = "kmag";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/kde/kmines.nix b/pkgs/applications/kde/kmines.nix
index 108c7f049b08c..99413733b13bb 100644
--- a/pkgs/applications/kde/kmines.nix
+++ b/pkgs/applications/kde/kmines.nix
@@ -4,7 +4,7 @@ mkDerivation {
   pname = "kmines";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.kmines";
-    description = "A classic Minesweeper game";
+    description = "Classic Minesweeper game";
     mainProgram = "kmines";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/kde/knetwalk.nix b/pkgs/applications/kde/knetwalk.nix
index ae25146b41b66..a74b18d184d7c 100644
--- a/pkgs/applications/kde/knetwalk.nix
+++ b/pkgs/applications/kde/knetwalk.nix
@@ -4,7 +4,7 @@ mkDerivation {
   pname = "knetwalk";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.knetwalk";
-    description = "A single player logic game";
+    description = "Single player logic game";
     mainProgram = "knetwalk";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/kde/knights.nix b/pkgs/applications/kde/knights.nix
index 589f409907d72..ae0d1d62fe573 100644
--- a/pkgs/applications/kde/knights.nix
+++ b/pkgs/applications/kde/knights.nix
@@ -4,7 +4,7 @@ mkDerivation {
   pname = "knights";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.knights";
-    description = "A chess game";
+    description = "Chess game";
     mainProgram = "knights";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/kde/kollision.nix b/pkgs/applications/kde/kollision.nix
index 4aa01245f1aeb..96e34f69c93b3 100644
--- a/pkgs/applications/kde/kollision.nix
+++ b/pkgs/applications/kde/kollision.nix
@@ -4,7 +4,7 @@ mkDerivation {
   pname = "kollision";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.kollision";
-    description = "A casual game";
+    description = "Casual game";
     mainProgram = "kollision";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/kde/kongress.nix b/pkgs/applications/kde/kongress.nix
index be5efcdb9e23a..5738569bae900 100644
--- a/pkgs/applications/kde/kongress.nix
+++ b/pkgs/applications/kde/kongress.nix
@@ -28,7 +28,7 @@ mkDerivation {
   ];
 
   meta = {
-    description = "A companion application for conferences";
+    description = "Companion application for conferences";
     homepage = "https://apps.kde.org/kongress/";
     license = lib.licenses.gpl3;
     maintainers = [];
diff --git a/pkgs/applications/kde/kreversi.nix b/pkgs/applications/kde/kreversi.nix
index 91756d2e15d74..11cce1799c1b6 100644
--- a/pkgs/applications/kde/kreversi.nix
+++ b/pkgs/applications/kde/kreversi.nix
@@ -4,7 +4,7 @@ mkDerivation {
   pname = "kreversi";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.kreversi";
-    description = "A simple one player strategy game played against the computer";
+    description = "Simple one player strategy game played against the computer";
     mainProgram = "kreversi";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/kde/kshisen.nix b/pkgs/applications/kde/kshisen.nix
index b15dbfa8f9fae..4982456bdd01e 100644
--- a/pkgs/applications/kde/kshisen.nix
+++ b/pkgs/applications/kde/kshisen.nix
@@ -4,7 +4,7 @@ mkDerivation {
   pname = "kshisen";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.kshisen";
-    description = "A solitaire-like game played using the standard set of Mahjong tiles";
+    description = "Solitaire-like game played using the standard set of Mahjong tiles";
     mainProgram = "kshisen";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/kde/ksquares.nix b/pkgs/applications/kde/ksquares.nix
index 326482c3aa8c9..34a3cdeb8702f 100644
--- a/pkgs/applications/kde/ksquares.nix
+++ b/pkgs/applications/kde/ksquares.nix
@@ -4,7 +4,7 @@ mkDerivation {
   pname = "ksquares";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.ksquares";
-    description = "A game of Dots and Boxes";
+    description = "Game of Dots and Boxes";
     mainProgram = "ksquares";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/kde/kteatime.nix b/pkgs/applications/kde/kteatime.nix
index 056df2fa263dd..bda8f6b7f1f7a 100644
--- a/pkgs/applications/kde/kteatime.nix
+++ b/pkgs/applications/kde/kteatime.nix
@@ -4,7 +4,7 @@ mkDerivation {
   pname = "kteatime";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/utilities/org.kde.kteatime";
-    description = "A handy timer for steeping tea";
+    description = "Handy timer for steeping tea";
     mainProgram = "kteatime";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/kde/ktimer.nix b/pkgs/applications/kde/ktimer.nix
index 31535af1d7ad7..bc2d6494c1346 100644
--- a/pkgs/applications/kde/ktimer.nix
+++ b/pkgs/applications/kde/ktimer.nix
@@ -4,7 +4,7 @@ mkDerivation {
   pname = "ktimer";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/utilities/org.kde.ktimer";
-    description = "A little tool to execute programs after some time";
+    description = "Little tool to execute programs after some time";
     mainProgram = "ktimer";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/kde/ktouch.nix b/pkgs/applications/kde/ktouch.nix
index 1a5f14bbc9e3f..18cc2ec0e32f2 100644
--- a/pkgs/applications/kde/ktouch.nix
+++ b/pkgs/applications/kde/ktouch.nix
@@ -13,7 +13,7 @@ mkDerivation {
     homepage = "https://apps.kde.org/ktouch/";
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.schmittlauch ];
-    description = "A touch typing tutor from the KDE software collection";
+    description = "Touch typing tutor from the KDE software collection";
     mainProgram = "ktouch";
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools qtdeclarative ];
diff --git a/pkgs/applications/kde/kturtle.nix b/pkgs/applications/kde/kturtle.nix
index 1f03f7fcb4075..299b6bd83facc 100644
--- a/pkgs/applications/kde/kturtle.nix
+++ b/pkgs/applications/kde/kturtle.nix
@@ -4,7 +4,7 @@ mkDerivation {
   pname = "kturtle";
   meta = with lib; {
     homepage = "https://invent.kde.org/education/kturtle";
-    description = "An educational programming environment for learning how to program";
+    description = "Educational programming environment for learning how to program";
     mainProgram = "kturtle";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/kde/kwave.nix b/pkgs/applications/kde/kwave.nix
index b0eda04de7096..46e6c1a5cf3c4 100644
--- a/pkgs/applications/kde/kwave.nix
+++ b/pkgs/applications/kde/kwave.nix
@@ -7,7 +7,7 @@ mkDerivation {
 
   meta = with lib; {
     homepage = "https://kde.org/applications/en/multimedia/org.kde.kwave";
-    description = "A simple media player";
+    description = "Simple media player";
     mainProgram = "kwave";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/kde/libktorrent.nix b/pkgs/applications/kde/libktorrent.nix
index 3b4ae5f72f7f0..20975c7eb0ee2 100644
--- a/pkgs/applications/kde/libktorrent.nix
+++ b/pkgs/applications/kde/libktorrent.nix
@@ -8,7 +8,7 @@
 mkDerivation {
   pname = "libktorrent";
   meta = with lib; {
-    description = "A BitTorrent library used by KTorrent";
+    description = "BitTorrent library used by KTorrent";
     homepage    = "https://apps.kde.org/ktorrent/";
     maintainers = with maintainers; [ eelco ];
   };
diff --git a/pkgs/applications/kde/merkuro.nix b/pkgs/applications/kde/merkuro.nix
index b8d3107eb6145..7c2064e2969b2 100644
--- a/pkgs/applications/kde/merkuro.nix
+++ b/pkgs/applications/kde/merkuro.nix
@@ -92,7 +92,7 @@ mkDerivation {
   qtWrapperArgs = [''--prefix PATH : "${lib.makeBinPath [ akonadi kdepim-runtime akonadi-search ]}"''];
 
   meta = with lib; {
-    description = "A calendar application using Akonadi to sync with external services (Nextcloud, GMail, ...)";
+    description = "Calendar application using Akonadi to sync with external services (Nextcloud, GMail, ...)";
     homepage = "https://invent.kde.org/pim/merkuro";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ Thra11 ];
diff --git a/pkgs/applications/kde/neochat.nix b/pkgs/applications/kde/neochat.nix
index 840ab864cd95d..f8dc1f6c35b7e 100644
--- a/pkgs/applications/kde/neochat.nix
+++ b/pkgs/applications/kde/neochat.nix
@@ -66,7 +66,7 @@ mkDerivation {
   ];
 
   meta = with lib; {
-    description = "A client for matrix, the decentralized communication protocol";
+    description = "Client for matrix, the decentralized communication protocol";
     mainProgram = "neochat";
     homepage = "https://apps.kde.org/en/neochat";
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/kde/palapeli.nix b/pkgs/applications/kde/palapeli.nix
index 9effbc2674f75..37a387af0a3d7 100644
--- a/pkgs/applications/kde/palapeli.nix
+++ b/pkgs/applications/kde/palapeli.nix
@@ -15,7 +15,7 @@ mkDerivation {
   buildInputs = [ libkdegames kio ktextwidgets ];
   meta = {
     homepage = "https://apps.kde.org/palapeli/";
-    description = "A single-player jigsaw puzzle game";
+    description = "Single-player jigsaw puzzle game";
     mainProgram = "palapeli";
     license = with lib.licenses; [ gpl2 ];
     maintainers = with lib.maintainers; [ harrisonthorne ];
diff --git a/pkgs/applications/kde/rocs.nix b/pkgs/applications/kde/rocs.nix
index 732814c42f695..263cce39f176f 100644
--- a/pkgs/applications/kde/rocs.nix
+++ b/pkgs/applications/kde/rocs.nix
@@ -10,7 +10,7 @@ mkDerivation {
 
   meta = with lib; {
     homepage = "https://edu.kde.org/rocs/";
-    description = "A graph theory IDE.";
+    description = "Graph theory IDE";
     mainProgram = "rocs";
     license = with licenses; [ gpl2Plus lgpl21Plus fdl12Plus ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/applications/kde/telly-skout.nix b/pkgs/applications/kde/telly-skout.nix
index 9ecff11c0e082..7c249c99f9aa2 100644
--- a/pkgs/applications/kde/telly-skout.nix
+++ b/pkgs/applications/kde/telly-skout.nix
@@ -16,7 +16,7 @@ mkDerivation {
   buildInputs = [ qtquickcontrols2 kcoreaddons kconfig ki18n kirigami2 ];
 
   meta = {
-    description = "A convergent Kirigami TV guide";
+    description = "Convergent Kirigami TV guide";
     mainProgram = "telly-skout";
     homepage = "https://apps.kde.org/telly-skout/";
     license = lib.licenses.gpl2Plus;
diff --git a/pkgs/applications/kde/tokodon.nix b/pkgs/applications/kde/tokodon.nix
index c11bb05dae0fc..fdf2d63d2bf5f 100644
--- a/pkgs/applications/kde/tokodon.nix
+++ b/pkgs/applications/kde/tokodon.nix
@@ -52,7 +52,7 @@ mkDerivation {
   ];
 
   meta = with lib; {
-    description = "A Mastodon client for Plasma and Plasma Mobile";
+    description = "Mastodon client for Plasma and Plasma Mobile";
     mainProgram = "tokodon";
     homepage = "https://invent.kde.org/network/tokodon";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/kde/umbrello.nix b/pkgs/applications/kde/umbrello.nix
index 4746e1976bf17..7a3356fd2103a 100644
--- a/pkgs/applications/kde/umbrello.nix
+++ b/pkgs/applications/kde/umbrello.nix
@@ -13,7 +13,7 @@ mkDerivation {
   pname = "umbrello";
   meta = {
     homepage = "https://umbrello.kde.org/";
-    description = "A Unified Modelling Language (UML) diagram program";
+    description = "Unified Modelling Language (UML) diagram program";
     license = [ lib.licenses.gpl2 ];
   };
   nativeBuildInputs = [
diff --git a/pkgs/applications/kde/zanshin.nix b/pkgs/applications/kde/zanshin.nix
index a43632ce362cb..4b98ea8e0cf7c 100644
--- a/pkgs/applications/kde/zanshin.nix
+++ b/pkgs/applications/kde/zanshin.nix
@@ -7,7 +7,7 @@
 mkDerivation {
   pname = "zanshin";
   meta = with lib; {
-    description = "A powerful yet simple application to manage your day to day actions, getting your mind like water";
+    description = "Powerful yet simple application to manage your day to day actions, getting your mind like water";
     homepage = "https://zanshin.kde.org/";
     maintainers = with maintainers; [ zraexy ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/misc/1password-gui/default.nix b/pkgs/applications/misc/1password-gui/default.nix
index c151bedd29e61..965d6b487a057 100644
--- a/pkgs/applications/misc/1password-gui/default.nix
+++ b/pkgs/applications/misc/1password-gui/default.nix
@@ -9,43 +9,43 @@
 let
 
   pname = "1password";
-  version = if channel == "stable" then "8.10.30" else "8.10.30-20.BETA";
+  version = if channel == "stable" then "8.10.33" else "8.10.34-10.BETA";
 
   sources = {
     stable = {
       x86_64-linux = {
         url = "https://downloads.1password.com/linux/tar/stable/x86_64/1password-${version}.x64.tar.gz";
-        hash = "sha256-q1PKFpBgjada7jmeXZYmH8dvy2A4lwfrQ0jQSoHVNcg=";
+        hash = "sha256-njSvRi/sA7l5+XxfCpv3FY9SmCv5oPix9l2EZewZg1M=";
       };
       aarch64-linux = {
         url = "https://downloads.1password.com/linux/tar/stable/aarch64/1password-${version}.arm64.tar.gz";
-        hash = "sha256-Zv/mnykPi9PCDX44JtGi0GPrOujSmjx1BBJuEB81CwE=";
+        hash = "sha256-g4RMTlBQvJQaPD/6scYjpe7NWrL6gkjvh5b9LubTWaE=";
       };
       x86_64-darwin = {
         url = "https://downloads.1password.com/mac/1Password-${version}-x86_64.zip";
-        hash = "sha256-unC1cz5ooSdu4Csf7/daCyPdMy3/Lp3a76B7TBa/VXk=";
+        hash = "sha256-YzAYMk3SR+paIQYAZCx840u/k77soy17F15owpqRAU0=";
       };
       aarch64-darwin = {
         url = "https://downloads.1password.com/mac/1Password-${version}-aarch64.zip";
-        hash = "sha256-DS6oCdr6srF+diL68a2gOskS4x+uj1i8DtL3uaaxv/I=";
+        hash = "sha256-FlJnPMIv7mWh3dSACq01f16mB9EkVD2LOg3IIpvjwdY=";
       };
     };
     beta = {
       x86_64-linux = {
         url = "https://downloads.1password.com/linux/tar/beta/x86_64/1password-${version}.x64.tar.gz";
-        hash = "sha256-6I/3o+33sIkfyef8xGUWczaWykHPcvvAGv0xy/jCkKI=";
+        hash = "sha256-eX7D8D5KErFIQtyvg4oT+lR3A7sfRFpDMT7duigZTz0=";
       };
       aarch64-linux = {
         url = "https://downloads.1password.com/linux/tar/beta/aarch64/1password-${version}.arm64.tar.gz";
-        hash = "sha256-ph6DBBUzdUHtYCAQiA1me3bevtVPEgIxtwbgbdgQcGY=";
+        hash = "sha256-dajdeU8TtD9Dbnp2MFedAl8tuQr275cUqGAnm/VF+OE=";
       };
       x86_64-darwin = {
         url = "https://downloads.1password.com/mac/1Password-${version}-x86_64.zip";
-        hash = "sha256-XzZOj1pfoCTGMTsqZlI8hKTDRJ4w7debAPYHIIwsyyY=";
+        hash = "sha256-Dm8v7B8qDSBe1i7OJKQFn7YDPkw3Qj8YVtQkaQmdKuc=";
       };
       aarch64-darwin = {
         url = "https://downloads.1password.com/mac/1Password-${version}-aarch64.zip";
-        hash = "sha256-s+hnKhI2s6E1ZyJQxs3Wggy60LxCEr+u3tRtjTgjmZk=";
+        hash = "sha256-QSxJoVPlOQU7hbvbuVcB/kf5umRjJQuygMkXq6lE1CQ=";
       };
     };
   };
diff --git a/pkgs/applications/misc/1password/default.nix b/pkgs/applications/misc/1password/default.nix
index 71f93ae40e7a4..9ecc38a9abbbc 100644
--- a/pkgs/applications/misc/1password/default.nix
+++ b/pkgs/applications/misc/1password/default.nix
@@ -12,12 +12,12 @@ let
     if extension == "zip" then fetchzip args else fetchurl args;
 
   pname = "1password-cli";
-  version = "2.28.0";
+  version = "2.29.0";
   sources = rec {
-    aarch64-linux = fetch "linux_arm64" "sha256-rF0HWKLdLDmT5nXqZyn+nwd3DZxkP76Jm+xofvA1dpU=" "zip";
-    i686-linux = fetch "linux_386" "sha256-b9OPsZJTGoAeedj/dv88lkX2Q4p9HG585mWyl7ZfDz4=" "zip";
-    x86_64-linux = fetch "linux_amd64" "sha256-5ZiMQaQLYUR9BZroyG0o+M79cR4GQb6rDyVmIcTZh3o=" "zip";
-    aarch64-darwin = fetch "apple_universal" "sha256-5VmogWqCYMdrg9dyRt4lurPmSRdUUHt4LT3lkOEKdEI=" "pkg";
+    aarch64-linux = fetch "linux_arm64" "sha256-sBbdkoacGI/gawM4YH+BBCLDhC2B+cE4iKVGHBhwkic=" "zip";
+    i686-linux = fetch "linux_386" "sha256-TTd5juT0Aqp1+OfunXcuk0KbL6HIHQV31+1Q1e0GYMY=" "zip";
+    x86_64-linux = fetch "linux_amd64" "sha256-Bb6fNoeNxlbDfwt7Jr8BaKCmFUwSdsLQdVoCmQCNmLA=" "zip";
+    aarch64-darwin = fetch "apple_universal" "sha256-/ryklZnGhrgJggDIa8HmuDsHAXkdrWeXKCQGGVwUAAo=" "pkg";
     x86_64-darwin = aarch64-darwin;
   };
   platforms = builtins.attrNames sources;
diff --git a/pkgs/applications/misc/ArchiSteamFarm/default.nix b/pkgs/applications/misc/ArchiSteamFarm/default.nix
index 7c334fb804558..ce23bd8ee3f18 100644
--- a/pkgs/applications/misc/ArchiSteamFarm/default.nix
+++ b/pkgs/applications/misc/ArchiSteamFarm/default.nix
@@ -11,13 +11,13 @@
 buildDotnetModule rec {
   pname = "ArchiSteamFarm";
   # nixpkgs-update: no auto update
-  version = "6.0.1.24";
+  version = "6.0.3.4";
 
   src = fetchFromGitHub {
     owner = "JustArchiNET";
     repo = "ArchiSteamFarm";
     rev = version;
-    hash = "sha256-IgsiL5YUeOWQ/WIaTfs0Kmv2XFori8ntGZhrx7xeMkg=";
+    hash = "sha256-qYB94SJYCwcUrXdKtD+ZdiPRpwXg3rOHVmFWD+Y1ZXg=";
   };
 
   dotnet-runtime = dotnetCorePackages.aspnetcore_8_0;
@@ -26,22 +26,20 @@ buildDotnetModule rec {
   nugetDeps = ./deps.nix;
 
   projectFile = "ArchiSteamFarm.sln";
-  executables = [ "ArchiSteamFarm" ];
+  executable = "ArchiSteamFarm";
   dotnetFlags = [
-    "-p:PublishSingleFile=true"
-    "-p:PublishTrimmed=true"
+    "-p:UseAppHost=false"
   ];
   dotnetInstallFlags = [
     "--framework=net8.0"
   ];
-  selfContainedBuild = true;
 
   runtimeDeps = [ libkrb5 zlib openssl ];
 
   doCheck = true;
 
   preBuild = ''
-    export projectFile=(ArchiSteamFarm)
+    dotnetProjectFiles=(ArchiSteamFarm)
   '';
 
   preInstall = ''
@@ -58,11 +56,17 @@ buildDotnetModule rec {
       dotnet publish $1 -p:ContinuousIntegrationBuild=true -p:Deterministic=true \
         --output $out/lib/ArchiSteamFarm/plugins/$1 --configuration Release \
         -p:UseAppHost=false
-     }
+    }
 
-     buildPlugin ArchiSteamFarm.OfficialPlugins.ItemsMatcher
-     buildPlugin ArchiSteamFarm.OfficialPlugins.MobileAuthenticator
-     buildPlugin ArchiSteamFarm.OfficialPlugins.SteamTokenDumper
+    buildPlugin ArchiSteamFarm.OfficialPlugins.ItemsMatcher
+    buildPlugin ArchiSteamFarm.OfficialPlugins.MobileAuthenticator
+    buildPlugin ArchiSteamFarm.OfficialPlugins.Monitoring
+    buildPlugin ArchiSteamFarm.OfficialPlugins.SteamTokenDumper
+
+    chmod +x $out/lib/ArchiSteamFarm/ArchiSteamFarm.dll
+    wrapDotnetProgram $out/lib/ArchiSteamFarm/ArchiSteamFarm.dll $out/bin/ArchiSteamFarm
+    substituteInPlace $out/bin/ArchiSteamFarm \
+      --replace-fail "exec " "exec dotnet "
   '';
 
   passthru = {
diff --git a/pkgs/applications/misc/ArchiSteamFarm/deps.nix b/pkgs/applications/misc/ArchiSteamFarm/deps.nix
index cc47f6d75949f..79ed6cdf624a5 100644
--- a/pkgs/applications/misc/ArchiSteamFarm/deps.nix
+++ b/pkgs/applications/misc/ArchiSteamFarm/deps.nix
@@ -57,10 +57,14 @@
   (fetchNuGet { pname = "Humanizer.Core.zh-Hans"; version = "2.14.1"; sha256 = "0zn99311zfn602phxyskfjq9vly0w5712z6fly8r4q0h94qa8c85"; })
   (fetchNuGet { pname = "Humanizer.Core.zh-Hant"; version = "2.14.1"; sha256 = "0qxjnbdj645l5sd6y3100yyrq1jy5misswg6xcch06x8jv7zaw1p"; })
   (fetchNuGet { pname = "JetBrains.Annotations"; version = "2023.3.0"; sha256 = "0vp4mpn6gfckn8grzjm1jxlbqiq2fglm2rk9wq787adw7rxs8k7w"; })
-  (fetchNuGet { pname = "Markdig.Signed"; version = "0.36.2"; sha256 = "02d658sjxd853lmqhhh13yhycm9nlmghl3p3fdn6iwmwhkly9qvy"; })
-  (fetchNuGet { pname = "Microsoft.ApplicationInsights"; version = "2.21.0"; sha256 = "1q034jbqkxb8lddkd0ijp0wp0ymnnf3bg2mjpay027zv7jswnc4x"; })
+  (fetchNuGet { pname = "Markdig.Signed"; version = "0.37.0"; sha256 = "0pcysg74pvhqs13087dh5r90xnixklmnz7bwv02304927mkv5345"; })
+  (fetchNuGet { pname = "Microsoft.ApplicationInsights"; version = "2.22.0"; sha256 = "0h5qkhmazlvwvjmxxj9pp2404rmvk55yf6npwcmlskv9mgfkli4r"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "8.0.0"; sha256 = "05y1xb5fw8lzvb4si77a5qwfwfz1855crqbphrwky6x9llivbhkx"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "8.0.0"; sha256 = "18zdbcb2bn7wy1dp14z5jyqiiwr9rkad1lcb158r5ikjfq1rg5iw"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "8.0.0"; sha256 = "1nbxzmj6cnccylxis67c54c0ik38ma4rwdvgg6sxd6r04219maqm"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "8.0.0"; sha256 = "1wqkbjd1ywv9w397l7rsb89mijc5n0hv7jq9h09xfz6wn9qsp152"; })
   (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "6.0.0"; sha256 = "15gqy2m14fdlvy1g59207h5kisznm355kbw010gy19vh47z8gpz3"; })
-  (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.8.0"; sha256 = "173wjadp3gan4x2jfjchngnc4ca4mb95h1sbb28jydfkfw0z1zvj"; })
+  (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.10.0"; sha256 = "0s0v7jmrq85n356xv7zixvwa4z94fszjcr5vll8x4im1a2lp00f9"; })
   (fetchNuGet { pname = "Microsoft.Extensions.ApiDescription.Server"; version = "6.0.5"; sha256 = "1pi2bm3cm0a7jzqzmfc2r7bpcdkmk3hhjfvb2c81j7wl7xdw3624"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "8.0.0"; sha256 = "080kab87qgq2kh0ijry5kfdiq9afyzb8s0k3jqi5zbbi540yq4zl"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "8.0.0"; sha256 = "1jlpa4ggl1gr5fs7fdcw04li3y3iy05w3klr9lrrlc7v8w76kq71"; })
@@ -76,54 +80,60 @@
   (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "8.0.0"; sha256 = "0p50qn6zhinzyhq9sy5svnmqqwhw2jajs2pbjh9sah504wjvhscz"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Options.ConfigurationExtensions"; version = "8.0.0"; sha256 = "04nm8v5a3zp0ill7hjnwnja3s2676b4wffdri8hdk2341p7mp403"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "8.0.0"; sha256 = "0aldaz5aapngchgdr7dax9jw5wy7k7hmjgjpfgfv1wfif27jlkqm"; })
-  (fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "7.5.0"; sha256 = "0nigij1vz1biw1sl64mflx68fgm34lmnvq47z2n5p0qs534kvkhb"; })
-  (fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "7.5.0"; sha256 = "025ixbv7jq294n8yw4y1bbd92iz08q4jqnnzqp0s8lgi49sk9dad"; })
-  (fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "7.5.0"; sha256 = "1qyyfxww980s7xzw048kc8iqzarzbaj11cb5lrsisv777ccipma5"; })
-  (fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "7.5.0"; sha256 = "0ns56pws3zlwjk8mjyfr02zl3nnhzka76wabfabplfci62bgi3h0"; })
-  (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.8.0"; sha256 = "1syvl3g0hbrcgfi9rq6pld8s8hqqww4dflf1lxn59ccddyyx0gmv"; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "7.6.0"; sha256 = "18g4j9n47387k4ym3kl2dzhhhs6fs5rq96757fc4lcdql2rpkmp0"; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "7.6.0"; sha256 = "11znwbbg44hhz3ly6j6q81qz83yqf97jj5zhpldng5zq0h791srl"; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "7.6.0"; sha256 = "1slkzygcn4abpqip4rmi73h9096ihjkkaiwgmkaiba9pidn9lzlx"; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "7.6.0"; sha256 = "1blj1ayw9qpjpsnb4k95s03pdkin0032mxgznfaw1z1qhhiqdnsi"; })
+  (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.10.0"; sha256 = "13g8fwl09li8fc71nk13dgkb7gahd4qhamyg2xby7am63nlchhdf"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "8.0.0"; sha256 = "0gwqmkmr7jy3sjh9gha82amlry41gp8nwswy2iqfw54f28db63n7"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "8.0.0"; sha256 = "042cjvnwrrjs3mw5q8q5kinh0cwkks33i3n1vyifaid2jbr3wlc0"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "8.0.0"; sha256 = "06ndp4wh1cap01dql3nixka4g56bf6ipmqys7xaxvg4xisf79x8d"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "8.0.0"; sha256 = "1kh5bnaf6h9mr4swcalrp304625frjiw6mlz1052rxwzsdq98a96"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
-  (fetchNuGet { pname = "Microsoft.OpenApi"; version = "1.2.3"; sha256 = "07b19k89whj69j87afkz86gp9b3iybw8jqwvlgcn43m7fb2y99rr"; })
-  (fetchNuGet { pname = "Microsoft.Testing.Extensions.Telemetry"; version = "1.0.2"; sha256 = "00psv2mvynd2bz8xnzvqvb32qr33glqxg4ni5j91b93k84yjy5ma"; })
-  (fetchNuGet { pname = "Microsoft.Testing.Extensions.TrxReport.Abstractions"; version = "1.0.2"; sha256 = "09yn3hi9npgi8rs2vyfyzcl8vbfa1lqcl6lgpymw5d7lg0hc511w"; })
-  (fetchNuGet { pname = "Microsoft.Testing.Extensions.VSTestBridge"; version = "1.0.2"; sha256 = "0c65fsc23xxw648xh83sjcmrn9hvs9q58l5lb36wflvaajbsjf2r"; })
-  (fetchNuGet { pname = "Microsoft.Testing.Platform"; version = "1.0.2"; sha256 = "0bq46f4v2r4nzwly7g0dsakyc1lcql9nh85sp59d1fwzaknf1n94"; })
-  (fetchNuGet { pname = "Microsoft.Testing.Platform.MSBuild"; version = "1.0.2"; sha256 = "1vjqrpqjx3z1irqgy0ckmkgyvrzqqqcikxs36q6gadyj643ra1c5"; })
+  (fetchNuGet { pname = "Microsoft.OpenApi"; version = "1.6.14"; sha256 = "1wr8crmjg4gznm3jqgz9s9p285vrwb8a6baqc6gz3b58rn4m88km"; })
+  (fetchNuGet { pname = "Microsoft.Testing.Extensions.Telemetry"; version = "1.2.1"; sha256 = "1a6hyd3szjjpjkbr0ncfria0x2qijv3lwr4drhxm15xamfy23azw"; })
+  (fetchNuGet { pname = "Microsoft.Testing.Extensions.TrxReport.Abstractions"; version = "1.2.1"; sha256 = "19309m0b9cjy1642m99ipjvr6gxq6qb008bam3l10m1mz8m81j31"; })
+  (fetchNuGet { pname = "Microsoft.Testing.Extensions.VSTestBridge"; version = "1.2.1"; sha256 = "1bly8375zng21yjbfdi08c14lgapngv06p1dlzbryimxicqzxixx"; })
+  (fetchNuGet { pname = "Microsoft.Testing.Platform"; version = "1.2.1"; sha256 = "0zlbqmvdb1vxnvmxh6lk65mz57c7mz6dqb1s8in0cfww8kxg058k"; })
+  (fetchNuGet { pname = "Microsoft.Testing.Platform.MSBuild"; version = "1.2.1"; sha256 = "07674xnhc84h36pvzswx6ibjy0bgfi2bxhqm1zyq9fidmim0ch07"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.10.0"; sha256 = "07j69cw8r39533w4p39mnj00kahazz38760in3jfc45kmlcdb26x"; })
   (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.5.0"; sha256 = "0qkjyf3ky6xpjg5is2sdsawm99ka7fzgid2bvpglwmmawqgm8gls"; })
-  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.8.0"; sha256 = "0b0i7lmkrcfvim8i3l93gwqvkhhhfzd53fqfnygdqvkg6np0cg7m"; })
-  (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.8.0"; sha256 = "0f5jah93kjkvxwmhwb78lw11m9pkkq9fvf135hpymmmpxqbdh97q"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.10.0"; sha256 = "1bl471s7fx9jycr0cc8rylwf34mrvlg9qn1an6l86nisavfcyb7v"; })
   (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "5.0.0"; sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n"; })
-  (fetchNuGet { pname = "MSTest"; version = "3.2.2"; sha256 = "19pkywdlmgccv2ri52gbpb3pgci1ymb2ba5qhyp9j19vks6gf6cj"; })
-  (fetchNuGet { pname = "MSTest.Analyzers"; version = "3.2.2"; sha256 = "1ap7imbqxmz2namgli796pxj91gyn01k6xxnllldpwwbxpd0ijgd"; })
-  (fetchNuGet { pname = "MSTest.TestAdapter"; version = "3.2.2"; sha256 = "14nrxg1cd3lzaxw7zz8z91168sgnsf1xxnrpdy7wkd6ggk22hi19"; })
-  (fetchNuGet { pname = "MSTest.TestFramework"; version = "3.2.2"; sha256 = "0igdrjr300bqz5lnibf9vl8pkaky1l27f889gza3a9xs83mpd06p"; })
+  (fetchNuGet { pname = "MSTest"; version = "3.4.3"; sha256 = "070avma2zdxdpn23a9chgz9n1kglxh8nbb1g2ggzk3xxi5sdjj0n"; })
+  (fetchNuGet { pname = "MSTest.Analyzers"; version = "3.4.3"; sha256 = "14a6rzh4cvaf9bw63qlxw242fbmk4agyx9qgl19swpciqcaq7pxi"; })
+  (fetchNuGet { pname = "MSTest.TestAdapter"; version = "3.4.3"; sha256 = "0hsslndnfyb6shgkmgy10f1c9p6b47ry20zr2l1msagmkrk49s5q"; })
+  (fetchNuGet { pname = "MSTest.TestFramework"; version = "3.4.3"; sha256 = "0hviglzfv16dd3aczny455sy1k0rikzd5w34smfpjyxc0wqx6xvp"; })
   (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; })
   (fetchNuGet { pname = "Nito.AsyncEx.Coordination"; version = "5.1.2"; sha256 = "0sxvmqnv8a94k3pq1w3lh1vgjb8l62h1qamxcjl3pkq634h2fwrl"; })
   (fetchNuGet { pname = "Nito.AsyncEx.Tasks"; version = "5.1.2"; sha256 = "11wp47kc69sjdxrbg5pgx0wlffqlp0x5kr54ggnz2v19kmjz362v"; })
   (fetchNuGet { pname = "Nito.Collections.Deque"; version = "1.1.1"; sha256 = "152564q3s0n5swfv5p5rx0ghn2sm0g2xsnbd7gv8vb9yfklv7yg8"; })
   (fetchNuGet { pname = "Nito.Disposables"; version = "2.2.1"; sha256 = "1hx5k8497j34kxxgh060bvij0vfnraw90dmm3h9bmamcdi8wp80l"; })
-  (fetchNuGet { pname = "NLog"; version = "5.2.8"; sha256 = "1z3h20m5rjnizm1jbf5j0vpdc1f373rzzkg6478p1lxv5j385c12"; })
-  (fetchNuGet { pname = "NLog.Extensions.Logging"; version = "5.3.8"; sha256 = "1qnz91099f51vk7f5g2ig0041maw5hcbyqllxvj5zj7zkp0qw9b8"; })
-  (fetchNuGet { pname = "NLog.Web.AspNetCore"; version = "5.3.8"; sha256 = "05a6bzvdf63lbnn6sj3yfggxcgv96j91kdbcw0ac5hxl58df58r6"; })
+  (fetchNuGet { pname = "NLog"; version = "5.3.2"; sha256 = "01qnzmwvc93yywhvy5g29fb8jnalfi82az7296nblyqjalhbzz3g"; })
+  (fetchNuGet { pname = "NLog.Extensions.Logging"; version = "5.3.11"; sha256 = "0j276q0a14qk9nc3f03265jl5wp38bnm7dyyx0s4kxkyb3kx3z8c"; })
+  (fetchNuGet { pname = "NLog.Web.AspNetCore"; version = "5.3.11"; sha256 = "17xvaj54liyk9zq0f80z1ai6wq4rgj6xy93znvsdcnldmin1icz9"; })
   (fetchNuGet { pname = "NuGet.Frameworks"; version = "5.11.0"; sha256 = "0wv26gq39hfqw9md32amr5771s73f5zn1z9vs4y77cgynxr73s4z"; })
-  (fetchNuGet { pname = "NuGet.Frameworks"; version = "6.5.0"; sha256 = "0s37d1p4md0k6d4cy6sq36f2dgkd9qfbzapxhkvi8awwh0vrynhj"; })
-  (fetchNuGet { pname = "OpenTelemetry"; version = "1.8.0-rc.1"; sha256 = "0scpylqwqmp7lpmixci88v6zf7jzf3zrcbrhl30bd4p7r4alw2lp"; })
-  (fetchNuGet { pname = "OpenTelemetry.Api"; version = "1.7.0"; sha256 = "099yivazj5078076xydssf38r71c5nk3n7hy0lr51p80gln1vdha"; })
-  (fetchNuGet { pname = "OpenTelemetry.Api"; version = "1.8.0-rc.1"; sha256 = "0rnl9pkwbz2srkss3ay05jjrfkyzibxa6vx0hg7rzfpyjinhaycs"; })
-  (fetchNuGet { pname = "OpenTelemetry.Api.ProviderBuilderExtensions"; version = "1.7.0"; sha256 = "1j7bxhpwpcrjr4am7s4mavjjpasikv4kp8glmxiw5x9zvc0x0ix7"; })
-  (fetchNuGet { pname = "OpenTelemetry.Api.ProviderBuilderExtensions"; version = "1.8.0-rc.1"; sha256 = "18r7m4zjimkkwjqw8hd9xa85lnj1fy45xyd338fbpp9nm73j9r2g"; })
-  (fetchNuGet { pname = "OpenTelemetry.Exporter.Prometheus.AspNetCore"; version = "1.8.0-rc.1"; sha256 = "0fiz7qpzn64by4dlc5r9ha2qrp1j9w9lm6c7bzpvshzwz8ifamv7"; })
-  (fetchNuGet { pname = "OpenTelemetry.Extensions.Hosting"; version = "1.8.0-rc.1"; sha256 = "0p5sybp1b8fkccibhlmjlvdnhryscqh9f435c34bwp6vvllxf17z"; })
-  (fetchNuGet { pname = "OpenTelemetry.Instrumentation.AspNetCore"; version = "1.7.1"; sha256 = "19r12csxwdrvl5yx88mv68rzj2cy43004pwldy6q89v42sr01kyi"; })
-  (fetchNuGet { pname = "OpenTelemetry.Instrumentation.Http"; version = "1.7.1"; sha256 = "0mvrcz2mg3caf4lcwi1ai7i7ldb27p4y2qx9vckfjal203bps352"; })
-  (fetchNuGet { pname = "OpenTelemetry.Instrumentation.Runtime"; version = "1.7.0"; sha256 = "0klyd24akymj2hpjlnzmz7x9kggj4amhaqx1zh9nxjvlmmy64gxy"; })
+  (fetchNuGet { pname = "OpenTelemetry"; version = "1.7.0-rc.1"; sha256 = "0y16qp3xrypk48f27pfvccic47p9wpl4qx8mar4rf2b78ca21c9p"; })
+  (fetchNuGet { pname = "OpenTelemetry"; version = "1.8.1"; sha256 = "1slyjdzbiv179sq91bq6bhbqw20jmk6j9x1g5fhvnqsymfqmnmq2"; })
+  (fetchNuGet { pname = "OpenTelemetry.Api"; version = "1.7.0-rc.1"; sha256 = "1i09vjjrimg0bwraamsjdqx886apscwj72skds3ysvc9c7n0hpl2"; })
+  (fetchNuGet { pname = "OpenTelemetry.Api"; version = "1.8.0"; sha256 = "0s402mz4gz1chlg29159awawpi6ms4ln5gdds01y38wx6cia6lb9"; })
+  (fetchNuGet { pname = "OpenTelemetry.Api"; version = "1.8.1"; sha256 = "0c2dvnnnizn5g50js336lkgfxh6klcdb0h8pppf68v3liwlhxly5"; })
+  (fetchNuGet { pname = "OpenTelemetry.Api.ProviderBuilderExtensions"; version = "1.7.0-rc.1"; sha256 = "1ayy2q9cg6482ahvz3cx7a3cikjrnmr5kr7yk9qnbbwy0wfmb6gw"; })
+  (fetchNuGet { pname = "OpenTelemetry.Api.ProviderBuilderExtensions"; version = "1.8.0"; sha256 = "1vhl02w068ynhpak0pyjn2xmrnisl9m73lmsckwkncrhinplw7hz"; })
+  (fetchNuGet { pname = "OpenTelemetry.Api.ProviderBuilderExtensions"; version = "1.8.1"; sha256 = "0lys1l0qsna2h82j2rbxi5fc8barrq43fs0lradr85r7sy3x91cg"; })
+  (fetchNuGet { pname = "OpenTelemetry.Exporter.Prometheus.AspNetCore"; version = "1.7.0-rc.1"; sha256 = "1777nbj78yppmqmwvv0bsl4l0vp8lfc5fpsdmknf6wl354f0z1f8"; })
+  (fetchNuGet { pname = "OpenTelemetry.Extensions.Hosting"; version = "1.8.1"; sha256 = "01vi9sqb2j25i6926c581w067nadf4q4hs0hkwjg8wpzhxz0n3xq"; })
+  (fetchNuGet { pname = "OpenTelemetry.Instrumentation.AspNetCore"; version = "1.8.1"; sha256 = "0s5kxqjhmwm2p2sblmmsavvmknqb8yr0b07ngq8hk0w8b48kyc0h"; })
+  (fetchNuGet { pname = "OpenTelemetry.Instrumentation.Http"; version = "1.8.1"; sha256 = "0p3mw08vi9ljf06239n8b1hfj0cqqb198qn89sf39mdjsy13ca95"; })
+  (fetchNuGet { pname = "OpenTelemetry.Instrumentation.Runtime"; version = "1.8.1"; sha256 = "0j2i01378848nvib1krk948lp74x8ykgspka05g37a3s284p1nyd"; })
   (fetchNuGet { pname = "protobuf-net"; version = "3.2.30"; sha256 = "08bjdn8dbqpzn5c9fw89y5766irwplgyzhyxcrjzpywkwpj75r4i"; })
   (fetchNuGet { pname = "protobuf-net.Core"; version = "3.2.30"; sha256 = "01mgw4s0b2vxf55v6fa3n5l9jwk6bkl60aaqv7azl198wwslkjhq"; })
   (fetchNuGet { pname = "SteamKit2"; version = "3.0.0-alpha.1"; sha256 = "01lrbkbpfqdkhba9hsfg9fqyh1sa9r2cp54r2wlb83zfr3f5q8l8"; })
-  (fetchNuGet { pname = "Swashbuckle.AspNetCore"; version = "6.5.0"; sha256 = "0k61chpz5j59s1yax28vx0mppx20ff8vg8grwja112hfrzj1f45n"; })
-  (fetchNuGet { pname = "Swashbuckle.AspNetCore.Annotations"; version = "6.5.0"; sha256 = "00n8s45xwbayj3p6x3awvs87vqvmzypny21nqc61m7a38d1asijv"; })
-  (fetchNuGet { pname = "Swashbuckle.AspNetCore.Swagger"; version = "6.5.0"; sha256 = "1s6axf6fin8sss3bvzp0s039rxrx71vx4rl559miw12bz3lld8kc"; })
-  (fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerGen"; version = "6.5.0"; sha256 = "0hq93gy5vyrigpdk9lhqwxglxwkbxa8ydllwcqs4bwfcsspzrs83"; })
-  (fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerUI"; version = "6.5.0"; sha256 = "17hx7kc187higm0gk67dndng3n7932sn3fwyj48l45cvyr3025h7"; })
+  (fetchNuGet { pname = "Swashbuckle.AspNetCore"; version = "6.6.2"; sha256 = "0lq774iggpvsmykbrplvv2a5z2ylsslv5wynmvpnlznd4lvgxb4h"; })
+  (fetchNuGet { pname = "Swashbuckle.AspNetCore.Annotations"; version = "6.6.2"; sha256 = "1snz71ws87kr8pz4c3zcla51mqbly015ib6b0y20xvkj25qx7gl8"; })
+  (fetchNuGet { pname = "Swashbuckle.AspNetCore.Swagger"; version = "6.6.2"; sha256 = "0j93y0krn5fzvji0k7g4cxi22b7j8n3brxw4698pjq2pqqf2d8qy"; })
+  (fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerGen"; version = "6.6.2"; sha256 = "00lar7246mncidflm15xz5b9hpni9bf8wj37dc0l2sj3hhv9nvwj"; })
+  (fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerUI"; version = "6.6.2"; sha256 = "0w0h2cs8n5avczzm5plzmkvkc6xn0pj425f4400fk21h8ysvhg8h"; })
   (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.7.1"; sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq"; })
   (fetchNuGet { pname = "System.Collections.Immutable"; version = "7.0.0"; sha256 = "1n9122cy6v3qhsisc9lzwa1m1j62b8pi2678nsmnlyvfpk0zdagm"; })
   (fetchNuGet { pname = "System.Composition"; version = "8.0.0"; sha256 = "0y7rp5qwwvh430nr0r15zljw01gny8yvr0gg6w5cmsk3q7q7a3dc"; })
@@ -141,5 +151,4 @@
   (fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "8.0.0"; sha256 = "1ysjx3b5ips41s32zacf4vs7ig41906mxrsbmykdzi0hvdmjkgbx"; })
   (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
   (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "8.0.0"; sha256 = "1lgdd78cik4qyvp2fggaa0kzxasw6kc9a6cjqw46siagrm0qnc3y"; })
-  (fetchNuGet { pname = "zxcvbn-core"; version = "7.0.92"; sha256 = "1pbi0n3za8zsnkbvq19njy4h4hy12a6rv4rknf4a2m1kdhxb3cgx"; })
 ]
diff --git a/pkgs/applications/misc/ArchiSteamFarm/web-ui/default.nix b/pkgs/applications/misc/ArchiSteamFarm/web-ui/default.nix
index 535f161e24723..004aadbe781ea 100644
--- a/pkgs/applications/misc/ArchiSteamFarm/web-ui/default.nix
+++ b/pkgs/applications/misc/ArchiSteamFarm/web-ui/default.nix
@@ -2,7 +2,7 @@
 
 buildNpmPackage rec {
   pname = "asf-ui";
-  version = "f70253c96e76fff5c5537c7be57a57de4e273eb8";
+  version = "78188871dfce90fb04096e9fd0b6ce2411312dae";
 
   src = fetchFromGitHub {
     owner = "JustArchiNET";
@@ -10,10 +10,10 @@ buildNpmPackage rec {
     # updated by the update script
     # this is always the commit that should be used with asf-ui from the latest asf version
     rev = version;
-    hash = "sha256-hw6M8O486vnWqdO4DqljOoGEevykpxhez3QL745VfIk=";
+    hash = "sha256-NBxN3pQFiDsRYp2Ro0WwWdGzKVjPTKx4/xWQrMNuv0M=";
   };
 
-  npmDepsHash = "sha256-GpGVM9c5yaLHi77qpShm30/uObg1TdLFCIhmFvLEhaU=";
+  npmDepsHash = "sha256-9pLbSOMfKwkWtzmKNmeKNrgdtzh3riWWJlrbuoDRUrw=";
 
   installPhase = ''
     runHook preInstall
@@ -25,7 +25,7 @@ buildNpmPackage rec {
   '';
 
   meta = with lib; {
-    description = "The official web interface for ASF";
+    description = "Official web interface for ASF";
     license = licenses.asl20;
     homepage = "https://github.com/JustArchiNET/ASF-ui";
     inherit (ArchiSteamFarm.meta) maintainers platforms;
diff --git a/pkgs/applications/misc/acpic/default.nix b/pkgs/applications/misc/acpic/default.nix
index 7a53e564c57c5..eeef043f106ee 100644
--- a/pkgs/applications/misc/acpic/default.nix
+++ b/pkgs/applications/misc/acpic/default.nix
@@ -27,7 +27,7 @@ python3Packages.buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "Daemon extending acpid event handling capabilities.";
+    description = "Daemon extending acpid event handling capabilities";
     mainProgram = "acpic";
     homepage = "https://github.com/psliwka/acpic";
     license = licenses.wtfpl;
diff --git a/pkgs/applications/misc/actiona/default.nix b/pkgs/applications/misc/actiona/default.nix
index 0d1500448a140..069473ce3c0fc 100644
--- a/pkgs/applications/misc/actiona/default.nix
+++ b/pkgs/applications/misc/actiona/default.nix
@@ -102,7 +102,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A cross-platform automation tool";
+    description = "Cross-platform automation tool";
     homepage = "https://github.com/Jmgr/actiona";
     license = lib.licenses.gpl3Only;
     mainProgram = "actiona";
diff --git a/pkgs/applications/misc/activate-linux/default.nix b/pkgs/applications/misc/activate-linux/default.nix
index 3515f190fe770..143e8cf0809f8 100644
--- a/pkgs/applications/misc/activate-linux/default.nix
+++ b/pkgs/applications/misc/activate-linux/default.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "The \"Activate Windows\" watermark ported to Linux";
+    description = "\"Activate Windows\" watermark ported to Linux";
     homepage = "https://github.com/MrGlockenspiel/activate-linux";
     license = licenses.gpl3;
     maintainers = with maintainers; [ alexnortung donovanglover ];
diff --git a/pkgs/applications/misc/albert/default.nix b/pkgs/applications/misc/albert/default.nix
index 8fe269ddab230..5b1e1aac20c1a 100644
--- a/pkgs/applications/misc/albert/default.nix
+++ b/pkgs/applications/misc/albert/default.nix
@@ -67,7 +67,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A fast and flexible keyboard launcher";
+    description = "Fast and flexible keyboard launcher";
     longDescription = ''
       Albert is a desktop agnostic launcher. Its goals are usability and beauty,
       performance and extensibility. It is written in C++ and based on the Qt
diff --git a/pkgs/applications/misc/anup/default.nix b/pkgs/applications/misc/anup/default.nix
index 94c21164184da..91cf5c9540a5b 100644
--- a/pkgs/applications/misc/anup/default.nix
+++ b/pkgs/applications/misc/anup/default.nix
@@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/Acizza/anup";
-    description = "An anime tracker for AniList featuring a TUI";
+    description = "Anime tracker for AniList featuring a TUI";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ natto1784 ];
     mainProgram = "anup";
diff --git a/pkgs/applications/misc/archivy/default.nix b/pkgs/applications/misc/archivy/default.nix
index c89bbde6569a5..c81d4f65d785e 100644
--- a/pkgs/applications/misc/archivy/default.nix
+++ b/pkgs/applications/misc/archivy/default.nix
@@ -9,7 +9,8 @@ let
       wtforms = super.wtforms.overridePythonAttrs (oldAttrs: rec {
         version = "2.3.1";
 
-        src = oldAttrs.src.override {
+        src = fetchPypi {
+          pname = "WTForms";
           inherit version;
           sha256 = "sha256-hhoTs65SHWcA2sOydxlwvTVKY7pwQ+zDqCtSiFlqGXI=";
         };
diff --git a/pkgs/applications/misc/artha/default.nix b/pkgs/applications/misc/artha/default.nix
index 0dfc3285c0615..ee22c2776c5a1 100644
--- a/pkgs/applications/misc/artha/default.nix
+++ b/pkgs/applications/misc/artha/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ dbus-glib gtk2 wordnet ];
 
   meta = with lib; {
-    description = "An offline thesaurus based on WordNet";
+    description = "Offline thesaurus based on WordNet";
     homepage = "https://artha.sourceforge.net";
     license = licenses.gpl2;
     maintainers = [ maintainers.goibhniu ];
diff --git a/pkgs/applications/misc/audio/soxr/default.nix b/pkgs/applications/misc/audio/soxr/default.nix
index 6762fbe25742f..f469ef5f0fed8 100644
--- a/pkgs/applications/misc/audio/soxr/default.nix
+++ b/pkgs/applications/misc/audio/soxr/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
-    description = "An audio resampling library";
+    description = "Audio resampling library";
     homepage = "https://soxr.sourceforge.net";
     license = licenses.lgpl21Plus;
     platforms = platforms.unix ++ platforms.windows;
diff --git a/pkgs/applications/misc/auto-multiple-choice/default.nix b/pkgs/applications/misc/auto-multiple-choice/default.nix
index c39430091e0d5..cd27d3584b70b 100644
--- a/pkgs/applications/misc/auto-multiple-choice/default.nix
+++ b/pkgs/applications/misc/auto-multiple-choice/default.nix
@@ -143,7 +143,7 @@ stdenv.mkDerivation (finalAttrs: rec {
   };
 
   meta = with lib; {
-    description = "Create and manage multiple choice questionnaires with automated marking.";
+    description = "Create and manage multiple choice questionnaires with automated marking";
     mainProgram = "auto-multiple-choice";
     longDescription = ''
       Create, manage and mark multiple-choice questionnaires.
diff --git a/pkgs/applications/misc/avizo/default.nix b/pkgs/applications/misc/avizo/default.nix
index 77d942797abcd..0b05e9ce5499f 100644
--- a/pkgs/applications/misc/avizo/default.nix
+++ b/pkgs/applications/misc/avizo/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A neat notification daemon for Wayland";
+    description = "Neat notification daemon for Wayland";
     homepage = "https://github.com/misterdanb/avizo";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/pkgs/applications/misc/azuredatastudio/default.nix b/pkgs/applications/misc/azuredatastudio/default.nix
index ff441f672a502..2c2c00d8b24ab 100644
--- a/pkgs/applications/misc/azuredatastudio/default.nix
+++ b/pkgs/applications/misc/azuredatastudio/default.nix
@@ -188,7 +188,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     maintainers = with lib.maintainers; [ xavierzwirtz ];
-    description = "A data management tool that enables working with SQL Server, Azure SQL DB and SQL DW";
+    description = "Data management tool that enables working with SQL Server, Azure SQL DB and SQL DW";
     homepage = "https://docs.microsoft.com/en-us/sql/azure-data-studio/download-azure-data-studio";
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfreeRedistributable;
diff --git a/pkgs/applications/misc/base16-universal-manager/default.nix b/pkgs/applications/misc/base16-universal-manager/default.nix
index 98a255f873983..44b521ae0d166 100644
--- a/pkgs/applications/misc/base16-universal-manager/default.nix
+++ b/pkgs/applications/misc/base16-universal-manager/default.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
   vendorHash = "sha256-U28OJ5heeiaj3aGAhR6eAXzfvFMehAUcHzyFkZBRK6c=";
 
   meta = with lib; {
-    description = "A universal manager to set base16 themes for any supported application";
+    description = "Universal manager to set base16 themes for any supported application";
     homepage = "https://github.com/pinpox/base16-universal-manager";
     license = licenses.mit;
     maintainers = with maintainers; [ jo1gi ];
diff --git a/pkgs/applications/misc/bashSnippets/default.nix b/pkgs/applications/misc/bashSnippets/default.nix
index f4e25200835b7..f0f82a6f626cd 100644
--- a/pkgs/applications/misc/bashSnippets/default.nix
+++ b/pkgs/applications/misc/bashSnippets/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A collection of small bash scripts for heavy terminal users";
+    description = "Collection of small bash scripts for heavy terminal users";
     homepage = "https://github.com/alexanderepstein/Bash-Snippets";
     license = licenses.mit;
     maintainers = [ ];
diff --git a/pkgs/applications/misc/bibletime/default.nix b/pkgs/applications/misc/bibletime/default.nix
index f49477fae234d..aa24399dbde84 100644
--- a/pkgs/applications/misc/bibletime/default.nix
+++ b/pkgs/applications/misc/bibletime/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "http://www.bibletime.info/";
-    description = "A powerful cross platform Bible study tool";
+    description = "Powerful cross platform Bible study tool";
     mainProgram = "bibletime";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ AndersonTorres ];
diff --git a/pkgs/applications/misc/bicon/default.nix b/pkgs/applications/misc/bicon/default.nix
index dfb424ea9da56..11f63b7a868f4 100644
--- a/pkgs/applications/misc/bicon/default.nix
+++ b/pkgs/applications/misc/bicon/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A bidirectional console";
+    description = "Bidirectional console";
     homepage =  "https://github.com/behdad/bicon";
     license = [ licenses.lgpl21 licenses.psfl licenses.bsd0 ];
     maintainers = [ ];
diff --git a/pkgs/applications/misc/bitwarden-menu/default.nix b/pkgs/applications/misc/bitwarden-menu/default.nix
index 5e067ac807d94..bfb1d646a9196 100644
--- a/pkgs/applications/misc/bitwarden-menu/default.nix
+++ b/pkgs/applications/misc/bitwarden-menu/default.nix
@@ -1,33 +1,40 @@
 { lib
 , buildPythonApplication
+, python3Packages
 , fetchPypi
 , pynput
-, xdg
+, xdg-base-dirs
 }:
 
 buildPythonApplication rec {
   pname = "bitwarden-menu";
-  version = "0.4.1";
-  format = "setuptools";
+  version = "0.4.3";
+  pyproject = true;
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-OC+MHEiUU6bDT2wSSDtu0KnwDwBpbLTBta0xjfuzlOI=";
+    pname = "bitwarden_menu";
+    inherit version;
+    hash = "sha256-tuIolWvQ/vKSJr6oUTL7ZLPgdkYsIZods5yQNNfWbWY=";
   };
 
+  nativeBuildInputs = with python3Packages; [
+    hatch-vcs
+    hatchling
+  ];
+
   propagatedBuildInputs = [
     pynput
-    xdg
+    xdg-base-dirs
   ];
 
   doCheck = false;
 
   meta = with lib; {
     changelog = "https://github.com/firecat53/bitwarden-menu/releases/tag/v${version}";
-    description = "Dmenu/Rofi frontend for managing Bitwarden vaults. Uses the Bitwarden CLI tool to interact with the Bitwarden database.";
+    description = "Dmenu/Rofi frontend for managing Bitwarden vaults. Uses the Bitwarden CLI tool to interact with the Bitwarden database";
     mainProgram = "bwm";
     homepage = "https://github.com/firecat53/bitwarden-menu";
     license = licenses.mit;
-    maintainers = [ ];
+    maintainers = with maintainers; [ aman9das ];
   };
 }
diff --git a/pkgs/applications/misc/bleachbit/default.nix b/pkgs/applications/misc/bleachbit/default.nix
index bb0e777186a28..57d55cedbc684 100644
--- a/pkgs/applications/misc/bleachbit/default.nix
+++ b/pkgs/applications/misc/bleachbit/default.nix
@@ -11,13 +11,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "bleachbit";
-  version = "4.4.0";
+  version = "4.6.0";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "0kqqfzq6bh03n7kxb9vd483bqi1cklfvj35a7h4iqk96sq1xv8z6";
+    sha256 = "sha256-UwUphuUeXFy71I+tmKnRH858dPrA2+xDxnG9h26a+kE=";
   };
 
   nativeBuildInputs = [
@@ -61,7 +61,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "http://bleachbit.sourceforge.net";
-    description = "A program to clean your computer";
+    description = "Program to clean your computer";
     longDescription = "BleachBit helps you easily clean your computer to free space and maintain privacy.";
     license = licenses.gpl3;
     maintainers = with maintainers; [ leonardoce mbprtpmnr ];
diff --git a/pkgs/applications/misc/blogc/default.nix b/pkgs/applications/misc/blogc/default.nix
index 86d52625dc2e1..4360cc6f20a04 100644
--- a/pkgs/applications/misc/blogc/default.nix
+++ b/pkgs/applications/misc/blogc/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A blog compiler";
+    description = "Blog compiler";
     license = licenses.bsd3;
     homepage = "https://blogc.rgm.io";
     platforms = platforms.unix;
diff --git a/pkgs/applications/misc/boatswain/default.nix b/pkgs/applications/misc/boatswain/default.nix
index 62912798b535b..5d2b1540aebe7 100644
--- a/pkgs/applications/misc/boatswain/default.nix
+++ b/pkgs/applications/misc/boatswain/default.nix
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "Control Elgato Stream Deck devices.";
+    description = "Control Elgato Stream Deck devices";
     homepage = "https://gitlab.gnome.org/World/boatswain";
     mainProgram = "boatswain";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/bottles/default.nix b/pkgs/applications/misc/bottles/default.nix
index 434ffd76852e8..495a945d32d3c 100644
--- a/pkgs/applications/misc/bottles/default.nix
+++ b/pkgs/applications/misc/bottles/default.nix
@@ -103,7 +103,7 @@ python3Packages.buildPythonApplication rec {
   passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
-    description = "An easy-to-use wineprefix manager";
+    description = "Easy-to-use wineprefix manager";
     homepage = "https://usebottles.com/";
     downloadPage = "https://github.com/bottlesdevs/Bottles/releases";
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/misc/calcure/default.nix b/pkgs/applications/misc/calcure/default.nix
index a9fd65a4d99df..bc82942ffccf7 100644
--- a/pkgs/applications/misc/calcure/default.nix
+++ b/pkgs/applications/misc/calcure/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "calcure";
-  version = "3.0.1";
+  version = "3.0.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "anufrievroman";
     repo = "calcure";
     rev = "refs/tags/${version}";
-    hash = "sha256-rs3TCZjMndeh2N7e+U62baLs+XqWK1Mk7KVnypSnWPg=";
+    hash = "sha256-2yWg/9NQxFIwoSLj1e0y1+tgKer8GtOmjzwlTRX/Q+c=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
diff --git a/pkgs/applications/misc/calcurse/default.nix b/pkgs/applications/misc/calcurse/default.nix
index 07faa52710dfd..49d8a9e42d421 100644
--- a/pkgs/applications/misc/calcurse/default.nix
+++ b/pkgs/applications/misc/calcurse/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A calendar and scheduling application for the command line";
+    description = "Calendar and scheduling application for the command line";
     longDescription = ''
       calcurse is a calendar and scheduling application for the command line. It helps
       keep track of events, appointments and everyday tasks. A configurable notification
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index 013f41d352581..0e19d15973651 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -32,11 +32,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "calibre";
-  version = "7.10.0";
+  version = "7.12.0";
 
   src = fetchurl {
     url = "https://download.calibre-ebook.com/${finalAttrs.version}/calibre-${finalAttrs.version}.tar.xz";
-    hash = "sha256-GvvvoqLBzapveKFSqlED471pUyRjLoYqU5YjN/L/nEs=";
+    hash = "sha256-XHkORTUx3+O+i2vbTiZAHI/0hY3xPIXvvNAVuXy4wzk=";
   };
 
   patches = [
diff --git a/pkgs/applications/misc/cardpeek/default.nix b/pkgs/applications/misc/cardpeek/default.nix
index 4cf13498be942..0b7630b53f099 100644
--- a/pkgs/applications/misc/cardpeek/default.nix
+++ b/pkgs/applications/misc/cardpeek/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/L1L1/cardpeek";
-    description = "A tool to read the contents of ISO7816 smart cards";
+    description = "Tool to read the contents of ISO7816 smart cards";
     license = licenses.gpl3Plus;
     platforms = with platforms; linux ++ darwin;
     maintainers = with maintainers; [ embr ];
diff --git a/pkgs/applications/misc/cartridges/default.nix b/pkgs/applications/misc/cartridges/default.nix
index 6481805cc9969..3674d61fafcae 100644
--- a/pkgs/applications/misc/cartridges/default.nix
+++ b/pkgs/applications/misc/cartridges/default.nix
@@ -13,13 +13,13 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "cartridges";
-  version = "2.8.4";
+  version = "2.8.5";
 
   src = fetchFromGitHub {
     owner = "kra-mo";
     repo = "cartridges";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-x6utIvU4LxM/CJogy5JrFrDTLFmXbgItgqtT+lM7FGA=";
+    hash = "sha256-7T+q3T8z8SCpAn3ayodZeETOsTwL+hhVWzY2JyBEoi4=";
   };
 
   pythonPath = with python3Packages; [
@@ -59,7 +59,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A GTK4 + Libadwaita game launcher";
+    description = "GTK4 + Libadwaita game launcher";
     mainProgram = "cartridges";
     longDescription = ''
       A simple game launcher for all of your games.
diff --git a/pkgs/applications/misc/cataract/build.nix b/pkgs/applications/misc/cataract/build.nix
index 9576ee2ebc6c7..860a49b5ce03e 100644
--- a/pkgs/applications/misc/cataract/build.nix
+++ b/pkgs/applications/misc/cataract/build.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "http://cgg.bzatek.net/";
-    description = "A simple static web photo gallery, designed to be clean and easily usable";
+    description = "Simple static web photo gallery, designed to be clean and easily usable";
     license = licenses.gpl2;
     maintainers = [ maintainers.matthiasbeyer ];
     platforms = with platforms; linux ++ darwin;
diff --git a/pkgs/applications/misc/chatblade/default.nix b/pkgs/applications/misc/chatblade/default.nix
index 9ec41576c1a85..7310b1c7f19d8 100644
--- a/pkgs/applications/misc/chatblade/default.nix
+++ b/pkgs/applications/misc/chatblade/default.nix
@@ -40,7 +40,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/npiv/chatblade/";
-    description = "A CLI Swiss Army Knife for ChatGPT";
+    description = "CLI Swiss Army Knife for ChatGPT";
     mainProgram = "chatblade";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ deejayem ];
diff --git a/pkgs/applications/misc/cherrytree/default.nix b/pkgs/applications/misc/cherrytree/default.nix
index 48d382e284ff3..f3429399b1633 100644
--- a/pkgs/applications/misc/cherrytree/default.nix
+++ b/pkgs/applications/misc/cherrytree/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An hierarchical note taking application";
+    description = "Hierarchical note taking application";
     mainProgram = "cherrytree";
     longDescription = ''
       Cherrytree is an hierarchical note taking application, featuring rich
diff --git a/pkgs/applications/misc/cipher/default.nix b/pkgs/applications/misc/cipher/default.nix
index a51279c73a261..f4416738e0e83 100644
--- a/pkgs/applications/misc/cipher/default.nix
+++ b/pkgs/applications/misc/cipher/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A simple application for encoding and decoding text, designed for elementary OS";
+    description = "Simple application for encoding and decoding text, designed for elementary OS";
     homepage = "https://github.com/arshubham/cipher";
     maintainers = with maintainers; [ xiorcale ] ++ teams.pantheon.members;
     platforms = platforms.linux;
diff --git a/pkgs/applications/misc/clight/default.nix b/pkgs/applications/misc/clight/default.nix
index 3b0189ddb5c1c..882c29f4b36e4 100644
--- a/pkgs/applications/misc/clight/default.nix
+++ b/pkgs/applications/misc/clight/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A C daemon that turns your webcam into a light sensor";
+    description = "C daemon that turns your webcam into a light sensor";
     homepage = "https://github.com/FedeDP/Clight";
     platforms = platforms.linux;
     license = licenses.gpl3;
diff --git a/pkgs/applications/misc/cobang/default.nix b/pkgs/applications/misc/cobang/default.nix
index 999bc4e0cc896..8759991d9b3b5 100644
--- a/pkgs/applications/misc/cobang/default.nix
+++ b/pkgs/applications/misc/cobang/default.nix
@@ -94,7 +94,7 @@ buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A QR code scanner desktop app for Linux";
+    description = "QR code scanner desktop app for Linux";
     homepage = "https://github.com/hongquan/CoBang";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ wolfangaukang ];
diff --git a/pkgs/applications/misc/cointop/default.nix b/pkgs/applications/misc/cointop/default.nix
index ca96bd3d2eec8..99841742786e1 100644
--- a/pkgs/applications/misc/cointop/default.nix
+++ b/pkgs/applications/misc/cointop/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "The fastest and most interactive terminal based UI application for tracking cryptocurrencies";
+    description = "Fastest and most interactive terminal based UI application for tracking cryptocurrencies";
     longDescription = ''
       cointop is a fast and lightweight interactive terminal based UI
       application for tracking and monitoring cryptocurrency coin stats in
diff --git a/pkgs/applications/misc/colorstorm/default.nix b/pkgs/applications/misc/colorstorm/default.nix
index ddb429dae33f7..63014eb51e60f 100644
--- a/pkgs/applications/misc/colorstorm/default.nix
+++ b/pkgs/applications/misc/colorstorm/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = {
-    description = "A color theme generator for editors and terminal emulators";
+    description = "Color theme generator for editors and terminal emulators";
     homepage = "https://github.com/benbusby/colorstorm";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ ];
diff --git a/pkgs/applications/misc/colort/default.nix b/pkgs/applications/misc/colort/default.nix
index 2716e2d464bcf..e7f3429fe8d7c 100644
--- a/pkgs/applications/misc/colort/default.nix
+++ b/pkgs/applications/misc/colort/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "A program for 'tinting' color values";
+    description = "Program for 'tinting' color values";
     homepage = "https://github.com/neeasade/colort";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/applications/misc/coltrane/default.nix b/pkgs/applications/misc/coltrane/default.nix
index 5d77f8dd6d567..f4c1ccb41e9ab 100644
--- a/pkgs/applications/misc/coltrane/default.nix
+++ b/pkgs/applications/misc/coltrane/default.nix
@@ -12,7 +12,7 @@ bundlerApp rec {
 
   meta = with lib; {
     homepage = "https://github.com/pedrozath/coltrane";
-    description = "A music calculation library/CLI";
+    description = "Music calculation library/CLI";
     longDescription = ''
       coltrane allows to search for Notes, Chords, Scales for
       guitar, bass, piano and ukelele
diff --git a/pkgs/applications/misc/comodoro/default.nix b/pkgs/applications/misc/comodoro/default.nix
index 2d780d5d514b6..b9fd5ea28ba9a 100644
--- a/pkgs/applications/misc/comodoro/default.nix
+++ b/pkgs/applications/misc/comodoro/default.nix
@@ -38,7 +38,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "CLI to manage your time.";
+    description = "CLI to manage your time";
     homepage = "https://pimalaya.org/comodoro/";
     changelog = "https://github.com/soywod/comodoro/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/applications/misc/conceal/default.nix b/pkgs/applications/misc/conceal/default.nix
index 177162499230c..8579e54f33fd2 100644
--- a/pkgs/applications/misc/conceal/default.nix
+++ b/pkgs/applications/misc/conceal/default.nix
@@ -36,7 +36,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A trash collector written in Rust";
+    description = "Trash collector written in Rust";
     homepage = "https://github.com/TD-Sky/conceal";
     license = licenses.mit;
     maintainers = with maintainers; [ jedsek kashw2 ];
diff --git a/pkgs/applications/misc/corectrl/default.nix b/pkgs/applications/misc/corectrl/default.nix
index a7397da8d7cf7..9240635aa5421 100644
--- a/pkgs/applications/misc/corectrl/default.nix
+++ b/pkgs/applications/misc/corectrl/default.nix
@@ -25,13 +25,13 @@
 
 stdenv.mkDerivation rec{
   pname = "corectrl";
-  version = "1.4.0";
+  version = "1.4.1";
 
   src = fetchFromGitLab {
     owner = "corectrl";
     repo = "corectrl";
     rev = "v${version}";
-    sha256 = "sha256-zTH7iSPN7VIhXvWFndOulvGnfUZ+uGWnW53WcnSW+e4=";
+    sha256 = "sha256-E2Dqe1IYXjFb/nShQX+ARZW/AWpNonRimb3yQ6/2CFw=";
   };
   patches = [
     ./polkit-dir.patch
diff --git a/pkgs/applications/misc/crow-translate/default.nix b/pkgs/applications/misc/crow-translate/default.nix
index 5209368a6b229..8f6bc27438faf 100644
--- a/pkgs/applications/misc/crow-translate/default.nix
+++ b/pkgs/applications/misc/crow-translate/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A simple and lightweight translator that allows to translate and speak text using Google, Yandex and Bing";
+    description = "Simple and lightweight translator that allows to translate and speak text using Google, Yandex and Bing";
     homepage = "https://crow-translate.github.io/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ sikmir ];
diff --git a/pkgs/applications/misc/ctodo/default.nix b/pkgs/applications/misc/ctodo/default.nix
index 315d5ffc34cf5..16c1ac90aea94 100644
--- a/pkgs/applications/misc/ctodo/default.nix
+++ b/pkgs/applications/misc/ctodo/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://ctodo.apakoh.dk/";
-    description = "A simple ncurses-based task list manager";
+    description = "Simple ncurses-based task list manager";
     license = licenses.mit;
     maintainers = [ maintainers.matthiasbeyer ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/misc/cubiomes-viewer/default.nix b/pkgs/applications/misc/cubiomes-viewer/default.nix
index fd07542b7fa90..35d2ab7117947 100644
--- a/pkgs/applications/misc/cubiomes-viewer/default.nix
+++ b/pkgs/applications/misc/cubiomes-viewer/default.nix
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     homepage = "https://github.com/Cubitect/cubiomes-viewer";
-    description = "A graphical Minecraft seed finder and map viewer";
+    description = "Graphical Minecraft seed finder and map viewer";
     mainProgram = "cubiomes-viewer";
     longDescription = ''
       Cubiomes Viewer provides a graphical interface for the efficient and flexible seed-finding
diff --git a/pkgs/applications/misc/cubocore-packages/coreaction/default.nix b/pkgs/applications/misc/cubocore-packages/coreaction/default.nix
index 818e9da4494ed..cd6363f5a1006 100644
--- a/pkgs/applications/misc/cubocore-packages/coreaction/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/coreaction/default.nix
@@ -24,7 +24,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A side bar for showing widgets from the C Suite";
+    description = "Side bar for showing widgets from the C Suite";
     mainProgram = "coreaction";
     homepage = "https://gitlab.com/cubocore/coreapps/coreaction";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/cubocore-packages/corefm/default.nix b/pkgs/applications/misc/cubocore-packages/corefm/default.nix
index 6bbd8ed8f7854..79e1e206ea02d 100644
--- a/pkgs/applications/misc/cubocore-packages/corefm/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/corefm/default.nix
@@ -23,7 +23,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A lightwight filemanager from the C Suite";
+    description = "Lightwight filemanager from the C Suite";
     mainProgram = "corefm";
     homepage = "https://gitlab.com/cubocore/coreapps/corefm";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/cubocore-packages/coregarage/default.nix b/pkgs/applications/misc/cubocore-packages/coregarage/default.nix
index 8a7050e5538ac..6c181da0b112d 100644
--- a/pkgs/applications/misc/cubocore-packages/coregarage/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/coregarage/default.nix
@@ -25,7 +25,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A settings manager for the C Suite";
+    description = "Settings manager for the C Suite";
     mainProgram = "coregarage";
     homepage = "https://gitlab.com/cubocore/coreapps/coregarage";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/cubocore-packages/corehunt/default.nix b/pkgs/applications/misc/cubocore-packages/corehunt/default.nix
index d802a6f448afd..1c4d643488eb5 100644
--- a/pkgs/applications/misc/cubocore-packages/corehunt/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/corehunt/default.nix
@@ -23,7 +23,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A file finder utility from the C Suite";
+    description = "File finder utility from the C Suite";
     mainProgram = "corehunt";
     homepage = "https://gitlab.com/cubocore/coreapps/corehunt";
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/misc/cubocore-packages/coreimage/default.nix b/pkgs/applications/misc/cubocore-packages/coreimage/default.nix
index cbb5fba861fb2..61e20afa5eeb0 100644
--- a/pkgs/applications/misc/cubocore-packages/coreimage/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/coreimage/default.nix
@@ -23,7 +23,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An image viewer from the C Suite";
+    description = "Image viewer from the C Suite";
     mainProgram = "coreimage";
     homepage = "https://gitlab.com/cubocore/coreapps/coreimage";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/cubocore-packages/coreinfo/default.nix b/pkgs/applications/misc/cubocore-packages/coreinfo/default.nix
index 6093c1176b808..32ccccf4b2a41 100644
--- a/pkgs/applications/misc/cubocore-packages/coreinfo/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/coreinfo/default.nix
@@ -26,7 +26,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A file information tool from the C Suite";
+    description = "File information tool from the C Suite";
     mainProgram = "coreinfo";
     homepage = "https://gitlab.com/cubocore/coreapps/coreinfo";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/cubocore-packages/corekeyboard/default.nix b/pkgs/applications/misc/cubocore-packages/corekeyboard/default.nix
index dcd05b4bf77f3..0a6b7b15e1424 100644
--- a/pkgs/applications/misc/cubocore-packages/corekeyboard/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/corekeyboard/default.nix
@@ -26,7 +26,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A virtual keyboard for X11 from the C Suite";
+    description = "Virtual keyboard for X11 from the C Suite";
     mainProgram = "corekeyboard";
     homepage = "https://gitlab.com/cubocore/coreapps/corekeyboard";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/cubocore-packages/corepad/default.nix b/pkgs/applications/misc/cubocore-packages/corepad/default.nix
index 8db13988b0b0b..3a1cd9f87c1c8 100644
--- a/pkgs/applications/misc/cubocore-packages/corepad/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/corepad/default.nix
@@ -23,7 +23,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A document editor from the C Suite";
+    description = "Document editor from the C Suite";
     mainProgram = "corepad";
     homepage = "https://gitlab.com/cubocore/coreapps/corepad";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/cubocore-packages/corepaint/default.nix b/pkgs/applications/misc/cubocore-packages/corepaint/default.nix
index 345a9b26e666c..01a495bfcbaf8 100644
--- a/pkgs/applications/misc/cubocore-packages/corepaint/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/corepaint/default.nix
@@ -23,7 +23,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A paint app from the C Suite";
+    description = "Paint app from the C Suite";
     mainProgram = "corepaint";
     homepage = "https://gitlab.com/cubocore/coreapps/corepaint";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/cubocore-packages/corepdf/default.nix b/pkgs/applications/misc/cubocore-packages/corepdf/default.nix
index 242422fd8a3f5..a343f84baf8c7 100644
--- a/pkgs/applications/misc/cubocore-packages/corepdf/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/corepdf/default.nix
@@ -25,7 +25,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A PDF viewer from the C Suite";
+    description = "PDF viewer from the C Suite";
     mainProgram = "corepdf";
     homepage = "https://gitlab.com/cubocore/coreapps/corepdf";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/cubocore-packages/corepins/default.nix b/pkgs/applications/misc/cubocore-packages/corepins/default.nix
index cb31415ef5d04..e7306691b02c0 100644
--- a/pkgs/applications/misc/cubocore-packages/corepins/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/corepins/default.nix
@@ -23,7 +23,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A bookmarking app from the C Suite";
+    description = "Bookmarking app from the C Suite";
     mainProgram = "corepins";
     homepage = "https://gitlab.com/cubocore/coreapps/corepins";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/cubocore-packages/corerenamer/default.nix b/pkgs/applications/misc/cubocore-packages/corerenamer/default.nix
index 6d48c65fc95fd..92d8cd04c95b4 100644
--- a/pkgs/applications/misc/cubocore-packages/corerenamer/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/corerenamer/default.nix
@@ -23,7 +23,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A batch file renamer from the C Suite";
+    description = "Batch file renamer from the C Suite";
     mainProgram = "corerenamer";
     homepage = "https://gitlab.com/cubocore/coreapps/corerenamer";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/cubocore-packages/coreshot/default.nix b/pkgs/applications/misc/cubocore-packages/coreshot/default.nix
index 3603becfc1e32..ed9339251756a 100644
--- a/pkgs/applications/misc/cubocore-packages/coreshot/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/coreshot/default.nix
@@ -24,7 +24,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A screen capture utility from the C Suite";
+    description = "Screen capture utility from the C Suite";
     mainProgram = "coreshot";
     homepage = "https://gitlab.com/cubocore/coreapps/coreshot";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/cubocore-packages/corestats/default.nix b/pkgs/applications/misc/cubocore-packages/corestats/default.nix
index e01691b9f6182..a6d12a0d2c28a 100644
--- a/pkgs/applications/misc/cubocore-packages/corestats/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/corestats/default.nix
@@ -24,7 +24,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A system resource viewer from the C Suite";
+    description = "System resource viewer from the C Suite";
     mainProgram = "corestats";
     homepage = "https://gitlab.com/cubocore/coreapps/corestats";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/cubocore-packages/corestuff/default.nix b/pkgs/applications/misc/cubocore-packages/corestuff/default.nix
index 933a09bbd188d..08b8629da6525 100644
--- a/pkgs/applications/misc/cubocore-packages/corestuff/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/corestuff/default.nix
@@ -31,7 +31,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An activity viewer from the C Suite";
+    description = "Activity viewer from the C Suite";
     mainProgram = "corestuff";
     homepage = "https://gitlab.com/cubocore/coreapps/corestuff";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/cubocore-packages/coreterminal/default.nix b/pkgs/applications/misc/cubocore-packages/coreterminal/default.nix
index c4a8ea5c90e96..d2dc3599bd34a 100644
--- a/pkgs/applications/misc/cubocore-packages/coreterminal/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/coreterminal/default.nix
@@ -35,7 +35,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A terminal emulator from the C Suite";
+    description = "Terminal emulator from the C Suite";
     mainProgram = "coreterminal";
     homepage = "https://gitlab.com/cubocore/coreapps/coreterminal";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/cubocore-packages/coretime/default.nix b/pkgs/applications/misc/cubocore-packages/coretime/default.nix
index b8ac4c39a1a3a..626b7cf8eda41 100644
--- a/pkgs/applications/misc/cubocore-packages/coretime/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/coretime/default.nix
@@ -24,7 +24,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A time related task manager from the C Suite";
+    description = "Time related task manager from the C Suite";
     mainProgram = "coretime";
     homepage = "https://gitlab.com/cubocore/coreapps/coretime";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/cubocore-packages/libcprime/default.nix b/pkgs/applications/misc/cubocore-packages/libcprime/default.nix
index 90df8e546e7bd..d4b15ead4ec00 100644
--- a/pkgs/applications/misc/cubocore-packages/libcprime/default.nix
+++ b/pkgs/applications/misc/cubocore-packages/libcprime/default.nix
@@ -35,7 +35,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A library for bookmarking, saving recent activites, managing settings of C-Suite";
+    description = "Library for bookmarking, saving recent activites, managing settings of C-Suite";
     homepage = "https://gitlab.com/cubocore/coreapps/libcprime";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dan4ik605743 ];
diff --git a/pkgs/applications/misc/curaengine/default.nix b/pkgs/applications/misc/curaengine/default.nix
index 1155ce8e8e8e1..70283d49fea93 100644
--- a/pkgs/applications/misc/curaengine/default.nix
+++ b/pkgs/applications/misc/curaengine/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A powerful, fast and robust engine for processing 3D models into 3D printing instruction";
+    description = "Powerful, fast and robust engine for processing 3D models into 3D printing instruction";
     homepage = "https://github.com/Ultimaker/CuraEngine";
     license = licenses.agpl3Only;
     platforms = platforms.linux;
diff --git a/pkgs/applications/misc/darkman/default.nix b/pkgs/applications/misc/darkman/default.nix
index 1b33b9fac3ed8..33918b41329ba 100644
--- a/pkgs/applications/misc/darkman/default.nix
+++ b/pkgs/applications/misc/darkman/default.nix
@@ -1,29 +1,38 @@
-{ lib, fetchFromGitLab, buildGoModule, scdoc, nix-update-script }:
+{ lib
+, fetchFromGitLab
+, buildGoModule
+, scdoc
+, nix-update-script
+}:
 
 buildGoModule rec {
   pname = "darkman";
-  version = "1.5.4";
+  version = "2.0.1";
 
   src = fetchFromGitLab {
     owner = "WhyNotHugo";
     repo = "darkman";
     rev = "v${version}";
-    sha256 = "sha256-6SNXVe6EfVwcXH9O6BxNw+v4/uhKhCtVS3XE2GTc2Sc=";
+    sha256 = "sha256-FaEpVy/0PqY5Bmw00hMyFZb9wcwYwEuCKMatYN8Xk3o=";
   };
 
-  vendorHash = "sha256-xEPmNnaDwFU4l2G4cMvtNeQ9KneF5g9ViQSFrDkrafY=";
-
-  nativeBuildInputs = [ scdoc ];
+  patches = [
+    ./go-mod.patch
+    ./makefile.patch
+  ];
 
   postPatch = ''
     substituteInPlace darkman.service \
-      --replace "/usr/bin/darkman" "$out/bin/darkman"
+      --replace-fail /usr/bin/darkman $out/bin/darkman
     substituteInPlace contrib/dbus/nl.whynothugo.darkman.service \
-      --replace "/usr/bin/darkman" "$out/bin/darkman"
+      --replace-fail /usr/bin/darkman $out/bin/darkman
     substituteInPlace contrib/dbus/org.freedesktop.impl.portal.desktop.darkman.service \
-      --replace "/usr/bin/darkman" "$out/bin/darkman"
+      --replace-fail /usr/bin/darkman $out/bin/darkman
   '';
 
+  vendorHash = "sha256-3lILSVm7mtquCdR7+cDMuDpHihG+gDJTcQa1cM2o7ZU=";
+  nativeBuildInputs = [ scdoc ];
+
   buildPhase = ''
     runHook preBuild
     make build
@@ -32,6 +41,7 @@ buildGoModule rec {
 
   installPhase = ''
     runHook preInstall
+    install -Dm755 darkman -t $out/bin
     make PREFIX=$out install
     runHook postInstall
   '';
diff --git a/pkgs/applications/misc/darkman/go-mod.patch b/pkgs/applications/misc/darkman/go-mod.patch
new file mode 100644
index 0000000000000..8fbb26dfc5a03
--- /dev/null
+++ b/pkgs/applications/misc/darkman/go-mod.patch
@@ -0,0 +1,28 @@
+diff --git a/go.mod b/go.mod
+index 2d396a4..c4fea4b 100644
+--- a/go.mod
++++ b/go.mod
+@@ -1,14 +1,19 @@
+ module gitlab.com/WhyNotHugo/darkman
+ 
+-go 1.16
++go 1.18
+ 
+ require (
+ 	github.com/adrg/xdg v0.3.3
+ 	github.com/godbus/dbus/v5 v5.0.4
+-	github.com/kr/pretty v0.2.0 // indirect
+ 	github.com/rxwycdh/rxhash v0.0.0-20230131062142-10b7a38b400d
+ 	github.com/sj14/astral v0.1.2
+-	github.com/spf13/cobra v1.7.0 // indirect
+-	gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
++	github.com/spf13/cobra v1.7.0
+ 	gopkg.in/yaml.v3 v3.0.1
+ )
++
++require (
++	github.com/inconshreveable/mousetrap v1.1.0 // indirect
++	github.com/kr/pretty v0.2.0 // indirect
++	github.com/spf13/pflag v1.0.5 // indirect
++	gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
++)
diff --git a/pkgs/applications/misc/darkman/makefile.patch b/pkgs/applications/misc/darkman/makefile.patch
new file mode 100644
index 0000000000000..1374c37cf061c
--- /dev/null
+++ b/pkgs/applications/misc/darkman/makefile.patch
@@ -0,0 +1,12 @@
+diff --git a/Makefile b/Makefile
+index 9048e45..0fb1f5a 100644
+--- a/Makefile
++++ b/Makefile
+@@ -26,7 +26,6 @@ site/index.html: darkman.1
+ 	mandoc -T html -O style=man-style.css < darkman.1 > site/index.html
+ 
+ install: build
+-	@install -Dm755 darkman 	${DESTDIR}${PREFIX}/bin/darkman
+ 	@install -Dm644 darkman.service	${DESTDIR}${PREFIX}/lib/systemd/user/darkman.service
+ 	@install -Dm644 darkman.1	${DESTDIR}${PREFIX}/share/man/man1/darkman.1
+ 	@install -Dm644 LICENCE 	${DESTDIR}${PREFIX}/share/licenses/darkman/LICENCE
diff --git a/pkgs/applications/misc/deadd-notification-center/default.nix b/pkgs/applications/misc/deadd-notification-center/default.nix
index 5551ebe1750f7..e6fed669c72d6 100644
--- a/pkgs/applications/misc/deadd-notification-center/default.nix
+++ b/pkgs/applications/misc/deadd-notification-center/default.nix
@@ -55,7 +55,7 @@ in mkDerivation rec {
     echo "${systemd-service}" > $out/lib/systemd/user/deadd-notification-center.service
   '';
 
-  description = "A haskell-written notification center for users that like a desktop with style";
+  description = "Haskell-written notification center for users that like a desktop with style";
   homepage = "https://github.com/phuhl/linux_notification_center";
   license = lib.licenses.bsd3;
   maintainers = with lib.maintainers; [ melkor333 sna ];
diff --git a/pkgs/applications/misc/deckmaster/default.nix b/pkgs/applications/misc/deckmaster/default.nix
index 03e5e05852ad0..2261b7c516bc9 100644
--- a/pkgs/applications/misc/deckmaster/default.nix
+++ b/pkgs/applications/misc/deckmaster/default.nix
@@ -37,7 +37,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "An application to control your Elgato Stream Deck on Linux";
+    description = "Application to control your Elgato Stream Deck on Linux";
     mainProgram = "deckmaster";
     homepage = "https://github.com/muesli/deckmaster";
     changelog = "https://github.com/muesli/deckmaster/releases/tag/v${version}";
diff --git a/pkgs/applications/misc/deco/default.nix b/pkgs/applications/misc/deco/default.nix
index a39f6b4f0bad1..5efa22e8843c9 100644
--- a/pkgs/applications/misc/deco/default.nix
+++ b/pkgs/applications/misc/deco/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/ebzzry/deco";
-    description = "A simple root image setter";
+    description = "Simple root image setter";
     license = licenses.mit;
     maintainers = [ maintainers.ebzzry ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/misc/devdocs-desktop/default.nix b/pkgs/applications/misc/devdocs-desktop/default.nix
index c6307cb3fa9a1..21cf63adc8948 100644
--- a/pkgs/applications/misc/devdocs-desktop/default.nix
+++ b/pkgs/applications/misc/devdocs-desktop/default.nix
@@ -24,7 +24,7 @@ in appimageTools.wrapType2 rec {
   '';
 
   meta = with lib; {
-    description = "A full-featured desktop app for DevDocs.io";
+    description = "Full-featured desktop app for DevDocs.io";
     longDescription = ''
       DevDocs.io combines multiple API documentations in a fast, organized, and searchable interface. This is an unofficial desktop app for it.
     '';
diff --git a/pkgs/applications/misc/devilspie2/default.nix b/pkgs/applications/misc/devilspie2/default.nix
index 8ea982f6059f9..830bfd19471a2 100644
--- a/pkgs/applications/misc/devilspie2/default.nix
+++ b/pkgs/applications/misc/devilspie2/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A window matching utility";
+    description = "Window matching utility";
     longDescription = ''
       Devilspie2 is a window matching utility, allowing the user to
       perform scripted actions on windows as they are created. For
diff --git a/pkgs/applications/misc/dialect/default.nix b/pkgs/applications/misc/dialect/default.nix
index 9eb7db6212cc7..8ce0a162174bc 100644
--- a/pkgs/applications/misc/dialect/default.nix
+++ b/pkgs/applications/misc/dialect/default.nix
@@ -2,7 +2,6 @@
 , fetchFromGitHub
 , wrapGAppsHook4
 , python3
-, appstream-glib
 , blueprint-compiler
 , desktop-file-utils
 , meson
@@ -15,21 +14,21 @@
 , libsoup_3
 , glib-networking
 , libadwaita
+, libsecret
 , nix-update-script
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "dialect";
-  version = "2.3.0";
-
-  format = "other";
+  version = "2.4.1";
+  pyproject = false; # built with meson
 
   src = fetchFromGitHub {
     owner = "dialect-app";
     repo = "dialect";
     rev = version;
     fetchSubmodules = true;
-    hash = "sha256-A6jZHcSzHSmHLvyegyzxjQ6+jL6rLb7oefhryXoSrH4=";
+    hash = "sha256-WEeTdUdhDSfStu+rBYcuk6miuh5e0AsodbyF93Mg4mo=";
   };
 
   nativeBuildInputs = [
@@ -51,6 +50,7 @@ python3.pkgs.buildPythonApplication rec {
     libsoup_3
     glib-networking
     libadwaita
+    libsecret
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -74,12 +74,12 @@ python3.pkgs.buildPythonApplication rec {
 
   passthru.updateScript = nix-update-script { };
 
-  meta = with lib; {
+  meta = {
     homepage = "https://github.com/dialect-app/dialect";
-    description = "A translation app for GNOME";
-    maintainers = with maintainers; [ aleksana ];
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
+    description = "Translation app for GNOME";
+    maintainers = with lib.maintainers; [ aleksana ];
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.linux;
     mainProgram = "dialect";
   };
 }
diff --git a/pkgs/applications/misc/diebahn/default.nix b/pkgs/applications/misc/diebahn/default.nix
index eb45e2c4eba0a..30a22e1c7be4f 100644
--- a/pkgs/applications/misc/diebahn/default.nix
+++ b/pkgs/applications/misc/diebahn/default.nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     changelog = "https://gitlab.com/schmiddi-on-mobile/railway/-/blob/${src.rev}/CHANGELOG.md";
-    description = "Travel with all your train information in one place. Also known as Railway.";
+    description = "Travel with all your train information in one place. Also known as Railway";
     homepage = "https://gitlab.com/schmiddi-on-mobile/railway";
     license = lib.licenses.gpl3Plus;
     mainProgram = "diebahn";
diff --git a/pkgs/applications/misc/digitalbitbox/default.nix b/pkgs/applications/misc/digitalbitbox/default.nix
index 8c8f4a1c94670..418c4996eb3b3 100644
--- a/pkgs/applications/misc/digitalbitbox/default.nix
+++ b/pkgs/applications/misc/digitalbitbox/default.nix
@@ -121,7 +121,7 @@ in mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A QT based application for the Digital Bitbox hardware wallet";
+    description = "QT based application for the Digital Bitbox hardware wallet";
     longDescription = ''
       Digital Bitbox provides dbb-app, a GUI tool, and dbb-cli, a CLI tool, to manage Digital Bitbox devices.
 
diff --git a/pkgs/applications/misc/djvulibre/default.nix b/pkgs/applications/misc/djvulibre/default.nix
index 073a6e348c2be..584ede1831fb0 100644
--- a/pkgs/applications/misc/djvulibre/default.nix
+++ b/pkgs/applications/misc/djvulibre/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "The big set of CLI tools to make/modify/optimize/show/export DJVU files";
+    description = "Big set of CLI tools to make/modify/optimize/show/export DJVU files";
     homepage = "https://djvu.sourceforge.net";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ Anton-Latukha ];
diff --git a/pkgs/applications/misc/dmenu-rs/default.nix b/pkgs/applications/misc/dmenu-rs/default.nix
index 3340171c2da6c..37ddb8922a830 100644
--- a/pkgs/applications/misc/dmenu-rs/default.nix
+++ b/pkgs/applications/misc/dmenu-rs/default.nix
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A pixel perfect port of dmenu, rewritten in Rust with extensive plugin support";
+    description = "Pixel perfect port of dmenu, rewritten in Rust with extensive plugin support";
     homepage = "https://github.com/Shizcow/dmenu-rs";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ benjaminedwardwebb ];
diff --git a/pkgs/applications/misc/dmenu/default.nix b/pkgs/applications/misc/dmenu/default.nix
index 890c1886a4177..109befe7594ce 100644
--- a/pkgs/applications/misc/dmenu/default.nix
+++ b/pkgs/applications/misc/dmenu/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A generic, highly customizable, and efficient menu for the X Window System";
+    description = "Generic, highly customizable, and efficient menu for the X Window System";
     homepage = "https://tools.suckless.org/dmenu";
     license = licenses.mit;
     maintainers = with maintainers; [ pSub globin qusic ];
diff --git a/pkgs/applications/misc/dmenu/wayland.nix b/pkgs/applications/misc/dmenu/wayland.nix
index 35a50481bea7c..2e4e62acae634 100644
--- a/pkgs/applications/misc/dmenu/wayland.nix
+++ b/pkgs/applications/misc/dmenu/wayland.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     license = licenses.mit;
     platforms = platforms.linux;
-    description = "An efficient dynamic menu for wayland (wlroots)";
+    description = "Efficient dynamic menu for wayland (wlroots)";
     homepage = "https://github.com/nyyManni/dmenu-wayland";
     maintainers = with maintainers; [ rewine ];
     mainProgram = "dmenu-wl";
diff --git a/pkgs/applications/misc/dnd-tools/default.nix b/pkgs/applications/misc/dnd-tools/default.nix
index 130b4bd63126a..4959f29ec7e14 100644
--- a/pkgs/applications/misc/dnd-tools/default.nix
+++ b/pkgs/applications/misc/dnd-tools/default.nix
@@ -21,7 +21,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/savagezen/dnd-tools";
-    description = "A set of interactive command line tools for Dungeons and Dragons 5th Edition";
+    description = "Set of interactive command line tools for Dungeons and Dragons 5th Edition";
     mainProgram = "dnd-tools";
     license = licenses.agpl3Only;
     maintainers = [ maintainers.urlordjames ];
diff --git a/pkgs/applications/misc/doctave/default.nix b/pkgs/applications/misc/doctave/default.nix
index 3ebe50311d575..487d8340265de 100644
--- a/pkgs/applications/misc/doctave/default.nix
+++ b/pkgs/applications/misc/doctave/default.nix
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A batteries-included developer documentation site generator";
+    description = "Batteries-included developer documentation site generator";
     homepage = "https://github.com/doctave/doctave";
     changelog = "https://github.com/doctave/doctave/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/applications/misc/doing/default.nix b/pkgs/applications/misc/doing/default.nix
index c5114eccc77fd..2c49361c2bb4c 100644
--- a/pkgs/applications/misc/doing/default.nix
+++ b/pkgs/applications/misc/doing/default.nix
@@ -11,7 +11,7 @@ bundlerEnv {
   passthru.updateScript = bundlerUpdateScript "doing";
 
   meta = with lib; {
-    description = "A command line tool for keeping track of what you’re doing and tracking what you’ve done";
+    description = "Command line tool for keeping track of what you’re doing and tracking what you’ve done";
     longDescription = ''
       doing is a basic CLI for adding and listing "what was I doing" reminders
       in a TaskPaper-formatted text file. It allows for multiple
diff --git a/pkgs/applications/misc/done/default.nix b/pkgs/applications/misc/done/default.nix
index cbc23dc9eb4f1..47238cd9cb9cf 100644
--- a/pkgs/applications/misc/done/default.nix
+++ b/pkgs/applications/misc/done/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "The ultimate task management solution for seamless organization and efficiency";
+    description = "Ultimate task management solution for seamless organization and efficiency";
     homepage = "https://done.edfloreshz.dev/";
     changelog = "https://github.com/done-devs/done/blob/${src.rev}/CHANGES.md";
     license = licenses.mpl20;
diff --git a/pkgs/applications/misc/dozenal/default.nix b/pkgs/applications/misc/dozenal/default.nix
index c0bedb728aa62..5991f260f53ea 100644
--- a/pkgs/applications/misc/dozenal/default.nix
+++ b/pkgs/applications/misc/dozenal/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   postInstall = "rm $out/bin/gdozdc";
 
   meta = {
-    description = "A complete suite of dozenal (base twelve) programs";
+    description = "Complete suite of dozenal (base twelve) programs";
     longDescription = ''
       Programs
 
diff --git a/pkgs/applications/misc/dwmbar/default.nix b/pkgs/applications/misc/dwmbar/default.nix
index 0d942eff73d7a..3f7e9c821a2ed 100644
--- a/pkgs/applications/misc/dwmbar/default.nix
+++ b/pkgs/applications/misc/dwmbar/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/thytom/dwmbar";
-    description = "A Modular Status Bar for dwm";
+    description = "Modular Status Bar for dwm";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ baitinq ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/misc/electron-cash/default.nix b/pkgs/applications/misc/electron-cash/default.nix
index f8914a7bb8f45..910e21528eb51 100644
--- a/pkgs/applications/misc/electron-cash/default.nix
+++ b/pkgs/applications/misc/electron-cash/default.nix
@@ -84,7 +84,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A Bitcoin Cash SPV Wallet";
+    description = "Bitcoin Cash SPV Wallet";
     mainProgram = "electron-cash";
     longDescription = ''
       An easy-to-use Bitcoin Cash client featuring wallets generated from
diff --git a/pkgs/applications/misc/electrum/default.nix b/pkgs/applications/misc/electrum/default.nix
index 8250ebfe289b9..96afa4d39a1b1 100644
--- a/pkgs/applications/misc/electrum/default.nix
+++ b/pkgs/applications/misc/electrum/default.nix
@@ -2,7 +2,6 @@
 , stdenv
 , fetchurl
 , fetchFromGitHub
-, fetchpatch
 , wrapQtAppsHook
 , python3
 , zbar
@@ -14,7 +13,7 @@
 }:
 
 let
-  version = "4.5.4";
+  version = "4.5.5";
 
   python = python3.override {
     self = python;
@@ -47,7 +46,7 @@ let
     owner = "spesmilo";
     repo = "electrum";
     rev = version;
-    sha256 = "sha256-fDu2PlEQOF7ftlS6dYw15S2XiAx+D/bng4zC9ELj6uk=";
+    sha256 = "sha256-CbhI/q+zjk9odxuvdzpogi046FqkedJooiQwS+WAkJ8=";
 
     postFetch = ''
       mv $out ./all
@@ -63,7 +62,7 @@ python.pkgs.buildPythonApplication {
 
   src = fetchurl {
     url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz";
-    sha256 = "sha256-lDuwXhOjcbCx8x/oIoigrklDwCbhn1trf5lDf/X/1Qc=";
+    sha256 = "1jiagz9avkbd158pcip7p4wz0pdsxi94ndvg5p8afvshb32aqwav";
   };
 
   postUnpack = ''
@@ -99,7 +98,7 @@ python.pkgs.buildPythonApplication {
     keepkey
     trezor
     bitbox02
-    cbor
+    cbor2
     pyserial
   ] ++ lib.optionals enableQt [
     pyqt5
@@ -110,30 +109,7 @@ python.pkgs.buildPythonApplication {
     pyqt6
   ];
 
-  patches = [
-    # aiorpcx 0.23.1 compatibility
-    # Note: this patches `/run_electrum`.
-    # In the source repo, `/electrum/electrum`
-    # is a symlink to `../run_electrum`,
-    # so that path would also be affected by the patch.
-    # However, in the distribution tarball used here,
-    # `/electrum/electrum` is simply an exact copy of
-    # `/run_electrum` and is thereby *not* affected.
-    # So we have to manually copy the patched `/run_electrum`
-    # over `/electrum/electrum` after the patching (see below).
-    # XXX remove the copy command in `postPatch`
-    # as soon as the patch itself is removed!
-    (fetchpatch {
-      url = "https://github.com/spesmilo/electrum/commit/5f95d919dfa9868eaf82889903b94faa8c6443e0.patch";
-      hash = "sha256-cEkduLsL6A8qPhXS2KPQWzVtkQPYQhHSbuwQ2SnanHw=";
-    })
-  ];
-
   postPatch = ''
-    # copy the patched `/run_electrum` over `/electrum/electrum`
-    # so the aiorpcx compatibility patch is used
-    cp run_electrum electrum/electrum
-
     # make compatible with protobuf4 by easing dependencies ...
     substituteInPlace ./contrib/requirements/requirements.txt \
       --replace "protobuf>=3.20,<4" "protobuf>=3.20"
diff --git a/pkgs/applications/misc/elfx86exts/default.nix b/pkgs/applications/misc/elfx86exts/default.nix
index 7e11d90f5d2ee..727102b9dccb7 100644
--- a/pkgs/applications/misc/elfx86exts/default.nix
+++ b/pkgs/applications/misc/elfx86exts/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-NH7QK8a+ndhZGlLa3gWlnQdBQil1pi2AAi5TtFgkVf0=";
 
   meta = with lib; {
-    description = "Decode x86 binaries and print out which instruction set extensions they use.";
+    description = "Decode x86 binaries and print out which instruction set extensions they use";
     longDescription = ''
       Disassemble a binary containing x86 instructions and print out which extensions it uses.
       Despite the utterly misleading name, this tool supports ELF and MachO binaries, and
diff --git a/pkgs/applications/misc/emem/default.nix b/pkgs/applications/misc/emem/default.nix
index ef429ac4c0845..043be629fd28e 100644
--- a/pkgs/applications/misc/emem/default.nix
+++ b/pkgs/applications/misc/emem/default.nix
@@ -30,7 +30,7 @@ EOF
 
   meta = with lib; {
     homepage = "https://github.com/ebzzry/emem";
-    description = "A trivial Markdown to HTML converter";
+    description = "Trivial Markdown to HTML converter";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.epl10;
     maintainers = [ maintainers.ebzzry ];
diff --git a/pkgs/applications/misc/emoji-picker/default.nix b/pkgs/applications/misc/emoji-picker/default.nix
index a0475bc943717..6a6d9a4815b05 100644
--- a/pkgs/applications/misc/emoji-picker/default.nix
+++ b/pkgs/applications/misc/emoji-picker/default.nix
@@ -18,7 +18,7 @@ buildGoModule rec {
   vendorHash = "sha256-Xeh5JKIBiyOXRGVx9udoUNs+Wv49BMyFvmnAbDfG3rA=";
 
   meta = with lib; {
-    description = "A CLI Emoji Picker";
+    description = "CLI Emoji Picker";
     homepage = "https://github.com/bcongdon/ep";
     license = licenses.mit;
     maintainers = with maintainers; [ urandom ];
diff --git a/pkgs/applications/misc/epdfview/default.nix b/pkgs/applications/misc/epdfview/default.nix
index 840165dcedee3..ec43e5a18ca6d 100644
--- a/pkgs/applications/misc/epdfview/default.nix
+++ b/pkgs/applications/misc/epdfview/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://packages.debian.org/wheezy/epdfview";
-    description = "A lightweight PDF document viewer using Poppler and GTK";
+    description = "Lightweight PDF document viewer using Poppler and GTK";
     longDescription = ''
       ePDFView is a free lightweight PDF document viewer using Poppler and
       GTK libraries. The aim of ePDFView is to make a simple PDF document
diff --git a/pkgs/applications/misc/exercism/default.nix b/pkgs/applications/misc/exercism/default.nix
index b3ea4b96b9151..4473fbdbe78d4 100644
--- a/pkgs/applications/misc/exercism/default.nix
+++ b/pkgs/applications/misc/exercism/default.nix
@@ -21,7 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
    inherit (src.meta) homepage;
-   description = "A Go based command line tool for exercism.io";
+   description = "Go based command line tool for exercism.io";
    license     = licenses.mit;
    maintainers = [ maintainers.rbasso maintainers.nobbz ];
    mainProgram = "exercism";
diff --git a/pkgs/applications/misc/expenses/default.nix b/pkgs/applications/misc/expenses/default.nix
index 0bca959b8b04c..6d66ab12c3dba 100644
--- a/pkgs/applications/misc/expenses/default.nix
+++ b/pkgs/applications/misc/expenses/default.nix
@@ -37,7 +37,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-   description = "An interactive command line expense logger";
+   description = "Interactive command line expense logger";
    license = licenses.mit;
    maintainers = [ maintainers.manojkarthick ];
    mainProgram = "expenses";
diff --git a/pkgs/applications/misc/faircamp/default.nix b/pkgs/applications/misc/faircamp/default.nix
index 3b1cdf51321b8..b243dccf9734c 100644
--- a/pkgs/applications/misc/faircamp/default.nix
+++ b/pkgs/applications/misc/faircamp/default.nix
@@ -59,7 +59,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A self-hostable, statically generated bandcamp alternative";
+    description = "Self-hostable, statically generated bandcamp alternative";
     mainProgram = "faircamp";
     longDescription = ''
       Faircamp takes a directory on your disk - your Catalog - and from it
diff --git a/pkgs/applications/misc/feedbackd/default.nix b/pkgs/applications/misc/feedbackd/default.nix
index 2c7320fdd9ef2..813869496cb9b 100644
--- a/pkgs/applications/misc/feedbackd/default.nix
+++ b/pkgs/applications/misc/feedbackd/default.nix
@@ -97,10 +97,10 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A daemon to provide haptic (and later more) feedback on events";
+    description = "Daemon to provide haptic (and later more) feedback on events";
     homepage = "https://source.puri.sm/Librem5/feedbackd";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ pacman99 tomfitzhenry ];
+    maintainers = with maintainers; [ pacman99 ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/misc/fetchmail/default.nix b/pkgs/applications/misc/fetchmail/default.nix
index e1a3e8e405b6f..fb2548f26a951 100644
--- a/pkgs/applications/misc/fetchmail/default.nix
+++ b/pkgs/applications/misc/fetchmail/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.fetchmail.info/";
-    description = "A full-featured remote-mail retrieval and forwarding utility";
+    description = "Full-featured remote-mail retrieval and forwarding utility";
     longDescription = ''
       A full-featured, robust, well-documented remote-mail retrieval and
       forwarding utility intended to be used over on-demand TCP/IP links
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     '';
     platforms = platforms.unix;
     license = licenses.gpl2Plus;
+    mainProgram = "fetchmail";
   };
 }
diff --git a/pkgs/applications/misc/fetchmail/v7.nix b/pkgs/applications/misc/fetchmail/v7.nix
index 7962f4a94b61d..9fa51a34d5965 100644
--- a/pkgs/applications/misc/fetchmail/v7.nix
+++ b/pkgs/applications/misc/fetchmail/v7.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://www.fetchmail.info/";
-    description = "A full-featured remote-mail retrieval and forwarding utility";
+    description = "Full-featured remote-mail retrieval and forwarding utility";
     longDescription = ''
       A full-featured, robust, well-documented remote-mail retrieval and
       forwarding utility intended to be used over on-demand TCP/IP links
diff --git a/pkgs/applications/misc/ff2mpv/default.nix b/pkgs/applications/misc/ff2mpv/default.nix
index a87e84ea3892d..3efadca5f3a88 100644
--- a/pkgs/applications/misc/ff2mpv/default.nix
+++ b/pkgs/applications/misc/ff2mpv/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "Native Messaging Host for ff2mpv firefox addon.";
+    description = "Native Messaging Host for ff2mpv firefox addon";
     homepage = "https://github.com/woodruffw/ff2mpv";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ Enzime ];
diff --git a/pkgs/applications/misc/filet/default.nix b/pkgs/applications/misc/filet/default.nix
index b13f24be307d0..2c03c6e76ea24 100644
--- a/pkgs/applications/misc/filet/default.nix
+++ b/pkgs/applications/misc/filet/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "A fucking fucking fast file fucker (afffff)";
+    description = "Fucking fucking fast file fucker (afffff)";
     homepage = "https://github.com/buffet/filet";
     license = licenses.mpl20;
     platforms = platforms.all;
diff --git a/pkgs/applications/misc/findex/default.nix b/pkgs/applications/misc/findex/default.nix
index 8af4fc35d7de8..891ac664149ff 100644
--- a/pkgs/applications/misc/findex/default.nix
+++ b/pkgs/applications/misc/findex/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "findex";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "mdgaziur";
     repo = "findex";
     rev = "v${version}";
-    hash = "sha256-rxOVrl2Q27z5oo1J6D4ft4fKaOMOadmidflD0jK0+3k=";
+    hash = "sha256-IpgmeH5oREstud0nw4i2xYeZcJYG6eCWyw3hhid/DfU=";
   };
 
-  cargoHash = "sha256-MiD96suB88NZWg7Ay/ACZfOeE66WOe9dLsvtOhCQgGo=";
+  cargoHash = "sha256-wsqsPh1kevkIz235qnkLkp47CnCh6qi56sZP95Upymc=";
 
   postPatch = ''
     # failing rust documentation tests and faulty quotes "`README.md`"
@@ -39,6 +39,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/mdgaziur/findex";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
-    maintainers = [ maintainers.pinkcreeper100 ];
+    maintainers = [];
   };
 }
diff --git a/pkgs/applications/misc/flashprint/default.nix b/pkgs/applications/misc/flashprint/default.nix
index affc8c5ad2be5..182e219d0e57f 100644
--- a/pkgs/applications/misc/flashprint/default.nix
+++ b/pkgs/applications/misc/flashprint/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "flashprint";
-  version = "5.8.3";
+  version = "5.8.4";
 
   src = fetchurl {
     url = "http://www.ishare3d.com/3dapp/public/FlashPrint-5/FlashPrint/flashprint5_${finalAttrs.version}_amd64.deb";
-    hash = "sha256-6vBEthQD0HM2D+l+2dwWmdU+XPJpcvZQM+2GMuaf5Pw=";
+    hash = "sha256-Gr76yG3Qz7bnbm5YerHbpb+yzqhw1LthUb4qIH03VQw=";
   };
 
   nativeBuildInputs = [ dpkg autoPatchelfHook wrapQtAppsHook ];
diff --git a/pkgs/applications/misc/flavours/default.nix b/pkgs/applications/misc/flavours/default.nix
index ca3c5956e3c23..ffb329129d8e8 100644
--- a/pkgs/applications/misc/flavours/default.nix
+++ b/pkgs/applications/misc/flavours/default.nix
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "An easy to use base16 scheme manager/builder that integrates with any workflow";
+    description = "Easy to use base16 scheme manager/builder that integrates with any workflow";
     homepage = "https://github.com/Misterio77/flavours";
     changelog = "https://github.com/Misterio77/flavours/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/applications/misc/fluxboxlauncher/default.nix b/pkgs/applications/misc/fluxboxlauncher/default.nix
index 7172ce535071a..d42179aa0a959 100644
--- a/pkgs/applications/misc/fluxboxlauncher/default.nix
+++ b/pkgs/applications/misc/fluxboxlauncher/default.nix
@@ -52,7 +52,7 @@ python3.pkgs.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A Gui editor (gtk) to configure applications launching on a fluxbox session";
+    description = "Gui editor (gtk) to configure applications launching on a fluxbox session";
     mainProgram = "fluxboxlauncher";
     homepage = "https://github.com/mothsART/fluxboxlauncher";
     maintainers = with maintainers; [ mothsart ];
diff --git a/pkgs/applications/misc/formatter/default.nix b/pkgs/applications/misc/formatter/default.nix
index 8f5c4c9c6b322..e56ee22c506e8 100644
--- a/pkgs/applications/misc/formatter/default.nix
+++ b/pkgs/applications/misc/formatter/default.nix
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A simple formatter designed for elementary OS";
+    description = "Simple formatter designed for elementary OS";
     homepage = "https://github.com/Djaler/Formatter";
     maintainers = with maintainers; [ xiorcale ] ++ teams.pantheon.members;
     platforms = platforms.linux;
diff --git a/pkgs/applications/misc/fspy/default.nix b/pkgs/applications/misc/fspy/default.nix
index 96178649efe7f..0227e889fd6b9 100644
--- a/pkgs/applications/misc/fspy/default.nix
+++ b/pkgs/applications/misc/fspy/default.nix
@@ -12,7 +12,7 @@ in appimageTools.wrapType2 {
   inherit pname version src;
 
   meta = with lib; {
-    description = "A cross platform app for quick and easy still image camera matching";
+    description = "Cross platform app for quick and easy still image camera matching";
     license = licenses.gpl3;
     homepage = "https://fspy.io/";
     knownVulnerabilities = [ "Vendors Electron 2.0 (end-of-life)" ];
diff --git a/pkgs/applications/misc/fusee-interfacee-tk/default.nix b/pkgs/applications/misc/fusee-interfacee-tk/default.nix
index c69b7c0633f43..a7e19ed8af572 100644
--- a/pkgs/applications/misc/fusee-interfacee-tk/default.nix
+++ b/pkgs/applications/misc/fusee-interfacee-tk/default.nix
@@ -31,7 +31,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/nh-server/fusee-interfacee-tk";
-    description = "A tool to send .bin files to a Nintendo Switch in RCM mode";
+    description = "Tool to send .bin files to a Nintendo Switch in RCM mode";
     mainProgram = "fusee-interfacee-tk";
     longDescription = "A mod of falquinhos Fusée Launcher for use with Nintendo Homebrew Switch Guide. It also adds the ability to mount SD while in RCM.
     Must be run as sudo.";
diff --git a/pkgs/applications/misc/gImageReader/default.nix b/pkgs/applications/misc/gImageReader/default.nix
index 8aa564fc780bb..742b14a15fcfb 100644
--- a/pkgs/applications/misc/gImageReader/default.nix
+++ b/pkgs/applications/misc/gImageReader/default.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ "-DINTERFACE_TYPE=${variant}" ];
 
   meta = with lib; {
-    description = "A simple Gtk/Qt front-end to tesseract-ocr";
+    description = "Simple Gtk/Qt front-end to tesseract-ocr";
     mainProgram = "gimagereader-gtk";
     homepage = "https://github.com/manisandro/gImageReader";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/galculator/default.nix b/pkgs/applications/misc/galculator/default.nix
index 9128906fe9c50..ef45224a83ce5 100644
--- a/pkgs/applications/misc/galculator/default.nix
+++ b/pkgs/applications/misc/galculator/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ gtk flex ];
 
   meta = with lib; {
-    description = "A GTK 2/3 algebraic and RPN calculator";
+    description = "GTK 2/3 algebraic and RPN calculator";
     longDescription = ''
       galculator is a GTK 2 / GTK 3 based calculator. Its main features include:
 
diff --git a/pkgs/applications/misc/gallery-dl/default.nix b/pkgs/applications/misc/gallery-dl/default.nix
index f89fdbe71a043..1172571488838 100644
--- a/pkgs/applications/misc/gallery-dl/default.nix
+++ b/pkgs/applications/misc/gallery-dl/default.nix
@@ -1,32 +1,29 @@
-{ lib, buildPythonApplication, fetchPypi, fetchpatch, requests, yt-dlp, pytestCheckHook }:
+{
+  lib,
+  buildPythonApplication,
+  fetchPypi,
+  requests,
+  yt-dlp,
+  pytestCheckHook,
+}:
 
 buildPythonApplication rec {
   pname = "gallery-dl";
-  version = "1.26.9";
+  version = "1.27.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit version;
     pname = "gallery_dl";
-    sha256 = "sha256-PgbfppyJCpgFupBQng8MUPihbDmit4C+xWnSzCJyu5k=";
+    hash = "sha256-zMimHjaXgwOSt8HbSec4o0y3e9Xf6tFFiI4KzsrP850=";
   };
 
-  patches = [
-    # catch general Exceptions. Remove with the next release.
-    (fetchpatch {
-      url = "https://github.com/mikf/gallery-dl/commit/5227bb6b1d62ecef5b281592b0d001e7f9c101e3.patch";
-      hash = "sha256-rVsd764siP/07XBPVDnpxMm/4kLiH3fp9+NtpHHH23U=";
-    })
-  ];
-
   propagatedBuildInputs = [
     requests
     yt-dlp
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pytestFlagsArray = [
     # requires network access
@@ -37,16 +34,14 @@ buildPythonApplication rec {
     "--ignore=test/test_ytdl.py"
   ];
 
-  pythonImportsCheck = [
-    "gallery_dl"
-  ];
+  pythonImportsCheck = [ "gallery_dl" ];
 
-  meta = with lib; {
+  meta = {
     description = "Command-line program to download image-galleries and -collections from several image hosting sites";
     homepage = "https://github.com/mikf/gallery-dl";
     changelog = "https://github.com/mikf/gallery-dl/blob/v${version}/CHANGELOG.md";
-    license = licenses.gpl2Only;
+    license = lib.licenses.gpl2Only;
     mainProgram = "gallery-dl";
-    maintainers = with maintainers; [ dawidsowa ];
+    maintainers = with lib.maintainers; [ dawidsowa ];
   };
 }
diff --git a/pkgs/applications/misc/ganttproject-bin/default.nix b/pkgs/applications/misc/ganttproject-bin/default.nix
index abf63bece8073..0ea873da8477e 100644
--- a/pkgs/applications/misc/ganttproject-bin/default.nix
+++ b/pkgs/applications/misc/ganttproject-bin/default.nix
@@ -4,12 +4,12 @@
 
 stdenv.mkDerivation rec {
   pname = "ganttproject-bin";
-  version = "3.3.3300";
+  version = "3.3.3309";
 
   src = fetchzip {
     url = "https://dl.ganttproject.biz/ganttproject-${version}/ganttproject-${version}.zip";
     stripRoot = false;
-    hash = "sha256-U9x64UIBuVtW44zbsdWuMRZyEJhZ8VUWbDVtapTGPMo=";
+    hash = "sha256-ysK+q9r8pbf9MBv7ck24joPR/ywyHnDCBHeOLfljYNw=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/misc/geek-life/default.nix b/pkgs/applications/misc/geek-life/default.nix
index 0e8e3899bb2a6..4ab016067f478 100644
--- a/pkgs/applications/misc/geek-life/default.nix
+++ b/pkgs/applications/misc/geek-life/default.nix
@@ -19,7 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/ajaxray/geek-life";
-    description = "The Todo List / Task Manager for Geeks in command line";
+    description = "Todo List / Task Manager for Geeks in command line";
     maintainers = with maintainers; [ noisersup ];
     license = licenses.mit;
     mainProgram = "geek-life";
diff --git a/pkgs/applications/misc/genact/default.nix b/pkgs/applications/misc/genact/default.nix
index 43dee3baca4b2..8591b749a4068 100644
--- a/pkgs/applications/misc/genact/default.nix
+++ b/pkgs/applications/misc/genact/default.nix
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A nonsense activity generator";
+    description = "Nonsense activity generator";
     homepage = "https://github.com/svenstaro/genact";
     changelog = "https://github.com/svenstaro/genact/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/applications/misc/genesys/default.nix b/pkgs/applications/misc/genesys/default.nix
index b7d8c3796dda5..9624111b5707d 100644
--- a/pkgs/applications/misc/genesys/default.nix
+++ b/pkgs/applications/misc/genesys/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A simple family tree generator that scales";
+    description = "Simple family tree generator that scales";
     homepage = "https://github.com/mrlem/genesys";
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ rogarb ];
diff --git a/pkgs/applications/misc/getxbook/default.nix b/pkgs/applications/misc/getxbook/default.nix
index dd091563fde34..40e8db2a086c7 100644
--- a/pkgs/applications/misc/getxbook/default.nix
+++ b/pkgs/applications/misc/getxbook/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "A collection of tools to download books from Google Books";
+    description = "Collection of tools to download books from Google Books";
     homepage    = "https://njw.me.uk/getxbook/";
     license     = licenses.isc;
     maintainers = with maintainers; [ obadz ];
diff --git a/pkgs/applications/misc/gitit/default.nix b/pkgs/applications/misc/gitit/default.nix
index 365b3f6acd977..6958e1e6c59c2 100644
--- a/pkgs/applications/misc/gitit/default.nix
+++ b/pkgs/applications/misc/gitit/default.nix
@@ -1,4 +1,4 @@
-{ lib, haskellPackages, haskell, removeReferencesTo
+{ lib, stdenv, haskellPackages, haskell
 # “Plugins” are a fancy way of saying gitit will invoke
 # GHC at *runtime*, which in turn makes it pull GHC
 # into its runtime closure. Only enable if you really need
@@ -7,55 +7,36 @@
 , pluginSupport ? false
 }:
 
-# this is similar to what we do with the pandoc executable
-
 let
-  plain = haskellPackages.gitit;
-  plugins =
-    if pluginSupport
-    then plain
-    else haskell.lib.compose.disableCabalFlag "plugins" plain;
-  static = haskell.lib.compose.justStaticExecutables plugins;
+  inherit (haskell.lib.compose)
+    enableCabalFlag
+    disableCabalFlag
+    justStaticExecutables
+    overrideCabal
+  ;
 
-in
-  (haskell.lib.compose.overrideCabal (drv: {
-    buildTools = (drv.buildTools or []) ++ [ removeReferencesTo ];
-  }) static).overrideAttrs (drv: {
+  base = (if pluginSupport then enableCabalFlag else disableCabalFlag)
+    "plugins"
+    haskellPackages.gitit;
 
-    # These libraries are still referenced, because they generate
-    # a `Paths_*` module for figuring out their version.
-    # The `Paths_*` module is generated by Cabal, and contains the
-    # version, but also paths to e.g. the data directories, which
-    # lead to a transitive runtime dependency on the whole GHC distribution.
-    # This should ideally be fixed in haskellPackages (or even Cabal),
-    # but a minimal gitit is important enough to patch it manually.
-    disallowedReferences = [
-      haskellPackages.pandoc-types
-      haskellPackages.HTTP
-      haskellPackages.pandoc
-      haskellPackages.happstack-server
-      haskellPackages.filestore
-    ];
-    postInstall = ''
-      remove-references-to \
-        -t ${haskellPackages.pandoc-types} \
-        $out/bin/gitit
-      remove-references-to \
-        -t ${haskellPackages.HTTP} \
-        $out/bin/gitit
-      remove-references-to \
-        -t ${haskellPackages.pandoc} \
-        $out/bin/gitit
-      remove-references-to \
-        -t ${haskellPackages.happstack-server} \
-        $out/bin/gitit
-      remove-references-to \
-        -t ${haskellPackages.filestore} \
-        $out/bin/gitit
-    '';
+  # Removes erroneous references from dead code that GHC can't eliminate
+  aarch64DarwinFix = overrideCabal (drv:
+    lib.optionalAttrs (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) {
+      postInstall = ''
+        ${drv.postInstall or ""}
+        remove-references-to -t ${haskellPackages.HTTP} "$out/bin/gitit"
+        remove-references-to -t ${haskellPackages.HTTP} "$out/bin/expireGititCache"
+        remove-references-to -t ${haskellPackages.happstack-server} "$out/bin/gitit"
+        remove-references-to -t ${haskellPackages.hoauth2} "$out/bin/gitit"
+        remove-references-to -t ${haskellPackages.pandoc} "$out/bin/gitit"
+        remove-references-to -t ${haskellPackages.pandoc-types} "$out/bin/gitit"
+      '';
+    });
+in
 
-    meta = drv.meta // {
-      maintainers = drv.meta.maintainers or []
-        ++ [ lib.maintainers.Profpatsch ];
-    };
-  })
+if pluginSupport
+then base
+else lib.pipe (base.override { ghc-paths = null; }) [
+  justStaticExecutables
+  aarch64DarwinFix
+]
diff --git a/pkgs/applications/misc/glom/default.nix b/pkgs/applications/misc/glom/default.nix
index 67618ed083f56..9d6c9f09dc965 100644
--- a/pkgs/applications/misc/glom/default.nix
+++ b/pkgs/applications/misc/glom/default.nix
@@ -123,7 +123,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An easy-to-use database designer and user interface";
+    description = "Easy-to-use database designer and user interface";
     homepage = "http://www.glom.org/";
     license = [ licenses.lgpl2 licenses.gpl2 ];
     maintainers = teams.gnome.members;
diff --git a/pkgs/applications/misc/gmnitohtml/default.nix b/pkgs/applications/misc/gmnitohtml/default.nix
index 837379890b4cb..a1a080ac029ec 100644
--- a/pkgs/applications/misc/gmnitohtml/default.nix
+++ b/pkgs/applications/misc/gmnitohtml/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "gmnitohtml";
-  version = "0.1.2";
+  version = "0.1.3";
 
   src = fetchFromSourcehut {
     owner = "~adnano";
     repo = pname;
     rev = version;
-    hash = "sha256-nKNSLVBBdZI5mkbEUkMv0CIOQIyH3OX+SEFf5O47DFY=";
+    hash = "sha256-9lsZgh/OyxAu1rsixD6XUgQzR1xDGOxGt0sR12zrs2M=";
   };
-  vendorHash = "sha256-Cx8x8AISRVTA4Ufd73vOVky97LX23NkizHDingr/zVk=";
+  vendorHash = "sha256-ppplXXqb2DM/AU+B+LefndrBiiTgCRNw6hEupfeWr+o=";
 
   ldflags = [ "-s" "-w" ];
 
@@ -18,11 +18,11 @@ buildGoModule rec {
   nativeBuildInputs = [ scdoc installShellFiles ];
 
   postBuild = ''
-    make gmnitohtml.1
+    make docs
   '';
 
   postInstall = ''
-    installManPage gmnitohtml.1
+    installManPage docs/gmnitohtml.1
   '';
 
   doInstallCheck = true;
diff --git a/pkgs/applications/misc/gmtp/default.nix b/pkgs/applications/misc/gmtp/default.nix
index dc5111c2a7222..e3a33cace9cb0 100644
--- a/pkgs/applications/misc/gmtp/default.nix
+++ b/pkgs/applications/misc/gmtp/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "A simple MP3 and Media player client for UNIX and UNIX like systems";
+    description = "Simple MP3 and Media player client for UNIX and UNIX like systems";
     mainProgram = "gmtp";
     homepage = "https://gmtp.sourceforge.io";
     platforms = lib.platforms.linux;
diff --git a/pkgs/applications/misc/gnome-firmware/default.nix b/pkgs/applications/misc/gnome-firmware/default.nix
index 4f94a5bc7f6b9..16749bc2292d2 100644
--- a/pkgs/applications/misc/gnome-firmware/default.nix
+++ b/pkgs/applications/misc/gnome-firmware/default.nix
@@ -20,14 +20,14 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-firmware";
-  version = "45.0";
+  version = "46.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = "gnome-firmware";
     rev = version;
-    sha256 = "sha256-KVyxOl7RdL80ZiEyiT+XGa/6Ss2g+5y+LIrR9TSRE+I=";
+    sha256 = "sha256-tEMSlKsqqPMZA0Gr89+u3dmAmZ7ffQm/2i1AB93y05E=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/gnome-solanum/default.nix b/pkgs/applications/misc/gnome-solanum/default.nix
index b58d5e67d6084..07dd24a616950 100644
--- a/pkgs/applications/misc/gnome-solanum/default.nix
+++ b/pkgs/applications/misc/gnome-solanum/default.nix
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/World/Solanum";
-    description = "A pomodoro timer for the GNOME desktop";
+    description = "Pomodoro timer for the GNOME desktop";
     maintainers = with maintainers; [ linsui ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/misc/gnome-usage/default.nix b/pkgs/applications/misc/gnome-usage/default.nix
index 85d7f36d2014c..d53871476bd18 100644
--- a/pkgs/applications/misc/gnome-usage/default.nix
+++ b/pkgs/applications/misc/gnome-usage/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A nice way to view information about use of system resources, like memory and disk space";
+    description = "Nice way to view information about use of system resources, like memory and disk space";
     mainProgram = "gnome-usage";
     homepage = "https://gitlab.gnome.org/GNOME/gnome-usage";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/goldendict-ng/default.nix b/pkgs/applications/misc/goldendict-ng/default.nix
index 9f8de3ad6e160..356059d1d9bde 100644
--- a/pkgs/applications/misc/goldendict-ng/default.nix
+++ b/pkgs/applications/misc/goldendict-ng/default.nix
@@ -84,7 +84,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://xiaoyifang.github.io/goldendict-ng/";
-    description = "An advanced multi-dictionary lookup program";
+    description = "Advanced multi-dictionary lookup program";
     platforms = platforms.linux;
     mainProgram = "goldendict";
     maintainers = with maintainers; [ slbtty michojel ];
diff --git a/pkgs/applications/misc/goldendict/default.nix b/pkgs/applications/misc/goldendict/default.nix
index 4f5df502fdfcd..328f1f7343208 100644
--- a/pkgs/applications/misc/goldendict/default.nix
+++ b/pkgs/applications/misc/goldendict/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://goldendict.org/";
-    description = "A feature-rich dictionary lookup program";
+    description = "Feature-rich dictionary lookup program";
     platforms = with platforms; linux ++ darwin;
     mainProgram = "goldendict";
     maintainers = with maintainers; [ gebner astsmtl sikmir ];
diff --git a/pkgs/applications/misc/gollum/default.nix b/pkgs/applications/misc/gollum/default.nix
index a345896ca8d96..cb39fbd3964ea 100644
--- a/pkgs/applications/misc/gollum/default.nix
+++ b/pkgs/applications/misc/gollum/default.nix
@@ -13,7 +13,7 @@ bundlerApp rec {
   passthru.tests.gollum = nixosTests.gollum;
 
   meta = with lib; {
-    description = "A simple, Git-powered wiki with a sweet API and local frontend";
+    description = "Simple, Git-powered wiki with a sweet API and local frontend";
     homepage = "https://github.com/gollum/gollum";
     changelog = "https://github.com/gollum/gollum/blob/HEAD/HISTORY.md";
     license = licenses.mit;
diff --git a/pkgs/applications/misc/googleearth-pro/default.nix b/pkgs/applications/misc/googleearth-pro/default.nix
index 2e139b0d71cad..4da7bd97ec2f4 100644
--- a/pkgs/applications/misc/googleearth-pro/default.nix
+++ b/pkgs/applications/misc/googleearth-pro/default.nix
@@ -114,11 +114,11 @@ mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A world sphere viewer";
+    description = "World sphere viewer";
     homepage = "https://www.google.com/earth/";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
-    maintainers = with maintainers; [ friedelino shamilton ];
+    maintainers = with maintainers; [ shamilton ];
     platforms = platforms.linux;
     knownVulnerabilities = [ "Includes vulnerable versions of bundled libraries: openssl, ffmpeg, gdal, and proj." ];
   };
diff --git a/pkgs/applications/misc/gopacked/default.nix b/pkgs/applications/misc/gopacked/default.nix
index aef599323b81d..6b0eaeff65f5e 100644
--- a/pkgs/applications/misc/gopacked/default.nix
+++ b/pkgs/applications/misc/gopacked/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A simple text-based Minecraft modpack manager";
+    description = "Simple text-based Minecraft modpack manager";
     license = licenses.agpl3Plus;
     homepage = src.meta.homepage;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/applications/misc/gphoto2/default.nix b/pkgs/applications/misc/gphoto2/default.nix
index 96eca30a4f491..cf2d0c633c371 100644
--- a/pkgs/applications/misc/gphoto2/default.nix
+++ b/pkgs/applications/misc/gphoto2/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A ready to use set of digital camera software applications";
+    description = "Ready to use set of digital camera software applications";
     longDescription = ''
 
       A set of command line utilities for manipulating over 1400 different
diff --git a/pkgs/applications/misc/gpu-burn/default.nix b/pkgs/applications/misc/gpu-burn/default.nix
index fe7bcf3dcb71a..eaf0fc44d29dd 100644
--- a/pkgs/applications/misc/gpu-burn/default.nix
+++ b/pkgs/applications/misc/gpu-burn/default.nix
@@ -39,7 +39,6 @@ stdenv.mkDerivation {
     homepage = "http://wili.cc/blog/gpu-burn.html";
     description = "Multi-GPU CUDA stress test";
     platforms = platforms.linux;
-    maintainers = with maintainers; [ elohmeier ];
     license = licenses.bsd2;
     mainProgram = "gpu_burn";
   };
diff --git a/pkgs/applications/misc/gpu-viewer/default.nix b/pkgs/applications/misc/gpu-viewer/default.nix
index 329babc36c686..71dd7a091e603 100644
--- a/pkgs/applications/misc/gpu-viewer/default.nix
+++ b/pkgs/applications/misc/gpu-viewer/default.nix
@@ -66,7 +66,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/arunsivaramanneo/GPU-Viewer";
-    description = "A front-end to glxinfo, vulkaninfo, clinfo and es2_info";
+    description = "Front-end to glxinfo, vulkaninfo, clinfo and es2_info";
     changelog = "https://github.com/arunsivaramanneo/GPU-Viewer/releases/tag/v${version}";
     maintainers = with maintainers; [ GaetanLepage ];
     license = licenses.gpl3;
diff --git a/pkgs/applications/misc/gpxsee/default.nix b/pkgs/applications/misc/gpxsee/default.nix
index 947c18050ea76..0501d9f707e69 100644
--- a/pkgs/applications/misc/gpxsee/default.nix
+++ b/pkgs/applications/misc/gpxsee/default.nix
@@ -18,13 +18,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "gpxsee";
-  version = "13.19";
+  version = "13.22";
 
   src = fetchFromGitHub {
     owner = "tumic0";
     repo = "GPXSee";
     rev = finalAttrs.version;
-    hash = "sha256-Q/Na+uc6a+OSLvJK75MEIxgdJhg/At830SBrix38Qj8=";
+    hash = "sha256-5YoFO1NHduV8qKZ8GPaFnKfRQRlhlG5swZo74SfOpZY=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/misc/gramps/default.nix b/pkgs/applications/misc/gramps/default.nix
index 7feab95b003a1..5ecab79226c8c 100644
--- a/pkgs/applications/misc/gramps/default.nix
+++ b/pkgs/applications/misc/gramps/default.nix
@@ -69,7 +69,7 @@ buildPythonApplication rec {
   ;
 
   propagatedBuildInputs = with pythonPackages; [
-    bsddb3
+    berkeleydb
     pyicu
     pygobject3
     pycairo
diff --git a/pkgs/applications/misc/grb/default.nix b/pkgs/applications/misc/grb/default.nix
index 9d4774b42a2cf..48caa482bb753 100644
--- a/pkgs/applications/misc/grb/default.nix
+++ b/pkgs/applications/misc/grb/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A cli-accessible Greek Bible with the Septuagint, SBL and Apocrypha";
+    description = "Cli-accessible Greek Bible with the Septuagint, SBL and Apocrypha";
     homepage = "https://github.com/LukeSmithxyz/grb";
     license = licenses.publicDomain;
     maintainers = [ maintainers.cafkafk ];
diff --git a/pkgs/applications/misc/gsctl/default.nix b/pkgs/applications/misc/gsctl/default.nix
index 1e88b837f4a8d..b2b9c7b67b06c 100644
--- a/pkgs/applications/misc/gsctl/default.nix
+++ b/pkgs/applications/misc/gsctl/default.nix
@@ -34,7 +34,7 @@ buildGoModule rec {
   doCheck = !stdenv.isDarwin;
 
   meta = with lib; {
-    description = "The Giant Swarm command line interface";
+    description = "Giant Swarm command line interface";
     homepage = "https://github.com/giantswarm/gsctl";
     license = licenses.asl20;
     maintainers = with maintainers; [ joesalisbury ];
diff --git a/pkgs/applications/misc/gtk2fontsel/default.nix b/pkgs/applications/misc/gtk2fontsel/default.nix
index 83be4fe82393d..f55e32baebf83 100644
--- a/pkgs/applications/misc/gtk2fontsel/default.nix
+++ b/pkgs/applications/misc/gtk2fontsel/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   preferLocalBuild = true;
 
   meta = with lib; {
-    description = "A font selection program for X11 using the GTK 2 toolkit";
+    description = "Font selection program for X11 using the GTK 2 toolkit";
     longDescription = ''
       Font selection tool similar to xfontsel implemented using GTK 2.
       Trivial, but useful nonetheless.
diff --git a/pkgs/applications/misc/gum/default.nix b/pkgs/applications/misc/gum/default.nix
index 258079f61c93d..d4a67e5f8a87d 100644
--- a/pkgs/applications/misc/gum/default.nix
+++ b/pkgs/applications/misc/gum/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gum";
-  version = "0.14.0";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
     owner = "charmbracelet";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-TpLaZ/935S57K60NdgJXVY+YQEedralZMoQHWRgkH+A=";
+    hash = "sha256-rQSSbDHMSWJDSxn/SNNMaOrdZJUhQPnZutmpY9828t0=";
   };
 
-  vendorHash = "sha256-UgpOHZ/CEnGsmUTyNrhh+qDmKEplr18b/OrO2qcIhF4=";
+  vendorHash = "sha256-pkQ8UvWLIWH8gXux/dd0HLdiz7RDrmFJ8SX63Q+nNyw=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/applications/misc/gxmessage/default.nix b/pkgs/applications/misc/gxmessage/default.nix
index ae5c7d1d07a4a..642cc57eb8098 100644
--- a/pkgs/applications/misc/gxmessage/default.nix
+++ b/pkgs/applications/misc/gxmessage/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ gtk3 texinfo ];
 
   meta = {
-    description = "A GTK enabled dropin replacement for xmessage";
+    description = "GTK enabled dropin replacement for xmessage";
     homepage = "https://trmusson.dreamhosters.com/programs.html#gxmessage";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [jfb];
diff --git a/pkgs/applications/misc/harsh/default.nix b/pkgs/applications/misc/harsh/default.nix
index fe6ec4f677aa8..dc1021c6d8484 100644
--- a/pkgs/applications/misc/harsh/default.nix
+++ b/pkgs/applications/misc/harsh/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "harsh";
-  version = "0.9.2";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "wakatara";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-NgYmzRoJCoFpfo4NXnQKCp/gvN9g076Y9Pq8CnMrC/s=";
+    hash = "sha256-SF5SvVllAXaALSasVt+wqiywYltAuzaPoc9IohwYmss=";
   };
 
-  vendorHash = "sha256-Xzyu6jy4sbZPZv0EIksA2snlsivc0jp02QoOYpmFtQw=";
+  vendorHash = "sha256-4Sa8/mVD7t4uR8Wq4n+fvot7LZfraphFobrG6rteQeI=";
 
   meta = with lib; {
     description = "CLI habit tracking for geeks";
diff --git a/pkgs/applications/misc/health/default.nix b/pkgs/applications/misc/health/default.nix
index 776f2cf20e2ac..8a2972e99a3a5 100644
--- a/pkgs/applications/misc/health/default.nix
+++ b/pkgs/applications/misc/health/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
   ]);
 
   meta = with lib; {
-    description = "A health tracking app for the GNOME desktop";
+    description = "Health tracking app for the GNOME desktop";
     homepage = "https://apps.gnome.org/app/dev.Cogitri.Health";
     license = licenses.gpl3Plus;
     mainProgram = "dev.Cogitri.Health";
diff --git a/pkgs/applications/misc/hello-unfree/default.nix b/pkgs/applications/misc/hello-unfree/default.nix
index 6fae0eca13997..7ff71814fb5eb 100644
--- a/pkgs/applications/misc/hello-unfree/default.nix
+++ b/pkgs/applications/misc/hello-unfree/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "An example package with unfree license (for testing)";
+    description = "Example package with unfree license (for testing)";
     license = lib.licenses.unfree;
     maintainers = [ lib.maintainers.oxij ];
     mainProgram = "hello-unfree";
diff --git a/pkgs/applications/misc/hmm/default.nix b/pkgs/applications/misc/hmm/default.nix
index 4f45c09ef63b1..c20f3a9626f51 100644
--- a/pkgs/applications/misc/hmm/default.nix
+++ b/pkgs/applications/misc/hmm/default.nix
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A small command-line note-taking app";
+    description = "Small command-line note-taking app";
     homepage = "https://github.com/samwho/hmm";
     changelog = "https://github.com/samwho/hmm/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/applications/misc/holochain-launcher/default.nix b/pkgs/applications/misc/holochain-launcher/default.nix
index 3d7c6b6c205be..23b12f032bd9f 100644
--- a/pkgs/applications/misc/holochain-launcher/default.nix
+++ b/pkgs/applications/misc/holochain-launcher/default.nix
@@ -13,7 +13,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "holochain-launcher";
+  pname = "holochain-launcher";
   version = "0.11.5";
   prerelease = "beta-2";
 
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A cross-platform executable that launches a local Holochain conductor, and installs and opens apps";
+    description = "Cross-platform executable that launches a local Holochain conductor, and installs and opens apps";
     homepage = "https://github.com/holochain/launcher";
     maintainers = [ maintainers.steveej ];
     license = licenses.cal10;
diff --git a/pkgs/applications/misc/houdini/default.nix b/pkgs/applications/misc/houdini/default.nix
index 3810136cbf5f2..64536177aaff5 100644
--- a/pkgs/applications/misc/houdini/default.nix
+++ b/pkgs/applications/misc/houdini/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, writeScript, callPackage, buildFHSEnv, unwrapped ? callPackage ./runtime.nix {} }:
+{ lib, stdenv, writeScript, ncurses5, callPackage, buildFHSEnv, unwrapped ? callPackage ./runtime.nix {} }:
 
 buildFHSEnv rec {
   name = "houdini-${unwrapped.version}";
@@ -30,7 +30,6 @@ buildFHSEnv rec {
     bintools  # needed for ld and other tools, so ctypes can find/load sos from python
     ocl-icd  # needed for opencl
     numactl  # needed by hfs ocl backend
-    ncurses5  # needed by hfs ocl backend
     zstd  # needed from 20.0
   ] ++ (with xorg; [
     libICE
@@ -83,7 +82,7 @@ buildFHSEnv rec {
       mkdir -p $out/$(dirname $executable)
 
       echo "#!${stdenv.shell}" >> $out/$executable
-      echo "$WRAPPER ${unwrapped}/$executable \"\$@\"" >> $out/$executable
+      echo "exec $WRAPPER ${unwrapped}/$executable \"\$@\"" >> $out/$executable
     done
 
     cd $out
@@ -96,6 +95,9 @@ buildFHSEnv rec {
   ];
 
   runScript = writeScript "${name}-wrapper" ''
+    # ncurses5 is needed by hfs ocl backend
+    # workaround for this issue: https://github.com/NixOS/nixpkgs/issues/89769
+    export LD_LIBRARY_PATH=${lib.makeLibraryPath [ncurses5]}:$LD_LIBRARY_PATH
     exec "$@"
   '';
 }
diff --git a/pkgs/applications/misc/houdini/runtime.nix b/pkgs/applications/misc/houdini/runtime.nix
index d0d03d9787174..ef96a689b291a 100644
--- a/pkgs/applications/misc/houdini/runtime.nix
+++ b/pkgs/applications/misc/houdini/runtime.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, requireFile, callPackage}:
 
 callPackage ./runtime-build.nix rec {
-  version = "20.0.506";
+  version = "20.0.688";
   eulaDate = "2021-10-13";
   src = requireFile rec {
     name = "houdini-${version}-linux_x86_64_gcc11.2.tar.gz";
-    sha256 = "10dcb695bf9bb6407ccfd91c67858d69864208ee97e1e9afe216abf99db549f5";
+    sha256 = "99f9088824c328de9d351f037f26ff1cba960fbd9b4e2ed1d52601680d3512a6";
     url = "https://www.sidefx.com/download/daily-builds/?production=true";
   };
 }
diff --git a/pkgs/applications/misc/hr/default.nix b/pkgs/applications/misc/hr/default.nix
index f0a43de700fc3..51a2a14be9cc1 100644
--- a/pkgs/applications/misc/hr/default.nix
+++ b/pkgs/applications/misc/hr/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/LuRsT/hr";
-    description = "A horizontal bar for your terminal";
+    description = "Horizontal bar for your terminal";
     license = licenses.mit;
     maintainers = [ maintainers.matthiasbeyer ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/misc/hue-plus/default.nix b/pkgs/applications/misc/hue-plus/default.nix
index 4cb4adcafd68b..47c5d6b4193f5 100644
--- a/pkgs/applications/misc/hue-plus/default.nix
+++ b/pkgs/applications/misc/hue-plus/default.nix
@@ -32,7 +32,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/kusti8/hue-plus";
-    description = "A Windows and Linux driver in Python for the NZXT Hue+";
+    description = "Windows and Linux driver in Python for the NZXT Hue+";
     longDescription = ''
       A cross-platform driver in Python for the NZXT Hue+. Supports all functionality except FPS, CPU, and GPU lighting.
     '';
diff --git a/pkgs/applications/misc/inherd-quake/default.nix b/pkgs/applications/misc/inherd-quake/default.nix
index 68ca556aac63e..df47036b2d009 100644
--- a/pkgs/applications/misc/inherd-quake/default.nix
+++ b/pkgs/applications/misc/inherd-quake/default.nix
@@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A knowledge management meta-framework for geeks";
+    description = "Knowledge management meta-framework for geeks";
     homepage = "https://github.com/phodal/quake";
     license = licenses.mit;
     maintainers = [ maintainers.elliot ];
diff --git a/pkgs/applications/misc/inlyne/default.nix b/pkgs/applications/misc/inlyne/default.nix
index bd765c864d220..a37f965dd5306 100644
--- a/pkgs/applications/misc/inlyne/default.nix
+++ b/pkgs/applications/misc/inlyne/default.nix
@@ -64,7 +64,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A GPU powered browserless markdown viewer";
+    description = "GPU powered browserless markdown viewer";
     homepage = "https://github.com/trimental/inlyne";
     changelog = "https://github.com/trimental/inlyne/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/applications/misc/inochi2d/creator-dub-lock.json b/pkgs/applications/misc/inochi2d/creator-dub-lock.json
index 97570d2d6678b..e0d3b23ad0c22 100644
--- a/pkgs/applications/misc/inochi2d/creator-dub-lock.json
+++ b/pkgs/applications/misc/inochi2d/creator-dub-lock.json
@@ -37,8 +37,8 @@
       "sha256": "0p5vmkw29ksh5wdxz1ijms1wblq288pv15vnbl93z7q2vgnq995w"
     },
     "eventcore": {
-      "version": "0.9.29",
-      "sha256": "1993mibxqb4v7lbsq3kbfwxfpi0d1gzzmzvx6y01907aqz933isa"
+      "version": "0.9.30",
+      "sha256": "1n8wdcjhas0y99pf9fvwwsydkmy9g7gvfjhlwpjh158c7pfjwlaq"
     },
     "facetrack-d": {
       "version": "0.7.8",
@@ -69,8 +69,8 @@
       "sha256": "0kzk55ilbnl6qypjk60zwd5ibys5n47128hbbr0mbc7bpj9ppfg4"
     },
     "inochi2d": {
-      "version": "0.8.3",
-      "sha256": "1m9dalm6sb518yi9mbphq1fdax90fc5rmskah19l7slnplbhli4l"
+      "version": "0.8.4",
+      "sha256": "1bj0c6i9kcw1vfm6lf8lyxpf1lhhslg3f182jycdmzms15i3jb3y"
     },
     "kra-d": {
       "version": "0.5.5",
@@ -85,12 +85,12 @@
       "sha256": "0hm31birbw59sw1bi9syjhbcdgwwwyyx6r9jg7ar9i6a74cjr52c"
     },
     "mir-algorithm": {
-      "version": "3.22.0",
-      "sha256": "0pl1vwyyhr2hrxlj060khzhg33dkgyrzi3f5qqxz6xj3hcp7axxq"
+      "version": "3.22.1",
+      "sha256": "1bvvf3dm26x1h10pg1s4kyhxiyrmd96kk2lmchyady39crpjj5cf"
     },
     "mir-core": {
-      "version": "1.7.0",
-      "sha256": "14k7y2r06pwzf29shymyjrk7l582bh181rc07bnwgjn3f84ayn62"
+      "version": "1.7.1",
+      "sha256": "15m1n48fcmh5pw3w4ww5qfzwkdglflpzc3xmxmrlvd30swyyr85j"
     },
     "mir-linux-kernel": {
       "version": "1.0.1",
@@ -105,8 +105,8 @@
       "sha256": "1fwhd5fkvgbqf3y8gwmrnd42kzi4k3mibpxijw5j82jxgfp1rzsf"
     },
     "openssl-static": {
-      "version": "1.0.3+3.0.8",
-      "sha256": "1z977ghlnczxky2q2gislfi68jnbp2zf4pifv8rzrcs0nx3va2jr"
+      "version": "1.0.5+3.0.8",
+      "sha256": "0wpqz29yrbbh39g3cwlgd6h6hh1msws7w5baw1kywdkgj761gx2k"
     },
     "psd-d": {
       "version": "0.6.3",
@@ -121,20 +121,20 @@
       "sha256": "1g8382wr49sjyar0jay8j7y2if7h1i87dhapkgxphnizp24d7kaj"
     },
     "taggedalgebraic": {
-      "version": "0.11.22",
-      "sha256": "1kc39sdnk2ybhrwxiwyw1mqcw0qzjr0vr54yvyp3gkkaad373k4r"
+      "version": "0.11.23",
+      "sha256": "1bialmbdwjpqhgs95inkwzin7xbhx7sngjf7viq90vzma497l59k"
     },
     "tinyfiledialogs": {
       "version": "0.10.1",
       "sha256": "1k3gq9y7912x5b30h60nvlfdr61as1f187b8rsilkxliizcmbhfi"
     },
     "vibe-container": {
-      "version": "1.3.0",
-      "sha256": "02gdw7ma93fdvgx3fngmfjd074jh2rzm9qsxakr3zn81p6qnzair"
+      "version": "1.3.1",
+      "sha256": "12mfm49bjnh2pvm51dzna625kzgwznm9kcv6qhazc4il9j0224wd"
     },
     "vibe-core": {
-      "version": "2.8.2",
-      "sha256": "1g9l8hmjx4dzzwh7pqasc9s16zzbdfvciswbv0gnrvmjsb0pi9xr"
+      "version": "2.8.4",
+      "sha256": "1pik6vympgwxpyxb75g1f8409cd6hw952gbflqvwaj18shz6dwjm"
     },
     "vibe-d": {
       "version": "0.9.8",
diff --git a/pkgs/applications/misc/inochi2d/default.nix b/pkgs/applications/misc/inochi2d/default.nix
index 9b1c4f67fc7f9..44a98ee40339b 100644
--- a/pkgs/applications/misc/inochi2d/default.nix
+++ b/pkgs/applications/misc/inochi2d/default.nix
@@ -22,13 +22,13 @@ in
   inochi-creator = mkGeneric rec {
     pname = "inochi-creator";
     appname = "Inochi Creator";
-    version = "0.8.4";
+    version = "0.8.5";
 
     src = fetchFromGitHub {
       owner = "Inochi2D";
       repo = "inochi-creator";
       rev = "v${version}";
-      hash = "sha256-wsB9KIZyot2Y+6QpQlIXRzv3cPCdwp2Q/ZfDizAKJc4=";
+      hash = "sha256-qrSHyvFE55xRbcA79lngOHJOdv54rNlUTHlxT9jjPEY=";
     };
 
     dubLock = ./creator-dub-lock.json;
@@ -54,13 +54,13 @@ in
   inochi-session = mkGeneric rec {
     pname = "inochi-session";
     appname = "Inochi Session";
-    version = "0.8.3";
+    version = "0.8.4";
 
     src = fetchFromGitHub {
       owner = "Inochi2D";
       repo = "inochi-session";
       rev = "v${version}";
-      hash = "sha256-yq/uMWEeydZun07/7hgUaAw3IruRqrDuGgbe5NzNYxw=";
+      hash = "sha256-BRA5qODHhyHBeZYT5MQwcFmr/zVokfO5SrbcbQa6w7w=";
     };
 
     dubLock = ./session-dub-lock.json;
diff --git a/pkgs/applications/misc/inochi2d/session-dub-lock.json b/pkgs/applications/misc/inochi2d/session-dub-lock.json
index 30a486e549c5c..e66d7cebe7e91 100644
--- a/pkgs/applications/misc/inochi2d/session-dub-lock.json
+++ b/pkgs/applications/misc/inochi2d/session-dub-lock.json
@@ -33,8 +33,8 @@
       "sha256": "0p9g4h5qanbg6281x1068mdl5p7zvqig4zmmi72a2cay6dxnbvxb"
     },
     "eventcore": {
-      "version": "0.9.29",
-      "sha256": "1993mibxqb4v7lbsq3kbfwxfpi0d1gzzmzvx6y01907aqz933isa"
+      "version": "0.9.30",
+      "sha256": "1n8wdcjhas0y99pf9fvwwsydkmy9g7gvfjhlwpjh158c7pfjwlaq"
     },
     "facetrack-d": {
       "version": "0.7.8",
@@ -65,8 +65,8 @@
       "sha256": "0kzk55ilbnl6qypjk60zwd5ibys5n47128hbbr0mbc7bpj9ppfg4"
     },
     "inochi2d": {
-      "version": "0.8.3",
-      "sha256": "1m9dalm6sb518yi9mbphq1fdax90fc5rmskah19l7slnplbhli4l"
+      "version": "0.8.4",
+      "sha256": "1bj0c6i9kcw1vfm6lf8lyxpf1lhhslg3f182jycdmzms15i3jb3y"
     },
     "inui": {
       "version": "1.2.1",
@@ -85,12 +85,12 @@
       "sha256": "0hm31birbw59sw1bi9syjhbcdgwwwyyx6r9jg7ar9i6a74cjr52c"
     },
     "mir-algorithm": {
-      "version": "3.22.0",
-      "sha256": "0pl1vwyyhr2hrxlj060khzhg33dkgyrzi3f5qqxz6xj3hcp7axxq"
+      "version": "3.22.1",
+      "sha256": "1bvvf3dm26x1h10pg1s4kyhxiyrmd96kk2lmchyady39crpjj5cf"
     },
     "mir-core": {
-      "version": "1.7.0",
-      "sha256": "14k7y2r06pwzf29shymyjrk7l582bh181rc07bnwgjn3f84ayn62"
+      "version": "1.7.1",
+      "sha256": "15m1n48fcmh5pw3w4ww5qfzwkdglflpzc3xmxmrlvd30swyyr85j"
     },
     "mir-linux-kernel": {
       "version": "1.0.1",
@@ -101,8 +101,8 @@
       "sha256": "1fwhd5fkvgbqf3y8gwmrnd42kzi4k3mibpxijw5j82jxgfp1rzsf"
     },
     "openssl-static": {
-      "version": "1.0.3+3.0.8",
-      "sha256": "1z977ghlnczxky2q2gislfi68jnbp2zf4pifv8rzrcs0nx3va2jr"
+      "version": "1.0.5+3.0.8",
+      "sha256": "0wpqz29yrbbh39g3cwlgd6h6hh1msws7w5baw1kywdkgj761gx2k"
     },
     "silly": {
       "version": "1.1.1",
@@ -113,20 +113,20 @@
       "sha256": "1g8382wr49sjyar0jay8j7y2if7h1i87dhapkgxphnizp24d7kaj"
     },
     "taggedalgebraic": {
-      "version": "0.11.22",
-      "sha256": "1kc39sdnk2ybhrwxiwyw1mqcw0qzjr0vr54yvyp3gkkaad373k4r"
+      "version": "0.11.23",
+      "sha256": "1bialmbdwjpqhgs95inkwzin7xbhx7sngjf7viq90vzma497l59k"
     },
     "tinyfiledialogs": {
       "version": "0.10.1",
       "sha256": "1k3gq9y7912x5b30h60nvlfdr61as1f187b8rsilkxliizcmbhfi"
     },
     "vibe-container": {
-      "version": "1.3.0",
-      "sha256": "02gdw7ma93fdvgx3fngmfjd074jh2rzm9qsxakr3zn81p6qnzair"
+      "version": "1.3.1",
+      "sha256": "12mfm49bjnh2pvm51dzna625kzgwznm9kcv6qhazc4il9j0224wd"
     },
     "vibe-core": {
-      "version": "2.8.2",
-      "sha256": "1g9l8hmjx4dzzwh7pqasc9s16zzbdfvciswbv0gnrvmjsb0pi9xr"
+      "version": "2.8.4",
+      "sha256": "1pik6vympgwxpyxb75g1f8409cd6hw952gbflqvwaj18shz6dwjm"
     },
     "vibe-d": {
       "version": "0.9.8",
diff --git a/pkgs/applications/misc/insulator2/default.nix b/pkgs/applications/misc/insulator2/default.nix
index 65b8cb505f722..b69a3c7fe88df 100644
--- a/pkgs/applications/misc/insulator2/default.nix
+++ b/pkgs/applications/misc/insulator2/default.nix
@@ -90,7 +90,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A client UI to inspect Kafka topics, consume, produce and much more";
+    description = "Client UI to inspect Kafka topics, consume, produce and much more";
     homepage = "https://github.com/andrewinci/insulator2";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ tc-kaluza ];
diff --git a/pkgs/applications/misc/j4-dmenu-desktop/default.nix b/pkgs/applications/misc/j4-dmenu-desktop/default.nix
index 6ad3bda778340..b4ea7d829a3ec 100644
--- a/pkgs/applications/misc/j4-dmenu-desktop/default.nix
+++ b/pkgs/applications/misc/j4-dmenu-desktop/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     changelog = "https://github.com/enkore/j4-dmenu-desktop/blob/${finalAttrs.src.rev}/CHANGELOG";
-    description = "A wrapper for dmenu that recognizes .desktop files";
+    description = "Wrapper for dmenu that recognizes .desktop files";
     homepage = "https://github.com/enkore/j4-dmenu-desktop";
     license = licenses.gpl3Only;
     mainProgram = "j4-dmenu-desktop";
diff --git a/pkgs/applications/misc/jekyll/default.nix b/pkgs/applications/misc/jekyll/default.nix
index 2b9f1497b765d..8eaf05298e892 100644
--- a/pkgs/applications/misc/jekyll/default.nix
+++ b/pkgs/applications/misc/jekyll/default.nix
@@ -39,7 +39,7 @@ in bundlerApp {
   passthru.updateScript = ./update.sh;
 
   meta = with lib; {
-    description = "A blog-aware, static site generator, written in Ruby";
+    description = "Blog-aware, static site generator, written in Ruby";
     longDescription = ''
       Jekyll is a simple, blog-aware, static site generator, written in Ruby.
       Think of it like a file-based CMS, without all the complexity. Jekyll
diff --git a/pkgs/applications/misc/johnny-reborn/default.nix b/pkgs/applications/misc/johnny-reborn/default.nix
index db8eec95f2b1d..4ad2328feda85 100644
--- a/pkgs/applications/misc/johnny-reborn/default.nix
+++ b/pkgs/applications/misc/johnny-reborn/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "An open-source engine for the classic \"Johnny Castaway\" screensaver (engine only)";
+    description = "Open-source engine for the classic \"Johnny Castaway\" screensaver (engine only)";
     homepage = "https://github.com/xesf/jc_reborn";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ pedrohlc ];
diff --git a/pkgs/applications/misc/johnny-reborn/with-data.nix b/pkgs/applications/misc/johnny-reborn/with-data.nix
index b9432c543feee..1e669658186f1 100644
--- a/pkgs/applications/misc/johnny-reborn/with-data.nix
+++ b/pkgs/applications/misc/johnny-reborn/with-data.nix
@@ -52,7 +52,7 @@ stdenvNoCC.mkDerivation {
   '';
 
   meta = {
-    description = "An open-source engine for the classic \"Johnny Castaway\" screensaver (ready to use, with resources)";
+    description = "Open-source engine for the classic \"Johnny Castaway\" screensaver (ready to use, with resources)";
     license = lib.licenses.unfree;
     maintainers = with lib.maintainers; [ pedrohlc ];
     inherit (johnny-reborn-engine.meta) homepage platforms mainProgram;
diff --git a/pkgs/applications/misc/joplin-desktop/default.nix b/pkgs/applications/misc/joplin-desktop/default.nix
index 7127d83c65843..219f15936fb9b 100644
--- a/pkgs/applications/misc/joplin-desktop/default.nix
+++ b/pkgs/applications/misc/joplin-desktop/default.nix
@@ -27,7 +27,7 @@ let
   };
 
   meta = with lib; {
-    description = "An open source note taking and to-do application with synchronisation capabilities";
+    description = "Open source note taking and to-do application with synchronisation capabilities";
     mainProgram = "joplin-desktop";
     longDescription = ''
       Joplin is a free, open source note taking and to-do application, which can
diff --git a/pkgs/applications/misc/jp2a/default.nix b/pkgs/applications/misc/jp2a/default.nix
index 5ae33e8264f9d..7702468768167 100644
--- a/pkgs/applications/misc/jp2a/default.nix
+++ b/pkgs/applications/misc/jp2a/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     homepage = "https://csl.name/jp2a/";
-    description = "A small utility that converts JPG images to ASCII";
+    description = "Small utility that converts JPG images to ASCII";
     license = licenses.gpl2Only;
     maintainers = [ maintainers.FlorianFranzen ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/misc/k2pdfopt/0001-Fix-CMakeLists.patch b/pkgs/applications/misc/k2pdfopt/0001-Fix-CMakeLists.patch
index 8f9271ac996b2..e1ccea1458a37 100644
--- a/pkgs/applications/misc/k2pdfopt/0001-Fix-CMakeLists.patch
+++ b/pkgs/applications/misc/k2pdfopt/0001-Fix-CMakeLists.patch
@@ -1,14 +1,5 @@
-From 2629af4ed00d7ca65359178203d80fb146901cdb Mon Sep 17 00:00:00 2001
-From: Daniel Fullmer <danielrf12@gmail.com>
-Date: Fri, 3 Jul 2020 21:00:45 -0700
-Subject: [PATCH 1/2] Fix CMakeLists
-
----
- CMakeLists.txt | 12 ++++++++----
- 1 file changed, 8 insertions(+), 4 deletions(-)
-
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index e218279..4341de9 100644
+index 365b835..4341de9 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
 @@ -57,6 +57,7 @@ endif(JPEG_FOUND)
@@ -39,11 +30,8 @@ index e218279..4341de9 100644
    include_directories(SYSTEM ${MUPDF_INCLUDEDIR})
    message(STATUS "mupdf libraries: ${MUPDF_LDFLAGS}")
    set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${MUPDF_LDFLAGS} 
--    -lmupdf-js-none -lopenjpeg -ljbig2dec -ljpeg -lfreetype
+-    -lmupdf-js-none -lopenjpeg -ljbig2dec -ljpeg -lfreetype -llcms -lgumbo
 +
    )
  endif(MUPDF_FOUND)
  
--- 
-2.27.0
-
diff --git a/pkgs/applications/misc/k2pdfopt/default.nix b/pkgs/applications/misc/k2pdfopt/default.nix
index 0bb01c38712f4..32a0e31a315b2 100644
--- a/pkgs/applications/misc/k2pdfopt/default.nix
+++ b/pkgs/applications/misc/k2pdfopt/default.nix
@@ -1,11 +1,22 @@
-{ lib, stdenv, runCommand, fetchzip, fetchurl, fetchFromGitHub
-, cmake, pkg-config, zlib, libpng, makeWrapper
+{ lib
+, stdenv
+, runCommand
+, fetchzip
+, fetchurl
+, fetchFromGitHub
+, cmake
+, jbig2dec
+, libjpeg_turbo
+, libpng
+, makeWrapper
+, pkg-config
+, zlib
 , enableGSL ? true, gsl
 , enableGhostScript ? true, ghostscript
-, enableMuPDF ? true, mupdf_1_17
+, enableMuPDF ? true, mupdf
 , enableDJVU ? true, djvulibre
 , enableGOCR ? false, gocr # Disabled by default due to crashes
-, enableTesseract ? true, leptonica, tesseract4
+, enableTesseract ? true, leptonica, tesseract
 }:
 
 # k2pdfopt is a pain to package. It requires modified versions of mupdf,
@@ -50,10 +61,10 @@ let
   '';
 
   pname = "k2pdfopt";
-  version = "2.53";
+  version = "2.55";
   k2pdfopt_src = fetchzip {
     url = "http://www.willus.com/${pname}/src/${pname}_v${version}_src.zip";
-    sha256 = "1fna8bg3pascjfc3hmc6xn0xi2yh7f1qp0d344mw9hqanbnykyy8";
+    hash = "sha256-orQNDXQkkcCtlA8wndss6SiJk4+ImiFCG8XRLEg963k=";
   };
 in stdenv.mkDerivation rec {
   inherit pname version;
@@ -79,15 +90,15 @@ in stdenv.mkDerivation rec {
     mupdf_patch = mkPatch {
       name = "mupdf";
       src = fetchurl {
-        url = "https://mupdf.com/downloads/archive/mupdf-1.17.0-source.tar.gz";
-        sha256 = "13nl9nrcx2awz9l83mlv2psi1lmn3hdnfwxvwgwiwbxlkjl3zqq0";
+        url = "https://mupdf.com/downloads/archive/mupdf-1.23.7-source.tar.gz";
+        hash = "sha256-NaVJM/QA6JZnoImkJfHGXNadRiOU/tnAZ558Uu+6pWg=";
       };
       patchCommands = ''
         cp ${k2pdfopt_src}/mupdf_mod/{filter-basic,font,stext-device,string}.c ./source/fitz/
         cp ${k2pdfopt_src}/mupdf_mod/pdf-* ./source/pdf/
       '';
     };
-    mupdf_modded = mupdf_1_17.overrideAttrs ({ patches ? [], ... }: {
+    mupdf_modded = mupdf.overrideAttrs ({ patches ? [], ... }: {
       patches = patches ++ [ mupdf_patch ];
       # This function is missing in font.c, see font-win32.c
       postPatch = ''
@@ -98,8 +109,8 @@ in stdenv.mkDerivation rec {
     leptonica_patch = mkPatch {
       name = "leptonica";
       src = fetchurl {
-        url = "http://www.leptonica.org/source/leptonica-1.79.0.tar.gz";
-        sha256 = "1n004gv1dj3pq1fcnfdclvvx5nang80336aa67nvs3nnqp4ncn84";
+        url = "http://www.leptonica.org/source/leptonica-1.83.0.tar.gz";
+        hash = "sha256-IGWR3VjPhO84CDba0TO1jJ0a+SSR9amCXDRqFiBEvP4=";
       };
       patchCommands = "cp -r ${k2pdfopt_src}/leptonica_mod/. ./src/";
     };
@@ -112,12 +123,16 @@ in stdenv.mkDerivation rec {
       src = fetchFromGitHub {
         owner = "tesseract-ocr";
         repo = "tesseract";
-        rev = "4.1.1";
-        sha256 = "1ca27zbjpx35nxh9fha410z3jskwyj06i5hqiqdc08s2d7kdivwn";
+        rev = "5.3.3";
+        hash = "sha256-/aGzwm2+0y8fheOnRi/OJXZy3o0xjY1cCq+B3GTzfos=";
       };
       patchCommands = ''
-        cp ${k2pdfopt_src}/tesseract_mod/{baseapi,tesscapi,tesseract}.* src/api/
+        cp ${k2pdfopt_src}/tesseract_mod/tesseract.* include/tesseract/
+        cp ${k2pdfopt_src}/tesseract_mod/tesseract/baseapi.h include/tesseract/
+        cp ${k2pdfopt_src}/tesseract_mod/{baseapi,config_auto,tesscapi,tesseract}.* src/api/
+        cp ${k2pdfopt_src}/tesseract_mod/tesseract/baseapi.h src/api/
         cp ${k2pdfopt_src}/tesseract_mod/{tesscapi,tessedit,tesseract}.* src/ccmain/
+        cp ${k2pdfopt_src}/tesseract_mod/tesseract/baseapi.h src/ccmain/
         cp ${k2pdfopt_src}/tesseract_mod/dotproduct{avx,fma,sse}.* src/arch/
         cp ${k2pdfopt_src}/tesseract_mod/{intsimdmatrixsse,simddetect}.* src/arch/
         cp ${k2pdfopt_src}/tesseract_mod/{errcode,genericvector,mainblk,params,serialis,tessdatamanager,tess_version,tprintf,unicharset}.* src/ccutil/
@@ -125,19 +140,21 @@ in stdenv.mkDerivation rec {
         cp ${k2pdfopt_src}/tesseract_mod/openclwrapper.* src/opencl/
       '';
     };
-    tesseract_modded = tesseract4.override {
-      tesseractBase = tesseract4.tesseractBase.overrideAttrs ({ patches ? [], ... }: {
+    tesseract_modded = tesseract.override {
+      tesseractBase = tesseract.tesseractBase.overrideAttrs ({ patches ? [], ... }: {
         patches = patches ++ [ tesseract_patch ];
         # Additional compilation fixes
         postPatch = ''
-          echo libtesseract_api_la_SOURCES += tesscapi.cpp >> src/api/Makefile.am
+          echo libtesseract_la_SOURCES += src/api/tesscapi.cpp >> Makefile.am
           substituteInPlace src/api/tesseract.h \
             --replace "#include <leptonica.h>" "//#include <leptonica.h>"
+          substituteInPlace include/tesseract/tesseract.h \
+            --replace "#include <leptonica.h>" "//#include <leptonica.h>"
         '';
       });
     };
   in
-    [ zlib libpng ] ++
+    [ jbig2dec libjpeg_turbo libpng zlib ] ++
     lib.optional enableGSL gsl ++
     lib.optional enableGhostScript ghostscript ++
     lib.optional enableMuPDF mupdf_modded ++
@@ -156,12 +173,13 @@ in stdenv.mkDerivation rec {
   '';
 
   preFixup = lib.optionalString enableTesseract ''
-    wrapProgram $out/bin/k2pdfopt --set-default TESSDATA_PREFIX ${tesseract4}/share/tessdata
+    wrapProgram $out/bin/k2pdfopt --set-default TESSDATA_PREFIX ${tesseract}/share/tessdata
   '';
 
   meta = with lib; {
     description = "Optimizes PDF/DJVU files for mobile e-readers (e.g. the Kindle) and smartphones";
     homepage = "http://www.willus.com/k2pdfopt";
+    changelog = "https://www.willus.com/k2pdfopt/k2pdfopt_version.txt";
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ bosu danielfullmer ];
diff --git a/pkgs/applications/misc/k4dirstat/default.nix b/pkgs/applications/misc/k4dirstat/default.nix
index e1636e30267b5..55e0de4d55246 100644
--- a/pkgs/applications/misc/k4dirstat/default.nix
+++ b/pkgs/applications/misc/k4dirstat/default.nix
@@ -32,7 +32,7 @@ mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/jeromerobert/k4dirstat";
-    description = "A small utility program that sums up disk usage for directory trees";
+    description = "Small utility program that sums up disk usage for directory trees";
     mainProgram = "k4dirstat";
     license = licenses.gpl2;
     maintainers = [ maintainers.raboof ];
diff --git a/pkgs/applications/misc/kaufkauflist/default.nix b/pkgs/applications/misc/kaufkauflist/default.nix
index fee38a8a9483e..895567ba659b3 100644
--- a/pkgs/applications/misc/kaufkauflist/default.nix
+++ b/pkgs/applications/misc/kaufkauflist/default.nix
@@ -45,7 +45,7 @@ in buildNpmPackage rec {
 
   meta = with lib; {
     homepage = "https://codeberg.org/annaaurora/kaufkauflist";
-    description = "A to-do list for shopping or other use cases";
+    description = "To-do list for shopping or other use cases";
     license = licenses.mit;
     maintainers = with maintainers; [ annaaurora ];
     mainProgram = "kaufdbclean";
diff --git a/pkgs/applications/misc/keepass-diff/default.nix b/pkgs/applications/misc/keepass-diff/default.nix
index 5cee712ae0c61..c7546cb004558 100644
--- a/pkgs/applications/misc/keepass-diff/default.nix
+++ b/pkgs/applications/misc/keepass-diff/default.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-+kgb9hbCH4Nt80nobTeDrC+LVp1r6EbzUs+t6zlIhtU=";
 
   meta = with lib; {
-    description = "A CLI-tool to diff Keepass (.kdbx) files";
+    description = "CLI-tool to diff Keepass (.kdbx) files";
     homepage = "https://keepass-diff.narigo.dev/";
     license = licenses.mit;
     maintainers = with maintainers; [ wamserma ];
diff --git a/pkgs/applications/misc/keepass-plugins/keepassrpc/default.nix b/pkgs/applications/misc/keepass-plugins/keepassrpc/default.nix
index 09331665a7f82..0cd8d6b7ed80f 100644
--- a/pkgs/applications/misc/keepass-plugins/keepassrpc/default.nix
+++ b/pkgs/applications/misc/keepass-plugins/keepassrpc/default.nix
@@ -11,7 +11,7 @@ let
     };
 
     meta = with lib; {
-      description = "The KeePassRPC plugin that needs to be installed inside KeePass in order for Kee to be able to connect your browser to your passwords";
+      description = "KeePassRPC plugin that needs to be installed inside KeePass in order for Kee to be able to connect your browser to your passwords";
       homepage    = "https://github.com/kee-org/keepassrpc";
       platforms   = [ "x86_64-linux" ];
       license     = licenses.gpl2;
diff --git a/pkgs/applications/misc/keepassxc/default.nix b/pkgs/applications/misc/keepassxc/default.nix
index e8804f6009464..ec633ac7514b9 100644
--- a/pkgs/applications/misc/keepassxc/default.nix
+++ b/pkgs/applications/misc/keepassxc/default.nix
@@ -41,13 +41,13 @@
 
 stdenv.mkDerivation rec {
   pname = "keepassxc";
-  version = "2.7.7";
+  version = "2.7.9";
 
   src = fetchFromGitHub {
     owner = "keepassxreboot";
     repo = "keepassxc";
     rev = version;
-    hash = "sha256-HjDzb1H3eMSraKbfHgg9S+w4TXNt40lQkDz+EChb5Ks=";
+    hash = "sha256-rnietdc8eDNTag0GaZ8VJb28JsKKD/qrQ0Gg6FMWpr0=";
   };
 
   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang (toString [
@@ -134,7 +134,7 @@ stdenv.mkDerivation rec {
   passthru.tests = nixosTests.keepassxc;
 
   meta = with lib; {
-    description = "Offline password manager with many features.";
+    description = "Offline password manager with many features";
     longDescription = ''
       A community fork of KeePassX, which is itself a port of KeePass Password Safe.
       The goal is to extend and improve KeePassX with new features and bugfixes,
diff --git a/pkgs/applications/misc/keylight-controller-mschneider82/default.nix b/pkgs/applications/misc/keylight-controller-mschneider82/default.nix
index 5a9afb42dd15a..0ae96fcf6115d 100644
--- a/pkgs/applications/misc/keylight-controller-mschneider82/default.nix
+++ b/pkgs/applications/misc/keylight-controller-mschneider82/default.nix
@@ -33,7 +33,7 @@ buildGoModule rec {
   ]);
 
   meta = with lib; {
-    description = "A desktop application to control Elgato Keylights";
+    description = "Desktop application to control Elgato Keylights";
     longDescription = ''
       Requires having:
       * Elgato's Keylight paired to local wifi network.
diff --git a/pkgs/applications/misc/kickoff/default.nix b/pkgs/applications/misc/kickoff/default.nix
index cd1a57a09f35a..497d64a17aa42 100644
--- a/pkgs/applications/misc/kickoff/default.nix
+++ b/pkgs/applications/misc/kickoff/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "kickoff";
-  version = "0.7.2";
+  version = "0.7.3";
 
   src = fetchFromGitHub {
     owner = "j0ru";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-WUDbb/GLABhqE93O6bm19Y+r0kSMEJrvduw68Igub44=";
+    hash = "sha256-ha1pRViiOH0U0djUq1x8TIpVoUMn8l+2pA//YP70jdk=";
   };
 
-  cargoHash = "sha256-nhUC9PSKAbNEK5e4WRx3dgYI0rJP5XSWcW6M5E0Ihv4=";
+  cargoHash = "sha256-pdncUUGSfsn35VpwuNWZ/0DAIImBLAm0LyPbqQ06Xho=";
 
   libPath = lib.makeLibraryPath [
     wayland
diff --git a/pkgs/applications/misc/kile-wl/default.nix b/pkgs/applications/misc/kile-wl/default.nix
index c33ca9bd2a68e..582509db4184b 100644
--- a/pkgs/applications/misc/kile-wl/default.nix
+++ b/pkgs/applications/misc/kile-wl/default.nix
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A tiling layout generator for river";
+    description = "Tiling layout generator for river";
     homepage = "https://gitlab.com/snakedye/kile";
     license = licenses.mit;
     platforms = platforms.linux; # It's meant for river, a wayland compositor
diff --git a/pkgs/applications/misc/kiln/default.nix b/pkgs/applications/misc/kiln/default.nix
index cafa43fa4f8cf..a3dacf6e82e8f 100644
--- a/pkgs/applications/misc/kiln/default.nix
+++ b/pkgs/applications/misc/kiln/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "kiln";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchFromSourcehut {
     owner = "~adnano";
     repo = "kiln";
     rev = version;
-    hash = "sha256-BMYySYbV4Exl0gCUt+95FnOoIhKM1UO4cw8gCw3Zf9M=";
+    hash = "sha256-BbKd+0Dmo6RaoS0N7rQmSGJasuJb6dl43GZ7LdMBy/o=";
   };
 
   nativeBuildInputs = [ scdoc installShellFiles ];
 
-  vendorHash = "sha256-C1ueL/zmPzFbpNo5BF56/t74nwCUvb2Vu1exssPqOPE=";
+  vendorHash = "sha256-3s1+/RxOTNVFX9FnS94jLVGSr5IjZC/XucmnkxHhk5Q=";
 
   postInstall = ''
     scdoc < docs/kiln.1.scd > docs/kiln.1
@@ -21,7 +21,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A simple static site generator for Gemini";
+    description = "Simple static site generator for Gemini";
     homepage = "https://kiln.adnano.co/";
     license = licenses.mit;
     maintainers = with maintainers; [ sikmir ];
diff --git a/pkgs/applications/misc/kiwix/default.nix b/pkgs/applications/misc/kiwix/default.nix
index e804f890b832f..1c338a7f58a61 100644
--- a/pkgs/applications/misc/kiwix/default.nix
+++ b/pkgs/applications/misc/kiwix/default.nix
@@ -38,7 +38,7 @@ mkDerivation {
   ];
 
   meta = with lib; {
-    description = "An offline reader for Web content";
+    description = "Offline reader for Web content";
     mainProgram = "kiwix-desktop";
     homepage = "https://kiwix.org";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/kiwix/tools.nix b/pkgs/applications/misc/kiwix/tools.nix
index b5e123b412644..bc2ea83d1480e 100644
--- a/pkgs/applications/misc/kiwix/tools.nix
+++ b/pkgs/applications/misc/kiwix/tools.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
-    description = "Command line Kiwix tools: kiwix-serve, kiwix-manage, ...";
+    description = "Command line Kiwix tools: kiwix-serve, kiwix-manage, ..";
     homepage = "https://kiwix.org";
     changelog = "https://github.com/kiwix/kiwix-tools/releases/tag/${finalAttrs.version}";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/kjv/default.nix b/pkgs/applications/misc/kjv/default.nix
index dca694bf29792..6408168d67838 100644
--- a/pkgs/applications/misc/kjv/default.nix
+++ b/pkgs/applications/misc/kjv/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation {
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
   meta = with lib; {
-    description = "The Bible, King James Version";
+    description = "Bible, King James Version";
     homepage = "https://github.com/bontibon/kjv";
     license = licenses.unlicense;
     maintainers = with maintainers; [ jtobin cafkafk ];
diff --git a/pkgs/applications/misc/kord/default.nix b/pkgs/applications/misc/kord/default.nix
index 43be74e134418..65337780469a6 100644
--- a/pkgs/applications/misc/kord/default.nix
+++ b/pkgs/applications/misc/kord/default.nix
@@ -47,7 +47,7 @@ rustPlatform.buildRustPackage rec {
     ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.AudioUnit ];
 
   meta = with lib; {
-    description = "A music theory binary and library for Rust";
+    description = "Music theory binary and library for Rust";
     homepage = "https://github.com/twitchax/kord";
     maintainers = with maintainers; [ kidsan ];
     license = with licenses; [ mit ];
diff --git a/pkgs/applications/misc/kratos/default.nix b/pkgs/applications/misc/kratos/default.nix
index 6bf06be9be7e8..5f38d116d82e0 100644
--- a/pkgs/applications/misc/kratos/default.nix
+++ b/pkgs/applications/misc/kratos/default.nix
@@ -6,7 +6,7 @@
 }:
 let
   pname = "kratos";
-  version = "1.1.0";
+  version = "1.2.0";
 in
 buildGoModule {
   inherit pname version;
@@ -15,10 +15,10 @@ buildGoModule {
     owner = "ory";
     repo = "kratos";
     rev = "v${version}";
-    hash = "sha256-zrII2lpffZkwFauPAilh1QaqRKvpj1mlHZA7in1ljYg=";
+    hash = "sha256-KqF6DYrEsmPj2PtI2+5ztE0m9uBO1gpNlvdo+Aw6REA=";
   };
 
-  vendorHash = "sha256-TSB7jCPOVwub+ZQaaUSmsz/R4HAfmnWb0wTf2w4aeuk=";
+  vendorHash = "sha256-6gJf+8AKjV83MTF0rC8OxDwkwGx4CJg7SdfNgcja8QY=";
 
   subPackages = [ "." ];
 
@@ -47,7 +47,7 @@ buildGoModule {
 
   meta = {
     mainProgram = "kratos";
-    description = "An API-first Identity and User Management system that is built according to cloud architecture best practices";
+    description = "API-first Identity and User Management system that is built according to cloud architecture best practices";
     homepage = "https://www.ory.sh/kratos/";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ mrmebelman ];
diff --git a/pkgs/applications/misc/krename/default.nix b/pkgs/applications/misc/krename/default.nix
index 6cc5df92ae727..a5f09789fc404 100644
--- a/pkgs/applications/misc/krename/default.nix
+++ b/pkgs/applications/misc/krename/default.nix
@@ -34,7 +34,7 @@ in mkDerivation rec {
   NIX_LDFLAGS = "-ltag";
 
   meta = with lib; {
-    description = "A powerful batch renamer for KDE";
+    description = "Powerful batch renamer for KDE";
     mainProgram = "krename";
     homepage = "https://kde.org/applications/utilities/krename/";
     license = licenses.gpl2;
diff --git a/pkgs/applications/misc/ksmoothdock/default.nix b/pkgs/applications/misc/ksmoothdock/default.nix
index c592d944c6322..41a7c43875019 100644
--- a/pkgs/applications/misc/ksmoothdock/default.nix
+++ b/pkgs/applications/misc/ksmoothdock/default.nix
@@ -31,7 +31,7 @@ mkDerivation rec {
   cmakeDir = "../src";
 
   meta = with lib; {
-    description = "A cool desktop panel for KDE Plasma 5";
+    description = "Cool desktop panel for KDE Plasma 5";
     mainProgram = "ksmoothdock";
     license = licenses.mit;
     homepage = "https://dangvd.github.io/ksmoothdock/";
diff --git a/pkgs/applications/misc/kupfer/default.nix b/pkgs/applications/misc/kupfer/default.nix
index 8c22612ad452c..c184a78deaf46 100644
--- a/pkgs/applications/misc/kupfer/default.nix
+++ b/pkgs/applications/misc/kupfer/default.nix
@@ -51,7 +51,7 @@ buildPythonApplication rec {
   doCheck = false; # no tests
 
   meta = with lib; {
-    description = "A smart, quick launcher";
+    description = "Smart, quick launcher";
     homepage    = "https://kupferlauncher.github.io/";
     license     = licenses.gpl3;
     maintainers = with maintainers; [ cobbal ];
diff --git a/pkgs/applications/misc/latte-dock/default.nix b/pkgs/applications/misc/latte-dock/default.nix
index ae1b13cc870a2..0d17b129ac7a4 100644
--- a/pkgs/applications/misc/latte-dock/default.nix
+++ b/pkgs/applications/misc/latte-dock/default.nix
@@ -4,14 +4,14 @@
 
 mkDerivation rec {
   pname = "latte-dock";
-  version = "unstable-2023-03-31";
+  version = "unstable-2024-01-31";
 
   src = fetchFromGitLab {
     domain = "invent.kde.org";
     owner = "plasma";
     repo = "latte-dock";
-    rev = "4f93251d8c635c6150483ecb321eb276f34d4280";
-    sha256 = "sha256-oEfKfsVIAmYgQ7+WyBEQfVpI4IndWhYXWBsJE8bNNyI=";
+    rev = "131ee4d39ce8913b2de8f9a673903225345c7a38";
+    sha256 = "sha256-C1FvgkdxCzny+F6igS2YjsHOpkK34wl6je2tHlGQwU0=";
   };
 
   buildInputs = [ plasma-framework plasma-wayland-protocols qtwayland xorg.libpthreadstubs xorg.libXdmcp xorg.libSM wayland plasma-workspace plasma-desktop ];
diff --git a/pkgs/applications/misc/lavalauncher/default.nix b/pkgs/applications/misc/lavalauncher/default.nix
index d4556402e21bb..77ad5e5901a94 100644
--- a/pkgs/applications/misc/lavalauncher/default.nix
+++ b/pkgs/applications/misc/lavalauncher/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://git.sr.ht/~leon_plickat/lavalauncher";
-    description = "A simple launcher panel for Wayland desktops";
+    description = "Simple launcher panel for Wayland desktops";
     longDescription = ''
       LavaLauncher is a simple launcher panel for Wayland desktops.
 
diff --git a/pkgs/applications/misc/llpp/default.nix b/pkgs/applications/misc/llpp/default.nix
index 95c98d9665a62..db089796222cb 100644
--- a/pkgs/applications/misc/llpp/default.nix
+++ b/pkgs/applications/misc/llpp/default.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/criticic/llpp";
-    description = "A MuPDF based PDF pager written in OCaml";
+    description = "MuPDF based PDF pager written in OCaml";
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ pSub ];
     license = [ licenses.publicDomain licenses.bsd3 ];
diff --git a/pkgs/applications/misc/loxodo/default.nix b/pkgs/applications/misc/loxodo/default.nix
index a5b729c3cf3bf..2623b9f027ccc 100644
--- a/pkgs/applications/misc/loxodo/default.nix
+++ b/pkgs/applications/misc/loxodo/default.nix
@@ -32,7 +32,7 @@ python3.pkgs.buildPythonApplication {
   doCheck = false;  # Tests are interactive.
 
   meta = with lib; {
-    description = "A Password Safe V3 compatible password vault";
+    description = "Password Safe V3 compatible password vault";
     mainProgram = "loxodo";
     homepage = "https://www.christoph-sommer.de/loxodo/";
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/misc/lswt/default.nix b/pkgs/applications/misc/lswt/default.nix
index 0845a5a1cb5e6..15e2f6e955ebd 100644
--- a/pkgs/applications/misc/lswt/default.nix
+++ b/pkgs/applications/misc/lswt/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A command that lists Wayland toplevels";
+    description = "Command that lists Wayland toplevels";
     homepage = "https://sr.ht/~leon_plickat/lswt";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ edrex ];
diff --git a/pkgs/applications/misc/lunatask/default.nix b/pkgs/applications/misc/lunatask/default.nix
index 84ad583c63b5d..573d0311887a6 100644
--- a/pkgs/applications/misc/lunatask/default.nix
+++ b/pkgs/applications/misc/lunatask/default.nix
@@ -25,7 +25,7 @@ appimageTools.wrapType2 rec {
   '';
 
   meta = with lib; {
-    description = "An all-in-one encrypted todo list, notebook, habit and mood tracker, pomodoro timer, and journaling app";
+    description = "All-in-one encrypted todo list, notebook, habit and mood tracker, pomodoro timer, and journaling app";
     longDescription = ''
       Lunatask is an all-in-one encrypted todo list, notebook, habit and mood tracker, pomodoro timer, and journaling app. It remembers stuff for you and keeps track of your mental health.
     '';
diff --git a/pkgs/applications/misc/mainsail/default.nix b/pkgs/applications/misc/mainsail/default.nix
index 1f85cd9e72312..9ffdc79f04cb8 100644
--- a/pkgs/applications/misc/mainsail/default.nix
+++ b/pkgs/applications/misc/mainsail/default.nix
@@ -1,26 +1,34 @@
 { lib
-, stdenvNoCC
-, fetchzip
+, buildNpmPackage
+, fetchFromGitHub
 }:
 
-stdenvNoCC.mkDerivation rec {
+ buildNpmPackage rec {
   pname = "mainsail";
   version = "2.11.2";
 
-  src = fetchzip {
-    url = "https://github.com/mainsail-crew/mainsail/releases/download/v${version}/mainsail.zip";
-    hash = "sha256-RdBgGE/EUzb1/6PjQ34UjXjxt686s9May7npFtRocXE=";
-    stripRoot = false;
+  src = fetchFromGitHub {
+      owner = "mainsail-crew";
+      repo = "mainsail";
+      rev = "v${version}";
+      hash = "sha256-N0tm36YMRRrkyuIwzcYbDo1DHesAnJ2s2g0KCms3h5I=";
   };
 
-  dontConfigure = true;
-  dontBuild = true;
+  npmDepsHash = "sha256-z6Fo0XAds/F0Ig+nUE3O16gmH0EVcpML3K8cdKhkJzg=";
+
+  # Prevent Cypress binary download.
+  CYPRESS_INSTALL_BINARY = 0;
+
+  preConfigure = ''
+    # Make the build.zip target do nothing, since we will just copy these files later.
+    sed -e 's/"build.zip":.*,$/"build.zip": "",/g' -i package.json
+  '';
 
   installPhase = ''
     runHook preInstall
 
-    mkdir -p $out/share/mainsail
-    cp -r ./* $out/share/mainsail
+    mkdir -p $out/share
+    cp -r ./dist $out/share/mainsail
 
     runHook postInstall
   '';
@@ -31,6 +39,6 @@ stdenvNoCC.mkDerivation rec {
     changelog = "https://github.com/mainsail-crew/mainsail/releases/tag/v${version}";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ shhht lovesegfault ];
+    maintainers = with maintainers; [ shhht lovesegfault wulfsta ];
   };
 }
diff --git a/pkgs/applications/misc/marktext/default.nix b/pkgs/applications/misc/marktext/default.nix
index 573d4a9d5a734..1cea36541120c 100644
--- a/pkgs/applications/misc/marktext/default.nix
+++ b/pkgs/applications/misc/marktext/default.nix
@@ -31,7 +31,7 @@ appimageTools.wrapType2 rec {
   '';
 
   meta = with lib; {
-    description = "A simple and elegant markdown editor, available for Linux, macOS and Windows";
+    description = "Simple and elegant markdown editor, available for Linux, macOS and Windows";
     homepage = "https://www.marktext.cc";
     license = licenses.mit;
     maintainers = with maintainers; [ nh2 eduarrrd ];
diff --git a/pkgs/applications/misc/mbutil/default.nix b/pkgs/applications/misc/mbutil/default.nix
index 13809abe3929c..a33fe7d07cffa 100644
--- a/pkgs/applications/misc/mbutil/default.nix
+++ b/pkgs/applications/misc/mbutil/default.nix
@@ -15,7 +15,7 @@ buildPythonApplication rec {
   checkPhase = "nosetests";
 
   meta = with lib; {
-    description = "An importer and exporter for MBTiles";
+    description = "Importer and exporter for MBTiles";
     mainProgram = "mb-util";
     homepage = "https://github.com/mapbox/mbutil";
     license = licenses.bsd3;
diff --git a/pkgs/applications/misc/mdp/default.nix b/pkgs/applications/misc/mdp/default.nix
index fd3ab88ff4c82..13d34b66801fc 100644
--- a/pkgs/applications/misc/mdp/default.nix
+++ b/pkgs/applications/misc/mdp/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/visit1985/mdp";
-    description = "A command-line based markdown presentation tool";
+    description = "Command-line based markdown presentation tool";
     maintainers = with maintainers; [ matthiasbeyer vrthra ];
     license = licenses.gpl3;
     platforms = with platforms; unix;
diff --git a/pkgs/applications/misc/megacmd/default.nix b/pkgs/applications/misc/megacmd/default.nix
index 4a4d9a70fdabd..07cc3eb0df1af 100644
--- a/pkgs/applications/misc/megacmd/default.nix
+++ b/pkgs/applications/misc/megacmd/default.nix
@@ -9,6 +9,7 @@
   # to be re-enabled when patch available
   # , ffmpeg
 , gcc-unwrapped
+, icu
 , libmediainfo
 , libraw
 , libsodium
@@ -22,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "megacmd";
-  version = "1.6.3";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "meganz";
     repo = "MEGAcmd";
     rev = "${version}_Linux";
-    sha256 = "sha256-JnxfFbM+NyeUrEMok62zlsQIxjrUvLLg4tUTiKPDZFc=";
+    sha256 = "sha256-UlSqwM8GQKeG8/K0t5DbM034NQOeBg+ujNi/MMsVCuM=";
     fetchSubmodules = true;
   };
 
@@ -40,6 +41,7 @@ stdenv.mkDerivation rec {
     cryptopp
     curl
     # ffmpeg
+    icu
     gcc-unwrapped
     libmediainfo
     libraw
@@ -59,6 +61,7 @@ stdenv.mkDerivation rec {
     "--with-curl"
     # "--with-ffmpeg"
     "--without-freeimage" # disabled as freeimage is insecure
+    "--with-icu"
     "--with-libmediainfo"
     "--with-libuv"
     "--with-libzen"
diff --git a/pkgs/applications/misc/memo/default.nix b/pkgs/applications/misc/memo/default.nix
index 93ef8192f54b4..c6d9c58b0ad62 100644
--- a/pkgs/applications/misc/memo/default.nix
+++ b/pkgs/applications/misc/memo/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A simple tool written in bash to memorize stuff";
+    description = "Simple tool written in bash to memorize stuff";
     longDescription = ''
       A simple tool written in bash to memorize stuff.
       Memo organizes is structured through topics which are folders in ~/memo.
diff --git a/pkgs/applications/misc/mepo/default.nix b/pkgs/applications/misc/mepo/default.nix
index 23a57c343b4f5..afa5ffe3d7971 100644
--- a/pkgs/applications/misc/mepo/default.nix
+++ b/pkgs/applications/misc/mepo/default.nix
@@ -17,23 +17,23 @@
 , util-linux
 , xwininfo
 , zenity
-, zig_0_11
+, zig_0_12
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "mepo";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchFromSourcehut {
     owner = "~mil";
     repo = "mepo";
     rev = finalAttrs.version;
-    hash = "sha256-sxN7yTnk3KDAkP/d3miKa2bEgB3AUaf9/M9ajJyRt3g=";
+    hash = "sha256-Ii5E9TgUxzlVIdkKS/6RtasOETeclMm1yoU86gs4hB8=";
   };
 
   nativeBuildInputs = [
     pkg-config
-    zig_0_11.hook
+    zig_0_12.hook
     makeWrapper
   ];
 
@@ -56,10 +56,10 @@ stdenv.mkDerivation (finalAttrs: {
 
   postFixup = ''
     substituteInPlace $out/bin/mepo_ui_menu_user_pin_updater.sh \
-      --replace /usr/libexec/geoclue-2.0 ${geoclue2-with-demo-agent}/libexec/geoclue-2.0
+      --replace-fail /usr/libexec/geoclue-2.0 ${geoclue2-with-demo-agent}/libexec/geoclue-2.0
     substituteInPlace $out/bin/mepo_ui_central_menu.sh \
-      --replace "grep mepo_" "grep '^\.mepo_\|^mepo_'" \
-      --replace " ls " " ls -a " #circumvent wrapping for script detection
+      --replace-fail "grep mepo_" "grep '^\.mepo_\|^mepo_'" \
+      --replace-fail " ls " " ls -a " #circumvent wrapping for script detection
     for program in $out/bin/* ; do
       wrapProgram $program \
         --suffix PATH : $out/bin:${lib.makeBinPath ([
diff --git a/pkgs/applications/misc/metamorphose2/default.nix b/pkgs/applications/misc/metamorphose2/default.nix
index c5950e2e9df0a..344376b985a6c 100644
--- a/pkgs/applications/misc/metamorphose2/default.nix
+++ b/pkgs/applications/misc/metamorphose2/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "a graphical mass renaming program for files and folders";
+    description = "Graphical mass renaming program for files and folders";
     homepage    = "https://github.com/timinaust/metamorphose2";
     license     = with licenses; gpl3Plus;
     maintainers = with maintainers; [ ramkromberg ];
diff --git a/pkgs/applications/misc/michabo/default.nix b/pkgs/applications/misc/michabo/default.nix
index 6329bd9d2495b..7f077d20fc85c 100644
--- a/pkgs/applications/misc/michabo/default.nix
+++ b/pkgs/applications/misc/michabo/default.nix
@@ -42,7 +42,7 @@ in mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A native desktop app for Pleroma and Mastodon servers";
+    description = "Native desktop app for Pleroma and Mastodon servers";
     mainProgram = "Michabo";
     homepage = "https://git.pleroma.social/kaniini/michabo";
     license = licenses.gpl3;
diff --git a/pkgs/applications/misc/minigalaxy/default.nix b/pkgs/applications/misc/minigalaxy/default.nix
index aa31ffa5cc2b0..b8cdab22e8247 100644
--- a/pkgs/applications/misc/minigalaxy/default.nix
+++ b/pkgs/applications/misc/minigalaxy/default.nix
@@ -69,7 +69,7 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://sharkwouter.github.io/minigalaxy/";
     changelog = "https://github.com/sharkwouter/minigalaxy/blob/${version}/CHANGELOG.md";
     downloadPage = "https://github.com/sharkwouter/minigalaxy/releases";
-    description = "A simple GOG client for Linux";
+    description = "Simple GOG client for Linux";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/misc/mission-center/Cargo.lock b/pkgs/applications/misc/mission-center/Cargo.lock
index 922916ab1307a..554a818901516 100644
--- a/pkgs/applications/misc/mission-center/Cargo.lock
+++ b/pkgs/applications/misc/mission-center/Cargo.lock
@@ -16,36 +16,30 @@ dependencies = [
 
 [[package]]
 name = "aho-corasick"
-version = "1.1.2"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "allocator-api2"
-version = "0.2.16"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
-
-[[package]]
-name = "anyhow"
-version = "1.0.80"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
+checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"
 
 [[package]]
 name = "autocfg"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"
 
 [[package]]
 name = "bitflags"
-version = "2.4.2"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
 
 [[package]]
 name = "block"
@@ -55,9 +49,9 @@ checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
 
 [[package]]
 name = "cairo-rs"
-version = "0.19.2"
+version = "0.19.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2650f66005301bd33cc486dec076e1293c4cecf768bc7ba9bf5d2b1be339b99c"
+checksum = "b2ac2a4d0e69036cf0062976f6efcba1aaee3e448594e6514bb2ddf87acce562"
 dependencies = [
  "bitflags",
  "cairo-sys-rs",
@@ -79,15 +73,15 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.90"
+version = "1.0.96"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
+checksum = "065a29261d53ba54260972629f9ca6bffa69bac13cd1fed61420f7fa68b9f8bd"
 
 [[package]]
 name = "cfg-expr"
-version = "0.15.7"
+version = "0.15.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d"
+checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02"
 dependencies = [
  "smallvec",
  "target-lexicon",
@@ -223,7 +217,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
 ]
 
 [[package]]
@@ -260,9 +254,9 @@ dependencies = [
 
 [[package]]
 name = "gdk-pixbuf-sys"
-version = "0.19.0"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dcbd04c1b2c4834cc008b4828bc917d062483b88d26effde6342e5622028f96"
+checksum = "1fdbf021f8b9d19e30fb9ea6d6e5f2b6a712fe4645417c69f86f6ff1e1444a8f"
 dependencies = [
  "gio-sys",
  "glib-sys",
@@ -273,9 +267,9 @@ dependencies = [
 
 [[package]]
 name = "gdk4"
-version = "0.8.1"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9100b25604183f2fd97f55ef087fae96ab4934d7215118a35303e422688e6e4b"
+checksum = "db265c9dd42d6a371e09e52deab3a84808427198b86ac792d75fd35c07990a07"
 dependencies = [
  "cairo-rs",
  "gdk-pixbuf",
@@ -288,9 +282,9 @@ dependencies = [
 
 [[package]]
 name = "gdk4-sys"
-version = "0.8.1"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0b76874c40bb8d1c7d03a7231e23ac75fa577a456cd53af32ec17ec8f121626"
+checksum = "c9418fb4e8a67074919fe7604429c45aa74eb9df82e7ca529767c6d4e9dc66dd"
 dependencies = [
  "cairo-sys-rs",
  "gdk-pixbuf-sys",
@@ -305,9 +299,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.12"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
+checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c"
 dependencies = [
  "cfg-if",
  "libc",
@@ -336,9 +330,9 @@ dependencies = [
 
 [[package]]
 name = "gio"
-version = "0.19.2"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2eae10b27b6dd27e22ed0d812c6387deba295e6fc004a8b379e459b663b05a02"
+checksum = "be548be810e45dd31d3bbb89c6210980bb7af9bca3ea1292b5f16b75f8e394a7"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -354,9 +348,9 @@ dependencies = [
 
 [[package]]
 name = "gio-sys"
-version = "0.19.0"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcf8e1d9219bb294636753d307b030c1e8a032062cba74f493c431a5c8b81ce4"
+checksum = "d4bdbef451b0f0361e7f762987cc6bebd5facab1d535e85a3cf1115dfb08db40"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -367,9 +361,9 @@ dependencies = [
 
 [[package]]
 name = "glib"
-version = "0.19.2"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab9e86540b5d8402e905ad4ce7d6aa544092131ab564f3102175af176b90a053"
+checksum = "be682de2914107f591efdbe2debf05d9ad70726310ee2b6a3802a697649fcc55"
 dependencies = [
  "bitflags",
  "futures-channel",
@@ -389,22 +383,22 @@ dependencies = [
 
 [[package]]
 name = "glib-macros"
-version = "0.19.2"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f5897ca27a83e4cdc7b4666850bade0a2e73e17689aabafcc9acddad9d823b8"
+checksum = "6ed782fa3e949c31146671da6e7a227a5e7d354660df1db6d0aac4974dc82a3c"
 dependencies = [
  "heck",
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
 ]
 
 [[package]]
 name = "glib-sys"
-version = "0.19.0"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630f097773d7c7a0bb3258df4e8157b47dc98bbfa0e60ad9ab56174813feced4"
+checksum = "767d23ead9bbdfcbb1c2242c155c8128a7d13dde7bf69c176f809546135e2282"
 dependencies = [
  "libc",
  "system-deps",
@@ -412,9 +406,9 @@ dependencies = [
 
 [[package]]
 name = "gobject-sys"
-version = "0.19.0"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c85e2b1080b9418dd0c58b498da3a5c826030343e0ef07bde6a955d28de54979"
+checksum = "c3787b0bfacca12bb25f8f822b0dbee9f7e4a86e6469a29976d332d2c14c945b"
 dependencies = [
  "glib-sys",
  "libc",
@@ -434,9 +428,9 @@ dependencies = [
 
 [[package]]
 name = "graphene-sys"
-version = "0.19.0"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "236ed66cc9b18d8adf233716f75de803d0bf6fc806f60d14d948974a12e240d0"
+checksum = "2a60e7381afdd7be43bd10a89d3b6741d162aabbca3a8db73505afb6a3aea59d"
 dependencies = [
  "glib-sys",
  "libc",
@@ -446,9 +440,9 @@ dependencies = [
 
 [[package]]
 name = "gsk4"
-version = "0.8.1"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c65036fc8f99579e8cb37b12487969b707ab23ec8ab953682ff347cbd15d396e"
+checksum = "7563884bf6939f4468e5d94654945bdd9afcaf8c3ba4c5dd17b5342b747221be"
 dependencies = [
  "cairo-rs",
  "gdk4",
@@ -461,9 +455,9 @@ dependencies = [
 
 [[package]]
 name = "gsk4-sys"
-version = "0.8.1"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd24c814379f9c3199dc53e52253ee8d0f657eae389ab282c330505289d24738"
+checksum = "23024bf2636c38bbd1f822f58acc9d1c25b28da896ff0f291a1a232d4272b3dc"
 dependencies = [
  "cairo-sys-rs",
  "gdk4-sys",
@@ -477,9 +471,9 @@ dependencies = [
 
 [[package]]
 name = "gtk4"
-version = "0.8.1"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa82753b8c26277e4af1446c70e35b19aad4fb794a7b143859e7eeb9a4025d83"
+checksum = "b04e11319b08af11358ab543105a9e49b0c491faca35e2b8e7e36bfba8b671ab"
 dependencies = [
  "cairo-rs",
  "field-offset",
@@ -498,23 +492,21 @@ dependencies = [
 
 [[package]]
 name = "gtk4-macros"
-version = "0.8.1"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40300bf071d2fcd4c94eacc09e84ec6fe73129d2ceb635cf7e55b026b5443567"
+checksum = "ec655a7ef88d8ce9592899deb8b2d0fa50bab1e6dd69182deb764e643c522408"
 dependencies = [
- "anyhow",
  "proc-macro-crate",
- "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn",
 ]
 
 [[package]]
 name = "gtk4-sys"
-version = "0.8.1"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0db1b104138f087ccdc81d2c332de5dd049b89de3d384437cc1093b17cd2da18"
+checksum = "8c8aa86b7f85ea71d66ea88c1d4bae1cfacf51ca4856274565133838d77e57b5"
 dependencies = [
  "cairo-sys-rs",
  "gdk-pixbuf-sys",
@@ -531,9 +523,9 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.14.3"
+version = "0.14.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
 dependencies = [
  "ahash",
  "allocator-api2",
@@ -550,15 +542,15 @@ dependencies = [
 
 [[package]]
 name = "heck"
-version = "0.4.1"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
 
 [[package]]
 name = "indexmap"
-version = "2.2.5"
+version = "2.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
 dependencies = [
  "equivalent",
  "hashbrown",
@@ -566,9 +558,9 @@ dependencies = [
 
 [[package]]
 name = "itoa"
-version = "1.0.10"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
 
 [[package]]
 name = "lazy_static"
@@ -610,9 +602,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.153"
+version = "0.2.154"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346"
 
 [[package]]
 name = "libdbus-sys"
@@ -668,22 +660,22 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.7.1"
+version = "2.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
 
 [[package]]
 name = "memoffset"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
 name = "missioncenter"
-version = "0.4.5"
+version = "0.5.2"
 dependencies = [
  "dbus",
  "errno-sys",
@@ -698,6 +690,7 @@ dependencies = [
  "rust-ini",
  "serde",
  "serde_json",
+ "static_assertions",
  "textdistance",
 ]
 
@@ -738,9 +731,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "ordered-multimap"
-version = "0.7.1"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4d6a8c22fc714f0c2373e6091bf6f5e9b37b1bc0b1184874b7e0a4e303d318f"
+checksum = "49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79"
 dependencies = [
  "dlv-list",
  "hashbrown",
@@ -748,9 +741,9 @@ dependencies = [
 
 [[package]]
 name = "pango"
-version = "0.19.2"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7809e8af4df8d024a066106b72ca6bc7253a484ae3867041a96103ef8a13188d"
+checksum = "504ce6e805439ea2c6791168fe7ef8e3da0c1b2ef82c44bc450dbc330592920d"
 dependencies = [
  "gio",
  "glib",
@@ -760,9 +753,9 @@ dependencies = [
 
 [[package]]
 name = "pango-sys"
-version = "0.19.0"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f52ef6a881c19fbfe3b1484df5cad411acaaba29dbec843941c3110d19f340ea"
+checksum = "e4829555bdbb83692ddeaf5a6927fb2d025c8131e5ecaa4f7619fff6985d3505"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -772,9 +765,9 @@ dependencies = [
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.13"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
 
 [[package]]
 name = "pin-utils"
@@ -798,52 +791,28 @@ dependencies = [
 ]
 
 [[package]]
-name = "proc-macro-error"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
-dependencies = [
- "proc-macro-error-attr",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
- "version_check",
-]
-
-[[package]]
-name = "proc-macro-error-attr"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
-dependencies = [
- "proc-macro2",
- "quote",
- "version_check",
-]
-
-[[package]]
 name = "proc-macro2"
-version = "1.0.78"
+version = "1.0.81"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.35"
+version = "1.0.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
 name = "regex"
-version = "1.10.3"
+version = "1.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -864,9 +833,9 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
 
 [[package]]
 name = "rusqlite"
@@ -916,29 +885,29 @@ checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
 
 [[package]]
 name = "serde"
-version = "1.0.197"
+version = "1.0.200"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
+checksum = "ddc6f9cc94d67c0e21aaf7eda3a010fd3af78ebf6e096aa6e2e13c79749cce4f"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.197"
+version = "1.0.200"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
+checksum = "856f046b9400cee3c8c94ed572ecdb752444c24528c035cd35882aad6f492bcb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.114"
+version = "1.0.116"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
+checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813"
 dependencies = [
  "itoa",
  "ryu",
@@ -965,26 +934,21 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.13.1"
+version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
-name = "syn"
-version = "1.0.109"
+name = "static_assertions"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
 
 [[package]]
 name = "syn"
-version = "2.0.52"
+version = "2.0.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
+checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -993,9 +957,9 @@ dependencies = [
 
 [[package]]
 name = "system-deps"
-version = "6.2.0"
+version = "6.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331"
+checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349"
 dependencies = [
  "cfg-expr",
  "heck",
@@ -1012,9 +976,9 @@ checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
 
 [[package]]
 name = "temp-dir"
-version = "0.1.12"
+version = "0.1.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd16aa9ffe15fe021c6ee3766772132c6e98dfa395a167e16864f61a9cfb71d6"
+checksum = "1f227968ec00f0e5322f9b8173c7a0cbcff6181a0a5b28e9892491c286277231"
 
 [[package]]
 name = "textdistance"
@@ -1024,22 +988,22 @@ checksum = "d321c8576c2b47e43953e9cce236550d4cd6af0a6ce518fe084340082ca6037b"
 
 [[package]]
 name = "thiserror"
-version = "1.0.57"
+version = "1.0.59"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
+checksum = "f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.57"
+version = "1.0.59"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
+checksum = "d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
 ]
 
 [[package]]
@@ -1053,14 +1017,14 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.8.10"
+version = "0.8.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
+checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.22.6",
+ "toml_edit 0.22.12",
 ]
 
 [[package]]
@@ -1085,15 +1049,15 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.22.6"
+version = "0.22.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6"
+checksum = "d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef"
 dependencies = [
  "indexmap",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow 0.6.5",
+ "winnow 0.6.7",
 ]
 
 [[package]]
@@ -1116,9 +1080,9 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
 
 [[package]]
 name = "version-compare"
-version = "0.1.1"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
+checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b"
 
 [[package]]
 name = "version_check"
@@ -1165,13 +1129,14 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
 dependencies = [
  "windows_aarch64_gnullvm",
  "windows_aarch64_msvc",
  "windows_i686_gnu",
+ "windows_i686_gnullvm",
  "windows_i686_msvc",
  "windows_x86_64_gnu",
  "windows_x86_64_gnullvm",
@@ -1180,45 +1145,51 @@ dependencies = [
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.4"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
 
 [[package]]
 name = "winnow"
@@ -1231,9 +1202,9 @@ dependencies = [
 
 [[package]]
 name = "winnow"
-version = "0.6.5"
+version = "0.6.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
+checksum = "14b9415ee827af173ebb3f15f9083df5a122eb93572ec28741fb153356ea2578"
 dependencies = [
  "memchr",
 ]
@@ -1255,5 +1226,5 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
 ]
diff --git a/pkgs/applications/misc/mission-center/default.nix b/pkgs/applications/misc/mission-center/default.nix
index 6f8fb90bc26bf..9188df9e5b3b4 100644
--- a/pkgs/applications/misc/mission-center/default.nix
+++ b/pkgs/applications/misc/mission-center/default.nix
@@ -1,38 +1,39 @@
-{ lib
-, stdenv
-, fetchFromGitLab
-, fetchFromGitHub
-, cargo
-, libxml2
-, meson
-, ninja
-, pkg-config
-, python311
-, rustPlatform
-, symlinkJoin
-, rustc
-, wrapGAppsHook4
-, appstream-glib
-, blueprint-compiler
-, cairo
-, cmake
-, dbus
-, desktop-file-utils
-, gdk-pixbuf
-, gettext
-, glib
-, graphene
-, gtk4
-, libGL
-, libadwaita
-, libdrm
-, mesa
-, pango
-, sqlite
-, udev
-, wayland
-, dmidecode
-, vulkan-loader
+{
+  lib,
+  stdenv,
+  fetchFromGitLab,
+  fetchFromGitHub,
+  cargo,
+  libxml2,
+  meson,
+  ninja,
+  pkg-config,
+  python311,
+  rustPlatform,
+  symlinkJoin,
+  rustc,
+  wrapGAppsHook4,
+  appstream-glib,
+  blueprint-compiler,
+  cairo,
+  cmake,
+  dbus,
+  desktop-file-utils,
+  gdk-pixbuf,
+  gettext,
+  glib,
+  graphene,
+  gtk4,
+  libGL,
+  libadwaita,
+  libdrm,
+  mesa,
+  pango,
+  sqlite,
+  udev,
+  wayland,
+  dmidecode,
+  vulkan-loader,
 }:
 
 let
@@ -45,28 +46,23 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "mission-center";
-  version = "0.4.5";
+  version = "0.5.2";
 
   src = fetchFromGitLab {
     owner = "mission-center-devs";
     repo = "mission-center";
     rev = "v${version}";
-    hash = "sha256-e5+uB2vzwRqjUiR+gxpSARHPqG+1iX3yifsfwv5LnZI=";
+    hash = "sha256-84D+CttolY5hleCJbDiN3mlk0+nlwwJUJhGoKGVT/lw=";
   };
 
   cargoDeps = symlinkJoin {
     name = "cargo-vendor-dir";
     paths = [
-      (rustPlatform.importCargoLock {
-        lockFile = ./Cargo.lock;
-      })
-      (rustPlatform.importCargoLock {
-        lockFile = ./gatherer-Cargo.lock;
-      })
+      (rustPlatform.importCargoLock { lockFile = ./Cargo.lock; })
+      (rustPlatform.importCargoLock { lockFile = ./gatherer-Cargo.lock; })
     ];
   };
 
-
   nativeBuildInputs = [
     blueprint-compiler
     cargo
@@ -136,12 +132,13 @@ stdenv.mkDerivation rec {
     patchShebangs data/hwdb/generate_hwdb.py
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Monitor your CPU, Memory, Disk, Network and GPU usage";
     homepage = "https://gitlab.com/mission-center-devs/mission-center";
-    license = licenses.gpl3Only;
-    maintainers = with maintainers; [ GaetanLepage ];
-    platforms = platforms.linux;
+    changelog = "https://gitlab.com/mission-center-devs/mission-center/-/releases/v${version}";
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
+    platforms = lib.platforms.linux;
     mainProgram = "missioncenter";
   };
 }
diff --git a/pkgs/applications/misc/mission-center/gatherer-Cargo.lock b/pkgs/applications/misc/mission-center/gatherer-Cargo.lock
index 792a68f66f979..d6ad543585a4f 100644
--- a/pkgs/applications/misc/mission-center/gatherer-Cargo.lock
+++ b/pkgs/applications/misc/mission-center/gatherer-Cargo.lock
@@ -10,18 +10,18 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "aho-corasick"
-version = "1.1.2"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "anyhow"
-version = "1.0.80"
+version = "1.0.86"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
+checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
 
 [[package]]
 name = "arrayvec"
@@ -31,18 +31,18 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
 
 [[package]]
 name = "ash"
-version = "0.37.3+1.3.251"
+version = "0.38.0+1.3.281"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39e9c3835d686b0a6084ab4234fcd1b07dbf6e4767dce60874b12356a25ecd4a"
+checksum = "0bb44936d800fea8f016d7f2311c6a4f97aebd5dc86f09906139ec848cf3a46f"
 dependencies = [
  "libloading",
 ]
 
 [[package]]
 name = "base64"
-version = "0.21.7"
+version = "0.22.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
 
 [[package]]
 name = "bincode"
@@ -61,9 +61,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.2"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
 
 [[package]]
 name = "block-buffer"
@@ -86,18 +86,18 @@ dependencies = [
 
 [[package]]
 name = "bytemuck"
-version = "1.14.3"
+version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
+checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5"
 dependencies = [
  "bytemuck_derive",
 ]
 
 [[package]]
 name = "bytemuck_derive"
-version = "1.5.0"
+version = "1.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
+checksum = "369cfaf2a5bed5d8f8202073b2e093c9f508251de1551a0deb4253e4c7d80909"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -106,9 +106,9 @@ dependencies = [
 
 [[package]]
 name = "cargo-util"
-version = "0.2.9"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74862c3c6e53a1c1f8f0178f9d38ab41e49746cd3a7cafc239b3d0248fd4e342"
+checksum = "f6e977de2867ec90a1654882ff95ca5849a526e893bab588f84664cfcdb11c0a"
 dependencies = [
  "anyhow",
  "core-foundation",
@@ -116,7 +116,7 @@ dependencies = [
  "hex",
  "ignore",
  "jobserver",
- "libc 0.2.153",
+ "libc 0.2.155",
  "miow",
  "same-file",
  "sha2",
@@ -129,9 +129,9 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.90"
+version = "1.0.98"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
+checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
 
 [[package]]
 name = "cfg-if"
@@ -141,9 +141,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "cfg_aliases"
-version = "0.1.1"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
 
 [[package]]
 name = "const-random"
@@ -172,7 +172,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
 dependencies = [
  "core-foundation-sys",
- "libc 0.2.153",
+ "libc 0.2.155",
 ]
 
 [[package]]
@@ -187,14 +187,14 @@ version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
- "libc 0.2.153",
+ "libc 0.2.155",
 ]
 
 [[package]]
 name = "crc32fast"
-version = "1.4.0"
+version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
+checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
 dependencies = [
  "cfg-if",
 ]
@@ -220,9 +220,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.19"
+version = "0.8.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
 
 [[package]]
 name = "crunchy"
@@ -246,7 +246,7 @@ version = "0.9.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1bb21987b9fb1613058ba3843121dd18b163b254d8a6e797e144cbac14d96d1b"
 dependencies = [
- "libc 0.2.153",
+ "libc 0.2.155",
  "libdbus-sys",
  "winapi",
 ]
@@ -281,11 +281,11 @@ dependencies = [
 
 [[package]]
 name = "drm"
-version = "0.11.1"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0f8a69e60d75ae7dab4ef26a59ca99f2a89d4c142089b537775ae0c198bdcde"
+checksum = "98888c4bbd601524c11a7ed63f814b8825f420514f78e96f752c437ae9cbb5d1"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "bytemuck",
  "drm-ffi",
  "drm-fourcc",
@@ -294,9 +294,9 @@ dependencies = [
 
 [[package]]
 name = "drm-ffi"
-version = "0.7.1"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41334f8405792483e32ad05fbb9c5680ff4e84491883d2947a4757dc54cb2ac6"
+checksum = "97c98727e48b7ccb4f4aea8cfe881e5b07f702d17b7875991881b41af7278d53"
 dependencies = [
  "drm-sys",
  "rustix",
@@ -310,11 +310,11 @@ checksum = "0aafbcdb8afc29c1a7ee5fbe53b5d62f4565b35a042a662ca9fecd0b54dae6f4"
 
 [[package]]
 name = "drm-sys"
-version = "0.6.1"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d09ff881f92f118b11105ba5e34ff8f4adf27b30dae8f12e28c193af1c83176"
+checksum = "fd39dde40b6e196c2e8763f23d119ddb1a8714534bf7d77fa97a65b0feda3986"
 dependencies = [
- "libc 0.2.153",
+ "libc 0.2.155",
  "linux-raw-sys 0.6.4",
 ]
 
@@ -325,24 +325,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a373bc9844200b1ff15bd1b245931d1c20d09d06e4ec09f361171f29a4b0752d"
 dependencies = [
  "khronos",
- "libc 0.2.153",
+ "libc 0.2.155",
 ]
 
 [[package]]
+name = "either"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b"
+
+[[package]]
 name = "errno"
-version = "0.3.8"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
 dependencies = [
- "libc 0.2.153",
+ "libc 0.2.155",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "fastrand"
-version = "2.0.1"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
 
 [[package]]
 name = "filetime"
@@ -351,16 +357,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
 dependencies = [
  "cfg-if",
- "libc 0.2.153",
+ "libc 0.2.155",
  "redox_syscall",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "flate2"
-version = "1.0.28"
+version = "1.0.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
+checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae"
 dependencies = [
  "crc32fast",
  "miniz_oxide",
@@ -377,7 +383,7 @@ dependencies = [
 
 [[package]]
 name = "gatherer"
-version = "0.4.5"
+version = "0.5.2"
 dependencies = [
  "anyhow",
  "arrayvec",
@@ -392,28 +398,33 @@ dependencies = [
  "flate2",
  "gbm",
  "lazy_static",
- "libc 0.2.153",
+ "libc 0.2.155",
+ "libloading",
+ "log",
  "nix",
  "pkg-config",
+ "rayon",
  "rust-ini",
  "serde",
  "serde_json",
  "sha2",
+ "static_assertions",
  "tar",
+ "thiserror",
  "ureq",
 ]
 
 [[package]]
 name = "gbm"
-version = "0.14.2"
+version = "0.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "313702b30cdeb83ddc72bc14dcee67803cd0ae2d12282ea06e368c25a900c844"
+checksum = "45bf55ba6dd53ad0ac115046ff999c5324c283444ee6e0be82454c4e8eb2f36a"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.5.0",
  "drm",
  "drm-fourcc",
  "gbm-sys",
- "libc 0.2.153",
+ "libc 0.2.155",
 ]
 
 [[package]]
@@ -422,7 +433,7 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6fd2d6bf7c0143b38beece05f9a5c4c851a49a8434f62bf58ff28da92b0ddc58"
 dependencies = [
- "libc 0.2.153",
+ "libc 0.2.155",
 ]
 
 [[package]]
@@ -437,12 +448,12 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.12"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
 dependencies = [
  "cfg-if",
- "libc 0.2.153",
+ "libc 0.2.155",
  "wasi",
 ]
 
@@ -461,9 +472,9 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.14.3"
+version = "0.14.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
 
 [[package]]
 name = "hex"
@@ -499,17 +510,17 @@ dependencies = [
 
 [[package]]
 name = "itoa"
-version = "1.0.10"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
 
 [[package]]
 name = "jobserver"
-version = "0.1.28"
+version = "0.1.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
+checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e"
 dependencies = [
- "libc 0.2.153",
+ "libc 0.2.155",
 ]
 
 [[package]]
@@ -535,9 +546,9 @@ checksum = "e32a70cf75e5846d53a673923498228bbec6a8624708a9ea5645f075d6276122"
 
 [[package]]
 name = "libc"
-version = "0.2.153"
+version = "0.2.155"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
 
 [[package]]
 name = "libdbus-sys"
@@ -545,24 +556,25 @@ version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "06085512b750d640299b79be4bad3d2fa90a9c00b1fd9e1b46364f66f0485c72"
 dependencies = [
+ "cc",
  "pkg-config",
 ]
 
 [[package]]
 name = "libloading"
-version = "0.7.4"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
 dependencies = [
  "cfg-if",
- "winapi",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.13"
+version = "0.4.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
 
 [[package]]
 name = "linux-raw-sys"
@@ -578,15 +590,15 @@ checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
 
 [[package]]
 name = "memchr"
-version = "2.7.1"
+version = "2.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
+checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae"
 dependencies = [
  "adler",
 ]
@@ -602,14 +614,14 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.28.0"
+version = "0.29.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
+checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "cfg-if",
  "cfg_aliases",
- "libc 0.2.153",
+ "libc 0.2.155",
 ]
 
 [[package]]
@@ -620,9 +632,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "ordered-multimap"
-version = "0.7.1"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4d6a8c22fc714f0c2373e6091bf6f5e9b37b1bc0b1184874b7e0a4e303d318f"
+checksum = "49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79"
 dependencies = [
  "dlv-list",
  "hashbrown",
@@ -636,9 +648,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.13"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
 
 [[package]]
 name = "pkg-config"
@@ -648,23 +660,43 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.78"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+checksum = "0b33eb56c327dec362a9e55b3ad14f9d2f0904fb5a5b03b513ab5465399e9f43"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.35"
+version = "1.0.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
+name = "rayon"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-utils",
+]
+
+[[package]]
 name = "redox_syscall"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -686,9 +718,9 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
 
 [[package]]
 name = "ring"
@@ -699,7 +731,7 @@ dependencies = [
  "cc",
  "cfg-if",
  "getrandom",
- "libc 0.2.153",
+ "libc 0.2.155",
  "spin",
  "untrusted",
  "windows-sys 0.52.0",
@@ -718,22 +750,22 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.31"
+version = "0.38.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
+checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "errno",
- "libc 0.2.153",
- "linux-raw-sys 0.4.13",
+ "libc 0.2.155",
+ "linux-raw-sys 0.4.14",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "rustls"
-version = "0.22.2"
+version = "0.22.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41"
+checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432"
 dependencies = [
  "log",
  "ring",
@@ -745,15 +777,15 @@ dependencies = [
 
 [[package]]
 name = "rustls-pki-types"
-version = "1.3.1"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ede67b28608b4c60685c7d54122d4400d90f62b40caee7700e700380a390fa8"
+checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d"
 
 [[package]]
 name = "rustls-webpki"
-version = "0.102.2"
+version = "0.102.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610"
+checksum = "ff448f7e92e913c4b7d4c6d8e4540a1724b319b4152b8aef6d4cf8339712b33e"
 dependencies = [
  "ring",
  "rustls-pki-types",
@@ -762,9 +794,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.17"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
 
 [[package]]
 name = "same-file"
@@ -777,18 +809,18 @@ dependencies = [
 
 [[package]]
 name = "serde"
-version = "1.0.197"
+version = "1.0.202"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
+checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.197"
+version = "1.0.202"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
+checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -797,9 +829,9 @@ dependencies = [
 
 [[package]]
 name = "serde_json"
-version = "1.0.114"
+version = "1.0.117"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
+checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
 dependencies = [
  "itoa",
  "ryu",
@@ -830,6 +862,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
 
 [[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
 name = "subtle"
 version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -837,9 +875,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
 
 [[package]]
 name = "syn"
-version = "2.0.52"
+version = "2.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
+checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -853,7 +891,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb"
 dependencies = [
  "filetime",
- "libc 0.2.153",
+ "libc 0.2.155",
  "xattr",
 ]
 
@@ -870,6 +908,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "thiserror"
+version = "1.0.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
 name = "tiny-keccak"
 version = "2.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -965,9 +1023,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
 
 [[package]]
 name = "ureq"
-version = "2.9.6"
+version = "2.9.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11f214ce18d8b2cbe84ed3aa6486ed3f5b285cf8d8fbdbce9f3f767a724adc35"
+checksum = "d11a831e3c0b56e438a28308e7c810799e3c118417f342d30ecec080105395cd"
 dependencies = [
  "base64",
  "flate2",
@@ -1040,11 +1098,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.6"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
+checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b"
 dependencies = [
- "winapi",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -1068,7 +1126,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -1088,17 +1146,18 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.4",
- "windows_aarch64_msvc 0.52.4",
- "windows_i686_gnu 0.52.4",
- "windows_i686_msvc 0.52.4",
- "windows_x86_64_gnu 0.52.4",
- "windows_x86_64_gnullvm 0.52.4",
- "windows_x86_64_msvc 0.52.4",
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
 ]
 
 [[package]]
@@ -1109,9 +1168,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -1121,9 +1180,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -1133,9 +1192,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.4"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -1145,9 +1210,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -1157,9 +1222,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -1169,9 +1234,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -1181,9 +1246,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
 
 [[package]]
 name = "xattr"
@@ -1191,8 +1256,8 @@ version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
 dependencies = [
- "libc 0.2.153",
- "linux-raw-sys 0.4.13",
+ "libc 0.2.155",
+ "linux-raw-sys 0.4.14",
  "rustix",
 ]
 
diff --git a/pkgs/applications/misc/mkgmap/default.nix b/pkgs/applications/misc/mkgmap/default.nix
index 40530d16391ff..a73767492f3fe 100644
--- a/pkgs/applications/misc/mkgmap/default.nix
+++ b/pkgs/applications/misc/mkgmap/default.nix
@@ -16,12 +16,12 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "mkgmap";
-  version = "4919";
+  version = "4921";
 
   src = fetchsvn {
     url = "https://svn.mkgmap.org.uk/mkgmap/mkgmap/trunk";
     rev = version;
-    sha256 = "sha256-WMFZEGTXVAaBlEKUqclmkw3pKnWSdbvulDvSi7TQn8k=";
+    sha256 = "sha256-s7EKHXh3UNMDzBmWUTZaLR1P21e27cWJNYRlFcpJu50=";
   };
 
   patches = [
diff --git a/pkgs/applications/misc/mnamer/default.nix b/pkgs/applications/misc/mnamer/default.nix
index fbcc9e61be45d..8477f95ab6667 100644
--- a/pkgs/applications/misc/mnamer/default.nix
+++ b/pkgs/applications/misc/mnamer/default.nix
@@ -39,7 +39,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/jkwill87/mnamer";
-    description = "An intelligent and highly configurable media organization utility";
+    description = "Intelligent and highly configurable media organization utility";
     mainProgram = "mnamer";
     license = licenses.mit;
     maintainers = with maintainers; [ urlordjames ];
diff --git a/pkgs/applications/misc/mobilecoin-wallet/default.nix b/pkgs/applications/misc/mobilecoin-wallet/default.nix
index 2b891abc64738..6c4eb8ff3ebc2 100644
--- a/pkgs/applications/misc/mobilecoin-wallet/default.nix
+++ b/pkgs/applications/misc/mobilecoin-wallet/default.nix
@@ -30,7 +30,7 @@ in appimageTools.wrapType2 {
   '';
 
   meta = with lib; {
-    description = "A user-friendly desktop wallet with support for transaction history, encrypted contact book, gift codes, and payments";
+    description = "User-friendly desktop wallet with support for transaction history, encrypted contact book, gift codes, and payments";
     homepage = "https://github.com/mobilecoinofficial/desktop-wallet";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ wolfangaukang ];
diff --git a/pkgs/applications/misc/monitorcontrol/default.nix b/pkgs/applications/misc/monitorcontrol/default.nix
index b5a6935958e23..db112415fda85 100644
--- a/pkgs/applications/misc/monitorcontrol/default.nix
+++ b/pkgs/applications/misc/monitorcontrol/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A macOS system extension to control brightness and volume of external displays with native OSD";
+    description = "MacOS system extension to control brightness and volume of external displays with native OSD";
     longDescription = "Controls your external display brightness and volume and shows native OSD. Use menulet sliders or the keyboard, including native Apple keys!";
     homepage = "https://github.com/MonitorControl/MonitorControl#readme";
     license = licenses.mit;
diff --git a/pkgs/applications/misc/mpvc/default.nix b/pkgs/applications/misc/mpvc/default.nix
index 8736abb413ba5..5182b53faa9a4 100644
--- a/pkgs/applications/misc/mpvc/default.nix
+++ b/pkgs/applications/misc/mpvc/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ socat ];
 
   meta = with lib; {
-    description = "A mpc-like control interface for mpv";
+    description = "Mpc-like control interface for mpv";
     mainProgram = "mpvc";
     homepage = "https://github.com/lwilletts/mpvc";
     license = licenses.mit;
diff --git a/pkgs/applications/misc/natural-docs/default.nix b/pkgs/applications/misc/natural-docs/default.nix
index 05a752ab465d7..7b614fe359dd5 100644
--- a/pkgs/applications/misc/natural-docs/default.nix
+++ b/pkgs/applications/misc/natural-docs/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "Documentation generator for multiple programming languages.";
+    description = "Documentation generator for multiple programming languages";
     longDescription = ''
       Natural Docs is an open source documentation generator for multiple
       programming languages. You document your code in a natural syntax that
diff --git a/pkgs/applications/misc/navi/default.nix b/pkgs/applications/misc/navi/default.nix
index 3ea19ebd0209a..23abf6a3546e3 100644
--- a/pkgs/applications/misc/navi/default.nix
+++ b/pkgs/applications/misc/navi/default.nix
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
    ];
 
   meta = with lib; {
-    description = "An interactive cheatsheet tool for the command-line and application launchers";
+    description = "Interactive cheatsheet tool for the command-line and application launchers";
     homepage = "https://github.com/denisidoro/navi";
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/pkgs/applications/misc/neo4j-desktop/default.nix b/pkgs/applications/misc/neo4j-desktop/default.nix
index 6c1ac1ede965d..e97acc0d25619 100644
--- a/pkgs/applications/misc/neo4j-desktop/default.nix
+++ b/pkgs/applications/misc/neo4j-desktop/default.nix
@@ -1,11 +1,11 @@
 { appimageTools, lib, fetchurl }:
 let
   pname = "neo4j-desktop";
-  version = "1.5.8";
+  version = "1.5.9";
 
   src = fetchurl {
     url = "https://s3-eu-west-1.amazonaws.com/dist.neo4j.org/${pname}/linux-offline/${pname}-${version}-x86_64.AppImage";
-    hash = "sha256-RqzR4TuvDasbkj/wKvOOS7r46sXDxvw3B5ydFGZeHX8=";
+    hash = "sha256-04I1p5wtndIflHqS5qQVf3s8F9ORJ+oy4wi/5PQbnWk=";
   };
 
   appimageContents = appimageTools.extract { inherit pname version src; };
@@ -22,7 +22,7 @@ in appimageTools.wrapType2 {
   '';
 
   meta = with lib; {
-    description = "A GUI front-end for Neo4j";
+    description = "GUI front-end for Neo4j";
     homepage = "https://neo4j.com/";
     license = licenses.unfree;
     maintainers = [ maintainers.bobvanderlinden ];
diff --git a/pkgs/applications/misc/nixnote2/default.nix b/pkgs/applications/misc/nixnote2/default.nix
index b55497a168ced..d6d0775f78d21 100644
--- a/pkgs/applications/misc/nixnote2/default.nix
+++ b/pkgs/applications/misc/nixnote2/default.nix
@@ -34,7 +34,7 @@ mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An unofficial client of Evernote";
+    description = "Unofficial client of Evernote";
     homepage = "http://www.nixnote.org/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ htr ];
diff --git a/pkgs/applications/misc/notable/default.nix b/pkgs/applications/misc/notable/default.nix
index c8958950db9d4..0021cc7221250 100644
--- a/pkgs/applications/misc/notable/default.nix
+++ b/pkgs/applications/misc/notable/default.nix
@@ -36,7 +36,7 @@ appimageTools.wrapType2 rec {
   '';
 
   meta = with lib; {
-    description = "The markdown-based note-taking app that doesn't suck";
+    description = "Markdown-based note-taking app that doesn't suck";
     homepage = "https://github.com/notable/notable";
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/misc/notesnook/default.nix b/pkgs/applications/misc/notesnook/default.nix
index 7742a54c6c0c5..ebac30c58a6cf 100644
--- a/pkgs/applications/misc/notesnook/default.nix
+++ b/pkgs/applications/misc/notesnook/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv, appimageTools, fetchurl, undmg }:
+{ lib, stdenv, appimageTools, fetchurl, _7zz }:
 
 let
   pname = "notesnook";
-  version = "2.6.1";
+  version = "3.0.8";
 
   inherit (stdenv.hostPlatform) system;
   throwSystem = throw "Unsupported system: ${system}";
@@ -16,9 +16,9 @@ let
   src = fetchurl {
     url = "https://github.com/streetwriters/notesnook/releases/download/v${version}/notesnook_${suffix}";
     hash = {
-      x86_64-linux = "sha256-PLHP1Q4+xcHyr0323K4BD+oH57SspsrAcxRe/C6RFDU=";
-      x86_64-darwin = "sha256-gOUL3qLSM+/pr519Gc0baUtbmhA40lG6XzuCRyGILkc=";
-      aarch64-darwin = "sha256-d1nXdCv1mK4+4Gef1upIkHS3J2d9qzTLXbBWabsJwpw=";
+      x86_64-linux = "sha256-H25PGhCD5uqh2BHMMjb7GyftinBsRs2O5+9xNNV+5m4=";
+      x86_64-darwin = "sha256-uT4xo4LT70jq7bHmiYu4FL8Fldppc2ai8yEZzGMzM6Q=";
+      aarch64-darwin = "sha256-D5KIXHhzXXBOEcoOn2QKKUbVGMWhRW+L7fgxRxLpX/0=";
     }.${system} or throwSystem;
   };
 
@@ -27,7 +27,7 @@ let
   };
 
   meta = with lib; {
-    description = "A fully open source & end-to-end encrypted note taking alternative to Evernote.";
+    description = "Fully open source & end-to-end encrypted note taking alternative to Evernote";
     longDescription = ''
       Notesnook is a free (as in speech) & open source note taking app
       focused on user privacy & ease of use. To ensure zero knowledge
@@ -36,7 +36,7 @@ let
     '';
     homepage = "https://notesnook.com";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ j0lol ];
+    maintainers = with maintainers; [ cig0 j0lol ];
     platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
     mainProgram = "notesnook";
   };
@@ -59,10 +59,15 @@ let
   darwin = stdenv.mkDerivation {
     inherit pname version src meta;
 
-    nativeBuildInputs = [ undmg ];
+    nativeBuildInputs = [ _7zz ];
 
     sourceRoot = "Notesnook.app";
 
+    # 7zz did not unpack in setup hook for some reason, done manually here
+    unpackPhase = ''
+      7zz x $src
+    '';
+
     installPhase = ''
       mkdir -p $out/Applications/Notesnook.app
       cp -R . $out/Applications/Notesnook.app
diff --git a/pkgs/applications/misc/ns-usbloader/default.nix b/pkgs/applications/misc/ns-usbloader/default.nix
index 8ab52711a6cee..a97d3e6f9f88d 100644
--- a/pkgs/applications/misc/ns-usbloader/default.nix
+++ b/pkgs/applications/misc/ns-usbloader/default.nix
@@ -37,7 +37,6 @@ maven.buildMavenPackage rec {
     x86_64-linux = "sha256-vXZAlZOh9pXNF1RL78oQRal5pkXFRKDz/7SP9LibgiA=";
     aarch64-linux = "sha256-xC+feb41EPi30gBrVR8usanVULI2Pt0knztzNagPQiw=";
   };
-  mvnParameters = "-DskipTests";
 
   nativeBuildInputs = [
     copyDesktopItems
@@ -46,6 +45,8 @@ maven.buildMavenPackage rec {
     gvfs
   ];
 
+  doCheck = false;
+
   # Don't wrap binaries twice.
   dontWrapGApps = true;
 
diff --git a/pkgs/applications/misc/nwg-displays/default.nix b/pkgs/applications/misc/nwg-displays/default.nix
index 99edf8183a202..9f59da0f9c12c 100644
--- a/pkgs/applications/misc/nwg-displays/default.nix
+++ b/pkgs/applications/misc/nwg-displays/default.nix
@@ -14,13 +14,13 @@
 
 python310Packages.buildPythonApplication rec {
   pname = "nwg-displays";
-  version = "0.3.19";
+  version = "0.3.20";
 
   src = fetchFromGitHub {
     owner = "nwg-piotr";
     repo = "nwg-displays";
     rev = "refs/tags/v${version}";
-    hash = "sha256-pZelKuTClRELZT80r44FxocdW+KRARD027ZV18XTTss=";
+    hash = "sha256-lpXcH45BFgfRjkEHqimnHonDenm5YA6oahe4sN2wpY4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/nwg-dock-hyprland/default.nix b/pkgs/applications/misc/nwg-dock-hyprland/default.nix
index ff0a57b07555f..a029b481eeec6 100644
--- a/pkgs/applications/misc/nwg-dock-hyprland/default.nix
+++ b/pkgs/applications/misc/nwg-dock-hyprland/default.nix
@@ -8,28 +8,34 @@
 
 buildGoModule rec {
   pname = "nwg-dock-hyprland";
-  version = "0.1.8";
+  version = "0.1.9";
 
   src = fetchFromGitHub {
     owner = "nwg-piotr";
-    repo = pname;
+    repo = "nwg-dock-hyprland";
     rev = "v${version}";
-    sha256 = "sha256-cdNxaOnm98RcPG2o0GaBETpd+Zo2nlgrFv+2PiHOwUI=";
+    hash = "sha256-pzOdWv98tHZg6Xn58z5DlM1H0IOQ+ohfXEZRLZr8mz0=";
   };
 
-  vendorHash = "sha256-JEzc950c4EGOYMLgpL8PXENkGlWSX8Z4A4jCx1B99X8=";
+  vendorHash = "sha256-bK3SpydIO943e7zti6yWQ+JqmdF4NkAAtelNBt4Q/+s=";
 
   ldflags = [ "-s" "-w" ];
 
   nativeBuildInputs = [ pkg-config wrapGAppsHook3 ];
   buildInputs = [ gtk-layer-shell ];
 
-  meta = with lib; {
+  postInstall = ''
+    install -d $out/share/nwg-dock-hyprland
+    cp -r images $out/share/nwg-dock-hyprland/images
+    install -Dm644 config/style.css $out/share/nwg-dock-hyprland/style.css
+  '';
+
+  meta = {
     description = "GTK3-based dock for Hyprland";
     mainProgram = "nwg-dock-hyprland";
     homepage = "https://github.com/nwg-piotr/nwg-dock-hyprland";
-    license = licenses.mit;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ aleksana ];
+    license = lib.licenses.mit;
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ aleksana ];
   };
 }
diff --git a/pkgs/applications/misc/nwg-look/default.nix b/pkgs/applications/misc/nwg-look/default.nix
index 5ce8ad87ba37d..ceaf6ce1a2959 100644
--- a/pkgs/applications/misc/nwg-look/default.nix
+++ b/pkgs/applications/misc/nwg-look/default.nix
@@ -1,7 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, substituteAll
+, wrapGAppsHook3
 , buildGoModule
 , go
 , glib
@@ -15,32 +15,26 @@
 
 buildGoModule rec {
   pname = "nwg-look";
-  version = "0.2.6";
+  version = "0.2.7";
 
   src = fetchFromGitHub {
     owner = "nwg-piotr";
     repo = "nwg-look";
     rev = "v${version}";
-    hash = "sha256-kOoYhJKt7/BsQ0/RuVhj0bWnX9GU8ET3MSq6NMCOw5E=";
+    hash = "sha256-qUNTJkNHWoJisLH0SU23UQuamEL27MMRnxw0kBxzWLk=";
   };
 
-  vendorHash = "sha256-V0KXK6jxBYI+tixBLq24pJJcnu4gDF6nfyns2IBTss4=";
-
-  # Replace /usr/ directories with the packages output location
-  # This means it references the correct path
-  patches = [ ./fix-paths.patch ];
-
-  postPatch = ''
-    substituteInPlace main.go tools.go --replace '@out@' $out
-  '';
+  vendorHash = "sha256-qHWy9OCxENrrWk00YoRveSjqYWIy/fe4Fyc8tc4n34E=";
 
   ldflags = [ "-s" "-w" ];
 
   nativeBuildInputs = [
     pkg-config
+    wrapGAppsHook3
   ];
 
   buildInputs = [
+    glib
     cairo
     xcur2png
     libX11.dev
@@ -55,15 +49,24 @@ buildGoModule rec {
     mkdir -p $out/share/nwg-look/langs
     mkdir -p $out/share/applications
     mkdir -p $out/share/pixmaps
+    mkdir -p $out/share/icons
     cp stuff/main.glade $out/share/nwg-look/
     cp langs/* $out/share/nwg-look/langs
     cp stuff/nwg-look.desktop $out/share/applications
     cp stuff/nwg-look.svg $out/share/pixmaps
   '';
 
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --prefix PATH : "${glib.bin}/bin"
+      --prefix PATH : "${xcur2png}/bin"
+      --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}"
+    )
+  '';
+
   meta = with lib; {
     homepage = "https://github.com/nwg-piotr/nwg-look";
-    description = "Nwg-look is a GTK3 settings editor, designed to work properly in wlroots-based Wayland environment.";
+    description = "Nwg-look is a GTK3 settings editor, designed to work properly in wlroots-based Wayland environment";
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ max-amb ];
diff --git a/pkgs/applications/misc/nwg-look/fix-paths.patch b/pkgs/applications/misc/nwg-look/fix-paths.patch
deleted file mode 100644
index 3b56e00522137..0000000000000
--- a/pkgs/applications/misc/nwg-look/fix-paths.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-diff --git a/main.go b/main.go
-index 23c4756..c52e9c3 100644
---- a/main.go
-+++ b/main.go
-@@ -335,7 +335,7 @@ func main() {
-
- 	gtkSettings, _ = gtk.SettingsGetDefault()
-
--	builder, _ := gtk.BuilderNewFromFile("/usr/share/nwg-look/main.glade")
-+	builder, _ := gtk.BuilderNewFromFile("@out@/share/nwg-look/main.glade")
- 	win, _ := getWindow(builder, "window")
-
- 	win.Connect("destroy", func() {
-diff --git a/tools.go b/tools.go
-index e6e7665..59d6f35 100644
---- a/tools.go
-+++ b/tools.go
-@@ -1034,7 +1034,7 @@ func getDataDirs() []string {
- 	if os.Getenv("XDG_DATA_DIRS") != "" {
- 		xdgDataDirs = os.Getenv("XDG_DATA_DIRS")
- 	} else {
--		xdgDataDirs = "/usr/local/share/:/usr/share/"
-+		xdgDataDirs = "@out@/local/share/:@out@/share/"
- 	}
-
- 	for _, d := range strings.Split(xdgDataDirs, ":") {
-@@ -1280,7 +1280,7 @@ func detectLang() string {
- }
-
- func loadVocabulary(lang string) map[string]string {
--	langsDir := "/usr/share/nwg-look/langs/"
-+	langsDir := "@out@/share/nwg-look/langs/"
- 	enUSFile := filepath.Join(langsDir, "en_US.json")
- 	if pathExists(enUSFile) {
- 		log.Infof(">>> Loading basic lang from '%s'", enUSFile)
diff --git a/pkgs/applications/misc/nwg-look/go.mod b/pkgs/applications/misc/nwg-look/go.mod
index 0446058e56c22..1f40d0a94fbd0 100644
--- a/pkgs/applications/misc/nwg-look/go.mod
+++ b/pkgs/applications/misc/nwg-look/go.mod
@@ -1,10 +1,10 @@
 module github.com/nwg-piotr/nwg-look
 
-go 1.20
+go 1.22
 
 require (
-	github.com/gotk3/gotk3 v0.6.2
+	github.com/gotk3/gotk3 v0.6.3
 	github.com/sirupsen/logrus v1.9.3
 )
 
-require golang.org/x/sys v0.6.0 // indirect
+require golang.org/x/sys v0.17.0 // indirect
diff --git a/pkgs/applications/misc/obsidian/default.nix b/pkgs/applications/misc/obsidian/default.nix
index 1090941f8e39e..ff7c789a6eb5f 100644
--- a/pkgs/applications/misc/obsidian/default.nix
+++ b/pkgs/applications/misc/obsidian/default.nix
@@ -12,10 +12,10 @@
 let
   inherit (stdenv.hostPlatform) system;
   pname = "obsidian";
-  version = "1.5.12";
+  version = "1.6.3";
   appname = "Obsidian";
   meta = with lib; {
-    description = "A powerful knowledge base that works on top of a local folder of plain text Markdown files";
+    description = "Powerful knowledge base that works on top of a local folder of plain text Markdown files";
     homepage = "https://obsidian.md";
     downloadPage = "https://github.com/obsidianmd/obsidian-releases/releases";
     license = licenses.obsidian;
@@ -25,7 +25,7 @@ let
   filename = if stdenv.isDarwin then "Obsidian-${version}-universal.dmg" else "obsidian-${version}.tar.gz";
   src = fetchurl {
     url = "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/${filename}";
-    hash = if stdenv.isDarwin then "sha256-MSJmF5WddxbC/S7w2nWjlDxt5HPUDCoRFwJ2MZMH9Ks=" else "sha256-UQLljP7eZELTuHwX+OylXY+Wy2YK1ZEJX1IQfIvBLe8=";
+    hash = if stdenv.isDarwin then "sha256-o5ELpG82mJgcd9Pil6A99BPK6Hoa0OKJJkYpyfGJR9I=" else "sha256-ho8E2Iq+s/w8NjmxzZo/y5aj3MNgbyvIGjk3nSKPLDw=";
   };
 
   icon = fetchurl {
diff --git a/pkgs/applications/misc/octoprint/default.nix b/pkgs/applications/misc/octoprint/default.nix
index 98f210dbe5d3a..9857865478a0e 100644
--- a/pkgs/applications/misc/octoprint/default.nix
+++ b/pkgs/applications/misc/octoprint/default.nix
@@ -256,7 +256,7 @@ let
 
               meta = with lib; {
                 homepage = "https://octoprint.org/";
-                description = "The snappy web interface for your 3D printer";
+                description = "Snappy web interface for your 3D printer";
                 mainProgram = "octoprint";
                 license = licenses.agpl3Only;
                 maintainers = with maintainers; [ abbradar gebner WhittlesJr gador ];
diff --git a/pkgs/applications/misc/octoprint/plugins.nix b/pkgs/applications/misc/octoprint/plugins.nix
index ff920edbc272e..090c4e0e852d9 100644
--- a/pkgs/applications/misc/octoprint/plugins.nix
+++ b/pkgs/applications/misc/octoprint/plugins.nix
@@ -89,7 +89,7 @@ in
     };
 
     meta = with lib; {
-      description = "Plugin to display the estimated print cost for the loaded model.";
+      description = "Plugin to display the estimated print cost for the loaded model";
       homepage = "https://github.com/OllisGit/OctoPrint-CostEstimation";
       license = licenses.agpl3Only;
       maintainers = with maintainers; [ stunkymonkey ];
@@ -301,7 +301,7 @@ in
     };
 
     meta = with lib; {
-      description = "A simple plugin that add an emergency stop buton on NavBar of OctoPrint";
+      description = "Simple plugin that add an emergency stop buton on NavBar of OctoPrint";
       homepage = "https://github.com/Sebclem/OctoPrint-SimpleEmergencyStop";
       license = licenses.agpl3Only;
       maintainers = with maintainers; [ WhittlesJr ];
@@ -320,7 +320,7 @@ in
     };
 
     meta = with lib; {
-      description = "A simple stl viewer tab for OctoPrint";
+      description = "Simple stl viewer tab for OctoPrint";
       homepage = "https://github.com/jneilliii/Octoprint-STLViewer";
       license = licenses.agpl3Only;
       maintainers = with maintainers; [ abbradar ];
@@ -341,7 +341,7 @@ in
     propagatedBuildInputs = with super; [ pillow ];
 
     meta = with lib; {
-      description = "Plugin to send status messages and receive commands via Telegram messenger.";
+      description = "Plugin to send status messages and receive commands via Telegram messenger";
       homepage = "https://github.com/fabianonline/OctoPrint-Telegram";
       license = licenses.agpl3Only;
       maintainers = with maintainers; [ stunkymonkey ];
@@ -417,7 +417,7 @@ in
     };
 
     meta = with lib; {
-      description = "A plugin for a better integration of Klipper into OctoPrint";
+      description = "Plugin for a better integration of Klipper into OctoPrint";
       homepage = "https://github.com/AliceGrey/OctoprintKlipperPlugin";
       license = licenses.agpl3Only;
       maintainers = with maintainers; [ lovesegfault ];
@@ -471,7 +471,7 @@ in
     };
 
     meta = with lib; {
-      description = "A dashboard for Octoprint";
+      description = "Dashboard for Octoprint";
       homepage = "https://github.com/StefanCohen/OctoPrint-Dashboard";
       license = licenses.agpl3Plus;
       maintainers = with maintainers; [ j0hax ];
diff --git a/pkgs/applications/misc/ola/default.nix b/pkgs/applications/misc/ola/default.nix
index 5de5c157d3709..2d28d8138c289 100644
--- a/pkgs/applications/misc/ola/default.nix
+++ b/pkgs/applications/misc/ola/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A framework for controlling entertainment lighting equipment";
+    description = "Framework for controlling entertainment lighting equipment";
     homepage = "https://www.openlighting.org/ola/";
     maintainers = with maintainers; [ ];
     license = with licenses; [ lgpl21 gpl2Plus ];
diff --git a/pkgs/applications/misc/omegat.nix b/pkgs/applications/misc/omegat.nix
index 5349add035ae6..48756794b94f8 100644
--- a/pkgs/applications/misc/omegat.nix
+++ b/pkgs/applications/misc/omegat.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "The free computer aided translation (CAT) tool for professionals";
+    description = "Free computer aided translation (CAT) tool for professionals";
     mainProgram = "omegat";
     longDescription = ''
       OmegaT is a free and open source multiplatform Computer Assisted Translation
diff --git a/pkgs/applications/misc/openbangla-keyboard/default.nix b/pkgs/applications/misc/openbangla-keyboard/default.nix
index 108bb1aeff0dc..da1f2dc629d2c 100644
--- a/pkgs/applications/misc/openbangla-keyboard/default.nix
+++ b/pkgs/applications/misc/openbangla-keyboard/default.nix
@@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     isIbusEngine = withIbusSupport;
-    description = "An OpenSource, Unicode compliant Bengali Input Method";
+    description = "OpenSource, Unicode compliant Bengali Input Method";
     mainProgram = "openbangla-gui";
     homepage = "https://openbangla.github.io/";
     license = lib.licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/openbrf/default.nix b/pkgs/applications/misc/openbrf/default.nix
index 03b3cde0c835f..d2419ae25b9ec 100644
--- a/pkgs/applications/misc/openbrf/default.nix
+++ b/pkgs/applications/misc/openbrf/default.nix
@@ -49,7 +49,7 @@ mkDerivation {
   dontPatchELF = true;
 
   meta = with lib; {
-    description = "A tool to edit resource files (BRF)";
+    description = "Tool to edit resource files (BRF)";
     mainProgram = "openBrf";
     homepage = "https://github.com/cfcohen/openbrf";
     maintainers = with lib.maintainers; [ abbradar ];
diff --git a/pkgs/applications/misc/opencpn/default.nix b/pkgs/applications/misc/opencpn/default.nix
index 52cf30b1ffba2..84aff125aac2b 100644
--- a/pkgs/applications/misc/opencpn/default.nix
+++ b/pkgs/applications/misc/opencpn/default.nix
@@ -134,7 +134,7 @@ stdenv.mkDerivation (finalAttrs: {
   doCheck = true;
 
   meta = with lib; {
-    description = "A concise ChartPlotter/Navigator";
+    description = "Concise ChartPlotter/Navigator";
     maintainers = with maintainers; [ kragniz lovesegfault ];
     platforms = platforms.unix;
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/misc/openrgb-plugins/effects/default.nix b/pkgs/applications/misc/openrgb-plugins/effects/default.nix
index f84aa13b72199..9cdda76f8a138 100644
--- a/pkgs/applications/misc/openrgb-plugins/effects/default.nix
+++ b/pkgs/applications/misc/openrgb-plugins/effects/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://gitlab.com/OpenRGBDevelopers/OpenRGBEffectsPlugin";
-    description = "An effects plugin for OpenRGB";
+    description = "Effects plugin for OpenRGB";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/misc/openring/default.nix b/pkgs/applications/misc/openring/default.nix
index 2f72b8b41cc01..0c1424e5ac479 100644
--- a/pkgs/applications/misc/openring/default.nix
+++ b/pkgs/applications/misc/openring/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A webring for static site generators";
+    description = "Webring for static site generators";
     homepage = "https://sr.ht/~sircmpwn/openring";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ sumnerevans ];
diff --git a/pkgs/applications/misc/organicmaps/default.nix b/pkgs/applications/misc/organicmaps/default.nix
index f369508edd7ef..2dcaeda72a74c 100644
--- a/pkgs/applications/misc/organicmaps/default.nix
+++ b/pkgs/applications/misc/organicmaps/default.nix
@@ -29,13 +29,13 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "organicmaps";
-  version = "2024.03.31-8";
+  version = "2024.06.02-12";
 
   src = fetchFromGitHub {
     owner = "organicmaps";
     repo = "organicmaps";
     rev = "${version}-android";
-    hash = "sha256-U8tKrL5tnhT/RMvxROk8Q4lO22ylqiMM1QonZ1Rn+CY=";
+    hash = "sha256-TOKBEnSa9kzfGsiNpMllLjcJtdhYfz9m4uAg0lUF8Z4=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/misc/orpie/default.nix b/pkgs/applications/misc/orpie/default.nix
index fc33b9e1cbd91..b817c253830b6 100644
--- a/pkgs/applications/misc/orpie/default.nix
+++ b/pkgs/applications/misc/orpie/default.nix
@@ -22,7 +22,7 @@ ocamlPackages.buildDunePackage rec {
 
   meta = {
     inherit (src.meta) homepage;
-    description = "A Curses-based RPN calculator";
+    description = "Curses-based RPN calculator";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ obadz ];
   };
diff --git a/pkgs/applications/misc/oxker/default.nix b/pkgs/applications/misc/oxker/default.nix
index 9e7c983d48018..bfa2278e8b866 100644
--- a/pkgs/applications/misc/oxker/default.nix
+++ b/pkgs/applications/misc/oxker/default.nix
@@ -2,17 +2,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "oxker";
-  version = "0.6.3";
+  version = "0.6.4";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-L03r4PHCu+jsUC5vVSG77SR2ak/AsuVAhTd7P1WibAk=";
+    sha256 = "sha256-dBehxqr/UCXIQDMrGFN6ID+v0NYi50JTHuML3su2O0A=";
   };
 
-  cargoHash = "sha256-5UxbZZdVioy1OZCbE6qESGKVnVT6TS4VHzsKlQ8XP2c=";
+  cargoHash = "sha256-wI7yqRvaszBP4OtlWbWIZ9RLf5y7dx2KufYLaK+PWps=";
 
   meta = with lib; {
-    description = "A simple tui to view & control docker containers";
+    description = "Simple tui to view & control docker containers";
     homepage = "https://github.com/mrjackwills/oxker";
     changelog = "https://github.com/mrjackwills/oxker/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/applications/misc/pagefind/default.nix b/pkgs/applications/misc/pagefind/default.nix
index d1ae9f68270ec..aa0fb08984edc 100644
--- a/pkgs/applications/misc/pagefind/default.nix
+++ b/pkgs/applications/misc/pagefind/default.nix
@@ -8,6 +8,7 @@
 , gzip
 , nodejs
 , rustc
+, stdenv
 , wasm-bindgen-cli
 , wasm-pack
 }:
@@ -96,7 +97,6 @@ rustPlatform.buildRustPackage rec {
     echo entering pagefind_web...
     (
       cd pagefind_web
-      export RUSTFLAGS="-C linker=lld"
       bash ./local_build.sh
     )
 
@@ -121,6 +121,9 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ pbsds ];
     platforms = platforms.unix;
+    # See comment about wasm32-unknown-unknown in rustc.nix.
+    broken = lib.any (a: lib.hasAttr a stdenv.hostPlatform.gcc) [ "cpu" "float-abi" "fpu" ] ||
+      !stdenv.hostPlatform.gcc.thumb or true;
     mainProgram = "pagefind";
   };
 }
diff --git a/pkgs/applications/misc/passky-desktop/default.nix b/pkgs/applications/misc/passky-desktop/default.nix
index 26f5debecacdf..b668ba94bfafc 100644
--- a/pkgs/applications/misc/passky-desktop/default.nix
+++ b/pkgs/applications/misc/passky-desktop/default.nix
@@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A simple, modern, lightweight, open source and secure password manager";
+    description = "Simple, modern, lightweight, open source and secure password manager";
     homepage = "https://passky.org";
     downloadPage = "https://github.com/Rabbit-Company/Passky-Desktop/releases";
     changelog = "https://github.com/Rabbit-Company/Passky-Desktop/releases/tag/v${version}";
diff --git a/pkgs/applications/misc/pastel/default.nix b/pkgs/applications/misc/pastel/default.nix
index ba59bc5db42cb..69e6a53758a4f 100644
--- a/pkgs/applications/misc/pastel/default.nix
+++ b/pkgs/applications/misc/pastel/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = lib.optional stdenv.isDarwin Security;
 
   meta = with lib; {
-    description = "A command-line tool to generate, analyze, convert and manipulate colors";
+    description = "Command-line tool to generate, analyze, convert and manipulate colors";
     homepage = "https://github.com/sharkdp/pastel";
     changelog = "https://github.com/sharkdp/pastel/releases/tag/v${version}";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/pkgs/applications/misc/pattypan/default.nix b/pkgs/applications/misc/pattypan/default.nix
index 344540e848635..b5f48c51de803 100644
--- a/pkgs/applications/misc/pattypan/default.nix
+++ b/pkgs/applications/misc/pattypan/default.nix
@@ -66,7 +66,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "An uploader for Wikimedia Commons";
+    description = "Uploader for Wikimedia Commons";
     homepage = "https://commons.wikimedia.org/wiki/Commons:Pattypan";
     license = licenses.mit;
     mainProgram = "pattypan";
diff --git a/pkgs/applications/misc/pdf-quench/default.nix b/pkgs/applications/misc/pdf-quench/default.nix
index bfb240e2b9d21..6159bfc7c810f 100644
--- a/pkgs/applications/misc/pdf-quench/default.nix
+++ b/pkgs/applications/misc/pdf-quench/default.nix
@@ -28,7 +28,7 @@ python3.pkgs.buildPythonApplication {
 
   meta = with lib; {
     homepage = "https://github.com/linuxerwang/pdf-quench";
-    description = "A visual tool for cropping pdf files";
+    description = "Visual tool for cropping pdf files";
     mainProgram = "pdf-quench";
     platforms = platforms.linux;
     license = licenses.gpl2;
diff --git a/pkgs/applications/misc/pdfpc/default.nix b/pkgs/applications/misc/pdfpc/default.nix
index 5b77a264ed2bf..2b6e7a0ed88cb 100644
--- a/pkgs/applications/misc/pdfpc/default.nix
+++ b/pkgs/applications/misc/pdfpc/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = lib.optional stdenv.isDarwin (lib.cmakeBool "MOVIES" false);
 
   meta = with lib; {
-    description = "A presenter console with multi-monitor support for PDF files";
+    description = "Presenter console with multi-monitor support for PDF files";
     mainProgram = "pdfpc";
     homepage = "https://pdfpc.github.io/";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/pdfslicer/default.nix b/pkgs/applications/misc/pdfslicer/default.nix
index d856dfaca8cb3..9d91a89df147e 100644
--- a/pkgs/applications/misc/pdfslicer/default.nix
+++ b/pkgs/applications/misc/pdfslicer/default.nix
@@ -45,8 +45,12 @@ stdenv.mkDerivation rec {
     qpdf
   ];
 
+  CXXFLAGS =
+    # Pending upstream compatibility with GCC 13
+    lib.optional (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "13") "-Wno-changes-meaning";
+
   meta = with lib; {
-    description = "A simple application to extract, merge, rotate and reorder pages of PDF documents";
+    description = "Simple application to extract, merge, rotate and reorder pages of PDF documents";
     homepage = "https://junrrein.github.io/pdfslicer/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/applications/misc/pdfstudio/common.nix b/pkgs/applications/misc/pdfstudio/common.nix
index e7d0611230395..1fc5ffaf2e669 100644
--- a/pkgs/applications/misc/pdfstudio/common.nix
+++ b/pkgs/applications/misc/pdfstudio/common.nix
@@ -70,7 +70,7 @@ let
 in
 # Package with cups in FHS sandbox, because JAVA bin expects "/usr/bin/lpr" for printing.
 buildFHSEnv {
-  name = pname;
+  inherit pname version;
   targetPkgs = pkgs: [
     cups
     thisPackage
@@ -88,7 +88,7 @@ buildFHSEnv {
   meta = with lib; {
     inherit broken;
     homepage = "https://www.qoppa.com/${pname}/";
-    description = "An easy to use, full-featured PDF editing software";
+    description = "Easy to use, full-featured PDF editing software";
     longDescription = longDescription;
     sourceProvenance = with sourceTypes; [
       binaryBytecode
diff --git a/pkgs/applications/misc/pdfstudio/default.nix b/pkgs/applications/misc/pdfstudio/default.nix
index 21874519a7c7b..d326169e560dd 100644
--- a/pkgs/applications/misc/pdfstudio/default.nix
+++ b/pkgs/applications/misc/pdfstudio/default.nix
@@ -75,6 +75,9 @@ in
       url = "https://download.qoppa.com/pdfstudio/v${year}/PDFStudio_v${dot2dash version}_linux64.deb";
       sha256 = "sha256-Po7BMmEWoC46rP7tUwZT9Ji/Wi8lKc6WN8x47fx2DXg=";
     };
+    extraBuildInputs = [
+      (lib.getLib stdenv.cc.cc)  # for libstdc++.so.6 and libgomp.so.1
+    ];
     jdk = jdk17;
   };
 }.${pname}
diff --git a/pkgs/applications/misc/peaclock/default.nix b/pkgs/applications/misc/peaclock/default.nix
index 866d6660910f6..57f1a17685d8f 100644
--- a/pkgs/applications/misc/peaclock/default.nix
+++ b/pkgs/applications/misc/peaclock/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libpthreadstubs icu ];
 
   meta = with lib; {
-    description = "A clock, timer, and stopwatch for the terminal";
+    description = "Clock, timer, and stopwatch for the terminal";
     homepage = "https://octobanana.com/software/peaclock";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/applications/misc/pell/default.nix b/pkgs/applications/misc/pell/default.nix
index 1a11a793f5638..55b5dd3d37108 100644
--- a/pkgs/applications/misc/pell/default.nix
+++ b/pkgs/applications/misc/pell/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/ebzzry/pell";
-    description = "A simple host availability monitor";
+    description = "Simple host availability monitor";
     license = licenses.mit;
     maintainers = [ maintainers.ebzzry ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/misc/perkeep/default.nix b/pkgs/applications/misc/perkeep/default.nix
index 11bee79962e39..d77b99b6c6553 100644
--- a/pkgs/applications/misc/perkeep/default.nix
+++ b/pkgs/applications/misc/perkeep/default.nix
@@ -52,7 +52,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A way of storing, syncing, sharing, modelling and backing up content (née Camlistore)";
+    description = "Way of storing, syncing, sharing, modelling and backing up content (née Camlistore)";
     homepage = "https://perkeep.org";
     license = licenses.asl20;
     maintainers = with maintainers; [ kalbasit ];
diff --git a/pkgs/applications/misc/pgmanage/default.nix b/pkgs/applications/misc/pgmanage/default.nix
index e3860ee625840..0c435dc04fa41 100644
--- a/pkgs/applications/misc/pgmanage/default.nix
+++ b/pkgs/applications/misc/pgmanage/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   passthru.tests.sign-in = nixosTests.pgmanage;
 
   meta = with lib; {
-    description = "A fast replacement for PGAdmin";
+    description = "Fast replacement for PGAdmin";
     longDescription = ''
       At the heart of pgManage is a modern, fast, event-based C-binary, built in
       the style of NGINX and Node.js. This heart makes pgManage as fast as any
diff --git a/pkgs/applications/misc/pgmodeler/default.nix b/pkgs/applications/misc/pgmodeler/default.nix
index 9293a732323ce..c3b5491387cd4 100644
--- a/pkgs/applications/misc/pgmodeler/default.nix
+++ b/pkgs/applications/misc/pgmodeler/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
   dontWrapQtApps = stdenv.isDarwin;
 
   meta = with lib; {
-    description = "A database modeling tool for PostgreSQL";
+    description = "Database modeling tool for PostgreSQL";
     homepage = "https://pgmodeler.io/";
     license = licenses.gpl3;
     maintainers = [ maintainers.esclear ];
diff --git a/pkgs/applications/misc/phoc/default.nix b/pkgs/applications/misc/phoc/default.nix
index 534556e231dec..9d76649687570 100644
--- a/pkgs/applications/misc/phoc/default.nix
+++ b/pkgs/applications/misc/phoc/default.nix
@@ -13,6 +13,7 @@
 , gnome-desktop
 , glib
 , gtk3
+, json-glib
 , wayland
 , libdrm
 , libxkbcommon
@@ -51,6 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
     gnome-desktop
     # For keybindings settings schemas
     gnome.mutter
+    json-glib
     wayland
     finalAttrs.wlroots
     xorg.xcbutilwm
@@ -85,7 +87,7 @@ stdenv.mkDerivation (finalAttrs: {
     mainProgram = "phoc";
     homepage = "https://gitlab.gnome.org/World/Phosh/phoc";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ masipcat tomfitzhenry zhaofengli ];
+    maintainers = with maintainers; [ masipcat zhaofengli ];
     platforms = platforms.linux;
   };
 })
diff --git a/pkgs/applications/misc/pinfo/default.nix b/pkgs/applications/misc/pinfo/default.nix
index 92d892fc9c974..5ec9e939ce556 100644
--- a/pkgs/applications/misc/pinfo/default.nix
+++ b/pkgs/applications/misc/pinfo/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A viewer for info files";
+    description = "Viewer for info files";
     homepage = "https://github.com/baszoetekouw/pinfo";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/applications/misc/pipr/default.nix b/pkgs/applications/misc/pipr/default.nix
index f447ffcaeef6b..f7aeb09b1f9be 100644
--- a/pkgs/applications/misc/pipr/default.nix
+++ b/pkgs/applications/misc/pipr/default.nix
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A commandline-tool to interactively write shell pipelines";
+    description = "Commandline-tool to interactively write shell pipelines";
     mainProgram = "pipr";
     homepage = "https://github.com/ElKowar/pipr";
     license = licenses.mit;
diff --git a/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix b/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix
index e8bc572e284f2..124b43f1bfae5 100644
--- a/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix
+++ b/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   dontWrapQtApps = true;
 
   meta = with lib; {
-    description = "A fork of the default volume plasmoid with a Windows 7 theme (vertical sliders)";
+    description = "Fork of the default volume plasmoid with a Windows 7 theme (vertical sliders)";
     homepage = "https://github.com/Zren/plasma-applet-volumewin7mixer";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/misc/plasma-theme-switcher/default.nix b/pkgs/applications/misc/plasma-theme-switcher/default.nix
index f2af3f6e43ab3..ecdece47c0b2e 100644
--- a/pkgs/applications/misc/plasma-theme-switcher/default.nix
+++ b/pkgs/applications/misc/plasma-theme-switcher/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/maldoinc/plasma-theme-switcher/";
-    description = "A KDE Plasma theme switcher";
+    description = "KDE Plasma theme switcher";
     license = with licenses; [ gpl2Only ];
     maintainers = with maintainers; [ kevink ];
     mainProgram = "plasma-theme";
diff --git a/pkgs/applications/misc/please-cli/default.nix b/pkgs/applications/misc/please-cli/default.nix
index f21ef4203831d..35d877d6eebe6 100644
--- a/pkgs/applications/misc/please-cli/default.nix
+++ b/pkgs/applications/misc/please-cli/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "An AI helper script to create CLI commands based on GPT prompts";
+    description = "AI helper script to create CLI commands based on GPT prompts";
     homepage = "https://github.com/TNG/please-cli";
     license = licenses.asl20;
     maintainers = with maintainers; [ _8-bit-fox ];
diff --git a/pkgs/applications/misc/polychromatic/default.nix b/pkgs/applications/misc/polychromatic/default.nix
index 9ed291c79c7eb..24ff669e4f22a 100644
--- a/pkgs/applications/misc/polychromatic/default.nix
+++ b/pkgs/applications/misc/polychromatic/default.nix
@@ -1,73 +1,77 @@
-{ lib
-, fetchFromGitHub
-, bash
-, glib
-, gdk-pixbuf
-, gettext
-, imagemagick
-, ninja
-, meson
-, sassc
-, python3Packages
-, gobject-introspection
-, wrapGAppsHook3
-, libappindicator-gtk3
-, libxcb
-, qt5
-, ibus
-, usbutils
+{
+  lib,
+  fetchFromGitHub,
+  gettext,
+  ninja,
+  meson,
+  sassc,
+  python3Packages,
+  gobject-introspection,
+  wrapGAppsHook3,
+  libayatana-appindicator,
+  libxcb,
+  qt6,
+  ibus,
+  usbutils,
+  psmisc,
 }:
 
 python3Packages.buildPythonApplication rec {
-  name = "polychromatic";
-  version = "0.8.0";
+  pname = "polychromatic";
+  version = "0.9.1";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "polychromatic";
     repo = "polychromatic";
     rev = "v${version}";
-    sha256 = "sha256-ym2pcGUWM5zCUx/lYs+WECj+wbyBtWnx04W/NRXNKlw=";
+    hash = "sha256-3Pt1Z8G0xDWlFD7LxJILPUifMBTN4OvPNHZv80umO1s=";
   };
 
   postPatch = ''
     patchShebangs scripts
     substituteInPlace scripts/build-styles.sh \
-      --replace '$(which sassc 2>/dev/null)' '${sassc}/bin/sassc' \
-      --replace '$(which sass 2>/dev/null)' '${sassc}/bin/sass'
+      --replace-fail '$(which sassc 2>/dev/null)' '${sassc}/bin/sassc' \
+      --replace-fail '$(which sass 2>/dev/null)' '${sassc}/bin/sass'
     substituteInPlace polychromatic/paths.py \
-      --replace "/usr/share/polychromatic" "$out/share/polychromatic"
+      --replace-fail "/usr/share/polychromatic" "$out/share/polychromatic"
   '';
 
   preConfigure = ''
     scripts/build-styles.sh
   '';
-  nativeBuildInputs = with python3Packages; [
+
+  nativeBuildInputs = [
     gettext
     gobject-introspection
     meson
     ninja
     sassc
     wrapGAppsHook3
-    qt5.wrapQtAppsHook
+    qt6.wrapQtAppsHook
+    qt6.qtbase
   ];
 
+  buildInputs = [ qt6.qtwayland ];
+
   propagatedBuildInputs = with python3Packages; [
     colorama
     colour
     openrazer
-    pyqt5
-    pyqtwebengine
+    pyqt6
+    pyqt6-webengine
     requests
     setproctitle
     libxcb
     openrazer-daemon
-    libappindicator-gtk3
     ibus
     usbutils
+  ] ++ [
+    libayatana-appindicator
+    psmisc
   ];
 
-  dontWrapGapps = true;
+  dontWrapGApps = true;
   dontWrapQtApps = true;
 
   makeWrapperArgs = [
@@ -77,7 +81,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://polychromatic.app/";
-    description = "Graphical front-end and tray applet for configuring Razer peripherals on GNU/Linux.";
+    description = "Graphical front-end and tray applet for configuring Razer peripherals on GNU/Linux";
     longDescription = ''
       Polychromatic is a frontend for OpenRazer that enables Razer devices
       to control lighting effects and more on GNU/Linux.
@@ -85,5 +89,6 @@ python3Packages.buildPythonApplication rec {
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ evanjs ];
+    mainProgram = "polychromatic-controller";
   };
 }
diff --git a/pkgs/applications/misc/pomodoro/default.nix b/pkgs/applications/misc/pomodoro/default.nix
index fe09f5328ee81..35244bf041a77 100644
--- a/pkgs/applications/misc/pomodoro/default.nix
+++ b/pkgs/applications/misc/pomodoro/default.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = lib.optionals stdenv.isDarwin [ Foundation ];
 
   meta = with lib; {
-    description = "A simple CLI pomodoro timer using desktop notifications written in Rust";
+    description = "Simple CLI pomodoro timer using desktop notifications written in Rust";
     homepage = "https://github.com/SanderJSA/Pomodoro";
     license = licenses.mit;
     maintainers = with maintainers; [ annaaurora ];
diff --git a/pkgs/applications/misc/printrun/default.nix b/pkgs/applications/misc/printrun/default.nix
index 884ce49dd8347..c4c5355823ace 100644
--- a/pkgs/applications/misc/printrun/default.nix
+++ b/pkgs/applications/misc/printrun/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "printrun";
-  version = "2.0.1";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "kliment";
     repo = "Printrun";
     rev = "refs/tags/printrun-${version}";
-    hash = "sha256-GmTA/C45MuptN/Y0KjpFjaLV3sWoM4rHz8AMfV9sf4U=";
+    hash = "sha256-MANgxE3z8xq8ScxdxhwfEVsLMF9lgcdSjJZ0qu5p3ps=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/misc/process-compose/default.nix b/pkgs/applications/misc/process-compose/default.nix
index 9cda45b04c320..dad288ef47595 100644
--- a/pkgs/applications/misc/process-compose/default.nix
+++ b/pkgs/applications/misc/process-compose/default.nix
@@ -57,7 +57,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A simple and flexible scheduler and orchestrator to manage non-containerized applications";
+    description = "Simple and flexible scheduler and orchestrator to manage non-containerized applications";
     homepage = "https://github.com/F1bonacc1/process-compose";
     changelog = "https://github.com/F1bonacc1/process-compose/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/misc/process-viewer/default.nix b/pkgs/applications/misc/process-viewer/default.nix
index f453009e0c811..94327ef3e4db9 100644
--- a/pkgs/applications/misc/process-viewer/default.nix
+++ b/pkgs/applications/misc/process-viewer/default.nix
@@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A process viewer GUI in rust";
+    description = "Process viewer GUI in rust";
     homepage = "https://github.com/guillaumegomez/process-viewer";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/pkgs/applications/misc/protonup-qt/default.nix b/pkgs/applications/misc/protonup-qt/default.nix
index 8823744bf3a1f..c6c2df56f2283 100644
--- a/pkgs/applications/misc/protonup-qt/default.nix
+++ b/pkgs/applications/misc/protonup-qt/default.nix
@@ -24,7 +24,7 @@ appimageTools.wrapType2 {
 
   meta = with lib; {
     homepage = "https://davidotek.github.io/protonup-qt/";
-    description = "Install and manage Proton-GE and Luxtorpeda for Steam and Wine-GE for Lutris with this graphical user interface.";
+    description = "Install and manage Proton-GE and Luxtorpeda for Steam and Wine-GE for Lutris with this graphical user interface";
     license = licenses.gpl3;
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     mainProgram = "protonup-qt";
diff --git a/pkgs/applications/misc/pueue/default.nix b/pkgs/applications/misc/pueue/default.nix
index 6a9c6e0e5febe..173323f589751 100644
--- a/pkgs/applications/misc/pueue/default.nix
+++ b/pkgs/applications/misc/pueue/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pueue";
-  version = "3.4.0";
+  version = "3.4.1";
 
   src = fetchFromGitHub {
     owner = "Nukesor";
     repo = "pueue";
     rev = "v${version}";
-    hash = "sha256-kKu/+F+zK0UyRHGkrZdD8alvsQTZFHhTqYK2phxo/ZA=";
+    hash = "sha256-b4kZ//+rO70uZh1fvI4A2dbCZ7ymci9g/u5keMBWYf8=";
   };
 
-  cargoHash = "sha256-KwIGJiCGcFEKuloVtJr0GQxoFQVt/OHyJ/YCp4bCSGc=";
+  cargoHash = "sha256-sTpxcJs5I7LzVw56ka5PlFixJSiJeCae9serS0FhmuA=";
 
   nativeBuildInputs = [
     installShellFiles
@@ -48,7 +48,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/Nukesor/pueue";
-    description = "A daemon for managing long running shell commands";
+    description = "Daemon for managing long running shell commands";
     longDescription = ''
       Pueue is a command-line task management tool for sequential and parallel
       execution of long-running tasks.
diff --git a/pkgs/applications/misc/pw-viz/default.nix b/pkgs/applications/misc/pw-viz/default.nix
index c4afc80830dba..0242164be79c1 100644
--- a/pkgs/applications/misc/pw-viz/default.nix
+++ b/pkgs/applications/misc/pw-viz/default.nix
@@ -57,7 +57,7 @@ rustPlatform.buildRustPackage rec {
   env.NIX_CFLAGS_COMPILE = toString [ "-DPW_ENABLE_DEPRECATED" ];
 
   meta = with lib; {
-    description = "A simple and elegant pipewire graph editor ";
+    description = "Simple and elegant pipewire graph editor ";
     homepage = "https://github.com/ax9d/pw-viz";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ figsoda ];
diff --git a/pkgs/applications/misc/pwsafe/default.nix b/pkgs/applications/misc/pwsafe/default.nix
index d9ae209dda21f..4dd5a5e2d280b 100644
--- a/pkgs/applications/misc/pwsafe/default.nix
+++ b/pkgs/applications/misc/pwsafe/default.nix
@@ -102,7 +102,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A password database utility";
+    description = "Password database utility";
     longDescription = ''
       Password Safe is a password database utility. Like many other
       such products, commercial and otherwise, it stores your
diff --git a/pkgs/applications/misc/pysentation/default.nix b/pkgs/applications/misc/pysentation/default.nix
index 1a84c06c94ff4..ad2d9c02e683a 100644
--- a/pkgs/applications/misc/pysentation/default.nix
+++ b/pkgs/applications/misc/pysentation/default.nix
@@ -34,7 +34,7 @@ python3.pkgs.buildPythonApplication rec {
   pythonImportsCheck = [ "pysentation" ];
 
   meta = with lib; {
-    description = "A CLI for displaying Python presentations";
+    description = "CLI for displaying Python presentations";
     homepage = "https://github.com/mimseyedi/pysentation";
     changelog = "https://github.com/mimseyedi/pysentation/releases/tag/${src.rev}";
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/misc/pytrainer/default.nix b/pkgs/applications/misc/pytrainer/default.nix
index 49be94cc2baba..57d5ae394381f 100644
--- a/pkgs/applications/misc/pytrainer/default.nix
+++ b/pkgs/applications/misc/pytrainer/default.nix
@@ -1,6 +1,5 @@
 { lib
 , python310
-, fetchPypi
 , fetchFromGitHub
 , gdk-pixbuf
 , gnome
diff --git a/pkgs/applications/misc/q4wine/default.nix b/pkgs/applications/misc/q4wine/default.nix
index cb4014684fd2a..f56e4455becda 100644
--- a/pkgs/applications/misc/q4wine/default.nix
+++ b/pkgs/applications/misc/q4wine/default.nix
@@ -29,7 +29,7 @@ mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://q4wine.brezblock.org.ua/";
-    description = "A Qt GUI for Wine to manage prefixes and applications";
+    description = "Qt GUI for Wine to manage prefixes and applications";
     license = licenses.gpl3;
     maintainers = with maintainers; [ rkitover ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/misc/qcad/default.nix b/pkgs/applications/misc/qcad/default.nix
index 5882057988a4e..14b2f19ccd4bb 100644
--- a/pkgs/applications/misc/qcad/default.nix
+++ b/pkgs/applications/misc/qcad/default.nix
@@ -18,14 +18,14 @@
 
 mkDerivation rec {
   pname = "qcad";
-  version = "3.29.6.5";
+  version = "3.30.0.0";
 
   src = fetchFromGitHub {
     name = "qcad-${version}-src";
     owner = "qcad";
     repo = "qcad";
     rev = "v${version}";
-    hash = "sha256-2x3np1cmjJ/IN/vSqKX6mTQbtFROxPzhXPjeJ6mxe9k=";
+    hash = "sha256-KpY/GjagRx0XkH18dDJcf6JfkT/0V8ZHJ5DHtAEUaF4=";
   };
 
   patches = [
diff --git a/pkgs/applications/misc/qlcplus/default.nix b/pkgs/applications/misc/qlcplus/default.nix
index 806ed8380f51c..806a2fed8943a 100644
--- a/pkgs/applications/misc/qlcplus/default.nix
+++ b/pkgs/applications/misc/qlcplus/default.nix
@@ -5,13 +5,13 @@
 
 mkDerivation rec {
   pname = "qlcplus";
-  version = "4.13.0";
+  version = "4.13.1";
 
   src = fetchFromGitHub {
     owner = "mcallegari";
     repo = "qlcplus";
     rev = "QLC+_${version}";
-    sha256 = "11av9hg6l0pb1lmlw35v1v2q9mmqz65yfaq01454y5qlmsbxpgkp";
+    sha256 = "sha256-AKmPxHOlMtea3q0NDULp3XfJ0JnYeF/iFUJw0dDOiio=";
   };
 
   nativeBuildInputs = [ qmake pkg-config ];
@@ -40,7 +40,7 @@ mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A free and cross-platform software to control DMX or analog lighting systems like moving heads, dimmers, scanners etc";
+    description = "Free and cross-platform software to control DMX or analog lighting systems like moving heads, dimmers, scanners etc";
     maintainers = [ ];
     license = licenses.asl20;
     platforms = platforms.all;
diff --git a/pkgs/applications/misc/qsyncthingtray/default.nix b/pkgs/applications/misc/qsyncthingtray/default.nix
index bfe1d61818f5c..2fa22cf732211 100644
--- a/pkgs/applications/misc/qsyncthingtray/default.nix
+++ b/pkgs/applications/misc/qsyncthingtray/default.nix
@@ -55,7 +55,7 @@ mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/sieren/QSyncthingTray/";
-    description = "A Traybar Application for Syncthing written in C++";
+    description = "Traybar Application for Syncthing written in C++";
     longDescription = ''
         A cross-platform status bar for Syncthing.
         Currently supports macOS, Windows and Linux.
diff --git a/pkgs/applications/misc/qtpass/default.nix b/pkgs/applications/misc/qtpass/default.nix
index d401a57dda78a..e37056e86a56a 100644
--- a/pkgs/applications/misc/qtpass/default.nix
+++ b/pkgs/applications/misc/qtpass/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A multi-platform GUI for pass, the standard unix password manager";
+    description = "Multi-platform GUI for pass, the standard unix password manager";
     mainProgram = "qtpass";
     homepage = "https://qtpass.org";
     license = licenses.gpl3;
diff --git a/pkgs/applications/misc/raiseorlaunch/default.nix b/pkgs/applications/misc/raiseorlaunch/default.nix
index 455b6df4d0546..925bc9bdcb3f7 100644
--- a/pkgs/applications/misc/raiseorlaunch/default.nix
+++ b/pkgs/applications/misc/raiseorlaunch/default.nix
@@ -18,7 +18,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     maintainers = with maintainers; [ winpat ];
-    description = "A run-or-raise-application-launcher for i3 window manager";
+    description = "Run-or-raise-application-launcher for i3 window manager";
     mainProgram = "raiseorlaunch";
     homepage = "https://github.com/open-dynaMIX/raiseorlaunch";
     license = licenses.mit;
diff --git a/pkgs/applications/misc/ratt/default.nix b/pkgs/applications/misc/ratt/default.nix
index fd882b3b572c6..788dde7c5c9ca 100644
--- a/pkgs/applications/misc/ratt/default.nix
+++ b/pkgs/applications/misc/ratt/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A tool for converting websites to rss/atom feeds";
+    description = "Tool for converting websites to rss/atom feeds";
     homepage = "https://git.sr.ht/~ghost08/ratt";
     license = licenses.mit;
     maintainers = with maintainers; [ kmein ];
diff --git a/pkgs/applications/misc/regextester/default.nix b/pkgs/applications/misc/regextester/default.nix
index 902ae57492011..8508f65727e05 100644
--- a/pkgs/applications/misc/regextester/default.nix
+++ b/pkgs/applications/misc/regextester/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A desktop application to test regular expressions interactively";
+    description = "Desktop application to test regular expressions interactively";
     mainProgram = "com.github.artemanufrij.regextester";
     homepage = "https://github.com/artemanufrij/regextester";
     maintainers = with maintainers; [ samdroid-apps ];
diff --git a/pkgs/applications/misc/remarkable/remarkable-mouse/default.nix b/pkgs/applications/misc/remarkable/remarkable-mouse/default.nix
index 64baaf5d1b088..c953d5e6299a1 100644
--- a/pkgs/applications/misc/remarkable/remarkable-mouse/default.nix
+++ b/pkgs/applications/misc/remarkable/remarkable-mouse/default.nix
@@ -16,7 +16,7 @@ buildPythonApplication rec {
   pythonImportsCheck = [ "remarkable_mouse" ];
 
   meta = with lib; {
-    description = "A program to use a reMarkable as a graphics tablet";
+    description = "Program to use a reMarkable as a graphics tablet";
     homepage = "https://github.com/evidlo/remarkable_mouse";
     license = licenses.gpl3;
     maintainers = [ maintainers.nickhu ];
diff --git a/pkgs/applications/misc/remarkable/rmapi/default.nix b/pkgs/applications/misc/remarkable/rmapi/default.nix
index 585a18bb34329..c995fdcad389d 100644
--- a/pkgs/applications/misc/remarkable/rmapi/default.nix
+++ b/pkgs/applications/misc/remarkable/rmapi/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Go app that allows access to the ReMarkable Cloud API programmatically";
+    description = "Go app that allows access to the ReMarkable Cloud API programmatically";
     homepage = "https://github.com/juruen/rmapi";
     changelog = "https://github.com/juruen/rmapi/blob/v${version}/CHANGELOG.md";
     license = licenses.agpl3Only;
diff --git a/pkgs/applications/misc/remnote/default.nix b/pkgs/applications/misc/remnote/default.nix
index 198922f1876c8..0f6be51187fa1 100644
--- a/pkgs/applications/misc/remnote/default.nix
+++ b/pkgs/applications/misc/remnote/default.nix
@@ -1,58 +1,33 @@
-{ lib, stdenv, fetchurl, appimageTools, makeDesktopItem }:
-
-stdenv.mkDerivation (finalAttrs: let
-  inherit (finalAttrs) pname version src appexec icon desktopItem;
-
-in
 {
+  lib,
+  fetchurl,
+  appimageTools,
+}:
+let
   pname = "remnote";
-  version = "1.16.4";
-
+  version = "1.16.18";
   src = fetchurl {
-    url = "https://download.remnote.io/remnote-desktop/RemNote-${version}.AppImage";
-    hash = "sha256-dgbQ0cbPq7BSQ9VwwH6+GoAxb85HDxRixfjeDJBtOrg=";
-  };
-
-  appexec = appimageTools.wrapType2 {
-    inherit pname version src;
-  };
-
-  icon = fetchurl {
-    url = "https://www.remnote.io/icon.png";
-    hash = "sha256-r5D7fNefKPdjtmV7f/88Gn3tqeEG8LGuD4nHI/sCk94=";
+    url = "https://download2.remnote.io/remnote-desktop2/RemNote-${version}.AppImage";
+    hash = "sha256-ps7Rl1oA2QOPvO2XeCY8DrWtCV9WPlX9jbhypz2ZARA=";
   };
-
-  desktopItem = makeDesktopItem {
-    type = "Application";
-    name = "remnote";
-    desktopName = "RemNote";
-    comment = "Spaced Repetition";
-    icon = "remnote";
-    exec = "remnote %u";
-    categories = [ "Office" ];
-    mimeTypes = [ "x-scheme-handler/remnote" "x-scheme-handler/rn" ];
-  };
-
-  dontUnpack = true;
-  dontConfigure = true;
-  dontBuild = true;
-
-  installPhase = ''
-    runHook preInstall
-
-    install -Dm755 ${appexec}/bin/remnote $out/bin/remnote
-    install -Dm444 "${desktopItem}/share/applications/"* -t $out/share/applications/
-    install -Dm444 ${icon} $out/share/pixmaps/remnote.png
-
-    runHook postInstall
+  appimageContents = appimageTools.extractType2 { inherit pname version src; };
+in
+appimageTools.wrapType2 {
+  inherit pname version src;
+
+  extraInstallCommands = ''
+    install -Dm444 ${appimageContents}/remnote.desktop -t $out/share/applications
+    substituteInPlace $out/share/applications/remnote.desktop \
+      --replace-fail 'Exec=AppRun --no-sandbox %U' 'Exec=remnote %u'
+    install -Dm444 ${appimageContents}/remnote.png -t $out/share/pixmaps
   '';
 
   meta = with lib; {
-    description = "A note-taking application focused on learning and productivity";
+    description = "Note-taking application focused on learning and productivity";
     homepage = "https://remnote.com/";
-    maintainers = with maintainers; [ max-niederman chewblacka ];
+    maintainers = with maintainers; [ chewblacka ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     mainProgram = "remnote";
   };
-})
+}
diff --git a/pkgs/applications/misc/remontoire/default.nix b/pkgs/applications/misc/remontoire/default.nix
index 754d32617e789..05eb16abaf21b 100644
--- a/pkgs/applications/misc/remontoire/default.nix
+++ b/pkgs/applications/misc/remontoire/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A small GTK app for presenting keybinding hints";
+    description = "Small GTK app for presenting keybinding hints";
     mainProgram = "remontoire";
     homepage = "https://github.com/regolith-linux/remontoire";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/rescuetime/default.nix b/pkgs/applications/misc/rescuetime/default.nix
index 22a1964e466df..615fa2c10faeb 100644
--- a/pkgs/applications/misc/rescuetime/default.nix
+++ b/pkgs/applications/misc/rescuetime/default.nix
@@ -42,10 +42,7 @@ in mkDerivation rec {
     latestVersion="$(curl -sS https://www.rescuetime.com/release-notes/linux | pup '.release:first-of-type h2 strong text{}' | tr -d '\n')"
 
     for platform in ${lib.concatStringsSep " " meta.platforms}; do
-      # The script will not perform an update when the version attribute is up to date from previous platform run
-      # We need to clear it before each run
-      update-source-version ${pname} 0 $(yes 0 | head -64 | tr -d "\n") --system=$platform
-      update-source-version ${pname} "$latestVersion" --system=$platform
+      update-source-version ${pname} "$latestVersion" --system=$platform --ignore-same-version
     done
   '';
 
diff --git a/pkgs/applications/misc/river-tag-overlay/default.nix b/pkgs/applications/misc/river-tag-overlay/default.nix
index e1652cf70da71..63092e3586f90 100644
--- a/pkgs/applications/misc/river-tag-overlay/default.nix
+++ b/pkgs/applications/misc/river-tag-overlay/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A pop-up showing tag status";
+    description = "Pop-up showing tag status";
     homepage = "https://sr.ht/~leon_plickat/river-tag-overlay";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ edrex ];
diff --git a/pkgs/applications/misc/rivercarro/default.nix b/pkgs/applications/misc/rivercarro/default.nix
index 93b476973f55f..fa99e88f87a67 100644
--- a/pkgs/applications/misc/rivercarro/default.nix
+++ b/pkgs/applications/misc/rivercarro/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://git.sr.ht/~novakane/rivercarro";
-    description = "A layout generator for river Wayland compositor, fork of rivertile";
+    description = "Layout generator for river Wayland compositor, fork of rivertile";
     longDescription = ''
       A slightly modified version of rivertile layout generator for river.
 
diff --git a/pkgs/applications/misc/rlaunch/default.nix b/pkgs/applications/misc/rlaunch/default.nix
index fe8d499d00a80..52499df258e06 100644
--- a/pkgs/applications/misc/rlaunch/default.nix
+++ b/pkgs/applications/misc/rlaunch/default.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A lightweight application launcher for X11";
+    description = "Lightweight application launcher for X11";
     homepage = "https://github.com/PonasKovas/rlaunch";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/applications/misc/rofi-emoji/default.nix b/pkgs/applications/misc/rofi-emoji/default.nix
index ac8518e6a2d4f..3b0aaefc83c28 100644
--- a/pkgs/applications/misc/rofi-emoji/default.nix
+++ b/pkgs/applications/misc/rofi-emoji/default.nix
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An emoji selector plugin for Rofi";
+    description = "Emoji selector plugin for Rofi";
     homepage = "https://github.com/Mange/rofi-emoji";
     license = licenses.mit;
     maintainers = with maintainers; [ cole-h ];
diff --git a/pkgs/applications/misc/rofi-top/default.nix b/pkgs/applications/misc/rofi-top/default.nix
index 877cbd6a284ef..e7ca95c81e393 100644
--- a/pkgs/applications/misc/rofi-top/default.nix
+++ b/pkgs/applications/misc/rofi-top/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A plugin for rofi that emulates top behaviour";
+    description = "Plugin for rofi that emulates top behaviour";
     homepage = "https://github.com/davatorium/rofi-top";
     license = licenses.mit;
     maintainers = with maintainers; [ aacebedo ];
diff --git a/pkgs/applications/misc/rootbar/default.nix b/pkgs/applications/misc/rootbar/default.nix
index 2ef92f1c9aa21..a528cd4a94ade 100644
--- a/pkgs/applications/misc/rootbar/default.nix
+++ b/pkgs/applications/misc/rootbar/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://hg.sr.ht/~scoopta/rootbar";
-    description = "A bar for Wayland WMs";
+    description = "Bar for Wayland WMs";
     mainProgram = "rootbar";
     longDescription = ''
       Root Bar is a bar for wlroots based wayland compositors such as sway and
diff --git a/pkgs/applications/misc/rsclock/default.nix b/pkgs/applications/misc/rsclock/default.nix
index 1830a60087269..a8d0a89d4800f 100644
--- a/pkgs/applications/misc/rsclock/default.nix
+++ b/pkgs/applications/misc/rsclock/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-/uAxIV7eroJNGsLl4T/6RskoTIWKu5Cgmv48eMkDZQw=";
 
   meta = with lib; {
-    description = "A simple terminal clock written in Rust";
+    description = "Simple terminal clock written in Rust";
     homepage = "https://github.com/valebes/rsClock";
     license = licenses.mit;
     maintainers = with maintainers; [valebes];
diff --git a/pkgs/applications/misc/rusty-psn/default.nix b/pkgs/applications/misc/rusty-psn/default.nix
index c9968f7257f80..058e4a9c028a9 100644
--- a/pkgs/applications/misc/rusty-psn/default.nix
+++ b/pkgs/applications/misc/rusty-psn/default.nix
@@ -18,16 +18,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rusty-psn";
-  version = "0.3.0";
+  version = "0.3.7";
 
   src = fetchFromGitHub {
     owner = "RainbowCookie32";
     repo = "rusty-psn";
     rev = "v${version}";
-    sha256 = "sha256-BsbuEsW6cQbWg8BLtEBnjoCfcUCy1xWz9u0wBa8BKtA=";
+    sha256 = "sha256-EGj9VVY+Zbmth7H1oTgq38KNLT/aWoTPn8k4sVkScgg=";
   };
 
-  cargoSha256 = "sha256-TD5du7I6Hw1PC8s9NI19jYCXlaZMnsdVj/a0q+M8Raw=";
+  cargoPatches = [ ./fix-cargo-lock.patch ];
+
+  cargoSha256 = "sha256-8J92WtMmCTnghPqSmNYhG3IVdmpHsHEH7Fkod0UYKJU=";
+
+  # Tests require network access
+  doCheck = false;
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/applications/misc/rusty-psn/fix-cargo-lock.patch b/pkgs/applications/misc/rusty-psn/fix-cargo-lock.patch
new file mode 100644
index 0000000000000..8e9275366cede
--- /dev/null
+++ b/pkgs/applications/misc/rusty-psn/fix-cargo-lock.patch
@@ -0,0 +1,13 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index 3b63c3d..38a0fc0 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -3141,7 +3141,7 @@ dependencies = [
+ 
+ [[package]]
+ name = "rusty-psn"
+-version = "0.3.3"
++version = "0.3.7"
+ dependencies = [
+  "bytesize",
+  "clap",
diff --git a/pkgs/applications/misc/safeeyes/default.nix b/pkgs/applications/misc/safeeyes/default.nix
index 87925d732e89a..44ba291f31e98 100644
--- a/pkgs/applications/misc/safeeyes/default.nix
+++ b/pkgs/applications/misc/safeeyes/default.nix
@@ -18,11 +18,11 @@ with python3.pkgs;
 
 buildPythonApplication rec {
   pname = "safeeyes";
-  version = "2.1.6";
+  version = "2.1.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-tvsBTf6+zKBzB5aL+LUcEvE4jmVHnnoY0L4xoKMJ0vM=";
+    hash = "sha256-65U/j6P6X4JzhL0aEOnzKa/Al6SYprOOxix2dtcusJQ=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/misc/sc-im/default.nix b/pkgs/applications/misc/sc-im/default.nix
index 506ff5f10c8af..2ec7f35a219b4 100644
--- a/pkgs/applications/misc/sc-im/default.nix
+++ b/pkgs/applications/misc/sc-im/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     changelog = "https://github.com/andmarti1424/sc-im/blob/${src.rev}/CHANGES";
     homepage = "https://github.com/andmarti1424/sc-im";
-    description = "An ncurses spreadsheet program for terminal";
+    description = "Ncurses spreadsheet program for terminal";
     license = licenses.bsdOriginal;
     maintainers = with maintainers; [ dotlambda ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/misc/seatd/default.nix b/pkgs/applications/misc/seatd/default.nix
index da3dda9fc8d71..c10d5085dfc85 100644
--- a/pkgs/applications/misc/seatd/default.nix
+++ b/pkgs/applications/misc/seatd/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests.basic = nixosTests.seatd;
 
   meta = {
-    description = "A minimal seat management daemon, and a universal seat management library";
+    description = "Minimal seat management daemon, and a universal seat management library";
     changelog = "https://git.sr.ht/~kennylevinsen/seatd/refs/${finalAttrs.version}";
     homepage = "https://sr.ht/~kennylevinsen/seatd/";
     license = lib.licenses.mit;
diff --git a/pkgs/applications/misc/selectdefaultapplication/default.nix b/pkgs/applications/misc/selectdefaultapplication/default.nix
index 700ac3e75884e..cfc142cb96e8d 100644
--- a/pkgs/applications/misc/selectdefaultapplication/default.nix
+++ b/pkgs/applications/misc/selectdefaultapplication/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A very simple application that lets you define default applications on Linux in a sane way";
+    description = "Very simple application that lets you define default applications on Linux in a sane way";
     mainProgram = "selectdefaultapplication";
     homepage = "https://github.com/sandsmark/selectdefaultapplication";
     maintainers = with maintainers; [ nsnelson ];
diff --git a/pkgs/applications/misc/semver/default.nix b/pkgs/applications/misc/semver/default.nix
index 53e06a4c406ec..750d86eea1139 100644
--- a/pkgs/applications/misc/semver/default.nix
+++ b/pkgs/applications/misc/semver/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/catouc/semver-go";
-    description = "A small CLI to fish out the current or next semver version from a git repository";
+    description = "Small CLI to fish out the current or next semver version from a git repository";
     maintainers = with maintainers; [ catouc ];
     license = licenses.mit;
     mainProgram = "semver";
diff --git a/pkgs/applications/misc/sent/default.nix b/pkgs/applications/misc/sent/default.nix
index dc681b7385dc6..9f11cfa53bb20 100644
--- a/pkgs/applications/misc/sent/default.nix
+++ b/pkgs/applications/misc/sent/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple plaintext presentation tool";
+    description = "Simple plaintext presentation tool";
     mainProgram = "sent";
     homepage = "https://tools.suckless.org/sent/";
     license = licenses.isc;
diff --git a/pkgs/applications/misc/sfwbar/default.nix b/pkgs/applications/misc/sfwbar/default.nix
deleted file mode 100644
index 9f467fdf6a2d3..0000000000000
--- a/pkgs/applications/misc/sfwbar/default.nix
+++ /dev/null
@@ -1,58 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, gtk3
-, meson
-, ninja
-, json_c
-, pkg-config
-, gtk-layer-shell
-, libpulseaudio
-, libmpdclient
-, libxkbcommon
-, alsa-lib
-, makeWrapper
-,
-}:
-stdenv.mkDerivation rec {
-  pname = "sfwbar";
-  version = "1.0_beta13";
-
-  src = fetchFromGitHub {
-    owner = "LBCrion";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-7oiuTEqdXDReKdakJX6+HRaSi1XovM+MkHFkaFZtq64=";
-  };
-
-  buildInputs = [
-    gtk3
-    json_c
-    gtk-layer-shell
-    libpulseaudio
-    libmpdclient
-    libxkbcommon
-    alsa-lib
-  ];
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    pkg-config
-    makeWrapper
-  ];
-
-  postFixup = ''
-    wrapProgram $out/bin/sfwbar \
-      --suffix XDG_DATA_DIRS : $out/share
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/LBCrion/sfwbar";
-    description = "A flexible taskbar application for wayland compositors, designed with a stacking layout in mind";
-    mainProgram = "sfwbar";
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ NotAShelf ];
-    license = licenses.gpl3Only;
-  };
-}
diff --git a/pkgs/applications/misc/shavee/default.nix b/pkgs/applications/misc/shavee/default.nix
index 7854cfbd17f4d..1e4dadcf786b3 100644
--- a/pkgs/applications/misc/shavee/default.nix
+++ b/pkgs/applications/misc/shavee/default.nix
@@ -39,7 +39,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = {
     homepage = "https://github.com/ashuio/shavee";
-    description = "A program to automatically decrypt and mount ZFS datasets using Yubikey HMAC as 2FA or any File on USB/SFTP/HTTPS";
+    description = "Program to automatically decrypt and mount ZFS datasets using Yubikey HMAC as 2FA or any File on USB/SFTP/HTTPS";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ jasonodoom ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/applications/misc/sidequest/default.nix b/pkgs/applications/misc/sidequest/default.nix
index c472fdb65ec97..c90a7116b6df2 100644
--- a/pkgs/applications/misc/sidequest/default.nix
+++ b/pkgs/applications/misc/sidequest/default.nix
@@ -99,7 +99,7 @@
       inherit pname version;
 
       meta = with lib; {
-        description = "An open app store and side-loading tool for Android-based VR devices such as the Oculus Go, Oculus Quest or Moverio BT 300";
+        description = "Open app store and side-loading tool for Android-based VR devices such as the Oculus Go, Oculus Quest or Moverio BT 300";
         homepage = "https://github.com/SideQuestVR/SideQuest";
         downloadPage = "https://github.com/SideQuestVR/SideQuest/releases";
         sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/applications/misc/sioyek/default.nix b/pkgs/applications/misc/sioyek/default.nix
index 3cdec7ec291f7..ab853d4dc1f4d 100644
--- a/pkgs/applications/misc/sioyek/default.nix
+++ b/pkgs/applications/misc/sioyek/default.nix
@@ -85,7 +85,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://sioyek.info/";
-    description = "A PDF viewer designed for research papers and technical books";
+    description = "PDF viewer designed for research papers and technical books";
     mainProgram = "sioyek";
     changelog = "https://github.com/ahrm/sioyek/releases/tag/v${finalAttrs.version}";
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/misc/skate/default.nix b/pkgs/applications/misc/skate/default.nix
index b344a0e0639e2..6ea198adc0332 100644
--- a/pkgs/applications/misc/skate/default.nix
+++ b/pkgs/applications/misc/skate/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" "-X=main.Version=${version}" ];
 
   meta = with lib; {
-    description = "A personal multi-machine syncable key value store";
+    description = "Personal multi-machine syncable key value store";
     homepage = "https://github.com/charmbracelet/skate";
     changelog = "https://github.com/charmbracelet/skate/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/applications/misc/slippy/default.nix b/pkgs/applications/misc/slippy/default.nix
index 40de95838ad5b..cf5cd1ff0b3db 100644
--- a/pkgs/applications/misc/slippy/default.nix
+++ b/pkgs/applications/misc/slippy/default.nix
@@ -53,11 +53,6 @@ rustPlatform.buildRustPackage rec {
     darwin.apple_sdk.frameworks.Security
   ];
 
-  # Cargo.lock is outdated
-  postConfigure = ''
-    cargo metadata --offline
-  '';
-
   meta = with lib; {
     description = "Markdown slideshows in Rust";
     homepage = "https://github.com/axodotdev/slippy";
diff --git a/pkgs/applications/misc/slweb/default.nix b/pkgs/applications/misc/slweb/default.nix
index b1e92cb9a39ce..f71a0d61c2a56 100644
--- a/pkgs/applications/misc/slweb/default.nix
+++ b/pkgs/applications/misc/slweb/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A static website generator which aims at being simplistic";
+    description = "Static website generator which aims at being simplistic";
     homepage = "https://strahinja.srht.site/slweb/";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/misc/snowsql/default.nix b/pkgs/applications/misc/snowsql/default.nix
index c4af36299895a..677f33d267b74 100644
--- a/pkgs/applications/misc/snowsql/default.nix
+++ b/pkgs/applications/misc/snowsql/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "snowsql";
-  version = "1.2.26";
+  version = "1.3.0";
 
   src = fetchurl {
     url = "https://sfc-repo.snowflakecomputing.com/snowsql/bootstrap/${lib.versions.majorMinor version}/linux_x86_64/snowflake-snowsql-${version}-1.x86_64.rpm";
-    sha256 = "sha256-V0TZebmhc463DczQuTDy0nZQX+io61z/m32/n/EKFJY=";
+    sha256 = "sha256-KKCCj+pIwWhuzOuxljQ8Y11mAwD/GONspbXuPAMBdhE=";
   };
 
   nativeBuildInputs = [ rpmextract makeWrapper ];
diff --git a/pkgs/applications/misc/spacenav-cube-example/default.nix b/pkgs/applications/misc/spacenav-cube-example/default.nix
index 66c16e458b8f6..c34828627b4e3 100644
--- a/pkgs/applications/misc/spacenav-cube-example/default.nix
+++ b/pkgs/applications/misc/spacenav-cube-example/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://spacenav.sourceforge.net/";
-    description = "An example application to test the spacenavd driver";
+    description = "Example application to test the spacenavd driver";
     license = licenses.bsd3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ sohalt ];
diff --git a/pkgs/applications/misc/speedread/default.nix b/pkgs/applications/misc/speedread/default.nix
index 234e6b136feb2..e62edf48cbadc 100644
--- a/pkgs/applications/misc/speedread/default.nix
+++ b/pkgs/applications/misc/speedread/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple terminal-based open source Spritz-alike";
+    description = "Simple terminal-based open source Spritz-alike";
     longDescription = ''
       Speedread is a command line filter that shows input text as a
       per-word rapid serial visual presentation aligned on optimal
diff --git a/pkgs/applications/misc/spotify-tray/default.nix b/pkgs/applications/misc/spotify-tray/default.nix
index 372e468487fd6..107424e4e836d 100644
--- a/pkgs/applications/misc/spotify-tray/default.nix
+++ b/pkgs/applications/misc/spotify-tray/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/tsmetana/spotify-tray";
-    description = "Adds a tray icon to the Spotify Linux client application.";
+    description = "Adds a tray icon to the Spotify Linux client application";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ Enzime ];
diff --git a/pkgs/applications/misc/sticky/default.nix b/pkgs/applications/misc/sticky/default.nix
index 423944cafb1fa..62c3c8394b6aa 100644
--- a/pkgs/applications/misc/sticky/default.nix
+++ b/pkgs/applications/misc/sticky/default.nix
@@ -15,17 +15,16 @@
 
 stdenv.mkDerivation rec {
   pname = "sticky";
-  version = "1.19";
+  version = "1.20";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-nvnft62vZ9ivijYnQGULW7ff2aAVJiIx9xq09My2NxE=";
+    hash = "sha256-HzTXaJgDu72pWM0mGNNBy2yFB0u0rqATFK9JzyOw8oE=";
   };
 
   postPatch = ''
-    sed -i -e "s|/usr/bin|$out/bin|" data/org.x.sticky.service
     sed -i -e "s|/usr/lib|$out/lib|" usr/bin/sticky
     sed -i -e "s|/usr/share|$out/share|" usr/lib/sticky/*.py
   '';
@@ -51,20 +50,11 @@ stdenv.mkDerivation rec {
     xapp
   ];
 
-  postInstall = ''
-    # https://github.com/linuxmint/sticky/pull/118
-    cp -r ../etc $out
-    cp -r ../usr/* $out
-
-    glib-compile-schemas $out/share/glib-2.0/schemas
-  '';
-
   dontWrapGApps = true;
 
   preFixup = ''
     buildPythonPath "$out $pythonPath"
 
-    chmod +x $out/bin/sticky
     wrapProgram $out/bin/sticky \
       --prefix PYTHONPATH : "$program_PYTHONPATH" \
       ''${gappsWrapperArgs[@]}
@@ -77,7 +67,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A sticky notes app for the linux desktop";
+    description = "Sticky notes app for the linux desktop";
     mainProgram = "sticky";
     homepage = "https://github.com/linuxmint/sticky";
     license = licenses.gpl2Only;
diff --git a/pkgs/applications/misc/streamdeck-ui/default.nix b/pkgs/applications/misc/streamdeck-ui/default.nix
deleted file mode 100644
index f8ecf3694e511..0000000000000
--- a/pkgs/applications/misc/streamdeck-ui/default.nix
+++ /dev/null
@@ -1,106 +0,0 @@
-{ lib
-, python3Packages
-, fetchFromGitHub
-, copyDesktopItems
-, writeText
-, makeDesktopItem
-, wrapGAppsHook3
-, xvfb-run
-, qt6
-}:
-
-python3Packages.buildPythonApplication rec {
-  pname = "streamdeck-ui";
-  version = "3.1.0";
-
-  src = fetchFromGitHub {
-    repo = "streamdeck-linux-gui";
-    owner = "streamdeck-linux-gui";
-    rev = "v${version}";
-    sha256 = "sha256-AIE9j022L4WSlHBAu3TT5uE4Ilgk/jYSmU03K8Hs8xY=";
-  };
-
-  patches = [
-    # nixpkgs has a newer pillow version
-    ./update-pillow.patch
-  ];
-
-  desktopItems = let
-    common = {
-      name = "streamdeck-ui";
-      desktopName = "Stream Deck UI";
-      icon = "streamdeck-ui";
-      exec = "streamdeck";
-      comment = "UI for the Elgato Stream Deck";
-      categories = [ "Utility" ];
-    };
-  in builtins.map makeDesktopItem [
-    common
-    (common // {
-      name = "${common.name}-noui";
-      exec = "${common.exec} --no-ui";
-      noDisplay = true;
-    })
-  ];
-
-  postInstall =
-    let
-      udevRules = ''
-        SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", TAG+="uaccess"
-      '';
-    in
-      ''
-        mkdir -p $out/lib/systemd/user
-        substitute scripts/streamdeck.service $out/lib/systemd/user/streamdeck.service \
-          --replace '<path to streamdeck>' $out/bin/streamdeck
-
-        mkdir -p "$out/etc/udev/rules.d"
-        cp ${writeText "70-streamdeck.rules" udevRules} $out/etc/udev/rules.d/70-streamdeck.rules
-
-        mkdir -p "$out/share/pixmaps"
-        cp streamdeck_ui/logo.png $out/share/pixmaps/streamdeck-ui.png
-      '';
-
-  dontWrapQtApps = true;
-  dontWrapGApps = true;
-  makeWrapperArgs = [ "\${qtWrapperArgs[@]}" "\${gappsWrapperArgs[@]}"];
-
-  format = "pyproject";
-
-  nativeBuildInputs = [
-    python3Packages.poetry-core
-    copyDesktopItems
-    qt6.wrapQtAppsHook
-    wrapGAppsHook3
-  ];
-
-  propagatedBuildInputs = with python3Packages; [
-    setuptools
-    filetype
-    cairosvg
-    pillow
-    pynput
-    pyside6
-    streamdeck
-    xlib
-  ] ++ lib.optionals stdenv.isLinux [
-    qt6.qtwayland
-  ];
-
-  nativeCheckInputs = [
-    xvfb-run
-    python3Packages.pytest
-  ];
-
-  checkPhase = ''
-    xvfb-run pytest tests
-  '';
-
-  meta = with lib; {
-    description = "Linux compatible UI for the Elgato Stream Deck";
-    homepage = "https://streamdeck-linux-gui.github.io/streamdeck-linux-gui/";
-    license = licenses.mit;
-    mainProgram = "streamdeck";
-    maintainers = with maintainers; [ majiir ];
-  };
-}
diff --git a/pkgs/applications/misc/streamdeck-ui/update-pillow.patch b/pkgs/applications/misc/streamdeck-ui/update-pillow.patch
deleted file mode 100644
index 88945586628f1..0000000000000
--- a/pkgs/applications/misc/streamdeck-ui/update-pillow.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/pyproject.toml b/pyproject.toml
-index 0aff29e..4371616 100644
---- a/pyproject.toml
-+++ b/pyproject.toml
-@@ -14,7 +14,7 @@ packages = [
- [tool.poetry.dependencies]
- python = ">=3.8,<3.12"
- streamdeck = "^0.9.3"
--pillow = "^9.4.0"
-+pillow = "^10.0.0"
- pynput = "^1.7.6"
- pyside6 = "^6.4.2"
- CairoSVG = "^2.5.2"
diff --git a/pkgs/applications/misc/stretchly/default.nix b/pkgs/applications/misc/stretchly/default.nix
index 71288ca07c9dd..ab7ae6fff5997 100644
--- a/pkgs/applications/misc/stretchly/default.nix
+++ b/pkgs/applications/misc/stretchly/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A break time reminder app";
+    description = "Break time reminder app";
     longDescription = ''
       stretchly is a cross-platform electron app that reminds you to take
       breaks when working on your computer. By default, it runs in your tray
diff --git a/pkgs/applications/misc/stw/default.nix b/pkgs/applications/misc/stw/default.nix
index ca46c163128af..689fc9e81ce7f 100644
--- a/pkgs/applications/misc/stw/default.nix
+++ b/pkgs/applications/misc/stw/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "CC:=$(CC)" "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "A simple text widget for X resembling the watch(1) command";
+    description = "Simple text widget for X resembling the watch(1) command";
     license = licenses.mit;
     maintainers = with maintainers; [ somasis ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/misc/stylish/default.nix b/pkgs/applications/misc/stylish/default.nix
index 8dce6409bb7c4..77b3d480ac1d4 100644
--- a/pkgs/applications/misc/stylish/default.nix
+++ b/pkgs/applications/misc/stylish/default.nix
@@ -44,7 +44,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/thevinter/styli.sh";
-    description = "A shell script to manage wallpapers";
+    description = "Shell script to manage wallpapers";
     mainProgram = "styli.sh";
     longDescription = ''
       Styli.sh is a Bash script that aims to automate the tedious process
diff --git a/pkgs/applications/misc/subsurface/default.nix b/pkgs/applications/misc/subsurface/default.nix
index fb028c7447511..e8cc4baf27575 100644
--- a/pkgs/applications/misc/subsurface/default.nix
+++ b/pkgs/applications/misc/subsurface/default.nix
@@ -54,7 +54,7 @@ let
 
     meta = with lib; {
       homepage = "https://www.libdivecomputer.org";
-      description = "A cross-platform and open source library for communication with dive computers from various manufacturers";
+      description = "Cross-platform and open source library for communication with dive computers from various manufacturers";
       maintainers = with maintainers; [ mguentner ];
       license = licenses.lgpl21;
       platforms = platforms.all;
@@ -139,7 +139,7 @@ stdenv.mkDerivation {
   passthru = { inherit version libdc googlemaps; };
 
   meta = with lib; {
-    description = "A divelog program";
+    description = "Divelog program";
     mainProgram = "subsurface";
     longDescription = ''
       Subsurface can track single- and multi-tank dives using air, Nitrox or TriMix.
diff --git a/pkgs/applications/misc/swappy/default.nix b/pkgs/applications/misc/swappy/default.nix
index cb56e4281da06..d13578b3c82ae 100644
--- a/pkgs/applications/misc/swappy/default.nix
+++ b/pkgs/applications/misc/swappy/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A Wayland native snapshot editing tool, inspired by Snappy on macOS";
+    description = "Wayland native snapshot editing tool, inspired by Snappy on macOS";
     homepage = "https://github.com/jtheoof/swappy";
     license = licenses.mit;
     mainProgram = "swappy";
diff --git a/pkgs/applications/misc/sway-contrib/default.nix b/pkgs/applications/misc/sway-contrib/default.nix
index 4ddca21774e01..b0c8154f2c513 100644
--- a/pkgs/applications/misc/sway-contrib/default.nix
+++ b/pkgs/applications/misc/sway-contrib/default.nix
@@ -9,18 +9,19 @@
 , slurp
 , grim
 , jq
+, gnugrep
 , bash
 
 , python3Packages
 }:
 
 let
-  version = "0-unstable-2024-01-20";
+  version = "0-unstable-2024-03-19";
   src = fetchFromGitHub {
     owner = "OctopusET";
     repo = "sway-contrib";
-    rev = "b7825b218e677c65f6849be061b93bd5654991bf";
-    hash = "sha256-ZTfItJ77mrNSzXFVcj7OV/6zYBElBj+1LcLLHxBFypk=";
+    rev = "5d33a290e3cac3f0fed38ff950939da28e3ebfd7";
+    hash = "sha256-2qYxkXowSSzVcpsPO4JoUqaH/VUkOOWu1RKFXp1CXGs=";
   };
 
   meta = with lib; {
@@ -46,6 +47,7 @@ grimshot = stdenvNoCC.mkDerivation {
   buildInputs = [ bash ];
   installPhase = ''
     installManPage grimshot.1
+    installShellCompletion --cmd grimshot grimshot-completion.bash
 
     install -Dm 0755 grimshot $out/bin/grimshot
     wrapProgram $out/bin/grimshot --set PATH \
@@ -57,6 +59,7 @@ grimshot = stdenvNoCC.mkDerivation {
         slurp
         grim
         jq
+        gnugrep
         ] }"
   '';
 
@@ -71,7 +74,7 @@ grimshot = stdenvNoCC.mkDerivation {
   '';
 
   meta = with lib; meta // {
-    description = "A helper for screenshots within sway";
+    description = "Helper for screenshots within sway";
     maintainers = with maintainers; [ evils ];
     mainProgram = "grimshot";
   };
diff --git a/pkgs/applications/misc/sway-launcher-desktop/default.nix b/pkgs/applications/misc/sway-launcher-desktop/default.nix
index cd81fee9f1ec0..09dafdbac154c 100644
--- a/pkgs/applications/misc/sway-launcher-desktop/default.nix
+++ b/pkgs/applications/misc/sway-launcher-desktop/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "TUI Application launcher with Desktop Entry support.";
+    description = "TUI Application launcher with Desktop Entry support";
     mainProgram = "sway-launcher-desktop";
     longDescription = ''
       This is a TUI-based launcher menu made with bash and the amazing fzf.
diff --git a/pkgs/applications/misc/swaysettings/default.nix b/pkgs/applications/misc/swaysettings/default.nix
index 490f0048081e5..5b13954c63f34 100644
--- a/pkgs/applications/misc/swaysettings/default.nix
+++ b/pkgs/applications/misc/swaysettings/default.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A GUI for configuring your sway desktop";
+    description = "GUI for configuring your sway desktop";
     longDescription = ''
       Sway settings enables easy configuration of a sway desktop environment
       such as selection of application or icon themes.
diff --git a/pkgs/applications/misc/syncthing-tray/default.nix b/pkgs/applications/misc/syncthing-tray/default.nix
deleted file mode 100644
index e9db92df121c4..0000000000000
--- a/pkgs/applications/misc/syncthing-tray/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ lib, fetchFromGitHub, buildGoPackage, pkg-config, libappindicator-gtk3 }:
-
-buildGoPackage rec {
-  pname = "syncthing-tray";
-  version = "0.7";
-
-  goPackagePath = "github.com/alex2108/syncthing-tray";
-
-  src = fetchFromGitHub {
-    owner = "alex2108";
-    repo = "syncthing-tray";
-    rev = "v${version}";
-    sha256 = "0869kinnsfzb8ydd0sv9fgqsi1sy5rhqg4whfdnrv82xjc71xyw3";
-  };
-
-  goDeps = ./deps.nix;
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libappindicator-gtk3 ];
-
-  meta = with lib; {
-    description = "Simple application tray for syncthing";
-    homepage = "https://github.com/alex2108/syncthing-tray";
-    license = licenses.mit;
-    maintainers = with maintainers; [ nickhu ];
-    mainProgram = "syncthing-tray";
-  };
-}
diff --git a/pkgs/applications/misc/syncthing-tray/deps.nix b/pkgs/applications/misc/syncthing-tray/deps.nix
deleted file mode 100644
index 1103146ed1b7e..0000000000000
--- a/pkgs/applications/misc/syncthing-tray/deps.nix
+++ /dev/null
@@ -1,93 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
-[
-  {
-    goPackagePath = "github.com/alex2108/systray";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alex2108/systray";
-      rev = "40e874866be2dc2c57ab031bcbde27a76b90721a";
-      sha256 = "1bxnb6skb9ss0lwlwswql07ardkhm28nxglvlsxkdlmzv1dcwy1q";
-    };
-  }
-  {
-    goPackagePath = "github.com/getlantern/context";
-    fetch = {
-      type = "git";
-      url = "https://github.com/getlantern/context";
-      rev = "624d99b1798d7c5375ea1d3ca4c5b04d58f7c775";
-      sha256 = "09yf9x6478a5z01hybr98zwa8ax3fx7l6wwsvdkxp3fdg9dqm13b";
-    };
-  }
-  {
-    goPackagePath = "github.com/getlantern/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/getlantern/errors";
-      rev = "99fa440517e8f3d1e4cd8d6dbed6b41f4c1ed3d6";
-      sha256 = "08rl32l5ks67hcgjxik62nd5g558mv4101kmz1ak7d3vfgg3m6i3";
-    };
-  }
-  {
-    goPackagePath = "github.com/getlantern/golog";
-    fetch = {
-      type = "git";
-      url = "https://github.com/getlantern/golog";
-      rev = "cca714f7feb5df8e455f409b549d384441ac4578";
-      sha256 = "0gnf30n38zkx356cqc6jdv1kbzy59ddqhqndwrxsm2n2zc3b5p7q";
-    };
-  }
-  {
-    goPackagePath = "github.com/getlantern/hex";
-    fetch = {
-      type = "git";
-      url = "https://github.com/getlantern/hex";
-      rev = "083fba3033ad473db3dd31c9bb368473d37581a7";
-      sha256 = "18q6rypmcqmcwlfzrrdcz08nff0a289saplvd9y3ifnfcqdw3j77";
-    };
-  }
-  {
-    goPackagePath = "github.com/getlantern/hidden";
-    fetch = {
-      type = "git";
-      url = "https://github.com/getlantern/hidden";
-      rev = "d52a649ab33af200943bb599898dbdcfdbc94cb7";
-      sha256 = "0133qmp4sjq8da5di3459vc5g5nqbpqra0f558zd95js3fdmkmsi";
-    };
-  }
-  {
-    goPackagePath = "github.com/getlantern/ops";
-    fetch = {
-      type = "git";
-      url = "https://github.com/getlantern/ops";
-      rev = "b70875f5d689a9438bca72aefd7142a2af889b18";
-      sha256 = "0cfa2bbkykbzbskmgd2an34him72z6f3y88ag1v5ffpb0d6bnar7";
-    };
-  }
-  {
-    goPackagePath = "github.com/getlantern/stack";
-    fetch = {
-      type = "git";
-      url = "https://github.com/getlantern/stack";
-      rev = "02f928aad224fbccd50d66edd776fc9d1e9f2f2b";
-      sha256 = "0ddl5r4iw3c7p4drh4d8phl7d0ssdddsnd3xjm1lzgxylqq6r568";
-    };
-  }
-  {
-    goPackagePath = "github.com/oxtoacart/bpool";
-    fetch = {
-      type = "git";
-      url = "https://github.com/oxtoacart/bpool";
-      rev = "4e1c5567d7c2dd59fa4c7c83d34c2f3528b025d6";
-      sha256 = "01kk6dhkz96yhp3p5v2rjwq8mbrwrdsn6glqw7jp4h7g5za7yi95";
-    };
-  }
-  {
-    goPackagePath = "github.com/toqueteos/webbrowser";
-    fetch = {
-      type = "git";
-      url = "https://github.com/toqueteos/webbrowser";
-      rev = "e2ebfdc6cb1a3fdc4fc4dbd20a0cae0c2e406792";
-      sha256 = "0sgjnxrq0jgipkij8b6xiy4am9bv9zziqxxdhw15rdjc5piyk3a2";
-    };
-  }
-]
diff --git a/pkgs/applications/misc/syncthingtray/default.nix b/pkgs/applications/misc/syncthingtray/default.nix
index e16625b02e173..b5bf0696f7645 100644
--- a/pkgs/applications/misc/syncthingtray/default.nix
+++ b/pkgs/applications/misc/syncthingtray/default.nix
@@ -34,14 +34,14 @@ https://github.com/NixOS/nixpkgs/issues/199596#issuecomment-1310136382 */
 }:
 
 stdenv.mkDerivation (finalAttrs: {
-  version = "1.5.3";
+  version = "1.5.4";
   pname = "syncthingtray";
 
   src = fetchFromGitHub {
     owner = "Martchus";
     repo = "syncthingtray";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-wE6N0GSdcLDQOO+M3Ahlv3Z2S+PqdvZAnueCKB9+R08=";
+    hash = "sha256-3Z9heiQiuYzWtReKs/XeA+ENRKgxHR74ANzrDcdyjh4=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/misc/tabula-java/default.nix b/pkgs/applications/misc/tabula-java/default.nix
index ce402396c97da..4c437ea6df5de 100644
--- a/pkgs/applications/misc/tabula-java/default.nix
+++ b/pkgs/applications/misc/tabula-java/default.nix
@@ -35,7 +35,7 @@ maven.buildMavenPackage rec {
   '';
 
   meta = with lib; {
-    description = "A library for extracting tables from PDF files.";
+    description = "Library for extracting tables from PDF files";
     longDescription = ''
       tabula-java is the table extraction engine that powers
       Tabula. You can use tabula-java as a command-line tool to
diff --git a/pkgs/applications/misc/tabula/default.nix b/pkgs/applications/misc/tabula/default.nix
index ec2ded975fed3..c4b7749b5304c 100644
--- a/pkgs/applications/misc/tabula/default.nix
+++ b/pkgs/applications/misc/tabula/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
 
   meta = with lib; {
-    description = "A tool for liberating data tables locked inside PDF files";
+    description = "Tool for liberating data tables locked inside PDF files";
     longDescription = ''
       If you’ve ever tried to do anything with data provided to you in PDFs, you
       know how painful it is — there's no easy way to copy-and-paste rows of data
diff --git a/pkgs/applications/misc/tandoor-recipes/default.nix b/pkgs/applications/misc/tandoor-recipes/default.nix
index e4c7c51112a51..906a266b14e3e 100644
--- a/pkgs/applications/misc/tandoor-recipes/default.nix
+++ b/pkgs/applications/misc/tandoor-recipes/default.nix
@@ -16,6 +16,18 @@ let
         };
         propagatedBuildInputs = [ super.decorator super.six ];
       });
+
+      djangorestframework = super.djangorestframework.overridePythonAttrs (oldAttrs: rec {
+        version = "3.14.0";
+        src = oldAttrs.src.override {
+          rev = version;
+          hash = "sha256-Fnj0n3NS3SetOlwSmGkLE979vNJnYE6i6xwVBslpNz4=";
+        };
+        nativeCheckInputs = with super; [
+          pytest7CheckHook
+          pytest-django
+        ];
+      });
     };
   };
 
diff --git a/pkgs/applications/misc/tango/default.nix b/pkgs/applications/misc/tango/default.nix
index bd2dca9d790b4..11b7275d1e94c 100644
--- a/pkgs/applications/misc/tango/default.nix
+++ b/pkgs/applications/misc/tango/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
   vendorHash = "sha256-83nKtiEy1na1HgAQcbTEfl+0vGg6BkCLBK1REN9fP+k=";
 
   meta = with lib; {
-    description = "A local command-line Japanese dictionary tool using yomichan's dictionary files";
+    description = "Local command-line Japanese dictionary tool using yomichan's dictionary files";
     homepage = "https://github.com/masakichi/tango";
     license = licenses.mit;
     maintainers = with maintainers; [ donovanglover ];
diff --git a/pkgs/applications/misc/taskjuggler/default.nix b/pkgs/applications/misc/taskjuggler/default.nix
index 5c15748f2b8ec..cc2d7218bd4cc 100644
--- a/pkgs/applications/misc/taskjuggler/default.nix
+++ b/pkgs/applications/misc/taskjuggler/default.nix
@@ -12,7 +12,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "taskjuggler";
 
   meta = with lib; {
-    description = "A modern and powerful project management tool";
+    description = "Modern and powerful project management tool";
     homepage    = "https://taskjuggler.org/";
     license     = licenses.gpl2;
     platforms   = platforms.unix;
diff --git a/pkgs/applications/misc/tasknc/default.nix b/pkgs/applications/misc/tasknc/default.nix
index 5d8b453b0f4ea..2b3decab36b58 100644
--- a/pkgs/applications/misc/tasknc/default.nix
+++ b/pkgs/applications/misc/tasknc/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/lharding/tasknc";
-    description = "A ncurses wrapper around taskwarrior";
+    description = "Ncurses wrapper around taskwarrior";
     mainProgram = "tasknc";
     maintainers = with maintainers; [ matthiasbeyer ];
     platforms = platforms.linux; # Cannot test others
diff --git a/pkgs/applications/misc/taskwarrior-tui/default.nix b/pkgs/applications/misc/taskwarrior-tui/default.nix
index e96478d96c68f..88a8e99f26a02 100644
--- a/pkgs/applications/misc/taskwarrior-tui/default.nix
+++ b/pkgs/applications/misc/taskwarrior-tui/default.nix
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A terminal user interface for taskwarrior ";
+    description = "Terminal user interface for taskwarrior ";
     homepage = "https://github.com/kdheepak/taskwarrior-tui";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ matthiasbeyer ];
diff --git a/pkgs/applications/misc/tdrop/default.nix b/pkgs/applications/misc/tdrop/default.nix
index e39dd24623216..5f43956d8ae6b 100644
--- a/pkgs/applications/misc/tdrop/default.nix
+++ b/pkgs/applications/misc/tdrop/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ makeWrapper ];
 
   meta = with lib; {
-    description = "A Glorified WM-Independent Dropdown Creator";
+    description = "Glorified WM-Independent Dropdown Creator";
     mainProgram = "tdrop";
     homepage = "https://github.com/noctuid/tdrop";
     license = licenses.bsd2;
diff --git a/pkgs/applications/misc/terminal-stocks/default.nix b/pkgs/applications/misc/terminal-stocks/default.nix
index 1b389c2164abd..381bed4033153 100644
--- a/pkgs/applications/misc/terminal-stocks/default.nix
+++ b/pkgs/applications/misc/terminal-stocks/default.nix
@@ -2,16 +2,16 @@
 
 buildNpmPackage rec {
   pname = "terminal-stocks";
-  version = "1.0.18";
+  version = "1.0.19";
 
   src = fetchFromGitHub {
     owner = "shweshi";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-f/ccGh31qT+euuGA3RRyiUYl+wpxazZHs5R8xehX3Zk=";
+    hash = "sha256-6eDBcQfo6M+Z31ILLM4BbiOxoTD6t4LQJxawoJFEzhg=";
   };
 
-  npmDepsHash = "sha256-t71SfoPYVFLWcrjv2ErWazDeaVTO4W46g4lFler86Sc=";
+  npmDepsHash = "sha256-0k2+vdfOUF0zV6Tl7VGXS2dNLnCHgSdI12LqvGkbv+k=";
   dontNpmBuild = true;
 
   passthru.updateScript = nix-update-script {};
diff --git a/pkgs/applications/misc/terminal-typeracer/default.nix b/pkgs/applications/misc/terminal-typeracer/default.nix
index 4aee5fccfbd10..80ece5bded7a5 100644
--- a/pkgs/applications/misc/terminal-typeracer/default.nix
+++ b/pkgs/applications/misc/terminal-typeracer/default.nix
@@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec {
   LIBGIT2_NO_VENDOR = 1;
 
   meta = with lib; {
-    description = "An open source terminal based version of Typeracer written in rust";
+    description = "Open source terminal based version of Typeracer written in rust";
     homepage = "https://gitlab.com/ttyperacer/terminal-typeracer";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ yoctocell ];
diff --git a/pkgs/applications/misc/themechanger/default.nix b/pkgs/applications/misc/themechanger/default.nix
index e1c26828c97ee..98f6b6183a339 100644
--- a/pkgs/applications/misc/themechanger/default.nix
+++ b/pkgs/applications/misc/themechanger/default.nix
@@ -52,7 +52,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/ALEX11BR/ThemeChanger";
-    description = "A theme changing utility for Linux";
+    description = "Theme changing utility for Linux";
     mainProgram = "themechanger";
     longDescription = ''
       This app is a theme changing utility for Linux, BSDs, and whatnots.
diff --git a/pkgs/applications/misc/thokr/default.nix b/pkgs/applications/misc/thokr/default.nix
index cf82a8d6aeb81..94363083ab9e4 100644
--- a/pkgs/applications/misc/thokr/default.nix
+++ b/pkgs/applications/misc/thokr/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "sha256-gEpmXyLmw6bX3enA3gNVtXNMlkQl6J/8AwJQSY0RtFw=";
 
   meta = with lib; {
-    description = "A typing tui with visualized results and historical logging";
+    description = "Typing tui with visualized results and historical logging";
     homepage = "https://github.com/thatvegandev/thokr";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/pkgs/applications/misc/ticker/default.nix b/pkgs/applications/misc/ticker/default.nix
index a717135f48b4c..da8624a06baab 100644
--- a/pkgs/applications/misc/ticker/default.nix
+++ b/pkgs/applications/misc/ticker/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "ticker";
-  version = "4.6.2";
+  version = "4.6.3";
 
   src = fetchFromGitHub {
     owner = "achannarasappa";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-bNqwQwYuaWThpVVlZji0uiNKf8Ynxs00bAD+iSnbtm8=";
+    hash = "sha256-EjQLJG1/AEnOKGcGh2C1HdRAVUnZLhehxTtpWlvD+jw=";
   };
 
-  vendorHash = "sha256-cTJa170oFFPRQSg3njZk26XvzsRRdJqcsFokKUWJr6Q=";
+  vendorHash = "sha256-bWdyypcIagbKTMnhT0X4UmoPVjyTasCSud6pX1L3oIc=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/applications/misc/tickrs/default.nix b/pkgs/applications/misc/tickrs/default.nix
index a22f9da07359e..29587be9bcde2 100644
--- a/pkgs/applications/misc/tickrs/default.nix
+++ b/pkgs/applications/misc/tickrs/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tickrs";
-  version = "0.14.9";
+  version = "0.14.10";
 
   src = fetchFromGitHub {
     owner = "tarkah";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-cN5GtU3bmsdJvfjVdWvWAshiU3Ged7L9pc8wid8GQwA=";
+    hash = "sha256-6iMThVLIkFoNa7Z0MuyhUNGCwFtCfmG7jHvDfrEZE2I=";
   };
 
-  cargoHash = "sha256-ngDA085V3+2oBH13Fs+pJez2W2/i1pEKoWdqJ4/3Q0I=";
+  cargoHash = "sha256-gfBmoN91xUcjBafxBoLP41Fl8FuH2taAu3P6sgJPNWI=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/applications/misc/timewarrior/default.nix b/pkgs/applications/misc/timewarrior/default.nix
index 02445a655b462..beaf36465efeb 100644
--- a/pkgs/applications/misc/timewarrior/default.nix
+++ b/pkgs/applications/misc/timewarrior/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A command-line time tracker";
+    description = "Command-line time tracker";
     homepage = "https://timewarrior.net";
     license = licenses.mit;
     maintainers = with maintainers; [ matthiasbeyer mrVanDalo ];
diff --git a/pkgs/applications/misc/tint2/default.nix b/pkgs/applications/misc/tint2/default.nix
index 18aa389ac1e7c..46c89527c4f0b 100644
--- a/pkgs/applications/misc/tint2/default.nix
+++ b/pkgs/applications/misc/tint2/default.nix
@@ -6,7 +6,6 @@
 , gettext
 , cairo
 , pango
-, pcre
 , glib
 , imlib2
 , gtk3
@@ -54,7 +53,6 @@ stdenv.mkDerivation rec {
   buildInputs = [
     cairo
     pango
-    pcre
     glib
     imlib2
     gtk3
@@ -78,7 +76,7 @@ stdenv.mkDerivation rec {
     for f in ./src/launcher/apps-common.c \
              ./src/launcher/icon-theme-common.c
     do
-      substituteInPlace $f --replace /usr/share/ /run/current-system/sw/share/
+      substituteInPlace $f --replace-fail /usr/share/ /run/current-system/sw/share/
     done
   '';
 
diff --git a/pkgs/applications/misc/todoist-electron/default.nix b/pkgs/applications/misc/todoist-electron/default.nix
index 16e266619ff44..2e74f2fe3e0bd 100644
--- a/pkgs/applications/misc/todoist-electron/default.nix
+++ b/pkgs/applications/misc/todoist-electron/default.nix
@@ -34,7 +34,7 @@ in appimageTools.wrapAppImage {
 
   meta = with lib; {
     homepage = "https://todoist.com";
-    description = "The official Todoist electron app";
+    description = "Official Todoist electron app";
     platforms = [ "x86_64-linux" ];
     license = licenses.unfree;
     maintainers = with maintainers; [ kylesferrazza pokon548 ];
diff --git a/pkgs/applications/misc/topydo/default.nix b/pkgs/applications/misc/topydo/default.nix
index 59e93dcb5dea8..39a3c7013b0a1 100644
--- a/pkgs/applications/misc/topydo/default.nix
+++ b/pkgs/applications/misc/topydo/default.nix
@@ -43,7 +43,7 @@ python3.pkgs.buildPythonApplication rec {
   LC_ALL = "en_US.UTF-8";
 
   meta = with lib; {
-    description = "A cli todo application compatible with the todo.txt format";
+    description = "Cli todo application compatible with the todo.txt format";
     mainProgram = "topydo";
     homepage = "https://github.com/topydo/topydo";
     changelog = "https://github.com/topydo/topydo/blob/${src.rev}/CHANGES.md";
diff --git a/pkgs/applications/misc/transifex-cli/default.nix b/pkgs/applications/misc/transifex-cli/default.nix
index 295e32addf40d..05b344fc3e774 100644
--- a/pkgs/applications/misc/transifex-cli/default.nix
+++ b/pkgs/applications/misc/transifex-cli/default.nix
@@ -28,7 +28,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "The Transifex command-line client";
+    description = "Transifex command-line client";
     homepage = "https://github.com/transifex/transifex-cli";
     license = licenses.asl20;
     maintainers = with maintainers; [ thornycrackers ];
diff --git a/pkgs/applications/misc/translatelocally/default.nix b/pkgs/applications/misc/translatelocally/default.nix
index 1ce54adedc84c..c4fd6378ccefe 100644
--- a/pkgs/applications/misc/translatelocally/default.nix
+++ b/pkgs/applications/misc/translatelocally/default.nix
@@ -70,7 +70,7 @@ in stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     mainProgram = "translateLocally";
     homepage = "https://translatelocally.com/";
-    description = "Fast and secure translation on your local machine, powered by marian and Bergamot.";
+    description = "Fast and secure translation on your local machine, powered by marian and Bergamot";
     license = licenses.mit;
     maintainers = with maintainers; [ pacien ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/misc/tsukae/default.nix b/pkgs/applications/misc/tsukae/default.nix
index fcd211769677c..bf1b213155132 100644
--- a/pkgs/applications/misc/tsukae/default.nix
+++ b/pkgs/applications/misc/tsukae/default.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
   vendorHash = "sha256-Q0WOzyJGnTXTmj7ZPKyVSnWuWb4bbDjDpgftQ1Opf/I=";
 
   meta = with lib; {
-    description = "Show off your most used shell commands.";
+    description = "Show off your most used shell commands";
     homepage = "https://github.com/irevenko/tsukae";
     license = licenses.mit;
     mainProgram = "tsukae";
diff --git a/pkgs/applications/misc/ttdl/default.nix b/pkgs/applications/misc/ttdl/default.nix
index a67742aa63308..e1e1ccd1cd59a 100644
--- a/pkgs/applications/misc/ttdl/default.nix
+++ b/pkgs/applications/misc/ttdl/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-+jYl/oUeJaABgDX/OBTyeo/B7RYc2MUTreU1ySLG0XQ=";
 
   meta = with lib; {
-    description = "A CLI tool to manage todo lists in todo.txt format";
+    description = "CLI tool to manage todo lists in todo.txt format";
     homepage = "https://github.com/VladimirMarkelov/ttdl";
     changelog = "https://github.com/VladimirMarkelov/ttdl/blob/v${version}/changelog";
     license = with licenses; [ mit ];
diff --git a/pkgs/applications/misc/tthsum/default.nix b/pkgs/applications/misc/tthsum/default.nix
index 2c41c1c300f7f..603ddeca4fd7a 100644
--- a/pkgs/applications/misc/tthsum/default.nix
+++ b/pkgs/applications/misc/tthsum/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "An md5sum-alike program that works with Tiger/THEX hashes";
+    description = "Md5sum-alike program that works with Tiger/THEX hashes";
     longDescription = ''
       tthsum generates or checks TTH checksums (root of the THEX hash
       tree). The Merkle Hash Tree, invented by Ralph Merkle, is a hash
diff --git a/pkgs/applications/misc/tuckr/default.nix b/pkgs/applications/misc/tuckr/default.nix
index f61f7bea912d6..d660248deef88 100644
--- a/pkgs/applications/misc/tuckr/default.nix
+++ b/pkgs/applications/misc/tuckr/default.nix
@@ -2,21 +2,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tuckr";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "RaphGL";
     repo = "Tuckr";
     rev = version;
-    hash = "sha256-S4mHNCyK7WGYRBckxQkwA3+eu7QhUyKkOZ/KqhMJf+s=";
+    hash = "sha256-oQSuR0Zt1T8YU3O2Dq/qHl4ysVDl+3EVvp9r2mD3hRA=";
   };
 
-  cargoHash = "sha256-aUhiMJUKV+Da3WLUY9Jr3oDB8yqcUm0pP05yKaITjM0=";
+  cargoHash = "sha256-ESDfUZsoqwBurXuwNIRSqxoDWnA2VpDZ9Q9GGaV8B4Y=";
 
   doCheck = false; # test result: FAILED. 5 passed; 3 failed;
 
   meta = with lib; {
-    description = "A super powered replacement for GNU Stow";
+    description = "Super powered replacement for GNU Stow";
     homepage = "https://github.com/RaphGL/Tuckr";
     changelog = "https://github.com/RaphGL/Tuckr/releases/tag/${version}";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/tui-journal/default.nix b/pkgs/applications/misc/tui-journal/default.nix
index 102b9ad354df5..4af9f8e2559a2 100644
--- a/pkgs/applications/misc/tui-journal/default.nix
+++ b/pkgs/applications/misc/tui-journal/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tui-journal";
-  version = "0.8.4";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "AmmarAbouZor";
     repo = "tui-journal";
     rev = "v${version}";
-    hash = "sha256-SgpIR7gLfmX6mCtuqRonqzX07Eblp9Mq80y71b05FZY=";
+    hash = "sha256-FAN0F54cCEfqoSr1La+X+et5MGTzB2Wb466Xr8eyeiI=";
   };
 
-  cargoHash = "sha256-SetNhIengAiLRMHoYBRxHR1LgzYywRC7L6hmRF9COik=";
+  cargoHash = "sha256-y6gAv4Xf0yxpbOAdYhp3nDBH8skiyAI10+Ylz/uxf7w=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/applications/misc/tut/default.nix b/pkgs/applications/misc/tut/default.nix
index 85f2768cc715f..f6094f516694c 100644
--- a/pkgs/applications/misc/tut/default.nix
+++ b/pkgs/applications/misc/tut/default.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
   vendorHash = "sha256-gPF4XrUqDDJCCY1zrUr3AXDG0uoADR8LBxRP4yolcug=";
 
   meta = with lib; {
-    description = "A TUI for Mastodon with vim inspired keys";
+    description = "TUI for Mastodon with vim inspired keys";
     homepage = "https://github.com/RasmusLindroth/tut";
     license = licenses.mit;
     maintainers = with maintainers; [ equirosa ];
diff --git a/pkgs/applications/misc/twitch-chat-downloader/default.nix b/pkgs/applications/misc/twitch-chat-downloader/default.nix
index 459a47bfcab09..922c925cbb0c3 100644
--- a/pkgs/applications/misc/twitch-chat-downloader/default.nix
+++ b/pkgs/applications/misc/twitch-chat-downloader/default.nix
@@ -1,6 +1,6 @@
 { lib
 , buildPythonApplication
-, fetchPypi
+, fetchFromGitHub
 , iso8601
 , progressbar2
 , requests
@@ -8,15 +8,16 @@
 
 buildPythonApplication rec {
   pname = "twitch-chat-downloader";
-  version = "2.5.3";
+  version = "2.5.4";
 
   # NOTE: Using maintained fork because upstream has stopped working, and it has
   # not been updated in a while.
   # https://github.com/PetterKraabol/Twitch-Chat-Downloader/issues/142
-  src = fetchPypi {
-    inherit version;
-    pname = "tdh-tcd";
-    sha256 = "sha256-dvj0HoF/2n5aQGMOD8UYY4EZegQwThPy1XJFvXyRT4Q=";
+  src = fetchFromGitHub {
+    owner = "TheDrHax";
+    repo = "twitch-chat-downloader";
+    rev = version;
+    hash = "sha256-mV60ygrtQa9ZkJ2CImhAV59ckCJ7vJSA9cWkYE2xo1M=";
   };
 
   propagatedBuildInputs = [
@@ -34,6 +35,6 @@ buildPythonApplication rec {
     mainProgram = "tcd";
     homepage = "https://github.com/TheDrHax/Twitch-Chat-Downloader";
     license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ assistant ];
   };
 }
diff --git a/pkgs/applications/misc/twmn/default.nix b/pkgs/applications/misc/twmn/default.nix
index d4b4d1d9d8035..7700c62a50642 100644
--- a/pkgs/applications/misc/twmn/default.nix
+++ b/pkgs/applications/misc/twmn/default.nix
@@ -28,7 +28,7 @@ mkDerivation {
   '';
 
   meta = {
-    description = "A notification system for tiling window managers";
+    description = "Notification system for tiling window managers";
     homepage = "https://github.com/sboli/twmn";
     platforms = with lib.platforms; linux;
     maintainers = [ lib.maintainers.matejc ];
diff --git a/pkgs/applications/misc/ulauncher/default.nix b/pkgs/applications/misc/ulauncher/default.nix
index 9c455fa6ba729..92d93b5095d13 100644
--- a/pkgs/applications/misc/ulauncher/default.nix
+++ b/pkgs/applications/misc/ulauncher/default.nix
@@ -25,7 +25,7 @@ python3Packages.buildPythonApplication rec {
 
   src = fetchurl {
     url = "https://github.com/Ulauncher/Ulauncher/releases/download/${version}/ulauncher_${version}.tar.gz";
-    sha256 = "sha256-YgOw3Gyy/o8qorWAnAlQrAZ2ZTnyP3PagLs2Qkdg788=";
+    hash = "sha256-YgOw3Gyy/o8qorWAnAlQrAZ2ZTnyP3PagLs2Qkdg788=";
   };
 
   nativeBuildInputs = with python3Packages; [
@@ -57,6 +57,7 @@ python3Packages.buildPythonApplication rec {
     pyxdg
     pycairo
     requests
+    semver
     websocket-client
   ];
 
@@ -76,7 +77,7 @@ python3Packages.buildPythonApplication rec {
     substituteInPlace setup.py --subst-var out
     patchShebangs bin/ulauncher-toggle
     substituteInPlace bin/ulauncher-toggle \
-      --replace wmctrl ${wmctrl}/bin/wmctrl
+      --replace-fail wmctrl ${wmctrl}/bin/wmctrl
   '';
 
   # https://github.com/Ulauncher/Ulauncher/issues/390
@@ -116,7 +117,7 @@ python3Packages.buildPythonApplication rec {
 
 
   meta = with lib; {
-    description = "A fast application launcher for Linux, written in Python, using GTK";
+    description = "Fast application launcher for Linux, written in Python, using GTK";
     homepage = "https://ulauncher.io/";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/pkgs/applications/misc/uni/default.nix b/pkgs/applications/misc/uni/default.nix
index 57f88ab6eafef..5773c13ae68e8 100644
--- a/pkgs/applications/misc/uni/default.nix
+++ b/pkgs/applications/misc/uni/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "uni";
-  version = "2.6.0";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     owner = "arp242";
     repo = "uni";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Ij/jUbXl3GkeNZmGJ82i++6VkOW46YFI9m83otY6M7Q=";
+    hash = "sha256-ociPkuRtpBS+x1zSVNYk8oqAsJZGv31/TUUUlBOYhJA=";
   };
 
-  vendorHash = "sha256-88SSrGvZSs6Opi3IKSNNqptuOWMmtTQ4ZDR7ViuGugk=";
+  vendorHash = "sha256-/PvBn2RRYuVpjnrIL1xAcVqAKZuIV2KTSyVtBW1kqj4=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/applications/misc/usync/default.nix b/pkgs/applications/misc/usync/default.nix
index 1034b3844b130..7a5abda593029 100644
--- a/pkgs/applications/misc/usync/default.nix
+++ b/pkgs/applications/misc/usync/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/ebzzry/usync";
-    description = "A simple site-to-site synchronization tool";
+    description = "Simple site-to-site synchronization tool";
     license = licenses.mit;
     maintainers = [ maintainers.ebzzry ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/misc/valent/default.nix b/pkgs/applications/misc/valent/default.nix
index b65d2b36e31f9..1071f39d43d20 100644
--- a/pkgs/applications/misc/valent/default.nix
+++ b/pkgs/applications/misc/valent/default.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    description = "An implementation of the KDE Connect protocol, built on GNOME platform libraries";
+    description = "Implementation of the KDE Connect protocol, built on GNOME platform libraries";
     mainProgram = "valent";
     longDescription = ''
       Note that you have to open firewall ports for other devices
diff --git a/pkgs/applications/misc/valentina/default.nix b/pkgs/applications/misc/valentina/default.nix
index e0ca06af8aa3e..525a3a5399df1 100644
--- a/pkgs/applications/misc/valentina/default.nix
+++ b/pkgs/applications/misc/valentina/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An open source sewing pattern drafting software";
+    description = "Open source sewing pattern drafting software";
     homepage = "https://smart-pattern.com.ua/";
     changelog = "https://gitlab.com/smart-pattern/valentina/-/blob/v${version}/ChangeLog.txt";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/misc/variety/default.nix b/pkgs/applications/misc/variety/default.nix
index e90a8e9a1e01c..3a4d6ac760856 100644
--- a/pkgs/applications/misc/variety/default.nix
+++ b/pkgs/applications/misc/variety/default.nix
@@ -81,7 +81,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/varietywalls/variety";
-    description = "A wallpaper manager for Linux systems";
+    description = "Wallpaper manager for Linux systems";
     mainProgram = "variety";
     longDescription = ''
       Variety is a wallpaper manager for Linux systems. It supports numerous
diff --git a/pkgs/applications/misc/vhs/default.nix b/pkgs/applications/misc/vhs/default.nix
index 5d9f87b2316ac..82633111c33c2 100644
--- a/pkgs/applications/misc/vhs/default.nix
+++ b/pkgs/applications/misc/vhs/default.nix
@@ -28,7 +28,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A tool for generating terminal GIFs with code";
+    description = "Tool for generating terminal GIFs with code";
     mainProgram = "vhs";
     homepage = "https://github.com/charmbracelet/vhs";
     changelog = "https://github.com/charmbracelet/vhs/releases/tag/v${version}";
diff --git a/pkgs/applications/misc/vp/default.nix b/pkgs/applications/misc/vp/default.nix
deleted file mode 100644
index 07dbfef2f5f56..0000000000000
--- a/pkgs/applications/misc/vp/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, SDL, SDL_image }:
-
-stdenv.mkDerivation rec {
-  pname = "vp";
-  version = "1.8";
-
-  src = fetchFromGitHub {
-    owner = "erikg";
-    repo = "vp";
-    rev = "v${version}";
-    sha256 = "08q6xrxsyj6vj0sz59nix9isqz84gw3x9hym63lz6v8fpacvykdq";
-  };
-
-  nativeBuildInputs = [ autoreconfHook ];
-
-  buildInputs = [ SDL SDL_image ];
-
-  env.NIX_CFLAGS_COMPILE = "-I${SDL}/include/SDL -I${SDL_image}/include/SDL";
-
-  meta = with lib; {
-    homepage = "https://brlcad.org/~erik/";
-    description = "SDL based picture viewer/slideshow";
-    platforms = platforms.unix;
-    license  = licenses.gpl3;
-    maintainers = [ maintainers.vrthra ];
-    mainProgram = "vp";
-  };
-}
diff --git a/pkgs/applications/misc/vym/default.nix b/pkgs/applications/misc/vym/default.nix
index e58b98c4e0700..8a550ac4a79f7 100644
--- a/pkgs/applications/misc/vym/default.nix
+++ b/pkgs/applications/misc/vym/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "http://www.insilmaril.de/vym/";
-    description = "A mind-mapping software";
+    description = "Mind-mapping software";
     mainProgram = "vym";
     longDescription = ''
       VYM (View Your Mind) is a tool to generate and manipulate maps which show
diff --git a/pkgs/applications/misc/wallust/default.nix b/pkgs/applications/misc/wallust/default.nix
index 3e2fb300dd1e9..e92d5517026f5 100644
--- a/pkgs/applications/misc/wallust/default.nix
+++ b/pkgs/applications/misc/wallust/default.nix
@@ -32,7 +32,7 @@ rustPlatform.buildRustPackage {
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "A better pywal";
+    description = "Better pywal";
     homepage = "https://codeberg.org/explosion-mental/wallust";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ onemoresuza iynaix ];
diff --git a/pkgs/applications/misc/warpd/default.nix b/pkgs/applications/misc/warpd/default.nix
index 7fa28d41e37bf..a2957a4edb6ee 100644
--- a/pkgs/applications/misc/warpd/default.nix
+++ b/pkgs/applications/misc/warpd/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A modal keyboard driven interface for mouse manipulation.";
+    description = "Modal keyboard driven interface for mouse manipulation";
     homepage = "https://github.com/rvaiya/warpd";
     changelog = "https://github.com/rvaiya/warpd/blob/${src.rev}/CHANGELOG.md";
     maintainers = with maintainers; [ hhydraa ];
diff --git a/pkgs/applications/misc/watershot/default.nix b/pkgs/applications/misc/watershot/default.nix
index 6d29fab825277..3935b3ef211c3 100644
--- a/pkgs/applications/misc/watershot/default.nix
+++ b/pkgs/applications/misc/watershot/default.nix
@@ -32,7 +32,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     platforms = with platforms; linux;
-    description = "A simple wayland native screenshot tool";
+    description = "Simple wayland native screenshot tool";
     mainProgram = "watershot";
     homepage = "https://github.com/Kirottu/watershot";
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/misc/waylock/update.nu b/pkgs/applications/misc/waylock/update.nu
deleted file mode 100755
index 514a755db1a32..0000000000000
--- a/pkgs/applications/misc/waylock/update.nu
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -i nu -p nushell common-updater-scripts
-
-let latest_tag = list-git-tags --url=https://codeberg.org/ifreund/waylock | lines | sort --natural | str replace v '' | last
-update-source-version waylock $latest_tag
diff --git a/pkgs/applications/misc/wcalc/default.nix b/pkgs/applications/misc/wcalc/default.nix
index 62ab0aaa05a50..92d53989ded8e 100644
--- a/pkgs/applications/misc/wcalc/default.nix
+++ b/pkgs/applications/misc/wcalc/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ mpfr readline ];
 
   meta = with lib; {
-    description = "A command line calculator";
+    description = "Command line calculator";
     homepage = "https://w-calc.sourceforge.net";
     license = licenses.gpl2;
     platforms = platforms.all;
diff --git a/pkgs/applications/misc/whalebird/default.nix b/pkgs/applications/misc/whalebird/default.nix
index 97883864ad75f..c9de782c1aefa 100644
--- a/pkgs/applications/misc/whalebird/default.nix
+++ b/pkgs/applications/misc/whalebird/default.nix
@@ -107,7 +107,7 @@ stdenv.mkDerivation rec {
     homepage = "https://whalebird.social";
     changelog = "https://github.com/h3poteto/whalebird-desktop/releases/tag/v${version}";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ wolfangaukang colinsane weathercold ];
+    maintainers = with maintainers; [ wolfangaukang weathercold ];
     platforms = [ "x86_64-linux" "aarch64-linux" ];
   };
 }
diff --git a/pkgs/applications/misc/wikicurses/default.nix b/pkgs/applications/misc/wikicurses/default.nix
index 5f20f314d3f4c..d339e8646e75f 100644
--- a/pkgs/applications/misc/wikicurses/default.nix
+++ b/pkgs/applications/misc/wikicurses/default.nix
@@ -24,7 +24,7 @@ pythonPackages.buildPythonApplication rec {
   doCheck = false;
 
   meta = {
-    description = "A simple curses interface for MediaWiki sites such as Wikipedia";
+    description = "Simple curses interface for MediaWiki sites such as Wikipedia";
     mainProgram = "wikicurses";
     homepage = "https://github.com/ids1024/wikicurses/";
     license = lib.licenses.mit;
diff --git a/pkgs/applications/misc/wlclock/default.nix b/pkgs/applications/misc/wlclock/default.nix
index ad14b24abd29a..d79a81788c7ac 100644
--- a/pkgs/applications/misc/wlclock/default.nix
+++ b/pkgs/applications/misc/wlclock/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A digital analog clock for Wayland desktops";
+    description = "Digital analog clock for Wayland desktops";
     homepage = "https://git.sr.ht/~leon_plickat/wlclock";
     license = licenses.gpl3;
     maintainers = with maintainers; [ nomisiv ];
diff --git a/pkgs/applications/misc/wmenu/default.nix b/pkgs/applications/misc/wmenu/default.nix
index df568c045ac2a..c443791848621 100644
--- a/pkgs/applications/misc/wmenu/default.nix
+++ b/pkgs/applications/misc/wmenu/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ cairo pango wayland libxkbcommon wayland-protocols scdoc ];
 
   meta = with lib; {
-    description = "An efficient dynamic menu for Sway and wlroots based Wayland compositors";
+    description = "Efficient dynamic menu for Sway and wlroots based Wayland compositors";
     homepage = "https://git.sr.ht/~adnano/wmenu";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/applications/misc/wofi/default.nix b/pkgs/applications/misc/wofi/default.nix
index fc124c56eb569..c6ad0199e51fb 100644
--- a/pkgs/applications/misc/wofi/default.nix
+++ b/pkgs/applications/misc/wofi/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A launcher/menu program for wlroots based wayland compositors such as sway";
+    description = "Launcher/menu program for wlroots based wayland compositors such as sway";
     homepage = "https://hg.sr.ht/~scoopta/wofi";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/applications/misc/workrave/default.nix b/pkgs/applications/misc/workrave/default.nix
index ebe09f8b861c2..1235b22b8aba1 100644
--- a/pkgs/applications/misc/workrave/default.nix
+++ b/pkgs/applications/misc/workrave/default.nix
@@ -87,7 +87,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
-    description = "A program to help prevent Repetitive Strain Injury";
+    description = "Program to help prevent Repetitive Strain Injury";
     mainProgram = "workrave";
     longDescription = ''
       Workrave is a program that assists in the recovery and prevention of
diff --git a/pkgs/applications/misc/wtf/default.nix b/pkgs/applications/misc/wtf/default.nix
index a32527de7dabb..5c130bb069821 100644
--- a/pkgs/applications/misc/wtf/default.nix
+++ b/pkgs/applications/misc/wtf/default.nix
@@ -34,7 +34,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "The personal information dashboard for your terminal";
+    description = "Personal information dashboard for your terminal";
     homepage = "https://wtfutil.com/";
     changelog = "https://github.com/wtfutil/wtf/raw/v${version}/CHANGELOG.md";
     license = licenses.mpl20;
diff --git a/pkgs/applications/misc/xca/default.nix b/pkgs/applications/misc/xca/default.nix
index 19b5a8e3ec2d3..fb0bf3063bbcf 100644
--- a/pkgs/applications/misc/xca/default.nix
+++ b/pkgs/applications/misc/xca/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "An x509 certificate generation tool, handling RSA, DSA and EC keys, certificate signing requests (PKCS#10) and CRLs";
+    description = "X509 certificate generation tool, handling RSA, DSA and EC keys, certificate signing requests (PKCS#10) and CRLs";
     mainProgram = "xca";
     homepage = "https://hohnstaedt.de/xca/";
     license = licenses.bsd3;
diff --git a/pkgs/applications/misc/xchm/default.nix b/pkgs/applications/misc/xchm/default.nix
index 8c48388594d44..33f8978820e6b 100644
--- a/pkgs/applications/misc/xchm/default.nix
+++ b/pkgs/applications/misc/xchm/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A viewer for Microsoft HTML Help files";
+    description = "Viewer for Microsoft HTML Help files";
     homepage = "https://github.com/rzvncj/xCHM";
     license = licenses.gpl2;
     maintainers = with maintainers; [ sikmir ];
diff --git a/pkgs/applications/misc/xdg-launch/default.nix b/pkgs/applications/misc/xdg-launch/default.nix
index bf5b0484c867c..4a61839c7d8c9 100644
--- a/pkgs/applications/misc/xdg-launch/default.nix
+++ b/pkgs/applications/misc/xdg-launch/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/bbidulock/xdg-launch";
-    description = "A command line XDG compliant launcher and tools";
+    description = "Command line XDG compliant launcher and tools";
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = [ maintainers.ck3d ];
diff --git a/pkgs/applications/misc/xiphos/default.nix b/pkgs/applications/misc/xiphos/default.nix
index 83690f129bffa..d3aaa70fc9af1 100644
--- a/pkgs/applications/misc/xiphos/default.nix
+++ b/pkgs/applications/misc/xiphos/default.nix
@@ -97,7 +97,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A GTK Bible study tool";
+    description = "GTK Bible study tool";
     longDescription = ''
       Xiphos (formerly known as GnomeSword) is a Bible study tool
       written for Linux, UNIX, and Windows using GTK, offering a rich
diff --git a/pkgs/applications/misc/xkblayout-state/default.nix b/pkgs/applications/misc/xkblayout-state/default.nix
index c73ff6a607833..10bd1961f09c1 100644
--- a/pkgs/applications/misc/xkblayout-state/default.nix
+++ b/pkgs/applications/misc/xkblayout-state/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A small command-line program to get/set the current XKB keyboard layout";
+    description = "Small command-line program to get/set the current XKB keyboard layout";
     homepage = "https://github.com/nonpop/xkblayout-state";
     license = licenses.gpl2;
     maintainers = [ maintainers.jagajaga ];
diff --git a/pkgs/applications/misc/xmenu/default.nix b/pkgs/applications/misc/xmenu/default.nix
index ae08952af2e85..59058f3f53bd5 100644
--- a/pkgs/applications/misc/xmenu/default.nix
+++ b/pkgs/applications/misc/xmenu/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   postPatch = "sed -i \"s:/usr/local:$out:\" config.mk";
 
   meta = with lib; {
-    description = "A menu utility for X";
+    description = "Menu utility for X";
     homepage = "https://github.com/phillbush/xmenu";
     license = licenses.mit;
     maintainers = with maintainers; [ neonfuz ];
diff --git a/pkgs/applications/misc/xmrig/moneroocean.nix b/pkgs/applications/misc/xmrig/moneroocean.nix
index 0e4ac69cb813e..47aee945971b5 100644
--- a/pkgs/applications/misc/xmrig/moneroocean.nix
+++ b/pkgs/applications/misc/xmrig/moneroocean.nix
@@ -27,7 +27,7 @@ xmrig.overrideAttrs (oldAttrs: rec {
   ];
 
   meta = with lib; {
-    description = "A fork of the XMRig CPU miner with support for algorithm switching";
+    description = "Fork of the XMRig CPU miner with support for algorithm switching";
     homepage = "https://github.com/MoneroOcean/xmrig";
     license = licenses.gpl3Plus;
     mainProgram = "xmrig";
diff --git a/pkgs/applications/misc/xpad/default.nix b/pkgs/applications/misc/xpad/default.nix
index d945ae7ff0baa..1206b39679abe 100644
--- a/pkgs/applications/misc/xpad/default.nix
+++ b/pkgs/applications/misc/xpad/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ glib gtk3 gtksourceview ];
 
   meta = with lib; {
-    description = "A sticky note application for jotting down things to remember";
+    description = "Sticky note application for jotting down things to remember";
     mainProgram = "xpad";
     homepage = "https://launchpad.net/xpad";
     license = licenses.gpl3;
diff --git a/pkgs/applications/misc/xsw/default.nix b/pkgs/applications/misc/xsw/default.nix
index fac2c6812bd27..0e68a1769025b 100644
--- a/pkgs/applications/misc/xsw/default.nix
+++ b/pkgs/applications/misc/xsw/default.nix
@@ -26,7 +26,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "A slide show presentation tool";
+    description = "Slide show presentation tool";
 
     platforms = platforms.unix;
     license  = licenses.gpl3;
diff --git a/pkgs/applications/misc/xxkb/default.nix b/pkgs/applications/misc/xxkb/default.nix
index 3fd9eb8a6ecbb..022abdb5ae18e 100644
--- a/pkgs/applications/misc/xxkb/default.nix
+++ b/pkgs/applications/misc/xxkb/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
   installTargets = [ "install" "install.man" ];
 
   meta = with lib; {
-    description = "A keyboard layout indicator and switcher";
+    description = "Keyboard layout indicator and switcher";
     homepage = "http://xxkb.sourceforge.net/";
     license = licenses.artistic2;
     maintainers = with maintainers; [ rasendubi ];
diff --git a/pkgs/applications/misc/yokadi/default.nix b/pkgs/applications/misc/yokadi/default.nix
index 10d519efa45c2..55acd53fd1e0f 100644
--- a/pkgs/applications/misc/yokadi/default.nix
+++ b/pkgs/applications/misc/yokadi/default.nix
@@ -21,7 +21,7 @@ buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A command line oriented, sqlite powered, todo-list";
+    description = "Command line oriented, sqlite powered, todo-list";
     homepage = "https://yokadi.github.io/index.html";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.nkpvk ];
diff --git a/pkgs/applications/misc/yubioath-flutter/default.nix b/pkgs/applications/misc/yubioath-flutter/default.nix
index 0611655da1bc9..da5cb37a978b0 100644
--- a/pkgs/applications/misc/yubioath-flutter/default.nix
+++ b/pkgs/applications/misc/yubioath-flutter/default.nix
@@ -1,5 +1,5 @@
 { lib
-, flutter
+, flutter319
 , python3
 , fetchFromGitHub
 , pcre2
@@ -11,7 +11,7 @@
 , removeReferencesTo
 }:
 
-flutter.buildFlutterApplication rec {
+flutter319.buildFlutterApplication rec {
   pname = "yubioath-flutter";
   version = "6.4.0";
 
diff --git a/pkgs/applications/misc/zathura/cb/default.nix b/pkgs/applications/misc/zathura/cb/default.nix
index ea2c74fda3701..2c4dc76abb477 100644
--- a/pkgs/applications/misc/zathura/cb/default.nix
+++ b/pkgs/applications/misc/zathura/cb/default.nix
@@ -1,5 +1,15 @@
-{ stdenv, lib, fetchurl, meson, ninja, pkg-config, zathura_core
-, girara, gettext, libarchive }:
+{
+  stdenv,
+  lib,
+  fetchurl,
+  meson,
+  ninja,
+  pkg-config,
+  zathura_core,
+  girara,
+  gettext,
+  libarchive,
+}:
 
 stdenv.mkDerivation rec {
   pname = "zathura-cb";
@@ -7,20 +17,29 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz";
-    sha256 = "1j5v32f9ki35v1jc7a067anhlgqplzrp4fqvznlixfhcm0bwmc49";
+    hash = "sha256-ibDKF6gMuh6p/Rs7cvOnFz8KrToGqMNk2GXEmZwYu8g=";
   };
 
-  nativeBuildInputs = [ meson ninja pkg-config gettext ];
-  buildInputs = [ libarchive zathura_core girara ];
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gettext
+  ];
+  buildInputs = [
+    libarchive
+    zathura_core
+    girara
+  ];
 
   PKG_CONFIG_ZATHURA_PLUGINDIR = "lib/zathura";
 
   meta = with lib; {
     homepage = "https://pwmt.org/projects/zathura-cb/";
-    description = "A zathura CB plugin";
+    description = "Zathura CB plugin";
     longDescription = ''
       The zathura-cb plugin adds comic book support to zathura.
-      '';
+    '';
     license = licenses.zlib;
     platforms = platforms.unix;
     maintainers = with maintainers; [ jlesquembre ];
diff --git a/pkgs/applications/misc/zathura/core/default.nix b/pkgs/applications/misc/zathura/core/default.nix
index 8b452c7f1a40c..b7b7a517310b7 100644
--- a/pkgs/applications/misc/zathura/core/default.nix
+++ b/pkgs/applications/misc/zathura/core/default.nix
@@ -1,24 +1,48 @@
-{ lib, stdenv, fetchFromGitLab, meson, ninja, wrapGAppsHook3, pkg-config, gitUpdater
-, appstream-glib, json-glib, desktop-file-utils, python3
-, gtk, girara, gettext, libxml2, check
-, sqlite, glib, texlive, libintl, libseccomp
-, file, librsvg
-, gtk-mac-integration
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  meson,
+  ninja,
+  wrapGAppsHook3,
+  pkg-config,
+  gitUpdater,
+  appstream-glib,
+  json-glib,
+  desktop-file-utils,
+  python3,
+  gtk,
+  girara,
+  gettext,
+  libxml2,
+  check,
+  sqlite,
+  glib,
+  texlive,
+  libintl,
+  libseccomp,
+  file,
+  librsvg,
+  gtk-mac-integration,
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "zathura";
-  version = "0.5.5";
+  version = "0.5.6";
 
-  src = fetchFromGitLab {
-    domain = "git.pwmt.org";
+  src = fetchFromGitHub {
     owner = "pwmt";
     repo = "zathura";
     rev = finalAttrs.version;
-    hash = "sha256-mHEYqgBB55p8nykFtvYtP5bWexp/IqFbeLs7gZmXCeE=";
+    hash = "sha256-lTEBIZ3lkzjJ+L1qecrcL8iseo8AvSIo3Wh65/ikwac=";
   };
 
-  outputs = [ "bin" "man" "dev" "out" ];
+  outputs = [
+    "bin"
+    "man"
+    "dev"
+    "out"
+  ];
 
   # Flag list:
   # https://github.com/pwmt/zathura/blob/master/meson_options.txt
@@ -33,23 +57,37 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   nativeBuildInputs = [
-    meson ninja pkg-config desktop-file-utils python3.pythonOnBuildForHost.pkgs.sphinx
-    gettext wrapGAppsHook3 libxml2 appstream-glib
+    meson
+    ninja
+    pkg-config
+    desktop-file-utils
+    python3.pythonOnBuildForHost.pkgs.sphinx
+    gettext
+    wrapGAppsHook3
+    libxml2
+    appstream-glib
   ];
 
   buildInputs = [
-    gtk girara libintl sqlite glib file librsvg check json-glib
+    gtk
+    girara
+    libintl
+    sqlite
+    glib
+    file
+    librsvg
+    check
+    json-glib
     texlive.bin.core
-  ] ++ lib.optional stdenv.isLinux libseccomp
-    ++ lib.optional stdenv.isDarwin gtk-mac-integration;
+  ] ++ lib.optional stdenv.isLinux libseccomp ++ lib.optional stdenv.isDarwin gtk-mac-integration;
 
   doCheck = !stdenv.isDarwin;
 
   passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
-    homepage = "https://git.pwmt.org/pwmt/zathura";
-    description = "A core component for zathura PDF viewer";
+    homepage = "https://pwmt.org/projects/zathura";
+    description = "Core component for zathura PDF viewer";
     license = licenses.zlib;
     platforms = platforms.unix;
     maintainers = with maintainers; [ globin ];
diff --git a/pkgs/applications/misc/zathura/default.nix b/pkgs/applications/misc/zathura/default.nix
index 67fe3032d05ce..23b5ce0198e19 100644
--- a/pkgs/applications/misc/zathura/default.nix
+++ b/pkgs/applications/misc/zathura/default.nix
@@ -1,6 +1,9 @@
-{ config, pkgs
-# zathura_pdf_mupdf fails to load _opj_create_decompress at runtime on Darwin (https://github.com/NixOS/nixpkgs/pull/61295#issue-277982980)
-, useMupdf ? config.zathura.useMupdf or (!pkgs.stdenv.isDarwin) }:
+{
+  config,
+  pkgs,
+  # zathura_pdf_mupdf fails to load _opj_create_decompress at runtime on Darwin (https://github.com/NixOS/nixpkgs/pull/61295#issue-277982980)
+  useMupdf ? config.zathura.useMupdf or (!pkgs.stdenv.isDarwin),
+}:
 
 let
   callPackage = pkgs.newScope self;
@@ -29,5 +32,5 @@ let
       ];
     };
   };
-
-in self
+in
+self
diff --git a/pkgs/applications/misc/zathura/djvu/default.nix b/pkgs/applications/misc/zathura/djvu/default.nix
index f0fe09486324d..c7b3c3e52c940 100644
--- a/pkgs/applications/misc/zathura/djvu/default.nix
+++ b/pkgs/applications/misc/zathura/djvu/default.nix
@@ -1,4 +1,16 @@
-{ lib, stdenv, fetchurl, meson, ninja, pkg-config, gtk, zathura_core, girara, djvulibre, gettext }:
+{
+  lib,
+  stdenv,
+  fetchurl,
+  meson,
+  ninja,
+  pkg-config,
+  gtk,
+  zathura_core,
+  girara,
+  djvulibre,
+  gettext,
+}:
 
 stdenv.mkDerivation rec {
   pname = "zathura-djvu";
@@ -6,17 +18,27 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz";
-    sha256 = "0062n236414db7q7pnn3ccg5111ghxj3407pn9ri08skxskgirln";
+    hash = "sha256-lub4pu5TIxBzsvcAMmSHL4RQHmPD2nvwWY0EYoawwgA=";
   };
 
-  nativeBuildInputs = [ meson ninja pkg-config ];
-  buildInputs = [ djvulibre gettext zathura_core gtk girara ];
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+  ];
+  buildInputs = [
+    djvulibre
+    gettext
+    zathura_core
+    gtk
+    girara
+  ];
 
   PKG_CONFIG_ZATHURA_PLUGINDIR = "lib/zathura";
 
   meta = with lib; {
     homepage = "https://pwmt.org/projects/zathura-djvu/";
-    description = "A zathura DJVU plugin";
+    description = "Zathura DJVU plugin";
     longDescription = ''
       The zathura-djvu plugin adds DjVu support to zathura by using the
       djvulibre library.
@@ -26,4 +48,3 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ ];
   };
 }
-
diff --git a/pkgs/applications/misc/zathura/pdf-mupdf/default.nix b/pkgs/applications/misc/zathura/pdf-mupdf/default.nix
index f6eb5cfd45e1a..b7eff35913c3b 100644
--- a/pkgs/applications/misc/zathura/pdf-mupdf/default.nix
+++ b/pkgs/applications/misc/zathura/pdf-mupdf/default.nix
@@ -1,29 +1,39 @@
-{ stdenv, lib, meson, ninja, fetchurl, cairo
-, girara
-, gtk-mac-integration
-, gumbo
-, jbig2dec
-, libjpeg
-, mupdf
-, openjpeg
-, pkg-config
-, zathura_core
-, tesseract
-, leptonica
-, mujs
-, gitUpdater
+{
+  stdenv,
+  lib,
+  meson,
+  ninja,
+  fetchurl,
+  cairo,
+  girara,
+  gtk-mac-integration,
+  gumbo,
+  jbig2dec,
+  libjpeg,
+  mupdf,
+  openjpeg,
+  pkg-config,
+  zathura_core,
+  tesseract,
+  leptonica,
+  mujs,
+  gitUpdater,
 }:
 
 stdenv.mkDerivation rec {
-  version = "0.4.1";
+  version = "0.4.2";
   pname = "zathura-pdf-mupdf";
 
   src = fetchurl {
     url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz";
-    hash = "sha256-+YKgHWUj+iVmk4EYTAamJe2/15YcvbBxHcz9ucQCrC8=";
+    hash = "sha256-fFC+z9mJX9ccExsV336Ut+zJJa8UdfUz/qVp9YgcnhM=";
   };
 
-  nativeBuildInputs = [ meson ninja pkg-config ];
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+  ];
 
   buildInputs = [
     cairo
@@ -39,19 +49,17 @@ stdenv.mkDerivation rec {
     mujs
   ] ++ lib.optional stdenv.isDarwin gtk-mac-integration;
 
-  PKG_CONFIG_ZATHURA_PLUGINDIR= "lib/zathura";
+  PKG_CONFIG_ZATHURA_PLUGINDIR = "lib/zathura";
 
   postPatch = ''
     sed -i -e '/^mupdfthird =/d' -e 's/, mupdfthird//g' meson.build
   '';
 
-  passthru.updateScript = gitUpdater {
-    url = "https://git.pwmt.org/pwmt/zathura-pdf-mupdf.git";
-  };
+  passthru.updateScript = gitUpdater { url = "https://git.pwmt.org/pwmt/zathura-pdf-mupdf.git"; };
 
   meta = with lib; {
     homepage = "https://pwmt.org/projects/zathura-pdf-mupdf/";
-    description = "A zathura PDF plugin (mupdf)";
+    description = "Zathura PDF plugin (mupdf)";
     longDescription = ''
       The zathura-pdf-mupdf plugin adds PDF support to zathura by
       using the mupdf rendering library.
diff --git a/pkgs/applications/misc/zathura/pdf-poppler/default.nix b/pkgs/applications/misc/zathura/pdf-poppler/default.nix
index 5246705bbd8b1..1c4ba79ee91b7 100644
--- a/pkgs/applications/misc/zathura/pdf-poppler/default.nix
+++ b/pkgs/applications/misc/zathura/pdf-poppler/default.nix
@@ -1,4 +1,14 @@
-{ stdenv, lib, fetchurl, meson, ninja, pkg-config, zathura_core, girara, poppler }:
+{
+  stdenv,
+  lib,
+  fetchurl,
+  meson,
+  ninja,
+  pkg-config,
+  zathura_core,
+  girara,
+  poppler,
+}:
 
 stdenv.mkDerivation rec {
   pname = "zathura-pdf-poppler";
@@ -6,17 +16,25 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz";
-    sha256 = "049h8m9swxni7ar6fsbm0hb3fg4ffmjc3m6vyg78ilfi3kayxavi";
+    hash = "sha256-cavu1RzR0YjO89vUwWR1jjw3FgR1aWeyOtF2rlNFMBE=";
   };
 
-  nativeBuildInputs = [ meson ninja pkg-config zathura_core ];
-  buildInputs = [ poppler girara ];
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    zathura_core
+  ];
+  buildInputs = [
+    poppler
+    girara
+  ];
 
   PKG_CONFIG_ZATHURA_PLUGINDIR = "lib/zathura";
 
   meta = with lib; {
     homepage = "https://pwmt.org/projects/zathura-pdf-poppler/";
-    description = "A zathura PDF plugin (poppler)";
+    description = "Zathura PDF plugin (poppler)";
     longDescription = ''
       The zathura-pdf-poppler plugin adds PDF support to zathura by
       using the poppler rendering library.
diff --git a/pkgs/applications/misc/zathura/ps/default.nix b/pkgs/applications/misc/zathura/ps/default.nix
index 180001b52aeb4..63b9cedd7a299 100644
--- a/pkgs/applications/misc/zathura/ps/default.nix
+++ b/pkgs/applications/misc/zathura/ps/default.nix
@@ -1,4 +1,15 @@
-{ stdenv, lib, fetchurl, meson, ninja, pkg-config, zathura_core, girara, libspectre, gettext }:
+{
+  stdenv,
+  lib,
+  fetchurl,
+  meson,
+  ninja,
+  pkg-config,
+  zathura_core,
+  girara,
+  libspectre,
+  gettext,
+}:
 
 stdenv.mkDerivation rec {
   pname = "zathura-ps";
@@ -6,24 +17,32 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://pwmt.org/projects/${pname}/download/${pname}-${version}.tar.xz";
-    sha256 = "0ilf63wxn1yzis9m3qs8mxbk316yxdzwxrrv86wpiygm9hhgk5sq";
+    hash = "sha256-WJf5IEz1+Xi5QTvnzn/r3oQxV69I41GTjt8H2/kwjkY=";
   };
 
-  nativeBuildInputs = [ meson ninja pkg-config gettext ];
-  buildInputs = [ libspectre zathura_core girara ];
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gettext
+  ];
+  buildInputs = [
+    libspectre
+    zathura_core
+    girara
+  ];
 
   PKG_CONFIG_ZATHURA_PLUGINDIR = "lib/zathura";
 
   meta = with lib; {
     homepage = "https://pwmt.org/projects/zathura-ps/";
-    description = "A zathura PS plugin";
+    description = "Zathura PS plugin";
     longDescription = ''
       The zathura-ps plugin adds PS support to zathura by using the
       libspectre library.
-      '';
+    '';
     license = licenses.zlib;
     platforms = platforms.unix;
     maintainers = with maintainers; [ ];
   };
 }
-
diff --git a/pkgs/applications/misc/zathura/wrapper.nix b/pkgs/applications/misc/zathura/wrapper.nix
index 60ff0bd688546..5d60c48222123 100644
--- a/pkgs/applications/misc/zathura/wrapper.nix
+++ b/pkgs/applications/misc/zathura/wrapper.nix
@@ -1,29 +1,45 @@
-{ symlinkJoin, lib, makeWrapper, zathura_core, file, plugins ? [] }:
+{
+  symlinkJoin,
+  lib,
+  makeWrapper,
+  zathura_core,
+  file,
+  plugins ? [ ],
+}:
 symlinkJoin {
   name = "zathura-with-plugins-${zathura_core.version}";
 
-  paths = with zathura_core; [ man dev out ] ++ plugins;
+  paths =
+    with zathura_core;
+    [
+      man
+      dev
+      out
+    ]
+    ++ plugins;
 
   nativeBuildInputs = [ makeWrapper ];
 
-  postBuild = let
-    fishCompletion = "share/fish/vendor_completions.d/zathura.fish";
-  in ''
-    makeWrapper ${zathura_core.bin}/bin/zathura $out/bin/zathura \
-      --prefix PATH ":" "${lib.makeBinPath [ file ]}" \
-      --prefix ZATHURA_PLUGINS_PATH : "$out/lib/zathura"
+  postBuild =
+    let
+      fishCompletion = "share/fish/vendor_completions.d/zathura.fish";
+    in
+    ''
+      makeWrapper ${zathura_core.bin}/bin/zathura $out/bin/zathura \
+        --prefix PATH ":" "${lib.makeBinPath [ file ]}" \
+        --prefix ZATHURA_PLUGINS_PATH : "$out/lib/zathura"
 
-    # zathura fish completion references the zathura_core derivation to
-    # check for supported plugins which live in the wrapper derivation,
-    # so we need to fix the path to reference $out instead.
-    rm "$out/${fishCompletion}"
-    substitute "${zathura_core.out}/${fishCompletion}" "$out/${fishCompletion}" \
-      --replace "${zathura_core.out}" "$out"
-  '';
+      # zathura fish completion references the zathura_core derivation to
+      # check for supported plugins which live in the wrapper derivation,
+      # so we need to fix the path to reference $out instead.
+      rm "$out/${fishCompletion}"
+      substitute "${zathura_core.out}/${fishCompletion}" "$out/${fishCompletion}" \
+        --replace "${zathura_core.out}" "$out"
+    '';
 
   meta = with lib; {
-    homepage = "https://git.pwmt.org/pwmt/zathura/";
-    description = "A highly customizable and functional PDF viewer";
+    homepage = "https://pwmt.org/projects/zathura/";
+    description = "Highly customizable and functional PDF viewer";
     longDescription = ''
       Zathura is a highly customizable and functional PDF viewer based on the
       poppler rendering library and the GTK toolkit. The idea behind zathura
@@ -32,7 +48,11 @@ symlinkJoin {
     '';
     license = licenses.zlib;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ smironov globin TethysSvensson ];
+    maintainers = with maintainers; [
+      smironov
+      globin
+      TethysSvensson
+    ];
     mainProgram = "zathura";
   };
 }
diff --git a/pkgs/applications/misc/zettlr/generic.nix b/pkgs/applications/misc/zettlr/generic.nix
index 847d11c4f24ce..777c74a5dffe5 100644
--- a/pkgs/applications/misc/zettlr/generic.nix
+++ b/pkgs/applications/misc/zettlr/generic.nix
@@ -29,7 +29,7 @@ appimageTools.wrapType2 rec {
   '';
 
   meta = with lib; {
-    description = "A markdown editor for writing academic texts and taking notes";
+    description = "Markdown editor for writing academic texts and taking notes";
     homepage = "https://www.zettlr.com";
     platforms = [ "x86_64-linux" ];
     license = licenses.gpl3;
diff --git a/pkgs/applications/misc/zine/default.nix b/pkgs/applications/misc/zine/default.nix
index 63675fa69abdb..c7fb80e8318b1 100644
--- a/pkgs/applications/misc/zine/default.nix
+++ b/pkgs/applications/misc/zine/default.nix
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A simple and opinionated tool to build your own magazine";
+    description = "Simple and opinionated tool to build your own magazine";
     homepage = "https://github.com/zineland/zine";
     changelog = "https://github.com/zineland/zine/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/misc/zk-shell/default.nix b/pkgs/applications/misc/zk-shell/default.nix
index e565e1ecda75f..b05c12227fc0c 100644
--- a/pkgs/applications/misc/zk-shell/default.nix
+++ b/pkgs/applications/misc/zk-shell/default.nix
@@ -24,7 +24,7 @@ python3Packages.buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A powerful & scriptable shell for Apache ZooKeeper";
+    description = "Powerful & scriptable shell for Apache ZooKeeper";
     mainProgram = "zk-shell";
     homepage = "https://github.com/rgs1/zk_shell";
     license = licenses.asl20;
diff --git a/pkgs/applications/misc/zktree/default.nix b/pkgs/applications/misc/zktree/default.nix
index c9d4786f05f57..82b93763ed821 100644
--- a/pkgs/applications/misc/zktree/default.nix
+++ b/pkgs/applications/misc/zktree/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "18v7agm39acnblc703278cn8py5971hm8p5kxmznpw119fjp36s5";
 
   meta = with lib; {
-    description = "A small tool to display Znodes in Zookeeper in tree structure.";
+    description = "Small tool to display Znodes in Zookeeper in tree structure";
     homepage = "https://github.com/alirezameskin/zktree";
     license = licenses.unlicense;
     maintainers = with lib.maintainers; [ alirezameskin ];
diff --git a/pkgs/applications/misc/zscroll/default.nix b/pkgs/applications/misc/zscroll/default.nix
index ccdac791e3369..79a5c72ddc8f7 100644
--- a/pkgs/applications/misc/zscroll/default.nix
+++ b/pkgs/applications/misc/zscroll/default.nix
@@ -19,7 +19,7 @@ python3Packages.buildPythonApplication rec {
   propagatedBuildInputs = [ python3 ];
 
   meta = with lib; {
-    description = "A text scroller for use with panels and shells";
+    description = "Text scroller for use with panels and shells";
     mainProgram = "zscroll";
     homepage = "https://github.com/noctuid/zscroll";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/networking/avalanchego/default.nix b/pkgs/applications/networking/avalanchego/default.nix
index 6d75d3f564079..51be31c4db5e2 100644
--- a/pkgs/applications/networking/avalanchego/default.nix
+++ b/pkgs/applications/networking/avalanchego/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "avalanchego";
-  version = "1.11.5";
+  version = "1.11.7";
 
   src = fetchFromGitHub {
     owner = "ava-labs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-IZ4Q67b+VsmBN/NEBPDzN2PYO8cVfLpHBU0tCo+v3Xc=";
+    hash = "sha256-pdfZMKsNKmQVUfYobaOdUqGgP99fatEpgn0AHt0bIBQ=";
   };
 
-  vendorHash = "sha256-z6MF/Kb///BSirdRycNs+7SMThv+yS7WmcrIcgiwBNg=";
+  vendorHash = "sha256-CN+2+aOOPF7gouvp7lCfRIKA1quNCcrvzHg8lF6J4f8=";
   # go mod vendor has a bug, see: https://github.com/golang/go/issues/57529
   proxyVendor = true;
 
diff --git a/pkgs/applications/networking/blocky/default.nix b/pkgs/applications/networking/blocky/default.nix
index 6d2bf82cbb7fb..47ed6a85b8abb 100644
--- a/pkgs/applications/networking/blocky/default.nix
+++ b/pkgs/applications/networking/blocky/default.nix
@@ -6,27 +6,27 @@
 
 buildGoModule rec {
   pname = "blocky";
-  version = "0.23";
+  version = "0.24";
 
   src = fetchFromGitHub {
     owner = "0xERR0R";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-IB5vi+nFXbV94YFtY2eMKTgzUgX8q8i8soSrso2zaD4=";
+    hash = "sha256-K+Zdb6l2WUhxVm/gi9U2vVR69bxr2ntLyIrkwTuc0Do=";
   };
 
   # needs network connection and fails at
   # https://github.com/0xERR0R/blocky/blob/development/resolver/upstream_resolver_test.go
   doCheck = false;
 
-  vendorHash = "sha256-h1CkvI7M1kt2Ix3D8+gDl97CFElV+0/9Eram1burOaM=";
+  vendorHash = "sha256-I4UXTynulsRuu9U8tsLbPQO1MMPfUC5dAZE420sW1sU=";
 
   ldflags = [ "-s" "-w" "-X github.com/0xERR0R/blocky/util.Version=${version}" ];
 
   passthru.tests = { inherit (nixosTests) blocky; };
 
   meta = with lib; {
-    description = "Fast and lightweight DNS proxy as ad-blocker for local network with many features.";
+    description = "Fast and lightweight DNS proxy as ad-blocker for local network with many features";
     homepage = "https://0xerr0r.github.io/blocky";
     changelog = "https://github.com/0xERR0R/blocky/releases";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/browsers/brave/default.nix b/pkgs/applications/networking/browsers/brave/default.nix
index acd1b4d8373f5..59b753192a2ae 100644
--- a/pkgs/applications/networking/browsers/brave/default.nix
+++ b/pkgs/applications/networking/browsers/brave/default.nix
@@ -6,17 +6,17 @@ callPackage ./make-brave.nix (removeAttrs args [ "callPackage" ])
     if stdenv.isAarch64 then
       {
         pname = "brave";
-        version = "1.66.110";
-        url = "https://github.com/brave/brave-browser/releases/download/v1.66.110/brave-browser_1.66.110_arm64.deb";
-        hash = "sha256-yElWlzGdI+mopmPgXTABXncoufojHngRX88TCy3AE+E=";
+        version = "1.67.116";
+        url = "https://github.com/brave/brave-browser/releases/download/v1.67.116/brave-browser_1.67.116_arm64.deb";
+        hash = "sha256-YOvfXI+bSX3WZRBYXxGYhNme9NZl3ob/JYw6KshXn54=";
         platform = "aarch64-linux";
       }
     else if stdenv.isx86_64 then
       {
         pname = "brave";
-        version = "1.66.110";
-        url = "https://github.com/brave/brave-browser/releases/download/v1.66.110/brave-browser_1.66.110_amd64.deb";
-        hash = "sha256-2KtTI9QODfQR25YzXJMXJspuzCS11FpDx2L1B8DWmmc=";
+        version = "1.67.116";
+        url = "https://github.com/brave/brave-browser/releases/download/v1.67.116/brave-browser_1.67.116_amd64.deb";
+        hash = "sha256-J4ap0bEAg5Q40U155AdAyzereBAo8Q/YDedDVqYvaT4=";
         platform = "x86_64-linux";
       }
     else
diff --git a/pkgs/applications/networking/browsers/browsh/default.nix b/pkgs/applications/networking/browsers/browsh/default.nix
index 2eeef882d6307..29ddb1475ed9d 100644
--- a/pkgs/applications/networking/browsers/browsh/default.nix
+++ b/pkgs/applications/networking/browsers/browsh/default.nix
@@ -37,7 +37,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A fully-modern text-based browser, rendering to TTY and browsers";
+    description = "Fully-modern text-based browser, rendering to TTY and browsers";
     mainProgram = "browsh";
     homepage = "https://www.brow.sh/";
     maintainers = with maintainers; [ kalbasit siraben ];
diff --git a/pkgs/applications/networking/browsers/castor/default.nix b/pkgs/applications/networking/browsers/castor/default.nix
index f02ae0f6e05e3..78e2791c1bb45 100644
--- a/pkgs/applications/networking/browsers/castor/default.nix
+++ b/pkgs/applications/networking/browsers/castor/default.nix
@@ -43,7 +43,7 @@ rustPlatform.buildRustPackage rec {
   useNextest = true;
 
   meta = with lib; {
-    description = "A graphical client for plain-text protocols written in Rust with GTK. It currently supports the Gemini, Gopher and Finger protocols";
+    description = "Graphical client for plain-text protocols written in Rust with GTK. It currently supports the Gemini, Gopher and Finger protocols";
     mainProgram = "castor";
     homepage = "https://sr.ht/~julienxx/Castor";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/browsers/chromium/browser.nix b/pkgs/applications/networking/browsers/chromium/browser.nix
index 24811cc336b6a..5b77afaaf3ebb 100644
--- a/pkgs/applications/networking/browsers/chromium/browser.nix
+++ b/pkgs/applications/networking/browsers/chromium/browser.nix
@@ -73,7 +73,7 @@ mkChromiumDerivation (base: rec {
   requiredSystemFeatures = [ "big-parallel" ];
 
   meta = {
-    description = "An open source web browser from Google"
+    description = "Open source web browser from Google"
       + lib.optionalString ungoogled ", with dependencies on Google web services removed";
     longDescription = ''
       Chromium is an open source web browser from Google that aims to build a
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index e7597249acdb5..3616189374d30 100644
--- a/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -3,7 +3,6 @@
 , buildPackages
 , buildPlatform
 , pkgsBuildBuild
-, pkgsBuildTarget
 # Channel data:
 , channel, upstream-info
 # Helper functions:
@@ -13,7 +12,6 @@
 , ninja, pkg-config
 , python3, perl
 , which
-, llvmPackages_attrName
 , libuuid
 , overrideCC
 # postPatch:
@@ -132,7 +130,7 @@ let
   # https://github.com/NixOS/nixpkgs/issues/142901
   buildPlatformLlvmStdenv =
     let
-      llvmPackages = pkgsBuildBuild.${llvmPackages_attrName};
+      llvmPackages = pkgsBuildBuild.rustc.llvmPackages;
     in
       overrideCC llvmPackages.stdenv
         (llvmPackages.stdenv.cc.override {
@@ -165,7 +163,7 @@ let
       ninja pkg-config
       python3WithPackages perl
       which
-      buildPackages.${llvmPackages_attrName}.bintools
+      buildPackages.rustc.llvmPackages.bintools
       bison gperf
     ];
 
@@ -261,6 +259,14 @@ let
       # We also need enable_widevine_cdm_component to be false. Unfortunately it isn't exposed as gn
       # flag (declare_args) so we simply hardcode it to false.
       ./patches/widevine-disable-auto-download-allow-bundle.patch
+    ] ++ lib.optionals (versionRange "125" "126") [
+      # Fix building M125 with ninja 1.12. Not needed for M126+.
+      # https://issues.chromium.org/issues/336911498
+      # https://chromium-review.googlesource.com/c/chromium/src/+/5487538
+      (githubPatch {
+        commit = "a976cb05b4024b7a6452d1541378d718cdfe33e6";
+        hash = "sha256-K2PSeJAvhGH2/Yp63/4mJ85NyqXqDDkMWY+ptrpgmOI=";
+      })
     ] ++ [
       # Required to fix the build with a more recent wayland-protocols version
       # (we currently package 1.26 in Nixpkgs while Chromium bundles 1.21):
@@ -269,28 +275,23 @@ let
       # Chromium reads initial_preferences from its own executable directory
       # This patch modifies it to read /etc/chromium/initial_preferences
       ./patches/chromium-initial-prefs.patch
-    ] ++ lib.optionals (chromiumVersionAtLeast "120") [
-      # We need to revert this patch to build M120+ with LLVM 17:
+    ] ++ lib.optionals (versionRange "120" "126") [
+      # Partial revert to build M120+ with LLVM 17:
+      # https://github.com/chromium/chromium/commit/02b6456643700771597c00741937e22068b0f956
+      # https://github.com/chromium/chromium/commit/69736ffe943ff996d4a88d15eb30103a8c854e29
       ./patches/chromium-120-llvm-17.patch
-    ] ++ lib.optionals (!chromiumVersionAtLeast "119.0.6024.0") [
-      # Fix build with at-spi2-core ≥ 2.49
-      # This version is still needed for electron.
-      (githubPatch {
-        commit = "fc09363b2278893790d131c72a4ed96ec9837624";
-        hash = "sha256-l60Npgs/+0ozzuKWjwiHUUV6z59ObUjAPTfXN7eXpzw=";
-      })
-    ] ++ lib.optionals (!chromiumVersionAtLeast "121.0.6104.0") [
-      # Fix build with at-spi2-core ≥ 2.49
-      # https://chromium-review.googlesource.com/c/chromium/src/+/5001687
-      (githubPatch {
-        commit = "b9bef8e9555645fc91fab705bec697214a39dbc1";
-        hash = "sha256-CJ1v/qc8+nwaHQR9xsx08EEcuVRbyBfCZCm/G7hRY+4=";
-      })
-    ] ++ lib.optionals (chromiumVersionAtLeast "121") [
+    ] ++ lib.optionals (chromiumVersionAtLeast "126") [
+      # Rebased variant of patch right above to build M126+ with LLVM 17.
+      # staging-next will bump LLVM to 18, so we will be able to drop this soon.
+      ./patches/chromium-126-llvm-17.patch
+    ] ++ lib.optionals (versionRange "121" "126") [
       # M121 is the first version to require the new rust toolchain.
       # Partial revert of https://github.com/chromium/chromium/commit/3687976b0c6d36cf4157419a24a39f6770098d61
       # allowing us to use our rustc and our clang.
       ./patches/chromium-121-rust.patch
+    ] ++ lib.optionals (chromiumVersionAtLeast "126") [
+      # Rebased variant of patch right above to build M126+ with our rust and our clang.
+      ./patches/chromium-126-rust.patch
     ];
 
     postPatch = ''
@@ -382,8 +383,8 @@ let
     llvmCcAndBintools = symlinkJoin {
       name = "llvmCcAndBintools";
       paths = [
-        pkgsBuildTarget.${llvmPackages_attrName}.llvm
-        pkgsBuildTarget.${llvmPackages_attrName}.stdenv.cc
+        buildPackages.rustc.llvmPackages.llvm
+        buildPackages.rustc.llvmPackages.stdenv.cc
       ];
     };
 
@@ -461,10 +462,6 @@ let
       use_system_libffi = true;
       # Use nixpkgs Rust compiler instead of the one shipped by Chromium.
       rust_sysroot_absolute = "${buildPackages.rustc}";
-      # Rust is enabled for M121+, see next section:
-      enable_rust = false;
-    } // lib.optionalAttrs (chromiumVersionAtLeast "121") {
-      # M121 the first version to actually require a functioning rust toolchain
       enable_rust = true;
       # While we technically don't need the cache-invalidation rustc_version provides, rustc_version
       # is still used in some scripts (e.g. build/rust/std/find_std_rlibs.py).
@@ -483,10 +480,12 @@ let
     } // lib.optionalAttrs ungoogled (lib.importTOML ./ungoogled-flags.toml)
     // (extraAttrs.gnFlags or {}));
 
-    # We cannot use chromiumVersionAtLeast in mkDerivation's env attrset due
-    # to infinite recursion when chromium.override is used (e.g. electron).
-    # To work aroud this, we use export in the preConfigure phase.
-    preConfigure = lib.optionalString (chromiumVersionAtLeast "121") ''
+    # TODO: Migrate this to env.RUSTC_BOOTSTRAP next mass-rebuild.
+    # Chromium expects nightly/bleeding edge rustc features to be available.
+    # Our rustc in nixpkgs follows stable, but since bootstrapping rustc requires
+    # nightly features too, we can (ab-)use RUSTC_BOOTSTRAP here as well to
+    # enable those features in our stable builds.
+    preConfigure = ''
       export RUSTC_BOOTSTRAP=1
     '';
 
diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index afd25b972d785..095fe13f9197a 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -1,9 +1,9 @@
-{ newScope, config, stdenv, fetchurl, makeWrapper
+{ newScope, config, stdenv, makeWrapper
 , buildPackages
 , ed, gnugrep, coreutils, xdg-utils
 , glib, gtk3, gtk4, gnome, gsettings-desktop-schemas, gn, fetchgit
 , libva, pipewire, wayland
-, gcc, nspr, nss, runCommand
+, runCommand
 , lib, libkrb5
 , widevine-cdm
 , electron-source # for warnObsoleteVersionConditional
@@ -18,17 +18,12 @@
 , cupsSupport ? true
 , pulseSupport ? config.pulseaudio or stdenv.isLinux
 , commandLineArgs ? ""
-, pkgsBuildTarget
 , pkgsBuildBuild
 , pkgs
 }:
 
 let
-  # Sometimes we access `llvmPackages` via `pkgs`, and other times
-  # via `pkgsFooBar`, so a string (attrname) is the only way to have
-  # a single point of control over the LLVM version used.
-  llvmPackages_attrName = "llvmPackages_17";
-  stdenv = pkgs.${llvmPackages_attrName}.stdenv;
+  stdenv = pkgs.rustc.llvmPackages.stdenv;
 
   # Helper functions for changes that depend on specific versions:
   warnObsoleteVersionConditional = min-version: result:
@@ -48,7 +43,7 @@ let
   callPackage = newScope chromium;
 
   chromium = rec {
-    inherit stdenv llvmPackages_attrName upstream-info;
+    inherit stdenv upstream-info;
 
     mkChromiumDerivation = callPackage ./common.nix ({
       inherit channel chromiumVersionAtLeast versionRange;
diff --git a/pkgs/applications/networking/browsers/chromium/patches/chromium-126-llvm-17.patch b/pkgs/applications/networking/browsers/chromium/patches/chromium-126-llvm-17.patch
new file mode 100644
index 0000000000000..ea059d884b5a2
--- /dev/null
+++ b/pkgs/applications/networking/browsers/chromium/patches/chromium-126-llvm-17.patch
@@ -0,0 +1,29 @@
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 6efe967eb0a1c..590a2c274ac13 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -568,24 +568,6 @@ config("compiler") {
+       }
+     }
+ 
+-    # TODO(crbug.com/40283598): This causes binary size growth and potentially
+-    # other problems.
+-    # TODO(crbug.com/40284925): This isn't supported by Cronet's mainline llvm version.
+-    if (default_toolchain != "//build/toolchain/cros:target" &&
+-        !llvm_android_mainline) {
+-      cflags += [
+-        "-mllvm",
+-        "-split-threshold-for-reg-with-hint=0",
+-      ]
+-      if (use_thin_lto && is_a_target_toolchain) {
+-        if (is_win) {
+-          ldflags += [ "-mllvm:-split-threshold-for-reg-with-hint=0" ]
+-        } else {
+-          ldflags += [ "-Wl,-mllvm,-split-threshold-for-reg-with-hint=0" ]
+-        }
+-      }
+-    }
+-
+     # TODO(crbug.com/40192287): Investigate why/if this should be needed.
+     if (is_win) {
+       cflags += [ "/clang:-ffp-contract=off" ]
diff --git a/pkgs/applications/networking/browsers/chromium/patches/chromium-126-rust.patch b/pkgs/applications/networking/browsers/chromium/patches/chromium-126-rust.patch
new file mode 100644
index 0000000000000..776655babdd2a
--- /dev/null
+++ b/pkgs/applications/networking/browsers/chromium/patches/chromium-126-rust.patch
@@ -0,0 +1,21 @@
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 6efe967eb0a1c..2ddae4efacbfa 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -1653,16 +1653,6 @@ config("runtime_library") {
+     configs += [ "//build/config/c++:runtime_library" ]
+   }
+ 
+-  # Rust and C++ both provide intrinsics for LLVM to call for math operations. We
+-  # want to use the C++ intrinsics, not the ones in the Rust compiler_builtins
+-  # library. The Rust symbols are marked as weak, so that they can be replaced by
+-  # the C++ symbols. This config ensures the C++ symbols exist and are strong in
+-  # order to cause that replacement to occur by explicitly linking in clang's
+-  # compiler-rt library.
+-  if (is_clang && toolchain_has_rust) {
+-    configs += [ "//build/config/clang:compiler_builtins" ]
+-  }
+-
+   # TODO(crbug.com/40570904): Come up with a better name for is POSIX + Fuchsia
+   # configuration.
+   if (is_posix || is_fuchsia) {
diff --git a/pkgs/applications/networking/browsers/chromium/recompress-tarball.nix b/pkgs/applications/networking/browsers/chromium/recompress-tarball.nix
index 0e77dd230f657..e663c393d8dc4 100644
--- a/pkgs/applications/networking/browsers/chromium/recompress-tarball.nix
+++ b/pkgs/applications/networking/browsers/chromium/recompress-tarball.nix
@@ -34,6 +34,7 @@ fetchurl ({
       --one-top-level=source \
       --exclude=third_party/llvm \
       --exclude=third_party/rust-src \
+      --exclude='build/linux/debian_*-sysroot' \
       --strip-components=1
 
     tar \
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
index e3bf7d7c09444..bbcfc835071c8 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.nix
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
@@ -1,37 +1,37 @@
 {
   stable = {
     chromedriver = {
-      hash_darwin = "sha256-DX0J3xeOK4Dy4BAjbrbu1rnIkmF8nlmy9tMaQhLsFcU=";
+      hash_darwin = "sha256-BWZaa1+3EUG11RmZjjbwG2UPZhlCpW3X9rkpiWrjgzM=";
       hash_darwin_aarch64 =
-        "sha256-hRJeaeQS30srO5M1Gi43VYR/KrjNAhH0XozkEzvcbA0=";
-      hash_linux = "sha256-CcBQhIsK7mL7VNJCs6ynhrQeXPuB793DysyV1nj90mM=";
-      version = "125.0.6422.76";
+        "sha256-wkUIFolVdvcnEQKKehKCyD5GS5Q42fVFKj/iHtiIj8I=";
+      hash_linux = "sha256-owTmkkgMcmuuhGv23uNjFjBdC49IJt+v6rjWu7xuchQ=";
+      version = "126.0.6478.62";
     };
     deps = {
       gn = {
-        hash = "sha256-lrVAb6La+cvuUCNI90O6M/sheOEVFTjgpfA3O/6Odp0=";
-        rev = "d823fd85da3fb83146f734377da454473b93a2b2";
+        hash = "sha256-mNoQeHSSM+rhR0UHrpbyzLJC9vFqfxK1SD0X8GiRsqw=";
+        rev = "df98b86690c83b81aedc909ded18857296406159";
         url = "https://gn.googlesource.com/gn";
-        version = "2024-04-10";
+        version = "2024-05-13";
       };
     };
-    hash = "sha256-m7WeRloS6tGH2AwhkNicpqThUQmS+9w2xFS2dbmu1vw=";
-    version = "125.0.6422.76";
+    hash = "sha256-sXP+/KXDoy3QnRoa9acGbsXKVCPspyNGtZTLMHBqxvw=";
+    version = "126.0.6478.114";
   };
   ungoogled-chromium = {
     deps = {
       gn = {
-        hash = "sha256-lrVAb6La+cvuUCNI90O6M/sheOEVFTjgpfA3O/6Odp0=";
-        rev = "d823fd85da3fb83146f734377da454473b93a2b2";
+        hash = "sha256-mNoQeHSSM+rhR0UHrpbyzLJC9vFqfxK1SD0X8GiRsqw=";
+        rev = "df98b86690c83b81aedc909ded18857296406159";
         url = "https://gn.googlesource.com/gn";
-        version = "2024-04-10";
+        version = "2024-05-13";
       };
       ungoogled-patches = {
-        hash = "sha256-bGc8hQnuiGot0kThSAi4AFAwmvrNPs1bR7oZx2XoAGo=";
-        rev = "125.0.6422.76-1";
+        hash = "sha256-lj/XYWkEo7M1i3D5e1MVXTXh02U55lNoo+sxKpu8FNc=";
+        rev = "126.0.6478.114-1";
       };
     };
-    hash = "sha256-m7WeRloS6tGH2AwhkNicpqThUQmS+9w2xFS2dbmu1vw=";
-    version = "125.0.6422.76";
+    hash = "sha256-sXP+/KXDoy3QnRoa9acGbsXKVCPspyNGtZTLMHBqxvw=";
+    version = "126.0.6478.114";
   };
 }
diff --git a/pkgs/applications/networking/browsers/eolie/default.nix b/pkgs/applications/networking/browsers/eolie/default.nix
index 8649969d8c30a..69c3fdbfbca0c 100644
--- a/pkgs/applications/networking/browsers/eolie/default.nix
+++ b/pkgs/applications/networking/browsers/eolie/default.nix
@@ -70,7 +70,7 @@ python3.pkgs.buildPythonApplication rec {
   strictDeps = false;
 
   meta = with lib; {
-    description = "A new GNOME web browser";
+    description = "New GNOME web browser";
     mainProgram = "eolie";
     homepage = "https://gitlab.gnome.org/World/eolie";
     license  = licenses.gpl3Plus;
diff --git a/pkgs/applications/networking/browsers/ephemeral/default.nix b/pkgs/applications/networking/browsers/ephemeral/default.nix
index 41ae308ff0312..0cd58bbd25a2f 100644
--- a/pkgs/applications/networking/browsers/ephemeral/default.nix
+++ b/pkgs/applications/networking/browsers/ephemeral/default.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "The always-incognito web browser";
+    description = "Always-incognito web browser";
     homepage = "https://github.com/cassidyjames/ephemeral";
     maintainers = with maintainers; [ xiorcale ] ++ teams.pantheon.members;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
index 438afcb47f3d1..df8d45d50f1e6 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
@@ -1,1025 +1,1035 @@
 {
-  version = "127.0b2";
+  version = "128.0b3";
   sources = [
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/ach/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/ach/firefox-128.0b3.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha256 = "c7aae56e1d11690146e31f73c4f45dcc6cc17b70ee253d13dd9ce8f111056cbc";
+      sha256 = "91b9fcf837ffe54df7712f71b608b636464c8222e96d39f6714db4939848e47f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/af/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/af/firefox-128.0b3.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "0ebbde167d241e133bdec7d552e1e788a82162d7c5e132307f638af8e7b42735";
+      sha256 = "ccafcb76d6f4635edef530be87d8dd4762c81726b5cad9c2cc3662bd65360ba3";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/an/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/an/firefox-128.0b3.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha256 = "f5c692093a7a37b197cfed2598dc0c3c9d74251c56a138c50bc1cc0e26aee7ce";
+      sha256 = "d45a54fbf050485a3513ed4420d6d79912146fe6255e1bb9d0c8438222d20899";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/ar/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/ar/firefox-128.0b3.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "8a92915a3694d414dd784810842d1da28cbc1af13d207c1718fdacfa0bf0c0cf";
+      sha256 = "f0304395c3c4e8d8be8dbc5664dffee5c2f788d4bafe304d1ab4db82e76077ce";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/ast/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/ast/firefox-128.0b3.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "e754614bbbd6868318795e43bd067b0dede402c3c40866c6fed4e4ed177aecb8";
+      sha256 = "fbd5d17af1d32899de32d5e76f0da6bc9cc232b524f08ed1592eea3f03138e67";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/az/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/az/firefox-128.0b3.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha256 = "299ff13944cecb650402946cec2dc28a25ecc4d175932a646e5c8d1f985244de";
+      sha256 = "cc41ca3a46ace0c4e5bd2e0d503ddbbf92730dbaf24bb4c32b15481a51331ea5";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/be/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/be/firefox-128.0b3.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "ecc04baedce51685f8ecad129fb62563eb6ce4c9f2d889b3ef1b9d99d9485114";
+      sha256 = "1aea189544651679d4d590d7eb9de7b59290df85d738dd1e97575f863352ef7b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/bg/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/bg/firefox-128.0b3.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "be8464fa878ef4feb42fe5df414577474c3a753763d6956413c1896e014b1aca";
+      sha256 = "0c191744aac8dcbea9e7047adba99fca2f44eb2456884ced55daefaaa947e14a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/bn/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/bn/firefox-128.0b3.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha256 = "1af698eca255cd94ce65ccac0d0fdf9ebd360706b296b27a7c010f277493efcb";
+      sha256 = "83c7fc7558574813a920d3f9fe07bdd7163585eb82a09d77e889cdac6e684b81";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/br/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/br/firefox-128.0b3.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "7ca811f059868cb830c1bf48278583eefb662a4af70d4ad838d695bbc8993cec";
+      sha256 = "2cc6397f3c67a46c01f9bc0d891c781239312277d60be79bd3152156fcccaf9a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/bs/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/bs/firefox-128.0b3.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha256 = "955a3e8010619360be944c52003d64ab21f87f2fe502dd9a64da927eab18bb95";
+      sha256 = "b75ea133c0237d67ae6480a3754d7edb8757e4bfc3517fb04e3d143f0abe70ef";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/ca-valencia/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/ca-valencia/firefox-128.0b3.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha256 = "e7d014d5652fdbe7aecf0f03e1bfc7c5faf6162c4db457c173696e085d947fd3";
+      sha256 = "658cdcb9fb3b12dae8b8f11458c36955afebd60cc2578b544a02c975ff8522c3";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/ca/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/ca/firefox-128.0b3.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "78b66d258512ed91ec1264e15a8011d2ebbcf54e8c1b6aa7e938708b4b449561";
+      sha256 = "b4c12e3a8d4ceab2eed6f29ac27f3e38ee8410ea49f809021f30915357a237a0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/cak/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/cak/firefox-128.0b3.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "254afadecf8023427b35ebb8892bddef4a28c74edb1111fd7463abad3253a2aa";
+      sha256 = "496fb9b680714e84895c1d88a56443a9c85fd983d3a95c647a9fdff348db9145";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/cs/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/cs/firefox-128.0b3.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "d9f7f85aa9d206585f569dac9e033203120c1828003cea384eaf029b735c72b3";
+      sha256 = "e9a9859fae4b699ea2ede1646f49cfc2663519850f58ddd72c97e8d82dc8b04a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/cy/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/cy/firefox-128.0b3.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "3a14e4e0f24e9171957f17c1c4796ae011ce13be294c4eb9ccee88051337da05";
+      sha256 = "806f6d644c8c3dbb7c150ba4b984185ed669ade7841240b2c4135f18b6808923";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/da/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/da/firefox-128.0b3.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "54ff12ab652e7732b399f9467a83958948762b937714e4a063b25584b3da4bf2";
+      sha256 = "bea3bd58f51c4e1041e2d4694f56ea27efb7e31b2df24fca43c77c7b5e07e966";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/de/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/de/firefox-128.0b3.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "5f62e89d986ccac338ac3188b50536ca5beccc8917a7fb115e2d375d51ed64d8";
+      sha256 = "fce8aedc5386ce726be545ecd6e8ee9aca700fada5b366786a85e48e7e1e477d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/dsb/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/dsb/firefox-128.0b3.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "3278591a5399a8f6e586909b5b5849f2f27fc6399c6be6917e53f067958076a3";
+      sha256 = "660553433ef3117f0caef5029e13e9edaa2b7800dd01e3f1f408a34cf5970d5c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/el/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/el/firefox-128.0b3.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "5ddbb69bbeccb6457eb4beee49c07d2d5fbb8ec084d1d26ca86bcd2b5d6ac714";
+      sha256 = "edfdac7737acf7f3d63a1a65900b16f640b788fd127df19b9796d05c1e6ca630";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/en-CA/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/en-CA/firefox-128.0b3.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "c7ec425ef808857a04eb6bb12edb6efa9aeea69e775aa0cf68c49eabde4f9043";
+      sha256 = "ac420dea854ea1e7ac5e408a54fc5590f341edd3d7a2632b56a6b77edab80ba3";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/en-GB/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/en-GB/firefox-128.0b3.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "6adabefd8ce08035576c0d27df6fe303265d6e5db3669a50d95588617c2dbd71";
+      sha256 = "44efa47918922d1883c7844b91ff03ff756eb5bdd726d35db92875048bf7381d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/en-US/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/en-US/firefox-128.0b3.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "91bfda5ff421d6db1577990555c2da4096c18ea7d7e4faa626bef572b75bd463";
+      sha256 = "a44bd8e6c0cbdf28e270190f5dcaab0b803103509f556619047990551b7bea2d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/eo/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/eo/firefox-128.0b3.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha256 = "3cebf9a4fd6beae49e82762ecf4d828d91f4c251d016122e8392a088269ccb06";
+      sha256 = "2128ff79b43fdc1e8f61135a83c77d2413250a24900c349e520147eaf7bc9152";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/es-AR/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/es-AR/firefox-128.0b3.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "197a15d60bdde213e3ced20797c5d3b9266d107c786b3db754045698aaf79e9a";
+      sha256 = "0b4c2cc2a8256665284e3dda0ddb9170fb688ddb5eb02ed0d1e377cef2632b22";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/es-CL/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/es-CL/firefox-128.0b3.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha256 = "38c2a4d4809af60082bb76fe339ed083d77021edf3cb7db67466ef15b45be761";
+      sha256 = "10be1cdf825a91f337704e4ca5cb94bbf6f1c2d50719a13dc97c24b8f65a129e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/es-ES/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/es-ES/firefox-128.0b3.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "8def6020400ec124ea9aa6c6b790807428651b2a01bd1bb82f59277d4d29b352";
+      sha256 = "29cfd6972bc67dfa4e9bf4e57a0c28cba229f35c54457819fc0ce1f661f73ee0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/es-MX/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/es-MX/firefox-128.0b3.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha256 = "0057d55bb5dac0fa89c68cd29f530be63fe5e612a164edaaf0f95fa9e647abf1";
+      sha256 = "e652e6f9a61a21f992cc81adfdbe506dbd1fafb91da6519e870d65e5356a3951";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/et/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/et/firefox-128.0b3.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "ca1ea211bf93436e7eaaaa271e9fe7d24b594ee02b7213616c5b73e7a04dd18b";
+      sha256 = "086736332b848acd6a8c010596331fdd468e59835c202ede90bcbf66a326fb7b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/eu/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/eu/firefox-128.0b3.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "e871a40eee14d812b3d1da6b4f09ecfc3418bdd1510a8b6ee1c64284be191c9f";
+      sha256 = "817eafa8d1c57a99a2e51dcb813d9d4032bc17ae67e6e48cf1b141e87899049b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/fa/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/fa/firefox-128.0b3.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "e99bbf034d1155a1956b4d9eead8627a0a8a25653f84bcf7c65c5449a36b9c54";
+      sha256 = "9d09bc0b7f3f32b483890d67b9991a72b9492e1ad8be3418064f41fde5bcd5be";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/ff/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/ff/firefox-128.0b3.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha256 = "ec6595203a1889062c8fb8fa1b316e5c65277b8a8b5de1af688a7c7f912c5352";
+      sha256 = "e6221fe30617ff74633292ddf5b0108e3a2fb7f3dd96b33df53eccb46ba4bd8b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/fi/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/fi/firefox-128.0b3.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "cd71f03e43427070536fd717058cae2909c7a853ea380e879a28e4d730eb5400";
+      sha256 = "5dfef84c2c997de1da02cb3eed105babc3d981d34649747eb10ee73fc63fa32b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/fr/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/fr/firefox-128.0b3.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "f4327bb8fe27a19d2e075d5ac44d4b1b89d3f2dcec866c336fad6d87d1d32270";
+      sha256 = "e6bbe850823430b63b8a9815e2dbab02cc1eb470a9d5c88aa1a079fa3ea12f9c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/fur/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/fur/firefox-128.0b3.tar.bz2";
       locale = "fur";
       arch = "linux-x86_64";
-      sha256 = "484706c7851e7631a2b4330e2ffa3a753cf9e3a42266019d09dec6d6888bdcd0";
+      sha256 = "1c0e9148fcc302bb29993b0bfb21b330ba6a1b319acb51b7fabc8fb20d0af3cf";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/fy-NL/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/fy-NL/firefox-128.0b3.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "8b292615492a6cfb221c42395fca9fdeca0c4f1303c87e7c7cd17e5d820b44b5";
+      sha256 = "3953327d4bfd475ca743b51cf2613c21362fa48241d9e720dce61c10c6d07a02";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/ga-IE/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/ga-IE/firefox-128.0b3.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "035ed8e107a7a5a2c48c11fee7a7adc3acba6c4fd1cb8b1d0474656f8e4e1e2a";
+      sha256 = "08a258714e5077881ffdc1f3e2fabdcba46d8eb035c2e45cc5cdf9b78255b698";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/gd/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/gd/firefox-128.0b3.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "687128878140148cb4f84d0efbc64b7d2152213ffcafcf7858c05b8f4f3d8e30";
+      sha256 = "a8cfed3eba163eb7d83da7d752752e50a66f763e7bc96947d28c843707e6a815";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/gl/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/gl/firefox-128.0b3.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "360399cc36a3c738aa1c93679fdd6b5310ff2076a53532d72dc6c6eae0bd9494";
+      sha256 = "96c78ad70db34895c9b0de2f282818c8a8be9c328ccb86ab4b34a05f7e884756";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/gn/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/gn/firefox-128.0b3.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha256 = "5f350d55055e6f34778ea1339ac597cac41a12951265a18c1717f67e337fedf3";
+      sha256 = "9ca592bf9d78aedf2bf20213ab1494c6b5c0dc668dcc2a3d1b1291a6cf198468";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/gu-IN/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/gu-IN/firefox-128.0b3.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha256 = "3ecf863778a252d8753aa2a05cb9e44b28a618e763b654aeda899d48a745553c";
+      sha256 = "ce4bb8c67dfdde7a0f6ade7af2408dfa29af687807e257b756235e8f0ce873cb";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/he/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/he/firefox-128.0b3.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "fc0f199d8a594cc8b48aebc24e424dda4baa6c56cea4366caa39cc36f4ab742a";
+      sha256 = "9ba5ab6c7f2802f70098ce8aa01d575eeb7b0f58dacc10db1c4c99ede96de5b3";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/hi-IN/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/hi-IN/firefox-128.0b3.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha256 = "901d602e9145cc5a639a4968844c25b93bad2781ced750067cca5b5015ea28b2";
+      sha256 = "f9a9f3da6cfbeb6aa4a8f1f7865e7283b4870f4540789fbf944143b700686c95";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/hr/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/hr/firefox-128.0b3.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "f52fe3d76b09f7ffa42d77d91fffc7d3de93e7c7a3a653fa14648a0024b59068";
+      sha256 = "b49e9f643ba870955b696994c552331453a84861f124f37014883c9cb6a544cb";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/hsb/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/hsb/firefox-128.0b3.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "c6aad5424868d618723f1eb9385d3a520ac320b71e04e3ba8a59fb65fa212d27";
+      sha256 = "23ffe338d1aa10d63c577013d393ab6b13cba618affef5d7771712fd0596e51b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/hu/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/hu/firefox-128.0b3.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "66f47258fff3b41f0ac0be736073aa12dccef6d7a8fd33473ac7a795dc75c327";
+      sha256 = "6dfbca5bd230abf413a0a149a6cd6cd21a61eae43be69f5402a9ce4baba48620";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/hy-AM/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/hy-AM/firefox-128.0b3.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "afedb515503be143d48f050c0a987369037fb4a0ad53a6220670609faff94a3a";
+      sha256 = "27c5564db6989ab00ea76734f375ca795472571d7f4b6fedc5135b071d58d97b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/ia/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/ia/firefox-128.0b3.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha256 = "634717627c38094a95ca772c6865c5400b2ad1222e22e22c8f3f6b8124a41547";
+      sha256 = "8bdfd372040d0e2b2800eb9c66782334875b119f13dff164aa7320ff39856bce";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/id/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/id/firefox-128.0b3.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "a4ee1313d38275121361844e5d992ef29d83a98fe4147c3c18caa36c0ed1e9e6";
+      sha256 = "c9c2fc719b5502812ba5ee64351b48c10917880625667f0a0f00e02703cd77a1";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/is/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/is/firefox-128.0b3.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "7933781c4914cc2fa783f5223ed84773f6b9eea9c4e574f31e5235c56f642fa9";
+      sha256 = "fae14a04c6625a07bc73956ba990dd7e488e130a60770c89175eca6ac86cd387";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/it/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/it/firefox-128.0b3.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "fd23150d42eab62017c03c60cc14c60bf30a8dd47392f9f3622ae6f316736cbb";
+      sha256 = "4a28824f54e51f24ced026f78ee980e2e36802dddc800d1a0b02517a250f7ada";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/ja/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/ja/firefox-128.0b3.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "e883e237c2be0be605d3c84c9360a9f7730f3db72beb2950b783718c72dbd6c9";
+      sha256 = "30401649d210eb1caf484548de20c260a6a767018135502068cbdea202eebcf6";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/ka/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/ka/firefox-128.0b3.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "39a9cc928671f26756fe1be706ecc984e0d0e20a2d7801de02d84b183f69929c";
+      sha256 = "6355e66d1428fb69d1c900d42440d73b0d59bee89146dffb7af457ca411b2aa1";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/kab/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/kab/firefox-128.0b3.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "1901f0511457f0554a157042d880eb655a05d21a9334141d749a0e3fb0a11477";
+      sha256 = "52d5431b2d7d5b0b3f0b1bd67251f65146ee653bc78fb16c84f99571c01e6bd6";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/kk/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/kk/firefox-128.0b3.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "bffba4678647019c5456b126454cbdfa6005132d2e56fd92731db444144a3c2d";
+      sha256 = "03d0e5f8a5b60389448aa74fb94b865237778da749dda7819fc23a585e121b37";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/km/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/km/firefox-128.0b3.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha256 = "2bab72d223d23e27adbdd738397a65961aba70bb4305013bcaa781c4697c4950";
+      sha256 = "e049a895091f181e91288ab79750d9972e22afb45b5b64c61832a654f9972c57";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/kn/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/kn/firefox-128.0b3.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha256 = "b8f989ed111930ed357c5522e1b1713d95dd4bf1507262fa4f1386679ac94780";
+      sha256 = "705aa81ae0963aaf689fd5cafa60e293f7d281422d6ad127dbc7c9ddfa0dcfad";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/ko/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/ko/firefox-128.0b3.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "af2127940913eace7dfdd52db34c2a5d53123822bf50153f5b58ebbb394a54ea";
+      sha256 = "82e2cf3543a48a0678338200309730fc3a699f7a984f1014c0ba8c5945bea518";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/lij/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/lij/firefox-128.0b3.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha256 = "6ce2e398539e3f4c5241a472a5b16e4cd60430e5d66e693cbb94cf8634f4afde";
+      sha256 = "4cfed1c937cfb45b1ac05c4ccbde72275644ab95d4d6bab2943ada5ba81f5b68";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/lt/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/lt/firefox-128.0b3.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "538264101be6493fa266df6aa64342f013eac5f9b2e92c6f61f28727898e1447";
+      sha256 = "24f865bb38ad0c2d02e51840649b4d827836edd1f706393d16bb43b63f76a835";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/lv/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/lv/firefox-128.0b3.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "10e4d7da5fabe1187f8d205c7be80f61b10d8209c47f03fd5e4b531cdd110833";
+      sha256 = "fbba425695890a2be1736653dc4c49c94efc17d09cd883f5e137afe212fdb25a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/mk/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/mk/firefox-128.0b3.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha256 = "8e20a49fc3a0bb9d005e45b21f7c9d0ddf4b4ff5f0641d0884f59dcb61b543d3";
+      sha256 = "e8773525b7f2c0fc82afe01457c7074899d968675e9bd293264e22403b4be8b3";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/mr/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/mr/firefox-128.0b3.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha256 = "39d54febce8a2755f01c0fb37b8332080d256d406c9d235207e8956ab4ed9187";
+      sha256 = "7a790e94ea8cb0019d72f11d1110e1035799b9e9d2e6ebfc5cac502c94db8f68";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/ms/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/ms/firefox-128.0b3.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "bed6d9827609128910ca7d5e8ec754b3a0c80e350ba619e74fdc43f2e59342d4";
+      sha256 = "b2c32fa4c9d4eeebefea7b235b91a56e2ca3279c02f64520fd8e68048d190acf";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/my/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/my/firefox-128.0b3.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha256 = "a88a8b48ee0c5384b5e4ba4a934df39881dd382a6657cd5896537e5ffb5ede05";
+      sha256 = "e247dd90ffed9fd6dd8a7cf8667a934f211fdac32ae853b3eea803cb490caa9d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/nb-NO/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/nb-NO/firefox-128.0b3.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "95dfe9aeaad511bccb918fde67cdb816d0fd7be7c7117b085df79feb7d34886d";
+      sha256 = "843e3303bd29807c2c4f27368173e0f9c32fdb16bb2c151d47c5b5099b92dcb7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/ne-NP/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/ne-NP/firefox-128.0b3.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha256 = "d9718cbaf47641167ea6803f878ebe2cee8c328da01d0bb5294f9cb102fcb6d3";
+      sha256 = "f88683ca97cc178aad54d921aedad7ba6207f9320a5fbbc2ba0d6d7d7ef8f46e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/nl/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/nl/firefox-128.0b3.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "4573531cae8892e5ce64e550774ec04ef20cfc373e95287105828fe36f43435b";
+      sha256 = "4d06e59feb4b38fa08197ba3aa4e57d97265f04c8d7c5f8de31fefccb4b38601";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/nn-NO/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/nn-NO/firefox-128.0b3.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "62fed9500374dc32073b34d7b7e7f9c4a1f025dcd41ccec1bd409a0066bc1184";
+      sha256 = "91d60aa0cf396e2f332c2c215c92d0dee58cf484c46ff3e2148e974faed843d4";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/oc/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/oc/firefox-128.0b3.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha256 = "36b6041ed53861d2fad64c8e31d1009d18b318ae046d5586c7fe0330a9500d89";
+      sha256 = "e51325109a7d1a4e5277abc42e1bcce67e6872210f46412fda78c56ea0a5ed48";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/pa-IN/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/pa-IN/firefox-128.0b3.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "cd3178a4d6fa15869c8912dbee3c660650d9392a17064c6639ab295d28ae56df";
+      sha256 = "c2d0844b1e1dff71ff68498e8a8ed95efb058ff2e9938950d198fca0f01b2465";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/pl/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/pl/firefox-128.0b3.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "fd6e9a84ed6815415a6f9833f17b352d5c580f2dead854b5d050ece4851d19b5";
+      sha256 = "417a7f871b5a5ad8292d732382e945fbb5cd52cc114659e78e305dffd532d98a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/pt-BR/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/pt-BR/firefox-128.0b3.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "5cb87e09bb6103642172d1f59eca2b7fe7da39131a4df8c5c5e5d556569624e4";
+      sha256 = "f9cc05d47834d2cae826b72efc2c66b7d78fee9d0e1a49ebca4c95f7d15d6efc";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/pt-PT/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/pt-PT/firefox-128.0b3.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "8615acec0e99561e1e894b26aec495fcb20b2a86ecf58132ef8a3bbe1661abcd";
+      sha256 = "ac12dc95c8558f67dd648d383d6f71d66fd01b408fdbab01f63a4d80e64f4945";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/rm/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/rm/firefox-128.0b3.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "bb3241561ae0127fb8fcb27f6b287089626019e92523fba57111b0d8eb1c5a07";
+      sha256 = "727ba61e6d215858c92a9242ff2826d8ca1d63acb92fe9807bc9896495a47e42";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/ro/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/ro/firefox-128.0b3.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "2db0820b0e3df8ac8c201cdbe6460de89ba0307762d57b63946b57eb459f2654";
+      sha256 = "c53ba875f108a47f0c19e1956f988b1dc2882ae9fd28321c81254b4861b0169a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/ru/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/ru/firefox-128.0b3.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "f81b7e3938bff5a3a299ab8e5461890273c2e3e1a6dba82063db4eef9e7dade3";
+      sha256 = "015278da272c3c91fd566aec8d7f7d155cd1e38406049b136cc4656fc2a23629";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/sat/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/sat/firefox-128.0b3.tar.bz2";
       locale = "sat";
       arch = "linux-x86_64";
-      sha256 = "1fdc6ee7707f3a3fdbc4bdc63be308f07eb3929aa4b3b10c86cb3c36cf7ebefe";
+      sha256 = "5954a27e1dbe063dd3959a93d472e73e9b609cf57e3638e0332b354ea3628bfe";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/sc/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/sc/firefox-128.0b3.tar.bz2";
       locale = "sc";
       arch = "linux-x86_64";
-      sha256 = "6ff69281a6f4c6d76522f7c77bed70c094ac440b9e32dec9d428c53c0b4ef2d5";
+      sha256 = "4e8435a0716f906830ac75c9573ecb36279cdc1f6321795a45f75daf08c4b41b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/sco/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/sco/firefox-128.0b3.tar.bz2";
       locale = "sco";
       arch = "linux-x86_64";
-      sha256 = "d67d9d93a886d431572d4d5cafd162aae445e51c4b5e2182d04f621f1967ee59";
+      sha256 = "ec1bfbeba046492deaf3d42cfeede879413f85b7eb4e85c9ddc064660c088860";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/si/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/si/firefox-128.0b3.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "e86b70eced0f5b03ce1fe607dc2af7157cef886d22fa5b940d293314579bbb7d";
+      sha256 = "8fcbd1ef4c1dee115d60649c2c47439e9799ccf8a34d9aa09d6bf0d5d62e143f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/sk/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/sk/firefox-128.0b3.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "7e5ed858cbf865bf58c00995c023810e3af765044c7c3d329eecd097923d767f";
+      sha256 = "695616f84bbfe2c7a4dae8d9d30068419fedc5448a26733e4f5f35fd1c5c4002";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/sl/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/skr/firefox-128.0b3.tar.bz2";
+      locale = "skr";
+      arch = "linux-x86_64";
+      sha256 = "0c53f9fcbda34c8df1d3495e447835fc6a6b7e1ef41c1b65c3ffb3f6e92060b1";
+    }
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/sl/firefox-128.0b3.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "1f478d69f4ade3a000b06c9bbb55df375a1b19ccd8feab80c355141c3745a3d0";
+      sha256 = "8d9b8253d25bc88667c3123a2d4c134a9e8fa4078f992b41ce8b3b8abc192393";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/son/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/son/firefox-128.0b3.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha256 = "48ea869f09cafb9cec502f4156a41df9adbd4c129840596029809bcb0f0e2eef";
+      sha256 = "ac4706045196b94245466b8ca8ce71215ba23937d675d883ad926c8cf6a3be90";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/sq/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/sq/firefox-128.0b3.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "9015e159779159398ec555278a68d0092064ae1edddc5c3421aaf425ef20a8c7";
+      sha256 = "0d40ee306d601eba916d19cf89241e7a7dcf3101d33e3834c4fc39f37f06119a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/sr/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/sr/firefox-128.0b3.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "f28facc0fb7dc5ed720e4b1227cdf7e39023ac8d6e5f72474907e84ef3027bb4";
+      sha256 = "c27e8606ae5dac9a957b3dedb453e1dc9bf560b73bde942d84b20ffa51d49339";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/sv-SE/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/sv-SE/firefox-128.0b3.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "9e6d42a3f5a101fefa6c1a304ab139273d9a363c1ea967f58f12b61828101943";
+      sha256 = "81f2fa7b349b207482a013a4f693bf05be6ea0baddbc6f5ba0659e6b72fb4f9a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/szl/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/szl/firefox-128.0b3.tar.bz2";
       locale = "szl";
       arch = "linux-x86_64";
-      sha256 = "d20841dba01c4a3c8ecea6eea8dcd215b9f428cd0a8fd163166674c2f09b9afe";
+      sha256 = "7f6186f6936d343feac7eaa0de4c3e1359011d7a7785c241d56757db9926b186";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/ta/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/ta/firefox-128.0b3.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha256 = "898c22d8d59395eaed7519eae5b9227283a8cec50b9c899a85129f30575c6cec";
+      sha256 = "59414f762f5f5de1e172f71204cd21bc3861c3fac65fb7eee64c1dec1617ecae";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/te/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/te/firefox-128.0b3.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha256 = "94bfc953d203b49163756fad31b860313060860b6816c9e940ffa419e8a0f1c6";
+      sha256 = "511c1d35bb3caade5771e060ada9674a0bc4917d4da806618678b04618ba17c0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/tg/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/tg/firefox-128.0b3.tar.bz2";
       locale = "tg";
       arch = "linux-x86_64";
-      sha256 = "15a834f7064747052c700c419e337f7d2e6c0c2945ad62ae6d801d6ecca14208";
+      sha256 = "4bd660b137d7240f4ae6ccb15ac750556edcbfe47e6a65e1c29d8ee599b953f5";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/th/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/th/firefox-128.0b3.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "29dc55972c657cd010e993edf30e74b639cce2d18b49dfe24bf7ec9b0f91353e";
+      sha256 = "19d1641e4904bc4ea993dbd4d8a84538a4b88294721883e27df8db649a7993e9";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/tl/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/tl/firefox-128.0b3.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha256 = "33cbd2e1126492466f8c7d9759dc632408269ff816450291d2477d26ab087c88";
+      sha256 = "4dbdb2c35ab40bcdf43ebfdd51848115dd617306f44878d8b2d0c2f562da8095";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/tr/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/tr/firefox-128.0b3.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "90c3f4025a2805d55c236b366d83d415224fecc63f540af94aff09763ca72621";
+      sha256 = "6f267217aec01eacf239957079a792119bdf9ecd988835b4efee68d757db682b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/trs/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/trs/firefox-128.0b3.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha256 = "7b741c41db47fad0bf4c63a5f4138cb2835e771cf93cba6a8696d25d9ecace69";
+      sha256 = "a0a1c980dcff845c2aa858e1a44a50b00fa0378443736abb3438fc86f9826d7c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/uk/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/uk/firefox-128.0b3.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "a0aa50971cfd3f404b8e5626372b6931c0e317c8f4cebe48f8d2e16a437d95c2";
+      sha256 = "d0fdd0b81afb141faff7605d302d1934788968ef3dcff38e1078d3c4e14851c7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/ur/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/ur/firefox-128.0b3.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha256 = "416c7f1595cb6b530f4b368906cc6b1923346e6e4874742a7dffc43eb7488c94";
+      sha256 = "a680e79a663a58fd96e2d103b686efc252d3d9427808c7e760307862be1d145e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/uz/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/uz/firefox-128.0b3.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "9a8f52384037d26e1e41e80f62fec0b53cf8ae963f162d60176fafd4172a3e8b";
+      sha256 = "15588e3d356f2bc8adbb69bd53ca9ca38b0304703bbe7a6e16879d334af766d0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/vi/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/vi/firefox-128.0b3.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "27cfd839bd664f24c737da29937cf0eaad742de74983af89dd2816c06e73061a";
+      sha256 = "44ee2da45fe203fe8f890c0e6ce8af05accd3f1cf02c97ae3f2f7a49da3aee37";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/xh/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/xh/firefox-128.0b3.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha256 = "d1d120e6f6dec19695da0c15e317a1c6fe442e4a4a52f4a21d51bf6364769fc1";
+      sha256 = "70a378569879d37fecda5be44e88335fd156a15ed4fc52393956952a914f9744";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/zh-CN/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/zh-CN/firefox-128.0b3.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "962ff97f66f2c77b4efe5fa292df61629c9e47e19fe4cadebcb54d2f80c15eea";
+      sha256 = "453f1d607d2584386d91c16d69cb8ccbe752b3017fd472f2370b081baab87949";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-x86_64/zh-TW/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-x86_64/zh-TW/firefox-128.0b3.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "1e5801ddb6ebdf53fd7707c01c73f22c7a27a5b7fc7536a3610fcd067eb9dfe9";
+      sha256 = "3ca21ae9b1b1ea51cc0d3bb1afce4f394752fa957a0f7d8d4fb047c9127d31ae";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/ach/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/ach/firefox-128.0b3.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha256 = "802c6d008d96d11e6c71003d276af7e98361a8edcf523b0cad11784cf03f7507";
+      sha256 = "f52c6e81e51c03463dc74fca1623c16917ee429fb916f5ce71aac557b7030a3c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/af/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/af/firefox-128.0b3.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "530670e03c7d074d9c8d5d0afb326636961616b27eb7699ec6b25df006d2c7de";
+      sha256 = "8bda42497ef0919306ca305b295cd9a85c9344c6be3a4d6b168b7f419bc76cbf";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/an/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/an/firefox-128.0b3.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha256 = "a65ac8a8079190546f9ee7c69b3ee1a02c399a0489b1c45ac8b4edc75e6196a4";
+      sha256 = "5090a3fdb62a77eadbd50722c3be9f56bb407240ea47e248ac56550e3a3b061c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/ar/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/ar/firefox-128.0b3.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "321b67c2599e7b6331de8ba121d4bdde3ec769faf28655d862d8ac290a3bd83d";
+      sha256 = "64f61f7e9838aeb571170d54b69c239855db32c4410d490275aab16df0c57276";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/ast/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/ast/firefox-128.0b3.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "12d6e84029f88fa28c50c2f412636b6efd78e4394b398c11adfcccc1968ac4de";
+      sha256 = "816ac6fba66a0f8e185108e8338d59e675bf1262477b416dd76b026ed1ef5f9d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/az/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/az/firefox-128.0b3.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha256 = "ff39be5bead1890b2042b438f304f94f7ff034261dc38337638294505952e998";
+      sha256 = "cef18031c260d7c00ab43473c1072e7310702df92e40ecacb560a077dc56200f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/be/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/be/firefox-128.0b3.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "a27a07598d0c2c8c829eaded33a78c1005c364bb362ab62a986a9b3dbdc8c499";
+      sha256 = "229a9504c02d632a611216f0b64662122aab2618aee4400cb44c162710087548";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/bg/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/bg/firefox-128.0b3.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "57b8d1d00e932c88d0da08e7c8875d5e902face54493adecf78b642a1a674bf3";
+      sha256 = "6de9441655c9256b96b38b0c2318237ef7fdc4079d9a0a17370a4b63949f8952";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/bn/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/bn/firefox-128.0b3.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha256 = "760753808a4316851201c9b03ae4ba48bcf1453ad55b3cd35be7c59216632865";
+      sha256 = "0fa84544a40e254e3b5d363a5fd48e6f00a2bca65e71662ba3bc874db844373c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/br/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/br/firefox-128.0b3.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "d85255a1a0ac8768c30c04c63b5720f99da2e9819beaf16c1d919a94517ee779";
+      sha256 = "3c3553966e4b2ebe1ca9fb0a4625f58644fadf660dc38f053c898bba8cd9652f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/bs/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/bs/firefox-128.0b3.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha256 = "1e7ad576c18ab7ba06f5096b04aee21894d35aef360f33821d72d32d616344aa";
+      sha256 = "1a7b0f5fd82dc2e0efe782d87e442c56c7ce3cc4c3c4ff2118bf11356134aec1";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/ca-valencia/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/ca-valencia/firefox-128.0b3.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha256 = "6c9c9d8f5aa45258db2a83097861e4449ec344363dd9bfa188feef0519c1a3c0";
+      sha256 = "73ed405344bbe118a1351834c1e73b0811d76db8e5ab17f59f17425da6e80284";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/ca/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/ca/firefox-128.0b3.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "e8dfe5520631c2c58eba5a091751078c14efb52e0133bc3d22d21a0be5d4705b";
+      sha256 = "f1d9e5e3ec259b3f860988c96b6c28430346ff91909f6ee4a4de64562d9cf632";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/cak/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/cak/firefox-128.0b3.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "5b390a91a65f791526ad61d7d51283d45ce1f2b53a70a5cffd4e452a8da2bb72";
+      sha256 = "85d8e7f0e98b3a0f6c19102cea11d4be590204ab27a5bc801028918aeda7d903";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/cs/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/cs/firefox-128.0b3.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "cd87ac0d87aa06361c56569b9a3958c20e39a065cb5e7eacbf25186b9b031470";
+      sha256 = "5552ca41e906180741330360c1875e7d14a6c8ffa436a45440377c4e734a1d66";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/cy/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/cy/firefox-128.0b3.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "4494e4f47da2fcd54309d781e3097467ee38b3a3dc38da11c8aff6b26b33d7ac";
+      sha256 = "e7a1796463195e31a7a8caa1f09344780deab06c9a3840fe7ed5a6316ff0052f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/da/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/da/firefox-128.0b3.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "e38bc2ac598c2d5102ca10bd98a2ddf936c02e291e8fb886920c0b0ac8597db3";
+      sha256 = "3042716cb2af826d563047e6881ff01eebb9e13c32799c5e64f0a2d9207ef673";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/de/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/de/firefox-128.0b3.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "ef7f7a96869d0e3d020d12b6a6205c9c213028f8cb9275e4ba06db89a0029880";
+      sha256 = "952c3133123b81382544f454a76d52b8c42fe42e6a16630c5e7a60e5af004dbb";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/dsb/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/dsb/firefox-128.0b3.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "57c0b187aa2addcd44cb9dd7b09f014a3157e645c39ceb2d6f705a9339801c86";
+      sha256 = "f7d6e3ef16b75fcb51dbfd940beae3baeb8522b21bebefd56d0916ae79b32efd";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/el/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/el/firefox-128.0b3.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "0a269fdebb8a6620b21c9b658ef8aeeac2096b354aeecd3d704782fd52cd50b8";
+      sha256 = "57ec8938ac22aec300177f6399aab3f96a54ce6090017531b89a559e374f17f6";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/en-CA/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/en-CA/firefox-128.0b3.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "9c7e024a7b57462589ea2acd0899c497ad49af9dc1c4ae87c443535e6cba609f";
+      sha256 = "77cd20e4daa94667e040ee418d76abd11fc8927ae667fb15da78d7ae9712b82e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/en-GB/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/en-GB/firefox-128.0b3.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "3bdce7ce9098691eba4772bc666deb1f94bed373896fa15de1f15a8d4e215d09";
+      sha256 = "376231eedf5d4804109b6ef5363d77fa6f27ea59e56dd1374c3c499596be6cdc";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/en-US/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/en-US/firefox-128.0b3.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "b3158a4159a97b2ff19af94bf5bb7c023f492b5917aa508489be4e5fe5b64e2b";
+      sha256 = "263a12886beb8db84e7a5af38ad99061a0de6abd35da3ab186a46c31bb35b222";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/eo/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/eo/firefox-128.0b3.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha256 = "2c6bc4bd14e9370b55da8b3e62f875f8702890d346310e4da7c10676b42f4a7b";
+      sha256 = "14be7e2ce4b24d218eeb58b0fa84b92097a9f3c271814d890f8d5eec93954d53";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/es-AR/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/es-AR/firefox-128.0b3.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "c24a364747f3908921b30f9123b2d3c4b0ac5ae7ef699e165829dcbab5e1be9a";
+      sha256 = "7436d4d5be4d05fddc5e172b42a2722c89d38277b0fa425a691d95561870e979";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/es-CL/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/es-CL/firefox-128.0b3.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha256 = "762fab1b8f2a39a21a826ce43bf16e080e1ac7691e4c274fc271e1b3cf034b16";
+      sha256 = "11c157f2a52b28812b6c0a81b56d9383ae1401dd1c066c9f940f5ab256bd1a8e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/es-ES/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/es-ES/firefox-128.0b3.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "e7a5b3f9dc59111f24a0bac107c6a93ff5b57a7943a1d71aaae67aa43f3400bb";
+      sha256 = "6cd4b9d8b073cf43d249130475f17fbfb2bbfe29017eb5d2d8bd53845213d362";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/es-MX/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/es-MX/firefox-128.0b3.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha256 = "1ae2aab1022e231969814476eb8fcc59e5c0fbbea425adf792df732f24f8b6b7";
+      sha256 = "56f5ff72178597ba5e5d20aa296046340e2563364cd3ab00a0292c9fbef48e42";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/et/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/et/firefox-128.0b3.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "1051ac29e2bbb640273a0926b18568d71276a3b189f1741ab5e50222e1b47bac";
+      sha256 = "6e452e1b70d3d00b21b81b0738e1a7b61a8b2b54b41993b3c55737acad63e519";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/eu/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/eu/firefox-128.0b3.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "8e2de2befda0278010a8dcbcfd97a5463ae3d911bd2c5576a3c1899b7dd284ee";
+      sha256 = "32a67b26a26affb5fe294dd07e660e046c1318ea84ccbbf7ce3461c60727fa19";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/fa/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/fa/firefox-128.0b3.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "3c731dc5e9fd464d303abe7ee9c6748e6eaac838433abfc6ee49ba8da4de41a6";
+      sha256 = "1bd6f9eb6e427cb4e6d2b11ef0634084dbe496f28753057157d23d05837f6ca7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/ff/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/ff/firefox-128.0b3.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha256 = "6f5896c468957a97805ca32e6707c0bef05d074e48c0e98c748e437003244591";
+      sha256 = "7995c4aac2b688cd52ff5f9bd358c3f12199c95beed9626c24cade384a3a3fbd";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/fi/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/fi/firefox-128.0b3.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "239998cd45b41d2891164d51617a17cd8216127d3a74f05b5d518e8fb619e95b";
+      sha256 = "26703afd150a9f78c8d6f36c7cce38a2add81c79b66f11d21f998d7db198cce6";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/fr/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/fr/firefox-128.0b3.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "8b1e30a397131582378a12d1534d0be8cd977e685419e2ffcd8bea2782802bf1";
+      sha256 = "e7ae04d4a77857cd6775e466625d75983d600cc016d4629e353d5e8d280a1b09";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/fur/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/fur/firefox-128.0b3.tar.bz2";
       locale = "fur";
       arch = "linux-i686";
-      sha256 = "f2523e7bb7e36143bdf9232cb6e764eca8c8b35bac2a36220527361b785a14e4";
+      sha256 = "96b35eb88709069b9b18533045576435af1f900ee7b0f00c92c502852b4dc5c5";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/fy-NL/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/fy-NL/firefox-128.0b3.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "0dca8df8605677b9411860662122413769aaa0df4316a4e25edcb76e24fb56a0";
+      sha256 = "999dd239352f0fd6e57029aa8d5308bc9deb25d05d63680255f6019696285ce8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/ga-IE/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/ga-IE/firefox-128.0b3.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "f78afd9e6b8bcecd193476e54be34b2ed3073af79f61e2027559521495992c34";
+      sha256 = "0fb4d4fcd39d5a853c0e6fbb0521917d17c04e57d848610cd189d0846dc0869b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/gd/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/gd/firefox-128.0b3.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "44dbfdcc965165a5e57f80b25d4ae2fb137f9ecd0b581d35a264fe7b750ac308";
+      sha256 = "1c19fd18a531671dd85d8d0ca0c797033dffdb23bef0771c4a828114ca9a80ee";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/gl/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/gl/firefox-128.0b3.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "1b904594ef61448f9c71455b4ebf8ab6bc5441805d06caa5a147f6980a839b90";
+      sha256 = "bbb1eeb336638d898ecb34ff69bfca6f68bb5629584e9cd90af36fb22d3adcdc";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/gn/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/gn/firefox-128.0b3.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha256 = "56b8ca430ef56cda043e5f07bb2b130175f9faea370a0eba9e953783522cd2be";
+      sha256 = "340b80fc5aa46093c4f901058e35eafdc42233e99fc5fcc1473e3fd6dd60b99f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/gu-IN/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/gu-IN/firefox-128.0b3.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha256 = "0cb8d510942390b9068aa2ee1118195afbcb05d376802894cbc6497fdc448a16";
+      sha256 = "487bdd9bb5b6c25d8052a3dc21325f21a51c4581aed7b51f38e5e459c9ce8ae1";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/he/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/he/firefox-128.0b3.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "7c244649f59b76fe9fe4920e6457b730aa5bfb2202997697caeaa1bfa3013842";
+      sha256 = "93144b3cc3e7a7b6e929b928446223be25c21ff5faed04f9216f2e7ca716bba3";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/hi-IN/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/hi-IN/firefox-128.0b3.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha256 = "3831280bc05f5bc1d23d5718c441662b4bda9440b9d32b6a5b42f42265a80349";
+      sha256 = "1256ec465f672194c759ed16acb45ead09965a65ad277bca1cc7ae0ad7c811d7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/hr/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/hr/firefox-128.0b3.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "ce115265ad6e5345183d1a4e3bf213aa95975a1042f18ae9f85835a231bb4997";
+      sha256 = "5fa927c1f64d60cc050377a3d03af7fc49abe13239cbc36f78798f171895aac2";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/hsb/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/hsb/firefox-128.0b3.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "ceb3d3c54dd4419c3ae70ad547efa4ed504f30fb881be9be900a8b82babb2ba1";
+      sha256 = "f806bb7d0ae916fdb9bb38feb77950c649a9c6312908aa5128f24a0e0690d2b1";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/hu/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/hu/firefox-128.0b3.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "aa0e8489b91506c0afb6fb586aacf506f0ec240d8c8a1ac0435a68fc6f6b47a5";
+      sha256 = "be3a162af629186655464d3c560a7b2b84df17239cb140d42feb23876f320899";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/hy-AM/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/hy-AM/firefox-128.0b3.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "93180a0eb04aec1f415470650762110286b02c25f1644da75caa440625a20073";
+      sha256 = "1b343636f58cc56c388a698fcffdb024ccda95b191e0ae6901b093021113d1a7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/ia/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/ia/firefox-128.0b3.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha256 = "bd6a9752759078725b0d3661267026e2e0510be9d03d189ba63fcce5c256600a";
+      sha256 = "05ddf494a749b007d34a450e4204bc12e60c7b549e86496d7b4768df4c0cf71b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/id/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/id/firefox-128.0b3.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "11ea58a1bc5e85dcd768b09be677f7295fb00be2b6427407cc57f9e140fcb1b0";
+      sha256 = "9119141c2a2a4ff814657a6f24ca3c1d62b3e5e607b5ef2913ab494630458794";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/is/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/is/firefox-128.0b3.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "67a7bb9ae2859d3d851b70ccfdec595ff8c03acb6dbf58f450b1f082ae642f77";
+      sha256 = "8b91f199fd4905bb8fe9e1d3f745640975aa58761731fa54b1a24a7e40c5e0d5";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/it/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/it/firefox-128.0b3.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "3870dc235cd7b3b81d5ac940c31b5a241e8bd09d3c6a318841e7dcef84f7b0ad";
+      sha256 = "aa09600d53681b3a2bf512e287d051a2d3306a010835eb677ed754ffd4817d98";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/ja/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/ja/firefox-128.0b3.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "81ed603272c859077abb04dcaab22ddf7fd5e7f126b690b746dff4696b3a36fd";
+      sha256 = "70fb659b22c26f7ee43113fced3aa98fd66f581227c8d56a5d8bc4c6bf9df863";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/ka/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/ka/firefox-128.0b3.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "8f2efc868ae8255c3f7ea58d37a065bb5fe2c54da8f8825e3a79c0aa4452d126";
+      sha256 = "652ccc32864b397adcd4b15d2c0da86287004ec7229aa92b65084f1f351c3d2b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/kab/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/kab/firefox-128.0b3.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "2e13952743a01d7be50b25860c32e1a8fb0d85dc72927a1b414445aba8506ae7";
+      sha256 = "e91014eaff857b5fc002c45f723e2cbe83b1701cbe9661c6ba0b52a19b621ac6";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/kk/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/kk/firefox-128.0b3.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "3b4a9a9a0d269c5252804627af1962a4a0faa1c34c74649a25ed7de8c2e87237";
+      sha256 = "92bc97e900fc9d742d182b51f5f08ee39cf40e6875c7a2b9f1aeefc56adb96d6";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/km/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/km/firefox-128.0b3.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha256 = "2cfa1961ba21b569b005265fb1c94fc3160a7471f8afc97376581e9a8d0d002c";
+      sha256 = "f06d799edaaefef5277a76537c1f0dffb55416d3733579d9bffd2d658d4c16b8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/kn/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/kn/firefox-128.0b3.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha256 = "5949b0f3787cd02e1d7bd67505d44a539d4b6fd51d0bbe2e8e8c39c6779b7599";
+      sha256 = "73b00c3ce8795930afb41cc7b714c0601fe6a56fc760b91befa82c490a25ac4a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/ko/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/ko/firefox-128.0b3.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "d20a267c8e3456e48f9e55bdd7ce802fbb1dcf10bbff4d7b0d713c69213839bc";
+      sha256 = "3b391cd22e89814ffa99aa4cc71902fbe13944f61b216ac1fadc60ef465cebb7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/lij/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/lij/firefox-128.0b3.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha256 = "cf93af57e572d19fbf14bf82962e190851f5289e0e7ec880d8430c56d27a15e0";
+      sha256 = "847b13a12d7adacf149047dc19b1d55991113b35a1cf506248d6360e25aa1c90";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/lt/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/lt/firefox-128.0b3.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "8e40a6d950e26ed383db3f185f210856cb6275a443035053745dc26bed5d9eca";
+      sha256 = "550aa459d8a47c4ad1c33cfc555414d3e7dbaea052b0395972ebd43930db6399";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/lv/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/lv/firefox-128.0b3.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "1a13b48ce78ee7eeff86810a6b61812e1e0a806f1c8d6e83a9bbd9fa3d437014";
+      sha256 = "8f3b8a06e4f192591a0ede2ae19f91a4ed914e07e1e4a81bdcb5c279ab0353d8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/mk/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/mk/firefox-128.0b3.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha256 = "46058fdd03e603ecd5cc5082b354b8ca6b88f4487fc16363b3266d97716f1692";
+      sha256 = "441a3e5186c8179c2bc969499f98e9e2858fb03883aced701b5940d9eb9f5096";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/mr/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/mr/firefox-128.0b3.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha256 = "88fc368db21346eca9f9b9313ddcab255345c965cbfeaa67c0b2bc68b7346a3e";
+      sha256 = "8d79dd19e2940e92e98352d6a3bbb1b24e2ac288081b5ff27a8800c2158b61d7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/ms/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/ms/firefox-128.0b3.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "ed11b3b8bfe7b2fc1795840a5c1143010469539de22afe7fa0888f41e47fd2f3";
+      sha256 = "42f28f18a690c919c8d24632891eba9be4d76f68d4851f272e6be698b25779ad";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/my/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/my/firefox-128.0b3.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha256 = "e071ab2630480076419dbdf9b460d7b61f51f8af738a70129da0bd432e89959f";
+      sha256 = "a0457857e88c8333fef4a0eb6778868fc9c8b20e5019ea8e9503f32aa3d4cc45";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/nb-NO/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/nb-NO/firefox-128.0b3.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "186bc2408a9c0171f2cdcc165c6760b5f16402af6b50c85e07dbce7995c69d1b";
+      sha256 = "5329741c2dba6e06099036fd929098a161fd7840156217fafbd51f2563be7f72";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/ne-NP/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/ne-NP/firefox-128.0b3.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha256 = "a423eb0406f195122b0907e22bc9061f37c5e0c4ac274e828cce919c2e0bf61a";
+      sha256 = "3d38141d0bd291577e5f2a4d50ce0cdb7dd102aeb36ab9e54e01bea20f5ad58e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/nl/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/nl/firefox-128.0b3.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "7ae86d515956d3ea41ed9a4c1b975c954d735d4b91f11d6b0c6e6cda4b98d64c";
+      sha256 = "00521293ada2395463ab4ef44cc6269e7a3635c84e3a1a44e598b47ea4d8bd06";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/nn-NO/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/nn-NO/firefox-128.0b3.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "419774970cf5be7976a916cefe01ab19830b3f27ad42c4ce28758a3b65ec87f2";
+      sha256 = "f0f4e97fe329841b763a3f4860b3e34764bad64f667455234e3aed77ec577e24";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/oc/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/oc/firefox-128.0b3.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha256 = "b3850404a88ebfdaf98fbe6c88e38c6475c92780ee280f347be2acb4e09aa65b";
+      sha256 = "a7bc839606bdc91fdef9ad18f574263579437fa3ea260d6f88df62cdbfe2eff0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/pa-IN/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/pa-IN/firefox-128.0b3.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "e0fad8907831ff00a302001717e5930d9a8d7e064671ed4364a55ce5bc752faa";
+      sha256 = "5067a3e713640b3864292cfba5f7a181f3aa4183aea98c488072b6f03ca58aa5";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/pl/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/pl/firefox-128.0b3.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "b26c59e0257e1c53d2367d9f74f14a51b4e6d95abde0995baa850c5667d36d27";
+      sha256 = "c1a19f825218448546cca180631b7684d72152cf172f8d15339c9a477575631f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/pt-BR/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/pt-BR/firefox-128.0b3.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "3e95a3bcc4369199292233d50fdd5670fafd2d5380f1ae5c44d956c0c7416468";
+      sha256 = "b62e837f2a504f804d9b09aaf98010d90080d1ff4747dfa9a992c72da3f82a18";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/pt-PT/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/pt-PT/firefox-128.0b3.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "dfb0fd547f97c851b25247434bc4a8bd9c176340dab050036a87bbd074b72328";
+      sha256 = "92abdcc28b0bf51eb3a8ab5e43dc9638f26e8692ed69470d97bf45fe5e31ff6a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/rm/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/rm/firefox-128.0b3.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "31f5753dde47f161da02bf347f06161b73805d167a75cb33c5d293b2887c8502";
+      sha256 = "3588083df4f708ec937f7eda20da77249aa6fd1ef4e2f6fc86d785756c458da9";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/ro/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/ro/firefox-128.0b3.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "465b624d0bfa22361167301d8131133e9976bd837c11228491a64a072ad24e33";
+      sha256 = "aefec65b1f06bcc23454621e55d9b44de1d3e13afcb170ceef40512f1f1ed7ea";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/ru/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/ru/firefox-128.0b3.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "a0abae3a6f7ce4957d066a66b0107b2911a0276b232b9edfea27ccbfe49ca8df";
+      sha256 = "4324d205829c7a697bd83695ac4b4d9b776989c4a5b904e809f67db6bc829f18";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/sat/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/sat/firefox-128.0b3.tar.bz2";
       locale = "sat";
       arch = "linux-i686";
-      sha256 = "8c3ec37d6e31a28a6320f3d19f372915836bfc166a2b0fcf64e535a60a74b2a7";
+      sha256 = "8556dd9b387da18fe3f3408a6df175d704d476967520cbb7899acfd79328f250";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/sc/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/sc/firefox-128.0b3.tar.bz2";
       locale = "sc";
       arch = "linux-i686";
-      sha256 = "d00ccd6dc27847a2e97f5685f1b33f5172222b79150abbebd1fdbf49dee6890a";
+      sha256 = "34e9a7e8a81a2cff22e3e131ae1733c25ccba6563f5e42a25c790f2435ff4a89";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/sco/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/sco/firefox-128.0b3.tar.bz2";
       locale = "sco";
       arch = "linux-i686";
-      sha256 = "507a36b0eb5d038887562e714d87d833c7cc64c2abb6d0e4e3ea74e0c429ac8b";
+      sha256 = "6dbdeda295ca37758d4a531694e995f2bdaba4642ea004d58da0dba5492997ac";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/si/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/si/firefox-128.0b3.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "d7a7b33b015b37f44bef599957f51231ec08f5a5d3c00a6504d422c8d3ad87f4";
+      sha256 = "c2ea2b2b67ecb74635cc6bf218f3f7cac739d1f98fce7c7b1e4941b8613e67dc";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/sk/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/sk/firefox-128.0b3.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "e0ca68f949323840ac6b8ec262a2625f746573edcdbdf4ab22c668b3b4c9efb8";
+      sha256 = "9e59b962cccd43f5c600258df7719a7433367018c13637d1e84a09af4a05c60d";
+    }
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/skr/firefox-128.0b3.tar.bz2";
+      locale = "skr";
+      arch = "linux-i686";
+      sha256 = "1c1a1435a7ae19216a100a346737a60650ee1a25024b77dfef1a09c0fb3836bf";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/sl/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/sl/firefox-128.0b3.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "beaf16de3b7ad2ef5630d50728bbd737645b590b2f4b871d63145d9e5241575f";
+      sha256 = "9222bd4ff0b4c09b36a0e6cce1fa51ea7a9414651ff9f50c05d227347806ca0e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/son/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/son/firefox-128.0b3.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha256 = "91dca715b0c6d54b07888859233a817e4eece005cac56ca33018dd69610a0647";
+      sha256 = "8f326cd87ade070d719c78f5e9c25f75fc5b1e03256c8b27c296f0bcc62388b0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/sq/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/sq/firefox-128.0b3.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "265aa0678fec2f0ae82fad6cc9146108ee27115e48d7a5bfb6ced4318aa41fa2";
+      sha256 = "6618c0d3414a61720606e1599387871ad3f872f12042a5c0117d6181608c2be1";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/sr/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/sr/firefox-128.0b3.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "027e4fc73188090fd106f7f087ae8833616267f43d8bcceea7f8e74d91f26c93";
+      sha256 = "b2a6c5ce023552ea357c442591157b2293c298b96cb19a1d7638f10205c3426b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/sv-SE/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/sv-SE/firefox-128.0b3.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "225897596c390dcfe359c88ce0a4c8cc9f963ae669c18f4503980dfcbcdf8429";
+      sha256 = "0a879700cee518c51853631bab1eda501833fcee87cba41603a3299897119f11";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/szl/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/szl/firefox-128.0b3.tar.bz2";
       locale = "szl";
       arch = "linux-i686";
-      sha256 = "0426a3cb8f45602c594acd0b31c06916876c9b81f54416aba0664bb5a431759c";
+      sha256 = "880e10a03b2feff02642a630c1a5c2d8d2ae7eddc2ac8a53337d63f925b62862";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/ta/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/ta/firefox-128.0b3.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha256 = "a61b2e58319bc006afd286aa7033991afaa951f391ec318f96c5a78fab08d809";
+      sha256 = "077e3166898dffa838726a55ca2dad043c671a9c9d4aa75b6a6fd4854379dec7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/te/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/te/firefox-128.0b3.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha256 = "6bf1fe0d350292b0bf8e0062c0d0f7fff686577ae38d7e09f6df623eca2b189d";
+      sha256 = "b6b17ac1598959b7e0aaaa18e3154d4328a31f520ebba7110fca44b7cc8b4a39";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/tg/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/tg/firefox-128.0b3.tar.bz2";
       locale = "tg";
       arch = "linux-i686";
-      sha256 = "8334b57d369f887744b9408d49f7be109383451a9d807269b1b2c385d7289563";
+      sha256 = "3279b5bd1a1f3bc4d4ef1461fa9fd8b1132f8dff0cf6c385291b1329b3b5f962";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/th/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/th/firefox-128.0b3.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "fa09f96e57eef946aae291bc8345d3eb756fca006918d15305c5cf8f043b6bbe";
+      sha256 = "9d6c24c604934c4162281799c11904cc17cb5e8295c5ed7484e6432ffc0d17e2";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/tl/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/tl/firefox-128.0b3.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha256 = "10818379d02c2e03e689df0e78ce12a16940c5f8f551306033fd25f6959006da";
+      sha256 = "a5792ce6dcaa5bc002454700dc2abcbc6f9de580f0a70ec2919c9599e3858ac0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/tr/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/tr/firefox-128.0b3.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "da0245ccbad0ee59b0433430ec593bd16ce9f77acf3bfdb1eea9bb30e38bef94";
+      sha256 = "05685a83407f94e15c08a75aa46bf45bfdab1b2ae7626a078848b392586c05c7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/trs/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/trs/firefox-128.0b3.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha256 = "7928d1db0d14626428129905c37a1c4c83bc7e654598c95fdf68636601aedb58";
+      sha256 = "d7f1cad2b4772ff42c954bf6f8eb78d8787f5aa86be1314cc4b56fcf261159f7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/uk/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/uk/firefox-128.0b3.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "62008374b1314d49e9ac5a8af9e5189e77e970ede38ce773d0937c8519ade5e4";
+      sha256 = "da0d0c57358ae2bbe196d06358a5f410f814eaad236fbaea1127d2131eb0d054";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/ur/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/ur/firefox-128.0b3.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha256 = "b5e55f174f1add6720c1259a7f3f29f801c12d27da5c544694a2afef05cf7a99";
+      sha256 = "ea70560d84141403a242c3a7fe4b0a50999bc5845a7a239291e1b2a27e0a0aa3";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/uz/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/uz/firefox-128.0b3.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "af8394428fe6f17ede74063a4c496dc6cc18dc24f564a8de35b064b438a5c57b";
+      sha256 = "8578a45c8f97e3138a7109e8cd2969e036ef08e935ec1e530be823ec3de12d9f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/vi/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/vi/firefox-128.0b3.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "36ed9d2754f411f8c8ded02ba02e22c0f091edc5b40531a4e4efe93b4423fb31";
+      sha256 = "6f77bfc640398d00b136dde75f72156d3f4025a916bf16063bc06dcb3e3e1529";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/xh/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/xh/firefox-128.0b3.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha256 = "ca49e6e55d7fdae7f1355953720e9727e83b5b0ef73d46e40614a0d753106d6d";
+      sha256 = "7f74a0f56e6746a105298de72143597f978f59873071a871748f33e54078f368";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/zh-CN/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/zh-CN/firefox-128.0b3.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "7c03fc982bb854769af190288181ea54cc9e2e642b07cd81738c7e783da94f4d";
+      sha256 = "a6708b44fa15dff14ee33f4cc4bbb2e5e550f663d179ecf0e3e4e7d44fc68ef5";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0b2/linux-i686/zh-TW/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/128.0b3/linux-i686/zh-TW/firefox-128.0b3.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "c8344aec0ab9d510c36cd134ef46e9bb3bd0f2fdea78453f9eae9bfdc5999825";
+      sha256 = "333605566d2c3aae9e411a7fefe08ae6f339ff91fbc6e84a0b3b166a19c5ba90";
     }
     ];
 }
diff --git a/pkgs/applications/networking/browsers/firefox-bin/developer-edition_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/developer-edition_sources.nix
index 1234ddbeb1009..d31488ace0bd3 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/developer-edition_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/developer-edition_sources.nix
@@ -1,1025 +1,1035 @@
 {
-  version = "127.0b2";
+  version = "128.0b3";
   sources = [
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/ach/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/ach/firefox-128.0b3.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha256 = "1c30d80705710a2733b95a46d906bce469a14794cd4b2036fa1e0f9d76b1733a";
+      sha256 = "c90f792f6522e27ba1b104e77bc0826556f4ca1184a7b65ef02cb8900586f857";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/af/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/af/firefox-128.0b3.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "4837c99b89f061b7799b68427cbc9a3099c6f61d7b191534fb6736f716af0193";
+      sha256 = "c7c7ea2b9ae48a867806679de41097ef4459e7d35eafc05e0c44f2bbf984c481";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/an/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/an/firefox-128.0b3.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha256 = "9f55436840df59e10483445bef81f2b53380e5a7acbc0c85c5167083fc6c222c";
+      sha256 = "8ce747dd2bfa52d02d2d2bc80df7cee6a0def973afc39d23724d4873c54e014e";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/ar/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/ar/firefox-128.0b3.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "243c3f9f4e2f132450446b9452f8ca0f82595c5eab1156ccd79738e3435f2051";
+      sha256 = "7c344d960f8670aac4e45a2fd89f136763950d659cb24f16c9d21bbb096eff42";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/ast/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/ast/firefox-128.0b3.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "622f1db93bb1f9cb01d63991f7fbf192e80c12ecfd5617cd0cd7d0ef44657321";
+      sha256 = "d21fcb8e549cefae78d69196d8c415372baf6844d462d4398790b67dde313977";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/az/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/az/firefox-128.0b3.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha256 = "aac2aa13f3c22b499a8dd2783f48c5095bed5ee5f7d0704cc7415910ef812252";
+      sha256 = "060539f7cbd3170d17ce0e0d5e2a0850223c27766392632d69a1dcf284b1d48d";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/be/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/be/firefox-128.0b3.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "4fbb3ab76de025286c768ad0be9c50b32111caa8e8b18f279eb6c3d9926dfccb";
+      sha256 = "b287afc5502c0b6752b6fb2f9d179c135321ebc7af9fe73cf288256add2ccbee";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/bg/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/bg/firefox-128.0b3.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "66e3ff1dfa7334acd55d33f0c2aed72d06d9a60ab47f2d1ad5f876bde167c31a";
+      sha256 = "b9beca129129a7f271c5c0274e5923d24fb4704167fbe8d33273cd815d80fbf6";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/bn/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/bn/firefox-128.0b3.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha256 = "56ea0a236ef4d2bfbc0de6ec74544c87d5e89577bbafad5438c4b90b9df533fb";
+      sha256 = "0d32e670d5fe67648eae6ae2656e930f0c39f3e9fbea13ecbd8d2b53ff244e3a";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/br/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/br/firefox-128.0b3.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "b26d9498d4daabb52791a33313c75e578892393515ff5832554deb7708446808";
+      sha256 = "603bc328de6ca1e265df6cb0c876a9eca355ddfa6cff1cdc9c315322422c5935";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/bs/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/bs/firefox-128.0b3.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha256 = "de26000f9441c7d7307d525d976d4e6ea1db422d8053b44a716e6fbb5b624f39";
+      sha256 = "78a67e705a9a1f8a5ee8321c7184bd9c15eba5e6d67b3e77bd52cc6339e230f8";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/ca-valencia/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/ca-valencia/firefox-128.0b3.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha256 = "52b7eadd956972d150eac74e33b86ebcad1c0091a11510bb3dfe87685088ba5e";
+      sha256 = "9f9739c31f56a42caab55be23946be49e90bce001ad9b633b286f23b791c8abe";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/ca/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/ca/firefox-128.0b3.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "fa759d2458a220c9c03dbc85ebb10ab98956cec9e344cd470c74ac3461ce153a";
+      sha256 = "6e3103a530a8916967e55e90edd0730497243183144715cbb0d604c63c1e7505";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/cak/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/cak/firefox-128.0b3.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "5f202c4e1fbbba07af31d383860946f94faea1830c8ae39f7cb37b5080d622a5";
+      sha256 = "60e6ba8337350b02097a637042516bc2c8bf5a95f23997ac41d89f875cde5af8";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/cs/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/cs/firefox-128.0b3.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "ac939957ff1efe4f6d96ec5ae077ddcba83f1d774c8d4615e4a960cac219d654";
+      sha256 = "8ac4c0042e24ce4bf079b0de43c8263d93b9be35be70cda2f1f037091cf808ad";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/cy/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/cy/firefox-128.0b3.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "3f95cfa51c6bfed6fdab542f66494dc70972311c4efc21de5437fb759be4da25";
+      sha256 = "3b89ba108fc6a0bcce9ab36eb392861cd8b3eed8466b5b68eb5d37c1f29aea5c";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/da/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/da/firefox-128.0b3.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "ea7adbca9138439cdaf44ab49788bd5f3f630603c4fb6c0da9dcf80812f084a3";
+      sha256 = "eca9420742f9d0522d82b5c9e0bfcba1dc9ff131c72c3fb8e37a34332b2123be";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/de/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/de/firefox-128.0b3.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "4958ecd34b92a03c0177cd65e658e5f6e1c4dc5731bbd9bab447be6c1d6c99b7";
+      sha256 = "c411fcb204511dc6a2d381e2522722d9cd67262be71f9ceedc4207463c3425de";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/dsb/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/dsb/firefox-128.0b3.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "8018f3f9ddf1c089f2faf2d6a195fbe5bf4826857d8673e4e1a6e06d73b40186";
+      sha256 = "0b285d2c3aedb8a0c8b139ed453d45418394fd6fd02e5e15f9f495edc739a8ed";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/el/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/el/firefox-128.0b3.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "193c8c06baebb8c9b1d892d8f596f31d9d37c5f884a76a98b9d1849a8bedf467";
+      sha256 = "227efe5a5c2939c896881298f97f7e0651b647c5c87362319dfb41ccc7c5565a";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/en-CA/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/en-CA/firefox-128.0b3.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "888a8a7b8c9375898822ba45eb59f834c06fa9977a6f50826a5206af8e6fce2c";
+      sha256 = "acb1f56d76ac68c4b45c9580708c68917f3e318eb6685a8bede22c6adb2d5de5";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/en-GB/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/en-GB/firefox-128.0b3.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "ca2ffd9d2464d888f525af46fa0dd1820846bc3fb746e9d7eb4e17207738fb60";
+      sha256 = "d9d4692e153e08cc7a7caf04c119c072fc0cd37061efd1f21f0cef9480135c2b";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/en-US/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/en-US/firefox-128.0b3.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "4e292c98e7451c6824c772e66392e15c14fefa495c548cf776f604fcd1032ef3";
+      sha256 = "0a8bde14893cff97e60303fd081103612d6121747cd6329040f7fbf7e8304a5f";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/eo/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/eo/firefox-128.0b3.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha256 = "7c7742c2ca61abb5fdc1d360827e63422a8209c0543cb9f92d468bd2472f93f8";
+      sha256 = "4376258e69edcf6a2a9eb6cdb5ad38c8eac5547daf894406cfc22c59729d6a37";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/es-AR/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/es-AR/firefox-128.0b3.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "20311f7a35249d2748e876e7259c1183fd1b21d5af8ef35dffea87f6abaa5662";
+      sha256 = "9d194fb49e2ee6055b809c61d53aea877b9bdfe62ca2afcf57b564259253c46d";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/es-CL/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/es-CL/firefox-128.0b3.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha256 = "1d99ca8c0cb353d0e70fa7226960e5edbd1e9633704cfdbded14a35c35ecdd52";
+      sha256 = "e6acdb9f6a4807b355187e4cbe06fd8b1def9e2315ae09b4e5a2d429f9512a83";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/es-ES/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/es-ES/firefox-128.0b3.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "5ebd693e23751eb58e22cbc475d4f2dbb7dd8c1947f6622bea9e62e34cd7d9b5";
+      sha256 = "a0511e68583e10f1a126a0a4db6d8f443e105d9dfcd21fb9d19d7f57b5300426";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/es-MX/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/es-MX/firefox-128.0b3.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha256 = "40f1e0b20d278f9b6ecb27eb92b38d70e30302f55dc7760833f301c8784b02c8";
+      sha256 = "3da7f89ee01e2a602a3975aaa51f4a0adb666f741b25a078e69611d92b68287c";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/et/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/et/firefox-128.0b3.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "1b62463a5fa33ff427499b0be0ca7bce79ba22267b1e34703ead2ce4d23ab040";
+      sha256 = "4895e2432c615b7a1bb573dfd82ed9788bed5b4d94af1877aaf923e9e87f09c5";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/eu/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/eu/firefox-128.0b3.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "fd613163704eb0cb42eaa1127414787e4c48867b83271d515f57ee4b02eb6e87";
+      sha256 = "2e315bfd1098bc3f45c0668241ee69124210a2f4c5b0cc1520e61de7ee74cc98";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/fa/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/fa/firefox-128.0b3.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "17b8f8fe61498e95e458b9d2484ae2d576536e8bf2e7c400a7a7ff419a895acb";
+      sha256 = "bb36ca2cd19780b3435a0a12b544dddea820df9d71b0767f3b58721897275067";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/ff/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/ff/firefox-128.0b3.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha256 = "ffc6f5d23528e9e5066f0c6cf67913ab1ad9b68b900882c184e974c966a0d6c2";
+      sha256 = "b4b11971a848044706f9a8e2f2cd96b9affcdd05ea3f0616a9754488ef27846d";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/fi/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/fi/firefox-128.0b3.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "8640338310a43b0aa8c11d9d3bd5004e0dcfa90f079c7a009eb1aeb3d5d02794";
+      sha256 = "24e64273a0b29fa68ecb95e3a9fdf88a9b4fa6917441d7218c4a66d48e9e5724";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/fr/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/fr/firefox-128.0b3.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "c18af63aadf7a6b1ea3b3ea61a584be01a10a18323c6d2ef4d81ad91c80816d1";
+      sha256 = "19ffdf60a868070f1bf887133643d7e7de62b3000f2d22b4140e0d1564b4f01d";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/fur/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/fur/firefox-128.0b3.tar.bz2";
       locale = "fur";
       arch = "linux-x86_64";
-      sha256 = "3b38905c0e59a97c0ad91b61a7b7de6a277b2a036190b18c242f34b975bdb1bd";
+      sha256 = "d73b3be736513b702ce22e0924e86166b1b479338aa8f26ee460e648a01f0307";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/fy-NL/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/fy-NL/firefox-128.0b3.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "cf81df13bf9e76be89582a5b52def414797a9d19d15dc8a30b3e3d101def9376";
+      sha256 = "8063ea3e08c6b495f3274c8b2937a3651ed2f788e6e32d503938b533582f9022";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/ga-IE/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/ga-IE/firefox-128.0b3.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "91ba2719606eb3ff5a9210e36886b809d9892a3d18d664def9cadb5ebf19caa5";
+      sha256 = "7603f6d03855709224d36f3516b265db2d01caf2c56669435f3c8f67df430a5f";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/gd/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/gd/firefox-128.0b3.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "8f7aa1cb682e639eee5d7bc13ca9227bb1826cbef605cde516cef4421f8de02a";
+      sha256 = "fc84ae08d0d17ddafa879149eecf62fd9e22fa61f529a38345b49783fa093556";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/gl/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/gl/firefox-128.0b3.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "660b9d9d9d26124a03bebdc0a68889617b9e85bbfa1bd8baf6cd8a52fa9a3fd4";
+      sha256 = "ba87ac94b237e7e1ac2817f1074c807d97fdbbfd34e7ab9c4f268826296636c8";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/gn/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/gn/firefox-128.0b3.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha256 = "71570c4b2159c4ac5fefbd34f51d4e0378ee10e26918ebc09707c267240ef11d";
+      sha256 = "47c1226cba2c9462c904307756ea9829bd7ced15669c9b479dd8db7f07a78ddc";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/gu-IN/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/gu-IN/firefox-128.0b3.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha256 = "21449a33ddb633af1f117349196fecd68be58014ea7f42ec9da64188ad229f82";
+      sha256 = "0cb12dffb0436b3bf2a1fd6047b710bc70fa53cb243892944990c6b802fc16a4";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/he/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/he/firefox-128.0b3.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "8ebcf8985090e91d04994470e977d281a17823da2fa3756afb087d806dc67759";
+      sha256 = "4762e1729f632e78040ecf6101b1d80e0733ea72bdb800081df4829447aca256";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/hi-IN/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/hi-IN/firefox-128.0b3.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha256 = "fd1bb13d1bec3520f191b3257fc605435815259a8690c84a91c5aa58cb0afcbc";
+      sha256 = "4fde18223d92ce6bbe5736daa20a44629aba864cf0dccde255fed72bd138f12b";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/hr/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/hr/firefox-128.0b3.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "74ed4d0986ef34a91503d13c20763485fb8e5fd24576cca048002543036b385d";
+      sha256 = "646fb42e3733cdd1236387b9a6a93709ce7c6439f1b9549194e09014e759c744";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/hsb/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/hsb/firefox-128.0b3.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "551c2b5e65017d6393ba8b846d3da77c9ff6c28f063d2a4cf268d9757030577b";
+      sha256 = "b1b23002a706ffec926a51655332972c4a25fe3981fe085ac028419f72b8b67a";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/hu/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/hu/firefox-128.0b3.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "cacb6956e8bc6470386f9ea29e18a168efbfb89d5e5e0f2e6695bf1c18f04843";
+      sha256 = "8e22776d798cabb7beb11198f57b2c482aa605159b0ba309d930a94a25253fe9";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/hy-AM/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/hy-AM/firefox-128.0b3.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "a27bb9215094731fbf00ca8d5b8c6ad20aaf6f190420cfd0a8c8f653e0671b22";
+      sha256 = "c8270908cb4eb5b7affd11c1d760d858374f4faa0d6e9a53bc983e7ce8b6ba1b";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/ia/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/ia/firefox-128.0b3.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha256 = "c569048fd1a2746fce3783131df479d5343666e32de87b76be198b918492ef9d";
+      sha256 = "daed408de1230aa6cca0d5ffec077eee5f4e744d862004c7e81f65161414069f";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/id/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/id/firefox-128.0b3.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "73060c390dcf4b1eaf748fe4d1515a31c1f09bb9efe070d8437b695e6cdb681f";
+      sha256 = "f38562edee02f984d072117a86f2134ae232bdb4b2a352bbc1e362fcb67fec73";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/is/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/is/firefox-128.0b3.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "146b506486380f36d223cc2b4b9f27a69a5a520cedc3bc89b6ad62e1c740558e";
+      sha256 = "c53a562a99e749ea51728361834ce867e84fcff89ec16e771e86124a091b5fe1";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/it/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/it/firefox-128.0b3.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "21c1a11e7e61a3fcb022d2a836c2549a8010d75f9321df321d6814aa8406a87e";
+      sha256 = "40b057389706897fafc685c9fb3444f7dffe09bf55393fc0f039224377280d78";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/ja/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/ja/firefox-128.0b3.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "623af7fc6524b2cbd7b6004106d07cc08fa1880656a158a781a2bc58e6c5f2f9";
+      sha256 = "f956f07837670d725d1549366df1c2cba96491b7419662a85658d789bb7b4443";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/ka/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/ka/firefox-128.0b3.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "fe4d470dbe0a2f68906fd59d7d8050ff4ed892f32eca6efc9c4e1d8087b92123";
+      sha256 = "20126e640f5152688a9116b4a7a0295b53a04a29bcb5161d9cce7824de5e4d40";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/kab/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/kab/firefox-128.0b3.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "352ad29d40d91e9920f361cfa0cd9e568a866e0839e393dce9e5ebd1c4a8d11d";
+      sha256 = "03ef7295fba8b50bbe2004da259660bf28d74d2cf3fa5d55d407639fd7e18da3";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/kk/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/kk/firefox-128.0b3.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "edb1a446f157add1c8654379252f8bd75b2c8ebffa8665fbcc51bab8ec39432d";
+      sha256 = "ce67136dcc37edf39c734d0ea74c1216defa9e127f0e2f87a4ef4e97db4cb7e6";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/km/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/km/firefox-128.0b3.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha256 = "0aad12c2aabbc32983f5d3163a2bea6b6c2a896d84c7adc49d711ad4d3d13ce7";
+      sha256 = "2a40245ccd8c76f755ed2147ad6fd9cfebe16fcde38dd3431580802c9e65c9bd";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/kn/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/kn/firefox-128.0b3.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha256 = "0803c2ed47e49b0647fa3d1923c5d6efc263860e8477eb18d64cb7bba3fdfdf6";
+      sha256 = "8444c74edab27f66c24cda2acbd1068c3ae399b74a6a4806fcec73bfa4c5da80";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/ko/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/ko/firefox-128.0b3.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "6cdcd8707ab42730a5f32e5508a8e2dc895e77d1efda48f2eaf3f2f6033b3f66";
+      sha256 = "3457ee728c2fdd095864dc0db63241862de40a4797add713fae302ee04992c47";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/lij/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/lij/firefox-128.0b3.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha256 = "5bdaab3beb4ce4c198a122a770a4571ce4b182c98b6ef728b83a4bc8a8901a53";
+      sha256 = "fffb5026f93d06012de8a5fd8ae8ba1c270490c3ba6208e6e6352193e6731252";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/lt/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/lt/firefox-128.0b3.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "88a6f46a68039f2c546f6c0005e8bb125e94975b500bdd9b46d1cd9641fba2be";
+      sha256 = "efeefab433f8b1316b9ca44917b7970876117bedaf307aaaca3314012834e431";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/lv/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/lv/firefox-128.0b3.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "9e93206d7bcffa76b39bb9b05783ab26748de2adb39363d9fec27e6a1538ac57";
+      sha256 = "03da80d47d995cd7e1a2168bfadaa33da7e7906bf181030d69dded6658e78180";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/mk/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/mk/firefox-128.0b3.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha256 = "b0bdb66867d9f65a577b6dbccc7da07dd937fecd54b81d62d323c6ee430dace6";
+      sha256 = "09df6b9e332dacd722943b1b59c33197881712ad1b3031b14eca2448598b43e0";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/mr/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/mr/firefox-128.0b3.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha256 = "d1cead8f2962c62f8aea10a37fdc1aff01dbda3ff512ec845c64439a73be9fab";
+      sha256 = "ba823b31499aa6704e0625ca4ec0697019fce1da5ccfb1623c7aa4008375bdf9";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/ms/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/ms/firefox-128.0b3.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "f0e5662e0f69ed59a6223b7640083ccae6bd7dc074e81d44470e4c900ff2f8c9";
+      sha256 = "e2c56799d0e3d05559f83e1f158857420035ba019d35d01c6e3f826b084fc0c7";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/my/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/my/firefox-128.0b3.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha256 = "62ba69d29bc5ae973bbecaf8bb7b54159504714e054f5f445c6fbc42c003155e";
+      sha256 = "7f375265916ba71f118deea04ef45f9630e63c66a5c37a5f0523ac732ede2472";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/nb-NO/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/nb-NO/firefox-128.0b3.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "babb77e460c5a1929ca7304b593e4ca0ad7c1eef5edad63a5050440f5e89af51";
+      sha256 = "315c1b0a5fe50831e25e696ed88301b2ee1021c87c253c807d9f80487b918f98";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/ne-NP/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/ne-NP/firefox-128.0b3.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha256 = "8a45664de4538143a91803a4e47347d6300eb57fcf8b15940ffde3102532e4a3";
+      sha256 = "64ff1ed8a9a6af9e2380984627a32462714930c57ec407a10232972749c09e92";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/nl/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/nl/firefox-128.0b3.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "590ea36cdaeba3a89bee54ee5ca14ec2018923d5671619fef9792ae4eb10b7b7";
+      sha256 = "74f41cd79775efcc9e46f302cc4deca589873ccec79793da327fcb6795d29b73";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/nn-NO/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/nn-NO/firefox-128.0b3.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "12aadc65dca6e91f11f48d0178ac05b022c55d607cbb1dd9a579badfb8a3dc1a";
+      sha256 = "384475fbec200477f7fcac6f50ee6ced939a655874dccf97e7fe06dbdd17b040";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/oc/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/oc/firefox-128.0b3.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha256 = "a1623356d931da57da8a4efdac7ce5fe4c8d970229cb01dda72096e4e44b540d";
+      sha256 = "a35de74c3dbc0393d8ef16b26b385029aef7455e8a5086076f44cb6de184b225";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/pa-IN/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/pa-IN/firefox-128.0b3.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "33d0d467e71988396a6f1ba75892da58426db6343ddebec5d4fb9267c8dc26a3";
+      sha256 = "5a7440fc60c97646c5be3d54325a1186bfbc76e0240c5952478fedc315e990d6";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/pl/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/pl/firefox-128.0b3.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "cfceaef341b7f2b06071ce796191d0750b139c85e53f83e35b997a8bbcc60048";
+      sha256 = "d9c32935c78163ae3515a25600050b5b36dca71fe3725f9c750f7a42257a0e0a";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/pt-BR/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/pt-BR/firefox-128.0b3.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "fc18b49558806f5bd83dd79cd268660c74c10b68f9d2f306907ff3d70f4eddcc";
+      sha256 = "2753107d60854f1d5fcbb2f5b9e9851ea63715530251e10a22c3d3c2dfcfe78c";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/pt-PT/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/pt-PT/firefox-128.0b3.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "a8b3d56f1deff85a403f52292ef5bb404d9d879b2a5f104a509b0a8b80c104d7";
+      sha256 = "b244e5453043f6090dcfaf9065938ce94da523b5bd6101127236027ccbd24165";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/rm/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/rm/firefox-128.0b3.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "f03d015b74f1c4c59efae1185332fcd375886cfb1879039e952913e0bc01653c";
+      sha256 = "38e59a74daa2384b15ff052b711f93986072413b78553e578861ba468ed05baa";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/ro/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/ro/firefox-128.0b3.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "05b1900bc3371b04f8db1ea040f66b2b9405c3656546c91b50dfb7b409f90576";
+      sha256 = "c6ebb19d78728bc4da1a3f5ad1815fa476125ec56be3d52a2181aca3c563cea0";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/ru/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/ru/firefox-128.0b3.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "0e1e4a5b38ca98c1fd518cb69c870e2b450ce112e78e8507308c44a8b6dc3375";
+      sha256 = "5fbede90845e1e9b7174f20df05dad0b50d3b5d7cacb94f9639910de0f2e7a12";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/sat/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/sat/firefox-128.0b3.tar.bz2";
       locale = "sat";
       arch = "linux-x86_64";
-      sha256 = "cc41cf5b4b526a9bc895f7554b0b0893839db74b3919fcbe1db4cade1c82ea5b";
+      sha256 = "ca311eac3bca2a02c7e8f66ba964f5015c548d2a287969dbea93b0fdee567641";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/sc/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/sc/firefox-128.0b3.tar.bz2";
       locale = "sc";
       arch = "linux-x86_64";
-      sha256 = "b344ac9e2da8e6f047c73232965c7c4439266b619f8cea8c19b1ea1ca966a641";
+      sha256 = "f34fa641a957195bb73c1f4168801e020fa9be368fc77eafed6dc8c6254a5fdf";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/sco/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/sco/firefox-128.0b3.tar.bz2";
       locale = "sco";
       arch = "linux-x86_64";
-      sha256 = "1a7fece2bcfb3d98b9208208dc9b7a9d510600aeb70ae11e1ddd1b1b12e3601c";
+      sha256 = "22a9b137f752267d7f08faa8256832dc16a6599d7036d8134dbf0bebed625ec5";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/si/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/si/firefox-128.0b3.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "56ee33a89ca89666e1472d53efa2a8acff04ec522a3163222dfa1d6d1cf49a57";
+      sha256 = "1f692a1632c70e61077b8520d1caaf2adb2460d7350befb342fe14dde45b30a5";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/sk/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/sk/firefox-128.0b3.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "902a5924145bdaf90115c2c57431bd1991a6cee462f6987da29d1b8e34db71c3";
+      sha256 = "ed469631fa261e6839bd7fb41934a0ecb694bb5e5cb8e745f567ff6b9d3a09c1";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/sl/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/skr/firefox-128.0b3.tar.bz2";
+      locale = "skr";
+      arch = "linux-x86_64";
+      sha256 = "29f93b1c9852ee969207cb38ed9caa773866b69a8309fdd9d67680e6bfb824db";
+    }
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/sl/firefox-128.0b3.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "d311ed3866a915878a16bc533f9ae737ddf3d05c49f24a9b13f4b592f3388219";
+      sha256 = "4f5e98d7d6c1d68a9aea0673492b2440e7dcc9b2b6d502e94c5ec5ab10d2d244";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/son/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/son/firefox-128.0b3.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha256 = "7428961daa14b04b2f7edd973c71426b18a48fc4ce50242c93a286133296ed36";
+      sha256 = "f042cf22fe86e3b3a4d23884c6ddea3a8ff08bbb24f7295cc618f0ebea8dbde2";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/sq/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/sq/firefox-128.0b3.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "79012e6a60439783acc6c0eb1728ca9941e74caf4de4124ef92e5b298e24edbf";
+      sha256 = "c8908b4df6a785f968a3ee3a5d1605f37c54954cb8badb10dceac3a5412db6f1";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/sr/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/sr/firefox-128.0b3.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "4bbc651ff8ee786d86abb4bdc80a3ef1854abe0e11cb6edaef278c9af0f45424";
+      sha256 = "c4788512b4c5695dfcb020c897a81817b14a32c3132115dc840c9ebe8c19e016";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/sv-SE/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/sv-SE/firefox-128.0b3.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "9ab669d6ce2f9759fbaa5fdfc3d8484c6be7325b8fea6c10fbb189c79f7d63fa";
+      sha256 = "b7851e5104fce808dac901788e0da55b7c513a8cf544bc5917513139d5b7b63e";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/szl/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/szl/firefox-128.0b3.tar.bz2";
       locale = "szl";
       arch = "linux-x86_64";
-      sha256 = "637490e3ec6f43435acb7be533b96f578787e3a3aa7ba9d442160fea0464c2af";
+      sha256 = "ab4a5b7ebf094ffd9b58a5c86fe67fa5ec46d8ff835531b105fcdb4714269572";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/ta/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/ta/firefox-128.0b3.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha256 = "1829a92df9454ffc74c36b9cc7332fd26719c9d4b92058fc5908d30f68a3f671";
+      sha256 = "a572ea53f4fe7f69bc6e87260bb790be0a5dcf95ce1f163443e1e6b0acfb6386";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/te/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/te/firefox-128.0b3.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha256 = "72534deb9b488b5603e01a35b30a2b83112f2dd003db42561b7f0399517731a4";
+      sha256 = "c8b75f3840bdd7171b09972294a2c3f0d65fa6fa409acf70e261c071d0a46b46";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/tg/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/tg/firefox-128.0b3.tar.bz2";
       locale = "tg";
       arch = "linux-x86_64";
-      sha256 = "d24a1ebdcc76cea27f975320edb47e6ce525655b84acae8f280ebbe5631c0219";
+      sha256 = "076bc82bedd5839d2adb544fb46c8896785453adb9ad28e930db4e649ea057b3";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/th/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/th/firefox-128.0b3.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "719686c8efeacd4b63e7e9aa94209cff67366ccc86c544e4a2bc842567a9e3a9";
+      sha256 = "b50a958a94de094ae9b68f69a6cfdafaa1404befb8651d8ec642a5725d61349d";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/tl/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/tl/firefox-128.0b3.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha256 = "c78cc08b8c1cfe4ffc80a5e807faf4af7e90a57a5b9739f33639a646e28ebacf";
+      sha256 = "f65155bde32d3b2ccdb68fac209bae375d07912c299273a7d24aca62f5d7cd74";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/tr/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/tr/firefox-128.0b3.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "2a5853136c6f5dd07afdc08aaebbc60aa4dd456b4aba234cc688954a15774391";
+      sha256 = "17e0d6b2ff623ff8abee10e13aec566b6fc8135b7e87ba6012c8f53f661c1436";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/trs/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/trs/firefox-128.0b3.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha256 = "6dcf30137ac65487e742da53b78d65c0340499844c2218544b8e7bfb05e97781";
+      sha256 = "c10d567b9d315df88df4b75f27baf0a5338418ec64747f9d9ba12916a2847839";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/uk/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/uk/firefox-128.0b3.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "a527e757cce638eee372653ee01ec10bbfad73d82790392fa1ee61af0bbf2597";
+      sha256 = "cffff196e1ec88c2bed876b47d370a2d02dcfb305ddb6774f24ada40c3b2045c";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/ur/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/ur/firefox-128.0b3.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha256 = "85cb53b95c31ac441c8ddc94345e8fa9d850c21026983be4c04f5ea9868f6dce";
+      sha256 = "4a7ef86a445f717838b0ac24e3f7e453785d2d36e955c007e79065e3dbb11c0c";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/uz/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/uz/firefox-128.0b3.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "2c911bfe03d0a0d3fdb916994175e14c364a537ba4f5bbdf99f6f690c3613eb5";
+      sha256 = "793b0393fbbde9b03cc48f4b67470e9238941f890ce109a4e2f6dee7c4ce9285";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/vi/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/vi/firefox-128.0b3.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "adb663aed1929e13a453aeecb61c4f4f004ea8371f38c09e92b7d54d748430b4";
+      sha256 = "6c471538a27c9587e0015f214a53a35fd308758f468bb3dcf8398a826b2019f1";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/xh/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/xh/firefox-128.0b3.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha256 = "6bf462938eb5fb8d49c48e184f5369720678fd6b57db637a8caf6e646c902beb";
+      sha256 = "e7c602469379c7337ec29a41da891c2d603c30e7e2f5d1027b362dfdd818b00f";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/zh-CN/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/zh-CN/firefox-128.0b3.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "c739dfc3c269b15f0908a981a4e3378a60d267749c538f1ea8ace08cf0c6b83f";
+      sha256 = "9dec174d1c885a3e9e3b3aaecd64ab6e63c3111787c62338d58bbdafa447345f";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-x86_64/zh-TW/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-x86_64/zh-TW/firefox-128.0b3.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "1c042f3953a99a593fd214fafcfc18cd60106691a220ad763c216c24a24af907";
+      sha256 = "ba8d50d3fed019c9e800812e80cc32ace24776c5a07abcfc7d6c2c5829fed857";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/ach/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/ach/firefox-128.0b3.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha256 = "72d6c4dab751df00c1db3865f2ed9e2eeb74495b8f52f7c3397f00ea3d99b72e";
+      sha256 = "b5378932b59e633e838873c1fde0b7f08cf1f5ce9bab4b93bc8d82a7c3338806";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/af/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/af/firefox-128.0b3.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "63b500d84f8e4677a0f12e664d4797d5a5144ab5ea8682a33df0d90672d73ff9";
+      sha256 = "d8fe6fe723921447d9d1ae68c6cf403e6ce4673e7f7918a48f1bcaf3c575893d";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/an/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/an/firefox-128.0b3.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha256 = "324d1cc5c897a779b9d3b884802f552e3dc35e0ddcb6fbe4e103ca16cefc0e06";
+      sha256 = "cc1aa23852f5ce598eaab6af0b041cbc39d87959508c8e300e6bfb49f3a6a6cd";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/ar/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/ar/firefox-128.0b3.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "46698609453be896ebbf525441b93a22649f58b48daaa6497b7c82cf0dced27e";
+      sha256 = "abe568b67dd04fb2d44527ff24c76a3cd3993071160f0f2a18dfcf5bfba15250";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/ast/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/ast/firefox-128.0b3.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "15334e0e03b14dd1cad216c48ed2647a307d6972c59af2ce8a50c34d8f6536dd";
+      sha256 = "e7d422c3fc62fc80d60aa9ea492b5713065cc646a3499b27f67549abbbe7c9ae";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/az/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/az/firefox-128.0b3.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha256 = "25832b0e66044c906d3d18e45cc8056829a48d6a258263d57a318fb80f779f47";
+      sha256 = "4bdde11382946be34fb0693024deb49762fbd80bbe52e0b3aa79231642a02512";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/be/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/be/firefox-128.0b3.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "5da75213b69375da57461b62b87c74fe1d9338d1d82db15d7595dd0dd47184be";
+      sha256 = "9c4b8814876dce2d7104ff0c14a22cd147435144cdacb30629237c3e20eb1038";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/bg/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/bg/firefox-128.0b3.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "1e46f0babb84f05a850fe210a1758a220b36588dfede7acedbfb175fca02efa8";
+      sha256 = "06292b301d1aa4c5785796f9785e30a3659b7a4219e02ebba4bf1870823d6f0b";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/bn/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/bn/firefox-128.0b3.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha256 = "340e7f95b2634f55828bd9ab7aa71fb66aa9286dc6dfe1556b3424ee3d6211e8";
+      sha256 = "0f918d2b4e26c49a725792ffe01f8e1bdf9b3960ba1e2cf6b304c00937984536";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/br/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/br/firefox-128.0b3.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "78c61645c894beeb1fc0f8ff0cbe2b5965bd8836e69352dd14c7afc9325c3639";
+      sha256 = "cec99e4f2f0a2b111637e0d8fadd0aacb400727bbccef462d16db0f4805ad971";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/bs/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/bs/firefox-128.0b3.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha256 = "fef646ca2156fd30c13265cfebb1ae8b2412096d8c49195fbe601f24a3f13b8f";
+      sha256 = "0cacc56ee3d17220a3327639de3e107c4e8e574c94fdc8da29ca6770dfdaf7a4";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/ca-valencia/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/ca-valencia/firefox-128.0b3.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha256 = "5db919c4472c9ee6604b5d696307f80803b6c75cb31eae31b5cb0ba0fa6dbce5";
+      sha256 = "afed8d6c7751af833cbba0f12e548bedcae1ccf5a3ced5d551db56d79866b1ef";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/ca/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/ca/firefox-128.0b3.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "1556e239f46068cd74d09419216c1d80f924099657c528840f0458207c60667a";
+      sha256 = "1b3b89346b66eb2126ee628b68f3fa3fba8c625ac333ae87a6482176f867dd71";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/cak/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/cak/firefox-128.0b3.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "ed744ad20501944ea277503aeac81e80eede8f6510bb17b14a4a44fdc221e51e";
+      sha256 = "a78c2e9799efb987cf44a4ceee61933432f9979bfdd82fce0de373cf016fe37b";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/cs/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/cs/firefox-128.0b3.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "1bd77cd1fbfa98aac9e671207a792b4608ee89ba0a80e3d4c5379b5f8ca6840e";
+      sha256 = "bfa3ad2a4778ff6ab52ab7eba6f5219dcc6f7311fd466c68940d92779774467d";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/cy/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/cy/firefox-128.0b3.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "aa33ddad03a86c2e86b19c8fc53ff68e47f7258a36db61bf99c7f09689ebd54b";
+      sha256 = "7682e913a6bba419cebf21de044dea7c3fe4e2187529d5523373bc1cfb0c7956";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/da/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/da/firefox-128.0b3.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "24d6b807c6e5af3f4f5eb905165c30e4da754fbaf2a77e01703189281575fd6c";
+      sha256 = "d133d535195a293dd3a63162d479086ecc451104f62090e2cfd439f590d75fa9";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/de/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/de/firefox-128.0b3.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "2b02c27cbfa8757d52fa83a713e34494a8f6d32ed3c06d5a65e80d6c8f61d0e1";
+      sha256 = "4b186c5e4e5a6c32ee7f71b25ad68c75973739c1e10541cb79131940efe3fdeb";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/dsb/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/dsb/firefox-128.0b3.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "0b88fcbc7ae3c1fa90ac95afaefbabecaa27f3cade1b29601dacd830f85ed027";
+      sha256 = "96e9a434fa9ad495a0e337683fd2988177843e3b7d59458d19f0a97a758fd00b";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/el/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/el/firefox-128.0b3.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "1a0fd9122a50bb9be44e708445fce01c13ff647d33dd12ad97ebeddab3b48e0b";
+      sha256 = "76fed2fe453f5f85185e84c5fab08f46b47e097865a43004bb2dc6a4b43c64f5";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/en-CA/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/en-CA/firefox-128.0b3.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "e6a0237854cb5caec800b5891a459ca18d499b6084cbbf2640a058b1de84969a";
+      sha256 = "9d7f2c2c4db876c164e1c95d33011cf2e1d09550d6df43fa58fa3c9fc1619981";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/en-GB/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/en-GB/firefox-128.0b3.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "85fd87d1d8c5d36281b9dbd5f6e1b702155bcf01f416840cb855d734499d3e47";
+      sha256 = "b433bbd479360ac9624722ec70f1e97fa0d5e25f955244dc5bf03b4fe4554239";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/en-US/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/en-US/firefox-128.0b3.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "5f272b38ea6f9c022fd8de8007e5edd6efd541d4decde664ae8e1384ad08adb3";
+      sha256 = "631469743fed440b332af0d16d806795cff7f30b3e7265b2eac98d4bf98db2a8";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/eo/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/eo/firefox-128.0b3.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha256 = "5d7eae015528d9abd14468be11f2733fec6a414907536a27ab35e55cab85e914";
+      sha256 = "cfab9b835f572713b767dfc89327c0371da38fe5106843d88e9b012baf0afb29";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/es-AR/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/es-AR/firefox-128.0b3.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "8341d9c04aae5b53d50e7bd53c1252cc123ae3e8d727c06ebcdb11a9ed4d4c35";
+      sha256 = "e0e8c77819aace0322f1fa36a57dde503c19a7104a9660f7179b9cd9ae8f1262";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/es-CL/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/es-CL/firefox-128.0b3.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha256 = "7289ef98833d65d87bfb18be5399a957f51309b16f8159c3f2217a190518a519";
+      sha256 = "7a58a042a064184a4146da4e29b8063d0a588b64699be180f8e061752bf3c4ee";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/es-ES/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/es-ES/firefox-128.0b3.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "8eb1c37ea72e9b0236eee4358f9f26457779f8380b69df6557326429fef503e2";
+      sha256 = "90f55ac2c19aadbed48cc9b8f475896b5bcc3527ed27b5dc75a57e00a1b1eff6";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/es-MX/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/es-MX/firefox-128.0b3.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha256 = "b0d10daadc2d08055f662fec68214b237132b573ec47e99d2960919722b95570";
+      sha256 = "fdf59175bccb34442af1cb5f50a6c2c1e8621523922e6e6a438377f797b8dafa";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/et/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/et/firefox-128.0b3.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "9a1416673d108f758e9dec558b0172f51c8a5b89dc404a92ea53771b908e4680";
+      sha256 = "b81f13c82bc73367d51155a03bb2b81712a62192785ded86796788578e3ff681";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/eu/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/eu/firefox-128.0b3.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "1e53908af6ab2880153e8e064d41e78e1122e7bf947d66dd8af65a34a0721c25";
+      sha256 = "f5edb24a1ad14037ea08d778050f8da3b825bdb8d8a76f57e278acf54a10a5b9";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/fa/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/fa/firefox-128.0b3.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "e28778489b5441ea01313a7dbdc90d21364ab96749090920f702a444208e55e3";
+      sha256 = "ae33ddc1a4d1ac5837fb138f0b56eb83a4b185eec8417bf19dcba5e1238a21a8";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/ff/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/ff/firefox-128.0b3.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha256 = "e58f6d9b8eddb6d274b4715eb82cbe6899c40e8fa32cbf007f28e4e6650aafe0";
+      sha256 = "6f76ddfe3379324650e32452df1f7407a3105ce02bae6ade173a51cf1d478046";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/fi/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/fi/firefox-128.0b3.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "82956e939fe1c1d85c09153365b30edb77eac0e33b330c4d343700b034465076";
+      sha256 = "cdc69c23e92616147d43eaf29aec2e5df0079e8721cab027f9651ab34abe2988";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/fr/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/fr/firefox-128.0b3.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "6a1fbec35e84fca5deb28aeef5c39d5549534b3725071663cb0088390beefaa3";
+      sha256 = "aeea885a3243c723f0b1cc21e991c8505e2d1aafa58ae0c9bfe1123d24a95ead";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/fur/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/fur/firefox-128.0b3.tar.bz2";
       locale = "fur";
       arch = "linux-i686";
-      sha256 = "9bc2ce0f10dc3b43d799238e09af614925d4a0040b29811f99f46027ea97f910";
+      sha256 = "85537ea245f24b25b110ea968eae5ac6f72605d3bcfd43a445e97410b729925b";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/fy-NL/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/fy-NL/firefox-128.0b3.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "48c235ec4e318d3333701cd9fdbfcf25e27134accaf14aabfb7764463dc813c8";
+      sha256 = "e007bd725f02de520b5371cfe8056f11ff037b9b5e49525a649087b9f5e8dd6f";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/ga-IE/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/ga-IE/firefox-128.0b3.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "774edd13527f00028f2e90e5af22f1747bb4a2e1c6b80e7849e9fd4af2031b4f";
+      sha256 = "32e1fbe009bac79b7fed9125291e9550608328cf9edf2c4ce652d2e762027670";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/gd/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/gd/firefox-128.0b3.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "ee49542e1c43ab6e85f9c6bf43eebdb1f3e8c26da082f5c8e32883f932ddd6bc";
+      sha256 = "1e90d4d5a6236e31fa76ed773760bab8f76d3ad9a13ca89b77c67fe62f367c9d";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/gl/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/gl/firefox-128.0b3.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "40e25036b2fa4d1c45287272749b83d8b6997c27968f5154f59d5fd1448d1aed";
+      sha256 = "55472c87702c35df3b6511b364ea64eaaea628483d8c214dc2299ee9159148bf";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/gn/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/gn/firefox-128.0b3.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha256 = "8fe7e211c79b3cef4a2e752ed31f028ba29dea103747b2502b002cf22af97b1a";
+      sha256 = "c30bbc39d3c99f5b5b66f8e91afb91e6c4539658da8a0bed1e025acb26329c9a";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/gu-IN/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/gu-IN/firefox-128.0b3.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha256 = "6174d4d698c06431df17b3f3ca8b40463620f2de8a84c6d60bd7aa37a2202f84";
+      sha256 = "9000f9f5501bfcca41e1b76207e559bf160485ecd1370b559d471b1883f06b30";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/he/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/he/firefox-128.0b3.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "aea8d49e71f5567725fd1498d1ada41ee5ddb4a39e984fb82a7a37e6461ddf82";
+      sha256 = "1a579627acf37865e1e354c8e2bdbd5222ab3add1a18bd79a869ea237380855d";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/hi-IN/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/hi-IN/firefox-128.0b3.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha256 = "fb0d1b12197bd756b66b318024f3bd8b6d082460447fa8e25858bcd83709c483";
+      sha256 = "06e2f8449087b8466739ae2c1e3623d7e6424f7b49a4feb77e4696336079e871";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/hr/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/hr/firefox-128.0b3.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "0d122bc0c58f6d19e2508d70cf509c06c7fc6eacdf38e7f96d1006f837b97615";
+      sha256 = "fb4bcfa65aa2c4e250109f98ec2da08270910707d1ce3c150ef5d125ce84731c";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/hsb/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/hsb/firefox-128.0b3.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "a248a771f298fc00b1f752a4f48838e356f1a0be8da21b2eced40cf238a5b574";
+      sha256 = "ecec8874f29c42691e991e0e35f29bbdf52e66f63a7eadcd1d14904ff97019ec";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/hu/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/hu/firefox-128.0b3.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "6851a94bb5ae5f5b9995bb71f38419faa0a1cd4aeb09f73d839927f440148815";
+      sha256 = "097fa497377efd34cafb30fbf7bf309f0ad70f6b37d6ffd1e0ab12e8534747c3";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/hy-AM/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/hy-AM/firefox-128.0b3.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "e495954e290bb7159d9583d7de648aaece79bd729bc88b5f3653ebf8edb2e8bb";
+      sha256 = "8d721e9f622eaa2e34a6a1e371e27a8a5f52fc14006124e7f1c04ed4ef061bf8";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/ia/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/ia/firefox-128.0b3.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha256 = "5bd7790ed21c2ef82c75ee31ca352701ebeffb7ecb14a73f5a514504980728e7";
+      sha256 = "e080b7c91a3d14218dacdcfacac95a8e69688e84215110b313dd6b4f9103bb34";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/id/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/id/firefox-128.0b3.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "c720c3ce0be48455be7738af00c65f63717796b3a61418f91e1fac66cac01488";
+      sha256 = "a895763ae3b2376bc7d6475832d6b5a3c7fd489f69714e44c654cc6f1b020689";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/is/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/is/firefox-128.0b3.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "9097e1aba384bf9035ad51b723a61093b2eb97b81c8bddb336c2aacbb35f9470";
+      sha256 = "b924d52d0f875d11a5fdb82014d1f3bd6f4dacf59991fab768e3870ebb7d7e15";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/it/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/it/firefox-128.0b3.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "cddbf8afd27f4fc901e9d7a171287a4f82c5e6659df7ab9ad59801f9c8f649e4";
+      sha256 = "5af7bb832f155cd3932fa41407befc15842da3c4faf69740e364a5299683a67f";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/ja/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/ja/firefox-128.0b3.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "5c80ada93f5d568c71e21d9c3bd27995c1669505b981497b1f13bb7b3f02c777";
+      sha256 = "ab2abf989843d52fbc958922d607e7107928f19aa8e346717e7b0afe0e8c041d";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/ka/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/ka/firefox-128.0b3.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "7e68ae94a62328b693d36d657b81fef4211cef4b9e074bd03ee2963bb30f0ab1";
+      sha256 = "f281e820191256a778e60b99e3ab21ee0c6a001d19dfdf66f0997d66ae2068a7";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/kab/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/kab/firefox-128.0b3.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "884dda123990eaf650eb6838a344f36c7aae7915f3540cb8d252f06a9467e814";
+      sha256 = "e7f36ddf2bfba93f0eaea2091f9d19059e469dfb6392059e25c94f3ca6b76c13";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/kk/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/kk/firefox-128.0b3.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "9a633805b09925b1e5a00dd4291680584507ab7e94dfa8ba553641a196f5adb4";
+      sha256 = "5b950ddcbd0b0d1d35ccfe513fa75c97c4f03c9492f284aaccb8448913975f17";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/km/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/km/firefox-128.0b3.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha256 = "0322b0cbbeb52b2cbd80395ca31d1f08794291f79aedb79e9d9658fad8234e80";
+      sha256 = "ed151e02a9e6023584b039c563eaaf5687a0cce2e524d112fd8d0b842ddc5edd";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/kn/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/kn/firefox-128.0b3.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha256 = "51621c8c9f5b88402c493ce6813b84afe00236c5971155e1952c52e075014ead";
+      sha256 = "4eba588e48a099b017525b53fc999a0bbd4414e61299e2bd91c4bc451eeefeec";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/ko/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/ko/firefox-128.0b3.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "7537bb740007e4e7bf8cdadb72c78e6cd9c4cecf4b1672b9092e9a1a0c04557f";
+      sha256 = "b2ae712b38398a1b8c3fd8174a4ae76901f419c4610ab85d9dafbfc92a1e233e";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/lij/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/lij/firefox-128.0b3.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha256 = "77cc77b6d45440c7beff04dc4c5fc3043f5d62a6d8a7fa5cec1d068aeb74d6d2";
+      sha256 = "7bd8e5afe6e8bef9ee917a16c0014153944baad3d4df07604dc67ea21ac2b065";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/lt/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/lt/firefox-128.0b3.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "3dd9ed70c21c268ffa9c39632a0fa8b6f48cfabe9834826abeb120d88fb242fc";
+      sha256 = "f9aafb27d854e8ae6eb6e2ff85cf7d14320fa7e2aaca5836be0e7a09dd4df415";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/lv/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/lv/firefox-128.0b3.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "d493c414466ed8a117b40ead6d13caebf32c9c59abb1658db5d87933ecc7ba5c";
+      sha256 = "0b0d7e0837f0d9e3f0e9f628df717500079850a69e065f4a6cd3771975b96c59";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/mk/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/mk/firefox-128.0b3.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha256 = "adad74ff34d5aca45ca24c39471249c8aba082a3b2cba081def171e6420a2fc7";
+      sha256 = "3541015f658ad5275ea503708f4a4daefa66742a011eed36d943ba49e377b278";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/mr/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/mr/firefox-128.0b3.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha256 = "fc44b325f0556f6284fa09b9989bb4aee9dde7f2b98c274ec1c876cca54a651d";
+      sha256 = "d8cd2c6d7be07c0a0d7686917c2c16f4d7620392616d985405aefac36880d68d";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/ms/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/ms/firefox-128.0b3.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "665b68f4eca82def832a30f77e206eb6d3ab25959a97c88e94d219652c73a07f";
+      sha256 = "0150da21fec66c1da911d1968ff281a97c2d7421b7c3e423066f091bd040c357";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/my/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/my/firefox-128.0b3.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha256 = "5317071a0c2e88c84685c220a39e67b1ee410966dbc3d7f352bb37f619ab2ca3";
+      sha256 = "0fe17f9023928bbf8845aa476b27513954380e8096fe7cb206be9633cfa3cf19";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/nb-NO/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/nb-NO/firefox-128.0b3.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "00734efcb8d9aa70720bfed3d49718044aba1088c48beb9d3a618439e806bc17";
+      sha256 = "4010fb76776bebf6037ce0788946e6098a7bface36c1281f14a7d9a69acb1be1";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/ne-NP/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/ne-NP/firefox-128.0b3.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha256 = "0aa7eaf8cddd8399be7e4361bd700641b4e23c55c5ba571307a5d68a23825d52";
+      sha256 = "675cf87d896a9441e3f8ee2bb72853fb261a552766dc49f3422d04c537ab0485";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/nl/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/nl/firefox-128.0b3.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "c45ce8548a7681039d2f8eea1034e34b669f98e8b1ce195f1e97585a75f7add6";
+      sha256 = "28caebb6df719979af3cab55730b5b0445b6d855667e06dd235725263aa8c5bd";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/nn-NO/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/nn-NO/firefox-128.0b3.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "d43f42e73f98b724652eb7d771bf3766c53337985df41ad3a93bc9dc6ced1c39";
+      sha256 = "31ece43a2f1810d7bed9130bd7ca5f81d8b35781bce1555a10f3c80c4a1b562b";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/oc/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/oc/firefox-128.0b3.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha256 = "dfd0c96c49bf69e55f86d9b81f81c9e61af87323a68624c7ae9d1fe337404e02";
+      sha256 = "51c81489325ceb3f17fb48a493247eadc977f53aa82809fbf46240b582d04e3a";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/pa-IN/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/pa-IN/firefox-128.0b3.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "704a4534dd144aab5b99a2a1daa42af6ff2fc85ff586d7fefcd90daabd39f691";
+      sha256 = "2cb5df6e97c3dfbecee309380b61438c2dd8c1101eed829d72e81a2b3e6d1e83";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/pl/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/pl/firefox-128.0b3.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "dccbf1e6b1c463c60cb321be32a2d169e4669ba295a9e46a24c1fdb1a9a3fc60";
+      sha256 = "ab03983056df8b9f86369d60fed694f62d8435913bdd4c9263056744be1f25bb";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/pt-BR/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/pt-BR/firefox-128.0b3.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "30954bceb1149e8f0fb1f2572b48e6a812f9040e2956a0a00ba9861eed0419a4";
+      sha256 = "cbdd4c98cb163b2f2855d6a9d1044ea58c011bfa635c0dae366e864b4faae805";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/pt-PT/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/pt-PT/firefox-128.0b3.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "3adb9cabe5ef28e532c9876459a7c711bff44e829c555db57f228a2034aee55e";
+      sha256 = "7aea218fe428795abe12d23cf1c5253aeab4382c5bdfbec0ca575e2045ef46ed";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/rm/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/rm/firefox-128.0b3.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "c392f15e019222daff27c5be0d5e695d41840e7df3ddeefc3768936a1899c60f";
+      sha256 = "6d62a4552a59300f4c72c418a6fd386ca89ff8eb2cd43a10b01271a168c057db";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/ro/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/ro/firefox-128.0b3.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "57b2b6e3aa50de0cc122c9612a098adc3d406ae6700af3799d900f6b1099fd16";
+      sha256 = "11bd2b72830e876895ba9a53d804641cae08f4ac1c0691f5b75bd8c50627576d";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/ru/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/ru/firefox-128.0b3.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "b0c0f87f4689c29a5ab1dd05bec2fd890764e8610baf480d48f2bc56c45d8c1a";
+      sha256 = "8eb355d2482252bb668dccda8afe3ec4e9416f0ce8b1a7d1bc0b3b1e614bb53d";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/sat/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/sat/firefox-128.0b3.tar.bz2";
       locale = "sat";
       arch = "linux-i686";
-      sha256 = "29f12ee83180384d8480a0ff3b7eb8d8380ba6e80aaa79889ecdb507ba5a18cf";
+      sha256 = "56fdfd81f33a17897831e6fbc960ee72b6d4bc5ccdbe0f499bb7040c467d5c98";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/sc/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/sc/firefox-128.0b3.tar.bz2";
       locale = "sc";
       arch = "linux-i686";
-      sha256 = "feb0ff2b4a5ecb51daf6a9a37f835e50894ba73300242d5f1375e210aed9df09";
+      sha256 = "79f9d2dac687d4ebe5c3d89fc142e0fabbb744fe13968e81014e12687f54482c";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/sco/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/sco/firefox-128.0b3.tar.bz2";
       locale = "sco";
       arch = "linux-i686";
-      sha256 = "ce078b281d4f8a57b3bff091ac6e7bb04ecf401885150443945390ef0da30d1c";
+      sha256 = "f9676a196a76a269aad93d9960759ff179e21fbacac3957117010fd231b4c49d";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/si/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/si/firefox-128.0b3.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "b9dc142b29f4c982e86fb58a7813801fa208386ceadd5f4ce9e46616f524d2d3";
+      sha256 = "4c0e4ca10911b46888b1f88ed8922375354c2d6ad549023f7f5150752ef61f68";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/sk/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/sk/firefox-128.0b3.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "9171e3fa56a0611a9e4adc5c2aa4e873b79f0e229ce21f5cd61a855bfe67f228";
+      sha256 = "643cfa0f3c65ff2051aadd235042fafd52c5b10ef32d4be79c76e1b02da62bfb";
+    }
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/skr/firefox-128.0b3.tar.bz2";
+      locale = "skr";
+      arch = "linux-i686";
+      sha256 = "e8a80a7d5dae201e4590ad644dbd9add83a1c4bcf8f592165c6dc87765f17361";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/sl/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/sl/firefox-128.0b3.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "8d6385d9865439c3184b4c6fabe5a205bca7c96facc510e9d0ad37e338a3685c";
+      sha256 = "32ab4d5e6df6095aa80184b92fce6bfbe575bd3ebb4c2f9200519c31b67db6c0";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/son/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/son/firefox-128.0b3.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha256 = "6041cc7f8929ea4e1109b6bfbd5214415333528a2f371d7226f1d6f9c78b7c0b";
+      sha256 = "edf2f00e87e992121721fb2b948637650845169dce0a2f98c708489c8f6f0fb2";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/sq/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/sq/firefox-128.0b3.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "f3d64bf45a205a52f8ce9da83a8929b8946552d8d9b5b2e44d2c4c54b09eb7cc";
+      sha256 = "2317f12916cb73037322c9e8c350b4fb2b1f1e9f035337eb4dd7c6acff35ec95";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/sr/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/sr/firefox-128.0b3.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "1189d0fac0bfab52f2536d61ff5b8e9e6bc456cf64d3c9b5c519bb7db86c6cd2";
+      sha256 = "660fe43de82ddd20b7e8ee3090cebd02c3a78a6b42693be19599fc818662c08a";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/sv-SE/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/sv-SE/firefox-128.0b3.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "3df8ed2df85ac7cf573518774e6b2d42e4573b9f9396f1cd161072e72135bb0c";
+      sha256 = "1479aaba440418cd9763e1b7a7b6c10c05871c69c27a9d5bcbf19c5956eeffb2";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/szl/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/szl/firefox-128.0b3.tar.bz2";
       locale = "szl";
       arch = "linux-i686";
-      sha256 = "159652951edeefc0a9fdd9c2ef4babb0faf846e14c54a06f00c1e393b2d52ad1";
+      sha256 = "f0b7b11b448222416e7f8ab46e658727060dedd2fa4114a857800cc6750aefde";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/ta/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/ta/firefox-128.0b3.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha256 = "b69da473595cb0bf2c540382431f1921d23626902927f6e8433121597954c078";
+      sha256 = "f8bb68b199e450945ef262ee364ed6677998f24242e196d04d45b0209469d96e";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/te/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/te/firefox-128.0b3.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha256 = "8a9537e0643c1bd097e343dd270c900be40829ccddab1f2852afc3f7f5291fcb";
+      sha256 = "14db538c4ce10af0c635f7ad05447b104b35d5b8aa2504331b1e3a388b2bb6f2";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/tg/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/tg/firefox-128.0b3.tar.bz2";
       locale = "tg";
       arch = "linux-i686";
-      sha256 = "2b4c01abde3afda35764babfe2314bbc54ff5926d184459fce296de19ae4538c";
+      sha256 = "32035ea4399a294509a939501f5cf8d5e9e5bdac24662fd6e5054adddafe843f";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/th/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/th/firefox-128.0b3.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "d5b5c5ba8985d964fb618d8a02b00a332d10c88e0c00c0a08392d5152d1a2aee";
+      sha256 = "b09e831b65829f63325354bdaa0aa40097a035bedcdf8890464f2cfba1b4bd86";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/tl/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/tl/firefox-128.0b3.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha256 = "01126fa975a56c35bd39b18bd5fee40a41f937d6de745e19d43adde8313216f6";
+      sha256 = "a7d024c484ab97f4138d6468a60ad0aea86427ba955db0522fd3c93d89becac4";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/tr/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/tr/firefox-128.0b3.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "9944290424fec68114cc56e7d7f9461d382999ef9f3aa257b796efc4bc45ed1d";
+      sha256 = "95ea9fe51952c17f66171420e42daf69653f50586e50f52794df20ed6dc294f3";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/trs/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/trs/firefox-128.0b3.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha256 = "2bc7e9a06be8d2ea6e9a9db06456ef7762040a9669657f7715e8abd7ed8cb301";
+      sha256 = "727afcc04a981d7a29c97ea2776a519817d69deea0c90a2e692169a1aa363af4";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/uk/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/uk/firefox-128.0b3.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "d301919a3f538bd360f471abc2718295a86018fb6c2ef60843373e1eec2b3ac6";
+      sha256 = "e23ab0495d135ce16f959c06e5eb497c6589b3398c2b9971d94513feb65b54b1";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/ur/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/ur/firefox-128.0b3.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha256 = "ca49185a9f77b621f7fe3db460181d5dd3f3ffcf5dbfec5e451339efd0ef96d2";
+      sha256 = "d7f3a250bdc65e5bd15bac830025d62dadff4f889505abe9778998136b675c3e";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/uz/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/uz/firefox-128.0b3.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "0f6c983b18585e1b9b2cdbc47e86a1b56d62126d0b90d770391e9d7502a392aa";
+      sha256 = "23422bf0985202b1e64435f1202b81b0a5f11e5c4bd3dd206fa124b3c2ae5aeb";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/vi/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/vi/firefox-128.0b3.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "f621f3b433ac410b996f7c7e7e94b680ee7d3425d2e41bdccdfd567ecec094ac";
+      sha256 = "a2fe9e8d70e8251e88280cc741292b830d10ed8144713d3a0ea1874e6871927b";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/xh/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/xh/firefox-128.0b3.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha256 = "631336f561f9153d0fbd941758aae76bd003ad541a8fb28a650610fba0f84ffd";
+      sha256 = "d1a06a53bc6f3676fdd0a8f45730209c2bae1bf5729da35b0347197183b9aaca";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/zh-CN/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/zh-CN/firefox-128.0b3.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "7332654e1f050b6eabfca74a9fa9ef024f75f77ccc4ec6b8c042a33d1fa09dd0";
+      sha256 = "c3c41c73da2ce5bbdc237d53cde700899ea070d4614e2a7eb3c23aff38ba6e83";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/127.0b2/linux-i686/zh-TW/firefox-127.0b2.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/128.0b3/linux-i686/zh-TW/firefox-128.0b3.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "77d4db4421b562f34126da6fe7d26221fabc27b1ca7a413c9fc55ed9d89d1f3a";
+      sha256 = "9500a28218045d816828becc5f5b77cda638145e6c3e2e08f848d673d8e77ff0";
     }
     ];
 }
diff --git a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
index c07a93fb16c6f..30cb040f3ed8a 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
@@ -1,1025 +1,1025 @@
 {
-  version = "126.0";
+  version = "127.0.1";
   sources = [
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/ach/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/ach/firefox-127.0.1.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha256 = "dda46876fc45b17419fb3c06d09c3b36d0f7fc3ef8cb9dcdff7870ddc72a57e8";
+      sha256 = "a0c0adf6375c16fb0788c5d2547a58cdf4eb39fa2202490709e828143e253858";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/af/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/af/firefox-127.0.1.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "b1821ce2bb2ce8cde7b688069a174e1fc857e79db03066301d39ee42d6791fe8";
+      sha256 = "537284719c1ce1f5e5664bc0d7215d70e1ff8ceebebfd8f4de5aca7af6d078e8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/an/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/an/firefox-127.0.1.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha256 = "7600270871a1d5bcf5a255998a8c785dad2ca62cfcce2e2c808059b687825b4b";
+      sha256 = "ed24dab4577adad1932474182bfc1a4bbc421879b295234c9bfcf12201254e45";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/ar/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/ar/firefox-127.0.1.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "b1d3afe019fbe6a29a199a52cbfd727aa6d89a824a050d268d475e7357da65cb";
+      sha256 = "7a5d3b7a6519b1a82935486f21ee8bf6802a6bbd5fcc2035674b9881b5b0cba0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/ast/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/ast/firefox-127.0.1.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "78495567e03154559d4d92cd655a5214d84cf5f3621c825fe54d83379d3f68b7";
+      sha256 = "b3219057f2b99d0d84225af34dbd35988cf3d462df2e69e3f57aba9bbc87e093";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/az/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/az/firefox-127.0.1.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha256 = "085e8f9cad96ffcad9a2c1e25bbbf7f2388ed4a7e0210f3057ea240b99a4d7bd";
+      sha256 = "d16a676d90b8290f2a97fc09cf7edc6ba5c57a33b4b626163a1a2ffc559c444e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/be/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/be/firefox-127.0.1.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "e58272a5f5b0afa919780d32061e593e22d7be9c7cf9e42b7361569d1ed60b3c";
+      sha256 = "9697faa8a0fef7fcf2149d4e27a943b5576ddd1f166d1e9e3436019306b51c0d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/bg/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/bg/firefox-127.0.1.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "1bec5b56518f07abf5f2b56b50e70bfa210a1a34075d65bfc089e37fd9f0023a";
+      sha256 = "c156390b7821f8e9b818273ef4645b18b0370fb4eff2685c386b28e26035b1ba";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/bn/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/bn/firefox-127.0.1.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha256 = "09533d6cc055b802c3612b3a1c975e5f968f512b3d64e3dd13fbcf4b0ea2e1da";
+      sha256 = "a237d94d62d8310ad6a7f4b44e8560aa70869bacec5eb1ff03ad10b1fa204099";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/br/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/br/firefox-127.0.1.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "bfbd169cf9bd0f5ae7a070f8341beef5a03216a71e1bd75179057f2090ce1124";
+      sha256 = "0e8e14857e6fe8f07dab736ca94704f042488aa66f09a34472d2e4db68a1d7fc";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/bs/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/bs/firefox-127.0.1.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha256 = "1bab87a8f437cb4e3aafe1b7c6ed9e18d01bedf6f4004faa6c40689c0280fd9c";
+      sha256 = "a4533e64c5b28e3b721f6b5d27b226fbf25c781335af9541249a2d4805fdda3c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/ca-valencia/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/ca-valencia/firefox-127.0.1.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha256 = "cfe1a015695e451b423b1d2897a4a31780ae5e8ad9cef8f6f5c1d90fe1094447";
+      sha256 = "c06fe9609e60476da4dd993eb56a282c85ba6f6b6ed0334e02ff6fa76792e243";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/ca/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/ca/firefox-127.0.1.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "b2aa6766fc820cb43e4c885885c4f246aaa40db5b6b290801f318381e1a82f10";
+      sha256 = "3d7d25afeb97e4349798642fa2726e54d52a075dab40dc4c8bdf8c1a56a90e9f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/cak/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/cak/firefox-127.0.1.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "26ab9b3720ad0f84a19619768a17637e9297731f3824a3f5c2662cdf0c8a62ee";
+      sha256 = "091c97903fe7ca206ba6e65432c303ed411e9dee5a58ce4acde78e092c255982";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/cs/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/cs/firefox-127.0.1.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "bf7d2029945d76e96aa173e2b3768cb7f744e003299858459f95df2b033f780d";
+      sha256 = "62b1713abeb49e6d2857cdd90ed881df1e406845a021166a2404110b85aca93c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/cy/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/cy/firefox-127.0.1.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "b93d29f9bf112d4f9fd5522724aad6b9a2cd30c41da77d4a2eb3a0559f003a34";
+      sha256 = "7471bdb9c4f8e0ae467674f4a0d962edd6c09514edc02b132c2d99b5684c6f66";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/da/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/da/firefox-127.0.1.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "9f17d40911a779f6e5285d7afba95fe7072e5372929430e728aaf2714ff7004a";
+      sha256 = "6bfa2559875407261eb3c92a369b40ca4c037a11e8e469625a994fb7121ee6e2";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/de/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/de/firefox-127.0.1.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "b15f91694b64048ee631d95ee90514cee174fb31cd1d3b3ac769294de933c250";
+      sha256 = "8f2b346f972edcba3f0b8e8cd5797ab688a9753b8c518696d5cb48a449d4430f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/dsb/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/dsb/firefox-127.0.1.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "5a1b033bd3166d61433af4026942e435a43c0443abb2b400a0a2f7e1b13063b7";
+      sha256 = "954ba4d197384bd088890c5405f153b704b2377e9e831214da195c2d317c8cb4";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/el/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/el/firefox-127.0.1.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "18b897662c121c14fef38a5922cd8046a07b5755ccd6001d7ebe6c28a4383515";
+      sha256 = "fb2e5c257cf29c26b2a9b070324d6545ed2b97d4a7ca2454426081773cbc6fd8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/en-CA/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/en-CA/firefox-127.0.1.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "20194008264b80bb71ccb30e983f3fd128a59f7653540414074e79e14e29d72a";
+      sha256 = "223758c5b6b45dd153655543909d18f0a4e9050d27b101a6609f6bf267c6ce2e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/en-GB/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/en-GB/firefox-127.0.1.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "16abfc46286ec9d376dba40551e48816aad8617fd8fd70a618cfe023b23f50fe";
+      sha256 = "7018c6907f2de68555b167f880a68b37016f55f4b5ac5546faa376c43d4d0dca";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/en-US/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/en-US/firefox-127.0.1.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "f029b9dd18e1955fa1391cfaac2fdbe338343ddff59eeb1f4b2f509cc01b4584";
+      sha256 = "57564e6219f8f79418ba49d1e7a6edf44f8e253f777d0ae7de7dbff200c3d5f4";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/eo/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/eo/firefox-127.0.1.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha256 = "3f5f0e4af585b255749f991d6189d8b0f9b8a6c96df914966ed5b0ad9cce499e";
+      sha256 = "24a0e8904f7b6cd7609706fde278ccb57cf076d13569f9ac1197b5cbb6f8c6b9";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/es-AR/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/es-AR/firefox-127.0.1.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "37ce7d900ba92d66f0ea78e4cda3e43c577b6d2269eeaaafc91c458554455be2";
+      sha256 = "a29924f5eb27ce2e6907d23e32d95fb1f39c44e377703e558eabd10a0becc6ce";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/es-CL/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/es-CL/firefox-127.0.1.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha256 = "8308744a0150013cb040a45b1de18199b9cb03eb3e69c81d85578ecd6a2d61fc";
+      sha256 = "a273ae90dcdac41bb83ed9024e0c1a7be9e6389c3e43af983b8d1f26f29d72cf";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/es-ES/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/es-ES/firefox-127.0.1.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "fc7045b3b5ad6a15164b6e9dba56ec89099d41faab870a9d6d40ccbb08ca1be8";
+      sha256 = "904aa7e93abb39ab0357ffd88c1d9c3c1f6fdae45a6fd43fa267999201ecc7b2";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/es-MX/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/es-MX/firefox-127.0.1.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha256 = "ddf2c17e4da881c8ed4e128911f0b02ac5bb95e8cc2d43ec02bb3c3a4451432f";
+      sha256 = "5b01c5f7d2d5ce93d9095df7c02a10c6f81e458454287b96cca9b65bd5734d3b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/et/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/et/firefox-127.0.1.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "92d94afe650e4d39c1a02f51b8bb9b2f0c796ab4bc75af7292f2605fd83f638b";
+      sha256 = "c84be37b30e5f26d1fb0f7a6bedc0765b5c58080668eb763305fae2678c32a7a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/eu/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/eu/firefox-127.0.1.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "e7d6fd2e7eddb60691a3bf51986e9349f55d38aecc4470fefa3c9d98daa63c77";
+      sha256 = "bf46def3eee9f000b4227e8778c6c2ef09b4bb78dd7c8f1ac5d0d94d345a2135";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/fa/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/fa/firefox-127.0.1.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "75a2a7736c10999ef86d7a42281aececd484291914cc7b1d41bdd1715514cc32";
+      sha256 = "d87f5f3e532231c80db40904248413b3891e6268042701824fb19abfbd3b5207";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/ff/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/ff/firefox-127.0.1.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha256 = "dbdf9ee4fd80778751bb8218ffcecc02dc2a38d0286e6f48e2435973f06b1bf2";
+      sha256 = "c3c3162929d576c9311ce42d1211c091f8ade66cfc119b961e04d9a278ba4194";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/fi/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/fi/firefox-127.0.1.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "538454759802c6ee105235234544b87a6380c846e96069f9d593b9cb8190afed";
+      sha256 = "f0ef6a70f6ec7f1da1a4b4d695c62fe7dc1d9ca44e7a4f8cdc17d15ccca4ec61";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/fr/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/fr/firefox-127.0.1.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "64d840787bd70d8bedae1c61a12ea0b577d4ae9f00d2e6e9ae1ee23e23433856";
+      sha256 = "2c9c074c8c9a5b4b7124c683b13f4a2be55bee9f4c9d4eba5fdc9037bfd4ccd3";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/fur/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/fur/firefox-127.0.1.tar.bz2";
       locale = "fur";
       arch = "linux-x86_64";
-      sha256 = "624cc6275197390b6d8f8ce95b4db83a7ead03c03e41148492adf83079458af3";
+      sha256 = "7433574cf039d131cb60545c0f32748382c221eff400887360367a16b06a11f8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/fy-NL/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/fy-NL/firefox-127.0.1.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "22d4598ce65a777243cade386ba9507b34968b115cb308635392b08f6ac88330";
+      sha256 = "083497725c22b842831f80c59ecad6381f27059465f3d34e28acb6b5ebeb4985";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/ga-IE/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/ga-IE/firefox-127.0.1.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "4c97fef0b3d97e663d6c55f81152c781616bf8e5842ae894800f8a1a0aab2147";
+      sha256 = "36221c549b08bf499a367d82543490bd006340cec627382b2314902141a75f0c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/gd/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/gd/firefox-127.0.1.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "49635b4d34bbb79980a63a47872006be8bc9d1f7e9b96e2bd8423b9b1e70752c";
+      sha256 = "a17ac5509f06f7df302cca1f68f2ba2ca8ec5035cd552f6965c566a2000b4b29";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/gl/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/gl/firefox-127.0.1.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "539323f69d7f5a54948553e532a749e4b1d2802dff8dbbc52dfa51d4a314ba27";
+      sha256 = "83b3c09c08a178eb62007bc0328bce8983f84d0f250d3687cee03608c4c18f14";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/gn/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/gn/firefox-127.0.1.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha256 = "123a34d0bc07276b2aabdc5a91dafdd422bfdc3f839a2b5d225e52f484a11193";
+      sha256 = "465e77519706a75225365d3c4a004aea9279576482e7cec2d62aa8b7a886e9bb";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/gu-IN/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/gu-IN/firefox-127.0.1.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha256 = "50b578df5cc60410f2bda81ac95f67b4f507e03336a4c324e84d63ab68034326";
+      sha256 = "53e09098df9675eb7f55d9423690a59a3772b5903a21634846677613975ae5ae";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/he/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/he/firefox-127.0.1.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "5d6e95ba7c93d723c8db7590ee14f8e0f6a97af151ee60264a9358bac980857d";
+      sha256 = "681dd31829c32ae960afac4cfa39da6c4ed7c68f11359e52b3814d347e30be8b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/hi-IN/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/hi-IN/firefox-127.0.1.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha256 = "b8a6c4fe3e2b853cceabaae133194b807a55feb5c8dcb01b54d82691ae4af18e";
+      sha256 = "e8f25e4ddf824410ef01b25302eb1e6c2fd476bbbfd9ec4de19b6b634d108a5c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/hr/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/hr/firefox-127.0.1.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "e98d20183bbd3a361f7b182fdf823b4cd7b87a43ad0c4781aad4dd7bd47dc021";
+      sha256 = "386b31c0825eeef34d3743fa627a6b68e54830b376bb28b03487b4c4840e7120";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/hsb/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/hsb/firefox-127.0.1.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "e0f62a403877da98f6731f19024810285bcd11066f52b38db0d7150b8bd127e5";
+      sha256 = "76807eb27de86c4f3f9a2ac8eb3d2968fa9efcc47d4a948f3327e6a803d78e07";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/hu/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/hu/firefox-127.0.1.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "3d3adecc44d456dfee04a5bad74c84493267c91ae7526f8852c80b8db541b249";
+      sha256 = "7379aac9224724195248879a86d12fa5d98fbc4d85b158982cfa8a79526caa6f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/hy-AM/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/hy-AM/firefox-127.0.1.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "47aace044667c4c5341a871f2729192a0ebc1af50d84395e3363d235c53f0cf0";
+      sha256 = "eb23486d60353cd66efd09a7a05d15ce613279ebb8ce499a958927f0610fa5d5";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/ia/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/ia/firefox-127.0.1.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha256 = "dfe76f863d8d73eccefb29159796652314a1ede465b56e52f0da2cc5079effe4";
+      sha256 = "a27ded0696059e04cf70c8b601a3bb74c220249c5d83ab28e03bf7a35c3afcab";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/id/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/id/firefox-127.0.1.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "6b875b88e075db1f354365ff3523db837b0f25bc079bbae6aff4831dd694fd1a";
+      sha256 = "49ef7dd6b3308802fa3e71514ca026ca7a2864aabfc7ac9ec1e8495f65ecd0b7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/is/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/is/firefox-127.0.1.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "05ac5378b326dad5a2e37c52835a08061b83f204e0030e9ed00149d0fbf6b52f";
+      sha256 = "84790d6b71ce317861c8c8405378c4c425aeb14287508d9a5a83daf18749505b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/it/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/it/firefox-127.0.1.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "c840cedbbfb49b54aae0e446a723e69a886adc36f6c6c251dc4039ace345af2a";
+      sha256 = "ca16864d24423592ef1c5395abd636651a23b626f360463250667ca5e450d301";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/ja/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/ja/firefox-127.0.1.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "b8672862d851e4dac374a89d98a6e259786e4c6e00a292401b94e8d44891f6d1";
+      sha256 = "4c50ab7c8391e563f926cd1c40d4baa6321fa66eb69b9ae35ce96434130e0fc2";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/ka/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/ka/firefox-127.0.1.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "1898dc72d9361c7d93cc86919d4b3c882853539535523f226d906b4a9268470d";
+      sha256 = "184caed2b7fface9cf11e5932ce5ab46011ba7c73b01b49e02fa6b99765d8fd8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/kab/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/kab/firefox-127.0.1.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "07a1f0630c4c1ecae65133523157cf1e38f5ea7db2cee73e11c846c21ac907d6";
+      sha256 = "8d8a5773d68b06d55800cc9df11425520d06b5bbb9835dc193768c183a21b111";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/kk/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/kk/firefox-127.0.1.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "94f2b8c0ed553b85625dafd01b65b08eb0f306b7da07951ec008dea623ed55b3";
+      sha256 = "f68784a105ca7356526a93a2127be666231c067aed2b9c5e2f3e1c8905222cf7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/km/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/km/firefox-127.0.1.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha256 = "300b63d65dfadb49e4b4e5323a60156ea0da30fd09ad868ed8bab76b7ec66e9a";
+      sha256 = "d218839e9391e990572b1097495b0e541f32f125f156cea594c62f4d835aca8b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/kn/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/kn/firefox-127.0.1.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha256 = "663669b5480878205fbd7770734a25bc8370776238be318043731ee925c55da3";
+      sha256 = "fb306ea401e9f4a80346db9e2219019909afcc9a4366656537036d5b5b172846";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/ko/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/ko/firefox-127.0.1.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "2d3c1fb5925e719db9879c97017ba950c9d81f3131e2cbed468b092de51d23ba";
+      sha256 = "6e072cce5c9bed5401b70e853620499150037e28a7daafa994f7da6375ec69d1";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/lij/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/lij/firefox-127.0.1.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha256 = "0f63a277d9eb4a29113944e63cd666504b03f798b6bf9c41dc93e0a9d7450ec9";
+      sha256 = "ec0633670be69a1567799fc1210b3c2e55a7026b3b06af97689fdccf64ae1a2b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/lt/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/lt/firefox-127.0.1.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "582d209cbc97a77c913dffe48ab927f5a1f743505ca68d0821db70ab64178ac2";
+      sha256 = "25a2c72a65825704f2ec4848b2ac52f1d17533d97c1da2dd50fa20a05e1ef5b2";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/lv/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/lv/firefox-127.0.1.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "94d7da74b9f2c8e236e312e97edc34a86ae77d83aa1f9eae311aba17c7af5156";
+      sha256 = "bd79848cae45a9df2538dd0c469d5b8c90af90804e157977d9d40ed208afe909";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/mk/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/mk/firefox-127.0.1.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha256 = "ff7ace9f394694e83a76cb722fb75e210249ecdafc2ee237d86ccc7a99331c03";
+      sha256 = "6b97978be93304c0292e1f337ce93b6da3fb0010864171af8afd4c42a931184f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/mr/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/mr/firefox-127.0.1.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha256 = "ff9d005ae4ac745b0affe51cadd040213579a1561970605e14b7e97c713b7a1e";
+      sha256 = "a59d247dea428521aa142ad399cc9ca084ccae10e0bd115c62e3dc8f8929512d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/ms/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/ms/firefox-127.0.1.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "a64e318bffab978f41d99320184edc406214a64d0ce3e43ab5ca79a9a803b8e2";
+      sha256 = "cc885d9b95439476ba92fedf0081bc72cd9651113ba6f569972f9a39d4b6c33f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/my/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/my/firefox-127.0.1.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha256 = "3be1543f24f4a23a163524ff30b757741a6387bb807955f943d1b8cccddeb6ef";
+      sha256 = "4c30bfc50c0e03b529e65b51742d1f0324cd43661f7ff4b4cac1ac84406ef658";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/nb-NO/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/nb-NO/firefox-127.0.1.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "d1af51acaf3c8f0b7328ff3e62c31bbbd0951d1a3a82f74f2f81da4c30cb173f";
+      sha256 = "dfac26ea8b3f6ccc12d6dff7e6abdb28a160dfeefc369fc4f8c982222eb2f34c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/ne-NP/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/ne-NP/firefox-127.0.1.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha256 = "1f1c957660b705293fbbfa824156710c8f90347ea042885053ec9a2060834f7a";
+      sha256 = "a5efbf90c642886f41ef0ec9ddb128cdaf4e0823ba8df6a0d5f84e26530374b0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/nl/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/nl/firefox-127.0.1.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "2b6f54aeca9a689b7f405f66e267f21bbe195f7ed13185201020d529aae97fcc";
+      sha256 = "13c1cd013686b626881ba82a3d38a3c6a5c6c69e64cda53aa4611ae78f8f498f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/nn-NO/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/nn-NO/firefox-127.0.1.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "1a3535a184ddadc86863848f9f603216c0401fafb939921acb865eb00631af19";
+      sha256 = "103ca53d1bb93a2d9c4b72fc7737ad8a7ecfcb99c5f0c81ca6bab5f607dffcd2";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/oc/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/oc/firefox-127.0.1.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha256 = "5845b3b682a780aeca38b03cad6c02a353de6b032baba5af3da7e514c41cefef";
+      sha256 = "671ccb11cd07be6da9de610f898f07a4a739b594a74db9a400ddd22e39342f73";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/pa-IN/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/pa-IN/firefox-127.0.1.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "2568a37dc1cfe1e42d5c9dfae2dbe74cae1185abd35f9ee3977390eb80661bb9";
+      sha256 = "601883185a7c172aefaea9614f50e20649035fe619fe43adebdc471724e5358a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/pl/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/pl/firefox-127.0.1.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "c69112cdedc150908a0cac8a7f003bfc44dab14a8d32a31ace22748c391b7a84";
+      sha256 = "a5a064b3663a084952f69d5566631ceb3e620b95ce4e068da8ea751644f091f8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/pt-BR/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/pt-BR/firefox-127.0.1.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "b7369e99da8a96aed5018f5f4bd1acaa252d50629179b79a2b61929d71c1750d";
+      sha256 = "a1d026e73053b77c0a38412c22b9e5621c57342b40568fc873d3bdc1f4a49f25";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/pt-PT/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/pt-PT/firefox-127.0.1.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "a2ddd2dc66e8dd6e8d7a628e090ec987a2060ccfe14015c91be2988244990b6e";
+      sha256 = "74b7a71616584ec2a11502a568e1929854d118c66460f6880f7caa662844f4e4";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/rm/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/rm/firefox-127.0.1.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "1edab3ce5b47dc44e2c83a7a2b0b0cee771e36018c98be540e20bd7cd5123b1d";
+      sha256 = "3f064c79b273bcd244a3f4a874a6f88244a9519516da54cc83b84ca6a772c2d6";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/ro/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/ro/firefox-127.0.1.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "36abb93c19c2e629e37b73e807d1b6858a42877a035bb526eb2329bc6784fb39";
+      sha256 = "e85fa0c1b384aac2436a6f58d8b40e76ec5394ccccc00d86e39cb21ab49b9a99";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/ru/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/ru/firefox-127.0.1.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "3aa49a597b80fff5fa963ac16f881aab2290ae938f721412dd42202947ad77f9";
+      sha256 = "06b66880d3b557f97485b953d39b6721cb3b19eeac025248690a756118427b10";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/sat/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/sat/firefox-127.0.1.tar.bz2";
       locale = "sat";
       arch = "linux-x86_64";
-      sha256 = "828efcc83d23bcf9c31225155eaa65a6248448c21e57c9b2a71f54d75fd4a037";
+      sha256 = "973b140ff852f875989082ff4165435a985177b80ef053e1ab001725664a5380";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/sc/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/sc/firefox-127.0.1.tar.bz2";
       locale = "sc";
       arch = "linux-x86_64";
-      sha256 = "255c7b998f797605daf9fb4bd4f6d29ac64ef40f270c7d615c695452d0d5f20b";
+      sha256 = "36c7c937fe966e7b53854ced6564cadb7773cecd65e1f0ad9bec7710313e4c00";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/sco/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/sco/firefox-127.0.1.tar.bz2";
       locale = "sco";
       arch = "linux-x86_64";
-      sha256 = "4892e68434fb5494d8f4e7eaa95f10ffd39f75e05bf4015ffb7c0ed0e895c8b7";
+      sha256 = "373318a35308b01fbfc7bc6ffd541799ef31e9cf1ac88b7cff8ceff635037665";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/si/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/si/firefox-127.0.1.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "28440c8658377ab98cb93de1db073d264fba046e390c433148abe11459a91652";
+      sha256 = "215af3253c9863cfe20be347a423ee9881e18b4e35c33a2966bc8b2fc7b8cc39";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/sk/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/sk/firefox-127.0.1.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "9029db81a8258fb7e352a29de9bd20ed793b579a569e8ed5fd06d0f25b122297";
+      sha256 = "016385509ea105821bc2440f6d3255e1728e7ff85146e02b721f4948b0d85d65";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/sl/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/sl/firefox-127.0.1.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "9f6f60a27ea5c478ce0c1af7de426d0d55178c506c4abf9301b50534396e453d";
+      sha256 = "aab9e95b7a1e0a772df775aa0ecfb7965381c7a60df7d54e1c6fa06766c6a54c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/son/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/son/firefox-127.0.1.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha256 = "1e255b7fc86c5ef4d5b7b9871cc70cea6f93fe4ad74575e48786c57256f6dde8";
+      sha256 = "435b70a26d25111a826615eea61409bb4f4a04d7758cbffd2b13c12fccd1091b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/sq/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/sq/firefox-127.0.1.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "dd918a5d4c1404b159698c8c0128ba6155a26addf52ab72372a523ec05d55354";
+      sha256 = "f7c10d47f4bba018ea8ed5d0d78069dcfa59d739e6872b3224cfeb2070232196";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/sr/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/sr/firefox-127.0.1.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "fc58ba9e476b69db4a7500e599b4933379f0ae7ef2b494e4b2df8327a6fb39d7";
+      sha256 = "ed786d719bf32f81389c061853341d390b6e76ae73c32844bc55daf03e2a2c1a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/sv-SE/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/sv-SE/firefox-127.0.1.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "3c6d7d83a3d45eff199221157e0f91c2ad483ea281ce51e738603bea4d050713";
+      sha256 = "5b8ae2c28aeb8ed30217a243b4d56a22712b3768445597b081ac7f8a80f7ed49";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/szl/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/szl/firefox-127.0.1.tar.bz2";
       locale = "szl";
       arch = "linux-x86_64";
-      sha256 = "42d650ee5043556620c34a4aafabd1075e4ccedcf044e059d382fa4e21708718";
+      sha256 = "423043de87895e6efe4d65e8168ad541f13d9d33066ed91fdbc1658ab917534a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/ta/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/ta/firefox-127.0.1.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha256 = "b095636c31b9d760713e04969abc45223ef79b255bbd1a27cdfdd20b5d2fd9ca";
+      sha256 = "da080e4ed39a54c9866c64abf899a51aa4f7843db9c32a0a5b83c2991ee97d9b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/te/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/te/firefox-127.0.1.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha256 = "55b14dcb7db3f3604d197de83cb87895c8a58d12db0f23e2023bae7a9f596a74";
+      sha256 = "05e5635671b7c2dff7fb1dd315b64d651e4c4f1c1bb319caaeb2f9ec3897c7fb";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/tg/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/tg/firefox-127.0.1.tar.bz2";
       locale = "tg";
       arch = "linux-x86_64";
-      sha256 = "b35e457267437963018eae1ed56f4c20af928c0a24053cd7c66e6e155c8f5e2b";
+      sha256 = "edd6575e8c0275b2dbf69c3a63e3f34ae867dbbc7218980f3e5e65cfe446bd20";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/th/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/th/firefox-127.0.1.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "02d72cae8815ea2f9f0a01358ec131e28fb1cfb6568370f2151e64e8d919b4b7";
+      sha256 = "ff6eab71db2cd3a61ac5efcbcf1526623d0581fc8dd4ff084bea68b5a1b547f7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/tl/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/tl/firefox-127.0.1.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha256 = "2004e3a1b985f73151e00f81d3d2700d7d8f6c6a8a25ef47f842a386309b9c20";
+      sha256 = "1c550f3c9e8f7c67e98c013bc058018fd46a6eee04ca9e36c64ab51e2b9a83eb";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/tr/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/tr/firefox-127.0.1.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "d2fe1ea72bb321dc3e0bd3d5b6f2a44592f5286cb420d1707293f1210a3bb7c2";
+      sha256 = "67058b4ef5a68a9359ab6e461b635018df5077606a634d980d6ac88ead2e9711";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/trs/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/trs/firefox-127.0.1.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha256 = "37cb52d3abaab1c1e6d285553c4a7dbd0c99c08713f88b6b693c5d0ddd63205a";
+      sha256 = "4df827ad9203d47d671eebe05741407a95a7b8af9a25bfaffcd1b985c996f24e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/uk/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/uk/firefox-127.0.1.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "9ba4b7ca7c3f545abde9ae835def611aaaf644257f7036d97c7945e6d1294bf3";
+      sha256 = "ac38bc5b1dda7594e6dee4377ba93e6f0aee875d2a1c7dfedfa2e3c4ad11d1b2";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/ur/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/ur/firefox-127.0.1.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha256 = "963abf5bc134585d9df57085da5d0b32b5e7e3437ddd31581d5ba86c9ae5d077";
+      sha256 = "f9d93101ccfbaba3861f9dc6bd3cd2686d888c974f721c109f90ec4219de6621";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/uz/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/uz/firefox-127.0.1.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "b52aac7d993ef57c055a48fb7658e86a120cd2f4edbc734f4c3d89e24a5beb4b";
+      sha256 = "815164350eda87d24df7c6607c23cea451dad55d4d2d2e9e732981d8bc2d186b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/vi/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/vi/firefox-127.0.1.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "337cecc697dc0fdadede5a41a0c3c0fd259281ffdda6bd1903f1061f96e58a93";
+      sha256 = "0804a891b26fa2c0332a68f81a51ca80ebdcf4bf9c298dc2c66bd47107d4d289";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/xh/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/xh/firefox-127.0.1.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha256 = "a41f854be36ef9d9cf0d8a229e1b088bf855b3d5ef417cb20cd9801631505403";
+      sha256 = "ab5e298676d6ac9eeb129bf95606a1149a5fafa32a978a3bcf08bfdf70174f4e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/zh-CN/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/zh-CN/firefox-127.0.1.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "0e1e754315f0919d78b0ad29e4374287ea3d397dc3ccee6bf835a027776fcdca";
+      sha256 = "089d9286a1109d902cab44581b97233a2e7bef664ea6dec267ffd539fb4e83d4";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-x86_64/zh-TW/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-x86_64/zh-TW/firefox-127.0.1.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "90d723ea118e1dbcf2dc6345131843df48059e90ca7e99061b91095a2e21b727";
+      sha256 = "350406bf0cf848eb0d06188ce6c2ce93ec8ad6b7b159c5b51a8bca94405ea354";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/ach/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/ach/firefox-127.0.1.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha256 = "24da13a3aed6ffc2dc8c75e4e3d349cb419a2dadd6c689349a136d9ebda37a04";
+      sha256 = "8e5e1be666d364bfd7aaa613826698db1b7df41cf6fa7ec5ef2c458800b67280";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/af/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/af/firefox-127.0.1.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "348bf05b0613ee0741318a27b2810c666a6525757846755f5296e1f69dc06131";
+      sha256 = "e9a00dd060c860403094edeb6e4f5918bb74ed2566fc354a5f27b9c1e4f9219f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/an/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/an/firefox-127.0.1.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha256 = "64d8665b8b2c2e9d9f475e546520c3a735fd647cdbf69fe605284f77e2e93b9c";
+      sha256 = "d2f796ce73bd65263c88a7d6dc65adb2ed89393e85988528f48a7a3844153e19";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/ar/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/ar/firefox-127.0.1.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "0e94cd589ae11ccfd2e575d420bbef5e451959beeee2118c2a205920d74b890a";
+      sha256 = "55614e36eb0ae0232355d3cb30d9e92a5cb9688f4f4b0d3a6d4c4f50e42696fa";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/ast/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/ast/firefox-127.0.1.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "d325eebe6c40cf958e5a4f40ae55b429536e4ecf4e00e7df2c16674b125067a6";
+      sha256 = "9275dbbe3f7c70de1a678952b80c88a981b09b552046e9dbd56374f5782378ff";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/az/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/az/firefox-127.0.1.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha256 = "b8645cadd3b2b8dd790634ec8f16cc1ac478081dac234fa96eb83a7030ece589";
+      sha256 = "320f605b88549f87ba681c4f612da7c44e417f4b088e2d2302a8571ff7af3831";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/be/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/be/firefox-127.0.1.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "e36e2243c833441b614ce90fff63762572e98aeedb10b8bfad1dc5268c7c0448";
+      sha256 = "3e3e3b4dc051f847eda1a9c0a595ed99b34730133c47f4e31967bcc8fb769554";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/bg/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/bg/firefox-127.0.1.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "66c0ce40beb176ae4b167411708ed3a381408e04cf34b88010b7bd0b13950e95";
+      sha256 = "79b51cce01b3d45f8ba16cb055e51d916a2fa152cd1c9ba82993a5305d5c1912";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/bn/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/bn/firefox-127.0.1.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha256 = "1f6702ca2d492708a89450404a162a5b8131087552b539ee19e275336a556510";
+      sha256 = "88e0c13b8a4a446e820d3d7bdb8fa0c78a7ab5cde0df91dff34f6a5cfcd8c7a5";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/br/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/br/firefox-127.0.1.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "b0599dae8e8b9fcffea5afc113c954d46a78a81b2f6f9076256922a57b840df1";
+      sha256 = "aef8869b56071730b42df7cf77e8323e23b90ced72ea65426c2e0459ac419a01";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/bs/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/bs/firefox-127.0.1.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha256 = "b893fd06193a43799959037b257d0079a58c7d823384d6f73668571655e7c5a5";
+      sha256 = "6b03db27d91ccb544383837f34d53ff5bc20b70fe9175b2c1ff392e28b54c2ac";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/ca-valencia/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/ca-valencia/firefox-127.0.1.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha256 = "3f8d3a6566b616ef7766bfe7a342b0a138bb4b5cffedaa65e0da03ae113c1bc7";
+      sha256 = "1e7bd2a338efb565efcbaaab096bcc5a8234d453ddb6df892021da74dcf08043";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/ca/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/ca/firefox-127.0.1.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "4e4ab9b73d5f939f8bd824453e197e2e668518c99f41309970c5c7e4f582cb9e";
+      sha256 = "f915d033d90cd92141744be393d87ff763a02b93b0d9019cdb08ad71e8875998";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/cak/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/cak/firefox-127.0.1.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "ef1b8a1f318fe3a49ec99f050d4417c5ecb2018788309d2bafe0582e9f0f67b2";
+      sha256 = "8e69658669438c24e29f5cd6ea31109b15b8bee2d65866ee70d891b1524c2df8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/cs/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/cs/firefox-127.0.1.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "a87b9f9b3b028c15c1e1b37a15e6909f01e52f53f880c874d98ff762d8ff6dcf";
+      sha256 = "09d201730514b5217b24ec3c945784eb25196f3bf20edacf3dc414bf6d421e99";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/cy/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/cy/firefox-127.0.1.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "ff30ceff65bbca5abbbba22d7ec9723a368b3db62f7dac08f4ac9dd2c6505ce2";
+      sha256 = "d37b0bc8331113539ce1a42ff1e14e7c418461ad27e6fcfedfc2bde668d3b875";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/da/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/da/firefox-127.0.1.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "426a00ba520924c5ed011b0f046f5e21a9abeb8db1f1015d5efecc47708c39d7";
+      sha256 = "b11404d98763a12d3601c368c8ea3458e596a50c8b28b5a39160a8a65f9821cf";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/de/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/de/firefox-127.0.1.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "c7db7cad161da5c28ed40f4aeb37f786712516cc2697dd8cb505cb2be14ebbcf";
+      sha256 = "2074038ef968a449ecfc4db5a95daa57d5750e0356af810def7831e0b28820d7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/dsb/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/dsb/firefox-127.0.1.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "ab530f570d5cb46ea1cd451365fa60b4a1872e14754363bd22f95daf85a479c2";
+      sha256 = "0185438000780f3cdf0fb70ac624ae26d62ff13baaed27c83031a6e80c4b2197";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/el/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/el/firefox-127.0.1.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "89f0429e7a8985e65ba320094e1b2e9b1ed5cb38df609aa23cca7c900a0b671c";
+      sha256 = "a859650d0c103293d48b7faf8b5f147d93d85f8e6d0a0837d4a770815f5a772a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/en-CA/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/en-CA/firefox-127.0.1.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "d0c8d0cfe91f897bba6502bc7fbe385880db6e0af6fc93db8702aeb0eb09660a";
+      sha256 = "7c2ba78c44ddb5766d3a243955e7f124860d66a08c3c9e8985e05828fa8bd8b4";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/en-GB/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/en-GB/firefox-127.0.1.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "7a560bc7591e436bac570a287c4a18b8e8978eb48b022c2e21e74957e85ecc6a";
+      sha256 = "ffa47fccaf562c5b9283c62beba604613da8c14ee2a7bdf3b02369a08907d852";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/en-US/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/en-US/firefox-127.0.1.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "3d49a8a3655d8502f7538f67973a6d7099bf4f2579f4519a48177ced50795ccc";
+      sha256 = "1e6b9cad1a6082b75a0aa8f27c0031a09c7b4aef0a2dc42b66d78e319ca45592";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/eo/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/eo/firefox-127.0.1.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha256 = "67c107f8a0d98a932e25de900f934c2e377dd3edbf1b8cc5554f13271d89a8aa";
+      sha256 = "704a7bb203752638e637857fd1575bf780c811b202f3d915132fbd140aadb5c3";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/es-AR/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/es-AR/firefox-127.0.1.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "6c8e6be51abf98ea214983232077947a7ae80dce47c92aa651664c43fc2b6e71";
+      sha256 = "ec556966e0cc3baf26bd69bfa8fc95d05a5ecf327b51f5d413dc75e8d57abbe8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/es-CL/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/es-CL/firefox-127.0.1.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha256 = "2296eb97d6990dbb9ac1a4a2a66e8398ad2f36d54cc7bcb5b686f72cf7ebcf83";
+      sha256 = "2b3428d8df4199f57cae938e2042b07c87bc15fae08b4c6f9320a93cc2accf10";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/es-ES/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/es-ES/firefox-127.0.1.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "7122c71207f430b0a4a4f802220ce569f820f0461e2f92dd14b9b868cfa4bf56";
+      sha256 = "2d763335b0a440b486d3a7787ed327f76a8dfb793dfcae4c011865af229142cb";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/es-MX/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/es-MX/firefox-127.0.1.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha256 = "ee3bf12d3230c287f934db6e5368d90651c976a4c8177dc1e8dd134f587e42a4";
+      sha256 = "807a5f264e10bf2d7b7f402453f59986ec9388e81daa1226e6c3c57fce600591";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/et/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/et/firefox-127.0.1.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "4297a9954af8145e8f938dd236dd8ebec126edda142a6dd73e94f70a0375de3b";
+      sha256 = "6d345cd400c33a0abf0ef84133dc758043dc6456c1685399ce008636d0c0c317";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/eu/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/eu/firefox-127.0.1.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "41a02f5f530e9e625524a1f370856621c9cc0e04324ef301f889454c251824c2";
+      sha256 = "e2b892bb928ece432b234b5fabb6ef4c5d87beffeba5052ba760f1459d611794";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/fa/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/fa/firefox-127.0.1.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "36d5a5d3d616e184b29227403e333d0f3dcf6ff226bdc1c022ccdcb432fcac2a";
+      sha256 = "a0437c04c9ecf5620da2c680430cfd45c23e2507b83f7fc564ba6b8702b5b652";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/ff/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/ff/firefox-127.0.1.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha256 = "4dc033065adaa117a44366f9ea31c657d2f236e553fa925e0b4fb9622e092b0a";
+      sha256 = "0b94d624b691d9db36e7fa5773e9bee515361f2e5400f34b7eadd181c37ad8bf";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/fi/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/fi/firefox-127.0.1.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "03adea0ca2fe7e8408d81fa9105226d113bd66bb75be5b18c3eb640f71807c82";
+      sha256 = "54cb7a05dcdcc1ad0a87f232d55a2833e4e21282035d92b31f8268190cf2ccf1";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/fr/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/fr/firefox-127.0.1.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "bea2e88d69f51ade377594ae02ad9751db7d1d886bce28b218715299e210dc5c";
+      sha256 = "48457fff8307cd2b1066448b545c1971cd084109a27203f660328560dc739e7d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/fur/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/fur/firefox-127.0.1.tar.bz2";
       locale = "fur";
       arch = "linux-i686";
-      sha256 = "7eaff23205978990eea395299d1fc9609b8bd6ac15c87a13df83abd14d76f88a";
+      sha256 = "2f4b6400b06afa4d80f4c7426914775816f775502d087a75d8b6ac87b8e69242";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/fy-NL/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/fy-NL/firefox-127.0.1.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "baf7d3fe44f6d0b3e334365b44327b2c8225d94010f2238477ce2db66a31dceb";
+      sha256 = "f3d68d1caeee683cdfbd8bb64e621c2f73d727ad92f4f0f7af916268b5455e3b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/ga-IE/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/ga-IE/firefox-127.0.1.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "bdf605c386888ea39e244501e885ac5f51513093e33c3038c5d87ec2f742c49d";
+      sha256 = "97b4f549e6c1f20a81728f5a839f16959d17ee4e6018fb21118433caaec4387e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/gd/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/gd/firefox-127.0.1.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "662eae8fb0d725472d3de3b00a95b26210a0b66de584184bbf2475f85d54332c";
+      sha256 = "61c767f4f08cec1ff08010b05c917fba22fea771ee15b82bf2196037d2b75a4d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/gl/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/gl/firefox-127.0.1.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "2e33e5f0e6d6e7224b85dfa1d55cb648ee35d85b5a12bb06a8a442a4e71fac8b";
+      sha256 = "f6376af7b2b56a757a06c38d4a5974c8001ee765c2bf0e5900351a99d9a57689";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/gn/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/gn/firefox-127.0.1.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha256 = "e306c867a303068a203df7f157426f376db22e40bdef19913e460c5ddfb6016a";
+      sha256 = "4e9014c87d79bfe6243271a1ee7a8c728bab79420dfe8ca92ba310757d0a1c05";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/gu-IN/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/gu-IN/firefox-127.0.1.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha256 = "22fac69fc82f18b5927460c8fd438c9d964329a39538cce9c3cc944022873808";
+      sha256 = "a6b122c076fdeb82f5bc532352f0387876f9edd767cb99a5447347006b001862";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/he/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/he/firefox-127.0.1.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "d448d9d47536b765193aa9e0132a0a2dd6cda3a5812cce11a7538abd4fdfdd07";
+      sha256 = "79c827200537fa42597d0f932a7d68ee8779bfec1d18728539f1a7dd5192d9ac";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/hi-IN/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/hi-IN/firefox-127.0.1.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha256 = "c668f9bf4e3901d7d6eafbb29d6971d8f28dca0b327d7ae6d31eb337446edb15";
+      sha256 = "b1fbe1760f130ab92236eb4a5ea7e6b0d0518b35157f36f4eafc492c3f9cd0ae";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/hr/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/hr/firefox-127.0.1.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "d7834cb0075cef6545dc8e4894e734e83e4c258ae34ecdec570959a11d121b95";
+      sha256 = "72889a867d9421fc73d9d4f180849d805b01471bddaaa6824e93b07896a768b9";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/hsb/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/hsb/firefox-127.0.1.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "edc6ab5329bf6242ed178d4a8cf908f83c34036b7a44d223a2389ce1b94f75b9";
+      sha256 = "48f07c8429a713dd89ca3c0b4d1559f1eb321f6b39a7e0c3e99879af81145fb7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/hu/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/hu/firefox-127.0.1.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "3552897a8e67dbca66ad8fab1da93111b74e97d2e073b901f89e040458b6a1e8";
+      sha256 = "34d359ea9ff40e7769836aa9738a44d9ea3a4a56d1f24cd3c131377b3c643c20";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/hy-AM/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/hy-AM/firefox-127.0.1.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "e9280a2dbafea3ffd999d06640800c8be1d4d49bb417c4c22c98df62efaaaa27";
+      sha256 = "81ff340957317c3e897802270cc518a6958498cd0d2633ea05f8dcaa47f160ac";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/ia/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/ia/firefox-127.0.1.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha256 = "ae4f4754f9a839359cd9ddd1103e5f6c13b836b8d605f87c7c9ec50195397958";
+      sha256 = "774377bf071b1b9d8f7fc04bbe3d654d03a4f42aff49703d1ec1c385a95c19f6";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/id/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/id/firefox-127.0.1.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "6b620340c38277530507c3c163bcd194d3984fc42bce73a20118acf9e1d24104";
+      sha256 = "5f487dd5c6a71c89d6064b77db21fd114e3d7cc0ae0286d2aadf595f32ecb7a3";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/is/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/is/firefox-127.0.1.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "72e4a73a842f03d8487907a8af71e4f40c6655dd78c38600e80b90857aa1c01c";
+      sha256 = "d3ff61dacb107101e468d4409a9a3775e10263580a8b494ca49e7eb633d5a569";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/it/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/it/firefox-127.0.1.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "316f3475bec0daee2646af4bbc73b7bb1122644a3165b7f0a332af16369b6c6d";
+      sha256 = "3da83fff962bb1d9e6bae213fee223b3dc5929ca6ed69e837cc645038eefd950";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/ja/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/ja/firefox-127.0.1.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "ce4db4762e09619353bcb80f1281fe75faa216a6995f8d0ecc369c2e988340ec";
+      sha256 = "95a398384cb431048fba43f4651e7590433566ee8f2d7ab45c1d451cec554fd0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/ka/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/ka/firefox-127.0.1.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "47e20bd8415b81a47788aa224e2eaf7086a96d6d586eef9b21c0c1a8e59dc172";
+      sha256 = "bbf9f1a734548b1424328190c69f82e2d07527dd89b5e79555751496420e30bf";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/kab/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/kab/firefox-127.0.1.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "81036648ee991ddc851a70a9242b567159324b13809d04735f11c81e1dc8f3ae";
+      sha256 = "fc1d3bd0bfb8ba3469d5524e3339f8ecc28e705a29b39648d45727a9f174a55b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/kk/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/kk/firefox-127.0.1.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "86d928d9e42569fbc2862d6e14150da4ef35243016753b3d982fbba5bb6baa2b";
+      sha256 = "a4776c548c0101794fba033dd5cf75c81997431ba3e34ea68875d5cf60b38851";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/km/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/km/firefox-127.0.1.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha256 = "16b24d02899cd2bd1a7958b8b0f56bdd231ceb4c3c0c987e19d219d93af29435";
+      sha256 = "18b272504c1dcc6b4019645ca3165653d7461ac8b2eeaa2d207f1bc158c383c2";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/kn/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/kn/firefox-127.0.1.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha256 = "4cc091be288f7704f4c270bf982ac9f2f309979c92c435afe36fac6af1951d03";
+      sha256 = "bfed658aad6e2575d348798a227a233e66cf39e85e4e4f66312650d6190f6016";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/ko/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/ko/firefox-127.0.1.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "bc81fbde00f8f47e58bd1ca871ec9dee8bc6763df67f5f32b70af31007369a79";
+      sha256 = "6284657e60f24a5b34646c88918d67f52d8687da42f4c475bfbf1fe0afa8d524";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/lij/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/lij/firefox-127.0.1.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha256 = "9d3aa0c4fc3e14b0fe5180d372b374a83fb375d859ffd55d1be369ed0b5bffdb";
+      sha256 = "2041aca3beed2a7090b99bc5aa83596d83d8039127b266f905602a32cb63c690";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/lt/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/lt/firefox-127.0.1.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "07318635215f2c399e5cc9178f181b36a0884e6e96e2059e4a5b88bf0b6c2051";
+      sha256 = "a66df9b76bd7b40fb26b4dfd994608ff539bfb7827624c27cff69ffad0c7ba8e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/lv/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/lv/firefox-127.0.1.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "a2467dce574e6bb646d0531c59fe22f49178994b3b204f11c607c6ce709c6cf4";
+      sha256 = "aa5cdab8803d15e893c3cdd2a4eca2e765920809d628e7e51d8478de3253951f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/mk/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/mk/firefox-127.0.1.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha256 = "3f13386ac308a6f2572931501cf6322592ead6705ee8a420249f0030e284404d";
+      sha256 = "697546a7551cc1e75f2dd82b152c570220def47db1a74ec5ee39f22487983b8f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/mr/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/mr/firefox-127.0.1.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha256 = "b57bd92eabd3820d5be7d660eb774c210781a89f20d9e48a5739ad16af723cca";
+      sha256 = "c7fb05edd5ed4b3e73b4f9df701ccc87bd2ff608c9365aae92bd2ab32271cfaa";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/ms/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/ms/firefox-127.0.1.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "704232123025b3ad2cedb0eadb8edaace22c01d3c62fbd3b27e5c9d2495c9530";
+      sha256 = "cc6ebd7d7238798cde974e1ae493245f5d41ab14e6bc84f56fc44e42718efb39";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/my/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/my/firefox-127.0.1.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha256 = "c07bbe85128366dd95ecae97ab00821b5be4c39442428e483c3cb434e536e790";
+      sha256 = "7beec8da14f4920156c7a9d6a140bdc06c5a3dcac8c6151750b9c102f47cc335";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/nb-NO/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/nb-NO/firefox-127.0.1.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "c079d995c6bc2e5be20ebb4ed1ca76179bce17c4eaa4e47c39ba67ec50db0268";
+      sha256 = "7e700961054ca2d953fa839d948293854cc02d5e1dafa252ef7edc3bf52026db";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/ne-NP/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/ne-NP/firefox-127.0.1.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha256 = "a8f3ae15f481e2a2faa41330571a30464e38e070ef27ee18bffd27628f5c05a3";
+      sha256 = "ac5c875d87853a5d017b09641d828aed7ed3f1a6d35452c63ad222378fdd0368";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/nl/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/nl/firefox-127.0.1.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "d0a70bd54c185f6edc93a6dd1c93b28fceb6c9a1af3e91cb78b131fb69d05023";
+      sha256 = "01d1459f0bbd32d2e61c35602535c0d90e219a55de9ef80ebe5f0d208fd52c3e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/nn-NO/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/nn-NO/firefox-127.0.1.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "05eeb23cc7154dc3dfbf99493bab95739f36eb52e2129b70a0cc32b4c2d67f7b";
+      sha256 = "d27f03bbf71bba943a8ac8f0c98493fb8fa1007c249b3385f10e6e38b739f36f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/oc/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/oc/firefox-127.0.1.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha256 = "80e59358349d1aea78f12b67674faf8f5fb6d23bba27cf9eb49ed55bf57e331b";
+      sha256 = "f3daf530493a9ac873c439bdc74db1ae9d54fad808c960334f948c531ae43306";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/pa-IN/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/pa-IN/firefox-127.0.1.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "f3e2b5c2c044f74910b14e2a6594c5c0a91b1b0e19b8d18e557ba9b1643c906b";
+      sha256 = "5e04e0ceea94afc0e1e605322db7580cab1e990de1d337264eb27c3ed07a2fab";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/pl/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/pl/firefox-127.0.1.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "8730e394f6362c9f2118f90c8f32a490e4c2b7fc4da55db0c5901e4e31a17a9c";
+      sha256 = "cafddc502157e74e90f8fba5f46c9aa69bccb2c0bfcf23378452cc0307e09204";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/pt-BR/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/pt-BR/firefox-127.0.1.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "82aae4a9eecba2ac0c2860019f80b44a70b53290476113ce66a595f4d58f767c";
+      sha256 = "f671ed2a8e9c50487db012eeeb8fafc92a4751dfd5c583a654ee84638352c1d2";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/pt-PT/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/pt-PT/firefox-127.0.1.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "92eefc83ed6c748bdec86441423bd33061278a98b764d5ef28c4eaf7a9256efb";
+      sha256 = "ce23166b61ba00a56a6691c8ab073983523fcf949fef01c1c468a7b190a260f6";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/rm/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/rm/firefox-127.0.1.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "71cda80240bd2ba45b7d66ac7a31a06e5a2132285cd3148aeaed39953feb2721";
+      sha256 = "ddfcba1b9992e8fb03ced07ace63adc34bb26076ebb838f188bf09bb6ab0b3ef";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/ro/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/ro/firefox-127.0.1.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "8e9268fa43b051519eab3212d90feabe74f50b4f3536fba436f4fc0824df6be5";
+      sha256 = "34a268c70aeae57e2ad079ea26da84746c8d19dd0f0d3319a22c697d4ae78adc";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/ru/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/ru/firefox-127.0.1.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "10e846b452a32a9e14568dbd9f0d00471a09045eee5b0fc265752ac52ee52681";
+      sha256 = "9536e8df6d810ce925ee032f2a297ed7c66a6cec12d743092bd6e6cff8f208fc";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/sat/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/sat/firefox-127.0.1.tar.bz2";
       locale = "sat";
       arch = "linux-i686";
-      sha256 = "fa83bd09a708f8a2aee2e22260fb79606a1d045d8330af3eecc69cb33475f17d";
+      sha256 = "0a22b550ebd4620753e3151df23c5161eebdb6ad006cf7af5c9cc48153c0a0fb";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/sc/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/sc/firefox-127.0.1.tar.bz2";
       locale = "sc";
       arch = "linux-i686";
-      sha256 = "59d1738d837c612f9738dae172197052817890d9640dddbcacb732cff837f88c";
+      sha256 = "a1bee2a69bf591c9b7e802e5eb2f115b27b02c8168ed6e81b80aa3952669789a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/sco/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/sco/firefox-127.0.1.tar.bz2";
       locale = "sco";
       arch = "linux-i686";
-      sha256 = "615cb45683769a02a78cc5158b423e5449977aa325ae0553ae3c1b91097643b4";
+      sha256 = "3daa935271e5c569b7d8a115720c13e1366185a89da15680396587823d7f3dce";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/si/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/si/firefox-127.0.1.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "978b8a33535d159848db81e8d67ea96bcc804917be437c123cd7d72eef644436";
+      sha256 = "2cd15bf9a72b3480a2bbc85b6e5119d873dcc428e1f5b67eebbb67513743b823";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/sk/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/sk/firefox-127.0.1.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "09c76c363fed0b85c603cb6a038863aecc6ec8bd9b6536c5fe46178e94148c82";
+      sha256 = "38b73f9ae7127e85ab6b86798eb16294281a8aff356bc3a2e73374ec0d81639d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/sl/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/sl/firefox-127.0.1.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "9c7e786634ae4de0d1745f302dc8b1bb7f02d25cbdbe0aefd07cd4e387042b03";
+      sha256 = "77b7d3874d4fba89d09de9daeeef67a7dcad39e0a6d210a8c862f549bcf66e47";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/son/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/son/firefox-127.0.1.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha256 = "9049588a9910c85767e4c501d0361be434f678b7390395dd7ed89b3d6127da04";
+      sha256 = "5c44abd114aa9e72e20c33b672801169676cc109798404e8b810ac3ccc472bdd";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/sq/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/sq/firefox-127.0.1.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "73637bf2473d33658fb2650129cfd321e07912ab4396e4fe3b2b96f1c5a2f7d3";
+      sha256 = "32234c70aba6c5c7e0b9dbd712f63d8e59db130ab4ee8d71dc349997bd018dd5";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/sr/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/sr/firefox-127.0.1.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "6ef94639d56fe3542c0df18b0fcd54284b102aaf769949f252f09471c7c5b9cb";
+      sha256 = "f2cdaaf86c87c988222b49ce2029ed95a160313475c72891d404bcb87368c419";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/sv-SE/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/sv-SE/firefox-127.0.1.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "cb6e649a40b53ecaf7460ab1527f37ea69250c7cbae4441aa839b857a858608d";
+      sha256 = "99beb21876bf87123f21b4dc5dd7bb77cc181b86359abae4c45b6749e804170d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/szl/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/szl/firefox-127.0.1.tar.bz2";
       locale = "szl";
       arch = "linux-i686";
-      sha256 = "2fccc546c7fdaa965902618eed57a2a18cea2091130950c483f1b982f972d438";
+      sha256 = "12b10f010720db1034207dbda6fbbfc637f7ed60aae2298ea710d3d2db2b9658";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/ta/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/ta/firefox-127.0.1.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha256 = "52bc70dd238c6b099549b5e704ef12e7655cee23ac577671d27685c479c4045f";
+      sha256 = "c3eeb79eb2e7b7a0dc4951dc9b54b25153c478e9ca86050cbb57e213f5b4037a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/te/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/te/firefox-127.0.1.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha256 = "f819512f4f0428f732115c1587aa876a7374564b606e9581c3d405c9273a8d16";
+      sha256 = "9d32807aa8fed63486fc821b61732206a5e6b1478027bdba68ae46591b165186";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/tg/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/tg/firefox-127.0.1.tar.bz2";
       locale = "tg";
       arch = "linux-i686";
-      sha256 = "278142e32bd078092e69dac8ce8b1d5d88d1d7adc13abf681d6d53c5d97a8784";
+      sha256 = "5168ba7ba0ee6d0b8452234e2cc25529433d0a34eec04b48c43d19358238ee25";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/th/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/th/firefox-127.0.1.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "8443f0793f817568b002aeb436423793108594e2cc43da929ec48079e0fcfd5f";
+      sha256 = "6066b46716c3a0da86e8342597dab33b28ff8a9b02ed5dd2c5ebad0014aa29b7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/tl/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/tl/firefox-127.0.1.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha256 = "d03a4714b86f5f0dfffb1b4780b09862653266eb3736a7b0630784bd3a6c739f";
+      sha256 = "b5a33ebe340aafad7fc4c8dff21f947ada60c517c873f96ea659dfd685e79f72";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/tr/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/tr/firefox-127.0.1.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "1f87ae9443c4fa9a8d4616e2de1fb799c0fa1b95b37070e669db475f5de9be28";
+      sha256 = "52b7df2f462ddaa82c3d2d04e7135fb5ce5f18802bd095dbd98b51d52161d113";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/trs/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/trs/firefox-127.0.1.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha256 = "b9f8c5a2ecd83b4bdd6f5e26037f8aff0d9b2ba7abcae08b7868c15ddcc38def";
+      sha256 = "2f98be6cac9542efef5c0b8404143afe46beb90c702426dcd9b4bf15d8b3560b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/uk/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/uk/firefox-127.0.1.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "566d6daca65e49cb8280dd64716e7ba3b9f00baa995ddfe31f847166ef70eb2f";
+      sha256 = "f5285b7a5dcefd46717cbe5bbbe9e58b6197ace0ef77a3c6bd4e9661cd49c6d5";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/ur/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/ur/firefox-127.0.1.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha256 = "530b7cd6338c09f1c92cf7eb8f0e5fa150d4477913f14257a18567e325d8c64e";
+      sha256 = "2f90f140ffb61f3990bed58bfa238aeccb7b4bc9364b3fe892adfedfa1eb1b08";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/uz/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/uz/firefox-127.0.1.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "b525c6a6ec58ded4b637299832b3f1542d1f17958bc2f9074e05d1e96303d4cd";
+      sha256 = "6efec5797d0e1cb0ef5971d5de550029a507ff8337d3f33baa14ad6cde638040";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/vi/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/vi/firefox-127.0.1.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "dbeebc029258ffc4678ae05aeca5cf43e634413862deb2b10d21fcd96039ca7a";
+      sha256 = "e0a9d3a491019eca75690c814943c326cc3403d1fda9321c7103f38e343a9338";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/xh/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/xh/firefox-127.0.1.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha256 = "05029e34aa21b1b1ee1a02ca13afdc2764cb0757fdaa533a8fdbc633d6bd11ba";
+      sha256 = "ec0e2949de14be425f8d621599a710d1b9e17d0dfa657693f3ef15c599dffa7a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/zh-CN/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/zh-CN/firefox-127.0.1.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "c528f20f5ff5ac5353997f474ff88fb17834e6c913b1e2bf2af9fdaf837bc031";
+      sha256 = "769b437188b4b0869ee385e74898598e07c98b251a948f7a85dd970260540f12";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/126.0/linux-i686/zh-TW/firefox-126.0.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/127.0.1/linux-i686/zh-TW/firefox-127.0.1.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "03edbb562a60417320469ae06a632ec6c302d420a6565f2a25acb3e3b4e7e61d";
+      sha256 = "0ab4ae5fc776cf44b88237fb84c5d13e4676bf330c07bd8d1b3a1d220d12292e";
     }
     ];
 }
diff --git a/pkgs/applications/networking/browsers/firefox/bindgen-0.64-clang-18.patch b/pkgs/applications/networking/browsers/firefox/bindgen-0.64-clang-18.patch
new file mode 100644
index 0000000000000..ee0b916bdcd9c
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox/bindgen-0.64-clang-18.patch
@@ -0,0 +1,39 @@
+From 043ab6ab28df63fd1b3459df5c52fd8c87c0ba21 Mon Sep 17 00:00:00 2001
+From: David Tolnay <dtolnay@gmail.com>
+Date: Tue, 28 Nov 2023 11:21:18 -0800
+Subject: [PATCH] Handle CXCursor_LinkageSpec in Clang 18+
+
+(cherry picked from commit 86f3dbe846020e2ba573d6eb38d1434d0cbcbb40)
+---
+ third_party/rust/bindgen/.cargo-checksum.json | 2 +-
+ third_party/rust/bindgen/ir/item.rs           | 5 +++--
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/third_party/rust/bindgen/.cargo-checksum.json b/third_party/rust/bindgen/.cargo-checksum.json
+index 2242180..88718bd 100644
+--- a/third_party/rust/bindgen/.cargo-checksum.json
++++ b/third_party/rust/bindgen/.cargo-checksum.json
+@@ -1 +1 @@
+-{"files":{"Cargo.toml":"ae6de5b309f8bf07c259436b1113ccf405b2d7dd862e1b289bfef47a550956d1","LICENSE":"c23953d9deb0a3312dbeaf6c128a657f3591acee45067612fa68405eaa4525db","build.rs":"4a9c4ac3759572e17de312a9d3f4ced3b6fd3c71811729e5a8d06bfbd1ac8f82","callbacks.rs":"9cbda648159897f93a07dbe90a1ee9ba92e2b020a02bc9725b87db4d025df3b6","clang.rs":"a38d153516c6685b46723010793b2f4e8b16468f3cd3296781dea6e485cd66da","codegen/bitfield_unit.rs":"fddeaeab5859f4e82081865595b7705f5c0774d997df95fa5c655b81b9cae125","codegen/bitfield_unit_tests.rs":"9df86490de5e9d66ccea583dcb686dd440375dc1a3c3cf89a89d5de3883bf28a","codegen/dyngen.rs":"7d727a737c616f7f2d3a07d825be8baad9078b3f35ad96277904559b4534ffcc","codegen/error.rs":"5e308b8c54b68511fc8ea2ad15ddac510172c4ff460a80a265336440b0c9653d","codegen/helpers.rs":"5f24007a09e50db7bd2b49b07100cfed649c7b22232558e28c99c759d5d14152","codegen/impl_debug.rs":"71d8e28873ba2de466f2637a824746963702f0511728037d72ee5670c51194cb","codegen/impl_partialeq.rs":"f4599e32c66179ae515a6518a3e94b686689cf59f7dd9ab618c3fb69f17d2c77","codegen/mod.rs":"25ef86b9dd894b40724d78b99e2743654f09bb427a23ccf5940a620c6408688e","codegen/postprocessing/merge_extern_blocks.rs":"be5c5ff6d3d3d4e940814c4dc77f8d687aa6b053dcfbd2185c09616ba9022bf2","codegen/postprocessing/mod.rs":"d1e8c2864d5194a4cb2f6731c0ef582a55b363df9c4f888c26942ff37f728e1c","codegen/postprocessing/sort_semantically.rs":"3071dd509f2e5d3dfd99cafa6ee19bbacb9fec1c61a0b3f6e284a75c1f2c3db6","codegen/serialize.rs":"b1d8fff0bd9717ee7ca883fd3f376cf7b93adb65dc5bb89ede467b087e985a5f","codegen/struct_layout.rs":"7dfc814d3c914a0c53d8ed031baf543dab1def5959e8ab85220cad69a506383a","deps.rs":"5ee2332fdb10325f3b0a0c6d9ba94e13eb631ef39e955fa958afc3625bdb5448","extra_assertions.rs":"494534bd4f18b80d89b180c8a93733e6617edcf7deac413e9a73fd6e7bc9ced7","features.rs":"af20bd617cce27f6716ab3d61a1c8ddfaa46227f4a0d435b08a19d5f277cf8ba","ir/analysis/derive.rs":"ec514585eb40f0e3306bf3302aec0152a2e95e8dce13a67c36b5f00c0cbb76ef","ir/analysis/has_destructor.rs":"7a82f01e7e0595a31b56f7c398fa3019b3fe9100a2a73b56768f7e6943dcc3ce","ir/analysis/has_float.rs":"58ea1e38a59ef208400fd65d426cb5b288949df2d383b3a194fa01b99d2a87fa","ir/analysis/has_type_param_in_array.rs":"d1b9eb119dc14f662eb9bd1394c859f485479e4912589709cdd33f6752094e22","ir/analysis/has_vtable.rs":"368cf30fbe3fab7190fab48718b948caac5da8c9e797b709488716b919315636","ir/analysis/mod.rs":"0c10d8eeb26d7e6f4ce18e9dfb74ea1f9deff5cd350298aca3dc1041b17c20c4","ir/analysis/sizedness.rs":"944443d6aab35d2dd80e4f5e59176ac1e1c463ba2f0eb25d33f1d95dfac1a6d0","ir/analysis/template_params.rs":"d3cc41041b1c45e0b5be2c9f3f1cc0c2341481b9ff51589cba2428df4e6a1ea9","ir/annotations.rs":"f79de09803a3f3ccb33e366a10a707da98cd00a56ba18312ea927d6c977220a4","ir/comment.rs":"5dcfab0095d967daad9b2927093fce3786b1a2146171580afbf526ba56855e36","ir/comp.rs":"b7b28b96e4206b3215881d814661c63c5dd182f34b1163d54bcedbe85998cb06","ir/context.rs":"a7608f7d3dd607647f2af5f45fc7c09483d2a694f91265bba353a71652e2d419","ir/derive.rs":"e5581852eec87918901a129284b4965aefc8a19394187a8095779a084f28fabe","ir/dot.rs":"2d79d698e6ac59ce032840e62ff11103abed1d5e9e700cf383b492333eeebe1f","ir/enum_ty.rs":"0b612e0b57112068455eee519f894016d0a8f425d6a67b98c56b858f57d99f4a","ir/function.rs":"60407267473d785ea33ac854a70c8ca34749bc868024270992deca68a951f74c","ir/int.rs":"68a86182743ec338d58e42203364dc7c8970cb7ec3550433ca92f0c9489b4442","ir/item.rs":"880c982df0843cbdff38b9f9c3829a2d863a224e4de2260c41c3ac69e9148ad4","ir/item_kind.rs":"7666a1ff1b8260978b790a08b4139ab56b5c65714a5652bbcec7faa7443adc36","ir/layout.rs":"61a0e4250ceab889606973f930f4d692837a13a69ae2579738ff09843fed3d65","ir/mod.rs":"713cd537434567003197a123cbae679602c715e976d22f7b23dafd0826ea4c70","ir/module.rs":"7cae5561bcf84a5c3b1ee8f1c3336a33b7f44f0d5ffe885fb108289983fe763e","ir/objc.rs":"4eecdb754542d78acea27d2f547d18d49164047e6efaff8a8d283d6c2dc9875b","ir/template.rs":"4f0e3736558aa8ec359cd9749dc48f87bfff494dd195a67b39cfee7d8a7542ef","ir/traversal.rs":"0c37a0898801ad39bffc8dddd1ee8baa61bb7cf4f3fdc25c8fdd56b6c96ada65","ir/ty.rs":"ba0d7b16a1080caf4960cc7dea0d0800365da0dd5c6e735d508ec448e87b1d40","ir/var.rs":"ced3496cf0683fef91ce94aa09b0ee37255db8425ea8634d52bd73b1b5c160f6","lib.rs":"0bed6f10b2dd25753a40e6e7fa11239f08c05be414ad264c6d7e2f7a8b71f1b2","log_stubs.rs":"9f974e041e35c8c7e29985d27ae5cd0858d68f8676d1dc005c6388d7d011707f","parse.rs":"ccb2c506f08123708ae673b8216404fb22b4c951330662f9b7140b412b063260","regex_set.rs":"7dcc1ad52194f057ea00e8ebc9c23c465ffa6761eed6ba41560d2d02e03c43a6","time.rs":"8efe317e7c6b5ba8e0865ce7b49ca775ee8a02590f4241ef62f647fa3c22b68e"},"package":"c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4"}
+\ No newline at end of file
++{"files":{"Cargo.toml":"ae6de5b309f8bf07c259436b1113ccf405b2d7dd862e1b289bfef47a550956d1","LICENSE":"c23953d9deb0a3312dbeaf6c128a657f3591acee45067612fa68405eaa4525db","build.rs":"4a9c4ac3759572e17de312a9d3f4ced3b6fd3c71811729e5a8d06bfbd1ac8f82","callbacks.rs":"9cbda648159897f93a07dbe90a1ee9ba92e2b020a02bc9725b87db4d025df3b6","clang.rs":"a38d153516c6685b46723010793b2f4e8b16468f3cd3296781dea6e485cd66da","codegen/bitfield_unit.rs":"fddeaeab5859f4e82081865595b7705f5c0774d997df95fa5c655b81b9cae125","codegen/bitfield_unit_tests.rs":"9df86490de5e9d66ccea583dcb686dd440375dc1a3c3cf89a89d5de3883bf28a","codegen/dyngen.rs":"7d727a737c616f7f2d3a07d825be8baad9078b3f35ad96277904559b4534ffcc","codegen/error.rs":"5e308b8c54b68511fc8ea2ad15ddac510172c4ff460a80a265336440b0c9653d","codegen/helpers.rs":"5f24007a09e50db7bd2b49b07100cfed649c7b22232558e28c99c759d5d14152","codegen/impl_debug.rs":"71d8e28873ba2de466f2637a824746963702f0511728037d72ee5670c51194cb","codegen/impl_partialeq.rs":"f4599e32c66179ae515a6518a3e94b686689cf59f7dd9ab618c3fb69f17d2c77","codegen/mod.rs":"25ef86b9dd894b40724d78b99e2743654f09bb427a23ccf5940a620c6408688e","codegen/postprocessing/merge_extern_blocks.rs":"be5c5ff6d3d3d4e940814c4dc77f8d687aa6b053dcfbd2185c09616ba9022bf2","codegen/postprocessing/mod.rs":"d1e8c2864d5194a4cb2f6731c0ef582a55b363df9c4f888c26942ff37f728e1c","codegen/postprocessing/sort_semantically.rs":"3071dd509f2e5d3dfd99cafa6ee19bbacb9fec1c61a0b3f6e284a75c1f2c3db6","codegen/serialize.rs":"b1d8fff0bd9717ee7ca883fd3f376cf7b93adb65dc5bb89ede467b087e985a5f","codegen/struct_layout.rs":"7dfc814d3c914a0c53d8ed031baf543dab1def5959e8ab85220cad69a506383a","deps.rs":"5ee2332fdb10325f3b0a0c6d9ba94e13eb631ef39e955fa958afc3625bdb5448","extra_assertions.rs":"494534bd4f18b80d89b180c8a93733e6617edcf7deac413e9a73fd6e7bc9ced7","features.rs":"af20bd617cce27f6716ab3d61a1c8ddfaa46227f4a0d435b08a19d5f277cf8ba","ir/analysis/derive.rs":"ec514585eb40f0e3306bf3302aec0152a2e95e8dce13a67c36b5f00c0cbb76ef","ir/analysis/has_destructor.rs":"7a82f01e7e0595a31b56f7c398fa3019b3fe9100a2a73b56768f7e6943dcc3ce","ir/analysis/has_float.rs":"58ea1e38a59ef208400fd65d426cb5b288949df2d383b3a194fa01b99d2a87fa","ir/analysis/has_type_param_in_array.rs":"d1b9eb119dc14f662eb9bd1394c859f485479e4912589709cdd33f6752094e22","ir/analysis/has_vtable.rs":"368cf30fbe3fab7190fab48718b948caac5da8c9e797b709488716b919315636","ir/analysis/mod.rs":"0c10d8eeb26d7e6f4ce18e9dfb74ea1f9deff5cd350298aca3dc1041b17c20c4","ir/analysis/sizedness.rs":"944443d6aab35d2dd80e4f5e59176ac1e1c463ba2f0eb25d33f1d95dfac1a6d0","ir/analysis/template_params.rs":"d3cc41041b1c45e0b5be2c9f3f1cc0c2341481b9ff51589cba2428df4e6a1ea9","ir/annotations.rs":"f79de09803a3f3ccb33e366a10a707da98cd00a56ba18312ea927d6c977220a4","ir/comment.rs":"5dcfab0095d967daad9b2927093fce3786b1a2146171580afbf526ba56855e36","ir/comp.rs":"b7b28b96e4206b3215881d814661c63c5dd182f34b1163d54bcedbe85998cb06","ir/context.rs":"a7608f7d3dd607647f2af5f45fc7c09483d2a694f91265bba353a71652e2d419","ir/derive.rs":"e5581852eec87918901a129284b4965aefc8a19394187a8095779a084f28fabe","ir/dot.rs":"2d79d698e6ac59ce032840e62ff11103abed1d5e9e700cf383b492333eeebe1f","ir/enum_ty.rs":"0b612e0b57112068455eee519f894016d0a8f425d6a67b98c56b858f57d99f4a","ir/function.rs":"60407267473d785ea33ac854a70c8ca34749bc868024270992deca68a951f74c","ir/int.rs":"68a86182743ec338d58e42203364dc7c8970cb7ec3550433ca92f0c9489b4442","ir/item.rs":"f215cc40c013cdd6151149dd92b73e13a635a1056f5724174c0f0ff7da9286f8","ir/item_kind.rs":"7666a1ff1b8260978b790a08b4139ab56b5c65714a5652bbcec7faa7443adc36","ir/layout.rs":"61a0e4250ceab889606973f930f4d692837a13a69ae2579738ff09843fed3d65","ir/mod.rs":"713cd537434567003197a123cbae679602c715e976d22f7b23dafd0826ea4c70","ir/module.rs":"7cae5561bcf84a5c3b1ee8f1c3336a33b7f44f0d5ffe885fb108289983fe763e","ir/objc.rs":"4eecdb754542d78acea27d2f547d18d49164047e6efaff8a8d283d6c2dc9875b","ir/template.rs":"4f0e3736558aa8ec359cd9749dc48f87bfff494dd195a67b39cfee7d8a7542ef","ir/traversal.rs":"0c37a0898801ad39bffc8dddd1ee8baa61bb7cf4f3fdc25c8fdd56b6c96ada65","ir/ty.rs":"ba0d7b16a1080caf4960cc7dea0d0800365da0dd5c6e735d508ec448e87b1d40","ir/var.rs":"ced3496cf0683fef91ce94aa09b0ee37255db8425ea8634d52bd73b1b5c160f6","lib.rs":"0bed6f10b2dd25753a40e6e7fa11239f08c05be414ad264c6d7e2f7a8b71f1b2","log_stubs.rs":"9f974e041e35c8c7e29985d27ae5cd0858d68f8676d1dc005c6388d7d011707f","parse.rs":"ccb2c506f08123708ae673b8216404fb22b4c951330662f9b7140b412b063260","regex_set.rs":"7dcc1ad52194f057ea00e8ebc9c23c465ffa6761eed6ba41560d2d02e03c43a6","time.rs":"8efe317e7c6b5ba8e0865ce7b49ca775ee8a02590f4241ef62f647fa3c22b68e"},"package":"c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4"}
+\ No newline at end of file
+diff --git a/third_party/rust/bindgen/ir/item.rs b/third_party/rust/bindgen/ir/item.rs
+index 40f6f7d..d443bda 100644
+--- a/third_party/rust/bindgen/ir/item.rs
++++ b/third_party/rust/bindgen/ir/item.rs
+@@ -1427,8 +1427,9 @@ impl Item {
+             }
+         }
+ 
+-        // Guess how does clang treat extern "C" blocks?
+-        if cursor.kind() == CXCursor_UnexposedDecl {
++        // On Clang 18+, extern "C" is reported accurately as a LinkageSpec.
++        // Older LLVM treat it as UnexposedDecl.
++        if cursor.kind() == CXCursor_LinkageSpec || cursor.kind() == CXCursor_UnexposedDecl {
+             Err(ParseError::Recurse)
+         } else {
+             // We allowlist cursors here known to be unhandled, to prevent being
+-- 
+2.44.0
+
diff --git a/pkgs/applications/networking/browsers/firefox/common.nix b/pkgs/applications/networking/browsers/firefox/common.nix
index 56dda27e54c92..81ab6cd1fa17e 100644
--- a/pkgs/applications/networking/browsers/firefox/common.nix
+++ b/pkgs/applications/networking/browsers/firefox/common.nix
@@ -254,9 +254,22 @@ buildStdenv.mkDerivation {
       hash = "sha256-cWOyvjIPUU1tavPRqg61xJ53XE4EJTdsFzadfVxyTyM=";
     })
   ]
+  ++ lib.optionals (lib.versionOlder version "122") [
+    ./bindgen-0.64-clang-18.patch
+  ]
   ++ lib.optionals (lib.versionAtLeast version "122" && lib.versionOlder version "123") [
     ./122.0-libvpx-mozbz1875201.patch
   ]
+  ++ lib.optionals (lib.versionOlder version "123") [
+    (fetchpatch {
+      name = "clang-18.patch";
+      url = "https://hg.mozilla.org/mozilla-central/raw-rev/ba6abbd36b496501cea141e17b61af674a18e279";
+      hash = "sha256-2IpdSyye3VT4VB95WurnyRFtdN1lfVtYpgEiUVhfNjw=";
+    })
+  ]
+  ++ lib.optionals (lib.versionOlder version "115.12") [
+    ./rust-1.78.patch
+  ]
   ++ extraPatches;
 
   postPatch = ''
diff --git a/pkgs/applications/networking/browsers/firefox/packages.nix b/pkgs/applications/networking/browsers/firefox/packages.nix
index 66b0cdf7a9859..c34124cfb1b1b 100644
--- a/pkgs/applications/networking/browsers/firefox/packages.nix
+++ b/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -3,10 +3,10 @@
 {
   firefox = buildMozillaMach rec {
     pname = "firefox";
-    version = "126.0";
+    version = "127.0.1";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
-      sha512 = "56025b051d544ca294911a1d6a66f09945f71012131881b64313dafb579730810a4b091950c90a21d4fd3f393ba23670d8409086e1677d80d0bbbe347c303527";
+      sha512 = "13df770a89b703033601cab56892a2fc62427521936b366893008e68cd1f48d7b18917a3cede23764d024208819037ad0d28c2d4b73b99fdc204cbd53bb1297e";
     };
 
     extraPatches = [
@@ -14,7 +14,7 @@
 
     meta = {
       changelog = "https://www.mozilla.org/en-US/firefox/${version}/releasenotes/";
-      description = "A web browser built from Firefox source tree";
+      description = "Web browser built from Firefox source tree";
       homepage = "http://www.mozilla.com/en-US/firefox/";
       maintainers = with lib.maintainers; [ lovesegfault hexa ];
       platforms = lib.platforms.unix;
@@ -33,16 +33,16 @@
 
   firefox-beta = buildMozillaMach rec {
     pname = "firefox-beta";
-    version = "127.0b2";
+    version = "128.0b3";
     applicationName = "Mozilla Firefox Beta";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
-      sha512 = "ce3bb42674fb5c820ce46a1f86d482d9c7631f1e0f31fe63c0813436cb54b3bbae9b53f397dc6cfc48b28682f720bfd042bb68715a3c653046870f2d50e9ed04";
+      sha512 = "d2519052244dd6d5cad39afcf78e86b17e5f1520f3f182db123997f8d126b048cd6862e92558c8f112224c951f706ccf1ccb2cb19b5221d4a47bc7154f562ab2";
     };
 
     meta = {
       changelog = "https://www.mozilla.org/en-US/firefox/${lib.versions.majorMinor version}beta/releasenotes/";
-      description = "A web browser built from Firefox Beta Release source tree";
+      description = "Web browser built from Firefox Beta Release source tree";
       homepage = "http://www.mozilla.com/en-US/firefox/";
       maintainers = with lib.maintainers; [ jopejoe1 ];
       platforms = lib.platforms.unix;
@@ -62,18 +62,18 @@
 
   firefox-devedition = buildMozillaMach rec {
     pname = "firefox-devedition";
-    version = "127.0b2";
+    version = "128.0b3";
     applicationName = "Mozilla Firefox Developer Edition";
     requireSigning = false;
     branding = "browser/branding/aurora";
     src = fetchurl {
       url = "mirror://mozilla/devedition/releases/${version}/source/firefox-${version}.source.tar.xz";
-      sha512 = "109e834e533db1a815151777170cdc0617a1f725ce8e5af04e63ac9e874edb22a33d51f2d85fcbb0c4132c3884785a54f6ea0ffaf7a0cc764e033fda311c48d6";
+      sha512 = "b1313d35218adac5b81059f605b788188454f064c3192a6bb91a7c7b361fb2e087ac49177c48f23de517551b563489adfc7486bc4e6b95e5ae4aeac49aa5ac97";
     };
 
     meta = {
       changelog = "https://www.mozilla.org/en-US/firefox/${lib.versions.majorMinor version}beta/releasenotes/";
-      description = "A web browser built from Firefox Developer Edition source tree";
+      description = "Web browser built from Firefox Developer Edition source tree";
       homepage = "http://www.mozilla.com/en-US/firefox/";
       maintainers = with lib.maintainers; [ jopejoe1 ];
       platforms = lib.platforms.unix;
@@ -94,16 +94,16 @@
 
   firefox-esr-115 = buildMozillaMach rec {
     pname = "firefox-esr-115";
-    version = "115.11.0esr";
+    version = "115.12.0esr";
     applicationName = "Mozilla Firefox ESR";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
-      sha512 = "0f3a87c99fb008088afd509d9259f893fdd44ea6bf6a5e69806fefb8d355415e81b9e8832a392acb9d0c1c50e4add7f1362a4aaadc35e1d9c2e55baf7136aed8";
+      sha512 = "d98475061d870e0f3aa920b7c0b9b0c1cbdb3f4102f760f1d1c5ea3e45e216c673c8d3662501e7e78af4950a003a519e94b57e9b1eda8d615c159cdf62130e89";
     };
 
     meta = {
       changelog = "https://www.mozilla.org/en-US/firefox/${lib.removeSuffix "esr" version}/releasenotes/";
-      description = "A web browser built from Firefox Extended Support Release source tree";
+      description = "Web browser built from Firefox Extended Support Release source tree";
       homepage = "http://www.mozilla.com/en-US/firefox/";
       maintainers = with lib.maintainers; [ hexa ];
       platforms = lib.platforms.unix;
diff --git a/pkgs/applications/networking/browsers/firefox/rust-1.78.patch b/pkgs/applications/networking/browsers/firefox/rust-1.78.patch
new file mode 100644
index 0000000000000..8484109d5b08d
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox/rust-1.78.patch
@@ -0,0 +1,77 @@
+From 9dd8048e28b65da0b904dfbace482f70ae768fd8 Mon Sep 17 00:00:00 2001
+From: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Tue, 5 Mar 2024 04:12:28 +0100
+Subject: [PATCH] Bug 1882291. Switch to stdarch_arm_neon_intrinsics feature on
+ rust >=1.78. r=glandium
+
+We only need this on ARM32 because the ARM64 intrinsics are stable.
+
+stdarch_arm_neon_intrinsics was split out from stdsimd here:
+https://github.com/rust-lang/stdarch/pull/1486
+
+Differential Revision: https://phabricator.services.mozilla.com/D203039
+---
+ Cargo.lock          | 1 +
+ gfx/qcms/Cargo.toml | 3 +++
+ gfx/qcms/build.rs   | 7 +++++++
+ gfx/qcms/src/lib.rs | 6 ++++--
+ 4 files changed, 15 insertions(+), 2 deletions(-)
+ create mode 100644 gfx/qcms/build.rs
+
+diff --git a/Cargo.lock b/Cargo.lock
+index aba397832e..8f0a879a87 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -4276,6 +4276,7 @@ name = "qcms"
+ version = "0.2.0"
+ dependencies = [
+  "libc",
++ "version_check",
+ ]
+ 
+ [[package]]
+diff --git a/gfx/qcms/Cargo.toml b/gfx/qcms/Cargo.toml
+index e976054a7b..f50d6623a1 100644
+--- a/gfx/qcms/Cargo.toml
++++ b/gfx/qcms/Cargo.toml
+@@ -20,3 +20,6 @@ cmyk = []
+ 
+ [dependencies]
+ libc = {version = "0.2", optional = true }
++
++[build-dependencies]
++version_check = "0.9"
+diff --git a/gfx/qcms/build.rs b/gfx/qcms/build.rs
+new file mode 100644
+index 0000000000..6810a8828e
+--- /dev/null
++++ b/gfx/qcms/build.rs
+@@ -0,0 +1,7 @@
++extern crate version_check as rustc;
++
++fn main() {
++    if rustc::is_min_version("1.78.0").unwrap_or(false) {
++        println!("cargo:rustc-cfg=stdsimd_split");
++    }
++}
+diff --git a/gfx/qcms/src/lib.rs b/gfx/qcms/src/lib.rs
+index c311964ee3..fc496816a8 100644
+--- a/gfx/qcms/src/lib.rs
++++ b/gfx/qcms/src/lib.rs
+@@ -7,9 +7,11 @@
+ #![allow(non_upper_case_globals)]
+ // These are needed for the neon SIMD code and can be removed once the MSRV supports the
+ // instrinsics we use
+-#![cfg_attr(feature = "neon", feature(stdsimd))]
++#![cfg_attr(all(stdsimd_split, target_arch = "arm", feature = "neon"), feature(stdarch_arm_neon_intrinsics))]
++#![cfg_attr(all(stdsimd_split, target_arch = "arm", feature = "neon"), feature(stdarch_arm_feature_detection))]
++#![cfg_attr(all(not(stdsimd_split), target_arch = "arm", feature = "neon"), feature(stdsimd))]
+ #![cfg_attr(
+-    feature = "neon",
++    all(target_arch = "arm", feature = "neon"),
+     feature(arm_target_feature, raw_ref_op)
+ 
+ )]
+-- 
+2.44.0
+
diff --git a/pkgs/applications/networking/browsers/floorp/default.nix b/pkgs/applications/networking/browsers/floorp/default.nix
index 7b015bafbb0fa..ff36607709bc3 100644
--- a/pkgs/applications/networking/browsers/floorp/default.nix
+++ b/pkgs/applications/networking/browsers/floorp/default.nix
@@ -7,7 +7,7 @@
 
 ((buildMozillaMach rec {
   pname = "floorp";
-  packageVersion = "11.13.2";
+  packageVersion = "11.14.1";
   applicationName = "Floorp";
   binaryName = "floorp";
   branding = "browser/branding/official";
@@ -15,14 +15,14 @@
   allowAddonSideload = true;
 
   # Must match the contents of `browser/config/version.txt` in the source tree
-  version = "115.12.0";
+  version = "115.13.0";
 
   src = fetchFromGitHub {
     owner = "Floorp-Projects";
     repo = "Floorp";
     fetchSubmodules = true;
     rev = "v${packageVersion}";
-    hash = "sha256-sFtGtxk3vdR5JoZb1yiITybIfGmOYzKLb9NtbhWjBt8=";
+    hash = "sha256-PhI+hIypPF6W5RJIXhCAXblSJNwgYavfCgdQozDSXG0=";
   };
 
   extraConfigureFlags = [
@@ -31,10 +31,17 @@
     "--with-unsigned-addon-scopes=app,system"
   ];
 
+  extraPostPatch = ''
+    # Fix .desktop files for PWAs generated by Floorp; they hardcode /usr/bin
+    # https://github.com/NixOS/nixpkgs/issues/314115
+    substituteInPlace floorp/browser/base/content/modules/ssb/LinuxSupport.mjs \
+      --replace-fail /usr/bin/floorp floorp
+  '';
+
   updateScript = ./update.sh;
 
   meta = {
-    description = "A fork of Firefox, focused on keeping the Open, Private and Sustainable Web alive, built in Japan";
+    description = "Fork of Firefox, focused on keeping the Open, Private and Sustainable Web alive, built in Japan";
     homepage = "https://floorp.app/";
     maintainers = with lib.maintainers; [ christoph-heiss ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/applications/networking/browsers/gmni/default.nix b/pkgs/applications/networking/browsers/gmni/default.nix
index 51dc9a3df53d2..a17cdab086651 100644
--- a/pkgs/applications/networking/browsers/gmni/default.nix
+++ b/pkgs/applications/networking/browsers/gmni/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "fortify3" ];
 
   meta = with lib; {
-    description = "A Gemini client";
+    description = "Gemini client";
     homepage = "https://git.sr.ht/~sircmpwn/gmni";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ bsima jb55 ];
diff --git a/pkgs/applications/networking/browsers/ladybird/default.nix b/pkgs/applications/networking/browsers/ladybird/default.nix
index 3be88d290040c..85d85ba2476b1 100644
--- a/pkgs/applications/networking/browsers/ladybird/default.nix
+++ b/pkgs/applications/networking/browsers/ladybird/default.nix
@@ -22,11 +22,11 @@
 
 let
   inherit (builtins) elemAt;
-  cldr_version = "44.1.0";
+  cldr_version = "45.0.0";
   cldr-json = fetchzip {
     url = "https://github.com/unicode-org/cldr-json/releases/download/${cldr_version}/cldr-${cldr_version}-json-modern.zip";
     stripRoot = false;
-    hash = "sha256-EbbzaaspKgRT/dsJV3Kf0Dfj8LN9zT+Pl4gk5kiOXWk=";
+    hash = "sha256-BPDvYjlvJMudX/YlS7HrwKEABYx+1KzjiFlLYA5+Oew=";
     postFetch = ''
       echo -n ${cldr_version} > $out/version.txt
     '';
@@ -50,22 +50,24 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "ladybird";
-  version = "0-unstable-2024-03-16";
+  version = "0-unstable-2024-06-04";
 
   src = fetchFromGitHub {
-    owner = "SerenityOS";
-    repo = "serenity";
-    rev = "3a8bde9ef24dace600484b38992fdc7d17bf92c3";
-    hash = "sha256-r8HYcexrOjDYsXuCtROiNY7Rl60pVQBvVQf190gqNuY=";
+    owner = "LadybirdWebBrowser";
+    repo = "ladybird";
+    rev = "c6e9f0e7b5b050ddbb5d735ca9c65458add9b4a5";
+    hash = "sha256-+NDrd0kO9bqXFcCEJFmNwNu5jmf+wT+uUVlmbmCYLw4=";
   };
 
-  sourceRoot = "${finalAttrs.src.name}/Ladybird";
+  patches = [
+    ./nixos-font-path.patch
+  ];
 
   postPatch = ''
-    sed -i '/iconutil/d' CMakeLists.txt
+    sed -i '/iconutil/d' Ladybird/CMakeLists.txt
 
     # Don't set absolute paths in RPATH
-    substituteInPlace ../Meta/CMake/lagom_install_options.cmake \
+    substituteInPlace Meta/CMake/lagom_install_options.cmake \
       --replace-fail "\''${CMAKE_INSTALL_BINDIR}" "bin" \
       --replace-fail "\''${CMAKE_INSTALL_LIBDIR}" "lib"
   '';
@@ -74,6 +76,12 @@ stdenv.mkDerivation (finalAttrs: {
     # Setup caches for LibLocale, LibUnicode, LibTimezone, LibTLS and LibGfx
     # Note that the versions of the input data packages must match the
     # expected version in the package's CMake.
+
+    # Check that the versions match
+    grep -F 'set(CLDR_VERSION "${cldr_version}")' Meta/CMake/locale_data.cmake || (echo cldr_version mismatch && exit 1)
+    grep -F 'set(TZDB_VERSION "${tzdata.version}")' Meta/CMake/time_zone_data.cmake || (echo tzdata.version mismatch && exit 1)
+    grep -F 'set(CACERT_VERSION "${cacert_version}")' Meta/CMake/ca_certificates_data.cmake || (echo cacert_version mismatch && exit 1)
+
     mkdir -p build/Caches
 
     ln -s ${cldr-json} build/Caches/CLDR
@@ -149,7 +157,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A browser using the SerenityOS LibWeb engine with a Qt or Cocoa GUI";
+    description = "Browser using the SerenityOS LibWeb engine with a Qt or Cocoa GUI";
     homepage = "https://ladybird.dev";
     license = licenses.bsd2;
     maintainers = with maintainers; [ fgaz ];
diff --git a/pkgs/applications/networking/browsers/ladybird/nixos-font-path.patch b/pkgs/applications/networking/browsers/ladybird/nixos-font-path.patch
new file mode 100644
index 0000000000000..468eb10b2c313
--- /dev/null
+++ b/pkgs/applications/networking/browsers/ladybird/nixos-font-path.patch
@@ -0,0 +1,12 @@
+diff --git a/Userland/Libraries/LibCore/StandardPaths.cpp b/Userland/Libraries/LibCore/StandardPaths.cpp
+index 77ddbeb9..76481497 100644
+--- a/Userland/Libraries/LibCore/StandardPaths.cpp
++++ b/Userland/Libraries/LibCore/StandardPaths.cpp
+@@ -205,6 +205,7 @@ ErrorOr<Vector<String>> StandardPaths::font_directories()
+         "/Library/Fonts"_string,
+         TRY(String::formatted("{}/Library/Fonts"sv, home_directory())),
+ #    else
++        "/run/current-system/sw/share/X11/fonts"_string,
+         "/usr/share/fonts"_string,
+         "/usr/local/share/fonts"_string,
+         TRY(String::formatted("{}/.local/share/fonts"sv, home_directory())),
diff --git a/pkgs/applications/networking/browsers/lagrange/default.nix b/pkgs/applications/networking/browsers/lagrange/default.nix
index 7892ac2b85454..7a486ec65fe93 100644
--- a/pkgs/applications/networking/browsers/lagrange/default.nix
+++ b/pkgs/applications/networking/browsers/lagrange/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A Beautiful Gemini Client";
+    description = "Beautiful Gemini Client";
     homepage = "https://gmi.skyjake.fi/lagrange/";
     license = licenses.bsd2;
     maintainers = with maintainers; [ sikmir ];
diff --git a/pkgs/applications/networking/browsers/librewolf/default.nix b/pkgs/applications/networking/browsers/librewolf/default.nix
index 6a1d59858d80e..04c253f7d4f1e 100644
--- a/pkgs/applications/networking/browsers/librewolf/default.nix
+++ b/pkgs/applications/networking/browsers/librewolf/default.nix
@@ -15,7 +15,7 @@ in
   inherit (librewolf-src) extraConfigureFlags extraPatches extraPostPatch extraPassthru;
 
   meta = {
-    description = "A fork of Firefox, focused on privacy, security and freedom";
+    description = "Fork of Firefox, focused on privacy, security and freedom";
     homepage = "https://librewolf.net/";
     maintainers = with lib.maintainers; [ dotlambda squalus ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/applications/networking/browsers/librewolf/src.json b/pkgs/applications/networking/browsers/librewolf/src.json
index 45bd8a0efc3b4..67fed12e16538 100644
--- a/pkgs/applications/networking/browsers/librewolf/src.json
+++ b/pkgs/applications/networking/browsers/librewolf/src.json
@@ -1,15 +1,15 @@
 {
-  "packageVersion": "126.0-1",
+  "packageVersion": "127.0-1",
   "source": {
-    "rev": "126.0-1",
-    "sha256": "1q8fjki6rgzrir84y7j2anra2w213bm0g74nw205gja9qsxlassc"
+    "rev": "127.0-1",
+    "sha256": "0zif9b7ky423bg3cf3njyxl465hrbsha1f1hxpdgccql0id5qr7r"
   },
   "settings": {
-    "rev": "e439bde05b2980089b9c8a6f990562dcd9e9ca4a",
-    "sha256": "16fzdpjqz5ih2pjkj698hrqlw4wck4adys4cdfc2kflf6aydk39m"
+    "rev": "1debc2d30949baff2d1e7df23e87900f1987a8ae",
+    "sha256": "12xgjv40mihbyfsah26vvdyb4yirydc1a884v2chnca4f5q00lc2"
   },
   "firefox": {
-    "version": "126.0",
-    "sha512": "56025b051d544ca294911a1d6a66f09945f71012131881b64313dafb579730810a4b091950c90a21d4fd3f393ba23670d8409086e1677d80d0bbbe347c303527"
+    "version": "127.0",
+    "sha512": "5a17bce357e7f445c37540115f2c131ad5a055c0cf04f20bc2eaca18f8d241a99ac76739d172b38f2ad2681633f901a0a15893801082ac5db9e20e31fc8b8291"
   }
 }
diff --git a/pkgs/applications/networking/browsers/links2/default.nix b/pkgs/applications/networking/browsers/links2/default.nix
index f032d54db348a..cbf4f538c4286 100644
--- a/pkgs/applications/networking/browsers/links2/default.nix
+++ b/pkgs/applications/networking/browsers/links2/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "http://links.twibright.com/";
-    description = "A small browser with some graphics support";
+    description = "Small browser with some graphics support";
     maintainers = with maintainers; [ raskin ];
     mainProgram = "links";
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/networking/browsers/litebrowser/default.nix b/pkgs/applications/networking/browsers/litebrowser/default.nix
index 0c2c2b2e9b3c2..b46bde36cb961 100644
--- a/pkgs/applications/networking/browsers/litebrowser/default.nix
+++ b/pkgs/applications/networking/browsers/litebrowser/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     broken = stdenv.cc.isClang;  # https://github.com/litehtml/litebrowser-linux/issues/19
-    description = "A simple browser based on the litehtml engine";
+    description = "Simple browser based on the litehtml engine";
     mainProgram = "litebrowser";
     homepage = "https://github.com/litehtml/litebrowser-linux";
     license = licenses.bsd3;
diff --git a/pkgs/applications/networking/browsers/lynx/default.nix b/pkgs/applications/networking/browsers/lynx/default.nix
index 88943ae846380..88eb19146e8f8 100644
--- a/pkgs/applications/networking/browsers/lynx/default.nix
+++ b/pkgs/applications/networking/browsers/lynx/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A text-mode web browser";
+    description = "Text-mode web browser";
     homepage = "https://lynx.invisible-island.net/";
     mainProgram = "lynx";
     maintainers = with maintainers; [ ];
diff --git a/pkgs/applications/networking/browsers/microsoft-edge/browser.nix b/pkgs/applications/networking/browsers/microsoft-edge/browser.nix
index a142ced14bdfb..71791ac711806 100644
--- a/pkgs/applications/networking/browsers/microsoft-edge/browser.nix
+++ b/pkgs/applications/networking/browsers/microsoft-edge/browser.nix
@@ -188,7 +188,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.microsoft.com/en-us/edge";
-    description = "The web browser from Microsoft";
+    description = "Web browser from Microsoft";
     license = licenses.unfree;
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/browsers/microsoft-edge/default.nix b/pkgs/applications/networking/browsers/microsoft-edge/default.nix
index c99b245cadc0f..c52cb3f44fad7 100644
--- a/pkgs/applications/networking/browsers/microsoft-edge/default.nix
+++ b/pkgs/applications/networking/browsers/microsoft-edge/default.nix
@@ -1,20 +1,20 @@
 {
   beta = import ./browser.nix {
     channel = "beta";
-    version = "125.0.2535.51";
+    version = "126.0.2592.53";
     revision = "1";
-    hash = "sha256-ZOuC4+1Vp+i/vA783h+ilz97YwPwLMwk5eoc2hR5Y9E=";
+    hash = "sha256-d1zqZUhk5C/jrdZngQQlGplrSssE/LUR3/AybStNavE=";
   };
   dev = import ./browser.nix {
     channel = "dev";
-    version = "126.0.2578.1";
+    version = "127.0.2638.2";
     revision = "1";
-    hash = "sha256-L1w8d0IdqCps7BuyL3AWMzPPkZtwLuiA+Z/dWSlEJU8=";
+    hash = "sha256-Bv0X30ilcNBI9pblnrO1QA7ElTPMO5/JmIZIjhldO7Y=";
   };
   stable = import ./browser.nix {
     channel = "stable";
-    version = "125.0.2535.51";
+    version = "125.0.2535.92";
     revision = "1";
-    hash = "sha256-bpI3ePjjJLAoF/+ygXWYV1RY/FxOjs6/V8N0XWcal70=";
+    hash = "sha256-DuVz6+BzGTWZJ4smizIK2dV1OTmv0uTIQpD+yclHDN8=";
   };
 }
diff --git a/pkgs/applications/networking/browsers/mullvad-browser/default.nix b/pkgs/applications/networking/browsers/mullvad-browser/default.nix
index c641a4cc37956..08385de1bff2c 100644
--- a/pkgs/applications/networking/browsers/mullvad-browser/default.nix
+++ b/pkgs/applications/networking/browsers/mullvad-browser/default.nix
@@ -90,7 +90,7 @@ let
       ++ lib.optionals mediaSupport [ ffmpeg ]
   );
 
-  version = "13.0.15";
+  version = "13.0.16";
 
   sources = {
     x86_64-linux = fetchurl {
@@ -102,7 +102,7 @@ let
         "https://tor.eff.org/dist/mullvadbrowser/${version}/mullvad-browser-linux-x86_64-${version}.tar.xz"
         "https://tor.calyxinstitute.org/dist/mullvadbrowser/${version}/mullvad-browser-linux-x86_64-${version}.tar.xz"
       ];
-      hash = "sha256-TypPevAkp1G7GPzBTRUv3N4UJydAqfllNekTsYfiisQ=";
+      hash = "sha256-+8jur2Fc+fhrWO9xyaSuwzUZnLLhTP/uz15+EX6E7K4=";
     };
   };
 
diff --git a/pkgs/applications/networking/browsers/netsurf/browser.nix b/pkgs/applications/networking/browsers/netsurf/browser.nix
index 36f669439d000..cd1b78fc2980f 100644
--- a/pkgs/applications/networking/browsers/netsurf/browser.nix
+++ b/pkgs/applications/networking/browsers/netsurf/browser.nix
@@ -133,7 +133,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://www.netsurf-browser.org/";
-    description = "A free, open source, small web browser";
+    description = "Free, open source, small web browser";
     mainProgram = "netsurf-gtk3";
     longDescription = ''
       NetSurf is a free, open source web browser. It is written in C and
diff --git a/pkgs/applications/networking/browsers/netsurf/libparserutils.nix b/pkgs/applications/networking/browsers/netsurf/libparserutils.nix
index a7db88925768e..73c8448f2604d 100644
--- a/pkgs/applications/networking/browsers/netsurf/libparserutils.nix
+++ b/pkgs/applications/networking/browsers/netsurf/libparserutils.nix
@@ -3,7 +3,7 @@
 , fetchurl
 , perl
 , buildsystem
-, iconv
+, libiconv
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -18,7 +18,8 @@ stdenv.mkDerivation (finalAttrs: {
   buildInputs = [
     perl
     buildsystem
-    iconv
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
+    libiconv
   ];
 
   makeFlags = [
diff --git a/pkgs/applications/networking/browsers/opera/default.nix b/pkgs/applications/networking/browsers/opera/default.nix
index 7c8ebe80a27a3..d5bd6a3e34b98 100644
--- a/pkgs/applications/networking/browsers/opera/default.nix
+++ b/pkgs/applications/networking/browsers/opera/default.nix
@@ -51,11 +51,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "opera";
-  version = "110.0.5130.23";
+  version = "110.0.5130.49";
 
   src = fetchurl {
     url = "${mirror}/${version}/linux/${pname}-stable_${version}_amd64.deb";
-    hash = "sha256-Y1YmTUvXHOXBB5Mei8lX0DCoEkOmgVCPtT1GnTqNTtA=";
+    hash = "sha256-ge2ne11BrODlvbu17G6xaLd4w2mIEsErtIaqlLY4os8=";
   };
 
   unpackPhase = "dpkg-deb -x $src .";
diff --git a/pkgs/applications/networking/browsers/palemoon/bin.nix b/pkgs/applications/networking/browsers/palemoon/bin.nix
index 3a449623a0f61..8a67dc1774641 100644
--- a/pkgs/applications/networking/browsers/palemoon/bin.nix
+++ b/pkgs/applications/networking/browsers/palemoon/bin.nix
@@ -20,7 +20,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "palemoon-bin";
-  version = "33.1.0";
+  version = "33.1.1";
 
   src = finalAttrs.passthru.sources."gtk${if withGTK3 then "3" else "2"}";
 
@@ -158,11 +158,11 @@ stdenv.mkDerivation (finalAttrs: {
     in {
       gtk3 = fetchzip {
         urls = urlRegionVariants "gtk3";
-        hash = "sha256-qjztSvNL7KNFG3sszgk5qH77do0HFQ8YTrgjFi2ZM00=";
+        hash = "sha256-0i0hXC6mC1SY2V6ANMXHS4LZ/HZk8FUsSDQfQUE14IM=";
       };
       gtk2 = fetchzip {
         urls = urlRegionVariants "gtk2";
-        hash = "sha256-q4zAmnCN9SHGb8PthjAx7d5FKq/oAQ8c0R+U1SWqjAA=";
+        hash = "sha256-RnBlCxIsWxm6BbtAS0YKHtix93N6t9jihFItqhtLhRU=";
       };
     };
 
@@ -184,17 +184,14 @@ stdenv.mkDerivation (finalAttrs: {
       )"
 
       for variant in gtk3 gtk2; do
-        # The script will not perform an update when the version attribute is up to date from previous platform run
-        # We need to clear it before each run
-        update-source-version palemoon-bin 0 "${lib.fakeHash}" --source-key="sources.$variant"
-        update-source-version palemoon-bin "$version" --source-key="sources.$variant"
+        update-source-version palemoon-bin "$version" --ignore-same-version --source-key="sources.$variant"
       done
     '';
   };
 
   meta = with lib; {
     homepage = "https://www.palemoon.org/";
-    description = "An Open Source, Goanna-based web browser focusing on efficiency and customization";
+    description = "Open Source, Goanna-based web browser focusing on efficiency and customization";
     longDescription = ''
       Pale Moon is an Open Source, Goanna-based web browser focusing on
       efficiency and customization.
@@ -215,7 +212,7 @@ stdenv.mkDerivation (finalAttrs: {
         # TODO free, redistributable? Has strict limitations on what modifications may be done & shipped by packagers
       }
     ];
-    maintainers = with maintainers; [ AndersonTorres OPNA2608 ];
+    maintainers = with maintainers; [ OPNA2608 ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     mainProgram = "palemoon";
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/browsers/polypane/default.nix b/pkgs/applications/networking/browsers/polypane/default.nix
index d00ce931a26fc..46e09803dbf70 100644
--- a/pkgs/applications/networking/browsers/polypane/default.nix
+++ b/pkgs/applications/networking/browsers/polypane/default.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "polypane";
-  version = "19.0.1";
+  version = "19.0.2";
 
   src = fetchurl {
     url = "https://github.com/firstversionist/${pname}/releases/download/v${version}/${pname}-${version}.AppImage";
     name = "${pname}-${version}.AppImage";
-    sha256 = "sha256-wy+MzuGQ1+Ayj6SgyItKdy6nldTBy3p24xWlgFwcW+0=";
+    sha256 = "sha256-MyQiq2Lo/XtmJ7D1VZXncYWq53Bu3O3WBT/PkdJuEZM=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/applications/networking/browsers/qutebrowser/default.nix b/pkgs/applications/networking/browsers/qutebrowser/default.nix
index 62465e5efd2fb..bfb40dc9bc2d6 100644
--- a/pkgs/applications/networking/browsers/qutebrowser/default.nix
+++ b/pkgs/applications/networking/browsers/qutebrowser/default.nix
@@ -18,15 +18,15 @@
 let
   isQt6 = lib.versions.major qtbase.version == "6";
   pdfjs = let
-    version = "4.0.269";
+    version = "4.2.67";
   in
   fetchzip {
     url = "https://github.com/mozilla/pdf.js/releases/download/v${version}/pdfjs-${version}-dist.zip";
-    hash = "sha256-8gwJUxygcdvERDni/k6WIx3tzk7yb+qHZ4NsfkP0VDo=";
+    hash = "sha256-7kfT3+ZwoGqZ5OwkO9h3DIuBFd0v8fRlcufxoBdcy8c=";
     stripRoot = false;
   };
 
-  version = "3.1.0";
+  version = "3.2.0";
 in
 
 python3.pkgs.buildPythonApplication {
@@ -34,7 +34,7 @@ python3.pkgs.buildPythonApplication {
   inherit version;
   src = fetchurl {
     url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/qutebrowser-${version}.tar.gz";
-    hash = "sha256-UA3MHMoI1rC4FPowbiII4lM1rL4OLPmZ+1GRbg9LLl8=";
+    hash = "sha256-4eGRG5VWI2rKpZ0NGYbWFHlvs2Zz0TljwhZYzWSh8DM=";
   };
 
   # Needs tox
diff --git a/pkgs/applications/networking/browsers/surf/default.nix b/pkgs/applications/networking/browsers/surf/default.nix
index ad1b9a51a4432..ec31a8d1a39c6 100644
--- a/pkgs/applications/networking/browsers/surf/default.nix
+++ b/pkgs/applications/networking/browsers/surf/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple web browser based on WebKitGTK";
+    description = "Simple web browser based on WebKitGTK";
     mainProgram = "surf";
     longDescription = ''
       surf is a simple web browser based on WebKitGTK. It is able to display
diff --git a/pkgs/applications/networking/browsers/tor-browser/default.nix b/pkgs/applications/networking/browsers/tor-browser/default.nix
index 2aa01bfe1b960..508946278f923 100644
--- a/pkgs/applications/networking/browsers/tor-browser/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser/default.nix
@@ -101,7 +101,7 @@ lib.warnIf (useHardenedMalloc != null)
       ++ lib.optionals mediaSupport [ ffmpeg ]
   );
 
-  version = "13.0.15";
+  version = "13.0.16";
 
   sources = {
     x86_64-linux = fetchurl {
@@ -111,7 +111,7 @@ lib.warnIf (useHardenedMalloc != null)
         "https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux-x86_64-${version}.tar.xz"
         "https://tor.calyxinstitute.org/dist/torbrowser/${version}/tor-browser-linux-x86_64-${version}.tar.xz"
       ];
-      hash = "sha256-e2YFrPzle9s/j3+uxFjoK538pLV1u1a4kD6V8RaqpOU=";
+      hash = "sha256-gSV2G9U0fh+PAe/vCInIjssBFk0ciiD6h0rpZUxVzs0=";
     };
 
     i686-linux = fetchurl {
@@ -121,7 +121,7 @@ lib.warnIf (useHardenedMalloc != null)
         "https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux-i686-${version}.tar.xz"
         "https://tor.calyxinstitute.org/dist/torbrowser/${version}/tor-browser-linux-i686-${version}.tar.xz"
       ];
-      hash = "sha256-20C4UuSN2PZ2L3AZv7klNClD4RoThpmnKrpoK9An24w=";
+      hash = "sha256-Lh9rHrqX+eeQ47Z8e9ChRH8qWeDwSbyR5TnNfwHAb9M=";
     };
   };
 
diff --git a/pkgs/applications/networking/browsers/tor-browser/update.nix b/pkgs/applications/networking/browsers/tor-browser/update.nix
index 4edb644d59f91..04b69d8ce208c 100644
--- a/pkgs/applications/networking/browsers/tor-browser/update.nix
+++ b/pkgs/applications/networking/browsers/tor-browser/update.nix
@@ -59,7 +59,6 @@ in writeShellScript "update-${pname}" ''
     sha256=$(grep "${name}-$arch-$version.tar.xz" "$HOME/shasums" | cut -d" " -f1)
     hash=$(nix hash to-sri --type sha256 "$sha256")
 
-    update-source-version "${pname}" "0" "sha256-${lib.fakeSha256}" --source-key="sources.$platform"
-    update-source-version "${pname}" "$version" "$hash" --source-key="sources.$platform"
+    update-source-version "${pname}" "$version" "$hash" --ignore-same-version --source-key="sources.$platform"
   done
 ''
diff --git a/pkgs/applications/networking/browsers/vimb/default.nix b/pkgs/applications/networking/browsers/vimb/default.nix
index a78fcf36f3840..1c15d89eded59 100644
--- a/pkgs/applications/networking/browsers/vimb/default.nix
+++ b/pkgs/applications/networking/browsers/vimb/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
   meta = {
-    description = "A Vim-like browser";
+    description = "Vim-like browser";
     mainProgram = "vimb";
     longDescription = ''
       A fast and lightweight vim like web browser based on the webkit web
diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix
index 3fa1db171d4b2..4b97d01e9d4b2 100644
--- a/pkgs/applications/networking/browsers/vivaldi/default.nix
+++ b/pkgs/applications/networking/browsers/vivaldi/default.nix
@@ -24,7 +24,7 @@ let
   vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
 in stdenv.mkDerivation rec {
   pname = "vivaldi";
-  version = "6.7.3329.31";
+  version = "6.7.3329.41";
 
   suffix = {
     aarch64-linux = "arm64";
@@ -34,8 +34,8 @@ in stdenv.mkDerivation rec {
   src = fetchurl {
     url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}-1_${suffix}.deb";
     hash = {
-      aarch64-linux = "sha256-TxfsI4XMZM3QvyxV48CrOltnRt0LUwZc2auppTvI+0w=";
-      x86_64-linux = "sha256-NRGELYgcJVL+mLdaWmDZCImCX8w9L+9ecGYQgIB1dq4=";
+      aarch64-linux = "sha256-jDAairYILLLiMssBvct+hZ1D2sqTsvV43IxF1UdlwpQ=";
+      x86_64-linux = "sha256-nipvNDc+iHIupUdl2kQIDJhUyVP/dFAUJiAN5jBY38M=";
     }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   };
 
@@ -124,10 +124,11 @@ in stdenv.mkDerivation rec {
   passthru.updateScript = ./update-vivaldi.sh;
 
   meta = with lib; {
-    description = "A Browser for our Friends, powerful and personal";
+    description = "Browser for our Friends, powerful and personal";
     homepage    = "https://vivaldi.com";
     license     = licenses.unfree;
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    mainProgram = "vivaldi";
     maintainers = with maintainers; [ otwieracz badmutex ];
     platforms   = [ "x86_64-linux" "aarch64-linux" ];
   };
diff --git a/pkgs/applications/networking/browsers/vivaldi/update-vivaldi.sh b/pkgs/applications/networking/browsers/vivaldi/update-vivaldi.sh
index 6e1d68f13994b..994257889ee69 100755
--- a/pkgs/applications/networking/browsers/vivaldi/update-vivaldi.sh
+++ b/pkgs/applications/networking/browsers/vivaldi/update-vivaldi.sh
@@ -8,8 +8,7 @@ version=$(curl -sS https://vivaldi.com/download/ | sed -rne 's/.*vivaldi-stable_
 update_hash() {
     url="https://downloads.vivaldi.com/stable/vivaldi-stable_$version-1_$2.deb"
     hash=$(nix hash to-sri --type sha256 $(nix-prefetch-url --type sha256 "$url"))
-    update-source-version vivaldi 0 sha256-BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB= --system=$1
-    update-source-version vivaldi "$version" "$hash" --system=$1
+    update-source-version vivaldi "$version" "$hash" --system=$1 --ignore-same-version
 }
 
 update_hash aarch64-linux arm64
diff --git a/pkgs/applications/networking/browsers/w3m/default.nix b/pkgs/applications/networking/browsers/w3m/default.nix
index 5d2ea47b34c65..acfd83f560867 100644
--- a/pkgs/applications/networking/browsers/w3m/default.nix
+++ b/pkgs/applications/networking/browsers/w3m/default.nix
@@ -94,7 +94,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://w3m.sourceforge.net/";
     changelog = "https://github.com/tats/w3m/blob/v${version}/ChangeLog";
-    description = "A text-mode web browser";
+    description = "Text-mode web browser";
     maintainers = with maintainers; [ anthonyroussel ];
     platforms = platforms.unix;
     license = licenses.mit;
diff --git a/pkgs/applications/networking/browsers/yandex-browser/default.nix b/pkgs/applications/networking/browsers/yandex-browser/default.nix
index 51b662f0ef365..d4fa55f266763 100644
--- a/pkgs/applications/networking/browsers/yandex-browser/default.nix
+++ b/pkgs/applications/networking/browsers/yandex-browser/default.nix
@@ -54,15 +54,15 @@
 
 let
   version = {
-    corporate = "24.1.3.843-1";
-    beta = "24.4.1.918-1";
-    stable = "24.4.1.915-1";
+    corporate = "24.4.3.1073-1";
+    beta = "24.4.1.952-1";
+    stable = "24.4.1.951-1";
   }.${edition};
 
   hash = {
-    corporate = "sha256-rI19YmsC2p2Dsi6Grd8IyNdpjMHWwET3wcVw5r7545M=";
-    beta = "sha256-EQjjaTMPQKaULITEF+MQuY1lRVXuOjyiGWuGQtIpIz0=";
-    stable = "sha256-2IIIADFG9kCtzB0X4AfrFI+btqoUzKwd6NlZt7qtL/M=";
+    corporate = "sha256-f2Q6q3rL+RcVYX46RHRAageF2JKPxmBaV6KHYl5XtN8=";
+    beta = "sha256-WCyjgb5uj9guqyge6giP0wavndorlMG6yacG134xWjw=";
+    stable = "sha256-4AsMpANtMXUS2NCPKI+Ut0tWGurRIpWCmS3PhEi1CGo=";
   }.${edition};
 
   app = {
@@ -165,5 +165,12 @@ in stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     maintainers = with maintainers; [ dan4ik605743 ionutnechita ];
     platforms = [ "x86_64-linux" ];
+
+    knownVulnerabilities = [
+      ''
+      Trusts a Russian government issued CA certificate for some websites.
+      See https://habr.com/en/company/yandex/blog/655185/ (Russian) for details.
+      ''
+    ];
   };
 }
diff --git a/pkgs/applications/networking/calls/default.nix b/pkgs/applications/networking/calls/default.nix
index 92c9978b4a143..77ed9916e16eb 100644
--- a/pkgs/applications/networking/calls/default.nix
+++ b/pkgs/applications/networking/calls/default.nix
@@ -106,11 +106,11 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A phone dialer and call handler";
+    description = "Phone dialer and call handler";
     longDescription = "GNOME Calls is a phone dialer and call handler. Setting NixOS option `programs.calls.enable = true` is recommended.";
     homepage = "https://gitlab.gnome.org/GNOME/calls";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ craigem lheckemann tomfitzhenry ];
+    maintainers = with maintainers; [ craigem lheckemann ];
     platforms = platforms.linux;
     mainProgram = "gnome-calls";
   };
diff --git a/pkgs/applications/networking/circumflex/default.nix b/pkgs/applications/networking/circumflex/default.nix
index 7e719e25c04ca..8fce759acff69 100644
--- a/pkgs/applications/networking/circumflex/default.nix
+++ b/pkgs/applications/networking/circumflex/default.nix
@@ -21,7 +21,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A command line tool for browsing Hacker News in your terminal";
+    description = "Command line tool for browsing Hacker News in your terminal";
     homepage = "https://github.com/bensadeh/circumflex";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ mktip ];
diff --git a/pkgs/applications/networking/cluster/aiac/default.nix b/pkgs/applications/networking/cluster/aiac/default.nix
index 79bf754fa3e28..32207bcd05b05 100644
--- a/pkgs/applications/networking/cluster/aiac/default.nix
+++ b/pkgs/applications/networking/cluster/aiac/default.nix
@@ -2,14 +2,14 @@
 
 buildGoModule rec {
   pname = "aiac";
-  version = "4.2.0";
+  version = "4.3.0";
   excludedPackages = [".ci"];
 
   src = fetchFromGitHub {
     owner = "gofireflyio";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-83htckX3AIgLKxxSIaM3HUJDDv4GrpJsZ7nGln5trKw=";
+    hash = "sha256-6u/TVCLFtcNzmchYw8dhedNRm7Lpl9oi8MpYkLYzFdg=";
   };
 
   vendorHash = "sha256-JWQQUB4/yIDGzWeshtcWnkXQS7jYcDHwG/tef6sBizQ=";
diff --git a/pkgs/applications/networking/cluster/argo-rollouts/default.nix b/pkgs/applications/networking/cluster/argo-rollouts/default.nix
index ade1527b6e426..60d3be84451d1 100644
--- a/pkgs/applications/networking/cluster/argo-rollouts/default.nix
+++ b/pkgs/applications/networking/cluster/argo-rollouts/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "argo-rollouts";
-  version = "1.6.0";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo-rollouts";
     rev = "v${version}";
-    sha256 = "sha256-WJ5vIfQQguwjInS5p+bUYorM90MUAbH8endV/nkgQ00=";
+    sha256 = "sha256-b1oaLVwom06XUCjMF3/O/SdLt2s0MFuF+et6+MO2jBQ=";
   };
 
-  vendorHash = "sha256-vBSS1KMfloK5pvVc8nHE5B8PsVZTS/iA9GyrLaeR6ps=";
+  vendorHash = "sha256-38BLPNc6en70+UxlldmrwtRTMRLh/fCPL6FtuA2ODGM=";
 
   # Disable tests since some test fail because of missing test data
   doCheck = false;
diff --git a/pkgs/applications/networking/cluster/argo/default.nix b/pkgs/applications/networking/cluster/argo/default.nix
index 52012a3617090..61bd14cdc45b7 100644
--- a/pkgs/applications/networking/cluster/argo/default.nix
+++ b/pkgs/applications/networking/cluster/argo/default.nix
@@ -34,16 +34,16 @@ let
 in
 buildGoModule rec {
   pname = "argo";
-  version = "3.5.6";
+  version = "3.5.8";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo";
     rev = "refs/tags/v${version}";
-    hash = "sha256-CcPY9eEpvDTIxilxHI+VBVVRxZy/82fi6uayBrGR/Dc=";
+    hash = "sha256-BYUP/Gu+N8KK9mfjRAXupXqrwfZMZlYPxxuZCmUDFfE=";
   };
 
-  vendorHash = "sha256-ttpDGeANQyrTfRyNGFkmJFpE+nnjz8PZN+0HScBJ1yg=";
+  vendorHash = "sha256-pVOTeH6fq4Gqarjvi7w2wYJ3FSqV6yNZERmOmbVGxLM=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/argocd/default.nix b/pkgs/applications/networking/cluster/argocd/default.nix
index 64cd0aaa24137..6e860d2318c41 100644
--- a/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/pkgs/applications/networking/cluster/argocd/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "argocd";
-  version = "2.11.0";
+  version = "2.11.3";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo-cd";
     rev = "v${version}";
-    hash = "sha256-HVkR5sG3CfTW56pTB15S+w4kwbv7he9Be6RKmpu+E4E=";
+    hash = "sha256-qSrMqByhOitRltYaVjIeubuoTR74x/pQ1Ad+uTPdpJU=";
   };
 
   proxyVendor = true; # darwin/linux hash mismatch
-  vendorHash = "sha256-c0fTUU5zXI0QDo/bAL4v6zjEp0rNvCpQFAGwpgDWDFY=";
+  vendorHash = "sha256-atgNLlHoX+KBtJcYZNqNsYBK0cVGI/k2mXvmcr6wWN4=";
 
   # Set target as ./cmd per cli-local
   # https://github.com/argoproj/argo-cd/blob/master/Makefile#L227
diff --git a/pkgs/applications/networking/cluster/arkade/default.nix b/pkgs/applications/networking/cluster/arkade/default.nix
index 04fdbc871511c..aeac7254ef017 100644
--- a/pkgs/applications/networking/cluster/arkade/default.nix
+++ b/pkgs/applications/networking/cluster/arkade/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "arkade";
-  version = "0.11.12";
+  version = "0.11.15";
 
   src = fetchFromGitHub {
     owner = "alexellis";
     repo = "arkade";
     rev = version;
-    hash = "sha256-tioWLZ1Bd+gC2FvbhrxFPIkOJb9ycx9sGVmh+a/4hwo=";
+    hash = "sha256-tfJ9LTPu8B6xlIkAKmbl2d2GLY9p4VcOQGOC5TTx9Cs=";
   };
 
   CGO_ENABLED = 0;
diff --git a/pkgs/applications/networking/cluster/atlantis/default.nix b/pkgs/applications/networking/cluster/atlantis/default.nix
index 799633712128b..02621add1b8d5 100644
--- a/pkgs/applications/networking/cluster/atlantis/default.nix
+++ b/pkgs/applications/networking/cluster/atlantis/default.nix
@@ -2,20 +2,20 @@
 
 buildGoModule rec {
   pname = "atlantis";
-  version = "0.27.3";
+  version = "0.28.1";
 
   src = fetchFromGitHub {
     owner = "runatlantis";
     repo = "atlantis";
     rev = "v${version}";
-    hash = "sha256-BC4WSyKnDM9RhM+2iU9dBZLbtxDM/UoMmIDTP6DB3no=";
+    hash = "sha256-c9+LPQVgS/nM/SADwTzULEvuB3dAjyAR2VVPQAEHBy0=";
   };
   ldflags = [
     "-X=main.version=${version}"
     "-X=main.date=1970-01-01T00:00:00Z"
   ];
 
-  vendorHash = "sha256-6Di8XLX1rOjVnIA+5kQB59aZ3qRmkjciWD0+GD9Lpzw=";
+  vendorHash = "sha256-eYS7dO9BCnn9p1HgDOt4vliPYLsR0TaNwSpUoMO6eAk=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/networking/cluster/atmos/default.nix b/pkgs/applications/networking/cluster/atmos/default.nix
index 2163adf6d5b26..9fc3a6f742520 100644
--- a/pkgs/applications/networking/cluster/atmos/default.nix
+++ b/pkgs/applications/networking/cluster/atmos/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "atmos";
-  version = "1.72.0";
+  version = "1.79.0";
 
   src = fetchFromGitHub {
     owner = "cloudposse";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-d4TgVSXTqrzgTdpGl1uXIdEvwb0EIgzqiEjOaWYAZgk=";
+    sha256 = "sha256-bYeqeR+3EkEE7DtdQnjvVygssmHzn0WqOb+m0LE4hjo=";
   };
 
-  vendorHash = "sha256-T3FvJfyGseW5vwN/mMCFEjpcpW90MG8QPkmaXJafD4s=";
+  vendorHash = "sha256-jI0gBRRNcL3tkfqPRazp4TdfsUEgdXtUDAujVwH1QMk=";
 
   ldflags = [ "-s" "-w" "-X github.com/cloudposse/atmos/cmd.Version=v${version}" ];
 
diff --git a/pkgs/applications/networking/cluster/bosh-cli/default.nix b/pkgs/applications/networking/cluster/bosh-cli/default.nix
index 9cfee1a86e56d..aa1e18fd5cd88 100644
--- a/pkgs/applications/networking/cluster/bosh-cli/default.nix
+++ b/pkgs/applications/networking/cluster/bosh-cli/default.nix
@@ -8,13 +8,13 @@
 buildGoModule rec {
   pname = "bosh-cli";
 
-  version = "7.5.7";
+  version = "7.6.0";
 
   src = fetchFromGitHub {
     owner = "cloudfoundry";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Ym4qSjLKT3b494IaxMAgrYHMWklHu7Vlc81nFRxAiOc=";
+    sha256 = "sha256-buhRRgwCOVTnlVLzAL4T9ymgMTIcvelHyv6mfPK61eM=";
   };
   vendorHash = null;
 
@@ -34,7 +34,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A command line interface to CloudFoundry BOSH";
+    description = "Command line interface to CloudFoundry BOSH";
     homepage = "https://bosh.io";
     changelog = "https://github.com/cloudfoundry/bosh-cli/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/cilium/default.nix b/pkgs/applications/networking/cluster/cilium/default.nix
index 5353078e1d157..7ea0c3c6905b7 100644
--- a/pkgs/applications/networking/cluster/cilium/default.nix
+++ b/pkgs/applications/networking/cluster/cilium/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "cilium-cli";
-  version = "0.16.7";
+  version = "0.16.10";
 
   src = fetchFromGitHub {
     owner = "cilium";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-+Uxn9yR3D38CuvFeBA62aWLtY4rPrBJoF3tUmgKvKpw=";
+    hash = "sha256-SgAqq9tT4Rtg1AvoUsDvR5cCLIOuHwNUFN2NOheciYw=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/networking/cluster/civo/default.nix b/pkgs/applications/networking/cluster/civo/default.nix
index b3443453245dc..6e4bfdf1afe22 100644
--- a/pkgs/applications/networking/cluster/civo/default.nix
+++ b/pkgs/applications/networking/cluster/civo/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "civo";
-  version = "1.0.83";
+  version = "1.0.87";
 
   src = fetchFromGitHub {
     owner  = "civo";
     repo   = "cli";
     rev    = "v${version}";
-    sha256 = "sha256-jRs8RMdTq5xylcYBN59+JzXlJlTJRp7bJVMvEmvzSnc=";
+    sha256 = "sha256-9uoh0rdBgIONqiGwak9Hvrf3davqcvuB6KbhmyU16fk=";
   };
 
-  vendorHash = "sha256-NYNp4KGcVma4ltkq2SJZJOaeKS0j/X2TlUrOnptxiYE=";
+  vendorHash = "sha256-bEyknQc7TCxbWj7VsjJ2WGz65BG8HaP8ldL2kb+bbtc=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix b/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
index d510549f767be..e1bbb48ea9655 100644
--- a/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
+++ b/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
@@ -36,7 +36,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "The official command line client for Cloud Foundry";
+    description = "Official command line client for Cloud Foundry";
     homepage = "https://github.com/cloudfoundry/cli";
     maintainers = with maintainers; [ ris ];
     mainProgram = "cf";
diff --git a/pkgs/applications/networking/cluster/cmctl/default.nix b/pkgs/applications/networking/cluster/cmctl/default.nix
index 14c92f1b773e7..b2162068058e8 100644
--- a/pkgs/applications/networking/cluster/cmctl/default.nix
+++ b/pkgs/applications/networking/cluster/cmctl/default.nix
@@ -49,7 +49,7 @@ buildGoModule rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A CLI tool for managing cert-manager service on Kubernetes clusters";
+    description = "CLI tool for managing cert-manager service on Kubernetes clusters";
     mainProgram = "cmctl";
     longDescription = ''
       cert-manager adds certificates and certificate issuers as resource types
diff --git a/pkgs/applications/networking/cluster/cni/default.nix b/pkgs/applications/networking/cluster/cni/default.nix
index d5079b36886f9..9ea1600bc06ae 100644
--- a/pkgs/applications/networking/cluster/cni/default.nix
+++ b/pkgs/applications/networking/cluster/cni/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "cni";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "containernetworking";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-32rmfBjPtc9w+B8PIb8sFOIlzZ7PnS6XSZRNLreMVl4=";
+    hash = "sha256-aS7THDTpfNQPw+70ZgFzvurpq/vMKE6xSxJ19ERbtOA=";
   };
 
-  vendorHash = "sha256-JWaQacekMQGT710U5UgiIpmEYgyUCh1uks5eSV5nhWc=";
+  vendorHash = "sha256-5VsJ3Osm9w09t3x0dItC2iWwbPMf/IIBOSqUfcbQKK4=";
 
   subPackages = [
     "./cnitool"
diff --git a/pkgs/applications/networking/cluster/cni/plugins.nix b/pkgs/applications/networking/cluster/cni/plugins.nix
index b0cd31e9de019..830ef080492b2 100644
--- a/pkgs/applications/networking/cluster/cni/plugins.nix
+++ b/pkgs/applications/networking/cluster/cni/plugins.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "cni-plugins";
-  version = "1.5.0";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "containernetworking";
     repo = "plugins";
     rev = "v${version}";
-    hash = "sha256-gJp1w2H+hPSSu1Y4BY9Sa8lLnhpiZJu2Dz9OenYlQFo=";
+    hash = "sha256-Veuv7DwwnSUnz2p5gemqQB9pr05nLLQ6gG4JvqFbZ/U=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/networking/cluster/containerpilot/default.nix b/pkgs/applications/networking/cluster/containerpilot/default.nix
deleted file mode 100644
index a255db568125c..0000000000000
--- a/pkgs/applications/networking/cluster/containerpilot/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
-
-buildGoPackage rec {
-  version = "3.9.0pre";
-  pname = "containerpilot";
-
-  src = fetchFromGitHub {
-    owner = "joyent";
-    repo = pname;
-    rev = "d999b632b0c96d9e27f092dc9f81a9d82dfe0106";
-    sha256 = "0wsc8canr1c9wzr1lv40yixj9l10c66i6d14yrljsyagl2z02v4n";
-  };
-
-  goPackagePath = "github.com/joyent/${pname}";
-  goDeps = ./deps.nix;
-
-  meta = with lib; {
-    homepage = "https://www.joyent.com/containerpilot";
-    description = "An application centric micro-orchestrator.";
-    mainProgram = "containerpilot";
-    platforms = platforms.unix;
-    license = licenses.mpl20;
-    maintainers = with maintainers; [ cpcloud ];
-  };
-}
diff --git a/pkgs/applications/networking/cluster/containerpilot/deps.nix b/pkgs/applications/networking/cluster/containerpilot/deps.nix
deleted file mode 100644
index 9df154389cbc6..0000000000000
--- a/pkgs/applications/networking/cluster/containerpilot/deps.nix
+++ /dev/null
@@ -1,173 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/nix-community/vgo2nix)
-[
-  {
-    goPackagePath = "github.com/beorn7/perks";
-    fetch = {
-      type = "git";
-      url = "https://github.com/beorn7/perks";
-      rev = "4c0e84591b9a";
-      sha256 = "1hrybsql68xw57brzj805xx2mghydpdiysv3gbhr7f5wlxj2514y";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/client9/reopen";
-    fetch = {
-      type = "git";
-      url = "https://github.com/client9/reopen";
-      rev = "1a6ccbeaae3f";
-      sha256 = "0iarv0sn9hb26sr75bwilz3m86kcfad4m5klmzixbd4yw1ipnffa";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/flynn/json5";
-    fetch = {
-      type = "git";
-      url = "https://github.com/flynn/json5";
-      rev = "7620272ed633";
-      sha256 = "1l3rqfis8b72mqwm88lx78d0mbdihyamj8cgg2pa5vfbq49cpydf";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "6a1fa9404c0a";
-      sha256 = "0dsd6vlfdyarn3v822x9p2s94gfi5lhvqc2vm3bqmqjgcik3c51z";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/consul";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/consul";
-      rev = "v1.0.1-rc1";
-      sha256 = "10xqi86n2h39q3qlkxfhnrqwm1bgijs5n2kryaq9yalv5p3qxczg";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/go-cleanhttp";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/go-cleanhttp";
-      rev = "3573b8b52aa7";
-      sha256 = "1pbl6p7w5wp1c70x7fp94h4ynk2ajfa76rqin3d2hq1w2fcb7byr";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/go-rootcerts";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/go-rootcerts";
-      rev = "6bb64b370b90";
-      sha256 = "1a81fcm1i0ji2iva0dcimiichgwpbcb7lx0vyaks87zj5wf04qy9";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/serf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/serf";
-      rev = "91fd53b1d3e6";
-      sha256 = "0p9mhv6w85cxxl95kvl3rk04yif6v5bhf5kxw8i1cphv5kddv7j9";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
-    fetch = {
-      type = "git";
-      url = "https://github.com/matttproud/golang_protobuf_extensions";
-      rev = "v1.0.1";
-      sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/mitchellh/go-homedir";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/go-homedir";
-      rev = "b8bc1bf76747";
-      sha256 = "13ry4lylalkh4g2vny9cxwvryslzyzwp9r92z0b10idhdq3wad1q";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/mitchellh/mapstructure";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/mapstructure";
-      rev = "d2dd02622084";
-      sha256 = "1idj9h0g9z3s21y2hivaf1dknxhpd7yy0kn6wk3311hlr7s543j5";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_golang";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_golang";
-      rev = "v0.8.0";
-      sha256 = "1xqny3147g12n4j03kxm8s9mvdbs3ln6i56c655mybrn9jjy48kd";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_model";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_model";
-      rev = "6f3806018612";
-      sha256 = "1413ibprinxhni51p0755dp57r9wvbw7xgj9nmdaxmhzlqhc86j4";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/common";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/common";
-      rev = "0866df4b85a1";
-      sha256 = "0zw4rxs6zh9vgxz5wwhjnwa6mgac8jh7mb63viircgh08r889chp";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/procfs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/procfs";
-      rev = "e645f4e5aaa8";
-      sha256 = "18hwygbawbqilz7h8fl25xpbciwalkslb4igqn4cr9d8sqp7d3np";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/sirupsen/logrus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sirupsen/logrus";
-      rev = "v1.0.0";
-      sha256 = "0kyvaa4m8w5wijjvrh0amd9bl3sci1vj4y9v9a97sx3rf7xww52l";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "94b76065f2d2";
-      sha256 = "0lxd3gmkvza3mah5m8nncdsgd1y6r25vaz4wzdmrs3i1ikzknn93";
-      moduleDir = "";
-    };
-  }
-]
diff --git a/pkgs/applications/networking/cluster/fetchit/default.nix b/pkgs/applications/networking/cluster/fetchit/default.nix
index a113a5c718f0b..263e52fc7c455 100644
--- a/pkgs/applications/networking/cluster/fetchit/default.nix
+++ b/pkgs/applications/networking/cluster/fetchit/default.nix
@@ -63,7 +63,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A tool to manage the life cycle and configuration of Podman containers";
+    description = "Tool to manage the life cycle and configuration of Podman containers";
     mainProgram = "fetchit";
     longDescription = ''
       FetchIt allows for a GitOps based approach to manage containers running on
diff --git a/pkgs/applications/networking/cluster/flink/default.nix b/pkgs/applications/networking/cluster/flink/default.nix
index ecdd2303e744d..7a9cc6073633f 100644
--- a/pkgs/applications/networking/cluster/flink/default.nix
+++ b/pkgs/applications/networking/cluster/flink/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A distributed stream processing framework";
+    description = "Distributed stream processing framework";
     mainProgram = "flink";
     homepage = "https://flink.apache.org";
     downloadPage = "https://flink.apache.org/downloads.html";
diff --git a/pkgs/applications/networking/cluster/fn-cli/default.nix b/pkgs/applications/networking/cluster/fn-cli/default.nix
index a54c38caa8f45..ea32ad32ce13f 100644
--- a/pkgs/applications/networking/cluster/fn-cli/default.nix
+++ b/pkgs/applications/networking/cluster/fn-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "fn";
-  version = "0.6.33";
+  version = "0.6.34";
 
   src = fetchFromGitHub {
     owner = "fnproject";
     repo = "cli";
     rev = version;
-    hash = "sha256-f8EYiTXS9ByELWWV2EF4jrDamoKRGejKhYVyNscHZvo=";
+    hash = "sha256-rbZySF7DrBN37YIetFXZE/aPSRex5cQnV8FZ0KDQ71k=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/networking/cluster/func/default.nix b/pkgs/applications/networking/cluster/func/default.nix
index 7ddb89d1c0482..c31f5c9b06e1c 100644
--- a/pkgs/applications/networking/cluster/func/default.nix
+++ b/pkgs/applications/networking/cluster/func/default.nix
@@ -37,7 +37,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "The Knative client library and CLI for creating, building, and deploying Knative Functions";
+    description = "Knative client library and CLI for creating, building, and deploying Knative Functions";
     mainProgram = "func";
     homepage = "https://github.com/knative/func";
     changelog = "https://github.com/knative/func/releases/tag/knative-v${version}";
diff --git a/pkgs/applications/networking/cluster/gatekeeper/default.nix b/pkgs/applications/networking/cluster/gatekeeper/default.nix
index 5ddb8409d31f6..604ee8d30010e 100644
--- a/pkgs/applications/networking/cluster/gatekeeper/default.nix
+++ b/pkgs/applications/networking/cluster/gatekeeper/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "gatekeeper";
-  version = "3.16.0";
+  version = "3.16.3";
 
   src = fetchFromGitHub {
     owner = "open-policy-agent";
     repo = "gatekeeper";
     rev = "v${version}";
-    hash = "sha256-IIqucBPuEHymfg7nLmxXMrq1aaB6SFPrczPj4BH8Zyw=";
+    hash = "sha256-G/ELuaUSlyeNcN6v1/xubF+VjvltdLKYmwlYWKzQiuw=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/networking/cluster/glooctl/default.nix b/pkgs/applications/networking/cluster/glooctl/default.nix
index 4a62d357736b6..13f8b9ce64425 100644
--- a/pkgs/applications/networking/cluster/glooctl/default.nix
+++ b/pkgs/applications/networking/cluster/glooctl/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "glooctl";
-  version = "1.16.11";
+  version = "1.16.15";
 
   src = fetchFromGitHub {
     owner = "solo-io";
     repo = "gloo";
     rev = "v${version}";
-    hash = "sha256-3GTSIZRELj8Pdm02SUKSCk6/Q7Hkuggvq+XjJAH9qU0=";
+    hash = "sha256-VWtn0PyGYXURQmEhI0LbhIuEIbFLkhNWWI7c3wdh6H8=";
   };
 
-  vendorHash = "sha256-UyzqKpF2WBj25Bm4MtkF6yjl87A61vGsteBNCjJV178=";
+  vendorHash = "sha256-wLB+sUaSOBb1VLx/iwlU4U6LKakUP+GbhdWfjlvCu84=";
 
   subPackages = [ "projects/gloo/cli/cmd" ];
 
diff --git a/pkgs/applications/networking/cluster/habitat/default.nix b/pkgs/applications/networking/cluster/habitat/default.nix
index 03f6d79a5387b..6830836a7318e 100644
--- a/pkgs/applications/networking/cluster/habitat/default.nix
+++ b/pkgs/applications/networking/cluster/habitat/default.nix
@@ -55,7 +55,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "An application automation framework";
+    description = "Application automation framework";
     homepage = "https://www.habitat.sh";
     changelog = "https://github.com/habitat-sh/habitat/blob/${src.rev}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/hashi-up/default.nix b/pkgs/applications/networking/cluster/hashi-up/default.nix
index de782bef9af1d..60284c1fec286 100644
--- a/pkgs/applications/networking/cluster/hashi-up/default.nix
+++ b/pkgs/applications/networking/cluster/hashi-up/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
   vendorHash = "sha256-dircE3WlDPsPnF+0wT5RG/c4hC8qPs8NaSGM5wpvVlM=";
 
   meta = with lib; {
-    description = "A lightweight utility to install HashiCorp Consul, Nomad, or Vault on any remote Linux host";
+    description = "Lightweight utility to install HashiCorp Consul, Nomad, or Vault on any remote Linux host";
     mainProgram = "hashi-up";
     homepage = "https://github.com/jsiebens/hashi-up";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/cluster/helm-dashboard/default.nix b/pkgs/applications/networking/cluster/helm-dashboard/default.nix
index e0603ff721368..1d7a5447f4cd7 100644
--- a/pkgs/applications/networking/cluster/helm-dashboard/default.nix
+++ b/pkgs/applications/networking/cluster/helm-dashboard/default.nix
@@ -19,7 +19,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" "-X main.version=v${version}" ];
 
   meta = {
-    description = "A simplified way of working with Helm";
+    description = "Simplified way of working with Helm";
     mainProgram = "helm-dashboard";
     longDescription = ''
       Helm Dashboard is an open-source project which offers a UI-driven way to view the installed Helm charts,
diff --git a/pkgs/applications/networking/cluster/helm-docs/default.nix b/pkgs/applications/networking/cluster/helm-docs/default.nix
index dfd3f4f08ea94..a087fb84fe6b5 100644
--- a/pkgs/applications/networking/cluster/helm-docs/default.nix
+++ b/pkgs/applications/networking/cluster/helm-docs/default.nix
@@ -22,7 +22,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/norwoodj/helm-docs";
-    description = "A tool for automatically generating markdown documentation for Helm charts";
+    description = "Tool for automatically generating markdown documentation for Helm charts";
     mainProgram = "helm-docs";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ sagikazarmark ];
diff --git a/pkgs/applications/networking/cluster/helm/chart-testing/default.nix b/pkgs/applications/networking/cluster/helm/chart-testing/default.nix
index 3da904ac5fbc9..a19f5b474f678 100644
--- a/pkgs/applications/networking/cluster/helm/chart-testing/default.nix
+++ b/pkgs/applications/networking/cluster/helm/chart-testing/default.nix
@@ -59,7 +59,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A tool for testing Helm charts";
+    description = "Tool for testing Helm charts";
     homepage = "https://github.com/helm/chart-testing";
     license = licenses.asl20;
     maintainers = with maintainers; [ atkinschang ];
diff --git a/pkgs/applications/networking/cluster/helm/default.nix b/pkgs/applications/networking/cluster/helm/default.nix
index 18e91c340b343..23f40df6e4fae 100644
--- a/pkgs/applications/networking/cluster/helm/default.nix
+++ b/pkgs/applications/networking/cluster/helm/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "kubernetes-helm";
-  version = "3.15.0";
+  version = "3.15.2";
 
   src = fetchFromGitHub {
     owner = "helm";
     repo = "helm";
     rev = "v${version}";
-    sha256 = "sha256-0YBpxXM/+mU0y1lf/h3xFbF5nfbjk6D9qT10IMR9XUY=";
+    sha256 = "sha256-gZfL9ejW9Md5X1S8Zvlc4OpywJfU2rlT+p78imgPjpw=";
   };
-  vendorHash = "sha256-VPahAeeRz3fk1475dlCofiLVAKXMhpvspENmQmlPyPM=";
+  vendorHash = "sha256-2q5IziYSW2FFfRZvWKz6dVnJfauRlE9lRrb4/l2EGC0=";
 
   subPackages = [ "cmd/helm" ];
   ldflags = [
@@ -65,7 +65,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/kubernetes/helm";
-    description = "A package manager for kubernetes";
+    description = "Package manager for kubernetes";
     mainProgram = "helm";
     license = licenses.asl20;
     maintainers = with maintainers; [ rlupton20 edude03 saschagrunert Frostman Chili-Man techknowlogick ];
diff --git a/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix b/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
index 6926b5498b4cc..e0bf652558dee 100644
--- a/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
+++ b/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
@@ -28,7 +28,7 @@ buildGo122Module rec {
   '';
 
   meta = with lib; {
-    description = "A Helm plugin that shows a diff";
+    description = "Helm plugin that shows a diff";
     homepage = "https://github.com/databus23/helm-diff";
     license = licenses.asl20;
     maintainers = with maintainers; [ yurrriq ];
diff --git a/pkgs/applications/networking/cluster/helm/plugins/helm-git.nix b/pkgs/applications/networking/cluster/helm/plugins/helm-git.nix
index 032ccfe8f96a5..2619e8bd40788 100644
--- a/pkgs/applications/networking/cluster/helm/plugins/helm-git.nix
+++ b/pkgs/applications/networking/cluster/helm/plugins/helm-git.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The Helm downloader plugin that provides GIT protocol support";
+    description = "Helm downloader plugin that provides GIT protocol support";
     homepage = "https://github.com/aslafy-z/helm-git";
     license = licenses.mit;
     maintainers = with maintainers; [ flokli ];
diff --git a/pkgs/applications/networking/cluster/helm/plugins/helm-mapkubeapis.nix b/pkgs/applications/networking/cluster/helm/plugins/helm-mapkubeapis.nix
index 21cb8b065e7ee..364cea36b3ea2 100644
--- a/pkgs/applications/networking/cluster/helm/plugins/helm-mapkubeapis.nix
+++ b/pkgs/applications/networking/cluster/helm/plugins/helm-mapkubeapis.nix
@@ -26,7 +26,7 @@ buildGoModule rec {
   '';
 
   meta = {
-    description = "A Helm plugin which maps deprecated or removed Kubernetes APIs in a release to supported APIs";
+    description = "Helm plugin which maps deprecated or removed Kubernetes APIs in a release to supported APIs";
     homepage = "https://github.com/helm/helm-mapkubeapis";
     license = with lib.licenses; [ asl20 ];
     maintainers = with lib.maintainers; [ aos ];
diff --git a/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix b/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix
index 87494186377b1..a3b622fc889d3 100644
--- a/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix
+++ b/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix
@@ -34,7 +34,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A Helm plugin that allows to set up a chart repository using AWS S3";
+    description = "Helm plugin that allows to set up a chart repository using AWS S3";
     homepage = "https://github.com/hypnoglow/helm-s3";
     license = licenses.mit;
     maintainers = with maintainers; [ yurrriq ];
diff --git a/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix b/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix
index 7729ca16881e3..4b215f7f0c1ff 100644
--- a/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix
+++ b/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Helm plugin that helps manage secrets";
+    description = "Helm plugin that helps manage secrets";
     homepage = "https://github.com/jkroepke/helm-secrets";
     license = licenses.asl20;
     maintainers = with maintainers; [ yurrriq ];
diff --git a/pkgs/applications/networking/cluster/helmfile/default.nix b/pkgs/applications/networking/cluster/helmfile/default.nix
index f0fa298e77862..a541f60a18ed5 100644
--- a/pkgs/applications/networking/cluster/helmfile/default.nix
+++ b/pkgs/applications/networking/cluster/helmfile/default.nix
@@ -8,16 +8,16 @@
 
 buildGo122Module rec {
   pname = "helmfile";
-  version = "0.162.0";
+  version = "0.165.0";
 
   src = fetchFromGitHub {
     owner = "helmfile";
     repo = "helmfile";
     rev = "v${version}";
-    hash = "sha256-BiouIaiYveQe0sTgvuf1R1S0qydLpoxWl958zyVFvWE=";
+    hash = "sha256-fXrfthjWaCo0p7NwP9EWa0uFeCCHInzi7h2tgawHlh0=";
   };
 
-  vendorHash = "sha256-z6UfyruXLzcH9iLgsM6Wmb1i8PWrroAbhGi2fphYBoA=";
+  vendorHash = "sha256-nWfj/E3Lg58wZ27LEI91+Ns9lj+unK6xYTEcxdAFOXI=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/hetzner-kube/default.nix b/pkgs/applications/networking/cluster/hetzner-kube/default.nix
index 1519058e8f166..40a0a2a363dbf 100644
--- a/pkgs/applications/networking/cluster/hetzner-kube/default.nix
+++ b/pkgs/applications/networking/cluster/hetzner-kube/default.nix
@@ -40,7 +40,7 @@ buildGoModule rec {
   '';
 
   meta = {
-    description = "A CLI tool for provisioning Kubernetes clusters on Hetzner Cloud";
+    description = "CLI tool for provisioning Kubernetes clusters on Hetzner Cloud";
     mainProgram = "hetzner-kube";
     homepage = "https://github.com/xetys/hetzner-kube";
     license = lib.licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/hubble/default.nix b/pkgs/applications/networking/cluster/hubble/default.nix
index 10c10ec12ddbb..f678343834d45 100644
--- a/pkgs/applications/networking/cluster/hubble/default.nix
+++ b/pkgs/applications/networking/cluster/hubble/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "hubble";
-  version = "0.13.4";
+  version = "0.13.5";
 
   src = fetchFromGitHub {
     owner = "cilium";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-YordxRIZtlYQprAYnH9Qn5ha6y7D52sjEOaRTcd0Z8g=";
+    sha256 = "sha256-0NApMqLjeYOMxEI8tY2zLxccuSD5nHUGNsya+26ghDY=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/networking/cluster/inframap/default.nix b/pkgs/applications/networking/cluster/inframap/default.nix
index 38307cadc7659..e1aca0a9301b5 100644
--- a/pkgs/applications/networking/cluster/inframap/default.nix
+++ b/pkgs/applications/networking/cluster/inframap/default.nix
@@ -4,13 +4,13 @@
 }:
 buildGoModule rec {
   pname = "inframap";
-  version = "0.6.7";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "cycloidio";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Ol2FkCP7Wq7FcwOaDw9d20v4jkNIfewdMErz/kJR0/g=";
+    hash = "sha256-jV9mMJNSsRWdbvHr7OvF1cF2KVqxUEjlM9AaVMxNqBI=";
   };
 
   ldflags = [
@@ -19,10 +19,10 @@ buildGoModule rec {
     "-X github.com/cycloidio/inframap/cmd.Version=${version}"
   ];
 
-  vendorHash = "sha256-fD/u0gYfbhyYWjXtBDtL7zWRu7b7mzpLPEjB+ictP6o=";
+  vendorHash = "sha256-cEKrxuuksMEEVJEZ9/ZU2/MMxWZKlO05DkNX4n3ug/0=";
 
   meta = with lib; {
-    description = "Read your tfstate or HCL to generate a graph specific for each provider, showing only the resources that are most important/relevant.";
+    description = "Read your tfstate or HCL to generate a graph specific for each provider, showing only the resources that are most important/relevant";
     homepage = "https://github.com/cycloidio/inframap";
     license = licenses.mit;
     maintainers = with maintainers; [ urandom ];
diff --git a/pkgs/applications/networking/cluster/istioctl/default.nix b/pkgs/applications/networking/cluster/istioctl/default.nix
index 8c80896d6251b..a4cba0629e6b2 100644
--- a/pkgs/applications/networking/cluster/istioctl/default.nix
+++ b/pkgs/applications/networking/cluster/istioctl/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "istioctl";
-  version = "1.22.0";
+  version = "1.22.1";
 
   src = fetchFromGitHub {
     owner = "istio";
     repo = "istio";
     rev = version;
-    hash = "sha256-xiIuCwzERvy7HFx9CZHen1tz1nwsTMryq5hB0om2dyo=";
+    hash = "sha256-KU0AvGecEvbkQ6PSjCMxpisx5UsFr1gLYXL4GzJ6zrU=";
   };
-  vendorHash = "sha256-de9cPm2MuflsOhFZfZmvZpLYiwt3UBgW+MO1Z2QB4F4=";
+  vendorHash = "sha256-arY8RLlHCPgRWnk6LLXlORiLr7afJj4OhfPMA+9UQ0M=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/networking/cluster/jx/default.nix b/pkgs/applications/networking/cluster/jx/default.nix
index 0bbee5b74ae01..7fe23d3709200 100644
--- a/pkgs/applications/networking/cluster/jx/default.nix
+++ b/pkgs/applications/networking/cluster/jx/default.nix
@@ -1,49 +1,49 @@
-{ stdenv, buildGoModule, fetchFromGitHub, lib, installShellFiles }:
+{ stdenv, buildGoModule, fetchFromGitHub, lib, nix-update-script, go }:
 
 buildGoModule rec {
   pname = "jx";
-  version = "2.1.155";
+  version = "3.10.150";
 
   src = fetchFromGitHub {
     owner = "jenkins-x";
     repo = "jx";
     rev = "v${version}";
-    sha256 = "sha256-kwcmZSOA26XuSgNSHitGaMohalnLobabXf4z3ybSJtk=";
+    sha256 = "sha256-Zck06wbe+hLbecFnfY/udi1s712ilt7j0EdoumohOEI=";
   };
 
-  vendorHash = "sha256-ZtcCBXcJXX9ThzY6T0MhNfDDzRC9PYzRB1VyS4LLXLs=";
+  vendorHash = "sha256-AIaZVkWdNj1Vsrv2k4B5lLE0lOFuiTD7lwS/DikmC14=";
 
-  doCheck = false;
+  subPackages = [ "cmd" ];
 
-  subPackages = [ "cmd/jx" ];
-
-  nativeBuildInputs = [ installShellFiles ];
+  CGO_ENABLED = 0;
 
   ldflags = [
-    "-s -w"
-    "-X github.com/jenkins-x/jx/pkg/version.Version=${version}"
-    "-X github.com/jenkins-x/jx/pkg/version.Revision=${src.rev}"
-    "-X github.com/jenkins-x/jx/pkg/version.GitTreeState=clean"
+    "-s"
+    "-X github.com/jenkins-x/jx/pkg/cmd/version.Version=${version}"
+    "-X github.com/jenkins-x/jx/pkg/cmd/version.Revision=${src.rev}"
+    "-X github.com/jenkins-x/jx/pkg/cmd/version.GoVersion=${go.version}"
+    "-X github.com/jenkins-x/jx/pkg/cmd/version.GitTreeState=clean"
+    "-X github.com/jenkins-x/jx/pkg/cmd/version.BuildDate=''"
   ];
 
   postInstall = ''
-    for shell in bash zsh; do
-      $out/bin/jx completion $shell > jx.$shell
-      installShellCompletion jx.$shell
-    done
+    mv $out/bin/cmd $out/bin/jx
   '';
 
+  passthru.updateScript = nix-update-script { };
+
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "Command line tool for installing and using Jenkins X";
     mainProgram = "jx";
     homepage = "https://jenkins-x.io";
+    changelog = "https://github.com/jenkins-x/jx/releases/tag/v${version}";
     longDescription = ''
       Jenkins X provides automated CI+CD for Kubernetes with Preview
-      Environments on Pull Requests using Jenkins, Knative Build, Prow,
-      Skaffold and Helm.
+      Environments on Pull Requests using using Cloud Native pipelines
+      from Tekton.
     '';
-    license = licenses.asl20 ;
+    license = licenses.asl20;
     maintainers = with maintainers; [ kalbasit ];
     platforms = platforms.linux ++ platforms.darwin;
   };
diff --git a/pkgs/applications/networking/cluster/k0sctl/default.nix b/pkgs/applications/networking/cluster/k0sctl/default.nix
index ff8957db2b2cb..86516de274192 100644
--- a/pkgs/applications/networking/cluster/k0sctl/default.nix
+++ b/pkgs/applications/networking/cluster/k0sctl/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "k0sctl";
-  version = "0.17.8";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "k0sproject";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-QHTVNrPglNDT9CUQWwc6oD7ttwEUBq8WIX49DiAXf8s=";
+    hash = "sha256-bFNlNNc5PGim2yCX8YmWzPp1EzMrsSF3d/E+mf9Pw20=";
   };
 
-  vendorHash = "sha256-6Kj1kHKXbbPMr9thkDTmGYbZvCSW7CvSzASpk6agEpI=";
+  vendorHash = "sha256-pKvb7pKuGfa8Y+FvLwyWcYuuSszLin2+jFCQ7cPkkwQ=";
 
   ldflags = [
     "-s"
@@ -44,7 +44,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A bootstrapping and management tool for k0s clusters.";
+    description = "Bootstrapping and management tool for k0s clusters";
     homepage = "https://k0sproject.io/";
     license = licenses.asl20;
     mainProgram = "k0sctl";
diff --git a/pkgs/applications/networking/cluster/k3d/default.nix b/pkgs/applications/networking/cluster/k3d/default.nix
index fcd97875ff809..2731e237d45fa 100644
--- a/pkgs/applications/networking/cluster/k3d/default.nix
+++ b/pkgs/applications/networking/cluster/k3d/default.nix
@@ -60,7 +60,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/k3d-io/k3d/";
     changelog = "https://github.com/k3d-io/k3d/blob/v${version}/CHANGELOG.md";
-    description = "A helper to run k3s (Lightweight Kubernetes. 5 less than k8s) in a docker container";
+    description = "Helper to run k3s (Lightweight Kubernetes. 5 less than k8s) in a docker container";
     mainProgram = "k3d";
     longDescription = ''
       k3s is the lightweight Kubernetes distribution by Rancher: rancher/k3s
diff --git a/pkgs/applications/networking/cluster/k3s/1_27/chart-versions.nix b/pkgs/applications/networking/cluster/k3s/1_27/chart-versions.nix
deleted file mode 100644
index aaaa3d4c29700..0000000000000
--- a/pkgs/applications/networking/cluster/k3s/1_27/chart-versions.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  traefik-crd = {
-    url = "https://k3s.io/k3s-charts/assets/traefik-crd/traefik-crd-25.0.3+up25.0.0.tgz";
-    sha256 = "1z693i4kd3jyf26ccnb0sxjyxadipl6k13n7jyg5v4y93fv1rpdw";
-  };
-  traefik = {
-    url = "https://k3s.io/k3s-charts/assets/traefik/traefik-25.0.3+up25.0.0.tgz";
-    sha256 = "1a24qlp7c6iri72ka1i37l1lzn13xibrd26dy295z2wzr55gg7if";
-  };
-}
diff --git a/pkgs/applications/networking/cluster/k3s/1_27/versions.nix b/pkgs/applications/networking/cluster/k3s/1_27/versions.nix
deleted file mode 100644
index 508ef6c4139db..0000000000000
--- a/pkgs/applications/networking/cluster/k3s/1_27/versions.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-  k3sVersion = "1.27.13+k3s1";
-  k3sCommit = "b23f142da8589854cc7ee45da08d96b5ad1ee1ff";
-  k3sRepoSha256 = "052998644il0qra7cdpvmy007gw16k2rvyg418m1j02pm9a3zn10";
-  k3sVendorHash = "sha256-rQZZnleRekkU1+I38LmFnnatZPuS+K1jbBwA+Dmc0jo=";
-  chartVersions = import ./chart-versions.nix;
-  k3sRootVersion = "0.12.2";
-  k3sRootSha256 = "1gjynvr350qni5mskgm7pcc7alss4gms4jmkiv453vs8mmma9c9k";
-  k3sCNIVersion = "1.4.0-k3s2";
-  k3sCNISha256 = "17dg6jgjx18nrlyfmkv14dhzxsljz4774zgwz5dchxcf38bvarqa";
-  containerdVersion = "1.7.15-k3s1.27";
-  containerdSha256 = "0bjxw174prhq8izmgrmpyljfxzrj0lh5d0w04g3lyn0rp3kwxqsl";
-  criCtlVersion = "1.26.0-rc.0-k3s1";
-}
diff --git a/pkgs/applications/networking/cluster/k3s/1_28/versions.nix b/pkgs/applications/networking/cluster/k3s/1_28/versions.nix
index 67991dfd6fc76..1778aa32efa90 100644
--- a/pkgs/applications/networking/cluster/k3s/1_28/versions.nix
+++ b/pkgs/applications/networking/cluster/k3s/1_28/versions.nix
@@ -1,8 +1,8 @@
 {
-  k3sVersion = "1.28.9+k3s1";
-  k3sCommit = "289a1a3edbc0f6ee5a7f91bf96aa1ed1b743bd1f";
-  k3sRepoSha256 = "0kms6r10k6v037r5lxxrp90bnynrgyrn61kqnzy2f5avny4blikh";
-  k3sVendorHash = "sha256-iUp2Maua3BnrC4Jq2ij0uOW5gYYZfz6e+TEdDtN0PT8=";
+  k3sVersion = "1.28.10+k3s1";
+  k3sCommit = "a4c5612ea3dd202135e7c691c534c671a7d43690";
+  k3sRepoSha256 = "00r06kc98nvbmaai8m2pbqsl0v6y3kbc3rz3l7lb9wy4qhiyxrww";
+  k3sVendorHash = "sha256-8PbpjPVX+Yimhwbydu9YOTIMRTf/iLG21Ee/QMowp5Y=";
   chartVersions = import ./chart-versions.nix;
   k3sRootVersion = "0.12.2";
   k3sRootSha256 = "1gjynvr350qni5mskgm7pcc7alss4gms4jmkiv453vs8mmma9c9k";
diff --git a/pkgs/applications/networking/cluster/k3s/1_29/versions.nix b/pkgs/applications/networking/cluster/k3s/1_29/versions.nix
index 31dd51fa9ca6b..e06f394df94a0 100644
--- a/pkgs/applications/networking/cluster/k3s/1_29/versions.nix
+++ b/pkgs/applications/networking/cluster/k3s/1_29/versions.nix
@@ -1,8 +1,8 @@
 {
-  k3sVersion = "1.29.4+k3s1";
-  k3sCommit = "94e29e2ef5d79904f730e2024c8d1682b901b2d5";
-  k3sRepoSha256 = "0kkhd2fnlmjanzvwgdclmbg6azw3r1a2lj5207716pavxmb9ld7y";
-  k3sVendorHash = "sha256-wOX+ktGPFYUKLZBK/bQhWWG+SnRCkNYnk3Tz8wpMo5A=";
+  k3sVersion = "1.29.5+k3s1";
+  k3sCommit = "4e53a32306759581f4ed938bcd18b6fa20b83230";
+  k3sRepoSha256 = "169hzl23chs4qblicmqj3j10jg1xdq8s9717bd3pzx7wzz9s9mqw";
+  k3sVendorHash = "sha256-QreiB4JMtfBjHlkAyflQAW2rnfgay62UD6emx8TgUpM=";
   chartVersions = import ./chart-versions.nix;
   k3sRootVersion = "0.13.0";
   k3sRootSha256 = "1jq5f0lm08abx5ikarf92z56fvx4kjpy2nmzaazblb34lajw87vj";
diff --git a/pkgs/applications/networking/cluster/k3s/1_30/versions.nix b/pkgs/applications/networking/cluster/k3s/1_30/versions.nix
index bc7c2d99c62c6..23a3021875752 100644
--- a/pkgs/applications/networking/cluster/k3s/1_30/versions.nix
+++ b/pkgs/applications/networking/cluster/k3s/1_30/versions.nix
@@ -1,8 +1,8 @@
 {
-  k3sVersion = "1.30.0+k3s1";
-  k3sCommit = "14549535f13c63fc239ba055d36d590e68b01503";
-  k3sRepoSha256 = "1dph6clzzanlx7dbdzpamnw7gpw98j850my28lcb3zdzhvhsc74b";
-  k3sVendorHash = "sha256-YBWiIf8F71ibR7sCiYtmsAcY1MsvkhTD/K45tOHQC5w=";
+  k3sVersion = "1.30.1+k3s1";
+  k3sCommit = "80978b5b9a97908c5520c5ee51984e544e168859";
+  k3sRepoSha256 = "085dmq49iwvlxpj9c528nfrvd67snkgpm5drj8ahfjv1nkjp0yy1";
+  k3sVendorHash = "sha256-XtTahFaWnuHzKDI/U4d/j4C4gRxH163MCGEEM4hu/WM=";
   chartVersions = import ./chart-versions.nix;
   k3sRootVersion = "0.13.0";
   k3sRootSha256 = "1jq5f0lm08abx5ikarf92z56fvx4kjpy2nmzaazblb34lajw87vj";
diff --git a/pkgs/applications/networking/cluster/k3s/README.md b/pkgs/applications/networking/cluster/k3s/README.md
index c01a9ceab817f..9ea31423c7dbc 100644
--- a/pkgs/applications/networking/cluster/k3s/README.md
+++ b/pkgs/applications/networking/cluster/k3s/README.md
@@ -1,114 +1,21 @@
-# k3s versions
+# K3s
 
-K3s, Kubernetes, and other clustered software has the property of not being able to update atomically. Most software in nixpkgs, like for example bash, can be updated as part of a "nixos-rebuild switch" without having to worry about the old and the new bash interacting in some way.
+K3s is a simplified [Kubernetes](https://wiki.nixos.org/wiki/Kubernetes) version that bundles  Kubernetes cluster components into a few small binaries optimized for Edge and IoT devices.
 
-K3s/Kubernetes, on the other hand, is typically run across several NixOS machines, and each NixOS machine is updated independently. As such, different versions of the package and NixOS module must maintain compatibility with each other through temporary version skew during updates.
+## Usage
 
-The upstream Kubernetes project [documents this in their version-skew policy](https://kubernetes.io/releases/version-skew-policy/#supported-component-upgrade-order).
+* [Module Usage](docs/USAGE.md).
 
-Within nixpkgs, we strive to maintain a valid "upgrade path" that does not run
-afoul of the upstream version skew policy.
+## Configuration Examples
 
-## Upstream release cadence and support
+* [Nvidia GPU Passthru](docs/examples/NVIDIA.md)
+* [Storage Examples](docs/examples/STORAGE.md)
 
-K3s is built on top of K8s, and typically provides a similar release cadence and support window (simply by cherry-picking over k8s patches). As such, we assume k3s's support lifecycle is identical to upstream K8s.
+## Cluster Maintenance and Troubleshooting
 
-This is documented upstream [here](https://kubernetes.io/releases/patch-releases/#support-period).
+* [Cluster Upkeep](docs/CLUSTER_UPKEEP.md).
 
-In short, a new Kubernetes version is released roughly every 4 months, and each release is supported for a little over 1 year.
+## K3s Package Upkeep
 
-Any version that is not supported by upstream should be dropped from nixpkgs.
-
-## Versions in NixOS releases
-
-NixOS releases should avoid having deprecated software, or making major version upgrades, wherever possible.
-
-As such, we would like to have only the newest K3s version in each NixOS
-release at the time the release branch is branched off, which will ensure the
-K3s version in that release will receive updates for the longest duration
-possible.
-
-However, this conflicts with another desire: we would like people to be able to upgrade between NixOS stable releases without needing to make a large enough k3s version jump that they violate the Kubernetes version skew policy.
-
-To give an example, we may have the following timeline for k8s releases:
-
-(Note, the exact versions and dates may be wrong, this is an illustrative example, reality may differ).
-
-```mermaid
-gitGraph
-    branch k8s
-    commit
-    branch "k8s-1.24"
-    checkout "k8s-1.24"
-    commit id: "1.24.0" tag: "2022-05-03"
-    branch "k8s-1.25"
-    checkout "k8s-1.25"
-    commit id: "1.25.0" tag: "2022-08-23"
-    branch "k8s-1.26"
-    checkout "k8s-1.26"
-    commit id: "1.26.0" tag: "2022-12-08"
-    checkout k8s-1.24
-    commit id: "1.24-EOL" tag: "2023-07-28"
-    checkout k8s-1.25
-    commit id: "1.25-EOL" tag: "2023-10-27"
-    checkout k8s-1.26
-    commit id: "1.26-EOL" tag: "2024-02-28"
-```
-
-(Note: the above graph will render if you view this markdown on GitHub, or when using [mermaid](https://mermaid.js.org/))
-
-In this scenario even though k3s 1.24 is still technically supported when the NixOS 23.05
-release is cut, since it goes EOL before the NixOS 23.11 release is made, we would
-not want to include it. Similarly, k3s 1.25 would go EOL before NixOS 23.11.
-
-As such, we should only include k3s 1.26 in the 23.05 release.
-
-We can then make a similar argument when NixOS 23.11 comes around to not
-include k3s 1.26 or 1.27. However, that means someone upgrading from the NixOS
-22.05 release to the NixOS 23.11 would not have a supported upgrade path.
-
-In order to resolve this issue, we propose backporting not just new patch releases to older NixOS releases, but also new k3s versions, up to one version before the first version that is included in the next NixOS release.
-
-In the above example, where NixOS 23.05 included k3s 1.26, and 23.11 included k3s 1.28, that means we would backport 1.27 to the NixOS 23.05 release, and backport all patches for 1.26 and 1.27.
-This would allow someone to upgrade between those NixOS releases in a supported configuration.
-
-
-## K3s upkeep for nixpkgs maintainers
-
-* After every nixos release, K3s maintainers should remove from `nixos-unstable` all K3s versions that exist in `nixos-stable` except the latest version (to allow decoupling system upgrade from k3s upgrade).
-
-* Whenever adding a new major/minor K3s version to nixpkgs:
-  - update `k3s` alias to the latest version.
-  - add a NixOS release note scheduling the removal of deprecated K3s packages
-  - include migration information from both Kubernetes and K3s projects
-
-* For version patch upgrades, use the K3s update script.
-
-  To execute the update script, from nixpkgs git repository, run:
-
-  > ./pkgs/applications/networking/cluster/k3s/update-script.sh "29"
-
-  "29" being the target minor version to be updated.
-
-  On failure, the update script should be fixed. On failing to fix, open an issue reporting the update script breakage.
-
-  RyanTM bot can automatically do patch upgrades. Update logs are available at: https://r.ryantm.com/log/k3s_1_29/
-
-* When reviewing upgrades, check:
-
-  - At top-level, every K3s version should have the Go compiler pinned according to `go.mod` file.
-
-    Notice the update script does not automatically pin the Go version.
-
-  - K3s passthru.tests (Currently: single-node, multi-node, etcd) works for all architectures (linux-x86_64, aarch64-linux).
-
-    For GitHub CI, [OfBorg](https://github.com/NixOS/ofborg) can be used to test all platforms.
-
-    To test locally, at nixpkgs repository, run:
-    > nix build .#k3s_1_29.passthru.tests.{etcd,single-node,multi-node}
-
-    Replace "29" according to the version that you are testing.
-
-  - Read the nix build logs to check for anything unusual. (Obvious but underrated.)
-
-* Thanks for reading the documentation and your continued contribution.
+* [Package Versioning Rationale](docs/VERSIONING.md)
+* [Package Maintenance Documentation](docs/PKG_UPKEEP.md)
diff --git a/pkgs/applications/networking/cluster/k3s/builder.nix b/pkgs/applications/networking/cluster/k3s/builder.nix
index 247ab0f339daa..52754219efbfd 100644
--- a/pkgs/applications/networking/cluster/k3s/builder.nix
+++ b/pkgs/applications/networking/cluster/k3s/builder.nix
@@ -89,7 +89,7 @@ lib:
 let
 
   baseMeta = with lib; {
-    description = "A lightweight Kubernetes distribution";
+    description = "Lightweight Kubernetes distribution";
     license = licenses.asl20;
     homepage = "https://k3s.io";
     maintainers = with maintainers; [
@@ -272,7 +272,7 @@ let
     '';
 
     meta = baseMeta // {
-      description = "The various binaries that get packaged into the final k3s binary";
+      description = "Various binaries that get packaged into the final k3s binary";
     };
   };
   # Only used for the shim since
@@ -338,6 +338,7 @@ buildGoModule rec {
     util-linux # kubelet wants 'nsenter' from util-linux: https://github.com/kubernetes/kubernetes/issues/26093#issuecomment-705994388
     conntrack-tools
     runc
+    bash
   ];
 
   k3sKillallDeps = [
diff --git a/pkgs/applications/networking/cluster/k3s/default.nix b/pkgs/applications/networking/cluster/k3s/default.nix
index 6e7cfb0d1325c..c8e3fbc926961 100644
--- a/pkgs/applications/networking/cluster/k3s/default.nix
+++ b/pkgs/applications/networking/cluster/k3s/default.nix
@@ -12,17 +12,6 @@ let
   extraArgs = builtins.removeAttrs args [ "callPackage" ];
 in
 {
-  # 1_27 can be built with the same builder as 1_30
-  k3s_1_27 = common (
-    (import ./1_27/versions.nix)
-    // {
-      updateScript = [
-        ./update-script.sh
-        "27"
-      ];
-    }
-  ) extraArgs;
-
   # 1_28 can be built with the same builder as 1_30
   k3s_1_28 = common (
     (import ./1_28/versions.nix)
diff --git a/pkgs/applications/networking/cluster/k3s/docs/CLUSTER_UPKEEP.md b/pkgs/applications/networking/cluster/k3s/docs/CLUSTER_UPKEEP.md
new file mode 100644
index 0000000000000..2542fd78655e5
--- /dev/null
+++ b/pkgs/applications/networking/cluster/k3s/docs/CLUSTER_UPKEEP.md
@@ -0,0 +1,86 @@
+
+# K3s Upkeep for Users
+
+General documentation for the K3s user for cluster tasks and troubleshooting steps.
+
+## Upkeep
+
+### Changing K3s Token
+
+Changing the K3s token requires resetting cluster. To reset the cluster, you must do the following:
+
+#### Stopping K3s
+
+Disabling K3s NixOS module won't stop K3s related dependencies, such as containerd or networking. For stopping everything, either run "k3s-killall.sh" script (available on $PATH under `/run/current-system/sw/bin/k3s-killall.sh`) or reboot host.
+
+### Syncing K3s in multiple hosts
+
+Nix automatically syncs hosts to `configuration.nix`, for syncing configuration.nix's git repository and triggering `nixos-rebuild switch` in multiple hosts, it is commonly used `ansible`, which enables automation of cluster provisioning, upgrade and reset.
+
+### Cluster Reset
+
+As upstream "k3s-uninstall.sh" is yet to be packaged for NixOS, it's necessary to run manual steps for resetting cluster.
+
+Disable K3s instances in **all** hosts:
+
+In NixOS configuration, set:
+```
+ services.k3s.enable = false;
+```
+Rebuild NixOS. This is going to remove K3s service files. But it won't delete K3s data.
+
+To delete K3s files:
+
+Dismount kubelet:
+```
+ KUBELET_PATH=$(mount | grep kubelet | cut -d' ' -f3);
+ ${KUBELET_PATH:+umount $KUBELET_PATH}
+```
+Delete k3s data:
+```
+ rm -rf /etc/rancher/{k3s,node};
+ rm -rf /var/lib/{rancher/k3s,kubelet,longhorn,etcd,cni}
+```
+When using Etcd, Reset Etcd:
+
+Certify **all** K3s instances are stopped, because a single instance can re-seed etcd database with previous cryptographic key.
+
+Disable etcd database in NixOS configuration:
+```
+ services.etcd.enable = false;
+```
+Rebuild NixOS.
+
+Delete etcd files:
+```
+ rm -rf /var/lib/etcd/
+```
+Reboot hosts.
+
+In NixOS configuration:
+```
+ Re-enable Etcd first. Rebuild NixOS. Certify service health. (systemctl status etcd)
+ Re-enable K3s second. Rebuild NixOS. Certify service health. (systemctl status k3s)
+```
+Etcd & K3s cluster will be provisioned new.
+
+Tip: Use Ansible to automate reset routine, like this.
+
+## Troubleshooting
+
+### Raspberry Pi not working
+
+If the k3s.service/k3s server does not start and gives you the error FATA[0000] failed to find memory cgroup (v2) Here's the github issue: https://github.com/k3s-io/k3s/issues/2067 .
+
+To fix the problem, you can add these things to your configuration.nix.
+```
+  boot.kernelParams = [
+    "cgroup_enable=cpuset" "cgroup_memory=1" "cgroup_enable=memory"
+  ];
+```
+
+### FailedKillPod: failed to get network "cbr0" cached result
+
+> KillPodSandboxError: failed to get network "cbr0" cached result: decoding version from network config: unexpected end of JSON input
+
+Workaround: https://github.com/k3s-io/k3s/issues/6185#issuecomment-1581245331
diff --git a/pkgs/applications/networking/cluster/k3s/docs/PKG_UPKEEP.md b/pkgs/applications/networking/cluster/k3s/docs/PKG_UPKEEP.md
new file mode 100644
index 0000000000000..d41ef357da008
--- /dev/null
+++ b/pkgs/applications/networking/cluster/k3s/docs/PKG_UPKEEP.md
@@ -0,0 +1,60 @@
+
+# K3s Upkeep for Maintainers
+
+General documentation for the K3s maintainer and reviewer use for consistency in maintenance processes.
+
+## NixOS Release Maintenance
+
+This process split into two sections and adheres to the versioning policy outlined in [VERSIONING.md](VERSIONING.md).
+
+### Pre-Release
+
+* Prior to the breaking change window of the next release being closed:
+  * `nixos-unstable`: Ensure k3s points to latest versioned release
+  * `nixos-unstable`: Ensure release notes are up to date
+  * `nixos-unstable`: Remove k3s releases which will be end of life upstream prior to end-of-life for the next NixOS stable release are removed with proper deprecation notice (process listed below)
+
+### Post-Release
+
+* For major/minor releases of k3s:
+  * `nixos-unstable`: Create a new versioned k3s package
+  * `nixos-unstable`: Update k3s alias to point to new versioned k3s package
+  * `nixos-unstable`: Add NixOS Release note denoting:
+    * Removal of deprecated K3s packages
+    * Migration information from the Kubernetes and K3s projects
+  * `nixos-stable`: Backport the versioned package
+* For patch releases of existing packages:
+  * `nixos-unstable`: Update package version (process listed below)
+  * `nixos-stable`: Backport package update done to nixos-unstable
+
+## Patch Upgrade Process
+
+Patch upgrades can use the [update script](../update-script.sh) in the root of the package. To update k3s 1.30.x, for example, you can run the following from the root of the nixpkgs git repo:
+
+> ./pkgs/applications/networking/cluster/k3s/update-script.sh "30"
+
+To update another version, just replace the `"30"` with the appropriate minor revision.
+
+If the script should fail, the first goal would be to fix the script. If you are unable to fix the script, open an issue reporting the update script failure with the exact command used and the failure observed.
+
+RyanTM bot can automatically do patch upgrades. Update logs are available at versioned urls, e.g. for 1.30.x: https://r.ryantm.com/log/k3s_1_30
+
+## Package Removal Process
+
+Package removal policy and timelines follow our reasoning in the [versioning documentation](VERSIONING.md#patch-release-support-lifecycle). In order to remove a versioned k3s package, create a PR achieving the following:
+
+* Remove the versioned folder containing the chart and package version files (e.g. `./1_30/`)
+* Remove the package block from [default.nix](../default.nix) (e.g. `k3s_1_30 = ...`)
+* Remove the package reference from [pkgs/top-level/all-packages.nix](/pkgs/top-level/all-packages.nix)
+* Add a deprecation notice in [pkgs/top-level/aliases.nix](/pkgs/top-level/aliases.nix), such as `k3s_1_26 = throw "'k3s_1_26' has been removed from nixpkgs as it has reached end of life"; # Added 2024-05-20`.
+
+## Change Request Review Process
+
+Quick checklist for reviewers of the k3s package:
+
+* Is the version of the Go compiler pinned according to the go.mod file for the release?
+  * Update script will not pin nor change the go version.
+* Do the K3s passthru.tests work for all architectures supported? (linux-x86_64, aarch64-linux)
+  * For GitHub CI, [OfBorg](https://github.com/NixOS/ofborg) can be used to test all platforms.
+  * For Local testing, the following can be run in nixpkgs root on the upgrade branch: `nix build .#k3s_1_29.passthru.tests.{etcd,single-node,multi-node}` (Replace "29" to the version tested)
+* Anything unusual in the nix build logs or test logs?
diff --git a/pkgs/applications/networking/cluster/k3s/docs/USAGE.md b/pkgs/applications/networking/cluster/k3s/docs/USAGE.md
new file mode 100644
index 0000000000000..27c5963bd0b8f
--- /dev/null
+++ b/pkgs/applications/networking/cluster/k3s/docs/USAGE.md
@@ -0,0 +1,57 @@
+# K3s Usage
+
+## Single Node
+
+```
+{
+  networking.firewall.allowedTCPPorts = [
+    6443 # k3s: required so that pods can reach the API server (running on port 6443 by default)
+    # 2379 # k3s, etcd clients: required if using a "High Availability Embedded etcd" configuration
+    # 2380 # k3s, etcd peers: required if using a "High Availability Embedded etcd" configuration
+  ];
+  networking.firewall.allowedUDPPorts = [
+    # 8472 # k3s, flannel: required if using multi-node for inter-node networking
+  ];
+  services.k3s.enable = true;
+  services.k3s.role = "server";
+  services.k3s.extraFlags = toString [
+    # "--kubelet-arg=v=4" # Optionally add additional args to k3s
+  ];
+}
+```
+
+Once the above changes are active, you can access your cluster through `sudo k3s kubectl` (e.g. `sudo k3s kubectl cluster-info`) or by using the generated kubeconfig file in `/etc/rancher/k3s/k3s.yaml`.
+Multi-node setup
+
+## Multi-Node
+
+it is simple to create a cluster of multiple nodes in a highly available setup (all nodes are in the control-plane and are a part of the etcd cluster).
+
+The first node is configured like this:
+```
+{
+  services.k3s = {
+    enable = true;
+    role = "server";
+    token = "<randomized common secret>";
+    clusterInit = true;
+  };
+}
+```
+
+Any other subsequent nodes can be added with a slightly different config:
+
+```
+{
+  services.k3s = {
+    enable = true;
+    role = "server"; # Or "agent" for worker only nodes
+    token = "<randomized common secret>";
+    serverAddr = "https://<ip of first node>:6443";
+  };
+}
+```
+
+For this to work you need to open the aforementioned API, etcd, and flannel ports in the firewall. Official documentation on what ports need to be opened for specific use cases can be found on [k3s' documentation site](https://docs.k3s.io/installation/requirements#inbound-rules-for-k3s-nodes). Note that it is [recommended](https://etcd.io/docs/v3.3/faq/#why-an-odd-number-of-cluster-members) to use an odd number of nodes in such a cluster.
+
+Tip: If you run into connectivity issues between nodes for specific applications (e.g. ingress controller), please verify the firewall settings you have enabled (example under [Single Node](#single-node)) against the documentation for that specific application. In the ingress controller example, you may want to open 443 or 80 depending on your use case.
diff --git a/pkgs/applications/networking/cluster/k3s/docs/VERSIONING.md b/pkgs/applications/networking/cluster/k3s/docs/VERSIONING.md
new file mode 100644
index 0000000000000..c1347b1f861e3
--- /dev/null
+++ b/pkgs/applications/networking/cluster/k3s/docs/VERSIONING.md
@@ -0,0 +1,46 @@
+# Versioning
+
+K3s, Kubernetes, and other clustered software has the property of not being able to update atomically. Most software in nixpkgs, like for example bash, can be updated as part of a "nixos-rebuild switch" without having to worry about the old and the new bash interacting in some way.
+
+K3s/Kubernetes, on the other hand, is typically run across several NixOS machines, and each NixOS machine is updated independently. As such, different versions of the package and NixOS module must maintain compatibility with each other through temporary version skew during updates.
+
+The upstream Kubernetes project [documents this in their version-skew policy](https://kubernetes.io/releases/version-skew-policy/#supported-component-upgrade-order).
+
+Within nixpkgs, we strive to maintain a valid "upgrade path" that does not run
+afoul of the upstream version skew policy.
+
+## Patch Release Support Lifecycle
+
+K3s is built on top of K8s and typically provides a similar release cadence and support window (simply by cherry-picking over k8s patches). As such, we assume k3s's support lifecycle is identical to upstream K8s. The upstream K8s release and support lifecycle, including maintenance and end-of-life dates for current releases, is documented [on their suppport site](https://kubernetes.io/releases/patch-releases/#support-period). A more tabular view of the current support timeline can also be found on [endoflife.date](https://endoflife.date/kubernetes).
+
+In short, a new Kubernetes version is released roughly every 4 months and each release is supported for a little over 1 year.
+
+## Versioning in nixpkgs
+
+There are two package types that are maintained within nixpkgs when we are looking at the `nixos-unstable` branch. A standard `k3s` package and versioned releases such as `k3s_1_28`, `k3s_1_29`, and `k3s_1_30`.
+
+The standard `k3s` package will be updated as new versions of k3s are released upstream. Versioned releases, on the other hand, will follow the path release support lifecycle as detailed in the previous section and be removed from `nixos-unstable` when they are either end-of-life upstream or older than the current `k3s` package in `nixos-stable`.
+
+## Versioning in NixOS Releases
+
+Those same package types are also maintained on the release branches of NixOS, but have some special considerations within a release.
+
+NixOS releases (24.05, 24.11, etc) should avoid having deprecated software or major version upgrades during the support lifecycle of that release wherever possible. As such, each NixOS release should only ever have one version of `k3s` when it is released. An example for the NixOS 24.05 release would be that `k3s` package points to `k3s_1_30` for the full lifecycle of its release with no other versions present at release.
+
+However, this conflicts with our desire for users to be able to upgrade between stable NixOS releases without needing to make a large enough k3s version jump as to violate the skew policy listed previously. Given NixOS 24.05 has 1.30.x as its k3s version and the NixOS 24.11 release would have 1.32.x as its k3s version, we need to provide a way for users to upgrade k3s to 1.32.x before upgrading to the next NixOS stable release.
+
+To be able to achieve the goal above, the k3s maintainers would backport `k3s_1_31` and `k3s_1_32` from `nixos-unstable` to NixOS 24.05 as they release. This means that when NixOS 24.11 is released with only the `k3s` package pointing to `k3s_1_32`, users will have an upgrade path on 24.05 to first upgrade locally to `k3s_1_31` and then to `k3s_1_32` (e.g. pointing `services.k3s.package` from `k3s` to `k3s_1_31`, upgrading the cluster, and repeating the process through versions).
+
+Using the above as the example, a three NixOS release example would look like:
+
+* NixOS 23.11
+  * k3s/k3s_1_27 (Release Version, patches backported)
+  * k3s_1_28 (Backported)
+  * k3s_1_29 (Backported)
+  * k3s_1_30 (Backported)
+* NixOS 24.05
+  * k3s/k3s_1_30 (Release Version, patches backported)
+  * k3s_1_31 (Backported)
+  * k3s_1_32 (Backported)
+* NixOS 24.11
+  * k3s/k3s_1_32 (Release Version, patches backported)
diff --git a/pkgs/applications/networking/cluster/k3s/docs/examples/NVIDIA.md b/pkgs/applications/networking/cluster/k3s/docs/examples/NVIDIA.md
new file mode 100644
index 0000000000000..26ec48e0273c9
--- /dev/null
+++ b/pkgs/applications/networking/cluster/k3s/docs/examples/NVIDIA.md
@@ -0,0 +1,55 @@
+# Nvidia GPU Support
+
+To use Nvidia GPU in the cluster the nvidia-container-runtime and runc are needed. To get the two components it suffices to add the following to the configuration
+
+```
+virtualisation.docker = {
+  enable = true;
+  enableNvidia = true;
+};
+environment.systemPackages = with pkgs; [ docker runc ];
+```
+
+Note, using docker here is a workaround, it will install nvidia-container-runtime and that will cause it to be accessible via /run/current-system/sw/bin/nvidia-container-runtime, currently its not directly accessible in nixpkgs.
+
+You now need to create a new file in `/var/lib/rancher/k3s/agent/etc/containerd/config.toml.tmpl` with the following
+
+```
+{{ template "base" . }}
+
+[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia]
+  privileged_without_host_devices = false
+  runtime_engine = ""
+  runtime_root = ""
+  runtime_type = "io.containerd.runc.v2"
+
+[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia.options]
+  BinaryName = "/run/current-system/sw/bin/nvidia-container-runtime"
+```
+
+Update: As of 12/03/2024 It appears that the last two lines above are added by default, and if the two lines are present (as shown above) it will refuse to start the server. You will need to remove the two lines from that point onward.
+
+Note here we are pointing the nvidia runtime to "/run/current-system/sw/bin/nvidia-container-runtime".
+
+Now apply the following runtime class to k3s cluster:
+
+```
+apiVersion: node.k8s.io/v1
+handler: nvidia
+kind: RuntimeClass
+metadata:
+  labels:
+    app.kubernetes.io/component: gpu-operator
+  name: nvidia
+```
+
+Following [k8s-device-plugin](https://github.com/NVIDIA/k8s-device-plugin#deployment-via-helm) install the helm chart with `runtimeClassName: nvidia` set. In order to passthrough the nvidia card into the container, your deployments spec must contain - runtimeClassName: nvidia - env:
+
+```
+   - name: NVIDIA_VISIBLE_DEVICES
+     value: all
+   - name: NVIDIA_DRIVER_CAPABILITIES
+     value: all
+```
+
+to test its working exec onto a pod and run nvidia-smi. For more configurability of nvidia related matters in k3s look in [k3s-docs](https://docs.k3s.io/advanced#nvidia-container-runtime-support).
diff --git a/pkgs/applications/networking/cluster/k3s/docs/examples/STORAGE.md b/pkgs/applications/networking/cluster/k3s/docs/examples/STORAGE.md
new file mode 100644
index 0000000000000..fc9a6440ff9ae
--- /dev/null
+++ b/pkgs/applications/networking/cluster/k3s/docs/examples/STORAGE.md
@@ -0,0 +1,122 @@
+# Storage Examples
+
+The following are some NixOS specific considerations for specific storage mechanisms with kubernetes/k3s.
+
+## Longhorn
+
+NixOS configuration required for Longhorn:
+
+```
+environment.systemPackages = [ pkgs.nfs-utils ];
+services.openiscsi = {
+  enable = true;
+  name = "${config.networking.hostName}-initiatorhost";
+};
+```
+
+Longhorn container has trouble with NixOS path. Solution is to override PATH environment variable, such as:
+
+```
+PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/run/wrappers/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin
+```
+
+**Kyverno Policy for Fixing Longhorn Container for NixOS**
+
+```
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: longhorn-nixos-path
+  namespace: longhorn-system
+data:
+  PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/run/wrappers/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin
+---
+apiVersion: kyverno.io/v1
+kind: ClusterPolicy
+metadata:
+  name: longhorn-add-nixos-path
+  annotations:
+    policies.kyverno.io/title: Add Environment Variables from ConfigMap
+    policies.kyverno.io/subject: Pod
+    policies.kyverno.io/category: Other
+    policies.kyverno.io/description: >-
+      Longhorn invokes executables on the host system, and needs
+      to be aware of the host systems PATH. This modifies all
+      deployments such that the PATH is explicitly set to support
+      NixOS based systems.
+spec:
+  rules:
+    - name: add-env-vars
+      match:
+        resources:
+          kinds:
+            - Pod
+          namespaces:
+            - longhorn-system
+      mutate:
+        patchStrategicMerge:
+          spec:
+            initContainers:
+              - (name): "*"
+                envFrom:
+                  - configMapRef:
+                      name: longhorn-nixos-path
+            containers:
+              - (name): "*"
+                envFrom:
+                  - configMapRef:
+                      name: longhorn-nixos-path
+---
+```
+
+## NFS
+
+NixOS configuration required for NFS:
+
+```
+boot.supportedFilesystems = [ "nfs" ];
+services.rpcbind.enable = true;
+```
+
+## Rook/Ceph
+
+In order to support Rook/Ceph, the following NixOS kernelModule configuration is required:
+
+```
+  boot.kernelModules = [ "rbd" ];
+```
+
+## ZFS Snapshot Support
+
+K3s's builtin containerd does not support the zfs snapshotter. However, it is possible to configure it to use an external containerd:
+
+```
+virtualisation.containerd = {
+  enable = true;
+  settings =
+    let
+      fullCNIPlugins = pkgs.buildEnv {
+        name = "full-cni";
+        paths = with pkgs;[
+          cni-plugins
+          cni-plugin-flannel
+        ];
+      };
+    in {
+      plugins."io.containerd.grpc.v1.cri".cni = {
+        bin_dir = "${fullCNIPlugins}/bin";
+        conf_dir = "/var/lib/rancher/k3s/agent/etc/cni/net.d/";
+      };
+      # Optionally set private registry credentials here instead of using /etc/rancher/k3s/registries.yaml
+      # plugins."io.containerd.grpc.v1.cri".registry.configs."registry.example.com".auth = {
+      #  username = "";
+      #  password = "";
+      # };
+    };
+};
+# TODO describe how to enable zfs snapshotter in containerd
+services.k3s.extraFlags = toString [
+  "--container-runtime-endpoint unix:///run/containerd/containerd.sock"
+];
+```
diff --git a/pkgs/applications/networking/cluster/k3sup/default.nix b/pkgs/applications/networking/cluster/k3sup/default.nix
index d5ac78ea5c4c6..454f2ae88a48a 100644
--- a/pkgs/applications/networking/cluster/k3sup/default.nix
+++ b/pkgs/applications/networking/cluster/k3sup/default.nix
@@ -9,13 +9,13 @@
 
 buildGoModule rec {
   pname = "k3sup";
-  version = "0.13.0";
+  version = "0.13.6";
 
   src = fetchFromGitHub {
     owner = "alexellis";
     repo = "k3sup";
     rev = version;
-    sha256 = "sha256-GppNYNqX/YqRtCYQIe3t2x6eNJCZc/yi6F2xHvA3YXE=";
+    sha256 = "sha256-ngC1yT0pV/ygGzNTYz71qf8V19hqvz3XP7CP8saGwCI=";
   };
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
@@ -23,7 +23,7 @@ buildGoModule rec {
   vendorHash = null;
 
   postConfigure = ''
-    substituteInPlace vendor/github.com/alexellis/go-execute/pkg/v1/exec.go \
+    substituteInPlace vendor/github.com/alexellis/go-execute/v2/exec.go \
       --replace "/bin/bash" "${bash}/bin/bash"
   '';
 
diff --git a/pkgs/applications/networking/cluster/k9s/default.nix b/pkgs/applications/networking/cluster/k9s/default.nix
index 274bff5d253fe..c83566170d0f3 100644
--- a/pkgs/applications/networking/cluster/k9s/default.nix
+++ b/pkgs/applications/networking/cluster/k9s/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "k9s";
-  version = "0.32.4";
+  version = "0.32.5";
 
   src = fetchFromGitHub {
     owner = "derailed";
     repo = "k9s";
     rev = "v${version}";
-    hash = "sha256-0MAnN1ekzHLs25EspDN3xacmDvwXGwKO/5RsCMMwTI8=";
+    hash = "sha256-H0PimkPXs2/iirOpN82az3Bge71k1RZOhMtr0UmGOy8=";
   };
 
   ldflags = [
@@ -23,7 +23,7 @@ buildGoModule rec {
 
   proxyVendor = true;
 
-  vendorHash = "sha256-Eaz56iU862KDAlVPuMo8qPuWSFCxEFcJ3Qubl9TUiyI=";
+  vendorHash = "sha256-U/tIsYpoog3S8V2yQGGqaQ+Av7TfvCYt3zn74qWuQKs=";
 
   # TODO investigate why some config tests are failing
   doCheck = !(stdenv.isDarwin && stdenv.isAarch64);
diff --git a/pkgs/applications/networking/cluster/kaniko/default.nix b/pkgs/applications/networking/cluster/kaniko/default.nix
index 63fa87034e828..22875f86c161c 100644
--- a/pkgs/applications/networking/cluster/kaniko/default.nix
+++ b/pkgs/applications/networking/cluster/kaniko/default.nix
@@ -9,13 +9,13 @@
 
 buildGoModule rec {
   pname = "kaniko";
-  version = "1.23.0";
+  version = "1.23.1";
 
   src = fetchFromGitHub {
     owner = "GoogleContainerTools";
     repo = "kaniko";
     rev = "v${version}";
-    hash = "sha256-HHnPO2ItQKtodTxdZzxVU9GS45cd6fnlY8PLTTfqCVg=";
+    hash = "sha256-0FHhyUPZFddruZ3YV5SYB0b/bb0C+IVQpgIRaCoA1z8=";
   };
 
   vendorHash = null;
@@ -43,7 +43,7 @@ buildGoModule rec {
   };
 
   meta = {
-    description = "A tool to build container images from a Dockerfile, inside a container or Kubernetes cluster";
+    description = "Tool to build container images from a Dockerfile, inside a container or Kubernetes cluster";
     homepage = "https://github.com/GoogleContainerTools/kaniko";
     license = lib.licenses.asl20;
     platforms = lib.platforms.linux;
diff --git a/pkgs/applications/networking/cluster/kconf/default.nix b/pkgs/applications/networking/cluster/kconf/default.nix
index 8813327a60905..2586b1a07fafb 100644
--- a/pkgs/applications/networking/cluster/kconf/default.nix
+++ b/pkgs/applications/networking/cluster/kconf/default.nix
@@ -18,7 +18,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "An opinionated command line tool for managing multiple kubeconfigs";
+    description = "Opinionated command line tool for managing multiple kubeconfigs";
     mainProgram = "kconf";
     homepage = "https://github.com/particledecay/kconf";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/cluster/kluctl/default.nix b/pkgs/applications/networking/cluster/kluctl/default.nix
index 601be5ff6d1d7..7f8664fd81741 100644
--- a/pkgs/applications/networking/cluster/kluctl/default.nix
+++ b/pkgs/applications/networking/cluster/kluctl/default.nix
@@ -30,7 +30,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "The missing glue to put together large Kubernetes deployments";
+    description = "Missing glue to put together large Kubernetes deployments";
     mainProgram = "kluctl";
     homepage = "https://kluctl.io/";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kn/default.nix b/pkgs/applications/networking/cluster/kn/default.nix
index 3face97137cca..5f7f7ad160b99 100644
--- a/pkgs/applications/networking/cluster/kn/default.nix
+++ b/pkgs/applications/networking/cluster/kn/default.nix
@@ -35,7 +35,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "The Knative client kn is your door to the Knative world. It allows you to create Knative resources interactively from the command line or from within scripts";
+    description = "Knative client kn is your door to the Knative world. It allows you to create Knative resources interactively from the command line or from within scripts";
     mainProgram = "kn";
     homepage = "https://github.com/knative/client";
     changelog = "https://github.com/knative/client/releases/tag/v${version}";
diff --git a/pkgs/applications/networking/cluster/kompose/default.nix b/pkgs/applications/networking/cluster/kompose/default.nix
index 248dcf84e3eda..ef3e6832d3f25 100644
--- a/pkgs/applications/networking/cluster/kompose/default.nix
+++ b/pkgs/applications/networking/cluster/kompose/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kompose";
-  version = "1.32.0";
+  version = "1.34.0";
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = "kompose";
     rev = "v${version}";
-    hash = "sha256-W9KAjyMp8fbnZunH5hwj0uctNYxEN/vbEDGaFJpv5hM=";
+    hash = "sha256-lBNf/pNJulex3WNRx8ZQcGag2nUPqjPKU9X/xDNxQjc=";
   };
 
-  vendorHash = "sha256-nY0d3r3faowHa7ylqDkUrX6MrGW3g1jYjm1MLFW/jK8=";
+  vendorHash = "sha256-SakezUp2Gj1PxY1Gwf8tH2yShtB/MPIqGjM/scrGG4I=";
 
   nativeBuildInputs = [ installShellFiles git ];
 
@@ -32,7 +32,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A tool to help users who are familiar with docker-compose move to Kubernetes";
+    description = "Tool to help users who are familiar with docker-compose move to Kubernetes";
     mainProgram = "kompose";
     homepage = "https://kompose.io";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kontemplate/default.nix b/pkgs/applications/networking/cluster/kontemplate/default.nix
deleted file mode 100644
index 14e75829e401c..0000000000000
--- a/pkgs/applications/networking/cluster/kontemplate/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
-
-buildGoPackage rec {
-  pname = "kontemplate";
-  version       = "1.8.0";
-  goPackagePath = "github.com/tazjin/kontemplate";
-  goDeps        = ./deps.nix;
-
-  src = fetchFromGitHub {
-    owner  = "tazjin";
-    repo   = "kontemplate";
-    rev    = "v${version}";
-    sha256 = "123mjmmm4hynraq1fpn3j5i0a1i87l265kkjraxxxbl0zacv74i1";
-  };
-
-  meta = with lib; {
-    description      = "Extremely simple Kubernetes resource templates";
-    mainProgram = "kontemplate";
-    homepage         = "http://kontemplate.works";
-    downloadPage     = "https://github.com/tazjin/kontemplate/releases";
-    license          = licenses.gpl3;
-    maintainers      = with maintainers; [ mbode tazjin ];
-    platforms        = platforms.unix;
-
-    longDescription = ''
-      Kontemplate is a simple CLI tool that can take sets of
-      Kubernetes resource files with placeholders and insert values
-      per environment.
-
-      It can be used as a simple way of deploying the same set of
-      resources to different Kubernetes contexts with context-specific
-      configuration.
-    '';
-  };
-}
diff --git a/pkgs/applications/networking/cluster/kontemplate/deps.nix b/pkgs/applications/networking/cluster/kontemplate/deps.nix
deleted file mode 100644
index 7693968bd550b..0000000000000
--- a/pkgs/applications/networking/cluster/kontemplate/deps.nix
+++ /dev/null
@@ -1,111 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "github.com/Masterminds/goutils";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Masterminds/goutils";
-      rev = "41ac8693c5c10a92ea1ff5ac3a7f95646f6123b0";
-      sha256 = "180px47gj936qyk5bkv5mbbgiil9abdjq6kwkf7sq70vyi9mcfiq";
-    };
-  }
-  {
-    goPackagePath = "github.com/Masterminds/semver";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Masterminds/semver";
-      rev = "5bc3b9184d48f1412b300b87a200cf020d9254cf";
-      sha256 = "1vdfm653v50jf63cw0kg2hslx50cn4mk6lj3p51bi11jrg48kfng";
-    };
-  }
-  {
-    goPackagePath = "github.com/Masterminds/sprig";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Masterminds/sprig";
-      rev = "6f509977777c33eae63b2136d97f7b976cb971cc";
-      sha256 = "05h9k6fhjxnpwlihj3z02q9kvqvnq53jix0ab84sx0666bci3cdh";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/template";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/template";
-      rev = "fb15b899a75114aa79cc930e33c46b577cc664b1";
-      sha256 = "1vlasv4dgycydh5wx6jdcvz40zdv90zz1h7836z7lhsi2ymvii26";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/units";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/units";
-      rev = "c3de453c63f4bdb4dadffab9805ec00426c505f7";
-      sha256 = "0js37zlgv37y61j4a2d46jh72xm5kxmpaiw0ya9v944bjpc386my";
-    };
-  }
-  {
-    goPackagePath = "github.com/ghodss/yaml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ghodss/yaml";
-      rev = "25d852aebe32c875e9c044af3eef9c7dc6bc777f";
-      sha256 = "1w9yq0bxzygc4qwkwwiy7k1k1yviaspcqqv18255k2xkjv5ipccz";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/uuid";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/uuid";
-      rev = "c2e93f3ae59f2904160ceaab466009f965df46d6";
-      sha256 = "0zw8fvl6jqg0fmv6kmvhss0g4gkrbvgyvl2zgy5wdbdlgp4fja0h";
-    };
-  }
-  {
-    goPackagePath = "github.com/huandu/xstrings";
-    fetch = {
-      type = "git";
-      url = "https://github.com/huandu/xstrings";
-      rev = "8bbcf2f9ccb55755e748b7644164cd4bdce94c1d";
-      sha256 = "1ivvc95514z63k7cpz71l0dwlanffmsh1pijhaqmp41kfiby8rsx";
-    };
-  }
-  {
-    goPackagePath = "github.com/imdario/mergo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/imdario/mergo";
-      rev = "4c317f2286be3bd0c4f1a0e622edc6398ec4656d";
-      sha256 = "0bihha1qsgfjk14yv1hwddv3d8dzxpbjlaxwwyys6lhgxz1cr9h9";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "9756ffdc24725223350eb3266ffb92590d28f278";
-      sha256 = "0q7hxaaq6lp0v8qqzifvysl47z5rfdlrxkh3d29vsl3wyby3dxl8";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/alecthomas/kingpin.v2";
-      rev = "947dcec5ba9c011838740e680966fd7087a71d0d";
-      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "51d6538a90f86fe93ac480b35f37b2be17fef232";
-      sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
-    };
-  }
-]
diff --git a/pkgs/applications/networking/cluster/kops/default.nix b/pkgs/applications/networking/cluster/kops/default.nix
index bcd0b78f7a523..5fa09dcb2ce41 100644
--- a/pkgs/applications/networking/cluster/kops/default.nix
+++ b/pkgs/applications/networking/cluster/kops/default.nix
@@ -62,6 +62,12 @@ rec {
   };
 
   kops_1_28 = mkKops rec {
+    version = "1.28.5";
+    sha256 = "sha256-spw3lTrp6RlxkTNoZ/3Yz/U2tdvBnwiYORS2QtOSX9k=";
+    rev = "v${version}";
+  };
+
+  kops_1_29 = mkKops rec {
     version = "1.29.0";
     sha256 = "sha256-YneB9pc4IR+tYPRFE5CS+4JK/kPOHMo5/70A3k1x1tg=";
     rev = "v${version}";
diff --git a/pkgs/applications/networking/cluster/kpt/default.nix b/pkgs/applications/networking/cluster/kpt/default.nix
index 8ae2138907b1a..d7aa86fd7d39e 100644
--- a/pkgs/applications/networking/cluster/kpt/default.nix
+++ b/pkgs/applications/networking/cluster/kpt/default.nix
@@ -18,7 +18,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" "-X github.com/GoogleContainerTools/kpt/run.version=${version}" ];
 
   meta = with lib; {
-    description = "A toolkit to help you manage, manipulate, customize, and apply Kubernetes Resource configuration data files";
+    description = "Toolkit to help you manage, manipulate, customize, and apply Kubernetes Resource configuration data files";
     mainProgram = "kpt";
     homepage = "https://googlecontainertools.github.io/kpt/";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/krane/Gemfile.lock b/pkgs/applications/networking/cluster/krane/Gemfile.lock
index ef009399785a4..748de3d620c8b 100644
--- a/pkgs/applications/networking/cluster/krane/Gemfile.lock
+++ b/pkgs/applications/networking/cluster/krane/Gemfile.lock
@@ -1,7 +1,7 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (7.1.3.2)
+    activesupport (7.1.3.3)
       base64
       bigdecimal
       concurrent-ruby (~> 1.0, >= 1.0.2)
@@ -54,7 +54,7 @@ GEM
       multi_json
     jwt (2.8.1)
       base64
-    krane (3.5.3)
+    krane (3.6.0)
       activesupport (>= 5.0)
       colorize (~> 0.8)
       concurrent-ruby (~> 1.1)
@@ -76,7 +76,7 @@ GEM
     mime-types (3.5.2)
       mime-types-data (~> 3.2015)
     mime-types-data (3.2024.0507)
-    minitest (5.22.3)
+    minitest (5.23.1)
     multi_json (1.15.0)
     mutex_m (0.2.0)
     net-http (0.4.1)
diff --git a/pkgs/applications/networking/cluster/krane/default.nix b/pkgs/applications/networking/cluster/krane/default.nix
index 0bb04197a7ee9..9be10f5d2f0fa 100644
--- a/pkgs/applications/networking/cluster/krane/default.nix
+++ b/pkgs/applications/networking/cluster/krane/default.nix
@@ -11,7 +11,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "krane";
 
   meta = with lib; {
-    description = "A command-line tool that helps you ship changes to a Kubernetes namespace and understand the result";
+    description = "Command-line tool that helps you ship changes to a Kubernetes namespace and understand the result";
     homepage = "https://github.com/Shopify/krane";
     changelog = "https://github.com/Shopify/krane/blob/main/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/cluster/krane/gemset.nix b/pkgs/applications/networking/cluster/krane/gemset.nix
index 5b296b320c4ef..b3e79d317efb0 100644
--- a/pkgs/applications/networking/cluster/krane/gemset.nix
+++ b/pkgs/applications/networking/cluster/krane/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0blbbf2x7dn7ar4g9aij403582zb6zscbj48bz63lvaamsvlb15d";
+      sha256 = "0z8kygxmz99krz9pwp947znkzf0jr64sml28df0vf1gzxlg7y57i";
       type = "gem";
     };
-    version = "7.1.3.2";
+    version = "7.1.3.3";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -247,10 +247,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11jj5fpfsb1sfwgc356xv1vxl8yq65wbbshmawpagk555y0pzbpb";
+      sha256 = "08dkvcmxa869pk6qdpsvljy16lb1kj94cgr4w9bhg93gx3m642v6";
       type = "gem";
     };
-    version = "3.5.3";
+    version = "3.6.0";
   };
   kubeclient = {
     dependencies = ["http" "jsonpath" "recursive-open-struct" "rest-client"];
@@ -300,10 +300,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07lq26b86giy3ha3fhrywk9r1ajhc2pm2mzj657jnpnbj1i6g17a";
+      sha256 = "1gkslxvkhh44s21rbjvka3zsvfxxrf5pcl6f75rv2vyrzzbgis7i";
       type = "gem";
     };
-    version = "5.22.3";
+    version = "5.23.1";
   };
   multi_json = {
     groups = ["default"];
diff --git a/pkgs/applications/networking/cluster/krelay/default.nix b/pkgs/applications/networking/cluster/krelay/default.nix
index 5515d10dfd99b..6c61899e7d5be 100644
--- a/pkgs/applications/networking/cluster/krelay/default.nix
+++ b/pkgs/applications/networking/cluster/krelay/default.nix
@@ -22,7 +22,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A drop-in replacement for `kubectl port-forward` with some enhanced features";
+    description = "Drop-in replacement for `kubectl port-forward` with some enhanced features";
     homepage = "https://github.com/knight42/krelay";
     changelog = "https://github.com/knight42/krelay/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/cluster/ktop/default.nix b/pkgs/applications/networking/cluster/ktop/default.nix
index 847a58a9c40f9..9bc630b9ccc5f 100644
--- a/pkgs/applications/networking/cluster/ktop/default.nix
+++ b/pkgs/applications/networking/cluster/ktop/default.nix
@@ -22,7 +22,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A top-like tool for your Kubernetes cluster";
+    description = "Top-like tool for your Kubernetes cluster";
     mainProgram = "ktop";
     longDescription = ''
       Following the tradition of Unix/Linux top tools, ktop is a tool that displays useful metrics information about nodes, pods, and other workload resources running in a Kubernetes cluster.
diff --git a/pkgs/applications/networking/cluster/ktunnel/default.nix b/pkgs/applications/networking/cluster/ktunnel/default.nix
index 5cbcc6b661b77..f193e4d38e90c 100644
--- a/pkgs/applications/networking/cluster/ktunnel/default.nix
+++ b/pkgs/applications/networking/cluster/ktunnel/default.nix
@@ -31,7 +31,7 @@ buildGoModule {
   '';
 
   meta = with lib; {
-    description = "A cli that exposes your local resources to kubernetes ";
+    description = "Cli that exposes your local resources to kubernetes ";
     mainProgram = "ktunnel";
     homepage = "https://github.com/omrikiei/ktunnel";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kube-router/default.nix b/pkgs/applications/networking/cluster/kube-router/default.nix
index 551240dfcc073..275db6bd244b6 100644
--- a/pkgs/applications/networking/cluster/kube-router/default.nix
+++ b/pkgs/applications/networking/cluster/kube-router/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kube-router";
-  version = "2.1.2";
+  version = "2.1.3";
 
   src = fetchFromGitHub {
     owner = "cloudnativelabs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-BjL91c+yfpscb0q62eWfiqg1aLkXztXowTj4k8jdTQs=";
+    hash = "sha256-H+jPHf7sMrMlqLWa3L34U8nbBgqeX+MqChiuSsVdx6A=";
   };
 
   vendorHash = "sha256-BrpjG9DhDQSsbeJ+1MRAwXyKVULK3KHjvLydduTb024=";
diff --git a/pkgs/applications/networking/cluster/kubebuilder/default.nix b/pkgs/applications/networking/cluster/kubebuilder/default.nix
index 7885df6af03f9..284c63e23262b 100644
--- a/pkgs/applications/networking/cluster/kubebuilder/default.nix
+++ b/pkgs/applications/networking/cluster/kubebuilder/default.nix
@@ -12,13 +12,13 @@
 
 buildGoModule rec {
   pname = "kubebuilder";
-  version = "3.15.0";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "kubernetes-sigs";
     repo = "kubebuilder";
     rev = "v${version}";
-    hash = "sha256-YaISsW+USP9M4Mblluo+SXSwGspiTiiPFA3VvLmhqaQ=";
+    hash = "sha256-JG2Wrq6fCE1zJmM7kXcEHIQVxv9eKV0Zy3ev5eY7Dv4=";
   };
 
   vendorHash = "sha256-g9QjalRLc2NUsyd7Do1PWw9oD9ATuJGMRaqSaC6AcD0=";
diff --git a/pkgs/applications/networking/cluster/kubecfg/default.nix b/pkgs/applications/networking/cluster/kubecfg/default.nix
index 78f14012707bc..8a2a85943955c 100644
--- a/pkgs/applications/networking/cluster/kubecfg/default.nix
+++ b/pkgs/applications/networking/cluster/kubecfg/default.nix
@@ -32,7 +32,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A tool for managing Kubernetes resources as code";
+    description = "Tool for managing Kubernetes resources as code";
     mainProgram = "kubecfg";
     homepage = "https://github.com/kubecfg/kubecfg";
     changelog = "https://github.com/kubecfg/kubecfg/releases/tag/v${version}";
diff --git a/pkgs/applications/networking/cluster/kubecm/default.nix b/pkgs/applications/networking/cluster/kubecm/default.nix
index 5fe9f237b6faf..22863c3ac14f2 100644
--- a/pkgs/applications/networking/cluster/kubecm/default.nix
+++ b/pkgs/applications/networking/cluster/kubecm/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kubecm";
-  version = "0.28.0";
+  version = "0.29.1";
 
   src = fetchFromGitHub {
     owner = "sunny0826";
     repo = "kubecm";
     rev = "v${version}";
-    hash = "sha256-v2frNvJUvDjPhV1RCR3DHk04kYEqP6hMXeA4j3cWlss=";
+    hash = "sha256-Lz7mCbEEiCmNPmJ8RkxJLEOOdyvLZl3pT3qL2/kHYuA=";
   };
 
-  vendorHash = "sha256-uM9/rqu5WOXK6bqxhtmje+Zd9dtdv3qwt+Xr0SJHjPs=";
+  vendorHash = "sha256-JJ2B9sUrfo4fiRsxA8mBjvKP0mduIZMaGN8gFC1cTA4=";
   ldflags = [ "-s" "-w" "-X github.com/sunny0826/kubecm/version.Version=${version}"];
 
   doCheck = false;
@@ -21,5 +21,6 @@ buildGoModule rec {
     homepage = "https://github.com/sunny0826/kubecm/";
     license = licenses.asl20;
     maintainers = with maintainers; [ qjoly ];
+    mainProgram = "kubecm";
   };
 }
diff --git a/pkgs/applications/networking/cluster/kubecolor/default.nix b/pkgs/applications/networking/cluster/kubecolor/default.nix
index 589b93cd2f725..ecd24e4afbe83 100644
--- a/pkgs/applications/networking/cluster/kubecolor/default.nix
+++ b/pkgs/applications/networking/cluster/kubecolor/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kubecolor";
-  version = "0.3.2";
+  version = "0.3.3";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-9fL1zuhQ1B8QpJXcGVxg8mqIQoM5ZhwuE000rDcrrw0=";
+    sha256 = "sha256-VGpyYc6YmRr58OSRQvWTo4f8ku8L1/gn0ilbQSotO2k=";
   };
 
   vendorHash = "sha256-Gzz+mCEMQCcLwTiGMB8/nXk7HDAEGkEapC/VOyXrn/Q=";
diff --git a/pkgs/applications/networking/cluster/kubeconform/default.nix b/pkgs/applications/networking/cluster/kubeconform/default.nix
index d850d0fb89a56..4d02d170afef8 100644
--- a/pkgs/applications/networking/cluster/kubeconform/default.nix
+++ b/pkgs/applications/networking/cluster/kubeconform/default.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
   vendorHash = null;
 
   meta = with lib; {
-    description = "A FAST Kubernetes manifests validator, with support for Custom Resources!";
+    description = "FAST Kubernetes manifests validator, with support for Custom Resources!";
     mainProgram = "kubeconform";
     homepage    = "https://github.com/yannh/kubeconform/";
     license     = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kubectl-cnpg/default.nix b/pkgs/applications/networking/cluster/kubectl-cnpg/default.nix
index a5fc3b5a42da7..6aae2f8089695 100644
--- a/pkgs/applications/networking/cluster/kubectl-cnpg/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-cnpg/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "kubectl-cnpg";
-  version = "1.23.1";
+  version = "1.23.2";
 
   src = fetchFromGitHub {
     owner = "cloudnative-pg";
     repo = "cloudnative-pg";
     rev = "v${version}";
-    hash = "sha256-sh9ogECNEZ6AYhdJD87ELnr8E0iWPLhDu3Qkdpb2194=";
+    hash = "sha256-/h2hvyjC/rHOkyZbt0kYn0TcQeXutU4rxYBD7Mh948Q=";
   };
 
-  vendorHash = "sha256-3yh6b0dB2JC0t2EwykWiLk6glyKUhTpqmqvfFZ4RekE=";
+  vendorHash = "sha256-MY4yU0UpN3V3RxsFWqxZOsZZA1kma3NNTHE9e/gquno=";
 
   subPackages = [ "cmd/kubectl-cnpg" ];
 
diff --git a/pkgs/applications/networking/cluster/kubectl-explore/default.nix b/pkgs/applications/networking/cluster/kubectl-explore/default.nix
index 66f45ad898a5a..4e27abfefef61 100644
--- a/pkgs/applications/networking/cluster/kubectl-explore/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-explore/default.nix
@@ -15,7 +15,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A better kubectl explain with the fuzzy finder";
+    description = "Better kubectl explain with the fuzzy finder";
     mainProgram = "kubectl-explore";
     homepage = "https://github.com/keisku/kubectl-explore";
     changelog = "https://github.com/keisku/kubectl-explore/releases/tag/v${version}";
diff --git a/pkgs/applications/networking/cluster/kubectl-gadget/default.nix b/pkgs/applications/networking/cluster/kubectl-gadget/default.nix
index f09ce52939b78..739413144965c 100644
--- a/pkgs/applications/networking/cluster/kubectl-gadget/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-gadget/default.nix
@@ -2,22 +2,22 @@
 
 buildGoModule rec {
   pname = "kubectl-gadget";
-  version = "0.28.1";
+  version = "0.29.0";
 
   src = fetchFromGitHub {
     owner = "inspektor-gadget";
     repo = "inspektor-gadget";
     rev = "v${version}";
-    hash = "sha256-+eysHATyAdCN6HVPN2bgc/ICo+XXaef0H0UDW2xCcjc=";
+    hash = "sha256-5lXM7SuQvjQYWWbtRVJrdYBRbHFs1Ha9hQLDweaTKQ4=";
   };
 
-  vendorHash = "sha256-0XByai7fEnkmEEkH1koVM1+z3UNFLbsUCK3sP4KBe+A=";
+  vendorHash = "sha256-Fc3WLeEqH2CK6b4jWqcxCBYl2ST6scjjNA1/Rl3Go1o=";
 
   CGO_ENABLED = 0;
 
   ldflags = [
     "-s" "-w"
-    "-X github.com/inspektor-gadget/inspektor-gadget/cmd/common.version=v${version}"
+    "-X github.com/inspektor-gadget/inspektor-gadget/internal/version.version=v${version}"
     "-X main.gadgetimage=ghcr.io/inspektor-gadget/inspektor-gadget:v${version}"
     "-extldflags=-static"
   ];
@@ -29,7 +29,7 @@ buildGoModule rec {
   subPackages = [ "cmd/kubectl-gadget" ];
 
   meta = with lib; {
-    description = "A collection of gadgets for troubleshooting Kubernetes applications using eBPF";
+    description = "Collection of gadgets for troubleshooting Kubernetes applications using eBPF";
     mainProgram = "kubectl-gadget";
     homepage = "https://inspektor-gadget.io";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kubectl-images/default.nix b/pkgs/applications/networking/cluster/kubectl-images/default.nix
index 1c4b1bf60e128..c6d39351612bb 100644
--- a/pkgs/applications/networking/cluster/kubectl-images/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-images/default.nix
@@ -18,7 +18,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "Show container images used in the cluster.";
+    description = "Show container images used in the cluster";
     mainProgram = "kubectl-images";
     homepage = "https://github.com/chenjiandongx/kubectl-images";
     changelog = "https://github.com/chenjiandongx/kubectl-images/releases/tag/v${version}";
diff --git a/pkgs/applications/networking/cluster/kubectl-klock/default.nix b/pkgs/applications/networking/cluster/kubectl-klock/default.nix
index 06ede90ffb67c..f04f5034fb827 100644
--- a/pkgs/applications/networking/cluster/kubectl-klock/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-klock/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "kubectl-klock";
-  version = "0.6.1";
+  version = "0.7.0";
 
   nativeBuildInputs = [ makeWrapper ];
 
@@ -10,17 +10,17 @@ buildGoModule rec {
     owner = "applejag";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-QzleoHRQ/A5ImMl43kze5ppUdiLa4n/VT02lMnaXVkg=";
+    hash = "sha256-MmsHxB15gCz2W2QLC6E7Ao+9iLyVaYJatUgPcMuL79M=";
   };
 
-  vendorHash = "sha256-smE8mdyZ8xJOevgHs4+ozS6VOlko+Whhs/37B+hIbxo=";
+  vendorHash = "sha256-lhawUcjB2EULpAFjBM4tdmDo08za2DfyZUvEPo4+LXE=";
 
   postInstall = ''
     makeWrapper $out/bin/kubectl-klock $out/bin/kubectl_complete-klock --add-flags __complete
   '';
 
   meta = with lib; {
-    description = "A kubectl plugin to render watch output in a more readable fashion";
+    description = "Kubectl plugin to render watch output in a more readable fashion";
     homepage = "https://github.com/applejag/kubectl-klock";
     changelog = "https://github.com/applejag/kubectl-klock/releases/tag/v${version}";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/networking/cluster/kubectl-ktop/default.nix b/pkgs/applications/networking/cluster/kubectl-ktop/default.nix
index a7a27e54c065e..289d5bc77d4b3 100644
--- a/pkgs/applications/networking/cluster/kubectl-ktop/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-ktop/default.nix
@@ -27,7 +27,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A top-like tool for your Kubernetes clusters";
+    description = "Top-like tool for your Kubernetes clusters";
     homepage = "https://github.com/vladimirvivien/ktop";
     changelog = "https://github.com/vladimirvivien/ktop/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kubedb-cli/default.nix b/pkgs/applications/networking/cluster/kubedb-cli/default.nix
index 14c1a25b13e66..cba85cb19e3e4 100644
--- a/pkgs/applications/networking/cluster/kubedb-cli/default.nix
+++ b/pkgs/applications/networking/cluster/kubedb-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kubedb-cli";
-  version = "0.45.0";
+  version = "0.46.0";
 
   src = fetchFromGitHub {
     owner = "kubedb";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-4kmXz8dTxCaGbuAo3zK27BhUrecInwJCu9XOuiQY48A=";
+    sha256 = "sha256-U5BRkH0jqTEBYtiT93YP/UpQYekPjAHEGl59HPk7TfQ=";
   };
 
   vendorHash = null;
@@ -17,7 +17,7 @@ buildGoModule rec {
   subPackages = [ "cmd/kubectl-dba" ];
 
   meta = with lib; {
-    description = "kubectl plugin for KubeDB by AppsCode.";
+    description = "kubectl plugin for KubeDB by AppsCode";
     homepage    = "https://github.com/kubedb/cli";
     license     = licenses.unfree;
     maintainers = [ maintainers.starcraft66 ];
diff --git a/pkgs/applications/networking/cluster/kubefirst/default.nix b/pkgs/applications/networking/cluster/kubefirst/default.nix
index 5e76464523838..7183fb8885b25 100644
--- a/pkgs/applications/networking/cluster/kubefirst/default.nix
+++ b/pkgs/applications/networking/cluster/kubefirst/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "kubefirst";
-  version = "2.4.8";
+  version = "2.4.10";
 
   src = fetchFromGitHub {
     owner = "kubefirst";
     repo = "kubefirst";
     rev = "refs/tags/v${version}";
-    hash = "sha256-r5y1eWjcw0HP/E9AQodEdCgWgKikGrwV6TvZ2mVcuoE=";
+    hash = "sha256-EgJ+ymddMsB37ygREwdF6qmGcgJKPz06//dwwa1pXd0=";
   };
 
-  vendorHash = "sha256-ZcZl4knlyKAwTsiyZvlkN5e2ox30B5aNzutI/2UEE9U=";
+  vendorHash = "sha256-5UdKjxs0f8dHTzWvHpMbYSCcIqTU5aT5anNVk0O94tw=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix b/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix
index 0d3852e28414c..6a96666829615 100644
--- a/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix
+++ b/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "kubelogin";
-  version = "1.28.0";
+  version = "1.28.1";
 
   src = fetchFromGitHub {
     owner = "int128";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-8atEUJLXSbLHdxo1wKtAHAFrZkQYWdW6tP2oKoxahXA=";
+    sha256 = "sha256-sFEFvWizQeQp9VE1guO9xMZl9+cFk6jV43TVCbD8pas=";
   };
 
   subPackages = ["."];
 
-  vendorHash = "sha256-rLpXBFNBJG3H0+2inCG4wN0I2LuKUhuqozeafUD3aMI=";
+  vendorHash = "sha256-Mel9fH13iXSpB2kClJsH0SM+/gIzu2rPt2q0fjQwumw=";
 
   # Rename the binary instead of symlinking to avoid conflict with the
   # Azure version of kubelogin
@@ -22,7 +22,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A Kubernetes credential plugin implementing OpenID Connect (OIDC) authentication";
+    description = "Kubernetes credential plugin implementing OpenID Connect (OIDC) authentication";
     mainProgram = "kubectl-oidc_login";
     inherit (src.meta) homepage;
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kubelogin/default.nix b/pkgs/applications/networking/cluster/kubelogin/default.nix
index 43fd319201106..f3b4a96404a9d 100644
--- a/pkgs/applications/networking/cluster/kubelogin/default.nix
+++ b/pkgs/applications/networking/cluster/kubelogin/default.nix
@@ -19,7 +19,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "A Kubernetes credential plugin implementing Azure authentication";
+    description = "Kubernetes credential plugin implementing Azure authentication";
     mainProgram = "kubelogin";
     inherit (src.meta) homepage;
     license = licenses.mit;
diff --git a/pkgs/applications/networking/cluster/kubemqctl/default.nix b/pkgs/applications/networking/cluster/kubemqctl/default.nix
index 8e2590b75c7e8..9947e625e0313 100644
--- a/pkgs/applications/networking/cluster/kubemqctl/default.nix
+++ b/pkgs/applications/networking/cluster/kubemqctl/default.nix
@@ -24,7 +24,7 @@ buildGoModule rec {
 
   meta = {
     homepage = "https://github.com/kubemq-io/kubemqctl";
-    description = "Kubemqctl is a command line interface (CLI) for Kubemq Kubernetes Message Broker.";
+    description = "Kubemqctl is a command line interface (CLI) for Kubemq Kubernetes Message Broker";
     mainProgram = "kubemqctl";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ brianmcgee ];
diff --git a/pkgs/applications/networking/cluster/kubernetes/default.nix b/pkgs/applications/networking/cluster/kubernetes/default.nix
index e8af5d6400d9a..08823ff29b0ba 100644
--- a/pkgs/applications/networking/cluster/kubernetes/default.nix
+++ b/pkgs/applications/networking/cluster/kubernetes/default.nix
@@ -20,13 +20,13 @@
 
 buildGoModule rec {
   pname = "kubernetes";
-  version = "1.30.1";
+  version = "1.30.2";
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = "kubernetes";
     rev = "v${version}";
-    hash = "sha256-nTVjgNMnB6775ubzK7ezOxR5Z0z5PBxx88CxtbxGxrY=";
+    hash = "sha256-cxWltHCwb01QsIRSieXwYtImrSfvJLBhN3VIJkxOzX8=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/networking/cluster/kubeseal/default.nix b/pkgs/applications/networking/cluster/kubeseal/default.nix
index d6a3f9826dff5..af646127fba59 100644
--- a/pkgs/applications/networking/cluster/kubeseal/default.nix
+++ b/pkgs/applications/networking/cluster/kubeseal/default.nix
@@ -2,23 +2,23 @@
 
 buildGoModule rec {
   pname = "kubeseal";
-  version = "0.26.2";
+  version = "0.26.3";
 
   src = fetchFromGitHub {
     owner = "bitnami-labs";
     repo = "sealed-secrets";
     rev = "v${version}";
-    sha256 = "sha256-96yaWHRfEHjXYZ9Hsh9bXk5O5viSOYhmwJ18JCbtv2U=";
+    sha256 = "sha256-2MU1/znfp2LfojfgFPovgcJbZLtqY+6O7YKZNhPIT8k=";
   };
 
-  vendorHash = "sha256-91GKy7tNKSOiJmpArgp56RXegYP7sdGpaRAxS9xwTXA=";
+  vendorHash = "sha256-B50+G29ze1jPBTlFA0nvMfh25t4Xb3YCxEkPkjxKMj0=";
 
   subPackages = [ "cmd/kubeseal" ];
 
   ldflags = [ "-s" "-w" "-X main.VERSION=${version}" ];
 
   meta = with lib; {
-    description = "A Kubernetes controller and tool for one-way encrypted Secrets";
+    description = "Kubernetes controller and tool for one-way encrypted Secrets";
     mainProgram = "kubeseal";
     homepage = "https://github.com/bitnami-labs/sealed-secrets";
     changelog = "https://github.com/bitnami-labs/sealed-secrets/blob/v${version}/RELEASE-NOTES.md";
diff --git a/pkgs/applications/networking/cluster/kubeshark/default.nix b/pkgs/applications/networking/cluster/kubeshark/default.nix
index a5fd286984c13..b888cecc927c2 100644
--- a/pkgs/applications/networking/cluster/kubeshark/default.nix
+++ b/pkgs/applications/networking/cluster/kubeshark/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kubeshark";
-  version = "52.3.0";
+  version = "52.3.68";
 
   src = fetchFromGitHub {
     owner = "kubeshark";
     repo = "kubeshark";
     rev = "v${version}";
-    hash = "sha256-7tTXhILWnYRFyKBw1Im9Q9/oqlKJAP478qiBEoTUGMc=";
+    hash = "sha256-GDK+GR3MUYUgfY3cgaxWIYSE3uiEscp9DeeY36/zOYo=";
   };
 
-  vendorHash = "sha256-SmvO9DYOXxnmN2dmHPPOguVwEbWSH/xNLBB+idpzopo=";
+  vendorHash = "sha256-0WRmAqslZj63m+kCFKIBgoRX47ZyRuU7ZihmF6wmZy4=";
 
   ldflags = let t = "github.com/kubeshark/kubeshark"; in [
    "-s" "-w"
@@ -47,7 +47,7 @@ buildGoModule rec {
 
   meta = with lib; {
     changelog = "https://github.com/kubeshark/kubeshark/releases/tag/${version}";
-    description = "The API Traffic Viewer for Kubernetes";
+    description = "API Traffic Viewer for Kubernetes";
     mainProgram = "kubeshark";
     homepage = "https://kubeshark.co/";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kubespy/default.nix b/pkgs/applications/networking/cluster/kubespy/default.nix
index 81a9145327b35..b9e46525f20ad 100644
--- a/pkgs/applications/networking/cluster/kubespy/default.nix
+++ b/pkgs/applications/networking/cluster/kubespy/default.nix
@@ -27,7 +27,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A tool to observe Kubernetes resources in real time";
+    description = "Tool to observe Kubernetes resources in real time";
     mainProgram = "kubespy";
     homepage = "https://github.com/pulumi/kubespy";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kubevela/default.nix b/pkgs/applications/networking/cluster/kubevela/default.nix
index 4e6f0a53f288f..caa2519af57aa 100644
--- a/pkgs/applications/networking/cluster/kubevela/default.nix
+++ b/pkgs/applications/networking/cluster/kubevela/default.nix
@@ -54,7 +54,7 @@ buildGoModule rec {
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "An application delivery platform to deploy and operate applications in hybrid, multi-cloud environments";
+    description = "Application delivery platform to deploy and operate applications in hybrid, multi-cloud environments";
     downloadPage = "https://github.com/kubevela/kubevela";
     homepage = "https://kubevela.io/";
     license = lib.licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kubexit/default.nix b/pkgs/applications/networking/cluster/kubexit/default.nix
index 080c87385bb6a..21311e9f90872 100644
--- a/pkgs/applications/networking/cluster/kubexit/default.nix
+++ b/pkgs/applications/networking/cluster/kubexit/default.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
   vendorHash = "sha256-RA3+S5Pad+4mNUgcZ2Z0K0FKA3Za5o1ko049GM4yQQ8=";
   ldflags = [ "-s" "-w" ];
   meta = with lib; {
-    description = "Command supervisor for coordinated Kubernetes pod container termination.";
+    description = "Command supervisor for coordinated Kubernetes pod container termination";
     mainProgram = "kubexit";
     homepage = "https://github.com/karlkfi/kubexit/";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kuma/default.nix b/pkgs/applications/networking/cluster/kuma/default.nix
index cde60aa4f9a73..66164211131fd 100644
--- a/pkgs/applications/networking/cluster/kuma/default.nix
+++ b/pkgs/applications/networking/cluster/kuma/default.nix
@@ -15,14 +15,14 @@
 
 buildGoModule rec {
   inherit pname;
-  version = "2.7.2";
+  version = "2.7.3";
   tags = lib.optionals enableGateway [ "gateway" ];
 
   src = fetchFromGitHub {
     owner = "kumahq";
     repo = "kuma";
     rev = version;
-    hash = "sha256-Y9JejIKENIyn2EyRHXLm6CZqlP4MwvPSMRlciYl+a30=";
+    hash = "sha256-b3qQ3lFaQvkmP3HYPwQi2TxSeKmWzGbp01OCnjULJ4k=";
   };
 
   vendorHash = "sha256-ne62twZXac5GfQ8JcWElIMqc+Vpvn0Y9XSNgAtF62q0=";
diff --git a/pkgs/applications/networking/cluster/kuttl/default.nix b/pkgs/applications/networking/cluster/kuttl/default.nix
index 0171ed2c0be15..3e5b25a16faa7 100644
--- a/pkgs/applications/networking/cluster/kuttl/default.nix
+++ b/pkgs/applications/networking/cluster/kuttl/default.nix
@@ -23,7 +23,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "The KUbernetes Test TooL (KUTTL) provides a declarative approach to testing production-grade Kubernetes operators";
+    description = "KUbernetes Test TooL (KUTTL) provides a declarative approach to testing production-grade Kubernetes operators";
     homepage = "https://github.com/kudobuilder/kuttl";
     license = licenses.asl20;
     maintainers = with maintainers; [ diegolelis ];
diff --git a/pkgs/applications/networking/cluster/kyverno/default.nix b/pkgs/applications/networking/cluster/kyverno/default.nix
index b80e2726bffc8..f9becbdf5bad2 100644
--- a/pkgs/applications/networking/cluster/kyverno/default.nix
+++ b/pkgs/applications/networking/cluster/kyverno/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kyverno";
-  version = "1.12.1";
+  version = "1.12.4";
 
   src = fetchFromGitHub {
     owner = "kyverno";
     repo = "kyverno";
     rev = "v${version}";
-    hash = "sha256-2x5xLh+v1/RXG3h93Ff49pT9NwHWNx4tubnmCf0SAdY=";
+    hash = "sha256-TVtE1mdOai2G2+KCp9r5G+E9QhGQ5TmUFCN9x5EKM7o=";
   };
 
   ldflags = [
@@ -18,7 +18,7 @@ buildGoModule rec {
     "-X github.com/kyverno/kyverno/pkg/version.BuildTime=1970-01-01_00:00:00"
   ];
 
-  vendorHash = "sha256-5tBHmHfBHTsAVDk3i0z2R2amTfOvWHJutTNW2ofGZuQ=";
+  vendorHash = "sha256-sSsLs3EedStYlMYKFXIMdNHtrG8ijyu9+2MCYjjzZR4=";
 
   subPackages = [ "cmd/cli/kubectl-kyverno" ];
 
diff --git a/pkgs/applications/networking/cluster/lens/default.nix b/pkgs/applications/networking/cluster/lens/default.nix
index 3e32f8778f74e..3e59a1fc23df7 100644
--- a/pkgs/applications/networking/cluster/lens/default.nix
+++ b/pkgs/applications/networking/cluster/lens/default.nix
@@ -28,7 +28,7 @@ let
   };
 
   meta = with lib; {
-    description = "The Kubernetes IDE";
+    description = "Kubernetes IDE";
     homepage = "https://k8slens.dev/";
     license = licenses.lens;
     maintainers = with maintainers; [ dbirks RossComputerGuy starkca90 ];
diff --git a/pkgs/applications/networking/cluster/levant/default.nix b/pkgs/applications/networking/cluster/levant/default.nix
index 937e57204b96d..cd6d25113e728 100644
--- a/pkgs/applications/networking/cluster/levant/default.nix
+++ b/pkgs/applications/networking/cluster/levant/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "An open source templating and deployment tool for HashiCorp Nomad jobs";
+    description = "Open source templating and deployment tool for HashiCorp Nomad jobs";
     mainProgram = "levant";
     homepage = "https://github.com/hashicorp/levant";
     license = licenses.mpl20;
diff --git a/pkgs/applications/networking/cluster/linkerd/edge.nix b/pkgs/applications/networking/cluster/linkerd/edge.nix
index 7bdc62b54acb7..57d16d577dfc6 100644
--- a/pkgs/applications/networking/cluster/linkerd/edge.nix
+++ b/pkgs/applications/networking/cluster/linkerd/edge.nix
@@ -2,7 +2,7 @@
 
 (callPackage ./generic.nix { }) {
   channel = "edge";
-  version = "24.5.3";
-  sha256 = "0dwbaqd4k8yx8n2aqvg7l1ydjqbdxv0n0wnm1bsi7cxj7yn5kzp5";
-  vendorHash = "sha256-tXe1dQMKb96SDU4gn9hyVEl2vI1ISaffzCy1gHd1unM=";
+  version = "24.6.2";
+  sha256 = "0qghp8v4lz51yv5j5k8dps4qv58hjdjdc3jzrrq3g239x8b2h6ys";
+  vendorHash = "sha256-7Q6V9DKROkSTxU7n511aOpaMDRfhP88p6PJ89Sr6kOQ=";
 }
diff --git a/pkgs/applications/networking/cluster/linkerd/generic.nix b/pkgs/applications/networking/cluster/linkerd/generic.nix
index edd5a895f3f0a..5ccdb9320bf58 100644
--- a/pkgs/applications/networking/cluster/linkerd/generic.nix
+++ b/pkgs/applications/networking/cluster/linkerd/generic.nix
@@ -54,7 +54,7 @@ buildGoModule rec {
   passthru.updateScript = (./. + "/update-${channel}.sh");
 
   meta = with lib; {
-    description = "A simple Kubernetes service mesh that improves security, observability and reliability";
+    description = "Simple Kubernetes service mesh that improves security, observability and reliability";
     mainProgram = "linkerd";
     downloadPage = "https://github.com/linkerd/linkerd2/";
     homepage = "https://linkerd.io/";
diff --git a/pkgs/applications/networking/cluster/minikube/default.nix b/pkgs/applications/networking/cluster/minikube/default.nix
index 9f13b3799bc5c..90f94c459742d 100644
--- a/pkgs/applications/networking/cluster/minikube/default.nix
+++ b/pkgs/applications/networking/cluster/minikube/default.nix
@@ -66,7 +66,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://minikube.sigs.k8s.io";
-    description = "A tool that makes it easy to run Kubernetes locally";
+    description = "Tool that makes it easy to run Kubernetes locally";
     mainProgram = "minikube";
     license = licenses.asl20;
     maintainers = with maintainers; [ ebzzry copumpkin vdemeester atkinschang Chili-Man ];
diff --git a/pkgs/applications/networking/cluster/nerdctl/default.nix b/pkgs/applications/networking/cluster/nerdctl/default.nix
index 0ef96ddf69a4a..af9c96c6c5eb1 100644
--- a/pkgs/applications/networking/cluster/nerdctl/default.nix
+++ b/pkgs/applications/networking/cluster/nerdctl/default.nix
@@ -51,7 +51,7 @@ buildGoModule rec {
   meta = {
     homepage = "https://github.com/containerd/nerdctl/";
     changelog = "https://github.com/containerd/nerdctl/releases/tag/v${version}";
-    description = "A Docker-compatible CLI for containerd";
+    description = "Docker-compatible CLI for containerd";
     mainProgram = "nerdctl";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ developer-guy jk ];
diff --git a/pkgs/applications/networking/cluster/nixops/plugins/nixops-gce.nix b/pkgs/applications/networking/cluster/nixops/plugins/nixops-gce.nix
index 84b785a7d5666..8f179e6755b46 100644
--- a/pkgs/applications/networking/cluster/nixops/plugins/nixops-gce.nix
+++ b/pkgs/applications/networking/cluster/nixops/plugins/nixops-gce.nix
@@ -50,5 +50,6 @@ buildPythonPackage {
     homepage = "https://github.com/nix-community/nixops-gce";
     license = licenses.mit;
     maintainers = nixops.meta.maintainers;
+    broken = true; # never built on Hydra
   };
 }
diff --git a/pkgs/applications/networking/cluster/nixops/plugins/nixops-hetzner.nix b/pkgs/applications/networking/cluster/nixops/plugins/nixops-hetzner.nix
index 6d883f5ba45fd..092a932a47cca 100644
--- a/pkgs/applications/networking/cluster/nixops/plugins/nixops-hetzner.nix
+++ b/pkgs/applications/networking/cluster/nixops/plugins/nixops-hetzner.nix
@@ -52,5 +52,6 @@ buildPythonPackage {
     homepage = "https://github.com/NixOS/nixops-hetzner";
     license = licenses.mit;
     maintainers = nixops.meta.maintainers;
+    broken = true; # never built on Hydra
   };
 }
diff --git a/pkgs/applications/networking/cluster/nixops/plugins/nixops-hetznercloud.nix b/pkgs/applications/networking/cluster/nixops/plugins/nixops-hetznercloud.nix
index ab9f54bcd8a32..6e9a4b742e302 100644
--- a/pkgs/applications/networking/cluster/nixops/plugins/nixops-hetznercloud.nix
+++ b/pkgs/applications/networking/cluster/nixops/plugins/nixops-hetznercloud.nix
@@ -44,9 +44,10 @@ buildPythonPackage {
   passthru.updateScript = unstableGitUpdater {};
 
   meta = with lib; {
-    description = "A NixOps plugin supporting Hetzner Cloud deployments";
+    description = "NixOps plugin supporting Hetzner Cloud deployments";
     homepage = "https://github.com/lukebfox/nixops-hetznercloud";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ lukebfox ];
+    broken = true; # never built on Hydra
   };
 }
diff --git a/pkgs/applications/networking/cluster/nixops/plugins/nixops-libvirtd.nix b/pkgs/applications/networking/cluster/nixops/plugins/nixops-libvirtd.nix
index 4fec552e528c2..a315a7e2ae9b8 100644
--- a/pkgs/applications/networking/cluster/nixops/plugins/nixops-libvirtd.nix
+++ b/pkgs/applications/networking/cluster/nixops/plugins/nixops-libvirtd.nix
@@ -48,5 +48,6 @@ buildPythonPackage {
     homepage = "https://github.com/nix-community/nixops-libvirtd";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ aminechikhaoui ];
+    broken = true; # never built on Hydra
   };
 }
diff --git a/pkgs/applications/networking/cluster/nixops/unwrapped.nix b/pkgs/applications/networking/cluster/nixops/unwrapped.nix
index a435c70520efe..7f00babc15e4f 100644
--- a/pkgs/applications/networking/cluster/nixops/unwrapped.nix
+++ b/pkgs/applications/networking/cluster/nixops/unwrapped.nix
@@ -57,7 +57,7 @@ buildPythonApplication rec {
   };
 
   meta = with lib; {
-    description = "A tool for deploying to NixOS machines in a network or cloud";
+    description = "Tool for deploying to NixOS machines in a network or cloud";
     homepage = "https://github.com/NixOS/nixops";
     license = licenses.lgpl3Only;
     maintainers = with lib.maintainers; [ aminechikhaoui roberth ];
diff --git a/pkgs/applications/networking/cluster/node-problem-detector/default.nix b/pkgs/applications/networking/cluster/node-problem-detector/default.nix
index 449691f6dd854..4daed56dd9d37 100644
--- a/pkgs/applications/networking/cluster/node-problem-detector/default.nix
+++ b/pkgs/applications/networking/cluster/node-problem-detector/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "node-problem-detector";
-  version = "0.8.18";
+  version = "0.8.19";
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-/AfEnYBoCFc/XP5U6oxGDFU63q8llaeR91OPzZU7zm8=";
+    sha256 = "sha256-foVMmRgxy0A62EzmDiGUd2/x5zOpMAMUzXitpxuSIU0=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/networking/cluster/nomad-pack/default.nix b/pkgs/applications/networking/cluster/nomad-pack/default.nix
index a7a0ddf71391d..83b7cae25189c 100644
--- a/pkgs/applications/networking/cluster/nomad-pack/default.nix
+++ b/pkgs/applications/networking/cluster/nomad-pack/default.nix
@@ -29,7 +29,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/hashicorp/nomad-pack";
     changelog = "https://github.com/hashicorp/nomad-pack/blob/main/CHANGELOG.md";
-    description = "Nomad Pack is a templating and packaging tool used with HashiCorp Nomad.";
+    description = "Nomad Pack is a templating and packaging tool used with HashiCorp Nomad";
     license = licenses.mpl20;
     maintainers = with maintainers; [ techknowlogick ];
   };
diff --git a/pkgs/applications/networking/cluster/nomad/default.nix b/pkgs/applications/networking/cluster/nomad/default.nix
index 679ec253bdf07..e170919495d3f 100644
--- a/pkgs/applications/networking/cluster/nomad/default.nix
+++ b/pkgs/applications/networking/cluster/nomad/default.nix
@@ -38,7 +38,7 @@ let
 
       meta = with lib; {
         homepage = "https://www.nomadproject.io/";
-        description = "A Distributed, Highly Available, Datacenter-Aware Scheduler";
+        description = "Distributed, Highly Available, Datacenter-Aware Scheduler";
         mainProgram = "nomad";
         inherit license;
         maintainers = with maintainers; [ rushmorem pradeepchhetri techknowlogick cottand ];
@@ -70,9 +70,9 @@ rec {
 
   nomad_1_6 = generic {
     buildGoModule = buildGo121Module;
-    version = "1.6.8";
-    sha256 = "sha256-lc/HZgyzqWZNW2WHOFZ43gCeL5Y2hwK4lXPgWGboPOY=";
-    vendorHash = "sha256-ecLhq4OHDhA1Bd/97NMpfePqtuCtVje3BdvCzcwWzas=";
+    version = "1.6.10";
+    sha256 = "sha256-kiMdpJzjF0S7lrTX3sBFkWm0Gac9a+qlwCPcMKeVXXQ=";
+    vendorHash = "sha256-qnsPPV/NWTrqUa1v1CL16WfCH7B0zW9ZSnEmtqvotqI=";
     license = lib.licenses.mpl20;
     passthru.tests.nomad = nixosTests.nomad;
     preCheck = ''
@@ -91,4 +91,16 @@ rec {
       export PATH="$PATH:$NIX_BUILD_TOP/go/bin"
     '';
   };
+
+  nomad_1_8 = generic {
+    buildGoModule = buildGo121Module;
+    version = "1.8.0";
+    sha256 = "sha256-j/9wvnxYhv6h344904cO2Fi6pNeSV5IfcqS4mSjDqpo=";
+    vendorHash = "sha256-jNdLLs/mfARl5Uk9RalwSDFLAKqIISEkek3l1wV8EYE=";
+    license = lib.licenses.bsl11;
+    passthru.tests.nomad = nixosTests.nomad;
+    preCheck = ''
+      export PATH="$PATH:$NIX_BUILD_TOP/go/bin"
+    '';
+  };
 }
diff --git a/pkgs/applications/networking/cluster/openlens/default.nix b/pkgs/applications/networking/cluster/openlens/default.nix
index ef6dfea2d6675..4581aef00e2d3 100644
--- a/pkgs/applications/networking/cluster/openlens/default.nix
+++ b/pkgs/applications/networking/cluster/openlens/default.nix
@@ -29,7 +29,7 @@ appimageTools.wrapType2 {
   '';
 
   meta = with lib; {
-    description = "The Kubernetes IDE";
+    description = "Kubernetes IDE";
     homepage = "https://github.com/MuhammedKalkan/OpenLens";
     license = licenses.mit;
     maintainers = with maintainers; [ benwbooth sebtm ];
diff --git a/pkgs/applications/networking/cluster/opentofu/default.nix b/pkgs/applications/networking/cluster/opentofu/default.nix
index 1c8521d127347..ed2d78f6c79e2 100644
--- a/pkgs/applications/networking/cluster/opentofu/default.nix
+++ b/pkgs/applications/networking/cluster/opentofu/default.nix
@@ -14,13 +14,13 @@
 let
   package =  buildGoModule rec {
     pname = "opentofu";
-    version = "1.7.1";
+    version = "1.7.2";
 
     src = fetchFromGitHub {
       owner = "opentofu";
       repo = "opentofu";
       rev = "v${version}";
-      hash = "sha256-201zceUedEl93nyglWJo0f9SDfFX31toP0MzzHQeJds=";
+      hash = "sha256-g0aMpSENMKHCyKyB2Lhq9XjH9GIx7l4/Sz9GDXmzUqU=";
     };
 
     vendorHash = "sha256-cML742FfWFNIwGyIdRd3JWcfDlOXnJVgUXz4j5fa74Q=";
diff --git a/pkgs/applications/networking/cluster/pachyderm/default.nix b/pkgs/applications/networking/cluster/pachyderm/default.nix
index 1694359a02b24..b3c24f5851764 100644
--- a/pkgs/applications/networking/cluster/pachyderm/default.nix
+++ b/pkgs/applications/networking/cluster/pachyderm/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "pachyderm";
-  version = "2.9.5";
+  version = "2.10.2";
 
   src = fetchFromGitHub {
     owner = "pachyderm";
     repo = "pachyderm";
     rev = "v${version}";
-    hash = "sha256-9ykJMK51fm36sbICyuHJR7dSRnwIHhaQV2foKOuFmz0=";
+    hash = "sha256-5Q3T4yusnJVHU8QdXxbDuePToGp+hu+GnwqD7TG/0Rw=";
   };
 
-  vendorHash = "sha256-bAB2vMPHIcJaMobPukQyKiCq0Af0n4b5mjImTswGFTo=";
+  vendorHash = "sha256-NShVyjNyG06cLmt8rd71lFLvkd8KRWQjj6xUCx7NgSk=";
 
   subPackages = [ "src/server/cmd/pachctl" ];
 
diff --git a/pkgs/applications/networking/cluster/pgo-client/default.nix b/pkgs/applications/networking/cluster/pgo-client/default.nix
index 47062588dd61a..c417eb84f879f 100644
--- a/pkgs/applications/networking/cluster/pgo-client/default.nix
+++ b/pkgs/applications/networking/cluster/pgo-client/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   subPackages = [ "cmd/pgo" ];
 
   meta = with lib; {
-    description = "A CLI client for Crunchy PostgreSQL Kubernetes Operator";
+    description = "CLI client for Crunchy PostgreSQL Kubernetes Operator";
     homepage = "https://github.com/CrunchyData/postgres-operator";
     changelog = "https://github.com/CrunchyData/postgres-operator/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/popeye/default.nix b/pkgs/applications/networking/cluster/popeye/default.nix
index 547186ec51302..6b9bf60d45307 100644
--- a/pkgs/applications/networking/cluster/popeye/default.nix
+++ b/pkgs/applications/networking/cluster/popeye/default.nix
@@ -34,7 +34,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A Kubernetes cluster resource sanitizer";
+    description = "Kubernetes cluster resource sanitizer";
     mainProgram = "popeye";
     homepage = "https://github.com/derailed/popeye";
     changelog = "https://github.com/derailed/popeye/releases/tag/v${version}";
diff --git a/pkgs/applications/networking/cluster/prow/default.nix b/pkgs/applications/networking/cluster/prow/default.nix
index 9c8b311cf7cca..1ef34b011ef80 100644
--- a/pkgs/applications/networking/cluster/prow/default.nix
+++ b/pkgs/applications/networking/cluster/prow/default.nix
@@ -52,7 +52,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "A Kubernetes based CI/CD system";
+    description = "Kubernetes based CI/CD system";
     longDescription = ''
       Prow is a Kubernetes based CI/CD system. Jobs can be triggered by various
       types of events and report their status to many different services. In
diff --git a/pkgs/applications/networking/cluster/rancher/default.nix b/pkgs/applications/networking/cluster/rancher/default.nix
index 309b806a88700..ab781a71ec7e5 100644
--- a/pkgs/applications/networking/cluster/rancher/default.nix
+++ b/pkgs/applications/networking/cluster/rancher/default.nix
@@ -31,7 +31,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "The Rancher Command Line Interface (CLI) is a unified tool for interacting with your Rancher Server";
+    description = "Rancher Command Line Interface (CLI) is a unified tool for interacting with your Rancher Server";
     mainProgram = "rancher";
     homepage = "https://github.com/rancher/cli";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/rke/default.nix b/pkgs/applications/networking/cluster/rke/default.nix
index ebf37e05e5f24..cea0610f144ed 100644
--- a/pkgs/applications/networking/cluster/rke/default.nix
+++ b/pkgs/applications/networking/cluster/rke/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "rke";
-  version = "1.5.9";
+  version = "1.5.10";
 
   src = fetchFromGitHub {
     owner = "rancher";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-JLP2fZALPJmfj8fCsEPT0S2xsZ1HNQlhORNNrGxxgVg=";
+    hash = "sha256-e4YR3vYpaRVhwvBY8VwLp3XNXxnwYlS14VP0gSyLvJA=";
   };
 
-  vendorHash = "sha256-5SxRh9y8I0v3+lU4V9xGtbwWv6JmrvLmPX8TFKjvvD4=";
+  vendorHash = "sha256-++4d87ARL1czjL9I/AuodIP2PmbjjAQ5jf5x2bP16yQ=";
 
   subPackages = [ "." ];
 
@@ -19,7 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/rancher/rke";
-    description = "An extremely simple, lightning fast Kubernetes distribution that runs entirely within containers";
+    description = "Extremely simple, lightning fast Kubernetes distribution that runs entirely within containers";
     mainProgram = "rke";
     changelog = "https://github.com/rancher/rke/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/rke2/README.md b/pkgs/applications/networking/cluster/rke2/README.md
new file mode 100644
index 0000000000000..f7a12677db965
--- /dev/null
+++ b/pkgs/applications/networking/cluster/rke2/README.md
@@ -0,0 +1,25 @@
+# RKE2 Version
+
+RKE2, Kubernetes, and other clustered software has the property of not being able to update atomically. Most software in nixpkgs, like for example bash, can be updated as part of a `nixos-rebuild switch` without having to worry about the old and the new bash interacting in some way.
+
+> [!NOTE]
+> Upgrade the server nodes first, one at a time. Once all servers have been upgraded, you may then upgrade agent nodes.
+
+## Release Channels
+
+RKE2 has there own release channels, which are: `stable`, `latest` and `testing`.
+
+The `stable` channel is the default channel and is recommended for production use. The `latest` channel is the latest stable release. The `testing` channel is the latest release, including pre-releases.
+
+| Channel   | Description                                                                                                                                                                                    |
+| --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `stable`  | **(Default)** Stable is recommended for production environments. These releases have been through a period of community hardening, and are compatible with the most recent release of Rancher. |
+| `latest`  | Latest is recommended for trying out the latest features. These releases have not yet been through a period of community hardening, and may not be compatible with Rancher.                    |
+| `testing` | The most recent release, including pre-releases.                                                                                                                                               |
+
+Learn more about the [RKE2 release channels](https://docs.rke2.io/upgrade/manual_upgrade).
+
+For an exhaustive and up-to-date list of channels, you can visit the [rke2 channel service API](https://update.rke2.io/v1-release/channels). For more technical details on how channels work, you can see the [channelserver project](https://github.com/rancher/channelserver).
+
+> [!TIP]
+> When attempting to upgrade to a new version of RKE2, the [Kubernetes version skew policy](https://kubernetes.io/docs/setup/release/version-skew-policy) applies. Ensure that your plan does not skip intermediate minor versions when upgrading. Nothing in the upgrade process will protect against unsupported changes to the Kubernetes version.
diff --git a/pkgs/applications/networking/cluster/rke2/builder.nix b/pkgs/applications/networking/cluster/rke2/builder.nix
new file mode 100644
index 0000000000000..285108834c1e7
--- /dev/null
+++ b/pkgs/applications/networking/cluster/rke2/builder.nix
@@ -0,0 +1,99 @@
+lib: { rke2Version, rke2RepoSha256, rke2VendorHash, updateScript
+
+, rke2Commit, k8sImageTag, etcdVersion, pauseVersion, ccmVersion, dockerizedVersion, ... }:
+
+{ lib, stdenv, buildGoModule, go, fetchgit, makeWrapper
+
+# Runtime dependencies
+, procps, coreutils, util-linux, ethtool, socat, iptables, bridge-utils, iproute2, kmod, lvm2
+
+# Testing dependencies
+, nixosTests, testers, rke2
+}:
+
+buildGoModule rec {
+  pname = "rke2";
+  version = rke2Version;
+
+  src = fetchgit {
+    url = "https://github.com/rancher/rke2.git";
+    rev = "v${version}";
+    sha256 = rke2RepoSha256;
+  };
+
+  vendorHash = rke2VendorHash;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  # Important utilities used by the kubelet.
+  # See: https://github.com/kubernetes/kubernetes/issues/26093#issuecomment-237202494
+  # Notice the list in that issue is stale, but as a redundancy reservation.
+  buildInputs = [
+    procps # pidof pkill
+    coreutils # uname touch env nice du
+    util-linux # lsblk fsck mkfs nsenter mount umount
+    ethtool # ethtool
+    socat # socat
+    iptables # iptables iptables-restore iptables-save
+    bridge-utils # brctl
+    iproute2 # ip tc
+    kmod # modprobe
+    lvm2 # dmsetup
+  ];
+
+  # See: https://github.com/rancher/rke2/blob/e7f87c6dd56fdd76a7dab58900aeea8946b2c008/scripts/build-binary#L27-L38
+  ldflags = [
+    "-w"
+    "-X github.com/k3s-io/k3s/pkg/version.GitCommit=${lib.substring 0 6 rke2Commit}"
+    "-X github.com/k3s-io/k3s/pkg/version.Program=${pname}"
+    "-X github.com/k3s-io/k3s/pkg/version.Version=v${version}"
+    "-X github.com/k3s-io/k3s/pkg/version.UpstreamGolang=go${go.version}"
+    "-X github.com/rancher/rke2/pkg/images.DefaultRegistry=docker.io"
+    "-X github.com/rancher/rke2/pkg/images.DefaultEtcdImage=rancher/hardened-etcd:${etcdVersion}-build20240418"
+    "-X github.com/rancher/rke2/pkg/images.DefaultKubernetesImage=rancher/hardened-kubernetes:${k8sImageTag}"
+    "-X github.com/rancher/rke2/pkg/images.DefaultPauseImage=rancher/mirrored-pause:${pauseVersion}"
+    "-X github.com/rancher/rke2/pkg/images.DefaultRuntimeImage=rancher/rke2-runtime:${dockerizedVersion}"
+    "-X github.com/rancher/rke2/pkg/images.DefaultCloudControllerManagerImage=rancher/rke2-cloud-provider:${ccmVersion}"
+  ];
+
+  tags = [
+    "no_cri_dockerd"
+    "no_embedded_executor"
+    "no_stage"
+    "sqlite_omit_load_extension"
+    "selinux"
+    "netgo"
+    "osusergo"
+  ];
+
+  subPackages = [ "." ];
+
+  installPhase = ''
+    install -D $GOPATH/bin/rke2 $out/bin/rke2
+    wrapProgram $out/bin/rke2 \
+      --prefix PATH : ${lib.makeBinPath buildInputs}
+  '';
+
+  doCheck = false;
+
+  passthru.updateScript = updateScript;
+
+  passthru.tests = {
+    version = testers.testVersion {
+      package = rke2;
+      version = "v${version}";
+    };
+  } // lib.optionalAttrs stdenv.isLinux {
+    inherit (nixosTests) rke2;
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/rancher/rke2";
+    description = "RKE2, also known as RKE Government, is Rancher's next-generation Kubernetes distribution";
+    changelog = "https://github.com/rancher/rke2/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ zimbatm zygot ];
+    mainProgram = "rke2";
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/networking/cluster/rke2/default.nix b/pkgs/applications/networking/cluster/rke2/default.nix
index 99b0998582f4e..fc65ac8694731 100644
--- a/pkgs/applications/networking/cluster/rke2/default.nix
+++ b/pkgs/applications/networking/cluster/rke2/default.nix
@@ -1,41 +1,19 @@
-{ lib, stdenv, buildGoModule, fetchFromGitHub }:
-
-buildGoModule rec {
-  pname = "rke2";
-  version = "1.29.0+rke2r1";
-
-  src = fetchFromGitHub {
-    owner = "rancher";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-E59GUcbnbvsGZYn87RGNrGTVUsydKsjL+C5h15q74p0=";
-  };
-
-  vendorHash = "sha256-Og0CqxNnhRN6PdggneGK05uprZ2D7lux/snXcArIm8Q=";
-
-  postPatch = ''
-    # Patch the build scripts so they work in the Nix build environment.
-    patchShebangs ./scripts
-
-    # Disable the static build as it breaks.
-    sed -e 's/STATIC_FLAGS=.*/STATIC_FLAGS=/g' -i scripts/build-binary
-  '';
-
-  buildPhase = ''
-    DRONE_TAG="v${version}" ./scripts/build-binary
-  '';
-
-  installPhase = ''
-    install -D ./bin/rke2 $out/bin/rke2
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/rancher/rke2";
-    description = "RKE2, also known as RKE Government, is Rancher's next-generation Kubernetes distribution.";
-    changelog = "https://github.com/rancher/rke2/releases/tag/v${version}";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ zimbatm zygot ];
-    mainProgram = "rke2";
-    broken = stdenv.isDarwin;
-  };
+{ lib, callPackage, ... }@args:
+
+let
+  common = opts: callPackage (import ./builder.nix lib opts);
+  extraArgs = builtins.removeAttrs args [ "callPackage" ];
+in
+{
+  rke2_stable = common ((import ./stable/versions.nix) // {
+    updateScript = [ ./update-script.sh "stable" ];
+  }) extraArgs;
+
+  rke2_latest = common ((import ./latest/versions.nix) // {
+    updateScript = [ ./update-script.sh "latest" ];
+  }) extraArgs;
+
+  rke2_testing = common ((import ./testing/versions.nix) // {
+    updateScript = [ ./update-script.sh "testing" ];
+  }) extraArgs;
 }
diff --git a/pkgs/applications/networking/cluster/rke2/latest/versions.nix b/pkgs/applications/networking/cluster/rke2/latest/versions.nix
new file mode 100644
index 0000000000000..c1b2695fd9d7a
--- /dev/null
+++ b/pkgs/applications/networking/cluster/rke2/latest/versions.nix
@@ -0,0 +1,14 @@
+{
+  rke2Version = "1.30.1+rke2r1";
+  rke2RepoSha256 = "0jrvvpj9fnlbykyr06w1f92ay708xzaizg8dhg1z4bsq1cdgs33k";
+  rke2Commit = "e7f87c6dd56fdd76a7dab58900aeea8946b2c008";
+  rke2VendorHash = "sha256-QqV8mSbqa8A5zABHQoVB2jht/eYCoqTZ/WoAqIl9oZY=";
+  k8sVersion = "v1.30.1";
+  k8sImageTag = "v1.30.1-rke2r1-build20240515";
+  etcdVersion = "v3.5.9-k3s1";
+  pauseVersion = "3.6";
+  ccmVersion = "v1.29.3-build20240412";
+  dockerizedVersion = "v1.30.1-rke2r1";
+  golangVersion = "go1.22.2";
+  eol = "2025-06-28";
+}
diff --git a/pkgs/applications/networking/cluster/rke2/stable/versions.nix b/pkgs/applications/networking/cluster/rke2/stable/versions.nix
new file mode 100644
index 0000000000000..0fd4279226fef
--- /dev/null
+++ b/pkgs/applications/networking/cluster/rke2/stable/versions.nix
@@ -0,0 +1,14 @@
+{
+  rke2Version = "1.28.10+rke2r1";
+  rke2RepoSha256 = "1pbanikvrl6rqrplrpvjc9ym8qq1yrs621gwy99shp0prfw5zvsx";
+  rke2Commit = "b0d0d687d98f4fa015e7b30aaf2807b50edcc5d7";
+  rke2VendorHash = "sha256-iidkTSrrHyW5ZEouzHAWUwCC9nplGz1v/E9bM2lMPeM=";
+  k8sVersion = "v1.28.10";
+  k8sImageTag = "v1.28.10-rke2r1-build20240514";
+  etcdVersion = "v3.5.9-k3s1";
+  pauseVersion = "3.6";
+  ccmVersion = "v1.29.3-build20240412";
+  dockerizedVersion = "v1.28.10-rke2r1";
+  golangVersion = "go1.21.9";
+  eol = "2024-10-28";
+}
diff --git a/pkgs/applications/networking/cluster/rke2/testing/versions.nix b/pkgs/applications/networking/cluster/rke2/testing/versions.nix
new file mode 100644
index 0000000000000..c0447324a1122
--- /dev/null
+++ b/pkgs/applications/networking/cluster/rke2/testing/versions.nix
@@ -0,0 +1,14 @@
+{
+  rke2Version = "1.30.1-rc3+rke2r1";
+  rke2RepoSha256 = "0jrvvpj9fnlbykyr06w1f92ay708xzaizg8dhg1z4bsq1cdgs33k";
+  rke2Commit = "e7f87c6dd56fdd76a7dab58900aeea8946b2c008";
+  rke2VendorHash = "sha256-QqV8mSbqa8A5zABHQoVB2jht/eYCoqTZ/WoAqIl9oZY=";
+  k8sVersion = "v1.30.1";
+  k8sImageTag = "v1.30.1-rke2r1-build20240515";
+  etcdVersion = "v3.5.9-k3s1";
+  pauseVersion = "3.6";
+  ccmVersion = "v1.29.3-build20240412";
+  dockerizedVersion = "v1.30.1-rc3-rke2r1";
+  golangVersion = "go1.22.2";
+  eol = "2025-06-28";
+}
diff --git a/pkgs/applications/networking/cluster/rke2/update-script.sh b/pkgs/applications/networking/cluster/rke2/update-script.sh
new file mode 100755
index 0000000000000..608f49bb64903
--- /dev/null
+++ b/pkgs/applications/networking/cluster/rke2/update-script.sh
@@ -0,0 +1,86 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl git gnugrep gnused yq-go nix-prefetch
+
+set -x -eu -o pipefail
+
+CHANNEL_NAME="${1:?Must provide a release channel, like 'stable', as the only argument}"
+
+mkdir --parents --verbose ./${CHANNEL_NAME}
+
+LATEST_TAG_NAME=$(curl --silent --fail https://update.rke2.io/v1-release/channels | \
+    yq eval ".data[] | select(.id == \"${CHANNEL_NAME}\").latest" - | \
+    sort -rV | grep --extended-regexp "^v[0-9]+\.[0-9]+\.[0-9]+" | head -n1)
+
+RKE2_VERSION=$(echo ${LATEST_TAG_NAME} | sed 's/^v//')
+
+RKE2_REPO_SHA256=$(nix-prefetch-url --quiet --unpack \
+        https://github.com/rancher/rke2/archive/refs/tags/${LATEST_TAG_NAME}.tar.gz)
+
+RKE2_COMMIT=$(curl --silent --fail ${GITHUB_TOKEN:+-u ":${GITHUB_TOKEN}"} \
+        https://api.github.com/repos/rancher/rke2/git/refs/tags | \
+    yq eval ".[] | select(.ref == \"refs/tags/${LATEST_TAG_NAME}\").object.sha" -)
+
+VERSIONS_SCRIPT=$(mktemp --suffix ".${RKE2_COMMIT:0:6}.sh")
+trap "rm --force ${VERSIONS_SCRIPT}" EXIT
+
+curl --silent --fail --output ${VERSIONS_SCRIPT} \
+        https://raw.githubusercontent.com/rancher/rke2/${RKE2_COMMIT}/scripts/version.sh
+
+set +eu
+DRONE_TAG=${LATEST_TAG_NAME} source ${VERSIONS_SCRIPT}
+set -eu
+
+KUBERNETES_CYCLES=$(echo ${KUBERNETES_VERSION} | grep -Eo "[0-9]+\.[0-9]+")
+KUBERNETES_EOL=$(curl --silent --fail \
+        https://endoflife.date/api/kubernetes/${KUBERNETES_CYCLES}.json | \
+    yq eval ".eol" -)
+
+FAKE_HASH="sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
+
+cat > ./${CHANNEL_NAME}/versions.nix << EOF
+{
+  rke2Version = "${RKE2_VERSION}";
+  rke2RepoSha256 = "${RKE2_REPO_SHA256}";
+  rke2Commit = "${RKE2_COMMIT}";
+  rke2VendorHash = "${FAKE_HASH}";
+  k8sVersion = "${KUBERNETES_VERSION}";
+  k8sImageTag = "${KUBERNETES_IMAGE_TAG}";
+  etcdVersion = "${ETCD_VERSION}";
+  pauseVersion = "${PAUSE_VERSION}";
+  ccmVersion = "${CCM_VERSION}";
+  dockerizedVersion = "${DOCKERIZED_VERSION}";
+  golangVersion = "${VERSION_GOLANG}";
+  eol = "${KUBERNETES_EOL}";
+}
+EOF
+
+NIXPKGS_ROOT=$(git rev-parse --show-toplevel)
+
+set +e
+RKE2_VENDOR_HASH=$(nix-prefetch -I nixpkgs=${NIXPKGS_ROOT} \
+        "{ sha256 }: (import ${NIXPKGS_ROOT}/. {}).rke2_${CHANNEL_NAME}.goModules.overrideAttrs (_: { vendorHash = sha256; })")
+set -e
+
+if [ -n "${RKE2_VENDOR_HASH:-}" ]; then
+    sed -i "s#${FAKE_HASH}#${RKE2_VENDOR_HASH}#g" ./${CHANNEL_NAME}/versions.nix
+else
+    echo "Update failed. 'RKE2_VENDOR_HASH' is empty."
+    exit 1
+fi
+
+# Implement commit
+# See: https://nixos.org/manual/nixpkgs/stable/#var-passthru-updateScript-commit
+OLD_VERSION=$(nix-instantiate --eval -E \
+        "with import ${NIXPKGS_ROOT}/. {}; rke2.version or (builtins.parseDrvName rke2.name).version" | \
+    tr -d '"')
+
+cat << EOF
+[{
+  "attrPath": "rke2_${CHANNEL_NAME}",
+  "oldVersion": "${OLD_VERSION}",
+  "newVersion": "${RKE2_VERSION}",
+  "files": [
+    "${PWD}/${CHANNEL_NAME}/versions.nix"
+  ]
+}]
+EOF
diff --git a/pkgs/applications/networking/cluster/roxctl/default.nix b/pkgs/applications/networking/cluster/roxctl/default.nix
index abcb6fd4299ac..b710fe68b3ec4 100644
--- a/pkgs/applications/networking/cluster/roxctl/default.nix
+++ b/pkgs/applications/networking/cluster/roxctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "roxctl";
-  version = "4.3.5";
+  version = "4.4.3";
 
   src = fetchFromGitHub {
     owner = "stackrox";
     repo = "stackrox";
     rev = version;
-    sha256 = "sha256-zTZ03Qtb3ndBf1MunhYS8rzPReExzEPGxCh1JexkwuA=";
+    sha256 = "sha256-sQUX2Ou+fL4G2u/Mdnl9SwdwRkogiyq3tkauUeW//dU=";
   };
 
-  vendorHash = "sha256-Sl5eIK8PWeGi2V7q/Qm5Gfjj1A9nQPtM0BGdO6inPxk=";
+  vendorHash = "sha256-j/ouxh4nMg5hyzT2RuP+hJrAeK7+PleT2W0DWxxjOfA=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix b/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
index 866775702521e..ecc353a178ef1 100644
--- a/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
+++ b/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
@@ -5,7 +5,7 @@
 
 buildGoPackage rec {
   pname = "ssm-session-manager-plugin";
-  version = "1.2.553.0";
+  version = "1.2.633.0";
 
   goPackagePath = "github.com/aws/session-manager-plugin";
 
@@ -13,7 +13,7 @@ buildGoPackage rec {
     owner = "aws";
     repo = "session-manager-plugin";
     rev = version;
-    hash = "sha256-jyCHhD3KyHob7z200tEkAUR9ALJVsGsRQ7Wx4B6jBnQ=";
+    hash = "sha256-dwNCTJOxpothAcJSfch2jkxdgXg6xDd/fDQCQo2Xd+8=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/cluster/stern/default.nix b/pkgs/applications/networking/cluster/stern/default.nix
index fd4b70de5acd8..eeacf4c0fe3aa 100644
--- a/pkgs/applications/networking/cluster/stern/default.nix
+++ b/pkgs/applications/networking/cluster/stern/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "stern";
-  version = "1.29.0";
+  version = "1.30.0";
 
   src = fetchFromGitHub {
     owner = "stern";
     repo = "stern";
     rev = "v${version}";
-    sha256 = "sha256-8Tvhul7GwVbRJqJenbYID8OY5zGzFhIormUwEtLE0Lw=";
+    sha256 = "sha256-sqRPX+NC58mQi0wvs3u3Lb81LBntaY1FzzlY1TIiz18=";
   };
 
   vendorHash = "sha256-RLcF7KfKtkwB+nWzaQb8Va9pau+TS2uE9AmJ0aFNsik=";
@@ -23,7 +23,7 @@ buildGoModule rec {
     stern = if stdenv.buildPlatform.canExecute stdenv.hostPlatform then "$out" else buildPackages.stern;
   in
     ''
-      for shell in bash zsh; do
+      for shell in bash zsh fish; do
         ${stern}/bin/stern --completion $shell > stern.$shell
         installShellCompletion stern.$shell
       done
diff --git a/pkgs/applications/networking/cluster/talosctl/default.nix b/pkgs/applications/networking/cluster/talosctl/default.nix
index 2b148c859e31c..067df7c8952f5 100644
--- a/pkgs/applications/networking/cluster/talosctl/default.nix
+++ b/pkgs/applications/networking/cluster/talosctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "talosctl";
-  version = "1.7.2";
+  version = "1.7.4";
 
   src = fetchFromGitHub {
     owner = "siderolabs";
     repo = "talos";
     rev = "v${version}";
-    hash = "sha256-hYfh/faOQtN1MTnaCHsdogzBU3Xf6BY4apK+VuVCh6E=";
+    hash = "sha256-TVRWcgBt6MmHOh3LYSjJtp5qf/+ar+LWDGfHKQhDFZ8=";
   };
 
-  vendorHash = "sha256-5Dxtwu+PM0TbznIPTl8QxgOvNsQZUDMGY2kf+PSfCqo=";
+  vendorHash = "sha256-30fMLczb4+BVSxZSbhQ2S1MrQ2+Ykyqf+Dio8n0LGE0=";
 
   ldflags = [ "-s" "-w" ];
 
@@ -31,7 +31,7 @@ buildGoModule rec {
   doCheck = false; # no tests
 
   meta = with lib; {
-    description = "A CLI for out-of-band management of Kubernetes nodes created by Talos";
+    description = "CLI for out-of-band management of Kubernetes nodes created by Talos";
     mainProgram = "talosctl";
     homepage = "https://www.talos.dev/";
     license = licenses.mpl20;
diff --git a/pkgs/applications/networking/cluster/tanka/default.nix b/pkgs/applications/networking/cluster/tanka/default.nix
index 61f56f4252160..fd805916ab03b 100644
--- a/pkgs/applications/networking/cluster/tanka/default.nix
+++ b/pkgs/applications/networking/cluster/tanka/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "tanka";
-  version = "0.26.0";
+  version = "0.27.1";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-xKB/SKiw3cKqdpl869Bs/NO1Jbrla8Un0hH4kIGqAPs=";
+    sha256 = "sha256-4ChTYwRp9R8U97hH1Bgrxr5a/5IoWRAmFgJbD7oJpO4=";
   };
 
-  vendorHash = "sha256-+BCUQ+czqWkxbDoSvCaAxewTN0SuI+hCHEQpLOvNGj4=";
+  vendorHash = "sha256-u2l3cX8PKHUCPkHuCOyED2LLWygYCDJEhfTjycEBzHI=";
 
   doCheck = false;
 
@@ -23,7 +23,30 @@ buildGoModule rec {
 
   postInstall = ''
     echo "complete -C $out/bin/tk tk" > tk.bash
-    installShellCompletion tk.bash
+
+    cat >tk.fish <<EOF
+
+    function __complete_tk
+        set -lx COMP_LINE (commandline -cp)
+        test -z (commandline -ct)
+        and set COMP_LINE "\$COMP_LINE "
+        $out/bin/tk
+    end
+    complete -f -c tk -a "(__complete_tk)"
+
+    EOF
+
+    cat >tk.zsh <<EOF
+    #compdef tk
+    autoload -U +X bashcompinit && bashcompinit
+    complete -o nospace -C $out/bin/tk tk
+    EOF
+
+    installShellCompletion \
+      --cmd tk \
+      --bash tk.bash \
+      --fish tk.fish \
+      --zsh tk.zsh
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/cluster/temporal-cli/default.nix b/pkgs/applications/networking/cluster/temporal-cli/default.nix
index fe23809bf5d3e..4bf6a34f1c0bd 100644
--- a/pkgs/applications/networking/cluster/temporal-cli/default.nix
+++ b/pkgs/applications/networking/cluster/temporal-cli/default.nix
@@ -17,16 +17,16 @@ let
 
   tctl-next = buildGoModule rec {
     pname = "tctl-next";
-    version = "0.12.0";
+    version = "0.13.0";
 
     src = fetchFromGitHub {
       owner = "temporalio";
       repo = "cli";
       rev = "v${version}";
-      hash = "sha256-rqwDubKNBvtJ4rTQheCoSIcbfQZQN3iD99PcZewmx5c=";
+      hash = "sha256-2zk+B+GomLZwep5LNRpWJj8JjFC0OxAl1XhAv+8b2kc=";
     };
 
-    vendorHash = "sha256-bnmlh11gtNdgcrI20gjNqxWB+OQTv0b9lgETucoBaXc=";
+    vendorHash = "sha256-NLteuVOswIw2ModdE0Ak4XmApkHLoYDt6SDAZGsgwBk=";
 
     inherit overrideModAttrs;
 
diff --git a/pkgs/applications/networking/cluster/temporal/default.nix b/pkgs/applications/networking/cluster/temporal/default.nix
index 49094fa960429..3b23b750864cf 100644
--- a/pkgs/applications/networking/cluster/temporal/default.nix
+++ b/pkgs/applications/networking/cluster/temporal/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "temporal";
-  version = "1.23.1";
+  version = "1.24.2";
 
   src = fetchFromGitHub {
     owner = "temporalio";
     repo = "temporal";
     rev = "v${version}";
-    hash = "sha256-yu5EfW5ThTJx6ouCBoEEq9wU4MtlFGqqRaHMgIPaRqY=";
+    hash = "sha256-hQkus8BZvtR2ObCJbtP2SZST9tRxuPjFwR+jKDYH8Bs=";
   };
 
-  vendorHash = "sha256-INmc/qbayjI+umkoGL8ih/iC7xqUkO1kfIZN5cQn/bw=";
+  vendorHash = "sha256-u9xQFTwVKEGRPhBwcBgexCQhlNO91yP4m4vchCdBt9E=";
 
   excludedPackages = [ "./build" ];
 
@@ -41,7 +41,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A microservice orchestration platform which enables developers to build scalable applications without sacrificing productivity or reliability";
+    description = "Microservice orchestration platform which enables developers to build scalable applications without sacrificing productivity or reliability";
     homepage = "https://temporal.io";
     changelog = "https://github.com/temporalio/temporal/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/cluster/temporalite/default.nix b/pkgs/applications/networking/cluster/temporalite/default.nix
index 5581c1694534e..007daac6bef43 100644
--- a/pkgs/applications/networking/cluster/temporalite/default.nix
+++ b/pkgs/applications/networking/cluster/temporalite/default.nix
@@ -27,7 +27,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "An experimental distribution of Temporal that runs as a single process";
+    description = "Experimental distribution of Temporal that runs as a single process";
     mainProgram = "temporalite";
     homepage = "https://github.com/temporalio/temporalite";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/cluster/terraform-docs/default.nix b/pkgs/applications/networking/cluster/terraform-docs/default.nix
index 0a07d0e8627ae..1890a26d99c16 100644
--- a/pkgs/applications/networking/cluster/terraform-docs/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-docs/default.nix
@@ -19,7 +19,7 @@ buildGoModule rec {
   subPackages = [ "." ];
 
   meta = with lib; {
-    description = "A utility to generate documentation from Terraform modules in various output formats";
+    description = "Utility to generate documentation from Terraform modules in various output formats";
     mainProgram = "terraform-docs";
     homepage = "https://github.com/terraform-docs/terraform-docs/";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json
index 2428750c69619..c23bd6e7372e6 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -508,6 +508,15 @@
     "spdx": "MPL-2.0",
     "vendorHash": null
   },
+  "harbor": {
+    "hash": "sha256-Pv4Eoswmx+FVVq6jqP69bCMrUmt5persxdrtvY9N79I=",
+    "homepage": "https://registry.terraform.io/providers/goharbor/harbor",
+    "owner": "goharbor",
+    "repo": "terraform-provider-harbor",
+    "rev": "v3.10.10",
+    "spdx": "MIT",
+    "vendorHash": "sha256-1zaC82m8ylkz4lSocDVoXjF6yWWEL4He0lIKXs/7VtE="
+  },
   "hcloud": {
     "hash": "sha256-D7RBrpOxfSfeip7z+mAkWBjSTVnnM/MfN7Qvl/E+nA0=",
     "homepage": "https://registry.terraform.io/providers/hetznercloud/hcloud",
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index 6abdcb2bb30e6..14bd84533894d 100644
--- a/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/pkgs/applications/networking/cluster/terraform/default.nix
@@ -56,7 +56,6 @@ let
         license = licenses.bsl11;
         maintainers = with maintainers; [
           Chili-Man
-          babariviere
           kalbasit
           timstott
           zimbatm
@@ -166,9 +165,9 @@ rec {
   mkTerraform = attrs: pluggable (generic attrs);
 
   terraform_1 = mkTerraform {
-    version = "1.8.3";
-    hash = "sha256-4W1Cs3PAGn43eGDK15qSvN+gLdkkoFIwhejcJsCqcYA=";
-    vendorHash = "sha256-2+ctm1lJjCHITWV7BqoqgBlXKjNT4lueAt4F3UtoL9Q=";
+    version = "1.8.5";
+    hash = "sha256-5PzP0LUJPpOQQ8YqwBFyEFcsHF2O1uDD8Yh8wB3uJ8s=";
+    vendorHash = "sha256-PXA2AWq1IFmnqhhU92S9UaIYTUAAn5lsg3S7h5hBOQE=";
     patches = [ ./provider-path-0_15.patch ];
     passthru = {
       inherit plugins;
diff --git a/pkgs/applications/networking/cluster/terranix/default.nix b/pkgs/applications/networking/cluster/terranix/default.nix
index 2c42ac08d0591..4eb04c628646f 100644
--- a/pkgs/applications/networking/cluster/terranix/default.nix
+++ b/pkgs/applications/networking/cluster/terranix/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A NixOS like terraform-json generator";
+    description = "NixOS like terraform-json generator";
     homepage = "https://terranix.org";
     license = licenses.gpl3;
     platforms = platforms.unix;
diff --git a/pkgs/applications/networking/cluster/tftui/default.nix b/pkgs/applications/networking/cluster/tftui/default.nix
index f7faea2dd1956..9af694c683fd9 100644
--- a/pkgs/applications/networking/cluster/tftui/default.nix
+++ b/pkgs/applications/networking/cluster/tftui/default.nix
@@ -7,14 +7,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "tftui";
-  version = "0.13.1";
+  version = "0.13.5";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "idoavrah";
     repo = "terraform-tui";
     rev = "refs/tags/v${version}";
-    hash = "sha256-5eMOd+jpJh5jxthzk5JCl3vvri0PtffolSzdHY/3nbg=";
+    hash = "sha256-xOlPuPVwfVT7jfBJPqZ5FbOs80HE0k2ZqcA+Jcxh9p4=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/applications/networking/cluster/timoni/default.nix b/pkgs/applications/networking/cluster/timoni/default.nix
index 40511cc74ebc3..482aa416f2d8a 100644
--- a/pkgs/applications/networking/cluster/timoni/default.nix
+++ b/pkgs/applications/networking/cluster/timoni/default.nix
@@ -41,7 +41,7 @@ buildGo122Module rec {
   meta = with lib; {
     homepage = "https://timoni.sh";
     changelog = "https://github.com/stefanprodan/timoni/releases/tag/${src.rev}";
-    description = "A package manager for Kubernetes, powered by CUE and inspired by Helm";
+    description = "Package manager for Kubernetes, powered by CUE and inspired by Helm";
     mainProgram = "timoni";
     license = licenses.asl20;
     maintainers = with maintainers; [ votava ];
diff --git a/pkgs/applications/networking/cluster/waagent/default.nix b/pkgs/applications/networking/cluster/waagent/default.nix
index 94aba4b3b5672..294440d820e1d 100644
--- a/pkgs/applications/networking/cluster/waagent/default.nix
+++ b/pkgs/applications/networking/cluster/waagent/default.nix
@@ -14,12 +14,12 @@ let
 in
 python.pkgs.buildPythonApplication rec {
   pname = "waagent";
-  version = "2.10.0.8";
+  version = "2.11.1.4";
   src = fetchFromGitHub {
     owner = "Azure";
     repo = "WALinuxAgent";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-Ilm29z+BJToVxdJTUAZO3Lr2DyOIvK6GW79GxAmfeM4=";
+    sha256 = "sha256-5V9js9gGkIsdGYrQQK/V6tPfL9lh2Cht4llOKBVTyOM=";
   };
   patches = [
     # Suppress the following error when waagent tries to configure sshd:
@@ -64,7 +64,7 @@ python.pkgs.buildPythonApplication rec {
   dontWrapPythonPrograms = false;
 
   meta = {
-    description = "The Microsoft Azure Linux Agent (waagent)";
+    description = "Microsoft Azure Linux Agent (waagent)";
     mainProgram = "waagent";
     longDescription = ''
       The Microsoft Azure Linux Agent (waagent)
diff --git a/pkgs/applications/networking/cluster/werf/default.nix b/pkgs/applications/networking/cluster/werf/default.nix
deleted file mode 100644
index cc1347d0f4d0d..0000000000000
--- a/pkgs/applications/networking/cluster/werf/default.nix
+++ /dev/null
@@ -1,97 +0,0 @@
-{ lib
-, stdenv
-, buildGoModule
-, fetchFromGitHub
-, installShellFiles
-, btrfs-progs
-, testers
-, werf
-}:
-
-buildGoModule rec {
-  pname = "werf";
-  version = "2.1.0";
-
-  src = fetchFromGitHub {
-    owner = "werf";
-    repo = "werf";
-    rev = "v${version}";
-    hash = "sha256-Qur3TzFkHbPICHiJLUSp1i1uGCBIft5sp92voLR8Ics=";
-  };
-
-  vendorHash = "sha256-kpW72OnK5YybW5YuW2eTleso0fgyDfgbJRK4QSP8ocQ=";
-
-  proxyVendor = true;
-
-  subPackages = [ "cmd/werf" ];
-
-  nativeBuildInputs = [ installShellFiles ];
-
-  buildInputs = lib.optionals stdenv.isLinux [ btrfs-progs ]
-    ++ lib.optionals stdenv.hostPlatform.isGnu [ stdenv.cc.libc.static ];
-
-  CGO_ENABLED = if stdenv.isLinux then 1 else 0;
-
-  ldflags = [
-    "-s"
-    "-w"
-    "-X github.com/werf/werf/v2/pkg/werf.Version=${src.rev}"
-  ] ++ lib.optionals (CGO_ENABLED == 1) [
-    "-extldflags=-static"
-    "-linkmode external"
-  ];
-
-  tags = [
-    "containers_image_openpgp"
-    "dfrunmount"
-    "dfrunnetwork"
-    "dfrunsecurity"
-    "dfssh"
-  ] ++ lib.optionals (CGO_ENABLED == 1) [
-    "cni"
-    "exclude_graphdriver_devicemapper"
-    "netgo"
-    "no_devmapper"
-    "osusergo"
-    "static_build"
-  ];
-
-  preCheck = ''
-    # Test all targets.
-    unset subPackages
-
-    # Remove tests that require external services.
-    rm -rf \
-      integration/suites \
-      pkg/true_git/*test.go \
-      test/e2e
-  '' + lib.optionalString (CGO_ENABLED == 0) ''
-    # A workaround for osusergo.
-    export USER=nixbld
-  '';
-
-  postInstall = ''
-    installShellCompletion --cmd werf \
-      --bash <($out/bin/werf completion --shell=bash) \
-      --zsh <($out/bin/werf completion --shell=zsh)
-  '';
-
-  passthru.tests.version = testers.testVersion {
-    package = werf;
-    command = "werf version";
-    version = src.rev;
-  };
-
-  meta = with lib; {
-    description = "GitOps delivery tool";
-    mainProgram = "werf";
-    longDescription = ''
-      The CLI tool gluing Git, Docker, Helm & Kubernetes with any CI system to
-      implement CI/CD and Giterminism.
-    '';
-    homepage = "https://werf.io";
-    changelog = "https://github.com/werf/werf/releases/tag/${src.rev}";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ azahi ];
-  };
-}
diff --git a/pkgs/applications/networking/cluster/yor/default.nix b/pkgs/applications/networking/cluster/yor/default.nix
index 28536a7ed07d9..2e941997f77d0 100644
--- a/pkgs/applications/networking/cluster/yor/default.nix
+++ b/pkgs/applications/networking/cluster/yor/default.nix
@@ -33,7 +33,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "Extensible auto-tagger for your IaC files. The ultimate way to link entities in the cloud back to the codified resource which created it.";
+    description = "Extensible auto-tagger for your IaC files. The ultimate way to link entities in the cloud back to the codified resource which created it";
     homepage = "https://github.com/bridgecrewio/yor";
     changelog = "https://github.com/bridgecrewio/yor/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/zarf/default.nix b/pkgs/applications/networking/cluster/zarf/default.nix
index 4feb61699e568..e580dd7e6ff27 100644
--- a/pkgs/applications/networking/cluster/zarf/default.nix
+++ b/pkgs/applications/networking/cluster/zarf/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "zarf";
-  version = "0.33.2";
+  version = "0.34.0";
 
   src = fetchFromGitHub {
     owner = "defenseunicorns";
     repo = "zarf";
     rev = "v${version}";
-    hash = "sha256-BafS+++8iTVT38pneqCfAQFg15PpXOW/Bv8anmdHZTg=";
+    hash = "sha256-o3sfvzUCCW7hwNDrWH1IiRyZHkVnxffJdLS8BqzD5Ng=";
   };
 
-  vendorHash = "sha256-4AN/0OgFX+5uymN/QfOr0sZipTmszhieOPmReKciFtg=";
+  vendorHash = "sha256-Co9xKC7J0WGoaYxa+YukrP+6aOuhweZyXaH5wD97ioA=";
   proxyVendor = true;
 
   preBuild = ''
diff --git a/pkgs/applications/networking/coreth/default.nix b/pkgs/applications/networking/coreth/default.nix
index e5af4fa397ed9..2f4db7dcd5c16 100644
--- a/pkgs/applications/networking/coreth/default.nix
+++ b/pkgs/applications/networking/coreth/default.nix
@@ -6,19 +6,19 @@
 
 buildGoModule rec {
   pname = "coreth";
-  version = "0.13.3";
+  version = "0.13.5";
 
   src = fetchFromGitHub {
     owner = "ava-labs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-XVACkk/DUI4AIPRSQgu0g9WHmedjqscZbcz84HIi7jY=";
+    hash = "sha256-cnxNIFf0zCpbUg9G+bHNoApxB31O7RH5BVgprYN2GYk=";
   };
 
   # go mod vendor has a bug, see: golang/go#57529
   proxyVendor = true;
 
-  vendorHash = "sha256-zqvo0hZIOyF5Bzig1hi4KRUDETNiiy1Ll/FFO9hRmYU=";
+  vendorHash = "sha256-IVmz+2pWHsiZOhHKEK9GW9zZq8m1IH5lpfKeClnmc3o=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/applications/networking/cozy-drive/default.nix b/pkgs/applications/networking/cozy-drive/default.nix
index 8c658f40eb763..e7c41c56254a7 100644
--- a/pkgs/applications/networking/cozy-drive/default.nix
+++ b/pkgs/applications/networking/cozy-drive/default.nix
@@ -24,7 +24,7 @@ appimageTools.wrapType2 {
   '';
 
   meta = with lib; {
-    description = "Cozy Drive is a synchronization tool for your files and folders with Cozy Cloud.";
+    description = "Cozy Drive is a synchronization tool for your files and folders with Cozy Cloud";
     homepage = "https://cozy.io";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ simarra ];
diff --git a/pkgs/applications/networking/davmail/default.nix b/pkgs/applications/networking/davmail/default.nix
index 188eaecd2dc23..5b262e405a873 100644
--- a/pkgs/applications/networking/davmail/default.nix
+++ b/pkgs/applications/networking/davmail/default.nix
@@ -16,17 +16,17 @@
 }:
 
 let
-  rev = 3464;
+  rev = 3546;
   jre' = if preferZulu then zulu else jre;
   gtk' = if preferGtk3 then gtk3 else gtk2;
 in
 stdenv.mkDerivation rec {
   pname = "davmail";
-  version = "6.2.0";
+  version = "6.2.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}-${toString rev}.zip";
-    sha256 = "sha256-FatB0t/BhZRMofYE0KD5LDYGjDQ8hriIszKJP8qNvhw=";
+    hash = "sha256-45paGy6SfUFXK6vY8L4tHFYiio1/5ah9vTyGImdgwHI=";
   };
 
   postPatch = ''
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Java application which presents a Microsoft Exchange server as local CALDAV, IMAP and SMTP servers";
+    description = "Java application which presents a Microsoft Exchange server as local CALDAV, IMAP and SMTP servers";
     homepage = "https://davmail.sourceforge.net/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/pkgs/applications/networking/deck/default.nix b/pkgs/applications/networking/deck/default.nix
index 9094459fe7440..f35b1e909bb81 100644
--- a/pkgs/applications/networking/deck/default.nix
+++ b/pkgs/applications/networking/deck/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "deck";
-  version = "1.37.0";
+  version = "1.38.0";
 
   src = fetchFromGitHub {
     owner = "Kong";
     repo = "deck";
     rev = "v${version}";
-    hash = "sha256-gbbNeG0WzXiPE20XPtg4x57kvcNuHsxN57aLK+OUpv8=";
+    hash = "sha256-9bEPkEeKOVFETSo5HEFWbuhx7+mWwogGm1jN18Vj/Sw=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
@@ -21,7 +21,7 @@ buildGoModule rec {
   ];
 
   proxyVendor = true; # darwin/linux hash mismatch
-  vendorHash = "sha256-c5kq5vql3KSv8gkm4Wrp1llUhUOWZuuhkzNXDYrgUhw=";
+  vendorHash = "sha256-eWDnZNNXgvIiDiKEpkVEL/JpEfy7WKtSAUA6riCrMdc=";
 
   postInstall = ''
     installShellCompletion --cmd deck \
@@ -31,7 +31,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A configuration management and drift detection tool for Kong";
+    description = "Configuration management and drift detection tool for Kong";
     homepage = "https://github.com/Kong/deck";
     license = licenses.asl20;
     maintainers = with maintainers; [ liyangau ];
diff --git a/pkgs/applications/networking/discordo/default.nix b/pkgs/applications/networking/discordo/default.nix
index cd3f502156908..9841eb6de2f26 100644
--- a/pkgs/applications/networking/discordo/default.nix
+++ b/pkgs/applications/networking/discordo/default.nix
@@ -31,7 +31,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A lightweight, secure, and feature-rich Discord terminal client";
+    description = "Lightweight, secure, and feature-rich Discord terminal client";
     homepage = "https://github.com/ayn2op/discordo";
     license = licenses.mit;
     maintainers = [ maintainers.arian-d ];
diff --git a/pkgs/applications/networking/dnscontrol/default.nix b/pkgs/applications/networking/dnscontrol/default.nix
index 58051120cc340..832133082f778 100644
--- a/pkgs/applications/networking/dnscontrol/default.nix
+++ b/pkgs/applications/networking/dnscontrol/default.nix
@@ -1,22 +1,30 @@
-{ lib, buildGoModule, fetchFromGitHub, testers, dnscontrol }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles, testers, dnscontrol }:
 
 buildGoModule rec {
   pname = "dnscontrol";
-  version = "4.11.0";
+  version = "4.12.0";
 
   src = fetchFromGitHub {
     owner = "StackExchange";
     repo = "dnscontrol";
     rev = "v${version}";
-    hash = "sha256-TBLxwHiL3knM+GQoTYD2L/deASPpbUsDlGk4VeVmki4=";
+    hash = "sha256-W1X/d2Xf31xQWZH7ShH8Y6axhhyTOqxE/EjxNvR6pBU=";
   };
 
-  vendorHash = "sha256-kmnV1W0HGlxFZYYUeUd9D/zOabUhM5kDoTZTnRYJ2sM=";
+  vendorHash = "sha256-Dz45h33Rv4Pf5Lo0aok37MNrcbT8f/xrPPkGJMNBo8Y=";
+
+  nativeBuildInputs = [ installShellFiles ];
 
   subPackages = [ "." ];
 
   ldflags = [ "-s" "-w" "-X=main.version=${version}" ];
 
+  postInstall = ''
+    installShellCompletion --cmd dnscontrol \
+      --bash <($out/bin/dnscontrol shell-completion bash) \
+      --zsh <($out/bin/dnscontrol shell-completion zsh)
+  '';
+
   preCheck = ''
     # requires network
     rm pkg/spflib/flatten_test.go pkg/spflib/parse_test.go
diff --git a/pkgs/applications/networking/dsvpn/default.nix b/pkgs/applications/networking/dsvpn/default.nix
index 94000d6f8f973..92f877022adde 100644
--- a/pkgs/applications/networking/dsvpn/default.nix
+++ b/pkgs/applications/networking/dsvpn/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Dead Simple VPN";
+    description = "Dead Simple VPN";
     homepage = "https://github.com/jedisct1/dsvpn";
     license = licenses.mit;
     maintainers = [ ];
diff --git a/pkgs/applications/networking/dyndns/dyndnsc/default.nix b/pkgs/applications/networking/dyndns/dyndnsc/default.nix
index 6a9a57d67c3b1..930fc34603192 100644
--- a/pkgs/applications/networking/dyndns/dyndnsc/default.nix
+++ b/pkgs/applications/networking/dyndns/dyndnsc/default.nix
@@ -1,61 +1,83 @@
-{ lib, python3Packages, fetchPypi, stdenv }:
+{
+  lib,
+  stdenv,
+  python3Packages,
+  fetchPypi,
+}:
 
 python3Packages.buildPythonApplication rec {
   pname = "dyndnsc";
   version = "0.6.1";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13078d29eea2f9a4ca01f05676c3309ead5e341dab047e0d51c46f23d4b7fbb4";
+    hash = "sha256-EweNKe6i+aTKAfBWdsMwnq1eNB2rBH4NUcRvI9S3+7Q=";
   };
 
   postPatch = ''
-    substituteInPlace setup.py --replace "bottle==" "bottle>="
+    substituteInPlace setup.py \
+      --replace-fail '"pytest-runner"' ""
   '';
 
-  nativeBuildInputs = with python3Packages; [ pytest-runner ];
-  propagatedBuildInputs = with python3Packages; [
+  pythonRelaxDeps = [ "bottle" ];
+
+  build-system = with python3Packages; [ setuptools ];
+
+  nativeBuildInputs = with python3Packages; [ pythonRelaxDepsHook ];
+
+  dependencies = with python3Packages; [
     daemonocle
     dnspython
+    json-logging
     netifaces
     requests
-    json-logging
     setuptools
   ];
-  nativeCheckInputs = with python3Packages; [ bottle mock pytest-console-scripts pytestCheckHook ];
-
-  disabledTests = [
-    # dnswanip connects to an external server to discover the
-    # machine's IP address.
-    "dnswanip"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # The tests that spawn a server using Bottle cannot be run on
-    # macOS or Windows as the default multiprocessing start method
-    # on those platforms is 'spawn', which requires the code to be
-    # run to be picklable, which this code isn't.
-    # Additionaly, other start methods are unsafe and prone to failure
-    # on macOS; see https://bugs.python.org/issue33725.
-    "BottleServer"
+
+  nativeCheckInputs = with python3Packages; [
+    bottle
+    pytest-console-scripts
+    pytestCheckHook
   ];
+
+  disabledTests =
+    [
+      # dnswanip connects to an external server to discover the
+      # machine's IP address.
+      "dnswanip"
+      # AssertionError
+      "test_null_dummy"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # The tests that spawn a server using Bottle cannot be run on
+      # macOS or Windows as the default multiprocessing start method
+      # on those platforms is 'spawn', which requires the code to be
+      # run to be picklable, which this code isn't.
+      # Additionaly, other start methods are unsafe and prone to failure
+      # on macOS; see https://bugs.python.org/issue33725.
+      "BottleServer"
+    ];
   # Allow tests that bind or connect to localhost on macOS.
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
     description = "Dynamic DNS update client with support for multiple protocols";
-    mainProgram = "dyndnsc";
     longDescription = ''
       Dyndnsc is a command line client for sending updates to Dynamic
-      DNS (DDNS, DynDNS) services.  It supports multiple protocols and
-      services, and it has native support for IPv6.  The configuration
-      file allows using foreign, but compatible services.  Dyndnsc
+      DNS (DDNS, DynDNS) services. It supports multiple protocols and
+      services, and it has native support for IPv6. The configuration
+      file allows using foreign, but compatible services. Dyndnsc
       ships many different IP detection mechanisms, support for
       configuring multiple services in one place and it has a daemon
-      mode for running unattended.  It has a plugin system to provide
+      mode for running unattended. It has a plugin system to provide
       external notification services.
     '';
     homepage = "https://github.com/infothrill/python-dyndnsc";
+    changelog = "https://github.com/infothrill/python-dyndnsc/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ AluisioASG ];
+    mainProgram = "dyndnsc";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/networking/feedreaders/canto-curses/default.nix b/pkgs/applications/networking/feedreaders/canto-curses/default.nix
index d0a1e2cbce15a..0c69125ebf9f1 100644
--- a/pkgs/applications/networking/feedreaders/canto-curses/default.nix
+++ b/pkgs/applications/networking/feedreaders/canto-curses/default.nix
@@ -15,7 +15,7 @@ python3Packages.buildPythonApplication rec {
   propagatedBuildInputs = [ canto-daemon ];
 
   meta = {
-    description = "An ncurses-based console Atom/RSS feed reader";
+    description = "Ncurses-based console Atom/RSS feed reader";
     mainProgram = "canto-curses";
     longDescription = ''
       Canto is an Atom/RSS feed reader for the console that is meant to be
diff --git a/pkgs/applications/networking/feedreaders/castget/default.nix b/pkgs/applications/networking/feedreaders/castget/default.nix
index bf304389bcaee..c3937f996086f 100644
--- a/pkgs/applications/networking/feedreaders/castget/default.nix
+++ b/pkgs/applications/networking/feedreaders/castget/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A simple, command-line based RSS enclosure downloader";
+    description = "Simple, command-line based RSS enclosure downloader";
     mainProgram = "castget";
     longDescription = ''
       castget is a simple, command-line based RSS enclosure downloader. It is
diff --git a/pkgs/applications/networking/feedreaders/gnome-feeds/default.nix b/pkgs/applications/networking/feedreaders/gnome-feeds/default.nix
index edab321b11b0e..def8bfb515200 100644
--- a/pkgs/applications/networking/feedreaders/gnome-feeds/default.nix
+++ b/pkgs/applications/networking/feedreaders/gnome-feeds/default.nix
@@ -77,7 +77,7 @@ python3.pkgs.buildPythonApplication rec {
   };
 
   meta = with lib; {
-    description = "An RSS/Atom feed reader for GNOME";
+    description = "RSS/Atom feed reader for GNOME";
     mainProgram = "gfeeds";
     homepage = "https://gitlab.gnome.org/World/gfeeds";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/networking/feedreaders/gnome-feeds/listparser.nix b/pkgs/applications/networking/feedreaders/gnome-feeds/listparser.nix
index 77aa94a3b863a..7dd2f752598fa 100644
--- a/pkgs/applications/networking/feedreaders/gnome-feeds/listparser.nix
+++ b/pkgs/applications/networking/feedreaders/gnome-feeds/listparser.nix
@@ -22,7 +22,7 @@ python3.pkgs.buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A parser for subscription lists";
+    description = "Parser for subscription lists";
     homepage = "https://github.com/kurtmckee/listparser";
     license = licenses.lgpl3Plus;
     maintainers = [
diff --git a/pkgs/applications/networking/feedreaders/goeland/default.nix b/pkgs/applications/networking/feedreaders/goeland/default.nix
index 08bdff3bbcfa8..337b09cff3362 100644
--- a/pkgs/applications/networking/feedreaders/goeland/default.nix
+++ b/pkgs/applications/networking/feedreaders/goeland/default.nix
@@ -23,7 +23,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "An alternative to rss2email written in golang with many filters";
+    description = "Alternative to rss2email written in golang with many filters";
     mainProgram = "goeland";
     longDescription = ''
       Goeland excels at creating beautiful emails from RSS feeds,
diff --git a/pkgs/applications/networking/feedreaders/newsboat/default.nix b/pkgs/applications/networking/feedreaders/newsboat/default.nix
index bd89a2a0a329c..1a8049b4e2a29 100644
--- a/pkgs/applications/networking/feedreaders/newsboat/default.nix
+++ b/pkgs/applications/networking/feedreaders/newsboat/default.nix
@@ -62,7 +62,7 @@ rustPlatform.buildRustPackage rec {
   meta = {
     homepage    = "https://newsboat.org/";
     changelog   = "https://github.com/newsboat/newsboat/blob/${src.rev}/CHANGELOG.md";
-    description = "A fork of Newsbeuter, an RSS/Atom feed reader for the text console";
+    description = "Fork of Newsbeuter, an RSS/Atom feed reader for the text console";
     maintainers = with lib.maintainers; [ dotlambda nicknovitski ];
     license     = lib.licenses.mit;
     platforms   = lib.platforms.unix;
diff --git a/pkgs/applications/networking/feedreaders/newsflash/Cargo.lock b/pkgs/applications/networking/feedreaders/newsflash/Cargo.lock
index 691d71e0decf3..68d085655d13e 100644
--- a/pkgs/applications/networking/feedreaders/newsflash/Cargo.lock
+++ b/pkgs/applications/networking/feedreaders/newsflash/Cargo.lock
@@ -89,9 +89,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.81"
+version = "1.0.86"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
+checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
 
 [[package]]
 name = "arbitrary"
@@ -113,7 +113,7 @@ checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.55",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -128,7 +128,7 @@ version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f2f3fa375ebee9245309680ef4b2178782a9ac5e7b1f7bf869cff93f8f3c55c6"
 dependencies = [
- "base64 0.22.0",
+ "base64 0.22.1",
  "chrono",
  "encoding_rs",
  "escaper",
@@ -169,30 +169,29 @@ version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "258b52a1aa741b9f09783b2d86cf0aeeb617bbf847f6933340a39644227acbdb"
 dependencies = [
- "event-listener 5.2.0",
- "event-listener-strategy 0.5.0",
+ "event-listener 5.3.0",
+ "event-listener-strategy 0.5.2",
  "futures-core",
  "pin-project-lite",
 ]
 
 [[package]]
 name = "async-channel"
-version = "2.2.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
+checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a"
 dependencies = [
  "concurrent-queue",
- "event-listener 5.2.0",
- "event-listener-strategy 0.5.0",
+ "event-listener-strategy 0.5.2",
  "futures-core",
  "pin-project-lite",
 ]
 
 [[package]]
 name = "async-compression"
-version = "0.4.6"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a116f46a969224200a0a97f29cfd4c50e7534e4b4826bd23ea2c3c533039c82c"
+checksum = "9c90a406b4495d129f00461241616194cb8a032c8d1c53c657f0961d5f8e0498"
 dependencies = [
  "brotli",
  "flate2",
@@ -204,11 +203,10 @@ dependencies = [
 
 [[package]]
 name = "async-executor"
-version = "1.8.0"
+version = "1.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c"
+checksum = "c8828ec6e544c02b0d6691d21ed9f9218d0384a82542855073c2a3f58304aaf0"
 dependencies = [
- "async-lock 3.3.0",
  "async-task",
  "concurrent-queue",
  "fastrand",
@@ -218,11 +216,11 @@ dependencies = [
 
 [[package]]
 name = "async-fs"
-version = "2.1.1"
+version = "2.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc19683171f287921f2405677dd2ed2549c3b3bda697a563ebc3a121ace2aba1"
+checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a"
 dependencies = [
- "async-lock 3.3.0",
+ "async-lock",
  "blocking",
  "futures-lite",
 ]
@@ -233,7 +231,7 @@ version = "2.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884"
 dependencies = [
- "async-lock 3.3.0",
+ "async-lock",
  "cfg-if",
  "concurrent-queue",
  "futures-io",
@@ -248,15 +246,6 @@ dependencies = [
 
 [[package]]
 name = "async-lock"
-version = "2.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
-dependencies = [
- "event-listener 2.5.3",
-]
-
-[[package]]
-name = "async-lock"
 version = "3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
@@ -279,41 +268,43 @@ dependencies = [
 
 [[package]]
 name = "async-process"
-version = "2.1.0"
+version = "2.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "451e3cf68011bd56771c79db04a9e333095ab6349f7e47592b788e9b98720cc8"
+checksum = "a53fc6301894e04a92cb2584fedde80cb25ba8e02d9dc39d4a87d036e22f397d"
 dependencies = [
  "async-channel",
  "async-io",
- "async-lock 3.3.0",
+ "async-lock",
  "async-signal",
+ "async-task",
  "blocking",
  "cfg-if",
- "event-listener 5.2.0",
+ "event-listener 5.3.0",
  "futures-lite",
  "rustix",
+ "tracing",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "async-recursion"
-version = "1.1.0"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30c5ef0ede93efbf733c1a727f3b6b5a1060bbedd5600183e66f6e4be4af0ec5"
+checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.55",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "async-signal"
-version = "0.2.5"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
+checksum = "afe66191c335039c7bb78f99dc7520b0cbb166b3a1cb33a03f53d8a1c6f2afda"
 dependencies = [
  "async-io",
- "async-lock 2.8.0",
+ "async-lock",
  "atomic-waker",
  "cfg-if",
  "futures-core",
@@ -321,24 +312,24 @@ dependencies = [
  "rustix",
  "signal-hook-registry",
  "slab",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "async-task"
-version = "4.7.0"
+version = "4.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
+checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
 
 [[package]]
 name = "async-trait"
-version = "0.1.79"
+version = "0.1.80"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681"
+checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.55",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -349,9 +340,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
 
 [[package]]
 name = "autocfg"
-version = "1.1.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
 
 [[package]]
 name = "av1-grain"
@@ -399,9 +390,9 @@ checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
 name = "base64"
-version = "0.22.0"
+version = "0.22.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51"
+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
 
 [[package]]
 name = "bigdecimal"
@@ -436,9 +427,9 @@ checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
 
 [[package]]
 name = "bitstream-io"
-version = "2.2.0"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06c9989a51171e2e81038ab168b6ae22886fe9ded214430dbb4f41c28cf176da"
+checksum = "7c12d1856e42f0d817a835fe55853957c85c8c8a470114029143d3f12671446e"
 
 [[package]]
 name = "block"
@@ -483,25 +474,22 @@ checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"
 
 [[package]]
 name = "blocking"
-version = "1.5.1"
+version = "1.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
+checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea"
 dependencies = [
  "async-channel",
- "async-lock 3.3.0",
  "async-task",
- "fastrand",
  "futures-io",
  "futures-lite",
  "piper",
- "tracing",
 ]
 
 [[package]]
 name = "brotli"
-version = "3.5.0"
+version = "6.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d640d25bc63c50fb1f0b545ffd80207d2e10a4c965530809b40ba3386825c391"
+checksum = "74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b"
 dependencies = [
  "alloc-no-stdlib",
  "alloc-stdlib",
@@ -510,9 +498,9 @@ dependencies = [
 
 [[package]]
 name = "brotli-decompressor"
-version = "2.5.1"
+version = "4.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f"
+checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362"
 dependencies = [
  "alloc-no-stdlib",
  "alloc-stdlib",
@@ -520,27 +508,21 @@ dependencies = [
 
 [[package]]
 name = "built"
-version = "0.7.1"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38d17f4d6e4dc36d1a02fbedc2753a096848e7c1b0772f7654eab8e2c927dd53"
+checksum = "c6a6c0b39c38fd754ac338b00a88066436389c0f029da5d37d1e01091d9b7c17"
 
 [[package]]
 name = "bumpalo"
-version = "3.15.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
-
-[[package]]
-name = "bytecount"
-version = "0.6.7"
+version = "3.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1e5f035d16fc623ae5f74981db80a439803888314e3a555fd6f04acd51a3205"
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
 
 [[package]]
 name = "bytemuck"
-version = "1.15.0"
+version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15"
+checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5"
 
 [[package]]
 name = "byteorder"
@@ -549,6 +531,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
+name = "byteorder-lite"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495"
+
+[[package]]
 name = "bytes"
 version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -562,9 +550,9 @@ checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc"
 
 [[package]]
 name = "cairo-rs"
-version = "0.19.2"
+version = "0.19.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2650f66005301bd33cc486dec076e1293c4cecf768bc7ba9bf5d2b1be339b99c"
+checksum = "b2ac2a4d0e69036cf0062976f6efcba1aaee3e448594e6514bb2ddf87acce562"
 dependencies = [
  "bitflags 2.5.0",
  "cairo-sys-rs",
@@ -585,51 +573,21 @@ dependencies = [
 ]
 
 [[package]]
-name = "camino"
-version = "1.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "cargo-platform"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "cargo_metadata"
-version = "0.14.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa"
-dependencies = [
- "camino",
- "cargo-platform",
- "semver",
- "serde",
- "serde_json",
-]
-
-[[package]]
 name = "cc"
-version = "1.0.90"
+version = "1.0.98"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
+checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
 dependencies = [
  "jobserver",
  "libc",
+ "once_cell",
 ]
 
 [[package]]
 name = "cfg-expr"
-version = "0.15.7"
+version = "0.15.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d"
+checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02"
 dependencies = [
  "smallvec",
  "target-lexicon",
@@ -649,16 +607,16 @@ checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
 
 [[package]]
 name = "chrono"
-version = "0.4.35"
+version = "0.4.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "js-sys",
  "num-traits",
  "wasm-bindgen",
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -671,6 +629,60 @@ dependencies = [
 ]
 
 [[package]]
+name = "clapper"
+version = "0.1.0"
+source = "git+https://gitlab.gnome.org/JanGernert/clapper-rs.git#286198bdffd84b1e5eb539078b440ac25c7e31ba"
+dependencies = [
+ "bitflags 2.5.0",
+ "clapper-sys",
+ "gio",
+ "glib",
+ "gstreamer",
+ "libc",
+]
+
+[[package]]
+name = "clapper-gtk"
+version = "0.1.0"
+source = "git+https://gitlab.gnome.org/JanGernert/clapper-rs.git#286198bdffd84b1e5eb539078b440ac25c7e31ba"
+dependencies = [
+ "bitflags 2.5.0",
+ "clapper",
+ "clapper-gtk-sys",
+ "gdk4",
+ "gio",
+ "glib",
+ "gtk4",
+ "libc",
+]
+
+[[package]]
+name = "clapper-gtk-sys"
+version = "0.0.1"
+source = "git+https://gitlab.gnome.org/JanGernert/clapper-rs.git#286198bdffd84b1e5eb539078b440ac25c7e31ba"
+dependencies = [
+ "clapper-sys",
+ "gio-sys",
+ "glib-sys",
+ "gtk4-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "clapper-sys"
+version = "0.0.1"
+source = "git+https://gitlab.gnome.org/JanGernert/clapper-rs.git#286198bdffd84b1e5eb539078b440ac25c7e31ba"
+dependencies = [
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "gstreamer-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
 name = "color-backtrace"
 version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -688,11 +700,11 @@ checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
 
 [[package]]
 name = "commafeed_api"
-version = "0.2.0"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "072ba524ee8f89cf270c0f0fecd79062c094cd1c7f9c657c32810f9448d2b002"
+checksum = "b3cffc99ebe1b725a030c70780de1b4658220e13802281f64fdffbc56d4a16c2"
 dependencies = [
- "base64 0.22.0",
+ "base64 0.22.1",
  "chrono",
  "log",
  "reqwest",
@@ -704,9 +716,9 @@ dependencies = [
 
 [[package]]
 name = "concurrent-queue"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
+checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
 dependencies = [
  "crossbeam-utils",
 ]
@@ -766,27 +778,27 @@ dependencies = [
 
 [[package]]
 name = "crc-any"
-version = "2.4.4"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c01a5e1f881f6fb6099a7bdf949e946719fd4f1fefa56264890574febf0eb6d0"
+checksum = "a62ec9ff5f7965e4d7280bd5482acd20aadb50d632cf6c1d74493856b011fa73"
 dependencies = [
  "debug-helper",
 ]
 
 [[package]]
 name = "crc32fast"
-version = "1.4.0"
+version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
+checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
 dependencies = [
  "cfg-if",
 ]
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.12"
+version = "0.5.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95"
+checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2"
 dependencies = [
  "crossbeam-utils",
 ]
@@ -812,9 +824,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.19"
+version = "0.8.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
 
 [[package]]
 name = "crunchy"
@@ -834,9 +846,9 @@ dependencies = [
 
 [[package]]
 name = "data-encoding"
-version = "2.5.0"
+version = "2.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
+checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2"
 
 [[package]]
 name = "debug-helper"
@@ -883,9 +895,9 @@ checksum = "3c877555693c14d2f84191cfd3ad8582790fc52b5e2274b40b59cf5f5cea25c7"
 
 [[package]]
 name = "diesel"
-version = "2.1.5"
+version = "2.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03fc05c17098f21b89bc7d98fe1dd3cce2c11c2ad8e145f2a44fe08ed28eb559"
+checksum = "ff236accb9a5069572099f0b350a92e9560e8e63a9b8d546162f4a5e03026bb2"
 dependencies = [
  "bigdecimal",
  "chrono",
@@ -904,14 +916,14 @@ dependencies = [
 
 [[package]]
 name = "diesel_derives"
-version = "2.1.3"
+version = "2.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d02eecb814ae714ffe61ddc2db2dd03e6c49a42e269b5001355500d431cce0c"
+checksum = "14701062d6bed917b5c7103bdffaee1e4609279e240488ad24e7bd979ca6866c"
 dependencies = [
  "diesel_table_macro_syntax",
  "proc-macro2",
  "quote",
- "syn 2.0.55",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -931,7 +943,7 @@ version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fc5557efc453706fed5e4fa85006fe9817c224c3f480a34c7e5959fd700921c5"
 dependencies = [
- "syn 2.0.55",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -997,15 +1009,15 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.10.0"
+version = "1.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
+checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b"
 
 [[package]]
 name = "encoding_rs"
-version = "0.8.33"
+version = "0.8.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
 dependencies = [
  "cfg-if",
 ]
@@ -1031,7 +1043,7 @@ dependencies = [
  "heck 0.4.1",
  "proc-macro2",
  "quote",
- "syn 2.0.55",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -1052,7 +1064,7 @@ checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.55",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -1063,24 +1075,15 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "errno"
-version = "0.3.8"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
 dependencies = [
  "libc",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
-name = "error-chain"
-version = "0.12.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc"
-dependencies = [
- "version_check",
-]
-
-[[package]]
 name = "escaper"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1091,12 +1094,6 @@ dependencies = [
 
 [[package]]
 name = "event-listener"
-version = "2.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
-
-[[package]]
-name = "event-listener"
 version = "4.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
@@ -1108,9 +1105,9 @@ dependencies = [
 
 [[package]]
 name = "event-listener"
-version = "5.2.0"
+version = "5.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91"
+checksum = "6d9944b8ca13534cdfb2800775f8dd4902ff3fc75a50101466decadfdf322a24"
 dependencies = [
  "concurrent-queue",
  "parking",
@@ -1129,11 +1126,11 @@ dependencies = [
 
 [[package]]
 name = "event-listener-strategy"
-version = "0.5.0"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
+checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1"
 dependencies = [
- "event-listener 5.2.0",
+ "event-listener 5.3.0",
  "pin-project-lite",
 ]
 
@@ -1165,9 +1162,9 @@ dependencies = [
 
 [[package]]
 name = "fastrand"
-version = "2.0.2"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984"
+checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
 
 [[package]]
 name = "fdeflate"
@@ -1180,13 +1177,12 @@ dependencies = [
 
 [[package]]
 name = "feed-rs"
-version = "1.4.0"
+version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ebf574f2f8a63948eae0d786c1fe339d71b6c98e735d58c81c85d93c8a66edf"
+checksum = "be5366c3d4ae865540354ecafa0e5b41dd56c2f31d0b2ef876669edf964daaec"
 dependencies = [
  "chrono",
- "lazy_static",
- "mime",
+ "mediatype",
  "quick-xml",
  "regex",
  "serde",
@@ -1256,9 +1252,9 @@ dependencies = [
 
 [[package]]
 name = "flate2"
-version = "1.0.28"
+version = "1.0.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
+checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae"
 dependencies = [
  "crc32fast",
  "miniz_oxide",
@@ -1383,7 +1379,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.55",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -1430,9 +1426,9 @@ dependencies = [
 
 [[package]]
 name = "gdk-pixbuf-sys"
-version = "0.19.0"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dcbd04c1b2c4834cc008b4828bc917d062483b88d26effde6342e5622028f96"
+checksum = "1fdbf021f8b9d19e30fb9ea6d6e5f2b6a712fe4645417c69f86f6ff1e1444a8f"
 dependencies = [
  "gio-sys",
  "glib-sys",
@@ -1443,9 +1439,9 @@ dependencies = [
 
 [[package]]
 name = "gdk4"
-version = "0.8.1"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9100b25604183f2fd97f55ef087fae96ab4934d7215118a35303e422688e6e4b"
+checksum = "db265c9dd42d6a371e09e52deab3a84808427198b86ac792d75fd35c07990a07"
 dependencies = [
  "cairo-rs",
  "gdk-pixbuf",
@@ -1458,9 +1454,9 @@ dependencies = [
 
 [[package]]
 name = "gdk4-sys"
-version = "0.8.1"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0b76874c40bb8d1c7d03a7231e23ac75fa577a456cd53af32ec17ec8f121626"
+checksum = "c9418fb4e8a67074919fe7604429c45aa74eb9df82e7ca529767c6d4e9dc66dd"
 dependencies = [
  "cairo-sys-rs",
  "gdk-pixbuf-sys",
@@ -1485,9 +1481,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.12"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
 dependencies = [
  "cfg-if",
  "libc",
@@ -1532,9 +1528,9 @@ checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
 name = "gio"
-version = "0.19.3"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c64947d08d7fbb03bf8ad1f25a8ac6cf4329bc772c9b7e5abe7bf9493c81194f"
+checksum = "be548be810e45dd31d3bbb89c6210980bb7af9bca3ea1292b5f16b75f8e394a7"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -1550,9 +1546,9 @@ dependencies = [
 
 [[package]]
 name = "gio-sys"
-version = "0.19.0"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcf8e1d9219bb294636753d307b030c1e8a032062cba74f493c431a5c8b81ce4"
+checksum = "d4bdbef451b0f0361e7f762987cc6bebd5facab1d535e85a3cf1115dfb08db40"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -1563,9 +1559,9 @@ dependencies = [
 
 [[package]]
 name = "glib"
-version = "0.19.3"
+version = "0.19.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01e191cc1af1f35b9699213107068cd3fe05d9816275ac118dc785a0dd8faebf"
+checksum = "e52355166df21c7ed16b6a01f615669c7911ed74e27ef60eba339c0d2da12490"
 dependencies = [
  "bitflags 2.5.0",
  "futures-channel",
@@ -1585,38 +1581,32 @@ dependencies = [
 
 [[package]]
 name = "glib-macros"
-version = "0.19.3"
+version = "0.19.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9972bb91643d589c889654693a4f1d07697fdcb5d104b5c44fb68649ba1bf68d"
+checksum = "70025dbfa1275cf7d0531c3317ba6270dae15d87e63342229d638246ff45202e"
 dependencies = [
  "heck 0.5.0",
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 2.0.55",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "glib-sys"
-version = "0.19.0"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630f097773d7c7a0bb3258df4e8157b47dc98bbfa0e60ad9ab56174813feced4"
+checksum = "767d23ead9bbdfcbb1c2242c155c8128a7d13dde7bf69c176f809546135e2282"
 dependencies = [
  "libc",
  "system-deps",
 ]
 
 [[package]]
-name = "glob"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
-
-[[package]]
 name = "gobject-sys"
-version = "0.19.0"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c85e2b1080b9418dd0c58b498da3a5c826030343e0ef07bde6a955d28de54979"
+checksum = "c3787b0bfacca12bb25f8f822b0dbee9f7e4a86e6469a29976d332d2c14c945b"
 dependencies = [
  "glib-sys",
  "libc",
@@ -1636,9 +1626,9 @@ dependencies = [
 
 [[package]]
 name = "graphene-sys"
-version = "0.19.0"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "236ed66cc9b18d8adf233716f75de803d0bf6fc806f60d14d948974a12e240d0"
+checksum = "2a60e7381afdd7be43bd10a89d3b6741d162aabbca3a8db73505afb6a3aea59d"
 dependencies = [
  "glib-sys",
  "libc",
@@ -1664,9 +1654,9 @@ dependencies = [
 
 [[package]]
 name = "gsk4"
-version = "0.8.1"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c65036fc8f99579e8cb37b12487969b707ab23ec8ab953682ff347cbd15d396e"
+checksum = "7563884bf6939f4468e5d94654945bdd9afcaf8c3ba4c5dd17b5342b747221be"
 dependencies = [
  "cairo-rs",
  "gdk4",
@@ -1679,9 +1669,9 @@ dependencies = [
 
 [[package]]
 name = "gsk4-sys"
-version = "0.8.1"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd24c814379f9c3199dc53e52253ee8d0f657eae389ab282c330505289d24738"
+checksum = "23024bf2636c38bbd1f822f58acc9d1c25b28da896ff0f291a1a232d4272b3dc"
 dependencies = [
  "cairo-sys-rs",
  "gdk4-sys",
@@ -1694,10 +1684,47 @@ dependencies = [
 ]
 
 [[package]]
+name = "gstreamer"
+version = "0.22.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56b59fdce2dfacda226d4b1b71ce4700b2f04228909b52252c197d8e30bd54a6"
+dependencies = [
+ "cfg-if",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "glib",
+ "gstreamer-sys",
+ "itertools 0.13.0",
+ "libc",
+ "muldiv",
+ "num-integer",
+ "num-rational",
+ "once_cell",
+ "option-operations",
+ "paste",
+ "pin-project-lite",
+ "smallvec",
+ "thiserror",
+]
+
+[[package]]
+name = "gstreamer-sys"
+version = "0.22.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4975a75279a9cf658bac1798dcf57100c6ec89fca7886572c8250ea4d94b76bd"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
 name = "gtk4"
-version = "0.8.1"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa82753b8c26277e4af1446c70e35b19aad4fb794a7b143859e7eeb9a4025d83"
+checksum = "b04e11319b08af11358ab543105a9e49b0c491faca35e2b8e7e36bfba8b671ab"
 dependencies = [
  "cairo-rs",
  "field-offset",
@@ -1716,23 +1743,21 @@ dependencies = [
 
 [[package]]
 name = "gtk4-macros"
-version = "0.8.1"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40300bf071d2fcd4c94eacc09e84ec6fe73129d2ceb635cf7e55b026b5443567"
+checksum = "ec655a7ef88d8ce9592899deb8b2d0fa50bab1e6dd69182deb764e643c522408"
 dependencies = [
- "anyhow",
  "proc-macro-crate",
- "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "gtk4-sys"
-version = "0.8.1"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0db1b104138f087ccdc81d2c332de5dd049b89de3d384437cc1093b17cd2da18"
+checksum = "8c8aa86b7f85ea71d66ea88c1d4bae1cfacf51ca4856274565133838d77e57b5"
 dependencies = [
  "cairo-sys-rs",
  "gdk-pixbuf-sys",
@@ -1749,15 +1774,15 @@ dependencies = [
 
 [[package]]
 name = "h2"
-version = "0.4.3"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51ee2dd2e4f378392eeff5d51618cd9a63166a2513846bbc55f21cfacd9199d4"
+checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab"
 dependencies = [
+ "atomic-waker",
  "bytes",
  "fnv",
  "futures-core",
  "futures-sink",
- "futures-util",
  "http",
  "indexmap",
  "slab",
@@ -1768,9 +1793,9 @@ dependencies = [
 
 [[package]]
 name = "half"
-version = "2.4.0"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e"
+checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888"
 dependencies = [
  "cfg-if",
  "crunchy",
@@ -1803,9 +1828,9 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.14.3"
+version = "0.14.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
 
 [[package]]
 name = "heck"
@@ -1833,9 +1858,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
 
 [[package]]
 name = "hickory-proto"
-version = "0.24.0"
+version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "091a6fbccf4860009355e3efc52ff4acf37a63489aad7435372d44ceeb6fbbcf"
+checksum = "07698b8420e2f0d6447a436ba999ec85d8fbf2a398bbd737b82cac4a2e96e512"
 dependencies = [
  "async-trait",
  "cfg-if",
@@ -1857,9 +1882,9 @@ dependencies = [
 
 [[package]]
 name = "hickory-resolver"
-version = "0.24.0"
+version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35b8f021164e6a984c9030023544c57789c51760065cd510572fedcfb04164e8"
+checksum = "28757f23aa75c98f254cf0405e6d8c25b831b32921b050a66692427679b1f243"
 dependencies = [
  "cfg-if",
  "futures-util",
@@ -1965,9 +1990,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[package]]
 name = "hyper"
-version = "1.2.0"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "186548d73ac615b32a73aafe38fb4f56c0d340e110e5a200bcadbaf2e199263a"
+checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -2001,9 +2026,9 @@ dependencies = [
 
 [[package]]
 name = "hyper-util"
-version = "0.1.3"
+version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa"
+checksum = "3d8d52be92d09acc2e01dddb7fde3ad983fc6489c7db4837e605bc3fca4cb63e"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -2074,9 +2099,9 @@ dependencies = [
 
 [[package]]
 name = "image"
-version = "0.25.0"
+version = "0.25.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9b4f005360d32e9325029b38ba47ebd7a56f3316df09249368939562d518645"
+checksum = "fd54d660e773627692c524beaad361aca785a4f9f5730ce91f42aabe5bce3d11"
 dependencies = [
  "bytemuck",
  "byteorder",
@@ -2097,11 +2122,11 @@ dependencies = [
 
 [[package]]
 name = "image-webp"
-version = "0.1.1"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a84a25dcae3ac487bc24ef280f9e20c79c9b1a3e5e32cbed3041d1c514aa87c"
+checksum = "d730b085583c4d789dfd07fdcf185be59501666a90c97c40162b37e4fdad272d"
 dependencies = [
- "byteorder",
+ "byteorder-lite",
  "thiserror",
 ]
 
@@ -2135,7 +2160,7 @@ checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.55",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -2147,7 +2172,7 @@ dependencies = [
  "socket2",
  "widestring",
  "windows-sys 0.48.0",
- "winreg",
+ "winreg 0.50.0",
 ]
 
 [[package]]
@@ -2184,10 +2209,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "itertools"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
+dependencies = [
+ "either",
+]
+
+[[package]]
 name = "itoa"
-version = "1.0.10"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
 
 [[package]]
 name = "javascriptcore6"
@@ -2220,9 +2254,9 @@ checksum = "47f142fe24a9c9944451e8349de0a56af5f3e7226dc46f3ed4d4ecc0b85af75e"
 
 [[package]]
 name = "jobserver"
-version = "0.1.28"
+version = "0.1.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
+checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e"
 dependencies = [
  "libc",
 ]
@@ -2288,9 +2322,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.153"
+version = "0.2.155"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
 
 [[package]]
 name = "libfuzzer-sys"
@@ -2311,13 +2345,12 @@ checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
 
 [[package]]
 name = "libredox"
-version = "0.0.1"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
 dependencies = [
  "bitflags 2.5.0",
  "libc",
- "redox_syscall",
 ]
 
 [[package]]
@@ -2358,9 +2391,9 @@ dependencies = [
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.13"
+version = "0.4.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
 
 [[package]]
 name = "locale_config"
@@ -2377,9 +2410,9 @@ dependencies = [
 
 [[package]]
 name = "lock_api"
-version = "0.4.11"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -2544,16 +2577,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
 
 [[package]]
+name = "mediatype"
+version = "0.19.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8878cd8d1b3c8c8ae4b2ba0a36652b7cf192f618a599a7fbdfa25cffd4ea72dd"
+
+[[package]]
 name = "memchr"
-version = "2.7.1"
+version = "2.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
 
 [[package]]
 name = "memoffset"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
 dependencies = [
  "autocfg",
 ]
@@ -2601,7 +2640,7 @@ version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2e6e3b827f7d7e0b921d129e27e2621d317bb38005e0f2512092aa33435e5dc0"
 dependencies = [
- "base64 0.22.0",
+ "base64 0.22.1",
  "log",
  "reqwest",
  "serde",
@@ -2619,9 +2658,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
+checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae"
 dependencies = [
  "adler",
  "simd-adler32",
@@ -2640,21 +2679,21 @@ dependencies = [
 
 [[package]]
 name = "moka"
-version = "0.12.5"
+version = "0.12.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1911e88d5831f748a4097a43862d129e3c6fca831eecac9b8db6d01d93c9de2"
+checksum = "9e0d88686dc561d743b40de8269b26eaf0dc58781bde087b0984646602021d08"
 dependencies = [
- "async-lock 2.8.0",
+ "async-lock",
  "async-trait",
  "crossbeam-channel",
  "crossbeam-epoch",
  "crossbeam-utils",
+ "event-listener 5.3.0",
  "futures-util",
  "once_cell",
  "parking_lot",
  "quanta",
  "rustc_version",
- "skeptic",
  "smallvec",
  "tagptr",
  "thiserror",
@@ -2663,6 +2702,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "muldiv"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "956787520e75e9bd233246045d19f42fb73242759cc57fba9611d940ae96d4b0"
+
+[[package]]
 name = "nanohtml2text"
 version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2670,11 +2715,10 @@ checksum = "999681fe3c0524336e98ece1c25ee4278607f25cc1e361ad0f9201c8bf56dc2c"
 
 [[package]]
 name = "native-tls"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
+checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466"
 dependencies = [
- "lazy_static",
  "libc",
  "log",
  "openssl",
@@ -2695,11 +2739,11 @@ checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
 [[package]]
 name = "news-flash"
 version = "2.3.0-alpha.0"
-source = "git+https://gitlab.com/news_flash/news_flash.git#689cf86ca5eaa4f0aad85d99e7fb0184a2794a96"
+source = "git+https://gitlab.com/news_flash/news_flash.git#d5d9cfcbd4a0c3f2e2c609062b539603490bcca3"
 dependencies = [
  "article_scraper",
  "async-trait",
- "base64 0.22.0",
+ "base64 0.22.1",
  "bitflags 2.5.0",
  "bytes",
  "chrono",
@@ -2715,7 +2759,7 @@ dependencies = [
  "greader_api",
  "hex",
  "image",
- "itertools 0.12.1",
+ "itertools 0.13.0",
  "libxml",
  "log",
  "magic-crypt",
@@ -2747,9 +2791,11 @@ name = "news_flash_gtk"
 version = "0.0.0"
 dependencies = [
  "ashpd",
- "base64 0.22.0",
+ "base64 0.22.1",
  "bytesize",
  "chrono",
+ "clapper",
+ "clapper-gtk",
  "color-backtrace",
  "diffus",
  "dirs",
@@ -2804,7 +2850,7 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "97ddbef370f5a6964ba87d2c93d40bcf1f017981d18337a5e177a769bd8c38e1"
 dependencies = [
- "base64 0.22.0",
+ "base64 0.22.1",
  "log",
  "reqwest",
  "serde",
@@ -2846,11 +2892,10 @@ checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8"
 
 [[package]]
 name = "num-bigint"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
+checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7"
 dependencies = [
- "autocfg",
  "num-integer",
  "num-traits",
 ]
@@ -2869,7 +2914,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.55",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -2883,11 +2928,10 @@ dependencies = [
 
 [[package]]
 name = "num-rational"
-version = "0.4.1"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
+checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
 dependencies = [
- "autocfg",
  "num-bigint",
  "num-integer",
  "num-traits",
@@ -2895,9 +2939,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.18"
+version = "0.2.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
 dependencies = [
  "autocfg",
 ]
@@ -2991,7 +3035,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.55",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -3002,9 +3046,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.101"
+version = "0.9.102"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff"
+checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2"
 dependencies = [
  "cc",
  "libc",
@@ -3030,6 +3074,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
 
 [[package]]
+name = "option-operations"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7c26d27bb1aeab65138e4bf7666045169d1717febcc9ff870166be8348b223d0"
+dependencies = [
+ "paste",
+]
+
+[[package]]
 name = "ordered-float"
 version = "2.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3050,9 +3103,9 @@ dependencies = [
 
 [[package]]
 name = "pango"
-version = "0.19.3"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1264d13deb823cc652f26cfe59afb1ec4b9db2a5bd27c41b738c879cc1bfaa1"
+checksum = "504ce6e805439ea2c6791168fe7ef8e3da0c1b2ef82c44bc450dbc330592920d"
 dependencies = [
  "gio",
  "glib",
@@ -3062,9 +3115,9 @@ dependencies = [
 
 [[package]]
 name = "pango-sys"
-version = "0.19.0"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f52ef6a881c19fbfe3b1484df5cad411acaaba29dbec843941c3110d19f340ea"
+checksum = "e4829555bdbb83692ddeaf5a6927fb2d025c8131e5ecaa4f7619fff6985d3505"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -3080,9 +3133,9 @@ checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
 
 [[package]]
 name = "parking_lot"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
 dependencies = [
  "lock_api",
  "parking_lot_core",
@@ -3090,22 +3143,22 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.9"
+version = "0.9.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
 dependencies = [
  "cfg-if",
  "libc",
  "redox_syscall",
  "smallvec",
- "windows-targets 0.48.5",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
 name = "paste"
-version = "1.0.14"
+version = "1.0.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
+checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
 
 [[package]]
 name = "percent-encoding"
@@ -3168,14 +3221,14 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.55",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.13"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
 
 [[package]]
 name = "pin-utils"
@@ -3185,9 +3238,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
 name = "piper"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4"
+checksum = "464db0c665917b13ebb5d453ccdec4add5658ee1adc7affc7677615356a8afaf"
 dependencies = [
  "atomic-waker",
  "fastrand",
@@ -3215,9 +3268,9 @@ dependencies = [
 
 [[package]]
 name = "polling"
-version = "3.6.0"
+version = "3.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0c976a60b2d7e99d6f229e414670a9b85d13ac305cc6d1e9c134de58c5aaaf6"
+checksum = "645493cf344456ef24219d02a768cf1fb92ddf8c92161679ae3d91b91a637be3"
 dependencies = [
  "cfg-if",
  "concurrent-queue",
@@ -3256,34 +3309,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "proc-macro-error"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
-dependencies = [
- "proc-macro-error-attr",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
- "version_check",
-]
-
-[[package]]
-name = "proc-macro-error-attr"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
-dependencies = [
- "proc-macro2",
- "quote",
- "version_check",
-]
-
-[[package]]
 name = "proc-macro2"
-version = "1.0.79"
+version = "1.0.84"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
+checksum = "ec96c6a92621310b51366f1e28d05ef11489516e93be030060e5fc12024a49d6"
 dependencies = [
  "unicode-ident",
 ]
@@ -3304,7 +3333,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8021cf59c8ec9c432cfc2526ac6b8aa508ecaf29cd415f271b8406c1b851c3fd"
 dependencies = [
  "quote",
- "syn 2.0.55",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -3324,17 +3353,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "pulldown-cmark"
-version = "0.9.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b"
-dependencies = [
- "bitflags 2.5.0",
- "memchr",
- "unicase",
-]
-
-[[package]]
 name = "qoi"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3345,9 +3363,9 @@ dependencies = [
 
 [[package]]
 name = "quanta"
-version = "0.12.2"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ca0b7bac0b97248c40bb77288fc52029cf1459c0461ea1b05ee32ccf011de2c"
+checksum = "8e5167a477619228a0b284fac2674e3c388cba90631d7b7de620e6f1fcd08da5"
 dependencies = [
  "crossbeam-utils",
  "libc",
@@ -3382,9 +3400,9 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "1.0.35"
+version = "1.0.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
 dependencies = [
  "proc-macro2",
 ]
@@ -3491,9 +3509,9 @@ dependencies = [
 
 [[package]]
 name = "raw-cpuid"
-version = "11.0.1"
+version = "11.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d86a7c4638d42c44551f4791a20e687dbb4c3de1f33c43dd71e355cd429def1"
+checksum = "e29830cbb1290e404f24c73af91c5d8d631ce7e128691e9477556b540cd01ecd"
 dependencies = [
  "bitflags 2.5.0",
 ]
@@ -3526,18 +3544,18 @@ checksum = "ca8049c74229f22d8cba889ee1d541b05da9c9668d8fe2011bb922250d0be148"
 
 [[package]]
 name = "redox_syscall"
-version = "0.4.1"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.5.0",
 ]
 
 [[package]]
 name = "redox_users"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
+checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891"
 dependencies = [
  "getrandom",
  "libredox",
@@ -3569,18 +3587,18 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
 
 [[package]]
 name = "reqwest"
-version = "0.12.1"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e333b1eb9fe677f6893a9efcb0d277a2d3edd83f358a236b657c32301dc6e5f6"
+checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10"
 dependencies = [
  "async-compression",
- "base64 0.21.7",
+ "base64 0.22.1",
  "bytes",
  "cookie",
  "cookie_store",
@@ -3620,7 +3638,7 @@ dependencies = [
  "wasm-bindgen-futures",
  "wasm-streams",
  "web-sys",
- "winreg",
+ "winreg 0.52.0",
 ]
 
 [[package]]
@@ -3644,9 +3662,9 @@ dependencies = [
 
 [[package]]
 name = "rust-embed"
-version = "8.3.0"
+version = "8.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb78f46d0066053d16d4ca7b898e9343bc3530f71c61d5ad84cd404ada068745"
+checksum = "19549741604902eb99a7ed0ee177a0663ee1eda51a29f71401f166e47e77806a"
 dependencies = [
  "rust-embed-impl",
  "rust-embed-utils",
@@ -3655,23 +3673,23 @@ dependencies = [
 
 [[package]]
 name = "rust-embed-impl"
-version = "8.3.0"
+version = "8.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b91ac2a3c6c0520a3fb3dd89321177c3c692937c4eb21893378219da10c44fc8"
+checksum = "cb9f96e283ec64401f30d3df8ee2aaeb2561f34c824381efa24a35f79bf40ee4"
 dependencies = [
  "proc-macro2",
  "quote",
  "rust-embed-utils",
  "shellexpand",
- "syn 2.0.55",
+ "syn 2.0.66",
  "walkdir",
 ]
 
 [[package]]
 name = "rust-embed-utils"
-version = "8.3.0"
+version = "8.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86f69089032567ffff4eada41c573fc43ff466c7db7c5688b2e7969584345581"
+checksum = "38c74a686185620830701348de757fd36bef4aa9680fd23c49fc539ddcc1af32"
 dependencies = [
  "sha2 0.10.8",
  "walkdir",
@@ -3679,9 +3697,9 @@ dependencies = [
 
 [[package]]
 name = "rustc-demangle"
-version = "0.1.23"
+version = "0.1.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
 
 [[package]]
 name = "rustc_version"
@@ -3694,9 +3712,9 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.32"
+version = "0.38.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
+checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
 dependencies = [
  "bitflags 2.5.0",
  "errno",
@@ -3707,18 +3725,25 @@ dependencies = [
 
 [[package]]
 name = "rustls-pemfile"
-version = "1.0.4"
+version = "2.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
+checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d"
 dependencies = [
- "base64 0.21.7",
+ "base64 0.22.1",
+ "rustls-pki-types",
 ]
 
 [[package]]
+name = "rustls-pki-types"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d"
+
+[[package]]
 name = "ryu"
-version = "1.0.17"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
 
 [[package]]
 name = "same-file"
@@ -3765,11 +3790,11 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "security-framework"
-version = "2.9.2"
+version = "2.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
+checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.5.0",
  "core-foundation",
  "core-foundation-sys",
  "libc",
@@ -3778,9 +3803,9 @@ dependencies = [
 
 [[package]]
 name = "security-framework-sys"
-version = "2.9.1"
+version = "2.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
+checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -3788,18 +3813,15 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.22"
+version = "1.0.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
-dependencies = [
- "serde",
-]
+checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
 
 [[package]]
 name = "serde"
-version = "1.0.197"
+version = "1.0.203"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
+checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
 dependencies = [
  "serde_derive",
 ]
@@ -3816,20 +3838,20 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.197"
+version = "1.0.203"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
+checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.55",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.114"
+version = "1.0.117"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
+checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
 dependencies = [
  "itoa",
  "ryu",
@@ -3838,20 +3860,20 @@ dependencies = [
 
 [[package]]
 name = "serde_repr"
-version = "0.1.18"
+version = "0.1.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
+checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.55",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.5"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0"
 dependencies = [
  "serde",
 ]
@@ -3870,9 +3892,9 @@ dependencies = [
 
 [[package]]
 name = "serde_yaml"
-version = "0.9.33"
+version = "0.9.34+deprecated"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0623d197252096520c6f2a5e1171ee436e5af99a5d7caa2891e55e61950e6d9"
+checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47"
 dependencies = [
  "indexmap",
  "itoa",
@@ -3927,9 +3949,9 @@ dependencies = [
 
 [[package]]
 name = "signal-hook-registry"
-version = "1.4.1"
+version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
 dependencies = [
  "libc",
 ]
@@ -3962,21 +3984,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d"
 
 [[package]]
-name = "skeptic"
-version = "0.13.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16d23b015676c90a0f01c197bfdc786c20342c73a0afdda9025adb0bc42940a8"
-dependencies = [
- "bytecount",
- "cargo_metadata",
- "error-chain",
- "glob",
- "pulldown-cmark",
- "tempfile",
- "walkdir",
-]
-
-[[package]]
 name = "slab"
 version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3993,9 +4000,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "socket2"
-version = "0.5.6"
+version = "0.5.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
+checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
 dependencies = [
  "libc",
  "windows-sys 0.52.0",
@@ -4081,9 +4088,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.55"
+version = "2.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "002a1b3dbf967edfafc32655d0f377ab0bb7b994aa1d32c8cc7e9b8bf3ebb8f0"
+checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4126,7 +4133,7 @@ dependencies = [
  "cfg-expr",
  "heck 0.5.0",
  "pkg-config",
- "toml 0.8.12",
+ "toml 0.8.13",
  "version-compare",
 ]
 
@@ -4182,22 +4189,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.58"
+version = "1.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
+checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.58"
+version = "1.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
+checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.55",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -4234,9 +4241,9 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.34"
+version = "0.3.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
+checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
 dependencies = [
  "deranged",
  "itoa",
@@ -4255,9 +4262,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.17"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
+checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
 dependencies = [
  "num-conv",
  "time-core",
@@ -4280,9 +4287,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.36.0"
+version = "1.37.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
+checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787"
 dependencies = [
  "backtrace",
  "bytes",
@@ -4303,7 +4310,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.55",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -4330,16 +4337,15 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.7.10"
+version = "0.7.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
+checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1"
 dependencies = [
  "bytes",
  "futures-core",
  "futures-sink",
  "pin-project-lite",
  "tokio",
- "tracing",
 ]
 
 [[package]]
@@ -4356,21 +4362,21 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.8.12"
+version = "0.8.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
+checksum = "a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.22.9",
+ "toml_edit 0.22.13",
 ]
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.5"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf"
 dependencies = [
  "serde",
 ]
@@ -4401,15 +4407,15 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.22.9"
+version = "0.22.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4"
+checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c"
 dependencies = [
  "indexmap",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow 0.6.5",
+ "winnow 0.6.8",
 ]
 
 [[package]]
@@ -4425,7 +4431,6 @@ dependencies = [
  "tokio",
  "tower-layer",
  "tower-service",
- "tracing",
 ]
 
 [[package]]
@@ -4446,7 +4451,6 @@ version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
- "log",
  "pin-project-lite",
  "tracing-attributes",
  "tracing-core",
@@ -4460,7 +4464,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.55",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -4657,7 +4661,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.55",
+ "syn 2.0.66",
  "wasm-bindgen-shared",
 ]
 
@@ -4691,7 +4695,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.55",
+ "syn 2.0.66",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -4766,9 +4770,9 @@ checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
 
 [[package]]
 name = "widestring"
-version = "1.0.2"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8"
+checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311"
 
 [[package]]
 name = "winapi"
@@ -4788,11 +4792,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.6"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
+checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b"
 dependencies = [
- "winapi",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -4807,7 +4811,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -4825,7 +4829,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -4845,17 +4849,18 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.4",
- "windows_aarch64_msvc 0.52.4",
- "windows_i686_gnu 0.52.4",
- "windows_i686_msvc 0.52.4",
- "windows_x86_64_gnu 0.52.4",
- "windows_x86_64_gnullvm 0.52.4",
- "windows_x86_64_msvc 0.52.4",
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
 ]
 
 [[package]]
@@ -4866,9 +4871,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -4878,9 +4883,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -4890,9 +4895,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -4902,9 +4913,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -4914,9 +4925,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -4926,9 +4937,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -4938,9 +4949,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
 
 [[package]]
 name = "winnow"
@@ -4953,9 +4964,9 @@ dependencies = [
 
 [[package]]
 name = "winnow"
-version = "0.6.5"
+version = "0.6.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
+checksum = "c3c52e9c97a68071b23e836c9380edae937f17b9c4667bd021973efc689f618d"
 dependencies = [
  "memchr",
 ]
@@ -4971,6 +4982,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "winreg"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "xdg-home"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4982,9 +5003,9 @@ dependencies = [
 
 [[package]]
 name = "xml-rs"
-version = "0.8.19"
+version = "0.8.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a"
+checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193"
 
 [[package]]
 name = "xml5ever"
@@ -5014,23 +5035,22 @@ dependencies = [
 
 [[package]]
 name = "zbus"
-version = "4.1.2"
+version = "4.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9ff46f2a25abd690ed072054733e0bc3157e3d4c45f41bd183dce09c2ff8ab9"
+checksum = "989c3977a7aafa97b12b9a35d21cdcff9b0d2289762b14683f45d66b1ba6c48f"
 dependencies = [
  "async-broadcast",
  "async-executor",
  "async-fs",
  "async-io",
- "async-lock 3.3.0",
+ "async-lock",
  "async-process",
  "async-recursion",
  "async-task",
  "async-trait",
  "blocking",
- "derivative",
  "enumflags2",
- "event-listener 5.2.0",
+ "event-listener 5.3.0",
  "futures-core",
  "futures-sink",
  "futures-util",
@@ -5053,15 +5073,14 @@ dependencies = [
 
 [[package]]
 name = "zbus_macros"
-version = "4.1.2"
+version = "4.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e0e3852c93dcdb49c9462afe67a2a468f7bd464150d866e861eaf06208633e0"
+checksum = "6fe9de53245dcf426b7be226a4217dd5e339080e5d46e64a02d6e5dcbf90fca1"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "regex",
- "syn 1.0.109",
+ "syn 2.0.66",
  "zvariant_utils",
 ]
 
@@ -5102,9 +5121,9 @@ dependencies = [
 
 [[package]]
 name = "zvariant"
-version = "4.0.2"
+version = "4.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c1b3ca6db667bfada0f1ebfc94b2b1759ba25472ee5373d4551bb892616389a"
+checksum = "9aa6d31a02fbfb602bfde791de7fedeb9c2c18115b3d00f3a36e489f46ffbbc7"
 dependencies = [
  "endi",
  "enumflags2",
@@ -5116,24 +5135,24 @@ dependencies = [
 
 [[package]]
 name = "zvariant_derive"
-version = "4.0.2"
+version = "4.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7a4b236063316163b69039f77ce3117accb41a09567fd24c168e43491e521bc"
+checksum = "642bf1b6b6d527988b3e8193d20969d53700a36eac734d21ae6639db168701c8"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.66",
  "zvariant_utils",
 ]
 
 [[package]]
 name = "zvariant_utils"
-version = "1.1.0"
+version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00bedb16a193cc12451873fee2a1bc6550225acece0e36f333e68326c73c8172"
+checksum = "fc242db087efc22bd9ade7aa7809e4ba828132edc312871584a6b4391bdf8786"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.66",
 ]
diff --git a/pkgs/applications/networking/feedreaders/newsflash/default.nix b/pkgs/applications/networking/feedreaders/newsflash/default.nix
index 38ca720498ebb..779a811605b7a 100644
--- a/pkgs/applications/networking/feedreaders/newsflash/default.nix
+++ b/pkgs/applications/networking/feedreaders/newsflash/default.nix
@@ -1,44 +1,47 @@
-{ lib
-, stdenv
-, rustPlatform
-, fetchFromGitLab
-, substituteAll
-, cargo
-, meson
-, ninja
-, pkg-config
-, rustc
-, blueprint-compiler
-, wrapGAppsHook4
-, gdk-pixbuf
-, glib
-, gtk4
-, libadwaita
-, libxml2
-, openssl
-, sqlite
-, webkitgtk
-, glib-networking
-, librsvg
-, gst_all_1
-, gitUpdater
+{
+  lib,
+  stdenv,
+  rustPlatform,
+  fetchFromGitLab,
+  substituteAll,
+  cargo,
+  meson,
+  ninja,
+  pkg-config,
+  rustc,
+  blueprint-compiler,
+  wrapGAppsHook4,
+  gdk-pixbuf,
+  glib,
+  clapper,
+  gtk4,
+  libadwaita,
+  libxml2,
+  openssl,
+  sqlite,
+  webkitgtk,
+  glib-networking,
+  librsvg,
+  gst_all_1,
+  gitUpdater,
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "newsflash";
-  version = "3.2.0";
+  version = "3.3.0";
 
   src = fetchFromGitLab {
     owner = "news-flash";
     repo = "news_flash_gtk";
     rev = "refs/tags/v.${finalAttrs.version}";
-    hash = "sha256-buXFQ/QAFOcdcywlacySuq8arqPEJIti1nK+yl3yWck=";
+    hash = "sha256-s8h/OIJJzMmsCsaQJ0SOjCAVXfYQbjOupdDtLOqM9d0=";
   };
 
   cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "news-flash-2.3.0-alpha.0" = "sha256-WITvnqeEDp793AlZ3gj8Tg0dfccuOj0Us5H5FaEtkxk=";
+      "clapper-0.1.0" = "sha256-xQ7l6luO5E4PMjtN9elg0bkJa7IhWzA7KuYDJ+m/VY0=";
+      "news-flash-2.3.0-alpha.0" = "sha256-ZgX6tQmPDMSpLcYD04u2ReQXdzeGzQTwGaUy/y4z4do=";
       "newsblur_api-0.3.0" = "sha256-m2178zdJzeskl3BQpZr6tlxTAADehxz8uYcZzi15nhQ=";
     };
   };
@@ -62,6 +65,8 @@ stdenv.mkDerivation (finalAttrs: {
     patchShebangs build-aux/cargo.sh
   '';
 
+  strictDeps = true;
+
   nativeBuildInputs = [
     meson
     ninja
@@ -79,36 +84,40 @@ stdenv.mkDerivation (finalAttrs: {
     blueprint-compiler
   ];
 
-  buildInputs = [
-    gtk4
-    libadwaita
-    libxml2
-    openssl
-    sqlite
-    webkitgtk
+  buildInputs =
+    [
+      clapper
+      gtk4
+      libadwaita
+      libxml2
+      openssl
+      sqlite
+      webkitgtk
 
-    # TLS support for loading external content in webkitgtk WebView
-    glib-networking
+      # TLS support for loading external content in webkitgtk WebView
+      glib-networking
 
-    # SVG support for gdk-pixbuf
-    librsvg
-  ] ++ (with gst_all_1; [
-    # Audio & video support for webkitgtk WebView
-    gstreamer
-    gst-plugins-base
-    gst-plugins-good
-    gst-plugins-bad
-  ]);
+      # SVG support for gdk-pixbuf
+      librsvg
+    ]
+    ++ (with gst_all_1; [
+      # Audio & video support for webkitgtk WebView
+      gstreamer
+      gst-plugins-base
+      gst-plugins-good
+      gst-plugins-bad
+    ]);
 
-  passthru.updateScript = gitUpdater {
-    rev-prefix = "v.";
-  };
+  passthru.updateScript = gitUpdater { rev-prefix = "v."; };
 
   meta = with lib; {
-    description = "A modern feed reader designed for the GNOME desktop";
+    description = "Modern feed reader designed for the GNOME desktop";
     homepage = "https://gitlab.com/news-flash/news_flash_gtk";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ kira-bruneau stunkymonkey ];
+    maintainers = with maintainers; [
+      kira-bruneau
+      stunkymonkey
+    ];
     platforms = platforms.unix;
     mainProgram = "io.gitlab.news_flash.NewsFlash";
   };
diff --git a/pkgs/applications/networking/feedreaders/rss2email/default.nix b/pkgs/applications/networking/feedreaders/rss2email/default.nix
index 3feabb49602dd..a24325454af57 100644
--- a/pkgs/applications/networking/feedreaders/rss2email/default.nix
+++ b/pkgs/applications/networking/feedreaders/rss2email/default.nix
@@ -52,7 +52,7 @@ buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A tool that converts RSS/Atom newsfeeds to email";
+    description = "Tool that converts RSS/Atom newsfeeds to email";
     homepage = "https://pypi.python.org/pypi/rss2email";
     license = licenses.gpl2;
     maintainers = with maintainers; [ ekleog ];
diff --git a/pkgs/applications/networking/feedreaders/russ/default.nix b/pkgs/applications/networking/feedreaders/russ/default.nix
index fdc0336c316f0..aa0154227c1e8 100644
--- a/pkgs/applications/networking/feedreaders/russ/default.nix
+++ b/pkgs/applications/networking/feedreaders/russ/default.nix
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage {
   ]);
 
   meta = with lib; {
-    description = "A TUI RSS reader with vim-like controls and a local-first, offline-first focus";
+    description = "TUI RSS reader with vim-like controls and a local-first, offline-first focus";
     mainProgram = "russ";
     homepage = "https://github.com/ckampfe/russ";
     license = with licenses; [ agpl3Only ];
diff --git a/pkgs/applications/networking/feedreaders/tuifeed/default.nix b/pkgs/applications/networking/feedreaders/tuifeed/default.nix
index 6ee7a61484458..be76874b2fccf 100644
--- a/pkgs/applications/networking/feedreaders/tuifeed/default.nix
+++ b/pkgs/applications/networking/feedreaders/tuifeed/default.nix
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A terminal feed reader with a fancy UI";
+    description = "Terminal feed reader with a fancy UI";
     mainProgram = "tuifeed";
     homepage = "https://github.com/veeso/tuifeed";
     license = with licenses; [ mit ];
diff --git a/pkgs/applications/networking/firehol/default.nix b/pkgs/applications/networking/firehol/default.nix
index 47b69eaed6eaf..cdff695aa8df5 100644
--- a/pkgs/applications/networking/firehol/default.nix
+++ b/pkgs/applications/networking/firehol/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
                    lib.optionals onlyQOS [ "--disable-firehol" ];
 
   meta = with lib; {
-    description = "A firewall for humans";
+    description = "Firewall for humans";
     longDescription = ''
       FireHOL, an iptables stateful packet filtering firewall for humans!
       FireQOS, a TC based bandwidth shaper for humans!
diff --git a/pkgs/applications/networking/flent/default.nix b/pkgs/applications/networking/flent/default.nix
index 35ca72c5eee12..8aa1f9809c262 100644
--- a/pkgs/applications/networking/flent/default.nix
+++ b/pkgs/applications/networking/flent/default.nix
@@ -46,7 +46,7 @@ buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "The FLExible Network Tester";
+    description = "FLExible Network Tester";
     homepage = "https://flent.org";
     license = licenses.gpl3;
 
diff --git a/pkgs/applications/networking/flexget/default.nix b/pkgs/applications/networking/flexget/default.nix
index b2349dff44cfd..1c2402f6495b3 100644
--- a/pkgs/applications/networking/flexget/default.nix
+++ b/pkgs/applications/networking/flexget/default.nix
@@ -1,12 +1,11 @@
 { lib
 , python3
-, fetchPypi
 , fetchFromGitHub
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "flexget";
-  version = "3.11.33";
+  version = "3.11.37";
   pyproject = true;
 
   # Fetch from GitHub in order to use `requirements.in`
@@ -14,7 +13,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "Flexget";
     repo = "Flexget";
     rev = "refs/tags/v${version}";
-    hash = "sha256-kgTlz3cUztIUKKqmUpUpEwu5qyjE0fCarG/EKJ1PoPc=";
+    hash = "sha256-bZd/iLEGF5+Zt4kKAvUmjHiPKA1v1FWf5/BEcsLy9MU=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/ftp/taxi/default.nix b/pkgs/applications/networking/ftp/taxi/default.nix
index b29ee472f146b..4b3303ecd0acd 100644
--- a/pkgs/applications/networking/ftp/taxi/default.nix
+++ b/pkgs/applications/networking/ftp/taxi/default.nix
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/Alecaddd/taxi";
-    description = "The FTP Client that drives you anywhere";
+    description = "FTP Client that drives you anywhere";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ AndersonTorres ] ++ teams.pantheon.members;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/gdrive/default.nix b/pkgs/applications/networking/gdrive/default.nix
index 2d100e3c21599..a07f25775ff44 100644
--- a/pkgs/applications/networking/gdrive/default.nix
+++ b/pkgs/applications/networking/gdrive/default.nix
@@ -26,7 +26,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/prasmussen/gdrive";
-    description = "A command line utility for interacting with Google Drive";
+    description = "Command line utility for interacting with Google Drive";
     license = licenses.mit;
     maintainers = [ maintainers.rzetterberg ];
     mainProgram = "gdrive";
diff --git a/pkgs/applications/networking/geph/default.nix b/pkgs/applications/networking/geph/default.nix
index 68cf0d61dacc4..32b0fe1462946 100644
--- a/pkgs/applications/networking/geph/default.nix
+++ b/pkgs/applications/networking/geph/default.nix
@@ -4,7 +4,8 @@
 , fetchFromGitHub
 , buildGoModule
 , makeWrapper
-, nodePackages
+, nodejs
+, pnpm
 , cacert
 , esbuild
 , jq
@@ -21,7 +22,7 @@
 let
   version = "4.11.0";
   geph-meta = with lib; {
-    description = "A modular Internet censorship circumvention system designed specifically to deal with national filtering.";
+    description = "Modular Internet censorship circumvention system designed specifically to deal with national filtering";
     homepage = "https://geph.io";
     platforms = platforms.linux;
     maintainers = with maintainers; [ penalty1083 ];
@@ -48,7 +49,7 @@ in
     };
   };
 
-  gui = stdenvNoCC.mkDerivation rec {
+  gui = stdenvNoCC.mkDerivation (finalAttrs: {
     pname = "geph-gui";
     inherit version;
 
@@ -60,42 +61,11 @@ in
       fetchSubmodules = true;
     };
 
-    pnpm-deps = stdenvNoCC.mkDerivation {
-      pname = "${pname}-pnpm-deps";
-      inherit src version;
-
-      sourceRoot = "${src.name}/gephgui-wry/gephgui";
-
-      nativeBuildInputs = [
-        jq
-        moreutils
-        nodePackages.pnpm
-        cacert
-      ];
-
-      installPhase = ''
-        export HOME=$(mktemp -d)
-        pnpm config set store-dir $out
-        pnpm install --ignore-scripts
-
-        # Remove timestamp and sort the json files
-        rm -rf $out/v3/tmp
-        for f in $(find $out -name "*.json"); do
-          sed -i -E -e 's/"checkedAt":[0-9]+,//g' $f
-          jq --sort-keys . $f | sponge $f
-        done
-      '';
-
-      dontFixup = true;
-      outputHashMode = "recursive";
-      outputHash = "sha256-OKPx5xRI7DWd6m31nYx1biP0k6pcZ7fq7dfVlHda4O0=";
-    };
-
     gephgui-wry = rustPlatform.buildRustPackage {
       pname = "gephgui-wry";
-      inherit version src;
+      inherit (finalAttrs) version src;
 
-      sourceRoot = "${src.name}/gephgui-wry";
+      sourceRoot = "${finalAttrs.src.name}/gephgui-wry";
 
       cargoLock = {
         lockFile = ./Cargo.lock;
@@ -105,10 +75,17 @@ in
         };
       };
 
+      pnpmDeps = pnpm.fetchDeps {
+        inherit (finalAttrs) pname version src;
+        sourceRoot = "${finalAttrs.src.name}/gephgui-wry/gephgui";
+        hash = "sha256-0MGlsLEgugQ1wEz07ROIwkanTa8PSKwIaxNahyS1014=";
+      };
+
       nativeBuildInputs = [
         pkg-config
-        nodePackages.pnpm
+        pnpm.configHook
         makeWrapper
+        nodejs
       ];
 
       buildInputs = [
@@ -132,22 +109,19 @@ in
         });
       })}";
 
+      pnpmRoot = "gephgui";
+
       preBuild = ''
-        cd gephgui
-        export HOME=$(mktemp -d)
-        pnpm config set store-dir ${pnpm-deps}
-        pnpm install --ignore-scripts --offline
-        chmod -R +w node_modules
-        pnpm rebuild
+        pushd gephgui
         pnpm build
-        cd ..
+        popd
       '';
     };
 
     dontBuild = true;
 
     installPhase = ''
-      install -Dt $out/bin ${gephgui-wry}/bin/gephgui-wry
+      install -Dt $out/bin ${finalAttrs.gephgui-wry}/bin/gephgui-wry
       install -d $out/share/icons/hicolor
       for i in '16' '32' '64' '128' '256'
       do
@@ -163,5 +137,5 @@ in
     meta = geph-meta // {
       license = with lib.licenses; [ unfree ];
     };
-  };
+  });
 }
diff --git a/pkgs/applications/networking/giara/default.nix b/pkgs/applications/networking/giara/default.nix
index 77a7777ceff0d..872c869f1691d 100644
--- a/pkgs/applications/networking/giara/default.nix
+++ b/pkgs/applications/networking/giara/default.nix
@@ -67,7 +67,7 @@ python3.pkgs.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A Reddit app, built with Python, GTK and Handy; Created with mobile Linux in mind";
+    description = "Reddit app, built with Python, GTK and Handy; Created with mobile Linux in mind";
     maintainers = with maintainers; [ dasj19 ];
     homepage = "https://gitlab.gnome.org/World/giara";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/networking/gns3/default.nix b/pkgs/applications/networking/gns3/default.nix
index c039a8885ae04..b6838844afe43 100644
--- a/pkgs/applications/networking/gns3/default.nix
+++ b/pkgs/applications/networking/gns3/default.nix
@@ -12,25 +12,25 @@ in {
 
   guiStable = mkGui {
     channel = "stable";
-    version = "2.2.46";
-    hash = "sha256-i/Eq66dYDGR4RLJ76ZlKruhU0KC9KlMMf8Wb91ZoyY0=";
+    version = "2.2.47";
+    hash = "sha256-6UXQTPkRHbtNX6RzWMakCsO9YpkFlWliNnm+mZ4wuZA=";
   };
 
   guiPreview = mkGui {
     channel = "stable";
-    version = "2.2.46";
-    hash = "sha256-i/Eq66dYDGR4RLJ76ZlKruhU0KC9KlMMf8Wb91ZoyY0=";
+    version = "2.2.47";
+    hash = "sha256-6UXQTPkRHbtNX6RzWMakCsO9YpkFlWliNnm+mZ4wuZA=";
   };
 
   serverStable = mkServer {
     channel = "stable";
-    version = "2.2.46";
-    hash = "sha256-A6rAhc/EGvbqVdg1jXxNX3bKQLcGurqa7hKh9LvH+es=";
+    version = "2.2.47";
+    hash = "sha256-iZ/1qACPLe7r1cZMhJbFRjVt/FlVgadBgp9tJwvYSi0=";
   };
 
   serverPreview = mkServer {
     channel = "stable";
-    version = "2.2.46";
-    hash = "sha256-A6rAhc/EGvbqVdg1jXxNX3bKQLcGurqa7hKh9LvH+es=";
+    version = "2.2.47";
+    hash = "sha256-iZ/1qACPLe7r1cZMhJbFRjVt/FlVgadBgp9tJwvYSi0=";
   };
 }
diff --git a/pkgs/applications/networking/gns3/server.nix b/pkgs/applications/networking/gns3/server.nix
index 3e4764a145024..c6ba5fe2b93e6 100644
--- a/pkgs/applications/networking/gns3/server.nix
+++ b/pkgs/applications/networking/gns3/server.nix
@@ -47,7 +47,6 @@ python3Packages.buildPythonApplication {
     setuptools
     truststore
     yarl
-    zipstream
   ] ++ lib.optionals (pythonOlder "3.9") [
     importlib-resources
   ];
diff --git a/pkgs/applications/networking/go-graft/default.nix b/pkgs/applications/networking/go-graft/default.nix
index 14dbcea6277ba..b57f57081b8c3 100644
--- a/pkgs/applications/networking/go-graft/default.nix
+++ b/pkgs/applications/networking/go-graft/default.nix
@@ -18,7 +18,7 @@ buildGoModule rec {
   subPackages = [ "." ];
 
   meta = with lib; {
-    description = "A command-line tool for one-click proxy in your research and development without installing v2ray or anything else";
+    description = "Command-line tool for one-click proxy in your research and development without installing v2ray or anything else";
     homepage = "https://github.com/mzz2017/gg";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ xyenon ];
diff --git a/pkgs/applications/networking/google-drive-ocamlfuse/default.nix b/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
index 406c6e547aaaa..5455ce856d522 100644
--- a/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
+++ b/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
@@ -22,7 +22,7 @@ buildDunePackage rec {
 
   meta = {
     inherit (src.meta) homepage;
-    description = "A FUSE-based file system backed by Google Drive, written in OCaml";
+    description = "FUSE-based file system backed by Google Drive, written in OCaml";
     license = lib.licenses.mit;
     platforms = lib.platforms.linux;
     maintainers = with lib.maintainers; [ obadz ];
diff --git a/pkgs/applications/networking/gopher/geomyidae/default.nix b/pkgs/applications/networking/gopher/geomyidae/default.nix
index 442757a8bbe4f..949150ea5f7ef 100644
--- a/pkgs/applications/networking/gopher/geomyidae/default.nix
+++ b/pkgs/applications/networking/gopher/geomyidae/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
   meta = with lib; {
-    description = "A gopher daemon for Linux/BSD";
+    description = "Gopher daemon for Linux/BSD";
     mainProgram = "geomyidae";
     homepage = "gopher://bitreich.org/1/scm/geomyidae";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/gopher/gopher/default.nix b/pkgs/applications/networking/gopher/gopher/default.nix
index 09b8f8aafcb31..822acd530749d 100644
--- a/pkgs/applications/networking/gopher/gopher/default.nix
+++ b/pkgs/applications/networking/gopher/gopher/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://gopher.quux.org:70/devel/gopher";
-    description = "A ncurses gopher client";
+    description = "Ncurses gopher client";
     platforms = platforms.linux; # clang doesn't like local regex.h
     license = licenses.gpl2;
     maintainers = with maintainers; [ sternenseemann ];
diff --git a/pkgs/applications/networking/gopher/phetch/default.nix b/pkgs/applications/networking/gopher/phetch/default.nix
index ed327dab740a7..d8c30a9e6ab40 100644
--- a/pkgs/applications/networking/gopher/phetch/default.nix
+++ b/pkgs/applications/networking/gopher/phetch/default.nix
@@ -36,7 +36,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A quick lil gopher client for your terminal, written in rust";
+    description = "Quick lil gopher client for your terminal, written in rust";
     mainProgram = "phetch";
     longDescription = ''
       phetch is a terminal client designed to help you quickly navigate the gophersphere.
diff --git a/pkgs/applications/networking/gopher/sacc/default.nix b/pkgs/applications/networking/gopher/sacc/default.nix
index 2e89930f2b781..dc4ed20d7204e 100644
--- a/pkgs/applications/networking/gopher/sacc/default.nix
+++ b/pkgs/applications/networking/gopher/sacc/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = with lib; {
-    description = "A terminal gopher client";
+    description = "Terminal gopher client";
     mainProgram = "sacc";
     homepage = "gopher://bitreich.org/1/scm/sacc";
     license = licenses.isc;
diff --git a/pkgs/applications/networking/gossa/default.nix b/pkgs/applications/networking/gossa/default.nix
index 13b59f4c4d9df..66f024934b2a3 100644
--- a/pkgs/applications/networking/gossa/default.nix
+++ b/pkgs/applications/networking/gossa/default.nix
@@ -25,7 +25,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/pldubouilh/gossa";
-    description = "A fast and simple multimedia fileserver";
+    description = "Fast and simple multimedia fileserver";
     license = licenses.mit;
     maintainers = with maintainers; [ dsymbol ];
     mainProgram = "gossa";
diff --git a/pkgs/applications/networking/hydroxide/default.nix b/pkgs/applications/networking/hydroxide/default.nix
index e06c120490108..c9c54cfe08cda 100644
--- a/pkgs/applications/networking/hydroxide/default.nix
+++ b/pkgs/applications/networking/hydroxide/default.nix
@@ -18,7 +18,7 @@ buildGoModule rec {
   subPackages = [ "cmd/hydroxide" ];
 
   meta = with lib; {
-    description = "A third-party, open-source ProtonMail bridge";
+    description = "Third-party, open-source ProtonMail bridge";
     homepage = "https://github.com/emersion/hydroxide";
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne ];
diff --git a/pkgs/applications/networking/hyprspace/default.nix b/pkgs/applications/networking/hyprspace/default.nix
index 8fc678683658d..77a3107420627 100644
--- a/pkgs/applications/networking/hyprspace/default.nix
+++ b/pkgs/applications/networking/hyprspace/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   vendorHash = "sha256-EV59sXmjunWs+MC++CwyuBlbWzWZI1YXDLEsOaESgRU=";
 
   meta = with lib; {
-    description = "A Lightweight VPN Built on top of Libp2p for Truly Distributed Networks.";
+    description = "Lightweight VPN Built on top of Libp2p for Truly Distributed Networks";
     homepage = "https://github.com/hyprspace/hyprspace";
     license = licenses.asl20;
     maintainers = with maintainers; [ yusdacra ];
diff --git a/pkgs/applications/networking/ids/suricata/default.nix b/pkgs/applications/networking/ids/suricata/default.nix
index 823a455fe857b..215606c527390 100644
--- a/pkgs/applications/networking/ids/suricata/default.nix
+++ b/pkgs/applications/networking/ids/suricata/default.nix
@@ -151,7 +151,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A free and open source, mature, fast and robust network threat detection engine";
+    description = "Free and open source, mature, fast and robust network threat detection engine";
     homepage = "https://suricata.io";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/instant-messengers/abaddon/default.nix b/pkgs/applications/networking/instant-messengers/abaddon/default.nix
index f28334ffa3c0a..a8db4395645fa 100644
--- a/pkgs/applications/networking/instant-messengers/abaddon/default.nix
+++ b/pkgs/applications/networking/instant-messengers/abaddon/default.nix
@@ -6,10 +6,12 @@
 , makeDesktopItem
 , makeWrapper
 , pkg-config
+, alsa-lib
 , curl
 , gtkmm3
 , libhandy
 , libopus
+, libpulseaudio
 , libsecret
 , libsodium
 , nlohmann_json
@@ -58,6 +60,7 @@ stdenv.mkDerivation rec {
     mkdir $out/bin
     cp abaddon $out/bin
     wrapProgram $out/bin/abaddon \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ alsa-lib libpulseaudio ]}" \
       --chdir $out/share/abaddon
 
     runHook postInstall
diff --git a/pkgs/applications/networking/instant-messengers/alfaview/default.nix b/pkgs/applications/networking/instant-messengers/alfaview/default.nix
index f1c8367b91c30..398a3457df9b9 100644
--- a/pkgs/applications/networking/instant-messengers/alfaview/default.nix
+++ b/pkgs/applications/networking/instant-messengers/alfaview/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "alfaview";
-  version = "9.10.1";
+  version = "9.11.0";
 
   src = fetchurl {
     url = "https://assets.alfaview.com/stable/linux/deb/${pname}_${version}.deb";
-    hash = "sha256-k58v8l/LE0lWQFbQ6p2XGiRjMMwzArW3KVbIxlKC1SA=";
+    hash = "sha256-VnIMcpTlJT6E4DhGuKos2STbwAfdRNFs2XnodcqB+L8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/armcord/default.nix b/pkgs/applications/networking/instant-messengers/armcord/default.nix
index d3644e1d27ee8..f7336df2612f1 100644
--- a/pkgs/applications/networking/instant-messengers/armcord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/armcord/default.nix
@@ -3,7 +3,7 @@
 , fetchurl
 , autoPatchelfHook
 , dpkg
-, makeBinaryWrapper
+, makeShellWrapper
 , wrapGAppsHook3
 , alsa-lib
 , at-spi2-atk
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
         };
       }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
-  nativeBuildInputs = [ autoPatchelfHook dpkg makeBinaryWrapper wrapGAppsHook3 ];
+  nativeBuildInputs = [ autoPatchelfHook dpkg makeShellWrapper wrapGAppsHook3 ];
 
   dontWrapGApps = true;
 
@@ -113,8 +113,9 @@ stdenv.mkDerivation rec {
     cp -R "usr/share" "$out/share"
     chmod -R g-w "$out"
 
-    # Wrap the startup command
-    makeBinaryWrapper $out/opt/ArmCord/armcord $out/bin/armcord \
+    # use makeShellWrapper (instead of the makeBinaryWrapper provided by wrapGAppsHook3) for proper shell variable expansion
+    # see https://github.com/NixOS/nixpkgs/issues/172583
+    makeShellWrapper $out/opt/ArmCord/armcord $out/bin/armcord \
       "''${gappsWrapperArgs[@]}" \
       --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland --enable-features=UseOzonePlatform --enable-features=WebRTCPipeWireCapturer }}" \
diff --git a/pkgs/applications/networking/instant-messengers/beeper/default.nix b/pkgs/applications/networking/instant-messengers/beeper/default.nix
index 3651408c8b7fc..87d1d53c9ddea 100644
--- a/pkgs/applications/networking/instant-messengers/beeper/default.nix
+++ b/pkgs/applications/networking/instant-messengers/beeper/default.nix
@@ -10,11 +10,11 @@
 }:
 let
   pname = "beeper";
-  version = "3.104.7";
+  version = "3.106.2";
   name = "${pname}-${version}";
   src = fetchurl {
-    url = "https://download.todesktop.com/2003241lzgn20jd/beeper-3.104.7-build-2405024h1b4qoap-x86_64.AppImage";
-    hash = "sha256-VjN9bKxFokExEjMGz42d/VVwVWJzowI42ONsNyXEbnc=";
+    url = "https://download.todesktop.com/2003241lzgn20jd/beeper-3.106.2-build-240604xwl5q01pr-x86_64.AppImage";
+    hash = "sha256-WbAWJJzk58UVmRN3RHmU/V6zPiLWAb7m7hns4gmP55M=";
   };
   appimage = appimageTools.wrapType2 {
     inherit version pname src;
@@ -66,7 +66,7 @@ stdenvNoCC.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "Universal chat app.";
+    description = "Universal chat app";
     longDescription = ''
       Beeper is a universal chat app. With Beeper, you can send
       and receive messages to friends, family and colleagues on
diff --git a/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix b/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix
index e5a45a1e9f529..707e7ffd9e469 100644
--- a/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix
+++ b/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The Facebook protocol plugin for bitlbee";
+    description = "Facebook protocol plugin for bitlbee";
     homepage = "https://github.com/bitlbee/bitlbee-facebook";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ toonn ];
diff --git a/pkgs/applications/networking/instant-messengers/briar-desktop/default.nix b/pkgs/applications/networking/instant-messengers/briar-desktop/default.nix
index c0fd454a2fd83..9ce9801ae2ed0 100644
--- a/pkgs/applications/networking/instant-messengers/briar-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/briar-desktop/default.nix
@@ -19,11 +19,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "briar-desktop";
-  version = "0.5.0-beta";
+  version = "0.6.0-beta";
 
   src = fetchurl {
     url = "https://desktop.briarproject.org/jars/linux/${version}/briar-desktop-linux-${version}.jar";
-    hash = "sha256-J93ODYAiRbQxG2BF7P3H792ymAcJ3f07l7zRSw8kM+E=";
+    hash = "sha256-ITlg2THQwP91nVxHhLfXPBtC4e3EU9V7D/15XqWC7FE=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/applications/networking/instant-messengers/caprine-bin/default.nix b/pkgs/applications/networking/instant-messengers/caprine-bin/default.nix
index ac3c751ed5cb2..cadfe432b297e 100644
--- a/pkgs/applications/networking/instant-messengers/caprine-bin/default.nix
+++ b/pkgs/applications/networking/instant-messengers/caprine-bin/default.nix
@@ -3,7 +3,7 @@ let
   pname = "caprine";
   version = "2.59.1";
   metaCommon = with lib; {
-    description = "An elegant Facebook Messenger desktop app";
+    description = "Elegant Facebook Messenger desktop app";
     homepage = "https://sindresorhus.com/caprine";
     license = licenses.mit;
     maintainers = with maintainers; [ ShamrockLee ];
diff --git a/pkgs/applications/networking/instant-messengers/chatterino2/default.nix b/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
index 5b1f1f5740080..43b5e7600bce2 100644
--- a/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
+++ b/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     cp $src/resources/icon.png $out/share/icons/hicolor/256x256/apps/chatterino.png
   '';
   meta = with lib; {
-    description = "A chat client for Twitch chat";
+    description = "Chat client for Twitch chat";
     mainProgram = "chatterino";
     longDescription = ''
       Chatterino is a chat client for Twitch chat. It aims to be an
diff --git a/pkgs/applications/networking/instant-messengers/chatty/default.nix b/pkgs/applications/networking/instant-messengers/chatty/default.nix
index ea43f470e8bb6..c939412e152f0 100644
--- a/pkgs/applications/networking/instant-messengers/chatty/default.nix
+++ b/pkgs/applications/networking/instant-messengers/chatty/default.nix
@@ -15,6 +15,7 @@
 , gnome-desktop
 , gspell
 , gtk4
+, gtksourceview5
 , gst_all_1
 , json-glib
 , libgcrypt
@@ -28,17 +29,17 @@
 , plugins ? [ ]
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "chatty";
-  version = "0.8.2";
+  version = "0.8.3";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = "Chatty";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-7SdoN9JjGwELOdISJwS1Afcydp/rE2uq/tHO/UrFKNU=";
+    hash = "sha256-Ywed/8PhOgmzcka+5dyxjmWTcDBPF90LW+C2eeQmyLo=";
   };
 
   nativeBuildInputs = [
@@ -59,6 +60,7 @@ stdenv.mkDerivation rec {
     gnome-desktop
     gspell
     gtk4
+    gtksourceview5
     gst_all_1.gstreamer
     json-glib
     libgcrypt
@@ -82,9 +84,9 @@ stdenv.mkDerivation rec {
     description = "XMPP and SMS messaging via libpurple and ModemManager";
     mainProgram = "chatty";
     homepage = "https://gitlab.gnome.org/World/Chatty";
-    changelog = "https://gitlab.gnome.org/World/Chatty/-/blob/${src.rev}/NEWS";
+    changelog = "https://gitlab.gnome.org/World/Chatty/-/blob/${finalAttrs.src.rev}/NEWS";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dotlambda ];
     platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/applications/networking/instant-messengers/deltachat-cursed/default.nix b/pkgs/applications/networking/instant-messengers/deltachat-cursed/default.nix
index 8e496c6c11012..a8299361d928b 100644
--- a/pkgs/applications/networking/instant-messengers/deltachat-cursed/default.nix
+++ b/pkgs/applications/networking/instant-messengers/deltachat-cursed/default.nix
@@ -7,7 +7,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "deltachat-cursed";
-  version = "0.8.0";
+  version = "0.9.0";
 
   pyproject = true;
 
@@ -15,17 +15,17 @@ python3.pkgs.buildPythonApplication rec {
     owner = "adbenitez";
     repo = "deltachat-cursed";
     rev = "v${version}";
-    hash = "sha256-1QNhNPa6ZKn0lGQXs/cmfdSFHscwlYwFC/2DpnMoHvY=";
+    hash = "sha256-z4JKe5soR4FdIn8hugxtnxQr/9V8m8a7QRzE1liIexc=";
   };
 
-  nativeBuildInputs = with python3.pythonOnBuildForHost.pkgs; [
+  build-system = with python3.pythonOnBuildForHost.pkgs; [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  dependencies = with python3.pkgs; [
     appdirs
-    deltachat
+    deltachat2
     emoji
     notify-py
     setuptools # for pkg_resources
diff --git a/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix b/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
index d53b122068a91..43a18d775f9ee 100644
--- a/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
@@ -1,11 +1,12 @@
 { lib
 , buildNpmPackage
 , copyDesktopItems
-, electron_28
+, electron
 , buildGoModule
 , esbuild
 , fetchFromGitHub
 , jq
+, deltachat-rpc-server
 , libdeltachat
 , makeDesktopItem
 , makeWrapper
@@ -36,16 +37,16 @@ let
 in
 buildNpmPackage rec {
   pname = "deltachat-desktop";
-  version = "1.44.1";
+  version = "1.46.1";
 
   src = fetchFromGitHub {
     owner = "deltachat";
     repo = "deltachat-desktop";
     rev = "v${version}";
-    hash = "sha256-fL+9oPQ5dAgvQREZ7A+hKo2MnZKeVvadQDvDPsDNbnQ=";
+    hash = "sha256-90/Wmh0h75i3kvqj3Wo+A3KlKW8LLDWfPza2gDrDY6E=";
   };
 
-  npmDepsHash = "sha256-rUxJLDsAfp+brecTThYTdHIVIfVkKwZ/W5sHV0hHHIk=";
+  npmDepsHash = "sha256-UzWxMd+DYH5A8Zo1rzi8oIsoKbmzsVbGpr3uWtc02rY=";
 
   postPatch = ''
     test \
@@ -64,6 +65,7 @@ buildNpmPackage rec {
   ];
 
   buildInputs = [
+    deltachat-rpc-server
     libdeltachat
   ] ++ lib.optionals stdenv.isDarwin [
     CoreServices
@@ -77,7 +79,8 @@ buildNpmPackage rec {
   };
 
   preBuild = ''
-    rm -r node_modules/deltachat-node/node/prebuilds
+    rm node_modules/@deltachat/stdio-rpc-server-*/deltachat-rpc-server
+    ln -s ${lib.getExe deltachat-rpc-server} node_modules/@deltachat/stdio-rpc-server-linux-*
   '';
 
   npmBuildScript = "build4production";
@@ -93,6 +96,9 @@ buildNpmPackage rec {
     awk '!/^#/ && NF' build/packageignore_list \
       | xargs -I {} sh -c "rm -rf $out/lib/node_modules/deltachat-desktop/{}" || true
 
+    # required for electron to import index.js as a module
+    cp package.json $out/lib/node_modules/deltachat-desktop
+
     install -D build/icon.png \
       $out/share/icons/hicolor/scalable/apps/deltachat.png
 
@@ -103,7 +109,7 @@ buildNpmPackage rec {
         $out/lib/node_modules/deltachat-desktop/html-dist/fonts
     done
 
-    makeWrapper ${lib.getExe electron_28} $out/bin/deltachat \
+    makeWrapper ${lib.getExe electron} $out/bin/deltachat \
       --set LD_PRELOAD ${sqlcipher}/lib/libsqlcipher${stdenv.hostPlatform.extensions.sharedLibrary} \
       --add-flags $out/lib/node_modules/deltachat-desktop
 
diff --git a/pkgs/applications/networking/instant-messengers/discord-screenaudio/default.nix b/pkgs/applications/networking/instant-messengers/discord-screenaudio/default.nix
index aa3bb8277227f..9b4778cfd6a4e 100644
--- a/pkgs/applications/networking/instant-messengers/discord-screenaudio/default.nix
+++ b/pkgs/applications/networking/instant-messengers/discord-screenaudio/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "A custom discord client that supports streaming with audio on Linux";
+    description = "Custom discord client that supports streaming with audio on Linux";
     mainProgram = "discord-screenaudio";
     homepage = "https://github.com/maltejur/discord-screenaudio";
     downloadPage = "https://github.com/maltejur/discord-screenaudio/releases";
diff --git a/pkgs/applications/networking/instant-messengers/discord/default.nix b/pkgs/applications/networking/instant-messengers/discord/default.nix
index 863e27823bf58..ec8bcb5a8d8eb 100644
--- a/pkgs/applications/networking/instant-messengers/discord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/discord/default.nix
@@ -2,52 +2,52 @@
 let
   versions =
     if stdenv.isLinux then {
-      stable = "0.0.54";
-      ptb = "0.0.84";
-      canary = "0.0.382";
-      development = "0.0.18";
+      stable = "0.0.56";
+      ptb = "0.0.90";
+      canary = "0.0.422";
+      development = "0.0.19";
     } else {
-      stable = "0.0.303";
-      ptb = "0.0.113";
-      canary = "0.0.492";
-      development = "0.0.40";
+      stable = "0.0.307";
+      ptb = "0.0.119";
+      canary = "0.0.531";
+      development = "0.0.41";
     };
   version = versions.${branch};
   srcs = rec {
     x86_64-linux = {
       stable = fetchurl {
         url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz";
-        hash = "sha256-ruaotzJ+dvqNUV/e4xpJ1rorGiC4Im57BSSiddP8ZF8=";
+        hash = "sha256-HpdsvzWtB4AoqZXf7LV0J50/OQDsYgK8bkQ1HGvu7Ec=";
       };
       ptb = fetchurl {
         url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
-        hash = "sha256-0bOsmy2ldZT7S4tVOkihE5eLiujXC/ugF8CKXfBXHNU=";
+        hash = "sha256-75YnLhgNTd7pwpTE9qSIF0rzBwmGJ/CYa+YgN3OQZ2w=";
       };
       canary = fetchurl {
         url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
-        hash = "sha256-MXMq4V+21KPHoCUs5x1rNRbkfw6+3cF7xSSNguiqOfc=";
+        hash = "sha256-MTC079WTN0Vw57aLro1WkHRL09IKYjnUsfBAMiiHjI0=";
       };
       development = fetchurl {
         url = "https://dl-development.discordapp.net/apps/linux/${version}/discord-development-${version}.tar.gz";
-        hash = "sha256-SoJ4/jXl0axQyeqv8CPSzM+lBsYq/QelHctRAeoscdA=";
+        hash = "sha256-RP6SUM4DW3JhddSbJX6Xg8EE4iqCkSOgBL1oa7Zwp/E=";
       };
     };
     x86_64-darwin = {
       stable = fetchurl {
         url = "https://dl.discordapp.net/apps/osx/${version}/Discord.dmg";
-        hash = "sha256-B4r0W//d3761ufQr4PAt4ZuPMrOC7Zfo8Q3lHqKxkJ0=";
+        hash = "sha256-FBYxQhtwctMQ8ByOgAVncWh5297k1Vh95w/rWnZg9Fw=";
       };
       ptb = fetchurl {
         url = "https://dl-ptb.discordapp.net/apps/osx/${version}/DiscordPTB.dmg";
-        hash = "sha256-hdT33jK0nHvY3rIh9i1eDq5j46xS9xInRxzGCUP/hi8=";
+        hash = "sha256-Y5t6ndecfRf3zVfYEvFGiFinQxRSa7VyfnkAors8VPY=";
       };
       canary = fetchurl {
         url = "https://dl-canary.discordapp.net/apps/osx/${version}/DiscordCanary.dmg";
-        hash = "sha256-74XQu4PGW3eW4wPICGsAVlR4SQkDXJWZ1p/G7Bwq950=";
+        hash = "sha256-eMJ/OKi+k92QEk140UW3RIi5G/UFlR6mW9f8kPZbFaw=";
       };
       development = fetchurl {
         url = "https://dl-development.discordapp.net/apps/osx/${version}/DiscordDevelopment.dmg";
-        hash = "sha256-uPz3uWPAqp3JeL9E+coMrb2Hc+Zn0YGF9Jw3BTKYRlw=";
+        hash = "sha256-RiGyca/zjPpENgcq9KnRh5G4YArrUOQeueUdUBgZgjo=";
       };
     };
     aarch64-darwin = x86_64-darwin;
diff --git a/pkgs/applications/networking/instant-messengers/element/element-web.nix b/pkgs/applications/networking/instant-messengers/element/element-web.nix
index 2d69022ec35df..66243fe724444 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-web.nix
+++ b/pkgs/applications/networking/instant-messengers/element/element-web.nix
@@ -77,7 +77,7 @@ stdenv.mkDerivation (finalAttrs: builtins.removeAttrs pinData [ "hashes" ] // {
   '';
 
   meta = {
-    description = "A glossy Matrix collaboration client for the web";
+    description = "Glossy Matrix collaboration client for the web";
     homepage = "https://element.io/";
     changelog = "https://github.com/vector-im/element-web/blob/v${finalAttrs.version}/CHANGELOG.md";
     maintainers = lib.teams.matrix.members;
diff --git a/pkgs/applications/networking/instant-messengers/element/pin.nix b/pkgs/applications/networking/instant-messengers/element/pin.nix
index 6c30f9a19bf69..b3b722e67529b 100644
--- a/pkgs/applications/networking/instant-messengers/element/pin.nix
+++ b/pkgs/applications/networking/instant-messengers/element/pin.nix
@@ -1,9 +1,9 @@
 {
-  "version" = "1.11.66";
+  "version" = "1.11.68";
   "hashes" = {
-    "desktopSrcHash" = "sha256-QrFk6NIHvWgQuJz33CEU6rwmgtGZ9w3L9vqj/rdCkE8=";
-    "desktopYarnHash" = "1kin5z6cjgsljdhh5f4fq2782ld86pza6hz58rq1zwbd187nzbwz";
-    "webSrcHash" = "sha256-xWaK2tHsuZmiwp7HExX83zKL8Z0ScRCEOnfxePWk2KI=";
-    "webYarnHash" = "1ykjpsg4d4kykd6w7c0yjyg8ljpc9czzwjx7ab27i84ys6pknx3q";
+    "desktopSrcHash" = "sha256-L3rto0V0RIf5ILWYGFnuGpwciwc55rR2+Zqj/azuWlo=";
+    "desktopYarnHash" = "0awz1dscksx4zvp99p08mdl2h6i7gbwjddanl3bhxkysxqdnwqb1";
+    "webSrcHash" = "sha256-IRgEV4H0fYo0ijLWF8ICdewqencgTJlqstzsGzlJI0k=";
+    "webYarnHash" = "092m0bhc3pp9dpaz6kri3hi723kqq1pbja4vf2xbxyx4x4yf0vlz";
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/feishu/default.nix b/pkgs/applications/networking/instant-messengers/feishu/default.nix
index 6d89bca9e4fa0..d43320558b2a8 100644
--- a/pkgs/applications/networking/instant-messengers/feishu/default.nix
+++ b/pkgs/applications/networking/instant-messengers/feishu/default.nix
@@ -57,44 +57,25 @@
 , wayland
 , wrapGAppsHook3
 , xdg-utils
+, writeScript
 
-# for custom command line arguments, e.g. "--use-gl=desktop"
+  # for custom command line arguments, e.g. "--use-gl=desktop"
 , commandLineArgs ? ""
 }:
 
-stdenv.mkDerivation rec {
-  version = "6.9.20";
-  pname = "feishu";
-  packageHash = "6085d1c4"; # A hash value used in the download url
-
-  src = fetchurl {
-    url = "https://sf3-cn.feishucdn.com/obj/ee-appcenter/${packageHash}/Feishu-linux_x64-${version}.deb";
-    hash = "sha256-kg5j/vWaCBUjnF983kk0ZMJ+inF5z5ctED9+ITuIn94=";
+let
+  sources = {
+    x86_64-linux = fetchurl {
+      url = "https://sf3-cn.feishucdn.com/obj/ee-appcenter/7e382fc2/Feishu-linux_x64-7.15.13.deb";
+      sha256 = "sha256-CyQmQKfyYcWqpty5LxTNqm73AVnPdm7biBwICkbBEco=";
+    };
+    aarch64-linux = fetchurl {
+      url = "https://sf3-cn.feishucdn.com/obj/ee-appcenter/4c8c2fbf/Feishu-linux_arm64-7.15.13.deb";
+      sha256 = "sha256-nxtu5xOafZ1tlN/f0+5VF2I6ISfHmPJTztOI+AQwp9c=";
+    };
   };
 
-  nativeBuildInputs = [
-    autoPatchelfHook
-    makeShellWrapper
-    dpkg
-  ];
-
-  buildInputs = [
-    gtk3
-
-    # for autopatchelf
-    alsa-lib
-    cups
-    curl
-    libXdamage
-    libXtst
-    libdrm
-    libgcrypt
-    libpulseaudio
-    libxshmfence
-    mesa
-    nspr
-    nss
-  ];
+  supportedPlatforms = [ "x86_64-linux" "aarch64-linux" ];
 
   rpath = lib.makeLibraryPath [
     alsa-lib
@@ -149,6 +130,36 @@ stdenv.mkDerivation rec {
     wayland
     xdg-utils
   ];
+in
+stdenv.mkDerivation {
+  version = "7.15.13";
+  pname = "feishu";
+
+  src = sources.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    makeShellWrapper
+    dpkg
+  ];
+
+  buildInputs = [
+    gtk3
+
+    # for autopatchelf
+    alsa-lib
+    cups
+    curl
+    libXdamage
+    libXtst
+    libdrm
+    libgcrypt
+    libpulseaudio
+    libxshmfence
+    mesa
+    nspr
+    nss
+  ];
 
   dontUnpack = true;
   installPhase = ''
@@ -165,10 +176,10 @@ stdenv.mkDerivation rec {
     # Wrap feishu and vulcan
     # Feishu is the main executable, vulcan is the builtin browser
     for executable in $out/opt/bytedance/feishu/{feishu,vulcan/vulcan}; do
+      # FIXME: Add back NIXOS_OZONE_WL support once upstream fixes the crash on native Wayland (see #318035)
       wrapProgram $executable \
         --prefix XDG_DATA_DIRS    :  "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \
         --prefix LD_LIBRARY_PATH  :  ${rpath}:$out/opt/bytedance/feishu:${addOpenGLRunpath.driverLink}/share \
-        --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
         ${lib.optionalString (commandLineArgs!="") "--add-flags ${lib.escapeShellArg commandLineArgs}"}
     done
 
@@ -189,12 +200,37 @@ stdenv.mkDerivation rec {
     ln -sf ${curl}/lib/libcurl.so $out/opt/bytedance/feishu/libcurl.so
   '';
 
+  passthru = {
+    inherit sources;
+    updateScript = writeScript "update-feishu.sh" ''
+      #!/usr/bin/env nix-shell
+      #!nix-shell -i bash -p curl jq common-updater-scripts
+
+      for platform in ${lib.escapeShellArgs supportedPlatforms}; do
+        if [ $platform = "x86_64-linux" ]; then
+          platform_id=10
+        elif [ $platform = "aarch64-linux" ]; then
+          platform_id=12
+        else
+          echo "Unsupported platform: $platform"
+          exit 1
+        fi
+        package_info=$(curl -sf "https://www.feishu.cn/api/package_info?platform=$platform_id")
+        update_link=$(echo $package_info | jq -r '.data.download_link' | sed 's/lf[0-9]*-ug-sign.feishucdn.com/sf3-cn.feishucdn.com\/obj/;s/?.*$//')
+        new_version=$(echo $package_info | jq -r '.data.version_number' | sed -n 's/.*@V//p')
+        sha256_hash=$(nix-prefetch-url $update_link)
+        sri_hash=$(nix hash to-sri --type sha256 $sha256_hash)
+        update-source-version feishu $new_version $sri_hash $update_link --system=$platform --ignore-same-version --source-key="sources.$platform"
+      done
+    '';
+  };
+
   meta = with lib; {
-    description = "An all-in-one collaboration suite";
+    description = "All-in-one collaboration suite";
     homepage = "https://www.feishu.cn/en/";
     downloadPage = "https://www.feishu.cn/en/#en_home_download_block";
     license = licenses.unfree;
-    platforms = [ "x86_64-linux" ];
+    platforms = supportedPlatforms;
     maintainers = with maintainers; [ billhuang ];
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/flare-signal/default.nix b/pkgs/applications/networking/instant-messengers/flare-signal/default.nix
index ea6fb5d4e3bd9..b22963c476a79 100644
--- a/pkgs/applications/networking/instant-messengers/flare-signal/default.nix
+++ b/pkgs/applications/networking/instant-messengers/flare-signal/default.nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     changelog = "https://gitlab.com/schmiddi-on-mobile/flare/-/blob/${src.rev}/CHANGELOG.md";
-    description = "An unofficial Signal GTK client";
+    description = "Unofficial Signal GTK client";
     mainProgram = "flare";
     homepage = "https://gitlab.com/schmiddi-on-mobile/flare";
     license = lib.licenses.agpl3Plus;
diff --git a/pkgs/applications/networking/instant-messengers/fluffychat/default.nix b/pkgs/applications/networking/instant-messengers/fluffychat/default.nix
index d2a43e989bb83..66d7abc0822d0 100644
--- a/pkgs/applications/networking/instant-messengers/fluffychat/default.nix
+++ b/pkgs/applications/networking/instant-messengers/fluffychat/default.nix
@@ -4,7 +4,7 @@
 , imagemagick
 , mesa
 , libdrm
-, flutter
+, flutter319
 , pulseaudio
 , makeDesktopItem
 , gnome
@@ -16,7 +16,7 @@ let
   libwebrtcRpath = lib.makeLibraryPath [ mesa libdrm ];
   pubspecLock = lib.importJSON ./pubspec.lock.json;
 in
-flutter.buildFlutterApplication (rec {
+flutter319.buildFlutterApplication (rec {
   pname = "fluffychat-${targetFlutterPlatform}";
   version = "1.20.0";
 
diff --git a/pkgs/applications/networking/instant-messengers/franz/default.nix b/pkgs/applications/networking/instant-messengers/franz/default.nix
index ec9f0d3691953..e986ff75a34af 100644
--- a/pkgs/applications/networking/instant-messengers/franz/default.nix
+++ b/pkgs/applications/networking/instant-messengers/franz/default.nix
@@ -9,7 +9,7 @@ mkFranzDerivation rec {
     sha256 = "sha256-zQhZlxr7kyMWx6txDnV+ECBTzVEwnUaBsLWKJy3XYFg=";
   };
   meta = with lib; {
-    description = "A free messaging app that combines chat & messaging services into one application";
+    description = "Free messaging app that combines chat & messaging services into one application";
     homepage = "https://meetfranz.com";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.free;
diff --git a/pkgs/applications/networking/instant-messengers/gajim/default.nix b/pkgs/applications/networking/instant-messengers/gajim/default.nix
index 765e03425aaf1..7f273359de4e7 100644
--- a/pkgs/applications/networking/instant-messengers/gajim/default.nix
+++ b/pkgs/applications/networking/instant-messengers/gajim/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, fetchFromGitLab, gettext, wrapGAppsHook3
+{ lib, fetchurl, gettext, wrapGAppsHook3
 
 # Native dependencies
 , python3, gtk3, gobject-introspection, gnome
@@ -21,11 +21,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "gajim";
-  version = "1.8.4";
+  version = "1.9.0";
 
   src = fetchurl {
     url = "https://gajim.org/downloads/${lib.versions.majorMinor version}/gajim-${version}.tar.gz";
-    hash = "sha256-WPzth7HOAbPVJpvN8zSZJGUzsBtACNlwHrHhDPlOScU=";
+    hash = "sha256-eiRLQZr60BvjqqnoYEY+LswgW6e+S9mTLvBKVCXrCzI=";
   };
 
   format = "pyproject";
@@ -52,7 +52,7 @@ python3.pkgs.buildPythonApplication rec {
 
   propagatedBuildInputs = with python3.pkgs; [
     nbxmpp pygobject3 dbus-python pillow css-parser precis-i18n keyring setuptools packaging gssapi
-    omemo-dr qrcode
+    omemo-dr qrcode sqlalchemy emoji
   ] ++ lib.optionals enableE2E [ pycrypto python-gnupg ]
     ++ lib.optional enableRST docutils
     ++ extraPythonPackages python3.pkgs;
diff --git a/pkgs/applications/networking/instant-messengers/gomuks/default.nix b/pkgs/applications/networking/instant-messengers/gomuks/default.nix
index e25a94d0bef84..26b0e9c0225db 100644
--- a/pkgs/applications/networking/instant-messengers/gomuks/default.nix
+++ b/pkgs/applications/networking/instant-messengers/gomuks/default.nix
@@ -53,6 +53,6 @@ buildGoModule rec {
     description = "A terminal based Matrix client written in Go";
     mainProgram = "gomuks";
     license = licenses.agpl3Plus;
-    maintainers = with maintainers; [ chvp emily ];
+    maintainers = with maintainers; [ chvp ];
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/hamsket/default.nix b/pkgs/applications/networking/instant-messengers/hamsket/default.nix
index e535456ccf5ed..7501bfda3ec5f 100644
--- a/pkgs/applications/networking/instant-messengers/hamsket/default.nix
+++ b/pkgs/applications/networking/instant-messengers/hamsket/default.nix
@@ -36,7 +36,7 @@ appimageTools.wrapType2 {
   '';
 
   meta = {
-    description = "A free and open source messaging and emailing app that combines common web applications into one";
+    description = "Free and open source messaging and emailing app that combines common web applications into one";
     homepage = "https://github.com/TheGoddessInari/hamsket";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ nova-madeline ];
diff --git a/pkgs/applications/networking/instant-messengers/iamb/default.nix b/pkgs/applications/networking/instant-messengers/iamb/default.nix
index 03d8b1cc13db1..af2e875411756 100644
--- a/pkgs/applications/networking/instant-messengers/iamb/default.nix
+++ b/pkgs/applications/networking/instant-messengers/iamb/default.nix
@@ -30,7 +30,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A Matrix client for Vim addicts";
+    description = "Matrix client for Vim addicts";
     mainProgram = "iamb";
     homepage = "https://github.com/ulyssa/iamb";
     changelog = "https://github.com/ulyssa/iamb/releases/tag/${src.rev}";
diff --git a/pkgs/applications/networking/instant-messengers/jami/default.nix b/pkgs/applications/networking/instant-messengers/jami/default.nix
index 6a6925d66627e..c16f8d4c2aa59 100644
--- a/pkgs/applications/networking/instant-messengers/jami/default.nix
+++ b/pkgs/applications/networking/instant-messengers/jami/default.nix
@@ -64,14 +64,14 @@
 
 stdenv.mkDerivation rec {
   pname = "jami";
-  version = "20240430.0";
+  version = "20240529.0";
 
   src = fetchFromGitLab {
     domain = "git.jami.net";
     owner = "savoirfairelinux";
     repo = "jami-client-qt";
     rev = "stable/${version}";
-    hash = "sha256-v7558m2h3RqvLLhf3BdYO9LKCFKuMTtPIXgH6OXiiY4=";
+    hash = "sha256-v2GFvgHHJ2EMoayZ+//OZ0U+P1fh5Mgp5fAoqtZts7U=";
     fetchSubmodules = true;
   };
 
@@ -128,14 +128,14 @@ stdenv.mkDerivation rec {
 
   dhtnet = stdenv.mkDerivation {
     pname = "dhtnet";
-    version = "unstable-2022-04-26";
+    version = "unstable-2024-05-17";
 
     src = fetchFromGitLab {
       domain = "git.jami.net";
       owner = "savoirfairelinux";
       repo = "dhtnet";
-      rev = "d7976982d24867c6faaf8103504ec8a10d932fa0";
-      hash = "sha256-vazFDMIu/3AWeOz0LZhZD9NFO8cd5AK41zBpqpQrqnc=";
+      rev = "77331098ff663a5ac54fae7d0bedafe076c575a1";
+      hash = "sha256-55LEnI1YgVujCtv1dGOFtJdvnzB2SKqwEptaHasZB7I=";
     };
 
     nativeBuildInputs = [
@@ -288,7 +288,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://jami.net/";
-    description = "The free and universal communication platform that respects the privacy and freedoms of its users";
+    description = "Free and universal communication platform that respects the privacy and freedoms of its users";
     mainProgram = "jami";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix b/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
index a0968f83ddeec..78c6912b12ba7 100644
--- a/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
+++ b/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildNpmPackage
 , fetchFromGitHub
 , copyDesktopItems
@@ -9,9 +10,15 @@
 , libXi
 , libXtst
 , zlib
+, darwin
 , electron
 }:
 
+let
+  inherit (darwin.apple_sdk.frameworks) Carbon CoreFoundation ApplicationServices OpenGL;
+
+  electronDist = electron + (if stdenv.isDarwin then "/Applications" else "/libexec/electron");
+in
 buildNpmPackage rec {
   pname = "jitsi-meet-electron";
   version = "2024.3.0";
@@ -24,17 +31,23 @@ buildNpmPackage rec {
   };
 
   nativeBuildInputs = [
-    copyDesktopItems
     makeWrapper
+  ] ++ lib.optionals stdenv.isLinux [
+    copyDesktopItems
   ];
 
   # robotjs node-gyp dependencies
-  buildInputs = [
+  buildInputs = lib.optionals stdenv.isLinux [
     libpng
     libX11
     libXi
     libXtst
     zlib
+  ] ++ lib.optionals stdenv.isDarwin [
+    Carbon
+    CoreFoundation
+    ApplicationServices
+    OpenGL
   ];
 
   npmDepsHash = "sha256-KanG8y+tYzswCCXjSkOlk+p9XKaouP2Z7IhsD5bDtRk=";
@@ -43,34 +56,54 @@ buildNpmPackage rec {
 
   env.ELECTRON_SKIP_BINARY_DOWNLOAD = 1;
 
+  # disable code signing on Darwin
+  env.CSC_IDENTITY_AUTO_DISCOVERY = "false";
+
   preBuild = ''
     # remove some prebuilt binaries
     find node_modules -type d -name prebuilds -exec rm -r {} +
+
+    # don't force both darwin architectures together
+    substituteInPlace node_modules/@jitsi/robotjs/binding.gyp \
+        --replace-fail "-arch x86_64" "" \
+        --replace-fail "-arch arm64" ""
   '';
 
   postBuild = ''
-    # generate .asar file
+    cp -r ${electronDist} electron-dist
+    chmod -R u+w electron-dist
+
+    # npmRebuild is needed because robotjs won't be built on darwin otherwise
     # asarUnpack makes sure to unwrap binaries so that nix can see the RPATH
     npm exec electron-builder -- \
         --dir \
+        -c.npmRebuild=true \
         -c.asarUnpack="**/*.node" \
-        -c.electronDist=${electron}/libexec/electron \
+        -c.electronDist=electron-dist \
         -c.electronVersion=${electron.version}
   '';
 
   installPhase = ''
     runHook preInstall
 
-    mkdir -p $out/share/jitsi-meet-electron
-    cp -r dist/*-unpacked/{locales,resources{,.pak}} $out/share/jitsi-meet-electron
+    ${lib.optionalString stdenv.isLinux ''
+      mkdir -p $out/share/jitsi-meet-electron
+      cp -r dist/*-unpacked/{locales,resources{,.pak}} $out/share/jitsi-meet-electron
+
+      makeWrapper ${lib.getExe electron} $out/bin/jitsi-meet-electron \
+          --add-flags $out/share/jitsi-meet-electron/resources/app.asar \
+          --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
+          --set-default ELECTRON_IS_DEV 0 \
+          --inherit-argv0
 
-    makeWrapper ${lib.getExe electron} $out/bin/jitsi-meet-electron \
-        --add-flags $out/share/jitsi-meet-electron/resources/app.asar \
-        --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
-        --set-default ELECTRON_IS_DEV 0 \
-        --inherit-argv0
+      install -Dm644 resources/icons/512x512.png $out/share/icons/hicolor/512x512/apps/jitsi-meet-electron.png
+    ''}
 
-    install -Dm644 resources/icons/512x512.png $out/share/icons/hicolor/512x512/apps/jitsi-meet-electron.png
+    ${lib.optionalString stdenv.isDarwin ''
+      mkdir -p $out/Applications
+      cp -r dist/mac*/"Jitsi Meet.app" $out/Applications
+      makeWrapper "$out/Applications/Jitsi Meet.app/Contents/MacOS/Jitsi Meet" $out/bin/jitsi-meet-electron
+    ''}
 
     runHook postInstall
   '';
diff --git a/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix b/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix
index 54c485525d7ea..6d39ab785cfa8 100644
--- a/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix
+++ b/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix
@@ -17,13 +17,13 @@
 
 buildPythonApplication rec {
   pname = "matrix-commander";
-  version = "7.2.0";
+  version = "7.6.2";
 
   src = fetchFromGitHub {
     owner = "8go";
     repo = "matrix-commander";
     rev = "v${version}";
-    hash = "sha256-qL6ARkAWu0FEuYK2e9Z9hMSfK4TW0kGgoIFUfJ8Dgwk=";
+    hash = "sha256-BiQShJHCTvEdkhp21uxxCTxBZ1eezuWE6btMc/wkPlc=";
   };
 
   format = "pyproject";
diff --git a/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix b/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
index 20dc2bfafb800..8a1052d04df4f 100644
--- a/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
@@ -1,7 +1,7 @@
 { lib
 , stdenv
 , fetchurl
-, electron_28
+, electron
 , makeWrapper
 }:
 
@@ -52,7 +52,7 @@ stdenv.mkDerivation {
     substituteInPlace $out/share/applications/Mattermost.desktop \
       --replace /share/mattermost-desktop/mattermost-desktop /bin/mattermost-desktop
 
-    makeWrapper '${lib.getExe electron_28}' $out/bin/${pname} \
+    makeWrapper '${lib.getExe electron}' $out/bin/${pname} \
       --set-default ELECTRON_IS_DEV 0 \
       --add-flags $out/share/${pname}/app.asar \
       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
diff --git a/pkgs/applications/networking/instant-messengers/mm/default.nix b/pkgs/applications/networking/instant-messengers/mm/default.nix
index a4f17b6709d11..fd5fd66c66cc2 100644
--- a/pkgs/applications/networking/instant-messengers/mm/default.nix
+++ b/pkgs/applications/networking/instant-messengers/mm/default.nix
@@ -13,7 +13,7 @@ buildGoModule {
   vendorHash = "sha256-zJJ9PzQShv2iRNyCg1XVscbwjV9ZtMIojJDtXXm3rVM=";
 
   meta = with lib; {
-    description = "A file system based matrix client";
+    description = "File system based matrix client";
     mainProgram = "mm";
     homepage = "https://git.lost.host/meutraa/mm";
     license = licenses.isc;
diff --git a/pkgs/applications/networking/instant-messengers/nheko/default.nix b/pkgs/applications/networking/instant-messengers/nheko/default.nix
index 45c7e556a71d3..041a3949d92dc 100644
--- a/pkgs/applications/networking/instant-messengers/nheko/default.nix
+++ b/pkgs/applications/networking/instant-messengers/nheko/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , asciidoc
 , pkg-config
@@ -9,6 +8,7 @@
 , cmark
 , coeurl
 , curl
+, kdsingleapplication
 , libevent
 , libsecret
 , lmdb
@@ -17,48 +17,29 @@
 , nlohmann_json
 , olm
 , qtbase
-, qtgraphicaleffects
 , qtimageformats
 , qtkeychain
-, qtmacextras
 , qtmultimedia
-, qtquickcontrols2
 , qttools
+, qtwayland
 , re2
 , spdlog
 , wrapQtAppsHook
-, voipSupport ? true
 , gst_all_1
 , libnice
 }:
 
 stdenv.mkDerivation rec {
   pname = "nheko";
-  version = "0.11.3";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "Nheko-Reborn";
     repo = "nheko";
     rev = "v${version}";
-    hash = "sha256-2daXxTbpSUlig47y901JOkWRxbZGH4qrvNMepJbvS3o=";
+    hash = "sha256-hQb+K8ogNj/s6ZO2kgS/sZZ35y4CwMeS3lVeMYNucYQ=";
   };
 
-  patches = [
-    # The 2 following patches can be removed with the next version bump.
-    # Backport of https://github.com/Nheko-Reborn/nheko/commit/e89e65dc17020772eb057414b4f0c5d6f4ad98d0.
-    (fetchpatch {
-      name = "nheko-fmt10.patch";
-      url = "https://gitlab.archlinux.org/archlinux/packaging/packages/nheko/-/raw/1b0d5c9eff6409dfd82953f346546d36c288a4a9/nheko-0.11.3-fix-for-fmt-10.patch";
-      hash = "sha256-UYqAu2iXT3Bn/MxCtybiJrJLfVMOOVRchWqrGuPfapI=";
-    })
-    # https://github.com/Nheko-Reborn/nheko/pull/1552
-    (fetchpatch {
-      name = "nheko-fmt10.1.patch";
-      url = "https://github.com/Nheko-Reborn/nheko/commit/614facf93c2b5d6118beb822cc542ac53a883c37.patch";
-      hash = "sha256-rjsQNDfj3Lzbv8ow3qiNozGXQFrtYLhArS6a9JCdgBQ=";
-    })
-  ];
-
   nativeBuildInputs = [
     asciidoc
     cmake
@@ -72,6 +53,7 @@ stdenv.mkDerivation rec {
     cmark
     coeurl
     curl
+    kdsingleapplication
     libevent
     libsecret
     lmdb
@@ -79,19 +61,18 @@ stdenv.mkDerivation rec {
     nlohmann_json
     olm
     qtbase
-    qtgraphicaleffects
     qtimageformats
     qtkeychain
     qtmultimedia
-    qtquickcontrols2
     qttools
+    qtwayland
     re2
     spdlog
-  ] ++ lib.optional stdenv.isDarwin qtmacextras
-  ++ lib.optionals voipSupport (with gst_all_1; [
+  ]
+  ++ (with gst_all_1; [
     gstreamer
     gst-plugins-base
-    (gst-plugins-good.override { qt5Support = true; })
+    (gst-plugins-good.override { qt6Support = true; })
     gst-plugins-bad
     libnice
   ]);
@@ -100,7 +81,7 @@ stdenv.mkDerivation rec {
     "-DCOMPILE_QML=ON" # see https://github.com/Nheko-Reborn/nheko/issues/389
   ];
 
-  preFixup = lib.optionalString voipSupport ''
+  preFixup = ''
     # add gstreamer plugins path to the wrapper
     qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
   '';
diff --git a/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix b/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix
index 5b5669a3a6a20..f12a51d751913 100644
--- a/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix
@@ -74,7 +74,7 @@ python3Packages.buildPythonApplication rec {
   };
 
   meta = with lib; {
-    description = "An end-to-end encryption aware Matrix reverse proxy daemon";
+    description = "End-to-end encryption aware Matrix reverse proxy daemon";
     homepage = "https://github.com/matrix-org/pantalaimon";
     license = licenses.asl20;
     maintainers = with maintainers; [ valodim ];
diff --git a/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/pidgin-indicator/default.nix b/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/pidgin-indicator/default.nix
index 70cb3a9028df2..ddc52274174d0 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/pidgin-indicator/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/pidgin-indicator/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ glib libappindicator-gtk2 libtool pidgin ];
 
   meta = with lib; {
-    description = "An AppIndicator and KStatusNotifierItem Plugin for Pidgin";
+    description = "AppIndicator and KStatusNotifierItem Plugin for Pidgin";
     homepage = "https://github.com/philipl/pidgin-indicator";
     maintainers = with maintainers; [ imalison ];
     license = licenses.gpl2;
diff --git a/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-mm-sms/default.nix b/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-mm-sms/default.nix
index 121ef0231a74e..4989c36d83445 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-mm-sms/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin/pidgin-plugins/purple-mm-sms/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://source.puri.sm/Librem5/purple-mm-sms";
-    description = "A libpurple plugin for sending and receiving SMS via Modemmanager";
+    description = "Libpurple plugin for sending and receiving SMS via Modemmanager";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/applications/networking/instant-messengers/poezio/default.nix b/pkgs/applications/networking/instant-messengers/poezio/default.nix
index a0163322064e4..d36f1829b7ed3 100644
--- a/pkgs/applications/networking/instant-messengers/poezio/default.nix
+++ b/pkgs/applications/networking/instant-messengers/poezio/default.nix
@@ -1,27 +1,26 @@
 { lib
-, fetchFromGitLab
+, fetchFromGitea
 , pkg-config
 , python3
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "poezio";
-  version = "0.13.1";
-  format = "setuptools";
-
-  src = fetchFromGitLab {
-    domain = "lab.louiz.org";
-    owner = pname;
-    repo = pname;
-    rev = "refs/tags/v${version}";
-    sha256 = "sha256-3pUegEfhQxEv/7Htw6b2BN1lXtDockyANmi1xW4wPhA=";
+  version = "0.14";
+  pyproject = true;
+
+  src = fetchFromGitea {
+    domain = "codeberg.org";
+    owner = "poezio";
+    repo = "poezio";
+    rev = "v${version}";
+    hash = "sha256-sk+8r+a0CcoB0RidqnE7hJUgt/xvN/MCJMkxiquvdJc=";
   };
 
-  nativeBuildInputs = [
-    pkg-config
-  ];
+  nativeBuildInputs = [ pkg-config ];
+  build-system = [ python3.pkgs.setuptools ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  dependencies = with python3.pkgs; [
     aiodns
     cffi
     mpd2
@@ -30,6 +29,7 @@ python3.pkgs.buildPythonApplication rec {
     pyasn1-modules
     pycares
     pyinotify
+    setuptools
     slixmpp
     typing-extensions
   ];
@@ -42,10 +42,15 @@ python3.pkgs.buildPythonApplication rec {
     "poezio"
   ];
 
+  # remove poezio directory to prevent pytest import confusion
+  preCheck = ''
+    rm -r poezio
+  '';
+
   meta = with lib; {
     description = "Free console XMPP client";
     homepage = "https://poez.io";
-    changelog = "https://lab.louiz.org/poezio/poezio/-/blob/v${version}/CHANGELOG";
+    changelog = "https://codeberg.org/poezio/poezio/src/tag/v${version}/CHANGELOG";
     license = licenses.zlib;
     maintainers = with maintainers; [ lsix ];
   };
diff --git a/pkgs/applications/networking/instant-messengers/profanity/default.nix b/pkgs/applications/networking/instant-messengers/profanity/default.nix
index e38d45a001763..4687fd5f4ac3e 100644
--- a/pkgs/applications/networking/instant-messengers/profanity/default.nix
+++ b/pkgs/applications/networking/instant-messengers/profanity/default.nix
@@ -91,7 +91,7 @@ stdenv.mkDerivation rec {
 
   meta =  with lib; {
     homepage = "http://www.profanity.im/";
-    description = "A console based XMPP client";
+    description = "Console based XMPP client";
     mainProgram = "profanity";
     longDescription = ''
       Profanity is a console based XMPP client written in C using ncurses and
diff --git a/pkgs/applications/networking/instant-messengers/psi/default.nix b/pkgs/applications/networking/instant-messengers/psi/default.nix
index 7745fc9fc9097..d1f0ce3b22859 100644
--- a/pkgs/applications/networking/instant-messengers/psi/default.nix
+++ b/pkgs/applications/networking/instant-messengers/psi/default.nix
@@ -24,7 +24,7 @@ mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://psi-im.org";
-    description = "An XMPP (Jabber) client";
+    description = "XMPP (Jabber) client";
     mainProgram = "psi";
     maintainers = [ maintainers.raskin ];
     license = licenses.gpl2;
diff --git a/pkgs/applications/networking/instant-messengers/qq/default.nix b/pkgs/applications/networking/instant-messengers/qq/default.nix
index af5bdcc15f487..cbb23559ae61f 100644
--- a/pkgs/applications/networking/instant-messengers/qq/default.nix
+++ b/pkgs/applications/networking/instant-messengers/qq/default.nix
@@ -3,6 +3,7 @@
 , dpkg
 , fetchurl
 , glib
+, libssh2
 , gtk3
 , lib
 , libayatana-appindicator
@@ -11,6 +12,7 @@
 , libkrb5
 , libnotify
 , mesa # for libgbm
+, libpulseaudio
 , libGL
 , nss
 , xorg
@@ -57,6 +59,7 @@ stdenv.mkDerivation {
     glib
     gtk3
     libdrm
+    libpulseaudio
     libgcrypt
     libkrb5
     mesa
@@ -82,6 +85,7 @@ stdenv.mkDerivation {
       --replace "/usr/share" "$out/share"
     makeShellWrapper $out/opt/QQ/qq $out/bin/qq \
       --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
+      --prefix LD_PRELOAD : "${lib.makeLibraryPath [ libssh2 ]}/libssh2.so.1" \
       --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libGL ]}" \
       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
       --add-flags ${lib.escapeShellArg commandLineArgs} \
diff --git a/pkgs/applications/networking/instant-messengers/qq/sources.nix b/pkgs/applications/networking/instant-messengers/qq/sources.nix
index b8f1b2effdf34..4fa23026a9571 100644
--- a/pkgs/applications/networking/instant-messengers/qq/sources.nix
+++ b/pkgs/applications/networking/instant-messengers/qq/sources.nix
@@ -1,9 +1,9 @@
 # Generated by ./update.sh - do not update manually!
-# Last updated: 2024-05-21
+# Last updated: 2024-06-07
 {
-  version = "3.2.8";
-  amd64_url = "https://dldir1.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.8_240520_amd64_01.deb";
-  arm64_url = "https://dldir1.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.8_240520_arm64_01.deb";
-  arm64_hash = "sha256-qSv7GqnXvp8IFh3krcJlKheRn4sF4cr4+ZItd2y8JUg=";
-  amd64_hash = "sha256-0j4hLSbPgKQOPqtESZqnZYbq3j/CYNG58XEpT7UHOT8=";
+  version = "3.2.9";
+  amd64_url = "https://dldir1.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.9_240606_amd64_01.deb";
+  arm64_url = "https://dldir1.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.9_240606_arm64_01.deb";
+  arm64_hash = "sha256-wZyaIkJdGDvIw8PrRlOiKpo3rdeELlxYBPyS6llbL4w=";
+  amd64_hash = "sha256-DcQWwep4p4aWUAoBNQ9Ge1QBiCxk6BhcziTDSHmRpgY=";
 }
diff --git a/pkgs/applications/networking/instant-messengers/rambox/default.nix b/pkgs/applications/networking/instant-messengers/rambox/default.nix
index f66da460afdb4..3ecda10bb973e 100644
--- a/pkgs/applications/networking/instant-messengers/rambox/default.nix
+++ b/pkgs/applications/networking/instant-messengers/rambox/default.nix
@@ -2,11 +2,11 @@
 
 let
   pname = "rambox";
-  version = "2.3.2";
+  version = "2.3.3";
 
   src = fetchurl {
     url = "https://github.com/ramboxapp/download/releases/download/v${version}/Rambox-${version}-linux-x64.AppImage";
-    hash = "sha256-9AGzhj4UL2rEe67qvkX5VYhQEMETGYSDWv5XOgABSEE=";
+    hash = "sha256-Z6ux/liDpE0Fb4h0eAZC7F/Tt3eKlXQPBQVCd7Je9TI=";
   };
 
   desktopItem = (makeDesktopItem {
diff --git a/pkgs/applications/networking/instant-messengers/revolt-desktop/default.nix b/pkgs/applications/networking/instant-messengers/revolt-desktop/default.nix
index 857614962d3e7..d995f81406cbc 100644
--- a/pkgs/applications/networking/instant-messengers/revolt-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/revolt-desktop/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An open source user-first chat platform";
+    description = "Open source user-first chat platform";
     homepage = "https://revolt.chat/";
     changelog = "https://github.com/revoltchat/desktop/releases/tag/v${version}";
     license = licenses.agpl3Only;
diff --git a/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix b/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
index 4d7c987a213be..93fb435f3909a 100644
--- a/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
@@ -4,11 +4,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "rocketchat-desktop";
-  version = "3.9.14";
+  version = "3.9.15";
 
   src = fetchurl {
     url = "https://github.com/RocketChat/Rocket.Chat.Electron/releases/download/${version}/rocketchat-${version}-linux-amd64.deb";
-    hash = "sha256-1ZNxdzkkhsDPbwyTTTKmF7p10VgGRvRw31W91m1H4YM=";
+    hash = "sha256-fMnr7RCNoYVyV+CzKOIqaGd6T6+3fJxMuPjNdFAZdX0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/seren/default.nix b/pkgs/applications/networking/instant-messengers/seren/default.nix
index 590a0639dc845..80484114f32fc 100644
--- a/pkgs/applications/networking/instant-messengers/seren/default.nix
+++ b/pkgs/applications/networking/instant-messengers/seren/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A simple ncurses VoIP program based on the Opus codec";
+    description = "Simple ncurses VoIP program based on the Opus codec";
     mainProgram = "seren";
     longDescription = ''
       Seren is a simple VoIP program based on the Opus codec
diff --git a/pkgs/applications/networking/instant-messengers/session-desktop/default.nix b/pkgs/applications/networking/instant-messengers/session-desktop/default.nix
index 4e8ed9bd0c6c1..a272967119061 100644
--- a/pkgs/applications/networking/instant-messengers/session-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/session-desktop/default.nix
@@ -33,7 +33,7 @@ stdenvNoCC.mkDerivation {
       name = "Session";
       desktopName = "Session";
       comment = "Onion routing based messenger";
-      exec = "${appimage}/bin/session-desktop-${version}";
+      exec = "session-desktop";
       icon = "${appimage-contents}/session-desktop.png";
       terminal = false;
       type = "Application";
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/generic.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/generic.nix
index 2c73686e76837..558ace43ec161 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/generic.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/generic.nix
@@ -181,7 +181,7 @@ stdenv.mkDerivation rec {
     homepage = "https://signal.org/";
     changelog = "https://github.com/signalapp/Signal-Desktop/releases/tag/v${version}";
     license = lib.licenses.agpl3Only;
-    maintainers = with lib.maintainers; [ eclairevoyant mic92 equirosa urandom bkchr ];
+    maintainers = with lib.maintainers; [ eclairevoyant mic92 equirosa urandom bkchr teutat3s ];
     mainProgram = pname;
     platforms = [ "x86_64-linux" "aarch64-linux" ];
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-beta.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-beta.nix
index 5cee70d96776a..f982124cb8436 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-beta.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-beta.nix
@@ -2,7 +2,7 @@
 callPackage ./generic.nix { } rec {
   pname = "signal-desktop-beta";
   dir = "Signal Beta";
-  version = "7.10.0-beta.1";
+  version = "7.13.0-beta.1";
   url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop-beta/signal-desktop-beta_${version}_amd64.deb";
-  hash = "sha256-8S7O5v514OjUgXRuYvqOf83377RefZrFrQD2MbLm0QA=";
+  hash = "sha256-DvYRvIA+rg4RKXbqWjWj7oFnfLboEiMeP7HgGYkRBDM=";
 }
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop.nix
index 48fe8491bdd9a..09485b3d7f1d8 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop.nix
@@ -2,7 +2,7 @@
 callPackage ./generic.nix { } rec {
   pname = "signal-desktop";
   dir = "Signal";
-  version = "7.9.0";
+  version = "7.12.0";
   url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop/signal-desktop_${version}_amd64.deb";
-  hash = "sha256-Iv2WG1kvB3tEiFu4Oy0po0KlpWCwfalDNOXstO/C+e0=";
+  hash = "sha256-k8Dp3MiWRNpWEGqYtt5o8FtL3fJ9AkIm+hjvW8r6qG0=";
 }
diff --git a/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix b/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
index f48cea71cb6a3..00f7fdcaaa47f 100644
--- a/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "signalbackup-tools";
-  version = "20240514";
+  version = "20240610";
 
   src = fetchFromGitHub {
     owner = "bepaald";
     repo = pname;
     rev = version;
-    hash = "sha256-3coP4Bia/a2xbeHQBUq2rXPEPzWEX9hJX1kb1wh60FA=";
+    hash = "sha256-txtOCw7fakQavzpTJrVbelZdEw2mYNe9lb8p1zH6dyw=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/instant-messengers/signaldctl/default.nix b/pkgs/applications/networking/instant-messengers/signaldctl/default.nix
index d1c152013b57d..128ecd0f5b56f 100644
--- a/pkgs/applications/networking/instant-messengers/signaldctl/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signaldctl/default.nix
@@ -32,7 +32,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A golang library for communicating with signald";
+    description = "Golang library for communicating with signald";
     mainProgram = "signaldctl";
     homepage = "https://signald.org/signaldctl/";
     license = licenses.gpl3;
diff --git a/pkgs/applications/networking/instant-messengers/slack/default.nix b/pkgs/applications/networking/instant-messengers/slack/default.nix
index 25669b9758157..e27bbcdb1bca6 100644
--- a/pkgs/applications/networking/instant-messengers/slack/default.nix
+++ b/pkgs/applications/networking/instant-messengers/slack/default.nix
@@ -84,7 +84,7 @@ let
     changelog = "https://slack.com/release-notes";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
-    maintainers = with maintainers; [ mmahut ];
+    maintainers = with maintainers; [ mmahut teutat3s ];
     platforms = [ "x86_64-darwin" "x86_64-linux" "aarch64-darwin" ];
     mainProgram = "slack";
   };
diff --git a/pkgs/applications/networking/instant-messengers/tangram/default.nix b/pkgs/applications/networking/instant-messengers/tangram/default.nix
index c68af388f323c..c119733197ef2 100644
--- a/pkgs/applications/networking/instant-messengers/tangram/default.nix
+++ b/pkgs/applications/networking/instant-messengers/tangram/default.nix
@@ -25,13 +25,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tangram";
-  version = "3.0";
+  version = "3.1";
 
   src = fetchFromGitHub {
     owner = "sonnyp";
     repo = "Tangram";
     rev = "v${version}";
-    hash = "sha256-6QOkvsYFgFFyxnDlA5Xpl3FnsSZOj9ooehCPOmpKe8M=";
+    hash = "sha256-vN9zRc8Ac9SI0lIcuf01A2WLqLGtV3DUiNzCSmc2ri4=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/networking/instant-messengers/teamspeak/client.nix b/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
index 45197d2d70866..53f4338ac4d8c 100644
--- a/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
+++ b/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
@@ -106,7 +106,7 @@ stdenv.mkDerivation rec {
   dontPatchELF = true;
 
   meta = with lib; {
-    description = "The TeamSpeak voice communication tool";
+    description = "TeamSpeak voice communication tool";
     homepage = "https://teamspeak.com/";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = {
diff --git a/pkgs/applications/networking/instant-messengers/teamspeak/client5.nix b/pkgs/applications/networking/instant-messengers/teamspeak/client5.nix
index 0f2e33e7446c2..86136dbb36d6a 100644
--- a/pkgs/applications/networking/instant-messengers/teamspeak/client5.nix
+++ b/pkgs/applications/networking/instant-messengers/teamspeak/client5.nix
@@ -96,7 +96,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The TeamSpeak voice communication tool (beta version)";
+    description = "TeamSpeak voice communication tool (beta version)";
     homepage = "https://teamspeak.com/";
     license = {
       fullName = "Teamspeak client license";
diff --git a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix
index 0d46fea513518..6fdabc3159008 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix
@@ -15,6 +15,7 @@
 , qtsvg
 , qtimageformats
 , gtk3
+, glib-networking
 , boost
 , fmt
 , libdbusmenu
@@ -63,14 +64,14 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "telegram-desktop";
-  version = "5.0.1";
+  version = "5.1.7";
 
   src = fetchFromGitHub {
     owner = "telegramdesktop";
     repo = "tdesktop";
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-GKKlcNcFPXslyjE7u5t+VLOiEXY8RYjYvBNL+WjpeeY=";
+    hash = "sha256-OH9+cH5CQyrp4DSKXEMs6csGiH+GAtxJT4P9YidmAcM=";
   };
 
   patches = [
@@ -137,6 +138,7 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals stdenv.isLinux [
     qtwayland
     gtk3
+    glib-networking
     fmt
     libdbusmenu
     alsa-lib
diff --git a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/tg_owt.nix b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/tg_owt.nix
index 8bc0f6f93b442..1889c1825d8c3 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/tg_owt.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/tg_owt.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation {
   pname = "tg_owt";
-  version = "0-unstable-2023-12-21";
+  version = "0-unstable-2024-06-15";
 
   src = fetchFromGitHub {
     owner = "desktop-app";
     repo = "tg_owt";
-    rev = "afd9d5d31798d3eacf9ed6c30601e91d0f1e4d60";
-    sha256 = "sha256-/1cghoxmm+6uFEUgCjh1Xhb0CTnd1XAq1M21FruDRek=";
+    rev = "c9cc4390ab951f2cbc103ff783a11f398b27660b";
+    sha256 = "sha256-FfWmSYaeryTDbsGJT3R7YK1oiyJcrR7YKKBOF+9PmpY=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix b/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix
index 36b38c5854382..79034b2dd9dce 100644
--- a/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config libxslt python3 ];
 
   meta = {
-    description = "A Telepathy connection manager based on libpurple";
+    description = "Telepathy connection manager based on libpurple";
     homepage = "https://telepathy.freedesktop.org/components/telepathy-haze/";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.unix;
diff --git a/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix b/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix
index 2039544346071..03465b1314faa 100644
--- a/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An account manager and channel dispatcher for the Telepathy framework";
+    description = "Account manager and channel dispatcher for the Telepathy framework";
     homepage = "https://telepathy.freedesktop.org/components/telepathy-mission-control/";
     license = licenses.lgpl21Only;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/applications/networking/instant-messengers/turses/default.nix b/pkgs/applications/networking/instant-messengers/turses/default.nix
index 19e50f3fe8bfa..dfcb9facfd8ed 100644
--- a/pkgs/applications/networking/instant-messengers/turses/default.nix
+++ b/pkgs/applications/networking/instant-messengers/turses/default.nix
@@ -86,7 +86,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A Twitter client for the console";
+    description = "Twitter client for the console";
     mainProgram = "turses";
     homepage = "https://github.com/louipc/turses";
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/networking/instant-messengers/twinkle/default.nix b/pkgs/applications/networking/instant-messengers/twinkle/default.nix
index dcf33a91f951e..af00b360bf9b1 100644
--- a/pkgs/applications/networking/instant-messengers/twinkle/default.nix
+++ b/pkgs/applications/networking/instant-messengers/twinkle/default.nix
@@ -62,7 +62,7 @@ mkDerivation rec {
 
   meta = with lib; {
     changelog = "https://github.com/LubosD/twinkle/blob/${version}/NEWS";
-    description = "A SIP-based VoIP client";
+    description = "SIP-based VoIP client";
     homepage = "http://twinkle.dolezel.info/";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.mkg20001 ];
diff --git a/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix b/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix
index ab7168a0ed234..f4eef4684bebe 100644
--- a/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix
+++ b/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "twitch-tui";
-  version = "2.6.9";
+  version = "2.6.11";
 
   src = fetchFromGitHub {
     owner = "Xithrius";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-c5wDneX7p3kOhARaDISHFdPpo4Bs1KbRdShp2cjI6wQ=";
+    hash = "sha256-3Ibf9UULQ0NQ6+oVvLVxUsSSaQ4ilxLehBPZhkrzILQ=";
   };
 
-  cargoHash = "sha256-4kz8s5cQDSPZEyHB7+A5q+PrvSr/jAyjfLw+uhThFxQ=";
+  cargoHash = "sha256-GK9P+IytkfhfogvPLuYF9+ngs2vr6Quv+v+Rai2cgx8=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/applications/networking/instant-messengers/vacuum/default.nix b/pkgs/applications/networking/instant-messengers/vacuum/default.nix
index f735907e46b82..fffda2fedfa84 100644
--- a/pkgs/applications/networking/instant-messengers/vacuum/default.nix
+++ b/pkgs/applications/networking/instant-messengers/vacuum/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation {
   ];
 
   meta = with lib; {
-    description = "An XMPP client fully composed of plugins";
+    description = "XMPP client fully composed of plugins";
     maintainers = [ maintainers.raskin ];
     platforms = platforms.linux;
     license = licenses.gpl3;
diff --git a/pkgs/applications/networking/instant-messengers/viber/default.nix b/pkgs/applications/networking/instant-messengers/viber/default.nix
index 884bd0942db1a..781508179cbfe 100644
--- a/pkgs/applications/networking/instant-messengers/viber/default.nix
+++ b/pkgs/applications/networking/instant-messengers/viber/default.nix
@@ -101,7 +101,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "https://www.viber.com";
-    description = "An instant messaging and Voice over IP (VoIP) app";
+    description = "Instant messaging and Voice over IP (VoIP) app";
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/instant-messengers/vk-cli/default.nix b/pkgs/applications/networking/instant-messengers/vk-cli/default.nix
index 9d089a383556a..b3425dcfb6f64 100644
--- a/pkgs/applications/networking/instant-messengers/vk-cli/default.nix
+++ b/pkgs/applications/networking/instant-messengers/vk-cli/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A console (ncurses) client for vk.com written in D";
+    description = "Console (ncurses) client for vk.com written in D";
     mainProgram = "vk-cli";
     homepage = "https://github.com/vk-cli/vk";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/applications/networking/instant-messengers/webex/default.nix b/pkgs/applications/networking/instant-messengers/webex/default.nix
index 6793c187e54ae..979a6abd7f3c7 100644
--- a/pkgs/applications/networking/instant-messengers/webex/default.nix
+++ b/pkgs/applications/networking/instant-messengers/webex/default.nix
@@ -56,11 +56,11 @@
 
 stdenv.mkDerivation rec {
   pname = "webex";
-  version = "43.11.0.28947";
+  version = "44.5.0.29672";
 
   src = fetchurl {
-    url = "https://binaries.webex.com/WebexDesktop-Ubuntu-Gold/20240311173044/Webex_ubuntu.7z";
-    sha256 = "f84669a2cd974435c6c0f8a6dc5a62c4ef01a3848e36ffcc8077f718be4a3b86";
+    url = "https://binaries.webex.com/WebexDesktop-Ubuntu-Gold/20240521091053/Webex_ubuntu.7z";
+    sha256 = "e155c280d15f2db4b5e638f244319dbec938d6de267f2fed1b4ba2b55fbb8a9b";
   };
 
   nativeBuildInputs = [
@@ -172,7 +172,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The all-in-one app to call, meet, message, and get work done";
+    description = "All-in-one app to call, meet, message, and get work done";
     homepage = "https://webex.com/";
     downloadPage = "https://www.webex.com/downloads.html";
     license = licenses.unfree;
diff --git a/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix b/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix
index 7022cc282f662..e699c761b6953 100644
--- a/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix
+++ b/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix
@@ -27,13 +27,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "whatsapp-for-linux";
-  version = "1.6.4";
+  version = "1.6.5";
 
   src = fetchFromGitHub {
     owner = "eneshecan";
     repo = "whatsapp-for-linux";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-DU9tvIvDfOtBydR68yeRMFYdMjiBrOobCDXIZMmm7pQ=";
+    hash = "sha256-hUIyn6BhAPoszBTHKa4qSj6IRa+8cUS0Gis/qjDDnyk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix b/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
index 0dcacc526d103..a9f29029b0694 100644
--- a/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
@@ -42,7 +42,7 @@ let
   }.${system} or throwSystem;
 
   meta = with lib; {
-    description = "A modern, secure messenger for everyone";
+    description = "Modern, secure messenger for everyone";
     longDescription = ''
       Wire Personal is a secure, privacy-friendly messenger. It combines useful
       and fun features, audited security, and a beautiful, distinct user
diff --git a/pkgs/applications/networking/instant-messengers/ytalk/default.nix b/pkgs/applications/networking/instant-messengers/ytalk/default.nix
index 29ebc5f43d56f..bb284a84b022a 100644
--- a/pkgs/applications/networking/instant-messengers/ytalk/default.nix
+++ b/pkgs/applications/networking/instant-messengers/ytalk/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage    = "http://ytalk.ourproject.org";
-    description = "A terminal based talk client";
+    description = "Terminal based talk client";
     mainProgram = "ytalk";
     platforms   = lib.platforms.unix;
     maintainers = with lib.maintainers; [ taeer ];
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
index c6de2bc44cee1..d288619d95acb 100644
--- a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
+++ b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -48,23 +48,23 @@ let
   # and often with different versions.  We write them on three lines
   # like this (rather than using {}) so that the updater script can
   # find where to edit them.
-  versions.aarch64-darwin = "6.0.2.33403";
-  versions.x86_64-darwin = "6.0.2.33403";
-  versions.x86_64-linux = "6.0.2.4680";
+  versions.aarch64-darwin = "6.0.11.35001";
+  versions.x86_64-darwin = "6.0.11.35001";
+  versions.x86_64-linux = "6.0.12.5501";
 
   srcs = {
     aarch64-darwin = fetchurl {
       url = "https://zoom.us/client/${versions.aarch64-darwin}/zoomusInstallerFull.pkg?archType=arm64";
       name = "zoomusInstallerFull.pkg";
-      hash = "sha256-2JQf+gvMUUBsPuiP0VKkX9UR6IqL0NK0gtG4TdugJQ4=";
+      hash = "sha256-U8CdizMicbBLrKWYSRYl8u5tD/1276HwdHlr4kVHbiQ=";
     };
     x86_64-darwin = fetchurl {
       url = "https://zoom.us/client/${versions.x86_64-darwin}/zoomusInstallerFull.pkg";
-      hash = "sha256-M6JsABqbzvj6rlHI2QyqRH6R+hQkf0yx10t4lDVppso=";
+      hash = "sha256-iAETUWviaaQeEg6/FM1GWSJ3Qyvc0zBfuqOfA6X7HpY=";
     };
     x86_64-linux = fetchurl {
       url = "https://zoom.us/client/${versions.x86_64-linux}/zoom_x86_64.pkg.tar.xz";
-      hash = "sha256-027oAblhH8EJWRXKIEs9upNvjsSFkA0wxK1t8m8nwj8=";
+      hash = "sha256-h9gjVd7xqChaoC2BZWEhR5WdyfQrPiBjM2WHXMgp8uQ=";
     };
   };
 
diff --git a/pkgs/applications/networking/ipfs-upload-client/default.nix b/pkgs/applications/networking/ipfs-upload-client/default.nix
index 416f3dc60cc6e..a3d02d00c4187 100644
--- a/pkgs/applications/networking/ipfs-upload-client/default.nix
+++ b/pkgs/applications/networking/ipfs-upload-client/default.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
   vendorHash = "sha256-YzIUoN/B4TBlAfmvORrR9Gy+lMzwlaePm8yBoMsPaYU=";
 
   meta = with lib; {
-    description = "A minimal CLI tool to upload files and directories to IPFS via Infura's IPFS or another API endpoint";
+    description = "Minimal CLI tool to upload files and directories to IPFS via Infura's IPFS or another API endpoint";
     homepage = "https://github.com/INFURA/ipfs-upload-client";
     license = licenses.mit;
     maintainers = with maintainers; [ matthewcroughan ];
diff --git a/pkgs/applications/networking/iptraf-ng/default.nix b/pkgs/applications/networking/iptraf-ng/default.nix
index d21f21def8e2a..5b50bf3c5b013 100644
--- a/pkgs/applications/networking/iptraf-ng/default.nix
+++ b/pkgs/applications/networking/iptraf-ng/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "format" ];
 
   meta = with lib; {
-    description = "A console-based network monitoring utility (fork of iptraf)";
+    description = "Console-based network monitoring utility (fork of iptraf)";
     longDescription = ''
       IPTraf-ng is a console-based network monitoring utility. IPTraf-ng
       gathers data like TCP connection packet and byte counts, interface
diff --git a/pkgs/applications/networking/irc/bip/default.nix b/pkgs/applications/networking/irc/bip/default.nix
index 2eb1b5d8607f1..75f31d1ba9b59 100644
--- a/pkgs/applications/networking/irc/bip/default.nix
+++ b/pkgs/applications/networking/irc/bip/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation {
   enableParallelBuilding = true;
 
   meta = {
-    description = "An IRC proxy (bouncer)";
+    description = "IRC proxy (bouncer)";
     homepage = "http://bip.milkypond.org/";
     license = lib.licenses.gpl2;
     downloadPage = "https://projects.duckcorp.org/projects/bip/files";
diff --git a/pkgs/applications/networking/irc/catgirl/default.nix b/pkgs/applications/networking/irc/catgirl/default.nix
index 393313da41062..318a3ec5fdb3c 100644
--- a/pkgs/applications/networking/irc/catgirl/default.nix
+++ b/pkgs/applications/networking/irc/catgirl/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://git.causal.agency/catgirl/about/";
     license = licenses.gpl3Plus;
-    description = "A TLS-only terminal IRC client";
+    description = "TLS-only terminal IRC client";
     platforms = platforms.unix;
     mainProgram = "catgirl";
     maintainers = with maintainers; [ xfnw ];
diff --git a/pkgs/applications/networking/irc/communi/default.nix b/pkgs/applications/networking/irc/communi/default.nix
index 4f81dd657c623..84940c288bed2 100644
--- a/pkgs/applications/networking/irc/communi/default.nix
+++ b/pkgs/applications/networking/irc/communi/default.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple and elegant cross-platform IRC client";
+    description = "Simple and elegant cross-platform IRC client";
     mainProgram = "communi";
     homepage = "https://github.com/communi/communi-desktop";
     license = licenses.bsd3;
diff --git a/pkgs/applications/networking/irc/epic5/default.nix b/pkgs/applications/networking/irc/epic5/default.nix
index 969a9da46b15c..404eca810ef24 100644
--- a/pkgs/applications/networking/irc/epic5/default.nix
+++ b/pkgs/applications/networking/irc/epic5/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://epicsol.org";
-    description = "A IRC client that offers a great ircII interface";
+    description = "IRC client that offers a great ircII interface";
     license = licenses.bsd3;
     maintainers = [];
   };
diff --git a/pkgs/applications/networking/irc/glowing-bear/default.nix b/pkgs/applications/networking/irc/glowing-bear/default.nix
index d8d65f724e2a3..d5c0cad075b39 100644
--- a/pkgs/applications/networking/irc/glowing-bear/default.nix
+++ b/pkgs/applications/networking/irc/glowing-bear/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A web client for Weechat";
+    description = "Web client for Weechat";
     homepage = "https://github.com/glowing-bear/glowing-bear";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/applications/networking/irc/hexchat/default.nix b/pkgs/applications/networking/irc/hexchat/default.nix
index d6f9976ad67bf..4aafcc272638f 100644
--- a/pkgs/applications/networking/irc/hexchat/default.nix
+++ b/pkgs/applications/networking/irc/hexchat/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A popular and easy to use graphical IRC (chat) client";
+    description = "Popular and easy to use graphical IRC (chat) client";
     homepage = "https://hexchat.github.io/";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/irc/irccloud/default.nix b/pkgs/applications/networking/irc/irccloud/default.nix
index 6823eaf016991..4e41e1f865ecf 100644
--- a/pkgs/applications/networking/irc/irccloud/default.nix
+++ b/pkgs/applications/networking/irc/irccloud/default.nix
@@ -27,7 +27,7 @@ in appimageTools.wrapType2 {
   '';
 
   meta = with lib; {
-    description = "A desktop client for IRCCloud";
+    description = "Desktop client for IRCCloud";
     mainProgram = "irccloud";
     homepage = "https://www.irccloud.com";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/irc/tiny/default.nix b/pkgs/applications/networking/irc/tiny/default.nix
index 4eae9c18111cf..583723c0d147c 100644
--- a/pkgs/applications/networking/irc/tiny/default.nix
+++ b/pkgs/applications/networking/irc/tiny/default.nix
@@ -23,11 +23,6 @@ rustPlatform.buildRustPackage rec {
 
   cargoHash = "sha256-AhQCfLCoJU7o8s+XL3hDOPmZi9QjOxXSA9uglA1KSuY=";
 
-  # Cargo.lock is outdated
-  preConfigure = ''
-    cargo metadata --offline
-  '';
-
   nativeBuildInputs = lib.optional stdenv.isLinux pkg-config;
   buildInputs = lib.optionals dbusSupport [ dbus ]
                 ++ lib.optionals useOpenSSL [ openssl ]
@@ -36,7 +31,7 @@ rustPlatform.buildRustPackage rec {
   buildFeatures = lib.optional notificationSupport "desktop-notifications";
 
   meta = with lib; {
-    description = "A console IRC client";
+    description = "Console IRC client";
     homepage = "https://github.com/osa1/tiny";
     changelog = "https://github.com/osa1/tiny/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/irc/weechat/default.nix b/pkgs/applications/networking/irc/weechat/default.nix
index 9c34197fdbf55..fe3ee483ae57f 100644
--- a/pkgs/applications/networking/irc/weechat/default.nix
+++ b/pkgs/applications/networking/irc/weechat/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, lib
-, ncurses, openssl, aspell, gnutls, gettext
+, ncurses, openssl, aspell, cjson, gnutls, gettext
 , zlib, curl, pkg-config, libgcrypt
 , cmake, libobjc, libresolv, libiconv
 , asciidoctor # manpages
@@ -36,14 +36,14 @@ let
   in
     assert lib.all (p: p.enabled -> ! (builtins.elem null p.buildInputs)) plugins;
     stdenv.mkDerivation rec {
-      version = "4.2.2";
+      version = "4.3.2";
       pname = "weechat";
 
       hardeningEnable = [ "pie" ];
 
       src = fetchurl {
         url = "https://weechat.org/files/src/weechat-${version}.tar.xz";
-        hash = "sha256-IJaLIsfw9Q35z2/4WY3RvQF8V1myyUWT9dnteyTruUE=";
+        hash = "sha256-4fMd490+4ZiRVvTATp9L9hOdpq1Qwk9pH8EFfkz8N8Y=";
       };
 
       # Why is this needed? https://github.com/weechat/weechat/issues/2031
@@ -63,7 +63,7 @@ let
 
       nativeBuildInputs = [ cmake pkg-config asciidoctor ] ++ lib.optional enableTests cpputest;
       buildInputs = with lib; [
-          ncurses openssl aspell gnutls gettext zlib curl
+          ncurses openssl aspell cjson gnutls gettext zlib curl
           libgcrypt ]
         ++ optionals stdenv.isDarwin [ libobjc libresolv ]
         ++ concatMap (p: p.buildInputs) enabledPlugins
diff --git a/pkgs/applications/networking/irc/weechat/scripts/autosort/default.nix b/pkgs/applications/networking/irc/weechat/scripts/autosort/default.nix
index 26b44568ceaf0..6cbcc117af040 100644
--- a/pkgs/applications/networking/irc/weechat/scripts/autosort/default.nix
+++ b/pkgs/applications/networking/irc/weechat/scripts/autosort/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     inherit (weechat.meta) platforms;
-    description = "autosort automatically keeps your buffers sorted and grouped by server.";
+    description = "autosort automatically keeps your buffers sorted and grouped by server";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ flokli ];
   };
diff --git a/pkgs/applications/networking/irc/weechat/scripts/buffer_autoset/default.nix b/pkgs/applications/networking/irc/weechat/scripts/buffer_autoset/default.nix
index a2e9fc3265a33..9ef4929629924 100644
--- a/pkgs/applications/networking/irc/weechat/scripts/buffer_autoset/default.nix
+++ b/pkgs/applications/networking/irc/weechat/scripts/buffer_autoset/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     inherit (weechat.meta) platforms;
-    description = "buffer_autoset.py is a weechat script which auto-set buffer properties when a buffer is opened.";
+    description = "buffer_autoset.py is a weechat script which auto-set buffer properties when a buffer is opened";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ govanify ];
   };
diff --git a/pkgs/applications/networking/irc/weechat/scripts/edit/default.nix b/pkgs/applications/networking/irc/weechat/scripts/edit/default.nix
index 5f91417b76fa5..b510c17ac1e9c 100644
--- a/pkgs/applications/networking/irc/weechat/scripts/edit/default.nix
+++ b/pkgs/applications/networking/irc/weechat/scripts/edit/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     inherit (weechat.meta) platforms;
-    description = "This simple weechat plugin allows you to compose messages in your $EDITOR.";
+    description = "This simple weechat plugin allows you to compose messages in your $EDITOR";
     license = licenses.mit;
     maintainers = with maintainers; [ eraserhd ];
   };
diff --git a/pkgs/applications/networking/irc/weechat/scripts/highmon/default.nix b/pkgs/applications/networking/irc/weechat/scripts/highmon/default.nix
index f653224657071..d221a0cf972c4 100644
--- a/pkgs/applications/networking/irc/weechat/scripts/highmon/default.nix
+++ b/pkgs/applications/networking/irc/weechat/scripts/highmon/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     inherit (weechat.meta) platforms;
     homepage = "https://github.com/KenjiE20/highmon/";
-    description = "highmon.pl is a weechat script that adds 'Highlight Monitor'.";
+    description = "highmon.pl is a weechat script that adds 'Highlight Monitor'";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ govanify ];
   };
diff --git a/pkgs/applications/networking/irc/weechat/scripts/url_hint/default.nix b/pkgs/applications/networking/irc/weechat/scripts/url_hint/default.nix
index 90c98b8fe769a..38df127d14cf0 100644
--- a/pkgs/applications/networking/irc/weechat/scripts/url_hint/default.nix
+++ b/pkgs/applications/networking/irc/weechat/scripts/url_hint/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     inherit (weechat.meta) platforms;
-    description = "url_hint.py is a URL opening script.";
+    description = "url_hint.py is a URL opening script";
     license = licenses.mit;
     maintainers = with maintainers; [ eraserhd ];
   };
diff --git a/pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix b/pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix
index c20d8f0a80795..010470c6fbaab 100644
--- a/pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix
+++ b/pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix
@@ -20,6 +20,6 @@ stdenv.mkDerivation rec {
     description = "Autosort is a weechat script to automatically or manually keep your buffers sorted";
     homepage = "https://github.com/de-vri-es/weechat-autosort";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ emily flokli ];
+    maintainers = with maintainers; [ flokli ];
   };
 }
diff --git a/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix b/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix
index 282603f992480..46cb08594ee05 100644
--- a/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix
+++ b/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A WeeChat script in Lua that implements the matrix.org chat protocol";
+    description = "WeeChat script in Lua that implements the matrix.org chat protocol";
     homepage = "https://github.com/torhve/weechat-matrix-protocol-script";
     maintainers = with maintainers; [ ];
     license = licenses.mit; # see https://github.com/torhve/weechat-matrix-protocol-script/blob/0052e7275ae149dc5241226391c9b1889ecc3c6b/matrix.lua#L53
diff --git a/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix b/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix
index 3ae60816b5a00..a67903c6fe98a 100644
--- a/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix
+++ b/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix
@@ -76,11 +76,11 @@ in buildPythonPackage {
     cp contrib/matrix_decrypt.py $out/bin/matrix_decrypt
     cp contrib/matrix_sso_helper.py $out/bin/matrix_sso_helper
     substituteInPlace $out/bin/matrix_upload \
-      --replace '/usr/bin/env -S python3' '${scriptPython}/bin/python'
+      --replace-fail '/usr/bin/env -S python3' '${scriptPython}/bin/python'
     substituteInPlace $out/bin/matrix_sso_helper \
-      --replace '/usr/bin/env -S python3' '${scriptPython}/bin/python'
+      --replace-fail '/usr/bin/env -S python3' '${scriptPython}/bin/python'
     substituteInPlace $out/bin/matrix_decrypt \
-      --replace '/usr/bin/env python3' '${scriptPython}/bin/python'
+      --replace-fail '/usr/bin/env python3' '${scriptPython}/bin/python'
 
     mkdir -p $out/${python.sitePackages}
     cp -r matrix $out/${python.sitePackages}/matrix
@@ -90,14 +90,15 @@ in buildPythonPackage {
   postFixup = ''
     addToSearchPath program_PYTHONPATH $out/${python.sitePackages}
     patchPythonScript $out/share/matrix.py
-    substituteInPlace $out/${python.sitePackages}/matrix/server.py --replace \"matrix_sso_helper\" \"$out/bin/matrix_sso_helper\"
+    substituteInPlace $out/${python.sitePackages}/matrix/server.py --replace-fail \"matrix_sso_helper\" \"$out/bin/matrix_sso_helper\"
+    substituteInPlace $out/${python.sitePackages}/matrix/uploads.py --replace-fail \"matrix_upload\" \"$out/bin/matrix_upload\"
   '';
 
   meta = with lib; {
-    description = "A Python plugin for Weechat that lets Weechat communicate over the Matrix protocol";
+    description = "Python plugin for Weechat that lets Weechat communicate over the Matrix protocol";
     homepage = "https://github.com/poljar/weechat-matrix";
     license = licenses.isc;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ tilpner emily ];
+    maintainers = with maintainers; [ tilpner ];
   };
 }
diff --git a/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix b/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix
index d8f2b9ba0028c..abd289d990375 100644
--- a/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix
+++ b/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A WeeChat script that sends highlight and message notifications through notify-send";
+    description = "WeeChat script that sends highlight and message notifications through notify-send";
     homepage = "https://github.com/s3rvac/weechat-notify-send";
     license = licenses.mit;
     maintainers = with maintainers; [ tobim ];
diff --git a/pkgs/applications/networking/irc/wraith/default.nix b/pkgs/applications/networking/irc/wraith/default.nix
index b16efb03655f1..c059babffe7b6 100644
--- a/pkgs/applications/networking/irc/wraith/default.nix
+++ b/pkgs/applications/networking/irc/wraith/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
-    description = "An IRC channel management bot written purely in C/C++";
+    description = "IRC channel management bot written purely in C/C++";
     longDescription = ''
       Wraith is an IRC channel management bot written purely in C/C++. It has
       been in development since late 2003. It is based on Eggdrop 1.6.12 but has
diff --git a/pkgs/applications/networking/iroh/default.nix b/pkgs/applications/networking/iroh/default.nix
index b08291cc1ff3d..263d5e3342e83 100644
--- a/pkgs/applications/networking/iroh/default.nix
+++ b/pkgs/applications/networking/iroh/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "iroh";
-  version = "0.16.2";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "n0-computer";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-W3G6jwSaYeCx3KNAAl/z1UEOHFKHhmp+exlNbpHZuNM=";
+    hash = "sha256-CemVlw0S4UmKFopWSh1Hv2znMRN3guIBx303esK/gLw=";
   };
 
-  cargoHash = "sha256-AwTQjGRy2lCiJUhCWuyoXddEyLCQ2szbea/MJ/8SJQA=";
+  cargoHash = "sha256-LgA6gdBRLsow98nv9A5rYb/v/FGzu/LPQwftyeuKHk4=";
 
   buildInputs = lib.optionals stdenv.isDarwin (
     with darwin.apple_sdk.frameworks; [
diff --git a/pkgs/applications/networking/jmeter/default.nix b/pkgs/applications/networking/jmeter/default.nix
index 2b0627451e31d..ab8589c839fc7 100644
--- a/pkgs/applications/networking/jmeter/default.nix
+++ b/pkgs/applications/networking/jmeter/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A 100% pure Java desktop application designed to load test functional behavior and measure performance";
+    description = "100% pure Java desktop application designed to load test functional behavior and measure performance";
     longDescription = ''
       The Apache JMeter desktop application is open source software, a 100%
       pure Java application designed to load test functional behavior and
diff --git a/pkgs/applications/networking/juju/default.nix b/pkgs/applications/networking/juju/default.nix
index 8780e74a73e84..cce7f1e7c88f1 100644
--- a/pkgs/applications/networking/juju/default.nix
+++ b/pkgs/applications/networking/juju/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "juju";
-  version = "3.3.5";
+  version = "3.5.1";
 
   src = fetchFromGitHub {
     owner = "juju";
     repo = "juju";
     rev = "v${version}";
-    hash = "sha256-sp4KLRKII1oEmdbCHzs5fbE/68NbKrHE3bxO14byYFk=";
+    hash = "sha256-VOGkAv42dus2uxoffffIn6dwC18idwF2tycEHLd6I4s=";
   };
 
-  vendorHash = "sha256-a50W9V1xxmItHS2DZkkXYEZ7I6aJxDo1+IriOlMPDyw=";
+  vendorHash = "sha256-2JNEN8fmxflEyP5lHAv75Bjt9sbKoWL5O+87hxK89vU=";
 
   subPackages = [
     "cmd/juju"
diff --git a/pkgs/applications/networking/jxplorer/default.nix b/pkgs/applications/networking/jxplorer/default.nix
index e64cbaf357b01..c31c27bdd5db3 100644
--- a/pkgs/applications/networking/jxplorer/default.nix
+++ b/pkgs/applications/networking/jxplorer/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Java Ldap Browser";
+    description = "Java Ldap Browser";
     homepage    = "https://sourceforge.net/projects/jxplorer/";
     license     = lib.licenses.caossl;
     maintainers = with maintainers; [ benwbooth ];
diff --git a/pkgs/applications/networking/ktailctl/default.nix b/pkgs/applications/networking/ktailctl/default.nix
index 8e5e9abb0fb46..88caf1a5f43e3 100644
--- a/pkgs/applications/networking/ktailctl/default.nix
+++ b/pkgs/applications/networking/ktailctl/default.nix
@@ -77,7 +77,7 @@ stdenv.mkDerivation {
   ];
 
   meta = with lib; {
-    description = "A GUI to monitor and manage Tailscale on your Linux desktop";
+    description = "GUI to monitor and manage Tailscale on your Linux desktop";
     homepage = "https://github.com/f-koehler/KTailctl";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ k900 ];
diff --git a/pkgs/applications/networking/libcoap/default.nix b/pkgs/applications/networking/libcoap/default.nix
index 1c0fece2edf46..bae998f6cf88a 100644
--- a/pkgs/applications/networking/libcoap/default.nix
+++ b/pkgs/applications/networking/libcoap/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     ++ lib.optional withTLS "--enable-dtls";
   meta = with lib; {
     homepage = "https://github.com/obgm/libcoap";
-    description = "A CoAP (RFC 7252) implementation in C";
+    description = "CoAP (RFC 7252) implementation in C";
     platforms = platforms.unix;
     license = licenses.bsd2;
     maintainers = [ maintainers.kmein ];
diff --git a/pkgs/applications/networking/localsend/default.nix b/pkgs/applications/networking/localsend/default.nix
index 3854b347c0614..bd681b74eebbc 100644
--- a/pkgs/applications/networking/localsend/default.nix
+++ b/pkgs/applications/networking/localsend/default.nix
@@ -90,7 +90,7 @@ let
   };
 
   metaCommon = with lib; {
-    description = "An open source cross-platform alternative to AirDrop";
+    description = "Open source cross-platform alternative to AirDrop";
     homepage = "https://localsend.org/";
     license = licenses.mit;
     mainProgram = "localsend";
diff --git a/pkgs/applications/networking/mailreaders/aerc/default.nix b/pkgs/applications/networking/mailreaders/aerc/default.nix
index 003b07d2d5f6f..11dfe033248ad 100644
--- a/pkgs/applications/networking/mailreaders/aerc/default.nix
+++ b/pkgs/applications/networking/mailreaders/aerc/default.nix
@@ -69,7 +69,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "An email client for your terminal";
+    description = "Email client for your terminal";
     homepage = "https://aerc-mail.org/";
     maintainers = with maintainers; [ tadeokondrak ];
     mainProgram = "aerc";
diff --git a/pkgs/applications/networking/mailreaders/afew/default.nix b/pkgs/applications/networking/mailreaders/afew/default.nix
index 9c40ce8f0f682..993b9862fb2f5 100644
--- a/pkgs/applications/networking/mailreaders/afew/default.nix
+++ b/pkgs/applications/networking/mailreaders/afew/default.nix
@@ -53,7 +53,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/afewmail/afew";
-    description = "An initial tagging script for notmuch mail";
+    description = "Initial tagging script for notmuch mail";
     mainProgram = "afew";
     license = licenses.isc;
     maintainers = with maintainers; [ flokli ];
diff --git a/pkgs/applications/networking/mailreaders/balsa/default.nix b/pkgs/applications/networking/mailreaders/balsa/default.nix
index 3602ef602fe1e..e6453e377d935 100644
--- a/pkgs/applications/networking/mailreaders/balsa/default.nix
+++ b/pkgs/applications/networking/mailreaders/balsa/default.nix
@@ -71,7 +71,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://pawsa.fedorapeople.org/balsa/";
-    description = "An e-mail client for GNOME";
+    description = "E-mail client for GNOME";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
diff --git a/pkgs/applications/networking/mailreaders/bubblemail/default.nix b/pkgs/applications/networking/mailreaders/bubblemail/default.nix
index 3e5a6b1404ec6..add8f6c4e0986 100644
--- a/pkgs/applications/networking/mailreaders/bubblemail/default.nix
+++ b/pkgs/applications/networking/mailreaders/bubblemail/default.nix
@@ -66,7 +66,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "An extensible mail notification service.";
+    description = "Extensible mail notification service";
     homepage = "http://bubblemail.free.fr/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/mailreaders/claws-mail/default.nix b/pkgs/applications/networking/mailreaders/claws-mail/default.nix
index db98db2b3397d..ddc47d1800c37 100644
--- a/pkgs/applications/networking/mailreaders/claws-mail/default.nix
+++ b/pkgs/applications/networking/mailreaders/claws-mail/default.nix
@@ -96,11 +96,11 @@ let
   ];
 in stdenv.mkDerivation rec {
   pname = "claws-mail";
-  version = "4.2.0";
+  version = "4.3.0";
 
   src = fetchurl {
     url = "https://claws-mail.org/download.php?file=releases/claws-mail-${version}.tar.xz";
-    hash = "sha256-fIqxcy10GX3wbWGmt+vHxYDs9ukuse9q5bAQdTPxrwc=";
+    hash = "sha256-ldwdiI65FvAoRn+gw8v0W6/2Z4eTt7+zX6u6Ap1YHOE=";
   };
 
   outputs = [ "out" "dev" ];
@@ -152,7 +152,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The user-friendly, lightweight, and fast email client";
+    description = "User-friendly, lightweight, and fast email client";
     mainProgram = "claws-mail";
     homepage = "https://www.claws-mail.org/";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix b/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
index 368c9f897dc79..aa38ee7cb8d31 100644
--- a/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
+++ b/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
@@ -22,11 +22,11 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution-ews";
-  version = "3.52.1";
+  version = "3.52.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-TR9OlipFClJnADNQiaOQfZgMB2Z/q9Vmmag06Z2HSrI=";
+    hash = "sha256-qVUPG1PUdANt0jmWJ7MRjrO4QxhBztwO3yFFewlhkUE=";
   };
 
   patches = [
diff --git a/pkgs/applications/networking/mailreaders/evolution/evolution-ews/hardcode-gsettings.patch b/pkgs/applications/networking/mailreaders/evolution/evolution-ews/hardcode-gsettings.patch
index 55fcb25f1551b..b8dae30a997aa 100644
--- a/pkgs/applications/networking/mailreaders/evolution/evolution-ews/hardcode-gsettings.patch
+++ b/pkgs/applications/networking/mailreaders/evolution/evolution-ews/hardcode-gsettings.patch
@@ -1,8 +1,8 @@
 diff --git a/src/EWS/calendar/e-cal-backend-ews-utils.c b/src/EWS/calendar/e-cal-backend-ews-utils.c
-index b7c65ae..b334198 100644
+index 87b02c6..3fabca6 100644
 --- a/src/EWS/calendar/e-cal-backend-ews-utils.c
 +++ b/src/EWS/calendar/e-cal-backend-ews-utils.c
-@@ -2425,7 +2425,19 @@ e_cal_backend_ews_get_configured_evolution_icaltimezone (void)
+@@ -2484,7 +2484,19 @@ e_cal_backend_ews_get_configured_evolution_icaltimezone (void)
  		if (schema) {
  			GSettings *settings;
  
@@ -24,10 +24,10 @@ index b7c65ae..b334198 100644
  			if (g_settings_get_boolean (settings, "use-system-timezone"))
  				location = e_cal_util_get_system_timezone_location ();
 diff --git a/src/EWS/camel/camel-ews-utils.c b/src/EWS/camel/camel-ews-utils.c
-index dbd9adb..a2372a4 100644
+index 44a20d6..90d5729 100644
 --- a/src/EWS/camel/camel-ews-utils.c
 +++ b/src/EWS/camel/camel-ews-utils.c
-@@ -1553,7 +1553,18 @@ ews_utils_save_category_changes (GHashTable *old_categories, /* gchar *guid ~> C
+@@ -1554,7 +1554,18 @@ ews_utils_save_category_changes (GHashTable *old_categories, /* gchar *guid ~> C
  
  	evo_labels = g_ptr_array_new_full (5, g_free);
  
diff --git a/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix b/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
index dd7342eadc4f1..0fe2e4796efc4 100644
--- a/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
+++ b/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
@@ -44,11 +44,11 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution";
-  version = "3.52.1";
+  version = "3.52.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-aNrtER2t42GMpwjss8q0zZO6UC9a6dXnlwc8OhPinek=";
+    hash = "sha256-pIt0EtE+2sdPbAms+mdmVuahLt8AMM3cJgKawE2j5VE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/mailreaders/mailnag/default.nix b/pkgs/applications/networking/mailreaders/mailnag/default.nix
index 6c887ef66ce53..1976521b2f220 100644
--- a/pkgs/applications/networking/mailreaders/mailnag/default.nix
+++ b/pkgs/applications/networking/mailreaders/mailnag/default.nix
@@ -98,7 +98,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "An extensible mail notification daemon";
+    description = "Extensible mail notification daemon";
     homepage = "https://github.com/pulb/mailnag";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/mailreaders/mailnag/goa-plugin.nix b/pkgs/applications/networking/mailreaders/mailnag/goa-plugin.nix
index bb758565eb8a9..8a5d4c74a4029 100644
--- a/pkgs/applications/networking/mailreaders/mailnag/goa-plugin.nix
+++ b/pkgs/applications/networking/mailreaders/mailnag/goa-plugin.nix
@@ -25,7 +25,7 @@ python3Packages.buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Mailnag GNOME Online Accounts plugin.";
+    description = "Mailnag GNOME Online Accounts plugin";
     homepage = "https://github.com/pulb/mailnag-goa-plugin";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/mailreaders/mailspring/default.nix b/pkgs/applications/networking/mailreaders/mailspring/default.nix
index ba8436717a40d..9624b1b9aa0b7 100644
--- a/pkgs/applications/networking/mailreaders/mailspring/default.nix
+++ b/pkgs/applications/networking/mailreaders/mailspring/default.nix
@@ -7,7 +7,7 @@ let
   version = "1.13.3";
 
   meta = with lib; {
-    description = "A beautiful, fast and maintained fork of Nylas Mail by one of the original authors";
+    description = "Beautiful, fast and maintained fork of Nylas Mail by one of the original authors";
     downloadPage = "https://github.com/Foundry376/Mailspring";
     homepage = "https://getmailspring.com";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/networking/mailreaders/mswatch/default.nix b/pkgs/applications/networking/mailreaders/mswatch/default.nix
index f7ba4bb1bf126..cf14a411efe6c 100644
--- a/pkgs/applications/networking/mailreaders/mswatch/default.nix
+++ b/pkgs/applications/networking/mailreaders/mswatch/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A command-line Linux utility that efficiently directs mail synchronization between a pair of mailboxes";
+    description = "Command-line Linux utility that efficiently directs mail synchronization between a pair of mailboxes";
     homepage = "https://mswatch.sourceforge.net/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/mailreaders/mutt/default.nix b/pkgs/applications/networking/mailreaders/mutt/default.nix
index 7da31db64e08a..c45ff30e54d4b 100644
--- a/pkgs/applications/networking/mailreaders/mutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -39,13 +39,18 @@ stdenv.mkDerivation rec {
     sha256 = "0b4i00chvx6zj9pcb06x2jysmrcb2znn831lcy32cgfds6gr3nsi";
   });
 
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    perl which
+  ];
+
   buildInputs =
-    [ ncurses which perl ]
+    [ ncurses ]
     ++ lib.optional headerCache  gdbm
     ++ lib.optional sslSupport   openssl
     ++ lib.optional gssSupport   libkrb5
-    ++ lib.optional saslSupport  cyrus_sasl
-    ++ lib.optional gpgmeSupport gpgme;
+    ++ lib.optional saslSupport  cyrus_sasl;
 
   configureFlags = [
     (lib.enableFeature headerCache  "hcache")
@@ -66,9 +71,10 @@ stdenv.mkDerivation rec {
     # set by the installer, and removing the need for the group 'mail'
     # I set the value 'mailbox' because it is a default in the configure script
     "--with-homespool=mailbox"
-  ] ++ lib.optional sslSupport  "--with-ssl"
-    ++ lib.optional gssSupport  "--with-gss"
-    ++ lib.optional saslSupport "--with-sasl";
+  ] ++ lib.optional sslSupport   "--with-ssl"
+    ++ lib.optional gssSupport   "--with-gss"
+    ++ lib.optional saslSupport  "--with-sasl"
+    ++ lib.optional gpgmeSupport "--with-gpgme-prefix=${lib.getDev gpgme}";
 
   postPatch = lib.optionalString (smimeSupport || gpgmeSupport) ''
     sed -i 's#/usr/bin/openssl#${openssl}/bin/openssl#' smime_keys.pl
@@ -101,7 +107,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A small but very powerful text-based mail client";
+    description = "Small but very powerful text-based mail client";
     homepage = "http://www.mutt.org";
     mainProgram = "mutt";
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/networking/mailreaders/neomutt/default.nix b/pkgs/applications/networking/mailreaders/neomutt/default.nix
index 7bad118dc38b0..8a26dbb315c74 100644
--- a/pkgs/applications/networking/mailreaders/neomutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/neomutt/default.nix
@@ -5,15 +5,15 @@
 , withContrib ? true
 }:
 
-stdenv.mkDerivation rec {
-  version = "20231221";
+stdenv.mkDerivation (finalAttrs: {
   pname = "neomutt";
+  version = "20240425";
 
   src = fetchFromGitHub {
     owner  = "neomutt";
     repo   = "neomutt";
-    rev    = version;
-    sha256 = "sha256-IXly2N/DD2+XBXVIXJw1sE/0eJwbUaONDNRMi7n1T44=";
+    rev    = finalAttrs.version;
+    hash   = "sha256-QBqPFteoAm3AdQN0XTWpho8DEW2BFCCzBcHUZIiSxyQ=";
   };
 
   buildInputs = [
@@ -73,42 +73,47 @@ stdenv.mkDerivation rec {
   ''
   # https://github.com/neomutt/neomutt-contrib
   # Contains vim-keys, keybindings presets and more.
-  + lib.optionalString withContrib "${lib.getExe lndir} ${passthru.contrib} $out/share/doc/neomutt";
+  + lib.optionalString withContrib "${lib.getExe lndir} ${finalAttrs.passthru.contrib} $out/share/doc/neomutt";
 
   doCheck = true;
 
   preCheck = ''
-    cp -r ${passthru.test-files} $(pwd)/test-files
+    cp -r ${finalAttrs.passthru.test-files} $(pwd)/test-files
+
     chmod -R +w test-files
     (cd test-files && ./setup.sh)
 
     export NEOMUTT_TEST_DIR=$(pwd)/test-files
+
+    # The test fails with: node_padding.c:135: Check rc == 15... failed
+    substituteInPlace test/main.c \
+      --replace-fail "NEOMUTT_TEST_ITEM(test_expando_node_padding)" ""
   '';
 
   passthru = {
     test-files = fetchFromGitHub {
       owner = "neomutt";
       repo = "neomutt-test-files";
-      rev = "1569b826a56c39fd09f7c6dd5fc1163ff5a356a2";
-      sha256 = "sha256-MaH2zEH1Wq3C0lFxpEJ+b/A+k2aKY/sr1EtSPAuRPp8=";
+      rev = "00efc8388110208e77e6ed9d8294dfc333753d54";
+      hash = "sha256-/ELowuMq67v56MAJBtO73g6OqV0DVwW4+x+0u4P5mB0=";
     };
     contrib = fetchFromGitHub {
       owner = "neomutt";
       repo = "neomutt-contrib";
       rev = "8e97688693ca47ea1055f3d15055a4f4ecc5c832";
-      sha256 = "sha256-tx5Y819rNDxOpjg3B/Y2lPcqJDArAxVwjbYarVmJ79k=";
+      hash = "sha256-tx5Y819rNDxOpjg3B/Y2lPcqJDArAxVwjbYarVmJ79k=";
     };
   };
 
   checkTarget = "test";
   postCheck = "unset NEOMUTT_TEST_DIR";
 
-  meta = with lib; {
-    description = "A small but very powerful text-based mail client";
+  meta = {
+    description = "Small but very powerful text-based mail client";
     mainProgram = "neomutt";
-    homepage    = "http://www.neomutt.org";
-    license     = licenses.gpl2Plus;
-    maintainers = with maintainers; [ erikryb vrthra ma27 raitobezarius ];
-    platforms   = platforms.unix;
+    homepage    = "https://www.neomutt.org";
+    license     = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ erikryb vrthra raitobezarius ];
+    platforms   = lib.platforms.unix;
   };
-}
+})
diff --git a/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix b/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix
index 125ea39584084..29aa21bca0f22 100644
--- a/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix
+++ b/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/wangp/bower";
-    description = "A curses terminal client for the Notmuch email system";
+    description = "Curses terminal client for the Notmuch email system";
     mainProgram = "bower";
     maintainers = with maintainers; [ jgart ];
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
index 9406928ffba1d..307a805ddf1ee 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
@@ -5,13 +5,13 @@ rec {
 
   thunderbird-115 = (buildMozillaMach rec {
     pname = "thunderbird";
-    version = "115.11.0";
+    version = "115.12.0";
     application = "comm/mail";
     applicationName = "Mozilla Thunderbird";
     binaryName = pname;
     src = fetchurl {
       url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
-      sha512 = "002f783cff7f2b50d9a29f20061fe55a1f64487b38a18dcb49217c3d7b99c2852af842decbd0347939aaf4c4c73ae66a8b04527ccd1b6db7f87aab402cb84ca1";
+      sha512 = "d262ec2cea3fd003e66974b0bd8d61fb268ad2a233e54a6aea4803c5520e235ea308267f0484581ce235063c4fb90e621cdc1eea3f62212574b90427ede1c289";
     };
     extraPatches = [
       # The file to be patched is different from firefox's `no-buildconfig-ffx90.patch`.
@@ -20,7 +20,7 @@ rec {
 
     meta = with lib; {
       changelog = "https://www.thunderbird.net/en-US/thunderbird/${version}/releasenotes/";
-      description = "A full-featured e-mail client";
+      description = "Full-featured e-mail client";
       homepage = "https://thunderbird.net/";
       mainProgram = "thunderbird";
       maintainers = with maintainers; [ eelco lovesegfault pierron vcunat ];
diff --git a/pkgs/applications/networking/mailreaders/trojita/default.nix b/pkgs/applications/networking/mailreaders/trojita/default.nix
index 395e9b0f4e3f5..8015484d70435 100644
--- a/pkgs/applications/networking/mailreaders/trojita/default.nix
+++ b/pkgs/applications/networking/mailreaders/trojita/default.nix
@@ -67,7 +67,7 @@ in mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Qt IMAP e-mail client";
+    description = "Qt IMAP e-mail client";
     homepage = "http://trojita.flaska.net/";
     license = with licenses; [ gpl2 gpl3 ];
     maintainers = with maintainers; [ ehmry ];
diff --git a/pkgs/applications/networking/mailreaders/tutanota-desktop/default.nix b/pkgs/applications/networking/mailreaders/tutanota-desktop/default.nix
index c9bbe06a9ea6b..78aa173867692 100644
--- a/pkgs/applications/networking/mailreaders/tutanota-desktop/default.nix
+++ b/pkgs/applications/networking/mailreaders/tutanota-desktop/default.nix
@@ -5,11 +5,11 @@
 
 appimageTools.wrapType2 rec {
   pname = "tutanota-desktop";
-  version = "229.240514.1";
+  version = "230.240603.0";
 
   src = fetchurl {
     url = "https://github.com/tutao/tutanota/releases/download/tutanota-desktop-release-${version}/tutanota-desktop-linux.AppImage";
-    hash = "sha256-wUxg6Gu8jjV+EEvD9nt38BU5J3qoByvj+sUkilk4voc=";
+    hash = "sha256-pgRqlaUbEDEAd4frooSloeiNEX02VESPhqIzRIuQshI=";
   };
 
   extraPkgs = pkgs: [ pkgs.libsecret ];
diff --git a/pkgs/applications/networking/mhost/default.nix b/pkgs/applications/networking/mhost/default.nix
index f4313187636c3..435f58d068502 100644
--- a/pkgs/applications/networking/mhost/default.nix
+++ b/pkgs/applications/networking/mhost/default.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A modern take on the classic host DNS lookup utility including an easy to use and very fast Rust lookup library";
+    description = "Modern take on the classic host DNS lookup utility including an easy to use and very fast Rust lookup library";
     homepage = "https://github.com/lukaspustina/mhost";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = [ maintainers.mgttlinger ];
diff --git a/pkgs/applications/networking/misc/zammad/default.nix b/pkgs/applications/networking/misc/zammad/default.nix
index 369b16282c41b..065749554ea10 100644
--- a/pkgs/applications/networking/misc/zammad/default.nix
+++ b/pkgs/applications/networking/misc/zammad/default.nix
@@ -17,7 +17,6 @@
 , nodejs
 , yarn
 , yarn2nix-moretea
-, v8
 , cacert
 , redis
 }:
@@ -83,7 +82,7 @@ let
       };
       mini_racer = attrs: {
         buildFlags = [
-          "--with-v8-dir=\"${v8}\""
+          "--with-v8-dir=\"${nodejs.libv8}\""
         ];
         dontBuild = false;
         postPatch = ''
@@ -161,7 +160,7 @@ stdenv.mkDerivation {
   };
 
   meta = with lib; {
-    description = "Zammad, a web-based, open source user support/ticketing solution.";
+    description = "Zammad, a web-based, open source user support/ticketing solution";
     homepage = "https://zammad.org";
     license = licenses.agpl3Plus;
     platforms = [ "x86_64-linux" "aarch64-linux" ];
diff --git a/pkgs/applications/networking/modem-manager-gui/default.nix b/pkgs/applications/networking/modem-manager-gui/default.nix
index ba14278292bc0..a96031342f8ed 100644
--- a/pkgs/applications/networking/modem-manager-gui/default.nix
+++ b/pkgs/applications/networking/modem-manager-gui/default.nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "An app to send/receive SMS, make USSD requests, control mobile data usage and more";
+    description = "App to send/receive SMS, make USSD requests, control mobile data usage and more";
     longDescription = ''
       A simple GTK based GUI compatible with Modem manager, Wader and oFono
       system services able to control EDGE/3G/4G broadband modem specific
diff --git a/pkgs/applications/networking/mullvad/libwg.nix b/pkgs/applications/networking/mullvad/libwg.nix
index ab54d23486a2a..4d9d4c373ee31 100644
--- a/pkgs/applications/networking/mullvad/libwg.nix
+++ b/pkgs/applications/networking/mullvad/libwg.nix
@@ -29,7 +29,7 @@ buildGoModule {
   '';
 
   meta = with lib; {
-    description = "A tiny wrapper around wireguard-go";
+    description = "Tiny wrapper around wireguard-go";
     homepage = "https://github.com/mullvad/mullvadvpn-app/tree/main/wireguard/libwg";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ cole-h ];
diff --git a/pkgs/applications/networking/mumble/0001-BUILD-crypto-Migrate-to-OpenSSL-3.0-compatible-API.patch b/pkgs/applications/networking/mumble/0001-BUILD-crypto-Migrate-to-OpenSSL-3.0-compatible-API.patch
deleted file mode 100644
index 3f2adc8d2a632..0000000000000
--- a/pkgs/applications/networking/mumble/0001-BUILD-crypto-Migrate-to-OpenSSL-3.0-compatible-API.patch
+++ /dev/null
@@ -1,553 +0,0 @@
-From f4cea62ed95e4967d8591f25e903f5e8fc2e2a30 Mon Sep 17 00:00:00 2001
-From: Terry Geng <terry@terriex.com>
-Date: Mon, 6 Dec 2021 10:45:11 -0500
-Subject: [PATCH] BUILD(crypto): Migrate to OpenSSL 3.0-compatible API
-
-OpenSSL 3.0 deprecated several low-level APIs and the usage of them
-caused errors/warnings that prevent the binary from being built against
-OpenSSL 3.0.
-Some primitive efforts have been made in #5317 but were incomplete.
-This commit follows https://www.openssl.org/docs/man3.0/man7/migration_guide.html,
-https://code.woboq.org/qt6/qtopcua/src/opcua/x509/qopcuakeypair_openssl.cpp.html,
-and clears all errors/warnings related to the usage of deprecated APIs.
-
-Fixes #5277
-Fixes #4266
----
- src/SelfSignedCertificate.cpp | 235 +++++++++++-----------------------
- src/SelfSignedCertificate.h   |   5 +
- src/crypto/CryptStateOCB2.cpp |  53 +++++---
- src/crypto/CryptStateOCB2.h   |   9 +-
- 4 files changed, 121 insertions(+), 181 deletions(-)
-
-diff --git a/src/SelfSignedCertificate.cpp b/src/SelfSignedCertificate.cpp
-index a77e5fad9..ea0dec4cc 100644
---- a/src/SelfSignedCertificate.cpp
-+++ b/src/SelfSignedCertificate.cpp
-@@ -5,8 +5,6 @@
- 
- #include "SelfSignedCertificate.h"
- 
--#include <openssl/x509v3.h>
--
- #define SSL_STRING(x) QString::fromLatin1(x).toUtf8().data()
- 
- static int add_ext(X509 *crt, int nid, char *value) {
-@@ -28,108 +26,86 @@ static int add_ext(X509 *crt, int nid, char *value) {
- 	return 1;
- }
- 
--bool SelfSignedCertificate::generate(CertificateType certificateType, QString clientCertName, QString clientCertEmail,
--									 QSslCertificate &qscCert, QSslKey &qskKey) {
--	bool ok                    = true;
--	X509 *x509                 = nullptr;
--	EVP_PKEY *pkey             = nullptr;
--	RSA *rsa                   = nullptr;
--	BIGNUM *e                  = nullptr;
--	X509_NAME *name            = nullptr;
--	ASN1_INTEGER *serialNumber = nullptr;
--	ASN1_TIME *notBefore       = nullptr;
--	ASN1_TIME *notAfter        = nullptr;
--	QString commonName;
--	bool isServerCert = certificateType == CertificateTypeServerCertificate;
--
--	if (CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON) == -1) {
--		ok = false;
--		goto out;
-+EVP_PKEY *SelfSignedCertificate::generate_rsa_keypair() {
-+	EVP_PKEY *pkey = EVP_PKEY_new();
-+	if (!pkey) {
-+		return nullptr;
- 	}
- 
--	x509 = X509_new();
--	if (!x509) {
--		ok = false;
--		goto out;
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+	EVP_PKEY_CTX *ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_RSA, nullptr);
-+	if (!ctx) {
-+		return nullptr;
- 	}
--
--	pkey = EVP_PKEY_new();
--	if (!pkey) {
--		ok = false;
--		goto out;
-+	if (EVP_PKEY_keygen_init(ctx) <= 0) {
-+		return nullptr;
- 	}
--
--	rsa = RSA_new();
-+	if (EVP_PKEY_CTX_set_rsa_keygen_bits(ctx, 2048) <= 0) {
-+		return nullptr;
-+	}
-+	if (EVP_PKEY_keygen(ctx, &pkey) <= 0) {
-+		return nullptr;
-+	}
-+	EVP_PKEY_CTX_free(ctx);
-+#else
-+	RSA *rsa  = RSA_new();
-+	BIGNUM *e = BN_new();
- 	if (!rsa) {
--		ok = false;
--		goto out;
-+		return nullptr;
- 	}
--
--	e = BN_new();
- 	if (!e) {
--		ok = false;
--		goto out;
-+		return nullptr;
- 	}
- 	if (BN_set_word(e, 65537) == 0) {
--		ok = false;
--		goto out;
-+		return nullptr;
- 	}
--
- 	if (RSA_generate_key_ex(rsa, 2048, e, nullptr) == 0) {
--		ok = false;
--		goto out;
-+		return nullptr;
- 	}
--
- 	if (EVP_PKEY_assign_RSA(pkey, rsa) == 0) {
--		ok = false;
--		goto out;
-+		return nullptr;
- 	}
-+	BN_free(e);
-+	RSA_free(rsa);
-+#endif
-+	return pkey;
-+}
- 
--	if (X509_set_version(x509, 2) == 0) {
--		ok = false;
--		goto out;
-+#define CHECK(statement) \
-+	if (!(statement)) {  \
-+		ok = false;      \
-+		goto out;        \
- 	}
- 
--	serialNumber = X509_get_serialNumber(x509);
--	if (!serialNumber) {
--		ok = false;
--		goto out;
--	}
--	if (ASN1_INTEGER_set(serialNumber, 1) == 0) {
--		ok = false;
--		goto out;
--	}
- 
--	notBefore = X509_get_notBefore(x509);
--	if (!notBefore) {
--		ok = false;
--		goto out;
--	}
--	if (!X509_gmtime_adj(notBefore, 0)) {
--		ok = false;
--		goto out;
--	}
-+bool SelfSignedCertificate::generate(CertificateType certificateType, QString clientCertName, QString clientCertEmail,
-+									 QSslCertificate &qscCert, QSslKey &qskKey) {
-+	bool ok                    = true;
-+	EVP_PKEY *pkey             = nullptr;
-+	X509 *x509                 = nullptr;
-+	X509_NAME *name            = nullptr;
-+	ASN1_INTEGER *serialNumber = nullptr;
-+	ASN1_TIME *notBefore       = nullptr;
-+	ASN1_TIME *notAfter        = nullptr;
-+	QString commonName;
-+	bool isServerCert = certificateType == CertificateTypeServerCertificate;
- 
--	notAfter = X509_get_notAfter(x509);
--	if (!notAfter) {
--		ok = false;
--		goto out;
--	}
--	if (!X509_gmtime_adj(notAfter, 60 * 60 * 24 * 365 * 20)) {
--		ok = false;
--		goto out;
--	}
-+	// In Qt 5.15, a class was added to wrap up the procedures of generating a self-signed certificate.
-+	// See https://doc.qt.io/qt-5/qopcuax509certificatesigningrequest.html.
-+	// We should consider migrating to this class after switching to Qt 5.15.
- 
--	if (X509_set_pubkey(x509, pkey) == 0) {
--		ok = false;
--		goto out;
--	}
-+	CHECK(pkey = generate_rsa_keypair());
- 
--	name = X509_get_subject_name(x509);
--	if (!name) {
--		ok = false;
--		goto out;
--	}
-+	CHECK(x509 = X509_new());
-+	CHECK(X509_set_version(x509, 2));
-+	CHECK(serialNumber = X509_get_serialNumber(x509));
-+	CHECK(ASN1_INTEGER_set(serialNumber, 1));
-+	CHECK(notBefore = X509_get_notBefore(x509));
-+	CHECK(X509_gmtime_adj(notBefore, 0));
-+	CHECK(notAfter = X509_get_notAfter(x509));
-+	CHECK(X509_gmtime_adj(notAfter, 60 * 60 * 24 * 365 * 20))
-+	CHECK(X509_set_pubkey(x509, pkey));
-+	CHECK(name = X509_get_subject_name(x509));
- 
- 	if (isServerCert) {
- 		commonName = QLatin1String("Murmur Autogenerated Certificate v2");
-@@ -141,120 +117,63 @@ bool SelfSignedCertificate::generate(CertificateType certificateType, QString cl
- 		}
- 	}
- 
--	if (X509_NAME_add_entry_by_txt(name, "CN", MBSTRING_UTF8,
--								   reinterpret_cast< unsigned char * >(commonName.toUtf8().data()), -1, -1, 0)
--		== 0) {
--		ok = false;
--		goto out;
--	}
-+	CHECK(X509_NAME_add_entry_by_txt(name, "CN", MBSTRING_UTF8,
-+									 reinterpret_cast< unsigned char * >(commonName.toUtf8().data()), -1, -1, 0));
- 
--	if (X509_set_issuer_name(x509, name) == 0) {
--		ok = false;
--		goto out;
--	}
-+	CHECK(X509_set_issuer_name(x509, name));
- 
--	if (add_ext(x509, NID_basic_constraints, SSL_STRING("critical,CA:FALSE")) == 0) {
--		ok = false;
--		goto out;
--	}
-+	CHECK(add_ext(x509, NID_basic_constraints, SSL_STRING("critical,CA:FALSE")));
- 
- 	if (isServerCert) {
--		if (add_ext(x509, NID_ext_key_usage, SSL_STRING("serverAuth,clientAuth")) == 0) {
--			ok = false;
--			goto out;
--		}
-+		CHECK(add_ext(x509, NID_ext_key_usage, SSL_STRING("serverAuth,clientAuth")))
- 	} else {
--		if (add_ext(x509, NID_ext_key_usage, SSL_STRING("clientAuth")) == 0) {
--			ok = false;
--			goto out;
--		}
-+		CHECK(add_ext(x509, NID_ext_key_usage, SSL_STRING("clientAuth")));
- 	}
- 
--	if (add_ext(x509, NID_subject_key_identifier, SSL_STRING("hash")) == 0) {
--		ok = false;
--		goto out;
--	}
-+	CHECK(add_ext(x509, NID_subject_key_identifier, SSL_STRING("hash")));
- 
- 	if (isServerCert) {
--		if (add_ext(x509, NID_netscape_comment, SSL_STRING("Generated from murmur")) == 0) {
--			ok = false;
--			goto out;
--		}
-+		CHECK(add_ext(x509, NID_netscape_comment, SSL_STRING("Generated from murmur")));
- 	} else {
--		if (add_ext(x509, NID_netscape_comment, SSL_STRING("Generated by Mumble")) == 0) {
--			ok = false;
--			goto out;
--		}
-+		CHECK(add_ext(x509, NID_netscape_comment, SSL_STRING("Generated by Mumble")));
- 	}
- 
- 	if (!isServerCert) {
- 		if (!clientCertEmail.trimmed().isEmpty()) {
--			if (add_ext(x509, NID_subject_alt_name,
--						QString::fromLatin1("email:%1").arg(clientCertEmail).toUtf8().data())
--				== 0) {
--				ok = false;
--				goto out;
--			}
-+			CHECK(add_ext(x509, NID_subject_alt_name,
-+						  QString::fromLatin1("email:%1").arg(clientCertEmail).toUtf8().data()));
- 		}
- 	}
- 
--	if (X509_sign(x509, pkey, EVP_sha1()) == 0) {
--		ok = false;
--		goto out;
--	}
-+	CHECK(X509_sign(x509, pkey, EVP_sha1()));
- 
- 	{
- 		QByteArray crt;
- 		int len = i2d_X509(x509, nullptr);
--		if (len <= 0) {
--			ok = false;
--			goto out;
--		}
-+		CHECK(len > 0);
- 		crt.resize(len);
- 
- 		unsigned char *dptr = reinterpret_cast< unsigned char * >(crt.data());
--		if (i2d_X509(x509, &dptr) != len) {
--			ok = false;
--			goto out;
--		}
-+		CHECK(i2d_X509(x509, &dptr) == len);
- 
- 		qscCert = QSslCertificate(crt, QSsl::Der);
--		if (qscCert.isNull()) {
--			ok = false;
--			goto out;
--		}
-+		CHECK(!qscCert.isNull());
- 	}
- 
- 	{
- 		QByteArray key;
- 		int len = i2d_PrivateKey(pkey, nullptr);
--		if (len <= 0) {
--			ok = false;
--			goto out;
--		}
-+		CHECK(len > 0);
- 		key.resize(len);
- 
- 		unsigned char *dptr = reinterpret_cast< unsigned char * >(key.data());
--		if (i2d_PrivateKey(pkey, &dptr) != len) {
--			ok = false;
--			goto out;
--		}
-+		CHECK(i2d_PrivateKey(pkey, &dptr) == len);
- 
- 		qskKey = QSslKey(key, QSsl::Rsa, QSsl::Der);
--		if (qskKey.isNull()) {
--			ok = false;
--			goto out;
--		}
-+		CHECK(!qskKey.isNull());
- 	}
- 
- out:
--	if (e) {
--		BN_free(e);
--	}
--	// We only need to free the pkey pointer,
--	// not the RSA pointer. We have assigned
--	// our RSA key to pkey, and it will be freed
--	// once we free pkey.
- 	if (pkey) {
- 		EVP_PKEY_free(pkey);
- 	}
-diff --git a/src/SelfSignedCertificate.h b/src/SelfSignedCertificate.h
-index b85a8752b..7c5f59e9c 100644
---- a/src/SelfSignedCertificate.h
-+++ b/src/SelfSignedCertificate.h
-@@ -6,6 +6,10 @@
- #ifndef MUMBLE_SELFSIGNEDCERTIFICATE_H_
- #define MUMBLE_SELFSIGNEDCERTIFICATE_H_
- 
-+#include <openssl/evp.h>
-+#include <openssl/rsa.h>
-+#include <openssl/x509v3.h>
-+
- #include <QtCore/QString>
- #include <QtNetwork/QSslCertificate>
- #include <QtNetwork/QSslKey>
-@@ -16,6 +20,7 @@ class SelfSignedCertificate {
- private:
- 	static bool generate(CertificateType certificateType, QString clientCertName, QString clientCertEmail,
- 						 QSslCertificate &qscCert, QSslKey &qskKey);
-+	static EVP_PKEY *generate_rsa_keypair();
- 
- public:
- 	static bool generateMumbleCertificate(QString name, QString email, QSslCertificate &qscCert, QSslKey &qskKey);
-diff --git a/src/crypto/CryptStateOCB2.cpp b/src/crypto/CryptStateOCB2.cpp
-index 2176d6488..640fdedac 100644
---- a/src/crypto/CryptStateOCB2.cpp
-+++ b/src/crypto/CryptStateOCB2.cpp
-@@ -30,7 +30,7 @@
- #include <cstring>
- #include <openssl/rand.h>
- 
--CryptStateOCB2::CryptStateOCB2() : CryptState() {
-+CryptStateOCB2::CryptStateOCB2() : CryptState(), enc_ctx(EVP_CIPHER_CTX_new()), dec_ctx(EVP_CIPHER_CTX_new()) {
- 	for (int i = 0; i < 0x100; i++)
- 		decrypt_history[i] = 0;
- 	memset(raw_key, 0, AES_KEY_SIZE_BYTES);
-@@ -38,6 +38,11 @@ CryptStateOCB2::CryptStateOCB2() : CryptState() {
- 	memset(decrypt_iv, 0, AES_BLOCK_SIZE);
- }
- 
-+CryptStateOCB2::~CryptStateOCB2() noexcept {
-+	EVP_CIPHER_CTX_free(enc_ctx);
-+	EVP_CIPHER_CTX_free(dec_ctx);
-+}
-+
- bool CryptStateOCB2::isValid() const {
- 	return bInit;
- }
-@@ -46,8 +51,6 @@ void CryptStateOCB2::genKey() {
- 	CryptographicRandom::fillBuffer(raw_key, AES_KEY_SIZE_BYTES);
- 	CryptographicRandom::fillBuffer(encrypt_iv, AES_BLOCK_SIZE);
- 	CryptographicRandom::fillBuffer(decrypt_iv, AES_BLOCK_SIZE);
--	AES_set_encrypt_key(raw_key, AES_KEY_SIZE_BITS, &encrypt_key);
--	AES_set_decrypt_key(raw_key, AES_KEY_SIZE_BITS, &decrypt_key);
- 	bInit = true;
- }
- 
-@@ -56,8 +59,6 @@ bool CryptStateOCB2::setKey(const std::string &rkey, const std::string &eiv, con
- 		memcpy(raw_key, rkey.data(), AES_KEY_SIZE_BYTES);
- 		memcpy(encrypt_iv, eiv.data(), AES_BLOCK_SIZE);
- 		memcpy(decrypt_iv, div.data(), AES_BLOCK_SIZE);
--		AES_set_encrypt_key(raw_key, AES_KEY_SIZE_BITS, &encrypt_key);
--		AES_set_decrypt_key(raw_key, AES_KEY_SIZE_BITS, &decrypt_key);
- 		bInit = true;
- 		return true;
- 	}
-@@ -256,10 +257,24 @@ static void inline ZERO(keyblock &block) {
- 		block[i] = 0;
- }
- 
--#define AESencrypt(src, dst, key) \
--	AES_encrypt(reinterpret_cast< const unsigned char * >(src), reinterpret_cast< unsigned char * >(dst), key);
--#define AESdecrypt(src, dst, key) \
--	AES_decrypt(reinterpret_cast< const unsigned char * >(src), reinterpret_cast< unsigned char * >(dst), key);
-+#define AESencrypt(src, dst, key)                                                                 \
-+	{                                                                                             \
-+		int outlen = 0;                                                                           \
-+		EVP_EncryptInit_ex(enc_ctx, EVP_aes_128_ecb(), NULL, key, NULL);                          \
-+		EVP_CIPHER_CTX_set_padding(enc_ctx, 0);                                                   \
-+		EVP_EncryptUpdate(enc_ctx, reinterpret_cast< unsigned char * >(dst), &outlen,             \
-+						  reinterpret_cast< const unsigned char * >(src), AES_BLOCK_SIZE);        \
-+		EVP_EncryptFinal_ex(enc_ctx, reinterpret_cast< unsigned char * >(dst + outlen), &outlen); \
-+	}
-+#define AESdecrypt(src, dst, key)                                                                 \
-+	{                                                                                             \
-+		int outlen = 0;                                                                           \
-+		EVP_DecryptInit_ex(dec_ctx, EVP_aes_128_ecb(), NULL, key, NULL);                          \
-+		EVP_CIPHER_CTX_set_padding(dec_ctx, 0);                                                   \
-+		EVP_DecryptUpdate(dec_ctx, reinterpret_cast< unsigned char * >(dst), &outlen,             \
-+						  reinterpret_cast< const unsigned char * >(src), AES_BLOCK_SIZE);        \
-+		EVP_DecryptFinal_ex(dec_ctx, reinterpret_cast< unsigned char * >(dst + outlen), &outlen); \
-+	}
- 
- bool CryptStateOCB2::ocb_encrypt(const unsigned char *plain, unsigned char *encrypted, unsigned int len,
- 								 const unsigned char *nonce, unsigned char *tag, bool modifyPlainOnXEXStarAttack) {
-@@ -267,7 +282,7 @@ bool CryptStateOCB2::ocb_encrypt(const unsigned char *plain, unsigned char *encr
- 	bool success = true;
- 
- 	// Initialize
--	AESencrypt(nonce, delta, &encrypt_key);
-+	AESencrypt(nonce, delta, raw_key);
- 	ZERO(checksum);
- 
- 	while (len > AES_BLOCK_SIZE) {
-@@ -299,7 +314,7 @@ bool CryptStateOCB2::ocb_encrypt(const unsigned char *plain, unsigned char *encr
- 		if (flipABit) {
- 			*reinterpret_cast< unsigned char * >(tmp) ^= 1;
- 		}
--		AESencrypt(tmp, tmp, &encrypt_key);
-+		AESencrypt(tmp, tmp, raw_key);
- 		XOR(reinterpret_cast< subblock * >(encrypted), delta, tmp);
- 		XOR(checksum, checksum, reinterpret_cast< const subblock * >(plain));
- 		if (flipABit) {
-@@ -315,7 +330,7 @@ bool CryptStateOCB2::ocb_encrypt(const unsigned char *plain, unsigned char *encr
- 	ZERO(tmp);
- 	tmp[BLOCKSIZE - 1] = SWAPPED(len * 8);
- 	XOR(tmp, tmp, delta);
--	AESencrypt(tmp, pad, &encrypt_key);
-+	AESencrypt(tmp, pad, raw_key);
- 	memcpy(tmp, plain, len);
- 	memcpy(reinterpret_cast< unsigned char * >(tmp) + len, reinterpret_cast< const unsigned char * >(pad) + len,
- 		   AES_BLOCK_SIZE - len);
-@@ -325,7 +340,7 @@ bool CryptStateOCB2::ocb_encrypt(const unsigned char *plain, unsigned char *encr
- 
- 	S3(delta);
- 	XOR(tmp, delta, checksum);
--	AESencrypt(tmp, tag, &encrypt_key);
-+	AESencrypt(tmp, tag, raw_key);
- 
- 	return success;
- }
-@@ -336,13 +351,13 @@ bool CryptStateOCB2::ocb_decrypt(const unsigned char *encrypted, unsigned char *
- 	bool success = true;
- 
- 	// Initialize
--	AESencrypt(nonce, delta, &encrypt_key);
-+	AESencrypt(nonce, delta, raw_key);
- 	ZERO(checksum);
- 
- 	while (len > AES_BLOCK_SIZE) {
- 		S2(delta);
- 		XOR(tmp, delta, reinterpret_cast< const subblock * >(encrypted));
--		AESdecrypt(tmp, tmp, &decrypt_key);
-+		AESdecrypt(tmp, tmp, raw_key);
- 		XOR(reinterpret_cast< subblock * >(plain), delta, tmp);
- 		XOR(checksum, checksum, reinterpret_cast< const subblock * >(plain));
- 		len -= AES_BLOCK_SIZE;
-@@ -354,7 +369,7 @@ bool CryptStateOCB2::ocb_decrypt(const unsigned char *encrypted, unsigned char *
- 	ZERO(tmp);
- 	tmp[BLOCKSIZE - 1] = SWAPPED(len * 8);
- 	XOR(tmp, tmp, delta);
--	AESencrypt(tmp, pad, &encrypt_key);
-+	AESencrypt(tmp, pad, raw_key);
- 	memset(tmp, 0, AES_BLOCK_SIZE);
- 	memcpy(tmp, encrypted, len);
- 	XOR(tmp, tmp, pad);
-@@ -372,7 +387,7 @@ bool CryptStateOCB2::ocb_decrypt(const unsigned char *encrypted, unsigned char *
- 
- 	S3(delta);
- 	XOR(tmp, delta, checksum);
--	AESencrypt(tmp, tag, &encrypt_key);
-+	AESencrypt(tmp, tag, raw_key);
- 
- 	return success;
- }
-@@ -381,5 +396,5 @@ bool CryptStateOCB2::ocb_decrypt(const unsigned char *encrypted, unsigned char *
- #undef SHIFTBITS
- #undef SWAPPED
- #undef HIGHBIT
--#undef AES_encrypt
--#undef AES_decrypt
-+#undef AESencrypt
-+#undef AESdecrypt
-diff --git a/src/crypto/CryptStateOCB2.h b/src/crypto/CryptStateOCB2.h
-index 53d4b4b6a..cc3f1c0bc 100644
---- a/src/crypto/CryptStateOCB2.h
-+++ b/src/crypto/CryptStateOCB2.h
-@@ -8,8 +8,9 @@
- 
- #include "CryptState.h"
- 
--#include <openssl/aes.h>
-+#include <openssl/evp.h>
- 
-+#define AES_BLOCK_SIZE 16
- #define AES_KEY_SIZE_BITS 128
- #define AES_KEY_SIZE_BYTES (AES_KEY_SIZE_BITS / 8)
- 
-@@ -17,7 +18,7 @@
- class CryptStateOCB2 : public CryptState {
- public:
- 	CryptStateOCB2();
--	~CryptStateOCB2(){};
-+	~CryptStateOCB2() noexcept override;
- 
- 	virtual bool isValid() const Q_DECL_OVERRIDE;
- 	virtual void genKey() Q_DECL_OVERRIDE;
-@@ -43,8 +44,8 @@ private:
- 	unsigned char decrypt_iv[AES_BLOCK_SIZE];
- 	unsigned char decrypt_history[0x100];
- 
--	AES_KEY encrypt_key;
--	AES_KEY decrypt_key;
-+	EVP_CIPHER_CTX *enc_ctx;
-+	EVP_CIPHER_CTX *dec_ctx;
- };
- 
- 
--- 
-2.38.4
-
diff --git a/pkgs/applications/networking/mumble/0002-FIX-positional-audio-Force-8-bytes-alignment-for-CCa.patch b/pkgs/applications/networking/mumble/0002-FIX-positional-audio-Force-8-bytes-alignment-for-CCa.patch
deleted file mode 100644
index eb8be6512968b..0000000000000
--- a/pkgs/applications/networking/mumble/0002-FIX-positional-audio-Force-8-bytes-alignment-for-CCa.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 13c051b36b387356815cff5d685bc628b74ba136 Mon Sep 17 00:00:00 2001
-From: Davide Beatrici <git@davidebeatrici.dev>
-Date: Thu, 1 Sep 2022 23:32:57 +0200
-Subject: [PATCH] FIX(positional-audio): Force 8 bytes alignment for
- CCameraAngles in GTAV plugin
-
-https://en.cppreference.com/w/cpp/language/alignas
-
-This fixes compilation when the implicit alignment is not 8 bytes.
-
-It can be the case with 32 bit targets.
----
- plugins/gtav/structs.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/plugins/gtav/structs.h b/plugins/gtav/structs.h
-index 2829dc11e..0e4f76eda 100644
---- a/plugins/gtav/structs.h
-+++ b/plugins/gtav/structs.h
-@@ -118,7 +118,7 @@ struct CCameraManagerAngles {
- 	ptr_t cameraAngles; // CCameraAngles *
- };
- 
--struct CCameraAngles {
-+struct alignas(8) CCameraAngles {
- 	uint8_t pad1[960];
- 	ptr_t playerAngles; // CPlayerAngles *
- 	uint8_t pad2[60];
--- 
-2.38.5
-
diff --git a/pkgs/applications/networking/mumble/default.nix b/pkgs/applications/networking/mumble/default.nix
index ab10d4add74d0..b72e218ddcfb7 100644
--- a/pkgs/applications/networking/mumble/default.nix
+++ b/pkgs/applications/networking/mumble/default.nix
@@ -19,17 +19,6 @@ let
     pname = overrides.type;
     version = source.version;
 
-    patches = [
-      ./0001-BUILD-crypto-Migrate-to-OpenSSL-3.0-compatible-API.patch
-      # fix crash caused by openssl3 thread unsafe evp implementation
-      # see https://github.com/mumble-voip/mumble/issues/5361#issuecomment-1173001440
-      (fetchpatch {
-        url = "https://github.com/mumble-voip/mumble/commit/f8d47db318f302f5a7d343f15c9936c7030c49c4.patch";
-        hash = "sha256-xk8vBrPwvQxHCY8I6WQJAyaBGHmlH9NCixweP6FyakU=";
-      })
-      ./0002-FIX-positional-audio-Force-8-bytes-alignment-for-CCa.patch
-    ];
-
     nativeBuildInputs = [ cmake pkg-config python3 qt5.wrapQtAppsHook qt5.qttools ]
       ++ (overrides.nativeBuildInputs or [ ]);
 
@@ -72,11 +61,11 @@ let
       "-D bundled-celt=ON"
       "-D bundled-opus=OFF"
       "-D bundled-speex=OFF"
-      "-D bundled-rnnoise=OFF"
       "-D bundle-qt-translations=OFF"
       "-D update=OFF"
       "-D overlay-xcompile=OFF"
       "-D oss=OFF"
+      "-D warnings-as-errors=OFF" # conversion error workaround
     ] ++ lib.optional (!speechdSupport) "-D speechd=OFF"
       ++ lib.optional (!pulseSupport) "-D pulseaudio=OFF"
       ++ lib.optional (!pipewireSupport) "-D pipewire=OFF"
@@ -107,27 +96,16 @@ let
   } source;
 
   source = rec {
-    version = "1.4.287";
+    version = "1.5.634";
 
     # Needs submodules
     src = fetchFromGitHub {
       owner = "mumble-voip";
       repo = "mumble";
-      rev = "5d808e287e99b402b724e411a7a0848e00956a24";
-      sha256 = "sha256-SYsGCuj3HeyAQRUecGLaRdJR9Rm7lbaM54spY/zx0jU=";
+      rev = "v${version}";
+      sha256 = "sha256-d9XmXHq264rTT80zphYcKLxS+AyUhjb19D3DuBJvMI4=";
       fetchSubmodules = true;
     };
-
-    patches = [
-      # fixes 'static assertion failed: static_assert(sizeof(CCameraAngles) == 0x408, "");'
-      # when compiling pkgsi686Linux.mumble, which is a dependency of x64 mumble_overlay
-      # https://github.com/mumble-voip/mumble/pull/5850
-      # Remove with next version update
-      (fetchpatch {
-        url = "https://github.com/mumble-voip/mumble/commit/13c051b36b387356815cff5d685bc628b74ba136.patch";
-        hash = "sha256-Rq8fb6NFd4DCNWm6OOMYIP7tBllufmQcB5CSxPU4qqg=";
-      })
-    ];
   };
 in {
   mumble  = client source;
diff --git a/pkgs/applications/networking/mumble/overlay.nix b/pkgs/applications/networking/mumble/overlay.nix
index 72474d391477c..40c0d3e4c3ea5 100644
--- a/pkgs/applications/networking/mumble/overlay.nix
+++ b/pkgs/applications/networking/mumble/overlay.nix
@@ -19,7 +19,7 @@ in stdenv.mkDerivation {
       ln -s ${mumble_i686}/lib/libmumble.so.1 $out/lib32/
     ''}
 
-    install -Dm755 scripts/mumble-overlay $out/bin/mumble-overlay
+    install -Dm755 auxiliary_files/run_scripts/mumble-overlay.in $out/bin/mumble-overlay
     sed -i "s,/usr/lib,$out/lib,g" $out/bin/mumble-overlay
     sed -i '2iPATH="${binPath}:$PATH"' $out/bin/mumble-overlay
   '';
diff --git a/pkgs/applications/networking/n8n/default.nix b/pkgs/applications/networking/n8n/default.nix
index 2fb3c47aa8f7c..66b5688ddb067 100644
--- a/pkgs/applications/networking/n8n/default.nix
+++ b/pkgs/applications/networking/n8n/default.nix
@@ -46,7 +46,7 @@ nodePackages.n8n.override {
   };
 
   meta = with lib; {
-    description = "Free and source-available fair-code licensed workflow automation tool. Easily automate tasks across different services.";
+    description = "Free and source-available fair-code licensed workflow automation tool. Easily automate tasks across different services";
     maintainers = with maintainers; [ freezeboy k900 ];
     license = licenses.sustainableUse;
     mainProgram = "n8n";
diff --git a/pkgs/applications/networking/nali/default.nix b/pkgs/applications/networking/nali/default.nix
index be8b2c5ac1849..1eab5e5a97bc6 100644
--- a/pkgs/applications/networking/nali/default.nix
+++ b/pkgs/applications/networking/nali/default.nix
@@ -27,7 +27,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "An offline tool for querying IP geographic information and CDN provider";
+    description = "Offline tool for querying IP geographic information and CDN provider";
     homepage = "https://github.com/zu1k/nali";
     license = licenses.mit;
     maintainers = with maintainers; [ diffumist xyenon ];
diff --git a/pkgs/applications/networking/ncgopher/default.nix b/pkgs/applications/networking/ncgopher/default.nix
index 5bc7da276caf3..6f7dcc5120754 100644
--- a/pkgs/applications/networking/ncgopher/default.nix
+++ b/pkgs/applications/networking/ncgopher/default.nix
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A gopher and gemini client for the modern internet";
+    description = "Gopher and gemini client for the modern internet";
     homepage = "https://github.com/jansc/ncgopher";
     license = licenses.bsd2;
     maintainers = with maintainers; [ shamilton ];
diff --git a/pkgs/applications/networking/ndppd/default.nix b/pkgs/applications/networking/ndppd/default.nix
index b52f312e03fe3..e5ea298a8dc99 100644
--- a/pkgs/applications/networking/ndppd/default.nix
+++ b/pkgs/applications/networking/ndppd/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A daemon that proxies NDP (Neighbor Discovery Protocol) messages between interfaces";
+    description = "Daemon that proxies NDP (Neighbor Discovery Protocol) messages between interfaces";
     homepage = "https://github.com/DanielAdolfsson/ndppd";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/newsreaders/liferea/default.nix b/pkgs/applications/networking/newsreaders/liferea/default.nix
index 8b55f12732aac..7bed268a477cc 100644
--- a/pkgs/applications/networking/newsreaders/liferea/default.nix
+++ b/pkgs/applications/networking/newsreaders/liferea/default.nix
@@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A GTK-based news feed aggregator";
+    description = "GTK-based news feed aggregator";
     homepage = "http://lzone.de/liferea/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ romildo yayayayaka ];
diff --git a/pkgs/applications/networking/newsreaders/pan/default.nix b/pkgs/applications/networking/newsreaders/pan/default.nix
index 3a8418e48bda5..1f01b52ee6502 100644
--- a/pkgs/applications/networking/newsreaders/pan/default.nix
+++ b/pkgs/applications/networking/newsreaders/pan/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A GTK-based Usenet newsreader good at both text and binaries";
+    description = "GTK-based Usenet newsreader good at both text and binaries";
     mainProgram = "pan";
     homepage = "http://pan.rebelbase.com/";
     maintainers = [ maintainers.eelco ];
diff --git a/pkgs/applications/networking/newsreaders/quiterss/default.nix b/pkgs/applications/networking/newsreaders/quiterss/default.nix
index 176ce43af5f75..f9266db68917b 100644
--- a/pkgs/applications/networking/newsreaders/quiterss/default.nix
+++ b/pkgs/applications/networking/newsreaders/quiterss/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ qtbase qttools qtwebkit sqlite.dev ];
 
   meta = with lib; {
-    description = "A Qt-based RSS/Atom news feed reader";
+    description = "Qt-based RSS/Atom news feed reader";
     longDescription = ''
       QuiteRSS is a open-source cross-platform RSS/Atom news feeds reader
       written on Qt/C++
diff --git a/pkgs/applications/networking/newsreaders/slrn/default.nix b/pkgs/applications/networking/newsreaders/slrn/default.nix
index f105b5059b0b8..9819f2a9ceb4c 100644
--- a/pkgs/applications/networking/newsreaders/slrn/default.nix
+++ b/pkgs/applications/networking/newsreaders/slrn/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ slang ncurses openssl ];
 
   meta = with lib; {
-    description = "The slrn (S-Lang read news) newsreader";
+    description = "Slrn (S-Lang read news) newsreader";
     homepage = "https://slrn.sourceforge.net/index.html";
     license = licenses.gpl2;
     platforms = with platforms; linux;
diff --git a/pkgs/applications/networking/nextdns/default.nix b/pkgs/applications/networking/nextdns/default.nix
index 0661a3f9db2c9..560a134a9dd46 100644
--- a/pkgs/applications/networking/nextdns/default.nix
+++ b/pkgs/applications/networking/nextdns/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "nextdns";
-  version = "1.43.3";
+  version = "1.43.5";
 
   src = fetchFromGitHub {
     owner = "nextdns";
     repo = "nextdns";
     rev = "v${version}";
-    sha256 = "sha256-sltTvjEfUZsmXDEyN+Zyck7oqZ+Xu8xScNnitt/0eic=";
+    sha256 = "sha256-XQ3dFv+JZ8x/SpaPhrauO8EfcpGrm9vbmQ7LLY1dQuE=";
   };
 
   vendorHash = "sha256-U5LJF1RX0ZS0PhjQTZKXrJo89WPfSZaVbgskWcYNlJY=";
diff --git a/pkgs/applications/networking/nym/default.nix b/pkgs/applications/networking/nym/default.nix
index fcd7893e7f270..fc2095caaf21e 100644
--- a/pkgs/applications/networking/nym/default.nix
+++ b/pkgs/applications/networking/nym/default.nix
@@ -72,7 +72,7 @@ rustPlatform.buildRustPackage {
   };
 
   meta = with lib; {
-    description = "A mixnet providing IP-level privacy";
+    description = "Mixnet providing IP-level privacy";
     longDescription = ''
       Nym routes IP packets through other participating nodes to hide their source and destination.
       In contrast with Tor, it prevents timing attacks at the cost of latency.
diff --git a/pkgs/applications/networking/opsdroid/default.nix b/pkgs/applications/networking/opsdroid/default.nix
index 45569fefb28fa..bded5d6d2b356 100644
--- a/pkgs/applications/networking/opsdroid/default.nix
+++ b/pkgs/applications/networking/opsdroid/default.nix
@@ -27,7 +27,7 @@ python3Packages.buildPythonPackage rec {
   passthru.python = python3Packages.python;
 
   meta = with lib; {
-    description = "An open source chat-ops bot framework";
+    description = "Open source chat-ops bot framework";
     homepage = "https://opsdroid.dev";
     maintainers = with maintainers; [ globin willibutz ];
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/ostinato/default.nix b/pkgs/applications/networking/ostinato/default.nix
index b9a5dce35f6fe..ef67028087812 100644
--- a/pkgs/applications/networking/ostinato/default.nix
+++ b/pkgs/applications/networking/ostinato/default.nix
@@ -65,7 +65,7 @@ mkDerivation rec {
   enableParallelBuilding = false;
 
   meta = with lib; {
-    description = "A packet traffic generator and analyzer";
+    description = "Packet traffic generator and analyzer";
     homepage    = "https://ostinato.org/";
     license     = licenses.gpl3Plus;
     maintainers = with maintainers; [ rick68 ];
diff --git a/pkgs/applications/networking/owamp/default.nix b/pkgs/applications/networking/owamp/default.nix
index fb3660ace2dc9..29510254922e1 100644
--- a/pkgs/applications/networking/owamp/default.nix
+++ b/pkgs/applications/networking/owamp/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://software.internet2.edu/owamp/";
-    description = "A tool for performing one-way active measurements";
+    description = "Tool for performing one-way active measurements";
     platforms = platforms.linux;
     maintainers = [maintainers.teto];
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix b/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix
index f86eefe668f9f..5386c6636add0 100644
--- a/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix
+++ b/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix
@@ -44,7 +44,7 @@ mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A cross-platform program that uses the Direct Connect and ADC protocols";
+    description = "Cross-platform program that uses the Direct Connect and ADC protocols";
     homepage = "https://github.com/eiskaltdcpp/eiskaltdcpp";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/p2p/flood-for-transmission/default.nix b/pkgs/applications/networking/p2p/flood-for-transmission/default.nix
index c4017bc61bdbd..c3f4c5406a55b 100644
--- a/pkgs/applications/networking/p2p/flood-for-transmission/default.nix
+++ b/pkgs/applications/networking/p2p/flood-for-transmission/default.nix
@@ -26,7 +26,7 @@ buildNpmPackage rec {
   '';
 
   meta = with lib; {
-    description = "A Flood clone for Transmission";
+    description = "Flood clone for Transmission";
     homepage = "https://github.com/johman10/flood-for-transmission";
     maintainers = with maintainers; [ al3xtjames ];
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/networking/p2p/flood/default.nix b/pkgs/applications/networking/p2p/flood/default.nix
index 85ef8b2130bba..ada2a69e69472 100644
--- a/pkgs/applications/networking/p2p/flood/default.nix
+++ b/pkgs/applications/networking/p2p/flood/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildNpmPackage
 , fetchFromGitHub
+, nixosTests
 }:
 
 buildNpmPackage rec {
@@ -16,6 +17,10 @@ buildNpmPackage rec {
 
   npmDepsHash = "sha256-md76I7W5QQvfbOmk5ODssMtJAVOj8nvaJ2PakEZ8WUA=";
 
+  passthru.tests = {
+    inherit (nixosTests) flood;
+  };
+
   meta = with lib; {
     description = "Modern web UI for various torrent clients with a Node.js backend and React frontend";
     homepage = "https://flood.js.org";
diff --git a/pkgs/applications/networking/p2p/frostwire/default.nix b/pkgs/applications/networking/p2p/frostwire/default.nix
deleted file mode 100644
index 9f4261e07c810..0000000000000
--- a/pkgs/applications/networking/p2p/frostwire/default.nix
+++ /dev/null
@@ -1,99 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, gradle_6, perl, jre, makeWrapper, makeDesktopItem, mplayer }:
-
-let
-  version = "6.6.7-build-529";
-
-  src = fetchFromGitHub {
-    owner = "frostwire";
-    repo = "frostwire";
-    rev = "frostwire-desktop-${version}";
-    sha256 = "03wdj2kr8akzx8m1scvg98132zbaxh81qjdsxn2645b3gahjwz0m";
-  };
-
-  desktopItem = makeDesktopItem {
-    name = "frostwire";
-    desktopName = "FrostWire";
-    genericName = "P2P Bittorrent client";
-    exec = "frostwire";
-    icon = "frostwire";
-    comment = "Search and explore all kinds of files on the Bittorrent network";
-    categories = [ "Network" "FileTransfer" "P2P" ];
-  };
-
-  # fake build to pre-download deps into fixed-output derivation
-  deps = stdenv.mkDerivation {
-    pname = "frostwire-desktop-deps";
-    inherit version src;
-    buildInputs = [ gradle_6 perl ];
-    buildPhase = ''
-      export GRADLE_USER_HOME=$(mktemp -d)
-      ( cd desktop
-        gradle --no-daemon build
-      )
-    '';
-    # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar)
-    installPhase = ''
-      find $GRADLE_USER_HOME -type f -regex '.*\.\(jar\|pom\)' \
-        | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \
-        | sh
-    '';
-    outputHashAlgo = "sha256";
-    outputHashMode = "recursive";
-    outputHash = "sha256-r6YSrbSJbM3063JrX4tCVKFrJxTaLN4Trc+33jzpwcE=";
-  };
-
-in stdenv.mkDerivation {
-  pname = "frostwire-desktop";
-  inherit version src;
-
-  nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ gradle_6 ];
-
-  buildPhase = ''
-    export GRADLE_USER_HOME=$(mktemp -d)
-    ( cd desktop
-
-      # disable auto-update (anyway it won't update frostwire installed in nix store)
-      substituteInPlace src/com/frostwire/gui/updates/UpdateManager.java \
-        --replace 'um.checkForUpdates' '// um.checkForUpdates'
-
-      # fix path to mplayer
-      substituteInPlace src/com/frostwire/gui/player/MediaPlayerLinux.java \
-        --replace /usr/bin/mplayer ${mplayer}/bin/mplayer
-
-      substituteInPlace build.gradle \
-        --replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }'
-      gradle --offline --no-daemon build
-    )
-  '';
-
-  installPhase = ''
-    mkdir -p $out/lib $out/share/java
-
-    cp desktop/build/libs/frostwire.jar $out/share/java/frostwire.jar
-
-    cp ${ { x86_64-darwin = "desktop/lib/native/*.dylib";
-            x86_64-linux  = "desktop/lib/native/lib{jlibtorrent,SystemUtilities}.so";
-            i686-linux    = "desktop/lib/native/lib{jlibtorrent,SystemUtilities}X86.so";
-          }.${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}")
-        } $out/lib
-
-    cp -dpR ${desktopItem}/share $out
-
-    makeWrapper ${jre}/bin/java $out/bin/frostwire \
-      --add-flags "-Djava.library.path=$out/lib -jar $out/share/java/frostwire.jar"
-  '';
-
-  meta = with lib; {
-    homepage = "https://www.frostwire.com/";
-    description = "BitTorrent Client and Cloud File Downloader";
-    sourceProvenance = with sourceTypes; [
-      fromSource
-      binaryBytecode  # deps
-    ];
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ gavin ];
-    platforms = [ "x86_64-darwin" "x86_64-linux" "i686-linux" ];
-    broken = true; # at 2022-09-30, errors with changing hash.
-  };
-}
diff --git a/pkgs/applications/networking/p2p/gnunet/default.nix b/pkgs/applications/networking/p2p/gnunet/default.nix
index 3f5e2f7c58a23..43f0b97c9ff08 100644
--- a/pkgs/applications/networking/p2p/gnunet/default.nix
+++ b/pkgs/applications/networking/p2p/gnunet/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnunet";
-  version = "0.21.1";
+  version = "0.21.2";
 
   src = fetchurl {
     url = "mirror://gnu/gnunet/gnunet-${version}.tar.gz";
-    hash = "sha256-k+aLPqynCHJz49doX+auOLLoBV5MnnANNg3UBVJJeFw=";
+    hash = "sha256-jCNRJo6bi6KtKIuLM3zjmfecGOP/2WCAP07V3n3an6E=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/networking/p2p/jesec-rtorrent/default.nix b/pkgs/applications/networking/p2p/jesec-rtorrent/default.nix
index 94c1994bd0809..6308235998cfe 100644
--- a/pkgs/applications/networking/p2p/jesec-rtorrent/default.nix
+++ b/pkgs/applications/networking/p2p/jesec-rtorrent/default.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An ncurses client for libtorrent, ideal for use with screen, tmux, or dtach (jesec's fork)";
+    description = "Ncurses client for libtorrent, ideal for use with screen, tmux, or dtach (jesec's fork)";
     homepage = "https://github.com/jesec/rtorrent";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ winter AndersonTorres ];
diff --git a/pkgs/applications/networking/p2p/jesec-rtorrent/libtorrent.nix b/pkgs/applications/networking/p2p/jesec-rtorrent/libtorrent.nix
index 7acfee3671dac..6329ce94d5b18 100644
--- a/pkgs/applications/networking/p2p/jesec-rtorrent/libtorrent.nix
+++ b/pkgs/applications/networking/p2p/jesec-rtorrent/libtorrent.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/jesec/libtorrent";
-    description = "A BitTorrent library written in C++ for *nix, with focus on high performance and good code (jesec's fork)";
+    description = "BitTorrent library written in C++ for *nix, with focus on high performance and good code (jesec's fork)";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ winter AndersonTorres ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/p2p/magnetico/default.nix b/pkgs/applications/networking/p2p/magnetico/default.nix
index 6c09ae892e27a..f3579c494ba80 100644
--- a/pkgs/applications/networking/p2p/magnetico/default.nix
+++ b/pkgs/applications/networking/p2p/magnetico/default.nix
@@ -1,10 +1,12 @@
 { lib
 , fetchFromGitHub
+, fetchpatch
 , nixosTests
 , buildGoModule
+, sqlite
 }:
 
-buildGoModule rec {
+buildGoModule {
   pname = "magnetico";
   version = "unstable-2022-08-10";
 
@@ -12,10 +14,20 @@ buildGoModule rec {
     owner  = "ireun";
     repo   = "magnetico";
     rev    = "828e230d3b3c0759d3274e27f5a7b70400f4d6ea";
-    sha256 = "sha256-V1pBzillWTk9iuHAhFztxYaq4uLL3U3HYvedGk6ffbk=";
+    hash   = "sha256-V1pBzillWTk9iuHAhFztxYaq4uLL3U3HYvedGk6ffbk=";
   };
 
-  vendorHash = "sha256-ngYkTtBEZSyYYnfBHi0VrotwKGvMOiowbrwigJnjsuU=";
+  patches = [
+    # https://github.com/ireun/magnetico/pull/15
+    (fetchpatch {
+      url = "https://github.com/ireun/magnetico/commit/90db34991aa44af9b79ab4710c638607c6211c1c.patch";
+      hash = "sha256-wC9lVQqfngQ5AaRgb4TtoWSgbQ2iSHeQ2UBDUyWjMK8=";
+     })
+  ];
+
+  vendorHash = "sha256-JDrBXjnQAcWp8gKvnm+q1F5oV+FozKUvhHK/Me/Cyj8=";
+
+  buildInputs = [ sqlite ];
 
   buildPhase = ''
     runHook preBuild
@@ -26,18 +38,16 @@ buildGoModule rec {
   '';
 
   checkPhase = ''
-    runHook preBuild
+    runHook preCheck
 
     make test
 
-    runHook postBuild
+    runHook postCheck
   '';
 
   passthru.tests = { inherit (nixosTests) magnetico; };
 
   meta = with lib; {
-    # Build fails with Go >=1.21, couldn't be fixed by updating module dependencies.
-    broken = true;
     description  = "Autonomous (self-hosted) BitTorrent DHT search engine suite";
     homepage     = "https://github.com/ireun/magnetico";
     license      = licenses.agpl3Only;
diff --git a/pkgs/applications/networking/p2p/pyrosimple/default.nix b/pkgs/applications/networking/p2p/pyrosimple/default.nix
index 866727ba4349e..c08f6ae4b64b1 100644
--- a/pkgs/applications/networking/p2p/pyrosimple/default.nix
+++ b/pkgs/applications/networking/p2p/pyrosimple/default.nix
@@ -60,7 +60,7 @@ python3.pkgs.buildPythonApplication rec {
   };
 
   meta = with lib; {
-    description = "A rTorrent client";
+    description = "RTorrent client";
     homepage = "https://kannibalox.github.io/pyrosimple/";
     changelog = "https://github.com/kannibalox/pyrosimple/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/networking/p2p/qbittorrent/default.nix b/pkgs/applications/networking/p2p/qbittorrent/default.nix
index 07c4ca3392f97..1ec2cbac9ce45 100644
--- a/pkgs/applications/networking/p2p/qbittorrent/default.nix
+++ b/pkgs/applications/networking/p2p/qbittorrent/default.nix
@@ -30,13 +30,13 @@ stdenv.mkDerivation rec {
   pname = "qbittorrent"
     + lib.optionalString (guiSupport && qtVersion == "5") "-qt5"
     + lib.optionalString (!guiSupport) "-nox";
-  version = "4.6.4";
+  version = "4.6.5";
 
   src = fetchFromGitHub {
     owner = "qbittorrent";
     repo = "qBittorrent";
     rev = "release-${version}";
-    hash = "sha256-98iE+VM32eq56eB4B0KNrj8+DbmRSsyAb7eMlprSsjs=";
+    hash = "sha256-umJObvPv4VjdAZdQEuhqFCRvi1eZQViu1IO88oeTTq8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/p2p/rakshasa-rtorrent/default.nix b/pkgs/applications/networking/p2p/rakshasa-rtorrent/default.nix
index 994c5a4b11d49..bc3989f1ee67c 100644
--- a/pkgs/applications/networking/p2p/rakshasa-rtorrent/default.nix
+++ b/pkgs/applications/networking/p2p/rakshasa-rtorrent/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://rakshasa.github.io/rtorrent/";
-    description = "An ncurses client for libtorrent, ideal for use with screen, tmux, or dtach";
+    description = "Ncurses client for libtorrent, ideal for use with screen, tmux, or dtach";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ebzzry codyopel ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/networking/p2p/rakshasa-rtorrent/libtorrent.nix b/pkgs/applications/networking/p2p/rakshasa-rtorrent/libtorrent.nix
index fff4cbb36cf62..7217026dc8053 100644
--- a/pkgs/applications/networking/p2p/rakshasa-rtorrent/libtorrent.nix
+++ b/pkgs/applications/networking/p2p/rakshasa-rtorrent/libtorrent.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/rakshasa/libtorrent";
-    description = "A BitTorrent library written in C++ for *nix, with focus on high performance and good code";
+    description = "BitTorrent library written in C++ for *nix, with focus on high performance and good code";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ebzzry codyopel ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/networking/p2p/retroshare/default.nix b/pkgs/applications/networking/p2p/retroshare/default.nix
index 1f4edd2e49dc8..741cca91543ac 100644
--- a/pkgs/applications/networking/p2p/retroshare/default.nix
+++ b/pkgs/applications/networking/p2p/retroshare/default.nix
@@ -54,7 +54,7 @@ mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "Decentralized peer to peer chat application.";
+    description = "Decentralized peer to peer chat application";
     homepage = "https://retroshare.cc/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/p2p/storrent/default.nix b/pkgs/applications/networking/p2p/storrent/default.nix
index a4dc0b459cfd8..57ea126a16357 100644
--- a/pkgs/applications/networking/p2p/storrent/default.nix
+++ b/pkgs/applications/networking/p2p/storrent/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/jech/storrent";
-    description = "An implementation of the BitTorrent protocol that is optimised for streaming media";
+    description = "Implementation of the BitTorrent protocol that is optimised for streaming media";
     mainProgram = "storrent";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/p2p/transmission/4.nix b/pkgs/applications/networking/p2p/transmission/4.nix
index ebd8260776b98..7c5e9b3651868 100644
--- a/pkgs/applications/networking/p2p/transmission/4.nix
+++ b/pkgs/applications/networking/p2p/transmission/4.nix
@@ -59,13 +59,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "transmission";
-  version = "4.0.5";
+  version = "4.0.6";
 
   src = fetchFromGitHub {
     owner = "transmission";
     repo = "transmission";
     rev = finalAttrs.version;
-    hash = "sha256-gd1LGAhMuSyC/19wxkoE2mqVozjGPfupIPGojKY0Hn4=";
+    hash = "sha256-KBXvBFgrJ3njIoXrxHbHHLsiocwfd7Eba/GNI8uZA38=";
     fetchSubmodules = true;
   };
 
@@ -162,7 +162,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A fast, easy and free BitTorrent client";
+    description = "Fast, easy and free BitTorrent client";
     mainProgram = if (enableQt5 || enableQt6) then "transmission-qt" else if enableGTK3 then "transmission-gtk" else "transmission-cli";
     longDescription = ''
       Transmission is a BitTorrent client which features a simple interface
diff --git a/pkgs/applications/networking/p2p/transmission/default.nix b/pkgs/applications/networking/p2p/transmission/default.nix
index 2804f76f8ef96..39c160c771d8b 100644
--- a/pkgs/applications/networking/p2p/transmission/default.nix
+++ b/pkgs/applications/networking/p2p/transmission/default.nix
@@ -46,10 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   patches = [
     # fix build with openssl 3.0
-    (fetchurl {
-      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/net-p2p/transmission/files/transmission-3.00-openssl-3.patch";
-      hash = "sha256-peVrkGck8AfbC9uYNfv1CIu1alIewpca7A6kRXjVlVs=";
-    })
+    ./transmission-3.00-openssl-3.patch
   ];
 
   outputs = [ "out" "apparmor" ];
@@ -125,7 +122,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = {
-    description = "A fast, easy and free BitTorrent client";
+    description = "Fast, easy and free BitTorrent client";
     mainProgram = if enableQt then "transmission-qt" else if enableGTK3 then "transmission-gtk" else "transmission-cli";
     longDescription = ''
       Transmission is a BitTorrent client which features a simple interface
diff --git a/pkgs/applications/networking/p2p/transmission/transmission-3.00-openssl-3.patch b/pkgs/applications/networking/p2p/transmission/transmission-3.00-openssl-3.patch
new file mode 100644
index 0000000000000..f288298cbf3d4
--- /dev/null
+++ b/pkgs/applications/networking/p2p/transmission/transmission-3.00-openssl-3.patch
@@ -0,0 +1,37 @@
+From 6ee128b95bacaff20746538dc97c2b8e2b9fcc29 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Sun, 15 May 2022 10:54:38 -0400
+Subject: [PATCH] openssl: load "legacy" provider for RC4
+
+---
+ libtransmission/crypto-utils-openssl.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/libtransmission/crypto-utils-openssl.c b/libtransmission/crypto-utils-openssl.c
+index 45fd71913..14d680654 100644
+--- a/libtransmission/crypto-utils-openssl.c
++++ b/libtransmission/crypto-utils-openssl.c
+@@ -20,6 +20,9 @@
+ #include <openssl/rand.h>
+ #include <openssl/ssl.h>
+ #include <openssl/x509.h>
++#if OPENSSL_VERSION_MAJOR >= 3
++#include <openssl/provider.h>
++#endif
+ 
+ #include "transmission.h"
+ #include "crypto-utils.h"
+@@ -184,6 +187,10 @@ static void openssl_evp_cipher_context_free(EVP_CIPHER_CTX* handle)
+ 
+ tr_rc4_ctx_t tr_rc4_new(void)
+ {
++#if OPENSSL_VERSION_MAJOR >= 3
++    OSSL_PROVIDER_load(NULL, "default");
++    OSSL_PROVIDER_load(NULL, "legacy");
++#endif
+     EVP_CIPHER_CTX* handle = EVP_CIPHER_CTX_new();
+ 
+     if (check_result(EVP_CipherInit_ex(handle, EVP_rc4(), NULL, NULL, NULL, -1)))
+-- 
+2.35.1
+
diff --git a/pkgs/applications/networking/p2p/zeronet-conservancy/default.nix b/pkgs/applications/networking/p2p/zeronet-conservancy/default.nix
index 71799de37fc39..284578460a040 100644
--- a/pkgs/applications/networking/p2p/zeronet-conservancy/default.nix
+++ b/pkgs/applications/networking/p2p/zeronet-conservancy/default.nix
@@ -46,7 +46,7 @@ python3Packages.buildPythonApplication rec {
   };
 
   meta = with lib; {
-    description = "A fork/continuation of the ZeroNet project";
+    description = "Fork/continuation of the ZeroNet project";
     mainProgram = "zeronet";
     longDescription = ''
       zeronet-conservancy is a fork/continuation of ZeroNet project (that has
diff --git a/pkgs/applications/networking/pcloud/default.nix b/pkgs/applications/networking/pcloud/default.nix
index d5db07a819aca..08cdc3498811d 100644
--- a/pkgs/applications/networking/pcloud/default.nix
+++ b/pkgs/applications/networking/pcloud/default.nix
@@ -38,13 +38,13 @@
 
 let
   pname = "pcloud";
-  version = "1.14.5";
-  code = "XZ0AMJ0ZdrENNeVMNI4Tz3lO1nxr577ryOMV";
+  version = "1.14.6";
+  code = "XZQDbs0Z4ET1VL0SIUuzr5ewR9LYuf6ssLRk";
 
   # Archive link's codes: https://www.pcloud.com/release-notes/linux.html
   src = fetchzip {
     url = "https://api.pcloud.com/getpubzip?code=${code}&filename=pcloud-${version}.zip";
-    hash = "sha256-a577iWPrke3EizG03m0+hjSoPzA4wDai/QMX2Zl7MF0=";
+    hash = "sha256-3HUVIDxeq7svzeWyZrxlE4TjZ8lOwT8bYgyRFRzGnmU=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/applications/networking/pjsip/default.nix b/pkgs/applications/networking/pjsip/default.nix
index 124a1d40f3b31..fe0e032dd2247 100644
--- a/pkgs/applications/networking/pjsip/default.nix
+++ b/pkgs/applications/networking/pjsip/default.nix
@@ -115,7 +115,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A multimedia communication library written in C, implementing standard based protocols such as SIP, SDP, RTP, STUN, TURN, and ICE";
+    description = "Multimedia communication library written in C, implementing standard based protocols such as SIP, SDP, RTP, STUN, TURN, and ICE";
     homepage = "https://pjsip.org/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ olynch ];
diff --git a/pkgs/applications/networking/powerdns-admin/default.nix b/pkgs/applications/networking/powerdns-admin/default.nix
index 07a155e15e4c6..6028f0e1a1ae9 100644
--- a/pkgs/applications/networking/powerdns-admin/default.nix
+++ b/pkgs/applications/networking/powerdns-admin/default.nix
@@ -129,7 +129,7 @@ in stdenv.mkDerivation {
   };
 
   meta = with lib; {
-    description = "A PowerDNS web interface with advanced features";
+    description = "PowerDNS web interface with advanced features";
     mainProgram = "powerdns-admin";
     homepage = "https://github.com/PowerDNS-Admin/PowerDNS-Admin";
     license = licenses.mit;
diff --git a/pkgs/applications/networking/protonmail-bridge/default.nix b/pkgs/applications/networking/protonmail-bridge/default.nix
index f811ce742bdfd..2b27eef11c32f 100644
--- a/pkgs/applications/networking/protonmail-bridge/default.nix
+++ b/pkgs/applications/networking/protonmail-bridge/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "protonmail-bridge";
-  version = "3.11.0";
+  version = "3.11.1";
 
   src = fetchFromGitHub {
     owner = "ProtonMail";
     repo = "proton-bridge";
     rev = "v${version}";
-    hash = "sha256-V2PevO9jhtKMrFVlviKPwcApP4ZTRbCLVoPx0gGNosU=";
+    hash = "sha256-PM162vj1Q336fM5z6KoBgtujz9UgESIxUW3Lw8AEYTw=";
   };
 
   vendorHash = "sha256-qi6ME74pJH/wgDh0xp/Rsc9hPd3v3L/M8pBQJzNieK8=";
diff --git a/pkgs/applications/networking/qv2ray/default.nix b/pkgs/applications/networking/qv2ray/default.nix
index af1fafea5e940..01e471c97de96 100644
--- a/pkgs/applications/networking/qv2ray/default.nix
+++ b/pkgs/applications/networking/qv2ray/default.nix
@@ -70,7 +70,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An GUI frontend to v2ray";
+    description = "GUI frontend to v2ray";
     homepage = "https://github.com/Qv2ray/Qv2ray";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ poscat rewine ];
diff --git a/pkgs/applications/networking/r53-ddns/default.nix b/pkgs/applications/networking/r53-ddns/default.nix
index 8db9ddacef726..5e83a3793b72b 100644
--- a/pkgs/applications/networking/r53-ddns/default.nix
+++ b/pkgs/applications/networking/r53-ddns/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   meta = with lib; {
     license = licenses.mit;
     homepage = "https://github.com/fleaz/r53-ddns";
-    description = "A DIY DynDNS tool based on Route53";
+    description = "DIY DynDNS tool based on Route53";
     maintainers = with maintainers; [ fleaz ];
     mainProgram = "r53-ddns";
   };
diff --git a/pkgs/applications/networking/remote/citrix-workspace/sources.nix b/pkgs/applications/networking/remote/citrix-workspace/sources.nix
index 00c1ff878b960..1b0826c4d2bdf 100644
--- a/pkgs/applications/networking/remote/citrix-workspace/sources.nix
+++ b/pkgs/applications/networking/remote/citrix-workspace/sources.nix
@@ -44,6 +44,17 @@ let
       x86hash   = "";
       x64suffix = "65";
       x86suffix = "";
+      homepage  = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-latest12.html";
+    };
+
+    "24.05.0" = {
+      major     = "24";
+      minor     = "5";
+      patch     = "0";
+      x64hash   = "sha256-pye2JOilSbp8PFCpVXFkrRW98E8klCqoisVSWjR38nE=";
+      x86hash   = "";
+      x64suffix = "76";
+      x86suffix = "";
       homepage  = "https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
     };
   };
diff --git a/pkgs/applications/networking/remote/dayon/default.nix b/pkgs/applications/networking/remote/dayon/default.nix
index ea46ec131fbc5..d183a9256730a 100644
--- a/pkgs/applications/networking/remote/dayon/default.nix
+++ b/pkgs/applications/networking/remote/dayon/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "dayon";
-  version = "14.0.0";
+  version = "14.0.2";
 
   src = fetchFromGitHub {
     owner = "RetGal";
     repo = "dayon";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-cUaWfOpR0sNq8cRghZVW9mTVhJ5us12/lzucxetiVkg=";
+    hash = "sha256-nRNqubR44ydZwwuQG3q6TRm+MHTRgRbeLI9dsk83wq4=";
   };
 
   nativeBuildInputs = [
@@ -64,7 +64,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "An easy to use, cross-platform remote desktop assistance solution";
+    description = "Easy to use, cross-platform remote desktop assistance solution";
     homepage = "https://retgal.github.io/Dayon/index.html";
     license = licenses.gpl3Plus; # https://github.com/RetGal/Dayon/issues/59
     mainProgram = "dayon";
diff --git a/pkgs/applications/networking/remote/freerdp/3.nix b/pkgs/applications/networking/remote/freerdp/3.nix
index 3181e5d67625f..17da5643a9a11 100644
--- a/pkgs/applications/networking/remote/freerdp/3.nix
+++ b/pkgs/applications/networking/remote/freerdp/3.nix
@@ -195,7 +195,7 @@ stdenv.mkDerivation (finalAttrs: {
   ]);
 
   meta = with lib; {
-    description = "A Remote Desktop Protocol Client";
+    description = "Remote Desktop Protocol Client";
     longDescription = ''
       FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP)
       following the Microsoft Open Specifications.
diff --git a/pkgs/applications/networking/remote/freerdp/default.nix b/pkgs/applications/networking/remote/freerdp/default.nix
index 0366e91515469..fd34c054d2091 100644
--- a/pkgs/applications/networking/remote/freerdp/default.nix
+++ b/pkgs/applications/networking/remote/freerdp/default.nix
@@ -199,7 +199,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A Remote Desktop Protocol Client";
+    description = "Remote Desktop Protocol Client";
     longDescription = ''
       FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP)
       following the Microsoft Open Specifications.
diff --git a/pkgs/applications/networking/remote/putty/default.nix b/pkgs/applications/networking/remote/putty/default.nix
index df95f5b9d6f74..82f096699b20b 100644
--- a/pkgs/applications/networking/remote/putty/default.nix
+++ b/pkgs/applications/networking/remote/putty/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A Free Telnet/SSH Client";
+    description = "Free Telnet/SSH Client";
     longDescription = ''
       PuTTY is a free implementation of Telnet and SSH for Windows and Unix
       platforms, along with an xterm terminal emulator.
diff --git a/pkgs/applications/networking/remote/vmware-horizon-client/default.nix b/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
index ab6df01a269bf..5f9ef27201e35 100644
--- a/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
+++ b/pkgs/applications/networking/remote/vmware-horizon-client/default.nix
@@ -1,6 +1,6 @@
 { stdenv
 , lib
-, buildFHSEnvChroot
+, buildFHSEnv
 , copyDesktopItems
 , fetchurl
 , gsettings-desktop-schemas
@@ -67,7 +67,7 @@ let
     '';
   };
 
-  vmwareFHSUserEnv = name: buildFHSEnvChroot {
+  vmwareFHSUserEnv = name: buildFHSEnv {
     inherit name;
 
     runScript = "${vmwareHorizonClientFiles}/bin/${name}_wrapper";
diff --git a/pkgs/applications/networking/remote/vmware-horizon-client/update.sh b/pkgs/applications/networking/remote/vmware-horizon-client/update.sh
index eec3d1de79e0e..cbac1ab73fa93 100755
--- a/pkgs/applications/networking/remote/vmware-horizon-client/update.sh
+++ b/pkgs/applications/networking/remote/vmware-horizon-client/update.sh
@@ -2,13 +2,13 @@
 #!nix-shell -p curl -p jq -p common-updater-scripts -i bash
 set -e
 
-entryPointURL='https://customerconnect.vmware.com/channel/public/api/v1.0/products/getRelatedDLGList?locale=en_US&category=desktop_end_user_computing&product=vmware_horizon_clients&version=horizon_8&dlgType=PRODUCT_BINARY'
+entryPointURL='https://customerconnect.omnissa.com/channel/public/api/v1.0/products/getRelatedDLGList?locale=en_US&category=desktop_end_user_computing&product=vmware_horizon_clients&version=horizon_8&dlgType=PRODUCT_BINARY'
 
 function getTarballMetaUrl {
     curl "$entryPointURL" | jq -r '
         .dlgEditionsLists | .[] | select(.name | contains("Client for Linux")) |
         .dlgList | .[] | select(.name | contains("tarball version")) |
-        @uri "https://customerconnect.vmware.com/channel/public/api/v1.0/dlg/details?locale=en_US&downloadGroup=\(.code)&productId=\(.productId)&rPId=\(.releasePackageId)"
+        @uri "https://customerconnect.omnissa.com/channel/public/api/v1.0/dlg/details?locale=en_US&downloadGroup=\(.code)&productId=\(.productId)&rPId=\(.releasePackageId)"
     '
 }
 
diff --git a/pkgs/applications/networking/remote/waypipe/default.nix b/pkgs/applications/networking/remote/waypipe/default.nix
index 8924006e81efa..122f3f6bdf1b5 100644
--- a/pkgs/applications/networking/remote/waypipe/default.nix
+++ b/pkgs/applications/networking/remote/waypipe/default.nix
@@ -5,14 +5,14 @@
 
 stdenv.mkDerivation rec {
   pname = "waypipe";
-  version = "0.9.0";
+  version = "0.9.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "mstoeckl";
     repo = "waypipe";
     rev = "v${version}";
-    hash = "sha256-zk5IzZiFff9EeJn24/QmE1ybcBkxpaz6Owp77CfCwV0=";
+    hash = "sha256-4I8ohllhIA3/LNgFAKH5GwwHKO5QKNex0+Be0OOgR14=";
   };
 
   strictDeps = true;
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A network proxy for Wayland clients (applications)";
+    description = "Network proxy for Wayland clients (applications)";
     longDescription = ''
       waypipe is a proxy for Wayland clients. It forwards Wayland messages and
       serializes changes to shared memory buffers over a single socket. This
diff --git a/pkgs/applications/networking/remote/wayvnc/default.nix b/pkgs/applications/networking/remote/wayvnc/default.nix
index 6a08c1a091fea..53f993760fc10 100644
--- a/pkgs/applications/networking/remote/wayvnc/default.nix
+++ b/pkgs/applications/networking/remote/wayvnc/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A VNC server for wlroots based Wayland compositors";
+    description = "VNC server for wlroots based Wayland compositors";
     longDescription = ''
       This is a VNC server for wlroots based Wayland compositors. It attaches
       to a running Wayland session, creates virtual input devices and exposes a
diff --git a/pkgs/applications/networking/remote/xrdp/default.nix b/pkgs/applications/networking/remote/xrdp/default.nix
index 5c0dd23a9e135..6e2f10ee8e47c 100644
--- a/pkgs/applications/networking/remote/xrdp/default.nix
+++ b/pkgs/applications/networking/remote/xrdp/default.nix
@@ -162,7 +162,7 @@ let
     };
 
     meta = with lib; {
-      description = "An open source RDP server";
+      description = "Open source RDP server";
       homepage = "https://github.com/neutrinolabs/xrdp";
       license = licenses.asl20;
       maintainers = with maintainers; [ chvp lucasew ];
diff --git a/pkgs/applications/networking/scaleft/default.nix b/pkgs/applications/networking/scaleft/default.nix
index bcfde9f1a0057..8a500c5e162f0 100644
--- a/pkgs/applications/networking/scaleft/default.nix
+++ b/pkgs/applications/networking/scaleft/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "scaleft";
-  version = "1.67.4";
+  version = "1.80.1";
 
   src =
     fetchurl {
-      url = "http://pkg.scaleft.com/rpm/scaleft-client-tools-${version}-1.x86_64.rpm";
-      sha256 = "kRCShTMKf5qKFth/8H8XHLj12YIVQ9G5f2MvVJRtyDs=";
+      url = "https://dist.scaleft.com/repos/rpm/stable/centos/9/x86_64/1.80.1/scaleft-client-tools-${version}-1.x86_64.rpm";
+      sha256 = "sha256-QrkqAgkplFF6Tp6FWKb2TJaqeOw8ec4zd9pymDP2IyY=";
     };
 
   nativeBuildInputs = [ patchelf rpmextract ];
diff --git a/pkgs/applications/networking/seafile-client/default.nix b/pkgs/applications/networking/seafile-client/default.nix
index 8dbecdd50aa32..0a133bb49e5e4 100644
--- a/pkgs/applications/networking/seafile-client/default.nix
+++ b/pkgs/applications/networking/seafile-client/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "seafile-client";
-  version = "9.0.5";
+  version = "9.0.6";
 
   src = fetchFromGitHub {
     owner = "haiwen";
     repo = "seafile-client";
     rev = "v${version}";
-    sha256 = "sha256-fAPEtULab3Ug4gRCS+Eigp48JkORi7tvic2vp5jaw44=";
+    sha256 = "sha256-JjicVgDqiuIuVn7swbVekqQ+3Ly64Nd7qKu5UymTEYE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/seahub/default.nix b/pkgs/applications/networking/seahub/default.nix
index 0e92e996aaa66..20cdf386257ec 100644
--- a/pkgs/applications/networking/seahub/default.nix
+++ b/pkgs/applications/networking/seahub/default.nix
@@ -82,7 +82,7 @@ python.pkgs.buildPythonApplication rec {
   };
 
   meta = with lib; {
-    description = "The web end of seafile server";
+    description = "Web end of seafile server";
     homepage = "https://github.com/haiwen/seahub";
     license = licenses.asl20;
     maintainers = with maintainers; [ greizgh schmittlauch ];
diff --git a/pkgs/applications/networking/seaweedfs/default.nix b/pkgs/applications/networking/seaweedfs/default.nix
index 9dbff1221a5ef..3913c98fea88f 100644
--- a/pkgs/applications/networking/seaweedfs/default.nix
+++ b/pkgs/applications/networking/seaweedfs/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "seaweedfs";
-  version = "3.67";
+  version = "3.68";
 
   src = fetchFromGitHub {
     owner = "seaweedfs";
     repo = "seaweedfs";
     rev = version;
-    hash = "sha256-5XR0dT72t6Kn/io1knA8xol5nGnmaBF+izmFZVf3OGE=";
+    hash = "sha256-ncA6YXa/focfmPMdEQWbeUxrLhwCqQiPqjP0SovLB2c=";
   };
 
-  vendorHash = "sha256-GBbbru7yWfwzVmRO1tuqE60kD8UJudX0rei7I02SYzw=";
+  vendorHash = "sha256-YgrDzfcp1Lh8bOI1FF7bTBquaShhgE9nZ/+7mvFiQCc=";
 
   subPackages = [ "weed" ];
 
diff --git a/pkgs/applications/networking/sieve-connect/default.nix b/pkgs/applications/networking/sieve-connect/default.nix
index a3f78b5d59518..6bc3e1f7d50ae 100644
--- a/pkgs/applications/networking/sieve-connect/default.nix
+++ b/pkgs/applications/networking/sieve-connect/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A client for the MANAGESIEVE Protocol";
+    description = "Client for the MANAGESIEVE Protocol";
     longDescription = ''
       This is sieve-connect. A client for the ManageSieve protocol,
       as specifed in RFC 5804. Historically, this was MANAGESIEVE as
diff --git a/pkgs/applications/networking/siproxd/default.nix b/pkgs/applications/networking/siproxd/default.nix
index f9dea3e2bf805..76ef0338dccf9 100644
--- a/pkgs/applications/networking/siproxd/default.nix
+++ b/pkgs/applications/networking/siproxd/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://siproxd.sourceforge.net/";
-    description = "A masquerading SIP Proxy Server";
+    description = "Masquerading SIP Proxy Server";
     mainProgram = "siproxd";
     maintainers = with lib.maintainers; [viric];
     platforms = with lib.platforms; linux;
diff --git a/pkgs/applications/networking/sniffers/sngrep/default.nix b/pkgs/applications/networking/sniffers/sngrep/default.nix
index 45a1526751f86..2c2c47e92efb9 100644
--- a/pkgs/applications/networking/sniffers/sngrep/default.nix
+++ b/pkgs/applications/networking/sniffers/sngrep/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A tool for displaying SIP calls message flows from terminal";
+    description = "Tool for displaying SIP calls message flows from terminal";
     mainProgram = "sngrep";
     homepage = "https://github.com/irontec/sngrep";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/networking/soapui/default.nix b/pkgs/applications/networking/soapui/default.nix
index df54826608b66..38032509c95dc 100644
--- a/pkgs/applications/networking/soapui/default.nix
+++ b/pkgs/applications/networking/soapui/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   passthru.tests = { inherit (nixosTests) soapui; };
 
   meta = with lib; {
-    description = "The Most Advanced REST & SOAP Testing Tool in the World";
+    description = "Most Advanced REST & SOAP Testing Tool in the World";
     homepage = "https://www.soapui.org/";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = "SoapUI End User License Agreement";
diff --git a/pkgs/applications/networking/ssb-patchwork/default.nix b/pkgs/applications/networking/ssb-patchwork/default.nix
index 75776f02150b4..4e271534a6427 100644
--- a/pkgs/applications/networking/ssb-patchwork/default.nix
+++ b/pkgs/applications/networking/ssb-patchwork/default.nix
@@ -41,7 +41,7 @@ in
     '';
 
     meta = with lib; {
-      description = "A decentralized messaging and sharing app built on top of Secure Scuttlebutt (SSB)";
+      description = "Decentralized messaging and sharing app built on top of Secure Scuttlebutt (SSB)";
       longDescription = ''
         sea-slang for gossip - a scuttlebutt is basically a watercooler on a ship.
       '';
diff --git a/pkgs/applications/networking/station/default.nix b/pkgs/applications/networking/station/default.nix
index b3235ba5154f5..7207617a11665 100644
--- a/pkgs/applications/networking/station/default.nix
+++ b/pkgs/applications/networking/station/default.nix
@@ -28,7 +28,7 @@ in appimageTools.wrapType2 rec {
   '';
 
   meta = with lib; {
-    description = "A single place for all of your web applications";
+    description = "Single place for all of your web applications";
     homepage = "https://getstation.com";
     license = licenses.mit;
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/sync/acd_cli/default.nix b/pkgs/applications/networking/sync/acd_cli/default.nix
index 95970a7b8709b..fd7c37e589624 100644
--- a/pkgs/applications/networking/sync/acd_cli/default.nix
+++ b/pkgs/applications/networking/sync/acd_cli/default.nix
@@ -31,7 +31,7 @@ buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A command line interface and FUSE filesystem for Amazon Cloud Drive";
+    description = "Command line interface and FUSE filesystem for Amazon Cloud Drive";
     homepage = "https://github.com/yadayada/acd_cli";
     license = licenses.gpl2;
     maintainers = with maintainers; [ edwtjo ];
diff --git a/pkgs/applications/networking/sync/celeste/default.nix b/pkgs/applications/networking/sync/celeste/default.nix
index 1836ebd1e6d99..7eef4f4510051 100644
--- a/pkgs/applications/networking/sync/celeste/default.nix
+++ b/pkgs/applications/networking/sync/celeste/default.nix
@@ -47,11 +47,6 @@ rustPlatform.buildRustPackage rec {
     sed -i "#/bin/celeste#d" justfile
   '';
 
-  # Cargo.lock is outdated
-  preConfigure = ''
-    cargo update --offline
-  '';
-
   RUSTC_BOOTSTRAP = 1;
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/sync/desync/default.nix b/pkgs/applications/networking/sync/desync/default.nix
index e2c43315338ed..88fc9be1a9ea0 100644
--- a/pkgs/applications/networking/sync/desync/default.nix
+++ b/pkgs/applications/networking/sync/desync/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "desync";
-  version = "0.9.5";
+  version = "0.9.6";
 
   src = fetchFromGitHub {
     owner = "folbricht";
     repo = "desync";
     rev = "refs/tags/v${version}";
-    hash = "sha256-FeZhLY0fUUNNqa6qZZnh2z06+NgcAI6gY8LRR4xI5sM=";
+    hash = "sha256-TwzD9WYi4cdDPKKV2XoqkGWJ9CzIwoxeFll8LqNWf/E=";
   };
 
-  vendorHash = "sha256-1RuqlDU809mtGn0gOFH/AW6HJo1cQqt8spiLp3/FpcI=";
+  vendorHash = "sha256-CBw5FFGQgvdYoOUZ6E1F/mxqzNKOwh2IZbsh0dAsLEE=";
 
   # nix builder doesn't have access to test data; tests fail for reasons unrelated to binary being bad.
   doCheck = false;
diff --git a/pkgs/applications/networking/sync/lcsync/default.nix b/pkgs/applications/networking/sync/lcsync/default.nix
index ac4731d8536a5..9ba34ab6319c0 100644
--- a/pkgs/applications/networking/sync/lcsync/default.nix
+++ b/pkgs/applications/networking/sync/lcsync/default.nix
@@ -7,7 +7,7 @@
   stdenv
 }:
 stdenv.mkDerivation (finalAttrs: {
-  name = "lcsync";
+  pname = "lcsync";
   version = "0.3.0";
 
   src = fetchFromGitea {
diff --git a/pkgs/applications/networking/sync/lsyncd/default.nix b/pkgs/applications/networking/sync/lsyncd/default.nix
index 24908b4940e94..bdb1b69289fed 100644
--- a/pkgs/applications/networking/sync/lsyncd/default.nix
+++ b/pkgs/applications/networking/sync/lsyncd/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/axkibe/lsyncd";
-    description = "A utility that synchronizes local directories with remote targets";
+    description = "Utility that synchronizes local directories with remote targets";
     mainProgram = "lsyncd";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
diff --git a/pkgs/applications/networking/sync/onedrive/default.nix b/pkgs/applications/networking/sync/onedrive/default.nix
index a4616c2aa923a..d7dd30b106c8e 100644
--- a/pkgs/applications/networking/sync/onedrive/default.nix
+++ b/pkgs/applications/networking/sync/onedrive/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A complete tool to interact with OneDrive on Linux";
+    description = "Complete tool to interact with OneDrive on Linux";
     mainProgram = "onedrive";
     homepage = "https://github.com/abraunegg/onedrive";
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/networking/sync/rclone/default.nix b/pkgs/applications/networking/sync/rclone/default.nix
index 0ffd47435ff2f..11e24de45199e 100644
--- a/pkgs/applications/networking/sync/rclone/default.nix
+++ b/pkgs/applications/networking/sync/rclone/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "rclone";
-  version = "1.66.0";
+  version = "1.67.0";
 
   src = fetchFromGitHub {
     owner = "rclone";
     repo = "rclone";
     rev = "v${version}";
-    hash = "sha256-75RnAROICtRUDn95gSCNO0F6wes4CkJteNfUN38GQIY=";
+    hash = "sha256-rTibyh5z89QuPgZMvv3Y6FCugxMIytAg1gdCxE3+QLE=";
   };
 
-  vendorHash = "sha256-zGBwgIuabLDqWbutvPHDbPRo5Dd9kNfmgToZXy7KVgI=";
+  vendorHash = "sha256-Sw9zZf0rup+VyncIpJHp9PKUp60lv+TV4wbWtVTTK3w=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/networking/sync/rsync/default.nix b/pkgs/applications/networking/sync/rsync/default.nix
index 5216617bf4d1a..555fb68416b8d 100644
--- a/pkgs/applications/networking/sync/rsync/default.nix
+++ b/pkgs/applications/networking/sync/rsync/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, updateAutotoolsGnuConfigScriptsHook
 , perl
 , libiconv
 , zlib
@@ -28,7 +29,7 @@ stdenv.mkDerivation rec {
     hash = "sha256-c5nppnCMMtZ4pypjIZ6W8jvgviM25Q/RNISY0HBB35A=";
   };
 
-  nativeBuildInputs = [ perl ];
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook perl ];
 
   buildInputs = [ libiconv zlib popt ]
     ++ lib.optional enableACLs acl
diff --git a/pkgs/applications/networking/sync/rsync/rrsync.nix b/pkgs/applications/networking/sync/rsync/rrsync.nix
index 09f9ab22f335a..67cec6eeeeafa 100644
--- a/pkgs/applications/networking/sync/rsync/rrsync.nix
+++ b/pkgs/applications/networking/sync/rsync/rrsync.nix
@@ -26,6 +26,6 @@ stdenv.mkDerivation {
   '';
 
   meta = rsync.meta // {
-    description = "A helper to run rsync-only environments from ssh-logins";
+    description = "Helper to run rsync-only environments from ssh-logins";
   };
 }
diff --git a/pkgs/applications/networking/sync/storj-uplink/default.nix b/pkgs/applications/networking/sync/storj-uplink/default.nix
index 8f10fa112e1fc..5c5625d8dd710 100644
--- a/pkgs/applications/networking/sync/storj-uplink/default.nix
+++ b/pkgs/applications/networking/sync/storj-uplink/default.nix
@@ -5,18 +5,18 @@
 
 buildGoModule rec {
   pname = "storj-uplink";
-  version = "1.104.5";
+  version = "1.105.2";
 
   src = fetchFromGitHub {
     owner = "storj";
     repo = "storj";
     rev = "v${version}";
-    hash = "sha256-tzAArj813Hn/iH3LEsz1bytoOr2GfI5kyKZdXNgYwSE=";
+    hash = "sha256-uoMjV0ab/H8WXWawWM9CB/mGTh9odrfmKehRz6A9/Xo=";
   };
 
   subPackages = [ "cmd/uplink" ];
 
-  vendorHash = "sha256-Eo6JHcTcfC8zmKZh9sXrZ90RhIgdEBgTldIUnvNm8ms=";
+  vendorHash = "sha256-HlnnWmjYL/j5RvRKFtEE4ib477erA94aQ+HSF+sCiuA=";
 
   ldflags = [ "-s" "-w" ];
 
diff --git a/pkgs/applications/networking/sync/wdt/default.nix b/pkgs/applications/networking/sync/wdt/default.nix
index 34eef64b9f796..ccf3e05138f70 100644
--- a/pkgs/applications/networking/sync/wdt/default.nix
+++ b/pkgs/applications/networking/sync/wdt/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation {
   pname = "wdt";
-  version = "1.27.1612021-unstable-2024-02-05";
+  version = "1.27.1612021-unstable-2024-05-21";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "wdt";
-    rev = "d94b2d5df6f1c803f9f3b8ed9247b752fa853865";
-    sha256 = "sha256-9TeJbZZq9uQ6KaEBFGDyIGcXgxi2y1aj55vxv5dAIzw=";
+    rev = "6263fee3bebc8bb0012e095723170f70b99ff67d";
+    sha256 = "sha256-CxwRfjPkR7d+Poe+8+TbBGcsK90EwupCyLqUkxUlITs=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/networking/syncplay/default.nix b/pkgs/applications/networking/syncplay/default.nix
index 4321868a0d6d3..b816da9e4b5cb 100644
--- a/pkgs/applications/networking/syncplay/default.nix
+++ b/pkgs/applications/networking/syncplay/default.nix
@@ -13,15 +13,15 @@
 
 buildPythonApplication rec {
   pname = "syncplay";
-  version = "1.7.2";
+  version = "1.7.3";
 
   format = "other";
 
   src = fetchFromGitHub {
     owner = "Syncplay";
     repo = "syncplay";
-    rev = "v${version}";
-    sha256 = "sha256-PERPE6141LXmb8fmW17Vu54Unpf9vEK+ahm6q1byRTU=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-ipo027XyN4BpMkxzXznbnaufsaG/YkHxFJYo+XWzbyE=";
   };
 
   patches = [
diff --git a/pkgs/applications/networking/syncthing/default.nix b/pkgs/applications/networking/syncthing/default.nix
index 2535675c64976..24427cb8ed3bf 100644
--- a/pkgs/applications/networking/syncthing/default.nix
+++ b/pkgs/applications/networking/syncthing/default.nix
@@ -13,16 +13,16 @@ let
   common = { stname, target, postInstall ? "" }:
     buildGoModule rec {
       pname = stname;
-      version = "1.27.7";
+      version = "1.27.8";
 
       src = fetchFromGitHub {
         owner = "syncthing";
         repo = "syncthing";
         rev = "v${version}";
-        hash = "sha256-Y/gwQfb3ShOsXsNLomtqUlmYaw7FQQ6IUN1fHSYOouQ=";
+        hash = "sha256-+uyN/x/nFB/YAOvIqO1IIs3UH+yn/eKMBW1Ap9PvhRM=";
       };
 
-      vendorHash = "sha256-xVSSFFTqU7jww8YTeXKfa3096c2FmEgkcXvuqFHb12E=";
+      vendorHash = "sha256-fzNpdriCRr4M3oW8IaImnGEN4G9AQwLZNFHg00zbIs0=";
 
       nativeBuildInputs = lib.optionals stdenv.isDarwin [
         # Recent versions of macOS seem to require binaries to be signed when
diff --git a/pkgs/applications/networking/synology-cloud-sync-decryption-tool/default.nix b/pkgs/applications/networking/synology-cloud-sync-decryption-tool/default.nix
index 77ad4dad40d09..0872391e6035c 100644
--- a/pkgs/applications/networking/synology-cloud-sync-decryption-tool/default.nix
+++ b/pkgs/applications/networking/synology-cloud-sync-decryption-tool/default.nix
@@ -33,7 +33,7 @@ qt5.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A desktop tool to decrypt data encrypted by Cloud Sync.";
+    description = "Desktop tool to decrypt data encrypted by Cloud Sync";
     homepage = "https://kb.synology.com/en-global/DSM/help/SynologyCloudSyncDecryptionTool/synologycloudsyncdecryptiontool";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
diff --git a/pkgs/applications/networking/synology-drive-client/default.nix b/pkgs/applications/networking/synology-drive-client/default.nix
index 172e5bfb669a4..d4ab94315bf96 100644
--- a/pkgs/applications/networking/synology-drive-client/default.nix
+++ b/pkgs/applications/networking/synology-drive-client/default.nix
@@ -5,7 +5,7 @@ let
   version = "3.5.0-16084";
   buildNumber = with lib; last (splitString "-" version);
   meta = with lib; {
-    description = "Desktop application to synchronize files and folders between the computer and the Synology Drive server.";
+    description = "Desktop application to synchronize files and folders between the computer and the Synology Drive server";
     homepage = "https://www.synology.com/en-global/dsm/feature/drive";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
diff --git a/pkgs/applications/networking/termius/default.nix b/pkgs/applications/networking/termius/default.nix
index 0f16865ac8e3c..7e660f4e2ba1b 100644
--- a/pkgs/applications/networking/termius/default.nix
+++ b/pkgs/applications/networking/termius/default.nix
@@ -78,7 +78,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A cross-platform SSH client with cloud data sync and more";
+    description = "Cross-platform SSH client with cloud data sync and more";
     homepage = "https://termius.com/";
     downloadPage = "https://termius.com/linux/";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/applications/networking/testssl/default.nix b/pkgs/applications/networking/testssl/default.nix
index a8e60b9b9439b..678262243e2ae 100644
--- a/pkgs/applications/networking/testssl/default.nix
+++ b/pkgs/applications/networking/testssl/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "testssl.sh";
-  version = "3.0.8";
+  version = "3.0.9";
 
   src = fetchFromGitHub {
     owner = "drwetter";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-gkDtJlAC7woM2HyYDXntD1+bEuqHTEipqrn2EZjxnH8=";
+    sha256 = "sha256-MZNQ7oOJD/vjOwDiPOZr3k+Mn0XXVdkP7cC/0mnWLic=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/networking/tmpmail/default.nix b/pkgs/applications/networking/tmpmail/default.nix
index 8c72fdd435e59..b55db4e64af27 100644
--- a/pkgs/applications/networking/tmpmail/default.nix
+++ b/pkgs/applications/networking/tmpmail/default.nix
@@ -26,7 +26,7 @@ stdenvNoCC.mkDerivation rec {
 
    meta = with lib; {
     homepage = "https://github.com/sdushantha/tmpmail";
-    description = "A temporary email right from your terminal written in POSIX sh ";
+    description = "Temporary email right from your terminal written in POSIX sh ";
     license = licenses.mit;
     maintainers = [ maintainers.lom ];
     mainProgram = "tmpmail";
diff --git a/pkgs/applications/networking/trayscale/default.nix b/pkgs/applications/networking/trayscale/default.nix
index e6960e2987131..5bb826e77d0a8 100644
--- a/pkgs/applications/networking/trayscale/default.nix
+++ b/pkgs/applications/networking/trayscale/default.nix
@@ -47,7 +47,7 @@ buildGoModule rec {
 
   meta = with lib; {
     changelog = "https://github.com/DeedleFake/trayscale/releases/tag/${version}";
-    description = "An unofficial GUI wrapper around the Tailscale CLI client";
+    description = "Unofficial GUI wrapper around the Tailscale CLI client";
     homepage = "https://github.com/DeedleFake/trayscale";
     license = licenses.mit;
     maintainers = with maintainers; [ patka ];
diff --git a/pkgs/applications/networking/tsung/default.nix b/pkgs/applications/networking/tsung/default.nix
index ab66d6a09dc2f..a9a30859b2178 100644
--- a/pkgs/applications/networking/tsung/default.nix
+++ b/pkgs/applications/networking/tsung/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://tsung.erlang-projects.org/";
     changelog = "https://github.com/processone/tsung/blob/v${version}/CHANGELOG.md";
-    description = "A high-performance benchmark framework for various protocols including HTTP, XMPP, LDAP, etc";
+    description = "High-performance benchmark framework for various protocols including HTTP, XMPP, LDAP, etc";
     longDescription = ''
       Tsung is a distributed load testing tool. It is protocol-independent and
       can currently be used to stress HTTP, WebDAV, SOAP, PostgreSQL, MySQL,
diff --git a/pkgs/applications/networking/wgnord/default.nix b/pkgs/applications/networking/wgnord/default.nix
index 4a78274f2f3fa..9f781d713873f 100644
--- a/pkgs/applications/networking/wgnord/default.nix
+++ b/pkgs/applications/networking/wgnord/default.nix
@@ -56,7 +56,7 @@ resholve.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A NordVPN Wireguard (NordLynx) client in POSIX shell";
+    description = "NordVPN Wireguard (NordLynx) client in POSIX shell";
     homepage = "https://github.com/phirecc/wgnord";
     changelog = "https://github.com/phirecc/wgnord/releases/tag/v${version}";
     maintainers = with lib.maintainers; [ urandom ];
diff --git a/pkgs/applications/networking/xpipe/default.nix b/pkgs/applications/networking/xpipe/default.nix
index c099f1c5d14cb..b5d181dc73a47 100644
--- a/pkgs/applications/networking/xpipe/default.nix
+++ b/pkgs/applications/networking/xpipe/default.nix
@@ -33,14 +33,14 @@ let
   }.${system} or throwSystem;
 
   hash = {
-    x86_64-linux = "sha256-PFAs/HoQsTqgThN5jdfwU07QNxThBrO7ES1D7GZCPH0=";
+    x86_64-linux = "sha256-nZg0Ha457zrBgYpKIHgGkDxTVQSRthQCCxtT2xWtAlQ=";
   }.${system} or throwSystem;
 
   displayname = "XPipe";
 
 in stdenvNoCC.mkDerivation rec {
   pname = "xpipe";
-  version = "9.3";
+  version = "9.4.1";
 
   src = fetchzip {
     url = "https://github.com/xpipe-io/xpipe/releases/download/${version}/xpipe-portable-linux-${arch}.tar.gz";
@@ -118,7 +118,7 @@ in stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A cross-platform shell connection hub and remote file manager";
+    description = "Cross-platform shell connection hub and remote file manager";
     homepage = "https://github.com/xpipe-io/${pname}";
     downloadPage = "https://github.com/xpipe-io/${pname}/releases/latest";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/applications/networking/zerobin/default.nix b/pkgs/applications/networking/zerobin/default.nix
index ca55085d8085f..e75f121d5fee0 100644
--- a/pkgs/applications/networking/zerobin/default.nix
+++ b/pkgs/applications/networking/zerobin/default.nix
@@ -59,7 +59,7 @@ python3Packages.buildPythonApplication rec {
   pythonImportsCheck = [ "zerobin" ];
 
   meta = with lib; {
-    description = "A client side encrypted pastebin";
+    description = "Client side encrypted pastebin";
     homepage = "https://0bin.net/";
     license = licenses.wtfpl;
     platforms = platforms.all;
diff --git a/pkgs/applications/networking/znc/modules.nix b/pkgs/applications/networking/znc/modules.nix
index 1712c6f4fe5cd..91c2ec526d1c3 100644
--- a/pkgs/applications/networking/znc/modules.nix
+++ b/pkgs/applications/networking/znc/modules.nix
@@ -34,7 +34,7 @@ in
     };
 
     meta = with lib; {
-      description = "Request backlog for IRC channels.";
+      description = "Request backlog for IRC channels";
       homepage = "https://github.com/fruitiex/znc-backlog/";
       license = licenses.asl20;
       maintainers = [ ];
@@ -154,7 +154,7 @@ in
     };
 
     meta = with lib; {
-      description = "An advanced playback module for ZNC";
+      description = "Advanced playback module for ZNC";
       homepage = "https://github.com/jpnurmi/znc-playback";
       license = licenses.asl20;
       maintainers = with maintainers; [ hrdinka ];
diff --git a/pkgs/applications/office/activitywatch/default.nix b/pkgs/applications/office/activitywatch/default.nix
index 32c490b0af3dc..54105e7c71017 100644
--- a/pkgs/applications/office/activitywatch/default.nix
+++ b/pkgs/applications/office/activitywatch/default.nix
@@ -240,7 +240,7 @@ rec {
     '';
 
     meta = with lib; {
-      description = "A web-based UI for ActivityWatch, built with Vue.js";
+      description = "Web-based UI for ActivityWatch, built with Vue.js";
       homepage = "https://github.com/ActivityWatch/aw-webui/";
       maintainers = with maintainers; [ huantian ];
       license = licenses.mpl20;
diff --git a/pkgs/applications/office/agenda/default.nix b/pkgs/applications/office/agenda/default.nix
index 8957df0bad194..8d06589cb4166 100644
--- a/pkgs/applications/office/agenda/default.nix
+++ b/pkgs/applications/office/agenda/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A simple, fast, no-nonsense to-do (task) list designed for elementary OS";
+    description = "Simple, fast, no-nonsense to-do (task) list designed for elementary OS";
     homepage = "https://github.com/dahenson/agenda";
     maintainers = with maintainers; [ xiorcale ] ++ teams.pantheon.members;
     platforms = platforms.linux;
diff --git a/pkgs/applications/office/atlassian-cli/default.nix b/pkgs/applications/office/atlassian-cli/default.nix
index 54a070596dc6e..d6c4db65c1504 100644
--- a/pkgs/applications/office/atlassian-cli/default.nix
+++ b/pkgs/applications/office/atlassian-cli/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An integrated family of CLI’s for various Atlassian applications";
+    description = "Integrated family of CLI’s for various Atlassian applications";
     homepage = "https://bobswift.atlassian.net/wiki/spaces/ACLI/overview";
     license = licenses.unfreeRedistributable;
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
diff --git a/pkgs/applications/office/beancount/beancount_share.nix b/pkgs/applications/office/beancount/beancount_share.nix
index 3b2ae6c4ddf02..19b49a2697ccf 100644
--- a/pkgs/applications/office/beancount/beancount_share.nix
+++ b/pkgs/applications/office/beancount/beancount_share.nix
@@ -22,7 +22,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/akuukis/beancount_share";
-    description = "A beancount plugin to share expenses with external partners within one ledger";
+    description = "Beancount plugin to share expenses with external partners within one ledger";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ matthiasbeyer ];
   };
diff --git a/pkgs/applications/office/beebeep/default.nix b/pkgs/applications/office/beebeep/default.nix
index 978066b7199a8..63843433b3c54 100644
--- a/pkgs/applications/office/beebeep/default.nix
+++ b/pkgs/applications/office/beebeep/default.nix
@@ -35,7 +35,7 @@ mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.beebeep.net/";
-    description = "BeeBEEP is the free office messenger that is indispensable in all those places where privacy and security are an essential requirement.";
+    description = "BeeBEEP is the free office messenger that is indispensable in all those places where privacy and security are an essential requirement";
     mainProgram = "beebeep";
     platforms = platforms.linux;
     license = licenses.gpl2Only;
diff --git a/pkgs/applications/office/bookworm/default.nix b/pkgs/applications/office/bookworm/default.nix
index c64c3389d95d8..f35a0e515897a 100644
--- a/pkgs/applications/office/bookworm/default.nix
+++ b/pkgs/applications/office/bookworm/default.nix
@@ -81,7 +81,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple, focused eBook reader";
+    description = "Simple, focused eBook reader";
     mainProgram = "com.github.babluboy.bookworm";
     longDescription = ''
       Read the books you love without having to worry about different format complexities like epub, pdf, mobi, cbr, etc.
diff --git a/pkgs/applications/office/calligra/default.nix b/pkgs/applications/office/calligra/default.nix
index 302419fdcefcf..611336b8a908e 100644
--- a/pkgs/applications/office/calligra/default.nix
+++ b/pkgs/applications/office/calligra/default.nix
@@ -77,7 +77,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A suite of productivity applications";
+    description = "Suite of productivity applications";
     longDescription = ''
       Calligra Suite is a set of applications written to help
       you to accomplish your work. Calligra includes efficient
diff --git a/pkgs/applications/office/cutemarked-ng/default.nix b/pkgs/applications/office/cutemarked-ng/default.nix
index 79555fc2f1133..cd564199b0169 100644
--- a/pkgs/applications/office/cutemarked-ng/default.nix
+++ b/pkgs/applications/office/cutemarked-ng/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A Qt-based, free and open source markdown editor";
+    description = "Qt-based, free and open source markdown editor";
     mainProgram = "cutemarked";
     homepage = "https://github.com/Waqar144/CuteMarkEd-NG";
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/office/docear/default.nix b/pkgs/applications/office/docear/default.nix
index f8cd25ad78435..3f0544d56f6e9 100644
--- a/pkgs/applications/office/docear/default.nix
+++ b/pkgs/applications/office/docear/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation {
     '';
 
   meta = with lib; {
-    description = "A unique solution to academic literature management";
+    description = "Unique solution to academic literature management";
     homepage = "http://www.docear.org/";
     # Licenses at: http://www.docear.org/software/download/
     license = with licenses; [
diff --git a/pkgs/applications/office/documenso/default.nix b/pkgs/applications/office/documenso/default.nix
index e57e6d0fae215..cca2c86c55844 100644
--- a/pkgs/applications/office/documenso/default.nix
+++ b/pkgs/applications/office/documenso/default.nix
@@ -44,7 +44,7 @@ buildNpmPackage {
   passthru.updateScript = nix-update-script {};
 
   meta = with lib; {
-    description = "The Open Source DocuSign Alternative.";
+    description = "Open Source DocuSign Alternative";
     homepage = "https://github.com/documenso/documenso";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ happysalada ];
diff --git a/pkgs/applications/office/espanso/Cargo.lock b/pkgs/applications/office/espanso/Cargo.lock
index 82f195f1b7b7c..fcceab7b700ab 100644
--- a/pkgs/applications/office/espanso/Cargo.lock
+++ b/pkgs/applications/office/espanso/Cargo.lock
@@ -59,16 +59,16 @@ version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
 dependencies = [
- "hermit-abi",
+ "hermit-abi 0.1.18",
  "libc",
  "winapi 0.3.9",
 ]
 
 [[package]]
 name = "autocfg"
-version = "1.0.1"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "base64"
@@ -77,6 +77,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
 
 [[package]]
+name = "base64"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a"
+
+[[package]]
 name = "bitflags"
 version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -89,6 +95,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
 
 [[package]]
+name = "bitflags"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+
+[[package]]
 name = "blake2b_simd"
 version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -132,6 +144,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c59e7af012c713f529e7a3ee57ce9b31ddd858d4b512923602f74608b009631"
 
 [[package]]
+name = "bytemuck"
+version = "1.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15"
+dependencies = [
+ "bytemuck_derive",
+]
+
+[[package]]
+name = "bytemuck_derive"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60"
+dependencies = [
+ "proc-macro2",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
 name = "byteorder"
 version = "1.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -145,9 +177,9 @@ checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8"
 
 [[package]]
 name = "bzip2"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6afcd980b5f3a45017c57e57a2fcccbb351cc43a356ce117ef760ef8052b89b0"
+checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8"
 dependencies = [
  "bzip2-sys",
  "libc",
@@ -166,12 +198,28 @@ dependencies = [
 
 [[package]]
 name = "calloop"
-version = "0.9.3"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf2eec61efe56aa1e813f5126959296933cf0700030e4314786c48779a66ab82"
+checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298"
 dependencies = [
+ "bitflags 2.4.1",
  "log",
- "nix 0.22.3",
+ "polling",
+ "rustix",
+ "slab",
+ "thiserror",
+]
+
+[[package]]
+name = "calloop-wayland-source"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02"
+dependencies = [
+ "calloop",
+ "rustix",
+ "wayland-backend",
+ "wayland-client",
 ]
 
 [[package]]
@@ -180,7 +228,7 @@ version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c088f2dddef283f86b023ab1ebe2301c653326834996458b2f48d29b804e9540"
 dependencies = [
- "errno",
+ "errno 0.2.7",
  "libc",
  "thiserror",
 ]
@@ -244,6 +292,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "concurrent-queue"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
 name = "console"
 version = "0.14.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -259,12 +316,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "const-sha1"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb58b6451e8c2a812ad979ed1d83378caa5e927eef2622017a45f251457c2c9d"
-
-[[package]]
 name = "const_format"
 version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -280,7 +331,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "29c36c619c422113552db4eb28cddba8faa757e33f758cc3415bd2885977b591"
 dependencies = [
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "unicode-xid 0.2.1",
 ]
 
@@ -385,13 +436,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.8"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38"
-dependencies = [
- "cfg-if 1.0.0",
- "lazy_static",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
 name = "cstr_core"
@@ -409,7 +456,7 @@ version = "0.1.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5e98e2ad1a782e33928b96fc3948e7c355e5af34ba4de7670fe8bac2a3b2006d"
 dependencies = [
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
 ]
 
@@ -420,6 +467,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35"
 
 [[package]]
+name = "cursor-icon"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991"
+
+[[package]]
+name = "dashmap"
+version = "5.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc"
+dependencies = [
+ "cfg-if 1.0.0",
+ "hashbrown 0.12.3",
+ "lock_api",
+ "once_cell",
+ "parking_lot_core",
+]
+
+[[package]]
 name = "dbus"
 version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -495,9 +561,9 @@ dependencies = [
 
 [[package]]
 name = "dlib"
-version = "0.5.0"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794"
+checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412"
 dependencies = [
  "libloading",
 ]
@@ -553,13 +619,31 @@ version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7c5f0096a91d210159eceb2ff5e1c4da18388a170e1e3ce948aac9c8fdbbf595"
 dependencies = [
- "heck",
+ "heck 0.3.2",
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
 ]
 
 [[package]]
+name = "enum-as-inner"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
 name = "errno"
 version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -571,6 +655,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "errno"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "errno-dragonfly"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -582,7 +676,7 @@ dependencies = [
 
 [[package]]
 name = "espanso"
-version = "2.1.8"
+version = "2.2.1"
 dependencies = [
  "anyhow",
  "caps",
@@ -592,7 +686,7 @@ dependencies = [
  "crossbeam",
  "dialoguer",
  "dirs 3.0.1",
- "enum-as-inner",
+ "enum-as-inner 0.3.3",
  "espanso-clipboard",
  "espanso-config",
  "espanso-detect",
@@ -615,7 +709,6 @@ dependencies = [
  "libc",
  "log",
  "log-panics",
- "maplit",
  "named_pipe",
  "notify",
  "opener",
@@ -638,8 +731,6 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "cc",
- "lazy_static",
- "lazycell",
  "log",
  "thiserror",
  "wait-timeout",
@@ -652,7 +743,7 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "dunce",
- "enum-as-inner",
+ "enum-as-inner 0.6.0",
  "glob",
  "indoc",
  "lazy_static",
@@ -674,7 +765,7 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "cc",
- "enum-as-inner",
+ "enum-as-inner 0.6.0",
  "lazy_static",
  "lazycell",
  "libc",
@@ -695,7 +786,6 @@ dependencies = [
  "html2text",
  "log",
  "markdown",
- "tempdir",
  "thiserror",
 ]
 
@@ -705,10 +795,7 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "cc",
- "lazy_static",
- "lazycell",
  "log",
- "thiserror",
  "widestring",
 ]
 
@@ -718,10 +805,9 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "cc",
- "enum-as-inner",
+ "enum-as-inner 0.6.0",
  "itertools",
  "lazy_static",
- "lazycell",
  "libc",
  "log",
  "regex",
@@ -735,7 +821,6 @@ name = "espanso-ipc"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "crossbeam",
  "log",
  "named_pipe",
  "serde",
@@ -748,7 +833,6 @@ name = "espanso-kvs"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "log",
  "serde",
  "serde_json",
  "tempdir",
@@ -759,23 +843,17 @@ dependencies = [
 name = "espanso-mac-utils"
 version = "0.1.0"
 dependencies = [
- "anyhow",
  "cc",
  "lazy_static",
- "lazycell",
- "log",
  "regex",
- "thiserror",
 ]
 
 [[package]]
 name = "espanso-match"
 version = "0.1.0"
 dependencies = [
- "anyhow",
  "log",
  "regex",
- "thiserror",
  "unicase",
 ]
 
@@ -784,17 +862,14 @@ name = "espanso-migrate"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "dunce",
  "fs_extra",
  "glob",
  "include_dir",
  "lazy_static",
- "log",
  "path-slash",
  "pretty_assertions",
  "regex",
  "tempdir",
- "tempfile",
  "test-case",
  "thiserror",
  "walkdir",
@@ -809,10 +884,8 @@ dependencies = [
  "cc",
  "glob",
  "lazy_static",
- "log",
  "regex",
  "serde",
- "serde_json",
  "thiserror",
  "winres",
  "zip",
@@ -845,10 +918,8 @@ dependencies = [
 name = "espanso-path"
 version = "0.1.0"
 dependencies = [
- "anyhow",
  "dirs 3.0.1",
  "log",
- "thiserror",
 ]
 
 [[package]]
@@ -857,7 +928,7 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "chrono",
- "enum-as-inner",
+ "enum-as-inner 0.6.0",
  "lazy_static",
  "log",
  "rand 0.8.3",
@@ -881,7 +952,7 @@ dependencies = [
  "serde_json",
  "thiserror",
  "widestring",
- "winrt-notification 0.3.1",
+ "winrt-notification 0.5.1",
 ]
 
 [[package]]
@@ -966,9 +1037,9 @@ dependencies = [
 
 [[package]]
 name = "fs_extra"
-version = "1.2.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2022715d62ab30faffd124d40b76f4134a550a87792276512b18d63272333394"
+checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
 
 [[package]]
 name = "fsevent"
@@ -1043,19 +1114,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "522de2a0fe3e380f1bc577ba0474108faf3f6b18321dbf60b3b9c39a75073377"
 
 [[package]]
-name = "futures-macro"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18e4a4b95cea4b4ccbcf1c5675ca7c4ee4e9e75eb79944d07defde18068f79bb"
-dependencies = [
- "autocfg",
- "proc-macro-hack",
- "proc-macro2",
- "quote 1.0.9",
- "syn 1.0.67",
-]
-
-[[package]]
 name = "futures-sink"
 version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1076,13 +1134,10 @@ dependencies = [
  "autocfg",
  "futures-core",
  "futures-io",
- "futures-macro",
  "futures-task",
  "memchr",
  "pin-project-lite",
  "pin-utils",
- "proc-macro-hack",
- "proc-macro-nested",
  "slab",
 ]
 
@@ -1132,9 +1187,9 @@ checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
 
 [[package]]
 name = "h2"
-version = "0.3.4"
+version = "0.3.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7f3675cfef6a30c8031cf9e6493ebdc3bb3272a3fea3923c4210d1830e6a472"
+checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
 dependencies = [
  "bytes",
  "fnv",
@@ -1151,9 +1206,15 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.11.2"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
+name = "hashbrown"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 
 [[package]]
 name = "heck"
@@ -1165,6 +1226,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
 name = "hermit-abi"
 version = "0.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1174,6 +1241,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "hermit-abi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+
+[[package]]
 name = "hex"
 version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1181,26 +1254,30 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
 
 [[package]]
 name = "html2text"
-version = "0.2.1"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26379dcb715e237b96102a12b505c553e2bffa74bae2e54658748d298660ef1"
+checksum = "22f0de8bd2c9fe69eb3fa29e41ae1396c9d2e1b807735acaecafb4c86888674f"
 dependencies = [
+ "dashmap",
  "html5ever",
- "markup5ever_rcdom",
+ "markup5ever",
+ "tendril",
+ "thiserror",
  "unicode-width",
+ "xml5ever",
 ]
 
 [[package]]
 name = "html5ever"
-version = "0.25.1"
+version = "0.26.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aafcf38a1a36118242d29b92e1b08ef84e67e4a5ed06e0a80be20e6a32bfed6b"
+checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7"
 dependencies = [
  "log",
  "mac",
  "markup5ever",
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
 ]
 
@@ -1212,7 +1289,7 @@ checksum = "527e8c9ac747e28542699a951517aa9a6945af506cd1f2e1b53a576c17b6cc11"
 dependencies = [
  "bytes",
  "fnv",
- "itoa",
+ "itoa 0.4.7",
 ]
 
 [[package]]
@@ -1228,9 +1305,9 @@ dependencies = [
 
 [[package]]
 name = "httparse"
-version = "1.5.1"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503"
+checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
 
 [[package]]
 name = "httpdate"
@@ -1240,9 +1317,9 @@ checksum = "6456b8a6c8f33fee7d958fcd1b60d55b11940a79e63ae87013e6d22e26034440"
 
 [[package]]
 name = "hyper"
-version = "0.14.12"
+version = "0.14.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13f67199e765030fa08fe0bd581af683f0d5bc04ea09c2b1102012c5fb90e7fd"
+checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -1253,7 +1330,7 @@ dependencies = [
  "http-body",
  "httparse",
  "httpdate",
- "itoa",
+ "itoa 1.0.6",
  "pin-project-lite",
  "socket2",
  "tokio",
@@ -1264,17 +1341,15 @@ dependencies = [
 
 [[package]]
 name = "hyper-rustls"
-version = "0.22.1"
+version = "0.23.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64"
+checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c"
 dependencies = [
- "futures-util",
+ "http",
  "hyper",
- "log",
  "rustls",
  "tokio",
  "tokio-rustls",
- "webpki",
 ]
 
 [[package]]
@@ -1321,18 +1396,18 @@ dependencies = [
  "anyhow",
  "proc-macro-hack",
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
 ]
 
 [[package]]
 name = "indexmap"
-version = "1.7.0"
+version = "2.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5"
+checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520"
 dependencies = [
- "autocfg",
- "hashbrown",
+ "equivalent",
+ "hashbrown 0.14.3",
 ]
 
 [[package]]
@@ -1395,6 +1470,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
 
 [[package]]
+name = "itoa"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+
+[[package]]
 name = "js-sys"
 version = "0.3.53"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1427,9 +1508,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 [[package]]
 name = "libc"
-version = "0.2.126"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libdbus-sys"
@@ -1457,6 +1538,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3"
 
 [[package]]
+name = "linux-raw-sys"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+
+[[package]]
+name = "lock_api"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
 name = "log"
 version = "0.4.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1502,12 +1599,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "maplit"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
-
-[[package]]
 name = "markdown"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1520,9 +1611,9 @@ dependencies = [
 
 [[package]]
 name = "markup5ever"
-version = "0.10.1"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd"
+checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016"
 dependencies = [
  "log",
  "phf",
@@ -1533,18 +1624,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "markup5ever_rcdom"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f015da43bcd8d4f144559a3423f4591d69b8ce0652c905374da7205df336ae2b"
-dependencies = [
- "html5ever",
- "markup5ever",
- "tendril",
- "xml5ever",
-]
-
-[[package]]
 name = "matches"
 version = "0.1.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1558,9 +1637,18 @@ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
 
 [[package]]
 name = "memmap2"
-version = "0.3.1"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b6c2ebff6180198788f5db08d7ce3bc1d0b617176678831a7510825973e357"
+checksum = "43a5a03cefb0d953ec0be133036f14e109412fa594edc2f77227249db66cc3ed"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memmap2"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
 dependencies = [
  "libc",
 ]
@@ -1603,7 +1691,7 @@ dependencies = [
  "kernel32-sys",
  "libc",
  "log",
- "miow 0.2.2",
+ "miow",
  "net2",
  "slab",
  "winapi 0.2.8",
@@ -1611,15 +1699,14 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.7.13"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c2bdb6314ec10835cd3293dd268473a835c02b7b352e788be788b3c6ca6bb16"
+checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9"
 dependencies = [
  "libc",
  "log",
- "miow 0.3.7",
- "ntapi",
- "winapi 0.3.9",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+ "windows-sys 0.45.0",
 ]
 
 [[package]]
@@ -1647,15 +1734,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "miow"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
-dependencies = [
- "winapi 0.3.9",
-]
-
-[[package]]
 name = "mockall"
 version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1678,7 +1756,7 @@ checksum = "5dd4234635bca06fc96c7368d038061e0aae1b00a764dc817e900dc974e3deea"
 dependencies = [
  "cfg-if 1.0.0",
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
 ]
 
@@ -1693,9 +1771,9 @@ dependencies = [
 
 [[package]]
 name = "native-tls"
-version = "0.2.8"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48ba9f7719b5a0f42f338907614285fb5fd70e53858141f69898a1fb7203b24d"
+checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
 dependencies = [
  "lazy_static",
  "libc",
@@ -1733,31 +1811,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
 
 [[package]]
-name = "nix"
-version = "0.22.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4916f159ed8e5de0082076562152a76b7a1f64a01fd9d1e0fea002c37624faf"
-dependencies = [
- "bitflags 1.2.1",
- "cc",
- "cfg-if 1.0.0",
- "libc",
- "memoffset",
-]
-
-[[package]]
-name = "nix"
-version = "0.24.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc"
-dependencies = [
- "bitflags 1.2.1",
- "cfg-if 1.0.0",
- "libc",
- "memoffset",
-]
-
-[[package]]
 name = "nom"
 version = "6.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1804,9 +1857,9 @@ dependencies = [
 
 [[package]]
 name = "ntapi"
-version = "0.3.6"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44"
+checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4"
 dependencies = [
  "winapi 0.3.9",
 ]
@@ -1836,7 +1889,7 @@ version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
 dependencies = [
- "hermit-abi",
+ "hermit-abi 0.1.18",
  "libc",
 ]
 
@@ -1871,9 +1924,9 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.8.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "opaque-debug"
@@ -1893,19 +1946,31 @@ dependencies = [
 
 [[package]]
 name = "openssl"
-version = "0.10.36"
+version = "0.10.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d9facdb76fec0b73c406f125d44d86fdad818d66fef0531eec9233ca425ff4a"
+checksum = "6b8419dc8cc6d866deb801274bba2e6f8f6108c1bb7fcc10ee5ab864931dbb45"
 dependencies = [
- "bitflags 1.2.1",
+ "bitflags 2.4.1",
  "cfg-if 1.0.0",
  "foreign-types",
  "libc",
  "once_cell",
+ "openssl-macros",
  "openssl-sys",
 ]
 
 [[package]]
+name = "openssl-macros"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c"
+dependencies = [
+ "proc-macro2",
+ "quote 1.0.35",
+ "syn 1.0.67",
+]
+
+[[package]]
 name = "openssl-probe"
 version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1913,11 +1978,10 @@ checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.66"
+version = "0.9.97"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1996d2d305e561b70d1ee0c53f1542833f4e1ac6ce9a6708b6ff2738ca67dc82"
+checksum = "c3eaad34cdd97d81de97964fc7f29e2d104f483840d906ef56daa1912338460b"
 dependencies = [
- "autocfg",
  "cc",
  "libc",
  "pkg-config",
@@ -1943,6 +2007,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "parking_lot_core"
+version = "0.9.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+ "redox_syscall 0.4.1",
+ "smallvec",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
 name = "path-slash"
 version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1956,21 +2033,21 @@ checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
 
 [[package]]
 name = "phf"
-version = "0.8.0"
+version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
+checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
 dependencies = [
- "phf_shared",
+ "phf_shared 0.10.0",
 ]
 
 [[package]]
 name = "phf_codegen"
-version = "0.8.0"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815"
+checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd"
 dependencies = [
- "phf_generator",
- "phf_shared",
+ "phf_generator 0.10.0",
+ "phf_shared 0.10.0",
 ]
 
 [[package]]
@@ -1979,11 +2056,21 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526"
 dependencies = [
- "phf_shared",
+ "phf_shared 0.8.0",
  "rand 0.7.3",
 ]
 
 [[package]]
+name = "phf_generator"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
+dependencies = [
+ "phf_shared 0.10.0",
+ "rand 0.8.3",
+]
+
+[[package]]
 name = "phf_shared"
 version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1993,10 +2080,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "phf_shared"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
 name = "pin-project-lite"
-version = "0.2.7"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
 
 [[package]]
 name = "pin-utils"
@@ -2017,6 +2113,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"
 
 [[package]]
+name = "polling"
+version = "3.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0c976a60b2d7e99d6f229e414670a9b85d13ac305cc6d1e9c134de58c5aaaf6"
+dependencies = [
+ "cfg-if 1.0.0",
+ "concurrent-queue",
+ "hermit-abi 0.3.9",
+ "pin-project-lite",
+ "rustix",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "ppv-lite86"
 version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2076,18 +2187,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
 
 [[package]]
-name = "proc-macro-nested"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086"
-
-[[package]]
 name = "proc-macro2"
-version = "1.0.24"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
- "unicode-xid 0.2.1",
+ "unicode-ident",
 ]
 
 [[package]]
@@ -2097,6 +2202,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b45c49fc4f91f35bae654f85ebb3a44d60ac64f11b3166ffa609def390c732d8"
 
 [[package]]
+name = "quick-xml"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
 name = "quote"
 version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2104,9 +2218,9 @@ checksum = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
 
 [[package]]
 name = "quote"
-version = "1.0.9"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -2279,6 +2393,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "redox_syscall"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+dependencies = [
+ "bitflags 1.2.1",
+]
+
+[[package]]
 name = "redox_users"
 version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2323,15 +2446,16 @@ dependencies = [
 
 [[package]]
 name = "reqwest"
-version = "0.11.4"
+version = "0.11.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "246e9f61b9bb77df069a947682be06e31ac43ea37862e244a69f177694ea6d22"
+checksum = "13293b639a097af28fc8a90f22add145a9c954e49d77da06263d58cf44d5fb91"
 dependencies = [
- "base64",
+ "base64 0.21.0",
  "bytes",
  "encoding_rs",
  "futures-core",
  "futures-util",
+ "h2",
  "http",
  "http-body",
  "hyper",
@@ -2339,24 +2463,27 @@ dependencies = [
  "hyper-tls",
  "ipnet",
  "js-sys",
- "lazy_static",
  "log",
  "mime",
  "native-tls",
+ "once_cell",
  "percent-encoding",
  "pin-project-lite",
  "rustls",
+ "rustls-pemfile",
  "serde",
+ "serde_json",
  "serde_urlencoded",
  "tokio",
  "tokio-native-tls",
  "tokio-rustls",
+ "tower-service",
  "url",
  "wasm-bindgen",
  "wasm-bindgen-futures",
  "web-sys",
  "webpki-roots",
- "winreg 0.7.0",
+ "winreg 0.10.1",
 ]
 
 [[package]]
@@ -2380,19 +2507,31 @@ version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb"
 dependencies = [
- "base64",
+ "base64 0.13.0",
  "blake2b_simd",
  "constant_time_eq",
  "crossbeam-utils",
 ]
 
 [[package]]
+name = "rustix"
+version = "0.38.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
+dependencies = [
+ "bitflags 2.4.1",
+ "errno 0.3.8",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "rustls"
-version = "0.19.1"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7"
+checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f"
 dependencies = [
- "base64",
  "log",
  "ring",
  "sct",
@@ -2400,6 +2539,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "rustls-pemfile"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b"
+dependencies = [
+ "base64 0.21.0",
+]
+
+[[package]]
 name = "ryu"
 version = "1.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2438,9 +2586,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
 
 [[package]]
 name = "sct"
-version = "0.6.1"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce"
+checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
 dependencies = [
  "ring",
  "untrusted",
@@ -2485,7 +2633,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9391c295d64fc0abb2c556bad848f33cb8296276b1ad2677d1ae1ace4f258f31"
 dependencies = [
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
 ]
 
@@ -2495,19 +2643,19 @@ version = "1.0.62"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ea1c6153794552ea7cf7cf63b1231a25de00ec90db326ba6264440fa08e31486"
 dependencies = [
- "itoa",
+ "itoa 0.4.7",
  "ryu",
  "serde",
 ]
 
 [[package]]
 name = "serde_urlencoded"
-version = "0.7.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "edfa57a7f8d9c1d260a549e7224100f6c43d43f9103e06dd8b4095a9b2b43ce9"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
 dependencies = [
  "form_urlencoded",
- "itoa",
+ "itoa 1.0.6",
  "ryu",
  "serde",
 ]
@@ -2556,40 +2704,52 @@ checksum = "729a25c17d72b06c68cb47955d44fda88ad2d3e7d77e025663fdd69b93dd71a1"
 
 [[package]]
 name = "slab"
-version = "0.4.3"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
 
 [[package]]
 name = "smallvec"
-version = "1.6.1"
+version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "smithay-client-toolkit"
-version = "0.15.4"
+version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a28f16a97fa0e8ce563b2774d1e732dd5d4025d2772c5dba0a41a0f90a29da3"
+checksum = "922fd3eeab3bd820d76537ce8f582b1cf951eceb5475c28500c7457d9d17f53a"
 dependencies = [
- "bitflags 1.2.1",
+ "bitflags 2.4.1",
+ "bytemuck",
  "calloop",
- "dlib",
- "lazy_static",
+ "calloop-wayland-source",
+ "cursor-icon",
+ "libc",
  "log",
- "memmap2",
- "nix 0.22.3",
+ "memmap2 0.9.4",
  "pkg-config",
+ "rustix",
+ "thiserror",
+ "wayland-backend",
  "wayland-client",
+ "wayland-csd-frame",
  "wayland-cursor",
  "wayland-protocols",
+ "wayland-protocols-wlr",
+ "wayland-scanner",
+ "xkbcommon",
+ "xkeysym",
 ]
 
 [[package]]
 name = "socket2"
-version = "0.4.1"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "765f090f0e423d2b55843402a07915add955e7d60657db13707a159727326cad"
+checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
 dependencies = [
  "libc",
  "winapi 0.3.9",
@@ -2602,12 +2762,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
 
 [[package]]
-name = "squote"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fccf17fd09e2455ea796d2ad267b64fa2c5cbd8701b2a93b555d2aa73449f7d"
-
-[[package]]
 name = "string_cache"
 version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2615,7 +2769,7 @@ checksum = "8ddb1139b5353f96e429e1a5e19fbaf663bddedaa06d1dbd49f82e352601209a"
 dependencies = [
  "lazy_static",
  "new_debug_unreachable",
- "phf_shared",
+ "phf_shared 0.8.0",
  "precomputed-hash",
  "serde",
 ]
@@ -2626,10 +2780,10 @@ version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f24c8e5e19d22a726626f1a5e16fe15b132dcf21d10177fa5a45ce7962996b97"
 dependencies = [
- "phf_generator",
- "phf_shared",
+ "phf_generator 0.8.0",
+ "phf_shared 0.8.0",
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
 ]
 
 [[package]]
@@ -2646,11 +2800,11 @@ checksum = "4ca6e4730f517e041e547ffe23d29daab8de6b73af4b6ae2a002108169f5e7da"
 
 [[package]]
 name = "strum"
-version = "0.20.0"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7318c509b5ba57f18533982607f24070a55d353e90d4cae30c467cdb2ad5ac5c"
+checksum = "f7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729e"
 dependencies = [
- "strum_macros 0.20.1",
+ "strum_macros 0.22.0",
 ]
 
 [[package]]
@@ -2665,13 +2819,13 @@ dependencies = [
 
 [[package]]
 name = "strum_macros"
-version = "0.20.1"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee8bc6b87a5112aeeab1f4a9f7ab634fe6cbefc4850006df31267f4cfb9e3149"
+checksum = "339f799d8b549e3744c7ac7feb216383e4005d94bdb22561b3ab8f3b808ae9fb"
 dependencies = [
- "heck",
+ "heck 0.3.2",
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
 ]
 
@@ -2693,11 +2847,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6498a9efc342871f91cc2d0d694c674368b4ceb40f62b65a7a08c3792935e702"
 dependencies = [
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "unicode-xid 0.2.1",
 ]
 
 [[package]]
+name = "syn"
+version = "2.0.48"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
+dependencies = [
+ "proc-macro2",
+ "quote 1.0.35",
+ "unicode-ident",
+]
+
+[[package]]
 name = "synom"
 version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2721,9 +2886,9 @@ dependencies = [
 
 [[package]]
 name = "sysinfo"
-version = "0.24.5"
+version = "0.28.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d80929a3b477bce3a64360ca82bfb361eacce1dcb7b1fb31e8e5e181e37c212"
+checksum = "b4c2f3ca6693feb29a89724516f016488e9aafc7f37264f898593ee4b942f31b"
 dependencies = [
  "cfg-if 1.0.0",
  "core-foundation-sys",
@@ -2796,7 +2961,7 @@ checksum = "956044ef122917dde830c19dec5f76d0670329fde4104836d62ebcb14f4865f1"
 dependencies = [
  "cfg-if 1.0.0",
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
  "version_check",
 ]
@@ -2812,22 +2977,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.23"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76cc616c6abf8c8928e2fdcc0dbfab37175edd8fb49a4641066ad1364fdab146"
+checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.23"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1"
+checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
 dependencies = [
  "proc-macro2",
- "quote 1.0.9",
- "syn 1.0.67",
+ "quote 1.0.35",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2858,18 +3023,18 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
 
 [[package]]
 name = "tokio"
-version = "1.10.1"
+version = "1.28.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92036be488bb6594459f2e03b60e42df6f937fe6ca5c5ffdcb539c6b84dc40f5"
+checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2"
 dependencies = [
  "autocfg",
  "bytes",
  "libc",
- "memchr",
- "mio 0.7.13",
+ "mio 0.8.6",
  "num_cpus",
  "pin-project-lite",
- "winapi 0.3.9",
+ "socket2",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -2884,9 +3049,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-rustls"
-version = "0.22.0"
+version = "0.23.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6"
+checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59"
 dependencies = [
  "rustls",
  "tokio",
@@ -2895,16 +3060,16 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.6.7"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1caa0b0c8d94a049db56b5acf8cba99dc0623aab1b26d5b5f5e2d945846b3592"
+checksum = "cc463cd8deddc3770d20f9852143d50bf6094e640b485cb2e189a2099085ff45"
 dependencies = [
  "bytes",
  "futures-core",
  "futures-sink",
- "log",
  "pin-project-lite",
  "tokio",
+ "tracing",
 ]
 
 [[package]]
@@ -2924,22 +3089,21 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6"
 
 [[package]]
 name = "tracing"
-version = "0.1.26"
+version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09adeb8c97449311ccd28a427f96fb563e7fd31aabf994189879d9da2394b89d"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
- "cfg-if 1.0.0",
  "pin-project-lite",
  "tracing-core",
 ]
 
 [[package]]
 name = "tracing-core"
-version = "0.1.19"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ca517f43f0fb96e0c3072ed5c275fe5eece87e8cb52f4a77b69226d3b1c9df8"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
 dependencies = [
- "lazy_static",
+ "once_cell",
 ]
 
 [[package]]
@@ -2976,6 +3140,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "246f4c42e67e7a4e3c6106ff716a5d067d4132a642840b242e357e468a2a0085"
 
 [[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
 name = "unicode-normalization"
 version = "0.1.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3099,14 +3269,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
 
 [[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
 name = "wasm-bindgen"
 version = "0.2.76"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8ce9b1b516211d33767048e5d47fa2a381ed8b76fc48d2ce4aa39877f9f183e0"
 dependencies = [
  "cfg-if 1.0.0",
- "serde",
- "serde_json",
  "wasm-bindgen-macro",
 ]
 
@@ -3120,7 +3294,7 @@ dependencies = [
  "lazy_static",
  "log",
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
  "wasm-bindgen-shared",
 ]
@@ -3143,7 +3317,7 @@ version = "0.2.76"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "44468aa53335841d9d6b6c023eaab07c0cd4bddbcfdee3e2bb1e8d2cb8069fef"
 dependencies = [
- "quote 1.0.9",
+ "quote 1.0.35",
  "wasm-bindgen-macro-support",
 ]
 
@@ -3154,7 +3328,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0195807922713af1e67dc66132c7328206ed9766af3858164fb583eedc25fbad"
 dependencies = [
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
@@ -3167,75 +3341,97 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "acdb075a845574a1fa5f09fd77e43f7747599301ea3417a9fbffdeedfc1f4a29"
 
 [[package]]
-name = "wayland-client"
-version = "0.29.5"
+name = "wayland-backend"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715"
+checksum = "9d50fa61ce90d76474c87f5fc002828d81b32677340112b4ef08079a9d459a40"
 dependencies = [
- "bitflags 1.2.1",
+ "cc",
  "downcast-rs",
- "libc",
- "nix 0.24.2",
+ "rustix",
  "scoped-tls",
- "wayland-commons",
- "wayland-scanner",
+ "smallvec",
  "wayland-sys",
 ]
 
 [[package]]
-name = "wayland-commons"
-version = "0.29.5"
+name = "wayland-client"
+version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902"
+checksum = "82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f"
 dependencies = [
- "nix 0.24.2",
- "once_cell",
- "smallvec",
- "wayland-sys",
+ "bitflags 2.4.1",
+ "rustix",
+ "wayland-backend",
+ "wayland-scanner",
+]
+
+[[package]]
+name = "wayland-csd-frame"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e"
+dependencies = [
+ "bitflags 2.4.1",
+ "cursor-icon",
+ "wayland-backend",
 ]
 
 [[package]]
 name = "wayland-cursor"
-version = "0.29.5"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661"
+checksum = "71ce5fa868dd13d11a0d04c5e2e65726d0897be8de247c0c5a65886e283231ba"
 dependencies = [
- "nix 0.24.2",
+ "rustix",
  "wayland-client",
  "xcursor",
 ]
 
 [[package]]
 name = "wayland-protocols"
-version = "0.29.5"
+version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6"
+checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4"
 dependencies = [
- "bitflags 1.2.1",
+ "bitflags 2.4.1",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-scanner",
+]
+
+[[package]]
+name = "wayland-protocols-wlr"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6"
+dependencies = [
+ "bitflags 2.4.1",
+ "wayland-backend",
  "wayland-client",
- "wayland-commons",
+ "wayland-protocols",
  "wayland-scanner",
 ]
 
 [[package]]
 name = "wayland-scanner"
-version = "0.29.5"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53"
+checksum = "63b3a62929287001986fb58c789dce9b67604a397c15c611ad9f747300b6c283"
 dependencies = [
  "proc-macro2",
- "quote 1.0.9",
- "xml-rs 0.8.3",
+ "quick-xml",
+ "quote 1.0.35",
 ]
 
 [[package]]
 name = "wayland-sys"
-version = "0.29.5"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4"
+checksum = "15a0c8eaff5216d07f226cb7a549159267f3467b289d9a2e52fd3ef5aae2b7af"
 dependencies = [
  "dlib",
- "lazy_static",
+ "log",
  "pkg-config",
 ]
 
@@ -3251,9 +3447,9 @@ dependencies = [
 
 [[package]]
 name = "webpki"
-version = "0.21.4"
+version = "0.22.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea"
+checksum = "07ecc0cd7cac091bf682ec5efa18b1cff79d617b84181f38b3951dbe135f607f"
 dependencies = [
  "ring",
  "untrusted",
@@ -3261,9 +3457,9 @@ dependencies = [
 
 [[package]]
 name = "webpki-roots"
-version = "0.21.1"
+version = "0.22.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940"
+checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87"
 dependencies = [
  "webpki",
 ]
@@ -3319,85 +3515,239 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows"
-version = "0.3.1"
+version = "0.24.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "426842497696b65fbfc575691d94ef65befb248ed1a8c4361e293c724e7ebe61"
+checksum = "a9f39345ae0c8ab072c0ac7fe8a8b411636aa34f89be19ddd0d9226544f13944"
 dependencies = [
- "const-sha1",
- "windows_gen",
- "windows_macros",
- "windows_winmd",
+ "windows_i686_gnu 0.24.0",
+ "windows_i686_msvc 0.24.0",
+ "windows_x86_64_gnu 0.24.0",
+ "windows_x86_64_msvc 0.24.0",
 ]
 
 [[package]]
-name = "windows_gen"
-version = "0.3.1"
+name = "windows-sys"
+version = "0.45.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77ac8f0f06b647f42ee5459a8e1ffe41795647582c5926ec3fa363a91aad7d77"
+checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
 dependencies = [
- "proc-macro2",
- "quote 1.0.9",
- "squote",
- "syn 1.0.67",
- "windows_gen_macros",
- "windows_winmd",
+ "windows-targets 0.42.2",
 ]
 
 [[package]]
-name = "windows_gen_macros"
-version = "0.3.1"
+name = "windows-sys"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23eac2169a20173b890c496f9e0e1149a92ef29fe4ba96026b72eec363b993f9"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
- "proc-macro2",
- "quote 1.0.9",
- "syn 1.0.67",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
-name = "windows_macros"
-version = "0.3.1"
+name = "windows-sys"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9edc57c944eec106c7823b425ab0fd9f90163489e50a4df747f65fcf9030e1fb"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "proc-macro2",
- "quote 1.0.9",
- "squote",
- "syn 1.0.67",
- "windows_gen",
- "windows_winmd",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
-name = "windows_winmd"
-version = "0.3.1"
+name = "windows-targets"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16d44527d04c9713312ed598f5d6ce3c453754dbfc03ddc376615be4415ffc88"
+checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
 dependencies = [
- "windows_winmd_macros",
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
 ]
 
 [[package]]
-name = "windows_winmd_macros"
-version = "0.3.1"
+name = "windows-targets"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2353f43f512938450614a176abf2b6cb31ac3b84fd71c88470fee571303e3f36"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
- "proc-macro2",
- "quote 1.0.9",
- "syn 1.0.67",
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
 ]
 
 [[package]]
-name = "winreg"
-version = "0.7.0"
+name = "windows-targets"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
 dependencies = [
- "winapi 0.3.9",
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
 ]
 
 [[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0866510a3eca9aed73a077490bbbf03e5eaac4e1fd70849d89539e5830501fd"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf0ffed56b7e9369a29078d2ab3aaeceea48eb58999d2cff3aa2494a275b95c6"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "384a173630588044205a2993b6864a2f56e5a8c1e7668c07b93ec18cf4888dc4"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bd8f062d8ca5446358159d79a90be12c543b3a965c847c8f3eedf14b321d399"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+
+[[package]]
 name = "winreg"
 version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3407,6 +3757,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "winreg"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d"
+dependencies = [
+ "winapi 0.3.9",
+]
+
+[[package]]
 name = "winres"
 version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3439,13 +3798,13 @@ dependencies = [
 
 [[package]]
 name = "winrt-notification"
-version = "0.3.1"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5ee9845acda665033013f93baec4f71ac0e60a391b530a5a83bdb966c1807ca"
+checksum = "007a0353840b23e0c6dc73e5b962ff58ed7f6bc9ceff3ce7fe6fbad8d496edf4"
 dependencies = [
- "strum 0.20.0",
+ "strum 0.22.0",
  "windows",
- "xml-rs 0.8.3",
+ "xml-rs 0.8.8",
 ]
 
 [[package]]
@@ -3468,6 +3827,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "xkbcommon"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13867d259930edc7091a6c41b4ce6eee464328c6ff9659b7e4c668ca20d4c91e"
+dependencies = [
+ "libc",
+ "memmap2 0.8.0",
+ "xkeysym",
+]
+
+[[package]]
+name = "xkeysym"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "054a8e68b76250b253f671d1268cb7f1ae089ec35e195b2efb2a4e9a836d0621"
+dependencies = [
+ "bytemuck",
+]
+
+[[package]]
 name = "xml-rs"
 version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3478,20 +3857,19 @@ dependencies = [
 
 [[package]]
 name = "xml-rs"
-version = "0.8.3"
+version = "0.8.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b07db065a5cf61a7e4ba64f29e67db906fb1787316516c4e6e5ff0fea1efcd8a"
+checksum = "4f20f14e2bd1fef6ec891d50dbb37c7290a0568a6bbd9020bf62010d02b6f80e"
 
 [[package]]
 name = "xml5ever"
-version = "0.16.1"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b1b52e6e8614d4a58b8e70cf51ec0cc21b256ad8206708bcff8139b5bbd6a59"
+checksum = "4034e1d05af98b51ad7214527730626f019682d797ba38b51689212118d8e650"
 dependencies = [
  "log",
  "mac",
  "markup5ever",
- "time",
 ]
 
 [[package]]
diff --git a/pkgs/applications/office/espanso/default.nix b/pkgs/applications/office/espanso/default.nix
index daa0114b018ca..c8883f36339e4 100644
--- a/pkgs/applications/office/espanso/default.nix
+++ b/pkgs/applications/office/espanso/default.nix
@@ -28,6 +28,7 @@
 , QTKit
 , AVKit
 , WebKit
+, System
 , waylandSupport ? false
 , x11Support ? stdenv.isLinux
 , testers
@@ -39,13 +40,13 @@ assert stdenv.isDarwin -> !x11Support;
 assert stdenv.isDarwin -> !waylandSupport;
 rustPlatform.buildRustPackage rec {
   pname = "espanso";
-  version = "2.1.8";
+  version = "2.2-unstable-2024-05-14";
 
   src = fetchFromGitHub {
     owner = "espanso";
     repo = "espanso";
-    rev = "v${version}";
-    hash = "sha256-5TUo5B1UZZARgTHbK2+520e3mGZkZ5tTez1qvZvMnxs=";
+    rev = "8daadcc949c35a7b7aa20b7f544fdcff83e2c5f7";
+    hash = "sha256-4MArENBmX6tDVLZE1O8cuJe7A0R+sLZoxBkDvIwIVZ4=";
   };
 
   cargoLock = {
@@ -55,10 +56,6 @@ rustPlatform.buildRustPackage rec {
     };
   };
 
-  cargoPatches = lib.optionals stdenv.isDarwin [
-    ./inject-wx-on-darwin.patch
-  ];
-
   nativeBuildInputs = [
     extra-cmake-modules
     pkg-config
@@ -70,7 +67,7 @@ rustPlatform.buildRustPackage rec {
   buildNoDefaultFeatures = true;
   buildFeatures = [
     "modulo"
-  ] ++ lib.optionals waylandSupport[
+  ] ++ lib.optionals waylandSupport [
     "wayland"
   ] ++ lib.optionals stdenv.isLinux [
     "vendored-tls"
@@ -96,6 +93,7 @@ rustPlatform.buildRustPackage rec {
     QTKit
     AVKit
     WebKit
+    System
   ] ++ lib.optionals waylandSupport [
     wl-clipboard
   ] ++ lib.optionals x11Support [
@@ -108,39 +106,39 @@ rustPlatform.buildRustPackage rec {
 
   postPatch = lib.optionalString stdenv.isDarwin ''
     substituteInPlace scripts/create_bundle.sh \
-      --replace target/mac/ $out/Applications/ \
-      --replace /bin/echo ${coreutils}/bin/echo
+      --replace-fail target/mac/ $out/Applications/ \
+      --replace-fail /bin/echo ${coreutils}/bin/echo
     patchShebangs scripts/create_bundle.sh
     substituteInPlace espanso/src/res/macos/Info.plist \
-      --replace "<string>espanso</string>" "<string>${placeholder "out"}/Applications/Espanso.app/Contents/MacOS/espanso</string>"
-    substituteInPlace espanso/src/res/macos/com.federicoterzi.espanso.plist \
-      --replace "<string>/Applications/Espanso.app/Contents/MacOS/espanso</string>" "<string>${placeholder "out"}/Applications/Espanso.app/Contents/MacOS/espanso</string>" \
-      --replace "<string>/usr/bin" "<string>${placeholder "out"}/bin:/usr/bin"
+      --replace-fail "<string>espanso</string>" "<string>${placeholder "out"}/Applications/Espanso.app/Contents/MacOS/espanso</string>"
     substituteInPlace espanso/src/path/macos.rs  espanso/src/path/linux.rs \
-      --replace '"/usr/local/bin/espanso"' '"${placeholder "out"}/bin/espanso"'
+      --replace-fail '"/usr/local/bin/espanso"' '"${placeholder "out"}/bin/espanso"'
   '';
 
   # Some tests require networking
   doCheck = false;
 
-  postInstall = if stdenv.isDarwin then ''
-    EXEC_PATH=$out/bin/espanso BUILD_ARCH=current ${stdenv.shell} ./scripts/create_bundle.sh
-  '' else ''
-    wrapProgram $out/bin/espanso \
-      --prefix PATH : ${lib.makeBinPath (
-        lib.optionals stdenv.isLinux [
-          libnotify
-          setxkbmap
-        ] ++ lib.optionals waylandSupport [
-          wl-clipboard
-        ] ++ lib.optionals x11Support [
-          xclip
-        ]
-      )}
-  '';
+  postInstall =
+    if stdenv.isDarwin then ''
+      EXEC_PATH=$out/bin/espanso BUILD_ARCH=current ${stdenv.shell} ./scripts/create_bundle.sh
+    '' else ''
+      wrapProgram $out/bin/espanso \
+        --prefix PATH : ${lib.makeBinPath (
+          lib.optionals stdenv.isLinux [
+            libnotify
+            setxkbmap
+          ] ++ lib.optionals waylandSupport [
+            wl-clipboard
+          ] ++ lib.optionals x11Support [
+            xclip
+          ]
+        )}
+    '';
 
   passthru.tests.version = testers.testVersion {
     package = espanso;
+    # remove when updating to a release version
+    version = "2.2.1";
   };
 
   meta = with lib; {
@@ -148,8 +146,15 @@ rustPlatform.buildRustPackage rec {
     mainProgram = "espanso";
     homepage = "https://espanso.org";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ kimat pyrox0 ];
+    maintainers = with maintainers; [ kimat pyrox0 n8henrie ];
     platforms = platforms.unix;
+    # With apple_sdk_10_12,
+    # kCFURLVolumeAvailableCapacityForImportantUsageKey
+    # is undefined.
+    # With apple_sdk_11_0, there is an issue with
+    # kColorSyncGenericGrayProfile.
+    broken = stdenv.hostPlatform.system == "x86_64-darwin";
+
 
     longDescription = ''
       Espanso detects when you type a keyword and replaces it while you're typing.
diff --git a/pkgs/applications/office/espanso/inject-wx-on-darwin.patch b/pkgs/applications/office/espanso/inject-wx-on-darwin.patch
deleted file mode 100644
index 34b7112119274..0000000000000
--- a/pkgs/applications/office/espanso/inject-wx-on-darwin.patch
+++ /dev/null
@@ -1,223 +0,0 @@
-From 6a7400c20831c5ff502c7336d6db2be743f156be Mon Sep 17 00:00:00 2001
-From: Nikola Knezevic <nikola.knezevic@imc.com>
-Date: Tue, 16 Aug 2022 22:28:46 +0200
-Subject: [PATCH] Build using system wx on darwin
-
----
- espanso-modulo/build.rs | 174 ++++------------------------------------
- 1 file changed, 17 insertions(+), 157 deletions(-)
-
-diff --git a/espanso-modulo/build.rs b/espanso-modulo/build.rs
-index b8b889a..5d972ec 100644
---- a/espanso-modulo/build.rs
-+++ b/espanso-modulo/build.rs
-@@ -156,161 +156,6 @@ fn build_native() {
-   );
- }
- 
--#[cfg(target_os = "macos")]
--fn build_native() {
--  use std::process::Command;
--
--  let project_dir =
--    PathBuf::from(std::env::var("CARGO_MANIFEST_DIR").expect("missing CARGO_MANIFEST_DIR"));
--  let wx_archive = project_dir.join("vendor").join(WX_WIDGETS_ARCHIVE_NAME);
--  if !wx_archive.is_file() {
--    panic!("could not find wxWidgets archive!");
--  }
--
--  let out_dir = if let Ok(out_path) = std::env::var(WX_WIDGETS_BUILD_OUT_DIR_ENV_NAME) {
--    println!(
--      "detected wxWidgets build output directory override: {}",
--      out_path
--    );
--    let path = PathBuf::from(out_path);
--    std::fs::create_dir_all(&path).expect("unable to create wxWidgets out dir");
--    path
--  } else {
--    PathBuf::from(std::env::var("OUT_DIR").expect("missing OUT_DIR"))
--  };
--  let out_wx_dir = out_dir.join("wx");
--  println!("wxWidgets will be compiled into: {}", out_wx_dir.display());
--
--  let target_arch = match std::env::var("CARGO_CFG_TARGET_ARCH")
--    .expect("unable to read target arch")
--    .as_str()
--  {
--    "x86_64" => "x86_64",
--    "aarch64" => "arm64",
--    arch => panic!("unsupported arch {}", arch),
--  };
--
--  let should_use_ci_m1_workaround =
--    std::env::var("CI").unwrap_or_default() == "true" && target_arch == "arm64";
--
--  if !out_wx_dir.is_dir() {
--    // Extract the wxWidgets archive
--    let wx_archive =
--      std::fs::File::open(&wx_archive).expect("unable to open wxWidgets source archive");
--    let mut archive = zip::ZipArchive::new(wx_archive).expect("unable to read wxWidgets archive");
--    archive
--      .extract(&out_wx_dir)
--      .expect("unable to extract wxWidgets source dir");
--
--    // Compile wxWidgets
--    let build_dir = out_wx_dir.join("build-cocoa");
--    std::fs::create_dir_all(&build_dir).expect("unable to create build-cocoa directory");
--
--    let mut handle = if should_use_ci_m1_workaround {
--      // Because of a configuration problem on the GitHub CI pipeline,
--      // we need to use a series of workarounds to build for M1 machines.
--      // See: https://github.com/actions/virtual-environments/issues/3288#issuecomment-830207746
--      Command::new(out_wx_dir.join("configure"))
--        .current_dir(build_dir.to_string_lossy().to_string())
--        .args(&[
--          "--disable-shared",
--          "--without-libtiff",
--          "--without-liblzma",
--          "--with-libjpeg=builtin",
--          "--with-libpng=builtin",
--          "--enable-universal-binary=arm64,x86_64",
--        ])
--        .spawn()
--        .expect("failed to execute configure")
--    } else {
--      Command::new(out_wx_dir.join("configure"))
--        .current_dir(build_dir.to_string_lossy().to_string())
--        .args(&[
--          "--disable-shared",
--          "--without-libtiff",
--          "--without-liblzma",
--          "--with-libjpeg=builtin",
--          "--with-libpng=builtin",
--          &format!("--enable-macosx_arch={}", target_arch),
--        ])
--        .spawn()
--        .expect("failed to execute configure")
--    };
--
--    if !handle
--      .wait()
--      .expect("unable to wait for configure command")
--      .success()
--    {
--      panic!("configure returned non-zero exit code!");
--    }
--
--    let mut handle = Command::new("make")
--      .current_dir(build_dir.to_string_lossy().to_string())
--      .args(&["-j8"])
--      .spawn()
--      .expect("failed to execute make");
--    if !handle
--      .wait()
--      .expect("unable to wait for make command")
--      .success()
--    {
--      panic!("make returned non-zero exit code!");
--    }
--  }
--
--  // Make sure wxWidgets is compiled
--  if !out_wx_dir.join("build-cocoa").is_dir() {
--    panic!("wxWidgets is not compiled correctly, missing 'build-cocoa/' directory")
--  }
--
--  // If using the M1 CI workaround, convert all the universal libraries to arm64 ones
--  // This is needed until https://github.com/rust-lang/rust/issues/55235 is fixed
--  if should_use_ci_m1_workaround {
--    convert_fat_libraries_to_arm(&out_wx_dir.join("build-cocoa").join("lib"));
--    convert_fat_libraries_to_arm(&out_wx_dir.join("build-cocoa"));
--  }
--
--  let config_path = out_wx_dir.join("build-cocoa").join("wx-config");
--  let cpp_flags = get_cpp_flags(&config_path);
--
--  let mut build = cc::Build::new();
--  build
--    .cpp(true)
--    .file("src/sys/form/form.cpp")
--    .file("src/sys/common/common.cpp")
--    .file("src/sys/search/search.cpp")
--    .file("src/sys/wizard/wizard.cpp")
--    .file("src/sys/wizard/wizard_gui.cpp")
--    .file("src/sys/welcome/welcome.cpp")
--    .file("src/sys/welcome/welcome_gui.cpp")
--    .file("src/sys/textview/textview.cpp")
--    .file("src/sys/textview/textview_gui.cpp")
--    .file("src/sys/troubleshooting/troubleshooting.cpp")
--    .file("src/sys/troubleshooting/troubleshooting_gui.cpp")
--    .file("src/sys/common/mac.mm");
--  build.flag("-std=c++17");
--
--  for flag in cpp_flags {
--    build.flag(&flag);
--  }
--
--  build.compile("espansomodulosys");
--
--  // Render linker flags
--
--  generate_linker_flags(&config_path);
--
--  // On (older) OSX we need to link against the clang runtime,
--  // which is hidden in some non-default path.
--  //
--  // More details at https://github.com/alexcrichton/curl-rust/issues/279.
--  if let Some(path) = macos_link_search_path() {
--    println!("cargo:rustc-link-lib=clang_rt.osx");
--    println!("cargo:rustc-link-search={}", path);
--  }
--}
--
- #[cfg(target_os = "macos")]
- fn convert_fat_libraries_to_arm(lib_dir: &Path) {
-   for entry in
-@@ -440,12 +285,17 @@ fn macos_link_search_path() -> Option<String> {
-   None
- }
- 
-+#[cfg(not(target_os = "macos"))]
-+fn macos_link_search_path() -> Option<String> {
-+    return None
-+}
-+
- // TODO: add documentation for linux
- // Install wxWidgets:
- // sudo apt install libwxgtk3.0-0v5 libwxgtk3.0-dev
- //
- // cargo run
--#[cfg(target_os = "linux")]
-+#[cfg(not(target_os = "windows"))]
- fn build_native() {
-   // Make sure wxWidgets is installed
-   // Depending on the installation package, the 'wx-config' command might also be available as 'wx-config-gtk3',
-@@ -483,7 +333,8 @@ fn build_native() {
-     .file("src/sys/textview/textview.cpp")
-     .file("src/sys/textview/textview_gui.cpp")
-     .file("src/sys/troubleshooting/troubleshooting.cpp")
--    .file("src/sys/troubleshooting/troubleshooting_gui.cpp");
-+    .file("src/sys/troubleshooting/troubleshooting_gui.cpp")
-+    .file("src/sys/common/mac.mm");
-   build.flag("-std=c++17");
- 
-   for flag in cpp_flags {
-@@ -495,6 +346,15 @@ fn build_native() {
-   // Render linker flags
- 
-   generate_linker_flags(&config_path);
-+
-+  // On (older) OSX we need to link against the clang runtime,
-+  // which is hidden in some non-default path.
-+  //
-+  // More details at https://github.com/alexcrichton/curl-rust/issues/279.
-+  if let Some(path) = macos_link_search_path() {
-+    println!("cargo:rustc-link-lib=clang_rt.osx");
-+    println!("cargo:rustc-link-search={}", path);
-+  }
- }
- 
- fn main() {
--- 
-2.37.1
-
diff --git a/pkgs/applications/office/foliate/default.nix b/pkgs/applications/office/foliate/default.nix
index e1f915075b970..4cd888468eaf6 100644
--- a/pkgs/applications/office/foliate/default.nix
+++ b/pkgs/applications/office/foliate/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A simple and modern GTK eBook reader";
+    description = "Simple and modern GTK eBook reader";
     homepage = "https://johnfactotum.github.io/foliate";
     changelog = "https://github.com/johnfactotum/foliate/releases/tag/${version}";
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/office/gnote/default.nix b/pkgs/applications/office/gnote/default.nix
index a4262de9937f7..6a77eb0534a66 100644
--- a/pkgs/applications/office/gnote/default.nix
+++ b/pkgs/applications/office/gnote/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/gnote";
-    description = "A note taking application";
+    description = "Note taking application";
     mainProgram = "gnote";
     maintainers = with maintainers; [ jfvillablanca ];
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/office/gnumeric/default.nix b/pkgs/applications/office/gnumeric/default.nix
index a3c16d5d86fe1..d9b376a1962e7 100644
--- a/pkgs/applications/office/gnumeric/default.nix
+++ b/pkgs/applications/office/gnumeric/default.nix
@@ -34,7 +34,7 @@ in stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "The GNOME Office Spreadsheet";
+    description = "GNOME Office Spreadsheet";
     license = lib.licenses.gpl2Plus;
     homepage = "http://projects.gnome.org/gnumeric/";
     platforms = platforms.unix;
diff --git a/pkgs/applications/office/grisbi/default.nix b/pkgs/applications/office/grisbi/default.nix
index 586777ccf41e0..846b4180625ab 100644
--- a/pkgs/applications/office/grisbi/default.nix
+++ b/pkgs/applications/office/grisbi/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A personnal accounting application";
+    description = "Personnal accounting application";
     mainProgram = "grisbi";
     longDescription = ''
       Grisbi is an application written by French developers, so it perfectly
diff --git a/pkgs/applications/office/homebank/default.nix b/pkgs/applications/office/homebank/default.nix
index 0e9531b61d285..000942ff68bdd 100644
--- a/pkgs/applications/office/homebank/default.nix
+++ b/pkgs/applications/office/homebank/default.nix
@@ -3,12 +3,16 @@
 
 stdenv.mkDerivation rec {
   pname = "homebank";
-  version = "5.8";
+  version = "5.8.1";
   src = fetchurl {
     url = "https://www.gethomebank.org/public/sources/homebank-${version}.tar.gz";
-    hash = "sha256-tgjcz4znnw++5lBoJDWtHKpRFENfM0xBpyhGf8nAACw=";
+    hash = "sha256-YMNf6v40GuyP7Z3ksKh13A9cFnTF9YBP9xkKbGxT3AE=";
   };
 
+  patches = [
+    ./fix-clang-build.diff
+  ];
+
   nativeBuildInputs = [ pkg-config wrapGAppsHook3 intltool ];
   buildInputs = [ gtk libofx libsoup_3 gnome.adwaita-icon-theme];
 
diff --git a/pkgs/applications/office/homebank/fix-clang-build.diff b/pkgs/applications/office/homebank/fix-clang-build.diff
new file mode 100644
index 0000000000000..1b8c7fd359e23
--- /dev/null
+++ b/pkgs/applications/office/homebank/fix-clang-build.diff
@@ -0,0 +1,23 @@
+C Standard says in 6.8.1:
+
+    labeled-statement:
+      identifier : statement
+      case constant-expression : statement
+      default : statement
+
+Notably, only expressions and no declarations are allowed. A common workaround for this
+is adding an empty statement.
+
+diff --git a/src/rep-budget.c b/src/rep-budget.c
+index eb5cce6..61e2e77 100644
+--- a/src/rep-budget.c
++++ b/src/rep-budget.c
+@@ -255,7 +255,7 @@ gint tmpmode;
+ 	}
+ 	else
+ 	{
+-libname:
++libname: ;
+ 	gchar *name;
+ 	
+ 		gtk_tree_model_get(model, iter, 
diff --git a/pkgs/applications/office/kexi/default.nix b/pkgs/applications/office/kexi/default.nix
index 37240b8ac5691..132194d0c7824 100644
--- a/pkgs/applications/office/kexi/default.nix
+++ b/pkgs/applications/office/kexi/default.nix
@@ -40,7 +40,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A open source visual database applications creator, a long-awaited competitor for programs like MS Access or Filemaker";
+    description = "Open source visual database applications creator, a long-awaited competitor for programs like MS Access or Filemaker";
     longDescription = ''
       Kexi is a visual database applications creator.
       It can be used for creating database schemas,
diff --git a/pkgs/applications/office/kitsas/default.nix b/pkgs/applications/office/kitsas/default.nix
index e1b3a2b1a7292..28064da7fe4cb 100644
--- a/pkgs/applications/office/kitsas/default.nix
+++ b/pkgs/applications/office/kitsas/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/artoh/kitupiikki";
-    description = "An accounting tool suitable for Finnish associations and small business";
+    description = "Accounting tool suitable for Finnish associations and small business";
     mainProgram = "kitsas";
     maintainers = with maintainers; [ gspia ];
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/office/ledger-web/default.nix b/pkgs/applications/office/ledger-web/default.nix
index e19d4492ac918..00e3636fc3971 100644
--- a/pkgs/applications/office/ledger-web/default.nix
+++ b/pkgs/applications/office/ledger-web/default.nix
@@ -14,7 +14,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "ledger-web";
 
   meta = with lib; {
-    description = "A web frontend to the Ledger CLI tool";
+    description = "Web frontend to the Ledger CLI tool";
     homepage = "https://github.com/peterkeen/ledger-web";
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg manveru nicknovitski ];
diff --git a/pkgs/applications/office/libreoffice/darwin/default.nix b/pkgs/applications/office/libreoffice/darwin/default.nix
index a8060a183d9cd..c81d08d31d98f 100644
--- a/pkgs/applications/office/libreoffice/darwin/default.nix
+++ b/pkgs/applications/office/libreoffice/darwin/default.nix
@@ -63,11 +63,8 @@ stdenvNoCC.mkDerivation {
         #!nix-shell -i bash --argstr aarch64Url ${aarch64Url} --argstr x86_64Url ${x86_64Url} --argstr version ${version} ${updateNix}
         set -eou pipefail
 
-        # reset version first so that both platforms are always updated and in sync
-        update-source-version libreoffice-bin 0 ${lib.fakeSha256} --file=${defaultNixFile} --system=aarch64-darwin
-        update-source-version libreoffice-bin $newVersion $newAarch64Sha256 --file=${defaultNixFile} --system=aarch64-darwin
-        update-source-version libreoffice-bin 0 ${lib.fakeSha256} --file=${defaultNixFile} --system=x86_64-darwin
-        update-source-version libreoffice-bin $newVersion $newX86_64Sha256 --file=${defaultNixFile} --system=x86_64-darwin
+        update-source-version libreoffice-bin $newVersion $newAarch64Sha256 --file=${defaultNixFile} --system=aarch64-darwin --ignore-same-version
+        update-source-version libreoffice-bin $newVersion $newX86_64Sha256 --file=${defaultNixFile} --system=x86_64-darwin --ignore-same-version
       '';
 
   meta = with lib; {
diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix
index 7007b59b30129..d679b168e24ff 100644
--- a/pkgs/applications/office/libreoffice/default.nix
+++ b/pkgs/applications/office/libreoffice/default.nix
@@ -47,7 +47,7 @@
 , libGLU
 , libGL
 , bsh
-, CoinMP
+, coinmp
 , libwps
 , libabw
 , libargon2
@@ -97,7 +97,7 @@
 , libetonyek
 , liborcus
 , libpng
-, langs ? [ "ar" "ca" "cs" "da" "de" "en-GB" "en-US" "eo" "es" "fi" "fr" "hu" "it" "ja" "nl" "pl" "pt" "pt-BR" "ro" "ru" "sl" "tr" "uk" "zh-CN" ]
+, langs ? [ "ar" "ca" "cs" "da" "de" "en-GB" "en-US" "eo" "es" "fi" "fr" "hu" "it" "ja" "nl" "pl" "pt" "pt-BR" "ro" "ru" "sk" "sl" "tr" "uk" "zh-CN" ]
 , withHelp ? true
 , kdeIntegration ? false
 , qtbase ? null
@@ -288,7 +288,7 @@ in stdenv.mkDerivation (finalAttrs: {
     # See: https://www.mail-archive.com/libreoffice@lists.freedesktop.org/msg334080.html
     (libpng.override { apngSupport = false; })
     perlPackages.ArchiveZip
-    CoinMP
+    coinmp
     perlPackages.IOCompress
     abseil-cpp
     ant
diff --git a/pkgs/applications/office/mendeley/default.nix b/pkgs/applications/office/mendeley/default.nix
index 38c4fdb78cd83..acfa14dabb7de 100644
--- a/pkgs/applications/office/mendeley/default.nix
+++ b/pkgs/applications/office/mendeley/default.nix
@@ -7,13 +7,13 @@
 
 let
   pname = "mendeley";
-  version = "2.114.1";
+  version = "2.115.0";
 
   executableName = "${pname}-reference-manager";
 
   src = fetchurl {
     url = "https://static.mendeley.com/bin/desktop/mendeley-reference-manager-${version}-x86_64.AppImage";
-    hash = "sha256-bvX5onyTPc4G+9PcrSXhsfkNbU6DZ5T3ljf+r77bjKw=";
+    hash = "sha256-ir96BQQ+dlUv2aNU9iQ+jnpeLE3D3ow9RPGstREUWNA=";
   };
 
   appimageContents = appimageTools.extractType2 {
@@ -34,7 +34,7 @@ in appimageTools.wrapType2 {
 
   meta = with lib; {
     homepage = "https://www.mendeley.com";
-    description = "A reference manager and academic social network";
+    description = "Reference manager and academic social network";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/office/morgen/default.nix b/pkgs/applications/office/morgen/default.nix
index 5f6c9ea5c1197..7bae5b5388d7a 100644
--- a/pkgs/applications/office/morgen/default.nix
+++ b/pkgs/applications/office/morgen/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "morgen";
-  version = "3.4.2";
+  version = "3.4.5";
 
   src = fetchurl {
     url = "https://dl.todesktop.com/210203cqcj00tw1/versions/${version}/linux/deb";
-    hash = "sha256-N9G9yfUhKZd3dcsyBKODL6vnMqQgLk2DRQ+YZAYdPks=";
+    hash = "sha256-5oBIw9PVbEGF1e47GeYNF6gJFm5z3M9KeJ1711cAg2s=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/notes/default.nix b/pkgs/applications/office/notes/default.nix
index dda8ddb5beacf..7f41ca33e3dcf 100644
--- a/pkgs/applications/office/notes/default.nix
+++ b/pkgs/applications/office/notes/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A fast and beautiful note-taking app";
+    description = "Fast and beautiful note-taking app";
     mainProgram = "notes";
     downloadPage = "https://github.com/nuttyartist/notes";
     homepage = "https://www.get-notes.com";
diff --git a/pkgs/applications/office/notion-app-enhanced/default.nix b/pkgs/applications/office/notion-app-enhanced/default.nix
index 61dd21920ae1d..59c36ab17a876 100644
--- a/pkgs/applications/office/notion-app-enhanced/default.nix
+++ b/pkgs/applications/office/notion-app-enhanced/default.nix
@@ -20,7 +20,7 @@ in appimageTools.wrapType2 {
   '';
 
   meta = with lib; {
-    description = "Notion Desktop builds with Notion Enhancer for Windows, MacOS and Linux.";
+    description = "Notion Desktop builds with Notion Enhancer for Windows, MacOS and Linux";
     homepage = "https://github.com/notion-enhancer/desktop";
     license = licenses.unfree;
     maintainers = with maintainers; [ sei40kr ];
diff --git a/pkgs/applications/office/osmo/default.nix b/pkgs/applications/office/osmo/default.nix
index 7dc7444379cc7..c49d9bc2c4259 100644
--- a/pkgs/applications/office/osmo/default.nix
+++ b/pkgs/applications/office/osmo/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     gspell webkitgtk libgringotts ];
 
   meta = with lib; {
-    description = "A handy personal organizer";
+    description = "Handy personal organizer";
     mainProgram = "osmo";
     homepage = "https://clayo.org/osmo/";
     license = licenses.gpl2;
diff --git a/pkgs/applications/office/p3x-onenote/default.nix b/pkgs/applications/office/p3x-onenote/default.nix
index 730a9d81b2f55..08e86d5013288 100644
--- a/pkgs/applications/office/p3x-onenote/default.nix
+++ b/pkgs/applications/office/p3x-onenote/default.nix
@@ -11,8 +11,8 @@ let
   }.${stdenv.hostPlatform.system};
 
   sha256 = {
-    aarch64-linux = "0plpwymm1bgzbzwk2689lw1fadxdwxzzn5dmayk1ayxz1k3pj9wi";
-    armv7l-linux = "1pvr8f1ccl4nyfmshn3v3jfaa5x519rsy57g4pdapffj10vpbkb8";
+    aarch64-linux = "sha256-HFuxmMo0m4UOxEQVd32LGvbFsOS8jwCCCS6K/YJIIBE=";
+    armv7l-linux = "sha256-JMgYvqkaRw5sfjbKybAkk28KT12+c19dMir2DUN7Ub0=";
     x86_64-linux = "sha256-hr/mPOrliP8Dej3DVE2+wYkb1J789WCkkY3xe9EcM44=";
   }.${stdenv.hostPlatform.system};
 
diff --git a/pkgs/applications/office/paperless-ngx/default.nix b/pkgs/applications/office/paperless-ngx/default.nix
index 554e86664f1b3..a46498a0f0017 100644
--- a/pkgs/applications/office/paperless-ngx/default.nix
+++ b/pkgs/applications/office/paperless-ngx/default.nix
@@ -7,7 +7,7 @@
 , python3
 , giflib
 , darwin
-, ghostscript
+, ghostscript_headless
 , imagemagickBig
 , jbig2enc
 , optipng
@@ -24,13 +24,13 @@
 }:
 
 let
-  version = "2.8.6";
+  version = "2.9.0";
 
   src = fetchFromGitHub {
     owner = "paperless-ngx";
     repo = "paperless-ngx";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Jcy/nds/JuivRV8mRtq2FbBB2L/CGqmoHoG1wVCwHFU=";
+    hash = "sha256-7dcZbuz3yi0sND6AEqIwIo9byeZheOpIAhmBpOW5lhU=";
   };
 
   # subpath installation is broken with uvicorn >= 0.26
@@ -50,12 +50,24 @@ let
           hash = "sha256-ng98DTw49zyFjrPnEwfnPfONyjKKZYuLl0qduxSppYk=";
         };
       });
+
+      djangorestframework = prev.djangorestframework.overridePythonAttrs (oldAttrs: rec {
+        version = "3.14.0";
+        src = oldAttrs.src.override {
+          rev = version;
+          hash = "sha256-Fnj0n3NS3SetOlwSmGkLE979vNJnYE6i6xwVBslpNz4=";
+        };
+        nativeCheckInputs = with prev; [
+          pytest7CheckHook
+          pytest-django
+        ];
+      });
     };
   };
 
 
   path = lib.makeBinPath [
-    ghostscript
+    ghostscript_headless
     imagemagickBig
     jbig2enc
     optipng
@@ -74,7 +86,7 @@ let
       cd src-ui
     '';
 
-    npmDepsHash = "sha256-xRUZnFekzWHPtlUbpt0JZmlNjdjS1bBZDz8MmH8DC2U=";
+    npmDepsHash = "sha256-gLEzifZK8Ok1SOo3YIIV5pTx4cbedQh025VqkodYrYQ=";
 
     nativeBuildInputs = [
       pkg-config
@@ -248,6 +260,8 @@ python.pkgs.buildPythonApplication rec {
     # AssertionError: 10 != 4 (timezone/time issue)
     # Due to getting local time from modification date in test_consumer.py
     "testNormalOperation"
+    # Something broken with new Tesseract and inline RTL/LTR overrides?
+    "test_rtl_language_detection"
   ];
 
   doCheck = !stdenv.isDarwin;
diff --git a/pkgs/applications/office/paperwork/paperwork-backend.nix b/pkgs/applications/office/paperwork/paperwork-backend.nix
index b5620d3f40df0..4460e50ab6246 100644
--- a/pkgs/applications/office/paperwork/paperwork-backend.nix
+++ b/pkgs/applications/office/paperwork/paperwork-backend.nix
@@ -1,7 +1,6 @@
 { buildPythonPackage
 , lib
 , fetchFromGitLab
-, fetchpatch
 , pyenchant
 , scikit-learn
 , pypillowfight
@@ -34,13 +33,6 @@ buildPythonPackage rec {
   sourceRoot = "${src.name}/paperwork-backend";
 
   patches = [
-    # fixes building with recent scipy
-    # remove on next release
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/World/OpenPaperwork/paperwork/-/commit/abcebfe9714644d4e259e53b10e0e9417b5b864f.patch";
-      hash = "sha256-YjVpphThW5Livs+PZJZDSgJvhLSXhZ1bnlWMwfY4HTg=";
-    })
-
     # disables a flaky test https://gitlab.gnome.org/World/OpenPaperwork/paperwork/-/issues/1035#note_1493700
     ./flaky_test.patch
   ];
diff --git a/pkgs/applications/office/paperwork/paperwork-gtk.nix b/pkgs/applications/office/paperwork/paperwork-gtk.nix
index 9e6beb5053a40..2393ac0ece553 100644
--- a/pkgs/applications/office/paperwork/paperwork-gtk.nix
+++ b/pkgs/applications/office/paperwork/paperwork-gtk.nix
@@ -143,7 +143,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = {
-    description = "A personal document manager for scanned documents";
+    description = "Personal document manager for scanned documents";
     homepage = "https://openpaper.work/";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ aszlig symphorien ];
diff --git a/pkgs/applications/office/paperwork/src.nix b/pkgs/applications/office/paperwork/src.nix
index 2f61689611d60..2f54b435928f6 100644
--- a/pkgs/applications/office/paperwork/src.nix
+++ b/pkgs/applications/office/paperwork/src.nix
@@ -1,13 +1,13 @@
 {fetchFromGitLab}:
 rec {
-  version = "2.2.2";
+  version = "2.2.3";
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     repo = "paperwork";
     group = "World";
     owner = "OpenPaperwork";
     rev = version;
-    sha256 = "sha256-fVw+W10yEPLf6IUyaDpnmu7tPOqbvNLE8IK8mjHvurQ=";
+    sha256 = "sha256-xQN1IUbTQEHtyW5F8Zbg2EUN5K87oYqnSdzo0gEeOfI=";
   };
   sample_documents = fetchFromGitLab {
     domain = "gitlab.gnome.org";
diff --git a/pkgs/applications/office/pdfmixtool/default.nix b/pkgs/applications/office/pdfmixtool/default.nix
index 2aeca54c1e966..73a5b54cb4424 100644
--- a/pkgs/applications/office/pdfmixtool/default.nix
+++ b/pkgs/applications/office/pdfmixtool/default.nix
@@ -50,7 +50,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An application to split, merge, rotate and mix PDF files";
+    description = "Application to split, merge, rotate and mix PDF files";
     mainProgram = "pdfmixtool";
     homepage = "https://gitlab.com/scarpetta/pdfmixtool";
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/office/pinpoint/default.nix b/pkgs/applications/office/pinpoint/default.nix
index ca91b33ecae6e..d0b682e9b9663 100644
--- a/pkgs/applications/office/pinpoint/default.nix
+++ b/pkgs/applications/office/pinpoint/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/Archive/pinpoint";
-    description = "A tool for making hackers do excellent presentations";
+    description = "Tool for making hackers do excellent presentations";
     license = licenses.lgpl21;
     platforms = platforms.linux;
     maintainers = with maintainers; [ pSub ];
diff --git a/pkgs/applications/office/planify/default.nix b/pkgs/applications/office/planify/default.nix
index 6188ffa767416..f3f8f76de017e 100644
--- a/pkgs/applications/office/planify/default.nix
+++ b/pkgs/applications/office/planify/default.nix
@@ -7,7 +7,7 @@
 , pkg-config
 , vala
 , wrapGAppsHook4
-, evolution-data-server
+, evolution-data-server-gtk4
 , glib
 , glib-networking
 , gst_all_1
@@ -28,13 +28,13 @@
 
 stdenv.mkDerivation rec {
   pname = "planify";
-  version = "4.7.4";
+  version = "4.8.2";
 
   src = fetchFromGitHub {
     owner = "alainm23";
     repo = "planify";
     rev = version;
-    hash = "sha256-x76HasjETqXqE5yXE69/69NAYEWAksHSt0nYRq8/P0k=";
+    hash = "sha256-IwFA/4QGfkMYbuUxbg3/jkrud0MUlEjtkYtCLy+3emc=";
   };
 
   nativeBuildInputs = [
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    evolution-data-server
+    evolution-data-server-gtk4
     glib
     glib-networking
     # Needed for GtkMediaStream creation with success.ogg, see #311295.
diff --git a/pkgs/applications/office/portfolio/default.nix b/pkgs/applications/office/portfolio/default.nix
index c320729ee9ee6..72cf6cbb57523 100644
--- a/pkgs/applications/office/portfolio/default.nix
+++ b/pkgs/applications/office/portfolio/default.nix
@@ -27,11 +27,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "PortfolioPerformance";
-  version = "0.68.4";
+  version = "0.69.0";
 
   src = fetchurl {
     url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz";
-    hash = "sha256-E4uVI2MJ2tD2wuAxxzCZSmNRbKTTzhi44c4ip7uEhCk=";
+    hash = "sha256-5U1MGZ/CWI0m1utXCak6qWEHIFwMvZSqRt4qrUPCqVo=";
   };
 
   nativeBuildInputs = [
@@ -69,11 +69,11 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple tool to calculate the overall performance of an investment portfolio";
+    description = "Simple tool to calculate the overall performance of an investment portfolio";
     homepage = "https://www.portfolio-performance.info/";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.epl10;
-    maintainers = with maintainers; [ elohmeier kilianar oyren shawn8901 ];
+    maintainers = with maintainers; [ kilianar oyren shawn8901 ];
     mainProgram = "portfolio";
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/applications/office/pympress/default.nix b/pkgs/applications/office/pympress/default.nix
index eb28bf2dfd920..8ada870912eb9 100644
--- a/pkgs/applications/office/pympress/default.nix
+++ b/pkgs/applications/office/pympress/default.nix
@@ -8,6 +8,7 @@
 , libcanberra-gtk3
 , poppler_gi
 , withGstreamer ? stdenv.isLinux
+, gst_all_1
 , withVLC ? stdenv.isLinux
 }:
 
@@ -29,7 +30,16 @@ python3Packages.buildPythonApplication rec {
   buildInputs = [
     gtk3
     poppler_gi
-  ] ++ lib.optional withGstreamer libcanberra-gtk3;
+  ] ++ lib.optionals withGstreamer [
+    libcanberra-gtk3
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-bad
+    gst_all_1.gst-plugins-ugly
+    (gst_all_1.gst-plugins-good.override {gtkSupport = true;})
+    gst_all_1.gst-libav
+    gst_all_1.gst-vaapi
+  ];
 
   propagatedBuildInputs = with python3Packages; [
     pycairo
diff --git a/pkgs/applications/office/qownnotes/default.nix b/pkgs/applications/office/qownnotes/default.nix
index e417fee4a433a..53563d72d6584 100644
--- a/pkgs/applications/office/qownnotes/default.nix
+++ b/pkgs/applications/office/qownnotes/default.nix
@@ -21,14 +21,14 @@
 let
   pname = "qownnotes";
   appname = "QOwnNotes";
-  version = "24.5.4";
+  version = "24.6.3";
 in
 stdenv.mkDerivation {
   inherit pname version;
 
   src = fetchurl {
     url = "https://github.com/pbek/QOwnNotes/releases/download/v${version}/qownnotes-${version}.tar.xz";
-    hash = "sha256-OxCkIN596Zzjd2ldRn7MRpSupb2fhbZH4Hwr16Mz6Fo=";
+    hash = "sha256-UdWyS5DalnGDoNEOx8d9MglKpJeqOXY1mTgLl3r/9gY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/qpdfview/default.nix b/pkgs/applications/office/qpdfview/default.nix
index 9b0bb09df9044..56bd5f126afae 100644
--- a/pkgs/applications/office/qpdfview/default.nix
+++ b/pkgs/applications/office/qpdfview/default.nix
@@ -61,7 +61,7 @@ mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A tabbed document viewer";
+    description = "Tabbed document viewer";
     mainProgram = "qpdfview";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ raskin ];
diff --git a/pkgs/applications/office/rime-cli/default.nix b/pkgs/applications/office/rime-cli/default.nix
index a5b989528459d..9c89db2125958 100644
--- a/pkgs/applications/office/rime-cli/default.nix
+++ b/pkgs/applications/office/rime-cli/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/puddinging/rime-cli";
     changelog = "https://github.com/puddinging/rime-cli/releases/tag/v${version}";
-    description = "A command line tool to add customized vocabulary for Rime IME";
+    description = "Command line tool to add customized vocabulary for Rime IME";
     license = licenses.asl20;
     maintainers = with maintainers; [ urandom ];
     mainProgram = "rime-cli";
diff --git a/pkgs/applications/office/roam-research/common.nix b/pkgs/applications/office/roam-research/common.nix
index 8e63b111ad2af..19e51e7b0eae3 100644
--- a/pkgs/applications/office/roam-research/common.nix
+++ b/pkgs/applications/office/roam-research/common.nix
@@ -1,22 +1,22 @@
 { fetchurl }:
 let
   pname = "roam-research";
-  version = "0.0.18";
+  version = "0.0.19";
 in
 {
   inherit pname version;
   sources = {
     x86_64-darwin = fetchurl {
       url = "https://roam-electron-deploy.s3.us-east-2.amazonaws.com/Roam+Research-${version}.dmg";
-      hash = "sha256-jyFNH3qrgrsftExL/b2t8bY3W3fYVz+Gp11AuaIMxbg=";
+      hash = "sha256-pIH4p7dnmyOgGyruSJ39xB8iJ45wtxcIQmfUeBLlDes=";
     };
     aarch64-darwin = fetchurl {
       url = "https://roam-electron-deploy.s3.us-east-2.amazonaws.com/Roam+Research-${version}-arm64.dmg";
-      hash = "sha256-AnyvFCbyUi6tcgxYQAj+zPLl4/kVh9ZeupetRhzH0PU=";
+      hash = "sha256-iQRaaSU033t3WVWZSKuXCPJbMoNpwLnDHBz5QURu6Gw=";
     };
     x86_64-linux = fetchurl {
       url = "https://roam-electron-deploy.s3.us-east-2.amazonaws.com/${pname}_${version}_amd64.deb";
-      hash = "sha256-veDWBFZbODsdaO1UdfuC4w6oGCkeVBe+fqKn5XVHKDQ=";
+      hash = "sha256-eDN+hrAc+ePRELcXAs5WypzPlJ+Wtg3kUarf8rq5CnA=";
     };
   };
 }
diff --git a/pkgs/applications/office/roam-research/darwin.nix b/pkgs/applications/office/roam-research/darwin.nix
index 1369a2352b585..372186f551f1b 100644
--- a/pkgs/applications/office/roam-research/darwin.nix
+++ b/pkgs/applications/office/roam-research/darwin.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A note-taking tool for networked thought";
+    description = "Note-taking tool for networked thought";
     homepage = "https://roamresearch.com/";
     maintainers = with lib.maintainers; [ dbalan ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/applications/office/roam-research/linux.nix b/pkgs/applications/office/roam-research/linux.nix
index 8733ce33026a8..04a05d95ffc2f 100644
--- a/pkgs/applications/office/roam-research/linux.nix
+++ b/pkgs/applications/office/roam-research/linux.nix
@@ -63,7 +63,7 @@ in stdenv.mkDerivation rec {
   dontPatchELF = true;
 
   meta = with lib; {
-    description = "A note-taking tool for networked thought";
+    description = "Note-taking tool for networked thought";
     homepage = "https://roamresearch.com/";
     maintainers = with lib.maintainers; [ dbalan ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/applications/office/scribus/default.nix b/pkgs/applications/office/scribus/default.nix
index 5f2a117198965..941f34231ca94 100644
--- a/pkgs/applications/office/scribus/default.nix
+++ b/pkgs/applications/office/scribus/default.nix
@@ -33,11 +33,11 @@ in
 stdenv.mkDerivation (finalAttrs: {
   pname = "scribus";
 
-  version = "1.6.1";
+  version = "1.6.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/scribus/scribus-devel/scribus-${finalAttrs.version}.tar.xz";
-    hash = "sha256-4J3Xjm22HQG5MhEI/t7bzNbsCrNS3Vuv24sEHw73npk=";
+    hash = "sha256-fv+bH0fjcuVrs2nx2+GP5JEBeJtea8/beJDgNGtkE4M=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/semantik/default.nix b/pkgs/applications/office/semantik/default.nix
index f7533adb62c58..f4cc1670383bc 100644
--- a/pkgs/applications/office/semantik/default.nix
+++ b/pkgs/applications/office/semantik/default.nix
@@ -84,7 +84,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A mind-mapping application for KDE";
+    description = "Mind-mapping application for KDE";
     license = licenses.mit;
     homepage = "https://waf.io/semantik.html";
     maintainers = [ maintainers.shamilton ];
diff --git a/pkgs/applications/office/skrooge/default.nix b/pkgs/applications/office/skrooge/default.nix
index b3c1c39379552..851f53039dd4d 100644
--- a/pkgs/applications/office/skrooge/default.nix
+++ b/pkgs/applications/office/skrooge/default.nix
@@ -35,7 +35,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A personal finances manager, powered by KDE";
+    description = "Personal finances manager, powered by KDE";
     license = with licenses; [ gpl3 ];
     maintainers = with maintainers; [ joko ];
     homepage = "https://skrooge.org/";
diff --git a/pkgs/applications/office/softmaker/generic.nix b/pkgs/applications/office/softmaker/generic.nix
index 6162aa2326062..fed47d637f266 100644
--- a/pkgs/applications/office/softmaker/generic.nix
+++ b/pkgs/applications/office/softmaker/generic.nix
@@ -120,7 +120,7 @@ in stdenv.mkDerivation {
   desktopItems = builtins.attrValues desktopItems;
 
   meta = with lib; {
-    description = "An office suite with a word processor, spreadsheet and presentation program";
+    description = "Office suite with a word processor, spreadsheet and presentation program";
     homepage = "https://www.softmaker.com/";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
diff --git a/pkgs/applications/office/super-productivity/default.nix b/pkgs/applications/office/super-productivity/default.nix
index 9b32967159275..1f6c42eabcef9 100644
--- a/pkgs/applications/office/super-productivity/default.nix
+++ b/pkgs/applications/office/super-productivity/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "super-productivity";
-  version = "8.0.5";
+  version = "8.0.7";
 
   src = fetchurl {
     url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity-${version}.AppImage";
-    sha256 = "sha256-nH7dCrXBhkAYbvb9CPc4zhslFiYtA1ChuYPoHMdBBwQ=";
+    sha256 = "sha256-IBx7P7H2wO6VtqupAvwAwvuDzkm+e2DwWD4UjoDz9KQ=";
     name = "${pname}-${version}.AppImage";
   };
 
diff --git a/pkgs/applications/office/tagainijisho/default.nix b/pkgs/applications/office/tagainijisho/default.nix
index 6ec176393e3e6..cc2522ffa7282 100644
--- a/pkgs/applications/office/tagainijisho/default.nix
+++ b/pkgs/applications/office/tagainijisho/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A free, open-source Japanese dictionary and kanji lookup tool";
+    description = "Free, open-source Japanese dictionary and kanji lookup tool";
     mainProgram = "tagainijisho";
     homepage = "https://www.tagaini.net/";
     license = with licenses; [
diff --git a/pkgs/applications/office/ticktick/default.nix b/pkgs/applications/office/ticktick/default.nix
index a7b88321a82d6..2510d42b9a82a 100644
--- a/pkgs/applications/office/ticktick/default.nix
+++ b/pkgs/applications/office/ticktick/default.nix
@@ -15,11 +15,11 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "ticktick";
-  version = "2.0.10";
+  version = "2.0.20";
 
   src = fetchurl {
     url = "https://d2atcrkye2ik4e.cloudfront.net/download/linux/linux_deb_x64/${finalAttrs.pname}-${finalAttrs.version}-amd64.deb";
-    hash = "sha256-wign7U1p4HX6/RwnMm2iVSNaYRhn8Ia6QQd5X6m3B0E=";
+    hash = "sha256-5w50QMSMmkpuhSOqv3LjrcQQDwaD7pIdKUo+8YUgvpk=";
   };
 
   nativeBuildInputs = [
@@ -67,7 +67,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A powerful to-do & task management app with seamless cloud synchronization across all your devices";
+    description = "Powerful to-do & task management app with seamless cloud synchronization across all your devices";
     homepage = "https://ticktick.com/home/";
     license = licenses.unfree;
     maintainers = with maintainers; [ hbjydev ];
diff --git a/pkgs/applications/office/timetrap/default.nix b/pkgs/applications/office/timetrap/default.nix
index 7ece5e9b4b030..4ec8101db0e58 100644
--- a/pkgs/applications/office/timetrap/default.nix
+++ b/pkgs/applications/office/timetrap/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A simple command line time tracker written in ruby";
+    description = "Simple command line time tracker written in ruby";
     homepage    = "https://github.com/samg/timetrap";
     license     = licenses.mit;
     maintainers = with maintainers; [ jerith666 manveru nicknovitski ];
diff --git a/pkgs/applications/office/timeular/default.nix b/pkgs/applications/office/timeular/default.nix
index 247b9f7caea47..84cb01832b6ba 100644
--- a/pkgs/applications/office/timeular/default.nix
+++ b/pkgs/applications/office/timeular/default.nix
@@ -4,12 +4,12 @@
 }:
 
 let
-  version = "6.7.8";
+  version = "6.7.9";
   pname = "timeular";
 
   src = fetchurl {
     url = "https://s3.amazonaws.com/timeular-desktop-packages/linux/production/Timeular-${version}.AppImage";
-    hash = "sha256-nMvbr2PQBWyrhY3mv/4wsdWPhNx5hLFaAp0Ey3nvp7g=";
+    hash = "sha256-UaoIYJxVfQZujf03Swup+zQwb7RWRXuElcswf+MXXQ4=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/applications/office/treesheets/default.nix b/pkgs/applications/office/treesheets/default.nix
index c0aef4fad1856..cff458a63fd3f 100644
--- a/pkgs/applications/office/treesheets/default.nix
+++ b/pkgs/applications/office/treesheets/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "treesheets";
-  version = "0-unstable-2024-05-18";
+  version = "0-unstable-2024-06-09";
 
   src = fetchFromGitHub {
     owner = "aardappel";
     repo = "treesheets";
-    rev = "dfbea81adc25e109dfe5482cc09508f612aaa84d";
-    hash = "sha256-Hh42q7soCCXY7AMTH3bLMlUJ72y3QOyC/1nFUQPMFaM=";
+    rev = "c753ce40686c3044eb7fb653bb913d1610096cd1";
+    hash = "sha256-WpbG2RY7z71GBSDjv/VjcFsGcb/YK7P4oMVEydsYpuw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/tryton/default.nix b/pkgs/applications/office/tryton/default.nix
index ee8f067b339f4..aa742bce4f73c 100644
--- a/pkgs/applications/office/tryton/default.nix
+++ b/pkgs/applications/office/tryton/default.nix
@@ -62,7 +62,7 @@ python3Packages.buildPythonApplication rec {
   doCheck = false;
 
   meta = {
-    description = "The client of the Tryton application platform";
+    description = "Client of the Tryton application platform";
     mainProgram = "tryton";
     longDescription = ''
       The client for Tryton, a three-tier high-level general purpose
diff --git a/pkgs/applications/office/vnote/default.nix b/pkgs/applications/office/vnote/default.nix
index 4394a58bdb3e9..1b815228ac2d5 100644
--- a/pkgs/applications/office/vnote/default.nix
+++ b/pkgs/applications/office/vnote/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://vnotex.github.io/vnote";
-    description = "A pleasant note-taking platform";
+    description = "Pleasant note-taking platform";
     mainProgram = "vnote";
     changelog = "https://github.com/vnotex/vnote/releases/tag/${finalAttrs.src.rev}";
     license = lib.licenses.lgpl3Plus;
diff --git a/pkgs/applications/office/watson/default.nix b/pkgs/applications/office/watson/default.nix
index 0c04b0ddd52ec..8cf348020c437 100644
--- a/pkgs/applications/office/watson/default.nix
+++ b/pkgs/applications/office/watson/default.nix
@@ -34,7 +34,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://tailordev.github.io/Watson/";
-    description = "A wonderful CLI to track your time!";
+    description = "Wonderful CLI to track your time!";
     mainProgram = "watson";
     license = licenses.mit;
     maintainers = with maintainers; [ mguentner nathyong oxzi ];
diff --git a/pkgs/applications/office/wpsoffice/default.nix b/pkgs/applications/office/wpsoffice/default.nix
index 8f6b0d650b28a..a9bb14d1b4e2a 100644
--- a/pkgs/applications/office/wpsoffice/default.nix
+++ b/pkgs/applications/office/wpsoffice/default.nix
@@ -19,6 +19,7 @@
 , curl
 , coreutils
 , cacert
+, libjpeg
 , useChineseVersion ? false
 }:
 let
@@ -72,6 +73,7 @@ stdenv.mkDerivation rec {
     alsa-lib
     at-spi2-core
     libtool
+    libjpeg
     libxkbcommon
     nspr
     mesa
@@ -120,6 +122,9 @@ stdenv.mkDerivation rec {
   preFixup = ''
     # The following libraries need libtiff.so.5, but nixpkgs provides libtiff.so.6
     patchelf --replace-needed libtiff.so.5 libtiff.so $out/opt/kingsoft/wps-office/office6/{libpdfmain.so,libqpdfpaint.so,qt/plugins/imageformats/libqtiff.so,addons/pdfbatchcompression/libpdfbatchcompressionapp.so}
+    patchelf --add-needed libtiff.so $out/opt/kingsoft/wps-office/office6/libwpsmain.so
+    # Fix: Wrong JPEG library version: library is 62, caller expects 80
+    patchelf --add-needed libjpeg.so $out/opt/kingsoft/wps-office/office6/libwpsmain.so
     # dlopen dependency
     patchelf --add-needed libudev.so.1 $out/opt/kingsoft/wps-office/office6/addons/cef/libcef.so
   '';
diff --git a/pkgs/applications/office/zim/default.nix b/pkgs/applications/office/zim/default.nix
index 9680748287b9b..98d83f53f2d33 100644
--- a/pkgs/applications/office/zim/default.nix
+++ b/pkgs/applications/office/zim/default.nix
@@ -49,7 +49,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A desktop wiki";
+    description = "Desktop wiki";
     homepage = "https://zim-wiki.org/";
     changelog = "https://github.com/zim-desktop-wiki/zim-desktop-wiki/blob/${version}/CHANGELOG.md";
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/office/zk/default.nix b/pkgs/applications/office/zk/default.nix
index 6cdbb0d63af25..a274ca210dafa 100644
--- a/pkgs/applications/office/zk/default.nix
+++ b/pkgs/applications/office/zk/default.nix
@@ -2,29 +2,29 @@
 
 buildGoModule rec {
   pname = "zk";
-  version = "0.14.0";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
-    owner = "mickael-menu";
+    owner = "zk-org";
     repo = "zk";
     rev = "v${version}";
-    sha256 = "sha256-c0Grk5Bs9MOzuvWYbp+Y6cHouljUWoM3i7vFmQRFR18=";
+    sha256 = "sha256-PbF2k7b03Oo3fIWIN4BHUZJ625HUeX+htT9FTINowIs=";
   };
 
-  vendorHash = "sha256-23m0fHYJl3X2uHCFnMYID9umTjZvGFoOKTtRrerlWKg=";
+  vendorHash = "sha256-UZsJa5hmMQwe9lhrp4ey8GGTkWUF8xJW+LPWMR0qfoo=";
 
   doCheck = false;
 
   CGO_ENABLED = 1;
 
-  ldflags = [ "-s" "-w" "-X=main.Build=${version}" ];
+  ldflags = [ "-s" "-w" "-X=main.Build=${version}" "-X=main.Version=${version}"];
 
   tags = [ "fts5" ];
 
   meta = with lib; {
     maintainers = with maintainers; [ pinpox ];
     license = licenses.gpl3;
-    description = "A zettelkasten plain text note-taking assistant";
+    description = "Zettelkasten plain text note-taking assistant";
     homepage = "https://github.com/mickael-menu/zk";
     mainProgram = "zk";
   };
diff --git a/pkgs/applications/plasma-mobile/plasma-settings.nix b/pkgs/applications/plasma-mobile/plasma-settings.nix
index 8e7b20672fa9f..28047954304a1 100644
--- a/pkgs/applications/plasma-mobile/plasma-settings.nix
+++ b/pkgs/applications/plasma-mobile/plasma-settings.nix
@@ -1,6 +1,5 @@
 { lib
 , mkDerivation
-, fetchFromGitLab
 
 , cmake
 , extra-cmake-modules
diff --git a/pkgs/applications/radio/anytone-emu/default.nix b/pkgs/applications/radio/anytone-emu/default.nix
index 5f4731616667e..eee3375294db3 100644
--- a/pkgs/applications/radio/anytone-emu/default.nix
+++ b/pkgs/applications/radio/anytone-emu/default.nix
@@ -33,7 +33,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A tiny emulator for AnyTone radios";
+    description = "Tiny emulator for AnyTone radios";
     homepage = "https://github.com/hmatuschek/anytone-emu";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ janik ];
diff --git a/pkgs/applications/radio/chirp/default.nix b/pkgs/applications/radio/chirp/default.nix
index 9854fa8076efe..c113f365aef53 100644
--- a/pkgs/applications/radio/chirp/default.nix
+++ b/pkgs/applications/radio/chirp/default.nix
@@ -10,13 +10,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "chirp";
-  version = "0.4.0-unstable-2024-05-10";
+  version = "0.4.0-unstable-2024-05-24";
 
   src = fetchFromGitHub {
     owner = "kk7ds";
     repo = "chirp";
-    rev = "d5dc5c8e053dbcf87c8b0ccf03109c0870c22bfb";
-    hash = "sha256-Tqq1dTjtzHTgaHUAio5B8V4Bo+P8EPa3s/kG181TrCc=";
+    rev = "e17c021ba4fc39eea8a2a1de37ef04a0d1253090";
+    hash = "sha256-YvIRo7g9fxnlf8og5CM2JLf8DeADVkcHdvb4ppS1veE=";
   };
   buildInputs = [
     glib
@@ -44,7 +44,7 @@ python3.pkgs.buildPythonApplication rec {
   };
 
   meta = with lib; {
-    description = "A free, open-source tool for programming your amateur radio";
+    description = "Free, open-source tool for programming your amateur radio";
     homepage = "https://chirp.danplanet.com/";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.emantor ];
diff --git a/pkgs/applications/radio/cloudlog/default.nix b/pkgs/applications/radio/cloudlog/default.nix
index 162c9cac96589..9c131e34bc25e 100644
--- a/pkgs/applications/radio/cloudlog/default.nix
+++ b/pkgs/applications/radio/cloudlog/default.nix
@@ -8,13 +8,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "cloudlog";
-  version = "2.6.12";
+  version = "2.6.14";
 
   src = fetchFromGitHub {
     owner = "magicbug";
     repo = "Cloudlog";
     rev = version;
-    hash = "sha256-djY+TqkA+YFCmUwZd1x4YeJDOS6ZtxDb4EhBmyftSzI=";
+    hash = "sha256-nsn/pvlFRDGUnm/X5pyzlKWgP6OlfVn3Mdj6vOJZMWQ=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/radio/csdr/default.nix b/pkgs/applications/radio/csdr/default.nix
index 3a5d85f99401f..af05cb61e8362 100644
--- a/pkgs/applications/radio/csdr/default.nix
+++ b/pkgs/applications/radio/csdr/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/jketterl/csdr";
-    description = "A simple DSP library and command-line tool for Software Defined Radio";
+    description = "Simple DSP library and command-line tool for Software Defined Radio";
     license = licenses.gpl3Only;
     platforms = platforms.unix;
     broken = stdenv.isDarwin;
diff --git a/pkgs/applications/radio/direwolf/default.nix b/pkgs/applications/radio/direwolf/default.nix
index 99503d5d03651..e55f895d24af1 100644
--- a/pkgs/applications/radio/direwolf/default.nix
+++ b/pkgs/applications/radio/direwolf/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Soundcard Packet TNC, APRS Digipeater, IGate, APRStt gateway";
+    description = "Soundcard Packet TNC, APRS Digipeater, IGate, APRStt gateway";
     homepage = "https://github.com/wb2osz/direwolf/";
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/pkgs/applications/radio/dump1090/default.nix b/pkgs/applications/radio/dump1090/default.nix
index 94d844aba8c5d..bcbf0ab9fd155 100644
--- a/pkgs/applications/radio/dump1090/default.nix
+++ b/pkgs/applications/radio/dump1090/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple Mode S decoder for RTLSDR devices";
+    description = "Simple Mode S decoder for RTLSDR devices";
     homepage = "https://github.com/flightaware/dump1090";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/applications/radio/freedv/default.nix b/pkgs/applications/radio/freedv/default.nix
index 8c108af5f82ea..27da63dd40221 100644
--- a/pkgs/applications/radio/freedv/default.nix
+++ b/pkgs/applications/radio/freedv/default.nix
@@ -25,13 +25,13 @@
 
 stdenv.mkDerivation rec {
   pname = "freedv";
-  version = "1.9.9.1";
+  version = "1.9.9.2";
 
   src = fetchFromGitHub {
     owner = "drowe67";
     repo = "freedv-gui";
     rev = "v${version}";
-    hash = "sha256-i0SVu3txC+JUp0P6cFlmn/66lOmii7JMGIvc43nZoOE=";
+    hash = "sha256-oFuAH81mduiSQGIDgDDy1IPskqqCBmfWbpqQstUIw9g=";
   };
 
   postPatch = lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/applications/radio/gnss-sdr/default.nix b/pkgs/applications/radio/gnss-sdr/default.nix
index 06838c40c2ce9..948acd2f19c0e 100644
--- a/pkgs/applications/radio/gnss-sdr/default.nix
+++ b/pkgs/applications/radio/gnss-sdr/default.nix
@@ -98,7 +98,7 @@ gnuradio.pkgs.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An open source Global Navigation Satellite Systems software-defined receiver";
+    description = "Open source Global Navigation Satellite Systems software-defined receiver";
     homepage = "https://gnss-sdr.org/";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/radio/gridtracker/default.nix b/pkgs/applications/radio/gridtracker/default.nix
index 645aed7fffd6f..2d632a44680f2 100644
--- a/pkgs/applications/radio/gridtracker/default.nix
+++ b/pkgs/applications/radio/gridtracker/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "An amateur radio companion to WSJT-X or JTDX";
+    description = "Amateur radio companion to WSJT-X or JTDX";
     mainProgram = "gridtracker";
     longDescription = ''
       GridTracker listens to traffic from WSJT-X/JTDX, displays it on a map,
diff --git a/pkgs/applications/radio/grig/default.nix b/pkgs/applications/radio/grig/default.nix
index 84664d897203a..fa3e915ba3acf 100644
--- a/pkgs/applications/radio/grig/default.nix
+++ b/pkgs/applications/radio/grig/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ hamlib_4 gtk2 ];
 
   meta = with lib; {
-    description = "A simple Ham Radio control (CAT) program based on Hamlib";
+    description = "Simple Ham Radio control (CAT) program based on Hamlib";
     mainProgram = "grig";
     longDescription = ''
       Grig is a graphical user interface for the Ham Radio Control Libraries.
diff --git a/pkgs/applications/radio/hackrf/default.nix b/pkgs/applications/radio/hackrf/default.nix
index bc6b2e424f600..3cbb80393c979 100644
--- a/pkgs/applications/radio/hackrf/default.nix
+++ b/pkgs/applications/radio/hackrf/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An open source SDR platform";
+    description = "Open source SDR platform";
     homepage = "https://greatscottgadgets.com/hackrf/";
     license = licenses.gpl2;
     platforms = platforms.all;
diff --git a/pkgs/applications/radio/klog/default.nix b/pkgs/applications/radio/klog/default.nix
index a9b9c5959a8cd..0215e6cdcdabd 100644
--- a/pkgs/applications/radio/klog/default.nix
+++ b/pkgs/applications/radio/klog/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   qmakeFlags = [ "KLog.pro" ];
 
   meta = with lib; {
-    description = "A multiplatform free hamradio logger";
+    description = "Multiplatform free hamradio logger";
     mainProgram = "klog";
     longDescription = ''
       KLog provides QSO management, useful QSL management DX-Cluster client, DXCC management,
diff --git a/pkgs/applications/radio/openwebrx/default.nix b/pkgs/applications/radio/openwebrx/default.nix
index 0d65fe8e629b8..a1d419bbd4730 100644
--- a/pkgs/applications/radio/openwebrx/default.nix
+++ b/pkgs/applications/radio/openwebrx/default.nix
@@ -21,7 +21,7 @@ let
 
     meta = with lib; {
       homepage = "https://github.com/jketterl/js8py";
-      description = "A library to decode the output of the js8 binary of JS8Call";
+      description = "Library to decode the output of the js8 binary of JS8Call";
       license = licenses.gpl3Only;
       maintainers = teams.c3d2.members;
     };
@@ -52,7 +52,7 @@ let
 
     meta = with lib; {
       homepage = "https://github.com/jketterl/owrx_connector";
-      description = "A set of connectors that are used by OpenWebRX to interface with SDR hardware";
+      description = "Set of connectors that are used by OpenWebRX to interface with SDR hardware";
       license = licenses.gpl3Only;
       platforms = platforms.unix;
       maintainers = teams.c3d2.members;
@@ -93,7 +93,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/jketterl/openwebrx";
-    description = "A simple DSP library and command-line tool for Software Defined Radio";
+    description = "Simple DSP library and command-line tool for Software Defined Radio";
     mainProgram = "openwebrx";
     license = licenses.gpl3Only;
     maintainers = teams.c3d2.members;
diff --git a/pkgs/applications/radio/pat/default.nix b/pkgs/applications/radio/pat/default.nix
index 61cee240e5cfa..267be192f44f6 100644
--- a/pkgs/applications/radio/pat/default.nix
+++ b/pkgs/applications/radio/pat/default.nix
@@ -36,7 +36,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "Pat is a cross platform Winlink client written in Go.";
+    description = "Pat is a cross platform Winlink client written in Go";
     homepage = "https://getpat.io/";
     license = licenses.mit;
     maintainers = with maintainers; [ dotemup sarcasticadmin ];
diff --git a/pkgs/applications/radio/pothos/default.nix b/pkgs/applications/radio/pothos/default.nix
index 6691ffe2dd459..93613cb5faa76 100644
--- a/pkgs/applications/radio/pothos/default.nix
+++ b/pkgs/applications/radio/pothos/default.nix
@@ -72,7 +72,7 @@ mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The Pothos data-flow framework";
+    description = "Pothos data-flow framework";
     homepage = "https://github.com/pothosware/PothosCore/wiki";
     license = licenses.boost;
     platforms = platforms.linux;
diff --git a/pkgs/applications/radio/qlog/default.nix b/pkgs/applications/radio/qlog/default.nix
index e89b1014e528b..7ec6756f20aa3 100644
--- a/pkgs/applications/radio/qlog/default.nix
+++ b/pkgs/applications/radio/qlog/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qlog";
-  version = "0.35.1";
+  version = "0.36.0";
 
   src = fetchFromGitHub {
     owner = "foldynl";
     repo = "QLog";
     rev = "v${version}";
-    hash = "sha256-qmTep8cwNFxgvWO6tOtk+kwjhEltjJTc0Fo4o01GzIo=";
+    hash = "sha256-YbjtN08zEj8rlRDC5tS/JsBOH70DV98wmL6pFQTehgg=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/radio/quisk/default.nix b/pkgs/applications/radio/quisk/default.nix
index 733f908ffc44f..aab629aa7c10c 100644
--- a/pkgs/applications/radio/quisk/default.nix
+++ b/pkgs/applications/radio/quisk/default.nix
@@ -8,11 +8,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "quisk";
-  version = "4.2.33";
+  version = "4.2.34";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-41eyqYxRg0crtN6qp239eHWSFPt7XuJneTAndZuS3EY=";
+    sha256 = "sha256-PwBQmL6CnDp55eLhXr3vpJXf4DcKAwzFSCnzxt5Nob4=";
   };
 
   buildInputs = [
@@ -29,7 +29,7 @@ python3.pkgs.buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A SDR transceiver for radios that use the Hermes protocol";
+    description = "SDR transceiver for radios that use the Hermes protocol";
     longDescription = ''
       QUISK is a Software Defined Radio (SDR) transceiver. You supply radio
       hardware that converts signals at the antenna to complex (I/Q) data at an
diff --git a/pkgs/applications/radio/rtl-ais/default.nix b/pkgs/applications/radio/rtl-ais/default.nix
index 407c18c1a0adc..57cd7420d7542 100644
--- a/pkgs/applications/radio/rtl-ais/default.nix
+++ b/pkgs/applications/radio/rtl-ais/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "A simple AIS tuner and generic dual-frequency FM demodulator";
+    description = "Simple AIS tuner and generic dual-frequency FM demodulator";
     homepage = "https://github.com/dgiardini/rtl-ais";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ mgdm ];
diff --git a/pkgs/applications/radio/sdr-j-fm/default.nix b/pkgs/applications/radio/sdr-j-fm/default.nix
new file mode 100644
index 0000000000000..6c1dd5f4a0a1d
--- /dev/null
+++ b/pkgs/applications/radio/sdr-j-fm/default.nix
@@ -0,0 +1,77 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  cmake,
+  wrapQtAppsHook,
+  pkg-config,
+  qtbase,
+  qwt,
+  fftwFloat,
+  libsamplerate,
+  portaudio,
+  libusb1,
+  libsndfile,
+  featuresOverride ? { },
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "sdr-j-fm";
+  # The stable release doen't include the commit the came after 3.16 which
+  # added support for cmake options instead of using cmake set() commands. See
+  # also: https://github.com/JvanKatwijk/sdr-j-fm/pull/25
+  version = "3.16-unstable-2023-12-07";
+
+  src = fetchFromGitHub {
+    owner = "JvanKatwijk";
+    repo = "sdr-j-fm";
+    rev = "8e3a67f8fbf72dd6968cbeb2e3d7d513fd107c71";
+    hash = "sha256-l9WqfhDp2V01lhleYZqRpmyL1Ww+tJj10bjkMMlvyA0=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    wrapQtAppsHook
+    pkg-config
+  ];
+
+  buildInputs = [
+    qtbase
+    qwt
+    fftwFloat
+    libsamplerate
+    portaudio
+    libusb1
+    libsndfile
+  ];
+  cmakeFlags = lib.mapAttrsToList lib.cmakeBool finalAttrs.passthru.features;
+
+  passthru = {
+    features = {
+      # All of these features don't require an external depencies, althought it
+      # may be implied - upstraem bundles everything they need in their repo.
+      AIRSPY =     true;
+      SDRPLAY =    true;
+      SDRPLAY_V3 = true;
+      HACKRF =     true;
+      PLUTO =      true;
+      # Some more cmake flags are mentioned in upstream's CMakeLists.txt file
+      # but they don't actually make a difference.
+    } // featuresOverride;
+  };
+
+  postInstall = ''
+    # Weird default of upstream
+    mv $out/linux-bin $out/bin
+  '';
+
+  meta = with lib; {
+    description = "SDR based FM radio receiver software";
+    homepage = "https://github.com/JvanKatwijk/sdr-j-fm";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ doronbehar ];
+    # Upstream doesn't find libusb1 on Darwin. Upstream probably doesn't
+    # support it officially.
+    platforms = platforms.linux;
+  };
+})
diff --git a/pkgs/applications/radio/sdrangel/default.nix b/pkgs/applications/radio/sdrangel/default.nix
index 639fee520c85f..94758e9b00e6e 100644
--- a/pkgs/applications/radio/sdrangel/default.nix
+++ b/pkgs/applications/radio/sdrangel/default.nix
@@ -52,13 +52,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "sdrangel";
-  version = "7.20.1";
+  version = "7.21.2";
 
   src = fetchFromGitHub {
     owner = "f4exb";
     repo = "sdrangel";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-8v00JiPRCFqg+6wEZw5BrsHMvUYweigbroBHKQGOlHI=";
+    hash = "sha256-cFSD3zroKJPJk1mhXLnSDoSS6p9AU6YN2LJpb+E6HDI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/radio/srsran/default.nix b/pkgs/applications/radio/srsran/default.nix
index d5897fe32020c..af278534a4884 100644
--- a/pkgs/applications/radio/srsran/default.nix
+++ b/pkgs/applications/radio/srsran/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.srslte.com/";
-    description = "Open-source 4G and 5G software radio suite.";
+    description = "Open-source 4G and 5G software radio suite";
     license = licenses.agpl3Plus;
     platforms = with platforms; linux ;
     maintainers = with maintainers; [ hexagonal-sun ];
diff --git a/pkgs/applications/radio/welle-io/default.nix b/pkgs/applications/radio/welle-io/default.nix
index fcb35bd66a49b..39ebfe8886390 100644
--- a/pkgs/applications/radio/welle-io/default.nix
+++ b/pkgs/applications/radio/welle-io/default.nix
@@ -37,7 +37,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A DAB/DAB+ Software Radio";
+    description = "DAB/DAB+ Software Radio";
     homepage = "https://www.welle.io/";
     maintainers = with maintainers; [ ck3d markuskowa ];
     license = licenses.gpl2Only;
diff --git a/pkgs/applications/radio/xlog/default.nix b/pkgs/applications/radio/xlog/default.nix
index 4e492af65600f..7e67de130101f 100644
--- a/pkgs/applications/radio/xlog/default.nix
+++ b/pkgs/applications/radio/xlog/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ glib gtk2 hamlib ];
 
   meta = with lib; {
-    description = "An amateur radio logging program";
+    description = "Amateur radio logging program";
     longDescription =
       '' Xlog is an amateur radio logging program.
          It supports cabrillo, ADIF, trlog (format also used by tlf),
diff --git a/pkgs/applications/science/astronomy/astrolabe-generator/default.nix b/pkgs/applications/science/astronomy/astrolabe-generator/default.nix
index c58b09889772d..603fb8087266f 100644
--- a/pkgs/applications/science/astronomy/astrolabe-generator/default.nix
+++ b/pkgs/applications/science/astronomy/astrolabe-generator/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib;{
     homepage = "https://www.astrolabeproject.com";
-    description = "A Java-based tool for generating EPS files for constructing astrolabes and related tools";
+    description = "Java-based tool for generating EPS files for constructing astrolabes and related tools";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.gpl3;
     maintainers = [ ];
diff --git a/pkgs/applications/science/biology/ants/default.nix b/pkgs/applications/science/biology/ants/default.nix
index c7a1391c3007b..c4b932f6dbae8 100644
--- a/pkgs/applications/science/biology/ants/default.nix
+++ b/pkgs/applications/science/biology/ants/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "ANTs";
-  version = "2.5.1";
+  version = "2.5.2";
 
   src = fetchFromGitHub {
     owner = "ANTsX";
     repo = "ANTs";
     rev = "refs/tags/v${finalAttrs.version}";
-    hash = "sha256-q252KC6SKUN5JaQWAcsVmDprVkLXDvkYzNhC7yHJNpk=";
+    hash = "sha256-crvLxUP/uM0u1oakxcpsiULAKUo+86hGATs/kHNseaw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/science/biology/bedtools/default.nix b/pkgs/applications/science/biology/bedtools/default.nix
index 76780298120ed..19df156ae17cc 100644
--- a/pkgs/applications/science/biology/bedtools/default.nix
+++ b/pkgs/applications/science/biology/bedtools/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   installPhase = "make prefix=$out SHELL=${stdenv.shell} CXX=${cxx} CC=${cc} install";
 
   meta = with lib; {
-    description = "A powerful toolset for genome arithmetic";
+    description = "Powerful toolset for genome arithmetic";
     license = licenses.gpl2;
     homepage = "https://bedtools.readthedocs.io/en/latest/";
     maintainers = with maintainers; [ jbedo ];
diff --git a/pkgs/applications/science/biology/bftools/default.nix b/pkgs/applications/science/biology/bftools/default.nix
index a8bb739bbed85..6b8a7fd96d099 100644
--- a/pkgs/applications/science/biology/bftools/default.nix
+++ b/pkgs/applications/science/biology/bftools/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ makeWrapper ];
 
   meta = with lib; {
-    description = "A bundle of scripts for using Bio-Formats on the command line with bioformats_package.jar already included";
+    description = "Bundle of scripts for using Bio-Formats on the command line with bioformats_package.jar already included";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.gpl2;
     platforms = platforms.all;
diff --git a/pkgs/applications/science/biology/bowtie/default.nix b/pkgs/applications/science/biology/bowtie/default.nix
index bec263a2d9315..2009788ead6a5 100644
--- a/pkgs/applications/science/biology/bowtie/default.nix
+++ b/pkgs/applications/science/biology/bowtie/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   installFlags = [ "prefix=$(out)" ];
 
   meta = with lib; {
-    description = "An ultrafast memory-efficient short read aligner";
+    description = "Ultrafast memory-efficient short read aligner";
     license = licenses.artistic2;
     homepage = "https://bowtie-bio.sourceforge.net";
     maintainers = with maintainers; [ prusnak ];
diff --git a/pkgs/applications/science/biology/bowtie2/default.nix b/pkgs/applications/science/biology/bowtie2/default.nix
index dbcecb7ac3fba..576b46288c885 100644
--- a/pkgs/applications/science/biology/bowtie2/default.nix
+++ b/pkgs/applications/science/biology/bowtie2/default.nix
@@ -12,14 +12,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "bowtie2";
-  version = "2.5.3";
+  version = "2.5.4";
 
   src = fetchFromGitHub {
     owner = "BenLangmead";
     repo = "bowtie2";
     rev = "refs/tags/v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-vjJRA9KFfJChxxg2wxBkwsnDw7fx5SNH3JhRXQw+7XA=";
+    hash = "sha256-ZbmVOItfAgKdsMrvQIXgKiPtoQJZYfGblCGDoNPjvTU=";
   };
 
   # because of this flag, gcc on aarch64 cannot find the Threads
@@ -51,7 +51,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "An ultrafast and memory-efficient tool for aligning sequencing reads to long reference sequences";
+    description = "Ultrafast and memory-efficient tool for aligning sequencing reads to long reference sequences";
     license = licenses.gpl3Plus;
     homepage = "http://bowtie-bio.sf.net/bowtie2";
     changelog = "https://github.com/BenLangmead/bowtie2/releases/tag/${finalAttrs.src.rev}";
diff --git a/pkgs/applications/science/biology/bwa/default.nix b/pkgs/applications/science/biology/bwa/default.nix
index 8c883e2617bfa..c70eba475d233 100644
--- a/pkgs/applications/science/biology/bwa/default.nix
+++ b/pkgs/applications/science/biology/bwa/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A software package for mapping low-divergent sequences against a large reference genome, such as the human genome";
+    description = "Software package for mapping low-divergent sequences against a large reference genome, such as the human genome";
     mainProgram = "bwa";
     license     = licenses.gpl3Plus;
     homepage    = "https://bio-bwa.sourceforge.net/";
diff --git a/pkgs/applications/science/biology/emboss/default.nix b/pkgs/applications/science/biology/emboss/default.nix
index d590a5da8a674..90fe611209f5d 100644
--- a/pkgs/applications/science/biology/emboss/default.nix
+++ b/pkgs/applications/science/biology/emboss/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "The European Molecular Biology Open Software Suite";
+    description = "European Molecular Biology Open Software Suite";
     longDescription = ''EMBOSS is a free Open Source software analysis package
     specially developed for the needs of the molecular biology (e.g. EMBnet)
     user community, including libraries. The software automatically copes with
diff --git a/pkgs/applications/science/biology/gatk/default.nix b/pkgs/applications/science/biology/gatk/default.nix
index 9884e3a771111..41623bf640dda 100644
--- a/pkgs/applications/science/biology/gatk/default.nix
+++ b/pkgs/applications/science/biology/gatk/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gatk.broadinstitute.org/hc/en-us";
-    description = "A wide variety of tools with a primary focus on variant discovery and genotyping." ;
+    description = "Wide variety of tools with a primary focus on variant discovery and genotyping." ;
     license = licenses.asl20;
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ] ;
     maintainers = with maintainers; [ apraga ];
diff --git a/pkgs/applications/science/biology/igv/default.nix b/pkgs/applications/science/biology/igv/default.nix
index 219792326b685..0c74b65c98a26 100644
--- a/pkgs/applications/science/biology/igv/default.nix
+++ b/pkgs/applications/science/biology/igv/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.broadinstitute.org/igv/";
-    description = "A visualization tool for interactive exploration of genomic datasets";
+    description = "Visualization tool for interactive exploration of genomic datasets";
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = [ maintainers.mimame ];
diff --git a/pkgs/applications/science/biology/jbrowse/default.nix b/pkgs/applications/science/biology/jbrowse/default.nix
index c1025d0b1919a..395e5b5dcd9ab 100644
--- a/pkgs/applications/science/biology/jbrowse/default.nix
+++ b/pkgs/applications/science/biology/jbrowse/default.nix
@@ -2,11 +2,11 @@
 
 let
   pname = "jbrowse";
-  version = "2.11.1";
+  version = "2.11.2";
 
   src = fetchurl {
     url = "https://github.com/GMOD/jbrowse-components/releases/download/v${version}/jbrowse-desktop-v${version}-linux.AppImage";
-    sha256 = "sha256-/1QNpoJy4u2sSw6907UQpdYX9aFWp31BxsYVTQoDpi4=";
+    sha256 = "sha256-7kZsK3vYgxubgtoIG1dByHgEBOlh9GUq+i3u/1eo0/o=";
   };
 
   appimageContents = appimageTools.extractType2 {
@@ -28,7 +28,7 @@ appimageTools.wrapType2 {
   '';
 
   meta = with lib; {
-    description = "The next-generation genome browser";
+    description = "Next-generation genome browser";
     mainProgram = "jbrowse-desktop";
     homepage = "https://jbrowse.org/jb2/";
     license = licenses.asl20;
diff --git a/pkgs/applications/science/biology/kalign/default.nix b/pkgs/applications/science/biology/kalign/default.nix
index f26b679f799db..55df8d875bbd5 100644
--- a/pkgs/applications/science/biology/kalign/default.nix
+++ b/pkgs/applications/science/biology/kalign/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
   doCheck = true;
 
   meta = {
-    description = "A fast multiple sequence alignment program";
+    description = "Fast multiple sequence alignment program";
     mainProgram = "kalign";
     homepage = "https://github.com/TimoLassmann/kalign";
     changelog = "https://github.com/TimoLassmann/kalign/releases/tag/${finalAttrs.src.rev}";
diff --git a/pkgs/applications/science/biology/kent/default.nix b/pkgs/applications/science/biology/kent/default.nix
index b6e4661ccfd61..56cfa5168a486 100644
--- a/pkgs/applications/science/biology/kent/default.nix
+++ b/pkgs/applications/science/biology/kent/default.nix
@@ -13,13 +13,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "kent";
-  version = "446";
+  version = "466";
 
   src = fetchFromGitHub {
     owner = "ucscGenomeBrowser";
     repo = pname;
     rev = "v${version}_base";
-    hash = "sha256-d8gcoyMwINdHoD6xaNKt4rCKrKir99+i4KIzJ2YnxRw=";
+    hash = "sha256-zoDZ+8G0SHKfWmkXBqp+WSjQXtmkcTIZjrjPhUIJw1c=";
   };
 
   buildInputs = [ libpng libuuid zlib bzip2 xz openssl curl libmysqlclient ];
diff --git a/pkgs/applications/science/biology/last/default.nix b/pkgs/applications/science/biology/last/default.nix
index 85fb1ca80ac65..700b2cf3b4548 100644
--- a/pkgs/applications/science/biology/last/default.nix
+++ b/pkgs/applications/science/biology/last/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "last";
-  version = "1543";
+  version = "1544";
 
   src = fetchFromGitLab {
     owner = "mcfrith";
     repo = "last";
     rev = "refs/tags/${version}";
-    hash = "sha256-APHPv7Q64JITfHsvjCThZ6hvGHerk6wjOm32KdTv4k8=";
+    hash = "sha256-jxNudfUvSqV1QUzdvG8LWtL977oho9QuOQImmwbQiIM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/science/biology/megahit/default.nix b/pkgs/applications/science/biology/megahit/default.nix
index 5fa9420bc87cb..185f763c2fb8c 100644
--- a/pkgs/applications/science/biology/megahit/default.nix
+++ b/pkgs/applications/science/biology/megahit/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     "-DSTATIC_BUILD=ON"
     ];
   meta = with lib; {
-    description = "An ultra-fast single-node solution for large and complex metagenomics assembly via succinct de Bruijn graph";
+    description = "Ultra-fast single-node solution for large and complex metagenomics assembly via succinct de Bruijn graph";
     license     = licenses.gpl3;
     homepage    = "https://github.com/voutcn/megahit";
     maintainers = with maintainers; [ luispedro ];
diff --git a/pkgs/applications/science/biology/messer-slim/default.nix b/pkgs/applications/science/biology/messer-slim/default.nix
index af3856f041674..3812e9980cdfe 100644
--- a/pkgs/applications/science/biology/messer-slim/default.nix
+++ b/pkgs/applications/science/biology/messer-slim/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
                  "-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib" ];
 
   meta = {
-     description = "An evolutionary simulation framework";
+     description = "Evolutionary simulation framework";
      homepage = "https://messerlab.org/slim/";
      license = with lib.licenses; [ gpl3 ];
      maintainers = with lib.maintainers; [ bzizou ];
diff --git a/pkgs/applications/science/biology/minimap2/default.nix b/pkgs/applications/science/biology/minimap2/default.nix
index 923d72f7fb387..5597b5504678d 100644
--- a/pkgs/applications/science/biology/minimap2/default.nix
+++ b/pkgs/applications/science/biology/minimap2/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A versatile pairwise aligner for genomic and spliced nucleotide sequences";
+    description = "Versatile pairwise aligner for genomic and spliced nucleotide sequences";
     mainProgram = "minimap2";
     homepage = "https://lh3.github.io/minimap2";
     license = licenses.mit;
diff --git a/pkgs/applications/science/biology/neuron/default.nix b/pkgs/applications/science/biology/neuron/default.nix
index 6e5e4feb16fc6..ef79fb11a824d 100644
--- a/pkgs/applications/science/biology/neuron/default.nix
+++ b/pkgs/applications/science/biology/neuron/default.nix
@@ -1,6 +1,6 @@
 { lib
 , stdenv
-, fetchurl
+, fetchFromGitHub
 , readline
 , xorg
 , mpi
@@ -17,11 +17,13 @@
 , useCore ? false
 , useRx3d ? false
 }:
-
-
-stdenv.mkDerivation rec {
+let
+  inherit (lib.lists) optionals;
+  inherit (lib.strings) cmakeBool;
+in
+stdenv.mkDerivation (finalAttrs: {
   pname = "neuron";
-  version = "8.2.3";
+  version = "8.2.4";
 
   # format is for pythonModule conversion
   format = "other";
@@ -31,10 +33,10 @@ stdenv.mkDerivation rec {
     bison
     flex
     git
-  ] ++ lib.optionals useCore [ perl gsl ]
-  ++ lib.optionals stdenv.isDarwin [ xcbuild ];
+  ] ++ optionals useCore [ perl gsl ]
+  ++ optionals stdenv.isDarwin [ xcbuild ];
 
-  buildInputs = lib.optionals useIv [
+  buildInputs = optionals useIv [
     xorg.libX11.dev
     xorg.libXcomposite.dev
     xorg.libXext.dev
@@ -47,28 +49,29 @@ stdenv.mkDerivation rec {
     python3.pkgs.setuptools
     python3.pkgs.scikit-build
     python3.pkgs.matplotlib
-  ] ++ lib.optionals useMpi [
+  ] ++ optionals useMpi [
     mpi
-  ] ++ lib.optionals useMpi [
+  ] ++ optionals useMpi [
     python3.pkgs.mpi4py
-  ] ++ lib.optionals useRx3d [
-    python3.pkgs.cython
+  ] ++ optionals useRx3d [
+    python3.pkgs.cython_0 # NOTE: cython<3 is required as of 8.2.4
     python3.pkgs.numpy
   ];
 
-  patches = [ ./neuron_darwin_rpath.patch ];
-
   # Patch build shells for cmake (bin, src, cmake) and submodules (external)
   postPatch = ''
     patchShebangs ./bin ./src ./external ./cmake
-    sed -e 's#DESTDIR =#DESTDIR = '"$out"'#' -i external/coreneuron/extra/nrnivmodl_core_makefile.in
+    substituteInPlace external/coreneuron/extra/nrnivmodl_core_makefile.in \
+      --replace-fail \
+        "DESTDIR =" \
+        "DESTDIR = $out"
   '';
 
   cmakeFlags = [
-    "-DNRN_ENABLE_INTERVIEWS=${if useIv then "ON" else "OFF"}"
-    "-DNRN_ENABLE_MPI=${if useMpi then "ON" else "OFF"}"
-    "-DNRN_ENABLE_CORENEURON=${if useCore then "ON" else "OFF"}"
-    "-DNRN_ENABLE_RX3D=${if useRx3d then "ON" else "OFF"}"
+    (cmakeBool "NRN_ENABLE_INTERVIEWS" useIv)
+    (cmakeBool "NRN_ENABLE_MPI" useMpi)
+    (cmakeBool "NRN_ENABLE_CORENEURON" useCore)
+    (cmakeBool "NRN_ENABLE_RX3D" useRx3d)
   ];
 
   postInstall = ''
@@ -81,9 +84,12 @@ stdenv.mkDerivation rec {
     done
   '';
 
-  src = fetchurl {
-    url = "https://github.com/neuronsimulator/nrn/releases/download/${version}/full-src-package-${version}.tar.gz";
-    sha256 = "sha256-k8+71BRfh+a73sZho6v0QFRxVmrfx6jqrgaqammdtDI=";
+  src = fetchFromGitHub {
+    owner = "neuronsimulator";
+    repo = "nrn";
+    rev = finalAttrs.version;
+    fetchSubmodules = true;
+    hash = "sha256-KsULc+LHoWmrkGYebpoUot6DhStKidbLQf5a3S+pi4s=";
   };
 
   meta = with lib; {
@@ -101,4 +107,4 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ adev davidcromp ];
     platforms = platforms.all;
   };
-}
+})
diff --git a/pkgs/applications/science/biology/neuron/neuron_darwin_rpath.patch b/pkgs/applications/science/biology/neuron/neuron_darwin_rpath.patch
deleted file mode 100644
index 1b0fa2670782a..0000000000000
--- a/pkgs/applications/science/biology/neuron/neuron_darwin_rpath.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/nrnpython/setup.py.in
-+++ b/src/nrnpython/setup.py.in
-@@ -124,7 +124,7 @@ libdirs = [destdir + get_escaped_path("@NRN_LIBDIR@"),
- rpath_prefix_flag='-Wl,-R'
- extra_link_args = [@NRN_LINK_FLAGS_COMMA_SEPARATED_STRINGS@]
- @MAC_DARWIN_FALSE@extra_link_args += [rpath_prefix_flag+lib_path for lib_path in libdirs]
--@MAC_DARWIN_TRUE@extra_link_args.append("-Wl,-rpath,@loader_path/../../")
-+@MAC_DARWIN_TRUE@extra_link_args.append("-Wl,-rpath,@loader_path/../../../")
- @MAC_DARWIN_TRUE@extra_link_args.append("-Wl,-rpath,%s" % ivlibdir)
-
- # as neuron module will be built during make, add build/lib
diff --git a/pkgs/applications/science/biology/platypus/default.nix b/pkgs/applications/science/biology/platypus/default.nix
index d602395b87572..56e1852213961 100644
--- a/pkgs/applications/science/biology/platypus/default.nix
+++ b/pkgs/applications/science/biology/platypus/default.nix
@@ -30,7 +30,7 @@ in stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "The Platypus variant caller";
+    description = "Platypus variant caller";
     license = licenses.gpl3;
     homepage = "https://github.com/andyrimmer/Platypus";
     maintainers = with maintainers; [ jbedo ];
diff --git a/pkgs/applications/science/biology/plink-ng/default.nix b/pkgs/applications/science/biology/plink-ng/default.nix
index 0e65bed4cf3e4..b91655ac8fdac 100644
--- a/pkgs/applications/science/biology/plink-ng/default.nix
+++ b/pkgs/applications/science/biology/plink-ng/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     broken = (stdenv.isLinux && stdenv.isAarch64);
-    description = "A comprehensive update to the PLINK association analysis toolset";
+    description = "Comprehensive update to the PLINK association analysis toolset";
     mainProgram = "plink";
     homepage = "https://www.cog-genomics.org/plink2";
     license = lib.licenses.gpl3;
diff --git a/pkgs/applications/science/biology/poretools/default.nix b/pkgs/applications/science/biology/poretools/default.nix
deleted file mode 100644
index 47ffd507efdaf..0000000000000
--- a/pkgs/applications/science/biology/poretools/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ lib, python2Packages, fetchFromGitHub }:
-
-python2Packages.buildPythonPackage rec {
-  pname = "poretools";
-  version = "unstable-2016-07-10";
-
-  src = fetchFromGitHub {
-    repo = pname;
-    owner = "arq5x";
-    rev = "e426b1f09e86ac259a00c261c79df91510777407";
-    sha256 = "0bglj833wxpp3cq430p1d3xp085ls221js2y90w7ir2x5ay8l7am";
-  };
-
-  propagatedBuildInputs = [ python2Packages.h5py python2Packages.matplotlib python2Packages.seaborn python2Packages.pandas ];
-
-  meta = {
-    description = "a toolkit for working with nanopore sequencing data from Oxford Nanopore";
-    license = lib.licenses.mit;
-    homepage = "https://poretools.readthedocs.io/en/latest/";
-    maintainers = [ lib.maintainers.rybern ];
-    broken = true; # Build error: h5py-3.9.0 not supported for interpreter python2.7
-  };
-}
diff --git a/pkgs/applications/science/biology/raxml/default.nix b/pkgs/applications/science/biology/raxml/default.nix
index 0cc20b0635036..94ccafd36d00c 100644
--- a/pkgs/applications/science/biology/raxml/default.nix
+++ b/pkgs/applications/science/biology/raxml/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A tool for Phylogenetic Analysis and Post-Analysis of Large Phylogenies";
+    description = "Tool for Phylogenetic Analysis and Post-Analysis of Large Phylogenies";
     license = licenses.gpl3;
     homepage = "https://sco.h-its.org/exelixis/web/software/raxml/";
     maintainers = [ maintainers.unode ];
diff --git a/pkgs/applications/science/biology/spades/default.nix b/pkgs/applications/science/biology/spades/default.nix
deleted file mode 100644
index 0b0491a71aaef..0000000000000
--- a/pkgs/applications/science/biology/spades/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ lib, stdenv, fetchurl, zlib, bzip2, cmake, python3 }:
-
-stdenv.mkDerivation rec {
-  pname = "SPAdes";
-  version = "3.15.5";
-
-  src = fetchurl {
-    url = "http://cab.spbu.ru/files/release${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-FVw2QNVx8uexmgUDHR/Q0ZvYLfeF04hw+5O9JBsSu/o=";
-  };
-
-  nativeBuildInputs = [ cmake ];
-
-  buildInputs = [ zlib bzip2 python3 ];
-
-  doCheck = true;
-
-  sourceRoot = "${pname}-${version}/src";
-
-  env.CXXFLAGS = toString [
-    # GCC 13: error: 'uint32_t' does not name a type
-    "-include cstdint"
-  ];
-
-  meta = with lib; {
-    description = "St. Petersburg genome assembler: assembly toolkit containing various assembly pipelines";
-    license = licenses.gpl2Only;
-    homepage = "http://cab.spbu.ru/software/spades/";
-    platforms = [ "x86_64-linux" "x86_64-darwin" ];
-    maintainers = [ maintainers.bzizou ];
-  };
-}
diff --git a/pkgs/applications/science/biology/sratoolkit/default.nix b/pkgs/applications/science/biology/sratoolkit/default.nix
index a36157ed5d169..62c21a23eb66a 100644
--- a/pkgs/applications/science/biology/sratoolkit/default.nix
+++ b/pkgs/applications/science/biology/sratoolkit/default.nix
@@ -48,8 +48,8 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/ncbi/sra-tools";
-    description = "The SRA Toolkit and SDK from NCBI is a collection of tools and libraries for using data in the INSDC Sequence Read Archives.";
-    license = licenses.publicDomain;
+    description = "SRA Toolkit and SDK from NCBI is a collection of tools and libraries for using data in the INSDC Sequence Read Archives";
+    license = licenses.ncbiPd;
     maintainers = with maintainers; [ thyol ];
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/applications/science/biology/tandem-aligner/default.nix b/pkgs/applications/science/biology/tandem-aligner/default.nix
index 0b3f2520d82be..d44489debbb62 100644
--- a/pkgs/applications/science/biology/tandem-aligner/default.nix
+++ b/pkgs/applications/science/biology/tandem-aligner/default.nix
@@ -56,7 +56,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A parameter-free algorithm for sequence alignment";
+    description = "Parameter-free algorithm for sequence alignment";
     homepage = "https://github.com/seryrzu/tandem_aligner";
     changelog = "https://github.com/seryrzu/tandem_aligner/releases/tag/v${finalAttrs.version}";
     license = lib.licenses.bsd3;
diff --git a/pkgs/applications/science/biology/trimal/default.nix b/pkgs/applications/science/biology/trimal/default.nix
index b27a63a2135ae..b2ef121caa9a2 100644
--- a/pkgs/applications/science/biology/trimal/default.nix
+++ b/pkgs/applications/science/biology/trimal/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A tool for the automated removal of spurious sequences or poorly aligned regions from a multiple sequence alignment";
+    description = "Tool for the automated removal of spurious sequences or poorly aligned regions from a multiple sequence alignment";
     license = licenses.gpl3;
     platforms = platforms.linux;
     homepage = "http://trimal.cgenomics.org";
diff --git a/pkgs/applications/science/biology/trimmomatic/default.nix b/pkgs/applications/science/biology/trimmomatic/default.nix
index db19278eaa479..111a4dda9e9df 100644
--- a/pkgs/applications/science/biology/trimmomatic/default.nix
+++ b/pkgs/applications/science/biology/trimmomatic/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     changelog = "https://github.com/usadellab/Trimmomatic/blob/main/versionHistory.txt";
-    description = "A flexible read trimming tool for Illumina NGS data";
+    description = "Flexible read trimming tool for Illumina NGS data";
     longDescription = ''
       Trimmomatic performs a variety of useful trimming tasks for illumina
       paired-end and single ended data: adapter trimming, quality trimming,
diff --git a/pkgs/applications/science/biology/vcftools/default.nix b/pkgs/applications/science/biology/vcftools/default.nix
index a4ec84d4d5060..644c7eb2bd37b 100644
--- a/pkgs/applications/science/biology/vcftools/default.nix
+++ b/pkgs/applications/science/biology/vcftools/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ zlib perl ];
 
   meta = with lib; {
-    description = "A set of tools written in Perl and C++ for working with VCF files, such as those generated by the 1000 Genomes Project";
+    description = "Set of tools written in Perl and C++ for working with VCF files, such as those generated by the 1000 Genomes Project";
     license = licenses.lgpl3;
     platforms = platforms.linux;
     homepage = "https://vcftools.github.io/index.html";
diff --git a/pkgs/applications/science/biology/xenomapper/default.nix b/pkgs/applications/science/biology/xenomapper/default.nix
index 194db966915e1..98ee7c2819bec 100644
--- a/pkgs/applications/science/biology/xenomapper/default.nix
+++ b/pkgs/applications/science/biology/xenomapper/default.nix
@@ -15,7 +15,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/genomematt/xenomapper";
-    description = "A utility for post processing mapped reads that have been aligned to a primary genome and a secondary genome and binning reads into species specific, multimapping in each species, unmapped and unassigned bins";
+    description = "Utility for post processing mapped reads that have been aligned to a primary genome and a secondary genome and binning reads into species specific, multimapping in each species, unmapped and unassigned bins";
     license = licenses.gpl3;
     platforms = platforms.all;
     maintainers = [ maintainers.jbedo ];
diff --git a/pkgs/applications/science/chemistry/element/default.nix b/pkgs/applications/science/chemistry/element/default.nix
index c3c4a0fe582ed..cc80cb058d92c 100644
--- a/pkgs/applications/science/chemistry/element/default.nix
+++ b/pkgs/applications/science/chemistry/element/default.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
   vendorHash = "sha256-A4g2rQTaYrA4/0rqldUv7iuibzNINEvx9StUnaN2/Yg=";
 
   meta = with lib; {
-    description = "The periodic table on the command line";
+    description = "Periodic table on the command line";
     mainProgram = "element";
     homepage = "https://github.com/gennaro-tedesco/element";
     license = licenses.asl20;
diff --git a/pkgs/applications/science/chemistry/gwyddion/default.nix b/pkgs/applications/science/chemistry/gwyddion/default.nix
index a4b1cd943e1bb..c379e432bdeb2 100644
--- a/pkgs/applications/science/chemistry/gwyddion/default.nix
+++ b/pkgs/applications/science/chemistry/gwyddion/default.nix
@@ -16,10 +16,10 @@
 
 stdenv.mkDerivation rec {
   pname = "gwyddion";
-   version = "2.65";
+   version = "2.66";
   src = fetchurl {
     url = "mirror://sourceforge/gwyddion/gwyddion-${version}.tar.xz";
-    sha256 = "sha256-kRX7CoPJY8YkYNode5g0OCyWmL+5sM8puCmk9ZE2nqM=";
+    sha256 = "sha256-N3vtzSsNjRM6MpaG2p9fkYB/8dR5N/mZEZXx6GN5LVI=";
   };
 
   nativeBuildInputs = [ pkg-config file ];
diff --git a/pkgs/applications/science/chemistry/jmol/default.nix b/pkgs/applications/science/chemistry/jmol/default.nix
index bafbeb3529c69..cba6a40b59923 100644
--- a/pkgs/applications/science/chemistry/jmol/default.nix
+++ b/pkgs/applications/science/chemistry/jmol/default.nix
@@ -25,14 +25,14 @@ let
   };
 in
 stdenv.mkDerivation rec {
-  version = "16.2.15";
+  version = "16.2.17";
   pname = "jmol";
 
   src = let
     baseVersion = "${lib.versions.major version}.${lib.versions.minor version}";
   in fetchurl {
     url = "mirror://sourceforge/jmol/Jmol/Version%20${baseVersion}/Jmol%20${version}/Jmol-${version}-binary.tar.gz";
-    hash = "sha256-zPHh5IFdttliPc0SCgkM/3UQmS4eT2rfi5HqpFjY5hA=";
+    hash = "sha256-1iBLLfaoztbphhrG3NVWH+PVSbCZd+HQqvCYF3H9S/E=";
   };
 
   patchPhase = ''
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-     description = "A Java 3D viewer for chemical structures";
+     description = "Java 3D viewer for chemical structures";
      mainProgram = "jmol";
      homepage = "https://sourceforge.net/projects/jmol";
      sourceProvenance = with sourceTypes; [ binaryBytecode ];
diff --git a/pkgs/applications/science/chemistry/marvin/default.nix b/pkgs/applications/science/chemistry/marvin/default.nix
index 090c252bb82ce..4228e818e4887 100644
--- a/pkgs/applications/science/chemistry/marvin/default.nix
+++ b/pkgs/applications/science/chemistry/marvin/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A chemical modelling, analysis and structure drawing program";
+    description = "Chemical modelling, analysis and structure drawing program";
     homepage = "https://chemaxon.com/products/marvin";
     maintainers = with maintainers; [ fusion809 ];
     license = licenses.unfree;
diff --git a/pkgs/applications/science/chemistry/openmolcas/default.nix b/pkgs/applications/science/chemistry/openmolcas/default.nix
index 8ad9794739559..d500e78b24820 100644
--- a/pkgs/applications/science/chemistry/openmolcas/default.nix
+++ b/pkgs/applications/science/chemistry/openmolcas/default.nix
@@ -43,13 +43,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "openmolcas";
-  version = "24.02";
+  version = "24.06";
 
   src = fetchFromGitLab {
     owner = "Molcas";
     repo = "OpenMolcas";
     rev = "v${version}";
-    hash = "sha256-4Ek0cnaRfLEbj1Nj31rRp9b2sois4rIFTcpOUq9h2mw=";
+    hash = "sha256-/y6vEvA1Zf+p7Z0WpcN4P5voLN8MmfbKz1FuthgVQp0=";
   };
 
   patches = [
diff --git a/pkgs/applications/science/chemistry/siesta/default.nix b/pkgs/applications/science/chemistry/siesta/default.nix
index 02586dea2e297..2ec4d37f73ed2 100644
--- a/pkgs/applications/science/chemistry/siesta/default.nix
+++ b/pkgs/applications/science/chemistry/siesta/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A first-principles materials simulation code using DFT";
+    description = "First-principles materials simulation code using DFT";
     mainProgram = "siesta";
     longDescription = ''
          SIESTA is both a method and its computer program
diff --git a/pkgs/applications/science/computer-architecture/accelergy/default.nix b/pkgs/applications/science/computer-architecture/accelergy/default.nix
index ec702d2b2906e..9eb6f341b714d 100644
--- a/pkgs/applications/science/computer-architecture/accelergy/default.nix
+++ b/pkgs/applications/science/computer-architecture/accelergy/default.nix
@@ -19,7 +19,7 @@ python3Packages.buildPythonApplication rec {
   ];
 
   meta = with lib; {
-    description = "An architecture-level energy/area estimator for accelerator designs";
+    description = "Architecture-level energy/area estimator for accelerator designs";
     license = licenses.mit;
     homepage = "https://accelergy.mit.edu/";
     maintainers = with maintainers; [ gdinh ];
diff --git a/pkgs/applications/science/electronics/csxcad/default.nix b/pkgs/applications/science/electronics/csxcad/default.nix
index 83ee992f4b28a..bc1f4287c1158 100644
--- a/pkgs/applications/science/electronics/csxcad/default.nix
+++ b/pkgs/applications/science/electronics/csxcad/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
-    description = "A C++ library to describe geometrical objects";
+    description = "C++ library to describe geometrical objects";
     homepage = "https://github.com/thliebig/CSXCAD";
     license = licenses.lgpl3;
     maintainers = with maintainers; [ matthuszagh ];
diff --git a/pkgs/applications/science/electronics/degate/default.nix b/pkgs/applications/science/electronics/degate/default.nix
index 30ded5d1354f6..580d452f333df 100644
--- a/pkgs/applications/science/electronics/degate/default.nix
+++ b/pkgs/applications/science/electronics/degate/default.nix
@@ -66,7 +66,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A modern and open-source cross-platform software for chips reverse engineering";
+    description = "Modern and open-source cross-platform software for chips reverse engineering";
     mainProgram = "Degate";
     homepage = "https://degate.readthedocs.io/";
     license = licenses.gpl3;
diff --git a/pkgs/applications/science/electronics/dsview/default.nix b/pkgs/applications/science/electronics/dsview/default.nix
index 2818379afc38b..b7950bfbb8d95 100644
--- a/pkgs/applications/science/electronics/dsview/default.nix
+++ b/pkgs/applications/science/electronics/dsview/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   ] ++ lib.optional stdenv.isLinux qtwayland;
 
   meta = with lib; {
-    description = "A GUI program for supporting various instruments from DreamSourceLab, including logic analyzer, oscilloscope, etc";
+    description = "GUI program for supporting various instruments from DreamSourceLab, including logic analyzer, oscilloscope, etc";
     mainProgram = "DSView";
     homepage = "https://www.dreamsourcelab.com/";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/science/electronics/dwfv/default.nix b/pkgs/applications/science/electronics/dwfv/default.nix
index 2d88e2647dfd7..415cc29812d3d 100644
--- a/pkgs/applications/science/electronics/dwfv/default.nix
+++ b/pkgs/applications/science/electronics/dwfv/default.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "1z51yx3psdxdzmwny0rzlch5hjx2pssll73q79qij2bc7wgyjscy";
 
   meta = with lib; {
-    description = "A simple digital waveform viewer with vi-like key bindings";
+    description = "Simple digital waveform viewer with vi-like key bindings";
     mainProgram = "dwfv";
     homepage = "https://github.com/psurply/dwfv";
     license = licenses.mit;
diff --git a/pkgs/applications/science/electronics/flopoco/default.nix b/pkgs/applications/science/electronics/flopoco/default.nix
index 7ce1087209e2c..2da80512e2b2c 100644
--- a/pkgs/applications/science/electronics/flopoco/default.nix
+++ b/pkgs/applications/science/electronics/flopoco/default.nix
@@ -84,7 +84,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The FloPoCo arithmetic core generator";
+    description = "FloPoCo arithmetic core generator";
     homepage = "https://flopoco.org/";
     license = licenses.unfree;
     platforms = platforms.unix;
diff --git a/pkgs/applications/science/electronics/fped/default.nix b/pkgs/applications/science/electronics/fped/default.nix
index 6d10426b298a5..edfe34c0e25e8 100644
--- a/pkgs/applications/science/electronics/fped/default.nix
+++ b/pkgs/applications/science/electronics/fped/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation {
   ];
 
   meta = {
-    description = "An editor that allows the interactive creation of footprints electronic components";
+    description = "Editor that allows the interactive creation of footprints electronic components";
     mainProgram = "fped";
     homepage = "http://projects.qi-hardware.com/index.php/p/fped/";
     license = licenses.gpl2;
diff --git a/pkgs/applications/science/electronics/fritzing/default.nix b/pkgs/applications/science/electronics/fritzing/default.nix
index 955edb9b59ae2..9eb7b50445020 100644
--- a/pkgs/applications/science/electronics/fritzing/default.nix
+++ b/pkgs/applications/science/electronics/fritzing/default.nix
@@ -109,7 +109,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "An open source prototyping tool for Arduino-based projects";
+    description = "Open source prototyping tool for Arduino-based projects";
     homepage = "https://fritzing.org/";
     license = with licenses; [ gpl3 cc-by-sa-30 ];
     maintainers = with maintainers; [ robberer muscaln ];
diff --git a/pkgs/applications/science/electronics/gerbv/default.nix b/pkgs/applications/science/electronics/gerbv/default.nix
index 5f178e08280a9..c4c46b5507994 100644
--- a/pkgs/applications/science/electronics/gerbv/default.nix
+++ b/pkgs/applications/science/electronics/gerbv/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A Gerber (RS-274X) viewer";
+    description = "Gerber (RS-274X) viewer";
     mainProgram = "gerbv";
     homepage = "https://gerbv.github.io/";
     changelog = "https://github.com/gerbv/gerbv/releases/tag/v${version}";
diff --git a/pkgs/applications/science/electronics/gtkwave/default.nix b/pkgs/applications/science/electronics/gtkwave/default.nix
index 3e0f3613ba903..d28a5cf809065 100644
--- a/pkgs/applications/science/electronics/gtkwave/default.nix
+++ b/pkgs/applications/science/electronics/gtkwave/default.nix
@@ -16,11 +16,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gtkwave";
-  version = "3.3.119";
+  version = "3.3.120";
 
   src = fetchurl {
     url = "mirror://sourceforge/gtkwave/${pname}-gtk3-${version}.tar.gz";
-    sha256 = "sha256-6rPgnnZBEVwHhIv7MPfdDDu+K4y+RQF+leB327pqwDg=";
+    sha256 = "sha256-XalIY/suXYjMAZ4r/cZ2AiOYETiUtYXYZOEcqDQbJNg=";
   };
 
   nativeBuildInputs = [ pkg-config wrapGAppsHook3 ];
diff --git a/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix b/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
index 4c3692266a5c4..c193352eb4559 100644
--- a/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
+++ b/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
@@ -143,7 +143,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A comprehensive reverse engineering and manipulation framework for gate-level netlists";
+    description = "Comprehensive reverse engineering and manipulation framework for gate-level netlists";
     mainProgram = "hal";
     homepage = "https://github.com/emsec/hal";
     license = licenses.mit;
diff --git a/pkgs/applications/science/electronics/horizon-eda/base.nix b/pkgs/applications/science/electronics/horizon-eda/base.nix
index 2a37c0265dc37..0292ee493a829 100644
--- a/pkgs/applications/science/electronics/horizon-eda/base.nix
+++ b/pkgs/applications/science/electronics/horizon-eda/base.nix
@@ -51,7 +51,7 @@ rec {
   CASROOT = opencascade-occt;
 
   meta = with lib; {
-    description = "A free EDA software to develop printed circuit boards";
+    description = "Free EDA software to develop printed circuit boards";
     homepage = "https://horizon-eda.org";
     maintainers = with maintainers; [ guserav jue89 ];
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/science/electronics/kicad/addons/kikit.nix b/pkgs/applications/science/electronics/kicad/addons/kikit.nix
index 6e5fc5ad96781..b6d3cf3e72054 100644
--- a/pkgs/applications/science/electronics/kicad/addons/kikit.nix
+++ b/pkgs/applications/science/electronics/kicad/addons/kikit.nix
@@ -24,7 +24,7 @@ let
     "kikit-library" = {
       makeTarget = "pcm-lib";
       resultZip = "pcm-kikit-lib.zip";
-      description = "KiKit uses these symbols and footprints to annotate your boards (e.g., to place a tab in a panel).";
+      description = "KiKit uses these symbols and footprints to annotate your boards (e.g., to place a tab in a panel)";
     };
   };
   targetSpec = targetSpecs.${addonName};
diff --git a/pkgs/applications/science/electronics/kicad/versions.nix b/pkgs/applications/science/electronics/kicad/versions.nix
index 4c55703edccf4..b3ddbd5b604fe 100644
--- a/pkgs/applications/science/electronics/kicad/versions.nix
+++ b/pkgs/applications/science/electronics/kicad/versions.nix
@@ -3,23 +3,23 @@
 {
   "kicad" = {
     kicadVersion = {
-      version =			"8.0.2";
+      version =			"8.0.3";
       src = {
-        rev =			"55a4d4f5e2f54be6ccf74a8919d04684c9df4c50";
-        sha256 =		"069ycii9zvdxwxd73afd6bp975r1555yvifi9zdb77qyvn0d9nr9";
+        rev =			"8ba5ba46af8502ea7a7d2a9754363167c2742399";
+        sha256 =		"0hafvcjjwylgcpgyyasmb2q210k82wvcswvgjvwwh76bwshwcpwa";
       };
     };
     libVersion = {
-      version =			"8.0.2";
+      version =			"8.0.3";
       libSources = {
-        symbols.rev =		"099ac0c8ac402a685fde00b1369e34a116e29661";
-        symbols.sha256 =	"0w333f89yw2m0zlpkg0k6hfwlj10snm8laihdjnsb22asyz4pbhn";
-        templates.rev =		"2e2da58e02707d327d59d4101c401a82dc9a26f6";
-        templates.sha256 =	"073a6cyvzzy0vmkj3ip4ziq7b7pcizs70nm5acw838dxghjfyv3v";
-        footprints.rev =	"e8c30550cde4945cbe1bf30cccf0b3c1e2bda6c6";
-        footprints.sha256 =	"10j8qjljc1fv8k4zp3zn0da33g57hn6pgrgmbgp18dsa539xvxcz";
-        packages3d.rev =	"249f7947587529026e1676cd70c8d7493a8d8162";
-        packages3d.sha256 =	"04gvfb54jhnww2qwrxc27wpyrvmjasdc4xhr0ridl7dglh4qcp35";
+        symbols.rev =		"2bc103c46a8daacbba2cded8b9f095b330ba928d";
+        symbols.sha256 =	"1za0spq09bbj7xwfwr1abmwjnqfd3zx0crayaz7915ja0ifi75hd";
+        templates.rev =		"0f57b59d365d1f8b8fdd0745e10beb035e88ba37";
+        templates.sha256 =	"03idwrk3vj9h2az8j8lqpbdbnfxdbkzh4db68kq3644yj3cnlcza";
+        footprints.rev =	"539ffd8c0898ad8c8c51c2ab85ba56bfd77271c7";
+        footprints.sha256 =	"0ik4hjl5m65wnpaymg58zbvsfvchhyq5x3psvj6005mgv2hrican";
+        packages3d.rev =	"3172a1cc0931c1734efad68623374d5277f8ab60";
+        packages3d.sha256 =	"1yjlg7cxwhlzcdbxjqyqamr140sz8gvzi63k2401mhdbh88c9kii";
       };
     };
   };
diff --git a/pkgs/applications/science/electronics/librepcb/default.nix b/pkgs/applications/science/electronics/librepcb/default.nix
index 67bc014646e09..cff52d67dc477 100644
--- a/pkgs/applications/science/electronics/librepcb/default.nix
+++ b/pkgs/applications/science/electronics/librepcb/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ qtbase ];
 
   meta = with lib; {
-    description = "A free EDA software to develop printed circuit boards";
+    description = "Free EDA software to develop printed circuit boards";
     homepage    = "https://librepcb.org/";
     maintainers = with maintainers; [ luz thoughtpolice ];
     license     = licenses.gpl3Plus;
diff --git a/pkgs/applications/science/electronics/magic-vlsi/default.nix b/pkgs/applications/science/electronics/magic-vlsi/default.nix
index 5fc4b0036f9fb..0be742f76e3c6 100644
--- a/pkgs/applications/science/electronics/magic-vlsi/default.nix
+++ b/pkgs/applications/science/electronics/magic-vlsi/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "magic-vlsi";
-  version = "8.3.465";
+  version = "8.3.483";
 
   src = fetchurl {
     url    = "http://opencircuitdesign.com/magic/archive/magic-${version}.tgz";
-    sha256 = "sha256-cb9A8rpjD3x3fJo+xexlyzn+/3M5iUJmSoBraom9zd8=";
+    sha256 = "sha256-JyawlH/zUTJ7fGf63zHvZ3q8AYRwFELwh+63RN9IkBA=";
   };
 
   nativeBuildInputs = [ python3 ];
diff --git a/pkgs/applications/science/electronics/simulide/default.nix b/pkgs/applications/science/electronics/simulide/default.nix
index 9053bcfe58e50..717f7b57de74c 100644
--- a/pkgs/applications/science/electronics/simulide/default.nix
+++ b/pkgs/applications/science/electronics/simulide/default.nix
@@ -71,7 +71,7 @@ let
       '';
 
       meta = {
-        description = "A simple real time electronic circuit simulator";
+        description = "Simple real time electronic circuit simulator";
         longDescription = ''
           SimulIDE is a simple real time electronic circuit simulator, intended for hobbyist or students
           to learn and experiment with analog and digital electronic circuits and microcontrollers.
diff --git a/pkgs/applications/science/electronics/systemc/default.nix b/pkgs/applications/science/electronics/systemc/default.nix
index 4e14d08e63bfa..8e47ef9606566 100644
--- a/pkgs/applications/science/electronics/systemc/default.nix
+++ b/pkgs/applications/science/electronics/systemc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "systemc";
-  version = "2.3.4";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "accellera-official";
     repo = pname;
     rev = version;
-    sha256 = "0sj8wlkp68cjhmkd9c9lvm3lk3sckczpz7w9vby64inc1f9fnf0b";
+    sha256 = "sha256-qeQUrPhD+Gb1lResM7NZzO/vEgJd3NE6lbnM380VVa0=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
 
   meta = with lib; {
-    description = "The language for System-level design, modeling and verification";
+    description = "Language for System-level design, modeling and verification";
     homepage    = "https://systemc.org/";
     license     = licenses.asl20;
     platforms   = platforms.unix;
diff --git a/pkgs/applications/science/geometry/antiprism/default.nix b/pkgs/applications/science/geometry/antiprism/default.nix
index 79688e05fb807..62ffc099dc6cd 100644
--- a/pkgs/applications/science/geometry/antiprism/default.nix
+++ b/pkgs/applications/science/geometry/antiprism/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.antiprism.com";
-    description = "A collection of programs for generating, manipulating, transforming and viewing polyhedra";
+    description = "Collection of programs for generating, manipulating, transforming and viewing polyhedra";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ AndersonTorres ];
   };
diff --git a/pkgs/applications/science/logic/abc/default.nix b/pkgs/applications/science/logic/abc/default.nix
index 1685bb7aba33c..a71122c5465c5 100644
--- a/pkgs/applications/science/logic/abc/default.nix
+++ b/pkgs/applications/science/logic/abc/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.rev = finalAttrs.src.rev;
 
   meta = with lib; {
-    description = "A tool for squential logic synthesis and formal verification";
+    description = "Tool for squential logic synthesis and formal verification";
     homepage    = "https://people.eecs.berkeley.edu/~alanmi/abc";
     license     = licenses.mit;
     maintainers = with maintainers; [ thoughtpolice Luflosi ];
diff --git a/pkgs/applications/science/logic/acgtk/default.nix b/pkgs/applications/science/logic/acgtk/default.nix
index 3fa4111668ebc..37c7b527a9134 100644
--- a/pkgs/applications/science/logic/acgtk/default.nix
+++ b/pkgs/applications/science/logic/acgtk/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://acg.loria.fr/";
-    description = "A toolkit for developing ACG signatures and lexicon";
+    description = "Toolkit for developing ACG signatures and lexicon";
     license = licenses.cecill20;
     inherit (ocamlPackages.ocaml.meta) platforms;
     maintainers = [ maintainers.jirkamarsik ];
diff --git a/pkgs/applications/science/logic/beluga/default.nix b/pkgs/applications/science/logic/beluga/default.nix
index 693be7f338866..b1497e2b1dcbe 100644
--- a/pkgs/applications/science/logic/beluga/default.nix
+++ b/pkgs/applications/science/logic/beluga/default.nix
@@ -33,7 +33,7 @@ ocamlPackages.buildDunePackage rec {
   '';
 
   meta = with lib; {
-    description = "A functional language for reasoning about formal systems";
+    description = "Functional language for reasoning about formal systems";
     homepage = "https://complogic.cs.mcgill.ca/beluga";
     changelog = "https://github.com/Beluga-lang/Beluga/releases/tag/v${version}";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/science/logic/bitwuzla/default.nix b/pkgs/applications/science/logic/bitwuzla/default.nix
index 1fa78849db6e8..c1eb751fb1a57 100644
--- a/pkgs/applications/science/logic/bitwuzla/default.nix
+++ b/pkgs/applications/science/logic/bitwuzla/default.nix
@@ -1,6 +1,5 @@
 { stdenv
 , fetchFromGitHub
-, fetchpatch
 , lib
 , python3
 , meson
@@ -18,24 +17,15 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "bitwuzla";
-  version = "0.4.0";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "bitwuzla";
     repo = "bitwuzla";
     rev = finalAttrs.version;
-    hash = "sha256-ZEdV4ml1LwrYwscgOcL2gLx/ijPYqRktXMQH/Njh8OI=";
+    hash = "sha256-/izxmN+zlrXsY6g6TRC1QqsLqltvrmZquXRd6h8RLRc=";
   };
 
-  patches = [
-    # fix parser on aarch64
-    # remove on next release
-    (fetchpatch {
-      url = "https://github.com/bitwuzla/bitwuzla/commit/4d914aa5ec34076c37749f0cf6dce976ea510386.patch";
-      hash = "sha256-gp+HEamOySjPXCC39tt5DIMdQqEew26a+M15sNdCmTM=";
-    })
-  ];
-
   strictDeps = true;
 
   nativeBuildInputs = [ meson pkg-config git ninja ];
@@ -62,7 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
   doCheck = stdenv.hostPlatform.isLinux;
 
   meta = {
-    description = "A SMT solver for fixed-size bit-vectors, floating-point arithmetic, arrays, and uninterpreted functions";
+    description = "SMT solver for fixed-size bit-vectors, floating-point arithmetic, arrays, and uninterpreted functions";
     mainProgram = "bitwuzla";
     homepage = "https://bitwuzla.github.io";
     license = lib.licenses.mit;
diff --git a/pkgs/applications/science/logic/boolector/default.nix b/pkgs/applications/science/logic/boolector/default.nix
index d23db163aeb64..1fd6bf7dc5431 100644
--- a/pkgs/applications/science/logic/boolector/default.nix
+++ b/pkgs/applications/science/logic/boolector/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An extremely fast SMT solver for bit-vectors and arrays";
+    description = "Extremely fast SMT solver for bit-vectors and arrays";
     homepage    = "https://boolector.github.io";
     license     = licenses.mit;
     platforms   = with platforms; linux ++ darwin;
diff --git a/pkgs/applications/science/logic/btor2tools/default.nix b/pkgs/applications/science/logic/btor2tools/default.nix
index ce73ea636f295..a66637150bdfd 100644
--- a/pkgs/applications/science/logic/btor2tools/default.nix
+++ b/pkgs/applications/science/logic/btor2tools/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A generic parser and tool package for the BTOR2 format";
+    description = "Generic parser and tool package for the BTOR2 format";
     homepage    = "https://github.com/Boolector/btor2tools";
     license     = licenses.mit;
     platforms   = platforms.unix;
diff --git a/pkgs/applications/science/logic/cbmc/0001-Do-not-download-sources-in-cmake.patch b/pkgs/applications/science/logic/cbmc/0001-Do-not-download-sources-in-cmake.patch
index 181214093ef8a..c209ed059e44f 100644
--- a/pkgs/applications/science/logic/cbmc/0001-Do-not-download-sources-in-cmake.patch
+++ b/pkgs/applications/science/logic/cbmc/0001-Do-not-download-sources-in-cmake.patch
@@ -1,4 +1,4 @@
-From 206084d2e08198b0b5b67733c407bd3fb74affb1 Mon Sep 17 00:00:00 2001
+From 714f5ebe9ade721abdccf58edfcddba52465cb8d Mon Sep 17 00:00:00 2001
 From: Jiajie Chen <c@jia.je>
 Date: Sun, 2 Jul 2023 22:43:27 +0800
 Subject: [PATCH] Do not download sources in cmake
@@ -8,7 +8,7 @@ Subject: [PATCH] Do not download sources in cmake
  1 file changed, 1 insertion(+), 10 deletions(-)
 
 diff --git a/src/solvers/CMakeLists.txt b/src/solvers/CMakeLists.txt
-index 8bfcf4d13c..6ba858a461 100644
+index daa0853a57..4bcbbdaa47 100644
 --- a/src/solvers/CMakeLists.txt
 +++ b/src/solvers/CMakeLists.txt
 @@ -123,16 +123,6 @@ foreach(SOLVER ${sat_impl})
@@ -16,11 +16,11 @@ index 8bfcf4d13c..6ba858a461 100644
          message(STATUS "Building solvers with cadical")
  
 -        download_project(PROJ cadical
--            URL https://github.com/arminbiere/cadical/archive/rel-1.5.3.tar.gz
--            PATCH_COMMAND patch -p1 -i ${CBMC_SOURCE_DIR}/../scripts/cadical-1.5.3-patch
+-            URL https://github.com/arminbiere/cadical/archive/rel-1.7.2.tar.gz
+-            PATCH_COMMAND patch -p1 -i ${CBMC_SOURCE_DIR}/../scripts/cadical-1.7.2-patch
 -            COMMAND cmake -E copy ${CBMC_SOURCE_DIR}/../scripts/cadical_CMakeLists.txt CMakeLists.txt
 -            COMMAND ./configure
--            URL_MD5 265b1a715000ed3c5b6de36ddd1278a0
+-            URL_MD5 be646831a017f81b300664e58deba1b5
 -        )
 -
 -        add_subdirectory(${cadical_SOURCE_DIR} ${cadical_BINARY_DIR})
@@ -32,10 +32,10 @@ index 8bfcf4d13c..6ba858a461 100644
          target_include_directories(solvers
              PUBLIC
              ${cadical_SOURCE_DIR}/src
-+	    ${cadical_INCLUDE_DIR}
++            ${cadical_INCLUDE_DIR}
          )
  
          target_link_libraries(solvers cadical)
 -- 
-2.40.1
+2.42.0
 
diff --git a/pkgs/applications/science/logic/cbmc/default.nix b/pkgs/applications/science/logic/cbmc/default.nix
index 6a878735bb3d9..dcf5b5bb37fa2 100644
--- a/pkgs/applications/science/logic/cbmc/default.nix
+++ b/pkgs/applications/science/logic/cbmc/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cbmc";
-  version = "5.91.0";
+  version = "5.95.1";
 
   src = fetchFromGitHub {
     owner = "diffblue";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "sha256-7DzhGEDS9T6WIjGoxOw9Gf/q+tYNFJDPbQUBV3tbn/I=";
+    sha256 = "sha256-fDLSo5EeHyPTliAqFp+5mfaB0iZXIMXeMyF21fjl5k4=";
   };
 
   nativeBuildInputs = [
@@ -82,7 +82,7 @@ stdenv.mkDerivation rec {
     license = licenses.bsdOriginal;
     maintainers = with maintainers; [ jiegec ];
     platforms = platforms.unix;
-    # https://github.com/diffblue/cbmc/issues/7423
-    broken = stdenv.isLinux && stdenv.isAarch64;
+    # error: no member named 'aligned_alloc' in the global namespace
+    broken = stdenv.isDarwin && stdenv.isx86_64;
   };
 }
diff --git a/pkgs/applications/science/logic/cedille/default.nix b/pkgs/applications/science/logic/cedille/default.nix
index fe12d5995a6f9..1ac3ff3fe310a 100644
--- a/pkgs/applications/science/logic/cedille/default.nix
+++ b/pkgs/applications/science/logic/cedille/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An interactive theorem-prover and dependently typed programming language, based on extrinsic (aka Curry-style) type theory";
+    description = "Interactive theorem-prover and dependently typed programming language, based on extrinsic (aka Curry-style) type theory";
     homepage = "https://cedille.github.io/";
     license = licenses.mit;
     maintainers = with maintainers; [ mpickering ];
diff --git a/pkgs/applications/science/logic/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix
index 68b424b32fb4a..af672d500fa6a 100644
--- a/pkgs/applications/science/logic/coq/default.nix
+++ b/pkgs/applications/science/logic/coq/default.nix
@@ -58,6 +58,7 @@ let
    "8.18.0".sha256   = "sha256-WhiBs4nzPHQ0R24xAdM49kmxSCPOxiOVMA1iiMYunz4=";
    "8.19.0".sha256   = "sha256-ixsYCvCXpBHqJ71hLQklphlwoOO3i/6w2PJjllKqf9k=";
    "8.19.1".sha256   = "sha256-kmZ8Uk8jpzjOd67aAPp3C+vU2oNaBw9pr7+Uixcgg94=";
+   "8.19.2".sha256   = "sha256-q+i07JsMZp83Gqav6v1jxsgPLN7sPvp5/oszVnavmz0=";
   };
   releaseRev = v: "V${v}";
   fetched = import ../../../../build-support/coq/meta-fetch/default.nix
diff --git a/pkgs/applications/science/logic/cryptominisat/default.nix b/pkgs/applications/science/logic/cryptominisat/default.nix
index 4040cdb797290..7c2ee23d36cb8 100644
--- a/pkgs/applications/science/logic/cryptominisat/default.nix
+++ b/pkgs/applications/science/logic/cryptominisat/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An advanced SAT Solver";
+    description = "Advanced SAT Solver";
     mainProgram = "cryptominisat5";
     homepage = "https://github.com/msoos/cryptominisat";
     license = licenses.mit;
diff --git a/pkgs/applications/science/logic/cryptoverif/default.nix b/pkgs/applications/science/logic/cryptoverif/default.nix
index 4b74cdd518ca2..7c95c21c2ccf3 100644
--- a/pkgs/applications/science/logic/cryptoverif/default.nix
+++ b/pkgs/applications/science/logic/cryptoverif/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, ocaml }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "cryptoverif";
-  version = "2.08pl1";
+  version = "2.09";
 
   src = fetchurl {
-    url    = "http://prosecco.gforge.inria.fr/personal/bblanche/cryptoverif/cryptoverif${version}.tar.gz";
-    hash = "sha256-rmORSZuhds9W2WpNgYf4AJM2jgEUPoJit4G64qLqj5w=";
+    url    = "http://prosecco.gforge.inria.fr/personal/bblanche/cryptoverif/cryptoverif${finalAttrs.version}.tar.gz";
+    hash = "sha256-FJlPZgTUZ+6HzhG/B0dOiVIjDvoCnF6yg2E9UriSojw=";
   };
 
   /* Fix up the frontend to load the 'default' cryptoverif library
@@ -48,4 +48,4 @@ stdenv.mkDerivation rec {
     platforms   = lib.platforms.unix;
     maintainers = [ lib.maintainers.thoughtpolice ];
   };
-}
+})
diff --git a/pkgs/applications/science/logic/cubicle/default.nix b/pkgs/applications/science/logic/cubicle/default.nix
index 03409e68ea336..2af9e6e926492 100644
--- a/pkgs/applications/science/logic/cubicle/default.nix
+++ b/pkgs/applications/science/logic/cubicle/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "An open source model checker for verifying safety properties of array-based systems";
+    description = "Open source model checker for verifying safety properties of array-based systems";
     mainProgram = "cubicle";
     homepage = "https://cubicle.lri.fr/";
     license = licenses.asl20;
diff --git a/pkgs/applications/science/logic/cvc3/default.nix b/pkgs/applications/science/logic/cvc3/default.nix
index bec5a89cc691b..8b78b86cbb073 100644
--- a/pkgs/applications/science/logic/cvc3/default.nix
+++ b/pkgs/applications/science/logic/cvc3/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A prover for satisfiability modulo theory (SMT)";
+    description = "Prover for satisfiability modulo theory (SMT)";
     mainProgram = "cvc3";
     maintainers = with maintainers;
       [ raskin ];
diff --git a/pkgs/applications/science/logic/cvc4/default.nix b/pkgs/applications/science/logic/cvc4/default.nix
index ac45db8cb3127..2dc12b7ab7234 100644
--- a/pkgs/applications/science/logic/cvc4/default.nix
+++ b/pkgs/applications/science/logic/cvc4/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   cmakeBuildType = "Production";
 
   meta = with lib; {
-    description = "A high-performance theorem prover and SMT solver";
+    description = "High-performance theorem prover and SMT solver";
     mainProgram = "cvc4";
     homepage    = "http://cvc4.cs.stanford.edu/web/";
     license     = licenses.gpl3;
diff --git a/pkgs/applications/science/logic/cvc5/default.nix b/pkgs/applications/science/logic/cvc5/default.nix
index d34b293372968..93a05e97ff9e1 100644
--- a/pkgs/applications/science/logic/cvc5/default.nix
+++ b/pkgs/applications/science/logic/cvc5/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A high-performance theorem prover and SMT solver";
+    description = "High-performance theorem prover and SMT solver";
     mainProgram = "cvc5";
     homepage    = "https://cvc5.github.io";
     license     = licenses.gpl3Only;
diff --git a/pkgs/applications/science/logic/dafny/default.nix b/pkgs/applications/science/logic/dafny/default.nix
index acf4f05000bf1..f85e6cf22879d 100644
--- a/pkgs/applications/science/logic/dafny/default.nix
+++ b/pkgs/applications/science/logic/dafny/default.nix
@@ -56,7 +56,7 @@ buildDotnetModule rec {
   '';
 
   meta = with lib; {
-    description = "A programming language with built-in specification constructs";
+    description = "Programming language with built-in specification constructs";
     homepage = "https://research.microsoft.com/dafny";
     maintainers = with maintainers; [ layus ];
     license = licenses.mit;
diff --git a/pkgs/applications/science/logic/drat-trim/default.nix b/pkgs/applications/science/logic/drat-trim/default.nix
index 78d810e19be23..fb8468f4fbda6 100644
--- a/pkgs/applications/science/logic/drat-trim/default.nix
+++ b/pkgs/applications/science/logic/drat-trim/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A proof checker for unSAT proofs";
+    description = "Proof checker for unSAT proofs";
     longDescription = ''
       DRAT-trim is a satisfiability proof checking and trimming
       utility designed to validate proofs for all known satisfiability
diff --git a/pkgs/applications/science/logic/egglog/default.nix b/pkgs/applications/science/logic/egglog/default.nix
index 8b94c449c6be2..f730d0ec55eaf 100644
--- a/pkgs/applications/science/logic/egglog/default.nix
+++ b/pkgs/applications/science/logic/egglog/default.nix
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage {
   };
 
   meta = with lib; {
-    description = "A fixpoint reasoning system that unifies Datalog and equality saturation";
+    description = "Fixpoint reasoning system that unifies Datalog and equality saturation";
     mainProgram = "egglog";
     homepage = "https://github.com/egraphs-good/egglog";
     license = licenses.mit;
diff --git a/pkgs/applications/science/logic/fast-downward/default.nix b/pkgs/applications/science/logic/fast-downward/default.nix
index 77b538d1cbd86..c18a610467470 100644
--- a/pkgs/applications/science/logic/fast-downward/default.nix
+++ b/pkgs/applications/science/logic/fast-downward/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A domain-independent planning system";
+    description = "Domain-independent planning system";
     mainProgram = "fast-downward";
     homepage = "https://www.fast-downward.org/";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/science/logic/hol_light/default.nix b/pkgs/applications/science/logic/hol_light/default.nix
index 813397ba01f93..0e3dee4b0c0ad 100644
--- a/pkgs/applications/science/logic/hol_light/default.nix
+++ b/pkgs/applications/science/logic/hol_light/default.nix
@@ -1,8 +1,12 @@
-{ lib, stdenv, runtimeShell, fetchFromGitHub, fetchpatch, ocaml, findlib, num, camlp5, camlp-streams }:
+{ lib, stdenv, runtimeShell, fetchFromGitHub, fetchpatch, ocaml, findlib, num, zarith, camlp5, camlp-streams }:
 
 let
+  use_zarith = lib.versionAtLeast ocaml.version "4.14";
   load_num =
-    lib.optionalString (num != null) ''
+    if use_zarith then ''
+      -I ${zarith}/lib/ocaml/${ocaml.version}/site-lib/zarith \
+      -I ${zarith}/lib/ocaml/${ocaml.version}/site-lib/stublibs \
+    '' else lib.optionalString (num != null) ''
       -I ${num}/lib/ocaml/${ocaml.version}/site-lib/num \
       -I ${num}/lib/ocaml/${ocaml.version}/site-lib/top-num \
       -I ${num}/lib/ocaml/${ocaml.version}/site-lib/stublibs \
@@ -22,18 +26,15 @@ let
     '';
 in
 
-lib.throwIf (lib.versionAtLeast ocaml.version "5.0")
-  "hol_light is not available for OCaml ${ocaml.version}"
-
 stdenv.mkDerivation {
   pname = "hol_light";
-  version = "unstable-2023-11-03";
+  version = "unstable-2024-05-10";
 
   src = fetchFromGitHub {
     owner = "jrh13";
     repo = "hol-light";
-    rev = "dcd765c6032f52a0c0bf21fce5da4794a823e880";
-    hash = "sha256-k2RBNDo4tc3eobKB84Y2xr0UQJvef0hv6jyFCaDCQFM=";
+    rev = "d8366986e22555c4e4c8ff49667d646d15c35f14";
+    hash = "sha256-dN9X7yQlFof759I5lxxL4DxDe8V3XAhCRaryO9NabY4=";
   };
 
   patches = [
@@ -46,7 +47,10 @@ stdenv.mkDerivation {
   strictDeps = true;
 
   nativeBuildInputs = [ ocaml findlib camlp5 ];
-  propagatedBuildInputs = [ camlp-streams num ];
+  propagatedBuildInputs = [
+    camlp-streams
+    (if use_zarith then zarith else num)
+  ];
 
   installPhase = ''
     mkdir -p "$out/lib/hol_light" "$out/bin"
diff --git a/pkgs/applications/science/logic/iprover/default.nix b/pkgs/applications/science/logic/iprover/default.nix
index 77e5919c0eee1..ad21323ec3e13 100644
--- a/pkgs/applications/science/logic/iprover/default.nix
+++ b/pkgs/applications/science/logic/iprover/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An automated first-order logic theorem prover";
+    description = "Automated first-order logic theorem prover";
     homepage = "http://www.cs.man.ac.uk/~korovink/iprover/";
     maintainers = with maintainers; [ raskin gebner ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/science/logic/isabelle/components/isabelle-linter.nix b/pkgs/applications/science/logic/isabelle/components/isabelle-linter.nix
index d9b8dd5cf28f6..91bf5ba32b68e 100644
--- a/pkgs/applications/science/logic/isabelle/components/isabelle-linter.nix
+++ b/pkgs/applications/science/logic/isabelle/components/isabelle-linter.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "Linter component for Isabelle.";
+    description = "Linter component for Isabelle";
     homepage = "https://github.com/isabelle-prover/isabelle-linter";
     maintainers = with maintainers; [ jvanbruegge ];
     license = licenses.mit;
diff --git a/pkgs/applications/science/logic/kissat/default.nix b/pkgs/applications/science/logic/kissat/default.nix
index 65bcebdc6b1a1..9a34409730fee 100644
--- a/pkgs/applications/science/logic/kissat/default.nix
+++ b/pkgs/applications/science/logic/kissat/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A 'keep it simple and clean bare metal SAT solver' written in C";
+    description = "'keep it simple and clean bare metal SAT solver' written in C";
     mainProgram = "kissat";
     longDescription = ''
       Kissat is a "keep it simple and clean bare metal SAT solver" written in C.
diff --git a/pkgs/applications/science/logic/klee/default.nix b/pkgs/applications/science/logic/klee/default.nix
index 4f17558b340e4..b610ce558605d 100644
--- a/pkgs/applications/science/logic/klee/default.nix
+++ b/pkgs/applications/science/logic/klee/default.nix
@@ -108,7 +108,7 @@ in stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A symbolic virtual machine built on top of LLVM";
+    description = "Symbolic virtual machine built on top of LLVM";
     longDescription = ''
       KLEE is a symbolic virtual machine built on top of the LLVM compiler
       infrastructure. Currently, there are two primary components:
diff --git a/pkgs/applications/science/logic/klee/klee-uclibc.nix b/pkgs/applications/science/logic/klee/klee-uclibc.nix
index a8e459a6bdaee..5bbd8e69a46fa 100644
--- a/pkgs/applications/science/logic/klee/klee-uclibc.nix
+++ b/pkgs/applications/science/logic/klee/klee-uclibc.nix
@@ -89,7 +89,7 @@ in stdenv.mkDerivation rec {
   makeFlags = ["HAVE_DOT_CONFIG=y"];
 
   meta = with lib; {
-    description = "A modified version of uClibc for KLEE.";
+    description = "Modified version of uClibc for KLEE";
     longDescription = ''
       klee-uclibc is a bitcode build of uClibc meant for compatibility with the
       KLEE symbolic virtual machine.
diff --git a/pkgs/applications/science/logic/lean4/default.nix b/pkgs/applications/science/logic/lean4/default.nix
index ac41b03643dc7..2ec05098f4078 100644
--- a/pkgs/applications/science/logic/lean4/default.nix
+++ b/pkgs/applications/science/logic/lean4/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "lean4";
-  version = "4.7.0";
+  version = "4.8.0";
 
   src = fetchFromGitHub {
     owner = "leanprover";
     repo = "lean4";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-jHY8BhDotfGcMS0Xzl5iawqCaug3dDEKuD5Y1WcM06I=";
+    hash = "sha256-R75RrAQb/tRTtMvy/ddLl1KQaA7V71nocvjIS9geMrg=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/science/logic/leo2/default.nix b/pkgs/applications/science/logic/leo2/default.nix
index dcf2d5b7c33c3..7fdc37c4db4e3 100644
--- a/pkgs/applications/science/logic/leo2/default.nix
+++ b/pkgs/applications/science/logic/leo2/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A high-performance typed higher order prover";
+    description = "High-performance typed higher order prover";
     mainProgram = "leo";
     maintainers = [ maintainers.raskin ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/science/logic/leo3/binary.nix b/pkgs/applications/science/logic/leo3/binary.nix
index 0cdf8a4dc2103..e8af3fdaab1a3 100644
--- a/pkgs/applications/science/logic/leo3/binary.nix
+++ b/pkgs/applications/science/logic/leo3/binary.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An automated theorem prover for classical higher-order logic with choice";
+    description = "Automated theorem prover for classical higher-order logic with choice";
     mainProgram = "leo3";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.bsd3;
diff --git a/pkgs/applications/science/logic/mcrl2/default.nix b/pkgs/applications/science/logic/mcrl2/default.nix
index 854c2c16f5acf..c26e5f2e761f6 100644
--- a/pkgs/applications/science/logic/mcrl2/default.nix
+++ b/pkgs/applications/science/logic/mcrl2/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A toolset for model-checking concurrent systems and protocols";
+    description = "Toolset for model-checking concurrent systems and protocols";
     longDescription = ''
       A formal specification language with an associated toolset,
       that can be used for modelling, validation and verification of
diff --git a/pkgs/applications/science/logic/nusmv/default.nix b/pkgs/applications/science/logic/nusmv/default.nix
index d3e3dc998cc0e..d7ecbc7cd8874 100644
--- a/pkgs/applications/science/logic/nusmv/default.nix
+++ b/pkgs/applications/science/logic/nusmv/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A new symbolic model checker for the analysis of synchronous finite-state and infinite-state systems";
+    description = "New symbolic model checker for the analysis of synchronous finite-state and infinite-state systems";
     homepage = "https://nuxmv.fbk.eu/pmwiki.php";
     maintainers = with maintainers; [ mgttlinger ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/applications/science/logic/opensmt/default.nix b/pkgs/applications/science/logic/opensmt/default.nix
index 4a5f453f35478..1a031e8d1e1dd 100644
--- a/pkgs/applications/science/logic/opensmt/default.nix
+++ b/pkgs/applications/science/logic/opensmt/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "opensmt";
-  version = "2.6.0";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     owner = "usi-verification-and-security";
     repo = "opensmt";
     rev = "v${version}";
-    sha256 = "sha256-glIiyPSkLG7sGYw5ujfl47GuDuPIPdP+UybA1vSn0Uw=";
+    sha256 = "sha256-zhNNnwc41B4sNq50kPub29EYhqV+FoDKRD/CLHnVyZw=";
   };
 
   nativeBuildInputs = [ cmake bison flex ];
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
-    description = "A satisfiability modulo theory (SMT) solver";
+    description = "Satisfiability modulo theory (SMT) solver";
     mainProgram = "opensmt";
     maintainers = [ maintainers.raskin ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/science/logic/ott/default.nix b/pkgs/applications/science/logic/ott/default.nix
index b8197aaa41230..73de6373e8f05 100644
--- a/pkgs/applications/science/logic/ott/default.nix
+++ b/pkgs/applications/science/logic/ott/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A tool for the working semanticist";
+    description = "Tool for the working semanticist";
     mainProgram = "ott";
     longDescription = ''
       Ott is a tool for writing definitions of programming languages and
diff --git a/pkgs/applications/science/logic/petrinizer/default.nix b/pkgs/applications/science/logic/petrinizer/default.nix
deleted file mode 100644
index 9fd20e3ed4afd..0000000000000
--- a/pkgs/applications/science/logic/petrinizer/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ mkDerivation
-, async, base, bytestring, containers, fetchFromGitLab, mtl
-, parallel-io, parsec, lib, stm, transformers, sbv_7_13}:
-
-mkDerivation rec {
-  pname = "petrinizer";
-  version = "0.9.1.1";
-
-  src = fetchFromGitLab {
-    domain = "gitlab.lrz.de";
-    owner = "i7";
-    repo = pname;
-    rev = version;
-    sha256 = "1n7fzm96gq5rxm2f8w8sr1yzm1zcxpf0b473c6xnhsgqsis5j4xw";
-  };
-
-  isLibrary = false;
-  isExecutable = true;
-  executableHaskellDepends = [
-    async base bytestring containers mtl parallel-io parsec sbv_7_13 stm
-    transformers
-  ];
-  description = "Safety and Liveness Analysis of Petri Nets with SMT solvers";
-  license = lib.licenses.gpl3;
-  maintainers = with lib.maintainers; [ raskin ];
-  inherit (sbv_7_13.meta) platforms;
-
-  # dependency sbv no longer builds
-  hydraPlatforms = lib.platforms.none;
-  broken = true;
-}
diff --git a/pkgs/applications/science/logic/prooftree/default.nix b/pkgs/applications/science/logic/prooftree/default.nix
index d0d95818ff93b..bb20477fd1788 100644
--- a/pkgs/applications/science/logic/prooftree/default.nix
+++ b/pkgs/applications/science/logic/prooftree/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "prooftree";
-  version = "0.13";
+  version = "0.14";
 
   src = fetchurl {
     url = "https://askra.de/software/prooftree/releases/prooftree-${version}.tar.gz";
-    sha256 = "0z1z4wqbqwgppkh2bm89fgy07a0y2m6g4lvcyzs09sm1ysklk2dh";
+    sha256 = "sha256-nekV2UnjibOk4h0jZ1jV7W5pE/hXWb3fUoLTJb3Jzc0=";
   };
 
   strictDeps = true;
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   prefixKey = "--prefix ";
 
   meta = with lib; {
-    description = "A program for proof-tree visualization";
+    description = "Program for proof-tree visualization";
     mainProgram = "prooftree";
     longDescription = ''
       Prooftree is a program for proof-tree visualization during interactive
diff --git a/pkgs/applications/science/logic/redprl/default.nix b/pkgs/applications/science/logic/redprl/default.nix
index 2749730f9d667..03117d4e03285 100644
--- a/pkgs/applications/science/logic/redprl/default.nix
+++ b/pkgs/applications/science/logic/redprl/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A proof assistant for Nominal Computational Type Theory";
+    description = "Proof assistant for Nominal Computational Type Theory";
     mainProgram = "redprl";
     homepage = "http://www.redprl.org/";
     license = licenses.mit;
diff --git a/pkgs/applications/science/logic/sharpsat-td/default.nix b/pkgs/applications/science/logic/sharpsat-td/default.nix
index 2f2128d542f1b..4c5e22ba9b4f2 100644
--- a/pkgs/applications/science/logic/sharpsat-td/default.nix
+++ b/pkgs/applications/science/logic/sharpsat-td/default.nix
@@ -73,7 +73,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A fast solver for the #SAT model counting problem";
+    description = "Fast solver for the #SAT model counting problem";
     homepage = "https://github.com/Laakeri/sharpsat-td";
     license = with lib.licenses; [ mit asl20 ];
     maintainers = with lib.maintainers; [ ris ];
diff --git a/pkgs/applications/science/logic/symbiyosys/default.nix b/pkgs/applications/science/logic/symbiyosys/default.nix
index 19c021684b3ff..c3df8340d20c8 100644
--- a/pkgs/applications/science/logic/symbiyosys/default.nix
+++ b/pkgs/applications/science/logic/symbiyosys/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation {
     description = "Tooling for Yosys-based verification flows";
     homepage    = "https://symbiyosys.readthedocs.io/";
     license     = lib.licenses.isc;
-    maintainers = with lib.maintainers; [ thoughtpolice emily ];
+    maintainers = with lib.maintainers; [ thoughtpolice ];
     mainProgram = "sby";
     platforms   = lib.platforms.all;
   };
diff --git a/pkgs/applications/science/logic/tlaplus/default.nix b/pkgs/applications/science/logic/tlaplus/default.nix
index 2d2542a607a53..f478bf204d4f3 100644
--- a/pkgs/applications/science/logic/tlaplus/default.nix
+++ b/pkgs/applications/science/logic/tlaplus/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "An algorithm specification language with model checking tools";
+    description = "Algorithm specification language with model checking tools";
     homepage    = "http://lamport.azurewebsites.net/tla/tla.html";
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
     license     = lib.licenses.mit;
diff --git a/pkgs/applications/science/logic/tlaplus/tlaplus18.nix b/pkgs/applications/science/logic/tlaplus/tlaplus18.nix
index 4f34846a89276..2bd0f4b835647 100644
--- a/pkgs/applications/science/logic/tlaplus/tlaplus18.nix
+++ b/pkgs/applications/science/logic/tlaplus/tlaplus18.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "An algorithm specification language with model checking tools";
+    description = "Algorithm specification language with model checking tools";
     homepage    = "http://lamport.azurewebsites.net/tla/tla.html";
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
     license     = lib.licenses.mit;
diff --git a/pkgs/applications/science/logic/vampire/default.nix b/pkgs/applications/science/logic/vampire/default.nix
index 62427e2ee4554..e86f22613ad47 100644
--- a/pkgs/applications/science/logic/vampire/default.nix
+++ b/pkgs/applications/science/logic/vampire/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://vprover.github.io/";
-    description = "The Vampire Theorem Prover";
+    description = "Vampire Theorem Prover";
     mainProgram = "vampire";
     platforms = platforms.unix;
     license = licenses.bsd3;
diff --git a/pkgs/applications/science/logic/verit/default.nix b/pkgs/applications/science/logic/verit/default.nix
index 6c0d1061dcab9..65878ba43df93 100644
--- a/pkgs/applications/science/logic/verit/default.nix
+++ b/pkgs/applications/science/logic/verit/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "An open, trustable and efficient SMT-solver";
+    description = "Open, trustable and efficient SMT-solver";
     homepage = "https://verit.loria.fr/";
     license = licenses.bsd3;
     platforms = platforms.unix;
diff --git a/pkgs/applications/science/logic/why3/default.nix b/pkgs/applications/science/logic/why3/default.nix
index 42256ae70aa69..ac9475417dbdd 100644
--- a/pkgs/applications/science/logic/why3/default.nix
+++ b/pkgs/applications/science/logic/why3/default.nix
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
   passthru.withProvers = callPackage ./with-provers.nix {};
 
   meta = with lib; {
-    description = "A platform for deductive program verification";
+    description = "Platform for deductive program verification";
     homepage    = "https://why3.lri.fr/";
     license     = licenses.lgpl21;
     platforms   = platforms.unix;
diff --git a/pkgs/applications/science/logic/yices/default.nix b/pkgs/applications/science/logic/yices/default.nix
index b97245cab4768..de80cd725653f 100644
--- a/pkgs/applications/science/logic/yices/default.nix
+++ b/pkgs/applications/science/logic/yices/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A high-performance theorem prover and SMT solver";
+    description = "High-performance theorem prover and SMT solver";
     homepage    = "https://yices.csl.sri.com";
     license     = licenses.gpl3;
     platforms   = with platforms; linux ++ darwin;
diff --git a/pkgs/applications/science/logic/z3/default.nix b/pkgs/applications/science/logic/z3/default.nix
index f35da4a732b09..2db1fc95f7974 100644
--- a/pkgs/applications/science/logic/z3/default.nix
+++ b/pkgs/applications/science/logic/z3/default.nix
@@ -78,7 +78,7 @@ let common = { version, sha256, patches ? [ ], tag ? "z3" }:
       ++ optional ocamlBindings "ocaml";
 
     meta = with lib; {
-      description = "A high-performance theorem prover and SMT solver";
+      description = "High-performance theorem prover and SMT solver";
       mainProgram = "z3";
       homepage = "https://github.com/Z3Prover/z3";
       changelog = "https://github.com/Z3Prover/z3/releases/tag/z3-${version}";
diff --git a/pkgs/applications/science/machine-learning/labelimg/default.nix b/pkgs/applications/science/machine-learning/labelimg/default.nix
index 21174305b9e3e..b610920955904 100644
--- a/pkgs/applications/science/machine-learning/labelimg/default.nix
+++ b/pkgs/applications/science/machine-learning/labelimg/default.nix
@@ -41,7 +41,7 @@ python3Packages.buildPythonApplication rec {
     makeWrapperArgs+=("''${qtWrapperArgs[@]}")
   '';
   meta = with lib; {
-    description = "A graphical image annotation tool and label object bounding boxes in images";
+    description = "Graphical image annotation tool and label object bounding boxes in images";
     mainProgram = "labelImg";
     homepage = "https://github.com/tzutalin/labelImg";
     license = licenses.mit;
diff --git a/pkgs/applications/science/machine-learning/shogun/default.nix b/pkgs/applications/science/machine-learning/shogun/default.nix
index d25bc06385ea9..1e317fdec03e3 100644
--- a/pkgs/applications/science/machine-learning/shogun/default.nix
+++ b/pkgs/applications/science/machine-learning/shogun/default.nix
@@ -200,7 +200,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A toolbox which offers a wide range of efficient and unified machine learning methods";
+    description = "Toolbox which offers a wide range of efficient and unified machine learning methods";
     homepage = "http://shogun-toolbox.org/";
     license = if withSvmLight then licenses.unfree else licenses.gpl3Plus;
     maintainers = with maintainers; [ edwtjo smancill ];
diff --git a/pkgs/applications/science/math/4ti2/default.nix b/pkgs/applications/science/math/4ti2/default.nix
index 9424612c7587a..940e2e45d5acf 100644
--- a/pkgs/applications/science/math/4ti2/default.nix
+++ b/pkgs/applications/science/math/4ti2/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec{
 
   meta = with lib;{
     homepage = "https://4ti2.github.io/";
-    description = "A software package for algebraic, geometric and combinatorial problems on linear spaces";
+    description = "Software package for algebraic, geometric and combinatorial problems on linear spaces";
     license = with licenses; [ gpl2Plus ];
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.all;
diff --git a/pkgs/applications/science/math/LiE/default.nix b/pkgs/applications/science/math/LiE/default.nix
index 7eb9edbb3b192..dbc66fe2a05fe 100644
--- a/pkgs/applications/science/math/LiE/default.nix
+++ b/pkgs/applications/science/math/LiE/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
   pname = "lie";
 
   meta = {
-    description = "A Computer algebra package for Lie group computations";
+    description = "Computer algebra package for Lie group computations";
     mainProgram = "lie";
     homepage = "http://wwwmathlabo.univ-poitiers.fr/~maavl/LiE/";
     license = lib.licenses.lgpl3; # see the website
diff --git a/pkgs/applications/science/math/R/default.nix b/pkgs/applications/science/math/R/default.nix
index 5ceb413a24211..b6fac3cca9e5a 100644
--- a/pkgs/applications/science/math/R/default.nix
+++ b/pkgs/applications/science/math/R/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, bzip2, gfortran, libX11, libXmu, libXt, libjpeg, libpng
+{ lib, stdenv, fetchurl, bzip2, gfortran, libX11, libXmu, libXt, libjpeg, libpng
 , libtiff, ncurses, pango, pcre2, perl, readline, tcl, texlive, texliveSmall, tk, xz, zlib
 , less, texinfo, graphviz, icu, pkg-config, bison, imake, which, jdk, blas, lapack
 , curl, Cocoa, Foundation, libobjc, libcxx, tzdata
@@ -15,13 +15,13 @@ assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "R";
-  version = "4.3.3";
+  version = "4.4.1";
 
   src = let
     inherit (finalAttrs) pname version;
   in fetchurl {
     url = "https://cran.r-project.org/src/base/R-${lib.versions.major version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-gIUSMTk7hb84d+6eObKC51Dthkxexgy9aObhOfBSAzA=";
+    sha256 = "sha256-tMtnXequtymdOyZdIYzeQ/GSlRzluJt7saUUijay2U0=";
   };
 
   outputs = [ "out" "tex" ];
@@ -37,12 +37,6 @@ stdenv.mkDerivation (finalAttrs: {
 
   patches = [
     ./no-usr-local-search-paths.patch
-    (fetchpatch {
-      # https://hiddenlayer.com/research/r-bitrary-code-execution/
-      name = "CVE-2024-27322.patch";
-      url = "https://github.com/r-devel/r-svn/commit/f7c46500f455eb4edfc3656c3fa20af61b16abb7.patch";
-      hash = "sha256-CH2mMmie9E96JeGSC7UGm7/roUNhK5xv6HO53N2ixEI=";
-    })
   ];
 
   # Test of the examples for package 'tcltk' fails in Darwin sandbox. See:
diff --git a/pkgs/applications/science/math/bliss/default.nix b/pkgs/applications/science/math/bliss/default.nix
index 33969c705d05d..5673fcc34d959 100644
--- a/pkgs/applications/science/math/bliss/default.nix
+++ b/pkgs/applications/science/math/bliss/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An open source tool for computing automorphism groups and canonical forms of graphs. It has both a command line user interface as well as C++ and C programming language APIs";
+    description = "Open source tool for computing automorphism groups and canonical forms of graphs. It has both a command line user interface as well as C++ and C programming language APIs";
     mainProgram = "bliss";
     homepage = "http://www.tcs.hut.fi/Software/bliss/";
     license = licenses.lgpl3;
diff --git a/pkgs/applications/science/math/cbc/default.nix b/pkgs/applications/science/math/cbc/default.nix
index fb92b1cc98fbb..aa979a78cb485 100644
--- a/pkgs/applications/science/math/cbc/default.nix
+++ b/pkgs/applications/science/math/cbc/default.nix
@@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.epl10;
     maintainers = [ lib.maintainers.eelco ];
     platforms = lib.platforms.linux ++ lib.platforms.darwin;
-    description = "A mixed integer programming solver";
+    description = "Mixed integer programming solver";
   };
 }
diff --git a/pkgs/applications/science/math/clp/default.nix b/pkgs/applications/science/math/clp/default.nix
index 06032b4a3182e..f1c2c53638adf 100644
--- a/pkgs/applications/science/math/clp/default.nix
+++ b/pkgs/applications/science/math/clp/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     license = licenses.epl20;
     homepage = "https://github.com/coin-or/Clp";
-    description = "An open-source linear programming solver written in C++";
+    description = "Open-source linear programming solver written in C++";
     mainProgram = "clp";
     platforms = platforms.darwin ++ platforms.linux;
     maintainers = [ maintainers.vbgl ];
diff --git a/pkgs/applications/science/math/colpack/default.nix b/pkgs/applications/science/math/colpack/default.nix
index d5ab38ff75149..768366cc5d7a5 100644
--- a/pkgs/applications/science/math/colpack/default.nix
+++ b/pkgs/applications/science/math/colpack/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A package comprising of implementations of algorithms for
+    description = "Package comprising of implementations of algorithms for
     vertex coloring and derivative computation";
     homepage = "https://cscapes.cs.purdue.edu/coloringpage/software.htm#functionalities";
     license = licenses.lgpl3Plus;
diff --git a/pkgs/applications/science/math/csdp/default.nix b/pkgs/applications/science/math/csdp/default.nix
index 6ce03008d3a98..c0f863a6d26b5 100644
--- a/pkgs/applications/science/math/csdp/default.nix
+++ b/pkgs/applications/science/math/csdp/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     homepage = "https://projects.coin-or.org/Csdp";
     license = lib.licenses.cpl10;
     maintainers = [ lib.maintainers.roconnor ];
-    description = "A C Library for Semidefinite Programming";
+    description = "C Library for Semidefinite Programming";
     platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/applications/science/math/dap/default.nix b/pkgs/applications/science/math/dap/default.nix
index ed3290f6c27d8..40ce12f66ebd0 100644
--- a/pkgs/applications/science/math/dap/default.nix
+++ b/pkgs/applications/science/math/dap/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.gnu.org/software/dap";
-    description = "A small statistics and graphics package based on C";
+    description = "Small statistics and graphics package based on C";
     longDescription = ''
       Dap is a small statistics and graphics package based on C. Version 3.0 and
       later of Dap can read SBS programs (based on the utterly famous, industry
diff --git a/pkgs/applications/science/math/eigenmath/default.nix b/pkgs/applications/science/math/eigenmath/default.nix
index 1ebb93e516305..cb6748ec37796 100644
--- a/pkgs/applications/science/math/eigenmath/default.nix
+++ b/pkgs/applications/science/math/eigenmath/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "eigenmath";
-  version = "0-unstable-2024-05-18";
+  version = "3.26-unstable-2024-06-09";
 
   src = fetchFromGitHub {
     owner = "georgeweigt";
     repo = pname;
-    rev = "e5fc4a44797549da9d8994203547da63002b3700";
-    hash = "sha256-pX8rRIrOq0fQvzVrvAh47ZBzdkS6ZKuXTQ9joa/XJgg=";
+    rev = "285fc0133f0e7bb5e1e220b75246ce542ae50269";
+    hash = "sha256-ddED3PaHSSupe/QqMYj88GCmh9IrRvpAd4/WEpRTN00=";
   };
 
   checkPhase = let emulator = stdenv.hostPlatform.emulator buildPackages; in ''
diff --git a/pkgs/applications/science/math/form/default.nix b/pkgs/applications/science/math/form/default.nix
index c56ee432bdae0..3c5569f116d81 100644
--- a/pkgs/applications/science/math/form/default.nix
+++ b/pkgs/applications/science/math/form/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
   buildInputs = [ gmp zlib ];
 
   meta = with lib; {
-    description = "The FORM project for symbolic manipulation of very big expressions";
+    description = "FORM project for symbolic manipulation of very big expressions";
     homepage = "https://www.nikhef.nl/~form/";
     license = licenses.gpl3;
     maintainers = [ maintainers.veprbl ];
diff --git a/pkgs/applications/science/math/fricas/default.nix b/pkgs/applications/science/math/fricas/default.nix
index 355238ace15ce..9f0b87f011a10 100644
--- a/pkgs/applications/science/math/fricas/default.nix
+++ b/pkgs/applications/science/math/fricas/default.nix
@@ -1,21 +1,28 @@
-{ lib, stdenv, fetchurl, sbcl, libX11, libXpm, libICE, libSM, libXt, libXau, libXdmcp }:
+{ lib, stdenv, fetchFromGitHub, sbcl, libX11, libXpm, libICE, libSM, libXt, libXau, libXdmcp }:
 
 stdenv.mkDerivation rec {
   pname = "fricas";
-  version = "1.3.9";
+  version = "1.3.10";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/fricas/fricas/${version}/fricas-${version}-full.tar.bz2";
-    sha256 = "sha256-5RPcffM0GN0l6r8IgHJlwdxwwp2y4kIdJ5M3JnGZCzc=";
+  src = fetchFromGitHub {
+    owner = "fricas";
+    repo = "fricas";
+    rev = version;
+    sha256 = "sha256-T1xDndDnHq/hmhTWWO3Eu0733u8+C8sJMCF6pbLU2GI=";
   };
 
   buildInputs = [ sbcl libX11 libXpm libICE libSM libXt libXau libXdmcp ];
 
+  # Remove when updating to next version
+  configurePhase = ''
+    ./configure --prefix=$out --with-lisp='sbcl --dynamic-space-size 3072'
+  '';
+
   dontStrip = true;
 
   meta = {
-    homepage = "https://fricas.sourceforge.net/";
-    description = "An advanced computer algebra system";
+    homepage = "https://fricas.github.io";
+    description = "Advanced computer algebra system";
     license = lib.licenses.bsd3;
 
     platforms = lib.platforms.linux;
diff --git a/pkgs/applications/science/math/getdp/default.nix b/pkgs/applications/science/math/getdp/default.nix
index 5df35cce8e231..8accf9d76725a 100644
--- a/pkgs/applications/science/math/getdp/default.nix
+++ b/pkgs/applications/science/math/getdp/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = lib.optional mpiSupport "-DENABLE_MPI=1";
 
   meta = with lib; {
-    description = "A General Environment for the Treatment of Discrete Problems";
+    description = "General Environment for the Treatment of Discrete Problems";
     mainProgram = "getdp";
     longDescription = ''
       GetDP is a free finite element solver using mixed elements to discretize
diff --git a/pkgs/applications/science/math/gfan/default.nix b/pkgs/applications/science/math/gfan/default.nix
index 8fa6da16e336b..ee1fce783d265 100644
--- a/pkgs/applications/science/math/gfan/default.nix
+++ b/pkgs/applications/science/math/gfan/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ gmp mpir cddlib ];
 
   meta = {
-    description = "A software package for computing Gröbner fans and tropical varieties";
+    description = "Software package for computing Gröbner fans and tropical varieties";
     license = lib.licenses.gpl2 ;
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.unix;
diff --git a/pkgs/applications/science/math/giac/default.nix b/pkgs/applications/science/math/giac/default.nix
index 0dc12b6dcb050..834ae7b3d61f3 100644
--- a/pkgs/applications/science/math/giac/default.nix
+++ b/pkgs/applications/science/math/giac/default.nix
@@ -125,7 +125,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A free computer algebra system (CAS)";
+    description = "Free computer algebra system (CAS)";
     homepage = "https://www-fourier.ujf-grenoble.fr/~parisse/giac.html";
     license = licenses.gpl3Plus;
     platforms = platforms.linux ++ (optionals (!enableGUI) platforms.darwin);
diff --git a/pkgs/applications/science/math/glsurf/default.nix b/pkgs/applications/science/math/glsurf/default.nix
index d2ebba75638b9..38caee5805b43 100644
--- a/pkgs/applications/science/math/glsurf/default.nix
+++ b/pkgs/applications/science/math/glsurf/default.nix
@@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://raffalli.eu/~christophe/glsurf/";
-    description = "A program to draw implicit surfaces and curves";
+    description = "Program to draw implicit surfaces and curves";
     mainProgram = "glsurf";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.all;
diff --git a/pkgs/applications/science/math/gmsh/default.nix b/pkgs/applications/science/math/gmsh/default.nix
index 57b20fe12d7c2..3e88e7f94bbe6 100644
--- a/pkgs/applications/science/math/gmsh/default.nix
+++ b/pkgs/applications/science/math/gmsh/default.nix
@@ -7,11 +7,11 @@ assert enablePython -> (python != null);
 
 stdenv.mkDerivation rec {
   pname = "gmsh";
-  version = "4.12.2";
+  version = "4.13.1";
 
   src = fetchurl {
     url = "https://gmsh.info/src/gmsh-${version}-source.tgz";
-    hash = "sha256-E+CdnKgQLlxAFx1u4VDGaHQrmMOmylf4N/e2Th4q9I8=";
+    hash = "sha256-d5chRfQxcmAm1QWWpqRPs8HJXCElUhjWaVWAa4btvo0=";
   };
 
   buildInputs = [
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "A three-dimensional finite element mesh generator";
+    description = "Three-dimensional finite element mesh generator";
     mainProgram = "gmsh";
     homepage = "https://gmsh.info/";
     license = lib.licenses.gpl2Plus;
diff --git a/pkgs/applications/science/math/gretl/default.nix b/pkgs/applications/science/math/gretl/default.nix
index 552639de6c532..dc2c62b8ad64c 100644
--- a/pkgs/applications/science/math/gretl/default.nix
+++ b/pkgs/applications/science/math/gretl/default.nix
@@ -19,11 +19,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gretl";
-  version = "2024a";
+  version = "2024b";
 
   src = fetchurl {
     url = "mirror://sourceforge/gretl/gretl-${finalAttrs.version}.tar.xz";
-    hash = "sha256-6ha0d/n75Xf0hZM0GRHLOnM274P1h2MerB/8SHWTh+o=";
+    hash = "sha256-mkmOmKO2tiAysZhwC8kNuCXNml8NdFPfaNFykdxYFAY=";
   };
 
   buildInputs = [
@@ -54,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
   enableParallelInstalling = false;
 
   meta = {
-    description = "A software package for econometric analysis";
+    description = "Software package for econometric analysis";
     homepage = "https://gretl.sourceforge.net";
     license = lib.licenses.gpl3;
     longDescription = ''
diff --git a/pkgs/applications/science/math/labplot/default.nix b/pkgs/applications/science/math/labplot/default.nix
index 8bb667e1a8fac..0aeb232dd0313 100644
--- a/pkgs/applications/science/math/labplot/default.nix
+++ b/pkgs/applications/science/math/labplot/default.nix
@@ -1,5 +1,6 @@
 { lib
 , stdenv
+, fetchpatch
 , fetchurl
 , cmake
 , extra-cmake-modules
@@ -54,6 +55,14 @@ stdenv.mkDerivation rec {
     "-DENABLE_VECTOR_BLF=OFF"
   ];
 
+  patches = [
+    (fetchpatch {
+      name = "matio-fix-compilation-for-latest-version-1.5.27.patch";
+      url = "https://github.com/KDE/labplot/commit/d6142308ffa492d9f7cea00fad3b4cd1babfd00c.patch";
+      hash = "sha256-qD5jj6GxBKbQezKJb1Z8HnwFO84WJBGQDawS/6o/wHE=";
+    })
+  ];
+
   nativeBuildInputs = [
     cmake
     extra-cmake-modules
diff --git a/pkgs/applications/science/math/lp_solve/default.nix b/pkgs/applications/science/math/lp_solve/default.nix
index fdabc8896a582..773f1f3c089e4 100644
--- a/pkgs/applications/science/math/lp_solve/default.nix
+++ b/pkgs/applications/science/math/lp_solve/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Mixed Integer Linear Programming (MILP) solver";
+    description = "Mixed Integer Linear Programming (MILP) solver";
     mainProgram = "lp_solve";
     homepage = "https://lpsolve.sourceforge.net";
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/science/math/mathmod/default.nix b/pkgs/applications/science/math/mathmod/default.nix
new file mode 100644
index 0000000000000..dd85d06784922
--- /dev/null
+++ b/pkgs/applications/science/math/mathmod/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, qmake
+}:
+
+mkDerivation {
+  pname = "mathmod";
+  version = "11.1-unstable-2024-01-26";
+
+  src = fetchFromGitHub {
+    owner = "parisolab";
+    repo = "mathmod";
+    rev = "24d03a04c17363520ae7cf077e72a7b8684eb6fd";
+    hash = "sha256-HiqHssPGqYEVZWchZRj4rFPc+xNVZk1ryl5qvFC2BmQ=";
+  };
+
+  patches = [ ./fix-paths.patch ];
+
+  postPatch = ''
+    substituteInPlace MathMod.pro --subst-var out
+  '';
+
+  nativeBuildInputs = [ qmake ];
+
+  meta = {
+    description = "Mathematical modelling software";
+    homepage = "https://github.com/parisolab/mathmod";
+    license = lib.licenses.gpl2Plus;
+    mainProgram = "MathMod";
+    maintainers = with lib.maintainers; [ tomasajt ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/pkgs/applications/science/math/mathmod/fix-paths.patch b/pkgs/applications/science/math/mathmod/fix-paths.patch
new file mode 100644
index 0000000000000..b65b107882ee6
--- /dev/null
+++ b/pkgs/applications/science/math/mathmod/fix-paths.patch
@@ -0,0 +1,14 @@
+diff --git a/MathMod.pro b/MathMod.pro
+index 2e2fbf1..bb8f8bd 100644
+--- a/MathMod.pro
++++ b/MathMod.pro
+@@ -63,7 +63,5 @@ OTHER_FILES     += \
+                 mathmodcollection.js \
+                 mathmodconfig.js
+ # install
+-target.path    = $TARGET
+-sources.files  = $$SOURCES $$HEADERS $$RESOURCES $$FORMS mathmod.pro
+-sources.path   = $TARGET
+-INSTALLS      += target sources
++target.path    = @out@/bin
++INSTALLS      += target
diff --git a/pkgs/applications/science/math/msieve/default.nix b/pkgs/applications/science/math/msieve/default.nix
index 1de6d416a0e64..bda3e5b3a040a 100644
--- a/pkgs/applications/science/math/msieve/default.nix
+++ b/pkgs/applications/science/math/msieve/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A C library implementing a suite of algorithms to factor large integers";
+    description = "C library implementing a suite of algorithms to factor large integers";
     mainProgram = "msieve";
     license = lib.licenses.publicDomain;
     homepage = "http://msieve.sourceforge.net/";
diff --git a/pkgs/applications/science/math/nota/default.nix b/pkgs/applications/science/math/nota/default.nix
index 810d7d6d72bcb..eae11806d7254 100644
--- a/pkgs/applications/science/math/nota/default.nix
+++ b/pkgs/applications/science/math/nota/default.nix
@@ -33,7 +33,7 @@ mkDerivation rec {
     time
   ];
 
-  description = "The most beautiful command line calculator";
+  description = "Most beautiful command line calculator";
   homepage = "https://kary.us/nota";
   license = lib.licenses.mpl20;
   maintainers = with lib.maintainers; [ dtzWill ];
diff --git a/pkgs/applications/science/math/numworks-epsilon/0001-ion-linux-makerules.patch b/pkgs/applications/science/math/numworks-epsilon/0001-ion-linux-makerules.patch
deleted file mode 100644
index 0bc29b9aab5f4..0000000000000
--- a/pkgs/applications/science/math/numworks-epsilon/0001-ion-linux-makerules.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/ion/src/simulator/linux/Makefile b/ion/src/simulator/linux/Makefile
-index ca7da03fa..b05bba115 100644
---- a/ion/src/simulator/linux/Makefile
-+++ b/ion/src/simulator/linux/Makefile
-@@ -28,7 +28,6 @@ ion_src += $(addprefix ion/src/simulator/shared/, \
-   collect_registers.cpp \
-   haptics.cpp \
-   journal.cpp \
--  platform_action_modifier_ctrl.cpp \
-   state_file.cpp \
- )
- 
diff --git a/pkgs/applications/science/math/numworks-epsilon/default.nix b/pkgs/applications/science/math/numworks-epsilon/default.nix
index a90ebc67b65b8..98d5d0d4560ad 100644
--- a/pkgs/applications/science/math/numworks-epsilon/default.nix
+++ b/pkgs/applications/science/math/numworks-epsilon/default.nix
@@ -9,17 +9,18 @@
 , imagemagick
 , gcc-arm-embedded
 , pkg-config
+, python3Packages
 }:
 
 stdenv.mkDerivation rec {
   pname = "numworks-epsilon";
-  version = "15.5.0";
+  version = "22.2.0";
 
   src = fetchFromGitHub {
     owner = "numworks";
     repo = "epsilon";
     rev = version;
-    sha256 = "fPBO3FzZ4k5OxG+Ifc6R/au4Te974HNKAEdHz+aFdSg=";
+    hash = "sha256-E2WaXTn8+Ky9kdZxvQmEt63Ggo6Ns0fZ0Za+rQGIMSg=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -31,18 +32,13 @@ stdenv.mkDerivation rec {
     python3
     imagemagick
     gcc-arm-embedded
+    python3Packages.lz4
   ];
 
   makeFlags = [
     "PLATFORM=simulator"
   ];
 
-  patches = [
-    # Remove make rule Introduced in cba596dde7
-    # which causes it to not build with nix
-    ./0001-ion-linux-makerules.patch
-  ];
-
   installPhase = ''
     runHook preInstall
 
diff --git a/pkgs/applications/science/math/palp/default.nix b/pkgs/applications/science/math/palp/default.nix
index 2fe77aa14a650..a3b54b78f99bc 100644
--- a/pkgs/applications/science/math/palp/default.nix
+++ b/pkgs/applications/science/math/palp/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Package for Analyzing Lattice Polytopes";
+    description = "Package for Analyzing Lattice Polytopes";
     longDescription = ''
       A Package for Analyzing Lattice Polytopes (PALP) is a set of C
       programs for calculations with lattice polytopes and applications to
diff --git a/pkgs/applications/science/math/pari/gp2c.nix b/pkgs/applications/science/math/pari/gp2c.nix
index 512aaba78d54b..c99c2fed2bd16 100644
--- a/pkgs/applications/science/math/pari/gp2c.nix
+++ b/pkgs/applications/science/math/pari/gp2c.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://pari.math.u-bordeaux.fr/";
-    description =  "A compiler to translate GP scripts to PARI programs";
+    description =  "Compiler to translate GP scripts to PARI programs";
     downloadPage = "http://pari.math.u-bordeaux.fr/download.html";
     inherit (pari.meta) license maintainers platforms broken;
   };
diff --git a/pkgs/applications/science/math/perseus/default.nix b/pkgs/applications/science/math/perseus/default.nix
index 9a37eeac66daa..63836b7dc76ec 100644
--- a/pkgs/applications/science/math/perseus/default.nix
+++ b/pkgs/applications/science/math/perseus/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "The Persistent Homology Software";
+    description = "Persistent Homology Software";
     mainProgram = "perseus";
     longDescription = ''
       Persistent homology - or simply, persistence - is an algebraic
diff --git a/pkgs/applications/science/math/programmer-calculator/default.nix b/pkgs/applications/science/math/programmer-calculator/default.nix
index 9cb220ceca6a5..cc418feb763dd 100644
--- a/pkgs/applications/science/math/programmer-calculator/default.nix
+++ b/pkgs/applications/science/math/programmer-calculator/default.nix
@@ -20,7 +20,7 @@ gccStdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A terminal calculator for programmers";
+    description = "Terminal calculator for programmers";
     mainProgram = "pcalc";
     longDescription = ''
       Terminal calculator made for programmers working with multiple number
diff --git a/pkgs/applications/science/math/pspp/default.nix b/pkgs/applications/science/math/pspp/default.nix
index 420b495e736e6..100cb5b9bc056 100644
--- a/pkgs/applications/science/math/pspp/default.nix
+++ b/pkgs/applications/science/math/pspp/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://www.gnu.org/software/pspp/";
-    description = "A free replacement for SPSS, a program for statistical analysis of sampled data";
+    description = "Free replacement for SPSS, a program for statistical analysis of sampled data";
     license = lib.licenses.gpl3Plus;
 
     longDescription = ''
diff --git a/pkgs/applications/science/math/qalculate-gtk/default.nix b/pkgs/applications/science/math/qalculate-gtk/default.nix
index ab11d833f70c5..e4fc506516fdd 100644
--- a/pkgs/applications/science/math/qalculate-gtk/default.nix
+++ b/pkgs/applications/science/math/qalculate-gtk/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation (finalAttrs: {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "The ultimate desktop calculator";
+    description = "Ultimate desktop calculator";
     homepage = "http://qalculate.github.io";
     maintainers = with maintainers; [ gebner doronbehar alyaeanyx ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/science/math/qalculate-qt/default.nix b/pkgs/applications/science/math/qalculate-qt/default.nix
index a830c7ddd00ec..3c4e19d56ebd7 100644
--- a/pkgs/applications/science/math/qalculate-qt/default.nix
+++ b/pkgs/applications/science/math/qalculate-qt/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "The ultimate desktop calculator";
+    description = "Ultimate desktop calculator";
     homepage = "http://qalculate.github.io";
     maintainers = with maintainers; [ _4825764518 ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/science/math/ratpoints/default.nix b/pkgs/applications/science/math/ratpoints/default.nix
index 69b972fe97907..f2aa1aac26079 100644
--- a/pkgs/applications/science/math/ratpoints/default.nix
+++ b/pkgs/applications/science/math/ratpoints/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   preInstall = ''mkdir -p "$out"/{bin,share,lib,include}'';
 
   meta = {
-    description = "A program to find rational points on hyperelliptic curves";
+    description = "Program to find rational points on hyperelliptic curves";
     mainProgram = "ratpoints";
     license = lib.licenses.gpl2Plus;
     maintainers = [lib.maintainers.raskin];
diff --git a/pkgs/applications/science/math/ripser/default.nix b/pkgs/applications/science/math/ripser/default.nix
index 83cf6bc51aa40..3f536f25aa115 100644
--- a/pkgs/applications/science/math/ripser/default.nix
+++ b/pkgs/applications/science/math/ripser/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "A lean C++ code for the computation of Vietoris–Rips persistence barcodes";
+    description = "Lean C++ code for the computation of Vietoris–Rips persistence barcodes";
     mainProgram = "ripser";
     homepage = "https://github.com/Ripser/ripser";
     license = lib.licenses.lgpl3;
diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix
index b1c9c62a5748b..de0c2e3b1e20e 100644
--- a/pkgs/applications/science/math/sage/sage-src.nix
+++ b/pkgs/applications/science/math/sage/sage-src.nix
@@ -61,12 +61,19 @@ stdenv.mkDerivation rec {
       hash = "sha256-uCXchYx26DdxTjR1k2748KCEHPnekKS2fAM7SpyhNvM=";
     })
 
-    # https://github.com/sagemath/sage/pull/37763
+    # https://github.com/sagemath/sage/pull/37763, landed in 10.4.beta2
     (fetchpatch {
       name = "scipy-fault-tolerance.patch";
-      url = "https://github.com/sagemath/sage/commit/547d502ed56f9fd44eb5d9b4ee0824746c60fef7.diff";
+      url = "https://github.com/sagemath/sage/commit/551139c09f26a5da96b1187c3f0dd17b8d80ef84.diff";
       hash = "sha256-PR4przrZ3ieHaW2nSY7l7VhNfrUupu9yCIrXpeyoAgg=";
     })
+
+    # first two commits from https://github.com/sagemath/sage/pull/38100
+    (fetchpatch {
+      name = "sphinx-7.3-update.patch";
+      url = "https://github.com/sagemath/sage/compare/10.4.beta7...d2932e142991b442a3eee5dc4f8949e3f7e6fe5c.patch";
+      hash = "sha256-g6w0ImE0d2ocKnbGMQikcz9eI9r3/gESlA1NrQfGimk=";
+    })
   ];
 
   # Patches needed because of package updates. We could just pin the versions of
diff --git a/pkgs/applications/science/math/sage/sagedoc.nix b/pkgs/applications/science/math/sage/sagedoc.nix
index 5e2191486bf08..cbf593398ac44 100644
--- a/pkgs/applications/science/math/sage/sagedoc.nix
+++ b/pkgs/applications/science/math/sage/sagedoc.nix
@@ -24,10 +24,6 @@ stdenv.mkDerivation rec {
     export HOME="$TMPDIR/sage_home"
     mkdir -p "$HOME"
 
-    # adapted from src/doc/Makefile (doc-src target), which tries to call Sage from PATH
-    mkdir -p $SAGE_DOC_SRC_OVERRIDE/en/reference/repl
-    ${sage-with-env}/bin/sage -advanced > $SAGE_DOC_SRC_OVERRIDE/en/reference/repl/options.txt
-
     # needed to link them in the sage docs using intersphinx
     export PPLPY_DOCS=${python3.pkgs.pplpy.doc}/share/doc/pplpy
 
diff --git a/pkgs/applications/science/math/singular/default.nix b/pkgs/applications/science/math/singular/default.nix
index d079134aec76d..d1b17eccee23b 100644
--- a/pkgs/applications/science/math/singular/default.nix
+++ b/pkgs/applications/science/math/singular/default.nix
@@ -156,7 +156,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A CAS for polynomial computations";
+    description = "CAS for polynomial computations";
     maintainers = teams.sage.members;
     # 32 bit x86 fails with some link error: `undefined reference to `__divmoddi4@GCC_7.0.0'`
     # https://www.singular.uni-kl.de:8002/trac/ticket/837
diff --git a/pkgs/applications/science/math/speedcrunch/default.nix b/pkgs/applications/science/math/speedcrunch/default.nix
index a77474b86ffaa..021c1bedc348a 100644
--- a/pkgs/applications/science/math/speedcrunch/default.nix
+++ b/pkgs/applications/science/math/speedcrunch/default.nix
@@ -22,7 +22,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage    = "http://speedcrunch.org";
     license     = licenses.gpl2Plus;
-    description = "A fast power user calculator";
+    description = "Fast power user calculator";
     mainProgram = "speedcrunch";
     longDescription = ''
       SpeedCrunch is a fast, high precision and powerful desktop calculator.
diff --git a/pkgs/applications/science/math/symmetrica/default.nix b/pkgs/applications/science/math/symmetrica/default.nix
index eea34fb778850..d6ec352d32a2f 100644
--- a/pkgs/applications/science/math/symmetrica/default.nix
+++ b/pkgs/applications/science/math/symmetrica/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A collection of routines for representation theory and combinatorics";
+    description = "Collection of routines for representation theory and combinatorics";
     license = licenses.isc;
     maintainers = teams.sage.members;
     platforms = platforms.unix;
diff --git a/pkgs/applications/science/math/zegrapher/default.nix b/pkgs/applications/science/math/zegrapher/default.nix
index 2beaf5757a550..ffe337efd7db5 100644
--- a/pkgs/applications/science/math/zegrapher/default.nix
+++ b/pkgs/applications/science/math/zegrapher/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://zegrapher.com/";
-    description = "An open source math plotter";
+    description = "Open source math plotter";
     mainProgram = "ZeGrapher";
     longDescription = ''
       An open source, free and easy to use math plotter. It can plot functions,
diff --git a/pkgs/applications/science/medicine/xmedcon/default.nix b/pkgs/applications/science/medicine/xmedcon/default.nix
index e5c5bf68d53a7..1f0686cc0dad0 100644
--- a/pkgs/applications/science/medicine/xmedcon/default.nix
+++ b/pkgs/applications/science/medicine/xmedcon/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xmedcon";
-  version = "0.23.0";
+  version = "0.24.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-g1CRJDokLDzB+1YIuVQNByBLx01CI47EwGeluqVDujk=";
+    sha256 = "sha256-9NAAXGEVgpVPS7MB8FubnYUpkihE3lET/gep8QfPhB0=";
   };
 
   buildInputs = [
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config wrapGAppsHook3 ];
 
   meta = with lib; {
-    description = "An open source toolkit for medical image conversion ";
+    description = "Open source toolkit for medical image conversion ";
     homepage = "https://xmedcon.sourceforge.net/";
     license = licenses.lgpl2Plus;
     maintainers = with maintainers; [ arianvp flokli ];
diff --git a/pkgs/applications/science/misc/bada-bib/default.nix b/pkgs/applications/science/misc/bada-bib/default.nix
index 1895315325747..83abd40030ee5 100644
--- a/pkgs/applications/science/misc/bada-bib/default.nix
+++ b/pkgs/applications/science/misc/bada-bib/default.nix
@@ -74,7 +74,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/RogerCrocker/BadaBib";
-    description = "A simple BibTeX Viewer and Editor";
+    description = "Simple BibTeX Viewer and Editor";
     mainProgram = "badabib";
     maintainers = [ maintainers.Cogitri ];
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/science/misc/boinc/default.nix b/pkgs/applications/science/misc/boinc/default.nix
index 6a0aafad3e914..68134a99a2035 100644
--- a/pkgs/applications/science/misc/boinc/default.nix
+++ b/pkgs/applications/science/misc/boinc/default.nix
@@ -27,14 +27,14 @@
 
 stdenv.mkDerivation rec {
   pname = "boinc";
-  version = "8.0.1";
+  version = "8.0.3";
 
   src = fetchFromGitHub {
     name = "${pname}-${version}-src";
     owner = "BOINC";
     repo = "boinc";
     rev = "client_release/${lib.versions.majorMinor version}/${version}";
-    hash = "sha256-pjk9+VRWrFIoHolIEEWlRx89hifLNeFtIi34F1OBD38=";
+    hash = "sha256-kkEEJp7NTpHwbo03BGjjJAraFQIJcoNyV+oDsCZlzPQ=";
   };
 
   nativeBuildInputs = [ libtool automake autoconf m4 pkg-config ];
diff --git a/pkgs/applications/science/misc/cwltool/default.nix b/pkgs/applications/science/misc/cwltool/default.nix
index 7919dfd176828..ab43eac8bffb0 100644
--- a/pkgs/applications/science/misc/cwltool/default.nix
+++ b/pkgs/applications/science/misc/cwltool/default.nix
@@ -7,14 +7,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "cwltool";
-  version = "3.1.20240404144621";
+  version = "3.1.20240508115724";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "common-workflow-language";
     repo = "cwltool";
     rev = "refs/tags/${version}";
-    hash = "sha256-atpXkMIQ60POuUk99uiiuCoRXt4Seg11g/eHCeTDe+Q=";
+    hash = "sha256-hBP/8PIqvs820UsxrRuyMVIWgQGFVcMHCUToxhcupTk=";
   };
 
   postPatch = ''
@@ -24,7 +24,6 @@ python3.pkgs.buildPythonApplication rec {
       --replace '"schema-salad >= 8.4.20230426093816, < 9",' "" \
       --replace "PYTEST_RUNNER + " ""
     substituteInPlace pyproject.toml \
-      --replace "mypy==1.8.0" "mypy" \
       --replace "ruamel.yaml>=0.16.0,<0.18" "ruamel.yaml"
   '';
 
diff --git a/pkgs/applications/science/misc/cytoscape/default.nix b/pkgs/applications/science/misc/cytoscape/default.nix
index 1d42600d9770d..392a529f0dedd 100644
--- a/pkgs/applications/science/misc/cytoscape/default.nix
+++ b/pkgs/applications/science/misc/cytoscape/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://www.cytoscape.org";
-    description = "A general platform for complex network analysis and visualization";
+    description = "General platform for complex network analysis and visualization";
     mainProgram = "cytoscape";
     license = lib.licenses.lgpl21;
     maintainers = [lib.maintainers.mimame];
diff --git a/pkgs/applications/science/misc/gephi/default.nix b/pkgs/applications/science/misc/gephi/default.nix
index ab8134daf3aea..77b6584412a5a 100644
--- a/pkgs/applications/science/misc/gephi/default.nix
+++ b/pkgs/applications/science/misc/gephi/default.nix
@@ -36,7 +36,7 @@ mavenJdk11.buildMavenPackage rec {
   '';
 
   meta = with lib; {
-    description = "A platform for visualizing and manipulating large graphs";
+    description = "Platform for visualizing and manipulating large graphs";
     mainProgram = "gephi";
     homepage = "https://gephi.org";
     sourceProvenance = with sourceTypes; [
diff --git a/pkgs/applications/science/misc/graphia/default.nix b/pkgs/applications/science/misc/graphia/default.nix
index b24d5375ef9b8..a5055220e95fb 100644
--- a/pkgs/applications/science/misc/graphia/default.nix
+++ b/pkgs/applications/science/misc/graphia/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/graphia.x86_64-darwin
     broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
-    description = "A visualisation tool for the creation and analysis of graphs.";
+    description = "Visualisation tool for the creation and analysis of graphs";
     homepage = "https://graphia.app";
     license = licenses.gpl3Only;
     mainProgram = "Graphia";
diff --git a/pkgs/applications/science/misc/netlogo/default.nix b/pkgs/applications/science/misc/netlogo/default.nix
index 13c3c36f90ae6..20d001d8dba23 100644
--- a/pkgs/applications/science/misc/netlogo/default.nix
+++ b/pkgs/applications/science/misc/netlogo/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A multi-agent programmable modeling environment";
+    description = "Multi-agent programmable modeling environment";
     mainProgram = "netlogo";
     longDescription = ''
       NetLogo is a multi-agent programmable modeling environment. It is used by
diff --git a/pkgs/applications/science/misc/openmodelica/combined/default.nix b/pkgs/applications/science/misc/openmodelica/combined/default.nix
index bc6bc96202152..8d937dddac547 100644
--- a/pkgs/applications/science/misc/openmodelica/combined/default.nix
+++ b/pkgs/applications/science/misc/openmodelica/combined/default.nix
@@ -21,7 +21,7 @@ symlinkJoin {
   '';
 
   meta = with lib; {
-    description = "An open-source Modelica-based modeling and simulation environment intended for industrial and academic usage";
+    description = "Open-source Modelica-based modeling and simulation environment intended for industrial and academic usage";
     homepage = "https://openmodelica.org";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ balodja smironov ];
diff --git a/pkgs/applications/science/misc/openmodelica/omcompiler/default.nix b/pkgs/applications/science/misc/openmodelica/omcompiler/default.nix
index 360fea56fedfb..82b9f8e36fe1d 100644
--- a/pkgs/applications/science/misc/openmodelica/omcompiler/default.nix
+++ b/pkgs/applications/science/misc/openmodelica/omcompiler/default.nix
@@ -44,6 +44,11 @@ mkOpenModelicaDerivation ({
         $(find ./OMCompiler -name 'Makefile*')
   '';
 
+  env.CFLAGS = toString [
+    "-Wno-error=dynamic-exception-spec"
+    "-Wno-error=implicit-function-declaration"
+  ];
+
   preFixup = ''
     for entry in $(find $out -name libipopt.so); do
       patchelf --shrink-rpath --allowed-rpath-prefixes "$NIX_STORE" "$entry"
diff --git a/pkgs/applications/science/misc/openmodelica/omedit/default.nix b/pkgs/applications/science/misc/openmodelica/omedit/default.nix
index 57863482fef65..731d64c41755b 100644
--- a/pkgs/applications/science/misc/openmodelica/omedit/default.nix
+++ b/pkgs/applications/science/misc/openmodelica/omedit/default.nix
@@ -30,7 +30,7 @@ mkOpenModelicaDerivation rec {
   QMAKESPEC = "linux-clang";
 
   meta = with lib; {
-    description = "A Modelica connection editor for OpenModelica";
+    description = "Modelica connection editor for OpenModelica";
     homepage = "https://openmodelica.org";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ balodja smironov ];
diff --git a/pkgs/applications/science/misc/openmodelica/omlibrary/default.nix b/pkgs/applications/science/misc/openmodelica/omlibrary/default.nix
index 6821e33d1a629..dee5aacf66655 100644
--- a/pkgs/applications/science/misc/openmodelica/omlibrary/default.nix
+++ b/pkgs/applications/science/misc/openmodelica/omlibrary/default.nix
@@ -24,7 +24,7 @@ mkOpenModelicaDerivation {
   '';
 
   meta = with lib; {
-    description = "A collection of Modelica libraries to use with OpenModelica,
+    description = "Collection of Modelica libraries to use with OpenModelica,
 including Modelica Standard Library";
     homepage = "https://openmodelica.org";
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/science/misc/openmodelica/omparser/default.nix b/pkgs/applications/science/misc/openmodelica/omparser/default.nix
index cbf8f2255e76c..03030de2cf486 100644
--- a/pkgs/applications/science/misc/openmodelica/omparser/default.nix
+++ b/pkgs/applications/science/misc/openmodelica/omparser/default.nix
@@ -18,7 +18,7 @@ mkOpenModelicaDerivation rec {
   patches = [ ./Makefile.in.patch ];
 
   meta = with lib; {
-    description = "An antlr4-based parser of Modelica files from OpenModelica
+    description = "Antlr4-based parser of Modelica files from OpenModelica
 suite";
     homepage = "https://openmodelica.org";
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/science/misc/openmodelica/omsimulator/default.nix b/pkgs/applications/science/misc/openmodelica/omsimulator/default.nix
index d91d427a07703..9e28e3f21f26d 100644
--- a/pkgs/applications/science/misc/openmodelica/omsimulator/default.nix
+++ b/pkgs/applications/science/misc/openmodelica/omsimulator/default.nix
@@ -5,6 +5,7 @@
 , libxml2
 , openmodelica
 , mkOpenModelicaDerivation
+, fetchpatch
 }:
 
 mkOpenModelicaDerivation rec {
@@ -12,12 +13,25 @@ mkOpenModelicaDerivation rec {
   omdir = "OMSimulator";
   omdeps = [ openmodelica.omcompiler ];
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/OpenModelica/OMSimulator/commit/5ef06e251d639a0224adc205cdbfa1f99bf9a956.patch";
+      stripLen = 1;
+      extraPrefix = "OMSimulator/";
+      hash = "sha256-hLsS6TNEjddm2o2Optnf8n6hh14up9bWJBoztNmisH0=";
+    })
+  ];
+
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ readline libxml2 boost ];
 
+  env.CFLAGS = toString [
+    "-Wno-error=implicit-function-declaration"
+  ];
+
   meta = with lib; {
-    description = "The OpenModelica FMI & SSP-based co-simulation environment";
+    description = "OpenModelica FMI & SSP-based co-simulation environment";
     homepage = "https://openmodelica.org";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ balodja smironov ];
diff --git a/pkgs/applications/science/misc/openmvg/default.nix b/pkgs/applications/science/misc/openmvg/default.nix
index 5cf4dc4377521..f622f87d2e412 100644
--- a/pkgs/applications/science/misc/openmvg/default.nix
+++ b/pkgs/applications/science/misc/openmvg/default.nix
@@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     broken = stdenv.isDarwin && stdenv.isx86_64;
-    description = "A library for computer-vision scientists and targeted for the Multiple View Geometry community";
+    description = "Library for computer-vision scientists and targeted for the Multiple View Geometry community";
     homepage = "https://openmvg.readthedocs.io/en/latest/";
     license = lib.licenses.mpl20;
     platforms = lib.platforms.unix;
diff --git a/pkgs/applications/science/misc/openrefine/default.nix b/pkgs/applications/science/misc/openrefine/default.nix
index 9f2ef0f29b31f..b94f23671024b 100644
--- a/pkgs/applications/science/misc/openrefine/default.nix
+++ b/pkgs/applications/science/misc/openrefine/default.nix
@@ -15,12 +15,12 @@ let
     inherit jdk;
   };
 
-  version = "3.7.9";
+  version = "3.8.1";
   src = fetchFromGitHub {
     owner = "openrefine";
     repo = "openrefine";
     rev = version;
-    hash = "sha256-wtg0BOGr/aJPZeFQbJSBHtTVfpcSCSHP++8AnpS8pgQ=";
+    hash = "sha256-MnFwFJdKIU7D8GQgnDvCO+P8r8h1Se/wmbt/Z3EX+3Q=";
   };
 
   npmPkg = buildNpmPackage {
@@ -29,7 +29,7 @@ let
     pname = "openrefine-npm";
     sourceRoot = "${src.name}/main/webapp";
 
-    npmDepsHash = "sha256-8GhcL4tohQ5u2HeYN6JyTMMobUOqAL8ETCLiP1SoDSk=";
+    npmDepsHash = "sha256-u9qledNFqGgMmOIsm2T8w3UoaLbb7WtksUw6xLoRgU8=";
 
     # package.json doesn't supply a version, which npm doesn't like - fix this.
     # directly referencing jq because buildNpmPackage doesn't pass
@@ -55,20 +55,14 @@ in maven'.buildMavenPackage {
   postPatch = ''
     cp -r ${npmPkg} main/webapp/modules/core/3rdparty
   '';
-  mvnParameters = "-DskipTests=true -pl !packaging";
-  mvnHash = "sha256-MqE+iloqzBav6E3/rf1LP5BlKhW/FBIt6+6U+S8UJWA=";
+  mvnParameters = "-pl !packaging";
+  mvnHash = "sha256-0qsKUMV9M0ZaddR5ust8VikSrsutdxVNNezKqR+F/6M=";
 
   nativeBuildInputs = [ makeWrapper ];
 
-  installPhase = let
-    gitProperties = writeText "git.properties" (builtins.toJSON {
-      "git.build.version" = version;
-      "git.branch" = "none";
-      "git.build.time" = "1970-01-01T00:00:00+0000";
-      "git.commit.id.abbrev" = "none";
-      "git.commit.id.describe" = "none";
-    });
-  in ''
+  doCheck = false;
+
+  installPhase = ''
     mkdir -p $out/lib/server/target/lib
     cp -r server/target/lib/* $out/lib/server/target/lib/
     cp server/target/openrefine-*-server.jar $out/lib/server/target/lib/
@@ -85,8 +79,6 @@ in maven'.buildMavenPackage {
       done
     )
 
-    cp ${gitProperties} $out/lib/webapp/WEB-INF/classes/git.properties
-
     mkdir -p $out/etc
     cp refine.ini $out/etc/
 
diff --git a/pkgs/applications/science/misc/reason-shell/default.nix b/pkgs/applications/science/misc/reason-shell/default.nix
index 848f31abe4c6b..5491593cc7f70 100644
--- a/pkgs/applications/science/misc/reason-shell/default.nix
+++ b/pkgs/applications/science/misc/reason-shell/default.nix
@@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A shell for research papers";
+    description = "Shell for research papers";
     mainProgram = "reason";
     homepage = "https://github.com/jaywonchung/reason";
     changelog = "https://github.com/jaywonchung/reason/releases/tag/${src.rev}";
diff --git a/pkgs/applications/science/misc/root/5.nix b/pkgs/applications/science/misc/root/5.nix
index dfe7b5eca97f3..80f2df0688da3 100644
--- a/pkgs/applications/science/misc/root/5.nix
+++ b/pkgs/applications/science/misc/root/5.nix
@@ -153,7 +153,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://root.cern.ch/";
-    description = "A data analysis framework";
+    description = "Data analysis framework";
     platforms = platforms.unix;
     broken = !stdenv.isx86_64 || stdenv.cc.isClang or false;
     maintainers = with maintainers; [ veprbl ];
diff --git a/pkgs/applications/science/misc/root/default.nix b/pkgs/applications/science/misc/root/default.nix
index afc048cc41ef6..ded47a661a21a 100644
--- a/pkgs/applications/science/misc/root/default.nix
+++ b/pkgs/applications/science/misc/root/default.nix
@@ -3,7 +3,6 @@
 , callPackage
 , fetchgit
 , fetchurl
-, fetchpatch
 , makeWrapper
 , cmake
 , coreutils
@@ -25,7 +24,7 @@
 , libGL
 , libxcrypt
 , libxml2
-, llvm_13
+, llvm_16
 , lsof
 , lz4
 , xz
@@ -41,7 +40,6 @@
 , xxHash
 , zlib
 , zstd
-, libAfterImage
 , giflib
 , libjpeg
 , libtiff
@@ -58,7 +56,7 @@
 
 stdenv.mkDerivation rec {
   pname = "root";
-  version = "6.30.06";
+  version = "6.32.00";
 
   passthru = {
     tests = import ./tests { inherit callPackage; };
@@ -66,13 +64,13 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://root.cern.ch/download/root_v${version}.source.tar.gz";
-    hash = "sha256-MA237RtnjtL7ljXKZ1khoZRcfCED2oQAM7STCR9VcAw=";
+    hash = "sha256-EvIDaBpZBBxHTOlSN2Hm8OiGGzvueN9feZqNtVGJ5dI=";
   };
 
   clad_src = fetchgit {
     url = "https://github.com/vgvassilev/clad";
-    rev = "refs/tags/v1.4"; # Make sure that this is the same tag as in the ROOT build files!
-    hash = "sha256-OI9PaS7kQ/ewD5Soe3gG5FZdlR6qG6Y3mfHwi5dj1sI=";
+    rev = "refs/tags/v1.5"; # Make sure that this is the same tag as in the ROOT build files!
+    hash = "sha256-s0DbHfLthv51ZICnTd30O4qG/DyZPk5tADeu3bBRoOw=";
   };
 
   nativeBuildInputs = [ makeWrapper cmake pkg-config git ];
@@ -90,7 +88,7 @@ stdenv.mkDerivation rec {
     lapack
     libxcrypt
     libxml2
-    llvm_13
+    llvm_16
     lz4
     xz
     gsl
@@ -98,7 +96,6 @@ stdenv.mkDerivation rec {
     openblas
     openssl
     xxHash
-    libAfterImage
     giflib
     libjpeg
     libtiff
@@ -116,17 +113,6 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./sw_vers.patch
-
-    # compatibility with recent XRootD
-    # https://github.com/root-project/root/pull/13752
-    (fetchpatch {
-      url = "https://github.com/root-project/root/commit/3d3cda6c520791282298782189cdb8ca07ace4b9.diff";
-      hash = "sha256-O3aXzrOEQiPjZgbAj9TL6Wt/adN1kKFwjooeaFRyT4I=";
-    })
-    (fetchpatch {
-      url = "https://github.com/root-project/root/commit/6e7798e62dbed1ffa8b91a180fa5a080b7c04ba3.diff";
-      hash = "sha256-47/J631DBnVlvM1Pm9iicKXDKAqN8v9hjAstQuHmH8Q=";
-    })
   ];
 
   preConfigure = ''
@@ -142,18 +128,13 @@ stdenv.mkDerivation rec {
     # This should probably be fixed upstream with a flag to disable the
     # connectivity check!
     substituteInPlace CMakeLists.txt \
-      --replace 'if(NO_CONNECTION)' 'if(FALSE)'
-    substituteInPlace interpreter/cling/tools/plugins/CMakeLists.txt \
-      --replace 'if(NOT DEFINED NO_CONNECTION OR NOT NO_CONNECTION)' 'if(TRUE)'
+      --replace 'if(clad AND NO_CONNECTION)' 'if(FALSE)'
     # Make sure that clad is not downloaded when building
     substituteInPlace interpreter/cling/tools/plugins/clad/CMakeLists.txt \
       --replace 'UPDATE_COMMAND ""' 'SOURCE_DIR ${clad_src} DOWNLOAD_COMMAND "" UPDATE_COMMAND ""'
     # Make sure that clad is finding the right llvm version
     substituteInPlace interpreter/cling/tools/plugins/clad/CMakeLists.txt \
-      --replace '-DLLVM_DIR=''${LLVM_BINARY_DIR}' '-DLLVM_DIR=${llvm_13.dev}/lib/cmake/llvm'
-    # Fix that will also be upstream in ROOT 6.32. TODO: remove it when updating to 6.32
-    substituteInPlace interpreter/cling/tools/plugins/clad/CMakeLists.txt \
-      --replace 'set(_CLAD_LIBRARY_PATH ''${clad_install_dir}/plugins/lib)' 'set(_CLAD_LIBRARY_PATH ''${CMAKE_CURRENT_BINARY_DIR}/clad-prefix/src/clad-build/lib''${LLVM_LIBDIR_SUFFIX})'
+      --replace '-DLLVM_DIR=''${LLVM_BINARY_DIR}' '-DLLVM_DIR=${llvm_16.dev}/lib/cmake/llvm'
 
     substituteInPlace interpreter/llvm-project/clang/tools/driver/CMakeLists.txt \
       --replace 'add_clang_symlink(''${link} clang)' ""
@@ -197,9 +178,6 @@ stdenv.mkDerivation rec {
     "-Druntime_cxxmodules=OFF"
   ];
 
-  # suppress warnings from compilation of the vendored clang to avoid running into log limits on the Hydra
-  NIX_CFLAGS_COMPILE = lib.optionals stdenv.cc.isGNU [ "-Wno-shadow" "-Wno-maybe-uninitialized" ];
-
   postInstall = ''
     for prog in rootbrowse rootcp rooteventselector rootls rootmkdir rootmv rootprint rootrm rootslimtree; do
       wrapProgram "$out/bin/$prog" \
@@ -257,7 +235,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://root.cern/";
-    description = "A data analysis framework";
+    description = "Data analysis framework";
     platforms = platforms.unix;
     maintainers = [ maintainers.guitargeek maintainers.veprbl ];
     license = licenses.lgpl21;
diff --git a/pkgs/applications/science/misc/sasview/xhtml2pdf.nix b/pkgs/applications/science/misc/sasview/xhtml2pdf.nix
index 41d15e2f1babc..b7ace57d74afc 100644
--- a/pkgs/applications/science/misc/sasview/xhtml2pdf.nix
+++ b/pkgs/applications/science/misc/sasview/xhtml2pdf.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   };
 
   meta = {
-    description = "A pdf converter for the ReportLab Toolkit";
+    description = "Pdf converter for the ReportLab Toolkit";
     homepage = "https://github.com/xhtml2pdf/xhtml2pdf";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ rprospero ];
diff --git a/pkgs/applications/science/misc/snakemake/default.nix b/pkgs/applications/science/misc/snakemake/default.nix
index 1a171f2c7db5d..7f0e70c642134 100644
--- a/pkgs/applications/science/misc/snakemake/default.nix
+++ b/pkgs/applications/science/misc/snakemake/default.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "snakemake";
-  version = "8.11.4";
+  version = "8.14.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "snakemake";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-nfPA2sQCeRc12A4rrlo17UPpiB8plKYbiumZjS7Yhz8=";
+    hash = "sha256-6oguN4u4OUDXpDsbueSBNwtWgLCaKmgq3w/d/MsMh7Y=";
     # https://github.com/python-versioneer/python-versioneer/issues/217
     postFetch = ''
       sed -i "$out"/snakemake/_version.py -e 's#git_refnames = ".*"#git_refnames = " (tag: v${version})"#'
diff --git a/pkgs/applications/science/misc/tulip/default.nix b/pkgs/applications/science/misc/tulip/default.nix
index 02b5ad0c0458d..9808a572836d8 100644
--- a/pkgs/applications/science/misc/tulip/default.nix
+++ b/pkgs/applications/science/misc/tulip/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tulip";
-  version = "5.7.3";
+  version = "5.7.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/auber/tulip-${version}_src.tar.gz";
-    hash = "sha256-arpC+FsDYGMf47phtSzyjjvDg/UYZS+akOe5CYfajdU=";
+    hash = "sha256-7z21WkPi1v2AGishDmXZPAedMjgXPRnpUiHTzEnc5LY=";
   };
 
   nativeBuildInputs = [ cmake wrapQtAppsHook ]
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   doCheck = false;
 
   meta = {
-    description = "A visualization framework for the analysis and visualization of relational data";
+    description = "Visualization framework for the analysis and visualization of relational data";
 
     longDescription =
       '' Tulip is an information visualization framework dedicated to the
diff --git a/pkgs/applications/science/molecular-dynamics/raspa/default.nix b/pkgs/applications/science/molecular-dynamics/raspa/default.nix
index 149db0504bf1f..8fd395f9174d3 100644
--- a/pkgs/applications/science/molecular-dynamics/raspa/default.nix
+++ b/pkgs/applications/science/molecular-dynamics/raspa/default.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = with lib; {
-    description = "A general purpose classical molecular simulation package";
+    description = "General purpose classical molecular simulation package";
     homepage = "https://iraspa.org/raspa/";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/applications/science/networking/sumo/default.nix b/pkgs/applications/science/networking/sumo/default.nix
index 956691582bda3..6f5be3df816eb 100644
--- a/pkgs/applications/science/networking/sumo/default.nix
+++ b/pkgs/applications/science/networking/sumo/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sumo";
-  version = "1.19.0";
+  version = "1.20.0";
 
   src = fetchFromGitHub {
     owner = "eclipse";
     repo = "sumo";
     rev = "v${lib.replaceStrings ["."] ["_"] version}";
-    sha256 = "sha256-uB7Gy0uX3LsZDeeITyjl7DN76TFJQKgsQs4RoDVfSmY=";
+    sha256 = "sha256-y/bkdDWrb1KB0EOVSJPfPVYHGp/zQ2+Shb6eLsFQRNQ=";
     fetchSubmodules = true;
   };
 
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
   ]);
 
   meta = with lib; {
-    description = "The SUMO traffic simulator";
+    description = "SUMO traffic simulator";
     longDescription = ''
       Eclipse SUMO is an open source, highly
       portable, microscopic and continuous traffic simulation package
diff --git a/pkgs/applications/science/physics/dawn/default.nix b/pkgs/applications/science/physics/dawn/default.nix
index c174d4c0720f7..a32311baca935 100644
--- a/pkgs/applications/science/physics/dawn/default.nix
+++ b/pkgs/applications/science/physics/dawn/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A vectorized 3D PostScript processor with analytical hidden line/surface removal";
+    description = "Vectorized 3D PostScript processor with analytical hidden line/surface removal";
     license = licenses.unfree;
     homepage = "https://geant4.kek.jp/~tanaka/DAWN/About_DAWN.html";
     platforms = platforms.unix;
diff --git a/pkgs/applications/science/physics/dawncut/default.nix b/pkgs/applications/science/physics/dawncut/default.nix
index 5c17837d2e952..2c1b987848810 100644
--- a/pkgs/applications/science/physics/dawncut/default.nix
+++ b/pkgs/applications/science/physics/dawncut/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A tool to generate a 3D scene data clipped with an arbitrary plane";
+    description = "Tool to generate a 3D scene data clipped with an arbitrary plane";
     license = licenses.unfree;
     homepage = "https://geant4.kek.jp/~tanaka/DAWN/About_DAWNCUT.html";
     platforms = platforms.unix;
diff --git a/pkgs/applications/science/physics/elmerfem/default.nix b/pkgs/applications/science/physics/elmerfem/default.nix
index c3720602d08d2..4b19bc4b17b48 100644
--- a/pkgs/applications/science/physics/elmerfem/default.nix
+++ b/pkgs/applications/science/physics/elmerfem/default.nix
@@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://elmerfem.org";
-    description = "A finite element software for multiphysical problems";
+    description = "Finite element software for multiphysical problems";
     platforms = platforms.unix;
     maintainers = with maintainers; [ wulfsta broke ];
     license = licenses.lgpl21;
diff --git a/pkgs/applications/science/physics/nnpdf/default.nix b/pkgs/applications/science/physics/nnpdf/default.nix
index d0104095f39a8..a4762323dcf95 100644
--- a/pkgs/applications/science/physics/nnpdf/default.nix
+++ b/pkgs/applications/science/physics/nnpdf/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An open-source machine learning framework for global analyses of parton distributions";
+    description = "Open-source machine learning framework for global analyses of parton distributions";
     mainProgram = "evolven3fit";
     homepage = "https://docs.nnpdf.science/";
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/science/physics/professor/default.nix b/pkgs/applications/science/physics/professor/default.nix
index 6d52951ee9c9b..1c6c21c52fef8 100644
--- a/pkgs/applications/science/physics/professor/default.nix
+++ b/pkgs/applications/science/physics/professor/default.nix
@@ -1,23 +1,51 @@
-{ lib, stdenv, fetchurl, eigen, makeWrapper, python3 }:
+{ lib
+, stdenv
+, fetchFromGitLab
+, eigen
+, makeWrapper
+, python3
+}:
 
 stdenv.mkDerivation rec {
   pname = "professor";
-  version = "2.3.3";
+  version = "2.4.2";
 
-  src = fetchurl {
-    name = "Professor-${version}.tar.gz";
-    url = "https://professor.hepforge.org/downloads/?f=Professor-${version}.tar.gz";
-    sha256 = "17q026r2fpfxzf74d1013ksy3a9m57rcr2q164n9x02ci40bmib0";
+  src = fetchFromGitLab {
+    owner = "hepcedar";
+    repo = "professor";
+    rev = "refs/tags/professor-2.4.2";
+    hash = "sha256-z2Ub7SUTz4Hj3ajnzOV/QXZ+cH2v6zJv9UZM2M2y1Hg=";
+    # workaround unpacking to case-sensitive filesystems
+    postFetch = ''
+      rm -rf $out/[Dd]ocker
+    '';
   };
 
-  postPatch = lib.optionalString stdenv.isDarwin ''
+  postPatch = ''
     substituteInPlace Makefile \
-      --replace '-shared -o' '-shared -install_name "$(out)/$@" -o'
+      --replace-fail 'pip install ' 'pip install --prefix $(out) '
+  '' + lib.optionalString stdenv.isDarwin ''
+    substituteInPlace Makefile \
+      --replace-fail '-shared -o' '-shared -install_name "$(out)/$@" -o'
   '';
 
-  nativeBuildInputs = [ python3.pkgs.cython makeWrapper ];
-  buildInputs = [ python3 eigen ];
-  propagatedBuildInputs = with python3.pkgs; [ iminuit numpy matplotlib yoda ];
+  nativeBuildInputs = [
+    python3.pkgs.cython
+    python3.pkgs.pip
+    python3.pkgs.setuptools
+    python3.pkgs.wheel
+    makeWrapper
+  ];
+  buildInputs = [
+    python3
+    eigen
+  ];
+  propagatedBuildInputs = with python3.pkgs; [
+    iminuit
+    numpy
+    matplotlib
+    yoda
+  ];
 
   CPPFLAGS = [ "-I${eigen}/include/eigen3" ];
   PREFIX = placeholder "out";
@@ -32,9 +60,9 @@ stdenv.mkDerivation rec {
   installCheckTarget = "check";
 
   meta = with lib; {
-    description = "A tuning tool for Monte Carlo event generators";
+    description = "Tuning tool for Monte Carlo event generators";
     homepage = "https://professor.hepforge.org/";
-    license = licenses.unfree; # no license specified
+    license = licenses.gpl3Only;
     maintainers = [ maintainers.veprbl ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/applications/science/physics/quantomatic/default.nix b/pkgs/applications/science/physics/quantomatic/default.nix
index caff65f1d71b6..05011313bccea 100644
--- a/pkgs/applications/science/physics/quantomatic/default.nix
+++ b/pkgs/applications/science/physics/quantomatic/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A piece of software for reasoning about monoidal theories; in particular, quantum information processing";
+    description = "Piece of software for reasoning about monoidal theories; in particular, quantum information processing";
     mainProgram = "quantomatic";
     license = licenses.gpl3;
     homepage = "https://quantomatic.github.io/";
diff --git a/pkgs/applications/science/physics/sacrifice/default.nix b/pkgs/applications/science/physics/sacrifice/default.nix
index 352b65dc700c0..dbe2365371393 100644
--- a/pkgs/applications/science/physics/sacrifice/default.nix
+++ b/pkgs/applications/science/physics/sacrifice/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation {
   enableParallelBuilding = true;
 
   meta = {
-    description = "A standalone contribution to AGILe for steering Pythia 8";
+    description = "Standalone contribution to AGILe for steering Pythia 8";
     mainProgram = "run-pythia";
     license     = lib.licenses.gpl2;
     homepage    = "https://agile.hepforge.org/trac/wiki/Sacrifice";
diff --git a/pkgs/applications/science/physics/xfitter/default.nix b/pkgs/applications/science/physics/xfitter/default.nix
index 77b57e08e2bbe..8a92c85a13830 100644
--- a/pkgs/applications/science/physics/xfitter/default.nix
+++ b/pkgs/applications/science/physics/xfitter/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The xFitter project is an open source QCD fit framework ready to extract PDFs and assess the impact of new data";
+    description = "XFitter project is an open source QCD fit framework ready to extract PDFs and assess the impact of new data";
     license     = licenses.gpl3;
     homepage    = "https://www.xfitter.org/xFitter";
     platforms   = platforms.unix;
diff --git a/pkgs/applications/science/physics/xflr5/default.nix b/pkgs/applications/science/physics/xflr5/default.nix
index 497be8fcbaa9e..3090bcbfecd46 100644
--- a/pkgs/applications/science/physics/xflr5/default.nix
+++ b/pkgs/applications/science/physics/xflr5/default.nix
@@ -14,7 +14,7 @@ mkDerivation rec {
   nativeBuildInputs = [ qmake ];
 
   meta = with lib; {
-    description = "An analysis tool for airfoils, wings and planes";
+    description = "Analysis tool for airfoils, wings and planes";
     mainProgram = "xflr5";
     homepage = "https://sourceforge.net/projects/xflr5/";
     license = licenses.gpl3;
diff --git a/pkgs/applications/science/programming/fdr/default.nix b/pkgs/applications/science/programming/fdr/default.nix
index f7b12342a6659..2237d9528701e 100644
--- a/pkgs/applications/science/programming/fdr/default.nix
+++ b/pkgs/applications/science/programming/fdr/default.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://cocotec.io/fdr/";
-    description = "The CSP refinement checker";
+    description = "CSP refinement checker";
     license = licenses.unfreeRedistributable;
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/science/robotics/betaflight-configurator/default.nix b/pkgs/applications/science/robotics/betaflight-configurator/default.nix
index 84f94102da136..a6cfb99d492b1 100644
--- a/pkgs/applications/science/robotics/betaflight-configurator/default.nix
+++ b/pkgs/applications/science/robotics/betaflight-configurator/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The Betaflight flight control system configuration tool";
+    description = "Betaflight flight control system configuration tool";
     mainProgram = "betaflight-configurator";
     longDescription = ''
       A crossplatform configuration tool for the Betaflight flight control system.
diff --git a/pkgs/applications/science/robotics/emuflight-configurator/default.nix b/pkgs/applications/science/robotics/emuflight-configurator/default.nix
index 62592b0cc3fc9..9669d48e744e0 100644
--- a/pkgs/applications/science/robotics/emuflight-configurator/default.nix
+++ b/pkgs/applications/science/robotics/emuflight-configurator/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "The Emuflight flight control system configuration tool";
+    description = "Emuflight flight control system configuration tool";
     mainProgram = "emuflight-configurator";
     longDescription = ''
       A crossplatform configuration tool for the Emuflight flight control system.
diff --git a/pkgs/applications/science/robotics/inav-configurator/default.nix b/pkgs/applications/science/robotics/inav-configurator/default.nix
index 1a6f5951ed348..364f5185d00a8 100644
--- a/pkgs/applications/science/robotics/inav-configurator/default.nix
+++ b/pkgs/applications/science/robotics/inav-configurator/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "The iNav flight control system configuration tool";
+    description = "INav flight control system configuration tool";
     mainProgram = "inav-configurator";
     longDescription = ''
       A crossplatform configuration tool for the iNav flight control system.
diff --git a/pkgs/applications/science/robotics/mission-planner/default.nix b/pkgs/applications/science/robotics/mission-planner/default.nix
index f6e7e5f114fa7..0e60cb1fc2604 100644
--- a/pkgs/applications/science/robotics/mission-planner/default.nix
+++ b/pkgs/applications/science/robotics/mission-planner/default.nix
@@ -45,7 +45,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An ArduPilot ground station";
+    description = "ArduPilot ground station";
     mainProgram = "mission-planner";
     longDescription = ''
       Full-featured ground station application for the ArduPilot open source
diff --git a/pkgs/applications/science/robotics/mujoco/default.nix b/pkgs/applications/science/robotics/mujoco/default.nix
index 76c18a788c30d..d4a7a961d3984 100644
--- a/pkgs/applications/science/robotics/mujoco/default.nix
+++ b/pkgs/applications/science/robotics/mujoco/default.nix
@@ -11,7 +11,7 @@
 
 let
   pin = {
-
+    # TODO: Check the following file and ensure the dependencies are up-to-date
     # See https://github.com/google-deepmind/mujoco/blob/<VERSION>/cmake/MujocoDependencies.cmake#L17-L64
     abseil-cpp = fetchFromGitHub {
       owner = "abseil";
@@ -129,7 +129,7 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "mujoco";
-  version = "3.1.5";
+  version = "3.1.6";
 
   # Bumping version? Make sure to look though the MuJoCo's commit
   # history for bumped dependency pins!
@@ -137,7 +137,7 @@ in stdenv.mkDerivation rec {
     owner = "google-deepmind";
     repo = "mujoco";
     rev = "refs/tags/${version}";
-    hash = "sha256-XKN489oexHf2/Gv0MVxXUzqyeJJTJXV99+fNi8shdsg=";
+    hash = "sha256-64zUplr1E5WSb5RpTW9La1zKVT67a1VrftiUqc2SHlU=";
   };
 
   patches = [ ./mujoco-system-deps-dont-fetch.patch ];
@@ -177,12 +177,16 @@ in stdenv.mkDerivation rec {
 
   passthru.pin = { inherit (pin) lodepng eigen3 abseil-cpp; };
 
-  meta = with lib; {
-    description = "Multi-Joint dynamics with Contact. A general purpose physics simulator.";
+  meta = {
+    description = "Multi-Joint dynamics with Contact. A general purpose physics simulator";
     homepage = "https://mujoco.org/";
     changelog = "https://github.com/google-deepmind/mujoco/releases/tag/${version}";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ samuela tmplt ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [
+      GaetanLepage
+      samuela
+      tmplt
+    ];
     broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/applications/search/recoll/default.nix b/pkgs/applications/search/recoll/default.nix
index 707a29307e766..c3c1b6d85ed30 100644
--- a/pkgs/applications/search/recoll/default.nix
+++ b/pkgs/applications/search/recoll/default.nix
@@ -177,7 +177,7 @@ mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A full-text search tool";
+    description = "Full-text search tool";
     longDescription = ''
       Recoll is an Xapian frontend that can search through files, archive
       members, email attachments.
diff --git a/pkgs/applications/system/asusctl/default.nix b/pkgs/applications/system/asusctl/default.nix
index 3fe0f13ea3bfb..8ae81050634b5 100644
--- a/pkgs/applications/system/asusctl/default.nix
+++ b/pkgs/applications/system/asusctl/default.nix
@@ -90,7 +90,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A control daemon, CLI tools, and a collection of crates for interacting with ASUS ROG laptops";
+    description = "Control daemon, CLI tools, and a collection of crates for interacting with ASUS ROG laptops";
     homepage = "https://gitlab.com/asus-linux/asusctl";
     license = licenses.mpl20;
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/system/coolercontrol/Cargo.lock b/pkgs/applications/system/coolercontrol/Cargo.lock
index a5b28c64c0bc5..3ac008f7e628e 100644
--- a/pkgs/applications/system/coolercontrol/Cargo.lock
+++ b/pkgs/applications/system/coolercontrol/Cargo.lock
@@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "aho-corasick"
-version = "1.1.2"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
 dependencies = [
  "memchr",
 ]
@@ -58,25 +58,24 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.80"
+version = "1.0.86"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
+checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
 
 [[package]]
 name = "arboard"
-version = "3.3.1"
+version = "3.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1faa3c733d9a3dd6fbaf85da5d162a2e03b2e0033a90dceb0e2a90fdd1e5380a"
+checksum = "9fb4009533e8ff8f1450a5bcbc30f4242a1d34442221f72314bea1f5dc9c7f89"
 dependencies = [
  "clipboard-win",
- "core-graphics 0.23.1",
- "image",
+ "core-graphics 0.23.2",
+ "image 0.25.1",
  "log",
- "objc",
- "objc-foundation",
- "objc_id",
+ "objc2",
+ "objc2-app-kit",
+ "objc2-foundation",
  "parking_lot",
- "thiserror",
  "windows-sys 0.48.0",
  "wl-clipboard-rs",
  "x11rb",
@@ -100,28 +99,26 @@ dependencies = [
 
 [[package]]
 name = "async-channel"
-version = "2.2.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
+checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a"
 dependencies = [
  "concurrent-queue",
- "event-listener 5.1.0",
- "event-listener-strategy 0.5.0",
+ "event-listener-strategy 0.5.2",
  "futures-core",
  "pin-project-lite",
 ]
 
 [[package]]
 name = "async-executor"
-version = "1.8.0"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c"
+checksum = "b10202063978b3351199d68f8b22c4e47e4b1b822f8d43fd862d5ea8c006b29a"
 dependencies = [
- "async-lock 3.3.0",
  "async-task",
  "concurrent-queue",
- "fastrand 2.0.1",
- "futures-lite 2.2.0",
+ "fastrand 2.1.0",
+ "futures-lite 2.3.0",
  "slab",
 ]
 
@@ -159,18 +156,18 @@ dependencies = [
 
 [[package]]
 name = "async-io"
-version = "2.3.1"
+version = "2.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f97ab0c5b00a7cdbe5a371b9a782ee7be1316095885c8a4ea1daf490eb0ef65"
+checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884"
 dependencies = [
  "async-lock 3.3.0",
  "cfg-if",
  "concurrent-queue",
  "futures-io",
- "futures-lite 2.2.0",
+ "futures-lite 2.3.0",
  "parking",
- "polling 3.5.0",
- "rustix 0.38.31",
+ "polling 3.7.0",
+ "rustix 0.38.34",
  "slab",
  "tracing",
  "windows-sys 0.52.0",
@@ -209,54 +206,54 @@ dependencies = [
  "cfg-if",
  "event-listener 3.1.0",
  "futures-lite 1.13.0",
- "rustix 0.38.31",
+ "rustix 0.38.34",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "async-recursion"
-version = "1.0.5"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
+checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.49",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "async-signal"
-version = "0.2.5"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
+checksum = "afe66191c335039c7bb78f99dc7520b0cbb166b3a1cb33a03f53d8a1c6f2afda"
 dependencies = [
- "async-io 2.3.1",
- "async-lock 2.8.0",
+ "async-io 2.3.2",
+ "async-lock 3.3.0",
  "atomic-waker",
  "cfg-if",
  "futures-core",
  "futures-io",
- "rustix 0.38.31",
+ "rustix 0.38.34",
  "signal-hook-registry",
  "slab",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "async-task"
-version = "4.7.0"
+version = "4.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
+checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
 
 [[package]]
 name = "async-trait"
-version = "0.1.77"
+version = "0.1.80"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
+checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.49",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -280,7 +277,7 @@ dependencies = [
  "glib-sys",
  "gobject-sys",
  "libc",
- "system-deps 6.2.0",
+ "system-deps 6.2.2",
 ]
 
 [[package]]
@@ -302,15 +299,15 @@ dependencies = [
 
 [[package]]
 name = "autocfg"
-version = "1.1.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
 
 [[package]]
 name = "backtrace"
-version = "0.3.69"
+version = "0.3.71"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d"
 dependencies = [
  "addr2line",
  "cc",
@@ -334,6 +331,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
+name = "base64"
+version = "0.22.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
+
+[[package]]
 name = "bincode"
 version = "1.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -350,9 +353,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.2"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
 
 [[package]]
 name = "block"
@@ -370,26 +373,33 @@ dependencies = [
 ]
 
 [[package]]
+name = "block2"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f"
+dependencies = [
+ "objc2",
+]
+
+[[package]]
 name = "blocking"
-version = "1.5.1"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
+checksum = "495f7104e962b7356f0aeb34247aca1fe7d2e783b346582db7f2904cb5717e88"
 dependencies = [
  "async-channel",
  "async-lock 3.3.0",
  "async-task",
- "fastrand 2.0.1",
  "futures-io",
- "futures-lite 2.2.0",
+ "futures-lite 2.3.0",
  "piper",
- "tracing",
 ]
 
 [[package]]
 name = "brotli"
-version = "3.4.0"
+version = "3.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f"
+checksum = "d640d25bc63c50fb1f0b545ffd80207d2e10a4c965530809b40ba3386825c391"
 dependencies = [
  "alloc-no-stdlib",
  "alloc-stdlib",
@@ -408,9 +418,9 @@ dependencies = [
 
 [[package]]
 name = "bstr"
-version = "1.9.0"
+version = "1.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc"
+checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
 dependencies = [
  "memchr",
  "serde",
@@ -418,21 +428,15 @@ dependencies = [
 
 [[package]]
 name = "bumpalo"
-version = "3.15.0"
+version = "3.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d32a994c2b3ca201d9b263612a374263f05e7adde37c4707f693dcd375076d1f"
-
-[[package]]
-name = "bytecount"
-version = "0.6.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1e5f035d16fc623ae5f74981db80a439803888314e3a555fd6f04acd51a3205"
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
 
 [[package]]
 name = "bytemuck"
-version = "1.14.3"
+version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
+checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5"
 
 [[package]]
 name = "byteorder"
@@ -442,9 +446,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
-version = "1.5.0"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
 
 [[package]]
 name = "cairo-rs"
@@ -467,7 +471,7 @@ checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8"
 dependencies = [
  "glib-sys",
  "libc",
- "system-deps 6.2.0",
+ "system-deps 6.2.2",
 ]
 
 [[package]]
@@ -482,12 +486,9 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.83"
+version = "1.0.98"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
-dependencies = [
- "libc",
-]
+checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
 
 [[package]]
 name = "cesu8"
@@ -517,9 +518,9 @@ dependencies = [
 
 [[package]]
 name = "cfg-expr"
-version = "0.15.7"
+version = "0.15.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d"
+checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02"
 dependencies = [
  "smallvec",
  "target-lexicon",
@@ -532,16 +533,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
+[[package]]
 name = "chrono"
-version = "0.4.34"
+version = "0.4.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "num-traits",
  "serde",
- "windows-targets 0.52.0",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -560,7 +567,7 @@ dependencies = [
  "bitflags 1.3.2",
  "clap_lex",
  "indexmap 1.9.3",
- "strsim",
+ "strsim 0.10.0",
  "termcolor",
  "textwrap",
 ]
@@ -576,9 +583,9 @@ dependencies = [
 
 [[package]]
 name = "clipboard-win"
-version = "5.1.0"
+version = "5.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ec832972fefb8cf9313b45a0d1945e29c9c251f1d4c6eafc5fe2124c02d2e81"
+checksum = "79f4473f5144e20d9aceaf2972478f06ddf687831eafeeb434fbaf0acc4144ad"
 dependencies = [
  "error-code",
 ]
@@ -621,9 +628,9 @@ checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
 
 [[package]]
 name = "combine"
-version = "4.6.6"
+version = "4.6.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4"
+checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd"
 dependencies = [
  "bytes",
  "memchr",
@@ -631,9 +638,9 @@ dependencies = [
 
 [[package]]
 name = "concurrent-queue"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
+checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
 dependencies = [
  "crossbeam-utils",
 ]
@@ -646,7 +653,7 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
 
 [[package]]
 name = "coolercontrol"
-version = "1.2.2"
+version = "1.3.0"
 dependencies = [
  "rand 0.8.5",
  "serde",
@@ -690,9 +697,9 @@ dependencies = [
 
 [[package]]
 name = "core-graphics"
-version = "0.23.1"
+version = "0.23.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "970a29baf4110c26fedbc7f82107d42c23f7e88e404c4577ed73fe99ff85a212"
+checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081"
 dependencies = [
  "bitflags 1.3.2",
  "core-foundation",
@@ -723,18 +730,18 @@ dependencies = [
 
 [[package]]
 name = "crc32fast"
-version = "1.4.0"
+version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
+checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
 dependencies = [
  "cfg-if",
 ]
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.11"
+version = "0.5.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b"
+checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2"
 dependencies = [
  "crossbeam-utils",
 ]
@@ -760,9 +767,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.19"
+version = "0.8.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
 
 [[package]]
 name = "crypto-common"
@@ -798,24 +805,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
 dependencies = [
  "quote",
- "syn 2.0.49",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "ctor"
-version = "0.2.6"
+version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e"
+checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f"
 dependencies = [
  "quote",
- "syn 2.0.49",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "darling"
-version = "0.20.6"
+version = "0.20.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c376d08ea6aa96aafe61237c7200d1241cb177b7d3a542d791f2d118e9cbb955"
+checksum = "83b2eb4d90d12bdda5ed17de686c2acb4c57914f8f921b8da7e112b5a36f3fe1"
 dependencies = [
  "darling_core",
  "darling_macro",
@@ -823,27 +830,27 @@ dependencies = [
 
 [[package]]
 name = "darling_core"
-version = "0.20.6"
+version = "0.20.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33043dcd19068b8192064c704b3f83eb464f91f1ff527b44a4e2b08d9cdb8855"
+checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120"
 dependencies = [
  "fnv",
  "ident_case",
  "proc-macro2",
  "quote",
- "strsim",
- "syn 2.0.49",
+ "strsim 0.11.1",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "darling_macro"
-version = "0.20.6"
+version = "0.20.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5a91391accf613803c2a9bf9abccdbaa07c54b4244a5b64883f9c3c137c86be"
+checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178"
 dependencies = [
  "darling_core",
  "quote",
- "syn 2.0.49",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -869,13 +876,13 @@ dependencies = [
 
 [[package]]
 name = "derive-new"
-version = "0.5.9"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3418329ca0ad70234b9735dc4ceed10af4df60eff9c8e7b06cb5e520d92c3535"
+checksum = "d150dea618e920167e5973d70ae6ece4385b7164e0d799fe7c122dd0a5d912ad"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -934,14 +941,14 @@ version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412"
 dependencies = [
- "libloading 0.8.1",
+ "libloading 0.8.3",
 ]
 
 [[package]]
 name = "downcast-rs"
-version = "1.2.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
+checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2"
 
 [[package]]
 name = "dtoa"
@@ -966,14 +973,14 @@ checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
 
 [[package]]
 name = "embed-resource"
-version = "2.4.1"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3bde55e389bea6a966bd467ad1ad7da0ae14546a5bc794d16d1e55e7fca44881"
+checksum = "c6985554d0688b687c5cb73898a34fbe3ad6c24c58c238a4d91d5e840670ee9d"
 dependencies = [
  "cc",
  "memchr",
  "rustc_version",
- "toml 0.8.10",
+ "toml 0.8.13",
  "vswhom",
  "winreg",
 ]
@@ -986,9 +993,9 @@ checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7"
 
 [[package]]
 name = "encoding_rs"
-version = "0.8.33"
+version = "0.8.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
 dependencies = [
  "cfg-if",
 ]
@@ -1011,7 +1018,7 @@ checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.49",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -1022,9 +1029,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "errno"
-version = "0.3.8"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
 dependencies = [
  "libc",
  "windows-sys 0.52.0",
@@ -1032,9 +1039,9 @@ dependencies = [
 
 [[package]]
 name = "error-code"
-version = "3.0.0"
+version = "3.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "281e452d3bad4005426416cdba5ccfd4f5c1280e10099e21db27f7c1c28347fc"
+checksum = "a0474425d51df81997e2f90a21591180b38eccf27292d755f3e30750225c175b"
 
 [[package]]
 name = "event-listener"
@@ -1066,9 +1073,9 @@ dependencies = [
 
 [[package]]
 name = "event-listener"
-version = "5.1.0"
+version = "5.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7ad6fd685ce13acd6d9541a30f6db6567a7a24c9ffd4ba2955d29e3f22c8b27"
+checksum = "6d9944b8ca13534cdfb2800775f8dd4902ff3fc75a50101466decadfdf322a24"
 dependencies = [
  "concurrent-queue",
  "parking",
@@ -1087,11 +1094,11 @@ dependencies = [
 
 [[package]]
 name = "event-listener-strategy"
-version = "0.5.0"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
+checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1"
 dependencies = [
- "event-listener 5.1.0",
+ "event-listener 5.3.0",
  "pin-project-lite",
 ]
 
@@ -1106,9 +1113,9 @@ dependencies = [
 
 [[package]]
 name = "fastrand"
-version = "2.0.1"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
 
 [[package]]
 name = "fdeflate"
@@ -1125,7 +1132,7 @@ version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f"
 dependencies = [
- "memoffset 0.9.0",
+ "memoffset 0.9.1",
  "rustc_version",
 ]
 
@@ -1137,7 +1144,7 @@ checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall",
+ "redox_syscall 0.4.1",
  "windows-sys 0.52.0",
 ]
 
@@ -1149,9 +1156,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
 
 [[package]]
 name = "flate2"
-version = "1.0.28"
+version = "1.0.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
+checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae"
 dependencies = [
  "crc32fast",
  "miniz_oxide",
@@ -1190,7 +1197,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.49",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -1273,11 +1280,11 @@ dependencies = [
 
 [[package]]
 name = "futures-lite"
-version = "2.2.0"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba"
+checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
 dependencies = [
- "fastrand 2.0.1",
+ "fastrand 2.1.0",
  "futures-core",
  "futures-io",
  "parking",
@@ -1292,7 +1299,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.49",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -1372,7 +1379,7 @@ dependencies = [
  "glib-sys",
  "gobject-sys",
  "libc",
- "system-deps 6.2.0",
+ "system-deps 6.2.2",
 ]
 
 [[package]]
@@ -1389,7 +1396,7 @@ dependencies = [
  "libc",
  "pango-sys",
  "pkg-config",
- "system-deps 6.2.0",
+ "system-deps 6.2.2",
 ]
 
 [[package]]
@@ -1403,7 +1410,7 @@ dependencies = [
  "gobject-sys",
  "libc",
  "pkg-config",
- "system-deps 6.2.0",
+ "system-deps 6.2.2",
 ]
 
 [[package]]
@@ -1415,7 +1422,7 @@ dependencies = [
  "gdk-sys",
  "glib-sys",
  "libc",
- "system-deps 6.2.0",
+ "system-deps 6.2.2",
  "x11",
 ]
 
@@ -1465,9 +1472,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.12"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
 dependencies = [
  "cfg-if",
  "libc",
@@ -1506,7 +1513,7 @@ dependencies = [
  "glib-sys",
  "gobject-sys",
  "libc",
- "system-deps 6.2.0",
+ "system-deps 6.2.2",
  "winapi",
 ]
 
@@ -1552,7 +1559,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4"
 dependencies = [
  "libc",
- "system-deps 6.2.0",
+ "system-deps 6.2.2",
 ]
 
 [[package]]
@@ -1570,8 +1577,8 @@ dependencies = [
  "aho-corasick",
  "bstr",
  "log",
- "regex-automata 0.4.5",
- "regex-syntax 0.8.2",
+ "regex-automata 0.4.6",
+ "regex-syntax 0.8.3",
 ]
 
 [[package]]
@@ -1582,7 +1589,7 @@ checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a"
 dependencies = [
  "glib-sys",
  "libc",
- "system-deps 6.2.0",
+ "system-deps 6.2.2",
 ]
 
 [[package]]
@@ -1623,7 +1630,7 @@ dependencies = [
  "gobject-sys",
  "libc",
  "pango-sys",
- "system-deps 6.2.0",
+ "system-deps 6.2.2",
 ]
 
 [[package]]
@@ -1648,9 +1655,9 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
 
 [[package]]
 name = "hashbrown"
-version = "0.14.3"
+version = "0.14.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
 
 [[package]]
 name = "heck"
@@ -1668,6 +1675,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
 name = "hermit-abi"
 version = "0.1.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1678,9 +1691,9 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.6"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
 [[package]]
 name = "hex"
@@ -1689,6 +1702,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
 
 [[package]]
+name = "home"
+version = "0.5.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "html5ever"
 version = "0.26.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1704,24 +1726,24 @@ dependencies = [
 
 [[package]]
 name = "http"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
+checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
 dependencies = [
  "bytes",
  "fnv",
- "itoa 1.0.10",
+ "itoa 1.0.11",
 ]
 
 [[package]]
 name = "http"
-version = "1.0.0"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea"
+checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
 dependencies = [
  "bytes",
  "fnv",
- "itoa 1.0.10",
+ "itoa 1.0.11",
 ]
 
 [[package]]
@@ -1795,7 +1817,7 @@ dependencies = [
  "globset",
  "log",
  "memchr",
- "regex-automata 0.4.5",
+ "regex-automata 0.4.6",
  "same-file",
  "walkdir",
  "winapi-util",
@@ -1803,14 +1825,25 @@ dependencies = [
 
 [[package]]
 name = "image"
-version = "0.24.8"
+version = "0.24.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "034bbe799d1909622a74d1193aa50147769440040ff36cb2baa947609b0a4e23"
+checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d"
 dependencies = [
  "bytemuck",
  "byteorder",
  "color_quant",
  "num-traits",
+]
+
+[[package]]
+name = "image"
+version = "0.25.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd54d660e773627692c524beaad361aca785a4f9f5730ce91f42aabe5bce3d11"
+dependencies = [
+ "bytemuck",
+ "byteorder",
+ "num-traits",
  "png",
  "tiff",
 ]
@@ -1828,12 +1861,12 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.2.3"
+version = "2.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.3",
+ "hashbrown 0.14.5",
  "serde",
 ]
 
@@ -1848,9 +1881,9 @@ dependencies = [
 
 [[package]]
 name = "instant"
-version = "0.1.12"
+version = "0.1.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222"
 dependencies = [
  "cfg-if",
 ]
@@ -1861,7 +1894,7 @@ version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
 dependencies = [
- "hermit-abi 0.3.6",
+ "hermit-abi 0.3.9",
  "libc",
  "windows-sys 0.48.0",
 ]
@@ -1874,9 +1907,9 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
 
 [[package]]
 name = "itoa"
-version = "1.0.10"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
 
 [[package]]
 name = "javascriptcore-rs"
@@ -1929,23 +1962,22 @@ checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0"
 
 [[package]]
 name = "js-sys"
-version = "0.3.68"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
 dependencies = [
  "wasm-bindgen",
 ]
 
 [[package]]
 name = "json-patch"
-version = "1.2.0"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55ff1e1486799e3f64129f8ccad108b38290df9cd7015cd31bed17239f0789d6"
+checksum = "ec9ad60d674508f3ca8f380a928cfe7b096bc729c4e2dbfe3852bc45da3ab30b"
 dependencies = [
  "serde",
  "serde_json",
  "thiserror",
- "treediff",
 ]
 
 [[package]]
@@ -1993,9 +2025,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.153"
+version = "0.2.155"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
 
 [[package]]
 name = "libloading"
@@ -2009,33 +2041,29 @@ dependencies = [
 
 [[package]]
 name = "libloading"
-version = "0.8.1"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
+checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
 dependencies = [
  "cfg-if",
- "windows-sys 0.48.0",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
 name = "libredox"
-version = "0.0.1"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "libc",
- "redox_syscall",
 ]
 
 [[package]]
 name = "line-wrap"
-version = "0.1.1"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9"
-dependencies = [
- "safemem",
-]
+checksum = "dd1bc4d24ad230d21fb898d1116b1801d7adfc449d42026475862ab48b11e70e"
 
 [[package]]
 name = "linux-raw-sys"
@@ -2045,15 +2073,15 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.13"
+version = "0.4.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
 
 [[package]]
 name = "lock_api"
-version = "0.4.11"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -2061,9 +2089,9 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.20"
+version = "0.4.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
 
 [[package]]
 name = "loom"
@@ -2126,9 +2154,9 @@ checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
 
 [[package]]
 name = "memchr"
-version = "2.7.1"
+version = "2.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
 
 [[package]]
 name = "memoffset"
@@ -2141,9 +2169,9 @@ dependencies = [
 
 [[package]]
 name = "memoffset"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
 dependencies = [
  "autocfg",
 ]
@@ -2156,9 +2184,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
+checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae"
 dependencies = [
  "adler",
  "simd-adler32",
@@ -2194,9 +2222,9 @@ dependencies = [
 
 [[package]]
 name = "new_debug_unreachable"
-version = "1.0.4"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
+checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
 
 [[package]]
 name = "nix"
@@ -2208,7 +2236,18 @@ dependencies = [
  "cfg-if",
  "libc",
  "memoffset 0.7.1",
- "pin-utils",
+]
+
+[[package]]
+name = "nix"
+version = "0.28.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
+dependencies = [
+ "bitflags 2.5.0",
+ "cfg-if",
+ "cfg_aliases",
+ "libc",
 ]
 
 [[package]]
@@ -2245,9 +2284,9 @@ checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
 
 [[package]]
 name = "num-traits"
-version = "0.2.18"
+version = "0.2.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
 dependencies = [
  "autocfg",
 ]
@@ -2258,7 +2297,7 @@ version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
- "hermit-abi 0.3.6",
+ "hermit-abi 0.3.9",
  "libc",
 ]
 
@@ -2294,14 +2333,102 @@ dependencies = [
 ]
 
 [[package]]
-name = "objc-foundation"
-version = "0.1.1"
+name = "objc-sys"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310"
+
+[[package]]
+name = "objc2"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
+checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804"
 dependencies = [
- "block",
- "objc",
- "objc_id",
+ "objc-sys",
+ "objc2-encode",
+]
+
+[[package]]
+name = "objc2-app-kit"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff"
+dependencies = [
+ "bitflags 2.5.0",
+ "block2",
+ "libc",
+ "objc2",
+ "objc2-core-data",
+ "objc2-core-image",
+ "objc2-foundation",
+ "objc2-quartz-core",
+]
+
+[[package]]
+name = "objc2-core-data"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef"
+dependencies = [
+ "bitflags 2.5.0",
+ "block2",
+ "objc2",
+ "objc2-foundation",
+]
+
+[[package]]
+name = "objc2-core-image"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80"
+dependencies = [
+ "block2",
+ "objc2",
+ "objc2-foundation",
+ "objc2-metal",
+]
+
+[[package]]
+name = "objc2-encode"
+version = "4.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8"
+
+[[package]]
+name = "objc2-foundation"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8"
+dependencies = [
+ "bitflags 2.5.0",
+ "block2",
+ "libc",
+ "objc2",
+]
+
+[[package]]
+name = "objc2-metal"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6"
+dependencies = [
+ "bitflags 2.5.0",
+ "block2",
+ "objc2",
+ "objc2-foundation",
+]
+
+[[package]]
+name = "objc2-quartz-core"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a"
+dependencies = [
+ "bitflags 2.5.0",
+ "block2",
+ "objc2",
+ "objc2-foundation",
+ "objc2-metal",
 ]
 
 [[package]]
@@ -2401,7 +2528,7 @@ dependencies = [
  "glib-sys",
  "gobject-sys",
  "libc",
- "system-deps 6.2.0",
+ "system-deps 6.2.2",
 ]
 
 [[package]]
@@ -2412,9 +2539,9 @@ checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
 
 [[package]]
 name = "parking_lot"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
 dependencies = [
  "lock_api",
  "parking_lot_core",
@@ -2422,15 +2549,15 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.9"
+version = "0.9.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall",
+ "redox_syscall 0.5.1",
  "smallvec",
- "windows-targets 0.48.5",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -2447,12 +2574,12 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "petgraph"
-version = "0.6.4"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
+checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db"
 dependencies = [
  "fixedbitset",
- "indexmap 2.2.3",
+ "indexmap 2.2.6",
 ]
 
 [[package]]
@@ -2559,7 +2686,7 @@ dependencies = [
  "phf_shared 0.11.2",
  "proc-macro2",
  "quote",
- "syn 2.0.49",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -2591,9 +2718,9 @@ dependencies = [
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.13"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
 
 [[package]]
 name = "pin-utils"
@@ -2603,12 +2730,12 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
 name = "piper"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4"
+checksum = "464db0c665917b13ebb5d453ccdec4add5658ee1adc7affc7677615356a8afaf"
 dependencies = [
  "atomic-waker",
- "fastrand 2.0.1",
+ "fastrand 2.1.0",
  "futures-io",
 ]
 
@@ -2620,12 +2747,12 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
 name = "plist"
-version = "1.6.0"
+version = "1.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef"
+checksum = "d9d34169e64b3c7a80c8621a48adaf44e0cf62c78a9b25dd9dd35f1881a17cf9"
 dependencies = [
  "base64 0.21.7",
- "indexmap 2.2.3",
+ "indexmap 2.2.6",
  "line-wrap",
  "quick-xml",
  "serde",
@@ -2663,14 +2790,15 @@ dependencies = [
 
 [[package]]
 name = "polling"
-version = "3.5.0"
+version = "3.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24f040dee2588b4963afb4e420540439d126f73fdacf4a9c486a96d840bac3c9"
+checksum = "645493cf344456ef24219d02a768cf1fb92ddf8c92161679ae3d91b91a637be3"
 dependencies = [
  "cfg-if",
  "concurrent-queue",
+ "hermit-abi 0.3.9",
  "pin-project-lite",
- "rustix 0.38.31",
+ "rustix 0.38.34",
  "tracing",
  "windows-sys 0.52.0",
 ]
@@ -2735,9 +2863,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.78"
+version = "1.0.84"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+checksum = "ec96c6a92621310b51366f1e28d05ef11489516e93be030060e5fc12024a49d6"
 dependencies = [
  "unicode-ident",
 ]
@@ -2753,9 +2881,9 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "1.0.35"
+version = "1.0.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
 dependencies = [
  "proc-macro2",
 ]
@@ -2820,7 +2948,7 @@ version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
 dependencies = [
- "getrandom 0.2.12",
+ "getrandom 0.2.15",
 ]
 
 [[package]]
@@ -2857,26 +2985,35 @@ dependencies = [
 ]
 
 [[package]]
+name = "redox_syscall"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e"
+dependencies = [
+ "bitflags 2.5.0",
+]
+
+[[package]]
 name = "redox_users"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
+checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891"
 dependencies = [
- "getrandom 0.2.12",
+ "getrandom 0.2.15",
  "libredox",
  "thiserror",
 ]
 
 [[package]]
 name = "regex"
-version = "1.10.3"
+version = "1.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-automata 0.4.5",
- "regex-syntax 0.8.2",
+ "regex-automata 0.4.6",
+ "regex-syntax 0.8.3",
 ]
 
 [[package]]
@@ -2890,13 +3027,13 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-syntax 0.8.2",
+ "regex-syntax 0.8.3",
 ]
 
 [[package]]
@@ -2907,15 +3044,15 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
 
 [[package]]
 name = "regex-syntax"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
 
 [[package]]
 name = "rustc-demangle"
-version = "0.1.23"
+version = "0.1.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
 
 [[package]]
 name = "rustc_version"
@@ -2942,34 +3079,28 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.31"
+version = "0.38.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
+checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "errno",
  "libc",
- "linux-raw-sys 0.4.13",
+ "linux-raw-sys 0.4.14",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "rustversion"
-version = "1.0.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
-
-[[package]]
-name = "ryu"
 version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
+checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
 
 [[package]]
-name = "safemem"
-version = "0.3.3"
+name = "ryu"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
 
 [[package]]
 name = "same-file"
@@ -3014,76 +3145,76 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.22"
+version = "1.0.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
+checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "serde"
-version = "1.0.197"
+version = "1.0.203"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
+checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.197"
+version = "1.0.203"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
+checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.49",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.115"
+version = "1.0.117"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd"
+checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
 dependencies = [
- "indexmap 2.2.3",
- "itoa 1.0.10",
+ "indexmap 2.2.6",
+ "itoa 1.0.11",
  "ryu",
  "serde",
 ]
 
 [[package]]
 name = "serde_repr"
-version = "0.1.18"
+version = "0.1.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
+checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.49",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.5"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "serde_with"
-version = "3.6.1"
+version = "3.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15d167997bd841ec232f5b2b8e0e26606df2e7caa4c31b95ea9ca52b200bd270"
+checksum = "0ad483d2ab0149d5a5ebcd9972a3852711e0153d863bf5a5d0391d28883c4a20"
 dependencies = [
- "base64 0.21.7",
+ "base64 0.22.1",
  "chrono",
  "hex",
  "indexmap 1.9.3",
- "indexmap 2.2.3",
+ "indexmap 2.2.6",
  "serde",
  "serde_derive",
  "serde_json",
@@ -3093,14 +3224,14 @@ dependencies = [
 
 [[package]]
 name = "serde_with_macros"
-version = "3.6.1"
+version = "3.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "865f9743393e638991566a8b7a479043c2c8da94a33e0a31f18214c9cae0a64d"
+checksum = "65569b702f41443e8bc8bbb1c5779bd0450bbe723b56198980e80ec45780bce2"
 dependencies = [
  "darling",
  "proc-macro2",
  "quote",
- "syn 2.0.49",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -3168,9 +3299,9 @@ dependencies = [
 
 [[package]]
 name = "signal-hook-registry"
-version = "1.4.1"
+version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
 dependencies = [
  "libc",
 ]
@@ -3198,9 +3329,9 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.13.1"
+version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "socket2"
@@ -3294,6 +3425,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
+name = "strsim"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
+
+[[package]]
 name = "syn"
 version = "1.0.109"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3306,9 +3443,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.49"
+version = "2.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "915aea9e586f80826ee59f8453c1101f9d1c4b3964cd2460185ee8e299ada496"
+checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -3330,22 +3467,22 @@ dependencies = [
 
 [[package]]
 name = "system-deps"
-version = "6.2.0"
+version = "6.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331"
+checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349"
 dependencies = [
- "cfg-expr 0.15.7",
- "heck 0.4.1",
+ "cfg-expr 0.15.8",
+ "heck 0.5.0",
  "pkg-config",
- "toml 0.8.10",
- "version-compare 0.1.1",
+ "toml 0.8.13",
+ "version-compare 0.2.0",
 ]
 
 [[package]]
 name = "tao"
-version = "0.16.7"
+version = "0.16.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d22205b267a679ca1c590b9f178488d50981fc3e48a1b91641ae31593db875ce"
+checksum = "575c856fc21e551074869dcfaad8f706412bd5b803dfa0fbf6881c4ff4bfafab"
 dependencies = [
  "bitflags 1.3.2",
  "cairo-rs",
@@ -3365,7 +3502,7 @@ dependencies = [
  "glib",
  "glib-sys",
  "gtk",
- "image",
+ "image 0.24.9",
  "instant",
  "jni",
  "lazy_static",
@@ -3414,15 +3551,15 @@ dependencies = [
 
 [[package]]
 name = "target-lexicon"
-version = "0.12.13"
+version = "0.12.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
 
 [[package]]
 name = "tauri"
-version = "1.6.1"
+version = "1.6.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f078117725e36d55d29fafcbb4b1e909073807ca328ae8deb8c0b3843aac0fed"
+checksum = "67c7177b6be45bbb875aa239578f5adc982a1b3d5ea5b315ccd100aeb0043374"
 dependencies = [
  "anyhow",
  "clap",
@@ -3433,11 +3570,12 @@ dependencies = [
  "encoding_rs",
  "flate2",
  "futures-util",
+ "getrandom 0.2.15",
  "glib",
  "glob",
  "gtk",
- "heck 0.4.1",
- "http 0.2.11",
+ "heck 0.5.0",
+ "http 0.2.12",
  "ignore",
  "objc",
  "once_cell",
@@ -3469,14 +3607,14 @@ dependencies = [
 
 [[package]]
 name = "tauri-build"
-version = "1.5.1"
+version = "1.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9914a4715e0b75d9f387a285c7e26b5bbfeb1249ad9f842675a82481565c532"
+checksum = "ab30cba12974d0f9b09794f61e72cad6da2142d3ceb81e519321bab86ce53312"
 dependencies = [
  "anyhow",
  "cargo_toml",
  "dirs-next",
- "heck 0.4.1",
+ "heck 0.5.0",
  "json-patch",
  "semver",
  "serde",
@@ -3488,9 +3626,9 @@ dependencies = [
 
 [[package]]
 name = "tauri-codegen"
-version = "1.4.2"
+version = "1.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1554c5857f65dbc377cefb6b97c8ac77b1cb2a90d30d3448114d5d6b48a77fc"
+checksum = "c3a1d90db526a8cdfd54444ad3f34d8d4d58fa5c536463915942393743bd06f8"
 dependencies = [
  "base64 0.21.7",
  "brotli",
@@ -3514,11 +3652,11 @@ dependencies = [
 
 [[package]]
 name = "tauri-macros"
-version = "1.4.3"
+version = "1.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "277abf361a3a6993ec16bcbb179de0d6518009b851090a01adfea12ac89fa875"
+checksum = "6a582d75414250122e4a597b9dd7d3c910a2c77906648fc2ac9353845ff0feec"
 dependencies = [
- "heck 0.4.1",
+ "heck 0.5.0",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
@@ -3529,9 +3667,9 @@ dependencies = [
 [[package]]
 name = "tauri-plugin-localhost"
 version = "0.1.0"
-source = "git+https://github.com/tauri-apps/plugins-workspace?rev=c6a5b7ae479eaa598db2430a87fe32a3429198bf#c6a5b7ae479eaa598db2430a87fe32a3429198bf"
+source = "git+https://github.com/tauri-apps/plugins-workspace?rev=5e3900e682e13f3759b439116ae2f77a6d389ca2#5e3900e682e13f3759b439116ae2f77a6d389ca2"
 dependencies = [
- "http 1.0.0",
+ "http 1.1.0",
  "log",
  "serde",
  "serde_json",
@@ -3543,7 +3681,7 @@ dependencies = [
 [[package]]
 name = "tauri-plugin-single-instance"
 version = "0.0.0"
-source = "git+https://github.com/tauri-apps/plugins-workspace?rev=c6a5b7ae479eaa598db2430a87fe32a3429198bf#c6a5b7ae479eaa598db2430a87fe32a3429198bf"
+source = "git+https://github.com/tauri-apps/plugins-workspace?rev=5e3900e682e13f3759b439116ae2f77a6d389ca2#5e3900e682e13f3759b439116ae2f77a6d389ca2"
 dependencies = [
  "log",
  "serde",
@@ -3557,7 +3695,7 @@ dependencies = [
 [[package]]
 name = "tauri-plugin-store"
 version = "0.0.0"
-source = "git+https://github.com/tauri-apps/plugins-workspace?rev=c6a5b7ae479eaa598db2430a87fe32a3429198bf#c6a5b7ae479eaa598db2430a87fe32a3429198bf"
+source = "git+https://github.com/tauri-apps/plugins-workspace?rev=5e3900e682e13f3759b439116ae2f77a6d389ca2#5e3900e682e13f3759b439116ae2f77a6d389ca2"
 dependencies = [
  "log",
  "serde",
@@ -3569,10 +3707,10 @@ dependencies = [
 [[package]]
 name = "tauri-plugin-window-state"
 version = "0.1.1"
-source = "git+https://github.com/tauri-apps/plugins-workspace?rev=c6a5b7ae479eaa598db2430a87fe32a3429198bf#c6a5b7ae479eaa598db2430a87fe32a3429198bf"
+source = "git+https://github.com/tauri-apps/plugins-workspace?rev=5e3900e682e13f3759b439116ae2f77a6d389ca2#5e3900e682e13f3759b439116ae2f77a6d389ca2"
 dependencies = [
  "bincode",
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "log",
  "serde",
  "serde_json",
@@ -3582,12 +3720,12 @@ dependencies = [
 
 [[package]]
 name = "tauri-runtime"
-version = "0.14.2"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf2d0652aa2891ff3e9caa2401405257ea29ab8372cce01f186a5825f1bd0e76"
+checksum = "cd7ffddf36d450791018e63a3ddf54979b9581d9644c584a5fb5611e6b5f20b4"
 dependencies = [
  "gtk",
- "http 0.2.11",
+ "http 0.2.12",
  "http-range",
  "rand 0.8.5",
  "raw-window-handle",
@@ -3603,9 +3741,9 @@ dependencies = [
 
 [[package]]
 name = "tauri-runtime-wry"
-version = "0.14.5"
+version = "0.14.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "067c56fc153b3caf406d7cd6de4486c80d1d66c0f414f39e94cb2f5543f6445f"
+checksum = "1989b3b4d611f5428b3414a4abae6fa6df30c7eb8ed33250ca90a5f7e5bb3655"
 dependencies = [
  "arboard",
  "cocoa",
@@ -3624,15 +3762,15 @@ dependencies = [
 
 [[package]]
 name = "tauri-utils"
-version = "1.5.3"
+version = "1.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75ad0bbb31fccd1f4c56275d0a5c3abdf1f59999f72cb4ef8b79b4ed42082a21"
+checksum = "450b17a7102e5d46d4bdabae0d1590fd27953e704e691fc081f06c06d2253b35"
 dependencies = [
  "brotli",
  "ctor",
  "dunce",
  "glob",
- "heck 0.4.1",
+ "heck 0.5.0",
  "html5ever",
  "infer",
  "json-patch",
@@ -3664,13 +3802,13 @@ dependencies = [
 
 [[package]]
 name = "tempfile"
-version = "3.10.0"
+version = "3.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if",
- "fastrand 2.0.1",
- "rustix 0.38.31",
+ "fastrand 2.1.0",
+ "rustix 0.38.34",
  "windows-sys 0.52.0",
 ]
 
@@ -3696,9 +3834,9 @@ dependencies = [
 
 [[package]]
 name = "textwrap"
-version = "0.16.0"
+version = "0.16.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
+checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9"
 
 [[package]]
 name = "thin-slice"
@@ -3708,29 +3846,29 @@ checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c"
 
 [[package]]
 name = "thiserror"
-version = "1.0.57"
+version = "1.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
+checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.57"
+version = "1.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
+checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.49",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "thread_local"
-version = "1.1.7"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
 dependencies = [
  "cfg-if",
  "once_cell",
@@ -3749,12 +3887,12 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.34"
+version = "0.3.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
+checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
 dependencies = [
  "deranged",
- "itoa 1.0.10",
+ "itoa 1.0.11",
  "num-conv",
  "powerfmt",
  "serde",
@@ -3770,9 +3908,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.17"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
+checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
 dependencies = [
  "num-conv",
  "time-core",
@@ -3807,9 +3945,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.36.0"
+version = "1.37.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
+checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787"
 dependencies = [
  "backtrace",
  "bytes",
@@ -3840,21 +3978,21 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.8.10"
+version = "0.8.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
+checksum = "a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.22.6",
+ "toml_edit 0.22.13",
 ]
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.5"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf"
 dependencies = [
  "serde",
 ]
@@ -3865,7 +4003,7 @@ version = "0.19.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
- "indexmap 2.2.3",
+ "indexmap 2.2.6",
  "serde",
  "serde_spanned",
  "toml_datetime",
@@ -3874,15 +4012,15 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.22.6"
+version = "0.22.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6"
+checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c"
 dependencies = [
- "indexmap 2.2.3",
+ "indexmap 2.2.6",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow 0.6.1",
+ "winnow 0.6.8",
 ]
 
 [[package]]
@@ -3904,7 +4042,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.49",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -3948,28 +4086,19 @@ dependencies = [
 
 [[package]]
 name = "tree_magic_mini"
-version = "3.0.3"
+version = "3.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91adfd0607cacf6e4babdb870e9bec4037c1c4b151cfd279ccefc5e0c7feaa6d"
+checksum = "77ee137597cdb361b55a4746983e4ac1b35ab6024396a419944ad473bb915265"
 dependencies = [
- "bytecount",
  "fnv",
- "lazy_static",
+ "home",
+ "memchr",
  "nom",
  "once_cell",
  "petgraph",
 ]
 
 [[package]]
-name = "treediff"
-version = "4.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d127780145176e2b5d16611cc25a900150e86e9fd79d3bde6ff3a37359c9cb5"
-dependencies = [
- "serde_json",
-]
-
-[[package]]
 name = "typenum"
 version = "1.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3981,7 +4110,7 @@ version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
 dependencies = [
- "memoffset 0.9.0",
+ "memoffset 0.9.1",
  "tempfile",
  "winapi",
 ]
@@ -4000,9 +4129,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
 dependencies = [
  "tinyvec",
 ]
@@ -4033,11 +4162,11 @@ checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
 
 [[package]]
 name = "uuid"
-version = "1.7.0"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
+checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
 dependencies = [
- "getrandom 0.2.12",
+ "getrandom 0.2.15",
 ]
 
 [[package]]
@@ -4054,9 +4183,9 @@ checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b"
 
 [[package]]
 name = "version-compare"
-version = "0.1.1"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
+checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b"
 
 [[package]]
 name = "version_check"
@@ -4086,15 +4215,15 @@ dependencies = [
 
 [[package]]
 name = "waker-fn"
-version = "1.1.1"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
+checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7"
 
 [[package]]
 name = "walkdir"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
 dependencies = [
  "same-file",
  "winapi-util",
@@ -4114,9 +4243,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -4124,24 +4253,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.49",
+ "syn 2.0.66",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -4149,22 +4278,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.49",
+ "syn 2.0.66",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
 name = "wayland-backend"
@@ -4174,7 +4303,7 @@ checksum = "9d50fa61ce90d76474c87f5fc002828d81b32677340112b4ef08079a9d459a40"
 dependencies = [
  "cc",
  "downcast-rs",
- "rustix 0.38.31",
+ "rustix 0.38.34",
  "scoped-tls",
  "smallvec",
  "wayland-sys",
@@ -4186,8 +4315,8 @@ version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f"
 dependencies = [
- "bitflags 2.4.2",
- "rustix 0.38.31",
+ "bitflags 2.5.0",
+ "rustix 0.38.34",
  "wayland-backend",
  "wayland-scanner",
 ]
@@ -4198,7 +4327,7 @@ version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "wayland-backend",
  "wayland-client",
  "wayland-scanner",
@@ -4210,7 +4339,7 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "wayland-backend",
  "wayland-client",
  "wayland-protocols",
@@ -4283,7 +4412,7 @@ dependencies = [
  "pango-sys",
  "pkg-config",
  "soup2-sys",
- "system-deps 6.2.0",
+ "system-deps 6.2.2",
 ]
 
 [[package]]
@@ -4348,11 +4477,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.6"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
+checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b"
 dependencies = [
- "winapi",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -4400,7 +4529,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -4449,7 +4578,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -4469,17 +4598,18 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.0",
- "windows_aarch64_msvc 0.52.0",
- "windows_i686_gnu 0.52.0",
- "windows_i686_msvc 0.52.0",
- "windows_x86_64_gnu 0.52.0",
- "windows_x86_64_gnullvm 0.52.0",
- "windows_x86_64_msvc 0.52.0",
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
 ]
 
 [[package]]
@@ -4490,11 +4620,11 @@ checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597"
 
 [[package]]
 name = "windows-version"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75aa004c988e080ad34aff5739c39d0312f4684699d6d71fc8a198d057b8b9b4"
+checksum = "6998aa457c9ba8ff2fb9f13e9d2a930dabcea28f1d0ab94d687d8b3654844515"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -4511,9 +4641,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -4535,9 +4665,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -4559,9 +4689,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.0"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -4583,9 +4719,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -4607,9 +4743,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -4625,9 +4761,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -4649,9 +4785,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
 
 [[package]]
 name = "winnow"
@@ -4664,18 +4800,18 @@ dependencies = [
 
 [[package]]
 name = "winnow"
-version = "0.6.1"
+version = "0.6.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d90f4e0f530c4c69f62b80d839e9ef3855edc9cba471a160c4d692deed62b401"
+checksum = "c3c52e9c97a68071b23e836c9380edae937f17b9c4667bd021973efc689f618d"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "winreg"
-version = "0.51.0"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "937f3df7948156640f46aacef17a70db0de5917bda9c92b0f751f3a955b588fc"
+checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5"
 dependencies = [
  "cfg-if",
  "windows-sys 0.48.0",
@@ -4683,14 +4819,14 @@ dependencies = [
 
 [[package]]
 name = "wl-clipboard-rs"
-version = "0.8.0"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57af79e973eadf08627115c73847392e6b766856ab8e3844a59245354b23d2fa"
+checksum = "12b41773911497b18ca8553c3daaf8ec9fe9819caf93d451d3055f69de028adb"
 dependencies = [
  "derive-new",
  "libc",
  "log",
- "nix",
+ "nix 0.28.0",
  "os_pipe",
  "tempfile",
  "thiserror",
@@ -4703,9 +4839,9 @@ dependencies = [
 
 [[package]]
 name = "wry"
-version = "0.24.7"
+version = "0.24.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ad85d0e067359e409fcb88903c3eac817c392e5d638258abfb3da5ad8ba6fc4"
+checksum = "00711278ed357350d44c749c286786ecac644e044e4da410d466212152383b45"
 dependencies = [
  "base64 0.13.1",
  "block",
@@ -4718,7 +4854,7 @@ dependencies = [
  "glib",
  "gtk",
  "html5ever",
- "http 0.2.11",
+ "http 0.2.12",
  "kuchikiki",
  "libc",
  "log",
@@ -4762,20 +4898,20 @@ dependencies = [
 
 [[package]]
 name = "x11rb"
-version = "0.13.0"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8f25ead8c7e4cba123243a6367da5d3990e0d3affa708ea19dce96356bd9f1a"
+checksum = "5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12"
 dependencies = [
  "gethostname",
- "rustix 0.38.31",
+ "rustix 0.38.34",
  "x11rb-protocol",
 ]
 
 [[package]]
 name = "x11rb-protocol"
-version = "0.13.0"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e63e71c4b8bd9ffec2c963173a4dc4cbde9ee96961d4fcb4429db9929b606c34"
+checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d"
 
 [[package]]
 name = "xattr"
@@ -4784,8 +4920,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
 dependencies = [
  "libc",
- "linux-raw-sys 0.4.13",
- "rustix 0.38.31",
+ "linux-raw-sys 0.4.14",
+ "rustix 0.38.34",
 ]
 
 [[package]]
@@ -4800,9 +4936,9 @@ dependencies = [
 
 [[package]]
 name = "zbus"
-version = "3.15.0"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c45d06ae3b0f9ba1fb2671268b975557d8f5a84bb5ec6e43964f87e763d8bca8"
+checksum = "675d170b632a6ad49804c8cf2105d7c31eddd3312555cffd4b740e08e97c25e6"
 dependencies = [
  "async-broadcast",
  "async-executor",
@@ -4822,7 +4958,7 @@ dependencies = [
  "futures-sink",
  "futures-util",
  "hex",
- "nix",
+ "nix 0.26.4",
  "once_cell",
  "ordered-stream",
  "rand 0.8.5",
@@ -4841,9 +4977,9 @@ dependencies = [
 
 [[package]]
 name = "zbus_macros"
-version = "3.15.0"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4a1ba45ed0ad344b85a2bb5a1fe9830aed23d67812ea39a586e7d0136439c7d"
+checksum = "7131497b0f887e8061b430c530240063d33bf9455fa34438f388a245da69e0a5"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2",
@@ -4855,9 +4991,9 @@ dependencies = [
 
 [[package]]
 name = "zbus_names"
-version = "2.6.0"
+version = "2.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb80bb776dbda6e23d705cf0123c3b95df99c4ebeaec6c2599d4a5419902b4a9"
+checksum = "437d738d3750bed6ca9b8d423ccc7a8eb284f6b1d6d4e225a0e4e6258d864c8d"
 dependencies = [
  "serde",
  "static_assertions",
@@ -4866,9 +5002,9 @@ dependencies = [
 
 [[package]]
 name = "zvariant"
-version = "3.15.0"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44b291bee0d960c53170780af148dca5fa260a63cdd24f1962fa82e03e53338c"
+checksum = "4eef2be88ba09b358d3b58aca6e41cd853631d44787f319a1383ca83424fb2db"
 dependencies = [
  "byteorder",
  "enumflags2",
@@ -4880,9 +5016,9 @@ dependencies = [
 
 [[package]]
 name = "zvariant_derive"
-version = "3.15.0"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd"
+checksum = "37c24dc0bed72f5f90d1f8bb5b07228cbf63b3c6e9f82d82559d4bae666e7ed9"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2",
diff --git a/pkgs/applications/system/coolercontrol/coolercontrol-gui.nix b/pkgs/applications/system/coolercontrol/coolercontrol-gui.nix
index c56f6bf427a64..fd916da9bbfe3 100644
--- a/pkgs/applications/system/coolercontrol/coolercontrol-gui.nix
+++ b/pkgs/applications/system/coolercontrol/coolercontrol-gui.nix
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage {
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "tauri-plugin-localhost-0.1.0" = "sha256-z+cxkNtaaV7m7Rt2mpdw0Rm0oDR4VZPKwtdhY5V/HlI=";
+      "tauri-plugin-localhost-0.1.0" = "sha256-Mf2/cnKotd751ZcSHfiSLNe2nxBfo4dMBdoCwQhe7yI=";
     };
   };
 
diff --git a/pkgs/applications/system/coolercontrol/coolercontrol-ui-data.nix b/pkgs/applications/system/coolercontrol/coolercontrol-ui-data.nix
index dddf459163371..da3e75a906c5b 100644
--- a/pkgs/applications/system/coolercontrol/coolercontrol-ui-data.nix
+++ b/pkgs/applications/system/coolercontrol/coolercontrol-ui-data.nix
@@ -11,7 +11,7 @@ buildNpmPackage {
   inherit version src;
   sourceRoot = "${src.name}/coolercontrol-ui";
 
-  npmDepsHash = "sha256-ZnuTtksB+HVYobL48S3RI8Ibe3pvDaF+YFAJJumiNxA=";
+  npmDepsHash = "sha256-gnJvNQCbqFfPfsqi008HW4kBTpxiVpN7eHyn9bU6if8=";
 
   postBuild = ''
     cp -r dist $out
diff --git a/pkgs/applications/system/coolercontrol/coolercontrold.nix b/pkgs/applications/system/coolercontrol/coolercontrold.nix
index 96ca8613de254..d1077a6e965e5 100644
--- a/pkgs/applications/system/coolercontrol/coolercontrold.nix
+++ b/pkgs/applications/system/coolercontrol/coolercontrold.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage {
   inherit version src;
   sourceRoot = "${src.name}/coolercontrold";
 
-  cargoHash = "sha256-qXZ/LXbKkLvnEQibGyMvkkYhz2eEGUHsYxVF3EbCpFc=";
+  cargoHash = "sha256-CuA8r54O33csmSY67/AOlQQqUniAWkgWSewIBdeq7X4=";
 
   postPatch = ''
     # copy the frontend static resources to a directory for embedding
diff --git a/pkgs/applications/system/coolercontrol/default.nix b/pkgs/applications/system/coolercontrol/default.nix
index 14375495f34a9..0922ecd5d9b34 100644
--- a/pkgs/applications/system/coolercontrol/default.nix
+++ b/pkgs/applications/system/coolercontrol/default.nix
@@ -4,13 +4,13 @@
 }:
 
 let
-  version = "1.2.2";
+  version = "1.3.0";
 
   src = fetchFromGitLab {
     owner = "coolercontrol";
     repo = "coolercontrol";
     rev = version;
-    hash = "sha256-c+MM8MAM8WSKSKECSfy/Iw7KWiWHxG75YShtv9d2Sjc=";
+    hash = "sha256-0NYDPJNX0kWIBHv+b4GuK6efgHCBNDu3rBXaQ/iSxFk=";
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/system/glances/default.nix b/pkgs/applications/system/glances/default.nix
index 323d7c5e81fd6..69a94efbbd8a4 100644
--- a/pkgs/applications/system/glances/default.nix
+++ b/pkgs/applications/system/glances/default.nix
@@ -1,22 +1,39 @@
-{ stdenv, buildPythonApplication, fetchFromGitHub, isPyPy, lib
-, defusedxml, future, ujson, packaging, psutil, setuptools
-# Optional dependencies:
-, bottle, pysnmp
-, hddtemp
-, netifaces # IP module
-, py-cpuinfo
+{
+  stdenv,
+  buildPythonApplication,
+  fetchFromGitHub,
+  isPyPy,
+  lib,
+  defusedxml,
+  future,
+  ujson,
+  packaging,
+  psutil,
+  setuptools,
+  pydantic,
+  # Optional dependencies:
+  fastapi,
+  jinja2,
+  orjson,
+  pysnmp,
+  hddtemp,
+  netifaces, # IP module
+  py-cpuinfo,
+  uvicorn,
+  requests,
+  prometheus-client,
 }:
 
 buildPythonApplication rec {
   pname = "glances";
-  version = "3.4.0.5";
+  version = "4.0.7";
   disabled = isPyPy;
 
   src = fetchFromGitHub {
     owner = "nicolargo";
     repo = "glances";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Ho4vcmTEVja7rkgLSfNkXvnpopYupRxPL1UVlnmdGCg=";
+    hash = "sha256-Vfsco8Wno57aPM7PtwCc/gI+6FnAG3H/t5OAUngDU5o=";
   };
 
   # On Darwin this package segfaults due to mismatch of pure and impure
@@ -24,7 +41,9 @@ buildPythonApplication rec {
   # scripts a workaround below is still required.
   # Relevant: https://github.com/NixOS/nixpkgs/issues/24693
   makeWrapperArgs = lib.optionals stdenv.isDarwin [
-    "--set" "DYLD_FRAMEWORK_PATH" "/System/Library/Frameworks"
+    "--set"
+    "DYLD_FRAMEWORK_PATH"
+    "/System/Library/Frameworks"
   ];
 
   doCheck = true;
@@ -33,7 +52,6 @@ buildPythonApplication rec {
   '';
 
   propagatedBuildInputs = [
-    bottle
     defusedxml
     future
     ujson
@@ -43,14 +61,25 @@ buildPythonApplication rec {
     pysnmp
     setuptools
     py-cpuinfo
+    pydantic
+    fastapi
+    uvicorn
+    requests
+    jinja2
+    orjson
+    prometheus-client
   ] ++ lib.optional stdenv.isLinux hddtemp;
 
-  meta = with lib; {
+  meta = {
     homepage = "https://nicolargo.github.io/glances/";
     description = "Cross-platform curses-based monitoring tool";
     mainProgram = "glances";
     changelog = "https://github.com/nicolargo/glances/blob/v${version}/NEWS.rst";
-    license = licenses.lgpl3Only;
-    maintainers = with maintainers; [ jonringer primeos koral ];
+    license = lib.licenses.lgpl3Only;
+    maintainers = with lib.maintainers; [
+      jonringer
+      primeos
+      koral
+    ];
   };
 }
diff --git a/pkgs/applications/system/supergfxctl/default.nix b/pkgs/applications/system/supergfxctl/default.nix
index 4180699155e68..3fd0182e66a22 100644
--- a/pkgs/applications/system/supergfxctl/default.nix
+++ b/pkgs/applications/system/supergfxctl/default.nix
@@ -36,7 +36,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A GPU switching utility, mostly for ASUS laptops";
+    description = "GPU switching utility, mostly for ASUS laptops";
     homepage = "https://gitlab.com/asus-linux/supergfxctl";
     license = licenses.mpl20;
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/system/zxfer/default.nix b/pkgs/applications/system/zxfer/default.nix
index 855be7bc3be08..802688cad5837 100644
--- a/pkgs/applications/system/zxfer/default.nix
+++ b/pkgs/applications/system/zxfer/default.nix
@@ -77,7 +77,7 @@ resholve.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A popular script for managing ZFS snapshot replication";
+    description = "Popular script for managing ZFS snapshot replication";
     homepage = "https://github.com/allanjude/zxfer";
     changelog = "https://github.com/allanjude/zxfer/releases/tag/v${version}";
     license = licenses.bsd2;
diff --git a/pkgs/applications/terminal-emulators/alacritty/default.nix b/pkgs/applications/terminal-emulators/alacritty/default.nix
index 16f46cb0f8ada..58e527cc50a98 100644
--- a/pkgs/applications/terminal-emulators/alacritty/default.nix
+++ b/pkgs/applications/terminal-emulators/alacritty/default.nix
@@ -131,7 +131,7 @@ rustPlatform.buildRustPackage rec {
   passthru.tests.test = nixosTests.terminal-emulators.alacritty;
 
   meta = with lib; {
-    description = "A cross-platform, GPU-accelerated terminal emulator";
+    description = "Cross-platform, GPU-accelerated terminal emulator";
     homepage = "https://github.com/alacritty/alacritty";
     license = licenses.asl20;
     mainProgram = "alacritty";
diff --git a/pkgs/applications/terminal-emulators/darktile/default.nix b/pkgs/applications/terminal-emulators/darktile/default.nix
index 2aaa68801cb7a..4336c565afa1b 100644
--- a/pkgs/applications/terminal-emulators/darktile/default.nix
+++ b/pkgs/applications/terminal-emulators/darktile/default.nix
@@ -43,7 +43,7 @@ buildGoModule rec {
   passthru.tests.test = nixosTests.terminal-emulators.darktile;
 
   meta = with lib; {
-    description = "A GPU rendered terminal emulator designed for tiling window managers";
+    description = "GPU rendered terminal emulator designed for tiling window managers";
     homepage = "https://github.com/liamg/darktile";
     downloadPage = "https://github.com/liamg/darktile/releases";
     changelog = "https://github.com/liamg/darktile/releases/tag/v${version}";
diff --git a/pkgs/applications/terminal-emulators/dterm/default.nix b/pkgs/applications/terminal-emulators/dterm/default.nix
index b9ab08e9bbbc3..d77cf6e4d2c9c 100644
--- a/pkgs/applications/terminal-emulators/dterm/default.nix
+++ b/pkgs/applications/terminal-emulators/dterm/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.knossos.net.nz/resources/free-software/dterm/";
-    description = "A simple terminal program";
+    description = "Simple terminal program";
     longDescription = ''
       dterm is a simple terminal emulator, which doesn’t actually emulate any
       particular terminal. Mainly, it is designed for use with xterm and
diff --git a/pkgs/applications/terminal-emulators/foot/default.nix b/pkgs/applications/terminal-emulators/foot/default.nix
index 2ab5829b37582..0af07518001a3 100644
--- a/pkgs/applications/terminal-emulators/foot/default.nix
+++ b/pkgs/applications/terminal-emulators/foot/default.nix
@@ -207,7 +207,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://codeberg.org/dnkl/foot/";
     changelog = "https://codeberg.org/dnkl/foot/releases/tag/${version}";
-    description = "A fast, lightweight and minimalistic Wayland terminal emulator";
+    description = "Fast, lightweight and minimalistic Wayland terminal emulator";
     license = licenses.mit;
     maintainers = [ maintainers.sternenseemann maintainers.abbe ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/terminal-emulators/hyper/default.nix b/pkgs/applications/terminal-emulators/hyper/default.nix
index 0c4d0b9d99a20..8fcbbe0666ef4 100644
--- a/pkgs/applications/terminal-emulators/hyper/default.nix
+++ b/pkgs/applications/terminal-emulators/hyper/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
 
   dontPatchELF = true;
   meta = with lib; {
-    description = "A terminal built on web technologies";
+    description = "Terminal built on web technologies";
     homepage    = "https://hyper.is/";
     maintainers = with maintainers; [ puffnfresh fabiangd ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/applications/terminal-emulators/iterm2/default.nix b/pkgs/applications/terminal-emulators/iterm2/default.nix
index e81648d23144a..f88c3c6753794 100644
--- a/pkgs/applications/terminal-emulators/iterm2/default.nix
+++ b/pkgs/applications/terminal-emulators/iterm2/default.nix
@@ -35,7 +35,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A replacement for Terminal and the successor to iTerm";
+    description = "Replacement for Terminal and the successor to iTerm";
     homepage = "https://www.iterm2.com/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ steinybot tricktron ];
diff --git a/pkgs/applications/terminal-emulators/kitty/default.nix b/pkgs/applications/terminal-emulators/kitty/default.nix
index 5e31ac572cab3..03cfa1bc1dc58 100644
--- a/pkgs/applications/terminal-emulators/kitty/default.nix
+++ b/pkgs/applications/terminal-emulators/kitty/default.nix
@@ -31,20 +31,20 @@
 with python3Packages;
 buildPythonApplication rec {
   pname = "kitty";
-  version = "0.34.1";
+  version = "0.35.1";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "kovidgoyal";
     repo = "kitty";
     rev = "refs/tags/v${version}";
-    hash = "sha256-r7KZcSqREILMp0F9ajeHS5sglq/o88h2t+4BgbABjOY=";
+    hash = "sha256-Hp8phZIVvg1oH6ajSmpcQ0uDXRzMQjVBIRYqpgro/24=";
   };
 
   goModules = (buildGo122Module {
     pname = "kitty-go-modules";
     inherit src version;
-    vendorHash = "sha256-HNE0MWjL0PH20Glzb0GV6+lQu/Lslx8k/+YvlLHbHww=";
+    vendorHash = "sha256-mpyotGzv8UU9pg/3UNZBx0Rkm5kzMzIlDSHuhtNALfw=";
   }).goModules;
 
   buildInputs = [
@@ -245,7 +245,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/kovidgoyal/kitty";
-    description = "A modern, hackable, featureful, OpenGL based terminal emulator";
+    description = "Modern, hackable, featureful, OpenGL based terminal emulator";
     license = licenses.gpl3Only;
     changelog = [
       "https://sw.kovidgoyal.net/kitty/changelog/"
diff --git a/pkgs/applications/terminal-emulators/kitty/themes.nix b/pkgs/applications/terminal-emulators/kitty/themes.nix
index facfa34cf140f..47ac58652a152 100644
--- a/pkgs/applications/terminal-emulators/kitty/themes.nix
+++ b/pkgs/applications/terminal-emulators/kitty/themes.nix
@@ -1,17 +1,18 @@
 { lib
 , stdenvNoCC
 , fetchFromGitHub
+, unstableGitUpdater
 }:
 
 stdenvNoCC.mkDerivation {
   pname = "kitty-themes";
-  version = "unstable-2024-04-23";
+  version = "0-unstable-2024-06-12";
 
   src = fetchFromGitHub {
     owner = "kovidgoyal";
     repo = "kitty-themes";
-    rev = "8026ce6ec70a0a67fedd02319e6fa39d36bbc1d1";
-    hash = "sha256-RN4YTcsVRg+3c+SEtKkJC8EvuNiiToduASMy/Rr+ZwA=";
+    rev = "9589f0dffc817d6e8b86a5b2dc56d7c3db201a9b";
+    hash = "sha256-8bZkYFb/HOIg2Uk7b/Apn30AAlRF0ztLh27AUlHW6Wk=";
   };
 
   dontConfigure = true;
@@ -26,6 +27,10 @@ stdenvNoCC.mkDerivation {
     runHook postInstall
   '';
 
+  passthru.updateScript = unstableGitUpdater {
+    hardcodeZeroVersion = true;
+  };
+
   meta = {
     homepage = "https://github.com/kovidgoyal/kitty-themes";
     description = "Themes for the kitty terminal emulator";
diff --git a/pkgs/applications/terminal-emulators/lxterminal/default.nix b/pkgs/applications/terminal-emulators/lxterminal/default.nix
index 76f375e43f62e..0dd83caee86e4 100644
--- a/pkgs/applications/terminal-emulators/lxterminal/default.nix
+++ b/pkgs/applications/terminal-emulators/lxterminal/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   passthru.tests.test = nixosTests.terminal-emulators.lxterminal;
 
   meta = {
-    description = "The standard terminal emulator of LXDE";
+    description = "Standard terminal emulator of LXDE";
     longDescription = ''
       LXTerminal is the standard terminal emulator of LXDE. The terminal is a
       desktop-independent VTE-based terminal emulator for LXDE without any
diff --git a/pkgs/applications/terminal-emulators/microcom/default.nix b/pkgs/applications/terminal-emulators/microcom/default.nix
index ef9f09a606fa3..8f9639dcfcd48 100644
--- a/pkgs/applications/terminal-emulators/microcom/default.nix
+++ b/pkgs/applications/terminal-emulators/microcom/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ readline ];
 
   meta = with lib; {
-    description = "A minimalistic terminal program for communicating
+    description = "Minimalistic terminal program for communicating
     with devices over a serial connection";
     inherit (src.meta) homepage;
     license = licenses.gpl2;
diff --git a/pkgs/applications/terminal-emulators/rio/default.nix b/pkgs/applications/terminal-emulators/rio/default.nix
index a1f89f6a4e0a9..6b68e6bdc0f5b 100644
--- a/pkgs/applications/terminal-emulators/rio/default.nix
+++ b/pkgs/applications/terminal-emulators/rio/default.nix
@@ -51,16 +51,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "rio";
-  version = "0.0.37";
+  version = "0.0.39";
 
   src = fetchFromGitHub {
     owner = "raphamorim";
     repo = "rio";
     rev = "v${version}";
-    hash = "sha256-rY5nuZcMbK9PYxfGYdVheOOVIC4I/11EOWpNmG6gH9A=";
+    hash = "sha256-pnU2wxgopHMWgJ7JGdO2P/MCfxqCY7MTEE39qtD0XKw=";
   };
 
-  cargoHash = "sha256-tHcUMxe9HwTzm2oDwaTyuh+UZUwW64xPX/cftxqZoz8=";
+  cargoHash = "sha256-GwI2zHX1YcR4pC+qtkDoxx2U+zipbqqxsCI8/XNg2BU=";
 
   nativeBuildInputs = [
     ncurses
@@ -111,7 +111,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = {
-    description = "A hardware-accelerated GPU terminal emulator powered by WebGPU";
+    description = "Hardware-accelerated GPU terminal emulator powered by WebGPU";
     homepage = "https://raphamorim.io/rio";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ tornax otavio oluceps ];
diff --git a/pkgs/applications/terminal-emulators/sakura/default.nix b/pkgs/applications/terminal-emulators/sakura/default.nix
index bbf435fd4ff73..d58eceae1654c 100644
--- a/pkgs/applications/terminal-emulators/sakura/default.nix
+++ b/pkgs/applications/terminal-emulators/sakura/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://www.pleyades.net/david/projects/sakura";
-    description = "A terminal emulator based on GTK and VTE";
+    description = "Terminal emulator based on GTK and VTE";
     longDescription = ''
       sakura is a terminal emulator based on GTK and VTE. It's a terminal
       emulator with few dependencies, so you don't need a full GNOME desktop
diff --git a/pkgs/applications/terminal-emulators/st/siduck76-st.nix b/pkgs/applications/terminal-emulators/st/siduck76-st.nix
index a6753a105c6d1..cb4a9d77b5fd5 100644
--- a/pkgs/applications/terminal-emulators/st/siduck76-st.nix
+++ b/pkgs/applications/terminal-emulators/st/siduck76-st.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/siduck76/st";
-    description = "A fork of st with many add-ons";
+    description = "Fork of st with many add-ons";
     license = licenses.mit;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/terminal-emulators/terminator/default.nix b/pkgs/applications/terminal-emulators/terminator/default.nix
index 175d3766594b7..aedbb761a8cad 100644
--- a/pkgs/applications/terminal-emulators/terminator/default.nix
+++ b/pkgs/applications/terminal-emulators/terminator/default.nix
@@ -15,13 +15,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "terminator";
-  version = "2.1.3";
+  version = "2.1.4";
 
   src = fetchFromGitHub {
     owner = "gnome-terminator";
     repo = "terminator";
-    rev = "v${version}";
-    hash = "sha256-Kx0z9oheA7Ihgsyg6zgPcGFMrqlXoIpQcL/dMqPB2qA=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-0468d/sAM/UOiaSspwWaOGogoE8/Idth0G4CMCXWFFo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/terminal-emulators/termite/default.nix b/pkgs/applications/terminal-emulators/termite/default.nix
index a47423390ba21..4acc8263ce869 100644
--- a/pkgs/applications/terminal-emulators/termite/default.nix
+++ b/pkgs/applications/terminal-emulators/termite/default.nix
@@ -71,7 +71,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple VTE-based terminal";
+    description = "Simple VTE-based terminal";
     license = licenses.lgpl2Plus;
     homepage = "https://github.com/thestinger/termite/";
     maintainers = with maintainers; [ koral ];
diff --git a/pkgs/applications/terminal-emulators/wayst/default.nix b/pkgs/applications/terminal-emulators/wayst/default.nix
index 63736ac35e350..e1522450a1dc4 100644
--- a/pkgs/applications/terminal-emulators/wayst/default.nix
+++ b/pkgs/applications/terminal-emulators/wayst/default.nix
@@ -78,7 +78,7 @@ stdenv.mkDerivation rec {
   passthru.tests.test = nixosTests.terminal-emulators.wayst;
 
   meta = with lib; {
-    description = "A simple terminal emulator";
+    description = "Simple terminal emulator";
     mainProgram = "wayst";
     homepage = "https://github.com/91861/wayst";
     license = licenses.mit;
diff --git a/pkgs/applications/version-management/bitbucket-server-cli/default.nix b/pkgs/applications/version-management/bitbucket-server-cli/default.nix
index ecbe064826c5f..6c38250c2753a 100644
--- a/pkgs/applications/version-management/bitbucket-server-cli/default.nix
+++ b/pkgs/applications/version-management/bitbucket-server-cli/default.nix
@@ -12,7 +12,7 @@ bundlerEnv rec {
   passthru.updateScript = bundlerUpdateScript "bitbucket-server-cli";
 
   meta = with lib; {
-    description = "A command line interface to interact with BitBucket Server (formerly Atlassian Stash)";
+    description = "Command line interface to interact with BitBucket Server (formerly Atlassian Stash)";
     homepage    = "https://bitbucket.org/atlassian/bitbucket-server-cli";
     license     = licenses.mit;
     maintainers = with maintainers; [ jgertm nicknovitski ];
diff --git a/pkgs/applications/version-management/commit-formatter/default.nix b/pkgs/applications/version-management/commit-formatter/default.nix
index 03eead59a6ba3..3a3fc7b28127e 100644
--- a/pkgs/applications/version-management/commit-formatter/default.nix
+++ b/pkgs/applications/version-management/commit-formatter/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "AeHQCoP1HOftlOt/Yala3AXocMlwwIXIO2i1AsFSvGQ=";
 
   meta = with lib; {
-    description = "A CLI tool to help you write git commit";
+    description = "CLI tool to help you write git commit";
     homepage = "https://github.com/Eliot00/commit-formatter";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ elliot ];
diff --git a/pkgs/applications/version-management/commitizen/default.nix b/pkgs/applications/version-management/commitizen/default.nix
index d9dfb5af12bc8..f0cfc626c4fa7 100644
--- a/pkgs/applications/version-management/commitizen/default.nix
+++ b/pkgs/applications/version-management/commitizen/default.nix
@@ -11,7 +11,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "commitizen";
-  version = "3.26.0";
+  version = "3.27.0";
   format = "pyproject";
 
   disabled = python3.pythonOlder "3.8";
@@ -20,7 +20,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "commitizen-tools";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-tj+zH94IiFqkmkIqyNmgQgQNjvqWgCviLzfGrrCHX1k=";
+    hash = "sha256-Bfz9MBpFsbAcsyQ7CYyObE14q7UE9ZyeY1GVFb9maKk=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/applications/version-management/cvs2svn/default.nix b/pkgs/applications/version-management/cvs2svn/default.nix
index fe429fdb7afc9..5ddb9a0da84b3 100644
--- a/pkgs/applications/version-management/cvs2svn/default.nix
+++ b/pkgs/applications/version-management/cvs2svn/default.nix
@@ -31,7 +31,7 @@ pypy2Packages.buildPythonApplication  rec {
   '';
 
   meta = with lib; {
-    description = "A tool to convert CVS repositories to Subversion repositories";
+    description = "Tool to convert CVS repositories to Subversion repositories";
     homepage = "https://github.com/mhagger/cvs2svn";
     maintainers = with maintainers; [ makefu viraptor ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/version-management/cvsps/default.nix b/pkgs/applications/version-management/cvsps/default.nix
index ebee69ebb3cdd..85c092ffe7a61 100644
--- a/pkgs/applications/version-management/cvsps/default.nix
+++ b/pkgs/applications/version-management/cvsps/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
   installFlags = [ "prefix=$(out)" ];
 
   meta = {
-    description = "A tool to generate CVS patch set information";
+    description = "Tool to generate CVS patch set information";
     longDescription = ''
       CVSps is a program for generating `patchset' information from a
       CVS repository.  A patchset in this case is defined as a set of
diff --git a/pkgs/applications/version-management/cvsq/default.nix b/pkgs/applications/version-management/cvsq/default.nix
index 89fe6e89f482c..09e687af7ba39 100644
--- a/pkgs/applications/version-management/cvsq/default.nix
+++ b/pkgs/applications/version-management/cvsq/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A collection of tools to work locally with CVS";
+    description = "Collection of tools to work locally with CVS";
     longDescription = ''
       cvsq is a collection of tools to work locally with CVS.
 
diff --git a/pkgs/applications/version-management/cz-cli/default.nix b/pkgs/applications/version-management/cz-cli/default.nix
index d87b6d48c221f..e268b6d164f83 100644
--- a/pkgs/applications/version-management/cz-cli/default.nix
+++ b/pkgs/applications/version-management/cz-cli/default.nix
@@ -17,7 +17,7 @@ buildNpmPackage rec {
   npmDepsHash = "sha256-zQ0T/1khnn+CXm/3yc9nANL0ROEEE03U5fV57btEmPg=";
 
   meta = with lib; {
-    description = "The commitizen command line utility";
+    description = "Commitizen command line utility";
     homepage = "https://commitizen.github.io/cz-cli";
     changelog = "https://github.com/commitizen/cz-cli/releases/tag/v${version}";
     maintainers = with maintainers; [ freezeboy natsukium ];
diff --git a/pkgs/applications/version-management/danger-gitlab/default.nix b/pkgs/applications/version-management/danger-gitlab/default.nix
index 654ad2c82d560..8ee557bd295a3 100644
--- a/pkgs/applications/version-management/danger-gitlab/default.nix
+++ b/pkgs/applications/version-management/danger-gitlab/default.nix
@@ -6,7 +6,7 @@ bundlerApp {
   exes = [ "danger" ];
 
   meta = with lib; {
-    description = "A gem that exists to ensure all dependencies are set up for Danger with GitLab";
+    description = "Gem that exists to ensure all dependencies are set up for Danger with GitLab";
     homepage = "https://github.com/danger/danger-gitlab-gem";
     license = licenses.mit;
     maintainers = teams.serokell.members;
diff --git a/pkgs/applications/version-management/deepgit/default.nix b/pkgs/applications/version-management/deepgit/default.nix
index c5744d073ce00..feffc31b759b1 100644
--- a/pkgs/applications/version-management/deepgit/default.nix
+++ b/pkgs/applications/version-management/deepgit/default.nix
@@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A tool to investigate the history of source code";
+    description = "Tool to investigate the history of source code";
     homepage = "https://www.syntevo.com/deepgit";
     changelog = "https://www.syntevo.com/deepgit/changelog.txt";
     license = licenses.unfree;
diff --git a/pkgs/applications/version-management/delta/default.nix b/pkgs/applications/version-management/delta/default.nix
index c669eb0be1f2c..40f474f2c4c1d 100644
--- a/pkgs/applications/version-management/delta/default.nix
+++ b/pkgs/applications/version-management/delta/default.nix
@@ -55,7 +55,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/dandavison/delta";
-    description = "A syntax-highlighting pager for git";
+    description = "Syntax-highlighting pager for git";
     changelog = "https://github.com/dandavison/delta/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ zowoq SuperSandro2000 figsoda ];
diff --git a/pkgs/applications/version-management/gerrit/default.nix b/pkgs/applications/version-management/gerrit/default.nix
index 41179dfd0bcda..eed79f28b39f7 100644
--- a/pkgs/applications/version-management/gerrit/default.nix
+++ b/pkgs/applications/version-management/gerrit/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gerrit";
-  version = "3.9.4";
+  version = "3.10.0";
 
   src = fetchurl {
     url = "https://gerrit-releases.storage.googleapis.com/gerrit-${version}.war";
-    hash = "sha256-pjrWXfae1momJRTfdIPalsLynAGwqp1VtX9M9uqzJwM=";
+    hash = "sha256-mlaXCRQlqg2uwzm2/Vi15K5D6lmUUscfZQk/lW1YR+s=";
   };
 
   buildCommand = ''
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.gerritcodereview.com/index.md";
     license = licenses.asl20;
-    description = "A web based code review and repository management for the git version control system";
+    description = "Web based code review and repository management for the git version control system";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     maintainers = with maintainers; [ flokli zimbatm ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/version-management/gfold/default.nix b/pkgs/applications/version-management/gfold/default.nix
index b60c38fa1d301..fb8cccdda1bde 100644
--- a/pkgs/applications/version-management/gfold/default.nix
+++ b/pkgs/applications/version-management/gfold/default.nix
@@ -11,7 +11,7 @@
 
 let
   pname = "gfold";
-  version = "4.4.1";
+  version = "4.5.0";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -20,10 +20,10 @@ rustPlatform.buildRustPackage {
     owner = "nickgerace";
     repo = pname;
     rev = version;
-    sha256 = "sha256-KKuWPitm7oD2mXPSu2rbOyzwJ9JJ23LBQIIkkPHm1w4=";
+    sha256 = "sha256-7wTU+yVp/GO1H1MbgZKO0OwqSC2jbHO0lU8aa0tHLTY=";
   };
 
-  cargoHash = "sha256-wDUOYK9e0i600UnJ0w0FPI2GhTa/QTq/2+ICiDWrmEU=";
+  cargoHash = "sha256-idzw5dfCCvujvYr7DG0oOzQUIcbACtiIZLoA4MEClzY=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     libiconv
diff --git a/pkgs/applications/version-management/gh/default.nix b/pkgs/applications/version-management/gh/default.nix
index 721038bef27f2..22a7653c6a647 100644
--- a/pkgs/applications/version-management/gh/default.nix
+++ b/pkgs/applications/version-management/gh/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gh";
-  version = "2.49.2";
+  version = "2.51.0";
 
   src = fetchFromGitHub {
     owner = "cli";
     repo = "cli";
     rev = "v${version}";
-    hash = "sha256-RevdHBF/7etEstUhsTO9KVK45KTiJnhAhAZAamuEUwk=";
+    hash = "sha256-xd7IZSOgukEyngxHwsOrHW3ifEMpm1OfXoW3/fvVq3I=";
   };
 
-  vendorHash = "sha256-9Rv1zPrtaxd00lbA3WrPIzIZ9IiKqZa/ppn37jqMP4M=";
+  vendorHash = "sha256-0NKfDSDV/hyQfgkhHe0E9xu7A9hz4JAT5uF/Q2ipEwg=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/version-management/git-annex-remote-dbx/default.nix b/pkgs/applications/version-management/git-annex-remote-dbx/default.nix
index ed48250114904..041972e146b7b 100644
--- a/pkgs/applications/version-management/git-annex-remote-dbx/default.nix
+++ b/pkgs/applications/version-management/git-annex-remote-dbx/default.nix
@@ -18,7 +18,7 @@ buildPythonApplication rec {
   propagatedBuildInputs = [ dropbox annexremote humanfriendly ];
 
   meta = with lib; {
-    description = "A git-annex special remote for Dropbox";
+    description = "Git-annex special remote for Dropbox";
     homepage = "https://pypi.org/project/git-annex-remote-dbx/";
     license = licenses.mit;
     mainProgram = "git-annex-remote-dbx";
diff --git a/pkgs/applications/version-management/git-annex-remote-googledrive/default.nix b/pkgs/applications/version-management/git-annex-remote-googledrive/default.nix
index 10eec961104d8..72c0e48275ca4 100644
--- a/pkgs/applications/version-management/git-annex-remote-googledrive/default.nix
+++ b/pkgs/applications/version-management/git-annex-remote-googledrive/default.nix
@@ -35,7 +35,7 @@ buildPythonApplication rec {
   ];
 
   meta = with lib; {
-    description = "A git-annex special remote for Google Drive";
+    description = "Git-annex special remote for Google Drive";
     homepage = "https://pypi.org/project/git-annex-remote-googledrive/";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ gravndal ];
diff --git a/pkgs/applications/version-management/git-backup/default.nix b/pkgs/applications/version-management/git-backup/default.nix
index 5f582ca64c30d..ac755e8866626 100644
--- a/pkgs/applications/version-management/git-backup/default.nix
+++ b/pkgs/applications/version-management/git-backup/default.nix
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/jsdw/git-backup";
-    description = "A tool to help you backup your git repositories from services like GitHub";
+    description = "Tool to help you backup your git repositories from services like GitHub";
     license = licenses.mit;
     maintainers = with maintainers; [ cafkafk ];
     mainProgram = "git-backup";
diff --git a/pkgs/applications/version-management/git-bars/default.nix b/pkgs/applications/version-management/git-bars/default.nix
index d9acc9d46fb9c..79f103468dd81 100644
--- a/pkgs/applications/version-management/git-bars/default.nix
+++ b/pkgs/applications/version-management/git-bars/default.nix
@@ -18,7 +18,7 @@ python3Packages.buildPythonApplication {
 
   meta = with lib; {
     homepage = "https://github.com/knadh/git-bars";
-    description = "A utility for visualising git commit activity as bars on the terminal";
+    description = "Utility for visualising git commit activity as bars on the terminal";
     license = licenses.mit;
     maintainers = [ maintainers.matthiasbeyer ];
     mainProgram = "git-bars";
diff --git a/pkgs/applications/version-management/git-branchless/default.nix b/pkgs/applications/version-management/git-branchless/default.nix
index fd6213269729f..44047945728a9 100644
--- a/pkgs/applications/version-management/git-branchless/default.nix
+++ b/pkgs/applications/version-management/git-branchless/default.nix
@@ -27,12 +27,14 @@ rustPlatform.buildRustPackage rec {
   patches = [
     # Fix tests with Git 2.44.0+
     (fetchpatch {
-      url = "https://github.com/arxanas/git-branchless/pull/1245.patch";
+      name = "1245.patch"; # https://github.com/arxanas/git-branchless/pull/1245
+      url = "https://github.com/arxanas/git-branchless/commit/c8436aed3d616409b4d6fb1eedb383077f435497.patch";
       hash = "sha256-gBm0A478Uhg9IQVLQppvIeTa8s1yHUMddxiUbpHUvGw=";
     })
     # Fix tests with Git 2.44.0+
     (fetchpatch {
-      url = "https://github.com/arxanas/git-branchless/pull/1161.patch";
+      name = "1161.patch"; # https://github.com/arxanas/git-branchless/pull/1161
+      url = "https://github.com/arxanas/git-branchless/commit/6e1f26900a0dd60d10d9aa3552cab9181fa7be03.patch";
       hash = "sha256-KHobEIXhlDar8CvIVUi4I695jcJZXgGRhU86b99x86Y=";
     })
   ];
@@ -67,7 +69,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A suite of tools to help you visualize, navigate, manipulate, and repair your commit history";
+    description = "Suite of tools to help you visualize, navigate, manipulate, and repair your commit history";
     homepage = "https://github.com/arxanas/git-branchless";
     license = licenses.gpl2Only;
     mainProgram = "git-branchless";
diff --git a/pkgs/applications/version-management/git-cache/default.nix b/pkgs/applications/version-management/git-cache/default.nix
index 7b31fca2b995f..a099f92f504db 100644
--- a/pkgs/applications/version-management/git-cache/default.nix
+++ b/pkgs/applications/version-management/git-cache/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://github.com/Seb35/git-cache";
     license = licenses.wtfpl;
-    description = "A program to add and manage a system-wide or user-wide cache for remote git repositories";
+    description = "Program to add and manage a system-wide or user-wide cache for remote git repositories";
     mainProgram = "git-cache";
     platforms = platforms.unix;
     maintainers = with maintainers; [ maxhearnden ];
diff --git a/pkgs/applications/version-management/git-cliff/default.nix b/pkgs/applications/version-management/git-cliff/default.nix
index b8b5d480e39b5..0f6db5806599c 100644
--- a/pkgs/applications/version-management/git-cliff/default.nix
+++ b/pkgs/applications/version-management/git-cliff/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "git-cliff";
-  version = "2.2.2";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     owner = "orhun";
     repo = "git-cliff";
     rev = "v${version}";
-    hash = "sha256-e7DeGcavBgjnH2QY/nqRThYHKzhmbNxYPoOmMF+0I3s=";
+    hash = "sha256-iTjfFl/bTvyElCIpTj7dsVu3azUSwNTryyssHdCaODg=";
   };
 
-  cargoHash = "sha256-MaSqQD3SRuqiOj5hTHAMyTDj2xgboA5QIZEH7BAxjF4=";
+  cargoHash = "sha256-/Elb/hsk96E7D6TrLgbhD5cQhsXpDigNm5p9FpKGEUQ=";
 
   # attempts to run the program on .git in src which is not deterministic
   doCheck = false;
@@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A highly customizable Changelog Generator that follows Conventional Commit specifications";
+    description = "Highly customizable Changelog Generator that follows Conventional Commit specifications";
     homepage = "https://github.com/orhun/git-cliff";
     changelog = "https://github.com/orhun/git-cliff/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/version-management/git-codeowners/default.nix b/pkgs/applications/version-management/git-codeowners/default.nix
index 90e0482675ae0..7ca69ccc3d4b7 100644
--- a/pkgs/applications/version-management/git-codeowners/default.nix
+++ b/pkgs/applications/version-management/git-codeowners/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/softprops/git-codeowners";
-    description = "a git extension to work with CODEOWNERS files";
+    description = "Git extension to work with CODEOWNERS files";
     license = licenses.mit;
     maintainers = with maintainers; [ zimbatm ];
     mainProgram = "git-codeowners";
diff --git a/pkgs/applications/version-management/git-cola/default.nix b/pkgs/applications/version-management/git-cola/default.nix
index 38c094ad0e20c..f51b9995746a8 100644
--- a/pkgs/applications/version-management/git-cola/default.nix
+++ b/pkgs/applications/version-management/git-cola/default.nix
@@ -61,7 +61,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/git-cola/git-cola";
-    description = "A sleek and powerful Git GUI";
+    description = "Sleek and powerful Git GUI";
     license = licenses.gpl2;
     maintainers = [ maintainers.bobvanderlinden ];
   };
diff --git a/pkgs/applications/version-management/git-credential-manager/default.nix b/pkgs/applications/version-management/git-credential-manager/default.nix
index 54de6b1bcf3a4..b749ce8c6e312 100644
--- a/pkgs/applications/version-management/git-credential-manager/default.nix
+++ b/pkgs/applications/version-management/git-credential-manager/default.nix
@@ -51,7 +51,7 @@ buildDotnetModule rec {
   };
 
   meta = with lib; {
-    description = "A secure, cross-platform Git credential storage with authentication to GitHub, Azure Repos, and other popular Git hosting services";
+    description = "Secure, cross-platform Git credential storage with authentication to GitHub, Azure Repos, and other popular Git hosting services";
     homepage = "https://github.com/git-ecosystem/git-credential-manager";
     license = with licenses; [ mit ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/version-management/git-credential-oauth/default.nix b/pkgs/applications/version-management/git-credential-oauth/default.nix
index edc517b54d59e..62489b6ee2498 100644
--- a/pkgs/applications/version-management/git-credential-oauth/default.nix
+++ b/pkgs/applications/version-management/git-credential-oauth/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "git-credential-oauth";
-  version = "0.11.3";
+  version = "0.12.1";
 
   src = fetchFromGitHub {
     owner = "hickford";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-tJJxCtCNuPtoQYABEViS1G6aHrMTLn+r3hlTTkaJvCg=";
+    hash = "sha256-iDnTjrVDH8qBYkvNjLHYmTaK8vScluDM4+W/5Rdo+Xc=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/applications/version-management/git-delete-merged-branches/default.nix b/pkgs/applications/version-management/git-delete-merged-branches/default.nix
index 08d93bcf69e7d..423dc72d24ffd 100644
--- a/pkgs/applications/version-management/git-delete-merged-branches/default.nix
+++ b/pkgs/applications/version-management/git-delete-merged-branches/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "git-delete-merged-branches";
-  version = "7.4.0";
+  version = "7.4.1";
 
   src = fetchFromGitHub {
     owner = "hartwork";
     repo = pname;
     rev = "refs/tags/${version}";
-    sha256 = "sha256-17uFV3pjklqVW5ofeR54mgMh+q3uUCdqZG00Cc+4zFQ=";
+    sha256 = "sha256-1CUwac2TPU5s1uLS1zPvtXZEGCWYwm1y935jqbI173Q=";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/applications/version-management/git-fame/Gemfile.lock b/pkgs/applications/version-management/git-fame/Gemfile.lock
index 12c58d72103ac..23d6db943e494 100644
--- a/pkgs/applications/version-management/git-fame/Gemfile.lock
+++ b/pkgs/applications/version-management/git-fame/Gemfile.lock
@@ -1,20 +1,149 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    git_fame (2.5.2)
-      hirb (~> 0.7.3)
-      memoist (~> 0.14.0)
-      method_profiler (~> 2.0.1)
-      progressbar (~> 0.21.0)
-      scrub_rb (~> 1.0.1)
-      trollop (~> 2.1.2)
-    hirb (0.7.3)
-    memoist (0.14.0)
-    method_profiler (2.0.1)
-      hirb (>= 0.6.0)
-    progressbar (0.21.0)
-    scrub_rb (1.0.1)
-    trollop (2.1.2)
+    git_fame (3.1.1)
+      activesupport (~> 7.0)
+      dry-initializer (~> 3.0)
+      dry-struct (~> 1.0)
+      dry-types (~> 1.0)
+      neatjson (~> 0.9)
+      rugged (~> 1.0)
+      tty-box (~> 0.5)
+      tty-option (~> 0.2)
+      tty-screen (~> 0.5)
+      tty-spinner (~> 0.9)
+      tty-table (~> 0.9, <= 0.10.0)
+      zeitwerk (~> 2.0)
+    activesupport (7.0.6)
+      concurrent-ruby (~> 1.0, >= 1.0.2)
+      i18n (>= 1.6, < 2)
+      minitest (>= 5.1)
+      tzinfo (~> 2.0)
+    ast (2.4.2)
+    coderay (1.1.3)
+    concurrent-ruby (1.2.2)
+    diff-lcs (1.5.0)
+    docile (1.4.0)
+    dry-core (1.0.0)
+      concurrent-ruby (~> 1.0)
+      zeitwerk (~> 2.6)
+    dry-inflector (1.0.0)
+    dry-initializer (3.1.1)
+    dry-logic (1.5.0)
+      concurrent-ruby (~> 1.0)
+      dry-core (~> 1.0, < 2)
+      zeitwerk (~> 2.6)
+    dry-struct (1.6.0)
+      dry-core (~> 1.0, < 2)
+      dry-types (>= 1.7, < 2)
+      ice_nine (~> 0.11)
+      zeitwerk (~> 2.6)
+    dry-types (1.7.1)
+      concurrent-ruby (~> 1.0)
+      dry-core (~> 1.0)
+      dry-inflector (~> 1.0)
+      dry-logic (~> 1.4)
+      zeitwerk (~> 2.6)
+    equatable (0.5.0)
+    factory_bot (6.2.1)
+      activesupport (>= 5.0.0)
+    faker (3.1.1)
+      i18n (>= 1.8.11, < 2)
+    i18n (1.14.1)
+      concurrent-ruby (~> 1.0)
+    ice_nine (0.11.2)
+    method_source (1.0.0)
+    minitest (5.18.1)
+    neatjson (0.10.5)
+    necromancer (0.4.0)
+    parallel (1.22.1)
+    parser (3.2.1.1)
+      ast (~> 2.4.1)
+    pastel (0.7.2)
+      equatable (~> 0.5.0)
+      tty-color (~> 0.4.0)
+    pry (0.14.2)
+      coderay (~> 1.1)
+      method_source (~> 1.0)
+    rainbow (3.1.1)
+    rake (13.0.6)
+    regexp_parser (2.7.0)
+    rexml (3.2.5)
+    rspec (3.12.0)
+      rspec-core (~> 3.12.0)
+      rspec-expectations (~> 3.12.0)
+      rspec-mocks (~> 3.12.0)
+    rspec-core (3.12.1)
+      rspec-support (~> 3.12.0)
+    rspec-expectations (3.12.2)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.12.0)
+    rspec-github (2.4.0)
+      rspec-core (~> 3.0)
+    rspec-its (1.3.0)
+      rspec-core (>= 3.0.0)
+      rspec-expectations (>= 3.0.0)
+    rspec-mocks (3.12.4)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.12.0)
+    rspec-support (3.12.0)
+    rubocop (1.24.1)
+      parallel (~> 1.10)
+      parser (>= 3.0.0.0)
+      rainbow (>= 2.2.2, < 4.0)
+      regexp_parser (>= 1.8, < 3.0)
+      rexml
+      rubocop-ast (>= 1.15.1, < 2.0)
+      ruby-progressbar (~> 1.7)
+      unicode-display_width (>= 1.4.0, < 3.0)
+    rubocop-ast (1.28.0)
+      parser (>= 3.2.1.0)
+    rubocop-md (1.2.0)
+      rubocop (>= 1.0)
+    rubocop-performance (1.16.0)
+      rubocop (>= 1.7.0, < 2.0)
+      rubocop-ast (>= 0.4.0)
+    rubocop-rake (0.6.0)
+      rubocop (~> 1.0)
+    rubocop-rspec (2.11.1)
+      rubocop (~> 1.19)
+    ruby-progressbar (1.13.0)
+    rugged (1.6.3)
+    simplecov (0.22.0)
+      docile (~> 1.1)
+      simplecov-html (~> 0.11)
+      simplecov_json_formatter (~> 0.1)
+    simplecov-cobertura (2.1.0)
+      rexml
+      simplecov (~> 0.19)
+    simplecov-html (0.12.3)
+    simplecov_json_formatter (0.1.4)
+    strings (0.1.8)
+      strings-ansi (~> 0.1)
+      unicode-display_width (~> 1.5)
+      unicode_utils (~> 1.4)
+    strings-ansi (0.2.0)
+    tty-box (0.5.0)
+      pastel (~> 0.7.2)
+      strings (~> 0.1.6)
+      tty-cursor (~> 0.7)
+    tty-color (0.4.3)
+    tty-cursor (0.7.1)
+    tty-option (0.2.0)
+    tty-screen (0.6.5)
+    tty-spinner (0.9.3)
+      tty-cursor (~> 0.7)
+    tty-table (0.10.0)
+      equatable (~> 0.5.0)
+      necromancer (~> 0.4.0)
+      pastel (~> 0.7.2)
+      strings (~> 0.1.0)
+      tty-screen (~> 0.6.4)
+    tzinfo (2.0.6)
+      concurrent-ruby (~> 1.0)
+    unicode-display_width (1.8.0)
+    unicode_utils (1.4.0)
+    zeitwerk (2.6.7)
 
 PLATFORMS
   ruby
@@ -23,4 +152,4 @@ DEPENDENCIES
   git_fame
 
 BUNDLED WITH
-   2.1.4
+   2.3.3
diff --git a/pkgs/applications/version-management/git-fame/gemset.nix b/pkgs/applications/version-management/git-fame/gemset.nix
index 07dd36ac68a04..1bd2081516243 100644
--- a/pkgs/applications/version-management/git-fame/gemset.nix
+++ b/pkgs/applications/version-management/git-fame/gemset.nix
@@ -1,60 +1,653 @@
 {
+  activesupport = {
+    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cjsf26656996hv48wgv2mkwxf0fy1qc68ikgzq7mzfq2mmvmayk";
+      type = "gem";
+    };
+    version = "7.0.6";
+  };
+  ast = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y";
+      type = "gem";
+    };
+    version = "2.4.2";
+  };
+  coderay = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw";
+      type = "gem";
+    };
+    version = "1.1.3";
+  };
+  concurrent-ruby = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0krcwb6mn0iklajwngwsg850nk8k9b35dhmc2qkbdqvmifdi2y9q";
+      type = "gem";
+    };
+    version = "1.2.2";
+  };
+  diff-lcs = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rwvjahnp7cpmracd8x732rjgnilqv2sx7d1gfrysslc3h039fa9";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  docile = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lxqxgq71rqwj1lpl9q1mbhhhhhhdkkj7my341f2889pwayk85sz";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  dry-core = {
+    dependencies = ["concurrent-ruby" "zeitwerk"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01gks2hrp7nl3pzb487azvd25dlbrc40d5cpk4n0szwnf2c0k4ks";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  dry-inflector = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09hnvna3lg2x36li63988kv664d0zvy7y0z33803yvrdr9hj7lka";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  dry-initializer = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1v3dah1r96b10m8xjixmdmymg7dr16wn5715id4vxjkw6vm7s9jd";
+      type = "gem";
+    };
+    version = "3.1.1";
+  };
+  dry-logic = {
+    dependencies = ["concurrent-ruby" "dry-core" "zeitwerk"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05nldkc154r0qzlhss7n5klfiyyz05x2fkq08y13s34py6023vcr";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  dry-struct = {
+    dependencies = ["dry-core" "dry-types" "ice_nine" "zeitwerk"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rnlgn4wif0dvkvi10xwh1vd1q6mp35q6a7lwva0zmbc79dh4drp";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  dry-types = {
+    dependencies = ["concurrent-ruby" "dry-core" "dry-inflector" "dry-logic" "zeitwerk"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1f6dz0hm67rhybh6xq2s3vvr700cp43kf50z2lids62s2i0mh5hj";
+      type = "gem";
+    };
+    version = "1.7.1";
+  };
+  equatable = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sjm9zjakyixyvsqziikdrsqfzis6j3fq23crgjkp6fwkfgndj7x";
+      type = "gem";
+    };
+    version = "0.5.0";
+  };
+  factory_bot = {
+    dependencies = ["activesupport"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pfk942d6qwhw151hxaz7n4knk6whyxqvvywdx2cdw9yhykyaqzq";
+      type = "gem";
+    };
+    version = "6.2.1";
+  };
+  faker = {
+    dependencies = ["i18n"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1b8772jybi0vxzbcs5zw17k40z661c8adn2rd6vqqr7ay71bzl09";
+      type = "gem";
+    };
+    version = "3.1.1";
+  };
   git_fame = {
-    dependencies = ["hirb" "memoist" "method_profiler" "progressbar" "scrub_rb" "trollop"];
+    dependencies = ["activesupport" "dry-initializer" "dry-struct" "dry-types" "neatjson" "rugged" "tty-box" "tty-option" "tty-screen" "tty-spinner" "tty-table" "zeitwerk"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jqvhzwgvr2bpi4ldqidbcs9prb0xsikp50xx4r8dwhf8m9mh26h";
+      type = "gem";
+    };
+    version = "3.1.1";
+  };
+  i18n = {
+    dependencies = ["concurrent-ruby"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qaamqsh5f3szhcakkak8ikxlzxqnv49n2p7504hcz2l0f4nj0wx";
+      type = "gem";
+    };
+    version = "1.14.1";
+  };
+  ice_nine = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x";
+      type = "gem";
+    };
+    version = "0.11.2";
+  };
+  method_source = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pnyh44qycnf9mzi1j6fywd5fkskv3x7nmsqrrws0rjn5dd4ayfp";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  minitest = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kg9wh7jlc9zsr3hkhpzkbn0ynf4np5ap9m2d8xdrb8shy0y6pmb";
+      type = "gem";
+    };
+    version = "5.18.1";
+  };
+  neatjson = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wm1lq8yl6rzysh3wg6fa55w5534k6ppiz0qb7jyvdy582mk5i0s";
+      type = "gem";
+    };
+    version = "0.10.5";
+  };
+  necromancer = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0v9nhdkv6zrp7cn48xv7n2vjhsbslpvs0ha36mfkcd56cp27pavz";
+      type = "gem";
+    };
+    version = "0.4.0";
+  };
+  parallel = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07vnk6bb54k4yc06xnwck7php50l09vvlw1ga8wdz0pia461zpzb";
+      type = "gem";
+    };
+    version = "1.22.1";
+  };
+  parser = {
+    dependencies = ["ast"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1a2v5f8fw7nxm41xp422p1pbr41hafy62bp95m7vg42cqp5y4grc";
+      type = "gem";
+    };
+    version = "3.2.1.1";
+  };
+  pastel = {
+    dependencies = ["equatable" "tty-color"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yf30d9kzpm96gw9kwbv31p0qigwfykn8qdis5950plnzgc1vlp1";
+      type = "gem";
+    };
+    version = "0.7.2";
+  };
+  pry = {
+    dependencies = ["coderay" "method_source"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0k9kqkd9nps1w1r1rb7wjr31hqzkka2bhi8b518x78dcxppm9zn4";
+      type = "gem";
+    };
+    version = "0.14.2";
+  };
+  rainbow = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0smwg4mii0fm38pyb5fddbmrdpifwv22zv3d3px2xx497am93503";
+      type = "gem";
+    };
+    version = "3.1.1";
+  };
+  rake = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w";
+      type = "gem";
+    };
+    version = "13.0.6";
+  };
+  regexp_parser = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0d6241adx6drsfzz74nx1ld3394nm6fjpv3ammzr0g659krvgf7q";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
+  rexml = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
+      type = "gem";
+    };
+    version = "3.2.5";
+  };
+  rspec = {
+    dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "171rc90vcgjl8p1bdrqa92ymrj8a87qf6w20x05xq29mljcigi6c";
+      type = "gem";
+    };
+    version = "3.12.0";
+  };
+  rspec-core = {
+    dependencies = ["rspec-support"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0da45cvllbv39sdbsl65vp5djb2xf5m10mxc9jm7rsqyyxjw4h1f";
+      type = "gem";
+    };
+    version = "3.12.1";
+  };
+  rspec-expectations = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03ba3lfdsj9zl00v1yvwgcx87lbadf87livlfa5kgqssn9qdnll6";
+      type = "gem";
+    };
+    version = "3.12.2";
+  };
+  rspec-github = {
+    dependencies = ["rspec-core"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kqjmd85v2fpb06d0rx43dc51f0igc1gmm8y3nz0wvmy7zg02njm";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  rspec-its = {
+    dependencies = ["rspec-core" "rspec-expectations"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15zafd70gxly5i0s00nky14sj2n92dnj3xpj83ysl3c2wx0119ad";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  rspec-mocks = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1dcfh85m3ksir6n8gydsal4d85chpww1b2nahb05nl8xhgh0r2ij";
+      type = "gem";
+    };
+    version = "3.12.4";
+  };
+  rspec-support = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12y52zwwb3xr7h91dy9k3ndmyyhr3mjcayk0nnarnrzz8yr48kfx";
+      type = "gem";
+    };
+    version = "3.12.0";
+  };
+  rubocop = {
+    dependencies = ["parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sn7ag295blmhpwv6x472m3fd0n25swz9imqwpk0hg21rdcdw7p0";
+      type = "gem";
+    };
+    version = "1.24.1";
+  };
+  rubocop-ast = {
+    dependencies = ["parser"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0n2gsafg6p7nr1z8i1hkvp2qqkkbg842ba183dnl0h08xd9ms6q5";
+      type = "gem";
+    };
+    version = "1.28.0";
+  };
+  rubocop-md = {
+    dependencies = ["rubocop"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11j802r5r022vxzycvwvzhyg24g8dky4slbvid24xi0ji73q444z";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  rubocop-performance = {
+    dependencies = ["rubocop" "rubocop-ast"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1n7g0vg06ldjaq4f8c11c7yqy99zng1qdrkkk4kfziippy24yxnc";
+      type = "gem";
+    };
+    version = "1.16.0";
+  };
+  rubocop-rake = {
+    dependencies = ["rubocop"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nyq07sfb3vf3ykc6j2d5yq824lzq1asb474yka36jxgi4hz5djn";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  rubocop-rspec = {
+    dependencies = ["rubocop"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ivc9kgz18cn32iqi9wv5aj903yhamwddw84l7nklbl9xxvwz603";
+      type = "gem";
+    };
+    version = "2.11.1";
+  };
+  ruby-progressbar = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cwvyb7j47m7wihpfaq7rc47zwwx9k4v7iqd9s1xch5nm53rrz40";
+      type = "gem";
+    };
+    version = "1.13.0";
+  };
+  rugged = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "016bawsahkhxx7p8azxirpl7y2y7i8a027pj8910gwf6ipg329in";
+      type = "gem";
+    };
+    version = "1.6.3";
+  };
+  simplecov = {
+    dependencies = ["docile" "simplecov-html" "simplecov_json_formatter"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "198kcbrjxhhzca19yrdcd6jjj9sb51aaic3b0sc3pwjghg3j49py";
+      type = "gem";
+    };
+    version = "0.22.0";
+  };
+  simplecov-cobertura = {
+    dependencies = ["rexml" "simplecov"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00izmp202y48qvmvwrh5x56cc5ivbjhgkkkjklvqmqzj9pik4r9c";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  simplecov-html = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yx01bxa8pbf9ip4hagqkp5m0mqfnwnw2xk8kjraiywz4lrss6jb";
+      type = "gem";
+    };
+    version = "0.12.3";
+  };
+  simplecov_json_formatter = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0a5l0733hj7sk51j81ykfmlk2vd5vaijlq9d5fn165yyx3xii52j";
+      type = "gem";
+    };
+    version = "0.1.4";
+  };
+  strings = {
+    dependencies = ["strings-ansi" "unicode-display_width" "unicode_utils"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "111876lcqrykh30w7zzkrl06d6rj9lq24y625m28674vgfxkkcz0";
+      type = "gem";
+    };
+    version = "0.1.8";
+  };
+  strings-ansi = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "120wa6yjc63b84lprglc52f40hx3fx920n4dmv14rad41rv2s9lh";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  tty-box = {
+    dependencies = ["pastel" "strings" "tty-cursor"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14g63v0jx87hba50rlv3c521zg9rw0f5d31cihcvym19xxa7v3l5";
+      type = "gem";
+    };
+    version = "0.5.0";
+  };
+  tty-color = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zz5xa6xbrj69h334d8nx7z732fz80s1a0b02b53mim95p80s7bk";
+      type = "gem";
+    };
+    version = "0.4.3";
+  };
+  tty-cursor = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j5zw041jgkmn605ya1zc151bxgxl6v192v2i26qhxx7ws2l2lvr";
+      type = "gem";
+    };
+    version = "0.7.1";
+  };
+  tty-option = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xibs7kgbsw401ywfw67wg47fmm7sdcypy85m25af9r2q2hbq7gb";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  tty-screen = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02k5ls5zyif8skdbnym6zw9y76whlnksw2m94jsh2n1ygk98izdd";
+      sha256 = "0azpjgyhdm8ycblnx9crq3dgb2x8yg454a13n60zfpsc0n138sw1";
       type = "gem";
     };
-    version = "2.5.2";
+    version = "0.6.5";
   };
-  hirb = {
+  tty-spinner = {
+    dependencies = ["tty-cursor"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mzch3c2lvmf8gskgzlx6j53d10j42ir6ik2dkrl27sblhy76cji";
+      sha256 = "0hh5awmijnzw9flmh5ak610x1d00xiqagxa5mbr63ysggc26y0qf";
       type = "gem";
     };
-    version = "0.7.3";
+    version = "0.9.3";
   };
-  memoist = {
+  tty-table = {
+    dependencies = ["equatable" "necromancer" "pastel" "strings" "tty-screen"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03d3h6kp16bf0crqg1cxdgp1d2iyzn53d3phbmjh4pjybqls0gcm";
+      sha256 = "05krrj1x5pmfbz74paszrsr1316w9b9jlc4wpd9s9gpzqfzwjzcg";
       type = "gem";
     };
-    version = "0.14.0";
+    version = "0.10.0";
   };
-  method_profiler = {
-    dependencies = ["hirb"];
+  tzinfo = {
+    dependencies = ["concurrent-ruby"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ax04qrrv7fqp5ayxaxhn72660pybdkpkvmgiwbg7bs7x5ijjzd8";
+      sha256 = "16w2g84dzaf3z13gxyzlzbf748kylk5bdgg3n1ipvkvvqy685bwd";
       type = "gem";
     };
-    version = "2.0.1";
+    version = "2.0.6";
   };
-  progressbar = {
+  unicode-display_width = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17haw9c6c9q6imsn83pii32jnihpg76jgd09x7y4hjqq45n3qcdh";
+      sha256 = "1204c1jx2g89pc25qk5150mk7j5k90692i7ihgfzqnad6qni74h2";
       type = "gem";
     };
-    version = "0.21.0";
+    version = "1.8.0";
   };
-  scrub_rb = {
+  unicode_utils = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dwg33w83w17aiij9kcbi7irj7lh045nh9prjgkzjya3f1j60d3x";
+      sha256 = "0h1a5yvrxzlf0lxxa1ya31jcizslf774arnsd89vgdhk4g7x08mr";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.4.0";
   };
-  trollop = {
+  zeitwerk = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0415y63df86sqj43c0l82and65ia5h64if7n0znkbrmi6y0jwhl8";
+      sha256 = "028ld9qmgdllxrl7d0qkl65s58wb1n3gv8yjs28g43a8b1hplxk1";
       type = "gem";
     };
-    version = "2.1.2";
+    version = "2.6.7";
   };
 }
diff --git a/pkgs/applications/version-management/git-interactive-rebase-tool/Cargo.lock b/pkgs/applications/version-management/git-interactive-rebase-tool/Cargo.lock
deleted file mode 100644
index 3757eab5de46e..0000000000000
--- a/pkgs/applications/version-management/git-interactive-rebase-tool/Cargo.lock
+++ /dev/null
@@ -1,1366 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "aho-corasick"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "android-tzdata"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
-
-[[package]]
-name = "android_system_properties"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7ed72e1635e121ca3e79420540282af22da58be50de153d36f81ddc6b83aa9e"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "anyhow"
-version = "1.0.72"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854"
-
-[[package]]
-name = "arrayvec"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
-
-[[package]]
-name = "autocfg"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-[[package]]
-name = "bumpalo"
-version = "3.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
-
-[[package]]
-name = "captur"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70fab32548d14602e13307a86c41b2dc2fc2ef19c2881bf63598275a7e45b182"
-
-[[package]]
-name = "cc"
-version = "1.0.73"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
-dependencies = [
- "jobserver",
-]
-
-[[package]]
-name = "cfg-if"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-[[package]]
-name = "chrono"
-version = "0.4.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
-dependencies = [
- "android-tzdata",
- "iana-time-zone",
- "js-sys",
- "num-traits",
- "time",
- "wasm-bindgen",
- "winapi",
-]
-
-[[package]]
-name = "claim"
-version = "0.5.0"
-source = "git+https://github.com/Turbo87/rust-claim.git?rev=23892a3#23892a345d38e1434303143a73033925284ad04d"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "core-foundation-sys"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
-
-[[package]]
-name = "crossbeam-channel"
-version = "0.5.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
-dependencies = [
- "cfg-if",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-utils"
-version = "0.8.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38"
-dependencies = [
- "cfg-if",
- "lazy_static",
-]
-
-[[package]]
-name = "crossterm"
-version = "0.26.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a84cda67535339806297f1b331d6dd6320470d2a0fe65381e79ee9e156dd3d13"
-dependencies = [
- "bitflags",
- "crossterm_winapi",
- "libc",
- "mio",
- "parking_lot",
- "signal-hook",
- "signal-hook-mio",
- "winapi",
-]
-
-[[package]]
-name = "crossterm_winapi"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ae1b35a484aa10e07fe0638d02301c5ad24de82d310ccbd2f3693da5f09bf1c"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "dashmap"
-version = "5.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "391b56fbd302e585b7a9494fb70e40949567b1cf9003a8e4a6041a1687c26573"
-dependencies = [
- "cfg-if",
- "hashbrown",
- "lock_api",
-]
-
-[[package]]
-name = "diff"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499"
-
-[[package]]
-name = "errno"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
-dependencies = [
- "errno-dragonfly",
- "libc",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
-dependencies = [
- "cc",
- "libc",
-]
-
-[[package]]
-name = "fastrand"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf"
-dependencies = [
- "instant",
-]
-
-[[package]]
-name = "form_urlencoded"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
-dependencies = [
- "matches",
- "percent-encoding",
-]
-
-[[package]]
-name = "futures"
-version = "0.3.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-executor",
- "futures-io",
- "futures-sink",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
-name = "futures-channel"
-version = "0.3.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010"
-dependencies = [
- "futures-core",
- "futures-sink",
-]
-
-[[package]]
-name = "futures-core"
-version = "0.3.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3"
-
-[[package]]
-name = "futures-executor"
-version = "0.3.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6"
-dependencies = [
- "futures-core",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
-name = "futures-io"
-version = "0.3.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b"
-
-[[package]]
-name = "futures-macro"
-version = "0.3.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.104",
-]
-
-[[package]]
-name = "futures-sink"
-version = "0.3.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868"
-
-[[package]]
-name = "futures-task"
-version = "0.3.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a"
-
-[[package]]
-name = "futures-timer"
-version = "3.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
-
-[[package]]
-name = "futures-util"
-version = "0.3.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-io",
- "futures-macro",
- "futures-sink",
- "futures-task",
- "memchr",
- "pin-project-lite",
- "pin-utils",
- "slab",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi 0.10.0+wasi-snapshot-preview1",
-]
-
-[[package]]
-name = "girt-config"
-version = "2.3.0"
-dependencies = [
- "claim",
- "girt-git",
- "girt-testutils",
- "lazy_static",
- "proc-macro2",
- "rstest",
- "rustc_version",
- "serial_test",
- "tempfile",
- "thiserror",
-]
-
-[[package]]
-name = "girt-core"
-version = "2.3.0"
-dependencies = [
- "anyhow",
- "bitflags",
- "captur",
- "chrono",
- "claim",
- "crossbeam-channel",
- "girt-config",
- "girt-display",
- "girt-git",
- "girt-input",
- "girt-runtime",
- "girt-todo-file",
- "girt-view",
- "if_chain",
- "lazy_static",
- "num-format",
- "parking_lot",
- "pico-args",
- "pretty_assertions",
- "rstest",
- "rustc_version",
- "serial_test",
- "unicode-segmentation",
-]
-
-[[package]]
-name = "girt-display"
-version = "2.3.0"
-dependencies = [
- "crossterm",
- "girt-config",
- "rstest",
- "rustc_version",
- "serial_test",
- "thiserror",
-]
-
-[[package]]
-name = "girt-git"
-version = "2.3.0"
-dependencies = [
- "chrono",
- "claim",
- "girt-testutils",
- "git2",
- "lazy_static",
- "parking_lot",
- "pretty_assertions",
- "rstest",
- "rustc_version",
- "serial_test",
- "tempfile",
- "thiserror",
-]
-
-[[package]]
-name = "girt-input"
-version = "2.3.0"
-dependencies = [
- "anyhow",
- "bitflags",
- "captur",
- "crossbeam-channel",
- "crossterm",
- "girt-config",
- "girt-runtime",
- "lazy_static",
- "parking_lot",
- "rstest",
- "rustc_version",
- "serial_test",
-]
-
-[[package]]
-name = "girt-runtime"
-version = "2.3.0"
-dependencies = [
- "claim",
- "crossbeam-channel",
- "girt-testutils",
- "parking_lot",
- "rustc_version",
- "thiserror",
-]
-
-[[package]]
-name = "girt-testutils"
-version = "2.3.0"
-dependencies = [
- "rustc_version",
-]
-
-[[package]]
-name = "girt-todo-file"
-version = "2.3.0"
-dependencies = [
- "claim",
- "girt-testutils",
- "pretty_assertions",
- "rstest",
- "rustc_version",
- "tempfile",
- "thiserror",
- "version-track",
-]
-
-[[package]]
-name = "girt-view"
-version = "2.3.0"
-dependencies = [
- "anyhow",
- "bitflags",
- "captur",
- "claim",
- "crossbeam-channel",
- "girt-config",
- "girt-display",
- "girt-runtime",
- "parking_lot",
- "rustc_version",
- "unicode-segmentation",
- "unicode-width",
- "uuid",
- "xi-unicode",
-]
-
-[[package]]
-name = "git-interactive-rebase-tool"
-version = "2.3.0"
-dependencies = [
- "girt-core",
- "rustc_version",
-]
-
-[[package]]
-name = "git2"
-version = "0.15.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2994bee4a3a6a51eb90c218523be382fd7ea09b16380b9312e9dbe955ff7c7d1"
-dependencies = [
- "bitflags",
- "libc",
- "libgit2-sys",
- "log",
- "url",
-]
-
-[[package]]
-name = "glob"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
-
-[[package]]
-name = "hashbrown"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-
-[[package]]
-name = "hermit-abi"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
-
-[[package]]
-name = "iana-time-zone"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef5528d9c2817db4e10cc78f8d4c8228906e5854f389ff6b076cee3572a09d35"
-dependencies = [
- "android_system_properties",
- "core-foundation-sys",
- "js-sys",
- "wasm-bindgen",
- "winapi",
-]
-
-[[package]]
-name = "idna"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
-dependencies = [
- "matches",
- "unicode-bidi",
- "unicode-normalization",
-]
-
-[[package]]
-name = "if_chain"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed"
-
-[[package]]
-name = "instant"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "io-lifetimes"
-version = "1.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
-dependencies = [
- "hermit-abi",
- "libc",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "itoa"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"
-
-[[package]]
-name = "jobserver"
-version = "0.1.24"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "js-sys"
-version = "0.3.59"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2"
-dependencies = [
- "wasm-bindgen",
-]
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-
-[[package]]
-name = "libc"
-version = "0.2.147"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
-
-[[package]]
-name = "libgit2-sys"
-version = "0.14.2+1.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f3d95f6b51075fe9810a7ae22c7095f12b98005ab364d8544797a825ce946a4"
-dependencies = [
- "cc",
- "libc",
- "libz-sys",
- "pkg-config",
-]
-
-[[package]]
-name = "libz-sys"
-version = "1.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92e7e15d7610cce1d9752e137625f14e61a28cd45929b6e12e47b50fe154ee2e"
-dependencies = [
- "cc",
- "libc",
- "pkg-config",
- "vcpkg",
-]
-
-[[package]]
-name = "linux-raw-sys"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
-
-[[package]]
-name = "lock_api"
-version = "0.4.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53"
-dependencies = [
- "autocfg",
- "scopeguard",
-]
-
-[[package]]
-name = "log"
-version = "0.4.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6389c490849ff5bc16be905ae24bc913a9c8892e19b2341dbc175e14c341c2b8"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "matches"
-version = "0.1.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
-
-[[package]]
-name = "memchr"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
-
-[[package]]
-name = "mio"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52da4364ffb0e4fe33a9841a98a3f3014fb964045ce4f7a45a398243c8d6b0c9"
-dependencies = [
- "libc",
- "log",
- "miow",
- "ntapi",
- "wasi 0.11.0+wasi-snapshot-preview1",
- "winapi",
-]
-
-[[package]]
-name = "miow"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "ntapi"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "num-format"
-version = "0.4.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3"
-dependencies = [
- "arrayvec",
- "itoa",
-]
-
-[[package]]
-name = "num-traits"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "once_cell"
-version = "1.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "074864da206b4973b84eb91683020dbefd6a8c3f0f38e054d93954e891935e4e"
-
-[[package]]
-name = "parking_lot"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
-dependencies = [
- "lock_api",
- "parking_lot_core",
-]
-
-[[package]]
-name = "parking_lot_core"
-version = "0.9.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "995f667a6c822200b0433ac218e05582f0e2efa1b922a3fd2fbaadc5f87bab37"
-dependencies = [
- "cfg-if",
- "libc",
- "redox_syscall 0.2.13",
- "smallvec",
- "windows-sys 0.34.0",
-]
-
-[[package]]
-name = "percent-encoding"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
-
-[[package]]
-name = "pico-args"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315"
-
-[[package]]
-name = "pin-project-lite"
-version = "0.2.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
-
-[[package]]
-name = "pin-utils"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
-
-[[package]]
-name = "pkg-config"
-version = "0.3.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
-
-[[package]]
-name = "ppv-lite86"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
-
-[[package]]
-name = "pretty_assertions"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66"
-dependencies = [
- "diff",
- "yansi",
-]
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.66"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.29"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "rand"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
-dependencies = [
- "libc",
- "rand_chacha",
- "rand_core",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
-dependencies = [
- "ppv-lite86",
- "rand_core",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
-dependencies = [
- "getrandom",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.2.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42"
-dependencies = [
- "bitflags",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
-dependencies = [
- "bitflags",
-]
-
-[[package]]
-name = "regex"
-version = "1.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-automata",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-automata"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-syntax"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
-
-[[package]]
-name = "relative-path"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bf2521270932c3c7bed1a59151222bd7643c79310f2916f01925e1e16255698"
-
-[[package]]
-name = "rstest"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b96577ca10cb3eade7b337eb46520108a67ca2818a24d0b63f41fd62bc9651c"
-dependencies = [
- "futures",
- "futures-timer",
- "rstest_macros",
- "rustc_version",
-]
-
-[[package]]
-name = "rstest_macros"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225e674cf31712b8bb15fdbca3ec0c1b9d825c5a24407ff2b7e005fb6a29ba03"
-dependencies = [
- "cfg-if",
- "glob",
- "proc-macro2",
- "quote",
- "regex",
- "relative-path",
- "rustc_version",
- "syn 2.0.26",
- "unicode-ident",
-]
-
-[[package]]
-name = "rustc_version"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
-dependencies = [
- "semver",
-]
-
-[[package]]
-name = "rustix"
-version = "0.37.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
-dependencies = [
- "bitflags",
- "errno",
- "io-lifetimes",
- "libc",
- "linux-raw-sys",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "scopeguard"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-
-[[package]]
-name = "semver"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d65bd28f48be7196d222d95b9243287f48d27aca604e08497513019ff0502cc4"
-
-[[package]]
-name = "serial_test"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e56dd856803e253c8f298af3f4d7eb0ae5e23a737252cd90bb4f3b435033b2d"
-dependencies = [
- "dashmap",
- "futures",
- "lazy_static",
- "log",
- "parking_lot",
- "serial_test_derive",
-]
-
-[[package]]
-name = "serial_test_derive"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.26",
-]
-
-[[package]]
-name = "signal-hook"
-version = "0.3.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "647c97df271007dcea485bb74ffdb57f2e683f1306c854f468a0c244badabf2d"
-dependencies = [
- "libc",
- "signal-hook-registry",
-]
-
-[[package]]
-name = "signal-hook-mio"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af"
-dependencies = [
- "libc",
- "mio",
- "signal-hook",
-]
-
-[[package]]
-name = "signal-hook-registry"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "slab"
-version = "0.4.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32"
-
-[[package]]
-name = "smallvec"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83"
-
-[[package]]
-name = "syn"
-version = "1.0.104"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ae548ec36cf198c0ef7710d3c230987c2d6d7bd98ad6edc0274462724c585ce"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "syn"
-version = "2.0.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45c3457aacde3c65315de5031ec191ce46604304d2446e803d71ade03308d970"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "tempfile"
-version = "3.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
-dependencies = [
- "autocfg",
- "cfg-if",
- "fastrand",
- "redox_syscall 0.3.5",
- "rustix",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "thiserror"
-version = "1.0.43"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a35fc5b8971143ca348fa6df4f024d4d55264f3468c71ad1c2f365b0a4d58c42"
-dependencies = [
- "thiserror-impl",
-]
-
-[[package]]
-name = "thiserror-impl"
-version = "1.0.43"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.26",
-]
-
-[[package]]
-name = "time"
-version = "0.1.44"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
-dependencies = [
- "libc",
- "wasi 0.10.0+wasi-snapshot-preview1",
- "winapi",
-]
-
-[[package]]
-name = "tinyvec"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
-dependencies = [
- "tinyvec_macros",
-]
-
-[[package]]
-name = "tinyvec_macros"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
-
-[[package]]
-name = "unicode-bidi"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
-
-[[package]]
-name = "unicode-ident"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
-
-[[package]]
-name = "unicode-normalization"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9"
-dependencies = [
- "tinyvec",
-]
-
-[[package]]
-name = "unicode-segmentation"
-version = "1.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
-
-[[package]]
-name = "unicode-width"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
-
-[[package]]
-name = "url"
-version = "2.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"
-dependencies = [
- "form_urlencoded",
- "idna",
- "matches",
- "percent-encoding",
-]
-
-[[package]]
-name = "uuid"
-version = "1.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d"
-dependencies = [
- "getrandom",
- "rand",
-]
-
-[[package]]
-name = "vcpkg"
-version = "0.2.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
-
-[[package]]
-name = "version-track"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d9affed6b4e63b1f30ed8f0f2c401fa725f5f511eb00e52269f401c4d5ae12f"
-dependencies = [
- "uuid",
-]
-
-[[package]]
-name = "wasi"
-version = "0.10.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
-
-[[package]]
-name = "wasi"
-version = "0.11.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-
-[[package]]
-name = "wasm-bindgen"
-version = "0.2.82"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d"
-dependencies = [
- "cfg-if",
- "wasm-bindgen-macro",
-]
-
-[[package]]
-name = "wasm-bindgen-backend"
-version = "0.2.82"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f"
-dependencies = [
- "bumpalo",
- "log",
- "once_cell",
- "proc-macro2",
- "quote",
- "syn 1.0.104",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-macro"
-version = "0.2.82"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602"
-dependencies = [
- "quote",
- "wasm-bindgen-macro-support",
-]
-
-[[package]]
-name = "wasm-bindgen-macro-support"
-version = "0.2.82"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.104",
- "wasm-bindgen-backend",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-shared"
-version = "0.2.82"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a"
-
-[[package]]
-name = "winapi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-
-[[package]]
-name = "windows-sys"
-version = "0.34.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5acdd78cb4ba54c0045ac14f62d8f94a03d10047904ae2a40afa1e99d8f70825"
-dependencies = [
- "windows_aarch64_msvc 0.34.0",
- "windows_i686_gnu 0.34.0",
- "windows_i686_msvc 0.34.0",
- "windows_x86_64_gnu 0.34.0",
- "windows_x86_64_msvc 0.34.0",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
-dependencies = [
- "windows-targets",
-]
-
-[[package]]
-name = "windows-targets"
-version = "0.48.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
-dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc 0.48.0",
- "windows_i686_gnu 0.48.0",
- "windows_i686_msvc 0.48.0",
- "windows_x86_64_gnu 0.48.0",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc 0.48.0",
-]
-
-[[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.34.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.34.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.34.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cd9d32ba70453522332c14d38814bceeb747d80b3958676007acadd7e166956"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.34.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cfce6deae227ee8d356d19effc141a509cc503dfd1f850622ec4b0f84428e1f4"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
-
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.34.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d19538ccc21819d01deaf88d6a17eae6596a12e9aafdbb97916fb49896d89de9"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
-
-[[package]]
-name = "xi-unicode"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a"
-
-[[package]]
-name = "yansi"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
diff --git a/pkgs/applications/version-management/git-interactive-rebase-tool/default.nix b/pkgs/applications/version-management/git-interactive-rebase-tool/default.nix
index f450b17535dd8..366f34e10d408 100644
--- a/pkgs/applications/version-management/git-interactive-rebase-tool/default.nix
+++ b/pkgs/applications/version-management/git-interactive-rebase-tool/default.nix
@@ -2,41 +2,22 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "git-interactive-rebase-tool";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "MitMaro";
     repo = pname;
     rev = version;
-    sha256 = "sha256-tMeA2LsNCXxI086y8S+STYwjClWMPaBheP0s0oZ5I5c=";
+    hash = "sha256-xwvL6QX+eMbxCouE1i86j/PRCxTJVAQnRVeK6fYQo/M=";
   };
 
-  postPatch = ''
-    # error: lint `unused_tuple_struct_fields` has been renamed to `dead_code`
-    substituteInPlace scripts/data/lints.rs src/main.rs src/{config,core,display,git,input,runtime,testutils,todo_file,view}/src/lib.rs \
-      --replace-fail "unused_tuple_struct_fields," ""
-  '';
-
-  cargoLock = {
-    lockFile = ./Cargo.lock;
-    outputHashes = {
-      "claim-0.5.0" = "sha256-quVV5PnWW1cYK+iSOM/Y0gLu2gPOrZ1ytJif0D5v9g0=";
-    };
-  };
+  cargoHash = "sha256-RDGbsmOBVMxInstTrRZK0G5eZR79ZoFK5UlkCj3zpoY=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
 
   # Compilation during tests fails if this env var is not set.
   preCheck = "export GIRT_BUILD_GIT_HASH=${version}";
   postCheck = "unset GIRT_BUILD_GIT_HASH";
-  cargoTestFlags = [
-    "--workspace"
-    # build everything except for doctests which are currently broken because
-    # `config::lib` expects the sourcetree to be a git repo.
-    "--tests"
-    "--lib"
-    "--bins"
-  ];
 
   meta = with lib; {
     homepage = "https://github.com/MitMaro/git-interactive-rebase-tool";
diff --git a/pkgs/applications/version-management/git-machete/default.nix b/pkgs/applications/version-management/git-machete/default.nix
index a6cf657d61d70..e8efa81e217b2 100644
--- a/pkgs/applications/version-management/git-machete/default.nix
+++ b/pkgs/applications/version-management/git-machete/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonApplication rec {
   pname = "git-machete";
-  version = "3.25.2";
+  version = "3.26.0";
 
   src = fetchFromGitHub {
     owner = "virtuslab";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-uTbDrSR2Aqeq73PI0dghCkOQS7QPFb/I9Yrl3wIH9ZQ=";
+    hash = "sha256-6q0XunfzURfcvce/BLtJhDeI1fPusN+07S1SegLDkwY=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/applications/version-management/git-mit/default.nix b/pkgs/applications/version-management/git-mit/default.nix
index 9c8538d46b781..d8af866b64e87 100644
--- a/pkgs/applications/version-management/git-mit/default.nix
+++ b/pkgs/applications/version-management/git-mit/default.nix
@@ -10,7 +10,7 @@
 }:
 
 let
-  version = "5.12.201";
+  version = "5.12.205";
 in
 rustPlatform.buildRustPackage {
   pname = "git-mit";
@@ -20,10 +20,10 @@ rustPlatform.buildRustPackage {
     owner = "PurpleBooth";
     repo = "git-mit";
     rev = "v${version}";
-    hash = "sha256-nOzyC389bAnhTzDnBviqx7fzkJxj6Rf3FW9ysRs+rWI=";
+    hash = "sha256-I9tIw7ZtQ85L1Pt0+/CxugtmnClbEbn4xKjSkBqBa0o=";
   };
 
-  cargoHash = "sha256-wA68UDFkgvDGOX3t3d7ZyOy4z3qx4vSvup2mRjRM9rY=";
+  cargoHash = "sha256-GWoh//sHhIVxmFuyAHRot/JG5wL3Zn2yIeRncaPENN4=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/applications/version-management/git-octopus/default.nix b/pkgs/applications/version-management/git-octopus/default.nix
index 7b8b5fed90f44..877c795e205dd 100644
--- a/pkgs/applications/version-management/git-octopus/default.nix
+++ b/pkgs/applications/version-management/git-octopus/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://github.com/lesfurets/git-octopus";
-    description = "The continuous merge workflow";
+    description = "Continuous merge workflow";
     license = licenses.lgpl3;
     platforms = platforms.unix;
     maintainers = [maintainers.mic92];
diff --git a/pkgs/applications/version-management/git-quick-stats/default.nix b/pkgs/applications/version-management/git-quick-stats/default.nix
index 5f845a510fd69..99be76387bd88 100644
--- a/pkgs/applications/version-management/git-quick-stats/default.nix
+++ b/pkgs/applications/version-management/git-quick-stats/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/arzzen/git-quick-stats";
-    description = "A simple and efficient way to access various statistics in git repository";
+    description = "Simple and efficient way to access various statistics in git repository";
     platforms = platforms.all;
     maintainers = [ maintainers.kmein ];
     license = licenses.mit;
diff --git a/pkgs/applications/version-management/git-radar/default.nix b/pkgs/applications/version-management/git-radar/default.nix
index 27979d63cca56..4bc6a3f8c531d 100644
--- a/pkgs/applications/version-management/git-radar/default.nix
+++ b/pkgs/applications/version-management/git-radar/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/michaeldfallen/git-radar";
     license = licenses.mit;
-    description = "A tool you can add to your prompt to provide at-a-glance information on your git repo";
+    description = "Tool you can add to your prompt to provide at-a-glance information on your git repo";
     platforms = with platforms; linux ++ darwin;
     maintainers = with maintainers; [ kamilchm ];
     mainProgram = "git-radar";
diff --git a/pkgs/applications/version-management/git-remote-gcrypt/default.nix b/pkgs/applications/version-management/git-remote-gcrypt/default.nix
index fd506ca2b46b6..d3f53b704eeb0 100644
--- a/pkgs/applications/version-management/git-remote-gcrypt/default.nix
+++ b/pkgs/applications/version-management/git-remote-gcrypt/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://spwhitton.name/tech/code/git-remote-gcrypt";
-    description = "A git remote helper for GPG-encrypted remotes";
+    description = "Git remote helper for GPG-encrypted remotes";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ellis montag451 ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/version-management/git-secret/default.nix b/pkgs/applications/version-management/git-secret/default.nix
index 877a727523b56..6c0613a28df7a 100644
--- a/pkgs/applications/version-management/git-secret/default.nix
+++ b/pkgs/applications/version-management/git-secret/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A bash-tool to store your private data inside a git repository";
+    description = "Bash-tool to store your private data inside a git repository";
     homepage = "https://git-secret.io";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.lo1tuma ];
diff --git a/pkgs/applications/version-management/git-series/default.nix b/pkgs/applications/version-management/git-series/default.nix
index a055ccc868f28..b2176bb9e939e 100644
--- a/pkgs/applications/version-management/git-series/default.nix
+++ b/pkgs/applications/version-management/git-series/default.nix
@@ -53,7 +53,7 @@ rustPlatform.buildRustPackage {
   '';
 
   meta = with lib; {
-    description = "A tool to help with formatting git patches for review on mailing lists";
+    description = "Tool to help with formatting git patches for review on mailing lists";
     longDescription = ''
       git series tracks changes to a patch series over time. git
       series also tracks a cover letter for the patch series,
diff --git a/pkgs/applications/version-management/git-stree/default.nix b/pkgs/applications/version-management/git-stree/default.nix
index 53f43d69d4d40..d15db48902fa1 100644
--- a/pkgs/applications/version-management/git-stree/default.nix
+++ b/pkgs/applications/version-management/git-stree/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A better Git subtree helper command";
+    description = "Better Git subtree helper command";
     homepage = "http://deliciousinsights.github.io/git-stree";
     license = licenses.mit;
     maintainers = [ maintainers.benley ];
diff --git a/pkgs/applications/version-management/git-sync/default.nix b/pkgs/applications/version-management/git-sync/default.nix
index 9180db63a8139..3ff96da704e07 100644
--- a/pkgs/applications/version-management/git-sync/default.nix
+++ b/pkgs/applications/version-management/git-sync/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A script to automatically synchronize a git repository";
+    description = "Script to automatically synchronize a git repository";
     homepage = "https://github.com/simonthum/git-sync";
     maintainers = with lib.maintainers; [ imalison ];
     license = lib.licenses.cc0;
diff --git a/pkgs/applications/version-management/git-town/default.nix b/pkgs/applications/version-management/git-town/default.nix
index c2d9fd54f0033..7b362cd7fb254 100644
--- a/pkgs/applications/version-management/git-town/default.nix
+++ b/pkgs/applications/version-management/git-town/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "git-town";
-  version = "14.2.0";
+  version = "14.2.2";
 
   src = fetchFromGitHub {
     owner = "git-town";
     repo = "git-town";
     rev = "v${version}";
-    hash = "sha256-+OJ8aUA/VFOAzdCRcOCQKm6/RjRe13TITP1DAWqoAQI=";
+    hash = "sha256-bYCE3Ik0UbbjlZV8EY6pVRZzrTBp2uiZLJjO4UxfGE8=";
   };
 
   vendorHash = null;
@@ -48,9 +48,9 @@ buildGoModule rec {
 
   postInstall = ''
     installShellCompletion --cmd git-town \
-      --bash <($out/bin/git-town completion bash) \
-      --fish <($out/bin/git-town completion fish) \
-      --zsh <($out/bin/git-town completion zsh)
+      --bash <($out/bin/git-town completions bash) \
+      --fish <($out/bin/git-town completions fish) \
+      --zsh <($out/bin/git-town completions zsh)
 
     wrapProgram $out/bin/git-town --prefix PATH : ${lib.makeBinPath [ git ]}
   '';
diff --git a/pkgs/applications/version-management/git-up/default.nix b/pkgs/applications/version-management/git-up/default.nix
index 5f91aacf63d8a..ddbb5b803f5b9 100644
--- a/pkgs/applications/version-management/git-up/default.nix
+++ b/pkgs/applications/version-management/git-up/default.nix
@@ -48,7 +48,7 @@ pythonPackages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/msiemens/PyGitUp";
-    description = "A git pull replacement that rebases all local branches when pulling";
+    description = "Git pull replacement that rebases all local branches when pulling";
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.all;
diff --git a/pkgs/applications/version-management/git-vendor/default.nix b/pkgs/applications/version-management/git-vendor/default.nix
index 6722f94d503e7..a0f3e26b2e4f1 100644
--- a/pkgs/applications/version-management/git-vendor/default.nix
+++ b/pkgs/applications/version-management/git-vendor/default.nix
@@ -48,7 +48,7 @@ in stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "A git command for managing vendored dependencies";
+    description = "Git command for managing vendored dependencies";
     longDescription = ''
       git-vendor is a wrapper around git-subtree commands for checking out and updating vendored dependencies.
 
diff --git a/pkgs/applications/version-management/git/default.nix b/pkgs/applications/version-management/git/default.nix
index 375908863a2ab..d7e008d656fde 100644
--- a/pkgs/applications/version-management/git/default.nix
+++ b/pkgs/applications/version-management/git/default.nix
@@ -29,7 +29,7 @@ assert sendEmailSupport -> perlSupport;
 assert svnSupport -> perlSupport;
 
 let
-  version = "2.44.1";
+  version = "2.45.1";
   svn = subversionClient.override { perlBindings = perlSupport; };
   gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
 in
@@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
-    hash = "sha256-e2CmJMD3AJoWuFYlBiGq/c3YXrjUS7AgYXtlJbhyYeQ=";
+    hash = "sha256-5k00Co5ieuIs+4vMZRzKC0l88en99SNzVUT/SnMvEr8=";
   };
 
   outputs = [ "out" ] ++ lib.optional withManual "doc";
@@ -121,7 +121,8 @@ stdenv.mkDerivation (finalAttrs: {
   # acceptable version.
   #
   # See https://github.com/Homebrew/homebrew-core/commit/dfa3ccf1e7d3901e371b5140b935839ba9d8b706
-  ++ lib.optional stdenv.isDarwin "TKFRAMEWORK=/nonexistent";
+  ++ lib.optional stdenv.isDarwin "TKFRAMEWORK=/nonexistent"
+  ++ lib.optional (stdenv.hostPlatform.isFreeBSD && stdenv.hostPlatform != stdenv.buildPlatform) "uname_S=FreeBSD";
 
   disallowedReferences = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
     stdenv.shellPackage
@@ -374,6 +375,7 @@ stdenv.mkDerivation (finalAttrs: {
       });
       buildbot-integration = nixosTests.buildbot;
     } // tests.fetchgit;
+    updateScript = ./update.sh;
   };
 
   meta = {
diff --git a/pkgs/applications/version-management/git/update.sh b/pkgs/applications/version-management/git/update.sh
index 54574722b02b7..1f70dcff42940 100755
--- a/pkgs/applications/version-management/git/update.sh
+++ b/pkgs/applications/version-management/git/update.sh
@@ -10,7 +10,7 @@ targetVersion="${1:-$latestTag}"
 if [ ! "${oldVersion}" = "${targetVersion}" ]; then
   update-source-version git "${targetVersion}"
   nixpkgs="$(git rev-parse --show-toplevel)"
-  default_nix="$nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix"
+  default_nix="$nixpkgs/pkgs/applications/version-management/git/default.nix"
   nix-build -A git
   git add "${default_nix}"
   git commit -m "git: ${oldVersion} -> ${targetVersion}"
diff --git a/pkgs/applications/version-management/gita/default.nix b/pkgs/applications/version-management/gita/default.nix
index eba9f5ed75257..41fe453647de6 100644
--- a/pkgs/applications/version-management/gita/default.nix
+++ b/pkgs/applications/version-management/gita/default.nix
@@ -35,7 +35,7 @@ buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A command-line tool to manage multiple git repos";
+    description = "Command-line tool to manage multiple git repos";
     homepage = "https://github.com/nosarthur/gita";
     license = licenses.mit;
     maintainers = with maintainers; [ seqizz ];
diff --git a/pkgs/applications/version-management/gitkraken/default.nix b/pkgs/applications/version-management/gitkraken/default.nix
index 7a660dedad81f..b806608a5b0ab 100644
--- a/pkgs/applications/version-management/gitkraken/default.nix
+++ b/pkgs/applications/version-management/gitkraken/default.nix
@@ -11,32 +11,32 @@ with lib;
 
 let
   pname = "gitkraken";
-  version = "9.13.0";
+  version = "10.0.2";
 
   throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
 
   srcs = {
     x86_64-linux = fetchzip {
       url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
-      hash = "sha256-BBTa/MhfwTZ9YUJSGt8KocPn6f7m+W8G9yJr8I4NAtw=";
+      hash = "sha256-vqB+2W4c9ObmC5IfBy8oZQToURh4GYms6mzQeZeKJZU=";
     };
 
     x86_64-darwin = fetchzip {
       url = "https://release.axocdn.com/darwin/GitKraken-v${version}.zip";
-      hash = "sha256-+1N4U5vV8XdHdtPeanjU38c8fzfY0uV0AA6exEe/FzQ=";
+      hash = "sha256-60WB5P8rwnUFOhe9BW1sPyweuvwcXswoUUBo6V1VCxQ=";
     };
 
     aarch64-darwin = fetchzip {
       url = "https://release.axocdn.com/darwin-arm64/GitKraken-v${version}.zip";
-      hash = "sha256-kNX8ptDL8vvFDhH3bDU24A2xN1D+tgpzsCj/zIGqctE=";
+      hash = "sha256-XL5GWs+jhuUEiPlHQZ6MIfvDjhislBTCg+KssnB4s6g=";
     };
   };
 
   src = srcs.${stdenv.hostPlatform.system} or throwSystem;
 
   meta = {
-    homepage = "https://www.gitkraken.com/";
-    description = "The downright luxurious and most popular Git client for Windows, Mac & Linux";
+    homepage = "https://www.gitkraken.com/git-client";
+    description = "Simplifying Git for any OS";
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = builtins.attrNames srcs;
@@ -97,13 +97,13 @@ let
     ];
 
     desktopItems = [ (makeDesktopItem {
-      name = "GitKraken";
+      name = "GitKraken Desktop";
       exec = "gitkraken";
       icon = "gitkraken";
-      desktopName = "GitKraken";
+      desktopName = "GitKraken Desktop";
       genericName = "Git Client";
       categories = [ "Development" ];
-      comment = "Graphical Git client from Axosoft";
+      comment = "Unleash your repo";
     }) ];
 
     nativeBuildInputs = [ copyDesktopItems (wrapGAppsHook3.override { makeWrapper = makeShellWrapper; }) ];
diff --git a/pkgs/applications/version-management/gitlab/data.json b/pkgs/applications/version-management/gitlab/data.json
index bedc561743e70..382038ac99a5b 100644
--- a/pkgs/applications/version-management/gitlab/data.json
+++ b/pkgs/applications/version-management/gitlab/data.json
@@ -1,15 +1,15 @@
 {
-  "version": "16.10.6",
-  "repo_hash": "sha256-+nEUyD+ryZicH7suh4MnQRDKMC3M3VWRdO4nZCi2LGs=",
-  "yarn_hash": "0yzywfg4lqxjwm5cqsm4bn97zcrfvpnrs8rjrv9wv3xqvi9h9skd",
+  "version": "16.11.4",
+  "repo_hash": "sha256-VtjGV/0Xtmwqu/YZa6P6jUvlTYj9FNKALcJ3ZvMUJBw=",
+  "yarn_hash": "03q7h8dyssvsr91klr1jk65f5jz1ac71lx0114zq9c7awxrgp6kq",
   "owner": "gitlab-org",
   "repo": "gitlab",
-  "rev": "v16.10.6-ee",
+  "rev": "v16.11.4-ee",
   "passthru": {
-    "GITALY_SERVER_VERSION": "16.10.6",
-    "GITLAB_PAGES_VERSION": "16.10.6",
-    "GITLAB_SHELL_VERSION": "14.34.0",
+    "GITALY_SERVER_VERSION": "16.11.4",
+    "GITLAB_PAGES_VERSION": "16.11.4",
+    "GITLAB_SHELL_VERSION": "14.35.0",
     "GITLAB_ELASTICSEARCH_INDEXER_VERSION": "4.8.0",
-    "GITLAB_WORKHORSE_VERSION": "16.10.6"
+    "GITLAB_WORKHORSE_VERSION": "16.11.4"
   }
 }
diff --git a/pkgs/applications/version-management/gitlab/default.nix b/pkgs/applications/version-management/gitlab/default.nix
index d37604612bdf3..144fd40edd9c6 100644
--- a/pkgs/applications/version-management/gitlab/default.nix
+++ b/pkgs/applications/version-management/gitlab/default.nix
@@ -4,6 +4,7 @@
 , gitlabEnterprise ? false, callPackage, yarn
 , fixup-yarn-lock, replace, file, cacert, fetchYarnDeps, makeWrapper, pkg-config
 , cargo, rustc, rustPlatform
+, icu, zlib, which
 }:
 
 let
@@ -49,7 +50,7 @@ let
                 cp Cargo.lock $out
               '';
             };
-            hash = "sha256-7q2xWAsFkXHxkYNzIjPwJRy72xMXF278cpVzqGLt/9Y=";
+            hash = "sha256-SncgYYnoSaWA4kQWonoXXbSMu1mnwTyhdLXFagqgH+o=";
           };
 
           dontBuild = false;
@@ -74,6 +75,9 @@ let
             find $out -type f -name .rustc_info.json -delete
           '';
         };
+        static_holmes = attrs: {
+          buildInputs = [ which icu zlib ];
+        };
       };
     groups = [
       "default" "unicorn" "ed25519" "metrics" "development" "puma" "test" "kerberos"
diff --git a/pkgs/applications/version-management/gitlab/gitaly/default.nix b/pkgs/applications/version-management/gitlab/gitaly/default.nix
index 469ea9e8231bc..fb175aad462a6 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -1,12 +1,11 @@
 { lib
 , fetchFromGitLab
-, fetchFromGitHub
 , buildGoModule
 , pkg-config
 }:
 
 let
-  version = "16.10.6";
+  version = "16.11.4";
   package_version = "v${lib.versions.major version}";
   gitaly_package = "gitlab.com/gitlab-org/gitaly/${package_version}";
 
@@ -18,10 +17,10 @@ let
       owner = "gitlab-org";
       repo = "gitaly";
       rev = "v${version}";
-      hash = "sha256-C57p3H1L6ZQfjipGoQJup8u6ofir3rrxORtzUA1afL0=";
+      hash = "sha256-sdRKKOWoX0yyqUGpu/mqDdTq2nLZ2Gr5GNV9x99rdeU=";
     };
 
-    vendorHash = "sha256-6gZr0/0ZGcFwwAY4IuW2puL/7akMZvaU0ONJGYyyJas=";
+    vendorHash = "sha256-WCZF7XVW6J1zyPx8e/Mcn+HmHElAUGcEICxiF5HLzBg=";
 
     ldflags = [ "-X ${gitaly_package}/internal/version.version=${version}" "-X ${gitaly_package}/internal/version.moduleVersion=${version}" ];
 
@@ -52,7 +51,7 @@ buildGoModule ({
 
   meta = with lib; {
     homepage = "https://gitlab.com/gitlab-org/gitaly";
-    description = "A Git RPC service for handling all the git calls made by GitLab";
+    description = "Git RPC service for handling all the git calls made by GitLab";
     platforms = platforms.linux ++ [ "x86_64-darwin" ];
     maintainers = teams.gitlab.members;
     license = licenses.mit;
diff --git a/pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix b/pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix
index 747e5ba1b811e..d84947908c721 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "gitlab-container-registry";
-  version = "4.1.0";
+  version = "4.5.0";
   rev = "v${version}-gitlab";
 
   # nixpkgs-update: no auto update
@@ -10,7 +10,7 @@ buildGoModule rec {
     owner = "gitlab-org";
     repo = "container-registry";
     inherit rev;
-    hash = "sha256-t+i9IuBH94PpfriIAaqqWYZHxKJJDOedJ3BQXGEPp0A=";
+    hash = "sha256-dCDybwIfzC79Mobejz/5XbEMQXkPuO8HejjannA6k/M=";
   };
 
   vendorHash = "sha256-sybppXCoTrc196xLBW1+sUg9Y5uA0GAptlJ7RjhzuGc=";
@@ -26,7 +26,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "The GitLab Docker toolset to pack, ship, store, and deliver content";
+    description = "GitLab Docker toolset to pack, ship, store, and deliver content";
     license = licenses.asl20;
     maintainers = with maintainers; [ yayayayaka xanderio ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix b/pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix
index 9b31c3b300a29..6bbd3c555f53c 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix
@@ -18,7 +18,7 @@ buildGoModule rec {
   nativeBuildInputs = [ pkg-config ];
 
   meta = with lib; {
-    description = "Indexes Git repositories into Elasticsearch for GitLab.";
+    description = "Indexes Git repositories into Elasticsearch for GitLab";
     mainProgram = "gitlab-elasticsearch-indexer";
     license = licenses.mit;
     maintainers = with maintainers; [ xanderio yayayayaka ];
diff --git a/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix b/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix
index 115810433df89..480d9921f9c7f 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix
@@ -2,14 +2,14 @@
 
 buildGoModule rec {
   pname = "gitlab-pages";
-  version = "16.10.6";
+  version = "16.11.4";
 
   # nixpkgs-update: no auto update
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-pages";
     rev = "v${version}";
-    hash = "sha256-30ojS+TBIJ4Qzg1jh2Bpdd2s2Yo2S+UqxRRdvNBvB/k=";
+    hash = "sha256-6Fh1IKCs2Bg7Eg44kbCMM8YhLmwWvdZnXp39fphLzcE=";
   };
 
   vendorHash = "sha256-WrR4eZRAuYkhr7ZqP7OXqJ6uwvxzn+t+3OdBNcNaq0M=";
diff --git a/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
index 2b99cc36ba7ec..e5c669ba3e648 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
@@ -2,21 +2,24 @@
 
 buildGoModule rec {
   pname = "gitlab-shell";
-  version = "14.34.0";
+  version = "14.35.0";
 
   # nixpkgs-update: no auto update
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-shell";
     rev = "v${version}";
-    sha256 = "sha256-0LzZZn4kS5uRcj/uJgHvLvd6ZOLi1l4yaSqqRhmTYZs=";
+    sha256 = "sha256-WyIUdDKPKQE1Ddz40WaMA5lDs37OyDuZl/6/nKDYY/8=";
   };
 
   buildInputs = [ ruby libkrb5 ];
 
-  patches = [ ./remove-hardcoded-locations.patch ];
+  patches = [
+    ./remove-hardcoded-locations.patch
+    ./go-mod-tidy.patch
+  ];
 
-  vendorHash = "sha256-RtZ9d3cempY8PxaCPFJ2uEEorem6NDURHZPirr0SUjU=";
+  vendorHash = "sha256-7TUHD14/aCs3lkpTy5CH9WYUc1Ud6rDFCx+JgsINvxU=";
 
   postInstall = ''
     cp -r "$NIX_BUILD_TOP/source"/bin/* $out/bin
diff --git a/pkgs/applications/version-management/gitlab/gitlab-shell/go-mod-tidy.patch b/pkgs/applications/version-management/gitlab/gitlab-shell/go-mod-tidy.patch
new file mode 100644
index 0000000000000..f7ce8cf0575e5
--- /dev/null
+++ b/pkgs/applications/version-management/gitlab/gitlab-shell/go-mod-tidy.patch
@@ -0,0 +1,12 @@
+diff --git a/go.mod b/go.mod
+index 513ccc40..30ba0f6e 100644
+--- a/go.mod
++++ b/go.mod
+@@ -1,6 +1,6 @@
+ module gitlab.com/gitlab-org/gitlab-shell/v14
+ 
+-go 1.20
++go 1.21
+ 
+ require (
+ 	github.com/charmbracelet/git-lfs-transfer v0.1.1-0.20240402115927-f0b226fa61cc
diff --git a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
index 1e251e8058267..d01deb57b2006 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
@@ -5,7 +5,7 @@ in
 buildGoModule rec {
   pname = "gitlab-workhorse";
 
-  version = "16.10.6";
+  version = "16.11.4";
 
   # nixpkgs-update: no auto update
   src = fetchFromGitLab {
@@ -17,10 +17,11 @@ buildGoModule rec {
 
   sourceRoot = "${src.name}/workhorse";
 
-  vendorHash = "sha256-bbKX22Tb2pM+Wnyl1ojdA1nmT40Z5R99mDP1hLD+lco=";
+  vendorHash = "sha256-44EtpjYsxYqDH035/ruPfshfejiO011HybKD2inp8bU=";
   buildInputs = [ git ];
   ldflags = [ "-X main.Version=${version}" ];
   doCheck = false;
+  prodyVendor = true;
 
   meta = with lib; {
     homepage = "http://www.gitlab.com/";
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
index dccd147ca501d..dacf2473597cb 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
@@ -107,7 +107,7 @@ gem 'invisible_captcha', '~> 2.1.0' # rubocop:todo Gemfile/MissingFeatureCategor
 
 # Two-factor authentication
 gem 'devise-two-factor', '~> 4.1.1' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'rqrcode', '~> 2.0', feature_category: :system_access
+gem 'rqrcode', '~> 2.2', feature_category: :system_access
 
 gem 'attr_encrypted', '~> 3.2.4', path: 'vendor/gems/attr_encrypted' # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -135,7 +135,7 @@ gem 'net-ldap', '~> 0.17.1' # rubocop:todo Gemfile/MissingFeatureCategory
 # API
 gem 'grape', '~> 2.0.0', feature_category: :api
 gem 'grape-entity', '~> 0.10.2', feature_category: :api
-gem 'grape-swagger', '~> 2.0.1', group: [:development, :test], feature_category: :api
+gem 'grape-swagger', '~> 2.0.2', group: [:development, :test], feature_category: :api
 gem 'grape-swagger-entity', '~> 0.5.1', group: [:development, :test], feature_category: :api
 gem 'grape-path-helpers', '~> 2.0.1', feature_category: :api
 gem 'rack-cors', '~> 2.0.1', require: 'rack/cors' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -160,7 +160,7 @@ gem 'hamlit', '~> 2.15.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Files attachments
 gem 'carrierwave', '~> 1.3' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'mini_magick', '~> 4.10.1' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'mini_magick', '~> 4.12' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # for backups
 gem 'fog-aws', '~> 3.18' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -176,7 +176,7 @@ gem 'fog-local', '~> 0.8' # rubocop:todo Gemfile/MissingFeatureCategory
 # We may want to update this dependency if this is ever addressed upstream, e.g. via
 # https://github.com/aliyun/aliyun-oss-ruby-sdk/pull/93
 gem 'fog-aliyun', '~> 0.4' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'gitlab-fog-azure-rm', '~> 1.8.0', require: 'fog/azurerm' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'gitlab-fog-azure-rm', '~> 1.9.1', require: 'fog/azurerm' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # for Google storage
 
@@ -207,9 +207,9 @@ gem 'seed-fu', '~> 2.3.7' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'elasticsearch-model', '~> 7.2' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'elasticsearch-rails', '~> 7.2', require: 'elasticsearch/rails/instrumentation' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'elasticsearch-api',   '7.13.3' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'aws-sdk-core', '~> 3.191.3' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'aws-sdk-core', '~> 3.191.6' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'aws-sdk-cloudformation', '~> 1' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'aws-sdk-s3', '~> 1.144.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'aws-sdk-s3', '~> 1.146.1' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'faraday_middleware-aws-sigv4', '~>0.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'typhoeus', '~> 1.4.0' # Used with Elasticsearch to support http keep-alive connections # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -230,7 +230,7 @@ gem 'asciidoctor-kroki', '~> 0.8.0', require: false # rubocop:todo Gemfile/Missi
 gem 'rouge', '~> 4.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'truncato', '~> 0.7.12' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'nokogiri', '~> 1.16' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'gitlab-glfm-markdown', '~> 0.0.13', feature_category: :team_planning
+gem 'gitlab-glfm-markdown', '~> 0.0.14', feature_category: :team_planning
 
 # Calendar rendering
 gem 'icalendar' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -277,7 +277,7 @@ gem 're2', '2.7.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Misc
 
-gem 'semver_dialects', '~> 2.0', feature_category: :static_application_security_testing
+gem 'semver_dialects', '~> 2.0', '>= 2.0.2', feature_category: :static_application_security_testing
 gem 'version_sorter', '~> 2.3' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'csv_builder', path: 'gems/csv_builder' # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -327,7 +327,9 @@ gem 'loofah', '~> 2.22.0' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'licensee', '~> 9.16' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Detect and convert string character encoding
-gem 'charlock_holmes', '~> 0.7.7' # rubocop:todo Gemfile/MissingFeatureCategory
+# We forked charlock_holmes at https://gitlab.com/gitlab-org/ruby/gems/charlock_holmes
+# but changed it's name to 'static_holmes' in the gemspec file.
+gem 'static_holmes', '~> 0.7.7', require: 'charlock_holmes' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Detect mime content type from content
 gem 'ruby-magic', '~> 0.6' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -376,7 +378,7 @@ gem 'thrift', '>= 0.16.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # I18n
 gem 'rails-i18n', '~> 7.0', feature_category: :internationalization
-gem 'gettext_i18n_rails', '~> 1.11.0', feature_category: :internationalization
+gem 'gettext_i18n_rails', '~> 1.12.0', feature_category: :internationalization
 gem 'gettext', '~> 3.4', '>= 3.4.9',
   require: false,
   group: [:development, :test],
@@ -400,12 +402,12 @@ gem 'prometheus-client-mmap', '~> 1.1', '>= 1.1.1', require: 'prometheus/client'
 gem 'warning', '~> 1.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 group :development do
-  gem 'lefthook', '~> 1.5.6', require: false, feature_category: :tooling
+  gem 'lefthook', '~> 1.6.8', require: false, feature_category: :tooling
   gem 'rubocop', feature_category: :tooling
   gem 'solargraph', '~> 0.47.2', require: false # rubocop:todo Gemfile/MissingFeatureCategory
 
   gem 'letter_opener_web', '~> 2.0.0' # rubocop:todo Gemfile/MissingFeatureCategory
-  gem 'lookbook', '~> 2.2' # rubocop:todo Gemfile/MissingFeatureCategory
+  gem 'lookbook', '~> 2.2', '>= 2.2.2' # rubocop:todo Gemfile/MissingFeatureCategory
 
   # Better errors handler
   gem 'better_errors', '~> 2.10.1' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -414,17 +416,19 @@ group :development do
 
   gem 'listen', '~> 3.7' # rubocop:todo Gemfile/MissingFeatureCategory
 
-  gem 'ruby-lsp', "~> 0.14.4", require: false, feature_category: :tooling
+  gem 'ruby-lsp', "~> 0.14.6", require: false, feature_category: :tooling
 
-  gem 'ruby-lsp-rails', "~> 0.3.0", feature_category: :tooling
+  gem 'ruby-lsp-rails', "~> 0.3.3", feature_category: :tooling
 
   gem 'ruby-lsp-rspec', "~> 0.1.10", require: false, feature_category: :tooling
+
+  gem 'gdk-toogle', '~> 0.9', require: 'toogle', feature_category: :tooling
 end
 
 group :development, :test do
   gem 'deprecation_toolkit', '~> 1.5.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'bullet', '~> 7.1.2' # rubocop:todo Gemfile/MissingFeatureCategory
-  gem 'parser', '~> 3.3', '>= 3.3.0.2' # rubocop:todo Gemfile/MissingFeatureCategory
+  gem 'parser', '~> 3.3', '>= 3.3.0.5' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'pry-byebug' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'pry-rails', '~> 0.3.9' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'pry-shell', '~> 0.6.4' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -441,9 +445,9 @@ group :development, :test do
   gem 'spring', '~> 4.1.0' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'spring-commands-rspec', '~> 1.0.4' # rubocop:todo Gemfile/MissingFeatureCategory
 
-  gem 'gitlab-styles', '~> 11.0.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory
+  gem 'gitlab-styles', '~> 11.0.0', feature_category: :tooling
+  gem 'haml_lint', '~> 0.53', feature_category: :tooling
 
-  gem 'haml_lint', '~> 0.53', require: false # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'bundler-audit', '~> 0.9.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory
 
   # Benchmarking & profiling
@@ -455,7 +459,7 @@ group :development, :test do
 
   gem 'knapsack', '~> 1.22.0', feature_category: :tooling
   gem 'crystalball', '~> 0.7.0', require: false, feature_category: :tooling
-  gem 'test_file_finder', '~> 0.2.1', feature_category: :tooling
+  gem 'test_file_finder', '~> 0.3.1', feature_category: :tooling
 
   gem 'simple_po_parser', '~> 1.1.6', require: false # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -500,34 +504,34 @@ end
 group :test do
   gem 'fuubar', '~> 2.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'rspec-retry', '~> 0.6.2', feature_category: :tooling
-  gem 'rspec_profiling', '~> 0.0.8', feature_category: :tooling
+  gem 'rspec_profiling', '~> 0.0.9', feature_category: :tooling
   gem 'rspec-benchmark', '~> 0.6.0', feature_category: :tooling
   gem 'rspec-parameterized', '~> 1.0', require: false, feature_category: :tooling
   gem 'os', '~> 1.1', '>= 1.1.4', feature_category: :tooling
 
   gem 'capybara', '~> 3.40' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'capybara-screenshot', '~> 1.0.26' # rubocop:todo Gemfile/MissingFeatureCategory
-  gem 'selenium-webdriver', '~> 4.18', '>= 4.18.1' # rubocop:todo Gemfile/MissingFeatureCategory
+  gem 'selenium-webdriver', '~> 4.19' # rubocop:todo Gemfile/MissingFeatureCategory
 
   gem 'graphlyte', '~> 1.0.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
   gem 'shoulda-matchers', '~> 5.1.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'email_spec', '~> 2.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
-  gem 'webmock', '~> 3.22.0' # rubocop:todo Gemfile/MissingFeatureCategory
+  gem 'webmock', '~> 3.23.0', feature_category: :shared
   gem 'rails-controller-testing' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'concurrent-ruby', '~> 1.1' # rubocop:todo Gemfile/MissingFeatureCategory
-  gem 'test-prof', '~> 1.3.1' # rubocop:todo Gemfile/MissingFeatureCategory
+  gem 'test-prof', '~> 1.3.2', feature_category: :tooling
   gem 'rspec_junit_formatter' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'guard-rspec' # rubocop:todo Gemfile/MissingFeatureCategory
-  gem 'axe-core-rspec', '~> 4.8.2', feature_category: :tooling
+  gem 'axe-core-rspec', '~> 4.9.0', feature_category: :tooling
 
   # Moved in `test` because https://gitlab.com/gitlab-org/gitlab/-/issues/217527
   gem 'derailed_benchmarks', require: false # rubocop:todo Gemfile/MissingFeatureCategory
 
-  gem 'gitlab_quality-test_tooling', '~> 1.17.0', require: false, feature_category: :tooling
+  gem 'gitlab_quality-test_tooling', '~> 1.21.1', require: false, feature_category: :tooling
 end
 
-gem 'octokit', '~> 8.0', feature_category: :importers
+gem 'octokit', '~> 8.1', feature_category: :importers
 
 gem 'gitlab-mail_room', '~> 0.0.24', require: 'mail_room', feature_category: :shared
 
@@ -559,7 +563,7 @@ gem 'ssh_data', '~> 1.3' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'spamcheck', '~> 1.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Gitaly GRPC protocol definitions
-gem 'gitaly', '~> 16.10.0-rc1', feature_category: :gitaly
+gem 'gitaly', '~> 16.11.0.pre.rc1', feature_category: :gitaly
 
 # KAS GRPC protocol definitions
 gem 'kas-grpc', '~> 0.4.0', feature_category: :deployment_management
@@ -641,7 +645,7 @@ gem 'cvss-suite', '~> 3.0.1', require: 'cvss_suite' # rubocop:todo Gemfile/Missi
 gem 'arr-pm', '~> 0.0.12' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Remote Development
-gem 'devfile', '~> 0.0.25.pre.alpha1', feature_category: :remote_development
+gem 'devfile', '~> 0.0.26.pre.alpha1', feature_category: :remote_development
 
 # Apple plist parsing
 gem 'CFPropertyList', '~> 3.0.0' # rubocop:todo Gemfile/MissingFeatureCategory
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
index e00e49f2f69e8..bb661693ff498 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
@@ -27,6 +27,8 @@ PATH
   remote: gems/gitlab-backup-cli
   specs:
     gitlab-backup-cli (0.0.1)
+      activesupport (~> 7.0.8)
+      rainbow (~> 3.0)
       thor (~> 1.3)
 
 PATH
@@ -309,7 +311,7 @@ GEM
     aws-sdk-cloudformation (1.41.0)
       aws-sdk-core (~> 3, >= 3.99.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-core (3.191.3)
+    aws-sdk-core (3.191.6)
       aws-eventstream (~> 1, >= 1.3.0)
       aws-partitions (~> 1, >= 1.651.0)
       aws-sigv4 (~> 1.8)
@@ -317,7 +319,7 @@ GEM
     aws-sdk-kms (1.76.0)
       aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.144.0)
+    aws-sdk-s3 (1.146.1)
       aws-sdk-core (~> 3, >= 3.191.0)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.8)
@@ -326,7 +328,7 @@ GEM
     axe-core-api (4.8.0)
       dumb_delegator
       virtus
-    axe-core-rspec (4.8.2)
+    axe-core-rspec (4.9.0)
       axe-core-api
       dumb_delegator
       virtus
@@ -392,7 +394,6 @@ GEM
       ssrf_filter (~> 1.0, < 1.1.0)
     cbor (0.5.9.8)
     character_set (1.8.0)
-    charlock_holmes (0.7.7)
     chef-config (18.3.0)
       addressable
       chef-utils (= 18.3.0)
@@ -415,7 +416,7 @@ GEM
       descendants_tracker (~> 0.0.1)
     colored2 (3.1.2)
     commonmarker (0.23.10)
-    concurrent-ruby (1.2.2)
+    concurrent-ruby (1.2.3)
     connection_pool (2.4.1)
     cork (0.3.0)
       colored2 (~> 3.1)
@@ -481,7 +482,7 @@ GEM
       thor (>= 0.19, < 2)
     descendants_tracker (0.0.4)
       thread_safe (~> 0.3, >= 0.3.1)
-    devfile (0.0.25.pre.alpha1)
+    devfile (0.0.26.pre.alpha1)
     device_detector (1.0.0)
     devise (4.9.3)
       bcrypt (~> 3.0)
@@ -669,6 +670,9 @@ GEM
       googleapis-common-protos-types (>= 1.3.1, < 2.a)
       googleauth (~> 1.0)
       grpc (~> 1.36)
+    gdk-toogle (0.9.3)
+      haml
+      rails (>= 7.0.4.2)
     gemoji (3.0.1)
     get_process_mem (0.2.7)
       ffi (~> 1.0)
@@ -678,12 +682,12 @@ GEM
       prime
       racc
       text (>= 1.3.0)
-    gettext_i18n_rails (1.11.0)
+    gettext_i18n_rails (1.12.0)
       fast_gettext (>= 0.9.0)
     git (1.18.0)
       addressable (~> 2.8)
       rchardet (~> 1.8)
-    gitaly (16.10.0.pre.rc1)
+    gitaly (16.11.0.pre.rc1)
       grpc (~> 1.0)
     gitlab (4.19.0)
       httparty (~> 0.20)
@@ -697,13 +701,13 @@ GEM
     gitlab-experiment (0.9.1)
       activesupport (>= 3.0)
       request_store (>= 1.0)
-    gitlab-fog-azure-rm (1.8.0)
+    gitlab-fog-azure-rm (1.9.1)
       azure-storage-blob (~> 2.0)
       azure-storage-common (~> 2.0)
-      fog-core (= 2.1.0)
-      fog-json (~> 1.2.0)
+      fog-core (~> 2.1)
+      fog-json (~> 1.2)
       mime-types
-    gitlab-glfm-markdown (0.0.13)
+    gitlab-glfm-markdown (0.0.14)
       rb_sys (~> 0.9.86)
     gitlab-labkit (0.35.1)
       actionpack (>= 5.0.0, < 8.0.0)
@@ -739,8 +743,8 @@ GEM
       omniauth (>= 1.3, < 3)
       pyu-ruby-sasl (>= 0.0.3.3, < 0.1)
       rubyntlm (~> 0.5)
-    gitlab_quality-test_tooling (1.17.0)
-      activesupport (>= 6.1, < 7.1)
+    gitlab_quality-test_tooling (1.21.1)
+      activesupport (>= 6.1, < 7.2)
       amatch (~> 0.4.1)
       gitlab (~> 4.19)
       http (~> 5.0)
@@ -856,7 +860,7 @@ GEM
       grape (~> 2.0)
       rake (> 12)
       ruby2_keywords (~> 0.0.2)
-    grape-swagger (2.0.1)
+    grape-swagger (2.0.2)
       grape (>= 1.7, < 3.0)
       rack-test (~> 2)
     grape-swagger-entity (0.5.1)
@@ -923,7 +927,7 @@ GEM
       thor
       tilt
     hana (1.3.7)
-    hashdiff (1.0.1)
+    hashdiff (1.1.0)
     hashie (5.0.0)
     health_check (3.1.0)
       railties (>= 5.0)
@@ -949,7 +953,7 @@ GEM
       mini_mime (>= 1.0.0)
       multi_xml (>= 0.5.2)
     httpclient (2.8.3)
-    i18n (1.14.1)
+    i18n (1.14.4)
       concurrent-ruby (~> 1.0)
     i18n_data (0.13.1)
     icalendar (2.8.0)
@@ -1023,7 +1027,7 @@ GEM
     language_server-protocol (3.17.0.3)
     launchy (2.5.0)
       addressable (~> 2.7)
-    lefthook (1.5.6)
+    lefthook (1.6.8)
     letter_opener (1.7.0)
       launchy (~> 2.2)
     letter_opener_web (2.0.0)
@@ -1061,7 +1065,7 @@ GEM
     loofah (2.22.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.12.0)
-    lookbook (2.2.0)
+    lookbook (2.2.2)
       activemodel
       css_parser
       htmlbeautifier (~> 1.3)
@@ -1071,7 +1075,7 @@ GEM
       redcarpet (~> 3.5)
       rouge (>= 3.26, < 5.0)
       view_component (>= 2.0)
-      yard (~> 0.9.25)
+      yard (~> 0.9)
       zeitwerk (~> 2.5)
     lru_redux (1.1.0)
     lumberjack (1.2.7)
@@ -1091,7 +1095,7 @@ GEM
       mime-types-data (~> 3.2015)
     mime-types-data (3.2023.1003)
     mini_histogram (0.3.1)
-    mini_magick (4.10.1)
+    mini_magick (4.12.0)
     mini_mime (1.1.2)
     mini_portile2 (2.8.5)
     minitest (5.11.3)
@@ -1153,7 +1157,8 @@ GEM
       rack (>= 1.2, < 4)
       snaky_hash (~> 2.0)
       version_gem (~> 1.1)
-    octokit (8.0.0)
+    octokit (8.1.0)
+      base64
       faraday (>= 1, < 3)
       sawyer (~> 0.9)
     ohai (18.1.3)
@@ -1260,7 +1265,7 @@ GEM
       expgen (~> 0.1)
       rainbow (~> 3.1.1)
     parallel (1.22.1)
-    parser (3.3.0.2)
+    parser (3.3.0.5)
       ast (~> 2.4.1)
       racc
     parslet (1.8.2)
@@ -1471,7 +1476,7 @@ GEM
     rspec-support (3.12.0)
     rspec_junit_formatter (0.6.0)
       rspec-core (>= 2, < 4, != 2.12.0)
-    rspec_profiling (0.0.8)
+    rspec_profiling (0.0.9)
       activerecord
       get_process_mem
       rails
@@ -1508,11 +1513,11 @@ GEM
     ruby-fogbugz (0.3.0)
       crack (~> 0.4)
       multipart-post (~> 2.0)
-    ruby-lsp (0.14.4)
+    ruby-lsp (0.14.6)
       language_server-protocol (~> 3.17.0)
       prism (>= 0.22.0, < 0.25)
       sorbet-runtime (>= 0.5.10782)
-    ruby-lsp-rails (0.3.1)
+    ruby-lsp-rails (0.3.3)
       actionpack (>= 6.0)
       activerecord (>= 6.0)
       railties (>= 6.0)
@@ -1550,12 +1555,12 @@ GEM
     seed-fu (2.3.7)
       activerecord (>= 3.1)
       activesupport (>= 3.1)
-    selenium-webdriver (4.18.1)
+    selenium-webdriver (4.19.0)
       base64 (~> 0.2)
       rexml (~> 3.2, >= 3.2.5)
       rubyzip (>= 1.2.2, < 3.0)
       websocket (~> 1.0)
-    semver_dialects (2.0.0)
+    semver_dialects (2.0.2)
       deb_version (~> 1.0.1)
       pastel (~> 0.8.0)
       thor (~> 1.3)
@@ -1641,6 +1646,7 @@ GEM
     state_machines-activerecord (0.8.0)
       activerecord (>= 5.1)
       state_machines-activemodel (>= 0.8.0)
+    static_holmes (0.7.7)
     strings (0.2.1)
       strings-ansi (~> 0.2)
       unicode-display_width (>= 1.5, < 3.0)
@@ -1667,8 +1673,8 @@ GEM
       unicode-display_width (>= 1.1.1, < 3)
     terser (1.0.2)
       execjs (>= 0.3.0, < 3)
-    test-prof (1.3.1)
-    test_file_finder (0.2.1)
+    test-prof (1.3.2)
+    test_file_finder (0.3.1)
       faraday (>= 1.0, < 3.0, != 2.0.0)
     text (1.3.1)
     thor (1.3.1)
@@ -1783,7 +1789,7 @@ GEM
     webfinger (1.2.0)
       activesupport
       httpclient (>= 2.4)
-    webmock (3.22.0)
+    webmock (3.23.0)
       addressable (>= 2.8.0)
       crack (>= 0.3.2)
       hashdiff (>= 0.4.0, < 2.0.0)
@@ -1830,9 +1836,9 @@ DEPENDENCIES
   attr_encrypted (~> 3.2.4)!
   awesome_print
   aws-sdk-cloudformation (~> 1)
-  aws-sdk-core (~> 3.191.3)
-  aws-sdk-s3 (~> 1.144.0)
-  axe-core-rspec (~> 4.8.2)
+  aws-sdk-core (~> 3.191.6)
+  aws-sdk-s3 (~> 1.146.1)
+  axe-core-rspec (~> 4.9.0)
   babosa (~> 2.0)
   base32 (~> 0.3.0)
   batch-loader (~> 2.0.1)
@@ -1848,7 +1854,6 @@ DEPENDENCIES
   capybara (~> 3.40)
   capybara-screenshot (~> 1.0.26)
   carrierwave (~> 1.3)
-  charlock_holmes (~> 0.7.7)
   circuitbox (= 2.0.0)
   click_house-client!
   cloud_profiler_agent (~> 0.0.0)!
@@ -1866,7 +1871,7 @@ DEPENDENCIES
   declarative_policy (~> 1.1.0)
   deprecation_toolkit (~> 1.5.1)
   derailed_benchmarks
-  devfile (~> 0.0.25.pre.alpha1)
+  devfile (~> 0.0.26.pre.alpha1)
   device_detector
   devise (~> 4.9.3)
   devise-pbkdf2-encryptable (~> 0.0.0)!
@@ -1899,15 +1904,16 @@ DEPENDENCIES
   fog-local (~> 0.8)
   fugit (~> 1.8.1)
   fuubar (~> 2.2.0)
+  gdk-toogle (~> 0.9)
   gettext (~> 3.4, >= 3.4.9)
-  gettext_i18n_rails (~> 1.11.0)
-  gitaly (~> 16.10.0.pre.rc1)
+  gettext_i18n_rails (~> 1.12.0)
+  gitaly (~> 16.11.0.pre.rc1)
   gitlab-backup-cli!
   gitlab-chronic (~> 0.10.5)
   gitlab-dangerfiles (~> 4.7.0)
   gitlab-experiment (~> 0.9.1)
-  gitlab-fog-azure-rm (~> 1.8.0)
-  gitlab-glfm-markdown (~> 0.0.13)
+  gitlab-fog-azure-rm (~> 1.9.1)
+  gitlab-glfm-markdown (~> 0.0.14)
   gitlab-housekeeper!
   gitlab-http!
   gitlab-labkit (~> 0.35.1)
@@ -1926,7 +1932,7 @@ DEPENDENCIES
   gitlab-utils!
   gitlab_chronic_duration (~> 0.12)
   gitlab_omniauth-ldap (~> 2.2.0)
-  gitlab_quality-test_tooling (~> 1.17.0)
+  gitlab_quality-test_tooling (~> 1.21.1)
   gon (~> 6.4.0)
   google-apis-androidpublisher_v3 (~> 0.34.0)
   google-apis-cloudbilling_v1 (~> 0.21.0)
@@ -1948,7 +1954,7 @@ DEPENDENCIES
   grape (~> 2.0.0)
   grape-entity (~> 0.10.2)
   grape-path-helpers (~> 2.0.1)
-  grape-swagger (~> 2.0.1)
+  grape-swagger (~> 2.0.2)
   grape-swagger-entity (~> 0.5.1)
   grape_logging (~> 1.8, >= 1.8.4)
   graphiql-rails (~> 1.8.0)
@@ -1983,7 +1989,7 @@ DEPENDENCIES
   knapsack (~> 1.22.0)
   kramdown (~> 2.3.1)
   kubeclient (~> 4.11.0)
-  lefthook (~> 1.5.6)
+  lefthook (~> 1.6.8)
   letter_opener_web (~> 2.0.0)
   license_finder (~> 7.0)
   licensee (~> 9.16)
@@ -1991,14 +1997,14 @@ DEPENDENCIES
   lockbox (~> 1.3.0)
   lograge (~> 0.5)
   loofah (~> 2.22.0)
-  lookbook (~> 2.2)
+  lookbook (~> 2.2, >= 2.2.2)
   lru_redux
   mail (= 2.8.1)
   mail-smtp_pool (~> 0.1.0)!
   marginalia (~> 1.11.1)
   memory_profiler (~> 1.0)
   microsoft_graph_mailer (~> 0.1.0)!
-  mini_magick (~> 4.10.1)
+  mini_magick (~> 4.12)
   minitest (~> 5.11.0)
   multi_json (~> 1.14.1)
   neighbor (~> 0.2.3)
@@ -2008,7 +2014,7 @@ DEPENDENCIES
   net-protocol (~> 0.1.3)
   nokogiri (~> 1.16)
   oauth2 (~> 2.0)
-  octokit (~> 8.0)
+  octokit (~> 8.1)
   ohai (~> 18.1)
   oj (~> 3.13.21)
   oj-introspect (~> 0.7)
@@ -2036,7 +2042,7 @@ DEPENDENCIES
   os (~> 1.1, >= 1.1.4)
   pact (~> 1.64)
   parallel (~> 1.19)
-  parser (~> 3.3, >= 3.3.0.2)
+  parser (~> 3.3, >= 3.3.0.5)
   parslet (~> 1.8)
   peek (~> 1.1)
   pg (~> 1.5.6)
@@ -2070,17 +2076,17 @@ DEPENDENCIES
   retriable (~> 3.1.2)
   rexml (~> 3.2.6)
   rouge (~> 4.2.0)
-  rqrcode (~> 2.0)
+  rqrcode (~> 2.2)
   rspec-benchmark (~> 0.6.0)
   rspec-parameterized (~> 1.0)
   rspec-rails (~> 6.1.1)
   rspec-retry (~> 0.6.2)
   rspec_junit_formatter
-  rspec_profiling (~> 0.0.8)
+  rspec_profiling (~> 0.0.9)
   rubocop
   ruby-fogbugz (~> 0.3.0)
-  ruby-lsp (~> 0.14.4)
-  ruby-lsp-rails (~> 0.3.0)
+  ruby-lsp (~> 0.14.6)
+  ruby-lsp-rails (~> 0.3.3)
   ruby-lsp-rspec (~> 0.1.10)
   ruby-magic (~> 0.6)
   ruby-openai (~> 3.7)
@@ -2091,8 +2097,8 @@ DEPENDENCIES
   sanitize (~> 6.0.2)
   sd_notify (~> 0.1.0)
   seed-fu (~> 2.3.7)
-  selenium-webdriver (~> 4.18, >= 4.18.1)
-  semver_dialects (~> 2.0)
+  selenium-webdriver (~> 4.19)
+  semver_dialects (~> 2.0, >= 2.0.2)
   sentry-rails (~> 5.10.0)
   sentry-raven (~> 3.1)
   sentry-ruby (~> 5.10.0)
@@ -2116,12 +2122,13 @@ DEPENDENCIES
   ssh_data (~> 1.3)
   stackprof (~> 0.2.25)
   state_machines-activerecord (~> 0.8.0)
+  static_holmes (~> 0.7.7)
   sys-filesystem (~> 1.4.3)
   tanuki_emoji (~> 0.9)
   telesignenterprise (~> 2.2)
   terser (= 1.0.2)
-  test-prof (~> 1.3.1)
-  test_file_finder (~> 0.2.1)
+  test-prof (~> 1.3.2)
+  test_file_finder (~> 0.3.1)
   thrift (>= 0.16.0)
   timfel-krb5-auth (~> 0.8)
   toml-rb (~> 2.2.0)
@@ -2138,10 +2145,10 @@ DEPENDENCIES
   vmstat (~> 2.3.0)
   warning (~> 1.3.0)
   webauthn (~> 3.0)
-  webmock (~> 3.22.0)
+  webmock (~> 3.23.0)
   webrick (~> 1.8.1)
   wikicloth (= 0.8.1)
   yajl-ruby (~> 1.4.3)
 
 BUNDLED WITH
-   2.5.6
+   2.5.8
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
index 2520955593dee..dff2917092d8b 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
@@ -400,10 +400,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "088nq8yz9n4p7pnhjwp9nbxlkj7jwchpkzvnl4nybfb1dkvk4dns";
+      sha256 = "08h9apxdn2aflkg751j4i56ks4750znfbj56w4zlxf4jk7jxkbyk";
       type = "gem";
     };
-    version = "3.191.3";
+    version = "3.191.6";
   };
   aws-sdk-kms = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -422,10 +422,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ypg31pfzbd43n1m20cyf6gyrlv6m0c8hmk2p5hidy1y4pi34f6g";
+      sha256 = "1al80phz4x9wwfnr07q1l8h5f0qxgfrrycbg8jvznhxm3zhrakrq";
       type = "gem";
     };
-    version = "1.144.0";
+    version = "1.146.1";
   };
   aws-sigv4 = {
     dependencies = ["aws-eventstream"];
@@ -455,10 +455,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14h4abf5h242a0vn2r05pkr8311qbxgkl63py7vbhx8bfpk1kq3i";
+      sha256 = "0fnzb49lmxs18lc6z6araqy1j7jiqh8naiwq9hjj3i7hbajizy75";
       type = "gem";
     };
-    version = "4.8.2";
+    version = "4.9.0";
   };
   axiom-types = {
     dependencies = ["descendants_tracker" "ice_nine" "thread_safe"];
@@ -787,16 +787,6 @@ src:
     };
     version = "1.8.0";
   };
-  charlock_holmes = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0hybw8jw9ryvz5zrki3gc9r88jqy373m6v46ynxsdzv1ysiyr40p";
-      type = "gem";
-    };
-    version = "0.7.7";
-  };
   chef-config = {
     dependencies = ["addressable" "chef-utils" "fuzzyurl" "mixlib-config" "mixlib-shellout" "tomlrb"];
     groups = ["default"];
@@ -936,14 +926,14 @@ src:
     version = "0.23.10";
   };
   concurrent-ruby = {
-    groups = ["default" "development" "test"];
+    groups = ["default" "development" "monorepo" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0krcwb6mn0iklajwngwsg850nk8k9b35dhmc2qkbdqvmifdi2y9q";
+      sha256 = "1qh1b14jwbbj242klkyz5fc7npd4j0mvndz62gajhvl1l3wd7zc2";
       type = "gem";
     };
-    version = "1.2.2";
+    version = "1.2.3";
   };
   connection_pool = {
     groups = ["default"];
@@ -1233,10 +1223,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p11hv0a2s4m29vvyr7z22wjr9f4cfmdjnqidrv62rfcg9r73w0g";
+      sha256 = "1r69vrhh72j6fq41ii99n4ncf0kgb82nhb7j8ia1pr94m4prc4i0";
       type = "gem";
     };
-    version = "0.0.25.pre.alpha1";
+    version = "0.0.26.pre.alpha1";
   };
   device_detector = {
     groups = ["default"];
@@ -2089,6 +2079,17 @@ src:
     };
     version = "0.20.0";
   };
+  gdk-toogle = {
+    dependencies = ["haml" "rails"];
+    groups = ["development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gzf4b6y5v0d5pbc0lq33383m3c8y8kq5yy57124lb9bblymszw9";
+      type = "gem";
+    };
+    version = "0.9.3";
+  };
   gemoji = {
     groups = ["default" "development" "test"];
     platforms = [];
@@ -2127,10 +2128,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gibn9j4k9ck54v7rxbqwa587fc2l92clv9r71zhyl3c4m57x771";
+      sha256 = "1gn1mzqx49i5zfmal499piij457r6jn82cz8w53wxqm965vq3i3a";
       type = "gem";
     };
-    version = "1.11.0";
+    version = "1.12.0";
   };
   git = {
     dependencies = ["addressable" "rchardet"];
@@ -2149,10 +2150,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nwc8mlpznq9b7rgcbxwzaj936pn0syjasxdhplpiz3iqbr64ca8";
+      sha256 = "1bp7lsqhcmb1fi1wsij1gbl0ip9jcwmzxagfg39c7dnm7xglycr4";
       type = "gem";
     };
-    version = "16.10.0.pre.rc1";
+    version = "16.11.0.pre.rc1";
   };
   gitlab = {
     dependencies = ["httparty" "terminal-table"];
@@ -2166,7 +2167,7 @@ src:
     version = "4.19.0";
   };
   gitlab-backup-cli = {
-    dependencies = ["thor"];
+    dependencies = ["activesupport" "rainbow" "thor"];
     groups = ["default"];
     platforms = [];
     source = {
@@ -2214,10 +2215,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0a3c3slg1iqlhyci9mnbasgw1qcsnznczyqjkn28hfr79cblpwp4";
+      sha256 = "0dsg53f6gfhf9rs6wslragagl3ysi429p45iy4dkq664i8c8wsq2";
       type = "gem";
     };
-    version = "1.8.0";
+    version = "1.9.1";
   };
   gitlab-glfm-markdown = {
     dependencies = ["rb_sys"];
@@ -2225,10 +2226,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nk9kp3zb2x1hpqirq7x2qqpmfsqq4izprbicxjb20bqvm4mvvdb";
+      sha256 = "0finxlax2pgxw85qnyz3p4pmi8dz6qj8bsjkrkrnkd93k41lyfcn";
       type = "gem";
     };
-    version = "0.0.13";
+    version = "0.0.14";
   };
   gitlab-housekeeper = {
     dependencies = ["activesupport" "awesome_print" "httparty" "rubocop"];
@@ -2422,10 +2423,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1d59k5c0y8vkmz7fjh7x455d4d19fpw4r9agv02vqyvp7glrbm34";
+      sha256 = "1g4fsldxs63ds31sni422xk0g3yrr9jpga0bah5ip4hys8as3wl3";
       type = "gem";
     };
-    version = "1.17.0";
+    version = "1.21.1";
   };
   globalid = {
     dependencies = ["activesupport"];
@@ -2805,10 +2806,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1467ni6f0yy4z3qldjs8x0h50n9ym6zyjbx5gqqzbq6zhvgbx40g";
+      sha256 = "018843mknkjs1ybazs7b8k7k0g67m1ldc42z8vlb5yinp9b9l4x7";
       type = "gem";
     };
-    version = "2.0.1";
+    version = "2.0.2";
   };
   grape-swagger-entity = {
     dependencies = ["grape-entity" "grape-swagger"];
@@ -3010,10 +3011,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nynpl0xbj0nphqx1qlmyggq58ms1phf5i03hk64wcc0a17x1m1c";
+      sha256 = "1jf9dxgjz6z7fvymyz2acyvn9iyvwkn6d9sk7y4fxwbmfc75yimm";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.1.0";
   };
   hashie = {
     groups = ["default"];
@@ -3158,10 +3159,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qaamqsh5f3szhcakkak8ikxlzxqnv49n2p7504hcz2l0f4nj0wx";
+      sha256 = "0lbm33fpb3w06wd2231sg58dwlwgjsvym93m548ajvl6s3mfvpn7";
       type = "gem";
     };
-    version = "1.14.1";
+    version = "1.14.4";
   };
   i18n_data = {
     groups = ["default"];
@@ -3507,10 +3508,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1rc7fzg4rjchyv7rd6vlz35hg5n8k5625s78hj12zji0xhg1jznc";
+      sha256 = "08y6f6f4nhg4dc96rbawhjjalxn0chzvvza5d8qfzsac6zl83094";
       type = "gem";
     };
-    version = "1.5.6";
+    version = "1.6.8";
   };
   letter_opener = {
     dependencies = ["launchy"];
@@ -3636,10 +3637,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nd26yk8fwhb7lf7knzl6pf93v2spyf90gz4c6f8xfzq9hv6kj17";
+      sha256 = "0kxnshqv3xv3hprnn4rsqq0djrqpmfcr7x8qmwy6p91g7yqhkhx5";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.2.2";
   };
   lru_redux = {
     groups = ["default"];
@@ -3783,10 +3784,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lpq12z70n10c1qshcddd5nib2pkcbkwzvmiqqzj60l01k3x4fg9";
+      sha256 = "0slh78f9z6n0l1i2km7m48yz7l4fjrk88sj1f4mh1wb39sl2yc37";
       type = "gem";
     };
-    version = "4.10.1";
+    version = "4.12.0";
   };
   mini_mime = {
     groups = ["default" "development" "test"];
@@ -4165,15 +4166,15 @@ src:
     version = "2.0.9";
   };
   octokit = {
-    dependencies = ["faraday" "sawyer"];
+    dependencies = ["base64" "faraday" "sawyer"];
     groups = ["danger" "default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11fhv1a43c51jkgmqf62aypf9yw74lc6ph4qmzsh2bydwwzbwqn3";
+      sha256 = "1kgqga0ycrlrk586gw2s7f8p4w699gjj3zvmmqkhx4afnplrq8l2";
       type = "gem";
     };
-    version = "8.0.0";
+    version = "8.1.0";
   };
   ohai = {
     dependencies = ["chef-config" "chef-utils" "ffi" "ffi-yajl" "ipaddress" "mixlib-cli" "mixlib-config" "mixlib-log" "mixlib-shellout" "plist" "train-core" "wmi-lite"];
@@ -4565,10 +4566,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "181faqz59p2mbfab5q4l1r298pq0nxl0k85rjcb58g0lardmv321";
+      sha256 = "11r6kp8wam0nkfvnwyc1fmvky102r1vcfr84vi2p1a2wa0z32j3p";
       type = "gem";
     };
-    version = "3.3.0.2";
+    version = "3.3.0.5";
   };
   parslet = {
     groups = ["default" "development" "test"];
@@ -5483,10 +5484,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0icl94f0mmw7g4h1qnsil0cw6zw7b5wv0ilxda01928vh5bf87mk";
+      sha256 = "143m9yiawqrjc02wack30k7m5w4d1axlsw0ds71vl55amqnvx6b1";
       type = "gem";
     };
-    version = "0.0.8";
+    version = "0.0.9";
   };
   rubocop = {
     dependencies = ["json" "language_server-protocol" "parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
@@ -5593,10 +5594,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1v0dwirw4mq7qkf5a7wvagil4ppvk4dw4ln8hs6rmf2xrf56ga5f";
+      sha256 = "0ja3ag2q0w8xsbf25sf2x98gvdia534ld2m8hn1bfwzhwb5ysfsl";
       type = "gem";
     };
-    version = "0.14.4";
+    version = "0.14.6";
   };
   ruby-lsp-rails = {
     dependencies = ["actionpack" "activerecord" "railties" "ruby-lsp" "sorbet-runtime"];
@@ -5604,10 +5605,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "033kxj55pywnc4cjqcfb2jvn96nsa93m93qd2p636jf5hkqazq41";
+      sha256 = "1hrb39svnd8v6vnd3vyzsby6qr0z28cj0v9r02hcjvadm2p67g03";
       type = "gem";
     };
-    version = "0.3.1";
+    version = "0.3.3";
   };
   ruby-lsp-rspec = {
     dependencies = ["ruby-lsp"];
@@ -5804,10 +5805,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1asysih4l1mv24wqxrbnz0c0454kw3dhqaj6nsa8pyn9fjjdms5b";
+      sha256 = "0rjh9s5x7jqaxjfcz2m3hphhlajk9nxs6wdsnia62iba07bd32sc";
       type = "gem";
     };
-    version = "4.18.1";
+    version = "4.19.0";
   };
   semver_dialects = {
     dependencies = ["deb_version" "pastel" "thor" "tty-command"];
@@ -5815,10 +5816,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11s5nr5v81qjlf2glgqjisvnv12vmwsmi9abbzqkb1nqjhw43691";
+      sha256 = "1zhnq4wkcy8vv6qazfg0p3zrlswxhz9glqnq2991p4vg86grq1b0";
       type = "gem";
     };
-    version = "2.0.0";
+    version = "2.0.2";
   };
   sentry-rails = {
     dependencies = ["railties" "sentry-ruby"];
@@ -6197,6 +6198,16 @@ src:
     };
     version = "0.8.0";
   };
+  static_holmes = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01w2vjm0sssiw3j38jhgkqsqn1wdqnm2ld24hi8ib2bj47c2di47";
+      type = "gem";
+    };
+    version = "0.7.7";
+  };
   strings = {
     dependencies = ["strings-ansi" "unicode-display_width" "unicode_utils"];
     groups = ["default" "development" "test"];
@@ -6350,10 +6361,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08vm33d51zdan4zj4cccw3lx06p6flc1h40kgdfm9rp4x83csdda";
+      sha256 = "09zw1y52yhzw2z01za87dglpfpdrm1dma00629wpq6462nxq9574";
       type = "gem";
     };
-    version = "1.3.1";
+    version = "1.3.2";
   };
   test_file_finder = {
     dependencies = ["faraday"];
@@ -6361,10 +6372,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cyd1wpi280w4v6f6panbvrli8493phzbb09nvxswxhcv1lv7sd5";
+      sha256 = "16bi2x6n8vwpinlm3n7j666ryq06zndhp4cj32sq89vbl240byw3";
       type = "gem";
     };
-    version = "0.2.1";
+    version = "0.3.1";
   };
   text = {
     groups = ["default" "development"];
@@ -6888,10 +6899,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13jb9q0qv9ajw1ajr4cawnqj4h0dws3w5j4v5n6v3xk7a8rnjzr7";
+      sha256 = "07zk8ljq5kyd1mm9qw3452fcnf7frg3irh9ql8ln2m8zbi1qf1qh";
       type = "gem";
     };
-    version = "3.22.0";
+    version = "3.23.0";
   };
   webrick = {
     groups = ["default" "development" "test"];
diff --git a/pkgs/applications/version-management/gitmux/default.nix b/pkgs/applications/version-management/gitmux/default.nix
index 1a5d5c6b3893c..8bb5277dc4ec7 100644
--- a/pkgs/applications/version-management/gitmux/default.nix
+++ b/pkgs/applications/version-management/gitmux/default.nix
@@ -1,21 +1,20 @@
-{ fetchFromGitHub, buildGoModule, lib, testers, gitmux }:
+{ fetchFromGitHub, buildGoModule, lib, testers, gitmux, git }:
 
 buildGoModule rec {
   pname = "gitmux";
-  version = "0.10.4";
+  version = "0.11.2";
 
   src = fetchFromGitHub {
     owner = "arl";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-toEKWkyCmeoG6eVK19RKipCqHM7OhZrkWRHNAclFgoI=";
+    sha256 = "sha256-0Cw98hTg8qPu7BUTBDEgFBOpoCxstPW9HeNXQUUjgGA=";
   };
 
   vendorHash = "sha256-PHY020MIuLlC1LqNGyBJRNd7J+SzoHbNMPAil7CKP/M=";
 
-  # GitHub source does contain a regression test for the module
-  # but it requires networking as it git clones a repo from github
-  doCheck = false;
+  nativeCheckInputs = [ git ];
+  doCheck = true;
 
   ldflags = [ "-X main.version=${version}" ];
 
diff --git a/pkgs/applications/version-management/gitnuro/default.nix b/pkgs/applications/version-management/gitnuro/default.nix
index d59287db4bb95..8809f748e6b71 100644
--- a/pkgs/applications/version-management/gitnuro/default.nix
+++ b/pkgs/applications/version-management/gitnuro/default.nix
@@ -5,16 +5,26 @@
 , copyDesktopItems
 , makeDesktopItem
 , jre
+, libGL
 }:
 
 stdenv.mkDerivation rec {
   pname = "gitnuro";
   version = "1.3.1";
 
-  src = fetchurl {
-    url = "https://github.com/JetpackDuba/Gitnuro/releases/download/v${version}/Gitnuro-linux-x86_64-${version}.jar";
-    hash = "sha256-7yne9dD/7VT+H4tIBJvpOf8ksECCpoNAa8TSmFmjYMw=";
-  };
+  src = fetchurl (
+    if stdenv.hostPlatform.system == "x86_64-linux" then
+    {
+      url = "https://github.com/JetpackDuba/Gitnuro/releases/download/v${version}/Gitnuro-linux-x86_64-${version}.jar";
+      hash = "sha256-7yne9dD/7VT+H4tIBJvpOf8ksECCpoNAa8TSmFmjYMw=";
+    }
+    else if stdenv.hostPlatform.system == "aarch64-linux" then
+    {
+      url = "https://github.com/JetpackDuba/Gitnuro/releases/download/v${version}/Gitnuro-linux-arm_aarch64-${version}.jar";
+      hash = "sha256-6TRQfIhaKBjNPn3tEVWoUF92JAmwlHUtQZE8gKEZ/ZI=";
+    }
+    else throw "Unsupported architecture: ${stdenv.hostPlatform.system}"
+  );
 
   icon = fetchurl {
     url = "https://raw.githubusercontent.com/JetpackDuba/Gitnuro/4cfc45069c176f807d9bfb1a7cba410257078d3c/icons/logo.svg";
@@ -30,8 +40,13 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     runHook preInstall
-    makeWrapper ${jre}/bin/java $out/bin/gitnuro --add-flags "-jar $src"
+
+    makeWrapper ${jre}/bin/java $out/bin/gitnuro \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libGL ]}" \
+      --add-flags "-jar $src"
+
     install -Dm444 $icon $out/share/icons/hicolor/scalable/apps/com.jetpackduba.Gitnuro.svg
+
     runHook postInstall
   '';
 
@@ -50,7 +65,8 @@ stdenv.mkDerivation rec {
     description = "A FOSS Git multiplatform client based on Compose and JGit";
     homepage = "https://gitnuro.com/";
     license = licenses.gpl3Plus;
-    platforms = [ "x86_64-linux" ];
+    platforms = [ "x86_64-linux" "aarch64-linux" ];
+    sourceProvenance = with sourceTypes; [ binaryBytecode ];
     maintainers = with maintainers; [ zendo ];
     mainProgram = "gitnuro";
   };
diff --git a/pkgs/applications/version-management/gitoxide/default.nix b/pkgs/applications/version-management/gitoxide/default.nix
index 40c744e1aed44..c4ff74a860484 100644
--- a/pkgs/applications/version-management/gitoxide/default.nix
+++ b/pkgs/applications/version-management/gitoxide/default.nix
@@ -16,18 +16,19 @@
 let
   canRunCmd = stdenv.hostPlatform.emulatorAvailable buildPackages;
   gix = "${stdenv.hostPlatform.emulator buildPackages} $out/bin/gix";
+  ein = "${stdenv.hostPlatform.emulator buildPackages} $out/bin/ein";
 in rustPlatform.buildRustPackage rec {
   pname = "gitoxide";
-  version = "0.35.0";
+  version = "0.36.0";
 
   src = fetchFromGitHub {
     owner = "Byron";
     repo = "gitoxide";
     rev = "v${version}";
-    hash = "sha256-Sl7nNYoiCdTZ50tIfJcq5x9KOBkgJsb5bq09chWbyQc=";
+    hash = "sha256-HXuMcLY5BAC2dODlI6sgwCyGEBDW6ojlHRCBnIQ6P6A=";
   };
 
-  cargoHash = "sha256-G1NWRkhcmFrcHaIxQ7nzvRejPZUuZQDiNonZykkt4qM=";
+  cargoHash = "sha256-v+HVrYMPwbD0RDyxufv11KOnWGbTljpbx6ZlSJ46Olk=";
 
   nativeBuildInputs = [ cmake pkg-config installShellFiles ];
 
@@ -40,13 +41,18 @@ in rustPlatform.buildRustPackage rec {
       --bash <(${gix} completions --shell bash) \
       --fish <(${gix} completions --shell fish) \
       --zsh <(${gix} completions --shell zsh)
+
+    installShellCompletion --cmd ein \
+      --bash <(${ein} completions --shell bash) \
+      --fish <(${ein} completions --shell fish) \
+      --zsh <(${ein} completions --shell zsh)
   '';
 
   # Needed to get openssl-sys to use pkg-config.
   env.OPENSSL_NO_VENDOR = 1;
 
   meta = with lib; {
-    description = "A command-line application for interacting with git repositories";
+    description = "Command-line application for interacting with git repositories";
     homepage = "https://github.com/Byron/gitoxide";
     changelog = "https://github.com/Byron/gitoxide/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit /* or */ asl20 ];
diff --git a/pkgs/applications/version-management/gittyup/default.nix b/pkgs/applications/version-management/gittyup/default.nix
index c035f59666b1f..6fa79e69260a5 100644
--- a/pkgs/applications/version-management/gittyup/default.nix
+++ b/pkgs/applications/version-management/gittyup/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A graphical Git client designed to help you understand and manage your source code history";
+    description = "Graphical Git client designed to help you understand and manage your source code history";
     homepage = "https://murmele.github.io/Gittyup";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ ];
diff --git a/pkgs/applications/version-management/glab/default.nix b/pkgs/applications/version-management/glab/default.nix
index 2d704143bfdab..9f3e08464dd30 100644
--- a/pkgs/applications/version-management/glab/default.nix
+++ b/pkgs/applications/version-management/glab/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "glab";
-  version = "1.40.0";
+  version = "1.41.0";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "cli";
     rev = "v${version}";
-    hash = "sha256-setvszKdG2EQUlVJNbo7gPKE4b7lfdGT30MC82Kk2/s=";
+    hash = "sha256-DvIp7eMBWKWQ5VW9MW391xnUz8o1KNz1mkJtu7YVILo=";
   };
 
-  vendorHash = "sha256-vx4dNFM0PfapRQxz9ef1vNs4RiZlZDNhcKlo87gjGTs=";
+  vendorHash = "sha256-WM19Kx2b31e4/iA92U9FUuF8R1DMvbKotE2D9HpLQpQ=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/applications/version-management/glitter/default.nix b/pkgs/applications/version-management/glitter/default.nix
index a6a81fb08782a..be21abd9effb7 100644
--- a/pkgs/applications/version-management/glitter/default.nix
+++ b/pkgs/applications/version-management/glitter/default.nix
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage rec {
   checkFlags = [ "--skip" "runs_correctly" ];
 
   meta = with lib; {
-    description = "A git wrapper that allows you to compress multiple commands into one";
+    description = "Git wrapper that allows you to compress multiple commands into one";
     homepage = "https://github.com/milo123459/glitter";
     changelog = "https://github.com/Milo123459/glitter/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/applications/version-management/gogs/default.nix b/pkgs/applications/version-management/gogs/default.nix
index 0f3c106a7e1fb..534fd288d43e9 100644
--- a/pkgs/applications/version-management/gogs/default.nix
+++ b/pkgs/applications/version-management/gogs/default.nix
@@ -40,7 +40,7 @@ buildGoModule rec {
   '';
 
   meta = {
-    description = "A painless self-hosted Git service";
+    description = "Painless self-hosted Git service";
     homepage = "https://gogs.io";
     license = licenses.mit;
     maintainers = [ maintainers.schneefux ];
diff --git a/pkgs/applications/version-management/gomp/default.nix b/pkgs/applications/version-management/gomp/default.nix
index 03385404e787c..1aa5bb9951b7b 100644
--- a/pkgs/applications/version-management/gomp/default.nix
+++ b/pkgs/applications/version-management/gomp/default.nix
@@ -15,7 +15,7 @@ python3Packages.buildPythonApplication rec {
   doCheck = false; # tests require interactive terminal
 
   meta = with lib; {
-    description = "A tool for comparing Git branches";
+    description = "Tool for comparing Git branches";
     homepage = "https://github.com/MarkForged/GOMP";
     license = licenses.mit;
     maintainers = with maintainers; [ prusnak ];
diff --git a/pkgs/applications/version-management/gource/default.nix b/pkgs/applications/version-management/gource/default.nix
index 63c2202b4be96..60f11d5168b19 100644
--- a/pkgs/applications/version-management/gource/default.nix
+++ b/pkgs/applications/version-management/gource/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gource";
-  version = "0.54";
+  version = "0.55";
 
   src = fetchurl {
     url = "https://github.com/acaudwell/Gource/releases/download/${pname}-${version}/${pname}-${version}.tar.gz";
-    hash = "sha256-HcvO32XSz01p/gtjPlTCApJsCLgpvK0Lc+r54pzW+uU=";
+    hash = "sha256-yCOSEtKLB1CNnkd2GZdoAmgWKPwl6z4E9mcRdwE8AUI=";
   };
 
   postPatch = ''
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gource.io/";
-    description = "A Software version control visualization tool";
+    description = "Software version control visualization tool";
     license = licenses.gpl3Plus;
     longDescription = ''
       Software projects are displayed by Gource as an animated tree with
diff --git a/pkgs/applications/version-management/gql/default.nix b/pkgs/applications/version-management/gql/default.nix
index 02a90ab2ec7c4..cb94d6f3bb238 100644
--- a/pkgs/applications/version-management/gql/default.nix
+++ b/pkgs/applications/version-management/gql/default.nix
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A SQL like query language to perform queries on .git files";
+    description = "SQL like query language to perform queries on .git files";
     homepage = "https://github.com/AmrDeveloper/GQL";
     changelog = "https://github.com/AmrDeveloper/GQL/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/applications/version-management/gut/default.nix b/pkgs/applications/version-management/gut/default.nix
index 1254de70eb926..a6604e24fb345 100644
--- a/pkgs/applications/version-management/gut/default.nix
+++ b/pkgs/applications/version-management/gut/default.nix
@@ -25,7 +25,7 @@ buildGoModule rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "An alternative git CLI";
+    description = "Alternative git CLI";
     homepage = "https://gut-cli.dev";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/applications/version-management/hut/default.nix b/pkgs/applications/version-management/hut/default.nix
index f1fc58b20da70..beb0926769b5b 100644
--- a/pkgs/applications/version-management/hut/default.nix
+++ b/pkgs/applications/version-management/hut/default.nix
@@ -33,7 +33,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://sr.ht/~emersion/hut/";
-    description = "A CLI tool for Sourcehut / sr.ht";
+    description = "CLI tool for Sourcehut / sr.ht";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ fgaz ];
     mainProgram = "hut";
diff --git a/pkgs/applications/version-management/jujutsu/default.nix b/pkgs/applications/version-management/jujutsu/default.nix
index 54a7617f2b0ff..2cdf24160c518 100644
--- a/pkgs/applications/version-management/jujutsu/default.nix
+++ b/pkgs/applications/version-management/jujutsu/default.nix
@@ -19,16 +19,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "jujutsu";
-  version = "0.17.1";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "martinvonz";
     repo = "jj";
     rev = "v${version}";
-    hash = "sha256-3f/odQ5MgYGdPKUFqF90YGN84fXgG6BRkpN96TxJz1c=";
+    hash = "sha256-5KKF85RNCPPaXMxBb7m2XC3EaEo+UcEhBdfMEzNPsAg=";
   };
 
-  cargoHash = "sha256-N4UUouJfhKhosMBFVM0QEUNgkh7NFryXUoPmGVXcLGQ=";
+  cargoHash = "sha256-MiJuen3Lo7nPaAK30cENw3ACAdoYbHDoiGS05dk5m6U=";
 
   cargoBuildFlags = [ "--bin" "jj" ]; # don't install the fake editors
   useNextest = false; # nextest is the upstream integration framework, but is problematic for test skipping
@@ -78,7 +78,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A Git-compatible DVCS that is both simple and powerful";
+    description = "Git-compatible DVCS that is both simple and powerful";
     homepage = "https://github.com/martinvonz/jj";
     changelog = "https://github.com/martinvonz/jj/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/applications/version-management/mercurial/default.nix b/pkgs/applications/version-management/mercurial/default.nix
index b6bf52048f5e4..25c2df1ad71be 100644
--- a/pkgs/applications/version-management/mercurial/default.nix
+++ b/pkgs/applications/version-management/mercurial/default.nix
@@ -89,7 +89,7 @@ let
     };
 
     meta = with lib; {
-      description = "A fast, lightweight SCM system for very large distributed projects";
+      description = "Fast, lightweight SCM system for very large distributed projects";
       homepage = "https://www.mercurial-scm.org";
       downloadPage = "https://www.mercurial-scm.org/release/";
       changelog = "https://wiki.mercurial-scm.org/Release${versions.majorMinor version}";
diff --git a/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix b/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix
index 05a0abe93c521..c2a2765b4be7e 100644
--- a/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix
+++ b/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
     ++ lib.optional (libX11 == null) "--without-x";
 
   meta = {
-    description = "A program for visualising graphs";
+    description = "Program for visualising graphs";
     homepage = "http://www.graphviz.org/";
     branch = "2.0";
     platforms = lib.platforms.unix;
diff --git a/pkgs/applications/version-management/monotone/default.nix b/pkgs/applications/version-management/monotone/default.nix
index 56e23ee1f6bd1..e50395ebfd990 100644
--- a/pkgs/applications/version-management/monotone/default.nix
+++ b/pkgs/applications/version-management/monotone/default.nix
@@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
   #doCheck = true; # some tests fail (and they take VERY long)
 
   meta = with lib; {
-    description = "A free distributed version control system";
+    description = "Free distributed version control system";
     maintainers = [ maintainers.raskin ];
     platforms = platforms.unix;
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/version-management/nitpick/default.nix b/pkgs/applications/version-management/nitpick/default.nix
index 56d3531f72196..eb6956b1a3122 100644
--- a/pkgs/applications/version-management/nitpick/default.nix
+++ b/pkgs/applications/version-management/nitpick/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   '';
 
   meta = {
-    description = "A distributed issue tracker";
+    description = "Distributed issue tracker";
     longDescription = ''
       Nitpick is a distributed issue tracker. It helps keep track of which nits you
       should pick. It's intended to be used with source code such that the issues can
diff --git a/pkgs/applications/version-management/pass-git-helper/default.nix b/pkgs/applications/version-management/pass-git-helper/default.nix
index 5c7379c51a5d3..da2f159601121 100644
--- a/pkgs/applications/version-management/pass-git-helper/default.nix
+++ b/pkgs/applications/version-management/pass-git-helper/default.nix
@@ -19,7 +19,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/languitar/pass-git-helper";
-    description = "A git credential helper interfacing with pass, the standard unix password manager";
+    description = "Git credential helper interfacing with pass, the standard unix password manager";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ hmenke vanzef ];
     mainProgram = "pass-git-helper";
diff --git a/pkgs/applications/version-management/peru/default.nix b/pkgs/applications/version-management/peru/default.nix
index 5637471711b18..ff3f96a7fac2b 100644
--- a/pkgs/applications/version-management/peru/default.nix
+++ b/pkgs/applications/version-management/peru/default.nix
@@ -20,7 +20,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/buildinspace/peru";
-    description = "A tool for including other people's code in your projects";
+    description = "Tool for including other people's code in your projects";
     license = licenses.mit;
     platforms = platforms.unix;
     mainProgram = "peru";
diff --git a/pkgs/applications/version-management/pijul/default.nix b/pkgs/applications/version-management/pijul/default.nix
index bb6e7aeb91147..7503814c389d9 100644
--- a/pkgs/applications/version-management/pijul/default.nix
+++ b/pkgs/applications/version-management/pijul/default.nix
@@ -40,7 +40,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A distributed version control system";
+    description = "Distributed version control system";
     homepage = "https://pijul.org";
     license = with licenses; [ gpl2Plus ];
     maintainers = with maintainers; [ gal_bolle dywedir fabianhjr ];
diff --git a/pkgs/applications/version-management/reposurgeon/default.nix b/pkgs/applications/version-management/reposurgeon/default.nix
index ea34252f68a89..40ce515938e5f 100644
--- a/pkgs/applications/version-management/reposurgeon/default.nix
+++ b/pkgs/applications/version-management/reposurgeon/default.nix
@@ -26,7 +26,7 @@ buildGoModule rec {
   '';
 
   meta = {
-    description = "A tool for editing version-control repository history";
+    description = "Tool for editing version-control repository history";
     license = lib.licenses.bsd3;
     homepage = "http://www.catb.org/esr/reposurgeon/";
     maintainers = with lib.maintainers; [ dfoxfranke ];
diff --git a/pkgs/applications/version-management/rs-git-fsmonitor/default.nix b/pkgs/applications/version-management/rs-git-fsmonitor/default.nix
index 8d6c7f072d041..7c4ecaf30729b 100644
--- a/pkgs/applications/version-management/rs-git-fsmonitor/default.nix
+++ b/pkgs/applications/version-management/rs-git-fsmonitor/default.nix
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A fast git core.fsmonitor hook written in Rust";
+    description = "Fast git core.fsmonitor hook written in Rust";
     homepage = "https://github.com/jgavris/rs-git-fsmonitor";
     license = licenses.mit;
     maintainers = [ ];
diff --git a/pkgs/applications/version-management/sapling/default.nix b/pkgs/applications/version-management/sapling/default.nix
index c5f2adf153f56..f06f72f6e9e02 100644
--- a/pkgs/applications/version-management/sapling/default.nix
+++ b/pkgs/applications/version-management/sapling/default.nix
@@ -191,7 +191,7 @@ python3Packages.buildPythonApplication {
   passthru.isl = isl;
 
   meta = with lib; {
-    description = "A Scalable, User-Friendly Source Control System";
+    description = "Scalable, User-Friendly Source Control System";
     homepage = "https://sapling-scm.com";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ pbar thoughtpolice ];
diff --git a/pkgs/applications/version-management/scriv/default.nix b/pkgs/applications/version-management/scriv/default.nix
index 3724c55032a1b..40038fa796dda 100644
--- a/pkgs/applications/version-management/scriv/default.nix
+++ b/pkgs/applications/version-management/scriv/default.nix
@@ -49,7 +49,7 @@ python3.pkgs.buildPythonApplication rec {
   };
 
   meta = {
-    description = "Command-line tool for helping developers maintain useful changelogs.";
+    description = "Command-line tool for helping developers maintain useful changelogs";
     homepage = "https://github.com/nedbat/scriv";
     changelog = "https://github.com/nedbat/scriv/releases/tag/${version}";
     license = lib.licenses.asl20;
diff --git a/pkgs/applications/version-management/sourcehut/scm.nix b/pkgs/applications/version-management/sourcehut/scm.nix
index a60eb4b747885..33f9519fd922f 100644
--- a/pkgs/applications/version-management/sourcehut/scm.nix
+++ b/pkgs/applications/version-management/sourcehut/scm.nix
@@ -42,7 +42,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://git.sr.ht/~sircmpwn/scm.sr.ht";
-    description = "Shared support code for sr.ht source control services.";
+    description = "Shared support code for sr.ht source control services";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ eadwu christoph-heiss ];
   };
diff --git a/pkgs/applications/version-management/stgit/default.nix b/pkgs/applications/version-management/stgit/default.nix
index cece41286a804..aba560a81d815 100644
--- a/pkgs/applications/version-management/stgit/default.nix
+++ b/pkgs/applications/version-management/stgit/default.nix
@@ -79,7 +79,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A patch manager implemented on top of Git";
+    description = "Patch manager implemented on top of Git";
     homepage = "https://stacked-git.github.io/";
     license = licenses.gpl2Only;
     platforms = platforms.unix;
diff --git a/pkgs/applications/version-management/subgit/default.nix b/pkgs/applications/version-management/subgit/default.nix
index 3aca6673589cd..308d1b80034ea 100644
--- a/pkgs/applications/version-management/subgit/default.nix
+++ b/pkgs/applications/version-management/subgit/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   version = "3.3.17";
 
   meta = {
-    description = "A tool for a smooth, stress-free SVN to Git migration";
+    description = "Tool for a smooth, stress-free SVN to Git migration";
     longDescription = "Create writable Git mirror of a local or remote Subversion repository and use both Subversion and Git as long as you like. You may also do a fast one-time import from Subversion to Git.";
     homepage = "https://subgit.com";
     license = lib.licenses.unfree;
diff --git a/pkgs/applications/version-management/sublime-merge/common.nix b/pkgs/applications/version-management/sublime-merge/common.nix
index 811bed7694c1e..df5e36228290f 100644
--- a/pkgs/applications/version-management/sublime-merge/common.nix
+++ b/pkgs/applications/version-management/sublime-merge/common.nix
@@ -196,10 +196,7 @@ stdenv.mkDerivation (rec {
           fi
 
           for platform in ${lib.escapeShellArgs meta.platforms}; do
-              # The script will not perform an update when the version attribute is up to date from previous platform run
-              # We need to clear it before each run
-              update-source-version "${packageAttribute}.${primaryBinary}" 0 "${lib.fakeSha256}" --file="$versionFile" --version-key=buildVersion --source-key="sources.$platform"
-              update-source-version "${packageAttribute}.${primaryBinary}" "$latestVersion" --file="$versionFile" --version-key=buildVersion --source-key="sources.$platform"
+              update-source-version "${packageAttribute}.${primaryBinary}" "$latestVersion" --ignore-same-version --file="$versionFile" --version-key=buildVersion --source-key="sources.$platform"
           done
         '';
       in
diff --git a/pkgs/applications/version-management/subversion/default.nix b/pkgs/applications/version-management/subversion/default.nix
index 0c83d080716cc..d2301db3df2e2 100644
--- a/pkgs/applications/version-management/subversion/default.nix
+++ b/pkgs/applications/version-management/subversion/default.nix
@@ -111,7 +111,7 @@ let
     doCheck = false; # fails 10 out of ~2300 tests
 
     meta = with lib; {
-      description = "A version control system intended to be a compelling replacement for CVS in the open source community";
+      description = "Version control system intended to be a compelling replacement for CVS in the open source community";
       license = licenses.asl20;
       homepage = "https://subversion.apache.org/";
       mainProgram = "svn";
diff --git a/pkgs/applications/version-management/svn-all-fast-export/default.nix b/pkgs/applications/version-management/svn-all-fast-export/default.nix
index 5fc67ef47d783..cf979f3d7dfde 100644
--- a/pkgs/applications/version-management/svn-all-fast-export/default.nix
+++ b/pkgs/applications/version-management/svn-all-fast-export/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/svn-all-fast-export/svn2git";
-    description = "A fast-import based converter for an svn repo to git repos";
+    description = "Fast-import based converter for an svn repo to git repos";
     license = licenses.gpl3;
     platforms = platforms.all;
     maintainers = [ maintainers.flokli ];
diff --git a/pkgs/applications/version-management/tailor/default.nix b/pkgs/applications/version-management/tailor/default.nix
index 3e2e6a848008e..a195c51358ef7 100644
--- a/pkgs/applications/version-management/tailor/default.nix
+++ b/pkgs/applications/version-management/tailor/default.nix
@@ -20,7 +20,7 @@ python3.pkgs.buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A tool to migrate changesets between various kinds of version control system.";
+    description = "Tool to migrate changesets between various kinds of version control system";
     longDescription = ''
       With its ability to "translate the history" from one VCS kind to another,
       this tool makes it easier to keep the upstream changes merged in
diff --git a/pkgs/applications/version-management/thicket/default.nix b/pkgs/applications/version-management/thicket/default.nix
index 710cdda4f94aa..bffad065b15fb 100644
--- a/pkgs/applications/version-management/thicket/default.nix
+++ b/pkgs/applications/version-management/thicket/default.nix
@@ -22,7 +22,7 @@ crystal.buildCrystalPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A better one-line git log";
+    description = "Better one-line git log";
     homepage = "https://github.com/taylorthurlow/thicket";
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne ];
diff --git a/pkgs/applications/version-management/verco/default.nix b/pkgs/applications/version-management/verco/default.nix
index 4597a87b4721b..ca41cdc00b7e4 100644
--- a/pkgs/applications/version-management/verco/default.nix
+++ b/pkgs/applications/version-management/verco/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "sha256-urnTPlQTmOPq7mHZjsTqxql/FQe7NYHE8sVJJ4fno+U=";
 
   meta = with lib; {
-    description = "A simple Git/Mercurial/PlasticSCM tui client based on keyboard shortcuts";
+    description = "Simple Git/Mercurial/PlasticSCM tui client based on keyboard shortcuts";
     homepage = "https://vamolessa.github.io/verco";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ figsoda ];
diff --git a/pkgs/applications/video/adl/default.nix b/pkgs/applications/video/adl/default.nix
index 6bf36cc375b82..46e2bc492a87b 100644
--- a/pkgs/applications/video/adl/default.nix
+++ b/pkgs/applications/video/adl/default.nix
@@ -1,21 +1,32 @@
-{ lib, stdenv, fetchFromGitHub, pkgs, makeWrapper, ... }:
-
-stdenv.mkDerivation rec {
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, makeWrapper
+, animdl
+, frece
+, fzf
+, mpv
+, perl
+, trackma
+, ueberzug
+, ...
+}:
+stdenvNoCC.mkDerivation rec {
   pname = "adl";
-  version = "3.0.1";
+  version = "3.2.8";
 
   src = fetchFromGitHub {
     owner = "RaitaroH";
     repo = "adl";
-    rev = "65f68e1dcae4c0caa52668d3a854269e7d226f7c";
-    sha256 = "sha256-huGpDtkWrhZyKDNKXat8T3qtAyMjBaq8HFd1w1ThUVk=";
+    rev = "a40f31454de856d9e9235d6216eaf8f4296111c4";
+    hash = "sha256-Kg/iGyEdWJyoPn5lVqRCJX2eqdP1xwZqNU2RvTrhZko=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
 
   # https://github.com/RaitaroH/adl#requirements
-  buildInputs = with pkgs; [
-    anime-downloader
+  buildInputs = [
+    animdl
     frece
     fzf
     mpv
@@ -35,10 +46,10 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/RaitaroH/adl";
-    description = "popcorn anime-downloader + trackma wrapper";
-    license = licenses.gpl3Plus;
+    description = "Popcorn anime scraper/downloader + trackma wrapper";
+    license = licenses.gpl3Only;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ weathercold ];
     mainProgram = "adl";
   };
 }
diff --git a/pkgs/applications/video/ani-cli/default.nix b/pkgs/applications/video/ani-cli/default.nix
index f4d174474df23..d906b0d2b865f 100644
--- a/pkgs/applications/video/ani-cli/default.nix
+++ b/pkgs/applications/video/ani-cli/default.nix
@@ -54,7 +54,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/pystardust/ani-cli";
-    description = "A cli tool to browse and play anime";
+    description = "Cli tool to browse and play anime";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ skykanin ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/video/animdl/default.nix b/pkgs/applications/video/animdl/default.nix
index 3f1be6f5833ad..c8ba0264e36aa 100644
--- a/pkgs/applications/video/animdl/default.nix
+++ b/pkgs/applications/video/animdl/default.nix
@@ -2,6 +2,7 @@
   buildPythonApplication,
   fetchFromGitHub,
   poetry-core,
+  pythonRelaxDepsHook,
   anchor-kr,
   anitopy,
   click,
@@ -30,8 +31,23 @@ buildPythonApplication {
     hash = "sha256-kn6vCCFhJNlruxoO+PTHVIwTf1E5j1aSdBhrFuGzUq4=";
   };
 
+  pythonRemoveDeps = [
+    "comtypes" # windows only
+  ];
+  pythonRelaxDeps = [
+    "httpx"
+    "lxml"
+    "packaging"
+    "pycryptodomex"
+    "regex"
+    "rich"
+    "tqdm"
+    "yarl"
+  ];
+
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
   ];
   propagatedBuildInputs = [
     anchor-kr
@@ -53,7 +69,7 @@ buildPythonApplication {
   doCheck = true;
 
   meta = with lib; {
-    description = "A highly efficient, powerful and fast anime scraper";
+    description = "Highly efficient, powerful and fast anime scraper";
     homepage = "https://github.com/justfoolingaround/animdl";
     license = licenses.gpl3Only;
     mainProgram = "animdl";
diff --git a/pkgs/applications/video/anime-downloader/default.nix b/pkgs/applications/video/anime-downloader/default.nix
index 5e4f58cea1d30..99323ef960516 100644
--- a/pkgs/applications/video/anime-downloader/default.nix
+++ b/pkgs/applications/video/anime-downloader/default.nix
@@ -46,7 +46,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/anime-dl/anime-downloader";
-    description = "A simple but powerful anime downloader and streamer";
+    description = "Simple but powerful anime downloader and streamer";
     license = licenses.unlicense;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/applications/video/bombono/default.nix b/pkgs/applications/video/bombono/default.nix
index 87545d5bceecb..73471a7564d2c 100644
--- a/pkgs/applications/video/bombono/default.nix
+++ b/pkgs/applications/video/bombono/default.nix
@@ -86,7 +86,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "a DVD authoring program for personal computers";
+    description = "DVD authoring program for personal computers";
     homepage = "https://www.bombono.org/";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ symphorien ];
diff --git a/pkgs/applications/video/clapper/default.nix b/pkgs/applications/video/clapper/default.nix
index b638bc3afd7df..78bfaa2b46373 100644
--- a/pkgs/applications/video/clapper/default.nix
+++ b/pkgs/applications/video/clapper/default.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A GNOME media player built using GTK4 toolkit and powered by GStreamer with OpenGL rendering";
+    description = "GNOME media player built using GTK4 toolkit and powered by GStreamer with OpenGL rendering";
     longDescription = ''
       Clapper is a GNOME media player built using the GTK4 toolkit.
       The media player is using GStreamer as a media backend.
diff --git a/pkgs/applications/video/cutecapture/default.nix b/pkgs/applications/video/cutecapture/default.nix
index a588ddb38a8d4..238249883ef99 100644
--- a/pkgs/applications/video/cutecapture/default.nix
+++ b/pkgs/applications/video/cutecapture/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A (3)DS capture software for Linux and Mac";
+    description = "(3)DS capture software for Linux and Mac";
     homepage = "https://github.com/Gotos/CuteCapture";
     license = licenses.asl20;
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/pkgs/applications/video/davinci-resolve/default.nix b/pkgs/applications/video/davinci-resolve/default.nix
index bca8bc1e48ed2..be18304386cbd 100644
--- a/pkgs/applications/video/davinci-resolve/default.nix
+++ b/pkgs/applications/video/davinci-resolve/default.nix
@@ -165,11 +165,11 @@ let
 
       desktopItems = [
         (makeDesktopItem {
-          name = "davinci-resolve";
-          desktopName = "Davinci Resolve";
+          name = "davinci-resolve${lib.optionalString studioVariant "-studio"}";
+          desktopName = "Davinci Resolve${lib.optionalString studioVariant " Studio"}";
           genericName = "Video Editor";
-          exec = "resolve";
-          # icon = "DV_Resolve";
+          exec = "davinci-resolve${lib.optionalString studioVariant "-studio"}";
+          icon = "davinci-resolve${lib.optionalString studioVariant "-studio"}";
           comment = "Professional video editing, color, effects and audio post-processing";
           categories = [
             "AudioVideo"
@@ -254,6 +254,12 @@ buildFHSEnv {
     ''
   }";
 
+  extraInstallCommands = ''
+    mkdir -p $out/share/applications $out/share/icons/hicolor/128x128/apps
+    ln -s ${davinci}/share/applications/*.desktop $out/share/applications/
+    ln -s ${davinci}/graphics/DV_Resolve.png $out/share/icons/hicolor/128x128/apps/davinci-resolve${lib.optionalString studioVariant "-studio"}.png
+  '';
+
   passthru = {
     inherit davinci;
     updateScript = lib.getExe (writeShellApplication {
@@ -284,6 +290,6 @@ buildFHSEnv {
     maintainers = with maintainers; [ amarshall jshcmpbll orivej ];
     platforms = [ "x86_64-linux" ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
-    mainProgram = "davinci-resolve";
+    mainProgram = "davinci-resolve${lib.optionalString studioVariant "-studio"}";
   };
 }
diff --git a/pkgs/applications/video/dmlive/default.nix b/pkgs/applications/video/dmlive/default.nix
index f36fb581a5202..03affd1e00a7a 100644
--- a/pkgs/applications/video/dmlive/default.nix
+++ b/pkgs/applications/video/dmlive/default.nix
@@ -36,7 +36,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A tool to play and record videos or live streams with danmaku";
+    description = "Tool to play and record videos or live streams with danmaku";
     homepage = "https://github.com/THMonster/dmlive";
     license = licenses.mit;
     mainProgram = "dmlive";
diff --git a/pkgs/applications/video/dra-cla/default.nix b/pkgs/applications/video/dra-cla/default.nix
index 00bf2c642b2d1..02a4a66be9295 100644
--- a/pkgs/applications/video/dra-cla/default.nix
+++ b/pkgs/applications/video/dra-cla/default.nix
@@ -38,7 +38,7 @@ stdenvNoCC.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/CoolnsX/dra-cla";
-    description = "A cli tool to browse and play korean drama, chinese drama";
+    description = "Cli tool to browse and play korean drama, chinese drama";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ idlip ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/video/dvdbackup/default.nix b/pkgs/applications/video/dvdbackup/default.nix
index 523847db247f1..5e791da598a7f 100644
--- a/pkgs/applications/video/dvdbackup/default.nix
+++ b/pkgs/applications/video/dvdbackup/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   })];
 
   meta = {
-    description = "A tool to rip video DVDs from the command line";
+    description = "Tool to rip video DVDs from the command line";
     homepage = "https://dvdbackup.sourceforge.net/";
     license = lib.licenses.gpl3Plus;
     maintainers = [ lib.maintainers.bradediger ];
diff --git a/pkgs/applications/video/dvdstyler/default.nix b/pkgs/applications/video/dvdstyler/default.nix
index e25bdf877a844..db3f6e7f9a54e 100644
--- a/pkgs/applications/video/dvdstyler/default.nix
+++ b/pkgs/applications/video/dvdstyler/default.nix
@@ -93,7 +93,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.dvdstyler.org/";
-    description = "A DVD authoring software";
+    description = "DVD authoring software";
     longDescription = ''
       DVDStyler is a cross-platform free DVD authoring application for the
       creation of professional-looking DVDs. It allows not only burning of video
diff --git a/pkgs/applications/video/electronplayer/electronplayer.nix b/pkgs/applications/video/electronplayer/electronplayer.nix
index cc26adc24780a..1cb10e65cbb95 100644
--- a/pkgs/applications/video/electronplayer/electronplayer.nix
+++ b/pkgs/applications/video/electronplayer/electronplayer.nix
@@ -21,7 +21,7 @@ in appimageTools.wrapType2 {
   '';
 
   meta = with lib; {
-    description = "An electron based web video services player";
+    description = "Electron based web video services player";
     mainProgram = "electronplayer";
     homepage = "https://github.com/oscartbeaumont/ElectronPlayer";
     license = licenses.mit;
diff --git a/pkgs/applications/video/filebot/default.nix b/pkgs/applications/video/filebot/default.nix
index 738bd9418f000..acc3e9571ca0b 100644
--- a/pkgs/applications/video/filebot/default.nix
+++ b/pkgs/applications/video/filebot/default.nix
@@ -52,7 +52,7 @@ in stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "The ultimate TV and Movie Renamer";
+    description = "Ultimate TV and Movie Renamer";
     longDescription = ''
       FileBot is the ultimate tool for organizing and renaming your Movies, TV
       Shows and Anime as well as fetching subtitles and artwork. It's smart and
diff --git a/pkgs/applications/video/flowblade/default.nix b/pkgs/applications/video/flowblade/default.nix
index fff387881ccad..423f45ba590f9 100644
--- a/pkgs/applications/video/flowblade/default.nix
+++ b/pkgs/applications/video/flowblade/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flowblade";
-  version = "2.14.0.2";
+  version = "2.16.2";
 
   src = fetchFromGitHub {
     owner = "jliljebl";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-M+M6qkgYD5zM8IOFwQsuQlK7qQsvmSjR+CXVpTW+O8k=";
+    sha256 = "sha256-dLrrV+ZMXqcJMf69PkgLCDCCPBrUadLtT7vm06Y+1rA=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/video/freetube/default.nix b/pkgs/applications/video/freetube/default.nix
index 9c5d7f2067fee..3d86b182a1515 100644
--- a/pkgs/applications/video/freetube/default.nix
+++ b/pkgs/applications/video/freetube/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An Open Source YouTube app for privacy";
+    description = "Open Source YouTube app for privacy";
     homepage = "https://freetubeapp.io/";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ ryneeverett alyaeanyx ];
diff --git a/pkgs/applications/video/glaxnimate/default.nix b/pkgs/applications/video/glaxnimate/default.nix
index a50e3d15614a8..c09b2c8170d4f 100644
--- a/pkgs/applications/video/glaxnimate/default.nix
+++ b/pkgs/applications/video/glaxnimate/default.nix
@@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.com/mattbas/glaxnimate";
-    description = "Simple vector animation program.";
+    description = "Simple vector animation program";
     license = licenses.gpl3;
     maintainers = with maintainers; [ tobiasBora ];
     mainProgram = "glaxnimate";
diff --git a/pkgs/applications/video/gnomecast/default.nix b/pkgs/applications/video/gnomecast/default.nix
index cb6e4a80510a3..37bf7baec8706 100644
--- a/pkgs/applications/video/gnomecast/default.nix
+++ b/pkgs/applications/video/gnomecast/default.nix
@@ -37,7 +37,7 @@ buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A native Linux GUI for Chromecasting local files";
+    description = "Native Linux GUI for Chromecasting local files";
     homepage = "https://github.com/keredson/gnomecast";
     license = with licenses; [ gpl3 ];
     broken = stdenv.isDarwin;
diff --git a/pkgs/applications/video/gpu-screen-recorder/default.nix b/pkgs/applications/video/gpu-screen-recorder/default.nix
index 052548f32f272..101cb3af49ddf 100644
--- a/pkgs/applications/video/gpu-screen-recorder/default.nix
+++ b/pkgs/applications/video/gpu-screen-recorder/default.nix
@@ -11,16 +11,17 @@
 , libva
 , libglvnd
 , libXrandr
+, libXfixes
 }:
 
 stdenv.mkDerivation {
   pname = "gpu-screen-recorder";
-  version = "unstable-2023-11-18";
+  version = "unstable-2024-05-21";
 
   # printf "r%s.%s\n" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
   src = fetchurl {
-    url = "https://dec05eba.com/snapshot/gpu-screen-recorder.git.r418.5a8900e.tar.gz";
-    hash = "sha256-Dal6KxQOTqoNH6e8lYk5XEXGFG/vzbguNFZ9yk9nKe0=";
+    url = "https://dec05eba.com/snapshot/gpu-screen-recorder.git.r594.e572073.tar.gz";
+    hash = "sha256-MTBxhvkoyotmRUx1sRN/7ruXBYwIbOFQNdJHhZ3DdDk=";
   };
   sourceRoot = ".";
 
@@ -37,6 +38,7 @@ stdenv.mkDerivation {
     libdrm
     libva
     libXrandr
+    libXfixes
   ];
 
   buildPhase = ''
@@ -49,14 +51,14 @@ stdenv.mkDerivation {
     mv $out/bin/gpu-screen-recorder $out/bin/.wrapped/
     makeWrapper "$out/bin/.wrapped/gpu-screen-recorder" "$out/bin/gpu-screen-recorder" \
     --prefix LD_LIBRARY_PATH : ${libglvnd}/lib \
-    --prefix PATH : $out/bin
+    --suffix PATH : $out/bin
   '';
 
-  meta = with lib; {
-    description = "A screen recorder that has minimal impact on system performance by recording a window using the GPU only";
+  meta = {
+    description = "Screen recorder that has minimal impact on system performance by recording a window using the GPU only";
     homepage = "https://git.dec05eba.com/gpu-screen-recorder/about/";
-    license = licenses.gpl3Only;
-    maintainers = with maintainers; [ babbaj ];
+    license = lib.licenses.gpl3Only;
+    maintainers = [ lib.maintainers.babbaj ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/video/gpu-screen-recorder/gpu-screen-recorder-gtk.nix b/pkgs/applications/video/gpu-screen-recorder/gpu-screen-recorder-gtk.nix
index 678881faec444..c08aabd25e530 100644
--- a/pkgs/applications/video/gpu-screen-recorder/gpu-screen-recorder-gtk.nix
+++ b/pkgs/applications/video/gpu-screen-recorder/gpu-screen-recorder-gtk.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "GTK frontend for gpu-screen-recorder.";
+    description = "GTK frontend for gpu-screen-recorder";
     mainProgram = "gpu-screen-recorder-gtk";
     homepage = "https://git.dec05eba.com/gpu-screen-recorder-gtk/about/";
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/video/handbrake/default.nix b/pkgs/applications/video/handbrake/default.nix
index f3f6dacd4a540..f9761bd85bb56 100644
--- a/pkgs/applications/video/handbrake/default.nix
+++ b/pkgs/applications/video/handbrake/default.nix
@@ -26,7 +26,7 @@
 , numactl
 , writeText
   # Processing, video codecs, containers
-, ffmpeg-full
+, ffmpeg_7-full
 , nv-codec-headers
 , libogg
 , x264
@@ -69,14 +69,14 @@
   # for now we disable GTK GUI support on Darwin. (It may be possible to remove
   # this restriction later.)
 , useGtk ? !stdenv.isDarwin
-, bzip2
+, appstream
 , desktop-file-utils
 , meson
 , ninja
-, wrapGAppsHook3
+, wrapGAppsHook4
 , intltool
 , glib
-, gtk3
+, gtk4
 , libappindicator-gtk3
 , libnotify
 , gst_all_1
@@ -90,13 +90,14 @@
 }:
 
 let
-  version = "1.7.3";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "HandBrake";
     repo = "HandBrake";
-    rev = version;
-    hash = "sha256-4Q//UU/CPgWvhtpROfNPLzBvZlB02hbFe9Z9FA7mX04=";
+    # uses version commit for logic in version.txt
+    rev = "5edf59c1da54fe1c9a487d09e8f52561fe49cb2a";
+    hash = "sha256-gr2UhqPY5mZOP8KBvk9yydl4AkTlqE83hYAcLwSv1Is=";
   };
 
   # Handbrake maintains a set of ffmpeg patches. In particular, these
@@ -104,13 +105,11 @@ let
   # https://github.com/HandBrake/HandBrake/issues/4029
   # base ffmpeg version is specified in:
   # https://github.com/HandBrake/HandBrake/blob/master/contrib/ffmpeg/module.defs
-  ffmpeg-version = "6.1";
-  ffmpeg-hb = ffmpeg-full.overrideAttrs (old: {
+  ffmpeg-version = "7.0";
+  ffmpeg-hb = (ffmpeg_7-full.override {
     version = ffmpeg-version;
-    src = fetchurl {
-      url = "https://www.ffmpeg.org/releases/ffmpeg-${ffmpeg-version}.tar.bz2";
-      hash = "sha256-632j3n3TzkiplGq0R6c0a9EaOoXm77jyws5jfn9UdhE=";
-    };
+    hash = "sha256-RdDfv+0y90XpgjIRvTjsemKyGunzDbsh4j4WiE9rfyM=";
+  }).overrideAttrs (old: {
     patches = (old.patches or [ ]) ++ [
       "${src}/contrib/ffmpeg/A01-mov-read-name-track-tag-written-by-movenc.patch"
       "${src}/contrib/ffmpeg/A02-movenc-write-3gpp-track-titl-tag.patch"
@@ -119,22 +118,23 @@ let
       "${src}/contrib/ffmpeg/A05-dvdsubdec-fix-processing-of-partial-packets.patch"
       "${src}/contrib/ffmpeg/A06-dvdsubdec-return-number-of-bytes-used.patch"
       "${src}/contrib/ffmpeg/A07-dvdsubdec-use-pts-of-initial-packet.patch"
-      "${src}/contrib/ffmpeg/A08-ccaption_dec-fix-pts-in-real_time-mode.patch"
-      "${src}/contrib/ffmpeg/A09-matroskaenc-aac-extradata-updated.patch"
-      "${src}/contrib/ffmpeg/A10-amfenc-Add-support-for-pict_type-field.patch"
-      "${src}/contrib/ffmpeg/A11-amfenc-Fixes-the-color-information-in-the-ou.patch"
-      "${src}/contrib/ffmpeg/A12-amfenc-HDR-metadata.patch"
-      "${src}/contrib/ffmpeg/A13-libavcodec-amfenc-Fix-issue-with-missing-headers-in-.patch"
-      "${src}/contrib/ffmpeg/A14-avcodec-add-ambient-viewing-environment-packet-side-.patch"
-      "${src}/contrib/ffmpeg/A15-avformat-mov-add-support-for-amve-ambient-viewing-en.patch"
-      "${src}/contrib/ffmpeg/A16-videotoolbox-dec-h264.patch"
+      "${src}/contrib/ffmpeg/A08-dvdsubdec-do-not-discard-zero-sized-rects.patch"
+      "${src}/contrib/ffmpeg/A09-ccaption_dec-fix-pts-in-real_time-mode.patch"
+      "${src}/contrib/ffmpeg/A10-matroskaenc-aac-extradata-updated.patch"
+      "${src}/contrib/ffmpeg/A11-videotoolbox-disable-H.264-10-bit-on-Intel-macOS.patch"
 
       # patch to fix <https://github.com/HandBrake/HandBrake/issues/5011>
       # commented out because it causes ffmpeg's filter-pixdesc-p010le test to fail.
-      # "${src}/contrib/ffmpeg/A17-libswscale-fix-yuv420p-to-p01xle-color-conversion-bu.patch"
+      # "${src}/contrib/ffmpeg/A12-libswscale-fix-yuv420p-to-p01xle-color-conversion-bu.patch"
 
-      "${src}/contrib/ffmpeg/A18-qsv-fix-decode-10bit-hdr.patch"
-      "${src}/contrib/ffmpeg/A19-ffbuild-common-use-gzip-n-flag-for-cuda.patch"
+      "${src}/contrib/ffmpeg/A13-qsv-fix-decode-10bit-hdr.patch"
+      "${src}/contrib/ffmpeg/A14-amfenc-Add-support-for-pict_type-field.patch"
+      "${src}/contrib/ffmpeg/A15-amfenc-Fixes-the-color-information-in-the-ou.patch"
+      "${src}/contrib/ffmpeg/A16-amfenc-HDR-metadata.patch"
+      "${src}/contrib/ffmpeg/A17-av1dec-dovi-rpu.patch"
+      "${src}/contrib/ffmpeg/A18-avformat-mov-add-support-audio-fallback-track-ref.patch"
+      "${src}/contrib/ffmpeg/A19-mov-ignore-old-infe-box.patch"
+      "${src}/contrib/ffmpeg/A20-mov-free-infe-on-failure.patch"
     ];
   });
 
@@ -144,24 +144,26 @@ let
     # patches which don't cleanly apply are commented out.
     postPatch = (old.postPatch or "") + ''
       pushd ..
-      # patch -p1 < ${src}/contrib/x265/A00-crosscompile-fix.patch
       patch -p1 < ${src}/contrib/x265/A01-threads-priority.patch
       patch -p1 < ${src}/contrib/x265/A02-threads-pool-adjustments.patch
       patch -p1 < ${src}/contrib/x265/A03-sei-length-crash-fix.patch
       patch -p1 < ${src}/contrib/x265/A04-ambient-viewing-enviroment-sei.patch
       # patch -p1 < ${src}/contrib/x265/A05-memory-leaks.patch
+      # patch -p1 < ${src}/contrib/x265/A06-crosscompile-fix.patch
       popd
     '';
   });
 
   versionFile = writeText "version.txt" ''
-    BRANCH=${versions.majorMinor version}.x
-    DATE=1970-01-01 00:00:01 +0000
+    URL=${src.meta.homepage}.git
     HASH=${src.rev}
-    REV=${src.rev}
-    SHORTHASH=${src.rev}
+    SHORTHASH=${lib.substring 0 9 src.rev}
     TAG=${version}
-    URL=${src.meta.homepage}
+    TAG_HASH=${src.rev}
+    REV=0
+    BRANCH=
+    REMOTE=${src.meta.homepage}.git
+    DATE=1970-01-01 00:00:01 +0000
   '';
 
   inherit (lib) optional optionals optionalString versions;
@@ -176,9 +178,10 @@ let
       install -Dm444 ${versionFile} ${versionFile.name}
 
       patchShebangs scripts
+      patchShebangs gtk/data/
 
       substituteInPlace libhb/hb.c \
-        --replace 'return hb_version;' 'return "${version}";'
+        --replace-fail 'return hb_version;' 'return "${version}";'
 
       # Force using nixpkgs dependencies
       sed -i '/MODULES += contrib/d' make/include/main.defs
@@ -186,30 +189,23 @@ let
           -e '/    ## Additional library and tool checks/,/    ## MinGW specific library and tool checks/d' \
           -i make/configure.py
     '' + optionalString stdenv.isDarwin ''
-      # Use the Nix-provided libxml2 instead of the patched version available on
-      # the Handbrake website.
-      substituteInPlace libhb/module.defs \
-        --replace '$(CONTRIB.build/)include/libxml2' ${libxml2.dev}/include/libxml2
-
       # Prevent the configure script from failing if xcodebuild isn't available,
       # which it isn't in the Nix context. (The actual build goes fine without
       # xcodebuild.)
       sed -e '/xcodebuild = ToolProbe/s/abort=.\+)/abort=False)/' -i make/configure.py
-    '' + optionalString stdenv.isLinux ''
-      # Use the Nix-provided libxml2 instead of the system-provided one.
-      substituteInPlace libhb/module.defs \
-        --replace /usr/include/libxml2 ${libxml2.dev}/include/libxml2
     '' + optionalString useGtk ''
       substituteInPlace gtk/module.rules \
         --replace-fail '$(MESON.exe)' 'meson' \
         --replace-fail '$(NINJA.exe)' 'ninja' \
       # Force using nixpkgs dependencies
       substituteInPlace gtk/meson.build \
-        --replace-fail "cc.find_library('bz2', dirs: hb_libdirs)" "cc.find_library('bz2')" \
-        --replace-fail "cc.find_library('mp3lame', dirs: hb_libdirs)" "cc.find_library('mp3lame')" \
         --replace-fail \
           "hb_incdirs = include_directories(hb_dir / 'libhb', hb_dir / 'contrib/include')" \
-          "hb_incdirs = include_directories(hb_dir / 'libhb')" \
+          "hb_incdirs = include_directories(hb_dir / 'libhb')"
+      substituteInPlace gtk/ghb.spec \
+        --replace-fail "gtk-update-icon-cache" "gtk4-update-icon-cache"
+      substituteInPlace gtk/data/post_install.py \
+        --replace-fail "gtk-update-icon-cache" "gtk4-update-icon-cache"
     '';
 
     nativeBuildInputs = [
@@ -220,7 +216,7 @@ let
       pkg-config
       python3
     ]
-    ++ optionals useGtk [ desktop-file-utils intltool meson ninja wrapGAppsHook3 ];
+    ++ optionals useGtk [ appstream desktop-file-utils intltool meson ninja wrapGAppsHook4 ];
 
     buildInputs = [
       a52dec
@@ -255,12 +251,14 @@ let
     ]
     ++ optional (!stdenv.isDarwin) numactl
     ++ optionals useGtk [
-      bzip2
       dbus-glib
       glib
+      gst_all_1.gst-libav
+      gst_all_1.gst-plugins-bad
       gst_all_1.gst-plugins-base
+      gst_all_1.gst-plugins-good
       gst_all_1.gstreamer
-      gtk3
+      gtk4
       hicolor-icon-theme
       libappindicator-gtk3
       libgudev
@@ -319,7 +317,7 @@ let
 
     meta = with lib; {
       homepage = "https://handbrake.fr/";
-      description = "A tool for converting video files and ripping DVDs";
+      description = "Tool for converting video files and ripping DVDs";
       longDescription = ''
         Tool for converting and remuxing video files
         into selection of modern and widely supported codecs
diff --git a/pkgs/applications/video/haruna/default.nix b/pkgs/applications/video/haruna/default.nix
index 533048d25b1d1..8f629079f6b01 100644
--- a/pkgs/applications/video/haruna/default.nix
+++ b/pkgs/applications/video/haruna/default.nix
@@ -25,13 +25,13 @@
 
 stdenv.mkDerivation rec {
   pname = "haruna";
-  version = "1.1.1";
+  version = "1.1.2";
 
   src = fetchFromGitLab {
     owner = "multimedia";
     repo = "haruna";
     rev = "v${version}";
-    hash = "sha256-m4u1V+vp4wOSqRbdbxgxDNgC28biiB3A6w1pSfuczHs=";
+    hash = "sha256-PjELW0evn53gIbScrM2bYEpb9U/TE/lOCD2DiJ1aodo=";
     domain = "invent.kde.org";
   };
 
diff --git a/pkgs/applications/video/hyperion-ng/default.nix b/pkgs/applications/video/hyperion-ng/default.nix
index 43bd337ae5002..67df0dd420b00 100644
--- a/pkgs/applications/video/hyperion-ng/default.nix
+++ b/pkgs/applications/video/hyperion-ng/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An opensource Bias or Ambient Lighting implementation";
+    description = "Opensource Bias or Ambient Lighting implementation";
     homepage = "https://github.com/hyperion-project/hyperion.ng";
     license = licenses.mit;
     maintainers = with maintainers; [ algram kazenyuk ];
diff --git a/pkgs/applications/video/hypnotix/default.nix b/pkgs/applications/video/hypnotix/default.nix
index a3b1e25de48c0..00f8eb6b024ba 100644
--- a/pkgs/applications/video/hypnotix/default.nix
+++ b/pkgs/applications/video/hypnotix/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hypnotix";
-  version = "4.3";
+  version = "4.5";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "hypnotix";
     rev = version;
-    hash = "sha256-nmldOziye+bSi8CA9TL0f3EKEKTeXRk3HFzf4ksE9oE=";
+    hash = "sha256-tcBBPJr9C+3FC8VWAM+KzETKAovfyehBvlmn7mIR7VQ=";
   };
 
   patches = [
diff --git a/pkgs/applications/video/jellyfin-media-player/default.nix b/pkgs/applications/video/jellyfin-media-player/default.nix
index d3909c3799bcb..fef1a9ae80f08 100644
--- a/pkgs/applications/video/jellyfin-media-player/default.nix
+++ b/pkgs/applications/video/jellyfin-media-player/default.nix
@@ -21,24 +21,21 @@
 , qtwebchannel
 , qtwebengine
 , qtx11extras
-, jellyfin-web
 , withDbus ? stdenv.isLinux
 }:
 
 mkDerivation rec {
   pname = "jellyfin-media-player";
-  version = "1.10.1";
+  version = "1.11.1";
 
   src = fetchFromGitHub {
     owner = "jellyfin";
     repo = "jellyfin-media-player";
     rev = "v${version}";
-    sha256 = "sha256-l1jNrEUrDCc4R1CZ0b0Omjka6wTryjWqnEJbfCSJ0ZE=";
+    sha256 = "sha256-Jsn4kWQzUaQI9MpbsLJr6JSJk9ZSnMEcrebQ2DYegSU=";
   };
 
   patches = [
-    # fix the location of the jellyfin-web path
-    ./fix-web-path.patch
     # disable update notifications since the end user can't simply download the release artifacts to update
     ./disable-update-notifications.patch
   ];
@@ -77,11 +74,6 @@ mkDerivation rec {
     "-DLINUX_X11POWER=ON"
   ];
 
-  preConfigure = ''
-    # link the jellyfin-web files to be copied by cmake (see fix-web-path.patch)
-    ln -s ${jellyfin-web}/share/jellyfin-web .
-  '';
-
   postInstall = lib.optionalString stdenv.isDarwin ''
     mkdir -p $out/bin $out/Applications
     mv "$out/Jellyfin Media Player.app" $out/Applications
diff --git a/pkgs/applications/video/jellyfin-media-player/fix-web-path.patch b/pkgs/applications/video/jellyfin-media-player/fix-web-path.patch
deleted file mode 100644
index 250a5c0695450..0000000000000
--- a/pkgs/applications/video/jellyfin-media-player/fix-web-path.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 5abca9b..d09176b 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -107,10 +107,8 @@ endif()
- set(RESOURCE_ROOT .)
- if(APPLE)
-   set(RESOURCE_ROOT Resources)
--  if(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/../dist/)
--    add_resources(TARGET ${MAIN_TARGET} SOURCES ${CMAKE_CURRENT_BINARY_DIR}/../dist/ DEST ${RESOURCE_ROOT}/web-client/desktop)
--  endif()
--  add_resources(TARGET ${MAIN_TARGET} SOURCES ${CMAKE_SOURCE_DIR}/native/ DEST ${RESOURCE_ROOT}/web-client/extension)
-+  install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/../../jellyfin-web/ DESTINATION ${RESOURCE_ROOT}/web-client/desktop)
-+  install(DIRECTORY ${CMAKE_SOURCE_DIR}/native/ DESTINATION ${RESOURCE_ROOT}/web-client/extension)
- endif()
- 
- if(NOT APPLE)
-@@ -123,9 +121,7 @@ if(NOT APPLE)
-       install(FILES ${loc}/qtwebengine_devtools_resources.pak DESTINATION resources)
-     endif()
-   endforeach()
--  if(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/../dist/)
--    install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/../dist/ DESTINATION ${INSTALL_RESOURCE_DIR}/web-client/desktop)
--  endif()
-+  install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/../../jellyfin-web/ DESTINATION ${INSTALL_RESOURCE_DIR}/web-client/desktop)
-   install(DIRECTORY ${CMAKE_SOURCE_DIR}/native/ DESTINATION ${INSTALL_RESOURCE_DIR}/web-client/extension)
- endif()
- 
diff --git a/pkgs/applications/video/jellyfin-mpv-shim/default.nix b/pkgs/applications/video/jellyfin-mpv-shim/default.nix
index 70f28ab72077c..fe32c894c741a 100644
--- a/pkgs/applications/video/jellyfin-mpv-shim/default.nix
+++ b/pkgs/applications/video/jellyfin-mpv-shim/default.nix
@@ -18,11 +18,11 @@
 
 buildPythonApplication rec {
   pname = "jellyfin-mpv-shim";
-  version = "2.6.0";
+  version = "2.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-90Z2vgYT/9hBQZgfXeY7l6sGwT5KEY8X4rZMgrbTwrM=";
+    sha256 = "sha256-EANaNmvD8hcdGB2aoGemKvA9syS1VvIqGsP1jk0b+lE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/video/kazam/default.nix b/pkgs/applications/video/kazam/default.nix
index cf392a143d7dc..3d3349ab1bd75 100644
--- a/pkgs/applications/video/kazam/default.nix
+++ b/pkgs/applications/video/kazam/default.nix
@@ -53,7 +53,7 @@ python3Packages.buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A screencasting program created with design in mind";
+    description = "Screencasting program created with design in mind";
     homepage = "https://github.com/niknah/kazam";
     license = licenses.lgpl3;
     platforms = platforms.linux;
diff --git a/pkgs/applications/video/kodi/addons/archive_tool/default.nix b/pkgs/applications/video/kodi/addons/archive_tool/default.nix
index 4788556a8793a..03372e1728589 100644
--- a/pkgs/applications/video/kodi/addons/archive_tool/default.nix
+++ b/pkgs/applications/video/kodi/addons/archive_tool/default.nix
@@ -21,7 +21,7 @@ buildKodiAddon rec {
 
   meta = with lib; {
     homepage = "https://github.com/zach-morris/script.module.archive_tool";
-    description = "A set of common python functions to work with the Kodi archive virtual file system (vfs) binary addons";
+    description = "Set of common python functions to work with the Kodi archive virtual file system (vfs) binary addons";
     license = licenses.gpl3Plus;
     maintainers = teams.kodi.members;
   };
diff --git a/pkgs/applications/video/kodi/addons/controller-topology-project/default.nix b/pkgs/applications/video/kodi/addons/controller-topology-project/default.nix
index cfaef2bb7f98e..5b55ab9d1282f 100644
--- a/pkgs/applications/video/kodi/addons/controller-topology-project/default.nix
+++ b/pkgs/applications/video/kodi/addons/controller-topology-project/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, toKodiAddon, addonDir }:
 let
-  drv = stdenv.mkDerivation {
+  drv = stdenv.mkDerivation rec {
     pname = "controller-topology-project";
-    version = "unstable-2022-11-19";
+    version = "1.0.0";
 
     src = fetchFromGitHub {
       owner = "kodi-game";
       repo = "controller-topology-project";
-      rev = "d96894ca68678000f26f56d14aa3ceea47b1a3a8";
-      sha256 = "sha256-KfDr2bSJFey/aNO5WzoOQ8Mz0v4uitKkOesymIMZH1o=";
+      rev = "v${version}";
+      sha256 = "sha256-6g4dyR34b0YgxlzRRS2C/gY3wjlO9MMYEB2fHLSCqC4=";
     };
 
     postPatch = ''
diff --git a/pkgs/applications/video/kodi/addons/formula1/default.nix b/pkgs/applications/video/kodi/addons/formula1/default.nix
new file mode 100644
index 0000000000000..0d374dc65be1b
--- /dev/null
+++ b/pkgs/applications/video/kodi/addons/formula1/default.nix
@@ -0,0 +1,29 @@
+{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, requests }:
+
+buildKodiAddon rec {
+  pname = "formula1";
+  namespace = "plugin.video.formula1";
+  version = "2.0.2";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
+    sha256 = "sha256-aClAgkJKvixeKzrwgEsfDhPXiFv9+ULLmb8c9QTaUgM=";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  passthru = {
+    updateScript = addonUpdateScript {
+      attrPath = "kodi.packages.formula1";
+    };
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/jaylinski/kodi-addon-formula1";
+    description = "Videos from the Formula 1 website";
+    license = licenses.mit;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi/addons/future/default.nix b/pkgs/applications/video/kodi/addons/future/default.nix
index 8812fbd8f5b39..91b7d3996c577 100644
--- a/pkgs/applications/video/kodi/addons/future/default.nix
+++ b/pkgs/applications/video/kodi/addons/future/default.nix
@@ -19,7 +19,7 @@ buildKodiAddon rec {
 
   meta = with lib; {
     homepage = "https://python-future.org";
-    description = "The missing compatibility layer between Python 2 and Python 3";
+    description = "Missing compatibility layer between Python 2 and Python 3";
     license = licenses.mit;
     maintainers = teams.kodi.members;
   };
diff --git a/pkgs/applications/video/kodi/addons/infotagger/default.nix b/pkgs/applications/video/kodi/addons/infotagger/default.nix
index da4528ed0afc5..7ac5e48071073 100644
--- a/pkgs/applications/video/kodi/addons/infotagger/default.nix
+++ b/pkgs/applications/video/kodi/addons/infotagger/default.nix
@@ -2,13 +2,13 @@
 buildKodiAddon rec {
   pname = "infotagger";
   namespace = "script.module.infotagger";
-  version = "0.0.7";
+  version = "0.0.8";
 
   src = fetchFromGitHub {
     owner = "jurialmunkey";
     repo = namespace;
     rev = "v${version}";
-    hash = "sha256-Us7ud0QORGn+ALB4uyISekp0kUYY8nN8uFNg8MlxEB0=";
+    hash = "sha256-Ns1OjrYLKz4znXRxqUErDLcmC0HBjBFVYI9GFqDVurY=";
   };
 
   passthru = {
diff --git a/pkgs/applications/video/kodi/addons/inputstreamhelper/default.nix b/pkgs/applications/video/kodi/addons/inputstreamhelper/default.nix
index 97cc417e6bf1c..13b2738fdff99 100644
--- a/pkgs/applications/video/kodi/addons/inputstreamhelper/default.nix
+++ b/pkgs/applications/video/kodi/addons/inputstreamhelper/default.nix
@@ -18,7 +18,7 @@ buildKodiAddon rec {
 
   meta = with lib; {
     homepage = "https://github.com/emilsvennesson/script.module.inputstreamhelper";
-    description = "A simple Kodi module that makes life easier for add-on developers relying on InputStream based add-ons and DRM playback";
+    description = "Simple Kodi module that makes life easier for add-on developers relying on InputStream based add-ons and DRM playback";
     license = licenses.mit;
     maintainers = teams.kodi.members;
   };
diff --git a/pkgs/applications/video/kodi/addons/invidious/default.nix b/pkgs/applications/video/kodi/addons/invidious/default.nix
index 36ae8608837d2..ca688ddc0f2e8 100644
--- a/pkgs/applications/video/kodi/addons/invidious/default.nix
+++ b/pkgs/applications/video/kodi/addons/invidious/default.nix
@@ -1,4 +1,4 @@
-{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, requests, inputstream-adaptive, inputstreamhelper }:
+{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, infotagger, requests, inputstream-adaptive, inputstreamhelper }:
 
 buildKodiAddon rec {
   pname = "invidious";
@@ -11,6 +11,7 @@ buildKodiAddon rec {
   };
 
   propagatedBuildInputs = [
+    infotagger
     requests
     inputstream-adaptive
     inputstreamhelper
@@ -25,7 +26,7 @@ buildKodiAddon rec {
 
   meta = with lib; {
     homepage = "https://github.com/petterreinholdtsen/kodi-invidious-plugin";
-    description = "A privacy-friendly way of watching YouTube content";
+    description = "Privacy-friendly way of watching YouTube content";
     license = licenses.mit;
     maintainers = teams.kodi.members;
   };
diff --git a/pkgs/applications/video/kodi/addons/jellycon/default.nix b/pkgs/applications/video/kodi/addons/jellycon/default.nix
index 88e9504f8d191..d618e58cee371 100644
--- a/pkgs/applications/video/kodi/addons/jellycon/default.nix
+++ b/pkgs/applications/video/kodi/addons/jellycon/default.nix
@@ -43,7 +43,7 @@ buildKodiAddon rec {
 
   meta = with lib; {
     homepage = "https://github.com/jellyfin/jellycon";
-    description = "A lightweight Kodi add-on for Jellyfin";
+    description = "Lightweight Kodi add-on for Jellyfin";
     longDescription = ''
       JellyCon is a lightweight Kodi add-on that lets you browse and play media
       files directly from your Jellyfin server within the Kodi interface. It can
diff --git a/pkgs/applications/video/kodi/addons/jellyfin/default.nix b/pkgs/applications/video/kodi/addons/jellyfin/default.nix
index 9f16d0a86f7ee..93217122d53bf 100644
--- a/pkgs/applications/video/kodi/addons/jellyfin/default.nix
+++ b/pkgs/applications/video/kodi/addons/jellyfin/default.nix
@@ -43,7 +43,7 @@ buildKodiAddon rec {
 
   meta = with lib; {
     homepage = "https://jellyfin.org/";
-    description = "A whole new way to manage and view your media library";
+    description = "Whole new way to manage and view your media library";
     license = licenses.gpl3Only;
     maintainers = teams.kodi.members;
   };
diff --git a/pkgs/applications/video/kodi/addons/joystick/default.nix b/pkgs/applications/video/kodi/addons/joystick/default.nix
index 9da9d8bb7b599..47dbb0f5dfc0d 100644
--- a/pkgs/applications/video/kodi/addons/joystick/default.nix
+++ b/pkgs/applications/video/kodi/addons/joystick/default.nix
@@ -14,7 +14,7 @@ buildKodiBinaryAddon rec {
   extraBuildInputs = [ tinyxml udev ];
 
   meta = with lib; {
-    description = "Binary addon for raw joystick input.";
+    description = "Binary addon for raw joystick input";
     platforms = platforms.all;
     license = licenses.gpl2Only;
     maintainers = teams.kodi.members;
diff --git a/pkgs/applications/video/kodi/addons/keymap/default.nix b/pkgs/applications/video/kodi/addons/keymap/default.nix
index e98e5ca2cb419..4254763d53611 100644
--- a/pkgs/applications/video/kodi/addons/keymap/default.nix
+++ b/pkgs/applications/video/kodi/addons/keymap/default.nix
@@ -23,7 +23,7 @@ buildKodiAddon rec {
 
   meta = with lib; {
     homepage = "https://github.com/tamland/xbmc-keymap-editor";
-    description = "A GUI for configuring mappings for remotes, keyboard and other inputs supported by Kodi";
+    description = "GUI for configuring mappings for remotes, keyboard and other inputs supported by Kodi";
     license = licenses.gpl3Plus;
     maintainers = teams.kodi.members;
   };
diff --git a/pkgs/applications/video/kodi/addons/orftvthek/default.nix b/pkgs/applications/video/kodi/addons/orftvthek/default.nix
index 4a6b4480b0506..416cb9a30a6be 100644
--- a/pkgs/applications/video/kodi/addons/orftvthek/default.nix
+++ b/pkgs/applications/video/kodi/addons/orftvthek/default.nix
@@ -3,13 +3,13 @@
 buildKodiAddon rec {
   pname = "orftvthek";
   namespace = "plugin.video.orftvthek";
-  version = "0.12.9";
+  version = "0.12.12";
 
   src = fetchFromGitHub {
     owner = "s0faking";
     repo = namespace;
     rev = version;
-    sha256 = "sha256-bqGY9PPukn5/HJa3OqU5NM+ReeDJdVn60jXh1+2Qef8=";
+    sha256 = "sha256-4VLr4DFxioCrlq5JtiPyd7E4a+++cWgxCnRb3KPppWE=";
   };
 
   propagatedBuildInputs = [
@@ -21,7 +21,7 @@ buildKodiAddon rec {
 
   meta = with lib; {
     homepage = "https://github.com/s0faking/plugin.video.orftvthek";
-    description = "An addon that gives you access to the ORF TVthek Video Platform";
+    description = "Addon that gives you access to the ORF TVthek Video Platform";
     license = licenses.gpl2Only;
     maintainers = teams.kodi.members;
   };
diff --git a/pkgs/applications/video/kodi/addons/osmc-skin/default.nix b/pkgs/applications/video/kodi/addons/osmc-skin/default.nix
index 71e0e1744b787..2cf5f8784dc1f 100644
--- a/pkgs/applications/video/kodi/addons/osmc-skin/default.nix
+++ b/pkgs/applications/video/kodi/addons/osmc-skin/default.nix
@@ -13,7 +13,7 @@ buildKodiAddon rec {
 
   meta = with lib; {
     homepage = "https://github.com/osmc/skin.osmc";
-    description = "The default skin for OSMC";
+    description = "Default skin for OSMC";
     platforms = platforms.all;
     maintainers = with maintainers; [ ];
     license = licenses.cc-by-nc-sa-30;
diff --git a/pkgs/applications/video/kodi/addons/pdfreader/default.nix b/pkgs/applications/video/kodi/addons/pdfreader/default.nix
index 62a5853c796b8..c2c11e92213f4 100644
--- a/pkgs/applications/video/kodi/addons/pdfreader/default.nix
+++ b/pkgs/applications/video/kodi/addons/pdfreader/default.nix
@@ -15,7 +15,7 @@ buildKodiAddon rec {
 
   meta = with lib; {
     homepage = "https://forum.kodi.tv/showthread.php?tid=187421";
-    description = "A comic book reader";
+    description = "Comic book reader";
     license = licenses.gpl2Plus;
     maintainers = teams.kodi.members;
   };
diff --git a/pkgs/applications/video/kodi/addons/plugin-cache/default.nix b/pkgs/applications/video/kodi/addons/plugin-cache/default.nix
new file mode 100644
index 0000000000000..c21f5e136e41e
--- /dev/null
+++ b/pkgs/applications/video/kodi/addons/plugin-cache/default.nix
@@ -0,0 +1,26 @@
+{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript }:
+
+buildKodiAddon rec {
+  pname = "plugin-cache";
+  namespace = "script.common.plugin.cache";
+  version = "3.0.0";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
+    sha256 = "sha256-5QcMNmWOEw2C26OXlvAvxqDxTpjIMBhwmaIFwVgHuIU=";
+  };
+
+  passthru = {
+    pythonPath = "resources/lib";
+    updateScript = addonUpdateScript {
+      attrPath = "kodi.packages.plugin-cache";
+    };
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/anxdpanic/script.common.plugin.cache";
+    description = "Common plugin cache";
+    license = licenses.gpl3Only;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi/addons/raiplay/default.nix b/pkgs/applications/video/kodi/addons/raiplay/default.nix
new file mode 100644
index 0000000000000..ab5bcfedccfdb
--- /dev/null
+++ b/pkgs/applications/video/kodi/addons/raiplay/default.nix
@@ -0,0 +1,30 @@
+{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, inputstreamhelper, plugin-cache }:
+
+buildKodiAddon rec {
+  pname = "raiplay";
+  namespace = "plugin.video.raitv";
+  version = "4.1.2";
+
+  propagatedBuildInputs = [
+    plugin-cache
+    inputstreamhelper
+  ];
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
+    sha256 = "sha256-9aR1kkl+0+nhP0bOTnaKCgSfuPvJzX5TWHU0WJZIvSM=";
+  };
+
+  passthru = {
+    updateScript = addonUpdateScript {
+      attrPath = "kodi.packages.raiplay";
+    };
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/maxbambi/plugin.video.raitv/";
+    description = "Live radio and TV channels, latest 7 days of programming, broadcast archive, news";
+    license = licenses.gpl3Only;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi/addons/routing/default.nix b/pkgs/applications/video/kodi/addons/routing/default.nix
index 9c87c69e9912e..211b87242363e 100644
--- a/pkgs/applications/video/kodi/addons/routing/default.nix
+++ b/pkgs/applications/video/kodi/addons/routing/default.nix
@@ -18,7 +18,7 @@ buildKodiAddon rec {
 
   meta = with lib; {
     homepage = "https://github.com/tamland/kodi-plugin-routing";
-    description = "A routing module for kodi plugins";
+    description = "Routing module for kodi plugins";
     license = licenses.gpl3Plus;
     maintainers = teams.kodi.members;
   };
diff --git a/pkgs/applications/video/kodi/addons/simplecache/default.nix b/pkgs/applications/video/kodi/addons/simplecache/default.nix
new file mode 100644
index 0000000000000..35c2cc5a1a336
--- /dev/null
+++ b/pkgs/applications/video/kodi/addons/simplecache/default.nix
@@ -0,0 +1,26 @@
+{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript }:
+
+buildKodiAddon rec {
+  pname = "simplecache";
+  namespace = "script.module.simplecache";
+  version = "2.0.2";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
+    sha256 = "sha256-xdOBIi99nspcDIKkjxcW1r/BqL8O9NxdDViTuvMtUmo=";
+  };
+
+  passthru = {
+    pythonPath = "lib";
+    updateScript = addonUpdateScript {
+      attrPath = "kodi.packages.simplecache";
+    };
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/kodi-community-addons/script.module.simplecache";
+    description = "A simple object cache for Kodi addons";
+    license = licenses.asl20;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi/addons/sponsorblock/default.nix b/pkgs/applications/video/kodi/addons/sponsorblock/default.nix
index d174a09625e51..a0c0b04ec82e3 100644
--- a/pkgs/applications/video/kodi/addons/sponsorblock/default.nix
+++ b/pkgs/applications/video/kodi/addons/sponsorblock/default.nix
@@ -22,7 +22,7 @@ buildKodiAddon rec {
 
   meta = with lib; {
     homepage = "https://github.com/siku2/script.service.sponsorblock";
-    description = "A Port of SponsorBlock for Invidious and YouTube Plugin";
+    description = "Port of SponsorBlock for Invidious and YouTube Plugin";
     license = licenses.mit;
     maintainers = teams.kodi.members;
   };
diff --git a/pkgs/applications/video/kodi/addons/steam-controller/default.nix b/pkgs/applications/video/kodi/addons/steam-controller/default.nix
index 20488d8a3ffc3..387f096686587 100644
--- a/pkgs/applications/video/kodi/addons/steam-controller/default.nix
+++ b/pkgs/applications/video/kodi/addons/steam-controller/default.nix
@@ -14,7 +14,7 @@ buildKodiBinaryAddon rec {
   extraBuildInputs = [ libusb1 ];
 
   meta = with lib; {
-    description = "Binary addon for steam controller.";
+    description = "Binary addon for steam controller";
     platforms = platforms.all;
     maintainers = teams.kodi.members;
   };
diff --git a/pkgs/applications/video/kodi/addons/upnext/default.nix b/pkgs/applications/video/kodi/addons/upnext/default.nix
new file mode 100644
index 0000000000000..dccfce4c3f0f6
--- /dev/null
+++ b/pkgs/applications/video/kodi/addons/upnext/default.nix
@@ -0,0 +1,26 @@
+{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript }:
+
+buildKodiAddon rec {
+  pname = "upnext";
+  namespace = "service.upnext";
+  version = "1.1.9+matrix.1";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/${lib.toLower rel}/${namespace}/${namespace}-${version}.zip";
+    sha256 = "sha256-oNUk80MEzK6Qssn1KjT6psPTazISRoUif1IMo+BKJxo=";
+  };
+
+  passthru = {
+    pythonPath = "resources/lib";
+    updateScript = addonUpdateScript {
+      attrPath = "kodi.packages.upnext";
+    };
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/im85288/service.upnext";
+    description = "Up Next - Proposes to play the next episode automatically";
+    license = licenses.gpl2Only;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi/addons/websocket/default.nix b/pkgs/applications/video/kodi/addons/websocket/default.nix
index 6d0ecc55aa05a..40667e71392bb 100644
--- a/pkgs/applications/video/kodi/addons/websocket/default.nix
+++ b/pkgs/applications/video/kodi/addons/websocket/default.nix
@@ -23,7 +23,7 @@ buildKodiAddon rec {
 
   meta = with lib; {
     homepage = "https://github.com/websocket-client/websocket-client";
-    description = "A WebSocket client for Python";
+    description = "WebSocket client for Python";
     license = licenses.lgpl2Only;
     maintainers = teams.kodi.members;
   };
diff --git a/pkgs/applications/video/kodi/addons/youtube/default.nix b/pkgs/applications/video/kodi/addons/youtube/default.nix
index 23c59d702e4d2..efeff6350cdd1 100644
--- a/pkgs/applications/video/kodi/addons/youtube/default.nix
+++ b/pkgs/applications/video/kodi/addons/youtube/default.nix
@@ -1,21 +1,20 @@
-{ lib, buildKodiAddon, fetchFromGitHub, six, requests, infotagger, inputstreamhelper }:
+{ lib, buildKodiAddon, fetchFromGitHub, requests, inputstream-adaptive, inputstreamhelper }:
 
 buildKodiAddon rec {
   pname = "youtube";
   namespace = "plugin.video.youtube";
-  version = "7.0.6.3";
+  version = "7.0.7";
 
   src = fetchFromGitHub {
     owner = "anxdpanic";
     repo = "plugin.video.youtube";
     rev = "v${version}";
-    hash = "sha256-MhVxaI/kZ/CCAcf6Mo4DXmXpCLpxxpBFGwmTBp3rKkI=";
+    hash = "sha256-i21BCkW4WpnQY1j9Wyn3/26GaAjWNXDb+lOVpmXlNKM=";
   };
 
   propagatedBuildInputs = [
-    six
     requests
-    infotagger
+    inputstream-adaptive
     inputstreamhelper
   ];
 
diff --git a/pkgs/applications/video/lbry/default.nix b/pkgs/applications/video/lbry/default.nix
index f978fd6226060..fe4100ebef57e 100644
--- a/pkgs/applications/video/lbry/default.nix
+++ b/pkgs/applications/video/lbry/default.nix
@@ -30,7 +30,7 @@ appimageTools.wrapAppImage rec {
   '';
 
   meta = with lib; {
-    description = "A browser and wallet for LBRY, the decentralized, user-controlled content marketplace";
+    description = "Browser and wallet for LBRY, the decentralized, user-controlled content marketplace";
     longDescription = ''
       The LBRY app is a graphical browser for the decentralized content marketplace provided by the LBRY protocol.
       It is essentially the lbry daemon bundled with a UI using Electron.
diff --git a/pkgs/applications/video/lightworks/default.nix b/pkgs/applications/video/lightworks/default.nix
index f08b014273c03..ea2f0bde5e33c 100644
--- a/pkgs/applications/video/lightworks/default.nix
+++ b/pkgs/applications/video/lightworks/default.nix
@@ -27,15 +27,15 @@ let
   ];
 
   lightworks = stdenv.mkDerivation rec {
-    version = "2023.1";
-    rev = "141770";
+    version = "2023.2";
+    rev = "146240";
     pname = "lightworks";
 
     src =
       if stdenv.hostPlatform.system == "x86_64-linux" then
         fetchurl {
           url = "https://cdn.lwks.com/releases/${version}/lightworks_${version}_r${rev}.deb";
-          sha256 = "sha256-QRbghrZQbprl2wUBKNMJVBeW0Ek6nWvo4006jyPYIBg=";
+          sha256 = "sha256-sVEDCZZsY5OwuWebrhatzZiws89/tEKIdgY54PN0Ddo=";
         }
       else throw "${pname}-${version} is not supported on ${stdenv.hostPlatform.system}";
 
diff --git a/pkgs/applications/video/losslesscut-bin/build-from-dmg.nix b/pkgs/applications/video/losslesscut-bin/build-from-dmg.nix
index 9b3a91b9d029a..12b8205eec343 100644
--- a/pkgs/applications/video/losslesscut-bin/build-from-dmg.nix
+++ b/pkgs/applications/video/losslesscut-bin/build-from-dmg.nix
@@ -1,7 +1,7 @@
 { lib
 , stdenvNoCC
 , fetchurl
-, undmg
+, _7zz
 , pname
 , version
 , hash
@@ -19,15 +19,18 @@ in
 stdenvNoCC.mkDerivation {
   inherit pname version src;
 
-  nativeBuildInputs = [ undmg ];
+  nativeBuildInputs = [ _7zz ];
 
   sourceRoot = "LosslessCut.app";
 
   installPhase = ''
-    mkdir -p "$out/Applications/LosslessCut.app"
-    cp -R . "$out/Applications/LosslessCut.app"
+    runHook preInstall
+    mkdir -p "$out/Applications"
+    cd ..
+    mv "$sourceRoot" "$out/Applications"
     mkdir -p "$out/bin"
-    ln -s "$out/Applications/LosslessCut.app/Contents/MacOS/LosslessCut" "$out/bin/losslesscut"
+    ln -s "$out/Applications/$(basename "$sourceRoot")/Contents/MacOS/LosslessCut" "$out/bin/losslesscut"
+    runHook postInstall
   '';
 
   meta = metaCommon // (with lib; {
diff --git a/pkgs/applications/video/losslesscut-bin/build-from-windows.nix b/pkgs/applications/video/losslesscut-bin/build-from-windows.nix
index ddaf873806448..e6520e4a54b99 100644
--- a/pkgs/applications/video/losslesscut-bin/build-from-windows.nix
+++ b/pkgs/applications/video/losslesscut-bin/build-from-windows.nix
@@ -19,15 +19,20 @@ stdenvNoCC.mkDerivation {
   nativeBuildInputs = [ p7zip ];
 
   unpackPhase = ''
-    7z x $src -oLosslessCut-win-x64
+    runHook preUnpack
+    7z x "$src" -o"$sourceRoot"
+    runHook postUnpack
   '';
 
   sourceRoot = "LosslessCut-win-x64";
 
   installPhase = ''
-    mkdir -p $out/bin $out/libexec
-    (cd .. && mv LosslessCut-win-x64 $out/libexec)
-    ln -s "$out/libexec/LosslessCut-win-x64/LosslessCut.exe" "$out/bin/LosslessCut.exe"
+    runHook preInstall
+    mkdir -p "$out/bin" "$out/libexec"
+    cd ..
+    mv "$sourceRoot" "$out/libexec"
+    ln -s "$out/libexec/$(basename "$sourceRoot")/LosslessCut.exe" "$out/bin/LosslessCut.exe"
+    runHook postInstall
   '';
 
   meta = metaCommon // (with lib; {
diff --git a/pkgs/applications/video/losslesscut-bin/default.nix b/pkgs/applications/video/losslesscut-bin/default.nix
index ebab149ab1a89..c3ed6b306beb3 100644
--- a/pkgs/applications/video/losslesscut-bin/default.nix
+++ b/pkgs/applications/video/losslesscut-bin/default.nix
@@ -6,9 +6,9 @@
 
 let
   pname = "losslesscut";
-  version = "3.58.0";
+  version = "3.61.1";
   metaCommon = with lib; {
-    description = "The swiss army knife of lossless video/audio editing";
+    description = "Swiss army knife of lossless video/audio editing";
     homepage = "https://mifi.no/losslesscut/";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ ShamrockLee ];
@@ -17,22 +17,22 @@ let
   };
   x86_64-appimage = callPackage ./build-from-appimage.nix {
     inherit pname version metaCommon;
-    hash = "sha256-wmOdW5LdGLs6Wrt/VBlbC1ScFZBmd5gVQaj/cYADnWc=";
+    hash = "sha256-wKhEB+MfOsBvZRTIt3hLofw37+YO+hWKowlSi1OxSAU=";
     inherit (buildPackages) makeWrapper;
   };
   x86_64-dmg = callPackage ./build-from-dmg.nix {
     inherit pname version metaCommon;
-    hash = "sha256-ZNUkzxpFTmsFcdC4oJWDxvqunpaBKz7Fnmrsa4W12Bg=";
+    hash = "sha256-yZYmM533D9VzM+a0bnYz/aqocaEJVFOTgLWjbQGOQR0=";
     isAarch64 = false;
   };
   aarch64-dmg = callPackage ./build-from-dmg.nix {
     inherit pname version metaCommon;
-    hash = "sha256-PpQF31qsn9TOIRVzOdDoLUqti+m1uRpBQrrqKtxFleE=";
+    hash = "sha256-/qa2P0R7xRzDgnPKqkeKN6lrDbPg9WuZ/Nnc51NTzaM=";
     isAarch64 = true;
   };
   x86_64-windows = callPackage ./build-from-windows.nix {
     inherit pname version metaCommon;
-    hash = "sha256-AgWvLU9m2q7fxZYXgHGMgEj1WLP5XzERq7tWcin2/30=";
+    hash = "sha256-0awYmSGxm8M12X0WQftlapRF9m3GGCZivNwBtRjSa4E=";
   };
 in
 (
diff --git a/pkgs/applications/video/makemkv/default.nix b/pkgs/applications/video/makemkv/default.nix
index 261e8008f6bc0..cb568d07cbf30 100644
--- a/pkgs/applications/video/makemkv/default.nix
+++ b/pkgs/applications/video/makemkv/default.nix
@@ -15,21 +15,21 @@
 }:
 
 let
-  version = "1.17.6";
+  version = "1.17.7";
   # Using two URLs as the first one will break as soon as a new version is released
   src_bin = fetchurl {
     urls = [
       "http://www.makemkv.com/download/makemkv-bin-${version}.tar.gz"
       "http://www.makemkv.com/download/old/makemkv-bin-${version}.tar.gz"
     ];
-    sha256 = "KHZGAFAp93HTZs8OT76xf88QM0UtlVVH3q57CZm07Rs=";
+    hash = "sha256-jFvIMbyVKx+HPMhFDGTjktsLJHm2JtGA8P/JZWaJUdA=";
   };
   src_oss = fetchurl {
     urls = [
       "http://www.makemkv.com/download/makemkv-oss-${version}.tar.gz"
       "http://www.makemkv.com/download/old/makemkv-oss-${version}.tar.gz"
     ];
-    sha256 = "2dtNdyv0+QYWQrfrIu5RQKSN4scSWKuLFNlJZXpxDUM=";
+    hash = "sha256-di5VLUb57HWnxi3LfZfA/Z5qFRINDvb1oIDO4pHToO8=";
   };
 in
 mkDerivation {
diff --git a/pkgs/applications/video/media-downloader/default.nix b/pkgs/applications/video/media-downloader/default.nix
deleted file mode 100644
index e11b1b1b5bb25..0000000000000
--- a/pkgs/applications/video/media-downloader/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ aria2
-, cmake
-, fetchFromGitHub
-, ffmpeg
-, lib
-, python3
-, qtbase
-, stdenv
-, wrapQtAppsHook
-, yt-dlp
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "media-downloader";
-  version = "4.6.0";
-
-  src = fetchFromGitHub {
-    owner = "mhogomchungu";
-    repo = "media-downloader";
-    rev = finalAttrs.version;
-    hash = "sha256-sl82ZnRqFE3z+EGM+m5rAy4MMrbgkY4PZgyc94x7XUI=";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    wrapQtAppsHook
-  ];
-
-  buildInputs = [
-    qtbase
-  ];
-
-  qtWrapperArgs = [
-    "--prefix PATH : ${lib.makeBinPath [
-        aria2
-        ffmpeg
-        python3
-        yt-dlp
-      ]}"
-  ];
-
-  meta = {
-    description = "A Qt/C++ GUI front end for yt-dlp and others";
-    homepage = "https://github.com/mhogomchungu/media-downloader";
-    license = lib.licenses.gpl2Plus;
-    maintainers = with lib.maintainers; [ zendo ];
-    platforms = lib.platforms.linux;
-    mainProgram = "media-downloader";
-  };
-})
diff --git a/pkgs/applications/video/memento/default.nix b/pkgs/applications/video/memento/default.nix
index cee74556eaabe..40ff061a7fea2 100644
--- a/pkgs/applications/video/memento/default.nix
+++ b/pkgs/applications/video/memento/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "An mpv-based video player for studying Japanese";
+    description = "Mpv-based video player for studying Japanese";
     homepage = "https://ripose-jp.github.io/Memento/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ teto ];
diff --git a/pkgs/applications/video/mplayer/default.nix b/pkgs/applications/video/mplayer/default.nix
index 0fbfefa271988..97d1baf9c3e3f 100644
--- a/pkgs/applications/video/mplayer/default.nix
+++ b/pkgs/applications/video/mplayer/default.nix
@@ -202,7 +202,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = with lib; {
-    description = "A movie player that supports many video formats";
+    description = "Movie player that supports many video formats";
     homepage = "http://mplayerhq.hu";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ eelco ];
diff --git a/pkgs/applications/video/mpv-shim-default-shaders/default.nix b/pkgs/applications/video/mpv-shim-default-shaders/default.nix
index eb6c81f6358ba..7e1dfbae4a4d3 100644
--- a/pkgs/applications/video/mpv-shim-default-shaders/default.nix
+++ b/pkgs/applications/video/mpv-shim-default-shaders/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/iwalton3/default-shader-pack";
-    description = "Preconfigured set of MPV shaders and configurations for MPV Shim media clients.";
+    description = "Preconfigured set of MPV shaders and configurations for MPV Shim media clients";
     license = with licenses; [
       gpl3Plus
       mit
diff --git a/pkgs/applications/video/mpv/0001-fix-darwin-build.patch b/pkgs/applications/video/mpv/0001-fix-darwin-build.patch
new file mode 100644
index 0000000000000..c7e486a3c5d14
--- /dev/null
+++ b/pkgs/applications/video/mpv/0001-fix-darwin-build.patch
@@ -0,0 +1,29 @@
+--- a/osdep/mac/input_helper.swift
++++ b/osdep/mac/input_helper.swift
+@@ -18,6 +18,14 @@
+ import Cocoa
+ import Carbon.HIToolbox
+ 
++extension NSCondition {
++    fileprivate func withLock<T>(_ body: () throws -> T) rethrows -> T {
++        self.lock()
++        defer { self.unlock() }
++        return try body()
++    }
++}
++
+ class InputHelper: NSObject {
+     var option: OptionHelper?
+     var lock = NSCondition()
+--- a/audio/out/ao_avfoundation.m
++++ b/audio/out/ao_avfoundation.m
+@@ -312,7 +312,8 @@
+
++    #if __MAC_OS_X_VERSION_MAX_ALLOWED >= 120000
+     p->observer = [[AVObserver alloc] initWithAO:ao];
+     NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
+     [center addObserver:p->observer selector:@selector(handleRestartNotification:) name:AVSampleBufferAudioRendererOutputConfigurationDidChangeNotification object:p->renderer];
+     [center addObserver:p->observer selector:@selector(handleRestartNotification:) name:AVSampleBufferAudioRendererWasFlushedAutomaticallyNotification object:p->renderer];
+-
++    #endif
+     return CONTROL_OK;
diff --git a/pkgs/applications/video/mpv/darwin-sigtool-no-deep.patch b/pkgs/applications/video/mpv/darwin-sigtool-no-deep.patch
deleted file mode 100644
index 74ab97db4e540..0000000000000
--- a/pkgs/applications/video/mpv/darwin-sigtool-no-deep.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/TOOLS/osxbundle.py b/TOOLS/osxbundle.py
-index 98699e478b..d02ecf610e 100755
---- a/TOOLS/osxbundle.py
-+++ b/TOOLS/osxbundle.py
-@@ -39,7 +39,7 @@ def apply_plist_template(plist_file, version):
-         print(line.rstrip().replace('${VERSION}', version))
- 
- def sign_bundle(binary_name):
--    sh('codesign --force --deep -s - ' + bundle_path(binary_name))
-+    sh('rcodesign sign ' + bundle_path(binary_name))
- 
- def bundle_version():
-     if os.path.exists('VERSION'):
diff --git a/pkgs/applications/video/mpv/default.nix b/pkgs/applications/video/mpv/default.nix
index ec2acb9656bb3..0f9cec9c409bd 100644
--- a/pkgs/applications/video/mpv/default.nix
+++ b/pkgs/applications/video/mpv/default.nix
@@ -1,132 +1,176 @@
-{ lib
-, config
-, stdenv
-, fetchFromGitHub
-, addOpenGLRunpath
-, bash
-, docutils
-, meson
-, ninja
-, pkg-config
-, python3
-, ffmpeg
-, freefont_ttf
-, freetype
-, libass
-, libpthreadstubs
-, nv-codec-headers-11
-, lua
-, libuchardet
-, libiconv
-, xcbuild
-, rcodesign
+{
+  lib,
+  SDL2,
+  addOpenGLRunpath,
+  alsa-lib,
+  bash,
+  buildPackages,
+  callPackage,
+  config,
+  darwin,
+  docutils,
+  fetchFromGitHub,
+  ffmpeg,
+  freefont_ttf,
+  freetype,
+  lcms2,
+  libGL,
+  libGLU,
+  libX11,
+  libXScrnSaver,
+  libXext,
+  libXinerama,
+  libXpresent,
+  libXrandr,
+  libXv,
+  libXxf86vm,
+  libarchive,
+  libass,
+  libbluray,
+  libbs2b,
+  libcaca,
+  libcdio,
+  libcdio-paranoia,
+  libdrm,
+  libdvdnav,
+  libiconv,
+  libjack2,
+  libplacebo,
+  libpng,
+  libpthreadstubs,
+  libpulseaudio,
+  libsixel,
+  libtheora,
+  libuchardet,
+  libva,
+  libvdpau,
+  libxkbcommon,
+  lua,
+  mesa,
+  meson,
+  mujs,
+  ninja,
+  nixosTests,
+  nv-codec-headers-11,
+  openalSoft,
+  pipewire,
+  pkg-config,
+  python3,
+  rubberband,
+  shaderc, # instead of spirv-cross
+  speex,
+  stdenv,
+  swift,
+  testers,
+  vapoursynth,
+  vulkan-headers,
+  vulkan-loader,
+  wayland,
+  wayland-protocols,
+  wayland-scanner,
+  xcbuild,
+  zimg,
 
-, waylandSupport ? stdenv.isLinux
-  , wayland
-  , wayland-protocols
-  , wayland-scanner
-  , libxkbcommon
-
-, x11Support ? stdenv.isLinux
-  , libGLU, libGL
-  , libX11
-  , libXext
-  , libXxf86vm
-  , libXrandr
-  , libXpresent
-
-, cddaSupport ? false
-  , libcdio
-  , libcdio-paranoia
-
-, vulkanSupport ? stdenv.isLinux
-  , libplacebo
-  , shaderc # instead of spirv-cross
-  , vulkan-headers
-  , vulkan-loader
-
-, drmSupport ? stdenv.isLinux
-  , libdrm
-  , mesa
-
-, alsaSupport        ? stdenv.isLinux, alsa-lib
-, archiveSupport     ? true,           libarchive
-, bluraySupport      ? true,           libbluray
-, bs2bSupport        ? true,           libbs2b
-, cacaSupport        ? true,           libcaca
-, cmsSupport         ? true,           lcms2
-, dvdnavSupport      ? stdenv.isLinux, libdvdnav
-, dvbinSupport       ? stdenv.isLinux
-, jackaudioSupport   ? false,          libjack2
-, javascriptSupport  ? true,           mujs
-, libpngSupport      ? true,           libpng
-, openalSupport      ? true,           openalSoft
-, pulseSupport       ? config.pulseaudio or stdenv.isLinux, libpulseaudio
-, pipewireSupport    ? stdenv.isLinux, pipewire
-, rubberbandSupport  ? true,           rubberband
-, screenSaverSupport ? true,           libXScrnSaver
-, sdl2Support        ? true,           SDL2
-, sixelSupport       ? false,          libsixel
-, speexSupport       ? true,           speex
-, swiftSupport       ? stdenv.isDarwin, swift
-, theoraSupport      ? true,           libtheora
-, vaapiSupport       ? x11Support || waylandSupport, libva
-, vapoursynthSupport ? false,          vapoursynth
-, vdpauSupport       ? true,           libvdpau
-, xineramaSupport    ? stdenv.isLinux, libXinerama
-, xvSupport          ? stdenv.isLinux, libXv
-, zimgSupport        ? true,           zimg
-, darwin
+  # Boolean
+  alsaSupport ? stdenv.isLinux,
+  archiveSupport ? true,
+  bluraySupport ? true,
+  bs2bSupport ? true,
+  cacaSupport ? true,
+  cddaSupport ? false,
+  cmsSupport ? true,
+  drmSupport ? stdenv.isLinux,
+  dvbinSupport ? stdenv.isLinux,
+  dvdnavSupport ? stdenv.isLinux,
+  jackaudioSupport ? false,
+  javascriptSupport ? true,
+  libpngSupport ? true,
+  openalSupport ? true,
+  pipewireSupport ? stdenv.isLinux,
+  pulseSupport ? config.pulseaudio or stdenv.isLinux,
+  rubberbandSupport ? true,
+  screenSaverSupport ? true,
+  sdl2Support ? !stdenv.isDarwin,
+  sixelSupport ? false,
+  speexSupport ? true,
+  swiftSupport ? stdenv.isDarwin,
+  theoraSupport ? true,
+  vaapiSupport ? x11Support || waylandSupport,
+  vapoursynthSupport ? false,
+  vdpauSupport ? true,
+  vulkanSupport ? stdenv.isLinux,
+  waylandSupport ? stdenv.isLinux,
+  x11Support ? stdenv.isLinux,
+  xineramaSupport ? stdenv.isLinux,
+  xvSupport ? stdenv.isLinux,
+  zimgSupport ? true,
 }:
 
 let
   inherit (darwin.apple_sdk_11_0.frameworks)
-    AVFoundation Accelerate Cocoa CoreAudio CoreFoundation CoreMedia
-    MediaPlayer VideoToolbox;
+    AVFoundation
+    Accelerate
+    Cocoa
+    CoreAudio
+    CoreFoundation
+    CoreMedia
+    MediaPlayer
+    VideoToolbox
+    ;
   luaEnv = lua.withPackages (ps: with ps; [ luasocket ]);
 
-  overrideSDK = platform: version:
-    platform // lib.optionalAttrs (platform ? darwinMinVersion) {
-      darwinMinVersion = version;
-    };
+  overrideSDK =
+    platform: version:
+    platform // lib.optionalAttrs (platform ? darwinMinVersion) { darwinMinVersion = version; };
 
-  stdenv' = if swiftSupport && stdenv.isDarwin && stdenv.isx86_64
-    then stdenv.override (old: {
-      buildPlatform = overrideSDK old.buildPlatform "10.15";
-      hostPlatform = overrideSDK old.hostPlatform "10.15";
-      targetPlatform = overrideSDK old.targetPlatform "10.15";
-    })
-    else stdenv;
-in stdenv'.mkDerivation (finalAttrs: {
+  stdenv' =
+    if swiftSupport && stdenv.isDarwin && stdenv.isx86_64 then
+      stdenv.override (old: {
+        buildPlatform = overrideSDK old.buildPlatform "11.0";
+        hostPlatform = overrideSDK old.hostPlatform "11.0";
+        targetPlatform = overrideSDK old.targetPlatform "11.0";
+      })
+    else
+      stdenv;
+in
+stdenv'.mkDerivation (finalAttrs: {
   pname = "mpv";
-  version = "0.37.0";
+  version = "0.38.0";
 
-  outputs = [ "out" "dev" "doc" "man" ];
+  outputs = [
+    "out"
+    "dev"
+    "doc"
+    "man"
+  ];
 
   src = fetchFromGitHub {
     owner = "mpv-player";
     repo = "mpv";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-izAz9Iiam7tJAWIQkmn2cKOfoaog8oPKq4sOUtp1nvU=";
+    hash = "sha256-dFajnCpGlNqUv33A8eFEn8kjtzIPkcBY5j0gNVlaiIY=";
   };
 
-  patches = [ ./darwin-sigtool-no-deep.patch ];
+  patches = [
+    # Fix build with Darwin SDK 11
+    ./0001-fix-darwin-build.patch
+  ];
 
   postPatch = lib.concatStringsSep "\n" [
     # Don't reference compile time dependencies or create a build outputs cycle
     # between out and dev
     ''
-    substituteInPlace meson.build \
-      --replace-fail "conf_data.set_quoted('CONFIGURATION', configuration)" \
-                     "conf_data.set_quoted('CONFIGURATION', '<ommited>')"
+      substituteInPlace meson.build \
+        --replace-fail "conf_data.set_quoted('CONFIGURATION', configuration)" \
+                       "conf_data.set_quoted('CONFIGURATION', '<ommited>')"
     ''
     # A trick to patchShebang everything except mpv_identify.sh
     ''
-    pushd TOOLS
-    mv mpv_identify.sh mpv_identify
-    patchShebangs *.py *.sh
-    mv mpv_identify mpv_identify.sh
-    popd
+      pushd TOOLS
+      mv mpv_identify.sh mpv_identify
+      patchShebangs *.py *.sh
+      mv mpv_identify mpv_identify.sh
+      popd
     ''
   ];
 
@@ -135,81 +179,124 @@ in stdenv'.mkDerivation (finalAttrs: {
     export SWIFT_LIB_DYNAMIC="${lib.getLib swift.swift}/lib/swift/macosx"
   '';
 
-  mesonFlags = [
-    (lib.mesonOption "default_library" "shared")
-    (lib.mesonBool "libmpv" true)
-    (lib.mesonEnable "libarchive" archiveSupport)
-    (lib.mesonEnable "manpage-build" true)
-    (lib.mesonEnable "cdda" cddaSupport)
-    (lib.mesonEnable "dvbin" dvbinSupport)
-    (lib.mesonEnable "dvdnav" dvdnavSupport)
-    (lib.mesonEnable "openal" openalSupport)
-    (lib.mesonEnable "sdl2" sdl2Support)
-    # Disable whilst Swift isn't supported
-    (lib.mesonEnable "swift-build" swiftSupport)
-    (lib.mesonEnable "macos-cocoa-cb" swiftSupport)
-  ] ++ lib.optionals stdenv.isDarwin [
-    # Toggle explicitly because it fails on darwin
-    (lib.mesonEnable "videotoolbox-pl" vulkanSupport)
-  ];
+  mesonFlags =
+    [
+      (lib.mesonOption "default_library" "shared")
+      (lib.mesonBool "libmpv" true)
+      (lib.mesonEnable "libarchive" archiveSupport)
+      (lib.mesonEnable "manpage-build" true)
+      (lib.mesonEnable "cdda" cddaSupport)
+      (lib.mesonEnable "dvbin" dvbinSupport)
+      (lib.mesonEnable "dvdnav" dvdnavSupport)
+      (lib.mesonEnable "openal" openalSupport)
+      (lib.mesonEnable "sdl2" sdl2Support)
+      # Disable whilst Swift isn't supported
+      (lib.mesonEnable "swift-build" swiftSupport)
+      (lib.mesonEnable "macos-cocoa-cb" swiftSupport)
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # Toggle explicitly because it fails on darwin
+      (lib.mesonEnable "videotoolbox-pl" vulkanSupport)
+    ];
 
   mesonAutoFeatures = "auto";
 
-  nativeBuildInputs = [
-    addOpenGLRunpath
-    docutils # for rst2man
-    meson
-    ninja
-    pkg-config
-  ]
-  ++ lib.optionals stdenv.isDarwin [ xcbuild.xcrun rcodesign ]
-  ++ lib.optionals swiftSupport [ swift ]
-  ++ lib.optionals waylandSupport [ wayland-scanner ];
+  nativeBuildInputs =
+    [
+      addOpenGLRunpath
+      docutils # for rst2man
+      meson
+      ninja
+      pkg-config
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      buildPackages.darwin.sigtool
+      xcbuild.xcrun
+    ]
+    ++ lib.optionals swiftSupport [ swift ]
+    ++ lib.optionals waylandSupport [ wayland-scanner ];
 
-  buildInputs = [
-    bash
-    ffmpeg
-    freetype
-    libass
-    libplacebo
-    libpthreadstubs
-    libuchardet
-    luaEnv
-    python3
-  ] ++ lib.optionals alsaSupport        [ alsa-lib ]
-    ++ lib.optionals archiveSupport     [ libarchive ]
-    ++ lib.optionals bluraySupport      [ libbluray ]
-    ++ lib.optionals bs2bSupport        [ libbs2b ]
-    ++ lib.optionals cacaSupport        [ libcaca ]
-    ++ lib.optionals cddaSupport        [ libcdio libcdio-paranoia ]
-    ++ lib.optionals cmsSupport         [ lcms2 ]
-    ++ lib.optionals drmSupport         [ libdrm mesa ]
-    ++ lib.optionals dvdnavSupport      [ libdvdnav libdvdnav.libdvdread ]
-    ++ lib.optionals jackaudioSupport   [ libjack2 ]
-    ++ lib.optionals javascriptSupport  [ mujs ]
-    ++ lib.optionals libpngSupport      [ libpng ]
-    ++ lib.optionals openalSupport      [ openalSoft ]
-    ++ lib.optionals pipewireSupport    [ pipewire ]
-    ++ lib.optionals pulseSupport       [ libpulseaudio ]
-    ++ lib.optionals rubberbandSupport  [ rubberband ]
+  buildInputs =
+    [
+      bash
+      ffmpeg
+      freetype
+      libass
+      libplacebo
+      libpthreadstubs
+      libuchardet
+      luaEnv
+      python3
+    ]
+    ++ lib.optionals alsaSupport [ alsa-lib ]
+    ++ lib.optionals archiveSupport [ libarchive ]
+    ++ lib.optionals bluraySupport [ libbluray ]
+    ++ lib.optionals bs2bSupport [ libbs2b ]
+    ++ lib.optionals cacaSupport [ libcaca ]
+    ++ lib.optionals cddaSupport [
+      libcdio
+      libcdio-paranoia
+    ]
+    ++ lib.optionals cmsSupport [ lcms2 ]
+    ++ lib.optionals drmSupport [
+      libdrm
+      mesa
+    ]
+    ++ lib.optionals dvdnavSupport [
+      libdvdnav
+      libdvdnav.libdvdread
+    ]
+    ++ lib.optionals jackaudioSupport [ libjack2 ]
+    ++ lib.optionals javascriptSupport [ mujs ]
+    ++ lib.optionals libpngSupport [ libpng ]
+    ++ lib.optionals openalSupport [ openalSoft ]
+    ++ lib.optionals pipewireSupport [ pipewire ]
+    ++ lib.optionals pulseSupport [ libpulseaudio ]
+    ++ lib.optionals rubberbandSupport [ rubberband ]
     ++ lib.optionals screenSaverSupport [ libXScrnSaver ]
-    ++ lib.optionals sdl2Support        [ SDL2 ]
-    ++ lib.optionals sixelSupport       [ libsixel ]
-    ++ lib.optionals speexSupport       [ speex ]
-    ++ lib.optionals theoraSupport      [ libtheora ]
-    ++ lib.optionals vaapiSupport       [ libva ]
+    ++ lib.optionals sdl2Support [ SDL2 ]
+    ++ lib.optionals sixelSupport [ libsixel ]
+    ++ lib.optionals speexSupport [ speex ]
+    ++ lib.optionals theoraSupport [ libtheora ]
+    ++ lib.optionals vaapiSupport [ libva ]
     ++ lib.optionals vapoursynthSupport [ vapoursynth ]
-    ++ lib.optionals vdpauSupport       [ libvdpau ]
-    ++ lib.optionals vulkanSupport      [ shaderc vulkan-headers vulkan-loader ]
-    ++ lib.optionals waylandSupport     [ wayland wayland-protocols libxkbcommon ]
-    ++ lib.optionals x11Support         [ libX11 libXext libGLU libGL libXxf86vm libXrandr libXpresent ]
-    ++ lib.optionals xineramaSupport    [ libXinerama ]
-    ++ lib.optionals xvSupport          [ libXv ]
-    ++ lib.optionals zimgSupport        [ zimg ]
-    ++ lib.optionals stdenv.isLinux     [ nv-codec-headers-11 ]
-    ++ lib.optionals stdenv.isDarwin    [ libiconv ]
-    ++ lib.optionals stdenv.isDarwin    [ Accelerate CoreFoundation Cocoa CoreAudio MediaPlayer VideoToolbox ]
-    ++ lib.optionals (stdenv.isDarwin && swiftSupport) [ AVFoundation CoreMedia ];
+    ++ lib.optionals vdpauSupport [ libvdpau ]
+    ++ lib.optionals vulkanSupport [
+      shaderc
+      vulkan-headers
+      vulkan-loader
+    ]
+    ++ lib.optionals waylandSupport [
+      wayland
+      wayland-protocols
+      libxkbcommon
+    ]
+    ++ lib.optionals x11Support [
+      libX11
+      libXext
+      libGLU
+      libGL
+      libXxf86vm
+      libXrandr
+      libXpresent
+    ]
+    ++ lib.optionals xineramaSupport [ libXinerama ]
+    ++ lib.optionals xvSupport [ libXv ]
+    ++ lib.optionals zimgSupport [ zimg ]
+    ++ lib.optionals stdenv.isLinux [ nv-codec-headers-11 ]
+    ++ lib.optionals stdenv.isDarwin [ libiconv ]
+    ++ lib.optionals stdenv.isDarwin [
+      Accelerate
+      CoreFoundation
+      Cocoa
+      CoreAudio
+      MediaPlayer
+      VideoToolbox
+    ]
+    ++ lib.optionals (stdenv.isDarwin && swiftSupport) [
+      AVFoundation
+      CoreMedia
+    ];
 
   postBuild = lib.optionalString stdenv.isDarwin ''
     pushd .. # Must be run from the source dir because it uses relative paths
@@ -217,27 +304,29 @@ in stdenv'.mkDerivation (finalAttrs: {
     popd
   '';
 
-  postInstall = ''
-    # Use a standard font
-    mkdir -p $out/share/mpv
-    ln -s ${freefont_ttf}/share/fonts/truetype/FreeSans.ttf $out/share/mpv/subfont.ttf
+  postInstall =
+    ''
+      # Use a standard font
+      mkdir -p $out/share/mpv
+      ln -s ${freefont_ttf}/share/fonts/truetype/FreeSans.ttf $out/share/mpv/subfont.ttf
 
-    pushd ../TOOLS
-    cp mpv_identify.sh umpv $out/bin/
-    popd
-    pushd $out/share/applications
+      pushd ../TOOLS
+      cp mpv_identify.sh umpv $out/bin/
+      popd
+      pushd $out/share/applications
 
-    # patch out smb protocol reference, since our ffmpeg can't handle it
-    substituteInPlace mpv.desktop --replace-fail "smb," ""
+      # patch out smb protocol reference, since our ffmpeg can't handle it
+      substituteInPlace mpv.desktop --replace-fail "smb," ""
 
-    sed -e '/Icon=/ ! s|mpv|umpv|g; s|^Exec=.*|Exec=umpv %U|' \
-      mpv.desktop > umpv.desktop
-    printf "NoDisplay=true\n" >> umpv.desktop
-    popd
-  '' + lib.optionalString stdenv.isDarwin ''
-    mkdir -p $out/Applications
-    cp -r mpv.app $out/Applications
-  '';
+      sed -e '/Icon=/ ! s|mpv|umpv|g; s|^Exec=.*|Exec=umpv %U|' \
+        mpv.desktop > umpv.desktop
+      printf "NoDisplay=true\n" >> umpv.desktop
+      popd
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      mkdir -p $out/Applications
+      cp -r mpv.app $out/Applications
+    '';
 
   # Set RUNPATH so that libcuda in /run/opengl-driver(-32)/lib can be found.
   # See the explanation in addOpenGLRunpath.
@@ -248,16 +337,29 @@ in stdenv'.mkDerivation (finalAttrs: {
 
   passthru = {
     inherit
-    # The wrapper consults luaEnv and lua.version
-    luaEnv
-    lua
-    # In the wrapper, we want to reference vapoursynth which has the `python3`
-    # passthru attribute (which has the `sitePrefix` attribute). This way we'll
-    # be sure that in the wrapper we'll use the same python3.sitePrefix used to
-    # build vapoursynth.
-    vapoursynthSupport
-    vapoursynth
-    ;
+      # The wrapper consults luaEnv and lua.version
+      luaEnv
+      lua
+      # In the wrapper, we want to reference vapoursynth which has the `python3`
+      # passthru attribute (which has the `sitePrefix` attribute). This way we'll
+      # be sure that in the wrapper we'll use the same python3.sitePrefix used to
+      # build vapoursynth.
+      vapoursynthSupport
+      vapoursynth
+      ;
+
+    wrapper = callPackage ./wrapper.nix { };
+    scripts = callPackage ./scripts { };
+
+    tests = {
+      inherit (nixosTests) mpv;
+
+      version = testers.testVersion { package = finalAttrs.finalPackage; };
+      pkg-config = testers.hasPkgConfigModules {
+        package = finalAttrs.finalPackage;
+        moduleNames = [ "mpv" ];
+      };
+    };
   };
 
   meta = {
@@ -271,7 +373,11 @@ in stdenv'.mkDerivation (finalAttrs: {
     license = lib.licenses.gpl2Plus;
     mainProgram = "mpv";
     maintainers = with lib.maintainers; [
-      AndersonTorres fpletz globin ma27 tadeokondrak
+      AndersonTorres
+      fpletz
+      globin
+      ma27
+      tadeokondrak
     ];
     platforms = lib.platforms.unix;
   };
diff --git a/pkgs/applications/video/mpv/scripts/autosubsync-mpv.nix b/pkgs/applications/video/mpv/scripts/autosubsync-mpv.nix
new file mode 100644
index 0000000000000..d162da18c018a
--- /dev/null
+++ b/pkgs/applications/video/mpv/scripts/autosubsync-mpv.nix
@@ -0,0 +1,38 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildLua,
+  alass,
+}:
+
+buildLua {
+  pname = "autosubsync-mpv";
+  version = "0-unstable-2022-12-26";
+
+  src = fetchFromGitHub {
+    owner = "joaquintorres";
+    repo = "autosubsync-mpv";
+    rev = "22cb928ecd94cc8cadaf8c354438123c43e0c70d";
+    sha256 = "sha256-XQPFC7l9MTZAW5FfULRQJfu/7FuGj9bbjQUZhNv0rlc=";
+  };
+
+  # While nixpkgs only packages alass, we might as well make that the default
+  patchPhase = ''
+    runHook prePatch
+    substituteInPlace autosubsync.lua                                            \
+      --replace-warn 'alass_path = ""' 'alass_path = "${alass}/bin/alass-cli"'   \
+      --replace-warn 'audio_subsync_tool = "ask"' 'audio_subsync_tool = "alass"' \
+      --replace-warn 'altsub_subsync_tool = "ask"' 'altsub_subsync_tool = "alass"'
+    runHook postPatch
+  '';
+
+  scriptPath = "./";
+  passthru.scriptName = "autosubsync-mpv";
+
+  meta = with lib; {
+    description = "Automatically sync subtitles in mpv using the `n` button";
+    homepage = "https://github.com/joaquintorres/autosubsync-mpv";
+    maintainers = with maintainers; [ kovirobi ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/applications/video/mpv/scripts/default.nix b/pkgs/applications/video/mpv/scripts/default.nix
index 6d4d4c06ab2ab..c9e433e6fe00d 100644
--- a/pkgs/applications/video/mpv/scripts/default.nix
+++ b/pkgs/applications/video/mpv/scripts/default.nix
@@ -95,6 +95,7 @@ let
       inherit (callPackage ./occivink.nix { }) blacklistExtensions seekTo;
 
       buildLua = callPackage ./buildLua.nix { };
+      autosubsync-mpv = callPackage ./autosubsync-mpv.nix { };
       chapterskip = callPackage ./chapterskip.nix { };
       convert = callPackage ./convert.nix { };
       cutter = callPackage ./cutter.nix { };
diff --git a/pkgs/applications/video/mpv/scripts/manga-reader.nix b/pkgs/applications/video/mpv/scripts/manga-reader.nix
index 9a9621cb34d0e..4d8007d98d8d7 100644
--- a/pkgs/applications/video/mpv/scripts/manga-reader.nix
+++ b/pkgs/applications/video/mpv/scripts/manga-reader.nix
@@ -22,7 +22,7 @@ buildLua rec {
     longDescription = ''
       mpv-manga-reader is a script aimed at making mpv a usable manga reader.
     '';
-    homepage = "https://github.com//mpv-manga-reader";
+    homepage = "https://github.com/Dudemanguy/mpv-manga-reader";
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ idlip ];
   };
diff --git a/pkgs/applications/video/mpv/scripts/memo.nix b/pkgs/applications/video/mpv/scripts/memo.nix
index dea7adc85e976..5d9e2b50fae27 100644
--- a/pkgs/applications/video/mpv/scripts/memo.nix
+++ b/pkgs/applications/video/mpv/scripts/memo.nix
@@ -19,7 +19,7 @@ buildLua {
   passthru.updateScript = unstableGitUpdater { };
 
   meta = with lib; {
-    description = "A recent files menu for mpv";
+    description = "Recent files menu for mpv";
     homepage = "https://github.com/po5/memo";
     license = licenses.gpl3Only;
     maintainers = with lib.maintainers; [ purrpurrn ];
diff --git a/pkgs/applications/video/mpv/scripts/modernx-zydezu.nix b/pkgs/applications/video/mpv/scripts/modernx-zydezu.nix
index d2832e104ada0..3ef673ab518f3 100644
--- a/pkgs/applications/video/mpv/scripts/modernx-zydezu.nix
+++ b/pkgs/applications/video/mpv/scripts/modernx-zydezu.nix
@@ -7,14 +7,14 @@
 }:
 buildLua (finalAttrs: {
   pname = "modernx-zydezu";
-  version = "0.3.4";
+  version = "0.3.5.5";
 
   scriptPath = "modernx.lua";
   src = fetchFromGitHub {
     owner = "zydezu";
     repo = "ModernX";
     rev = finalAttrs.version;
-    hash = "sha256-XzzdJLN2DImwo8ZmH1+Q5e2YfwCh7pKyUxjtPd2AMGs=";
+    hash = "sha256-sPpVwI8w5JsP/jML0viOSqhyYBVKfxWuKbxHkX3GVug=";
   };
 
   postInstall = ''
@@ -32,7 +32,7 @@ buildLua (finalAttrs: {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A modern OSC UI replacement for MPV that retains the functionality of the default OSC";
+    description = "Modern OSC UI replacement for MPV that retains the functionality of the default OSC";
     homepage = "https://github.com/zydezu/ModernX";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [
diff --git a/pkgs/applications/video/mpv/scripts/modernx.nix b/pkgs/applications/video/mpv/scripts/modernx.nix
index 3e106d7415487..28a50e15d5d83 100644
--- a/pkgs/applications/video/mpv/scripts/modernx.nix
+++ b/pkgs/applications/video/mpv/scripts/modernx.nix
@@ -32,7 +32,7 @@ buildLua (finalAttrs: {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A modern OSC UI replacement for MPV that retains the functionality of the default OSC";
+    description = "Modern OSC UI replacement for MPV that retains the functionality of the default OSC";
     homepage = "https://github.com/cyl0/ModernX";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ Guanran928 ];
diff --git a/pkgs/applications/video/mpv/scripts/mpv-notify-send.nix b/pkgs/applications/video/mpv/scripts/mpv-notify-send.nix
index 3e3a04499d08f..b103a45d275bf 100644
--- a/pkgs/applications/video/mpv/scripts/mpv-notify-send.nix
+++ b/pkgs/applications/video/mpv/scripts/mpv-notify-send.nix
@@ -21,7 +21,8 @@ buildLua rec {
   patches = [
     # show title of online videos instead of url
     (fetchpatch {
-      url = "https://github.com/emilazy/mpv-notify-send/pull/6.patch";
+      name = "6.patch"; # https://github.com/emilazy/mpv-notify-send/pull/6
+      url = "https://github.com/emilazy/mpv-notify-send/commit/948347e14890e15e89cd1e069beb1140e2d01dce.patch";
       hash = "sha256-7aXQ8qeqG4yX0Uyn09xCIESnwPZsb6Frd7C49XgbpFw=";
     })
   ];
@@ -36,7 +37,7 @@ buildLua rec {
   passthru.updateScript = unstableGitUpdater { };
 
   meta = with lib; {
-    description = "A Lua script for mpv to send notifications with notify-send";
+    description = "Lua script for mpv to send notifications with notify-send";
     homepage = "https://github.com/emilazy/mpv-notify-send";
     license = licenses.wtfpl;
     maintainers = with maintainers; [ r3n3gad3p3arl ];
diff --git a/pkgs/applications/video/mpv/scripts/mpv-slicing.nix b/pkgs/applications/video/mpv/scripts/mpv-slicing.nix
index cf66a6c78a297..c46388f7ebea4 100644
--- a/pkgs/applications/video/mpv/scripts/mpv-slicing.nix
+++ b/pkgs/applications/video/mpv/scripts/mpv-slicing.nix
@@ -26,7 +26,7 @@ buildLua {
   passthru.scriptName = "slicing.lua";
 
   meta = {
-    description = "A lua script to cut fragments of the video in uncompressed RGB format";
+    description = "Lua script to cut fragments of the video in uncompressed RGB format";
     homepage = "https://github.com/Kagami/mpv_slicing";
     license = lib.licenses.cc0;
     maintainers = with lib.maintainers; [ tomasajt ];
diff --git a/pkgs/applications/video/mpv/scripts/mpvacious.nix b/pkgs/applications/video/mpv/scripts/mpvacious.nix
index 4269131f09045..659dc498f0b11 100644
--- a/pkgs/applications/video/mpv/scripts/mpvacious.nix
+++ b/pkgs/applications/video/mpv/scripts/mpvacious.nix
@@ -10,13 +10,13 @@
 
 buildLua rec {
   pname = "mpvacious";
-  version = "0.33";
+  version = "0.34";
 
   src = fetchFromGitHub {
     owner = "Ajatt-Tools";
     repo = "mpvacious";
     rev = "v${version}";
-    sha256 = "sha256-VHMXW2AzgX88EDnNshxo9Gh8mpXzRoTAq+58HKasUdo=";
+    sha256 = "sha256-YsbeMWGpRi9wUdnrMA2YQXXWQUALxDOTs+gBJ56okkI=";
   };
   passthru.updateScript = gitUpdater { rev-prefix = "v"; };
 
diff --git a/pkgs/applications/video/mpv/scripts/quality-menu.nix b/pkgs/applications/video/mpv/scripts/quality-menu.nix
index cbaa6c1c4da1d..36e5024b6aa8e 100644
--- a/pkgs/applications/video/mpv/scripts/quality-menu.nix
+++ b/pkgs/applications/video/mpv/scripts/quality-menu.nix
@@ -21,7 +21,7 @@ buildLua rec {
   extraScripts = lib.optional oscSupport "quality-menu-osc.lua";
 
   meta = with lib; {
-    description = "A userscript for MPV that allows you to change youtube video quality (ytdl-format) on the fly";
+    description = "Userscript for MPV that allows you to change youtube video quality (ytdl-format) on the fly";
     homepage = "https://github.com/christoph-heinrich/mpv-quality-menu";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ lunik1 ];
diff --git a/pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix b/pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix
index b71b5d90e3b13..55d55fdf59f83 100644
--- a/pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix
+++ b/pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix
@@ -24,7 +24,7 @@ buildLua rec {
   passthru.scriptName = "webui";
 
   meta = with lib; {
-    description = "A web based user interface with controls for the mpv mediaplayer";
+    description = "Web based user interface with controls for the mpv mediaplayer";
     homepage = "https://github.com/open-dynaMIX/simple-mpv-webui";
     maintainers = with maintainers; [
       cript0nauta
diff --git a/pkgs/applications/video/mpv/scripts/sponsorblock-minimal.nix b/pkgs/applications/video/mpv/scripts/sponsorblock-minimal.nix
index be314ed8ca168..6818154590917 100644
--- a/pkgs/applications/video/mpv/scripts/sponsorblock-minimal.nix
+++ b/pkgs/applications/video/mpv/scripts/sponsorblock-minimal.nix
@@ -28,7 +28,7 @@ buildLua {
   '';
 
   meta = with lib; {
-    description = "A minimal script to skip sponsored segments of YouTube videos";
+    description = "Minimal script to skip sponsored segments of YouTube videos";
     homepage = "https://codeberg.org/jouni/mpv_sponsorblock_minimal";
     license = licenses.gpl3Only;
     platforms = platforms.all;
diff --git a/pkgs/applications/video/mpv/scripts/thumbnail.nix b/pkgs/applications/video/mpv/scripts/thumbnail.nix
index a0fe388a5b5ae..51784f012f68b 100644
--- a/pkgs/applications/video/mpv/scripts/thumbnail.nix
+++ b/pkgs/applications/video/mpv/scripts/thumbnail.nix
@@ -27,7 +27,7 @@ buildLua rec {
   passthru.scriptName = "mpv_thumbnail_script_{client_osc,server}.lua";
 
   meta = with lib; {
-    description = "A lua script to show preview thumbnails in mpv's OSC seekbar";
+    description = "Lua script to show preview thumbnails in mpv's OSC seekbar";
     homepage = "https://github.com/marzzzello/mpv_thumbnail_script";
     changelog = "https://github.com/marzzzello/mpv_thumbnail_script/releases/tag/${version}";
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/video/mpv/scripts/videoclip.nix b/pkgs/applications/video/mpv/scripts/videoclip.nix
index 6e22e1ae68d76..82f912677f14c 100644
--- a/pkgs/applications/video/mpv/scripts/videoclip.nix
+++ b/pkgs/applications/video/mpv/scripts/videoclip.nix
@@ -10,13 +10,13 @@
 }:
 buildLua {
   pname = "videoclip";
-  version = "0-unstable-2024-03-08";
+  version = "0-unstable-2024-05-26";
 
   src = fetchFromGitHub {
     owner = "Ajatt-Tools";
     repo = "videoclip";
-    rev = "0e3f2245b03e888c14c093a50261e0f54ecdf8e8";
-    hash = "sha256-Sg6LHU9OVmVx3cTs8Y0WL8wACb5BlVyeBRccoX+7BXY=";
+    rev = "4fd40d66c95905ed828ca77b7120732014b93ac5";
+    hash = "sha256-Q40a7BBY4c7I5g9HkeV6Twv/PDPBDKTlnxkILw99pxU=";
   };
 
   patchPhase =
diff --git a/pkgs/applications/video/mpv/scripts/vr-reversal.nix b/pkgs/applications/video/mpv/scripts/vr-reversal.nix
index 1e9dadcfa0736..6fb91e9ad780a 100644
--- a/pkgs/applications/video/mpv/scripts/vr-reversal.nix
+++ b/pkgs/applications/video/mpv/scripts/vr-reversal.nix
@@ -33,7 +33,7 @@ stdenvNoCC.mkDerivation rec {
   passthru.scriptName = "360plugin.lua";
 
   meta = with lib; {
-    description = "Script for mpv to play VR video with optional saving of head tracking data.";
+    description = "Script for mpv to play VR video with optional saving of head tracking data";
     homepage = "https://github.com/dfaker/VR-reversal";
     license = licenses.unlicense;
     platforms = platforms.all;
diff --git a/pkgs/applications/video/mpv/scripts/youtube-upnext.nix b/pkgs/applications/video/mpv/scripts/youtube-upnext.nix
index 098dd45a5f3c6..ecd71353d6a3b 100644
--- a/pkgs/applications/video/mpv/scripts/youtube-upnext.nix
+++ b/pkgs/applications/video/mpv/scripts/youtube-upnext.nix
@@ -25,7 +25,7 @@ buildLua rec {
   passthru.updateScript = unstableGitUpdater { };
 
   meta = with lib; {
-    description = "A userscript that allows you to play 'up next'/recommended youtube videos";
+    description = "Userscript that allows you to play 'up next'/recommended youtube videos";
     homepage = "https://github.com/cvzi/mpv-youtube-upnext";
     maintainers = with maintainers; [ bddvlpr ];
     license = licenses.unfree;
diff --git a/pkgs/applications/video/mpv/wrapper.nix b/pkgs/applications/video/mpv/wrapper.nix
index b427318121ef0..533ede74f8744 100644
--- a/pkgs/applications/video/mpv/wrapper.nix
+++ b/pkgs/applications/video/mpv/wrapper.nix
@@ -7,21 +7,23 @@
 , symlinkJoin
 , writeTextDir
 , yt-dlp
+# the unwrapped mpv derivation
+, mpv
 }:
 
-# the unwrapped mpv derivation - 1st argument to `wrapMpv`
-mpv:
-
 let
-  # arguments to the function (exposed as `wrapMpv` in all-packages.nix)
+  # arguments to the function (exposed as `mpv-unwrapped.wrapper` in top-level)
   wrapper = {
+    mpv,
     extraMakeWrapperArgs ? [],
     youtubeSupport ? true,
-    # a set of derivations (probably from `mpvScripts`) where each is
-    # expected to have a `scriptName` passthru attribute that points to the
-    # name of the script that would reside in the script's derivation's
+    # a set of derivations (probably from `mpvScripts`) where each is expected
+    # to have a `scriptName` passthru attribute that points to the name of the
+    # script that would reside in the script's derivation's
     # `$out/share/mpv/scripts/`.
-    # A script can optionally also provide an `extraWrapperArgs` passthru attribute.
+    #
+    # A script can optionally also provide `passthru.extraWrapperArgs`
+    # attribute.
     scripts ? [],
     extraUmpvWrapperArgs ? []
   }:
diff --git a/pkgs/applications/video/multiviewer-for-f1/default.nix b/pkgs/applications/video/multiviewer-for-f1/default.nix
index 46e425992c155..1274009ba707e 100644
--- a/pkgs/applications/video/multiviewer-for-f1/default.nix
+++ b/pkgs/applications/video/multiviewer-for-f1/default.nix
@@ -23,15 +23,15 @@
 , xorg
 }:
 let
-  id = "154421934";
+  id = "168727396";
 in
 stdenvNoCC.mkDerivation rec {
   pname = "multiviewer-for-f1";
-  version = "1.31.3";
+  version = "1.32.1";
 
   src = fetchurl {
     url = "https://releases.multiviewer.dev/download/${id}/multiviewer-for-f1_${version}_amd64.deb";
-    sha256 = "sha256-lFES+ukkI/GqKQdZwtaB+ov0hqAyFZ2N533LBKJ9oXg=";
+    sha256 = "sha256-cnfye5c3+ZYZLjlZ6F4OD90tXhxDbgbNBn98mgmZ+Hs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/video/obs-studio/plugins/advanced-scene-switcher/default.nix b/pkgs/applications/video/obs-studio/plugins/advanced-scene-switcher/default.nix
index 102eff7e83b7c..3b2f2139875c0 100644
--- a/pkgs/applications/video/obs-studio/plugins/advanced-scene-switcher/default.nix
+++ b/pkgs/applications/video/obs-studio/plugins/advanced-scene-switcher/default.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
   env.NIX_CFLAGS_COMPILE = "-Wno-error=stringop-overflow";
 
   meta = with lib; {
-    description = "An automated scene switcher for OBS Studio";
+    description = "Automated scene switcher for OBS Studio";
     homepage = "https://github.com/WarmUpTill/SceneSwitcher";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/video/obs-studio/plugins/obs-command-source.nix b/pkgs/applications/video/obs-studio/plugins/obs-command-source.nix
index df4ec89316b33..8a0f9adcca067 100644
--- a/pkgs/applications/video/obs-studio/plugins/obs-command-source.nix
+++ b/pkgs/applications/video/obs-studio/plugins/obs-command-source.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "OBS Studio plugin that provides a dummy source to execute arbitrary commands when a scene is switched.";
+    description = "OBS Studio plugin that provides a dummy source to execute arbitrary commands when a scene is switched";
     homepage = "https://github.com/norihiro/command-source";
     maintainers = with maintainers; [ flexiondotorg ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/video/obs-studio/plugins/obs-composite-blur.nix b/pkgs/applications/video/obs-studio/plugins/obs-composite-blur.nix
index c1f2073ae6e14..16b4b2c34fbf6 100644
--- a/pkgs/applications/video/obs-studio/plugins/obs-composite-blur.nix
+++ b/pkgs/applications/video/obs-studio/plugins/obs-composite-blur.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A comprehensive blur plugin for OBS that provides several different blur algorithms, and proper compositing";
+    description = "Comprehensive blur plugin for OBS that provides several different blur algorithms, and proper compositing";
     homepage = "https://github.com/FiniteSingularity/obs-composite-blur";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/pkgs/applications/video/obs-studio/plugins/obs-gstreamer.nix b/pkgs/applications/video/obs-studio/plugins/obs-gstreamer.nix
index c34f821d7c6ad..d6341eba53425 100644
--- a/pkgs/applications/video/obs-studio/plugins/obs-gstreamer.nix
+++ b/pkgs/applications/video/obs-studio/plugins/obs-gstreamer.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An OBS Studio source, encoder and video filter plugin to use GStreamer elements/pipelines in OBS Studio";
+    description = "OBS Studio source, encoder and video filter plugin to use GStreamer elements/pipelines in OBS Studio";
     homepage = "https://github.com/fzwoch/obs-gstreamer";
     maintainers = with maintainers; [ ahuzik pedrohlc ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/video/obs-studio/plugins/obs-move-transition.nix b/pkgs/applications/video/obs-studio/plugins/obs-move-transition.nix
index f9a09b450bbb2..e464079da93c7 100644
--- a/pkgs/applications/video/obs-studio/plugins/obs-move-transition.nix
+++ b/pkgs/applications/video/obs-studio/plugins/obs-move-transition.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "obs-move-transition";
-  version = "2.12.0";
+  version = "3.0.1";
 
   src = fetchFromGitHub {
     owner = "exeldro";
     repo = "obs-move-transition";
     rev = version;
-    sha256 = "sha256-Y0FTNxwpCOp/3XkHxZ4H0ja840R7/c2dTDImUf5iZQE=";
+    sha256 = "sha256-LZL9f/pX74rKW+wnNHGKwGuuISOTcFVr6W9h/JEK0U4=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/video/obs-studio/plugins/obs-rgb-levels-filter.nix b/pkgs/applications/video/obs-studio/plugins/obs-rgb-levels-filter.nix
index 7e2bd12581df7..aff227211e4d7 100644
--- a/pkgs/applications/video/obs-studio/plugins/obs-rgb-levels-filter.nix
+++ b/pkgs/applications/video/obs-studio/plugins/obs-rgb-levels-filter.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A simple OBS Studio filter to adjust RGB levels.";
+    description = "Simple OBS Studio filter to adjust RGB levels";
     homepage = "https://github.com/wimpysworld/obs-rgb-levels-filter";
     maintainers = with maintainers; [ flexiondotorg ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/video/obs-studio/plugins/obs-shaderfilter.nix b/pkgs/applications/video/obs-studio/plugins/obs-shaderfilter.nix
index f400fced2ac08..b76b6e9d7f2b7 100644
--- a/pkgs/applications/video/obs-studio/plugins/obs-shaderfilter.nix
+++ b/pkgs/applications/video/obs-studio/plugins/obs-shaderfilter.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "OBS Studio filter for applying an arbitrary shader to a source.";
+    description = "OBS Studio filter for applying an arbitrary shader to a source";
     homepage = "https://github.com/exeldro/obs-shaderfilter";
     maintainers = with maintainers; [ flexiondotorg ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/video/obs-studio/plugins/obs-teleport/default.nix b/pkgs/applications/video/obs-studio/plugins/obs-teleport/default.nix
index 246729639e40a..b7d28caadf899 100644
--- a/pkgs/applications/video/obs-studio/plugins/obs-teleport/default.nix
+++ b/pkgs/applications/video/obs-studio/plugins/obs-teleport/default.nix
@@ -45,7 +45,7 @@ buildGoModule rec {
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "An OBS Studio plugin for an open NDI-like replacement";
+    description = "OBS Studio plugin for an open NDI-like replacement";
     homepage = "https://github.com/fzwoch/obs-teleport";
     maintainers = [ ];
     license = lib.licenses.gpl2Plus;
diff --git a/pkgs/applications/video/obs-studio/plugins/obs-text-pthread.nix b/pkgs/applications/video/obs-studio/plugins/obs-text-pthread.nix
index 3fcc893b0d347..8819f4f53779d 100644
--- a/pkgs/applications/video/obs-studio/plugins/obs-text-pthread.nix
+++ b/pkgs/applications/video/obs-studio/plugins/obs-text-pthread.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "obs-text-pthread";
-  version = "2.0.3";
+  version = "2.0.4";
 
   src = fetchFromGitHub {
     owner = "norihiro";
     repo = "obs-text-pthread";
     rev = version;
-    sha256 = "sha256-iwPoFbXkWzwE3smWJ+//ZUayD5OO/3iMSoYUTR3LVks=";
+    sha256 = "sha256-3Y++zpy5TEp8AtyRw+1fZDEFY9AuN7JpUNqUhM7h04U=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/applications/video/obs-studio/plugins/obs-transition-table.nix b/pkgs/applications/video/obs-studio/plugins/obs-transition-table.nix
index 61165bbf6cbbf..ed8aadb52ae7b 100644
--- a/pkgs/applications/video/obs-studio/plugins/obs-transition-table.nix
+++ b/pkgs/applications/video/obs-studio/plugins/obs-transition-table.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "Plugin for OBS Studio to add a Transition Table to the tools menu.";
+    description = "Plugin for OBS Studio to add a Transition Table to the tools menu";
     homepage = "https://github.com/exeldro/obs-transition-table";
     maintainers = with maintainers; [ flexiondotorg ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/video/obs-studio/plugins/obs-vintage-filter.nix b/pkgs/applications/video/obs-studio/plugins/obs-vintage-filter.nix
index 6c5e97cc1588a..9c3278a3c34ed 100644
--- a/pkgs/applications/video/obs-studio/plugins/obs-vintage-filter.nix
+++ b/pkgs/applications/video/obs-studio/plugins/obs-vintage-filter.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An OBS Studio filter where the source can be set to be black & white or sepia.";
+    description = "OBS Studio filter where the source can be set to be black & white or sepia";
     homepage = "https://github.com/cg2121/obs-vintage-filter";
     maintainers = with maintainers; [ flexiondotorg ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/video/obs-studio/plugins/wlrobs.nix b/pkgs/applications/video/obs-studio/plugins/wlrobs.nix
index 360b3fb349f68..d6017a649362b 100644
--- a/pkgs/applications/video/obs-studio/plugins/wlrobs.nix
+++ b/pkgs/applications/video/obs-studio/plugins/wlrobs.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   buildInputs = [ wayland obs-studio libX11 ];
 
   meta = with lib; {
-    description = "An obs-studio plugin that allows you to screen capture on wlroots based wayland compositors";
+    description = "Obs-studio plugin that allows you to screen capture on wlroots based wayland compositors";
     homepage = "https://hg.sr.ht/~scoopta/wlrobs";
     maintainers = with maintainers; [ grahamc ];
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/video/omxplayer/default.nix b/pkgs/applications/video/omxplayer/default.nix
index e01d0a2f49c7a..c9c77c1bbcb95 100644
--- a/pkgs/applications/video/omxplayer/default.nix
+++ b/pkgs/applications/video/omxplayer/default.nix
@@ -64,7 +64,7 @@ let
 
     meta = {
       homepage = "http://www.ffmpeg.org/";
-      description = "A complete, cross-platform solution to record, convert and stream audio and video";
+      description = "Complete, cross-platform solution to record, convert and stream audio and video";
     };
   };
 in
diff --git a/pkgs/applications/video/open-in-mpv/default.nix b/pkgs/applications/video/open-in-mpv/default.nix
index 1e1e29ba2dc0a..855af79e964e8 100644
--- a/pkgs/applications/video/open-in-mpv/default.nix
+++ b/pkgs/applications/video/open-in-mpv/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "open-in-mpv";
-  version = "2.2.1";
+  version = "2.2.2";
 
   src = fetchFromGitHub {
     owner = "Baldomo";
     repo = "open-in-mpv";
     rev = "v${version}";
-    hash = "sha256-Fa6oZMaR0ctZgYWoOXLaobc+pDRDZbDCFvRZUR+Fda4=";
+    hash = "sha256-dmsI4ea9L50djT/vwjswWDZ7uwMzc2q84i0T82LGjxs=";
   };
 
   vendorHash = "sha256-G6GZO2+CfEAYcf7zBcqDa808A0eJjM8dq7+4VGZ+P4c=";
diff --git a/pkgs/applications/video/p2pvc/default.nix b/pkgs/applications/video/p2pvc/default.nix
index ec2f0c95f8998..703676b4615d9 100644
--- a/pkgs/applications/video/p2pvc/default.nix
+++ b/pkgs/applications/video/p2pvc/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   };
 
   meta = {
-    description = "A point to point color terminal video chat";
+    description = "Point to point color terminal video chat";
     homepage = "https://github.com/mofarrell/p2pvc";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ trino ];
diff --git a/pkgs/applications/video/prism/default.nix b/pkgs/applications/video/prism/default.nix
index 68ef965ec1ab1..a2f42aa00c4e3 100644
--- a/pkgs/applications/video/prism/default.nix
+++ b/pkgs/applications/video/prism/default.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
   vendorHash = "sha256-uKtVifw4dxJdVvHxytL+9qjXHEdTyiz8U8n/95MObdY=";
 
   meta = with lib; {
-    description = "An RTMP stream recaster/splitter";
+    description = "RTMP stream recaster/splitter";
     homepage = "https://github.com/muesli/prism";
     license = licenses.mit;
     maintainers = with maintainers; [ paperdigits ];
diff --git a/pkgs/applications/video/pyca/default.nix b/pkgs/applications/video/pyca/default.nix
index 88ae198936539..5ca1e59d107bb 100644
--- a/pkgs/applications/video/pyca/default.nix
+++ b/pkgs/applications/video/pyca/default.nix
@@ -73,7 +73,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A fully functional Opencast capture agent written in Python";
+    description = "Fully functional Opencast capture agent written in Python";
     mainProgram = "pyca";
     homepage = "https://github.com/opencast/pyCA";
     license = licenses.lgpl3;
diff --git a/pkgs/applications/video/qarte/default.nix b/pkgs/applications/video/qarte/default.nix
index cbbf1f3076201..60b773d3aede5 100644
--- a/pkgs/applications/video/qarte/default.nix
+++ b/pkgs/applications/video/qarte/default.nix
@@ -38,7 +38,7 @@ in mkDerivation {
 
   meta = with lib; {
     homepage = "https://launchpad.net/qarte";
-    description = "A recorder for Arte TV Guide and Arte Concert";
+    description = "Recorder for Arte TV Guide and Arte Concert";
     license = licenses.gpl3;
     maintainers = with maintainers; [ vbgl ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/video/qmediathekview/default.nix b/pkgs/applications/video/qmediathekview/default.nix
index 3596791034979..0e8f3bfb584bc 100644
--- a/pkgs/applications/video/qmediathekview/default.nix
+++ b/pkgs/applications/video/qmediathekview/default.nix
@@ -32,7 +32,7 @@ mkDerivation rec {
   installFlags = [ "INSTALL_ROOT=$(out)" ];
 
   meta = with lib; {
-    description = "An alternative Qt-based front-end for the database maintained by the MediathekView project";
+    description = "Alternative Qt-based front-end for the database maintained by the MediathekView project";
     inherit (src.meta) homepage;
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/video/screenkey/default.nix b/pkgs/applications/video/screenkey/default.nix
index 301fc3e30f82c..59e53f3ccdc85 100644
--- a/pkgs/applications/video/screenkey/default.nix
+++ b/pkgs/applications/video/screenkey/default.nix
@@ -60,7 +60,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://www.thregr.org/~wavexx/software/screenkey/";
-    description = "A screencast tool to display your keys inspired by Screenflick";
+    description = "Screencast tool to display your keys inspired by Screenflick";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.rasendubi ];
diff --git a/pkgs/applications/video/shotcut/default.nix b/pkgs/applications/video/shotcut/default.nix
index 87732ad75b8cc..5427594b1e40b 100644
--- a/pkgs/applications/video/shotcut/default.nix
+++ b/pkgs/applications/video/shotcut/default.nix
@@ -72,7 +72,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A free, open source, cross-platform video editor";
+    description = "Free, open source, cross-platform video editor";
     longDescription = ''
       An official binary for Shotcut, which includes all the
       dependencies pinned to specific versions, is provided on
diff --git a/pkgs/applications/video/simplescreenrecorder/default.nix b/pkgs/applications/video/simplescreenrecorder/default.nix
index cbeb325e7ce09..8e30dc3e6358c 100644
--- a/pkgs/applications/video/simplescreenrecorder/default.nix
+++ b/pkgs/applications/video/simplescreenrecorder/default.nix
@@ -1,16 +1,16 @@
 { lib, stdenv, mkDerivation, fetchFromGitHub, alsa-lib, ffmpeg_4, libjack2, libX11, libXext, libXinerama, qtx11extras
-, libXfixes, libGLU, libGL, pkg-config, libpulseaudio, libv4l, qtbase, qttools, cmake, ninja
+, libXfixes, libGLU, libGL, pkg-config, libpulseaudio, libv4l, qtbase, qttools, cmake, ninja, nix-update-script
 }:
 
 mkDerivation rec {
   pname = "simplescreenrecorder";
-  version = "0.4.3";
+  version = "0.4.4";
 
   src = fetchFromGitHub {
     owner = "MaartenBaert";
     repo = "ssr";
     rev = version;
-    sha256 = "0mrx8wprs8bi42fwwvk6rh634ic9jnn0gkfpd6q9pcawnnbz3vq8";
+    sha256 = "sha256-cVjQmyk+rCqmDJzdnDk7bQ8kpyD3HtTw3wLVx2thHok=";
   };
 
   cmakeFlags = [
@@ -18,14 +18,13 @@ mkDerivation rec {
     "-DWITH_GLINJECT=${if stdenv.hostPlatform.isx86 then "TRUE" else "FALSE"}"
   ];
 
-  patches = [ ./fix-paths.patch ];
-
   postPatch = ''
-    for i in scripts/ssr-glinject src/AV/Input/GLInjectInput.cpp; do
-      substituteInPlace $i \
-        --subst-var out \
-        --subst-var-by sh ${stdenv.shell}
-    done
+    substituteInPlace scripts/ssr-glinject \
+      --replace-fail "libssr-glinject.so" "$out/lib/libssr-glinject.so"
+
+    substituteInPlace src/AV/Input/GLInjectInput.cpp \
+      --replace-fail "/bin/sh" "${stdenv.shell}" \
+      --replace-fail "libssr-glinject.so" "$out/lib/libssr-glinject.so"
   '';
 
   nativeBuildInputs = [ pkg-config cmake ninja ];
@@ -34,8 +33,10 @@ mkDerivation rec {
     libpulseaudio libv4l qtbase qttools qtx11extras
   ];
 
+  passthru.updateScript = nix-update-script { };
+
   meta = with lib; {
-    description = "A screen recorder for Linux";
+    description = "Screen recorder for Linux";
     homepage = "https://www.maartenbaert.be/simplescreenrecorder";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/video/simplescreenrecorder/fix-paths.patch b/pkgs/applications/video/simplescreenrecorder/fix-paths.patch
deleted file mode 100644
index 9cf634285fcbf..0000000000000
--- a/pkgs/applications/video/simplescreenrecorder/fix-paths.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-diff --git a/scripts/ssr-glinject b/scripts/ssr-glinject
-index 48be48d..5038d4c 100755
---- a/scripts/ssr-glinject
-+++ b/scripts/ssr-glinject
-@@ -59,6 +59,6 @@ do
- 	fi
- done
- 
--echo "ssr-glinject: LD_PRELOAD = $LD_PRELOAD:libssr-glinject.so"
-+echo "ssr-glinject: LD_PRELOAD = $LD_PRELOAD:@out@/lib/libssr-glinject.so"
- echo "ssr-glinject: command = $@"
--LD_PRELOAD="$LD_PRELOAD:libssr-glinject.so" "$@"
-+LD_PRELOAD="$LD_PRELOAD:@out@/lib/libssr-glinject.so" "$@"
-diff --git a/src/AV/Input/GLInjectInput.cpp b/src/AV/Input/GLInjectInput.cpp
-index fc98f31..18f5196 100644
---- a/src/AV/Input/GLInjectInput.cpp
-+++ b/src/AV/Input/GLInjectInput.cpp
-@@ -113,7 +113,7 @@ bool ExecuteDetached(const char* command, const char* working_directory) {
- 
- 			// try to execute command
- 			do {
--				res = execl("/bin/sh", "/bin/sh", "-c", command, (char*) NULL);
-+				res = execl("@sh@", "@sh@", "-c", command, (char*) NULL);
- 			} while(res == -1 and errno == EINTR);
- 
- 			// failed, send feedback
-@@ -207,7 +207,7 @@ void GLInjectInput::SetCapturing(bool capturing) {
- bool GLInjectInput::LaunchApplication(const QString& channel, bool relax_permissions, const QString& command, const QString& working_directory) {
- 
- 	// prepare command
--	QString full_command = "LD_PRELOAD=\"libssr-glinject.so\" ";
-+	QString full_command = "LD_PRELOAD=\"@out@/lib/libssr-glinject.so\" ";
- 	full_command += "SSR_CHANNEL=\"" + ShellEscape(channel) + "\" ";
- 	if(relax_permissions)
- 		full_command += "SSR_STREAM_RELAX_PERMISSIONS=1 ";
diff --git a/pkgs/applications/video/stremio/default.nix b/pkgs/applications/video/stremio/default.nix
index a967a872cd997..0aa5ab26e653c 100644
--- a/pkgs/applications/video/stremio/default.nix
+++ b/pkgs/applications/video/stremio/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     mainProgram = "stremio";
-    description = "A modern media center that gives you the freedom to watch everything you want.";
+    description = "Modern media center that gives you the freedom to watch everything you want";
     homepage = "https://www.stremio.com/";
     # (Server-side) web UI is closed source now, apparently they work on open-sourcing it.
     # server.js appears to be MIT-licensed, but I can't find how they actually build it.
diff --git a/pkgs/applications/video/subdl/default.nix b/pkgs/applications/video/subdl/default.nix
index 773d1f1ad4237..61b5af2f0b57b 100644
--- a/pkgs/applications/video/subdl/default.nix
+++ b/pkgs/applications/video/subdl/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "https://github.com/alexanderwink/subdl";
-    description = "A command-line tool to download subtitles from opensubtitles.org";
+    description = "Command-line tool to download subtitles from opensubtitles.org";
     platforms = lib.platforms.all;
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.exfalso ];
diff --git a/pkgs/applications/video/subtitleedit/default.nix b/pkgs/applications/video/subtitleedit/default.nix
index 924f0fc44e0eb..b192edbffa0e9 100644
--- a/pkgs/applications/video/subtitleedit/default.nix
+++ b/pkgs/applications/video/subtitleedit/default.nix
@@ -18,11 +18,11 @@
 
 stdenv.mkDerivation rec {
   pname = "subtitleedit";
-  version = "4.0.5";
+  version = "4.0.6";
 
   src = fetchzip {
     url = "https://github.com/SubtitleEdit/subtitleedit/releases/download/${version}/SE${lib.replaceStrings [ "." ] [ "" ] version}.zip";
-    hash = "sha256-qYDLUqC5adzpmlQIq/EKmrkN8D8/EHZmP8QUGAaYf+s=";
+    hash = "sha256-ipAqnF7rpSXccWkyTysUBrD0/mnv5AEA5GuxMJjW9Dg=";
     stripRoot = false;
   };
 
diff --git a/pkgs/applications/video/tartube/default.nix b/pkgs/applications/video/tartube/default.nix
index 73f6946f6baaf..057484d379e84 100644
--- a/pkgs/applications/video/tartube/default.nix
+++ b/pkgs/applications/video/tartube/default.nix
@@ -69,7 +69,7 @@ python3Packages.buildPythonApplication rec {
   ];
 
   meta = with lib; {
-    description = "A GUI front-end for youtube-dl";
+    description = "GUI front-end for youtube-dl";
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ mkg20001 luc65r ];
diff --git a/pkgs/applications/video/timelens/default.nix b/pkgs/applications/video/timelens/default.nix
index c5d2ff7c4c5ad..b80d1c3c447b8 100644
--- a/pkgs/applications/video/timelens/default.nix
+++ b/pkgs/applications/video/timelens/default.nix
@@ -36,7 +36,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = {
-    description = "A open source project for creating visual timelines";
+    description = "Open source project for creating visual timelines";
     homepage = "https://timelens.blinry.org";
     changelog = "https://github.com/timelens/timelens/blob/${src.rev}/CHANGELOG.md";
     license = lib.licenses.gpl2Plus;
diff --git a/pkgs/applications/video/ustreamer/default.nix b/pkgs/applications/video/ustreamer/default.nix
index 294e250f7c8e1..230012dbc5323 100644
--- a/pkgs/applications/video/ustreamer/default.nix
+++ b/pkgs/applications/video/ustreamer/default.nix
@@ -1,19 +1,24 @@
-{ lib, stdenv, fetchFromGitHub, libbsd, libevent, libjpeg }:
+{ lib, stdenv, fetchFromGitHub, libbsd, libevent, libjpeg, libdrm, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "ustreamer";
-  version = "6.4";
+  version = "6.12";
 
   src = fetchFromGitHub {
     owner = "pikvm";
     repo = "ustreamer";
     rev = "v${version}";
-    hash = "sha256-pTfct+nki1t7ltCUnxSyOkDocSr2pkoqOldkECtNfDU=";
+    hash = "sha256-iaCgPHgklk7tbhJhQmyjKggb1bMWBD+Zurgfk9sCQ3E=";
   };
 
-  buildInputs = [ libbsd libevent libjpeg ];
+  buildInputs = [ libbsd libevent libjpeg libdrm ];
 
-  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+  nativeBuildInputs = [ pkg-config ];
+
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+    "WITH_V4P=1"
+  ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/applications/video/vdr/plugins.nix b/pkgs/applications/video/vdr/plugins.nix
index 4063f4108fa06..6890df0bdca6d 100644
--- a/pkgs/applications/video/vdr/plugins.nix
+++ b/pkgs/applications/video/vdr/plugins.nix
@@ -124,7 +124,7 @@ in {
 
     meta = with lib; {
       inherit (src.meta) homepage;
-      description = "VDR plugin to handle KODI clients.";
+      description = "VDR plugin to handle KODI clients";
       maintainers = [ maintainers.ck3d ];
       license = licenses.gpl2;
       inherit (vdr.meta) platforms;
@@ -186,7 +186,7 @@ in {
 
     meta = with lib; {
       inherit (src.meta) homepage;
-      description = "A plugin for VDR to access AVMs Fritz Box routers";
+      description = "Plugin for VDR to access AVMs Fritz Box routers";
       maintainers = [ maintainers.ck3d ];
       license = licenses.gpl2;
       inherit (vdr.meta) platforms;
diff --git a/pkgs/applications/video/vdr/softhddevice/default.nix b/pkgs/applications/video/vdr/softhddevice/default.nix
index e4dc348fa740b..e04af11dfe0d9 100644
--- a/pkgs/applications/video/vdr/softhddevice/default.nix
+++ b/pkgs/applications/video/vdr/softhddevice/default.nix
@@ -14,12 +14,12 @@
 }:
 stdenv.mkDerivation rec {
   pname = "vdr-softhddevice";
-  version = "2.3.1";
+  version = "2.3.3";
 
   src = fetchFromGitHub {
     owner = "ua0lnj";
     repo = "vdr-plugin-softhddevice";
-    sha256 = "sha256-hg4zx3M5X56u3AqG8Aj9DDDB/V0w4EiU9EAz8Qe+NVY=";
+    sha256 = "sha256-PvSo5qiDMVrL6ylts5leR/3YAqIpIZcmnAqnGopPG94=";
     rev = "v${version}";
   };
 
diff --git a/pkgs/applications/video/vdr/streamdev/default.nix b/pkgs/applications/video/vdr/streamdev/default.nix
index de45b31d86904..248f06538393f 100644
--- a/pkgs/applications/video/vdr/streamdev/default.nix
+++ b/pkgs/applications/video/vdr/streamdev/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib;{
     inherit (src.meta) homepage;
-    description = "This PlugIn is a VDR implementation of the VTP (Video Transfer Protocol) Version 0.0.3 (see file PROTOCOL) and a basic HTTP Streaming Protocol.";
+    description = "This PlugIn is a VDR implementation of the VTP (Video Transfer Protocol) Version 0.0.3 (see file PROTOCOL) and a basic HTTP Streaming Protocol";
     maintainers = [ maintainers.ck3d ];
     license = licenses.gpl2;
     inherit (vdr.meta) platforms;
diff --git a/pkgs/applications/video/vivictpp/default.nix b/pkgs/applications/video/vivictpp/default.nix
index e2fc34340fc5b..114718177afec 100644
--- a/pkgs/applications/video/vivictpp/default.nix
+++ b/pkgs/applications/video/vivictpp/default.nix
@@ -64,7 +64,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An easy to use tool for subjective comparison of the visual quality of different encodings of the same video source";
+    description = "Easy to use tool for subjective comparison of the visual quality of different encodings of the same video source";
     homepage = "https://github.com/vivictorg/vivictpp";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/applications/video/w_scan2/default.nix b/pkgs/applications/video/w_scan2/default.nix
index d4d21a26025d0..e20330d0ea3b8 100644
--- a/pkgs/applications/video/w_scan2/default.nix
+++ b/pkgs/applications/video/w_scan2/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "A small channel scan tool which generates ATSC, DVB-C, DVB-S/S2 and DVB-T/T2 channels.conf files";
+    description = "Small channel scan tool which generates ATSC, DVB-C, DVB-S/S2 and DVB-T/T2 channels.conf files";
     homepage = "https://github.com/stefantalpalaru/w_scan2";
     platforms = lib.platforms.linux;
     maintainers = with lib.maintainers; [ _0x4A6F ] ;
diff --git a/pkgs/applications/video/webtorrent_desktop/default.nix b/pkgs/applications/video/webtorrent_desktop/default.nix
index 75a8d9f5c639f..60ef7c57cdc8a 100644
--- a/pkgs/applications/video/webtorrent_desktop/default.nix
+++ b/pkgs/applications/video/webtorrent_desktop/default.nix
@@ -12,12 +12,14 @@ buildNpmPackage {
   patches = [
     # electron 27 fix
     (fetchpatch {
-      url = "https://github.com/webtorrent/webtorrent-desktop/pull/2388.patch";
+      name = "2388.patch"; # https://github.com/webtorrent/webtorrent-desktop/pull/2388
+      url = "https://github.com/webtorrent/webtorrent-desktop/compare/ebaf9cf8487dbd9e14a9a0c5adc3eab23b199e58...0c3e55d1f091bf66a342e2732550ebeccc2e4169.patch";
       hash = "sha256-gam5oAZtsaiCNFwecA5ff0nhraySLx3SOHlb/js+cPM=";
     })
     # startup fix
     (fetchpatch {
-      url = "https://github.com/webtorrent/webtorrent-desktop/pull/2389.patch";
+      name = "2389.patch"; # https://github.com/webtorrent/webtorrent-desktop/pull/2389
+      url = "https://github.com/webtorrent/webtorrent-desktop/commit/407046d150ed7ff876a5e1978f68630e9c8f0074.patch";
       hash = "sha256-hBJGLNNjcGRhYOFlLm/RL0po+70tEeJtR6Y/CfacPAI=";
     })
   ];
diff --git a/pkgs/applications/video/xine/lib.nix b/pkgs/applications/video/xine/lib.nix
index ec3a642082674..641243ee77c6d 100644
--- a/pkgs/applications/video/xine/lib.nix
+++ b/pkgs/applications/video/xine/lib.nix
@@ -84,7 +84,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://xine.sourceforge.net/";
-    description = "A high-performance, portable and reusable multimedia playback engine";
+    description = "High-performance, portable and reusable multimedia playback engine";
     license = with lib.licenses; [ gpl2Plus lgpl2Plus ];
     maintainers = with lib.maintainers; [ AndersonTorres ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/applications/video/xplayer/default.nix b/pkgs/applications/video/xplayer/default.nix
index 929d9d2952c48..d697ff2020043 100644
--- a/pkgs/applications/video/xplayer/default.nix
+++ b/pkgs/applications/video/xplayer/default.nix
@@ -88,7 +88,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A generic media player from Linux Mint";
+    description = "Generic media player from Linux Mint";
     license = with licenses; [ gpl2Plus lgpl21Plus ];
     homepage = "https://github.com/linuxmint/xplayer";
     maintainers = with maintainers; [ tu-maurice bobby285271 ];
diff --git a/pkgs/applications/video/youtube-tui/default.nix b/pkgs/applications/video/youtube-tui/default.nix
index 63e9f51304edb..89d32f6f9a70f 100644
--- a/pkgs/applications/video/youtube-tui/default.nix
+++ b/pkgs/applications/video/youtube-tui/default.nix
@@ -56,7 +56,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "An aesthetically pleasing YouTube TUI written in Rust";
+    description = "Aesthetically pleasing YouTube TUI written in Rust";
     homepage = "https://siriusmart.github.io/youtube-tui";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ Ruixi-rebirth ];
diff --git a/pkgs/applications/virtualization/OVMF/default.nix b/pkgs/applications/virtualization/OVMF/default.nix
index 79df60253ff59..60eaa6428d62c 100644
--- a/pkgs/applications/virtualization/OVMF/default.nix
+++ b/pkgs/applications/virtualization/OVMF/default.nix
@@ -44,6 +44,10 @@
 let
 
   platformSpecific = {
+    i686.msVarsArgs = {
+      flavor = "OVMF";
+      archDir = "Ia32";
+    };
     x86_64.msVarsArgs = {
       flavor = "OVMF_4M";
       archDir = "X64";
diff --git a/pkgs/applications/virtualization/catatonit/default.nix b/pkgs/applications/virtualization/catatonit/default.nix
index f7b2b973ab579..1c9f310ed86a1 100644
--- a/pkgs/applications/virtualization/catatonit/default.nix
+++ b/pkgs/applications/virtualization/catatonit/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   passthru.tests = { inherit (nixosTests) podman; };
 
   meta = with lib; {
-    description = "A container init that is so simple it's effectively brain-dead";
+    description = "Container init that is so simple it's effectively brain-dead";
     homepage = "https://github.com/openSUSE/catatonit";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ erosennin ] ++ teams.podman.members;
diff --git a/pkgs/applications/virtualization/cntr/default.nix b/pkgs/applications/virtualization/cntr/default.nix
index 01b9960a5e88b..448254db0ccfb 100644
--- a/pkgs/applications/virtualization/cntr/default.nix
+++ b/pkgs/applications/virtualization/cntr/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   passthru.tests = nixosTests.cntr;
 
   meta = with lib; {
-    description = "A container debugging tool based on FUSE";
+    description = "Container debugging tool based on FUSE";
     homepage = "https://github.com/Mic92/cntr";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/applications/virtualization/conmon-rs/default.nix b/pkgs/applications/virtualization/conmon-rs/default.nix
index 89c6d46d2ccf0..efb463580e0ee 100644
--- a/pkgs/applications/virtualization/conmon-rs/default.nix
+++ b/pkgs/applications/virtualization/conmon-rs/default.nix
@@ -22,7 +22,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-4VOse+y0EO9IORyeAO/j1t6ssQARJp7lK21TUJVuH78=";
 
   meta = with lib; {
-    description = "An OCI container runtime monitor written in Rust";
+    description = "OCI container runtime monitor written in Rust";
     homepage = "https://github.com/containers/conmon-rs";
     license = licenses.asl20;
     maintainers = with maintainers; [ ] ++ teams.podman.members;
diff --git a/pkgs/applications/virtualization/conmon/default.nix b/pkgs/applications/virtualization/conmon/default.nix
index a6931f2e709f8..0e7ece1b5f82a 100644
--- a/pkgs/applications/virtualization/conmon/default.nix
+++ b/pkgs/applications/virtualization/conmon/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     changelog = "https://github.com/containers/conmon/releases/tag/${src.rev}";
     homepage = "https://github.com/containers/conmon";
-    description = "An OCI container runtime monitor";
+    description = "OCI container runtime monitor";
     license = licenses.asl20;
     maintainers = with maintainers; [ ] ++ teams.podman.members;
     platforms = platforms.linux;
diff --git a/pkgs/applications/virtualization/containerd/default.nix b/pkgs/applications/virtualization/containerd/default.nix
index b9d1397e7ea49..acb652e33cb77 100644
--- a/pkgs/applications/virtualization/containerd/default.nix
+++ b/pkgs/applications/virtualization/containerd/default.nix
@@ -11,13 +11,13 @@
 
 buildGoModule rec {
   pname = "containerd";
-  version = "1.7.16";
+  version = "1.7.18";
 
   src = fetchFromGitHub {
     owner = "containerd";
     repo = "containerd";
     rev = "v${version}";
-    hash = "sha256-OApJaH11iTvjW4gZaANSCVcxw/VHG7a/6OnYcUcHFME=";
+    hash = "sha256-IlK5IwniaBhqMgxQzV8btQcbdJkNEQeUMoh6aOsBOHQ=";
   };
 
   vendorHash = null;
@@ -48,7 +48,7 @@ buildGoModule rec {
   meta = with lib; {
     changelog = "https://github.com/containerd/containerd/releases/tag/${src.rev}";
     homepage = "https://containerd.io/";
-    description = "A daemon to control runC";
+    description = "Daemon to control runC";
     license = licenses.asl20;
     maintainers = with maintainers; [ offline vdemeester ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/virtualization/cri-o/default.nix b/pkgs/applications/virtualization/cri-o/default.nix
index 8b13c01852bae..00f17d75d6e59 100644
--- a/pkgs/applications/virtualization/cri-o/default.nix
+++ b/pkgs/applications/virtualization/cri-o/default.nix
@@ -15,13 +15,13 @@
 
 buildGoModule rec {
   pname = "cri-o";
-  version = "1.30.1";
+  version = "1.30.2";
 
   src = fetchFromGitHub {
     owner = "cri-o";
     repo = "cri-o";
     rev = "v${version}";
-    hash = "sha256-3TO7pPDIYxlWXWNIAqCMWPCFPRxG6k6ilL2wDiAXFVY=";
+    hash = "sha256-4v7Pt3WS68h+Un4QNATyQ/o/+8b8nVoNsy6VgwB9Brc=";
   };
   vendorHash = null;
 
diff --git a/pkgs/applications/virtualization/crosvm/default.nix b/pkgs/applications/virtualization/crosvm/default.nix
index 50c5a10b5663a..40d940a6904d6 100644
--- a/pkgs/applications/virtualization/crosvm/default.nix
+++ b/pkgs/applications/virtualization/crosvm/default.nix
@@ -5,18 +5,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "crosvm";
-  version = "124.0";
+  version = "125.0";
 
   src = fetchgit {
     url = "https://chromium.googlesource.com/chromiumos/platform/crosvm";
-    rev = "bc2900b9ccbdf37b780a63888ca94437fd7dd6af";
-    hash = "sha256-t/47u5BlSC5vbRc7OQSbGBF+wnhcDFOMjrRQc/p2HcQ=";
+    rev = "6a7ff1ecb7fad6820d3bbfe8b11e65854059aba5";
+    hash = "sha256-y/vHU8i9YNbzSHla853z/2w914mVMFOryyaHE1uxlvM=";
     fetchSubmodules = true;
   };
 
   separateDebugInfo = true;
 
-  cargoHash = "sha256-7zx0k7HXequpwcURHx+Ml3cDhdvLkXTg+V71F6TO/d0=";
+  cargoHash = "sha256-1AUfd9dhIZvVVUsVbnGoLKc0lBfccwM4wqWgU4yZWOE=";
 
   nativeBuildInputs = [
     pkg-config protobuf python3 rustPlatform.bindgenHook wayland-scanner
@@ -38,7 +38,7 @@ rustPlatform.buildRustPackage rec {
   passthru.updateScript = ./update.py;
 
   meta = with lib; {
-    description = "A secure virtual machine monitor for KVM";
+    description = "Secure virtual machine monitor for KVM";
     homepage = "https://crosvm.dev/";
     mainProgram = "crosvm";
     maintainers = with maintainers; [ qyliss ];
diff --git a/pkgs/applications/virtualization/crun/default.nix b/pkgs/applications/virtualization/crun/default.nix
index 03f76e0421a10..18d5909fbcc86 100644
--- a/pkgs/applications/virtualization/crun/default.nix
+++ b/pkgs/applications/virtualization/crun/default.nix
@@ -75,7 +75,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     changelog = "https://github.com/containers/crun/releases/tag/${version}";
-    description = "A fast and lightweight fully featured OCI runtime and C library for running containers";
+    description = "Fast and lightweight fully featured OCI runtime and C library for running containers";
     homepage = "https://github.com/containers/crun";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/virtualization/ddev/default.nix b/pkgs/applications/virtualization/ddev/default.nix
index 35c1f805c8ba3..549022d9908c2 100644
--- a/pkgs/applications/virtualization/ddev/default.nix
+++ b/pkgs/applications/virtualization/ddev/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "ddev";
-  version = "1.23.1";
+  version = "1.23.2";
 
   src = fetchFromGitHub {
     owner = "ddev";
     repo = "ddev";
     rev = "v${version}";
-    hash = "sha256-qGuYH2xYmd3CYoYobjoum+zUImcsiaG5No36FG0H0bA=";
+    hash = "sha256-pzBSyCIA2r/4zYIYEmKF6c0gryudSKZebSXSpmJUbsQ=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/virtualization/docker/buildx.nix b/pkgs/applications/virtualization/docker/buildx.nix
index f1e91408a0b35..609b0e97deb05 100644
--- a/pkgs/applications/virtualization/docker/buildx.nix
+++ b/pkgs/applications/virtualization/docker/buildx.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "docker-buildx";
-  version = "0.14.0";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
     owner = "docker";
     repo = "buildx";
     rev = "v${version}";
-    hash = "sha256-pfDGKxIy9ZXueYv0u1zPWWYCAeSRBaOGDfIt1Hsubkk=";
+    hash = "sha256-IseiGF+tQWv7Z2jlCINuWH2Gzcdow2qazvYVFBGyQPU=";
   };
 
   doCheck = false;
diff --git a/pkgs/applications/virtualization/docker/compose.nix b/pkgs/applications/virtualization/docker/compose.nix
index d2eb61bb893db..a5919f709971c 100644
--- a/pkgs/applications/virtualization/docker/compose.nix
+++ b/pkgs/applications/virtualization/docker/compose.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "docker-compose";
-  version = "2.27.0";
+  version = "2.27.1";
 
   src = fetchFromGitHub {
     owner = "docker";
     repo = "compose";
     rev = "v${version}";
-    hash = "sha256-YM/9ijwxDAjFZk/ku33b/pMYri5V1h0wPd2YS7qJgCw=";
+    hash = "sha256-miAfEllN7/qDBD8UQZIfUeXSezEhmSwMo6oTDfiw2Bk=";
   };
 
   postPatch = ''
@@ -16,7 +16,7 @@ buildGoModule rec {
     rm -rf e2e/
   '';
 
-  vendorHash = "sha256-ztqWSoDsN8qdm6Jq8Wo7r16zuXENQDp2JvwSN+6Jbxw=";
+  vendorHash = "sha256-5HJ4qaPD1pbBFKgAArW0CKNBuP7pjxswZe3rHgjsgLg=";
 
   ldflags = [ "-X github.com/docker/compose/v2/internal.Version=${version}" "-s" "-w" ];
 
@@ -35,6 +35,6 @@ buildGoModule rec {
     mainProgram = "docker-compose";
     homepage = "https://github.com/docker/compose";
     license = licenses.asl20;
-    maintainers = with maintainers; [ babariviere ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/applications/virtualization/docker/default.nix b/pkgs/applications/virtualization/docker/default.nix
index 7556ba47b7228..3d096c3389f9d 100644
--- a/pkgs/applications/virtualization/docker/default.nix
+++ b/pkgs/applications/virtualization/docker/default.nix
@@ -1,4 +1,4 @@
-{ lib, callPackage, fetchFromGitHub }:
+{ lib, callPackage }:
 
 rec {
   dockerGen = {
@@ -10,7 +10,7 @@ rec {
       , tiniRev, tiniHash
       , buildxSupport ? true, composeSupport ? true, sbomSupport ? false
       # package dependencies
-      , stdenv, fetchFromGitHub, fetchpatch, buildGoPackage
+      , stdenv, fetchFromGitHub, fetchpatch, buildGoModule
       , makeWrapper, installShellFiles, pkg-config, glibc
       , go-md2man, go, containerd, runc, tini, libtool
       , sqlite, iproute2, docker-buildx, docker-compose, docker-sbom
@@ -23,7 +23,7 @@ rec {
       , withSeccomp ? stdenv.isLinux, libseccomp
     }:
   let
-    docker-runc = runc.overrideAttrs (oldAttrs: {
+    docker-runc = runc.overrideAttrs {
       pname = "docker-runc";
       inherit version;
 
@@ -36,7 +36,7 @@ rec {
 
       # docker/runc already include these patches / are not applicable
       patches = [];
-    });
+    };
 
     docker-containerd = containerd.overrideAttrs (oldAttrs: {
       pname = "docker-containerd";
@@ -53,7 +53,7 @@ rec {
         ++ lib.optionals withSeccomp [ libseccomp ];
     });
 
-    docker-tini = tini.overrideAttrs (oldAttrs: {
+    docker-tini = tini.overrideAttrs {
       pname = "docker-init";
       inherit version;
 
@@ -70,7 +70,7 @@ rec {
       buildInputs = [ glibc glibc.static ];
 
       env.NIX_CFLAGS_COMPILE = "-DMINIMAL=ON";
-    });
+    };
 
     moby-src = fetchFromGitHub {
       owner = "moby";
@@ -79,13 +79,13 @@ rec {
       hash = mobyHash;
     };
 
-    moby = buildGoPackage (lib.optionalAttrs stdenv.isLinux rec {
+    moby = buildGoModule (lib.optionalAttrs stdenv.isLinux rec {
       pname = "moby";
       inherit version;
 
       src = moby-src;
 
-      goPackagePath = "github.com/docker/docker";
+      vendorHash = null;
 
       nativeBuildInputs = [ makeWrapper pkg-config go-md2man go libtool installShellFiles ];
       buildInputs = [ sqlite ]
@@ -126,16 +126,13 @@ rec {
       buildPhase = ''
         export GOCACHE="$TMPDIR/go-cache"
         # build engine
-        cd ./go/src/${goPackagePath}
         export AUTO_GOPATH=1
         export DOCKER_GITCOMMIT="${cliRev}"
         export VERSION="${version}"
         ./hack/make.sh dynbinary
-        cd -
       '';
 
       installPhase = ''
-        cd ./go/src/${goPackagePath}
         install -Dm755 ./bundles/dynbinary-daemon/dockerd $out/libexec/docker/dockerd
         install -Dm755 ./bundles/dynbinary-daemon/docker-proxy $out/libexec/docker/docker-proxy
 
@@ -149,7 +146,7 @@ rec {
 
         # systemd
         install -Dm644 ./contrib/init/systemd/docker.service $out/etc/systemd/system/docker.service
-        substituteInPlace $out/etc/systemd/system/docker.service --replace /usr/bin/dockerd $out/bin/dockerd
+        substituteInPlace $out/etc/systemd/system/docker.service --replace-fail /usr/bin/dockerd $out/bin/dockerd
         install -Dm644 ./contrib/init/systemd/docker.socket $out/etc/systemd/system/docker.socket
 
         # rootless Docker
@@ -169,7 +166,7 @@ rec {
       ++ lib.optional sbomSupport docker-sbom;
     pluginsRef = symlinkJoin { name = "docker-plugins"; paths = plugins; };
   in
-  buildGoPackage (lib.optionalAttrs (!clientOnly) {
+  buildGoModule (lib.optionalAttrs (!clientOnly) {
     # allow overrides of docker components
     # TODO: move packages out of the let...in into top-level to allow proper overrides
     inherit docker-runc docker-containerd docker-tini moby;
@@ -184,7 +181,7 @@ rec {
       hash = cliHash;
     };
 
-    goPackagePath = "github.com/docker/cli";
+    vendorHash = null;
 
     nativeBuildInputs = [
       makeWrapper pkg-config go-md2man go libtool installShellFiles
@@ -197,9 +194,9 @@ rec {
 
     postPatch = ''
       patchShebangs man scripts/build/
-      substituteInPlace ./scripts/build/.variables --replace "set -eu" ""
+      substituteInPlace ./scripts/build/.variables --replace-fail "set -eu" ""
     '' + lib.optionalString (plugins != []) ''
-      substituteInPlace ./cli-plugins/manager/manager_unix.go --replace /usr/libexec/docker/cli-plugins \
+      substituteInPlace ./cli-plugins/manager/manager_unix.go --replace-fail /usr/libexec/docker/cli-plugins \
           "${pluginsRef}/libexec/docker/cli-plugins"
     '';
 
@@ -207,7 +204,6 @@ rec {
     buildPhase = ''
       export GOCACHE="$TMPDIR/go-cache"
 
-      cd ./go/src/${goPackagePath}
       # Mimic AUTO_GOPATH
       mkdir -p .gopath/src/github.com/docker/
       ln -sf $PWD .gopath/src/github.com/docker/cli
@@ -215,17 +211,14 @@ rec {
       export GITCOMMIT="${cliRev}"
       export VERSION="${version}"
       export BUILDTIME="1970-01-01T00:00:00Z"
-      source ./scripts/build/.variables
-      export CGO_ENABLED=1
-      go build -tags pkcs11 --ldflags "$GO_LDFLAGS" github.com/docker/cli/cmd/docker
-      cd -
+      make dynbinary
+
     '';
 
     outputs = ["out"] ++ lib.optional (lib.versionOlder version "23") "man";
 
     installPhase = ''
-      cd ./go/src/${goPackagePath}
-      install -Dm755 ./docker $out/libexec/docker/docker
+      install -Dm755 ./build/docker $out/libexec/docker/docker
 
       makeWrapper $out/libexec/docker/docker $out/bin/docker \
         --prefix PATH : "$out/libexec/docker:$extraPath"
@@ -265,14 +258,14 @@ rec {
 
     meta = with lib; {
       homepage = "https://www.docker.com/";
-      description = "An open source project to pack, ship and run any application as a lightweight container";
+      description = "Open source project to pack, ship and run any application as a lightweight container";
       longDescription = ''
         Docker is a platform designed to help developers build, share, and run modern applications.
 
         To enable the docker daemon on NixOS, set the `virtualisation.docker.enable` option to `true`.
       '';
       license = licenses.asl20;
-      maintainers = with maintainers; [ offline vdemeester periklis ];
+      maintainers = with maintainers; [ offline vdemeester periklis teutat3s ];
       mainProgram = "docker";
     };
   });
@@ -308,11 +301,11 @@ rec {
   };
 
   docker_26 = callPackage dockerGen rec {
-    version = "26.1.3";
+    version = "26.1.4";
     cliRev = "v${version}";
-    cliHash = "sha256-xE+g9Gtza4oAIlGUzDmjrqJa42bEkpbKbL2fsFlYzpY=";
+    cliHash = "sha256-7yCR49Un1i1kB+66IKt/8lgwKNkUjtVh52DH9OY8Pw4=";
     mobyRev = "v${version}";
-    mobyHash = "sha256-s4hOvYV2+wDNKs4iFw6OflK+nemvqNhmfFURzhWaUzY=";
+    mobyHash = "sha256-0WwlpUECvmNq6DBm7U7rjzYfGKF7pxsfs9+x5uVPV0k=";
     runcRev = "v1.1.12";
     runcHash = "sha256-N77CU5XiGYIdwQNPFyluXjseTeaYuNJ//OsEUS0g/v0=";
     containerdRev = "v1.7.15";
diff --git a/pkgs/applications/virtualization/docker/distribution.nix b/pkgs/applications/virtualization/docker/distribution.nix
deleted file mode 100644
index 8c2fec16186c3..0000000000000
--- a/pkgs/applications/virtualization/docker/distribution.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
-
-buildGoPackage rec {
-  pname = "distribution";
-  version = "2.8.3";
-  rev = "v${version}";
-
-  goPackagePath = "github.com/docker/distribution";
-
-  src = fetchFromGitHub {
-    owner = "docker";
-    repo = "distribution";
-    inherit rev;
-    sha256 = "sha256-6/clOTkI1JnDjb+crcHmjbQlaqffP/sntGqUB2ftajU=";
-  };
-
-  meta = with lib; {
-    description = "The Docker toolset to pack, ship, store, and deliver content";
-    license = licenses.asl20;
-    maintainers = [];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/applications/virtualization/dumb-init/default.nix b/pkgs/applications/virtualization/dumb-init/default.nix
index 28054be349e13..207400aaca0bc 100644
--- a/pkgs/applications/virtualization/dumb-init/default.nix
+++ b/pkgs/applications/virtualization/dumb-init/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A minimal init system for Linux containers";
+    description = "Minimal init system for Linux containers";
     homepage = "https://github.com/Yelp/dumb-init";
     license = licenses.mit;
     maintainers = [ ];
diff --git a/pkgs/applications/virtualization/ecs-agent/default.nix b/pkgs/applications/virtualization/ecs-agent/default.nix
index 57dde74ab09f7..e5fe625cdf9f1 100644
--- a/pkgs/applications/virtualization/ecs-agent/default.nix
+++ b/pkgs/applications/virtualization/ecs-agent/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "amazon-ecs-agent";
-  version = "1.82.3";
+  version = "1.82.4";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "aws";
     repo = pname;
-    hash = "sha256-dn7aAH5Huul02WHoPm9VOjAdhMmtUXwnoGa2nSOa8UI=";
+    hash = "sha256-bM/K3fxkeDwsXKsgZaEkurgYdSHnOgIQ2oUKc5atvZk=";
   };
 
   vendorHash = null;
@@ -20,7 +20,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "The agent that runs on AWS EC2 container instances and starts containers on behalf of Amazon ECS";
+    description = "Agent that runs on AWS EC2 container instances and starts containers on behalf of Amazon ECS";
     homepage = "https://github.com/aws/amazon-ecs-agent";
     changelog = "https://github.com/aws/amazon-ecs-agent/raw/v${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/applications/virtualization/firectl/default.nix b/pkgs/applications/virtualization/firectl/default.nix
index de0d3cd4131f8..9f8da61d3e486 100644
--- a/pkgs/applications/virtualization/firectl/default.nix
+++ b/pkgs/applications/virtualization/firectl/default.nix
@@ -19,7 +19,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A command-line tool to run Firecracker microVMs";
+    description = "Command-line tool to run Firecracker microVMs";
     homepage = "https://github.com/firecracker-microvm/firectl";
     license = licenses.asl20;
     platforms = platforms.linux;
diff --git a/pkgs/applications/virtualization/kraft/default.nix b/pkgs/applications/virtualization/kraft/default.nix
index 76e6614dc33cb..1e066477b721b 100644
--- a/pkgs/applications/virtualization/kraft/default.nix
+++ b/pkgs/applications/virtualization/kraft/default.nix
@@ -38,6 +38,5 @@ buildGoModule rec {
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ dit7ya ];
     mainProgram = "kraft";
-    broken = stdenv.isDarwin; # > machine/platform/iterator_v1alpha1.go:32:34: undefined: hostSupportedStrategies
   };
 }
diff --git a/pkgs/applications/virtualization/krunvm/default.nix b/pkgs/applications/virtualization/krunvm/default.nix
index 0c2c4d0d0df87..d6da5a2742f51 100644
--- a/pkgs/applications/virtualization/krunvm/default.nix
+++ b/pkgs/applications/virtualization/krunvm/default.nix
@@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A CLI-based utility for creating microVMs from OCI images";
+    description = "CLI-based utility for creating microVMs from OCI images";
     homepage = "https://github.com/containers/krunvm";
     license = licenses.asl20;
     maintainers = with maintainers; [ nickcao ];
diff --git a/pkgs/applications/virtualization/kvmtool/default.nix b/pkgs/applications/virtualization/kvmtool/default.nix
index f546c32042e32..880334294af66 100644
--- a/pkgs/applications/virtualization/kvmtool/default.nix
+++ b/pkgs/applications/virtualization/kvmtool/default.nix
@@ -1,12 +1,13 @@
-{ stdenv, fetchzip, lib, dtc }:
+{ stdenv, fetchgit, lib, dtc }:
 
 stdenv.mkDerivation {
   pname = "kvmtool";
-  version = "unstable-2023-07-12";
+  version = "0-unstable-2024-04-09";
 
-  src = fetchzip {
-    url = "https://git.kernel.org/pub/scm/linux/kernel/git/will/kvmtool.git/snapshot/kvmtool-106e2ea7756d980454d68631b87d5e25ba4e4881.tar.gz";
-    hash = "sha256-wpc5DfHnui0lBVH4uOq6a7pXVUZStjNLRvauu6QpRvE=";
+  src = fetchgit {
+    url = "https://git.kernel.org/pub/scm/linux/kernel/git/will/kvmtool.git";
+    rev = "da4cfc3e540341b84c4bbad705b5a15865bc1f80";
+    hash = "sha256-05tNsZauOXe1L1y1YchzvLZm3xOctPJhHCjyAyRnwy4=";
   };
 
   patches = [ ./strlcpy-glibc-2.38-fix.patch ];
@@ -17,18 +18,17 @@ stdenv.mkDerivation {
 
   makeFlags = [
     "prefix=${placeholder "out"}"
+    "CROSS_COMPILE=${stdenv.cc.targetPrefix}"
+    "ARCH=${stdenv.hostPlatform.linuxArch}"
   ] ++ lib.optionals stdenv.hostPlatform.isAarch64 ([
     "LIBFDT_DIR=${dtc}/lib"
-  ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
-    "CROSS_COMPILE=aarch64-unknown-linux-gnu-"
-    "ARCH=arm64"
   ]);
 
   meta = with lib; {
-    description = "A lightweight tool for hosting KVM guests";
+    description = "Lightweight tool for hosting KVM guests";
     homepage = "https://git.kernel.org/pub/scm/linux/kernel/git/will/kvmtool.git/tree/README";
     license = licenses.gpl2Only;
-    maintainers = with maintainers; [ astro mfrw ];
+    maintainers = with maintainers; [ astro mfrw peigongdsd ];
     platforms = [ "x86_64-linux" "aarch64-linux" ];
     mainProgram = "lkvm";
   };
diff --git a/pkgs/applications/virtualization/lima/bin.nix b/pkgs/applications/virtualization/lima/bin.nix
index 952ec6304e294..ba26d9e6041d5 100644
--- a/pkgs/applications/virtualization/lima/bin.nix
+++ b/pkgs/applications/virtualization/lima/bin.nix
@@ -9,31 +9,31 @@
 }:
 
 let
-  version = "0.21.0";
+  version = "0.22.0";
 
   dist = {
     aarch64-darwin = rec {
       archSuffix = "Darwin-arm64";
       url = "https://github.com/lima-vm/lima/releases/download/v${version}/lima-${version}-${archSuffix}.tar.gz";
-      sha256 = "97a0517ff5d72feb30ff413f5f0ef75e4c07982651bb2f7326fe5faadb0232d9";
+      sha256 = "271e0224d3e678450424abd4e6766a14ea52b146824bf8cfac7a0f486ceb2a0c";
     };
 
     x86_64-darwin = rec {
       archSuffix = "Darwin-x86_64";
       url = "https://github.com/lima-vm/lima/releases/download/v${version}/lima-${version}-${archSuffix}.tar.gz";
-      sha256 = "f4a3a01d0ca13bd1bddf14766f39569bc3e074c7744b54d33e9336b1b55e77c9";
+      sha256 = "f2d331ef783e0bb00e193efc3d5c9438df5d284b1cbac771e5d239c3459b2b3d";
     };
 
     aarch64-linux = rec {
       archSuffix = "Linux-aarch64";
       url = "https://github.com/lima-vm/lima/releases/download/v${version}/lima-${version}-${archSuffix}.tar.gz";
-      sha256 = "6d3f1fe0ef561e1513579a1bf85b04f1bebe73b4c1f03d8683551ece34fecc6a";
+      sha256 = "8c5c6dc21fae19c5645bf8db8f441aeab7fba21fbe882b2b9db58c126d07846b";
     };
 
     x86_64-linux = rec {
       archSuffix = "Linux-x86_64";
       url = "https://github.com/lima-vm/lima/releases/download/v${version}/lima-${version}-${archSuffix}.tar.gz";
-      sha256 = "9a75c8700a988b35986ed6f761f398fdb31d56394a8e2b6801566a86e59b346c";
+      sha256 = "58e66114ae1e991512a86b6952ab3a1ffe0e12e08199a9a3ea13c3d2f24b307e";
     };
   };
 in
@@ -92,14 +92,10 @@ stdenvNoCC.mkDerivation {
       X86_64_LINUX_SHA256=$(cat SHA256SUMS | awk '/Linux-x86_64/{print $1}')
 
       # reset version first so that all platforms are always updated and in sync
-      update-source-version lima-bin 0 ${lib.fakeSha256} --file=${lima-bin} --system=aarch64-darwin
-      update-source-version lima-bin $LATEST_VERSION $AARCH64_DARWIN_SHA256 --file=${lima-bin} --system=aarch64-darwin
-      update-source-version lima-bin 0 ${lib.fakeSha256} --file=${lima-bin} --system=x86_64-darwin
-      update-source-version lima-bin $LATEST_VERSION $X86_64_DARWIN_SHA256 --file=${lima-bin} --system=x86_64-darwin
-      update-source-version lima-bin 0 ${lib.fakeSha256} --file=${lima-bin} --system=aarch64-linux
-      update-source-version lima-bin $LATEST_VERSION $AARCH64_LINUX_SHA256 --file=${lima-bin} --system=aarch64-linux
-      update-source-version lima-bin 0 ${lib.fakeSha256} --file=${lima-bin} --system=x86_64-linux
-      update-source-version lima-bin $LATEST_VERSION $X86_64_LINUX_SHA256 --file=${lima-bin} --system=x86_64-linux
+      update-source-version lima-bin $LATEST_VERSION $AARCH64_DARWIN_SHA256 --file=${lima-bin} --ignore-same-version --system=aarch64-darwin
+      update-source-version lima-bin $LATEST_VERSION $X86_64_DARWIN_SHA256 --file=${lima-bin} --ignore-same-version --system=x86_64-darwin
+      update-source-version lima-bin $LATEST_VERSION $AARCH64_LINUX_SHA256 --file=${lima-bin} --ignore-same-version --system=aarch64-linux
+      update-source-version lima-bin $LATEST_VERSION $X86_64_LINUX_SHA256 --file=${lima-bin} --ignore-same-version --system=x86_64-linux
       rm SHA256SUMS
     '';
 
diff --git a/pkgs/applications/virtualization/lima/default.nix b/pkgs/applications/virtualization/lima/default.nix
index 4da9c50ef7712..c57b58a008b32 100644
--- a/pkgs/applications/virtualization/lima/default.nix
+++ b/pkgs/applications/virtualization/lima/default.nix
@@ -11,16 +11,16 @@
 
 buildGoModule rec {
   pname = "lima";
-  version = "0.21.0";
+  version = "0.22.0";
 
   src = fetchFromGitHub {
     owner = "lima-vm";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-D7HpRM0bYUELNUG8/CMKjowqBJzEJS2unuA5YdRFToo=";
+    sha256 = "sha256-ZX2FSZz9q56zWPSHPvXUOf2lzBupjgdTXgWpH1SBJY8=";
   };
 
-  vendorHash = "sha256-CkXO6d3ricm+CclIByx2SUXlklM5XmEjTgipKP0wCLY=";
+  vendorHash = "sha256-P0Qnfu/cqLveAwz9jf/wTXxkoh0jvazlE5C/PcUrWsA=";
 
   nativeBuildInputs = [ makeWrapper installShellFiles ]
     ++ lib.optionals stdenv.isDarwin [ xcbuild.xcrun sigtool ];
diff --git a/pkgs/applications/virtualization/lkl/default.nix b/pkgs/applications/virtualization/lkl/default.nix
index 9bdb21dffd265..c889dc5ff50af 100644
--- a/pkgs/applications/virtualization/lkl/default.nix
+++ b/pkgs/applications/virtualization/lkl/default.nix
@@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "The Linux kernel as a library";
+    description = "Linux kernel as a library";
     longDescription = ''
       LKL (Linux Kernel Library) aims to allow reusing the Linux kernel code as
       extensively as possible with minimal effort and reduced maintenance
diff --git a/pkgs/applications/virtualization/looking-glass-client/default.nix b/pkgs/applications/virtualization/looking-glass-client/default.nix
index 4b224c745c9fc..a3eaea0cfd787 100644
--- a/pkgs/applications/virtualization/looking-glass-client/default.nix
+++ b/pkgs/applications/virtualization/looking-glass-client/default.nix
@@ -91,7 +91,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A KVM Frame Relay (KVMFR) implementation";
+    description = "KVM Frame Relay (KVMFR) implementation";
     longDescription = ''
       Looking Glass is an open source application that allows the use of a KVM
       (Kernel-based Virtual Machine) configured for VGA PCI Pass-through
diff --git a/pkgs/applications/virtualization/nixpacks/default.nix b/pkgs/applications/virtualization/nixpacks/default.nix
index 6d6fd23717e5f..b32e607032750 100644
--- a/pkgs/applications/virtualization/nixpacks/default.nix
+++ b/pkgs/applications/virtualization/nixpacks/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nixpacks";
-  version = "1.22.0";
+  version = "1.24.1";
 
   src = fetchFromGitHub {
     owner = "railwayapp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-O2A75cjTU72DGrg4PmEogN9aANYKIZWUkXfIJXs7CwA=";
+    sha256 = "sha256-niKz+F1RJtZrE8+BaJwy5bjGS3miJf5C9LttTnC+iuk=";
   };
 
-  cargoHash = "sha256-FS38zqPtmtyV6oSjfxtNMe8n+LMTU1eBN6oX6CGph6k=";
+  cargoHash = "sha256-fzG53DqZKgW6Gen+0ZO9lxgPXkxw7S6OdZWNNI+y9hU=";
 
   # skip test due FHS dependency
   doCheck = false;
diff --git a/pkgs/applications/virtualization/podman-compose/default.nix b/pkgs/applications/virtualization/podman-compose/default.nix
index 29bfbfa781898..bdd585e9c8bc4 100644
--- a/pkgs/applications/virtualization/podman-compose/default.nix
+++ b/pkgs/applications/virtualization/podman-compose/default.nix
@@ -21,7 +21,7 @@ buildPythonApplication rec {
   propagatedBuildInputs = [ pypaBuildHook ];
 
   meta = {
-    description = "An implementation of docker-compose with podman backend";
+    description = "Implementation of docker-compose with podman backend";
     homepage = "https://github.com/containers/podman-compose";
     license = lib.licenses.gpl2Only;
     platforms = lib.platforms.unix;
diff --git a/pkgs/applications/virtualization/podman-tui/default.nix b/pkgs/applications/virtualization/podman-tui/default.nix
index b1ff999cd89c2..0d7947a3f2511 100644
--- a/pkgs/applications/virtualization/podman-tui/default.nix
+++ b/pkgs/applications/virtualization/podman-tui/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "podman-tui";
-  version = "1.0.1";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "podman-tui";
     rev = "v${version}";
-    hash = "sha256-t1vrUXv0ZP+vmOcUIue/yvB34DP+gduopuN0U9oixBQ=";
+    hash = "sha256-my/y2cgF7F0wk5VJKfmqotBrV3HPmRQGPjlSdMe7wXk=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/virtualization/podman/default.nix b/pkgs/applications/virtualization/podman/default.nix
index 1d5cb70e58861..d9c506ae59c47 100644
--- a/pkgs/applications/virtualization/podman/default.nix
+++ b/pkgs/applications/virtualization/podman/default.nix
@@ -65,13 +65,13 @@ let
 in
 buildGoModule rec {
   pname = "podman";
-  version = "5.0.3";
+  version = "5.1.1";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "podman";
     rev = "v${version}";
-    hash = "sha256-PA7mKHPzPDFdwKXAHvHnDvHF+mTmm59jkoeUeiCP6vE=";
+    hash = "sha256-3u4QOX7K0bMcbvwkXVoCpq7p5rKkvmOlOIRSUEbjFOY=";
   };
 
   patches = [
@@ -154,7 +154,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://podman.io/";
-    description = "A program for managing pods, containers and container images";
+    description = "Program for managing pods, containers and container images";
     longDescription = ''
       Podman (the POD MANager) is a tool for managing containers and images, volumes mounted into those containers, and pods made from groups of containers. Podman runs containers on Linux, but can also be used on Mac and Windows systems using a Podman-managed virtual machine. Podman is based on libpod, a library for container lifecycle management that is also contained in this repository. The libpod library provides APIs for managing containers, pods, container images, and volumes.
 
diff --git a/pkgs/applications/virtualization/pods/default.nix b/pkgs/applications/virtualization/pods/default.nix
index 8ab4377807059..65fb88824497f 100644
--- a/pkgs/applications/virtualization/pods/default.nix
+++ b/pkgs/applications/virtualization/pods/default.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A podman desktop application";
+    description = "Podman desktop application";
     homepage = "https://github.com/marhkb/pods";
     changelog = "https://github.com/marhkb/pods/releases/tag/v${version}";
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/virtualization/qboot/default.nix b/pkgs/applications/virtualization/qboot/default.nix
index 985f7e469e3ea..f5a1e13410b98 100644
--- a/pkgs/applications/virtualization/qboot/default.nix
+++ b/pkgs/applications/virtualization/qboot/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
   passthru.tests = { qboot = nixosTests.qboot; };
 
   meta = {
-    description = "A simple x86 firmware for booting Linux";
+    description = "Simple x86 firmware for booting Linux";
     homepage = "https://github.com/bonzini/qboot";
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [ ];
diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix
index 2f87cb4a473bd..982eee2cbb1fc 100644
--- a/pkgs/applications/virtualization/qemu/default.nix
+++ b/pkgs/applications/virtualization/qemu/default.nix
@@ -55,11 +55,11 @@ stdenv.mkDerivation (finalAttrs: {
     + lib.optionalString hostCpuOnly "-host-cpu-only"
     + lib.optionalString nixosTestRunner "-for-vm-tests"
     + lib.optionalString toolsOnly "-utils";
-  version = "8.2.4";
+  version = "9.0.1";
 
   src = fetchurl {
     url = "https://download.qemu.org/qemu-${finalAttrs.version}.tar.xz";
-    hash = "sha256-7PVTf+q5JkG5nXSC9VHyGV06W9NKzvnVK/v/NTpgc5c=";
+    hash = "sha256-0PTbD70VHAzxb4SusqUA9ulQCXMlRvRNr6uNIEm7uAU=";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ]
@@ -76,7 +76,7 @@ stdenv.mkDerivation (finalAttrs: {
     ++ lib.optionals hexagonSupport [ glib ]
     ++ lib.optionals stdenv.isDarwin [ sigtool ];
 
-  buildInputs = [ zlib glib pixman
+  buildInputs = [ dtc zlib glib pixman
     vde2 texinfo lzo snappy libtasn1
     gnutls nettle curl libslirp
   ]
@@ -124,11 +124,9 @@ stdenv.mkDerivation (finalAttrs: {
     # Cocoa clipboard support only works on macOS 10.14+
     ./revert-ui-cocoa-add-clipboard-support.patch
     # Standard about panel requires AppKit and macOS 10.13+
-    (fetchpatch {
-      url = "https://gitlab.com/qemu-project/qemu/-/commit/99eb313ddbbcf73c1adcdadceba1423b691c6d05.diff";
-      sha256 = "sha256-gTRf9XENAfbFB3asYCXnw4OV4Af6VE1W56K2xpYDhgM=";
-      revert = true;
-    })
+    ./revert-ui-cocoa-use-the-standard-about-panel.patch
+    # Safe area insets require macOS 11+
+    ./remove-ui-cocoa-use-safe-area-insets.patch
     # Workaround for upstream issue with nested virtualisation: https://gitlab.com/qemu-project/qemu/-/issues/1008
     (fetchpatch {
       url = "https://gitlab.com/qemu-project/qemu/-/commit/3e4546d5bd38a1e98d4bd2de48631abf0398a3a2.diff";
@@ -239,6 +237,10 @@ stdenv.mkDerivation (finalAttrs: {
     # get-fsinfo attempts to access block devices, disallowed by sandbox
     sed -i -e '/\/qga\/get-fsinfo/d' -e '/\/qga\/blacklist/d' \
       ../tests/unit/test-qga.c
+
+    # xattrs are not allowed in the sandbox
+    substituteInPlace ../tests/qtest/virtio-9p-test.c \
+      --replace-fail mapped-xattr mapped-file
   '' + lib.optionalString stdenv.isDarwin ''
     # skip test that stalls on darwin, perhaps due to subtle differences
     # in fifo behaviour
@@ -270,7 +272,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://www.qemu.org/";
-    description = "A generic and open source machine emulator and virtualizer";
+    description = "Generic and open source machine emulator and virtualizer";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ eelco qyliss ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/virtualization/qemu/remove-ui-cocoa-use-safe-area-insets.patch b/pkgs/applications/virtualization/qemu/remove-ui-cocoa-use-safe-area-insets.patch
new file mode 100644
index 0000000000000..2a8430afaa705
--- /dev/null
+++ b/pkgs/applications/virtualization/qemu/remove-ui-cocoa-use-safe-area-insets.patch
@@ -0,0 +1,14 @@
+diff --git a/ui/cocoa.m b/ui/cocoa.m
+index 25e0db9dd0..7ce889d798 100644
+--- a/ui/cocoa.m
++++ b/ui/cocoa.m
+@@ -539,9 +539,6 @@ - (NSSize)fixAspectRatio:(NSSize)max
+ - (NSSize) screenSafeAreaSize
+ {
+     NSSize size = [[[self window] screen] frame].size;
+-    NSEdgeInsets insets = [[[self window] screen] safeAreaInsets];
+-    size.width -= insets.left + insets.right;
+-    size.height -= insets.top + insets.bottom;
+     return size;
+ }
+ 
diff --git a/pkgs/applications/virtualization/qemu/revert-ui-cocoa-add-clipboard-support.patch b/pkgs/applications/virtualization/qemu/revert-ui-cocoa-add-clipboard-support.patch
index d0e511c0403d7..c429bce03dcf6 100644
--- a/pkgs/applications/virtualization/qemu/revert-ui-cocoa-add-clipboard-support.patch
+++ b/pkgs/applications/virtualization/qemu/revert-ui-cocoa-add-clipboard-support.patch
@@ -47,7 +47,7 @@ index 660d3e0935..0e6760c360 100644
 -static QemuClipboardInfo *cbinfo;
 -static QemuEvent cbevent;
 -
- // Utility functions to run specified code block with iothread lock held
+ // Utility functions to run specified code block with the BQL held
  typedef void (^CodeBlock)(void);
  typedef bool (^BoolCodeBlock)(void);
 @@ -1799,107 +1794,6 @@ static void addRemovableDevicesMenuItems(void)
@@ -65,7 +65,7 @@ index 660d3e0935..0e6760c360 100644
 -        return;
 -    }
 -
--    with_iothread_lock(^{
+-    with_bql(^{
 -        QemuClipboardInfo *info = qemu_clipboard_info_ref(cbinfo);
 -        qemu_event_reset(&cbevent);
 -        qemu_clipboard_request(info, QEMU_CLIPBOARD_TYPE_TEXT);
@@ -73,9 +73,9 @@ index 660d3e0935..0e6760c360 100644
 -        while (info == cbinfo &&
 -               info->types[QEMU_CLIPBOARD_TYPE_TEXT].available &&
 -               info->types[QEMU_CLIPBOARD_TYPE_TEXT].data == NULL) {
--            qemu_mutex_unlock_iothread();
+-            bql_unlock();
 -            qemu_event_wait(&cbevent);
--            qemu_mutex_lock_iothread();
+-            bql_lock();
 -        }
 -
 -        if (info == cbinfo) {
@@ -186,9 +186,9 @@ index 660d3e0935..0e6760c360 100644
  }
  
 @@ -2071,12 +1952,6 @@ static void cocoa_display_init(DisplayState *ds, DisplayOptions *opts)
- 
      // register vga output callbacks
      register_displaychangelistener(&dcl);
+     [cocoaView updateUIInfo];
 -
 -    qemu_event_init(&cbevent, false);
 -    cbowner = [[QemuCocoaPasteboardTypeOwner alloc] init];
diff --git a/pkgs/applications/virtualization/qemu/revert-ui-cocoa-use-the-standard-about-panel.patch b/pkgs/applications/virtualization/qemu/revert-ui-cocoa-use-the-standard-about-panel.patch
new file mode 100644
index 0000000000000..08620da3b9632
--- /dev/null
+++ b/pkgs/applications/virtualization/qemu/revert-ui-cocoa-use-the-standard-about-panel.patch
@@ -0,0 +1,145 @@
+diff --git a/ui/cocoa.m b/ui/cocoa.m
+index 25e0db9dd0..4af0712036 100644
+--- a/ui/cocoa.m
++++ b/ui/cocoa.m
+@@ -93,6 +93,7 @@ static void cocoa_switch(DisplayChangeListener *dcl,
+ 
+ static void cocoa_refresh(DisplayChangeListener *dcl);
+ 
++static NSWindow *about_window;
+ static const DisplayChangeListenerOps dcl_ops = {
+     .dpy_name          = "cocoa",
+     .dpy_gfx_update = cocoa_update,
+@@ -1180,6 +1181,7 @@ - (void)changeDeviceMedia:(id)sender;
+ - (BOOL)verifyQuit;
+ - (void)openDocumentation:(NSString *)filename;
+ - (IBAction) do_about_menu_item: (id) sender;
++- (void)make_about_window;
+ - (void)adjustSpeed:(id)sender;
+ @end
+ 
+@@ -1227,6 +1229,8 @@ - (id) init
+         [pauseLabel setFont: [NSFont fontWithName: @"Helvetica" size: 90]];
+         [pauseLabel setTextColor: [NSColor blackColor]];
+         [pauseLabel sizeToFit];
++
++        [self make_about_window];
+     }
+     return self;
+ }
+@@ -1549,29 +1553,92 @@ - (BOOL)verifyQuit
+ /* The action method for the About menu item */
+ - (IBAction) do_about_menu_item: (id) sender
+ {
+-    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+-    char *icon_path_c = get_relocated_path(CONFIG_QEMU_ICONDIR "/hicolor/512x512/apps/qemu.png");
+-    NSString *icon_path = [NSString stringWithUTF8String:icon_path_c];
+-    g_free(icon_path_c);
+-    NSImage *icon = [[NSImage alloc] initWithContentsOfFile:icon_path];
+-    NSString *version = @"QEMU emulator version " QEMU_FULL_VERSION;
+-    NSString *copyright = @QEMU_COPYRIGHT;
+-    NSDictionary *options;
+-    if (icon) {
+-        options = @{
+-            NSAboutPanelOptionApplicationIcon : icon,
+-            NSAboutPanelOptionApplicationVersion : version,
+-            @"Copyright" : copyright,
+-        };
+-        [icon release];
+-    } else {
+-        options = @{
+-            NSAboutPanelOptionApplicationVersion : version,
+-            @"Copyright" : copyright,
+-        };
+-    }
+-    [NSApp orderFrontStandardAboutPanelWithOptions:options];
+-    [pool release];
++    [about_window makeKeyAndOrderFront: nil];
++}
++
++/* Create and display the about dialog */
++- (void)make_about_window
++{
++    /* Make the window */
++    int x = 0, y = 0, about_width = 400, about_height = 200;
++    NSRect window_rect = NSMakeRect(x, y, about_width, about_height);
++    about_window = [[NSWindow alloc] initWithContentRect:window_rect
++                    styleMask:NSWindowStyleMaskTitled | NSWindowStyleMaskClosable |
++                    NSWindowStyleMaskMiniaturizable
++                    backing:NSBackingStoreBuffered
++                    defer:NO];
++    [about_window setTitle: @"About"];
++    [about_window setReleasedWhenClosed: NO];
++    [about_window center];
++    NSView *superView = [about_window contentView];
++
++    /* Create the dimensions of the picture */
++    int picture_width = 80, picture_height = 80;
++    x = (about_width - picture_width)/2;
++    y = about_height - picture_height - 10;
++    NSRect picture_rect = NSMakeRect(x, y, picture_width, picture_height);
++
++    /* Make the picture of QEMU */
++    NSImageView *picture_view = [[NSImageView alloc] initWithFrame:
++                                                     picture_rect];
++    char *qemu_image_path_c = get_relocated_path(CONFIG_QEMU_ICONDIR "/hicolor/512x512/apps/qemu.png");
++    NSString *qemu_image_path = [NSString stringWithUTF8String:qemu_image_path_c];
++    g_free(qemu_image_path_c);
++    NSImage *qemu_image = [[NSImage alloc] initWithContentsOfFile:qemu_image_path];
++    [picture_view setImage: qemu_image];
++    [picture_view setImageScaling: NSImageScaleProportionallyUpOrDown];
++    [superView addSubview: picture_view];
++
++    /* Make the name label */
++    NSBundle *bundle = [NSBundle mainBundle];
++    if (bundle) {
++        x = 0;
++        y = y - 25;
++        int name_width = about_width, name_height = 20;
++        NSRect name_rect = NSMakeRect(x, y, name_width, name_height);
++        NSTextField *name_label = [[NSTextField alloc] initWithFrame: name_rect];
++        [name_label setEditable: NO];
++        [name_label setBezeled: NO];
++        [name_label setDrawsBackground: NO];
++        [name_label setAlignment: NSTextAlignmentCenter];
++        NSString *qemu_name = [[bundle executablePath] lastPathComponent];
++        [name_label setStringValue: qemu_name];
++        [superView addSubview: name_label];
++    }
++
++    /* Set the version label's attributes */
++    x = 0;
++    y = 50;
++    int version_width = about_width, version_height = 20;
++    NSRect version_rect = NSMakeRect(x, y, version_width, version_height);
++    NSTextField *version_label = [[NSTextField alloc] initWithFrame:
++                                                      version_rect];
++    [version_label setEditable: NO];
++    [version_label setBezeled: NO];
++    [version_label setAlignment: NSTextAlignmentCenter];
++    [version_label setDrawsBackground: NO];
++
++    /* Create the version string*/
++    NSString *version_string;
++    version_string = [[NSString alloc] initWithFormat:
++    @"QEMU emulator version %s", QEMU_FULL_VERSION];
++    [version_label setStringValue: version_string];
++    [superView addSubview: version_label];
++
++    /* Make copyright label */
++    x = 0;
++    y = 35;
++    int copyright_width = about_width, copyright_height = 20;
++    NSRect copyright_rect = NSMakeRect(x, y, copyright_width, copyright_height);
++    NSTextField *copyright_label = [[NSTextField alloc] initWithFrame:
++                                                        copyright_rect];
++    [copyright_label setEditable: NO];
++    [copyright_label setBezeled: NO];
++    [copyright_label setDrawsBackground: NO];
++    [copyright_label setAlignment: NSTextAlignmentCenter];
++    [copyright_label setStringValue: [NSString stringWithFormat: @"%s",
++                                     QEMU_COPYRIGHT]];
++    [superView addSubview: copyright_label];
+ }
+ 
+ /* Used by the Speed menu items */
diff --git a/pkgs/applications/virtualization/quickgui/default.nix b/pkgs/applications/virtualization/quickgui/default.nix
index f4420c6aeac3e..244e438626e0a 100644
--- a/pkgs/applications/virtualization/quickgui/default.nix
+++ b/pkgs/applications/virtualization/quickgui/default.nix
@@ -55,7 +55,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Flutter frontend for quickemu";
+    description = "Flutter frontend for quickemu";
     homepage = "https://github.com/quickemu-project/quickgui";
     changelog = "https://github.com/quickemu-project/quickgui/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/applications/virtualization/runc/default.nix b/pkgs/applications/virtualization/runc/default.nix
index 71ff22032cb5e..0a9a802f70f37 100644
--- a/pkgs/applications/virtualization/runc/default.nix
+++ b/pkgs/applications/virtualization/runc/default.nix
@@ -14,13 +14,13 @@
 
 buildGoModule rec {
   pname = "runc";
-  version = "1.1.12";
+  version = "1.1.13";
 
   src = fetchFromGitHub {
     owner = "opencontainers";
     repo = "runc";
     rev = "v${version}";
-    hash = "sha256-N77CU5XiGYIdwQNPFyluXjseTeaYuNJ//OsEUS0g/v0=";
+    hash = "sha256-RQsM8Q7HogDVGbNpen3wxXNGR9lfqmNhkXTRoC+LBk8=";
   };
 
   vendorHash = null;
@@ -52,7 +52,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/opencontainers/runc";
-    description = "A CLI tool for spawning and running containers according to the OCI specification";
+    description = "CLI tool for spawning and running containers according to the OCI specification";
     license = licenses.asl20;
     maintainers = with maintainers; [ offline ] ++ teams.podman.members;
     platforms = platforms.linux;
diff --git a/pkgs/applications/virtualization/rust-hypervisor-firmware/default.nix b/pkgs/applications/virtualization/rust-hypervisor-firmware/default.nix
index 1a36aa8fd6c05..8b408cc96ed4b 100644
--- a/pkgs/applications/virtualization/rust-hypervisor-firmware/default.nix
+++ b/pkgs/applications/virtualization/rust-hypervisor-firmware/default.nix
@@ -17,8 +17,8 @@ let
   cross = import ../../../.. {
     system = hostPlatform.system;
     crossSystem = lib.systems.examples."${arch}-embedded" // {
-      rustc.config = "${arch}-unknown-none";
-      rustc.platform = lib.importJSON target;
+      rust.rustcTarget = "${arch}-unknown-none";
+      rust.platform = lib.importJSON target;
     };
   };
 
@@ -56,7 +56,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/cloud-hypervisor/rust-hypervisor-firmware";
-    description = "A simple firmware that is designed to be launched from anything that supports loading ELF binaries and running them with the PVH booting standard";
+    description = "Simple firmware that is designed to be launched from anything that supports loading ELF binaries and running them with the PVH booting standard";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ astro ];
     platforms = [ "x86_64-none" ];
diff --git a/pkgs/applications/virtualization/rvvm/default.nix b/pkgs/applications/virtualization/rvvm/default.nix
index 718446d1ce1f6..ce90b686bcb0f 100644
--- a/pkgs/applications/virtualization/rvvm/default.nix
+++ b/pkgs/applications/virtualization/rvvm/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/LekKit/RVVM";
-    description = "The RISC-V Virtual Machine";
+    description = "RISC-V Virtual Machine";
     license = with licenses; [ gpl3 /* or */ mpl20 ];
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ kamillaova ];
diff --git a/pkgs/applications/virtualization/sail-riscv/default.nix b/pkgs/applications/virtualization/sail-riscv/default.nix
index 9a1f650132fda..cda1f5d6cb20f 100644
--- a/pkgs/applications/virtualization/sail-riscv/default.nix
+++ b/pkgs/applications/virtualization/sail-riscv/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/riscv/sail-riscv";
-    description = "A formal specification of the RISC-V architecture, written in Sail";
+    description = "Formal specification of the RISC-V architecture, written in Sail";
     maintainers = with maintainers; [ genericnerdyusername ];
     broken = stdenv.isDarwin && stdenv.isAarch64;
     license = licenses.bsd2;
diff --git a/pkgs/applications/virtualization/singularity/generic.nix b/pkgs/applications/virtualization/singularity/generic.nix
index da7c8accf873a..f27f58fda4876 100644
--- a/pkgs/applications/virtualization/singularity/generic.nix
+++ b/pkgs/applications/virtualization/singularity/generic.nix
@@ -44,6 +44,7 @@ in
   gpgme,
   libseccomp,
   libuuid,
+  mount,
   # This is for nvidia-container-cli
   nvidia-docker,
   openssl,
@@ -79,6 +80,20 @@ in
   externalLocalStateDir ? null,
   # Remove the symlinks to `singularity*` when projectName != "singularity"
   removeCompat ? false,
+  # The defaultPath values to substitute in each source files.
+  #
+  # `defaultPath` are PATH variables hard-coded inside Apptainer/Singularity
+  # binaries to search for third-party utilities, as a hardening for
+  # `$out/bin/starter-suid`.
+  #
+  # The upstream provided values are suitable for FHS-conformant environment.
+  # We substitute them and insert Nixpkgs-specific values.
+  #
+  # Example:
+  # {
+  #   "path/to/source/file1" = [ "<originalDefaultPath11>" "<originalDefaultPath12>" ... ];
+  # }
+  sourceFilesWithDefaultPaths ? { },
   # Workaround #86349
   # should be removed when the issue is resolved
   vendorHash ? _defaultGoVendorArgs.vendorHash,
@@ -87,7 +102,6 @@ in
 }:
 
 let
-  defaultPathOriginal = "/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin";
   privileged-un-utils =
     if ((newuidmapPath == null) && (newgidmapPath == null)) then
       null
@@ -97,6 +111,12 @@ let
         ln -s ${lib.escapeShellArg newuidmapPath} "$out/bin/newuidmap"
         ln -s ${lib.escapeShellArg newgidmapPath} "$out/bin/newgidmap"
       '');
+
+  concatMapStringAttrsSep =
+    sep: f: attrs:
+    lib.concatMapStringsSep sep (name: f name attrs.${name}) (lib.attrNames attrs);
+
+  addShellDoubleQuotes = s: lib.escapeShellArg ''"'' + s + lib.escapeShellArg ''"'';
 in
 (buildGoModule {
   inherit pname version src;
@@ -185,6 +205,7 @@ in
     fakeroot
     fuse2fs # Mount ext3 filesystems
     go
+    mount # mount
     privileged-un-utils
     squashfsTools # mksquashfs unsquashfs # Make / unpack squashfs image
     squashfuse # squashfuse_ll squashfuse # Mount (without unpacking) a squashfs image without privileges
@@ -199,8 +220,19 @@ in
     patchShebangs --build "$configureScript" makeit e2e scripts mlocal/scripts
 
     # Patching the hard-coded defaultPath by prefixing the packages in defaultPathInputs
-    substituteInPlace cmd/internal/cli/actions.go \
-      --replace "defaultPath = \"${defaultPathOriginal}\"" "defaultPath = \"''${defaultPathInputs// /\/bin:}''${defaultPathInputs:+/bin:}${defaultPathOriginal}\""
+    ${concatMapStringAttrsSep "\n" (fileName: originalDefaultPaths: ''
+      substituteInPlace ${lib.escapeShellArg fileName} \
+        ${
+          lib.concatMapStringsSep " \\\n  " (
+            originalDefaultPath:
+            lib.concatStringsSep " " [
+              "--replace-fail"
+              (addShellDoubleQuotes (lib.escapeShellArg originalDefaultPath))
+              (addShellDoubleQuotes ''$inputsDefaultPath''${inputsDefaultPath:+:}${lib.escapeShellArg originalDefaultPath}'')
+            ]
+          ) originalDefaultPaths
+        }
+    '') sourceFilesWithDefaultPaths}
 
     substituteInPlace internal/pkg/util/gpu/nvidia.go \
       --replace \
@@ -236,7 +268,7 @@ in
     substituteInPlace "$out/bin/run-singularity" \
       --replace "/usr/bin/env ${projectName}" "$out/bin/${projectName}"
     wrapProgram "$out/bin/${projectName}" \
-      --prefix PATH : "''${defaultPathInputs// /\/bin:}''${defaultPathInputs:+/bin:}"
+      --prefix PATH : "$inputsDefaultPath"
     # Make changes in the config file
     ${lib.optionalString forceNvcCli ''
       substituteInPlace "$out/etc/${projectName}/${projectName}.conf" \
@@ -294,7 +326,9 @@ in
 }).overrideAttrs
   (
     finalAttrs: prevAttrs: {
+      inputsDefaultPath = lib.makeBinPath finalAttrs.defaultPathInputs;
       passthru = prevAttrs.passthru or { } // {
+        inherit sourceFilesWithDefaultPaths;
         tests = {
           image-hello-cowsay = singularity-tools.buildImage {
             name = "hello-cowsay";
diff --git a/pkgs/applications/virtualization/singularity/packages.nix b/pkgs/applications/virtualization/singularity/packages.nix
index 8711ab197fa71..f03bdf9631c56 100644
--- a/pkgs/applications/virtualization/singularity/packages.nix
+++ b/pkgs/applications/virtualization/singularity/packages.nix
@@ -9,20 +9,20 @@ let
     callPackage
       (import ./generic.nix rec {
         pname = "apptainer";
-        version = "1.3.1";
+        version = "1.3.2";
         projectName = "apptainer";
 
         src = fetchFromGitHub {
           owner = "apptainer";
           repo = "apptainer";
           rev = "refs/tags/v${version}";
-          hash = "sha256-XhJecINx8jC6pRzIoM4nC6Aunj40xL8EmYIA4UizfAY=";
+          hash = "sha256-NseigaPmRKDsBk8v7RpYf+uoEGvQHVnqOMO49kP0mQ8=";
         };
 
         # Update by running
         # nix-prefetch -E "{ sha256 }: ((import ./. { }).apptainer.override { vendorHash = sha256; }).goModules"
         # at the root directory of the Nixpkgs repository
-        vendorHash = "sha256-MXW1U13uDRAx4tqZvqsuJvoD22nEL2gcxiGaa/6zwU0=";
+        vendorHash = "sha256-W853++SSvkAYYUczbl8vnoBQZnimUdsAEXp4MCkLPBU=";
 
         extraDescription = " (previously known as Singularity)";
         extraMeta.homepage = "https://apptainer.org";
@@ -35,6 +35,12 @@ let
         # when building on a system with disabled unprivileged namespace.
         # See https://github.com/NixOS/nixpkgs/pull/215690#issuecomment-1426954601
         defaultToSuid = null;
+
+        sourceFilesWithDefaultPaths = {
+          "cmd/internal/cli/actions.go" = [ "/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin" ];
+          "e2e/env/env.go" = [ "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" ];
+          "internal/pkg/util/env/env.go" = [ "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" ];
+        };
       };
 
   singularity =
@@ -71,6 +77,14 @@ let
         # on UNIX-like platforms,
         # and only have --without-suid but not --with-suid.
         defaultToSuid = true;
+
+        sourceFilesWithDefaultPaths = {
+          "cmd/internal/cli/actions.go" = [ "/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin" ];
+          "e2e/env/env.go" = [ "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" ];
+          "internal/pkg/util/env/clean.go" = [
+            "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
+          ];
+        };
       };
 
   genOverridenNixos =
diff --git a/pkgs/applications/virtualization/spike/default.nix b/pkgs/applications/virtualization/spike/default.nix
index 29597860ecc70..1712685048115 100644
--- a/pkgs/applications/virtualization/spike/default.nix
+++ b/pkgs/applications/virtualization/spike/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = with lib; {
-    description = "A RISC-V ISA Simulator";
+    description = "RISC-V ISA Simulator";
     homepage = "https://github.com/riscv/riscv-isa-sim";
     license = licenses.bsd3;
     platforms = [ "x86_64-linux" "aarch64-linux" ];
diff --git a/pkgs/applications/virtualization/tart/default.nix b/pkgs/applications/virtualization/tart/default.nix
index 921a8b7e3dbc9..d0f2f3a0127e1 100644
--- a/pkgs/applications/virtualization/tart/default.nix
+++ b/pkgs/applications/virtualization/tart/default.nix
@@ -10,11 +10,11 @@
 }:
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "tart";
-  version = "2.10.0";
+  version = "2.12.0";
 
   src = fetchurl {
       url = "https://github.com/cirruslabs/tart/releases/download/${finalAttrs.version}/tart-arm64.tar.gz";
-      hash = "sha256-9spBDqNm47nUZEGCCOfISjNpGx/22OtPPheB7iJTq1A=";
+      hash = "sha256-+33Z7M9Y8fWFfCBNJrXHljwoAn7p70+yvTmBwx1X68M=";
   };
   sourceRoot = ".";
 
@@ -39,7 +39,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
     description = "macOS VMs on Apple Silicon to use in CI and other automations";
     homepage = "https://tart.run";
     license = licenses.fairsource09;
-    maintainers = with maintainers; [ emilytrau Enzime ];
+    maintainers = with maintainers; [ emilytrau Enzime aduh95 ];
     mainProgram = finalAttrs.pname;
     platforms = [ "aarch64-darwin" ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/applications/virtualization/tini/default.nix b/pkgs/applications/virtualization/tini/default.nix
index 9eeb8134f5958..72d6ecb059452 100644
--- a/pkgs/applications/virtualization/tini/default.nix
+++ b/pkgs/applications/virtualization/tini/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
-    description = "A tiny but valid init for containers";
+    description = "Tiny but valid init for containers";
     homepage = "https://github.com/krallin/tini";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/applications/virtualization/virt-manager/default.nix b/pkgs/applications/virtualization/virt-manager/default.nix
index 3cbc285076fee..c8bedb1e95690 100644
--- a/pkgs/applications/virtualization/virt-manager/default.nix
+++ b/pkgs/applications/virtualization/virt-manager/default.nix
@@ -28,6 +28,11 @@ python3.pkgs.buildPythonApplication rec {
       url = "https://github.com/virt-manager/virt-manager/commit/83fcc5b2e8f2cede84564387756fe8971de72188.patch";
       hash = "sha256-yEk+md5EkwYpP27u3E+oTJ8thgtH2Uy1x3JIWPBhqeE=";
     })
+    # fix crash with some cursor themes
+    (fetchpatch {
+      url = "https://github.com/virt-manager/virt-manager/commit/cc4a39ea94f42bc92765eb3bb56e2b7f9198be67.patch";
+      hash = "sha256-dw6yrMaAOnTh8Z6xJQQKmYelOkOl6EBAOfJQU9vQ8Ws=";
+    })
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/virtualization/virt-manager/qt.nix b/pkgs/applications/virtualization/virt-manager/qt.nix
index 840ada805d751..103d0a3f4fbb3 100644
--- a/pkgs/applications/virtualization/virt-manager/qt.nix
+++ b/pkgs/applications/virtualization/virt-manager/qt.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchFromGitHub, fetchpatch, cmake, pkg-config
+{ mkDerivation, lib, fetchFromGitHub, cmake, pkg-config
 , qtbase, qtmultimedia, qtsvg, qttools, krdc
 , libvncserver, libvirt, pcre, pixman, qtermwidget, spice-gtk, spice-protocol
 , libselinux, libsepol, util-linux
@@ -6,13 +6,13 @@
 
 mkDerivation rec {
   pname = "virt-manager-qt";
-  version = "0.72.97";
+  version = "0.72.99";
 
   src = fetchFromGitHub {
     owner  = "F1ash";
     repo   = "qt-virt-manager";
     rev    = version;
-    sha256 = "0b2bx7ah35glcsiv186sc9cqdrkhg1vs9jz036k9byk61np0cb1i";
+    hash   = "sha256-1aXlGlK+YPOe2X51xycWvSu8YC9uCywyL6ItiScFA04=";
   };
 
   cmakeFlags = [
@@ -20,14 +20,6 @@ mkDerivation rec {
     "-DQTERMWIDGET_INCLUDE_DIRS=${qtermwidget}/include/qtermwidget5"
   ];
 
-  patches = [
-    (fetchpatch {
-      # drop with next update
-      url = "https://github.com/F1ash/qt-virt-manager/commit/0d338b037ef58c376d468c1cd4521a34ea181edd.patch";
-      sha256 = "1wjqyc5wsnxfwwjzgqjr9hcqhd867amwhjd712qyvpvz8x7p2s24";
-    })
-  ];
-
   buildInputs = [
     qtbase qtmultimedia qtsvg krdc
     libvirt libvncserver pcre pixman qtermwidget spice-gtk spice-protocol
diff --git a/pkgs/applications/virtualization/virt-top/default.nix b/pkgs/applications/virtualization/virt-top/default.nix
index 5ad60bf7d080f..496cd36cdfe38 100644
--- a/pkgs/applications/virtualization/virt-top/default.nix
+++ b/pkgs/applications/virtualization/virt-top/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A top-like utility for showing stats of virtualized domains";
+    description = "Top-like utility for showing stats of virtualized domains";
     homepage = "https://people.redhat.com/~rjones/virt-top/";
     license = licenses.gpl2Only;
     maintainers = [ ];
diff --git a/pkgs/applications/virtualization/virt-viewer/default.nix b/pkgs/applications/virtualization/virt-viewer/default.nix
index b0bf423605f37..8c621271e757a 100644
--- a/pkgs/applications/virtualization/virt-viewer/default.nix
+++ b/pkgs/applications/virtualization/virt-viewer/default.nix
@@ -100,7 +100,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A viewer for remote virtual machines";
+    description = "Viewer for remote virtual machines";
     maintainers = with maintainers; [ raskin atemu ];
     platforms = with platforms; linux ++ darwin;
     license = licenses.gpl2;
diff --git a/pkgs/applications/virtualization/virter/default.nix b/pkgs/applications/virtualization/virter/default.nix
index a36f6b1cc91df..18fd9ad2f35a2 100644
--- a/pkgs/applications/virtualization/virter/default.nix
+++ b/pkgs/applications/virtualization/virter/default.nix
@@ -28,7 +28,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = {
-    description = "A command line tool for simple creation and cloning of virtual machines based on libvirt";
+    description = "Command line tool for simple creation and cloning of virtual machines based on libvirt";
     homepage = "https://github.com/LINBIT/virter";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ dit7ya ];
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index 3a9179b89d06b..dd9b99f7f9bc9 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -4,12 +4,12 @@
 , qttools, qtsvg, qtwayland, pkg-config, which, docbook_xsl, docbook_xml_dtd_43
 , alsa-lib, curl, libvpx, nettools, dbus, substituteAll, gsoap, zlib, xz
 , yasm, glslang
-, linuxPackages
 , nixosTests
 # If open-watcom-bin is not passed, VirtualBox will fall back to use
 # the shipped alternative sources (assembly).
 , open-watcom-bin
 , makeself, perl
+, vulkan-loader
 , javaBindings ? true, jdk # Almost doesn't affect closure size
 , pythonBindings ? false, python3
 , extensionPack ? null, fakeroot
@@ -28,26 +28,32 @@ assert enableKvm -> !enableHardening;
 # The web services use Java infrastructure.
 assert enableWebService -> javaBindings;
 
-with lib;
-
 let
   buildType = "release";
   # Use maintainers/scripts/update.nix to update the version and all related hashes or
   # change the hashes in extpack.nix and guest-additions/default.nix as well manually.
-  version = "7.0.14";
+  virtualboxVersion = "7.0.18";
+  virtualboxSha256 = "d999513533631674a024762668de999411d8197060c51e68c5faf0a2c0eea1a5";
+
+  kvmPatchVersion = "20240515";
+  kvmPatchHash = "sha256-Kh/tlPScdf7CbEEpL54iqMpeUIdmnJL2r/mxnlEzLd0=";
 
   # The KVM build is not compatible to VirtualBox's kernel modules. So don't export
   # modsrc at all.
   withModsrc = !enableKvm;
 
   virtualboxGuestAdditionsIso = callPackage guest-additions-iso/default.nix { };
-in stdenv.mkDerivation {
+
+  inherit (lib) optional optionals optionalString getDev getLib;
+in stdenv.mkDerivation (finalAttrs: {
   pname = "virtualbox";
-  inherit version;
+  version = finalAttrs.virtualboxVersion;
+
+  inherit buildType virtualboxVersion virtualboxSha256 kvmPatchVersion kvmPatchHash virtualboxGuestAdditionsIso;
 
   src = fetchurl {
-    url = "https://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
-    sha256 = "45860d834804a24a163c1bb264a6b1cb802a5bc7ce7e01128072f8d6a4617ca9";
+    url = "https://download.virtualbox.org/virtualbox/${finalAttrs.virtualboxVersion}/VirtualBox-${finalAttrs.virtualboxVersion}.tar.bz2";
+    sha256 = finalAttrs.virtualboxSha256;
   };
 
   outputs = [ "out" ] ++ optional withModsrc "modsrc";
@@ -74,7 +80,7 @@ in stdenv.mkDerivation {
   prePatch = ''
     set -x
     sed -e 's@MKISOFS --version@MKISOFS -version@' \
-        -e 's@PYTHONDIR=.*@PYTHONDIR=${lib.optionalString pythonBindings python3}@' \
+        -e 's@PYTHONDIR=.*@PYTHONDIR=${optionalString pythonBindings python3}@' \
         -e 's@CXX_FLAGS="\(.*\)"@CXX_FLAGS="-std=c++11 \1"@' \
         ${optionalString (!headless) ''
         -e 's@TOOLQT5BIN=.*@TOOLQT5BIN="${getDev qtbase}/bin"@' \
@@ -103,7 +109,7 @@ in stdenv.mkDerivation {
      # No update patch disables check for update function
      # https://bugs.launchpad.net/ubuntu/+source/virtualbox-ose/+bug/272212
      (fetchpatch {
-       url = "https://salsa.debian.org/pkg-virtualbox-team/virtualbox/-/raw/debian/${version}-dfsg-1/debian/patches/16-no-update.patch";
+       url = "https://salsa.debian.org/pkg-virtualbox-team/virtualbox/-/raw/debian/7.0.14-dfsg-1/debian/patches/16-no-update.patch";
        hash = "sha256-UJHpuB6QB/BbxJorlqZXUF12lgq8gbLMRHRMsbyqRpY=";
      })]
   ++ [ ./extra_symbols.patch ]
@@ -120,29 +126,20 @@ in stdenv.mkDerivation {
   })
      # While the KVM patch should not break any other behavior if --with-kvm is not specified,
      # we don't take any chances and only apply it if people actually want to use KVM support.
-  ++ optional enableKvm (fetchpatch
-    (let
-      patchVersion = "20240502";
-    in {
-      name = "virtualbox-${version}-kvm-dev-${patchVersion}.patch";
-      url = "https://github.com/cyberus-technology/virtualbox-kvm/releases/download/dev-${patchVersion}/kvm-backend-${version}-dev-${patchVersion}.patch";
-      hash = "sha256-KokIrrAoJutHzPg6e5YAJgDGs+nQoVjapmyn9kG5tV0=";
-    }))
+  ++ optional enableKvm (fetchpatch {
+      name = "virtualbox-${finalAttrs.virtualboxVersion}-kvm-dev-${finalAttrs.kvmPatchVersion}.patch";
+      url = "https://github.com/cyberus-technology/virtualbox-kvm/releases/download/dev-${finalAttrs.kvmPatchVersion}/kvm-backend-${finalAttrs.virtualboxVersion}-dev-${finalAttrs.kvmPatchVersion}.patch";
+      hash = finalAttrs.kvmPatchHash;
+    })
   ++ [
     ./qt-dependency-paths.patch
     # https://github.com/NixOS/nixpkgs/issues/123851
     ./fix-audio-driver-loading.patch
-    ./libxml-2.12.patch
-    ./gcc-13.patch
   ];
 
   postPatch = ''
     sed -i -e 's|/sbin/ifconfig|${nettools}/bin/ifconfig|' \
       src/VBox/HostDrivers/adpctl/VBoxNetAdpCtl.cpp
-  '' + optionalString headless ''
-    # Fix compile error in version 6.1.6
-    substituteInPlace src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-x11-stubs.cpp \
-      --replace PSHCLFORMATDATA PSHCLFORMATS
   '';
 
   # first line: ugly hack, and it isn't yet clear why it's a problem
@@ -163,6 +160,9 @@ in stdenv.mkDerivation {
     VBOX_WITH_RUNPATH              := $out/libexec/virtualbox
     VBOX_PATH_APP_PRIVATE          := $out/share/virtualbox
     VBOX_PATH_APP_DOCS             := $out/doc
+
+    VBOX_WITH_UPDATE_AGENT :=
+
     ${optionalString javaBindings ''
     VBOX_JAVA_HOME                 := ${jdk}
     ''}
@@ -196,14 +196,14 @@ in stdenv.mkDerivation {
         -i AutoConfig.kmk
     sed -e 's@arch/x86/@@' \
         -i Config.kmk
-    substituteInPlace Config.kmk --replace "VBOX_WITH_TESTCASES = 1" "#"
+    substituteInPlace Config.kmk --replace-fail "VBOX_WITH_TESTCASES = 1" "#"
   '';
 
   enableParallelBuilding = true;
 
   buildPhase = ''
     source env.sh
-    kmk -j $NIX_BUILD_CORES BUILD_TYPE="${buildType}"
+    kmk -j $NIX_BUILD_CORES BUILD_TYPE="${finalAttrs.buildType}"
   '';
 
   installPhase = ''
@@ -212,7 +212,7 @@ in stdenv.mkDerivation {
 
     # Install VirtualBox files
     mkdir -p "$libexec"
-    find out/linux.*/${buildType}/bin -mindepth 1 -maxdepth 1 \
+    find out/linux.*/${finalAttrs.buildType}/bin -mindepth 1 -maxdepth 1 \
       -name src -o -exec cp -avt "$libexec" {} +
 
     mkdir -p $out/bin
@@ -250,12 +250,12 @@ in stdenv.mkDerivation {
     ''}
 
     ${optionalString withModsrc ''
-      cp -rv out/linux.*/${buildType}/bin/src "$modsrc"
+      cp -rv out/linux.*/${finalAttrs.buildType}/bin/src "$modsrc"
     ''}
 
     mkdir -p "$out/share/virtualbox"
     cp -rv src/VBox/Main/UnattendedTemplates "$out/share/virtualbox"
-    ln -s "${virtualboxGuestAdditionsIso}" "$out/share/virtualbox/VBoxGuestAdditions.iso"
+    ln -s "${finalAttrs.virtualboxGuestAdditionsIso}" "$out/share/virtualbox/VBoxGuestAdditions.iso"
   '';
 
   preFixup = optionalString (!headless) ''
@@ -264,7 +264,8 @@ in stdenv.mkDerivation {
   # If hardening is disabled, wrap the VirtualBoxVM binary instead of patching
   # the source code (see postPatch).
   + optionalString (!headless && !enableHardening) ''
-    wrapQtApp $out/libexec/virtualbox/VirtualBoxVM
+    wrapQtApp $out/libexec/virtualbox/VirtualBoxVM \
+       --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ vulkan-loader ]}"
   '';
 
   passthru = {
@@ -285,10 +286,10 @@ in stdenv.mkDerivation {
       fromSource
       binaryNativeCode
     ];
-    license = licenses.gpl2;
+    license = lib.licenses.gpl2;
     homepage = "https://www.virtualbox.org/";
-    maintainers = with maintainers; [ sander friedrichaltheide blitz ];
+    maintainers = with lib.maintainers; [ sander friedrichaltheide blitz ];
     platforms = [ "x86_64-linux" ];
     mainProgram = "VirtualBox";
   };
-}
+})
diff --git a/pkgs/applications/virtualization/virtualbox/extpack.nix b/pkgs/applications/virtualization/virtualbox/extpack.nix
index fad5aa6e10fbe..089ab4856c0d0 100644
--- a/pkgs/applications/virtualization/virtualbox/extpack.nix
+++ b/pkgs/applications/virtualization/virtualbox/extpack.nix
@@ -12,7 +12,7 @@ fetchurl rec {
     # Manually sha256sum the extensionPack file, must be hex!
     # Thus do not use `nix-prefetch-url` but instead plain old `sha256sum`.
     # Checksums can also be found at https://www.virtualbox.org/download/hashes/${version}/SHA256SUMS
-    let value = "42cb36fbf439a9ed28c95d2bbc718a0eac902225eb579c884c549af2e94be633";
+    let value = "cab1abad478679fc34a0c5cb4a6d3566edc20e3c54cbed39c8e895d8cfad3ee2";
     in assert (builtins.stringLength value) == 64; value;
 
   meta = {
diff --git a/pkgs/applications/virtualization/virtualbox/gcc-13.patch b/pkgs/applications/virtualization/virtualbox/gcc-13.patch
deleted file mode 100644
index c06780299f95f..0000000000000
--- a/pkgs/applications/virtualization/virtualbox/gcc-13.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-diff --git a/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibRuntimeXF86.cpp b/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibRuntimeXF86.cpp
-index 8a9d15c0..260ebc5c 100644
---- a/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibRuntimeXF86.cpp
-+++ b/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibRuntimeXF86.cpp
-@@ -46,6 +46,9 @@
- #if defined(VBOX_VBGLR3_XFREE86)
- extern "C" {
- # define XFree86LOADER
-+# ifdef RT_GNUC_PREREQ(13,0) /* cmath gets dragged in and the c++/13/cmath header is allergic to -ffreestanding.  */
-+#  define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
-+# endif
- # include <xf86_ansic.h>
- # undef size_t
- }
-diff --git a/src/libs/dxvk-native-1.9.2a/src/util/util_matrix.cpp b/src/libs/dxvk-native-1.9.2a/src/util/util_matrix.cpp
-index 2c5e9314..64890169 100644
---- a/src/libs/dxvk-native-1.9.2a/src/util/util_matrix.cpp
-+++ b/src/libs/dxvk-native-1.9.2a/src/util/util_matrix.cpp
-@@ -1,3 +1,5 @@
-+#include <cstdint>
-+
- #include "util_matrix.h"
- 
- namespace dxvk {
-diff --git a/src/libs/dxvk-native-1.9.2a/src/util/util_vector.h b/src/libs/dxvk-native-1.9.2a/src/util/util_vector.h
-index 77cdf294..9dcb4bf9 100644
---- a/src/libs/dxvk-native-1.9.2a/src/util/util_vector.h
-+++ b/src/libs/dxvk-native-1.9.2a/src/util/util_vector.h
-@@ -1,5 +1,6 @@
- #pragma once
- 
-+#include <cstdint>
- #include <iostream>
- 
- #include "util_bit.h"
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions-iso/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions-iso/default.nix
index cd2f58afc92a6..9529c980475da 100644
--- a/pkgs/applications/virtualization/virtualbox/guest-additions-iso/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions-iso/default.nix
@@ -5,7 +5,7 @@ let
 in
 fetchurl {
   url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
-  sha256 = "0efbcb9bf4722cb19292ae00eba29587432e918d3b1f70905deb70f7cf78e8ce";
+  sha256 = "4469bab0f59c62312b0a1b67dcf9c07a8a971afad339fa2c3eb80e209e099ef9";
   meta = {
     description = "Guest additions ISO for VirtualBox";
     longDescription = ''
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/builder.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/builder.nix
index 298acba8439de..72c0af9626f72 100644
--- a/pkgs/applications/virtualization/virtualbox/guest-additions/builder.nix
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions/builder.nix
@@ -1,47 +1,45 @@
 { config, stdenv, kernel, fetchurl, lib, pam, libxslt
 , libX11, libXext, libXcursor, libXmu
-, glib, alsa-lib, libXrandr, dbus
+, glib, libXrandr, dbus, xz
 , pkg-config, which, zlib, xorg
-, yasm, patchelf, makeWrapper, makeself, nasm
-, linuxHeaders, openssl, libpulseaudio}:
-
-with lib;
+, yasm, patchelf, makeself
+, linuxHeaders, openssl}:
 
 let
   buildType = "release";
 
 in stdenv.mkDerivation (finalAttrs: {
   pname = "VirtualBox-GuestAdditions-builder-${kernel.version}";
-  version = "7.0.14";
+  version = "7.0.18";
 
   src = fetchurl {
     url = "https://download.virtualbox.org/virtualbox/${finalAttrs.version}/VirtualBox-${finalAttrs.version}.tar.bz2";
-    sha256 = "45860d834804a24a163c1bb264a6b1cb802a5bc7ce7e01128072f8d6a4617ca9";
+    sha256 = "d999513533631674a024762668de999411d8197060c51e68c5faf0a2c0eea1a5";
   };
 
   env.NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types -Wno-error=implicit-function-declaration";
 
-  nativeBuildInputs = [ patchelf makeWrapper pkg-config which yasm ];
-  buildInputs =  kernel.moduleBuildDependencies ++ [ libxslt libX11 libXext libXcursor
-    glib nasm alsa-lib makeself pam libXmu libXrandr linuxHeaders openssl libpulseaudio xorg.xorgserver ];
+  nativeBuildInputs = [ patchelf pkg-config which yasm makeself xorg.xorgserver openssl linuxHeaders xz ] ++ kernel.moduleBuildDependencies;
+  buildInputs = [ dbus libxslt libXext libXcursor pam libXmu libXrandr ];
 
   KERN_DIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
   KERN_INCL = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/source/include";
 
   prePatch = ''
     rm -r src/VBox/Additions/x11/x11include/
+    rm -r src/VBox/Additions/3D/mesa/mesa-*/
     rm -r src/libs/openssl-*/
     rm -r src/libs/curl-*/
+    rm -r src/libs/libpng-*/
+    rm -r src/libs/libxml2-*/
+    rm -r src/libs/liblzma-*/
+    rm -r src/libs/zlib*/
   '';
 
   patches = [
-    ../gcc-13.patch
-    # https://www.virtualbox.org/changeset/100258/vbox
+    #../gcc-13.patch
+    ## https://www.virtualbox.org/changeset/100258/vbox
     ./no-legacy-xorg.patch
-    # https://www.virtualbox.org/changeset/102989/vbox
-    ./strlcpy-1.patch
-    # https://www.virtualbox.org/changeset/102990/vbox
-    ./strlcpy-2.patch
   ];
 
   postPatch = ''
@@ -81,6 +79,10 @@ in stdenv.mkDerivation (finalAttrs: {
       VBOX_USE_SYSTEM_XORG_HEADERS := 1
       VBOX_USE_SYSTEM_GL_HEADERS := 1
       VBOX_NO_LEGACY_XORG_X11 := 1
+      SDK_VBoxLibPng_INCS :=
+      SDK_VBoxLibXml2_INCS :=
+      SDK_VBoxLibLzma_INCS := ${xz.dev}/include
+      SDK_VBoxLibLzma_LIBS := ${xz.out}/lib
 
       SDK_VBoxOpenSslStatic_INCS := ${openssl.dev}/include/ssl
 
@@ -92,6 +94,9 @@ in stdenv.mkDerivation (finalAttrs: {
       VBOX_WITH_GUEST_CONTROL := 1
       VBOX_WITHOUT_LINUX_GUEST_PACKAGE := 1
       VBOX_WITH_PAM :=
+      VBOX_WITH_UPDATE_AGENT :=
+      VBOX_WITH_AUDIO_ALSA :=
+      VBOX_WITH_AUDIO_PULSE :=
 
       VBOX_BUILD_PUBLISHER := _NixOS
       LOCAL_CONFIG
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
index ce23538ffc38e..ac867ce9ce720 100644
--- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
@@ -34,16 +34,14 @@ in stdenv.mkDerivation {
 
     env.NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types -Wno-error=implicit-function-declaration";
 
-    nativeBuildInputs = [ patchelf makeWrapper ];
-    buildInputs = [ virtualBoxNixGuestAdditionsBuilder ] ++ kernel.moduleBuildDependencies;
+    nativeBuildInputs = [ patchelf makeWrapper virtualBoxNixGuestAdditionsBuilder ] ++ kernel.moduleBuildDependencies;
+    buildInputs = [ ];
 
     buildPhase = ''
       runHook preBuild
 
       # Build kernel modules.
-      cd src
-      find . -type f | xargs sed 's/depmod -a/true/' -i
-      cd vboxguest-${virtualBoxNixGuestAdditionsBuilder.version}_NixOS
+      cd src/vboxguest-${virtualBoxNixGuestAdditionsBuilder.version}_NixOS
       # Run just make first. If we only did make install, we get symbol warnings during build.
       make
       cd ../..
@@ -61,6 +59,8 @@ in stdenv.mkDerivation {
     installPhase = ''
       runHook preInstall
 
+      mkdir -p $out/bin
+
       # Install kernel modules.
       cd src/vboxguest-${virtualBoxNixGuestAdditionsBuilder.version}_NixOS
       make install INSTALL_MOD_PATH=$out KBUILD_EXTRA_SYMBOLS=$PWD/vboxsf/Module.symvers
@@ -70,7 +70,6 @@ in stdenv.mkDerivation {
       install -D -m 755 other/mount.vboxsf $out/bin/mount.vboxsf
       install -D -m 755 sbin/VBoxService $out/bin/VBoxService
 
-      mkdir -p $out/bin
       install -m 755 bin/VBoxClient $out/bin
       install -m 755 bin/VBoxControl $out/bin
       install -m 755 bin/VBoxDRMClient $out/bin
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/strlcpy-1.patch b/pkgs/applications/virtualization/virtualbox/guest-additions/strlcpy-1.patch
deleted file mode 100644
index 642f5864d2082..0000000000000
--- a/pkgs/applications/virtualization/virtualbox/guest-additions/strlcpy-1.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-# https://www.virtualbox.org/changeset/102989/vbox
---- a/include/iprt/string.h
-+++ b/include/iprt/string.h
-@@ -244,4 +244,26 @@
- #else  /* !RT_OS_LINUX && !__KERNEL__ */
- # define RT_BCOPY_UNFORTIFIED(a_pDst, a_pSrc, a_cbToCopy)   memcpy((a_pDst), (a_pSrc), (a_cbToCopy))
-+#endif /* !RT_OS_LINUX && !__KERNEL__ */
-+
-+/** @def RT_STRSCPY
-+ * Copy string and NULL-terminate output buffer.
-+ *
-+ * This macro should mostly be used in Linux kernel code. This is
-+ * the replacement for deprecated strlcpy. It was deprecated since 3.16.60
-+ * when strscpy was introduced as an alternative. Finally, strlcpy was
-+ * completely removed from kernel code in 6.8.0.
-+ *
-+ * @param   a_pDst          Pointer to the destination string buffer.
-+ * @param   a_pSrc          Pointer to the source NULL-terminated string buffer.
-+ * @param   a_cbToCopy      Size of destination buffer..
-+ */
-+#if defined(RT_OS_LINUX) && defined(__KERNEL__)
-+# if (RTLNX_VER_MIN(3,16,60))
-+#  define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy)    strscpy((a_pDst), (a_pSrc), (a_cbToCopy))
-+# else /* < 3.16.60 */
-+#  define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy)    strlcpy((a_pDst), (a_pSrc), (a_cbToCopy))
-+# endif
-+#else  /* !RT_OS_LINUX && !__KERNEL__ */
-+# define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy)    strscpy((a_pDst), (a_pSrc), (a_cbToCopy))
- #endif /* !RT_OS_LINUX && !__KERNEL__ */
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/strlcpy-2.patch b/pkgs/applications/virtualization/virtualbox/guest-additions/strlcpy-2.patch
deleted file mode 100644
index 15e546f89e79c..0000000000000
--- a/pkgs/applications/virtualization/virtualbox/guest-additions/strlcpy-2.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-# https://www.virtualbox.org/changeset/102990/vbox
---- a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c
-+++ b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c
-@@ -1411,5 +1411,5 @@
-     }
-     else if (pParam->name[0] != 'd')
--        strlcpy(&g_szLogGrp[0], pszValue, sizeof(g_szLogGrp));
-+        RT_STRSCPY(&g_szLogGrp[0], pszValue, sizeof(g_szLogGrp));
- 
-     return 0;
-@@ -1437,5 +1437,5 @@
-     }
-     else if (pParam->name[0] != 'd')
--        strlcpy(&g_szLogFlags[0], pszValue, sizeof(g_szLogFlags));
-+        RT_STRSCPY(&g_szLogFlags[0], pszValue, sizeof(g_szLogFlags));
-     return 0;
- }
-@@ -1462,5 +1462,5 @@
-     }
-     else if (pParam->name[0] != 'd')
--        strlcpy(&g_szLogDst[0], pszValue, sizeof(g_szLogDst));
-+        RT_STRSCPY(&g_szLogDst[0], pszValue, sizeof(g_szLogDst));
-     return 0;
- }
-
-# https://www.virtualbox.org/changeset/102990/vbox
---- a/src/VBox/Additions/linux/drm/vbox_drv.h
-+++ b/src/VBox/Additions/linux/drm/vbox_drv.h
-@@ -539,7 +539,5 @@
- void vbox_irq_fini(struct vbox_private *vbox);
- void vbox_report_hotplug(struct vbox_private *vbox);
--#if RTLNX_VER_MAX(5,15,0) && !RTLNX_RHEL_MAJ_PREREQ(9,1) && !RTLNX_SUSE_MAJ_PREREQ(15,5)
- irqreturn_t vbox_irq_handler(int irq, void *arg);
--#endif
- 
- /* vbox_hgsmi.c */
-
-# https://www.virtualbox.org/changeset/102990/vbox
---- a/src/VBox/Additions/linux/sharedfolders/regops.c
-+++ b/src/VBox/Additions/linux/sharedfolders/regops.c
-@@ -3506,5 +3506,5 @@
- 
- /** file_operations::mmap wrapper for logging purposes. */
--extern int vbsf_reg_mmap(struct file *file, struct vm_area_struct *vma)
-+static int vbsf_reg_mmap(struct file *file, struct vm_area_struct *vma)
- {
-     int rc;
-@@ -3787,5 +3787,5 @@
- 
- # if RTLNX_VER_MIN(5,19,0) || RTLNX_RHEL_RANGE(9,3, 9,99)
--int vbsf_write_begin(struct file *file, struct address_space *mapping, loff_t pos,
-+static int vbsf_write_begin(struct file *file, struct address_space *mapping, loff_t pos,
-                      unsigned len, struct page **pagep, void **fsdata)
- {
-@@ -3794,5 +3794,5 @@
- }
- # else
--int vbsf_write_begin(struct file *file, struct address_space *mapping, loff_t pos,
-+static int vbsf_write_begin(struct file *file, struct address_space *mapping, loff_t pos,
-                      unsigned len, unsigned flags, struct page **pagep, void **fsdata)
- {
-
-# https://www.virtualbox.org/changeset/102990/vbox
---- a/src/VBox/Additions/linux/sharedfolders/vfsmod.c
-+++ b/src/VBox/Additions/linux/sharedfolders/vfsmod.c
-@@ -1409,5 +1409,5 @@
-     case Opt_iocharset:
-     case Opt_nls:
--        strlcpy(info->nls_name, param->string, sizeof(info->nls_name));
-+        RT_STRSCPY(info->nls_name, param->string, sizeof(info->nls_name));
-         break;
-     case Opt_uid:
-@@ -1470,5 +1470,5 @@
-         break;
-     case Opt_tag:
--        strlcpy(info->szTag, param->string, sizeof(info->szTag));
-+        RT_STRSCPY(info->szTag, param->string, sizeof(info->szTag));
-         break;
-     default:
-@@ -1529,5 +1529,5 @@
- 
-     /* fc->source (the shared folder name) is set after vbsf_init_fs_ctx() */
--    strlcpy(info->name, fc->source, sizeof(info->name));
-+    RT_STRSCPY(info->name, fc->source, sizeof(info->name));
- 
- # if RTLNX_VER_MAX(5,3,0)
diff --git a/pkgs/applications/virtualization/virtualbox/libxml-2.12.patch b/pkgs/applications/virtualization/virtualbox/libxml-2.12.patch
deleted file mode 100644
index 4631f304735cc..0000000000000
--- a/pkgs/applications/virtualization/virtualbox/libxml-2.12.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-diff --git a/include/iprt/cpp/xml.h b/include/iprt/cpp/xml.h
-index 40975e86..7639c281 100644
---- a/include/iprt/cpp/xml.h
-+++ b/include/iprt/cpp/xml.h
-@@ -113,9 +113,9 @@ public:
- class RT_DECL_CLASS XmlError : public RuntimeError
- {
- public:
--    XmlError(xmlErrorPtr aErr);
-+    XmlError(const xmlError *aErr);
- 
--    static char* Format(xmlErrorPtr aErr);
-+    static char* Format(const xmlError *aErr);
- };
- 
- // Logical errors
-diff --git a/src/VBox/Runtime/r3/xml.cpp b/src/VBox/Runtime/r3/xml.cpp
-index a6661760..b301a6c6 100644
---- a/src/VBox/Runtime/r3/xml.cpp
-+++ b/src/VBox/Runtime/r3/xml.cpp
-@@ -131,7 +131,7 @@ LogicError::LogicError(RT_SRC_POS_DECL)
-     RTStrFree(msg);
- }
- 
--XmlError::XmlError(xmlErrorPtr aErr)
-+XmlError::XmlError(const xmlError *aErr)
- {
-     if (!aErr)
-         throw EInvalidArg(RT_SRC_POS);
-@@ -145,7 +145,7 @@ XmlError::XmlError(xmlErrorPtr aErr)
-  * Composes a single message for the given error. The caller must free the
-  * returned string using RTStrFree() when no more necessary.
-  */
--/* static */ char *XmlError::Format(xmlErrorPtr aErr)
-+/* static */ char *XmlError::Format(const xmlError *aErr)
- {
-     const char *msg = aErr->message ? aErr->message : "<none>";
-     size_t msgLen = strlen(msg);
-@@ -1856,7 +1856,7 @@ static void xmlParserBaseGenericError(void *pCtx, const char *pszMsg, ...) RT_NO
-     va_end(args);
- }
- 
--static void xmlParserBaseStructuredError(void *pCtx, xmlErrorPtr error) RT_NOTHROW_DEF
-+static void xmlParserBaseStructuredError(void *pCtx, const xmlError *error) RT_NOTHROW_DEF
- {
-     NOREF(pCtx);
-     /* we expect that there is always a trailing NL */
diff --git a/pkgs/applications/virtualization/virtualbox/update.sh b/pkgs/applications/virtualization/virtualbox/update.sh
index 5269f85ee9389..f1b1d71a355c2 100755
--- a/pkgs/applications/virtualization/virtualbox/update.sh
+++ b/pkgs/applications/virtualization/virtualbox/update.sh
@@ -34,7 +34,9 @@ if [ ! "$oldVersion" = "$latestVersion" ]; then
   virtualBoxOldShaSum=$(oldHash ${attr}Extpack)
   extpackOldShaSum=$(oldHash ${attr}Extpack)
 
-  update-source-version $attr $latestVersion $virtualBoxShaSum
+  sed -e "s/virtualboxVersion =.*;/virtualboxVersion = \"$latestVersion\";/g" \
+      -e "s/virtualboxSha256 =.*;/virtualboxSha256 = \"$virtualBoxShaSum\";/g" \
+      -i $virtualboxNixFile
   sed -i -e 's|value = "'$extpackOldShaSum'"|value = "'$extpackShaSum'"|' $extpackNixFile
   sed -e "s/sha256 =.*;/sha256 = \"$guestAdditionsIsoShaSum\";/g" \
       -i $guestAdditionsIsoNixFile
diff --git a/pkgs/applications/virtualization/vmware-workstation/default.nix b/pkgs/applications/virtualization/vmware-workstation/default.nix
index 93da1b1f68052..83d2361a99900 100644
--- a/pkgs/applications/virtualization/vmware-workstation/default.nix
+++ b/pkgs/applications/virtualization/vmware-workstation/default.nix
@@ -1,14 +1,15 @@
 { stdenv
 , buildFHSEnv
 , fetchurl
+, fetchzip
 , lib
 , zlib
 , gdbm
-, bzip2
 , libxslt
 , libxml2
 , libuuid
 , readline
+, readline70
 , xz
 , cups
 , glibc
@@ -25,22 +26,50 @@
 , python3
 , autoPatchelfHook
 , makeWrapper
-, sqlite
-, enableInstaller ? false
-, enableMacOSGuests ? false, fetchFromGitHub, gnutar, unzip
+, symlinkJoin
+, enableInstaller ? false, bzip2, sqlite
+, enableMacOSGuests ? false, fetchFromGitHub, unzip
+, enableGuestTools ? true,
 }:
 
 let
+  # base - versions
+  version = "17.5.2";
+  build = "23775571";
+  baseUrl = "https://softwareupdate.vmware.com/cds/vmw-desktop/ws/${version}/${build}/linux";
+
+  # tools - versions
+  toolsVersion = "12.4.0";
+  toolsBuild = "23259341";
+
   # macOS - versions
-  fusionVersion = "13.5.1";
-  fusionBuild = "23298085";
+  fusionVersion = "13.5.2";
+  fusionBuild = "23775688";
   unlockerVersion = "3.0.5";
 
+  guestToolsSrc =
+  let
+    fetchComponent = (system: hash: fetchzip {
+      inherit hash;
+      url = "${baseUrl}/packages/vmware-tools-${system}-${toolsVersion}-${toolsBuild}.x86_64.component.tar";
+      stripRoot = false;
+    } + "/vmware-tools-${system}-${toolsVersion}-${toolsBuild}.x86_64.component");
+  in lib.mapAttrsToList fetchComponent {
+      linux = "sha256-vT08mR6cCXZjiQgb9jy+MaqYzS0hFbNUM7xGAHIJ8Ao=";
+      linuxPreGlibc25 = "sha256-BodN1lxuhxyLlxIQSlVhGKItJ10VPlti/sEyxcRF2SA=";
+      netware = "sha256-o/S4wAYLR782Fn20fTQ871+rzsa1twnAxb9laV16XIk=";
+      solaris = "sha256-3LdFoI4TD5zxlohDGR3DRGbF6jwDZAoSMEpHWU4vSGU=";
+      winPre2k = "sha256-+QcvWfY3aCDxUwAfSuj7Wf9sxIO+ztWBrRolMim8Dfw=";
+      winPreVista = "sha256-3NgO/GdRFTpKNo45TMet0msjzxduuoF4nVLtnOUTHUA=";
+      windows = "sha256-2F7UPjNvtibmWAJxpB8IOnol12aMOGMy+403WeCTXw8=";
+  };
+
   # macOS - ISOs
-  darwinIsoSrc = fetchurl {
+  darwinIsoSrc = fetchzip {
     url = "https://softwareupdate.vmware.com/cds/vmw-desktop/fusion/${fusionVersion}/${fusionBuild}/universal/core/com.vmware.fusion.zip.tar";
-    sha256 = "sha256-bn6hoicby2YVj1pZTBzBhabNhKefzVQTm5vIrdTO2K4=";
-  };
+    sha256 = "sha256-DDLRWAVRI3ZeXV5bUXWwput9mEC1qsJUsjojI0CJYMI=";
+    stripRoot = false;
+  } + "/com.vmware.fusion.zip";
 
   # macOS - Unlocker
   unlockerSrc = fetchFromGitHub {
@@ -68,11 +97,18 @@ let
     name = "vmware-unpack-env";
     targetPkgs = pkgs: [ zlib ];
   };
+
+  readline70_compat63 = symlinkJoin {
+    name = "readline70_compat63";
+    paths = [ readline70 ];
+    postBuild = ''
+      ln -s $out/lib/libreadline.so $out/lib/libreadline.so.6
+    '';
+  };
 in
 stdenv.mkDerivation rec {
   pname = "vmware-workstation";
-  version = "17.5.1";
-  build = "23298084";
+  inherit version build;
 
   buildInputs = [
     libxslt
@@ -96,21 +132,24 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [ python3 vmware-unpack-env autoPatchelfHook makeWrapper ]
-    ++ lib.optionals enableInstaller [ sqlite bzip2 ]
-    ++ lib.optionals enableMacOSGuests [ gnutar unzip ];
+    ++ lib.optionals enableInstaller [ bzip2 sqlite readline70_compat63 ]
+    ++ lib.optionals enableMacOSGuests [ unzip ];
 
-  src = fetchurl {
-    url = "https://download3.vmware.com/software/WKST-${builtins.replaceStrings ["."] [""] version}-LX/VMware-Workstation-Full-${version}-${build}.x86_64.bundle";
-    sha256 = "sha256-qmC3zvKoes77z3x6UkLHsJ17kQrL1a/rxe9mF+UMdJY=";
-  };
+  src = fetchzip {
+    url = "${baseUrl}/core/VMware-Workstation-${version}-${build}.x86_64.bundle.tar";
+    sha256 = "sha256-5PZZpXN/V687TXjqeTm8MEays4/QTf02jVfdpi9C7GI=";
+    stripRoot = false;
+  } + "/VMware-Workstation-${version}-${build}.x86_64.bundle";
 
-  unpackPhase = ''
-    ${vmware-unpack-env}/bin/vmware-unpack-env -c "sh ${src} --extract unpacked"
+  unpackPhase = let
+    guestTools = lib.optionalString enableGuestTools (lib.concatMapStringsSep " " (src: "--install-component ${src}") guestToolsSrc);
+  in
+  ''
+    ${vmware-unpack-env}/bin/vmware-unpack-env -c "sh ${src} ${guestTools} --extract unpacked"
 
     ${lib.optionalString enableMacOSGuests ''
       mkdir -p fusion/
-      tar -xvpf "${darwinIsoSrc}" -C fusion/
-      unzip "fusion/com.vmware.fusion.zip" \
+      unzip "${darwinIsoSrc}" \
         "payload/VMware Fusion.app/Contents/Library/isoimages/x86_x64/darwin.iso" \
         "payload/VMware Fusion.app/Contents/Library/isoimages/x86_x64/darwinPre15.iso" \
         -d fusion/
@@ -173,7 +212,7 @@ stdenv.mkDerivation rec {
         component_version=$(cat unpacked/$component/manifest.xml | grep -oPm1 "(?<=<version>)[^<]+")
         component_core_id=$([ "$component" == "vmware-installer" ] && echo "-1" || echo "1")
         type=$([ "$component" == "vmware-workstation" ] && echo "0" || echo "1")
-        sqlite3 "$database_filename" "INSERT INTO components(name,version,buildNumber,component_core_id,longName,description,type) VALUES(\"$component\",\"$component_version\",\"${build}\",$component_core_id,\"$component\",\"$component\",$type);"
+        sqlite3 "$database_filename" "INSERT INTO components(name,version,buildNumber,component_core_id,longName,description,type) VALUES('$component','$component_version',${build},$component_core_id,'$component','$component',$type);"
         mkdir -p $out/etc/vmware-installer/components/$component
         cp -r $folder/* $out/etc/vmware-installer/components/$component
       done
@@ -255,9 +294,10 @@ stdenv.mkDerivation rec {
     unpacked="unpacked/vmware-network-editor"
     cp -r $unpacked/lib $out/lib/vmware/
 
-    ## VMware Tools
-    echo "Installing VMware Tools"
     mkdir -p $out/lib/vmware/isoimages/
+
+    ${lib.optionalString enableGuestTools ''
+    echo "Installing VMware Tools"
     cp unpacked/vmware-tools-linux/linux.iso \
        unpacked/vmware-tools-linuxPreGlibc25/linuxPreGlibc25.iso \
        unpacked/vmware-tools-netware/netware.iso \
@@ -266,6 +306,7 @@ stdenv.mkDerivation rec {
        unpacked/vmware-tools-winPreVista/winPreVista.iso \
        unpacked/vmware-tools-windows/windows.iso \
        $out/lib/vmware/isoimages/
+    ''}
 
     ${lib.optionalString enableMacOSGuests ''
       echo "Installing VMWare Tools for MacOS"
diff --git a/pkgs/applications/virtualization/vpcs/default.nix b/pkgs/applications/virtualization/vpcs/default.nix
index c1bce1f9bc7f0..15f769ef96981 100644
--- a/pkgs/applications/virtualization/vpcs/default.nix
+++ b/pkgs/applications/virtualization/vpcs/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A simple virtual PC simulator";
+    description = "Simple virtual PC simulator";
     longDescription = ''
       The VPCS (Virtual PC Simulator) can simulate up to 9 PCs. You can
       ping/traceroute them, or ping/traceroute the other hosts/routers from the
diff --git a/pkgs/applications/virtualization/youki/default.nix b/pkgs/applications/virtualization/youki/default.nix
index ae0af1c92f6a6..d63fa87238e45 100644
--- a/pkgs/applications/virtualization/youki/default.nix
+++ b/pkgs/applications/virtualization/youki/default.nix
@@ -40,7 +40,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-PKn448fOCnyMC42NtQnLt8kvZIBautsq4Fw/bRvwmpw=";
 
   meta = with lib; {
-    description = "A container runtime written in Rust";
+    description = "Container runtime written in Rust";
     homepage = "https://containers.github.io/youki/";
     changelog = "https://github.com/containers/youki/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/applications/window-managers/2bwm/default.nix b/pkgs/applications/window-managers/2bwm/default.nix
index 4072c74d7f838..09f3a0ebce628 100644
--- a/pkgs/applications/window-managers/2bwm/default.nix
+++ b/pkgs/applications/window-managers/2bwm/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/venam/2bwm";
-    description = "A fast floating WM written over the XCB library and derived from mcwm";
+    description = "Fast floating WM written over the XCB library and derived from mcwm";
     license = licenses.mit;
     maintainers =  [ maintainers.sternenseemann ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/window-managers/bspwm/default.nix b/pkgs/applications/window-managers/bspwm/default.nix
index 53807e65a3cb4..bfd18f2f02a9c 100644
--- a/pkgs/applications/window-managers/bspwm/default.nix
+++ b/pkgs/applications/window-managers/bspwm/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "A tiling window manager based on binary space partitioning";
+    description = "Tiling window manager based on binary space partitioning";
     homepage = "https://github.com/baskerville/bspwm";
     maintainers = with maintainers; [ meisternu ];
     license = licenses.bsd2;
diff --git a/pkgs/applications/window-managers/cage/default.nix b/pkgs/applications/window-managers/cage/default.nix
index c94263f816125..73c9f7c4c5115 100644
--- a/pkgs/applications/window-managers/cage/default.nix
+++ b/pkgs/applications/window-managers/cage/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   passthru.tests.basic-nixos-module-functionality = nixosTests.cage;
 
   meta = with lib; {
-    description = "A Wayland kiosk that runs a single, maximized application";
+    description = "Wayland kiosk that runs a single, maximized application";
     homepage    = "https://www.hjdskes.nl/projects/cage/";
     license     = licenses.mit;
     platforms   = platforms.linux;
diff --git a/pkgs/applications/window-managers/cagebreak/default.nix b/pkgs/applications/window-managers/cagebreak/default.nix
index da3f2a97082e4..c897e3f66d8f2 100644
--- a/pkgs/applications/window-managers/cagebreak/default.nix
+++ b/pkgs/applications/window-managers/cagebreak/default.nix
@@ -82,7 +82,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/project-repo/cagebreak";
-    description = "A Wayland tiling compositor inspired by ratpoison";
+    description = "Wayland tiling compositor inspired by ratpoison";
     license = licenses.mit;
     maintainers = with maintainers; [ berbiche ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/window-managers/cwm/default.nix b/pkgs/applications/window-managers/cwm/default.nix
index 5560a04dcd61f..89187c89d6cab 100644
--- a/pkgs/applications/window-managers/cwm/default.nix
+++ b/pkgs/applications/window-managers/cwm/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   prePatch = ''sed -i "s@/usr/local@$out@" Makefile'';
 
   meta = with lib; {
-    description = "A lightweight and efficient window manager for X11";
+    description = "Lightweight and efficient window manager for X11";
     homepage    = "https://github.com/leahneukirchen/cwm";
     maintainers = with maintainers; [ _0x4A6F mkf ];
     license     = licenses.isc;
diff --git a/pkgs/applications/window-managers/dk/default.nix b/pkgs/applications/window-managers/dk/default.nix
index 631e7b85d18eb..a0efe1ad768f6 100644
--- a/pkgs/applications/window-managers/dk/default.nix
+++ b/pkgs/applications/window-managers/dk/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://bitbucket.org/natemaia/dk";
-    description = "A list based tiling window manager in the vein of dwm, bspwm, and xmonad";
+    description = "List based tiling window manager in the vein of dwm, bspwm, and xmonad";
     license = lib.licenses.x11;
     maintainers = with lib.maintainers; [ _3JlOy-PYCCKUi ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/applications/window-managers/dwm/default.nix b/pkgs/applications/window-managers/dwm/default.nix
index 0905e3f15150e..10fef61b49a1a 100644
--- a/pkgs/applications/window-managers/dwm/default.nix
+++ b/pkgs/applications/window-managers/dwm/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://dwm.suckless.org/";
-    description = "An extremely fast, small, and dynamic window manager for X";
+    description = "Extremely fast, small, and dynamic window manager for X";
     longDescription = ''
       dwm is a dynamic window manager for X. It manages windows in tiled,
       monocle and floating layouts. All of the layouts can be applied
diff --git a/pkgs/applications/window-managers/fbpanel/default.nix b/pkgs/applications/window-managers/fbpanel/default.nix
index 6ee2c94230de8..69391589f8c5c 100644
--- a/pkgs/applications/window-managers/fbpanel/default.nix
+++ b/pkgs/applications/window-managers/fbpanel/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
   NIX_CFLAGS_COMPILE = ["-Wno-error" "-I${gdk-pixbuf-xlib.dev}/include/gdk-pixbuf-2.0"];
 
   meta = with lib; {
-    description = "A stand-alone panel";
+    description = "Stand-alone panel";
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
     license = licenses.mit;
diff --git a/pkgs/applications/window-managers/hackedbox/default.nix b/pkgs/applications/window-managers/hackedbox/default.nix
index 45f17c0c912ed..e5812c4c63fa4 100644
--- a/pkgs/applications/window-managers/hackedbox/default.nix
+++ b/pkgs/applications/window-managers/hackedbox/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A bastard hacked offspring of Blackbox";
+    description = "Bastard hacked offspring of Blackbox";
     homepage = "https://github.com/museoa/hackedbox/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ AndersonTorres ];
diff --git a/pkgs/applications/window-managers/herbstluftwm/default.nix b/pkgs/applications/window-managers/herbstluftwm/default.nix
index e7cde84375ec8..825ae0de85e42 100644
--- a/pkgs/applications/window-managers/herbstluftwm/default.nix
+++ b/pkgs/applications/window-managers/herbstluftwm/default.nix
@@ -101,7 +101,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A manual tiling window manager for X";
+    description = "Manual tiling window manager for X";
     homepage = "https://herbstluftwm.org/";
     license = licenses.bsd2;
     platforms = platforms.linux;
diff --git a/pkgs/applications/window-managers/hyprwm/hypr/default.nix b/pkgs/applications/window-managers/hyprwm/hypr/default.nix
index 82ed70b0d6a04..3952256b8d410 100644
--- a/pkgs/applications/window-managers/hyprwm/hypr/default.nix
+++ b/pkgs/applications/window-managers/hyprwm/hypr/default.nix
@@ -72,7 +72,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     inherit (finalAttrs.src.meta) homepage;
-    description = "A tiling X11 window manager written in modern C++";
+    description = "Tiling X11 window manager written in modern C++";
     license = licenses.bsd3;
     maintainers = with maintainers; [ AndersonTorres ];
     inherit (libX11.meta) platforms;
diff --git a/pkgs/applications/window-managers/hyprwm/hyprland/plugins.nix b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/default.nix
index 76754dd5f0d8a..859ddf6dcecc0 100644
--- a/pkgs/applications/window-managers/hyprwm/hyprland/plugins.nix
+++ b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/default.nix
@@ -22,27 +22,27 @@ let
 
   plugins = {
     hy3 = { fetchFromGitHub, cmake, hyprland }:
-      mkHyprlandPlugin hyprland {
+      mkHyprlandPlugin hyprland rec {
         pluginName = "hy3";
-        version = "0.39.1";
+        version = "0.41.0";
 
         src = fetchFromGitHub {
           owner = "outfoxxed";
           repo = "hy3";
-          rev = "hl0.39.1";
-          hash = "sha256-PqVld+oFziSt7VZTNBomPyboaMEAIkerPQFwNJL/Wjw=";
+          rev = "hl${version}";
+          hash = "sha256-gEEWWlQRvejSR2RRg78Lubz6siIgknqj6CslveyyIP4=";
         };
 
         nativeBuildInputs = [ cmake ];
 
         dontStrip = true;
 
-        meta = with lib; {
+        meta = {
           homepage = "https://github.com/outfoxxed/hy3";
           description = "Hyprland plugin for an i3 / sway like manual tiling layout";
-          license = licenses.gpl3;
-          platforms = platforms.linux;
-          maintainers = [ maintainers.aacebedo ];
+          license = lib.licenses.gpl3;
+          platforms = lib.platforms.linux;
+          maintainers = with lib.maintainers; [ aacebedo ];
         };
       };
   };
diff --git a/pkgs/applications/window-managers/hyprwm/hyprland-protocols/default.nix b/pkgs/applications/window-managers/hyprwm/hyprland-protocols/default.nix
index 050c1c73d63c4..8815205b0e9d1 100644
--- a/pkgs/applications/window-managers/hyprwm/hyprland-protocols/default.nix
+++ b/pkgs/applications/window-managers/hyprwm/hyprland-protocols/default.nix
@@ -6,13 +6,13 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "hyprland-protocols";
-  version = "0.2";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "hyprwm";
     repo = finalAttrs.pname;
     rev = "v${finalAttrs.version}";
-    hash = "sha256-QPzwwlGKX95tl6ZEshboZbEwwAXww6lNLdVYd6T9Mrc=";
+    hash = "sha256-HUklK5u86w2Yh9dOkk4FdsL8eehcOZ95jPhLixGDRQY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/window-managers/hyprwm/hyprpaper/default.nix b/pkgs/applications/window-managers/hyprwm/hyprpaper/default.nix
index d5df6da46d658..9da143be08bf1 100644
--- a/pkgs/applications/window-managers/hyprwm/hyprpaper/default.nix
+++ b/pkgs/applications/window-managers/hyprwm/hyprpaper/default.nix
@@ -2,14 +2,24 @@
 , stdenv
 , fetchFromGitHub
 , cmake
+, cairo
+, expat
 , file
+, fribidi
 , hyprlang
+, libdatrie
 , libGL
 , libjpeg
+, libselinux
+, libsepol
+, libthai
 , libwebp
-, mesa
+, libXdmcp
 , pango
+, pcre
+, pcre2
 , pkg-config
+, util-linux
 , wayland
 , wayland-protocols
 , wayland-scanner
@@ -33,13 +43,23 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   buildInputs = [
+    cairo
+    expat
     file
+    fribidi
     hyprlang
+    libdatrie
     libGL
     libjpeg
+    libselinux
+    libsepol
+    libthai
     libwebp
-    mesa
+    libXdmcp
     pango
+    pcre
+    pcre2
+    util-linux
     wayland
     wayland-protocols
   ];
@@ -49,21 +69,9 @@ stdenv.mkDerivation (finalAttrs: {
       --replace GIT_COMMIT_HASH '"${finalAttrs.src.rev}"'
   '';
 
-  preConfigure = ''
-    make protocols
-  '';
-
-  installPhase = ''
-    runHook preInstall
-
-    install -Dm755 ./hyprpaper -t $out/bin
-
-    runHook postInstall
-  '';
-
   meta = with lib; {
     inherit (finalAttrs.src.meta) homepage;
-    description = "A blazing fast wayland wallpaper utility";
+    description = "Blazing fast wayland wallpaper utility";
     license = licenses.bsd3;
     maintainers = with maintainers; [ wozeparrot fufexan ];
     inherit (wayland.meta) platforms;
diff --git a/pkgs/applications/window-managers/hyprwm/hyprpicker/default.nix b/pkgs/applications/window-managers/hyprwm/hyprpicker/default.nix
index a4a747fba3f99..4089d82a3b977 100644
--- a/pkgs/applications/window-managers/hyprwm/hyprpicker/default.nix
+++ b/pkgs/applications/window-managers/hyprwm/hyprpicker/default.nix
@@ -19,19 +19,18 @@
 , wayland
 , wayland-protocols
 , wayland-scanner
-, wlroots
 , libXdmcp
 , debug ? false
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "hyprpicker" + lib.optionalString debug "-debug";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "hyprwm";
     repo = finalAttrs.pname;
     rev = "v${finalAttrs.version}";
-    hash = "sha256-bys8S7wuY9FJRLD5WriktWED5Hi7nCKSiNbs1Rvfk4s=";
+    hash = "sha256-BYQF1zM6bJ44ag9FJ0aTSkhOTY9U7uRdp3SmRCs5fJM=";
   };
 
   cmakeBuildType = if debug then "Debug" else "Release";
@@ -57,40 +56,17 @@ stdenv.mkDerivation (finalAttrs: {
     wayland
     wayland-protocols
     wayland-scanner
-    wlroots
     libXdmcp
     util-linux
   ];
 
-  configurePhase = ''
-    runHook preConfigure
-
-    make protocols
-
-    runHook postConfigure
-  '';
-
-  buildPhase = ''
-    runHook preBuild
-
-    make release
-
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/{bin,share/licenses}
-
-    install -Dm755 build/hyprpicker -t $out/bin
-    install -Dm644 LICENSE -t $out/share/licenses/hyprpicker
-
-    runHook postInstall
+  postInstall = ''
+    mkdir -p $out/share/licenses
+    install -Dm644 $src/LICENSE -t $out/share/licenses/hyprpicker
   '';
 
   meta = with lib; {
-    description = "A wlroots-compatible Wayland color picker that does not suck";
+    description = "Wlroots-compatible Wayland color picker that does not suck";
     homepage = "https://github.com/hyprwm/hyprpicker";
     license = licenses.bsd3;
     maintainers = with maintainers; [ fufexan ];
diff --git a/pkgs/applications/window-managers/hyprwm/xdg-desktop-portal-hyprland/default.nix b/pkgs/applications/window-managers/hyprwm/xdg-desktop-portal-hyprland/default.nix
index 2825ef3a65636..609da88715661 100644
--- a/pkgs/applications/window-managers/hyprwm/xdg-desktop-portal-hyprland/default.nix
+++ b/pkgs/applications/window-managers/hyprwm/xdg-desktop-portal-hyprland/default.nix
@@ -24,13 +24,13 @@
 }:
 stdenv.mkDerivation (self: {
   pname = "xdg-desktop-portal-hyprland";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchFromGitHub {
     owner = "hyprwm";
     repo = "xdg-desktop-portal-hyprland";
     rev = "v${self.version}";
-    hash = "sha256-wP611tGIWBA4IXShWbah7TxqdbvhfcfT2vnXalX/qzk=";
+    hash = "sha256-KsX7sAwkEFpXiwyjt0HGTnnrUU58wW1jlzj5IA/LRz8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/window-managers/i3/blocks-gaps.nix b/pkgs/applications/window-managers/i3/blocks-gaps.nix
index 657e8d2dca1c5..1d9043686bb2d 100644
--- a/pkgs/applications/window-managers/i3/blocks-gaps.nix
+++ b/pkgs/applications/window-managers/i3/blocks-gaps.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A flexible scheduler for your i3bar blocks -- this is a fork to use with i3-gaps";
+    description = "Flexible scheduler for your i3bar blocks -- this is a fork to use with i3-gaps";
     mainProgram = "i3blocks";
     homepage = "https://github.com/Airblader/i3blocks-gaps";
     license = licenses.gpl3;
diff --git a/pkgs/applications/window-managers/i3/blocks.nix b/pkgs/applications/window-managers/i3/blocks.nix
index e8f628fb4dc9f..d9ed823400d65 100644
--- a/pkgs/applications/window-managers/i3/blocks.nix
+++ b/pkgs/applications/window-managers/i3/blocks.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ autoreconfHook pkg-config ];
 
   meta = {
-    description = "A flexible scheduler for your i3bar blocks";
+    description = "Flexible scheduler for your i3bar blocks";
     mainProgram = "i3blocks";
     homepage = "https://github.com/vivien/i3blocks";
     license = licenses.gpl3;
diff --git a/pkgs/applications/window-managers/i3/bumblebee-status/default.nix b/pkgs/applications/window-managers/i3/bumblebee-status/default.nix
index 9583d71052bb0..6346672181487 100644
--- a/pkgs/applications/window-managers/i3/bumblebee-status/default.nix
+++ b/pkgs/applications/window-managers/i3/bumblebee-status/default.nix
@@ -57,7 +57,7 @@ python.pkgs.buildPythonPackage {
   '';
 
   meta = with lib; {
-    description = "A modular, theme-able status line generator for the i3 window manager";
+    description = "Modular, theme-able status line generator for the i3 window manager";
     homepage = "https://github.com/tobi-wan-kenobi/bumblebee-status";
     mainProgram = "bumblebee-status";
     license = licenses.mit;
diff --git a/pkgs/applications/window-managers/i3/cycle-focus.nix b/pkgs/applications/window-managers/i3/cycle-focus.nix
index 7927985460e29..f6ae488b07891 100644
--- a/pkgs/applications/window-managers/i3/cycle-focus.nix
+++ b/pkgs/applications/window-managers/i3/cycle-focus.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage {
   cargoHash = "sha256-9glaxThm/ovgvUWCyrycS/Oe5t8iN5P38fF5vO5awQE=";
 
   meta = with lib; {
-    description = "A simple tool to cyclically switch between the windows on the active workspace";
+    description = "Simple tool to cyclically switch between the windows on the active workspace";
     mainProgram = "i3-cycle-focus";
     homepage = "https://github.com/TheDoctor314/i3-cycle-focus";
     license = licenses.unlicense;
diff --git a/pkgs/applications/window-managers/i3/default.nix b/pkgs/applications/window-managers/i3/default.nix
index d7f1bc2176a8c..16dd2e6485e77 100644
--- a/pkgs/applications/window-managers/i3/default.nix
+++ b/pkgs/applications/window-managers/i3/default.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
   separateDebugInfo = true;
 
   meta = with lib; {
-    description = "A tiling window manager";
+    description = "Tiling window manager";
     homepage    = "https://i3wm.org";
     maintainers = with maintainers; [ modulistic fpletz ];
     mainProgram = "i3";
diff --git a/pkgs/applications/window-managers/i3/i3-resurrect.nix b/pkgs/applications/window-managers/i3/i3-resurrect.nix
index c5fedfbe36e75..015bbee6013f2 100644
--- a/pkgs/applications/window-managers/i3/i3-resurrect.nix
+++ b/pkgs/applications/window-managers/i3/i3-resurrect.nix
@@ -14,7 +14,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/JonnyHaystack/i3-resurrect";
-    description = "A simple but flexible solution to saving and restoring i3 workspaces";
+    description = "Simple but flexible solution to saving and restoring i3 workspaces";
     mainProgram = "i3-resurrect";
     license = licenses.gpl3;
     platforms= platforms.linux;
diff --git a/pkgs/applications/window-managers/i3/i3ipc-glib.nix b/pkgs/applications/window-managers/i3/i3ipc-glib.nix
index a6a77600ee5f1..9362cdcfdcec7 100644
--- a/pkgs/applications/window-managers/i3/i3ipc-glib.nix
+++ b/pkgs/applications/window-managers/i3/i3ipc-glib.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A C interface library to i3wm";
+    description = "C interface library to i3wm";
     homepage = "https://github.com/acrisci/i3ipc-glib";
     maintainers = with maintainers; [teto];
     license = licenses.gpl3;
diff --git a/pkgs/applications/window-managers/i3/lock-blur.nix b/pkgs/applications/window-managers/i3/lock-blur.nix
index f9f6de9212706..e3eabc547b5f9 100644
--- a/pkgs/applications/window-managers/i3/lock-blur.nix
+++ b/pkgs/applications/window-managers/i3/lock-blur.nix
@@ -24,7 +24,7 @@ i3lock-color.overrideAttrs (oldAttrs : rec {
   buildInputs = oldAttrs.buildInputs ++ [ libGL ];
 
   meta = with lib; {
-    description = "An improved screenlocker based upon XCB and PAM with background blurring filter";
+    description = "Improved screenlocker based upon XCB and PAM with background blurring filter";
     homepage = "https://github.com/karulont/i3lock-blur/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ dan4ik605743 ];
diff --git a/pkgs/applications/window-managers/i3/lock-color.nix b/pkgs/applications/window-managers/i3/lock-color.nix
index 596aa8ceea124..584e13f553697 100644
--- a/pkgs/applications/window-managers/i3/lock-color.nix
+++ b/pkgs/applications/window-managers/i3/lock-color.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     sed -i 's/\(^\|\s\|"\)i3lock\(\s\|$\)/\1i3lock-color\2/g' $out/share/man/man1/i3lock-color.1
   '';
   meta = with lib; {
-    description = "A simple screen locker like slock, enhanced version with extra configuration options";
+    description = "Simple screen locker like slock, enhanced version with extra configuration options";
     longDescription = ''
       Simple screen locker. After locking, a colored background (default: white) or
       a configurable image is shown, and a ring-shaped unlock-indicator gives feedback
diff --git a/pkgs/applications/window-managers/i3/lock-fancy-rapid.nix b/pkgs/applications/window-managers/i3/lock-fancy-rapid.nix
index 7060a502f128c..654841c7ffcea 100644
--- a/pkgs/applications/window-managers/i3/lock-fancy-rapid.nix
+++ b/pkgs/applications/window-managers/i3/lock-fancy-rapid.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A faster implementation of i3lock-fancy";
+    description = "Faster implementation of i3lock-fancy";
     homepage = "https://github.com/yvbbrjdr/i3lock-fancy-rapid";
     maintainers = with maintainers; [ nickhu ];
     license = licenses.bsd3;
diff --git a/pkgs/applications/window-managers/i3/lock.nix b/pkgs/applications/window-managers/i3/lock.nix
index 41096a70a68d1..8c226ac22ba42 100644
--- a/pkgs/applications/window-managers/i3/lock.nix
+++ b/pkgs/applications/window-managers/i3/lock.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     pam libX11 libev cairo libxkbcommon libxkbfile xorg.xcbutil ];
 
   meta = with lib; {
-    description = "A simple screen locker like slock";
+    description = "Simple screen locker like slock";
     longDescription = ''
       Simple screen locker. After locking, a colored background (default: white) or
       a configurable image is shown, and a ring-shaped unlock-indicator gives feedback
diff --git a/pkgs/applications/window-managers/i3/pystatus.nix b/pkgs/applications/window-managers/i3/pystatus.nix
index 73136980aa93f..66450eec6c321 100644
--- a/pkgs/applications/window-managers/i3/pystatus.nix
+++ b/pkgs/applications/window-managers/i3/pystatus.nix
@@ -50,7 +50,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/enkore/i3pystatus";
-    description = "A complete replacement for i3status";
+    description = "Complete replacement for i3status";
     longDescription = ''
       i3pystatus is a growing collection of python scripts for status output compatible
       to i3status / i3bar of the i3 window manager.
diff --git a/pkgs/applications/window-managers/i3/rounded.nix b/pkgs/applications/window-managers/i3/rounded.nix
index aa3701975fcca..ee04f4246fefa 100644
--- a/pkgs/applications/window-managers/i3/rounded.nix
+++ b/pkgs/applications/window-managers/i3/rounded.nix
@@ -14,7 +14,7 @@ i3.overrideAttrs (oldAttrs: rec {
   buildInputs = oldAttrs.buildInputs ++ [ pcre ];
 
   meta = with lib; {
-    description = "A fork of i3-gaps that adds rounding to window corners";
+    description = "Fork of i3-gaps that adds rounding to window corners";
     homepage = "https://github.com/LinoBigatti/i3-rounded";
     maintainers = with maintainers; [ marsupialgutz ];
     license = licenses.bsd3;
diff --git a/pkgs/applications/window-managers/jay/default.nix b/pkgs/applications/window-managers/jay/default.nix
index 97be1c5fe2931..68644b7535424 100644
--- a/pkgs/applications/window-managers/jay/default.nix
+++ b/pkgs/applications/window-managers/jay/default.nix
@@ -15,16 +15,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "jay";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "mahkoh";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-cfX9KcXbBRIaYrR7c+aIQrg+mvLJIM1sEzJ0J7wshMU=";
+    sha256 = "sha256-D+dG0/MSC6LzGZBMNofU8WKVYvn52kNWunXExQPoOu8=";
   };
 
-  cargoHash = "sha256-htAXhjCBOb8qTAAKdFqTaTSefJJTFlvEBYveOokyWjs=";
+  cargoHash = "sha256-WEEAFr5lemyOfeIKC9Pvr9sYMz8rLO6k1BFgbxXJ0Pk=";
 
   SHADERC_LIB_DIR = "${lib.getLib shaderc}/lib";
 
@@ -53,7 +53,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A Wayland compositor written in Rust";
+    description = "Wayland compositor written in Rust";
     homepage = "https://github.com/mahkoh/jay";
     license = licenses.gpl3;
     platforms   = platforms.linux;
diff --git a/pkgs/applications/window-managers/jwm/jwm-settings-manager.nix b/pkgs/applications/window-managers/jwm/jwm-settings-manager.nix
index d01e1bfdf9752..20caf7291c5da 100644
--- a/pkgs/applications/window-managers/jwm/jwm-settings-manager.nix
+++ b/pkgs/applications/window-managers/jwm/jwm-settings-manager.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A full configuration manager for JWM";
+    description = "Full configuration manager for JWM";
     homepage = "https://joewing.net/projects/jwm";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/pkgs/applications/window-managers/leftwm/default.nix b/pkgs/applications/window-managers/leftwm/default.nix
index ea2a41413a08d..ac9a17a489b75 100644
--- a/pkgs/applications/window-managers/leftwm/default.nix
+++ b/pkgs/applications/window-managers/leftwm/default.nix
@@ -35,7 +35,7 @@ rustPlatform.buildRustPackage rec {
   dontPatchELF = true;
 
   meta = {
-    description = "A tiling window manager for the adventurer";
+    description = "Tiling window manager for the adventurer";
     homepage = "https://github.com/leftwm/leftwm";
     license = lib.licenses.mit;
     platforms = lib.platforms.linux;
diff --git a/pkgs/applications/window-managers/lemonbar/default.nix b/pkgs/applications/window-managers/lemonbar/default.nix
index d5763a0489f1a..1c66b6fe7ffda 100644
--- a/pkgs/applications/window-managers/lemonbar/default.nix
+++ b/pkgs/applications/window-managers/lemonbar/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lemonbar";
-  version = "1.4";
+  version = "1.5";
 
   src = fetchFromGitHub {
     owner = "LemonBoy";
     repo = "bar";
     rev = "v${version}";
-    sha256 = "sha256-lmppcnQ8r4jEuhegpTBxYqxfTTS/IrbtQVZ44HqnoWo=";
+    sha256 = "sha256-OLhgu0kmMZhjv/VST8AXvIH+ysMq72m4TEOypdnatlU=";
   };
 
   buildInputs = [ libxcb perl ];
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   installFlags = [ "DESTDIR=$(out)" "PREFIX=" ];
 
   meta = with lib; {
-    description = "A lightweight xcb based bar";
+    description = "Lightweight xcb based bar";
     homepage = "https://github.com/LemonBoy/bar";
     maintainers = with maintainers; [ meisternu moni ];
     license = licenses.mit;
diff --git a/pkgs/applications/window-managers/lemonbar/xft.nix b/pkgs/applications/window-managers/lemonbar/xft.nix
index 80439f945fdc2..014376a37c405 100644
--- a/pkgs/applications/window-managers/lemonbar/xft.nix
+++ b/pkgs/applications/window-managers/lemonbar/xft.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
   installFlags = [ "DESTDIR=$(out)" "PREFIX=" ];
 
   meta = with lib; {
-    description = "A lightweight xcb based bar with XFT-support";
+    description = "Lightweight xcb based bar with XFT-support";
     mainProgram = "lemonbar";
     homepage = "https://github.com/drscream/lemonbar-xft";
     license = licenses.mit;
diff --git a/pkgs/applications/window-managers/lesbar/default.nix b/pkgs/applications/window-managers/lesbar/default.nix
index 553e79f9e6dc7..5649ae27810a6 100644
--- a/pkgs/applications/window-managers/lesbar/default.nix
+++ b/pkgs/applications/window-managers/lesbar/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation (finalAttrs: {
   installFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "A programming language agnostic view layer for creating desktop widgets and status bars";
+    description = "Programming language agnostic view layer for creating desktop widgets and status bars";
     homepage = "https://git.sr.ht/~salmiak/lesbar";
     license = licenses.mit;
     maintainers = with maintainers; [ jpentland ];
diff --git a/pkgs/applications/window-managers/maui-shell/default.nix b/pkgs/applications/window-managers/maui-shell/default.nix
index 215b871312a44..0ac02b0957fa9 100644
--- a/pkgs/applications/window-managers/maui-shell/default.nix
+++ b/pkgs/applications/window-managers/maui-shell/default.nix
@@ -79,7 +79,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A convergent shell for desktops, tablets, and phones";
+    description = "Convergent shell for desktops, tablets, and phones";
     homepage = "https://github.com/Nitrux/maui-shell";
     license = licenses.lgpl3;
     maintainers = with maintainers; [ onny ];
diff --git a/pkgs/applications/window-managers/neocomp/default.nix b/pkgs/applications/window-managers/neocomp/default.nix
index bb6615b708609..8a112b0d8855f 100644
--- a/pkgs/applications/window-managers/neocomp/default.nix
+++ b/pkgs/applications/window-managers/neocomp/default.nix
@@ -78,7 +78,7 @@ stdenv.mkDerivation rec {
     license         = licenses.gpl3Only;
     maintainers     = with maintainers; [ twey moni ];
     platforms       = platforms.linux;
-    description     = "A fork of Compton, a compositor for X11";
+    description     = "Fork of Compton, a compositor for X11";
     longDescription = ''
       NeoComp is a (hopefully) fast and (hopefully) simple compositor
       for X11, focused on delivering frames from the window to the
diff --git a/pkgs/applications/window-managers/owl/default.nix b/pkgs/applications/window-managers/owl/default.nix
index d3f018eb12021..2bef1b024b3eb 100644
--- a/pkgs/applications/window-managers/owl/default.nix
+++ b/pkgs/applications/window-managers/owl/default.nix
@@ -79,7 +79,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A portable Wayland compositor in Objective-C";
+    description = "Portable Wayland compositor in Objective-C";
     homepage = "https://github.com/owl-compositor/owl";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ wegank ];
diff --git a/pkgs/applications/window-managers/phosh/default.nix b/pkgs/applications/window-managers/phosh/default.nix
index df57c4cbec10b..32ece77e4fb04 100644
--- a/pkgs/applications/window-managers/phosh/default.nix
+++ b/pkgs/applications/window-managers/phosh/default.nix
@@ -120,11 +120,11 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A pure Wayland shell prototype for GNOME on mobile devices";
+    description = "Pure Wayland shell prototype for GNOME on mobile devices";
     homepage = "https://gitlab.gnome.org/World/Phosh/phosh";
     changelog = "https://gitlab.gnome.org/World/Phosh/phosh/-/blob/v${finalAttrs.version}/debian/changelog";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ masipcat tomfitzhenry zhaofengli ];
+    maintainers = with maintainers; [ masipcat zhaofengli ];
     platforms = platforms.linux;
     mainProgram = "phosh-session";
   };
diff --git a/pkgs/applications/window-managers/phosh/phosh-mobile-settings.nix b/pkgs/applications/window-managers/phosh/phosh-mobile-settings.nix
index 0635d7a5e407e..26211ca2f89c6 100644
--- a/pkgs/applications/window-managers/phosh/phosh-mobile-settings.nix
+++ b/pkgs/applications/window-managers/phosh/phosh-mobile-settings.nix
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A settings app for mobile specific things";
+    description = "Settings app for mobile specific things";
     mainProgram = "phosh-mobile-settings";
     homepage = "https://gitlab.gnome.org/World/Phosh/phosh-mobile-settings";
     changelog = "https://gitlab.gnome.org/World/Phosh/phosh-mobile-settings/-/blob/v${version}/debian/changelog";
diff --git a/pkgs/applications/window-managers/sawfish/default.nix b/pkgs/applications/window-managers/sawfish/default.nix
index fc518fa81f281..c5bd29d2589fe 100644
--- a/pkgs/applications/window-managers/sawfish/default.nix
+++ b/pkgs/applications/window-managers/sawfish/default.nix
@@ -74,7 +74,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "http://sawfish.tuxfamily.org/";
-    description = "An extensible, Lisp-based window manager";
+    description = "Extensible, Lisp-based window manager";
     longDescription = ''
       Sawfish is an extensible window manager using a Lisp-based scripting
       language. Its policy is very minimal compared to most window managers. Its
diff --git a/pkgs/applications/window-managers/shod/default.nix b/pkgs/applications/window-managers/shod/default.nix
index 1ed5b6e13a7fd..a71efe4b52c10 100644
--- a/pkgs/applications/window-managers/shod/default.nix
+++ b/pkgs/applications/window-managers/shod/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "A mouse-based window manager that can tile windows inside floating containers";
+    description = "Mouse-based window manager that can tile windows inside floating containers";
     longDescription = ''
       shod is a multi-monitor floating reparenting X11 window manager that
       supports tiled and tabbed containers. shod sets no keybindings, reads no
diff --git a/pkgs/applications/window-managers/sommelier/default.nix b/pkgs/applications/window-managers/sommelier/default.nix
index 6c3a04915fe6a..a5b0398d44425 100644
--- a/pkgs/applications/window-managers/sommelier/default.nix
+++ b/pkgs/applications/window-managers/sommelier/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation {
   pname = "sommelier";
-  version = "124.0";
+  version = "125.0";
 
   src = fetchzip rec {
     url = "https://chromium.googlesource.com/chromiumos/platform2/+archive/${passthru.rev}/vm_tools/sommelier.tar.gz";
-    passthru.rev = "0ced021a6b362f35592cca5a3915d0ed784615f2";
+    passthru.rev = "4445ac169a9e043fd260a835384aaa49c457c358";
     stripRoot = false;
-    sha256 = "zSiGhF4FhLUavC7YEOGGq4NE2hxK4YNXF3CpLptoZbM=";
+    sha256 = "1PofODGZDknZpzXI1d3JcoNYz3IGfw32nm+SmUpeqb8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/window-managers/spectrwm/default.nix b/pkgs/applications/window-managers/spectrwm/default.nix
index 2bb5aca9d91c1..ef1a90fd2b92e 100644
--- a/pkgs/applications/window-managers/spectrwm/default.nix
+++ b/pkgs/applications/window-managers/spectrwm/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
   meta = with lib; {
-    description = "A tiling window manager";
+    description = "Tiling window manager";
     homepage    = "https://github.com/conformal/spectrwm";
     maintainers = with maintainers; [ rake5k ];
     license     = licenses.isc;
diff --git a/pkgs/applications/window-managers/trayer/default.nix b/pkgs/applications/window-managers/trayer/default.nix
index 60984987ab62e..61976edfe96bd 100644
--- a/pkgs/applications/window-managers/trayer/default.nix
+++ b/pkgs/applications/window-managers/trayer/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/sargon/trayer-srg";
     license = licenses.mit;
-    description = "A lightweight GTK2-based systray for UNIX desktop";
+    description = "Lightweight GTK2-based systray for UNIX desktop";
     platforms = platforms.linux;
     maintainers = with maintainers; [ pSub ];
     mainProgram = "trayer";
diff --git a/pkgs/applications/window-managers/wayfire/focus-request.nix b/pkgs/applications/window-managers/wayfire/focus-request.nix
index 41d5314172504..4c885c7a42fdc 100644
--- a/pkgs/applications/window-managers/wayfire/focus-request.nix
+++ b/pkgs/applications/window-managers/wayfire/focus-request.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://gitlab.com/wayfireplugins/focus-request";
-    description = "The wayfire plugin provides a mechanism to grant focus to views that make a focus self-request";
+    description = "Wayfire plugin provides a mechanism to grant focus to views that make a focus self-request";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ rewine ];
     inherit (wayfire.meta) platforms;
diff --git a/pkgs/applications/window-managers/wayfire/windecor.nix b/pkgs/applications/window-managers/wayfire/windecor.nix
index 29c95ff1a91de..a87d95344d41f 100644
--- a/pkgs/applications/window-managers/wayfire/windecor.nix
+++ b/pkgs/applications/window-managers/wayfire/windecor.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://gitlab.com/wayfireplugins/windecor";
-    description = "A window decoration plugin for wayfire";
+    description = "Window decoration plugin for wayfire";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ rewine ];
     inherit (wayfire.meta) platforms;
diff --git a/pkgs/applications/window-managers/wayfire/wwp-switcher.nix b/pkgs/applications/window-managers/wayfire/wwp-switcher.nix
index 9ca4718e17096..34252d98dd838 100644
--- a/pkgs/applications/window-managers/wayfire/wwp-switcher.nix
+++ b/pkgs/applications/window-managers/wayfire/wwp-switcher.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/wb9688/wwp-switcher";
-    description = "A plugin to switch active window";
+    description = "Plugin to switch active window";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ rewine ];
     inherit (wayfire.meta) platforms;
diff --git a/pkgs/applications/window-managers/weston/default.nix b/pkgs/applications/window-managers/weston/default.nix
index a4e36c18368e6..c67b760e4df39 100644
--- a/pkgs/applications/window-managers/weston/default.nix
+++ b/pkgs/applications/window-managers/weston/default.nix
@@ -19,11 +19,11 @@
 
 stdenv.mkDerivation rec {
   pname = "weston";
-  version = "13.0.1";
+  version = "13.0.3";
 
   src = fetchurl {
     url = "https://gitlab.freedesktop.org/wayland/weston/-/releases/${version}/downloads/weston-${version}.tar.xz";
-    hash = "sha256-6hVmq09f/Ofp/U96H8pbMMquTVACO/RZITmUCU4Cspo=";
+    hash = "sha256-J/aNluO5fZjare8TogI1ZSSST6OBQY+mcWuRNu8JkJM=";
   };
 
   postPatch = ''
@@ -71,7 +71,7 @@ stdenv.mkDerivation rec {
   passthru.providedSessions = [ "weston" ];
 
   meta = with lib; {
-    description = "A lightweight and functional Wayland compositor";
+    description = "Lightweight and functional Wayland compositor";
     longDescription = ''
       Weston is the reference implementation of a Wayland compositor, as well
       as a useful environment in and of itself.
diff --git a/pkgs/applications/window-managers/windowchef/default.nix b/pkgs/applications/window-managers/windowchef/default.nix
index f5a5e6dbd5c94..bf1a7c305dcd1 100644
--- a/pkgs/applications/window-managers/windowchef/default.nix
+++ b/pkgs/applications/window-managers/windowchef/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "A stacking window manager that cooks windows with orders from the Waitron";
+    description = "Stacking window manager that cooks windows with orders from the Waitron";
     homepage = "https://github.com/tudurom/windowchef";
     maintainers = with maintainers; [ bhougland ];
     license = licenses.isc;
diff --git a/pkgs/applications/window-managers/wmderlandc/default.nix b/pkgs/applications/window-managers/wmderlandc/default.nix
index 45170ab0d15a2..3bb8f2364ef6f 100644
--- a/pkgs/applications/window-managers/wmderlandc/default.nix
+++ b/pkgs/applications/window-managers/wmderlandc/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A tiny program to interact with wmderland";
+    description = "Tiny program to interact with wmderland";
     homepage = "https://github.com/aesophor/wmderland/tree/master/ipc-client";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/applications/window-managers/wmii/default.nix b/pkgs/applications/window-managers/wmii/default.nix
index 11f669da37a6f..b5a94ed955dce 100644
--- a/pkgs/applications/window-managers/wmii/default.nix
+++ b/pkgs/applications/window-managers/wmii/default.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://github.com/0intro/wmii";
-    description = "A small, scriptable window manager, with a 9P filesystem interface and an acme-like layout";
+    description = "Small, scriptable window manager, with a 9P filesystem interface and an acme-like layout";
     maintainers = with lib.maintainers; [ kovirobi ];
     license = lib.licenses.mit;
     platforms = with lib.platforms; linux;
diff --git a/pkgs/applications/window-managers/xmonad/log-applet/default.nix b/pkgs/applications/window-managers/xmonad/log-applet/default.nix
index 2e41cc2c97c63..c31b3c80b8d4c 100644
--- a/pkgs/applications/window-managers/xmonad/log-applet/default.nix
+++ b/pkgs/applications/window-managers/xmonad/log-applet/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/kalj/xmonad-log-applet";
     license = licenses.bsd3;
     broken = desktopSupport == "gnomeflashback" || desktopSupport == "xfce4";
-    description = "An applet that will display XMonad log information (${desktopSupport} version)";
+    description = "Applet that will display XMonad log information (${desktopSupport} version)";
     platforms = platforms.linux;
     maintainers = with maintainers; [ abbradar ];
   };
diff --git a/pkgs/applications/window-managers/xmonad/xmonadctl.nix b/pkgs/applications/window-managers/xmonad/xmonadctl.nix
index f7dfe1354025a..23495f5d00418 100644
--- a/pkgs/applications/window-managers/xmonad/xmonadctl.nix
+++ b/pkgs/applications/window-managers/xmonad/xmonadctl.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, ghcWithPackages, haskellPackages, ... }:
+{ stdenv, lib, ghcWithPackages, haskellPackages, ... }:
 
 let xmonadctlEnv = ghcWithPackages (self: [ self.xmonad-contrib self.X11 ]);
 in stdenv.mkDerivation rec {
diff --git a/pkgs/applications/window-managers/yabar/build.nix b/pkgs/applications/window-managers/yabar/build.nix
index d66c905fea90b..e68dcdcd0e812 100644
--- a/pkgs/applications/window-managers/yabar/build.nix
+++ b/pkgs/applications/window-managers/yabar/build.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A modern and lightweight status bar for X window managers";
+    description = "Modern and lightweight status bar for X window managers";
     homepage    = "https://github.com/geommer/yabar";
     license     = licenses.mit;
     platforms   = platforms.linux;
diff --git a/pkgs/build-support/bintools-wrapper/default.nix b/pkgs/build-support/bintools-wrapper/default.nix
index 2a1fe1344e205..2d75330f1c9ee 100644
--- a/pkgs/build-support/bintools-wrapper/default.nix
+++ b/pkgs/build-support/bintools-wrapper/default.nix
@@ -10,15 +10,15 @@
 , stdenvNoCC
 , runtimeShell
 , bintools ? null, libc ? null, coreutils ? null, gnugrep ? null
-, netbsd ? null, netbsdCross ? null
+, netbsd ? null
 , sharedLibraryLoader ?
   if libc == null then
     null
   else if stdenvNoCC.targetPlatform.isNetBSD then
-    if !(targetPackages ? netbsdCross) then
+    if !(targetPackages ? netbsd) then
       netbsd.ld_elf_so
-    else if libc != targetPackages.netbsdCross.headers then
-      targetPackages.netbsdCross.ld_elf_so
+    else if libc != targetPackages.netbsd.headers then
+      targetPackages.netbsd.ld_elf_so
     else
       null
   else
diff --git a/pkgs/build-support/deterministic-uname/default.nix b/pkgs/build-support/deterministic-uname/default.nix
index 6d150557aa9d6..9efaa2558bfb6 100644
--- a/pkgs/build-support/deterministic-uname/default.nix
+++ b/pkgs/build-support/deterministic-uname/default.nix
@@ -5,6 +5,7 @@
 , coreutils
 , getopt
 , modDirVersion ? ""
+, forPlatform ? stdenv.buildPlatform
 }:
 
 substituteAll {
@@ -17,8 +18,8 @@ substituteAll {
 
   inherit coreutils getopt;
 
-  uSystem = if stdenv.buildPlatform.uname.system != null then stdenv.buildPlatform.uname.system else "unknown";
-  inherit (stdenv.buildPlatform.uname) processor;
+  uSystem = if forPlatform.uname.system != null then forPlatform.uname.system else "unknown";
+  inherit (forPlatform.uname) processor;
 
   # uname -o
   # maybe add to lib/systems/default.nix uname attrset
@@ -26,10 +27,12 @@ substituteAll {
   # https://stackoverflow.com/questions/61711186/where-does-host-operating-system-in-uname-c-comes-from
   # https://github.com/coreutils/gnulib/blob/master/m4/host-os.m4
   operatingSystem =
-    if stdenv.buildPlatform.isLinux
+    if forPlatform.isLinux
     then "GNU/Linux"
-    else if stdenv.buildPlatform.isDarwin
+    else if forPlatform.isDarwin
     then "Darwin" # darwin isn't in host-os.m4 so where does this come from?
+    else if stdenv.buildPlatform.isFreeBSD
+    then "FreeBSD"
     else "unknown";
 
   # in os-specific/linux module packages
@@ -42,11 +45,12 @@ substituteAll {
     mainProgram = "uname";
     longDescription = ''
       This package provides a replacement for `uname` whose output depends only
-      on `stdenv.buildPlatform`.  It is meant to be used from within derivations.
-      Many packages' build processes run `uname` at compile time and embed its
-      output into the result of the build.  Since `uname` calls into the kernel,
-      and the Nix sandbox currently does not intercept these calls, builds made
-      on different kernels will produce different results.
+      on `stdenv.buildPlatform`, or a configurable `forPlatform`.  It is meant
+      to be used from within derivations. Many packages' build processes run
+      `uname` at compile time and embed its output into the result of the build.
+      Since `uname` calls into the kernel, and the Nix sandbox currently does
+      not intercept these calls, builds made on different kernels will produce
+      different results.
     '';
     license = [ licenses.mit ];
     maintainers = with maintainers; [ artturin ];
diff --git a/pkgs/build-support/deterministic-uname/deterministic-uname.sh b/pkgs/build-support/deterministic-uname/deterministic-uname.sh
index 31772aeee3cc1..cb6f419b03311 100644
--- a/pkgs/build-support/deterministic-uname/deterministic-uname.sh
+++ b/pkgs/build-support/deterministic-uname/deterministic-uname.sh
@@ -131,6 +131,8 @@ fi
 #  Darwin *nodename* 22.1.0 Darwin Kernel Version 22.1.0: Sun Oct  9 20:14:30 PDT 2022; root:xnu-8792.41.9~2/RELEASE_ARM64_T8103 arm64 arm Darwin
 # NixOS:
 #  Linux *nodename* 6.0.13 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 14 10:41:06 UTC 2022 x86_64 GNU/Linux
+# FreeBSD:
+#  FreeBSD *nodename* 14.0-RELEASE FreeBSD 14.0-RELEASE #0 releng/14.0-n265380-f9716eee8ab4: Fri Nov 10 05:57:23 UTC 2023     root@releng1.nyi.freebsd.org:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64 amd64 AMD Ryzen 9 5950X 16-Core Processor             FreeBSD
 output=()
 if [[ "$all" = "1" ]]; then
     output+=("$KERNEL_NAME_VAL" "$NODENAME_VAL" "$KERNEL_RELEASE_VAL" "$KERNEL_VERSION_VAL" "$MACHINE_VAL")
diff --git a/pkgs/build-support/dotnet/build-dotnet-global-tool/default.nix b/pkgs/build-support/dotnet/build-dotnet-global-tool/default.nix
index 16cf029ca3451..7ae9cfc9f6618 100644
--- a/pkgs/build-support/dotnet/build-dotnet-global-tool/default.nix
+++ b/pkgs/build-support/dotnet/build-dotnet-global-tool/default.nix
@@ -28,7 +28,7 @@ buildDotnetModule (args // {
     ] ++ (nugetDeps fetchNuGet);
   };
 
-  projectFile = "";
+  dotnetGlobalTool = true;
 
   useDotnetFromEnv = true;
 
diff --git a/pkgs/build-support/dotnet/build-dotnet-module/default.nix b/pkgs/build-support/dotnet/build-dotnet-module/default.nix
index 4548616c7d80e..7b88b16064bca 100644
--- a/pkgs/build-support/dotnet/build-dotnet-module/default.nix
+++ b/pkgs/build-support/dotnet/build-dotnet-module/default.nix
@@ -69,7 +69,7 @@
 , disabledTests ? [ ]
   # The project file to run unit tests against. This is usually referenced in the regular project file, but sometimes it needs to be manually set.
   # It gets restored and build, but not installed. You may need to regenerate your nuget lockfile after setting this.
-, testProjectFile ? ""
+, testProjectFile ? null
 
   # The type of build to perform. This is passed to `dotnet` with the `--configuration` flag. Possible values are `Release`, `Debug`, etc.
 , buildType ? "Release"
@@ -84,23 +84,22 @@
 , dotnet-sdk ? dotnetCorePackages.sdk_6_0
   # The dotnet runtime to use.
 , dotnet-runtime ? dotnetCorePackages.runtime_6_0
-  # The dotnet SDK to run tests against. This can differentiate from the SDK compiled against.
-, dotnet-test-sdk ? dotnet-sdk
 , ...
 } @ args:
 
 let
+  projectFiles =
+    lib.optionals (projectFile != null) (lib.toList projectFile);
+  testProjectFiles =
+    lib.optionals (testProjectFile != null) (lib.toList testProjectFile);
+
   platforms =
     if args ? meta.platforms
     then lib.intersectLists args.meta.platforms dotnet-sdk.meta.platforms
     else dotnet-sdk.meta.platforms;
 
   inherit (callPackage ./hooks {
-    inherit dotnet-sdk dotnet-test-sdk disabledTests nuget-source dotnet-runtime runtimeDeps buildType;
-    runtimeId =
-      if runtimeId != null
-      then runtimeId
-      else dotnetCorePackages.systemToDotnetRid stdenvNoCC.targetPlatform.system;
+    inherit dotnet-sdk dotnet-runtime;
   }) dotnetConfigureHook dotnetBuildHook dotnetCheckHook dotnetInstallHook dotnetFixupHook;
 
   localDeps =
@@ -121,7 +120,7 @@ let
   # contains the actual package dependencies
   dependenciesSource = mkNugetSource {
     name = "${name}-dependencies-source";
-    description = "A Nuget source with the dependencies for ${name}";
+    description = "Nuget source with the dependencies for ${name}";
     deps = [ _nugetDeps ] ++ lib.optional (localDeps != null) localDeps;
   };
 
@@ -145,6 +144,19 @@ let
   nugetDepsFile = _nugetDeps.sourceFile;
 in
 stdenvNoCC.mkDerivation (args // {
+  dotnetInstallPath = installPath;
+  dotnetExecutables = executables;
+  dotnetBuildType = buildType;
+  dotnetProjectFiles = projectFiles;
+  dotnetTestProjectFiles = testProjectFiles;
+  dotnetDisabledTests = disabledTests;
+  dotnetRuntimeId = runtimeId;
+  nugetSource = nuget-source;
+  dotnetRuntimeDeps = map lib.getLib runtimeDeps;
+  dotnetSelfContainedBuild = selfContainedBuild;
+  dotnetUseAppHost = useAppHost;
+  inherit useDotnetFromEnv;
+
   nativeBuildInputs = args.nativeBuildInputs or [ ] ++ [
     dotnetConfigureHook
     dotnetBuildHook
@@ -174,7 +186,7 @@ stdenvNoCC.mkDerivation (args // {
        else [ ]));
 
   makeWrapperArgs = args.makeWrapperArgs or [ ] ++ [
-    "--prefix LD_LIBRARY_PATH : ${dotnet-sdk.icu}/lib"
+    "--prefix" "LD_LIBRARY_PATH" ":" "${dotnet-sdk.icu}/lib"
   ];
 
   # Stripping breaks the executable
@@ -183,8 +195,6 @@ stdenvNoCC.mkDerivation (args // {
   # gappsWrapperArgs gets included when wrapping for dotnet, as to avoid double wrapping
   dontWrapGApps = args.dontWrapGApps or true;
 
-  inherit selfContainedBuild useAppHost useDotnetFromEnv;
-
   # propagate the runtime sandbox profile since the contents apply to published
   # executables
   propagatedSandboxProfile = toString dotnet-runtime.__propagatedSandboxProfile;
@@ -269,11 +279,11 @@ stdenvNoCC.mkDerivation (args // {
                 --no-cache \
                 --force \
                 ${lib.optionalString (!enableParallelBuilding) "--disable-parallel"} \
-                ${lib.optionalString (flags != []) (toString flags)}
+                ${lib.escapeShellArgs flags}
         }
 
-        declare -a projectFiles=( ${toString (lib.toList projectFile)} )
-        declare -a testProjectFiles=( ${toString (lib.toList testProjectFile)} )
+        declare -a projectFiles=( ${lib.escapeShellArgs projectFiles} )
+        declare -a testProjectFiles=( ${lib.escapeShellArgs testProjectFiles} )
 
         export DOTNET_NOLOGO=1
         export DOTNET_CLI_TELEMETRY_OPTOUT=1
diff --git a/pkgs/build-support/dotnet/build-dotnet-module/hooks/default.nix b/pkgs/build-support/dotnet/build-dotnet-module/hooks/default.nix
index 7012ff36a4a55..b9c51a743c6a6 100644
--- a/pkgs/build-support/dotnet/build-dotnet-module/hooks/default.nix
+++ b/pkgs/build-support/dotnet/build-dotnet-module/hooks/default.nix
@@ -4,30 +4,21 @@
 , coreutils
 , zlib
 , openssl
-, callPackage
 , makeSetupHook
-, makeWrapper
+, dotnetCorePackages
+  # Passed from ../default.nix
 , dotnet-sdk
-, dotnet-test-sdk
-, disabledTests
-, nuget-source
 , dotnet-runtime
-, runtimeDeps
-, buildType
-, runtimeId
 }:
-assert (builtins.isString runtimeId);
-
 let
-  libraryPath = lib.makeLibraryPath runtimeDeps;
+  runtimeId = dotnetCorePackages.systemToDotnetRid stdenv.hostPlatform.system;
 in
 {
-  dotnetConfigureHook = callPackage ({ }:
-    makeSetupHook {
+  dotnetConfigureHook = makeSetupHook
+    {
       name = "dotnet-configure-hook";
-      propagatedBuildInputs = [ dotnet-sdk nuget-source ];
       substitutions = {
-        nugetSource = nuget-source;
+        runtimeId = lib.escapeShellArg runtimeId;
         dynamicLinker = "${stdenv.cc}/nix-support/dynamic-linker";
         libPath = lib.makeLibraryPath [
           stdenv.cc.cc.lib
@@ -36,54 +27,44 @@ in
           zlib
           openssl
         ];
-        inherit runtimeId;
       };
-    } ./dotnet-configure-hook.sh) { };
+    }
+    ./dotnet-configure-hook.sh;
 
-  dotnetBuildHook = callPackage ({ }:
-    makeSetupHook {
+  dotnetBuildHook = makeSetupHook
+    {
       name = "dotnet-build-hook";
-      propagatedBuildInputs = [ dotnet-sdk ];
       substitutions = {
-        inherit buildType runtimeId;
+        runtimeId = lib.escapeShellArg runtimeId;
       };
-    } ./dotnet-build-hook.sh) { };
+    }
+    ./dotnet-build-hook.sh;
 
-  dotnetCheckHook = callPackage ({ }:
-    makeSetupHook {
+  dotnetCheckHook = makeSetupHook
+    {
       name = "dotnet-check-hook";
-      propagatedBuildInputs = [ dotnet-test-sdk ];
       substitutions = {
-        inherit buildType runtimeId libraryPath;
-        disabledTests = lib.optionalString (disabledTests != [])
-          (let
-            escapedNames = lib.lists.map (n: lib.replaceStrings [","] ["%2C"] n) disabledTests;
-            filters = lib.lists.map (n: "FullyQualifiedName!=${n}") escapedNames;
-          in
-          "${lib.concatStringsSep "&" filters}");
+        runtimeId = lib.escapeShellArg runtimeId;
       };
-    } ./dotnet-check-hook.sh) { };
+    }
+    ./dotnet-check-hook.sh;
 
-  dotnetInstallHook = callPackage ({ }:
-    makeSetupHook {
+  dotnetInstallHook = makeSetupHook
+    {
       name = "dotnet-install-hook";
-      propagatedBuildInputs = [ dotnet-sdk ];
       substitutions = {
-        inherit buildType runtimeId;
+        runtimeId = lib.escapeShellArg runtimeId;
       };
-    } ./dotnet-install-hook.sh) { };
+    }
+    ./dotnet-install-hook.sh;
 
-  dotnetFixupHook = callPackage ({ }:
-    makeSetupHook {
+  dotnetFixupHook = makeSetupHook
+    {
       name = "dotnet-fixup-hook";
-      propagatedBuildInputs = [ dotnet-runtime ];
       substitutions = {
         dotnetRuntime = dotnet-runtime;
-        runtimeDeps = libraryPath;
-        shell = stdenv.shell;
-        which = "${which}/bin/which";
-        dirname = "${coreutils}/bin/dirname";
-        realpath = "${coreutils}/bin/realpath";
+        wrapperPath = lib.makeBinPath [ which coreutils ];
       };
-    } ./dotnet-fixup-hook.sh) { };
+    }
+    ./dotnet-fixup-hook.sh;
 }
diff --git a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-build-hook.sh b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-build-hook.sh
index 0acfeced9b169..f209861f79b15 100644
--- a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-build-hook.sh
+++ b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-build-hook.sh
@@ -1,12 +1,25 @@
-# inherit arguments from derivation
-dotnetBuildFlags=( ${dotnetBuildFlags[@]-} )
-
 dotnetBuildHook() {
     echo "Executing dotnetBuildHook"
 
     runHook preBuild
 
-    if [ "${enableParallelBuilding-}" ]; then
+    local -r hostRuntimeId=@runtimeId@
+    local -r dotnetBuildType="${dotnetBuildType-Release}"
+    local -r dotnetRuntimeId="${dotnetRuntimeId-$hostRuntimeId}"
+
+    if [[ -n $__structuredAttrs ]]; then
+        local dotnetProjectFilesArray=( "${dotnetProjectFiles[@]}" )
+        local dotnetTestProjectFilesArray=( "${dotnetTestProjectFiles[@]}" )
+        local dotnetFlagsArray=( "${dotnetFlags[@]}" )
+        local dotnetBuildFlagsArray=( "${dotnetBuildFlags[@]}" )
+    else
+        local dotnetProjectFilesArray=($dotnetProjectFiles)
+        local dotnetTestProjectFilesArray=($dotnetTestProjectFiles)
+        local dotnetFlagsArray=($dotnetFlags)
+        local dotnetBuildFlagsArray=($dotnetBuildFlags)
+    fi
+
+    if [[ -n "${enableParallelBuilding-}" ]]; then
         local -r maxCpuFlag="$NIX_BUILD_CORES"
         local -r parallelBuildFlag="true"
     else
@@ -14,50 +27,53 @@ dotnetBuildHook() {
         local -r parallelBuildFlag="false"
     fi
 
-    if [ "${selfContainedBuild-}" ]; then
-        dotnetBuildFlags+=("-p:SelfContained=true")
+    if [[ -n ${dotnetSelfContainedBuild-} ]]; then
+        dotnetBuildFlagsArray+=("-p:SelfContained=true")
     else
-        dotnetBuildFlags+=("-p:SelfContained=false")
+        dotnetBuildFlagsArray+=("-p:SelfContained=false")
     fi
 
-    if [ "${useAppHost-}" ]; then
-        dotnetBuildFlags+=("-p:UseAppHost=true")
+    if [[ -n ${dotnetUseAppHost-} ]]; then
+        dotnetBuildFlagsArray+=("-p:UseAppHost=true")
     fi
 
-    local versionFlags=()
-    if [ "${version-}" ]; then
-        versionFlags+=("-p:InformationalVersion=${version-}")
+    local versionFlagsArray=()
+    if [[ -n ${version-} ]]; then
+        versionFlagsArray+=("-p:InformationalVersion=$version")
     fi
 
-    if [ "${versionForDotnet-}" ]; then
-        versionFlags+=("-p:Version=${versionForDotnet-}")
+    if [[ -n ${versionForDotnet-} ]]; then
+        versionFlagsArray+=("-p:Version=$versionForDotnet")
     fi
 
     dotnetBuild() {
-        local -r project="${1-}"
+        local -r projectFile="${1-}"
 
-        runtimeIdFlags=()
-        if [[ "$project" == *.csproj ]] || [ "${selfContainedBuild-}" ]; then
-            runtimeIdFlags+=("--runtime @runtimeId@")
+        local runtimeIdFlagsArray=()
+        if [[ $projectFile == *.csproj || -n ${dotnetSelfContainedBuild-} ]]; then
+            runtimeIdFlagsArray+=("--runtime" "$dotnetRuntimeId")
         fi
 
-        env dotnet build ${project-} \
-            -maxcpucount:$maxCpuFlag \
-            -p:BuildInParallel=$parallelBuildFlag \
+        dotnet build ${1+"$projectFile"} \
+            -maxcpucount:"$maxCpuFlag" \
+            -p:BuildInParallel="$parallelBuildFlag" \
             -p:ContinuousIntegrationBuild=true \
             -p:Deterministic=true \
-            --configuration "@buildType@" \
+            --configuration "$dotnetBuildType" \
             --no-restore \
-            ${versionFlags[@]} \
-            ${runtimeIdFlags[@]} \
-            ${dotnetBuildFlags[@]}  \
-            ${dotnetFlags[@]}
+            "${versionFlagsArray[@]}" \
+            "${runtimeIdFlagsArray[@]}" \
+            "${dotnetBuildFlagsArray[@]}" \
+            "${dotnetFlagsArray[@]}"
     }
 
-    (( "${#projectFile[@]}" == 0 )) && dotnetBuild
+    if (( ${#dotnetProjectFilesArray[@]} == 0 )); then
+        dotnetBuild
+    fi
 
-    for project in ${projectFile[@]} ${testProjectFile[@]-}; do
-        dotnetBuild "$project"
+    local projectFile
+    for projectFile in "${dotnetProjectFilesArray[@]}" "${dotnetTestProjectFilesArray[@]}"; do
+        dotnetBuild "$projectFile"
     done
 
     runHook postBuild
@@ -65,6 +81,6 @@ dotnetBuildHook() {
     echo "Finished dotnetBuildHook"
 }
 
-if [[ -z "${dontDotnetBuild-}" && -z "${buildPhase-}" ]]; then
+if [[ -z ${dontDotnetBuild-} && -z ${buildPhase-} ]]; then
     buildPhase=dotnetBuildHook
 fi
diff --git a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-check-hook.sh b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-check-hook.sh
index 507721ef98181..c91251f4f1807 100644
--- a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-check-hook.sh
+++ b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-check-hook.sh
@@ -1,39 +1,65 @@
-# inherit arguments from derivation
-dotnetTestFlags=( ${dotnetTestFlags[@]-} )
-
 dotnetCheckHook() {
     echo "Executing dotnetCheckHook"
 
     runHook preCheck
 
-    if [ "${disabledTests-}" ]; then
-        local -r disabledTestsFlag="--filter @disabledTests@"
+    local -r hostRuntimeId=@runtimeId@
+    local -r dotnetBuildType="${dotnetBuildType-Release}"
+    local -r dotnetRuntimeId="${dotnetRuntimeId-$hostRuntimeId}"
+
+    if [[ -n $__structuredAttrs ]]; then
+        local dotnetProjectFilesArray=( "${dotnetProjectFiles[@]}" )
+        local dotnetTestProjectFilesArray=( "${dotnetTestProjectFiles[@]}" )
+        local dotnetTestFlagsArray=( "${dotnetTestFlags[@]}" )
+        local dotnetDisabledTestsArray=( "${dotnetDisabledTests[@]}" )
+        local dotnetRuntimeDepsArray=( "${dotnetRuntimeDeps[@]}" )
+    else
+        local dotnetProjectFilesArray=($dotnetProjectFiles)
+        local dotnetTestProjectFilesArray=($dotnetTestProjectFiles)
+        local dotnetTestFlagsArray=($dotnetTestFlags)
+        local dotnetDisabledTestsArray=($dotnetDisabledTests)
+        local dotnetRuntimeDepsArray=($dotnetRuntimeDeps)
+    fi
+
+    if (( ${#dotnetDisabledTestsArray[@]} > 0 )); then
+        local disabledTestsFilters=("${dotnetDisabledTestsArray[@]/#/FullyQualifiedName!=}")
+        local OLDIFS="$IFS" IFS='&'
+        dotnetTestFlagsArray+=("--filter:${disabledTestsFilters[*]//,/%2C}")
+        IFS="$OLDIFS"
+    fi
+
+    local libraryPath="${LD_LIBRARY_PATH-}"
+    if (( ${#dotnetRuntimeDepsArray[@]} > 0 )); then
+        local libraryPathArray=("${dotnetRuntimeDepsArray[@]/%//lib}")
+        local OLDIFS="$IFS" IFS=':'
+        libraryPath="${libraryPathArray[*]}${libraryPath:+':'}$libraryPath"
+        IFS="$OLDIFS"
     fi
 
-    if [ "${enableParallelBuilding-}" ]; then
+    if [[ -n ${enableParallelBuilding-} ]]; then
         local -r maxCpuFlag="$NIX_BUILD_CORES"
     else
         local -r maxCpuFlag="1"
     fi
 
-    for project in ${testProjectFile[@]-${projectFile[@]}}; do
-        runtimeIdFlags=()
-        if [[ "$project" == *.csproj ]]; then
-            runtimeIdFlags=("--runtime @runtimeId@")
+    local projectFile
+    for projectFile in "${dotnetTestProjectFilesArray[@]-${dotnetProjectFilesArray[@]}}"; do
+        local runtimeIdFlagsArray=()
+        if [[ $projectFile == *.csproj ]]; then
+            runtimeIdFlagsArray=("--runtime" "$dotnetRuntimeId")
         fi
 
-        env "LD_LIBRARY_PATH=@libraryPath@" \
-            dotnet test "$project" \
-              -maxcpucount:$maxCpuFlag \
+        LD_LIBRARY_PATH=$libraryPath \
+            dotnet test "$projectFile" \
+              -maxcpucount:"$maxCpuFlag" \
               -p:ContinuousIntegrationBuild=true \
               -p:Deterministic=true \
-              --configuration "@buildType@" \
+              --configuration "$dotnetBuildType" \
               --no-build \
               --logger "console;verbosity=normal" \
-              ${disabledTestsFlag-} \
-              ${runtimeIdFlags[@]} \
-              "${dotnetTestFlags[@]}"  \
-              "${dotnetFlags[@]}"
+              "${runtimeIdFlagsArray[@]}" \
+              "${dotnetTestFlagsArray[@]}" \
+              "${dotnetFlagsArray[@]}"
     done
 
     runHook postCheck
diff --git a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-configure-hook.sh b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-configure-hook.sh
index c046fc3c306b1..12fa348699865 100644
--- a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-configure-hook.sh
+++ b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-configure-hook.sh
@@ -1,63 +1,103 @@
-declare -a projectFile testProjectFile
-
-# Inherit arguments from derivation
-dotnetFlags=( ${dotnetFlags[@]-} )
-dotnetRestoreFlags=( ${dotnetRestoreFlags[@]-} )
-
 dotnetConfigureHook() {
     echo "Executing dotnetConfigureHook"
 
     runHook preConfigure
 
-    if [ -z "${enableParallelBuilding-}" ]; then
+    if [[ -z ${nugetSource-} ]]; then
+        echo
+        echo "ERROR: no dependencies were specified"
+        echo 'Hint: set `nugetSource` if using these hooks individually. If this is happening with `buildDotnetModule`, please open an issue.'
+        echo
+
+        exit 1
+    fi
+
+    local nugetSourceSedQuoted="${nugetSource//[\/\\&$'\n']/\\&}"
+    local nugetSourceXMLQuoted="$nugetSource"
+    nugetSourceXMLQuoted="${nugetSource//&/\&amp;}"
+    nugetSourceXMLQuoted="${nugetSourceXMLQuoted//\"/\&quot;}"
+
+    local -r hostRuntimeId=@runtimeId@
+    local -r dynamicLinker=@dynamicLinker@
+    local -r libPath=@libPath@
+    local -r dotnetRuntimeId="${dotnetRuntimeId-$hostRuntimeId}"
+
+    if [[ -n $__structuredAttrs ]]; then
+        local dotnetProjectFilesArray=( "${dotnetProjectFiles[@]}" )
+        local dotnetTestProjectFilesArray=( "${dotnetTestProjectFiles[@]}" )
+        local dotnetFlagsArray=( "${dotnetFlags[@]}" )
+        local dotnetRestoreFlagsArray=( "${dotnetRestoreFlags[@]}" )
+    else
+        local dotnetProjectFilesArray=($dotnetProjectFiles)
+        local dotnetTestProjectFilesArray=($dotnetTestProjectFiles)
+        local dotnetFlagsArray=($dotnetFlags)
+        local dotnetRestoreFlagsArray=($dotnetRestoreFlags)
+    fi
+
+    if [[ -z ${enableParallelBuilding-} ]]; then
         local -r parallelFlag="--disable-parallel"
     fi
 
     dotnetRestore() {
-        local -r project="${1-}"
-        env dotnet restore ${project-} \
+        local -r projectFile="${1-}"
+        dotnet restore ${1+"$projectFile"} \
             -p:ContinuousIntegrationBuild=true \
             -p:Deterministic=true \
-            --runtime "@runtimeId@" \
-            --source "@nugetSource@/lib" \
+            --runtime "$dotnetRuntimeId" \
+            --source "$nugetSource/lib" \
             ${parallelFlag-} \
-            ${dotnetRestoreFlags[@]} \
-            ${dotnetFlags[@]}
+            "${dotnetRestoreFlagsArray[@]}" \
+            "${dotnetFlagsArray[@]}"
     }
 
     # Generate a NuGet.config file to make sure everything,
     # including things like <Sdk /> dependencies, is restored from the proper source
-cat <<EOF > "./NuGet.config"
+    cat >NuGet.config <<EOF
 <?xml version="1.0" encoding="utf-8"?>
 <configuration>
   <packageSources>
     <clear />
-    <add key="nugetSource" value="@nugetSource@/lib" />
+    <add key="nugetSource" value="$nugetSourceXMLQuoted/lib" />
   </packageSources>
 </configuration>
 EOF
 
-    # Patch paket.dependencies and paket.lock (if found) to use the proper source. This ensures
-    # paket restore works correctly
-    # We use + instead of / in sed to avoid problems with slashes
-    find -name paket.dependencies -exec sed -i 's+source .*+source @nugetSource@/lib+g' {} \;
-    find -name paket.lock -exec sed -i 's+remote:.*+remote: @nugetSource@/lib+g' {} \;
-
-    env dotnet tool restore --add-source "@nugetSource@/lib"
-
-    (( "${#projectFile[@]}" == 0 )) && dotnetRestore
+    # Patch paket.dependencies and paket.lock (if found) to use the proper
+    # source. This ensures paket restore works correctly. Note that the
+    # nugetSourceSedQuoted abomination below safely escapes nugetSource string
+    # for use as a sed replacement string to avoid issues with slashes and other
+    # special characters ('&', '\\' and '\n').
+    find -name paket.dependencies -exec sed -i "s/source .*/source $nugetSourceSedQuoted\/lib/g" {} \;
+    find -name paket.lock -exec sed -i "s/remote:.*/remote: $nugetSourceSedQuoted\/lib/g" {} \;
+
+    dotnet tool restore --add-source "$nugetSource/lib"
+
+    # dotnetGlobalTool is set in buildDotnetGlobalTool to patch dependencies but
+    # avoid other project-specific logic. This is a hack, but the old behavior
+    # is worse as it relied on a bug: setting projectFile to an empty string
+    # made the hooks actually skip all project-specific logic. It’s hard to keep
+    # backwards compatibility with this odd behavior now since we are using
+    # arrays, so instead we just pass a variable to indicate that we don’t have
+    # projects.
+    if [[ -z ${dotnetGlobalTool-} ]]; then
+        if (( ${#dotnetProjectFilesArray[@]} == 0 )); then
+            dotnetRestore
+        fi
 
-    for project in ${projectFile[@]} ${testProjectFile[@]-}; do
-        dotnetRestore "$project"
-    done
+        local projectFile
+        for projectFile in "${dotnetProjectFilesArray[@]}" "${dotnetTestProjectFilesArray[@]}"; do
+            dotnetRestore "$projectFile"
+        done
+    fi
 
     echo "Fixing up native binaries..."
     # Find all native binaries and nuget libraries, and fix them up,
     # by setting the proper interpreter and rpath to some commonly used libraries
+    local binary
     for binary in $(find "$HOME/.nuget/packages/" -type f -executable); do
         if patchelf --print-interpreter "$binary" >/dev/null 2>/dev/null; then
             echo "Found binary: $binary, fixing it up..."
-            patchelf --set-interpreter "$(cat "@dynamicLinker@")" "$binary"
+            patchelf --set-interpreter "$(cat "$dynamicLinker")" "$binary"
 
             # This makes sure that if the binary requires some specific runtime dependencies, it can find it.
             # This fixes dotnet-built binaries like crossgen2
@@ -68,7 +108,7 @@ EOF
                 --add-needed libssl.so \
                 "$binary"
 
-            patchelf --set-rpath "@libPath@" "$binary"
+            patchelf --set-rpath "$libPath" "$binary"
         fi
     done
 
diff --git a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-fixup-hook.sh b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-fixup-hook.sh
index e3671728af35e..f9aba29a43555 100644
--- a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-fixup-hook.sh
+++ b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-fixup-hook.sh
@@ -1,28 +1,55 @@
-# Inherit arguments from the derivation
-declare -a derivationMakeWrapperArgs="( ${makeWrapperArgs-} )"
-makeWrapperArgs=( "${derivationMakeWrapperArgs[@]}" )
-
 # First argument is the executable you want to wrap,
 # the second is the destination for the wrapper.
 wrapDotnetProgram() {
-    local dotnetRootFlags=()
+    local -r dotnetRuntime=@dotnetRuntime@
+    local -r wrapperPath=@wrapperPath@
+
+    local -r dotnetFromEnvScript='dotnetFromEnv() {
+    local dotnetPath
+    if command -v dotnet 2>&1 >/dev/null; then
+        dotnetPath=$(which dotnet) && \
+            dotnetPath=$(realpath "$dotnetPath") && \
+            dotnetPath=$(dirname "$dotnetPath") && \
+            export DOTNET_ROOT="$dotnetPath"
+    fi
+}
+dotnetFromEnv'
+
+    if [[ -n $__structuredAttrs ]]; then
+        local -r dotnetRuntimeDepsArray=( "${dotnetRuntimeDeps[@]}" )
+        local -r makeWrapperArgsArray=( "${makeWrapperArgs[@]}" )
+    else
+        local -r dotnetRuntimeDepsArray=($dotnetRuntimeDeps)
+        local -r makeWrapperArgsArray=($makeWrapperArgs)
+    fi
 
-    if [ ! "${selfContainedBuild-}" ]; then
-        if [ "${useDotnetFromEnv-}" ]; then
+    local dotnetRuntimeDepsFlags=()
+    if (( ${#dotnetRuntimeDepsArray[@]} > 0 )); then
+        local libraryPathArray=("${dotnetRuntimeDepsArray[@]/%//lib}")
+        local OLDIFS="$IFS" IFS=':'
+        dotnetRuntimeDepsFlags+=("--suffix" "LD_LIBRARY_PATH" ":" "${libraryPathArray[*]}")
+        IFS="$OLDIFS"
+    fi
+
+    local dotnetRootFlagsArray=()
+    if [[ -z ${dotnetSelfContainedBuild-} ]]; then
+        if [[ -n ${useDotnetFromEnv-} ]]; then
             # if dotnet CLI is available, set DOTNET_ROOT based on it. Otherwise set to default .NET runtime
-            dotnetRootFlags+=("--run" 'command -v dotnet &>/dev/null && export DOTNET_ROOT="$(@dirname@ "$(@realpath@ "$(@which@ dotnet)")")" || export DOTNET_ROOT="@dotnetRuntime@"')
-            dotnetRootFlags+=("--suffix" "PATH" ":" "@dotnetRuntime@/bin")
+            dotnetRootFlagsArray+=("--suffix" "PATH" ":" "$wrapperPath")
+            dotnetRootFlagsArray+=("--run" "$dotnetFromEnvScript")
+            dotnetRootFlagsArray+=("--set-default" "DOTNET_ROOT" "$dotnetRuntime")
+            dotnetRootFlagsArray+=("--suffix" "PATH" ":" "$dotnetRuntime/bin")
         else
-            dotnetRootFlags+=("--set" "DOTNET_ROOT" "@dotnetRuntime@")
-            dotnetRootFlags+=("--prefix" "PATH" ":" "@dotnetRuntime@/bin")
+            dotnetRootFlagsArray+=("--set" "DOTNET_ROOT" "$dotnetRuntime")
+            dotnetRootFlagsArray+=("--prefix" "PATH" ":" "$dotnetRuntime/bin")
         fi
     fi
 
     makeWrapper "$1" "$2" \
-        --suffix "LD_LIBRARY_PATH" : "@runtimeDeps@" \
-        "${dotnetRootFlags[@]}" \
+        "${dotnetRuntimeDepsFlags[@]}" \
+        "${dotnetRootFlagsArray[@]}" \
         "${gappsWrapperArgs[@]}" \
-        "${makeWrapperArgs[@]}"
+        "${makeWrapperArgsArray[@]}"
 
     echo "installed wrapper to "$2""
 }
@@ -30,13 +57,24 @@ wrapDotnetProgram() {
 dotnetFixupHook() {
     echo "Executing dotnetFixupPhase"
 
-    # check if executables is declared (including empty values, in which case we generate no executables)
-    if declare -p executables &>/dev/null; then
-        for executable in ${executables[@]}; do
-            path="${installPath-$out/lib/$pname}/$executable"
+    local -r dotnetInstallPath="${dotnetInstallPath-$out/lib/$pname}"
+
+    local executable executableBasename
+
+    # check if dotnetExecutables is declared (including empty values, in which case we generate no executables)
+    if declare -p dotnetExecutables &>/dev/null; then
+        if [[ -n $__structuredAttrs ]]; then
+            local dotnetExecutablesArray=( "${dotnetExecutables[@]}" )
+        else
+            local dotnetExecutablesArray=($dotnetExecutables)
+        fi
+        for executable in "${dotnetExecutablesArray[@]}"; do
+            executableBasename=$(basename "$executable")
+
+            local path="$dotnetInstallPath/$executable"
 
             if test -x "$path"; then
-                wrapDotnetProgram "$path" "$out/bin/$(basename "$executable")"
+                wrapDotnetProgram "$path" "$out/bin/$executableBasename"
             else
                 echo "Specified binary \"$executable\" is either not an executable or does not exist!"
                 echo "Looked in $path"
@@ -45,8 +83,9 @@ dotnetFixupHook() {
         done
     else
         while IFS= read -d '' executable; do
-            wrapDotnetProgram "$executable" "$out/bin/$(basename "$executable")" \;
-        done < <(find "${installPath-$out/lib/$pname}" ! -name "*.dll" -executable -type f -print0)
+            executableBasename=$(basename "$executable")
+            wrapDotnetProgram "$executable" "$out/bin/$executableBasename" \;
+        done < <(find "$dotnetInstallPath" ! -name "*.dll" -executable -type f -print0)
     fi
 
     echo "Finished dotnetFixupPhase"
diff --git a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-install-hook.sh b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-install-hook.sh
index d832eac288096..4d9b3c502c354 100644
--- a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-install-hook.sh
+++ b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-install-hook.sh
@@ -1,70 +1,86 @@
-# inherit arguments from derivation
-dotnetInstallFlags=( ${dotnetInstallFlags[@]-} )
-
 dotnetInstallHook() {
     echo "Executing dotnetInstallHook"
 
     runHook preInstall
 
-    if [ "${selfContainedBuild-}" ]; then
-        dotnetInstallFlags+=("--self-contained")
+    local -r hostRuntimeId=@runtimeId@
+    local -r dotnetInstallPath="${dotnetInstallPath-$out/lib/$pname}"
+    local -r dotnetBuildType="${dotnetBuildType-Release}"
+    local -r dotnetRuntimeId="${dotnetRuntimeId-$hostRuntimeId}"
+
+    if [[ -n $__structuredAttrs ]]; then
+        local dotnetProjectFilesArray=( "${dotnetProjectFiles[@]}" )
+        local dotnetFlagsArray=( "${dotnetFlags[@]}" )
+        local dotnetInstallFlagsArray=( "${dotnetInstallFlags[@]}" )
+        local dotnetPackFlagsArray=( "${dotnetPackFlags[@]}" )
+    else
+        local dotnetProjectFilesArray=($dotnetProjectFiles)
+        local dotnetFlagsArray=($dotnetFlags)
+        local dotnetInstallFlagsArray=($dotnetInstallFlags)
+        local dotnetPackFlagsArray=($dotnetPackFlags)
+    fi
+
+    if [[ -n ${dotnetSelfContainedBuild-} ]]; then
+        dotnetInstallFlagsArray+=("--self-contained")
     else
-        dotnetInstallFlags+=("--no-self-contained")
+        dotnetInstallFlagsArray+=("--no-self-contained")
         # https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/trim-self-contained
         # Trimming is only available for self-contained build, so force disable it here
-        dotnetInstallFlags+=("-p:PublishTrimmed=false")
+        dotnetInstallFlagsArray+=("-p:PublishTrimmed=false")
     fi
 
-    if [ "${useAppHost-}" ]; then
-        dotnetInstallFlags+=("-p:UseAppHost=true")
+    if [[ -n ${dotnetUseAppHost-} ]]; then
+        dotnetInstallFlagsArray+=("-p:UseAppHost=true")
     fi
 
     dotnetPublish() {
-        local -r project="${1-}"
+        local -r projectFile="${1-}"
 
-        runtimeIdFlags=()
-        if [[ "$project" == *.csproj ]] || [ "${selfContainedBuild-}" ]; then
-            runtimeIdFlags+=("--runtime @runtimeId@")
+        runtimeIdFlagsArray=()
+        if [[ $projectFile == *.csproj || -n ${dotnetSelfContainedBuild-} ]]; then
+            runtimeIdFlagsArray+=("--runtime" "$dotnetRuntimeId")
         fi
 
-        env dotnet publish ${project-} \
+        dotnet publish ${1+"$projectFile"} \
             -p:ContinuousIntegrationBuild=true \
             -p:Deterministic=true \
-            --output "${installPath-$out/lib/$pname}" \
-            --configuration "@buildType@" \
+            --output "$dotnetInstallPath" \
+            --configuration "$dotnetBuildType" \
             --no-build \
-            ${runtimeIdFlags[@]} \
-            ${dotnetInstallFlags[@]}  \
-            ${dotnetFlags[@]}
+            "${runtimeIdFlagsArray[@]}" \
+            "${dotnetInstallFlagsArray[@]}" \
+            "${dotnetFlagsArray[@]}"
     }
 
     dotnetPack() {
-        local -r project="${1-}"
-        env dotnet pack ${project-} \
+        local -r projectFile="${1-}"
+        dotnet pack ${1+"$projectFile"} \
             -p:ContinuousIntegrationBuild=true \
             -p:Deterministic=true \
             --output "$out/share" \
-            --configuration "@buildType@" \
+            --configuration "$dotnetBuildType" \
             --no-build \
-            --runtime "@runtimeId@" \
-            ${dotnetPackFlags[@]}  \
-            ${dotnetFlags[@]}
+            --runtime "$dotnetRuntimeId" \
+            "${dotnetPackFlagsArray[@]}" \
+            "${dotnetFlagsArray[@]}"
     }
 
-    if (( "${#projectFile[@]}" == 0 )); then
+    if (( ${#dotnetProjectFilesArray[@]} == 0 )); then
         dotnetPublish
     else
-        for project in ${projectFile[@]}; do
-            dotnetPublish "$project"
+        local projectFile
+        for projectFile in "${dotnetProjectFilesArray[@]}"; do
+            dotnetPublish "$projectFile"
         done
     fi
 
-    if [[ "${packNupkg-}" ]]; then
-        if (( "${#projectFile[@]}" == 0 )); then
+    if [[ -n ${packNupkg-} ]]; then
+        if (( ${#dotnetProjectFilesArray[@]} == 0 )); then
             dotnetPack
         else
-            for project in ${projectFile[@]}; do
-                dotnetPack "$project"
+            local projectFile
+            for projectFile in "${dotnetProjectFilesArray[@]}"; do
+                dotnetPack "$projectFile"
             done
         fi
     fi
diff --git a/pkgs/build-support/emacs/melpa.nix b/pkgs/build-support/emacs/melpa.nix
index 323c6e65d9d90..c8f6567049180 100644
--- a/pkgs/build-support/emacs/melpa.nix
+++ b/pkgs/build-support/emacs/melpa.nix
@@ -35,25 +35,41 @@ in
   pname
   /*
     ename: Original Emacs package name, possibly containing special symbols.
+    Default: pname
   */
-, ename ? null
+, ename ? pname
 , version
-, recipe
+  /*
+    commit: Optional package history commit.
+    Default: src.rev or "unknown"
+    This will be written into the generated package but it is not needed during
+    the build process.
+  */
+, commit ? (args.src.rev or "unknown")
+  /*
+    files: Optional recipe property specifying the files used to build the package.
+    If null, do not set it in recipe, keeping the default upstream behaviour.
+    Default: null
+  */
+, files ? null
+  /*
+    recipe: Optional MELPA recipe.
+    Default: a minimally functional recipe
+  */
+, recipe ? (writeText "${pname}-recipe" ''
+    (${ename} :fetcher git :url ""
+              ${lib.optionalString (files != null) ":files ${files}"})
+  '')
 , meta ? {}
 , ...
 }@args:
 
 genericBuild ({
 
-  ename =
-    if ename == null
-    then pname
-    else ename;
-
   elpa2nix = ./elpa2nix.el;
   melpa2nix = ./melpa2nix.el;
 
-  inherit packageBuild;
+  inherit packageBuild commit ename recipe;
 
   preUnpack = ''
     mkdir -p "$NIX_BUILD_TOP/recipes"
diff --git a/pkgs/build-support/flutter/default.nix b/pkgs/build-support/flutter/default.nix
index 2af03d5f98e3c..ff6c6b31006f7 100644
--- a/pkgs/build-support/flutter/default.nix
+++ b/pkgs/build-support/flutter/default.nix
@@ -10,21 +10,32 @@
 , pkg-config
 , jq
 , yq
-, moreutils
 }:
 
 # absolutely no mac support for now
 
-{ pubGetScript ? "flutter pub get"
+{ pubGetScript ? null
 , flutterBuildFlags ? [ ]
 , targetFlutterPlatform ? "linux"
 , extraWrapProgramArgs ? ""
+, flutterMode ? null
 , ...
 }@args:
 
 let
+  hasEngine = flutter ? engine && flutter.engine != null && flutter.engine.meta.available;
+  flutterMode = args.flutterMode or (if hasEngine then flutter.engine.runtimeMode else "release");
+
+  flutterFlags = lib.optional hasEngine "--local-engine host_${flutterMode}${lib.optionalString (!flutter.engine.isOptimized) "_unopt"}";
+
+  flutterBuildFlags = [
+    "--${flutterMode}"
+  ] ++ (args.flutterBuildFlags or []) ++ flutterFlags;
+
   builderArgs = rec {
     universal = args // {
+      inherit flutterMode flutterFlags flutterBuildFlags;
+
       sdkSetupScript = ''
         # Pub needs SSL certificates. Dart normally looks in a hardcoded path.
         # https://github.com/dart-lang/sdk/blob/3.1.0/runtime/bin/security_context_linux.cc#L48
@@ -47,11 +58,11 @@ let
         ''}/bin/dart"
 
         export HOME="$NIX_BUILD_TOP"
-        flutter config --no-analytics &>/dev/null # mute first-run
-        flutter config --enable-linux-desktop >/dev/null
+        flutter config $flutterFlags --no-analytics &>/dev/null # mute first-run
+        flutter config $flutterFlags --enable-linux-desktop >/dev/null
       '';
 
-      inherit pubGetScript;
+      pubGetScript = args.pubGetScript or "flutter${lib.optionalString hasEngine " --local-engine $flutterMode"} pub get";
 
       sdkSourceBuilders = {
         # https://github.com/dart-lang/pub/blob/68dc2f547d0a264955c1fa551fa0a0e158046494/lib/src/sdk/flutter.dart#L81
@@ -68,16 +79,34 @@ let
             exit 1
           fi
         '';
+        # https://github.com/dart-lang/pub/blob/e1fbda73d1ac597474b82882ee0bf6ecea5df108/lib/src/sdk/dart.dart#L80
+        "dart" = name: runCommand "dart-sdk-${name}" { passthru.packageRoot = "."; } ''
+          for path in '${flutter.dart}/pkg/${name}'; do
+            if [ -d "$path" ]; then
+              ln -s "$path" "$out"
+              break
+            fi
+          done
+
+          if [ ! -e "$out" ]; then
+            echo 1>&2 'The Dart SDK does not contain the requested package: ${name}!'
+            exit 1
+          fi
+        '';
       };
 
       extraPackageConfigSetup = ''
         # https://github.com/flutter/flutter/blob/3.13.8/packages/flutter_tools/lib/src/dart/pub.dart#L755
         if [ "$('${yq}/bin/yq' '.flutter.generate // false' pubspec.yaml)" = "true" ]; then
+          export TEMP_PACKAGES=$(mktemp)
           '${jq}/bin/jq' '.packages |= . + [{
             name: "flutter_gen",
             rootUri: "flutter_gen",
             languageVersion: "2.12",
-          }]' "$out" | '${moreutils}/bin/sponge' "$out"
+          }]' "$out" > "$TEMP_PACKAGES"
+          cp "$TEMP_PACKAGES" "$out"
+          rm "$TEMP_PACKAGES"
+          unset TEMP_PACKAGES
         fi
       '';
     };
@@ -105,7 +134,7 @@ let
 
         mkdir -p build/flutter_assets/fonts
 
-        flutter build linux -v --release --split-debug-info="$debug" ${builtins.concatStringsSep " " (map (flag: "\"${flag}\"") flutterBuildFlags)}
+        flutter build linux -v --split-debug-info="$debug" $flutterBuildFlags
 
         runHook postBuild
       '';
@@ -114,7 +143,7 @@ let
       installPhase = universal.installPhase or ''
         runHook preInstall
 
-        built=build/linux/*/release/bundle
+        built=build/linux/*/$flutterMode/bundle
 
         mkdir -p $out/bin
         mv $built $out/app
@@ -156,7 +185,7 @@ let
 
         mkdir -p build/flutter_assets/fonts
 
-        flutter build web -v --release ${builtins.concatStringsSep " " (map (flag: "\"${flag}\"") flutterBuildFlags)}
+        flutter build web -v $flutterBuildFlags
 
         runHook postBuild
       '';
diff --git a/pkgs/build-support/libredirect/default.nix b/pkgs/build-support/libredirect/default.nix
index 1ab4a0db827aa..c4399189b7a21 100644
--- a/pkgs/build-support/libredirect/default.nix
+++ b/pkgs/build-support/libredirect/default.nix
@@ -112,7 +112,7 @@ else stdenv.mkDerivation rec {
 
   meta = with lib; {
     platforms = platforms.unix;
-    description = "An LD_PRELOAD library to intercept and rewrite the paths in glibc calls";
+    description = "LD_PRELOAD library to intercept and rewrite the paths in glibc calls";
     longDescription = ''
       libredirect is an LD_PRELOAD library to intercept and rewrite the paths in
       glibc calls based on the value of $NIX_REDIRECTS, a colon-separated list
diff --git a/pkgs/build-support/make-pkgconfigitem/default.nix b/pkgs/build-support/make-pkgconfigitem/default.nix
index d3bcabbb940f9..e459184b8d7eb 100644
--- a/pkgs/build-support/make-pkgconfigitem/default.nix
+++ b/pkgs/build-support/make-pkgconfigitem/default.nix
@@ -4,7 +4,7 @@
 { name # The name of the pc file
   # keywords
   # provide a default description for convenience. it's not important but still required by pkg-config.
-, description ? "A pkg-config file for ${name}"
+, description ? "Pkg-config file for ${name}"
 , url ? ""
 , version ? ""
 , requires ? [ ]
diff --git a/pkgs/build-support/node/fetch-yarn-deps/default.nix b/pkgs/build-support/node/fetch-yarn-deps/default.nix
index 7f0e0692f81f6..4ef74c0cab884 100644
--- a/pkgs/build-support/node/fetch-yarn-deps/default.nix
+++ b/pkgs/build-support/node/fetch-yarn-deps/default.nix
@@ -25,7 +25,8 @@ in {
 
       tar --strip-components=1 -xf ${yarnpkg-lockfile-tar} package/index.js
       mv index.js $out/libexec/yarnpkg-lockfile.js
-      cp ${./.}/common.js ${./.}/index.js $out/libexec/
+      cp ${./common.js} $out/libexec/common.js
+      cp ${./index.js} $out/libexec/index.js
 
       patchShebangs $out/libexec
       makeWrapper $out/libexec/index.js $out/bin/prefetch-yarn-deps \
@@ -53,7 +54,8 @@ in {
 
       tar --strip-components=1 -xf ${yarnpkg-lockfile-tar} package/index.js
       mv index.js $out/libexec/yarnpkg-lockfile.js
-      cp ${./.}/common.js ${./.}/fixup.js $out/libexec/
+      cp ${./common.js} $out/libexec/common.js
+      cp ${./fixup.js} $out/libexec/fixup.js
 
       patchShebangs $out/libexec
       makeWrapper $out/libexec/fixup.js $out/bin/fixup-yarn-lock
@@ -97,7 +99,7 @@ in {
       '';
 
       outputHashMode = "recursive";
-    } // hash_ // (removeAttrs args ["src" "name" "hash" "sha256"]));
+    } // hash_ // (removeAttrs args (["name" "hash" "sha256"] ++ (lib.optional (src == null) "src"))));
 
   in lib.setFunctionArgs f (lib.functionArgs f) // {
     inherit tests;
diff --git a/pkgs/build-support/php/builders/default.nix b/pkgs/build-support/php/builders/default.nix
index 209c834367d18..ea9bb33504356 100644
--- a/pkgs/build-support/php/builders/default.nix
+++ b/pkgs/build-support/php/builders/default.nix
@@ -2,6 +2,7 @@
 {
   v1 = {
     buildComposerProject = callPackage ./v1/build-composer-project.nix { };
+    buildComposerWithPlugin = callPackage ./v1/build-composer-with-plugin.nix { };
     mkComposerRepository = callPackage ./v1/build-composer-repository.nix { };
     composerHooks = callPackages ./v1/hooks { };
   };
diff --git a/pkgs/build-support/php/builders/v1/build-composer-project.nix b/pkgs/build-support/php/builders/v1/build-composer-project.nix
index 7e24812d2e768..698391ad1603c 100644
--- a/pkgs/build-support/php/builders/v1/build-composer-project.nix
+++ b/pkgs/build-support/php/builders/v1/build-composer-project.nix
@@ -1,5 +1,4 @@
 {
-  callPackage,
   nix-update-script,
   stdenvNoCC,
   lib,
@@ -12,8 +11,7 @@ let
 
     let
       phpDrv = finalAttrs.php or php;
-      composer = finalAttrs.composer or phpDrv.packages.composer;
-      composer-local-repo-plugin = callPackage ../../pkgs/composer-local-repo-plugin.nix { };
+      composer = finalAttrs.composer or phpDrv.packages.composer-local-repo-plugin;
     in
     {
       composerLock = previousAttrs.composerLock or null;
@@ -24,7 +22,6 @@ let
 
       nativeBuildInputs = (previousAttrs.nativeBuildInputs or [ ]) ++ [
         composer
-        composer-local-repo-plugin
         phpDrv
         phpDrv.composerHooks.composerInstallHook
       ];
@@ -74,7 +71,7 @@ let
 
       composerRepository =
         previousAttrs.composerRepository or (phpDrv.mkComposerRepository {
-          inherit composer composer-local-repo-plugin;
+          inherit composer;
           inherit (finalAttrs)
             patches
             pname
diff --git a/pkgs/build-support/php/builders/v1/build-composer-repository.nix b/pkgs/build-support/php/builders/v1/build-composer-repository.nix
index 54944b91d202d..037d8bdeb3eb1 100644
--- a/pkgs/build-support/php/builders/v1/build-composer-repository.nix
+++ b/pkgs/build-support/php/builders/v1/build-composer-repository.nix
@@ -1,5 +1,4 @@
 {
-  callPackage,
   stdenvNoCC,
   lib,
   php,
@@ -23,8 +22,7 @@ let
 
     let
       phpDrv = finalAttrs.php or php;
-      composer = finalAttrs.composer or phpDrv.packages.composer;
-      composer-local-repo-plugin = callPackage ../../pkgs/composer-local-repo-plugin.nix { };
+      composer = finalAttrs.composer or phpDrv.packages.composer-local-repo-plugin;
     in
     assert (lib.assertMsg (previousAttrs ? src) "mkComposerRepository expects src argument.");
     assert (
@@ -58,7 +56,6 @@ let
 
       nativeBuildInputs = (previousAttrs.nativeBuildInputs or [ ]) ++ [
         composer
-        composer-local-repo-plugin
         phpDrv
         phpDrv.composerHooks.composerRepositoryHook
       ];
diff --git a/pkgs/build-support/php/builders/v1/build-composer-with-plugin.nix b/pkgs/build-support/php/builders/v1/build-composer-with-plugin.nix
new file mode 100644
index 0000000000000..060b51241e6c8
--- /dev/null
+++ b/pkgs/build-support/php/builders/v1/build-composer-with-plugin.nix
@@ -0,0 +1,161 @@
+{
+  stdenvNoCC,
+  writeText,
+  lib,
+  makeBinaryWrapper,
+  php,
+  cacert,
+  nix-update-script,
+}:
+
+let
+  composerJsonBuilder =
+    pluginName: pluginVersion:
+    writeText "composer.json" (
+      builtins.toJSON {
+        name = "nix/plugin";
+        description = "Nix Composer plugin";
+        license = "MIT";
+        require = {
+          "${pluginName}" = "${pluginVersion}";
+        };
+        config = {
+          "allow-plugins" = {
+            "${pluginName}" = true;
+          };
+        };
+        repositories = [
+          {
+            type = "path";
+            url = "./src";
+            options = {
+              versions = {
+                "${pluginName}" = "${pluginVersion}";
+              };
+            };
+          }
+        ];
+      }
+    );
+
+  buildComposerWithPluginOverride =
+    finalAttrs: previousAttrs:
+
+    let
+      phpDrv = finalAttrs.php or php;
+      composer = finalAttrs.composer or phpDrv.packages.composer;
+    in
+    {
+      composerLock = previousAttrs.composerLock or null;
+      composerNoDev = previousAttrs.composerNoDev or true;
+      composerNoPlugins = previousAttrs.composerNoPlugins or true;
+      composerNoScripts = previousAttrs.composerNoScripts or true;
+      composerStrictValidation = previousAttrs.composerStrictValidation or true;
+      composerGlobal = true;
+
+      nativeBuildInputs = (previousAttrs.nativeBuildInputs or [ ]) ++ [
+        composer
+        phpDrv
+        makeBinaryWrapper
+      ];
+
+      buildInputs = (previousAttrs.buildInputs or [ ]) ++ [ phpDrv ];
+
+      patches = previousAttrs.patches or [ ];
+      strictDeps = previousAttrs.strictDeps or true;
+
+      # Should we keep these empty phases?
+      configurePhase =
+        previousAttrs.configurePhase or ''
+          runHook preConfigure
+
+          runHook postConfigure
+        '';
+
+      buildPhase =
+        previousAttrs.buildPhase or ''
+          runHook preBuild
+
+          runHook postBuild
+        '';
+
+      doCheck = previousAttrs.doCheck or true;
+
+      checkPhase =
+        previousAttrs.checkPhase or ''
+          runHook preCheck
+
+          runHook postCheck
+        '';
+
+      installPhase =
+        previousAttrs.installPhase or ''
+            runHook preInstall
+
+          makeWrapper ${lib.getExe composer} $out/bin/composer \
+            --prefix COMPOSER_HOME : ${finalAttrs.vendor}
+
+            runHook postInstall
+        '';
+
+      doInstallCheck = previousAttrs.doInstallCheck or false;
+      installCheckPhase =
+        previousAttrs.installCheckPhase or ''
+          runHook preInstallCheck
+
+          composer global show ${finalAttrs.pname}
+
+          runHook postInstallCheck
+        '';
+
+      vendor = previousAttrs.vendor or stdenvNoCC.mkDerivation {
+        pname = "${finalAttrs.pname}-vendor";
+        pluginName = finalAttrs.pname;
+
+        inherit (finalAttrs) version src;
+
+        composerLock = previousAttrs.composerLock or null;
+        composerNoDev = previousAttrs.composerNoDev or true;
+        composerNoPlugins = previousAttrs.composerNoPlugins or true;
+        composerNoScripts = previousAttrs.composerNoScripts or true;
+        composerStrictValidation = previousAttrs.composerStrictValidation or true;
+        composerGlobal = true;
+        composerJson = composerJsonBuilder finalAttrs.pname finalAttrs.version;
+
+        nativeBuildInputs = [
+          cacert
+          composer
+          phpDrv.composerHooks.composerWithPluginVendorHook
+        ];
+
+        dontPatchShebangs = true;
+        doCheck = true;
+        doInstallCheck = true;
+
+        env = {
+          COMPOSER_CACHE_DIR = "/dev/null";
+          COMPOSER_HTACCESS_PROTECT = "0";
+        };
+
+        outputHashMode = "recursive";
+        outputHashAlgo = "sha256";
+        outputHash = finalAttrs.vendorHash;
+      };
+
+      # Projects providing a lockfile from upstream can be automatically updated.
+      passthru = previousAttrs.passthru or { } // {
+        updateScript =
+          previousAttrs.passthru.updateScript
+            or (if finalAttrs.vendor.composerLock == null then nix-update-script { } else null);
+      };
+
+      env = {
+        COMPOSER_CACHE_DIR = "/dev/null";
+        COMPOSER_DISABLE_NETWORK = "1";
+        COMPOSER_MIRROR_PATH_REPOS = "1";
+      };
+
+      meta = previousAttrs.meta or composer.meta;
+    };
+in
+args: (stdenvNoCC.mkDerivation args).overrideAttrs buildComposerWithPluginOverride
diff --git a/pkgs/build-support/php/builders/v1/hooks/composer-install-hook.sh b/pkgs/build-support/php/builders/v1/hooks/composer-install-hook.sh
index a91263422bc84..44e87d06d3a53 100644
--- a/pkgs/build-support/php/builders/v1/hooks/composer-install-hook.sh
+++ b/pkgs/build-support/php/builders/v1/hooks/composer-install-hook.sh
@@ -83,7 +83,7 @@ composerInstallBuildHook() {
 
     # Since this file cannot be generated in the composer-repository-hook.sh
     # because the file contains hardcoded nix store paths, we generate it here.
-    composer-local-repo-plugin --no-ansi build-local-repo-lock -m "${composerRepository}" .
+    composer build-local-repo-lock -m "${composerRepository}" .
 
     echo "Finished composerInstallBuildHook"
 }
diff --git a/pkgs/build-support/php/builders/v1/hooks/composer-repository-hook.sh b/pkgs/build-support/php/builders/v1/hooks/composer-repository-hook.sh
index c4fa0d52126c1..ec9777541fc0f 100644
--- a/pkgs/build-support/php/builders/v1/hooks/composer-repository-hook.sh
+++ b/pkgs/build-support/php/builders/v1/hooks/composer-repository-hook.sh
@@ -63,7 +63,7 @@ composerRepositoryBuildHook() {
     # Build the local composer repository
     # The command 'build-local-repo' is provided by the Composer plugin
     # nix-community/composer-local-repo-plugin.
-    composer-local-repo-plugin --no-ansi build-local-repo-lock ${composerNoDev:+--no-dev} -r repository
+    composer build-local-repo-lock ${composerNoDev:+--no-dev} -r repository
 
     echo "Finished composerRepositoryBuildHook"
 }
diff --git a/pkgs/build-support/php/builders/v1/hooks/composer-with-plugin-vendor-hook.sh b/pkgs/build-support/php/builders/v1/hooks/composer-with-plugin-vendor-hook.sh
new file mode 100644
index 0000000000000..0d88d14094ad4
--- /dev/null
+++ b/pkgs/build-support/php/builders/v1/hooks/composer-with-plugin-vendor-hook.sh
@@ -0,0 +1,93 @@
+declare composerLock
+declare version
+declare composerNoDev
+declare composerNoPlugins
+declare composerNoScripts
+declare composerStrictValidation
+
+preConfigureHooks+=(composerWithPluginConfigureHook)
+preBuildHooks+=(composerWithPluginBuildHook)
+preCheckHooks+=(composerWithPluginCheckHook)
+preInstallHooks+=(composerWithPluginInstallHook)
+preInstallCheckHooks+=(composerWithPluginInstallCheckHook)
+
+source @phpScriptUtils@
+
+composerWithPluginConfigureHook() {
+    echo "Executing composerWithPluginConfigureHook"
+
+    mkdir -p $out
+
+    export COMPOSER_HOME=$out
+
+    if [[ -e "$composerLock" ]]; then
+        cp $composerLock $out/composer.lock
+    fi
+
+    cp $composerJson $out/composer.json
+    cp -ar $src $out/src
+
+    if [[ ! -f "$out/composer.lock" ]]; then
+        setComposeRootVersion
+
+        composer \
+            global \
+            --no-install \
+            --no-interaction \
+            --no-progress \
+            ${composerNoDev:+--no-dev} \
+            ${composerNoPlugins:+--no-plugins} \
+            ${composerNoScripts:+--no-scripts} \
+            update
+
+        echo
+        echo -e "\e[31mERROR: No composer.lock found\e[0m"
+        echo
+        echo -e '\e[31mNo composer.lock file found, consider adding one to your repository to ensure reproducible builds.\e[0m'
+        echo -e "\e[31mIn the meantime, a composer.lock file has been generated for you in $out/composer.lock\e[0m"
+        echo
+        echo -e '\e[31mTo fix the issue:\e[0m'
+        echo -e "\e[31m1. Copy the composer.lock file from $out/composer.lock to the project's source:\e[0m"
+        echo -e "\e[31m  cp $out/composer.lock <path>\e[0m"
+        echo -e '\e[31m2. Add the composerLock attribute, pointing to the copied composer.lock file:\e[0m'
+        echo -e '\e[31m  composerLock = ./composer.lock;\e[0m'
+        echo
+
+        exit 1
+    fi
+
+    echo "Finished composerWithPluginConfigureHook"
+}
+
+composerWithPluginBuildHook() {
+    echo "Executing composerWithPluginBuildHook"
+
+    echo "Finished composerWithPluginBuildHook"
+}
+
+composerWithPluginCheckHook() {
+    echo "Executing composerWithPluginCheckHook"
+
+    checkComposerValidate
+
+    echo "Finished composerWithPluginCheckHook"
+}
+
+composerWithPluginInstallHook() {
+    echo "Executing composerWithPluginInstallHook"
+
+    composer \
+        global \
+        --no-interaction \
+        --no-progress \
+        ${composerNoDev:+--no-dev} \
+        ${composerNoPlugins:+--no-plugins} \
+        ${composerNoScripts:+--no-scripts} \
+        install
+
+    echo "Finished composerWithPluginInstallHook"
+}
+
+composerWithPluginInstallCheckHook() {
+    composer global show $pluginName
+}
diff --git a/pkgs/build-support/php/builders/v1/hooks/default.nix b/pkgs/build-support/php/builders/v1/hooks/default.nix
index 4c0ba1b18801c..d10ff78067278 100644
--- a/pkgs/build-support/php/builders/v1/hooks/default.nix
+++ b/pkgs/build-support/php/builders/v1/hooks/default.nix
@@ -42,4 +42,19 @@ in
       phpScriptUtils = lib.getExe php-script-utils;
     };
   } ./composer-install-hook.sh;
+
+  composerWithPluginVendorHook = makeSetupHook {
+    name = "composer-with-plugin-vendor-hook.sh";
+    propagatedBuildInputs = [
+      jq
+      moreutils
+      cacert
+    ];
+    substitutions = {
+      # Specify the stdenv's `diff` by abspath to ensure that the user's build
+      # inputs do not cause us to find the wrong `diff`.
+      cmp = "${lib.getBin buildPackages.diffutils}/bin/cmp";
+      phpScriptUtils = lib.getExe php-script-utils;
+    };
+  } ./composer-with-plugin-vendor-hook.sh;
 }
diff --git a/pkgs/build-support/php/builders/v1/hooks/php-script-utils.bash b/pkgs/build-support/php/builders/v1/hooks/php-script-utils.bash
index bba0242e65d1e..65c0a3b410f69 100644
--- a/pkgs/build-support/php/builders/v1/hooks/php-script-utils.bash
+++ b/pkgs/build-support/php/builders/v1/hooks/php-script-utils.bash
@@ -1,5 +1,6 @@
 declare version
 declare composerStrictValidation
+declare composerGlobal
 
 setComposeRootVersion() {
     set +e # Disable exit on error
@@ -13,7 +14,16 @@ setComposeRootVersion() {
 }
 
 checkComposerValidate() {
-    if ! composer validate --strict --no-ansi --no-interaction --quiet --no-check-all --no-check-lock; then
+    setComposeRootVersion
+
+    if [ "1" == "${composerGlobal-}" ]; then
+      global="global";
+    else
+      global="";
+    fi
+
+    command="composer ${global} validate --strict --quiet --no-interaction --no-check-all --no-check-lock"
+    if ! $command; then
         if [ "1" == "${composerStrictValidation-}" ]; then
             echo
             echo -e "\e[31mERROR: composer files validation failed\e[0m"
@@ -42,7 +52,8 @@ checkComposerValidate() {
         fi
     fi
 
-    if ! composer validate --strict --no-ansi --no-interaction --quiet --no-check-all --check-lock; then
+    command="composer ${global} validate --strict --no-ansi --no-interaction --quiet --no-check-all --check-lock"
+    if ! $command; then
         if [ "1" == "${composerStrictValidation-}" ]; then
             echo
             echo -e "\e[31mERROR: composer files validation failed\e[0m"
diff --git a/pkgs/build-support/php/pkgs/composer-local-repo-plugin.nix b/pkgs/build-support/php/pkgs/composer-local-repo-plugin.nix
deleted file mode 100644
index 601640b6f0bb9..0000000000000
--- a/pkgs/build-support/php/pkgs/composer-local-repo-plugin.nix
+++ /dev/null
@@ -1,116 +0,0 @@
-{
-  php,
-  callPackage,
-  stdenvNoCC,
-  lib,
-  fetchFromGitHub,
-  makeBinaryWrapper,
-}:
-
-let
-  composer = callPackage ./composer-phar.nix { inherit (php.packages.composer) version pharHash; };
-
-  composerKeys = stdenvNoCC.mkDerivation (finalComposerKeysAttrs: {
-    pname = "composer-keys";
-    version = "fa5a62092f33e094073fbda23bbfc7188df3cbc5";
-
-    src = fetchFromGitHub {
-      owner = "composer";
-      repo = "composer.github.io";
-      rev = "${finalComposerKeysAttrs.version}";
-      hash = "sha256-3Sfn71LDG1jHwuEIU8iEnV3k6D6QTX7KVIKVaNSuCVE=";
-    };
-
-    installPhase = ''
-      runHook preInstall
-
-      mkdir -p $out
-      install releases.pub $out/keys.tags.pub
-      install snapshots.pub $out/keys.dev.pub
-
-      runHook postInstall
-    '';
-  });
-in
-stdenvNoCC.mkDerivation (finalAttrs: {
-  pname = "composer-local-repo-plugin";
-  version = "1.1.0";
-
-  src = fetchFromGitHub {
-    owner = "nix-community";
-    repo = "composer-local-repo-plugin";
-    rev = finalAttrs.version;
-    hash = "sha256-edbn07r/Uc1g0qOuVBZBs6N1bMN5kIfA1b4FCufdw5M=";
-  };
-
-  env = {
-    COMPOSER_CACHE_DIR = "/dev/null";
-    COMPOSER_MIRROR_PATH_REPOS = "1";
-    COMPOSER_HTACCESS_PROTECT = "0";
-    COMPOSER_DISABLE_NETWORK = "1";
-  };
-
-  nativeBuildInputs = [ makeBinaryWrapper ];
-
-  buildInputs = [ composer ];
-
-  configurePhase = ''
-    runHook preConfigure
-
-    export COMPOSER_HOME=${placeholder "out"}
-
-    runHook postConfigure
-  '';
-
-  buildPhase = ''
-    runHook preBuild
-
-    # Configure composer globally
-    composer global init --quiet --no-interaction --no-ansi \
-      --name="nixos/composer" \
-      --homepage "https://nixos.org/" \
-      --description "Composer with nix-community/composer-local-repo-plugin" \
-      --license "MIT"
-
-    composer global config --quiet minimum-stability dev
-    composer global config --quiet prefer-stable true
-    composer global config --quiet apcu-autoloader false
-    composer global config --quiet allow-plugins.nix-community/composer-local-repo-plugin true
-    composer global config --quiet repo.packagist false
-    composer global config --quiet repo.plugin path $src
-
-    # Install the local repository plugin
-    composer global require --quiet --no-ansi --no-interaction nix-community/composer-local-repo-plugin
-
-    runHook postBuild
-  '';
-
-  checkPhase = ''
-    runHook preCheck
-
-    composer global validate --no-ansi
-    composer global show --no-ansi nix-community/composer-local-repo-plugin
-
-    runHook postCheck
-  '';
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out
-    cp -ar ${composerKeys}/* $out/
-
-    makeWrapper ${composer}/bin/composer $out/bin/composer-local-repo-plugin \
-      --prefix COMPOSER_HOME : $out
-
-    runHook postInstall
-  '';
-
-  meta = {
-    description = "Composer local repo plugin for Composer";
-    homepage = "https://github.com/nix-community/composer-local-repo-plugin";
-    license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ drupol ];
-    platforms = lib.platforms.all;
-  };
-})
diff --git a/pkgs/build-support/php/pkgs/composer-phar.nix b/pkgs/build-support/php/pkgs/composer-phar.nix
index d278810091ef2..b07c25beec55f 100644
--- a/pkgs/build-support/php/pkgs/composer-phar.nix
+++ b/pkgs/build-support/php/pkgs/composer-phar.nix
@@ -1,6 +1,5 @@
 {
   _7zz,
-  cacert,
   curl,
   fetchurl,
   git,
@@ -37,7 +36,6 @@ stdenvNoCC.mkDerivation (finalAttrs: {
       --prefix PATH : ${
         lib.makeBinPath [
           _7zz
-          cacert
           curl
           git
           unzip
diff --git a/pkgs/build-support/rust/build-rust-crate/build-crate.nix b/pkgs/build-support/rust/build-rust-crate/build-crate.nix
index bbb26606a6a4d..7484b3ad0290e 100644
--- a/pkgs/build-support/rust/build-rust-crate/build-crate.nix
+++ b/pkgs/build-support/rust/build-rust-crate/build-crate.nix
@@ -51,7 +51,7 @@
     # configure & source common build functions
     LIB_RUSTC_OPTS="${libRustcOpts}"
     BIN_RUSTC_OPTS="${binRustcOpts}"
-    LIB_EXT="${stdenv.hostPlatform.extensions.sharedLibrary or ""}"
+    LIB_EXT="${stdenv.hostPlatform.extensions.library}"
     LIB_PATH="${libPath}"
     LIB_NAME="${libName}"
 
diff --git a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix b/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
index 6b88271602623..4077ee5ced8e4 100644
--- a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
+++ b/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
@@ -224,7 +224,7 @@ in ''
 
      CRATENAME=$(echo ${crateName} | sed -e "s/\(.*\)-sys$/\U\1/" -e "s/-/_/g")
      grep -P "^cargo:(?!(rustc-|warning=|rerun-if-changed=|rerun-if-env-changed))" target/build/${crateName}.opt \
-       | awk -F= "/^cargo:/ { sub(/^cargo:/, \"\", \$1); gsub(/-/, \"_\", \$1); print \"export \" toupper(\"DEP_$(echo $CRATENAME)_\" \$1) \"=\" \$2 }" > target/env
+       | awk -F= "/^cargo:/ { sub(/^cargo:/, \"\", \$1); gsub(/-/, \"_\", \$1); print \"export \" toupper(\"DEP_$(echo $CRATENAME)_\" \$1) \"=\" \"\\\"\"\$2\"\\\"\" }" > target/env
      set -e
   fi
   runHook postConfigure
diff --git a/pkgs/build-support/rust/build-rust-crate/default.nix b/pkgs/build-support/rust/build-rust-crate/default.nix
index 4a7fd114829ad..dfe28cc334b5e 100644
--- a/pkgs/build-support/rust/build-rust-crate/default.nix
+++ b/pkgs/build-support/rust/build-rust-crate/default.nix
@@ -49,7 +49,9 @@ let
           filename =
             if lib.any (x: x == "lib" || x == "rlib") dep.crateType
             then "${dep.metadata}.rlib"
-            else "${dep.metadata}${stdenv.hostPlatform.extensions.sharedLibrary}";
+            # Adjust lib filename for crates of type proc-macro. Proc macros are compiled/run on the build platform architecture.
+            else if (lib.attrByPath [ "procMacro" ] false dep) then "${dep.metadata}${stdenv.buildPlatform.extensions.library}"
+            else "${dep.metadata}${stdenv.hostPlatform.extensions.library}";
         in
         " --extern ${opts}${name}=${dep.lib}/lib/lib${extern}-${filename}"
       )
diff --git a/pkgs/build-support/rust/build-rust-crate/install-crate.nix b/pkgs/build-support/rust/build-rust-crate/install-crate.nix
index f4a4dcdb0d945..7c7c102833d85 100644
--- a/pkgs/build-support/rust/build-rust-crate/install-crate.nix
+++ b/pkgs/build-support/rust/build-rust-crate/install-crate.nix
@@ -41,7 +41,7 @@ if !buildTests then ''
   fi
   if [ -e target/lib ]; then
     find target/lib/ -type f \! -name '*.rlib' \
-      -a \! -name '*${stdenv.hostPlatform.extensions.sharedLibrary}' \
+      -a \! -name '*${stdenv.hostPlatform.extensions.library}' \
       -a \! -name '*.d' \
       -executable \
       -print0 | xargs --no-run-if-empty --null install --target $out/tests;
diff --git a/pkgs/build-support/rust/build-rust-crate/test/default.nix b/pkgs/build-support/rust/build-rust-crate/test/default.nix
index 1ecef4c8e3270..522eedfede7f2 100644
--- a/pkgs/build-support/rust/build-rust-crate/test/default.nix
+++ b/pkgs/build-support/rust/build-rust-crate/test/default.nix
@@ -479,7 +479,7 @@ let
             # `-undefined dynamic_lookup` as otherwise the compilation fails.
             $CC -shared \
               ${lib.optionalString stdenv.isDarwin "-undefined dynamic_lookup"} \
-              -o $out/lib/${name}${stdenv.hostPlatform.extensions.sharedLibrary} ${src}
+              -o $out/lib/${name}${stdenv.hostPlatform.extensions.library} ${src}
           '';
           b = compile "libb" ''
             #include <stdio.h>
diff --git a/pkgs/build-support/rust/hooks/cargo-build-hook.sh b/pkgs/build-support/rust/hooks/cargo-build-hook.sh
index 0ac9bf51a8334..26dde914f22aa 100644
--- a/pkgs/build-support/rust/hooks/cargo-build-hook.sh
+++ b/pkgs/build-support/rust/hooks/cargo-build-hook.sh
@@ -39,7 +39,7 @@ cargoBuildHook() {
     set -x
     @setEnv@ cargo build -j $NIX_BUILD_CORES \
         --target @rustHostPlatformSpec@ \
-        --frozen \
+        --offline \
         ${cargoBuildProfileFlag} \
         ${cargoBuildNoDefaultFeaturesFlag} \
         ${cargoBuildFeaturesFlag} \
diff --git a/pkgs/build-support/rust/hooks/cargo-check-hook.sh b/pkgs/build-support/rust/hooks/cargo-check-hook.sh
index 971a140ec178f..96b87dbf15b45 100644
--- a/pkgs/build-support/rust/hooks/cargo-check-hook.sh
+++ b/pkgs/build-support/rust/hooks/cargo-check-hook.sh
@@ -29,7 +29,7 @@ cargoCheckHook() {
     fi
 
     argstr="${cargoCheckProfileFlag} ${cargoCheckNoDefaultFeaturesFlag} ${cargoCheckFeaturesFlag}
-        --target @rustHostPlatformSpec@ --frozen ${cargoTestFlags}"
+        --target @rustHostPlatformSpec@ --offline ${cargoTestFlags}"
 
     (
         set -x
diff --git a/pkgs/build-support/rust/hooks/cargo-nextest-hook.sh b/pkgs/build-support/rust/hooks/cargo-nextest-hook.sh
index 29ba18a6a1e3f..16d32513a0d01 100644
--- a/pkgs/build-support/rust/hooks/cargo-nextest-hook.sh
+++ b/pkgs/build-support/rust/hooks/cargo-nextest-hook.sh
@@ -29,7 +29,7 @@ cargoNextestHook() {
     fi
 
     argstr="${cargoCheckProfileFlag} ${cargoCheckNoDefaultFeaturesFlag} ${cargoCheckFeaturesFlag}
-        --target @rustHostPlatformSpec@ --frozen ${cargoTestFlags}"
+        --target @rustHostPlatformSpec@ --offline ${cargoTestFlags}"
 
     (
         set -x
diff --git a/pkgs/build-support/rust/hooks/maturin-build-hook.sh b/pkgs/build-support/rust/hooks/maturin-build-hook.sh
index 028441d18160e..b3cc1ced79647 100644
--- a/pkgs/build-support/rust/hooks/maturin-build-hook.sh
+++ b/pkgs/build-support/rust/hooks/maturin-build-hook.sh
@@ -11,7 +11,7 @@ maturinBuildHook() {
     set -x
     @setEnv@ maturin build \
         --jobs=$NIX_BUILD_CORES \
-        --frozen \
+        --offline \
         --target @rustTargetPlatformSpec@ \
         --manylinux off \
         --strip \
diff --git a/pkgs/build-support/setup-hooks/strip.sh b/pkgs/build-support/setup-hooks/strip.sh
index ce41e6ea0562a..49a350af1fa5c 100644
--- a/pkgs/build-support/setup-hooks/strip.sh
+++ b/pkgs/build-support/setup-hooks/strip.sh
@@ -74,13 +74,17 @@ stripDirs() {
         echo "stripping (with command $cmd and flags $stripFlags) in $paths"
         local striperr
         striperr="$(mktemp --tmpdir="$TMPDIR" 'striperr.XXXXXX')"
-        # Do not strip lib/debug. This is a directory used by setup-hooks/separate-debug-info.sh.
-        find $paths -type f "${excludeFlags[@]}" -a '!' -path "$prefix/lib/debug/*" -print0 |
-            # Make sure we process files under symlinks only once. Otherwise
-            # 'strip` can corrupt files when writes to them in parallel:
-            #   https://github.com/NixOS/nixpkgs/issues/246147#issuecomment-1657072039
-            xargs -r -0 -n1 -- realpath -z | sort -u -z |
+        # Make sure we process files only once. `strip`ping the same file through different
+        # links in parallel can corrupt it:
+        #   https://github.com/NixOS/nixpkgs/issues/246147#issuecomment-1657072039
 
+        # Do not strip lib/debug. This is a directory used by setup-hooks/separate-debug-info.sh.
+        # Print out each file's device and inode (which will be the same if two files are hardlinked
+        # or are the same file found through different symlinks), followed by its path...
+        find $paths -type f "${excludeFlags[@]}" -a '!' -path "$prefix/lib/debug/*" -printf '%D-%i,%p\0' |
+            # ... sort/uniq by device/inode, then cut them out and keep the path, ...
+            sort -t, -k1,1 -u -z | cut -d, -f2- -z |
+            # and finally strip each unique path in parallel.
             xargs -r -0 -n1 -P "$NIX_BUILD_CORES" -- $cmd $stripFlags 2>"$striperr" || exit_code=$?
         # xargs exits with status code 123 if some but not all of the
         # processes fail. We don't care if some of the files couldn't
diff --git a/pkgs/build-support/singularity-tools/default.nix b/pkgs/build-support/singularity-tools/default.nix
index c9e53a4cb706f..cd10a9960421b 100644
--- a/pkgs/build-support/singularity-tools/default.nix
+++ b/pkgs/build-support/singularity-tools/default.nix
@@ -45,7 +45,7 @@ rec {
     , diskSize ? 1024
     , runScript ? "#!${stdenv.shell}\nexec /bin/sh"
     , runAsRoot ? null
-    , memSize ? 512
+    , memSize ? 1024
     , singularity ? defaultSingularity
     }:
     let
diff --git a/pkgs/build-support/src-only/default.nix b/pkgs/build-support/src-only/default.nix
index 2b0db0e267aa7..cd8572629cad8 100644
--- a/pkgs/build-support/src-only/default.nix
+++ b/pkgs/build-support/src-only/default.nix
@@ -13,7 +13,7 @@ let
 in
 stdenv.mkDerivation (args // {
   name = "${name}-source";
-  installPhase = "cp -r . $out";
+  installPhase = "cp -pr --reflink=auto -- . $out";
   outputs = [ "out" ];
   separateDebugInfo = false;
   dontUnpack = false;
diff --git a/pkgs/build-support/testers/default.nix b/pkgs/build-support/testers/default.nix
index 362622d9b7ee8..dbf9a6d6cb05b 100644
--- a/pkgs/build-support/testers/default.nix
+++ b/pkgs/build-support/testers/default.nix
@@ -1,6 +1,10 @@
 { pkgs, pkgsLinux, buildPackages, lib, callPackage, runCommand, stdenv, substituteAll, testers }:
 # Documentation is in doc/builders/testers.chapter.md
 {
+  # See https://nixos.org/manual/nixpkgs/unstable/#tester-lycheeLinkCheck
+  # or doc/builders/testers.chapter.md
+  inherit (callPackage ./lychee.nix {}) lycheeLinkCheck;
+
   # See https://nixos.org/manual/nixpkgs/unstable/#tester-testBuildFailure
   # or doc/builders/testers.chapter.md
   testBuildFailure = drv: drv.overrideAttrs (orig: {
diff --git a/pkgs/build-support/testers/hasPkgConfigModules/tester.nix b/pkgs/build-support/testers/hasPkgConfigModules/tester.nix
index e9f246deaaf20..3d4ded812f75e 100644
--- a/pkgs/build-support/testers/hasPkgConfigModules/tester.nix
+++ b/pkgs/build-support/testers/hasPkgConfigModules/tester.nix
@@ -14,7 +14,7 @@ runCommand testName {
     buildInputs = [ package ];
     inherit moduleNames version versionCheck;
     meta = {
-      description = "Test whether ${package.name} exposes pkg-config modules ${lib.concatStringsSep ", " moduleNames}.";
+      description = "Test whether ${package.name} exposes pkg-config modules ${lib.concatStringsSep ", " moduleNames}";
     }
     # Make sure licensing info etc is preserved, as this is a concern for e.g. cache.nixos.org,
     # as hydra can't check this meta info in dependencies.
diff --git a/pkgs/build-support/testers/lychee.nix b/pkgs/build-support/testers/lychee.nix
new file mode 100644
index 0000000000000..80088dc4f9638
--- /dev/null
+++ b/pkgs/build-support/testers/lychee.nix
@@ -0,0 +1,69 @@
+deps@{ formats, lib, lychee, stdenv, writeShellApplication }:
+let
+  inherit (lib) mapAttrsToList throwIf;
+  inherit (lib.strings) hasInfix hasPrefix escapeNixString;
+
+  toURL = v:
+    let s = "${v}";
+    in if hasPrefix builtins.storeDir s
+    then # lychee requires that paths on the file system are prefixed with file://
+      "file://${s}"
+    else s;
+
+  withCheckedName = name:
+    throwIf (hasInfix " " name) ''
+      lycheeLinkCheck: remap patterns must not contain spaces.
+      A space marks the end of the regex in lychee.toml.
+
+      Please change attribute name 'remap.${escapeNixString name}'
+    '';
+
+  # See https://nixos.org/manual/nixpkgs/unstable/#tester-lycheeLinkCheck
+  # or doc/builders/testers.chapter.md
+  lycheeLinkCheck = {
+    site,
+    remap ? { },
+    lychee ? deps.lychee,
+    extraConfig ? { },
+  }:
+    stdenv.mkDerivation (finalAttrs: {
+      name = "lychee-link-check";
+      inherit site;
+      nativeBuildInputs = [ finalAttrs.passthru.lychee ];
+      configFile = (formats.toml {}).generate "lychee.toml" finalAttrs.passthru.config;
+
+      # These can be overriden with overrideAttrs if needed.
+      passthru = {
+        inherit lychee remap;
+        config = {
+          include_fragments = true;
+        } // lib.optionalAttrs (finalAttrs.passthru.remap != { }) {
+          remap =
+            mapAttrsToList
+              (name: value: withCheckedName name "${name} ${toURL value}")
+              finalAttrs.passthru.remap;
+        } // extraConfig;
+        online = writeShellApplication {
+          name = "run-lychee-online";
+          runtimeInputs = [ finalAttrs.passthru.lychee ];
+          # Comment out to run shellcheck:
+          checkPhase = "";
+          text = ''
+            site=${finalAttrs.site}
+            configFile=${finalAttrs.configFile}
+            echo Checking links on $site
+            exec lychee --config $configFile $site "$@"
+          '';
+        };
+      };
+      buildCommand = ''
+        echo Checking internal links on $site
+        lychee --offline --config $configFile $site
+        touch $out
+      '';
+    });
+
+in
+{
+  inherit lycheeLinkCheck;
+}
diff --git a/pkgs/build-support/testers/test/default.nix b/pkgs/build-support/testers/test/default.nix
index da67711156bed..a815fe63e416e 100644
--- a/pkgs/build-support/testers/test/default.nix
+++ b/pkgs/build-support/testers/test/default.nix
@@ -12,6 +12,8 @@ let
 
 in
 lib.recurseIntoAttrs {
+  lycheeLinkCheck = lib.recurseIntoAttrs pkgs.lychee.tests;
+
   hasPkgConfigModules = pkgs.callPackage ../hasPkgConfigModules/tests.nix { };
 
   runNixOSTest-example = pkgs-with-overlay.testers.runNixOSTest ({ lib, ... }: {
diff --git a/pkgs/build-support/trivial-builders/test/references/default.nix b/pkgs/build-support/trivial-builders/test/references/default.nix
index 928cc1d9461f0..85df57ea210c2 100644
--- a/pkgs/build-support/trivial-builders/test/references/default.nix
+++ b/pkgs/build-support/trivial-builders/test/references/default.nix
@@ -93,21 +93,27 @@ let
     };
   });
 in
-testers.nixosTest {
-  name = "nixpkgs-trivial-builders";
-  nodes.machine = { ... }: {
+testers.runNixOSTest ({ config, lib, ... }:
+let
+  # Use the testScriptBin from guest pkgs.
+  # The attribute path to access the guest version of testScriptBin is
+  # tests.trivial-builders.references.config.node.pkgs.tests.trivial-builders.references.testScriptBin
+  # which is why passthru.guestTestScriptBin is provided.
+  guestTestScriptBin = config.node.pkgs.tests.trivial-builders.references.testScriptBin;
+in
+{
+  name = "nixpkgs-trivial-builders-references";
+  nodes.machine = { config, lib, pkgs, ... }: {
     virtualisation.writableStore = true;
 
     # Test runs without network, so we don't substitute and prepare our deps
     nix.settings.substituters = lib.mkForce [ ];
-    environment.etc."pre-built-paths".source = writeText "pre-built-paths" (
-      builtins.toJSON [ testScriptBin ]
-    );
+    system.extraDependencies = [ guestTestScriptBin ];
   };
   testScript =
     ''
       machine.succeed("""
-        ${lib.getExe testScriptBin} 2>/dev/console
+        ${lib.getExe guestTestScriptBin} 2>/dev/console
       """)
     '';
   passthru = {
@@ -118,6 +124,7 @@ testers.nixosTest {
       samples
       testScriptBin
       ;
+    inherit guestTestScriptBin;
   };
   meta = {
     maintainers = with lib.maintainers; [
@@ -125,4 +132,4 @@ testers.nixosTest {
       ShamrockLee
     ];
   };
-}
+})
diff --git a/pkgs/build-support/writers/scripts.nix b/pkgs/build-support/writers/scripts.nix
index 06d763ca9d6af..93fac09c07ba5 100644
--- a/pkgs/build-support/writers/scripts.nix
+++ b/pkgs/build-support/writers/scripts.nix
@@ -635,7 +635,7 @@ rec {
 
     nuget-source = mkNugetSource {
       name = "${fname}-nuget-source";
-      description = "A Nuget source with the dependencies for ${fname}";
+      description = "Nuget source with the dependencies for ${fname}";
       deps = [ _nugetDeps ];
     };
 
diff --git a/pkgs/by-name/_2/_2ship2harkinian/0001-deps.patch b/pkgs/by-name/_2/_2ship2harkinian/0001-deps.patch
new file mode 100644
index 0000000000000..eade8db90a7bd
--- /dev/null
+++ b/pkgs/by-name/_2/_2ship2harkinian/0001-deps.patch
@@ -0,0 +1,16 @@
+Submodule libultraship contains modified content
+diff --git a/libultraship/cmake/dependencies/common.cmake b/libultraship/cmake/dependencies/common.cmake
+index 596158c..c62d7b2 100644
+--- a/libultraship/cmake/dependencies/common.cmake
++++ b/libultraship/cmake/dependencies/common.cmake
+@@ -47,10 +47,6 @@ set(stormlib_optimizations_patch git apply ${CMAKE_CURRENT_SOURCE_DIR}/cmake/dep
+ endif()
+ 
+ #=================== STB ===================
+-set(STB_DIR ${CMAKE_BINARY_DIR}/_deps/stb)
+-file(DOWNLOAD "https://github.com/nothings/stb/raw/0bc88af4de5fb022db643c2d8e549a0927749354/stb_image.h" "${STB_DIR}/stb_image.h")
+-file(WRITE "${STB_DIR}/stb_impl.c" "#define STB_IMAGE_IMPLEMENTATION\n#include \"stb_image.h\"")
+-
+ add_library(stb STATIC)
+ 
+ target_sources(stb PRIVATE
diff --git a/pkgs/by-name/_2/_2ship2harkinian/package.nix b/pkgs/by-name/_2/_2ship2harkinian/package.nix
new file mode 100644
index 0000000000000..0be042d174f23
--- /dev/null
+++ b/pkgs/by-name/_2/_2ship2harkinian/package.nix
@@ -0,0 +1,216 @@
+{
+  stdenv,
+  cmake,
+  lsb-release,
+  ninja,
+  lib,
+  fetchFromGitHub,
+  fetchurl,
+  copyDesktopItems,
+  makeDesktopItem,
+  python3,
+  boost,
+  SDL2,
+  pkg-config,
+  libpulseaudio,
+  libpng,
+  imagemagick,
+  gnome,
+  makeWrapper,
+  imgui,
+  stormlib,
+  libzip,
+  nlohmann_json,
+  tinyxml-2,
+  spdlog,
+  fetchpatch,
+  writeTextFile,
+}:
+
+let
+
+  # 2ship needs a specific imgui version
+  imgui' = imgui.overrideAttrs rec {
+    version = "1.90.6";
+    src = fetchFromGitHub {
+      owner = "ocornut";
+      repo = "imgui";
+      rev = "v${version}-docking";
+      hash = "sha256-Y8lZb1cLJF48sbuxQ3vXq6GLru/WThR78pq7LlORIzc=";
+    };
+  };
+
+  # Apply 2ship's patch for stormlib
+  stormlib' = stormlib.overrideAttrs (prev: rec {
+    version = "9.25";
+    src = fetchFromGitHub {
+      owner = "ladislav-zezula";
+      repo = "StormLib";
+      rev = "v${version}";
+      hash = "sha256-HTi2FKzKCbRaP13XERUmHkJgw8IfKaRJvsK3+YxFFdc=";
+    };
+    buildInputs = prev.buildInputs ++ [ pkg-config ];
+    patches = (prev.patches or [ ]) ++ [
+      (fetchpatch {
+        name = "stormlib-optimizations.patch";
+        url = "https://github.com/briaguya-ai/StormLib/commit/ff338b230544f8b2bb68d2fbe075175ed2fd758c.patch";
+        hash = "sha256-Jbnsu5E6PkBifcx/yULMVC//ab7tszYgktS09Azs5+4=";
+      })
+    ];
+  });
+
+  # This would get fetched at build time otherwise, see:
+  # https://github.com/HarbourMasters/Shipwright/blob/e46c60a7a1396374e23f7a1f7122ddf9efcadff7/soh/CMakeLists.txt#L736
+  gamecontrollerdb = fetchurl {
+    name = "gamecontrollerdb.txt";
+    url = "https://raw.githubusercontent.com/gabomdq/SDL_GameControllerDB/30cb02c07001234f021eadf64035ef07753c1263/gamecontrollerdb.txt";
+    hash = "sha256-Q/OUrvoLY4fF/EJBmQC57y5b3D0Rmlyd9zAmB7U8SUU=";
+  };
+
+  thread_pool = fetchFromGitHub {
+    owner = "bshoshany";
+    repo = "thread-pool";
+    rev = "v4.1.0";
+    hash = "sha256-zhRFEmPYNFLqQCfvdAaG5VBNle9Qm8FepIIIrT9sh88=";
+  };
+
+  libgfxd = fetchFromGitHub {
+    owner = "glankk";
+    repo = "libgfxd";
+    rev = "008f73dca8ebc9151b205959b17773a19c5bd0da";
+    hash = "sha256-AmHAa3/cQdh7KAMFOtz5TQpcM6FqO9SppmDpKPTjTt8=";
+  };
+
+  stb_impl = writeTextFile {
+    name = "stb_impl.c";
+    text = ''
+      #define STB_IMAGE_IMPLEMENTATION
+      #include "stb_image.h"
+    '';
+  };
+
+  stb' = fetchurl {
+    name = "stb_image.h";
+    url = "https://raw.githubusercontent.com/nothings/stb/0bc88af4de5fb022db643c2d8e549a0927749354/stb_image.h";
+    hash = "sha256-xUsVponmofMsdeLsI6+kQuPg436JS3PBl00IZ5sg3Vw=";
+  };
+in
+stdenv.mkDerivation (finalAttrs: {
+  pname = "2ship2harkinian";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "HarbourMasters";
+    repo = "2ship2harkinian";
+    rev = finalAttrs.version;
+    hash = "sha256-czPAmqlXfhOjOYYssDuKt2YDlMlkruNx8EDXo1ksb14=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    cmake
+    ninja
+    pkg-config
+    lsb-release
+    python3
+    imagemagick
+    copyDesktopItems
+    makeWrapper
+  ];
+
+  buildInputs = [
+    SDL2
+    libpulseaudio
+    libpng
+    gnome.zenity
+    imgui'
+    stormlib'
+    libzip
+    nlohmann_json
+    tinyxml-2
+    spdlog
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}/2s2h"
+    "-DFETCHCONTENT_SOURCE_DIR_IMGUI=${imgui'.src}"
+    "-DFETCHCONTENT_SOURCE_DIR_STORMLIB=${stormlib'}"
+    "-DFETCHCONTENT_SOURCE_DIR_LIBGFXD=${libgfxd}"
+    "-DFETCHCONTENT_SOURCE_DIR_THREADPOOL=${thread_pool}"
+    (lib.cmakeFeature "CMAKE_BUILD_TYPE" "Release")
+    (lib.cmakeBool "NON_PORTABLE" true)
+  ];
+
+  dontAddPrefix = true;
+
+  # Linking fails without this
+  hardeningDisable = [ "format" ];
+
+  # Pie needs to be enabled or else it segfaults
+  hardeningEnable = [ "pie" ];
+
+  preConfigure = ''
+    # mirror 2ship's stb
+    mkdir stb
+    cp ${stb'} ./stb/${stb'.name}
+    cp ${stb_impl} ./stb/${stb_impl.name}
+
+    substituteInPlace libultraship/cmake/dependencies/common.cmake \
+      --replace-fail "\''${STB_DIR}" "/build/source/stb"
+  '';
+
+  patches = [
+    # remove fetching stb as we will patch our own
+    ./0001-deps.patch
+  ];
+
+  postBuild = ''
+    cp ${gamecontrollerdb} ${gamecontrollerdb.name}
+    pushd ../OTRExporter
+    python3 ./extract_assets.py -z ../build/ZAPD/ZAPD.out --norom --xml-root ../mm/assets/xml --custom-assets-path ../mm/assets/custom --custom-otr-file 2ship.o2r --port-ver ${finalAttrs.version}
+    popd
+  '';
+
+  preInstall = ''
+    # Cmake likes it here for its install paths
+    cp ../OTRExporter/2ship.o2r mm/
+  '';
+
+  postInstall = ''
+    mkdir -p $out/bin
+    ln -s $out/2s2h/2s2h.elf $out/bin/2s2h
+    install -Dm644 ../mm/linux/2s2hIcon.png $out/share/pixmaps/2s2h.png
+  '';
+
+  fixupPhase = ''
+    wrapProgram $out/2s2h/2s2h.elf --prefix PATH ":" ${lib.makeBinPath [ gnome.zenity ]}
+  '';
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "2s2h";
+      icon = "2s2h";
+      exec = "2s2h";
+      comment = finalAttrs.meta.description;
+      genericName = "2 Ship 2 Harkinian";
+      desktopName = "2s2h";
+      categories = [ "Game" ];
+    })
+  ];
+
+  meta = {
+    homepage = "https://github.com/HarbourMasters/2ship2harkinian";
+    description = "A PC port of Majora's Mask with modern controls, widescreen, high-resolution, and more";
+    mainProgram = "2s2h";
+    platforms = [ "x86_64-linux" ];
+    maintainers = with lib.maintainers; [ qubitnano ];
+    license = with lib.licenses; [
+      # OTRExporter, OTRGui, ZAPDTR, libultraship
+      mit
+      # 2 Ship 2 Harkinian
+      cc0
+      # Reverse engineering
+      unfree
+    ];
+  };
+})
diff --git a/pkgs/by-name/_4/_4d-minesweeper/package.nix b/pkgs/by-name/_4/_4d-minesweeper/package.nix
index 006480efc058a..371aae75fab3d 100644
--- a/pkgs/by-name/_4/_4d-minesweeper/package.nix
+++ b/pkgs/by-name/_4/_4d-minesweeper/package.nix
@@ -80,7 +80,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/gapophustu/4D-Minesweeper";
-    description = "A 4D Minesweeper game written in Godot";
+    description = "4D Minesweeper game written in Godot";
     license = licenses.mpl20;
     platforms   = platforms.linux;
     maintainers = with maintainers; [ nayala ];
diff --git a/pkgs/by-name/_4/_4th/package.nix b/pkgs/by-name/_4/_4th/package.nix
index d965f8c5e07f0..abc2d53fe0b60 100644
--- a/pkgs/by-name/_4/_4th/package.nix
+++ b/pkgs/by-name/_4/_4th/package.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://thebeez.home.xs4all.nl/4tH/index.html";
-    description = "A portable Forth compiler";
+    description = "Portable Forth compiler";
     license = lib.licenses.lgpl3Plus;
     mainProgram = "4th";
     maintainers = with lib.maintainers; [ AndersonTorres ];
diff --git a/pkgs/by-name/_6/_64gram/package.nix b/pkgs/by-name/_6/_64gram/package.nix
index 0cf62f11f3f3a..da1357c71e8fb 100644
--- a/pkgs/by-name/_6/_64gram/package.nix
+++ b/pkgs/by-name/_6/_64gram/package.nix
@@ -7,7 +7,7 @@
 
 telegram-desktop.overrideAttrs (old: rec {
   pname = "64gram";
-  version = "1.1.22";
+  version = "1.1.29";
 
   src = fetchFromGitHub {
     owner = "TDesktop-x64";
@@ -15,13 +15,13 @@ telegram-desktop.overrideAttrs (old: rec {
     rev = "v${version}";
 
     fetchSubmodules = true;
-    hash = "sha256-Fhix+kCqUTr9qGMzDc2undxmhjmM6fPorZebeqXNHHE=";
+    hash = "sha256-OJiVmmDIsijK/IHGEdsCoAwvc9JlSth+76r9O1aJbd0=";
   };
 
   passthru.updateScript = nix-update-script {};
 
   meta = with lib; {
-    description = "An unofficial Telegram Desktop providing Windows 64bit build and extra features";
+    description = "Unofficial Telegram Desktop providing Windows 64bit build and extra features";
     license = licenses.gpl3Only;
     platforms = platforms.all;
     homepage = "https://github.com/TDesktop-x64/tdesktop";
diff --git a/pkgs/by-name/a4/a4/package.nix b/pkgs/by-name/a4/a4/package.nix
index 5d33e8077dd08..5efd44b893a7f 100644
--- a/pkgs/by-name/a4/a4/package.nix
+++ b/pkgs/by-name/a4/a4/package.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation (finalAttrs: {
   installFlags = [ "PREFIX=${placeholder "out"}" ];
 
   meta = {
-    description = "A dynamic terminal window manager";
+    description = "Dynamic terminal window manager";
     homepage = "https://www.a4term.com/";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ onemoresuza ];
diff --git a/pkgs/by-name/aa/aaaaxy/package.nix b/pkgs/by-name/aa/aaaaxy/package.nix
index 3fca10f2577ef..4cbe5f3932026 100644
--- a/pkgs/by-name/aa/aaaaxy/package.nix
+++ b/pkgs/by-name/aa/aaaaxy/package.nix
@@ -20,17 +20,17 @@
 
 buildGoModule rec {
   pname = "aaaaxy";
-  version = "1.5.129";
+  version = "1.5.139";
 
   src = fetchFromGitHub {
     owner = "divVerent";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-kH2eFFxohvuuEP2p7bt8zOYbk3gF86X9y3sNdLYl/Qo=";
+    hash = "sha256-j8BpLN0PhMqUQXhF1L7uEW2KLaVq5cfckXnWrkltCgM=";
     fetchSubmodules = true;
   };
 
-  vendorHash = "sha256-VEayNWztJYeQoJHVJfAlmHD65PEho1TCttTfT0cbgUQ=";
+  vendorHash = "sha256-a6nfGP6Lwjwr4wXXRUrCyV9+BCyHOSKczk5rjZdFnlA=";
 
   buildInputs = [
     alsa-lib
@@ -113,7 +113,7 @@ buildGoModule rec {
   strictDeps = true;
 
   meta = with lib; {
-    description = "A nonlinear 2D puzzle platformer taking place in impossible spaces";
+    description = "Nonlinear 2D puzzle platformer taking place in impossible spaces";
     mainProgram = "aaaaxy";
     homepage = "https://divverent.github.io/aaaaxy/";
     license = licenses.asl20;
diff --git a/pkgs/by-name/aa/aarch64-esr-decoder/package.nix b/pkgs/by-name/aa/aarch64-esr-decoder/package.nix
index 33a75b33f30e6..3059d5623bac6 100644
--- a/pkgs/by-name/aa/aarch64-esr-decoder/package.nix
+++ b/pkgs/by-name/aa/aarch64-esr-decoder/package.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-BdxRvvU3AovlT7QloZ/LlkjRTVCWEsPUj4NkP4gBPsY=";
 
   meta = with lib; {
-    description = "A utility for decoding aarch64 ESR register values";
+    description = "Utility for decoding aarch64 ESR register values";
     homepage = "https://github.com/google/aarch64-esr-decoder";
     changelog = "https://github.com/google/aarch64-esr-decoder/blob/${src.rev}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/by-name/ab/aba/package.nix b/pkgs/by-name/ab/aba/package.nix
index 6cf7ec2544bc0..76e6203cb0ce3 100644
--- a/pkgs/by-name/ab/aba/package.nix
+++ b/pkgs/by-name/ab/aba/package.nix
@@ -47,7 +47,7 @@ rustPlatform.buildRustPackage {
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "An address book for aerc";
+    description = "Address book for aerc";
     homepage = "https://sr.ht/~onemoresuza/aba/";
     changelog = "https://git.sr.ht/~onemoresuza/aba/tree/main/item/CHANGELOG.md";
     downloadPage = "https://git.sr.ht/~onemoresuza/aba/refs/${version}";
diff --git a/pkgs/applications/misc/ablog/default.nix b/pkgs/by-name/ab/ablog/package.nix
index 67b21e5199de5..3221b16dcfcf5 100644
--- a/pkgs/applications/misc/ablog/default.nix
+++ b/pkgs/by-name/ab/ablog/package.nix
@@ -1,16 +1,19 @@
 { lib
 , python3
-, fetchPypi
+, fetchFromGitHub
+, gitUpdater
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "ablog";
-  version = "0.11.8";
+  version = "0.11.10";
   format = "pyproject";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-PpNBfa4g14l8gm9+PxOFc2NDey031D7Ohutx2OGUeak=";
+  src = fetchFromGitHub {
+    owner = "sunpy";
+    repo = "ablog";
+    rev = "v${version}";
+    hash = "sha256-8NyFLGtMJLUkojEhWpWNZz3zlfgGVgSvgk4dDEz1jzs=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
@@ -31,6 +34,7 @@ python3.pkgs.buildPythonApplication rec {
 
   nativeCheckInputs = with python3.pkgs; [
     pytestCheckHook
+    defusedxml
   ];
 
   pytestFlagsArray = [
@@ -39,6 +43,8 @@ python3.pkgs.buildPythonApplication rec {
     "-W" "ignore::sphinx.deprecation.RemovedInSphinx90Warning" # Ignore ImportError
   ];
 
+  passthru.updateScript = gitUpdater { rev-prefix = "v"; };
+
   meta = with lib; {
     description = "ABlog for blogging with Sphinx";
     mainProgram = "ablog";
diff --git a/pkgs/by-name/ad/ad-ldap-enum/package.nix b/pkgs/by-name/ad/ad-ldap-enum/package.nix
index 5d868bf1dd4e5..983746cbcbf90 100644
--- a/pkgs/by-name/ad/ad-ldap-enum/package.nix
+++ b/pkgs/by-name/ad/ad-ldap-enum/package.nix
@@ -39,7 +39,7 @@ stdenvNoCC.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "An LDAP based Active Directory user and group enumeration tool";
+    description = "LDAP based Active Directory user and group enumeration tool";
     homepage = "https://github.com/CroweCybersecurity/ad-ldap-enum";
     license = licenses.mit;
     maintainers = with maintainers; [ h7x4 ];
diff --git a/pkgs/by-name/ad/ad-miner/package.nix b/pkgs/by-name/ad/ad-miner/package.nix
index 43170f87474e4..4a6d93c2d91c3 100644
--- a/pkgs/by-name/ad/ad-miner/package.nix
+++ b/pkgs/by-name/ad/ad-miner/package.nix
@@ -5,25 +5,28 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "ad-miner";
-  version = "1.2.0";
+  version = "1.4.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Mazars-Tech";
     repo = "AD_Miner";
     rev = "refs/tags/v${version}";
-    hash = "sha256-o1RXuyX2dV0fQwXEeTgmeMYKXiKAqrl+fV8zi1J16Ic=";
+    hash = "sha256-SBFPGlP5hDKNuE5sYGL6PE1nYMmOCmMZji0AtNEBkAQ=";
   };
 
   # All requirements are pinned
   pythonRelaxDeps = true;
 
-  nativeBuildInputs = with python3.pkgs; [
+  build-system = with python3.pkgs; [
     poetry-core
+  ];
+
+  nativeBuildInputs = with python3.pkgs; [
     pythonRelaxDepsHook
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  dependencies = with python3.pkgs; [
     neo4j
     numpy
     pytz
diff --git a/pkgs/by-name/ad/adbtuifm/package.nix b/pkgs/by-name/ad/adbtuifm/package.nix
index 546d600451d28..4fae8a4956575 100644
--- a/pkgs/by-name/ad/adbtuifm/package.nix
+++ b/pkgs/by-name/ad/adbtuifm/package.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
   };
   vendorHash = "sha256-voVoowjM90OGWXF4REEevO8XEzT7azRYiDay4bnGBks=";
   meta = with lib; {
-    description = "A TUI-based file manager for the Android Debug Bridge";
+    description = "TUI-based file manager for the Android Debug Bridge";
     homepage = "https://github.com/darkhz/adbtuifm";
     changelog = "https://github.com/darkhz/adbtuifm/releases/tag/v${version}";
     license = with licenses; [mit];
diff --git a/pkgs/by-name/ad/adrs/package.nix b/pkgs/by-name/ad/adrs/package.nix
index 0b4d49fbea22e..ed12b527ae380 100644
--- a/pkgs/by-name/ad/adrs/package.nix
+++ b/pkgs/by-name/ad/adrs/package.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-WqsZ+ICfKrackQ5dMs/WvF3inJX+k9LhxAJkXmaVAtY=";
 
   meta = {
-    description = "A command-line tool for managing Architectural Decision Records";
+    description = "Command-line tool for managing Architectural Decision Records";
     homepage = "https://github.com/joshrotenberg/adrs";
     license = with lib.licenses; [ mit asl20 ];
     maintainers = with lib.maintainers; [ dannixon ];
diff --git a/pkgs/by-name/ad/adwsteamgtk/package.nix b/pkgs/by-name/ad/adwsteamgtk/package.nix
index 393962961569c..b9001c2bf9a3b 100644
--- a/pkgs/by-name/ad/adwsteamgtk/package.nix
+++ b/pkgs/by-name/ad/adwsteamgtk/package.nix
@@ -42,7 +42,7 @@ python3Packages.buildPythonApplication rec {
   ];
 
   meta = {
-    description = "A simple Gtk wrapper for Adwaita-for-Steam";
+    description = "Simple Gtk wrapper for Adwaita-for-Steam";
     homepage = "https://github.com/Foldex/AdwSteamGtk";
     license = lib.licenses.gpl3Plus;
     maintainers = [ lib.maintainers.reedrw ];
diff --git a/pkgs/by-name/ae/aegisub/package.nix b/pkgs/by-name/ae/aegisub/package.nix
index cdec1259fd08b..a6d7b5e906927 100644
--- a/pkgs/by-name/ae/aegisub/package.nix
+++ b/pkgs/by-name/ae/aegisub/package.nix
@@ -7,6 +7,7 @@
   darwin,
   expat,
   fetchFromGitHub,
+  fetchpatch,
   ffmpeg,
   ffms,
   fftw,
@@ -120,7 +121,13 @@ stdenv.mkDerivation (finalAttrs: {
     "relro"
   ];
 
-  patches = lib.optionals (!useBundledLuaJIT) [
+  patches = [
+    (fetchpatch {
+      name = "move-iconv-include-to-charset_conv.h.patch";
+      url = "https://github.com/arch1t3cht/Aegisub/commit/b8f4c98c4cbc698e4adbba302c2dc328fe193435.patch";
+      hash = "sha256-dCm/VG+8yK7qWKWF4Ew/M2hbbAC/d3hiuRglR9BvWtw=";
+    })
+  ] ++ lib.optionals (!useBundledLuaJIT) [
     ./000-remove-bundled-luajit.patch
   ];
 
@@ -145,7 +152,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/wangqr/Aegisub";
-    description = "An advanced subtitle editor; wangqr's fork";
+    description = "Advanced subtitle editor; wangqr's fork";
     longDescription = ''
       Aegisub is a free, cross-platform open source tool for creating and
       modifying subtitles. Aegisub makes it quick and easy to time subtitles to
diff --git a/pkgs/by-name/af/affine/package.nix b/pkgs/by-name/af/affine/package.nix
index ae55ffad9800c..3d04b9244ed06 100644
--- a/pkgs/by-name/af/affine/package.nix
+++ b/pkgs/by-name/af/affine/package.nix
@@ -51,7 +51,7 @@ in {
     })
   ];
   meta = with lib; {
-    description = "A workspace with fully merged docs, whiteboards and databases";
+    description = "Workspace with fully merged docs, whiteboards and databases";
     longDescription = ''
       AFFiNE is an open-source, all-in-one workspace and an operating
       system for all the building blocks that assemble your knowledge
diff --git a/pkgs/by-name/af/afterglow-cursors-recolored/package.nix b/pkgs/by-name/af/afterglow-cursors-recolored/package.nix
index 8ce0d64d669a3..801e2eca40a98 100644
--- a/pkgs/by-name/af/afterglow-cursors-recolored/package.nix
+++ b/pkgs/by-name/af/afterglow-cursors-recolored/package.nix
@@ -117,7 +117,7 @@ stdenvNoCC.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A recoloring of the Afterglow Cursors x-cursor theme";
+    description = "Recoloring of the Afterglow Cursors x-cursor theme";
     homepage = "https://github.com/TeddyBearKilla/Afterglow-Cursors-Recolored";
     maintainers = with maintainers; [ d3vil0p3r ];
     platforms = platforms.all;
diff --git a/pkgs/by-name/af/afterstep/package.nix b/pkgs/by-name/af/afterstep/package.nix
index c91771fefe2da..6f93f8e1d6a25 100644
--- a/pkgs/by-name/af/afterstep/package.nix
+++ b/pkgs/by-name/af/afterstep/package.nix
@@ -87,7 +87,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "http://www.afterstep.org/";
-    description = "A NEXTStep-inspired window manager";
+    description = "NEXTStep-inspired window manager";
     longDescription = ''
       AfterStep is a window manager for the Unix X Window System. Originally
       based on the look and feel of the NeXTStep interface, it provides end
diff --git a/pkgs/by-name/ag/ags/package.nix b/pkgs/by-name/ag/ags/package.nix
index 85fb28aa12a3a..5fd52f72485e3 100644
--- a/pkgs/by-name/ag/ags/package.nix
+++ b/pkgs/by-name/ag/ags/package.nix
@@ -67,7 +67,7 @@ buildNpmPackage rec {
 
   meta = {
     homepage = "https://github.com/Aylur/ags";
-    description = "A EWW-inspired widget system as a GJS library";
+    description = "EWW-inspired widget system as a GJS library";
     changelog = "https://github.com/Aylur/ags/releases/tag/v${version}";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [
diff --git a/pkgs/by-name/ai/airlift/package.nix b/pkgs/by-name/ai/airlift/package.nix
index a5bbbb7614d95..afcd1545aa663 100644
--- a/pkgs/by-name/ai/airlift/package.nix
+++ b/pkgs/by-name/ai/airlift/package.nix
@@ -21,8 +21,13 @@ python3.pkgs.buildPythonApplication rec {
     sed -i '/argparse/d' pyproject.toml
   '';
 
-   nativeBuildInputs = [
+  pythonRelaxDeps = [
+    "hiyapyco"
+  ];
+
+  nativeBuildInputs = [
     python3.pkgs.poetry-core
+    python3.pkgs.pythonRelaxDepsHook
   ];
 
   buildInputs = [
@@ -43,7 +48,7 @@ python3.pkgs.buildPythonApplication rec {
     "airlift"
   ];
   meta = with lib; {
-    description = "A flexible, configuration driven CLI for Apache Airflow local development";
+    description = "Flexible, configuration driven CLI for Apache Airflow local development";
     homepage = "https://github.com/jl178/airlift";
     license = licenses.mit;
     changelog = "https://github.com/jl178/airlift/releases/tag/v${version}";
diff --git a/pkgs/by-name/al/alacarte/package.nix b/pkgs/by-name/al/alacarte/package.nix
index 003558c0e86d1..e380929f6f624 100644
--- a/pkgs/by-name/al/alacarte/package.nix
+++ b/pkgs/by-name/al/alacarte/package.nix
@@ -61,7 +61,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = {
     homepage = "https://gitlab.gnome.org/GNOME/alacarte";
-    description = "A menu editor for GNOME using the freedesktop.org menu specification";
+    description = "Menu editor for GNOME using the freedesktop.org menu specification";
     license = lib.licenses.gpl2Only;
     platforms = lib.platforms.linux;
     mainProgram = "alacarte";
diff --git a/pkgs/by-name/al/alephone-evil/package.nix b/pkgs/by-name/al/alephone-evil/package.nix
index a0120348c14e5..cf12f471a179f 100644
--- a/pkgs/by-name/al/alephone-evil/package.nix
+++ b/pkgs/by-name/al/alephone-evil/package.nix
@@ -11,7 +11,7 @@ alephone.makeWrapper rec {
   };
 
   meta = {
-    description = "The first conversion for Marathon Infinity";
+    description = "First conversion for Marathon Infinity";
     homepage = "https://alephone.lhowon.org/scenarios.html";
   };
 
diff --git a/pkgs/by-name/al/alephone-pheonix/package.nix b/pkgs/by-name/al/alephone-pheonix/package.nix
index 90db1aa7c73d6..da914e16ee316 100644
--- a/pkgs/by-name/al/alephone-pheonix/package.nix
+++ b/pkgs/by-name/al/alephone-pheonix/package.nix
@@ -11,7 +11,7 @@ alephone.makeWrapper rec {
   };
 
   meta = {
-    description = "A 35-level single player major Marathon conversion";
+    description = "35-level single player major Marathon conversion";
     homepage = "http://www.simplici7y.com/items/marathon-phoenix-2";
   };
 
diff --git a/pkgs/servers/allmark/default.nix b/pkgs/by-name/al/allmark/package.nix
index be87468b3a950..1fcdfce5f6bdc 100644
--- a/pkgs/servers/allmark/default.nix
+++ b/pkgs/by-name/al/allmark/package.nix
@@ -1,6 +1,10 @@
-{ buildGoPackage, fetchFromGitHub, lib }:
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "allmark";
   version = "0.10.0";
 
@@ -11,18 +15,25 @@ buildGoPackage rec {
     hash = "sha256-JfNn/e+cSq1pkeXs7A2dMsyhwOnh7x2bwm6dv6NOjLU=";
   };
 
-  goPackagePath = "github.com/andreaskoch/allmark";
+  postPatch = ''
+    go mod init github.com/andreaskoch/allmark
+  '';
+
+  vendorHash = null;
 
   postInstall = ''
     mv $out/bin/{cli,allmark}
   '';
 
-  meta = with lib; {
-    description = "A cross-platform markdown web server";
+  meta = {
+    description = "Cross-platform markdown web server";
     homepage = "https://github.com/andreaskoch/allmark";
     changelog = "https://github.com/andreaskoch/allmark/-/releases/v${version}";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ urandom ];
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [
+      luftmensch-luftmensch
+      urandom
+    ];
     mainProgram = "allmark";
   };
 }
diff --git a/pkgs/by-name/al/alp/package.nix b/pkgs/by-name/al/alp/package.nix
index 34bc447ed6d5a..05fe009148dde 100644
--- a/pkgs/by-name/al/alp/package.nix
+++ b/pkgs/by-name/al/alp/package.nix
@@ -47,7 +47,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A convenient authentication method that lets you use your android device as a key for your Linux machine";
+    description = "Convenient authentication method that lets you use your android device as a key for your Linux machine";
     homepage = "https://github.com/gernotfeichter/alp";
     license = licenses.gpl2Only;
     mainProgram = "alp";
diff --git a/pkgs/by-name/al/alt-tab-macos/package.nix b/pkgs/by-name/al/alt-tab-macos/package.nix
index e5b22dedcb82e..0654ea53b8978 100644
--- a/pkgs/by-name/al/alt-tab-macos/package.nix
+++ b/pkgs/by-name/al/alt-tab-macos/package.nix
@@ -2,17 +2,17 @@
   lib,
   stdenvNoCC,
   fetchurl,
-  gitUpdater,
+  nix-update-script,
   unzip,
 }:
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "alt-tab-macos";
-  version = "6.69.0";
+  version = "6.70.1";
 
   src = fetchurl {
     url = "https://github.com/lwouis/alt-tab-macos/releases/download/v${finalAttrs.version}/AltTab-${finalAttrs.version}.zip";
-    hash = "sha256-v0HeucpDGdnK0p9zoYUbEBoHzRMlcJBEIIS1vQZ00A0=";
+    hash = "sha256-4LdlLoc6hMF1jIlHeC89m1unStCsID6/nWJuuYUX96o=";
   };
 
   sourceRoot = ".";
@@ -28,10 +28,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
     runHook postInstall
   '';
 
-  passthru.updateScript = gitUpdater {
-    url = "https://github.com/lwouis/alt-tab-macos";
-    rev-prefix = "v";
-  };
+  passthru.updateScript = nix-update-script { };
 
   meta = {
     description = "Windows alt-tab on macOS";
diff --git a/pkgs/by-name/am/am2rlauncher/package.nix b/pkgs/by-name/am/am2rlauncher/package.nix
index 049725881e3d2..0698100d5bddb 100644
--- a/pkgs/by-name/am/am2rlauncher/package.nix
+++ b/pkgs/by-name/am/am2rlauncher/package.nix
@@ -93,7 +93,7 @@ buildDotnetModule {
 
   meta = with lib; {
     homepage = "https://github.com/AM2R-Community-Developers/AM2RLauncher";
-    description = "A front-end for dealing with AM2R updates and mods";
+    description = "Front-end for dealing with AM2R updates and mods";
     longDescription = ''
       A front-end application that simplifies installing the latest
       AM2R-Community-Updates, creating APKs for Android use, as well as Mods for
diff --git a/pkgs/by-name/am/amazon-ssm-agent/package.nix b/pkgs/by-name/am/amazon-ssm-agent/package.nix
index a4b76495c2ed4..62f66302806ff 100644
--- a/pkgs/by-name/am/amazon-ssm-agent/package.nix
+++ b/pkgs/by-name/am/amazon-ssm-agent/package.nix
@@ -14,7 +14,6 @@
 , nixosTests
 , testers
 , amazon-ssm-agent
-, overrideEtc ? true
 }:
 
 let
@@ -42,13 +41,13 @@ let
 in
 buildGoModule rec {
   pname = "amazon-ssm-agent";
-  version = "3.3.131.0";
+  version = "3.3.484.0";
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = "amazon-ssm-agent";
     rev = "refs/tags/${version}";
-    hash = "sha256-fYFY5HQcArSDdh1qtIo4OzeLt+mIlbwlSr4O1py3MAk=";
+    hash = "sha256-zWjV56xw4eVHKx3J2DDq6b+RYjU0EL9ShQmb72SVBVk=";
   };
 
   vendorHash = null;
@@ -96,9 +95,6 @@ buildGoModule rec {
       --replace "/sbin/shutdown" "shutdown"
 
     echo "${version}" > VERSION
-  '' + lib.optionalString overrideEtc ''
-    substituteInPlace agent/appconfig/constants_unix.go \
-      --replace '"/etc/amazon/ssm/"' '"${placeholder "out"}/etc/amazon/ssm/"'
   '' + lib.optionalString stdenv.isLinux ''
     substituteInPlace agent/managedInstances/fingerprint/hardwareInfo_unix.go \
       --replace /usr/sbin/dmidecode ${dmidecode}/bin/dmidecode
@@ -166,6 +162,6 @@ buildGoModule rec {
     homepage = "https://github.com/aws/amazon-ssm-agent";
     license = licenses.asl20;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ copumpkin manveru anthonyroussel ];
+    maintainers = with maintainers; [ copumpkin manveru anthonyroussel arianvp ];
   };
 }
diff --git a/pkgs/by-name/am/amber-lang/package.nix b/pkgs/by-name/am/amber-lang/package.nix
new file mode 100644
index 0000000000000..a12302748405d
--- /dev/null
+++ b/pkgs/by-name/am/amber-lang/package.nix
@@ -0,0 +1,49 @@
+{ lib,
+  fetchFromGitHub,
+  rustPlatform,
+  bc,
+  makeWrapper,
+  runCommand,
+  amber-lang
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "amber-lang";
+  version = "0.3.1-alpha";
+
+  src = fetchFromGitHub {
+    owner = "Ph0enixKM";
+    repo = "Amber";
+    rev = version;
+    hash = "sha256-VSlLPgoi+KPnUQJEb6m0VZQVs1zkxEnfqs3fAp8m1o4=";
+  };
+
+  cargoHash = "sha256-NzcyX/1yeFcI80pNxx/OTkaI82qyQFJW8U0vPbqSU7g=";
+
+  buildInputs = [ makeWrapper ];
+
+  nativeCheckInputs = [ bc ];
+
+  preConfigure = ''
+    substituteInPlace src/compiler.rs \
+      --replace-fail "/bin/bash" "bash"
+  '';
+
+  postInstall = ''
+    wrapProgram "$out/bin/amber" --prefix PATH : "${lib.makeBinPath [bc]}"
+  '';
+
+  passthru.tests.run = runCommand "amber-lang-eval-test" { nativeBuildInputs = [ amber-lang ]; } ''
+    diff -U3 --color=auto <(amber -e 'echo "Hello, World"') <(echo 'Hello, World')
+    touch $out
+  '';
+
+  meta = with lib; {
+    description = "Programming language compiled to bash";
+    homepage = "https://amber-lang.com";
+    license = licenses.gpl3Plus;
+    mainProgram = "amber";
+    maintainers = with maintainers; [ cafkafk uncenter ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/by-name/am/amfora/package.nix b/pkgs/by-name/am/amfora/package.nix
index 340a7d9066508..7c80504fd95e4 100644
--- a/pkgs/by-name/am/amfora/package.nix
+++ b/pkgs/by-name/am/amfora/package.nix
@@ -19,7 +19,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A fancy terminal browser for the Gemini protocol";
+    description = "Fancy terminal browser for the Gemini protocol";
     mainProgram = "amfora";
     homepage = "https://github.com/makeworld-the-better-one/amfora";
     license = with licenses; [ gpl3 ];
diff --git a/pkgs/by-name/an/ananicy-cpp/match-wrappers.patch b/pkgs/by-name/an/ananicy-cpp/match-wrappers.patch
new file mode 100644
index 0000000000000..3b352925e2710
--- /dev/null
+++ b/pkgs/by-name/an/ananicy-cpp/match-wrappers.patch
@@ -0,0 +1,16 @@
+diff --git a/src/worker.cpp b/src/worker.cpp
+index 0cf8955..b9dc70f 100644
+--- a/src/worker.cpp
++++ b/src/worker.cpp
+@@ -29,7 +29,10 @@ void Worker::work(const std::stop_token &stop_token) {
+   while (!stop_token.stop_requested()) {
+     while ((proc = process_queue->poll(500ms)).has_value()) {
+       const auto &p = proc.value();
+-      const auto &rule = rules->get_rule(p.name);
++      auto name = p.name;
++      if (name.starts_with('.') && name.ends_with("-wrapped"))
++        name = name.substr(1, name.find_last_of('-') - 1);
++      const auto &rule = rules->get_rule(name);
+ 
+       processed_count++;
+ 
diff --git a/pkgs/misc/ananicy-cpp/default.nix b/pkgs/by-name/an/ananicy-cpp/package.nix
index 9a771a470339f..a17e199a5ca71 100644
--- a/pkgs/misc/ananicy-cpp/default.nix
+++ b/pkgs/by-name/an/ananicy-cpp/package.nix
@@ -1,6 +1,7 @@
 { lib
 , clangStdenv
 , fetchFromGitLab
+, fetchpatch
 , cmake
 , pkg-config
 , spdlog
@@ -9,6 +10,7 @@
 , libbpf
 , elfutils
 , bpftools
+, pcre2
 , zlib
 }:
 
@@ -24,6 +26,16 @@ clangStdenv.mkDerivation rec {
     sha256 = "sha256-oPinSc00+Z6SxjfTh7DttcXSjsLv1X0NI+O37C8M8GY=";
   };
 
+  patches = [
+    # FIXME: remove this when updating to next stable release
+    (fetchpatch {
+      name = "allow-regex-pattern-matching.patch";
+      url = "https://gitlab.com/ananicy-cpp/ananicy-cpp/-/commit/6ea2dccceec39b6c4913f617dad81d859aa20f24.patch";
+      hash = "sha256-C+7x/VpVwewXEPwibi7GxGfjuhDkhcjTyGbZHlYL2Bs=";
+    })
+    ./match-wrappers.patch
+  ];
+
   strictDeps = true;
 
   nativeBuildInputs = [
@@ -33,6 +45,7 @@ clangStdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    pcre2
     spdlog
     nlohmann_json
     systemd
@@ -51,6 +64,7 @@ clangStdenv.mkDerivation rec {
     "-DUSE_BPF_PROC_IMPL=ON"
     "-DBPF_BUILD_LIBBPF=OFF"
     "-DENABLE_SYSTEMD=ON"
+    "-DENABLE_REGEX_SUPPORT=ON"
     "-DVERSION=${version}"
   ];
 
@@ -59,12 +73,16 @@ clangStdenv.mkDerivation rec {
     rm -rf "$out"/lib/cmake
   '';
 
-  meta = with lib; {
+  meta = {
     homepage = "https://gitlab.com/ananicy-cpp/ananicy-cpp";
     description = "Rewrite of ananicy in c++ for lower cpu and memory usage";
-    license = licenses.gpl3Only;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ artturin ];
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [
+      artturin
+      johnrtitor
+      diniamo
+    ];
     mainProgram = "ananicy-cpp";
   };
 }
diff --git a/pkgs/by-name/an/ananicy-rules-cachyos/package.nix b/pkgs/by-name/an/ananicy-rules-cachyos/package.nix
index 2cca8544c9f60..e8cd712eda1d2 100644
--- a/pkgs/by-name/an/ananicy-rules-cachyos/package.nix
+++ b/pkgs/by-name/an/ananicy-rules-cachyos/package.nix
@@ -7,13 +7,13 @@
 
 stdenvNoCC.mkDerivation {
   pname = "ananicy-rules-cachyos";
-  version = "0-unstable-2024-05-10";
+  version = "0-unstable-2024-06-14";
 
   src = fetchFromGitHub {
     owner = "CachyOS";
     repo = "ananicy-rules";
-    rev = "1826cf45201770e20fea2e7bebfc2a5001074703";
-    hash = "sha256-9Uth0OvV5NXHZxOCQDMmb0VdXpi8dSMdN9StnJa8n90=";
+    rev = "e3638ebb2320202ede9facfc9657cc8af2098a2d";
+    hash = "sha256-lIhXeqPJKC3brxVhIK04K9AAU+RqqqOwN/gUevYmaDM=";
   };
 
   dontConfigure = true;
diff --git a/pkgs/by-name/an/anime4k/package.nix b/pkgs/by-name/an/anime4k/package.nix
index eef64ffc3ae91..7b8d1fbfc1ef8 100644
--- a/pkgs/by-name/an/anime4k/package.nix
+++ b/pkgs/by-name/an/anime4k/package.nix
@@ -23,7 +23,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A high-quality real time upscaler for anime";
+    description = "High-quality real time upscaler for anime";
     homepage = "https://github.com/bloc97/Anime4K";
     license = licenses.mit;
     maintainers = with maintainers; [ surfaceflinger ];
diff --git a/pkgs/by-name/an/ansel/package.nix b/pkgs/by-name/an/ansel/package.nix
index 54fa01bf0d601..5645e92aa1bac 100644
--- a/pkgs/by-name/an/ansel/package.nix
+++ b/pkgs/by-name/an/ansel/package.nix
@@ -166,7 +166,7 @@ stdenv.mkDerivation {
   };
 
   meta = {
-    description = "A darktable fork minus the bloat plus some design vision";
+    description = "Darktable fork minus the bloat plus some design vision";
     homepage = "https://ansel.photos/";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ eclairevoyant ];
diff --git a/pkgs/by-name/an/anyrun/package.nix b/pkgs/by-name/an/anyrun/package.nix
index 69362904f4123..6ea894c954942 100644
--- a/pkgs/by-name/an/anyrun/package.nix
+++ b/pkgs/by-name/an/anyrun/package.nix
@@ -65,7 +65,7 @@ rustPlatform.buildRustPackage rec {
   passthru.updateScript = unstableGitUpdater { };
 
   meta = {
-    description = "A wayland-native, highly customizable runner";
+    description = "Wayland-native, highly customizable runner";
     homepage = "https://github.com/kirottu/anyrun";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ eclairevoyant NotAShelf ];
diff --git a/pkgs/by-name/an/anytype/package.nix b/pkgs/by-name/an/anytype/package.nix
index 2ec353a1784f7..dfe9a7eedbe00 100644
--- a/pkgs/by-name/an/anytype/package.nix
+++ b/pkgs/by-name/an/anytype/package.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "anytype";
-  version = "0.40.8";
+  version = "0.40.9";
   name = "Anytype-${version}";
   src = fetchurl {
     url = "https://github.com/anyproto/anytype-ts/releases/download/v${version}/${name}.AppImage";
     name = "Anytype-${version}.AppImage";
-    hash = "sha256-Rvl52nKrOWQfT2qgssEpFjQCjva54zPvm6aEXmO0NTc=";
+    hash = "sha256-NxiRq/aAWToe27COEoQb4BmyKgLRYQ+gXtM0Djhlcow=";
   };
   appimageContents = appimageTools.extractType2 { inherit name src; };
 in appimageTools.wrapType2 {
diff --git a/pkgs/by-name/ap/aphorme/package.nix b/pkgs/by-name/ap/aphorme/package.nix
index b46dceef65062..153de3c7b74cb 100644
--- a/pkgs/by-name/ap/aphorme/package.nix
+++ b/pkgs/by-name/ap/aphorme/package.nix
@@ -42,7 +42,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = {
-    description = "A program launcher for window managers, written in Rust";
+    description = "Program launcher for window managers, written in Rust";
     mainProgram = "aphorme";
     homepage = "https://github.com/Iaphetes/aphorme_launcher";
     license = lib.licenses.gpl3Plus;
diff --git a/pkgs/by-name/ap/api-linter/package.nix b/pkgs/by-name/ap/api-linter/package.nix
index 4eb4301ef65f1..3f5a972fa4779 100644
--- a/pkgs/by-name/ap/api-linter/package.nix
+++ b/pkgs/by-name/ap/api-linter/package.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "api-linter";
-  version = "1.66.0";
+  version = "1.66.1";
 
   src = fetchFromGitHub {
     owner = "googleapis";
     repo = "api-linter";
     rev = "v${version}";
-    hash = "sha256-PwsqED6jIiPapthdhl7XxGwp+H3gjGfn2DGl1mWuano=";
+    hash = "sha256-gaXvkWexvpKOiUEk4OOHla8HmT0sAT94peljH9q9N7c=";
   };
 
-  vendorHash = "sha256-mJT5gqMCe1NuUBoSRqYTp64UK2vZ+GJwgnb0ILQPkno=";
+  vendorHash = "sha256-czLcy/9QbBuKu3lPISx3Pzf2ccvdp7gF0SWVbSZ6Nn8=";
 
   subPackages = [ "cmd/api-linter" ];
 
diff --git a/pkgs/data/fonts/apl386/default.nix b/pkgs/by-name/ap/apl386/package.nix
index e1bab248f3945..bfbb00dedeed6 100644
--- a/pkgs/data/fonts/apl386/default.nix
+++ b/pkgs/by-name/ap/apl386/package.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation {
   pname = "apl386";
-  version = "unstable-2022-03-07";
+  version = "0-unstable-2024-01-10";
 
   src = fetchFromGitHub {
     owner = "abrudz";
     repo = "APL386";
-    rev = "6332c9dbb588946a0e8c9d7984dd0c003eeea266";
-    hash = "sha256-oHk4e7NRgAjGtZzQmZToYz7wCZETaj7/yRwZMeeYF2M=";
+    rev = "43ebc6349506b0e7ab5c49f6b08f8afe66c4d9c5";
+    hash = "sha256-MLHSYHFyI9eKdrE/yM7u4vu4Dz6riEk7XQTUuAXPfzM=";
   };
 
   installPhase = ''
diff --git a/pkgs/by-name/ap/apostrophe/package.nix b/pkgs/by-name/ap/apostrophe/package.nix
index 503e4ff2f1946..687c396d350e7 100644
--- a/pkgs/by-name/ap/apostrophe/package.nix
+++ b/pkgs/by-name/ap/apostrophe/package.nix
@@ -106,7 +106,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = {
     homepage = "https://gitlab.gnome.org/World/apostrophe";
-    description = "A distraction free Markdown editor for GNU/Linux";
+    description = "Distraction free Markdown editor for GNU/Linux";
     license = lib.licenses.gpl3Plus;
     platforms = lib.platforms.linux;
     maintainers = with lib.maintainers; [
diff --git a/pkgs/by-name/ap/application-title-bar/package.nix b/pkgs/by-name/ap/application-title-bar/package.nix
new file mode 100644
index 0000000000000..57de40bcf25f1
--- /dev/null
+++ b/pkgs/by-name/ap/application-title-bar/package.nix
@@ -0,0 +1,36 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, kdePackages
+}:
+
+stdenv.mkDerivation rec {
+  pname = "application-title-bar";
+  version = "0.6.3";
+
+  src = fetchFromGitHub {
+    owner = "antroids";
+    repo = "application-title-bar";
+    rev = "v${version}";
+    hash = "sha256-r15wZCioWrTr5mA0WARFd4j8zwWIWU4wEv899RSURa4=";
+  };
+
+  propagatedUserEnvPkgs = with kdePackages; [ kconfig ];
+
+  dontWrapQtApps = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/plasma/plasmoids/com.github.antroids.application-title-bar
+    cp -r $src/package/* $out/share/plasma/plasmoids/com.github.antroids.application-title-bar
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "KDE Plasma6 widget with window controls";
+    homepage = "https://github.com/antroids/application-title-bar";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ HeitorAugustoLN ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/ap/aprx/package.nix b/pkgs/by-name/ap/aprx/package.nix
index 79cefac7545a9..fe946ff48366c 100644
--- a/pkgs/by-name/ap/aprx/package.nix
+++ b/pkgs/by-name/ap/aprx/package.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A multitalented APRS i-gate / digipeater";
+    description = "Multitalented APRS i-gate / digipeater";
     homepage = "http://thelifeofkenneth.com/aprx";
     license = licenses.bsd3;
     maintainers = with maintainers; [ sarcasticadmin ];
diff --git a/pkgs/by-name/ap/apt-mirror/package.nix b/pkgs/by-name/ap/apt-mirror/package.nix
index 46aed818fe340..3fbc22451ec6b 100644
--- a/pkgs/by-name/ap/apt-mirror/package.nix
+++ b/pkgs/by-name/ap/apt-mirror/package.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.updateScript = nix-update-script {};
 
   meta = with lib; {
-    description = "A tool that provides the ability to mirror any parts of apt sources";
+    description = "Tool that provides the ability to mirror any parts of apt sources";
     homepage = "https://github.com/apt-mirror/apt-mirror";
     changelog = "https://github.com/apt-mirror/apt-mirror/blob/${finalAttrs.src.rev}/CHANGELOG";
     license = licenses.gpl2Only;
diff --git a/pkgs/by-name/ap/apt-offline/package.nix b/pkgs/by-name/ap/apt-offline/package.nix
index 39ab2613da22b..124aadf1acb2e 100644
--- a/pkgs/by-name/ap/apt-offline/package.nix
+++ b/pkgs/by-name/ap/apt-offline/package.nix
@@ -2,6 +2,7 @@
 , fetchFromGitHub
 , python3Packages
 , gnupg
+, installShellFiles
 }:
 
 let
@@ -18,6 +19,8 @@ in
 python3Packages.buildPythonApplication {
   inherit pname version src;
 
+  nativeBuildInputs = [ installShellFiles ];
+
   postPatch = ''
     substituteInPlace org.debian.apt.aptoffline.policy \
       --replace /usr/bin/ "$out/bin"
@@ -26,6 +29,10 @@ python3Packages.buildPythonApplication {
       --replace /usr/bin/gpgv "${lib.getBin gnupg}/bin/gpgv"
   '';
 
+  postInstall = ''
+    installManPage apt-offline.8
+  '';
+
   postFixup = ''
     rm "$out/bin/apt-offline-gui" "$out/bin/apt-offline-gui-pkexec"
   '';
@@ -34,6 +41,8 @@ python3Packages.buildPythonApplication {
 
   pythonImportsCheck = [ "apt_offline_core" ];
 
+  outputs = [ "out" "man" ];
+
   meta = {
     homepage = "https://github.com/rickysarraf/apt-offline";
     description = "Offline APT package manager";
diff --git a/pkgs/by-name/ap/apt/package.nix b/pkgs/by-name/ap/apt/package.nix
index 1a227d7a17d58..7c41e4edd4417 100644
--- a/pkgs/by-name/ap/apt/package.nix
+++ b/pkgs/by-name/ap/apt/package.nix
@@ -33,11 +33,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "apt";
-  version = "2.9.3";
+  version = "2.9.5";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/a/apt/apt_${finalAttrs.version}.tar.xz";
-    hash = "sha256-7R0BlcpujXjbulOJ7Eb8/gQiut77vce1GkbJCfa6LXE=";
+    hash = "sha256-bSstTP+9gxOhHnO8PIb4/5W8Xg3vc1nvrDAz9WMFGJQ=";
   };
 
   # cycle detection; lib can't be split
diff --git a/pkgs/by-name/ap/apx-gui/package.nix b/pkgs/by-name/ap/apx-gui/package.nix
index 60d3eac665d4f..c11be3173d77c 100644
--- a/pkgs/by-name/ap/apx-gui/package.nix
+++ b/pkgs/by-name/ap/apx-gui/package.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A GUI frontend for Apx in GTK 4 and Libadwaita";
+    description = "GUI frontend for Apx in GTK 4 and Libadwaita";
     homepage    = "https://github.com/Vanilla-OS/apx-gui";
     license     = lib.licenses.gpl3Only;
     platforms   = lib.platforms.linux;
diff --git a/pkgs/by-name/ar/arc-browser/package.nix b/pkgs/by-name/ar/arc-browser/package.nix
index 2813e0f39791e..a4b1b5fcb89fa 100644
--- a/pkgs/by-name/ar/arc-browser/package.nix
+++ b/pkgs/by-name/ar/arc-browser/package.nix
@@ -9,11 +9,11 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "arc-browser";
-  version = "1.43.1-50198";
+  version = "1.46.0-50665";
 
   src = fetchurl {
     url = "https://releases.arc.net/release/Arc-${finalAttrs.version}.dmg";
-    hash = "sha256-++C3COEs0ycfj+vV4PdlWloc4M0hGZG5fdJ+rbyBo7w=";
+    hash = "sha256-k1guZWLeA9obSYRPSKObGhYYjRKxPBQ0wtAGSU2REjA=";
   };
 
   nativeBuildInputs = [ undmg ];
diff --git a/pkgs/by-name/ar/argtable/package.nix b/pkgs/by-name/ar/argtable/package.nix
index 18206202691c7..c4db49d20254d 100644
--- a/pkgs/by-name/ar/argtable/package.nix
+++ b/pkgs/by-name/ar/argtable/package.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/argtable/argtable3";
-    description = "A single-file, ANSI C command-line parsing library";
+    description = "Single-file, ANSI C command-line parsing library";
     longDescription = ''
       Argtable is an open source ANSI C library that parses GNU-style
       command-line options. It simplifies command-line parsing by defining a
diff --git a/pkgs/by-name/ar/aribb24/package.nix b/pkgs/by-name/ar/aribb24/package.nix
index 84e892cc616e5..a9c35c8bed889 100644
--- a/pkgs/by-name/ar/aribb24/package.nix
+++ b/pkgs/by-name/ar/aribb24/package.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A library for ARIB STD-B24, decoding JIS 8 bit characters and parsing MPEG-TS stream";
+    description = "Library for ARIB STD-B24, decoding JIS 8 bit characters and parsing MPEG-TS stream";
     homepage = "https://code.videolan.org/jeeb/aribb24/";
     license = licenses.lgpl3Plus;
     pkgConfigModules = [ "aribb24" ];
diff --git a/pkgs/by-name/ar/ark-pixel-font/limit-builds.patch b/pkgs/by-name/ar/ark-pixel-font/limit-builds.patch
new file mode 100644
index 0000000000000..c63798e071c99
--- /dev/null
+++ b/pkgs/by-name/ar/ark-pixel-font/limit-builds.patch
@@ -0,0 +1,34 @@
+diff --git a/build.py b/build.py
+index 48bc757d..88b9ed9b 100644
+--- a/build.py
++++ b/build.py
+@@ -1,6 +1,5 @@
+ from scripts import configs
+ from scripts.configs import path_define
+-from scripts.services import publish_service, info_service, template_service, image_service
+ from scripts.services.font_service import DesignContext, FontContext
+ from scripts.utils import fs_util
+ 
+@@ -21,21 +20,6 @@ def main():
+             font_context.make_pcf()
+             font_context.make_otc()
+             font_context.make_ttc()
+-            publish_service.make_release_zips(font_config, width_mode)
+-            info_service.make_info_file(design_context, width_mode)
+-            info_service.make_alphabet_txt_file(design_context, width_mode)
+-            template_service.make_alphabet_html_file(design_context, width_mode)
+-        template_service.make_demo_html_file(design_context)
+-        image_service.make_preview_image_file(font_config)
+-    template_service.make_index_html_file()
+-    template_service.make_playground_html_file()
+-    image_service.make_readme_banner()
+-    image_service.make_github_banner()
+-    image_service.make_itch_io_banner()
+-    image_service.make_itch_io_background()
+-    image_service.make_itch_io_cover()
+-    image_service.make_afdian_cover()
+-
+ 
+ if __name__ == '__main__':
+     main()
+
diff --git a/pkgs/by-name/ar/ark-pixel-font/package.nix b/pkgs/by-name/ar/ark-pixel-font/package.nix
index 578552a03f13b..e93cccf68420b 100644
--- a/pkgs/by-name/ar/ark-pixel-font/package.nix
+++ b/pkgs/by-name/ar/ark-pixel-font/package.nix
@@ -28,10 +28,15 @@ python312Packages.buildPythonPackage rec {
     gitpython
   ];
 
+  # By default build.py builds a LOT of extraneous artifacts we don't need.
+  patches = [ ./limit-builds.patch ];
+
   buildPhase = ''
     runHook preBuild
 
-    python build.py
+    # Too much debug output would break Hydra, so this jankness has to be here for it to build at all.
+    # I wish there's a builtin way to set the log level without modifying the script itself...
+    python3 build.py 2>&1 >/dev/null | grep -E '^(INFO|WARN|ERROR)'
 
     runHook postBuild
   '';
@@ -43,6 +48,9 @@ python312Packages.buildPythonPackage rec {
     install -Dm444 build/outputs/*.otf -t $out/share/fonts/opentype
     install -Dm444 build/outputs/*.ttf -t $out/share/fonts/truetype
     install -Dm444 build/outputs/*.woff2 -t $out/share/fonts/woff2
+    install -Dm444 build/outputs/*.pcf -t $out/share/fonts/pcf
+    install -Dm444 build/outputs/*.otc -t $out/share/fonts/otc
+    install -Dm444 build/outputs/*.ttc -t $out/share/fonts/ttc
 
     runHook postInstall
   '';
diff --git a/pkgs/by-name/ar/arkenfox-userjs/package.nix b/pkgs/by-name/ar/arkenfox-userjs/package.nix
new file mode 100644
index 0000000000000..04ac83fce1a66
--- /dev/null
+++ b/pkgs/by-name/ar/arkenfox-userjs/package.nix
@@ -0,0 +1,41 @@
+{
+  lib,
+  fetchurl,
+  stdenvNoCC,
+  nix-update-script,
+}:
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "arkenfox-userjs";
+  version = "126.1";
+
+  src = fetchurl {
+    url = "https://raw.githubusercontent.com/arkenfox/user.js/${finalAttrs.version}/user.js";
+    hash = "sha256-XRtG0iLKh8uqbeX7Rc2H6VJwZYJoNZPBlAfZEfrSCP4=";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 $src $out/user.js
+    install -Dm644 $src $out/user.cfg
+    substituteInPlace $out/user.cfg \
+      --replace-fail "user_pref" "defaultPref"
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "A comprehensive user.js template for configuration and hardening";
+    homepage = "https://github.com/arkenfox/user.js";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [
+      linsui
+      Guanran928
+    ];
+    platforms = lib.platforms.all;
+  };
+})
diff --git a/pkgs/by-name/ar/arrow-cpp/package.nix b/pkgs/by-name/ar/arrow-cpp/package.nix
index 723acbc2531f8..534c5f2430570 100644
--- a/pkgs/by-name/ar/arrow-cpp/package.nix
+++ b/pkgs/by-name/ar/arrow-cpp/package.nix
@@ -266,7 +266,7 @@ stdenv.mkDerivation (finalAttrs: {
     '';
 
   meta = with lib; {
-    description = "A cross-language development platform for in-memory data";
+    description = "Cross-language development platform for in-memory data";
     homepage = "https://arrow.apache.org/docs/cpp/";
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/pkgs/by-name/ar/artalk/package.nix b/pkgs/by-name/ar/artalk/package.nix
index d2f71dac740f7..63edf4852b5aa 100644
--- a/pkgs/by-name/ar/artalk/package.nix
+++ b/pkgs/by-name/ar/artalk/package.nix
@@ -8,13 +8,13 @@
 }:
 buildGoModule rec {
   pname = "artalk";
-  version = "2.8.6";
+  version = "2.8.7";
 
   src = fetchFromGitHub {
     owner = "ArtalkJS";
     repo = "artalk";
     rev = "v${version}";
-    hash = "sha256-ya/by1PaWdYS/Fsbu6wDKuUcPy55/2F5hJEqko4K57o=";
+    hash = "sha256-fOuZiFomXGvRUXkpEM3BpJyMOtSm6/RHd0a7dPOsoT4=";
   };
   web = fetchurl {
     url = "https://github.com/${src.owner}/${src.repo}/releases/download/v${version}/artalk_ui.tar.gz";
@@ -23,7 +23,7 @@ buildGoModule rec {
 
   CGO_ENABLED = 1;
 
-  vendorHash = "sha256-R4/keVGCpCZfLrb2OrK9vdK+N+VKFLAvFXEOA1feqKo=";
+  vendorHash = "sha256-Hm388ub/ja3PuSRqPkr6A+pgKUQ+czMj1WKU8W8H5wI=";
 
   ldflags = [
     "-s"
@@ -41,7 +41,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A self-hosted comment system";
+    description = "Self-hosted comment system";
     homepage = "https://github.com/ArtalkJS/Artalk";
     license = licenses.mit;
     maintainers = with maintainers; [ moraxyc ];
diff --git a/pkgs/by-name/ar/arxiv-latex-cleaner/package.nix b/pkgs/by-name/ar/arxiv-latex-cleaner/package.nix
index bae622f00fd2b..608a02d70bf02 100644
--- a/pkgs/by-name/ar/arxiv-latex-cleaner/package.nix
+++ b/pkgs/by-name/ar/arxiv-latex-cleaner/package.nix
@@ -5,13 +5,13 @@
 }:
 python3Packages.buildPythonApplication rec {
   pname = "arxiv-latex-cleaner";
-  version = "1.0.5";
+  version = "1.0.6";
 
   src = fetchFromGitHub {
     owner = "google-research";
     repo = "arxiv-latex-cleaner";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Yxp8XtlISVZfEjCEJ/EXsIGMCHDPOwPcjkJxECeXvYk=";
+    hash = "sha256-S/r5riFIsRG+5za+4kVvUXOLIJ3ELCDWlSpYeSuNs+s=";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/by-name/as/asahi-bless/package.nix b/pkgs/by-name/as/asahi-bless/package.nix
index 96943722a3c52..d0bb7691e5100 100644
--- a/pkgs/by-name/as/asahi-bless/package.nix
+++ b/pkgs/by-name/as/asahi-bless/package.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   cargoDepsName = pname;
 
   meta = with lib; {
-    description = "A tool to select active boot partition on ARM Macs";
+    description = "Tool to select active boot partition on ARM Macs";
     homepage = "https://crates.io/crates/asahi-bless";
     license = licenses.mit;
     maintainers = with maintainers; [ lukaslihotzki ];
diff --git a/pkgs/by-name/as/asahi-btsync/package.nix b/pkgs/by-name/as/asahi-btsync/package.nix
index 2b01e757086b8..f776f86a2fc21 100644
--- a/pkgs/by-name/as/asahi-btsync/package.nix
+++ b/pkgs/by-name/as/asahi-btsync/package.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   cargoDepsName = pname;
 
   meta = with lib; {
-    description = "A tool to sync Bluetooth pairing keys with macos on ARM Macs";
+    description = "Tool to sync Bluetooth pairing keys with macos on ARM Macs";
     homepage = "https://crates.io/crates/asahi-btsync";
     license = licenses.mit;
     maintainers = with maintainers; [ lukaslihotzki ];
diff --git a/pkgs/by-name/as/asahi-nvram/package.nix b/pkgs/by-name/as/asahi-nvram/package.nix
index 05f37e9c5cce7..b8113475c8fce 100644
--- a/pkgs/by-name/as/asahi-nvram/package.nix
+++ b/pkgs/by-name/as/asahi-nvram/package.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   cargoDepsName = pname;
 
   meta = with lib; {
-    description = "A tool to read and write nvram variables on ARM Macs";
+    description = "Tool to read and write nvram variables on ARM Macs";
     homepage = "https://crates.io/crates/asahi-nvram";
     license = licenses.mit;
     maintainers = with maintainers; [ lukaslihotzki ];
diff --git a/pkgs/by-name/as/asahi-wifisync/package.nix b/pkgs/by-name/as/asahi-wifisync/package.nix
index deeac6d4b17eb..5a0b9c87219da 100644
--- a/pkgs/by-name/as/asahi-wifisync/package.nix
+++ b/pkgs/by-name/as/asahi-wifisync/package.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   cargoDepsName = pname;
 
   meta = with lib; {
-    description = "A tool to sync Wifi passwords with macos on ARM Macs";
+    description = "Tool to sync Wifi passwords with macos on ARM Macs";
     homepage = "https://crates.io/crates/asahi-wifisync";
     license = licenses.mit;
     maintainers = with maintainers; [ lukaslihotzki ];
diff --git a/pkgs/by-name/as/ascii-draw/package.nix b/pkgs/by-name/as/ascii-draw/package.nix
index 96e4cb0fbd350..f2895ebdcdb9b 100644
--- a/pkgs/by-name/as/ascii-draw/package.nix
+++ b/pkgs/by-name/as/ascii-draw/package.nix
@@ -48,7 +48,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = {
-    description = "An app to draw diagrams or anything using only ASCII";
+    description = "App to draw diagrams or anything using only ASCII";
     homepage = "https://github.com/Nokse22/ascii-draw";
     license = lib.licenses.gpl3Plus;
     mainProgram = "ascii-draw";
diff --git a/pkgs/by-name/as/asciiquarium-transparent/package.nix b/pkgs/by-name/as/asciiquarium-transparent/package.nix
index b0b476e12bd98..e82c054b017a3 100644
--- a/pkgs/by-name/as/asciiquarium-transparent/package.nix
+++ b/pkgs/by-name/as/asciiquarium-transparent/package.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "An aquarium/sea animation in ASCII art (with option of transparent background)";
+    description = "Aquarium/sea animation in ASCII art (with option of transparent background)";
     homepage = "https://github.com/nothub/asciiquarium";
     license = lib.licenses.gpl2Only;
     mainProgram = "asciiquarium";
diff --git a/pkgs/by-name/as/aseprite/package.nix b/pkgs/by-name/as/aseprite/package.nix
new file mode 100644
index 0000000000000..13cd6e6bb0ddb
--- /dev/null
+++ b/pkgs/by-name/as/aseprite/package.nix
@@ -0,0 +1,171 @@
+{
+  clangStdenv,
+  cmake,
+  cmark,
+  curl,
+  fetchFromGitHub,
+  fetchpatch,
+  fmt,
+  fontconfig,
+  freetype,
+  giflib,
+  gitUpdater,
+  glib,
+  harfbuzzFull,
+  lib,
+  libGL,
+  libjpeg,
+  libpng,
+  libwebp,
+  libX11,
+  libXcursor,
+  libXext,
+  libXi,
+  libXxf86vm,
+  ninja,
+  pcre2,
+  pixman,
+  pkg-config,
+  skia-aseprite,
+  tinyxml-2,
+  zlib,
+}:
+
+clangStdenv.mkDerivation (finalAttrs: {
+  pname = "aseprite";
+  version = "1.3.7";
+
+  src = fetchFromGitHub {
+    owner = "aseprite";
+    repo = "aseprite";
+    rev = "v" + finalAttrs.version;
+    fetchSubmodules = true;
+    hash = "sha256-75kYJXmyags0cW2D5Ksq1uUrFSCAkFOdmn7Ya/6jLXc=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    cmark
+    curl
+    fmt
+    fontconfig
+    freetype
+    giflib
+    glib
+    harfbuzzFull
+    libGL
+    libjpeg
+    libpng
+    libwebp
+    libX11
+    libXcursor
+    libXext
+    libXi
+    libXxf86vm
+    pcre2
+    pixman
+    skia-aseprite
+    tinyxml-2
+    zlib
+  ];
+
+  patches = [
+    # https://github.com/aseprite/aseprite/issues/4486
+    # FIXME: remove on next release.
+    (fetchpatch {
+      name = "ENABLE_UPDATER-fix.patch";
+      url = "https://github.com/aseprite/aseprite/commit/8fce589.patch";
+      hash = "sha256-DbL6kK//gQXbsXEn/t+KTuoM7E9ocPAsVqEO+lYrka4=";
+    })
+    ./shared-fmt.patch
+    ./shared-libwebp.patch
+    ./shared-skia-deps.patch
+  ];
+
+  postPatch =
+    let
+      # Translation strings
+      strings = fetchFromGitHub {
+        owner = "aseprite";
+        repo = "strings";
+        rev = "e18a09fefbb6cd904e506183d5fbe08558a52ed4";
+        hash = "sha256-GyCCxbhgf0vST20EH/+KkNLrF+U9Xzgpxlao8s925PQ=";
+      };
+    in
+    ''
+      sed -i src/ver/CMakeLists.txt -e "s-set(VERSION \".*\")-set(VERSION \"$version\")-"
+      rm -rf data/strings
+      cp -r ${strings} data/strings
+    '';
+
+  cmakeFlags = [
+    "-DENABLE_DESKTOP_INTEGRATION=ON"
+    "-DENABLE_UPDATER=OFF"
+    "-DUSE_SHARED_CMARK=ON"
+    "-DUSE_SHARED_CURL=ON"
+    "-DUSE_SHARED_FMT=ON"
+    "-DUSE_SHARED_FREETYPE=ON"
+    "-DUSE_SHARED_GIFLIB=ON"
+    "-DUSE_SHARED_HARFBUZZ=ON"
+    "-DUSE_SHARED_JPEGLIB=ON"
+    "-DUSE_SHARED_LIBPNG=ON"
+    "-DUSE_SHARED_LIBWEBP=ON"
+    "-DUSE_SHARED_PIXMAN=ON"
+    "-DUSE_SHARED_TINYXML=ON"
+    "-DUSE_SHARED_WEBP=ON"
+    "-DUSE_SHARED_ZLIB=ON"
+    # Disable libarchive programs.
+    "-DENABLE_CAT=OFF"
+    "-DENABLE_CPIO=OFF"
+    "-DENABLE_TAR=OFF"
+    # UI backend.
+    "-DLAF_OS_BACKEND=skia"
+    "-DLAF_WITH_EXAMPLES=OFF"
+    "-DSKIA_DIR=${skia-aseprite}"
+    "-DSKIA_LIBRARY_DIR=${skia-aseprite}/lib"
+  ];
+
+  postInstall = ''
+    # Install desktop icons.
+    src="$out/share/aseprite/data/icons"
+    for size in 16 32 48 64 128 256; do
+      dst="$out"/share/icons/hicolor/"$size"x"$size"
+      install -Dm644 "$src"/ase"$size".png "$dst"/apps/aseprite.png
+      install -Dm644 "$src"/doc"$size".png "$dst"/mimetypes/image-x-aseprite.png
+    done
+    # Delete unneeded artifacts of bundled libraries.
+    rm -rf "$out"/{include,lib,man}
+  '';
+
+  passthru.updateScript = gitUpdater { rev-prefix = "v"; };
+
+  meta = {
+    homepage = "https://www.aseprite.org/";
+    description = "Animated sprite editor & pixel art tool";
+    license = lib.licenses.unfree;
+    longDescription = ''
+      Aseprite is a program to create animated sprites. Its main features are:
+
+                - Sprites are composed by layers & frames (as separated concepts).
+                - Supported color modes: RGBA, Indexed (palettes up to 256 colors), and Grayscale.
+                - Load/save sequence of PNG files and GIF animations (and FLC, FLI, JPG, BMP, PCX, TGA).
+                - Export/import animations to/from Sprite Sheets.
+                - Tiled drawing mode, useful to draw patterns and textures.
+                - Undo/Redo for every operation.
+                - Real-time animation preview.
+                - Multiple editors support.
+                - Pixel-art specific tools like filled Contour, Polygon, Shading mode, etc.
+                - Onion skinning.
+    '';
+    maintainers = with lib.maintainers; [
+      orivej
+      vigress8
+    ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/as/aseprite/shared-fmt.patch b/pkgs/by-name/as/aseprite/shared-fmt.patch
new file mode 100644
index 0000000000000..794d8a4adcc16
--- /dev/null
+++ b/pkgs/by-name/as/aseprite/shared-fmt.patch
@@ -0,0 +1,71 @@
+--- a/CMakeLists.txt	2022-01-08 00:37:08.165330523 +0100
++++ b/CMakeLists.txt	2022-01-08 00:52:41.163585173 +0100
+@@ -54,6 +54,7 @@
+ 
+ option(USE_SHARED_CMARK   "Use your installed copy of cmark" off)
+ option(USE_SHARED_CURL    "Use your installed copy of curl" off)
++option(USE_SHARED_FMT     "Use your installed copy of fmt" off)
+ option(USE_SHARED_GIFLIB  "Use your installed copy of giflib" off)
+ option(USE_SHARED_JPEGLIB "Use your installed copy of jpeglib" off)
+ option(USE_SHARED_ZLIB    "Use your installed copy of zlib" off)
+@@ -165,6 +165,7 @@
+ set(SOURCE_DATA_DIR     ${CMAKE_CURRENT_SOURCE_DIR}/data)
+ set(CMARK_DIR           ${CMAKE_CURRENT_SOURCE_DIR}/third_party/cmark)
+ set(CURL_DIR            ${CMAKE_CURRENT_SOURCE_DIR}/third_party/curl)
++set(FMT_DIR             ${CMAKE_CURRENT_SOURCE_DIR}/third_party/fmt)
+ set(GIFLIB_DIR          ${CMAKE_CURRENT_SOURCE_DIR}/third_party/giflib)
+ set(LIBJPEG_DIR         ${CMAKE_CURRENT_SOURCE_DIR}/third_party/jpeg)
+ set(LIBPNG_DIR          ${CMAKE_CURRENT_SOURCE_DIR}/third_party/libpng)
+@@ -204,6 +205,15 @@
+   set(CURL_STATICLIB ON BOOL)
+ endif()
+ 
++if(USE_SHARED_FMT)
++  find_package(FMT REQUIRED)
++  set(FMT_LIBRARIES fmt::fmt)
++else()
++  set(FMT_FOUND)
++  set(FMT_LIBRARIES fmt)
++  # No need to include extra directories, actually
++endif()
++
+ # zlib
+ if(USE_SHARED_ZLIB)
+   find_package(ZLIB REQUIRED)
+--- a/src/app/CMakeLists.txt	2022-01-08 00:37:07.378671200 +0100
++++ b/src/app/CMakeLists.txt	2022-01-08 00:53:13.669969512 +0100
+@@ -741,7 +741,7 @@ target_link_libraries(app-lib
+   ${HARFBUZZ_LIBRARIES}
+   json11
+   archive_static
+-  fmt
++  ${FMT_LIBRARIES}
+   tinyexpr
+   qoi)
+ 
+ if(ENABLE_PSD)
+--- a/src/dio/CMakeLists.txt	2022-01-08 00:41:50.712726972 +0100
++++ b/src/dio/CMakeLists.txt	2022-01-08 00:53:39.936408022 +0100
+@@ -10,7 +10,7 @@
+ 
+ target_link_libraries(dio-lib
+   ${ZLIB_LIBRARIES}
+-  fmt
++  ${FMT_LIBRARIES}
+   flic-lib
+   laf-base
+   fixmath-lib
+--- a/third_party/CMakeLists.txt	2022-01-08 00:37:08.165330523 +0100
++++ b/third_party/CMakeLists.txt	2022-01-08 00:54:30.455969136 +0100
+@@ -106,7 +106,10 @@
+ endif()
+ 
+ add_subdirectory(simpleini)
+-add_subdirectory(fmt)
++
++if(NOT USE_SHARED_FMT)
++  add_subdirectory(fmt)
++endif()
+ 
+ # Add cmark without tests
+ if(NOT USE_SHARED_CMARK)
diff --git a/pkgs/applications/editors/aseprite/shared-libwebp.patch b/pkgs/by-name/as/aseprite/shared-libwebp.patch
index 20191f46b8b16..20191f46b8b16 100644
--- a/pkgs/applications/editors/aseprite/shared-libwebp.patch
+++ b/pkgs/by-name/as/aseprite/shared-libwebp.patch
diff --git a/pkgs/applications/editors/aseprite/shared-skia-deps.patch b/pkgs/by-name/as/aseprite/shared-skia-deps.patch
index a6ab472bbe95b..a6ab472bbe95b 100644
--- a/pkgs/applications/editors/aseprite/shared-skia-deps.patch
+++ b/pkgs/by-name/as/aseprite/shared-skia-deps.patch
diff --git a/pkgs/by-name/as/assemblyscript/package.nix b/pkgs/by-name/as/assemblyscript/package.nix
index b0fd15d47941a..fadd35ec2e8ed 100644
--- a/pkgs/by-name/as/assemblyscript/package.nix
+++ b/pkgs/by-name/as/assemblyscript/package.nix
@@ -18,7 +18,7 @@ buildNpmPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/AssemblyScript/${pname}";
-    description = "A TypeScript-like language for WebAssembly";
+    description = "TypeScript-like language for WebAssembly";
     license = licenses.asl20;
     maintainers = with maintainers; [ lucperkins ];
   };
diff --git a/pkgs/by-name/as/assetfinder/package.nix b/pkgs/by-name/as/assetfinder/package.nix
index f307b5ec62ed5..46a2daa1723a1 100644
--- a/pkgs/by-name/as/assetfinder/package.nix
+++ b/pkgs/by-name/as/assetfinder/package.nix
@@ -1,14 +1,12 @@
 { lib
 , fetchFromGitHub
-, buildGoPackage
+, buildGoModule
 }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "assetfinder";
   version = "0.1.1";
 
-  goPackagePath = "github.com/tomnomnom/assetfinder";
-
   src = fetchFromGitHub {
     owner = "tomnomnom";
     repo = "assetfinder";
@@ -16,6 +14,12 @@ buildGoPackage rec {
     hash = "sha256-7+YF1VXBcFehKw9JzurmXNu8yeZPdqfQEuaqwtR4AuA=";
   };
 
+  postPatch = ''
+    go mod init github.com/tomnomnom/assetfinder
+  '';
+
+  vendorHash = null;
+
   meta = with lib; {
     homepage = "https://github.com/tomnomnom/assetfinder";
     description = "Find domains and subdomains related to a given domain";
diff --git a/pkgs/by-name/as/ast-grep/package.nix b/pkgs/by-name/as/ast-grep/package.nix
index 4e001f3445a66..e5ffcc27b2ce1 100644
--- a/pkgs/by-name/as/ast-grep/package.nix
+++ b/pkgs/by-name/as/ast-grep/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ast-grep";
-  version = "0.22.3";
+  version = "0.23.0";
 
   src = fetchFromGitHub {
     owner = "ast-grep";
     repo = "ast-grep";
     rev = version;
-    hash = "sha256-Q2xVB9GZBtXx67rKpeTpy1llXCBpgn9vdZmYkQVHtp8=";
+    hash = "sha256-QW3ZwALvfSTcvXuH/ploqUD1UJ5fGySIAc3N/TMlB4g=";
   };
 
-  cargoHash = "sha256-0N98WvNLlflNCu7I2nHDSgFHDmbMVqwu4YkqA9GNSwM=";
+  cargoHash = "sha256-MUdHDP+1KQBXy2itOhW6pDuOTwIwXHy4oDfifDRdM94=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -48,7 +48,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     mainProgram = "sg";
-    description = "A fast and polyglot tool for code searching, linting, rewriting at large scale";
+    description = "Fast and polyglot tool for code searching, linting, rewriting at large scale";
     homepage = "https://ast-grep.github.io/";
     changelog = "https://github.com/ast-grep/ast-grep/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/by-name/as/async-profiler/package.nix b/pkgs/by-name/as/async-profiler/package.nix
index 4e7f2c1761db4..e82ebcd62f22d 100644
--- a/pkgs/by-name/as/async-profiler/package.nix
+++ b/pkgs/by-name/as/async-profiler/package.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A low overhead sampling profiler for Java that does not suffer from Safepoint bias problem";
+    description = "Low overhead sampling profiler for Java that does not suffer from Safepoint bias problem";
     homepage = "https://github.com/jvm-profiling-tools/async-profiler";
     license = licenses.asl20;
     maintainers = with maintainers; [ mschuwalow ];
diff --git a/pkgs/by-name/at/atac/package.nix b/pkgs/by-name/at/atac/package.nix
index abb9133521990..b8b8b91f9988b 100644
--- a/pkgs/by-name/at/atac/package.nix
+++ b/pkgs/by-name/at/atac/package.nix
@@ -39,7 +39,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A simple API client (postman like) in your terminal";
+    description = "Simple API client (postman like) in your terminal";
     homepage = "https://github.com/Julien-cpsn/ATAC";
     license = licenses.mit;
     maintainers = with maintainers; [vinnymeller];
diff --git a/pkgs/by-name/at/atari800/package.nix b/pkgs/by-name/at/atari800/package.nix
index 808b1d3538dcb..186dc0f74ca58 100644
--- a/pkgs/by-name/at/atari800/package.nix
+++ b/pkgs/by-name/at/atari800/package.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://atari800.github.io/";
-    description = "An Atari 8-bit emulator";
+    description = "Atari 8-bit emulator";
     longDescription = ''
       Atari800 is the emulator of Atari 8-bit computer systems and 5200 game
       console for Unix, Linux, Amiga, MS-DOS, Atari TT/Falcon, MS-Windows, MS
diff --git a/pkgs/by-name/at/ataripp/package.nix b/pkgs/by-name/at/ataripp/package.nix
index 303a7c47c4d27..ff6c26687e7fe 100644
--- a/pkgs/by-name/at/ataripp/package.nix
+++ b/pkgs/by-name/at/ataripp/package.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "http://www.xl-project.com/";
-    description = "An enhanced, cycle-accurated Atari emulator";
+    description = "Enhanced, cycle-accurated Atari emulator";
     mainProgram = "atari++";
     longDescription = ''
       The Atari++ Emulator is a Unix based emulator of the Atari eight bit
diff --git a/pkgs/by-name/at/athens/package.nix b/pkgs/by-name/at/athens/package.nix
index 3f9e3755efac4..53cba1793a3ea 100644
--- a/pkgs/by-name/at/athens/package.nix
+++ b/pkgs/by-name/at/athens/package.nix
@@ -6,13 +6,13 @@
 }:
 buildGoModule rec {
   pname = "athens";
-  version = "0.14.0";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
     owner = "gomods";
     repo = "athens";
     rev = "v${version}";
-    hash = "sha256-5E9jBV+m19AUtSTpTlkCx8JUHwlcM2pgSGfo4zPqDNk=";
+    hash = "sha256-vpg5EcQSxVFjDFKa4oHwF5fNHhLWtj3ZMi2wbMZNn/8=";
   };
 
   vendorHash = "sha256-LajNPzGbWqW+9aqiquk2LvSUjKwi1gbDY4cKXmn3PWk=";
@@ -33,7 +33,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A Go module datastore and proxy";
+    description = "Go module datastore and proxy";
     homepage = "https://github.com/gomods/athens";
     changelog = "https://github.com/gomods/athens/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/by-name/at/atlauncher/package.nix b/pkgs/by-name/at/atlauncher/package.nix
index 428ffffd8836f..32a22493b1fa0 100644
--- a/pkgs/by-name/at/atlauncher/package.nix
+++ b/pkgs/by-name/at/atlauncher/package.nix
@@ -21,11 +21,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "atlauncher";
-  version = "3.4.36.4";
+  version = "3.4.36.6";
 
   src = fetchurl {
     url = "https://github.com/ATLauncher/ATLauncher/releases/download/v${finalAttrs.version}/ATLauncher-${finalAttrs.version}.jar";
-    hash = "sha256-7l4D99rTOP+oyaa+O8GPGugr3Nv8EIt6EqK1L9ttFBA=";
+    hash = "sha256-uux5m9GI+F5yCLF4nk5tk6FJjF4Wc81Uw8xfvt2TE4c=";
   };
 
   env.ICON = fetchurl {
@@ -77,14 +77,15 @@ stdenv.mkDerivation (finalAttrs: {
     })
   ];
 
-  meta = with lib; {
-    description = "A simple and easy to use Minecraft launcher which contains many different modpacks for you to choose from and play";
+  meta = {
+    changelog = "https://github.com/ATLauncher/ATLauncher/blob/v${finalAttrs.version}/CHANGELOG.md";
+    description = "Simple and easy to use Minecraft launcher which contains many different modpacks for you to choose from and play";
     downloadPage = "https://atlauncher.com/downloads";
     homepage = "https://atlauncher.com";
-    license = licenses.gpl3;
+    license = lib.licenses.gpl3;
     mainProgram = "atlauncher";
-    maintainers = [ maintainers.getpsyched ];
-    platforms = platforms.all;
-    sourceProvenance = [ sourceTypes.binaryBytecode ];
+    maintainers = with lib.maintainers; [ getpsyched ];
+    platforms = lib.platforms.all;
+    sourceProvenance = [ lib.sourceTypes.binaryBytecode ];
   };
 })
diff --git a/pkgs/by-name/at/attic-server/package.nix b/pkgs/by-name/at/attic-server/package.nix
index de07d67201300..389d8dd4e3d1e 100644
--- a/pkgs/by-name/at/attic-server/package.nix
+++ b/pkgs/by-name/at/attic-server/package.nix
@@ -1,7 +1,4 @@
-{ attic-client
-}:
-(attic-client.override {
-  crates = [ "attic-server" ];
-}).overrideAttrs {
-  meta.mainProgram = "atticd";
-}
+{ lib, attic-client }:
+lib.addMetaAttrs { mainProgram = "atticd"; } (
+  attic-client.override { crates = [ "attic-server" ]; }
+)
diff --git a/pkgs/by-name/at/atuin/package.nix b/pkgs/by-name/at/atuin/package.nix
index 6b121258c10c6..4407eb5e11dbc 100644
--- a/pkgs/by-name/at/atuin/package.nix
+++ b/pkgs/by-name/at/atuin/package.nix
@@ -4,44 +4,52 @@
 , installShellFiles
 , rustPlatform
 , libiconv
+, protobuf
 , darwin
 , nixosTests
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "atuin";
-  version = "18.2.0";
+  version = "18.3.0";
 
   src = fetchFromGitHub {
     owner = "atuinsh";
     repo = "atuin";
     rev = "v${version}";
-    hash = "sha256-TTQ2XLqng7TMLnRsLDb/50yyHYuMSPZJ4H+7CEFWQQ0=";
+    hash = "sha256-Q3UI1IUD5Jz2O4xj3mFM7DqY3lTy3WhWYPa8QjJHTKE=";
   };
 
   # TODO: unify this to one hash because updater do not support this
   cargoHash =
     if stdenv.isLinux
-    then "sha256-KMH19Op7uyb3Z/cjT6bdmO+JEp1o2n6rWRNYmn1+0hE="
-    else "sha256-mBOyo6bKipMfmsowQujeUpog12jXAiqx5CtkwCxquRU=";
+    then "sha256-K4Vw/d0ZOROWujWr76I3QvfKefLhXLeFufUrgStAyjQ="
+    else "sha256-8NAfE7cGFT64ntNXK9RT0D/MbDJweN7vvsG/KlrY4K4=";
 
   # atuin's default features include 'check-updates', which do not make sense
   # for distribution builds. List all other default features.
   buildNoDefaultFeatures = true;
   buildFeatures = [
-    "client" "sync" "server" "clipboard"
+    "client" "sync" "server" "clipboard" "daemon"
   ];
 
   nativeBuildInputs = [ installShellFiles ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [
+  buildInputs = [
+    protobuf
+  ] ++ lib.optionals stdenv.isDarwin [
     libiconv
     darwin.apple_sdk_11_0.frameworks.AppKit
     darwin.apple_sdk_11_0.frameworks.Security
     darwin.apple_sdk_11_0.frameworks.SystemConfiguration
   ];
 
-  postInstall = ''
+  preBuild = ''
+    export PROTOC=${protobuf}/bin/protoc
+    export PROTOC_INCLUDE="${protobuf}/include";
+  '';
+
+  postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
     installShellCompletion --cmd atuin \
       --bash <($out/bin/atuin gen-completions -s bash) \
       --fish <($out/bin/atuin gen-completions -s fish) \
@@ -60,6 +68,7 @@ rustPlatform.buildRustPackage rec {
     # PermissionDenied (Operation not permitted)
     "--skip=change_password"
     "--skip=multi_user_test"
+    "--skip=store::var::tests::build_vars"
     # Tries to touch files
     "--skip=build_aliases"
   ];
diff --git a/pkgs/by-name/au/audible-cli/package.nix b/pkgs/by-name/au/audible-cli/package.nix
index 7e78e2a8d395a..e9ee1bda75cd9 100644
--- a/pkgs/by-name/au/audible-cli/package.nix
+++ b/pkgs/by-name/au/audible-cli/package.nix
@@ -55,7 +55,7 @@ python3Packages.buildPythonApplication rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A command line interface for audible package. With the cli you can download your Audible books, cover, chapter files";
+    description = "Command line interface for audible package. With the cli you can download your Audible books, cover, chapter files";
     license = licenses.agpl3Only;
     homepage = "https://github.com/mkb79/audible-cli";
     changelog = "https://github.com/mkb79/audible-cli/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/by-name/au/audiness/package.nix b/pkgs/by-name/au/audiness/package.nix
index 40dafa76288b8..f1f64afb3140f 100644
--- a/pkgs/by-name/au/audiness/package.nix
+++ b/pkgs/by-name/au/audiness/package.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "audiness";
-  version = "0.4.0";
+  version = "0.5.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "audiusGmbH";
     repo = "audiness";
     rev = "refs/tags/${version}";
-    hash = "sha256-UJe4ZawjAuUoSKEdIgjh8zZu/amYLZ8rpUDahSHokKA=";
+    hash = "sha256-+5NDea4p/JWEk305EhAtab3to36a74KR50eosw6c5qI=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/by-name/au/audiobookshelf/package.nix b/pkgs/by-name/au/audiobookshelf/package.nix
index 01d49a5fee690..6127e0e2b9f44 100644
--- a/pkgs/by-name/au/audiobookshelf/package.nix
+++ b/pkgs/by-name/au/audiobookshelf/package.nix
@@ -33,6 +33,8 @@ let
       cp -r ${src}/client $out
     '';
 
+    # don't download the Cypress binary
+    CYPRESS_INSTALL_BINARY = 0;
     NODE_OPTIONS = "--openssl-legacy-provider";
 
     npmBuildScript = "generate";
diff --git a/pkgs/by-name/au/audiobookshelf/source.json b/pkgs/by-name/au/audiobookshelf/source.json
index d3e8daf45c829..40509528147b4 100644
--- a/pkgs/by-name/au/audiobookshelf/source.json
+++ b/pkgs/by-name/au/audiobookshelf/source.json
@@ -1,9 +1,9 @@
 {
   "owner": "advplyr",
   "repo": "audiobookshelf",
-  "rev": "8b27c726d51cd9706cd564ef72377b89db3194b3",
-  "hash": "sha256-9WqMcehlGhSMI08u6/LSNOrLhCCl8coEHAUUM5KLnx8=",
-  "version": "2.9.0",
-  "depsHash": "sha256-ll96aPw6lO7B1c5s7uIpn3poPu/JRa/weins5SNMQw4=",
-  "clientDepsHash": "sha256-uqHfU38BLqigGzKJC/i/bftLJbCmHaOcj04d1bu4K1I="
+  "rev": "964ef910b670f90456d8405a2f1bc9c97cd59cae",
+  "hash": "sha256-BWMs+SUaPg0Bi5eyD9sV8pLFO0ZGbUFO+B6GXUsPj7k=",
+  "version": "2.10.1",
+  "depsHash": "sha256-MAHkvrUztztkhSc8Gjr2YIuHKonuLO6T0YziNOyzVTM=",
+  "clientDepsHash": "sha256-rd6pes/08qwEM90YkFDY53koQbbjrftNmTJIRKJ3tGw="
 }
diff --git a/pkgs/by-name/au/audion/package.nix b/pkgs/by-name/au/audion/package.nix
index 0f9b05c527ace..39db0f9d452f5 100644
--- a/pkgs/by-name/au/audion/package.nix
+++ b/pkgs/by-name/au/audion/package.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "audion";
-  version = "0.2.0";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "audiusGmbH";
     repo = "audion";
     rev = "refs/tags/${version}";
-    hash = "sha256-j8sQCeHpxrpzyY75DypWI9z+JBWq7aaaXPnZh7ksRjc=";
+    hash = "sha256-NtAzh7n5bJXMt73L+FJU3vuNoNgga3wYXdZ2TY8AjIA=";
   };
 
-  cargoHash = "sha256-/x2gjLz73uPY+ouQOxLN2ViET+V/s9jgkgw97yzVj24=";
+  cargoHash = "sha256-0jPAidJu3f3exXkVCLowR1zHsZ3bctWu+O2mQmSwSpE=";
 
   meta = with lib; {
     description = "Ping the host continuously and write results to a file";
diff --git a/pkgs/by-name/au/authentik/ldap.nix b/pkgs/by-name/au/authentik/ldap.nix
index bff1c1584bbb3..2d74c3911aa21 100644
--- a/pkgs/by-name/au/authentik/ldap.nix
+++ b/pkgs/by-name/au/authentik/ldap.nix
@@ -11,7 +11,7 @@ buildGoModule {
   subPackages = [ "cmd/ldap" ];
 
   meta = authentik.meta // {
-    description = "The authentik ldap outpost. Needed for the extendal ldap API.";
+    description = "Authentik ldap outpost. Needed for the extendal ldap API";
     homepage = "https://goauthentik.io/docs/providers/ldap/";
     mainProgram = "ldap";
   };
diff --git a/pkgs/by-name/au/authentik/package.nix b/pkgs/by-name/au/authentik/package.nix
index 9f8299e985ce4..3b0132ee0a5ba 100644
--- a/pkgs/by-name/au/authentik/package.nix
+++ b/pkgs/by-name/au/authentik/package.nix
@@ -21,7 +21,7 @@ let
   };
 
   meta = with lib; {
-    description = "The authentication glue you need";
+    description = "Authentication glue you need";
     changelog = "https://github.com/goauthentik/authentik/releases/tag/version%2F${version}";
     homepage = "https://goauthentik.io/";
     license = licenses.mit;
diff --git a/pkgs/tools/system/auto-cpufreq/fix-version-output.patch b/pkgs/by-name/au/auto-cpufreq/fix-version-output.patch
index fad9f091da40e..be21ca889081d 100644
--- a/pkgs/tools/system/auto-cpufreq/fix-version-output.patch
+++ b/pkgs/by-name/au/auto-cpufreq/fix-version-output.patch
@@ -1,19 +1,17 @@
 diff --git a/auto_cpufreq/core.py b/auto_cpufreq/core.py
-index 99397a9..f3ef28f 100755
+index 58cedb7..89e77a4 100755
 --- a/auto_cpufreq/core.py
 +++ b/auto_cpufreq/core.py
-@@ -144,26 +144,10 @@ except PermissionError:
- 
+@@ -136,26 +136,8 @@ except PermissionError:
+
  # display running version of auto-cpufreq
  def app_version():
-+    print("auto-cpufreq version: @version@")
-+    print("Git commit: v@version@")
- 
+-
 -    print("auto-cpufreq version: ", end="")
- 
+-
 -    # snap package
 -    if os.getenv("PKG_MARKER") == "SNAP":
--        print(getoutput("echo \(Snap\) $SNAP_VERSION"))
+-        print(getoutput(r"echo \(Snap\) $SNAP_VERSION"))
 -    # aur package
 -    elif dist_name in ["arch", "manjaro", "garuda"]:
 -        aur_pkg_check = call("pacman -Qs auto-cpufreq > /dev/null", shell=True)
@@ -28,6 +26,8 @@ index 99397a9..f3ef28f 100755
 -        except Exception as e:
 -            print(repr(e))
 -            pass
- def verify_update():
-     # Specify the repository and package name
-     # IT IS IMPORTANT TO  THAT IF THE REPOSITORY STRUCTURE IS CHANGED, THE FOLLOWING FUNCTION NEEDS TO BE UPDATED ACCORDINGLY
\ No newline at end of file
++   print("auto-cpufreq version: @version@")
++   print("Git commit: v@version@")
+
+ def check_for_update():
+     # returns True if a new release is available from the GitHub repo
diff --git a/pkgs/by-name/au/auto-cpufreq/package.nix b/pkgs/by-name/au/auto-cpufreq/package.nix
new file mode 100644
index 0000000000000..4121096359c83
--- /dev/null
+++ b/pkgs/by-name/au/auto-cpufreq/package.nix
@@ -0,0 +1,100 @@
+{
+  lib,
+  python3Packages,
+  fetchFromGitHub,
+  substituteAll,
+  gobject-introspection,
+  wrapGAppsHook3,
+  gtk3,
+}:
+python3Packages.buildPythonPackage rec {
+  pname = "auto-cpufreq";
+  version = "2.3.0";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "AdnanHodzic";
+    repo = "auto-cpufreq";
+    rev = "v${version}";
+    hash = "sha256-Bet/WOVveLIA+0Mvly4AsielR+r/AJXIgHdWrtc7i/U=";
+  };
+
+  nativeBuildInputs = [
+    gobject-introspection
+    wrapGAppsHook3
+  ];
+
+  buildInputs = [
+    gtk3
+    python3Packages.poetry-core
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
+    click
+    distro
+    psutil
+    pygobject3
+    poetry-dynamic-versioning
+    setuptools
+    pyinotify
+  ];
+
+  doCheck = false;
+  pythonImportsCheck = [ "auto_cpufreq" ];
+
+  patches = [
+    # hardcodes version output
+    (substituteAll {
+      src = ./fix-version-output.patch;
+      inherit version;
+    })
+
+    # patch to prevent script copying and to disable install
+    ./prevent-install-and-copy.patch
+    # patch to prevent update
+    ./prevent-update.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace auto_cpufreq/core.py \
+      --replace-fail '/opt/auto-cpufreq/override.pickle' /var/run/override.pickle
+    substituteInPlace scripts/org.auto-cpufreq.pkexec.policy \
+      --replace-fail "/opt/auto-cpufreq/venv/bin/auto-cpufreq" $out/bin/auto-cpufreq
+    substituteInPlace auto_cpufreq/gui/app.py auto_cpufreq/gui/objects.py \
+      --replace-fail "/usr/local/share/auto-cpufreq/images/icon.png" $out/share/pixmaps/auto-cpufreq.png
+    substituteInPlace auto_cpufreq/gui/app.py \
+      --replace-fail "/usr/local/share/auto-cpufreq/scripts/style.css" $out/share/auto-cpufreq/scripts/style.css
+  '';
+
+  postInstall = ''
+    # copy script manually
+    cp ${src}/scripts/cpufreqctl.sh $out/bin/cpufreqctl.auto-cpufreq
+
+    # copy css file
+    mkdir -p $out/share/auto-cpufreq/scripts
+    cp scripts/style.css $out/share/auto-cpufreq/scripts/style.css
+
+    # systemd service
+    mkdir -p $out/lib/systemd/system
+    cp ${src}/scripts/auto-cpufreq.service $out/lib/systemd/system
+
+    # desktop icon
+    mkdir -p $out/share/applications
+    mkdir $out/share/pixmaps
+    cp scripts/auto-cpufreq-gtk.desktop $out/share/applications
+    cp images/icon.png $out/share/pixmaps/auto-cpufreq.python3Packages
+
+    # polkit policy
+    mkdir -p $out/share/polkit-1/actions
+    cp scripts/org.auto-cpufreq.pkexec.policy $out/share/polkit-1/actions
+  '';
+
+  meta = {
+    mainProgram = "auto-cpufreq";
+    homepage = "https://github.com/AdnanHodzic/auto-cpufreq";
+    description = "Automatic CPU speed & power optimizer for Linux";
+    license = lib.licenses.lgpl3Plus;
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ Technical27 ];
+  };
+}
diff --git a/pkgs/tools/system/auto-cpufreq/prevent-install-and-copy.patch b/pkgs/by-name/au/auto-cpufreq/prevent-install-and-copy.patch
index 9b5bffb5591ee..2b3c9de1b6b07 100644
--- a/pkgs/tools/system/auto-cpufreq/prevent-install-and-copy.patch
+++ b/pkgs/by-name/au/auto-cpufreq/prevent-install-and-copy.patch
@@ -1,8 +1,56 @@
+diff --git a/auto_cpufreq/bin/auto_cpufreq.py b/auto_cpufreq/bin/auto_cpufreq.py
+index 4343b8d..dc286f6 100755
+--- a/auto_cpufreq/bin/auto_cpufreq.py
++++ b/auto_cpufreq/bin/auto_cpufreq.py
+@@ -199,41 +199,9 @@ def main(config, daemon, debug, update, install, remove, live, log, monitor, sta
+             print("https://github.com/AdnanHodzic/auto-cpufreq/#donate")
+             footer()
+         elif install:
+-            if os.getenv("PKG_MARKER") == "SNAP":
+-                root_check()
+-                running_daemon_check()
+-                gnome_power_detect_snap()
+-                tlp_service_detect_snap()
+-                bluetooth_notif_snap()
+-                gov_check()
+-                run("snapctl set daemon=enabled", shell=True)
+-                run("snapctl start --enable auto-cpufreq", shell=True)
+-                deploy_complete_msg()
+-            else:
+-                root_check()
+-                running_daemon_check()
+-                gov_check()
+-                deploy_daemon()
+-                deploy_complete_msg()
++            print("install is disabled in the nix package")
+         elif remove:
+-            if os.getenv("PKG_MARKER") == "SNAP":
+-                root_check()
+-                run("snapctl set daemon=disabled", shell=True)
+-                run("snapctl stop --disable auto-cpufreq", shell=True)
+-                if auto_cpufreq_stats_path.exists():
+-                    if auto_cpufreq_stats_file is not None:
+-                        auto_cpufreq_stats_file.close()
+-
+-                    auto_cpufreq_stats_path.unlink()
+-                # ToDo: 
+-                # {the following snippet also used in --update, update it there too(if required)}
+-                # * undo bluetooth boot disable
+-                gnome_power_rm_reminder_snap()
+-                remove_complete_msg()
+-            else:
+-                root_check()
+-                remove_daemon()
+-                remove_complete_msg()
++            print("remove is disabled in the nix package")
+         elif update:
+             root_check()
+             custom_dir = "/opt/auto-cpufreq/source"
 diff --git a/auto_cpufreq/core.py b/auto_cpufreq/core.py
-index 99397a9..48a377a 100755
+index 58cedb7..c50b0e1 100755
 --- a/auto_cpufreq/core.py
 +++ b/auto_cpufreq/core.py
-@@ -350,30 +334,13 @@ def get_current_gov():
+@@ -391,30 +391,13 @@ def get_current_gov():
  
  
  def cpufreqctl():
@@ -37,7 +85,7 @@ index 99397a9..48a377a 100755
  
  def footer(l=79):
      print("\n" + "-" * l + "\n")
-@@ -400,30 +367,8 @@ def remove_complete_msg():
+@@ -441,30 +424,8 @@ def remove_complete_msg():
  
  
  def deploy_daemon():
@@ -70,7 +118,7 @@ index 99397a9..48a377a 100755
  
  
  def deploy_daemon_performance():
-@@ -463,40 +408,7 @@ def deploy_daemon_performance():
+@@ -504,40 +465,7 @@ def deploy_daemon_performance():
  
  # remove auto-cpufreq daemon
  def remove_daemon():
@@ -112,52 +160,3 @@ index 99397a9..48a377a 100755
  
  
  def gov_check():
-
-diff --git a/bin/auto-cpufreq b/bin/auto-cpufreq
-index b89d925..b73974c 100755
---- a/bin/auto-cpufreq
-+++ b/bin/auto-cpufreq
-@@ -189,41 +189,9 @@
-             print("https://github.com/AdnanHodzic/auto-cpufreq/#donate")
-             footer()
-         elif install:
--            if os.getenv("PKG_MARKER") == "SNAP":
--                root_check()
--                running_daemon_check()
--                gnome_power_detect_snap()
--                tlp_service_detect_snap()
--                bluetooth_notif_snap()
--                gov_check()
--                run("snapctl set daemon=enabled", shell=True)
--                run("snapctl start --enable auto-cpufreq", shell=True)
--                deploy_complete_msg()
--            else:
--                root_check()
--                running_daemon_check()
--                gov_check()
--                deploy_daemon()
--                deploy_complete_msg()
-+            print("install is disabled in the nix package")
-         elif remove:
--            if os.getenv("PKG_MARKER") == "SNAP":
--                root_check()
--                run("snapctl set daemon=disabled", shell=True)
--                run("snapctl stop --disable auto-cpufreq", shell=True)
--                if auto_cpufreq_stats_path.exists():
--                    if auto_cpufreq_stats_file is not None:
--                        auto_cpufreq_stats_file.close()
--
--                    auto_cpufreq_stats_path.unlink()
--                # ToDo: 
--                # {the following snippet also used in --update, update it there too(if required)}
--                # * undo bluetooth boot disable
--                gnome_power_rm_reminder_snap()
--                remove_complete_msg()
--            else:
--                root_check()
--                remove_daemon()
--                remove_complete_msg()
-+            print("remove is disabled in the nix package")
-         elif update:
-             root_check()
-             if os.getenv("PKG_MARKER") == "SNAP":
\ No newline at end of file
diff --git a/pkgs/by-name/au/auto-cpufreq/prevent-update.patch b/pkgs/by-name/au/auto-cpufreq/prevent-update.patch
new file mode 100644
index 0000000000000..840c7230313d7
--- /dev/null
+++ b/pkgs/by-name/au/auto-cpufreq/prevent-update.patch
@@ -0,0 +1,152 @@
+diff --git a/auto_cpufreq/bin/auto_cpufreq.py b/auto_cpufreq/bin/auto_cpufreq.py
+index 4343b8d..183c2e9 100755
+--- a/auto_cpufreq/bin/auto_cpufreq.py
++++ b/auto_cpufreq/bin/auto_cpufreq.py
+@@ -235,47 +235,7 @@ def main(config, daemon, debug, update, install, remove, live, log, monitor, sta
+                 remove_daemon()
+                 remove_complete_msg()
+         elif update:
+-            root_check()
+-            custom_dir = "/opt/auto-cpufreq/source"
+-            for arg in sys.argv:
+-                if arg.startswith("--update="):
+-                    custom_dir = arg.split("=")[1]
+-                    sys.argv.remove(arg)
+-                    
+-            if "--update" in sys.argv:
+-                update = True
+-                sys.argv.remove("--update")
+-                if len(sys.argv) == 2:
+-                    custom_dir = sys.argv[1] 
+-                    
+-            if os.getenv("PKG_MARKER") == "SNAP":
+-                print("Detected auto-cpufreq was installed using snap")
+-                # refresh snap directly using this command
+-                # path wont work in this case
+-
+-                print("Please update using snap package manager, i.e: `sudo snap refresh auto-cpufreq`.")
+-                #check for AUR 
+-            elif subprocess.run(["bash", "-c", "command -v pacman >/dev/null 2>&1"]).returncode == 0 and subprocess.run(["bash", "-c", "pacman -Q auto-cpufreq >/dev/null 2>&1"]).returncode == 0:
+-                print("Arch-based distribution with AUR support detected. Please refresh auto-cpufreq using your AUR helper.")
+-            else:
+-                is_new_update = check_for_update()
+-                if not is_new_update:
+-                    return
+-                ans = input("Do you want to update auto-cpufreq to the latest release? [Y/n]: ").strip().lower()
+-                if not os.path.exists(custom_dir):
+-                    os.makedirs(custom_dir)
+-                if os.path.exists(os.path.join(custom_dir, "auto-cpufreq")):
+-                    shutil.rmtree(os.path.join(custom_dir, "auto-cpufreq"))
+-                if ans in ['', 'y', 'yes']:
+-                    remove_daemon()
+-                    remove_complete_msg()
+-                    new_update(custom_dir)
+-                    print("enabling daemon")
+-                    run(["auto-cpufreq", "--install"])
+-                    print("auto-cpufreq is installed with the latest version")
+-                    run(["auto-cpufreq", "--version"])
+-                else:
+-                    print("Aborted")
++            print("update is disabled in the nix package")
+ 
+         elif completions:
+             if completions == "bash":
+diff --git a/auto_cpufreq/core.py b/auto_cpufreq/core.py
+index 58cedb7..8b44712 100755
+--- a/auto_cpufreq/core.py
++++ b/auto_cpufreq/core.py
+@@ -17,8 +17,7 @@ import importlib.metadata
+ from math import isclose
+ from pathlib import Path
+ from shutil import which
+-from subprocess import getoutput, call, run, check_output, DEVNULL
+-import requests
++from subprocess import getoutput, call, run, DEVNULL
+ import re
+ 
+ # execution timestamp used in countdown func
+@@ -158,55 +157,7 @@ def app_version():
+             pass
+ 
+ def check_for_update():
+-    # returns True if a new release is available from the GitHub repo
+-
+-    # Specify the repository and package name
+-    # IT IS IMPORTANT TO  THAT IF THE REPOSITORY STRUCTURE IS CHANGED, THE FOLLOWING FUNCTION NEEDS TO BE UPDATED ACCORDINGLY
+-    # Fetch the latest release information from GitHub API
+-    latest_release_url = f"https://api.github.com/repos/AdnanHodzic/auto-cpufreq/releases/latest"
+-    try:
+-        response = requests.get(latest_release_url)
+-        if response.status_code == 200:
+-            latest_release = response.json()
+-        else:
+-            message = response.json().get("message")
+-            print("Error fetching recent release!")
+-            if message is not None and message.startswith("API rate limit exceeded"):
+-                print("GitHub Rate limit exceeded. Please try again later within 1 hour or use different network/VPN.")
+-            else:
+-                print("Unexpected status code:", response.status_code)
+-            return False
+-    except (requests.exceptions.ConnectionError, requests.exceptions.Timeout,
+-            requests.exceptions.RequestException, requests.exceptions.HTTPError) as err:
+-        print("Error Connecting to server!")
+-        return False
+-
+-    latest_version = latest_release.get("tag_name")
+-
+-    if latest_version is not None:
+-        # Get the current version of auto-cpufreq
+-        # Extract version number from the output string
+-        output = check_output(['auto-cpufreq', '--version']).decode('utf-8')
+-        try:
+-            version_line = next((re.search(r'\d+\.\d+\.\d+', line).group() for line in output.split('\n') if line.startswith('auto-cpufreq version')), None)
+-        except AttributeError:
+-            print("Error Retrieving Current Version!")
+-            exit(1)
+-        installed_version = "v" + version_line
+-        #Check whether the same is installed or not
+-        # Compare the latest version with the installed version and perform update if necessary
+-        if latest_version == installed_version:
+-            print("auto-cpufreq is up to date")
+-            return False
+-        else:
+-            print(f"Updates are available,\nCurrent version: {installed_version}\nLatest version: {latest_version}")
+-            print("Note that your previous custom settings might be erased with the following update")
+-            return True
+-    else:
+-        # Handle the case where "tag_name" key doesn't exist
+-        print("Malformed Released data!\nReinstall manually or Open an issue on GitHub for help!")
+-
+-
++    pass
+ 
+ def new_update(custom_dir):
+     os.chdir(custom_dir)
+diff --git a/poetry.lock b/poetry.lock
+index 2a99ca6..9bc26e2 100644
+--- a/poetry.lock
++++ b/poetry.lock
+@@ -1,4 +1,4 @@
+-# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand.
++# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand.
+ 
+ [[package]]
+ name = "attrs"
+@@ -1300,4 +1300,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p
+ [metadata]
+ lock-version = "2.0"
+ python-versions = "^3.8"
+-content-hash = "ee73b2db6a43cac87120f38c93d0a8a297bec52f1346b55bc0ca2992aa464482"
++content-hash = "1ba0c404ffea01a611e7c74f9c104de44a914b0a6fad2350470f15880931ae42"
+diff --git a/pyproject.toml b/pyproject.toml
+index 876d80c..7190356 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -25,7 +25,6 @@ python = "^3.8"
+ psutil = {git = "https://github.com/giampaolo/psutil.git", rev = "4cf56e08c1bc883ec89758834b50954380759858"}
+ click = "^8.1.0"
+ distro = "^1.8.0"
+-requests = "^2.31.0"
+ PyGObject = "^3.46.0"
+ pyinotify = {git = "https://github.com/shadeyg56/pyinotify-3.12"}
+ 
diff --git a/pkgs/by-name/au/autosuspend/package.nix b/pkgs/by-name/au/autosuspend/package.nix
index 63f4c07c289ff..b38e121ad6903 100644
--- a/pkgs/by-name/au/autosuspend/package.nix
+++ b/pkgs/by-name/au/autosuspend/package.nix
@@ -1,7 +1,6 @@
 { lib
 , dbus
 , fetchFromGitHub
-, fetchPypi
 , python3
 }:
 
@@ -57,7 +56,7 @@ python3.pkgs.buildPythonApplication rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A daemon to automatically suspend and wake up a system";
+    description = "Daemon to automatically suspend and wake up a system";
     homepage = "https://autosuspend.readthedocs.io";
     changelog = "https://github.com/languitar/autosuspend/releases/tag/v${version}";
     license = licenses.gpl2Only;
diff --git a/pkgs/by-name/au/autotools-language-server/package.nix b/pkgs/by-name/au/autotools-language-server/package.nix
new file mode 100644
index 0000000000000..1cb6f711bbc7c
--- /dev/null
+++ b/pkgs/by-name/au/autotools-language-server/package.nix
@@ -0,0 +1,51 @@
+{ lib
+, python3
+, fetchFromGitHub
+, fetchpatch
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "autotools-language-server";
+  version = "0.0.19";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "Freed-Wu";
+    repo = "autotools-language-server";
+    rev = "refs/tags/${version}";
+    hash = "sha256-V0EOV1ZmeC+4svc2fqV6AIiL37dkrxUJAnjywMZcENw=";
+  };
+  patches = [
+    # Right before the release, upstream decided to replace the
+    # tree-sitter-languages dependency with tree-sitter-make, which is yanked
+    # from some reason. Hopefully upstream will fix this dependency a bit
+    # better in the next release. See also:
+    # https://github.com/Freed-Wu/autotools-language-server/commit/f149843becfcfd6b2bb4a98eb1f3984c01d5fd33#r142659163
+    (fetchpatch {
+      url = "https://github.com/Freed-Wu/autotools-language-server/commit/f149843becfcfd6b2bb4a98eb1f3984c01d5fd33.patch";
+      hash = "sha256-TrzHbfR6GYAEqDIFiCqSX2+Qv4JeFJ5faiKJhNYojf0=";
+      revert = true;
+    })
+  ];
+
+  build-system = [
+    python3.pkgs.setuptools-generate
+    python3.pkgs.setuptools-scm
+  ];
+
+  dependencies = with python3.pkgs; [
+    tree-sitter-languages
+    lsp-tree-sitter
+  ];
+  nativeCheckInputs = [
+    python3.pkgs.pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Autotools language server, support configure.ac, Makefile.am, Makefile";
+    homepage = "https://github.com/Freed-Wu/autotools-language-server";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ doronbehar ];
+    mainProgram = "autotools-language-server";
+  };
+}
diff --git a/pkgs/by-name/av/avisynthplus/package.nix b/pkgs/by-name/av/avisynthplus/package.nix
index 153e5dd4afb76..92904ff0cc01f 100644
--- a/pkgs/by-name/av/avisynthplus/package.nix
+++ b/pkgs/by-name/av/avisynthplus/package.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "An improved version of the AviSynth frameserver";
+    description = "Improved version of the AviSynth frameserver";
     homepage = "https://avs-plus.net/";
     changelog = "https://github.com/AviSynth/AviSynthPlus/releases/tag/${finalAttrs.src.rev}";
     license = licenses.gpl2Only;
diff --git a/pkgs/by-name/ay/ayatana-indicator-datetime/package.nix b/pkgs/by-name/ay/ayatana-indicator-datetime/package.nix
index 06ba4efc13863..0f7ce4b43d113 100644
--- a/pkgs/by-name/ay/ayatana-indicator-datetime/package.nix
+++ b/pkgs/by-name/ay/ayatana-indicator-datetime/package.nix
@@ -31,13 +31,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "ayatana-indicator-datetime";
-  version = "24.2.0";
+  version = "24.5.0";
 
   src = fetchFromGitHub {
     owner = "AyatanaIndicators";
     repo = "ayatana-indicator-datetime";
     rev = finalAttrs.version;
-    hash = "sha256-J3Yp7Dx4UvvdlM8Cp1sPe4Ftm/aAmNzpo4re/jF7pRo=";
+    hash = "sha256-lY49v2uZ7BawQoN/hmN6pbetHlSGjMHbS6S8Wl1bDmQ=";
   };
 
   postPatch = ''
diff --git a/pkgs/by-name/ay/ayatana-indicator-display/package.nix b/pkgs/by-name/ay/ayatana-indicator-display/package.nix
new file mode 100644
index 0000000000000..8c5e5c9e51600
--- /dev/null
+++ b/pkgs/by-name/ay/ayatana-indicator-display/package.nix
@@ -0,0 +1,124 @@
+{ stdenv
+, lib
+, gitUpdater
+, fetchFromGitHub
+, nixosTests
+, accountsservice
+, cmake
+, cppcheck
+, dbus
+, geoclue2
+, glib
+, gsettings-desktop-schemas
+, gtest
+, intltool
+, libayatana-common
+, libgudev
+, libqtdbusmock
+, libqtdbustest
+, libsForQt5
+, lomiri
+, mate
+, pkg-config
+, properties-cpp
+, python3
+, systemd
+, wrapGAppsHook3
+, xsct
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "ayatana-indicator-display";
+  version = "24.5.0";
+
+  src = fetchFromGitHub {
+    owner = "AyatanaIndicators";
+    repo = "ayatana-indicator-display";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-ZEmJJtVK1dHIrY0C6pqVu1N5PmQtYqX0K5v5LvzNfFA=";
+  };
+
+  postPatch = ''
+    # Replace systemd prefix in pkg-config query, use GNUInstallDirs location for /etc
+    substituteInPlace data/CMakeLists.txt \
+      --replace-fail 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir)' 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir DEFINE_VARIABLES prefix=''${CMAKE_INSTALL_PREFIX})' \
+      --replace-fail 'DESTINATION "/etc' 'DESTINATION "''${CMAKE_INSTALL_FULL_SYSCONFDIR}'
+
+    # Hardcode xsct path
+    substituteInPlace src/service.cpp \
+      --replace-fail 'sCommand = g_strdup_printf ("xsct' 'sCommand = g_strdup_printf ("${lib.getExe xsct}'
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    cmake
+    glib # for schema discovery
+    intltool
+    pkg-config
+    wrapGAppsHook3
+  ];
+
+  # TODO Can we get around requiring every desktop's schemas just to avoid segfaulting on some systems?
+  buildInputs = [
+    accountsservice
+    geoclue2
+    gsettings-desktop-schemas # gnome schemas
+    glib
+    libayatana-common
+    libgudev
+    libsForQt5.qtbase
+    systemd
+  ] ++ (with lomiri; [
+    cmake-extras
+    lomiri-schemas # lomiri schema
+  ]) ++ (with mate; [
+    mate.marco # marco schema
+    mate.mate-settings-daemon # mate mouse schema
+  ]);
+
+  nativeCheckInputs = [
+    cppcheck
+    dbus
+    (python3.withPackages (ps: with ps; [
+      python-dbusmock
+    ]))
+  ];
+
+  checkInputs = [
+    gtest
+    libqtdbusmock
+    libqtdbustest
+    properties-cpp
+  ];
+
+  dontWrapQtApps = true;
+
+  cmakeFlags = [
+    (lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
+    (lib.cmakeBool "ENABLE_COLOR_TEMP" true)
+    (lib.cmakeBool "GSETTINGS_LOCALINSTALL" true)
+    (lib.cmakeBool "GSETTINGS_COMPILE" true)
+  ];
+
+  doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
+
+  passthru = {
+    ayatana-indicators = [ "ayatana-indicator-display" ];
+    tests.vm = nixosTests.ayatana-indicators;
+    updateScript = gitUpdater { };
+  };
+
+  meta = with lib; {
+    description = "Ayatana Indicator for Display configuration";
+    longDescription = ''
+      This Ayatana Indicator is designed to be placed on the right side of a
+      panel and give the user easy control for changing their display settings.
+    '';
+    homepage = "https://github.com/AyatanaIndicators/ayatana-indicator-display";
+    changelog = "https://github.com/AyatanaIndicators/ayatana-indicator-display/blob/${finalAttrs.version}/ChangeLog";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ OPNA2608 ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/ay/ayatana-indicator-messages/package.nix b/pkgs/by-name/ay/ayatana-indicator-messages/package.nix
index 7973291d3db18..5810ccd89d41f 100644
--- a/pkgs/by-name/ay/ayatana-indicator-messages/package.nix
+++ b/pkgs/by-name/ay/ayatana-indicator-messages/package.nix
@@ -25,13 +25,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "ayatana-indicator-messages";
-  version = "23.10.0";
+  version = "24.5.0";
 
   src = fetchFromGitHub {
     owner = "AyatanaIndicators";
     repo = "ayatana-indicator-messages";
     rev = finalAttrs.version;
-    hash = "sha256-FBJeP5hOXJcOk04cRJpw+oN7L3w3meDX3ivLmFWkhVI=";
+    hash = "sha256-D1181eD2mAVXEa7RLXXC4b2tVGrxbh0WWgtbC1anHH0=";
   };
 
   outputs = [
diff --git a/pkgs/by-name/ay/ayatana-indicator-power/package.nix b/pkgs/by-name/ay/ayatana-indicator-power/package.nix
index 74df2f6eb95fb..820d9e5c613ae 100644
--- a/pkgs/by-name/ay/ayatana-indicator-power/package.nix
+++ b/pkgs/by-name/ay/ayatana-indicator-power/package.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "ayatana-indicator-power";
-  version = "24.1.0";
+  version = "24.5.1";
 
   src = fetchFromGitHub {
     owner = "AyatanaIndicators";
     repo = "ayatana-indicator-power";
     rev = "refs/tags/${finalAttrs.version}";
-    hash = "sha256-VUDNy6pPOsjioV5UNiKm8dzYb02ZrZ8CiIiJmAoQYaM=";
+    hash = "sha256-M7BzyQRPKyXMEY0FTMBXsCemC3+w8upjTHApWkRf71I=";
   };
 
   postPatch = ''
diff --git a/pkgs/by-name/ay/ayatana-indicator-session/package.nix b/pkgs/by-name/ay/ayatana-indicator-session/package.nix
index d2a5860098b4c..7a625b94eb499 100644
--- a/pkgs/by-name/ay/ayatana-indicator-session/package.nix
+++ b/pkgs/by-name/ay/ayatana-indicator-session/package.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "ayatana-indicator-session";
-  version = "24.2.0";
+  version = "24.5.0";
 
   src = fetchFromGitHub {
     owner = "AyatanaIndicators";
     repo = "ayatana-indicator-session";
     rev = finalAttrs.version;
-    hash = "sha256-XHJhzL7B+4FnUHbsJVywELoY7xxG19RRryaPYZVao1I=";
+    hash = "sha256-p4nu7ZgnEjnnxNqyZIg//YcssnQcCY7GFDbpGIu1dz0=";
   };
 
   postPatch = ''
diff --git a/pkgs/by-name/ay/ayatana-indicator-sound/package.nix b/pkgs/by-name/ay/ayatana-indicator-sound/package.nix
new file mode 100644
index 0000000000000..616f98a435a07
--- /dev/null
+++ b/pkgs/by-name/ay/ayatana-indicator-sound/package.nix
@@ -0,0 +1,125 @@
+{ stdenv
+, lib
+, gitUpdater
+, fetchFromGitHub
+, nixosTests
+, accountsservice
+, cmake
+, dbus
+, dbus-test-runner
+, glib
+, gobject-introspection
+, gtest
+, intltool
+, libayatana-common
+, libgee
+, libnotify
+, libpulseaudio
+, libqtdbusmock
+, libqtdbustest
+, libsForQt5
+, libxml2
+, lomiri
+, pkg-config
+, python3
+, systemd
+, vala
+, wrapGAppsHook3
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "ayatana-indicator-sound";
+  version = "24.5.0";
+
+  src = fetchFromGitHub {
+    owner = "AyatanaIndicators";
+    repo = "ayatana-indicator-sound";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-sFl1PM0vZIJVSDiq5z7w/CS3rFuq6Z09Uks4Ik239Cc=";
+  };
+
+  postPatch = ''
+    # Replace systemd prefix in pkg-config query, use GNUInstallDirs location for /etc
+    substituteInPlace data/CMakeLists.txt \
+      --replace-fail 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir)' 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir DEFINE_VARIABLES prefix=''${CMAKE_INSTALL_PREFIX})' \
+      --replace-fail 'DESTINATION "/etc' 'DESTINATION "''${CMAKE_INSTALL_FULL_SYSCONFDIR}'
+
+    # Build-time Vala codegen
+    substituteInPlace src/CMakeLists.txt \
+      --replace-fail '/usr/share/gir-1.0/AccountsService-1.0.gir' '${lib.getDev accountsservice}/share/gir-1.0/AccountsService-1.0.gir'
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    cmake
+    gobject-introspection
+    intltool
+    libpulseaudio # vala files(?)
+    pkg-config
+    vala
+    wrapGAppsHook3
+  ];
+
+  buildInputs = [
+    accountsservice
+    glib
+    gobject-introspection
+    libayatana-common
+    libgee
+    libnotify
+    libpulseaudio
+    libxml2
+    systemd
+  ] ++ (with lomiri; [
+    cmake-extras
+    lomiri-api
+    lomiri-schemas
+  ]);
+
+  nativeCheckInputs = [
+    dbus
+    (python3.withPackages (ps: with ps; [
+      python-dbusmock
+    ]))
+  ];
+
+  checkInputs = [
+    dbus-test-runner
+    gtest
+    libsForQt5.qtbase
+    libqtdbusmock
+    libqtdbustest
+    lomiri.gmenuharness
+  ];
+
+  cmakeFlags = [
+    (lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
+    (lib.cmakeBool "ENABLE_LOMIRI_FEATURES" true)
+    (lib.cmakeBool "GSETTINGS_LOCALINSTALL" true)
+    (lib.cmakeBool "GSETTINGS_COMPILE" true)
+  ];
+
+  dontWrapQtApps = true;
+
+  doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
+
+  passthru = {
+    ayatana-indicators = [ "ayatana-indicator-sound" ];
+    tests.vm = nixosTests.ayatana-indicators;
+    updateScript = gitUpdater { };
+  };
+
+  meta = with lib; {
+    description = "Ayatana Indicator for managing system sound";
+    longDescription = ''
+      Ayatana Indicator Sound that provides easy control of the PulseAudio
+      sound daemon.
+    '';
+    homepage = "https://github.com/AyatanaIndicators/ayatana-indicator-sound";
+    changelog = "https://github.com/AyatanaIndicators/ayatana-indicator-sound/blob/${finalAttrs.version}/ChangeLog";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ OPNA2608 ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/ba/babeltrace/package.nix b/pkgs/by-name/ba/babeltrace/package.nix
new file mode 100644
index 0000000000000..2d995df59c91d
--- /dev/null
+++ b/pkgs/by-name/ba/babeltrace/package.nix
@@ -0,0 +1,80 @@
+{
+  lib,
+  stdenv,
+  fetchurl,
+  gitUpdater,
+  autoreconfHook,
+  pkg-config,
+  glib,
+  libuuid,
+  popt,
+  elfutils,
+  enablePython ? false,
+  pythonPackages ? null,
+  swig2,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "babeltrace";
+  version = "1.5.11";
+
+  src = fetchurl {
+    url = "https://www.efficios.com/files/babeltrace/${finalAttrs.pname}-${finalAttrs.version}.tar.bz2";
+    sha256 = "Z7Q6qu9clR+nrxpVfPcgGhH+iYdrfCK6CgPLwxbbWpw=";
+  };
+
+  nativeBuildInputs =
+    [
+      # The pre-generated ./configure script uses an old autoconf version which
+      # breaks cross-compilation (replaces references to malloc with rpl_malloc).
+      # Re-generate with nixpkgs's autoconf. This requires glib to be present in
+      # nativeBuildInputs for its m4 macros to be present.
+      autoreconfHook
+      glib
+      pkg-config
+    ]
+    ++ lib.optionals enablePython [
+      swig2
+      pythonPackages.setuptools
+    ];
+  buildInputs = [
+    glib
+    libuuid
+    popt
+    elfutils
+  ];
+
+  configureFlags =
+    [
+      # --enable-debug-info (default) requires the configure script to run host
+      # executables to determine the elfutils library version, which cannot be done
+      # while cross compiling.
+      (lib.enableFeature (stdenv.hostPlatform == stdenv.buildPlatform) "debug-info")
+    ]
+    ++ lib.optionals enablePython [
+      # Using (lib.enableFeature enablePython "python-bindings") makes the
+      # configure script look for python dependencies even when
+      # enablePython==false. Adding the configure flag conditionally seems to
+      # solve this.
+      "--enable-python-bindings"
+    ];
+  #
+
+  passthru.updateScript = gitUpdater {
+    url = "https://git.efficios.com/babeltrace.git";
+    rev-prefix = "v";
+    # Versions 2.x are packaged independently as babeltrace2
+    ignoredVersions = "^[^1]";
+  };
+
+  meta = {
+    description = "Command-line tool and library to read and convert LTTng tracefiles";
+    homepage = "https://www.efficios.com/babeltrace";
+    license = lib.licenses.mit;
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [
+      bjornfor
+      wentasah
+    ];
+  };
+})
diff --git a/pkgs/by-name/ba/babeltrace2/package.nix b/pkgs/by-name/ba/babeltrace2/package.nix
new file mode 100644
index 0000000000000..ec9f15e679f8d
--- /dev/null
+++ b/pkgs/by-name/ba/babeltrace2/package.nix
@@ -0,0 +1,101 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchpatch,
+  autoreconfHook,
+  pkg-config,
+  glib,
+  elfutils,
+  bison,
+  flex,
+  asciidoc,
+  xmlto,
+  docbook_xml_dtd_45,
+  docbook_xsl,
+  enablePython ? false,
+  python ? null,
+  pythonPackages ? null,
+  swig,
+  ensureNewerSourcesForZipFilesHook,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "babeltrace2";
+  version = "2.0.6";
+
+  src = fetchFromGitHub {
+    owner = "efficios";
+    repo = "babeltrace";
+    rev = "v${version}";
+    hash = "sha256-L4YTqPxvWynUBnmAQnlJ2RNbEv9MhBxQOsqbWix8ZwU=";
+  };
+
+  patches = [
+    # Patches needed for Python 3.12
+    (fetchpatch {
+      # python: Use standalone 'sysconfig' module
+      url = "https://github.com/efficios/babeltrace/commit/452480eb6820df9973d50431a479ca547815ae08.patch";
+      hash = "sha256-YgUKHJzdliNUsTY29E0xxcUjqVWn4EvxyTs0B+O+jrI=";
+    })
+    (fetchpatch {
+      # python: replace distutils with setuptools
+      url = "https://github.com/efficios/babeltrace/commit/6ec97181a525a3cd64cedbcd0df905ed9e84ba03.patch";
+      hash = "sha256-1hlEkPcRUpf2+iEXqHXcCDOaLTg+eaVcahqZlA8m5QY=";
+    })
+    (fetchpatch {
+      # fix: python: monkey patch the proper sysconfig implementation
+      url = "https://github.com/efficios/babeltrace/commit/927263e4ea62877af7240cfdb1514ae949dbfc2e.patch";
+      hash = "sha256-HNRQ7uw26FUKCQ/my6//OL2xsHdOGlQUq5zIKtg9OGw=";
+    })
+  ];
+
+  outputs = [
+    "out"
+    "man"
+    "dev"
+  ];
+
+  nativeBuildInputs =
+    [
+      autoreconfHook
+      pkg-config
+      glib
+      bison
+      flex
+      asciidoc
+      xmlto
+      docbook_xml_dtd_45
+      docbook_xsl
+    ]
+    ++ lib.optionals enablePython [
+      swig
+      pythonPackages.setuptools
+      ensureNewerSourcesForZipFilesHook
+    ];
+
+  buildInputs = [
+    glib
+    elfutils
+  ] ++ lib.optional enablePython python;
+
+  configureFlags = [
+    (lib.enableFeature enablePython "python-bindings")
+    (lib.enableFeature enablePython "python-plugins")
+    (lib.enableFeature (stdenv.hostPlatform == stdenv.buildPlatform) "debug-info")
+  ];
+
+  # For cross-compilation of Python bindings
+  makeFlags = [ "CFLAGS=-Wno-error=stringop-truncation -Wno-error=null-dereference" ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "Babeltrace /ˈbæbəltreɪs/ is an open-source trace manipulation toolkit";
+    homepage = "https://babeltrace.org";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ wentasah ];
+    mainProgram = "babeltrace2";
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/by-name/ba/banana-cursor/package.nix b/pkgs/by-name/ba/banana-cursor/package.nix
index c9275d43f54b9..73d26048b7eac 100644
--- a/pkgs/by-name/ba/banana-cursor/package.nix
+++ b/pkgs/by-name/ba/banana-cursor/package.nix
@@ -41,7 +41,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "The Banana Cursor";
+    description = "Banana Cursor";
     homepage = "https://github.com/ful1e5/banana-cursor";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ getpsyched yrd ];
diff --git a/pkgs/by-name/ba/baresip/package.nix b/pkgs/by-name/ba/baresip/package.nix
index f63227c3292b1..866958347f192 100644
--- a/pkgs/by-name/ba/baresip/package.nix
+++ b/pkgs/by-name/ba/baresip/package.nix
@@ -124,9 +124,9 @@ stdenv.mkDerivation rec {
     -D__need_timeval -D__need_timespec -D__need_time_t '';
 
   meta = {
-    description = "A modular SIP User-Agent with audio and video support";
+    description = "Modular SIP User-Agent with audio and video support";
     homepage = "https://github.com/baresip/baresip";
-    maintainers = with lib.maintainers; [ elohmeier raskin ehmry ];
+    maintainers = with lib.maintainers; [ raskin ehmry ];
     mainProgram = "baresip";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.unix;
diff --git a/pkgs/by-name/ba/barrage/package.nix b/pkgs/by-name/ba/barrage/package.nix
index a606d4f3dfdf9..497468cb489a8 100644
--- a/pkgs/by-name/ba/barrage/package.nix
+++ b/pkgs/by-name/ba/barrage/package.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://lgames.sourceforge.io/Barrage/";
-    description = "A destructive action game";
+    description = "Destructive action game";
     license = with lib.licenses; [ gpl2Plus ];
     mainProgram = "barrage";
     maintainers = with lib.maintainers; [ AndersonTorres ];
diff --git a/pkgs/by-name/ba/basedpyright/package-lock.json b/pkgs/by-name/ba/basedpyright/package-lock.json
new file mode 100644
index 0000000000000..dee0ab51a5212
--- /dev/null
+++ b/pkgs/by-name/ba/basedpyright/package-lock.json
@@ -0,0 +1,193 @@
+{
+  "name": "pyright-root",
+  "lockfileVersion": 2,
+  "requires": true,
+  "packages": {
+    "": {
+      "name": "pyright-root",
+      "hasInstallScript": true,
+      "dependencies": {
+        "glob": "^7.2.3",
+        "jsonc-parser": "^3.2.1"
+      }
+    },
+    "node_modules/balanced-match": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+    },
+    "node_modules/brace-expansion": {
+      "version": "1.1.11",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+      "dependencies": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "node_modules/concat-map": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+      "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+    },
+    "node_modules/fs.realpath": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+      "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+    },
+    "node_modules/glob": {
+      "version": "7.2.3",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+      "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+      "dependencies": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^3.1.1",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      },
+      "engines": {
+        "node": "*"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/inflight": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+      "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+      "dependencies": {
+        "once": "^1.3.0",
+        "wrappy": "1"
+      }
+    },
+    "node_modules/inherits": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+    },
+    "node_modules/jsonc-parser": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
+      "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
+    },
+    "node_modules/minimatch": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+      "dependencies": {
+        "brace-expansion": "^1.1.7"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+      "dependencies": {
+        "wrappy": "1"
+      }
+    },
+    "node_modules/path-is-absolute": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+      "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+    }
+  },
+  "dependencies": {
+    "balanced-match": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+    },
+    "brace-expansion": {
+      "version": "1.1.11",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+      "requires": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "concat-map": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+      "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+    },
+    "fs.realpath": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+      "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+    },
+    "glob": {
+      "version": "7.2.3",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+      "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+      "requires": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^3.1.1",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      }
+    },
+    "inflight": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+      "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+      "requires": {
+        "once": "^1.3.0",
+        "wrappy": "1"
+      }
+    },
+    "inherits": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+    },
+    "jsonc-parser": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
+      "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
+    },
+    "minimatch": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+      "requires": {
+        "brace-expansion": "^1.1.7"
+      }
+    },
+    "once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+      "requires": {
+        "wrappy": "1"
+      }
+    },
+    "path-is-absolute": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+      "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
+    },
+    "wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+    }
+  }
+}
diff --git a/pkgs/by-name/ba/basedpyright/package.nix b/pkgs/by-name/ba/basedpyright/package.nix
new file mode 100644
index 0000000000000..d591250ba2eb4
--- /dev/null
+++ b/pkgs/by-name/ba/basedpyright/package.nix
@@ -0,0 +1,88 @@
+{
+  lib,
+  buildNpmPackage,
+  fetchFromGitHub,
+  runCommand,
+  jq,
+}:
+
+let
+  version = "1.12.6";
+
+  src = fetchFromGitHub {
+    owner = "detachhead";
+    repo = "basedpyright";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-1F3T+BGamFJEDAIMz684oIn4xEDbNadEh8TTG5l8fPo=";
+  };
+
+  patchedPackageJSON = runCommand "package.json" { } ''
+    ${jq}/bin/jq '
+      .devDependencies |= with_entries(select(.key == "glob" or .key == "jsonc-parser"))
+      | .scripts =  {  }
+      ' ${src}/package.json > $out
+  '';
+
+  pyright-root = buildNpmPackage {
+    pname = "pyright-root";
+    inherit version src;
+    npmDepsHash = "sha256-63kUhKrxtJhwGCRBnxBfOFXs2ARCNn+OOGu6+fSJey4=";
+    dontNpmBuild = true;
+    postPatch = ''
+      cp ${patchedPackageJSON} ./package.json
+      cp ${./package-lock.json} ./package-lock.json
+    '';
+    installPhase = ''
+      runHook preInstall
+      cp -r . "$out"
+      runHook postInstall
+    '';
+  };
+
+  pyright-internal = buildNpmPackage {
+    pname = "pyright-internal";
+    inherit version src;
+    sourceRoot = "${src.name}/packages/pyright-internal";
+    npmDepsHash = "sha256-8nXW5Z5xTr8EXxyBylxCr7C88zmRxppe8EaspFy7b6o=";
+    dontNpmBuild = true;
+    # FIXME: Remove this flag when TypeScript 5.5 is released
+    npmFlags = [ "--legacy-peer-deps" ];
+    installPhase = ''
+      runHook preInstall
+      cp -r . "$out"
+      runHook postInstall
+    '';
+  };
+in
+buildNpmPackage rec {
+  pname = "basedpyright";
+  inherit version src;
+
+  sourceRoot = "${src.name}/packages/pyright";
+  npmDepsHash = "sha256-ZFuCY2gveimFK5Hztj6k6PkeTpbR7XiyQyS5wPaNNts=";
+
+  postPatch = ''
+    chmod +w ../../
+    ln -s ${pyright-root}/node_modules ../../node_modules
+    chmod +w ../pyright-internal
+    ln -s ${pyright-internal}/node_modules ../pyright-internal/node_modules
+  '';
+
+  postInstall = ''
+    mv "$out/bin/pyright" "$out/bin/basedpyright"
+    mv "$out/bin/pyright-langserver" "$out/bin/basedpyright-langserver"
+  '';
+
+  dontNpmBuild = true;
+
+  passthru.updateScript = ./update.sh;
+
+  meta = {
+    changelog = "https://github.com/detachhead/basedpyright/releases/tag/${version}";
+    description = "Type checker for the Python language";
+    homepage = "https://github.com/detachhead/basedpyright";
+    license = lib.licenses.mit;
+    mainProgram = "basedpyright";
+    maintainers = with lib.maintainers; [ kiike ];
+  };
+}
diff --git a/pkgs/by-name/ba/basedpyright/update.sh b/pkgs/by-name/ba/basedpyright/update.sh
new file mode 100755
index 0000000000000..64e00f242aa11
--- /dev/null
+++ b/pkgs/by-name/ba/basedpyright/update.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gnused common-updater-scripts jq prefetch-npm-deps
+set -euo pipefail
+
+version=$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} -v -s https://api.github.com/repos/detachhead/basedpyright/releases/latest | jq -r '.tag_name | sub("^v"; "")')
+
+update-source-version basedpyright "$version"
+
+root="$(dirname "$(readlink -f "$0")")"
+FILE_PATH="$root/package.nix"
+REPO_URL_PREFIX="https://github.com/detachhead/basedpyright/raw"
+TEMP_DIR=$(mktemp -d)
+
+trap 'rm -rf "$TEMP_DIR"' EXIT
+
+# Function to download `package-lock.json` for a given source path and update hash
+update_hash() {
+    local source_root_path="$1"
+    local existing_hash="$2"
+
+    # Formulate download URL
+    local download_url="${REPO_URL_PREFIX}/v${version}${source_root_path}/package-lock.json"
+
+    # Download package-lock.json to temporary directory
+    curl -fsSL -v -o "${TEMP_DIR}/package-lock.json" "$download_url"
+
+    # Calculate the new hash
+    local new_hash
+    new_hash=$(prefetch-npm-deps "${TEMP_DIR}/package-lock.json")
+
+    # Update npmDepsHash in the original file
+    sed -i "s|$existing_hash|${new_hash}|" "$FILE_PATH"
+}
+
+while IFS= read -r source_root_line; do
+    [[ "$source_root_line" =~ sourceRoot ]] || continue
+    source_root_path=$(echo "$source_root_line" | sed -e 's/^.*"${src.name}\(.*\)";.*$/\1/')
+
+    # Extract the current npmDepsHash for this sourceRoot
+    existing_hash=$(grep -A1 "$source_root_line" "$FILE_PATH" | grep 'npmDepsHash' | sed -e 's/^.*npmDepsHash = "\(.*\)";$/\1/')
+
+    # Call the function to download and update the hash
+    update_hash "$source_root_path" "$existing_hash"
+done < "$FILE_PATH"
diff --git a/pkgs/by-name/ba/bash-language-server/package.nix b/pkgs/by-name/ba/bash-language-server/package.nix
new file mode 100644
index 0000000000000..eb47dfdd9f6b6
--- /dev/null
+++ b/pkgs/by-name/ba/bash-language-server/package.nix
@@ -0,0 +1,75 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pnpm_8
+, nodejs
+, npmHooks
+, makeBinaryWrapper
+, shellcheck
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "bash-language-server";
+  version = "5.4.0";
+
+  src = fetchFromGitHub {
+    owner = "bash-lsp";
+    repo = "bash-language-server";
+    rev = "server-${finalAttrs.version}";
+    hash = "sha256-yJ81oGd9aNsWQMLvDSgMVVH1//Mw/SVFYFIPsJTQYzE=";
+  };
+
+  pnpmDeps = pnpm_8.fetchDeps {
+    inherit (finalAttrs) pname version src;
+    hash = "sha256-W25xehcxncBs9QgQBt17F5YHK0b+GDEmt27XzTkyYWg=";
+  };
+
+  nativeBuildInputs = [
+    nodejs
+    pnpm_8.configHook
+    npmHooks.npmBuildHook
+    makeBinaryWrapper
+  ];
+  npmBuildScript = "compile";
+  # We are only interested in the bash-language-server executable, which is
+  # part of the `./server` directory. From some reason, the `./vscode-client`
+  # directory is not included in upstream's `pnpm-workspace.yaml`, so perhaps
+  # that's why our ${pnpmDeps} don't include the dependencies required for it.
+  preBuild = ''
+    rm -r vscode-client
+    substituteInPlace tsconfig.json \
+      --replace-fail '{ "path": "./vscode-client" },' ""
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    pnpm --offline \
+      --frozen-lockfile --ignore-script \
+      --filter=bash-language-server \
+      deploy $out/lib/bash-language-server
+    # Cleanup directory a bit, to save space, and make fixup phase a bit faster
+    rm -r $out/lib/bash-language-server/src
+    find $out/lib/bash-language-server -name '*.ts' -delete
+    rm -r \
+      $out/lib/bash-language-server/node_modules/.bin \
+      $out/lib/bash-language-server/node_modules/*/bin
+
+    # Create the executable, based upon what happens in npmHooks.npmInstallHook
+    makeWrapper ${lib.getExe nodejs} $out/bin/bash-language-server \
+      --prefix PATH : ${lib.makeBinPath [ shellcheck ]} \
+      --inherit-argv0 \
+      --add-flags $out/lib/bash-language-server/out/cli.js
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A language server for Bash";
+    homepage = "https://github.com/bash-lsp/bash-language-server";
+    license = licenses.mit;
+    maintainers = with maintainers; [ doronbehar ];
+    mainProgram = "bash-language-server";
+    platforms = platforms.all;
+  };
+})
diff --git a/pkgs/by-name/ba/bat/package.nix b/pkgs/by-name/ba/bat/package.nix
index 3d91608c32464..5476fc55f662d 100644
--- a/pkgs/by-name/ba/bat/package.nix
+++ b/pkgs/by-name/ba/bat/package.nix
@@ -70,7 +70,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A cat(1) clone with syntax highlighting and Git integration";
+    description = "Cat(1) clone with syntax highlighting and Git integration";
     homepage = "https://github.com/sharkdp/bat";
     changelog = "https://github.com/sharkdp/bat/raw/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/pkgs/by-name/ba/batmon/package.nix b/pkgs/by-name/ba/batmon/package.nix
new file mode 100644
index 0000000000000..e41587b1f57b4
--- /dev/null
+++ b/pkgs/by-name/ba/batmon/package.nix
@@ -0,0 +1,34 @@
+{
+  lib,
+  stdenv,
+  rustPlatform,
+  fetchFromGitHub,
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "batmon";
+  version = "0.0.1";
+
+  src = fetchFromGitHub {
+    owner = "6543";
+    repo = "batmon";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-+kjDNQKlaoI5fQ5FqYF6IPCKeE92WKxIhVCKafqfE0o=";
+  };
+
+  cargoSha256 = "sha256-DJpWBset6SW7Ahg60+Tu1VpH34LcVOyrEs9suKyTE9g=";
+
+  meta = with lib; {
+    description = "Interactive batteries viewer";
+    longDescription = ''
+      An interactive viewer, similar to top, htop and other *top utilities,
+      but about the batteries installed in your notebook.
+    '';
+    homepage = "https://github.com/6543/batmon/";
+    changelog = "https://github.com/6543/batmon/releases/tag/v${version}";
+    license = licenses.asl20;
+    mainProgram = "batmon";
+    platforms = with platforms; unix ++ windows;
+    broken = stdenv.isDarwin && stdenv.isAarch64;
+    maintainers = with maintainers; [ _6543 ];
+  };
+}
diff --git a/pkgs/by-name/bc/bcachefs-tools/fix-encrypted-boot.patch b/pkgs/by-name/bc/bcachefs-tools/fix-encrypted-boot.patch
new file mode 100644
index 0000000000000..5e14d09547f43
--- /dev/null
+++ b/pkgs/by-name/bc/bcachefs-tools/fix-encrypted-boot.patch
@@ -0,0 +1,92 @@
+From f76ad4da12e6a65550d564bb626a1429ae75433a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Thomas=20M=C3=BChlbacher?= <tmuehlbacher@posteo.net>
+Date: Thu, 9 May 2024 23:52:47 +0200
+Subject: [PATCH 1/2] `check_for_key` before `ask_for_passphrase`
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+let's always first check if there is already a key in the keyring
+available before we try to get the key from some more involved means.
+
+Fixes: #261
+Signed-off-by: Thomas Mühlbacher <tmuehlbacher@posteo.net>
+---
+ src/commands/mount.rs | 13 +++++++++++--
+ src/key.rs            |  4 +++-
+ 2 files changed, 14 insertions(+), 3 deletions(-)
+
+diff --git a/src/commands/mount.rs b/src/commands/mount.rs
+index 9414c77f..34a741cb 100644
+--- a/src/commands/mount.rs
++++ b/src/commands/mount.rs
+@@ -344,8 +344,17 @@ fn cmd_mount_inner(opt: Cli) -> anyhow::Result<()> {
+     if block_devices_to_mount.len() == 0 {
+         Err(anyhow::anyhow!("No device found from specified parameters"))?;
+     }
+-    // Check if the filesystem's master key is encrypted
+-    if unsafe { bcachefs::bch2_sb_is_encrypted_and_locked(block_devices_to_mount[0].sb) } {
++
++    let key_name = CString::new(format!(
++        "bcachefs:{}",
++        block_devices_to_mount[0].sb().uuid()
++    ))
++    .unwrap();
++
++    // Check if the filesystem's master key is encrypted and we don't have a key
++    if unsafe { bcachefs::bch2_sb_is_encrypted_and_locked(block_devices_to_mount[0].sb) }
++        && !key::check_for_key(&key_name)?
++    {
+         // First by password_file, if available
+         let fallback_to_unlock_policy = if let Some(passphrase_file) = &opt.passphrase_file {
+             match key::read_from_passphrase_file(&block_devices_to_mount[0], passphrase_file.as_path()) {
+diff --git a/src/key.rs b/src/key.rs
+index d0018805..568b3cdb 100644
+--- a/src/key.rs
++++ b/src/key.rs
+@@ -58,7 +58,7 @@ impl fmt::Display for UnlockPolicy {
+     }
+ }
+ 
+-fn check_for_key(key_name: &std::ffi::CStr) -> anyhow::Result<bool> {
++pub fn check_for_key(key_name: &std::ffi::CStr) -> anyhow::Result<bool> {
+     use bch_bindgen::keyutils::{self, keyctl_search};
+     let key_name = key_name.to_bytes_with_nul().as_ptr() as *const _;
+     let key_type = c_str!("user");
+@@ -86,10 +86,12 @@ fn wait_for_unlock(uuid: &uuid::Uuid) -> anyhow::Result<()> {
+     }
+ }
+ 
++// blocks indefinitely if no input is available on stdin
+ fn ask_for_passphrase(sb: &bch_sb_handle) -> anyhow::Result<()> {
+     let passphrase = if stdin().is_terminal() {
+         rpassword::prompt_password("Enter passphrase: ")?
+     } else {
++        info!("Trying to read passphrase from stdin...");
+         let mut line = String::new();
+         stdin().read_line(&mut line)?;
+         line
+
+From 734ccc58f42c3cccb0960bdd84808839e2b62ca9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Thomas=20M=C3=BChlbacher?= <tmuehlbacher@posteo.net>
+Date: Sun, 12 May 2024 19:39:19 +0200
+Subject: [PATCH 2/2] fix unfortunate typo
+
+causes mounting encrypted devices to become stuck in a busy loop.
+---
+ include/crypto/skcipher.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/crypto/skcipher.h b/include/crypto/skcipher.h
+index 70905a5a..833729dc 100644
+--- a/include/crypto/skcipher.h
++++ b/include/crypto/skcipher.h
+@@ -112,7 +112,7 @@ static inline void skcipher_request_set_sync_tfm(struct skcipher_request *req,
+ 	skcipher_request_set_tfm(req, &tfm->base);
+ }
+ 
+-#define skcipher_request_set_callback(...) do {} while (9)
++#define skcipher_request_set_callback(...) do {} while (0)
+ 
+ static inline void skcipher_request_set_crypt(
+ 	struct skcipher_request *req,
diff --git a/pkgs/tools/filesystems/bcachefs-tools/default.nix b/pkgs/by-name/bc/bcachefs-tools/package.nix
index c49d1a8561981..14f668bf5b675 100644
--- a/pkgs/tools/filesystems/bcachefs-tools/default.nix
+++ b/pkgs/by-name/bc/bcachefs-tools/package.nix
@@ -2,7 +2,6 @@
   lib,
   stdenv,
   fetchFromGitHub,
-  fetchpatch,
   pkg-config,
   libuuid,
   libsodium,
@@ -27,13 +26,15 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "bcachefs-tools";
-  version = "1.7.0";
+  version = "1.7.0-unstable-2024-05-09";
 
   src = fetchFromGitHub {
     owner = "koverstreet";
     repo = "bcachefs-tools";
-    rev = "v${finalAttrs.version}";
-    hash = "sha256-nHT18bADESDBHoo9P+J3gGc092hRYs2vaWupgqlkvaA=";
+    # FIXME: switch to a tagged release once available > 1.7.0
+    # Fix for https://github.com/NixOS/nixpkgs/issues/313350
+    rev = "3ac510f6a41feb1b695381fa30869d557c00b822";
+    hash = "sha256-ZmkeYPiCy7vkXnMFbtUF4761K+I+Ef7UbmSY7dJG09U=";
   };
 
   nativeBuildInputs = [
@@ -76,11 +77,8 @@ stdenv.mkDerivation (finalAttrs: {
   patches = [
     # code refactoring of bcachefs-tools broke reading passphrases from stdin (vs. terminal)
     # upstream issue https://github.com/koverstreet/bcachefs-tools/issues/261
-    (fetchpatch {
-    url = "https://github.com/koverstreet/bcachefs-tools/commit/38b0cb721d2a35f5a4af429bc7bd367461f2fa26.patch";
-    hash = "sha256-/9reye+Qoa+EMkS+wfdX+KwDeLHHJ/S+Qm7sWl0MtqM=";
-  })
-];
+    ./fix-encrypted-boot.patch
+  ];
 
   preCheck = lib.optionalString (!fuseSupport) ''
     rm tests/test_fuse.py
@@ -95,7 +93,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   postInstall = ''
     substituteInPlace $out/libexec/bcachefsck_all \
-      --replace "/usr/bin/python3" "${python3}/bin/python3"
+      --replace-fail "/usr/bin/python3" "${python3}/bin/python3"
   '';
 
   passthru = {
diff --git a/pkgs/by-name/bd/bdt/package.nix b/pkgs/by-name/bd/bdt/package.nix
new file mode 100644
index 0000000000000..997b15cee39fb
--- /dev/null
+++ b/pkgs/by-name/bd/bdt/package.nix
@@ -0,0 +1,25 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "bdt";
+  version = "0.18.0";
+
+  src = fetchFromGitHub {
+    owner = "datafusion-contrib";
+    repo = "bdt";
+    rev = "5c6730a8e3cd43c7847aef76b499197730cded58";
+    hash = "sha256-gUKsJwbpMPSO+KPqyJRodrRLjUpTh/y6C2xhrgvJFKk=";
+  };
+
+  cargoHash = "sha256-4KrFhchoIB2N89m7HrL0xj2Z+u/6/6Onxa2wIAX18Io=";
+
+  meta = with lib; {
+    description = "boring data tool. A CLI tool to query parquet, json and avro files";
+    homepage = "https://github.com/datafusion-contrib/bdt";
+    license = licenses.asl20;
+    mainProgram = "bdt";
+    maintainers = with maintainers; [ matthiasq ];
+  };
+}
diff --git a/pkgs/games/BeatSaberModManager/deps.nix b/pkgs/by-name/be/beatsabermodmanager/deps.nix
index 64115dd683e94..64115dd683e94 100644
--- a/pkgs/games/BeatSaberModManager/deps.nix
+++ b/pkgs/by-name/be/beatsabermodmanager/deps.nix
diff --git a/pkgs/games/BeatSaberModManager/default.nix b/pkgs/by-name/be/beatsabermodmanager/package.nix
index 5c0f73d329f24..d21283e0952c9 100644
--- a/pkgs/games/BeatSaberModManager/default.nix
+++ b/pkgs/by-name/be/beatsabermodmanager/package.nix
@@ -18,12 +18,12 @@
 }:
 
 buildDotnetModule rec {
-  pname = "BeatSaberModManager";
+  pname = "beatsabermodmanager";
   version = "0.0.5";
 
   src = fetchFromGitHub {
     owner = "affederaffe";
-    repo = pname;
+    repo = "BeatSaberModManager";
     rev = "v${version}";
     sha256 = "sha256-HHWC+MAwJ+AMCuBzSuR7FbW3k+wLri0B9J1DftyfNEU=";
     fetchSubmodules = true; # It vendors BSIPA-Linux
diff --git a/pkgs/by-name/be/bee/package.nix b/pkgs/by-name/be/bee/package.nix
index 1241b0c5a0094..6e85456b3adef 100644
--- a/pkgs/by-name/be/bee/package.nix
+++ b/pkgs/by-name/be/bee/package.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "bee";
-  version = "2.0.1";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "ethersphere";
     repo = "bee";
     rev = "v${version}";
-    sha256 = "sha256-4Pg8zKhXQwYK7eGH886sErzkdJRD4iCoQ+mLoS7GlZg=";
+    sha256 = "sha256-FflPGsHF2kZ5eh0bNFtK5aMLon5m5B/se/5PdIIafzo=";
   };
 
-  vendorHash = "sha256-YhlUnmJuVejzy1I4+YkNnOPM+AUURr/j3dGdT3J6bVQ=";
+  vendorHash = "sha256-XbOp0821HeCU5c+es3/UJNF0StDSDKKT+sasBJ+uTLM=";
 
   subPackages = [ "cmd/bee" ];
 
diff --git a/pkgs/by-name/be/beekeeper-studio/package.nix b/pkgs/by-name/be/beekeeper-studio/package.nix
index 0a62c91c8e7e7..9f6f9ff3d8bee 100644
--- a/pkgs/by-name/be/beekeeper-studio/package.nix
+++ b/pkgs/by-name/be/beekeeper-studio/package.nix
@@ -7,7 +7,7 @@
 
 let
   pname = "beekeeper-studio";
-  version = "4.3.1";
+  version = "4.4.0";
 
   plat = {
     aarch64-linux = "-arm64";
@@ -15,8 +15,8 @@ let
   }.${stdenv.hostPlatform.system};
 
   hash = {
-    aarch64-linux = "sha256-7ZjyzWeu19zUX1u8t0hMu8F+1LN5/CtEotLNe/5rwPM=";
-    x86_64-linux = "sha256-vhKvOPPo/a9gwQ8FsC28dStQHI8SYzEbhdEW4elD7bU=";
+    aarch64-linux = "sha256-RzPw+jsHecOYSBn/TrEFew5V0LvYS15dUuscS7+GraM=";
+    x86_64-linux = "sha256-fWr0ezPU5U8G9M3JEjUdBFZksbJL5CUjdNbAyT5dwI8=";
   }.${stdenv.hostPlatform.system};
 
   src = fetchurl {
diff --git a/pkgs/by-name/be/benchexec/package.nix b/pkgs/by-name/be/benchexec/package.nix
index abc04b97cb8de..213aeee6d919d 100644
--- a/pkgs/by-name/be/benchexec/package.nix
+++ b/pkgs/by-name/be/benchexec/package.nix
@@ -53,7 +53,7 @@ python3.pkgs.buildPythonApplication rec {
     };
 
   meta = with lib; {
-    description = "A Framework for Reliable Benchmarking and Resource Measurement.";
+    description = "Framework for Reliable Benchmarking and Resource Measurement";
     homepage = "https://github.com/sosy-lab/benchexec";
     maintainers = with maintainers; [ lorenzleutgeb ];
     license = licenses.asl20;
diff --git a/pkgs/by-name/be/bend/package.nix b/pkgs/by-name/be/bend/package.nix
index b743f4da1fe65..d904cd8528749 100644
--- a/pkgs/by-name/be/bend/package.nix
+++ b/pkgs/by-name/be/bend/package.nix
@@ -1,6 +1,5 @@
 {
   rustPlatform,
-  fetchCrate,
   fetchFromGitHub,
   lib,
   makeWrapper,
@@ -9,18 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "Bend";
-  version = "0.2.9";
+  version = "0.2.22";
 
   src = fetchFromGitHub {
     owner = "HigherOrderCO";
     repo = "Bend";
     rev = "refs/tags/${version}";
-    hash = "sha256-MEfB2SBJN7uEwfZGoEL7DQXsr1fccdZyGyzHtNv9wow=";
+    hash = "sha256-5qcj3KfgcB5tbVSJUSOVQDAhEpPE8SFoT0g9syHbFCA=";
   };
 
-  cargoHash = "sha256-+i+Y3MgCBVN3REmPwAjm2SiF9FJ0i05czmPKB8JtAFM=";
-
-  RUSTC_BOOTSTRAP = true;
+  cargoHash = "sha256-gSAIidMEYJDZHgIWNgYJVqyhpD7M+CMCD+1mEXGztIk=";
 
   nativeBuildInputs = [
     hvm
diff --git a/pkgs/by-name/be/bepass/package.nix b/pkgs/by-name/be/bepass/package.nix
index b18dce4c01087..fb9de741a90d7 100644
--- a/pkgs/by-name/be/bepass/package.nix
+++ b/pkgs/by-name/be/bepass/package.nix
@@ -52,7 +52,7 @@ buildGoModule rec{
 
   meta = with lib; {
     homepage = "https://github.com/bepass-org/bepass";
-    description = "A simple DPI bypass tool written in go";
+    description = "Simple DPI bypass tool written in go";
     license = licenses.mit;
     mainProgram = "bepass";
     maintainers = with maintainers; [ oluceps ];
diff --git a/pkgs/by-name/be/berry/package.nix b/pkgs/by-name/be/berry/package.nix
index 6d053c77fa596..9a4e3f64272f2 100644
--- a/pkgs/by-name/be/berry/package.nix
+++ b/pkgs/by-name/be/berry/package.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://berrywm.org/";
-    description = "A healthy, bite-sized window manager";
+    description = "Healthy, bite-sized window manager";
     longDescription = ''
       berry is a healthy, bite-sized window manager written in C for unix
       systems. Its main features include:
diff --git a/pkgs/by-name/be/betula/package.nix b/pkgs/by-name/be/betula/package.nix
index c29e6e850e75c..7afa85661a1c2 100644
--- a/pkgs/by-name/be/betula/package.nix
+++ b/pkgs/by-name/be/betula/package.nix
@@ -3,15 +3,15 @@
 , buildGoModule
 }: buildGoModule rec {
   pname = "betula";
-  version = "1.2.0";
+  version = "1.3.1";
 
   src = fetchFromSourcehut {
     owner = "~bouncepaw";
     repo = "betula";
     rev = "v${version}";
-    hash = "sha256-oxwOGpf305VDlY3Mwl0dRJRRhe0yolaMMlpNspZdKQk=";
+    hash = "sha256-20sA2Hnnppr2RXqu2Qx2bkU/u9FUkH6INUUGx2zKfao=";
   };
-  vendorHash = "sha256-DjL2h6YKCJOWgmR/Gb0Eja38yJ4DymqW/SzmPG3+q9w=";
+  vendorHash = "sha256-SWcQYF8LP6lw5kWlAVFt3qiwDnvpSOXenmdm6TSfJSc=";
 
   CGO_ENABLED = 1;
   # These tests use internet, so are failing in Nix build.
diff --git a/pkgs/by-name/bi/bicep/deps.nix b/pkgs/by-name/bi/bicep/deps.nix
index 78b0b2c1b727a..17f84614364f5 100644
--- a/pkgs/by-name/bi/bicep/deps.nix
+++ b/pkgs/by-name/bi/bicep/deps.nix
@@ -3,27 +3,29 @@
 
 { fetchNuGet }: [
   (fetchNuGet { pname = "Azure.Bicep.Internal.RoslynAnalyzers"; version = "0.1.38"; sha256 = "1b13vbl0y851nr7rfhyxc0djihxfr7xv010f9zvvbibyz5wqis7v"; })
-  (fetchNuGet { pname = "Azure.Bicep.Types"; version = "0.5.6"; sha256 = "0kzyy21jvhc6gy24w9sfb6ic0pg22j8y6s23q8ls0i15qf3rng77"; })
-  (fetchNuGet { pname = "Azure.Bicep.Types.Az"; version = "0.2.677"; sha256 = "1wgng31pfm272yipigjz24ky2qfrq7mfj9fx0wbyr3q8g6cascnp"; })
+  (fetchNuGet { pname = "Azure.Bicep.Types"; version = "0.5.9"; sha256 = "02v5jzrap5flk5r6jwbw3mzvkxb51kmz4g71j2nnikqgnc4v5dh2"; })
+  (fetchNuGet { pname = "Azure.Bicep.Types.Az"; version = "0.2.692"; sha256 = "1cc48z47wsqyhzszpkmm949qk85b9jq04qnahk4xwg643xkysr1b"; })
   (fetchNuGet { pname = "Azure.Bicep.Types.K8s"; version = "0.1.626"; sha256 = "1c07igq6jqxkg9iln452fnng2n6ddd0008vb5lgbzdpgp1amz2ji"; })
   (fetchNuGet { pname = "Azure.Containers.ContainerRegistry"; version = "1.1.1"; sha256 = "0hn6mq1bffcq7d5w4rj4ffdxb3grvymzrpyl1qrbxksqpfbd0bh4"; })
   (fetchNuGet { pname = "Azure.Core"; version = "1.36.0"; sha256 = "14lsc6zik7s5by3gp86pf77wh58fcqrjy2xhx5p03gmhdn6iz2cn"; })
-  (fetchNuGet { pname = "Azure.Deployments.Core"; version = "1.0.1158"; sha256 = "07bjwmal3qy23axa9g0gsc5qdajypvbpys15k8y05gnflz85rqzy"; })
-  (fetchNuGet { pname = "Azure.Deployments.Expression"; version = "1.0.1158"; sha256 = "1kn515apm33fmrdz8v9y8ac2w83cbbvf74w2grrl1aimg5n4qjsb"; })
+  (fetchNuGet { pname = "Azure.Core"; version = "1.38.0"; sha256 = "1rnnip757kdzipfvrz9qc730mpkcq8r36lspwx20p0s9hss8qdc3"; })
+  (fetchNuGet { pname = "Azure.Core"; version = "1.39.0"; sha256 = "0b36vi12pzqls6ad1dwzc8zq8wb07rkg2y52divl8gh2za43x5wp"; })
+  (fetchNuGet { pname = "Azure.Deployments.Core"; version = "1.0.1243.1"; sha256 = "18lh45y9axc494hpxdp8w6d8c92n8m6k4lqjyh4znd2mcmm57wbz"; })
+  (fetchNuGet { pname = "Azure.Deployments.Expression"; version = "1.0.1243.1"; sha256 = "1shk9amp9d3v6lbf2s0j1fxf5xm468fvphhnni95v6w2cpv1fdv8"; })
   (fetchNuGet { pname = "Azure.Deployments.Internal.GenerateNotice"; version = "0.1.38"; sha256 = "00jzm0c1ch24mh50hqmzs2jxda929zg1j1dgnhs5gbsyk7zjlvrd"; })
-  (fetchNuGet { pname = "Azure.Deployments.Templates"; version = "1.0.1158"; sha256 = "1zww735mbw1jswd3l8m7y48giqkcxn9v1fy9g6kp3c4dr97519wq"; })
-  (fetchNuGet { pname = "Azure.Identity"; version = "1.10.4"; sha256 = "0w345hzp43wbs5f5qk1y7wmyp11cayphnycpflil5ayvvz2jjfn2"; })
-  (fetchNuGet { pname = "Azure.ResourceManager"; version = "1.9.0"; sha256 = "143rv7rq16q4b4fhh3yjjc5r4g226jhpl6ngwvr69kbbxhw0n618"; })
-  (fetchNuGet { pname = "Azure.ResourceManager.Resources"; version = "1.7.0"; sha256 = "1hjbb607fxb26c7bxx1lc3v50hxmv446klg7c1k89a7wkiqgvmh9"; })
-  (fetchNuGet { pname = "coverlet.collector"; version = "6.0.1"; sha256 = "12xiib5p8f4aj9gz0jn6s96lsa172qi92j46rrb39sidh0mbbdil"; })
+  (fetchNuGet { pname = "Azure.Deployments.Templates"; version = "1.0.1243.1"; sha256 = "11glwwxq9xzi3vrnqx833dry9n6ykspf6gfab0g23d8fygd5d2rf"; })
+  (fetchNuGet { pname = "Azure.Identity"; version = "1.11.3"; sha256 = "1hxjr7np25b3pr2z8vnkq6v4dvmrd7brm8zfz2qggvpqr48yyzxf"; })
+  (fetchNuGet { pname = "Azure.ResourceManager"; version = "1.11.1"; sha256 = "0vfp2rs4r9x3zkvw0za8q6xz3rrb8nywjd1137rpbpy0zx7qnbry"; })
+  (fetchNuGet { pname = "Azure.ResourceManager.Resources"; version = "1.7.3"; sha256 = "1nlaammdg10xyq7g0kig093l6nl1fxn2yk6dbc7xqagfmdnkbx29"; })
+  (fetchNuGet { pname = "coverlet.collector"; version = "6.0.2"; sha256 = "0fll8yssdzi2wv8l26qz2zl0qqrp5nlbdqxjwfh5p356nd991m1d"; })
   (fetchNuGet { pname = "FluentAssertions"; version = "6.12.0"; sha256 = "04fhn67930zv3i0d8xbrbw5vwz99c83bbvgdwqiir55vw5xlys9c"; })
+  (fetchNuGet { pname = "Humanizer.Core"; version = "2.14.1"; sha256 = "1ai7hgr0qwd7xlqfd92immddyi41j3ag91h3594yzfsgsy6yhyqi"; })
   (fetchNuGet { pname = "IPNetwork2"; version = "2.6.598"; sha256 = "03nxkiwy1bxgpv5n1lfd06grdyjc10a3k9gyc04rhzysjsswiy0l"; })
   (fetchNuGet { pname = "JetBrains.Annotations"; version = "2023.3.0"; sha256 = "0vp4mpn6gfckn8grzjm1jxlbqiq2fglm2rk9wq787adw7rxs8k7w"; })
-  (fetchNuGet { pname = "Json.More.Net"; version = "1.8.0"; sha256 = "1jlcmgn3pw4jzk9ys6jhkbigfdn9rrrb0wb2v0yxi5wv82arviq5"; })
-  (fetchNuGet { pname = "Json.More.Net"; version = "1.9.2"; sha256 = "1w5xascr03iv7830vdrlpxjrxiabypaqkkcij118lfm41pqhw8b7"; })
-  (fetchNuGet { pname = "JsonPatch.Net"; version = "2.1.0"; sha256 = "0ckz04108p7j8gzqs61bkvlbxfbqvbr19aykmkbbw44inr9azxai"; })
-  (fetchNuGet { pname = "JsonPath.Net"; version = "0.7.0"; sha256 = "0lv9w9m8327hyjzqbl2mwv61zsimc8b114nc67jwv0lm9v29skm0"; })
-  (fetchNuGet { pname = "JsonPointer.Net"; version = "3.0.1"; sha256 = "109q63pdsxdiy4rwj4qm1rj1cadxhksw3ik1frsrn2clkpj4lwks"; })
+  (fetchNuGet { pname = "Json.More.Net"; version = "2.0.1.2"; sha256 = "1fzw9d55hvynrwz01gj0xv6ybjm7nsrm2vxqy6d15wr75w3pyyky"; })
+  (fetchNuGet { pname = "JsonPatch.Net"; version = "3.1.0"; sha256 = "1dq9wl2xvkq8yplq1l9qknfj4jb8824kv8szbjcvnjpn44x8xw3f"; })
+  (fetchNuGet { pname = "JsonPath.Net"; version = "1.1.0"; sha256 = "0jn5k2iwr0q8cii63nzxr4m54zrpgd4q9iyx8jghq7xisshqy08m"; })
+  (fetchNuGet { pname = "JsonPointer.Net"; version = "5.0.0"; sha256 = "0rwxhyf2brw5x56pndfyxpi8qawx7jv9xsbbhyr9873jj8g9f9rq"; })
   (fetchNuGet { pname = "MessagePack"; version = "2.5.108"; sha256 = "0cnaz28lhrdmavnxjkakl9q8p2yv8mricvp1b0wxdfnz8v41gwzs"; })
   (fetchNuGet { pname = "MessagePack.Annotations"; version = "2.5.108"; sha256 = "0nb1fx8dwl7304kw0bc375bvlhb7pg351l4cl3vqqd7d8zqjwx5v"; })
   (fetchNuGet { pname = "Microsoft.ApplicationInsights"; version = "2.21.0"; sha256 = "1q034jbqkxb8lddkd0ijp0wp0ymnnf3bg2mjpay027zv7jswnc4x"; })
@@ -33,13 +35,13 @@
   (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "7.0.0"; sha256 = "1waiggh3g1cclc81gmjrqbh128kwfjky3z79ma4bd2ms9pa3gvfm"; })
   (fetchNuGet { pname = "Microsoft.Build.Tasks.Git"; version = "8.0.0"; sha256 = "0055f69q3hbagqp8gl3nk0vfn4qyqyxsxyy7pd0g7wm3z28byzmx"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.BannedApiAnalyzers"; version = "3.3.4"; sha256 = "1vzrni7n94f17bzc13lrvcxvgspx9s25ap1p005z6i1ikx6wgx30"; })
-  (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.9.0"; sha256 = "1gljgi69k0fz8vy8bn6xlyxabj6q4vls2zza9wz7ng6ix3irm89r"; })
+  (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.10.0"; sha256 = "0s0v7jmrq85n356xv7zixvwa4z94fszjcr5vll8x4im1a2lp00f9"; })
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
   (fetchNuGet { pname = "Microsoft.Diagnostics.Tracing.EventRegister"; version = "1.1.28"; sha256 = "1lh0ifj9xndiqspmnj7x9lcz2c7kdhyjgcmk5wz2yn8gimg0xy03"; })
   (fetchNuGet { pname = "Microsoft.Diagnostics.Tracing.TraceEvent"; version = "3.1.3"; sha256 = "1bappkn6vzaaq5yw9fzhds2gz557bhgmxvh38ifw6l39jkar2lii"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "8.0.0"; sha256 = "080kab87qgq2kh0ijry5kfdiq9afyzb8s0k3jqi5zbbi540yq4zl"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "8.0.0"; sha256 = "1jlpa4ggl1gr5fs7fdcw04li3y3iy05w3klr9lrrlc7v8w76kq71"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "8.0.0"; sha256 = "1m0gawiz8f5hc3li9vd5psddlygwgkiw13d7div87kmkf4idza8r"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "8.0.1"; sha256 = "0w5w0h1clv7585qkajy0vqb28blghhcv5j9ygfi13219idhx10r9"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Configuration.FileExtensions"; version = "8.0.0"; sha256 = "1jrmlfzy4h32nzf1nm5q8bhkpx958b0ww9qx1k1zm4pyaf6mqb04"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Json"; version = "8.0.0"; sha256 = "1n3ss26v1lq6b69fxk1vz3kqv9ppxq8ypgdqpd7415xrq66y4bqn"; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "8.0.0"; sha256 = "0i7qziz0iqmbk8zzln7kx9vd0lbx1x3va0yi3j1bgkjir13h78ps"; })
@@ -52,18 +54,19 @@
   (fetchNuGet { pname = "Microsoft.Extensions.ObjectPool"; version = "5.0.10"; sha256 = "07fk669pjydkcg6bxxv7aj548fzab4yb7ba8370d719lgi9y425l"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "8.0.0"; sha256 = "0p50qn6zhinzyhq9sy5svnmqqwhw2jajs2pbjh9sah504wjvhscz"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "8.0.0"; sha256 = "0aldaz5aapngchgdr7dax9jw5wy7k7hmjgjpfgfv1wfif27jlkqm"; })
-  (fetchNuGet { pname = "Microsoft.Graph.Bicep.Types"; version = "0.1.3-preview"; sha256 = "0y910m1gw4sn41qskhxf9lwhvqlg9wnpyj2frzj7nbgyxwdljrqk"; })
-  (fetchNuGet { pname = "Microsoft.Identity.Client"; version = "4.56.0"; sha256 = "0rwyj8qagx93ys67a8k878ib3zdcrjb3jrl0aif3i8a0knwpsxxx"; })
-  (fetchNuGet { pname = "Microsoft.Identity.Client.Extensions.Msal"; version = "4.56.0"; sha256 = "1pcq46kfk3b1yyqr1rlk7sxd69xg0l9hrmard5nvqd7kh287l08m"; })
-  (fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "6.22.0"; sha256 = "06495i2i9cabys4s0dkaz0rby8k47gy627v9ivp7aa3k6xmypviz"; })
+  (fetchNuGet { pname = "Microsoft.Graph.Bicep.Types"; version = "0.1.5-preview"; sha256 = "0k26hh1mbrchmkymhf0in7g7dpgyzn2i1dfffi58w5wi5f25gsph"; })
+  (fetchNuGet { pname = "Microsoft.Identity.Client"; version = "4.60.3"; sha256 = "065iifhffri8wc5i4nfbnkzjrvflav9v5bfkwvmax8f35rks1mnn"; })
+  (fetchNuGet { pname = "Microsoft.Identity.Client.Extensions.Msal"; version = "4.60.3"; sha256 = "19l92ynvrhb76r0zpj8qhyymxgz45knyhdqr6za4s7rzbssibi08"; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "6.35.0"; sha256 = "0i6kdvqdbzynzrr4g5idx4ph4ckggsbsy0869lwa10fhmyxrh73g"; })
   (fetchNuGet { pname = "Microsoft.NET.StringTools"; version = "17.4.0"; sha256 = "1smx30nq22plrn2mw4wb5vfgxk6hyx12b60c4wabmpnr81lq3nzv"; })
-  (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.9.0"; sha256 = "1lls1fly2gr1n9n1xyl9k33l2v4pwfmylyzkq8v4v5ldnwkl1zdb"; })
+  (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.10.0"; sha256 = "13g8fwl09li8fc71nk13dgkb7gahd4qhamyg2xby7am63nlchhdf"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "3.1.0"; sha256 = "1gc1x8f95wk8yhgznkwsg80adk1lc65v9n5rx4yaa4bc5dva0z3j"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
-  (fetchNuGet { pname = "Microsoft.PowerPlatform.ResourceStack"; version = "6.0.0.1485"; sha256 = "1dszc9fhg9xpp96gx5djg2azxvfb36551malysdgxvd2r23vvfwh"; })
+  (fetchNuGet { pname = "Microsoft.PowerPlatform.ResourceStack"; version = "7.0.0.2007"; sha256 = "1higvig4ajwgcw6bdhxmf0s5p4gy1m69rnngdi1ik42731wrafay"; })
   (fetchNuGet { pname = "Microsoft.SourceLink.Common"; version = "8.0.0"; sha256 = "0xrr8yd34ij7dqnyddkp2awfmf9qn3c89xmw2f3npaa4wnajmx81"; })
   (fetchNuGet { pname = "Microsoft.SourceLink.GitHub"; version = "8.0.0"; sha256 = "1gdx7n45wwia3yvang3ls92sk3wrymqcx9p349j8wba2lyjf9m44"; })
   (fetchNuGet { pname = "Microsoft.Testing.Extensions.Telemetry"; version = "1.0.2"; sha256 = "00psv2mvynd2bz8xnzvqvb32qr33glqxg4ni5j91b93k84yjy5ma"; })
@@ -71,23 +74,21 @@
   (fetchNuGet { pname = "Microsoft.Testing.Extensions.VSTestBridge"; version = "1.0.2"; sha256 = "0c65fsc23xxw648xh83sjcmrn9hvs9q58l5lb36wflvaajbsjf2r"; })
   (fetchNuGet { pname = "Microsoft.Testing.Platform"; version = "1.0.2"; sha256 = "0bq46f4v2r4nzwly7g0dsakyc1lcql9nh85sp59d1fwzaknf1n94"; })
   (fetchNuGet { pname = "Microsoft.Testing.Platform.MSBuild"; version = "1.0.2"; sha256 = "1vjqrpqjx3z1irqgy0ckmkgyvrzqqqcikxs36q6gadyj643ra1c5"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.10.0"; sha256 = "07j69cw8r39533w4p39mnj00kahazz38760in3jfc45kmlcdb26x"; })
   (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.5.0"; sha256 = "0qkjyf3ky6xpjg5is2sdsawm99ka7fzgid2bvpglwmmawqgm8gls"; })
-  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.9.0"; sha256 = "1kgsl9w9fganbm9wvlkqgk0ag9hfi58z88rkfybc6kvg78bx89ca"; })
-  (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.9.0"; sha256 = "19ffh31a1jxzn8j69m1vnk5hyfz3dbxmflq77b8x82zybiilh5nl"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.10.0"; sha256 = "1bl471s7fx9jycr0cc8rylwf34mrvlg9qn1an6l86nisavfcyb7v"; })
   (fetchNuGet { pname = "Microsoft.VisualStudio.Threading"; version = "17.7.35"; sha256 = "1sr2ydgl6clnpf7axjhnffx3z2jz1zhnxfiizsv1prl26r3y52f9"; })
-  (fetchNuGet { pname = "Microsoft.VisualStudio.Threading.Analyzers"; version = "17.9.28"; sha256 = "0g64zn1wk96v9rj04rkcg7jwklaihj317gsdfswqg33yrcn4z5ig"; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.Threading.Analyzers"; version = "17.10.48"; sha256 = "00p3ywq4ppfl14l9yzxl5id5zmay8fv42b4w3ppr1b3d5ipldxhj"; })
   (fetchNuGet { pname = "Microsoft.VisualStudio.Validation"; version = "17.6.11"; sha256 = "0qx4nzsx28galgzzjkgf541254d433dgxcaf7y2y1qyyxgsfjj1f"; })
-  (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
   (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.7.0"; sha256 = "0bx21jjbs7l5ydyw4p6cn07chryxpmchq2nl5pirzz4l3b0q4dgs"; })
   (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "5.0.0"; sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n"; })
   (fetchNuGet { pname = "Microsoft.Win32.Registry.AccessControl"; version = "6.0.0"; sha256 = "1c1x47c6p21l6l84kw8wvsdhnd7ifrrrl8in0bnkaq7y1va4fvsn"; })
   (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "6.0.1"; sha256 = "1map729br97ny6mqkaw5qsg55yjbfz2hskvy56qz8rf7p1bjhky2"; })
   (fetchNuGet { pname = "Microsoft.Windows.Compatibility"; version = "6.0.7"; sha256 = "1b01dg77mw2ih3dy5sajjvqd89zv4yjqffmb8gs7dpzwnncin91d"; })
   (fetchNuGet { pname = "MSTest.TestAdapter"; version = "3.2.2"; sha256 = "14nrxg1cd3lzaxw7zz8z91168sgnsf1xxnrpdy7wkd6ggk22hi19"; })
-  (fetchNuGet { pname = "MSTest.TestFramework"; version = "3.2.2"; sha256 = "0igdrjr300bqz5lnibf9vl8pkaky1l27f889gza3a9xs83mpd06p"; })
+  (fetchNuGet { pname = "MSTest.TestFramework"; version = "3.3.1"; sha256 = "1k706rfifdx28kxhnqpfhfc79zvzd7wnyqvf3g6r27p9ramzw3j9"; })
   (fetchNuGet { pname = "Nerdbank.GitVersioning"; version = "3.6.133"; sha256 = "1cdw8krvsnx0n34f7fm5hiiy7bs6h3asvncqcikc0g46l50w2j80"; })
   (fetchNuGet { pname = "Nerdbank.Streams"; version = "2.10.69"; sha256 = "1klsyly7k1xhbhrpq2s2iwdlmw3xyvh51rcakfazwxkv2hm5fj3b"; })
-  (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
   (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; })
   (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.3"; sha256 = "0xrwysmrn4midrjal8g2hr1bbg38iyisl0svamb11arqws4w2bw7"; })
   (fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
@@ -96,7 +97,6 @@
   (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk"; })
   (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn"; })
   (fetchNuGet { pname = "runtime.any.System.Globalization"; version = "4.3.0"; sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x"; })
-  (fetchNuGet { pname = "runtime.any.System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201"; })
   (fetchNuGet { pname = "runtime.any.System.IO"; version = "4.3.0"; sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x"; })
   (fetchNuGet { pname = "runtime.any.System.Reflection"; version = "4.3.0"; sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly"; })
   (fetchNuGet { pname = "runtime.any.System.Reflection.Extensions"; version = "4.3.0"; sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33"; })
@@ -108,7 +108,6 @@
   (fetchNuGet { pname = "runtime.any.System.Text.Encoding"; version = "4.3.0"; sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3"; })
   (fetchNuGet { pname = "runtime.any.System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8"; })
   (fetchNuGet { pname = "runtime.any.System.Threading.Tasks"; version = "4.3.0"; sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va"; })
-  (fetchNuGet { pname = "runtime.any.System.Threading.Timer"; version = "4.3.0"; sha256 = "0aw4phrhwqz9m61r79vyfl5la64bjxj8l34qnrcwb28v49fg2086"; })
   (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
   (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
   (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
@@ -117,42 +116,32 @@
   (fetchNuGet { pname = "runtime.linux-x64.runtime.native.System.IO.Ports"; version = "6.0.0"; sha256 = "0ss8fzqnvxps1ybfy70fj4vs2w78mizg4sxdriw8bvcdcfsv0rg2"; })
   (fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
   (fetchNuGet { pname = "runtime.native.System.Data.SqlClient.sni"; version = "4.7.0"; sha256 = "1b84b8rkwwwgvx1hh5r6icd975rl1ry3bc1xb87br2d8k433wgbj"; })
-  (fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; })
   (fetchNuGet { pname = "runtime.native.System.IO.Ports"; version = "6.0.0"; sha256 = "0nl8z42aiqfz0v4h1lx84jz312n1f01rlr2kzd7yfiv7p7i1dl3w"; })
-  (fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
-  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
   (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
   (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
   (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
   (fetchNuGet { pname = "runtime.osx-arm64.runtime.native.System.IO.Ports"; version = "6.0.0"; sha256 = "114swwc99lg4zjzywfcfxvbxynrlh9pvgl1wpihf88jbs2mjicw5"; })
   (fetchNuGet { pname = "runtime.osx-x64.runtime.native.System.IO.Ports"; version = "6.0.0"; sha256 = "1kwip1pj1xaqrlkf5flkk30zn2lg4821g64nfj1glpjjcj49b3wv"; })
-  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
   (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
   (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
   (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
   (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
   (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
-  (fetchNuGet { pname = "runtime.unix.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id"; })
-  (fetchNuGet { pname = "runtime.unix.System.Console"; version = "4.3.0"; sha256 = "1pfpkvc6x2if8zbdzg9rnc5fx51yllprl8zkm5npni2k50lisy80"; })
   (fetchNuGet { pname = "runtime.unix.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5"; })
   (fetchNuGet { pname = "runtime.unix.System.IO.FileSystem"; version = "4.3.0"; sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix"; })
-  (fetchNuGet { pname = "runtime.unix.System.Net.Primitives"; version = "4.3.0"; sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4"; })
-  (fetchNuGet { pname = "runtime.unix.System.Net.Sockets"; version = "4.3.0"; sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12"; })
   (fetchNuGet { pname = "runtime.unix.System.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; })
   (fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; })
   (fetchNuGet { pname = "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni"; version = "4.4.0"; sha256 = "07byf1iyqb7jkb17sp0mmjk46fwq6fx8mlpzywxl7qk09sma44gk"; })
   (fetchNuGet { pname = "runtime.win-x64.runtime.native.System.Data.SqlClient.sni"; version = "4.4.0"; sha256 = "0167s4mpq8bzk3y11pylnynzjr2nc84w96al9x4l8yrf34ccm18y"; })
   (fetchNuGet { pname = "runtime.win-x86.runtime.native.System.Data.SqlClient.sni"; version = "4.4.0"; sha256 = "0k3rkfrlm9jjz56dra61jgxinb8zsqlqzik2sjwz7f8v6z6ddycc"; })
-  (fetchNuGet { pname = "Sarif.Sdk"; version = "4.4.0"; sha256 = "0860mqyzcckvfg1air1pva5v9npzq6d2cn8bds8zqxg06jxq9gvy"; })
-  (fetchNuGet { pname = "SharpYaml"; version = "2.1.0"; sha256 = "05qrppbhfyikv94vnzpb7x1y6yd3znkr8pc0vsmdgca6z6jsy2lq"; })
-  (fetchNuGet { pname = "StreamJsonRpc"; version = "2.17.8"; sha256 = "187zkhi7a81idma7gw072xxsikmvadkxszl48qzffsqzjz8y2wxb"; })
-  (fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
+  (fetchNuGet { pname = "Sarif.Sdk"; version = "4.5.4"; sha256 = "0bw2r6qndqj49x2g90rxyp966mdzik9355jgjan6ijib1rad2z2w"; })
+  (fetchNuGet { pname = "SharpYaml"; version = "2.1.1"; sha256 = "171s60qpqj5r7krkn2zq6fg6f09ixsd5czrw91qm5lg3vpvknar9"; })
+  (fetchNuGet { pname = "StreamJsonRpc"; version = "2.17.11"; sha256 = "1y6pr2lcpqbwian0iiyf9bagwyx0l7dbarazk3cyah1fl3rrjaqd"; })
   (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
+  (fetchNuGet { pname = "System.ClientModel"; version = "1.0.0"; sha256 = "0rhbabgfnxx6qcaxq218h5si4gbq6sn4rgg6cn9bgw6rrzcgnxn8"; })
   (fetchNuGet { pname = "System.CodeDom"; version = "6.0.0"; sha256 = "1i55cxp8ycc03dmxx4n22qi6jkwfl23cgffb95izq7bjar8avxxq"; })
   (fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
   (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
-  (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
-  (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.5.0"; sha256 = "1d5gjn5afnrf461jlxzawcvihz195gayqpcfbv6dd7pxa9ialn06"; })
   (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.6.0"; sha256 = "1pbxzdz3pwqyybzv5ff2b7nrc281bhg7hq34w0fn1w3qfgrbwyw2"; })
   (fetchNuGet { pname = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; })
   (fetchNuGet { pname = "System.Collections.Immutable"; version = "7.0.0"; sha256 = "1n9122cy6v3qhsisc9lzwa1m1j62b8pi2678nsmnlyvfpk0zdagm"; })
@@ -160,20 +149,16 @@
   (fetchNuGet { pname = "System.ComponentModel.Composition.Registration"; version = "6.0.0"; sha256 = "1lv5b42lssrkzbk2fz9phmdgwmqzi2n3yg3rl081q661nij3vv1l"; })
   (fetchNuGet { pname = "System.Configuration.ConfigurationManager"; version = "4.4.0"; sha256 = "1hjgmz47v5229cbzd2pwz2h0dkq78lb2wp9grx8qr72pb5i0dk7v"; })
   (fetchNuGet { pname = "System.Configuration.ConfigurationManager"; version = "6.0.1"; sha256 = "1d6cx49fzycbl2fam8d1j3491sqx6mh7qkb5ddrawr00x74hgzak"; })
-  (fetchNuGet { pname = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
   (fetchNuGet { pname = "System.Data.Odbc"; version = "6.0.1"; sha256 = "12g9fzx6y5gb1bb5lyfxin1d5snw69pdwv481x13m6qhkfhk3lx4"; })
   (fetchNuGet { pname = "System.Data.OleDb"; version = "6.0.0"; sha256 = "0cbf6qw7k13rjrk5zfd158yri023ryaifd6fz5cbqgwdg4vpnvpz"; })
-  (fetchNuGet { pname = "System.Data.SqlClient"; version = "4.8.5"; sha256 = "17g5snnjf4fy67ayqj8vqa4vz916njffahbc365z37l5v0w7g92a"; })
-  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
+  (fetchNuGet { pname = "System.Data.SqlClient"; version = "4.8.6"; sha256 = "153wgkb8gcbqk00zsdj8lw8d4ms60h6k08n57yiyxlyyimrg5ks1"; })
   (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
-  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; })
   (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "5.0.0"; sha256 = "0phd2qizshjvglhzws1jd0cq4m54gscz4ychzr3x6wbgl4vvfrga"; })
   (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "6.0.1"; sha256 = "17h8bkcv0vf9a7gp9ajkd107zid98wql5kzlzwrjm5nm92nk0bsy"; })
   (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "7.0.2"; sha256 = "1h97ikph775gya93qsjjaka87qcygbyh1064rh1hnfcnp5xv0ipi"; })
   (fetchNuGet { pname = "System.Diagnostics.EventLog"; version = "6.0.0"; sha256 = "08y1x2d5w2hnhkh9r1998pjc7r4qp0rmzax062abha85s11chifd"; })
   (fetchNuGet { pname = "System.Diagnostics.PerformanceCounter"; version = "6.0.1"; sha256 = "17p5vwbgrycsrvv9a9ksxbiziy75x4s25dw71fnbw1ci5kpp8yz7"; })
   (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
-  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
   (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
   (fetchNuGet { pname = "System.DirectoryServices"; version = "6.0.1"; sha256 = "17abibzqmr4amxpnbpv198qzdpb5mafn655ayisfc4mmhmyks39a"; })
   (fetchNuGet { pname = "System.DirectoryServices.AccountManagement"; version = "6.0.0"; sha256 = "1hvmasf4zsjpds0q8j8k5n61lr6mqhi37bsz1m65r6fs5kx5jrfn"; })
@@ -183,36 +168,22 @@
   (fetchNuGet { pname = "System.Formats.Asn1"; version = "6.0.0"; sha256 = "1vvr7hs4qzjqb37r0w1mxq7xql2b17la63jwvmgv65s1hj00g8r9"; })
   (fetchNuGet { pname = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
   (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
-  (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
-  (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
   (fetchNuGet { pname = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
   (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
-  (fetchNuGet { pname = "System.IO.Abstractions"; version = "20.0.15"; sha256 = "0lj2y0fpns0dgw9wfsx804qsm9i9g01hrdsws3pmlwzrin73ghyg"; })
-  (fetchNuGet { pname = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
-  (fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.3.0"; sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar"; })
+  (fetchNuGet { pname = "System.IO.Abstractions"; version = "21.0.2"; sha256 = "1mp73hkrxb83bs16458qgf7l3n20ddnfkij1pd603dr8w22j7279"; })
   (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.0.1"; sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; })
-  (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
-  (fetchNuGet { pname = "System.IO.FileSystem.AccessControl"; version = "5.0.0"; sha256 = "0ixl68plva0fsj3byv76bai7vkin86s6wyzr8vcav3szl862blvk"; })
-  (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
   (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
   (fetchNuGet { pname = "System.IO.Packaging"; version = "6.0.0"; sha256 = "112nq0k2jc4vh71rifqqmpjxkaanxfapk7g8947jkfgq3lmfmaac"; })
   (fetchNuGet { pname = "System.IO.Pipelines"; version = "7.0.0"; sha256 = "1ila2vgi1w435j7g2y7ykp2pdbh9c5a02vm85vql89az93b7qvav"; })
   (fetchNuGet { pname = "System.IO.Ports"; version = "6.0.0"; sha256 = "0b0gvn7b2xsy2b0wwa170jzm5cwy3xxwpyqm21m4cbpc0ckri802"; })
   (fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
-  (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
   (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
-  (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
   (fetchNuGet { pname = "System.Management"; version = "6.0.2"; sha256 = "190bxmg0y5dmzh0yv9gzh8k6safdz20gqaifpnl8v7yw3z5wcpgj"; })
   (fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
   (fetchNuGet { pname = "System.Memory"; version = "4.5.5"; sha256 = "08jsfwimcarfzrhlyvjjid61j02irx6xsklf32rv57x2aaikvx0h"; })
   (fetchNuGet { pname = "System.Memory.Data"; version = "1.0.2"; sha256 = "1p8qdg0gzxhjvabryc3xws2629pj8w5zz2iqh86kw8sh0rann9ay"; })
-  (fetchNuGet { pname = "System.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; })
-  (fetchNuGet { pname = "System.Net.NameResolution"; version = "4.3.0"; sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq"; })
-  (fetchNuGet { pname = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
-  (fetchNuGet { pname = "System.Net.Sockets"; version = "4.3.0"; sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"; })
   (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
   (fetchNuGet { pname = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
-  (fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
   (fetchNuGet { pname = "System.Private.ServiceModel"; version = "4.9.0"; sha256 = "117vxa0pfgg6xfdxfpza4296ay7sqiaynyvfbsai43yrkh0lmch1"; })
   (fetchNuGet { pname = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; })
   (fetchNuGet { pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
@@ -220,19 +191,14 @@
   (fetchNuGet { pname = "System.Reflection.Context"; version = "6.0.0"; sha256 = "1vy3b143429amaa0501xjgdszvpdygkrs5rkivnrkl69f67dad5j"; })
   (fetchNuGet { pname = "System.Reflection.DispatchProxy"; version = "4.7.1"; sha256 = "10yh3q2i71gcw7c0dfz9qxql2vlvnqjav1hyf1q9rpbvdbgsabrs"; })
   (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
-  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
   (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
-  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
   (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
-  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
   (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.7.0"; sha256 = "0mbjfajmafkca47zr8v36brvknzks5a7pgb49kfq2d188pyv6iap"; })
   (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
-  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
   (fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
   (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
   (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
   (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
-  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
   (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; })
   (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
   (fetchNuGet { pname = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
@@ -247,27 +213,16 @@
   (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
   (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
   (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
-  (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
-  (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
   (fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; })
+  (fetchNuGet { pname = "System.Security.AccessControl"; version = "4.7.0"; sha256 = "0n0k0w44flkd8j0xw7g3g3vhw7dijfm51f75xkm1qxnbh4y45mpz"; })
   (fetchNuGet { pname = "System.Security.AccessControl"; version = "5.0.0"; sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r"; })
   (fetchNuGet { pname = "System.Security.AccessControl"; version = "6.0.0"; sha256 = "0a678bzj8yxxiffyzy60z2w1nczzpi8v97igr4ip3byd2q89dv58"; })
-  (fetchNuGet { pname = "System.Security.Claims"; version = "4.3.0"; sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
   (fetchNuGet { pname = "System.Security.Cryptography.Pkcs"; version = "6.0.4"; sha256 = "0hh5h38pnxmlrnvs72f2hzzpz4b2caiiv6xf8y7fzdg84r3imvfr"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
   (fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "4.4.0"; sha256 = "1q8ljvqhasyynp94a1d7jknk946m20lkwy2c3wa8zw2pc517fbj6"; })
   (fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "4.7.0"; sha256 = "1s1sh8k10s0apa09c5m2lkavi3ys90y657whg2smb3y8mpkfr5vm"; })
   (fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "6.0.0"; sha256 = "05kd3a8w7658hjxq9vvszxip30a479fjmfq4bq1r95nrsvs4hbss"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
   (fetchNuGet { pname = "System.Security.Cryptography.Xml"; version = "6.0.1"; sha256 = "15d0np1njvy2ywf0qzdqyjk5sjs4zbfxg917jrvlbfwrqpqxb5dj"; })
   (fetchNuGet { pname = "System.Security.Permissions"; version = "6.0.0"; sha256 = "0jsl4xdrkqi11iwmisi1r2f2qn5pbvl79mzq877gndw6ans2zhzw"; })
-  (fetchNuGet { pname = "System.Security.Principal"; version = "4.3.0"; sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf"; })
-  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.3.0"; sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr"; })
   (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.7.0"; sha256 = "1a56ls5a9sr3ya0nr086sdpa9qv0abv31dd6fp27maqa9zclqq5d"; })
   (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
   (fetchNuGet { pname = "System.ServiceModel.Duplex"; version = "4.9.0"; sha256 = "0jwbpcpgxv5zar3raypgvfnwvn4bv3n212cbcgyj7r0xj33c1kqi"; })
@@ -280,21 +235,17 @@
   (fetchNuGet { pname = "System.Speech"; version = "6.0.0"; sha256 = "1g7b077189x9xy4l9yrh2yfnhc83mk6aj7b0v64xdqsrsqv1z16v"; })
   (fetchNuGet { pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
   (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
+  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.3.0"; sha256 = "0lgxg1gn7pg7j0f942pfdc9q7wamzxsgq3ng248ikdasxz0iadkv"; })
   (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "6.0.0"; sha256 = "0gm2kiz2ndm9xyzxgi0jhazgwslcs427waxgfa30m7yqll1kcrww"; })
-  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "8.0.0"; sha256 = "1lgdd78cik4qyvp2fggaa0kzxasw6kc9a6cjqw46siagrm0qnc3y"; })
-  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
   (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
   (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "4.7.2"; sha256 = "0ap286ykazrl42if59bxhzv81safdfrrmfqr3112siwyajx4wih9"; })
-  (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "6.0.0"; sha256 = "06n9ql3fmhpjl32g3492sj181zjml5dlcc5l76xq2h38c4f87sai"; })
   (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "7.0.0"; sha256 = "1151hbyrcf8kyg1jz8k9awpbic98lwz9x129rg7zk1wrs6vjlpxl"; })
   (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "8.0.0"; sha256 = "1wbypkx0m8dgpsaqgyywz4z760xblnwalb241d5qv9kx8m128i11"; })
   (fetchNuGet { pname = "System.Text.Json"; version = "4.7.2"; sha256 = "10xj1pw2dgd42anikvj9qm23ccssrcp7dpznpj4j7xjp1ikhy3y4"; })
-  (fetchNuGet { pname = "System.Text.Json"; version = "6.0.2"; sha256 = "1lz6gx1r4if8sbx6yp9h0mi0g9ffr40x0cg518l0z2aiqgil3fk0"; })
   (fetchNuGet { pname = "System.Text.Json"; version = "7.0.3"; sha256 = "0zjrnc9lshagm6kdb9bdh45dmlnkpwcpyssa896sda93ngbmj8k9"; })
   (fetchNuGet { pname = "System.Text.Json"; version = "8.0.0"; sha256 = "134savxw0sq7s448jnzw17bxcijsi1v38mirpbb6zfxmqlf04msw"; })
   (fetchNuGet { pname = "System.Text.Json"; version = "8.0.2"; sha256 = "1pi1dkypmn34qqspvwfcp1fx78v0nh78dpdyj4rcaa2qch40y15r"; })
   (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
-  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
   (fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
   (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
   (fetchNuGet { pname = "System.Threading.AccessControl"; version = "6.0.0"; sha256 = "1f036x8994yqz13a1cx6vvzd2bqzwy4mchn1pgfsybaw1xa10jk6"; })
@@ -302,17 +253,11 @@
   (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
   (fetchNuGet { pname = "System.Threading.Tasks.Dataflow"; version = "7.0.0"; sha256 = "0ham9l8xrmlq2qwin53n82iz1wanci2h695i3cq83jcw4n28qdr9"; })
   (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
-  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
   (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
-  (fetchNuGet { pname = "System.Threading.ThreadPool"; version = "4.3.0"; sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1"; })
-  (fetchNuGet { pname = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; })
   (fetchNuGet { pname = "System.Web.Services.Description"; version = "4.9.0"; sha256 = "08f9ksj826nz4pfw1bw7xg811x99yyj871nfmvav6yxfkx9faqkh"; })
   (fetchNuGet { pname = "System.Windows.Extensions"; version = "6.0.0"; sha256 = "1wy9pq9vn1bqg5qnv53iqrbx04yzdmjw4x5yyi09y3459vaa1sip"; })
   (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
-  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
   (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
-  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
-  (fetchNuGet { pname = "TestableIO.System.IO.Abstractions"; version = "20.0.15"; sha256 = "14ivs6f91frvnygxg1qb7f7a96a3nazncj2sx4gsv1y22wmwizn4"; })
-  (fetchNuGet { pname = "TestableIO.System.IO.Abstractions.Wrappers"; version = "20.0.15"; sha256 = "0avsf5bwjq4ymjmri917w610xzv6l300fxq3h7xhfprs25crby3k"; })
-  (fetchNuGet { pname = "WindowsAzure.Storage"; version = "9.3.3"; sha256 = "14b0b0nj85yvyn0h8ghr3kj6di2nkbzjxc2q98f1wcr0151xvdfx"; })
+  (fetchNuGet { pname = "TestableIO.System.IO.Abstractions"; version = "21.0.2"; sha256 = "1mc358wlq9y21gzj44af8hxlyjm0ws0i9f5vmsn31dn5wbfh4dy5"; })
+  (fetchNuGet { pname = "TestableIO.System.IO.Abstractions.Wrappers"; version = "21.0.2"; sha256 = "0q3vghssyh6rd7w7n4rjv5ngh5byf1y80i22yw9fx10f4hcsw1az"; })
 ]
diff --git a/pkgs/by-name/bi/bicep/package.nix b/pkgs/by-name/bi/bicep/package.nix
index d91ffd7e5c6c0..52120d8bcffc1 100644
--- a/pkgs/by-name/bi/bicep/package.nix
+++ b/pkgs/by-name/bi/bicep/package.nix
@@ -1,22 +1,27 @@
-{ lib
-, stdenv
-, buildDotnetModule
-, fetchFromGitHub
-, dotnetCorePackages
-, mono
+{
+  lib,
+  stdenv,
+  buildDotnetModule,
+  fetchFromGitHub,
+  dotnetCorePackages,
+  mono,
 }:
 
 buildDotnetModule rec {
   pname = "bicep";
-  version = "0.26.54";
+  version = "0.28.1";
 
   src = fetchFromGitHub {
     owner = "Azure";
     repo = "bicep";
     rev = "v${version}";
-    hash = "sha256-Obu9I2FzuYBD466DE9VZnjTHSRX+qeKqTiIJ2433DQc=";
+    hash = "sha256-9yWfzYrs7LxVmb+AZUI+G0TQQteJP7gpISJGdY0qKAg=";
   };
 
+  postPatch = ''
+    substituteInPlace src/Directory.Build.props --replace-fail "<TreatWarningsAsErrors>true</TreatWarningsAsErrors>" ""
+  '';
+
   projectFile = "src/Bicep.Cli/Bicep.Cli.csproj";
 
   nugetDeps = ./deps.nix;
@@ -34,11 +39,11 @@ buildDotnetModule rec {
   passthru.updateScript = ./updater.sh;
 
   meta = {
-    broken = stdenv.isDarwin;
     description = "Domain Specific Language (DSL) for deploying Azure resources declaratively";
     homepage = "https://github.com/Azure/bicep/";
     changelog = "https://github.com/Azure/bicep/releases/tag/v${version}";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ khaneliman ];
+    mainProgram = "bicep";
   };
 }
diff --git a/pkgs/by-name/bi/bicep/updater.sh b/pkgs/by-name/bi/bicep/updater.sh
index dc45cc1357461..22ab3eced4208 100755
--- a/pkgs/by-name/bi/bicep/updater.sh
+++ b/pkgs/by-name/bi/bicep/updater.sh
@@ -4,14 +4,15 @@
 set -eo pipefail
 cd "$(dirname "${BASH_SOURCE[0]}")"
 
+deps_file="$(realpath "./deps.nix")"
 new_version="$(curl -s "https://api.github.com/repos/azure/bicep/releases?per_page=1" | jq -r '.[0].name')"
 old_version="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./package.nix)"
 
 if [[ "$new_version" == "$old_version" ]]; then
-  echo "Already up to date!"
-  exit 0
+    echo "Already up to date!"
+    exit 0
 fi
 
 cd ../../../..
-update-source-version bicep "${new_version//v}"
-nix-build -A bicep.fetch-deps --no-out-link
+update-source-version bicep "${new_version//v/}"
+"$(nix-build . -A bicep.fetch-deps --no-out-link)" "$deps_file"
diff --git a/pkgs/by-name/bi/biglybt/package.nix b/pkgs/by-name/bi/biglybt/package.nix
index 8e0b98bdc766b..81c2fa31f9c36 100644
--- a/pkgs/by-name/bi/biglybt/package.nix
+++ b/pkgs/by-name/bi/biglybt/package.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     changelog = "https://github.com/BiglySoftware/BiglyBT/releases/tag/v${version}";
-    description = "A BitTorrent client based on the Azureus that supports I2P darknet for privacy";
+    description = "BitTorrent client based on the Azureus that supports I2P darknet for privacy";
     downloadPage = "https://github.com/BiglySoftware/BiglyBT";
     homepage = "https://www.biglybt.com/";
     license = lib.licenses.gpl3Plus;
diff --git a/pkgs/by-name/bi/bilibili/package.nix b/pkgs/by-name/bi/bilibili/package.nix
index e460a9037da45..e410e92f8d9a4 100644
--- a/pkgs/by-name/bi/bilibili/package.nix
+++ b/pkgs/by-name/bi/bilibili/package.nix
@@ -2,22 +2,23 @@
 , stdenv
 , fetchurl
 , electron
+, zstd
 , makeWrapper
 }:
 
 stdenv.mkDerivation rec {
   pname = "bilibili";
-  version = "1.13.2-1";
+  version = "1.13.5-2";
   src = fetchurl {
     url = "https://github.com/msojocs/bilibili-linux/releases/download/v${version}/io.github.msojocs.bilibili_${version}_amd64.deb";
-    hash = "sha256-yqgQNsTD4iT54LJYEbV6dk7OD7KoZvX61XERYQ4MsSA=";
+    hash = "sha256-4p5izaQsax4i2/AnjivDVoY205ITmEx48GhblPOZDjk=";
   };
 
   unpackPhase = ''
     runHook preUnpack
 
     ar x $src
-    tar xf data.tar.xz
+    tar -I ${zstd}/bin/zstd -xvf data.tar.zst
 
     runHook postUnpack
   '';
diff --git a/pkgs/by-name/bi/bitmagnet/package.nix b/pkgs/by-name/bi/bitmagnet/package.nix
index dcdade7632a5a..c2ce321559c01 100644
--- a/pkgs/by-name/bi/bitmagnet/package.nix
+++ b/pkgs/by-name/bi/bitmagnet/package.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "bitmagnet";
-  version = "0.8.0";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "bitmagnet-io";
     repo = "bitmagnet";
     rev = "v${version}";
-    hash = "sha256-P5GfPRIrwLLMBRgoN6d092HiThMghEj1zcaf6BU+IWU=";
+    hash = "sha256-Lyogcuehzn19sX2VZWWlJNI38Jn5IA7mJz0RWkoP390=";
   };
 
-  vendorHash = "sha256-exKQTsyP7LL63WHZ8/WchLh4y0Oj9LC4lxiZTOfWARU=";
+  vendorHash = "sha256-aauXgHPZbSiTW9utuHXzJr7GsWs/2aFiGuukA/B9BRc=";
 
   ldflags = [ "-s" "-w" "-X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=v${version}" ];
 
@@ -24,7 +24,7 @@ buildGoModule rec {
   };
 
   meta = {
-    description = "A self-hosted BitTorrent indexer, DHT crawler, and torrent search engine";
+    description = "Self-hosted BitTorrent indexer, DHT crawler, and torrent search engine";
     longDescription = ''
       A self-hosted BitTorrent indexer, DHT crawler, content classifier and torrent search engine with web UI, GraphQL API and Servarr stack integration.
     '';
diff --git a/pkgs/by-name/bi/bitwarden-cli/package.nix b/pkgs/by-name/bi/bitwarden-cli/package.nix
index 656c1e60ec212..1fc02d5cc1d59 100644
--- a/pkgs/by-name/bi/bitwarden-cli/package.nix
+++ b/pkgs/by-name/bi/bitwarden-cli/package.nix
@@ -10,18 +10,18 @@
 
 buildNpmPackage rec {
   pname = "bitwarden-cli";
-  version = "2024.3.1";
+  version = "2024.4.1";
 
   src = fetchFromGitHub {
     owner = "bitwarden";
     repo = "clients";
     rev = "cli-v${version}";
-    hash = "sha256-JBEP4dNGL4rYKl2qNyhB2y/wZunikaGFltGVXLxgMWI=";
+    hash = "sha256-Dz7EActqXd97kNxEaNINj2O6TLZWEgHHg1lOIa2+Lt4=";
   };
 
   nodejs = nodejs_18;
 
-  npmDepsHash = "sha256-vNudSHIMmF7oXGz+ZymQahyHebs/CBDc6Oy1g0A5nqA=";
+  npmDepsHash = "sha256-fjYez3nSDsG5kYtrun3CkDCz1GNAjNlwPzEL+/9qQRU=";
 
   nativeBuildInputs = [
     python3
@@ -45,7 +45,7 @@ buildNpmPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/bitwarden/clients/releases/tag/${src.rev}";
-    description = "A secure and free password manager for all of your devices";
+    description = "Secure and free password manager for all of your devices";
     homepage = "https://bitwarden.com";
     license = lib.licenses.gpl3Only;
     mainProgram = "bw";
diff --git a/pkgs/by-name/bi/bitwarden-desktop/package.nix b/pkgs/by-name/bi/bitwarden-desktop/package.nix
index af391a5897d12..f10ef5d4178b6 100644
--- a/pkgs/by-name/bi/bitwarden-desktop/package.nix
+++ b/pkgs/by-name/bi/bitwarden-desktop/package.nix
@@ -3,7 +3,7 @@
 , cargo
 , copyDesktopItems
 , dbus
-, electron_28
+, electron_29
 , fetchFromGitHub
 , glib
 , gnome
@@ -14,7 +14,7 @@
 , makeWrapper
 , moreutils
 , napi-rs-cli
-, nodejs_18
+, nodejs_20
 , patchutils_0_4_2
 , pkg-config
 , python3
@@ -24,18 +24,18 @@
 }:
 
 let
-  description = "A secure and free password manager for all of your devices";
+  description = "Secure and free password manager for all of your devices";
   icon = "bitwarden";
-  electron = electron_28;
+  electron = electron_29;
 in buildNpmPackage rec {
   pname = "bitwarden-desktop";
-  version = "2024.4.1";
+  version = "2024.6.0";
 
   src = fetchFromGitHub {
     owner = "bitwarden";
     repo = "clients";
     rev = "desktop-v${version}";
-    hash = "sha256-UzVzo8tq719W2EwUE4NfvUrqhb61fvd60EGkavQmv3Q=";
+    hash = "sha256-qiUUrs23WHE3+KFsWDknuDSA6M3Zwjz9Jdjq6mn5XkE=";
   };
 
   patches = [
@@ -55,12 +55,12 @@ in buildNpmPackage rec {
       | ${moreutils}/bin/sponge apps/desktop/src/package-lock.json
   '';
 
-  nodejs = nodejs_18;
+  nodejs = nodejs_20;
 
   makeCacheWritable = true;
-  npmFlags = [ "--legacy-peer-deps" ];
+  npmFlags = [ "--engine-strict" "--legacy-peer-deps" ];
   npmWorkspace = "apps/desktop";
-  npmDepsHash = "sha256-qkg1psct/ekIXB6QmJX1n/UOKUhYSD9Su7t/b4/4miM=";
+  npmDepsHash = "sha256-Mgd15eFJtWoBqFFCsjmsnlNbcg5NDs1U7DlMkE0hIb8=";
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     name = "${pname}-${version}";
@@ -76,7 +76,7 @@ in buildNpmPackage rec {
       patches;
     patchFlags = [ "-p4" ];
     sourceRoot = "${src.name}/${cargoRoot}";
-    hash = "sha256-lvEJmjzhpMhm+9INYHWpdltinUOI3DMtFN/ddDQrUvo=";
+    hash = "sha256-BL+j2hMwb3QGgS29Y6LjqnKscH+tEXMCOyivilHHwVI=";
   };
   cargoRoot = "apps/desktop/desktop_native";
 
@@ -159,7 +159,7 @@ in buildNpmPackage rec {
     cp -r locales resources{,.pak} $out/opt/Bitwarden
     popd
 
-    makeWrapper '${electron}/bin/electron' "$out/bin/bitwarden" \
+    makeWrapper '${lib.getExe electron}' "$out/bin/bitwarden" \
       --add-flags $out/opt/Bitwarden/resources/app.asar \
       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
       --set-default ELECTRON_IS_DEV 0 \
diff --git a/pkgs/by-name/bk/bk/package.nix b/pkgs/by-name/bk/bk/package.nix
index 9741278bb1804..0fbd1a779dd0c 100644
--- a/pkgs/by-name/bk/bk/package.nix
+++ b/pkgs/by-name/bk/bk/package.nix
@@ -30,7 +30,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/aeosynth/bk";
-    description = "A terminal epub reader written in rust";
+    description = "Terminal epub reader written in rust";
     license = licenses.mit;
     maintainers = with maintainers; [ vuimuich ];
     mainProgram = "bk";
diff --git a/pkgs/by-name/bl/blade-formatter/package-lock.json b/pkgs/by-name/bl/blade-formatter/package-lock.json
new file mode 100644
index 0000000000000..b40f7c09b12c4
--- /dev/null
+++ b/pkgs/by-name/bl/blade-formatter/package-lock.json
@@ -0,0 +1,13221 @@
+{
+  "name": "blade-formatter",
+  "version": "1.41.1",
+  "lockfileVersion": 3,
+  "requires": true,
+  "packages": {
+    "": {
+      "name": "blade-formatter",
+      "version": "1.41.1",
+      "license": "MIT",
+      "dependencies": {
+        "@prettier/plugin-php": "^0.22.2",
+        "@shufo/tailwindcss-class-sorter": "3.0.1",
+        "aigle": "^1.14.1",
+        "ajv": "^8.9.0",
+        "chalk": "^4.1.0",
+        "concat-stream": "^2.0.0",
+        "detect-indent": "^6.0.0",
+        "find-config": "^1.0.0",
+        "glob": "^8.0.1",
+        "html-attribute-sorter": "^0.4.3",
+        "ignore": "^5.1.8",
+        "js-beautify": "^1.14.8",
+        "lodash": "^4.17.19",
+        "php-parser": "3.1.5",
+        "prettier": "^3.2.5",
+        "string-replace-async": "^2.0.0",
+        "tailwindcss": "^3.1.8",
+        "vscode-oniguruma": "1.7.0",
+        "vscode-textmate": "^7.0.1",
+        "xregexp": "^5.0.1",
+        "yargs": "^17.3.1"
+      },
+      "bin": {
+        "blade-formatter": "bin/blade-formatter.cjs"
+      },
+      "devDependencies": {
+        "@babel/core": "^7.6.4",
+        "@babel/plugin-transform-modules-commonjs": "^7.16.5",
+        "@babel/preset-env": "^7.13.12",
+        "@babel/preset-typescript": "^7.16.5",
+        "@types/concat-stream": "^2.0.0",
+        "@types/find-config": "^1.0.1",
+        "@types/fs-extra": "^11.0.0",
+        "@types/glob": "^8.0.0",
+        "@types/js-beautify": "^1.13.3",
+        "@types/lodash": "^4.14.178",
+        "@types/mocha": "^10.0.0",
+        "@types/node": "^20.0.0",
+        "@types/xregexp": "^4.4.0",
+        "@typescript-eslint/eslint-plugin": "^5.8.1",
+        "@typescript-eslint/parser": "^5.8.1",
+        "app-root-path": "^3.0.0",
+        "codecov": "^3.8.3",
+        "cross-env": "^7.0.3",
+        "esbuild": "^0.19.0",
+        "esbuild-node-externals": "^1.4.1",
+        "eslint": "^8.5.0",
+        "eslint-config-airbnb-base": "^15.0.0",
+        "eslint-config-airbnb-typescript": "^17.0.0",
+        "eslint-config-prettier": "^9.0.0",
+        "eslint-import-resolver-typescript": "^3.0.0",
+        "eslint-plugin-import": "^2.25.3",
+        "eslint-plugin-prettier": "^5.0.0",
+        "fs-extra": "^11.0.0",
+        "husky": "^8.0.0",
+        "lint-staged": ">=10",
+        "source-map-loader": "^4.0.0",
+        "ts-loader": "^9.2.6",
+        "ts-migrate": "^0.1.27",
+        "ts-node": "^10.4.0",
+        "typescript": "^5.0.0",
+        "vitest": "^1.2.2"
+      },
+      "engines": {
+        "node": ">= 14.0.0"
+      }
+    },
+    "node_modules/@alloc/quick-lru": {
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
+      "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/@ampproject/remapping": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
+      "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
+      "dev": true,
+      "dependencies": {
+        "@jridgewell/gen-mapping": "^0.3.5",
+        "@jridgewell/trace-mapping": "^0.3.24"
+      },
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
+    "node_modules/@babel/code-frame": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.6.tgz",
+      "integrity": "sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/highlight": "^7.24.6",
+        "picocolors": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/compat-data": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.6.tgz",
+      "integrity": "sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/core": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.6.tgz",
+      "integrity": "sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==",
+      "dev": true,
+      "dependencies": {
+        "@ampproject/remapping": "^2.2.0",
+        "@babel/code-frame": "^7.24.6",
+        "@babel/generator": "^7.24.6",
+        "@babel/helper-compilation-targets": "^7.24.6",
+        "@babel/helper-module-transforms": "^7.24.6",
+        "@babel/helpers": "^7.24.6",
+        "@babel/parser": "^7.24.6",
+        "@babel/template": "^7.24.6",
+        "@babel/traverse": "^7.24.6",
+        "@babel/types": "^7.24.6",
+        "convert-source-map": "^2.0.0",
+        "debug": "^4.1.0",
+        "gensync": "^1.0.0-beta.2",
+        "json5": "^2.2.3",
+        "semver": "^6.3.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/babel"
+      }
+    },
+    "node_modules/@babel/generator": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.6.tgz",
+      "integrity": "sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==",
+      "dev": true,
+      "dependencies": {
+        "@babel/types": "^7.24.6",
+        "@jridgewell/gen-mapping": "^0.3.5",
+        "@jridgewell/trace-mapping": "^0.3.25",
+        "jsesc": "^2.5.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-annotate-as-pure": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.6.tgz",
+      "integrity": "sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==",
+      "dev": true,
+      "dependencies": {
+        "@babel/types": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.6.tgz",
+      "integrity": "sha512-+wnfqc5uHiMYtvRX7qu80Toef8BXeh4HHR1SPeonGb1SKPniNEd4a/nlaJJMv/OIEYvIVavvo0yR7u10Gqz0Iw==",
+      "dev": true,
+      "dependencies": {
+        "@babel/types": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-compilation-targets": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz",
+      "integrity": "sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==",
+      "dev": true,
+      "dependencies": {
+        "@babel/compat-data": "^7.24.6",
+        "@babel/helper-validator-option": "^7.24.6",
+        "browserslist": "^4.22.2",
+        "lru-cache": "^5.1.1",
+        "semver": "^6.3.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-create-class-features-plugin": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.6.tgz",
+      "integrity": "sha512-djsosdPJVZE6Vsw3kk7IPRWethP94WHGOhQTc67SNXE0ZzMhHgALw8iGmYS0TD1bbMM0VDROy43od7/hN6WYcA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-annotate-as-pure": "^7.24.6",
+        "@babel/helper-environment-visitor": "^7.24.6",
+        "@babel/helper-function-name": "^7.24.6",
+        "@babel/helper-member-expression-to-functions": "^7.24.6",
+        "@babel/helper-optimise-call-expression": "^7.24.6",
+        "@babel/helper-replace-supers": "^7.24.6",
+        "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6",
+        "@babel/helper-split-export-declaration": "^7.24.6",
+        "semver": "^6.3.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
+      }
+    },
+    "node_modules/@babel/helper-create-regexp-features-plugin": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.6.tgz",
+      "integrity": "sha512-C875lFBIWWwyv6MHZUG9HmRrlTDgOsLWZfYR0nW69gaKJNe0/Mpxx5r0EID2ZdHQkdUmQo2t0uNckTL08/1BgA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-annotate-as-pure": "^7.24.6",
+        "regexpu-core": "^5.3.1",
+        "semver": "^6.3.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
+      }
+    },
+    "node_modules/@babel/helper-define-polyfill-provider": {
+      "version": "0.6.2",
+      "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz",
+      "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-compilation-targets": "^7.22.6",
+        "@babel/helper-plugin-utils": "^7.22.5",
+        "debug": "^4.1.1",
+        "lodash.debounce": "^4.0.8",
+        "resolve": "^1.14.2"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+      }
+    },
+    "node_modules/@babel/helper-environment-visitor": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.6.tgz",
+      "integrity": "sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==",
+      "dev": true,
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-function-name": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.6.tgz",
+      "integrity": "sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==",
+      "dev": true,
+      "dependencies": {
+        "@babel/template": "^7.24.6",
+        "@babel/types": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-hoist-variables": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.6.tgz",
+      "integrity": "sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/types": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-member-expression-to-functions": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.6.tgz",
+      "integrity": "sha512-OTsCufZTxDUsv2/eDXanw/mUZHWOxSbEmC3pP8cgjcy5rgeVPWWMStnv274DV60JtHxTk0adT0QrCzC4M9NWGg==",
+      "dev": true,
+      "dependencies": {
+        "@babel/types": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-module-imports": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.6.tgz",
+      "integrity": "sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==",
+      "dev": true,
+      "dependencies": {
+        "@babel/types": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-module-transforms": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz",
+      "integrity": "sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-environment-visitor": "^7.24.6",
+        "@babel/helper-module-imports": "^7.24.6",
+        "@babel/helper-simple-access": "^7.24.6",
+        "@babel/helper-split-export-declaration": "^7.24.6",
+        "@babel/helper-validator-identifier": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
+      }
+    },
+    "node_modules/@babel/helper-optimise-call-expression": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.6.tgz",
+      "integrity": "sha512-3SFDJRbx7KuPRl8XDUr8O7GAEB8iGyWPjLKJh/ywP/Iy9WOmEfMrsWbaZpvBu2HSYn4KQygIsz0O7m8y10ncMA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/types": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-plugin-utils": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.6.tgz",
+      "integrity": "sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==",
+      "dev": true,
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-remap-async-to-generator": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.6.tgz",
+      "integrity": "sha512-1Qursq9ArRZPAMOZf/nuzVW8HgJLkTB9y9LfP4lW2MVp4e9WkLJDovfKBxoDcCk6VuzIxyqWHyBoaCtSRP10yg==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-annotate-as-pure": "^7.24.6",
+        "@babel/helper-environment-visitor": "^7.24.6",
+        "@babel/helper-wrap-function": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
+      }
+    },
+    "node_modules/@babel/helper-replace-supers": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.6.tgz",
+      "integrity": "sha512-mRhfPwDqDpba8o1F8ESxsEkJMQkUF8ZIWrAc0FtWhxnjfextxMWxr22RtFizxxSYLjVHDeMgVsRq8BBZR2ikJQ==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-environment-visitor": "^7.24.6",
+        "@babel/helper-member-expression-to-functions": "^7.24.6",
+        "@babel/helper-optimise-call-expression": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
+      }
+    },
+    "node_modules/@babel/helper-simple-access": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz",
+      "integrity": "sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==",
+      "dev": true,
+      "dependencies": {
+        "@babel/types": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.6.tgz",
+      "integrity": "sha512-jhbbkK3IUKc4T43WadP96a27oYti9gEf1LdyGSP2rHGH77kwLwfhO7TgwnWvxxQVmke0ImmCSS47vcuxEMGD3Q==",
+      "dev": true,
+      "dependencies": {
+        "@babel/types": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-split-export-declaration": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.6.tgz",
+      "integrity": "sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==",
+      "dev": true,
+      "dependencies": {
+        "@babel/types": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-string-parser": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz",
+      "integrity": "sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-validator-identifier": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz",
+      "integrity": "sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==",
+      "dev": true,
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-validator-option": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.6.tgz",
+      "integrity": "sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-wrap-function": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.6.tgz",
+      "integrity": "sha512-f1JLrlw/jbiNfxvdrfBgio/gRBk3yTAEJWirpAkiJG2Hb22E7cEYKHWo0dFPTv/niPovzIdPdEDetrv6tC6gPQ==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-function-name": "^7.24.6",
+        "@babel/template": "^7.24.6",
+        "@babel/types": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helpers": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.6.tgz",
+      "integrity": "sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/template": "^7.24.6",
+        "@babel/types": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/highlight": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.6.tgz",
+      "integrity": "sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-validator-identifier": "^7.24.6",
+        "chalk": "^2.4.2",
+        "js-tokens": "^4.0.0",
+        "picocolors": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/highlight/node_modules/ansi-styles": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+      "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+      "dev": true,
+      "dependencies": {
+        "color-convert": "^1.9.0"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/@babel/highlight/node_modules/chalk": {
+      "version": "2.4.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+      "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+      "dev": true,
+      "dependencies": {
+        "ansi-styles": "^3.2.1",
+        "escape-string-regexp": "^1.0.5",
+        "supports-color": "^5.3.0"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/@babel/highlight/node_modules/color-convert": {
+      "version": "1.9.3",
+      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+      "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+      "dev": true,
+      "dependencies": {
+        "color-name": "1.1.3"
+      }
+    },
+    "node_modules/@babel/highlight/node_modules/color-name": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+      "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+      "dev": true
+    },
+    "node_modules/@babel/highlight/node_modules/escape-string-regexp": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+      "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.8.0"
+      }
+    },
+    "node_modules/@babel/highlight/node_modules/has-flag": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+      "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/@babel/highlight/node_modules/supports-color": {
+      "version": "5.5.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+      "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+      "dev": true,
+      "dependencies": {
+        "has-flag": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/@babel/parser": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.6.tgz",
+      "integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==",
+      "dev": true,
+      "bin": {
+        "parser": "bin/babel-parser.js"
+      },
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
+    "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.6.tgz",
+      "integrity": "sha512-bYndrJ6Ph6Ar+GaB5VAc0JPoP80bQCm4qon6JEzXfRl5QZyQ8Ur1K6k7htxWmPA5z+k7JQvaMUrtXlqclWYzKw==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-environment-visitor": "^7.24.6",
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
+      }
+    },
+    "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.6.tgz",
+      "integrity": "sha512-iVuhb6poq5ikqRq2XWU6OQ+R5o9wF+r/or9CeUyovgptz0UlnK4/seOQ1Istu/XybYjAhQv1FRSSfHHufIku5Q==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
+      }
+    },
+    "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.6.tgz",
+      "integrity": "sha512-c8TER5xMDYzzFcGqOEp9l4hvB7dcbhcGjcLVwxWfe4P5DOafdwjsBJZKsmv+o3aXh7NhopvayQIovHrh2zSRUQ==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6",
+        "@babel/plugin-transform-optional-chaining": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.13.0"
+      }
+    },
+    "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.6.tgz",
+      "integrity": "sha512-z8zEjYmwBUHN/pCF3NuWBhHQjJCrd33qAi8MgANfMrAvn72k2cImT8VjK9LJFu4ysOLJqhfkYYb3MvwANRUNZQ==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-environment-visitor": "^7.24.6",
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
+      }
+    },
+    "node_modules/@babel/plugin-proposal-class-properties": {
+      "version": "7.18.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
+      "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
+      "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-create-class-features-plugin": "^7.18.6",
+        "@babel/helper-plugin-utils": "^7.18.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
+      "version": "7.18.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
+      "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
+      "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.18.6",
+        "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-proposal-object-rest-spread": {
+      "version": "7.20.7",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz",
+      "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==",
+      "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.",
+      "dev": true,
+      "dependencies": {
+        "@babel/compat-data": "^7.20.5",
+        "@babel/helper-compilation-targets": "^7.20.7",
+        "@babel/helper-plugin-utils": "^7.20.2",
+        "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+        "@babel/plugin-transform-parameters": "^7.20.7"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-proposal-optional-chaining": {
+      "version": "7.21.0",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz",
+      "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==",
+      "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.20.2",
+        "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0",
+        "@babel/plugin-syntax-optional-chaining": "^7.8.3"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-proposal-private-property-in-object": {
+      "version": "7.21.0-placeholder-for-preset-env.2",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
+      "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
+      "dev": true,
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-syntax-async-generators": {
+      "version": "7.8.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
+      "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.8.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-syntax-class-properties": {
+      "version": "7.12.13",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
+      "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.12.13"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-syntax-class-static-block": {
+      "version": "7.14.5",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
+      "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.14.5"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-syntax-dynamic-import": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
+      "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.8.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-syntax-export-namespace-from": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
+      "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.8.3"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-syntax-flow": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.6.tgz",
+      "integrity": "sha512-gNkksSdV8RbsCoHF9sjVYrHfYACMl/8U32UfUhJ9+84/ASXw8dlx+eHyyF0m6ncQJ9IBSxfuCkB36GJqYdXTOA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-syntax-import-assertions": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.6.tgz",
+      "integrity": "sha512-BE6o2BogJKJImTmGpkmOic4V0hlRRxVtzqxiSPa8TIFxyhi4EFjHm08nq1M4STK4RytuLMgnSz0/wfflvGFNOg==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-syntax-import-attributes": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.6.tgz",
+      "integrity": "sha512-D+CfsVZousPXIdudSII7RGy52+dYRtbyKAZcvtQKq/NpsivyMVduepzcLqG5pMBugtMdedxdC8Ramdpcne9ZWQ==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-syntax-import-meta": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
+      "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.10.4"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-syntax-json-strings": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
+      "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.8.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-syntax-jsx": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.6.tgz",
+      "integrity": "sha512-lWfvAIFNWMlCsU0DRUun2GpFwZdGTukLaHJqRh1JRb80NdAP5Sb1HDHB5X9P9OtgZHQl089UzQkpYlBq2VTPRw==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
+      "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.10.4"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
+      "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.8.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-syntax-numeric-separator": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
+      "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.10.4"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-syntax-object-rest-spread": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
+      "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.8.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-syntax-optional-catch-binding": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
+      "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.8.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-syntax-optional-chaining": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
+      "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.8.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-syntax-private-property-in-object": {
+      "version": "7.14.5",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
+      "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.14.5"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-syntax-top-level-await": {
+      "version": "7.14.5",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
+      "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.14.5"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-syntax-typescript": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.6.tgz",
+      "integrity": "sha512-TzCtxGgVTEJWWwcYwQhCIQ6WaKlo80/B+Onsk4RRCcYqpYGFcG9etPW94VToGte5AAcxRrhjPUFvUS3Y2qKi4A==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-syntax-unicode-sets-regex": {
+      "version": "7.18.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
+      "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+        "@babel/helper-plugin-utils": "^7.18.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-arrow-functions": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.6.tgz",
+      "integrity": "sha512-jSSSDt4ZidNMggcLx8SaKsbGNEfIl0PHx/4mFEulorE7bpYLbN0d3pDW3eJ7Y5Z3yPhy3L3NaPCYyTUY7TuugQ==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-async-generator-functions": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.6.tgz",
+      "integrity": "sha512-VEP2o4iR2DqQU6KPgizTW2mnMx6BG5b5O9iQdrW9HesLkv8GIA8x2daXBQxw1MrsIkFQGA/iJ204CKoQ8UcnAA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-environment-visitor": "^7.24.6",
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "@babel/helper-remap-async-to-generator": "^7.24.6",
+        "@babel/plugin-syntax-async-generators": "^7.8.4"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-async-to-generator": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.6.tgz",
+      "integrity": "sha512-NTBA2SioI3OsHeIn6sQmhvXleSl9T70YY/hostQLveWs0ic+qvbA3fa0kwAwQ0OA/XGaAerNZRQGJyRfhbJK4g==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-module-imports": "^7.24.6",
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "@babel/helper-remap-async-to-generator": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-block-scoped-functions": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.6.tgz",
+      "integrity": "sha512-XNW7jolYHW9CwORrZgA/97tL/k05qe/HL0z/qqJq1mdWhwwCM6D4BJBV7wAz9HgFziN5dTOG31znkVIzwxv+vw==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-block-scoping": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.6.tgz",
+      "integrity": "sha512-S/t1Xh4ehW7sGA7c1j/hiOBLnEYCp/c2sEG4ZkL8kI1xX9tW2pqJTCHKtdhe/jHKt8nG0pFCrDHUXd4DvjHS9w==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-class-properties": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.6.tgz",
+      "integrity": "sha512-j6dZ0Z2Z2slWLR3kt9aOmSIrBvnntWjMDN/TVcMPxhXMLmJVqX605CBRlcGI4b32GMbfifTEsdEjGjiE+j/c3A==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-create-class-features-plugin": "^7.24.6",
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-class-static-block": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.6.tgz",
+      "integrity": "sha512-1QSRfoPI9RoLRa8Mnakc6v3e0gJxiZQTYrMfLn+mD0sz5+ndSzwymp2hDcYJTyT0MOn0yuWzj8phlIvO72gTHA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-create-class-features-plugin": "^7.24.6",
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "@babel/plugin-syntax-class-static-block": "^7.14.5"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.12.0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-classes": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.6.tgz",
+      "integrity": "sha512-+fN+NO2gh8JtRmDSOB6gaCVo36ha8kfCW1nMq2Gc0DABln0VcHN4PrALDvF5/diLzIRKptC7z/d7Lp64zk92Fg==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-annotate-as-pure": "^7.24.6",
+        "@babel/helper-compilation-targets": "^7.24.6",
+        "@babel/helper-environment-visitor": "^7.24.6",
+        "@babel/helper-function-name": "^7.24.6",
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "@babel/helper-replace-supers": "^7.24.6",
+        "@babel/helper-split-export-declaration": "^7.24.6",
+        "globals": "^11.1.0"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-computed-properties": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.6.tgz",
+      "integrity": "sha512-cRzPobcfRP0ZtuIEkA8QzghoUpSB3X3qSH5W2+FzG+VjWbJXExtx0nbRqwumdBN1x/ot2SlTNQLfBCnPdzp6kg==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "@babel/template": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-destructuring": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.6.tgz",
+      "integrity": "sha512-YLW6AE5LQpk5npNXL7i/O+U9CE4XsBCuRPgyjl1EICZYKmcitV+ayuuUGMJm2lC1WWjXYszeTnIxF/dq/GhIZQ==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-dotall-regex": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.6.tgz",
+      "integrity": "sha512-rCXPnSEKvkm/EjzOtLoGvKseK+dS4kZwx1HexO3BtRtgL0fQ34awHn34aeSHuXtZY2F8a1X8xqBBPRtOxDVmcA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-create-regexp-features-plugin": "^7.24.6",
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-duplicate-keys": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.6.tgz",
+      "integrity": "sha512-/8Odwp/aVkZwPFJMllSbawhDAO3UJi65foB00HYnK/uXvvCPm0TAXSByjz1mpRmp0q6oX2SIxpkUOpPFHk7FLA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-dynamic-import": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.6.tgz",
+      "integrity": "sha512-vpq8SSLRTBLOHUZHSnBqVo0AKX3PBaoPs2vVzYVWslXDTDIpwAcCDtfhUcHSQQoYoUvcFPTdC8TZYXu9ZnLT/w==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "@babel/plugin-syntax-dynamic-import": "^7.8.3"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-exponentiation-operator": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.6.tgz",
+      "integrity": "sha512-EemYpHtmz0lHE7hxxxYEuTYOOBZ43WkDgZ4arQ4r+VX9QHuNZC+WH3wUWmRNvR8ECpTRne29aZV6XO22qpOtdA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.6",
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-export-namespace-from": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.6.tgz",
+      "integrity": "sha512-inXaTM1SVrIxCkIJ5gqWiozHfFMStuGbGJAxZFBoHcRRdDP0ySLb3jH6JOwmfiinPwyMZqMBX+7NBDCO4z0NSA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-flow-strip-types": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.24.6.tgz",
+      "integrity": "sha512-1l8b24NoCpaQ13Vi6FtLG1nv6kNoi8PWvQb1AYO7GHZDpFfBYc3lbXArx1lP2KRt8b4pej1eWc/zrRmsQTfOdQ==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "@babel/plugin-syntax-flow": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-for-of": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.6.tgz",
+      "integrity": "sha512-n3Sf72TnqK4nw/jziSqEl1qaWPbCRw2CziHH+jdRYvw4J6yeCzsj4jdw8hIntOEeDGTmHVe2w4MVL44PN0GMzg==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-function-name": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.6.tgz",
+      "integrity": "sha512-sOajCu6V0P1KPljWHKiDq6ymgqB+vfo3isUS4McqW1DZtvSVU2v/wuMhmRmkg3sFoq6GMaUUf8W4WtoSLkOV/Q==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-compilation-targets": "^7.24.6",
+        "@babel/helper-function-name": "^7.24.6",
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-json-strings": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.6.tgz",
+      "integrity": "sha512-Uvgd9p2gUnzYJxVdBLcU0KurF8aVhkmVyMKW4MIY1/BByvs3EBpv45q01o7pRTVmTvtQq5zDlytP3dcUgm7v9w==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "@babel/plugin-syntax-json-strings": "^7.8.3"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-literals": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.6.tgz",
+      "integrity": "sha512-f2wHfR2HF6yMj+y+/y07+SLqnOSwRp8KYLpQKOzS58XLVlULhXbiYcygfXQxJlMbhII9+yXDwOUFLf60/TL5tw==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-logical-assignment-operators": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.6.tgz",
+      "integrity": "sha512-EKaWvnezBCMkRIHxMJSIIylzhqK09YpiJtDbr2wsXTwnO0TxyjMUkaw4RlFIZMIS0iDj0KyIg7H7XCguHu/YDA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-member-expression-literals": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.6.tgz",
+      "integrity": "sha512-9g8iV146szUo5GWgXpRbq/GALTnY+WnNuRTuRHWWFfWGbP9ukRL0aO/jpu9dmOPikclkxnNsjY8/gsWl6bmZJQ==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-modules-amd": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.6.tgz",
+      "integrity": "sha512-eAGogjZgcwqAxhyFgqghvoHRr+EYRQPFjUXrTYKBRb5qPnAVxOOglaxc4/byHqjvq/bqO2F3/CGwTHsgKJYHhQ==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-module-transforms": "^7.24.6",
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-modules-commonjs": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.6.tgz",
+      "integrity": "sha512-JEV8l3MHdmmdb7S7Cmx6rbNEjRCgTQMZxllveHO0mx6uiclB0NflCawlQQ6+o5ZrwjUBYPzHm2XoK4wqGVUFuw==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-module-transforms": "^7.24.6",
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "@babel/helper-simple-access": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-modules-systemjs": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.6.tgz",
+      "integrity": "sha512-xg1Z0J5JVYxtpX954XqaaAT6NpAY6LtZXvYFCJmGFJWwtlz2EmJoR8LycFRGNE8dBKizGWkGQZGegtkV8y8s+w==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-hoist-variables": "^7.24.6",
+        "@babel/helper-module-transforms": "^7.24.6",
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "@babel/helper-validator-identifier": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-modules-umd": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.6.tgz",
+      "integrity": "sha512-esRCC/KsSEUvrSjv5rFYnjZI6qv4R1e/iHQrqwbZIoRJqk7xCvEUiN7L1XrmW5QSmQe3n1XD88wbgDTWLbVSyg==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-module-transforms": "^7.24.6",
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.6.tgz",
+      "integrity": "sha512-6DneiCiu91wm3YiNIGDWZsl6GfTTbspuj/toTEqLh9d4cx50UIzSdg+T96p8DuT7aJOBRhFyaE9ZvTHkXrXr6Q==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-create-regexp-features-plugin": "^7.24.6",
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-new-target": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.6.tgz",
+      "integrity": "sha512-f8liz9JG2Va8A4J5ZBuaSdwfPqN6axfWRK+y66fjKYbwf9VBLuq4WxtinhJhvp1w6lamKUwLG0slK2RxqFgvHA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.6.tgz",
+      "integrity": "sha512-+QlAiZBMsBK5NqrBWFXCYeXyiU1y7BQ/OYaiPAcQJMomn5Tyg+r5WuVtyEuvTbpV7L25ZSLfE+2E9ywj4FD48A==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-numeric-separator": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.6.tgz",
+      "integrity": "sha512-6voawq8T25Jvvnc4/rXcWZQKKxUNZcKMS8ZNrjxQqoRFernJJKjE3s18Qo6VFaatG5aiX5JV1oPD7DbJhn0a4Q==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-object-rest-spread": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.6.tgz",
+      "integrity": "sha512-OKmi5wiMoRW5Smttne7BwHM8s/fb5JFs+bVGNSeHWzwZkWXWValR1M30jyXo1s/RaqgwwhEC62u4rFH/FBcBPg==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-compilation-targets": "^7.24.6",
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+        "@babel/plugin-transform-parameters": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-object-super": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.6.tgz",
+      "integrity": "sha512-N/C76ihFKlZgKfdkEYKtaRUtXZAgK7sOY4h2qrbVbVTXPrKGIi8aww5WGe/+Wmg8onn8sr2ut6FXlsbu/j6JHg==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "@babel/helper-replace-supers": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-optional-catch-binding": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.6.tgz",
+      "integrity": "sha512-L5pZ+b3O1mSzJ71HmxSCmTVd03VOT2GXOigug6vDYJzE5awLI7P1g0wFcdmGuwSDSrQ0L2rDOe/hHws8J1rv3w==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-optional-chaining": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.6.tgz",
+      "integrity": "sha512-cHbqF6l1QP11OkYTYQ+hhVx1E017O5ZcSPXk9oODpqhcAD1htsWG2NpHrrhthEO2qZomLK0FXS+u7NfrkF5aOQ==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6",
+        "@babel/plugin-syntax-optional-chaining": "^7.8.3"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-parameters": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.6.tgz",
+      "integrity": "sha512-ST7guE8vLV+vI70wmAxuZpIKzVjvFX9Qs8bl5w6tN/6gOypPWUmMQL2p7LJz5E63vEGrDhAiYetniJFyBH1RkA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-private-methods": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.6.tgz",
+      "integrity": "sha512-T9LtDI0BgwXOzyXrvgLTT8DFjCC/XgWLjflczTLXyvxbnSR/gpv0hbmzlHE/kmh9nOvlygbamLKRo6Op4yB6aw==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-create-class-features-plugin": "^7.24.6",
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-private-property-in-object": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.6.tgz",
+      "integrity": "sha512-Qu/ypFxCY5NkAnEhCF86Mvg3NSabKsh/TPpBVswEdkGl7+FbsYHy1ziRqJpwGH4thBdQHh8zx+z7vMYmcJ7iaQ==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-annotate-as-pure": "^7.24.6",
+        "@babel/helper-create-class-features-plugin": "^7.24.6",
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-property-literals": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.6.tgz",
+      "integrity": "sha512-oARaglxhRsN18OYsnPTpb8TcKQWDYNsPNmTnx5++WOAsUJ0cSC/FZVlIJCKvPbU4yn/UXsS0551CFKJhN0CaMw==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-regenerator": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.6.tgz",
+      "integrity": "sha512-SMDxO95I8WXRtXhTAc8t/NFQUT7VYbIWwJCJgEli9ml4MhqUMh4S6hxgH6SmAC3eAQNWCDJFxcFeEt9w2sDdXg==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "regenerator-transform": "^0.15.2"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-reserved-words": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.6.tgz",
+      "integrity": "sha512-DcrgFXRRlK64dGE0ZFBPD5egM2uM8mgfrvTMOSB2yKzOtjpGegVYkzh3s1zZg1bBck3nkXiaOamJUqK3Syk+4A==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-shorthand-properties": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.6.tgz",
+      "integrity": "sha512-xnEUvHSMr9eOWS5Al2YPfc32ten7CXdH7Zwyyk7IqITg4nX61oHj+GxpNvl+y5JHjfN3KXE2IV55wAWowBYMVw==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-spread": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.6.tgz",
+      "integrity": "sha512-h/2j7oIUDjS+ULsIrNZ6/TKG97FgmEk1PXryk/HQq6op4XUUUwif2f69fJrzK0wza2zjCS1xhXmouACaWV5uPA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "@babel/helper-skip-transparent-expression-wrappers": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-sticky-regex": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.6.tgz",
+      "integrity": "sha512-fN8OcTLfGmYv7FnDrsjodYBo1DhPL3Pze/9mIIE2MGCT1KgADYIOD7rEglpLHZj8PZlC/JFX5WcD+85FLAQusw==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-template-literals": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.6.tgz",
+      "integrity": "sha512-BJbEqJIcKwrqUP+KfUIkxz3q8VzXe2R8Wv8TaNgO1cx+nNavxn/2+H8kp9tgFSOL6wYPPEgFvU6IKS4qoGqhmg==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-typeof-symbol": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.6.tgz",
+      "integrity": "sha512-IshCXQ+G9JIFJI7bUpxTE/oA2lgVLAIK8q1KdJNoPXOpvRaNjMySGuvLfBw/Xi2/1lLo953uE8hyYSDW3TSYig==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-typescript": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.6.tgz",
+      "integrity": "sha512-H0i+hDLmaYYSt6KU9cZE0gb3Cbssa/oxWis7PX4ofQzbvsfix9Lbh8SRk7LCPDlLWJHUiFeHU0qRRpF/4Zv7mQ==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-annotate-as-pure": "^7.24.6",
+        "@babel/helper-create-class-features-plugin": "^7.24.6",
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "@babel/plugin-syntax-typescript": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-unicode-escapes": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.6.tgz",
+      "integrity": "sha512-bKl3xxcPbkQQo5eX9LjjDpU2xYHeEeNQbOhj0iPvetSzA+Tu9q/o5lujF4Sek60CM6MgYvOS/DJuwGbiEYAnLw==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-unicode-property-regex": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.6.tgz",
+      "integrity": "sha512-8EIgImzVUxy15cZiPii9GvLZwsy7Vxc+8meSlR3cXFmBIl5W5Tn9LGBf7CDKkHj4uVfNXCJB8RsVfnmY61iedA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-create-regexp-features-plugin": "^7.24.6",
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-unicode-regex": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.6.tgz",
+      "integrity": "sha512-pssN6ExsvxaKU638qcWb81RrvvgZom3jDgU/r5xFZ7TONkZGFf4MhI2ltMb8OcQWhHyxgIavEU+hgqtbKOmsPA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-create-regexp-features-plugin": "^7.24.6",
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/plugin-transform-unicode-sets-regex": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.6.tgz",
+      "integrity": "sha512-quiMsb28oXWIDK0gXLALOJRXLgICLiulqdZGOaPPd0vRT7fQp74NtdADAVu+D8s00C+0Xs0MxVP0VKF/sZEUgw==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-create-regexp-features-plugin": "^7.24.6",
+        "@babel/helper-plugin-utils": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0"
+      }
+    },
+    "node_modules/@babel/preset-env": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.6.tgz",
+      "integrity": "sha512-CrxEAvN7VxfjOG8JNF2Y/eMqMJbZPZ185amwGUBp8D9USK90xQmv7dLdFSa+VbD7fdIqcy/Mfv7WtzG8+/qxKg==",
+      "dev": true,
+      "dependencies": {
+        "@babel/compat-data": "^7.24.6",
+        "@babel/helper-compilation-targets": "^7.24.6",
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "@babel/helper-validator-option": "^7.24.6",
+        "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.6",
+        "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.6",
+        "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.6",
+        "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.6",
+        "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
+        "@babel/plugin-syntax-async-generators": "^7.8.4",
+        "@babel/plugin-syntax-class-properties": "^7.12.13",
+        "@babel/plugin-syntax-class-static-block": "^7.14.5",
+        "@babel/plugin-syntax-dynamic-import": "^7.8.3",
+        "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
+        "@babel/plugin-syntax-import-assertions": "^7.24.6",
+        "@babel/plugin-syntax-import-attributes": "^7.24.6",
+        "@babel/plugin-syntax-import-meta": "^7.10.4",
+        "@babel/plugin-syntax-json-strings": "^7.8.3",
+        "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
+        "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
+        "@babel/plugin-syntax-numeric-separator": "^7.10.4",
+        "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+        "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
+        "@babel/plugin-syntax-optional-chaining": "^7.8.3",
+        "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
+        "@babel/plugin-syntax-top-level-await": "^7.14.5",
+        "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
+        "@babel/plugin-transform-arrow-functions": "^7.24.6",
+        "@babel/plugin-transform-async-generator-functions": "^7.24.6",
+        "@babel/plugin-transform-async-to-generator": "^7.24.6",
+        "@babel/plugin-transform-block-scoped-functions": "^7.24.6",
+        "@babel/plugin-transform-block-scoping": "^7.24.6",
+        "@babel/plugin-transform-class-properties": "^7.24.6",
+        "@babel/plugin-transform-class-static-block": "^7.24.6",
+        "@babel/plugin-transform-classes": "^7.24.6",
+        "@babel/plugin-transform-computed-properties": "^7.24.6",
+        "@babel/plugin-transform-destructuring": "^7.24.6",
+        "@babel/plugin-transform-dotall-regex": "^7.24.6",
+        "@babel/plugin-transform-duplicate-keys": "^7.24.6",
+        "@babel/plugin-transform-dynamic-import": "^7.24.6",
+        "@babel/plugin-transform-exponentiation-operator": "^7.24.6",
+        "@babel/plugin-transform-export-namespace-from": "^7.24.6",
+        "@babel/plugin-transform-for-of": "^7.24.6",
+        "@babel/plugin-transform-function-name": "^7.24.6",
+        "@babel/plugin-transform-json-strings": "^7.24.6",
+        "@babel/plugin-transform-literals": "^7.24.6",
+        "@babel/plugin-transform-logical-assignment-operators": "^7.24.6",
+        "@babel/plugin-transform-member-expression-literals": "^7.24.6",
+        "@babel/plugin-transform-modules-amd": "^7.24.6",
+        "@babel/plugin-transform-modules-commonjs": "^7.24.6",
+        "@babel/plugin-transform-modules-systemjs": "^7.24.6",
+        "@babel/plugin-transform-modules-umd": "^7.24.6",
+        "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.6",
+        "@babel/plugin-transform-new-target": "^7.24.6",
+        "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.6",
+        "@babel/plugin-transform-numeric-separator": "^7.24.6",
+        "@babel/plugin-transform-object-rest-spread": "^7.24.6",
+        "@babel/plugin-transform-object-super": "^7.24.6",
+        "@babel/plugin-transform-optional-catch-binding": "^7.24.6",
+        "@babel/plugin-transform-optional-chaining": "^7.24.6",
+        "@babel/plugin-transform-parameters": "^7.24.6",
+        "@babel/plugin-transform-private-methods": "^7.24.6",
+        "@babel/plugin-transform-private-property-in-object": "^7.24.6",
+        "@babel/plugin-transform-property-literals": "^7.24.6",
+        "@babel/plugin-transform-regenerator": "^7.24.6",
+        "@babel/plugin-transform-reserved-words": "^7.24.6",
+        "@babel/plugin-transform-shorthand-properties": "^7.24.6",
+        "@babel/plugin-transform-spread": "^7.24.6",
+        "@babel/plugin-transform-sticky-regex": "^7.24.6",
+        "@babel/plugin-transform-template-literals": "^7.24.6",
+        "@babel/plugin-transform-typeof-symbol": "^7.24.6",
+        "@babel/plugin-transform-unicode-escapes": "^7.24.6",
+        "@babel/plugin-transform-unicode-property-regex": "^7.24.6",
+        "@babel/plugin-transform-unicode-regex": "^7.24.6",
+        "@babel/plugin-transform-unicode-sets-regex": "^7.24.6",
+        "@babel/preset-modules": "0.1.6-no-external-plugins",
+        "babel-plugin-polyfill-corejs2": "^0.4.10",
+        "babel-plugin-polyfill-corejs3": "^0.10.4",
+        "babel-plugin-polyfill-regenerator": "^0.6.1",
+        "core-js-compat": "^3.31.0",
+        "semver": "^6.3.1"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/preset-flow": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.24.6.tgz",
+      "integrity": "sha512-huoe0T1Qs9fQhMWbmqE/NHUeZbqmHDsN6n/jYvPcUUHfuKiPV32C9i8tDhMbQ1DEKTjbBP7Rjm3nSLwlB2X05g==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "@babel/helper-validator-option": "^7.24.6",
+        "@babel/plugin-transform-flow-strip-types": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/preset-modules": {
+      "version": "0.1.6-no-external-plugins",
+      "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
+      "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.0.0",
+        "@babel/types": "^7.4.4",
+        "esutils": "^2.0.2"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
+      }
+    },
+    "node_modules/@babel/preset-typescript": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.6.tgz",
+      "integrity": "sha512-U10aHPDnokCFRXgyT/MaIRTivUu2K/mu0vJlwRS9LxJmJet+PFQNKpggPyFCUtC6zWSBPjvxjnpNkAn3Uw2m5w==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-plugin-utils": "^7.24.6",
+        "@babel/helper-validator-option": "^7.24.6",
+        "@babel/plugin-syntax-jsx": "^7.24.6",
+        "@babel/plugin-transform-modules-commonjs": "^7.24.6",
+        "@babel/plugin-transform-typescript": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/register": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.24.6.tgz",
+      "integrity": "sha512-WSuFCc2wCqMeXkz/i3yfAAsxwWflEgbVkZzivgAmXl/MxrXeoYFZOOPllbC8R8WTF7u61wSRQtDVZ1879cdu6w==",
+      "dev": true,
+      "dependencies": {
+        "clone-deep": "^4.0.1",
+        "find-cache-dir": "^2.0.0",
+        "make-dir": "^2.1.0",
+        "pirates": "^4.0.6",
+        "source-map-support": "^0.5.16"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/@babel/regjsgen": {
+      "version": "0.8.0",
+      "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz",
+      "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==",
+      "dev": true
+    },
+    "node_modules/@babel/runtime": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.6.tgz",
+      "integrity": "sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==",
+      "dev": true,
+      "dependencies": {
+        "regenerator-runtime": "^0.14.0"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/runtime-corejs3": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.24.6.tgz",
+      "integrity": "sha512-tbC3o8uHK9xMgMsvUm9qGqxVpbv6yborMBLbDteHIc7JDNHsTV0vDMQ5j1O1NXvO+BDELtL9KgoWYaUVIVGt8w==",
+      "dependencies": {
+        "core-js-pure": "^3.30.2",
+        "regenerator-runtime": "^0.14.0"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/template": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.6.tgz",
+      "integrity": "sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==",
+      "dev": true,
+      "dependencies": {
+        "@babel/code-frame": "^7.24.6",
+        "@babel/parser": "^7.24.6",
+        "@babel/types": "^7.24.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/traverse": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.6.tgz",
+      "integrity": "sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==",
+      "dev": true,
+      "dependencies": {
+        "@babel/code-frame": "^7.24.6",
+        "@babel/generator": "^7.24.6",
+        "@babel/helper-environment-visitor": "^7.24.6",
+        "@babel/helper-function-name": "^7.24.6",
+        "@babel/helper-hoist-variables": "^7.24.6",
+        "@babel/helper-split-export-declaration": "^7.24.6",
+        "@babel/parser": "^7.24.6",
+        "@babel/types": "^7.24.6",
+        "debug": "^4.3.1",
+        "globals": "^11.1.0"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/types": {
+      "version": "7.24.6",
+      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.6.tgz",
+      "integrity": "sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-string-parser": "^7.24.6",
+        "@babel/helper-validator-identifier": "^7.24.6",
+        "to-fast-properties": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@cspotcode/source-map-support": {
+      "version": "0.8.1",
+      "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
+      "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
+      "devOptional": true,
+      "dependencies": {
+        "@jridgewell/trace-mapping": "0.3.9"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": {
+      "version": "0.3.9",
+      "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
+      "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
+      "devOptional": true,
+      "dependencies": {
+        "@jridgewell/resolve-uri": "^3.0.3",
+        "@jridgewell/sourcemap-codec": "^1.4.10"
+      }
+    },
+    "node_modules/@esbuild/aix-ppc64": {
+      "version": "0.19.12",
+      "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz",
+      "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==",
+      "cpu": [
+        "ppc64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "aix"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/android-arm": {
+      "version": "0.19.12",
+      "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz",
+      "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/android-arm64": {
+      "version": "0.19.12",
+      "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz",
+      "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/android-x64": {
+      "version": "0.19.12",
+      "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz",
+      "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/darwin-arm64": {
+      "version": "0.19.12",
+      "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz",
+      "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/darwin-x64": {
+      "version": "0.19.12",
+      "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz",
+      "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/freebsd-arm64": {
+      "version": "0.19.12",
+      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz",
+      "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "freebsd"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/freebsd-x64": {
+      "version": "0.19.12",
+      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz",
+      "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "freebsd"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-arm": {
+      "version": "0.19.12",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz",
+      "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-arm64": {
+      "version": "0.19.12",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz",
+      "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-ia32": {
+      "version": "0.19.12",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz",
+      "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==",
+      "cpu": [
+        "ia32"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-loong64": {
+      "version": "0.19.12",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz",
+      "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==",
+      "cpu": [
+        "loong64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-mips64el": {
+      "version": "0.19.12",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz",
+      "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==",
+      "cpu": [
+        "mips64el"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-ppc64": {
+      "version": "0.19.12",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz",
+      "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==",
+      "cpu": [
+        "ppc64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-riscv64": {
+      "version": "0.19.12",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz",
+      "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==",
+      "cpu": [
+        "riscv64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-s390x": {
+      "version": "0.19.12",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz",
+      "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==",
+      "cpu": [
+        "s390x"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-x64": {
+      "version": "0.19.12",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz",
+      "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/netbsd-x64": {
+      "version": "0.19.12",
+      "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz",
+      "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "netbsd"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/openbsd-x64": {
+      "version": "0.19.12",
+      "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz",
+      "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "openbsd"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/sunos-x64": {
+      "version": "0.19.12",
+      "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz",
+      "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "sunos"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/win32-arm64": {
+      "version": "0.19.12",
+      "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz",
+      "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/win32-ia32": {
+      "version": "0.19.12",
+      "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz",
+      "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==",
+      "cpu": [
+        "ia32"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/win32-x64": {
+      "version": "0.19.12",
+      "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz",
+      "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@eslint-community/eslint-utils": {
+      "version": "4.4.0",
+      "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
+      "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+      "dev": true,
+      "dependencies": {
+        "eslint-visitor-keys": "^3.3.0"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "peerDependencies": {
+        "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+      }
+    },
+    "node_modules/@eslint-community/regexpp": {
+      "version": "4.10.0",
+      "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
+      "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
+      "dev": true,
+      "engines": {
+        "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+      }
+    },
+    "node_modules/@eslint/eslintrc": {
+      "version": "2.1.4",
+      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
+      "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
+      "dev": true,
+      "dependencies": {
+        "ajv": "^6.12.4",
+        "debug": "^4.3.2",
+        "espree": "^9.6.0",
+        "globals": "^13.19.0",
+        "ignore": "^5.2.0",
+        "import-fresh": "^3.2.1",
+        "js-yaml": "^4.1.0",
+        "minimatch": "^3.1.2",
+        "strip-json-comments": "^3.1.1"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/@eslint/eslintrc/node_modules/ajv": {
+      "version": "6.12.6",
+      "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+      "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+      "dev": true,
+      "dependencies": {
+        "fast-deep-equal": "^3.1.1",
+        "fast-json-stable-stringify": "^2.0.0",
+        "json-schema-traverse": "^0.4.1",
+        "uri-js": "^4.2.2"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/epoberezkin"
+      }
+    },
+    "node_modules/@eslint/eslintrc/node_modules/argparse": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+      "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+      "dev": true
+    },
+    "node_modules/@eslint/eslintrc/node_modules/globals": {
+      "version": "13.24.0",
+      "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+      "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+      "dev": true,
+      "dependencies": {
+        "type-fest": "^0.20.2"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/@eslint/eslintrc/node_modules/js-yaml": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+      "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+      "dev": true,
+      "dependencies": {
+        "argparse": "^2.0.1"
+      },
+      "bin": {
+        "js-yaml": "bin/js-yaml.js"
+      }
+    },
+    "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+      "dev": true
+    },
+    "node_modules/@eslint/js": {
+      "version": "8.57.0",
+      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
+      "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
+      "dev": true,
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      }
+    },
+    "node_modules/@humanwhocodes/config-array": {
+      "version": "0.11.14",
+      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
+      "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
+      "dev": true,
+      "dependencies": {
+        "@humanwhocodes/object-schema": "^2.0.2",
+        "debug": "^4.3.1",
+        "minimatch": "^3.0.5"
+      },
+      "engines": {
+        "node": ">=10.10.0"
+      }
+    },
+    "node_modules/@humanwhocodes/module-importer": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+      "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+      "dev": true,
+      "engines": {
+        "node": ">=12.22"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/nzakas"
+      }
+    },
+    "node_modules/@humanwhocodes/object-schema": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+      "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
+      "dev": true
+    },
+    "node_modules/@isaacs/cliui": {
+      "version": "8.0.2",
+      "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+      "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+      "dependencies": {
+        "string-width": "^5.1.2",
+        "string-width-cjs": "npm:string-width@^4.2.0",
+        "strip-ansi": "^7.0.1",
+        "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+        "wrap-ansi": "^8.1.0",
+        "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+      "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+      }
+    },
+    "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
+      "version": "6.2.1",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+      "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
+      "version": "9.2.2",
+      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+      "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
+    },
+    "node_modules/@isaacs/cliui/node_modules/string-width": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+      "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+      "dependencies": {
+        "eastasianwidth": "^0.2.0",
+        "emoji-regex": "^9.2.2",
+        "strip-ansi": "^7.0.1"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
+      "version": "7.1.0",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+      "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+      "dependencies": {
+        "ansi-regex": "^6.0.1"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+      }
+    },
+    "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
+      "version": "8.1.0",
+      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+      "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+      "dependencies": {
+        "ansi-styles": "^6.1.0",
+        "string-width": "^5.0.1",
+        "strip-ansi": "^7.0.1"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+      }
+    },
+    "node_modules/@jest/schemas": {
+      "version": "29.6.3",
+      "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
+      "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
+      "dev": true,
+      "dependencies": {
+        "@sinclair/typebox": "^0.27.8"
+      },
+      "engines": {
+        "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+      }
+    },
+    "node_modules/@jridgewell/gen-mapping": {
+      "version": "0.3.5",
+      "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+      "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
+      "dependencies": {
+        "@jridgewell/set-array": "^1.2.1",
+        "@jridgewell/sourcemap-codec": "^1.4.10",
+        "@jridgewell/trace-mapping": "^0.3.24"
+      },
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
+    "node_modules/@jridgewell/resolve-uri": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+      "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
+    "node_modules/@jridgewell/set-array": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+      "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
+    "node_modules/@jridgewell/source-map": {
+      "version": "0.3.6",
+      "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
+      "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
+      "dev": true,
+      "peer": true,
+      "dependencies": {
+        "@jridgewell/gen-mapping": "^0.3.5",
+        "@jridgewell/trace-mapping": "^0.3.25"
+      }
+    },
+    "node_modules/@jridgewell/sourcemap-codec": {
+      "version": "1.4.15",
+      "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+      "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
+    },
+    "node_modules/@jridgewell/trace-mapping": {
+      "version": "0.3.25",
+      "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+      "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+      "dependencies": {
+        "@jridgewell/resolve-uri": "^3.1.0",
+        "@jridgewell/sourcemap-codec": "^1.4.14"
+      }
+    },
+    "node_modules/@nodelib/fs.scandir": {
+      "version": "2.1.5",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+      "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+      "dependencies": {
+        "@nodelib/fs.stat": "2.0.5",
+        "run-parallel": "^1.1.9"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@nodelib/fs.stat": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+      "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@nodelib/fs.walk": {
+      "version": "1.2.8",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+      "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+      "dependencies": {
+        "@nodelib/fs.scandir": "2.1.5",
+        "fastq": "^1.6.0"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@one-ini/wasm": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz",
+      "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw=="
+    },
+    "node_modules/@pkgjs/parseargs": {
+      "version": "0.11.0",
+      "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+      "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+      "optional": true,
+      "engines": {
+        "node": ">=14"
+      }
+    },
+    "node_modules/@pkgr/core": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz",
+      "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==",
+      "dev": true,
+      "engines": {
+        "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/unts"
+      }
+    },
+    "node_modules/@prettier/plugin-php": {
+      "version": "0.22.2",
+      "resolved": "https://registry.npmjs.org/@prettier/plugin-php/-/plugin-php-0.22.2.tgz",
+      "integrity": "sha512-md0+7tNbsP0oy+wIP3KZZc6fzx1k1jtWaMjOy/gM8yU9f2BDYEi+iHOc/UNPihYvPI28zFTbjvlhH4QXQjQwNg==",
+      "dependencies": {
+        "linguist-languages": "^7.27.0",
+        "php-parser": "^3.1.5"
+      },
+      "peerDependencies": {
+        "prettier": "^3.0.0"
+      }
+    },
+    "node_modules/@rollup/rollup-android-arm-eabi": {
+      "version": "4.18.0",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz",
+      "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "android"
+      ]
+    },
+    "node_modules/@rollup/rollup-android-arm64": {
+      "version": "4.18.0",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz",
+      "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "android"
+      ]
+    },
+    "node_modules/@rollup/rollup-darwin-arm64": {
+      "version": "4.18.0",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz",
+      "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "darwin"
+      ]
+    },
+    "node_modules/@rollup/rollup-darwin-x64": {
+      "version": "4.18.0",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz",
+      "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "darwin"
+      ]
+    },
+    "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+      "version": "4.18.0",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz",
+      "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+      "version": "4.18.0",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz",
+      "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@rollup/rollup-linux-arm64-gnu": {
+      "version": "4.18.0",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz",
+      "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@rollup/rollup-linux-arm64-musl": {
+      "version": "4.18.0",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz",
+      "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
+      "version": "4.18.0",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz",
+      "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==",
+      "cpu": [
+        "ppc64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+      "version": "4.18.0",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz",
+      "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==",
+      "cpu": [
+        "riscv64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@rollup/rollup-linux-s390x-gnu": {
+      "version": "4.18.0",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz",
+      "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==",
+      "cpu": [
+        "s390x"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@rollup/rollup-linux-x64-gnu": {
+      "version": "4.18.0",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz",
+      "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@rollup/rollup-linux-x64-musl": {
+      "version": "4.18.0",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz",
+      "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@rollup/rollup-win32-arm64-msvc": {
+      "version": "4.18.0",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz",
+      "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "win32"
+      ]
+    },
+    "node_modules/@rollup/rollup-win32-ia32-msvc": {
+      "version": "4.18.0",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz",
+      "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==",
+      "cpu": [
+        "ia32"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "win32"
+      ]
+    },
+    "node_modules/@rollup/rollup-win32-x64-msvc": {
+      "version": "4.18.0",
+      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz",
+      "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "win32"
+      ]
+    },
+    "node_modules/@shufo/tailwindcss-class-sorter": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/@shufo/tailwindcss-class-sorter/-/tailwindcss-class-sorter-3.0.1.tgz",
+      "integrity": "sha512-y9SMobvwElX2G6vdg4odJ6UL6hu/o5RlMsdwEeDLGaqHU3BLSw9CeitGgBus6kadjjDdT2wseG0Tl5yXWdc4UQ==",
+      "dependencies": {
+        "escalade": "^3.1.1",
+        "object-hash": "^3.0.0",
+        "tailwindcss": "^3.3.2"
+      },
+      "engines": {
+        "node": ">= 14.0.0"
+      }
+    },
+    "node_modules/@sinclair/typebox": {
+      "version": "0.27.8",
+      "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
+      "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
+      "dev": true
+    },
+    "node_modules/@tootallnate/once": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
+      "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
+      "dev": true,
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/@ts-morph/bootstrap": {
+      "version": "0.16.0",
+      "resolved": "https://registry.npmjs.org/@ts-morph/bootstrap/-/bootstrap-0.16.0.tgz",
+      "integrity": "sha512-FYW3bK5EBeAgpHu0qZ57gHbLjzgzC81y5EJmrebzIhXSYg6OgZu5lFHpF5NJ7CwM7ZMhxX1PG+DRA8e+skopKw==",
+      "dev": true,
+      "dependencies": {
+        "@ts-morph/common": "~0.16.0"
+      }
+    },
+    "node_modules/@ts-morph/common": {
+      "version": "0.16.0",
+      "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.16.0.tgz",
+      "integrity": "sha512-SgJpzkTgZKLKqQniCjLaE3c2L2sdL7UShvmTmPBejAKd2OKV/yfMpQ2IWpAuA+VY5wy7PkSUaEObIqEK6afFuw==",
+      "dev": true,
+      "dependencies": {
+        "fast-glob": "^3.2.11",
+        "minimatch": "^5.1.0",
+        "mkdirp": "^1.0.4",
+        "path-browserify": "^1.0.1"
+      }
+    },
+    "node_modules/@ts-morph/common/node_modules/brace-expansion": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+      "dev": true,
+      "dependencies": {
+        "balanced-match": "^1.0.0"
+      }
+    },
+    "node_modules/@ts-morph/common/node_modules/minimatch": {
+      "version": "5.1.6",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+      "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+      "dev": true,
+      "dependencies": {
+        "brace-expansion": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/@tsconfig/node10": {
+      "version": "1.0.11",
+      "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz",
+      "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==",
+      "devOptional": true
+    },
+    "node_modules/@tsconfig/node12": {
+      "version": "1.0.11",
+      "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
+      "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
+      "devOptional": true
+    },
+    "node_modules/@tsconfig/node14": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
+      "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
+      "devOptional": true
+    },
+    "node_modules/@tsconfig/node16": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
+      "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
+      "devOptional": true
+    },
+    "node_modules/@types/concat-stream": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-2.0.3.tgz",
+      "integrity": "sha512-3qe4oQAPNwVNwK4C9c8u+VJqv9kez+2MR4qJpoPFfXtgxxif1QbFusvXzK0/Wra2VX07smostI2VMmJNSpZjuQ==",
+      "dev": true,
+      "dependencies": {
+        "@types/node": "*"
+      }
+    },
+    "node_modules/@types/eslint": {
+      "version": "8.56.10",
+      "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz",
+      "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==",
+      "dev": true,
+      "peer": true,
+      "dependencies": {
+        "@types/estree": "*",
+        "@types/json-schema": "*"
+      }
+    },
+    "node_modules/@types/eslint-scope": {
+      "version": "3.7.7",
+      "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
+      "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
+      "dev": true,
+      "peer": true,
+      "dependencies": {
+        "@types/eslint": "*",
+        "@types/estree": "*"
+      }
+    },
+    "node_modules/@types/estree": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
+      "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
+      "dev": true
+    },
+    "node_modules/@types/find-config": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/@types/find-config/-/find-config-1.0.4.tgz",
+      "integrity": "sha512-BCXaKgzHK7KnfCQBRQBWGTA+QajOE9uFolXPt+9EktiiMS56D8oXF2ZCh9eCxuEyfqDmX/mYIcmWg9j9f659eg==",
+      "dev": true
+    },
+    "node_modules/@types/fs-extra": {
+      "version": "11.0.4",
+      "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.4.tgz",
+      "integrity": "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==",
+      "dev": true,
+      "dependencies": {
+        "@types/jsonfile": "*",
+        "@types/node": "*"
+      }
+    },
+    "node_modules/@types/glob": {
+      "version": "8.1.0",
+      "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.1.0.tgz",
+      "integrity": "sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==",
+      "dev": true,
+      "dependencies": {
+        "@types/minimatch": "^5.1.2",
+        "@types/node": "*"
+      }
+    },
+    "node_modules/@types/js-beautify": {
+      "version": "1.14.3",
+      "resolved": "https://registry.npmjs.org/@types/js-beautify/-/js-beautify-1.14.3.tgz",
+      "integrity": "sha512-FMbQHz+qd9DoGvgLHxeqqVPaNRffpIu5ZjozwV8hf9JAGpIOzuAf4wGbRSo8LNITHqGjmmVjaMggTT5P4v4IHg==",
+      "dev": true
+    },
+    "node_modules/@types/json-schema": {
+      "version": "7.0.15",
+      "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+      "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
+      "dev": true
+    },
+    "node_modules/@types/json5": {
+      "version": "0.0.29",
+      "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+      "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
+      "dev": true
+    },
+    "node_modules/@types/jsonfile": {
+      "version": "6.1.4",
+      "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.4.tgz",
+      "integrity": "sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==",
+      "dev": true,
+      "dependencies": {
+        "@types/node": "*"
+      }
+    },
+    "node_modules/@types/lodash": {
+      "version": "4.17.4",
+      "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.4.tgz",
+      "integrity": "sha512-wYCP26ZLxaT3R39kiN2+HcJ4kTd3U1waI/cY7ivWYqFP6pW3ZNpvi6Wd6PHZx7T/t8z0vlkXMg3QYLa7DZ/IJQ==",
+      "dev": true
+    },
+    "node_modules/@types/minimatch": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz",
+      "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==",
+      "dev": true
+    },
+    "node_modules/@types/mocha": {
+      "version": "10.0.6",
+      "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.6.tgz",
+      "integrity": "sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==",
+      "dev": true
+    },
+    "node_modules/@types/node": {
+      "version": "20.12.13",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.13.tgz",
+      "integrity": "sha512-gBGeanV41c1L171rR7wjbMiEpEI/l5XFQdLLfhr/REwpgDy/4U8y89+i8kRiLzDyZdOkXh+cRaTetUnCYutoXA==",
+      "devOptional": true,
+      "dependencies": {
+        "undici-types": "~5.26.4"
+      }
+    },
+    "node_modules/@types/semver": {
+      "version": "7.5.8",
+      "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
+      "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==",
+      "dev": true
+    },
+    "node_modules/@types/xregexp": {
+      "version": "4.4.0",
+      "resolved": "https://registry.npmjs.org/@types/xregexp/-/xregexp-4.4.0.tgz",
+      "integrity": "sha512-RJJHNci1sRRq8nZjWxzCbQdLhJVq+JcDHpsdzoTtFAR9qdsMhAWqKQ1NHsNcenKDtLsOwCBe/kfSKM82yXtocg==",
+      "deprecated": "This is a stub types definition. xregexp provides its own type definitions, so you do not need this installed.",
+      "dev": true,
+      "dependencies": {
+        "xregexp": "*"
+      }
+    },
+    "node_modules/@typescript-eslint/eslint-plugin": {
+      "version": "5.62.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz",
+      "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==",
+      "dev": true,
+      "dependencies": {
+        "@eslint-community/regexpp": "^4.4.0",
+        "@typescript-eslint/scope-manager": "5.62.0",
+        "@typescript-eslint/type-utils": "5.62.0",
+        "@typescript-eslint/utils": "5.62.0",
+        "debug": "^4.3.4",
+        "graphemer": "^1.4.0",
+        "ignore": "^5.2.0",
+        "natural-compare-lite": "^1.4.0",
+        "semver": "^7.3.7",
+        "tsutils": "^3.21.0"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      },
+      "peerDependencies": {
+        "@typescript-eslint/parser": "^5.0.0",
+        "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+      },
+      "peerDependenciesMeta": {
+        "typescript": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
+      "version": "7.6.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+      "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+      "dev": true,
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/@typescript-eslint/parser": {
+      "version": "5.62.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz",
+      "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==",
+      "dev": true,
+      "dependencies": {
+        "@typescript-eslint/scope-manager": "5.62.0",
+        "@typescript-eslint/types": "5.62.0",
+        "@typescript-eslint/typescript-estree": "5.62.0",
+        "debug": "^4.3.4"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      },
+      "peerDependencies": {
+        "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+      },
+      "peerDependenciesMeta": {
+        "typescript": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@typescript-eslint/scope-manager": {
+      "version": "5.62.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
+      "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
+      "dev": true,
+      "dependencies": {
+        "@typescript-eslint/types": "5.62.0",
+        "@typescript-eslint/visitor-keys": "5.62.0"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      }
+    },
+    "node_modules/@typescript-eslint/type-utils": {
+      "version": "5.62.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz",
+      "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==",
+      "dev": true,
+      "dependencies": {
+        "@typescript-eslint/typescript-estree": "5.62.0",
+        "@typescript-eslint/utils": "5.62.0",
+        "debug": "^4.3.4",
+        "tsutils": "^3.21.0"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      },
+      "peerDependencies": {
+        "eslint": "*"
+      },
+      "peerDependenciesMeta": {
+        "typescript": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@typescript-eslint/types": {
+      "version": "5.62.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
+      "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
+      "dev": true,
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      }
+    },
+    "node_modules/@typescript-eslint/typescript-estree": {
+      "version": "5.62.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
+      "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
+      "dev": true,
+      "dependencies": {
+        "@typescript-eslint/types": "5.62.0",
+        "@typescript-eslint/visitor-keys": "5.62.0",
+        "debug": "^4.3.4",
+        "globby": "^11.1.0",
+        "is-glob": "^4.0.3",
+        "semver": "^7.3.7",
+        "tsutils": "^3.21.0"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      },
+      "peerDependenciesMeta": {
+        "typescript": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
+      "version": "7.6.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+      "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+      "dev": true,
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/@typescript-eslint/utils": {
+      "version": "5.62.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz",
+      "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
+      "dev": true,
+      "dependencies": {
+        "@eslint-community/eslint-utils": "^4.2.0",
+        "@types/json-schema": "^7.0.9",
+        "@types/semver": "^7.3.12",
+        "@typescript-eslint/scope-manager": "5.62.0",
+        "@typescript-eslint/types": "5.62.0",
+        "@typescript-eslint/typescript-estree": "5.62.0",
+        "eslint-scope": "^5.1.1",
+        "semver": "^7.3.7"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      },
+      "peerDependencies": {
+        "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+      }
+    },
+    "node_modules/@typescript-eslint/utils/node_modules/semver": {
+      "version": "7.6.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+      "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+      "dev": true,
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/@typescript-eslint/visitor-keys": {
+      "version": "5.62.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz",
+      "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==",
+      "dev": true,
+      "dependencies": {
+        "@typescript-eslint/types": "5.62.0",
+        "eslint-visitor-keys": "^3.3.0"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      }
+    },
+    "node_modules/@ungap/structured-clone": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+      "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
+      "dev": true
+    },
+    "node_modules/@vitest/expect": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.0.tgz",
+      "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==",
+      "dev": true,
+      "dependencies": {
+        "@vitest/spy": "1.6.0",
+        "@vitest/utils": "1.6.0",
+        "chai": "^4.3.10"
+      },
+      "funding": {
+        "url": "https://opencollective.com/vitest"
+      }
+    },
+    "node_modules/@vitest/runner": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.0.tgz",
+      "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==",
+      "dev": true,
+      "dependencies": {
+        "@vitest/utils": "1.6.0",
+        "p-limit": "^5.0.0",
+        "pathe": "^1.1.1"
+      },
+      "funding": {
+        "url": "https://opencollective.com/vitest"
+      }
+    },
+    "node_modules/@vitest/runner/node_modules/p-limit": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz",
+      "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==",
+      "dev": true,
+      "dependencies": {
+        "yocto-queue": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/@vitest/runner/node_modules/yocto-queue": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
+      "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
+      "dev": true,
+      "engines": {
+        "node": ">=12.20"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/@vitest/snapshot": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.0.tgz",
+      "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==",
+      "dev": true,
+      "dependencies": {
+        "magic-string": "^0.30.5",
+        "pathe": "^1.1.1",
+        "pretty-format": "^29.7.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/vitest"
+      }
+    },
+    "node_modules/@vitest/spy": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.0.tgz",
+      "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==",
+      "dev": true,
+      "dependencies": {
+        "tinyspy": "^2.2.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/vitest"
+      }
+    },
+    "node_modules/@vitest/utils": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.0.tgz",
+      "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==",
+      "dev": true,
+      "dependencies": {
+        "diff-sequences": "^29.6.3",
+        "estree-walker": "^3.0.3",
+        "loupe": "^2.3.7",
+        "pretty-format": "^29.7.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/vitest"
+      }
+    },
+    "node_modules/@webassemblyjs/ast": {
+      "version": "1.12.1",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz",
+      "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==",
+      "dev": true,
+      "peer": true,
+      "dependencies": {
+        "@webassemblyjs/helper-numbers": "1.11.6",
+        "@webassemblyjs/helper-wasm-bytecode": "1.11.6"
+      }
+    },
+    "node_modules/@webassemblyjs/floating-point-hex-parser": {
+      "version": "1.11.6",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz",
+      "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==",
+      "dev": true,
+      "peer": true
+    },
+    "node_modules/@webassemblyjs/helper-api-error": {
+      "version": "1.11.6",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz",
+      "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==",
+      "dev": true,
+      "peer": true
+    },
+    "node_modules/@webassemblyjs/helper-buffer": {
+      "version": "1.12.1",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz",
+      "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==",
+      "dev": true,
+      "peer": true
+    },
+    "node_modules/@webassemblyjs/helper-numbers": {
+      "version": "1.11.6",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz",
+      "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==",
+      "dev": true,
+      "peer": true,
+      "dependencies": {
+        "@webassemblyjs/floating-point-hex-parser": "1.11.6",
+        "@webassemblyjs/helper-api-error": "1.11.6",
+        "@xtuc/long": "4.2.2"
+      }
+    },
+    "node_modules/@webassemblyjs/helper-wasm-bytecode": {
+      "version": "1.11.6",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz",
+      "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==",
+      "dev": true,
+      "peer": true
+    },
+    "node_modules/@webassemblyjs/helper-wasm-section": {
+      "version": "1.12.1",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz",
+      "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==",
+      "dev": true,
+      "peer": true,
+      "dependencies": {
+        "@webassemblyjs/ast": "1.12.1",
+        "@webassemblyjs/helper-buffer": "1.12.1",
+        "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
+        "@webassemblyjs/wasm-gen": "1.12.1"
+      }
+    },
+    "node_modules/@webassemblyjs/ieee754": {
+      "version": "1.11.6",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz",
+      "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==",
+      "dev": true,
+      "peer": true,
+      "dependencies": {
+        "@xtuc/ieee754": "^1.2.0"
+      }
+    },
+    "node_modules/@webassemblyjs/leb128": {
+      "version": "1.11.6",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz",
+      "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==",
+      "dev": true,
+      "peer": true,
+      "dependencies": {
+        "@xtuc/long": "4.2.2"
+      }
+    },
+    "node_modules/@webassemblyjs/utf8": {
+      "version": "1.11.6",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz",
+      "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==",
+      "dev": true,
+      "peer": true
+    },
+    "node_modules/@webassemblyjs/wasm-edit": {
+      "version": "1.12.1",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz",
+      "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==",
+      "dev": true,
+      "peer": true,
+      "dependencies": {
+        "@webassemblyjs/ast": "1.12.1",
+        "@webassemblyjs/helper-buffer": "1.12.1",
+        "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
+        "@webassemblyjs/helper-wasm-section": "1.12.1",
+        "@webassemblyjs/wasm-gen": "1.12.1",
+        "@webassemblyjs/wasm-opt": "1.12.1",
+        "@webassemblyjs/wasm-parser": "1.12.1",
+        "@webassemblyjs/wast-printer": "1.12.1"
+      }
+    },
+    "node_modules/@webassemblyjs/wasm-gen": {
+      "version": "1.12.1",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz",
+      "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==",
+      "dev": true,
+      "peer": true,
+      "dependencies": {
+        "@webassemblyjs/ast": "1.12.1",
+        "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
+        "@webassemblyjs/ieee754": "1.11.6",
+        "@webassemblyjs/leb128": "1.11.6",
+        "@webassemblyjs/utf8": "1.11.6"
+      }
+    },
+    "node_modules/@webassemblyjs/wasm-opt": {
+      "version": "1.12.1",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz",
+      "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==",
+      "dev": true,
+      "peer": true,
+      "dependencies": {
+        "@webassemblyjs/ast": "1.12.1",
+        "@webassemblyjs/helper-buffer": "1.12.1",
+        "@webassemblyjs/wasm-gen": "1.12.1",
+        "@webassemblyjs/wasm-parser": "1.12.1"
+      }
+    },
+    "node_modules/@webassemblyjs/wasm-parser": {
+      "version": "1.12.1",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz",
+      "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==",
+      "dev": true,
+      "peer": true,
+      "dependencies": {
+        "@webassemblyjs/ast": "1.12.1",
+        "@webassemblyjs/helper-api-error": "1.11.6",
+        "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
+        "@webassemblyjs/ieee754": "1.11.6",
+        "@webassemblyjs/leb128": "1.11.6",
+        "@webassemblyjs/utf8": "1.11.6"
+      }
+    },
+    "node_modules/@webassemblyjs/wast-printer": {
+      "version": "1.12.1",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz",
+      "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==",
+      "dev": true,
+      "peer": true,
+      "dependencies": {
+        "@webassemblyjs/ast": "1.12.1",
+        "@xtuc/long": "4.2.2"
+      }
+    },
+    "node_modules/@xtuc/ieee754": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+      "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+      "dev": true,
+      "peer": true
+    },
+    "node_modules/@xtuc/long": {
+      "version": "4.2.2",
+      "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+      "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
+      "dev": true,
+      "peer": true
+    },
+    "node_modules/abbrev": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz",
+      "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==",
+      "engines": {
+        "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+      }
+    },
+    "node_modules/acorn": {
+      "version": "8.11.3",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
+      "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+      "devOptional": true,
+      "bin": {
+        "acorn": "bin/acorn"
+      },
+      "engines": {
+        "node": ">=0.4.0"
+      }
+    },
+    "node_modules/acorn-import-assertions": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz",
+      "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==",
+      "dev": true,
+      "peer": true,
+      "peerDependencies": {
+        "acorn": "^8"
+      }
+    },
+    "node_modules/acorn-jsx": {
+      "version": "5.3.2",
+      "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+      "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+      "dev": true,
+      "peerDependencies": {
+        "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+      }
+    },
+    "node_modules/acorn-walk": {
+      "version": "8.3.2",
+      "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz",
+      "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==",
+      "devOptional": true,
+      "engines": {
+        "node": ">=0.4.0"
+      }
+    },
+    "node_modules/agent-base": {
+      "version": "6.0.2",
+      "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+      "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+      "dev": true,
+      "dependencies": {
+        "debug": "4"
+      },
+      "engines": {
+        "node": ">= 6.0.0"
+      }
+    },
+    "node_modules/aigle": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmjs.org/aigle/-/aigle-1.14.1.tgz",
+      "integrity": "sha512-bCmQ65CEebspmpbWFs6ab3S27TNyVH1b5MledX8KoiGxUhsJmPUUGpaoSijhwawNnq5Lt8jbcq7Z7gUAD0nuTw==",
+      "dependencies": {
+        "aigle-core": "^1.0.0"
+      }
+    },
+    "node_modules/aigle-core": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/aigle-core/-/aigle-core-1.0.0.tgz",
+      "integrity": "sha512-uGFWPumk5DLvYnUphNnff+kWC8VeAnjPbbU8ovsSHflKXGX77SD7cAN/aSBCLX3xnoJAM9KdtRgxUygRnSSu7A=="
+    },
+    "node_modules/ajv": {
+      "version": "8.14.0",
+      "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.14.0.tgz",
+      "integrity": "sha512-oYs1UUtO97ZO2lJ4bwnWeQW8/zvOIQLGKcvPTsWmvc2SYgBb+upuNS5NxoLaMU4h8Ju3Nbj6Cq8mD2LQoqVKFA==",
+      "dependencies": {
+        "fast-deep-equal": "^3.1.3",
+        "json-schema-traverse": "^1.0.0",
+        "require-from-string": "^2.0.2",
+        "uri-js": "^4.4.1"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/epoberezkin"
+      }
+    },
+    "node_modules/ansi-colors": {
+      "version": "4.1.3",
+      "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
+      "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/ansi-escapes": {
+      "version": "6.2.1",
+      "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz",
+      "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==",
+      "dev": true,
+      "engines": {
+        "node": ">=14.16"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/ansi-regex": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/ansi-styles": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+      "dependencies": {
+        "color-convert": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/any-promise": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
+      "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="
+    },
+    "node_modules/anymatch": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+      "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+      "dependencies": {
+        "normalize-path": "^3.0.0",
+        "picomatch": "^2.0.4"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/app-root-path": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.1.0.tgz",
+      "integrity": "sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==",
+      "dev": true,
+      "engines": {
+        "node": ">= 6.0.0"
+      }
+    },
+    "node_modules/arg": {
+      "version": "5.0.2",
+      "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
+      "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
+    },
+    "node_modules/argparse": {
+      "version": "1.0.10",
+      "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+      "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+      "dev": true,
+      "dependencies": {
+        "sprintf-js": "~1.0.2"
+      }
+    },
+    "node_modules/argv": {
+      "version": "0.0.2",
+      "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz",
+      "integrity": "sha512-dEamhpPEwRUBpLNHeuCm/v+g0anFByHahxodVO/BbAarHVBBg2MccCwf9K+o1Pof+2btdnkJelYVUWjW/VrATw==",
+      "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
+      "dev": true,
+      "engines": {
+        "node": ">=0.6.10"
+      }
+    },
+    "node_modules/arr-diff": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+      "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/arr-flatten": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+      "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/arr-union": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+      "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/array-buffer-byte-length": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
+      "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.5",
+        "is-array-buffer": "^3.0.4"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/array-includes": {
+      "version": "3.1.8",
+      "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz",
+      "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.7",
+        "define-properties": "^1.2.1",
+        "es-abstract": "^1.23.2",
+        "es-object-atoms": "^1.0.0",
+        "get-intrinsic": "^1.2.4",
+        "is-string": "^1.0.7"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/array-union": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+      "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/array-unique": {
+      "version": "0.3.2",
+      "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+      "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/array.prototype.findlastindex": {
+      "version": "1.2.5",
+      "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz",
+      "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.7",
+        "define-properties": "^1.2.1",
+        "es-abstract": "^1.23.2",
+        "es-errors": "^1.3.0",
+        "es-object-atoms": "^1.0.0",
+        "es-shim-unscopables": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/array.prototype.flat": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
+      "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.2.0",
+        "es-abstract": "^1.22.1",
+        "es-shim-unscopables": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/array.prototype.flatmap": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
+      "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.2.0",
+        "es-abstract": "^1.22.1",
+        "es-shim-unscopables": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/arraybuffer.prototype.slice": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz",
+      "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==",
+      "dev": true,
+      "dependencies": {
+        "array-buffer-byte-length": "^1.0.1",
+        "call-bind": "^1.0.5",
+        "define-properties": "^1.2.1",
+        "es-abstract": "^1.22.3",
+        "es-errors": "^1.2.1",
+        "get-intrinsic": "^1.2.3",
+        "is-array-buffer": "^3.0.4",
+        "is-shared-array-buffer": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/assertion-error": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
+      "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
+      "dev": true,
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/assign-symbols": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+      "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/ast-types": {
+      "version": "0.11.7",
+      "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.11.7.tgz",
+      "integrity": "sha512-2mP3TwtkY/aTv5X3ZsMpNAbOnyoC/aMJwJSoaELPkHId0nSQgFcnU4dRW3isxiz7+zBexk0ym3WNVjMiQBnJSw==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/astral-regex": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+      "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/atob": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+      "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
+      "dev": true,
+      "bin": {
+        "atob": "bin/atob.js"
+      },
+      "engines": {
+        "node": ">= 4.5.0"
+      }
+    },
+    "node_modules/available-typed-arrays": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+      "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
+      "dev": true,
+      "dependencies": {
+        "possible-typed-array-names": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/babel-core": {
+      "version": "7.0.0-bridge.0",
+      "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz",
+      "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==",
+      "dev": true,
+      "peerDependencies": {
+        "@babel/core": "^7.0.0-0"
+      }
+    },
+    "node_modules/babel-plugin-polyfill-corejs2": {
+      "version": "0.4.11",
+      "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz",
+      "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==",
+      "dev": true,
+      "dependencies": {
+        "@babel/compat-data": "^7.22.6",
+        "@babel/helper-define-polyfill-provider": "^0.6.2",
+        "semver": "^6.3.1"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+      }
+    },
+    "node_modules/babel-plugin-polyfill-corejs3": {
+      "version": "0.10.4",
+      "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz",
+      "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-define-polyfill-provider": "^0.6.1",
+        "core-js-compat": "^3.36.1"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+      }
+    },
+    "node_modules/babel-plugin-polyfill-regenerator": {
+      "version": "0.6.2",
+      "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz",
+      "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-define-polyfill-provider": "^0.6.2"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+      }
+    },
+    "node_modules/balanced-match": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+    },
+    "node_modules/base": {
+      "version": "0.11.2",
+      "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+      "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+      "dev": true,
+      "dependencies": {
+        "cache-base": "^1.0.1",
+        "class-utils": "^0.3.5",
+        "component-emitter": "^1.2.1",
+        "define-property": "^1.0.0",
+        "isobject": "^3.0.1",
+        "mixin-deep": "^1.2.0",
+        "pascalcase": "^0.1.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/base/node_modules/define-property": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+      "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
+      "dev": true,
+      "dependencies": {
+        "is-descriptor": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/binary-extensions": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+      "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/brace-expansion": {
+      "version": "1.1.11",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+      "dev": true,
+      "dependencies": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "node_modules/braces": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+      "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+      "dependencies": {
+        "fill-range": "^7.1.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/browserslist": {
+      "version": "4.23.0",
+      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
+      "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "opencollective",
+          "url": "https://opencollective.com/browserslist"
+        },
+        {
+          "type": "tidelift",
+          "url": "https://tidelift.com/funding/github/npm/browserslist"
+        },
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/ai"
+        }
+      ],
+      "dependencies": {
+        "caniuse-lite": "^1.0.30001587",
+        "electron-to-chromium": "^1.4.668",
+        "node-releases": "^2.0.14",
+        "update-browserslist-db": "^1.0.13"
+      },
+      "bin": {
+        "browserslist": "cli.js"
+      },
+      "engines": {
+        "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+      }
+    },
+    "node_modules/buffer-from": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+      "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
+    },
+    "node_modules/cac": {
+      "version": "6.7.14",
+      "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
+      "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/cache-base": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+      "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+      "dev": true,
+      "dependencies": {
+        "collection-visit": "^1.0.0",
+        "component-emitter": "^1.2.1",
+        "get-value": "^2.0.6",
+        "has-value": "^1.0.0",
+        "isobject": "^3.0.1",
+        "set-value": "^2.0.0",
+        "to-object-path": "^0.3.0",
+        "union-value": "^1.0.0",
+        "unset-value": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/call-bind": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
+      "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+      "dev": true,
+      "dependencies": {
+        "es-define-property": "^1.0.0",
+        "es-errors": "^1.3.0",
+        "function-bind": "^1.1.2",
+        "get-intrinsic": "^1.2.4",
+        "set-function-length": "^1.2.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/callsites": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+      "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/camelcase": {
+      "version": "5.3.1",
+      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+      "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/camelcase-css": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
+      "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/caniuse-lite": {
+      "version": "1.0.30001625",
+      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001625.tgz",
+      "integrity": "sha512-4KE9N2gcRH+HQhpeiRZXd+1niLB/XNLAhSy4z7fI8EzcbcPoAqjNInxVHTiTwWfTIV4w096XG8OtCOCQQKPv3w==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "opencollective",
+          "url": "https://opencollective.com/browserslist"
+        },
+        {
+          "type": "tidelift",
+          "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+        },
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/ai"
+        }
+      ]
+    },
+    "node_modules/chai": {
+      "version": "4.4.1",
+      "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz",
+      "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==",
+      "dev": true,
+      "dependencies": {
+        "assertion-error": "^1.1.0",
+        "check-error": "^1.0.3",
+        "deep-eql": "^4.1.3",
+        "get-func-name": "^2.0.2",
+        "loupe": "^2.3.6",
+        "pathval": "^1.1.1",
+        "type-detect": "^4.0.8"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/chalk": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+      "dependencies": {
+        "ansi-styles": "^4.1.0",
+        "supports-color": "^7.1.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/chalk?sponsor=1"
+      }
+    },
+    "node_modules/check-error": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz",
+      "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==",
+      "dev": true,
+      "dependencies": {
+        "get-func-name": "^2.0.2"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/chokidar": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+      "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+      "dependencies": {
+        "anymatch": "~3.1.2",
+        "braces": "~3.0.2",
+        "glob-parent": "~5.1.2",
+        "is-binary-path": "~2.1.0",
+        "is-glob": "~4.0.1",
+        "normalize-path": "~3.0.0",
+        "readdirp": "~3.6.0"
+      },
+      "engines": {
+        "node": ">= 8.10.0"
+      },
+      "funding": {
+        "url": "https://paulmillr.com/funding/"
+      },
+      "optionalDependencies": {
+        "fsevents": "~2.3.2"
+      }
+    },
+    "node_modules/chokidar/node_modules/glob-parent": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+      "dependencies": {
+        "is-glob": "^4.0.1"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/chrome-trace-event": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
+      "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==",
+      "dev": true,
+      "peer": true,
+      "engines": {
+        "node": ">=6.0"
+      }
+    },
+    "node_modules/class-utils": {
+      "version": "0.3.6",
+      "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+      "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+      "dev": true,
+      "dependencies": {
+        "arr-union": "^3.1.0",
+        "define-property": "^0.2.5",
+        "isobject": "^3.0.0",
+        "static-extend": "^0.1.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/class-utils/node_modules/define-property": {
+      "version": "0.2.5",
+      "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+      "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+      "dev": true,
+      "dependencies": {
+        "is-descriptor": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/class-utils/node_modules/is-descriptor": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
+      "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
+      "dev": true,
+      "dependencies": {
+        "is-accessor-descriptor": "^1.0.1",
+        "is-data-descriptor": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/cli-cursor": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz",
+      "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==",
+      "dev": true,
+      "dependencies": {
+        "restore-cursor": "^4.0.0"
+      },
+      "engines": {
+        "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/cli-truncate": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz",
+      "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==",
+      "dev": true,
+      "dependencies": {
+        "slice-ansi": "^5.0.0",
+        "string-width": "^7.0.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/cliui": {
+      "version": "8.0.1",
+      "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+      "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+      "dependencies": {
+        "string-width": "^4.2.0",
+        "strip-ansi": "^6.0.1",
+        "wrap-ansi": "^7.0.0"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/cliui/node_modules/emoji-regex": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+    },
+    "node_modules/cliui/node_modules/is-fullwidth-code-point": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+      "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/cliui/node_modules/string-width": {
+      "version": "4.2.3",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+      "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+      "dependencies": {
+        "emoji-regex": "^8.0.0",
+        "is-fullwidth-code-point": "^3.0.0",
+        "strip-ansi": "^6.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/cliui/node_modules/wrap-ansi": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+      "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+      "dependencies": {
+        "ansi-styles": "^4.0.0",
+        "string-width": "^4.1.0",
+        "strip-ansi": "^6.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+      }
+    },
+    "node_modules/clone-deep": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
+      "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
+      "dev": true,
+      "dependencies": {
+        "is-plain-object": "^2.0.4",
+        "kind-of": "^6.0.2",
+        "shallow-clone": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/codecov": {
+      "version": "3.8.3",
+      "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.8.3.tgz",
+      "integrity": "sha512-Y8Hw+V3HgR7V71xWH2vQ9lyS358CbGCldWlJFR0JirqoGtOoas3R3/OclRTvgUYFK29mmJICDPauVKmpqbwhOA==",
+      "deprecated": "https://about.codecov.io/blog/codecov-uploader-deprecation-plan/",
+      "dev": true,
+      "dependencies": {
+        "argv": "0.0.2",
+        "ignore-walk": "3.0.4",
+        "js-yaml": "3.14.1",
+        "teeny-request": "7.1.1",
+        "urlgrey": "1.0.0"
+      },
+      "bin": {
+        "codecov": "bin/codecov"
+      },
+      "engines": {
+        "node": ">=4.0"
+      }
+    },
+    "node_modules/collection-visit": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+      "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==",
+      "dev": true,
+      "dependencies": {
+        "map-visit": "^1.0.0",
+        "object-visit": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/color-convert": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+      "dependencies": {
+        "color-name": "~1.1.4"
+      },
+      "engines": {
+        "node": ">=7.0.0"
+      }
+    },
+    "node_modules/color-name": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+    },
+    "node_modules/colorette": {
+      "version": "2.0.20",
+      "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
+      "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
+      "dev": true
+    },
+    "node_modules/colors": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
+      "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.1.90"
+      }
+    },
+    "node_modules/commander": {
+      "version": "10.0.1",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
+      "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
+      "engines": {
+        "node": ">=14"
+      }
+    },
+    "node_modules/commondir": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+      "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
+      "dev": true
+    },
+    "node_modules/component-emitter": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz",
+      "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/concat-map": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+      "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+      "dev": true
+    },
+    "node_modules/concat-stream": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
+      "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
+      "engines": [
+        "node >= 6.0"
+      ],
+      "dependencies": {
+        "buffer-from": "^1.0.0",
+        "inherits": "^2.0.3",
+        "readable-stream": "^3.0.2",
+        "typedarray": "^0.0.6"
+      }
+    },
+    "node_modules/confbox": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz",
+      "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==",
+      "dev": true
+    },
+    "node_modules/config-chain": {
+      "version": "1.1.13",
+      "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
+      "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==",
+      "dependencies": {
+        "ini": "^1.3.4",
+        "proto-list": "~1.2.1"
+      }
+    },
+    "node_modules/confusing-browser-globals": {
+      "version": "1.0.11",
+      "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz",
+      "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==",
+      "dev": true
+    },
+    "node_modules/convert-source-map": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+      "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+      "dev": true
+    },
+    "node_modules/copy-descriptor": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+      "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/core-js-compat": {
+      "version": "3.37.1",
+      "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz",
+      "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==",
+      "dev": true,
+      "dependencies": {
+        "browserslist": "^4.23.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/core-js"
+      }
+    },
+    "node_modules/core-js-pure": {
+      "version": "3.37.1",
+      "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.37.1.tgz",
+      "integrity": "sha512-J/r5JTHSmzTxbiYYrzXg9w1VpqrYt+gexenBE9pugeyhwPZTAEJddyiReJWsLO6uNQ8xJZFbod6XC7KKwatCiA==",
+      "hasInstallScript": true,
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/core-js"
+      }
+    },
+    "node_modules/create-jest-runner": {
+      "version": "0.5.3",
+      "resolved": "https://registry.npmjs.org/create-jest-runner/-/create-jest-runner-0.5.3.tgz",
+      "integrity": "sha512-a9VY2doMBmzRollJB3Ft3/Y5fBceSWJ4gdyVsg4/d7nP1S4715VG939s2VnITDj79YBmRgKhjGjNRv1c+Kre1g==",
+      "dev": true,
+      "dependencies": {
+        "chalk": "^2.4.2",
+        "jest-worker": "^24.0.0",
+        "throat": "^4.1.0"
+      },
+      "bin": {
+        "create-jest-runner": "generator/index.js"
+      }
+    },
+    "node_modules/create-jest-runner/node_modules/ansi-styles": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+      "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+      "dev": true,
+      "dependencies": {
+        "color-convert": "^1.9.0"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/create-jest-runner/node_modules/chalk": {
+      "version": "2.4.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+      "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+      "dev": true,
+      "dependencies": {
+        "ansi-styles": "^3.2.1",
+        "escape-string-regexp": "^1.0.5",
+        "supports-color": "^5.3.0"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/create-jest-runner/node_modules/color-convert": {
+      "version": "1.9.3",
+      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+      "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+      "dev": true,
+      "dependencies": {
+        "color-name": "1.1.3"
+      }
+    },
+    "node_modules/create-jest-runner/node_modules/color-name": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+      "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+      "dev": true
+    },
+    "node_modules/create-jest-runner/node_modules/escape-string-regexp": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+      "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.8.0"
+      }
+    },
+    "node_modules/create-jest-runner/node_modules/has-flag": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+      "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/create-jest-runner/node_modules/supports-color": {
+      "version": "5.5.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+      "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+      "dev": true,
+      "dependencies": {
+        "has-flag": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/create-require": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
+      "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
+      "devOptional": true
+    },
+    "node_modules/cross-env": {
+      "version": "7.0.3",
+      "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz",
+      "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==",
+      "dev": true,
+      "dependencies": {
+        "cross-spawn": "^7.0.1"
+      },
+      "bin": {
+        "cross-env": "src/bin/cross-env.js",
+        "cross-env-shell": "src/bin/cross-env-shell.js"
+      },
+      "engines": {
+        "node": ">=10.14",
+        "npm": ">=6",
+        "yarn": ">=1"
+      }
+    },
+    "node_modules/cross-spawn": {
+      "version": "7.0.3",
+      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+      "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+      "dependencies": {
+        "path-key": "^3.1.0",
+        "shebang-command": "^2.0.0",
+        "which": "^2.0.1"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/cssesc": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+      "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+      "bin": {
+        "cssesc": "bin/cssesc"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/data-view-buffer": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz",
+      "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.6",
+        "es-errors": "^1.3.0",
+        "is-data-view": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/data-view-byte-length": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz",
+      "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.7",
+        "es-errors": "^1.3.0",
+        "is-data-view": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/data-view-byte-offset": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz",
+      "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.6",
+        "es-errors": "^1.3.0",
+        "is-data-view": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/debug": {
+      "version": "4.3.4",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+      "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+      "dev": true,
+      "dependencies": {
+        "ms": "2.1.2"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/decamelize": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+      "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/decode-uri-component": {
+      "version": "0.2.2",
+      "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+      "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10"
+      }
+    },
+    "node_modules/deep-eql": {
+      "version": "4.1.3",
+      "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz",
+      "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==",
+      "dev": true,
+      "dependencies": {
+        "type-detect": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/deep-is": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+      "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+      "dev": true
+    },
+    "node_modules/define-data-property": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+      "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+      "dev": true,
+      "dependencies": {
+        "es-define-property": "^1.0.0",
+        "es-errors": "^1.3.0",
+        "gopd": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/define-properties": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+      "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
+      "dev": true,
+      "dependencies": {
+        "define-data-property": "^1.0.1",
+        "has-property-descriptors": "^1.0.0",
+        "object-keys": "^1.1.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/define-property": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+      "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+      "dev": true,
+      "dependencies": {
+        "is-descriptor": "^1.0.2",
+        "isobject": "^3.0.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/detect-indent": {
+      "version": "6.1.0",
+      "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz",
+      "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/didyoumean": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
+      "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="
+    },
+    "node_modules/diff": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+      "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+      "devOptional": true,
+      "engines": {
+        "node": ">=0.3.1"
+      }
+    },
+    "node_modules/diff-sequences": {
+      "version": "29.6.3",
+      "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
+      "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
+      "dev": true,
+      "engines": {
+        "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+      }
+    },
+    "node_modules/dir-glob": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+      "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+      "dev": true,
+      "dependencies": {
+        "path-type": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/dlv": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
+      "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="
+    },
+    "node_modules/doctrine": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+      "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+      "dev": true,
+      "dependencies": {
+        "esutils": "^2.0.2"
+      },
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
+    "node_modules/eastasianwidth": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+      "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
+    },
+    "node_modules/editorconfig": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz",
+      "integrity": "sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==",
+      "dependencies": {
+        "@one-ini/wasm": "0.1.1",
+        "commander": "^10.0.0",
+        "minimatch": "9.0.1",
+        "semver": "^7.5.3"
+      },
+      "bin": {
+        "editorconfig": "bin/editorconfig"
+      },
+      "engines": {
+        "node": ">=14"
+      }
+    },
+    "node_modules/editorconfig/node_modules/brace-expansion": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+      "dependencies": {
+        "balanced-match": "^1.0.0"
+      }
+    },
+    "node_modules/editorconfig/node_modules/minimatch": {
+      "version": "9.0.1",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz",
+      "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==",
+      "dependencies": {
+        "brace-expansion": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=16 || 14 >=14.17"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/editorconfig/node_modules/semver": {
+      "version": "7.6.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+      "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/electron-to-chromium": {
+      "version": "1.4.784",
+      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.784.tgz",
+      "integrity": "sha512-9CZwh+sDrhDAeOEFh8s3PqwduzTyYIeYwZolc1b9ENAUt3ePu7R1sJSCWr/820ISssRxCJUyHI9Wb7j+0Uo1AA==",
+      "dev": true
+    },
+    "node_modules/emoji-regex": {
+      "version": "10.3.0",
+      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz",
+      "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==",
+      "dev": true
+    },
+    "node_modules/enhanced-resolve": {
+      "version": "5.16.1",
+      "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.1.tgz",
+      "integrity": "sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw==",
+      "dev": true,
+      "dependencies": {
+        "graceful-fs": "^4.2.4",
+        "tapable": "^2.2.0"
+      },
+      "engines": {
+        "node": ">=10.13.0"
+      }
+    },
+    "node_modules/enquirer": {
+      "version": "2.4.1",
+      "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz",
+      "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==",
+      "dev": true,
+      "dependencies": {
+        "ansi-colors": "^4.1.1",
+        "strip-ansi": "^6.0.1"
+      },
+      "engines": {
+        "node": ">=8.6"
+      }
+    },
+    "node_modules/es-abstract": {
+      "version": "1.23.3",
+      "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz",
+      "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==",
+      "dev": true,
+      "dependencies": {
+        "array-buffer-byte-length": "^1.0.1",
+        "arraybuffer.prototype.slice": "^1.0.3",
+        "available-typed-arrays": "^1.0.7",
+        "call-bind": "^1.0.7",
+        "data-view-buffer": "^1.0.1",
+        "data-view-byte-length": "^1.0.1",
+        "data-view-byte-offset": "^1.0.0",
+        "es-define-property": "^1.0.0",
+        "es-errors": "^1.3.0",
+        "es-object-atoms": "^1.0.0",
+        "es-set-tostringtag": "^2.0.3",
+        "es-to-primitive": "^1.2.1",
+        "function.prototype.name": "^1.1.6",
+        "get-intrinsic": "^1.2.4",
+        "get-symbol-description": "^1.0.2",
+        "globalthis": "^1.0.3",
+        "gopd": "^1.0.1",
+        "has-property-descriptors": "^1.0.2",
+        "has-proto": "^1.0.3",
+        "has-symbols": "^1.0.3",
+        "hasown": "^2.0.2",
+        "internal-slot": "^1.0.7",
+        "is-array-buffer": "^3.0.4",
+        "is-callable": "^1.2.7",
+        "is-data-view": "^1.0.1",
+        "is-negative-zero": "^2.0.3",
+        "is-regex": "^1.1.4",
+        "is-shared-array-buffer": "^1.0.3",
+        "is-string": "^1.0.7",
+        "is-typed-array": "^1.1.13",
+        "is-weakref": "^1.0.2",
+        "object-inspect": "^1.13.1",
+        "object-keys": "^1.1.1",
+        "object.assign": "^4.1.5",
+        "regexp.prototype.flags": "^1.5.2",
+        "safe-array-concat": "^1.1.2",
+        "safe-regex-test": "^1.0.3",
+        "string.prototype.trim": "^1.2.9",
+        "string.prototype.trimend": "^1.0.8",
+        "string.prototype.trimstart": "^1.0.8",
+        "typed-array-buffer": "^1.0.2",
+        "typed-array-byte-length": "^1.0.1",
+        "typed-array-byte-offset": "^1.0.2",
+        "typed-array-length": "^1.0.6",
+        "unbox-primitive": "^1.0.2",
+        "which-typed-array": "^1.1.15"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/es-define-property": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
+      "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+      "dev": true,
+      "dependencies": {
+        "get-intrinsic": "^1.2.4"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/es-errors": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+      "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/es-module-lexer": {
+      "version": "1.5.3",
+      "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.3.tgz",
+      "integrity": "sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==",
+      "dev": true,
+      "peer": true
+    },
+    "node_modules/es-object-atoms": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
+      "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
+      "dev": true,
+      "dependencies": {
+        "es-errors": "^1.3.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/es-set-tostringtag": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
+      "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==",
+      "dev": true,
+      "dependencies": {
+        "get-intrinsic": "^1.2.4",
+        "has-tostringtag": "^1.0.2",
+        "hasown": "^2.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/es-shim-unscopables": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
+      "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
+      "dev": true,
+      "dependencies": {
+        "hasown": "^2.0.0"
+      }
+    },
+    "node_modules/es-to-primitive": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+      "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+      "dev": true,
+      "dependencies": {
+        "is-callable": "^1.1.4",
+        "is-date-object": "^1.0.1",
+        "is-symbol": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/esbuild": {
+      "version": "0.19.12",
+      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz",
+      "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==",
+      "dev": true,
+      "hasInstallScript": true,
+      "bin": {
+        "esbuild": "bin/esbuild"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "optionalDependencies": {
+        "@esbuild/aix-ppc64": "0.19.12",
+        "@esbuild/android-arm": "0.19.12",
+        "@esbuild/android-arm64": "0.19.12",
+        "@esbuild/android-x64": "0.19.12",
+        "@esbuild/darwin-arm64": "0.19.12",
+        "@esbuild/darwin-x64": "0.19.12",
+        "@esbuild/freebsd-arm64": "0.19.12",
+        "@esbuild/freebsd-x64": "0.19.12",
+        "@esbuild/linux-arm": "0.19.12",
+        "@esbuild/linux-arm64": "0.19.12",
+        "@esbuild/linux-ia32": "0.19.12",
+        "@esbuild/linux-loong64": "0.19.12",
+        "@esbuild/linux-mips64el": "0.19.12",
+        "@esbuild/linux-ppc64": "0.19.12",
+        "@esbuild/linux-riscv64": "0.19.12",
+        "@esbuild/linux-s390x": "0.19.12",
+        "@esbuild/linux-x64": "0.19.12",
+        "@esbuild/netbsd-x64": "0.19.12",
+        "@esbuild/openbsd-x64": "0.19.12",
+        "@esbuild/sunos-x64": "0.19.12",
+        "@esbuild/win32-arm64": "0.19.12",
+        "@esbuild/win32-ia32": "0.19.12",
+        "@esbuild/win32-x64": "0.19.12"
+      }
+    },
+    "node_modules/esbuild-node-externals": {
+      "version": "1.13.1",
+      "resolved": "https://registry.npmjs.org/esbuild-node-externals/-/esbuild-node-externals-1.13.1.tgz",
+      "integrity": "sha512-ho4Lokc6iMB1lWbb2tWJ6otien+3Kfoaxe0fy7NUNgVuLnfmlW+GRINftTVUGtTVY/dapuwUu/CvFylYNwzkMA==",
+      "dev": true,
+      "dependencies": {
+        "find-up": "^5.0.0",
+        "tslib": "^2.4.1"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "peerDependencies": {
+        "esbuild": "0.12 - 0.21"
+      }
+    },
+    "node_modules/escalade": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
+      "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/escape-string-regexp": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+      "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/eslint": {
+      "version": "8.57.0",
+      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
+      "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
+      "dev": true,
+      "dependencies": {
+        "@eslint-community/eslint-utils": "^4.2.0",
+        "@eslint-community/regexpp": "^4.6.1",
+        "@eslint/eslintrc": "^2.1.4",
+        "@eslint/js": "8.57.0",
+        "@humanwhocodes/config-array": "^0.11.14",
+        "@humanwhocodes/module-importer": "^1.0.1",
+        "@nodelib/fs.walk": "^1.2.8",
+        "@ungap/structured-clone": "^1.2.0",
+        "ajv": "^6.12.4",
+        "chalk": "^4.0.0",
+        "cross-spawn": "^7.0.2",
+        "debug": "^4.3.2",
+        "doctrine": "^3.0.0",
+        "escape-string-regexp": "^4.0.0",
+        "eslint-scope": "^7.2.2",
+        "eslint-visitor-keys": "^3.4.3",
+        "espree": "^9.6.1",
+        "esquery": "^1.4.2",
+        "esutils": "^2.0.2",
+        "fast-deep-equal": "^3.1.3",
+        "file-entry-cache": "^6.0.1",
+        "find-up": "^5.0.0",
+        "glob-parent": "^6.0.2",
+        "globals": "^13.19.0",
+        "graphemer": "^1.4.0",
+        "ignore": "^5.2.0",
+        "imurmurhash": "^0.1.4",
+        "is-glob": "^4.0.0",
+        "is-path-inside": "^3.0.3",
+        "js-yaml": "^4.1.0",
+        "json-stable-stringify-without-jsonify": "^1.0.1",
+        "levn": "^0.4.1",
+        "lodash.merge": "^4.6.2",
+        "minimatch": "^3.1.2",
+        "natural-compare": "^1.4.0",
+        "optionator": "^0.9.3",
+        "strip-ansi": "^6.0.1",
+        "text-table": "^0.2.0"
+      },
+      "bin": {
+        "eslint": "bin/eslint.js"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/eslint-config-airbnb-base": {
+      "version": "15.0.0",
+      "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz",
+      "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==",
+      "dev": true,
+      "dependencies": {
+        "confusing-browser-globals": "^1.0.10",
+        "object.assign": "^4.1.2",
+        "object.entries": "^1.1.5",
+        "semver": "^6.3.0"
+      },
+      "engines": {
+        "node": "^10.12.0 || >=12.0.0"
+      },
+      "peerDependencies": {
+        "eslint": "^7.32.0 || ^8.2.0",
+        "eslint-plugin-import": "^2.25.2"
+      }
+    },
+    "node_modules/eslint-config-airbnb-typescript": {
+      "version": "17.1.0",
+      "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-17.1.0.tgz",
+      "integrity": "sha512-GPxI5URre6dDpJ0CtcthSZVBAfI+Uw7un5OYNVxP2EYi3H81Jw701yFP7AU+/vCE7xBtFmjge7kfhhk4+RAiig==",
+      "dev": true,
+      "dependencies": {
+        "eslint-config-airbnb-base": "^15.0.0"
+      },
+      "peerDependencies": {
+        "@typescript-eslint/eslint-plugin": "^5.13.0 || ^6.0.0",
+        "@typescript-eslint/parser": "^5.0.0 || ^6.0.0",
+        "eslint": "^7.32.0 || ^8.2.0",
+        "eslint-plugin-import": "^2.25.3"
+      }
+    },
+    "node_modules/eslint-config-prettier": {
+      "version": "9.1.0",
+      "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz",
+      "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==",
+      "dev": true,
+      "bin": {
+        "eslint-config-prettier": "bin/cli.js"
+      },
+      "peerDependencies": {
+        "eslint": ">=7.0.0"
+      }
+    },
+    "node_modules/eslint-import-resolver-node": {
+      "version": "0.3.9",
+      "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
+      "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
+      "dev": true,
+      "dependencies": {
+        "debug": "^3.2.7",
+        "is-core-module": "^2.13.0",
+        "resolve": "^1.22.4"
+      }
+    },
+    "node_modules/eslint-import-resolver-node/node_modules/debug": {
+      "version": "3.2.7",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+      "dev": true,
+      "dependencies": {
+        "ms": "^2.1.1"
+      }
+    },
+    "node_modules/eslint-import-resolver-typescript": {
+      "version": "3.6.1",
+      "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz",
+      "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==",
+      "dev": true,
+      "dependencies": {
+        "debug": "^4.3.4",
+        "enhanced-resolve": "^5.12.0",
+        "eslint-module-utils": "^2.7.4",
+        "fast-glob": "^3.3.1",
+        "get-tsconfig": "^4.5.0",
+        "is-core-module": "^2.11.0",
+        "is-glob": "^4.0.3"
+      },
+      "engines": {
+        "node": "^14.18.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts"
+      },
+      "peerDependencies": {
+        "eslint": "*",
+        "eslint-plugin-import": "*"
+      }
+    },
+    "node_modules/eslint-module-utils": {
+      "version": "2.8.1",
+      "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz",
+      "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==",
+      "dev": true,
+      "dependencies": {
+        "debug": "^3.2.7"
+      },
+      "engines": {
+        "node": ">=4"
+      },
+      "peerDependenciesMeta": {
+        "eslint": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/eslint-module-utils/node_modules/debug": {
+      "version": "3.2.7",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+      "dev": true,
+      "dependencies": {
+        "ms": "^2.1.1"
+      }
+    },
+    "node_modules/eslint-plugin-import": {
+      "version": "2.29.1",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz",
+      "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==",
+      "dev": true,
+      "dependencies": {
+        "array-includes": "^3.1.7",
+        "array.prototype.findlastindex": "^1.2.3",
+        "array.prototype.flat": "^1.3.2",
+        "array.prototype.flatmap": "^1.3.2",
+        "debug": "^3.2.7",
+        "doctrine": "^2.1.0",
+        "eslint-import-resolver-node": "^0.3.9",
+        "eslint-module-utils": "^2.8.0",
+        "hasown": "^2.0.0",
+        "is-core-module": "^2.13.1",
+        "is-glob": "^4.0.3",
+        "minimatch": "^3.1.2",
+        "object.fromentries": "^2.0.7",
+        "object.groupby": "^1.0.1",
+        "object.values": "^1.1.7",
+        "semver": "^6.3.1",
+        "tsconfig-paths": "^3.15.0"
+      },
+      "engines": {
+        "node": ">=4"
+      },
+      "peerDependencies": {
+        "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
+      }
+    },
+    "node_modules/eslint-plugin-import/node_modules/debug": {
+      "version": "3.2.7",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+      "dev": true,
+      "dependencies": {
+        "ms": "^2.1.1"
+      }
+    },
+    "node_modules/eslint-plugin-import/node_modules/doctrine": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+      "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+      "dev": true,
+      "dependencies": {
+        "esutils": "^2.0.2"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/eslint-plugin-prettier": {
+      "version": "5.1.3",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz",
+      "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==",
+      "dev": true,
+      "dependencies": {
+        "prettier-linter-helpers": "^1.0.0",
+        "synckit": "^0.8.6"
+      },
+      "engines": {
+        "node": "^14.18.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint-plugin-prettier"
+      },
+      "peerDependencies": {
+        "@types/eslint": ">=8.0.0",
+        "eslint": ">=8.0.0",
+        "eslint-config-prettier": "*",
+        "prettier": ">=3.0.0"
+      },
+      "peerDependenciesMeta": {
+        "@types/eslint": {
+          "optional": true
+        },
+        "eslint-config-prettier": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/eslint-scope": {
+      "version": "5.1.1",
+      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+      "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+      "dev": true,
+      "dependencies": {
+        "esrecurse": "^4.3.0",
+        "estraverse": "^4.1.1"
+      },
+      "engines": {
+        "node": ">=8.0.0"
+      }
+    },
+    "node_modules/eslint-utils": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
+      "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+      "dev": true,
+      "dependencies": {
+        "eslint-visitor-keys": "^1.1.0"
+      },
+      "engines": {
+        "node": ">=6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/mysticatea"
+      }
+    },
+    "node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+      "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/eslint-visitor-keys": {
+      "version": "3.4.3",
+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+      "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+      "dev": true,
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/eslint/node_modules/ajv": {
+      "version": "6.12.6",
+      "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+      "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+      "dev": true,
+      "dependencies": {
+        "fast-deep-equal": "^3.1.1",
+        "fast-json-stable-stringify": "^2.0.0",
+        "json-schema-traverse": "^0.4.1",
+        "uri-js": "^4.2.2"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/epoberezkin"
+      }
+    },
+    "node_modules/eslint/node_modules/argparse": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+      "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+      "dev": true
+    },
+    "node_modules/eslint/node_modules/eslint-scope": {
+      "version": "7.2.2",
+      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+      "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
+      "dev": true,
+      "dependencies": {
+        "esrecurse": "^4.3.0",
+        "estraverse": "^5.2.0"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/eslint/node_modules/estraverse": {
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+      "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+      "dev": true,
+      "engines": {
+        "node": ">=4.0"
+      }
+    },
+    "node_modules/eslint/node_modules/globals": {
+      "version": "13.24.0",
+      "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+      "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+      "dev": true,
+      "dependencies": {
+        "type-fest": "^0.20.2"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/eslint/node_modules/js-yaml": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+      "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+      "dev": true,
+      "dependencies": {
+        "argparse": "^2.0.1"
+      },
+      "bin": {
+        "js-yaml": "bin/js-yaml.js"
+      }
+    },
+    "node_modules/eslint/node_modules/json-schema-traverse": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+      "dev": true
+    },
+    "node_modules/espree": {
+      "version": "9.6.1",
+      "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+      "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
+      "dev": true,
+      "dependencies": {
+        "acorn": "^8.9.0",
+        "acorn-jsx": "^5.3.2",
+        "eslint-visitor-keys": "^3.4.1"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/esprima": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+      "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+      "dev": true,
+      "bin": {
+        "esparse": "bin/esparse.js",
+        "esvalidate": "bin/esvalidate.js"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/esquery": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
+      "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
+      "dev": true,
+      "dependencies": {
+        "estraverse": "^5.1.0"
+      },
+      "engines": {
+        "node": ">=0.10"
+      }
+    },
+    "node_modules/esquery/node_modules/estraverse": {
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+      "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+      "dev": true,
+      "engines": {
+        "node": ">=4.0"
+      }
+    },
+    "node_modules/esrecurse": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+      "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+      "dev": true,
+      "dependencies": {
+        "estraverse": "^5.2.0"
+      },
+      "engines": {
+        "node": ">=4.0"
+      }
+    },
+    "node_modules/esrecurse/node_modules/estraverse": {
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+      "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+      "dev": true,
+      "engines": {
+        "node": ">=4.0"
+      }
+    },
+    "node_modules/estraverse": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+      "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+      "dev": true,
+      "engines": {
+        "node": ">=4.0"
+      }
+    },
+    "node_modules/estree-walker": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
+      "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+      "dev": true,
+      "dependencies": {
+        "@types/estree": "^1.0.0"
+      }
+    },
+    "node_modules/esutils": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+      "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/eventemitter3": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
+      "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==",
+      "dev": true
+    },
+    "node_modules/events": {
+      "version": "3.3.0",
+      "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+      "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+      "dev": true,
+      "peer": true,
+      "engines": {
+        "node": ">=0.8.x"
+      }
+    },
+    "node_modules/execa": {
+      "version": "8.0.1",
+      "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
+      "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
+      "dev": true,
+      "dependencies": {
+        "cross-spawn": "^7.0.3",
+        "get-stream": "^8.0.1",
+        "human-signals": "^5.0.0",
+        "is-stream": "^3.0.0",
+        "merge-stream": "^2.0.0",
+        "npm-run-path": "^5.1.0",
+        "onetime": "^6.0.0",
+        "signal-exit": "^4.1.0",
+        "strip-final-newline": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=16.17"
+      },
+      "funding": {
+        "url": "https://github.com/sindresorhus/execa?sponsor=1"
+      }
+    },
+    "node_modules/expand-brackets": {
+      "version": "2.1.4",
+      "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+      "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==",
+      "dev": true,
+      "dependencies": {
+        "debug": "^2.3.3",
+        "define-property": "^0.2.5",
+        "extend-shallow": "^2.0.1",
+        "posix-character-classes": "^0.1.0",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/expand-brackets/node_modules/debug": {
+      "version": "2.6.9",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+      "dev": true,
+      "dependencies": {
+        "ms": "2.0.0"
+      }
+    },
+    "node_modules/expand-brackets/node_modules/define-property": {
+      "version": "0.2.5",
+      "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+      "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+      "dev": true,
+      "dependencies": {
+        "is-descriptor": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/expand-brackets/node_modules/extend-shallow": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+      "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+      "dev": true,
+      "dependencies": {
+        "is-extendable": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/expand-brackets/node_modules/is-descriptor": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
+      "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
+      "dev": true,
+      "dependencies": {
+        "is-accessor-descriptor": "^1.0.1",
+        "is-data-descriptor": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/expand-brackets/node_modules/is-extendable": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+      "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/expand-brackets/node_modules/ms": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+      "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+      "dev": true
+    },
+    "node_modules/extend-shallow": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+      "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
+      "dev": true,
+      "dependencies": {
+        "assign-symbols": "^1.0.0",
+        "is-extendable": "^1.0.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/extglob": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+      "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+      "dev": true,
+      "dependencies": {
+        "array-unique": "^0.3.2",
+        "define-property": "^1.0.0",
+        "expand-brackets": "^2.1.4",
+        "extend-shallow": "^2.0.1",
+        "fragment-cache": "^0.2.1",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/extglob/node_modules/define-property": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+      "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
+      "dev": true,
+      "dependencies": {
+        "is-descriptor": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/extglob/node_modules/extend-shallow": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+      "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+      "dev": true,
+      "dependencies": {
+        "is-extendable": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/extglob/node_modules/is-extendable": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+      "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/fast-deep-equal": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+      "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+    },
+    "node_modules/fast-diff": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz",
+      "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==",
+      "dev": true
+    },
+    "node_modules/fast-glob": {
+      "version": "3.3.2",
+      "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+      "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+      "dependencies": {
+        "@nodelib/fs.stat": "^2.0.2",
+        "@nodelib/fs.walk": "^1.2.3",
+        "glob-parent": "^5.1.2",
+        "merge2": "^1.3.0",
+        "micromatch": "^4.0.4"
+      },
+      "engines": {
+        "node": ">=8.6.0"
+      }
+    },
+    "node_modules/fast-glob/node_modules/glob-parent": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+      "dependencies": {
+        "is-glob": "^4.0.1"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/fast-json-stable-stringify": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+      "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+      "dev": true
+    },
+    "node_modules/fast-levenshtein": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+      "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+      "dev": true
+    },
+    "node_modules/fast-url-parser": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz",
+      "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==",
+      "dev": true,
+      "dependencies": {
+        "punycode": "^1.3.2"
+      }
+    },
+    "node_modules/fast-url-parser/node_modules/punycode": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+      "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==",
+      "dev": true
+    },
+    "node_modules/fastq": {
+      "version": "1.17.1",
+      "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
+      "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+      "dependencies": {
+        "reusify": "^1.0.4"
+      }
+    },
+    "node_modules/figures": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+      "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
+      "dev": true,
+      "dependencies": {
+        "escape-string-regexp": "^1.0.5"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/figures/node_modules/escape-string-regexp": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+      "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.8.0"
+      }
+    },
+    "node_modules/file-entry-cache": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+      "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+      "dev": true,
+      "dependencies": {
+        "flat-cache": "^3.0.4"
+      },
+      "engines": {
+        "node": "^10.12.0 || >=12.0.0"
+      }
+    },
+    "node_modules/fill-range": {
+      "version": "7.1.1",
+      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+      "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+      "dependencies": {
+        "to-regex-range": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/find-cache-dir": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+      "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+      "dev": true,
+      "dependencies": {
+        "commondir": "^1.0.1",
+        "make-dir": "^2.0.0",
+        "pkg-dir": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/find-config": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/find-config/-/find-config-1.0.0.tgz",
+      "integrity": "sha512-Z+suHH+7LSE40WfUeZPIxSxypCWvrzdVc60xAjUShZeT5eMWM0/FQUduq3HjluyfAHWvC/aOBkT1pTZktyF/jg==",
+      "dependencies": {
+        "user-home": "^2.0.0"
+      },
+      "engines": {
+        "node": ">= 0.12"
+      }
+    },
+    "node_modules/find-up": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+      "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+      "dev": true,
+      "dependencies": {
+        "locate-path": "^6.0.0",
+        "path-exists": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/flat-cache": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+      "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
+      "dev": true,
+      "dependencies": {
+        "flatted": "^3.2.9",
+        "keyv": "^4.5.3",
+        "rimraf": "^3.0.2"
+      },
+      "engines": {
+        "node": "^10.12.0 || >=12.0.0"
+      }
+    },
+    "node_modules/flatted": {
+      "version": "3.3.1",
+      "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
+      "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
+      "dev": true
+    },
+    "node_modules/flow-parser": {
+      "version": "0.237.1",
+      "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.237.1.tgz",
+      "integrity": "sha512-PUeG8GQLmrv49vEcFcag7mriJvVs7Yyegnv1DGskvcokhP8UyqWsLV0KoTQ1iAW3ePVUIGUc3MFfBaXwz9MmIg==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.4.0"
+      }
+    },
+    "node_modules/for-each": {
+      "version": "0.3.3",
+      "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+      "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+      "dev": true,
+      "dependencies": {
+        "is-callable": "^1.1.3"
+      }
+    },
+    "node_modules/for-in": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+      "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/foreground-child": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
+      "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
+      "dependencies": {
+        "cross-spawn": "^7.0.0",
+        "signal-exit": "^4.0.1"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/fragment-cache": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+      "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==",
+      "dev": true,
+      "dependencies": {
+        "map-cache": "^0.2.2"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/fs-extra": {
+      "version": "11.2.0",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
+      "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
+      "dev": true,
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=14.14"
+      }
+    },
+    "node_modules/fs.realpath": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+      "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+    },
+    "node_modules/fsevents": {
+      "version": "2.3.3",
+      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+      "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+      "hasInstallScript": true,
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+      }
+    },
+    "node_modules/function-bind": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/function.prototype.name": {
+      "version": "1.1.6",
+      "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
+      "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.2.0",
+        "es-abstract": "^1.22.1",
+        "functions-have-names": "^1.2.3"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/functional-red-black-tree": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+      "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
+      "dev": true
+    },
+    "node_modules/functions-have-names": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+      "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/gensync": {
+      "version": "1.0.0-beta.2",
+      "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+      "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+      "dev": true,
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/get-caller-file": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+      "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+      "engines": {
+        "node": "6.* || 8.* || >= 10.*"
+      }
+    },
+    "node_modules/get-east-asian-width": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz",
+      "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==",
+      "dev": true,
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/get-func-name": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz",
+      "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==",
+      "dev": true,
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/get-intrinsic": {
+      "version": "1.2.4",
+      "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
+      "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+      "dev": true,
+      "dependencies": {
+        "es-errors": "^1.3.0",
+        "function-bind": "^1.1.2",
+        "has-proto": "^1.0.1",
+        "has-symbols": "^1.0.3",
+        "hasown": "^2.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/get-stream": {
+      "version": "8.0.1",
+      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
+      "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
+      "dev": true,
+      "engines": {
+        "node": ">=16"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/get-symbol-description": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
+      "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.5",
+        "es-errors": "^1.3.0",
+        "get-intrinsic": "^1.2.4"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/get-tsconfig": {
+      "version": "4.7.5",
+      "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz",
+      "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==",
+      "dev": true,
+      "dependencies": {
+        "resolve-pkg-maps": "^1.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
+      }
+    },
+    "node_modules/get-value": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+      "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/glob": {
+      "version": "8.1.0",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
+      "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
+      "deprecated": "Glob versions prior to v9 are no longer supported",
+      "dependencies": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^5.0.1",
+        "once": "^1.3.0"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/glob-parent": {
+      "version": "6.0.2",
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+      "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+      "dependencies": {
+        "is-glob": "^4.0.3"
+      },
+      "engines": {
+        "node": ">=10.13.0"
+      }
+    },
+    "node_modules/glob-to-regexp": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
+      "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
+      "dev": true,
+      "peer": true
+    },
+    "node_modules/glob/node_modules/brace-expansion": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+      "dependencies": {
+        "balanced-match": "^1.0.0"
+      }
+    },
+    "node_modules/glob/node_modules/minimatch": {
+      "version": "5.1.6",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+      "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+      "dependencies": {
+        "brace-expansion": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/globals": {
+      "version": "11.12.0",
+      "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+      "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/globalthis": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
+      "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
+      "dev": true,
+      "dependencies": {
+        "define-properties": "^1.2.1",
+        "gopd": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/globby": {
+      "version": "11.1.0",
+      "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+      "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+      "dev": true,
+      "dependencies": {
+        "array-union": "^2.1.0",
+        "dir-glob": "^3.0.1",
+        "fast-glob": "^3.2.9",
+        "ignore": "^5.2.0",
+        "merge2": "^1.4.1",
+        "slash": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/gopd": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+      "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+      "dev": true,
+      "dependencies": {
+        "get-intrinsic": "^1.1.3"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/graceful-fs": {
+      "version": "4.2.11",
+      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+      "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+      "dev": true
+    },
+    "node_modules/graphemer": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+      "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
+      "dev": true
+    },
+    "node_modules/has-bigints": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+      "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-flag": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/has-property-descriptors": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+      "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+      "dev": true,
+      "dependencies": {
+        "es-define-property": "^1.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-proto": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
+      "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-symbols": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+      "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-tostringtag": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+      "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+      "dev": true,
+      "dependencies": {
+        "has-symbols": "^1.0.3"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-value": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+      "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==",
+      "dev": true,
+      "dependencies": {
+        "get-value": "^2.0.6",
+        "has-values": "^1.0.0",
+        "isobject": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/has-values": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+      "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==",
+      "dev": true,
+      "dependencies": {
+        "is-number": "^3.0.0",
+        "kind-of": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/has-values/node_modules/is-number": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+      "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
+      "dev": true,
+      "dependencies": {
+        "kind-of": "^3.0.2"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/has-values/node_modules/is-number/node_modules/kind-of": {
+      "version": "3.2.2",
+      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+      "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+      "dev": true,
+      "dependencies": {
+        "is-buffer": "^1.1.5"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/has-values/node_modules/kind-of": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+      "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==",
+      "dev": true,
+      "dependencies": {
+        "is-buffer": "^1.1.5"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/hasown": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+      "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+      "dependencies": {
+        "function-bind": "^1.1.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/html-attribute-sorter": {
+      "version": "0.4.3",
+      "resolved": "https://registry.npmjs.org/html-attribute-sorter/-/html-attribute-sorter-0.4.3.tgz",
+      "integrity": "sha512-HWSvaXJki44tg0uR1t+j5pRdUVpNiZcJaoB/PFhss/YoAw9cxUDLCpIBbLWQmKjBQfWk91P6LaRnredEyabrDw==",
+      "engines": {
+        "node": ">= 12.0.0"
+      }
+    },
+    "node_modules/http-proxy-agent": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
+      "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
+      "dev": true,
+      "dependencies": {
+        "@tootallnate/once": "1",
+        "agent-base": "6",
+        "debug": "4"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/https-proxy-agent": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+      "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+      "dev": true,
+      "dependencies": {
+        "agent-base": "6",
+        "debug": "4"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/human-signals": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz",
+      "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=16.17.0"
+      }
+    },
+    "node_modules/husky": {
+      "version": "8.0.3",
+      "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz",
+      "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==",
+      "dev": true,
+      "bin": {
+        "husky": "lib/bin.js"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/typicode"
+      }
+    },
+    "node_modules/iconv-lite": {
+      "version": "0.6.3",
+      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+      "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+      "dev": true,
+      "dependencies": {
+        "safer-buffer": ">= 2.1.2 < 3.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/ignore": {
+      "version": "5.3.1",
+      "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
+      "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
+      "engines": {
+        "node": ">= 4"
+      }
+    },
+    "node_modules/ignore-walk": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz",
+      "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==",
+      "dev": true,
+      "dependencies": {
+        "minimatch": "^3.0.4"
+      }
+    },
+    "node_modules/import-fresh": {
+      "version": "3.3.0",
+      "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+      "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+      "dev": true,
+      "dependencies": {
+        "parent-module": "^1.0.0",
+        "resolve-from": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/imurmurhash": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+      "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.8.19"
+      }
+    },
+    "node_modules/inflight": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+      "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+      "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
+      "dependencies": {
+        "once": "^1.3.0",
+        "wrappy": "1"
+      }
+    },
+    "node_modules/inherits": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+    },
+    "node_modules/ini": {
+      "version": "1.3.8",
+      "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+      "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
+    },
+    "node_modules/internal-slot": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
+      "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==",
+      "dev": true,
+      "dependencies": {
+        "es-errors": "^1.3.0",
+        "hasown": "^2.0.0",
+        "side-channel": "^1.0.4"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/is-accessor-descriptor": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz",
+      "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==",
+      "dev": true,
+      "dependencies": {
+        "hasown": "^2.0.0"
+      },
+      "engines": {
+        "node": ">= 0.10"
+      }
+    },
+    "node_modules/is-array-buffer": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz",
+      "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "get-intrinsic": "^1.2.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-bigint": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+      "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+      "dev": true,
+      "dependencies": {
+        "has-bigints": "^1.0.1"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-binary-path": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+      "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+      "dependencies": {
+        "binary-extensions": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/is-boolean-object": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
+      "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "has-tostringtag": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-buffer": {
+      "version": "1.1.6",
+      "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+      "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+      "dev": true
+    },
+    "node_modules/is-callable": {
+      "version": "1.2.7",
+      "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+      "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-core-module": {
+      "version": "2.13.1",
+      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+      "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
+      "dependencies": {
+        "hasown": "^2.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-data-descriptor": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz",
+      "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==",
+      "dev": true,
+      "dependencies": {
+        "hasown": "^2.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/is-data-view": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz",
+      "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==",
+      "dev": true,
+      "dependencies": {
+        "is-typed-array": "^1.1.13"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-date-object": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
+      "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+      "dev": true,
+      "dependencies": {
+        "has-tostringtag": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-descriptor": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz",
+      "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==",
+      "dev": true,
+      "dependencies": {
+        "is-accessor-descriptor": "^1.0.1",
+        "is-data-descriptor": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/is-extendable": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+      "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+      "dev": true,
+      "dependencies": {
+        "is-plain-object": "^2.0.4"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/is-extglob": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+      "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/is-fullwidth-code-point": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz",
+      "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/is-glob": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+      "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+      "dependencies": {
+        "is-extglob": "^2.1.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/is-negative-zero": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+      "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-number": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+      "engines": {
+        "node": ">=0.12.0"
+      }
+    },
+    "node_modules/is-number-object": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+      "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+      "dev": true,
+      "dependencies": {
+        "has-tostringtag": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-path-inside": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
+      "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/is-plain-object": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+      "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+      "dev": true,
+      "dependencies": {
+        "isobject": "^3.0.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/is-regex": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+      "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "has-tostringtag": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-shared-array-buffer": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz",
+      "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.7"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-stream": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
+      "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
+      "dev": true,
+      "engines": {
+        "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/is-string": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+      "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+      "dev": true,
+      "dependencies": {
+        "has-tostringtag": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-symbol": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
+      "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+      "dev": true,
+      "dependencies": {
+        "has-symbols": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-typed-array": {
+      "version": "1.1.13",
+      "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
+      "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
+      "dev": true,
+      "dependencies": {
+        "which-typed-array": "^1.1.14"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-weakref": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
+      "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-windows": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+      "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/isarray": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+      "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+      "dev": true
+    },
+    "node_modules/isexe": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+      "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
+    },
+    "node_modules/isobject": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+      "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/jackspeak": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz",
+      "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==",
+      "dependencies": {
+        "@isaacs/cliui": "^8.0.2"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      },
+      "optionalDependencies": {
+        "@pkgjs/parseargs": "^0.11.0"
+      }
+    },
+    "node_modules/jest-worker": {
+      "version": "24.9.0",
+      "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz",
+      "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==",
+      "dev": true,
+      "dependencies": {
+        "merge-stream": "^2.0.0",
+        "supports-color": "^6.1.0"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/jest-worker/node_modules/has-flag": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+      "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/jest-worker/node_modules/supports-color": {
+      "version": "6.1.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+      "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+      "dev": true,
+      "dependencies": {
+        "has-flag": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/jiti": {
+      "version": "1.21.0",
+      "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz",
+      "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==",
+      "bin": {
+        "jiti": "bin/jiti.js"
+      }
+    },
+    "node_modules/js-beautify": {
+      "version": "1.15.1",
+      "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.1.tgz",
+      "integrity": "sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA==",
+      "dependencies": {
+        "config-chain": "^1.1.13",
+        "editorconfig": "^1.0.4",
+        "glob": "^10.3.3",
+        "js-cookie": "^3.0.5",
+        "nopt": "^7.2.0"
+      },
+      "bin": {
+        "css-beautify": "js/bin/css-beautify.js",
+        "html-beautify": "js/bin/html-beautify.js",
+        "js-beautify": "js/bin/js-beautify.js"
+      },
+      "engines": {
+        "node": ">=14"
+      }
+    },
+    "node_modules/js-beautify/node_modules/brace-expansion": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+      "dependencies": {
+        "balanced-match": "^1.0.0"
+      }
+    },
+    "node_modules/js-beautify/node_modules/glob": {
+      "version": "10.4.1",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
+      "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
+      "dependencies": {
+        "foreground-child": "^3.1.0",
+        "jackspeak": "^3.1.2",
+        "minimatch": "^9.0.4",
+        "minipass": "^7.1.2",
+        "path-scurry": "^1.11.1"
+      },
+      "bin": {
+        "glob": "dist/esm/bin.mjs"
+      },
+      "engines": {
+        "node": ">=16 || 14 >=14.18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/js-beautify/node_modules/minimatch": {
+      "version": "9.0.4",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+      "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+      "dependencies": {
+        "brace-expansion": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=16 || 14 >=14.17"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/js-cookie": {
+      "version": "3.0.5",
+      "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz",
+      "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==",
+      "engines": {
+        "node": ">=14"
+      }
+    },
+    "node_modules/js-tokens": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+      "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+      "dev": true
+    },
+    "node_modules/js-yaml": {
+      "version": "3.14.1",
+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+      "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+      "dev": true,
+      "dependencies": {
+        "argparse": "^1.0.7",
+        "esprima": "^4.0.0"
+      },
+      "bin": {
+        "js-yaml": "bin/js-yaml.js"
+      }
+    },
+    "node_modules/jscodeshift": {
+      "version": "0.6.4",
+      "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.6.4.tgz",
+      "integrity": "sha512-+NF/tlNbc2WEhXUuc4WEJLsJumF84tnaMUZW2hyJw3jThKKRvsPX4sPJVgO1lPE28z0gNL+gwniLG9d8mYvQCQ==",
+      "dev": true,
+      "dependencies": {
+        "@babel/core": "^7.1.6",
+        "@babel/parser": "^7.1.6",
+        "@babel/plugin-proposal-class-properties": "^7.1.0",
+        "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
+        "@babel/preset-env": "^7.1.6",
+        "@babel/preset-flow": "^7.0.0",
+        "@babel/preset-typescript": "^7.1.0",
+        "@babel/register": "^7.0.0",
+        "babel-core": "^7.0.0-bridge.0",
+        "colors": "^1.1.2",
+        "flow-parser": "0.*",
+        "graceful-fs": "^4.1.11",
+        "micromatch": "^3.1.10",
+        "neo-async": "^2.5.0",
+        "node-dir": "^0.1.17",
+        "recast": "^0.16.1",
+        "temp": "^0.8.1",
+        "write-file-atomic": "^2.3.0"
+      },
+      "bin": {
+        "jscodeshift": "bin/jscodeshift.js"
+      }
+    },
+    "node_modules/jscodeshift/node_modules/braces": {
+      "version": "2.3.2",
+      "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+      "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+      "dev": true,
+      "dependencies": {
+        "arr-flatten": "^1.1.0",
+        "array-unique": "^0.3.2",
+        "extend-shallow": "^2.0.1",
+        "fill-range": "^4.0.0",
+        "isobject": "^3.0.1",
+        "repeat-element": "^1.1.2",
+        "snapdragon": "^0.8.1",
+        "snapdragon-node": "^2.0.1",
+        "split-string": "^3.0.2",
+        "to-regex": "^3.0.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/jscodeshift/node_modules/braces/node_modules/extend-shallow": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+      "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+      "dev": true,
+      "dependencies": {
+        "is-extendable": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/jscodeshift/node_modules/fill-range": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+      "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
+      "dev": true,
+      "dependencies": {
+        "extend-shallow": "^2.0.1",
+        "is-number": "^3.0.0",
+        "repeat-string": "^1.6.1",
+        "to-regex-range": "^2.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/jscodeshift/node_modules/fill-range/node_modules/extend-shallow": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+      "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+      "dev": true,
+      "dependencies": {
+        "is-extendable": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/jscodeshift/node_modules/is-extendable": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+      "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/jscodeshift/node_modules/is-number": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+      "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
+      "dev": true,
+      "dependencies": {
+        "kind-of": "^3.0.2"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/jscodeshift/node_modules/is-number/node_modules/kind-of": {
+      "version": "3.2.2",
+      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+      "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+      "dev": true,
+      "dependencies": {
+        "is-buffer": "^1.1.5"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/jscodeshift/node_modules/micromatch": {
+      "version": "3.1.10",
+      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+      "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+      "dev": true,
+      "dependencies": {
+        "arr-diff": "^4.0.0",
+        "array-unique": "^0.3.2",
+        "braces": "^2.3.1",
+        "define-property": "^2.0.2",
+        "extend-shallow": "^3.0.2",
+        "extglob": "^2.0.4",
+        "fragment-cache": "^0.2.1",
+        "kind-of": "^6.0.2",
+        "nanomatch": "^1.2.9",
+        "object.pick": "^1.3.0",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.2"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/jscodeshift/node_modules/to-regex-range": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+      "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
+      "dev": true,
+      "dependencies": {
+        "is-number": "^3.0.0",
+        "repeat-string": "^1.6.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/jsesc": {
+      "version": "2.5.2",
+      "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+      "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+      "dev": true,
+      "bin": {
+        "jsesc": "bin/jsesc"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/json-buffer": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+      "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+      "dev": true
+    },
+    "node_modules/json-parse-even-better-errors": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+      "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+      "dev": true,
+      "peer": true
+    },
+    "node_modules/json-schema": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
+      "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
+      "dev": true
+    },
+    "node_modules/json-schema-traverse": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+      "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+    },
+    "node_modules/json-stable-stringify-without-jsonify": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+      "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+      "dev": true
+    },
+    "node_modules/json5": {
+      "version": "2.2.3",
+      "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+      "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+      "dev": true,
+      "bin": {
+        "json5": "lib/cli.js"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/json5-writer": {
+      "version": "0.1.8",
+      "resolved": "https://registry.npmjs.org/json5-writer/-/json5-writer-0.1.8.tgz",
+      "integrity": "sha512-h5sqkk/vSKvESOUTBniGWs8p8nTzHsoDrxPS9enJfQVINqXv3lm+FAyizLwbrCwCn0q7NXqDBb+r8AdUdK3XZw==",
+      "dev": true,
+      "dependencies": {
+        "jscodeshift": "^0.6.3"
+      }
+    },
+    "node_modules/jsonfile": {
+      "version": "6.1.0",
+      "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+      "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+      "dev": true,
+      "dependencies": {
+        "universalify": "^2.0.0"
+      },
+      "optionalDependencies": {
+        "graceful-fs": "^4.1.6"
+      }
+    },
+    "node_modules/keyv": {
+      "version": "4.5.4",
+      "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+      "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+      "dev": true,
+      "dependencies": {
+        "json-buffer": "3.0.1"
+      }
+    },
+    "node_modules/kind-of": {
+      "version": "6.0.3",
+      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+      "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/levn": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+      "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+      "dev": true,
+      "dependencies": {
+        "prelude-ls": "^1.2.1",
+        "type-check": "~0.4.0"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/lilconfig": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz",
+      "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==",
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/antonk52"
+      }
+    },
+    "node_modules/lines-and-columns": {
+      "version": "1.2.4",
+      "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+      "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
+    },
+    "node_modules/linguist-languages": {
+      "version": "7.27.0",
+      "resolved": "https://registry.npmjs.org/linguist-languages/-/linguist-languages-7.27.0.tgz",
+      "integrity": "sha512-Wzx/22c5Jsv2ag+uKy+ITanGA5hzvBZngrNGDXLTC7ZjGM6FLCYGgomauTkxNJeP9of353OM0pWqngYA180xgw=="
+    },
+    "node_modules/lint-staged": {
+      "version": "15.2.5",
+      "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.5.tgz",
+      "integrity": "sha512-j+DfX7W9YUvdzEZl3Rk47FhDF6xwDBV5wwsCPw6BwWZVPYJemusQmvb9bRsW23Sqsaa+vRloAWogbK4BUuU2zA==",
+      "dev": true,
+      "dependencies": {
+        "chalk": "~5.3.0",
+        "commander": "~12.1.0",
+        "debug": "~4.3.4",
+        "execa": "~8.0.1",
+        "lilconfig": "~3.1.1",
+        "listr2": "~8.2.1",
+        "micromatch": "~4.0.7",
+        "pidtree": "~0.6.0",
+        "string-argv": "~0.3.2",
+        "yaml": "~2.4.2"
+      },
+      "bin": {
+        "lint-staged": "bin/lint-staged.js"
+      },
+      "engines": {
+        "node": ">=18.12.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/lint-staged"
+      }
+    },
+    "node_modules/lint-staged/node_modules/chalk": {
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+      "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
+      "dev": true,
+      "engines": {
+        "node": "^12.17.0 || ^14.13 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/chalk?sponsor=1"
+      }
+    },
+    "node_modules/lint-staged/node_modules/commander": {
+      "version": "12.1.0",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",
+      "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==",
+      "dev": true,
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/listr2": {
+      "version": "8.2.1",
+      "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.1.tgz",
+      "integrity": "sha512-irTfvpib/rNiD637xeevjO2l3Z5loZmuaRi0L0YE5LfijwVY96oyVn0DFD3o/teAok7nfobMG1THvvcHh/BP6g==",
+      "dev": true,
+      "dependencies": {
+        "cli-truncate": "^4.0.0",
+        "colorette": "^2.0.20",
+        "eventemitter3": "^5.0.1",
+        "log-update": "^6.0.0",
+        "rfdc": "^1.3.1",
+        "wrap-ansi": "^9.0.0"
+      },
+      "engines": {
+        "node": ">=18.0.0"
+      }
+    },
+    "node_modules/loader-runner": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
+      "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
+      "dev": true,
+      "peer": true,
+      "engines": {
+        "node": ">=6.11.5"
+      }
+    },
+    "node_modules/local-pkg": {
+      "version": "0.5.0",
+      "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz",
+      "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==",
+      "dev": true,
+      "dependencies": {
+        "mlly": "^1.4.2",
+        "pkg-types": "^1.0.3"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/antfu"
+      }
+    },
+    "node_modules/locate-path": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+      "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+      "dev": true,
+      "dependencies": {
+        "p-locate": "^5.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/lodash": {
+      "version": "4.17.21",
+      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+    },
+    "node_modules/lodash.debounce": {
+      "version": "4.0.8",
+      "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+      "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
+      "dev": true
+    },
+    "node_modules/lodash.merge": {
+      "version": "4.6.2",
+      "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+      "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+      "dev": true
+    },
+    "node_modules/lodash.truncate": {
+      "version": "4.4.2",
+      "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
+      "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==",
+      "dev": true
+    },
+    "node_modules/log-update": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.0.0.tgz",
+      "integrity": "sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==",
+      "dev": true,
+      "dependencies": {
+        "ansi-escapes": "^6.2.0",
+        "cli-cursor": "^4.0.0",
+        "slice-ansi": "^7.0.0",
+        "strip-ansi": "^7.1.0",
+        "wrap-ansi": "^9.0.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/log-update/node_modules/ansi-regex": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+      "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+      "dev": true,
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+      }
+    },
+    "node_modules/log-update/node_modules/ansi-styles": {
+      "version": "6.2.1",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+      "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+      "dev": true,
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/log-update/node_modules/is-fullwidth-code-point": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz",
+      "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==",
+      "dev": true,
+      "dependencies": {
+        "get-east-asian-width": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/log-update/node_modules/slice-ansi": {
+      "version": "7.1.0",
+      "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz",
+      "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==",
+      "dev": true,
+      "dependencies": {
+        "ansi-styles": "^6.2.1",
+        "is-fullwidth-code-point": "^5.0.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+      }
+    },
+    "node_modules/log-update/node_modules/strip-ansi": {
+      "version": "7.1.0",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+      "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+      "dev": true,
+      "dependencies": {
+        "ansi-regex": "^6.0.1"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+      }
+    },
+    "node_modules/loupe": {
+      "version": "2.3.7",
+      "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz",
+      "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==",
+      "dev": true,
+      "dependencies": {
+        "get-func-name": "^2.0.1"
+      }
+    },
+    "node_modules/lru-cache": {
+      "version": "5.1.1",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+      "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+      "dev": true,
+      "dependencies": {
+        "yallist": "^3.0.2"
+      }
+    },
+    "node_modules/magic-string": {
+      "version": "0.30.10",
+      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz",
+      "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
+      "dev": true,
+      "dependencies": {
+        "@jridgewell/sourcemap-codec": "^1.4.15"
+      }
+    },
+    "node_modules/make-dir": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+      "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+      "dev": true,
+      "dependencies": {
+        "pify": "^4.0.1",
+        "semver": "^5.6.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/make-dir/node_modules/pify": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+      "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/make-dir/node_modules/semver": {
+      "version": "5.7.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+      "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+      "dev": true,
+      "bin": {
+        "semver": "bin/semver"
+      }
+    },
+    "node_modules/make-error": {
+      "version": "1.3.6",
+      "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
+      "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
+      "devOptional": true
+    },
+    "node_modules/map-cache": {
+      "version": "0.2.2",
+      "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+      "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/map-visit": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+      "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==",
+      "dev": true,
+      "dependencies": {
+        "object-visit": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/merge-stream": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+      "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+      "dev": true
+    },
+    "node_modules/merge2": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+      "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/micromatch": {
+      "version": "4.0.7",
+      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
+      "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
+      "dependencies": {
+        "braces": "^3.0.3",
+        "picomatch": "^2.3.1"
+      },
+      "engines": {
+        "node": ">=8.6"
+      }
+    },
+    "node_modules/mime-db": {
+      "version": "1.52.0",
+      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+      "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+      "dev": true,
+      "peer": true,
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/mime-types": {
+      "version": "2.1.35",
+      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+      "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+      "dev": true,
+      "peer": true,
+      "dependencies": {
+        "mime-db": "1.52.0"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/mimic-fn": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
+      "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
+      "dev": true,
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/minimatch": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+      "dev": true,
+      "dependencies": {
+        "brace-expansion": "^1.1.7"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/minimist": {
+      "version": "1.2.8",
+      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+      "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/minipass": {
+      "version": "7.1.2",
+      "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+      "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+      "engines": {
+        "node": ">=16 || 14 >=14.17"
+      }
+    },
+    "node_modules/mixin-deep": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+      "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+      "dev": true,
+      "dependencies": {
+        "for-in": "^1.0.2",
+        "is-extendable": "^1.0.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/mkdirp": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+      "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+      "dev": true,
+      "bin": {
+        "mkdirp": "bin/cmd.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/mlly": {
+      "version": "1.7.0",
+      "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.0.tgz",
+      "integrity": "sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==",
+      "dev": true,
+      "dependencies": {
+        "acorn": "^8.11.3",
+        "pathe": "^1.1.2",
+        "pkg-types": "^1.1.0",
+        "ufo": "^1.5.3"
+      }
+    },
+    "node_modules/ms": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+      "dev": true
+    },
+    "node_modules/mz": {
+      "version": "2.7.0",
+      "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
+      "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
+      "dependencies": {
+        "any-promise": "^1.0.0",
+        "object-assign": "^4.0.1",
+        "thenify-all": "^1.0.0"
+      }
+    },
+    "node_modules/nanoid": {
+      "version": "3.3.7",
+      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+      "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/ai"
+        }
+      ],
+      "bin": {
+        "nanoid": "bin/nanoid.cjs"
+      },
+      "engines": {
+        "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+      }
+    },
+    "node_modules/nanomatch": {
+      "version": "1.2.13",
+      "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+      "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+      "dev": true,
+      "dependencies": {
+        "arr-diff": "^4.0.0",
+        "array-unique": "^0.3.2",
+        "define-property": "^2.0.2",
+        "extend-shallow": "^3.0.2",
+        "fragment-cache": "^0.2.1",
+        "is-windows": "^1.0.2",
+        "kind-of": "^6.0.2",
+        "object.pick": "^1.3.0",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/natural-compare": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+      "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+      "dev": true
+    },
+    "node_modules/natural-compare-lite": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
+      "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
+      "dev": true
+    },
+    "node_modules/neo-async": {
+      "version": "2.6.2",
+      "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+      "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+      "dev": true
+    },
+    "node_modules/node-dir": {
+      "version": "0.1.17",
+      "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz",
+      "integrity": "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==",
+      "dev": true,
+      "dependencies": {
+        "minimatch": "^3.0.2"
+      },
+      "engines": {
+        "node": ">= 0.10.5"
+      }
+    },
+    "node_modules/node-fetch": {
+      "version": "2.7.0",
+      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+      "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+      "dev": true,
+      "dependencies": {
+        "whatwg-url": "^5.0.0"
+      },
+      "engines": {
+        "node": "4.x || >=6.0.0"
+      },
+      "peerDependencies": {
+        "encoding": "^0.1.0"
+      },
+      "peerDependenciesMeta": {
+        "encoding": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/node-releases": {
+      "version": "2.0.14",
+      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
+      "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
+      "dev": true
+    },
+    "node_modules/nopt": {
+      "version": "7.2.1",
+      "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz",
+      "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==",
+      "dependencies": {
+        "abbrev": "^2.0.0"
+      },
+      "bin": {
+        "nopt": "bin/nopt.js"
+      },
+      "engines": {
+        "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+      }
+    },
+    "node_modules/normalize-path": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+      "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/npm-run-path": {
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
+      "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
+      "dev": true,
+      "dependencies": {
+        "path-key": "^4.0.0"
+      },
+      "engines": {
+        "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/npm-run-path/node_modules/path-key": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
+      "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/object-assign": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+      "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/object-copy": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+      "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==",
+      "dev": true,
+      "dependencies": {
+        "copy-descriptor": "^0.1.0",
+        "define-property": "^0.2.5",
+        "kind-of": "^3.0.3"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/object-copy/node_modules/define-property": {
+      "version": "0.2.5",
+      "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+      "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+      "dev": true,
+      "dependencies": {
+        "is-descriptor": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/object-copy/node_modules/is-descriptor": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
+      "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
+      "dev": true,
+      "dependencies": {
+        "is-accessor-descriptor": "^1.0.1",
+        "is-data-descriptor": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/object-copy/node_modules/kind-of": {
+      "version": "3.2.2",
+      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+      "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+      "dev": true,
+      "dependencies": {
+        "is-buffer": "^1.1.5"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/object-hash": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
+      "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/object-inspect": {
+      "version": "1.13.1",
+      "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
+      "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/object-keys": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+      "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/object-visit": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+      "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==",
+      "dev": true,
+      "dependencies": {
+        "isobject": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/object.assign": {
+      "version": "4.1.5",
+      "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
+      "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.5",
+        "define-properties": "^1.2.1",
+        "has-symbols": "^1.0.3",
+        "object-keys": "^1.1.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/object.entries": {
+      "version": "1.1.8",
+      "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz",
+      "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.7",
+        "define-properties": "^1.2.1",
+        "es-object-atoms": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/object.fromentries": {
+      "version": "2.0.8",
+      "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
+      "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.7",
+        "define-properties": "^1.2.1",
+        "es-abstract": "^1.23.2",
+        "es-object-atoms": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/object.groupby": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz",
+      "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.7",
+        "define-properties": "^1.2.1",
+        "es-abstract": "^1.23.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/object.pick": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+      "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==",
+      "dev": true,
+      "dependencies": {
+        "isobject": "^3.0.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/object.values": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz",
+      "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.7",
+        "define-properties": "^1.2.1",
+        "es-object-atoms": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+      "dependencies": {
+        "wrappy": "1"
+      }
+    },
+    "node_modules/onetime": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
+      "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
+      "dev": true,
+      "dependencies": {
+        "mimic-fn": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/optionator": {
+      "version": "0.9.4",
+      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
+      "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
+      "dev": true,
+      "dependencies": {
+        "deep-is": "^0.1.3",
+        "fast-levenshtein": "^2.0.6",
+        "levn": "^0.4.1",
+        "prelude-ls": "^1.2.1",
+        "type-check": "^0.4.0",
+        "word-wrap": "^1.2.5"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/os-homedir": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+      "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/p-limit": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+      "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+      "dev": true,
+      "dependencies": {
+        "yocto-queue": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/p-locate": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+      "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+      "dev": true,
+      "dependencies": {
+        "p-limit": "^3.0.2"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/p-try": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+      "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/parent-module": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+      "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+      "dev": true,
+      "dependencies": {
+        "callsites": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/parse-ms": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz",
+      "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/pascalcase": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+      "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/path-browserify": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
+      "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
+      "dev": true
+    },
+    "node_modules/path-exists": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+      "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/path-is-absolute": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+      "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/path-key": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+      "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/path-parse": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+      "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
+    },
+    "node_modules/path-scurry": {
+      "version": "1.11.1",
+      "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+      "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+      "dependencies": {
+        "lru-cache": "^10.2.0",
+        "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+      },
+      "engines": {
+        "node": ">=16 || 14 >=14.18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/path-scurry/node_modules/lru-cache": {
+      "version": "10.2.2",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz",
+      "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==",
+      "engines": {
+        "node": "14 || >=16.14"
+      }
+    },
+    "node_modules/path-type": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+      "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/pathe": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
+      "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
+      "dev": true
+    },
+    "node_modules/pathval": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
+      "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
+      "dev": true,
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/php-parser": {
+      "version": "3.1.5",
+      "resolved": "https://registry.npmjs.org/php-parser/-/php-parser-3.1.5.tgz",
+      "integrity": "sha512-jEY2DcbgCm5aclzBdfW86GM6VEIWcSlhTBSHN1qhJguVePlYe28GhwS0yoeLYXpM2K8y6wzLwrbq814n2PHSoQ=="
+    },
+    "node_modules/picocolors": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
+      "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew=="
+    },
+    "node_modules/picomatch": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+      "engines": {
+        "node": ">=8.6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/jonschlinkert"
+      }
+    },
+    "node_modules/pidtree": {
+      "version": "0.6.0",
+      "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz",
+      "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==",
+      "dev": true,
+      "bin": {
+        "pidtree": "bin/pidtree.js"
+      },
+      "engines": {
+        "node": ">=0.10"
+      }
+    },
+    "node_modules/pify": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+      "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/pirates": {
+      "version": "4.0.6",
+      "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
+      "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/pkg-dir": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+      "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+      "dev": true,
+      "dependencies": {
+        "find-up": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/pkg-dir/node_modules/find-up": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+      "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+      "dev": true,
+      "dependencies": {
+        "locate-path": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/pkg-dir/node_modules/locate-path": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+      "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+      "dev": true,
+      "dependencies": {
+        "p-locate": "^3.0.0",
+        "path-exists": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/pkg-dir/node_modules/p-limit": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+      "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+      "dev": true,
+      "dependencies": {
+        "p-try": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/pkg-dir/node_modules/p-locate": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+      "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+      "dev": true,
+      "dependencies": {
+        "p-limit": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/pkg-dir/node_modules/path-exists": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+      "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/pkg-types": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.1.tgz",
+      "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==",
+      "dev": true,
+      "dependencies": {
+        "confbox": "^0.1.7",
+        "mlly": "^1.7.0",
+        "pathe": "^1.1.2"
+      }
+    },
+    "node_modules/posix-character-classes": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+      "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/possible-typed-array-names": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
+      "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/postcss": {
+      "version": "8.4.38",
+      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
+      "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
+      "funding": [
+        {
+          "type": "opencollective",
+          "url": "https://opencollective.com/postcss/"
+        },
+        {
+          "type": "tidelift",
+          "url": "https://tidelift.com/funding/github/npm/postcss"
+        },
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/ai"
+        }
+      ],
+      "dependencies": {
+        "nanoid": "^3.3.7",
+        "picocolors": "^1.0.0",
+        "source-map-js": "^1.2.0"
+      },
+      "engines": {
+        "node": "^10 || ^12 || >=14"
+      }
+    },
+    "node_modules/postcss-import": {
+      "version": "15.1.0",
+      "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
+      "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
+      "dependencies": {
+        "postcss-value-parser": "^4.0.0",
+        "read-cache": "^1.0.0",
+        "resolve": "^1.1.7"
+      },
+      "engines": {
+        "node": ">=14.0.0"
+      },
+      "peerDependencies": {
+        "postcss": "^8.0.0"
+      }
+    },
+    "node_modules/postcss-js": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
+      "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
+      "dependencies": {
+        "camelcase-css": "^2.0.1"
+      },
+      "engines": {
+        "node": "^12 || ^14 || >= 16"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/postcss/"
+      },
+      "peerDependencies": {
+        "postcss": "^8.4.21"
+      }
+    },
+    "node_modules/postcss-load-config": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
+      "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
+      "funding": [
+        {
+          "type": "opencollective",
+          "url": "https://opencollective.com/postcss/"
+        },
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/ai"
+        }
+      ],
+      "dependencies": {
+        "lilconfig": "^3.0.0",
+        "yaml": "^2.3.4"
+      },
+      "engines": {
+        "node": ">= 14"
+      },
+      "peerDependencies": {
+        "postcss": ">=8.0.9",
+        "ts-node": ">=9.0.0"
+      },
+      "peerDependenciesMeta": {
+        "postcss": {
+          "optional": true
+        },
+        "ts-node": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/postcss-nested": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz",
+      "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==",
+      "dependencies": {
+        "postcss-selector-parser": "^6.0.11"
+      },
+      "engines": {
+        "node": ">=12.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/postcss/"
+      },
+      "peerDependencies": {
+        "postcss": "^8.2.14"
+      }
+    },
+    "node_modules/postcss-selector-parser": {
+      "version": "6.1.0",
+      "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz",
+      "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==",
+      "dependencies": {
+        "cssesc": "^3.0.0",
+        "util-deprecate": "^1.0.2"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/postcss-value-parser": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+      "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
+    },
+    "node_modules/prelude-ls": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+      "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/prettier": {
+      "version": "3.2.5",
+      "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz",
+      "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==",
+      "bin": {
+        "prettier": "bin/prettier.cjs"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/prettier/prettier?sponsor=1"
+      }
+    },
+    "node_modules/prettier-linter-helpers": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
+      "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
+      "dev": true,
+      "dependencies": {
+        "fast-diff": "^1.1.2"
+      },
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
+    "node_modules/pretty-format": {
+      "version": "29.7.0",
+      "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+      "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
+      "dev": true,
+      "dependencies": {
+        "@jest/schemas": "^29.6.3",
+        "ansi-styles": "^5.0.0",
+        "react-is": "^18.0.0"
+      },
+      "engines": {
+        "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+      }
+    },
+    "node_modules/pretty-format/node_modules/ansi-styles": {
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+      "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/pretty-ms": {
+      "version": "7.0.1",
+      "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz",
+      "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==",
+      "dev": true,
+      "dependencies": {
+        "parse-ms": "^2.1.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/private": {
+      "version": "0.1.8",
+      "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
+      "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/progress": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+      "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.4.0"
+      }
+    },
+    "node_modules/proto-list": {
+      "version": "1.2.4",
+      "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
+      "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA=="
+    },
+    "node_modules/punycode": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+      "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/queue-microtask": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+      "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ]
+    },
+    "node_modules/randombytes": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+      "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+      "dev": true,
+      "peer": true,
+      "dependencies": {
+        "safe-buffer": "^5.1.0"
+      }
+    },
+    "node_modules/react-is": {
+      "version": "18.3.1",
+      "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
+      "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
+      "dev": true
+    },
+    "node_modules/read-cache": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
+      "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
+      "dependencies": {
+        "pify": "^2.3.0"
+      }
+    },
+    "node_modules/readable-stream": {
+      "version": "3.6.2",
+      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+      "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+      "dependencies": {
+        "inherits": "^2.0.3",
+        "string_decoder": "^1.1.1",
+        "util-deprecate": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/readdirp": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+      "dependencies": {
+        "picomatch": "^2.2.1"
+      },
+      "engines": {
+        "node": ">=8.10.0"
+      }
+    },
+    "node_modules/recast": {
+      "version": "0.16.2",
+      "resolved": "https://registry.npmjs.org/recast/-/recast-0.16.2.tgz",
+      "integrity": "sha512-O/7qXi51DPjRVdbrpNzoBQH5dnAPQNbfoOFyRiUwreTMJfIHYOEBzwuH+c0+/BTSJ3CQyKs6ILSWXhESH6Op3A==",
+      "dev": true,
+      "dependencies": {
+        "ast-types": "0.11.7",
+        "esprima": "~4.0.0",
+        "private": "~0.1.5",
+        "source-map": "~0.6.1"
+      },
+      "engines": {
+        "node": ">= 4"
+      }
+    },
+    "node_modules/recast/node_modules/source-map": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/regenerate": {
+      "version": "1.4.2",
+      "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
+      "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
+      "dev": true
+    },
+    "node_modules/regenerate-unicode-properties": {
+      "version": "10.1.1",
+      "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz",
+      "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==",
+      "dev": true,
+      "dependencies": {
+        "regenerate": "^1.4.2"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/regenerator-runtime": {
+      "version": "0.14.1",
+      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
+      "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
+    },
+    "node_modules/regenerator-transform": {
+      "version": "0.15.2",
+      "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
+      "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
+      "dev": true,
+      "dependencies": {
+        "@babel/runtime": "^7.8.4"
+      }
+    },
+    "node_modules/regex-not": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+      "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+      "dev": true,
+      "dependencies": {
+        "extend-shallow": "^3.0.2",
+        "safe-regex": "^1.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/regexp.prototype.flags": {
+      "version": "1.5.2",
+      "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz",
+      "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.6",
+        "define-properties": "^1.2.1",
+        "es-errors": "^1.3.0",
+        "set-function-name": "^2.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/regexpp": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
+      "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/mysticatea"
+      }
+    },
+    "node_modules/regexpu-core": {
+      "version": "5.3.2",
+      "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz",
+      "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==",
+      "dev": true,
+      "dependencies": {
+        "@babel/regjsgen": "^0.8.0",
+        "regenerate": "^1.4.2",
+        "regenerate-unicode-properties": "^10.1.0",
+        "regjsparser": "^0.9.1",
+        "unicode-match-property-ecmascript": "^2.0.0",
+        "unicode-match-property-value-ecmascript": "^2.1.0"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/regjsparser": {
+      "version": "0.9.1",
+      "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz",
+      "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==",
+      "dev": true,
+      "dependencies": {
+        "jsesc": "~0.5.0"
+      },
+      "bin": {
+        "regjsparser": "bin/parser"
+      }
+    },
+    "node_modules/regjsparser/node_modules/jsesc": {
+      "version": "0.5.0",
+      "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+      "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
+      "dev": true,
+      "bin": {
+        "jsesc": "bin/jsesc"
+      }
+    },
+    "node_modules/repeat-element": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz",
+      "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/repeat-string": {
+      "version": "1.6.1",
+      "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+      "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10"
+      }
+    },
+    "node_modules/require-directory": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+      "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/require-from-string": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+      "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/require-main-filename": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+      "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+      "dev": true
+    },
+    "node_modules/resolve": {
+      "version": "1.22.8",
+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+      "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+      "dependencies": {
+        "is-core-module": "^2.13.0",
+        "path-parse": "^1.0.7",
+        "supports-preserve-symlinks-flag": "^1.0.0"
+      },
+      "bin": {
+        "resolve": "bin/resolve"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/resolve-from": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+      "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/resolve-pkg-maps": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
+      "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
+      }
+    },
+    "node_modules/resolve-url": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+      "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==",
+      "deprecated": "https://github.com/lydell/resolve-url#deprecated",
+      "dev": true
+    },
+    "node_modules/restore-cursor": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz",
+      "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==",
+      "dev": true,
+      "dependencies": {
+        "onetime": "^5.1.0",
+        "signal-exit": "^3.0.2"
+      },
+      "engines": {
+        "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/restore-cursor/node_modules/mimic-fn": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+      "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/restore-cursor/node_modules/onetime": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+      "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+      "dev": true,
+      "dependencies": {
+        "mimic-fn": "^2.1.0"
+      },
+      "engines": {
+        "node": ">=6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/restore-cursor/node_modules/signal-exit": {
+      "version": "3.0.7",
+      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+      "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+      "dev": true
+    },
+    "node_modules/ret": {
+      "version": "0.1.15",
+      "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+      "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.12"
+      }
+    },
+    "node_modules/reusify": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+      "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+      "engines": {
+        "iojs": ">=1.0.0",
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/rfdc": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz",
+      "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==",
+      "dev": true
+    },
+    "node_modules/rimraf": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+      "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+      "deprecated": "Rimraf versions prior to v4 are no longer supported",
+      "dev": true,
+      "dependencies": {
+        "glob": "^7.1.3"
+      },
+      "bin": {
+        "rimraf": "bin.js"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/rimraf/node_modules/glob": {
+      "version": "7.2.3",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+      "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+      "deprecated": "Glob versions prior to v9 are no longer supported",
+      "dev": true,
+      "dependencies": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^3.1.1",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      },
+      "engines": {
+        "node": "*"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/rollup": {
+      "version": "4.18.0",
+      "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz",
+      "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==",
+      "dev": true,
+      "dependencies": {
+        "@types/estree": "1.0.5"
+      },
+      "bin": {
+        "rollup": "dist/bin/rollup"
+      },
+      "engines": {
+        "node": ">=18.0.0",
+        "npm": ">=8.0.0"
+      },
+      "optionalDependencies": {
+        "@rollup/rollup-android-arm-eabi": "4.18.0",
+        "@rollup/rollup-android-arm64": "4.18.0",
+        "@rollup/rollup-darwin-arm64": "4.18.0",
+        "@rollup/rollup-darwin-x64": "4.18.0",
+        "@rollup/rollup-linux-arm-gnueabihf": "4.18.0",
+        "@rollup/rollup-linux-arm-musleabihf": "4.18.0",
+        "@rollup/rollup-linux-arm64-gnu": "4.18.0",
+        "@rollup/rollup-linux-arm64-musl": "4.18.0",
+        "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0",
+        "@rollup/rollup-linux-riscv64-gnu": "4.18.0",
+        "@rollup/rollup-linux-s390x-gnu": "4.18.0",
+        "@rollup/rollup-linux-x64-gnu": "4.18.0",
+        "@rollup/rollup-linux-x64-musl": "4.18.0",
+        "@rollup/rollup-win32-arm64-msvc": "4.18.0",
+        "@rollup/rollup-win32-ia32-msvc": "4.18.0",
+        "@rollup/rollup-win32-x64-msvc": "4.18.0",
+        "fsevents": "~2.3.2"
+      }
+    },
+    "node_modules/run-parallel": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+      "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
+      "dependencies": {
+        "queue-microtask": "^1.2.2"
+      }
+    },
+    "node_modules/safe-array-concat": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz",
+      "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.7",
+        "get-intrinsic": "^1.2.4",
+        "has-symbols": "^1.0.3",
+        "isarray": "^2.0.5"
+      },
+      "engines": {
+        "node": ">=0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/safe-buffer": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ]
+    },
+    "node_modules/safe-regex": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+      "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==",
+      "dev": true,
+      "dependencies": {
+        "ret": "~0.1.10"
+      }
+    },
+    "node_modules/safe-regex-test": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz",
+      "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.6",
+        "es-errors": "^1.3.0",
+        "is-regex": "^1.1.4"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/safer-buffer": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+      "dev": true
+    },
+    "node_modules/schema-utils": {
+      "version": "3.3.0",
+      "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+      "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+      "dev": true,
+      "peer": true,
+      "dependencies": {
+        "@types/json-schema": "^7.0.8",
+        "ajv": "^6.12.5",
+        "ajv-keywords": "^3.5.2"
+      },
+      "engines": {
+        "node": ">= 10.13.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack"
+      }
+    },
+    "node_modules/schema-utils/node_modules/ajv": {
+      "version": "6.12.6",
+      "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+      "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+      "dev": true,
+      "peer": true,
+      "dependencies": {
+        "fast-deep-equal": "^3.1.1",
+        "fast-json-stable-stringify": "^2.0.0",
+        "json-schema-traverse": "^0.4.1",
+        "uri-js": "^4.2.2"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/epoberezkin"
+      }
+    },
+    "node_modules/schema-utils/node_modules/ajv-keywords": {
+      "version": "3.5.2",
+      "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+      "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+      "dev": true,
+      "peer": true,
+      "peerDependencies": {
+        "ajv": "^6.9.1"
+      }
+    },
+    "node_modules/schema-utils/node_modules/json-schema-traverse": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+      "dev": true,
+      "peer": true
+    },
+    "node_modules/semver": {
+      "version": "6.3.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+      "dev": true,
+      "bin": {
+        "semver": "bin/semver.js"
+      }
+    },
+    "node_modules/serialize-javascript": {
+      "version": "6.0.2",
+      "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
+      "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
+      "dev": true,
+      "peer": true,
+      "dependencies": {
+        "randombytes": "^2.1.0"
+      }
+    },
+    "node_modules/set-blocking": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+      "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
+      "dev": true
+    },
+    "node_modules/set-function-length": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+      "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
+      "dev": true,
+      "dependencies": {
+        "define-data-property": "^1.1.4",
+        "es-errors": "^1.3.0",
+        "function-bind": "^1.1.2",
+        "get-intrinsic": "^1.2.4",
+        "gopd": "^1.0.1",
+        "has-property-descriptors": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/set-function-name": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
+      "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
+      "dev": true,
+      "dependencies": {
+        "define-data-property": "^1.1.4",
+        "es-errors": "^1.3.0",
+        "functions-have-names": "^1.2.3",
+        "has-property-descriptors": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/set-value": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+      "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
+      "dev": true,
+      "dependencies": {
+        "extend-shallow": "^2.0.1",
+        "is-extendable": "^0.1.1",
+        "is-plain-object": "^2.0.3",
+        "split-string": "^3.0.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/set-value/node_modules/extend-shallow": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+      "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+      "dev": true,
+      "dependencies": {
+        "is-extendable": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/set-value/node_modules/is-extendable": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+      "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/shallow-clone": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
+      "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
+      "dev": true,
+      "dependencies": {
+        "kind-of": "^6.0.2"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/shebang-command": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+      "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+      "dependencies": {
+        "shebang-regex": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/shebang-regex": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+      "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/side-channel": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
+      "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.7",
+        "es-errors": "^1.3.0",
+        "get-intrinsic": "^1.2.4",
+        "object-inspect": "^1.13.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/siginfo": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
+      "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
+      "dev": true
+    },
+    "node_modules/signal-exit": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+      "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/slash": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+      "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/slice-ansi": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
+      "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==",
+      "dev": true,
+      "dependencies": {
+        "ansi-styles": "^6.0.0",
+        "is-fullwidth-code-point": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+      }
+    },
+    "node_modules/slice-ansi/node_modules/ansi-styles": {
+      "version": "6.2.1",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+      "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+      "dev": true,
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/snapdragon": {
+      "version": "0.8.2",
+      "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+      "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+      "dev": true,
+      "dependencies": {
+        "base": "^0.11.1",
+        "debug": "^2.2.0",
+        "define-property": "^0.2.5",
+        "extend-shallow": "^2.0.1",
+        "map-cache": "^0.2.2",
+        "source-map": "^0.5.6",
+        "source-map-resolve": "^0.5.0",
+        "use": "^3.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/snapdragon-node": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+      "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+      "dev": true,
+      "dependencies": {
+        "define-property": "^1.0.0",
+        "isobject": "^3.0.0",
+        "snapdragon-util": "^3.0.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/snapdragon-node/node_modules/define-property": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+      "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
+      "dev": true,
+      "dependencies": {
+        "is-descriptor": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/snapdragon-util": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+      "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+      "dev": true,
+      "dependencies": {
+        "kind-of": "^3.2.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/snapdragon-util/node_modules/kind-of": {
+      "version": "3.2.2",
+      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+      "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+      "dev": true,
+      "dependencies": {
+        "is-buffer": "^1.1.5"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/snapdragon/node_modules/debug": {
+      "version": "2.6.9",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+      "dev": true,
+      "dependencies": {
+        "ms": "2.0.0"
+      }
+    },
+    "node_modules/snapdragon/node_modules/define-property": {
+      "version": "0.2.5",
+      "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+      "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+      "dev": true,
+      "dependencies": {
+        "is-descriptor": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/snapdragon/node_modules/extend-shallow": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+      "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+      "dev": true,
+      "dependencies": {
+        "is-extendable": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/snapdragon/node_modules/is-descriptor": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
+      "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
+      "dev": true,
+      "dependencies": {
+        "is-accessor-descriptor": "^1.0.1",
+        "is-data-descriptor": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/snapdragon/node_modules/is-extendable": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+      "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/snapdragon/node_modules/ms": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+      "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+      "dev": true
+    },
+    "node_modules/snapdragon/node_modules/source-map": {
+      "version": "0.5.7",
+      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+      "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/source-map": {
+      "version": "0.7.4",
+      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+      "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+      "dev": true,
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/source-map-js": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
+      "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/source-map-loader": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.2.tgz",
+      "integrity": "sha512-oYwAqCuL0OZhBoSgmdrLa7mv9MjommVMiQIWgcztf+eS4+8BfcUee6nenFnDhKOhzAVnk5gpZdfnz1iiBv+5sg==",
+      "dev": true,
+      "dependencies": {
+        "iconv-lite": "^0.6.3",
+        "source-map-js": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 14.15.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack"
+      },
+      "peerDependencies": {
+        "webpack": "^5.72.1"
+      }
+    },
+    "node_modules/source-map-resolve": {
+      "version": "0.5.3",
+      "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
+      "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
+      "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated",
+      "dev": true,
+      "dependencies": {
+        "atob": "^2.1.2",
+        "decode-uri-component": "^0.2.0",
+        "resolve-url": "^0.2.1",
+        "source-map-url": "^0.4.0",
+        "urix": "^0.1.0"
+      }
+    },
+    "node_modules/source-map-support": {
+      "version": "0.5.21",
+      "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+      "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+      "dev": true,
+      "dependencies": {
+        "buffer-from": "^1.0.0",
+        "source-map": "^0.6.0"
+      }
+    },
+    "node_modules/source-map-support/node_modules/source-map": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/source-map-url": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz",
+      "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==",
+      "deprecated": "See https://github.com/lydell/source-map-url#deprecated",
+      "dev": true
+    },
+    "node_modules/split-string": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+      "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+      "dev": true,
+      "dependencies": {
+        "extend-shallow": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/sprintf-js": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+      "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+      "dev": true
+    },
+    "node_modules/stackback": {
+      "version": "0.0.2",
+      "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
+      "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
+      "dev": true
+    },
+    "node_modules/static-extend": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+      "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==",
+      "dev": true,
+      "dependencies": {
+        "define-property": "^0.2.5",
+        "object-copy": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/static-extend/node_modules/define-property": {
+      "version": "0.2.5",
+      "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+      "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+      "dev": true,
+      "dependencies": {
+        "is-descriptor": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/static-extend/node_modules/is-descriptor": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
+      "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
+      "dev": true,
+      "dependencies": {
+        "is-accessor-descriptor": "^1.0.1",
+        "is-data-descriptor": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/std-env": {
+      "version": "3.7.0",
+      "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz",
+      "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==",
+      "dev": true
+    },
+    "node_modules/stream-events": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz",
+      "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==",
+      "dev": true,
+      "dependencies": {
+        "stubs": "^3.0.0"
+      }
+    },
+    "node_modules/string_decoder": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+      "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+      "dependencies": {
+        "safe-buffer": "~5.2.0"
+      }
+    },
+    "node_modules/string-argv": {
+      "version": "0.3.2",
+      "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz",
+      "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.6.19"
+      }
+    },
+    "node_modules/string-replace-async": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/string-replace-async/-/string-replace-async-2.0.0.tgz",
+      "integrity": "sha512-AHMupZscUiDh07F1QziX7PLoB1DQ/pzu19vc8Xa8LwZcgnOXaw7yCgBuSYrxVEfaM2d8scc3Gtp+i+QJZV+spw==",
+      "engines": {
+        "node": ">=0.12"
+      }
+    },
+    "node_modules/string-width": {
+      "version": "7.1.0",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz",
+      "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==",
+      "dev": true,
+      "dependencies": {
+        "emoji-regex": "^10.3.0",
+        "get-east-asian-width": "^1.0.0",
+        "strip-ansi": "^7.1.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/string-width-cjs": {
+      "name": "string-width",
+      "version": "4.2.3",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+      "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+      "dependencies": {
+        "emoji-regex": "^8.0.0",
+        "is-fullwidth-code-point": "^3.0.0",
+        "strip-ansi": "^6.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/string-width-cjs/node_modules/emoji-regex": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+    },
+    "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+      "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/string-width/node_modules/ansi-regex": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+      "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+      "dev": true,
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+      }
+    },
+    "node_modules/string-width/node_modules/strip-ansi": {
+      "version": "7.1.0",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+      "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+      "dev": true,
+      "dependencies": {
+        "ansi-regex": "^6.0.1"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+      }
+    },
+    "node_modules/string.prototype.trim": {
+      "version": "1.2.9",
+      "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz",
+      "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.7",
+        "define-properties": "^1.2.1",
+        "es-abstract": "^1.23.0",
+        "es-object-atoms": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/string.prototype.trimend": {
+      "version": "1.0.8",
+      "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz",
+      "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.7",
+        "define-properties": "^1.2.1",
+        "es-object-atoms": "^1.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/string.prototype.trimstart": {
+      "version": "1.0.8",
+      "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
+      "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.7",
+        "define-properties": "^1.2.1",
+        "es-object-atoms": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/strip-ansi": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+      "dependencies": {
+        "ansi-regex": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/strip-ansi-cjs": {
+      "name": "strip-ansi",
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+      "dependencies": {
+        "ansi-regex": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/strip-bom": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+      "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/strip-final-newline": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
+      "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
+      "dev": true,
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/strip-json-comments": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+      "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/strip-literal": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.0.tgz",
+      "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==",
+      "dev": true,
+      "dependencies": {
+        "js-tokens": "^9.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/antfu"
+      }
+    },
+    "node_modules/strip-literal/node_modules/js-tokens": {
+      "version": "9.0.0",
+      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.0.tgz",
+      "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==",
+      "dev": true
+    },
+    "node_modules/stubs": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz",
+      "integrity": "sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==",
+      "dev": true
+    },
+    "node_modules/sucrase": {
+      "version": "3.35.0",
+      "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
+      "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
+      "dependencies": {
+        "@jridgewell/gen-mapping": "^0.3.2",
+        "commander": "^4.0.0",
+        "glob": "^10.3.10",
+        "lines-and-columns": "^1.1.6",
+        "mz": "^2.7.0",
+        "pirates": "^4.0.1",
+        "ts-interface-checker": "^0.1.9"
+      },
+      "bin": {
+        "sucrase": "bin/sucrase",
+        "sucrase-node": "bin/sucrase-node"
+      },
+      "engines": {
+        "node": ">=16 || 14 >=14.17"
+      }
+    },
+    "node_modules/sucrase/node_modules/brace-expansion": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+      "dependencies": {
+        "balanced-match": "^1.0.0"
+      }
+    },
+    "node_modules/sucrase/node_modules/commander": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
+      "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/sucrase/node_modules/glob": {
+      "version": "10.4.1",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
+      "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
+      "dependencies": {
+        "foreground-child": "^3.1.0",
+        "jackspeak": "^3.1.2",
+        "minimatch": "^9.0.4",
+        "minipass": "^7.1.2",
+        "path-scurry": "^1.11.1"
+      },
+      "bin": {
+        "glob": "dist/esm/bin.mjs"
+      },
+      "engines": {
+        "node": ">=16 || 14 >=14.18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/sucrase/node_modules/minimatch": {
+      "version": "9.0.4",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+      "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+      "dependencies": {
+        "brace-expansion": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=16 || 14 >=14.17"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/supports-color": {
+      "version": "7.2.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+      "dependencies": {
+        "has-flag": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/supports-preserve-symlinks-flag": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+      "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/synckit": {
+      "version": "0.8.8",
+      "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz",
+      "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==",
+      "dev": true,
+      "dependencies": {
+        "@pkgr/core": "^0.1.0",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": "^14.18.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/unts"
+      }
+    },
+    "node_modules/table": {
+      "version": "6.8.2",
+      "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz",
+      "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==",
+      "dev": true,
+      "dependencies": {
+        "ajv": "^8.0.1",
+        "lodash.truncate": "^4.4.2",
+        "slice-ansi": "^4.0.0",
+        "string-width": "^4.2.3",
+        "strip-ansi": "^6.0.1"
+      },
+      "engines": {
+        "node": ">=10.0.0"
+      }
+    },
+    "node_modules/table/node_modules/emoji-regex": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+      "dev": true
+    },
+    "node_modules/table/node_modules/is-fullwidth-code-point": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+      "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/table/node_modules/slice-ansi": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+      "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+      "dev": true,
+      "dependencies": {
+        "ansi-styles": "^4.0.0",
+        "astral-regex": "^2.0.0",
+        "is-fullwidth-code-point": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+      }
+    },
+    "node_modules/table/node_modules/string-width": {
+      "version": "4.2.3",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+      "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+      "dev": true,
+      "dependencies": {
+        "emoji-regex": "^8.0.0",
+        "is-fullwidth-code-point": "^3.0.0",
+        "strip-ansi": "^6.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/tailwindcss": {
+      "version": "3.4.3",
+      "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz",
+      "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==",
+      "dependencies": {
+        "@alloc/quick-lru": "^5.2.0",
+        "arg": "^5.0.2",
+        "chokidar": "^3.5.3",
+        "didyoumean": "^1.2.2",
+        "dlv": "^1.1.3",
+        "fast-glob": "^3.3.0",
+        "glob-parent": "^6.0.2",
+        "is-glob": "^4.0.3",
+        "jiti": "^1.21.0",
+        "lilconfig": "^2.1.0",
+        "micromatch": "^4.0.5",
+        "normalize-path": "^3.0.0",
+        "object-hash": "^3.0.0",
+        "picocolors": "^1.0.0",
+        "postcss": "^8.4.23",
+        "postcss-import": "^15.1.0",
+        "postcss-js": "^4.0.1",
+        "postcss-load-config": "^4.0.1",
+        "postcss-nested": "^6.0.1",
+        "postcss-selector-parser": "^6.0.11",
+        "resolve": "^1.22.2",
+        "sucrase": "^3.32.0"
+      },
+      "bin": {
+        "tailwind": "lib/cli.js",
+        "tailwindcss": "lib/cli.js"
+      },
+      "engines": {
+        "node": ">=14.0.0"
+      }
+    },
+    "node_modules/tailwindcss/node_modules/lilconfig": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
+      "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/tapable": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
+      "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/teeny-request": {
+      "version": "7.1.1",
+      "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.1.1.tgz",
+      "integrity": "sha512-iwY6rkW5DDGq8hE2YgNQlKbptYpY5Nn2xecjQiNjOXWbKzPGUfmeUBCSQbbr306d7Z7U2N0TPl+/SwYRfua1Dg==",
+      "dev": true,
+      "dependencies": {
+        "http-proxy-agent": "^4.0.0",
+        "https-proxy-agent": "^5.0.0",
+        "node-fetch": "^2.6.1",
+        "stream-events": "^1.0.5",
+        "uuid": "^8.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/temp": {
+      "version": "0.8.4",
+      "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz",
+      "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==",
+      "dev": true,
+      "dependencies": {
+        "rimraf": "~2.6.2"
+      },
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
+    "node_modules/temp/node_modules/glob": {
+      "version": "7.2.3",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+      "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+      "deprecated": "Glob versions prior to v9 are no longer supported",
+      "dev": true,
+      "dependencies": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^3.1.1",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      },
+      "engines": {
+        "node": "*"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/temp/node_modules/rimraf": {
+      "version": "2.6.3",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+      "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+      "deprecated": "Rimraf versions prior to v4 are no longer supported",
+      "dev": true,
+      "dependencies": {
+        "glob": "^7.1.3"
+      },
+      "bin": {
+        "rimraf": "bin.js"
+      }
+    },
+    "node_modules/terser": {
+      "version": "5.31.0",
+      "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.0.tgz",
+      "integrity": "sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==",
+      "dev": true,
+      "peer": true,
+      "dependencies": {
+        "@jridgewell/source-map": "^0.3.3",
+        "acorn": "^8.8.2",
+        "commander": "^2.20.0",
+        "source-map-support": "~0.5.20"
+      },
+      "bin": {
+        "terser": "bin/terser"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/terser-webpack-plugin": {
+      "version": "5.3.10",
+      "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz",
+      "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==",
+      "dev": true,
+      "peer": true,
+      "dependencies": {
+        "@jridgewell/trace-mapping": "^0.3.20",
+        "jest-worker": "^27.4.5",
+        "schema-utils": "^3.1.1",
+        "serialize-javascript": "^6.0.1",
+        "terser": "^5.26.0"
+      },
+      "engines": {
+        "node": ">= 10.13.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack"
+      },
+      "peerDependencies": {
+        "webpack": "^5.1.0"
+      },
+      "peerDependenciesMeta": {
+        "@swc/core": {
+          "optional": true
+        },
+        "esbuild": {
+          "optional": true
+        },
+        "uglify-js": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/terser-webpack-plugin/node_modules/jest-worker": {
+      "version": "27.5.1",
+      "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+      "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+      "dev": true,
+      "peer": true,
+      "dependencies": {
+        "@types/node": "*",
+        "merge-stream": "^2.0.0",
+        "supports-color": "^8.0.0"
+      },
+      "engines": {
+        "node": ">= 10.13.0"
+      }
+    },
+    "node_modules/terser-webpack-plugin/node_modules/supports-color": {
+      "version": "8.1.1",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+      "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+      "dev": true,
+      "peer": true,
+      "dependencies": {
+        "has-flag": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/supports-color?sponsor=1"
+      }
+    },
+    "node_modules/terser/node_modules/commander": {
+      "version": "2.20.3",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+      "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+      "dev": true,
+      "peer": true
+    },
+    "node_modules/text-table": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+      "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+      "dev": true
+    },
+    "node_modules/thenify": {
+      "version": "3.3.1",
+      "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
+      "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
+      "dependencies": {
+        "any-promise": "^1.0.0"
+      }
+    },
+    "node_modules/thenify-all": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
+      "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
+      "dependencies": {
+        "thenify": ">= 3.1.0 < 4"
+      },
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
+    "node_modules/throat": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz",
+      "integrity": "sha512-wCVxLDcFxw7ujDxaeJC6nfl2XfHJNYs8yUYJnvMgtPEFlttP9tHSfRUv2vBe6C4hkVFPWoP1P6ZccbYjmSEkKA==",
+      "dev": true
+    },
+    "node_modules/tinybench": {
+      "version": "2.8.0",
+      "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.8.0.tgz",
+      "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==",
+      "dev": true
+    },
+    "node_modules/tinypool": {
+      "version": "0.8.4",
+      "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz",
+      "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=14.0.0"
+      }
+    },
+    "node_modules/tinyspy": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz",
+      "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==",
+      "dev": true,
+      "engines": {
+        "node": ">=14.0.0"
+      }
+    },
+    "node_modules/to-fast-properties": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+      "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/to-object-path": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+      "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==",
+      "dev": true,
+      "dependencies": {
+        "kind-of": "^3.0.2"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/to-object-path/node_modules/kind-of": {
+      "version": "3.2.2",
+      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+      "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+      "dev": true,
+      "dependencies": {
+        "is-buffer": "^1.1.5"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/to-regex": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+      "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+      "dev": true,
+      "dependencies": {
+        "define-property": "^2.0.2",
+        "extend-shallow": "^3.0.2",
+        "regex-not": "^1.0.2",
+        "safe-regex": "^1.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/to-regex-range": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+      "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+      "dependencies": {
+        "is-number": "^7.0.0"
+      },
+      "engines": {
+        "node": ">=8.0"
+      }
+    },
+    "node_modules/tr46": {
+      "version": "0.0.3",
+      "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+      "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+      "dev": true
+    },
+    "node_modules/ts-interface-checker": {
+      "version": "0.1.13",
+      "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
+      "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="
+    },
+    "node_modules/ts-loader": {
+      "version": "9.5.1",
+      "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz",
+      "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==",
+      "dev": true,
+      "dependencies": {
+        "chalk": "^4.1.0",
+        "enhanced-resolve": "^5.0.0",
+        "micromatch": "^4.0.0",
+        "semver": "^7.3.4",
+        "source-map": "^0.7.4"
+      },
+      "engines": {
+        "node": ">=12.0.0"
+      },
+      "peerDependencies": {
+        "typescript": "*",
+        "webpack": "^5.0.0"
+      }
+    },
+    "node_modules/ts-loader/node_modules/semver": {
+      "version": "7.6.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+      "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+      "dev": true,
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/ts-migrate": {
+      "version": "0.1.35",
+      "resolved": "https://registry.npmjs.org/ts-migrate/-/ts-migrate-0.1.35.tgz",
+      "integrity": "sha512-EmXahqwIP0a6fE1BLKKVMgJEeYn9V+CxJ19qFJ/DzkPL4PjDI/FcgPo8D519amBPy2nnlc/x1V6R6aIeHdD87w==",
+      "dev": true,
+      "dependencies": {
+        "create-jest-runner": "^0.5.3",
+        "json5": "^2.1.1",
+        "json5-writer": "^0.1.8",
+        "ts-migrate-plugins": "^0.1.35",
+        "ts-migrate-server": "^0.1.33",
+        "updatable-log": "^0.2.0",
+        "yargs": "^15.0.2"
+      },
+      "bin": {
+        "ts-migrate": "build/cli.js",
+        "ts-migrate-full": "bin/ts-migrate-full.sh"
+      },
+      "peerDependencies": {
+        "typescript": ">4.0"
+      }
+    },
+    "node_modules/ts-migrate-plugins": {
+      "version": "0.1.35",
+      "resolved": "https://registry.npmjs.org/ts-migrate-plugins/-/ts-migrate-plugins-0.1.35.tgz",
+      "integrity": "sha512-DUkx7ClKhxKYPWDha9DJTZ6LhwEUszL90uH5I/O11K/6TbA96ytln1O3HL6Pt83i4mAKOlg0mQ6AMsPtL5FFkQ==",
+      "dev": true,
+      "dependencies": {
+        "eslint": "^7.14.0",
+        "jscodeshift": "^0.13.0",
+        "json-schema": "^0.4.0",
+        "ts-migrate-server": "^0.1.33"
+      },
+      "peerDependencies": {
+        "typescript": ">4.0"
+      }
+    },
+    "node_modules/ts-migrate-plugins/node_modules/@babel/code-frame": {
+      "version": "7.12.11",
+      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz",
+      "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==",
+      "dev": true,
+      "dependencies": {
+        "@babel/highlight": "^7.10.4"
+      }
+    },
+    "node_modules/ts-migrate-plugins/node_modules/@eslint/eslintrc": {
+      "version": "0.4.3",
+      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz",
+      "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==",
+      "dev": true,
+      "dependencies": {
+        "ajv": "^6.12.4",
+        "debug": "^4.1.1",
+        "espree": "^7.3.0",
+        "globals": "^13.9.0",
+        "ignore": "^4.0.6",
+        "import-fresh": "^3.2.1",
+        "js-yaml": "^3.13.1",
+        "minimatch": "^3.0.4",
+        "strip-json-comments": "^3.1.1"
+      },
+      "engines": {
+        "node": "^10.12.0 || >=12.0.0"
+      }
+    },
+    "node_modules/ts-migrate-plugins/node_modules/@humanwhocodes/config-array": {
+      "version": "0.5.0",
+      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz",
+      "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==",
+      "dev": true,
+      "dependencies": {
+        "@humanwhocodes/object-schema": "^1.2.0",
+        "debug": "^4.1.1",
+        "minimatch": "^3.0.4"
+      },
+      "engines": {
+        "node": ">=10.10.0"
+      }
+    },
+    "node_modules/ts-migrate-plugins/node_modules/@humanwhocodes/object-schema": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
+      "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+      "dev": true
+    },
+    "node_modules/ts-migrate-plugins/node_modules/acorn": {
+      "version": "7.4.1",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+      "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+      "dev": true,
+      "bin": {
+        "acorn": "bin/acorn"
+      },
+      "engines": {
+        "node": ">=0.4.0"
+      }
+    },
+    "node_modules/ts-migrate-plugins/node_modules/ajv": {
+      "version": "6.12.6",
+      "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+      "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+      "dev": true,
+      "dependencies": {
+        "fast-deep-equal": "^3.1.1",
+        "fast-json-stable-stringify": "^2.0.0",
+        "json-schema-traverse": "^0.4.1",
+        "uri-js": "^4.2.2"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/epoberezkin"
+      }
+    },
+    "node_modules/ts-migrate-plugins/node_modules/ast-types": {
+      "version": "0.14.2",
+      "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz",
+      "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==",
+      "dev": true,
+      "dependencies": {
+        "tslib": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/ts-migrate-plugins/node_modules/braces": {
+      "version": "2.3.2",
+      "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+      "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+      "dev": true,
+      "dependencies": {
+        "arr-flatten": "^1.1.0",
+        "array-unique": "^0.3.2",
+        "extend-shallow": "^2.0.1",
+        "fill-range": "^4.0.0",
+        "isobject": "^3.0.1",
+        "repeat-element": "^1.1.2",
+        "snapdragon": "^0.8.1",
+        "snapdragon-node": "^2.0.1",
+        "split-string": "^3.0.2",
+        "to-regex": "^3.0.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/ts-migrate-plugins/node_modules/braces/node_modules/extend-shallow": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+      "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+      "dev": true,
+      "dependencies": {
+        "is-extendable": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/ts-migrate-plugins/node_modules/eslint": {
+      "version": "7.32.0",
+      "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz",
+      "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/code-frame": "7.12.11",
+        "@eslint/eslintrc": "^0.4.3",
+        "@humanwhocodes/config-array": "^0.5.0",
+        "ajv": "^6.10.0",
+        "chalk": "^4.0.0",
+        "cross-spawn": "^7.0.2",
+        "debug": "^4.0.1",
+        "doctrine": "^3.0.0",
+        "enquirer": "^2.3.5",
+        "escape-string-regexp": "^4.0.0",
+        "eslint-scope": "^5.1.1",
+        "eslint-utils": "^2.1.0",
+        "eslint-visitor-keys": "^2.0.0",
+        "espree": "^7.3.1",
+        "esquery": "^1.4.0",
+        "esutils": "^2.0.2",
+        "fast-deep-equal": "^3.1.3",
+        "file-entry-cache": "^6.0.1",
+        "functional-red-black-tree": "^1.0.1",
+        "glob-parent": "^5.1.2",
+        "globals": "^13.6.0",
+        "ignore": "^4.0.6",
+        "import-fresh": "^3.0.0",
+        "imurmurhash": "^0.1.4",
+        "is-glob": "^4.0.0",
+        "js-yaml": "^3.13.1",
+        "json-stable-stringify-without-jsonify": "^1.0.1",
+        "levn": "^0.4.1",
+        "lodash.merge": "^4.6.2",
+        "minimatch": "^3.0.4",
+        "natural-compare": "^1.4.0",
+        "optionator": "^0.9.1",
+        "progress": "^2.0.0",
+        "regexpp": "^3.1.0",
+        "semver": "^7.2.1",
+        "strip-ansi": "^6.0.0",
+        "strip-json-comments": "^3.1.0",
+        "table": "^6.0.9",
+        "text-table": "^0.2.0",
+        "v8-compile-cache": "^2.0.3"
+      },
+      "bin": {
+        "eslint": "bin/eslint.js"
+      },
+      "engines": {
+        "node": "^10.12.0 || >=12.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/ts-migrate-plugins/node_modules/eslint-visitor-keys": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+      "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/ts-migrate-plugins/node_modules/espree": {
+      "version": "7.3.1",
+      "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz",
+      "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==",
+      "dev": true,
+      "dependencies": {
+        "acorn": "^7.4.0",
+        "acorn-jsx": "^5.3.1",
+        "eslint-visitor-keys": "^1.3.0"
+      },
+      "engines": {
+        "node": "^10.12.0 || >=12.0.0"
+      }
+    },
+    "node_modules/ts-migrate-plugins/node_modules/espree/node_modules/eslint-visitor-keys": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+      "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/ts-migrate-plugins/node_modules/fill-range": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+      "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
+      "dev": true,
+      "dependencies": {
+        "extend-shallow": "^2.0.1",
+        "is-number": "^3.0.0",
+        "repeat-string": "^1.6.1",
+        "to-regex-range": "^2.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/ts-migrate-plugins/node_modules/fill-range/node_modules/extend-shallow": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+      "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+      "dev": true,
+      "dependencies": {
+        "is-extendable": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/ts-migrate-plugins/node_modules/glob-parent": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+      "dev": true,
+      "dependencies": {
+        "is-glob": "^4.0.1"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/ts-migrate-plugins/node_modules/globals": {
+      "version": "13.24.0",
+      "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+      "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+      "dev": true,
+      "dependencies": {
+        "type-fest": "^0.20.2"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/ts-migrate-plugins/node_modules/ignore": {
+      "version": "4.0.6",
+      "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+      "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+      "dev": true,
+      "engines": {
+        "node": ">= 4"
+      }
+    },
+    "node_modules/ts-migrate-plugins/node_modules/is-extendable": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+      "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/ts-migrate-plugins/node_modules/is-number": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+      "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
+      "dev": true,
+      "dependencies": {
+        "kind-of": "^3.0.2"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/ts-migrate-plugins/node_modules/is-number/node_modules/kind-of": {
+      "version": "3.2.2",
+      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+      "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+      "dev": true,
+      "dependencies": {
+        "is-buffer": "^1.1.5"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/ts-migrate-plugins/node_modules/jscodeshift": {
+      "version": "0.13.1",
+      "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.13.1.tgz",
+      "integrity": "sha512-lGyiEbGOvmMRKgWk4vf+lUrCWO/8YR8sUR3FKF1Cq5fovjZDlIcw3Hu5ppLHAnEXshVffvaM0eyuY/AbOeYpnQ==",
+      "dev": true,
+      "dependencies": {
+        "@babel/core": "^7.13.16",
+        "@babel/parser": "^7.13.16",
+        "@babel/plugin-proposal-class-properties": "^7.13.0",
+        "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8",
+        "@babel/plugin-proposal-optional-chaining": "^7.13.12",
+        "@babel/plugin-transform-modules-commonjs": "^7.13.8",
+        "@babel/preset-flow": "^7.13.13",
+        "@babel/preset-typescript": "^7.13.0",
+        "@babel/register": "^7.13.16",
+        "babel-core": "^7.0.0-bridge.0",
+        "chalk": "^4.1.2",
+        "flow-parser": "0.*",
+        "graceful-fs": "^4.2.4",
+        "micromatch": "^3.1.10",
+        "neo-async": "^2.5.0",
+        "node-dir": "^0.1.17",
+        "recast": "^0.20.4",
+        "temp": "^0.8.4",
+        "write-file-atomic": "^2.3.0"
+      },
+      "bin": {
+        "jscodeshift": "bin/jscodeshift.js"
+      },
+      "peerDependencies": {
+        "@babel/preset-env": "^7.1.6"
+      }
+    },
+    "node_modules/ts-migrate-plugins/node_modules/json-schema-traverse": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+      "dev": true
+    },
+    "node_modules/ts-migrate-plugins/node_modules/micromatch": {
+      "version": "3.1.10",
+      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+      "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+      "dev": true,
+      "dependencies": {
+        "arr-diff": "^4.0.0",
+        "array-unique": "^0.3.2",
+        "braces": "^2.3.1",
+        "define-property": "^2.0.2",
+        "extend-shallow": "^3.0.2",
+        "extglob": "^2.0.4",
+        "fragment-cache": "^0.2.1",
+        "kind-of": "^6.0.2",
+        "nanomatch": "^1.2.9",
+        "object.pick": "^1.3.0",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.2"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/ts-migrate-plugins/node_modules/recast": {
+      "version": "0.20.5",
+      "resolved": "https://registry.npmjs.org/recast/-/recast-0.20.5.tgz",
+      "integrity": "sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==",
+      "dev": true,
+      "dependencies": {
+        "ast-types": "0.14.2",
+        "esprima": "~4.0.0",
+        "source-map": "~0.6.1",
+        "tslib": "^2.0.1"
+      },
+      "engines": {
+        "node": ">= 4"
+      }
+    },
+    "node_modules/ts-migrate-plugins/node_modules/semver": {
+      "version": "7.6.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+      "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+      "dev": true,
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/ts-migrate-plugins/node_modules/source-map": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/ts-migrate-plugins/node_modules/to-regex-range": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+      "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
+      "dev": true,
+      "dependencies": {
+        "is-number": "^3.0.0",
+        "repeat-string": "^1.6.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/ts-migrate-server": {
+      "version": "0.1.33",
+      "resolved": "https://registry.npmjs.org/ts-migrate-server/-/ts-migrate-server-0.1.33.tgz",
+      "integrity": "sha512-MYHy10yzL2fkb2FHFQ9f54gqc5KkaVthTjtpwS4bTroYCONDelp1hbz5nxKWaP3q2oc3kBVeGuAR91RNI+yK+g==",
+      "dev": true,
+      "dependencies": {
+        "@ts-morph/bootstrap": "^0.16.0",
+        "pretty-ms": "^7.0.1",
+        "updatable-log": "^0.2.0"
+      },
+      "peerDependencies": {
+        "typescript": ">4.0"
+      }
+    },
+    "node_modules/ts-migrate/node_modules/cliui": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+      "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+      "dev": true,
+      "dependencies": {
+        "string-width": "^4.2.0",
+        "strip-ansi": "^6.0.0",
+        "wrap-ansi": "^6.2.0"
+      }
+    },
+    "node_modules/ts-migrate/node_modules/emoji-regex": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+      "dev": true
+    },
+    "node_modules/ts-migrate/node_modules/find-up": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+      "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+      "dev": true,
+      "dependencies": {
+        "locate-path": "^5.0.0",
+        "path-exists": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/ts-migrate/node_modules/is-fullwidth-code-point": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+      "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/ts-migrate/node_modules/locate-path": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+      "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+      "dev": true,
+      "dependencies": {
+        "p-locate": "^4.1.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/ts-migrate/node_modules/p-limit": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+      "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+      "dev": true,
+      "dependencies": {
+        "p-try": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/ts-migrate/node_modules/p-locate": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+      "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+      "dev": true,
+      "dependencies": {
+        "p-limit": "^2.2.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/ts-migrate/node_modules/string-width": {
+      "version": "4.2.3",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+      "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+      "dev": true,
+      "dependencies": {
+        "emoji-regex": "^8.0.0",
+        "is-fullwidth-code-point": "^3.0.0",
+        "strip-ansi": "^6.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/ts-migrate/node_modules/wrap-ansi": {
+      "version": "6.2.0",
+      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+      "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+      "dev": true,
+      "dependencies": {
+        "ansi-styles": "^4.0.0",
+        "string-width": "^4.1.0",
+        "strip-ansi": "^6.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/ts-migrate/node_modules/y18n": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+      "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
+      "dev": true
+    },
+    "node_modules/ts-migrate/node_modules/yargs": {
+      "version": "15.4.1",
+      "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
+      "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+      "dev": true,
+      "dependencies": {
+        "cliui": "^6.0.0",
+        "decamelize": "^1.2.0",
+        "find-up": "^4.1.0",
+        "get-caller-file": "^2.0.1",
+        "require-directory": "^2.1.1",
+        "require-main-filename": "^2.0.0",
+        "set-blocking": "^2.0.0",
+        "string-width": "^4.2.0",
+        "which-module": "^2.0.0",
+        "y18n": "^4.0.0",
+        "yargs-parser": "^18.1.2"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/ts-migrate/node_modules/yargs-parser": {
+      "version": "18.1.3",
+      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+      "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+      "dev": true,
+      "dependencies": {
+        "camelcase": "^5.0.0",
+        "decamelize": "^1.2.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/ts-node": {
+      "version": "10.9.2",
+      "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
+      "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
+      "devOptional": true,
+      "dependencies": {
+        "@cspotcode/source-map-support": "^0.8.0",
+        "@tsconfig/node10": "^1.0.7",
+        "@tsconfig/node12": "^1.0.7",
+        "@tsconfig/node14": "^1.0.0",
+        "@tsconfig/node16": "^1.0.2",
+        "acorn": "^8.4.1",
+        "acorn-walk": "^8.1.1",
+        "arg": "^4.1.0",
+        "create-require": "^1.1.0",
+        "diff": "^4.0.1",
+        "make-error": "^1.1.1",
+        "v8-compile-cache-lib": "^3.0.1",
+        "yn": "3.1.1"
+      },
+      "bin": {
+        "ts-node": "dist/bin.js",
+        "ts-node-cwd": "dist/bin-cwd.js",
+        "ts-node-esm": "dist/bin-esm.js",
+        "ts-node-script": "dist/bin-script.js",
+        "ts-node-transpile-only": "dist/bin-transpile.js",
+        "ts-script": "dist/bin-script-deprecated.js"
+      },
+      "peerDependencies": {
+        "@swc/core": ">=1.2.50",
+        "@swc/wasm": ">=1.2.50",
+        "@types/node": "*",
+        "typescript": ">=2.7"
+      },
+      "peerDependenciesMeta": {
+        "@swc/core": {
+          "optional": true
+        },
+        "@swc/wasm": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/ts-node/node_modules/arg": {
+      "version": "4.1.3",
+      "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
+      "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
+      "devOptional": true
+    },
+    "node_modules/tsconfig-paths": {
+      "version": "3.15.0",
+      "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
+      "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
+      "dev": true,
+      "dependencies": {
+        "@types/json5": "^0.0.29",
+        "json5": "^1.0.2",
+        "minimist": "^1.2.6",
+        "strip-bom": "^3.0.0"
+      }
+    },
+    "node_modules/tsconfig-paths/node_modules/json5": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+      "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+      "dev": true,
+      "dependencies": {
+        "minimist": "^1.2.0"
+      },
+      "bin": {
+        "json5": "lib/cli.js"
+      }
+    },
+    "node_modules/tslib": {
+      "version": "2.6.2",
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+      "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
+      "dev": true
+    },
+    "node_modules/tsutils": {
+      "version": "3.21.0",
+      "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
+      "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
+      "dev": true,
+      "dependencies": {
+        "tslib": "^1.8.1"
+      },
+      "engines": {
+        "node": ">= 6"
+      },
+      "peerDependencies": {
+        "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
+      }
+    },
+    "node_modules/tsutils/node_modules/tslib": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+      "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+      "dev": true
+    },
+    "node_modules/type-check": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+      "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+      "dev": true,
+      "dependencies": {
+        "prelude-ls": "^1.2.1"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/type-detect": {
+      "version": "4.0.8",
+      "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+      "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/type-fest": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+      "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/typed-array-buffer": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
+      "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.7",
+        "es-errors": "^1.3.0",
+        "is-typed-array": "^1.1.13"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/typed-array-byte-length": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz",
+      "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.7",
+        "for-each": "^0.3.3",
+        "gopd": "^1.0.1",
+        "has-proto": "^1.0.3",
+        "is-typed-array": "^1.1.13"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/typed-array-byte-offset": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz",
+      "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==",
+      "dev": true,
+      "dependencies": {
+        "available-typed-arrays": "^1.0.7",
+        "call-bind": "^1.0.7",
+        "for-each": "^0.3.3",
+        "gopd": "^1.0.1",
+        "has-proto": "^1.0.3",
+        "is-typed-array": "^1.1.13"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/typed-array-length": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz",
+      "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.7",
+        "for-each": "^0.3.3",
+        "gopd": "^1.0.1",
+        "has-proto": "^1.0.3",
+        "is-typed-array": "^1.1.13",
+        "possible-typed-array-names": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/typedarray": {
+      "version": "0.0.6",
+      "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+      "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
+    },
+    "node_modules/typescript": {
+      "version": "5.4.5",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
+      "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
+      "devOptional": true,
+      "bin": {
+        "tsc": "bin/tsc",
+        "tsserver": "bin/tsserver"
+      },
+      "engines": {
+        "node": ">=14.17"
+      }
+    },
+    "node_modules/ufo": {
+      "version": "1.5.3",
+      "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz",
+      "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==",
+      "dev": true
+    },
+    "node_modules/unbox-primitive": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+      "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "has-bigints": "^1.0.2",
+        "has-symbols": "^1.0.3",
+        "which-boxed-primitive": "^1.0.2"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/undici-types": {
+      "version": "5.26.5",
+      "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+      "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+      "devOptional": true
+    },
+    "node_modules/unicode-canonical-property-names-ecmascript": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
+      "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/unicode-match-property-ecmascript": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
+      "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
+      "dev": true,
+      "dependencies": {
+        "unicode-canonical-property-names-ecmascript": "^2.0.0",
+        "unicode-property-aliases-ecmascript": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/unicode-match-property-value-ecmascript": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz",
+      "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/unicode-property-aliases-ecmascript": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
+      "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/union-value": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+      "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+      "dev": true,
+      "dependencies": {
+        "arr-union": "^3.1.0",
+        "get-value": "^2.0.6",
+        "is-extendable": "^0.1.1",
+        "set-value": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/union-value/node_modules/is-extendable": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+      "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/universalify": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+      "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+      "dev": true,
+      "engines": {
+        "node": ">= 10.0.0"
+      }
+    },
+    "node_modules/unset-value": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+      "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==",
+      "dev": true,
+      "dependencies": {
+        "has-value": "^0.3.1",
+        "isobject": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/unset-value/node_modules/has-value": {
+      "version": "0.3.1",
+      "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+      "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==",
+      "dev": true,
+      "dependencies": {
+        "get-value": "^2.0.3",
+        "has-values": "^0.1.4",
+        "isobject": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/unset-value/node_modules/has-value/node_modules/isobject": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+      "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==",
+      "dev": true,
+      "dependencies": {
+        "isarray": "1.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/unset-value/node_modules/has-values": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+      "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/unset-value/node_modules/isarray": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+      "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+      "dev": true
+    },
+    "node_modules/updatable-log": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/updatable-log/-/updatable-log-0.2.0.tgz",
+      "integrity": "sha512-gR48/mTR6YFB+B1sNoap3nx8HFbEvDl0ej9KhlQTFZdmP8yL5fzFiCUfeHCUf1QvNnXowY1pM9iiGkPKrd0XyQ==",
+      "dev": true,
+      "dependencies": {
+        "chalk": "^2.4.2",
+        "figures": "^3.0.0",
+        "log-update": "^3.3.0"
+      }
+    },
+    "node_modules/updatable-log/node_modules/ansi-escapes": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
+      "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/updatable-log/node_modules/ansi-regex": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+      "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/updatable-log/node_modules/ansi-styles": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+      "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+      "dev": true,
+      "dependencies": {
+        "color-convert": "^1.9.0"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/updatable-log/node_modules/chalk": {
+      "version": "2.4.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+      "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+      "dev": true,
+      "dependencies": {
+        "ansi-styles": "^3.2.1",
+        "escape-string-regexp": "^1.0.5",
+        "supports-color": "^5.3.0"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/updatable-log/node_modules/cli-cursor": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+      "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==",
+      "dev": true,
+      "dependencies": {
+        "restore-cursor": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/updatable-log/node_modules/color-convert": {
+      "version": "1.9.3",
+      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+      "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+      "dev": true,
+      "dependencies": {
+        "color-name": "1.1.3"
+      }
+    },
+    "node_modules/updatable-log/node_modules/color-name": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+      "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+      "dev": true
+    },
+    "node_modules/updatable-log/node_modules/emoji-regex": {
+      "version": "7.0.3",
+      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+      "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+      "dev": true
+    },
+    "node_modules/updatable-log/node_modules/escape-string-regexp": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+      "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.8.0"
+      }
+    },
+    "node_modules/updatable-log/node_modules/has-flag": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+      "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/updatable-log/node_modules/is-fullwidth-code-point": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+      "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/updatable-log/node_modules/log-update": {
+      "version": "3.4.0",
+      "resolved": "https://registry.npmjs.org/log-update/-/log-update-3.4.0.tgz",
+      "integrity": "sha512-ILKe88NeMt4gmDvk/eb615U/IVn7K9KWGkoYbdatQ69Z65nj1ZzjM6fHXfcs0Uge+e+EGnMW7DY4T9yko8vWFg==",
+      "dev": true,
+      "dependencies": {
+        "ansi-escapes": "^3.2.0",
+        "cli-cursor": "^2.1.0",
+        "wrap-ansi": "^5.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/updatable-log/node_modules/mimic-fn": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+      "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/updatable-log/node_modules/onetime": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+      "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==",
+      "dev": true,
+      "dependencies": {
+        "mimic-fn": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/updatable-log/node_modules/restore-cursor": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+      "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==",
+      "dev": true,
+      "dependencies": {
+        "onetime": "^2.0.0",
+        "signal-exit": "^3.0.2"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/updatable-log/node_modules/signal-exit": {
+      "version": "3.0.7",
+      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+      "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+      "dev": true
+    },
+    "node_modules/updatable-log/node_modules/string-width": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+      "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+      "dev": true,
+      "dependencies": {
+        "emoji-regex": "^7.0.1",
+        "is-fullwidth-code-point": "^2.0.0",
+        "strip-ansi": "^5.1.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/updatable-log/node_modules/strip-ansi": {
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+      "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+      "dev": true,
+      "dependencies": {
+        "ansi-regex": "^4.1.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/updatable-log/node_modules/supports-color": {
+      "version": "5.5.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+      "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+      "dev": true,
+      "dependencies": {
+        "has-flag": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/updatable-log/node_modules/wrap-ansi": {
+      "version": "5.1.0",
+      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+      "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+      "dev": true,
+      "dependencies": {
+        "ansi-styles": "^3.2.0",
+        "string-width": "^3.0.0",
+        "strip-ansi": "^5.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/update-browserslist-db": {
+      "version": "1.0.16",
+      "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz",
+      "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "opencollective",
+          "url": "https://opencollective.com/browserslist"
+        },
+        {
+          "type": "tidelift",
+          "url": "https://tidelift.com/funding/github/npm/browserslist"
+        },
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/ai"
+        }
+      ],
+      "dependencies": {
+        "escalade": "^3.1.2",
+        "picocolors": "^1.0.1"
+      },
+      "bin": {
+        "update-browserslist-db": "cli.js"
+      },
+      "peerDependencies": {
+        "browserslist": ">= 4.21.0"
+      }
+    },
+    "node_modules/uri-js": {
+      "version": "4.4.1",
+      "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+      "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+      "dependencies": {
+        "punycode": "^2.1.0"
+      }
+    },
+    "node_modules/urix": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+      "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==",
+      "deprecated": "Please see https://github.com/lydell/urix#deprecated",
+      "dev": true
+    },
+    "node_modules/urlgrey": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-1.0.0.tgz",
+      "integrity": "sha512-hJfIzMPJmI9IlLkby8QrsCykQ+SXDeO2W5Q9QTW3QpqZVTx4a/K7p8/5q+/isD8vsbVaFgql/gvAoQCRQ2Cb5w==",
+      "dev": true,
+      "dependencies": {
+        "fast-url-parser": "^1.1.3"
+      }
+    },
+    "node_modules/use": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+      "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/user-home": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz",
+      "integrity": "sha512-KMWqdlOcjCYdtIJpicDSFBQ8nFwS2i9sslAd6f4+CBGcU4gist2REnr2fxj2YocvJFxSF3ZOHLYLVZnUxv4BZQ==",
+      "dependencies": {
+        "os-homedir": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/util-deprecate": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+      "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+    },
+    "node_modules/uuid": {
+      "version": "8.3.2",
+      "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+      "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+      "dev": true,
+      "bin": {
+        "uuid": "dist/bin/uuid"
+      }
+    },
+    "node_modules/v8-compile-cache": {
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz",
+      "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==",
+      "dev": true
+    },
+    "node_modules/v8-compile-cache-lib": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
+      "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
+      "devOptional": true
+    },
+    "node_modules/vite": {
+      "version": "5.2.12",
+      "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.12.tgz",
+      "integrity": "sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA==",
+      "dev": true,
+      "dependencies": {
+        "esbuild": "^0.20.1",
+        "postcss": "^8.4.38",
+        "rollup": "^4.13.0"
+      },
+      "bin": {
+        "vite": "bin/vite.js"
+      },
+      "engines": {
+        "node": "^18.0.0 || >=20.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/vitejs/vite?sponsor=1"
+      },
+      "optionalDependencies": {
+        "fsevents": "~2.3.3"
+      },
+      "peerDependencies": {
+        "@types/node": "^18.0.0 || >=20.0.0",
+        "less": "*",
+        "lightningcss": "^1.21.0",
+        "sass": "*",
+        "stylus": "*",
+        "sugarss": "*",
+        "terser": "^5.4.0"
+      },
+      "peerDependenciesMeta": {
+        "@types/node": {
+          "optional": true
+        },
+        "less": {
+          "optional": true
+        },
+        "lightningcss": {
+          "optional": true
+        },
+        "sass": {
+          "optional": true
+        },
+        "stylus": {
+          "optional": true
+        },
+        "sugarss": {
+          "optional": true
+        },
+        "terser": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/vite-node": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.0.tgz",
+      "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==",
+      "dev": true,
+      "dependencies": {
+        "cac": "^6.7.14",
+        "debug": "^4.3.4",
+        "pathe": "^1.1.1",
+        "picocolors": "^1.0.0",
+        "vite": "^5.0.0"
+      },
+      "bin": {
+        "vite-node": "vite-node.mjs"
+      },
+      "engines": {
+        "node": "^18.0.0 || >=20.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/vitest"
+      }
+    },
+    "node_modules/vite/node_modules/@esbuild/aix-ppc64": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz",
+      "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==",
+      "cpu": [
+        "ppc64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "aix"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/vite/node_modules/@esbuild/android-arm": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz",
+      "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/vite/node_modules/@esbuild/android-arm64": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz",
+      "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/vite/node_modules/@esbuild/android-x64": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz",
+      "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/vite/node_modules/@esbuild/darwin-arm64": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz",
+      "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/vite/node_modules/@esbuild/darwin-x64": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz",
+      "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/vite/node_modules/@esbuild/freebsd-arm64": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz",
+      "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "freebsd"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/vite/node_modules/@esbuild/freebsd-x64": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz",
+      "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "freebsd"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/vite/node_modules/@esbuild/linux-arm": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz",
+      "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/vite/node_modules/@esbuild/linux-arm64": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz",
+      "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/vite/node_modules/@esbuild/linux-ia32": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz",
+      "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==",
+      "cpu": [
+        "ia32"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/vite/node_modules/@esbuild/linux-loong64": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz",
+      "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==",
+      "cpu": [
+        "loong64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/vite/node_modules/@esbuild/linux-mips64el": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz",
+      "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==",
+      "cpu": [
+        "mips64el"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/vite/node_modules/@esbuild/linux-ppc64": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz",
+      "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==",
+      "cpu": [
+        "ppc64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/vite/node_modules/@esbuild/linux-riscv64": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz",
+      "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==",
+      "cpu": [
+        "riscv64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/vite/node_modules/@esbuild/linux-s390x": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz",
+      "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==",
+      "cpu": [
+        "s390x"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/vite/node_modules/@esbuild/linux-x64": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz",
+      "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/vite/node_modules/@esbuild/netbsd-x64": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz",
+      "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "netbsd"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/vite/node_modules/@esbuild/openbsd-x64": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz",
+      "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "openbsd"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/vite/node_modules/@esbuild/sunos-x64": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz",
+      "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "sunos"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/vite/node_modules/@esbuild/win32-arm64": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz",
+      "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/vite/node_modules/@esbuild/win32-ia32": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz",
+      "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==",
+      "cpu": [
+        "ia32"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/vite/node_modules/@esbuild/win32-x64": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz",
+      "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/vite/node_modules/esbuild": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz",
+      "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==",
+      "dev": true,
+      "hasInstallScript": true,
+      "bin": {
+        "esbuild": "bin/esbuild"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "optionalDependencies": {
+        "@esbuild/aix-ppc64": "0.20.2",
+        "@esbuild/android-arm": "0.20.2",
+        "@esbuild/android-arm64": "0.20.2",
+        "@esbuild/android-x64": "0.20.2",
+        "@esbuild/darwin-arm64": "0.20.2",
+        "@esbuild/darwin-x64": "0.20.2",
+        "@esbuild/freebsd-arm64": "0.20.2",
+        "@esbuild/freebsd-x64": "0.20.2",
+        "@esbuild/linux-arm": "0.20.2",
+        "@esbuild/linux-arm64": "0.20.2",
+        "@esbuild/linux-ia32": "0.20.2",
+        "@esbuild/linux-loong64": "0.20.2",
+        "@esbuild/linux-mips64el": "0.20.2",
+        "@esbuild/linux-ppc64": "0.20.2",
+        "@esbuild/linux-riscv64": "0.20.2",
+        "@esbuild/linux-s390x": "0.20.2",
+        "@esbuild/linux-x64": "0.20.2",
+        "@esbuild/netbsd-x64": "0.20.2",
+        "@esbuild/openbsd-x64": "0.20.2",
+        "@esbuild/sunos-x64": "0.20.2",
+        "@esbuild/win32-arm64": "0.20.2",
+        "@esbuild/win32-ia32": "0.20.2",
+        "@esbuild/win32-x64": "0.20.2"
+      }
+    },
+    "node_modules/vitest": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.0.tgz",
+      "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==",
+      "dev": true,
+      "dependencies": {
+        "@vitest/expect": "1.6.0",
+        "@vitest/runner": "1.6.0",
+        "@vitest/snapshot": "1.6.0",
+        "@vitest/spy": "1.6.0",
+        "@vitest/utils": "1.6.0",
+        "acorn-walk": "^8.3.2",
+        "chai": "^4.3.10",
+        "debug": "^4.3.4",
+        "execa": "^8.0.1",
+        "local-pkg": "^0.5.0",
+        "magic-string": "^0.30.5",
+        "pathe": "^1.1.1",
+        "picocolors": "^1.0.0",
+        "std-env": "^3.5.0",
+        "strip-literal": "^2.0.0",
+        "tinybench": "^2.5.1",
+        "tinypool": "^0.8.3",
+        "vite": "^5.0.0",
+        "vite-node": "1.6.0",
+        "why-is-node-running": "^2.2.2"
+      },
+      "bin": {
+        "vitest": "vitest.mjs"
+      },
+      "engines": {
+        "node": "^18.0.0 || >=20.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/vitest"
+      },
+      "peerDependencies": {
+        "@edge-runtime/vm": "*",
+        "@types/node": "^18.0.0 || >=20.0.0",
+        "@vitest/browser": "1.6.0",
+        "@vitest/ui": "1.6.0",
+        "happy-dom": "*",
+        "jsdom": "*"
+      },
+      "peerDependenciesMeta": {
+        "@edge-runtime/vm": {
+          "optional": true
+        },
+        "@types/node": {
+          "optional": true
+        },
+        "@vitest/browser": {
+          "optional": true
+        },
+        "@vitest/ui": {
+          "optional": true
+        },
+        "happy-dom": {
+          "optional": true
+        },
+        "jsdom": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/vscode-oniguruma": {
+      "version": "1.7.0",
+      "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz",
+      "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA=="
+    },
+    "node_modules/vscode-textmate": {
+      "version": "7.0.4",
+      "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-7.0.4.tgz",
+      "integrity": "sha512-9hJp0xL7HW1Q5OgGe03NACo7yiCTMEk3WU/rtKXUbncLtdg6rVVNJnHwD88UhbIYU2KoxY0Dih0x+kIsmUKn2A=="
+    },
+    "node_modules/watchpack": {
+      "version": "2.4.1",
+      "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz",
+      "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==",
+      "dev": true,
+      "peer": true,
+      "dependencies": {
+        "glob-to-regexp": "^0.4.1",
+        "graceful-fs": "^4.1.2"
+      },
+      "engines": {
+        "node": ">=10.13.0"
+      }
+    },
+    "node_modules/webidl-conversions": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+      "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+      "dev": true
+    },
+    "node_modules/webpack": {
+      "version": "5.91.0",
+      "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz",
+      "integrity": "sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==",
+      "dev": true,
+      "peer": true,
+      "dependencies": {
+        "@types/eslint-scope": "^3.7.3",
+        "@types/estree": "^1.0.5",
+        "@webassemblyjs/ast": "^1.12.1",
+        "@webassemblyjs/wasm-edit": "^1.12.1",
+        "@webassemblyjs/wasm-parser": "^1.12.1",
+        "acorn": "^8.7.1",
+        "acorn-import-assertions": "^1.9.0",
+        "browserslist": "^4.21.10",
+        "chrome-trace-event": "^1.0.2",
+        "enhanced-resolve": "^5.16.0",
+        "es-module-lexer": "^1.2.1",
+        "eslint-scope": "5.1.1",
+        "events": "^3.2.0",
+        "glob-to-regexp": "^0.4.1",
+        "graceful-fs": "^4.2.11",
+        "json-parse-even-better-errors": "^2.3.1",
+        "loader-runner": "^4.2.0",
+        "mime-types": "^2.1.27",
+        "neo-async": "^2.6.2",
+        "schema-utils": "^3.2.0",
+        "tapable": "^2.1.1",
+        "terser-webpack-plugin": "^5.3.10",
+        "watchpack": "^2.4.1",
+        "webpack-sources": "^3.2.3"
+      },
+      "bin": {
+        "webpack": "bin/webpack.js"
+      },
+      "engines": {
+        "node": ">=10.13.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack"
+      },
+      "peerDependenciesMeta": {
+        "webpack-cli": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/webpack-sources": {
+      "version": "3.2.3",
+      "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
+      "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
+      "dev": true,
+      "peer": true,
+      "engines": {
+        "node": ">=10.13.0"
+      }
+    },
+    "node_modules/whatwg-url": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+      "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+      "dev": true,
+      "dependencies": {
+        "tr46": "~0.0.3",
+        "webidl-conversions": "^3.0.0"
+      }
+    },
+    "node_modules/which": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+      "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+      "dependencies": {
+        "isexe": "^2.0.0"
+      },
+      "bin": {
+        "node-which": "bin/node-which"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/which-boxed-primitive": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+      "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+      "dev": true,
+      "dependencies": {
+        "is-bigint": "^1.0.1",
+        "is-boolean-object": "^1.1.0",
+        "is-number-object": "^1.0.4",
+        "is-string": "^1.0.5",
+        "is-symbol": "^1.0.3"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/which-module": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
+      "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==",
+      "dev": true
+    },
+    "node_modules/which-typed-array": {
+      "version": "1.1.15",
+      "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz",
+      "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==",
+      "dev": true,
+      "dependencies": {
+        "available-typed-arrays": "^1.0.7",
+        "call-bind": "^1.0.7",
+        "for-each": "^0.3.3",
+        "gopd": "^1.0.1",
+        "has-tostringtag": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/why-is-node-running": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz",
+      "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==",
+      "dev": true,
+      "dependencies": {
+        "siginfo": "^2.0.0",
+        "stackback": "0.0.2"
+      },
+      "bin": {
+        "why-is-node-running": "cli.js"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/word-wrap": {
+      "version": "1.2.5",
+      "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+      "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/wrap-ansi": {
+      "version": "9.0.0",
+      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz",
+      "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==",
+      "dev": true,
+      "dependencies": {
+        "ansi-styles": "^6.2.1",
+        "string-width": "^7.0.0",
+        "strip-ansi": "^7.1.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+      }
+    },
+    "node_modules/wrap-ansi-cjs": {
+      "name": "wrap-ansi",
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+      "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+      "dependencies": {
+        "ansi-styles": "^4.0.0",
+        "string-width": "^4.1.0",
+        "strip-ansi": "^6.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+      }
+    },
+    "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+    },
+    "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+      "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/wrap-ansi-cjs/node_modules/string-width": {
+      "version": "4.2.3",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+      "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+      "dependencies": {
+        "emoji-regex": "^8.0.0",
+        "is-fullwidth-code-point": "^3.0.0",
+        "strip-ansi": "^6.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/wrap-ansi/node_modules/ansi-regex": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+      "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+      "dev": true,
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+      }
+    },
+    "node_modules/wrap-ansi/node_modules/ansi-styles": {
+      "version": "6.2.1",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+      "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+      "dev": true,
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/wrap-ansi/node_modules/strip-ansi": {
+      "version": "7.1.0",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+      "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+      "dev": true,
+      "dependencies": {
+        "ansi-regex": "^6.0.1"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+      }
+    },
+    "node_modules/wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+    },
+    "node_modules/write-file-atomic": {
+      "version": "2.4.3",
+      "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
+      "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
+      "dev": true,
+      "dependencies": {
+        "graceful-fs": "^4.1.11",
+        "imurmurhash": "^0.1.4",
+        "signal-exit": "^3.0.2"
+      }
+    },
+    "node_modules/write-file-atomic/node_modules/signal-exit": {
+      "version": "3.0.7",
+      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+      "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+      "dev": true
+    },
+    "node_modules/xregexp": {
+      "version": "5.1.1",
+      "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-5.1.1.tgz",
+      "integrity": "sha512-fKXeVorD+CzWvFs7VBuKTYIW63YD1e1osxwQ8caZ6o1jg6pDAbABDG54LCIq0j5cy7PjRvGIq6sef9DYPXpncg==",
+      "dependencies": {
+        "@babel/runtime-corejs3": "^7.16.5"
+      }
+    },
+    "node_modules/y18n": {
+      "version": "5.0.8",
+      "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+      "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/yallist": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+      "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+      "dev": true
+    },
+    "node_modules/yaml": {
+      "version": "2.4.2",
+      "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz",
+      "integrity": "sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==",
+      "bin": {
+        "yaml": "bin.mjs"
+      },
+      "engines": {
+        "node": ">= 14"
+      }
+    },
+    "node_modules/yargs": {
+      "version": "17.7.2",
+      "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+      "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+      "dependencies": {
+        "cliui": "^8.0.1",
+        "escalade": "^3.1.1",
+        "get-caller-file": "^2.0.5",
+        "require-directory": "^2.1.1",
+        "string-width": "^4.2.3",
+        "y18n": "^5.0.5",
+        "yargs-parser": "^21.1.1"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/yargs-parser": {
+      "version": "21.1.1",
+      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+      "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/yargs/node_modules/emoji-regex": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+    },
+    "node_modules/yargs/node_modules/is-fullwidth-code-point": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+      "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/yargs/node_modules/string-width": {
+      "version": "4.2.3",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+      "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+      "dependencies": {
+        "emoji-regex": "^8.0.0",
+        "is-fullwidth-code-point": "^3.0.0",
+        "strip-ansi": "^6.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/yn": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
+      "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
+      "devOptional": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/yocto-queue": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+      "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    }
+  }
+}
diff --git a/pkgs/by-name/bl/blade-formatter/package.nix b/pkgs/by-name/bl/blade-formatter/package.nix
new file mode 100644
index 0000000000000..e0f58cd80139a
--- /dev/null
+++ b/pkgs/by-name/bl/blade-formatter/package.nix
@@ -0,0 +1,67 @@
+{
+  lib,
+  buildNpmPackage,
+  fetchFromGitHub,
+  testers,
+  writeText,
+  runCommand,
+  blade-formatter,
+  nodejs,
+}:
+
+buildNpmPackage rec {
+  pname = "blade-formatter";
+  version = "1.41.1";
+
+  src = fetchFromGitHub {
+    owner = "shufo";
+    repo = "blade-formatter";
+    rev = "v${version}";
+    hash = "sha256-iaWpIa+H+ocAXGc042PfmCu9UcJZeso9ripWB2/1oTs=";
+  };
+
+  postPatch = ''
+    cp ${./package-lock.json} ./package-lock.json
+  '';
+
+  npmDepsHash = "sha256-wEz0DTbg+Fdmsf0Qyeu9QS+I8gkPJeaJC/3HuP913og=";
+
+  passthru = {
+    updateScript = ./update.sh;
+    tests = {
+      version = testers.testVersion {
+        package = blade-formatter;
+        command = "blade-formatter --version";
+      };
+
+      simple = testers.testEqualContents {
+        assertion = "blade-formatter formats a basic blade file";
+        expected = writeText "expected" ''
+          @if (true)
+              Hello world!
+          @endif
+        '';
+        actual =
+          runCommand "actual"
+            {
+              nativeBuildInputs = [ blade-formatter ];
+              base = writeText "base" ''
+                @if(   true )  Hello world!   @endif
+              '';
+            }
+            ''
+              blade-formatter $base > $out
+            '';
+      };
+    };
+  };
+
+  meta = {
+    description = "Laravel Blade template formatter";
+    homepage = "https://github.com/shufo/blade-formatter";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ lelgenio ];
+    mainProgram = "blade-formatter";
+    inherit (nodejs.meta) platforms;
+  };
+}
diff --git a/pkgs/by-name/bl/blade-formatter/update.sh b/pkgs/by-name/bl/blade-formatter/update.sh
new file mode 100755
index 0000000000000..c7a0cdde38aa3
--- /dev/null
+++ b/pkgs/by-name/bl/blade-formatter/update.sh
@@ -0,0 +1,38 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p ripgrep common-updater-scripts prefetch-npm-deps jq sd
+
+set -xeu -o pipefail
+
+PACKAGE_DIR="$(realpath "$(dirname "$0")")"
+cd "$PACKAGE_DIR/.."
+while ! test -f default.nix; do cd .. ; done
+NIXPKGS_DIR="$PWD"
+
+new_version="$(
+  list-git-tags --url=https://github.com/shufo/blade-formatter \
+  | rg '^v([\d.]*)' -r '$1' \
+  | sort --version-sort \
+  | tail -n1
+)"
+
+cd "$NIXPKGS_DIR"
+update-source-version blade-formatter "$new_version"
+
+TMPDIR="$(mktemp -d)"
+cd "$TMPDIR"
+
+src="$(nix-build --no-link "$NIXPKGS_DIR" -A blade-formatter.src)"
+cp $src/package.json .
+npm update
+cp ./package-lock.json "$PACKAGE_DIR"
+
+prev_npm_hash="$(nix-instantiate "$NIXPKGS_DIR" \
+  --eval --json \
+  -A blade-formatter.npmDepsHash \
+  | jq -r .
+)"
+new_npm_hash="$(prefetch-npm-deps ./package-lock.json)"
+
+sd --fixed-strings "$prev_npm_hash" "$new_npm_hash" "$PACKAGE_DIR/package.nix"
+
+rm -rf "$TMPDIR"
diff --git a/pkgs/by-name/bl/blockattack/package.nix b/pkgs/by-name/bl/blockattack/package.nix
index f0de4f2de8afc..35b765920a0a9 100644
--- a/pkgs/by-name/bl/blockattack/package.nix
+++ b/pkgs/by-name/bl/blockattack/package.nix
@@ -65,7 +65,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://blockattack.net/";
-    description = "An open source clone of Panel de Pon (aka Tetris Attack)";
+    description = "Open source clone of Panel de Pon (aka Tetris Attack)";
     broken = stdenv.isDarwin;
     changelog = "https://github.com/blockattack/blockattack-game/blob/${finalAttrs.src.rev}/CHANGELOG.md";
     license = with lib.licenses; [ gpl2Plus ];
diff --git a/pkgs/by-name/bl/blockbench/package.nix b/pkgs/by-name/bl/blockbench/package.nix
index cc066a67a9ed8..9cf8cac46c72c 100644
--- a/pkgs/by-name/bl/blockbench/package.nix
+++ b/pkgs/by-name/bl/blockbench/package.nix
@@ -16,13 +16,13 @@ let
 in
 buildNpmPackage rec {
   pname = "blockbench";
-  version = "4.10.1";
+  version = "4.10.2";
 
   src = fetchFromGitHub {
     owner = "JannisX11";
     repo = "blockbench";
     rev = "v${version}";
-    hash = "sha256-LuWxjBsOBo6tSlSGaDWrNYcTerIpU+rw3r+zN6gtYb0=";
+    hash = "sha256-Ch+vPSvdqfJF2gNgZN2x5KSY1S1CYfHCyMyUf4W+Vn8=";
   };
 
   nativeBuildInputs =
@@ -32,7 +32,7 @@ buildNpmPackage rec {
       copyDesktopItems
     ];
 
-  npmDepsHash = "sha256-CHZdCiewkmToDHhTTvOqQfWrphOw1oGLgwSRRH3YFWE=";
+  npmDepsHash = "sha256-au6GzBTxPcYcqrPEnQ+yEhVRdAbiUa/Ocq7UCPdiox4=";
 
   env.ELECTRON_SKIP_BINARY_DOWNLOAD = 1;
 
diff --git a/pkgs/by-name/bl/bluez-tools/package.nix b/pkgs/by-name/bl/bluez-tools/package.nix
index 21fb5f2b140f9..ae79bdc01fbb6 100644
--- a/pkgs/by-name/bl/bluez-tools/package.nix
+++ b/pkgs/by-name/bl/bluez-tools/package.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/khvzak/bluez-tools";
-    description = "A set of tools to manage bluetooth devices for linux";
+    description = "Set of tools to manage bluetooth devices for linux";
     license = with lib.licenses; [ gpl2Plus ];
     mainProgram = "bt-agent";
     maintainers = with lib.maintainers; [ AndersonTorres ];
diff --git a/pkgs/by-name/bm/bmake/001-bootstrap-fix.diff b/pkgs/by-name/bm/bmake/001-bootstrap-fix.diff
deleted file mode 100644
index 9b1267257ad16..0000000000000
--- a/pkgs/by-name/bm/bmake/001-bootstrap-fix.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- bmake/make-bootstrap.sh.in.orig     2019-02-19 10:55:21.733606117 -0800
-+++ bmake/make-bootstrap.sh.in  2019-02-19 10:56:02.150771541 -0800
-@@ -4,6 +4,7 @@
- 
- srcdir=@srcdir@
- 
-+prefix="@prefix@"
- DEFAULT_SYS_PATH="@default_sys_path@"
- 
- case "@use_meta@" in
diff --git a/pkgs/by-name/bm/bmake/002-dont-test-while-installing.diff b/pkgs/by-name/bm/bmake/002-dont-test-while-installing.diff
index ab9399920c242..75cee4a8473ea 100644
--- a/pkgs/by-name/bm/bmake/002-dont-test-while-installing.diff
+++ b/pkgs/by-name/bm/bmake/002-dont-test-while-installing.diff
@@ -1,17 +1,17 @@
 diff -Naur bmake-old/boot-strap bmake-new/boot-strap
---- bmake-old/boot-strap	2023-06-27 18:02:19.000000000 -0300
-+++ bmake-new/boot-strap	2023-07-23 22:31:02.334720661 -0300
-@@ -413,9 +413,6 @@
+--- bmake-old/boot-strap	2024-03-10 14:51:10.000000000 -0300
++++ bmake-new/boot-strap	2024-05-30 21:49:13.689803511 -0300
+@@ -435,9 +435,6 @@
  	[ -s make-bootstrap.sh ] || op_configure
  	chmod 755 make-bootstrap.sh || exit 1
  	./make-bootstrap.sh || exit 1
 -	case "$op" in
--	build) op_test;;
+-	build) rm -f tested; op_test;;
 -	esac
  }
  
  op_test() {
-@@ -434,7 +431,6 @@
+@@ -461,7 +458,6 @@
  }
  
  op_install() {
diff --git a/pkgs/by-name/bm/bmake/package.nix b/pkgs/by-name/bm/bmake/package.nix
index fe4e8b6ed6dd3..6eebe5fb5d9e0 100644
--- a/pkgs/by-name/bm/bmake/package.nix
+++ b/pkgs/by-name/bm/bmake/package.nix
@@ -1,26 +1,24 @@
-{ lib
-, stdenv
-, fetchurl
-, fetchpatch
-, getopt
-, ksh
-, bc
-, tzdata
-, pkgsMusl # for passthru.tests
+{
+  lib,
+  bc,
+  fetchurl,
+  getopt,
+  ksh,
+  pkgsMusl,
+  stdenv,
+  tzdata,
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "bmake";
-  version = "20240301";
+  version = "20240520";
 
   src = fetchurl {
-    url = "http://www.crufty.net/ftp/pub/sjg/bmake-${finalAttrs.version}.tar.gz";
-    hash = "sha256-JM4L46z8i5PHWgeWxi7swWN246fAVXCzAtIEgOOOn1k=";
+    url = "https://www.crufty.net/ftp/pub/sjg/bmake-${finalAttrs.version}.tar.gz";
+    hash = "sha256-IhDM1FWwCN95Ufbb00e/zBg3xGRzAU5LjdX/MJGuKJQ=";
   };
 
   patches = [
-    # make bootstrap script aware of the prefix in /nix/store
-    ./001-bootstrap-fix.diff
     # decouple tests from build phase
     ./002-dont-test-while-installing.diff
     # preserve PATH from build env in unit tests
@@ -29,6 +27,41 @@ stdenv.mkDerivation (finalAttrs: {
     ./004-unconditional-ksh-test.diff
   ];
 
+  outputs = [ "out" "man" ];
+
+  nativeBuildInputs = [ getopt ];
+
+  nativeCheckInputs = [
+    bc
+    tzdata
+  ] ++ lib.optionals (stdenv.hostPlatform.libc != "musl") [
+    ksh
+  ];
+
+  # The generated makefile is a small wrapper for calling ./boot-strap with a
+  # given op. On a case-insensitive filesystem this generated makefile clobbers
+  # a distinct, shipped Makefile and causes infinite recursion during tests
+  # which eventually fail with "fork: Resource temporarily unavailable"
+  configureFlags = [
+    "--without-makefile"
+  ];
+
+  # Disabled tests:
+  # * directive-export{,-gmake}: another failure related to TZ variables
+  # * opt-keep-going-indirect: not yet known
+  # * varmod-localtime: musl doesn't support TZDIR and this test relies on
+  #   impure, implicit paths
+  env.BROKEN_TESTS = builtins.concatStringsSep " " [
+    "directive-export"
+    "directive-export-gmake"
+    "opt-keep-going-indirect"
+    "varmod-localtime"
+  ];
+
+  strictDeps = true;
+
+  doCheck = true;
+
   # Make tests work with musl
   # * Disable deptgt-delete_on_error test (alpine does this too)
   # * Disable shell-ksh test (ksh doesn't compile with musl)
@@ -40,16 +73,6 @@ stdenv.mkDerivation (finalAttrs: {
     substituteInPlace unit-tests/opt-chdir.exp --replace "File name" "Filename"
   '';
 
-  nativeBuildInputs = [ getopt ];
-
-  # The generated makefile is a small wrapper for calling ./boot-strap with a
-  # given op. On a case-insensitive filesystem this generated makefile clobbers
-  # a distinct, shipped, Makefile and causes infinite recursion during tests
-  # which eventually fail with "fork: Resource temporarily unavailable"
-  configureFlags = [
-    "--without-makefile"
-  ];
-
   buildPhase = ''
     runHook preBuild
 
@@ -66,29 +89,6 @@ stdenv.mkDerivation (finalAttrs: {
     runHook postInstall
   '';
 
-  doCheck = true;
-
-  nativeCheckInputs = [
-    bc
-    tzdata
-  ] ++ lib.optionals (stdenv.hostPlatform.libc != "musl") [
-    ksh
-  ];
-
-  # Disabled tests:
-  # directive-export{,-gmake}: another failure related to TZ variables
-  # opt-chdir: ofborg complains about it somehow
-  # opt-keep-going-indirect: not yet known
-  # varmod-localtime: musl doesn't support TZDIR and this test relies on impure,
-  # implicit paths
-  env.BROKEN_TESTS = builtins.concatStringsSep " " [
-    "directive-export"
-    "directive-export-gmake"
-    "opt-chdir" # works on my machine -- AndersonTorres
-    "opt-keep-going-indirect"
-    "varmod-localtime"
-  ];
-
   checkPhase = ''
     runHook preCheck
 
@@ -97,22 +97,24 @@ stdenv.mkDerivation (finalAttrs: {
     runHook postCheck
   '';
 
-  strictDeps = true;
-
   setupHook = ./setup-hook.sh;
 
-  passthru.tests.bmakeMusl = pkgsMusl.bmake;
+  passthru = {
+    tests = {
+      bmakeMusl = pkgsMusl.bmake;
+    };
+  };
 
   meta = {
-    homepage = "http://www.crufty.net/help/sjg/bmake.html";
+    homepage = "https://www.crufty.net/help/sjg/bmake.html";
     description = "Portable version of NetBSD 'make'";
     license = lib.licenses.bsd3;
     mainProgram = "bmake";
     maintainers = with lib.maintainers; [ thoughtpolice AndersonTorres ];
     platforms = lib.platforms.unix;
-    # ofborg: x86_64-linux builds the musl package, aarch64-linux doesn't
-    broken = stdenv.hostPlatform.isMusl && stdenv.buildPlatform.isAarch64;
+    # requires strip
+    badPlatforms = [ lib.systems.inspect.platformPatterns.isStatic ];
   };
 })
 # TODO: report the quirks and patches to bmake devteam (especially the Musl one)
-# TODO: investigate Musl support
+# TODO: investigate static support
diff --git a/pkgs/by-name/bn/bngblaster/package.nix b/pkgs/by-name/bn/bngblaster/package.nix
index 4b1647f37161e..7adf360ac09a5 100644
--- a/pkgs/by-name/bn/bngblaster/package.nix
+++ b/pkgs/by-name/bn/bngblaster/package.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "bngblaster";
-  version = "0.8.51";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "rtbrick";
     repo = "bngblaster";
     rev = finalAttrs.version;
-    hash = "sha256-7AwLedYPOZAKQpWWuEasI9ytN66MZYKFO9SgXi7NjIo=";
+    hash = "sha256-ugfimJmyAHxgLypgEwzOK0VLmIYod5YzW7oO/omcl1I=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/by-name/bo/bochs/package.nix b/pkgs/by-name/bo/bochs/package.nix
index eb3c51430b540..963f242d1ed7b 100644
--- a/pkgs/by-name/bo/bochs/package.nix
+++ b/pkgs/by-name/bo/bochs/package.nix
@@ -136,7 +136,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://bochs.sourceforge.io/";
-    description = "An open-source IA-32 (x86) PC emulator";
+    description = "Open-source IA-32 (x86) PC emulator";
     longDescription = ''
       Bochs is an open-source (LGPL), highly portable IA-32 PC emulator, written
       in C++, that runs on most popular platforms. It includes emulation of the
diff --git a/pkgs/by-name/bo/boehmgc/package.nix b/pkgs/by-name/bo/boehmgc/package.nix
index 213d0ec9e3e32..4a5418a3206b6 100644
--- a/pkgs/by-name/bo/boehmgc/package.nix
+++ b/pkgs/by-name/bo/boehmgc/package.nix
@@ -50,8 +50,9 @@ stdenv.mkDerivation (finalAttrs: {
       "CFLAGS_EXTRA=-DNO_SOFT_VDB"
     ];
 
-  # `gctest` fails under emulation on aarch64-darwin
-  doCheck = !(stdenv.isDarwin && stdenv.isx86_64);
+  # `gctest` fails under x86_64 emulation on aarch64-darwin
+  # and also on aarch64-linux (qemu-user)
+  doCheck = !((stdenv.isDarwin && stdenv.isx86_64) || (stdenv.isLinux && stdenv.isAarch64));
 
   enableParallelBuilding = true;
 
@@ -59,7 +60,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://hboehm.info/gc/";
-    description = "The Boehm-Demers-Weiser conservative garbage collector for C and C++";
+    description = "Boehm-Demers-Weiser conservative garbage collector for C and C++";
     longDescription = ''
       The Boehm-Demers-Weiser conservative garbage collector can be used as a
       garbage collecting replacement for C malloc or C++ new.  It allows you
diff --git a/pkgs/by-name/bo/bombsquad/package.nix b/pkgs/by-name/bo/bombsquad/package.nix
index 0813d02525aab..b5417bdf74a84 100644
--- a/pkgs/by-name/bo/bombsquad/package.nix
+++ b/pkgs/by-name/bo/bombsquad/package.nix
@@ -16,13 +16,14 @@
   copyDesktopItems,
   writeShellApplication,
   commandLineArgs ? "",
+  genericUpdater,
 }:
 let
   archive =
     {
       x86_64-linux = {
         name = "BombSquad_Linux_x86_64";
-        hash = "sha256-VLNO0TxI/KBj8RkpGjo9Rx40f7fuV3pK2kIoKff9sRU=";
+        hash = "sha256-YrbDhdVtNtxeE3fIRPIODwVO3lrxz7OAAYc7doBBQj8=";
       };
       aarch-64-linux = {
         name = "BombSquad_Linux_Arm64";
@@ -32,8 +33,8 @@ let
     .${targetPlatform.system} or (throw "${targetPlatform.system} is unsupported.");
 in
 stdenv.mkDerivation (finalAttrs: {
-  name = "bombsquad";
-  version = "1.7.34";
+  pname = "bombsquad";
+  version = "1.7.35";
   sourceRoot = ".";
   src = fetchurl {
     url = "https://files.ballistica.net/bombsquad/builds/${archive.name}_${finalAttrs.version}.tar.gz";
@@ -86,28 +87,33 @@ stdenv.mkDerivation (finalAttrs: {
     runHook postInstall
   '';
 
-  passthru.updateScript = lib.getExe (writeShellApplication {
-    name = "bombsquad-versionLister";
-    runtimeInputs = [
-      curl
-      gnugrep
-    ];
-    text = ''
-      curl -sL "https://files.ballistica.net/bombsquad/builds/CHANGELOG.md" \
-          | grep -oP '^### \K\d+\.\d+\.\d+' \
-          | head -n 1
-    '';
-  });
+  passthru.updateScript = genericUpdater {
+    versionLister = lib.getExe (writeShellApplication {
+      name = "bombsquad-versionLister";
+      runtimeInputs = [
+        curl
+        gnugrep
+      ];
+      text = ''
+        curl -sL "https://files.ballistica.net/bombsquad/builds/CHANGELOG.md" \
+            | grep -oP '^### \K\d+\.\d+\.\d+' \
+            | head -n 1
+      '';
+    });
+  };
 
   meta = {
-    description = "A free, multiplayer, arcade-style game for up to eight players that combines elements of fighting games and first-person shooters (FPS)";
+    description = "Free, multiplayer, arcade-style game for up to eight players that combines elements of fighting games and first-person shooters (FPS)";
     homepage = "https://ballistica.net";
     changelog = "https://ballistica.net/downloads?display=changelog";
     license = with lib.licenses; [
       mit
       unfree
     ];
-    maintainers = with lib.maintainers; [ syedahkam coffeeispower ];
+    maintainers = with lib.maintainers; [
+      syedahkam
+      coffeeispower
+    ];
     mainProgram = "bombsquad";
     platforms = lib.platforms.linux;
   };
diff --git a/pkgs/by-name/bo/bonsai/package.nix b/pkgs/by-name/bo/bonsai/package.nix
index 6c5d9adb78b5e..98b19be7e6fce 100644
--- a/pkgs/by-name/bo/bonsai/package.nix
+++ b/pkgs/by-name/bo/bonsai/package.nix
@@ -1,9 +1,10 @@
-{ stdenv
-, lib
-, fetchFromSourcehut
-, gitUpdater
-, hare
-, hareThirdParty
+{
+  stdenv,
+  lib,
+  fetchFromSourcehut,
+  gitUpdater,
+  hareHook,
+  hareThirdParty,
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -18,30 +19,18 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   nativeBuildInputs = [
-    hare
+    hareHook
     hareThirdParty.hare-ev
     hareThirdParty.hare-json
   ];
 
-  makeFlags = [
-    "PREFIX=${builtins.placeholder "out"}"
-    "HARECACHE=.harecache"
-    "HAREFLAGS=-qa${stdenv.hostPlatform.uname.processor}"
-  ];
+  makeFlags = [ "PREFIX=${builtins.placeholder "out"}" ];
 
   enableParallelBuilding = true;
 
   doCheck = true;
 
-  postPatch = ''
-    substituteInPlace Makefile \
-      --replace 'hare build' 'hare build $(HAREFLAGS)' \
-      --replace 'hare test' 'hare test $(HAREFLAGS)'
-  '';
-
-  passthru.updateScript = gitUpdater {
-    rev-prefix = "v";
-  };
+  passthru.updateScript = gitUpdater { rev-prefix = "v"; };
 
   meta = with lib; {
     description = "Finite State Machine structured as a tree";
diff --git a/pkgs/by-name/bo/boogie/package.nix b/pkgs/by-name/bo/boogie/package.nix
index 2961632b88282..e0514450ab834 100644
--- a/pkgs/by-name/bo/boogie/package.nix
+++ b/pkgs/by-name/bo/boogie/package.nix
@@ -2,13 +2,13 @@
 
 buildDotnetModule rec {
   pname = "Boogie";
-  version = "3.1.5";
+  version = "3.1.6";
 
   src = fetchFromGitHub {
     owner = "boogie-org";
     repo = "boogie";
     rev = "v${version}";
-    sha256 = "sha256-/6x4NzlSJ2uswVlfFpevXaQxUxPnh3KvnbPIb8SFX9E=";
+    sha256 = "sha256-Bli/vEzzVQTWicQJskK9cQC2XsFRwMxX9cAePXN511c=";
   };
 
   projectFile = [ "Source/Boogie.sln" ];
@@ -41,7 +41,7 @@ buildDotnetModule rec {
   '';
 
   meta = with lib; {
-    description = "An intermediate verification language";
+    description = "Intermediate verification language";
     homepage = "https://github.com/boogie-org/boogie";
     longDescription = ''
       Boogie is an intermediate verification language (IVL), intended as a
diff --git a/pkgs/by-name/bo/boxbuddy/package.nix b/pkgs/by-name/bo/boxbuddy/package.nix
index ed1d5c8956b1d..2801b6415243b 100644
--- a/pkgs/by-name/bo/boxbuddy/package.nix
+++ b/pkgs/by-name/bo/boxbuddy/package.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "boxbuddy";
-  version = "2.2.4";
+  version = "2.2.5";
 
   src = fetchFromGitHub {
     owner = "Dvlv";
     repo = "BoxBuddyRS";
     rev = version;
-    hash = "sha256-1a9rSVP40+ZKp21BJLO+6HGDf1m6dROqGyTkql58iA4=";
+    hash = "sha256-Dy7mSBraMHAno8cIk9f6/Ofsm2ZGSb7VS5Wy1o+ZoC8=";
   };
 
-  cargoHash = "sha256-Y89TkqjTmaYnFsQmg48FSPMFoUL7Wbgb2xh60boILdQ=";
+  cargoHash = "sha256-NB93bw2mMCVmZWpxCJGusXp2DgotjrlHUlsd0mb+fBA=";
 
   # The software assumes it is installed either in flatpak or in the home directory
   # so the xdg data path needs to be patched here
@@ -51,7 +51,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false; # No checks defined
 
   meta = with lib; {
-    description = "An unofficial GUI for managing your Distroboxes, written with GTK4 + Libadwaita";
+    description = "Unofficial GUI for managing your Distroboxes, written with GTK4 + Libadwaita";
     homepage = "https://dvlv.github.io/BoxBuddyRS";
     license = licenses.mit;
     mainProgram = "boxbuddy-rs";
diff --git a/pkgs/by-name/bp/bpftop/package.nix b/pkgs/by-name/bp/bpftop/package.nix
index dd8168868efbd..a60c26c3e9679 100644
--- a/pkgs/by-name/bp/bpftop/package.nix
+++ b/pkgs/by-name/bp/bpftop/package.nix
@@ -32,7 +32,7 @@ rustPlatform.buildRustPackage.override { stdenv = clangStdenv; } {
   nativeBuildInputs = [ pkg-config ];
 
   meta = {
-    description = "A dynamic real-time view of running eBPF programs";
+    description = "Dynamic real-time view of running eBPF programs";
     homepage = "https://github.com/Netflix/bpftop";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [
diff --git a/pkgs/by-name/bp/bpftrace/package.nix b/pkgs/by-name/bp/bpftrace/package.nix
index 6e516c5806eee..bc5aab6a94062 100644
--- a/pkgs/by-name/bp/bpftrace/package.nix
+++ b/pkgs/by-name/bp/bpftrace/package.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch
+{ lib, stdenv, fetchFromGitHub
 , llvmPackages, elfutils, bcc
 , libbpf, libbfd, libopcodes
 , cereal, asciidoctor
diff --git a/pkgs/development/interpreters/bqn/mlochbaum-bqn/001-libbqn-path.patch b/pkgs/by-name/bq/bqn/001-libbqn-path.patch
index b23c3de44af6d..b23c3de44af6d 100644
--- a/pkgs/development/interpreters/bqn/mlochbaum-bqn/001-libbqn-path.patch
+++ b/pkgs/by-name/bq/bqn/001-libbqn-path.patch
diff --git a/pkgs/by-name/bq/bqn/package.nix b/pkgs/by-name/bq/bqn/package.nix
new file mode 100644
index 0000000000000..5d96a2cbbf904
--- /dev/null
+++ b/pkgs/by-name/bq/bqn/package.nix
@@ -0,0 +1,62 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, makeWrapper
+, nodejs
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "bqn";
+  version = "0-unstable-2024-05-13";
+
+  src = fetchFromGitHub {
+    owner = "mlochbaum";
+    repo = "BQN";
+    rev = "c971a177421d532a13c4b7515535552df19681e1";
+    hash = "sha256-Fru1IIb4IxBQxrEEBoRYStxBqYJJqd+Q+Hwyk++QA68=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  buildInputs = [ nodejs ];
+
+  patches = [
+    # Creates a @libbqn@ substitution variable, to be filled in postFixup
+    ./001-libbqn-path.patch
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin $out/share/bqn
+    cp bqn.js $out/share/bqn/bqn.js
+    cp docs/bqn.js $out/share/bqn/libbqn.js
+
+    makeWrapper "${lib.getBin nodejs}/bin/node" "$out/bin/mbqn" \
+      --add-flags "$out/share/bqn/bqn.js"
+
+    ln -s $out/bin/mbqn $out/bin/bqn
+
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    substituteInPlace $out/share/bqn/bqn.js \
+      --subst-var-by "libbqn" "$out/share/bqn/libbqn.js"
+  '';
+
+  dontConfigure = true;
+
+  dontBuild = true;
+
+  strictDeps = true;
+
+  meta = {
+    homepage = "https://github.com/mlochbaum/BQN/";
+    description = "Original BQN implementation in Javascript";
+    license = lib.licenses.isc;
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    inherit (nodejs.meta) platforms;
+  };
+})
+# TODO: install docs and other stuff
diff --git a/pkgs/by-name/br/braa/package.nix b/pkgs/by-name/br/braa/package.nix
index 380a829f8119b..a3b416ae482e6 100644
--- a/pkgs/by-name/br/braa/package.nix
+++ b/pkgs/by-name/br/braa/package.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A mass snmp scanner";
+    description = "Mass snmp scanner";
     homepage = "http://s-tech.elsat.net.pl";
     license = licenses.gpl2Only;
     platforms = platforms.unix;
diff --git a/pkgs/by-name/br/breads-ad/package.nix b/pkgs/by-name/br/breads-ad/package.nix
new file mode 100644
index 0000000000000..3f897bf108063
--- /dev/null
+++ b/pkgs/by-name/br/breads-ad/package.nix
@@ -0,0 +1,40 @@
+{
+  lib,
+  python3,
+  fetchFromGitHub,
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "breads-ad";
+  version = "1.2.4-unstable-2024-05-27";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "oppsec";
+    repo = "breads";
+    rev = "bdfc8b5f0357a34847767505ddc98734ca3b491f";
+    hash = "sha256-U1q15D59N55qBf4NVOpe5RpQjlE1ye2TNNIZf2IZV3U=";
+  };
+
+  build-system = with python3.pkgs; [
+    setuptools
+  ];
+
+  dependencies = with python3.pkgs; [
+    impacket
+    ldap3
+    rich
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Tool to evaluate Active Directory Security";
+    homepage = "https://github.com/oppsec/breads";
+    changelog = "https://github.com/oppsec/breads/blob/${version}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "breads-ad";
+  };
+}
diff --git a/pkgs/by-name/br/brickstore/package.nix b/pkgs/by-name/br/brickstore/package.nix
new file mode 100644
index 0000000000000..0f53cf2c790ea
--- /dev/null
+++ b/pkgs/by-name/br/brickstore/package.nix
@@ -0,0 +1,92 @@
+{
+  lib,
+  stdenv,
+  qt6,
+  libsForQt5,
+  fetchFromGitHub,
+  gst_all_1,
+  cmake,
+  libglvnd,
+  tbb,
+  ninja,
+  pkg-config,
+}:
+let
+  inherit (libsForQt5) qcoro;
+in
+stdenv.mkDerivation (finalAttrs: {
+  pname = "brickstore";
+  version = "2024.5.2";
+
+  src = fetchFromGitHub {
+    owner = "rgriebl";
+    repo = "brickstore";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-Bu9oNbZm3lx/CfYAReHyWe/kW+kaefDWeBtWLHOCORU=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    cmake
+    libglvnd
+    ninja
+    pkg-config
+    qcoro
+    qt6.qtdoc
+    qt6.qtdeclarative
+    qt6.qtimageformats
+    qt6.qtmultimedia
+    qt6.qtquick3d
+    qt6.qtquicktimeline
+    qt6.qtshadertools
+    qt6.qttools
+    qt6.qtwayland
+    qt6.wrapQtAppsHook
+    tbb
+  ];
+
+  preConfigure = ''
+    sed -i '/^)$/d' cmake/BuildQCoro.cmake
+
+    substituteInPlace cmake/BuildQCoro.cmake \
+      --replace-fail 'FetchContent_Declare(' ' ' \
+      --replace-fail '    qcoro' ' ' \
+      --replace-fail '    GIT_REPOSITORY https://github.com/danvratil/qcoro.git' ' ' \
+      --replace-fail '    GIT_TAG        v''${QCORO_VERSION}' ' ' \
+      --replace-fail 'FetchContent_GetProperties(qcoro)' ' ' \
+      --replace-fail 'FetchContent_Populate(qcoro)' ' ' \
+      --replace-fail \
+        'add_subdirectory(''${qcoro_SOURCE_DIR} ''${qcoro_BINARY_DIR} EXCLUDE_FROM_ALL)' \
+        'add_subdirectory(${qcoro.src} ${qcoro}bin/qcoro)'
+  '';
+
+  qtWrapperArgs = [
+    ''
+      --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : ${
+        lib.makeLibraryPath [
+          gst_all_1.gstreamer
+          gst_all_1.gst-plugins-base
+          gst_all_1.gst-plugins-good
+          gst_all_1.gst-plugins-bad
+          gst_all_1.gst-plugins-ugly
+          gst_all_1.gst-libav
+        ]
+      }
+    ''
+  ];
+
+  meta = {
+    changelog = "https://github.com/rgriebl/brickstore/blob/main/CHANGELOG.md";
+    description = "BrickLink offline management tool";
+    homepage = "https://www.brickstore.dev/";
+    license = lib.licenses.gpl3Plus;
+    longDescription = ''
+      BrickStore is a BrickLink offline management tool.
+      It is multi-platform (Windows, macOS and Linux as well as iOS and Android),
+      multilingual (currently English, German, Spanish, Swedish and French), fast and stable.
+    '';
+    maintainers = with lib.maintainers; [ legojames ];
+    mainProgram = "brickstore";
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/br/brill/package.nix b/pkgs/by-name/br/brill/package.nix
index d933979d1205a..f5ed5d0882dc2 100644
--- a/pkgs/by-name/br/brill/package.nix
+++ b/pkgs/by-name/br/brill/package.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "The in-house serif typeface for the publishing house Brill, designed by John Hudson; free for non-commercial use";
+    description = "In-house serif typeface for the publishing house Brill, designed by John Hudson; free for non-commercial use";
     longDescription = ''
       Brill has “a neo-classical design geared towards optimum legibility”.
 
diff --git a/pkgs/by-name/br/broom/package.nix b/pkgs/by-name/br/broom/package.nix
index 69aa9ae684225..fa3e7af0927d1 100644
--- a/pkgs/by-name/br/broom/package.nix
+++ b/pkgs/by-name/br/broom/package.nix
@@ -19,7 +19,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "An interactive CLI tool for managing local git branches";
+    description = "Interactive CLI tool for managing local git branches";
     homepage = "https://github.com/a-camarillo/broom";
     license = licenses.mit;
     maintainers = with maintainers; [ a-camarillo ];
diff --git a/pkgs/by-name/br/bruno/package.nix b/pkgs/by-name/br/bruno/package.nix
index 3e9cf6b51fdcf..83fab6d81e8f2 100644
--- a/pkgs/by-name/br/bruno/package.nix
+++ b/pkgs/by-name/br/bruno/package.nix
@@ -8,6 +8,7 @@
 , writeShellScriptBin
 , makeWrapper
 , copyDesktopItems
+, giflib
 , makeDesktopItem
 , pkg-config
 , pixman
@@ -27,20 +28,20 @@ let
 in
 buildNpmPackage' rec {
   pname = "bruno";
-  version = "1.17.0";
+  version = "1.19.0";
 
   src = fetchFromGitHub {
     owner = "usebruno";
     repo = "bruno";
     rev = "v${version}";
-    hash = "sha256-z4KL6CX1jtuC4lxqYA6Mg1zPSc9/OpRb530jPIQK3Is=";
+    hash = "sha256-XprUu4Dp7ER8YC1uO4kkzTZLsJtoOFH15elnkxUn7/c=";
 
     postFetch = ''
       ${lib.getExe npm-lockfile-fix} $out/package-lock.json
     '';
   };
 
-  npmDepsHash = "sha256-NIf7aMDAeE39+putw/7GTYODIdVmjJIvIwnL5O+sBmI=";
+  npmDepsHash = "sha256-BVCyZKhSBNJDmhnO68ULj5aMINFQIIlwlGqwjGkOoEI=";
   npmFlags = [ "--legacy-peer-deps" ];
 
   nativeBuildInputs = [
@@ -57,6 +58,7 @@ buildNpmPackage' rec {
     pango
   ] ++ lib.optionals stdenv.isDarwin [
     darwin.apple_sdk_11_0.frameworks.CoreText
+    giflib
   ];
 
   desktopItems = [
@@ -147,7 +149,7 @@ buildNpmPackage' rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "Open-source IDE For exploring and testing APIs.";
+    description = "Open-source IDE For exploring and testing APIs";
     homepage = "https://www.usebruno.com";
     inherit (electron.meta) platforms;
     license = licenses.mit;
diff --git a/pkgs/games/btanks/default.nix b/pkgs/by-name/bt/btanks/package.nix
index f1f2e84a614dd..c055e64e664d3 100644
--- a/pkgs/games/btanks/default.nix
+++ b/pkgs/by-name/bt/btanks/package.nix
@@ -1,23 +1,30 @@
-{ lib, stdenv, fetchurl, fetchpatch, scons, pkg-config, SDL, libGL, zlib, smpeg
-, SDL_image, libvorbis, expat, zip, lua }:
+{
+  lib,
+  SDL,
+  SDL_image,
+  expat,
+  fetchpatch,
+  fetchurl,
+  libGL,
+  libvorbis,
+  lua,
+  pkg-config,
+  scons,
+  smpeg,
+  stdenv,
+  zip,
+  zlib,
+}:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "btanks";
   version = "0.9.8083";
 
   src = fetchurl {
-    url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
+    url = "mirror://sourceforge/btanks/btanks-${finalAttrs.version}.tar.bz2";
     hash = "sha256-P9LOaitF96YMOxFPqa/xPLPdn7tqZc3JeYt2xPosQ0E=";
   };
 
-  nativeBuildInputs = [ scons pkg-config ];
-
-  buildInputs = [ SDL libGL zlib smpeg SDL_image libvorbis expat zip lua ];
-
-  enableParallelBuilding = true;
-
-  env.NIX_CFLAGS_COMPILE = "-I${SDL_image}/include/SDL";
-
   patches = [
     (fetchpatch {
       name = "lua52.patch";
@@ -42,10 +49,37 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  meta = with lib; {
-    description = "Fast 2d tank arcade game";
+  nativeBuildInputs = [
+    SDL
+    pkg-config
+    scons
+    smpeg
+    zip
+  ];
+
+  buildInputs = [
+    SDL
+    SDL_image
+    expat
+    libGL
+    libvorbis
+    lua
+    smpeg
+    zlib
+  ];
+
+  env.NIX_CFLAGS_COMPILE = "-I${lib.getDev SDL_image}/include/SDL";
+
+  enableParallelBuilding = true;
+
+  strictDeps = true;
+
+  meta = {
     homepage = "https://sourceforge.net/projects/btanks/";
-    license = licenses.gpl2Plus;
-    platforms = platforms.linux;
+    description = "Fast 2d tank arcade game with multiplayer and split-screen modes";
+    license = lib.licenses.gpl2Plus;
+    mainProgram = "btanks";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    inherit (SDL.meta) platforms;
   };
-}
+})
diff --git a/pkgs/by-name/bt/btrfs-assistant/package.nix b/pkgs/by-name/bt/btrfs-assistant/package.nix
index d3bdc74980228..fce0bd8fc6eb7 100644
--- a/pkgs/by-name/bt/btrfs-assistant/package.nix
+++ b/pkgs/by-name/bt/btrfs-assistant/package.nix
@@ -1,86 +1,81 @@
-{ lib
-, stdenv
-, fetchFromGitLab
-, bash
-, btrfs-progs
-, cmake
-, coreutils
-, git
-, pkg-config
-, qt6
-, snapper
-, util-linux
-, enableSnapper ? true
-, nix-update-script
+{
+  lib,
+  stdenv,
+  fetchFromGitLab,
+  bash,
+  btrfs-progs,
+  cmake,
+  coreutils,
+  git,
+  pkg-config,
+  qt6,
+  snapper,
+  util-linux,
+  enableSnapper ? true,
+  nix-update-script,
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "btrfs-assistant";
-  version = "2.0";
+  version = "2.1.1";
 
   src = fetchFromGitLab {
     owner = "btrfs-assistant";
     repo = "btrfs-assistant";
     rev = finalAttrs.version;
-    hash = "sha256-nE8Vsc0leXWhbrjMgJDef6jl9MqdojRniGcvUmrQNUQ=";
+    hash = "sha256-I4nbQmHwk84qN1SngKzKnPtQN5Dz1QSSEpHJxV8wkJw=";
   };
 
   nativeBuildInputs = [
     cmake
     git
     pkg-config
+    qt6.wrapQtAppsHook
   ];
 
   buildInputs = [
     btrfs-progs
+    coreutils
     qt6.qtbase
     qt6.qtsvg
     qt6.qttools
     qt6.qtwayland
-  ];
-
-  propagatedBuildInputs = [ qt6.wrapQtAppsHook ];
+    util-linux
+  ] ++ lib.optionals enableSnapper [ snapper ];
 
-  prePatch = ''
-    substituteInPlace src/util/System.cpp \
-      --replace '/bin/bash' "${lib.getExe bash}"
-  ''
-  + lib.optionalString enableSnapper ''
-    substituteInPlace src/main.cpp \
-      --replace '/usr/bin/snapper' "${lib.getExe snapper}"
-  '';
+  prePatch =
+    ''
+      substituteInPlace src/util/System.cpp \
+        --replace-fail '/bin/bash' "${lib.getExe bash}"
 
-  postPatch = ''
-    substituteInPlace src/org.btrfs-assistant.pkexec.policy \
-      --replace '/usr/bin' "$out/bin"
+      substituteInPlace src/main.cpp \
+        --replace-fail 'if (!qEnvironmentVariableIsEmpty("DISPLAY"))' ' if(!qEnvironmentVariableIsEmpty("DISPLAY") || !qEnvironmentVariableIsEmpty("WAYLAND_DISPLAY"))'
+    ''
+    + lib.optionalString enableSnapper ''
+      substituteInPlace src/main.cpp \
+        --replace-fail '/usr/bin/snapper' "${lib.getExe snapper}"
+    '';
 
-    substituteInPlace src/btrfs-assistant \
-      --replace 'btrfs-assistant-bin' "$out/bin/btrfs-assistant-bin"
+  postPatch =
+    ''
+      substituteInPlace src/org.btrfs-assistant.pkexec.policy \
+        --replace-fail '/usr/bin' "$out/bin"
 
-    substituteInPlace src/btrfs-assistant-launcher \
-      --replace 'btrfs-assistant' "$out/bin/btrfs-assistant"
-  ''
-  + lib.optionalString enableSnapper ''
-    substituteInPlace src/btrfs-assistant.conf \
-      --replace '/usr/bin/snapper' "${lib.getExe snapper}"
-  '';
+      substituteInPlace src/btrfs-assistant \
+        --replace-fail 'btrfs-assistant-bin' "$out/bin/btrfs-assistant-bin"
 
-  qtWrapperArgs =
-    let
-      runtimeDeps = lib.makeBinPath ([
-        coreutils
-        util-linux
-      ]
-      ++ lib.optionals enableSnapper [ snapper ]);
-    in
-    [
-      "--prefix PATH : ${runtimeDeps}"
-    ];
+      substituteInPlace src/btrfs-assistant-launcher \
+        --replace-fail 'btrfs-assistant' "$out/bin/btrfs-assistant"
+    ''
+    + lib.optionalString enableSnapper ''
+      substituteInPlace src/btrfs-assistant.conf \
+        --replace-fail '/usr/bin/snapper' "${lib.getExe snapper}"
+    '';
 
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "A GUI management tool to make managing a Btrfs filesystem easier";
+    description = "GUI management tool to make managing a Btrfs filesystem easier";
     homepage = "https://gitlab.com/btrfs-assistant/btrfs-assistant";
     license = lib.licenses.gpl3Only;
     mainProgram = "btrfs-assistant-bin";
diff --git a/pkgs/by-name/bu/buckle/package.nix b/pkgs/by-name/bu/buckle/package.nix
index 85c23496baf35..390c78534b115 100644
--- a/pkgs/by-name/bu/buckle/package.nix
+++ b/pkgs/by-name/bu/buckle/package.nix
@@ -30,7 +30,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A buck2 launcher";
+    description = "Buck2 launcher";
     longDescription = ''
       Buckle is a launcher for [Buck2](https://buck2.build). It manages
       Buck2 on a per-project basis. This enables a project or team to do
diff --git a/pkgs/by-name/bu/buffer/package.nix b/pkgs/by-name/bu/buffer/package.nix
new file mode 100644
index 0000000000000..54b017d1baad0
--- /dev/null
+++ b/pkgs/by-name/bu/buffer/package.nix
@@ -0,0 +1,62 @@
+{ lib
+, desktop-file-utils
+, fetchFromGitLab
+, gobject-introspection
+, gtk4
+, gtksourceview5
+, libadwaita
+, libspelling
+, meson
+, ninja
+, pkg-config
+, python3
+, stdenv
+, wrapGAppsHook4
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "buffer";
+  version = "0.9.2";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "cheywood";
+    repo = "buffer";
+    rev = finalAttrs.version;
+    hash = "sha256-EIyaFL2AEez8FIErL8+x7QNHnCYxj4mOuz7E+Svvh5I=";
+  };
+
+  nativeBuildInputs = [
+    desktop-file-utils
+    gobject-introspection
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook4
+  ];
+
+  buildInputs = [
+    gtk4
+    gtksourceview5
+    libadwaita
+    libspelling
+    (python3.withPackages (ps: with ps; [
+      pygobject3
+    ]))
+  ];
+
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --prefix PYTHONPATH : "$out/${python3.sitePackages}"
+    )
+  '';
+
+  meta = with lib; {
+    description = "Minimal editing space for all those things that don't need keeping";
+    homepage = "https://gitlab.gnome.org/cheywood/buffer";
+    license = licenses.gpl3Plus;
+    mainProgram = "buffer";
+    maintainers = with maintainers; [ michaelgrahamevans ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/bu/bufisk/package.nix b/pkgs/by-name/bu/bufisk/package.nix
index e7fefcc5fa75f..6cc70a24563ca 100644
--- a/pkgs/by-name/bu/bufisk/package.nix
+++ b/pkgs/by-name/bu/bufisk/package.nix
@@ -20,7 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/bufbuild/bufisk";
-    description = "A user-friendly launcher for Buf";
+    description = "User-friendly launcher for Buf";
     license = licenses.asl20;
     maintainers = with maintainers; [ aaronjheng ];
     mainProgram = "bufisk";
diff --git a/pkgs/by-name/bu/bulk_extractor/package.nix b/pkgs/by-name/bu/bulk_extractor/package.nix
index 563b908400c93..58bbb1edd6d17 100644
--- a/pkgs/by-name/bu/bulk_extractor/package.nix
+++ b/pkgs/by-name/bu/bulk_extractor/package.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A digital forensics tool for extracting information from file systems";
+    description = "Digital forensics tool for extracting information from file systems";
     longDescription = ''
       bulk_extractor is a C++ program that scans a disk image, a file, or a
       directory of files and extracts useful information without parsing
diff --git a/pkgs/by-name/bu/bulloak/package.nix b/pkgs/by-name/bu/bulloak/package.nix
index 726421607a9fd..9ae609149c7c8 100644
--- a/pkgs/by-name/bu/bulloak/package.nix
+++ b/pkgs/by-name/bu/bulloak/package.nix
@@ -51,7 +51,7 @@ rustPlatform.buildRustPackage rec {
   SVM_RELEASES_LIST_JSON = solc-versions.${stdenv.hostPlatform.system};
 
   meta = with lib; {
-    description = "A Solidity test generator based on the Branching Tree Technique";
+    description = "Solidity test generator based on the Branching Tree Technique";
     homepage = "https://github.com/alexfertel/bulloak";
     license = with licenses; [ mit asl20 ];
     mainProgram = "bulloak";
diff --git a/pkgs/by-name/bu/bullshit/package.nix b/pkgs/by-name/bu/bullshit/package.nix
index c32123eb14513..9345d2ae7d929 100644
--- a/pkgs/by-name/bu/bullshit/package.nix
+++ b/pkgs/by-name/bu/bullshit/package.nix
@@ -34,7 +34,7 @@ stdenvNoCC.mkDerivation {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A nonsense phrase generator";
+    description = "Nonsense phrase generator";
     mainProgram = "bullshit";
     homepage = "https://github.com/fceschmidt/bullshit-arch";
     license = licenses.gpl2Only;
diff --git a/pkgs/by-name/bu/bunbun/package.nix b/pkgs/by-name/bu/bunbun/package.nix
index 79d158fb6ae70..e9de0cc5e2953 100644
--- a/pkgs/by-name/bu/bunbun/package.nix
+++ b/pkgs/by-name/bu/bunbun/package.nix
@@ -24,13 +24,8 @@ rustPlatform.buildRustPackage rec {
     darwin.apple_sdk.frameworks.SystemConfiguration
   ];
 
-  # Cargo.lock is outdated
-  preConfigure = ''
-    cargo update --offline
-  '';
-
   meta = with lib; {
-    description = "A simple and adorable sysinfo utility written in Rust";
+    description = "Simple and adorable sysinfo utility written in Rust";
     homepage = "https://github.com/devraza/bunbun";
     changelog = "https://github.com/devraza/bunbun/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/by-name/bu/butt/package.nix b/pkgs/by-name/bu/butt/package.nix
index 08f4b2401fee7..9e0938652e01f 100644
--- a/pkgs/by-name/bu/butt/package.nix
+++ b/pkgs/by-name/bu/butt/package.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "butt";
-  version = "1.41.1";
+  version = "1.42.0";
 
   src = fetchurl {
     url = "https://danielnoethen.de/butt/release/${finalAttrs.version}/butt-${finalAttrs.version}.tar.gz";
-    hash = "sha256-y/XIcFm1TWVd5SL+kDCJc21CtMwipMQgRE4gPra5+98=";
+    hash = "sha256-/Y96Pq/3D37n/2JZdvcEQ1BBEtHlJ030QLesfNyBg2g=";
   };
 
   postPatch = ''
diff --git a/pkgs/by-name/by/bytecode-viewer/package.nix b/pkgs/by-name/by/bytecode-viewer/package.nix
index 1e2a7e568db98..1431301a84ee7 100644
--- a/pkgs/by-name/by/bytecode-viewer/package.nix
+++ b/pkgs/by-name/by/bytecode-viewer/package.nix
@@ -68,7 +68,7 @@ maven.buildMavenPackage rec {
 
   meta = with lib; {
     homepage = "https://bytecodeviewer.com";
-    description = "A lightweight user-friendly Java/Android Bytecode Viewer, Decompiler & More";
+    description = "Lightweight user-friendly Java/Android Bytecode Viewer, Decompiler & More";
     mainProgram = "bytecode-viewer";
     maintainers = with maintainers; [ shard7 d3vil0p3r ];
     platforms = platforms.unix;
diff --git a/pkgs/by-name/c-/c-graph/package.nix b/pkgs/by-name/c-/c-graph/package.nix
index 83679aacce96f..950962bc5654f 100644
--- a/pkgs/by-name/c-/c-graph/package.nix
+++ b/pkgs/by-name/c-/c-graph/package.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Tool for Learning about Convolution";
+    description = "Tool for Learning about Convolution";
     homepage = "https://www.gnu.org/software/c-graph/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ sikmir ];
diff --git a/pkgs/by-name/c-/c-periphery/package.nix b/pkgs/by-name/c-/c-periphery/package.nix
index 7e033a1a33272..86661fe819311 100644
--- a/pkgs/by-name/c-/c-periphery/package.nix
+++ b/pkgs/by-name/c-/c-periphery/package.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation (finalAttrs: {
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
-    description = "A C library for peripheral I/O (GPIO, LED, PWM, SPI, I2C, MMIO, Serial) in Linux";
+    description = "C library for peripheral I/O (GPIO, LED, PWM, SPI, I2C, MMIO, Serial) in Linux";
     homepage = "https://github.com/vsergeev/c-periphery";
     license = licenses.mit;
     maintainers = with maintainers; [ sikmir ];
diff --git a/pkgs/by-name/c2/c2patool/package.nix b/pkgs/by-name/c2/c2patool/package.nix
index a334b857acc5b..247859ccf8e6b 100644
--- a/pkgs/by-name/c2/c2patool/package.nix
+++ b/pkgs/by-name/c2/c2patool/package.nix
@@ -10,16 +10,16 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "c2patool";
-  version = "0.9.0";
+  version = "0.9.3";
 
   src = fetchFromGitHub {
     owner = "contentauth";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-yR6VepMZquURDb2SDwx+xE55jo3MTzh6ntSrQln1Xxs=";
+    sha256 = "sha256-SVHz6Zwl4WOgwCYXtGfNJBmlnJUAWfe+NAkgnG/QC8A=";
   };
 
-  cargoHash = "sha256-Z4Q/33CwbJXlMZBq4WRT2k78PvaHpNm4pQkiAehCImI=";
+  cargoHash = "sha256-+flZXxdN5mcmxMZeIV4J4wc+mYuGf5LuGAw4Kz/faak=";
 
   # use the non-vendored openssl
   OPENSSL_NO_VENDOR = 1;
diff --git a/pkgs/by-name/ca/caddy/package.nix b/pkgs/by-name/ca/caddy/package.nix
index 73ab67366483b..d6832d396c773 100644
--- a/pkgs/by-name/ca/caddy/package.nix
+++ b/pkgs/by-name/ca/caddy/package.nix
@@ -8,12 +8,12 @@
 , stdenv
 }:
 let
-  version = "2.7.6";
+  version = "2.8.4";
   dist = fetchFromGitHub {
     owner = "caddyserver";
     repo = "dist";
     rev = "v${version}";
-    hash = "sha256-aZ7hdAZJH1PvrX9GQLzLquzzZG3LZSKOvt7sWQhTiR8=";
+    hash = "sha256-O4s7PhSUTXoNEIi+zYASx8AgClMC5rs7se863G6w+l0=";
   };
 in
 buildGoModule {
@@ -24,10 +24,10 @@ buildGoModule {
     owner = "caddyserver";
     repo = "caddy";
     rev = "v${version}";
-    hash = "sha256-th0R3Q1nGT0q5PGOygtD1/CpJmrT5TYagrwQR4t/Fvg=";
+    hash = "sha256-CBfyqtWp3gYsYwaIxbfXO3AYaBiM7LutLC7uZgYXfkQ=";
   };
 
-  vendorHash = "sha256-ebnSehuhbCY58ctM8IRVMfNxxbJBp6ht9cbuLdGFNek=";
+  vendorHash = "sha256-1Api8bBZJ1/oYk4ZGIiwWCSraLzK9L+hsKXkFtk6iVM=";
 
   subPackages = [ "cmd/caddy" ];
 
@@ -36,6 +36,9 @@ buildGoModule {
     "-X github.com/caddyserver/caddy/v2.CustomVersion=${version}"
   ];
 
+  # matches upstream since v2.8.0
+  tags = [ "nobadger" ];
+
   nativeBuildInputs = [ installShellFiles ];
 
   postInstall = ''
diff --git a/pkgs/by-name/ca/caido/package.nix b/pkgs/by-name/ca/caido/package.nix
index 44c4571b5606b..a9cfb7d460d8d 100644
--- a/pkgs/by-name/ca/caido/package.nix
+++ b/pkgs/by-name/ca/caido/package.nix
@@ -28,7 +28,7 @@ in appimageTools.wrapType2 {
   '';
 
   meta = with lib; {
-    description = "A lightweight web security auditing toolkit";
+    description = "Lightweight web security auditing toolkit";
     homepage = "https://caido.io/";
     changelog = "https://github.com/caido/caido/releases/tag/v${version}";
     license = licenses.unfree;
diff --git a/pkgs/by-name/ca/caligula/package.nix b/pkgs/by-name/ca/caligula/package.nix
index 0109720abe982..fde66f9607f5e 100644
--- a/pkgs/by-name/ca/caligula/package.nix
+++ b/pkgs/by-name/ca/caligula/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "caligula";
-  version = "0.4.6";
+  version = "0.4.7";
 
   src = fetchFromGitHub {
     owner = "ifd3f";
     repo = "caligula";
     rev = "v${version}";
-    hash = "sha256-nLt+PDPdW7oEMoWqW0iO4nXGlwk7UymWShn0azQt2ro=";
+    hash = "sha256-fi4W7Z32S30kzKNVEDbV8PRyTW9fZxumBGtLn8SkI5Y=";
   };
 
-  cargoHash = "sha256-8K3twPL7lNUmUUjD+nKATGgcjgoCuFO+bvlujVySXj0=";
+  cargoHash = "sha256-ma7JVbWSiKfkCXCDwA8DFm2+KPrWR+8nSdgGSqehNg8=";
 
   buildInputs = lib.optionals stdenv.isDarwin (
     with darwin.apple_sdk.frameworks; [
@@ -30,7 +30,7 @@ rustPlatform.buildRustPackage rec {
   RUSTFLAGS = "--cfg tracing_unstable";
 
   meta = with lib; {
-    description = "A user-friendly, lightweight TUI for disk imaging";
+    description = "User-friendly, lightweight TUI for disk imaging";
     homepage = "https://github.com/ifd3f/caligula/";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ifd3f sodiboo ];
diff --git a/pkgs/by-name/ca/candy-icons/package.nix b/pkgs/by-name/ca/candy-icons/package.nix
index 46f3033d80b39..fb926197fa99b 100644
--- a/pkgs/by-name/ca/candy-icons/package.nix
+++ b/pkgs/by-name/ca/candy-icons/package.nix
@@ -33,7 +33,7 @@ stdenvNoCC.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/EliverLara/candy-icons";
-    description = "An icon theme colored with sweet gradients";
+    description = "Icon theme colored with sweet gradients";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ clr-cera ];
diff --git a/pkgs/by-name/ca/cano/package.nix b/pkgs/by-name/ca/cano/package.nix
index 31de871c491d0..2c4d148c70e27 100644
--- a/pkgs/by-name/ca/cano/package.nix
+++ b/pkgs/by-name/ca/cano/package.nix
@@ -5,14 +5,14 @@
 , ncurses
 }:
 stdenv.mkDerivation (finalAttrs: {
-  name = "cano";
-  version = "0-unstable-2024-31-3";
+  pname = "cano";
+  version = "0.1.0-alpha";
 
   src = fetchFromGitHub {
     owner = "CobbCoding1";
     repo = "Cano";
-    rev = "6b3488545b4180f20a7fa892fb0ee719e9298ddc";
-    hash = "sha256-qFo0szZVGLUf7c7KdEIofcieWZqtM6kQE6D8afrZ+RU=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-BKbBDN7xZwlNzw7UFgX+PD9UXbr9FtELo+PlbfSHyRY=";
   };
 
   buildInputs = [ gnumake ncurses ];
diff --git a/pkgs/by-name/ca/cardboard/package.nix b/pkgs/by-name/ca/cardboard/package.nix
index f3fca1632ce4a..42f3ade1655fe 100644
--- a/pkgs/by-name/ca/cardboard/package.nix
+++ b/pkgs/by-name/ca/cardboard/package.nix
@@ -129,7 +129,7 @@ stdenv.mkDerivation {
   meta = {
     broken = true; # Upstream is archived, fails to build on gcc-13.
     homepage = "https://gitlab.com/cardboardwm/cardboard";
-    description = "A scrollable, tiling Wayland compositor inspired on PaperWM";
+    description = "Scrollable, tiling Wayland compositor inspired on PaperWM";
     license = lib.licenses.gpl3Only;
     mainProgram = "cardboard";
     maintainers = with lib.maintainers; [ AndersonTorres ];
diff --git a/pkgs/by-name/ca/cargo-bloat/package.nix b/pkgs/by-name/ca/cargo-bloat/package.nix
index 4c77fbbb384ce..093f6db75f961 100644
--- a/pkgs/by-name/ca/cargo-bloat/package.nix
+++ b/pkgs/by-name/ca/cargo-bloat/package.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-BBFLyMx1OPT2XAM6pofs2kV/3n3FrNu0Jkyr/Y3smnI=";
 
   meta = with lib; {
-    description = "A tool and Cargo subcommand that helps you find out what takes most of the space in your executable";
+    description = "Tool and Cargo subcommand that helps you find out what takes most of the space in your executable";
     homepage = "https://github.com/RazrFalcon/cargo-bloat";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/by-name/ca/cargo-bump/package.nix b/pkgs/by-name/ca/cargo-bump/package.nix
index f5ff8e08f5747..0de63ed2036b8 100644
--- a/pkgs/by-name/ca/cargo-bump/package.nix
+++ b/pkgs/by-name/ca/cargo-bump/package.nix
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "Increments the version number of the current project.";
+    description = "Increments the version number of the current project";
     mainProgram = "cargo-bump";
     homepage = "https://github.com/wraithan/cargo-bump";
     license = with licenses; [ isc ];
diff --git a/pkgs/by-name/ca/cargo-features-manager/package.nix b/pkgs/by-name/ca/cargo-features-manager/package.nix
index 3d8947ce3031c..6fd31c30b06d4 100644
--- a/pkgs/by-name/ca/cargo-features-manager/package.nix
+++ b/pkgs/by-name/ca/cargo-features-manager/package.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-G1MBH4c9b/h87QgCleTMnndjWc70KZI+6W4KWaxk28o=";
 
   meta = {
-    description = "A command-line tool for managing Architectural Decision Records";
+    description = "Command-line tool for managing Architectural Decision Records";
     homepage = "https://github.com/ToBinio/cargo-features-manager";
     changelog = "https://github.com/ToBinio/cargo-features-manager/blob/v${version}/CHANGELOG.md";
     license = lib.licenses.mit;
diff --git a/pkgs/by-name/ca/cargo-i18n/package.nix b/pkgs/by-name/ca/cargo-i18n/package.nix
index 158d22f97b03a..43b353ed4d495 100644
--- a/pkgs/by-name/ca/cargo-i18n/package.nix
+++ b/pkgs/by-name/ca/cargo-i18n/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-i18n";
-  version = "0.2.12";
+  version = "0.2.13";
 
   src = fetchFromGitHub {
     owner = "kellpossible";
     repo = "cargo-i18n";
     rev = "v${version}";
-    hash = "sha256-ck0GYy9DLngOunpItGQ4+qrlzaWDk0zTnIzuRQt2/Gw=";
+    hash = "sha256-azwQlXsoCgNB/TjSBBE+taUR1POBJXaPnS5Sr+HVR90=";
   };
 
-  cargoHash = "sha256-nvZx2wJDs7PZQLCl8Hrf2blR+lNUBVr6k664VSVQ5iI=";
+  cargoHash = "sha256-vN62QmCuhu7AjL6xSpBU6/ul4WgNLZbjWDCFyHj6rIM=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Foundation
diff --git a/pkgs/by-name/ca/cargo-information/package.nix b/pkgs/by-name/ca/cargo-information/package.nix
index e1ad75f3f2e30..028d6f1a83852 100644
--- a/pkgs/by-name/ca/cargo-information/package.nix
+++ b/pkgs/by-name/ca/cargo-information/package.nix
@@ -53,7 +53,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A cargo subcommand to show information about crates";
+    description = "Cargo subcommand to show information about crates";
     mainProgram = "cargo-info";
     homepage = "https://github.com/hi-rustin/cargo-information";
     changelog = "https://github.com/hi-rustin/cargo-information/blob/v${src.rev}/CHANGELOG.md";
diff --git a/pkgs/by-name/ca/cargo-make/package.nix b/pkgs/by-name/ca/cargo-make/package.nix
index 7e92ceaa43869..882d33b63f39f 100644
--- a/pkgs/by-name/ca/cargo-make/package.nix
+++ b/pkgs/by-name/ca/cargo-make/package.nix
@@ -37,7 +37,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Rust task runner and build tool";
+    description = "Rust task runner and build tool";
     homepage = "https://github.com/sagiegurari/cargo-make";
     changelog = "https://github.com/sagiegurari/cargo-make/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/by-name/ca/cargo-rdme/package.nix b/pkgs/by-name/ca/cargo-rdme/package.nix
index 3ee82740c3c86..131a6eb70f45f 100644
--- a/pkgs/by-name/ca/cargo-rdme/package.nix
+++ b/pkgs/by-name/ca/cargo-rdme/package.nix
@@ -2,18 +2,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-rdme";
-  version = "1.4.3";
+  version = "1.4.4";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-WlZGhVWm6RYgODQZV4Sj3Q31FsPNd5SdYtp7kfUMxpI=";
+    hash = "sha256-AARkXr6qOq9u/nmcmCnA4P+Q+MPPChCXoRaYiLwCNPs=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [
     Security
   ];
 
-  cargoHash = "sha256-AVwKktP96QYAOjo5gFeXpY0wOQObwarn82oaT6AVuBk=";
+  cargoHash = "sha256-myTh+zOtAt9h/irld7OHSXKMv0V+LAR4h/afYKvXeXg=";
 
   meta = with lib; {
     description = "Cargo command to create the README.md from your crate's documentation";
diff --git a/pkgs/by-name/ca/cargo-shear/package.nix b/pkgs/by-name/ca/cargo-shear/package.nix
index d99e1b1f06fdd..075a76db846a7 100644
--- a/pkgs/by-name/ca/cargo-shear/package.nix
+++ b/pkgs/by-name/ca/cargo-shear/package.nix
@@ -6,7 +6,7 @@
   cargo-shear,
 }:
 let
-  version = "0.0.25";
+  version = "0.0.26";
 in
 rustPlatform.buildRustPackage {
   pname = "cargo-shear";
@@ -16,10 +16,10 @@ rustPlatform.buildRustPackage {
     owner = "Boshen";
     repo = "cargo-shear";
     rev = "v${version}";
-    hash = "sha256-4NnCUe4DrnSeveicxvvDF49hrc4NdRx/N10PH7Q0k8k=";
+    hash = "sha256-c3gicJWMiMZ0Suo30XcQoWhHRE3aXdQmSD0K5y2Quec=";
   };
 
-  cargoHash = "sha256-gHXJz3Xw9vC04q001kd6AgEKKaRtAK3oGMn7JJh+Neo=";
+  cargoHash = "sha256-Clhd8ifbT+it0EGcysJvI9O89qzee9T6EGWlcMO8osE=";
 
   # https://github.com/Boshen/cargo-shear/blob/a0535415a3ea94c86642f39f343f91af5cdc3829/src/lib.rs#L20-L23
   SHEAR_VERSION = version;
diff --git a/pkgs/by-name/ca/cargo-swift/package.nix b/pkgs/by-name/ca/cargo-swift/package.nix
index cc9cc989e0b3f..1cdfb0f46466d 100644
--- a/pkgs/by-name/ca/cargo-swift/package.nix
+++ b/pkgs/by-name/ca/cargo-swift/package.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-6F4CX9uiCfPbgFRZ0hC/s5xT42S2V5ZgGQ+O2bHb9vg=";
 
   meta = with lib; {
-    description = "A cargo plugin to easily build Swift packages from Rust code";
+    description = "Cargo plugin to easily build Swift packages from Rust code";
     mainProgram = "cargo-swift";
     homepage = "https://github.com/antoniusnaumann/cargo-swift";
     license = with licenses; [ asl20 mit ];
diff --git a/pkgs/by-name/ca/cargo-wasi/package.nix b/pkgs/by-name/ca/cargo-wasi/package.nix
index 8e688c28cad08..ec264275502c8 100644
--- a/pkgs/by-name/ca/cargo-wasi/package.nix
+++ b/pkgs/by-name/ca/cargo-wasi/package.nix
@@ -30,7 +30,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A lightweight Cargo subcommand to build code for the wasm32-wasi target";
+    description = "Lightweight Cargo subcommand to build code for the wasm32-wasi target";
     mainProgram = "cargo-wasi";
     homepage = "https://bytecodealliance.github.io/cargo-wasi";
     license = licenses.asl20;
diff --git a/pkgs/by-name/ca/cargo-xwin/package.nix b/pkgs/by-name/ca/cargo-xwin/package.nix
index 5a5cfb00fac08..d31879bad0910 100644
--- a/pkgs/by-name/ca/cargo-xwin/package.nix
+++ b/pkgs/by-name/ca/cargo-xwin/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-xwin";
-  version = "0.16.4";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "rust-cross";
     repo = "cargo-xwin";
     rev = "v${version}";
-    hash = "sha256-nJgy9KoqrCD4NGFOJMN9f1XDyIrZ0a5WHTRX6G/+tnU=";
+    hash = "sha256-3vQ7pM7Ui0H6qWFWOCW4LzDLJq8bcoFEJrpoa4Tzk9g=";
   };
 
-  cargoHash = "sha256-JCCL/QV1DjmXTY3UChZ4BfA9VSyOTQLIfh6DSF/kIuA=";
+  cargoHash = "sha256-4uWPbwntcD4YKdjTlWfMGqM+rddKzaXH1YTX9qLrWrY=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Security
diff --git a/pkgs/by-name/ca/castero/package.nix b/pkgs/by-name/ca/castero/package.nix
index 6359c5c69536c..0b9f727dda921 100644
--- a/pkgs/by-name/ca/castero/package.nix
+++ b/pkgs/by-name/ca/castero/package.nix
@@ -15,8 +15,7 @@ python3.pkgs.buildPythonApplication rec {
     hash = "sha256-6/7oCKBMEcQeJ8PaFP15Xef9sQRYCpigtzINv2M6GUY=";
   };
 
-  nativeBuildInputs = with python3.pkgs; [
-    setuptools
+  build-system = with python3.pkgs; [
     wheel
   ];
 
@@ -29,7 +28,7 @@ python3.pkgs.buildPythonApplication rec {
     lxml
     mpv
     python-vlc
-  ];
+  ] ++ requests.optional-dependencies.socks;
 
   nativeCheckInputs = with python3.pkgs; [
     pytestCheckHook
diff --git a/pkgs/by-name/ca/castxml/package.nix b/pkgs/by-name/ca/castxml/package.nix
index 2b0a255bbdc86..ba76cb9a445d9 100644
--- a/pkgs/by-name/ca/castxml/package.nix
+++ b/pkgs/by-name/ca/castxml/package.nix
@@ -7,6 +7,7 @@
   llvmPackages,
   python3,
   stdenv,
+  testers,
   zlib,
   # Boolean flags
   withHTML ? true,
@@ -30,42 +31,37 @@ stdenv.mkDerivation (finalAttrs: {
 
   nativeBuildInputs = [
     cmake
-    (lib.getDev llvm)
   ]
   ++ lib.optionals (withManual || withHTML) [
     sphinx
   ];
 
   buildInputs = [
-    libclang
     libffi
     libxml2
+    llvm
     zlib
-  ];
-
-  propagatedBuildInputs = [
+  ] ++ lib.optionals (!stdenv.isDarwin) [
     libclang
   ];
 
   cmakeFlags = [
-    (lib.cmakeOptionType "path" "CLANG_RESOURCE_DIR" "${lib.getDev libclang}")
+    (lib.cmakeOptionType "path" "CLANG_RESOURCE_DIR"
+       "${lib.getLib libclang}/lib/clang/${lib.versions.major libclang.version}")
+
     (lib.cmakeBool "SPHINX_HTML" withHTML)
     (lib.cmakeBool "SPHINX_MAN" withManual)
+  ] ++ lib.optionals stdenv.isDarwin [
+    (lib.cmakeOptionType "path" "Clang_DIR" "${lib.getDev libclang}/lib/cmake/clang")
   ];
 
-  # 97% tests passed, 97 tests failed out of 2881
-  # mostly because it checks command line and nix append -isystem and all
-  doCheck = false;
+  doCheck = true;
 
   strictDeps = true;
 
-  # -E exclude 4 tests based on names
-  # see https://github.com/CastXML/CastXML/issues/90
-  checkPhase = ''
-    runHook preCheck
-    ctest -E 'cmd.cc-(gnu|msvc)-((c-src-c)|(src-cxx))-cmd'
-    runHook postCheck
-  '';
+  passthru.tests = testers.testVersion {
+    package = finalAttrs.finalPackage;
+  };
 
   meta = {
     homepage = "https://github.com/CastXML/CastXML";
diff --git a/pkgs/by-name/ca/cat9/package.nix b/pkgs/by-name/ca/cat9/package.nix
index dac6f85656dcd..8cee41e62f7e6 100644
--- a/pkgs/by-name/ca/cat9/package.nix
+++ b/pkgs/by-name/ca/cat9/package.nix
@@ -29,7 +29,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/letoram/cat9";
-    description = "A User shell for LASH";
+    description = "User shell for LASH";
     license = with lib.licenses; [ unlicense ];
     maintainers = with lib.maintainers; [ AndersonTorres ];
     platforms = lib.platforms.all;
diff --git a/pkgs/development/tools/misc/catppuccin-catwalk/default.nix b/pkgs/by-name/ca/catppuccin-catwalk/package.nix
index 848ead3d7ed4b..981bc6da239ad 100644
--- a/pkgs/development/tools/misc/catppuccin-catwalk/default.nix
+++ b/pkgs/by-name/ca/catppuccin-catwalk/package.nix
@@ -1,27 +1,32 @@
-{ stdenv
-, lib
-, fetchFromGitHub
-, rustPlatform
-, installShellFiles
-, pkg-config
-, libwebp
+{
+  stdenv,
+  lib,
+  fetchFromGitHub,
+  rustPlatform,
+  installShellFiles,
+  pkg-config,
+  libwebp,
 }:
-
+let
+  version = "1.3.2";
+in
 rustPlatform.buildRustPackage {
   pname = "catppuccin-catwalk";
-  version = "0.1.0";
+  inherit version;
 
   src = fetchFromGitHub {
     owner = "catppuccin";
-    repo = "toolbox";
-    rev = "b38153e94622bab574224bb24a6ae953b3a849da";
-    hash = "sha256-zZRl6Xem41pBQmEoK24YR4TKiQ84nU5phBih2TF8G8g=";
+    repo = "catwalk";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-Yj9xTQJ0eu3Ymi2R9fgYwBJO0V+4bN4MOxXCJGQ8NjU=";
   };
 
-  buildAndTestSubdir = "catwalk";
-  cargoHash = "sha256-KoxivYLzJEjWbxIkizrMpmVwUF7bfVxl13H774lzQRg=";
+  cargoHash = "sha256-bx7AvzPoMJqPa+zcn139lH2zyF09EIz7FNHnh1g8wis=";
 
-  nativeBuildInputs = [ installShellFiles pkg-config ];
+  nativeBuildInputs = [
+    installShellFiles
+    pkg-config
+  ];
   buildInputs = [ libwebp ];
 
   postInstall = ''
@@ -38,11 +43,11 @@ rustPlatform.buildRustPackage {
     runHook postInstallCheck
   '';
 
-  meta = with lib; {
+  meta = {
     homepage = "https://github.com/catppuccin/toolbox/tree/main/catwalk";
-    description = "A CLI for Catppuccin that takes in four showcase images and displays them all at once";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ryanccn ];
+    description = "CLI for Catppuccin that takes in four showcase images and displays them all at once";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ ryanccn ];
     mainProgram = "catwalk";
   };
 }
diff --git a/pkgs/data/icons/catppuccin-cursors/default.nix b/pkgs/by-name/ca/catppuccin-cursors/package.nix
index eeb9dd3227f07..1a46f4370bfb7 100644
--- a/pkgs/data/icons/catppuccin-cursors/default.nix
+++ b/pkgs/by-name/ca/catppuccin-cursors/package.nix
@@ -1,36 +1,48 @@
 { lib
 , stdenvNoCC
 , fetchFromGitHub
-, unzip
+, inkscape
+, just
+, xcursorgen
+, hyprcursor
 }:
 
 let
   dimensions = {
-    palette = [ "Frappe" "Latte" "Macchiato" "Mocha" ];
+    palette = [ "frappe" "latte" "macchiato" "mocha" ];
     color = [ "Blue" "Dark" "Flamingo" "Green" "Lavender" "Light" "Maroon" "Mauve" "Peach" "Pink" "Red" "Rosewater" "Sapphire" "Sky" "Teal" "Yellow" ];
   };
-  variantName = { palette, color }: (lib.strings.toLower palette) + color;
+  variantName = { palette, color }: palette + color;
   variants = lib.mapCartesianProduct variantName dimensions;
+  version = "0.3.0";
 in
-stdenvNoCC.mkDerivation rec {
+stdenvNoCC.mkDerivation {
   pname = "catppuccin-cursors";
-  version = "0.2.0";
-  dontBuild = true;
+  inherit version;
 
   src = fetchFromGitHub {
     owner = "catppuccin";
     repo = "cursors";
     rev = "v${version}";
-    sha256 = "sha256-TgV5f8+YWR+h61m6WiBMg3aBFnhqShocZBdzZHSyU2c=";
-    sparseCheckout = [ "cursors" ];
+    hash = "sha256-LJyBnXDUGBLOD4qPI7l0YC0CcqYTtgoMJc1H2yLqk9g=";
   };
 
-  nativeBuildInputs = [ unzip ];
+  nativeBuildInputs = [ just inkscape xcursorgen hyprcursor ];
 
   outputs = variants ++ [ "out" ]; # dummy "out" output to prevent breakage
 
   outputsToInstall = [];
 
+  buildPhase = ''
+    runHook preBuild
+
+    patchShebangs .
+
+    just all_with_hyprcursor
+
+    runHook postBuild
+  '';
+
   installPhase = ''
     runHook preInstall
 
@@ -43,9 +55,9 @@ stdenvNoCC.mkDerivation rec {
 
         # Convert to kebab case with the first letter of each word capitalized
         local variant=$(sed 's/\([A-Z]\)/-\1/g' <<< "$output")
-        local variant=''${variant^}
+        local variant=''${variant,,}
 
-        unzip "cursors/Catppuccin-$variant-Cursors.zip" -d "$iconsDir"
+        mv "dist/catppuccin-$variant-cursors" "$iconsDir"
       fi
     done
 
@@ -55,11 +67,11 @@ stdenvNoCC.mkDerivation rec {
     runHook postInstall
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Catppuccin cursor theme based on Volantes";
     homepage = "https://github.com/catppuccin/cursors";
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ dixslyf ];
+    license = lib.licenses.gpl2;
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ dixslyf ];
   };
 }
diff --git a/pkgs/by-name/ca/catppuccin-fcitx5/package.nix b/pkgs/by-name/ca/catppuccin-fcitx5/package.nix
new file mode 100644
index 0000000000000..879b14960b2a5
--- /dev/null
+++ b/pkgs/by-name/ca/catppuccin-fcitx5/package.nix
@@ -0,0 +1,31 @@
+{
+  lib,
+  stdenvNoCC,
+  fetchFromGitHub,
+}:
+stdenvNoCC.mkDerivation {
+  pname = "catppuccin-fcitx5";
+  version = "0-unstable-2022-10-05";
+
+  src = fetchFromGitHub {
+    owner = "catppuccin";
+    repo = "fcitx5";
+    rev = "ce244cfdf43a648d984719fdfd1d60aab09f5c97";
+    hash = "sha256-uFaCbyrEjv4oiKUzLVFzw+UY54/h7wh2cntqeyYwGps=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/fcitx5
+    cp -r src $out/share/fcitx5/themes
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Soothing pastel theme for Fcitx5";
+    homepage = "https://github.com/catppuccin/fcitx5";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ pluiedev ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/data/themes/catppuccin-gtk/default.nix b/pkgs/by-name/ca/catppuccin-gtk/package.nix
index 49fbade1a88ad..5bc1ffbcecaba 100644
--- a/pkgs/data/themes/catppuccin-gtk/default.nix
+++ b/pkgs/by-name/ca/catppuccin-gtk/package.nix
@@ -2,9 +2,8 @@
 , stdenvNoCC
 , fetchFromGitHub
 , gtk3
+, git
 , colloid-gtk-theme
-, gnome-themes-extra
-, gtk-engine-murrine
 , python3
 , sassc
 , nix-update-script
@@ -20,6 +19,7 @@ let
   validVariants = [ "latte" "frappe" "macchiato" "mocha" ];
 
   pname = "catppuccin-gtk";
+  version = "1.0.3";
 in
 
 lib.checkListOfEnum "${pname}: theme accent" validAccents accents
@@ -27,38 +27,29 @@ lib.checkListOfEnum "${pname}: color variant" validVariants [variant]
 lib.checkListOfEnum "${pname}: size variant" validSizes [size]
 lib.checkListOfEnum "${pname}: tweaks" validTweaks tweaks
 
-stdenvNoCC.mkDerivation rec {
-  inherit pname;
-  version = "0.7.5";
+stdenvNoCC.mkDerivation {
+  inherit pname version;
 
   src = fetchFromGitHub {
     owner = "catppuccin";
     repo = "gtk";
     rev = "v${version}";
-    hash = "sha256-DIeMdkEjIcPIf/EgE83F5URHY+lR2+hxdc4wSrruFJ8=";
+    hash = "sha256-8KyZtZqVVz5UKuGdLrUsR2djD3nsJDliHMtvFtUVim8=";
   };
 
-  nativeBuildInputs = [ gtk3 sassc ];
-
-  patches = [
-    ./colloid-src-git-reset.patch
-  ];
-
-  buildInputs = [
-    gnome-themes-extra
+  nativeBuildInputs = [
+    gtk3
+    sassc
+    # git is needed here since "git apply" is being used for patches
+    # see <https://github.com/catppuccin/gtk/blob/4173b70b910bbb3a42ef0e329b3e98d53cef3350/build.py#L465>
+    git
     (python3.withPackages (ps: [ ps.catppuccin ]))
   ];
 
-  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
-
   postUnpack = ''
-    rm -rf source/colloid
-    cp -r ${colloid-gtk-theme.src} source/colloid
-    chmod -R +w source/colloid
-  '';
-
-  postPatch = ''
-    patchShebangs --build colloid/install.sh colloid/build.sh
+    rm -rf source/sources/colloid
+    cp -r ${colloid-gtk-theme.src} source/sources/colloid
+    chmod -R +w source/sources/colloid
   '';
 
   dontConfigure = true;
@@ -67,14 +58,12 @@ stdenvNoCC.mkDerivation rec {
   installPhase = ''
     runHook preInstall
 
-    cp -r colloid colloid-base
     mkdir -p $out/share/themes
-    export HOME=$(mktemp -d)
 
-    python3 install.py ${variant} \
-      ${lib.optionalString (accents != []) "--accent " + builtins.toString accents} \
-      ${lib.optionalString (size != []) "--size " + size} \
-      ${lib.optionalString (tweaks != []) "--tweaks " + builtins.toString tweaks} \
+    python3 build.py ${variant} \
+      --accent ${builtins.toString accents} \
+      ${lib.optionalString (size != [ ]) "--size " + size} \
+      ${lib.optionalString (tweaks != [ ]) "--tweaks " + builtins.toString tweaks} \
       --dest $out/share/themes
 
     runHook postInstall
@@ -82,11 +71,11 @@ stdenvNoCC.mkDerivation rec {
 
   passthru.updateScript = nix-update-script { };
 
-  meta = with lib; {
+  meta = {
     description = "Soothing pastel theme for GTK";
     homepage = "https://github.com/catppuccin/gtk";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ fufexan dixslyf ];
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.all;
+    maintainers = with lib.maintainers; [ fufexan dixslyf isabelroses ];
   };
 }
diff --git a/pkgs/by-name/ca/catppuccin-plymouth/package.nix b/pkgs/by-name/ca/catppuccin-plymouth/package.nix
new file mode 100644
index 0000000000000..dcd4602705df6
--- /dev/null
+++ b/pkgs/by-name/ca/catppuccin-plymouth/package.nix
@@ -0,0 +1,56 @@
+{
+  stdenvNoCC,
+  lib,
+  fetchFromGitHub,
+  unstableGitUpdater,
+  variant ? "macchiato",
+}:
+
+let
+  pname = "catppuccin-plymouth";
+  validVariants = [
+    "latte"
+    "frappe"
+    "macchiato"
+    "mocha"
+  ];
+in
+lib.checkListOfEnum "${pname}: color variant" validVariants [ variant ]
+
+  stdenvNoCC.mkDerivation
+  (finalAttrs: {
+    inherit pname;
+    version = "0-unstable-2024-05-28";
+
+    src = fetchFromGitHub {
+      owner = "catppuccin";
+      repo = "plymouth";
+      rev = "e13c348a0f47772303b2da1e9396027d8cda160d";
+      hash = "sha256-6DliqhRncvdPuKzL9LJec3PJWmK/jo9BrrML7g6YcH0=";
+    };
+
+    sourceRoot = "${finalAttrs.src.name}/themes/catppuccin-${variant}";
+
+    installPhase = ''
+      runHook preInstall
+
+      sed -i 's:\(^ImageDir=\)/usr:\1'"$out"':' catppuccin-${variant}.plymouth
+      mkdir -p $out/share/plymouth/themes/catppuccin-${variant}
+      cp * $out/share/plymouth/themes/catppuccin-${variant}
+
+      runHook postInstall
+    '';
+
+    passthru.updateScript = unstableGitUpdater { };
+
+    meta = {
+      description = "Soothing pastel theme for Plymouth";
+      homepage = "https://github.com/catppuccin/plymouth";
+      license = lib.licenses.mit;
+      platforms = lib.platforms.linux;
+      maintainers = with lib.maintainers; [
+        johnrtitor
+        spectre256
+      ];
+    };
+  })
diff --git a/pkgs/by-name/ca/catppuccin-sddm-corners/package.nix b/pkgs/by-name/ca/catppuccin-sddm-corners/package.nix
index 6e4673cdc9d80..e43792fc4a9fe 100644
--- a/pkgs/by-name/ca/catppuccin-sddm-corners/package.nix
+++ b/pkgs/by-name/ca/catppuccin-sddm-corners/package.nix
@@ -45,7 +45,7 @@ stdenvNoCC.mkDerivation {
   passthru.updateScript = unstableGitUpdater { };
 
   meta = {
-    description = "Soothing pastel theme for SDDM based on corners theme.";
+    description = "Soothing pastel theme for SDDM based on corners theme";
     homepage = "https://github.com/khaneliman/sddm-catppuccin-corners";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ khaneliman ];
diff --git a/pkgs/by-name/ca/catppuccin-whiskers/package.nix b/pkgs/by-name/ca/catppuccin-whiskers/package.nix
new file mode 100644
index 0000000000000..6ab0b4aaff79c
--- /dev/null
+++ b/pkgs/by-name/ca/catppuccin-whiskers/package.nix
@@ -0,0 +1,23 @@
+{ lib, fetchFromGitHub, rustPlatform }:
+let version = "2.4.0";
+in rustPlatform.buildRustPackage {
+  pname = "catppuccin-whiskers";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "catppuccin";
+    repo = "whiskers";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-rbPr5eSs99nS70J785SWO7tVBdiX/S7XUNHuo3aOQU4=";
+  };
+
+  cargoHash = "sha256-T7dreELSHfJizfbJEvvgkOmkMwlOETZVUdLwRFJOJEo=";
+
+  meta = {
+    homepage = "https://github.com/catppuccin/whiskers";
+    description = "A templating tool to simplify the creation of Catppuccin ports";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ Name ];
+    mainProgram = "whiskers";
+  };
+}
diff --git a/pkgs/by-name/ca/cavalier/package.nix b/pkgs/by-name/ca/cavalier/package.nix
index e563b14379dd2..0ea3693b72fb8 100644
--- a/pkgs/by-name/ca/cavalier/package.nix
+++ b/pkgs/by-name/ca/cavalier/package.nix
@@ -11,6 +11,7 @@
 , appstream-glib
 , desktop-file-utils
 , cava
+, libGL
 }:
 
 buildDotnetModule rec {
@@ -49,6 +50,7 @@ buildDotnetModule rec {
     glib
     gtk4
     libadwaita
+    libGL
   ];
 
   postInstall = ''
diff --git a/pkgs/by-name/cc/ccache/package.nix b/pkgs/by-name/cc/ccache/package.nix
index 393857f1fe4d6..f4e2bceeaefe8 100644
--- a/pkgs/by-name/cc/ccache/package.nix
+++ b/pkgs/by-name/cc/ccache/package.nix
@@ -1,30 +1,51 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, substituteAll
-, binutils
-, asciidoctor
-, cmake
-, perl
-, zstd
-, bashInteractive
-, xcodebuild
-, makeWrapper
-, nix-update-script
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  substituteAll,
+  binutils,
+  asciidoctor,
+  cmake,
+  perl,
+  fmt,
+  hiredis,
+  xxHash,
+  zstd,
+  bashInteractive,
+  doctest,
+  xcodebuild,
+  makeWrapper,
+  nix-update-script,
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "ccache";
-  version = "4.9.1";
+  version = "4.10";
 
   src = fetchFromGitHub {
     owner = "ccache";
     repo = "ccache";
     rev = "refs/tags/v${finalAttrs.version}";
-    sha256 = "sha256-n0MTq8x6KNkgwhJQG7F+e3iCOS644nLkMsiRztJe8QU=";
+    # `git archive` replaces `$Format:%H %D$` in cmake/CcacheVersion.cmake
+    # we need to replace it with something reproducible
+    # see https://github.com/NixOS/nixpkgs/pull/316524
+    postFetch = ''
+      sed -i -E \
+        's/version_info "([0-9a-f]{40}) .*(tag: v[^,]+).*"/version_info "\1 \2"/g w match' \
+        $out/cmake/CcacheVersion.cmake
+      if [ -s match ]; then
+        rm match
+      else # pattern didn't match
+        exit 1
+      fi
+    '';
+    hash = "sha256-YHSr2pnk17QEdrIHInXX2eBFN9OGjdleaB41VLaqlnA=";
   };
 
-  outputs = [ "out" "man" ];
+  outputs = [
+    "out"
+    "man"
+  ];
 
   patches = [
     # When building for Darwin, test/run uses dwarfdump, whereas on
@@ -39,32 +60,47 @@ stdenv.mkDerivation (finalAttrs: {
     })
   ];
 
-  nativeBuildInputs = [ asciidoctor cmake perl ];
-  buildInputs = [ zstd ];
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    asciidoctor
+    cmake
+    perl
+  ];
 
-  cmakeFlags = [
-    # Build system does not autodetect redis library presence.
-    # Requires explicit flag.
-    "-DREDIS_STORAGE_BACKEND=OFF"
+  buildInputs = [
+    fmt
+    hiredis
+    xxHash
+    zstd
   ];
 
+  cmakeFlags = lib.optional (!finalAttrs.finalPackage.doCheck) "-DENABLE_TESTING=OFF";
+
   doCheck = true;
+
   nativeCheckInputs = [
     # test/run requires the compgen function which is available in
     # bashInteractive, but not bash.
     bashInteractive
   ] ++ lib.optional stdenv.isDarwin xcodebuild;
 
+  checkInputs = [
+    doctest
+  ];
+
   checkPhase =
     let
-      badTests = [
-        "test.trim_dir" # flaky on hydra (possibly filesystem-specific?)
-      ] ++ lib.optionals stdenv.isDarwin [
-        "test.basedir"
-        "test.fileclone" # flaky on hydra (possibly filesystem-specific?)
-        "test.multi_arch"
-        "test.nocpp2"
-      ];
+      badTests =
+        [
+          "test.trim_dir" # flaky on hydra (possibly filesystem-specific?)
+        ]
+        ++ lib.optionals stdenv.isDarwin [
+          "test.basedir"
+          "test.fileclone" # flaky on hydra (possibly filesystem-specific?)
+          "test.multi_arch"
+          "test.nocpp2"
+        ];
     in
     ''
       runHook preCheck
@@ -76,53 +112,59 @@ stdenv.mkDerivation (finalAttrs: {
   passthru = {
     # A derivation that provides gcc and g++ commands, but that
     # will end up calling ccache for the given cacheDir
-    links = { unwrappedCC, extraConfig }: stdenv.mkDerivation {
-      pname = "ccache-links";
-      inherit (finalAttrs) version;
-      passthru = {
-        isClang = unwrappedCC.isClang or false;
-        isGNU = unwrappedCC.isGNU or false;
-        isCcache = true;
+    links =
+      { unwrappedCC, extraConfig }:
+      stdenv.mkDerivation {
+        pname = "ccache-links";
+        inherit (finalAttrs) version;
+        passthru = {
+          isClang = unwrappedCC.isClang or false;
+          isGNU = unwrappedCC.isGNU or false;
+          isCcache = true;
+        };
+        inherit (unwrappedCC) lib;
+        nativeBuildInputs = [ makeWrapper ];
+        # Unwrapped clang does not have a targetPrefix because it is multi-target
+        # target is decided with argv0.
+        buildCommand =
+          let
+            targetPrefix =
+              if unwrappedCC.isClang or false then
+                ""
+              else
+                (lib.optionalString (
+                  unwrappedCC ? targetConfig && unwrappedCC.targetConfig != null && unwrappedCC.targetConfig != ""
+                ) "${unwrappedCC.targetConfig}-");
+          in
+          ''
+            mkdir -p $out/bin
+
+            wrap() {
+              local cname="${targetPrefix}$1"
+              if [ -x "${unwrappedCC}/bin/$cname" ]; then
+                makeWrapper ${finalAttrs.finalPackage}/bin/ccache $out/bin/$cname \
+                  --run ${lib.escapeShellArg extraConfig} \
+                  --add-flags ${unwrappedCC}/bin/$cname
+              fi
+            }
+
+            wrap cc
+            wrap c++
+            wrap gcc
+            wrap g++
+            wrap clang
+            wrap clang++
+
+            for executable in $(ls ${unwrappedCC}/bin); do
+              if [ ! -x "$out/bin/$executable" ]; then
+                ln -s ${unwrappedCC}/bin/$executable $out/bin/$executable
+              fi
+            done
+            for file in $(ls ${unwrappedCC} | grep -vw bin); do
+              ln -s ${unwrappedCC}/$file $out/$file
+            done
+          '';
       };
-      inherit (unwrappedCC) lib;
-      nativeBuildInputs = [ makeWrapper ];
-      # Unwrapped clang does not have a targetPrefix because it is multi-target
-      # target is decided with argv0.
-      buildCommand = let
-        targetPrefix = if unwrappedCC.isClang or false
-          then
-            ""
-          else
-            (lib.optionalString (unwrappedCC ? targetConfig && unwrappedCC.targetConfig != null && unwrappedCC.targetConfig != "") "${unwrappedCC.targetConfig}-");
-      in ''
-        mkdir -p $out/bin
-
-        wrap() {
-          local cname="${targetPrefix}$1"
-          if [ -x "${unwrappedCC}/bin/$cname" ]; then
-            makeWrapper ${finalAttrs.finalPackage}/bin/ccache $out/bin/$cname \
-              --run ${lib.escapeShellArg extraConfig} \
-              --add-flags ${unwrappedCC}/bin/$cname
-          fi
-        }
-
-        wrap cc
-        wrap c++
-        wrap gcc
-        wrap g++
-        wrap clang
-        wrap clang++
-
-        for executable in $(ls ${unwrappedCC}/bin); do
-          if [ ! -x "$out/bin/$executable" ]; then
-            ln -s ${unwrappedCC}/bin/$executable $out/bin/$executable
-          fi
-        done
-        for file in $(ls ${unwrappedCC} | grep -vw bin); do
-          ln -s ${unwrappedCC}/$file $out/$file
-        done
-      '';
-    };
 
     updateScript = nix-update-script { };
   };
@@ -136,7 +178,10 @@ stdenv.mkDerivation (finalAttrs: {
     }";
     license = licenses.gpl3Plus;
     mainProgram = "ccache";
-    maintainers = with maintainers; [ kira-bruneau r-burns ];
+    maintainers = with maintainers; [
+      kira-bruneau
+      r-burns
+    ];
     platforms = platforms.unix;
   };
 })
diff --git a/pkgs/by-name/cd/cdecl/cdecl-2.5-lex.patch b/pkgs/by-name/cd/cdecl-blocks/cdecl-2.5-lex.patch
index ecdee5d544f66..ecdee5d544f66 100644
--- a/pkgs/by-name/cd/cdecl/cdecl-2.5-lex.patch
+++ b/pkgs/by-name/cd/cdecl-blocks/cdecl-2.5-lex.patch
diff --git a/pkgs/by-name/cd/cdecl-blocks/package.nix b/pkgs/by-name/cd/cdecl-blocks/package.nix
new file mode 100644
index 0000000000000..307a80681a24d
--- /dev/null
+++ b/pkgs/by-name/cd/cdecl-blocks/package.nix
@@ -0,0 +1,82 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  bison,
+  flex,
+  readline,
+  ncurses,
+}:
+
+stdenv.mkDerivation {
+  pname = "cdecl-blocks";
+  version = "2.5-unstable-2024-05-07";
+
+  src = fetchFromGitHub {
+    owner = "ridiculousfish";
+    repo = "cdecl-blocks";
+    rev = "1e6e1596771183d9bb90bcf152d6bc2055219a7e";
+    hash = "sha256-5XuiYkFe+QvVBRIXRieKoE0zbISMvU1iLgEfkw6GnlE=";
+  };
+
+  patches = [
+    ./cdecl-2.5-lex.patch
+    # when `USE_READLINE` is enabled, this option will not be present
+    ./test_remove_interactive_line.patch
+  ];
+
+  prePatch = ''
+    substituteInPlace cdecl.c \
+      --replace 'getline' 'cdecl_getline'
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    bison
+    flex
+  ];
+
+  buildInputs = [
+    readline
+    ncurses
+  ];
+
+  env = {
+    NIX_CFLAGS_COMPILE = toString (
+      [
+        "-DBSD"
+        "-DUSE_READLINE"
+      ]
+      ++ lib.optionals stdenv.cc.isClang [
+        "-Wno-error=int-conversion"
+        "-Wno-error=incompatible-function-pointer-types"
+      ]
+    );
+    NIX_LDFLAGS = "-lreadline";
+  };
+
+  makeFlags = [
+    "CC=${lib.getExe stdenv.cc}"
+    "PREFIX=${placeholder "out"}"
+    "BINDIR=${placeholder "out"}/bin"
+    "MANDIR=${placeholder "out"}/man1"
+    "CATDIR=${placeholder "out"}/cat1"
+  ];
+
+  doCheck = true;
+  checkTarget = "test";
+
+  preInstall = ''
+    mkdir -p $out/bin;
+  '';
+
+  meta = {
+    description = "Translator English -- C/C++ declarations";
+    homepage = "https://cdecl.org";
+    license = lib.licenses.publicDomain;
+    maintainers = with lib.maintainers; [ sigmanificient ];
+    platforms = lib.platforms.unix;
+    mainProgram = "cdecl";
+  };
+}
diff --git a/pkgs/by-name/cd/cdecl/test_remove_interactive_line.patch b/pkgs/by-name/cd/cdecl-blocks/test_remove_interactive_line.patch
index 5a769f2dfec9d..5a769f2dfec9d 100644
--- a/pkgs/by-name/cd/cdecl/test_remove_interactive_line.patch
+++ b/pkgs/by-name/cd/cdecl-blocks/test_remove_interactive_line.patch
diff --git a/pkgs/by-name/cd/cdecl/package.nix b/pkgs/by-name/cd/cdecl/package.nix
index 016a15e9bea06..d75f6d994b024 100644
--- a/pkgs/by-name/cd/cdecl/package.nix
+++ b/pkgs/by-name/cd/cdecl/package.nix
@@ -2,45 +2,29 @@
   lib,
   stdenv,
   fetchFromGitHub,
+  autoconf,
+  automake,
   bison,
   flex,
   readline,
-  ncurses,
 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation (finalAttrs: {
   pname = "cdecl";
-  version = "2.5-unstable-2024-05-07";
+  version = "17.0";
 
   src = fetchFromGitHub {
-    owner = "ridiculousfish";
-    repo = "cdecl-blocks";
-    rev = "1e6e1596771183d9bb90bcf152d6bc2055219a7e";
-    hash = "sha256-5XuiYkFe+QvVBRIXRieKoE0zbISMvU1iLgEfkw6GnlE=";
+    owner = "paul-j-lucas";
+    repo = "cdecl";
+    rev = "refs/tags/cdecl-${finalAttrs.version}";
+    hash = "sha256-ElMmsFD4VXF6BFjFuuWmgFJaqCPCxpQB7S9tLkeGmMY=";
   };
 
-  patches = [
-    ./cdecl-2.5-lex.patch
-    # when `USE_READLINE` is enabled, this option will not be present
-    ./test_remove_interactive_line.patch
-  ];
-
-  prePatch = ''
-    substituteInPlace cdecl.c \
-      --replace 'getline' 'cdecl_getline'
-  '';
-
   strictDeps = true;
+  preConfigure = "./bootstrap";
 
-  nativeBuildInputs = [
-    bison
-    flex
-  ];
-
-  buildInputs = [
-    readline
-    ncurses
-  ];
+  nativeBuildInputs = [ autoconf automake bison flex ];
+  buildInputs = [ readline ];
 
   env = {
     NIX_CFLAGS_COMPILE = toString (
@@ -71,12 +55,14 @@ stdenv.mkDerivation {
     mkdir -p $out/bin;
   '';
 
+  outputs = [ "out" "man" ];
+
   meta = {
-    description = "Translator English -- C/C++ declarations";
-    homepage = "https://cdecl.org";
-    license = lib.licenses.publicDomain;
+    description = "Composing and deciphering C (or C++) declarations or casts, aka ''gibberish.''";
+    homepage = "https://github.com/paul-j-lucas/cdecl";
+    license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ sigmanificient ];
     platforms = lib.platforms.unix;
     mainProgram = "cdecl";
   };
-}
+})
diff --git a/pkgs/by-name/cd/cdwe/package.nix b/pkgs/by-name/cd/cdwe/package.nix
index 9f20c80199020..b891daee2980c 100644
--- a/pkgs/by-name/cd/cdwe/package.nix
+++ b/pkgs/by-name/cd/cdwe/package.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-V2eWVoRtfjHLe2AypYekUFzMnuV8RYU9Pb7Q1U3fwp4=";
 
   meta = with lib; {
-    description = "A configurable cd wrapper that lets you define your environment per directory";
+    description = "Configurable cd wrapper that lets you define your environment per directory";
     homepage = "https://github.com/synoet/cdwe";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/pkgs/by-name/ce/celeste-classic/package.nix b/pkgs/by-name/ce/celeste-classic/package.nix
index bbea59a5b457a..f862c1b7a5a2f 100644
--- a/pkgs/by-name/ce/celeste-classic/package.nix
+++ b/pkgs/by-name/ce/celeste-classic/package.nix
@@ -38,7 +38,7 @@ stdenvNoCC.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A PICO-8 platformer about climbing a mountain, made in four days${lib.optionalString practiceMod " (Practice Mod)"}";
+    description = "PICO-8 platformer about climbing a mountain, made in four days${lib.optionalString practiceMod " (Practice Mod)"}";
     homepage = "https://celesteclassic.github.io/";
     license = licenses.unfree;
     platforms = platforms.linux;
diff --git a/pkgs/by-name/ce/celluloid/package.nix b/pkgs/by-name/ce/celluloid/package.nix
index 64ee44b1ad166..a3491af59fbd3 100644
--- a/pkgs/by-name/ce/celluloid/package.nix
+++ b/pkgs/by-name/ce/celluloid/package.nix
@@ -15,6 +15,8 @@
 , pkg-config
 , python3
 , wrapGAppsHook4
+, yt-dlp
+, youtubeSupport ? true
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -51,6 +53,12 @@ stdenv.mkDerivation (finalAttrs: {
     patchShebangs meson-post-install.py src/generate-authors.py
   '';
 
+  preFixup = lib.optionalString youtubeSupport ''
+    gappsWrapperArgs+=(
+      --prefix PATH : "${lib.makeBinPath [ yt-dlp ]}"
+    )
+  '';
+
   strictDeps = true;
 
   doCheck = true;
diff --git a/pkgs/applications/emulators/cemu/cmakelists.patch b/pkgs/by-name/ce/cemu/0000-spirv-tools-opt-cmakelists.patch
index a337484277ef8..a337484277ef8 100644
--- a/pkgs/applications/emulators/cemu/cmakelists.patch
+++ b/pkgs/by-name/ce/cemu/0000-spirv-tools-opt-cmakelists.patch
diff --git a/pkgs/applications/emulators/cemu/default.nix b/pkgs/by-name/ce/cemu/package.nix
index 483bd8d4d5098..3a009ea0cb3be 100644
--- a/pkgs/applications/emulators/cemu/default.nix
+++ b/pkgs/by-name/ce/cemu/package.nix
@@ -1,34 +1,37 @@
-{ lib, stdenv, fetchFromGitHub
-, addOpenGLRunpath
-, wrapGAppsHook3
-, cmake
-, glslang
-, nasm
-, pkg-config
-
-, SDL2
-, boost
-, cubeb
-, curl
-, fmt_9
-, glm
-, gtk3
-, hidapi
-, imgui
-, libpng
-, libusb1
-, libzip
-, libXrender
-, pugixml
-, rapidjson
-, vulkan-headers
-, wayland
-, wxGTK32
-, zarchive
-, gamemode
-, vulkan-loader
-
-, nix-update-script
+{
+  lib,
+  SDL2,
+  addOpenGLRunpath,
+  boost,
+  cmake,
+  cubeb,
+  curl,
+  fetchFromGitHub,
+  fmt_9,
+  gamemode,
+  glm,
+  glslang,
+  gtk3,
+  hidapi,
+  imgui,
+  libXrender,
+  libpng,
+  libusb1,
+  libzip,
+  nasm,
+  ninja,
+  nix-update-script,
+  pkg-config,
+  pugixml,
+  rapidjson,
+  stdenv,
+  testers,
+  vulkan-headers,
+  vulkan-loader,
+  wayland,
+  wrapGAppsHook3,
+  wxGTK32,
+  zarchive,
 }:
 
 let
@@ -43,31 +46,32 @@ let
       sha256 = "sha256-gf47uLeNiXQic43buB5ZnMqiotlUfIyAsP+3H7yJuFg=";
     };
   };
-
-in stdenv.mkDerivation rec {
+in stdenv.mkDerivation (finalAttrs: {
   pname = "cemu";
-  version = "2.0-82";
+  version = "2.0-86";
 
   src = fetchFromGitHub {
     owner = "cemu-project";
     repo = "Cemu";
-    rev = "v${version}";
-    hash = "sha256-rmlkit7ZNUM0ErqoclivfBHolV0tRWyToLmsvoTslbI=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-AS5Qo4J0U1MeTYWl4jiJMi879bhBuioU1BikxGKtUrE=";
   };
 
   patches = [
     # glslangTargets want SPIRV-Tools-opt to be defined:
     # > The following imported targets are referenced, but are missing:
     # > SPIRV-Tools-opt
-    ./cmakelists.patch
+    ./0000-spirv-tools-opt-cmakelists.patch
   ];
 
   nativeBuildInputs = [
+    SDL2
     addOpenGLRunpath
     wrapGAppsHook3
     cmake
     glslang
     nasm
+    ninja
     pkg-config
   ];
 
@@ -94,23 +98,26 @@ in stdenv.mkDerivation rec {
   ];
 
   cmakeFlags = [
-    "-DCMAKE_C_FLAGS_RELEASE=-DNDEBUG"
-    "-DCMAKE_CXX_FLAGS_RELEASE=-DNDEBUG"
-    "-DENABLE_VCPKG=OFF"
-    "-DENABLE_FERAL_GAMEMODE=ON"
-
-    # PORTABLE:
-    # "All data created and maintained by Cemu will be in the directory where the executable file is located"
-    "-DPORTABLE=OFF"
+    (lib.cmakeFeature "CMAKE_C_FLAGS_RELEASE" "-DNDEBUG")
+    (lib.cmakeFeature "CMAKE_CXX_FLAGS_RELEASE" "-DNDEBUG")
+    (lib.cmakeBool "ENABLE_VCPKG" false)
+    (lib.cmakeBool "ENABLE_FERAL_GAMEMODE" true)
+
+    # PORTABLE: "All data created and maintained by Cemu will be in
+    # the directory where the executable file is located"
+    (lib.cmakeBool "PORTABLE" false)
   ];
 
-  preConfigure = with lib; let
-    tag = last (splitString "-" version);
+  strictDeps = true;
+
+  preConfigure = let
+    tag = lib.last (lib.splitString "-" finalAttrs.version);
   in ''
     rm -rf dependencies/imgui
-    ln -s ${imgui'}/include/imgui dependencies/imgui
-    substituteInPlace src/Common/version.h --replace " (experimental)" "-${tag} (experimental)"
-    substituteInPlace dependencies/gamemode/lib/gamemode_client.h --replace "libgamemode.so.0" "${gamemode.lib}/lib/libgamemode.so.0"
+    # cemu expects imgui source code, not just header files
+    ln -s ${imgui'.src} dependencies/imgui
+    substituteInPlace src/Common/version.h --replace-fail " (experimental)" "-${tag} (experimental)"
+    substituteInPlace dependencies/gamemode/lib/gamemode_client.h --replace-fail "libgamemode.so.0" "${gamemode.lib}/lib/libgamemode.so.0"
   '';
 
   installPhase = ''
@@ -137,14 +144,21 @@ in stdenv.mkDerivation rec {
     )
   '';
 
-  passthru.updateScript = nix-update-script { };
+  passthru = {
+    updateScript = nix-update-script { };
+    tests = {
+      version = testers.testVersion {
+        package = finalAttrs.finalPackage;
+      };
+    };
+  };
 
-  meta = with lib; {
-    description = "Cemu is a Wii U emulator";
+  meta = {
+    description = "Software to emulate Wii U games and applications on PC";
     homepage = "https://cemu.info";
-    license = licenses.mpl20;
-    platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ zhaofengli baduhai ];
+    license = lib.licenses.mpl20;
     mainProgram = "cemu";
+    maintainers = with lib.maintainers; [ zhaofengli baduhai AndersonTorres ];
+    platforms = [ "x86_64-linux" ];
   };
-}
+})
diff --git a/pkgs/by-name/ce/cent/package.nix b/pkgs/by-name/ce/cent/package.nix
index 8cc910d71c79e..0436166a36dfb 100644
--- a/pkgs/by-name/ce/cent/package.nix
+++ b/pkgs/by-name/ce/cent/package.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "cent";
-  version = "1.3.3";
+  version = "1.3.4";
 
   src = fetchFromGitHub {
     owner = "xm1k3";
     repo = "cent";
     rev = "refs/tags/v${version}";
-    hash = "sha256-E3gAtrgWVucV3cD31ntgtdTDkhmqJHOiFwaUdVJj0jQ=";
+    hash = "sha256-xwGmBZgdpyYJ1AKoNUUPEMbU5/racalE4SLrx/E51wM=";
   };
 
-  vendorHash = "sha256-LvI9FJFXBnEXNsX3qp2Sl58ccIJtYDGSEtNUwNW/Pp0=";
+  vendorHash = "sha256-GMnTIEnkOt0cRN9pZzEuqqtWmO27uVja9VG5UNeCHJo=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/by-name/ce/centerpiece/package.nix b/pkgs/by-name/ce/centerpiece/package.nix
index 1cf866a45009d..f6d3f1a9a2f28 100644
--- a/pkgs/by-name/ce/centerpiece/package.nix
+++ b/pkgs/by-name/ce/centerpiece/package.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "centerpiece";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "friedow";
     repo = "centerpiece";
     rev = "v${version}";
-    hash = "sha256-I630XrmyRAjVxFvISo2eIUP3YmivZovnV89Xsx5OduY=";
+    hash = "sha256-1sKUGTBS9aTCQPuhkwv9fZ8F3N6yn98927fpp1e4fBU=";
   };
 
-  cargoHash = "sha256-yvvMe1zBUREqRzp/0zYsu7AoXS9Jqq67DY5uMParhEs=";
+  cargoHash = "sha256-b7gI6Z5fiOA/Q2BbsmmGrKHgMzbICKPeK2i6YjlLnDo=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
@@ -48,7 +48,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/friedow/centerpiece";
     description = "Your trusty omnibox search";
     license = licenses.mit;
-    maintainers = with maintainers; [ a-kenji ];
+    maintainers = with maintainers; [ a-kenji friedow ];
     platforms = platforms.linux;
     mainProgram = "centerpiece";
   };
diff --git a/pkgs/by-name/ce/centrifugo/package.nix b/pkgs/by-name/ce/centrifugo/package.nix
index 83e0ce5b7f42f..15910d36553d3 100644
--- a/pkgs/by-name/ce/centrifugo/package.nix
+++ b/pkgs/by-name/ce/centrifugo/package.nix
@@ -14,16 +14,16 @@ let
 in
 buildGoModule rec {
   pname = "centrifugo";
-  version = "5.3.2";
+  version = "5.4.0";
 
   src = fetchFromGitHub {
     owner = "centrifugal";
     repo = "centrifugo";
     rev = "v${version}";
-    hash = "sha256-h1aI+dAVL/ToHeSdI41i74Kq2JnvGgv2fI5ffhBIfRM=";
+    hash = "sha256-sSEainZXgZ26u4J0FXVM8Je1uwDrAOkzLMgrCUtOx74=";
   };
 
-  vendorHash = "sha256-mtIRbW8aN1PJs/43aaAa141l2VmVdVHY8bnvfV+r0e8=";
+  vendorHash = "sha256-kPnkuBOcTDuAWD51JGJvgHLj9jn9kHZOfPw/DF64Mn8=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/by-name/ce/certificate-ripper/package.nix b/pkgs/by-name/ce/certificate-ripper/package.nix
index 439d8079d7644..72cdd6787a937 100644
--- a/pkgs/by-name/ce/certificate-ripper/package.nix
+++ b/pkgs/by-name/ce/certificate-ripper/package.nix
@@ -53,7 +53,7 @@ buildGraalvmNativeImage {
 
   meta = {
     changelog = "https://github.com/Hakky54/certificate-ripper/releases/tag/${version}";
-    description = "A CLI tool to extract server certificates";
+    description = "CLI tool to extract server certificates";
     homepage = "https://github.com/Hakky54/certificate-ripper";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ tomasajt ];
diff --git a/pkgs/by-name/ch/ch341eeprom/package.nix b/pkgs/by-name/ch/ch341eeprom/package.nix
index 1c4661398e54a..de29004aeaf06 100644
--- a/pkgs/by-name/ch/ch341eeprom/package.nix
+++ b/pkgs/by-name/ch/ch341eeprom/package.nix
@@ -1,25 +1,25 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, libusb1
-,
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  libusb1,
+  unstableGitUpdater,
 }:
+
 stdenv.mkDerivation {
   pname = "ch341eeprom";
-  version = "0-unstable-2021-01-05";
+  version = "0-unstable-2024-05-06";
 
   src = fetchFromGitHub {
     owner = "command-tab";
     repo = "ch341eeprom";
-    rev = "d5b2fba35a33a1cddd7a3e920e1df933f21ba9b0";
-    hash = "sha256-QUl5ErOfEfDhk1fF+BNu6n0Bake3IagNfn4I43b6Uns=";
+    rev = "7cffbef7552d93162bd90cae836a45e94acb93fb";
+    hash = "sha256-8pvQ2hBP3Rf8+MWsmMY53BghFiC5/b9k8vUjU2K6Ib4=";
   };
 
   buildInputs = [ libusb1 ];
 
-  makeFlags = [
-    "CC=${stdenv.cc.targetPrefix}cc"
-  ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   installPhase = ''
     runHook preInstall
@@ -27,12 +27,16 @@ stdenv.mkDerivation {
     runHook postInstall
   '';
 
-  meta = with lib; {
-    description = "A libusb based programming tool for 24Cxx serial EEPROMs using the WinChipHead CH341A IC";
+  passthru = {
+    updateScript = unstableGitUpdater { hardcodeZeroVersion = true; };
+  };
+
+  meta = {
+    description = "Libusb based programming tool for 24Cxx serial EEPROMs using the WinChipHead CH341A IC";
     homepage = "https://github.com/command-tab/ch341eeprom";
-    license = licenses.gpl3Plus;
-    platforms = platforms.darwin ++ platforms.linux;
+    license = lib.licenses.gpl3Plus;
     mainProgram = "ch341eeprom";
-    maintainers = with maintainers; [ xokdvium ];
+    maintainers = with lib.maintainers; [ xokdvium ];
+    platforms = with lib.platforms; darwin ++ linux;
   };
 }
diff --git a/pkgs/by-name/ch/challenger/package.nix b/pkgs/by-name/ch/challenger/package.nix
new file mode 100644
index 0000000000000..108c7a77eaea4
--- /dev/null
+++ b/pkgs/by-name/ch/challenger/package.nix
@@ -0,0 +1,81 @@
+{
+  lib,
+  stdenv,
+  fetchgit,
+  autoreconfHook,
+  libgcrypt,
+  pkg-config,
+  texinfo,
+  curl,
+  gnunet,
+  jansson,
+  libgnurl,
+  libmicrohttpd,
+  libsodium,
+  libtool,
+  postgresql,
+  taler-exchange,
+  taler-merchant,
+  runtimeShell,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "challenger";
+  version = "0.11.0";
+
+  src = fetchgit {
+    url = "https://git.taler.net/challenger.git";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-utME8ywCf4hjgOZWp4j2+dNPPLbAqHd80A62waVvONE=";
+  };
+
+  # https://git.taler.net/challenger.git/tree/bootstrap
+  preAutoreconf = ''
+    # Generate Makefile.am in contrib/
+    pushd contrib
+    rm -f Makefile.am
+    find wallet-core/challenger/ -type f -printf '  %p \\\n' | sort > Makefile.am.ext
+    # Remove extra '\' at the end of the file
+    truncate -s -2 Makefile.am.ext
+    cat Makefile.am.in Makefile.am.ext >> Makefile.am
+    # Prevent accidental editing of the generated Makefile.am
+    chmod -w Makefile.am
+    popd
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    autoreconfHook
+    libgcrypt
+    pkg-config
+    texinfo
+  ];
+
+  buildInputs = [
+    curl
+    gnunet
+    jansson
+    libgcrypt
+    libgnurl
+    libmicrohttpd
+    libsodium
+    libtool
+    postgresql
+    taler-exchange
+    taler-merchant
+  ];
+
+  preFixup = ''
+    substituteInPlace $out/bin/challenger-{dbconfig,send-post.sh} \
+      --replace-fail "/bin/bash" "${runtimeShell}"
+  '';
+
+  meta = {
+    description = "OAuth 2.0-based authentication service that validates user can receive messages at a certain address";
+    homepage = "https://git.taler.net/challenger.git";
+    license = lib.licenses.agpl3Plus;
+    maintainers = with lib.maintainers; [ wegank ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/ch/changelog-d/package.nix b/pkgs/by-name/ch/changelog-d/package.nix
index 380f4a801afae..a5bff1bfe1dee 100644
--- a/pkgs/by-name/ch/changelog-d/package.nix
+++ b/pkgs/by-name/ch/changelog-d/package.nix
@@ -13,17 +13,11 @@ let
   haskellModifications =
     lib.flip lib.pipe [
       addCompletions
-      haskell.lib.doJailbreak
       haskell.lib.justStaticExecutables
     ];
 
   mkDerivationOverrides = finalAttrs: oldAttrs: {
 
-    version = oldAttrs.version + "-git-${lib.strings.substring 0 7 oldAttrs.src.rev}";
-
-    # nix-shell ./maintainers/scripts/update.nix --argstr package changelog-d
-    passthru.updateScript = lib.getExe (callPackage ./updateScript.nix { });
-
     # nix-build -A changelog-d.tests
     passthru.tests = {
       basic = callPackage ./tests/basic.nix { changelog-d = finalAttrs.finalPackage; };
diff --git a/pkgs/by-name/ch/changelog-d/updateScript.nix b/pkgs/by-name/ch/changelog-d/updateScript.nix
deleted file mode 100644
index fae22a161b6df..0000000000000
--- a/pkgs/by-name/ch/changelog-d/updateScript.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ writeShellApplication, cabal2nix }:
-
-writeShellApplication {
-  name = "update-changelog-d";
-  runtimeInputs = [
-    cabal2nix
-  ];
-  text = ''
-    cd pkgs/development/misc/haskell/changelog-d
-    cabal2nix https://codeberg.org/fgaz/changelog-d >default.nix
-  '';
-}
diff --git a/pkgs/by-name/ch/charm-freeze/package.nix b/pkgs/by-name/ch/charm-freeze/package.nix
index f3efac03eb98b..c9002e244e53d 100644
--- a/pkgs/by-name/ch/charm-freeze/package.nix
+++ b/pkgs/by-name/ch/charm-freeze/package.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" "-X=main.Version=${version}" ];
 
   meta = with lib; {
-    description = "A tool to generate images of code and terminal output";
+    description = "Tool to generate images of code and terminal output";
     mainProgram = "freeze";
     homepage = "https://github.com/charmbracelet/freeze";
     changelog = "https://github.com/charmbracelet/freeze/releases/tag/v${version}";
diff --git a/pkgs/by-name/ch/chatgpt-shell-cli/package.nix b/pkgs/by-name/ch/chatgpt-shell-cli/package.nix
new file mode 100644
index 0000000000000..25ab95c94127d
--- /dev/null
+++ b/pkgs/by-name/ch/chatgpt-shell-cli/package.nix
@@ -0,0 +1,48 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, jq
+, curl
+, glow
+, makeWrapper
+}:
+
+let
+  pname = "chatgpt-shell-cli";
+
+  # no tags
+  version = "master";
+in
+stdenv.mkDerivation {
+    inherit pname version;
+
+    src = fetchFromGitHub {
+      owner = "0xacx";
+      repo = "chatgpt-shell-cli";
+      rev = version;
+      hash = "sha256-hYLrUya4UCsIB1J/n+jp1jFRCEqnGFJOr3ATxm0zwdY=";
+    };
+
+    nativeBuildInputs = [ makeWrapper ];
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out/bin
+      install -Dm755 chatgpt.sh -t $out/bin
+
+      runHook postInstall
+    '';
+
+    postInstall = ''
+      wrapProgram $out/bin/chatgpt.sh \
+        --prefix PATH : ${lib.makeBinPath [ jq curl glow ]}
+    '';
+
+    meta = with lib; {
+      homepage = "https://github.com/0xacx/chatGPT-shell-cli";
+      description = "Simple shell script to use OpenAI's ChatGPT and DALL-E from the terminal. No Python or JS required.";
+      license = licenses.mit;
+      maintainers = with maintainers; [ jfvillablanca ];
+    };
+  }
diff --git a/pkgs/by-name/ch/chess-tui/package.nix b/pkgs/by-name/ch/chess-tui/package.nix
index 63ff6b8fc3e78..e2c4f5fe1edbe 100644
--- a/pkgs/by-name/ch/chess-tui/package.nix
+++ b/pkgs/by-name/ch/chess-tui/package.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-RUnT5b9pBcopTPT/1J48xZ4pfn3C0mIuYTDvgf3zvn0=";
 
   meta = with lib;{
-    description = "A chess TUI implementation in rust";
+    description = "Chess TUI implementation in rust";
     homepage = "https://github.com/thomas-mauran/chess-tui";
     maintainers = with maintainers; [ ByteSudoer ];
     license = licenses.mit;
diff --git a/pkgs/by-name/ch/chezmoi/package.nix b/pkgs/by-name/ch/chezmoi/package.nix
index afb575230e4c0..10c7410b68626 100644
--- a/pkgs/by-name/ch/chezmoi/package.nix
+++ b/pkgs/by-name/ch/chezmoi/package.nix
@@ -8,16 +8,16 @@
 let
   argset = {
     pname = "chezmoi";
-    version = "2.48.1";
+    version = "2.49.0";
 
     src = fetchFromGitHub {
       owner = "twpayne";
       repo = "chezmoi";
       rev = "v${argset.version}";
-      hash = "sha256-v24gS80s7dTDlOO9ouf+Am7KyZPTBWzjG+HyBfFZynw=";
+      hash = "sha256-9VMNeWJzbfpHL9u6fYF1HzQGlREU6eQmF9mwqxosTGI=";
     };
 
-    vendorHash = "sha256-8KcseMkYww+Ccaw+ovwXhakO9ira2TRI4uQ5TbCZcSE=";
+    vendorHash = "sha256-0gM2C8vXFOFDNJVnjq0Qbm2urhenWcH8F+ExAtjMVc0=";
 
     nativeBuildInputs = [
       installShellFiles
diff --git a/pkgs/applications/audio/ChowCentaur/default.nix b/pkgs/by-name/ch/chow-centaur/package.nix
index 80f5768dc1578..87c8bc35b1b9b 100644
--- a/pkgs/applications/audio/ChowCentaur/default.nix
+++ b/pkgs/by-name/ch/chow-centaur/package.nix
@@ -2,14 +2,14 @@
 , xcbutilcursor, xcbutilkeysyms, xcbutil, libXrandr, libXinerama, libXcursor
 , alsa-lib, libjack2, lv2, gcc-unwrapped }:
 
-stdenv.mkDerivation rec {
-  pname = "ChowCentaur";
+stdenv.mkDerivation (finalAttrs: {
+  pname = "chow-centaur";
   version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "jatinchowdhury18";
     repo = "KlonCentaur";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     sha256 = "0mrzlf4a6f25xd7z9xanpyq7ybb4al01dzpjsgi0jkmlmadyhc4h";
     fetchSubmodules = true;
   };
@@ -50,4 +50,4 @@ stdenv.mkDerivation rec {
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ magnetophon ];
   };
-}
+})
diff --git a/pkgs/applications/audio/ChowKick/default.nix b/pkgs/by-name/ch/chow-kick/package.nix
index 0eec7ea32d32a..b9dec059d1f18 100644
--- a/pkgs/applications/audio/ChowKick/default.nix
+++ b/pkgs/by-name/ch/chow-kick/package.nix
@@ -35,14 +35,14 @@
 , webkitgtk
 }:
 
-stdenv.mkDerivation rec {
-  pname = "ChowKick";
+stdenv.mkDerivation (finalAttrs: {
+  pname = "chow-kick";
   version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "Chowdhury-DSP";
-    repo = pname;
-    rev = "v${version}";
+    repo = "ChowKick";
+    rev = "v${finalAttrs.version}";
     sha256 = "0amnp0p7ckbbr9dcbdnld1ryv46kvza2dj8m6hzmi7c1s4df8x5q";
     fetchSubmodules = true;
   };
@@ -91,9 +91,9 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     mkdir -p $out/lib/lv2 $out/lib/vst3 $out/bin
-    cp -r ChowKick_artefacts/Release/LV2//${pname}.lv2 $out/lib/lv2
-    cp -r ChowKick_artefacts/Release/VST3/${pname}.vst3 $out/lib/vst3
-    cp ChowKick_artefacts/Release/Standalone/${pname}  $out/bin
+    cp -r ChowKick_artefacts/Release/LV2/ChowKick.lv2 $out/lib/lv2
+    cp -r ChowKick_artefacts/Release/VST3/ChowKick.vst3 $out/lib/vst3
+    cp ChowKick_artefacts/Release/Standalone/ChowKick  $out/bin
   '';
 
   meta = with lib; {
@@ -104,4 +104,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     mainProgram = "ChowKick";
   };
-}
+})
diff --git a/pkgs/applications/audio/ChowPhaser/default.nix b/pkgs/by-name/ch/chow-phaser/package.nix
index a828a1e1d0410..23cfe684d81f5 100644
--- a/pkgs/applications/audio/ChowPhaser/default.nix
+++ b/pkgs/by-name/ch/chow-phaser/package.nix
@@ -4,14 +4,14 @@
 , libsepol, libsysprof-capture, libthai, libxkbcommon, pcre, pkg-config
 , python3, sqlite, stdenv }:
 
-stdenv.mkDerivation rec {
-  pname = "ChowPhaser";
+stdenv.mkDerivation (finalAttrs: {
+  pname = "chow-phaser";
   version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "jatinchowdhury18";
     repo = "ChowPhaser";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
     sha256 = "sha256-9wo7ZFMruG3QNvlpILSvrFh/Sx6J1qnlWc8+aQyS4tQ=";
   };
@@ -70,7 +70,8 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/jatinchowdhury18/ChowPhaser";
     description = "Phaser effect based loosely on the Schulte Compact Phasing 'A'";
     license = with licenses; [ bsd3 ];
+    mainProgram = "ChowPhaserStereo";
     maintainers = with maintainers; [ magnetophon ];
     platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/applications/audio/CHOWTapeModel/default.nix b/pkgs/by-name/ch/chow-tape-model/package.nix
index 29c1b82d9d0e1..44fc35073d364 100644
--- a/pkgs/applications/audio/CHOWTapeModel/default.nix
+++ b/pkgs/by-name/ch/chow-tape-model/package.nix
@@ -39,14 +39,14 @@ let
   # See here: https://forum.juce.com/t/build-fails-on-fedora-wrong-c-version/50902/2
   stdenv = gcc11Stdenv;
 in
-stdenv.mkDerivation rec {
-  pname = "CHOWTapeModel";
+stdenv.mkDerivation (finalAttrs: {
+  pname = "chow-tape-model";
   version = "2.11.4";
 
   src = fetchFromGitHub {
     owner = "jatinchowdhury18";
     repo = "AnalogTapeModel";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     sha256 = "sha256-WriHi68Y6hAsrwE+74JtVlAKUR9lfTczj6UK9h2FOGM=";
     fetchSubmodules = true;
   };
@@ -99,7 +99,7 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     mkdir -p $out/lib/lv2 $out/lib/vst3 $out/lib/clap $out/bin $out/share/doc/CHOWTapeModel/
-    cd CHOWTapeModel_artefacts/${cmakeBuildType}
+    cd CHOWTapeModel_artefacts/${finalAttrs.cmakeBuildType}
     cp -r LV2/CHOWTapeModel.lv2 $out/lib/lv2
     cp -r VST3/CHOWTapeModel.vst3 $out/lib/vst3
     cp -r CLAP/CHOWTapeModel.clap $out/lib/clap
@@ -129,4 +129,4 @@ stdenv.mkDerivation rec {
     broken = stdenv.isAarch64; # since 2021-12-27 on hydra (update to 2.10): https://hydra.nixos.org/build/162558991
     mainProgram = "CHOWTapeModel";
   };
-}
+})
diff --git a/pkgs/by-name/ch/chrysalis/package.nix b/pkgs/by-name/ch/chrysalis/package.nix
index e0b7a9da78ea4..40b1a4d3c4544 100644
--- a/pkgs/by-name/ch/chrysalis/package.nix
+++ b/pkgs/by-name/ch/chrysalis/package.nix
@@ -38,7 +38,7 @@ in appimageTools.wrapType2 rec {
   passthru.updateScript = ./update.sh;
 
   meta = with lib; {
-    description = "A graphical configurator for Kaleidoscope-powered keyboards";
+    description = "Graphical configurator for Kaleidoscope-powered keyboards";
     homepage = "https://github.com/keyboardio/Chrysalis";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ aw eclairevoyant nshalman ];
diff --git a/pkgs/by-name/ci/ci-edit/package.nix b/pkgs/by-name/ci/ci-edit/package.nix
index 1d2c13e4b933c..3d8a4b541dd4e 100644
--- a/pkgs/by-name/ci/ci-edit/package.nix
+++ b/pkgs/by-name/ci/ci-edit/package.nix
@@ -30,7 +30,7 @@ python3.pkgs.buildPythonApplication {
   pythonImportsCheck = [ "app" ];
 
   meta = with lib; {
-    description = "A terminal text editor with mouse support and ctrl+Q to quit";
+    description = "Terminal text editor with mouse support and ctrl+Q to quit";
     homepage = "https://github.com/google/ci_edit";
     license = licenses.asl20;
     maintainers = with maintainers; [ katexochen ];
diff --git a/pkgs/by-name/ci/cidr-merger/package.nix b/pkgs/by-name/ci/cidr-merger/package.nix
index def8f4080933f..97d73e93d7cd7 100644
--- a/pkgs/by-name/ci/cidr-merger/package.nix
+++ b/pkgs/by-name/ci/cidr-merger/package.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
   vendorHash = "sha256-cPri384AX/FdfNtzt3xj4bF+/izSa4sZuAohK0R/7H4=";
 
   meta = with lib; {
-    description = "A simple command line tool to merge ip/ip cidr/ip range, supports IPv4/IPv6";
+    description = "Simple command line tool to merge ip/ip cidr/ip range, supports IPv4/IPv6";
     mainProgram = "cidr-merger";
     homepage = "https://github.com/zhanhb/cidr-merger";
     license = licenses.mit;
diff --git a/pkgs/by-name/ci/cimg/package.nix b/pkgs/by-name/ci/cimg/package.nix
index 800d0ce512310..1314c37234668 100644
--- a/pkgs/by-name/ci/cimg/package.nix
+++ b/pkgs/by-name/ci/cimg/package.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "cimg";
-  version = "3.3.6";
+  version = "3.4.0";
 
   src = fetchFromGitHub {
     owner = "GreycLab";
     repo = "CImg";
-    rev = "v.${finalAttrs.version}";
-    hash = "sha256-yNIHCEiLvoNNsYisAKo/jj6Q2mLrLMttZyj2XzrWFU4=";
+    rev = "refs/tags/v.${finalAttrs.version}";
+    hash = "sha256-BnDS1n1aIQh9HJZeZv0hR7vo2l6Kf9B/11fYFbb/cpQ=";
   };
 
   outputs = [ "out" "doc" ];
@@ -37,7 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "http://cimg.eu/";
-    description = "A small, open source, C++ toolkit for image processing";
+    description = "Small, open source, C++ toolkit for image processing";
     longDescription = ''
       CImg stands for Cool Image. It is easy to use, efficient and is intended
       to be a very pleasant toolbox to design image processing algorithms in
diff --git a/pkgs/by-name/cl/clang-tidy-sarif/package.nix b/pkgs/by-name/cl/clang-tidy-sarif/package.nix
new file mode 100644
index 0000000000000..64b8da01af3f3
--- /dev/null
+++ b/pkgs/by-name/cl/clang-tidy-sarif/package.nix
@@ -0,0 +1,37 @@
+{
+  lib,
+  fetchFromGitHub,
+  rustPlatform,
+  clang-tidy-sarif,
+  testers,
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "clang-tidy-sarif";
+  version = "0.4.2";
+
+  src = fetchFromGitHub {
+    owner = "psastras";
+    repo = "sarif-rs";
+    rev = "clang-tidy-sarif-v${version}";
+    hash = "sha256-EzWzDeIeSJ11CVcVyAhMjYQJcKHnieRrFkULc5eXAno=";
+  };
+
+  cargoHash = "sha256-NzdgfHRDgLB6sMhBflk9rACEocLP23KlZL22iAfBfh8=";
+  cargoBuildFlags = [
+    "--package"
+    "clang-tidy-sarif"
+  ];
+  cargoTestFlags = cargoBuildFlags;
+
+  passthru = {
+    tests.version = testers.testVersion { package = clang-tidy-sarif; };
+  };
+
+  meta = {
+    description = "A CLI tool to convert clang-tidy diagnostics into SARIF";
+    mainProgram = "clang-tidy-sarif";
+    homepage = "https://psastras.github.io/sarif-rs";
+    maintainers = with lib.maintainers; [ getchoo ];
+    license = lib.licenses.mit;
+  };
+}
diff --git a/pkgs/by-name/cl/clang-uml/package.nix b/pkgs/by-name/cl/clang-uml/package.nix
new file mode 100644
index 0000000000000..e18937a71b548
--- /dev/null
+++ b/pkgs/by-name/cl/clang-uml/package.nix
@@ -0,0 +1,79 @@
+{ lib
+, fetchFromGitHub
+, stdenv
+, cmake
+, pkg-config
+, installShellFiles
+, libclang
+, clang
+, llvmPackages
+, libllvm
+, yaml-cpp
+, elfutils
+, libunwind
+, enableLibcxx ? false
+, debug ? false
+,
+}:
+stdenv.mkDerivation (finalAttrs: {
+  pname = "clang-uml";
+  version = "0.5.2";
+
+  src = fetchFromGitHub {
+    owner = "bkryza";
+    repo = "clang-uml";
+    rev = finalAttrs.version;
+    hash = "sha256-ZVaMLsI1FK05xFfMmlLBPop7DR3fDstnfgjdBmsjNBA=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    installShellFiles
+  ] ++ (if debug then [
+    elfutils
+    libunwind
+  ] else [ ]);
+
+  buildInputs = [
+    clang
+    libclang
+    libllvm
+    yaml-cpp
+  ];
+
+  cmakeFlags = if debug then [ "-DCMAKE_BUILD_TYPE=Debug" ] else [ ];
+
+  clang = if enableLibcxx then llvmPackages.libcxxClang else llvmPackages.clang;
+
+  postInstall = ''
+    cp $out/bin/clang-uml $out/bin/clang-uml-unwrapped
+    rm $out/bin/clang-uml
+    export unwrapped_clang_uml="$out/bin/clang-uml-unwrapped"
+
+    # inject clang and unwrapp_clang_uml variables into wrapper
+    substituteAll ${./wrapper} $out/bin/clang-uml
+    chmod +x $out/bin/clang-uml
+
+    installShellCompletion --cmd clang-uml \
+      --bash $src/packaging/autocomplete/clang-uml \
+      --zsh $src/packaging/autocomplete/_clang-uml
+  '';
+
+  dontFixup = debug;
+  dontStrip = debug;
+
+  meta = with lib; {
+    description = "Customizable automatic UML diagram generator for C++ based on Clang";
+    longDescription = ''
+      clang-uml is an automatic C++ to UML class, sequence, package and include diagram generator, driven by YAML configuration files.
+      The main idea behind the project is to easily maintain up-to-date diagrams within a code-base or document legacy code.
+      The configuration file or files for clang-uml define the types and contents of each generated diagram.
+      The diagrams can be generated in PlantUML, MermaidJS and JSON formats.
+    '';
+    maintainers = with maintainers; [ eymeric ];
+    homepage = "https://clang-uml.github.io/";
+    license = licenses.asl20;
+    platforms = platforms.all;
+  };
+})
diff --git a/pkgs/by-name/cl/clang-uml/wrapper b/pkgs/by-name/cl/clang-uml/wrapper
new file mode 100644
index 0000000000000..cc02db185d06e
--- /dev/null
+++ b/pkgs/by-name/cl/clang-uml/wrapper
@@ -0,0 +1,31 @@
+#!/bin/sh
+# This file is copied from https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/tools/clang-tools/wrapper
+# The clang-tools wrapper is commonly used together with the clang package on
+# nix, because without the wrapper, clang tools fail to find stdlib includes on
+# nix.
+
+buildcpath() {
+  local path after
+  while (( $# )); do
+    case $1 in
+        -isystem)
+            shift
+            path=$path${path:+':'}$1
+            ;;
+        -idirafter)
+            shift
+            after=$after${after:+':'}$1
+            ;;
+    esac
+    shift
+  done
+  echo $path${after:+':'}$after
+}
+
+export CPATH=${CPATH}${CPATH:+':'}$(buildcpath ${NIX_CFLAGS_COMPILE} \
+                                               $(<@clang@/nix-support/libc-cflags)):@clang@/resource-root/include
+export CPLUS_INCLUDE_PATH=${CPLUS_INCLUDE_PATH}${CPLUS_INCLUDE_PATH:+':'}$(buildcpath ${NIX_CFLAGS_COMPILE} \
+                                                                                      $(<@clang@/nix-support/libcxx-cxxflags) \
+                                                                                      $(<@clang@/nix-support/libc-cflags)):@clang@/resource-root/include
+
+exec @unwrapped_clang_uml@ "$@"
diff --git a/pkgs/by-name/cl/clarity-city/package.nix b/pkgs/by-name/cl/clarity-city/package.nix
index 3d3fc445d7ad6..ef332436b1a9a 100644
--- a/pkgs/by-name/cl/clarity-city/package.nix
+++ b/pkgs/by-name/cl/clarity-city/package.nix
@@ -24,7 +24,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "An open source sans-serif typeface";
+    description = "Open source sans-serif typeface";
     homepage = "https://github.com/vmware/clarity-city";
     license = licenses.ofl;
     platforms = platforms.all;
diff --git a/pkgs/by-name/cl/clash-verge-rev/package.nix b/pkgs/by-name/cl/clash-verge-rev/package.nix
index 754588c9fd7b2..b09b83d16961a 100644
--- a/pkgs/by-name/cl/clash-verge-rev/package.nix
+++ b/pkgs/by-name/cl/clash-verge-rev/package.nix
@@ -5,11 +5,11 @@
 
 clash-verge.overrideAttrs (old: rec {
   pname = "clash-verge-rev";
-  version = "1.6.2";
+  version = "1.6.5";
 
   src = fetchurl {
     url = "https://github.com/clash-verge-rev/clash-verge-rev/releases/download/v${version}/clash-verge_${version}_amd64.deb";
-    hash = "sha256-7Nto/vEsatQ9cMNM+6aOw5jBvF/hUxElJ/SRm12yJFA=";
+    hash = "sha256-pL6BWfRkyOzi7TnMAEcHyrUDVpK9IOeqcfRKfkHtWmw=";
   };
 
   meta = old.meta // (with lib; {
diff --git a/pkgs/by-name/cl/clash-verge/package.nix b/pkgs/by-name/cl/clash-verge/package.nix
index 83318a36f3f69..9d9aca7cb1fc8 100644
--- a/pkgs/by-name/cl/clash-verge/package.nix
+++ b/pkgs/by-name/cl/clash-verge/package.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A Clash GUI based on tauri";
+    description = "Clash GUI based on tauri";
     homepage = "https://github.com/zzzgydi/clash-verge";
     platforms = [ "x86_64-linux" ];
     license = licenses.gpl3Plus;
diff --git a/pkgs/by-name/cl/clatd/package.nix b/pkgs/by-name/cl/clatd/package.nix
index f18ab3b036cea..8bbee164ecb26 100644
--- a/pkgs/by-name/cl/clatd/package.nix
+++ b/pkgs/by-name/cl/clatd/package.nix
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
   passthru.tests.clatd = nixosTests.clatd;
 
   meta = with lib; {
-    description = "A 464XLAT CLAT implementation for Linux";
+    description = "464XLAT CLAT implementation for Linux";
     homepage = "https://github.com/toreanderson/clatd";
     license = licenses.mit;
     maintainers = with maintainers; [ jmbaur ];
diff --git a/pkgs/by-name/cl/clickup/package.nix b/pkgs/by-name/cl/clickup/package.nix
new file mode 100644
index 0000000000000..bd00bb23ea710
--- /dev/null
+++ b/pkgs/by-name/cl/clickup/package.nix
@@ -0,0 +1,44 @@
+{
+  lib,
+  appimageTools,
+  fetchurl,
+}:
+let
+  pname = "clickup";
+  version = "3.3.79";
+
+  src = fetchurl {
+    # Using archive.org because the website doesn't store older versions of the software.
+    url = "https://web.archive.org/web/20240601173958/https%3A%2F%2Fdesktop.clickup.com%2Flinux";
+    hash = "sha256-jAOYDX9j+ZTqWsSg0rEckKZnErgsIV6+CtUv3M3wNqM=";
+  };
+
+  appimageContents = appimageTools.extractType2 { inherit pname version src; };
+in
+appimageTools.wrapType2 {
+  inherit pname version src;
+
+  extraPkgs = pkgs: [ pkgs.xorg.libxkbfile ];
+
+  extraInstallCommands = ''
+    install -m 444 -D ${appimageContents}/desktop.desktop $out/share/applications/clickup.desktop
+
+    substituteInPlace $out/share/applications/clickup.desktop \
+      --replace-fail 'Exec=AppRun --no-sandbox %U' 'Exec=clickup' \
+      --replace-fail 'Icon=desktop' 'Icon=clickup'
+
+    for size in 16 32 64 128 256 512 1024; do
+      install -Dm444 ${appimageContents}/usr/share/icons/hicolor/''${size}x''${size}/apps/desktop.png \
+        -t $out/share/icons/hicolor/''${size}x''${size}/apps/clickup.png
+    done
+  '';
+
+  meta = {
+    description = "All in one project management solution";
+    homepage = "https://clickup.com";
+    license = lib.licenses.unfree;
+    mainProgram = "clickup";
+    maintainers = with lib.maintainers; [ heisfer ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/by-name/cl/clipcat/package.nix b/pkgs/by-name/cl/clipcat/package.nix
index 68e6744bd1752..da6118d901cf7 100644
--- a/pkgs/by-name/cl/clipcat/package.nix
+++ b/pkgs/by-name/cl/clipcat/package.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "clipcat";
-  version = "0.17.0";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "xrelkd";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-e95h8YBVLcy9vubdJpfmeystT2Qw0Y8kap9IbTJW+s8=";
+    hash = "sha256-i+5hUwarJHa3QzHPqJ0N/gztKWoRCKXsEbX3Q/1PQ9Q=";
   };
 
-  cargoHash = "sha256-+73vnGcdCDRMrav/Pi4Z37IlbArJ/SlYishz9KhF4x0=";
+  cargoHash = "sha256-lPH2v+OfO/NCLdAVvPbIgAeVAOWHjhNIOap94p0+NR0=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Cocoa
diff --git a/pkgs/by-name/cl/cljfmt/package.nix b/pkgs/by-name/cl/cljfmt/package.nix
index 22c7760e13448..2e0a07fe5d5e3 100644
--- a/pkgs/by-name/cl/cljfmt/package.nix
+++ b/pkgs/by-name/cl/cljfmt/package.nix
@@ -34,7 +34,7 @@ buildGraalvmNativeImage rec {
 
   meta = with lib; {
     mainProgram = "cljfmt";
-    description = "A tool for formatting Clojure code";
+    description = "Tool for formatting Clojure code";
     homepage = "https://github.com/weavejester/cljfmt";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.epl10;
diff --git a/pkgs/by-name/cl/cloudlogoffline/package.nix b/pkgs/by-name/cl/cloudlogoffline/package.nix
index cc945302bf06d..04e6f0ed2c32a 100644
--- a/pkgs/by-name/cl/cloudlogoffline/package.nix
+++ b/pkgs/by-name/cl/cloudlogoffline/package.nix
@@ -1,15 +1,15 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, qt5
+, qt6
 , makeDesktopItem
 , copyDesktopItems
 }:
 stdenv.mkDerivation (self: {
   pname = "cloudlogoffline";
-  version = "1.1.4";
-  rev = "185f294ec36d7ebe40e37d70148b15f58d60bf0d";
-  hash = "sha256-UEi7q3NbTgkg4tSjiksEO05YE4yjRul4qB9hFPswnK0=";
+  version = "1.1.5";
+  rev = self.version;
+  hash = "sha256-CF56yk7hsM4M43le+CLy93oLyZ9kaqaRTFWtjJuF6Vo=";
 
   src = fetchFromGitHub {
     inherit (self) rev hash;
@@ -18,20 +18,18 @@ stdenv.mkDerivation (self: {
   };
 
   nativeBuildInputs = [
-    qt5.qmake
-    qt5.wrapQtAppsHook
+    qt6.qmake
+    qt6.wrapQtAppsHook
   ]
   ++ lib.optionals (!stdenv.isDarwin) [
     copyDesktopItems
   ];
 
   buildInputs = [
-    qt5.qtbase
-    qt5.qtgraphicaleffects
-    qt5.qtlocation
-    qt5.qtpositioning
-    qt5.qtquickcontrols2
-    qt5.qtsvg
+    qt6.qtbase
+    qt6.qtlocation
+    qt6.qtpositioning
+    qt6.qtsvg
   ];
 
   postPatch = let
@@ -44,6 +42,15 @@ stdenv.mkDerivation (self: {
   postInstall = lib.optionalString (!stdenv.isDarwin) ''
     install -d $out/share/pixmaps
     install -m644 images/logo_circle.svg $out/share/pixmaps/cloudlogoffline.svg
+  '' + lib.optionalString stdenv.isDarwin ''
+    # FIXME: For some reason, the Info.plist isn't copied correctly to
+    # the application bundle when building normally, instead creating an
+    # empty file. This doesn't happen when building in a dev shell with
+    # genericBuild.
+    # So, just copy the file manually.
+    plistPath="$out/Applications/CloudLogOffline.app/Contents/Info.plist"
+    [[ -s "$plistPath" ]] && { echo "expected Info.plist to be empty; workaround no longer needed?"; exit 1; }
+    install -m644 macos/Info.plist $out/Applications/CloudLogOffline.app/Contents/Info.plist
   '';
 
   desktopItems = lib.optionals (!stdenv.isDarwin) [
diff --git a/pkgs/by-name/cm/cmake-lint/package.nix b/pkgs/by-name/cm/cmake-lint/package.nix
new file mode 100644
index 0000000000000..b683a0aaa8c51
--- /dev/null
+++ b/pkgs/by-name/cm/cmake-lint/package.nix
@@ -0,0 +1,46 @@
+{
+  lib,
+  fetchFromGitHub,
+  python3Packages,
+  testers,
+  cmake-lint,
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "cmake-lint";
+  version = "1.4.3";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "cmake-lint";
+    repo = "cmake-lint";
+    rev = "refs/tags/${version}";
+    hash = "sha256-/OuWwerBlJynEibaYo+jkLpHt4x9GZrqMRJNxgrDBlM=";
+  };
+
+  nativeBuildInputs = [ python3Packages.setuptools ];
+
+  pythonImportsCheck = [ "cmakelint" ];
+
+  nativeCheckInputs = with python3Packages; [
+    pytestCheckHook
+    nose
+  ];
+
+  checkPhase = ''
+    nosetests
+  '';
+
+  passthru.tests = {
+    version = testers.testVersion { package = cmake-lint; };
+  };
+
+  meta = {
+    description = "Static code checker for CMake files";
+    homepage = "https://github.com/cmake-lint/cmake-lint";
+    changelog = "https://github.com/cmake-lint/cmake-lint/releases/tag/${version}";
+    license = lib.licenses.asl20;
+    maintainers = [ lib.maintainers.luftmensch-luftmensch ];
+    mainProgram = "cmakelint";
+  };
+}
diff --git a/pkgs/by-name/cm/cmake/007-darwin-bsd-ps-abspath.diff b/pkgs/by-name/cm/cmake/007-darwin-bsd-ps-abspath.diff
new file mode 100644
index 0000000000000..d610192074367
--- /dev/null
+++ b/pkgs/by-name/cm/cmake/007-darwin-bsd-ps-abspath.diff
@@ -0,0 +1,41 @@
+diff -ur a/Source/kwsys/ProcessUNIX.c b/Source/kwsys/ProcessUNIX.c
+--- a/Source/kwsys/ProcessUNIX.c	2024-04-11 07:12:19.000000000 -0700
++++ b/Source/kwsys/ProcessUNIX.c	2024-05-15 10:41:00.286160616 -0700
+@@ -2501,20 +2501,20 @@
+    have two integers to store: the pid and then the ppid.  */
+ #if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) ||       \
+   defined(__OpenBSD__) || defined(__GLIBC__) || defined(__GNU__)
+-#  define KWSYSPE_PS_COMMAND "ps axo pid,ppid"
++#  define KWSYSPE_PS_COMMAND "@ps@ axo pid,ppid"
+ #  define KWSYSPE_PS_FORMAT "%d %d\n"
+ #elif defined(__sun) && (defined(__SVR4) || defined(__svr4__)) /* Solaris */
+-#  define KWSYSPE_PS_COMMAND "ps -e -o pid,ppid"
++#  define KWSYSPE_PS_COMMAND "@ps@ -e -o pid,ppid"
+ #  define KWSYSPE_PS_FORMAT "%d %d\n"
+ #elif defined(__hpux) || defined(__sun__) || defined(__sgi) ||                \
+   defined(_AIX) || defined(__sparc)
+-#  define KWSYSPE_PS_COMMAND "ps -ef"
++#  define KWSYSPE_PS_COMMAND "@ps@ -ef"
+ #  define KWSYSPE_PS_FORMAT "%*s %d %d %*[^\n]\n"
+ #elif defined(__QNX__)
+-#  define KWSYSPE_PS_COMMAND "ps -Af"
++#  define KWSYSPE_PS_COMMAND "@ps@ -Af"
+ #  define KWSYSPE_PS_FORMAT "%*d %d %d %*[^\n]\n"
+ #elif defined(__CYGWIN__)
+-#  define KWSYSPE_PS_COMMAND "ps aux"
++#  define KWSYSPE_PS_COMMAND "@ps@ aux"
+ #  define KWSYSPE_PS_FORMAT "%d %d %*[^\n]\n"
+ #endif
+ 
+diff -ur a/Source/kwsys/SystemInformation.cxx b/Source/kwsys/SystemInformation.cxx
+--- a/Source/kwsys/SystemInformation.cxx	2024-04-11 07:12:19.000000000 -0700
++++ b/Source/kwsys/SystemInformation.cxx	2024-05-15 10:40:00.901059278 -0700
+@@ -3884,7 +3884,7 @@
+   long long memUsed = 0;
+   pid_t pid = getpid();
+   std::ostringstream oss;
+-  oss << "ps -o rss= -p " << pid;
++  oss << "@ps@ -o rss= -p " << pid;
+   FILE* file = popen(oss.str().c_str(), "r");
+   if (file == nullptr) {
+     return -1;
diff --git a/pkgs/by-name/cm/cmake/package.nix b/pkgs/by-name/cm/cmake/package.nix
index ce5ec0803a902..5c2a9983d6270 100644
--- a/pkgs/by-name/cm/cmake/package.nix
+++ b/pkgs/by-name/cm/cmake/package.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, substituteAll
 , buildPackages
 , bzip2
 , curlMinimal
@@ -47,11 +48,11 @@ stdenv.mkDerivation (finalAttrs: {
     + lib.optionalString isMinimalBuild "-minimal"
     + lib.optionalString cursesUI "-cursesUI"
     + lib.optionalString qt5UI "-qt5UI";
-  version = "3.29.2";
+  version = "3.29.3";
 
   src = fetchurl {
     url = "https://cmake.org/files/v${lib.versions.majorMinor finalAttrs.version}/cmake-${finalAttrs.version}.tar.gz";
-    hash = "sha256-NttLaSaqt0G6bksuotmckZMiITIwi03IJNQSPLcwNS4=";
+    hash = "sha256-JSruFEjUnKoElU/V4n0YndUVcFVzE+eygWNnFqI4vMs=";
   };
 
   patches = [
@@ -66,7 +67,13 @@ stdenv.mkDerivation (finalAttrs: {
   # Derived from https://github.com/curl/curl/commit/31f631a142d855f069242f3e0c643beec25d1b51
   ++ lib.optional (stdenv.isDarwin && isMinimalBuild) ./005-remove-systemconfiguration-dep.diff
   # On Darwin, always set CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG.
-  ++ lib.optional stdenv.isDarwin ./006-darwin-always-set-runtime-c-flag.diff;
+  ++ lib.optional stdenv.isDarwin ./006-darwin-always-set-runtime-c-flag.diff
+  # On platforms where ps is not part of stdenv, patch the invocation of ps to use an absolute path.
+  ++ lib.optional (stdenv.isDarwin || stdenv.isFreeBSD) (
+    substituteAll {
+      src = ./007-darwin-bsd-ps-abspath.diff;
+      ps = lib.getExe ps;
+    });
 
   outputs = [ "out" ] ++ lib.optionals buildDocs [ "man" "info" ];
   separateDebugInfo = true;
@@ -101,8 +108,6 @@ stdenv.mkDerivation (finalAttrs: {
   ++ lib.optional stdenv.isDarwin CoreServices
   ++ lib.optional (stdenv.isDarwin && !isMinimalBuild) SystemConfiguration;
 
-  propagatedBuildInputs = lib.optional stdenv.isDarwin ps;
-
   preConfigure = ''
     fixCmakeFiles .
     substituteInPlace Modules/Platform/UnixPaths.cmake \
diff --git a/pkgs/by-name/cm/cmakerc/package.nix b/pkgs/by-name/cm/cmakerc/package.nix
index cf96ae46db5e1..6876bc52a2cf1 100644
--- a/pkgs/by-name/cm/cmakerc/package.nix
+++ b/pkgs/by-name/cm/cmakerc/package.nix
@@ -23,7 +23,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A Resource Compiler in a Single CMake Script";
+    description = "Resource Compiler in a Single CMake Script";
     homepage = "https://github.com/vector-of-bool/cmrc";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ guekka ];
diff --git a/pkgs/by-name/co/cockpit/package.nix b/pkgs/by-name/co/cockpit/package.nix
index aba4e7d2895e0..9ff956d3c6f04 100644
--- a/pkgs/by-name/co/cockpit/package.nix
+++ b/pkgs/by-name/co/cockpit/package.nix
@@ -44,13 +44,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "cockpit";
-  version = "316";
+  version = "318";
 
   src = fetchFromGitHub {
     owner = "cockpit-project";
     repo = "cockpit";
     rev = "refs/tags/${version}";
-    hash = "sha256-AoRdeAA+K6VhRxgAF7t2COJtovk8U9B9j8MaBwMjJgw=";
+    hash = "sha256-1SpSzC5wOsv4Ha0ShtuyPsKLm0fVuPt8KFejJHFU8MY=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/by-name/co/code2prompt/Cargo.lock b/pkgs/by-name/co/code2prompt/Cargo.lock
new file mode 100644
index 0000000000000..1136972201b98
--- /dev/null
+++ b/pkgs/by-name/co/code2prompt/Cargo.lock
@@ -0,0 +1,1699 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "anstream"
+version = "0.6.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "is_terminal_polyfill",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b"
+
+[[package]]
+name = "anstyle-parse"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19"
+dependencies = [
+ "anstyle",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.86"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
+
+[[package]]
+name = "autocfg"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
+
+[[package]]
+name = "base64"
+version = "0.21.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+
+[[package]]
+name = "bit-set"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
+dependencies = [
+ "bit-vec",
+]
+
+[[package]]
+name = "bit-vec"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
+
+[[package]]
+name = "block"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
+
+[[package]]
+name = "block-buffer"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "bstr"
+version = "1.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
+dependencies = [
+ "memchr",
+ "regex-automata",
+ "serde",
+]
+
+[[package]]
+name = "byteorder"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+
+[[package]]
+name = "cc"
+version = "1.0.99"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695"
+dependencies = [
+ "jobserver",
+ "libc",
+ "once_cell",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "clap"
+version = "4.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9689a29b593160de5bc4aacab7b5d54fb52231de70122626c178e6a368994c7"
+dependencies = [
+ "clap_builder",
+ "clap_derive",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e5387378c84f6faa26890ebf9f0a92989f8873d4d380467bcd0d8d8620424df"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "clap_lex",
+ "strsim",
+]
+
+[[package]]
+name = "clap_derive"
+version = "4.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c780290ccf4fb26629baa7a1081e68ced113f1d3ec302fa5948f1c381ebf06c6"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70"
+
+[[package]]
+name = "cli-clipboard"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04087c1d4a2aa259784a563932aee09cbb0869d490775e051096174b070f3e3d"
+dependencies = [
+ "clipboard-win",
+ "objc",
+ "objc-foundation",
+ "objc_id",
+ "wl-clipboard-rs",
+ "x11-clipboard",
+]
+
+[[package]]
+name = "clipboard-win"
+version = "4.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362"
+dependencies = [
+ "error-code",
+ "str-buf",
+ "winapi",
+]
+
+[[package]]
+name = "code2prompt"
+version = "1.0.0"
+dependencies = [
+ "anyhow",
+ "clap",
+ "cli-clipboard",
+ "colored",
+ "git2",
+ "handlebars",
+ "ignore",
+ "indicatif",
+ "inquire",
+ "jwalk",
+ "regex",
+ "serde_json",
+ "termtree",
+ "tiktoken-rs",
+]
+
+[[package]]
+name = "colorchoice"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422"
+
+[[package]]
+name = "colored"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8"
+dependencies = [
+ "lazy_static",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "console"
+version = "0.15.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
+dependencies = [
+ "encode_unicode",
+ "lazy_static",
+ "libc",
+ "unicode-width",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "crossbeam"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8"
+dependencies = [
+ "crossbeam-channel",
+ "crossbeam-deque",
+ "crossbeam-epoch",
+ "crossbeam-queue",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
+dependencies = [
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-queue"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
+
+[[package]]
+name = "crossterm"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67"
+dependencies = [
+ "bitflags 1.3.2",
+ "crossterm_winapi",
+ "libc",
+ "mio",
+ "parking_lot",
+ "signal-hook",
+ "signal-hook-mio",
+ "winapi",
+]
+
+[[package]]
+name = "crossterm_winapi"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "crypto-common"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+dependencies = [
+ "generic-array",
+ "typenum",
+]
+
+[[package]]
+name = "derive-new"
+version = "0.5.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3418329ca0ad70234b9735dc4ceed10af4df60eff9c8e7b06cb5e520d92c3535"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "digest"
+version = "0.10.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+dependencies = [
+ "block-buffer",
+ "crypto-common",
+]
+
+[[package]]
+name = "downcast-rs"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2"
+
+[[package]]
+name = "dyn-clone"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125"
+
+[[package]]
+name = "either"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b"
+
+[[package]]
+name = "encode_unicode"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "error-code"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21"
+dependencies = [
+ "libc",
+ "str-buf",
+]
+
+[[package]]
+name = "fancy-regex"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7493d4c459da9f84325ad297371a6b2b8a162800873a22e3b6b6512e61d18c05"
+dependencies = [
+ "bit-set",
+ "regex",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
+
+[[package]]
+name = "fixedbitset"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "fuzzy-matcher"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94"
+dependencies = [
+ "thread_local",
+]
+
+[[package]]
+name = "fxhash"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
+dependencies = [
+ "byteorder",
+]
+
+[[package]]
+name = "generic-array"
+version = "0.14.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+dependencies = [
+ "typenum",
+ "version_check",
+]
+
+[[package]]
+name = "gethostname"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "git2"
+version = "0.18.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "232e6a7bfe35766bf715e55a88b39a700596c0ccfd88cd3680b4cdb40d66ef70"
+dependencies = [
+ "bitflags 2.5.0",
+ "libc",
+ "libgit2-sys",
+ "log",
+ "openssl-probe",
+ "openssl-sys",
+ "url",
+]
+
+[[package]]
+name = "globset"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
+dependencies = [
+ "aho-corasick",
+ "bstr",
+ "log",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "handlebars"
+version = "4.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225"
+dependencies = [
+ "log",
+ "pest",
+ "pest_derive",
+ "serde",
+ "serde_json",
+ "thiserror",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.14.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
+
+[[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
+name = "home"
+version = "0.5.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "idna"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "ignore"
+version = "0.4.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1"
+dependencies = [
+ "crossbeam-deque",
+ "globset",
+ "log",
+ "memchr",
+ "regex-automata",
+ "same-file",
+ "walkdir",
+ "winapi-util",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
+dependencies = [
+ "equivalent",
+ "hashbrown",
+]
+
+[[package]]
+name = "indicatif"
+version = "0.17.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3"
+dependencies = [
+ "console",
+ "instant",
+ "number_prefix",
+ "portable-atomic",
+ "unicode-width",
+]
+
+[[package]]
+name = "inquire"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fddf93031af70e75410a2511ec04d49e758ed2f26dad3404a934e0fb45cc12a"
+dependencies = [
+ "bitflags 2.5.0",
+ "crossterm",
+ "dyn-clone",
+ "fuzzy-matcher",
+ "fxhash",
+ "newline-converter",
+ "once_cell",
+ "unicode-segmentation",
+ "unicode-width",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "is_terminal_polyfill"
+version = "1.70.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800"
+
+[[package]]
+name = "itoa"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
+
+[[package]]
+name = "jobserver"
+version = "0.1.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "jwalk"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2735847566356cd2179a2a38264839308f7079fa96e6bd5a42d740460e003c56"
+dependencies = [
+ "crossbeam",
+ "rayon",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libc"
+version = "0.2.155"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
+
+[[package]]
+name = "libgit2-sys"
+version = "0.16.2+1.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee4126d8b4ee5c9d9ea891dd875cfdc1e9d0950437179104b183d7d8a74d24e8"
+dependencies = [
+ "cc",
+ "libc",
+ "libssh2-sys",
+ "libz-sys",
+ "openssl-sys",
+ "pkg-config",
+]
+
+[[package]]
+name = "libssh2-sys"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee"
+dependencies = [
+ "cc",
+ "libc",
+ "libz-sys",
+ "openssl-sys",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "libz-sys"
+version = "1.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c15da26e5af7e25c90b37a2d75cdbf940cf4a55316de9d84c679c9b8bfabf82e"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
+
+[[package]]
+name = "lock_api"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
+
+[[package]]
+name = "malloc_buf"
+version = "0.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memchr"
+version = "2.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
+
+[[package]]
+name = "memoffset"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
+name = "mio"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
+dependencies = [
+ "libc",
+ "log",
+ "wasi",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "newline-converter"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "47b6b097ecb1cbfed438542d16e84fd7ad9b0c76c8a65b7f9039212a3d14dc7f"
+dependencies = [
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "nix"
+version = "0.24.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069"
+dependencies = [
+ "bitflags 1.3.2",
+ "cfg-if",
+ "libc",
+ "memoffset",
+]
+
+[[package]]
+name = "nom"
+version = "7.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+dependencies = [
+ "memchr",
+ "minimal-lexical",
+]
+
+[[package]]
+name = "number_prefix"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
+
+[[package]]
+name = "objc"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
+dependencies = [
+ "malloc_buf",
+]
+
+[[package]]
+name = "objc-foundation"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
+dependencies = [
+ "block",
+ "objc",
+ "objc_id",
+]
+
+[[package]]
+name = "objc_id"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
+dependencies = [
+ "objc",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.102"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "os_pipe"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29d73ba8daf8fac13b0501d1abeddcfe21ba7401ada61a819144b6c2a4f32209"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "percent-encoding"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+
+[[package]]
+name = "pest"
+version = "2.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8"
+dependencies = [
+ "memchr",
+ "thiserror",
+ "ucd-trie",
+]
+
+[[package]]
+name = "pest_derive"
+version = "2.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459"
+dependencies = [
+ "pest",
+ "pest_generator",
+]
+
+[[package]]
+name = "pest_generator"
+version = "2.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687"
+dependencies = [
+ "pest",
+ "pest_meta",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "pest_meta"
+version = "2.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd"
+dependencies = [
+ "once_cell",
+ "pest",
+ "sha2",
+]
+
+[[package]]
+name = "petgraph"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db"
+dependencies = [
+ "fixedbitset",
+ "indexmap",
+]
+
+[[package]]
+name = "pkg-config"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+
+[[package]]
+name = "portable-atomic"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.85"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rayon"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e"
+dependencies = [
+ "bitflags 2.5.0",
+]
+
+[[package]]
+name = "regex"
+version = "1.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+[[package]]
+name = "rustix"
+version = "0.38.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
+dependencies = [
+ "bitflags 2.5.0",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "ryu"
+version = "1.0.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
+
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "serde"
+version = "1.0.203"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.203"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.117"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "sha2"
+version = "0.10.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "signal-hook"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
+dependencies = [
+ "libc",
+ "signal-hook-registry",
+]
+
+[[package]]
+name = "signal-hook-mio"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af"
+dependencies = [
+ "libc",
+ "mio",
+ "signal-hook",
+]
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
+
+[[package]]
+name = "str-buf"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0"
+
+[[package]]
+name = "strsim"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.66"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "rustix",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "termtree"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
+
+[[package]]
+name = "thiserror"
+version = "1.0.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+]
+
+[[package]]
+name = "tiktoken-rs"
+version = "0.5.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c314e7ce51440f9e8f5a497394682a57b7c323d0f4d0a6b1b13c429056e0e234"
+dependencies = [
+ "anyhow",
+ "base64",
+ "bstr",
+ "fancy-regex",
+ "lazy_static",
+ "parking_lot",
+ "rustc-hash",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "tree_magic_mini"
+version = "3.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "469a727cac55b41448315cc10427c069c618ac59bb6a4480283fcd811749bdc2"
+dependencies = [
+ "fnv",
+ "home",
+ "memchr",
+ "nom",
+ "once_cell",
+ "petgraph",
+]
+
+[[package]]
+name = "typenum"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+[[package]]
+name = "ucd-trie"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
+
+[[package]]
+name = "unicode-width"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d"
+
+[[package]]
+name = "url"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+]
+
+[[package]]
+name = "utf8parse"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "walkdir"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
+dependencies = [
+ "same-file",
+ "winapi-util",
+]
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wayland-client"
+version = "0.29.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715"
+dependencies = [
+ "bitflags 1.3.2",
+ "downcast-rs",
+ "libc",
+ "nix",
+ "wayland-commons",
+ "wayland-scanner",
+ "wayland-sys",
+]
+
+[[package]]
+name = "wayland-commons"
+version = "0.29.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902"
+dependencies = [
+ "nix",
+ "once_cell",
+ "smallvec",
+ "wayland-sys",
+]
+
+[[package]]
+name = "wayland-protocols"
+version = "0.29.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6"
+dependencies = [
+ "bitflags 1.3.2",
+ "wayland-client",
+ "wayland-commons",
+ "wayland-scanner",
+]
+
+[[package]]
+name = "wayland-scanner"
+version = "0.29.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "xml-rs",
+]
+
+[[package]]
+name = "wayland-sys"
+version = "0.29.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4"
+dependencies = [
+ "pkg-config",
+]
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "winapi-wsapoll"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1eafc5f679c576995526e81635d0cf9695841736712b4e892f87abbe6fed3f28"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
+
+[[package]]
+name = "wl-clipboard-rs"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "981a303dfbb75d659f6612d05a14b2e363c103d24f676a2d44a00d18507a1ad9"
+dependencies = [
+ "derive-new",
+ "libc",
+ "log",
+ "nix",
+ "os_pipe",
+ "tempfile",
+ "thiserror",
+ "tree_magic_mini",
+ "wayland-client",
+ "wayland-protocols",
+]
+
+[[package]]
+name = "x11-clipboard"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "980b9aa9226c3b7de8e2adb11bf20124327c054e0e5812d2aac0b5b5a87e7464"
+dependencies = [
+ "x11rb",
+]
+
+[[package]]
+name = "x11rb"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "592b4883219f345e712b3209c62654ebda0bb50887f330cbd018d0f654bfd507"
+dependencies = [
+ "gethostname",
+ "nix",
+ "winapi",
+ "winapi-wsapoll",
+ "x11rb-protocol",
+]
+
+[[package]]
+name = "x11rb-protocol"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56b245751c0ac9db0e006dc812031482784e434630205a93c73cfefcaabeac67"
+dependencies = [
+ "nix",
+]
+
+[[package]]
+name = "xml-rs"
+version = "0.8.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193"
diff --git a/pkgs/by-name/co/code2prompt/package.nix b/pkgs/by-name/co/code2prompt/package.nix
new file mode 100644
index 0000000000000..f951b2b1e294b
--- /dev/null
+++ b/pkgs/by-name/co/code2prompt/package.nix
@@ -0,0 +1,47 @@
+{
+  lib,
+  fetchFromGitHub,
+  rustPlatform,
+  pkg-config,
+  openssl,
+  stdenv,
+  darwin,
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "code2prompt";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "mufeedvh";
+    repo = "code2prompt";
+    rev = "v${version}";
+    hash = "sha256-KZqh0Vq4Mn56PhUO1JUzVpNBAGOZqUAsj31Cj5K+Lyk=";
+  };
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+  };
+
+  postPatch = ''
+    # src is missing Cargo.lock
+    ln -s ${./Cargo.lock} Cargo.lock
+  '';
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs =
+    [ openssl ]
+    ++ lib.optionals stdenv.isDarwin [
+      darwin.apple_sdk.frameworks.Security
+      darwin.apple_sdk.frameworks.AppKit
+    ];
+
+  meta = {
+    description = "A CLI tool that converts your codebase into a single LLM prompt with a source tree, prompt templating, and token counting";
+    homepage = "https://github.com/mufeedvh/code2prompt";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ heisfer ];
+    mainProgram = "code2prompt";
+  };
+}
diff --git a/pkgs/by-name/co/codeberg-cli/package.nix b/pkgs/by-name/co/codeberg-cli/package.nix
index 074d7bc2c8eb6..d058e72b4e802 100644
--- a/pkgs/by-name/co/codeberg-cli/package.nix
+++ b/pkgs/by-name/co/codeberg-cli/package.nix
@@ -35,6 +35,7 @@ rustPlatform.buildRustPackage rec {
       [
         d.CoreServices
         d.Security
+        d.SystemConfiguration
       ]
     );
 
diff --git a/pkgs/by-name/co/codefresh/package.nix b/pkgs/by-name/co/codefresh/package.nix
index 095dd753cf6c4..604ca4a83e952 100644
--- a/pkgs/by-name/co/codefresh/package.nix
+++ b/pkgs/by-name/co/codefresh/package.nix
@@ -27,7 +27,7 @@ mkYarnPackage rec {
 
   meta = {
     changelog = "https://github.com/codefresh-io/cli/releases/tag/v${version}";
-    description = "Codefresh CLI tool to interact with Codefresh services.";
+    description = "Codefresh CLI tool to interact with Codefresh services";
     homepage = "https://github.com/codefresh-io/cli";
     license = lib.licenses.mit;
     mainProgram = "codefresh";
diff --git a/pkgs/by-name/co/codeium/package.nix b/pkgs/by-name/co/codeium/package.nix
index 8eda0b1f4275f..bac7f7d8ce2a6 100644
--- a/pkgs/by-name/co/codeium/package.nix
+++ b/pkgs/by-name/co/codeium/package.nix
@@ -13,10 +13,10 @@ let
   }.${system} or throwSystem;
 
   hash = {
-    x86_64-linux = "sha256-zyKC/6BNCgMHSWmoGgt+nSsm91xUZw59giJW5L9e0ko=";
-    aarch64-linux = "sha256-WCm969+gHZ5RisaBnPcE+4FXmACzNWE+uSDf42mKFP8=";
-    x86_64-darwin = "sha256-OTuh6Sgxam2AluI+wqo1x7VEq/9G8WLWf5gvMtMhIsg=";
-    aarch64-darwin = "sha256-b0iPgQGODEQi8pC9+kLlS9HgS29lTFQlfVsIoC5GVaM=";
+    x86_64-linux = "sha256-38ESKfQXHqHdP+vu/ynCByIPYHcvt8w8SJ/NTmCpm8o=";
+    aarch64-linux = "sha256-W00MyiBPQa8vClIjDynDgYEeigjWtBuDfNzZKMEzifg=";
+    x86_64-darwin = "sha256-CkKuEuYfq/vUv8uc4mhKpjqAfGM/B8goJ5EPAsA1gnI=";
+    aarch64-darwin = "sha256-aX70EfrRzEz2DJIcSEXrd0T0ptHzie21CQx4g6dU7g0=";
   }.${system} or throwSystem;
 
   bin = "$out/bin/codeium_language_server";
@@ -24,7 +24,7 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "codeium";
-  version = "1.8.42";
+  version = "1.8.61";
   src = fetchurl {
     name = "${finalAttrs.pname}-${finalAttrs.version}.gz";
     url = "https://github.com/Exafunction/codeium/releases/download/language-server-v${finalAttrs.version}/language_server_${plat}.gz";
diff --git a/pkgs/by-name/co/codespelunker/package.nix b/pkgs/by-name/co/codespelunker/package.nix
index 28d031d2b0360..185fcf1e60e31 100644
--- a/pkgs/by-name/co/codespelunker/package.nix
+++ b/pkgs/by-name/co/codespelunker/package.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   subPackages = [ "." ];
 
   meta = with lib; {
-    description = "A command code search tool";
+    description = "Command code search tool";
     homepage = "https://github.com/boyter/cs";
     license = with licenses; [ mit unlicense ];
     maintainers = with maintainers; [ viraptor ];
diff --git a/pkgs/by-name/co/codux/package.nix b/pkgs/by-name/co/codux/package.nix
index 544cc81bbfb64..c9c7588470e65 100644
--- a/pkgs/by-name/co/codux/package.nix
+++ b/pkgs/by-name/co/codux/package.nix
@@ -5,11 +5,11 @@
 
 let
   pname = "codux";
-  version = "15.27.0";
+  version = "15.29.0";
 
   src = fetchurl {
     url = "https://github.com/wixplosives/codux-versions/releases/download/${version}/Codux-${version}.x86_64.AppImage";
-    sha256 = "sha256-FsTGBms98jZZP0QSJwjoGMyuK4Pgcpl1htrDSdp52lU=";
+    sha256 = "sha256-BvDrhs37XGCQdQV2yQJZXlnNWVArFCMLfFlXuXz9ea0=";
   };
 
   appimageContents = appimageTools.extractType2 { inherit pname version src; };
@@ -25,7 +25,7 @@ appimageTools.wrapType2 rec {
   '';
 
   meta = with lib; {
-    description = "A visual IDE for React";
+    description = "Visual IDE for React";
     homepage = "https://www.codux.com";
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/by-name/co/coinmp/0001-change-more-reinterpret_cast-from-NULL-to-C-cast-see.patch b/pkgs/by-name/co/coinmp/0001-change-more-reinterpret_cast-from-NULL-to-C-cast-see.patch
new file mode 100644
index 0000000000000..fccba169df490
--- /dev/null
+++ b/pkgs/by-name/co/coinmp/0001-change-more-reinterpret_cast-from-NULL-to-C-cast-see.patch
@@ -0,0 +1,95 @@
+From 0259f2b936ee0d9288ff39c509c69a66f5b13b80 Mon Sep 17 00:00:00 2001
+From: Stefan Vigerske <svigerske@gams.com>
+Date: Mon, 11 Mar 2019 16:34:25 +0000
+Subject: [PATCH 1/2] change more reinterpret_cast from NULL to C-cast, see
+ also #93
+
+---
+ Clp/src/AbcSimplex.cpp | 48 +++++++++++++++++++++---------------------
+ Clp/src/ClpModel.cpp   |  2 +-
+ 2 files changed, 25 insertions(+), 25 deletions(-)
+
+diff --git a/Clp/src/AbcSimplex.cpp b/Clp/src/AbcSimplex.cpp
+index 0eacd91e..1715e6d8 100644
+--- a/Clp/src/AbcSimplex.cpp
++++ b/Clp/src/AbcSimplex.cpp
+@@ -368,19 +368,19 @@ AbcSimplex::gutsOfInitialize(int numberRows,int numberColumns,bool doMore)
+     // say Steepest pricing
+     abcDualRowPivot_ = new AbcDualRowSteepest();
+     abcPrimalColumnPivot_ = new AbcPrimalColumnSteepest();
+-    internalStatus_ = newArray(reinterpret_cast<unsigned char *>(NULL),
++    internalStatus_ = newArray((unsigned char *)NULL,
+ 			       sizeArray+maximumNumberTotal_);
+-    abcLower_ = newArray(reinterpret_cast<double *>(NULL),sizeArray);
+-    abcUpper_ = newArray(reinterpret_cast<double *>(NULL),sizeArray);
+-    abcCost_ = newArray(reinterpret_cast<double *>(NULL),sizeArray+maximumNumberTotal_);
+-    abcDj_ = newArray(reinterpret_cast<double *>(NULL),sizeArray);
+-    abcSolution_ = newArray(reinterpret_cast<double *>(NULL),sizeArray+maximumNumberTotal_);
+-    //fromExternal_ = newArray(reinterpret_cast<int *>(NULL),sizeArray);
+-    //toExternal_ = newArray(reinterpret_cast<int *>(NULL),sizeArray);
+-    scaleFromExternal_ = newArray(reinterpret_cast<double *>(NULL),sizeArray);
+-    offset_ = newArray(reinterpret_cast<double *>(NULL),sizeArray);
+-    abcPerturbation_ = newArray(reinterpret_cast<double *>(NULL),sizeArray);
+-    abcPivotVariable_ = newArray(reinterpret_cast<int *>(NULL),maximumAbcNumberRows_);
++    abcLower_ = newArray((double *)NULL,sizeArray);
++    abcUpper_ = newArray((double *)NULL,sizeArray);
++    abcCost_ = newArray((double *)NULL,sizeArray+maximumNumberTotal_);
++    abcDj_ = newArray((double *)NULL,sizeArray);
++    abcSolution_ = newArray((double *)NULL,sizeArray+maximumNumberTotal_);
++    //fromExternal_ = newArray((int *)NULL,sizeArray);
++    //toExternal_ = newArray((int *)NULL,sizeArray);
++    scaleFromExternal_ = newArray((double *)NULL,sizeArray);
++    offset_ = newArray((double *)NULL,sizeArray);
++    abcPerturbation_ = newArray((double *)NULL,sizeArray);
++    abcPivotVariable_ = newArray((int *)NULL,maximumAbcNumberRows_);
+     // Fill perturbation array
+     setupPointers(maximumAbcNumberRows_,maximumAbcNumberColumns_);
+     fillPerturbation(0,maximumNumberTotal_);
+@@ -554,19 +554,19 @@ AbcSimplex::createSubProblem(int numberColumns,const int * whichColumn)
+   subProblem->maximumNumberTotal_= maximumAbcNumberRows_+numberColumns;
+   subProblem->numberTotalWithoutFixed_= subProblem->numberTotal_;
+   int sizeArray=2*subProblem->maximumNumberTotal_+maximumAbcNumberRows_;
+-  subProblem->internalStatus_ = newArray(reinterpret_cast<unsigned char *>(NULL),
++  subProblem->internalStatus_ = newArray((unsigned char *)NULL,
+ 					 sizeArray+subProblem->maximumNumberTotal_);
+-  subProblem->abcLower_ = newArray(reinterpret_cast<double *>(NULL),sizeArray);
+-  subProblem->abcUpper_ = newArray(reinterpret_cast<double *>(NULL),sizeArray);
+-  subProblem->abcCost_ = newArray(reinterpret_cast<double *>(NULL),sizeArray+subProblem->maximumNumberTotal_);
+-  subProblem->abcDj_ = newArray(reinterpret_cast<double *>(NULL),sizeArray);
+-  subProblem->abcSolution_ = newArray(reinterpret_cast<double *>(NULL),sizeArray+subProblem->maximumNumberTotal_);
+-  //fromExternal_ = newArray(reinterpret_cast<int *>(NULL),sizeArray);
+-  //toExternal_ = newArray(reinterpret_cast<int *>(NULL),sizeArray);
+-  subProblem->scaleFromExternal_ = newArray(reinterpret_cast<double *>(NULL),sizeArray);
+-  subProblem->offset_ = newArray(reinterpret_cast<double *>(NULL),sizeArray);
+-  subProblem->abcPerturbation_ = newArray(reinterpret_cast<double *>(NULL),sizeArray);
+-  subProblem->abcPivotVariable_ = newArray(reinterpret_cast<int *>(NULL),maximumAbcNumberRows_);
++  subProblem->abcLower_ = newArray((double *)NULL,sizeArray);
++  subProblem->abcUpper_ = newArray((double *)NULL,sizeArray);
++  subProblem->abcCost_ = newArray((double *)NULL,sizeArray+subProblem->maximumNumberTotal_);
++  subProblem->abcDj_ = newArray((double *)NULL,sizeArray);
++  subProblem->abcSolution_ = newArray((double *)NULL,sizeArray+subProblem->maximumNumberTotal_);
++  //fromExternal_ = newArray((int *)NULL,sizeArray);
++  //toExternal_ = newArray((int *)NULL,sizeArray);
++  subProblem->scaleFromExternal_ = newArray((double *)NULL,sizeArray);
++  subProblem->offset_ = newArray((double *)NULL,sizeArray);
++  subProblem->abcPerturbation_ = newArray((double *)NULL,sizeArray);
++  subProblem->abcPivotVariable_ = newArray((int *)NULL,maximumAbcNumberRows_);
+   subProblem->setupPointers(maximumAbcNumberRows_,numberColumns);
+   // could use arrays - but for now be safe
+   int * backward = new int [numberFullColumns+numberRows_];
+diff --git a/Clp/src/ClpModel.cpp b/Clp/src/ClpModel.cpp
+index 1fc905c4..83aa3b63 100644
+--- a/Clp/src/ClpModel.cpp
++++ b/Clp/src/ClpModel.cpp
+@@ -3845,7 +3845,7 @@ ClpModel::writeMps(const char *filename,
+      writer.setMpsData(*(matrix_->getPackedMatrix()), COIN_DBL_MAX,
+                        getColLower(), getColUpper(),
+                        objective,
+-                       reinterpret_cast<const char*> (NULL) /*integrality*/,
++                       (const char*)NULL /*integrality*/,
+                        getRowLower(), getRowUpper(),
+                        columnNames, rowNames);
+      // Pass in array saying if each variable integer
+-- 
+2.37.3
+
diff --git a/pkgs/by-name/co/coinmp/0001-use-static_cast-for-static-cast-fixes-319.patch b/pkgs/by-name/co/coinmp/0001-use-static_cast-for-static-cast-fixes-319.patch
new file mode 100644
index 0000000000000..3f1790bd50c39
--- /dev/null
+++ b/pkgs/by-name/co/coinmp/0001-use-static_cast-for-static-cast-fixes-319.patch
@@ -0,0 +1,25 @@
+From b36a5bd502fbf6b8ad31b6bc35c7bab4aff24313 Mon Sep 17 00:00:00 2001
+From: Stefan Vigerske <svigerske@gams.com>
+Date: Mon, 20 Jul 2020 18:39:20 +0200
+Subject: [PATCH] use static_cast for static cast, fixes #319
+
+---
+ Cbc/src/CbcModel.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Cbc/src/CbcModel.cpp b/Cbc/src/CbcModel.cpp
+index 8603942b..239bf0b4 100644
+--- a/Cbc/src/CbcModel.cpp
++++ b/Cbc/src/CbcModel.cpp
+@@ -5357,7 +5357,7 @@ void CbcModel::branchAndBound(int doStatistics)
+         OsiClpSolverInterface * clpSolver
+         = dynamic_cast<OsiClpSolverInterface *> (solver_);
+         if (clpSolver)
+-            clpSolver->setFakeObjective(reinterpret_cast<double *> (NULL));
++            clpSolver->setFakeObjective(static_cast<double *> (NULL));
+     }
+ #endif
+     moreSpecialOptions_ = saveMoreSpecialOptions;
+-- 
+2.37.3
+
diff --git a/pkgs/by-name/co/coinmp/0002-change-reinterpret_cast-of-NULL-to-C-style-case-fixe.patch b/pkgs/by-name/co/coinmp/0002-change-reinterpret_cast-of-NULL-to-C-style-case-fixe.patch
new file mode 100644
index 0000000000000..b1ca1806b5a9c
--- /dev/null
+++ b/pkgs/by-name/co/coinmp/0002-change-reinterpret_cast-of-NULL-to-C-style-case-fixe.patch
@@ -0,0 +1,26 @@
+From 4571de031e528bc145590d6a1be5ceb87bd8cdb5 Mon Sep 17 00:00:00 2001
+From: Stefan Vigerske <svigerske@gams.com>
+Date: Mon, 11 Mar 2019 16:29:20 +0000
+Subject: [PATCH 2/2] change reinterpret_cast of NULL to C-style case, fixes
+ #93
+
+---
+ Clp/src/OsiClp/OsiClpSolverInterface.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Clp/src/OsiClp/OsiClpSolverInterface.cpp b/Clp/src/OsiClp/OsiClpSolverInterface.cpp
+index 55dd4dcd..a0217d42 100644
+--- a/Clp/src/OsiClp/OsiClpSolverInterface.cpp
++++ b/Clp/src/OsiClp/OsiClpSolverInterface.cpp
+@@ -1448,7 +1448,7 @@ OsiClpSolverInterface::setupForRepeatedUse(int senseOfAdventure, int printOut)
+   if (stopPrinting) {
+     CoinMessages * messagesPointer = modelPtr_->messagesPointer();
+     // won't even build messages 
+-    messagesPointer->setDetailMessages(100,10000,reinterpret_cast<int *> (NULL));
++    messagesPointer->setDetailMessages(100,10000,(int*)NULL);
+   }
+ #endif
+ }
+-- 
+2.37.3
+
diff --git a/pkgs/by-name/co/coinmp/package.nix b/pkgs/by-name/co/coinmp/package.nix
new file mode 100644
index 0000000000000..8c15c5ca62c34
--- /dev/null
+++ b/pkgs/by-name/co/coinmp/package.nix
@@ -0,0 +1,42 @@
+{ lib, stdenv, fetchurl, fetchpatch }:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "coinmp";
+  version = "1.8.4";
+
+  src = fetchurl {
+    url = "https://www.coin-or.org/download/source/CoinMP/CoinMP-${finalAttrs.version}.tgz";
+    sha256 = "13d3j1sdcjzpijp4qks3n0zibk649ac3hhv88hkk8ffxrc6gnn9l";
+  };
+
+  patches = [
+    # backport build fixes for pkgsMusl.CoinMP
+    (fetchpatch {
+      url = "https://github.com/coin-or/Cgl/commit/57d8c71cd50dc27a89eaeb4672499bca55f1fd72.patch";
+      extraPrefix = "Cgl/";
+      stripLen = 1;
+      hash = "sha256-NdwXpIL1w6kHVfhBFscTlpriQOfUXx860/4x7pK+698=";
+    })
+    # https://github.com/coin-or/Clp/commit/b637e1d633425ae21ec041bf7f9e06f56b741de0
+    ./0001-change-more-reinterpret_cast-from-NULL-to-C-cast-see.patch
+    # https://github.com/coin-or/Clp/commit/e749fe6b11a90006d744af2ca2691220862e3a59
+    ./0002-change-reinterpret_cast-of-NULL-to-C-style-case-fixe.patch
+    # https://github.com/coin-or/Cbc/commit/584fd12fba6a562d49864f44bedd13ee32d06999
+    ./0001-use-static_cast-for-static-cast-fixes-319.patch
+  ];
+
+  enableParallelBuilding = true;
+
+  env = lib.optionalAttrs stdenv.cc.isClang {
+    CXXFLAGS = "-std=c++14";
+  };
+
+  hardeningDisable = [ "format" ];
+
+  meta = with lib; {
+    homepage = "https://projects.coin-or.org/CoinMP/";
+    description = "COIN-OR lightweight API for COIN-OR libraries CLP, CBC, and CGL";
+    platforms = platforms.unix;
+    license = licenses.epl10;
+  };
+})
diff --git a/pkgs/by-name/co/colorgrind/package.nix b/pkgs/by-name/co/colorgrind/package.nix
new file mode 100644
index 0000000000000..1f89ad865583a
--- /dev/null
+++ b/pkgs/by-name/co/colorgrind/package.nix
@@ -0,0 +1,33 @@
+{
+  lib,
+  stdenvNoCC,
+  fetchFromGitHub,
+  perl
+}:
+stdenvNoCC.mkDerivation {
+  pname = "colorgrind";
+  version = "0-unstable-2016-07-05";
+
+  src = fetchFromGitHub {
+    owner = "renatocf";
+    repo = "colorgrind";
+    rev = "6b68367c9713075a40c6719cb24217e9437ffa74";
+    hash = "sha256-KVR2IeoAkaTXDjEndPvrKUzOf4Zkha20vcH4TTJqXfM=";
+  };
+
+  buildInputs = [ perl ];
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm755 -t $out/bin colorgrind
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Perl wrapper for Valgrind with ANSI escape code colored output";
+    homepage = "http://renatocf.github.io/colorgrind/";
+    license = with lib.licenses; [ mit ];
+    maintainers = with lib.maintainers; [ pluiedev ];
+    mainProgram = "colorgrind";
+  };
+}
diff --git a/pkgs/by-name/co/comet-gog/package.nix b/pkgs/by-name/co/comet-gog/package.nix
new file mode 100644
index 0000000000000..61552a8d5b00f
--- /dev/null
+++ b/pkgs/by-name/co/comet-gog/package.nix
@@ -0,0 +1,46 @@
+{
+  lib,
+  stdenv,
+  rustPlatform,
+  fetchFromGitHub,
+  protobuf,
+  darwin,
+}:
+
+let
+  inherit (darwin.apple_sdk.frameworks) CoreFoundation SystemConfiguration;
+in
+rustPlatform.buildRustPackage {
+  pname = "comet-gog";
+  version = "0-unstable-2024-05-25";
+
+  src = fetchFromGitHub {
+    owner = "imLinguin";
+    repo = "comet";
+    rev = "378ec2abdc2498e7c0c12aa50b71f6d94c3e8e3c";
+    hash = "sha256-r7ZPpJLy2fZsyNijl0+uYWQN941TCbv+Guv3wzD83IQ=";
+    fetchSubmodules = true;
+  };
+
+  cargoHash = "sha256-dXNAGMVayzgT96ETrph9eCbQv28EK/OOxIRV8ewpVvs=";
+
+  # error: linker `aarch64-linux-gnu-gcc` not found
+  postPatch = ''
+    rm .cargo/config.toml
+  '';
+
+  env.PROTOC = lib.getExe' protobuf "protoc";
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    CoreFoundation
+    SystemConfiguration
+  ];
+
+  meta = {
+    description = "Open Source implementation of GOG Galaxy's Communication Service";
+    homepage = "https://github.com/imLinguin/comet";
+    license = lib.licenses.gpl3Plus;
+    mainProgram = "comet";
+    maintainers = with lib.maintainers; [ tomasajt ];
+  };
+}
diff --git a/pkgs/by-name/co/comic-mandown/package.nix b/pkgs/by-name/co/comic-mandown/package.nix
index 1e08eb28cb451..15b81cc5e83e7 100644
--- a/pkgs/by-name/co/comic-mandown/package.nix
+++ b/pkgs/by-name/co/comic-mandown/package.nix
@@ -1,6 +1,5 @@
 { lib
 , python3Packages
-, fetchFromGitHub
 
 , withGUI ? true
 }:
diff --git a/pkgs/by-name/co/commafeed/package.nix b/pkgs/by-name/co/commafeed/package.nix
index cc203468feead..369a5801ff488 100644
--- a/pkgs/by-name/co/commafeed/package.nix
+++ b/pkgs/by-name/co/commafeed/package.nix
@@ -56,7 +56,6 @@ maven.buildMavenPackage {
     "-Dskip.npm"
     "-Dspotless.check.skip"
     "-Dmaven.gitcommitid.skip"
-    "-DskipTests"
   ];
 
   nativeBuildInputs = [ makeWrapper ];
@@ -71,6 +70,8 @@ maven.buildMavenPackage {
     runHook postConfigure
   '';
 
+  doCheck = false;
+
   installPhase = ''
     runHook preInstall
 
diff --git a/pkgs/by-name/co/commitlint-rs/package.nix b/pkgs/by-name/co/commitlint-rs/package.nix
new file mode 100644
index 0000000000000..9b31e6cfd3094
--- /dev/null
+++ b/pkgs/by-name/co/commitlint-rs/package.nix
@@ -0,0 +1,41 @@
+{
+  fetchFromGitHub,
+  lib,
+  nix-update-script,
+  rustPlatform,
+  testers,
+  commitlint-rs,
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "commitlint-rs";
+  version = "0.1.11";
+
+  src = fetchFromGitHub {
+    owner = "KeisukeYamashita";
+    repo = "commitlint-rs";
+    rev = "v${version}";
+    hash = "sha256-FrYXEh75H0u1rE1YNDL/B1gMYMG43jPDJGUMv9y5/3g=";
+  };
+  cargoHash = "sha256-W6HkLCUoylgQQc2fFprmJeLH8KtpVUD4+BXWbNECVZ4=";
+
+  passthru = {
+    updateScript = nix-update-script { };
+    tests.version = testers.testVersion { package = commitlint-rs; };
+  };
+
+  meta = with lib; {
+    description = "Lint commit messages with conventional commit messages";
+    homepage = "https://keisukeyamashita.github.io/commitlint-rs";
+    changelog = "https://github.com/KeisukeYamashita/commitlint-rs/releases/tag/${src.rev}";
+    license = with licenses; [
+      mit
+      asl20
+    ];
+    mainProgram = "commitlint";
+    platforms = with platforms; unix ++ windows;
+    maintainers = with maintainers; [
+      croissong
+      getchoo
+    ];
+  };
+}
diff --git a/pkgs/by-name/co/composefs/package.nix b/pkgs/by-name/co/composefs/package.nix
index 6d0b6b9319b97..1157d749daa31 100644
--- a/pkgs/by-name/co/composefs/package.nix
+++ b/pkgs/by-name/co/composefs/package.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 
 , autoreconfHook
 , go-md2man
@@ -24,18 +25,27 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "composefs";
-  version = "1.0.3";
+  version = "1.0.4";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "composefs";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-YmredtZZKMjzJW/kxiTUmdgO/1iPIKzJsuJz8DeEdGM=";
+    hash = "sha256-ekUFLZGWTsiJZFv3nHoxuV057zoOtWBIkt+VdtzlaU4=";
   };
 
   strictDeps = true;
   outputs = [ "out" "lib" "dev" ];
 
+  patches = [
+    # fixes composefs-info tests, remove in next release
+    # https://github.com/containers/composefs/pull/291
+    (fetchpatch {
+      url = "https://github.com/containers/composefs/commit/f7465b3a57935d96451b392b07aa3a1dafb56e7b.patch";
+      hash = "sha256-OO3IfqLf3dQGjEgKx3Bo630KALmLAWwgdACuyZm2Ujc=";
+    })
+  ];
+
   postPatch = lib.optionalString installExperimentalTools ''
     sed -i "s/noinst_PROGRAMS +\?=/bin_PROGRAMS +=/g" tools/Makefile.am
   '';
@@ -64,8 +74,8 @@ stdenv.mkDerivation (finalAttrs: {
   preCheck = ''
     patchShebangs --build tests/*dir tests/*.sh
     substituteInPlace tests/*.sh \
-      --replace " /tmp" " $TMPDIR" \
-      --replace " /var/tmp" " $TMPDIR"
+      --replace-quiet " /tmp" " $TMPDIR" \
+      --replace-quiet " /var/tmp" " $TMPDIR"
   '';
 
   passthru = {
@@ -78,7 +88,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = {
-    description = "A file system for mounting container images";
+    description = "File system for mounting container images";
     homepage = "https://github.com/containers/composefs";
     changelog = "https://github.com/containers/composefs/releases/tag/v${finalAttrs.version}";
     license = with lib.licenses; [ gpl3Plus lgpl21Plus ];
diff --git a/pkgs/by-name/co/composer-require-checker/package.nix b/pkgs/by-name/co/composer-require-checker/package.nix
index f32529607c19e..957cce3788984 100644
--- a/pkgs/by-name/co/composer-require-checker/package.nix
+++ b/pkgs/by-name/co/composer-require-checker/package.nix
@@ -18,7 +18,7 @@ php.buildComposerProject (finalAttrs: {
   vendorHash = "sha256-B5w5n2S/mTF7vpsLuHtf2DGR5aPBfO9QGmodYGXE+Cg=";
 
   meta = {
-    description = "A CLI tool to check whether a specific composer package uses imported symbols that aren't part of its direct composer dependencies";
+    description = "CLI tool to check whether a specific composer package uses imported symbols that aren't part of its direct composer dependencies";
     homepage = "https://github.com/maglnet/ComposerRequireChecker/";
     changelog = "https://github.com/maglnet/ComposerRequireChecker/releases/tag/${finalAttrs.version}";
     license = with lib.licenses; [ mit ];
diff --git a/pkgs/by-name/co/connman/package.nix b/pkgs/by-name/co/connman/package.nix
index a90fb1ffd727a..238e84c091698 100644
--- a/pkgs/by-name/co/connman/package.nix
+++ b/pkgs/by-name/co/connman/package.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
 , autoreconfHook
 , dbus
 , file
@@ -166,7 +165,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests.connman = nixosTests.connman;
 
   meta = {
-    description = "A daemon for managing internet connections";
+    description = "Daemon for managing internet connections";
     homepage = "https://git.kernel.org/pub/scm/network/connman/connman.git/about/";
     license = lib.licenses.gpl2Only;
     mainProgram = "connmanctl";
diff --git a/pkgs/by-name/co/connman_dmenu/package.nix b/pkgs/by-name/co/connman_dmenu/package.nix
index 0a193493b71a5..6c4d3dd26ec0e 100644
--- a/pkgs/by-name/co/connman_dmenu/package.nix
+++ b/pkgs/by-name/co/connman_dmenu/package.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "A dmenu wrapper for connmann";
+    description = "Dmenu wrapper for connmann";
     mainProgram = "connman_dmenu";
     homepage = "https://github.com/march-linux/connman_dmenu";
     license = lib.licenses.free;
diff --git a/pkgs/by-name/co/conpass/package.nix b/pkgs/by-name/co/conpass/package.nix
new file mode 100644
index 0000000000000..d8870a907541f
--- /dev/null
+++ b/pkgs/by-name/co/conpass/package.nix
@@ -0,0 +1,42 @@
+{
+  lib,
+  python3,
+  fetchFromGitHub,
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "conpass";
+  version = "0.1.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "login-securite";
+    repo = "conpass";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-7o4aQ6qpaWimWqgFO35Wht7mQsdVezoPTm7hp54FWR8=";
+  };
+
+  build-system = with python3.pkgs; [
+    setuptools
+  ];
+
+  dependencies = with python3.pkgs; [
+    impacket
+    python-ldap
+    rich
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "conpass" ];
+
+  meta = with lib; {
+    description = "Continuous password spraying tool";
+    homepage = "https://github.com/login-securite/conpass";
+    changelog = "https://github.com/login-securite/conpass/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "conpass";
+  };
+}
diff --git a/pkgs/by-name/co/consul/package.nix b/pkgs/by-name/co/consul/package.nix
index edc3db672bd67..5dc8d88afe340 100644
--- a/pkgs/by-name/co/consul/package.nix
+++ b/pkgs/by-name/co/consul/package.nix
@@ -8,7 +8,7 @@
 
 buildGoModule rec {
   pname = "consul";
-  version = "1.18.2";
+  version = "1.19.0";
 
   # Note: Currently only release tags are supported, because they have the Consul UI
   # vendored. See
@@ -22,7 +22,7 @@ buildGoModule rec {
     owner = "hashicorp";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-9feeWsCAZKip+AYUJTCcqFOTfxsUFMzTRqHjo/Pptho=";
+    hash = "sha256-GO2BfdozsAo1r4iSyQdAEG8Tm6OkJhSUrH3bZ9lWuO8=";
   };
 
   # This corresponds to paths with package main - normally unneeded but consul
@@ -32,7 +32,7 @@ buildGoModule rec {
     "connect/certgen"
   ];
 
-  vendorHash = "sha256-bBc3qgPUOmR8c/sFyiskePKLKjHTQcWVTLY6esFIRTc=";
+  vendorHash = "sha256-h3eTCj/0FPiY/Dj4cMj9VqKBs28ArnTPjRIC3LT06j0=";
 
   doCheck = false;
 
diff --git a/pkgs/by-name/co/convco/package.nix b/pkgs/by-name/co/convco/package.nix
index 2883cb56e2cf6..59dc535099029 100644
--- a/pkgs/by-name/co/convco/package.nix
+++ b/pkgs/by-name/co/convco/package.nix
@@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ libiconv darwin.apple_sdk.frameworks.Security ];
 
   meta = with lib; {
-    description = "A Conventional commit cli";
+    description = "Conventional commit cli";
     mainProgram = "convco";
     homepage = "https://github.com/convco/convco";
     license = with licenses; [ mit ];
diff --git a/pkgs/by-name/co/cook-cli/package.nix b/pkgs/by-name/co/cook-cli/package.nix
index d78f23e15d530..fbebd0d7fb46f 100644
--- a/pkgs/by-name/co/cook-cli/package.nix
+++ b/pkgs/by-name/co/cook-cli/package.nix
@@ -48,7 +48,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/cooklang/cookcli/releases/tag/v${version}";
-    description = "A suite of tools to create shopping lists and maintain recipes";
+    description = "Suite of tools to create shopping lists and maintain recipes";
     homepage = "https://cooklang.org/";
     license = [ licenses.mit ];
     mainProgram = "cook";
diff --git a/pkgs/by-name/co/coost/package.nix b/pkgs/by-name/co/coost/package.nix
index 648d0f9f4db3a..667fc74dab69d 100644
--- a/pkgs/by-name/co/coost/package.nix
+++ b/pkgs/by-name/co/coost/package.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
-    description = "A tiny boost library in C++11";
+    description = "Tiny boost library in C++11";
     homepage = "https://github.com/idealvin/coost";
     license = licenses.mit;
     maintainers = [ maintainers.sigmanificient ];
diff --git a/pkgs/data/fonts/corefonts/no-op.conf b/pkgs/by-name/co/corefonts/no-op.conf
index 3f8a9b9b5444e..3f8a9b9b5444e 100644
--- a/pkgs/data/fonts/corefonts/no-op.conf
+++ b/pkgs/by-name/co/corefonts/no-op.conf
diff --git a/pkgs/data/fonts/corefonts/default.nix b/pkgs/by-name/co/corefonts/package.nix
index 059350da7d4f2..1ad30af493830 100644
--- a/pkgs/data/fonts/corefonts/default.nix
+++ b/pkgs/by-name/co/corefonts/package.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation {
   version = "1";
 
   exes = map ({name, sha256}: fetchurl {
-    url = "mirror://sourceforge/corefonts/${name}32.exe";
+    url = "mirror://sourceforge/corefonts/the%20fonts/final/${name}32.exe";
     inherit sha256;
   }) fonts;
 
diff --git a/pkgs/by-name/co/corrscope/package.nix b/pkgs/by-name/co/corrscope/package.nix
index a9d83f1a22241..8b8607d723a6f 100644
--- a/pkgs/by-name/co/corrscope/package.nix
+++ b/pkgs/by-name/co/corrscope/package.nix
@@ -10,14 +10,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "corrscope";
-  version = "0.9.0";
+  version = "0.9.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "corrscope";
     repo = "corrscope";
-    rev = version;
-    hash = "sha256-kOPhVm4epIhBSsgQVKNCoQ7DZcMG/b3sapxwwKo/V+U=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-SKsPe68CNaoUzGjMZn4azGFM3SbBipHK8gJcrm4+T+I=";
   };
 
   pythonRelaxDeps = [ "attrs" "ruamel.yaml" ];
diff --git a/pkgs/by-name/co/cosmic-icons/package.nix b/pkgs/by-name/co/cosmic-icons/package.nix
index c201943f9474e..40fbd905de840 100644
--- a/pkgs/by-name/co/cosmic-icons/package.nix
+++ b/pkgs/by-name/co/cosmic-icons/package.nix
@@ -8,13 +8,13 @@
 }:
 stdenvNoCC.mkDerivation rec {
   pname = "cosmic-icons";
-  version = "0-unstable-2024-05-02";
+  version = "0-unstable-2024-05-21";
 
   src = fetchFromGitHub {
     owner = "pop-os";
     repo = pname;
-    rev = "f48101c38db7e725d31591ec49896a2f525886e2";
-    sha256 = "sha256-M9n09uEM4ee8FZYTsaAu+8E0YRxQAGBvylKDHv1dp5M=";
+    rev = "9aad1ab6d5538938e69955b5f74576ac020be425";
+    sha256 = "sha256-ln2spVA8dlXi/B0ro/FIoWiIClPmwH9E9IqhrKPedys=";
   };
 
   nativeBuildInputs = [ just ];
diff --git a/pkgs/by-name/co/cosmic-tasks/package.nix b/pkgs/by-name/co/cosmic-tasks/package.nix
index 6116b37844c1d..8c6cac946bb59 100644
--- a/pkgs/by-name/co/cosmic-tasks/package.nix
+++ b/pkgs/by-name/co/cosmic-tasks/package.nix
@@ -91,7 +91,7 @@ in rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A simple task management application for the COSMIC desktop";
+    description = "Simple task management application for the COSMIC desktop";
     homepage = "https://github.com/edfloreshz/cosmic-tasks";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/pkgs/applications/networking/instant-messengers/coyim/default.nix b/pkgs/by-name/co/coyim/package.nix
index 47fb0f161063f..2906d324c2ae6 100644
--- a/pkgs/applications/networking/instant-messengers/coyim/default.nix
+++ b/pkgs/by-name/co/coyim/package.nix
@@ -1,6 +1,6 @@
 { lib
 , stdenv
-, buildGoPackage
+, buildGoModule
 , fetchFromGitHub
 , pkg-config
 , cairo
@@ -11,28 +11,28 @@
 , gtk3
 }:
 
-buildGoPackage rec {
+buildGoModule {
   pname = "coyim";
-  version = "0.4.1";
-
-  goPackagePath = "github.com/coyim/coyim";
+  version = "0.4.1-unstable-2023-09-21";
 
   src = fetchFromGitHub {
     owner = "coyim";
     repo = "coyim";
-    rev = "v${version}";
-    sha256 = "sha256-PmB6POaHKEXzIAaz3lAbUOhtVOzrj5oXRk90giYo6SI=";
+    rev = "3f84daa8c27277543b1b4ad4536dde5100d9df12";
+    sha256 = "sha256-lzhcUSBuAgYwcmdwnqNxKG0P6ZSjWeLS/g/gaF171D4=";
   };
 
+  vendorHash = "sha256-zG7r/Db6XiwKoHRduGj3tEh/KT1hsuBoSGLYaZ+qO0Y=";
+
   nativeBuildInputs = [ pkg-config wrapGAppsHook3 ];
 
   buildInputs = [ glib cairo gdk-pixbuf gtk3 gnome.adwaita-icon-theme ];
 
-  meta = with lib; {
-    description = "a safe and secure chat client";
+  meta = {
+    description = "Safe and secure chat client";
     mainProgram = "coyim";
     homepage = "https://coy.im/";
-    license = licenses.gpl3;
+    license = lib.licenses.gpl3;
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
     broken = stdenv.isDarwin;
   };
diff --git a/pkgs/by-name/cp/cppitertools/package.nix b/pkgs/by-name/cp/cppitertools/package.nix
new file mode 100644
index 0000000000000..a26b26fa1d50b
--- /dev/null
+++ b/pkgs/by-name/cp/cppitertools/package.nix
@@ -0,0 +1,99 @@
+{
+  lib,
+  stdenv,
+  cmake,
+  boost,
+  catch2,
+  fetchFromGitHub,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "cppitertools";
+  version = "2.1";
+
+  src = fetchFromGitHub {
+    owner = "ryanhaining";
+    repo = "cppitertools";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-mii4xjxF1YC3H/TuO/o4cEz8bx2ko6U0eufqNVw5LNA=";
+  };
+
+  __structuredAttrs = true;
+
+  # cppitertools has support files for three buildsystems in its repo:
+  # Scons, Bazel, and CMake. The first two only have definitions for running
+  # tests. The CMake system defines tests and install targets, including a
+  # cppitertools-config.cmake, which is really helpful for downstream consumers
+  # to detect this package since it has no pkg-config.
+  # However the CMake system also specifies the entire source repo as an install
+  # target, including support files, the build directory, etc.
+  # We can't simply take cppitertools-config.cmake for ourselves because before
+  # install it's placed in non-specific private CMake subdirectory of the build
+  # directory.
+  # Therefore, we instead simply patch CMakeLists.txt to make the target that
+  # installs the entire directory non-default, and then install the headers manually.
+
+  strictDeps = true;
+
+  doCheck = true;
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ boost ];
+
+  nativeCheckInputs = [ catch2 ];
+
+  # Required on case-sensitive filesystems to not conflict with the Bazel BUILD
+  # files that are also in that repo.
+  cmakeBuildDir = "cmake-build";
+
+  includeInstallDir = "${builtins.placeholder "out"}/include/cppitertools";
+  cmakeInstallDir = "${builtins.placeholder "out"}/share/cmake";
+
+  # This version of cppitertools considers itself as having used the default value,
+  # and issues warning, unless -Dcppitertools_INSTALL_CMAKE_DIR is present as an
+  # *environment* variable. It doesn't actually use the value from this environment
+  # variable at all though, so we still need to pass it in cmakeFlags.
+  env.cppitertools_INSTALL_CMAKE_DIR = finalAttrs.cmakeInstallDir;
+
+  cmakeFlags = [ "-Dcppitertools_INSTALL_CMAKE_DIR=${finalAttrs.cmakeInstallDir}" ];
+
+  prePatch =
+    ''
+      # Mark the `.` install target as non-default.
+      substituteInPlace CMakeLists.txt \
+        --replace-fail "  DIRECTORY ." "  DIRECTORY . EXCLUDE_FROM_ALL"
+    ''
+    + lib.optionalString finalAttrs.doCheck ''
+      # Required for tests.
+      cp ${lib.getDev catch2}/include/catch2/catch.hpp test/
+    '';
+
+  checkPhase = ''
+    runHook preCheck
+    cmake -B build-test -S ../test
+    cmake --build build-test -j$NIX_BUILD_CORES
+    runHook postCheck
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    # Install the -config.cmake files.
+    cmake --install . "--prefix=$out"
+    # Install the headers.
+    mkdir -p "$includeInstallDir"
+    cp -r ../*.hpp ../internal "$includeInstallDir"
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Implementation of Python itertools and builtin iteration functions for C++17";
+    longDescription = ''
+      Range-based for loop add-ons inspired by the Python builtins and itertools library
+      for C++17, using lazy evaluation wherever possible.
+    '';
+    homepage = "https://github.com/ryanhaining/cppitertools";
+    maintainers = with lib.maintainers; [ qyriad ];
+    license = with lib.licenses; bsd2;
+  };
+})
diff --git a/pkgs/by-name/cp/cpu-energy-meter/package.nix b/pkgs/by-name/cp/cpu-energy-meter/package.nix
index 6d31da594645c..7ddbf8f6d283a 100644
--- a/pkgs/by-name/cp/cpu-energy-meter/package.nix
+++ b/pkgs/by-name/cp/cpu-energy-meter/package.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A tool for measuring energy consumption of Intel CPUs";
+    description = "Tool for measuring energy consumption of Intel CPUs";
     homepage = "https://github.com/sosy-lab/cpu-energy-meter";
     changelog = "https://github.com/sosy-lab/cpu-energy-meter/blob/main/CHANGELOG.md";
     maintainers = with maintainers; [ lorenzleutgeb ];
diff --git a/pkgs/by-name/cr/crawley/package.nix b/pkgs/by-name/cr/crawley/package.nix
index 94db41c1e946c..7428c68d8f761 100644
--- a/pkgs/by-name/cr/crawley/package.nix
+++ b/pkgs/by-name/cr/crawley/package.nix
@@ -6,18 +6,18 @@
 
 buildGoModule rec {
   pname = "crawley";
-  version = "1.7.5";
+  version = "1.7.6";
 
   src = fetchFromGitHub {
     owner = "s0rg";
     repo = "crawley";
     rev = "v${version}";
-    hash = "sha256-Ai+Y4WoU0REmo9ECsrV/i0PnPY+gO2+22np+nVH3Xsc=";
+    hash = "sha256-chnnWFE+teq3cjWmwwZ/Ql3KoY2b4wsLL8/5TWxX1fM=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
 
-  vendorHash = "sha256-bI7PdUl+/kBx4F9T+tvF7QHNQ2pSvRjT31O/nIUvUAE=";
+  vendorHash = "sha256-byEb5CKi/zBjdvdkUdJeLbuZKf6o3z08r+XRkcGxvDs=";
 
   ldflags = [ "-w" "-s" ];
 
@@ -28,7 +28,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "The unix-way web crawler";
+    description = "Unix-way web crawler";
     homepage = "https://github.com/s0rg/crawley";
     license = licenses.mit;
     maintainers = with maintainers; [ ltstf1re ];
diff --git a/pkgs/by-name/cr/criterion/package.nix b/pkgs/by-name/cr/criterion/package.nix
index efa1459dc72d5..1b48227dcb33b 100644
--- a/pkgs/by-name/cr/criterion/package.nix
+++ b/pkgs/by-name/cr/criterion/package.nix
@@ -104,7 +104,7 @@ stdenv.mkDerivation rec {
     };
 
   meta = {
-    description = "A cross-platform C and C++ unit testing framework for the 21th century";
+    description = "Cross-platform C and C++ unit testing framework for the 21th century";
     homepage = "https://github.com/Snaipe/Criterion";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [
diff --git a/pkgs/by-name/cr/cro-mag-rally/package.nix b/pkgs/by-name/cr/cro-mag-rally/package.nix
index 24cdf0410059f..781ddad7fd05b 100644
--- a/pkgs/by-name/cr/cro-mag-rally/package.nix
+++ b/pkgs/by-name/cr/cro-mag-rally/package.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A port of Cro-Mag Rally, a 2000 Macintosh game by Pangea Software, for modern operating systems";
+    description = "Port of Cro-Mag Rally, a 2000 Macintosh game by Pangea Software, for modern operating systems";
     homepage = "https://github.com/jorio/CroMagRally";
     changelog = "https://github.com/jorio/CroMagRally/releases";
     license = licenses.cc-by-sa-40;
diff --git a/pkgs/by-name/cr/crossplane-cli/package.nix b/pkgs/by-name/cr/crossplane-cli/package.nix
index c97d2080a28b0..9fc066de866c6 100644
--- a/pkgs/by-name/cr/crossplane-cli/package.nix
+++ b/pkgs/by-name/cr/crossplane-cli/package.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "crossplane-cli";
-  version = "1.15.2";
+  version = "1.16.0";
 
   src = fetchFromGitHub {
     owner = "crossplane";
     repo = "crossplane";
     rev = "v${version}";
-    hash = "sha256-jNaWedK9h4pP+0u1UDHoZ/7l6kVXA2g9Vs0036itk9Q=";
+    hash = "sha256-1067l3DM6/kW6d35+9nfMdFtu8jIzw/QJaHFKzOTbSc=";
   };
 
-  vendorHash = "sha256-vYbTkdX3L/AZN9vWUw8NzkPk16BwUzP8zJb22fnsoRo=";
+  vendorHash = "sha256-Ccc7hEsHkHw2P5cgMB06VVlHur5DCPclaEMoFCwoSrA=";
 
   ldflags = [
     "-s"
@@ -33,7 +33,7 @@ buildGoModule rec {
 
   passthru.tests.version = testers.testVersion {
     package = crossplane-cli;
-    command = "crossplane --version";
+    command = "crossplane version || true";
     version = "v${version}";
   };
 
diff --git a/pkgs/by-name/cr/crosswords/package.nix b/pkgs/by-name/cr/crosswords/package.nix
index 997152d27c5f2..bff7d838ec7b8 100644
--- a/pkgs/by-name/cr/crosswords/package.nix
+++ b/pkgs/by-name/cr/crosswords/package.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A Crossword player and editor for GNOME";
+    description = "Crossword player and editor for GNOME";
     homepage = "https://gitlab.gnome.org/jrb/crosswords";
     license = licenses.gpl3Plus;
     mainProgram = "crosswords";
diff --git a/pkgs/by-name/cr/crunchy-cli/Cargo.lock b/pkgs/by-name/cr/crunchy-cli/Cargo.lock
index 5ea720f25c615..8400022acb91d 100644
--- a/pkgs/by-name/cr/crunchy-cli/Cargo.lock
+++ b/pkgs/by-name/cr/crunchy-cli/Cargo.lock
@@ -349,7 +349,7 @@ checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "crunchy-cli"
-version = "3.6.4"
+version = "3.6.6"
 dependencies = [
  "chrono",
  "clap",
@@ -362,7 +362,7 @@ dependencies = [
 
 [[package]]
 name = "crunchy-cli-core"
-version = "3.6.4"
+version = "3.6.6"
 dependencies = [
  "anyhow",
  "async-speed-limit",
@@ -400,9 +400,9 @@ dependencies = [
 
 [[package]]
 name = "crunchyroll-rs"
-version = "0.11.1"
+version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58580acc9c0abf96a231ec8b1a4597ea55d9426ea17f684ce3582e2b26437bbb"
+checksum = "1d33b8d77c80dea79e66993cb67963b2171dcf0b8fbc87591c58f2dadfea8da2"
 dependencies = [
  "async-trait",
  "chrono",
@@ -426,9 +426,9 @@ dependencies = [
 
 [[package]]
 name = "crunchyroll-rs-internal"
-version = "0.11.1"
+version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce3c844dec8a3390f8c9853b5cf1d65c3d38fd0657b8b5d0e008db8945dea326"
+checksum = "fa51945265f25c45f7d53bd70e5263dd023c0be45e38eaba886a971cb645d797"
 dependencies = [
  "darling",
  "quote",
@@ -1519,8 +1519,9 @@ checksum = "b833d8d034ea094b1ea68aa6d5c740e0d04bad9d16568d08ba6f76823a114316"
 
 [[package]]
 name = "rsubs-lib"
-version = "0.3.0"
-source = "git+https://github.com/crunchy-labs/rsubs-lib.git?rev=1c51f60#1c51f60b8c48f1a8f7b261372b237d89bdc17dd4"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d01f7609f0b1bc4fe24b352e8d1792c7d71cc43aea797e14b87974cd009ab402"
 dependencies = [
  "regex",
  "serde",
diff --git a/pkgs/by-name/cr/crunchy-cli/package.nix b/pkgs/by-name/cr/crunchy-cli/package.nix
index 7a618986734cf..7ab919f6c2f49 100644
--- a/pkgs/by-name/cr/crunchy-cli/package.nix
+++ b/pkgs/by-name/cr/crunchy-cli/package.nix
@@ -10,20 +10,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "crunchy-cli";
-  version = "3.6.4";
+  version = "3.6.6";
 
   src = fetchFromGitHub {
     owner = "crunchy-labs";
     repo = "crunchy-cli";
     rev = "v${version}";
-    hash = "sha256-ujR/ZTQoNdxVuGd8fie7JwVINqcjwAwyou+iCihYOY0=";
+    hash = "sha256-LVJRv8YUTfavc0ZrK2fIlgc5npQKwEZosoLEYw/V/pw=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
       "native-tls-0.2.11" = "sha256-r+uvpwf1qgOVYuh+3xYOOsDWyCJnyG4Qc8i7RV2nzy4=";
-      "rsubs-lib-0.3.0" = "sha256-hn0/KxUHgmC3hs8sAMkJKxR7WIjc8YGq9DJU2SriO1A=";
     };
   };
 
diff --git a/pkgs/by-name/cr/cryptor/package.nix b/pkgs/by-name/cr/cryptor/package.nix
index edbaa0903b0a8..b48662b2992fc 100644
--- a/pkgs/by-name/cr/cryptor/package.nix
+++ b/pkgs/by-name/cr/cryptor/package.nix
@@ -42,6 +42,10 @@ stdenv.mkDerivation (finalAttrs: {
   postInstall = ''
     wrapProgram $out/bin/cryptor \
       --prefix PATH : "${lib.makeBinPath [ gocryptfs ]}"
+
+    install -Dm444 $src/resources/misc/cryptor.desktop -t $out/share/applications
+    substituteInPlace $out/share/applications/cryptor.desktop \
+      --replace-warn '/usr/bin/cryptor' 'cryptor'
   '';
 
   meta = {
diff --git a/pkgs/by-name/cs/csharpier/package.nix b/pkgs/by-name/cs/csharpier/package.nix
index 1be70bd225c97..e0d48a38c8181 100644
--- a/pkgs/by-name/cs/csharpier/package.nix
+++ b/pkgs/by-name/cs/csharpier/package.nix
@@ -8,7 +8,7 @@ buildDotnetGlobalTool {
   nugetSha256 = "sha256-fXyE25niM80pPXCLC80Hm9XEHGUMx0XZOMxdVoA0h18=";
 
   meta = with lib; {
-    description = "An opinionated code formatter for C#";
+    description = "Opinionated code formatter for C#";
     homepage = "https://csharpier.com/";
     changelog = "https://github.com/belav/csharpier/blob/main/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/by-name/cs/csvkit/package.nix b/pkgs/by-name/cs/csvkit/package.nix
index 3b0a3b563961e..ff45738f90f75 100644
--- a/pkgs/by-name/cs/csvkit/package.nix
+++ b/pkgs/by-name/cs/csvkit/package.nix
@@ -40,7 +40,7 @@ pythonEnv.pkgs.buildPythonApplication {
 
   meta = {
     homepage = "https://github.com/wireservice/csvkit";
-    description = "A suite of command-line tools for converting to and working with CSV";
+    description = "Suite of command-line tools for converting to and working with CSV";
     changelog = "https://github.com/wireservice/csvkit/blob/${version}/CHANGELOG.rst";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ AndersonTorres ];
diff --git a/pkgs/by-name/cs/csvlens/package.nix b/pkgs/by-name/cs/csvlens/package.nix
index 7840dba022d2d..1731af4bebce5 100644
--- a/pkgs/by-name/cs/csvlens/package.nix
+++ b/pkgs/by-name/cs/csvlens/package.nix
@@ -7,20 +7,20 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "csvlens";
-  version = "0.9.0";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "YS-L";
     repo = "csvlens";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Qpda9qADnj3eGz+nvD6VgxUOwTXrFI1rMam6+sfK6MQ=";
+    hash = "sha256-22IU+TpmmJNCsjrobXe0+0YhssbFMt/j9Vusz69lips=";
   };
 
   buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
     darwin.apple_sdk.frameworks.AppKit
   ];
 
-  cargoHash = "sha256-PDOuAz+ov1S7i7TpRp4YaeoQQJ4paal6FI0VU25d4zU=";
+  cargoHash = "sha256-jLoVuDoarq6ZIWrNw04eyRo+M4jNcZ2zsMWKmZaDPf0=";
 
   meta = with lib; {
     description = "Command line csv viewer";
diff --git a/pkgs/by-name/cu/cucumber/package.nix b/pkgs/by-name/cu/cucumber/package.nix
index a7da4ab7d0467..55dcd9f49ac82 100644
--- a/pkgs/by-name/cu/cucumber/package.nix
+++ b/pkgs/by-name/cu/cucumber/package.nix
@@ -8,7 +8,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "cucumber";
 
   meta = with lib; {
-    description = "A tool for executable specifications";
+    description = "Tool for executable specifications";
     homepage = "https://cucumber.io/";
     changelog = "https://github.com/cucumber/cucumber-ruby/blob/main/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/by-name/cu/cue/package.nix b/pkgs/by-name/cu/cue/package.nix
index 97ad585ddcb55..39a506dbc69e4 100644
--- a/pkgs/by-name/cu/cue/package.nix
+++ b/pkgs/by-name/cu/cue/package.nix
@@ -9,22 +9,26 @@
 
 buildGoModule rec {
   pname = "cue";
-  version = "0.8.2";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "cue-lang";
     repo = "cue";
     rev = "v${version}";
-    hash = "sha256-GU1PG5ciUqbRlAveq2ouqnBYIBEdMSSM0H/1eHL+zlo=";
+    hash = "sha256-hhu66uiBkxyYRw8eruqxVifr2yftDXcYRTK5VYbjRPQ=";
   };
 
-  vendorHash = "sha256-0OZtKIDdEnQLnSj109EpGvaZvMIy7gPAZ+weHzYKGSg=";
+  vendorHash = "sha256-FsFignBh669E60S8l8siQHLzeSfB5X/XOHBXPMDX3Cg=";
 
   subPackages = [ "cmd/*" ];
 
   nativeBuildInputs = [ installShellFiles ];
 
-  ldflags = [ "-s" "-w" ];
+  ldflags = [
+    "-s"
+    "-w"
+    "-X cuelang.org/go/cmd/cue/cmd.version=v${version}"
+  ];
 
   postInstall = ''
     installShellCompletion --cmd cue \
@@ -46,9 +50,9 @@ buildGoModule rec {
   };
 
   meta = with lib;  {
-    description = "A data constraint language which aims to simplify tasks involving defining and using data";
+    description = "Data constraint language which aims to simplify tasks involving defining and using data";
     homepage = "https://cuelang.org/";
-    license = lib.licenses.asl20;
+    license = licenses.asl20;
     maintainers = with maintainers; [ aaronjheng ];
     mainProgram = "cue";
   };
diff --git a/pkgs/by-name/cu/cups-kyocera-3500-4500/package.nix b/pkgs/by-name/cu/cups-kyocera-3500-4500/package.nix
new file mode 100644
index 0000000000000..14f89056daf93
--- /dev/null
+++ b/pkgs/by-name/cu/cups-kyocera-3500-4500/package.nix
@@ -0,0 +1,86 @@
+{ lib
+, stdenv
+, fetchzip
+, cups
+, autoPatchelfHook
+, python3Packages
+
+# Sets the default paper format: use "EU" for A4, or "Global" for Letter
+, region ? "EU"
+}:
+
+assert region == "Global" || region == "EU";
+
+let
+  kyodialog_version_short = "9";
+  kyodialog_version_long = "9.0";
+  date = "20221003";
+in
+stdenv.mkDerivation rec {
+  pname = "cups-kyocera-3500-4500";
+  version = "${kyodialog_version_long}-${date}";
+
+  dontStrip = true;
+
+  src = fetchzip {
+    # Steps to find the release download URL:
+    # 1. Go to https://www.kyoceradocumentsolutions.us/en/support/downloads.html
+    # 2. Search for printer model, e.g. "TASKalfa 6053ci"
+    # 3. Locate e.g. "Linux Print Driver (9.3)" in the list
+    urls = [
+      "https://dam.kyoceradocumentsolutions.com/content/dam/gdam_dc/dc_global/executables/driver/product_085/KyoceraLinuxPackages-${date}.tar.gz"
+    ];
+    hash = "sha256-pqBtfKiQo/+cF8fG5vsEQvr8UdxjGsSShXI+6bun03c=";
+    extension = "tar.gz";
+    stripRoot = false;
+    postFetch = ''
+      # delete redundant Linux package dirs to reduce size in the Nix store; only keep Debian
+      rm -r $out/{CentOS,Fedora,OpenSUSE,Redhat,Ubuntu}
+    '';
+  };
+
+  sourceRoot = ".";
+
+  unpackCmd = let
+    platforms = {
+      x86_64-linux = "amd64";
+      i686-linux = "i386";
+    };
+    platform = platforms.${stdenv.hostPlatform.system} or (throw "unsupported system: ${stdenv.hostPlatform.system}");
+  in ''
+    ar p "$src/Debian/${region}/kyodialog_${platform}/kyodialog_${kyodialog_version_long}-0_${platform}.deb" data.tar.gz | tar -xz
+  '';
+
+  nativeBuildInputs = [ autoPatchelfHook python3Packages.wrapPython ];
+
+  buildInputs = [ cups ];
+
+  # For lib/cups/filter/kyofilter_pre_H.
+  # The source already contains a copy of pypdf3, but we use the Nix package
+  propagatedBuildInputs = with python3Packages; [ reportlab pypdf3 setuptools ];
+
+  installPhase = ''
+    # allow cups to find the ppd files
+    mkdir -p $out/share/cups/model
+    mv ./usr/share/kyocera${kyodialog_version_short}/ppd${kyodialog_version_short} $out/share/cups/model/Kyocera
+
+    # remove absolute path prefixes to filters in ppd
+    find $out -name "*.ppd" -exec sed -E -i "s:/usr/lib/cups/filter/::g" {} \;
+
+    mkdir -p $out/lib/cups/
+    mv ./usr/lib/cups/filter/ $out/lib/cups/
+    # for lib/cups/filter/kyofilter_pre_H
+    wrapPythonProgramsIn $out/lib/cups/filter "$propagatedBuildInputs"
+
+    install -Dm444 usr/share/doc/kyodialog/copyright $out/share/doc/${pname}/copyright
+  '';
+
+  meta = with lib; {
+    description = "CUPS drivers for Kyocera ECOSYS MA3500cix, MA3500cifx, MA4000cix, MA4000cifx, PA3500cx, PA4000cx and PA4500cx, for Kyocera CS MA4500ci and PA4500ci, and for Kyocera TASKalfa MA3500ci, MA4500ci and PI4500ci printers";
+    homepage = "https://www.kyoceradocumentsolutions.com";
+    sourceProvenance = [ sourceTypes.binaryNativeCode ];
+    license = licenses.unfree;
+    maintainers = [ maintainers.me-and ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/by-name/cy/cyanrip/package.nix b/pkgs/by-name/cy/cyanrip/package.nix
index e1f1ae1648afb..d3266c1dc3115 100644
--- a/pkgs/by-name/cy/cyanrip/package.nix
+++ b/pkgs/by-name/cy/cyanrip/package.nix
@@ -12,13 +12,13 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "cyanrip";
-  version = "0.9.2";
+  version = "0.9.3.1";
 
   src = fetchFromGitHub {
     owner = "cyanreg";
     repo = "cyanrip";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-sWgHf8S4GZDAIvMUf5KvGy2y0JcUbRS53IjArdgokqc=";
+    hash = "sha256-GAPHsYQYJQOBV4ok7omqhiDPKX+VC4Bw3Msb3pd8Zo8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/cy/cyme/Cargo.lock b/pkgs/by-name/cy/cyme/Cargo.lock
index fd35496ea48fa..c645e23d1563c 100644
--- a/pkgs/by-name/cy/cyme/Cargo.lock
+++ b/pkgs/by-name/cy/cyme/Cargo.lock
@@ -492,8 +492,9 @@ dependencies = [
 
 [[package]]
 name = "libusb1-sys"
-version = "0.6.4"
-source = "git+https://github.com/a1ien/rusb.git#c38563efeb7733f0f8b5ac01703fd2ad1d84fea2"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da050ade7ac4ff1ba5379af847a10a10a8e284181e060105bf8d86960ce9ce0f"
 dependencies = [
  "cc",
  "libc",
@@ -697,8 +698,9 @@ checksum = "b833d8d034ea094b1ea68aa6d5c740e0d04bad9d16568d08ba6f76823a114316"
 
 [[package]]
 name = "rusb"
-version = "0.9.3"
-source = "git+https://github.com/a1ien/rusb.git#c38563efeb7733f0f8b5ac01703fd2ad1d84fea2"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab9f9ff05b63a786553a4c02943b74b34a988448671001e9a27e2f0565cc05a4"
 dependencies = [
  "libc",
  "libusb1-sys",
diff --git a/pkgs/by-name/cy/cyme/package.nix b/pkgs/by-name/cy/cyme/package.nix
index 7f14863a2ecd6..5c854b55893f3 100644
--- a/pkgs/by-name/cy/cyme/package.nix
+++ b/pkgs/by-name/cy/cyme/package.nix
@@ -14,20 +14,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cyme";
-  version = "1.6.0";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "tuna-f1sh";
     repo = "cyme";
     rev = "v${version}";
-    hash = "sha256-97sxK2zhUKBS238F9mNk8a2VbTVpvbDlN1yDas4Fls4=";
+    hash = "sha256-HIOrdVChTfYX8AKqytWU+EudFDiqoVELb+yL3jsPQwM=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
       "libudev-sys-0.1.4" = "sha256-7dUqPH8bQ/QSBIppxQbymwQ44Bvi1b6N2AMUylbyKK8=";
-      "libusb1-sys-0.6.4" = "sha256-Y3K3aEZnpLud/g4Tx+1HDEkNRKi5s4Fo0QSWya/L+L4=";
     };
   };
 
@@ -57,7 +56,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/tuna-f1sh/cyme";
-    description = "A modern cross-platform lsusb";
+    description = "Modern cross-platform lsusb";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ h7x4 ];
     platforms = platforms.linux ++ platforms.darwin ++ platforms.windows;
diff --git a/pkgs/by-name/cz/czkawka/package.nix b/pkgs/by-name/cz/czkawka/package.nix
index 301784a8c654b..fdf03e4592914 100644
--- a/pkgs/by-name/cz/czkawka/package.nix
+++ b/pkgs/by-name/cz/czkawka/package.nix
@@ -80,7 +80,7 @@ rustPlatform.buildRustPackage {
 
   meta = {
     changelog = "https://github.com/qarmin/czkawka/raw/${version}/Changelog.md";
-    description = "A simple, fast and easy to use app to remove unnecessary files from your computer";
+    description = "Simple, fast and easy to use app to remove unnecessary files from your computer";
     homepage = "https://github.com/qarmin/czkawka";
     license = with lib.licenses; [ mit ];
     mainProgram = "czkawka_gui";
diff --git a/pkgs/by-name/da/dapr-cli/package.nix b/pkgs/by-name/da/dapr-cli/package.nix
index a672b9637e33b..8567c6aa6cde2 100644
--- a/pkgs/by-name/da/dapr-cli/package.nix
+++ b/pkgs/by-name/da/dapr-cli/package.nix
@@ -39,7 +39,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A CLI for managing Dapr, the distributed application runtime";
+    description = "CLI for managing Dapr, the distributed application runtime";
     homepage = "https://dapr.io";
     license = licenses.asl20;
     maintainers = with maintainers; [ joshvanl lucperkins ];
diff --git a/pkgs/by-name/da/darklua/package.nix b/pkgs/by-name/da/darklua/package.nix
index 780d6026ae116..aa79d6048dd96 100644
--- a/pkgs/by-name/da/darklua/package.nix
+++ b/pkgs/by-name/da/darklua/package.nix
@@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A command line tool that transforms Lua code";
+    description = "Command line tool that transforms Lua code";
     mainProgram = "darklua";
     homepage = "https://darklua.com";
     changelog = "https://github.com/seaofvoices/darklua/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/by-name/da/datatrove/package.nix b/pkgs/by-name/da/datatrove/package.nix
new file mode 100644
index 0000000000000..61ac911cc8e45
--- /dev/null
+++ b/pkgs/by-name/da/datatrove/package.nix
@@ -0,0 +1,65 @@
+{
+  lib,
+  fetchFromGitHub,
+  python3Packages,
+}:
+let
+  version = "0.2.0";
+in
+python3Packages.buildPythonPackage {
+  pname = "datatrove";
+  inherit version;
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "huggingface";
+    repo = "datatrove";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-2NJja2yWeHOgo1pCuwHN6SgYnsimuZdK0jE8ucTH4r8=";
+  };
+
+  nativeBuildInputs = with python3Packages; [ setuptools ];
+
+  propagatedBuildInputs = with python3Packages; [
+    dill
+    fsspec
+    huggingface-hub
+    tokenizers
+    humanize
+    loguru
+    multiprocess
+    numpy
+    rich
+  ];
+
+  nativeCheckInputs = with python3Packages; [ pytestCheckHook ];
+  dependencies = with python3Packages; [
+    boto3
+    fasteners
+    huggingface-hub
+    moto
+    nltk
+    s3fs
+    xxhash
+  ];
+
+  disabledTestPaths = [
+    "tests/executor/test_local.py"
+    "tests/pipeline/test_filters.py"
+    "tests/pipeline/test_bloom_filter.py"
+    "tests/pipeline/test_minhash.py"
+    "tests/pipeline/test_sentence_deduplication.py"
+    "tests/pipeline/test_tokenization.py"
+    "tests/pipeline/test_exact_substrings.py"
+  ];
+
+  pythonImportsCheck = [ "datatrove" ];
+  meta = {
+    description = "Set of platform-agnostic customizable pipeline processing blocks for data processing";
+    homepage = "https://github.com/huggingface/datatrove";
+    changelog = "https://github.com/huggingface/datatrove/releases/tag/v${version}";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ luftmensch-luftmensch ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/by-name/da/davis/package.nix b/pkgs/by-name/da/davis/package.nix
index fc8fb5c9712a4..e808aa4d9ecbb 100644
--- a/pkgs/by-name/da/davis/package.nix
+++ b/pkgs/by-name/da/davis/package.nix
@@ -6,13 +6,13 @@
 
 php.buildComposerProject (finalAttrs: {
   pname = "davis";
-  version = "4.4.2";
+  version = "4.4.3";
 
   src = fetchFromGitHub {
     owner = "tchapi";
     repo = "davis";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-oPzMBCOcAJoHni9SO74RuJDEOcVYc4MtO5rGq1E9g3Q=";
+    hash = "sha256-0Km4bLQVfbkr5BL8XY5tM147Sje8hcFOjhCRnXq+4d4=";
   };
 
   vendorHash = "sha256-NOb6rc9jVsf+/RVOW7SLBAJk9SihcRxoepUEGBGLi2w=";
@@ -28,7 +28,7 @@ php.buildComposerProject (finalAttrs: {
   meta = {
     changelog = "https://github.com/tchapi/davis/releases/tag/v${finalAttrs.version}";
     homepage = "https://github.com/tchapi/davis";
-    description = "A simple CardDav and CalDav server inspired by Baïkal";
+    description = "Simple CardDav and CalDav server inspired by Baïkal";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ ramblurr ];
   };
diff --git a/pkgs/by-name/da/daytona-bin/package.nix b/pkgs/by-name/da/daytona-bin/package.nix
index 0c3fa458c7be5..0dbebf98949ed 100644
--- a/pkgs/by-name/da/daytona-bin/package.nix
+++ b/pkgs/by-name/da/daytona-bin/package.nix
@@ -45,7 +45,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   meta = {
     changelog = "https://github.com/daytonaio/daytona/releases/tag/v${finalAttrs.version}";
-    description = "The Open Source Dev Environment Manager";
+    description = "Open Source Dev Environment Manager";
     homepage = "https://github.com/daytonaio/daytona";
     license = lib.licenses.asl20;
     mainProgram = "daytona";
diff --git a/pkgs/by-name/db/dbeaver-bin/package.nix b/pkgs/by-name/db/dbeaver-bin/package.nix
index ddf67faca43c3..34115a39d21d4 100644
--- a/pkgs/by-name/db/dbeaver-bin/package.nix
+++ b/pkgs/by-name/db/dbeaver-bin/package.nix
@@ -1,21 +1,18 @@
-{ lib
-, stdenvNoCC
-, fetchurl
-, makeWrapper
-, openjdk17
-, gnused
-, autoPatchelfHook
+{
+  lib,
+  stdenvNoCC,
+  fetchurl,
+  undmg,
+  makeWrapper,
+  openjdk17,
+  gnused,
+  autoPatchelfHook,
+  wrapGAppsHook3,
 }:
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "dbeaver-bin";
-  version = "24.0.5";
-
-  nativeBuildInputs = [
-    makeWrapper
-    gnused
-    autoPatchelfHook
-  ];
+  version = "24.1.0";
 
   src =
     let
@@ -24,10 +21,14 @@ stdenvNoCC.mkDerivation (finalAttrs: {
       suffix = selectSystem {
         x86_64-linux = "linux.gtk.x86_64-nojdk.tar.gz";
         aarch64-linux = "linux.gtk.aarch64-nojdk.tar.gz";
+        x86_64-darwin = "macos-x86_64.dmg";
+        aarch64-darwin = "macos-aarch64.dmg";
       };
       hash = selectSystem {
-        x86_64-linux = "sha256-q6VIr55hXn47kZrE2i6McEOfp2FBOvwB0CcUnRHFMZs=";
-        aarch64-linux = "sha256-CQg2+p1P+Bg1uFM1PMTWtweS0TNElXTP7tI7D5WxixM=";
+        x86_64-linux = "sha256-cJcjUoZSpD87jy4GGIxMinZW4gxRZfcGO0GdGUGXI6g=";
+        aarch64-linux = "sha256-96t/T/VzzzaSWJbPBb1CH2FXqfhiH1d0MjRoPsRMRwo=";
+        x86_64-darwin = "sha256-8xqSL8fTveg1Y5huBTYZLyubajt27h4XUBzyYVF394A=";
+        aarch64-darwin = "sha256-r7WqJrNF1IgQHx3Na1fGk0ywsfh5t4Dl/u8hH6CPuoE=";
       };
     in
     fetchurl {
@@ -35,31 +36,59 @@ stdenvNoCC.mkDerivation (finalAttrs: {
       inherit hash;
     };
 
+  sourceRoot = lib.optional stdenvNoCC.isDarwin "dbeaver.app";
+
+  nativeBuildInputs =
+    [ makeWrapper ]
+    ++ lib.optionals (!stdenvNoCC.isDarwin) [
+      gnused
+      wrapGAppsHook3
+      autoPatchelfHook
+    ]
+    ++ lib.optionals stdenvNoCC.isDarwin [ undmg ];
+
   dontConfigure = true;
   dontBuild = true;
 
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/opt/dbeaver $out/bin
-    cp -r * $out/opt/dbeaver
-    makeWrapper $out/opt/dbeaver/dbeaver $out/bin/dbeaver \
-      --prefix PATH : "${openjdk17}/bin" \
-      --set JAVA_HOME "${openjdk17.home}"
+  installPhase =
+    if !stdenvNoCC.isDarwin then
+      ''
+        runHook preInstall
+
+        mkdir -p $out/opt/dbeaver $out/bin
+        cp -r * $out/opt/dbeaver
+        makeWrapper $out/opt/dbeaver/dbeaver $out/bin/dbeaver \
+          --prefix PATH : "${openjdk17}/bin" \
+          --set JAVA_HOME "${openjdk17.home}"
+
+        mkdir -p $out/share/icons/hicolor/256x256/apps
+        ln -s $out/opt/dbeaver/dbeaver.png $out/share/icons/hicolor/256x256/apps/dbeaver.png
+
+        mkdir -p $out/share/applications
+        ln -s $out/opt/dbeaver/dbeaver-ce.desktop $out/share/applications/dbeaver.desktop
+
+        substituteInPlace $out/opt/dbeaver/dbeaver-ce.desktop \
+          --replace-fail "/usr/share/dbeaver-ce/dbeaver.png" "dbeaver" \
+          --replace-fail "/usr/share/dbeaver-ce/dbeaver" "$out/bin/dbeaver"
 
-    mkdir -p $out/share/icons/hicolor/256x256/apps
-    ln -s $out/opt/dbeaver/dbeaver.png $out/share/icons/hicolor/256x256/apps/dbeaver.png
+        sed -i '/^Path=/d' $out/share/applications/dbeaver.desktop
 
-    mkdir -p $out/share/applications
-    ln -s $out/opt/dbeaver/dbeaver-ce.desktop $out/share/applications/dbeaver.desktop
+        runHook postInstall
+      ''
+    else
+      ''
+        runHook preInstall
 
-    substituteInPlace $out/opt/dbeaver/dbeaver-ce.desktop \
-      --replace-fail "/usr/share/dbeaver-ce/dbeaver.png" "dbeaver" \
-      --replace-fail "/usr/share/dbeaver-ce/dbeaver" "$out/bin/dbeaver"
+        mkdir -p $out/{Applications/dbeaver.app,bin}
+        cp -R . $out/Applications/dbeaver.app
+        makeWrapper $out/{Applications/dbeaver.app/Contents/MacOS,bin}/dbeaver \
+          --prefix PATH : "${openjdk17}/bin" \
+          --set JAVA_HOME "${openjdk17.home}"
 
-    sed -i '/^Path=/d' $out/share/applications/dbeaver.desktop
+        runHook postInstall
+      '';
 
-    runHook postInstall
-  '';
+  passthru.updateScript = ./update.sh;
 
   meta = with lib; {
     homepage = "https://dbeaver.io/";
@@ -72,8 +101,12 @@ stdenvNoCC.mkDerivation (finalAttrs: {
     '';
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ gepbird mkg20001 ];
+    platforms = platforms.linux ++ platforms.darwin;
+    maintainers = with maintainers; [
+      gepbird
+      mkg20001
+      yzx9
+    ];
     mainProgram = "dbeaver";
   };
 })
diff --git a/pkgs/by-name/db/dbeaver-bin/update.sh b/pkgs/by-name/db/dbeaver-bin/update.sh
new file mode 100755
index 0000000000000..c89262bb3a29d
--- /dev/null
+++ b/pkgs/by-name/db/dbeaver-bin/update.sh
@@ -0,0 +1,26 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -I nixpkgs=./. -i bash -p curl jq common-updater-scripts
+
+latestVersion=$(curl "https://api.github.com/repos/dbeaver/dbeaver/tags" | jq -r '.[0].name')
+currentVersion=$(nix-instantiate --eval -E "with import ./. {}; dbeaver-bin.version" | tr -d '"')
+
+echo "latest  version: $latestVersion"
+echo "current version: $currentVersion"
+
+if [[ "$latestVersion" == "$currentVersion" ]]; then
+    echo "package is up-to-date"
+    exit 0
+fi
+
+for i in \
+    "x86_64-linux linux.gtk.x86_64-nojdk.tar.gz" \
+    "aarch64-linux linux.gtk.aarch64-nojdk.tar.gz" \
+    "x86_64-darwin macos-x86_64.dmg" \
+    "aarch64-darwin macos-aarch64.dmg"
+do
+    set -- $i
+    prefetch=$(nix-prefetch-url "https://github.com/dbeaver/dbeaver/releases/download/$latestVersion/dbeaver-ce-$latestVersion-$2")
+    hash=$(nix-hash --type sha256 --to-sri $prefetch)
+
+    update-source-version dbeaver-bin $latestVersion $hash --system=$1 --ignore-same-version
+done
diff --git a/pkgs/by-name/db/dbgate/package.nix b/pkgs/by-name/db/dbgate/package.nix
new file mode 100644
index 0000000000000..1b46f007aecce
--- /dev/null
+++ b/pkgs/by-name/db/dbgate/package.nix
@@ -0,0 +1,71 @@
+{
+  lib,
+  stdenv,
+  fetchurl,
+  undmg,
+  appimageTools,
+}:
+let
+  pname = "dbgate";
+  version = "5.3.0";
+  src =
+    fetchurl
+      {
+        aarch64-linux = {
+          url = "https://github.com/dbgate/dbgate/releases/download/v${version}/dbgate-${version}-linux_arm64.AppImage";
+          hash = "sha256-FoNph6phZEMjndX6KNtSH8TpOpI0x4rmpTBh11bYV3c=";
+        };
+        x86_64-linux = {
+          url = "https://github.com/dbgate/dbgate/releases/download/v${version}/dbgate-${version}-linux_x86_64.AppImage";
+          hash = "sha256-HsWT099apLtL5KAy3Shw0uEoXzpWGAyD63L3NhT/JlU=";
+        };
+        x86_64-darwin = {
+          url = "https://github.com/dbgate/dbgate/releases/download/v${version}/dbgate-${version}-mac_x64.dmg";
+          hash = "sha256-bdCwvfmfOCpVW1yTFxsLxveg9uQW1O8ODkCGpiujRCE=";
+        };
+      }
+      .${stdenv.system} or (throw "dbgate: ${stdenv.system} is unsupported.");
+  meta = {
+    description = "Database manager for MySQL, PostgreSQL, SQL Server, MongoDB, SQLite and others";
+    homepage = "https://dbgate.org/";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ luftmensch-luftmensch ];
+    changelog = "https://github.com/dbgate/dbgate/releases/tag/v${version}";
+    mainProgram = "dbgate";
+    platforms = [
+      "x86_64-linux"
+      "x86_64-darwin"
+      "aarch64-linux"
+    ];
+    sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
+  };
+in
+if stdenv.isDarwin then
+  stdenv.mkDerivation {
+    inherit
+      pname
+      version
+      src
+      meta
+      ;
+
+    sourceRoot = ".";
+
+    nativeBuildInputs = [ undmg ];
+
+    installPhase = ''
+      runHook preInstall
+      mkdir -p $out/Applications
+      cp -r *.app $out/Applications
+      runHook postInstall
+    '';
+  }
+else
+  appimageTools.wrapType2 {
+    inherit
+      pname
+      version
+      src
+      meta
+      ;
+  }
diff --git a/pkgs/development/interpreters/bqn/dzaima-bqn/default.nix b/pkgs/by-name/db/dbqn/package.nix
index b6591825f8878..ff7f8fe14a7f8 100644
--- a/pkgs/development/interpreters/bqn/dzaima-bqn/default.nix
+++ b/pkgs/by-name/db/dbqn/package.nix
@@ -3,18 +3,18 @@
 , fetchFromGitHub
 , jdk
 , makeWrapper
-, buildNativeImage ? true
+, buildNativeImage ? false
 }:
 
 stdenv.mkDerivation rec {
   pname = "dbqn" + lib.optionalString buildNativeImage "-native";
-  version = "0.2.1";
+  version = "0.2.2";
 
   src = fetchFromGitHub {
     owner = "dzaima";
     repo = "BQN";
     rev = "v${version}";
-    sha256 = "1kxzxz2hrd1871281s4rsi569qk314aqfmng9pkqn8gv9nqhmph0";
+    sha256 = "sha256-AUfT7l7zr/pyG63wX8FMej8RUg7tXC1aroCrunjyw/8=";
   };
 
   nativeBuildInputs = [
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/dzaima/BQN";
-    description = "A BQN implementation in Java" + lib.optionalString buildNativeImage ", compiled as a native image";
+    description = "BQN implementation in Java" + lib.optionalString buildNativeImage ", compiled as a native image";
     license = licenses.mit;
     maintainers = with maintainers; [ AndersonTorres sternenseemann ];
     inherit (jdk.meta) platforms;
diff --git a/pkgs/by-name/db/dbus-cpp/package.nix b/pkgs/by-name/db/dbus-cpp/package.nix
index 542601e7fb659..b11ffb330b94e 100644
--- a/pkgs/by-name/db/dbus-cpp/package.nix
+++ b/pkgs/by-name/db/dbus-cpp/package.nix
@@ -114,7 +114,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A dbus-binding leveraging C++-11";
+    description = "Dbus-binding leveraging C++-11";
     homepage = "https://gitlab.com/ubports/development/core/lib-cpp/dbus-cpp";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ OPNA2608 ];
diff --git a/pkgs/by-name/dc/dc3dd/package.nix b/pkgs/by-name/dc/dc3dd/package.nix
index 511068fdc2198..c6cd3c7f39678 100644
--- a/pkgs/by-name/dc/dc3dd/package.nix
+++ b/pkgs/by-name/dc/dc3dd/package.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A patched version of dd that includes a number of features useful for computer forensics";
+    description = "Patched version of dd that includes a number of features useful for computer forensics";
     mainProgram = "dc3dd";
     homepage = "https://sourceforge.net/projects/dc3dd/";
     maintainers = with maintainers; [ d3vil0p3r ];
diff --git a/pkgs/by-name/dd/ddsmt/package.nix b/pkgs/by-name/dd/ddsmt/package.nix
index 4178246731426..cdb981498bb2c 100644
--- a/pkgs/by-name/dd/ddsmt/package.nix
+++ b/pkgs/by-name/dd/ddsmt/package.nix
@@ -27,7 +27,7 @@ python3Packages.buildPythonApplication {
   ];
 
   meta = {
-    description = "A delta debugger for SMT benchmarks in SMT-LIB v2";
+    description = "Delta debugger for SMT benchmarks in SMT-LIB v2";
     homepage = "https://ddsmt.readthedocs.io/";
     license = with lib.licenses; [ gpl3Plus ];
     maintainers = with lib.maintainers; [ AndersonTorres ];
diff --git a/pkgs/by-name/de/debianutils/package.nix b/pkgs/by-name/de/debianutils/package.nix
index 0f39abac32692..c4e968902cba3 100644
--- a/pkgs/by-name/de/debianutils/package.nix
+++ b/pkgs/by-name/de/debianutils/package.nix
@@ -8,14 +8,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "debianutils";
-  version = "5.17";
+  version = "5.19";
 
   src = fetchFromGitLab {
     domain = "salsa.debian.org";
     owner = "debian";
     repo = "debianutils";
     rev = "debian/${finalAttrs.version}";
-    hash = "sha256-lm5pjofLm5RRntvtV+8GVyWZqMhmPs2iGHyvvKDQCvg=";
+    hash = "sha256-2YJgHwjD1JyqzdYaicrgKHA/a5KdkdPJnhGQxoq/KpU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/de/decent-sampler/package.nix b/pkgs/by-name/de/decent-sampler/package.nix
index fdc7286672202..ce7418d559a46 100644
--- a/pkgs/by-name/de/decent-sampler/package.nix
+++ b/pkgs/by-name/de/decent-sampler/package.nix
@@ -76,7 +76,7 @@ buildFHSEnv {
   '';
 
   meta = with lib; {
-    description = "An audio sample player";
+    description = "Audio sample player";
     longDescription = ''
         Decent Sampler is an audio sample player.
         Allowing you to play sample libraries in the DecentSampler format
diff --git a/pkgs/by-name/de/decker/package.nix b/pkgs/by-name/de/decker/package.nix
index 4ce73c54b7a58..0d079c9ae2d02 100644
--- a/pkgs/by-name/de/decker/package.nix
+++ b/pkgs/by-name/de/decker/package.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "decker";
-  version = "1.41";
+  version = "1.44";
 
   src = fetchFromGitHub {
     owner = "JohnEarnest";
     repo = "Decker";
     rev = "v${version}";
-    hash = "sha256-AnWFAa96/lO5to7mVzHGkyzJ8U+2A9u9N1w91vHDsFo=";
+    hash = "sha256-C3CWzrKhZWEud0N2p56U+zhGjwTJ5xCfZsz+NlkdQG4=";
   };
 
   buildInputs = [
diff --git a/pkgs/by-name/de/delfin/package.nix b/pkgs/by-name/de/delfin/package.nix
index eaf775ef9434d..d5eaa8beb93e6 100644
--- a/pkgs/by-name/de/delfin/package.nix
+++ b/pkgs/by-name/de/delfin/package.nix
@@ -21,20 +21,20 @@
 
 stdenv.mkDerivation rec {
   pname = "delfin";
-  version = "0.4.4";
+  version = "0.4.5";
 
   src = fetchFromGitea {
     domain = "codeberg.org";
     owner = "avery42";
     repo = "delfin";
     rev = "v${version}";
-    hash = "sha256-qbl0PvGKI3S845xLr0aXf/uk2uuOXMjvu9S3BOPzxa0=";
+    hash = "sha256-iqibdVMf4RBl/EuFvE6tEPDliYmRtIYCW/mO+nNKcWU=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-Js1mIotSOayYDjDVQMqXwaeSC2a1g1DeqD6QmeWwztk=";
+    hash = "sha256-2V2jx78S0Gj4/w3oduH/s7Pd6XG/GCs4lwhFCdGVdd8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/de/deltachat-rpc-server/package.nix b/pkgs/by-name/de/deltachat-rpc-server/package.nix
new file mode 100644
index 0000000000000..6c57548cf9e8c
--- /dev/null
+++ b/pkgs/by-name/de/deltachat-rpc-server/package.nix
@@ -0,0 +1,26 @@
+{ lib
+, rustPlatform
+, libdeltachat
+, perl
+, pkg-config
+}:
+
+rustPlatform.buildRustPackage {
+  pname = "deltachat-rpc-server";
+
+  inherit (libdeltachat) version src cargoLock buildInputs;
+
+  nativeBuildInputs = [
+    perl
+    pkg-config
+  ];
+
+  cargoBuildFlags = [ "--package" "deltachat-rpc-server" ];
+
+  doCheck = false;
+
+  meta = libdeltachat.meta // {
+    description = "Delta Chat RPC server exposing JSON-RPC core API over standard I/O";
+    mainProgram = "deltachat-rpc-server";
+  };
+}
diff --git a/pkgs/by-name/de/dependabot-cli/package.nix b/pkgs/by-name/de/dependabot-cli/package.nix
index b5b8eadad45b1..98bcbf46e6630 100644
--- a/pkgs/by-name/de/dependabot-cli/package.nix
+++ b/pkgs/by-name/de/dependabot-cli/package.nix
@@ -1,7 +1,6 @@
 { buildGoModule
 , dependabot-cli
 , fetchFromGitHub
-, fetchpatch
 , installShellFiles
 , lib
 , testers
@@ -54,7 +53,7 @@ buildGoModule {
 
   meta = with lib; {
     changelog = "https://github.com/dependabot/cli/releases/tag/v${version}";
-    description = "A tool for testing and debugging Dependabot update jobs";
+    description = "Tool for testing and debugging Dependabot update jobs";
     mainProgram = "dependabot";
     homepage = "https://github.com/dependabot/cli";
     license = licenses.mit;
diff --git a/pkgs/by-name/de/design/package.nix b/pkgs/by-name/de/design/package.nix
new file mode 100644
index 0000000000000..fc6b5f2fc4b47
--- /dev/null
+++ b/pkgs/by-name/de/design/package.nix
@@ -0,0 +1,58 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, wrapGAppsHook4
+, appstream-glib
+, blueprint-compiler
+, desktop-file-utils
+, meson
+, ninja
+, pkg-config
+, glib
+, gjs
+, libadwaita
+}:
+
+stdenv.mkDerivation rec {
+  pname = "design";
+  version = "46-alpha1";
+
+  src = fetchFromGitHub {
+    owner = "dubstar-04";
+    repo = "Design";
+    rev = "v${version}";
+    fetchSubmodules = true;
+    hash = "sha256-Q4R/Ztu4w8IRvq15xNXN/iP/6hIHe/W+me1jROGpYc8=";
+  };
+
+  nativeBuildInputs = [
+    appstream-glib
+    blueprint-compiler
+    desktop-file-utils
+    gjs
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook4
+  ];
+
+  buildInputs = [
+    glib
+    libadwaita
+  ];
+
+  # Use a symlink here so that the basename isn't changed by the wrapper which is used to decide the resource path.
+  postInstall = ''
+    mv $out/bin/io.github.dubstar_04.design $out/share/design/
+    ln -s $out/share/design/io.github.dubstar_04.design $out/bin
+  '';
+
+  meta = {
+    homepage = "https://github.com/dubstar-04/Design";
+    description = "2D CAD For GNOME";
+    maintainers = with lib.maintainers; [ linsui ];
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.linux;
+    mainProgram = "io.github.dubstar_04.design";
+  };
+}
diff --git a/pkgs/by-name/de/desktop-postflop/Cargo.lock b/pkgs/by-name/de/desktop-postflop/Cargo.lock
new file mode 100644
index 0000000000000..4dc2dae06bd68
--- /dev/null
+++ b/pkgs/by-name/de/desktop-postflop/Cargo.lock
@@ -0,0 +1,3894 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "addr2line"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea5d730647d4fadd988536d06fecce94b7b4f2a7efdae548f1cf4b63205518ab"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "alloc-no-stdlib"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
+
+[[package]]
+name = "alloc-stdlib"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
+dependencies = [
+ "alloc-no-stdlib",
+]
+
+[[package]]
+name = "android-tzdata"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+
+[[package]]
+name = "android_system_properties"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.75"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+
+[[package]]
+name = "atk"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c3d816ce6f0e2909a96830d6911c2aff044370b1ef92d7f267b43bae5addedd"
+dependencies = [
+ "atk-sys",
+ "bitflags 1.3.2",
+ "glib",
+ "libc",
+]
+
+[[package]]
+name = "atk-sys"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58aeb089fb698e06db8089971c7ee317ab9644bade33383f63631437b03aafb6"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps 6.1.1",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "backtrace"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "base64"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+
+[[package]]
+name = "base64"
+version = "0.21.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"
+
+[[package]]
+name = "bincode"
+version = "2.0.0-rc.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f11ea1a0346b94ef188834a65c068a03aec181c94896d481d7a0a40d85b0ce95"
+dependencies = [
+ "bincode_derive",
+ "serde",
+]
+
+[[package]]
+name = "bincode_derive"
+version = "2.0.0-rc.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e30759b3b99a1b802a7a3aa21c85c3ded5c28e1c83170d82d70f08bbf7f3e4c"
+dependencies = [
+ "virtue",
+]
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+
+[[package]]
+name = "block"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
+
+[[package]]
+name = "block-buffer"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "brotli"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f"
+dependencies = [
+ "alloc-no-stdlib",
+ "alloc-stdlib",
+ "brotli-decompressor",
+]
+
+[[package]]
+name = "brotli-decompressor"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da74e2b81409b1b743f8f0c62cc6254afefb8b8e50bbfe3735550f7aeefa3448"
+dependencies = [
+ "alloc-no-stdlib",
+ "alloc-stdlib",
+]
+
+[[package]]
+name = "bstr"
+version = "1.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c2f7349907b712260e64b0afe2f84692af14a454be26187d9df565c7f69266a"
+dependencies = [
+ "memchr",
+ "serde",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+
+[[package]]
+name = "bytemuck"
+version = "1.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
+
+[[package]]
+name = "byteorder"
+version = "1.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+
+[[package]]
+name = "bytes"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+
+[[package]]
+name = "cairo-rs"
+version = "0.15.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c76ee391b03d35510d9fa917357c7f1855bd9a6659c95a1b392e33f49b3369bc"
+dependencies = [
+ "bitflags 1.3.2",
+ "cairo-sys-rs",
+ "glib",
+ "libc",
+ "thiserror",
+]
+
+[[package]]
+name = "cairo-sys-rs"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps 6.1.1",
+]
+
+[[package]]
+name = "cargo_toml"
+version = "0.15.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "599aa35200ffff8f04c1925aa1acc92fa2e08874379ef42e210a80e527e60838"
+dependencies = [
+ "serde",
+ "toml 0.7.8",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.83"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+dependencies = [
+ "jobserver",
+ "libc",
+]
+
+[[package]]
+name = "cesu8"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
+
+[[package]]
+name = "cfb"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f"
+dependencies = [
+ "byteorder",
+ "fnv",
+ "uuid",
+]
+
+[[package]]
+name = "cfg-expr"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3431df59f28accaf4cb4eed4a9acc66bea3f3c3753aa6cdc2f024174ef232af7"
+dependencies = [
+ "smallvec",
+]
+
+[[package]]
+name = "cfg-expr"
+version = "0.15.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3"
+dependencies = [
+ "smallvec",
+ "target-lexicon",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "chrono"
+version = "0.4.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
+dependencies = [
+ "android-tzdata",
+ "iana-time-zone",
+ "num-traits",
+ "serde",
+ "windows-targets",
+]
+
+[[package]]
+name = "cocoa"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a"
+dependencies = [
+ "bitflags 1.3.2",
+ "block",
+ "cocoa-foundation",
+ "core-foundation",
+ "core-graphics",
+ "foreign-types",
+ "libc",
+ "objc",
+]
+
+[[package]]
+name = "cocoa-foundation"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7"
+dependencies = [
+ "bitflags 1.3.2",
+ "block",
+ "core-foundation",
+ "core-graphics-types",
+ "libc",
+ "objc",
+]
+
+[[package]]
+name = "color_quant"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
+
+[[package]]
+name = "combine"
+version = "4.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4"
+dependencies = [
+ "bytes",
+ "memchr",
+]
+
+[[package]]
+name = "convert_case"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
+
+[[package]]
+name = "core-foundation"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+
+[[package]]
+name = "core-graphics"
+version = "0.22.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "core-graphics-types",
+ "foreign-types",
+ "libc",
+]
+
+[[package]]
+name = "core-graphics-types"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2bb142d41022986c1d8ff29103a1411c8a3dfad3552f87a4f8dc50d61d4f4e33"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "libc",
+]
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "crc32fast"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
+dependencies = [
+ "cfg-if",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+dependencies = [
+ "cfg-if",
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
+dependencies = [
+ "autocfg",
+ "cfg-if",
+ "crossbeam-utils",
+ "memoffset",
+ "scopeguard",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "crypto-common"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+dependencies = [
+ "generic-array",
+ "typenum",
+]
+
+[[package]]
+name = "cssparser"
+version = "0.27.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a"
+dependencies = [
+ "cssparser-macros",
+ "dtoa-short",
+ "itoa 0.4.8",
+ "matches",
+ "phf 0.8.0",
+ "proc-macro2",
+ "quote",
+ "smallvec",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "cssparser-macros"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
+dependencies = [
+ "quote",
+ "syn 2.0.37",
+]
+
+[[package]]
+name = "ctor"
+version = "0.1.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096"
+dependencies = [
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "darling"
+version = "0.20.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.20.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim",
+ "syn 2.0.37",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.20.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
+dependencies = [
+ "darling_core",
+ "quote",
+ "syn 2.0.37",
+]
+
+[[package]]
+name = "deranged"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "derive_more"
+version = "0.99.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
+dependencies = [
+ "convert_case",
+ "proc-macro2",
+ "quote",
+ "rustc_version",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "desktop-postflop"
+version = "0.2.7"
+dependencies = [
+ "postflop-solver",
+ "rayon",
+ "serde",
+ "serde_json",
+ "sysinfo",
+ "tauri",
+ "tauri-build",
+]
+
+[[package]]
+name = "digest"
+version = "0.10.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+dependencies = [
+ "block-buffer",
+ "crypto-common",
+]
+
+[[package]]
+name = "dirs-next"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
+dependencies = [
+ "cfg-if",
+ "dirs-sys-next",
+]
+
+[[package]]
+name = "dirs-sys-next"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
+[[package]]
+name = "dispatch"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
+
+[[package]]
+name = "dtoa"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653"
+
+[[package]]
+name = "dtoa-short"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dbaceec3c6e4211c79e7b1800fb9680527106beb2f9c51904a3210c03a448c74"
+dependencies = [
+ "dtoa",
+]
+
+[[package]]
+name = "dunce"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
+
+[[package]]
+name = "either"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+
+[[package]]
+name = "embed-resource"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd0a2c9b742a980060d22545a7a83b573acd6b73045b9de6370c9530ce652f27"
+dependencies = [
+ "cc",
+ "rustc_version",
+ "toml 0.7.8",
+ "vswhom",
+ "winreg",
+]
+
+[[package]]
+name = "embed_plist"
+version = "1.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7"
+
+[[package]]
+name = "encoding_rs"
+version = "0.8.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd"
+dependencies = [
+ "errno-dragonfly",
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "errno-dragonfly"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+
+[[package]]
+name = "fdeflate"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10"
+dependencies = [
+ "simd-adler32",
+]
+
+[[package]]
+name = "field-offset"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f"
+dependencies = [
+ "memoffset",
+ "rustc_version",
+]
+
+[[package]]
+name = "filetime"
+version = "0.2.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall 0.3.5",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "flate2"
+version = "1.0.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010"
+dependencies = [
+ "crc32fast",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "futf"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843"
+dependencies = [
+ "mac",
+ "new_debug_unreachable",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+dependencies = [
+ "futures-core",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.37",
+]
+
+[[package]]
+name = "futures-task"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+
+[[package]]
+name = "futures-util"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+dependencies = [
+ "futures-core",
+ "futures-macro",
+ "futures-task",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "fxhash"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
+dependencies = [
+ "byteorder",
+]
+
+[[package]]
+name = "gdk"
+version = "0.15.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6e05c1f572ab0e1f15be94217f0dc29088c248b14f792a5ff0af0d84bcda9e8"
+dependencies = [
+ "bitflags 1.3.2",
+ "cairo-rs",
+ "gdk-pixbuf",
+ "gdk-sys",
+ "gio",
+ "glib",
+ "libc",
+ "pango",
+]
+
+[[package]]
+name = "gdk-pixbuf"
+version = "0.15.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad38dd9cc8b099cceecdf41375bb6d481b1b5a7cd5cd603e10a69a9383f8619a"
+dependencies = [
+ "bitflags 1.3.2",
+ "gdk-pixbuf-sys",
+ "gio",
+ "glib",
+ "libc",
+]
+
+[[package]]
+name = "gdk-pixbuf-sys"
+version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7"
+dependencies = [
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps 6.1.1",
+]
+
+[[package]]
+name = "gdk-sys"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32e7a08c1e8f06f4177fb7e51a777b8c1689f743a7bc11ea91d44d2226073a88"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "pkg-config",
+ "system-deps 6.1.1",
+]
+
+[[package]]
+name = "gdkwayland-sys"
+version = "0.15.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cca49a59ad8cfdf36ef7330fe7bdfbe1d34323220cc16a0de2679ee773aee2c2"
+dependencies = [
+ "gdk-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pkg-config",
+ "system-deps 6.1.1",
+]
+
+[[package]]
+name = "gdkx11-sys"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4b7f8c7a84b407aa9b143877e267e848ff34106578b64d1e0a24bf550716178"
+dependencies = [
+ "gdk-sys",
+ "glib-sys",
+ "libc",
+ "system-deps 6.1.1",
+ "x11",
+]
+
+[[package]]
+name = "generator"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e"
+dependencies = [
+ "cc",
+ "libc",
+ "log",
+ "rustversion",
+ "windows 0.48.0",
+]
+
+[[package]]
+name = "generic-array"
+version = "0.14.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+dependencies = [
+ "typenum",
+ "version_check",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi 0.9.0+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "gimli"
+version = "0.28.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
+
+[[package]]
+name = "gio"
+version = "0.15.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68fdbc90312d462781a395f7a16d96a2b379bb6ef8cd6310a2df272771c4283b"
+dependencies = [
+ "bitflags 1.3.2",
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "gio-sys",
+ "glib",
+ "libc",
+ "once_cell",
+ "thiserror",
+]
+
+[[package]]
+name = "gio-sys"
+version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps 6.1.1",
+ "winapi",
+]
+
+[[package]]
+name = "glib"
+version = "0.15.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d"
+dependencies = [
+ "bitflags 1.3.2",
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-task",
+ "glib-macros",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "once_cell",
+ "smallvec",
+ "thiserror",
+]
+
+[[package]]
+name = "glib-macros"
+version = "0.15.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10c6ae9f6fa26f4fb2ac16b528d138d971ead56141de489f8111e259b9df3c4a"
+dependencies = [
+ "anyhow",
+ "heck 0.4.1",
+ "proc-macro-crate",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "glib-sys"
+version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4"
+dependencies = [
+ "libc",
+ "system-deps 6.1.1",
+]
+
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
+name = "globset"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d"
+dependencies = [
+ "aho-corasick",
+ "bstr",
+ "fnv",
+ "log",
+ "regex",
+]
+
+[[package]]
+name = "gobject-sys"
+version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps 6.1.1",
+]
+
+[[package]]
+name = "gtk"
+version = "0.15.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92e3004a2d5d6d8b5057d2b57b3712c9529b62e82c77f25c1fecde1fd5c23bd0"
+dependencies = [
+ "atk",
+ "bitflags 1.3.2",
+ "cairo-rs",
+ "field-offset",
+ "futures-channel",
+ "gdk",
+ "gdk-pixbuf",
+ "gio",
+ "glib",
+ "gtk-sys",
+ "gtk3-macros",
+ "libc",
+ "once_cell",
+ "pango",
+ "pkg-config",
+]
+
+[[package]]
+name = "gtk-sys"
+version = "0.15.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d5bc2f0587cba247f60246a0ca11fe25fb733eabc3de12d1965fc07efab87c84"
+dependencies = [
+ "atk-sys",
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gdk-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "system-deps 6.1.1",
+]
+
+[[package]]
+name = "gtk3-macros"
+version = "0.15.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "684c0456c086e8e7e9af73ec5b84e35938df394712054550e81558d21c44ab0d"
+dependencies = [
+ "anyhow",
+ "proc-macro-crate",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
+name = "hashbrown"
+version = "0.14.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12"
+
+[[package]]
+name = "heck"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
+dependencies = [
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+
+[[package]]
+name = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
+[[package]]
+name = "html5ever"
+version = "0.25.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148"
+dependencies = [
+ "log",
+ "mac",
+ "markup5ever 0.10.1",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "html5ever"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7"
+dependencies = [
+ "log",
+ "mac",
+ "markup5ever 0.11.0",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "http"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa 1.0.9",
+]
+
+[[package]]
+name = "http-range"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573"
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "windows 0.48.0",
+]
+
+[[package]]
+name = "iana-time-zone-haiku"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "ico"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3804960be0bb5e4edb1e1ad67afd321a9ecfd875c3e65c099468fd2717d7cae"
+dependencies = [
+ "byteorder",
+ "png",
+]
+
+[[package]]
+name = "ident_case"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
+[[package]]
+name = "idna"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "ignore"
+version = "0.4.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492"
+dependencies = [
+ "globset",
+ "lazy_static",
+ "log",
+ "memchr",
+ "regex",
+ "same-file",
+ "thread_local",
+ "walkdir",
+ "winapi-util",
+]
+
+[[package]]
+name = "image"
+version = "0.24.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711"
+dependencies = [
+ "bytemuck",
+ "byteorder",
+ "color_quant",
+ "num-rational",
+ "num-traits",
+]
+
+[[package]]
+name = "indexmap"
+version = "1.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+dependencies = [
+ "autocfg",
+ "hashbrown 0.12.3",
+ "serde",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.14.1",
+ "serde",
+]
+
+[[package]]
+name = "infer"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a898e4b7951673fce96614ce5751d13c40fc5674bc2d759288e46c3ab62598b3"
+dependencies = [
+ "cfb",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "itoa"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
+
+[[package]]
+name = "itoa"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+
+[[package]]
+name = "javascriptcore-rs"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf053e7843f2812ff03ef5afe34bb9c06ffee120385caad4f6b9967fcd37d41c"
+dependencies = [
+ "bitflags 1.3.2",
+ "glib",
+ "javascriptcore-rs-sys",
+]
+
+[[package]]
+name = "javascriptcore-rs-sys"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "905fbb87419c5cde6e3269537e4ea7d46431f3008c5d057e915ef3f115e7793c"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps 5.0.0",
+]
+
+[[package]]
+name = "jni"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c"
+dependencies = [
+ "cesu8",
+ "combine",
+ "jni-sys",
+ "log",
+ "thiserror",
+ "walkdir",
+]
+
+[[package]]
+name = "jni-sys"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
+
+[[package]]
+name = "jobserver"
+version = "0.1.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "js-sys"
+version = "0.3.64"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "json-patch"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f7765dccf8c39c3a470fc694efe322969d791e713ca46bc7b5c506886157572"
+dependencies = [
+ "serde",
+ "serde_json",
+ "thiserror",
+ "treediff",
+]
+
+[[package]]
+name = "kuchiki"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ea8e9c6e031377cff82ee3001dc8026cdf431ed4e2e6b51f98ab8c73484a358"
+dependencies = [
+ "cssparser",
+ "html5ever 0.25.2",
+ "matches",
+ "selectors",
+]
+
+[[package]]
+name = "kuchikiki"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f29e4755b7b995046f510a7520c42b2fed58b77bd94d5a87a8eb43d2fd126da8"
+dependencies = [
+ "cssparser",
+ "html5ever 0.26.0",
+ "indexmap 1.9.3",
+ "matches",
+ "selectors",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libc"
+version = "0.2.148"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b"
+
+[[package]]
+name = "line-wrap"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9"
+dependencies = [
+ "safemem",
+]
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3852614a3bd9ca9804678ba6be5e3b8ce76dfc902cae004e3e0c44051b6e88db"
+
+[[package]]
+name = "lock_api"
+version = "0.4.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+
+[[package]]
+name = "loom"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5"
+dependencies = [
+ "cfg-if",
+ "generator",
+ "scoped-tls",
+ "serde",
+ "serde_json",
+ "tracing",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "mac"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
+
+[[package]]
+name = "malloc_buf"
+version = "0.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "markup5ever"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd"
+dependencies = [
+ "log",
+ "phf 0.8.0",
+ "phf_codegen 0.8.0",
+ "string_cache",
+ "string_cache_codegen",
+ "tendril",
+]
+
+[[package]]
+name = "markup5ever"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016"
+dependencies = [
+ "log",
+ "phf 0.10.1",
+ "phf_codegen 0.10.0",
+ "string_cache",
+ "string_cache_codegen",
+ "tendril",
+]
+
+[[package]]
+name = "matchers"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
+dependencies = [
+ "regex-automata 0.1.10",
+]
+
+[[package]]
+name = "matches"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
+
+[[package]]
+name = "memchr"
+version = "2.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c"
+
+[[package]]
+name = "memoffset"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "miniz_oxide"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+dependencies = [
+ "adler",
+ "simd-adler32",
+]
+
+[[package]]
+name = "ndk"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4"
+dependencies = [
+ "bitflags 1.3.2",
+ "jni-sys",
+ "ndk-sys",
+ "num_enum",
+ "thiserror",
+]
+
+[[package]]
+name = "ndk-context"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
+
+[[package]]
+name = "ndk-sys"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97"
+dependencies = [
+ "jni-sys",
+]
+
+[[package]]
+name = "new_debug_unreachable"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
+
+[[package]]
+name = "nodrop"
+version = "0.1.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
+
+[[package]]
+name = "ntapi"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "nu-ansi-term"
+version = "0.46.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
+dependencies = [
+ "overload",
+ "winapi",
+]
+
+[[package]]
+name = "num-integer"
+version = "0.1.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+dependencies = [
+ "autocfg",
+ "num-traits",
+]
+
+[[package]]
+name = "num-rational"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "num_enum"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9"
+dependencies = [
+ "num_enum_derive",
+]
+
+[[package]]
+name = "num_enum_derive"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799"
+dependencies = [
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "objc"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
+dependencies = [
+ "malloc_buf",
+ "objc_exception",
+]
+
+[[package]]
+name = "objc-foundation"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
+dependencies = [
+ "block",
+ "objc",
+ "objc_id",
+]
+
+[[package]]
+name = "objc_exception"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "objc_id"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
+dependencies = [
+ "objc",
+]
+
+[[package]]
+name = "object"
+version = "0.32.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+
+[[package]]
+name = "open"
+version = "3.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2078c0039e6a54a0c42c28faa984e115fb4c2d5bf2208f77d1961002df8576f8"
+dependencies = [
+ "pathdiff",
+ "windows-sys 0.42.0",
+]
+
+[[package]]
+name = "overload"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
+[[package]]
+name = "pango"
+version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22e4045548659aee5313bde6c582b0d83a627b7904dd20dc2d9ef0895d414e4f"
+dependencies = [
+ "bitflags 1.3.2",
+ "glib",
+ "libc",
+ "once_cell",
+ "pango-sys",
+]
+
+[[package]]
+name = "pango-sys"
+version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps 6.1.1",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall 0.3.5",
+ "smallvec",
+ "windows-targets",
+]
+
+[[package]]
+name = "pathdiff"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
+
+[[package]]
+name = "percent-encoding"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+
+[[package]]
+name = "phf"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
+dependencies = [
+ "phf_macros 0.8.0",
+ "phf_shared 0.8.0",
+ "proc-macro-hack",
+]
+
+[[package]]
+name = "phf"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
+dependencies = [
+ "phf_macros 0.10.0",
+ "phf_shared 0.10.0",
+ "proc-macro-hack",
+]
+
+[[package]]
+name = "phf_codegen"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815"
+dependencies = [
+ "phf_generator 0.8.0",
+ "phf_shared 0.8.0",
+]
+
+[[package]]
+name = "phf_codegen"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd"
+dependencies = [
+ "phf_generator 0.10.0",
+ "phf_shared 0.10.0",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526"
+dependencies = [
+ "phf_shared 0.8.0",
+ "rand 0.7.3",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
+dependencies = [
+ "phf_shared 0.10.0",
+ "rand 0.8.5",
+]
+
+[[package]]
+name = "phf_macros"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c"
+dependencies = [
+ "phf_generator 0.8.0",
+ "phf_shared 0.8.0",
+ "proc-macro-hack",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "phf_macros"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0"
+dependencies = [
+ "phf_generator 0.10.0",
+ "phf_shared 0.10.0",
+ "proc-macro-hack",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+
+[[package]]
+name = "plist"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdc0001cfea3db57a2e24bc0d818e9e20e554b5f97fabb9bc231dc240269ae06"
+dependencies = [
+ "base64 0.21.4",
+ "indexmap 1.9.3",
+ "line-wrap",
+ "quick-xml",
+ "serde",
+ "time",
+]
+
+[[package]]
+name = "png"
+version = "0.17.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64"
+dependencies = [
+ "bitflags 1.3.2",
+ "crc32fast",
+ "fdeflate",
+ "flate2",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "postflop-solver"
+version = "0.1.0"
+source = "git+https://github.com/b-inary/postflop-solver#f3e25657e8d50e93dcf0ba516e58ed06eae5f20a"
+dependencies = [
+ "bincode",
+ "once_cell",
+ "rayon",
+ "regex",
+ "zstd",
+]
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "precomputed-hash"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
+
+[[package]]
+name = "proc-macro-crate"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
+dependencies = [
+ "once_cell",
+ "toml_edit",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-hack"
+version = "0.5.20+deprecated"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.67"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quick-xml"
+version = "0.29.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81b9228215d82c7b61490fec1de287136b5de6f5700f6e58ea9ad61a7964ca51"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom 0.1.16",
+ "libc",
+ "rand_chacha 0.2.2",
+ "rand_core 0.5.1",
+ "rand_hc",
+ "rand_pcg",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha 0.3.1",
+ "rand_core 0.6.4",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+dependencies = [
+ "ppv-lite86",
+ "rand_core 0.5.1",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core 0.6.4",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+dependencies = [
+ "getrandom 0.1.16",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom 0.2.10",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+dependencies = [
+ "rand_core 0.5.1",
+]
+
+[[package]]
+name = "rand_pcg"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
+dependencies = [
+ "rand_core 0.5.1",
+]
+
+[[package]]
+name = "raw-window-handle"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
+
+[[package]]
+name = "rayon"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+dependencies = [
+ "getrandom 0.2.10",
+ "redox_syscall 0.2.16",
+ "thiserror",
+]
+
+[[package]]
+name = "regex"
+version = "1.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ebee201405406dbf528b8b672104ae6d6d63e6d118cb10e4d51abbc7b58044ff"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata 0.3.9",
+ "regex-syntax 0.7.5",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+dependencies = [
+ "regex-syntax 0.6.29",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59b23e92ee4318893fa3fe3e6fb365258efbfe6ac6ab30f090cdcbb7aa37efa9"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax 0.7.5",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+
+[[package]]
+name = "regex-syntax"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
+
+[[package]]
+name = "rfd"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0149778bd99b6959285b0933288206090c50e2327f47a9c463bfdbf45c8823ea"
+dependencies = [
+ "block",
+ "dispatch",
+ "glib-sys",
+ "gobject-sys",
+ "gtk-sys",
+ "js-sys",
+ "lazy_static",
+ "log",
+ "objc",
+ "objc-foundation",
+ "objc_id",
+ "raw-window-handle",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "windows 0.37.0",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "rustix"
+version = "0.38.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2f9da0cbd88f9f09e7814e388301c8414c51c62aa6ce1e4b5c551d49d96e531"
+dependencies = [
+ "bitflags 2.4.0",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+
+[[package]]
+name = "ryu"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+
+[[package]]
+name = "safemem"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
+
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "scoped-tls"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "selectors"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe"
+dependencies = [
+ "bitflags 1.3.2",
+ "cssparser",
+ "derive_more",
+ "fxhash",
+ "log",
+ "matches",
+ "phf 0.8.0",
+ "phf_codegen 0.8.0",
+ "precomputed-hash",
+ "servo_arc",
+ "smallvec",
+ "thin-slice",
+]
+
+[[package]]
+name = "semver"
+version = "1.0.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad977052201c6de01a8ef2aa3378c4bd23217a056337d1d6da40468d267a4fb0"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.188"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.188"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.37",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.107"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
+dependencies = [
+ "itoa 1.0.9",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_repr"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.37",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_with"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ca3b16a3d82c4088f343b7480a93550b3eabe1a358569c2dfe38bbcead07237"
+dependencies = [
+ "base64 0.21.4",
+ "chrono",
+ "hex",
+ "indexmap 1.9.3",
+ "indexmap 2.0.2",
+ "serde",
+ "serde_json",
+ "serde_with_macros",
+ "time",
+]
+
+[[package]]
+name = "serde_with_macros"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e6be15c453eb305019bfa438b1593c731f36a289a7853f7707ee29e870b3b3c"
+dependencies = [
+ "darling",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.37",
+]
+
+[[package]]
+name = "serialize-to-javascript"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb"
+dependencies = [
+ "serde",
+ "serde_json",
+ "serialize-to-javascript-impl",
+]
+
+[[package]]
+name = "serialize-to-javascript-impl"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "servo_arc"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432"
+dependencies = [
+ "nodrop",
+ "stable_deref_trait",
+]
+
+[[package]]
+name = "sha2"
+version = "0.10.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sharded-slab"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1b21f559e07218024e7e9f90f96f601825397de0e25420135f7f952453fed0b"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "simd-adler32"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
+
+[[package]]
+name = "siphasher"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a"
+
+[[package]]
+name = "soup2"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2b4d76501d8ba387cf0fefbe055c3e0a59891d09f0f995ae4e4b16f6b60f3c0"
+dependencies = [
+ "bitflags 1.3.2",
+ "gio",
+ "glib",
+ "libc",
+ "once_cell",
+ "soup2-sys",
+]
+
+[[package]]
+name = "soup2-sys"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "009ef427103fcb17f802871647a7fa6c60cbb654b4c4e4c0ac60a31c5f6dc9cf"
+dependencies = [
+ "bitflags 1.3.2",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps 5.0.0",
+]
+
+[[package]]
+name = "stable_deref_trait"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+
+[[package]]
+name = "state"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dbe866e1e51e8260c9eed836a042a5e7f6726bb2b411dffeaa712e19c388f23b"
+dependencies = [
+ "loom",
+]
+
+[[package]]
+name = "string_cache"
+version = "0.8.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b"
+dependencies = [
+ "new_debug_unreachable",
+ "once_cell",
+ "parking_lot",
+ "phf_shared 0.10.0",
+ "precomputed-hash",
+ "serde",
+]
+
+[[package]]
+name = "string_cache_codegen"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988"
+dependencies = [
+ "phf_generator 0.10.0",
+ "phf_shared 0.10.0",
+ "proc-macro2",
+ "quote",
+]
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "sysinfo"
+version = "0.29.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0a18d114d420ada3a891e6bc8e96a2023402203296a47cdd65083377dad18ba5"
+dependencies = [
+ "cfg-if",
+ "core-foundation-sys",
+ "libc",
+ "ntapi",
+ "once_cell",
+ "rayon",
+ "winapi",
+]
+
+[[package]]
+name = "system-deps"
+version = "5.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18db855554db7bd0e73e06cf7ba3df39f97812cb11d3f75e71c39bf45171797e"
+dependencies = [
+ "cfg-expr 0.9.1",
+ "heck 0.3.3",
+ "pkg-config",
+ "toml 0.5.11",
+ "version-compare 0.0.11",
+]
+
+[[package]]
+name = "system-deps"
+version = "6.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30c2de8a4d8f4b823d634affc9cd2a74ec98c53a756f317e529a48046cbf71f3"
+dependencies = [
+ "cfg-expr 0.15.5",
+ "heck 0.4.1",
+ "pkg-config",
+ "toml 0.7.8",
+ "version-compare 0.1.1",
+]
+
+[[package]]
+name = "tao"
+version = "0.16.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2bbc1134456b525a0e560ff48b185acb5178621df0dafa96e927826becb5184e"
+dependencies = [
+ "bitflags 1.3.2",
+ "cairo-rs",
+ "cc",
+ "cocoa",
+ "core-foundation",
+ "core-graphics",
+ "crossbeam-channel",
+ "dispatch",
+ "gdk",
+ "gdk-pixbuf",
+ "gdk-sys",
+ "gdkwayland-sys",
+ "gdkx11-sys",
+ "gio",
+ "glib",
+ "glib-sys",
+ "gtk",
+ "image",
+ "instant",
+ "jni",
+ "lazy_static",
+ "libc",
+ "log",
+ "ndk",
+ "ndk-context",
+ "ndk-sys",
+ "objc",
+ "once_cell",
+ "parking_lot",
+ "png",
+ "raw-window-handle",
+ "scopeguard",
+ "serde",
+ "tao-macros",
+ "unicode-segmentation",
+ "uuid",
+ "windows 0.39.0",
+ "windows-implement",
+ "x11-dl",
+]
+
+[[package]]
+name = "tao-macros"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec114582505d158b669b136e6851f85840c109819d77c42bb7c0709f727d18c2"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "tar"
+version = "0.4.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb"
+dependencies = [
+ "filetime",
+ "libc",
+ "xattr",
+]
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a"
+
+[[package]]
+name = "tauri"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72aee3277d0a0df01472cc704ab5934a51a1f25348838df17bfb3c5cb727880c"
+dependencies = [
+ "anyhow",
+ "cocoa",
+ "dirs-next",
+ "embed_plist",
+ "encoding_rs",
+ "flate2",
+ "futures-util",
+ "glib",
+ "glob",
+ "gtk",
+ "heck 0.4.1",
+ "http",
+ "ignore",
+ "objc",
+ "once_cell",
+ "open",
+ "percent-encoding",
+ "rand 0.8.5",
+ "raw-window-handle",
+ "regex",
+ "rfd",
+ "semver",
+ "serde",
+ "serde_json",
+ "serde_repr",
+ "serialize-to-javascript",
+ "state",
+ "tar",
+ "tauri-macros",
+ "tauri-runtime",
+ "tauri-runtime-wry",
+ "tauri-utils",
+ "tempfile",
+ "thiserror",
+ "tokio",
+ "url",
+ "uuid",
+ "webkit2gtk",
+ "webview2-com",
+ "windows 0.39.0",
+]
+
+[[package]]
+name = "tauri-build"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "defbfc551bd38ab997e5f8e458f87396d2559d05ce32095076ad6c30f7fc5f9c"
+dependencies = [
+ "anyhow",
+ "cargo_toml",
+ "dirs-next",
+ "heck 0.4.1",
+ "json-patch",
+ "semver",
+ "serde",
+ "serde_json",
+ "tauri-utils",
+ "tauri-winres",
+ "walkdir",
+]
+
+[[package]]
+name = "tauri-codegen"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b3475e55acec0b4a50fb96435f19631fb58cbcd31923e1a213de5c382536bbb"
+dependencies = [
+ "base64 0.21.4",
+ "brotli",
+ "ico",
+ "json-patch",
+ "plist",
+ "png",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "semver",
+ "serde",
+ "serde_json",
+ "sha2",
+ "tauri-utils",
+ "thiserror",
+ "time",
+ "uuid",
+ "walkdir",
+]
+
+[[package]]
+name = "tauri-macros"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "613740228de92d9196b795ac455091d3a5fbdac2654abb8bb07d010b62ab43af"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "tauri-codegen",
+ "tauri-utils",
+]
+
+[[package]]
+name = "tauri-runtime"
+version = "0.14.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07f8e9e53e00e9f41212c115749e87d5cd2a9eebccafca77a19722eeecd56d43"
+dependencies = [
+ "gtk",
+ "http",
+ "http-range",
+ "rand 0.8.5",
+ "raw-window-handle",
+ "serde",
+ "serde_json",
+ "tauri-utils",
+ "thiserror",
+ "url",
+ "uuid",
+ "webview2-com",
+ "windows 0.39.0",
+]
+
+[[package]]
+name = "tauri-runtime-wry"
+version = "0.14.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8141d72b6b65f2008911e9ef5b98a68d1e3413b7a1464e8f85eb3673bb19a895"
+dependencies = [
+ "cocoa",
+ "gtk",
+ "percent-encoding",
+ "rand 0.8.5",
+ "raw-window-handle",
+ "tauri-runtime",
+ "tauri-utils",
+ "uuid",
+ "webkit2gtk",
+ "webview2-com",
+ "windows 0.39.0",
+ "wry",
+]
+
+[[package]]
+name = "tauri-utils"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34d55e185904a84a419308d523c2c6891d5e2dbcee740c4997eb42e75a7b0f46"
+dependencies = [
+ "brotli",
+ "ctor",
+ "dunce",
+ "glob",
+ "heck 0.4.1",
+ "html5ever 0.26.0",
+ "infer",
+ "json-patch",
+ "kuchikiki",
+ "log",
+ "memchr",
+ "phf 0.10.1",
+ "proc-macro2",
+ "quote",
+ "semver",
+ "serde",
+ "serde_json",
+ "serde_with",
+ "thiserror",
+ "url",
+ "walkdir",
+ "windows 0.39.0",
+]
+
+[[package]]
+name = "tauri-winres"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5993dc129e544393574288923d1ec447c857f3f644187f4fbf7d9a875fbfc4fb"
+dependencies = [
+ "embed-resource",
+ "toml 0.7.8",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "redox_syscall 0.3.5",
+ "rustix",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "tendril"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0"
+dependencies = [
+ "futf",
+ "mac",
+ "utf-8",
+]
+
+[[package]]
+name = "thin-slice"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c"
+
+[[package]]
+name = "thiserror"
+version = "1.0.49"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.49"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.37",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+]
+
+[[package]]
+name = "time"
+version = "0.3.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "426f806f4089c493dcac0d24c29c01e2c38baf8e30f1b716ee37e83d200b18fe"
+dependencies = [
+ "deranged",
+ "itoa 1.0.9",
+ "serde",
+ "time-core",
+ "time-macros",
+]
+
+[[package]]
+name = "time-core"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
+
+[[package]]
+name = "time-macros"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"
+dependencies = [
+ "time-core",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "tokio"
+version = "1.32.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"
+dependencies = [
+ "backtrace",
+ "bytes",
+ "num_cpus",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "toml"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml"
+version = "0.7.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.19.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
+dependencies = [
+ "indexmap 2.0.2",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "tracing"
+version = "0.1.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+dependencies = [
+ "cfg-if",
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.37",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
+dependencies = [
+ "once_cell",
+ "valuable",
+]
+
+[[package]]
+name = "tracing-log"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
+dependencies = [
+ "lazy_static",
+ "log",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-subscriber"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77"
+dependencies = [
+ "matchers",
+ "nu-ansi-term",
+ "once_cell",
+ "regex",
+ "sharded-slab",
+ "smallvec",
+ "thread_local",
+ "tracing",
+ "tracing-core",
+ "tracing-log",
+]
+
+[[package]]
+name = "treediff"
+version = "4.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52984d277bdf2a751072b5df30ec0377febdb02f7696d64c2d7d54630bac4303"
+dependencies = [
+ "serde_json",
+]
+
+[[package]]
+name = "typenum"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+
+[[package]]
+name = "url"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+ "serde",
+]
+
+[[package]]
+name = "utf-8"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
+
+[[package]]
+name = "uuid"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d"
+dependencies = [
+ "getrandom 0.2.10",
+]
+
+[[package]]
+name = "valuable"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+
+[[package]]
+name = "version-compare"
+version = "0.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b"
+
+[[package]]
+name = "version-compare"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "virtue"
+version = "0.0.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9dcc60c0624df774c82a0ef104151231d37da4962957d691c011c852b2473314"
+
+[[package]]
+name = "vswhom"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b"
+dependencies = [
+ "libc",
+ "vswhom-sys",
+]
+
+[[package]]
+name = "vswhom-sys"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "walkdir"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
+dependencies = [
+ "same-file",
+ "winapi-util",
+]
+
+[[package]]
+name = "wasi"
+version = "0.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.87"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.87"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.37",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.87"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.87"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.37",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.87"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+
+[[package]]
+name = "web-sys"
+version = "0.3.64"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "webkit2gtk"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8f859735e4a452aeb28c6c56a852967a8a76c8eb1cc32dbf931ad28a13d6370"
+dependencies = [
+ "bitflags 1.3.2",
+ "cairo-rs",
+ "gdk",
+ "gdk-sys",
+ "gio",
+ "gio-sys",
+ "glib",
+ "glib-sys",
+ "gobject-sys",
+ "gtk",
+ "gtk-sys",
+ "javascriptcore-rs",
+ "libc",
+ "once_cell",
+ "soup2",
+ "webkit2gtk-sys",
+]
+
+[[package]]
+name = "webkit2gtk-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d76ca6ecc47aeba01ec61e480139dda143796abcae6f83bcddf50d6b5b1dcf3"
+dependencies = [
+ "atk-sys",
+ "bitflags 1.3.2",
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gdk-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "gtk-sys",
+ "javascriptcore-rs-sys",
+ "libc",
+ "pango-sys",
+ "pkg-config",
+ "soup2-sys",
+ "system-deps 6.1.1",
+]
+
+[[package]]
+name = "webview2-com"
+version = "0.19.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4a769c9f1a64a8734bde70caafac2b96cada12cd4aefa49196b3a386b8b4178"
+dependencies = [
+ "webview2-com-macros",
+ "webview2-com-sys",
+ "windows 0.39.0",
+ "windows-implement",
+]
+
+[[package]]
+name = "webview2-com-macros"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eaebe196c01691db62e9e4ca52c5ef1e4fd837dcae27dae3ada599b5a8fd05ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "webview2-com-sys"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aac48ef20ddf657755fdcda8dfed2a7b4fc7e4581acce6fe9b88c3d64f29dee7"
+dependencies = [
+ "regex",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "windows 0.39.0",
+ "windows-bindgen",
+ "windows-metadata",
+]
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows"
+version = "0.37.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57b543186b344cc61c85b5aab0d2e3adf4e0f99bc076eff9aa5927bcc0b8a647"
+dependencies = [
+ "windows_aarch64_msvc 0.37.0",
+ "windows_i686_gnu 0.37.0",
+ "windows_i686_msvc 0.37.0",
+ "windows_x86_64_gnu 0.37.0",
+ "windows_x86_64_msvc 0.37.0",
+]
+
+[[package]]
+name = "windows"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1c4bd0a50ac6020f65184721f758dba47bb9fbc2133df715ec74a237b26794a"
+dependencies = [
+ "windows-implement",
+ "windows_aarch64_msvc 0.39.0",
+ "windows_i686_gnu 0.39.0",
+ "windows_i686_msvc 0.39.0",
+ "windows_x86_64_gnu 0.39.0",
+ "windows_x86_64_msvc 0.39.0",
+]
+
+[[package]]
+name = "windows"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-bindgen"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68003dbd0e38abc0fb85b939240f4bce37c43a5981d3df37ccbaaa981b47cb41"
+dependencies = [
+ "windows-metadata",
+ "windows-tokens",
+]
+
+[[package]]
+name = "windows-implement"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba01f98f509cb5dc05f4e5fc95e535f78260f15fea8fe1a8abdd08f774f1cee7"
+dependencies = [
+ "syn 1.0.109",
+ "windows-tokens",
+]
+
+[[package]]
+name = "windows-metadata"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ee5e275231f07c6e240d14f34e1b635bf1faa1c76c57cfd59a5cdb9848e4278"
+
+[[package]]
+name = "windows-sys"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+dependencies = [
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-tokens"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.37.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2623277cb2d1c216ba3b578c0f3cf9cdebeddb6e66b1b218bb33596ea7769c3a"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.37.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3925fd0b0b804730d44d4b6278c50f9699703ec49bcd628020f46f4ba07d9e1"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.37.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce907ac74fe331b524c1298683efbf598bb031bc84d5e274db2083696d07c57c"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.37.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2babfba0828f2e6b32457d5341427dcbb577ceef556273229959ac23a10af33d"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.37.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4dd6dc7df2d84cf7b33822ed5b86318fb1781948e9663bacd047fc9dd52259d"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "winnow"
+version = "0.5.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winreg"
+version = "0.51.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "937f3df7948156640f46aacef17a70db0de5917bda9c92b0f751f3a955b588fc"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "wry"
+version = "0.24.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ef04bdad49eba2e01f06e53688c8413bd6a87b0bc14b72284465cf96e3578e"
+dependencies = [
+ "base64 0.13.1",
+ "block",
+ "cocoa",
+ "core-graphics",
+ "crossbeam-channel",
+ "dunce",
+ "gdk",
+ "gio",
+ "glib",
+ "gtk",
+ "html5ever 0.25.2",
+ "http",
+ "kuchiki",
+ "libc",
+ "log",
+ "objc",
+ "objc_id",
+ "once_cell",
+ "serde",
+ "serde_json",
+ "sha2",
+ "soup2",
+ "tao",
+ "thiserror",
+ "url",
+ "webkit2gtk",
+ "webkit2gtk-sys",
+ "webview2-com",
+ "windows 0.39.0",
+ "windows-implement",
+]
+
+[[package]]
+name = "x11"
+version = "2.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e"
+dependencies = [
+ "libc",
+ "pkg-config",
+]
+
+[[package]]
+name = "x11-dl"
+version = "2.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f"
+dependencies = [
+ "libc",
+ "once_cell",
+ "pkg-config",
+]
+
+[[package]]
+name = "xattr"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "zstd"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c"
+dependencies = [
+ "zstd-safe",
+]
+
+[[package]]
+name = "zstd-safe"
+version = "6.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581"
+dependencies = [
+ "libc",
+ "zstd-sys",
+]
+
+[[package]]
+name = "zstd-sys"
+version = "2.0.8+zstd.1.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+]
diff --git a/pkgs/by-name/de/desktop-postflop/package.nix b/pkgs/by-name/de/desktop-postflop/package.nix
new file mode 100644
index 0000000000000..0dd74943fc385
--- /dev/null
+++ b/pkgs/by-name/de/desktop-postflop/package.nix
@@ -0,0 +1,89 @@
+{ lib
+, rustPlatform
+, buildNpmPackage
+, fetchFromGitHub
+, copyDesktopItems
+, makeDesktopItem
+, pkg-config
+, gtk3
+, libsoup
+, webkitgtk
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "desktop-postflop";
+  version = "0.2.7";
+
+  src = fetchFromGitHub {
+    owner = "b-inary";
+    repo = "desktop-postflop";
+    rev = "v${version}";
+    hash = "sha256-pOPxNHM4mseIuyyWNoU0l+dGvfURH0+9+rmzRIF0I5s=";
+  };
+
+  npmDist = buildNpmPackage {
+    name = "${pname}-${version}-dist";
+    inherit src;
+
+    npmDepsHash = "sha256-HWZLicyKL2FHDjZQj9/CRwVi+uc/jHmVNxtlDuclf7s=";
+
+    installPhase = ''
+      mkdir -p $out
+      cp -r dist/* $out
+    '';
+  };
+
+  sourceRoot = "source/src-tauri";
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "postflop-solver-0.1.0" = "sha256-coEl09eMbQqSos1sqWLnfXfhujSTsnVnOlOQ+JbdFWY=";
+    };
+  };
+
+  postPatch = ''
+    substituteInPlace tauri.conf.json \
+        --replace "../dist" "${npmDist}"
+  '';
+
+  # postflop-solver requires unstable rust features
+  env.RUSTC_BOOTSTRAP = 1;
+
+  nativeBuildInputs = [
+    copyDesktopItems
+    pkg-config
+  ];
+
+  buildInputs = [
+    gtk3
+    libsoup
+    webkitgtk
+  ];
+
+  postInstall = ''
+    install -Dm644 ${src}/public/favicon.png $out/share/icons/hicolor/128x128/apps/desktop-postflop.png
+  '';
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "desktop-postflop";
+      exec = "desktop-postflop";
+      icon = "desktop-postflop";
+      desktopName = "Desktop Postflop";
+      comment = meta.description;
+      categories = [ "Utility" ];
+      terminal = false;
+    })
+  ];
+
+  meta = {
+    changelog = "https://github.com/b-inary/desktop-postflop/releases/tag/${src.rev}";
+    description = "Free, open-source GTO solver for Texas hold'em poker";
+    homepage = "https://github.com/b-inary/desktop-postflop";
+    license = lib.licenses.agpl3Plus;
+    mainProgram = "desktop-postflop";
+    maintainers = with lib.maintainers; [ tomasajt ];
+  };
+}
+
diff --git a/pkgs/by-name/de/devcontainer/package.nix b/pkgs/by-name/de/devcontainer/package.nix
index affb09cad6d0c..5d80b7a9576a6 100644
--- a/pkgs/by-name/de/devcontainer/package.nix
+++ b/pkgs/by-name/de/devcontainer/package.nix
@@ -1,40 +1,46 @@
-{ lib
-, stdenv
-, fetchYarnDeps
-, fetchFromGitHub
-, fixup-yarn-lock
-, nodejs
-, python3
-, makeWrapper
-, git
-, docker
-, yarn
-, docker-compose
+{
+  lib,
+  stdenv,
+  fetchYarnDeps,
+  fetchFromGitHub,
+  fixup-yarn-lock,
+  nodejs,
+  python3,
+  makeBinaryWrapper,
+  git,
+  docker,
+  yarn,
+  docker-compose,
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "devcontainer";
-  version = "0.60.0";
+  version = "0.64.0";
 
   src = fetchFromGitHub {
     owner = "devcontainers";
     repo = "cli";
-    rev = "v${finalAttrs.version}";
-    hash = "sha256-/QznJhw+DYwnj/kdP6f4liJlOFhNQO0y7r4i55bJPug=";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-kO5bRLbHNObDLGURrEgNLK70ml2FVDQioLa8cbBBurk=";
   };
 
   yarnOfflineCache = fetchYarnDeps {
-    yarnLock = finalAttrs.src + "/yarn.lock";
+    yarnLock = "${finalAttrs.src}/yarn.lock";
     hash = "sha256-tN7qAvfYmDz5ZtgZL5+ZZtkuxZxvlS9FM3+dGl+daUQ=";
   };
 
-  nativeBuildInputs = [ yarn fixup-yarn-lock python3 makeWrapper ];
+  nativeBuildInputs = [
+    yarn
+    fixup-yarn-lock
+    python3
+    makeBinaryWrapper
+    nodejs
+  ];
 
   buildPhase = ''
     runHook preBuild
 
     export HOME=$(mktemp -d)
     yarn config --offline set yarn-offline-mirror ${finalAttrs.yarnOfflineCache}
-
     # Without this, yarn will try to download the dependencies
     fixup-yarn-lock yarn.lock
 
@@ -44,27 +50,39 @@ stdenv.mkDerivation (finalAttrs: {
     yarn --offline --frozen-lockfile
     yarn --offline --frozen-lockfile compile-prod
 
-    mkdir -p $out/bin
-    mkdir -p $out/libexec
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{bin,libexec}
     cp -r dist $out/libexec
     cp devcontainer.js $out/libexec/devcontainer.js
     cp -r node_modules $out/libexec/node_modules
     cp -r $src/scripts $out/libexec/scripts
-    runHook postBuild
+
+    runHook postInstall
   '';
 
   postInstall = ''
-    makeWrapper "${nodejs}/bin/node" "$out/bin/devcontainer" \
+    makeWrapper "${lib.getExe nodejs}" "$out/bin/devcontainer" \
       --add-flags "$out/libexec/devcontainer.js" \
-      --prefix PATH : ${lib.makeBinPath [ git docker docker-compose ]}
+      --prefix PATH : ${
+        lib.makeBinPath [
+          git
+          docker
+          docker-compose
+        ]
+      }
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Dev container CLI, run and manage your dev environments via a devcontainer.json";
     homepage = "https://containers.dev/";
-    license = licenses.mit;
-    maintainers = with maintainers; [ rucadi ];
-    platforms = platforms.unix;
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ rucadi ];
+    platforms = lib.platforms.unix;
     mainProgram = "devcontainer";
   };
 })
diff --git a/pkgs/by-name/de/devenv/package.nix b/pkgs/by-name/de/devenv/package.nix
index 9284bc2218b76..aef566f030ebd 100644
--- a/pkgs/by-name/de/devenv/package.nix
+++ b/pkgs/by-name/de/devenv/package.nix
@@ -29,7 +29,7 @@ let
     doInstallCheck = false;
   });
 
-  version = "1.0.5";
+  version = "1.0.7";
 in rustPlatform.buildRustPackage {
   pname = "devenv";
   inherit version;
@@ -38,10 +38,10 @@ in rustPlatform.buildRustPackage {
     owner = "cachix";
     repo = "devenv";
     rev = "v${version}";
-    hash = "sha256-W5DFIifCjGYJXJzLU3RpqBeqes4zrf0Sr/6rwzTygPU=";
+    hash = "sha256-eTbBvYwGlKExMSTyHQya6+6kdx1rtva/aVfyAZu2NUU=";
   };
 
-  cargoHash = "sha256-a6o28oonA6G0xo83PXwbH86V0aDDAAA2zajE67qsSU0=";
+  cargoHash = "sha256-fmxXCOrWRM4ZKwQS9vCIh7LonpifyeNGsj/td1CjedA=";
 
   nativeBuildInputs = [ makeWrapper pkg-config ];
 
diff --git a/pkgs/by-name/dg/dgoss/package.nix b/pkgs/by-name/dg/dgoss/package.nix
index cf396e70829e9..55014119c8265 100644
--- a/pkgs/by-name/dg/dgoss/package.nix
+++ b/pkgs/by-name/dg/dgoss/package.nix
@@ -1,22 +1,17 @@
-{ lib
-, fetchFromGitHub
-, resholve
-, bash
-, coreutils
-, goss
-, which
+{
+  bash,
+  coreutils,
+  gnused,
+  goss,
+  lib,
+  resholve,
+  which,
 }:
 
 resholve.mkDerivation rec {
   pname = "dgoss";
-  version = "0.4.6";
-
-  src = fetchFromGitHub {
-    owner = "goss-org";
-    repo = "goss";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-4LJD70Y6nxRWdcaPe074iP2MVUMDgoTOwWbC1JecVcI=";
-  };
+  version = goss.version;
+  src = goss.src;
 
   dontConfigure = true;
   dontBuild = true;
@@ -30,7 +25,11 @@ resholve.mkDerivation rec {
     default = {
       scripts = [ "bin/dgoss" ];
       interpreter = "${bash}/bin/bash";
-      inputs = [ coreutils which ];
+      inputs = [
+        coreutils
+        gnused
+        which
+      ];
       keep = {
         "$CONTAINER_RUNTIME" = true;
       };
diff --git a/pkgs/by-name/di/dillo/package.nix b/pkgs/by-name/di/dillo/package.nix
index 760a9941b8df6..916d199520ca4 100644
--- a/pkgs/by-name/di/dillo/package.nix
+++ b/pkgs/by-name/di/dillo/package.nix
@@ -29,13 +29,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "dillo";
-  version = "3.1.0";
+  version = "3.1.1";
 
   src = fetchFromGitHub {
     owner = "dillo-browser";
     repo = "dillo";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-AqffkUPLvVSGq9iYksyvHf3HQ3DLWNlB3CYw4GCAAEI=";
+    hash = "sha256-bGIOYONMtIN4IhSobOeSLiRDR13mo4W/DBX4kQ2S+hg=";
   };
 
   nativeBuildInputs = [
@@ -63,7 +63,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://dillo-browser.github.io/";
-    description = "A fast graphical web browser with a small footprint";
+    description = "Fast graphical web browser with a small footprint";
     longDescription = ''
       Dillo is a fast and small graphical web browser with the following
       features:
diff --git a/pkgs/by-name/di/discord-gamesdk/package.nix b/pkgs/by-name/di/discord-gamesdk/package.nix
index b2f9a08dc7724..40756d68e1e54 100644
--- a/pkgs/by-name/di/discord-gamesdk/package.nix
+++ b/pkgs/by-name/di/discord-gamesdk/package.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ (stdenv.cc.cc.libgcc or null) ];
 
-  nativeBuildInputs = [ autoPatchelfHook ];
+  nativeBuildInputs = lib.optional stdenv.isLinux autoPatchelfHook;
 
   installPhase =
     let
diff --git a/pkgs/by-name/di/discordchatexporter-cli/package.nix b/pkgs/by-name/di/discordchatexporter-cli/package.nix
index 818aee7b5bf64..fbf6e78423a73 100644
--- a/pkgs/by-name/di/discordchatexporter-cli/package.nix
+++ b/pkgs/by-name/di/discordchatexporter-cli/package.nix
@@ -35,7 +35,7 @@ buildDotnetModule rec {
   };
 
   meta = with lib; {
-    description = "A tool to export Discord chat logs to a file";
+    description = "Tool to export Discord chat logs to a file";
     homepage = "https://github.com/Tyrrrz/DiscordChatExporter";
     license = licenses.gpl3Plus;
     changelog = "https://github.com/Tyrrrz/DiscordChatExporter/blob/${version}/Changelog.md";
diff --git a/pkgs/by-name/di/disko/package.nix b/pkgs/by-name/di/disko/package.nix
index cc493065f3d1a..4df0c8b11c342 100644
--- a/pkgs/by-name/di/disko/package.nix
+++ b/pkgs/by-name/di/disko/package.nix
@@ -8,7 +8,7 @@
 }:
 
 stdenvNoCC.mkDerivation (finalAttrs: {
-  name = "disko";
+  pname = "disko";
   version = "1.6.1";
   src = fetchFromGitHub {
     owner = "nix-community";
diff --git a/pkgs/by-name/di/dissent/package.nix b/pkgs/by-name/di/dissent/package.nix
index fdcc4ad37ce41..f3c0f81133888 100644
--- a/pkgs/by-name/di/dissent/package.nix
+++ b/pkgs/by-name/di/dissent/package.nix
@@ -1,16 +1,10 @@
 { buildGoModule
-, cairo
 , fetchFromGitHub
-, gdk-pixbuf
-, glib
 , gobject-introspection
-, graphene
 , gst_all_1
-, gtk4
 , lib
 , libadwaita
 , libcanberra-gtk3
-, pango
 , pkg-config
 , sound-theme-freedesktop
 , wrapGAppsHook4
@@ -18,13 +12,13 @@
 
 buildGoModule rec {
   pname = "dissent";
-  version = "0.0.24";
+  version = "0.0.25";
 
   src = fetchFromGitHub {
     owner = "diamondburned";
     repo = "dissent";
     rev = "v${version}";
-    hash = "sha256-XoppHkKQhWZbqVIViGIV0e0W/NhZW0v6ufmXlVtmzvI=";
+    hash = "sha256-ysI7zgducK52XbSzsaCnffSC9BRd/aaybMif/GkkhcI=";
   };
 
   nativeBuildInputs = [
@@ -34,34 +28,31 @@ buildGoModule rec {
   ];
 
   buildInputs = [
-    cairo
-    gdk-pixbuf
-    glib
-    graphene
-    gtk4
-    pango
     # Optional according to upstream but required for sound and video
     gst_all_1.gst-plugins-bad
     gst_all_1.gst-plugins-base
     gst_all_1.gst-plugins-good
     gst_all_1.gst-plugins-ugly
     gst_all_1.gstreamer
+    libadwaita
     libcanberra-gtk3
     sound-theme-freedesktop
-    libadwaita
   ];
 
   postInstall = ''
     install -D -m 444 -t $out/share/applications nix/so.libdb.dissent.desktop
-    install -D -m 444 internal/icons/hicolor/scalable/apps/so.libdb.dissent.svg $out/share/icons/hicolor/scalable/apps/so.libdb.dissent.svg
+    install -D -m 444 -t $out/share/icons/hicolor/scalable/apps internal/icons/hicolor/scalable/apps/so.libdb.dissent.svg
+    install -D -m 444 -t $out/share/icons/hicolor/symbolic/apps internal/icons/symbolic/apps/so.libdb.dissent-symbolic.svg
+    install -D -m 444 -t $out/share/metainfo so.libdb.dissent.metainfo.xml
+    install -D -m 444 -t $out/share/dbus-1/services nix/so.libdb.dissent.service
   '';
 
-  vendorHash = "sha256-8/k9auM7+rceV26f3pNjEK1trzzAM530CX008pLZ1OA=";
+  vendorHash = "sha256-qBgj3h+WKWxVahRXyO/w2zGY4UCVkjP7XKFk/9GOFqs=";
 
   meta = with lib; {
-    description = "GTK4 Discord client in Go, attempt #4 (formerly gtkcord4)";
+    description = "A third-party Discord client designed for a smooth, native experience (formerly gtkcord4)";
     homepage = "https://github.com/diamondburned/dissent";
-    license = licenses.gpl3Only;
+    license = with licenses; [ gpl3Plus cc0 ];
     mainProgram = "dissent";
     maintainers = with maintainers; [ hmenke urandom aleksana ];
   };
diff --git a/pkgs/by-name/di/distribution/package.nix b/pkgs/by-name/di/distribution/package.nix
new file mode 100644
index 0000000000000..9da917b512180
--- /dev/null
+++ b/pkgs/by-name/di/distribution/package.nix
@@ -0,0 +1,67 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, fetchpatch
+, nix-update-script
+, testers
+, distribution
+}:
+
+buildGoModule rec {
+  pname = "distribution";
+  version = "3.0.0-alpha.1";
+
+  src = fetchFromGitHub {
+    owner = "distribution";
+    repo = "distribution";
+    rev = "v${version}";
+    hash = "sha256-reguAtBkEC9OMUTdCtFY6l0fkk28VoA0IlPcQ0sz84I=";
+  };
+
+  patches = [
+    # fix: load gcs credentials and client inside DriverConstructor
+    # Needed to pass the tests. Remove with next update.
+    (fetchpatch {
+      url = "https://github.com/distribution/distribution/commit/14366a2dff6a8f595e39d258085381731b43cec6.diff";
+      hash = "sha256-0ns9JuIeLBzRLMVxY6uaWTIYcRRbuwQ+n9tmK+Pvf4U=";
+    })
+    # fix: add missing skip in s3 driver test
+    # Needed to pass the tests. Remove with next update.
+    (fetchpatch {
+      url = "https://github.com/distribution/distribution/commit/6908e0d5facd31ed32046df03a09040c964be0b3.patch";
+      hash = "sha256-ww+BwBGw+dkZ2FhVzynehR+sNYCgq8/KkPDP9ac6NWg=";
+    })
+  ];
+
+  vendorHash = null;
+
+  checkFlags = [
+    # TestHTTPChecker: requires internet access.
+    # TestInMemoryDriverSuite: timeout after 10 minutes, looks like a deadlock.
+    "-skip=^TestHTTPChecker$|^TestInMemoryDriverSuite$"
+  ];
+
+  passthru = {
+    tests.version = testers.testVersion {
+      package = distribution;
+      version = "v${version}";
+    };
+    updateScript = nix-update-script { };
+  };
+
+  meta = with lib; {
+    description = "Toolkit to pack, ship, store, and deliver container content";
+    longDescription = ''
+      Distribution is a Open Source Registry implementation for storing and distributing container
+      images and other content using the OCI Distribution Specification. The goal of this project
+      is to provide a simple, secure, and scalable base for building a large scale registry solution
+      or running a simple private registry.
+    '';
+    homepage = "https://distribution.github.io/distribution/";
+    changelog = "https://github.com/distribution/distribution/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = [ ];
+    mainProgram = "registry";
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/by-name/dm/dmarc-report-converter/package.nix b/pkgs/by-name/dm/dmarc-report-converter/package.nix
index e91c35698cc53..8121f554a2918 100644
--- a/pkgs/by-name/dm/dmarc-report-converter/package.nix
+++ b/pkgs/by-name/dm/dmarc-report-converter/package.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "dmarc-report-converter";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "tierpod";
     repo = "dmarc-report-converter";
     rev = "v${version}";
-    hash = "sha256-TqvAqMZEXhMO3/0VNY3Mr/E15QQbucuKyG95j2jWU5g=";
+    hash = "sha256-j1uFPCyxLqO3BMxl/02wILj5HGag9qjxCTB8ZxZHEGo=";
   };
 
   vendorHash = null;
diff --git a/pkgs/by-name/dm/dmenu-bluetooth/package.nix b/pkgs/by-name/dm/dmenu-bluetooth/package.nix
index 64d8532290229..13f169ebc23ba 100644
--- a/pkgs/by-name/dm/dmenu-bluetooth/package.nix
+++ b/pkgs/by-name/dm/dmenu-bluetooth/package.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "A script that generates a dmenu menu that uses bluetoothctl to connect to bluetooth devices and display status info";
+    description = "Script that generates a dmenu menu that uses bluetoothctl to connect to bluetooth devices and display status info";
     mainProgram = "dmenu-bluetooth";
     homepage = "https://github.com/Layerex/dmenu-bluetooth";
     license = lib.licenses.gpl3Only;
diff --git a/pkgs/by-name/dn/dns2tcp/package.nix b/pkgs/by-name/dn/dns2tcp/package.nix
index 2cbd2149d0e5c..fb1b1ddc47c39 100644
--- a/pkgs/by-name/dn/dns2tcp/package.nix
+++ b/pkgs/by-name/dn/dns2tcp/package.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
 
 
   meta = with lib; {
-    description = "A tool for relaying TCP connections over DNS";
+    description = "Tool for relaying TCP connections over DNS";
     homepage = "https://github.com/alex-sector/dns2tcp";
     license = licenses.gpl2Plus;
     mainProgram = "dns2tcpc";
diff --git a/pkgs/by-name/dn/dnss/package.nix b/pkgs/by-name/dn/dnss/package.nix
new file mode 100644
index 0000000000000..00796cf8df179
--- /dev/null
+++ b/pkgs/by-name/dn/dnss/package.nix
@@ -0,0 +1,25 @@
+{ buildGoModule
+, fetchFromGitHub
+, lib
+}:
+
+buildGoModule {
+  pname = "dnss";
+  version = "0-unstable-2024-03-17";
+  src = fetchFromGitHub {
+    owner = "albertito";
+    repo = "dnss";
+    rev = "da8986dd432870f5710e3e8652c92c95f34b830b";
+    hash = "sha256-YjBt+22fc9yHcORRmd//rejNVvf6eK+FAYAcT0fABuI=";
+  };
+
+  vendorHash = "sha256-d9aGSBRblkvH5Ixw3jpbgC8lMW/qEYNJfLTVeUlos7A=";
+
+  meta = with lib; {
+    description = "A daemon for using DNS over HTTPS";
+    homepage = "https://blitiri.com.ar/git/r/dnss/";
+    license = licenses.asl20;
+    mainProgram = "dnss";
+    maintainers = with maintainers; [ raspher ];
+  };
+}
diff --git a/pkgs/by-name/do/docfd/package.nix b/pkgs/by-name/do/docfd/package.nix
index c8c3e193c360f..3636296b8de44 100644
--- a/pkgs/by-name/do/docfd/package.nix
+++ b/pkgs/by-name/do/docfd/package.nix
@@ -21,7 +21,7 @@ let
 in
 buildDunePackage' rec {
   pname = "docfd";
-  version = "6.0.1";
+  version = "7.0.0";
 
   minimalOCamlVersion = "5.1";
 
@@ -29,7 +29,7 @@ buildDunePackage' rec {
     owner = "darrenldl";
     repo = "docfd";
     rev = version;
-    hash = "sha256-pNBWSPII+r9MMmyXBzxQ6hMNrN7nwcdhrpufzj00s2E=";
+    hash = "sha256-R/UOA1rf9NnEQQWn/ToCZuUSC48DPqglrb+5ZjCdpb0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/do/docker-credential-gcr/package.nix b/pkgs/by-name/do/docker-credential-gcr/package.nix
index 9033e61c6750d..620cce7743743 100644
--- a/pkgs/by-name/do/docker-credential-gcr/package.nix
+++ b/pkgs/by-name/do/docker-credential-gcr/package.nix
@@ -43,7 +43,7 @@ buildGoModule rec {
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
-    description = "A Docker credential helper for GCR (https://gcr.io) users";
+    description = "Docker credential helper for GCR (https://gcr.io) users";
     longDescription = ''
       docker-credential-gcr is Google Container Registry's Docker credential
       helper. It allows for Docker clients v1.11+ to easily make
diff --git a/pkgs/by-name/do/docopts/package.nix b/pkgs/by-name/do/docopts/package.nix
new file mode 100644
index 0000000000000..f2d0033e035d5
--- /dev/null
+++ b/pkgs/by-name/do/docopts/package.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, fetchpatch
+}:
+buildGoModule rec {
+  pname = "docopts";
+  version = "0.6.4-with-no-mangle-double-dash";
+
+  src = fetchFromGitHub {
+    owner = "docopt";
+    repo = "docopts";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-GIBrJ5qexeJ6ul5ek9LJZC4J3cNExsTrnxdzRCfoqn8=";
+  };
+
+  patches = [
+    # Migrate project to Go modules.
+    (fetchpatch {
+      url = "https://github.com/docopt/docopts/pull/74/commits/2c516165e72b35516a64c4529dbc938c0aaa9442.patch";
+      sha256 = "sha256-Tp05B3tmctnSYIQzCxCc/fhcAWWuEz2ifu/CQZt0XPU=";
+    })
+  ];
+
+  vendorHash = "sha256-+pMgaHB69itbQ+BDM7/oaJg3HrT1UN+joJL7BO/2vxE=";
+
+  meta = {
+    homepage = "https://github.com/docopt/docopts";
+    description = "Shell interpreter for docopt, the command-line interface description language";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.confus ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/pkgs/by-name/do/docuum/package.nix b/pkgs/by-name/do/docuum/package.nix
index 62a46f0a97e13..3eae913da1e1f 100644
--- a/pkgs/by-name/do/docuum/package.nix
+++ b/pkgs/by-name/do/docuum/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "docuum";
-  version = "0.24.0";
+  version = "0.25.0";
 
   src = fetchFromGitHub {
     owner = "stepchowfun";
     repo = "docuum";
     rev = "v${version}";
-    hash = "sha256-/30wuLnCcomgJ14c5rNbitD1dEpvyRal3L60gQdZPBU=";
+    hash = "sha256-nWd6h39jU1eZWPFMxhxActsmrs9k0TDMlealuzTa+o0=";
   };
 
-  cargoHash = "sha256-BvZM0tAgwoOO0VFQEoifgmENnW3cfKV3Zj872/Lki6A=";
+  cargoHash = "sha256-uoQ1qUII6TSZsosAdNfs2CREVuN2kuT9Bmi5vuDT/rY=";
 
   checkFlags = [
     # fails, no idea why
diff --git a/pkgs/by-name/do/dooit/package.nix b/pkgs/by-name/do/dooit/package.nix
index c532b13877d30..b8fae74dd85e6 100644
--- a/pkgs/by-name/do/dooit/package.nix
+++ b/pkgs/by-name/do/dooit/package.nix
@@ -50,7 +50,7 @@ python3.pkgs.buildPythonApplication rec {
   };
 
   meta = with lib; {
-    description = "A TUI todo manager";
+    description = "TUI todo manager";
     homepage = "https://github.com/kraanzu/dooit";
     changelog = "https://github.com/kraanzu/dooit/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/by-name/do/doppler/package.nix b/pkgs/by-name/do/doppler/package.nix
index cdeb12f08de2c..29537bcb9abb3 100644
--- a/pkgs/by-name/do/doppler/package.nix
+++ b/pkgs/by-name/do/doppler/package.nix
@@ -8,13 +8,13 @@
 
 buildGoModule rec {
   pname = "doppler";
-  version = "3.68.0";
+  version = "3.69.0";
 
   src = fetchFromGitHub {
     owner = "dopplerhq";
     repo = "cli";
     rev = version;
-    sha256 = "sha256-IKfLoCFJOGE200Mef660CQNMukEmpgIWo6ngOYvX5Hw=";
+    sha256 = "sha256-lijVKNmqTcmjgIzlcMdm/DUrBA+0xV6Wge9dt5xdWFY=";
   };
 
   vendorHash = "sha256-NUHWKPszQH/pvnA+j65+bJ6t+C0FDRRbTviqkYztpE4=";
@@ -40,7 +40,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "The official CLI for interacting with your Doppler Enclave secrets and configuration";
+    description = "Official CLI for interacting with your Doppler Enclave secrets and configuration";
     mainProgram = "doppler";
     homepage = "https://doppler.com";
     license = licenses.asl20;
diff --git a/pkgs/by-name/do/dorion/package.nix b/pkgs/by-name/do/dorion/package.nix
index b9c63b443dd2b..f31256ad85811 100644
--- a/pkgs/by-name/do/dorion/package.nix
+++ b/pkgs/by-name/do/dorion/package.nix
@@ -12,12 +12,12 @@
 }:
 
 stdenv.mkDerivation (finalAttrs: {
-  name = "dorion";
-  version = "4.2.1";
+  pname = "dorion";
+  version = "4.3.0";
 
   src = fetchurl {
     url = "https://github.com/SpikeHD/Dorion/releases/download/v${finalAttrs.version }/Dorion_${finalAttrs.version}_amd64.deb";
-    hash = "sha256-ki1cNrMUSO9JX8HCm4lFKid3Jq6pwKJcb4bVPaha+IA=";
+    hash = "sha256-bVanhJqHQxe3imP07EsRuDu0Isj9rf4VoIjmoAPfaQk=";
   };
 
   unpackCmd = ''
diff --git a/pkgs/by-name/do/dosbox-staging/package.nix b/pkgs/by-name/do/dosbox-staging/package.nix
index 1241385322b8a..0c1e985c73174 100644
--- a/pkgs/by-name/do/dosbox-staging/package.nix
+++ b/pkgs/by-name/do/dosbox-staging/package.nix
@@ -102,7 +102,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://dosbox-staging.github.io/";
-    description = "A modernized DOS emulator";
+    description = "Modernized DOS emulator";
     longDescription = ''
       DOSBox Staging is an attempt to revitalize DOSBox's development
       process. It's not a rewrite, but a continuation and improvement on the
diff --git a/pkgs/by-name/do/dotbot/package.nix b/pkgs/by-name/do/dotbot/package.nix
index 77d98148434bb..9ae2368f530eb 100644
--- a/pkgs/by-name/do/dotbot/package.nix
+++ b/pkgs/by-name/do/dotbot/package.nix
@@ -26,7 +26,7 @@ python3Packages.buildPythonApplication rec {
   nativeCheckInputs = with python3Packages; [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A tool that bootstraps your dotfiles";
+    description = "Tool that bootstraps your dotfiles";
     mainProgram = "dotbot";
     longDescription = ''
       Dotbot is designed to be lightweight and self-contained, with no external
diff --git a/pkgs/by-name/do/dotenvy/package.nix b/pkgs/by-name/do/dotenvy/package.nix
new file mode 100644
index 0000000000000..210f75fe8cd34
--- /dev/null
+++ b/pkgs/by-name/do/dotenvy/package.nix
@@ -0,0 +1,25 @@
+{ lib, fetchCrate, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "dotenvy";
+  version = "0.15.7";
+
+  src = fetchCrate {
+    inherit pname version;
+    hash = "sha256-virK/TpYBmwTf5UCQCqC/df8iKYAzPBfsQ1nQkFKF2Y=";
+  };
+
+  cargoHash = "sha256-qjFTv15FSvgYgQ4nTEIo0KUqaCbg6E+W5B2B5BH6sp4=";
+
+  cargoBuildFlags = [ "--bin=dotenvy" "--features=cli" ];
+
+  # just run unittests and skip doc-tests
+  cargoTestFlags = [ "--lib" ];
+
+  meta = {
+    description = "Loads environment variables from a .env file";
+    homepage = "https://github.com/allan2/dotenvy";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ phlip9 ];
+  };
+}
diff --git a/pkgs/by-name/do/dotnet-outdated/package.nix b/pkgs/by-name/do/dotnet-outdated/package.nix
index 6bef8c1e7cbf1..dda5a0f75ffef 100644
--- a/pkgs/by-name/do/dotnet-outdated/package.nix
+++ b/pkgs/by-name/do/dotnet-outdated/package.nix
@@ -29,7 +29,7 @@ in buildDotnetModule rec {
   dotnetInstallFlags = [ "--framework" "net8.0" ];
 
   meta = with lib; {
-    description = "A .NET Core global tool to display and update outdated NuGet packages in a project";
+    description = ".NET Core global tool to display and update outdated NuGet packages in a project";
     homepage = "https://github.com/dotnet-outdated/dotnet-outdated";
     sourceProvenance = with sourceTypes; [
       fromSource
diff --git a/pkgs/by-name/do/doublecmd/package.nix b/pkgs/by-name/do/doublecmd/package.nix
index a77be53cd2119..aedfa563e61e9 100644
--- a/pkgs/by-name/do/doublecmd/package.nix
+++ b/pkgs/by-name/do/doublecmd/package.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "doublecmd";
-  version = "1.1.14";
+  version = "1.1.15";
 
   src = fetchFromGitHub {
     owner = "doublecmd";
     repo = "doublecmd";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-2ZFLQoz25q3uwjQkogSyuLxSNJQ6Gh553Yj4zl70jno=";
+    hash = "sha256-GFjswA0COhZCMY6KMtthGSA16sKwScXm7x+CjZ0hXl8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/do/dovecot_exporter/package.nix b/pkgs/by-name/do/dovecot_exporter/package.nix
new file mode 100644
index 0000000000000..88a5eb11c0249
--- /dev/null
+++ b/pkgs/by-name/do/dovecot_exporter/package.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, fetchpatch
+, nixosTests
+}:
+buildGoModule rec {
+  pname = "dovecot_exporter";
+  version = "0.1.3-unstable-2019-07-19";
+
+  src = fetchFromGitHub {
+    owner = "kumina";
+    repo = "dovecot_exporter";
+    rev = "7ef79118ba619ff078594837377189477a4d059f";
+    sha256 = "sha256-qJbIBSfHYgFztuivuNjleDa+Bx0KC4OklCh3IvK2XFI=";
+  };
+
+  vendorHash = "sha256-+B8sROL1h6ElBfAUBT286yJF9m9zoRvMOrf0z2SVCj0=";
+
+  patches = [
+    # Migrate the project to Go modules
+    # https://github.com/kumina/dovecot_exporter/pull/23
+    (fetchpatch {
+      url = "https://github.com/kumina/dovecot_exporter/commit/b5184dd99cf8c79facf20cea281828d302327665.patch";
+      sha256 = "sha256-OcdI1fJ/wumDI/wk5PQVot9+Gw/PnsiwgJY7dcRyEsc=";
+    })
+  ];
+
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) dovecot; };
+
+  meta = {
+    inherit (src.meta) homepage;
+    description = "Prometheus metrics exporter for Dovecot";
+    mainProgram = "dovecot_exporter";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ willibutz globin ];
+  };
+}
diff --git a/pkgs/by-name/do/downonspot/package.nix b/pkgs/by-name/do/downonspot/package.nix
index f6e568d964389..10574358a869c 100644
--- a/pkgs/by-name/do/downonspot/package.nix
+++ b/pkgs/by-name/do/downonspot/package.nix
@@ -36,7 +36,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Spotify downloader written in rust";
+    description = "Spotify downloader written in rust";
     homepage = "https://github.com/oSumAtrIX/DownOnSpot";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
diff --git a/pkgs/by-name/dr/dreamchess/package.nix b/pkgs/by-name/dr/dreamchess/package.nix
new file mode 100644
index 0000000000000..65df152c7a16f
--- /dev/null
+++ b/pkgs/by-name/dr/dreamchess/package.nix
@@ -0,0 +1,71 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, bison
+, flex
+, gettext
+, SDL2
+, SDL2_image
+, SDL2_mixer
+, expat
+, glew
+, freetype
+, libSM
+, libXext
+, libGL
+, libGLU
+, xorg
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "dreamchess";
+  version = "0.3.0";
+  src = fetchFromGitHub {
+    owner = "dreamchess";
+    repo = "dreamchess";
+    rev = "${finalAttrs.version}";
+    hash = "sha256-qus/RjwdAl9SuDXfLVKTPImqrvPF3xSDVlbXYLM3JNE=";
+  };
+
+  buildInputs = [
+    SDL2
+    SDL2_image
+    SDL2_mixer
+    expat
+    glew
+    freetype
+    libSM
+    libXext
+    libGL
+    libGLU
+    xorg.libxcb
+    xorg.libX11
+  ];
+  nativeBuildInputs = [
+    cmake
+    bison
+    flex
+    gettext
+  ];
+  cmakeFlags = [
+    (lib.cmakeBool "CMAKE_VERBOSE_MAKEFILE" true)
+    (lib.cmakeFeature "OpenGL_GL_PREFERENCE" "GLVND")
+    (lib.cmakeFeature "CMAKE_INSTALL_DATAROOTDIR" "${placeholder "out"}/share")
+  ];
+
+  doInstallCheck = true;
+
+  postInstallCheck = ''
+    stat "''${!outputBin}/bin/${finalAttrs.meta.mainProgram}"
+  '';
+
+  meta = {
+    homepage = "https://github.com/dreamchess/dreamchess";
+    description = "OpenGL Chess Game";
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ spk ];
+    platforms = lib.platforms.linux;
+    mainProgram = "dreamchess";
+  };
+})
diff --git a/pkgs/by-name/ds/dsda-doom/package.nix b/pkgs/by-name/ds/dsda-doom/package.nix
index c45c0ff37988a..1bc5dec73e087 100644
--- a/pkgs/by-name/ds/dsda-doom/package.nix
+++ b/pkgs/by-name/ds/dsda-doom/package.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/kraflab/dsda-doom";
-    description = "An advanced Doom source port with a focus on speedrunning, successor of PrBoom+";
+    description = "Advanced Doom source port with a focus on speedrunning, successor of PrBoom+";
     mainProgram = "dsda-doom";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/by-name/ds/dstep/package.nix b/pkgs/by-name/ds/dstep/package.nix
index ef1d8b8f11a2b..8c847242e702a 100644
--- a/pkgs/by-name/ds/dstep/package.nix
+++ b/pkgs/by-name/ds/dstep/package.nix
@@ -25,7 +25,7 @@ buildDubPackage rec {
   '';
 
   meta = with lib; {
-    description = "A tool for converting C and Objective-C headers to D modules";
+    description = "Tool for converting C and Objective-C headers to D modules";
     homepage = "https://github.com/jacob-carlborg/dstep";
     license = licenses.boost;
     mainProgram = "dstep";
diff --git a/pkgs/by-name/dt/dtools/package.nix b/pkgs/by-name/dt/dtools/package.nix
index 9de7ed6b125b2..8db3a14cf6173 100644
--- a/pkgs/by-name/dt/dtools/package.nix
+++ b/pkgs/by-name/dt/dtools/package.nix
@@ -1,20 +1,19 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , ldc
 , curl
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "dtools";
-  version = "2.108.0";
+  version = "2.109.0";
 
   src = fetchFromGitHub {
     owner = "dlang";
     repo = "tools";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-YEBUgJPG/+WN4MnQUNAVftZM0ULxZZzpHoOozXua46U=";
+    hash = "sha256-C4hSs4zsFC8hWkhmDmNzVfK7Ctfnd1IQUphibUPiVzE=";
     name = "dtools";
   };
 
diff --git a/pkgs/development/tools/build-managers/dub/default.nix b/pkgs/by-name/du/dub/package.nix
index d815a9515dc6e..9f419d1e10f41 100644
--- a/pkgs/development/tools/build-managers/dub/default.nix
+++ b/pkgs/by-name/du/dub/package.nix
@@ -1,56 +1,49 @@
-{ lib, stdenv, fetchFromGitHub, curl, libevent, rsync, ldc, dcompiler ? ldc }:
-
-assert dcompiler != null;
-
-stdenv.mkDerivation rec {
+{ lib
+, stdenv
+, fetchFromGitHub
+, curl
+, ldc
+, libevent
+, rsync
+}:
+
+stdenv.mkDerivation (finalAttrs: {
   pname = "dub";
-  version = "1.33.0";
+  version = "1.38.0";
 
   enableParallelBuilding = true;
 
   src = fetchFromGitHub {
     owner = "dlang";
     repo = "dub";
-    rev = "v${version}";
-    sha256 = "sha256-4Mha7WF6cg3DIccfpvOnheuvgfziv/7wo8iFsPXO4yY=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-+cG7tR4nAL4fhk9/1FMkfjQ8Rtqf+uTvGfVegmnjloY=";
   };
 
-  dubvar = "\\$DUB";
   postPatch = ''
     patchShebangs test
-
-
-    # Can be removed with https://github.com/dlang/dub/pull/1368
-    substituteInPlace test/fetchzip.sh \
-        --replace "dub remove" "\"${dubvar}\" remove"
   '';
 
-  nativeBuildInputs = [ dcompiler libevent rsync ];
+  nativeBuildInputs = [ ldc libevent rsync ];
   buildInputs = [ curl ];
 
   buildPhase = ''
-    for dc_ in dmd ldmd2 gdmd; do
-      echo "... check for D compiler $dc_ ..."
-      dc=$(type -P $dc_ || echo "")
-      if [ ! "$dc" == "" ]; then
-        break
-      fi
-    done
-    if [ "$dc" == "" ]; then
-      exit "Error: could not find D compiler"
-    fi
-    echo "$dc_ found and used as D compiler to build $pname"
-    $dc ./build.d
-    ./build
+    runHook preBuild
+
+    export DMD=${ldc}/bin/ldmd2
+    ldc2 -run ./build.d
+
+    runHook postBuild
   '';
 
   doCheck = !stdenv.isDarwin;
 
   checkPhase = ''
+    runHook preCheck
+
     export DUB=$NIX_BUILD_TOP/source/bin/dub
     export PATH=$PATH:$NIX_BUILD_TOP/source/bin/
-    export DC=${dcompiler.out}/bin/${if dcompiler.pname=="ldc" then "ldc2" else dcompiler.pname}
-    echo "DC out --> $DC"
+    export DC=${lib.getExe ldc}
     export HOME=$TMP
 
     rm -rf test/issue502-root-import
@@ -138,21 +131,29 @@ stdenv.mkDerivation rec {
     rm -r test/sdl-package-simple
     rm -r test/dpath-variable # requires execution of dpath-variable.sh
     rm -r test/use-c-sources
+    rm -r test/pr2642-cache-db
+    rm -r test/pr2644-describe-artifact-path
+    rm -r test/pr2647-build-deep
 
     ./test/run-unittest.sh
+
+    runHook postCheck
   '';
 
   installPhase = ''
-    mkdir -p $out/bin
-    cp bin/dub $out/bin
+    runHook preInstall
+
+    install -Dm755 bin/dub $out/bin/dub
+
+    runHook postInstall
   '';
 
   meta = with lib; {
-    description = "Package and build manager for D applications and libraries";
-    mainProgram = "dub";
+    description = "Package and build manager for D programs and libraries";
     homepage = "https://code.dlang.org/";
     license = licenses.mit;
+    mainProgram = "dub";
     maintainers = with maintainers; [ jtbx ];
     platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
   };
-}
+})
diff --git a/pkgs/applications/emulators/duckstation/001-fix-test-inclusion.diff b/pkgs/by-name/du/duckstation/001-fix-test-inclusion.diff
index b2dabe0262db3..b2dabe0262db3 100644
--- a/pkgs/applications/emulators/duckstation/001-fix-test-inclusion.diff
+++ b/pkgs/by-name/du/duckstation/001-fix-test-inclusion.diff
diff --git a/pkgs/applications/emulators/duckstation/002-hardcode-vars.diff b/pkgs/by-name/du/duckstation/002-hardcode-vars.diff
index edba33fce7ceb..edba33fce7ceb 100644
--- a/pkgs/applications/emulators/duckstation/002-hardcode-vars.diff
+++ b/pkgs/by-name/du/duckstation/002-hardcode-vars.diff
diff --git a/pkgs/applications/emulators/duckstation/default.nix b/pkgs/by-name/du/duckstation/package.nix
index 91d2b23705ad7..37d2d01534b1a 100644
--- a/pkgs/applications/emulators/duckstation/default.nix
+++ b/pkgs/by-name/du/duckstation/package.nix
@@ -2,34 +2,42 @@
 , stdenv
 , fetchFromGitHub
 , SDL2
+, callPackage
 , cmake
 , cubeb
 , curl
 , extra-cmake-modules
 , libXrandr
 , libbacktrace
+, libwebp
 , makeWrapper
 , ninja
 , pkg-config
-, qtbase
-, qtsvg
-, qttools
-, qtwayland
+, qt6
 , substituteAll
 , vulkan-loader
 , wayland
-, wrapQtAppsHook
 }:
 
+let
+  shaderc-patched = callPackage ./shaderc-patched.nix { };
+  inherit (qt6)
+    qtbase
+    qtsvg
+    qttools
+    qtwayland
+    wrapQtAppsHook
+  ;
+in
 stdenv.mkDerivation (finalAttrs: {
   pname = "duckstation";
-  version = "0.1-6292";
+  version = "0.1-6658";
 
   src = fetchFromGitHub {
     owner = "stenzek";
     repo = "duckstation";
-    rev = "0bc42c38aab49030118f507c9783de047769148b";
-    hash = "sha256-8OavixSwEWihFY2fEdsepR1lqWlTH+//xZRKwb7lFCQ=";
+    rev = "4e0c417add264226b3db065c1466791f0591a1b5";
+    hash = "sha256-fN0bcjqjMmK3qVLlrYmR2VgjK0BjdK4nUj8vNYdFC3I=";
   };
 
   patches = [
@@ -40,8 +48,8 @@ stdenv.mkDerivation (finalAttrs: {
       src = ./002-hardcode-vars.diff;
       gitHash = finalAttrs.src.rev;
       gitBranch = "master";
-      gitTag = "${finalAttrs.version}-g0bc42c38";
-      gitDate = "2024-02-06T22:47:47+09:00";
+      gitTag = "${finalAttrs.version}-g4e0c417a";
+      gitDate = "2024-04-16T12:49:54+10:00";
     })
   ];
 
@@ -59,9 +67,11 @@ stdenv.mkDerivation (finalAttrs: {
     curl
     libXrandr
     libbacktrace
+    libwebp
     qtbase
     qtsvg
     qtwayland
+    shaderc-patched
     wayland
   ]
   ++ cubeb.passthru.backendLibs;
@@ -72,10 +82,13 @@ stdenv.mkDerivation (finalAttrs: {
     (lib.cmakeBool "BUILD_TESTS" true)
   ];
 
-  doCheck = true;
-  checkPhase = ''
+  doInstallCheck = true;
+
+  installCheckPhase = ''
     runHook preCheck
-    bin/common-tests
+
+    $out/share/duckstation/common-tests
+
     runHook postCheck
   '';
 
diff --git a/pkgs/by-name/du/duckstation/shaderc-patched.nix b/pkgs/by-name/du/duckstation/shaderc-patched.nix
new file mode 100644
index 0000000000000..72aa4b17ca087
--- /dev/null
+++ b/pkgs/by-name/du/duckstation/shaderc-patched.nix
@@ -0,0 +1,21 @@
+{
+  lib,
+  fetchpatch,
+  duckstation,
+  shaderc,
+}:
+
+shaderc.overrideAttrs (old: {
+  pname = "shaderc-patched-for-duckstation";
+  patches = (old.patches or [ ]) ++ [
+    (fetchpatch {
+      url = "file://${duckstation.src}/scripts/shaderc-changes.patch";
+      hash = "sha256-Ps/D+CdSbjVWg3ZGOEcgbpQbCNkI5Nuizm4E5qiM9Wo=";
+      excludes = [
+        "CHANGES"
+        "CMakeLists.txt"
+        "libshaderc/CMakeLists.txt"
+      ];
+    })
+  ];
+})
diff --git a/pkgs/by-name/du/dumbpipe/package.nix b/pkgs/by-name/du/dumbpipe/package.nix
index 1f19ed3026109..897f5cfc5b798 100644
--- a/pkgs/by-name/du/dumbpipe/package.nix
+++ b/pkgs/by-name/du/dumbpipe/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "dumbpipe";
-  version = "0.8.0";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "n0-computer";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-NaN3r4Vk4SCdgfFgtyCgeMOyOCfxj15vLrXRmUKTAWM=";
+    hash = "sha256-Pv7GySqKD3G1eryq6YwVL159XuuWB8DmQ0d1fPuFcmc=";
   };
 
-  cargoHash = "sha256-Efuif2fIP20tXCq7bpa/n1lthvi0jcyYCpWM//qEHCY=";
+  cargoHash = "sha256-MKJCpSdf9MzpBmgWImYO5+uSVN9uTLaLl4khizVGoig=";
 
   buildInputs = lib.optionals stdenv.isDarwin (
     with darwin.apple_sdk.frameworks; [
diff --git a/pkgs/by-name/du/dune3d/package.nix b/pkgs/by-name/du/dune3d/package.nix
index f5274a99e38f8..122a9691c53bc 100644
--- a/pkgs/by-name/du/dune3d/package.nix
+++ b/pkgs/by-name/du/dune3d/package.nix
@@ -1,5 +1,6 @@
 {
   cmake,
+  desktopToDarwinBundle,
   eigen,
   fetchFromGitHub,
   glm,
@@ -7,26 +8,33 @@
   gtkmm4,
   lib,
   libepoxy,
+  libossp_uuid,
   librsvg,
   libspnav,
   libuuid,
+  libxml2,
+  llvmPackages_17,
   meson,
   ninja,
-  opencascade-occt,
+  opencascade-occt_7_6,
   pkg-config,
   python3,
   stdenv,
   wrapGAppsHook3,
 }:
 
-stdenv.mkDerivation rec {
+let
+  stdenv' = if stdenv.isDarwin then llvmPackages_17.stdenv else stdenv;
+  opencascade-occt = opencascade-occt_7_6;
+in
+stdenv'.mkDerivation (finalAttrs: {
   pname = "dune3d";
   version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "dune3d";
     repo = "dune3d";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     hash = "sha256-Z/kdOc/MbnnEyRsel3aZGndTAy1eCdAK0Wdta0HxaE4=";
   };
 
@@ -36,7 +44,9 @@ stdenv.mkDerivation rec {
     ninja
     pkg-config
     wrapGAppsHook3
-  ];
+    libxml2 # for xmllints
+  ] ++ lib.optional stdenv.isDarwin desktopToDarwinBundle;
+
   buildInputs = [
     cmake
     eigen
@@ -45,7 +55,7 @@ stdenv.mkDerivation rec {
     libepoxy
     librsvg
     libspnav
-    libuuid
+    (if stdenv.isLinux then libuuid else libossp_uuid)
     opencascade-occt
     (python3.withPackages (pp: [
       pp.pygobject3
@@ -54,12 +64,12 @@ stdenv.mkDerivation rec {
 
   env.CASROOT = opencascade-occt;
 
-  meta = with lib; {
+  meta = {
     description = "3D CAD application";
     homepage = "https://dune3d.org";
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ _0x4A6F jue89 ];
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ _0x4A6F jue89 ];
     mainProgram = "dune3d";
-    platforms = platforms.linux;
+    platforms = lib.platforms.linux ++ lib.platforms.darwin;
   };
-}
+})
diff --git a/pkgs/by-name/dx/dxvk/package.nix b/pkgs/by-name/dx/dxvk/package.nix
index 7a8e059ecf78b..89defd092b0e4 100644
--- a/pkgs/by-name/dx/dxvk/package.nix
+++ b/pkgs/by-name/dx/dxvk/package.nix
@@ -2,7 +2,6 @@
   lib,
   stdenvNoCC,
   overrideCC,
-  fetchFromGitHub,
   pkgsCross,
   bash,
 }:
diff --git a/pkgs/by-name/dx/dxvk_1/package.nix b/pkgs/by-name/dx/dxvk_1/package.nix
index 71223ecea2180..6d24af612e3cd 100644
--- a/pkgs/by-name/dx/dxvk_1/package.nix
+++ b/pkgs/by-name/dx/dxvk_1/package.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
   __structuredAttrs = true;
 
   meta = {
-    description = "A Vulkan-based translation layer for Direct3D 9/10/11";
+    description = "Vulkan-based translation layer for Direct3D 9/10/11";
     homepage = "https://github.com/doitsujin/dxvk";
     changelog = "https://github.com/doitsujin/dxvk/releases";
     maintainers = [ lib.maintainers.reckenrode ];
diff --git a/pkgs/by-name/dx/dxvk_2/package.nix b/pkgs/by-name/dx/dxvk_2/package.nix
index a42c97a06c02f..56be0cf7cd38e 100644
--- a/pkgs/by-name/dx/dxvk_2/package.nix
+++ b/pkgs/by-name/dx/dxvk_2/package.nix
@@ -72,7 +72,7 @@ stdenv.mkDerivation (finalAttrs: {
   __structuredAttrs = true;
 
   meta = {
-    description = "A Vulkan-based translation layer for Direct3D 9/10/11";
+    description = "Vulkan-based translation layer for Direct3D 9/10/11";
     homepage = "https://github.com/doitsujin/dxvk";
     changelog = "https://github.com/doitsujin/dxvk/releases";
     maintainers = [ lib.maintainers.reckenrode ];
diff --git a/pkgs/by-name/dy/dyalog/package.nix b/pkgs/by-name/dy/dyalog/package.nix
index fc4b6696c26ba..9bca553b0d94f 100644
--- a/pkgs/by-name/dy/dyalog/package.nix
+++ b/pkgs/by-name/dy/dyalog/package.nix
@@ -152,7 +152,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     changelog = "https://dyalog.com/dyalog/dyalog-versions/${lib.replaceStrings [ "." ] [ "" ] finalAttrs.shortVersion}.htm";
-    description = "The Dyalog APL interpreter";
+    description = "Dyalog APL interpreter";
     homepage = "https://www.dyalog.com";
     license = {
       fullName = "Dyalog License";
diff --git a/pkgs/by-name/dy/dynamodb-local/package.nix b/pkgs/by-name/dy/dynamodb-local/package.nix
index 39799fbf9f936..146077be70958 100644
--- a/pkgs/by-name/dy/dynamodb-local/package.nix
+++ b/pkgs/by-name/dy/dynamodb-local/package.nix
@@ -26,11 +26,11 @@ let
 in
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "dynamodb-local";
-  version = "2.4.0";
+  version = "2.5.1";
 
   src = fetchurl {
-    url = "https://d1ni2b6xgvw0s0.cloudfront.net/v2.x/dynamodb_local_2024-04-17.tar.gz";
-    hash = "sha256-sEsS5qX1qKNoH/zh+mXWZtUd0ycxDtSWtyq+Hkkzr0Q=";
+    url = "https://d1ni2b6xgvw0s0.cloudfront.net/v2.x/dynamodb_local_2024-06-06.tar.gz";
+    hash = "sha256-fbd+F9sk/QJZgS4O2mFvEKbbV9hAMLuCt22BMriFYBQ=";
   };
 
   sourceRoot = ".";
@@ -73,7 +73,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "DynamoDB Local is a small client-side database and server that mimics the DynamoDB service.";
+    description = "DynamoDB Local is a small client-side database and server that mimics the DynamoDB service";
     homepage = "https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html";
     license = licenses.unfree;
     mainProgram = "dynamodb-local";
diff --git a/pkgs/by-name/e1/e1s/package.nix b/pkgs/by-name/e1/e1s/package.nix
index b13d5ff947e44..2d80eede0b41f 100644
--- a/pkgs/by-name/e1/e1s/package.nix
+++ b/pkgs/by-name/e1/e1s/package.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, buildGoModule, fetchFromGitHub }:
 let
   pname = "e1s";
-  version = "1.0.34";
+  version = "1.0.37";
 in
 buildGoModule {
   inherit pname version;
@@ -10,10 +10,10 @@ buildGoModule {
     owner = "keidarcy";
     repo = "e1s";
     rev = "refs/tags/v${version}";
-    hash = "sha256-fxo7TQjFrp2BbXz7bwMC5AuacKpyi5UmAMEVBmR91ko=";
+    hash = "sha256-lqaLfGEllyRlVPkUfLUzPO2o+Ruzp1lFD6/RY4o1L14=";
   };
 
-  vendorHash = "sha256-pM6win2W6HqjIg9QBblDl3ptKEI6sANliXkpwlFnTb0=";
+  vendorHash = "sha256-oQVZ1SNXaXOngZazUVeWLvtZu17XvtIcrx+XC6PvGH0=";
 
   meta = with lib; {
     description = "Easily Manage AWS ECS Resources in Terminal 🐱";
diff --git a/pkgs/development/tools/eask/default.nix b/pkgs/by-name/ea/eask/package.nix
index 8aeac6fe1c2d4..3f7fb419795b5 100644
--- a/pkgs/development/tools/eask/default.nix
+++ b/pkgs/by-name/ea/eask/package.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildNpmPackage
-, fetchFromGitHub
+{
+  lib,
+  buildNpmPackage,
+  fetchFromGitHub,
 }:
 
 buildNpmPackage rec {
   pname = "eask";
-  version = "0.9.5";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "emacs-eask";
     repo = "cli";
     rev = version;
-    hash = "sha256-olVR+TTDfSnQ+eJEb5qbNq96KnRr1WYx74/nC275+gI=";
+    hash = "sha256-bTig1g9G/2NYlvlo6TBMIQjmCqaC8AOwvTiPDbLv//Q=";
   };
 
-  npmDepsHash = "sha256-LqJ6cJxrQ3uHuQqXHQ7pfhTlndqFuqoMee9CNSteCP4=";
+  npmDepsHash = "sha256-JEk+dbLndXn8Bfz9HZWzY9Blk2ZyEf5AH6M4+X1uwaM=";
 
   dontBuild = true;
 
@@ -24,6 +25,9 @@ buildNpmPackage rec {
     homepage = "https://emacs-eask.github.io/";
     license = lib.licenses.gpl3Plus;
     mainProgram = "eask";
-    maintainers = with lib.maintainers; [ jcs090218 ];
+    maintainers = with lib.maintainers; [
+      jcs090218
+      piotrkwiecinski
+    ];
   };
 }
diff --git a/pkgs/by-name/eb/ebpf-usb/package.nix b/pkgs/by-name/eb/ebpf-usb/package.nix
index a4da98ee7fb54..42a6956a34b18 100644
--- a/pkgs/by-name/eb/ebpf-usb/package.nix
+++ b/pkgs/by-name/eb/ebpf-usb/package.nix
@@ -39,7 +39,7 @@ python3Packages.buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Python script for USB monitoring using eBPF";
+    description = "Python script for USB monitoring using eBPF";
     homepage = "https://github.com/francisrstokes/ebpf-usb";
     license = lib.licenses.unfree;
     maintainers = with maintainers; [ mevatron ];
diff --git a/pkgs/by-name/ec/ecc/package.nix b/pkgs/by-name/ec/ecc/package.nix
index 40597fe0fd994..cf91d52875ccb 100644
--- a/pkgs/by-name/ec/ecc/package.nix
+++ b/pkgs/by-name/ec/ecc/package.nix
@@ -116,7 +116,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://eunomia.dev";
-    description = "the eBPF compile toolchain for eunomia-bpf";
+    description = "EBPF compile toolchain for eunomia-bpf";
     mainProgram = "ecc-rs";
     maintainers = with maintainers; [ oluceps ];
     platforms = platforms.linux;
diff --git a/pkgs/by-name/ec/ecmtools/package.nix b/pkgs/by-name/ec/ecmtools/package.nix
index ecb9f6eb999f1..54d7e44f9fcf4 100644
--- a/pkgs/by-name/ec/ecmtools/package.nix
+++ b/pkgs/by-name/ec/ecmtools/package.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A utility to uncompress ECM files to BIN CD format";
+    description = "Utility to uncompress ECM files to BIN CD format";
     homepage = "https://github.com/alucryd/ecm-tools";
     license = lib.licenses.gpl3Plus;
     mainProgram = "bin2ecm";
diff --git a/pkgs/by-name/ed/eduvpn-client/nix-python-prefix.patch b/pkgs/by-name/ed/eduvpn-client/nix-python-prefix.patch
deleted file mode 100644
index 4d5fc53b0993a..0000000000000
--- a/pkgs/by-name/ed/eduvpn-client/nix-python-prefix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/eduvpn/utils.py b/eduvpn/utils.py
-index db0bf0c..76fc52a 100644
---- a/eduvpn/utils.py
-+++ b/eduvpn/utils.py
-@@ -69,7 +69,7 @@ def get_prefix() -> str:
-     """
-     target = "share/eduvpn/builder/mainwindow.ui"
-     local = path.dirname(path.dirname(path.abspath(__file__)))
--    options = [local, path.expanduser("~/.local"), "/usr/local", prefix]
-+    options = ["@out@"]
-     for option in options:
-         logger.debug(f"looking for '{target}' in '{option}'")
-         if path.isfile(path.join(option, target)):
diff --git a/pkgs/by-name/ed/eduvpn-client/package.nix b/pkgs/by-name/ed/eduvpn-client/package.nix
index 8a4fd7db89e82..3211636b8440c 100644
--- a/pkgs/by-name/ed/eduvpn-client/package.nix
+++ b/pkgs/by-name/ed/eduvpn-client/package.nix
@@ -12,11 +12,12 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "eduvpn-client";
-  version = "4.2.1";
+  version = "4.3.1";
+  format = "pyproject";
 
   src = fetchurl {
     url = "https://github.com/eduvpn/python-${pname}/releases/download/${version}/python-${pname}-${version}.tar.xz";
-    hash = "sha256-57EKWOzGfA4ihVYTyfLF2yoe7hN/7OnEkG+zLz7QtxI=";
+    hash = "sha256-8k5ZbbN2OvoFFq0nn+fftQfQJbGhb2MEvZNokMXegr0=";
   };
 
   nativeBuildInputs = [
@@ -38,12 +39,6 @@ python3Packages.buildPythonApplication rec {
     setuptools
   ];
 
-  patches = [ ./nix-python-prefix.patch ];
-
-  postPatch = ''
-    substituteInPlace eduvpn/utils.py --subst-var-by out $out
-  '';
-
   checkInputs = with python3Packages; [
     pytestCheckHook
   ];
diff --git a/pkgs/by-name/ei/eigenlayer/package.nix b/pkgs/by-name/ei/eigenlayer/package.nix
index e7811b782b4e3..2d1d6b341d23a 100644
--- a/pkgs/by-name/ei/eigenlayer/package.nix
+++ b/pkgs/by-name/ei/eigenlayer/package.nix
@@ -6,16 +6,16 @@
 }:
 buildGoModule rec {
   pname = "eigenlayer";
-  version = "0.8.0";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "Layr-Labs";
     repo = "eigenlayer-cli";
     rev = "v${version}";
-    hash = "sha256-bj1+gm11gYwvuut8tUrML7Sg1W5rmGH49tZ4u/76s84=";
+    hash = "sha256-VC2qUHdFulOCYuAb8vHxc+9GJV/3iiKO1hJS/7gj278=";
   };
 
-  vendorHash = "sha256-Hws6qlt0O/1xP94ghiIBIF/FwvYGu0fY8LWjVgAp/pQ=";
+  vendorHash = "sha256-+VKjsHFqWVqOxzC49GToxymD5AyI0j1ZDXQW2YnJysw=";
 
   ldflags = ["-s" "-w"];
   subPackages = ["cmd/eigenlayer"];
diff --git a/pkgs/by-name/ej/ejsonkms/package.nix b/pkgs/by-name/ej/ejsonkms/package.nix
new file mode 100644
index 0000000000000..7c73565e61022
--- /dev/null
+++ b/pkgs/by-name/ej/ejsonkms/package.nix
@@ -0,0 +1,41 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+  testers,
+  ejsonkms,
+}:
+
+buildGoModule rec {
+  pname = "ejsonkms";
+  version = "0.2.2";
+
+  src = fetchFromGitHub {
+    owner = "envato";
+    repo = "ejsonkms";
+    rev = "v${version}";
+    hash = "sha256-aHnxdEADrzaRld7G2owSHO/0xYXIa8EBBR+phdA4eRM=";
+  };
+
+  vendorHash = "sha256-aLcSCDgd3IGiUg/JAPNIV30tAh6tDYZnFnqzaLELXw0=";
+
+  ldflags = [
+    "-X main.version=v${version}" "-s" "-w"
+  ];
+
+  doCheck = false;
+
+  passthru.tests = {
+    version = testers.testVersion {
+      package = ejsonkms;
+      version = "v${version}";
+    };
+  };
+
+  meta = with lib; {
+    description = "Integrates EJSON with AWS KMS";
+    homepage = "https://github.com/envato/ejsonkms";
+    license = licenses.mit;
+    maintainers = with maintainers; [ viraptor ];
+  };
+}
diff --git a/pkgs/by-name/ek/eksctl/package.nix b/pkgs/by-name/ek/eksctl/package.nix
index e012e298dbe00..5cf236b999665 100644
--- a/pkgs/by-name/ek/eksctl/package.nix
+++ b/pkgs/by-name/ek/eksctl/package.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "eksctl";
-  version = "0.177.0";
+  version = "0.182.0";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = pname;
     rev = version;
-    hash = "sha256-rNs7Ko+NNO2/zqPRu4j+y7KJ62lvfTEndZEnBSi8K5I=";
+    hash = "sha256-KCd0AuizmsdGOBh7YZLEKcehoygd19HjjFu7V6NsVVw=";
   };
 
-  vendorHash = "sha256-0ZEVOsfb4FBGhNk7CoP7KDhApPTLBz4l5kwcRRBIq5g=";
+  vendorHash = "sha256-eaEAC1jDmApcyn0RC5pvonYVWblRCB2PFTr/K5rZvtU=";
 
   doCheck = false;
 
@@ -40,7 +40,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A CLI for Amazon EKS";
+    description = "CLI for Amazon EKS";
     homepage = "https://github.com/weaveworks/eksctl";
     license = licenses.asl20;
     maintainers = with maintainers; [ xrelkd Chili-Man ];
diff --git a/pkgs/by-name/el/element-call/name.patch b/pkgs/by-name/el/element-call/name.patch
new file mode 100644
index 0000000000000..fa6ab068d18ca
--- /dev/null
+++ b/pkgs/by-name/el/element-call/name.patch
@@ -0,0 +1,10 @@
+diff --git a/package.json b/package.json
+index e25221f2..5268d11a 100644
+--- a/package.json
++++ b/package.json
+@@ -1,4 +1,5 @@
+ {
++  "name": "element-call",
+   "version": "0.0.0",
+   "type": "module",
+   "scripts": {
\ No newline at end of file
diff --git a/pkgs/by-name/el/element-call/package.json b/pkgs/by-name/el/element-call/package.json
new file mode 100644
index 0000000000000..173927845525c
--- /dev/null
+++ b/pkgs/by-name/el/element-call/package.json
@@ -0,0 +1,129 @@
+{
+  "name": "element-call",
+  "version": "0.0.0",
+  "type": "module",
+  "scripts": {
+    "dev": "vite",
+    "build": "NODE_OPTIONS=--max-old-space-size=16384 vite build",
+    "serve": "vite preview",
+    "prettier:check": "prettier -c .",
+    "prettier:format": "prettier -w .",
+    "lint": "yarn lint:types && yarn lint:eslint",
+    "lint:eslint": "eslint --max-warnings 0 src",
+    "lint:eslint-fix": "eslint --max-warnings 0 src --fix",
+    "lint:types": "tsc",
+    "i18n": "node_modules/i18next-parser/bin/cli.js",
+    "i18n:check": "node_modules/i18next-parser/bin/cli.js --fail-on-warnings --fail-on-update",
+    "test": "vitest",
+    "test:coverage": "vitest run --coverage",
+    "backend": "docker-compose -f backend-docker-compose.yml up"
+  },
+  "dependencies": {
+    "@juggle/resize-observer": "^3.3.1",
+    "@livekit/components-core": "^0.10.0",
+    "@livekit/components-react": "^2.0.0",
+    "@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.14.tgz",
+    "@opentelemetry/api": "^1.4.0",
+    "@opentelemetry/context-zone": "^1.9.1",
+    "@opentelemetry/exporter-jaeger": "^1.9.1",
+    "@opentelemetry/exporter-trace-otlp-http": "^0.48.0",
+    "@opentelemetry/instrumentation-document-load": "^0.36.0",
+    "@opentelemetry/instrumentation-user-interaction": "^0.36.0",
+    "@opentelemetry/sdk-trace-web": "^1.9.1",
+    "@radix-ui/react-dialog": "^1.0.4",
+    "@radix-ui/react-slider": "^1.1.2",
+    "@radix-ui/react-visually-hidden": "^1.0.3",
+    "@react-aria/button": "^3.3.4",
+    "@react-aria/focus": "^3.5.0",
+    "@react-aria/menu": "^3.3.0",
+    "@react-aria/overlays": "^3.7.3",
+    "@react-aria/select": "^3.6.0",
+    "@react-aria/tabs": "^3.1.0",
+    "@react-aria/tooltip": "^3.1.3",
+    "@react-aria/utils": "^3.10.0",
+    "@react-rxjs/core": "^0.10.7",
+    "@react-spring/web": "^9.4.4",
+    "@react-stately/collections": "^3.3.4",
+    "@react-stately/select": "^3.1.3",
+    "@react-stately/tooltip": "^3.0.5",
+    "@react-stately/tree": "^3.2.0",
+    "@sentry/react": "^7.0.0",
+    "@sentry/tracing": "^7.0.0",
+    "@types/lodash": "^4.14.199",
+    "@use-gesture/react": "^10.2.11",
+    "@vector-im/compound-design-tokens": "^1.0.0",
+    "@vector-im/compound-web": "^3.0.0",
+    "@vitejs/plugin-basic-ssl": "^1.0.1",
+    "@vitejs/plugin-react": "^4.0.1",
+    "buffer": "^6.0.3",
+    "classnames": "^2.3.1",
+    "events": "^3.3.0",
+    "i18next": "^23.0.0",
+    "i18next-browser-languagedetector": "^7.0.0",
+    "i18next-http-backend": "^2.0.0",
+    "livekit-client": "^2.0.2",
+    "lodash": "^4.17.21",
+    "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#d55c6a36df539f6adacc335efe5b9be27c9cee4a",
+    "matrix-widget-api": "^1.3.1",
+    "normalize.css": "^8.0.1",
+    "pako": "^2.0.4",
+    "postcss-preset-env": "^9.0.0",
+    "posthog-js": "^1.29.0",
+    "react": "18",
+    "react-dom": "18",
+    "react-i18next": "^14.0.0",
+    "react-router-dom": "^5.2.0",
+    "react-use-clipboard": "^1.0.7",
+    "react-use-measure": "^2.1.1",
+    "rxjs": "^7.8.1",
+    "sdp-transform": "^2.14.1",
+    "tinyqueue": "^2.0.3",
+    "unique-names-generator": "^4.6.0",
+    "uuid": "9",
+    "vaul": "^0.9.0"
+  },
+  "devDependencies": {
+    "@babel/core": "^7.16.5",
+    "@babel/preset-env": "^7.22.20",
+    "@babel/preset-react": "^7.22.15",
+    "@babel/preset-typescript": "^7.23.0",
+    "@react-spring/rafz": "^9.7.3",
+    "@react-types/dialog": "^3.5.5",
+    "@sentry/vite-plugin": "^2.0.0",
+    "@testing-library/react": "^14.0.0",
+    "@testing-library/user-event": "^14.5.1",
+    "@types/content-type": "^1.1.5",
+    "@types/dom-screen-wake-lock": "^1.0.1",
+    "@types/dompurify": "^3.0.2",
+    "@types/grecaptcha": "^3.0.4",
+    "@types/node": "^20.0.0",
+    "@types/react-router-dom": "^5.3.3",
+    "@types/request": "^2.48.8",
+    "@types/sdp-transform": "^2.4.5",
+    "@types/uuid": "9",
+    "@typescript-eslint/eslint-plugin": "^7.0.0",
+    "@typescript-eslint/parser": "^7.0.0",
+    "babel-loader": "^9.0.0",
+    "babel-plugin-transform-vite-meta-env": "^1.0.3",
+    "eslint": "^8.14.0",
+    "eslint-config-google": "^0.14.0",
+    "eslint-config-prettier": "^9.0.0",
+    "eslint-plugin-deprecate": "^0.8.2",
+    "eslint-plugin-import": "^2.26.0",
+    "eslint-plugin-jsx-a11y": "^6.5.1",
+    "eslint-plugin-matrix-org": "^1.2.1",
+    "eslint-plugin-react": "^7.29.4",
+    "eslint-plugin-react-hooks": "^4.5.0",
+    "eslint-plugin-unicorn": "^51.0.0",
+    "i18next-parser": "^8.0.0",
+    "jsdom": "^24.0.0",
+    "prettier": "^3.0.0",
+    "sass": "^1.42.1",
+    "typescript": "^5.1.6",
+    "typescript-eslint-language-service": "^5.0.5",
+    "vite": "^5.0.0",
+    "vite-plugin-html-template": "^1.1.0",
+    "vite-plugin-svgr": "^4.0.0",
+    "vitest": "^1.2.2"
+  }
+}
diff --git a/pkgs/by-name/el/element-call/package.nix b/pkgs/by-name/el/element-call/package.nix
new file mode 100644
index 0000000000000..da7f41222c162
--- /dev/null
+++ b/pkgs/by-name/el/element-call/package.nix
@@ -0,0 +1,58 @@
+{ lib
+, stdenv
+, mkYarnPackage
+, fetchFromGitHub
+, fetchYarnDeps
+}:
+
+let
+  inherit (stdenv.hostPlatform) system;
+  throwSystem = throw "Unsupported system: ${system}";
+  offlineCacheHash = {
+    x86_64-linux = "sha256-mZCnvX6hzkdi/zjPiefcmbyC2kGemjS4w7WTVkyq8W0=";
+    aarch64-linux = "sha256-mZCnvX6hzkdi/zjPiefcmbyC2kGemjS4w7WTVkyq8W0=";
+    x86_64-darwin = "sha256-G4doEnZORJqcl3bWaKZPuQmBeXNXud06nLO12Afr9kM=";
+    aarch64-darwin = "sha256-G4doEnZORJqcl3bWaKZPuQmBeXNXud06nLO12Afr9kM=";
+  }.${system} or throwSystem;
+in
+mkYarnPackage rec {
+  pname = "element-call";
+  version = "0.5.16";
+
+  src = fetchFromGitHub {
+    owner = "element-hq";
+    repo = "element-call";
+    rev = "v${version}";
+    hash = "sha256-GTHM27i716RZk+kDELMg/lYy355/SZoQLXGPQ90M4xg=";
+  };
+
+  packageJSON = ./package.json;
+
+  patches = [ ./name.patch ];
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${src}/yarn.lock";
+    hash = offlineCacheHash;
+  };
+
+  buildPhase = ''
+    runHook preBuild
+    yarn --offline run build
+    runHook postBuild
+  '';
+
+  preInstall = ''
+    mkdir $out
+    cp -R ./deps/element-call/dist $out
+  '';
+
+  doDist = false;
+
+  meta = with lib; {
+    homepage = "https://github.com/element-hq/element-call";
+    description = "Group calls powered by Matrix";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ kilimnik ];
+    mainProgram = "element-call";
+  };
+}
diff --git a/pkgs/by-name/el/elvish/package.nix b/pkgs/by-name/el/elvish/package.nix
index 4363657fcced1..20369246ba85b 100644
--- a/pkgs/by-name/el/elvish/package.nix
+++ b/pkgs/by-name/el/elvish/package.nix
@@ -41,7 +41,7 @@ buildGoModule {
 
   meta = {
     homepage = "https://elv.sh/";
-    description = "A friendly and expressive command shell";
+    description = "Friendly and expressive command shell";
     mainProgram = "elvish";
     longDescription = ''
       Elvish is a friendly interactive shell and an expressive programming
diff --git a/pkgs/by-name/em/emacsclient-commands/package.nix b/pkgs/by-name/em/emacsclient-commands/package.nix
index 8bc939fc32eb8..6eb42ec0b534a 100644
--- a/pkgs/by-name/em/emacsclient-commands/package.nix
+++ b/pkgs/by-name/em/emacsclient-commands/package.nix
@@ -26,7 +26,7 @@ buildGoModule {
   '';
 
   meta = with lib; {
-    description = "A collection of small shell utilities that connect to a local Emacs server";
+    description = "Collection of small shell utilities that connect to a local Emacs server";
     homepage = "https://github.com/szermatt/emacsclient-commands";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ binarycat ];
diff --git a/pkgs/by-name/em/emocli/package.nix b/pkgs/by-name/em/emocli/package.nix
index 7139dcfecfbe4..edf6b8dfc24d0 100644
--- a/pkgs/by-name/em/emocli/package.nix
+++ b/pkgs/by-name/em/emocli/package.nix
@@ -15,7 +15,7 @@ buildNimPackage (finalAttrs: {
   env.EMOCLI_DATAFILE = "${unicode-emoji}/share/unicode/emoji/emoji-test.txt";
   meta = {
     homepage = "https://gitlab.com/AsbjornOlling/emocli";
-    description = "The emoji picker for your command line";
+    description = "Emoji picker for your command line";
     license = lib.licenses.eupl12;
     maintainers = with lib.maintainers; [ asbjornolling ];
     mainProgram = "emocli";
diff --git a/pkgs/by-name/em/emulationstation-de/package.nix b/pkgs/by-name/em/emulationstation-de/package.nix
index 1fca35aea1535..9fc0cf1f7bc36 100644
--- a/pkgs/by-name/em/emulationstation-de/package.nix
+++ b/pkgs/by-name/em/emulationstation-de/package.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "EmulationStation Desktop Edition is a frontend for browsing and launching games from your multi-platform game collection.";
+    description = "EmulationStation Desktop Edition is a frontend for browsing and launching games from your multi-platform game collection";
     homepage = "https://es-de.org";
     maintainers = with lib.maintainers; [ ivarmedi ];
     license = lib.licenses.mit;
diff --git a/pkgs/by-name/em/emulationstation/package.nix b/pkgs/by-name/em/emulationstation/package.nix
index 7358aa5ed99ce..62a3537cc5cd5 100644
--- a/pkgs/by-name/em/emulationstation/package.nix
+++ b/pkgs/by-name/em/emulationstation/package.nix
@@ -72,7 +72,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/RetroPie/EmulationStation";
-    description = "A flexible emulator front-end supporting keyboardless navigation and custom system themes (forked by RetroPie)";
+    description = "Flexible emulator front-end supporting keyboardless navigation and custom system themes (forked by RetroPie)";
     license = with lib.licenses; [ mit ];
     mainProgram = "emulationstation";
     maintainers = with lib.maintainers; [ AndersonTorres edwtjo ];
diff --git a/pkgs/by-name/en/endlessh-go/package.nix b/pkgs/by-name/en/endlessh-go/package.nix
index 988438ac89f70..caf44a0c9f9a2 100644
--- a/pkgs/by-name/en/endlessh-go/package.nix
+++ b/pkgs/by-name/en/endlessh-go/package.nix
@@ -26,7 +26,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "An implementation of endlessh exporting Prometheus metrics";
+    description = "Implementation of endlessh exporting Prometheus metrics";
     homepage = "https://github.com/shizunge/endlessh-go";
     changelog = "https://github.com/shizunge/endlessh-go/releases/tag/${version}";
     license = licenses.gpl3Plus;
diff --git a/pkgs/by-name/en/engage/package.nix b/pkgs/by-name/en/engage/package.nix
index 4d7cfc5bcdd19..8a87e0d460971 100644
--- a/pkgs/by-name/en/engage/package.nix
+++ b/pkgs/by-name/en/engage/package.nix
@@ -38,7 +38,7 @@ rustPlatform.buildRustPackage {
       );
 
   meta = {
-    description = "A task runner with DAG-based parallelism";
+    description = "Task runner with DAG-based parallelism";
     mainProgram = "engage";
     homepage = "https://gitlab.computer.surgery/charles/engage";
     changelog = "https://gitlab.computer.surgery/charles/engage/-/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/development/libraries/epoll-shim/default.nix b/pkgs/by-name/ep/epoll-shim/package.nix
index d303f814b2718..bbb49c8ec7c02 100644
--- a/pkgs/development/libraries/epoll-shim/default.nix
+++ b/pkgs/by-name/ep/epoll-shim/package.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "epoll-shim";
-  version = "0.0.20230411";
+  version = "0.0.20240608";
 
   src = fetchFromGitHub {
     owner = "jiixyj";
-    repo = finalAttrs.pname;
+    repo = "epoll-shim";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-TOfybtUEp+EtY2l/UGwVFIESDe9kELJCZHlcz22Cmi8=";
+    hash = "sha256-PIVzVjXOECGv41KtAUmGzUiQ+4lVIyzGEOzVQQ1Pc54=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/ep/epy/package.nix b/pkgs/by-name/ep/epy/package.nix
new file mode 100644
index 0000000000000..5bf3455bc48a2
--- /dev/null
+++ b/pkgs/by-name/ep/epy/package.nix
@@ -0,0 +1,28 @@
+{ lib, python3Packages, fetchPypi }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "epy";
+  version = "2023.6.11";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit version;
+    pname = "epy_reader";
+    hash = "sha256-gel503e8DXjrMJK9lpAZ6GxQsrahKX+SjiyRwKbiJUY=";
+  };
+
+  nativeBuildInputs = [ python3Packages.poetry-core ];
+
+  pythonImportsCheck = [
+    "epy_reader.cli"
+    "epy_reader.reader"
+  ];
+
+  meta = {
+    description = "CLI Ebook Reader";
+    homepage = "https://github.com/wustho/epy";
+    mainProgram = "epy";
+    license = lib.licenses.gpl3;
+    maintainers = with lib.maintainers; [ perstark ];
+  };
+}
diff --git a/pkgs/by-name/er/errands/package.nix b/pkgs/by-name/er/errands/package.nix
index b5114b5e49e53..5c43079ed0f1b 100644
--- a/pkgs/by-name/er/errands/package.nix
+++ b/pkgs/by-name/er/errands/package.nix
@@ -17,7 +17,7 @@
 }:
 python3Packages.buildPythonApplication rec {
   pname = "errands";
-  version = "46.2";
+  version = "46.2.3";
 
   pyproject = false;
 
@@ -25,7 +25,7 @@ python3Packages.buildPythonApplication rec {
     owner = "mrvladus";
     repo = "Errands";
     rev = "refs/tags/${version}";
-    hash = "sha256-p/2dHLWSdDAe0+xTvOgmGscTUPLG+0ddIVHMcHY86xg=";
+    hash = "sha256-JBvyMWEUKUKeAOTCbzNwqpv2ox7bS9p+QsLkJv/lK8k=";
   };
 
   nativeBuildInputs = [
@@ -59,12 +59,13 @@ python3Packages.buildPythonApplication rec {
     makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Manage your tasks";
+    changelog = "https://github.com/mrvladus/Errands/releases/tag/${version}";
     homepage = "https://github.com/mrvladus/Errands";
-    license = licenses.mit;
+    license = lib.licenses.mit;
     mainProgram = "errands";
-    maintainers = with maintainers; [
+    maintainers = with lib.maintainers; [
       luftmensch-luftmensch
       sund3RRR
     ];
diff --git a/pkgs/by-name/es/esbuild-config/package.nix b/pkgs/by-name/es/esbuild-config/package.nix
index d68db5c89a476..6324add2b9343 100644
--- a/pkgs/by-name/es/esbuild-config/package.nix
+++ b/pkgs/by-name/es/esbuild-config/package.nix
@@ -16,11 +16,6 @@ rustPlatform.buildRustPackage rec {
 
   cargoHash = "sha256-Z7uYOjMNxsEmsEXDOIr1zIq4nCgHvHIqpRnRH037b8g=";
 
-  # Cargo.lock is outdated
-  postConfigure = ''
-    cargo metadata --offline
-  '';
-
   meta = with lib; {
     description = "Config files for esbuild";
     homepage = "https://github.com/bpierre/esbuild-config";
diff --git a/pkgs/by-name/es/escambo/package.nix b/pkgs/by-name/es/escambo/package.nix
new file mode 100644
index 0000000000000..24341716dd787
--- /dev/null
+++ b/pkgs/by-name/es/escambo/package.nix
@@ -0,0 +1,62 @@
+{
+  lib,
+  python3Packages,
+  fetchFromGitHub,
+  meson,
+  ninja,
+  pkg-config,
+  gobject-introspection,
+  blueprint-compiler,
+  wrapGAppsHook4,
+  desktop-file-utils,
+  libadwaita,
+  gtksourceview5,
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "escambo";
+  version = "0.1.2";
+  pyproject = false; # built with meson
+
+  src = fetchFromGitHub {
+    owner = "CleoMenezesJr";
+    repo = "escambo";
+    rev = version;
+    hash = "sha256-jMlix8nlCaVLZEhqzb6LRNrD3DUZMTIjqrRKo6nFbQA=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gobject-introspection
+    blueprint-compiler
+    wrapGAppsHook4
+    desktop-file-utils
+  ];
+
+  buildInputs = [
+    libadwaita
+    gtksourceview5
+  ];
+
+  dependencies = with python3Packages; [
+    pygobject3
+    requests
+  ];
+
+  dontWrapGApps = true;
+
+  preFixup = ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
+  meta = {
+    description = "HTTP-based APIs test application for GNOME";
+    homepage = "https://github.com/CleoMenezesJr/escambo";
+    license = lib.licenses.gpl3Plus;
+    mainProgram = "escambo";
+    maintainers = with lib.maintainers; [ aleksana ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/es/espflash/package.nix b/pkgs/by-name/es/espflash/package.nix
index 5615e3cf8cf8f..04ef9a62eaf7d 100644
--- a/pkgs/by-name/es/espflash/package.nix
+++ b/pkgs/by-name/es/espflash/package.nix
@@ -15,13 +15,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "espflash";
-  version = "3.0.0";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "esp-rs";
     repo = "espflash";
     rev = "v${version}";
-    hash = "sha256-0CnYdz1KG/y4B+dOp9rYE097ctf4GNmyqv3/xywdA6A=";
+    hash = "sha256-Tp74x5qgccq/7z1y0ozjiooPFxO7miDPuXBZ+XEKaW0=";
   };
 
   nativeBuildInputs = [
@@ -40,7 +40,7 @@ rustPlatform.buildRustPackage rec {
     SystemConfiguration
   ];
 
-  cargoHash = "sha256-CmhBl+d5odc0QL45aWCJcBZIVeJsdpxJweh7FT8cpyY=";
+  cargoHash = "sha256-kn79kNS+vres7rhHMANAofqFv0k8Bg4HVEWBJvz7CSY=";
 
   postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
     installShellCompletion --cmd espflash \
diff --git a/pkgs/by-name/et/eta/package.nix b/pkgs/by-name/et/eta/package.nix
new file mode 100644
index 0000000000000..a0ba3a6824222
--- /dev/null
+++ b/pkgs/by-name/et/eta/package.nix
@@ -0,0 +1,36 @@
+{
+  fetchFromGitHub,
+  lib,
+  stdenv,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "eta";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "aioobe";
+    repo = "eta";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-UQ8ZoxFAy5dKtXTLwPolPMd7YJeEjsK639RkGCMY6rU=";
+  };
+
+  outputs = [
+    "out"
+    "man"
+  ];
+
+  makeFlags = [
+    "PREFIX=$(out)"
+    "CC=${stdenv.cc.targetPrefix}cc"
+  ];
+
+  meta = {
+    description = "Tool for monitoring progress and ETA of an arbitrary process";
+    homepage = "https://github.com/aioobe/eta";
+    license = lib.licenses.gpl3Only;
+    mainProgram = "eta";
+    maintainers = with lib.maintainers; [ heisfer ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/et/ethercat/package.nix b/pkgs/by-name/et/ethercat/package.nix
index 3e65d5cda9cb2..3d7ae6d0854d2 100644
--- a/pkgs/by-name/et/ethercat/package.nix
+++ b/pkgs/by-name/et/ethercat/package.nix
@@ -8,13 +8,13 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "ethercat";
-  version = "1.6-alpha";
+  version = "1.6.0";
 
   src = fetchFromGitLab {
     owner = "etherlab.org";
     repo = "ethercat";
     rev = "refs/tags/${finalAttrs.version}";
-    hash = "sha256-kzyA6h0rZFEROLcFZoU+2fIQ/Y0NwtdPuliKDbwkHrE=";
+    hash = "sha256-w1aoznLjCHh+dN2fyfpKpzq68B4D/rert2XFpTxk/F4=";
   };
 
   separateDebugInfo = true;
diff --git a/pkgs/by-name/eu/eudev/package.nix b/pkgs/by-name/eu/eudev/package.nix
index abac72290ca5e..7e407aa475d65 100644
--- a/pkgs/by-name/eu/eudev/package.nix
+++ b/pkgs/by-name/eu/eudev/package.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/eudev-project/eudev";
-    description = "A fork of udev with the aim of isolating it from init";
+    description = "Fork of udev with the aim of isolating it from init";
     longDescription = ''
       eudev is a standalone dynamic and persistent device naming support (aka
       userspace devfs) daemon that runs independently from the init
diff --git a/pkgs/by-name/ev/evdevhook2/package.nix b/pkgs/by-name/ev/evdevhook2/package.nix
new file mode 100644
index 0000000000000..9e57517bd5d27
--- /dev/null
+++ b/pkgs/by-name/ev/evdevhook2/package.nix
@@ -0,0 +1,77 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  meson,
+  ninja,
+  pkg-config,
+  vala,
+  glib,
+  libevdev,
+  libgee,
+  udev,
+  testers,
+  nix-update-script,
+}:
+
+let
+  # https://github.com/v1993/evdevhook2/blob/main/subprojects/gcemuhook.wrap
+  gcemuhook = fetchFromGitHub {
+    name = "gcemuhook";
+    owner = "v1993";
+    repo = "gcemuhook";
+    rev = "91ef61cca809f5f3b9fa6e5304aba284a56c06dc";
+    hash = "sha256-CPjSuKtoqSDKd+vEBgFy3qh33TkCVbxBEnwiBAkaADs=";
+  };
+in
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "evdevhook2";
+  version = "1.0.2";
+
+  src = fetchFromGitHub {
+    owner = "v1993";
+    repo = "evdevhook2";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-6CnUYLgrGUM1ndGpbn/T7wkREUzQ1LsLMpkRRxyUZ50=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    vala
+  ];
+
+  buildInputs = [
+    glib
+    libevdev
+    libgee
+    udev
+  ];
+
+  postUnpack = ''
+    ln -sf ${gcemuhook} source/subprojects/gcemuhook
+  '';
+
+  mesonBuildType = "release";
+
+  passthru = {
+    tests.version = testers.testVersion {
+      package = finalAttrs.finalPackage;
+      version = "Evdevhook ${finalAttrs.version}";
+    };
+
+    updateScript = nix-update-script { };
+  };
+
+  meta = {
+    changelog = "https://github.com/v1993/evdevhook2/releases/tag/v${finalAttrs.version}";
+    description = "Cemuhook UDP server for devices with modern Linux drivers";
+    homepage = "https://github.com/v1993/evdevhook2";
+    license = lib.licenses.gpl3Only;
+    mainProgram = "evdevhook2";
+    maintainers = with lib.maintainers; [ azuwis ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/ev/evebox/Cargo.lock b/pkgs/by-name/ev/evebox/Cargo.lock
new file mode 100644
index 0000000000000..4968bb5d5d6ff
--- /dev/null
+++ b/pkgs/by-name/ev/evebox/Cargo.lock
@@ -0,0 +1,2636 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "adler32"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
+
+[[package]]
+name = "ahash"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
+dependencies = [
+ "getrandom 0.2.8",
+ "once_cell",
+ "version_check",
+]
+
+[[package]]
+name = "aho-corasick"
+version = "0.7.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.70"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4"
+
+[[package]]
+name = "arc-swap"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
+
+[[package]]
+name = "arrayvec"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
+
+[[package]]
+name = "async-trait"
+version = "0.1.67"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86ea188f25f0255d8f92797797c97ebf5631fa88178beb1a46fdf5622c9a00e4"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.8",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "axum"
+version = "0.6.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349f8ccfd9221ee7d1f3d4b33e1f8319b3a81ed8f61f2ea40b37b859794b4491"
+dependencies = [
+ "async-trait",
+ "axum-core",
+ "bitflags 1.3.2",
+ "bytes 1.4.0",
+ "futures-util",
+ "headers",
+ "http",
+ "http-body",
+ "hyper",
+ "itoa 1.0.6",
+ "matchit",
+ "memchr",
+ "mime",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustversion",
+ "serde",
+ "serde_json",
+ "serde_path_to_error",
+ "serde_urlencoded 0.7.1",
+ "sync_wrapper",
+ "tokio",
+ "tower",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
+name = "axum-core"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2f958c80c248b34b9a877a643811be8dbca03ca5ba827f2b63baf3a81e5fc4e"
+dependencies = [
+ "async-trait",
+ "bytes 1.4.0",
+ "futures-util",
+ "http",
+ "http-body",
+ "mime",
+ "rustversion",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
+name = "axum-extra"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ea61f9f77592526b73fd14fe0f5938412bda49423f8b9f372ac76a9d6cf0ad2"
+dependencies = [
+ "axum",
+ "bytes 1.4.0",
+ "cookie",
+ "futures-util",
+ "http",
+ "http-body",
+ "mime",
+ "pin-project-lite",
+ "tokio",
+ "tower",
+ "tower-http 0.4.0",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
+name = "axum-server"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bace45b270e36e3c27a190c65883de6dfc9f1d18c829907c127464815dc67b24"
+dependencies = [
+ "arc-swap",
+ "bytes 1.4.0",
+ "futures-util",
+ "http",
+ "http-body",
+ "hyper",
+ "pin-project-lite",
+ "rustls 0.20.8",
+ "rustls-pemfile",
+ "tokio",
+ "tokio-rustls 0.23.4",
+ "tower-service",
+]
+
+[[package]]
+name = "base64"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff"
+
+[[package]]
+name = "base64"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+
+[[package]]
+name = "base64"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a"
+
+[[package]]
+name = "bcrypt"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4d0faafe9e089674fc3efdb311ff5253d445c79d85d1d28bd3ace76d45e7164"
+dependencies = [
+ "base64 0.13.1",
+ "blowfish",
+ "getrandom 0.2.8",
+]
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "487f1e0fcbe47deb8b0574e646def1c903389d95241dd1bbcc6ce4a715dfc0c1"
+
+[[package]]
+name = "block-buffer"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "blowfish"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32fa6a061124e37baba002e496d203e23ba3d7b73750be82dbfbc92913048a5b"
+dependencies = [
+ "byteorder",
+ "cipher",
+ "opaque-debug",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
+
+[[package]]
+name = "byteorder"
+version = "1.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+
+[[package]]
+name = "bytes"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
+
+[[package]]
+name = "bytes"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+
+[[package]]
+name = "cc"
+version = "1.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+
+[[package]]
+name = "cesu8"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "cipher"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "clap"
+version = "4.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42dfd32784433290c51d92c438bb72ea5063797fc3cc9a21a8c4346bebbb2098"
+dependencies = [
+ "bitflags 2.0.2",
+ "clap_derive",
+ "clap_lex",
+ "is-terminal",
+ "once_cell",
+ "strsim",
+ "termcolor",
+]
+
+[[package]]
+name = "clap_derive"
+version = "4.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fddf67631444a3a3e3e5ac51c36a5e01335302de677bd78759eaa90ab1f46644"
+dependencies = [
+ "heck",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "033f6b7a4acb1f358c742aaca805c939ee73b4c6209ae4318ec7aca81c42e646"
+dependencies = [
+ "os_str_bytes",
+]
+
+[[package]]
+name = "combine"
+version = "4.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4"
+dependencies = [
+ "bytes 1.4.0",
+ "memchr",
+]
+
+[[package]]
+name = "cookie"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7efb37c3e1ccb1ff97164ad95ac1606e8ccd35b3fa0a7d99a304c7f4a428cc24"
+dependencies = [
+ "percent-encoding",
+ "time",
+ "version_check",
+]
+
+[[package]]
+name = "core-foundation"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "crc32fast"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "crypto-common"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+dependencies = [
+ "generic-array",
+ "typenum",
+]
+
+[[package]]
+name = "deadpool"
+version = "0.9.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "421fe0f90f2ab22016f32a9881be5134fdd71c65298917084b0c7477cbc3856e"
+dependencies = [
+ "async-trait",
+ "deadpool-runtime",
+ "num_cpus",
+ "retain_mut",
+ "tokio",
+]
+
+[[package]]
+name = "deadpool-runtime"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eaa37046cc0f6c3cc6090fbdbf73ef0b8ef4cfcc37f6befc0020f63e8cf121e1"
+dependencies = [
+ "tokio",
+]
+
+[[package]]
+name = "deadpool-sqlite"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e026821eaacbce25ff0d54405e4421d71656fcae3e4a9323461280fcda6dbc7d"
+dependencies = [
+ "deadpool",
+ "deadpool-sync",
+ "rusqlite",
+]
+
+[[package]]
+name = "deadpool-sync"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1bea344b64b32537fde6e0f0179b1ede34d435636719dd40fe6a0f28218a61c"
+dependencies = [
+ "deadpool",
+]
+
+[[package]]
+name = "digest"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
+dependencies = [
+ "block-buffer",
+ "crypto-common",
+]
+
+[[package]]
+name = "dirs"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
+dependencies = [
+ "dirs-sys",
+]
+
+[[package]]
+name = "dirs-sys"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
+[[package]]
+name = "dtoa"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0"
+
+[[package]]
+name = "encoding_rs"
+version = "0.8.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "errno"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
+dependencies = [
+ "errno-dragonfly",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "errno-dragonfly"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "evebox"
+version = "0.17.2"
+dependencies = [
+ "anyhow",
+ "axum",
+ "axum-extra",
+ "axum-server",
+ "base64 0.12.3",
+ "bcrypt",
+ "bytes 0.5.6",
+ "clap",
+ "deadpool-sqlite",
+ "filetime",
+ "futures",
+ "glob",
+ "humantime",
+ "hyper",
+ "lazy_static",
+ "libc",
+ "log",
+ "maxminddb",
+ "md5",
+ "mime_guess",
+ "nom 7.1.3",
+ "percent-encoding",
+ "rand 0.7.3",
+ "refinery",
+ "regex",
+ "reqwest",
+ "rpassword",
+ "rusqlite",
+ "rust-embed",
+ "serde",
+ "serde_json",
+ "serde_urlencoded 0.6.1",
+ "serde_yaml",
+ "suricatax-rule-parser",
+ "thiserror",
+ "time",
+ "tokio",
+ "tower-http 0.3.5",
+ "tracing",
+ "tracing-log",
+ "tracing-subscriber",
+ "ulid",
+ "uuid",
+ "webbrowser",
+ "yaml-rust",
+]
+
+[[package]]
+name = "evebox-suricata-rule-parser"
+version = "0.2.0"
+dependencies = [
+ "anyhow",
+ "nom 5.1.2",
+]
+
+[[package]]
+name = "fallible-iterator"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7"
+
+[[package]]
+name = "fallible-streaming-iterator"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
+
+[[package]]
+name = "filetime"
+version = "0.2.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a3de6e8d11b22ff9edc6d916f890800597d60f8b2da1caf2955c274638d6412"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "futures"
+version = "0.3.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "531ac96c6ff5fd7c62263c5e3c67a603af4fcaee2e1a0ae5565ba3a11e69e549"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89d422fa3cbe3b40dca574ab087abb5bc98258ea57eea3fd6f1fa7162c778b91"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec93083a4aecafb2a80a885c9de1f0ccae9dbd32c2bb54b0c3a65690e0b8d2f2"
+
+[[package]]
+name = "futures-task"
+version = "0.3.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879"
+
+[[package]]
+name = "futures-util"
+version = "0.3.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "generic-array"
+version = "0.14.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
+dependencies = [
+ "typenum",
+ "version_check",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi 0.9.0+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
+name = "h2"
+version = "0.3.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d357c7ae988e7d2182f7d7871d0b963962420b0678b0997ce7de72001aeab782"
+dependencies = [
+ "bytes 1.4.0",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http",
+ "indexmap",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+dependencies = [
+ "ahash",
+]
+
+[[package]]
+name = "hashlink"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69fe1fcf8b4278d860ad0548329f892a3631fb63f82574df68275f34cdbe0ffa"
+dependencies = [
+ "hashbrown",
+]
+
+[[package]]
+name = "headers"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584"
+dependencies = [
+ "base64 0.13.1",
+ "bitflags 1.3.2",
+ "bytes 1.4.0",
+ "headers-core",
+ "http",
+ "httpdate",
+ "mime",
+ "sha1",
+]
+
+[[package]]
+name = "headers-core"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429"
+dependencies = [
+ "http",
+]
+
+[[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
+name = "hermit-abi"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
+
+[[package]]
+name = "http"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+dependencies = [
+ "bytes 1.4.0",
+ "fnv",
+ "itoa 1.0.6",
+]
+
+[[package]]
+name = "http-body"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+dependencies = [
+ "bytes 1.4.0",
+ "http",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "http-range-header"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29"
+
+[[package]]
+name = "httparse"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
+
+[[package]]
+name = "httpdate"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
+
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "hyper"
+version = "0.14.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4"
+dependencies = [
+ "bytes 1.4.0",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "httparse",
+ "httpdate",
+ "itoa 1.0.6",
+ "pin-project-lite",
+ "socket2",
+ "tokio",
+ "tower-service",
+ "tracing",
+ "want",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0646026eb1b3eea4cd9ba47912ea5ce9cc07713d105b1a14698f4e6433d348b7"
+dependencies = [
+ "http",
+ "hyper",
+ "rustls 0.21.1",
+ "tokio",
+ "tokio-rustls 0.24.0",
+]
+
+[[package]]
+name = "idna"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "include-flate"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfdcb449c721557c1cf89bbd3412bf33fa963289e26e9badbd824a960912e148"
+dependencies = [
+ "include-flate-codegen-exports",
+ "lazy_static",
+ "libflate",
+]
+
+[[package]]
+name = "include-flate-codegen"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a7d6e1419fa3129eb0802b4c99603c0d425c79fb5d76191d5a20d0ab0d664e8"
+dependencies = [
+ "libflate",
+ "proc-macro-hack",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "include-flate-codegen-exports"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75657043ffe3d8280f1cb8aef0f505532b392ed7758e0baeac22edadcee31a03"
+dependencies = [
+ "include-flate-codegen",
+ "proc-macro-hack",
+]
+
+[[package]]
+name = "indexmap"
+version = "1.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"
+dependencies = [
+ "autocfg",
+ "hashbrown",
+]
+
+[[package]]
+name = "io-lifetimes"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09270fd4fa1111bc614ed2246c7ef56239a3063d5be0d1ec3b589c505d400aeb"
+dependencies = [
+ "hermit-abi 0.3.1",
+ "libc",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "ipnet"
+version = "2.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146"
+
+[[package]]
+name = "is-terminal"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8687c819457e979cc940d09cb16e42a1bf70aa6b60a549de6d3a62a0ee90c69e"
+dependencies = [
+ "hermit-abi 0.3.1",
+ "io-lifetimes",
+ "rustix",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "itoa"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
+
+[[package]]
+name = "itoa"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+
+[[package]]
+name = "jni"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97"
+dependencies = [
+ "cesu8",
+ "cfg-if",
+ "combine",
+ "jni-sys",
+ "log",
+ "thiserror",
+ "walkdir",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "jni-sys"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
+
+[[package]]
+name = "js-sys"
+version = "0.3.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "lexical-core"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe"
+dependencies = [
+ "arrayvec",
+ "bitflags 1.3.2",
+ "cfg-if",
+ "ryu",
+ "static_assertions",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.140"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
+
+[[package]]
+name = "libflate"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97822bf791bd4d5b403713886a5fbe8bf49520fe78e323b0dc480ca1a03e50b0"
+dependencies = [
+ "adler32",
+ "crc32fast",
+ "libflate_lz77",
+]
+
+[[package]]
+name = "libflate_lz77"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a52d3a8bfc85f250440e4424db7d857e241a3aebbbe301f3eb606ab15c39acbf"
+dependencies = [
+ "rle-decode-fast",
+]
+
+[[package]]
+name = "libsqlite3-sys"
+version = "0.25.2"
+source = "git+https://github.com/rusqlite/rusqlite#32752fac77a105e47b7a5a56fdea72bede5535cc"
+dependencies = [
+ "cc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "linked-hash-map"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
+
+[[package]]
+name = "log"
+version = "0.4.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "malloc_buf"
+version = "0.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "matchers"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
+dependencies = [
+ "regex-automata",
+]
+
+[[package]]
+name = "matchit"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40"
+
+[[package]]
+name = "maxminddb"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9412a854bf1355d1ff92ef6ffe557dcc4a866e20cdffc7d3fc082174dba7436e"
+dependencies = [
+ "log",
+ "serde",
+ "serde_derive",
+]
+
+[[package]]
+name = "md5"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
+
+[[package]]
+name = "memchr"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+
+[[package]]
+name = "mime"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+
+[[package]]
+name = "mime_guess"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
+dependencies = [
+ "mime",
+ "unicase",
+]
+
+[[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
+name = "mio"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9"
+dependencies = [
+ "libc",
+ "log",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "ndk-context"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
+
+[[package]]
+name = "nom"
+version = "5.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
+dependencies = [
+ "lexical-core",
+ "memchr",
+ "version_check",
+]
+
+[[package]]
+name = "nom"
+version = "7.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+dependencies = [
+ "memchr",
+ "minimal-lexical",
+]
+
+[[package]]
+name = "nu-ansi-term"
+version = "0.46.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
+dependencies = [
+ "overload",
+ "winapi",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
+dependencies = [
+ "hermit-abi 0.2.6",
+ "libc",
+]
+
+[[package]]
+name = "num_threads"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "objc"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
+dependencies = [
+ "malloc_buf",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.17.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+
+[[package]]
+name = "opaque-debug"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "os_str_bytes"
+version = "6.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267"
+
+[[package]]
+name = "overload"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
+[[package]]
+name = "percent-encoding"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
+
+[[package]]
+name = "pin-project"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-hack"
+version = "0.5.20+deprecated"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.53"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba466839c78239c09faf015484e5cc04860f88242cff4d03eb038f04b4699b73"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom 0.1.16",
+ "libc",
+ "rand_chacha 0.2.2",
+ "rand_core 0.5.1",
+ "rand_hc",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha 0.3.1",
+ "rand_core 0.6.4",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+dependencies = [
+ "ppv-lite86",
+ "rand_core 0.5.1",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core 0.6.4",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+dependencies = [
+ "getrandom 0.1.16",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom 0.2.8",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+dependencies = [
+ "rand_core 0.5.1",
+]
+
+[[package]]
+name = "raw-window-handle"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f851a03551ceefd30132e447f07f96cb7011d6b658374f3aed847333adb5559"
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+dependencies = [
+ "getrandom 0.2.8",
+ "redox_syscall",
+ "thiserror",
+]
+
+[[package]]
+name = "refinery"
+version = "0.8.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a65acc0e1f0e7c80480aacb5087e3509b85806985f54dd7dfeafee4c3128943a"
+dependencies = [
+ "refinery-core",
+ "refinery-macros",
+]
+
+[[package]]
+name = "refinery-core"
+version = "0.8.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d3af3c282b6dae2e9952b28a637ee8148ee34ef6edfd0415df6de2799d4fc3b"
+dependencies = [
+ "async-trait",
+ "cfg-if",
+ "lazy_static",
+ "log",
+ "regex",
+ "rusqlite",
+ "serde",
+ "siphasher",
+ "thiserror",
+ "time",
+ "toml",
+ "url",
+ "walkdir",
+]
+
+[[package]]
+name = "refinery-macros"
+version = "0.8.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6feea59ecc7e3ebf27244271063f3dfb59226629e2661f535c771fcb358ae9"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "refinery-core",
+ "regex",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "regex"
+version = "1.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cce168fea28d3e05f158bda4576cf0c844d5045bc2cc3620fa0292ed5bb5814c"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+dependencies = [
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+
+[[package]]
+name = "reqwest"
+version = "0.11.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55"
+dependencies = [
+ "base64 0.21.0",
+ "bytes 1.4.0",
+ "encoding_rs",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "hyper",
+ "hyper-rustls",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls 0.21.1",
+ "rustls-native-certs",
+ "rustls-pemfile",
+ "serde",
+ "serde_json",
+ "serde_urlencoded 0.7.1",
+ "tokio",
+ "tokio-rustls 0.24.0",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "webpki-roots",
+ "winreg",
+]
+
+[[package]]
+name = "retain_mut"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4389f1d5789befaf6029ebd9f7dac4af7f7e3d61b69d4f30e2ac02b57e7712b0"
+
+[[package]]
+name = "ring"
+version = "0.16.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
+dependencies = [
+ "cc",
+ "libc",
+ "once_cell",
+ "spin",
+ "untrusted",
+ "web-sys",
+ "winapi",
+]
+
+[[package]]
+name = "rle-decode-fast"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422"
+
+[[package]]
+name = "rpassword"
+version = "4.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99371657d3c8e4d816fb6221db98fa408242b0b53bac08f8676a41f8554fe99f"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "rusqlite"
+version = "0.28.0"
+source = "git+https://github.com/rusqlite/rusqlite#32752fac77a105e47b7a5a56fdea72bede5535cc"
+dependencies = [
+ "bitflags 2.0.2",
+ "fallible-iterator",
+ "fallible-streaming-iterator",
+ "hashlink",
+ "libsqlite3-sys",
+ "serde_json",
+ "smallvec",
+]
+
+[[package]]
+name = "rust-embed"
+version = "6.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb133b9a38b5543fad3807fb2028ea47c5f2b566f4f5e28a11902f1a358348b6"
+dependencies = [
+ "include-flate",
+ "rust-embed-impl",
+ "rust-embed-utils",
+ "walkdir",
+]
+
+[[package]]
+name = "rust-embed-impl"
+version = "6.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d4e0f0ced47ded9a68374ac145edd65a6c1fa13a96447b873660b2a568a0fd7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "rust-embed-utils",
+ "syn 1.0.109",
+ "walkdir",
+]
+
+[[package]]
+name = "rust-embed-utils"
+version = "7.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "512b0ab6853f7e14e3c8754acb43d6f748bb9ced66aa5915a6553ac8213f7731"
+dependencies = [
+ "sha2",
+ "walkdir",
+]
+
+[[package]]
+name = "rustix"
+version = "0.36.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db4165c9963ab29e422d6c26fbc1d37f15bace6b2810221f9d925023480fcf0e"
+dependencies = [
+ "bitflags 1.3.2",
+ "errno",
+ "io-lifetimes",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "rustls"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f"
+dependencies = [
+ "log",
+ "ring",
+ "sct",
+ "webpki",
+]
+
+[[package]]
+name = "rustls"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c911ba11bc8433e811ce56fde130ccf32f5127cab0e0194e9c68c5a5b671791e"
+dependencies = [
+ "log",
+ "ring",
+ "rustls-webpki",
+ "sct",
+]
+
+[[package]]
+name = "rustls-native-certs"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50"
+dependencies = [
+ "openssl-probe",
+ "rustls-pemfile",
+ "schannel",
+ "security-framework",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b"
+dependencies = [
+ "base64 0.21.0",
+]
+
+[[package]]
+name = "rustls-webpki"
+version = "0.100.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06"
+
+[[package]]
+name = "ryu"
+version = "1.0.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
+
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "schannel"
+version = "0.1.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3"
+dependencies = [
+ "windows-sys 0.42.0",
+]
+
+[[package]]
+name = "sct"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
+name = "security-framework"
+version = "2.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "core-foundation-sys",
+ "libc",
+ "security-framework-sys",
+]
+
+[[package]]
+name = "security-framework-sys"
+version = "2.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.158"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "771d4d9c4163ee138805e12c710dd365e4f44be8be0503cb1bb9eb989425d9c9"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.158"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e801c1712f48475582b7696ac71e0ca34ebb30e09338425384269d9717c62cad"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.8",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.94"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea"
+dependencies = [
+ "itoa 1.0.6",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_path_to_error"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7f05c1d5476066defcdfacce1f52fc3cae3af1d3089727100c02ae92e5abbe0"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_urlencoded"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ec5d77e2d4c73717816afac02670d5c4f534ea95ed430442cad02e7a6e32c97"
+dependencies = [
+ "dtoa",
+ "itoa 0.4.8",
+ "serde",
+ "url",
+]
+
+[[package]]
+name = "serde_urlencoded"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+dependencies = [
+ "form_urlencoded",
+ "itoa 1.0.6",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_yaml"
+version = "0.8.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b"
+dependencies = [
+ "indexmap",
+ "ryu",
+ "serde",
+ "yaml-rust",
+]
+
+[[package]]
+name = "sha1"
+version = "0.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sha2"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sharded-slab"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "siphasher"
+version = "0.3.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
+
+[[package]]
+name = "slab"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+
+[[package]]
+name = "socket2"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "spin"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+
+[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "suricatax-rule-parser"
+version = "0.1.0"
+source = "git+https://github.com/jasonish/rust-suricatax-rule-parser#3c6e3aeecbcc2a17cbb000323277ea705402886a"
+dependencies = [
+ "nom 7.1.3",
+ "num-traits",
+ "serde",
+]
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bcc02725fd69ab9f26eab07fad303e2497fad6fb9eba4f96c4d1687bdf704ad9"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "sync_wrapper"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
+
+[[package]]
+name = "termcolor"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.8",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+]
+
+[[package]]
+name = "time"
+version = "0.3.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890"
+dependencies = [
+ "itoa 1.0.6",
+ "libc",
+ "num_threads",
+ "serde",
+ "time-core",
+ "time-macros",
+]
+
+[[package]]
+name = "time-core"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
+
+[[package]]
+name = "time-macros"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36"
+dependencies = [
+ "time-core",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "tokio"
+version = "1.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "03201d01c3c27a29c8a5cee5b55a93ddae1ccf6f08f65365c2c918f8c1b76f64"
+dependencies = [
+ "autocfg",
+ "bytes 1.4.0",
+ "libc",
+ "memchr",
+ "mio",
+ "num_cpus",
+ "pin-project-lite",
+ "signal-hook-registry",
+ "socket2",
+ "tokio-macros",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "tokio-macros"
+version = "1.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.23.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59"
+dependencies = [
+ "rustls 0.20.8",
+ "tokio",
+ "webpki",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0d409377ff5b1e3ca6437aa86c1eb7d40c134bfec254e44c830defa92669db5"
+dependencies = [
+ "rustls 0.21.1",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-util"
+version = "0.7.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5427d89453009325de0d8f342c9490009f76e999cb7672d77e46267448f7e6b2"
+dependencies = [
+ "bytes 1.4.0",
+ "futures-core",
+ "futures-sink",
+ "pin-project-lite",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "toml"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "tower"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"
+dependencies = [
+ "futures-core",
+ "futures-util",
+ "pin-project",
+ "pin-project-lite",
+ "tokio",
+ "tower-layer",
+ "tower-service",
+ "tracing",
+]
+
+[[package]]
+name = "tower-http"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858"
+dependencies = [
+ "bitflags 1.3.2",
+ "bytes 1.4.0",
+ "futures-core",
+ "futures-util",
+ "http",
+ "http-body",
+ "http-range-header",
+ "pin-project-lite",
+ "tower-layer",
+ "tower-service",
+ "tracing",
+]
+
+[[package]]
+name = "tower-http"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d1d42a9b3f3ec46ba828e8d376aec14592ea199f70a06a548587ecd1c4ab658"
+dependencies = [
+ "bitflags 1.3.2",
+ "bytes 1.4.0",
+ "futures-core",
+ "futures-util",
+ "http",
+ "http-body",
+ "http-range-header",
+ "pin-project-lite",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
+name = "tower-layer"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0"
+
+[[package]]
+name = "tower-service"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+
+[[package]]
+name = "tracing"
+version = "0.1.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+dependencies = [
+ "cfg-if",
+ "log",
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a"
+dependencies = [
+ "once_cell",
+ "valuable",
+]
+
+[[package]]
+name = "tracing-log"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
+dependencies = [
+ "lazy_static",
+ "log",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-subscriber"
+version = "0.3.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70"
+dependencies = [
+ "matchers",
+ "nu-ansi-term",
+ "once_cell",
+ "regex",
+ "sharded-slab",
+ "smallvec",
+ "thread_local",
+ "time",
+ "tracing",
+ "tracing-core",
+ "tracing-log",
+]
+
+[[package]]
+name = "try-lock"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
+
+[[package]]
+name = "typenum"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+
+[[package]]
+name = "ulid"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13a3aaa69b04e5b66cc27309710a569ea23593612387d67daaf102e73aa974fd"
+dependencies = [
+ "rand 0.8.5",
+]
+
+[[package]]
+name = "unicase"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "untrusted"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
+
+[[package]]
+name = "url"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+]
+
+[[package]]
+name = "uuid"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
+dependencies = [
+ "getrandom 0.2.8",
+]
+
+[[package]]
+name = "valuable"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "walkdir"
+version = "2.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
+dependencies = [
+ "same-file",
+ "winapi-util",
+]
+
+[[package]]
+name = "want"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0"
+dependencies = [
+ "log",
+ "try-lock",
+]
+
+[[package]]
+name = "wasi"
+version = "0.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
+
+[[package]]
+name = "web-sys"
+version = "0.3.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "webbrowser"
+version = "0.8.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "579cc485bd5ce5bfa0d738e4921dd0b956eca9800be1fd2e5257ebe95bc4617e"
+dependencies = [
+ "core-foundation",
+ "dirs",
+ "jni",
+ "log",
+ "ndk-context",
+ "objc",
+ "raw-window-handle",
+ "url",
+ "web-sys",
+]
+
+[[package]]
+name = "webpki"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
+name = "webpki-roots"
+version = "0.22.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87"
+dependencies = [
+ "webpki",
+]
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.45.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+
+[[package]]
+name = "winreg"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "yaml-rust"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
+dependencies = [
+ "linked-hash-map",
+]
diff --git a/pkgs/by-name/ev/evebox/package.nix b/pkgs/by-name/ev/evebox/package.nix
new file mode 100644
index 0000000000000..9e8567be67533
--- /dev/null
+++ b/pkgs/by-name/ev/evebox/package.nix
@@ -0,0 +1,34 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "evebox";
+  version = "0.17.2";
+
+  src = fetchFromGitHub {
+    owner = "jasonish";
+    repo = "evebox";
+    rev = version;
+    hash = "sha256-djL5cdudJNPAWLMQPS2Dkcc9H/gouOuu8evcBDdY9wA=";
+  };
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "libsqlite3-sys-0.25.2" = "sha256-+c7ong6ca4WkEHl7ynCNn3WW68jF3pSYbllRsaNFGLc=";
+      "suricatax-rule-parser-0.1.0" = "sha256-upWgOKSAuj0pYGTeYKANzwutoF/m4AQ7MkzGYXmPbEo=";
+    };
+  };
+
+  meta = {
+    description = "Web Based Event Viewer (GUI) for Suricata EVE Events in Elastic Search";
+    homepage = "https://evebox.org/";
+    changelog = "https://github.com/jasonish/evebox/releases/tag/${src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ felbinger ];
+    broken = stdenv.isDarwin;
+  };
+}
diff --git a/pkgs/by-name/ev/everdo/package.nix b/pkgs/by-name/ev/everdo/package.nix
new file mode 100644
index 0000000000000..97934fb9c21a9
--- /dev/null
+++ b/pkgs/by-name/ev/everdo/package.nix
@@ -0,0 +1,34 @@
+{
+  appimageTools,
+  lib,
+  fetchurl,
+}: let
+  pname = "everdo";
+  version = "1.9.0";
+
+  src = fetchurl {
+    url = "https://release.everdo.net/${version}/Everdo-${version}.AppImage";
+    hash = "sha256-0yxAzM+qmgm4E726QDYS9QwMdp6dUcuvjZzWYEZx7kU=";
+  };
+
+  appimageContents = appimageTools.extractType2 {inherit pname version src;};
+in
+  appimageTools.wrapType2 {
+    inherit pname version src;
+
+    extraInstallCommands = ''
+      install -Dm444 ${appimageContents}/everdo.desktop -t $out/share/applications
+      substituteInPlace $out/share/applications/everdo.desktop \
+        --replace-fail 'Exec=AppRun --no-sandbox %U' 'Exec=everdo %u'
+      cp -r ${appimageContents}/usr/share/icons $out/share
+    '';
+
+    meta = {
+      description = "Cross-platform GTD app with focus on privacy";
+      homepage = "https://everdo.net/";
+      license = lib.licenses.unfree;
+      maintainers = [lib.maintainers.luftmensch-luftmensch];
+      mainProgram = "everdo";
+      platforms = ["x86_64-linux"];
+    };
+  }
diff --git a/pkgs/by-name/ev/everforest-gtk-theme/package.nix b/pkgs/by-name/ev/everforest-gtk-theme/package.nix
new file mode 100644
index 0000000000000..943c743f894d8
--- /dev/null
+++ b/pkgs/by-name/ev/everforest-gtk-theme/package.nix
@@ -0,0 +1,44 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, gnome-themes-extra
+, gtk-engine-murrine
+}:
+
+stdenvNoCC.mkDerivation {
+  pname = "everforest-gtk-theme";
+  version = "0-unstable-2023-03-20";
+
+  src = fetchFromGitHub {
+    owner = "Fausto-Korpsvart";
+    repo = "Everforest-GTK-Theme";
+    rev = "8481714cf9ed5148694f1916ceba8fe21e14937b";
+    sha256 = "sha256-NO12ku8wnW/qMHKxi5TL/dqBxH0+cZbe+fU0iicb9JU=";
+  };
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  buildInputs = [
+    gnome-themes-extra
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p "$out/share/"{themes,icons}
+    cp -a icons/* "$out/share/icons/"
+    cp -a themes/* "$out/share/themes/"
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Everforest colour palette for GTK";
+    homepage = "https://github.com/Fausto-Korpsvart/Everforest-GTK-Theme";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ jn-sena ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/by-name/ew/eww/package.nix b/pkgs/by-name/ew/eww/package.nix
index 76cd0eb46fab3..ae676efa9fb21 100644
--- a/pkgs/by-name/ew/eww/package.nix
+++ b/pkgs/by-name/ew/eww/package.nix
@@ -49,7 +49,7 @@ rustPlatform.buildRustPackage rec {
   RUSTC_BOOTSTRAP = 1;
 
   meta = {
-    description = "A widget system made in Rust to create widgets for any WM";
+    description = "Widget system made in Rust to create widgets for any WM";
     longDescription = ''
       Eww (ElKowar's Wacky Widgets) is a widget system made in Rust which lets
       you create your own widgets similarly to how you can in AwesomeWM.
diff --git a/pkgs/by-name/ex/ext3grep/package.nix b/pkgs/by-name/ex/ext3grep/package.nix
index 9e5ab4daf37fd..bb91a683ba2e7 100644
--- a/pkgs/by-name/ex/ext3grep/package.nix
+++ b/pkgs/by-name/ex/ext3grep/package.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A tool to investigate an ext3 file system for deleted content and possibly recover it";
+    description = "Tool to investigate an ext3 file system for deleted content and possibly recover it";
     mainProgram = "ext3grep";
     homepage = "https://code.google.com/archive/p/ext3grep/";
     maintainers = with maintainers; [ d3vil0p3r ];
diff --git a/pkgs/by-name/ez/eza/package.nix b/pkgs/by-name/ez/eza/package.nix
index 2eb046cf6943d..e2f8f6ccebf0b 100644
--- a/pkgs/by-name/ez/eza/package.nix
+++ b/pkgs/by-name/ez/eza/package.nix
@@ -17,16 +17,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "eza";
-  version = "0.18.16";
+  version = "0.18.18";
 
   src = fetchFromGitHub {
     owner = "eza-community";
     repo = "eza";
     rev = "v${version}";
-    hash = "sha256-VaQLPQseLgxzDMnlMsfh5XGhjNYIBrMDBm2JsY2Gou4=";
+    hash = "sha256-MBu5zwidjIWs9z6DXYNGsHIwic3ipScAw6TZjSvEvJk=";
   };
 
-  cargoHash = "sha256-zxIGYNdgAJQHng1jfaJPwAlbflJi0W5osAf5F2Is0ws=";
+  cargoHash = "sha256-TsW3Rl4EKvrPPhEYzp0K3lBkDYJiehctT/FnkL3yazU=";
 
   nativeBuildInputs = [ cmake pkg-config installShellFiles pandoc ];
   buildInputs = [ zlib ]
@@ -51,7 +51,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A modern, maintained replacement for ls";
+    description = "Modern, maintained replacement for ls";
     longDescription = ''
       eza is a modern replacement for ls. It uses colours for information by
       default, helping you distinguish between many types of files, such as
diff --git a/pkgs/by-name/fa/facter/package.nix b/pkgs/by-name/fa/facter/package.nix
index 38d037c53efb7..fa92def6b1bc2 100644
--- a/pkgs/by-name/fa/facter/package.nix
+++ b/pkgs/by-name/fa/facter/package.nix
@@ -56,7 +56,7 @@ bundlerApp {
 
   meta = {
     changelog = "https://www.puppet.com/docs/puppet/latest/release_notes_facter.html";
-    description = "A system inventory tool";
+    description = "System inventory tool";
     homepage = "https://github.com/puppetlabs/facter";
     license = lib.licenses.asl20;
     mainProgram = "facter";
diff --git a/pkgs/by-name/fa/fantomas/package.nix b/pkgs/by-name/fa/fantomas/package.nix
index ec24db25e11b9..804e93aa58065 100644
--- a/pkgs/by-name/fa/fantomas/package.nix
+++ b/pkgs/by-name/fa/fantomas/package.nix
@@ -2,9 +2,9 @@
 
 buildDotnetGlobalTool {
   pname = "fantomas";
-  version = "6.3.4";
+  version = "6.3.9";
 
-  nugetSha256 = "sha256-1aWqZynBkQoznenGoP0sbf1PcUXAbcHiWyECuv89xa0=";
+  nugetSha256 = "sha256-XRPC5cXMoTJLLHe3f5A3+uXakbL+D7DlX0sA52KMZKw=";
 
   meta = with lib; {
     description = "F# source code formatter";
diff --git a/pkgs/by-name/fa/fastfetch/package.nix b/pkgs/by-name/fa/fastfetch/package.nix
index 6fcc7c3773ad1..5a3c6d4882102 100644
--- a/pkgs/by-name/fa/fastfetch/package.nix
+++ b/pkgs/by-name/fa/fastfetch/package.nix
@@ -47,13 +47,13 @@ let
 in
 stdenv'.mkDerivation (finalAttrs: {
   pname = "fastfetch";
-  version = "2.13.1";
+  version = "2.15.0";
 
   src = fetchFromGitHub {
     owner = "fastfetch-cli";
     repo = "fastfetch";
     rev = finalAttrs.version;
-    hash = "sha256-AB7GxeKLD+xdnFEA/STD7CFazsybYGtX10Q/Q4MRTrU=";
+    hash = "sha256-0kReN7FKrcRhxUuwZoArLTW2F1q40Wbp9/hRoDjKZHs=";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/by-name/fc/fcast-client/package.nix b/pkgs/by-name/fc/fcast-client/package.nix
new file mode 100644
index 0000000000000..9f9277fed3277
--- /dev/null
+++ b/pkgs/by-name/fc/fcast-client/package.nix
@@ -0,0 +1,37 @@
+{
+  lib,
+  rustPlatform,
+  fetchFromGitLab,
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "fcast-client";
+  version = "0.1.0-unstable-2024-05-23";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.futo.org";
+    owner = "videostreaming";
+    repo = "fcast";
+    rev = "cc07f95d2315406fcacf67cb3abb98efff5df5d9";
+    hash = "sha256-vsD4xgrC5KbnZT6hPX3fi3M/CH39LtoRfa6nYD0iFew=";
+  };
+
+  sourceRoot = "${src.name}/clients/terminal";
+  cargoHash = "sha256-VVG7AbwbbgCANMcFYNAIF76MQr7Fkmq5HXPxL3MnEhI=";
+
+  meta = {
+    description = "FCast Client Terminal, a terminal open-source media streaming client";
+    homepage = "https://fcast.org/";
+    license = lib.licenses.gpl3;
+    longDescription = ''
+      FCast is a protocol designed for wireless streaming of audio and video
+      content between devices. Unlike alternative protocols like Chromecast and
+      AirPlay, FCast is an open source protocol that allows for custom receiver
+      implementations, enabling third-party developers to create their own
+      receiver devices or integrate the FCast protocol into their own apps.
+    '';
+    mainProgram = "fcast-client";
+    maintainers = with lib.maintainers; [ drupol ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/fc/fcitx5-catppuccin/package.nix b/pkgs/by-name/fc/fcitx5-catppuccin/package.nix
new file mode 100644
index 0000000000000..954471d716625
--- /dev/null
+++ b/pkgs/by-name/fc/fcitx5-catppuccin/package.nix
@@ -0,0 +1,39 @@
+{
+  lib,
+  stdenvNoCC,
+  fetchFromGitHub,
+  unstableGitUpdater,
+}:
+stdenvNoCC.mkDerivation {
+  pname = "fcitx5-catppuccin";
+  version = "0-unstable-2022-10-05";
+
+  src = fetchFromGitHub {
+    owner = "catppuccin";
+    repo = "fcitx5";
+    rev = "ce244cfdf43a648d984719fdfd1d60aab09f5c97";
+    hash = "sha256-uFaCbyrEjv4oiKUzLVFzw+UY54/h7wh2cntqeyYwGps=";
+  };
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fcitx5/themes
+    cp -r src/catppuccin-* $out/share/fcitx5/themes
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = unstableGitUpdater { };
+
+  meta = with lib; {
+    description = "Soothing pastel theme for Fcitx5";
+    homepage = "https://github.com/catppuccin/fcitx5";
+    license = licenses.mit;
+    maintainers = with maintainers; [ Guanran928 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/by-name/fc/fcitx5-tokyonight/package.nix b/pkgs/by-name/fc/fcitx5-tokyonight/package.nix
new file mode 100644
index 0000000000000..6771c664fdbea
--- /dev/null
+++ b/pkgs/by-name/fc/fcitx5-tokyonight/package.nix
@@ -0,0 +1,44 @@
+{
+  lib,
+  stdenvNoCC,
+  fetchFromGitHub,
+  unstableGitUpdater,
+}:
+stdenvNoCC.mkDerivation {
+  pname = "fcitx5-tokyonight";
+  version = "0-unstable-2024-01-28";
+
+  src = fetchFromGitHub {
+    owner = "ch3n9w";
+    repo = "fcitx5-Tokyonight";
+    rev = "f7454ab387d6b071ee12ff7ee819f0c7030fdf2c";
+    hash = "sha256-swOy0kDZUdqtC2sPSZEBLnHSs8dpQ/QfFMObI6BARfo=";
+  };
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 Tokyonight-Day/{arrow.png,panel.png,radio.png} -t $out/share/fcitx5-tokyonight/
+    for _variant in Tokyonight-Day Tokyonight-Storm; do
+      mkdir -p $out/share/fcitx5/themes/$_variant/
+      ln -s $out/share/fcitx5-tokyonight/arrow.png $out/share/fcitx5/themes/$_variant/arrow.png
+      ln -s $out/share/fcitx5-tokyonight/radio.png $out/share/fcitx5/themes/$_variant/radio.png
+      install -Dm644 $_variant/theme.conf $out/share/fcitx5/themes/$_variant/theme.conf
+    done
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = unstableGitUpdater { };
+
+  meta = with lib; {
+    description = "Fcitx5 theme based on Tokyo Night color";
+    homepage = "https://github.com/ch3n9w/fcitx5-Tokyonight";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ Guanran928 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/by-name/fe/feather/package.nix b/pkgs/by-name/fe/feather/package.nix
index 9c2dbd03500f0..6ef42e918f343 100644
--- a/pkgs/by-name/fe/feather/package.nix
+++ b/pkgs/by-name/fe/feather/package.nix
@@ -77,7 +77,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A free Monero desktop wallet";
+    description = "Free Monero desktop wallet";
     homepage = "https://featherwallet.org/";
     changelog = "https://featherwallet.org/changelog/#${finalAttrs.version}%20changelog";
     platforms = platforms.linux;
diff --git a/pkgs/applications/file-managers/felix-fm/default.nix b/pkgs/by-name/fe/felix-fm/package.nix
index f34be93fc3ca7..7b938a93c01de 100644
--- a/pkgs/applications/file-managers/felix-fm/default.nix
+++ b/pkgs/by-name/fe/felix-fm/package.nix
@@ -1,9 +1,11 @@
 { lib
 , rustPlatform
 , fetchFromGitHub
+, fetchpatch2
 , pkg-config
 , bzip2
 , libgit2
+, nix-update-script
 , zlib
 , zstd
 , zoxide
@@ -11,16 +13,25 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "felix";
-  version = "2.12.1";
+  version = "2.13.0";
 
   src = fetchFromGitHub {
     owner = "kyoheiu";
     repo = "felix";
     rev = "v${version}";
-    hash = "sha256-M+auLJeD5rDk5LJfTBg9asZ3J4DHsZG4UGRhXdZZVkc=";
+    hash = "sha256-7KuL3YkKhjcZSMSipbNITaA9/MGo54f3lz3fVOgy52s=";
   };
 
-  cargoHash = "sha256-GzaBaaGjBCz+xd1bpU2cebQvg5DO0qipHwhOerbq+ow=";
+  cargoPatches = [
+    # https://github.com/kyoheiu/felix/pull/292
+    (fetchpatch2 {
+      name = "update-cargo.lock-for-2.13.0.patch";
+      url = "https://github.com/kyoheiu/felix/commit/5085b147103878ee8138d4fcf7b204223ba2c3eb.patch";
+      hash = "sha256-7Bga9hcJCXExA/jnrR/HuZgOOVBbWs1tdTwxldcvdU8=";
+    })
+  ];
+
+  cargoHash = "sha256-FX3AsahU5ZLMuylwo1jihP9G4Dw1SFv1oMXcuOqDTF8=";
 
   nativeBuildInputs = [ pkg-config ];
 
@@ -45,8 +56,10 @@ rustPlatform.buildRustPackage rec {
     "--skip=state::tests::test_has_write_permission"
   ];
 
+  passthru.updateScript = nix-update-script { };
+
   meta = with lib; {
-    description = "A tui file manager with vim-like key mapping";
+    description = "Tui file manager with vim-like key mapping";
     homepage = "https://github.com/kyoheiu/felix";
     changelog = "https://github.com/kyoheiu/felix/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/by-name/fe/fennel-ls/package.nix b/pkgs/by-name/fe/fennel-ls/package.nix
index 7af59ed320dcc..bab9da849f2e6 100644
--- a/pkgs/by-name/fe/fennel-ls/package.nix
+++ b/pkgs/by-name/fe/fennel-ls/package.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: {
   installFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "A language server for intelligent editing of the Fennel Programming Language";
+    description = "Language server for intelligent editing of the Fennel Programming Language";
     homepage = "https://git.sr.ht/~xerool/fennel-ls/";
     license = licenses.mit;
     changelog = "https://git.sr.ht/~xerool/fennel-ls/refs/${version}";
diff --git a/pkgs/by-name/ff/ff2mpv-rust/package.nix b/pkgs/by-name/ff/ff2mpv-rust/package.nix
index a0d78cb2c3bc0..2ffd89d1ef0b1 100644
--- a/pkgs/by-name/ff/ff2mpv-rust/package.nix
+++ b/pkgs/by-name/ff/ff2mpv-rust/package.nix
@@ -23,16 +23,16 @@ in
 
 rustPlatform.buildRustPackage rec {
   pname = "ff2mpv-rust";
-  version = "1.1.4";
+  version = "1.1.5";
 
   src = fetchFromGitHub {
     owner = "ryze312";
     repo = "ff2mpv-rust";
     rev = version;
-    hash = "sha256-lQ1VRz/1HYZ3Il/LNNL+Jr6zFvGyxw9rUuzCCA1DZYo=";
+    hash = "sha256-hAhHfNiHzrzACrijpVkzpXqrqGYKI3HIJZtUuTrRIcQ=";
   };
 
-  cargoHash = "sha256-cbueToB7zDHV4k9K8RusHjnMR0ElXsPEfuqHYli25nc=";
+  cargoHash = "sha256-EKmysiq1NTv1aQ1DZGS8bziY4lRr+KssBgXa8MO76Ac=";
 
   postInstall = ''
     $out/bin/ff2mpv-rust manifest > manifest.json
diff --git a/pkgs/by-name/ff/fflogs/package.nix b/pkgs/by-name/ff/fflogs/package.nix
index bc0ca54fcebbf..73ec95ab3bf94 100644
--- a/pkgs/by-name/ff/fflogs/package.nix
+++ b/pkgs/by-name/ff/fflogs/package.nix
@@ -5,10 +5,10 @@
 
 let
   pname = "fflogs";
-  version = "8.5.6";
+  version = "8.5.16";
   src = fetchurl {
     url = "https://github.com/RPGLogs/Uploaders-fflogs/releases/download/v${version}/fflogs-v${version}.AppImage";
-    hash = "sha256-mLqQ1T5mBNUkTkgbGO/nVkoSy6U7hVBk9EcYAjo3i3k=";
+    hash = "sha256-eUXri4aVMnZtXzCDL3NZTdCR7y0VD5kG4D9YfXQVuzo=";
   };
   extracted = appimageTools.extractType2 { inherit pname version src; };
 in
@@ -25,7 +25,7 @@ appimageTools.wrapType2 {
   '';
 
   meta = with lib; {
-    description = "An application for uploading Final Fantasy XIV combat logs to fflogs.com";
+    description = "Application for uploading Final Fantasy XIV combat logs to fflogs.com";
     homepage = "https://www.fflogs.com/client/download";
     downloadPage = "https://github.com/RPGLogs/Uploaders-fflogs/releases/latest";
     license = licenses.unfree; # no license listed
diff --git a/pkgs/by-name/fg/fgqcanvas/package.nix b/pkgs/by-name/fg/fgqcanvas/package.nix
index 2d2fda22649ab..3eaba03af56bc 100644
--- a/pkgs/by-name/fg/fgqcanvas/package.nix
+++ b/pkgs/by-name/fg/fgqcanvas/package.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://sourceforge.net/p/flightgear/flightgear/ci/next/tree/utils/fgqcanvas/README.md";
-    description = "A Qt-based remote canvas application for FlightGear";
+    description = "Qt-based remote canvas application for FlightGear";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ nayala ];
diff --git a/pkgs/applications/audio/FIL-plugins/default.nix b/pkgs/by-name/fi/fil-plugins/package.nix
index d5f12addf8596..1d819fd8b7639 100644
--- a/pkgs/applications/audio/FIL-plugins/default.nix
+++ b/pkgs/by-name/fi/fil-plugins/package.nix
@@ -4,12 +4,12 @@
 , ladspaH
 }:
 
-stdenv.mkDerivation rec {
-  pname = "FIL-plugins";
+stdenv.mkDerivation (finalAttrs: {
+  pname = "fil-plugins";
   version = "0.3.0";
 
   src = fetchurl {
-    url = "http://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
+    url = "http://kokkinizita.linuxaudio.org/linuxaudio/downloads/FIL-plugins-${finalAttrs.version}.tar.bz2";
     hash = "sha256-HAvycSEZZfZwoVp3g7QWcwfbdyZKwWJKBuVmeWTajuk=";
   };
 
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "a four-band parametric equaliser, which has the nice property of being stable even while parameters are being changed";
+    description = "Four-band parametric equaliser, which has the nice property of being stable even while parameters are being changed";
     longDescription = ''
       Each section has an active/bypass switch, frequency, bandwidth and gain controls.
       There is also a global bypass switch and gain control.
@@ -34,10 +34,9 @@ stdenv.mkDerivation rec {
       All switches and controls are internally smoothed, so they can be used 'live' whithout any clicks or zipper noises.
       This should make this plugin a good candidate for use in systems that allow automation of plugin control ports, such as Ardour, or for stage use.
     '';
-    version = version;
     homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/ladspa/index.html";
     license = lib.licenses.gpl2Plus;
     maintainers = [ lib.maintainers.magnetophon ];
     platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/pkgs/by-name/fi/fileinfo/package.nix b/pkgs/by-name/fi/fileinfo/package.nix
index 9b0965efaa100..08a85eaa3efef 100644
--- a/pkgs/by-name/fi/fileinfo/package.nix
+++ b/pkgs/by-name/fi/fileinfo/package.nix
@@ -16,7 +16,7 @@ python3Packages.buildPythonApplication {
 
   meta = with lib; {
     homepage = "https://github.com/sdushantha/fileinfo";
-    description = "A file extension metadata lookup tool";
+    description = "File extension metadata lookup tool";
     license = licenses.mit;
     maintainers = with maintainers; [ h7x4 ];
     mainProgram = "fileinfo";
diff --git a/pkgs/by-name/fi/files-cli/package.nix b/pkgs/by-name/fi/files-cli/package.nix
index 853d30f3e4a5a..3d78e105cecf5 100644
--- a/pkgs/by-name/fi/files-cli/package.nix
+++ b/pkgs/by-name/fi/files-cli/package.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "files-cli";
-  version = "2.13.49";
+  version = "2.13.72";
 
   src = fetchFromGitHub {
     repo = "files-cli";
     owner = "files-com";
     rev = "v${version}";
-    hash = "sha256-QQ2UzWGodQASHJVfnTIp/BUNkAPAV0q8UpTk7qBYgc0=";
+    hash = "sha256-u5hAUGGaMpUub4WL8CGEzbnfXPRouaGbb8SQ6ep3X3Q=";
   };
 
-  vendorHash = "sha256-L6UnKbqS6aO8+XSPt5KaKGYr30y9RE+l4U3hapPHHvA=";
+  vendorHash = "sha256-y4XZeugjqy6ydAq6KQ8iIgMgE6iHAEqzzi2A+N1LB3M=";
 
   ldflags = [
     "-s"
@@ -43,7 +43,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "Files.com Command Line App for Windows, Linux, and macOS.";
+    description = "Files.com Command Line App for Windows, Linux, and macOS";
     homepage = "https://developers.files.com";
     license = licenses.mit;
     maintainers = with maintainers; [ kashw2 ];
diff --git a/pkgs/by-name/fi/filterpath/package.nix b/pkgs/by-name/fi/filterpath/package.nix
new file mode 100644
index 0000000000000..32620f7987c1b
--- /dev/null
+++ b/pkgs/by-name/fi/filterpath/package.nix
@@ -0,0 +1,39 @@
+{
+  stdenv,
+  fetchFromGitHub,
+  lib,
+}:
+stdenv.mkDerivation (finalAttrs: {
+  name = "filterpath";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "Sigmanificient";
+    repo = "filterpath";
+    rev = finalAttrs.version;
+    hash = "sha256-vagIImWQQRigMYW12lw+Eg37JJ2yO/V5jq4wD3q4yy8=";
+  };
+
+  makeFlags = [
+    "CC=cc"
+    "PREFIX=${placeholder "out"}/bin"
+  ];
+
+  doCheck = true;
+  checkPhase = ''
+    runHook preCheck
+
+    echo "[`pwd`]" | ./filterpath | grep "`pwd`"
+
+    runHook postCheck
+  '';
+
+  meta = {
+    homepage = "https://github.com/Sigmanificient/filterpath";
+    description = "Retrieve a valid path from a messy piped line";
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ sigmanificient ];
+    mainProgram = "filterpath";
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/fi/find-billy/package.nix b/pkgs/by-name/fi/find-billy/package.nix
index 89d89dd104f3a..aae851fbacd56 100644
--- a/pkgs/by-name/fi/find-billy/package.nix
+++ b/pkgs/by-name/fi/find-billy/package.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A 2 dimensional Pixel Art Jump & Run";
+    description = "2 dimensional Pixel Art Jump & Run";
     homepage = "https://codeberg.org/annaaurora/Find-Billy";
     license = licenses.gpl3Plus;
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/by-name/fi/fira-mono/package.nix b/pkgs/by-name/fi/fira-mono/package.nix
index 5d059dbf88e08..5925b665eb81c 100644
--- a/pkgs/by-name/fi/fira-mono/package.nix
+++ b/pkgs/by-name/fi/fira-mono/package.nix
@@ -1,24 +1,27 @@
-{ lib, stdenvNoCC, fetchzip }:
+{ lib
+, stdenvNoCC
+, fetchzip
+}:
 
 stdenvNoCC.mkDerivation rec {
   pname = "fira-mono";
-  version = "4.202";
+  version = "3.2";
 
   src = fetchzip {
-    url = "https://github.com/mozilla/Fira/archive/${version}.zip";
-    hash = "sha256-HLReqgL0PXF5vOpwLN0GiRwnzkjGkEVEyOEV2Z4R0oQ=";
+    url = "https://bboxtype.com/downloads/Fira/Fira_Mono_${lib.replaceStrings ["."] ["_"] version}.zip";
+    hash = "sha256-Ukc+K2sdSz+vUQFD8mmwJHZQ3N68oM4fk6YzGLwzAfQ=";
   };
 
   installPhase = ''
     runHook preInstall
 
-    install -Dm644 otf/FiraMono*.otf -t $out/share/fonts/opentype
+    install -Dm644 Fonts/FiraMono_OTF*/*.otf -t $out/share/fonts/opentype
 
     runHook postInstall
   '';
 
   meta = with lib; {
-    homepage = "https://mozilla.github.io/Fira/";
+    homepage = "https://bboxtype.com/fira/";
     description = "Monospace font for Firefox OS";
     longDescription = ''
       Fira Mono is a monospace font designed by Erik Spiekermann,
diff --git a/pkgs/by-name/fi/fira-sans/package.nix b/pkgs/by-name/fi/fira-sans/package.nix
index c07cc15c97cce..0a2bc0e0f6284 100644
--- a/pkgs/by-name/fi/fira-sans/package.nix
+++ b/pkgs/by-name/fi/fira-sans/package.nix
@@ -1,22 +1,28 @@
 { lib
 , stdenvNoCC
-, fira-mono
+, fetchzip
 }:
 
-stdenvNoCC.mkDerivation {
+stdenvNoCC.mkDerivation rec {
   pname = "fira-sans";
-  inherit (fira-mono) version src;
+  version = "4.301";
+
+  src = fetchzip {
+    url = "https://bboxtype.com/downloads/Fira/Download_Folder_FiraSans_${lib.replaceStrings ["."] [""] version}.zip";
+    hash = "sha256-WBt3oqPK7ACqMhilYkyFx9Ek2ugwdCDFZN+8HLRnGRs";
+    stripRoot = false;
+  };
 
   installPhase = ''
     runHook preInstall
 
-    install --mode=-x -Dt $out/share/fonts/opentype otf/FiraSans*.otf
+    install --mode=-x -Dt $out/share/fonts/opentype Download_Folder_FiraSans*/Fonts/Fira_Sans_OTF*/*/*/*.otf
 
     runHook postInstall
   '';
 
   meta = with lib; {
-    homepage = "https://mozilla.github.io/Fira/";
+    homepage = "https://bboxtype.com/fira/";
     description = "Sans-serif font for Firefox OS";
     longDescription = ''
       Fira Sans is a sans-serif font designed by Erik Spiekermann,
diff --git a/pkgs/by-name/fi/fira/package.nix b/pkgs/by-name/fi/fira/package.nix
index 405189ba2e99f..9d2869ac53570 100644
--- a/pkgs/by-name/fi/fira/package.nix
+++ b/pkgs/by-name/fi/fira/package.nix
@@ -6,7 +6,7 @@
 
 symlinkJoin rec {
   pname = "fira";
-  inherit (fira-mono) version;
+  inherit (fira-sans) version;
   name = "${pname}-${version}";
 
   paths = [
@@ -16,7 +16,7 @@ symlinkJoin rec {
 
   meta = {
     description = "Fira font family including Fira Sans and Fira Mono";
-    homepage = "https://mozilla.github.io/Fira/";
+    homepage = "https://bboxtype.com/fira/";
     license = lib.licenses.ofl;
     platforms = lib.platforms.all;
   };
diff --git a/pkgs/by-name/fi/firefly-iii/package.nix b/pkgs/by-name/fi/firefly-iii/package.nix
index ad1782de129bc..6d94cf3ad4ebc 100644
--- a/pkgs/by-name/fi/firefly-iii/package.nix
+++ b/pkgs/by-name/fi/firefly-iii/package.nix
@@ -8,20 +8,20 @@
 
 let
   pname = "firefly-iii";
-  version = "6.1.15";
+  version = "6.1.17";
   phpPackage = php83;
 
   src = fetchFromGitHub {
     owner = "firefly-iii";
     repo = "firefly-iii";
     rev = "v${version}";
-    hash = "sha256-9Od8tR8X2OZ2hu81tHWDpBX8snWCRvTnlY1AwjIcMug=";
+    hash = "sha256-KbTHbhv+8Lv5fk1Z8nxICySk6MK6Xc3TNATSIUnENa4=";
   };
 
   assets = buildNpmPackage {
     pname = "${pname}-assets";
     inherit version src;
-    npmDepsHash = "sha256-UVySgcj1tQLQIxlsZuig4ixkfxfsYWYPKWLz5zHA+Dg=";
+    npmDepsHash = "sha256-Nlz+zsvUx9X70uofh8dWEvru8SAQzIh+XxGGOH5npyY=";
     dontNpmBuild = true;
     installPhase = ''
       runHook preInstall
@@ -36,7 +36,7 @@ in
 phpPackage.buildComposerProject (finalAttrs: {
   inherit pname src version;
 
-  vendorHash = "sha256-RDkAbTKj7M7lE8bVRxb+RR5CA6hJIMp61U0+aRtFE50=";
+  vendorHash = "sha256-mDVmZUCER1eaTXhh8VIbGbPkkpOeE6fTBhq8UnTlWPc=";
 
   passthru = {
     inherit phpPackage;
diff --git a/pkgs/by-name/fi/firefoxpwa/package.nix b/pkgs/by-name/fi/firefoxpwa/package.nix
index 3564ce0296c23..f79c09c8d37cc 100644
--- a/pkgs/by-name/fi/firefoxpwa/package.nix
+++ b/pkgs/by-name/fi/firefoxpwa/package.nix
@@ -25,13 +25,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "firefoxpwa";
-  version = "2.12.0";
+  version = "2.12.1";
 
   src = fetchFromGitHub {
     owner = "filips123";
     repo = "PWAsForFirefox";
     rev = "v${version}";
-    hash = "sha256-T2X+41ScE8FDZGJdgAjZCp1MQX51UACuNsWFk+6cR3A=";
+    hash = "sha256-0Yyd0mJK/eDallg9ERimvZIRCOTeDkzeAVUfDeNP928=";
   };
 
   sourceRoot = "${src.name}/native";
@@ -120,7 +120,7 @@ rustPlatform.buildRustPackage rec {
   passthru.tests.firefoxpwa = nixosTests.firefoxpwa;
 
   meta = {
-    description = "A tool to install, manage and use Progressive Web Apps (PWAs) in Mozilla Firefox (native component)";
+    description = "Tool to install, manage and use Progressive Web Apps (PWAs) in Mozilla Firefox (native component)";
     longDescription = ''
       Progressive Web Apps (PWAs) are web apps that use web APIs and features along
       with progressive enhancement strategy to bring a native app-like user experience
diff --git a/pkgs/by-name/fj/fjo/package.nix b/pkgs/by-name/fj/fjo/package.nix
new file mode 100644
index 0000000000000..d451f83426710
--- /dev/null
+++ b/pkgs/by-name/fj/fjo/package.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchFromGitea, rustPlatform, openssl, pkg-config }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "fjo";
+  version = "0.3.5";
+
+  src = fetchFromGitea {
+    domain = "codeberg.org";
+    owner = "VoiDD";
+    repo = "fjo";
+    rev = "v${version}";
+    hash = "sha256-KjH78yqfZoN24TBYyFZuxf7z9poRov0uFYQ8+eq9p/o=";
+  };
+
+  cargoHash = "sha256-2G/TdajAqKiSoTL5FnukfS/eHkTNaGOj9EFpKsdb02k=";
+
+  buildInputs = [ openssl ];
+  nativeBuildInputs = [ pkg-config ];
+
+  meta = {
+    description = "CLI Tool for Codeberg similar to gh and glab";
+    homepage = "https://codeberg.org/VoiDD/fjo";
+    license = lib.licenses.agpl3Only;
+    mainProgram = "berg";
+    maintainers = with lib.maintainers; [ ehmry ];
+    broken = stdenv.isDarwin;
+  };
+}
diff --git a/pkgs/by-name/fl/flac123/package.nix b/pkgs/by-name/fl/flac123/package.nix
index 2a042366cc250..9837a48c426e0 100644
--- a/pkgs/by-name/fl/flac123/package.nix
+++ b/pkgs/by-name/fl/flac123/package.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/flac123/flac123";
-    description = "A command-line program for playing FLAC audio files";
+    description = "Command-line program for playing FLAC audio files";
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ kiike ];
     mainProgram = "flac123";
diff --git a/pkgs/by-name/fl/flake-checker/package.nix b/pkgs/by-name/fl/flake-checker/package.nix
index 368770d057998..09c3215527f86 100644
--- a/pkgs/by-name/fl/flake-checker/package.nix
+++ b/pkgs/by-name/fl/flake-checker/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "flake-checker";
-  version = "0.1.18";
+  version = "0.1.19";
 
   src = fetchFromGitHub {
     owner = "DeterminateSystems";
     repo = "flake-checker";
     rev = "v${version}";
-    hash = "sha256-XoYpiqatCQCYuKpVGlWcteVp71LXh+leFEtbL5lb0rs=";
+    hash = "sha256-KJTObuHJQjIgg/5A25Ee+7s2SrmtyYFnvcnklYhSCNE=";
   };
 
-  cargoHash = "sha256-LM0tYSRhM4GGb/Pa5l2xMAJ26ZyAuSEKlZansE/VNNw=";
+  cargoHash = "sha256-ADqc7H2MClXyYEw/lc9F4HAfpHrDc/lqL/BIL/PTZro=";
 
   buildInputs = lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
     Security
diff --git a/pkgs/by-name/fl/flarectl/package.nix b/pkgs/by-name/fl/flarectl/package.nix
index c094fe961af9f..600d39d4d19ce 100644
--- a/pkgs/by-name/fl/flarectl/package.nix
+++ b/pkgs/by-name/fl/flarectl/package.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "flarectl";
-  version = "0.95.0";
+  version = "0.97.0";
 
   src = fetchFromGitHub {
     owner = "cloudflare";
     repo = "cloudflare-go";
     rev = "v${version}";
-    hash = "sha256-GcmFRtQ8aqicvawCpFDo+oheUSOgKewBETIizPKcyGU=";
+    hash = "sha256-FeUZYOa35WOxSagCwN0Cq4cbvrEgRr1xjfHGqGvZSxY=";
   };
 
-  vendorHash = "sha256-Jtap4hGwNr8lpXi6huGikL4iUSP242cIiFyvGveszq8=";
+  vendorHash = "sha256-Ae3KC7D5PrIGd29pGPVTu56DIlJS0CLViLnK6FY7KU0=";
 
   subPackages = [ "cmd/flarectl" ];
 
diff --git a/pkgs/by-name/fl/flashmq/package.nix b/pkgs/by-name/fl/flashmq/package.nix
index 1b243197b8b53..4cf312476d801 100644
--- a/pkgs/by-name/fl/flashmq/package.nix
+++ b/pkgs/by-name/fl/flashmq/package.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flashmq";
-  version = "1.13.0";
+  version = "1.15.1";
 
   src = fetchFromGitHub {
     owner = "halfgaar";
     repo = "FlashMQ";
     rev = "v${version}";
-    hash = "sha256-MoBLV39auDz5oicpX6CVvrHMifGpUozocq4E3J+8xWA=";
+    hash = "sha256-6ShMYTynqIVm7EH3b9Jzy5UKE7SH/Lq5uWV3VaDVREQ=";
   };
 
   nativeBuildInputs = [ cmake installShellFiles ];
diff --git a/pkgs/by-name/fl/flatito/package.nix b/pkgs/by-name/fl/flatito/package.nix
index 528a72390e1f7..5b41e53478c28 100644
--- a/pkgs/by-name/fl/flatito/package.nix
+++ b/pkgs/by-name/fl/flatito/package.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, ruby, buildRubyGem, bundlerEnv }:
+{ lib, ruby, buildRubyGem, bundlerEnv }:
 let
   deps = bundlerEnv rec {
     inherit ruby;
@@ -26,7 +26,7 @@ buildRubyGem rec {
   propagatedBuildInputs = [ deps ];
 
   meta = with lib; {
-    description = "It allows you to search for a key and get the value and the line number where it is located in YAML and JSON files.";
+    description = "It allows you to search for a key and get the value and the line number where it is located in YAML and JSON files";
     homepage = "https://github.com/ceritium/flatito";
     license = licenses.mit;
     maintainers = with maintainers; [ rucadi ];
diff --git a/pkgs/by-name/fl/flawz/package.nix b/pkgs/by-name/fl/flawz/package.nix
new file mode 100644
index 0000000000000..f0dddceaed80c
--- /dev/null
+++ b/pkgs/by-name/fl/flawz/package.nix
@@ -0,0 +1,57 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, openssl
+, sqlite
+, installShellFiles
+, stdenv
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "flawz";
+  version = "0.2.1";
+
+  src = fetchFromGitHub {
+    owner = "orhun";
+    repo = "flawz";
+    rev = "v${version}";
+    hash = "sha256-zzZh9MjLbhvnuJEaKPtF5Rzfcu9VbeQCMiJ8MLvJBXg=";
+  };
+
+  cargoHash = "sha256-Dur8AcOT9sPiGg+rfcxfS2m4CeEk59tISxU+dc87urI=";
+
+  nativeBuildInputs = [ pkg-config installShellFiles ];
+
+  buildInputs = [ openssl sqlite ];
+  outputs = [ "out" "man" ];
+
+  postInstall = ''
+    export OUT_DIR=$(mktemp -d)
+
+    # Generate the man pages
+    cargo run --bin flawz-mangen
+    installManPage $OUT_DIR/flawz.1
+
+    # Generate shell completions
+    cargo run --bin flawz-completions
+    installShellCompletion \
+      --bash $OUT_DIR/flawz.bash \
+      --fish $OUT_DIR/flawz.fish \
+      --zsh $OUT_DIR/_flawz
+
+    # Clean up temporary directory
+    rm -rf $OUT_DIR
+  '';
+
+  meta = {
+    description = "Terminal UI for browsing CVEs";
+    homepage = "https://github.com/orhun/flawz";
+    changelog = "https://github.com/orhun/flawz/releases/tag/v${version}";
+    license = with lib.licenses; [ mit asl20 ];
+    mainProgram = "flawz";
+    maintainers = with lib.maintainers; [ anas ];
+    platforms = with lib.platforms; unix ++ windows;
+    broken = stdenv.isDarwin; # needing some apple_sdk packages
+  };
+}
diff --git a/pkgs/by-name/fl/fleng/package.nix b/pkgs/by-name/fl/fleng/package.nix
index e7010f3882bdd..0c2c8359f65a5 100644
--- a/pkgs/by-name/fl/fleng/package.nix
+++ b/pkgs/by-name/fl/fleng/package.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "http://www.call-with-current-continuation.org/fleng/fleng.html";
-    description = "A low level concurrent logic programming language descended from Prolog";
+    description = "Low level concurrent logic programming language descended from Prolog";
     license = lib.licenses.publicDomain;
     maintainers = with lib.maintainers; [ AndersonTorres ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/by-name/fl/flet-client-flutter/package.nix b/pkgs/by-name/fl/flet-client-flutter/package.nix
index 949e6f9295756..15b3c083fb334 100644
--- a/pkgs/by-name/fl/flet-client-flutter/package.nix
+++ b/pkgs/by-name/fl/flet-client-flutter/package.nix
@@ -1,7 +1,7 @@
 { lib
 , fetchFromGitHub
 , pkg-config
-, flutter
+, flutter319
 , gst_all_1
 , libunwind
 , makeWrapper
@@ -16,7 +16,7 @@
 , flet-client-flutter
 }:
 
-flutter.buildFlutterApplication rec {
+flutter319.buildFlutterApplication rec {
   pname = "flet-client-flutter";
   version = "0.22.1";
 
@@ -70,7 +70,7 @@ flutter.buildFlutterApplication rec {
   };
 
   meta = {
-    description = "A framework that enables you to easily build realtime web, mobile, and desktop apps in Python. The frontend part";
+    description = "Framework that enables you to easily build realtime web, mobile, and desktop apps in Python. The frontend part";
     homepage = "https://flet.dev/";
     changelog = "https://github.com/flet-dev/flet/releases/tag/v${version}";
     license = lib.licenses.asl20;
diff --git a/pkgs/by-name/fl/flip/package.nix b/pkgs/by-name/fl/flip/package.nix
index f7957c0990b00..23e352a090319 100644
--- a/pkgs/by-name/fl/flip/package.nix
+++ b/pkgs/by-name/fl/flip/package.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A tool for visualizing and communicating the errors in rendered images.";
+    description = "Tool for visualizing and communicating the errors in rendered images";
     license = licenses.bsd3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ zmitchell ];
diff --git a/pkgs/by-name/fl/flottbot/package.nix b/pkgs/by-name/fl/flottbot/package.nix
index ba0321fbdd5b1..ab6273a155cdb 100644
--- a/pkgs/by-name/fl/flottbot/package.nix
+++ b/pkgs/by-name/fl/flottbot/package.nix
@@ -33,7 +33,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A chatbot framework written in Go";
+    description = "Chatbot framework written in Go";
     homepage = "https://github.com/target/flottbot";
     license = licenses.asl20;
     maintainers = with maintainers; [ bryanhonof ];
diff --git a/pkgs/by-name/fl/fluent-gtk-theme/package.nix b/pkgs/by-name/fl/fluent-gtk-theme/package.nix
new file mode 100644
index 0000000000000..137f8a92dd1bc
--- /dev/null
+++ b/pkgs/by-name/fl/fluent-gtk-theme/package.nix
@@ -0,0 +1,114 @@
+{
+  lib,
+  stdenvNoCC,
+  fetchFromGitHub,
+  gitUpdater,
+  gnome-themes-extra,
+  gtk-engine-murrine,
+  jdupes,
+  sassc,
+  themeVariants ? [ ], # default: blue
+  colorVariants ? [ ], # default: all
+  sizeVariants ? [ ], # default: standard
+  tweaks ? [ ],
+}:
+
+let
+  pname = "fluent-gtk-theme";
+in
+lib.checkListOfEnum "${pname}: theme variants"
+  [
+    "default"
+    "purple"
+    "pink"
+    "red"
+    "orange"
+    "yellow"
+    "green"
+    "teal"
+    "grey"
+    "all"
+  ]
+  themeVariants
+  lib.checkListOfEnum
+  "${pname}: color variants"
+  [
+    "standard"
+    "light"
+    "dark"
+  ]
+  colorVariants
+  lib.checkListOfEnum
+  "${pname}: size variants"
+  [
+    "standard"
+    "compact"
+  ]
+  sizeVariants
+  lib.checkListOfEnum
+  "${pname}: tweaks"
+  [
+    "solid"
+    "float"
+    "round"
+    "blur"
+    "noborder"
+    "square"
+  ]
+  tweaks
+
+  stdenvNoCC.mkDerivation
+  (finalAttrs: {
+    inherit pname;
+    version = "2024-06-12";
+
+    src = fetchFromGitHub {
+      owner = "vinceliuice";
+      repo = "fluent-gtk-theme";
+      rev = finalAttrs.version;
+      hash = "sha256-ONhW68UUrFiv5hxkR7XI8U/5+qM+tYLIS2OM05pqJi0=";
+    };
+
+    nativeBuildInputs = [
+      jdupes
+      sassc
+    ];
+
+    buildInputs = [ gnome-themes-extra ];
+
+    propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+    postPatch = ''
+      patchShebangs install.sh
+    '';
+
+    installPhase = ''
+      runHook preInstall
+
+      name= HOME="$TMPDIR" ./install.sh \
+        ${lib.optionalString (themeVariants != [ ]) "--theme " + builtins.toString themeVariants} \
+        ${lib.optionalString (colorVariants != [ ]) "--color " + builtins.toString colorVariants} \
+        ${lib.optionalString (sizeVariants != [ ]) "--size " + builtins.toString sizeVariants} \
+        ${lib.optionalString (tweaks != [ ]) "--tweaks " + builtins.toString tweaks} \
+        --icon nixos \
+        --dest $out/share/themes
+
+      jdupes --quiet --link-soft --recurse $out/share
+
+      runHook postInstall
+    '';
+
+    passthru.updateScript = gitUpdater { };
+
+    meta = {
+      description = "Fluent design gtk theme";
+      changelog = "https://github.com/vinceliuice/Fluent-gtk-theme/releases/tag/${finalAttrs.version}";
+      homepage = "https://github.com/vinceliuice/Fluent-gtk-theme";
+      license = lib.licenses.gpl3Only;
+      platforms = lib.platforms.unix;
+      maintainers = with lib.maintainers; [
+        luftmensch-luftmensch
+        romildo
+      ];
+    };
+  })
diff --git a/pkgs/applications/networking/cluster/fluxcd/default.nix b/pkgs/by-name/fl/fluxcd/package.nix
index 75689b47710fb..712f075459b60 100644
--- a/pkgs/applications/networking/cluster/fluxcd/default.nix
+++ b/pkgs/by-name/fl/fluxcd/package.nix
@@ -1,9 +1,10 @@
-{ lib
-, stdenv
-, buildGoModule
-, fetchFromGitHub
-, fetchzip
-, installShellFiles
+{
+  buildGoModule,
+  fetchFromGitHub,
+  fetchzip,
+  installShellFiles,
+  lib,
+  stdenv,
 }:
 
 let
@@ -12,13 +13,13 @@ let
   manifestsSha256 = "sha256-PdhR+UDquIJWtpSymtT6V7qO5fVJOkFz6RGzAx7xeb4=";
 
   manifests = fetchzip {
-    url =
-      "https://github.com/fluxcd/flux2/releases/download/v${version}/manifests.tar.gz";
-    sha256 = manifestsSha256;
+    url = "https://github.com/fluxcd/flux2/releases/download/v${version}/manifests.tar.gz";
+    hash = manifestsSha256;
     stripRoot = false;
   };
+in
 
-in buildGoModule rec {
+buildGoModule rec {
   pname = "fluxcd";
   inherit version;
 
@@ -26,7 +27,7 @@ in buildGoModule rec {
     owner = "fluxcd";
     repo = "flux2";
     rev = "v${version}";
-    inherit sha256;
+    hash = sha256;
   };
 
   vendorHash = "sha256-0YH3pgFrsnh5jIsZpj/sIgfiOCTtIlPltMS5mdGz1eM=";
@@ -38,7 +39,11 @@ in buildGoModule rec {
     rm source/cmd/flux/create_secret_git_test.go
   '';
 
-  ldflags = [ "-s" "-w" "-X main.VERSION=${version}" ];
+  ldflags = [
+    "-s"
+    "-w"
+    "-X main.VERSION=${version}"
+  ];
 
   subPackages = [ "cmd/flux" ];
 
@@ -53,7 +58,7 @@ in buildGoModule rec {
     $out/bin/flux --version | grep ${version} > /dev/null
   '';
 
-  postInstall = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
+  postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
     for shell in bash fish zsh; do
       $out/bin/flux completion $shell > flux.$shell
       installShellCompletion flux.$shell
@@ -62,18 +67,22 @@ in buildGoModule rec {
 
   passthru.updateScript = ./update.sh;
 
-  meta = with lib; {
-    description =
-      "Open and extensible continuous delivery solution for Kubernetes";
+  meta = {
+    changelog = "https://github.com/fluxcd/flux2/releases/tag/v${version}";
+    description = "Open and extensible continuous delivery solution for Kubernetes";
+    downloadPage = "https://github.com/fluxcd/flux2/";
     longDescription = ''
       Flux is a tool for keeping Kubernetes clusters in sync
       with sources of configuration (like Git repositories), and automating
       updates to configuration when there is new code to deploy.
     '';
     homepage = "https://fluxcd.io";
-    downloadPage = "https://github.com/fluxcd/flux2/releases/tag/v${version}";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ bryanasdev000 jlesquembre ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [
+      bryanasdev000
+      jlesquembre
+      superherointj
+    ];
     mainProgram = "flux";
   };
 }
diff --git a/pkgs/applications/networking/cluster/fluxcd/update.sh b/pkgs/by-name/fl/fluxcd/update.sh
index 1763b37d33285..1763b37d33285 100755
--- a/pkgs/applications/networking/cluster/fluxcd/update.sh
+++ b/pkgs/by-name/fl/fluxcd/update.sh
diff --git a/pkgs/by-name/fm/fm-go/package.nix b/pkgs/by-name/fm/fm-go/package.nix
index bff5c914474a1..a92904a056111 100644
--- a/pkgs/by-name/fm/fm-go/package.nix
+++ b/pkgs/by-name/fm/fm-go/package.nix
@@ -20,7 +20,7 @@ let
 
     meta = {
       homepage = "https://github.com/mistakenelf/fm";
-      description = "A terminal based file manager";
+      description = "Terminal based file manager";
       changelog = "https://github.com/mistakenelf/fm/releases/tag/${finalAttrs.src.rev}";
       license = with lib.licenses; [ mit ];
       mainProgram = "fm";
diff --git a/pkgs/by-name/fm/fmtoy/package.nix b/pkgs/by-name/fm/fmtoy/package.nix
index fd466b777fd78..f61570c3d36b7 100644
--- a/pkgs/by-name/fm/fmtoy/package.nix
+++ b/pkgs/by-name/fm/fmtoy/package.nix
@@ -3,7 +3,6 @@
 , fetchFromGitHub
 , unstableGitUpdater
 , alsa-lib
-, libfmvoice
 , libjack2
 , pkg-config
 , zlib
@@ -11,19 +10,17 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "fmtoy";
-  version = "0-unstable-2024-04-18";
+  version = "0-unstable-2024-06-07";
 
   src = fetchFromGitHub {
     owner = "vampirefrog";
     repo = "fmtoy";
-    rev = "aca005c770724f21c8a91dc6a482738871e78c9f";
-    hash = "sha256-vrd7Eg3Bh8ll2yCfD1rAJpotEe+Zq+JuF4VMhiYsbDw=";
+    rev = "1339600e2f5a4357f7a50f5c6ad49f3c7635adec";
+    hash = "sha256-1kjUPEklZyue/DYn0jSfmXLjF22C+im6klY+S5KCvhc=";
+    fetchSubmodules = true;
   };
 
   postPatch = ''
-    rmdir libfmvoice
-    cp --no-preserve=all -r ${libfmvoice.src} libfmvoice
-
     substituteInPlace Makefile \
       --replace 'pkg-config' "$PKG_CONFIG"
   '';
diff --git a/pkgs/by-name/fo/folio/package.nix b/pkgs/by-name/fo/folio/package.nix
index 65bd3f16bac48..1372cbd6d7800 100644
--- a/pkgs/by-name/fo/folio/package.nix
+++ b/pkgs/by-name/fo/folio/package.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A beautiful markdown note-taking app for GNOME (forked from Paper)";
+    description = "Beautiful markdown note-taking app for GNOME (forked from Paper)";
     homepage = "https://github.com/toolstack/Folio";
     license = licenses.gpl3Only;
     mainProgram = "com.toolstack.Folio";
diff --git a/pkgs/applications/misc/font-manager/default.nix b/pkgs/by-name/fo/font-manager/package.nix
index 95594cb030d06..0cfc68aa4fd2b 100644
--- a/pkgs/applications/misc/font-manager/default.nix
+++ b/pkgs/by-name/fo/font-manager/package.nix
@@ -16,7 +16,7 @@
 , gtk3
 , gnome
 , desktop-file-utils
-, fetchpatch2
+, nix-update-script
 , wrapGAppsHook3
 , gobject-introspection
 # withWebkit enables the "webkit" feature, also known as Google Fonts
@@ -25,25 +25,15 @@
 
 stdenv.mkDerivation rec {
   pname = "font-manager";
-  version = "0.8.8";
+  version = "0.8.9";
 
   src = fetchFromGitHub {
     owner = "FontManager";
     repo = "font-manager";
     rev = version;
-    hash = "sha256-M13Q9d2cKhc0tudkvw0zgqPAFTlmXwK+LltXeuDPWxo=";
+    hash = "sha256-LsQry6CjvVcJFRutKOaqA4lLP7Ek09Q/D/TPnSvx59Q=";
   };
 
-  patches = [
-    # see https://github.com/FontManager/font-manager/issues/355
-    # should be removed on next release
-    (fetchpatch2 {
-      name = "fix-build-with-newer-vala.patch";
-      url = "https://github.com/FontManager/font-manager/commit/600f498946c3904064b4e4fdf96e5841f6a827e4.patch";
-      hash = "sha256-DC9+pvG88t+PPdGQ2oemeEYK9PaD0C2yWBYYCh4Wn9g=";
-    })
-  ];
-
   nativeBuildInputs = [
     pkg-config
     meson
@@ -82,6 +72,8 @@ stdenv.mkDerivation rec {
     patchShebangs meson_post_install.py
   '';
 
+  passthru.updateScript = nix-update-script { };
+
   meta = with lib; {
     homepage = "https://fontmanager.github.io/";
     description = "Simple font management for GTK desktop environments";
diff --git a/pkgs/misc/cups/drivers/foomatic-db-engine/default.nix b/pkgs/by-name/fo/foomatic-db-engine/package.nix
index 5408f7eff38e5..5408f7eff38e5 100644
--- a/pkgs/misc/cups/drivers/foomatic-db-engine/default.nix
+++ b/pkgs/by-name/fo/foomatic-db-engine/package.nix
diff --git a/pkgs/misc/cups/drivers/foomatic-db-nonfree/default.nix b/pkgs/by-name/fo/foomatic-db-nonfree/package.nix
index a9ce7228f45f1..a433b58a0ac92 100644
--- a/pkgs/misc/cups/drivers/foomatic-db-nonfree/default.nix
+++ b/pkgs/by-name/fo/foomatic-db-nonfree/package.nix
@@ -6,7 +6,7 @@
 , perl
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "foomatic-db-nonfree";
   version = "unstable-2015-06-05";
 
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    changelog = "https://github.com/OpenPrinting/foomatic-db-nonfree/blob/${src.rev}/ChangeLog";
+    changelog = "https://github.com/OpenPrinting/foomatic-db-nonfree/blob/${finalAttrs.src.rev}/ChangeLog";
     description = "OpenPrinting printer support database (unfree content)";
     downloadPage = "https://www.openprinting.org/download/foomatic/";
     homepage = "https://openprinting.github.io/projects/02-foomatic/";
@@ -84,4 +84,4 @@ stdenv.mkDerivation rec {
       Dell, Genicom, Lexmark, Oce and Xerox.
     '';
   };
-}
+})
diff --git a/pkgs/misc/cups/drivers/foomatic-db-ppds/default.nix b/pkgs/by-name/fo/foomatic-db-ppds/package.nix
index bdc1e0a9b5feb..bdc1e0a9b5feb 100644
--- a/pkgs/misc/cups/drivers/foomatic-db-ppds/default.nix
+++ b/pkgs/by-name/fo/foomatic-db-ppds/package.nix
diff --git a/pkgs/misc/cups/drivers/foomatic-db/default.nix b/pkgs/by-name/fo/foomatic-db/package.nix
index b4be3a1436047..494216228a063 100644
--- a/pkgs/misc/cups/drivers/foomatic-db/default.nix
+++ b/pkgs/by-name/fo/foomatic-db/package.nix
@@ -11,17 +11,17 @@
 , patchPpdFilesHook
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "foomatic-db";
-  version = "unstable-2024-02-09";
+  version = "unstable-2024-05-04";
 
   src = fetchFromGitHub {
     # there is also a daily snapshot at the `downloadPage`,
     # but it gets deleted quickly and would provoke 404 errors
     owner = "OpenPrinting";
     repo = "foomatic-db";
-    rev = "f8b43644771612f854fecda969440511de784bf0";
-    hash = "sha256-8Pui83Z7g5aHBJk46AYeKil/0++I6zcc5S/BWRuy1WM=";
+    rev = "eaad4c0d2406d4cd38a6d15e5dc93d1bc8358c30";
+    hash = "sha256-A+Op1E16woNl/ppVj0QfdV4XgT1M8sbrpTXtdOz3PYk=";
   };
 
   buildInputs = [ cups cups-filters ghostscript gnused perl ];
@@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    changelog = "https://github.com/OpenPrinting/foomatic-db/blob/${src.rev}/ChangeLog";
+    changelog = "https://github.com/OpenPrinting/foomatic-db/blob/${finalAttrs.src.rev}/ChangeLog";
     description = "OpenPrinting printer support database (free content)";
     downloadPage = "https://www.openprinting.org/download/foomatic/";
     homepage = "https://openprinting.github.io/projects/02-foomatic/";
@@ -100,4 +100,4 @@ stdenv.mkDerivation rec {
       Oce, Oki, Ricoh, Samsung, Savin, Sharp, Toshiba and Utax.
     '';
   };
-}
+})
diff --git a/pkgs/by-name/fo/footswitch/package.nix b/pkgs/by-name/fo/footswitch/package.nix
index 0856f758c8b8a..dd7b31f11a27e 100644
--- a/pkgs/by-name/fo/footswitch/package.nix
+++ b/pkgs/by-name/fo/footswitch/package.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "Command line utlities for programming PCsensor and Scythe foot switches.";
+    description = "Command line utlities for programming PCsensor and Scythe foot switches";
     homepage = "https://github.com/rgerganov/footswitch";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/by-name/fo/fooyin/package.nix b/pkgs/by-name/fo/fooyin/package.nix
index afa5bf4047c6d..cd8853b95f0d3 100644
--- a/pkgs/by-name/fo/fooyin/package.nix
+++ b/pkgs/by-name/fo/fooyin/package.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "fooyin";
-  version = "0.4.2";
+  version = "0.4.5";
 
   src = fetchFromGitHub {
     owner = "ludouzi";
     repo = "fooyin";
     rev = "v" + finalAttrs.version;
-    hash = "sha256-1U7eqXVcp0lO/X92oNQ3mWdozgJ1eroQPojscSWH6+I=";
+    hash = "sha256-hrPbJnN4Ooq5unA9VbX0UjRZQjPz93X/IQdBSfTUIGk=";
   };
 
   buildInputs = [
@@ -52,7 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
   env.LANG = "C.UTF-8";
 
   meta = with lib; {
-    description = "A customisable music player";
+    description = "Customisable music player";
     mainProgram = "fooyin";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/pkgs/by-name/fo/forgejo-runner/package.nix b/pkgs/by-name/fo/forgejo-runner/package.nix
index 983a19455c4f9..77027eed675ec 100644
--- a/pkgs/by-name/fo/forgejo-runner/package.nix
+++ b/pkgs/by-name/fo/forgejo-runner/package.nix
@@ -8,14 +8,14 @@
 
 buildGoModule rec {
   pname = "forgejo-runner";
-  version = "3.4.1";
+  version = "3.5.0";
 
   src = fetchFromGitea {
     domain = "code.forgejo.org";
     owner = "forgejo";
     repo = "runner";
     rev = "v${version}";
-    hash = "sha256-c8heIHt+EJ6LnZT4/6TTWd7v85VRHjH72bdje12un4M=";
+    hash = "sha256-omp62KJVPSl3DqZxB1WJFd5secYIAc/6n6Ke5xzICQo=";
   };
 
   vendorHash = "sha256-FCCQZdAYRtJR3DGQIEvUzv+1kqvxVTGkwJwZSohq28s=";
@@ -37,7 +37,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A runner for Forgejo based on act";
+    description = "Runner for Forgejo based on act";
     homepage = "https://code.forgejo.org/forgejo/runner";
     changelog = "https://code.forgejo.org/forgejo/runner/src/tag/${src.rev}/RELEASE-NOTES.md";
     license = licenses.mit;
diff --git a/pkgs/by-name/fo/forgejo/package.nix b/pkgs/by-name/fo/forgejo/package.nix
index 90c725c74e74b..d084deca1f444 100644
--- a/pkgs/by-name/fo/forgejo/package.nix
+++ b/pkgs/by-name/fo/forgejo/package.nix
@@ -2,6 +2,7 @@
 , brotli
 , buildGoModule
 , forgejo
+, fetchpatch
 , git
 , gzip
 , lib
@@ -24,7 +25,7 @@ let
     pname = "forgejo-frontend";
     inherit (forgejo) src version;
 
-    npmDepsHash = "sha256-BffoEbIzTU61bw3ECEm5eDHcav4S27MB5jQKsMprkcw=";
+    npmDepsHash = "sha256-Nu9aOjJpEAuCWWnJfZXy/GayiUDiyc3hOu6Bx7GxfxA=";
 
     patches = [
       ./package-json-npm-build-frontend.patch
@@ -39,27 +40,37 @@ let
 in
 buildGoModule rec {
   pname = "forgejo";
-  version = "7.0.2";
+  version = "7.0.4";
 
   src = fetchFromGitea {
     domain = "codeberg.org";
     owner = "forgejo";
     repo = "forgejo";
     rev = "v${version}";
-    hash = "sha256-YY5dHXWMqlCIPfqsDtHZLHjEdYmrFnh4yc0hfTUESww=";
+    hash = "sha256-WtJJdqPbx5k9U+u3ZpI3q/dm3eidxdkFgc8IskaJg88=";
   };
 
-  vendorHash = "sha256-UcjaMi/4XYLdaJhi2j3UWqHqkpTbZBo6EwNXxdRIKLw=";
+  vendorHash = "sha256-TYVWou9fIVL4od2o1uOb/MRBpf2lIg/9Tem9w+ihYzU=";
 
-  subPackages = [ "." ];
+  subPackages = [ "." "contrib/environment-to-ini" ];
 
   outputs = [ "out" "data" ];
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [
+    makeWrapper
+    git # checkPhase
+    openssh # checkPhase
+  ];
   buildInputs = lib.optional pamSupport pam;
 
   patches = [
     ./static-root-path.patch
+    # Fix TestAddRecursiveExclude go test.
+    # This will be part of the upcoming v7.0.5 release at which point this needs to be removed again.
+    (fetchpatch {
+      url = "https://codeberg.org/forgejo/forgejo/commit/f01dc4b271f54201e60a7c795d784813eac3f7ce.patch";
+      sha256  = "sha256-1lPLVHBad+Fmk+6EFXKuMnmDUl5BkEYJuMkTPfdrCgU=";
+    })
   ];
 
   postPatch = ''
@@ -80,6 +91,33 @@ buildGoModule rec {
     export ldflags+=" -X main.ForgejoVersion=$(GITEA_VERSION=${version} make show-version-api)"
   '';
 
+  preCheck = ''
+    # $HOME is required for ~/.ssh/authorized_keys and such
+    export HOME="$TMPDIR/home"
+
+    # expose and use the GO_TEST_PACKAGES var from the Makefile
+    # instead of manually copying over the entire list:
+    # https://codeberg.org/forgejo/forgejo/src/tag/v7.0.4/Makefile#L124
+    echo -e 'show-backend-tests:\n\t@echo ''${GO_TEST_PACKAGES}' >> Makefile
+    getGoDirs() {
+      make show-backend-tests
+    }
+  '';
+
+  checkFlags =
+    let
+      skippedTests = [
+        "Test_SSHParsePublicKey/dsa-1024/SSHKeygen" # dsa-1024 is deprecated in openssh and requires opting-in at compile time
+        "Test_calcFingerprint/dsa-1024/SSHKeygen" # dsa-1024 is deprecated in openssh and requires opting-in at compile time
+        "TestPamAuth" # we don't have PAM set up in the build sandbox
+        "TestPassword" # requires network: api.pwnedpasswords.com
+        "TestCaptcha" # requires network: hcaptcha.com
+        "TestDNSUpdate" # requires network: release.forgejo.org
+        "TestMigrateWhiteBlocklist" # requires network: gitlab.com (DNS)
+      ];
+    in
+    [ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ];
+
   postInstall = ''
     mkdir $data
     cp -R ./{templates,options} ${frontend}/public $data
@@ -115,7 +153,7 @@ buildGoModule rec {
   };
 
   meta = {
-    description = "A self-hosted lightweight software forge";
+    description = "Self-hosted lightweight software forge";
     homepage = "https://forgejo.org";
     changelog = "https://codeberg.org/forgejo/forgejo/releases/tag/${src.rev}";
     license = lib.licenses.mit;
diff --git a/pkgs/by-name/fo/formatjson5/package.nix b/pkgs/by-name/fo/formatjson5/package.nix
index 52965f6a3e0d5..6adfece33862a 100644
--- a/pkgs/by-name/fo/formatjson5/package.nix
+++ b/pkgs/by-name/fo/formatjson5/package.nix
@@ -36,7 +36,7 @@ rustPlatform.buildRustPackage rec {
     '';
 
   meta = {
-    description = "A JSON5 formatter";
+    description = "JSON5 formatter";
     homepage = "https://github.com/google/json5format";
     license = lib.licenses.bsd3;
     mainProgram = "formatjson5";
diff --git a/pkgs/by-name/fo/fortune-kind/package.nix b/pkgs/by-name/fo/fortune-kind/package.nix
index fc60b98db0eb2..1fd3783735d83 100644
--- a/pkgs/by-name/fo/fortune-kind/package.nix
+++ b/pkgs/by-name/fo/fortune-kind/package.nix
@@ -51,7 +51,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A kinder, curated fortune, written in rust";
+    description = "Kinder, curated fortune, written in rust";
     longDescription = ''
       Historically, contributions to fortune-mod have had a less-than ideal
       quality control process, and as such, many of the fortunes that a user may
diff --git a/pkgs/by-name/fr/francis/package.nix b/pkgs/by-name/fr/francis/package.nix
index 95a25ea95a293..173c1ca137a6e 100644
--- a/pkgs/by-name/fr/francis/package.nix
+++ b/pkgs/by-name/fr/francis/package.nix
@@ -8,14 +8,14 @@
 
 stdenv.mkDerivation rec {
   pname = "francis";
-  version = "1.1.0";
+  version = "24.05.0";
 
   src = fetchFromGitLab {
     domain = "invent.kde.org";
     repo = "francis";
     owner = "utilities";
     rev = "v${version}";
-    hash = "sha256-TvLFzGWb3RROGywhNzCvnFG00PpKC2k+/w1bgwTCESg=";
+    hash = "sha256-mvB01iFvTmGSGaCdvyMOC8BaIgZgyeyRJEra31w04DI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/fr/frankenphp/package.nix b/pkgs/by-name/fr/frankenphp/package.nix
index 45b0fed97129d..e33a259bd207c 100644
--- a/pkgs/by-name/fr/frankenphp/package.nix
+++ b/pkgs/by-name/fr/frankenphp/package.nix
@@ -27,7 +27,7 @@ let
   pieBuild = stdenv.hostPlatform.isMusl;
 in buildGoModule rec {
   pname = "frankenphp";
-  version = "1.1.5";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "dunglas";
@@ -54,7 +54,7 @@ in buildGoModule rec {
     "-s"
     "-w"
     "-X 'github.com/caddyserver/caddy/v2.CustomVersion=FrankenPHP ${version} PHP ${phpUnwrapped.version} Caddy'"
-    # pie mode is only available with pkgsMusl, it also automaticaly add -buildmode=pie to $GOFLAGS
+    # pie mode is only available with pkgsMusl, it also automatically add -buildmode=pie to $GOFLAGS
   ]  ++ (lib.optional pieBuild [ "-static-pie" ]);
 
   preBuild = ''
@@ -96,13 +96,13 @@ in buildGoModule rec {
     };
   };
 
-  meta = with lib; {
+  meta = {
     changelog = "https://github.com/dunglas/frankenphp/releases/tag/v${version}";
-    description = "The modern PHP app server";
+    description = "Modern PHP app server";
     homepage = "https://github.com/dunglas/frankenphp";
-    license = licenses.mit;
+    license = lib.licenses.mit;
     mainProgram = "frankenphp";
-    maintainers = with maintainers; [ gaelreyrol shyim ];
-    platforms = platforms.linux ++ platforms.darwin;
+    maintainers = with lib.maintainers; [ gaelreyrol shyim ];
+    platforms = lib.platforms.linux ++ lib.platforms.darwin;
   };
 }
diff --git a/pkgs/by-name/fr/free42/package.nix b/pkgs/by-name/fr/free42/package.nix
index 679e43fc1d2c6..5b05e08b87921 100644
--- a/pkgs/by-name/fr/free42/package.nix
+++ b/pkgs/by-name/fr/free42/package.nix
@@ -89,7 +89,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/thomasokken/free42";
-    description = "A software clone of HP-42S Calculator";
+    description = "Software clone of HP-42S Calculator";
     license = with lib.licenses; [ gpl2Only ];
     maintainers = with lib.maintainers; [ AndersonTorres ];
     mainProgram = "free42dec";
diff --git a/pkgs/by-name/fr/freecell-solver/package.nix b/pkgs/by-name/fr/freecell-solver/package.nix
index f3aeca90068f8..1cb06e59636fa 100644
--- a/pkgs/by-name/fr/freecell-solver/package.nix
+++ b/pkgs/by-name/fr/freecell-solver/package.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "freecell-solver";
-  version = "6.8.0";
+  version = "6.10.0";
 
   src = fetchurl {
     url = "https://fc-solve.shlomifish.org/downloads/fc-solve/freecell-solver-${finalAttrs.version}.tar.xz";
-    hash = "sha256-lfeKSxXS+jQCcf5PzFNUBlloGRuiLbDUDoGykbjVPTI=";
+    hash = "sha256-RDuineCL51GmD6ykKoF7ZbNCzqkxiP12UXQbdQSDebQ=";
   };
 
   outputs = [ "out" "dev" "doc" "man" ];
@@ -72,7 +72,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://fc-solve.shlomifish.org/";
-    description = "A FreeCell automatic solver";
+    description = "FreeCell automatic solver";
     longDescription = ''
       FreeCell Solver is a program that automatically solves layouts of Freecell
       and similar variants of Card Solitaire such as Eight Off, Forecell, and
diff --git a/pkgs/by-name/fr/frequest/package.nix b/pkgs/by-name/fr/frequest/package.nix
index 8099313078b66..85bb97f9c6fd5 100644
--- a/pkgs/by-name/fr/frequest/package.nix
+++ b/pkgs/by-name/fr/frequest/package.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A fast, lightweight and opensource desktop application to make HTTP(s) requests";
+    description = "Fast, lightweight and opensource desktop application to make HTTP(s) requests";
     homepage = "https://fabiobento512.github.io/FRequest";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ eliandoran ];
diff --git a/pkgs/by-name/fr/fretboard/package.nix b/pkgs/by-name/fr/fretboard/package.nix
index a4582832ae2d9..3dc1ea0f2a96b 100644
--- a/pkgs/by-name/fr/fretboard/package.nix
+++ b/pkgs/by-name/fr/fretboard/package.nix
@@ -18,19 +18,19 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "fretboard";
-  version = "6.1";
+  version = "7.0";
 
   src = fetchFromGitHub {
     owner = "bragefuglseth";
     repo = "fretboard";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-Jr7DxoOmggcAxU1y+2jXZvMgAf9SDSA7t5Jr2AYZV7s=";
+    hash = "sha256-8AfIvmL6ttmsH95KRMSv+1RaYYU2h+nVaZozLfxLWXc=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     src = finalAttrs.src;
     name = "${finalAttrs.pname}-${finalAttrs.version}";
-    hash = "sha256-P7dafWBaHVrxh30YxKiraKPMjtmGTTNd8qvoJ1M2vKI=";
+    hash = "sha256-kFV3zd7xp2hBMAdIXZAJhH/BSTKy6DgnFqz7h0yNWgs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/fs/fsuae/package.nix b/pkgs/by-name/fs/fsuae/package.nix
index 9d8beaad4114a..7ec1d656a90ad 100644
--- a/pkgs/by-name/fs/fsuae/package.nix
+++ b/pkgs/by-name/fs/fsuae/package.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation (finalAttrs:{
 
   meta = {
     homepage = "https://fs-uae.net";
-    description = "An accurate, customizable Amiga Emulator";
+    description = "Accurate, customizable Amiga Emulator";
     longDescription = ''
       FS-UAE integrates the most accurate Amiga emulation code available from
       WinUAE. FS-UAE emulates A500, A500+, A600, A1200, A1000, A3000 and A4000
diff --git a/pkgs/by-name/ft/fte/package.nix b/pkgs/by-name/ft/fte/package.nix
index 149bb4adf9b5f..83e4c33e04de5 100644
--- a/pkgs/by-name/ft/fte/package.nix
+++ b/pkgs/by-name/ft/fte/package.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
   meta = {
-    description = "A free text editor for developers";
+    description = "Free text editor for developers";
     homepage = "https://fte.sourceforge.net/";
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [ sigmanificient ];
diff --git a/pkgs/by-name/fu/furmark/package.nix b/pkgs/by-name/fu/furmark/package.nix
index 89aad3bdb2afc..c3e84546f826b 100644
--- a/pkgs/by-name/fu/furmark/package.nix
+++ b/pkgs/by-name/fu/furmark/package.nix
@@ -1,6 +1,7 @@
 {
   autoPatchelfHook,
   copyDesktopItems,
+  fetchurl,
   fetchzip,
   lib,
   libGL,
@@ -39,7 +40,9 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "furmark";
-  version = versions.${stdenv.hostPlatform.system};
+  version =
+    versions.${stdenv.hostPlatform.system}
+      or (throw "Furmark is not available on ${stdenv.hostPlatform.system}");
 
   src = fetchzip sources.${stdenv.hostPlatform.system};
 
@@ -77,6 +80,10 @@ stdenv.mkDerivation (finalAttrs: {
       comment = description;
       desktopName = name;
       genericName = name;
+      icon = fetchurl {
+        url = "https://www.geeks3d.com/furmark/i/20240220-furmark-logo-02.png";
+        hash = "sha256-EqhWQgTEmF/2AcqDxgGtr2m5SMYup28hPEhI6ssFw7g=";
+      };
       categories = [
         "System"
         "Monitor"
diff --git a/pkgs/by-name/fv/fvwm2/package.nix b/pkgs/by-name/fv/fvwm2/package.nix
index e771a170c4894..7134959b9c651 100644
--- a/pkgs/by-name/fv/fvwm2/package.nix
+++ b/pkgs/by-name/fv/fvwm2/package.nix
@@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://fvwm.org";
-    description = "A multiple large virtual desktop window manager";
+    description = "Multiple large virtual desktop window manager";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ edanaher ];
diff --git a/pkgs/by-name/fv/fvwm3/package.nix b/pkgs/by-name/fv/fvwm3/package.nix
index 043f46a37f414..b32691f1cbab0 100644
--- a/pkgs/by-name/fv/fvwm3/package.nix
+++ b/pkgs/by-name/fv/fvwm3/package.nix
@@ -91,7 +91,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "http://fvwm.org";
-    description = "A multiple large virtual desktop window manager - Version 3";
+    description = "Multiple large virtual desktop window manager - Version 3";
     longDescription = ''
       Fvwm is a virtual window manager for the X windows system. It was
       originally a feeble fork of TWM by Robert Nation in 1993 (fvwm history),
diff --git a/pkgs/by-name/fw/fwupd/package.nix b/pkgs/by-name/fw/fwupd/package.nix
index 5e4b1d7ba7746..b5e985b3d45b4 100644
--- a/pkgs/by-name/fw/fwupd/package.nix
+++ b/pkgs/by-name/fw/fwupd/package.nix
@@ -120,7 +120,7 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "fwupd";
-  version = "1.9.19";
+  version = "1.9.21";
 
   # libfwupd goes to lib
   # daemon, plug-ins and libfwupdplugin go to out
@@ -131,7 +131,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "fwupd";
     repo = "fwupd";
     rev = finalAttrs.version;
-    hash = "sha256-PQwUBOsKejXpS3G3VSJgatCltGy+wejPXCdEsDw87jo=";
+    hash = "sha256-V3v3lTz3KUt/zEv5BuUcN7S2ZXHPbhYN5vsFPNuxbFY=";
   };
 
   patches = [
@@ -371,10 +371,11 @@ stdenv.mkDerivation (finalAttrs: {
       };
   };
 
-  meta = with lib; {
+  meta = {
     homepage = "https://fwupd.org/";
-    maintainers = with maintainers; [ rvdp ];
-    license = licenses.lgpl21Plus;
-    platforms = platforms.linux;
+    changelog = "https://github.com/fwupd/fwupd/releases/tag/${finalAttrs.version}";
+    maintainers = with lib.maintainers; [ rvdp ];
+    license = lib.licenses.lgpl21Plus;
+    platforms = lib.platforms.linux;
   };
 })
diff --git a/pkgs/by-name/fz/fzf-make/package.nix b/pkgs/by-name/fz/fzf-make/package.nix
index 864bb8f0c925e..5bc3552fcc36c 100644
--- a/pkgs/by-name/fz/fzf-make/package.nix
+++ b/pkgs/by-name/fz/fzf-make/package.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fzf-make";
-  version = "0.30.0";
+  version = "0.34.0";
 
   src = fetchFromGitHub {
     owner = "kyu08";
     repo = "fzf-make";
     rev = "v${version}";
-    hash = "sha256-C2CDzcS6iE2ojXtFjQfHDJE2C1b5QNG6rda/MiDW8kk=";
+    hash = "sha256-x+y0K6b/yCskowOuvjcSCJXM5ym2Qn84/Thui0ahUKU=";
   };
 
-  cargoHash = "sha256-N5hM5xTMNeryFgdICQcKvPt4lHgh02DCaPD3TTGmFBo=";
+  cargoHash = "sha256-cIoc3sGy33iTkVAln4oSYSBGB0iAFanv746upxnv0ZA=";
 
   nativeBuildInputs = [ makeBinaryWrapper ];
 
diff --git a/pkgs/by-name/fz/fzf/package.nix b/pkgs/by-name/fz/fzf/package.nix
index 68c939d9d9582..be75299b3f122 100644
--- a/pkgs/by-name/fz/fzf/package.nix
+++ b/pkgs/by-name/fz/fzf/package.nix
@@ -11,13 +11,13 @@
 
 buildGoModule rec {
   pname = "fzf";
-  version = "0.52.1";
+  version = "0.53.0";
 
   src = fetchFromGitHub {
     owner = "junegunn";
     repo = "fzf";
     rev = version;
-    hash = "sha256-cnLPn1AKq1BaWwXsWwQfC/lnejdyd1WdH1qIJRcfdks=";
+    hash = "sha256-2g1ouyXTo4EoCub+6ngYPy+OUFoZhXbVT3FI7r5Y7Ws=";
   };
 
   vendorHash = "sha256-Kc/bYzakx9c/bF42LYyE1t8JCUqBsJQFtczrFocx/Ps=";
diff --git a/pkgs/by-name/g3/g3kb-switch/package.nix b/pkgs/by-name/g3/g3kb-switch/package.nix
index 91994eb36624b..f3a2650a5bc55 100644
--- a/pkgs/by-name/g3/g3kb-switch/package.nix
+++ b/pkgs/by-name/g3/g3kb-switch/package.nix
@@ -7,12 +7,12 @@
 }:
 stdenv.mkDerivation rec {
   pname = "g3kb-switch";
-  version = "1.4";
+  version = "1.5";
   src = fetchFromGitHub {
     owner = "lyokha";
     repo = "g3kb-switch";
     rev = version;
-    sha256 = "sha256-mcZduHcteZ+nS0YEZG5DfmpA8xrnLhwxumq6hLuLPIs=";
+    sha256 = "sha256-kTJfV0xQmWuxibUlfC1qJX2J2nrZ4wimdf/nGciQq0Y=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/gabutdm/default.nix b/pkgs/by-name/ga/gabutdm/package.nix
index cb587ea7f093f..4458efcce5f40 100644
--- a/pkgs/applications/networking/gabutdm/default.nix
+++ b/pkgs/by-name/ga/gabutdm/package.nix
@@ -14,18 +14,19 @@
 , json-glib
 , qrencode
 , curl
+, libadwaita
 , aria2
 }:
 
 stdenv.mkDerivation rec {
   pname = "gabutdm";
-  version = "2.1.6";
+  version = "2.2.8";
 
   src = fetchFromGitHub {
     owner = "gabutakut";
-    repo = pname;
+    repo = "gabutdm";
     rev = version;
-    hash = "sha256-ai5LsoK21XwXqL4LRuKsOR1/JV6LnP+1ZJ9fMHpj178=";
+    hash = "sha256-HF+zBDkA9fYauLUYsvJJxcRggHu+5qH4rm0IM/tL9Hc=";
   };
 
   nativeBuildInputs = [
@@ -45,11 +46,12 @@ stdenv.mkDerivation rec {
     json-glib
     qrencode
     curl
+    libadwaita
   ];
 
   postPatch = ''
     substituteInPlace meson/post_install.py \
-      --replace gtk-update-icon-cache gtk4-update-icon-cache
+      --replace-fail gtk-update-icon-cache gtk4-update-icon-cache
   '';
 
   preFixup = ''
diff --git a/pkgs/by-name/ga/gambit-project/package.nix b/pkgs/by-name/ga/gambit-project/package.nix
new file mode 100644
index 0000000000000..630549a59caa4
--- /dev/null
+++ b/pkgs/by-name/ga/gambit-project/package.nix
@@ -0,0 +1,42 @@
+{ lib
+, autoreconfHook
+, fetchFromGitHub
+, stdenv
+, wxGTK31
+, darwin
+, withGui ? true
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "gambit-project";
+  version = "16.2.0";
+
+  src = fetchFromGitHub {
+    owner = "gambitproject";
+    repo = "gambit";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-OuI2DA/5CLgHqcHwOGUE9IdrnyjlGKy8B7tWueUfUtg=";
+  };
+
+  nativeBuildInputs =
+    [ autoreconfHook ]
+    ++ lib.optional withGui wxGTK31;
+
+  buildInputs =
+    lib.optional withGui wxGTK31
+    ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Cocoa;
+
+  strictDeps = true;
+
+  configureFlags = [
+    (lib.enableFeature withGui "gui")
+  ];
+
+  meta = {
+    description = "Open-source collection of tools for doing computation in game theory";
+    homepage = "http://www.gambit-project.org";
+    license = lib.licenses.gpl2Only;
+    maintainers = with lib.maintainers; [ t4ccer ];
+    platforms = with lib.platforms; unix ++ windows;
+  };
+})
diff --git a/pkgs/by-name/ga/gamescope/package.nix b/pkgs/by-name/ga/gamescope/package.nix
index 3b60a9f40715f..4a07becaedc06 100644
--- a/pkgs/by-name/ga/gamescope/package.nix
+++ b/pkgs/by-name/ga/gamescope/package.nix
@@ -24,7 +24,6 @@
 , openvr
 , stb
 , wlroots
-, libliftoff
 , libdecor
 , libdisplay-info
 , lib
@@ -44,20 +43,17 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "gamescope";
-  version = "3.14.16";
+  version = "3.14.18";
 
   src = fetchFromGitHub {
     owner = "ValveSoftware";
     repo = "gamescope";
     rev = "refs/tags/${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-tijFVOIMW+nkot/uRP0PNZBYZkZMMt1PcAN5+3SWzW4=";
+    hash = "sha256-XcefR0wiDHQY7wMX+LQTEntffi2RdMW8m2HNQMz035A=";
   };
 
   patches = [
-    # Unvendor dependencies
-    ./use-pkgconfig.patch
-
     # Make it look for shaders in the right place
     ./shaders-path.patch
   ];
@@ -116,7 +112,6 @@ stdenv.mkDerivation (finalAttrs: {
     libavif
     libdrm
     libei
-    libliftoff
     SDL2
     libdecor
     libinput
diff --git a/pkgs/by-name/ga/gamescope/use-pkgconfig.patch b/pkgs/by-name/ga/gamescope/use-pkgconfig.patch
deleted file mode 100644
index 2b4de54ae54df..0000000000000
--- a/pkgs/by-name/ga/gamescope/use-pkgconfig.patch
+++ /dev/null
@@ -1,9 +0,0 @@
---- a/meson.build
-+++ b/meson.build
-@@ -6,7 +6,6 @@ project(
-   default_options: [
-     'cpp_std=c++20',
-     'warning_level=2',
--    'force_fallback_for=wlroots,libliftoff,vkroots',
-   ],
- )
diff --git a/pkgs/by-name/ga/gamja/package.nix b/pkgs/by-name/ga/gamja/package.nix
index d72934038a8a8..eab836a6756ea 100644
--- a/pkgs/by-name/ga/gamja/package.nix
+++ b/pkgs/by-name/ga/gamja/package.nix
@@ -29,7 +29,7 @@ buildNpmPackage rec {
   '';
 
   meta = with lib; {
-    description = "A simple IRC web client";
+    description = "Simple IRC web client";
     homepage = "https://git.sr.ht/~emersion/gamja";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [motiejus apfelkuchen6];
diff --git a/pkgs/by-name/ga/garnet/package.nix b/pkgs/by-name/ga/garnet/package.nix
index eac945cfcf3df..f12a0bc862615 100644
--- a/pkgs/by-name/ga/garnet/package.nix
+++ b/pkgs/by-name/ga/garnet/package.nix
@@ -26,7 +26,7 @@ buildDotnetModule {
 
   meta = with lib; {
     mainProgram = "GarnetServer";
-    description = "A remote cache-store from Microsoft Research";
+    description = "Remote cache-store from Microsoft Research";
     longDescription = ''
       A remote cache-store that offers strong performance, scalability,
       storage, recovery, cluster sharding, key migration, replication features,
diff --git a/pkgs/by-name/ga/gate/package.nix b/pkgs/by-name/ga/gate/package.nix
index 454af42d9bae7..48aaa97f8b7e8 100644
--- a/pkgs/by-name/ga/gate/package.nix
+++ b/pkgs/by-name/ga/gate/package.nix
@@ -5,7 +5,7 @@
 
 let
   pname = "gate";
-  version = "0.36.7";
+  version = "0.37.1";
 in
 buildGoModule {
   inherit pname version;
@@ -14,10 +14,10 @@ buildGoModule {
     owner = "minekube";
     repo = "gate";
     rev = "refs/tags/v${version}";
-    hash = "sha256-WHxpx20O/HuCWqbY4zTxcjyIhW3+FQtTz5sUGAda71g=";
+    hash = "sha256-2oWC6l6SFrulk0EPLVtFfMKfVPHZFOngKjvOLprg/Yk=";
   };
 
-  vendorHash = "sha256-dswNJQWqN+u/mnpbj9se2j9uEi0ewNTXVlN3WnNbcyg=";
+  vendorHash = "sha256-JaBcGcqFqp9Il3FyU/QwThuggzPg8HWScvFHEAgtgBU=";
 
   ldflags = [ "-s" "-w" ];
 
diff --git a/pkgs/by-name/gc/gcp-scanner/package.nix b/pkgs/by-name/gc/gcp-scanner/package.nix
index fcd6a3e614388..a577790d16a6e 100644
--- a/pkgs/by-name/gc/gcp-scanner/package.nix
+++ b/pkgs/by-name/gc/gcp-scanner/package.nix
@@ -47,7 +47,7 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   meta = with lib; {
-    description = "A comprehensive scanner for Google Cloud";
+    description = "Comprehensive scanner for Google Cloud";
     homepage = "https://github.com/google/gcp_scanner";
     changelog = "https://github.com/google/gcp_scanner/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/by-name/gc/gcs/package.nix b/pkgs/by-name/gc/gcs/package.nix
index e8d9a337f04a8..954128a40ba1a 100644
--- a/pkgs/by-name/gc/gcs/package.nix
+++ b/pkgs/by-name/gc/gcs/package.nix
@@ -93,7 +93,7 @@ buildGoModule rec {
 
   meta = {
     changelog = "https://github.com/richardwilkes/gcs/releases/tag/${src.rev}";
-    description = "A stand-alone, interactive, character sheet editor for the GURPS 4th Edition roleplaying game system";
+    description = "Stand-alone, interactive, character sheet editor for the GURPS 4th Edition roleplaying game system";
     homepage = "https://gurpscharactersheet.com/";
     license = lib.licenses.mpl20;
     mainProgram = "gcs";
diff --git a/pkgs/development/tools/gdtoolkit/default.nix b/pkgs/by-name/gd/gdtoolkit_3/package.nix
index ea5e5ec8de9ae..6b6abbfc40260 100644
--- a/pkgs/development/tools/gdtoolkit/default.nix
+++ b/pkgs/by-name/gd/gdtoolkit_3/package.nix
@@ -1,7 +1,6 @@
 { lib
 , python3
 , fetchFromGitHub
-, godot3-server
 }:
 
 let
@@ -23,15 +22,15 @@ let
   };
 in
 python.pkgs.buildPythonApplication rec {
-  pname = "gdtoolkit";
-  version = "3.3.1";
+  pname = "gdtoolkit3";
+  version = "3.5.0";
 
   # If we try to get using fetchPypi it requires GeoIP (but the package dont has that dep!?)
   src = fetchFromGitHub {
     owner = "Scony";
     repo = "godot-gdscript-toolkit";
     rev = version;
-    sha256 = "13nnpwy550jf5qnm9ixpxl1bwfnhhbiys8vqfd25g3aim4bm3gnn";
+    hash = "sha256-cMGD5Xdf9ElS1NT7Q0NPB//EvUO0MI0VTtps5JRisZ4=";
   };
 
   disabled = python.pythonOlder "3.7";
@@ -48,35 +47,18 @@ python.pkgs.buildPythonApplication rec {
   nativeCheckInputs = with python.pkgs; [
     pytestCheckHook
     hypothesis
-    godot3-server
   ];
 
-  preCheck =
-    let
-      godotServerMajorVersion = lib.versions.major godot3-server.version;
-      gdtoolkitMajorVersion = lib.versions.major version;
-      msg = ''
-        gdtoolkit major version ${gdtoolkitMajorVersion} does not match godot-server major version ${godotServerMajorVersion}!
-        gdtoolkit needs a matching godot-server for its tests.
-        If you see this error, you can either:
-         - disable doCheck for gdtoolkit, or
-         - provide a compatible godot-server version to gdtoolkit"
-      '';
-    in lib.throwIf (godotServerMajorVersion != gdtoolkitMajorVersion) msg ''
-      # The tests want to run the installed executables
-      export PATH=$out/bin:$PATH
+  preCheck = ''
+    # The tests want to run the installed executables
+    export PATH=$out/bin:$PATH
 
-      # gdtoolkit tries to write cache variables to $HOME/.cache
-      export HOME=$TMP
+    # gdtoolkit tries to write cache variables to $HOME/.cache
+    export HOME=$TMP
+  '';
 
-      # Work around https://github.com/godotengine/godot/issues/20503
-      # Without this, Godot will complain about a missing project file
-      touch project.godot
-
-      # Remove broken test case
-      # (hard to skip via disabledTests since the test name contains an absolute path)
-      rm tests/potential-godot-bugs/multiline-subscription-expression.gd
-    '';
+  # The tests are not working on NixOS
+  disabledTests = [ "test_cc_on_empty_file_succeeds" "test_cc_on_file_with_single_function_succeeds" ];
 
   pythonImportsCheck = [ "gdtoolkit" "gdtoolkit.formatter" "gdtoolkit.linter" "gdtoolkit.parser" ];
 
diff --git a/pkgs/by-name/gd/gdtoolkit_4/package.nix b/pkgs/by-name/gd/gdtoolkit_4/package.nix
new file mode 100644
index 0000000000000..6f4a25602ee27
--- /dev/null
+++ b/pkgs/by-name/gd/gdtoolkit_4/package.nix
@@ -0,0 +1,73 @@
+{ lib
+, python3
+, fetchFromGitHub
+}:
+
+let
+  python = python3.override {
+    packageOverrides = self: super: {
+      lark = super.lark.overridePythonAttrs (old: rec {
+        # gdtoolkit needs exactly this lark version
+        version = "1.1.9";
+        src = fetchFromGitHub {
+          owner = "lark-parser";
+          repo = "lark";
+          rev = version;
+          hash = "sha256-vDu+VPAXONY8J+A6oS7EiMeOMgzGms0nWpE+DKI1MVU=";
+          fetchSubmodules = true;
+        };
+        patches = [ ];
+      });
+    };
+  };
+in
+python.pkgs.buildPythonApplication rec {
+  pname = "gdtoolkit";
+  version = "4.2.2";
+
+  src = fetchFromGitHub {
+    owner = "Scony";
+    repo = "godot-gdscript-toolkit";
+    rev = version;
+    hash = "sha256-SvEKKuDnfxV+5AArg5ssrQzgIwRITdek4KYEs3d0n4Y=";
+  };
+
+  disabled = python.pythonOlder "3.7";
+
+  propagatedBuildInputs = with python.pkgs; [
+    docopt
+    lark
+    pyyaml
+    setuptools
+  ];
+
+  doCheck = true;
+
+  nativeCheckInputs = with python.pkgs; [
+    pytestCheckHook
+    hypothesis
+  ];
+
+  preCheck = ''
+      # The tests want to run the installed executables
+      export PATH=$out/bin:$PATH
+
+      # gdtoolkit tries to write cache variables to $HOME/.cache
+      export HOME=$TMP
+    '';
+
+  # The tests are not working on NixOS
+  disabledTestPaths = [
+    "tests/generated/test_expression_parsing.py"
+    "tests/gdradon/test_executable.py"
+  ];
+
+  pythonImportsCheck = [ "gdtoolkit" "gdtoolkit.formatter" "gdtoolkit.linter" "gdtoolkit.parser" ];
+
+  meta = with lib; {
+    description = "Independent set of tools for working with Godot's GDScript - parser, linter and formatter";
+    homepage = "https://github.com/Scony/godot-gdscript-toolkit";
+    license = licenses.mit;
+    maintainers = with maintainers; [ squarepear ];
+  };
+}
diff --git a/pkgs/by-name/ge/geesefs/package.nix b/pkgs/by-name/ge/geesefs/package.nix
new file mode 100644
index 0000000000000..9c23f3234db7f
--- /dev/null
+++ b/pkgs/by-name/ge/geesefs/package.nix
@@ -0,0 +1,33 @@
+{ lib
+, stdenv
+, buildGoModule
+, fetchFromGitHub
+}:
+
+let version = "0.41.1";
+in buildGoModule {
+  pname = "geesefs";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "yandex-cloud";
+    repo = "geesefs";
+    rev = "v${version}";
+    hash = "sha256-4uPq4NUd6upsOxuKAVqay7UTMfiHlCKwVvJed0jdeyc=";
+  };
+
+  # hashes differ per architecture otherwise.
+  proxyVendor = true;
+  vendorHash = "sha256-pO6ZngGw9vp47cstOTpQ/lBpBQRXIUuSuhsldZPR5Sk=";
+
+  subPackages = [ "." ];
+
+  meta = {
+    homepage = "https://github.com/yandex-cloud/geesefs";
+    description = "Finally, a good FUSE FS implementation over S3";
+    license = [ lib.licenses.mit ];
+    maintainers = [ lib.maintainers.flokli ];
+    platforms = lib.platforms.unix;
+    mainProgram = "geesefs";
+  };
+}
diff --git a/pkgs/by-name/ge/gema/package.nix b/pkgs/by-name/ge/gema/package.nix
index 564941444dd74..4e16d4de72acd 100644
--- a/pkgs/by-name/ge/gema/package.nix
+++ b/pkgs/by-name/ge/gema/package.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "General purpose text processing utility based on the concept of pattern matching.";
+    description = "General purpose text processing utility based on the concept of pattern matching";
     longDescription = "Reads an input file and copies it to an output file transforming the data as specified by the patterns defined by the user.";
     homepage = "https://gema.sourceforge.net/";
     license = lib.licenses.mit;
diff --git a/pkgs/by-name/ge/geopard/package.nix b/pkgs/by-name/ge/geopard/package.nix
index 6ec0127afbe60..4966ee60aa432 100644
--- a/pkgs/by-name/ge/geopard/package.nix
+++ b/pkgs/by-name/ge/geopard/package.nix
@@ -2,71 +2,55 @@
 , cargo
 , rustc
 , fetchFromGitHub
-, glib
-, gtk4
 , libadwaita
 , rustPlatform
-, openssl
 , pkg-config
 , lib
 , wrapGAppsHook4
 , meson
 , ninja
-, gdk-pixbuf
-, cmake
 , desktop-file-utils
-, gettext
 , blueprint-compiler
-, appstream-glib
+, glib-networking
 }:
 
 stdenv.mkDerivation rec {
   pname = "geopard";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "ranfdev";
-    repo = pname;
-    rev = version;
-    hash = "sha256-elHxtFEGkdhEPHxuJtcMYwWnvo6vDaHiOyN51EOzym0=";
+    repo = "geopard";
+    rev = "v${version}";
+    hash = "sha256-QHqhjoiKiwTBDMDhb7Agqe0/o2LyLDs2kl/HC4UfayY=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit pname version src;
-    hash = "sha256-80YujPjcmAxH1gITT4OJk8w4m8Z/pAYtBUpCPQOKe3E=";
+    hash = "sha256-AmGwsSRrZK+oSnkn9Xzmia/Kbkw19v0nb1kFJtymqOs=";
   };
 
   nativeBuildInputs = [
-    openssl
-    gettext
-    glib # for glib-compile-schemas
     meson
     ninja
     pkg-config
     wrapGAppsHook4
-    cmake
     blueprint-compiler
     desktop-file-utils
-    appstream-glib
-    blueprint-compiler
     cargo
     rustc
     rustPlatform.cargoSetupHook
   ];
 
   buildInputs = [
-    desktop-file-utils
-    gdk-pixbuf
-    glib
-    gtk4
     libadwaita
-    openssl
+    glib-networking
   ];
 
   meta = with lib; {
     homepage = "https://github.com/ranfdev/Geopard";
     description = "Colorful, adaptive gemini browser";
-    maintainers = with maintainers; [ jfvillablanca ];
+    maintainers = with maintainers; [ jfvillablanca aleksana ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     mainProgram = "geopard";
diff --git a/pkgs/by-name/ge/germinal/package.nix b/pkgs/by-name/ge/germinal/package.nix
index d38e31aea8f32..cf9727e119926 100644
--- a/pkgs/by-name/ge/germinal/package.nix
+++ b/pkgs/by-name/ge/germinal/package.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests.test = nixosTests.terminal-emulators.germinal;
 
   meta = {
-    description = "A minimal terminal emulator";
+    description = "Minimal terminal emulator";
     homepage = "https://github.com/Keruspe/Germinal";
     license = lib.licenses.gpl3Plus;
     mainProgram = "germinal";
diff --git a/pkgs/tools/networking/getmail6/default.nix b/pkgs/by-name/ge/getmail6/package.nix
index 7f758527d1c92..d6e5c5dc23a10 100644
--- a/pkgs/tools/networking/getmail6/default.nix
+++ b/pkgs/by-name/ge/getmail6/package.nix
@@ -5,17 +5,17 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "getmail6";
-  version = "6.18.14";
+  version = "6.19.01";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "getmail6";
     repo = "getmail6";
     rev = "refs/tags/v${version}";
-    hash = "sha256-NcUGIddbIjwMyE/6fR8lqs90/chzqROQDftF/cNkxOs=";
+    hash = "sha256-Q3FQmliWQ8BB/U4RWw1z5I721jw8LGRLPjI9eKELd0g=";
   };
 
-  nativeBuildInputs = with python3.pkgs; [
+  build-system = with python3.pkgs; [
     setuptools
   ];
 
@@ -32,7 +32,7 @@ python3.pkgs.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A program for retrieving mail";
+    description = "Program for retrieving mail";
     homepage = "https://getmail6.org";
     changelog = "https://github.com/getmail6/getmail6/blob/${src.rev}/docs/CHANGELOG";
     license = licenses.gpl2Plus;
diff --git a/pkgs/by-name/gh/gh-copilot/package.nix b/pkgs/by-name/gh/gh-copilot/package.nix
index 1059e58cbeb2e..1e38d90cab5dc 100644
--- a/pkgs/by-name/gh/gh-copilot/package.nix
+++ b/pkgs/by-name/gh/gh-copilot/package.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     changelog = "https://github.com/github/gh-copilot/releases/tag/v${finalAttrs.version}";
-    description = "Ask for assistance right in your terminal.";
+    description = "Ask for assistance right in your terminal";
     homepage = "https://github.com/github/gh-copilot";
     license = lib.licenses.unfree;
     mainProgram = "gh-copilot";
diff --git a/pkgs/by-name/gh/gh-eco/package.nix b/pkgs/by-name/gh/gh-eco/package.nix
new file mode 100644
index 0000000000000..002362001848a
--- /dev/null
+++ b/pkgs/by-name/gh/gh-eco/package.nix
@@ -0,0 +1,45 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildGoModule,
+  fetchpatch,
+}:
+let
+  version = "0.1.3";
+in
+buildGoModule {
+  pname = "gh-eco";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "jrnxf";
+    repo = "gh-eco";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-TE1AymNlxjUtkBnBO/VBjYaqLuRyxL75s6sMidKUXTE=";
+  };
+
+  patches = [
+    # Fix package breaking on runtime by updating deps
+    (fetchpatch {
+      name = "update-deps.patch";
+      url = "https://github.com/jrnxf/gh-eco/commit/d45b1e7de8cbcb692def0e94111262cdeff2835d.patch";
+      hash = "sha256-vW5YX6C552dVYjBkYVoDbzT2PP8CaZzxh5g1TKHjrbU=";
+    })
+  ];
+
+  vendorHash = "sha256-O3FQ+Z3KVYgTafwVXUhrGRuOAWlWlOhtVegKVoZBnDE=";
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X main.Version=${version}"
+  ];
+
+  meta = {
+    homepage = "https://github.com/coloradocolby/gh-eco";
+    description = "gh extension to explore the ecosystem";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ helium ];
+    mainProgram = "gh-eco";
+  };
+}
diff --git a/pkgs/by-name/gh/gh-poi/package.nix b/pkgs/by-name/gh/gh-poi/package.nix
index fd8a5bddc5180..b1a72b88516bf 100644
--- a/pkgs/by-name/gh/gh-poi/package.nix
+++ b/pkgs/by-name/gh/gh-poi/package.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "gh-poi";
-  version = "0.9.10";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "seachicken";
     repo = "gh-poi";
     rev = "v${version}";
-    hash = "sha256-0QzCXja1UXPEC8JQIXH9Dl4PPKzqWgIy13FCYxEqggA=";
+    hash = "sha256-ZQkXXaa4n88bJdgP2FSXtgBrUi39teO98SzZq+I5doM=";
   };
 
   ldflags = [ "-s" "-w" ];
@@ -19,7 +19,7 @@ buildGoModule rec {
   vendorHash = "sha256-D/YZLwwGJWCekq9mpfCECzJyJ/xSlg7fC6leJh+e8i0=";
 
   # Skip checks because some of test suites require fixture.
-  # See: https://github.com/seachicken/gh-poi/blob/v0.9.10/.github/workflows/contract-test.yml#L28-L29
+  # See: https://github.com/seachicken/gh-poi/blob/v0.10.1/.github/workflows/contract-test.yml#L28-L29
   doCheck = false;
 
   meta = with lib; {
diff --git a/pkgs/by-name/gh/ghciwatch/package.nix b/pkgs/by-name/gh/ghciwatch/package.nix
index 4dcd45887a106..55ee9b79ea9df 100644
--- a/pkgs/by-name/gh/ghciwatch/package.nix
+++ b/pkgs/by-name/gh/ghciwatch/package.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ghciwatch";
-  version = "0.5.12";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "MercuryTechnologies";
     repo = "ghciwatch";
     rev = "v${version}";
-    hash = "sha256-XkwxAhZJFeAuWytCco4RFG1K/FJEiTmGDxOyY6KS/Ds=";
+    hash = "sha256-SV2QRFXXXwWZGd2pe+7aK+p3X+EviDrykqceZ+24t4I=";
   };
 
-  cargoHash = "sha256-ToQes3WWnI7vDKSBQZEzpKFSex5oDdnOKjOC6MONrhg=";
+  cargoHash = "sha256-/N1R8/qRIt0AiIzTKt/vPlSLxPdKU+oeuE4eZTjwJlA=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.CoreFoundation
diff --git a/pkgs/by-name/gh/ghfetch/package.nix b/pkgs/by-name/gh/ghfetch/package.nix
index 07991723d5da9..79a4c187dc0ab 100644
--- a/pkgs/by-name/gh/ghfetch/package.nix
+++ b/pkgs/by-name/gh/ghfetch/package.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
   vendorHash = "sha256-CPh9j5PJOSNvqgq/S9w+Kx3c5yIMHjc1AaqLwz9efeY=";
 
   meta = with lib; {
-    description = "A CLI tool to fetch GitHub user information and show like neofetch";
+    description = "CLI tool to fetch GitHub user information and show like neofetch";
     homepage = "https://github.com/orangekame3/ghfetch";
     license = licenses.mit;
     mainProgram = "ghfetch";
diff --git a/pkgs/by-name/gi/git-agecrypt/package.nix b/pkgs/by-name/gi/git-agecrypt/package.nix
index 146134463fe51..a9c2d85ff63cb 100644
--- a/pkgs/by-name/gi/git-agecrypt/package.nix
+++ b/pkgs/by-name/gi/git-agecrypt/package.nix
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage {
 
 
   meta = with lib; {
-    description = "Alternative to git-crypt using age instead of GPG.";
+    description = "Alternative to git-crypt using age instead of GPG";
     homepage = "https://github.com/vlaci/git-agecrypt";
     license = licenses.mpl20;
     maintainers = with maintainers; [ kuznetsss ];
diff --git a/pkgs/by-name/gi/git-get/package.nix b/pkgs/by-name/gi/git-get/package.nix
index 8cd852c5d757b..01d3a183cf406 100644
--- a/pkgs/by-name/gi/git-get/package.nix
+++ b/pkgs/by-name/gi/git-get/package.nix
@@ -44,7 +44,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A better way to clone, organize and manage multiple git repositories";
+    description = "Better way to clone, organize and manage multiple git repositories";
     homepage = "https://github.com/grdl/git-get";
     license = licenses.mit;
     maintainers = with maintainers; [ sumnerevans ];
diff --git a/pkgs/by-name/gi/git-gr/package.nix b/pkgs/by-name/gi/git-gr/package.nix
index 99877a1af2002..11835f68a4aa9 100644
--- a/pkgs/by-name/gi/git-gr/package.nix
+++ b/pkgs/by-name/gi/git-gr/package.nix
@@ -60,7 +60,7 @@ rustPlatform.buildRustPackage {
 
   meta = with lib; {
     homepage = "https://github.com/9999years/git-gr";
-    description = "A Gerrit CLI client";
+    description = "Gerrit CLI client";
     license = [ licenses.mit ];
     maintainers = [ maintainers._9999years ];
     mainProgram = "git-gr";
diff --git a/pkgs/by-name/gi/git-pw/package.nix b/pkgs/by-name/gi/git-pw/package.nix
index 6dbcc369e3709..baef706b0d04d 100644
--- a/pkgs/by-name/gi/git-pw/package.nix
+++ b/pkgs/by-name/gi/git-pw/package.nix
@@ -51,7 +51,7 @@ python3.pkgs.buildPythonApplication rec {
   });
 
   meta = with lib; {
-    description = "A tool for integrating Git with Patchwork, the web-based patch tracking system";
+    description = "Tool for integrating Git with Patchwork, the web-based patch tracking system";
     homepage = "https://github.com/getpatchwork/git-pw";
     license = licenses.mit;
     maintainers = with maintainers; [ raitobezarius ];
diff --git a/pkgs/by-name/gi/git-toolbelt/package.nix b/pkgs/by-name/gi/git-toolbelt/package.nix
new file mode 100644
index 0000000000000..df67de9946a27
--- /dev/null
+++ b/pkgs/by-name/gi/git-toolbelt/package.nix
@@ -0,0 +1,49 @@
+{
+  lib,
+  stdenvNoCC,
+  fetchFromGitHub,
+  makeWrapper,
+  git,
+  fzf,
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "git-toolbelt";
+  version = "1.9.2";
+
+  src = fetchFromGitHub {
+    owner = "nvie";
+    repo = "git-toolbelt";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-0abO3AYpN6TKYFtrK9lP5k57qWI7ByumaO/5dgKDqQc=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  buildInputs = [
+    git
+    fzf # needed by git-fixup-with
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm755 git-* -t "$out"/bin
+
+    for exe in "$out"/bin/*; do
+        wrapProgram "$exe" \
+            --prefix PATH : "$out"/bin:${lib.makeBinPath finalAttrs.buildInputs}
+    done
+
+    runHook postInstall
+  '';
+
+  meta = {
+    changelog = "https://github.com/nvie/git-toolbelt/blob/${finalAttrs.src.rev}/CHANGELOG.md";
+    description = "A suite of useful Git commands that aid with scripting or every day command line usage";
+    homepage = "https://github.com/nvie/git-toolbelt";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ tomasajt ];
+    platforms = lib.platforms.all;
+  };
+})
diff --git a/pkgs/by-name/gi/git-upstream/package.nix b/pkgs/by-name/gi/git-upstream/package.nix
index 26d63852b61f5..d050436c513b3 100644
--- a/pkgs/by-name/gi/git-upstream/package.nix
+++ b/pkgs/by-name/gi/git-upstream/package.nix
@@ -21,7 +21,7 @@ in
 
     meta = with lib; {
       homepage = "https://github.com/9999years/git-upstream";
-      description = "A shortcut for `git push --set-upstream`";
+      description = "Shortcut for `git push --set-upstream`";
       license = [licenses.mit];
       maintainers = [maintainers._9999years];
       mainProgram = "git-upstream";
diff --git a/pkgs/applications/version-management/gitea/default.nix b/pkgs/by-name/gi/gitea/package.nix
index 4b2105fda93c0..68cd69d380b0b 100644
--- a/pkgs/applications/version-management/gitea/default.nix
+++ b/pkgs/by-name/gi/gitea/package.nix
@@ -1,7 +1,7 @@
 { lib
 , stdenv
 , buildGoModule
-, fetchurl
+, fetchFromGitHub
 , makeWrapper
 , git
 , bash
@@ -16,23 +16,47 @@
 , brotli
 , xorg
 , nixosTests
+, buildNpmPackage
 }:
 
-buildGoModule rec {
+let
+  frontend = buildNpmPackage {
+    pname = "gitea-frontend";
+    inherit (gitea) src version;
+
+    npmDepsHash = "sha256-gXBBiDIIS0aW6qK37HcF0AuJOliblinznRVXoo6DV1s=";
+
+    # use webpack directly instead of 'make frontend' as the packages are already installed
+    buildPhase = ''
+      BROWSERSLIST_IGNORE_OLD_DATA=true npx webpack
+    '';
+
+    installPhase = ''
+      mkdir -p $out
+      cp -R public $out/
+    '';
+  };
+in buildGoModule rec {
   pname = "gitea";
-  version = "1.21.11";
+  version = "1.22.0";
 
-  # not fetching directly from the git repo, because that lacks several vendor files for the web UI
-  src = fetchurl {
-    url = "https://dl.gitea.com/gitea/${version}/gitea-src-${version}.tar.gz";
-    hash = "sha256-TxysXw3lVdV/hlILztM+D7wIpeqXfglAy7Ak2AxnlEM=";
+  src = fetchFromGitHub {
+    owner = "go-gitea";
+    repo = "gitea";
+    rev = "v${gitea.version}";
+    hash = "sha256-LdNEiPch2BZNYMOjE9yWsq78g6DolMjM5wUci3jXj30=";
   };
 
-  vendorHash = null;
+  vendorHash = "sha256-8VoJR4p2WnhG6nTFMzBlcrd/B6UwaOU3Q/rnDx9MtWc=";
 
-  patches = [
-    ./static-root-path.patch
-  ];
+  outputs = [ "out" "data" ];
+
+  patches = [ ./static-root-path.patch ];
+
+  # go-modules derivation doesn't provide $data
+  # so we need to wait until it is built, and then
+  # at that time we can then apply the substituteInPlace
+  overrideModAttrs = _: { postPatch = null; };
 
   postPatch = ''
     substituteInPlace modules/setting/server.go --subst-var data
@@ -54,11 +78,10 @@ buildGoModule rec {
     "-X 'main.Tags=${lib.concatStringsSep " " tags}'"
   ];
 
-  outputs = [ "out" "data" ];
-
   postInstall = ''
     mkdir $data
-    cp -R ./{public,templates,options} $data
+    ln -s ${frontend}/public $data/public
+    cp -R ./{templates,options} $data
     mkdir -p $out
     cp -R ./options/locale $out/locale
 
@@ -84,9 +107,9 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Git with a cup of tea";
-    homepage = "https://gitea.io";
+    homepage = "https://about.gitea.com";
     license = licenses.mit;
-    maintainers = with maintainers; [ disassembler kolaente ma27 techknowlogick ];
+    maintainers = with maintainers; [ ma27 techknowlogick SuperSandro2000 ];
     broken = stdenv.isDarwin;
     mainProgram = "gitea";
   };
diff --git a/pkgs/applications/version-management/gitea/static-root-path.patch b/pkgs/by-name/gi/gitea/static-root-path.patch
index 7f70329c60407..7f70329c60407 100644
--- a/pkgs/applications/version-management/gitea/static-root-path.patch
+++ b/pkgs/by-name/gi/gitea/static-root-path.patch
diff --git a/pkgs/by-name/gi/githooks/package.nix b/pkgs/by-name/gi/githooks/package.nix
index f4e4cd02bd861..fbfc407b8101d 100644
--- a/pkgs/by-name/gi/githooks/package.nix
+++ b/pkgs/by-name/gi/githooks/package.nix
@@ -5,6 +5,7 @@
   git,
   testers,
   makeWrapper,
+  githooks
 }:
 buildGoModule rec {
   pname = "githooks";
@@ -70,13 +71,13 @@ buildGoModule rec {
   '';
 
   passthru.tests.version = testers.testVersion {
-    package = "githooks-cli";
+    package = githooks;
     command = "githooks-cli --version";
     inherit version;
   };
 
   meta = with lib; {
-    description = "A Git hooks manager with per-repo and shared Git hooks including version control";
+    description = "Git hooks manager with per-repo and shared Git hooks including version control";
     homepage = "https://github.com/gabyx/Githooks";
     license = licenses.mpl20;
     maintainers = with maintainers; [ gabyx ];
diff --git a/pkgs/by-name/gi/github-desktop/package.nix b/pkgs/by-name/gi/github-desktop/package.nix
index 1ac8deb248619..ae882fdfddaff 100644
--- a/pkgs/by-name/gi/github-desktop/package.nix
+++ b/pkgs/by-name/gi/github-desktop/package.nix
@@ -17,6 +17,7 @@
 , mesa
 , systemd
 , openssl
+, libglvnd
 }:
 
 let
@@ -82,6 +83,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   preFixup = ''
     gappsWrapperArgs+=(
       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland}}"
+      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libglvnd ]}
     )
   '';
 
@@ -90,7 +92,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   ];
 
   meta = {
-    description = "GUI for managing Git and GitHub.";
+    description = "GUI for managing Git and GitHub";
     homepage = "https://desktop.github.com/";
     license = lib.licenses.mit;
     mainProgram = "github-desktop";
diff --git a/pkgs/by-name/gi/gitlab-ci-local/package.nix b/pkgs/by-name/gi/gitlab-ci-local/package.nix
index ae9e10033e922..027036915a5b2 100644
--- a/pkgs/by-name/gi/gitlab-ci-local/package.nix
+++ b/pkgs/by-name/gi/gitlab-ci-local/package.nix
@@ -6,16 +6,16 @@
 
 buildNpmPackage rec {
   pname = "gitlab-ci-local";
-  version = "4.49.0";
+  version = "4.51.0";
 
   src = fetchFromGitHub {
     owner = "firecow";
     repo = "gitlab-ci-local";
     rev = version;
-    hash = "sha256-hhzkC9wnPNwQwky2FegTMRIbcyCMzrZ/hoQlfZwk3sk=";
+    hash = "sha256-D1zviTj7isAuEyzRYEyjq4sx+jo/U3ZQZLFr35/1ZNo=";
   };
 
-  npmDepsHash = "sha256-mnnP1YvKSm/CgZYQWF8VU+cuQ0SUV5tW1dCRrGRBrmg=";
+  npmDepsHash = "sha256-ocrSOPLbWkU0LBpWAdl54hWr+7gE3z2sy8lJilGsExo=";
 
   postPatch = ''
     # remove cleanup which runs git commands
diff --git a/pkgs/by-name/gi/gittuf/package.nix b/pkgs/by-name/gi/gittuf/package.nix
index 3d33fdbae07ac..ef58a0672405b 100644
--- a/pkgs/by-name/gi/gittuf/package.nix
+++ b/pkgs/by-name/gi/gittuf/package.nix
@@ -22,7 +22,7 @@ buildGoModule rec {
 
   meta = with lib; {
     changelog = "https://github.com/gittuf/gittuf/blob/v${version}/CHANGELOG.md";
-    description = "A security layer for Git repositories";
+    description = "Security layer for Git repositories";
     homepage = "https://gittuf.dev";
     license = licenses.asl20;
     mainProgram = "gittuf";
diff --git a/pkgs/by-name/gi/gitu/package.nix b/pkgs/by-name/gi/gitu/package.nix
index 40a729927e6fb..c5729b5dbe74b 100644
--- a/pkgs/by-name/gi/gitu/package.nix
+++ b/pkgs/by-name/gi/gitu/package.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gitu";
-  version = "0.20.1";
+  version = "0.21.0";
 
   src = fetchFromGitHub {
     owner = "altsem";
     repo = "gitu";
     rev = "v${version}";
-    hash = "sha256-H1REl6DkWYwZ1s8FLyHlsFi1DQY0C3Zizz/o9KUO7XQ=";
+    hash = "sha256-2YcQl9aPFPE/t/Pzoo0mWkCjOE6b4BJH0oT8Gbx+vIg=";
   };
 
-  cargoHash = "sha256-/u6VmcaQpVagz7W/eAFql9sKF+9dn/o1VGvFGJAJkaA=";
+  cargoHash = "sha256-RldCa0UITX8zj5tliww1xiL1Y60t9EN6o1ZA5eVEaT4=";
 
   nativeBuildInputs = [
     pkg-config
@@ -41,7 +41,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A TUI Git client inspired by Magit";
+    description = "TUI Git client inspired by Magit";
     homepage = "https://github.com/altsem/gitu";
     changelog = "https://github.com/altsem/gitu/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/by-name/gi/gitui/package.nix b/pkgs/by-name/gi/gitui/package.nix
index de1eb48edaac9..a93cad786827f 100644
--- a/pkgs/by-name/gi/gitui/package.nix
+++ b/pkgs/by-name/gi/gitui/package.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gitui";
-  version = "0.26.2";
+  version = "0.26.3";
 
   src = fetchFromGitHub {
     owner = "extrawurst";
     repo = "gitui";
     rev = "v${version}";
-    hash = "sha256-eXkbvBdymwOUPLimv2zaJr9zqc+5LGK3hghZ2aUVWA0=";
+    hash = "sha256-j3y+KjC+o9p2omf4bN8+XevwU7WqiaQ0sfPqHySD2ik=";
   };
 
-  cargoHash = "sha256-Cb3/4l7fECVfmvPIw3n1QT8CoC+Kuohtfk+huKv9Yrg=";
+  cargoHash = "sha256-vVEo0kSghOQsH3T6ZTAzN7gIUku0n7rDbKwNmOM9GZc=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/by-name/gl/glance/package.nix b/pkgs/by-name/gl/glance/package.nix
index 1e36360311b03..2b47878117751 100644
--- a/pkgs/by-name/gl/glance/package.nix
+++ b/pkgs/by-name/gl/glance/package.nix
@@ -6,13 +6,13 @@ nix-update-script
 
 buildGoModule rec {
   pname = "glance";
-  version = "0.4.0";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "glanceapp";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-vcK8AW+B/YK4Jor86SRvJ8XFWvzeAUX5mVbXwrgxGlA=";
+    hash = "sha256-37DmLZ8ESJwB2R8o5WjeypKsCQwarF3x8UYz1OQT/tM=";
   };
 
   vendorHash = "sha256-Okme73vLc3Pe9+rNlmG8Bj1msKaVb5PaIBsAAeTer6s=";
@@ -24,7 +24,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/glanceapp/glance";
     changelog = "https://github.com/glanceapp/glance/releases/tag/v${version}";
-    description = "A self-hosted dashboard that puts all your feeds in one place";
+    description = "Self-hosted dashboard that puts all your feeds in one place";
     mainProgram = "glance";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ dvn0 ];
diff --git a/pkgs/by-name/gl/glas/package.nix b/pkgs/by-name/gl/glas/package.nix
index cfb2fda5d9105..ee3c6a3bb0baf 100644
--- a/pkgs/by-name/gl/glas/package.nix
+++ b/pkgs/by-name/gl/glas/package.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = {
-    description = "A language server for the Gleam programming language.";
+    description = "Language server for the Gleam programming language";
     homepage = "https://github.com/maurobalbi/glas";
     changelog = "https://github.com/maurobalbi/glas/tag/v${version}";
     license = with lib.licenses; [
diff --git a/pkgs/by-name/gl/glauth/package.nix b/pkgs/by-name/gl/glauth/package.nix
index f049321e114b4..00a4bbee1f1e1 100644
--- a/pkgs/by-name/gl/glauth/package.nix
+++ b/pkgs/by-name/gl/glauth/package.nix
@@ -41,7 +41,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A lightweight LDAP server for development, home use, or CI";
+    description = "Lightweight LDAP server for development, home use, or CI";
     homepage = "https://github.com/glauth/glauth";
     license = licenses.mit;
     maintainers = with maintainers; [ bjornfor christoph-heiss ];
diff --git a/pkgs/by-name/gl/glock/package.nix b/pkgs/by-name/gl/glock/package.nix
new file mode 100644
index 0000000000000..c573d06af7d00
--- /dev/null
+++ b/pkgs/by-name/gl/glock/package.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, fetchpatch
+}:
+
+buildGoModule {
+  pname = "glock";
+  version = "0-unstable-2021-03-19";
+
+  src = fetchFromGitHub {
+    owner = "robfig";
+    repo = "glock";
+    rev = "0ac7e52a4c8a9a7039a72b3c6a10e8be59bc6599";
+    hash = "sha256-EDaLk83u1gRcvEjrfBrLZBQZ5unyD9LQA2TccOawXII=";
+  };
+
+  patches = [
+    # Migrate to Go modules
+    (fetchpatch {
+      url = "https://github.com/robfig/glock/commit/943afe5e26dd64ebad5ca17613ae3700c53fb25d.patch";
+      hash = "sha256-nk+5uHlCv7Hxbo0Axvi15nJVzEcb++gOJpF3w06yQsk=";
+    })
+  ];
+
+  vendorHash = "sha256-v3lfb+CXbTxzObDpubufD3Q1h6IhULcC/6spA6StfGw=";
+
+  checkFlags = [ "-skip=^TestSave$" ];
+
+  meta = {
+    homepage = "https://github.com/robfig/glock";
+    description = "Command-line tool to lock Go dependencies to specific revisions";
+    mainProgram = "glock";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [
+      luftmensch-luftmensch
+      rushmorem
+    ];
+  };
+}
diff --git a/pkgs/by-name/gm/gmetronome/package.nix b/pkgs/by-name/gm/gmetronome/package.nix
index c3f1629a4c0f5..8c358abbd4514 100644
--- a/pkgs/by-name/gm/gmetronome/package.nix
+++ b/pkgs/by-name/gm/gmetronome/package.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A free software metronome and tempo measurement tool";
+    description = "Free software metronome and tempo measurement tool";
     homepage = "https://gitlab.gnome.org/dqpb/gmetronome";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/pkgs/by-name/gm/gmic-qt/package.nix b/pkgs/by-name/gm/gmic-qt/package.nix
index 8c3ff6ce4aeff..9c3d74cbe566c 100644
--- a/pkgs/by-name/gm/gmic-qt/package.nix
+++ b/pkgs/by-name/gm/gmic-qt/package.nix
@@ -49,13 +49,13 @@ assert lib.assertMsg
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gmic-qt${lib.optionalString (variant != "standalone") "-${variant}"}";
-  version = "3.3.5";
+  version = "3.4.0";
 
   src = fetchFromGitHub {
     owner = "c-koi";
     repo = "gmic-qt";
     rev = "v.${finalAttrs.version}";
-    hash = "sha256-WApuIWqVgVJAM2WdfOiqoQ2U+9kIuq8fy6wvJ55KoIc=";
+    hash = "sha256-IZMvvhWQwbnyxF3CkvEjySl3o3DB6UucpjqOFR9NjQ0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/gm/gmic/package.nix b/pkgs/by-name/gm/gmic/package.nix
index 73906fa30db46..1ed7224ac5d6c 100644
--- a/pkgs/by-name/gm/gmic/package.nix
+++ b/pkgs/by-name/gm/gmic/package.nix
@@ -26,7 +26,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gmic";
-  version = "3.3.6";
+  version = "3.4.0";
 
   outputs = [ "out" "lib" "dev" "man" ];
 
@@ -34,15 +34,15 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "GreycLab";
     repo = "gmic";
     rev = "v.${finalAttrs.version}";
-    hash = "sha256-gyQP+ulXLMVkNn1Bss7zlQINcTunwbP+MAsftADqtOk=";
+    hash = "sha256-uK/kgzlUvEAxRB8Wc3Inspv4/8vnjXrCilP1g/QMuCs=";
   };
 
   # TODO: build this from source
   # Reference: src/Makefile, directive gmic_stdlib_community.h
   gmic_stdlib = fetchurl {
     name = "gmic_stdlib_community.h";
-    url = "http://gmic.eu/gmic_stdlib_community${lib.replaceStrings ["."] [""] finalAttrs.version}.h";
-    hash = "sha256-mj6yOGc+CGY6oFDv9PJ7y9KABdn9DG32m2IVlLAhrsc=";
+    url = "https://gmic.eu/gmic_stdlib_community${lib.replaceStrings ["."] [""] finalAttrs.version}.h";
+    hash = "sha256-LoqK8ADwzPpxhy2GvaxVjGyYEHAbhspyoIXuBXCLRtQ=";
   };
 
   nativeBuildInputs = [
@@ -99,11 +99,7 @@ stdenv.mkDerivation (finalAttrs: {
       fi
 
       for component in src gmic_stdlib; do
-          # The script will not perform an update when the version attribute is
-          # up to date from previous platform run; we need to clear it before
-          # each run
-          update-source-version "--source-key=$component" "gmic" 0 "${lib.fakeHash}"
-          update-source-version "--source-key=$component" "gmic" $latestVersion
+          update-source-version "--source-key=$component" "gmic" $latestVersion --ignore-same-version
       done
     '';
   };
diff --git a/pkgs/by-name/gm/gmid/package.nix b/pkgs/by-name/gm/gmid/package.nix
index b7682b2b6221b..f6f9996b73838 100644
--- a/pkgs/by-name/gm/gmid/package.nix
+++ b/pkgs/by-name/gm/gmid/package.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gmid";
-  version = "2.0.2";
+  version = "2.0.5";
 
   src = fetchFromGitHub {
     owner = "omar-polo";
     repo = pname;
     rev = version;
-    hash = "sha256-5K6+CVX0/m6SBcTvwy4GD0x9R/yQjd+2tTJiA4OagcI=";
+    hash = "sha256-xuA5yLtRu9GDrSr7FBlAwEjCjFVRmnOuBM62AHOHDhc=";
   };
 
   nativeBuildInputs = [ bison ];
diff --git a/pkgs/by-name/gn/gnome-graphs/package.nix b/pkgs/by-name/gn/gnome-graphs/package.nix
index fb8f5bc1ae436..3842655583bd2 100644
--- a/pkgs/by-name/gn/gnome-graphs/package.nix
+++ b/pkgs/by-name/gn/gnome-graphs/package.nix
@@ -61,7 +61,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A simple, yet powerful tool that allows you to plot and manipulate your data with ease";
+    description = "Simple, yet powerful tool that allows you to plot and manipulate your data with ease";
     homepage = "https://apps.gnome.org/Graphs";
     license = licenses.gpl3Plus;
     mainProgram = "graphs";
diff --git a/pkgs/by-name/gn/gnome-monitor-config/package.nix b/pkgs/by-name/gn/gnome-monitor-config/package.nix
new file mode 100644
index 0000000000000..ef399902ef657
--- /dev/null
+++ b/pkgs/by-name/gn/gnome-monitor-config/package.nix
@@ -0,0 +1,48 @@
+{ lib
+, fetchFromGitHub
+, stdenv
+, meson
+, ninja
+, pkg-config
+, cairo
+, glib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-monitor-config";
+  version = "0-unstable-2023-09-26";
+
+  src = fetchFromGitHub {
+    owner = "jadahl";
+    repo = "gnome-monitor-config";
+    rev = "04b854e6411cd9ca75582c108aea63ae3c202f0e";
+    hash = "sha256-uVWhQ5SCyadDkeOd+pY2cYZAQ0ZvWMlgndcr1ZIEf50=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    cairo
+    glib
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    mv src/gnome-monitor-config $out/bin
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Program to help manage GNOME monitor configuration";
+    homepage = "https://github.com/jadahl/gnome-monitor-config";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ aveltras ];
+    platforms = platforms.linux;
+    mainProgram = "gnome-monitor-config";
+  };
+}
diff --git a/pkgs/by-name/gn/gnome-online-accounts-gtk/package.nix b/pkgs/by-name/gn/gnome-online-accounts-gtk/package.nix
index d8dbbc5806b27..f10af60422c1a 100644
--- a/pkgs/by-name/gn/gnome-online-accounts-gtk/package.nix
+++ b/pkgs/by-name/gn/gnome-online-accounts-gtk/package.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-online-accounts-gtk";
-  version = "3.50.2";
+  version = "3.50.3";
 
   src = fetchFromGitHub {
     owner = "xapp-project";
     repo = "gnome-online-accounts-gtk";
     rev = finalAttrs.version;
-    hash = "sha256-6yGesg/L/9syX990uDuw5Or/uEQ8DGPQYiCRRw4OMzY=";
+    hash = "sha256-peElSkGl2dYeJmMUeB+xDoOY3MhHs7IsIQYr0iJZP58=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/gn/gnucap/modelgen-verilog.nix b/pkgs/by-name/gn/gnucap/modelgen-verilog.nix
index c22cd368bee69..d6d6902f54a93 100644
--- a/pkgs/by-name/gn/gnucap/modelgen-verilog.nix
+++ b/pkgs/by-name/gn/gnucap/modelgen-verilog.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "gnucap modelgen to preprocess, parse and dump vams files.";
+    description = "gnucap modelgen to preprocess, parse and dump vams files";
     homepage = "http://www.gnucap.org/";
     changelog = "https://git.savannah.gnu.org/cgit/gnucap.git/plain/NEWS?h=v${version}";
     mainProgram = "gnucap-mg-vams";
diff --git a/pkgs/by-name/go/go-bare/package.nix b/pkgs/by-name/go/go-bare/package.nix
index 0fd076c580cea..5a9b024e337c1 100644
--- a/pkgs/by-name/go/go-bare/package.nix
+++ b/pkgs/by-name/go/go-bare/package.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   subPackages = [ "cmd/gen" ];
 
   meta = with lib; {
-    description = "An implementation of the BARE message format for Go";
+    description = "Implementation of the BARE message format for Go";
     mainProgram = "gen";
     homepage = "https://git.sr.ht/~sircmpwn/go-bare";
     license = licenses.asl20;
diff --git a/pkgs/by-name/go/go-camo/package.nix b/pkgs/by-name/go/go-camo/package.nix
index 677a64b705808..204fa79b1f3cc 100644
--- a/pkgs/by-name/go/go-camo/package.nix
+++ b/pkgs/by-name/go/go-camo/package.nix
@@ -21,7 +21,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A camo server is a special type of image proxy that proxies non-secure images over SSL/TLS";
+    description = "Camo server is a special type of image proxy that proxies non-secure images over SSL/TLS";
     homepage = "https://github.com/cactus/go-camo";
     changelog = "https://github.com/cactus/go-camo/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/by-name/go/go-critic/package.nix b/pkgs/by-name/go/go-critic/package.nix
index 2ef85f6621412..1c00655c78130 100644
--- a/pkgs/by-name/go/go-critic/package.nix
+++ b/pkgs/by-name/go/go-critic/package.nix
@@ -38,7 +38,7 @@ buildGoModule rec {
   };
 
   meta = {
-    description = "The most opinionated Go source code linter for code audit";
+    description = "Most opinionated Go source code linter for code audit";
     homepage = "https://go-critic.com/";
     changelog = "https://github.com/go-critic/go-critic/releases/tag/${src.rev}";
     license = lib.licenses.mit;
diff --git a/pkgs/by-name/go/go-errorlint/package.nix b/pkgs/by-name/go/go-errorlint/package.nix
index 239c10a47af57..6c7252d04274c 100644
--- a/pkgs/by-name/go/go-errorlint/package.nix
+++ b/pkgs/by-name/go/go-errorlint/package.nix
@@ -19,7 +19,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "A source code linter that can be used to find code that will cause problems with Go's error wrapping scheme";
+    description = "Source code linter that can be used to find code that will cause problems with Go's error wrapping scheme";
     homepage = "https://github.com/polyfloyd/go-errorlint";
     changelog = "https://github.com/polyfloyd/go-errorlint/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/by-name/go/go-judge/package.nix b/pkgs/by-name/go/go-judge/package.nix
index 91f2c5c107244..db8662a0c4b9f 100644
--- a/pkgs/by-name/go/go-judge/package.nix
+++ b/pkgs/by-name/go/go-judge/package.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "go-judge";
-  version = "1.8.4";
+  version = "1.8.5";
 
   src = fetchFromGitHub {
     owner = "criyle";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-dViiTTT/OjgAXecViuBdWOycCpn97g+Lr1ZHubfVExw=";
+    hash = "sha256-yvuljBNPkAsTJ7jT1BrInTfUlBuE8zSV60MBWuIlW5I=";
   };
 
-  vendorHash = "sha256-xnTM7QN+ZJP3iPf+k8HgFYMFv6W6BboM5Yh7938s9lM=";
+  vendorHash = "sha256-LvKLhC9I/hJSIP3zRkJAYNvTFLiNTTu87Fe4DDTWnMo=";
 
   tags = [ "nomsgpack" ];
 
diff --git a/pkgs/by-name/go/go-landlock/package.nix b/pkgs/by-name/go/go-landlock/package.nix
index 44b7ba5573cee..91ed7c1ff2bdc 100644
--- a/pkgs/by-name/go/go-landlock/package.nix
+++ b/pkgs/by-name/go/go-landlock/package.nix
@@ -22,7 +22,7 @@ buildGoModule rec {
   ];
 
   meta = {
-    description = "A Go library for the Linux Landlock sandboxing feature";
+    description = "Go library for the Linux Landlock sandboxing feature";
     homepage = "https://github.com/landlock-lsm/go-landlock";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ tomfitzhenry ];
diff --git a/pkgs/by-name/go/go-secdump/package.nix b/pkgs/by-name/go/go-secdump/package.nix
new file mode 100644
index 0000000000000..1539511a191c7
--- /dev/null
+++ b/pkgs/by-name/go/go-secdump/package.nix
@@ -0,0 +1,33 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+}:
+
+buildGoModule rec {
+  pname = "go-secdump";
+  version = "0.2.1";
+
+  src = fetchFromGitHub {
+    owner = "jfjallid";
+    repo = "go-secdump";
+    rev = "refs/tags/${version}";
+    hash = "sha256-mb44v79BH9wW8+b1Le0lyVtl5iHIEzGvgVzaf0zEG20=";
+  };
+
+  vendorHash = "sha256-xgvT+RnaTzkVql7js/Mb5vZM5BV+B3OJbCTfDWDmt7c=";
+
+  ldflags = [
+    "-s"
+    "-w"
+  ];
+
+  meta = with lib; {
+    description = "Tool to remotely dump secrets from the Windows registry";
+    homepage = "https://github.com/jfjallid/go-secdump";
+    changelog = "https://github.com/jfjallid/go-secdump/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "go-secdump";
+  };
+}
diff --git a/pkgs/by-name/go/go-symbols/package.nix b/pkgs/by-name/go/go-symbols/package.nix
new file mode 100644
index 0000000000000..6333921008899
--- /dev/null
+++ b/pkgs/by-name/go/go-symbols/package.nix
@@ -0,0 +1,39 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+  fetchpatch,
+}:
+
+buildGoModule rec {
+  pname = "go-symbols";
+  version = "0.1.1";
+
+  vendorHash = "sha256-8unWnxTQzPY8tKBtss9qQG+ksWyheKxKRlg65F0vWWU=";
+
+  src = fetchFromGitHub {
+    owner = "acroca";
+    repo = "go-symbols";
+    rev = "v${version}";
+    sha256 = "0yyzw6clndb2r5j9isyd727njs98zzp057v314vfvknsm8g7hqrz";
+  };
+
+  patches = [
+    # Migrate to Go modules
+    (fetchpatch {
+      url = "https://github.com/acroca/go-symbols/commit/414c2283696b50fc5009055e5bc2590ce45f4400.patch";
+      hash = "sha256-9lndJhyN8eaovjQlfSRGP8lC4F+pAXUoR2AvYvhSx2U=";
+    })
+  ];
+
+  meta = {
+    description = "Utility for extracting a JSON representation of the package symbols from a go source tree";
+    mainProgram = "go-symbols";
+    homepage = "https://github.com/acroca/go-symbols";
+    maintainers = with lib.maintainers; [
+      luftmensch-luftmensch
+      vdemeester
+    ];
+    license = lib.licenses.mit;
+  };
+}
diff --git a/pkgs/by-name/go/gobang/package.nix b/pkgs/by-name/go/gobang/package.nix
new file mode 100644
index 0000000000000..2889747b07387
--- /dev/null
+++ b/pkgs/by-name/go/gobang/package.nix
@@ -0,0 +1,40 @@
+{
+  lib,
+  rustPlatform,
+  fetchFromGitHub,
+  stdenv,
+  darwin,
+}:
+let
+  version = "0.1.0-alpha.5";
+in
+rustPlatform.buildRustPackage {
+  pname = "gobang";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "tako8ki";
+    repo = "gobang";
+    rev = "v${version}";
+    hash = "sha256-RinfQhG7iCp0Xcs9kLs3I2/wjkJEgCjFYe3mS+FY9Ak=";
+  };
+
+  cargoPatches = [ ./update-sqlx.patch ];
+
+  cargoHash = "sha256-3A3bf7iq1acsWttKmcJmxWM74B0qUIcROBAkjDZFKxE=";
+
+  buildInputs =
+    with darwin.apple_sdk.frameworks;
+    lib.optionals stdenv.isDarwin [
+      CoreFoundation
+      Security
+      SystemConfiguration
+    ];
+
+  meta = {
+    description = "Cross-platform TUI database management tool written in Rust";
+    homepage = "https://github.com/tako8ki/gobang";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ figsoda ];
+  };
+}
diff --git a/pkgs/by-name/go/gobang/update-sqlx.patch b/pkgs/by-name/go/gobang/update-sqlx.patch
new file mode 100644
index 0000000000000..1571b00f03398
--- /dev/null
+++ b/pkgs/by-name/go/gobang/update-sqlx.patch
@@ -0,0 +1,1553 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index 6cf1c13..c3ea64b 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -4,24 +4,15 @@ version = 3
+ 
+ [[package]]
+ name = "ahash"
+-version = "0.7.4"
++version = "0.7.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "43bb833f0bf979d8475d38fbf09ed3b8a55e1885fe93ad3f93239fc6a4f17b98"
++checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
+ dependencies = [
+  "getrandom",
+  "once_cell",
+  "version_check",
+ ]
+ 
+-[[package]]
+-name = "aho-corasick"
+-version = "0.7.18"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
+-dependencies = [
+- "memchr",
+-]
+-
+ [[package]]
+ name = "ansi_term"
+ version = "0.11.0"
+@@ -39,9 +30,9 @@ checksum = "15af2628f6890fe2609a3b91bef4c83450512802e59489f9c1cb1fa5df064a61"
+ 
+ [[package]]
+ name = "arrayvec"
+-version = "0.5.2"
++version = "0.7.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
++checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
+ 
+ [[package]]
+ name = "async-trait"
+@@ -51,7 +42,7 @@ checksum = "0b98e84bbb4cbcdd97da190ba0c58a1bb0de2c1fdf67d159e192ed766aeca722"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "syn",
++ "syn 1.0.109",
+ ]
+ 
+ [[package]]
+@@ -74,12 +65,6 @@ dependencies = [
+  "winapi",
+ ]
+ 
+-[[package]]
+-name = "autocfg"
+-version = "0.1.7"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
+-
+ [[package]]
+ name = "autocfg"
+ version = "1.0.1"
+@@ -92,31 +77,70 @@ version = "0.13.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
+ 
++[[package]]
++name = "base64ct"
++version = "1.6.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
++
+ [[package]]
+ name = "bitflags"
+-version = "1.2.1"
++version = "1.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+ 
+ [[package]]
+-name = "bitvec"
+-version = "0.19.5"
++name = "block-buffer"
++version = "0.10.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8942c8d352ae1838c9dda0b0ca2ab657696ef2232a20147cf1b30ae1a9cb4321"
++checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+ dependencies = [
+- "funty",
+- "radium",
+- "tap",
+- "wyz",
++ "generic-array",
+ ]
+ 
+ [[package]]
+-name = "block-buffer"
+-version = "0.9.0"
++name = "borsh"
++version = "0.10.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
++checksum = "4114279215a005bc675e386011e594e1d9b800918cea18fcadadcce864a2046b"
+ dependencies = [
+- "generic-array",
++ "borsh-derive",
++ "hashbrown 0.11.2",
++]
++
++[[package]]
++name = "borsh-derive"
++version = "0.10.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7"
++dependencies = [
++ "borsh-derive-internal",
++ "borsh-schema-derive-internal",
++ "proc-macro-crate",
++ "proc-macro2",
++ "syn 1.0.109",
++]
++
++[[package]]
++name = "borsh-derive-internal"
++version = "0.10.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "afb438156919598d2c7bad7e1c0adf3d26ed3840dbc010db1a882a65583ca2fb"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn 1.0.109",
++]
++
++[[package]]
++name = "borsh-schema-derive-internal"
++version = "0.10.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "634205cc43f74a1b9046ef87c4540ebda95696ec0f315024860cad7c5b0f5ccd"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn 1.0.109",
+ ]
+ 
+ [[package]]
+@@ -125,6 +149,28 @@ version = "3.7.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "9c59e7af012c713f529e7a3ee57ce9b31ddd858d4b512923602f74608b009631"
+ 
++[[package]]
++name = "bytecheck"
++version = "0.6.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2"
++dependencies = [
++ "bytecheck_derive",
++ "ptr_meta",
++ "simdutf8",
++]
++
++[[package]]
++name = "bytecheck_derive"
++version = "0.6.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn 1.0.109",
++]
++
+ [[package]]
+ name = "byteorder"
+ version = "1.4.3"
+@@ -184,22 +230,18 @@ dependencies = [
+ ]
+ 
+ [[package]]
+-name = "cpufeatures"
+-version = "0.1.5"
++name = "const-oid"
++version = "0.7.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "66c99696f6c9dd7f35d486b9d04d7e6e202aa3e8c40d553f2fdf5e7e0c6a71ef"
+-dependencies = [
+- "libc",
+-]
++checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3"
+ 
+ [[package]]
+-name = "crossbeam-channel"
+-version = "0.5.1"
++name = "cpufeatures"
++version = "0.2.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4"
++checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
+ dependencies = [
+- "cfg-if",
+- "crossbeam-utils",
++ "libc",
+ ]
+ 
+ [[package]]
+@@ -273,15 +315,25 @@ dependencies = [
+ ]
+ 
+ [[package]]
+-name = "crypto-mac"
+-version = "0.10.1"
++name = "crypto-bigint"
++version = "0.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "bff07008ec701e8028e2ceb8f83f0e4274ee62bd2dbdc4fefff2e9a91824081a"
++checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21"
+ dependencies = [
+  "generic-array",
+  "subtle",
+ ]
+ 
++[[package]]
++name = "crypto-common"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
++dependencies = [
++ "generic-array",
++ "typenum",
++]
++
+ [[package]]
+ name = "database-tree"
+ version = "0.1.0-alpha.5"
+@@ -291,20 +343,33 @@ dependencies = [
+  "thiserror",
+ ]
+ 
++[[package]]
++name = "der"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c"
++dependencies = [
++ "const-oid",
++ "crypto-bigint",
++ "pem-rfc7468",
++]
++
+ [[package]]
+ name = "digest"
+-version = "0.9.0"
++version = "0.10.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
++checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+ dependencies = [
+- "generic-array",
++ "block-buffer",
++ "crypto-common",
++ "subtle",
+ ]
+ 
+ [[package]]
+ name = "dirs"
+-version = "3.0.2"
++version = "4.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "30baa043103c9d0c2a57cf537cc2f35623889dc0d405e6c3cccfadbc81c71309"
++checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
+ dependencies = [
+  "dirs-sys",
+ ]
+@@ -359,6 +424,24 @@ version = "1.6.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
+ 
++[[package]]
++name = "event-listener"
++version = "2.5.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
++
++[[package]]
++name = "flume"
++version = "0.10.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577"
++dependencies = [
++ "futures-core",
++ "futures-sink",
++ "pin-project",
++ "spin 0.9.8",
++]
++
+ [[package]]
+ name = "form_urlencoded"
+ version = "1.0.1"
+@@ -369,12 +452,6 @@ dependencies = [
+  "percent-encoding",
+ ]
+ 
+-[[package]]
+-name = "funty"
+-version = "1.1.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7"
+-
+ [[package]]
+ name = "futures"
+ version = "0.3.15"
+@@ -392,9 +469,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "futures-channel"
+-version = "0.3.15"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e682a68b29a882df0545c143dc3646daefe80ba479bcdede94d5a703de2871e2"
++checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+ dependencies = [
+  "futures-core",
+  "futures-sink",
+@@ -402,15 +479,15 @@ dependencies = [
+ 
+ [[package]]
+ name = "futures-core"
+-version = "0.3.15"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0402f765d8a89a26043b889b26ce3c4679d268fa6bb22cd7c6aad98340e179d1"
++checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+ 
+ [[package]]
+ name = "futures-executor"
+-version = "0.3.15"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "badaa6a909fac9e7236d0620a2f57f7664640c56575b71a7552fbd68deafab79"
++checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
+ dependencies = [
+  "futures-core",
+  "futures-task",
+@@ -430,42 +507,39 @@ dependencies = [
+ 
+ [[package]]
+ name = "futures-io"
+-version = "0.3.15"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "acc499defb3b348f8d8f3f66415835a9131856ff7714bf10dadfc4ec4bdb29a1"
++checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+ 
+ [[package]]
+ name = "futures-macro"
+-version = "0.3.15"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a4c40298486cdf52cc00cd6d6987892ba502c7656a16a4192a9992b1ccedd121"
++checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+ dependencies = [
+- "autocfg 1.0.1",
+- "proc-macro-hack",
+  "proc-macro2",
+  "quote",
+- "syn",
++ "syn 2.0.65",
+ ]
+ 
+ [[package]]
+ name = "futures-sink"
+-version = "0.3.15"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a57bead0ceff0d6dde8f465ecd96c9338121bb7717d3e7b108059531870c4282"
++checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
+ 
+ [[package]]
+ name = "futures-task"
+-version = "0.3.15"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8a16bef9fc1a4dddb5bee51c989e3fbba26569cbb0e31f5b303c184e3dd33dae"
++checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+ 
+ [[package]]
+ name = "futures-util"
+-version = "0.3.15"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "feb5c238d27e2bf94ffdfd27b2c29e3df4a68c4193bb6427384259e2bf191967"
++checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+ dependencies = [
+- "autocfg 1.0.1",
+  "futures-channel",
+  "futures-core",
+  "futures-io",
+@@ -475,8 +549,6 @@ dependencies = [
+  "memchr",
+  "pin-project-lite",
+  "pin-utils",
+- "proc-macro-hack",
+- "proc-macro-nested",
+  "slab",
+ ]
+ 
+@@ -523,7 +595,7 @@ dependencies = [
+  "strum",
+  "strum_macros",
+  "tokio",
+- "toml",
++ "toml 0.4.10",
+  "tui",
+  "unicode-width",
+  "which",
+@@ -538,13 +610,22 @@ dependencies = [
+  "ahash",
+ ]
+ 
++[[package]]
++name = "hashbrown"
++version = "0.12.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
++dependencies = [
++ "ahash",
++]
++
+ [[package]]
+ name = "hashlink"
+ version = "0.7.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "7249a3129cbc1ffccd74857f81464a323a152173cdb134e0fd81bc803b29facf"
+ dependencies = [
+- "hashbrown",
++ "hashbrown 0.11.2",
+ ]
+ 
+ [[package]]
+@@ -556,6 +637,15 @@ dependencies = [
+  "unicode-segmentation",
+ ]
+ 
++[[package]]
++name = "heck"
++version = "0.4.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
++dependencies = [
++ "unicode-segmentation",
++]
++
+ [[package]]
+ name = "hermit-abi"
+ version = "0.1.18"
+@@ -571,13 +661,21 @@ version = "0.4.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+ 
++[[package]]
++name = "hkdf"
++version = "0.12.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
++dependencies = [
++ "hmac",
++]
++
+ [[package]]
+ name = "hmac"
+-version = "0.10.1"
++version = "0.12.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15"
++checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
+ dependencies = [
+- "crypto-mac",
+  "digest",
+ ]
+ 
+@@ -598,8 +696,8 @@ version = "1.7.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5"
+ dependencies = [
+- "autocfg 1.0.1",
+- "hashbrown",
++ "autocfg",
++ "hashbrown 0.11.2",
+ ]
+ 
+ [[package]]
+@@ -622,9 +720,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "itoa"
+-version = "0.4.7"
++version = "1.0.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
++checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
+ 
+ [[package]]
+ name = "js-sys"
+@@ -641,27 +739,14 @@ version = "1.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+ dependencies = [
+- "spin",
+-]
+-
+-[[package]]
+-name = "lexical-core"
+-version = "0.7.6"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe"
+-dependencies = [
+- "arrayvec",
+- "bitflags",
+- "cfg-if",
+- "ryu",
+- "static_assertions",
++ "spin 0.5.2",
+ ]
+ 
+ [[package]]
+ name = "libc"
+-version = "0.2.97"
++version = "0.2.155"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "12b8adadd720df158f4d70dfe7ccc6adb0472d7c55ca83445f6a5ab3e36f8fb6"
++checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
+ 
+ [[package]]
+ name = "libm"
+@@ -671,9 +756,9 @@ checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a"
+ 
+ [[package]]
+ name = "libsqlite3-sys"
+-version = "0.22.2"
++version = "0.24.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "290b64917f8b0cb885d9de0f9959fe1f775d7fa12f1da2db9001c1c8ab60f89d"
++checksum = "898745e570c7d0453cc1fbc4a701eb6c662ed54e8fec8b7d14be137ebeeb9d14"
+ dependencies = [
+  "cc",
+  "pkg-config",
+@@ -698,12 +783,6 @@ dependencies = [
+  "cfg-if",
+ ]
+ 
+-[[package]]
+-name = "maplit"
+-version = "1.0.2"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
+-
+ [[package]]
+ name = "matches"
+ version = "0.1.8"
+@@ -712,20 +791,25 @@ checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
+ 
+ [[package]]
+ name = "md-5"
+-version = "0.9.1"
++version = "0.10.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7b5a279bb9607f9f53c22d496eade00d138d1bdcccd07d74650387cf94942a15"
++checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
+ dependencies = [
+- "block-buffer",
++ "cfg-if",
+  "digest",
+- "opaque-debug",
+ ]
+ 
+ [[package]]
+ name = "memchr"
+-version = "2.4.0"
++version = "2.7.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc"
++checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
++
++[[package]]
++name = "minimal-lexical"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+ 
+ [[package]]
+ name = "mio"
+@@ -751,15 +835,12 @@ dependencies = [
+ 
+ [[package]]
+ name = "nom"
+-version = "6.1.2"
++version = "7.1.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e7413f999671bd4745a7b624bd370a569fb6bc574b23c83a3c5ed2e453f3d5e2"
++checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+ dependencies = [
+- "bitvec",
+- "funty",
+- "lexical-core",
+  "memchr",
+- "version_check",
++ "minimal-lexical",
+ ]
+ 
+ [[package]]
+@@ -773,33 +854,21 @@ dependencies = [
+ 
+ [[package]]
+ name = "num-bigint"
+-version = "0.3.2"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7d0a3d5e207573f948a9e5376662aa743a2ea13f7c50a554d7af443a73fbfeba"
+-dependencies = [
+- "autocfg 1.0.1",
+- "num-integer",
+- "num-traits",
+-]
+-
+-[[package]]
+-name = "num-bigint"
+-version = "0.4.2"
++version = "0.3.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "74e768dff5fb39a41b3bcd30bb25cf989706c90d028d1ad71971987aa309d535"
++checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3"
+ dependencies = [
+- "autocfg 1.0.1",
++ "autocfg",
+  "num-integer",
+  "num-traits",
+ ]
+ 
+ [[package]]
+ name = "num-bigint-dig"
+-version = "0.7.0"
++version = "0.8.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4547ee5541c18742396ae2c895d0717d0f886d8823b8399cdaf7b07d63ad0480"
++checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151"
+ dependencies = [
+- "autocfg 0.1.7",
+  "byteorder",
+  "lazy_static",
+  "libm",
+@@ -817,7 +886,7 @@ version = "0.1.44"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
+ dependencies = [
+- "autocfg 1.0.1",
++ "autocfg",
+  "num-traits",
+ ]
+ 
+@@ -827,7 +896,7 @@ version = "0.1.42"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"
+ dependencies = [
+- "autocfg 1.0.1",
++ "autocfg",
+  "num-integer",
+  "num-traits",
+ ]
+@@ -838,7 +907,7 @@ version = "0.2.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
+ dependencies = [
+- "autocfg 1.0.1",
++ "autocfg",
+  "libm",
+ ]
+ 
+@@ -854,15 +923,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "once_cell"
+-version = "1.8.0"
++version = "1.19.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56"
+-
+-[[package]]
+-name = "opaque-debug"
+-version = "0.3.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
++checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+ 
+ [[package]]
+ name = "parking_lot"
+@@ -884,20 +947,24 @@ dependencies = [
+  "cfg-if",
+  "instant",
+  "libc",
+- "redox_syscall",
++ "redox_syscall 0.2.9",
+  "smallvec",
+  "winapi",
+ ]
+ 
+ [[package]]
+-name = "pem"
+-version = "0.8.3"
++name = "paste"
++version = "1.0.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fd56cbd21fea48d0c440b41cd69c589faacade08c992d9a54e471b79d0fd13eb"
++checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
++
++[[package]]
++name = "pem-rfc7468"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "01de5d978f34aa4b2296576379fcc416034702fd94117c56ffd8a1a767cefb30"
+ dependencies = [
+- "base64",
+- "once_cell",
+- "regex",
++ "base64ct",
+ ]
+ 
+ [[package]]
+@@ -906,11 +973,31 @@ version = "2.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+ 
++[[package]]
++name = "pin-project"
++version = "1.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
++dependencies = [
++ "pin-project-internal",
++]
++
++[[package]]
++name = "pin-project-internal"
++version = "1.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn 2.0.65",
++]
++
+ [[package]]
+ name = "pin-project-lite"
+-version = "0.2.6"
++version = "0.2.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905"
++checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
+ 
+ [[package]]
+ name = "pin-utils"
+@@ -918,6 +1005,28 @@ version = "0.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+ 
++[[package]]
++name = "pkcs1"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a78f66c04ccc83dd4486fd46c33896f4e17b24a7a3a6400dedc48ed0ddd72320"
++dependencies = [
++ "der",
++ "pkcs8",
++ "zeroize",
++]
++
++[[package]]
++name = "pkcs8"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0"
++dependencies = [
++ "der",
++ "spki",
++ "zeroize",
++]
++
+ [[package]]
+ name = "pkg-config"
+ version = "0.3.19"
+@@ -930,6 +1039,15 @@ version = "0.2.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
+ 
++[[package]]
++name = "proc-macro-crate"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
++dependencies = [
++ "toml 0.5.11",
++]
++
+ [[package]]
+ name = "proc-macro-error"
+ version = "1.0.4"
+@@ -939,7 +1057,7 @@ dependencies = [
+  "proc-macro-error-attr",
+  "proc-macro2",
+  "quote",
+- "syn",
++ "syn 1.0.109",
+  "version_check",
+ ]
+ 
+@@ -955,41 +1073,43 @@ dependencies = [
+ ]
+ 
+ [[package]]
+-name = "proc-macro-hack"
+-version = "0.5.19"
++name = "proc-macro2"
++version = "1.0.83"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
++checksum = "0b33eb56c327dec362a9e55b3ad14f9d2f0904fb5a5b03b513ab5465399e9f43"
++dependencies = [
++ "unicode-ident",
++]
+ 
+ [[package]]
+-name = "proc-macro-nested"
+-version = "0.1.7"
++name = "ptr_meta"
++version = "0.1.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086"
++checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1"
++dependencies = [
++ "ptr_meta_derive",
++]
+ 
+ [[package]]
+-name = "proc-macro2"
+-version = "1.0.27"
++name = "ptr_meta_derive"
++version = "0.1.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038"
++checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac"
+ dependencies = [
+- "unicode-xid",
++ "proc-macro2",
++ "quote",
++ "syn 1.0.109",
+ ]
+ 
+ [[package]]
+ name = "quote"
+-version = "1.0.9"
++version = "1.0.36"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
++checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
+ dependencies = [
+  "proc-macro2",
+ ]
+ 
+-[[package]]
+-name = "radium"
+-version = "0.5.3"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "941ba9d78d8e2f7ce474c015eea4d9c6d25b6a3327f9832ee29a4de27f91bbb8"
+-
+ [[package]]
+ name = "rand"
+ version = "0.8.4"
+@@ -1039,6 +1159,15 @@ dependencies = [
+  "bitflags",
+ ]
+ 
++[[package]]
++name = "redox_syscall"
++version = "0.4.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
++dependencies = [
++ "bitflags",
++]
++
+ [[package]]
+ name = "redox_users"
+ version = "0.4.0"
+@@ -1046,26 +1175,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64"
+ dependencies = [
+  "getrandom",
+- "redox_syscall",
++ "redox_syscall 0.2.9",
+ ]
+ 
+ [[package]]
+-name = "regex"
+-version = "1.5.4"
++name = "rend"
++version = "0.4.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
++checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c"
+ dependencies = [
+- "aho-corasick",
+- "memchr",
+- "regex-syntax",
++ "bytecheck",
+ ]
+ 
+-[[package]]
+-name = "regex-syntax"
+-version = "0.6.25"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
+-
+ [[package]]
+ name = "ring"
+ version = "0.16.20"
+@@ -1075,41 +1196,73 @@ dependencies = [
+  "cc",
+  "libc",
+  "once_cell",
+- "spin",
++ "spin 0.5.2",
+  "untrusted",
+  "web-sys",
+  "winapi",
+ ]
+ 
++[[package]]
++name = "rkyv"
++version = "0.7.40"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c30f1d45d9aa61cbc8cd1eb87705470892289bb2d01943e7803b873a57404dc3"
++dependencies = [
++ "bytecheck",
++ "hashbrown 0.12.3",
++ "ptr_meta",
++ "rend",
++ "rkyv_derive",
++ "seahash",
++]
++
++[[package]]
++name = "rkyv_derive"
++version = "0.7.40"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ff26ed6c7c4dfc2aa9480b86a60e3c7233543a270a680e10758a507c5a4ce476"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn 1.0.109",
++]
++
+ [[package]]
+ name = "rsa"
+-version = "0.4.1"
++version = "0.6.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7b0aeddcca1082112a6eeb43bf25fd7820b066aaf6eaef776e19d0a1febe38fe"
++checksum = "4cf22754c49613d2b3b119f0e5d46e34a2c628a937e3024b8762de4e7d8c710b"
+ dependencies = [
+  "byteorder",
+  "digest",
+- "lazy_static",
+  "num-bigint-dig",
+  "num-integer",
+  "num-iter",
+  "num-traits",
+- "pem",
+- "rand",
+- "simple_asn1",
++ "pkcs1",
++ "pkcs8",
++ "rand_core",
++ "smallvec",
+  "subtle",
+  "zeroize",
+ ]
+ 
+ [[package]]
+ name = "rust_decimal"
+-version = "1.15.0"
++version = "1.30.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c5446d1cf2dfe2d6367c8b27f2082bdf011e60e76fa1fcd140047f535156d6e7"
++checksum = "d0446843641c69436765a35a5a77088e28c2e6a12da93e84aa3ab1cd4aa5a042"
+ dependencies = [
+  "arrayvec",
++ "borsh",
++ "bytecheck",
++ "byteorder",
++ "bytes",
+  "num-traits",
++ "rand",
++ "rkyv",
+  "serde",
++ "serde_json",
+ ]
+ 
+ [[package]]
+@@ -1147,33 +1300,38 @@ dependencies = [
+  "untrusted",
+ ]
+ 
++[[package]]
++name = "seahash"
++version = "4.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
++
+ [[package]]
+ name = "serde"
+-version = "1.0.126"
++version = "1.0.202"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ec7505abeacaec74ae4778d9d9328fe5a5d04253220a85c4ee022239fc996d03"
++checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395"
+ dependencies = [
+  "serde_derive",
+ ]
+ 
+ [[package]]
+ name = "serde_derive"
+-version = "1.0.126"
++version = "1.0.202"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43"
++checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "syn",
++ "syn 2.0.65",
+ ]
+ 
+ [[package]]
+ name = "serde_json"
+-version = "1.0.64"
++version = "1.0.117"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79"
++checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
+ dependencies = [
+- "indexmap",
+  "itoa",
+  "ryu",
+  "serde",
+@@ -1181,28 +1339,24 @@ dependencies = [
+ 
+ [[package]]
+ name = "sha-1"
+-version = "0.9.6"
++version = "0.10.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8c4cfa741c5832d0ef7fab46cabed29c2aae926db0b11bb2069edd8db5e64e16"
++checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c"
+ dependencies = [
+- "block-buffer",
+  "cfg-if",
+  "cpufeatures",
+  "digest",
+- "opaque-debug",
+ ]
+ 
+ [[package]]
+ name = "sha2"
+-version = "0.9.5"
++version = "0.10.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b362ae5752fd2137731f9fa25fd4d9058af34666ca1966fb969119cc35719f12"
++checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+ dependencies = [
+- "block-buffer",
+  "cfg-if",
+  "cpufeatures",
+  "digest",
+- "opaque-debug",
+ ]
+ 
+ [[package]]
+@@ -1247,16 +1401,10 @@ dependencies = [
+ ]
+ 
+ [[package]]
+-name = "simple_asn1"
+-version = "0.5.4"
++name = "simdutf8"
++version = "0.1.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8eb4ea60fb301dc81dfc113df680571045d375ab7345d171c5dc7d7e13107a80"
+-dependencies = [
+- "chrono",
+- "num-bigint 0.4.2",
+- "num-traits",
+- "thiserror",
+-]
++checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a"
+ 
+ [[package]]
+ name = "slab"
+@@ -1266,9 +1414,9 @@ checksum = "f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527"
+ 
+ [[package]]
+ name = "smallvec"
+-version = "1.6.1"
++version = "1.13.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
++checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
+ 
+ [[package]]
+ name = "spin"
+@@ -1276,24 +1424,41 @@ version = "0.5.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+ 
++[[package]]
++name = "spin"
++version = "0.9.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
++dependencies = [
++ "lock_api",
++]
++
++[[package]]
++name = "spki"
++version = "0.5.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27"
++dependencies = [
++ "base64ct",
++ "der",
++]
++
+ [[package]]
+ name = "sqlformat"
+-version = "0.1.6"
++version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6d86e3c77ff882a828346ba401a7ef4b8e440df804491c6064fe8295765de71c"
++checksum = "b4b7922be017ee70900be125523f38bdd644f4f06a1b16e8fa5a8ee8c34bffd4"
+ dependencies = [
+- "lazy_static",
+- "maplit",
++ "itertools",
+  "nom",
+- "regex",
+  "unicode_categories",
+ ]
+ 
+ [[package]]
+ name = "sqlx"
+-version = "0.5.7"
++version = "0.5.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0e4b94ab0f8c21ee4899b93b06451ef5d965f1a355982ee73684338228498440"
++checksum = "551873805652ba0d912fec5bbb0f8b4cdd96baf8e2ebf5970e5671092966019b"
+ dependencies = [
+  "sqlx-core",
+  "sqlx-macros",
+@@ -1301,9 +1466,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "sqlx-core"
+-version = "0.5.7"
++version = "0.5.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ec28b91a01e1fe286d6ba66f68289a2286df023fc97444e1fd86c2fd6d5dc026"
++checksum = "e48c61941ccf5ddcada342cd59e3e5173b007c509e1e8e990dafc830294d9dc5"
+ dependencies = [
+  "ahash",
+  "atoi",
+@@ -1312,29 +1477,32 @@ dependencies = [
+  "byteorder",
+  "bytes",
+  "chrono",
+- "crossbeam-channel",
+  "crossbeam-queue",
+- "crossbeam-utils",
+  "digest",
+  "dirs",
+  "either",
++ "event-listener",
++ "flume",
+  "futures-channel",
+  "futures-core",
++ "futures-executor",
+  "futures-intrusive",
+  "futures-util",
+  "generic-array",
+  "hashlink",
+  "hex",
++ "hkdf",
+  "hmac",
++ "indexmap",
+  "itoa",
+  "libc",
+  "libsqlite3-sys",
+  "log",
+  "md-5",
+  "memchr",
+- "num-bigint 0.3.2",
++ "num-bigint",
+  "once_cell",
+- "parking_lot",
++ "paste",
+  "percent-encoding",
+  "rand",
+  "rsa",
+@@ -1358,41 +1526,34 @@ dependencies = [
+ 
+ [[package]]
+ name = "sqlx-macros"
+-version = "0.5.7"
++version = "0.5.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4dc33c35d54774eed73d54568d47a6ac099aed8af5e1556a017c131be88217d5"
++checksum = "bc0fba2b0cae21fc00fe6046f8baa4c7fcb49e379f0f592b04696607f69ed2e1"
+ dependencies = [
+  "dotenv",
+  "either",
+- "futures",
+- "heck",
++ "heck 0.4.1",
+  "once_cell",
+  "proc-macro2",
+  "quote",
+  "serde_json",
+  "sqlx-core",
+  "sqlx-rt",
+- "syn",
++ "syn 1.0.109",
+  "url",
+ ]
+ 
+ [[package]]
+ name = "sqlx-rt"
+-version = "0.5.7"
++version = "0.5.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "14302b678d9c76b28f2e60115211e25e0aabc938269991745a169753dc00e35c"
++checksum = "4db708cd3e459078f85f39f96a00960bd841f66ee2a669e90bf36907f5a79aae"
+ dependencies = [
+  "once_cell",
+  "tokio",
+  "tokio-rustls",
+ ]
+ 
+-[[package]]
+-name = "static_assertions"
+-version = "1.1.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+-
+ [[package]]
+ name = "stringprep"
+ version = "0.1.2"
+@@ -1426,11 +1587,11 @@ version = "0.4.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "7813934aecf5f51a54775e00068c237de98489463968231a51746bbbc03f9c10"
+ dependencies = [
+- "heck",
++ "heck 0.3.3",
+  "proc-macro-error",
+  "proc-macro2",
+  "quote",
+- "syn",
++ "syn 1.0.109",
+ ]
+ 
+ [[package]]
+@@ -1445,10 +1606,10 @@ version = "0.21.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "d06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ec"
+ dependencies = [
+- "heck",
++ "heck 0.3.3",
+  "proc-macro2",
+  "quote",
+- "syn",
++ "syn 1.0.109",
+ ]
+ 
+ [[package]]
+@@ -1459,33 +1620,26 @@ checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2"
+ 
+ [[package]]
+ name = "syn"
+-version = "1.0.73"
++version = "1.0.109"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f71489ff30030d2ae598524f61326b902466f72a0fb1a8564c001cc63425bcc7"
++checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "unicode-xid",
++ "unicode-ident",
+ ]
+ 
+ [[package]]
+-name = "synstructure"
+-version = "0.12.4"
++name = "syn"
++version = "2.0.65"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701"
++checksum = "d2863d96a84c6439701d7a38f9de935ec562c8832cc55d1dde0f513b52fad106"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "syn",
+- "unicode-xid",
++ "unicode-ident",
+ ]
+ 
+-[[package]]
+-name = "tap"
+-version = "1.0.1"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
+-
+ [[package]]
+ name = "textwrap"
+ version = "0.11.0"
+@@ -1497,22 +1651,22 @@ dependencies = [
+ 
+ [[package]]
+ name = "thiserror"
+-version = "1.0.25"
++version = "1.0.61"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fa6f76457f59514c7eeb4e59d891395fab0b2fd1d40723ae737d64153392e9c6"
++checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
+ dependencies = [
+  "thiserror-impl",
+ ]
+ 
+ [[package]]
+ name = "thiserror-impl"
+-version = "1.0.25"
++version = "1.0.61"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8a36768c0fbf1bb15eca10defa29526bda730a2376c2ab4393ccfa16fb1a318d"
++checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "syn",
++ "syn 2.0.65",
+ ]
+ 
+ [[package]]
+@@ -1542,11 +1696,10 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
+ 
+ [[package]]
+ name = "tokio"
+-version = "1.11.0"
++version = "1.16.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b4efe6fc2395938c8155973d7be49fe8d03a843726e285e100a8a383cc0154ce"
++checksum = "0c27a64b625de6d309e8c57716ba93021dccf1b3b5c97edd6d3dd2d2135afc0a"
+ dependencies = [
+- "autocfg 1.0.1",
+  "bytes",
+  "libc",
+  "memchr",
+@@ -1562,13 +1715,13 @@ dependencies = [
+ 
+ [[package]]
+ name = "tokio-macros"
+-version = "1.3.0"
++version = "1.8.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "54473be61f4ebe4efd09cec9bd5d16fa51d70ea0192213d754d2d500457db110"
++checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "syn",
++ "syn 1.0.109",
+ ]
+ 
+ [[package]]
+@@ -1584,9 +1737,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "tokio-stream"
+-version = "0.1.7"
++version = "0.1.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7b2f3f698253f03119ac0102beaa64f67a67e08074d03a22d18784104543727f"
++checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af"
+ dependencies = [
+  "futures-core",
+  "pin-project-lite",
+@@ -1602,6 +1755,15 @@ dependencies = [
+  "serde",
+ ]
+ 
++[[package]]
++name = "toml"
++version = "0.5.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
++dependencies = [
++ "serde",
++]
++
+ [[package]]
+ name = "tui"
+ version = "0.15.0"
+@@ -1617,9 +1779,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "typenum"
+-version = "1.13.0"
++version = "1.17.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "879f6906492a7cd215bfa4cf595b600146ccfac0c79bcbd1f3000162af5e8b06"
++checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+ 
+ [[package]]
+ name = "unicode-bidi"
+@@ -1630,6 +1792,12 @@ dependencies = [
+  "matches",
+ ]
+ 
++[[package]]
++name = "unicode-ident"
++version = "1.0.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
++
+ [[package]]
+ name = "unicode-normalization"
+ version = "0.1.19"
+@@ -1651,12 +1819,6 @@ version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
+ 
+-[[package]]
+-name = "unicode-xid"
+-version = "0.2.2"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
+-
+ [[package]]
+ name = "unicode_categories"
+ version = "0.1.1"
+@@ -1705,6 +1867,12 @@ version = "0.10.2+wasi-snapshot-preview1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
+ 
++[[package]]
++name = "wasite"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"
++
+ [[package]]
+ name = "wasm-bindgen"
+ version = "0.2.74"
+@@ -1726,7 +1894,7 @@ dependencies = [
+  "log",
+  "proc-macro2",
+  "quote",
+- "syn",
++ "syn 1.0.109",
+  "wasm-bindgen-shared",
+ ]
+ 
+@@ -1748,7 +1916,7 @@ checksum = "be2241542ff3d9f241f5e2cb6dd09b37efe786df8851c54957683a49f0987a97"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "syn",
++ "syn 1.0.109",
+  "wasm-bindgen-backend",
+  "wasm-bindgen-shared",
+ ]
+@@ -1801,11 +1969,12 @@ dependencies = [
+ 
+ [[package]]
+ name = "whoami"
+-version = "1.1.2"
++version = "1.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4abacf325c958dfeaf1046931d37f2a901b6dfe0968ee965a29e94c6766b2af6"
++checksum = "a44ab49fad634e88f55bf8f9bb3abd2f27d7204172a112c7c9987e01c1c94ea9"
+ dependencies = [
+- "wasm-bindgen",
++ "redox_syscall 0.4.1",
++ "wasite",
+  "web-sys",
+ ]
+ 
+@@ -1831,29 +2000,8 @@ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+ 
+-[[package]]
+-name = "wyz"
+-version = "0.2.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214"
+-
+ [[package]]
+ name = "zeroize"
+-version = "1.3.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd"
+-dependencies = [
+- "zeroize_derive",
+-]
+-
+-[[package]]
+-name = "zeroize_derive"
+-version = "1.1.0"
++version = "1.7.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a2c1e130bebaeab2f23886bf9acbaca14b092408c452543c857f66399cd6dab1"
+-dependencies = [
+- "proc-macro2",
+- "quote",
+- "syn",
+- "synstructure",
+-]
++checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
+diff --git a/Cargo.toml b/Cargo.toml
+index 95f5b91..ea7eec5 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -20,7 +20,7 @@ tui = { version = "0.15.0", features = ["crossterm"], default-features = false }
+ crossterm = "0.20"
+ anyhow = "1.0.38"
+ unicode-width = "0.1"
+-sqlx = { version = "0.5.6", features = ["mysql", "postgres", "sqlite", "chrono", "runtime-tokio-rustls", "decimal", "json"], default-features = false }
++sqlx = { version = "0.5.13", features = ["mysql", "postgres", "sqlite", "chrono", "runtime-tokio-rustls", "decimal", "json"], default-features = false }
+ chrono = "0.4"
+ tokio = { version = "1.11.0", features = ["full"] }
+ futures = "0.3.5"
diff --git a/pkgs/by-name/go/godns/package.nix b/pkgs/by-name/go/godns/package.nix
index e2dd4669a122b..1bf3dbd2cf710 100644
--- a/pkgs/by-name/go/godns/package.nix
+++ b/pkgs/by-name/go/godns/package.nix
@@ -54,7 +54,7 @@ buildGoModule rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A dynamic DNS client tool supports AliDNS, Cloudflare, Google Domains, DNSPod, HE.net & DuckDNS & DreamHost, etc";
+    description = "Dynamic DNS client tool supports AliDNS, Cloudflare, Google Domains, DNSPod, HE.net & DuckDNS & DreamHost, etc";
     homepage = "https://github.com/TimothyYe/godns";
     changelog = "https://github.com/TimothyYe/godns/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/by-name/go/gofumpt/package.nix b/pkgs/by-name/go/gofumpt/package.nix
index beb39d8179e97..f2b0875a3e6c5 100644
--- a/pkgs/by-name/go/gofumpt/package.nix
+++ b/pkgs/by-name/go/gofumpt/package.nix
@@ -41,7 +41,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A stricter gofmt";
+    description = "Stricter gofmt";
     homepage = "https://github.com/mvdan/gofumpt";
     changelog = "https://github.com/mvdan/gofumpt/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/pkgs/by-name/go/gol/package.nix b/pkgs/by-name/go/gol/package.nix
new file mode 100644
index 0000000000000..050fee242f6c7
--- /dev/null
+++ b/pkgs/by-name/go/gol/package.nix
@@ -0,0 +1,44 @@
+{ lib, maven, fetchFromGitHub, makeWrapper, jre }:
+
+maven.buildMavenPackage rec {
+  pname = "gol";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "clarisma";
+    repo = "gol-tool";
+    rev = version;
+    hash = "sha256-F/tMRD+nWn/fRPX7cTan371zlOTxh7oR98wREmokULo=";
+  };
+
+  mvnHash = "sha256-b0nkp23gv4kejac/xrvm3xWo3Z8if7zveNUHBg7ZBm4=";
+  mvnParameters = "compile assembly:single -Dmaven.test.skip=true";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{bin,lib}
+    cp /build/source/target/gol-tool-${version}-jar-with-dependencies.jar $out/lib/gol-tool.jar
+
+    makeWrapper ${jre}/bin/java $out/bin/gol \
+      --add-flags "-cp $out/lib/gol-tool.jar" \
+      --add-flags "com.geodesk.gol.GolTool"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Command-line utility for creating and managing Geographic Object Libraries";
+    longDescription = ''
+      Use the GOL command-line utility to:
+      - build and maintain Geographic Object Libraries (GeoDesk's compact database format for OpenStreetMap features)
+      - perform GOQL queries and export the results in a variety of formats.
+    '';
+    homepage = "https://docs.geodesk.com/gol";
+    license = licenses.agpl3Only;
+    maintainers = [ maintainers.starsep ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/by-name/go/golink/package.nix b/pkgs/by-name/go/golink/package.nix
index d71e3df66339b..f48b80aeb5392 100644
--- a/pkgs/by-name/go/golink/package.nix
+++ b/pkgs/by-name/go/golink/package.nix
@@ -23,7 +23,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "A private shortlink service for tailnets";
+    description = "Private shortlink service for tailnets";
     homepage = "https://github.com/tailscale/golink";
     license = licenses.bsd3;
     maintainers = with maintainers; [ fab ];
diff --git a/pkgs/by-name/go/goofcord/package.nix b/pkgs/by-name/go/goofcord/package.nix
index dda5986272d6a..57819ebfbc0f8 100644
--- a/pkgs/by-name/go/goofcord/package.nix
+++ b/pkgs/by-name/go/goofcord/package.nix
@@ -4,7 +4,7 @@
   fetchurl,
   autoPatchelfHook,
   dpkg,
-  makeBinaryWrapper,
+  makeShellWrapper,
   wrapGAppsHook3,
   alsa-lib,
   at-spi2-atk,
@@ -39,7 +39,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "goofcord";
-  version = "1.4.2";
+  version = "1.4.3";
 
   src =
     let
@@ -48,11 +48,11 @@ stdenv.mkDerivation (finalAttrs: {
     {
       x86_64-linux = fetchurl {
         url = "${base}/v${finalAttrs.version}/GoofCord-${finalAttrs.version}-linux-amd64.deb";
-        hash = "sha256-fUP/se3hOhs+aAoew25YhRyxnodYPrgqN68RIg1A1Kw=";
+        hash = "sha256-XO/T5O6+hJ6QT8MCVorrdXPZZlrywa6u0UKPk9WIQBE=";
       };
       aarch64-linux = fetchurl {
         url = "${base}/v${finalAttrs.version}/GoofCord-${finalAttrs.version}-linux-arm64.deb";
-        hash = "sha256-hVpXmBSIgoON683f/sRtmpHwqxcO6IrFCCRPZjsUqjw=";
+        hash = "sha256-4mJ3kDQ+eh9LnyzxyNYvd2hMmgiJtBMXKup7ILlHk0Y=";
       };
     }
     .${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
@@ -60,7 +60,7 @@ stdenv.mkDerivation (finalAttrs: {
   nativeBuildInputs = [
     autoPatchelfHook
     dpkg
-    makeBinaryWrapper
+    makeShellWrapper
     wrapGAppsHook3
   ];
 
@@ -120,8 +120,9 @@ stdenv.mkDerivation (finalAttrs: {
     cp -R "usr/share" "$out/share"
     chmod -R g-w "$out"
 
-    # Wrap the startup command
-    makeBinaryWrapper $out/opt/GoofCord/goofcord $out/bin/goofcord \
+    # use makeShellWrapper (instead of the makeBinaryWrapper provided by wrapGAppsHook3) for proper shell variable expansion
+    # see https://github.com/NixOS/nixpkgs/issues/172583
+    makeShellWrapper $out/opt/GoofCord/goofcord $out/bin/goofcord \
       "''${gappsWrapperArgs[@]}" \
       --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=UseOzonePlatform,WaylandWindowDecorations,WebRTCPipeWireCapturer}}" \
diff --git a/pkgs/by-name/go/google-chrome/package.nix b/pkgs/by-name/go/google-chrome/package.nix
index bd0a31aadf3bb..15b444728b26e 100644
--- a/pkgs/by-name/go/google-chrome/package.nix
+++ b/pkgs/by-name/go/google-chrome/package.nix
@@ -64,11 +64,11 @@ let
 
 in stdenv.mkDerivation (finalAttrs: {
   pname = "google-chrome";
-  version = "125.0.6422.60";
+  version = "126.0.6478.114";
 
   src = fetchurl {
     url = "https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${finalAttrs.version}-1_amd64.deb";
-    hash = "sha256-Q0QMPthJLVquJp7fm6QN+lDb0quZsT7hv6KRXfdBMl4=";
+    hash = "sha256-CGqo6XnUwndOjODOxy+TCGxDXbAz4EwkZMOl7ZLFsAc=";
   };
 
   nativeBuildInputs = [ patchelf makeWrapper ];
@@ -155,7 +155,7 @@ in stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = {
-    description = "A freeware web browser developed by Google";
+    description = "Freeware web browser developed by Google";
     homepage = "https://www.google.com/chrome/browser/";
     license = lib.licenses.unfree;
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/by-name/go/gordonflashtool/package.nix b/pkgs/by-name/go/gordonflashtool/package.nix
index 63fecf970c716..7f49895739a26 100644
--- a/pkgs/by-name/go/gordonflashtool/package.nix
+++ b/pkgs/by-name/go/gordonflashtool/package.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "https://github.com/marmolak/GordonFlashTool";
-    description = "Toolset for Gotek SFR1M44-U100 formatted usb flash drives.";
+    description = "Toolset for Gotek SFR1M44-U100 formatted usb flash drives";
     maintainers = with lib.maintainers; [ marmolak ];
     license = lib.licenses.bsd3;
     platforms = lib.platforms.all;
diff --git a/pkgs/by-name/go/gosmee/package.nix b/pkgs/by-name/go/gosmee/package.nix
index 239bda90bd771..5ae4b5d8dc8b2 100644
--- a/pkgs/by-name/go/gosmee/package.nix
+++ b/pkgs/by-name/go/gosmee/package.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "gosmee";
-  version = "0.21.0";
+  version = "0.22.1";
 
   src = fetchFromGitHub {
     owner = "chmouel";
     repo = "gosmee";
     rev = "v${version}";
-    sha256 = "sha256-VNBz6roula/YlsYMM1kjQT3TLuQ86/MESzNNkEf/92M=";
+    sha256 = "sha256-UnGzPkbw7x8l1+9xEXFiJZFzJT5yu7MCgPKkKzaFqkk=";
   };
   vendorHash = null;
 
diff --git a/pkgs/by-name/go/goss/package.nix b/pkgs/by-name/go/goss/package.nix
index 5501d07e134fe..672800e410d4d 100644
--- a/pkgs/by-name/go/goss/package.nix
+++ b/pkgs/by-name/go/goss/package.nix
@@ -14,25 +14,23 @@
 
 buildGoModule rec {
   pname = "goss";
-
-  # Don't forget to update dgoss to the same version.
-  version = "0.4.6";
+  version = "0.4.7";
 
   src = fetchFromGitHub {
     owner = "goss-org";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-4LJD70Y6nxRWdcaPe074iP2MVUMDgoTOwWbC1JecVcI=";
+    hash = "sha256-KP0i+ePmkx43MdokVQO3CvTsdIFO7rCWLd8vJVC9Qf0=";
   };
 
-  vendorHash = "sha256-5/vpoJZu/swNwQQXtW6wuEVCtOq6HsbFywuipaiwHfs=";
+  vendorHash = "sha256-VLIDAlLO6COGDKDN12bYIBluFVgqPEmm8QRfSNPfLJY=";
 
   CGO_ENABLED = 0;
 
   ldflags = [
     "-s"
     "-w"
-    "-X main.version=v${version}"
+    "-X github.com/goss-org/goss/util.Version=v${version}"
   ];
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/by-name/go/got/package.nix b/pkgs/by-name/go/got/package.nix
index d6f5629e3cd6c..7faf1ff013a5a 100644
--- a/pkgs/by-name/go/got/package.nix
+++ b/pkgs/by-name/go/got/package.nix
@@ -17,11 +17,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "got";
-  version = "0.99";
+  version = "0.100";
 
   src = fetchurl {
     url = "https://gameoftrees.org/releases/portable/got-portable-${finalAttrs.version}.tar.gz";
-    hash = "sha256-rqQINToCsuOtm00bdgeQAmmvl5htQJmMV/EKzfD6Hjg=";
+    hash = "sha256-/DqKIGf/aZ09aL/rB7te+AauHmJ+mOTrVEbkqT9WUBI=";
   };
 
   nativeBuildInputs = [ pkg-config bison ]
diff --git a/pkgs/by-name/go/govers/package.nix b/pkgs/by-name/go/govers/package.nix
new file mode 100644
index 0000000000000..eb483438acc08
--- /dev/null
+++ b/pkgs/by-name/go/govers/package.nix
@@ -0,0 +1,38 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+}:
+
+buildGoModule {
+  pname = "govers";
+  version = "0-unstable-2016-06-23";
+
+  src = fetchFromGitHub {
+    owner = "rogpeppe";
+    repo = "govers";
+    rev = "77fd787551fc5e7ae30696e009e334d52d2d3a43";
+    sha256 = "sha256-lpc8wFKAB+A8mBm9q3qNzTM8ktFS1MYdIvZVFP0eiIs=";
+  };
+
+  vendorHash = null;
+
+  postPatch = ''
+    go mod init github.com/rogpeppe/govers
+  '';
+
+  dontRenameImports = true;
+
+  doCheck = false; # fails, silently
+
+  meta = {
+    description = "Tool for rewriting Go import paths";
+    homepage = "https://github.com/rogpeppe/govers";
+    license = lib.licenses.bsd3;
+    mainProgram = "govers";
+    maintainers = with lib.maintainers; [
+      luftmensch-luftmensch
+      urandom
+    ];
+  };
+}
diff --git a/pkgs/by-name/gp/gpscorrelate/package.nix b/pkgs/by-name/gp/gpscorrelate/package.nix
index e50f160e54156..2bbd2a9850e49 100644
--- a/pkgs/by-name/gp/gpscorrelate/package.nix
+++ b/pkgs/by-name/gp/gpscorrelate/package.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
   installTargets = [ "install" "install-po" "install-desktop-file" ];
 
   meta = with lib; {
-    description = "A GPS photo correlation tool, to add EXIF geotags";
+    description = "GPS photo correlation tool, to add EXIF geotags";
 
     longDescription = ''
       Digital cameras are cool.  So is GPS.  And, EXIF tags are really
diff --git a/pkgs/applications/misc/gpsprune/default.nix b/pkgs/by-name/gp/gpsprune/package.nix
index 44e96cb9085a9..10975337b66e2 100644
--- a/pkgs/applications/misc/gpsprune/default.nix
+++ b/pkgs/by-name/gp/gpsprune/package.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gpsprune";
-  version = "24";
+  version = "24.1";
 
   src = fetchurl {
     url = "https://activityworkshop.net/software/gpsprune/gpsprune_${version}.jar";
-    sha256 = "sha256-gMwTdwYjYJt1j5MpHw6UD1wqmF7q3ikzjVSOGakIP30=";
+    sha256 = "sha256-k7aRuz/FOqQe2C0luiUwoFxnIvgM6opwsGZV7+hxJSM=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/by-name/gp/gpt4all/package.nix b/pkgs/by-name/gp/gpt4all/package.nix
index 40fe6a88322f6..93524bd30340b 100644
--- a/pkgs/by-name/gp/gpt4all/package.nix
+++ b/pkgs/by-name/gp/gpt4all/package.nix
@@ -1,4 +1,5 @@
 { lib
+, config
 , stdenv
 , fetchFromGitHub
 , cmake
@@ -7,15 +8,17 @@
 , shaderc
 , vulkan-headers
 , wayland
+, cudaSupport ? config.cudaSupport
+, cudaPackages ? { }
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gpt4all";
-  version = "2.7.5";
+  version = "2.8.0";
 
   src = fetchFromGitHub {
     fetchSubmodules = true;
-    hash = "sha256-i/T6gk8ICneW624008eiStgYNv5CE8w0Yx8knk57EFw=";
+    hash = "sha256-aSz37+1K26Xizf4cpV45a2DnSsl959VQok/ppFRk/hs=";
     owner = "nomic-ai";
     repo = "gpt4all";
     rev = "v${finalAttrs.version}";
@@ -26,6 +29,8 @@ stdenv.mkDerivation (finalAttrs: {
   nativeBuildInputs = [
     cmake
     qt6.wrapQtAppsHook
+  ] ++ lib.optionals cudaSupport [
+    cudaPackages.cuda_nvcc
   ];
 
   buildInputs = [
@@ -39,12 +44,23 @@ stdenv.mkDerivation (finalAttrs: {
     shaderc
     vulkan-headers
     wayland
-  ];
+  ] ++ lib.optionals cudaSupport (
+      with cudaPackages;
+      [
+        cuda_cccl.dev
+        cuda_cudart.dev
+        cuda_cudart.lib
+        cuda_cudart.static
+        libcublas.dev
+        libcublas.lib
+      ]);
 
   cmakeFlags = [
     "-DKOMPUTE_OPT_USE_BUILT_IN_VULKAN_HEADER=OFF"
     "-DKOMPUTE_OPT_DISABLE_VULKAN_VERSION_CHECK=ON"
     "-DKOMPUTE_OPT_USE_BUILT_IN_FMT=OFF"
+  ] ++ lib.optionals (!cudaSupport) [
+    "-DLLMODEL_CUDA=OFF"
   ];
 
   postInstall = ''
@@ -59,7 +75,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     changelog = "https://github.com/nomic-ai/gpt4all/releases/tag/v${finalAttrs.version}";
-    description = "A free-to-use, locally running, privacy-aware chatbot. No GPU or internet required";
+    description = "Free-to-use, locally running, privacy-aware chatbot. No GPU or internet required";
     homepage = "https://github.com/nomic-ai/gpt4all";
     license = lib.licenses.mit;
     mainProgram = "gpt4all";
diff --git a/pkgs/by-name/gp/gptscript/package.nix b/pkgs/by-name/gp/gptscript/package.nix
index f76c765987425..8d4928891b370 100644
--- a/pkgs/by-name/gp/gptscript/package.nix
+++ b/pkgs/by-name/gp/gptscript/package.nix
@@ -2,19 +2,24 @@
   lib,
   buildGo122Module,
   fetchFromGitHub,
+  darwin,
+  stdenv,
 }:
 buildGo122Module rec {
   pname = "gptscript";
-  version = "0.5.0";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "gptscript-ai";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-teZQhGYKJ5Ma5by3Wug5B1hAV1tox94MF586ZeEXp6o=";
+    hash = "sha256-BqGoIDFquVMGMkKe2IO3Se4IeqgVSqjv00gfhJf8evs=";
   };
 
-  vendorHash = "sha256-0irUcEomQzo9+vFJEk28apLNuJdsX1RHEqB7T88X7Ks=";
+  vendorHash = "sha256-oI2agy8FOyoNl0zQzvXMsHY5tG1QNvkQf+n2GVGyNz8=";
+
+  propagatedBuildInputs = with darwin;
+    lib.optionals stdenv.isDarwin [Security];
 
   ldflags = [
     "-s"
@@ -26,9 +31,9 @@ buildGo122Module rec {
   doCheck = false;
 
   meta = with lib; {
-    homepage = "https://gptscript.ai";
+    homepage = "https://github.com/gptscript-ai/gptscript";
     changelog = "https://github.com/gptscript-ai/gptscript/releases/tag/v{version}";
-    description = "Natural Language Programming";
+    description = "Build AI assistants that interact with your systems";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ jamiemagee ];
     mainProgram = "gptscript";
diff --git a/pkgs/by-name/gp/gpustat/package.nix b/pkgs/by-name/gp/gpustat/package.nix
index 3492775b3be0b..d98ff336ed399 100644
--- a/pkgs/by-name/gp/gpustat/package.nix
+++ b/pkgs/by-name/gp/gpustat/package.nix
@@ -61,7 +61,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A simple utility for viewing GPU utilization";
+    description = "Simple utility for viewing GPU utilization";
     homepage = "https://github.com/arduano/gpustat";
     license = licenses.asl20;
     maintainers = with maintainers; [ arduano ];
diff --git a/pkgs/by-name/gr/grafana-alloy/package.nix b/pkgs/by-name/gr/grafana-alloy/package.nix
new file mode 100644
index 0000000000000..66d6f632bcbe5
--- /dev/null
+++ b/pkgs/by-name/gr/grafana-alloy/package.nix
@@ -0,0 +1,127 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchYarnDeps
+, buildGoModule
+, systemd
+, yarn
+, fixup-yarn-lock
+, nodejs
+, grafana-alloy
+, nixosTests
+, nix-update-script
+, installShellFiles
+, testers
+}:
+
+buildGoModule rec {
+  pname = "grafana-alloy";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "grafana";
+    repo = "alloy";
+    hash = "sha256-jaOQG+QkVi10lUp6izvSGE9j76ULc4yKbxdDhLHykYI=";
+  };
+
+  proxyVendor = true;
+  vendorHash = "sha256-6Xc2siImM1Dl716uGhtAGcn+PO2OLuYLxanzg8Ho6SA=";
+
+  nativeBuildInputs = [ fixup-yarn-lock yarn nodejs installShellFiles ];
+
+  ldflags =
+    let
+      prefix = "github.com/grafana/alloy/internal/build";
+    in
+    [
+      "-s"
+      "-w"
+      # https://github.com/grafana/alloy/blob/3201389252d2c011bee15ace0c9f4cdbcb978f9f/Makefile#L110
+      "-X ${prefix}.Branch=v${version}"
+      "-X ${prefix}.Version=${version}"
+      "-X ${prefix}.Revision=v${version}"
+      "-X ${prefix}.BuildUser=nix"
+      "-X ${prefix}.BuildDate=1970-01-01T00:00:00Z"
+    ];
+
+  tags = [
+    "netgo"
+    "builtinassets"
+    "promtail_journal_enabled"
+  ];
+
+  subPackages = [
+    "."
+  ];
+
+  yarnOfflineCache = fetchYarnDeps {
+    yarnLock = "${src}/internal/web/ui/yarn.lock";
+    sha256 = "sha256-o3vCI9GHCr4SjYsiT0wQ4mN76QeAGwOfLVCzGp7NMf4=";
+  };
+
+  preBuild = ''
+    pushd internal/web/ui
+
+    # Yarn wants a real home directory to write cache, config, etc to
+    export HOME=$NIX_BUILD_TOP/fake_home
+
+    fixup-yarn-lock yarn.lock
+    yarn config --offline set yarn-offline-mirror ${yarnOfflineCache}
+    yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
+
+    patchShebangs node_modules/
+
+    yarn --offline build
+
+    popd
+  '';
+
+  # uses go-systemd, which uses libsystemd headers
+  # https://github.com/coreos/go-systemd/issues/351
+  NIX_CFLAGS_COMPILE = lib.optionals stdenv.isLinux [ "-I${lib.getDev systemd}/include" ];
+
+  checkFlags = [
+    "-tags nonetwork" # disable network tests
+    "-tags nodocker" # disable docker tests
+  ];
+
+  # go-systemd uses libsystemd under the hood, which does dlopen(libsystemd) at
+  # runtime.
+  # Add to RUNPATH so it can be found.
+  postFixup = lib.optionalString stdenv.isLinux ''
+    patchelf \
+      --set-rpath "${lib.makeLibraryPath [ (lib.getLib systemd) ]}:$(patchelf --print-rpath $out/bin/alloy)" \
+      $out/bin/alloy
+  '';
+
+  postInstall = ''
+    installShellCompletion --cmd alloy \
+      --bash <($out/bin/alloy completion bash) \
+      --fish <($out/bin/alloy completion fish) \
+      --zsh <($out/bin/alloy completion zsh)
+  '';
+
+  passthru = {
+    tests = {
+      inherit (nixosTests) alloy;
+      version = testers.testVersion {
+        version = "v${version}";
+        command = "${lib.getExe grafana-alloy} --version";
+        package = grafana-alloy;
+      };
+    };
+    updateScript = nix-update-script { };
+    # alias for nix-update to be able to find and update this attribute
+    offlineCache = yarnOfflineCache;
+  };
+
+  meta = with lib; {
+    description = "Open source OpenTelemetry Collector distribution with built-in Prometheus pipelines and support for metrics, logs, traces, and profiles";
+    mainProgram = "alloy";
+    license = licenses.asl20;
+    homepage = "https://grafana.com/oss/alloy";
+    maintainers = with maintainers; [ flokli emilylange hbjydev ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/pkgs/by-name/gr/grafana-kiosk/package.nix b/pkgs/by-name/gr/grafana-kiosk/package.nix
index d9f21655d1cc8..452ec1977a9ff 100644
--- a/pkgs/by-name/gr/grafana-kiosk/package.nix
+++ b/pkgs/by-name/gr/grafana-kiosk/package.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "grafana-kiosk";
-  version = "1.0.6";
+  version = "1.0.7";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = "grafana-kiosk";
     rev = "v${version}";
-    hash = "sha256-KXEbhRFD++VeVI1Fbrai+IYb3lyGKs+plYPoKIZD0JM=";
+    hash = "sha256-JTz3EaedJFWE3YqsBLjKH4hWI7+dNeMlp0sZ2kW8IR8=";
   };
 
-  vendorHash = "sha256-sXaxyPNuHDUOkYcWYm94YvJmr1mGe4HdzttWrNSK2Pw=";
+  vendorHash = "sha256-8sxfbSj0Jq5f0oJoe8PtP72PDWvLzgOeRiP7I/Pfam4=";
 
   nativeBuildInputs = [ makeWrapper ];
   postFixup = ''
diff --git a/pkgs/by-name/gr/graphicsmagick/imagemagick-compat.nix b/pkgs/by-name/gr/graphicsmagick/imagemagick-compat.nix
index 9e278da037bc8..4d25a2aa0e112 100644
--- a/pkgs/by-name/gr/graphicsmagick/imagemagick-compat.nix
+++ b/pkgs/by-name/gr/graphicsmagick/imagemagick-compat.nix
@@ -43,6 +43,6 @@ stdenvNoCC.mkDerivation {
   '';
 
   meta = graphicsmagick.meta // {
-    description = "A repack of GraphicsMagick that provides compatibility with ImageMagick interfaces";
+    description = "Repack of GraphicsMagick that provides compatibility with ImageMagick interfaces";
   };
 }
diff --git a/pkgs/by-name/gr/graphite-cli/package-lock.json b/pkgs/by-name/gr/graphite-cli/package-lock.json
index 72a0fa9474847..cd4e46f3fb420 100644
--- a/pkgs/by-name/gr/graphite-cli/package-lock.json
+++ b/pkgs/by-name/gr/graphite-cli/package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "@withgraphite/graphite-cli",
-  "version": "1.3.4",
+  "version": "1.3.6",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "@withgraphite/graphite-cli",
-      "version": "1.3.4",
+      "version": "1.3.6",
       "hasInstallScript": true,
       "license": "None",
       "dependencies": {
@@ -126,17 +126,6 @@
         "node": ">=8"
       }
     },
-    "node_modules/lru-cache": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
-      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-      "dependencies": {
-        "yallist": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
     "node_modules/require-directory": {
       "version": "2.1.1",
       "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -146,12 +135,9 @@
       }
     },
     "node_modules/semver": {
-      "version": "7.6.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
-      "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-      "dependencies": {
-        "lru-cache": "^6.0.0"
-      },
+      "version": "7.6.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+      "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
       "bin": {
         "semver": "bin/semver.js"
       },
@@ -238,11 +224,6 @@
         "node": ">=10"
       }
     },
-    "node_modules/yallist": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
-    },
     "node_modules/yargs": {
       "version": "17.7.2",
       "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
diff --git a/pkgs/by-name/gr/graphite-cli/package.nix b/pkgs/by-name/gr/graphite-cli/package.nix
index df4f95b88bb50..7e5b98ebab867 100644
--- a/pkgs/by-name/gr/graphite-cli/package.nix
+++ b/pkgs/by-name/gr/graphite-cli/package.nix
@@ -7,14 +7,14 @@
 
 buildNpmPackage rec {
   pname = "graphite-cli";
-  version = "1.3.4";
+  version = "1.3.8";
 
   src = fetchurl {
     url = "https://registry.npmjs.org/@withgraphite/graphite-cli/-/graphite-cli-${version}.tgz";
-    hash = "sha256-Rc/dj3r3EpMbxx9rYj4kXnstmUGLR46U+7v6n1jSaiQ=";
+    hash = "sha256-FJaDSg+scrmqYkCGCrb+yT8TtKT09xu6BS5AjTlfhzo=";
   };
 
-  npmDepsHash = "sha256-w9d96SMLISPua9LMZscDjL7L8mGPO1RGyNjg8eU40hw=";
+  npmDepsHash = "sha256-WyV0f5thWG7hg7Vm1UUIlcFCgP83HfXQFBUVHcQdjRo=";
 
   postPatch = ''
     ln -s ${./package-lock.json} package-lock.json
diff --git a/pkgs/by-name/gr/graphqlmaker/package.nix b/pkgs/by-name/gr/graphqlmaker/package.nix
new file mode 100644
index 0000000000000..265b63112dfe5
--- /dev/null
+++ b/pkgs/by-name/gr/graphqlmaker/package.nix
@@ -0,0 +1,33 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+}:
+
+buildGoModule rec {
+  pname = "graphqlmaker";
+  version = "0-unstable-2024-05-18";
+
+  src = fetchFromGitHub {
+    owner = "xssdoctor";
+    repo = "graphqlMaker";
+    rev = "ff884ce39156d8458da35c0b0b5d7eb1e1146bb5";
+    hash = "sha256-H3AFCS1WoeVXUdXBV1JKrGIraJP/ql6XG++PxmWUico=";
+  };
+
+  vendorHash = "sha256-1mDOqTsQ3kHs3MEWlRcdqhjIRul7um2mfBAxObhoSlE=";
+
+  ldflags = [
+    "-s"
+    "-w"
+  ];
+
+  meta = with lib; {
+    description = "Tool to find graphql queries in Javascript files";
+    homepage = "https://github.com/xssdoctor/graphqlMaker";
+    # https://github.com/xssdoctor/graphqlMaker/issues/1
+    license = licenses.unfree;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "graphqlMaker";
+  };
+}
diff --git a/pkgs/by-name/gr/grimblast/package.nix b/pkgs/by-name/gr/grimblast/package.nix
index 9f0d29ff74a2d..bd6c6301a1d0e 100644
--- a/pkgs/by-name/gr/grimblast/package.nix
+++ b/pkgs/by-name/gr/grimblast/package.nix
@@ -52,7 +52,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A helper for screenshots within Hyprland, based on grimshot";
+    description = "Helper for screenshots within Hyprland, based on grimshot";
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ donovanglover ];
diff --git a/pkgs/by-name/gr/grun/package.nix b/pkgs/by-name/gr/grun/package.nix
index 54b6a5715ddbb..145eba0a6539f 100644
--- a/pkgs/by-name/gr/grun/package.nix
+++ b/pkgs/by-name/gr/grun/package.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
   ];
 
   meta = {
-    description = "An application launcher written in C and using GTK for the interface";
+    description = "Application launcher written in C and using GTK for the interface";
     mainProgram = "grun";
     homepage = "https://github.com/lrgc/grun";
     platforms = lib.platforms.linux;
diff --git a/pkgs/by-name/gr/gruvbox-gtk-theme/package.nix b/pkgs/by-name/gr/gruvbox-gtk-theme/package.nix
index 042f23bebba35..cba18f06de6d8 100644
--- a/pkgs/by-name/gr/gruvbox-gtk-theme/package.nix
+++ b/pkgs/by-name/gr/gruvbox-gtk-theme/package.nix
@@ -1,27 +1,24 @@
-{ lib
-, stdenvNoCC
-, fetchFromGitHub
-, gnome-themes-extra
-, gtk-engine-murrine
+{
+  lib,
+  stdenvNoCC,
+  fetchFromGitHub,
+  gnome-themes-extra,
+  gtk-engine-murrine,
 }:
 stdenvNoCC.mkDerivation {
   pname = "gruvbox-gtk-theme";
-  version = "unstable-2023-05-28";
+  version = "0-unstable-2024-06-12";
 
   src = fetchFromGitHub {
     owner = "Fausto-Korpsvart";
     repo = "Gruvbox-GTK-Theme";
-    rev = "c0b7fb501938241a3b6b5734f8cb1f0982edc6b4";
-    hash = "sha256-Y+6HuWaVkNqlYc+w5wLkS2LpKcDtpeOpdHnqBmShm5Q=";
+    rev = "1a0f6672283e1846ec307addd4647f2daad29402";
+    hash = "sha256-bbL4bHAdkmReogUQML9sMpSallZ7wrgbK3R64xiAYRo=";
   };
 
-  propagatedUserEnvPkgs = [
-    gtk-engine-murrine
-  ];
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
-  buildInputs = [
-    gnome-themes-extra
-  ];
+  buildInputs = [ gnome-themes-extra ];
 
   dontBuild = true;
 
@@ -32,11 +29,14 @@ stdenvNoCC.mkDerivation {
     runHook postInstall
   '';
 
-  meta = with lib; {
-    description = "A Gtk theme based on the Gruvbox colour pallete";
+  meta = {
+    description = "Gtk theme based on the Gruvbox colour pallete";
     homepage = "https://www.pling.com/p/1681313/";
-    license = licenses.gpl3Only;
-    platforms = platforms.unix;
-    maintainers = [ maintainers.math-42 ];
+    license = lib.licenses.gpl3Only;
+    platforms = lib.platforms.unix;
+    maintainers = with lib.maintainers; [
+      luftmensch-luftmensch
+      math-42
+    ];
   };
 }
diff --git a/pkgs/by-name/gr/gruvbox-plus-icons/package.nix b/pkgs/by-name/gr/gruvbox-plus-icons/package.nix
index 7525953259311..e244c4856f30c 100644
--- a/pkgs/by-name/gr/gruvbox-plus-icons/package.nix
+++ b/pkgs/by-name/gr/gruvbox-plus-icons/package.nix
@@ -10,13 +10,13 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "gruvbox-plus-icons";
-  version = "5.3.1";
+  version = "5.4.0";
 
   src = fetchFromGitHub {
     owner = "SylEleuth";
     repo = "gruvbox-plus-icon-pack";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-Y+wNmZTVWsg6Hn+fak71jnoZ72Cz/8YYpGWkKr4+C9Q=";
+    sha256 = "sha256-mtOYoaejK6ZGPcM4IxXs6l6oXGP9WSMw5N7JIF3n67s=";
   };
 
   nativeBuildInputs = [ gtk3 ];
diff --git a/pkgs/by-name/gr/grype/package.nix b/pkgs/by-name/gr/grype/package.nix
index 25cf7d472839b..dd851078933cc 100644
--- a/pkgs/by-name/gr/grype/package.nix
+++ b/pkgs/by-name/gr/grype/package.nix
@@ -9,13 +9,13 @@
 
 buildGoModule rec {
   pname = "grype";
-  version = "0.77.4";
+  version = "0.79.0";
 
   src = fetchFromGitHub {
     owner = "anchore";
     repo = "grype";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xD6G4DGimmYVVCZHpXlvC24zaRwpRpQ0iRc4Yxac3O8=";
+    hash = "sha256-fFiZ6GOKaHcBnxakhd3Mdm1hHmfAwyq/ScBNUwrm0vw=";
     # populate values that require us to use git. By doing this in postFetch we
     # can delete .git afterwards and maintain better reproducibility of the src.
     leaveDotGit = true;
@@ -30,7 +30,7 @@ buildGoModule rec {
 
   proxyVendor = true;
 
-  vendorHash = "sha256-WosgdN49MEXSfK42l4em+Cpk8iAQphf9KOhY0mgBQ7U=";
+  vendorHash = "sha256-PIs+6P7w6vjOOpH96KEdG6tHRCU7ijtdyS/1C77BPDw=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -93,6 +93,11 @@ buildGoModule rec {
     substituteInPlace grype/presenter/sarif/presenter_test.go \
       --replace-fail "Test_SarifIsValid" "SkipTest_SarifIsValid"
 
+    # May fail on NixOS, probably due bug in how syft handles tmpfs.
+    # See https://github.com/anchore/grype/issues/1822
+    substituteInPlace grype/distro/distro_test.go \
+      --replace-fail "Test_NewDistroFromRelease_Coverage" "SkipTest_NewDistroFromRelease_Coverage"
+
     # segfault
     rm grype/db/v5/namespace/cpe/namespace_test.go
   '';
diff --git a/pkgs/by-name/gt/gtimelog/package.nix b/pkgs/by-name/gt/gtimelog/package.nix
index 471a0fd890b89..d37e2a60eb3f2 100644
--- a/pkgs/by-name/gt/gtimelog/package.nix
+++ b/pkgs/by-name/gt/gtimelog/package.nix
@@ -44,7 +44,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A time tracking app";
+    description = "Time tracking app";
     mainProgram = "gtimelog";
     longDescription = ''
       GTimeLog is a small time tracking application for GNOME.
diff --git a/pkgs/by-name/gt/gtk-session-lock/package.nix b/pkgs/by-name/gt/gtk-session-lock/package.nix
index 713c9aa3c7603..e8bafe1a06df7 100644
--- a/pkgs/by-name/gt/gtk-session-lock/package.nix
+++ b/pkgs/by-name/gt/gtk-session-lock/package.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
   strictDeps = true;
 
   meta = {
-    description = "A library to use GTK 3 to build screen lockers using ext-session-lock-v1 protocol";
+    description = "Library to use GTK 3 to build screen lockers using ext-session-lock-v1 protocol";
     homepage = "https://github.com/Cu3PO42/gtk-session-lock";
     # The author stated "GTK Session Lock is licensed under the GNU General
     # Public License version 3.0 or any later version approved by me (Cu3PO42)."
diff --git a/pkgs/by-name/gt/gtkclipblock/package.nix b/pkgs/by-name/gt/gtkclipblock/package.nix
index a4d5400af6fe1..a2489aed3990b 100644
--- a/pkgs/by-name/gt/gtkclipblock/package.nix
+++ b/pkgs/by-name/gt/gtkclipblock/package.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation {
   dontUseCmakeConfigure = true;
 
   meta = with lib; {
-    description = "A LD_PRELOAD hack to prevent GTK programs from interacting with the primary clipboard";
+    description = "LD_PRELOAD hack to prevent GTK programs from interacting with the primary clipboard";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ uartman ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/by-name/gt/gtkhash/package.nix b/pkgs/by-name/gt/gtkhash/package.nix
index 87cfcf374bd07..1b14cf302da9f 100644
--- a/pkgs/by-name/gt/gtkhash/package.nix
+++ b/pkgs/by-name/gt/gtkhash/package.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
 
   strictDeps = true;
   meta = with lib; {
-    description = "A cross-platform desktop utility for computing message digests or checksums";
+    description = "Cross-platform desktop utility for computing message digests or checksums";
     homepage = "https://gtkhash.org";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ByteSudoer ];
diff --git a/pkgs/by-name/gt/gtklp/package.nix b/pkgs/by-name/gt/gtklp/package.nix
index c74b9f59644aa..dab4fac458441 100644
--- a/pkgs/by-name/gt/gtklp/package.nix
+++ b/pkgs/by-name/gt/gtklp/package.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://gtklp.sirtobi.com";
-    description = "A GTK-based graphical frontend for CUPS";
+    description = "GTK-based graphical frontend for CUPS";
     license = with lib.licenses; [ gpl2Only ];
     mainProgram = "gtklp";
     maintainers = with lib.maintainers; [ AndersonTorres ];
diff --git a/pkgs/by-name/gt/gtksheet/package.nix b/pkgs/by-name/gt/gtksheet/package.nix
index 5fd238f2e5310..2e799ea4a636e 100644
--- a/pkgs/by-name/gt/gtksheet/package.nix
+++ b/pkgs/by-name/gt/gtksheet/package.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = {
-    description = "A spreadsheet widget for GTK+";
+    description = "Spreadsheet widget for GTK+";
     homepage = "https://fpaquet.github.io/gtksheet/";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ wegank ];
diff --git a/pkgs/by-name/gt/gtrash/package.nix b/pkgs/by-name/gt/gtrash/package.nix
index fb354bada06c2..b23e99e4e52fb 100644
--- a/pkgs/by-name/gt/gtrash/package.nix
+++ b/pkgs/by-name/gt/gtrash/package.nix
@@ -40,7 +40,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A Trash CLI manager written in Go";
+    description = "Trash CLI manager written in Go";
     homepage = "https://github.com/umlx5h/gtrash";
     changelog = "https://github.com/umlx5h/gtrash/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/by-name/gu/guile-lzlib/package.nix b/pkgs/by-name/gu/guile-lzlib/package.nix
index 701c364da7129..21c9c6c53950b 100644
--- a/pkgs/by-name/gu/guile-lzlib/package.nix
+++ b/pkgs/by-name/gu/guile-lzlib/package.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   doCheck = !stdenv.isDarwin;
 
   meta = with lib; {
-    description = "A GNU Guile library providing bindings to lzlib";
+    description = "GNU Guile library providing bindings to lzlib";
     homepage = "https://notabug.org/guile-lzlib/guile-lzlib";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ foo-dogsquared ];
diff --git a/pkgs/development/guile-modules/guile-sdl/default.nix b/pkgs/by-name/gu/guile-sdl/package.nix
index 75ca3d8e4aa4d..83879b26f7db6 100644
--- a/pkgs/development/guile-modules/guile-sdl/default.nix
+++ b/pkgs/by-name/gu/guile-sdl/package.nix
@@ -1,60 +1,60 @@
-{ lib
-, stdenv
-, fetchurl
-, guile
-, lzip
-, pkg-config
-, SDL
-, SDL_image
-, SDL_mixer
-, SDL_ttf
-, buildEnv
+{
+  lib,
+  SDL,
+  SDL_image,
+  SDL_mixer,
+  SDL_ttf,
+  buildEnv,
+  fetchurl,
+  guile,
+  lzip,
+  pkg-config,
+  stdenv,
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "guile-sdl";
   version = "0.6.1";
 
   src = fetchurl {
-    url = "mirror://gnu/${pname}/${pname}-${version}.tar.lz";
+    url = "mirror://gnu/guile-sdl/guile-sdl-${finalAttrs.version}.tar.lz";
     hash = "sha256-/9sTTvntkRXck3FoRalROjqUQC8hkePtLTnHNZotKOE=";
   };
 
-  strictDeps = true;
-
   nativeBuildInputs = [
+    SDL
     guile
     lzip
     pkg-config
-    SDL
   ];
 
   buildInputs = [
-    guile
     (lib.getDev SDL)
-    SDL_image
-    SDL_mixer
-    SDL_ttf
+    (lib.getDev SDL_image)
+    (lib.getDev SDL_mixer)
+    (lib.getDev SDL_ttf)
+    guile
   ];
 
   makeFlags =
     let
       sdl-env = buildEnv {
         name = "sdl-env";
-        paths = buildInputs;
+        paths = finalAttrs.buildInputs;
       };
     in
     [
       "SDLMINUSI=-I${sdl-env}/include/SDL"
     ];
 
-  meta = with lib; {
+  strictDeps = true;
+
+  meta = {
     homepage = "https://www.gnu.org/software/guile-sdl/";
     description = "Guile bindings for SDL";
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ vyp ];
-    platforms = guile.meta.platforms;
-    # configure: error: *** SDL version  not found!
-    broken = stdenv.isDarwin;
+    license = lib.licenses.gpl3Plus;
+    maintainers = lib.teams.sdl.members
+                  ++ (with lib.maintainers; [ ]);
+    inherit (guile.meta) platforms;
   };
-}
+})
diff --git a/pkgs/by-name/gu/guile-zstd/package.nix b/pkgs/by-name/gu/guile-zstd/package.nix
index 6bb4451fa228d..70fea933eabbf 100644
--- a/pkgs/by-name/gu/guile-zstd/package.nix
+++ b/pkgs/by-name/gu/guile-zstd/package.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   doCheck = !stdenv.isDarwin;
 
   meta = with lib; {
-    description = "A GNU Guile library providing bindings to zstd";
+    description = "GNU Guile library providing bindings to zstd";
     homepage = "https://notabug.org/guile-zstd/guile-zstd";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ foo-dogsquared ];
diff --git a/pkgs/by-name/gu/gungnir/package.nix b/pkgs/by-name/gu/gungnir/package.nix
index 04f02865c4b9b..571a9e1ac7f79 100644
--- a/pkgs/by-name/gu/gungnir/package.nix
+++ b/pkgs/by-name/gu/gungnir/package.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "gungnir";
-  version = "1.0.8";
+  version = "1.0.9";
 
   src = fetchFromGitHub {
     owner = "g0ldencybersec";
     repo = "gungnir";
     rev = "v${version}";
-    hash = "sha256-k6fxAvUBAAcTHzdeGhekYhPpnS05jHq/7EqxafQfMio=";
+    hash = "sha256-A4MPRsUSeYwKlhCHByty6T33wEp/BopZMDWOnOqlQqQ=";
   };
 
   vendorHash = "sha256-r2aU59L0fnSdc/lpR04K/GQ1eZ7ihV+tKlyuS6sPX2o=";
@@ -19,7 +19,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "A command-line tool that continuously monitors certificate transparency (CT) logs for newly issued SSL/TLS certificates";
+    description = "Command-line tool that continuously monitors certificate transparency (CT) logs for newly issued SSL/TLS certificates";
     homepage = "https://github.com/g0ldencybersec/gungnir";
     license = licenses.mit;
     maintainers = with maintainers; [ cherrykitten ];
diff --git a/pkgs/by-name/ha/hachimarupop/package.nix b/pkgs/by-name/ha/hachimarupop/package.nix
index 3ebf82409a1cc..1097bc4386205 100644
--- a/pkgs/by-name/ha/hachimarupop/package.nix
+++ b/pkgs/by-name/ha/hachimarupop/package.nix
@@ -22,7 +22,7 @@ stdenvNoCC.mkDerivation {
 
   meta = {
     homepage = "https://github.com/noriokanisawa/HachiMaruPop";
-    description = "A cute, Japanese font";
+    description = "Cute, Japanese font";
     license = lib.licenses.ofl;
     maintainers = with lib.maintainers; [ AndersonTorres ];
     platforms = lib.platforms.all;
diff --git a/pkgs/by-name/ha/hacompanion/package.nix b/pkgs/by-name/ha/hacompanion/package.nix
index eeb1cd7fe8a2c..d9ad59aeabe79 100644
--- a/pkgs/by-name/ha/hacompanion/package.nix
+++ b/pkgs/by-name/ha/hacompanion/package.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "hacompanion";
-  version = "1.0.12";
+  version = "1.0.15";
 
   src = fetchFromGitHub {
     owner = "tobias-kuendig";
     repo = "hacompanion";
     rev = "v${version}";
-    hash = "sha256-3uPn139e8TyP0rE9hfRKw192YyexG+f3KmlHMmgCN7A=";
+    hash = "sha256-FR2IowbaHXr9x/eMt+NCuGusMwX2iVxPOuWEkhH2GFM=";
   };
 
   vendorHash = "sha256-ZZ8nxN+zUeFhSXyoHLMgzeFllnIkKdoVnbVK5KjrLEQ=";
diff --git a/pkgs/by-name/ha/hadolint-sarif/package.nix b/pkgs/by-name/ha/hadolint-sarif/package.nix
new file mode 100644
index 0000000000000..bf8f434296330
--- /dev/null
+++ b/pkgs/by-name/ha/hadolint-sarif/package.nix
@@ -0,0 +1,37 @@
+{
+  lib,
+  fetchFromGitHub,
+  rustPlatform,
+  hadolint-sarif,
+  testers,
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "hadolint-sarif";
+  version = "0.4.2";
+
+  src = fetchFromGitHub {
+    owner = "psastras";
+    repo = "sarif-rs";
+    rev = "hadolint-sarif-v${version}";
+    hash = "sha256-EzWzDeIeSJ11CVcVyAhMjYQJcKHnieRrFkULc5eXAno=";
+  };
+
+  cargoHash = "sha256-AMRL1XANyze8bJe3fdgZvBnl/NyuWP13jixixqiPmiw=";
+  cargoBuildFlags = [
+    "--package"
+    "hadolint-sarif"
+  ];
+  cargoTestFlags = cargoBuildFlags;
+
+  passthru = {
+    tests.version = testers.testVersion { package = hadolint-sarif; };
+  };
+
+  meta = {
+    description = "A CLI tool to convert hadolint diagnostics into SARIF";
+    homepage = "https://psastras.github.io/sarif-rs";
+    mainProgram = "hadolint-sarif";
+    maintainers = with lib.maintainers; [ getchoo ];
+    license = lib.licenses.mit;
+  };
+}
diff --git a/pkgs/by-name/ha/halo/package.nix b/pkgs/by-name/ha/halo/package.nix
index 998e1f3706989..e66027b8dc7fa 100644
--- a/pkgs/by-name/ha/halo/package.nix
+++ b/pkgs/by-name/ha/halo/package.nix
@@ -7,10 +7,10 @@
 }:
 stdenv.mkDerivation rec {
   pname = "halo";
-  version = "2.15.2";
+  version = "2.16.3";
   src = fetchurl {
     url = "https://github.com/halo-dev/halo/releases/download/v${version}/${pname}-${version}.jar";
-    hash = "sha256-BCcIDaWtn8OkI+GWs741nWgqyO8qlE9m2hZ3e+iViUI=";
+    hash = "sha256-sl2b9zKugnCEMHyvEqBWZPidoANth5gRfh34NAaqg7A=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/ha/hare/003-use-mailcap-for-mimetypes.patch b/pkgs/by-name/ha/hare/003-use-mailcap-for-mimetypes.patch
new file mode 100644
index 0000000000000..fad17d12cb9e3
--- /dev/null
+++ b/pkgs/by-name/ha/hare/003-use-mailcap-for-mimetypes.patch
@@ -0,0 +1,13 @@
+diff --git a/mime/system.ha b/mime/system.ha
+index 73ff3496..42e7b640 100644
+--- a/mime/system.ha
++++ b/mime/system.ha
+@@ -11,7 +11,7 @@ use strings;
+ use types;
+ 
+ // Path to the system MIME database.
+-export def SYSTEM_DB: str = "/etc/mime.types";
++export def SYSTEM_DB: str = "@mailcap@/etc/mime.types";
+ 
+ @init fn init() void = {
+ 	// Done in a separate function so we can discard errors here
diff --git a/pkgs/by-name/ha/hare/hook.nix b/pkgs/by-name/ha/hare/hook.nix
new file mode 100644
index 0000000000000..ef8fc0219e9ef
--- /dev/null
+++ b/pkgs/by-name/ha/hare/hook.nix
@@ -0,0 +1,56 @@
+{
+  hare,
+  lib,
+  makeSetupHook,
+  makeWrapper,
+  runCommand,
+  stdenv,
+  writeShellApplication,
+}:
+let
+  arch = stdenv.targetPlatform.uname.processor;
+  harePropagationInputs = builtins.attrValues { inherit (hare) harec qbe; };
+  hareWrappedScript = writeShellApplication {
+    # `name` MUST be `hare`, since its role is to replace the hare binary.
+    name = "hare";
+    runtimeInputs = [ hare ];
+    excludeShellChecks = [ "SC2086" ];
+    # ''${cmd:+"$cmd"} is used on the default case to keep the same behavior as
+    # the hare binary: If "$cmd" is passed directly and it's empty, the hare
+    # binary will treat it as an unrecognized command.
+    text = ''
+      readonly cmd="$1"
+      shift
+      case "$cmd" in
+        "test"|"run"|"build") exec hare "$cmd" $NIX_HAREFLAGS "$@" ;;
+        *) exec hare ''${cmd:+"$cmd"} "$@"
+      esac
+    '';
+  };
+  hareWrapper = runCommand "hare-wrapper" { nativeBuildInputs = [ makeWrapper ]; } ''
+    mkdir -p $out/bin
+    install ${lib.getExe hareWrappedScript} $out/bin/hare
+    makeWrapper ${lib.getExe hare} $out/bin/hare-native \
+      --inherit-argv0 \
+      --unset AR \
+      --unset LD \
+      --unset CC
+  '';
+in
+makeSetupHook {
+  name = "hare-hook";
+  # The propagation of `qbe` and `harec` (harePropagationInputs) is needed for
+  # build frameworks like `haredo`, which set the HAREC and QBE env vars to
+  # `harec` and `qbe` respectively. We use the derivations from the `hare`
+  # package to assure that there's no different behavior between the `hareHook`
+  # and `hare` packages.
+  propagatedBuildInputs = [ hareWrapper ] ++ harePropagationInputs;
+  substitutions = {
+    hare_unconditional_flags = "-q -a${arch}";
+    hare_stdlib = "${hare}/src/hare/stdlib";
+  };
+  meta = {
+    description = "Setup hook for the Hare compiler";
+    inherit (hare.meta) badPlatforms platforms;
+  };
+} ./setup-hook.sh
diff --git a/pkgs/by-name/ha/hare/mime-module-test.nix b/pkgs/by-name/ha/hare/mime-module-test.nix
new file mode 100644
index 0000000000000..073ae09e35570
--- /dev/null
+++ b/pkgs/by-name/ha/hare/mime-module-test.nix
@@ -0,0 +1,28 @@
+{
+  hare,
+  runCommandNoCC,
+  writeText,
+}:
+let
+  mainDotHare = writeText "main.ha" ''
+    use fmt;
+    use mime;
+    export fn main() void = {
+        const ext = "json";
+        match(mime::lookup_ext(ext)) {
+        case let mime: const *mime::mimetype =>
+          fmt::printfln("Found mimetype for extension `{}`: {}", ext, mime.mime)!;
+        case null =>
+          fmt::fatalf("Could not find mimetype for `{}`", ext);
+        };
+      };
+  '';
+in
+runCommandNoCC "mime-module-test" { nativeBuildInputs = [ hare ]; } ''
+  HARECACHE="$(mktemp -d)"
+  export HARECACHE
+  readonly binout="test-bin"
+  hare build -qRo "$binout" ${mainDotHare}
+  ./$binout
+  : 1>$out
+''
diff --git a/pkgs/by-name/ha/hare/package.nix b/pkgs/by-name/ha/hare/package.nix
index 3cf37e33109b1..80c30e89a2b6c 100644
--- a/pkgs/by-name/ha/hare/package.nix
+++ b/pkgs/by-name/ha/hare/package.nix
@@ -3,10 +3,10 @@
   stdenv,
   fetchFromSourcehut,
   harec,
-  qbe,
   gitUpdater,
   scdoc,
   tzdata,
+  mailcap,
   substituteAll,
   fetchpatch,
   callPackage,
@@ -32,6 +32,7 @@ assert
   '';
 
 let
+  inherit (harec) qbe;
   buildArch = stdenv.buildPlatform.uname.processor;
   arch = stdenv.hostPlatform.uname.processor;
   platform = lib.toLower stdenv.hostPlatform.uname.system;
@@ -116,6 +117,11 @@ stdenv.mkDerivation (finalAttrs: {
       url = "https://git.sr.ht/~sircmpwn/hare/commit/e35f2284774436f422e06f0e8d290b173ced1677.patch";
       hash = "sha256-A59bGO/9tOghV8/MomTxd8xRExkHVdoMom2d+HTfQGg=";
     })
+    # Use mailcap `/etc/mime.types` for Hare's mime module
+    (substituteAll {
+      src = ./003-use-mailcap-for-mimetypes.patch;
+      inherit mailcap;
+    })
   ];
 
   nativeBuildInputs = [
@@ -124,13 +130,6 @@ stdenv.mkDerivation (finalAttrs: {
     scdoc
   ];
 
-  # Needed for build frameworks like `haredo`, which set the HAREC and QBE env vars to `harec` and
-  # `qbe` respectively.
-  propagatedBuildInputs = [
-    harec
-    qbe
-  ];
-
   buildInputs = [
     harec
     qbe
@@ -165,13 +164,17 @@ stdenv.mkDerivation (finalAttrs: {
     ln -s configs/${platform}.mk config.mk
   '';
 
-  setupHook = ./setup-hook.sh;
-
   passthru = {
     updateScript = gitUpdater { };
-    tests = lib.optionalAttrs enableCrossCompilation {
-      crossCompilation = callPackage ./cross-compilation-tests.nix { hare = finalAttrs.finalPackage; };
-    };
+    tests =
+      lib.optionalAttrs enableCrossCompilation {
+        crossCompilation = callPackage ./cross-compilation-tests.nix { hare = finalAttrs.finalPackage; };
+      }
+      // lib.optionalAttrs (stdenv.buildPlatform.canExecute stdenv.hostPlatform) {
+        mimeModule = callPackage ./mime-module-test.nix { hare = finalAttrs.finalPackage; };
+      };
+    # To be propagated by `hareHook`.
+    inherit harec qbe;
   };
 
   meta = {
diff --git a/pkgs/by-name/ha/hare/setup-hook.sh b/pkgs/by-name/ha/hare/setup-hook.sh
index d2d2c34354d65..3a427fd70328f 100644
--- a/pkgs/by-name/ha/hare/setup-hook.sh
+++ b/pkgs/by-name/ha/hare/setup-hook.sh
@@ -1,9 +1,36 @@
-addHarepath () {
-    for haredir in third-party stdlib; do
-        if [[ -d "$1/src/hare/$haredir" ]]; then
-            addToSearchPath HAREPATH "$1/src/hare/$haredir"
-        fi
-    done
+# shellcheck disable=SC2154,SC2034,SC2016
+
+addHarepath() {
+    local -r thirdparty="${1-}/src/hare/third-party"
+    if [[ -d "$thirdparty" ]]; then
+        addToSearchPath HAREPATH "$thirdparty"
+    fi
 }
 
+# Hare's stdlib should come after its third party libs, since the latter may
+# expand or shadow the former.
+readonly hareSetStdlibPhase='
+addToSearchPath HAREPATH "@hare_stdlib@"
+'
+readonly hareInfoPhase='
+echoCmd "HARECACHE" "$HARECACHE"
+echoCmd "HAREPATH" "$HAREPATH"
+echoCmd "hare" "$(command -v hare)"
+echoCmd "hare-native" "$(command -v hare-native)"
+'
+prePhases+=("hareSetStdlibPhase" "hareInfoPhase")
+
+readonly hare_unconditional_flags="@hare_unconditional_flags@"
+case "${hareBuildType:-"release"}" in
+"release") export NIX_HAREFLAGS="-R $hare_unconditional_flags" ;;
+"debug") export NIX_HAREFLAGS="$hare_unconditional_flags" ;;
+*)
+    printf -- 'Invalid hareBuildType: "%s"\n' "${hareBuildType-}"
+    exit 1
+    ;;
+esac
+
+HARECACHE="$(mktemp -d)"
+export HARECACHE
+
 addEnvHooks "$hostOffset" addHarepath
diff --git a/pkgs/by-name/ha/harec/package.nix b/pkgs/by-name/ha/harec/package.nix
index e95ad7ed7095f..f0534064be3c8 100644
--- a/pkgs/by-name/ha/harec/package.nix
+++ b/pkgs/by-name/ha/harec/package.nix
@@ -1,17 +1,20 @@
-{ lib
-, stdenv
-, fetchFromSourcehut
-, qbe
-, gitUpdater
+{
+  fetchFromSourcehut,
+  gitUpdater,
+  lib,
+  qbe,
+  stdenv,
 }:
 let
   platform = lib.toLower stdenv.hostPlatform.uname.system;
   arch = stdenv.hostPlatform.uname.processor;
-  qbePlatform = {
-    x86_64 = "amd64_sysv";
-    aarch64 = "arm64";
-    riscv64 = "rv64";
-  }.${arch};
+  qbePlatform =
+    {
+      x86_64 = "amd64_sysv";
+      aarch64 = "arm64";
+      riscv64 = "rv64";
+    }
+    .${arch};
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "harec";
@@ -24,13 +27,9 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-NOfoCT/wKZ3CXYzXZq7plXcun+MXQicfzBOmetXN7Qs=";
   };
 
-  nativeBuildInputs = [
-    qbe
-  ];
+  nativeBuildInputs = [ qbe ];
 
-  buildInputs = [
-    qbe
-  ];
+  buildInputs = [ qbe ];
 
   makeFlags = [
     "PREFIX=${builtins.placeholder "out"}"
@@ -54,6 +53,8 @@ stdenv.mkDerivation (finalAttrs: {
 
   passthru = {
     updateScript = gitUpdater { };
+    # To be kept in sync with the hare package.
+    inherit qbe;
   };
 
   meta = {
@@ -65,7 +66,8 @@ stdenv.mkDerivation (finalAttrs: {
     # The upstream developers do not like proprietary operating systems; see
     # https://harelang.org/platforms/
     # UPDATE: https://github.com/hshq/harelang provides a MacOS port
-    platforms = with lib.platforms;
+    platforms =
+      with lib.platforms;
       lib.intersectLists (freebsd ++ openbsd ++ linux) (aarch64 ++ x86_64 ++ riscv64);
     badPlatforms = lib.platforms.darwin;
   };
diff --git a/pkgs/by-name/ha/haredo/package.nix b/pkgs/by-name/ha/haredo/package.nix
index e722d11eafd55..a6ef926c85b99 100644
--- a/pkgs/by-name/ha/haredo/package.nix
+++ b/pkgs/by-name/ha/haredo/package.nix
@@ -2,16 +2,13 @@
   stdenv,
   lib,
   fetchFromSourcehut,
-  hare,
+  hareHook,
   scdoc,
   nix-update-script,
   makeWrapper,
   bash,
   substituteAll,
 }:
-let
-  arch = stdenv.hostPlatform.uname.processor;
-in
 stdenv.mkDerivation (finalAttrs: {
   pname = "haredo";
   version = "1.0.5";
@@ -37,27 +34,23 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   nativeBuildInputs = [
-    hare
+    hareHook
     makeWrapper
     scdoc
   ];
 
   enableParallelChecking = true;
 
+  env.PREFIX = builtins.placeholder "out";
+
   doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
 
   dontConfigure = true;
 
-  preBuild = ''
-    HARECACHE="$(mktemp -d)"
-    export HARECACHE
-    export PREFIX=${builtins.placeholder "out"}
-  '';
-
   buildPhase = ''
     runHook preBuild
 
-    hare build -o bin/haredo -qRa${arch} ./src
+    hare build -o bin/haredo ./src
     scdoc <doc/haredo.1.scd >doc/haredo.1
 
     runHook postBuild
@@ -87,11 +80,11 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "A simple and unix-idiomatic build automator";
+    description = "Simple and unix-idiomatic build automator";
     homepage = "https://sr.ht/~autumnull/haredo/";
     license = lib.licenses.wtfpl;
     maintainers = with lib.maintainers; [ onemoresuza ];
     mainProgram = "haredo";
-    inherit (hare.meta) platforms badPlatforms;
+    inherit (hareHook.meta) platforms badPlatforms;
   };
 })
diff --git a/pkgs/by-name/ha/haredoc/package.nix b/pkgs/by-name/ha/haredoc/package.nix
index 2476e7d937c50..773b226316aee 100644
--- a/pkgs/by-name/ha/haredoc/package.nix
+++ b/pkgs/by-name/ha/haredoc/package.nix
@@ -1,33 +1,31 @@
-{ lib
-, stdenv
-, scdoc
-, hare
+{
+  lib,
+  stdenv,
+  scdoc,
+  hare,
+  hareHook,
 }:
-let
-  arch = stdenv.hostPlatform.uname.processor;
-in
 stdenv.mkDerivation {
   pname = "haredoc";
-  outputs = [ "out" "man" ];
+  outputs = [
+    "out"
+    "man"
+  ];
   inherit (hare) version src;
 
-  strictDeps = true;
-  enableParallelBuilding = true;
-
   nativeBuildInputs = [
     scdoc
-    hare
+    hareHook
   ];
 
-  preBuild = ''
-    HARECACHE="$(mktemp -d)"
-    export HARECACHE
-  '';
+  strictDeps = true;
+
+  enableParallelBuilding = true;
 
   buildPhase = ''
     runHook preBuild
 
-    hare build -qR -a ${arch} -o haredoc ./cmd/haredoc
+    hare build -o haredoc ./cmd/haredoc
     scdoc <docs/haredoc.1.scd >haredoc.1
     scdoc <docs/haredoc.5.scd >haredoc.5
 
@@ -50,6 +48,6 @@ stdenv.mkDerivation {
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ onemoresuza ];
     mainProgram = "haredoc";
-    inherit (hare.meta) platforms badPlatforms;
+    inherit (hareHook.meta) platforms badPlatforms;
   };
 }
diff --git a/pkgs/tools/package-management/harmonia/default.nix b/pkgs/by-name/ha/harmonia/package.nix
index 8e174cf68a891..a8f4c4b09d6bb 100644
--- a/pkgs/tools/package-management/harmonia/default.nix
+++ b/pkgs/by-name/ha/harmonia/package.nix
@@ -12,16 +12,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "harmonia";
-  version = "0.7.5";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = pname;
     rev = "refs/tags/${pname}-v${version}";
-    hash = "sha256-QqRq5maYk4hDl0MXkj9wOPWUta5b+kXG9e/kqRorNE4=";
+    hash = "sha256-+V0V/l9Q7HR3J0aH1UWc1qHrpGiRWd6B4R+3MECFORg=";
   };
 
-  cargoHash = "sha256-dlmSn4cWU6RqEiUoQYNJFhxu3owplkxlbtszBxm+GbU=";
+  cargoHash = "sha256-3Nx1YXjbYVOD7pYgI9Cp5Vsxv1j1XeX6pCl4+Q1OtVs=";
+
+  doCheck = false;
 
   nativeBuildInputs = [
     pkg-config nixVersions.nix_2_21
diff --git a/pkgs/by-name/ha/hatsu/package.nix b/pkgs/by-name/ha/hatsu/package.nix
new file mode 100644
index 0000000000000..ec88f6aea5bba
--- /dev/null
+++ b/pkgs/by-name/ha/hatsu/package.nix
@@ -0,0 +1,40 @@
+{ cmake
+, fetchFromGitHub
+, gitUpdater
+, lib
+, openssl
+, pkg-config
+, rustPlatform
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "hatsu";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "importantimport";
+    repo = "hatsu";
+    rev = "v${version}";
+    hash = "sha256-gBzhuV0SDmNwl5PkpdGxkMBn5m4vEXfv23WK7+ZzQs8=";
+  };
+
+  cargoHash = "sha256-A2tl0jjKODA/qodxkIe/3V4ZDGV4X0myiduJsLtd7r0=";
+
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [ openssl ];
+
+  env = { OPENSSL_NO_VENDOR = true; };
+
+  passthru.updateScript = gitUpdater {
+    rev-prefix = "v";
+    ignoredVersions = "beta";
+  };
+
+  meta = {
+    description = "Self-hosted and fully-automated ActivityPub bridge for static sites";
+    homepage = "https://github.com/importantimport/hatsu";
+    license = lib.licenses.agpl3Only;
+    mainProgram = "hatsu";
+    maintainers = with lib.maintainers; [ kwaa ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/ha/havn/package.nix b/pkgs/by-name/ha/havn/package.nix
new file mode 100644
index 0000000000000..81f0f37190fe5
--- /dev/null
+++ b/pkgs/by-name/ha/havn/package.nix
@@ -0,0 +1,37 @@
+{
+  lib,
+  fetchFromGitHub,
+  rustPlatform,
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "havn";
+  version = "0.1.12";
+
+  src = fetchFromGitHub {
+    owner = "mrjackwills";
+    repo = "havn";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-BCg572435CdQMOldm3Ao4D+sDxbXUlDxMWmxa+aqTY0=";
+  };
+
+  cargoHash = "sha256-JaAlWiaOUoXSV6O4wmU7zCR5h5olO2zkB5WEGk2/ZdE=";
+
+  checkFlags = [
+    # Skip tests that require network access
+    "--skip=scanner::tests::test_scanner_1000_80_443"
+    "--skip=scanner::tests::test_scanner_all_80"
+    "--skip=scanner::tests::test_scanner_port_80"
+    "--skip=terminal::print::tests::test_terminal_monochrome_false"
+  ];
+
+  meta = {
+    homepage = "https://github.com/mrjackwills/havn";
+    description = "Fast configurable port scanner with reasonable defaults";
+    changelog = "https://github.com/mrjackwills/havn/blob/v${version}/CHANGELOG.md";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ luftmensch-luftmensch ];
+    mainProgram = "havn";
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/ha/havoc/package.nix b/pkgs/by-name/ha/havoc/package.nix
index ed9f77ec56562..b37550240386e 100644
--- a/pkgs/by-name/ha/havoc/package.nix
+++ b/pkgs/by-name/ha/havoc/package.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/ii8/havoc";
-    description = "A minimal terminal emulator for Wayland";
+    description = "Minimal terminal emulator for Wayland";
     license = with lib.licenses; [ mit publicDomain ];
     mainProgram = "havoc";
     maintainers = with lib.maintainers; [ AndersonTorres ];
diff --git a/pkgs/by-name/ha/hayabusa/package.nix b/pkgs/by-name/ha/hayabusa/package.nix
index c8064e982c4c0..ed7487766bbab 100644
--- a/pkgs/by-name/ha/hayabusa/package.nix
+++ b/pkgs/by-name/ha/hayabusa/package.nix
@@ -40,7 +40,7 @@ rustPlatform.buildRustPackage {
   '';
 
   meta = {
-    description = "A swift rust fetch program";
+    description = "Swift rust fetch program";
     homepage = "https://github.com/notarin/hayabusa";
     license = lib.licenses.cc-by-nc-nd-40;
     maintainers = with lib.maintainers; [ eclairevoyant ];
diff --git a/pkgs/by-name/hd/hdos/package.nix b/pkgs/by-name/hd/hdos/package.nix
new file mode 100644
index 0000000000000..9737d12d273d4
--- /dev/null
+++ b/pkgs/by-name/hd/hdos/package.nix
@@ -0,0 +1,64 @@
+{
+  lib,
+  stdenvNoCC,
+  fetchurl,
+  makeWrapper,
+  # TODO: for jre 17+, we'll need a workaroud:
+  # https://gitlab.com/hdos/issues/-/issues/2004
+  openjdk11,
+  makeDesktopItem,
+  copyDesktopItems,
+  libGL,
+}:
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "hdos";
+  version = "8";
+
+  src = fetchurl {
+    url = "https://cdn.hdos.dev/launcher/v${finalAttrs.version}/hdos-launcher.jar";
+    hash = "sha256-00ddeR+ov6Tjrn+pscXoao4C0ek/iP9Hdlgq946pL8A=";
+  };
+
+  dontUnpack = true;
+
+  desktop = makeDesktopItem {
+    name = "HDOS";
+    type = "Application";
+    exec = "hdos";
+    icon = fetchurl {
+      url = "https://raw.githubusercontent.com/flathub/dev.hdos.HDOS/8e17cbecb06548fde2c023032e89ddf30befeabc/dev.hdos.HDOS.png";
+      hash = "sha256-pqLNJ0g7GCPotgEPfw2ZZOqapaCRAsJxB09INp6Y6gM=";
+    };
+    comment = "HDOS is a client for Old School RuneScape that emulates the era of 2008-2011 RuneScape HD";
+    desktopName = "HDOS";
+    genericName = "Oldschool Runescape";
+    categories = [ "Game" ];
+  };
+
+  nativeBuildInputs = [
+    makeWrapper
+    copyDesktopItems
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    makeWrapper ${lib.getExe openjdk11} $out/bin/hdos \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libGL ]}" \
+      --add-flags "-jar $src"
+    runHook postInstall
+  '';
+
+  desktopItems = [ finalAttrs.desktop ];
+
+  passthru.updateScript = ./update.sh;
+
+  meta = {
+    description = "High Detail Old School Runescape Client";
+    homepage = "https://hdos.dev";
+    changelog = "https://hdos.dev/changelog";
+    sourceProvenance = [ lib.sourceTypes.binaryBytecode ];
+    license = lib.licenses.unfree;
+    platforms = openjdk11.meta.platforms;
+    maintainers = [ lib.maintainers.misterio77 ];
+  };
+})
diff --git a/pkgs/by-name/hd/hdos/update.sh b/pkgs/by-name/hd/hdos/update.sh
new file mode 100755
index 0000000000000..e2effc6d0d9e2
--- /dev/null
+++ b/pkgs/by-name/hd/hdos/update.sh
@@ -0,0 +1,7 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p common-updater-scripts findutils
+
+set -euo pipefail
+
+version="$(curl -s https://cdn.hdos.dev/client/getdown.txt | grep 'launcher.version = ' | cut -d '=' -f2 | xargs)"
+update-source-version hdos "$version"
diff --git a/pkgs/by-name/he/headphones-toolbox/package.nix b/pkgs/by-name/he/headphones-toolbox/package.nix
index 9f520d7c48757..4b03fb273111d 100644
--- a/pkgs/by-name/he/headphones-toolbox/package.nix
+++ b/pkgs/by-name/he/headphones-toolbox/package.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A UI for configuring Ploopy Headphones";
+    description = "UI for configuring Ploopy Headphones";
     homepage = "https://github.com/ploopyco/headphones-toolbox/";
     maintainers = with maintainers; [ knarkzel nyanbinary ];
     license = licenses.gpl3Only;
diff --git a/pkgs/by-name/he/hednsextractor/package.nix b/pkgs/by-name/he/hednsextractor/package.nix
new file mode 100644
index 0000000000000..8f8fb9f4f6055
--- /dev/null
+++ b/pkgs/by-name/he/hednsextractor/package.nix
@@ -0,0 +1,33 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+}:
+
+buildGoModule rec {
+  pname = "hednsextractor";
+  version = "1.0.7";
+
+  src = fetchFromGitHub {
+    owner = "HuntDownProject";
+    repo = "HEDnsExtractor";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-Uj5TNQ+X0+ip1DcLanMmFzr5ROuXhuZJSPF9tile+ZQ=";
+  };
+
+  vendorHash = "sha256-8yD/yHSqesyS71YeRBv4ARyXyIbTcan7YjBeKBrg0Vc=";
+
+  ldflags = [
+    "-s"
+    "-w"
+  ];
+
+  meta = with lib; {
+    description = "Tool suite for hunting suspicious targets, expose domains and phishing discovery";
+    homepage = "https://github.com/HuntDownProject/HEDnsExtractor";
+    changelog = "https://github.com/HuntDownProject/HEDnsExtractor/releases/tag/v${version}";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "hednsextractor";
+  };
+}
diff --git a/pkgs/by-name/he/hellmaker/package.nix b/pkgs/by-name/he/hellmaker/package.nix
new file mode 100644
index 0000000000000..d05e612dbc80f
--- /dev/null
+++ b/pkgs/by-name/he/hellmaker/package.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, python3
+, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+  pname = "hellmaker";
+  version = "0-unstable-2023-03-18";
+
+  src = fetchFromGitHub {
+    owner = "0xNinjaCyclone";
+    repo = "hellMaker";
+    rev = "2e9efe2aed9412f67a8606544392a2df10d3a2d0";
+    hash = "sha256-zbtzlYGCLW/lt7GJvMHao/MZhdghNBQCQsjUImL1RC4=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/{bin,share/hellmaker}
+    cp -R * $out/share/hellmaker
+    makeWrapper ${python3.interpreter} $out/bin/hellmaker \
+      --set PYTHONPATH "$PYTHONPATH:$out/share/hellmaker/hellMaker.py" \
+      --add-flags "$out/share/hellmaker/hellMaker.py"
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Generate FUD backdoors";
+    homepage = "https://github.com/0xNinjaCyclone/hellMaker";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ tochiaha ];
+    mainProgram = "hellmaker";
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/by-name/he/hello/package.nix b/pkgs/by-name/he/hello/package.nix
index 68fdcf7e408c6..ca585ce03bed1 100644
--- a/pkgs/by-name/he/hello/package.nix
+++ b/pkgs/by-name/he/hello/package.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests.run = callPackage ./test.nix { hello = finalAttrs.finalPackage; };
 
   meta = with lib; {
-    description = "A program that produces a familiar, friendly greeting";
+    description = "Program that produces a familiar, friendly greeting";
     longDescription = ''
       GNU Hello is a program that prints "Hello, world!" when you run it.
       It is fully customizable.
diff --git a/pkgs/applications/misc/HentaiAtHome/default.nix b/pkgs/by-name/he/hentai-at-home/package.nix
index bca7697f758ae..29809e10ab64f 100644
--- a/pkgs/applications/misc/HentaiAtHome/default.nix
+++ b/pkgs/by-name/he/hentai-at-home/package.nix
@@ -1,28 +1,32 @@
-{ buildPackages
-, fetchzip
-, javaOpts ? "-XX:+UseZGC"
-, jdk
-, jre_headless
-, lib
-, makeWrapper
-, stdenvNoCC
-,
+{
+  lib,
+  stdenvNoCC,
+  fetchzip,
+  jdk,
+  makeWrapper,
+  buildPackages,
+  jre_headless,
+  javaOpts ? "-XX:+UseZGC",
 }:
-stdenvNoCC.mkDerivation rec {
-  pname = "HentaiAtHome";
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "hentai-at-home";
   version = "1.6.3";
 
   src = fetchzip {
-    url = "https://repo.e-hentai.org/hath/HentaiAtHome_${version}_src.zip";
+    url = "https://repo.e-hentai.org/hath/HentaiAtHome_${finalAttrs.version}_src.zip";
     hash = "sha512-kBB5mn9MwpkZ0z+Fl5ABs4YWBkXkMRcADYSAPkeifyhbYQQPOnijXKYZCkzE4UB3uQ1j6Kj6WnpO/4jquYEiOQ==";
     stripRoot = false;
   };
 
-  nativeBuildInputs = [ jdk makeWrapper ];
+  nativeBuildInputs = [
+    jdk
+    makeWrapper
+  ];
 
   LANG = "en_US.UTF-8";
-  LOCALE_ARCHIVE = lib.optionalString (stdenvNoCC.buildPlatform.libc == "glibc")
-    "${buildPackages.glibcLocales}/lib/locale/locale-archive";
+  LOCALE_ARCHIVE = lib.optionalString (
+    stdenvNoCC.buildPlatform.libc == "glibc"
+  ) "${buildPackages.glibcLocales}/lib/locale/locale-archive";
 
   buildPhase = ''
     make all
@@ -48,10 +52,10 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://ehwiki.org/wiki/Hentai@Home";
-    description =
-      "Hentai@Home is an open-source P2P gallery distribution system which reduces the load on the E-Hentai Galleries";
+    description = "Open-source P2P gallery distribution system which reduces the load on the E-Hentai Galleries";
     license = licenses.gpl3;
     maintainers = with maintainers; [ terrorjack ];
     mainProgram = "HentaiAtHome";
+    platforms = jdk.meta.platforms;
   };
-}
+})
diff --git a/pkgs/by-name/he/hermitcli/package.nix b/pkgs/by-name/he/hermitcli/package.nix
index fd0c79cb99bde..6c59414cfac76 100644
--- a/pkgs/by-name/he/hermitcli/package.nix
+++ b/pkgs/by-name/he/hermitcli/package.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "hermit";
-  version = "0.39.1";
+  version = "0.39.2";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "cashapp";
     repo = "hermit";
-    hash = "sha256-ukg/KQTLG2F7mDNgoUr8GEKnkFHEJtVpwDs+DiLXvlM=";
+    hash = "sha256-By6ZWOiv1A7wghIGD6+oGoBic9puo4M+DzsM/7fOpy8=";
   };
 
-  vendorHash = "sha256-1QMZvxy6cCJVoIP8mG7s4V0nBAGhrHoPbiKKyYDDL2g=";
+  vendorHash = "sha256-vEv/sciynvxQE7KpxqpaSO1p5R3xYBK6o4EeuJ2JYmg=";
 
   subPackages = [ "cmd/hermit" ];
 
@@ -25,7 +25,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://cashapp.github.io/hermit";
-    description = "Manages isolated, self-bootstrapping sets of tools in software projects.";
+    description = "Manages isolated, self-bootstrapping sets of tools in software projects";
     license = licenses.asl20;
     maintainers = with maintainers; [ cbrewster ];
     platforms = platforms.unix;
diff --git a/pkgs/by-name/he/hexxy/package.nix b/pkgs/by-name/he/hexxy/package.nix
new file mode 100644
index 0000000000000..ceed202985eda
--- /dev/null
+++ b/pkgs/by-name/he/hexxy/package.nix
@@ -0,0 +1,38 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+  nix-update-script,
+}:
+buildGoModule {
+  pname = "hexxy";
+  version = "0-unstable-2024-02-23";
+  src = fetchFromGitHub {
+    owner = "sweetbbak";
+    repo = "hexxy";
+    # upstream does not publish releases, i.e., there are no tags
+    rev = "30e0aa5549bbafeb8204fe34b0d37019f9acc975";
+    hash = "sha256-KBgxZD95UT7i/eYeKLm0LVLliKgK/KiJYXVY9zzwbvk=";
+  };
+
+  vendorHash = "sha256-qkBpSVLWZPRgS9bqOVUWHpyj8z/nheQJON3vJOwPUj4=";
+  ldflags = [
+    "-s"
+    "-w"
+  ];
+
+  passthru.updateScript = nix-update-script {
+    extraArgs = [
+      "--version"
+      "branch"
+    ];
+  };
+
+  meta = {
+    description = "A modern and beautiful alternative to xxd and hexdump";
+    homepage = "https://github.com/sweetbbak/hexxy";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.NotAShelf ];
+    mainProgram = "hexxy";
+  };
+}
diff --git a/pkgs/by-name/hi/hidden-bar/package.nix b/pkgs/by-name/hi/hidden-bar/package.nix
index 162b5a923f3c3..e35e2a83f492b 100644
--- a/pkgs/by-name/hi/hidden-bar/package.nix
+++ b/pkgs/by-name/hi/hidden-bar/package.nix
@@ -27,7 +27,7 @@ stdenvNoCC.mkDerivation rec {
   nativeBuildInputs = [ undmg ];
 
   meta = {
-    description = "An ultra-light MacOS utility that helps hide menu bar icons";
+    description = "Ultra-light MacOS utility that helps hide menu bar icons";
     homepage = "https://github.com/dwarvesf/hidden";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ donteatoreo ];
diff --git a/pkgs/by-name/hi/hidviz/package.nix b/pkgs/by-name/hi/hidviz/package.nix
index 0ee04d13161ba..5aeba2f5b082a 100644
--- a/pkgs/by-name/hi/hidviz/package.nix
+++ b/pkgs/by-name/hi/hidviz/package.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/hidviz/hidviz";
-    description = "A GUI application for in-depth analysis of USB HID class devices.";
+    description = "GUI application for in-depth analysis of USB HID class devices";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ nayala ];
diff --git a/pkgs/by-name/hi/hieroglyphic/Cargo.lock b/pkgs/by-name/hi/hieroglyphic/Cargo.lock
new file mode 100644
index 0000000000000..4c0e63991d32b
--- /dev/null
+++ b/pkgs/by-name/hi/hieroglyphic/Cargo.lock
@@ -0,0 +1,1448 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.82"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519"
+
+[[package]]
+name = "async-channel"
+version = "2.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "136d4d23bcc79e27423727b36823d86233aad06dfea531837b038394d11e9928"
+dependencies = [
+ "concurrent-queue",
+ "event-listener",
+ "event-listener-strategy",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"
+
+[[package]]
+name = "base32"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23ce669cd6c8588f79e15cf450314f9638f967fc5770ff1c7c1deb0925ea7cfa"
+
+[[package]]
+name = "base64"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff"
+
+[[package]]
+name = "bitflags"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
+
+[[package]]
+name = "block"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
+
+[[package]]
+name = "cairo-rs"
+version = "0.19.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2ac2a4d0e69036cf0062976f6efcba1aaee3e448594e6514bb2ddf87acce562"
+dependencies = [
+ "bitflags",
+ "cairo-sys-rs",
+ "glib",
+ "libc",
+ "thiserror",
+]
+
+[[package]]
+name = "cairo-sys-rs"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd3bb3119664efbd78b5e6c93957447944f16bdbced84c17a9f41c7829b81e64"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.95"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d32a725bc159af97c3e629873bb9f88fb8cf8a4867175f76dc987815ea07c83b"
+
+[[package]]
+name = "cfg-expr"
+version = "0.15.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02"
+dependencies = [
+ "smallvec",
+ "target-lexicon",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "concurrent-queue"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
+dependencies = [
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+
+[[package]]
+name = "detexify"
+version = "0.4.0"
+source = "git+https://github.com/FineFindus/detexify-rust.git?rev=d3750a6531bc92826ad2a2bd013cc5fe06f9e3ae#d3750a6531bc92826ad2a2bd013cc5fe06f9e3ae"
+dependencies = [
+ "base32",
+ "base64",
+ "itertools 0.9.0",
+ "phf",
+ "phf_codegen",
+ "rayon",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "tuple",
+ "yaml-rust",
+]
+
+[[package]]
+name = "either"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2"
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "event-listener"
+version = "5.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d9944b8ca13534cdfb2800775f8dd4902ff3fc75a50101466decadfdf322a24"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "332f51cb23d20b0de8458b86580878211da09bcd4503cb579c225b3d124cabb3"
+dependencies = [
+ "event-listener",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "field-offset"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f"
+dependencies = [
+ "memoffset",
+ "rustc_version",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+dependencies = [
+ "futures-core",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "futures-task"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+
+[[package]]
+name = "futures-util"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+dependencies = [
+ "futures-core",
+ "futures-macro",
+ "futures-task",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "gdk-pixbuf"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6a23f8a0b5090494fd04924662d463f8386cc678dd3915015a838c1a3679b92"
+dependencies = [
+ "gdk-pixbuf-sys",
+ "gio",
+ "glib",
+ "libc",
+]
+
+[[package]]
+name = "gdk-pixbuf-sys"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dcbd04c1b2c4834cc008b4828bc917d062483b88d26effde6342e5622028f96"
+dependencies = [
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "gdk4"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9100b25604183f2fd97f55ef087fae96ab4934d7215118a35303e422688e6e4b"
+dependencies = [
+ "cairo-rs",
+ "gdk-pixbuf",
+ "gdk4-sys",
+ "gio",
+ "glib",
+ "libc",
+ "pango",
+]
+
+[[package]]
+name = "gdk4-sys"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0b76874c40bb8d1c7d03a7231e23ac75fa577a456cd53af32ec17ec8f121626"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "pkg-config",
+ "system-deps",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "gettext-rs"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e49ea8a8fad198aaa1f9655a2524b64b70eb06b2f3ff37da407566c93054f364"
+dependencies = [
+ "gettext-sys",
+ "locale_config",
+]
+
+[[package]]
+name = "gettext-sys"
+version = "0.21.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c63ce2e00f56a206778276704bbe38564c8695249fdc8f354b4ef71c57c3839d"
+dependencies = [
+ "cc",
+ "temp-dir",
+]
+
+[[package]]
+name = "gio"
+version = "0.19.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f91a0518c2ec539f099d3f945ab2d6a83ec372a9ef40a21906343b191182845"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-util",
+ "gio-sys",
+ "glib",
+ "libc",
+ "pin-project-lite",
+ "smallvec",
+ "thiserror",
+]
+
+[[package]]
+name = "gio-sys"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bcf8e1d9219bb294636753d307b030c1e8a032062cba74f493c431a5c8b81ce4"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+ "windows-sys",
+]
+
+[[package]]
+name = "glib"
+version = "0.19.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae1407b2ce171e654720be10d57d4054d3ff2f10a13d5b37e6819b41439832f7"
+dependencies = [
+ "bitflags",
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-task",
+ "futures-util",
+ "gio-sys",
+ "glib-macros",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "memchr",
+ "smallvec",
+ "thiserror",
+]
+
+[[package]]
+name = "glib-macros"
+version = "0.19.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8bba315e8ce8aa59631545358450f4962557e89b5f7db7442e7153b47037f71"
+dependencies = [
+ "heck",
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "glib-sys"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "630f097773d7c7a0bb3258df4e8157b47dc98bbfa0e60ad9ab56174813feced4"
+dependencies = [
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "gobject-sys"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c85e2b1080b9418dd0c58b498da3a5c826030343e0ef07bde6a955d28de54979"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "graphene-rs"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99e4d388e96c5f29e2b2f67045d229ddf826d0a8d6d282f94ed3b34452222c91"
+dependencies = [
+ "glib",
+ "graphene-sys",
+ "libc",
+]
+
+[[package]]
+name = "graphene-sys"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "236ed66cc9b18d8adf233716f75de803d0bf6fc806f60d14d948974a12e240d0"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "pkg-config",
+ "system-deps",
+]
+
+[[package]]
+name = "gsk4"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c65036fc8f99579e8cb37b12487969b707ab23ec8ab953682ff347cbd15d396e"
+dependencies = [
+ "cairo-rs",
+ "gdk4",
+ "glib",
+ "graphene-rs",
+ "gsk4-sys",
+ "libc",
+ "pango",
+]
+
+[[package]]
+name = "gsk4-sys"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd24c814379f9c3199dc53e52253ee8d0f657eae389ab282c330505289d24738"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk4-sys",
+ "glib-sys",
+ "gobject-sys",
+ "graphene-sys",
+ "libc",
+ "pango-sys",
+ "system-deps",
+]
+
+[[package]]
+name = "gtk4"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa82753b8c26277e4af1446c70e35b19aad4fb794a7b143859e7eeb9a4025d83"
+dependencies = [
+ "cairo-rs",
+ "field-offset",
+ "futures-channel",
+ "gdk-pixbuf",
+ "gdk4",
+ "gio",
+ "glib",
+ "graphene-rs",
+ "gsk4",
+ "gtk4-macros",
+ "gtk4-sys",
+ "libc",
+ "pango",
+]
+
+[[package]]
+name = "gtk4-macros"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "40300bf071d2fcd4c94eacc09e84ec6fe73129d2ceb635cf7e55b026b5443567"
+dependencies = [
+ "anyhow",
+ "proc-macro-crate",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "gtk4-sys"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0db1b104138f087ccdc81d2c332de5dd049b89de3d384437cc1093b17cd2da18"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gdk4-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "graphene-sys",
+ "gsk4-sys",
+ "libc",
+ "pango-sys",
+ "system-deps",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+
+[[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
+name = "hieroglyphic"
+version = "1.1.0"
+dependencies = [
+ "async-channel",
+ "cairo-rs",
+ "detexify",
+ "gdk-pixbuf",
+ "gettext-rs",
+ "gtk4",
+ "itertools 0.12.1",
+ "libadwaita",
+ "pango",
+ "tracing",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
+dependencies = [
+ "equivalent",
+ "hashbrown",
+]
+
+[[package]]
+name = "itertools"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itertools"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libadwaita"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91b4990248b9e1ec5e72094a2ccaea70ec3809f88f6fd52192f2af306b87c5d9"
+dependencies = [
+ "gdk-pixbuf",
+ "gdk4",
+ "gio",
+ "glib",
+ "gtk4",
+ "libadwaita-sys",
+ "libc",
+ "pango",
+]
+
+[[package]]
+name = "libadwaita-sys"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23a748e4e92be1265cd9e93d569c0b5dfc7814107985aa6743d670ab281ea1a8"
+dependencies = [
+ "gdk4-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "gtk4-sys",
+ "libc",
+ "pango-sys",
+ "system-deps",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.153"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+
+[[package]]
+name = "linked-hash-map"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
+
+[[package]]
+name = "locale_config"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934"
+dependencies = [
+ "lazy_static",
+ "objc",
+ "objc-foundation",
+ "regex",
+ "winapi",
+]
+
+[[package]]
+name = "log"
+version = "0.4.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
+
+[[package]]
+name = "malloc_buf"
+version = "0.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memchr"
+version = "2.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
+
+[[package]]
+name = "memoffset"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "nu-ansi-term"
+version = "0.46.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
+dependencies = [
+ "overload",
+ "winapi",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.1.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
+dependencies = [
+ "num-traits 0.2.18",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "objc"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
+dependencies = [
+ "malloc_buf",
+]
+
+[[package]]
+name = "objc-foundation"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
+dependencies = [
+ "block",
+ "objc",
+ "objc_id",
+]
+
+[[package]]
+name = "objc_id"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
+dependencies = [
+ "objc",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "overload"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
+[[package]]
+name = "pango"
+version = "0.19.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1264d13deb823cc652f26cfe59afb1ec4b9db2a5bd27c41b738c879cc1bfaa1"
+dependencies = [
+ "gio",
+ "glib",
+ "libc",
+ "pango-sys",
+]
+
+[[package]]
+name = "pango-sys"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f52ef6a881c19fbfe3b1484df5cad411acaaba29dbec843941c3110d19f340ea"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "parking"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
+
+[[package]]
+name = "phf"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
+dependencies = [
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_codegen"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526"
+dependencies = [
+ "phf_shared",
+ "rand",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "proc-macro-crate"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
+dependencies = [
+ "toml_edit 0.21.1",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.81"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom",
+ "libc",
+ "rand_chacha",
+ "rand_core",
+ "rand_hc",
+ "rand_pcg",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "rand_pcg"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "rayon"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "regex"
+version = "1.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "ryu"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
+
+[[package]]
+name = "semver"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
+
+[[package]]
+name = "serde"
+version = "1.0.198"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.198"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.116"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "sharded-slab"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "siphasher"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "system-deps"
+version = "6.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349"
+dependencies = [
+ "cfg-expr",
+ "heck",
+ "pkg-config",
+ "toml",
+ "version-compare",
+]
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
+
+[[package]]
+name = "temp-dir"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f227968ec00f0e5322f9b8173c7a0cbcff6181a0a5b28e9892491c286277231"
+
+[[package]]
+name = "thiserror"
+version = "1.0.59"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.59"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+]
+
+[[package]]
+name = "toml"
+version = "0.8.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit 0.22.12",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow 0.5.40",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef"
+dependencies = [
+ "indexmap",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow 0.6.6",
+]
+
+[[package]]
+name = "tracing"
+version = "0.1.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+dependencies = [
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+dependencies = [
+ "once_cell",
+ "valuable",
+]
+
+[[package]]
+name = "tracing-log"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
+dependencies = [
+ "log",
+ "once_cell",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-subscriber"
+version = "0.3.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
+dependencies = [
+ "nu-ansi-term",
+ "sharded-slab",
+ "smallvec",
+ "thread_local",
+ "tracing-core",
+ "tracing-log",
+]
+
+[[package]]
+name = "tuple"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "014493a81b7f393503eb896ab5b268532baff9359a7f4efe347dca3359f317f2"
+dependencies = [
+ "num-traits 0.1.43",
+ "serde",
+]
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "valuable"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+
+[[package]]
+name = "version-compare"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "wasi"
+version = "0.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
+
+[[package]]
+name = "winnow"
+version = "0.5.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winnow"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0c976aaaa0e1f90dbb21e9587cdaf1d9679a1cde8875c0d6bd83ab96a208352"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "yaml-rust"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
+dependencies = [
+ "linked-hash-map",
+]
diff --git a/pkgs/by-name/hi/hieroglyphic/package.nix b/pkgs/by-name/hi/hieroglyphic/package.nix
index f130488e95b2c..4cb0ebf507e5f 100644
--- a/pkgs/by-name/hi/hieroglyphic/package.nix
+++ b/pkgs/by-name/hi/hieroglyphic/package.nix
@@ -15,6 +15,7 @@
   libadwaita,
   darwin,
   gettext,
+  appstream,
 }:
 
 let
@@ -22,20 +23,22 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "hieroglyphic";
-  version = "1.0.1";
-  # Note: 1.1.0 requires a higher gtk4 version. This requirement could be patched out.
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "FineFindus";
     repo = "Hieroglyphic";
     rev = "refs/tags/v${finalAttrs.version}";
-    hash = "sha256-Twx3yM71xn2FT3CbiFGbo2knGvb4MBl6VwjWlbjfks0=";
+    hash = "sha256-8UUFatJwtxqumhHd0aiPk6nKsaaF/jIIqMFxXye0X8U=";
   };
 
-  cargoDeps = rustPlatform.fetchCargoTarball {
-    inherit (finalAttrs) src;
-    name = "${finalAttrs.pname}-${finalAttrs.version}";
-    hash = "sha256-Se/YCi0e+Uoh5guDteLRXZYyk7et0NA8cv+vNpLxzx4=";
+  # We have to use importCargoLock here because `cargo vendor` currently doesn't support workspace
+  # inheritance within Git dependencies, but importCargoLock does.
+  cargoDeps = rustPlatform.importCargoLock {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "detexify-0.4.0" = "sha256-BPOHNr3pwu2il3/ERko+WHAWby4rPR49i62tXDlDRu0=";
+    };
   };
 
   nativeBuildInputs = [
@@ -47,6 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
     pkg-config
     wrapGAppsHook4
     desktop-file-utils
+    appstream
   ];
 
   buildInputs =
@@ -65,7 +69,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     changelog = "https://github.com/FineFindus/Hieroglyphic/releases/tag/v${finalAttrs.version}";
-    description = "A tool based on detexify for finding LaTeX symbols from drawings";
+    description = "Tool based on detexify for finding LaTeX symbols from drawings";
     homepage = "https://apps.gnome.org/en/Hieroglyphic/";
     license = lib.licenses.gpl3Only;
     mainProgram = "hieroglyphic";
diff --git a/pkgs/by-name/hi/hifile/package.nix b/pkgs/by-name/hi/hifile/package.nix
index 4e06e08231dbf..43f6dfe82fa5d 100644
--- a/pkgs/by-name/hi/hifile/package.nix
+++ b/pkgs/by-name/hi/hifile/package.nix
@@ -1,12 +1,12 @@
 { lib, appimageTools, fetchurl }:
 
 let
-  version = "0.9.9.11";
+  version = "0.9.9.12";
   pname = "hifile";
 
   src = fetchurl {
     url = "https://www.hifile.app/files/HiFile-${version}.AppImage";
-    hash = "sha256-T/ig5Tfo58+yMp+kOEa96+QvABg6gTaIbdy53jWucvM=";
+    hash = "sha256-/1/5n+YDO1IhkUAjRIlr2NnNoU30u3gWbvhTLbN70q0=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/by-name/hi/highlight-pointer/package.nix b/pkgs/by-name/hi/highlight-pointer/package.nix
new file mode 100644
index 0000000000000..614ce434ef795
--- /dev/null
+++ b/pkgs/by-name/hi/highlight-pointer/package.nix
@@ -0,0 +1,45 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  libX11,
+  xorg,
+  libXext,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "highlight-pointer";
+  version = "1.1.3";
+
+  src = fetchFromGitHub {
+    owner = "swillner";
+    repo = "highlight-pointer";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-mz9gXAtrtSV0Lapx8xBOPljuF+HRgDaF2DKCDrHXQa8=";
+  };
+
+  buildInputs = [
+    libX11
+    libXext
+    xorg.libXi
+    xorg.libXfixes
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m 555 -D highlight-pointer $out/bin/highlight-pointer
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Highlight mouse pointer/cursor using a dot";
+    homepage = "https://github.com/swillner/highlight-pointer";
+    changelog = "https://github.com/swillner/highlight-pointer/releases/tag/v${finalAttrs.version}";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ DCsunset ];
+    mainProgram = "highlight-pointer";
+  };
+})
diff --git a/pkgs/by-name/hi/highs/package.nix b/pkgs/by-name/hi/highs/package.nix
index 4023d3e52afb3..14ab9fddb66fe 100644
--- a/pkgs/by-name/hi/highs/package.nix
+++ b/pkgs/by-name/hi/highs/package.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "highs";
-  version = "1.7.0";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "ERGO-Code";
     repo = "HiGHS";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-2dYKXckZ+npj1rA2mmBRuRcGI1YNcaiITSMjE2/TA2g=";
+    sha256 = "sha256-SJbS0403HyiW8zPrLsNWp8+h/wL7UdrS+QOEjLf1jzE=";
   };
 
   strictDeps = true;
diff --git a/pkgs/by-name/hn/hn-text/package.nix b/pkgs/by-name/hn/hn-text/package.nix
new file mode 100644
index 0000000000000..e07f31a342308
--- /dev/null
+++ b/pkgs/by-name/hn/hn-text/package.nix
@@ -0,0 +1,35 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+  nix-update-script,
+}:
+
+buildGoModule rec {
+  pname = "hn-text";
+  version = "0.1.4";
+
+  src = fetchFromGitHub {
+    owner = "piqoni";
+    repo = "hn-text";
+    rev = "v${version}";
+    hash = "sha256-YoPdYuNlWrLITyd2XeCOeGy70Ews1rvtOQzYZAQTI+Y=";
+  };
+
+  vendorHash = "sha256-lhghteKspXK1WSZ3dVHaTgx2BRx9S7yGNbvRYZKeA+s=";
+
+  ldflags = [
+    "-s"
+    "-w"
+  ];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "Fast, easy-to-use and distraction-free Hacker News terminal client";
+    homepage = "https://github.com/piqoni/hn-text";
+    license = lib.licenses.mit;
+    mainProgram = "hn-text";
+    maintainers = with lib.maintainers; [ Guanran928 ];
+  };
+}
diff --git a/pkgs/by-name/ho/home-manager/package.nix b/pkgs/by-name/ho/home-manager/package.nix
index b724d90de6eb2..b12d6420c1b95 100644
--- a/pkgs/by-name/ho/home-manager/package.nix
+++ b/pkgs/by-name/ho/home-manager/package.nix
@@ -16,14 +16,14 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "home-manager";
-  version = "0-unstable-2024-05-17";
+  version = "0-unstable-2024-06-13";
 
   src = fetchFromGitHub {
     name = "home-manager-source";
     owner = "nix-community";
     repo = "home-manager";
-    rev = "e3ad5108f54177e6520535768ddbf1e6af54b59d";
-    hash = "sha256-W9pyM3/vePxrffHtzlJI6lDS3seANQ+Nqp+i58O46LI=";
+    rev = "8d5e27b4807d25308dfe369d5a923d87e7dbfda3";
+    hash = "sha256-abBpj2VU8p6qlRzTU8o22q68MmOaZ4v8zZ4UlYl5YRU=";
   };
 
   nativeBuildInputs = [
@@ -80,7 +80,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://nix-community.github.io/home-manager/";
-    description = "A Nix-based user environment configurator";
+    description = "Nix-based user environment configurator";
     longDescription = ''
       The Home-Manager project provides a basic system for managing a user
       environment using the Nix package manager together with the Nix libraries
diff --git a/pkgs/by-name/ho/horcrux/package.nix b/pkgs/by-name/ho/horcrux/package.nix
new file mode 100644
index 0000000000000..cd54cd4f060b5
--- /dev/null
+++ b/pkgs/by-name/ho/horcrux/package.nix
@@ -0,0 +1,27 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+}:
+
+buildGoModule rec {
+  pname = "horcrux";
+  version = "0.3-unstable-2023-09-19";
+
+  src = fetchFromGitHub {
+    owner = "jesseduffield";
+    repo = "horcrux";
+    rev = "5e848abcca49a7ad359f5a24ef4ca7e0eda80889";
+    hash = "sha256-YOu3qJadfyA6MKW8OFLr0pFjGMOgCGie2f8VbG79IY0=";
+  };
+
+  vendorHash = null;
+
+  meta = {
+    description = "Split your file into encrypted fragments so that you don't need to remember a passcode";
+    homepage = "https://github.com/jesseduffield/horcrux";
+    license = lib.licenses.mit;
+    mainProgram = "horcrux";
+    maintainers = with lib.maintainers; [ mh ];
+  };
+}
diff --git a/pkgs/by-name/ht/http-server/package.nix b/pkgs/by-name/ht/http-server/package.nix
index 9a058ac255baf..19e937f242e39 100644
--- a/pkgs/by-name/ht/http-server/package.nix
+++ b/pkgs/by-name/ht/http-server/package.nix
@@ -29,7 +29,7 @@ buildNpmPackage rec {
   dontNpmBuild = true;
 
   meta = {
-    description = "A simple zero-configuration command-line http server";
+    description = "Simple zero-configuration command-line http server";
     homepage = "https://github.com/http-party/http-server";
     license = lib.licenses.mit;
     mainProgram = "http-server";
diff --git a/pkgs/by-name/ht/httpdirfs/package.nix b/pkgs/by-name/ht/httpdirfs/package.nix
index 54d16dbfcbb57..99a84769459e1 100644
--- a/pkgs/by-name/ht/httpdirfs/package.nix
+++ b/pkgs/by-name/ht/httpdirfs/package.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     changelog = "https://github.com/fangfufu/httpdirfs/releases/tag/${finalAttrs.version}";
-    description = "A FUSE filesystem for HTTP directory listings";
+    description = "FUSE filesystem for HTTP directory listings";
     homepage = "https://github.com/fangfufu/httpdirfs";
     license = lib.licenses.gpl3Only;
     mainProgram = "httpdirfs";
diff --git a/pkgs/by-name/ht/httpie-desktop/package.nix b/pkgs/by-name/ht/httpie-desktop/package.nix
index e8f3dbb1c02d9..d5d3d32198391 100644
--- a/pkgs/by-name/ht/httpie-desktop/package.nix
+++ b/pkgs/by-name/ht/httpie-desktop/package.nix
@@ -13,7 +13,7 @@ appimageTools.wrapType2 rec {
   };
 
   meta = with lib; {
-    description = "Cross-platform API testing client for humans. Painlessly test REST, GraphQL, and HTTP APIs.";
+    description = "Cross-platform API testing client for humans. Painlessly test REST, GraphQL, and HTTP APIs";
     homepage = "https://github.com/httpie/desktop";
     license = licenses.unfree;
     maintainers = with maintainers; [ luftmensch-luftmensch ];
diff --git a/pkgs/by-name/ht/httping/package.nix b/pkgs/by-name/ht/httping/package.nix
new file mode 100644
index 0000000000000..85fcc843ef0f7
--- /dev/null
+++ b/pkgs/by-name/ht/httping/package.nix
@@ -0,0 +1,71 @@
+{
+  cmake,
+  fetchFromGitHub,
+  fftw,
+  gettext,
+  lib,
+  libintl,
+  ncurses,
+  nix-update-script,
+  openssl,
+  stdenv,
+  testers,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "httping";
+  version = "3.6";
+
+  src = fetchFromGitHub {
+    owner = "folkertvanheusden";
+    repo = "HTTPing";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-lDgQC3VzfcLqMOQSaRZ/znMamAAGYq/9C9bHgI4G7B8=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    gettext
+  ];
+
+  buildInputs = [
+    fftw
+    libintl
+    ncurses
+    openssl
+  ];
+
+  cmakeFlags = [
+    (lib.cmakeFeature "CMAKE_BUILD_TYPE" "Release")
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    install -D httping $out/bin/httping
+    runHook postInstall
+  '';
+
+  passthru = {
+    tests.version = testers.testVersion {
+      command = "${lib.getExe finalAttrs.finalPackage} --version";
+      package = finalAttrs.finalPackage;
+    };
+    updateScript = nix-update-script { };
+  };
+
+  meta = {
+    changelog = "https://github.com/folkertvanheusden/HTTPing/releases/tag/v${finalAttrs.version}";
+    description = "Ping with HTTP requests";
+    homepage = "https://vanheusden.com/httping";
+    license = lib.licenses.agpl3Only;
+    longDescription = ''
+      Give httping an url, and it'll show you how long it takes to connect,
+      send a request and retrieve the reply (only the headers). Be aware that
+      the transmission across the network also takes time! So it measures the
+      latency of the webserver + network. It supports IPv6.
+    '';
+    mainProgram = "httping";
+    maintainers = [ lib.maintainers.anthonyroussel ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/hu/hugo/package.nix b/pkgs/by-name/hu/hugo/package.nix
index 7e590a5dee61f..70feb33d76416 100644
--- a/pkgs/by-name/hu/hugo/package.nix
+++ b/pkgs/by-name/hu/hugo/package.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "hugo";
-  version = "0.126.1";
+  version = "0.127.0";
 
   src = fetchFromGitHub {
     owner = "gohugoio";
     repo = "hugo";
     rev = "refs/tags/v${version}";
-    hash = "sha256-c421kzgD6PFM/9Rn+NmZGyRlJPWhQPraW/4HcuRoEUU=";
+    hash = "sha256-QAZP119VOPTnVXe2mtzCpB3OW/g73oA/qwR94OzISKo=";
   };
 
-  vendorHash = "sha256-VfwiA5LCAJ1pkmMCy/Dcc5bLKkNY1MHtxHcHvKLoWHs=";
+  vendorHash = "sha256-Og7FTCrto1l+Xpfr2zEgg/yXa7dflws0yJ2Xh9f3mbI=";
 
   doCheck = false;
 
@@ -50,7 +50,7 @@ buildGoModule rec {
 
   meta = {
     changelog = "https://github.com/gohugoio/hugo/releases/tag/v${version}";
-    description = "A fast and modern static website engine";
+    description = "Fast and modern static website engine";
     homepage = "https://gohugo.io";
     license = lib.licenses.asl20;
     mainProgram = "hugo";
diff --git a/pkgs/by-name/hu/humioctl/package.nix b/pkgs/by-name/hu/humioctl/package.nix
index d9f780c0b3a21..317e728f84387 100644
--- a/pkgs/by-name/hu/humioctl/package.nix
+++ b/pkgs/by-name/hu/humioctl/package.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "humioctl";
-  version = "0.32.3";
+  version = "0.34.1";
 
   src = fetchFromGitHub {
     owner = "humio";
     repo = "cli";
     rev = "v${version}";
-    hash = "sha256-MaBJL/3TZYmXjwt5/WmBBTXVhlJ6oyCgm+Lb8id6J3c=";
+    hash = "sha256-/oMsNAUCM1FdGDfn7pxkfT1hJlJJDbaxEXvGGJy0VgE=";
   };
 
-  vendorHash = "sha256-FAy0LNmesEDgS3JTz5DPd8vkR5CHHhAbms++N8TQApA=";
+  vendorHash = "sha256-ABXBzmRBByet6Jb/uvcvpdGHC5MSAKvZUnsyY2d2nGs=";
 
   ldflags = [ "-s" "-w" "-X main.version=${version}" ];
 
@@ -25,7 +25,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/humio/cli";
-    description = "A CLI for managing and sending data to Humio";
+    description = "CLI for managing and sending data to Humio";
     license = licenses.asl20;
     maintainers = with maintainers; [ lucperkins ];
     mainProgram = "humioctl";
diff --git a/pkgs/tools/networking/hurl/default.nix b/pkgs/by-name/hu/hurl/package.nix
index cd474a3e6f64c..bb40d40896a78 100644
--- a/pkgs/tools/networking/hurl/default.nix
+++ b/pkgs/by-name/hu/hurl/package.nix
@@ -39,6 +39,13 @@ rustPlatform.buildRustPackage rec {
 
   postInstall = ''
     installManPage docs/manual/hurl.1 docs/manual/hurlfmt.1
+    installShellCompletion --cmd hurl \
+      --bash completions/hurl.bash \
+      --zsh completions/_hurl \
+      --fish completions/hurl.fish
+
+    installShellCompletion --cmd hurlfmt \
+      --zsh completions/_hurlfmt
   '';
 
   meta = with lib; {
diff --git a/pkgs/by-name/hy/hyperspeedcube/Cargo.lock b/pkgs/by-name/hy/hyperspeedcube/Cargo.lock
new file mode 100644
index 0000000000000..2e8dfdac706b2
--- /dev/null
+++ b/pkgs/by-name/hy/hyperspeedcube/Cargo.lock
@@ -0,0 +1,3811 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "ab_glyph"
+version = "0.2.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5568a4aa5ba8adf5175c5c460b030e27d8893412976cc37bef0e4fbc16cfbba"
+dependencies = [
+ "ab_glyph_rasterizer",
+ "owned_ttf_parser",
+]
+
+[[package]]
+name = "ab_glyph_rasterizer"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046"
+
+[[package]]
+name = "addr2line"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "ahash"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
+dependencies = [
+ "getrandom",
+ "once_cell",
+ "version_check",
+]
+
+[[package]]
+name = "ahash"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf6ccdb167abbf410dcb915cabd428929d7f6a04980b54a11f26a39f1c7f7107"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+ "version_check",
+]
+
+[[package]]
+name = "aho-corasick"
+version = "0.7.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "ambassador"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05b8741165d4c4a8e6e8dcf8a2d09a1b0f94d85722fb57caed8babdd421a9837"
+dependencies = [
+ "itertools",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "android_system_properties"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.68"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2cb2f989d18dd141ab8ae82f64d1a8cdd37e0840f73a406896cf5e99502fab61"
+
+[[package]]
+name = "approx"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f2a05fd1bd10b2527e20a2cd32d8873d115b8b39fe219ee25f42a8aca6ba278"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "arboard"
+version = "3.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6041616acea41d67c4a984709ddab1587fd0b10efe5cc563fee954d2f011854"
+dependencies = [
+ "clipboard-win",
+ "log",
+ "objc",
+ "objc-foundation",
+ "objc_id",
+ "once_cell",
+ "parking_lot",
+ "thiserror",
+ "winapi",
+ "x11rb",
+]
+
+[[package]]
+name = "arraydeque"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0ffd3d69bd89910509a5d31d1f1353f38ccffdd116dd0099bbd6627f7bd8ad8"
+
+[[package]]
+name = "arrayref"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
+
+[[package]]
+name = "arrayvec"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9"
+dependencies = [
+ "nodrop",
+]
+
+[[package]]
+name = "arrayvec"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
+
+[[package]]
+name = "arrayvec"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
+
+[[package]]
+name = "ash"
+version = "0.37.2+1.3.238"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28bf19c1f0a470be5fbf7522a308a05df06610252c5bcf5143e1b23f629a9a03"
+dependencies = [
+ "libloading",
+]
+
+[[package]]
+name = "async-broadcast"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b19760fa2b7301cf235360ffd6d3558b1ed4249edd16d6cca8d690cee265b95"
+dependencies = [
+ "event-listener",
+ "futures-core",
+ "parking_lot",
+]
+
+[[package]]
+name = "async-executor"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17adb73da160dfb475c183343c8cccd80721ea5a605d3eb57125f0a7b7a92d0b"
+dependencies = [
+ "async-lock",
+ "async-task",
+ "concurrent-queue",
+ "fastrand",
+ "futures-lite",
+ "slab",
+]
+
+[[package]]
+name = "async-io"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c374dda1ed3e7d8f0d9ba58715f924862c63eae6849c92d3a18e7fbde9e2794"
+dependencies = [
+ "async-lock",
+ "autocfg",
+ "concurrent-queue",
+ "futures-lite",
+ "libc",
+ "log",
+ "parking",
+ "polling",
+ "slab",
+ "socket2",
+ "waker-fn",
+ "windows-sys 0.42.0",
+]
+
+[[package]]
+name = "async-lock"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8101efe8695a6c17e02911402145357e718ac92d3ff88ae8419e84b1707b685"
+dependencies = [
+ "event-listener",
+ "futures-lite",
+]
+
+[[package]]
+name = "async-recursion"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2cda8f4bcc10624c4e85bc66b3f452cca98cfa5ca002dc83a16aad2367641bea"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "async-task"
+version = "4.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524"
+
+[[package]]
+name = "async-trait"
+version = "0.1.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "705339e0e4a9690e2908d2b3d049d85682cf19fbd5782494498fbf7003a6a282"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "atk-sys"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58aeb089fb698e06db8089971c7ee317ab9644bade33383f63631437b03aafb6"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "atomic_refcell"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "857253367827bd9d0fd973f0ef15506a96e79e41b0ad7aa691203a4e3214f6c8"
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "backtrace"
+version = "0.3.67"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "base64"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+
+[[package]]
+name = "bit-set"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
+dependencies = [
+ "bit-vec",
+]
+
+[[package]]
+name = "bit-vec"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitvec"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
+dependencies = [
+ "funty",
+ "radium",
+ "serde",
+ "tap",
+ "wyz",
+]
+
+[[package]]
+name = "block"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
+
+[[package]]
+name = "block-buffer"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
+
+[[package]]
+name = "bytemuck"
+version = "1.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aaa3a8d9a1ca92e282c96a32d6511b695d7d994d1d102ba85d279f9b2756947f"
+dependencies = [
+ "bytemuck_derive",
+]
+
+[[package]]
+name = "bytemuck_derive"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fe233b960f12f8007e3db2d136e3cb1c291bfd7396e384ee76025fc1a3932b4"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "byteorder"
+version = "1.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+
+[[package]]
+name = "bytes"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c"
+
+[[package]]
+name = "cairo-sys-rs"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8"
+dependencies = [
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "calloop"
+version = "0.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a59225be45a478d772ce015d9743e49e92798ece9e34eda9a6aa2a6a7f40192"
+dependencies = [
+ "log",
+ "nix 0.25.1",
+ "slotmap",
+ "thiserror",
+ "vec_map",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.78"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d"
+
+[[package]]
+name = "cesu8"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
+
+[[package]]
+name = "cfg-expr"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0357a6402b295ca3a86bc148e84df46c02e41f41fef186bda662557ef6328aa"
+dependencies = [
+ "smallvec",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
+[[package]]
+name = "cgmath"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a98d30140e3296250832bbaaff83b27dcd6fa3cc70fb6f1f3e5c9c0023b5317"
+dependencies = [
+ "approx",
+ "num-traits",
+]
+
+[[package]]
+name = "clipboard-win"
+version = "4.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362"
+dependencies = [
+ "error-code",
+ "str-buf",
+ "winapi",
+]
+
+[[package]]
+name = "cmake"
+version = "0.1.49"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db34956e100b30725f2eb215f90d4871051239535632f84fea3bc92722c66b7c"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "cocoa"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a"
+dependencies = [
+ "bitflags",
+ "block",
+ "cocoa-foundation",
+ "core-foundation",
+ "core-graphics",
+ "foreign-types 0.3.2",
+ "libc",
+ "objc",
+]
+
+[[package]]
+name = "cocoa-foundation"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318"
+dependencies = [
+ "bitflags",
+ "block",
+ "core-foundation",
+ "core-graphics-types",
+ "foreign-types 0.3.2",
+ "libc",
+ "objc",
+]
+
+[[package]]
+name = "codespan-reporting"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
+dependencies = [
+ "termcolor",
+ "unicode-width",
+]
+
+[[package]]
+name = "combine"
+version = "4.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4"
+dependencies = [
+ "bytes",
+ "memchr",
+]
+
+[[package]]
+name = "concurrent-queue"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c278839b831783b70278b14df4d45e1beb1aad306c07bb796637de9a0e323e8e"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "config"
+version = "0.13.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d379af7f68bfc21714c6c7dea883544201741d2ce8274bb12fa54f89507f52a7"
+dependencies = [
+ "async-trait",
+ "json5",
+ "lazy_static",
+ "nom",
+ "pathdiff",
+ "ron",
+ "rust-ini",
+ "serde",
+ "serde_json",
+ "toml",
+ "yaml-rust",
+]
+
+[[package]]
+name = "console_error_panic_hook"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "core-foundation"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
+
+[[package]]
+name = "core-graphics"
+version = "0.22.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb"
+dependencies = [
+ "bitflags",
+ "core-foundation",
+ "core-graphics-types",
+ "foreign-types 0.3.2",
+ "libc",
+]
+
+[[package]]
+name = "core-graphics-types"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b"
+dependencies = [
+ "bitflags",
+ "core-foundation",
+ "foreign-types 0.3.2",
+ "libc",
+]
+
+[[package]]
+name = "core-text"
+version = "19.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99d74ada66e07c1cefa18f8abfba765b486f250de2e4a999e5727fc0dd4b4a25"
+dependencies = [
+ "core-foundation",
+ "core-graphics",
+ "foreign-types 0.3.2",
+ "libc",
+]
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "crc32fast"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "crossfont"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21fd3add36ea31aba1520aa5288714dd63be506106753226d0eb387a93bc9c45"
+dependencies = [
+ "cocoa",
+ "core-foundation",
+ "core-foundation-sys",
+ "core-graphics",
+ "core-text",
+ "dwrote",
+ "foreign-types 0.5.0",
+ "freetype-rs",
+ "libc",
+ "log",
+ "objc",
+ "once_cell",
+ "pkg-config",
+ "servo-fontconfig",
+ "winapi",
+]
+
+[[package]]
+name = "crypto-common"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+dependencies = [
+ "generic-array",
+ "typenum",
+]
+
+[[package]]
+name = "cty"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35"
+
+[[package]]
+name = "d3d12"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "827914e1f53b1e0e025ecd3d967a7836b7bcb54520f90e21ef8df7b4d88a2759"
+dependencies = [
+ "bitflags",
+ "libloading",
+ "winapi",
+]
+
+[[package]]
+name = "dark-light"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a62007a65515b3cd88c733dd3464431f05d2ad066999a824259d8edc3cf6f645"
+dependencies = [
+ "dconf_rs",
+ "detect-desktop-environment",
+ "dirs",
+ "objc",
+ "rust-ini",
+ "web-sys",
+ "winreg",
+ "zbus",
+ "zvariant",
+]
+
+[[package]]
+name = "darling"
+version = "0.13.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.13.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim",
+ "syn",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.13.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835"
+dependencies = [
+ "darling_core",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "dconf_rs"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7046468a81e6a002061c01e6a7c83139daf91b11c30e66795b13217c2d885c8b"
+
+[[package]]
+name = "derivative"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "detect-desktop-environment"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21d8ad60dd5b13a4ee6bd8fa2d5d88965c597c67bce32b5fc49c94f55cb50810"
+
+[[package]]
+name = "digest"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
+dependencies = [
+ "block-buffer",
+ "crypto-common",
+]
+
+[[package]]
+name = "directories"
+version = "4.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f51c5d4ddabd36886dd3e1438cb358cdcb0d7c499cb99cb4ac2e38e18b5cb210"
+dependencies = [
+ "dirs-sys",
+]
+
+[[package]]
+name = "dirs"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
+dependencies = [
+ "dirs-sys",
+]
+
+[[package]]
+name = "dirs-sys"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
+[[package]]
+name = "dispatch"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
+
+[[package]]
+name = "dlib"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794"
+dependencies = [
+ "libloading",
+]
+
+[[package]]
+name = "dlv-list"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257"
+
+[[package]]
+name = "downcast-rs"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
+
+[[package]]
+name = "dwrote"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439a1c2ba5611ad3ed731280541d36d2e9c4ac5e7fb818a27b604bdc5a6aa65b"
+dependencies = [
+ "lazy_static",
+ "libc",
+ "serde",
+ "serde_derive",
+ "winapi",
+ "wio",
+]
+
+[[package]]
+name = "ecolor"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b601108bca3af7650440ace4ca55b2daf52c36f2635be3587d77b16efd8d0691"
+dependencies = [
+ "bytemuck",
+]
+
+[[package]]
+name = "egui"
+version = "0.20.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "65a5e883a316e53866977450eecfbcac9c48109c2ab3394af29feb83fcde4ea9"
+dependencies = [
+ "ahash 0.8.2",
+ "epaint",
+ "nohash-hasher",
+ "tracing",
+]
+
+[[package]]
+name = "egui-wgpu"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3a6edfac4c02455f5024dc7cda997629b94748571935773d1a0cfab8213c80a"
+dependencies = [
+ "bytemuck",
+ "egui",
+ "tracing",
+ "type-map",
+ "wgpu",
+]
+
+[[package]]
+name = "egui-winit"
+version = "0.20.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5696bdbe60898b81157f07ae34fe02dbfd522174bd6e620942c269cd7307901f"
+dependencies = [
+ "arboard",
+ "egui",
+ "instant",
+ "smithay-clipboard",
+ "tracing",
+ "webbrowser",
+ "winit",
+]
+
+[[package]]
+name = "either"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
+
+[[package]]
+name = "emath"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5277249c8c3430e7127e4f2c40a77485e7baf11ae132ce9b3253a8ed710df0a0"
+dependencies = [
+ "bytemuck",
+]
+
+[[package]]
+name = "enum-iterator"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91a4ec26efacf4aeff80887a175a419493cb6f8b5480d26387eb0bd038976187"
+dependencies = [
+ "enum-iterator-derive",
+]
+
+[[package]]
+name = "enum-iterator-derive"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "828de45d0ca18782232dfb8f3ea9cc428e8ced380eb26a520baaacfc70de39ce"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "enum_dispatch"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11f36e95862220b211a6e2aa5eca09b4fa391b13cd52ceb8035a24bf65a79de2"
+dependencies = [
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "enumflags2"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e75d4cd21b95383444831539909fbb14b9dc3fdceb2a6f5d36577329a1f55ccb"
+dependencies = [
+ "enumflags2_derive",
+ "serde",
+]
+
+[[package]]
+name = "enumflags2_derive"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f58dc3c5e468259f19f2d46304a6b28f1c3d034442e14b322d2b850e36f6d5ae"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+dependencies = [
+ "humantime",
+ "is-terminal",
+ "log",
+ "regex",
+ "termcolor",
+]
+
+[[package]]
+name = "epaint"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de14b65fe5e423e0058f77a8beb2c863b056d0566d6c4ce0d097aa5814cb705a"
+dependencies = [
+ "ab_glyph",
+ "ahash 0.8.2",
+ "atomic_refcell",
+ "bytemuck",
+ "ecolor",
+ "emath",
+ "nohash-hasher",
+ "parking_lot",
+]
+
+[[package]]
+name = "errno"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
+dependencies = [
+ "errno-dragonfly",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "errno-dragonfly"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "error-code"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21"
+dependencies = [
+ "libc",
+ "str-buf",
+]
+
+[[package]]
+name = "event-listener"
+version = "2.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
+
+[[package]]
+name = "expat-sys"
+version = "2.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "658f19728920138342f68408b7cf7644d90d4784353d8ebc32e7e8663dbe45fa"
+dependencies = [
+ "cmake",
+ "pkg-config",
+]
+
+[[package]]
+name = "fastrand"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
+dependencies = [
+ "instant",
+]
+
+[[package]]
+name = "flate2"
+version = "1.0.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841"
+dependencies = [
+ "crc32fast",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared 0.1.1",
+]
+
+[[package]]
+name = "foreign-types"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
+dependencies = [
+ "foreign-types-macros",
+ "foreign-types-shared 0.3.1",
+]
+
+[[package]]
+name = "foreign-types-macros"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8469d0d40519bc608ec6863f1cc88f3f1deee15913f2f3b3e573d81ed38cccc"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "freetype-rs"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74eadec9d0a5c28c54bb9882e54787275152a4e36ce206b45d7451384e5bf5fb"
+dependencies = [
+ "bitflags",
+ "freetype-sys",
+ "libc",
+]
+
+[[package]]
+name = "freetype-sys"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a37d4011c0cc628dfa766fcc195454f4b068d7afdc2adfd28861191d866e731a"
+dependencies = [
+ "cmake",
+ "libc",
+ "pkg-config",
+]
+
+[[package]]
+name = "funty"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
+
+[[package]]
+name = "futures-core"
+version = "0.3.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac"
+
+[[package]]
+name = "futures-io"
+version = "0.3.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb"
+
+[[package]]
+name = "futures-lite"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48"
+dependencies = [
+ "fastrand",
+ "futures-core",
+ "futures-io",
+ "memchr",
+ "parking",
+ "pin-project-lite",
+ "waker-fn",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9"
+
+[[package]]
+name = "futures-task"
+version = "0.3.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea"
+
+[[package]]
+name = "futures-util"
+version = "0.3.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+ "futures-task",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "fxhash"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
+dependencies = [
+ "byteorder",
+]
+
+[[package]]
+name = "gdk-pixbuf-sys"
+version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7"
+dependencies = [
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "gdk-sys"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32e7a08c1e8f06f4177fb7e51a777b8c1689f743a7bc11ea91d44d2226073a88"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "pkg-config",
+ "system-deps",
+]
+
+[[package]]
+name = "generic-array"
+version = "0.14.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
+dependencies = [
+ "typenum",
+ "version_check",
+]
+
+[[package]]
+name = "gethostname"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "libc",
+ "wasi",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "gimli"
+version = "0.27.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dec7af912d60cdbd3677c1af9352ebae6fb8394d165568a2234df0fa00f87793"
+
+[[package]]
+name = "gio-sys"
+version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+ "winapi",
+]
+
+[[package]]
+name = "glib-sys"
+version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4"
+dependencies = [
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "glow"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8bd5877156a19b8ac83a29b2306fe20537429d318f3ff0a1a2119f8d9c61919"
+dependencies = [
+ "js-sys",
+ "slotmap",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "gobject-sys"
+version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "gpu-alloc"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7fc59e5f710e310e76e6707f86c561dd646f69a8876da9131703b2f717de818d"
+dependencies = [
+ "bitflags",
+ "gpu-alloc-types",
+]
+
+[[package]]
+name = "gpu-alloc-types"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54804d0d6bc9d7f26db4eaec1ad10def69b599315f487d32c334a80d1efe67a5"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "gpu-descriptor"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b0c02e1ba0bdb14e965058ca34e09c020f8e507a760df1121728e0aef68d57a"
+dependencies = [
+ "bitflags",
+ "gpu-descriptor-types",
+ "hashbrown",
+]
+
+[[package]]
+name = "gpu-descriptor-types"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "363e3677e55ad168fef68cf9de3a4a310b53124c5e784c53a1d70e92d23f2126"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "gtk-sys"
+version = "0.15.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d5bc2f0587cba247f60246a0ca11fe25fb733eabc3de12d1965fc07efab87c84"
+dependencies = [
+ "atk-sys",
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gdk-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "system-deps",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+dependencies = [
+ "ahash 0.7.6",
+]
+
+[[package]]
+name = "heck"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
+dependencies = [
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "heck"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
+
+[[package]]
+name = "hermit-abi"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
+[[package]]
+name = "hexf-parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df"
+
+[[package]]
+name = "human-panic"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39f357a500abcbd7c5f967c1d45c8838585b36743823b9d43488f24850534e36"
+dependencies = [
+ "backtrace",
+ "os_type",
+ "serde",
+ "serde_derive",
+ "termcolor",
+ "toml",
+ "uuid",
+]
+
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "hyperspeedcube"
+version = "1.0.6"
+dependencies = [
+ "ambassador",
+ "anyhow",
+ "bitvec",
+ "bytemuck",
+ "cgmath",
+ "config",
+ "console_error_panic_hook",
+ "dark-light",
+ "directories",
+ "egui",
+ "egui-wgpu",
+ "egui-winit",
+ "enum-iterator",
+ "enum_dispatch",
+ "env_logger",
+ "getrandom",
+ "hex",
+ "human-panic",
+ "instant",
+ "itertools",
+ "js-sys",
+ "key-names",
+ "lazy_static",
+ "log",
+ "monostate",
+ "num_enum",
+ "once_cell",
+ "png",
+ "pollster",
+ "rand",
+ "regex",
+ "rfd",
+ "send_wrapper",
+ "serde",
+ "serde_yaml",
+ "smallvec",
+ "strum",
+ "time",
+ "tracing-subscriber",
+ "tracing-wasm",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-logger",
+ "web-sys",
+ "wgpu",
+ "winit",
+ "winres",
+]
+
+[[package]]
+name = "ident_case"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
+[[package]]
+name = "idna"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "indexmap"
+version = "1.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"
+dependencies = [
+ "autocfg",
+ "hashbrown",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "io-lifetimes"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7d6c6f8c91b4b9ed43484ad1a938e393caf35960fce7f82a040497207bd8e9e"
+dependencies = [
+ "libc",
+ "windows-sys 0.42.0",
+]
+
+[[package]]
+name = "is-terminal"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28dfb6c8100ccc63462345b67d1bbc3679177c75ee4bf59bf29c8b1d110b8189"
+dependencies = [
+ "hermit-abi",
+ "io-lifetimes",
+ "rustix",
+ "windows-sys 0.42.0",
+]
+
+[[package]]
+name = "itertools"
+version = "0.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440"
+
+[[package]]
+name = "jni"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c"
+dependencies = [
+ "cesu8",
+ "combine",
+ "jni-sys",
+ "log",
+ "thiserror",
+ "walkdir",
+]
+
+[[package]]
+name = "jni-sys"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
+
+[[package]]
+name = "js-sys"
+version = "0.3.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "json5"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96b0db21af676c1ce64250b5f40f3ce2cf27e4e47cb91ed91eb6fe9350b430c1"
+dependencies = [
+ "pest",
+ "pest_derive",
+ "serde",
+]
+
+[[package]]
+name = "key-names"
+version = "1.5.1"
+source = "git+https://github.com/HactarCE/key-names?tag=v1.5.1#49e9e2e0e74197fb1a74503563ff69bf6036508e"
+dependencies = [
+ "cty",
+ "keycode",
+ "thiserror",
+ "wayland-client",
+ "winapi",
+ "winit",
+ "xcb",
+ "xkbcommon",
+]
+
+[[package]]
+name = "keycode"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b07873c3182aec8a0eb1a5a4e7b197d42e9d167ba78497a6ee932a82d94673ed"
+dependencies = [
+ "arraydeque",
+ "arrayvec 0.4.12",
+ "bitflags",
+ "keycode_macro",
+]
+
+[[package]]
+name = "keycode_macro"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e521ea802f5b3c7194e169d75cab431b0ff08d022f2b6047b08754b4988b89df"
+dependencies = [
+ "anyhow",
+ "heck 0.3.3",
+ "proc-macro2",
+ "quote",
+]
+
+[[package]]
+name = "khronos-egl"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c2352bd1d0bceb871cb9d40f24360c8133c11d7486b68b5381c1dd1a32015e3"
+dependencies = [
+ "libc",
+ "libloading",
+ "pkg-config",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libc"
+version = "0.2.139"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
+
+[[package]]
+name = "libloading"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+dependencies = [
+ "cfg-if",
+ "winapi",
+]
+
+[[package]]
+name = "linked-hash-map"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
+
+[[package]]
+name = "lock_api"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "malloc_buf"
+version = "0.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memchr"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+
+[[package]]
+name = "memmap"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "memmap2"
+version = "0.5.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b182332558b18d807c4ce1ca8ca983b34c3ee32765e47b3f0f69b90355cc1dc"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "metal"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de11355d1f6781482d027a3b4d4de7825dcedb197bf573e0596d00008402d060"
+dependencies = [
+ "bitflags",
+ "block",
+ "core-graphics-types",
+ "foreign-types 0.3.2",
+ "log",
+ "objc",
+]
+
+[[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
+name = "miniz_oxide"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa"
+dependencies = [
+ "adler",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de"
+dependencies = [
+ "libc",
+ "log",
+ "wasi",
+ "windows-sys 0.42.0",
+]
+
+[[package]]
+name = "monostate"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd8e29c166cd22fbcbddad7197de0e416d374b0e638c7420e632d18e713cbf1f"
+dependencies = [
+ "monostate-impl",
+ "serde",
+]
+
+[[package]]
+name = "monostate-impl"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "afc4131cdada28f14bf46129ef11e756089d5f4e89a0f8327945ca648f5c8a24"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "naga"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "262d2840e72dbe250e8cf2f522d080988dfca624c4112c096238a4845f591707"
+dependencies = [
+ "bit-set",
+ "bitflags",
+ "codespan-reporting",
+ "hexf-parse",
+ "indexmap",
+ "log",
+ "num-traits",
+ "rustc-hash",
+ "spirv",
+ "termcolor",
+ "thiserror",
+ "unicode-xid",
+]
+
+[[package]]
+name = "ndk"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0"
+dependencies = [
+ "bitflags",
+ "jni-sys",
+ "ndk-sys",
+ "num_enum",
+ "raw-window-handle 0.5.0",
+ "thiserror",
+]
+
+[[package]]
+name = "ndk-context"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
+
+[[package]]
+name = "ndk-glue"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0434fabdd2c15e0aab768ca31d5b7b333717f03cf02037d5a0a3ff3c278ed67f"
+dependencies = [
+ "libc",
+ "log",
+ "ndk",
+ "ndk-context",
+ "ndk-macro",
+ "ndk-sys",
+ "once_cell",
+ "parking_lot",
+]
+
+[[package]]
+name = "ndk-macro"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0df7ac00c4672f9d5aece54ee3347520b7e20f158656c7db2e6de01902eb7a6c"
+dependencies = [
+ "darling",
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "ndk-sys"
+version = "0.4.1+23.1.7779620"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3"
+dependencies = [
+ "jni-sys",
+]
+
+[[package]]
+name = "nix"
+version = "0.24.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069"
+dependencies = [
+ "bitflags",
+ "cfg-if",
+ "libc",
+ "memoffset",
+]
+
+[[package]]
+name = "nix"
+version = "0.25.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4"
+dependencies = [
+ "autocfg",
+ "bitflags",
+ "cfg-if",
+ "libc",
+ "memoffset",
+ "pin-utils",
+]
+
+[[package]]
+name = "nodrop"
+version = "0.1.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
+
+[[package]]
+name = "nohash-hasher"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451"
+
+[[package]]
+name = "nom"
+version = "7.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+dependencies = [
+ "memchr",
+ "minimal-lexical",
+]
+
+[[package]]
+name = "nu-ansi-term"
+version = "0.46.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
+dependencies = [
+ "overload",
+ "winapi",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_enum"
+version = "0.5.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9"
+dependencies = [
+ "num_enum_derive",
+]
+
+[[package]]
+name = "num_enum_derive"
+version = "0.5.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce"
+dependencies = [
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "num_threads"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "objc"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
+dependencies = [
+ "malloc_buf",
+ "objc_exception",
+]
+
+[[package]]
+name = "objc-foundation"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
+dependencies = [
+ "block",
+ "objc",
+ "objc_id",
+]
+
+[[package]]
+name = "objc_exception"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "objc_id"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
+dependencies = [
+ "objc",
+]
+
+[[package]]
+name = "object"
+version = "0.30.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b8c786513eb403643f2a88c244c2aaa270ef2153f55094587d0c48a3cf22a83"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66"
+
+[[package]]
+name = "ordered-multimap"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccd746e37177e1711c20dd619a1620f34f5c8b569c53590a72dedd5344d8924a"
+dependencies = [
+ "dlv-list",
+ "hashbrown",
+]
+
+[[package]]
+name = "ordered-stream"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4eb9ba3f3e42dbdd3b7b122de5ca169c81e93d561eb900da3a8c99bcfcf381a"
+dependencies = [
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "os_type"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e24d44c0eea30167516ed8f6daca4b5e3eebcde1bde1e4e6e08b809fb02c7ba5"
+dependencies = [
+ "regex",
+]
+
+[[package]]
+name = "overload"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
+[[package]]
+name = "owned_ttf_parser"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a5f3c7ca08b6879e7965fb25e24d1f5eeb32ea73f9ad99b3854778a38c57e93"
+dependencies = [
+ "ttf-parser",
+]
+
+[[package]]
+name = "pango-sys"
+version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "parking"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72"
+
+[[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba1ef8814b5c993410bb3adfad7a5ed269563e4a2f90c41f5d85be7fb47133bf"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-sys 0.42.0",
+]
+
+[[package]]
+name = "pathdiff"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
+
+[[package]]
+name = "percent-encoding"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
+
+[[package]]
+name = "pest"
+version = "2.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4257b4a04d91f7e9e6290be5d3da4804dd5784fafde3a497d73eb2b4a158c30a"
+dependencies = [
+ "thiserror",
+ "ucd-trie",
+]
+
+[[package]]
+name = "pest_derive"
+version = "2.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "241cda393b0cdd65e62e07e12454f1f25d57017dcc514b1514cd3c4645e3a0a6"
+dependencies = [
+ "pest",
+ "pest_generator",
+]
+
+[[package]]
+name = "pest_generator"
+version = "2.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46b53634d8c8196302953c74d5352f33d0c512a9499bd2ce468fc9f4128fa27c"
+dependencies = [
+ "pest",
+ "pest_meta",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "pest_meta"
+version = "2.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ef4f1332a8d4678b41966bb4cc1d0676880e84183a1ecc3f4b69f03e99c7a51"
+dependencies = [
+ "once_cell",
+ "pest",
+ "sha2",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
+
+[[package]]
+name = "png"
+version = "0.17.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d708eaf860a19b19ce538740d2b4bdeeb8337fa53f7738455e706623ad5c638"
+dependencies = [
+ "bitflags",
+ "crc32fast",
+ "flate2",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "polling"
+version = "2.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22122d5ec4f9fe1b3916419b76be1e80bcb93f618d071d2edf841b137b2a2bd6"
+dependencies = [
+ "autocfg",
+ "cfg-if",
+ "libc",
+ "log",
+ "wepoll-ffi",
+ "windows-sys 0.42.0",
+]
+
+[[package]]
+name = "pollster"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5da3b0203fd7ee5720aa0b5e790b591aa5d3f41c3ed2c34a3a393382198af2f7"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "proc-macro-crate"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9"
+dependencies = [
+ "once_cell",
+ "thiserror",
+ "toml",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.50"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "profiling"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74605f360ce573babfe43964cbe520294dcb081afbf8c108fc6e23036b4da2df"
+
+[[package]]
+name = "quote"
+version = "1.0.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "radium"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "range-alloc"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "63e935c45e09cc6dcf00d2f0b2d630a58f4095320223d47fc68918722f0538b6"
+
+[[package]]
+name = "raw-window-handle"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b800beb9b6e7d2df1fe337c9e3d04e3af22a124460fb4c30fcc22c9117cefb41"
+dependencies = [
+ "cty",
+]
+
+[[package]]
+name = "raw-window-handle"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed7e3d950b66e19e0c372f3fa3fbbcf85b1746b571f74e0c2af6042a5c93420a"
+dependencies = [
+ "cty",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+dependencies = [
+ "getrandom",
+ "redox_syscall",
+ "thiserror",
+]
+
+[[package]]
+name = "regex"
+version = "1.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
+
+[[package]]
+name = "remove_dir_all"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "renderdoc-sys"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1382d1f0a252c4bf97dc20d979a2fdd05b024acd7c2ed0f7595d7817666a157"
+
+[[package]]
+name = "rfd"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0149778bd99b6959285b0933288206090c50e2327f47a9c463bfdbf45c8823ea"
+dependencies = [
+ "block",
+ "dispatch",
+ "glib-sys",
+ "gobject-sys",
+ "gtk-sys",
+ "js-sys",
+ "lazy_static",
+ "log",
+ "objc",
+ "objc-foundation",
+ "objc_id",
+ "raw-window-handle 0.5.0",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "windows 0.37.0",
+]
+
+[[package]]
+name = "ron"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88073939a61e5b7680558e6be56b419e208420c2adb92be54921fa6b72283f1a"
+dependencies = [
+ "base64",
+ "bitflags",
+ "serde",
+]
+
+[[package]]
+name = "rust-ini"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6d5f2436026b4f6e79dc829837d467cc7e9a55ee40e750d716713540715a2df"
+dependencies = [
+ "cfg-if",
+ "ordered-multimap",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342"
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+[[package]]
+name = "rustix"
+version = "0.36.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4fdebc4b395b7fbb9ab11e462e20ed9051e7b16e42d24042c776eca0ac81b03"
+dependencies = [
+ "bitflags",
+ "errno",
+ "io-lifetimes",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.42.0",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70"
+
+[[package]]
+name = "ryu"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
+
+[[package]]
+name = "safe_arch"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1ff3d6d9696af502cc3110dacce942840fb06ff4514cad92236ecc455f2ce05"
+dependencies = [
+ "bytemuck",
+]
+
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "scoped-tls"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
+
+[[package]]
+name = "scopeguard"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+
+[[package]]
+name = "sctk-adwaita"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61270629cc6b4d77ec1907db1033d5c2e1a404c412743621981a871dc9c12339"
+dependencies = [
+ "crossfont",
+ "log",
+ "smithay-client-toolkit",
+ "tiny-skia",
+]
+
+[[package]]
+name = "send_wrapper"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73"
+
+[[package]]
+name = "serde"
+version = "1.0.152"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.152"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_repr"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a5ec9fa74a20ebbe5d9ac23dac1fc96ba0ecfe9f50f2843b52e537b10fbcb4e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "serde_yaml"
+version = "0.8.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b"
+dependencies = [
+ "indexmap",
+ "ryu",
+ "serde",
+ "yaml-rust",
+]
+
+[[package]]
+name = "servo-fontconfig"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7e3e22fe5fd73d04ebf0daa049d3efe3eae55369ce38ab16d07ddd9ac5c217c"
+dependencies = [
+ "libc",
+ "servo-fontconfig-sys",
+]
+
+[[package]]
+name = "servo-fontconfig-sys"
+version = "5.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e36b879db9892dfa40f95da1c38a835d41634b825fbd8c4c418093d53c24b388"
+dependencies = [
+ "expat-sys",
+ "freetype-sys",
+ "pkg-config",
+]
+
+[[package]]
+name = "sha1"
+version = "0.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sha2"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sharded-slab"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "slab"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "slotmap"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "smithay-client-toolkit"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f307c47d32d2715eb2e0ece5589057820e0e5e70d07c247d1063e844e107f454"
+dependencies = [
+ "bitflags",
+ "calloop",
+ "dlib",
+ "lazy_static",
+ "log",
+ "memmap2",
+ "nix 0.24.3",
+ "pkg-config",
+ "wayland-client",
+ "wayland-cursor",
+ "wayland-protocols",
+]
+
+[[package]]
+name = "smithay-clipboard"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0a345c870a1fae0b1b779085e81b51e614767c239e93503588e54c5b17f4b0e8"
+dependencies = [
+ "smithay-client-toolkit",
+ "wayland-client",
+]
+
+[[package]]
+name = "socket2"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "spirv"
+version = "0.2.0+1.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "246bfa38fe3db3f1dfc8ca5a2cdeb7348c78be2112740cc0ec8ef18b6d94f830"
+dependencies = [
+ "bitflags",
+ "num-traits",
+]
+
+[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
+name = "str-buf"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0"
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "strum"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f"
+dependencies = [
+ "strum_macros",
+]
+
+[[package]]
+name = "strum_macros"
+version = "0.24.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
+dependencies = [
+ "heck 0.4.0",
+ "proc-macro2",
+ "quote",
+ "rustversion",
+ "syn",
+]
+
+[[package]]
+name = "syn"
+version = "1.0.107"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "system-deps"
+version = "6.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2955b1fe31e1fa2fbd1976b71cc69a606d7d4da16f6de3333d0c92d51419aeff"
+dependencies = [
+ "cfg-expr",
+ "heck 0.4.0",
+ "pkg-config",
+ "toml",
+ "version-compare",
+]
+
+[[package]]
+name = "tap"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
+
+[[package]]
+name = "tempfile"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "libc",
+ "redox_syscall",
+ "remove_dir_all",
+ "winapi",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "time"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376"
+dependencies = [
+ "libc",
+ "num_threads",
+ "serde",
+ "time-core",
+]
+
+[[package]]
+name = "time-core"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
+
+[[package]]
+name = "tiny-skia"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "642680569bb895b16e4b9d181c60be1ed136fa0c9c7f11d004daf053ba89bf82"
+dependencies = [
+ "arrayref",
+ "arrayvec 0.5.2",
+ "bytemuck",
+ "cfg-if",
+ "png",
+ "safe_arch",
+ "tiny-skia-path",
+]
+
+[[package]]
+name = "tiny-skia-path"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c114d32f0c2ee43d585367cb013dfaba967ab9f62b90d9af0d696e955e70fa6c"
+dependencies = [
+ "arrayref",
+ "bytemuck",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
+
+[[package]]
+name = "toml"
+version = "0.5.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1333c76748e868a4d9d1017b5ab53171dfd095f70c712fdb4653a406547f598f"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "tracing"
+version = "0.1.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+dependencies = [
+ "cfg-if",
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a"
+dependencies = [
+ "once_cell",
+ "valuable",
+]
+
+[[package]]
+name = "tracing-log"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
+dependencies = [
+ "lazy_static",
+ "log",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-subscriber"
+version = "0.3.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70"
+dependencies = [
+ "nu-ansi-term",
+ "sharded-slab",
+ "smallvec",
+ "thread_local",
+ "tracing-core",
+ "tracing-log",
+]
+
+[[package]]
+name = "tracing-wasm"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4575c663a174420fa2d78f4108ff68f65bf2fbb7dd89f33749b6e826b3626e07"
+dependencies = [
+ "tracing",
+ "tracing-subscriber",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "ttf-parser"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0609f771ad9c6155384897e1df4d948e692667cc0588548b68eb44d052b27633"
+
+[[package]]
+name = "type-map"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "deb68604048ff8fa93347f02441e4487594adc20bb8a084f9e564d2b827a0a9f"
+dependencies = [
+ "rustc-hash",
+]
+
+[[package]]
+name = "typenum"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+
+[[package]]
+name = "ucd-trie"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81"
+
+[[package]]
+name = "uds_windows"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d"
+dependencies = [
+ "tempfile",
+ "winapi",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a"
+
+[[package]]
+name = "unicode-width"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
+
+[[package]]
+name = "url"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+]
+
+[[package]]
+name = "uuid"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "valuable"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+
+[[package]]
+name = "vec_map"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+
+[[package]]
+name = "version-compare"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "waker-fn"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
+
+[[package]]
+name = "walkdir"
+version = "2.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
+dependencies = [
+ "same-file",
+ "winapi",
+ "winapi-util",
+]
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.83"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.83"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.83"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.83"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.83"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f"
+
+[[package]]
+name = "wasm-logger"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "074649a66bb306c8f2068c9016395fa65d8e08d2affcbf95acf3c24c3ab19718"
+dependencies = [
+ "log",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wayland-client"
+version = "0.29.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715"
+dependencies = [
+ "bitflags",
+ "downcast-rs",
+ "libc",
+ "nix 0.24.3",
+ "scoped-tls",
+ "wayland-commons",
+ "wayland-scanner",
+ "wayland-sys",
+]
+
+[[package]]
+name = "wayland-commons"
+version = "0.29.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902"
+dependencies = [
+ "nix 0.24.3",
+ "once_cell",
+ "smallvec",
+ "wayland-sys",
+]
+
+[[package]]
+name = "wayland-cursor"
+version = "0.29.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661"
+dependencies = [
+ "nix 0.24.3",
+ "wayland-client",
+ "xcursor",
+]
+
+[[package]]
+name = "wayland-protocols"
+version = "0.29.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6"
+dependencies = [
+ "bitflags",
+ "wayland-client",
+ "wayland-commons",
+ "wayland-scanner",
+]
+
+[[package]]
+name = "wayland-scanner"
+version = "0.29.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "xml-rs",
+]
+
+[[package]]
+name = "wayland-sys"
+version = "0.29.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4"
+dependencies = [
+ "dlib",
+ "lazy_static",
+ "pkg-config",
+]
+
+[[package]]
+name = "web-sys"
+version = "0.3.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "webbrowser"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e74f5ff7786c4c21f61ba8e30ea29c9745f06fca0a4a02d083b3c662583399e8"
+dependencies = [
+ "core-foundation",
+ "dirs",
+ "jni",
+ "log",
+ "ndk-context",
+ "objc",
+ "raw-window-handle 0.5.0",
+ "url",
+ "web-sys",
+ "windows 0.43.0",
+]
+
+[[package]]
+name = "wepoll-ffi"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "wgpu"
+version = "0.14.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81f643110d228fd62a60c5ed2ab56c4d5b3704520bd50561174ec4ec74932937"
+dependencies = [
+ "arrayvec 0.7.2",
+ "js-sys",
+ "log",
+ "naga",
+ "parking_lot",
+ "raw-window-handle 0.5.0",
+ "smallvec",
+ "static_assertions",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "wgpu-core",
+ "wgpu-hal",
+ "wgpu-types",
+]
+
+[[package]]
+name = "wgpu-core"
+version = "0.14.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6000d1284ef8eec6076fd5544a73125fd7eb9b635f18dceeb829d826f41724ca"
+dependencies = [
+ "arrayvec 0.7.2",
+ "bit-vec",
+ "bitflags",
+ "cfg_aliases",
+ "codespan-reporting",
+ "fxhash",
+ "log",
+ "naga",
+ "parking_lot",
+ "profiling",
+ "raw-window-handle 0.5.0",
+ "smallvec",
+ "thiserror",
+ "web-sys",
+ "wgpu-hal",
+ "wgpu-types",
+]
+
+[[package]]
+name = "wgpu-hal"
+version = "0.14.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3cc320a61acb26be4f549c9b1b53405c10a223fbfea363ec39474c32c348d12f"
+dependencies = [
+ "android_system_properties",
+ "arrayvec 0.7.2",
+ "ash",
+ "bit-set",
+ "bitflags",
+ "block",
+ "core-graphics-types",
+ "d3d12",
+ "foreign-types 0.3.2",
+ "fxhash",
+ "glow",
+ "gpu-alloc",
+ "gpu-descriptor",
+ "js-sys",
+ "khronos-egl",
+ "libloading",
+ "log",
+ "metal",
+ "naga",
+ "objc",
+ "parking_lot",
+ "profiling",
+ "range-alloc",
+ "raw-window-handle 0.5.0",
+ "renderdoc-sys",
+ "smallvec",
+ "thiserror",
+ "wasm-bindgen",
+ "web-sys",
+ "wgpu-types",
+ "winapi",
+]
+
+[[package]]
+name = "wgpu-types"
+version = "0.14.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb6b28ef22cac17b9109b25b3bf8c9a103eeb293d7c5f78653979b09140375f6"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-wsapoll"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows"
+version = "0.37.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57b543186b344cc61c85b5aab0d2e3adf4e0f99bc076eff9aa5927bcc0b8a647"
+dependencies = [
+ "windows_aarch64_msvc 0.37.0",
+ "windows_i686_gnu 0.37.0",
+ "windows_i686_msvc 0.37.0",
+ "windows_x86_64_gnu 0.37.0",
+ "windows_x86_64_msvc 0.37.0",
+]
+
+[[package]]
+name = "windows"
+version = "0.43.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04662ed0e3e5630dfa9b26e4cb823b817f1a9addda855d973a9458c236556244"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc 0.42.1",
+ "windows_i686_gnu 0.42.1",
+ "windows_i686_msvc 0.42.1",
+ "windows_x86_64_gnu 0.42.1",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc 0.42.1",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2"
+dependencies = [
+ "windows_aarch64_msvc 0.36.1",
+ "windows_i686_gnu 0.36.1",
+ "windows_i686_msvc 0.36.1",
+ "windows_x86_64_gnu 0.36.1",
+ "windows_x86_64_msvc 0.36.1",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc 0.42.1",
+ "windows_i686_gnu 0.42.1",
+ "windows_i686_msvc 0.42.1",
+ "windows_x86_64_gnu 0.42.1",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc 0.42.1",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.42.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.37.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2623277cb2d1c216ba3b578c0f3cf9cdebeddb6e66b1b218bb33596ea7769c3a"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.42.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.37.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3925fd0b0b804730d44d4b6278c50f9699703ec49bcd628020f46f4ba07d9e1"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.42.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.37.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce907ac74fe331b524c1298683efbf598bb031bc84d5e274db2083696d07c57c"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.42.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.37.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2babfba0828f2e6b32457d5341427dcbb577ceef556273229959ac23a10af33d"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.42.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.42.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.37.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4dd6dc7df2d84cf7b33822ed5b86318fb1781948e9663bacd047fc9dd52259d"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.42.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd"
+
+[[package]]
+name = "winit"
+version = "0.27.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb796d6fbd86b2fd896c9471e6f04d39d750076ebe5680a3958f00f5ab97657c"
+dependencies = [
+ "bitflags",
+ "cocoa",
+ "core-foundation",
+ "core-graphics",
+ "dispatch",
+ "instant",
+ "libc",
+ "log",
+ "mio",
+ "ndk",
+ "ndk-glue",
+ "objc",
+ "once_cell",
+ "parking_lot",
+ "percent-encoding",
+ "raw-window-handle 0.4.3",
+ "raw-window-handle 0.5.0",
+ "sctk-adwaita",
+ "serde",
+ "smithay-client-toolkit",
+ "wasm-bindgen",
+ "wayland-client",
+ "wayland-protocols",
+ "web-sys",
+ "windows-sys 0.36.1",
+ "x11-dl",
+]
+
+[[package]]
+name = "winreg"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winres"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b68db261ef59e9e52806f688020631e987592bd83619edccda9c47d42cde4f6c"
+dependencies = [
+ "toml",
+]
+
+[[package]]
+name = "wio"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d129932f4644ac2396cb456385cbf9e63b5b30c6e8dc4820bdca4eb082037a5"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "wyz"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
+dependencies = [
+ "tap",
+]
+
+[[package]]
+name = "x11-dl"
+version = "2.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f"
+dependencies = [
+ "libc",
+ "once_cell",
+ "pkg-config",
+]
+
+[[package]]
+name = "x11rb"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "592b4883219f345e712b3209c62654ebda0bb50887f330cbd018d0f654bfd507"
+dependencies = [
+ "gethostname",
+ "nix 0.24.3",
+ "winapi",
+ "winapi-wsapoll",
+ "x11rb-protocol",
+]
+
+[[package]]
+name = "x11rb-protocol"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56b245751c0ac9db0e006dc812031482784e434630205a93c73cfefcaabeac67"
+dependencies = [
+ "nix 0.24.3",
+]
+
+[[package]]
+name = "xcb"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62056f63138b39116f82a540c983cc11f1c90cd70b3d492a70c25eaa50bd22a6"
+dependencies = [
+ "libc",
+ "log",
+]
+
+[[package]]
+name = "xcursor"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "463705a63313cd4301184381c5e8042f0a7e9b4bb63653f216311d4ae74690b7"
+dependencies = [
+ "nom",
+]
+
+[[package]]
+name = "xkbcommon"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "032ed00cc755c31221bbd6aaf9fa4196a01bf33bca185f9316e14f26d28c28cf"
+dependencies = [
+ "libc",
+ "memmap",
+ "xcb",
+]
+
+[[package]]
+name = "xml-rs"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3"
+
+[[package]]
+name = "yaml-rust"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
+dependencies = [
+ "linked-hash-map",
+]
+
+[[package]]
+name = "zbus"
+version = "3.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "379d587c0ccb632d1179cf44082653f682842f0535f0fdfaefffc34849cc855e"
+dependencies = [
+ "async-broadcast",
+ "async-executor",
+ "async-io",
+ "async-lock",
+ "async-recursion",
+ "async-task",
+ "async-trait",
+ "byteorder",
+ "derivative",
+ "dirs",
+ "enumflags2",
+ "event-listener",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "hex",
+ "nix 0.25.1",
+ "once_cell",
+ "ordered-stream",
+ "rand",
+ "serde",
+ "serde_repr",
+ "sha1",
+ "static_assertions",
+ "tracing",
+ "uds_windows",
+ "winapi",
+ "zbus_macros",
+ "zbus_names",
+ "zvariant",
+]
+
+[[package]]
+name = "zbus_macros"
+version = "3.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "66492a2e90c0df7190583eccb8424aa12eb7ff06edea415a4fff6688fae18cf8"
+dependencies = [
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "syn",
+]
+
+[[package]]
+name = "zbus_names"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f34f314916bd89bdb9934154627fab152f4f28acdda03e7c4c68181b214fe7e3"
+dependencies = [
+ "serde",
+ "static_assertions",
+ "zvariant",
+]
+
+[[package]]
+name = "zvariant"
+version = "3.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "576cc41e65c7f283e5460f5818073e68fb1f1631502b969ef228c2e03c862efb"
+dependencies = [
+ "byteorder",
+ "enumflags2",
+ "libc",
+ "serde",
+ "static_assertions",
+ "zvariant_derive",
+]
+
+[[package]]
+name = "zvariant_derive"
+version = "3.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fd4aafc0dee96ae7242a24249ce9babf21e1562822f03df650d4e68c20e41ed"
+dependencies = [
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
diff --git a/pkgs/by-name/hy/hyperspeedcube/package.nix b/pkgs/by-name/hy/hyperspeedcube/package.nix
new file mode 100644
index 0000000000000..5b5c53b7708f8
--- /dev/null
+++ b/pkgs/by-name/hy/hyperspeedcube/package.nix
@@ -0,0 +1,131 @@
+{ cmake
+, alsa-lib
+, atk
+, cairo
+, directx-shader-compiler
+, expat
+, fetchFromGitHub
+, fontconfig
+, freetype
+, gdk-pixbuf
+, glib
+, gtk3
+, harfbuzz
+, lib
+, libGL
+, libX11
+, libxcb
+, libXcursor
+, libXi
+, libxkbcommon
+, libXrandr
+, makeWrapper
+, mold
+, pango
+, pkg-config
+, python3
+, rustPlatform
+, shaderc
+, stdenv
+, vulkan-extension-layer
+, vulkan-headers
+, vulkan-loader
+, vulkan-tools
+, vulkan-tools-lunarg
+, vulkan-validation-layers
+, wayland
+, wrapGAppsHook3
+, yq
+, zlib
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "hyperspeedcube";
+  version = "1.0.6";
+
+  src = fetchFromGitHub {
+    owner = "HactarCE";
+    repo = "Hyperspeedcube";
+    rev = "v${version}";
+    hash = "sha256-FcQuXxVxiyI4hOKS70m62BtZMfN5FzGTLagS+2B3WdY=";
+  };
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+     "key-names-1.5.1" = "sha256-ZO3mlCoUHCaMnxD2vQno6GNx0+JmwZ8OiqpyveiVfvc=";
+    };
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    (lib.getDev libxcb)
+    python3
+    makeWrapper
+    wrapGAppsHook3
+  ];
+
+  buildInputs = [
+    alsa-lib
+    atk
+    cairo
+    directx-shader-compiler
+    expat
+    fontconfig
+    freetype
+    gdk-pixbuf
+    glib
+    gtk3
+    harfbuzz
+    mold
+    pango
+    shaderc
+    zlib
+
+    # for execution errors (see https://github.com/emilk/egui/discussions/1587)
+    libxkbcommon
+    libGL
+
+    # WINIT_UNIX_BACKEND=wayland
+    wayland
+
+    # WINIT_UNIX_BACKEND=x11
+    libXcursor
+    libXrandr
+    libXi
+    libX11
+
+    vulkan-headers
+    vulkan-loader
+    vulkan-tools
+    vulkan-tools-lunarg
+    vulkan-extension-layer
+    vulkan-validation-layers
+
+    yq
+  ];
+
+  postInstall = ''
+    patchelf \
+      --add-needed ${vulkan-loader}/lib/libvulkan.so.1 \
+      --add-needed ${libGL}/lib/libEGL.so.1 \
+      $out/bin/hyperspeedcube
+    wrapProgram $out/bin/hyperspeedcube --set WAYLAND_DISPLAY "" --set XDG_SESSION_TYPE ""
+    touch $out/bin/nonportable
+  '';
+
+  meta = {
+    description = "Hyperspeedcube is a 3D and 4D Rubik's cube simulator";
+    longDescription = ''
+      Hyperspeedcube is a modern, beginner-friendly 3D and 4D Rubik's cube
+      simulator with customizable mouse and keyboard controls and advanced
+      features for speedsolving. It's been used to break numerous speedsolving
+      records and runs on all major operating systems plus the web.
+    '';
+    homepage = "https://ajfarkas.dev/hyperspeedcube/";
+    license = lib.licenses.cc-by-nc-sa-40;
+    maintainers = [ lib.maintainers.omnipotententity ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/by-name/hy/hyprcursor/package.nix b/pkgs/by-name/hy/hyprcursor/package.nix
index eade6e69456bc..5b8480dc20cd0 100644
--- a/pkgs/by-name/hy/hyprcursor/package.nix
+++ b/pkgs/by-name/hy/hyprcursor/package.nix
@@ -12,13 +12,13 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "hyprcursor";
-  version = "0.1.8";
+  version = "0.1.9";
 
   src = fetchFromGitHub {
     owner = "hyprwm";
     repo = "hyprcursor";
     rev = "refs/tags/v${finalAttrs.version}";
-    hash = "sha256-zJboXgWNpNhKyNF8H/3UYzWkx7w00TOCGKi3cwi+tsw=";
+    hash = "sha256-FIN1wMoyePBTtibCbaeJaoKNLuAYIGwLCWAYC1DJanw=";
   };
 
   patches = [
@@ -49,7 +49,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/hyprwm/hyprcursor";
-    description = "The hyprland cursor format, library and utilities";
+    description = "Hyprland cursor format, library and utilities";
     changelog = "https://github.com/hyprwm/hyprcursor/releases/tag/v${finalAttrs.version}";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ iynaix ];
diff --git a/pkgs/by-name/hy/hyprkeys/package.nix b/pkgs/by-name/hy/hyprkeys/package.nix
index e4ae721ed5e14..ae13dadb1401e 100644
--- a/pkgs/by-name/hy/hyprkeys/package.nix
+++ b/pkgs/by-name/hy/hyprkeys/package.nix
@@ -35,7 +35,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A simple, scriptable keybind retrieval utility for Hyprland";
+    description = "Simple, scriptable keybind retrieval utility for Hyprland";
     homepage = "https://github.com/hyprland-community/Hyprkeys";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ NotAShelf donovanglover ];
diff --git a/pkgs/by-name/hy/hyprland-activewindow/package.nix b/pkgs/by-name/hy/hyprland-activewindow/package.nix
index 5bbdd467fd6eb..82de87a7ccb93 100644
--- a/pkgs/by-name/hy/hyprland-activewindow/package.nix
+++ b/pkgs/by-name/hy/hyprland-activewindow/package.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-s3Ho0+OzuLuWqFvaBu9NLXoasByHSuun9eJGAAISOJc=";
 
   meta = with lib; {
-    description = "A multi-monitor-aware Hyprland workspace widget helper";
+    description = "Multi-monitor-aware Hyprland workspace widget helper";
     homepage = "https://github.com/FieldofClay/hyprland-activewindow";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/by-name/hy/hyprland-workspaces/package.nix b/pkgs/by-name/hy/hyprland-workspaces/package.nix
index 11307059e6806..73c7ebe1ec420 100644
--- a/pkgs/by-name/hy/hyprland-workspaces/package.nix
+++ b/pkgs/by-name/hy/hyprland-workspaces/package.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-RZVQSkegX8Fa9SNY7tGNxyu312oeDjXK4U1+1/UIAyA=";
 
   meta = with lib; {
-    description = "A multi-monitor aware Hyprland workspace widget";
+    description = "Multi-monitor aware Hyprland workspace widget";
     homepage = "https://github.com/FieldofClay/hyprland-workspaces";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/by-name/hy/hyprland/info.json b/pkgs/by-name/hy/hyprland/info.json
new file mode 100644
index 0000000000000..ef4aabbe6b03a
--- /dev/null
+++ b/pkgs/by-name/hy/hyprland/info.json
@@ -0,0 +1,7 @@
+{
+  "branch": "main",
+  "commit_hash": "9e781040d9067c2711ec2e9f5b47b76ef70762b3",
+  "commit_message": "props: bump version to 0.41.1",
+  "date": "2024-06-13",
+  "tag": "v0.41.1"
+}
diff --git a/pkgs/applications/window-managers/hyprwm/hyprland/default.nix b/pkgs/by-name/hy/hyprland/package.nix
index 6a2721b8dab9a..ae3e38de9a6ce 100644
--- a/pkgs/applications/window-managers/hyprwm/hyprland/default.nix
+++ b/pkgs/by-name/hy/hyprland/package.nix
@@ -9,21 +9,29 @@
 , binutils
 , cairo
 , epoll-shim
+, expat
+, fribidi
 , git
 , hyprcursor
 , hyprland-protocols
 , hyprlang
+, hyprutils
 , hyprwayland-scanner
 , jq
 , libGL
 , libdrm
+, libdatrie
 , libexecinfo
 , libinput
+, libselinux
+, libsepol
+, libthai
 , libuuid
 , libxkbcommon
 , mesa
 , pango
 , pciutils
+, pcre2
 , pkgconf
 , python3
 , systemd
@@ -47,20 +55,23 @@
 , hidpiXWayland ? false
 , enableNvidiaPatches ? false
 }:
+let
+  info = builtins.fromJSON (builtins.readFile ./info.json);
+in
 assert lib.assertMsg (!nvidiaPatches) "The option `nvidiaPatches` has been removed.";
 assert lib.assertMsg (!enableNvidiaPatches) "The option `enableNvidiaPatches` has been removed.";
 assert lib.assertMsg (!hidpiXWayland) "The option `hidpiXWayland` has been removed. Please refer https://wiki.hyprland.org/Configuring/XWayland";
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "hyprland" + lib.optionalString debug "-debug";
-  version = "0.40.0-unstable-2024-05-12";
+  version = "0.41.1";
 
   src = fetchFromGitHub {
     owner = "hyprwm";
     repo = finalAttrs.pname;
     fetchSubmodules = true;
-    rev = "2ccd45a84475fab46c6fecd2fe226d3173104743";
-    hash = "sha256-nBCQuRl4sS/G/OUS+txeelFShBEgSk2OrN6kBYMHuOg=";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-hLnnNBWP1Qjs1I3fndMgp8rbWJruxdnGTq77A4Rv4R4=";
   };
 
   postPatch = ''
@@ -71,9 +82,14 @@ stdenv.mkDerivation (finalAttrs: {
     sed -i "s#@PREFIX@/##g" hyprland.pc.in
   '';
 
-  # used by version.sh
-  DATE = "2024-05-12";
-  HASH = finalAttrs.src.rev;
+  # variables used by generateVersion.sh script, and shown in `hyprctl version`
+  BRANCH = info.branch;
+  COMMITS = info.commit_hash;
+  DATE = info.date;
+  DIRTY = "";
+  HASH = info.commit_hash;
+  MESSAGE = info.commit_message;
+  TAG = info.tag;
 
   depsBuildBuild = [
     # to find wayland-scanner when cross-compiling
@@ -101,13 +117,20 @@ stdenv.mkDerivation (finalAttrs: {
 
   buildInputs = [
     cairo
+    expat
+    fribidi
     git
-    hyprcursor
+    hyprcursor.dev
     hyprland-protocols
     hyprlang
+    hyprutils
     libGL
+    libdatrie
     libdrm
     libinput
+    libselinux
+    libsepol
+    libthai
     libuuid
     libxkbcommon
     mesa
@@ -115,6 +138,7 @@ stdenv.mkDerivation (finalAttrs: {
     wayland-protocols
     pango
     pciutils
+    pcre2
     tomlplusplus
     # for subproject wlroots-hyprland
     seatd
@@ -155,11 +179,16 @@ stdenv.mkDerivation (finalAttrs: {
 
   passthru.providedSessions = [ "hyprland" ];
 
-  meta = with lib; {
+  passthru.updateScript = ./update.sh;
+
+  meta = {
     homepage = "https://github.com/hyprwm/Hyprland";
-    description = "A dynamic tiling Wayland compositor that doesn't sacrifice on its looks";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ wozeparrot fufexan ];
+    description = "Dynamic tiling Wayland compositor that doesn't sacrifice on its looks";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [
+      wozeparrot
+      fufexan
+    ];
     mainProgram = "Hyprland";
     platforms = lib.platforms.linux;
   };
diff --git a/pkgs/by-name/hy/hyprland/update.sh b/pkgs/by-name/hy/hyprland/update.sh
new file mode 100755
index 0000000000000..c729705f6b1d0
--- /dev/null
+++ b/pkgs/by-name/hy/hyprland/update.sh
@@ -0,0 +1,35 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p common-updater-scripts fd jq
+
+set -eou pipefail
+
+latest_release="$(curl --silent 'https://api.github.com/repos/hyprwm/Hyprland/releases/latest')"
+latest_tag="$(curl --silent 'https://api.github.com/repos/hyprwm/Hyprland/tags?per_page=1')"
+commit_hash="$(jq -r '.[0].commit.sha' <<<"$latest_tag")"
+latest_commit="$(curl --silent 'https://api.github.com/repos/hyprwm/Hyprland/commits/'"$commit_hash"'')"
+commit_message="$(jq -r '.commit.message' <<<"$latest_commit")"
+
+tag=$(jq -r '.tag_name' <<<"$latest_release")
+# drop 'v' prefix
+version="${tag#v}"
+
+branch=$(jq -r '.target_commitish' <<<"$latest_release")
+
+date=$(jq -r '.created_at' <<<"$latest_release")
+# truncate time
+date=${date%T*}
+
+# update version; otherwise fail
+update-source-version hyprland "$version" --ignore-same-hash
+
+# find hyprland dir
+files="$(fd --full-path /hyprland/ | head -1)"
+dir="${files%/*}"
+
+echo -e '{
+  "branch": "'"$branch"'",
+  "commit_hash": "'"$commit_hash"'",
+  "commit_message": "'"$commit_message"'",
+  "date": "'"$date"'",
+  "tag": "'"$tag"'"
+}' >"$dir/info.json"
diff --git a/pkgs/by-name/hy/hyprlang/package.nix b/pkgs/by-name/hy/hyprlang/package.nix
index 8cb98c4e79cf2..d856d5879d570 100644
--- a/pkgs/by-name/hy/hyprlang/package.nix
+++ b/pkgs/by-name/hy/hyprlang/package.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "hyprlang";
-  version = "0.5.1";
+  version = "0.5.2";
 
   src = fetchFromGitHub {
     owner = "hyprwm";
     repo = "hyprlang";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-502X0Q0fhN6tJK7iEUA8CghONKSatW/Mqj4Wappd++0=";
+    hash = "sha256-Jq9hHYFL5nMHArWgJIcrDHGnzs/MjDi95cyB7cUZIJ4=";
   };
 
   nativeBuildInputs = [
@@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://github.com/hyprwm/hyprlang";
-    description = "The official implementation library for the hypr config language";
+    description = "Official implementation library for the hypr config language";
     license = licenses.lgpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ iogamaster fufexan ];
diff --git a/pkgs/by-name/hy/hyprshot/package.nix b/pkgs/by-name/hy/hyprshot/package.nix
index aef578f2f8547..98f94ea5d819c 100644
--- a/pkgs/by-name/hy/hyprshot/package.nix
+++ b/pkgs/by-name/hy/hyprshot/package.nix
@@ -12,13 +12,13 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "hyprshot";
-  version = "1.2.3";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "Gustash";
     repo = "hyprshot";
     rev = finalAttrs.version;
-    hash = "sha256-sew47VR5ZZaLf1kh0d8Xc5GVYbJ1yWhlug+Wvf+k7iY=";
+    hash = "sha256-9taTmV357cWglMGuN3NLq3bfNneFthwV6y+Ml4qEeHA=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -37,7 +37,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://github.com/Gustash/hyprshot";
-    description = "Hyprshot is an utility to easily take screenshots in Hyprland using your mouse.";
+    description = "Hyprshot is an utility to easily take screenshots in Hyprland using your mouse";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ Cryolitia ];
     mainProgram = "hyprshot";
diff --git a/pkgs/by-name/hy/hyprutils/package.nix b/pkgs/by-name/hy/hyprutils/package.nix
new file mode 100644
index 0000000000000..1ad3a925ff323
--- /dev/null
+++ b/pkgs/by-name/hy/hyprutils/package.nix
@@ -0,0 +1,44 @@
+{
+  lib,
+  stdenv,
+  cmake,
+  pkg-config,
+  pixman,
+  fetchFromGitHub,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "hyprutils";
+  version = "0.1.4";
+
+  src = fetchFromGitHub {
+    owner = "hyprwm";
+    repo = "hyprutils";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-CqRZne63BpYlPd/i8lXV0UInUt59oKogiwdVtBRHt60=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    pixman
+  ];
+
+  outputs = ["out" "dev"];
+
+  cmakeBuildType = "RelWithDebInfo";
+
+  meta = {
+    homepage = "https://github.com/hyprwm/hyprutils";
+    description = "Small C++ library for utilities used across the Hypr* ecosystem";
+    license = lib.licenses.bsd3;
+    platforms = lib.platforms.linux;
+    maintainers =  with lib.maintainers; [
+      donovanglover
+      johnrtitor
+    ];
+  };
+})
diff --git a/pkgs/by-name/hy/hyprwayland-scanner/package.nix b/pkgs/by-name/hy/hyprwayland-scanner/package.nix
index 8a67503d804be..ec295b2d72859 100644
--- a/pkgs/by-name/hy/hyprwayland-scanner/package.nix
+++ b/pkgs/by-name/hy/hyprwayland-scanner/package.nix
@@ -4,17 +4,18 @@
 , cmake
 , pkg-config
 , pugixml
+, nix-update-script
 ,
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "hyprwayland-scanner";
-  version = "0.3.8";
+  version = "0.3.10";
 
   src = fetchFromGitHub {
     owner = "hyprwm";
     repo = "hyprwayland-scanner";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-/DwglRvj4XF4ECdNtrCIbthleszAZBwOiXG5A6r0K/c=";
+    hash = "sha256-YxmfxHfWed1fosaa7fC1u7XoKp1anEZU+7Lh/ojRKoM=";
   };
 
   nativeBuildInputs = [
@@ -28,12 +29,15 @@ stdenv.mkDerivation (finalAttrs: {
 
   doCheck = true;
 
-  meta = with lib; {
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
     homepage = "https://github.com/hyprwm/hyprwayland-scanner";
-    description = "A Hyprland version of wayland-scanner in and for C++";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ fufexan ];
+    description = "Hyprland version of wayland-scanner in and for C++";
+    changelog = "https://github.com/hyprwm/hyprwayland-scanner/releases/tag/${finalAttrs.version}";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ fufexan ];
     mainProgram = "hyprwayland-scanner";
-    platforms = platforms.linux;
+    platforms = lib.platforms.linux;
   };
 })
diff --git a/pkgs/by-name/i2/i2p/package.nix b/pkgs/by-name/i2/i2p/package.nix
index 7f1cfb025558c..f42f3cafebcb0 100644
--- a/pkgs/by-name/i2/i2p/package.nix
+++ b/pkgs/by-name/i2/i2p/package.nix
@@ -13,7 +13,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "i2p";
-  version = "2.5.1";
+  version = "2.5.2";
 
   src = fetchzip {
     urls = [
@@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: {
       "https://files.i2p-projekt.de/"
       "https://download.i2p2.no/releases/"
     ]);
-    hash = "sha256-38kG0UyU1ngVdUb/H5tIuG3p+bsvJznjervDh3TWoGo=";
+    hash = "sha256-0ftTLdU/tf1xTUSuqHvveSS33h1XLGPkrXcGpIe8f0U=";
   };
 
   strictDeps = true;
diff --git a/pkgs/by-name/i3/i3-open-next-ws/package.nix b/pkgs/by-name/i3/i3-open-next-ws/package.nix
index 129f170dd28e3..a28f9a56666c9 100644
--- a/pkgs/by-name/i3/i3-open-next-ws/package.nix
+++ b/pkgs/by-name/i3/i3-open-next-ws/package.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-9U0bYCbkvcZJOCd4jZog4bSJkP1ntmAFjWm7lJDdcuo=";
 
   meta = {
-    description = "A workspace management utility for i3 and sway, that picks the first unused workspace automagically";
+    description = "Workspace management utility for i3 and sway, that picks the first unused workspace automagically";
     homepage = "https://github.com/JohnDowson/i3-open-next-ws";
     license = lib.licenses.mit;
     mainProgram = "i3-open-next-ws";
diff --git a/pkgs/by-name/i3/i3bar-river/package.nix b/pkgs/by-name/i3/i3bar-river/package.nix
index f94b8628f6039..b0101f323b74b 100644
--- a/pkgs/by-name/i3/i3bar-river/package.nix
+++ b/pkgs/by-name/i3/i3bar-river/package.nix
@@ -22,7 +22,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ pango ];
 
   meta = with lib; {
-    description = "A port of i3bar for river";
+    description = "Port of i3bar for river";
     homepage = "https://github.com/MaxVerevkin/i3bar-river";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ nicegamer7 ];
diff --git a/pkgs/by-name/ia/ianny/package.nix b/pkgs/by-name/ia/ianny/package.nix
index 6b7c3ca940e54..f6ccb9db544f8 100644
--- a/pkgs/by-name/ia/ianny/package.nix
+++ b/pkgs/by-name/ia/ianny/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ianny";
-  version = "1.0.0beta.1";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "zefr0x";
     repo = "ianny";
     rev = "v${version}";
-    hash = "sha256-Bnr+wtusvTM690IISBs0wKj0ChBoIrMHyVZ8wdGgK08=";
+    hash = "sha256-1QkGs4qCzEA4K3H39QcRV+yINIeZRkjBBkASO69F7ik=";
   };
 
-  cargoHash = "sha256-/8C+hDq/z+h1uxO9prLbKHgyfMGrMODAs5/yUrutaAM=";
+  cargoHash = "sha256-gKCmiqHkCB7nP5XIaFi/8Wi/x5WFEHEmHczKiIDDxXE=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ dbus.dev ];
@@ -33,7 +33,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "Desktop utility that helps preventing repetitive strain injuries by keeping track of usage patterns and periodically informing the user to take breaks.";
+    description = "Desktop utility that helps preventing repetitive strain injuries by keeping track of usage patterns and periodically informing the user to take breaks";
     homepage = "https://github.com/zefr0x/ianny";
     license = licenses.gpl3;
     mainProgram = "ianny";
diff --git a/pkgs/by-name/ic/ice-bar/package.nix b/pkgs/by-name/ic/ice-bar/package.nix
new file mode 100644
index 0000000000000..95b1170f2a859
--- /dev/null
+++ b/pkgs/by-name/ic/ice-bar/package.nix
@@ -0,0 +1,41 @@
+{
+  lib,
+  stdenvNoCC,
+  unzip,
+  fetchurl,
+  nix-update-script,
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "ice-bar";
+  version = "0.9.0";
+
+  src = fetchurl {
+    url = "https://github.com/jordanbaird/Ice/releases/download/${finalAttrs.version}/Ice.zip";
+    hash = "sha256-MvkJRP8Stz9VIK3vBnWezVKq2KkPfUa/NUBxJtYzHhU=";
+  };
+
+  sourceRoot = ".";
+
+  nativeBuildInputs = [ unzip ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p "$out/Applications"
+    cp -r *.app "$out/Applications"
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "Powerful menu bar manager for macOS";
+    homepage = "https://icemenubar.app/";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ donteatoreo ];
+    platforms = lib.platforms.darwin;
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+  };
+})
diff --git a/pkgs/by-name/ic/icewm/package.nix b/pkgs/by-name/ic/icewm/package.nix
index 2d606a0c3aac9..cf39b6613f068 100644
--- a/pkgs/by-name/ic/icewm/package.nix
+++ b/pkgs/by-name/ic/icewm/package.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , expat
 , flac
@@ -41,19 +40,22 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "icewm";
-  version = "3.5.0";
+  version = "3.6.0";
 
   src = fetchFromGitHub {
     owner = "ice-wm";
     repo = "icewm";
     rev = finalAttrs.version;
-    hash = "sha256-n0p8i6v6QreCFiChngHnx+5K4Djj34/+dmIA+bj/0cU=";
+    hash = "sha256-gxRKLukwdyCvqQ+gRYb4cv/8B52nRAFwdcps6FcKFXk=";
   };
 
+  strictDeps = true;
+
   nativeBuildInputs = [
     cmake
     perl
     pkg-config
+    gettext # msgmerge
   ];
 
   buildInputs = [
@@ -104,7 +106,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://ice-wm.org/";
-    description = "A simple, lightweight X window manager";
+    description = "Simple, lightweight X window manager";
     longDescription = ''
       IceWM is a window manager for the X Window System. The goal of IceWM is
       speed, simplicity, and not getting in the user’s way. It comes with a
diff --git a/pkgs/by-name/ic/icloudpd/package.nix b/pkgs/by-name/ic/icloudpd/package.nix
index f4e9208838314..e345ca65c7adf 100644
--- a/pkgs/by-name/ic/icloudpd/package.nix
+++ b/pkgs/by-name/ic/icloudpd/package.nix
@@ -8,14 +8,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "icloudpd";
-  version = "1.17.5";
+  version = "1.19.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "icloud-photos-downloader";
     repo = "icloud_photos_downloader";
     rev = "v${version}";
-    hash = "sha256-1tyvoDAlh2UuPWDqA7mwC1v5kij3v3aBZBfIG/vluJo=";
+    hash = "sha256-0DbYbBs/8irj/55+WHyNj+iLWh7KqxReVWfmsWz43Xo=";
   };
 
   pythonRelaxDeps = true;
@@ -40,6 +40,7 @@ python3Packages.buildPythonApplication rec {
     certifi
     keyring
     keyrings-alt
+    typing-extensions
   ];
 
   nativeCheckInputs = with python3Packages; [
@@ -78,6 +79,6 @@ python3Packages.buildPythonApplication rec {
     description = "iCloud Photos Downloader";
     license = licenses.mit;
     mainProgram = "icloudpd";
-    maintainers = with maintainers; [ anpin Enzime ];
+    maintainers = with maintainers; [ anpin Enzime jnsgruk ];
   };
 }
diff --git a/pkgs/by-name/id/ida-free/package.nix b/pkgs/by-name/id/ida-free/package.nix
index aac31480a08f1..a103480d72476 100644
--- a/pkgs/by-name/id/ida-free/package.nix
+++ b/pkgs/by-name/id/ida-free/package.nix
@@ -50,8 +50,11 @@ stdenv.mkDerivation rec {
     desktopName = "IDA Free";
     genericName = "Interactive Disassembler";
     categories = [ "Development" ];
+    startupWMClass = "IDA";
   };
 
+  desktopItems = [ desktopItem ];
+
   nativeBuildInputs = [ makeWrapper copyDesktopItems autoPatchelfHook libsForQt5.wrapQtAppsHook ];
 
   # We just get a runfile in $src, so no need to unpack it.
diff --git a/pkgs/by-name/id/idb-companion/package.nix b/pkgs/by-name/id/idb-companion/package.nix
index f133373acfa63..28bc9580dd2c4 100644
--- a/pkgs/by-name/id/idb-companion/package.nix
+++ b/pkgs/by-name/id/idb-companion/package.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A powerful command line tool for automating iOS simulators and devices";
+    description = "Powerful command line tool for automating iOS simulators and devices";
     homepage = "https://github.com/facebook/idb";
     license = licenses.mit;
     platforms = platforms.darwin;
diff --git a/pkgs/by-name/id/ideamaker/mimetypes.xml b/pkgs/by-name/id/ideamaker/mimetypes.xml
new file mode 100644
index 0000000000000..1bef9f862f731
--- /dev/null
+++ b/pkgs/by-name/id/ideamaker/mimetypes.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
+  <mime-type type="model/3mf">
+    <icon name="3MF"/>
+    <generic-icon name="3MF"/>
+  </mime-type>
+  <mime-type type="application/x-ideamaker">
+    <glob pattern="*.idea"/>
+    <comment xml:lang="en">IDEA project</comment>
+    <icon name="IDEA"/>
+    <generic-icon name="IDEA"/>
+  </mime-type>
+  <mime-type type="model/stl">
+    <icon name="STL"/>
+    <generic-icon name="STL"/>
+  </mime-type>
+  <mime-type type="model/obj">
+    <icon name="OBJ"/>
+    <generic-icon name="OBJ"/>
+  </mime-type>
+  <mime-type type="text/x.gcode">
+    <icon name="GCODE"/>
+    <generic-icon name="GCODE"/>
+  </mime-type>
+</mime-info>
diff --git a/pkgs/by-name/id/ideamaker/package.nix b/pkgs/by-name/id/ideamaker/package.nix
new file mode 100644
index 0000000000000..42f18c6dd669c
--- /dev/null
+++ b/pkgs/by-name/id/ideamaker/package.nix
@@ -0,0 +1,225 @@
+{
+  stdenv,
+  autoPatchelfHook,
+  cacert,
+  common-updater-scripts,
+  curl,
+  dpkg,
+  fetchurl,
+  fetchzip,
+  lib,
+  libcork,
+  libGLU,
+  libsForQt5,
+  makeDesktopItem,
+  openssl,
+  shared-mime-info,
+  writeShellApplication,
+}:
+stdenv.mkDerivation (finalAttrs: {
+  pname = "ideamaker";
+  version = "4.3.3.6560";
+  src =
+    let
+      semver = lib.strings.concatStringsSep "." (
+        lib.lists.init (builtins.splitVersion finalAttrs.version)
+      );
+    in
+    fetchurl {
+      url = "https://download.raise3d.com/${finalAttrs.pname}/release/${semver}/ideaMaker_${finalAttrs.version}-ubuntu_amd64.deb";
+      sha256 = "sha256-aTVWCTgnVKD16uhJUVz0vR7KPGJqCVj0xoL53Qi3IKM=";
+    };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    dpkg
+    shared-mime-info
+    libsForQt5.wrapQtAppsHook
+  ];
+
+  buildInputs =
+    let
+      # we need curl 7.47.0, as the app segfaults on launch in 7.47.1 and beyond
+      # (tested with 7.47.1, 7.50.3, 7.62, 7.79.1, and 8.7.1)
+      curl_7_47_0 =
+        let
+          openssl_1_0_1u = openssl.overrideAttrs (previous: {
+            version = "1.0.1u";
+            src = fetchurl {
+              url = "https://www.openssl.org/source/openssl-1.0.1u.tar.gz";
+              sha256 = "0fb7y9pwbd76pgzd7xzqfrzibmc0vf03sl07f34z5dhm2b5b84j3";
+            };
+            patches = [ ];
+            withDocs = false;
+            outputs = lib.lists.remove "doc" previous.outputs;
+            meta.knownVulnerabilities = [
+              "OpenSSL 1.0.1 reached its end of life 2016-12-31, see https://endoflife.software/applications/security-libraries/openssl."
+              "CVE-2021-4044"
+              "CVE-2016-7056"
+            ];
+          });
+        in
+        (curl.override {
+          gnutlsSupport = true;
+          gssSupport = false;
+          http2Support = false;
+          # while we use openssl, the configureFlag has since changed, so we manually set it below
+          opensslSupport = false;
+          pslSupport = false;
+          scpSupport = false;
+        }).overrideAttrs
+          (previous: {
+            version = "7.47.0";
+            src = fetchzip {
+              url = "https://curl.se/download/curl-7.47.0.tar.lzma";
+              sha256 = "sha256-XlZk1nJbSmiQp7jMSE2QRCY4C9w2us8BgosBSzlD4dE=";
+            };
+            configureFlags = previous.configureFlags ++ [
+              "--with-ca-bundle=${cacert}/etc/ssl/certs/ca-bundle.crt"
+              "--with-ssl=${lib.getLib openssl_1_0_1u}"
+            ];
+            patches = [ ];
+            # curl https://curl.se/docs/vuln-7.74.0.json | jq -r '.[].id' | sed 's/^/"/;s/$/"/'
+            meta.knownVulnerabilities = [
+              "CURL-CVE-2024-2398"
+              "CURL-CVE-2023-46218"
+              "CURL-CVE-2023-38546"
+              "CURL-CVE-2023-38545"
+              "CURL-CVE-2023-28322"
+              "CURL-CVE-2023-28321"
+              "CURL-CVE-2023-28320"
+              "CURL-CVE-2023-27538"
+              "CURL-CVE-2023-27536"
+              "CURL-CVE-2023-27535"
+              "CURL-CVE-2023-27534"
+              "CURL-CVE-2023-27533"
+              "CURL-CVE-2023-23916"
+              "CURL-CVE-2022-43552"
+              "CURL-CVE-2022-32221"
+              "CURL-CVE-2022-35252"
+              "CURL-CVE-2022-32208"
+              "CURL-CVE-2022-32207"
+              "CURL-CVE-2022-32206"
+              "CURL-CVE-2022-32205"
+              "CURL-CVE-2022-27782"
+              "CURL-CVE-2022-27781"
+              "CURL-CVE-2022-27776"
+              "CURL-CVE-2022-27775"
+              "CURL-CVE-2022-27774"
+              "CURL-CVE-2022-22576"
+              "CURL-CVE-2021-22947"
+              "CURL-CVE-2021-22946"
+              "CURL-CVE-2021-22945"
+              "CURL-CVE-2021-22926"
+              "CURL-CVE-2021-22925"
+              "CURL-CVE-2021-22924"
+              "CURL-CVE-2021-22923"
+              "CURL-CVE-2021-22922"
+              "CURL-CVE-2021-22898"
+              "CURL-CVE-2021-22897"
+              "CURL-CVE-2021-22890"
+              "CURL-CVE-2021-22876"
+            ];
+          });
+    in
+    [
+      (lib.getLib curl_7_47_0)
+      libcork
+      libGLU
+      libsForQt5.qtbase
+      libsForQt5.qtserialport
+      libsForQt5.quazip
+    ];
+
+  unpackPhase = ''
+    runHook preUnpack
+    dpkg-deb -x $src .
+    runHook postUnpack
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D usr/lib/x86_64-linux-gnu/ideamaker/ideamaker \
+      $out/bin/${finalAttrs.pname}
+
+    patchelf --replace-needed libquazip.so.1 libquazip1-qt5.so \
+      $out/bin/${finalAttrs.pname}
+
+    mimetypeDir=$out/share/icons/hicolor/128x128/mimetypes
+    mkdir -p ''$mimetypeDir
+    for file in usr/share/ideamaker/icons/*.ico; do
+      mv $file ''$mimetypeDir/''$(basename ''${file%.ico}).png
+    done
+    install -D ${./mimetypes.xml} \
+      $out/share/mime/packages/${finalAttrs.pname}.xml
+
+    install -D usr/share/ideamaker/icons/ideamaker-icon.png \
+      $out/share/pixmaps/${finalAttrs.pname}.png
+
+    ln -s ${finalAttrs.desktopItem}/share/applications $out/share/
+
+    runHook postInstall
+  '';
+
+  desktopItem = makeDesktopItem {
+    name = finalAttrs.pname;
+    exec = finalAttrs.pname;
+    icon = finalAttrs.pname;
+    desktopName = "Ideamaker";
+    comment = "ideaMaker - www.raise3d.com";
+    categories = [
+      "Qt"
+      "Utility"
+      "3DGraphics"
+      "Viewer"
+      "Engineering"
+    ];
+    genericName = finalAttrs.meta.description;
+    mimeTypes = [
+      "application/x-ideamaker"
+      "model/3mf"
+      "model/obj"
+      "model/stl"
+      "text/x.gcode"
+    ];
+    noDisplay = false;
+    startupNotify = true;
+    terminal = false;
+    type = "Application";
+  };
+
+  passthru.updateScript = lib.getExe (writeShellApplication {
+    name = "ideamaker-update-script";
+    runtimeInputs = [
+      curl
+      common-updater-scripts
+    ];
+    text = ''
+      set -eu -o pipefail
+
+      release_page=$(mktemp)
+      curl -s https://www.raise3d.com/download/ideamaker-all-versions/ > "$release_page"
+
+      latest_stable_version=$(
+        sed -nE '/Beta|Alpha/! s/.*Version ([0-9]+\.[0-9]+\.[0-9]+).*/\1/p' "$release_page" | \
+          head -n 1
+      )
+
+      latest_stable_build_number=$(
+        sed -nE "s/.*ideaMaker_$latest_stable_version\.([0-9]+).*/\1/p" "$release_page" | head -n 1
+      )
+
+      update-source-version ideamaker "$latest_stable_version.$latest_stable_build_number"
+    '';
+  });
+
+  meta = {
+    homepage = "https://www.raise3d.com/ideamaker/";
+    description = "Raise3D's 3D slicer software";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+    license = lib.licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with lib.maintainers; [ cjshearer ];
+  };
+})
diff --git a/pkgs/by-name/ig/igir/package.nix b/pkgs/by-name/ig/igir/package.nix
index 820d843dc0ed4..95f00111825a8 100644
--- a/pkgs/by-name/ig/igir/package.nix
+++ b/pkgs/by-name/ig/igir/package.nix
@@ -10,16 +10,16 @@
 
 buildNpmPackage rec {
   pname = "igir";
-  version = "2.6.3";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     owner = "emmercm";
     repo = "igir";
     rev = "v${version}";
-    hash = "sha256-0WA+7qw5ZuELHc8P0yizV+kEwSmoUBmgReM8ZosGnqs=";
+    hash = "sha256-tfwXvLUcueGnImzmfUTV7l00+peLlJsxhreejoSVPPo=";
   };
 
-  npmDepsHash = "sha256-UfTq7/da1V9ubHh2wGvktP/SiWfyL8yF9iuCOq8Hxwg=";
+  npmDepsHash = "sha256-MpTGG/ySZ6xw+bW+AEFQqEFbN2FutopkLXtx0VlqmjE=";
 
   # I have no clue why I have to do this
   postPatch = ''
@@ -35,7 +35,7 @@ buildNpmPackage rec {
   autoPatchelfIgnoreMissingDeps = [ "libc.musl-x86_64.so.1" ];
 
   meta = with lib; {
-    description = "A video game ROM collection manager to help filter, sort, patch, archive, and report on collections on any OS";
+    description = "Video game ROM collection manager to help filter, sort, patch, archive, and report on collections on any OS";
     mainProgram = "igir";
     homepage = "https://igir.io";
     license = licenses.gpl3Plus;
diff --git a/pkgs/by-name/ig/igvm-tooling/package.nix b/pkgs/by-name/ig/igvm-tooling/package.nix
index de9bdd996bf1f..e5cb4a564b790 100644
--- a/pkgs/by-name/ig/igvm-tooling/package.nix
+++ b/pkgs/by-name/ig/igvm-tooling/package.nix
@@ -8,14 +8,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "igvm-tooling";
-  version = "1.5.0";
+  version = "1.5.0-unstable-2024-06-06";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "microsoft";
     repo = "igvm-tooling";
-    rev = "igvm-${version}";
-    hash = "sha256-13TtiJv2w9WXSW6oPMfo+rRah+Q1wHV14aBaFGfz9CE=";
+    rev = "53656ddde294bbafcae6349b5acfc5da9f7dbb92";
+    hash = "sha256-X9Gi+kTmc/ZcsgbHldEj9zPnOmd5puDD7/+J1s1CVws=";
   };
 
   patches = [
@@ -27,22 +27,6 @@ python3.pkgs.buildPythonApplication rec {
       sha256 = "sha256-tcVxcuLxknyEdo2YjeHOqSG9xQna8US+YyvlcfX+Htw=";
       stripLen = 1;
     })
-    # write updated acpi files to tempdir (instead of nix store path) at runtime
-    # remove once https://github.com/microsoft/igvm-tooling/pull/54 is merged
-    (fetchpatch {
-      name = "0002-acpi-update-dsl-files-in-tempdir.patch";
-      url = "https://github.com/microsoft/igvm-tooling/commit/20f8d123ec6531d8540074b7df2ee12de60e73b8.patch";
-      sha256 = "sha256-hNfkclxaYViy66TPHqLV3mqD7wqBuBN9MnMLaDOeRNM=";
-      stripLen = 1;
-    })
-    # allow for determinist id block signing
-    # remove once https://github.com/microsoft/igvm-tooling/pull/55 is merged
-    (fetchpatch {
-      name = "0003-add-deterministic-id-block-signature-mode.patch";
-      url = "https://github.com/microsoft/igvm-tooling/commit/03ad7825ade76ac25e308bb85f92e89b732e0bf1.patch";
-      sha256 = "sha256-Y7DFr0KgGtY8KOt6fLWd32sTaig/zHFe7n83+Yb9ls8=";
-      stripLen = 1;
-    })
   ];
 
   postPatch = ''
@@ -54,7 +38,7 @@ python3.pkgs.buildPythonApplication rec {
 
   nativeBuildInputs = [ acpica-tools ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  propagatedBuildInputs = (with python3.pkgs; [
     setuptools
     ecdsa
     cstruct
@@ -62,7 +46,7 @@ python3.pkgs.buildPythonApplication rec {
     pytest
     cached-property
     frozendict
-  ] ++ [
+  ]) ++ [
     acpica-tools
     which
   ];
@@ -78,7 +62,7 @@ python3.pkgs.buildPythonApplication rec {
     description = "IGVM Image Generator";
     homepage = "https://github.com/microsoft/igvm-tooling";
     license = lib.licenses.mit;
-    maintainers = [ lib.maintainers.malt3 ];
+    maintainers = with lib.maintainers; [ malt3 katexochen ];
     changelog = "https://github.com/microsoft/igvm-tooling/releases/tag/igvm-${version}";
     mainProgram = "igvmgen";
     platforms = lib.platforms.all;
diff --git a/pkgs/by-name/ii/iina/package.nix b/pkgs/by-name/ii/iina/package.nix
index 2288a688cf0dd..0cf97bcbf9e13 100644
--- a/pkgs/by-name/ii/iina/package.nix
+++ b/pkgs/by-name/ii/iina/package.nix
@@ -1,17 +1,18 @@
-{ lib
-, fetchurl
-, stdenv
-, undmg
-, nix-update-script
+{
+  lib,
+  fetchurl,
+  stdenvNoCC,
+  undmg,
+  nix-update-script,
 }:
 
-stdenv.mkDerivation rec {
+stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "iina";
-  version = "1.3.4";
+  version = "1.3.5";
 
   src = fetchurl {
-    url = "https://github.com/iina/iina/releases/download/v${version}/IINA.v${version}.dmg";
-    hash = "sha256-feUPWtSi/Vsnv1mjGyBgB0wFMxx6r6UzrUratlAo14w=";
+    url = "https://github.com/iina/iina/releases/download/v${finalAttrs.version}/IINA.v${finalAttrs.version}.dmg";
+    hash = "sha256-O4uRmfQaGMKqizDlgk0MnazMHVkXaDLqZQ9TP8vcajg=";
   };
 
   nativeBuildInputs = [ undmg ];
@@ -26,13 +27,17 @@ stdenv.mkDerivation rec {
 
   passthru.updateScript = nix-update-script { };
 
-  meta = with lib; {
+  meta = {
+    description = "Modern media player for macOS";
     homepage = "https://iina.io/";
-    description = "The modern media player for macOS";
-    platforms = platforms.darwin;
-    license = licenses.gpl3;
-    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    license = lib.licenses.gpl3;
+    maintainers = with lib.maintainers; [
+      arkivm
+      donteatoreo
+      stepbrobd
+    ];
     mainProgram = "iina";
-    maintainers = with maintainers; [ arkivm stepbrobd ];
+    platforms = lib.platforms.darwin;
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
   };
-}
+})
diff --git a/pkgs/by-name/ii/iir1/package.nix b/pkgs/by-name/ii/iir1/package.nix
index 94d8a554f98d9..88e317e436ddb 100644
--- a/pkgs/by-name/ii/iir1/package.nix
+++ b/pkgs/by-name/ii/iir1/package.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://berndporr.github.io/iir1/";
-    description = "A DSP IIR realtime filter library written in C++";
+    description = "DSP IIR realtime filter library written in C++";
     downloadPage = "https://github.com/berndporr/iir1";
     changelog = "https://github.com/berndporr/iir1/releases/tag/${finalAttrs.src.rev}";
     license = with lib.licenses; [ mit ];
diff --git a/pkgs/by-name/ij/ijhttp/package.nix b/pkgs/by-name/ij/ijhttp/package.nix
new file mode 100644
index 0000000000000..e6eabf9223af2
--- /dev/null
+++ b/pkgs/by-name/ij/ijhttp/package.nix
@@ -0,0 +1,44 @@
+{
+  fetchurl,
+  jdk17_headless,
+  lib,
+  makeWrapper,
+  stdenvNoCC,
+  unzip,
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "ijhttp";
+  version = "241.14494.240";
+
+  src = fetchurl {
+    url = "https://download.jetbrains.com/resources/intellij/http-client/${finalAttrs.version}/intellij-http-client.zip";
+    hash = "sha256-PecGB+gwdQGQbWd401qeCFLbmr9fmIBd7lGwLlRLaGg=";
+  };
+
+  nativeBuildInputs = [
+    makeWrapper
+    unzip
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/lib
+    mv lib $out/lib
+    install -Dm755 ijhttp $out/lib/ijhttp
+    makeWrapper $out/lib/ijhttp $out/bin/ijhttp \
+      --set JAVA_HOME ${jdk17_headless.home}
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Run HTTP requests from a terminal, e.g. for HTTP request testing";
+    homepage = "https://www.jetbrains.com/help/idea/http-client-cli.html";
+    license = lib.licenses.unfree;
+    mainProgram = "ijhttp";
+    platforms = lib.platforms.all;
+    sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
+  };
+})
diff --git a/pkgs/applications/graphics/imgbrd-grabber/default.nix b/pkgs/by-name/im/imgbrd-grabber/package.nix
index 72d9d9cc1e01b..a3f083633bbe3 100644
--- a/pkgs/applications/graphics/imgbrd-grabber/default.nix
+++ b/pkgs/by-name/im/imgbrd-grabber/package.nix
@@ -1,77 +1,74 @@
-{ lib
-, stdenv
-, cmake
-, fetchFromGitHub
-, wrapQtAppsHook
-, qtmultimedia
-, qttools
-, qtdeclarative
-, qtnetworkauth
-, qtbase
-, makeWrapper
-, catch2
-, nodejs
-, libpulseaudio
-, openssl
-, rsync
-, typescript
+{
+  lib,
+  stdenv,
+  cmake,
+  fetchFromGitHub,
+  makeWrapper,
+  catch2,
+  nodejs,
+  libpulseaudio,
+  openssl,
+  rsync,
+  typescript,
+  qt6,
 }:
-
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "imgbrd-grabber";
-  version = "7.10.0";
+  version = "7.12.2";
 
   src = fetchFromGitHub {
     owner = "Bionus";
     repo = "imgbrd-grabber";
-    rev = "v${version}";
-    sha256 = "sha256-AT6pN2do0LlH6xAXKcFQv+oderD88/EiG1JnCw6kOOg=";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-6XfIaASfbvdPovtdDEJtsk4pEL4Dhmyq8ml4X7KZ4DE=";
     fetchSubmodules = true;
   };
 
-  buildInputs = [
-    openssl
-    libpulseaudio
-    typescript
-  ];
+  buildInputs =
+    with qt6;
+    [
+      qtbase
+      qtdeclarative
+      qttools
+      qtnetworkauth
+      qtmultimedia
+    ]
+    ++ [
+      openssl
+      libpulseaudio
+      typescript
+      nodejs
+    ];
 
   nativeBuildInputs = [
     makeWrapper
-    qtmultimedia
-    qtbase
-    qtdeclarative
-    qttools
-    qtnetworkauth
-    nodejs
+    qt6.wrapQtAppsHook
     cmake
-    wrapQtAppsHook
   ];
 
   extraOutputsToLink = [ "doc" ];
 
-  postPatch = ''
+  preBuild = ''
+    export HOME=$TMPDIR
+
     # the package.sh script provides some install helpers
     # using this might make it easier to maintain/less likely for the
     # install phase to fail across version bumps
-    patchShebangs ./scripts/package.sh
+    patchShebangs ../scripts/package.sh
+  '';
+
+  postPatch = ''
 
     # ensure the script uses the rsync package from nixpkgs
-    substituteInPlace ../scripts/package.sh --replace "rsync" "${rsync}/bin/rsync"
+    substituteInPlace ../scripts/package.sh --replace-fail "rsync" "${lib.getExe rsync}"
 
 
     # the npm build step only runs typescript
     # run this step directly so it doesn't try and fail to download the unnecessary node_modules, etc.
-    substituteInPlace ./sites/CMakeLists.txt --replace "npm install" "npm run build"
-
-    # remove the vendored catch2
-    rm -rf tests/src/vendor/catch
+    substituteInPlace ./sites/CMakeLists.txt --replace-fail "npm install" "npm run build"
 
     # link the catch2 sources from nixpkgs
-    ln -sf ${catch2.src} tests/src/vendor/catch
-  '';
-
-  preBuild = ''
-    export HOME=$TMPDIR
+    ln -sf ${catch2.src} tests/src/
   '';
 
   postInstall = ''
@@ -88,13 +85,16 @@ stdenv.mkDerivation rec {
     ln -s $out/share/Grabber/Grabber-cli $out/bin/Grabber-cli
   '';
 
-  sourceRoot = "${src.name}/src";
+  sourceRoot = "${finalAttrs.src.name}/src";
 
-  meta = with lib; {
+  meta = {
     description = "Very customizable imageboard/booru downloader with powerful filenaming features";
-    license = licenses.asl20;
+    license = lib.licenses.asl20;
     homepage = "https://bionus.github.io/imgbrd-grabber/";
     mainProgram = "Grabber";
-    maintainers = [ maintainers.evanjs ];
+    maintainers = with lib.maintainers; [
+      evanjs
+      luftmensch-luftmensch
+    ];
   };
-}
+})
diff --git a/pkgs/by-name/im/imhex/package.nix b/pkgs/by-name/im/imhex/package.nix
index d10ffb8a56e92..da3a2b4e20fa4 100644
--- a/pkgs/by-name/im/imhex/package.nix
+++ b/pkgs/by-name/im/imhex/package.nix
@@ -3,7 +3,6 @@
 , cmake
 , llvm
 , fetchFromGitHub
-, fetchpatch
 , mbedtls
 , gtk3
 , pkg-config
diff --git a/pkgs/by-name/im/immersed-vr/package.nix b/pkgs/by-name/im/immersed-vr/package.nix
index f9968e4485c3d..eb4b4ad08cff1 100644
--- a/pkgs/by-name/im/immersed-vr/package.nix
+++ b/pkgs/by-name/im/immersed-vr/package.nix
@@ -23,7 +23,7 @@ let
   src = fetchurl (sources.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}"));
 
   meta = with lib; {
-    description = "A VR coworking platform";
+    description = "VR coworking platform";
     homepage = "https://immersed.com";
     license = licenses.unfree;
     maintainers = with maintainers; [ haruki7049 ];
diff --git a/pkgs/by-name/im/immich-go/package.nix b/pkgs/by-name/im/immich-go/package.nix
index 439c4768ea15e..8a39a6202fcdb 100644
--- a/pkgs/by-name/im/immich-go/package.nix
+++ b/pkgs/by-name/im/immich-go/package.nix
@@ -1,13 +1,13 @@
 { lib, buildGoModule, fetchFromGitHub, nix-update-script, testers, immich-go }:
 buildGoModule rec {
   pname = "immich-go";
-  version = "0.14.1";
+  version = "0.17.1";
 
   src = fetchFromGitHub {
     owner = "simulot";
     repo = "immich-go";
     rev = "${version}";
-    hash = "sha256-5dgEyg55ffJLH8zxp6mFVsUqAzyPnY18XnX+jMethUc=";
+    hash = "sha256-7F2TbZoD7RLG8jaQBGbLb6q/BOVyWxaCGq+mouBBNSg=";
 
     # Inspired by: https://github.com/NixOS/nixpkgs/blob/f2d7a289c5a5ece8521dd082b81ac7e4a57c2c5c/pkgs/applications/graphics/pdfcpu/default.nix#L20-L32
     # The intention here is to write the information into files in the `src`'s
diff --git a/pkgs/by-name/im/imnodes/package.nix b/pkgs/by-name/im/imnodes/package.nix
new file mode 100644
index 0000000000000..5559524a10d55
--- /dev/null
+++ b/pkgs/by-name/im/imnodes/package.nix
@@ -0,0 +1,56 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchpatch,
+  cmake,
+  imgui,
+  SDL2,
+  xorg,
+  imnodes,
+  withExamples ? false,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "imnodes";
+  version = "unstable-2024-03-12";
+  outputs = [
+    "out"
+    "dev"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "Nelarius";
+    repo = "imnodes";
+    rev = "8563e1655bd9bb1f249e6552cc6274d506ee788b";
+    hash = "sha256-E7NNCxYq9dyVvutWbpl2a+D2Ap2ErvdYHBDqpX0kb0c=";
+  };
+  patches = [
+    # CMake install rules
+    (fetchpatch {
+      url = "https://github.com/Nelarius/imnodes/commit/ff20336fcd82ce07c39fabd76d5bc9fa0a08b3bc.patch";
+      hash = "sha256-JHOUjwMofDwt2kg6SLPFZmuQC4bOfjGa3qHFr5MdPIE=";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs =
+    [ imgui ]
+    ++ lib.optionals withExamples [
+      SDL2
+      xorg.libXext
+    ];
+
+  cmakeFlags = [ (lib.cmakeBool "IMNODES_EXAMPLES" withExamples) ];
+
+  passthru.tests.examples = imnodes.override { withExamples = true; };
+
+  meta = {
+    description = "Small, dependency-free node editor for dear imgui";
+    homepage = "https://github.com/Nelarius/imnodes";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ SomeoneSerge ];
+    mainProgram = "imnodes";
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/by-name/im/impala/package.nix b/pkgs/by-name/im/impala/package.nix
new file mode 100644
index 0000000000000..b322e6f0f366a
--- /dev/null
+++ b/pkgs/by-name/im/impala/package.nix
@@ -0,0 +1,26 @@
+{
+  lib,
+  rustPlatform,
+  fetchFromGitHub,
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "impala";
+  version = "0.2";
+
+  src = fetchFromGitHub {
+    owner = "pythops";
+    repo = "impala";
+    rev = "v${version}";
+    hash = "sha256-7UMHkm3AtPqUILrsUnM0SbZT4Sq55dEElMN0KonjwtE=";
+  };
+
+  cargoHash = "sha256-CtEirsSQAg2Fv44YoKKmSjQs85++QWFRcWoA4VrBbgU=";
+
+  meta = {
+    description = "TUI for managing wifi";
+    homepage = "https://github.com/pythops/impala";
+    platforms = lib.platforms.linux;
+    license = lib.licenses.gpl3Only;
+    maintainers = [ lib.maintainers.nydragon ];
+  };
+}
diff --git a/pkgs/by-name/im/implot/demos/default.nix b/pkgs/by-name/im/implot/demos/default.nix
new file mode 100644
index 0000000000000..b3a369668c1d3
--- /dev/null
+++ b/pkgs/by-name/im/implot/demos/default.nix
@@ -0,0 +1,81 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchpatch,
+  cmake,
+  pkg-config,
+  darwin,
+  fmt,
+  gtk3,
+  iir1,
+  imgui,
+  imnodes,
+  implot,
+  openssl,
+  curl,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "implot-demos";
+  version = "unstable-2023-08-20";
+
+  src = fetchFromGitHub {
+    owner = "epezent";
+    repo = "implot_demos";
+    rev = "f33219d3ade192a2333d4a32e749842010952a29";
+    hash = "sha256-Xq0kVk8qncj/BzQyIX/l1OLvPSQJU8ckTxIIfLZdO/g=";
+  };
+
+  patches = [
+    # Resolve "undefined symbols" (GetWindowContentRegionWidth &c)
+    (fetchpatch {
+      url = "https://github.com/epezent/implot_demos/commit/85a59612c102f8da97d6ead04f528f4c88f4ef9a.patch";
+      hash = "sha256-HRhfC3TUwz9Mv+1ODabaDxTWUaj4Nx1iH7C6vjUPo2s=";
+    })
+
+    # CMake: make FetchContent optional, add install targets
+    (fetchpatch {
+      url = "https://github.com/epezent/implot_demos/commit/4add0433a46ed5e2099e1af1a77e8055e49230d0.patch";
+      hash = "sha256-jYdM8NuwbZk7INKo2wqMAbjLMTPdrAdM4Kr3xmtquIY=";
+    })
+
+    # CMake: link libGL from the "app" target
+    (fetchpatch {
+      url = "https://github.com/epezent/implot_demos/commit/6742e4202858eb85bd0d67ca5fa15a7a07e6b618.patch";
+      hash = "sha256-h4EJ9u1iHLYkGHgxSynskkuCGmY6mmvKdZSRwHJKerY=";
+    })
+  ];
+
+  cmakeFlags = [ (lib.cmakeBool "FETCHCONTENT_FULLY_DISCONNECTED" true) ];
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs =
+    [
+      curl
+      fmt
+      iir1
+      imgui
+      imnodes
+      implot
+      openssl
+    ]
+    ++ lib.optionals stdenv.hostPlatform.isLinux [ gtk3 ]
+    ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.apple_sdk.frameworks.AppKit ];
+
+  meta = {
+    description = "Standalone ImPlot Demos";
+    homepage = "https://github.com/epezent/implot_demos";
+    broken =
+      stdenv.hostPlatform.isAarch64 # Target "mandel" relies on AVX2
+      || stdenv.isDarwin;
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ SomeoneSerge ];
+    mainProgram = "implot-demos";
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/by-name/im/implot/package.nix b/pkgs/by-name/im/implot/package.nix
new file mode 100644
index 0000000000000..541e85c73f584
--- /dev/null
+++ b/pkgs/by-name/im/implot/package.nix
@@ -0,0 +1,41 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  callPackage,
+  cmake,
+  vcpkg,
+  imgui,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "implot";
+  version = "0.16";
+
+  src = fetchFromGitHub {
+    owner = "epezent";
+    repo = "implot";
+    rev = "v${version}";
+    hash = "sha256-/wkVsgz3wiUVZBCgRl2iDD6GWb+AoHN+u0aeqHHgem0=";
+  };
+
+  cmakeRules = "${vcpkg.src}/ports/implot";
+  postPatch = ''
+    cp "$cmakeRules"/CMakeLists.txt ./
+  '';
+
+  buildInputs = [ imgui ];
+  nativeBuildInputs = [ cmake ];
+
+  passthru.tests = {
+    implot-demos = callPackage ./demos { };
+  };
+
+  meta = {
+    description = "Immediate Mode Plotting";
+    homepage = "https://github.com/epezent/implot";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ SomeoneSerge ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/by-name/im/impression/package.nix b/pkgs/by-name/im/impression/package.nix
index dea3d287468f9..c92d7aab02141 100644
--- a/pkgs/by-name/im/impression/package.nix
+++ b/pkgs/by-name/im/impression/package.nix
@@ -22,19 +22,19 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "impression";
-  version = "3.1.0";
+  version = "3.2.0";
 
   src = fetchFromGitLab {
     owner = "adhami3310";
     repo = "Impression";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-5hBpe8D3DVXP6Hq5L4OUL9rCml0MoLdK7uZzbIIkNh0=";
+    hash = "sha256-cNkc/z0hVNYdyuCw0nHKEQKdQVeRouk/K7gIp0xpjt4=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit (finalAttrs) src;
     name = "${finalAttrs.pname}-${finalAttrs.version}";
-    hash = "sha256-lbpbggf4DEjpXJ52aM7qNd01XCEY3xj8dKGMfCZ9i3A=";
+    hash = "sha256-IcmJAD/55dOdN04N/wd6gZ9DO/UdUire1eXSuNMxu9M=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/in/incus/package.nix b/pkgs/by-name/in/incus/package.nix
index be289a05e0772..e5249ac1d48f5 100644
--- a/pkgs/by-name/in/incus/package.nix
+++ b/pkgs/by-name/in/incus/package.nix
@@ -1,6 +1,6 @@
 import ./generic.nix {
-  hash = "sha256-BFB4bdfh3hI7D1m7a20ckPPyP9CYXW7mjqeTZ/21Gqs=";
-  version = "6.1.0";
-  vendorHash = "sha256-a8ZPhzs7sNIJLjQ9Y87Zf9SXAsmbdVn250Q0OQwy69A=";
+  hash = "sha256-33qUmET1BYAv6e8ZaFNSa7jrn8WGf3BqY8Nud/ZywSY=";
+  version = "6.2.0";
+  vendorHash = "sha256-dFg3LSG/ao73ODWcPDq5s9xUjuHabCMOB2AtngNCrlA=";
   patches = [ ];
 }
diff --git a/pkgs/by-name/in/inja/package.nix b/pkgs/by-name/in/inja/package.nix
new file mode 100644
index 0000000000000..01310b2aac143
--- /dev/null
+++ b/pkgs/by-name/in/inja/package.nix
@@ -0,0 +1,46 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  cmake,
+  nlohmann_json,
+  doctest,
+  callPackage,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "inja";
+  version = "3.4.0";
+
+  src = fetchFromGitHub {
+    owner = "pantor";
+    repo = "inja";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-B1EaR+qN32nLm3rdnlZvXQ/dlSd5XSc+5+gzBTPzUZU=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  propagatedBuildInputs = [ nlohmann_json ];
+
+  cmakeFlags = [
+    (lib.cmakeBool "INJA_BUILD_TESTS" finalAttrs.finalPackage.doCheck)
+    (lib.cmakeBool "INJA_USE_EMBEDDED_JSON" false)
+    (lib.cmakeBool "BUILD_BENCHMARK" false)
+  ];
+
+  checkInputs = [ doctest ];
+  doCheck = true;
+
+  passthru.tests = {
+    simple-cmake = callPackage ./simple-cmake-test { };
+  };
+
+  meta = {
+    changelog = "https://github.com/pantor/inja/releases/tag/v${finalAttrs.version}";
+    description = "Template engine for modern C++, loosely inspired by jinja for python";
+    homepage = "https://github.com/pantor/inja";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ xokdvium ];
+    platforms = lib.platforms.all;
+  };
+})
diff --git a/pkgs/by-name/in/inja/simple-cmake-test/CMakeLists.txt b/pkgs/by-name/in/inja/simple-cmake-test/CMakeLists.txt
new file mode 100644
index 0000000000000..68018e113924e
--- /dev/null
+++ b/pkgs/by-name/in/inja/simple-cmake-test/CMakeLists.txt
@@ -0,0 +1,5 @@
+project(inja-simple-cmake-test LANGUAGES CXX)
+find_package(inja REQUIRED)
+add_executable(simple-cmake-test main.cpp)
+target_link_libraries(simple-cmake-test PRIVATE pantor::inja)
+install(TARGETS simple-cmake-test DESTINATION bin)
diff --git a/pkgs/by-name/in/inja/simple-cmake-test/default.nix b/pkgs/by-name/in/inja/simple-cmake-test/default.nix
new file mode 100644
index 0000000000000..347563d471a65
--- /dev/null
+++ b/pkgs/by-name/in/inja/simple-cmake-test/default.nix
@@ -0,0 +1,27 @@
+{
+  stdenv,
+  cmake,
+  inja,
+  lib,
+}:
+
+stdenv.mkDerivation {
+  name = "inja-simple-cmake-test";
+  src = lib.fileset.toSource {
+    root = ./.;
+    fileset = lib.fileset.unions [
+      ./main.cpp
+      ./CMakeLists.txt
+    ];
+  };
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ inja ];
+  doInstallCheck = true;
+  installCheckPhase = ''
+    if [[ `$out/bin/simple-cmake-test` != "Hello world!" ]]; then
+      echo "ERROR: $out/bin/simple-cmake-test does not output 'Hello world!'"
+      exit 1
+    fi
+  '';
+  meta.timeout = 30;
+}
diff --git a/pkgs/by-name/in/inja/simple-cmake-test/main.cpp b/pkgs/by-name/in/inja/simple-cmake-test/main.cpp
new file mode 100644
index 0000000000000..4ec66678d2b7f
--- /dev/null
+++ b/pkgs/by-name/in/inja/simple-cmake-test/main.cpp
@@ -0,0 +1,8 @@
+#include <inja/inja.hpp>
+#include <iostream>
+#include <nlohmann/json.hpp>
+
+int main() {
+  nlohmann::json data = {{"name", "world"}};
+  inja::render_to(std::cout, "Hello {{ name }}!", data);
+}
diff --git a/pkgs/by-name/in/inotify-info/package.nix b/pkgs/by-name/in/inotify-info/package.nix
index ea7235917caf9..6edae9b3f5402 100644
--- a/pkgs/by-name/in/inotify-info/package.nix
+++ b/pkgs/by-name/in/inotify-info/package.nix
@@ -5,15 +5,17 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "inotify-info";
-  version = "0.0.1";
+  version = "0.0.2";
 
   src = fetchFromGitHub {
     owner = "mikesart";
     repo = "inotify-info";
     rev = "refs/tags/v${finalAttrs.version}";
-    hash = "sha256-fsUvIXWnP6Iy9Db0wDG+ntSw6mUt0MQOTJA5vFxhH+U=";
+    hash = "sha256-6EY2cyFWfMy1hPDdDGwIzSE92VkAPo0p5ZCG+B1wVYY=";
   };
 
+  buildFlags = ["INOTIFYINFO_VERSION=v${finalAttrs.version}"];
+
   installPhase = ''
     runHook preInstall
     install -Dm755 _release/inotify-info $out/bin/inotify-info
@@ -21,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "Easily track down the number of inotify watches, instances, and which files are being watched.";
+    description = "Easily track down the number of inotify watches, instances, and which files are being watched";
     homepage = "https://github.com/mikesart/inotify-info";
     license = licenses.mit;
     mainProgram = "inotify-info";
diff --git a/pkgs/by-name/in/intiface-central/package.nix b/pkgs/by-name/in/intiface-central/package.nix
index 6424f523b3b96..186c4918b9940 100644
--- a/pkgs/by-name/in/intiface-central/package.nix
+++ b/pkgs/by-name/in/intiface-central/package.nix
@@ -11,12 +11,12 @@
 }:
 flutterPackages.v3_19.buildFlutterApplication rec {
   pname = "intiface-central";
-  version = "2.5.6";
+  version = "2.6.0";
   src = fetchFromGitHub {
     owner = "intiface";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-EcOFiaWqljNZIvsCkhuCEChEC51ERxM74EYE6u7Q4U8=";
+    hash = "sha256-7+rw0cD8MJPFOkgmfHD6y+EojTGQhb15o1mn2p14eoE=";
   };
   patches = [
     ./corrosion.patch
@@ -28,7 +28,7 @@ flutterPackages.v3_19.buildFlutterApplication rec {
     name = "${pname}-${version}-cargo-deps";
     inherit src;
     sourceRoot = "${src.name}/intiface-engine-flutter-bridge";
-    hash = "sha256-tkJcwT2lt8+FT9GZ0ROrm1jkOxoq875O3wZkgZl22r4=";
+    hash = "sha256-tPkLZmHReY1TU2qcY4aGWsQPhLFowrqxTPwmTHZ5fDE=";
   };
   cargoRoot = "intiface-engine-flutter-bridge";
 
diff --git a/pkgs/by-name/in/intiface-central/pubspec.lock.json b/pkgs/by-name/in/intiface-central/pubspec.lock.json
index e27fd28e9fe08..d3f088c6623de 100644
--- a/pkgs/by-name/in/intiface-central/pubspec.lock.json
+++ b/pkgs/by-name/in/intiface-central/pubspec.lock.json
@@ -230,6 +230,16 @@
       "source": "hosted",
       "version": "1.18.0"
     },
+    "console": {
+      "dependency": "transitive",
+      "description": {
+        "name": "console",
+        "sha256": "e04e7824384c5b39389acdd6dc7d33f3efe6b232f6f16d7626f194f6a01ad69a",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "4.1.0"
+    },
     "convert": {
       "dependency": "transitive",
       "description": {
@@ -466,6 +476,16 @@
       "source": "hosted",
       "version": "0.6.18+2"
     },
+    "flutter_multi_slider": {
+      "dependency": "direct main",
+      "description": {
+        "name": "flutter_multi_slider",
+        "sha256": "3c4603999f5c399b57b5a85086cf92c8870e726fe07fd63bc3968bd3e564518b",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.0.1"
+    },
     "flutter_rust_bridge": {
       "dependency": "direct main",
       "description": {
@@ -508,6 +528,16 @@
       "source": "hosted",
       "version": "3.2.0"
     },
+    "get_it": {
+      "dependency": "transitive",
+      "description": {
+        "name": "get_it",
+        "sha256": "d85128a5dae4ea777324730dc65edd9c9f43155c109d5cc0a69cab74139fbac1",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "7.7.0"
+    },
     "github": {
       "dependency": "direct main",
       "description": {
@@ -738,6 +768,16 @@
       "source": "hosted",
       "version": "1.0.4"
     },
+    "msix": {
+      "dependency": "direct dev",
+      "description": {
+        "name": "msix",
+        "sha256": "519b183d15dc9f9c594f247e2d2339d855cf0eaacc30e19b128e14f3ecc62047",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.16.7"
+    },
     "multicast_dns": {
       "dependency": "direct main",
       "description": {
diff --git a/pkgs/by-name/in/intune-portal/package.nix b/pkgs/by-name/in/intune-portal/package.nix
index c517718244463..48b945c833c35 100644
--- a/pkgs/by-name/in/intune-portal/package.nix
+++ b/pkgs/by-name/in/intune-portal/package.nix
@@ -23,11 +23,11 @@
 }:
 stdenv.mkDerivation rec {
   pname = "intune-portal";
-  version = "1.2404.23-jammy";
+  version = "1.2404.25-jammy";
 
   src = fetchurl {
     url = "https://packages.microsoft.com/ubuntu/22.04/prod/pool/main/i/${pname}/${pname}_${version}_amd64.deb";
-    hash = "sha256-zAH35iF+3YpDNGo3UhmzL4pRJXlEhG1PaT71qnRtpAg=";
+    hash = "sha256-ZRJdhhDwXeOjIx7Ml4VvPUOotnJQ9f73nsYzgm6SQC8=";
   };
 
   nativeBuildInputs = [ dpkg ];
diff --git a/pkgs/by-name/in/invidious-router/package.nix b/pkgs/by-name/in/invidious-router/package.nix
index 112ca05a97c03..68c642af3dcee 100644
--- a/pkgs/by-name/in/invidious-router/package.nix
+++ b/pkgs/by-name/in/invidious-router/package.nix
@@ -22,7 +22,7 @@ in
 
     meta = {
       homepage = "https://gitlab.com/gaincoder/invidious-router";
-      description = "A Go application that routes requests to different Invidious instances based on their health status and (optional) response time";
+      description = "Go application that routes requests to different Invidious instances based on their health status and (optional) response time";
       license = with lib.licenses; [mit];
       maintainers = with lib.maintainers; [sils];
       mainProgram = "invidious-router";
diff --git a/pkgs/by-name/in/invidtui/package.nix b/pkgs/by-name/in/invidtui/package.nix
index 68f31ed6f10bd..11b17b76aa721 100644
--- a/pkgs/by-name/in/invidtui/package.nix
+++ b/pkgs/by-name/in/invidtui/package.nix
@@ -24,7 +24,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://darkhz.github.io/invidtui/";
-    description = "An invidious TUI client";
+    description = "Invidious TUI client";
     license = licenses.mit;
     maintainers = with maintainers; [ rettetdemdativ ];
     mainProgram = "invidtui";
diff --git a/pkgs/by-name/ip/ipam/package.nix b/pkgs/by-name/ip/ipam/package.nix
index ec54b78e6e9d9..987b82d03e053 100644
--- a/pkgs/by-name/ip/ipam/package.nix
+++ b/pkgs/by-name/ip/ipam/package.nix
@@ -32,7 +32,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A cli based IPAM written in Go with PowerDNS support";
+    description = "Cli based IPAM written in Go with PowerDNS support";
     homepage = "https://ipam.lauka.net/";
     changelog = "https://codeberg.org/lauralani/ipam/releases/tag/v${version}";
     license = licenses.gpl3Plus;
diff --git a/pkgs/by-name/ip/iplookup-gtk/package.nix b/pkgs/by-name/ip/iplookup-gtk/package.nix
new file mode 100644
index 0000000000000..3d2486fe5b98b
--- /dev/null
+++ b/pkgs/by-name/ip/iplookup-gtk/package.nix
@@ -0,0 +1,58 @@
+{
+  lib,
+  python3Packages,
+  fetchFromGitHub,
+  meson,
+  ninja,
+  pkg-config,
+  gobject-introspection,
+  wrapGAppsHook4,
+  desktop-file-utils,
+  libadwaita,
+}:
+
+python3Packages.buildPythonPackage rec {
+  pname = "iplookup-gtk";
+  version = "0.3.4";
+  pyproject = false; # Built with meson
+
+  src = fetchFromGitHub {
+    owner = "Bytezz";
+    repo = "IPLookup-gtk";
+    rev = "v${version}";
+    hash = "sha256-NqFE6vRdLpnlCzGAUE4iOfLmTnUgX3CHtoXfsbT3zm4=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gobject-introspection
+    wrapGAppsHook4
+    desktop-file-utils
+  ];
+
+  buildInputs = [
+    libadwaita
+  ];
+
+  dependencies = with python3Packages; [
+    pygobject3
+  ];
+
+  dontWrapGApps = true;
+
+  preFixup = ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
+  meta = {
+    description = "Find info about an IP address";
+    homepage = "https://github.com/Bytezz/IPLookup-gtk";
+    changelog = "https://github.com/Bytezz/IPLookup-gtk/releases/tag/${src.rev}";
+    license = lib.licenses.gpl3Plus;
+    mainProgram = "iplookup";
+    maintainers = with lib.maintainers; [ aleksana ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/ir/iredis/package.nix b/pkgs/by-name/ir/iredis/package.nix
index 5694ed44bed39..b0c37d1183246 100644
--- a/pkgs/by-name/ir/iredis/package.nix
+++ b/pkgs/by-name/ir/iredis/package.nix
@@ -60,7 +60,7 @@ python3.pkgs.buildPythonApplication rec {
   pythonImportsCheck = [ "iredis" ];
 
   meta = with lib; {
-    description = "A Terminal Client for Redis with AutoCompletion and Syntax Highlighting";
+    description = "Terminal Client for Redis with AutoCompletion and Syntax Highlighting";
     changelog = "https://github.com/laixintao/iredis/blob/${src.rev}/CHANGELOG.md";
     homepage = "https://iredis.xbin.io/";
     license = licenses.bsd3;
diff --git a/pkgs/servers/misc/irrd/default.nix b/pkgs/by-name/ir/irrd/package.nix
index c2ce5bed86e0b..ba62bf6e6cc27 100644
--- a/pkgs/servers/misc/irrd/default.nix
+++ b/pkgs/by-name/ir/irrd/package.nix
@@ -43,26 +43,40 @@ in
 
 py.pkgs.buildPythonPackage rec {
   pname = "irrd";
-  version = "4.4.2";
+  version = "4.4.4";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "irrdnet";
     repo = "irrd";
     rev = "v${version}";
-    hash = "sha256-vZSuBP44ZvN0mu2frcaQNZN/ilvKWIY9ETnrStzSnG0=";
+    hash = "sha256-UIOKXU92JEOeVdpYLNmDBtLn0u3LMdKItcn9bFd9u8g=";
   };
+
   patches = [
-    # replace poetry dependency with poetry-core
-    # https://github.com/irrdnet/irrd/pull/884
+    # starlette 0.37.2 reverted the behaviour change which this adjusted to
+    (fetchpatch {
+      url = "https://github.com/irrdnet/irrd/commit/43e26647e18f8ff3459bbf89ffbff329a0f1eed5.patch";
+      revert = true;
+      hash = "sha256-G216rHfWMZIl9GuXBz6mjHCIm3zrfDDLSmHQK/HkkzQ=";
+    })
+    # Backport build fix for webauthn 2.1
     (fetchpatch {
-      url = "https://github.com/irrdnet/irrd/commit/4fb6e9b50d65729aff2d0a94c2e9b4e2daadea85.patch";
-      hash = "sha256-DcE6VZfJkbHnPiEdYDpXea7S/8P0SmdvvJ42hywnpf0=";
+      url = "https://github.com/irrdnet/irrd/commit/20b771e1ee564f38e739fdb0a2a79c10319f638f.patch";
+      hash = "sha256-PtNdhSoFPT1kt71kFsySp/VnUpUdO23Gu9FKknHLph8=";
+      includes = ["irrd/webui/auth/endpoints_mfa.py"];
     })
   ];
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail psycopg2-binary psycopg2
+  '';
+  pythonRelaxDeps = true;
+
   nativeBuildInputs = with python3.pkgs; [
     poetry-core
+    pythonRelaxDepsHook
   ];
 
   nativeCheckInputs = [
@@ -75,6 +89,7 @@ py.pkgs.buildPythonPackage rec {
     pytest-freezegun
     pytestCheckHook
     smtpdfix
+    httpx
   ]);
 
   propagatedBuildInputs = with py.pkgs; [
@@ -119,6 +134,7 @@ py.pkgs.buildPythonPackage rec {
     asgi-logger
     wtforms-bootstrap5
     email-validator
+    jinja2
   ] ++ py.pkgs.uvicorn.optional-dependencies.standard;
 
   preCheck = ''
@@ -153,11 +169,10 @@ py.pkgs.buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://irrd.readthedocs.io/en/v${version}/releases/";
-    description = "An Internet Routing Registry database server, processing IRR objects in the RPSL format";
+    description = "Internet Routing Registry database server, processing IRR objects in the RPSL format";
     license = licenses.mit;
     homepage = "https://github.com/irrdnet/irrd";
     maintainers = teams.wdz.members;
-    broken = true; # last successful build 2023-10-21
   };
 }
 
diff --git a/pkgs/by-name/ir/irust/package.nix b/pkgs/by-name/ir/irust/package.nix
new file mode 100644
index 0000000000000..f2e4b2f5103c8
--- /dev/null
+++ b/pkgs/by-name/ir/irust/package.nix
@@ -0,0 +1,56 @@
+{
+  lib,
+  fetchFromGitHub,
+  rustPlatform,
+  makeWrapper,
+  cargo,
+  rustfmt,
+  cargo-show-asm,
+  cargo-expand,
+  clang,
+  # Workaround to allow easily overriding runtime inputs
+  runtimeInputs ? [
+    cargo
+    rustfmt
+    cargo-show-asm
+    cargo-expand
+    clang
+  ],
+  nix-update-script,
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "irust";
+  version = "1.71.23";
+
+  src = fetchFromGitHub {
+    owner = "sigmaSd";
+    repo = "IRust";
+    rev = "irust@${version}";
+    hash = "sha256-+kl22m2Is8CdLlqGSFOglw4/fM1exayaMH05YSuTsbw=";
+  };
+
+  cargoHash = "sha256-4aQ1IOTcUAkgiQucUG8cg9pVShtlu2IJeqNCGO+6VYY=";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postFixup = ''
+    wrapProgram $out/bin/irust \
+      --suffix PATH : ${lib.makeBinPath runtimeInputs}
+  '';
+
+  checkFlags = [
+    "--skip=repl"
+    "--skip=printer::tests"
+  ];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = with lib; {
+    description = "Cross Platform Rust Repl";
+    homepage = "https://github.com/sigmaSd/IRust";
+    license = licenses.mit;
+    maintainers = with maintainers; [ lelgenio ];
+    mainProgram = "irust";
+  };
+}
diff --git a/pkgs/by-name/is/iscc/package.nix b/pkgs/by-name/is/iscc/package.nix
index 1f3472d288ca6..fdd81c607a18b 100644
--- a/pkgs/by-name/is/iscc/package.nix
+++ b/pkgs/by-name/is/iscc/package.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
 
 
   meta = with lib; {
-    description = "A compiler for Inno Setup, a tool for creating Windows installers";
+    description = "Compiler for Inno Setup, a tool for creating Windows installers";
     homepage = "https://jrsoftware.org/isinfo.php";
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/by-name/it/itch/package.nix b/pkgs/by-name/it/itch/package.nix
index 3ba0c6cb43503..3f5337f04cf13 100644
--- a/pkgs/by-name/it/itch/package.nix
+++ b/pkgs/by-name/it/itch/package.nix
@@ -84,7 +84,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The best way to play itch.io games";
+    description = "Best way to play itch.io games";
     homepage = "https://github.com/itchio/itch";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/by-name/it/itools/package.nix b/pkgs/by-name/it/itools/package.nix
new file mode 100644
index 0000000000000..85cede0eb9007
--- /dev/null
+++ b/pkgs/by-name/it/itools/package.nix
@@ -0,0 +1,41 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkgs
+, pkg-config
+, perl
+, libitl
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "itools";
+  version = "1.1";
+
+  nativeBuildInputs = [ pkg-config autoreconfHook ];
+  buildInputs = [ libitl perl ];
+
+  outputs = [ "out" "man" ];
+
+  src = fetchFromGitHub {
+    owner = "arabeyes-org";
+    repo = "itools";
+    rev = finalAttrs.version;
+    hash = "sha256-DxTZaq2SlEmy9k7iAdjctpPkk+2rIaF+xEcfXj/ERWw=";
+  };
+
+  meta = {
+    description = "Islamic command-line tools for prayer times and hijri dates";
+    longDescription = ''
+      The itools package is a set of user friendly applications utilizing Arabeyes' ITL library.
+
+      The package addresses two main areas - hijri date and prayertime calculation. The package
+      is envisioned to mimick the development of the underlying ITL library and is meant to
+      always give the end-user a simple means to access its functions.
+    '';
+    homepage = "https://www.arabeyes.org/ITL";
+    license = lib.licenses.gpl2Only;
+    platforms = lib.platforms.all;
+    maintainers = with lib.maintainers; [ amyipdev ];
+  };
+})
diff --git a/pkgs/os-specific/linux/iw/default.nix b/pkgs/by-name/iw/iw/package.nix
index 4c1d94f02e6bc..a218f8afc79da 100644
--- a/pkgs/os-specific/linux/iw/default.nix
+++ b/pkgs/by-name/iw/iw/package.nix
@@ -1,31 +1,45 @@
-{ lib, stdenv, fetchurl, pkg-config, libnl }:
+{
+  lib,
+  fetchurl,
+  libnl,
+  pkg-config,
+  stdenv,
+}:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "iw";
-  version = "5.19";
+  version = "6.7";
 
   src = fetchurl {
-    url = "https://www.kernel.org/pub/software/network/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-8We76UfdU7uevAwdzvXbatc6wdYITyxvk3bFw2DMTU4=";
+    url = "https://www.kernel.org/pub/software/network/iw/iw-${finalAttrs.version}.tar.xz";
+    hash = "sha256-qs9JwmaynVANcwhnmKHGUudgwZEmqFmf2BGFBDB4mjU=";
   };
 
   nativeBuildInputs = [ pkg-config ];
+
   buildInputs = [ libnl ];
 
+  outputs = [
+    "out"
+    "man"
+  ];
+
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
+  strictDeps = true;
+
   meta = {
+    homepage = "https://wireless.wiki.kernel.org/en/users/Documentation/iw";
     description = "Tool to use nl80211";
-    mainProgram = "iw";
     longDescription = ''
       iw is a new nl80211 based CLI configuration utility for wireless devices.
       It supports all new drivers that have been added to the kernel recently.
       The old tool iwconfig, which uses Wireless Extensions interface, is
       deprecated and it's strongly recommended to switch to iw and nl80211.
     '';
-    homepage = "https://wireless.wiki.kernel.org/en/users/Documentation/iw";
     license = lib.licenses.isc;
-    maintainers = with lib.maintainers; [ viric primeos ];
-    platforms = with lib.platforms; linux;
+    mainProgram = "iw";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/pkgs/by-name/iz/izrss/package.nix b/pkgs/by-name/iz/izrss/package.nix
index ae6b8a5afb5ea..35e507e9e06d6 100644
--- a/pkgs/by-name/iz/izrss/package.nix
+++ b/pkgs/by-name/iz/izrss/package.nix
@@ -5,7 +5,7 @@
   ...
 }:
 let
-  version = "0.0.6";
+  version = "0.1.0";
 in
 buildGoModule {
   pname = "izrss";
@@ -15,7 +15,7 @@ buildGoModule {
     owner = "isabelroses";
     repo = "izrss";
     rev = "refs/tags/v${version}";
-    hash = "sha256-tO/m39FMtvxZzNgnVY84k4J2v8vQVdzR3IKofJWCf9U=";
+    hash = "sha256-Op9aiCQrBH8TuhMTt+3Wthd8UY3lU2g9yJ110v7TtXA=";
   };
 
   ldflags = [
@@ -24,10 +24,10 @@ buildGoModule {
     "-X main.version=${version}"
   ];
 
-  vendorHash = "sha256-/gD82wT4jWNMQsGPb2nYQiFQsUdKICyO6eiRPHrLsy8=";
+  vendorHash = "sha256-/TRCD6akZV2qDqJz62p7UzFIGuTAKLnUtYqqvdw3rCI=";
 
   meta = {
-    description = "An RSS feed reader for the terminal written in Go";
+    description = "RSS feed reader for the terminal written in Go";
     changelog = "https://github.com/isabelroses/izrss/releases/v${version}";
     homepage = "https://github.com/isabelroses/izrss";
     license = lib.licenses.gpl3Plus;
diff --git a/pkgs/by-name/ja/jackass/package.nix b/pkgs/by-name/ja/jackass/package.nix
index 700ba42540918..b9c73d8456a8f 100644
--- a/pkgs/by-name/ja/jackass/package.nix
+++ b/pkgs/by-name/ja/jackass/package.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "JackAss is a VST plugin that provides JACK-MIDI support for VST hosts.";
+    description = "JackAss is a VST plugin that provides JACK-MIDI support for VST hosts";
     longDescription = ''
       Simply load the plugin in your favourite host to get a JACK-MIDI port.
       Optionally includes a special Wine build for running in Wine
diff --git a/pkgs/by-name/ja/jailer/package.nix b/pkgs/by-name/ja/jailer/package.nix
index 867d813b1f410..4a41c0eb9dfcf 100644
--- a/pkgs/by-name/ja/jailer/package.nix
+++ b/pkgs/by-name/ja/jailer/package.nix
@@ -12,14 +12,14 @@
   wrapGAppsHook4,
 }:
 stdenv.mkDerivation (finalAttrs: {
-  name = "jailer";
-  version = "16.1.4";
+  pname = "jailer";
+  version = "16.2";
 
   src = fetchFromGitHub {
     owner = "Wisser";
     repo = "Jailer";
-    rev = "dcde48b2e0c7b68cc1b6f73c80fde06fdf31fdc6";
-    sha256 = "sha256-cPOWW2z44vCc/Fw1zYZUsYafgKr82e0g+K0Db5A9F5M=";
+    rev = "bc00c6883bac0d09b549e35a10e202da477e4cb1";
+    sha256 = "sha256-nXxTKbhvrBlorNqiF3wZDEgf1VrBamWw8ZSQSUqpGT8=";
   };
 
 
@@ -73,7 +73,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = {
-    description = "A tool for database subsetting and relational data browsing";
+    description = "Tool for database subsetting and relational data browsing";
     license = lib.licenses.asl20;
     homepage = "https://github.com/Wisser/Jailer";
     changelog = "https://github.com/Wisser/Jailer/releases/tag/${finalAttrs.version}";
diff --git a/pkgs/by-name/ja/jan/package.nix b/pkgs/by-name/ja/jan/package.nix
index af4fc834ea16f..31452d3e9b456 100644
--- a/pkgs/by-name/ja/jan/package.nix
+++ b/pkgs/by-name/ja/jan/package.nix
@@ -5,10 +5,10 @@
 
 let
   pname = "jan";
-  version = "0.4.13";
+  version = "0.5.0";
   src = fetchurl {
     url = "https://github.com/janhq/jan/releases/download/v${version}/jan-linux-x86_64-${version}.AppImage";
-    hash = "sha256-6RjpkIMYScgJ2xTS7b2w90ixEm4ZHw8Izecjho93sRE=";
+    hash = "sha256-yU2J9RctID/n0INAFyHbdbaHvWJm1384p1Za3MCJuL0=";
   };
 
   appimageContents = appimageTools.extractType2 { inherit pname version src; };
diff --git a/pkgs/by-name/ja/jasp-desktop/modules.nix b/pkgs/by-name/ja/jasp-desktop/modules.nix
index 1660daa764c11..379b06234c40b 100644
--- a/pkgs/by-name/ja/jasp-desktop/modules.nix
+++ b/pkgs/by-name/ja/jasp-desktop/modules.nix
@@ -33,6 +33,9 @@ let
 
     env.INCLUDE_DIR = "../inst/include/jaspColumnEncoder";
 
+    # necessary for R 4.4.0
+    hardeningDisable = [ "format" ];
+
     postPatch = ''
       mkdir -p inst/include
       cp -r --no-preserve=all ${jaspColumnEncoder-src} inst/include/jaspColumnEncoder
diff --git a/pkgs/by-name/ja/jasp-desktop/package.nix b/pkgs/by-name/ja/jasp-desktop/package.nix
index 208589e45695c..1b33536dc7d45 100644
--- a/pkgs/by-name/ja/jasp-desktop/package.nix
+++ b/pkgs/by-name/ja/jasp-desktop/package.nix
@@ -66,6 +66,9 @@ stdenv.mkDerivation {
     "-DCUSTOM_R_PATH=${customREnv}"
   ];
 
+  # necessary for R 4.4.0
+  hardeningDisable = [ "format" ];
+
   nativeBuildInputs = [
     cmake
     ninja
@@ -108,7 +111,7 @@ stdenv.mkDerivation {
 
   meta = {
     changelog = "https://jasp-stats.org/release-notes";
-    description = "A complete statistical package for both Bayesian and Frequentist statistical methods";
+    description = "Complete statistical package for both Bayesian and Frequentist statistical methods";
     homepage = "https://github.com/jasp-stats/jasp-desktop";
     license = lib.licenses.agpl3Plus;
     mainProgram = "JASP";
diff --git a/pkgs/by-name/ja/jasper/package.nix b/pkgs/by-name/ja/jasper/package.nix
index 34e517c81eaba..11a298208f567 100644
--- a/pkgs/by-name/ja/jasper/package.nix
+++ b/pkgs/by-name/ja/jasper/package.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "jasper";
-  version = "4.2.3";
+  version = "4.2.4";
 
   src = fetchFromGitHub {
     owner = "jasper-software";
     repo = "jasper";
     rev = "version-${finalAttrs.version}";
-    hash = "sha256-Hmmoe1lzUR1DBwgg30KGfsIDzSNe5shghaieEXX/am4=";
+    hash = "sha256-YliWVuNEtq/Rgra+WnorSOFoAYwYmPmPRv0r734FJ1c=";
   };
 
   outputs = [ "out" "dev" "doc" "lib" "man" ];
diff --git a/pkgs/by-name/ja/jazz2/package.nix b/pkgs/by-name/ja/jazz2/package.nix
index 0bd4238bf214c..be823ade33df8 100644
--- a/pkgs/by-name/ja/jazz2/package.nix
+++ b/pkgs/by-name/ja/jazz2/package.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "jazz2";
-  version = "2.6.0";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     owner = "deathkiller";
     repo = "jazz2-native";
     rev = finalAttrs.version;
-    hash = "sha256-ZTQz6+2myUIJr2HqiwYksM7qiwXrd4+3+h1TC6FuPFU=";
+    hash = "sha256-iy5b5h6wpOlubtOwBs0X7P0wBD3QeAQwjMhgnd4YP+Q=";
   };
 
   patches = [ ./nocontent.patch ];
diff --git a/pkgs/by-name/jd/jdt-language-server/package.nix b/pkgs/by-name/jd/jdt-language-server/package.nix
index 04376d201722d..87031d45006bd 100644
--- a/pkgs/by-name/jd/jdt-language-server/package.nix
+++ b/pkgs/by-name/jd/jdt-language-server/package.nix
@@ -6,15 +6,15 @@
 }:
 
 let
-  timestamp = "202401111522";
+  timestamp = "202405301306";
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "jdt-language-server";
-  version = "1.31.0";
+  version = "1.36.0";
 
   src = fetchurl {
     url = "https://download.eclipse.org/jdtls/milestones/${finalAttrs.version}/jdt-language-server-${finalAttrs.version}-${timestamp}.tar.gz";
-    hash = "sha256-bCX2LQt00d2SqxmvuvvlBB6wbCuFPqtX9/Qv5v6wH3w=";
+    hash = "sha256-Ao4nTQb0phytT/1W+J70FKj2VhPG0F2UZ2Ubf7A9rns=";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/by-name/jd/jdt-language-server/update.sh b/pkgs/by-name/jd/jdt-language-server/update.sh
index b482db22ee056..153d2024b1cb4 100644..100755
--- a/pkgs/by-name/jd/jdt-language-server/update.sh
+++ b/pkgs/by-name/jd/jdt-language-server/update.sh
@@ -15,7 +15,7 @@ filename=$(curl -s "$prefix/latest.txt")
 newtimestamp=$(echo $filename | sed "s|^.*-$newver-||;s|\.tar\.gz$||")
 newhash="$(nix-hash --to-sri --type sha256 $(nix-prefetch-url "$prefix/$filename"))";
 
-sed -i default.nix \
+sed -i package.nix \
     -e "/^  version =/ s|\".*\"|\"$newver\"|" \
     -e "/^  timestamp =/ s|\".*\"|\"$newtimestamp\"|" \
     -e "/^    hash =/ s|\".*\"|\"$newhash\"|" \
diff --git a/pkgs/servers/jellyfin/web.nix b/pkgs/by-name/je/jellyfin-web/package.nix
index a2437af14ee41..8eae2d9addb82 100644
--- a/pkgs/servers/jellyfin/web.nix
+++ b/pkgs/by-name/je/jellyfin-web/package.nix
@@ -4,6 +4,7 @@
   overrideSDK,
   fetchFromGitHub,
   buildNpmPackage,
+  jellyfin,
   nix-update-script,
   pkg-config,
   xcbuild,
@@ -26,16 +27,18 @@ let
 in
 buildNpmPackage' rec {
   pname = "jellyfin-web";
-  version = "10.9.1";
+  version = "10.9.6";
 
-  src = fetchFromGitHub {
-    owner = "jellyfin";
-    repo = "jellyfin-web";
-    rev = "v${version}";
-    hash = "sha256-KkPZ8OvGN/0gdoSVh9q0qEilae3tccgHRQQvrTsvycA=";
-  };
+  src =
+    assert version == jellyfin.version;
+    fetchFromGitHub {
+      owner = "jellyfin";
+      repo = "jellyfin-web";
+      rev = "v${version}";
+      hash = "sha256-cKMKcT2roah35Pv36KJqYIhwoYXaT1yYfvOsxbt+EfE=";
+    };
 
-  npmDepsHash = "sha256-LmbygyCYSp0gtjU2pNCV17WEyEoaIzPs7H9UoMFV+PU=";
+  npmDepsHash = "sha256-9uAFWlbzDzd8f8G/v/eLWJ3Is4aO5mqEd4o/YZXDkTQ=";
 
   npmBuildScript = [ "build:production" ];
 
diff --git a/pkgs/servers/jellyfin/nuget-deps.nix b/pkgs/by-name/je/jellyfin/nuget-deps.nix
index 749345716552c..574ffad2ff009 100644
--- a/pkgs/servers/jellyfin/nuget-deps.nix
+++ b/pkgs/by-name/je/jellyfin/nuget-deps.nix
@@ -16,7 +16,7 @@
   (fetchNuGet { pname = "dotnet-ef"; version = "8.0.4"; sha256 = "104zljagzf0d092ahzg7aprs39pi1k9k96150qm9nlwjzr3lwv7n"; })
   (fetchNuGet { pname = "DotNet.Glob"; version = "3.1.3"; sha256 = "1klgj9m7i3g8x1yj96wnikvf0hlvr6rhqhl4mgis08imcrl95qg6"; })
   (fetchNuGet { pname = "EasyCaching.Core"; version = "1.9.2"; sha256 = "0qkzaxmn899hhfh32s8mhg3zcqqy2p05kaaldz246nram5gvf7qp"; })
-  (fetchNuGet { pname = "EFCoreSecondLevelCacheInterceptor"; version = "4.4.3"; sha256 = "04g2w7x0rqb1gl71mqh28s8drjkwmlkd94j7fg4w5sc01vzrzshw"; })
+  (fetchNuGet { pname = "EFCoreSecondLevelCacheInterceptor"; version = "4.5.0"; sha256 = "10jlgnqn87jfyycs7hd050mk2cxngqph2r5hciq386r7jcdqly0w"; })
   (fetchNuGet { pname = "ExCSS"; version = "4.2.3"; sha256 = "1likxhccg4l4g4i65z4dfzp9059hij6h1q7prx2sgakvk8zzmw9k"; })
   (fetchNuGet { pname = "HarfBuzzSharp"; version = "7.3.0.2"; sha256 = "03qfa9cglvka6dv4gbnaskrzvpjnp9jmzfwplg85wdgm6jmjif49"; })
   (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Linux"; version = "7.3.0.2"; sha256 = "1df6jqwfv9v1ddby2hxcan28g1canbmavglmdjlf2xjs42xz49s9"; })
@@ -33,12 +33,12 @@
   (fetchNuGet { pname = "MetaBrainz.Common"; version = "3.0.0"; sha256 = "0ba7r8xjkd1dsc5plq2h3nbk3kcpd69hnns6kx42bafz2x1d7r9z"; })
   (fetchNuGet { pname = "MetaBrainz.Common.Json"; version = "6.0.2"; sha256 = "0zw5216amhkav69iv0mqfhql3b9blkfvh8k0xp3qv62r2vvhb1z0"; })
   (fetchNuGet { pname = "MetaBrainz.MusicBrainz"; version = "6.1.0"; sha256 = "0ssmzk6zyi7ivb055w007h311pg9bby3q6gvwxzmjghd4i6m7461"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.Authorization"; version = "8.0.4"; sha256 = "0r41i12ilhryh7gzak1iagxa5jmvk916jh40zi6n4pdffbwk9kzc"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Authorization"; version = "8.0.6"; sha256 = "19wwaqp21lgvv3fy6zdkmkfgnj55knjmn0h29r68z21k83gj4ba4"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Abstractions"; version = "2.2.0"; sha256 = "13s8cm6jdpydxmr0rgmzrmnp1v2r7i3rs7v9fhabk5spixdgfy6b"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Extensions"; version = "2.2.0"; sha256 = "118gp1mfb8ymcvw87fzgjqwlc1d1b0l0sbfki291ydg414cz3dfn"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Features"; version = "2.2.0"; sha256 = "0xrlq8i61vzhzzy25n80m7wh2kn593rfaii3aqnxdsxsg6sfgnx1"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.HttpOverrides"; version = "2.2.0"; sha256 = "1pbmmczxilgrf4qyaql88dc3av7kaixb1r36358kil68gl3irjy6"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.Metadata"; version = "8.0.4"; sha256 = "0jxvdb4ah2x8ssr01gdk1msmf0kyvvr9pwhfj6rx7a5j7cl6l6xr"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Metadata"; version = "8.0.6"; sha256 = "17bwqcc3h6qm1r4rwvissfhqxgdwyz3j48zqv90yks2wijrymiwn"; })
   (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "6.0.0"; sha256 = "15gqy2m14fdlvy1g59207h5kisznm355kbw010gy19vh47z8gpz3"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.3.3"; sha256 = "09m4cpry8ivm9ga1abrxmvw16sslxhy2k5sl14zckhqb1j164im6"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.BannedApiAnalyzers"; version = "3.3.4"; sha256 = "1vzrni7n94f17bzc13lrvcxvgspx9s25ap1p005z6i1ikx6wgx30"; })
@@ -47,19 +47,19 @@
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.Workspaces"; version = "4.5.0"; sha256 = "0skg5a8i4fq6cndxcjwciai808p0zpqz9kbvck94mcywfzassv1a"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.Workspaces.Common"; version = "4.5.0"; sha256 = "1wjwsrnn5frahqciwaxsgalv80fs6xhqy6kcqy7hcsh7jrfc1kjq"; })
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
-  (fetchNuGet { pname = "Microsoft.Data.Sqlite"; version = "8.0.4"; sha256 = "1d41r78blfh3i0lh27bh4vrdd26ix6r63xa74cycjnc7pr98xaqc"; })
-  (fetchNuGet { pname = "Microsoft.Data.Sqlite.Core"; version = "8.0.4"; sha256 = "03i9b45n2vnsv4wdsk6qvjzj1ga2hcli168liyrqfa87l54skckd"; })
+  (fetchNuGet { pname = "Microsoft.Data.Sqlite"; version = "8.0.6"; sha256 = "17h6jhhaagdhk1ljyjgxsqq168xw7yda5ys1sxls7nqkbrq3an5p"; })
+  (fetchNuGet { pname = "Microsoft.Data.Sqlite.Core"; version = "8.0.6"; sha256 = "0sifqhm9myix618a77w5h4v66da9dgq0aabgqrics30bpmnh219j"; })
   (fetchNuGet { pname = "Microsoft.EntityFrameworkCore"; version = "8.0.0"; sha256 = "1xhmax0xrvw4lyz1868f1sr3nbrcv3ckr5qnf61c8q9bwj06b9v7"; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore"; version = "8.0.4"; sha256 = "14a74ssvklpv9v1x023mfv3a5dncwfpw399larfp9qx7l6ifsjly"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore"; version = "8.0.6"; sha256 = "0q9j6qqns82c99imkqaw1ngq0x19flbm1p9wc92b0l46n3lz7lsg"; })
   (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Abstractions"; version = "8.0.0"; sha256 = "019r991228nxv1fibsxg5z81rr7ydgy77c9v7yvlx35kfppxq4s3"; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Abstractions"; version = "8.0.4"; sha256 = "1xs1cs29csnbahxgikc094xr878i8wp4h4n84xffaxms6wx5c1fb"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Abstractions"; version = "8.0.6"; sha256 = "0zq9hcajib3b2j5xn7qllfq2x9g6xh9s8rap03r729llsl1hims5"; })
   (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Analyzers"; version = "8.0.0"; sha256 = "1vcbad0pzkx5wadnd5inglx56x0yybdlxgknbhifdga0bx76j9sa"; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Analyzers"; version = "8.0.4"; sha256 = "1h2bdh7cyw2z71brwjfirayd56rp3d2dx4qrhmsw573mb5jgvara"; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Design"; version = "8.0.4"; sha256 = "1ni5qkjgarcjbqvw9cx0481fc99nna7rnp7170wq650jwm0f8c2f"; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Relational"; version = "8.0.4"; sha256 = "17v2wm6wwsl169sq6lawxhn9wvd299n1hdrxih8c3lzvi8igy4sd"; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Sqlite"; version = "8.0.4"; sha256 = "0h9ib00k54jmsrbhipr33q3sqd3mdiw31qi4g8vak1slal9b70zw"; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Sqlite.Core"; version = "8.0.4"; sha256 = "0pa0xz96g2f99yj3x3hfj362br3zjcx3qd89ckqmymqpvnhk4bw0"; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Tools"; version = "8.0.4"; sha256 = "0r872j78cn1lknw3q9ajc4045d0pw879w2gp2a0qij0r9izlzpiv"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Analyzers"; version = "8.0.6"; sha256 = "17r858s69mar0k70zqf0r2cp7k7sc06xazml0ncgacglw9l9ydb9"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Design"; version = "8.0.6"; sha256 = "01068bb6sbcpngmaracwfynjqny07985hc0lzn6b1xgm1dw1vx5j"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Relational"; version = "8.0.6"; sha256 = "1p55h0w30gxvnbq312pbivwss5la86zz7nmfa9wvskdp5b6y8rwp"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Sqlite"; version = "8.0.6"; sha256 = "1nmjszjkyk7nkmwn5yfmci1im9mlqxa4in75wi4sr6g145wvrgwi"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Sqlite.Core"; version = "8.0.6"; sha256 = "181lp36mh96rix1f8zl0061p2m37ksw7dnj9r384n1cxw1961dg2"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Tools"; version = "8.0.6"; sha256 = "1p8mr096p3xmdw3yphkjdy5dikbh9gfvgvc43nxbzkjp9ib447hz"; })
   (fetchNuGet { pname = "Microsoft.Extensions.ApiDescription.Server"; version = "3.0.0"; sha256 = "13a47xcqyi5gz85swxd4mgp7ndgl4kknrvv3xwmbn71hsh953hsh"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Caching.Abstractions"; version = "2.0.0"; sha256 = "1af64clax8q94p5vggwv8b9qiddmi8v9lnfvbc33k4rl5q8lq38j"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Caching.Abstractions"; version = "8.0.0"; sha256 = "04m6ywsf9731z24nfd14z0ah8xl06619ba7mkdb4vg8h5jpllsn4"; })
@@ -89,9 +89,9 @@
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "8.0.0"; sha256 = "02jnx23hm1vid3yd9pw4gghzn6qkgdl5xfc5r0zrcxdax70rsh5a"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Diagnostics"; version = "8.0.0"; sha256 = "0ghwkld91k20hcbmzg2137w81mzzdh8hfaapdwckhza0vipya4kw"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Diagnostics.Abstractions"; version = "8.0.0"; sha256 = "15m4j6w9n8h0mj7hlfzb83hd3wn7aq1s7fxbicm16slsjfwzj82i"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Diagnostics.HealthChecks"; version = "8.0.4"; sha256 = "16jm0jkb4nhx3dvqg9yljkmg95v4awpc3dkn1qqcb8bbr6szskr1"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions"; version = "8.0.4"; sha256 = "1iylfqpqpiknywfzka2zibz0vmrrf73y6g5irl57parxxb836yhy"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore"; version = "8.0.4"; sha256 = "0mxxms7nf9sm8iwf6n4ny9ni7ap7gya74wahmwcpv1v0dgq004z6"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Diagnostics.HealthChecks"; version = "8.0.6"; sha256 = "1i3in42rrxa3wdqwya0xfx520xck3z2jasn2shvjnrakjdhlqbjd"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions"; version = "8.0.6"; sha256 = "1h1yraw6571v0ricw3c331isc59k5ry1cwvh27rqs04ainh982zh"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore"; version = "8.0.6"; sha256 = "1xyk3b2r87372m47hzwpmwx6zza3b4qd4cliyd7ki0z8yz7hhfda"; })
   (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Abstractions"; version = "2.2.0"; sha256 = "1f83ffb4xjwljg8dgzdsa3pa0582q6b4zm0si467fgkybqzk3c54"; })
   (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Abstractions"; version = "8.0.0"; sha256 = "1idq65fxwcn882c06yci7nscy9i0rgw6mqjrl7362prvvsd9f15r"; })
   (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Physical"; version = "8.0.0"; sha256 = "05wxjvjbx79ir7vfkri6b28k8zl8fa6bbr0i7gahqrim2ijvkp6v"; })
@@ -221,7 +221,7 @@
   (fetchNuGet { pname = "Svg.Model"; version = "1.0.0.18"; sha256 = "03vjk6pmxpff6q7saqgq9qdfbs6sf11hqrp469ycfzbikgil4xh9"; })
   (fetchNuGet { pname = "Svg.Skia"; version = "1.0.0.18"; sha256 = "0vnjy0gc8qfv626rn3z4sy03ds186h1yv9fwq3p84pq6l04ng5d3"; })
   (fetchNuGet { pname = "Swashbuckle.AspNetCore"; version = "6.2.3"; sha256 = "1kx50vliqcqw72aygkm2cs2q82pxdxz17gvz4chz6k858qj4gv0l"; })
-  (fetchNuGet { pname = "Swashbuckle.AspNetCore.ReDoc"; version = "6.5.0"; sha256 = "1fr8367107ammy0b887ypy14qnqqyd3nbj6agrhrhrrlz47h3v5z"; })
+  (fetchNuGet { pname = "Swashbuckle.AspNetCore.ReDoc"; version = "6.6.2"; sha256 = "1sk1afdi1pangvx9vhjicr5h3nv3ms937311s1s8svvsn4cz0pn1"; })
   (fetchNuGet { pname = "Swashbuckle.AspNetCore.Swagger"; version = "6.2.3"; sha256 = "0g3aw1lydq1xymd1f5rrs0dhl0fpl85gffs9jsm3khfqp7js31yz"; })
   (fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerGen"; version = "6.2.3"; sha256 = "1cza3hzxhia81rmmdx9qixbm1ikavscddknpvbkrwmljzx2qmsv7"; })
   (fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerUI"; version = "6.2.3"; sha256 = "0sbrymb73a2s9qhgm7i44ca08h4n62qfh751fwnvybmj8kb1gzsi"; })
diff --git a/pkgs/servers/jellyfin/default.nix b/pkgs/by-name/je/jellyfin/package.nix
index ce59d31ce3031..0360ff53e367f 100644
--- a/pkgs/servers/jellyfin/default.nix
+++ b/pkgs/by-name/je/jellyfin/package.nix
@@ -1,36 +1,34 @@
-{ lib
-, fetchFromGitHub
-, nixosTests
-, stdenv
-, dotnetCorePackages
-, buildDotnetModule
-, ffmpeg
-, fontconfig
-, freetype
-, jellyfin-web
-, sqlite
+{
+  lib,
+  fetchFromGitHub,
+  nixosTests,
+  dotnetCorePackages,
+  buildDotnetModule,
+  jellyfin-ffmpeg,
+  fontconfig,
+  freetype,
+  jellyfin-web,
+  sqlite,
 }:
 
 buildDotnetModule rec {
   pname = "jellyfin";
-  version = "10.9.1"; # ensure that jellyfin-web has matching version
+  version = "10.9.6"; # ensure that jellyfin-web has matching version
 
   src = fetchFromGitHub {
     owner = "jellyfin";
     repo = "jellyfin";
     rev = "v${version}";
-    sha256 = "sha256-ZvXz4gnpYE9bMvOHbmLhqJLUomPmk1K9ysw+Wlsyhr4=";
+    sha256 = "sha256-Ze1KO+Rx4sz8qdKa1U2g096Ck/Qc+JdQj4MNqaJRhb8=";
   };
 
-  propagatedBuildInputs = [
-    sqlite
-  ];
+  propagatedBuildInputs = [ sqlite ];
 
   projectFile = "Jellyfin.Server/Jellyfin.Server.csproj";
   executables = [ "jellyfin" ];
   nugetDeps = ./nuget-deps.nix;
   runtimeDeps = [
-    ffmpeg
+    jellyfin-ffmpeg
     fontconfig
     freetype
   ];
@@ -38,12 +36,10 @@ buildDotnetModule rec {
   dotnet-runtime = dotnetCorePackages.aspnetcore_8_0;
   dotnetBuildFlags = [ "--no-self-contained" ];
 
-  preInstall = ''
-    makeWrapperArgs+=(
-      --add-flags "--ffmpeg ${ffmpeg}/bin/ffmpeg"
-      --add-flags "--webdir ${jellyfin-web}/share/jellyfin-web"
-    )
-  '';
+  makeWrapperArgs = [
+    "--add-flags" "--ffmpeg=${jellyfin-ffmpeg}/bin/ffmpeg"
+    "--add-flags" "--webdir=${jellyfin-web}/share/jellyfin-web"
+  ];
 
   passthru.tests = {
     smoke-test = nixosTests.jellyfin;
@@ -52,11 +48,16 @@ buildDotnetModule rec {
   passthru.updateScript = ./update.sh;
 
   meta = with lib; {
-    description = "The Free Software Media System";
+    description = "Free Software Media System";
     homepage = "https://jellyfin.org/";
     # https://github.com/jellyfin/jellyfin/issues/610#issuecomment-537625510
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ nyanloutre minijackson purcell jojosch ];
+    maintainers = with maintainers; [
+      nyanloutre
+      minijackson
+      purcell
+      jojosch
+    ];
     mainProgram = "jellyfin";
     platforms = dotnet-runtime.meta.platforms;
   };
diff --git a/pkgs/servers/jellyfin/update.sh b/pkgs/by-name/je/jellyfin/update.sh
index 918b68940cad4..918b68940cad4 100755
--- a/pkgs/servers/jellyfin/update.sh
+++ b/pkgs/by-name/je/jellyfin/update.sh
diff --git a/pkgs/by-name/je/jetbrains-toolbox/package.nix b/pkgs/by-name/je/jetbrains-toolbox/package.nix
index 653bd84517579..912ec7595ca62 100644
--- a/pkgs/by-name/je/jetbrains-toolbox/package.nix
+++ b/pkgs/by-name/je/jetbrains-toolbox/package.nix
@@ -9,11 +9,11 @@
 }:
 let
   pname = "jetbrains-toolbox";
-  version = "2.3.1.31116";
+  version = "2.3.2.31487";
 
   src = fetchzip {
     url = "https://download.jetbrains.com/toolbox/jetbrains-toolbox-${version}.tar.gz";
-    sha256 = "sha256-mrTeUp9DBSO1S6Nxx077lqtY847CiCBCCi/vboZ8ADs=";
+    sha256 = "sha256-5dgtaqi9cMpEoSl3MRaHWzCA8ktU5Mgjvt9CnBzr1ME=";
     stripRoot = false;
   };
 
diff --git a/pkgs/by-name/je/jextract-21/package.nix b/pkgs/by-name/je/jextract-21/package.nix
index 1f5780c00469e..efff21c27c073 100644
--- a/pkgs/by-name/je/jextract-21/package.nix
+++ b/pkgs/by-name/je/jextract-21/package.nix
@@ -85,7 +85,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A tool which mechanically generates Java bindings from a native library headers";
+    description = "Tool which mechanically generates Java bindings from a native library headers";
     mainProgram = "jextract";
     homepage = "https://github.com/openjdk/jextract";
     platforms = jdk21.meta.platforms;
diff --git a/pkgs/by-name/je/jextract/package.nix b/pkgs/by-name/je/jextract/package.nix
index 63ee155b1acd2..187a0e91f93ad 100644
--- a/pkgs/by-name/je/jextract/package.nix
+++ b/pkgs/by-name/je/jextract/package.nix
@@ -85,7 +85,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A tool which mechanically generates Java bindings from a native library headers";
+    description = "Tool which mechanically generates Java bindings from a native library headers";
     mainProgram = "jextract";
     homepage = "https://github.com/openjdk/jextract";
     platforms = jdk22.meta.platforms;
diff --git a/pkgs/by-name/ji/jikken/package.nix b/pkgs/by-name/ji/jikken/package.nix
index 79f0343932a86..aa4ab81845781 100644
--- a/pkgs/by-name/ji/jikken/package.nix
+++ b/pkgs/by-name/ji/jikken/package.nix
@@ -34,7 +34,7 @@ rustPlatform.buildRustPackage rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A powerful, source control friendly REST API testing toolkit";
+    description = "Powerful, source control friendly REST API testing toolkit";
     homepage = "https://jikken.io/";
     changelog = "https://github.com/jikkenio/jikken/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/by-name/jn/jnv/package.nix b/pkgs/by-name/jn/jnv/package.nix
index 740a536be0dfa..4e9899bf64ae7 100644
--- a/pkgs/by-name/jn/jnv/package.nix
+++ b/pkgs/by-name/jn/jnv/package.nix
@@ -1,29 +1,19 @@
 { lib
 , rustPlatform
 , fetchFromGitHub
-, autoconf
-, automake
-, libtool
 }:
 rustPlatform.buildRustPackage rec {
   pname = "jnv";
-  version = "0.2.2";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "ynqa";
     repo = "jnv";
     rev = "v${version}";
-    hash = "sha256-IvpbVcTGGD7cn59SPlcqMuu9YXB3ur3AFaoWDVADoqI=";
+    hash = "sha256-5Atop86g/gGgf4MEK/Q2vqpQ+KIS72FB2gXCH8U+L3g=";
   };
 
-  cargoHash = "sha256-dqWQi0DYl2P1qPzmtYOcarnfu2bfSnLk/SVQq5d+Z8Y=";
-
-  nativeBuildInputs = [
-    autoconf
-    automake
-    libtool
-    rustPlatform.bindgenHook
-  ];
+  cargoHash = "sha256-qpVRq6RbrDZDSJkLQ5Au9j2mWXp3gn7QBe3nRmIVK8c=";
 
   meta = with lib; {
     description = "Interactive JSON filter using jq";
diff --git a/pkgs/applications/misc/josm/default.nix b/pkgs/by-name/jo/josm/package.nix
index 92fe2ea2ac3c9..3eb732dd336ad 100644
--- a/pkgs/applications/misc/josm/default.nix
+++ b/pkgs/by-name/jo/josm/package.nix
@@ -3,15 +3,15 @@
 }:
 let
   pname = "josm";
-  version = "19067";
+  version = "19096";
   srcs = {
     jar = fetchurl {
       url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
-      hash = "sha256-+mHX80ltIFkVWIeex519b84BYzhp+h459/C2wlDR7jQ=";
+      hash = "sha256-oX9B98yj9WmTLGVnDO8hOJ/rYFMTLiTaz1dWufD1wqg=";
     };
     macosx = fetchurl {
       url = "https://josm.openstreetmap.de/download/macosx/josm-macos-${version}-java21.zip";
-      hash = "sha256-lMESSSXl6hBC2MpLYnYOThy463ft2bONNppBv3OEvAQ=";
+      hash = "sha256-qOMSG2eAaMHCvJXYzG07Ngb6fR9MbFQI5+1xuxGbBVU=";
     };
     pkg = fetchsvn {
       url = "https://josm.openstreetmap.de/svn/trunk/native/linux/tested";
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = with lib; {
-    description = "An extensible editor for OpenStreetMap";
+    description = "Extensible editor for OpenStreetMap";
     homepage = "https://josm.openstreetmap.de/";
     changelog = "https://josm.openstreetmap.de/wiki/Changelog";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
diff --git a/pkgs/by-name/jo/joularjx/package.nix b/pkgs/by-name/jo/joularjx/package.nix
new file mode 100644
index 0000000000000..df0d66290a8dc
--- /dev/null
+++ b/pkgs/by-name/jo/joularjx/package.nix
@@ -0,0 +1,42 @@
+{
+  fetchFromGitHub,
+  maven,
+  makeWrapper,
+  jre,
+  lib,
+}:
+
+maven.buildMavenPackage rec {
+  pname = "joularjx";
+  version = "2.9.0";
+
+  src = fetchFromGitHub {
+    owner = "joular";
+    repo = pname;
+    rev = version;
+    hash = "sha256-/Drv6PVMmz3QNEu8zMokTKBZeYWMjuKczu18qKqNAx4=";
+  };
+
+  mvnHash = "sha256-TKHo0hZBjgBeUWYvbjF3MZ6Egp3qB2LGwWfrGrcVkOk=";
+
+  mvnParameters = "-DskipTests";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share
+    cp target/joularjx-${version}.jar $out/share/joularjx.jar
+    makeWrapper ${jre}/bin/java $out/bin/joularjx \
+      --add-flags "-javaagent:$out/share/joularjx.jar"
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Java-based agent for software power monitoring at the source code level";
+    homepage = "https://github.com/joular/joularjx";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ julienmalka ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/jo/journalwatch/package.nix b/pkgs/by-name/jo/journalwatch/package.nix
index afd2a3ce3681c..550b8917776b6 100644
--- a/pkgs/by-name/jo/journalwatch/package.nix
+++ b/pkgs/by-name/jo/journalwatch/package.nix
@@ -31,7 +31,7 @@ python3Packages.buildPythonApplication rec {
   pythonImportsCheck = [ "journalwatch" ];
 
   meta = with lib; {
-    description = "A tool to find error messages in the systemd journal";
+    description = "Tool to find error messages in the systemd journal";
     homepage = "https://github.com/The-Compiler/journalwatch";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ florianjacob ];
diff --git a/pkgs/by-name/jq/jq-zsh-plugin/package.nix b/pkgs/by-name/jq/jq-zsh-plugin/package.nix
new file mode 100644
index 0000000000000..3e06f6d58872f
--- /dev/null
+++ b/pkgs/by-name/jq/jq-zsh-plugin/package.nix
@@ -0,0 +1,44 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fzf,
+  jq,
+  nix-update-script,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "jq-zsh-plugin";
+  version = "0.6.1";
+
+  src = fetchFromGitHub {
+    owner = "reegnz";
+    repo = "jq-zsh-plugin";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-q/xQZ850kifmd8rCMW+aAEhuA43vB9ZAW22sss9e4SE=";
+  };
+
+  strictDeps = true;
+  dontConfigure = true;
+  dontBuild = true;
+  installPhase = ''
+    mkdir -p $out/share/jq-zsh-plugin/
+    cp jq.plugin.zsh $out/share/jq-zsh-plugin
+    cp -r bin/ $out/share/jq-zsh-plugin
+    substituteInPlace $out/share/jq-zsh-plugin/bin/jq-repl --replace-fail "fzf \\" "${fzf}/bin/fzf \\"
+    substituteInPlace $out/share/jq-zsh-plugin/jq.plugin.zsh --replace-fail ":-jq" ":-${jq}/bin/jq"
+    substituteInPlace $out/share/jq-zsh-plugin/bin/jq-paths --replace-fail ":-jq" ":-${jq}/bin/jq"
+    substituteInPlace $out/share/jq-zsh-plugin/bin/jq-repl --replace-fail ":-jq" ":-${jq}/bin/jq"
+    substituteInPlace $out/share/jq-zsh-plugin/bin/jq-repl-preview --replace-fail ":-jq" ":-${jq}/bin/jq"
+  '';
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "Interactively build jq expressions in Zsh";
+    homepage = "https://github.com/reegnz/jq-zsh-plugin";
+    license = lib.licenses.mit;
+    platforms = lib.platforms.unix;
+    maintainers = [ lib.maintainers.vinnymeller ];
+  };
+}
diff --git a/pkgs/by-name/jr/jrl-cmakemodules/package.nix b/pkgs/by-name/jr/jrl-cmakemodules/package.nix
index bca4ba0e82312..149b25c1aee9c 100644
--- a/pkgs/by-name/jr/jrl-cmakemodules/package.nix
+++ b/pkgs/by-name/jr/jrl-cmakemodules/package.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation {
   pname = "jrl-cmakemodules";
-  version = "0-unstable-2024-04-12";
+  version = "0-unstable-2024-05-22";
 
   src = fetchFromGitHub {
     owner = "jrl-umi3218";
     repo = "jrl-cmakemodules";
-    rev = "a914fa836ab4d2f01c191c93a763cfa322820dc7";
-    hash = "sha256-/VedtcRqy4SUTZfrtg01Z1lSPFRg/858hgve+nKTqPo=";
+    rev = "dd3e4127f2b223496859fe05be02726e9d1a071b";
+    hash = "sha256-ySMfops0Py1U+50LEGwgIwlzPUq/miusTxK7TIpQQXs=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/by-name/js/jsoncons/package.nix b/pkgs/by-name/js/jsoncons/package.nix
index 0e40d8935b43b..cc39e4c895c6a 100644
--- a/pkgs/by-name/js/jsoncons/package.nix
+++ b/pkgs/by-name/js/jsoncons/package.nix
@@ -2,19 +2,19 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "jsoncons";
-  version = "0.175.0";
+  version = "0.176.0";
 
   src = fetchFromGitHub {
     owner = "danielaparker";
     repo = "jsoncons";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-pLOKgZx3f0Jka0Tm3SBC1JlQ2Rc3ViPgmXRbjgF4UXI=";
+    hash = "sha256-RDF5HL6utM/6wna1TxCefl7X8B1qp6nsEDrguTLrtgA=";
   };
 
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
-    description = "A C++, header-only library for constructing JSON and JSON-like data formats";
+    description = "C++, header-only library for constructing JSON and JSON-like data formats";
     homepage = "https://danielaparker.github.io/jsoncons/";
     changelog = "https://github.com/danielaparker/jsoncons/blob/${finalAttrs.src.rev}/CHANGELOG.md";
     license = licenses.boost;
diff --git a/pkgs/by-name/jt/jtdx/package.nix b/pkgs/by-name/jt/jtdx/package.nix
index a058c52c15446..09f88ddf0f5c4 100644
--- a/pkgs/by-name/jt/jtdx/package.nix
+++ b/pkgs/by-name/jt/jtdx/package.nix
@@ -1,6 +1,6 @@
 { wsjtx, fetchgit, qt5, lib }:
 wsjtx.overrideAttrs (old: {
-  name = "jtdx";
+  pname = "jtdx";
   version = "unstable-2022-03-01";
   src = fetchgit {
     url = "https://github.com/jtdx-project/jtdx.git";
diff --git a/pkgs/by-name/ju/junest/package.nix b/pkgs/by-name/ju/junest/package.nix
new file mode 100644
index 0000000000000..a74a9815a81c5
--- /dev/null
+++ b/pkgs/by-name/ju/junest/package.nix
@@ -0,0 +1,33 @@
+{ lib, fetchFromGitHub, stdenvNoCC, wget }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "junest";
+  version = "7.4.8";
+
+  src = fetchFromGitHub {
+    owner = "fsquillace";
+    repo = "junest";
+    rev = "refs/tags/${version}";
+    hash = "sha256-9yrQ721fHUxXEZ0mh27SB8yoUH67ltOktUq3kr4qrBc=";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mkdir -p $out/lib
+    cp -r $src/bin/ $out/
+    cp -r $src/lib/ $out/
+    substituteInPlace $out/lib/core/common.sh --replace-fail "wget" ${lib.getExe wget}
+  '';
+
+  meta = {
+    description = "Arch distro that runs on top of another without root";
+    homepage = "https://github.com/fsquillace/junest";
+    license = lib.licenses.gpl3Only;
+    mainProgram = "junest";
+    maintainers = with lib.maintainers; [ jdev082 ];
+    platforms = lib.platforms.linux;
+  };
+}
+
diff --git a/pkgs/by-name/ju/just/fix-just-path-in-tests.patch b/pkgs/by-name/ju/just/fix-just-path-in-tests.patch
new file mode 100644
index 0000000000000..63587ebc698aa
--- /dev/null
+++ b/pkgs/by-name/ju/just/fix-just-path-in-tests.patch
@@ -0,0 +1,20 @@
+diff --git a/tests/completions/just.bash b/tests/completions/just.bash
+index 6d5c12c..13bff87 100755
+--- a/tests/completions/just.bash
++++ b/tests/completions/just.bash
+@@ -17,11 +17,13 @@ reply_equals() {
+   fi
+ }
+ 
++just() {
++  cargo run -- "$@"
++}
++
+ # --- Initial Setup ---
+ source "$1"
+ cd tests/completions
+-cargo build
+-PATH="$(git rev-parse --show-toplevel)/target/debug:$PATH"
+ exit_code=0
+ 
+ # --- Tests ---
diff --git a/pkgs/by-name/ju/just/package.nix b/pkgs/by-name/ju/just/package.nix
index d635d1271a2ea..bfd8127b34063 100644
--- a/pkgs/by-name/ju/just/package.nix
+++ b/pkgs/by-name/ju/just/package.nix
@@ -2,6 +2,7 @@
 , stdenv
 , fetchFromGitHub
 , rustPlatform
+, bashInteractive
 , coreutils
 , installShellFiles
 , libiconv
@@ -11,17 +12,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "just";
-  version = "1.26.0";
+  version = "1.29.1";
   outputs = [ "out" "man" "doc" ];
 
   src = fetchFromGitHub {
     owner = "casey";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-jPVvKxTHTOFkjpTsnjy9/IxQtHLgv1fInKA6knKUmu8=";
+    hash = "sha256-R797aRLsaDjNSaYVFUSmKCUr+HQ5xarrssHJe3fwhTw=";
   };
 
-  cargoHash = "sha256-ssZ5JxOd0XVs4hsvnSz1IvtKE7ftEKX3nN2B8SsMesw=";
+  cargoHash = "sha256-DVjhmJPyIRHwKTBWoIBYMJbigLpakDrXeCHQ9Y8/T48=";
 
   nativeBuildInputs = [ installShellFiles mdbook ];
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
@@ -42,11 +43,27 @@ rustPlatform.buildRustPackage rec {
 
     # Return unchanged string.rs
     cp $TMPDIR/string.rs tests/string.rs
+
+    # For shell completion tests
+    export PATH=${bashInteractive}/bin:$PATH
+    patchShebangs tests
   '';
 
+  patches = [
+    ./fix-just-path-in-tests.patch
+  ];
+
   postBuild = ''
     cargo run --package generate-book
 
+    mkdir -p completions man
+
+    cargo run -- --man > man/just.1
+
+    for shell in bash fish zsh; do
+        cargo run -- --completions $shell > completions/just.$shell
+    done
+
     # No linkcheck in sandbox
     echo 'optional = true' >> book/en/book.toml
     mdbook build book/en
@@ -54,10 +71,12 @@ rustPlatform.buildRustPackage rec {
   '';
 
   checkFlags = [
-    "--skip=edit" # trying to run "vim" fails as there's no /usr/bin/env or which in the sandbox to find vim and the dependency is not easily patched
-    "--skip=run_shebang" # test case very rarely fails with "Text file busy"
-    "--skip=invoke_error_function" # wants JUST_CHOOSER to be fzf
+    "--skip=backticks::trailing_newlines_are_stripped" # Wants to use python3 as alternate shell
+    "--skip=choose::invoke_error_function" # wants JUST_CHOOSER to be fzf
     "--skip=choose::default" # symlinks cat->fzf which fails as coreutils doesn't understand name
+    "--skip=config::tests::show_arguments" # interferes with JUST_CHOOSER being set
+    "--skip=edit::editor_precedence" # trying to run "vim" fails as there's no /usr/bin/env or which in the sandbox to find vim and the dependency is not easily patched
+    "--skip=shebang::run_shebang" # test case very rarely fails with "Text file busy"
   ];
 
   postInstall = ''
@@ -78,7 +97,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     homepage = "https://github.com/casey/just";
     changelog = "https://github.com/casey/just/blob/${version}/CHANGELOG.md";
-    description = "A handy way to save and run project-specific commands";
+    description = "Handy way to save and run project-specific commands";
     license = licenses.cc0;
     maintainers = with maintainers; [ xrelkd jk adamcstephens ];
     mainProgram = "just";
diff --git a/pkgs/by-name/ju/justbuild/package.nix b/pkgs/by-name/ju/justbuild/package.nix
index 550aa33497357..76f73a888def6 100644
--- a/pkgs/by-name/ju/justbuild/package.nix
+++ b/pkgs/by-name/ju/justbuild/package.nix
@@ -11,7 +11,7 @@
   openssl,
 
   pkg-config,
-  protobuf_24,
+  protobuf_25,
   grpc,
   pandoc,
   python3,
@@ -19,6 +19,7 @@
   wget,
   lib,
   jq,
+  coreutils,
 
   curl,
   libarchive,
@@ -27,13 +28,13 @@ let stdenv = gccStdenv;
 in
 stdenv.mkDerivation rec {
   pname = "justbuild";
-  version = "1.2.4";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "just-buildsystem";
     repo = "justbuild";
     rev = "v${version}";
-    sha256 = "sha256-+ZQuMWqZyK7x/tPSi2ldSOpAexpX6ku4ikk/V8m6Ksg=";
+    sha256 = "sha256-kv7HpDEYZml5uk06s8Cxt5rEpxaJBz9s+or6Od1q4Io=";
   };
 
   bazelapi = fetchurl {
@@ -54,6 +55,7 @@ stdenv.mkDerivation rec {
       python3
       unzip
       wget
+      coreutils
 
       # Dependencies of just
       cli11
@@ -75,21 +77,14 @@ stdenv.mkDerivation rec {
     grpc
     libgit2
     openssl
-    # Using protobuf 24 because the current version of grpc is build using
-    # protobuf 24 and therefore the older protobuf version causes errors
-    # during build.
-    # Upstream currently uses protobuf 23 for bundled builds
-    # For future updates: The currently used version can be found in the file
-    # etc/repos.json: https://github.com/just-buildsystem/justbuild/blob/master/etc/repos.json
-    # under the key .repositories.protobuf
-    protobuf_24
+    protobuf_25
     python3
   ];
 
   postPatch = ''
     sed -ie 's|\./bin/just-mr.py|${python3}/bin/python3 ./bin/just-mr.py|' bin/bootstrap.py
     sed -ie 's|#!/usr/bin/env python3|#!${python3}/bin/python3|' bin/parallel-bootstrap-traverser.py
-    jq '.repositories.protobuf.pkg_bootstrap.local_path = "${protobuf_24}"' etc/repos.json > etc/repos.json.patched
+    jq '.repositories.protobuf.pkg_bootstrap.local_path = "${protobuf_25}"' etc/repos.json > etc/repos.json.patched
     mv etc/repos.json.patched etc/repos.json
     jq '.repositories.com_github_grpc_grpc.pkg_bootstrap.local_path = "${grpc}"' etc/repos.json > etc/repos.json.patched
     mv etc/repos.json.patched etc/repos.json
@@ -133,7 +128,6 @@ stdenv.mkDerivation rec {
     __EOF__
     export PKG_CONFIG_PATH=`pwd`/.pkgconfig''${PKG_CONFIG_PATH:+:}$PKG_CONFIG_PATH
 
-
     # Bootstrap just
     export PACKAGE=YES
     export NON_LOCAL_DEPS='[ "google_apis", "bazel_remote_apis" ]'
@@ -143,8 +137,7 @@ stdenv.mkDerivation rec {
     python3 ./bin/bootstrap.py `pwd` ../build "`pwd`/.distfiles"
 
     # Build compiled just-mr
-    mkdir ../build-root
-    ../build/out/bin/just install 'installed just-mr' -c ../build/build-conf.json -C ../build/repo-conf.json --output-dir ../build/out --local-build-root ../build-root
+    ../build/out/bin/just install 'installed just-mr' -c ../build/build-conf.json -C ../build/repo-conf.json --output-dir ../build/out --local-build-root ../build/.just
 
     # convert man pages from Markdown to man
     find "./share/man" -name "*.md" -exec sh -c '${pandoc}/bin/pandoc --standalone --to man -o "''${0%.md}" "''${0}"' {} \;
@@ -160,6 +153,7 @@ stdenv.mkDerivation rec {
     install -m 755 -Dt "$out/bin" "../build/out/bin/just"
     install -m 755 -Dt "$out/bin" "../build/out/bin/just-mr"
     install -m 755 -DT "bin/just-import-git.py" "$out/bin/just-import-git"
+    install -m 755 -DT "bin/just-deduplicate-repos.py" "$out/bin/just-deduplicate-repos"
 
     mkdir -p "$out/share/bash-completion/completions"
     install -m 0644 ./share/just_complete.bash "$out/share/bash-completion/completions/just"
@@ -173,7 +167,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "a generic build tool";
+    description = "Generic build tool";
     homepage = "https://github.com/just-buildsystem/justbuild";
     license = licenses.asl20;
     maintainers = with maintainers; [clkamp];
diff --git a/pkgs/development/compilers/jwasm/default.nix b/pkgs/by-name/jw/jwasm/package.nix
index fa004bca3117e..8a1390aac9f5c 100644
--- a/pkgs/development/compilers/jwasm/default.nix
+++ b/pkgs/by-name/jw/jwasm/package.nix
@@ -1,17 +1,18 @@
-{ lib
-, stdenv
-, fetchFromGitHub
+{
+  lib,
+  fetchFromGitHub,
+  stdenv,
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "jwasm";
-  version = "2.17";
+  version = "2.18";
 
   src = fetchFromGitHub {
     owner = "Baron-von-Riedesel";
     repo  = "JWasm";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-22eNtHXF+RQT4UbXIVjn1JP/s6igp5O1oQT7sVl7c1U=";
+    hash = "sha256-xbiyGBTzIkAfUy45JdAl77gbvArzVUQNPOxa+H2uGFo=";
   };
 
   outputs = [ "out" "doc" ];
@@ -31,13 +32,13 @@ stdenv.mkDerivation (finalAttrs: {
                     -t $doc/share/doc/jwasm/
   '';
 
-  meta = with lib; {
+  meta = {
     homepage = "https://github.com/Baron-von-Riedesel/JWasm/";
-    description = "A MASM-compatible x86 assembler";
-    changelog = "https://github.com/Baron-von-Riedesel/JWasm/releases/tag/v${finalAttrs.version}";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ AndersonTorres ];
-    platforms = platforms.unix;
+    description = "MASM-compatible x86 assembler";
+    changelog = "https://github.com/Baron-von-Riedesel/JWasm/releases/tag/${finalAttrs.src.rev}";
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.unix;
     broken = stdenv.isDarwin;
   };
 })
diff --git a/pkgs/by-name/ka/kalamine/package.nix b/pkgs/by-name/ka/kalamine/package.nix
new file mode 100644
index 0000000000000..6f7ae19795aa7
--- /dev/null
+++ b/pkgs/by-name/ka/kalamine/package.nix
@@ -0,0 +1,38 @@
+{ lib
+, python3
+, fetchFromGitHub
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "kalamine";
+  version = "0.22";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "OneDeadKey";
+    repo = "kalamine";
+    rev = "v${version}";
+    hash = "sha256-SPXVFeysVF/6RqjhXmlPc+3m5vnVndJb7LQshQZBeg8=";
+  };
+
+  nativeBuildInputs = [
+    python3.pkgs.hatchling
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    click
+    lxml
+    pyyaml
+    tomli
+  ];
+
+  pythonImportsCheck = [ "kalamine" ];
+
+  meta = with lib; {
+    description = "Keyboard Layout Maker";
+    homepage = "https://github.com/OneDeadKey/kalamine/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ iogamaster ];
+    mainProgram = "kalamine";
+  };
+}
diff --git a/pkgs/by-name/ka/kanagawa-gtk-theme/package.nix b/pkgs/by-name/ka/kanagawa-gtk-theme/package.nix
index bf714e0f301f8..590994dabbffc 100644
--- a/pkgs/by-name/ka/kanagawa-gtk-theme/package.nix
+++ b/pkgs/by-name/ka/kanagawa-gtk-theme/package.nix
@@ -33,7 +33,7 @@ stdenvNoCC.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A GTK theme with the Kanagawa colour palette";
+    description = "GTK theme with the Kanagawa colour palette";
     homepage = "https://github.com/Fausto-Korpsvart/Kanagawa-GKT-Theme";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ iynaix ];
diff --git a/pkgs/by-name/ka/kanagawa-icon-theme/package.nix b/pkgs/by-name/ka/kanagawa-icon-theme/package.nix
index b2d2517ae6308..7761e4788a34c 100644
--- a/pkgs/by-name/ka/kanagawa-icon-theme/package.nix
+++ b/pkgs/by-name/ka/kanagawa-icon-theme/package.nix
@@ -38,7 +38,7 @@ stdenvNoCC.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "An icon theme for the Kanagawa colour palette";
+    description = "Icon theme for the Kanagawa colour palette";
     homepage = "https://github.com/Fausto-Korpsvart/Kanagawa-GKT-Theme";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ iynaix ];
diff --git a/pkgs/by-name/ka/kanidm/package.nix b/pkgs/by-name/ka/kanidm/package.nix
index 430a2d6d66b2b..de9694227fcd4 100644
--- a/pkgs/by-name/ka/kanidm/package.nix
+++ b/pkgs/by-name/ka/kanidm/package.nix
@@ -20,16 +20,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "kanidm";
-  version = "1.2.1";
+  version = "1.2.3";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-nDAHlpQefCbmz4jw/1cDGQWkfvn/vIqpsOCPjn6yQ6s=";
+    hash = "sha256-J02IbAY5lyoMaq6wJiHizqeFBd5hB6id2YMPxlPsASM=";
   };
 
-  cargoHash = "sha256-+lKWpBz9e4DFVg+A2wH17hHg9HPZNKmM4pM7KMndQ8U=";
+  cargoHash = "sha256-JuTKHXpEhWga2vAZhCpyPFy4w6+9UaasD70oBcrr0Rw=";
 
   KANIDM_BUILD_PROFILE = "release_nixos_${arch}";
 
@@ -71,6 +71,11 @@ rustPlatform.buildRustPackage rec {
     cp -r server/web_ui/pkg $out/ui
   '';
 
+  # Not sure what pathological case it hits when compiling tests with LTO,
+  # but disabling it takes the total `cargo check` time from 40 minutes to
+  # around 5 on a 16-core machine.
+  cargoTestFlags = ["--config" ''profile.release.lto="off"''];
+
   preFixup = ''
     installShellCompletion \
       --bash $releaseDir/build/completions/*.bash \
@@ -91,7 +96,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/kanidm/kanidm/releases/tag/v${version}";
-    description = "A simple, secure and fast identity management platform";
+    description = "Simple, secure and fast identity management platform";
     homepage = "https://github.com/kanidm/kanidm";
     license = licenses.mpl20;
     platforms = platforms.linux;
diff --git a/pkgs/by-name/ka/karmor/package.nix b/pkgs/by-name/ka/karmor/package.nix
index b87c022d67a8e..17bda415f9860 100644
--- a/pkgs/by-name/ka/karmor/package.nix
+++ b/pkgs/by-name/ka/karmor/package.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "karmor";
-  version = "1.2.1";
+  version = "1.2.2";
 
   src = fetchFromGitHub {
     owner = "kubearmor";
     repo = "kubearmor-client";
     rev = "v${version}";
-    hash = "sha256-NNCV/+Jh/tjc7SC4E9/gtiVthVmAxZBOyW3MFISbkH4=";
+    hash = "sha256-LdUu56y9jRPFOF/Tfo9GZYmOlZIUs7/byWj2yQw7BE4=";
   };
 
-  vendorHash = "sha256-CKOZxmUVZWFb7cc+amPwyMv5ScujWeipEqm95m63SYk=";
+  vendorHash = "sha256-r3Fy4nOjlvyHcvztSfOOE6PmOhhNcVdoIq+ie5jqwkw=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -47,7 +47,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A client tool to help manage KubeArmor";
+    description = "Client tool to help manage KubeArmor";
     mainProgram = "karmor";
     homepage = "https://kubearmor.io";
     changelog = "https://github.com/kubearmor/kubearmor-client/releases/v${version}";
diff --git a/pkgs/by-name/ka/katawa-shoujo-re-engineered/package.nix b/pkgs/by-name/ka/katawa-shoujo-re-engineered/package.nix
index f00de11e27fad..e7402d589019d 100644
--- a/pkgs/by-name/ka/katawa-shoujo-re-engineered/package.nix
+++ b/pkgs/by-name/ka/katawa-shoujo-re-engineered/package.nix
@@ -50,7 +50,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A fan-made modernization of the classic visual novel Katawa Shoujo";
+    description = "Fan-made modernization of the classic visual novel Katawa Shoujo";
     homepage = "https://www.fhs.sh/projects";
     license = with lib.licenses; [
       # code
diff --git a/pkgs/by-name/ka/katriawm/package.nix b/pkgs/by-name/ka/katriawm/package.nix
index 7e8817a9e87dd..6a658af345bde 100644
--- a/pkgs/by-name/ka/katriawm/package.nix
+++ b/pkgs/by-name/ka/katriawm/package.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://www.uninformativ.de/git/katriawm/file/README.html";
-    description = "A non-reparenting, dynamic window manager with decorations";
+    description = "Non-reparenting, dynamic window manager with decorations";
     license = lib.licenses.mit;
     mainProgram = "katriawm";
     maintainers = [ lib.maintainers.AndersonTorres ];
diff --git a/pkgs/by-name/kc/kcl-cli/package.nix b/pkgs/by-name/kc/kcl-cli/package.nix
index 3783a4682b993..f289d19e3effb 100644
--- a/pkgs/by-name/kc/kcl-cli/package.nix
+++ b/pkgs/by-name/kc/kcl-cli/package.nix
@@ -18,7 +18,7 @@ buildGoModule rec {
   ];
   subPackages = [ "cmd/kcl" ];
   meta = with lib; {
-    description = "A command line interface for KCL programming language";
+    description = "Command line interface for KCL programming language";
     homepage = "https://github.com/kcl-lang/cli";
     license = licenses.asl20;
     maintainers = with maintainers; [ peefy ];
diff --git a/pkgs/by-name/ke/keepass/package.nix b/pkgs/by-name/ke/keepass/package.nix
index 9b17ca09af8fa..06c83d2ebfa5c 100644
--- a/pkgs/by-name/ke/keepass/package.nix
+++ b/pkgs/by-name/ke/keepass/package.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "keepass";
-  version = "2.56";
+  version = "2.57";
 
   src = fetchurl {
     url = "mirror://sourceforge/keepass/KeePass-${finalAttrs.version}-Source.zip";
-    hash = "sha256-e6+z3M36LiS0/UonJOvD3q6+Ic31uMixL8DoML0UhEQ=";
+    hash = "sha256-emJ4QhhIaUowG4SAUzRK6hUendc/H6JH09Js2Ji9PQ0=";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/by-name/ke/kermit-terminal/package.nix b/pkgs/by-name/ke/kermit-terminal/package.nix
index a0c0008917a46..82892b27d32d5 100644
--- a/pkgs/by-name/ke/kermit-terminal/package.nix
+++ b/pkgs/by-name/ke/kermit-terminal/package.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "kermit";
-  version = "3.8";
+  version = "4.0";
 
   src = fetchFromGitHub {
     owner = "orhun";
     repo = "kermit";
     rev = finalAttrs.version;
-    hash = "sha256-XPHF33Nu+H8OcQFwsuUOhDBDWKm8sh5B36sfROeSWPg=";
+    hash = "sha256-rhlUnRfyd7PmtMSyP+tiu+TxZNb/YyS0Yc5IkWft7/4=";
   };
 
   outputs = [ "out" "man" ];
@@ -37,7 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/orhun/kermit";
-    description = "A VTE-based, simple and froggy terminal emulator";
+    description = "VTE-based, simple and froggy terminal emulator";
     changelog = "https://github.com/orhun/kermit/releases/tag/${finalAttrs.version}";
     license = lib.licenses.gpl3Only;
     mainProgram = "kermit";
diff --git a/pkgs/by-name/ke/kernel-hardening-checker/package.nix b/pkgs/by-name/ke/kernel-hardening-checker/package.nix
index ef202db574dd0..345d65dd3598d 100644
--- a/pkgs/by-name/ke/kernel-hardening-checker/package.nix
+++ b/pkgs/by-name/ke/kernel-hardening-checker/package.nix
@@ -15,7 +15,7 @@ python3Packages.buildPythonApplication rec {
   };
 
   meta = with lib; {
-    description = "A tool for checking the security hardening options of the Linux kernel";
+    description = "Tool for checking the security hardening options of the Linux kernel";
     homepage = "https://github.com/a13xp0p0v/kernel-hardening-checker";
     license = licenses.gpl3Only;
     platforms = platforms.all;
diff --git a/pkgs/by-name/ke/kew/package.nix b/pkgs/by-name/ke/kew/package.nix
index 54f3f6717bd3b..7cab080e0fe42 100644
--- a/pkgs/by-name/ke/kew/package.nix
+++ b/pkgs/by-name/ke/kew/package.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A command-line music player for Linux";
+    description = "Command-line music player for Linux";
     homepage = "https://github.com/ravachol/kew";
     platforms = platforms.linux;
     license = licenses.gpl2Only;
diff --git a/pkgs/by-name/ke/keydb/package.nix b/pkgs/by-name/ke/keydb/package.nix
index 3be46ff770a09..f33b51a0fbffd 100644
--- a/pkgs/by-name/ke/keydb/package.nix
+++ b/pkgs/by-name/ke/keydb/package.nix
@@ -96,7 +96,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://keydb.dev";
-    description = "A Multithreaded Fork of Redis";
+    description = "Multithreaded Fork of Redis";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.all;
     changelog = "https://github.com/Snapchat/KeyDB/raw/v${finalAttrs.version}/00-RELEASENOTES";
diff --git a/pkgs/by-name/ke/keypunch/package.nix b/pkgs/by-name/ke/keypunch/package.nix
new file mode 100644
index 0000000000000..31365c7431ceb
--- /dev/null
+++ b/pkgs/by-name/ke/keypunch/package.nix
@@ -0,0 +1,65 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  rustPlatform,
+  cargo,
+  rustc,
+  meson,
+  ninja,
+  pkg-config,
+  appstream,
+  blueprint-compiler,
+  desktop-file-utils,
+  gettext,
+  wrapGAppsHook4,
+  libadwaita,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "keypunch";
+  version = "1.0";
+
+  src = fetchFromGitHub {
+    owner = "bragefuglseth";
+    repo = "keypunch";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-S4RckHwrVVQrxy9QngTisNM4+cMM+1dXucwEDnM98Rg=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    name = "${finalAttrs.pname}-${finalAttrs.version}";
+    inherit (finalAttrs) src;
+    hash = "sha256-YzENAGy7zEu1dyuhme+x+gJQlE74Vw0JZvRso0vNQXs=";
+  };
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    rustPlatform.cargoSetupHook
+    cargo
+    rustc
+
+    meson
+    ninja
+
+    pkg-config
+    appstream
+    blueprint-compiler
+    desktop-file-utils
+    gettext
+
+    wrapGAppsHook4
+  ];
+
+  buildInputs = [ libadwaita ];
+
+  meta = {
+    description = "Practice your typing skills";
+    homepage = "https://github.com/bragefuglseth/keypunch";
+    license = lib.licenses.gpl3Plus;
+    mainProgram = "keypunch";
+    maintainers = with lib.maintainers; [ tomasajt ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/kg/kgeotag/package.nix b/pkgs/by-name/kg/kgeotag/package.nix
index b59345c79135f..c894c991187a3 100644
--- a/pkgs/by-name/kg/kgeotag/package.nix
+++ b/pkgs/by-name/kg/kgeotag/package.nix
@@ -18,7 +18,7 @@ libsForQt5.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://kgeotag.kde.org/";
-    description = "A stand-alone photo geotagging program";
+    description = "Stand-alone photo geotagging program";
     changelog = "https://invent.kde.org/graphics/kgeotag/-/blob/master/CHANGELOG.rst";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ cimm ];
diff --git a/pkgs/by-name/ki/ki/fix-beartype-error.patch b/pkgs/by-name/ki/ki/fix-beartype-error.patch
new file mode 100644
index 0000000000000..7f13488e4e0a0
--- /dev/null
+++ b/pkgs/by-name/ki/ki/fix-beartype-error.patch
@@ -0,0 +1,38 @@
+From bd765844b40f88547a2afe90d0e09bf74ff0bd61 Mon Sep 17 00:00:00 2001
+From: eljamm <fedi.jamoussi@protonmail.ch>
+Date: Fri, 31 May 2024 16:48:06 +0100
+Subject: [PATCH] Fix beartype Frozenset error
+
+The `copy_note_media` function wrongly returns a `Frozenset` instead of
+a `Set`, which raises an error for the newest beartype version (v0.18.5)
+---
+ ki/__init__.py | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/ki/__init__.py b/ki/__init__.py
+index 3f29c1a..cc65fae 100644
+--- a/ki/__init__.py
++++ b/ki/__init__.py
+@@ -752,9 +752,7 @@ def media_filenames_in_field(col: Collection, s: str) -> Iterable[str]:
+ 
+ @curried
+ @beartype
+-def copy_note_media(
+-    col: Collection, src: Dir, tgt: Dir, row: NoteDBRow
+-) -> FrozenSet[File]:
++def copy_note_media(col: Collection, src: Dir, tgt: Dir, row: NoteDBRow) -> Set[File]:
+     """
+     Copy a single note's media files and return the copies as a set. We do this
+     by first filtering for only 'rootfiles', i.e. excluding media files in
+@@ -769,7 +767,7 @@ def copy_note_media(
+     rootfiles = filter(lambda f: f == os.path.basename(f), files)
+     medias: Iterable[File] = filter(F.isfile, map(lambda f: F.chk(src / f), rootfiles))
+     srcdsts = map(lambda file: (file, F.chk(tgt / file.name)), medias)
+-    return frozenset(starmap(F.copyfile, srcdsts))
++    return set(starmap(F.copyfile, srcdsts))
+ 
+ 
+ @curried
+-- 
+2.44.1
+
diff --git a/pkgs/by-name/ki/ki/package.nix b/pkgs/by-name/ki/ki/package.nix
index 549f60acd8bf1..e4d95d64234bc 100644
--- a/pkgs/by-name/ki/ki/package.nix
+++ b/pkgs/by-name/ki/ki/package.nix
@@ -1,8 +1,9 @@
-{ lib
-, fetchFromGitHub
-, python3Packages
-, cmake
-, anki
+{
+  lib,
+  fetchFromGitHub,
+  python3Packages,
+  cmake,
+  anki,
 }:
 
 python3Packages.buildPythonApplication rec {
@@ -21,24 +22,25 @@ python3Packages.buildPythonApplication rec {
   };
 
   patches = [
-    ./update-to-newer-anki-versions.patch
+    ./fix-beartype-error.patch
     ./replace-deprecated-distutils-with-setuptools.patch
+    ./update-to-newer-anki-versions.patch
   ];
 
   nativeBuildInputs = [ cmake ];
 
-  propagatedBuildInputs = with python3Packages; [
-    beartype
-    click
-    colorama
-    git-filter-repo
-    gitpython
-    lark
-    tqdm
-    whatthepatch
-  ] ++ [
-    anki
-  ];
+  propagatedBuildInputs =
+    [ anki ]
+    ++ (with python3Packages; [
+      beartype
+      click
+      colorama
+      git-filter-repo
+      gitpython
+      lark
+      tqdm
+      whatthepatch
+    ]);
 
   nativeCheckInputs = with python3Packages; [
     bitstring
diff --git a/pkgs/by-name/ki/kickstart/package.nix b/pkgs/by-name/ki/kickstart/package.nix
index 27bb34e0ff170..b8614b7ad9268 100644
--- a/pkgs/by-name/ki/kickstart/package.nix
+++ b/pkgs/by-name/ki/kickstart/package.nix
@@ -33,7 +33,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A scaffolding tool to get new projects up and running quickly";
+    description = "Scaffolding tool to get new projects up and running quickly";
     homepage = "https://github.com/Keats/kickstart";
     changelog = "https://github.com/Keats/kickstart/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/by-name/ki/kikit/solidpython/default.nix b/pkgs/by-name/ki/kikit/solidpython/default.nix
index c03637907a362..2244166bbfeac 100644
--- a/pkgs/by-name/ki/kikit/solidpython/default.nix
+++ b/pkgs/by-name/ki/kikit/solidpython/default.nix
@@ -1,15 +1,11 @@
 # SolidPython is an unmaintained library with old dependencies.
 { buildPythonPackage
-, callPackage
 , fetchFromGitHub
-, fetchFromGitLab
-, fetchpatch
 , lib
 , pythonRelaxDepsHook
 
 , poetry-core
 , prettytable
-, pypng
 , ply
 , setuptools
 , euclid3
diff --git a/pkgs/by-name/ki/kitex/package.nix b/pkgs/by-name/ki/kitex/package.nix
new file mode 100644
index 0000000000000..2890eff5f882e
--- /dev/null
+++ b/pkgs/by-name/ki/kitex/package.nix
@@ -0,0 +1,42 @@
+{ buildGoModule
+, fetchFromGitHub
+, lib
+, testers
+, kitex
+}:
+
+buildGoModule rec {
+  pname = "kitex";
+  version = "0.10.0";
+
+  src = fetchFromGitHub {
+    owner = "cloudwego";
+    repo = "kitex";
+    rev = "v${version}";
+    hash = "sha256-U61n+zaTnABujDSTPcKr4zfMmPVQwxQAotBXZaOVZSo=";
+  };
+
+  vendorHash = "sha256-luZH7ynFni5J3CmLRM3jJPshs/u3zahkS1qS2phopLc=";
+
+  subPackages = [ "tool/cmd/kitex" ];
+
+  ldflags = [ "-s" "-w" ];
+
+  postInstall = ''
+    ln -s $out/bin/kitex $out/bin/protoc-gen-kitex
+    ln -s $out/bin/kitex $out/bin/thrift-gen-kitex
+  '';
+
+  passthru.tests.version = testers.testVersion {
+    package = kitex;
+    version = "v${version}";
+  };
+
+  meta = with lib;  {
+    description = "A high-performance and strong-extensibility Golang RPC framework";
+    homepage = "https://github.com/cloudwego/kitex";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ aaronjheng ];
+    mainProgram = "kitex";
+  };
+}
diff --git a/pkgs/by-name/ki/kittysay/package.nix b/pkgs/by-name/ki/kittysay/package.nix
index df36247ead0e6..35f9dc99de5fe 100644
--- a/pkgs/by-name/ki/kittysay/package.nix
+++ b/pkgs/by-name/ki/kittysay/package.nix
@@ -3,7 +3,7 @@
   rustPlatform,
   fetchFromGitHub,
 }: let
-  version = "0.6.0";
+  version = "0.8.0";
 in
   rustPlatform.buildRustPackage {
     pname = "kittysay";
@@ -13,10 +13,10 @@ in
       owner = "uncenter";
       repo = "kittysay";
       rev = "v${version}";
-      sha256 = "sha256-dJpbRPrpilaOFVPjAESk4DyZtH/hJm16p6pMRqrzOk4=";
+      sha256 = "sha256-ZYHrDBJ8cTqJAh2KUGSCsS1bY/emHRodPxZX2vxAhDs=";
     };
 
-    cargoHash = "sha256-r1xdMczqVyX7ZPjkyDdgVW3BFOeKOw1Dp6mGHb2XzrM=";
+    cargoHash = "sha256-F0WAtpAjBwL5YfzGtPgn7WTL6lgx3bjZFBQdDpjCr3I=";
 
     meta = {
       description = "Cowsay, but with a cute kitty :3";
diff --git a/pkgs/by-name/ki/kiwitalk/package.nix b/pkgs/by-name/ki/kiwitalk/package.nix
index 2a581feb26842..327e219d185d1 100644
--- a/pkgs/by-name/ki/kiwitalk/package.nix
+++ b/pkgs/by-name/ki/kiwitalk/package.nix
@@ -2,7 +2,6 @@
 , fetchFromGitHub
 , copyDesktopItems
 , stdenv
-, stdenvNoCC
 , rustc
 , rustPlatform
 , cargo
@@ -12,20 +11,18 @@
 , webkitgtk
 , pkg-config
 , makeDesktopItem
-, jq
-, moreutils
-, nodePackages
-, cacert
+, pnpm
+, nodejs
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "kiwitalk";
   version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "KiwiTalk";
     repo = "KiwiTalk";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     hash = "sha256-Th8q+Zbc102fIk2v7O3OOeSriUV/ydz60QwxzmS7AY8=";
   };
 
@@ -34,43 +31,9 @@ stdenv.mkDerivation rec {
       --replace "libayatana-appindicator3.so.1" "${libayatana-appindicator}/lib/libayatana-appindicator3.so.1"
   '';
 
-  pnpm-deps = stdenvNoCC.mkDerivation {
-    pname = "${pname}-pnpm-deps";
-    inherit src version;
-
-    nativeBuildInputs = [
-      jq
-      moreutils
-      nodePackages.pnpm
-      cacert
-    ];
-
-    installPhase = ''
-      export HOME=$(mktemp -d)
-      pnpm config set store-dir $out
-      # This version of the package has different versions of esbuild as a dependency.
-      # You can use the command below to get esbuild binaries for a specific platform and calculate hashes for that platforms. (linux, darwin for os, and x86, arm64, ia32 for cpu)
-      # cat package.json | jq '.pnpm.supportedArchitectures += { "os": ["linux"], "cpu": ["arm64"] }' | sponge package.json
-      pnpm install --frozen-lockfile --ignore-script
-
-      # Remove timestamp and sort the json files.
-      rm -rf $out/v3/tmp
-      for f in $(find $out -name "*.json"); do
-        sed -i -E -e 's/"checkedAt":[0-9]+,//g' $f
-        jq --sort-keys . $f | sponge $f
-      done
-    '';
-
-    dontBuild = true;
-    dontFixup = true;
-    outputHashMode = "recursive";
-    outputHash = {
-      x86_64-linux = "sha256-LJPjWNpVfdUu8F5BMhAzpTo/h6ax7lxY2EESHj5P390=";
-      aarch64-linux = "sha256-N1K4pV5rbWmO/KonvYegzBoWa6TYQIqhQyxH/sWjOJQ=";
-      i686-linux = "sha256-/Q7VZahYhLdKVFB25CanROYxD2etQOcRg+4bXZUMqTc=";
-      x86_64-darwin = "sha256-9biFAbFD7Bva7KPKztgCvcaoX8E6AlJBKkjlDQdP6Zw=";
-      aarch64-darwin = "sha256-to5Y0R9tm9b7jUQAK3eBylLhpu+w5oDd63FbBCBAvd8=";
-    }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
+  pnpmDeps = pnpm.fetchDeps {
+    inherit (finalAttrs) pname version src;
+    hash = "sha256-gf3vmKUta8KksUOxyhQS4UO6ycAJDfEicyXVGMW8+4c=";
   };
 
   cargoDeps = rustPlatform.importCargoLock {
@@ -86,7 +49,8 @@ stdenv.mkDerivation rec {
     cargo
     rustc
     cargo-tauri
-    nodePackages.pnpm
+    nodejs
+    pnpm.configHook
     copyDesktopItems
     pkg-config
   ];
@@ -98,10 +62,6 @@ stdenv.mkDerivation rec {
   ];
 
   preBuild = ''
-    export HOME=$(mktemp -d)
-    pnpm config set store-dir ${pnpm-deps}
-    pnpm install --offline --frozen-lockfile --ignore-script
-    pnpm rebuild
     cargo tauri build -b deb
   '';
 
@@ -124,11 +84,11 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An UNOFFICIAL cross-platform KakaoTalk client written in TypeScript & Rust (SolidJS, tauri)";
+    description = "UNOFFICIAL cross-platform KakaoTalk client written in TypeScript & Rust (SolidJS, tauri)";
     homepage = "https://github.com/KiwiTalk/KiwiTalk";
     maintainers = with maintainers; [ honnip ];
     license = licenses.asl20;
     platforms = platforms.linux ++ platforms.darwin;
     mainProgram = "kiwi-talk";
   };
- }
+})
diff --git a/pkgs/by-name/km/kmeet/package.nix b/pkgs/by-name/km/kmeet/package.nix
index 287a74616302f..9247c7499fd7c 100644
--- a/pkgs/by-name/km/kmeet/package.nix
+++ b/pkgs/by-name/km/kmeet/package.nix
@@ -28,7 +28,7 @@ appimageTools.wrapType2 rec {
     '';
 
   meta = with lib; {
-    description = "Organise secure online meetings via your web browser, your mobile, your tablet or your computer.";
+    description = "Organise secure online meetings via your web browser, your mobile, your tablet or your computer";
     homepage = "https://www.infomaniak.com/en/apps/download-kmeet";
     license = licenses.unfree;
     maintainers = [ maintainers.vinetos ];
diff --git a/pkgs/by-name/km/kmsvnc/package.nix b/pkgs/by-name/km/kmsvnc/package.nix
index 32d6b8e18d40e..4d0210f925b14 100644
--- a/pkgs/by-name/km/kmsvnc/package.nix
+++ b/pkgs/by-name/km/kmsvnc/package.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A VNC server for DRM/KMS capable GNU/Linux devices";
+    description = "VNC server for DRM/KMS capable GNU/Linux devices";
     homepage = "https://github.com/isjerryxiao/kmsvnc";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ nickcao ];
diff --git a/pkgs/by-name/kn/knossosnet/package.nix b/pkgs/by-name/kn/knossosnet/package.nix
index c0ba231019d41..ba4bae3143765 100644
--- a/pkgs/by-name/kn/knossosnet/package.nix
+++ b/pkgs/by-name/kn/knossosnet/package.nix
@@ -28,7 +28,7 @@ buildDotnetModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/KnossosNET/Knossos.NET";
-    description = "A multi-platform launcher for Freespace 2 Open";
+    description = "Multi-platform launcher for Freespace 2 Open";
     license = licenses.gpl3Only;
     mainProgram = "Knossos.NET";
     maintainers = with maintainers; [ cdombroski ];
diff --git a/pkgs/servers/knxd/default.nix b/pkgs/by-name/kn/knxd/package.nix
index 2ae1930374493..38e09d5797453 100644
--- a/pkgs/servers/knxd/default.nix
+++ b/pkgs/by-name/kn/knxd/package.nix
@@ -1,5 +1,6 @@
 { lib
 , stdenv
+, buildPackages
 , fetchFromGitHub
 , autoreconfHook
 , pkg-config
@@ -12,19 +13,19 @@
 , withUsb ? stdenv.isLinux, libusb1
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "knxd";
   version = "0.14.61";
 
   src = fetchFromGitHub {
     owner = "knxd";
     repo = "knxd";
-    rev = version;
+    rev = finalAttrs.version;
     hash = "sha256-b8svjGaxW8YqonhXewebDUitezKoMcZxcUFGd2EKZQ4=";
   };
 
   postPatch = ''
-    sed -i '2i echo ${version}; exit' tools/version.sh
+    sed -i '2i echo ${finalAttrs.version}; exit' tools/version.sh
     sed -i '2i exit' tools/get_libfmt
   '';
 
@@ -35,8 +36,12 @@ stdenv.mkDerivation rec {
     ++ lib.optional withUsb libusb1
     ++ lib.optional stdenv.isDarwin argp-standalone;
 
-  configureFlags = lib.optional (!withSystemd) "--disable-systemd"
-    ++ lib.optional (!withUsb) "--disable-usb";
+  configureFlags = [
+    (lib.enableFeature withSystemd "systemd")
+    (lib.enableFeature withUsb "usb")
+  ];
+
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
 
   installFlags = lib.optionals withSystemd [
     "systemdsystemunitdir=$(out)/lib/systemd/system"
@@ -50,5 +55,4 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ sikmir ];
     platforms = platforms.unix;
   };
-}
-
+})
diff --git a/pkgs/by-name/ko/koboldcpp/package.nix b/pkgs/by-name/ko/koboldcpp/package.nix
new file mode 100644
index 0000000000000..bd890528c44b7
--- /dev/null
+++ b/pkgs/by-name/ko/koboldcpp/package.nix
@@ -0,0 +1,154 @@
+{
+  lib,
+  fetchFromGitHub,
+  stdenv,
+  makeWrapper,
+  gitUpdater,
+  python311Packages,
+  tk,
+
+  darwin,
+
+  koboldLiteSupport ? true,
+
+  config,
+  cudaPackages ? { },
+
+  openblasSupport ? !stdenv.isDarwin,
+  openblas,
+
+  cublasSupport ? config.cudaSupport,
+
+  clblastSupport ? stdenv.isLinux,
+  clblast,
+  ocl-icd,
+
+  vulkanSupport ? true,
+  vulkan-loader,
+
+  metalSupport ? stdenv.isDarwin && stdenv.isAarch64,
+
+  # You can find list of x86_64 options here: https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html
+  # For ARM here: https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html
+  # If you set "march" to "native", specify "mtune" as well; otherwise, it will be set to "generic". (credit to: https://lemire.me/blog/2018/07/25/it-is-more-complicated-than-i-thought-mtune-march-in-gcc/)
+  # For example, if you have an AMD Ryzen CPU, you will set "march" to "x86-64" and "mtune" to "znver2"
+  march ? "",
+  mtune ? "",
+}:
+
+let
+  makeBool = option: bool: (if bool then "${option}=1" else "");
+
+  effectiveStdenv = if cublasSupport then cudaPackages.backendStdenv else stdenv;
+in
+effectiveStdenv.mkDerivation (finalAttrs: {
+  pname = "koboldcpp";
+  version = "1.67";
+
+  src = fetchFromGitHub {
+    owner = "LostRuins";
+    repo = "koboldcpp";
+    rev = "refs/tags/v${finalAttrs.version}";
+    sha256 = "sha256-FqByklvPPwTGPM1r10Ktv3uMnyyiqZ8z/h0m28wVv68=";
+  };
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [
+    makeWrapper
+    python311Packages.wrapPython
+  ];
+
+  pythonInputs = builtins.attrValues { inherit (python311Packages) tkinter customtkinter packaging; };
+
+  buildInputs =
+    [ tk ]
+    ++ finalAttrs.pythonInputs
+    ++ lib.optionals effectiveStdenv.isDarwin [
+      darwin.apple_sdk_11_0.frameworks.Accelerate
+      darwin.apple_sdk_11_0.frameworks.CoreVideo
+      darwin.apple_sdk_11_0.frameworks.CoreGraphics
+      darwin.apple_sdk_11_0.frameworks.CoreServices
+    ]
+    ++ lib.optionals metalSupport [
+      darwin.apple_sdk_11_0.frameworks.MetalKit
+      darwin.apple_sdk_11_0.frameworks.Foundation
+      darwin.apple_sdk_11_0.frameworks.MetalPerformanceShaders
+    ]
+    ++ lib.optionals openblasSupport [ openblas ]
+    ++ lib.optionals cublasSupport [
+      cudaPackages.libcublas
+      cudaPackages.cuda_nvcc
+      cudaPackages.cuda_cudart
+      cudaPackages.cuda_cccl
+    ]
+    ++ lib.optionals clblastSupport [
+      clblast
+      ocl-icd
+    ]
+    ++ lib.optionals vulkanSupport [ vulkan-loader ];
+
+  pythonPath = finalAttrs.pythonInputs;
+
+  darwinLdFlags = lib.optionals stdenv.isDarwin [
+    "-F${darwin.apple_sdk_11_0.frameworks.CoreServices}/Library/Frameworks"
+    "-F${darwin.apple_sdk_11_0.frameworks.Accelerate}/Library/Frameworks"
+    "-framework CoreServices"
+    "-framework Accelerate"
+  ];
+  metalLdFlags = lib.optionals metalSupport [
+    "-F${darwin.apple_sdk_11_0.frameworks.Foundation}/Library/Frameworks"
+    "-F${darwin.apple_sdk_11_0.frameworks.Metal}/Library/Frameworks"
+    "-framework Foundation"
+    "-framework Metal"
+  ];
+
+  env.NIX_LDFLAGS = lib.concatStringsSep " " (finalAttrs.darwinLdFlags ++ finalAttrs.metalLdFlags);
+
+  env.NIX_CFLAGS_COMPILE =
+    lib.optionalString (march != "") "-march=${march}" + lib.optionalString (mtune != "") "-mtune=${mtune}";
+
+  makeFlags = [
+    (makeBool "LLAMA_OPENBLAS" openblasSupport)
+    (makeBool "LLAMA_CUBLAS" cublasSupport)
+    (makeBool "LLAMA_CLBLAST" clblastSupport)
+    (makeBool "LLAMA_VULKAN" vulkanSupport)
+    (makeBool "LLAMA_METAL" metalSupport)
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p "$out/bin"
+
+    install -Dm755 koboldcpp.py "$out/bin/koboldcpp.unwrapped"
+    cp *.so "$out/bin"
+    cp *.embd "$out/bin"
+
+    ${lib.optionalString (!koboldLiteSupport) ''
+      rm "$out/bin/kcpp_docs.embd"
+      rm "$out/bin/klite.embd"
+    ''}
+
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    wrapPythonProgramsIn "$out/bin" "$pythonPath"
+    makeWrapper "$out/bin/koboldcpp.unwrapped" "$out/bin/koboldcpp" \
+    --prefix PATH ${lib.makeBinPath [ tk ]}
+  '';
+
+  passthru.updateScript = gitUpdater { rev-prefix = "v"; };
+
+  meta = {
+    description = "Way to run various GGML and GGUF models";
+    license = lib.licenses.agpl3Only;
+    maintainers = with lib.maintainers; [
+      maxstrid
+      donteatoreo
+    ];
+    mainProgram = "koboldcpp";
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/pkgs/by-name/ko/koji/package.nix b/pkgs/by-name/ko/koji/package.nix
index b42362245e2dc..b39314887cf06 100644
--- a/pkgs/by-name/ko/koji/package.nix
+++ b/pkgs/by-name/ko/koji/package.nix
@@ -33,7 +33,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "An interactive CLI for creating conventional commits";
+    description = "Interactive CLI for creating conventional commits";
     homepage = "https://github.com/its-danny/koji";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ ByteSudoer ];
diff --git a/pkgs/by-name/ko/komac/package.nix b/pkgs/by-name/ko/komac/package.nix
index b15fc902b2563..53dcc93d7b140 100644
--- a/pkgs/by-name/ko/komac/package.nix
+++ b/pkgs/by-name/ko/komac/package.nix
@@ -41,7 +41,7 @@ rustPlatform.buildRustPackage {
   };
 
   meta = with lib; {
-    description = "The Community Manifest Creator for WinGet";
+    description = "Community Manifest Creator for WinGet";
     homepage = "https://github.com/russellbanks/Komac";
     changelog = "https://github.com/russellbanks/Komac/releases/tag/${src.rev}";
     license = licenses.gpl3Plus;
diff --git a/pkgs/by-name/ko/konbucase/package.nix b/pkgs/by-name/ko/konbucase/package.nix
index a846bc775a7a8..ac40c78a11ff6 100644
--- a/pkgs/by-name/ko/konbucase/package.nix
+++ b/pkgs/by-name/ko/konbucase/package.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://github.com/ryonakano/konbucase";
-    description = "A case converting app suitable for coding or typing";
+    description = "Case converting app suitable for coding or typing";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ galaxy ];
     platforms = platforms.linux;
diff --git a/pkgs/by-name/ko/kontemplate/package.nix b/pkgs/by-name/ko/kontemplate/package.nix
new file mode 100644
index 0000000000000..6ab1a96f3ad2a
--- /dev/null
+++ b/pkgs/by-name/ko/kontemplate/package.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildGoModule
+, fetchgit
+}:
+buildGoModule {
+  pname = "kontemplate";
+  version = "1.8.0-unstable-2024-06-09";
+
+  src = fetchgit {
+    url = "https://code.tvl.fyi/depot.git";
+    sha256 = "sha256-Cv/y1Tj+hUKP0gi9ceS1Gml1WRYbUGSeWfJfXyX6dLA=";
+    rev = "b16ddb54b0327606cec2df220eaabb1328e18e3e";
+  };
+
+  modRoot = "ops/kontemplate";
+
+  vendorHash = "sha256-xPGVM2dq5fAVOiuodOXhDm3v3k+ncNLhlk6aCtF5S9E=";
+
+  meta = {
+    description = "Extremely simple Kubernetes resource templates";
+    mainProgram = "kontemplate";
+    homepage = "https://code.tvl.fyi/about/ops/kontemplate";
+    license = lib.licenses.gpl3;
+    maintainers = with lib.maintainers; [ mbode tazjin ];
+    platforms = lib.platforms.unix;
+
+    longDescription = ''
+      Kontemplate is a simple CLI tool that can take sets of
+      Kubernetes resource files with placeholders and insert values
+      per environment.
+
+      It can be used as a simple way of deploying the same set of
+      resources to different Kubernetes contexts with context-specific
+      configuration.
+    '';
+  };
+}
diff --git a/pkgs/by-name/ko/koodo-reader/fix-isdev.patch b/pkgs/by-name/ko/koodo-reader/fix-isdev.patch
deleted file mode 100644
index 956cb2042f0b8..0000000000000
--- a/pkgs/by-name/ko/koodo-reader/fix-isdev.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/main.js b/main.js
-index a4b5c8ef..743d63ca 100644
---- a/main.js
-+++ b/main.js
-@@ -8,7 +8,7 @@ const {
-   nativeTheme,
- } = require("electron");
- const path = require("path");
--const isDev = require("electron-is-dev");
-+const isDev = false;
- const Store = require("electron-store");
- const store = new Store();
- const fs = require("fs");
diff --git a/pkgs/by-name/ko/koodo-reader/package.nix b/pkgs/by-name/ko/koodo-reader/package.nix
index 059dfeda02eea..5a53af807eea4 100644
--- a/pkgs/by-name/ko/koodo-reader/package.nix
+++ b/pkgs/by-name/ko/koodo-reader/package.nix
@@ -12,6 +12,9 @@
   electron,
 }:
 
+let
+  electronDist = electron + (if stdenv.isDarwin then "/Applications" else "/libexec/electron");
+in
 mkYarnPackage rec {
   pname = "koodo-reader";
   version = "1.6.6";
@@ -29,23 +32,27 @@ mkYarnPackage rec {
   # should be copied from `koodo-reader.src`
   packageJSON = ./package.json;
 
-  patches = [ ./fix-isdev.patch ];
-
   offlineCache = fetchYarnDeps {
     yarnLock = "${src}/yarn.lock";
     hash = "sha256-VvYkotVb74zR9+/IWiQwOX/6RJf+xukpi7okRovfVzc=";
   };
 
-  nativeBuildInputs = [
-    copyDesktopItems
-    makeWrapper
-    wrapGAppsHook3
-  ];
+  nativeBuildInputs =
+    [
+      makeWrapper
+    ]
+    ++ lib.optionals (!stdenv.isDarwin) [
+      copyDesktopItems
+      wrapGAppsHook3
+    ];
 
   dontWrapGApps = true;
 
   env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
 
+  # disable code signing on Darwin
+  env.CSC_IDENTITY_AUTO_DISCOVERY = "false";
+
   configurePhase = ''
     runHook preConfigure
 
@@ -60,8 +67,11 @@ mkYarnPackage rec {
 
     export HOME=$(mktemp -d)
     yarn --offline build
+
+    cp -r ${electronDist} electron-dist
+    chmod -R u+w electron-dist
     yarn --offline run electron-builder --dir \
-      -c.electronDist=${electron}/libexec/electron \
+      -c.electronDist=electron-dist \
       -c.electronVersion=${electron.version}
 
     runHook postBuild
@@ -70,21 +80,30 @@ mkYarnPackage rec {
   installPhase = ''
     runHook preInstall
 
-    install -Dm644 assets/icons/256x256.png $out/share/icons/hicolor/256x256/apps/koodo-reader.png
-    install -Dm644 ${./mime-types.xml} $out/share/mime/packages/koodo-reader.xml
+    ${lib.optionalString (!stdenv.isDarwin) ''
+      install -Dm644 assets/icons/256x256.png $out/share/icons/hicolor/256x256/apps/koodo-reader.png
+      install -Dm644 ${./mime-types.xml} $out/share/mime/packages/koodo-reader.xml
+
+      mkdir -p $out/share/lib/koodo-reader
+      cp -r dist/*-unpacked/{locales,resources{,.pak}} $out/share/lib/koodo-reader
+    ''}
 
-    mkdir -p $out/share/lib/koodo-reader
-    cp -r dist/*-unpacked/{locales,resources{,.pak}} $out/share/lib/koodo-reader
+    ${lib.optionalString stdenv.isDarwin ''
+      mkdir -p $out/Applications
+      cp -r dist/mac*/"Koodo Reader.app" $out/Applications
+      makeWrapper "$out/Applications/Koodo Reader.app/Contents/MacOS/Koodo Reader" $out/bin/koodo-reader
+    ''}
 
     runHook postInstall
   '';
 
   # we use makeShellWrapper instead of the makeBinaryWrapper provided by wrapGAppsHook for proper shell variable expansion
-  postFixup = ''
-    makeShellWrapper ${electron}/bin/electron $out/bin/koodo-reader \
+  postFixup = lib.optionalString (!stdenv.isDarwin) ''
+    makeShellWrapper ${lib.getExe electron} $out/bin/koodo-reader \
       --add-flags $out/share/lib/koodo-reader/resources/app.asar \
       "''${gappsWrapperArgs[@]}" \
       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
+      --set-default ELECTRON_IS_DEV 0 \
       --inherit-argv0
   '';
 
@@ -117,7 +136,6 @@ mkYarnPackage rec {
   ];
 
   meta = {
-    broken = stdenv.isDarwin;
     changelog = "https://github.com/troyeguo/koodo-reader/releases/tag/v${version}";
     description = "A cross-platform ebook reader";
     longDescription = ''
diff --git a/pkgs/by-name/ko/kor/package.nix b/pkgs/by-name/ko/kor/package.nix
index a04132f991306..0f39d9e2049f7 100644
--- a/pkgs/by-name/ko/kor/package.nix
+++ b/pkgs/by-name/ko/kor/package.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kor";
-  version = "0.4.0";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "yonahd";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-OZSec1S583jVGqSET0y4WhKxWf9CyLKuhEwu39Zg9vE=";
+    hash = "sha256-5x0Zyk4gPMKcZtpgT0QbIm6NeWX+uJwT2NM+yS2oC3o=";
   };
 
-  vendorHash = "sha256-4XcmaW4H+IgZZx3PuG0aimqSG1eUnRtcbebKXuencnQ=";
+  vendorHash = "sha256-9aZy1i0VrDRySt5A5aQHBXa0mPgD+rsyeqQrd6snWKc=";
 
   preCheck = ''
     HOME=$(mktemp -d)
@@ -24,7 +24,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "A Golang Tool to discover unused Kubernetes Resources";
+    description = "Golang Tool to discover unused Kubernetes Resources";
     homepage = "https://github.com/yonahd/kor";
     changelog = "https://github.com/yonahd/kor/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/by-name/ko/kotlin-interactive-shell/package.nix b/pkgs/by-name/ko/kotlin-interactive-shell/package.nix
index 23848a48969e6..752be68d42452 100644
--- a/pkgs/by-name/ko/kotlin-interactive-shell/package.nix
+++ b/pkgs/by-name/ko/kotlin-interactive-shell/package.nix
@@ -12,10 +12,12 @@ maven.buildMavenPackage rec {
   };
 
   mvnHash = "sha256-m1o0m0foqJhEzWjC9behBeld5HT08WClcZN2xc3fZrI=";
-  mvnParameters = "-DskipTests compile";
+  mvnParameters = "compile";
 
   nativeBuildInputs = [ makeWrapper ];
 
+  doCheck = false;
+
   installPhase = ''
     runHook preInstall
 
diff --git a/pkgs/by-name/kp/kplex/package.nix b/pkgs/by-name/kp/kplex/package.nix
index 78eb35f1e1939..a176fa92d78e9 100644
--- a/pkgs/by-name/kp/kplex/package.nix
+++ b/pkgs/by-name/kp/kplex/package.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A multiplexer for various nmea 0183 interfaces";
+    description = "Multiplexer for various nmea 0183 interfaces";
     homepage = "https://www.stripydog.com/kplex/";
     changelog = "https://www.stripydog.com/kplex/changes.html";
     license = licenses.gpl3Plus;
diff --git a/pkgs/by-name/kr/krbjack/package.nix b/pkgs/by-name/kr/krbjack/package.nix
index 59a58f289b005..a26b55144277c 100644
--- a/pkgs/by-name/kr/krbjack/package.nix
+++ b/pkgs/by-name/kr/krbjack/package.nix
@@ -5,13 +5,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "krbjack";
-  version = "0-unstable-2024-02-08";
+  version = "1.2.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "almandin";
     repo = "krbjack";
-    rev = "0abaf7039c11fe735120c44a9420a311b42f7551";
+    rev = "refs/tags/${version}";
     hash = "sha256-rvK0I8WlXqJtau9f+6ximfzYCjX21dPIyDN56IMI0gE=";
   };
 
@@ -19,12 +19,13 @@ python3.pkgs.buildPythonApplication rec {
     "impacket"
   ];
 
-  nativeBuildInputs = with python3.pkgs; [
+  build-system = with python3.pkgs; [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  nativeBuildInputs = with python3.pkgs; [ pythonRelaxDepsHook ];
+
+  dependencies = with python3.pkgs; [
     colorama
     dnspython
     impacket
@@ -41,6 +42,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     description = "Kerberos AP-REQ hijacking tool with DNS unsecure updates abuse";
     homepage = "https://github.com/almandin/krbjack";
+    changelog = "https://github.com/almandin/krbjack/releases/tag/${version}}";
     license = licenses.beerware;
     maintainers = with maintainers; [ fab ];
     mainProgram = "krbjack";
diff --git a/pkgs/by-name/ks/ks/package.nix b/pkgs/by-name/ks/ks/package.nix
new file mode 100644
index 0000000000000..ab80aa2b6bc12
--- /dev/null
+++ b/pkgs/by-name/ks/ks/package.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "ks";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner = "loteoo";
+    repo = "ks";
+    rev = "${finalAttrs.version}";
+    hash = "sha256-jGo0u0wiwOc2n8x0rvDIg1suu6vJQ5UCfslYD5vUlyI=";
+  };
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp ${finalAttrs.pname} $out/bin/
+  '';
+
+  meta = {
+    mainProgram = "ks";
+    homepage = "https://github.com/loteoo/ks";
+    description = "Command-line secrets manager powered by macOS keychains";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ ivankovnatsky ];
+    platforms = lib.platforms.darwin;
+  };
+})
diff --git a/pkgs/by-name/ks/kseexpr/package.nix b/pkgs/by-name/ks/kseexpr/package.nix
index 37e29c3a10ed2..9b37a360a2e8f 100644
--- a/pkgs/by-name/ks/kseexpr/package.nix
+++ b/pkgs/by-name/ks/kseexpr/package.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage    = "https://invent.kde.org/graphics/kseexpr";
-    description = "An embeddable expression evaluation engine";
+    description = "Embeddable expression evaluation engine";
     maintainers = with maintainers; [ nek0 ];
     license     = licenses.lgpl3Plus;
   };
diff --git a/pkgs/by-name/ks/kshutdown/package.nix b/pkgs/by-name/ks/kshutdown/package.nix
index a184c5eaef1c9..48d85e3451de3 100644
--- a/pkgs/by-name/ks/kshutdown/package.nix
+++ b/pkgs/by-name/ks/kshutdown/package.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://kshutdown.sourceforge.io/";
-    description = "A graphical shutdown utility for Linux and Windows";
+    description = "Graphical shutdown utility for Linux and Windows";
     mainProgram = "kshutdown";
     license = with licenses; [ gpl3 ];
     maintainers = with maintainers ; [ eymeric ];
diff --git a/pkgs/by-name/kt/ktfmt/package.nix b/pkgs/by-name/kt/ktfmt/package.nix
index 99d5b03f9a53d..3e0063a9e37d8 100644
--- a/pkgs/by-name/kt/ktfmt/package.nix
+++ b/pkgs/by-name/kt/ktfmt/package.nix
@@ -31,7 +31,7 @@ maven.buildMavenPackage rec {
   '';
 
   meta = with lib; {
-    description = "A program that reformats Kotlin source code to comply with the common community standard for Kotlin code conventions.";
+    description = "Program that reformats Kotlin source code to comply with the common community standard for Kotlin code conventions";
     homepage = "https://github.com/facebook/ktfmt";
     license = licenses.asl20;
     mainProgram = "ktfmt";
diff --git a/pkgs/by-name/kt/ktls-utils/package.nix b/pkgs/by-name/kt/ktls-utils/package.nix
index 5d773a75ab9e4..d25c72f360821 100644
--- a/pkgs/by-name/kt/ktls-utils/package.nix
+++ b/pkgs/by-name/kt/ktls-utils/package.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ktls-utils";
-  version = "0.10";
+  version = "0.11";
 
   src = fetchFromGitHub {
     owner = "oracle";
     repo = "ktls-utils";
     rev = "ktls-utils-${version}";
-    hash = "sha256-1HceFajSSq1D3IMeGQF+i/iW1lL2opLLWFfsRHW9atg=";
+    hash = "sha256-QPKBJEuXYDuOhlFhc0zQ4hAq1owFNe9b3BUKliNFgu0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/ku/kube-state-metrics/package.nix b/pkgs/by-name/ku/kube-state-metrics/package.nix
new file mode 100644
index 0000000000000..f7e0b0110c8da
--- /dev/null
+++ b/pkgs/by-name/ku/kube-state-metrics/package.nix
@@ -0,0 +1,32 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+}:
+
+buildGoModule rec {
+  pname = "kube-state-metrics";
+  version = "2.12.0";
+
+  src = fetchFromGitHub {
+    owner = "kubernetes";
+    repo = "kube-state-metrics";
+    rev = "v${version}";
+    hash = "sha256-EBSlufgzT4zgxTO5B0/RHHJJ2GgtU3U9ypd1QjC3knE=";
+  };
+
+  vendorHash = "sha256-A/oiFEWM3TOtk4V3xpehJ+5oKSyzYKZHVlp3wjykFRA=";
+
+  excludedPackages = [
+    "./tests/e2e"
+    "./tools"
+  ];
+
+  meta = {
+    homepage = "https://github.com/kubernetes/kube-state-metrics";
+    description = "Add-on agent to generate and expose k8s cluster-level metrics";
+    license = lib.licenses.asl20;
+    maintainers = [ lib.maintainers.eskytthe ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/pkgs/by-name/ku/kubectl-validate/package.nix b/pkgs/by-name/ku/kubectl-validate/package.nix
index f01b05b18b21c..a37ecbdf92160 100644
--- a/pkgs/by-name/ku/kubectl-validate/package.nix
+++ b/pkgs/by-name/ku/kubectl-validate/package.nix
@@ -31,7 +31,7 @@ buildGoModule {
   meta = {
     platforms = lib.platforms.all;
     mainProgram = "kubectl-validate";
-    description = "A tool for local validation of resources for native Kubernetes types and CRDs";
+    description = "Tool for local validation of resources for native Kubernetes types and CRDs";
     homepage = "https://github.com/kubernetes-sigs/kubectl-validate";
     changelog = "https://github.com/kubernetes-sigs/kubectl-validate/releases/tag/v${version}";
     license = lib.licenses.asl20;
diff --git a/pkgs/by-name/ku/kubefetch/package.nix b/pkgs/by-name/ku/kubefetch/package.nix
new file mode 100644
index 0000000000000..94db5128593d2
--- /dev/null
+++ b/pkgs/by-name/ku/kubefetch/package.nix
@@ -0,0 +1,26 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildGoModule,
+}:
+buildGoModule rec {
+  pname = "kubefetch";
+  version = "0.7.2";
+
+  src = fetchFromGitHub {
+    owner = "jkulzer";
+    repo = "kubefetch";
+    rev = "${version}";
+    hash = "sha256-ksnqlfm++Np5I7ZUXvVPgm3T2hHM6x9sAWdmK0Whn5k=";
+  };
+
+  vendorHash = "sha256-qsncOsCxepySJI+rJnzbIGxSWlxMzqShtzcEoJD2UPw=";
+
+  meta = {
+    description = "A neofetch-like tool to show info about your Kubernetes Cluster.";
+    homepage = "https://github.com/jkulzer/kubefetch";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ wrmilling ];
+    mainProgram = "kubefetch";
+  };
+}
diff --git a/pkgs/by-name/ku/kubefwd/package.nix b/pkgs/by-name/ku/kubefwd/package.nix
new file mode 100644
index 0000000000000..c8831bbfa6c6d
--- /dev/null
+++ b/pkgs/by-name/ku/kubefwd/package.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "kubefwd";
+  version = "1.22.5";
+
+  src = fetchFromGitHub {
+    owner = "txn2";
+    repo = "kubefwd";
+    rev = version;
+    hash = "sha256-xTd/1h9fW2GbZ2u3RsExbQouRZot9CUDuqNLItRySxM=";
+  };
+
+  vendorHash = "sha256-qAlzgPw1reDZYK+InlnAsBgVemVumWwLgEuYm+ALcCs=";
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X=main.Version=${version}"
+  ];
+
+  meta = with lib; {
+    description = "Bulk port forwarding Kubernetes services for local development";
+    homepage = "https://github.com/txn2/kubefwd";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ iogamaster ];
+    mainProgram = "kubefwd";
+  };
+}
diff --git a/pkgs/by-name/ku/kubo/package.nix b/pkgs/by-name/ku/kubo/package.nix
index 1d776e8ced503..9b0163a1ae601 100644
--- a/pkgs/by-name/ku/kubo/package.nix
+++ b/pkgs/by-name/ku/kubo/package.nix
@@ -7,7 +7,7 @@
 
 buildGoModule rec {
   pname = "kubo";
-  version = "0.28.0"; # When updating, also check if the repo version changed and adjust repoVersion below
+  version = "0.29.0"; # When updating, also check if the repo version changed and adjust repoVersion below
   rev = "v${version}";
 
   passthru.repoVersion = "15"; # Also update kubo-migrator when changing the repo version
@@ -15,7 +15,7 @@ buildGoModule rec {
   # Kubo makes changes to its source tarball that don't match the git source.
   src = fetchurl {
     url = "https://github.com/ipfs/kubo/releases/download/${rev}/kubo-source.tar.gz";
-    hash = "sha256-nq9NpbK9Fql0o1TG8p9lIlnKUnxvMMimz8AYKVozkwY=";
+    hash = "sha256-udCVyA3NN3RCmVtdIjccfy/RymvrsGJoxlF8DiapP4g=";
   };
 
   # tarball contains multiple files/directories
@@ -41,9 +41,9 @@ buildGoModule rec {
 
   postPatch = ''
     substituteInPlace 'misc/systemd/ipfs.service' \
-      --replace '/usr/local/bin/ipfs' "$out/bin/ipfs"
+      --replace-fail '/usr/local/bin/ipfs' "$out/bin/ipfs"
     substituteInPlace 'misc/systemd/ipfs-hardened.service' \
-      --replace '/usr/local/bin/ipfs' "$out/bin/ipfs"
+      --replace-fail '/usr/local/bin/ipfs' "$out/bin/ipfs"
   '';
 
   postInstall = ''
@@ -57,7 +57,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "An IPFS implementation in Go";
+    description = "IPFS implementation in Go";
     homepage = "https://ipfs.io/";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/by-name/ky/kyverno-chainsaw/package.nix b/pkgs/by-name/ky/kyverno-chainsaw/package.nix
index d20c7308b4236..411df5eee29d2 100644
--- a/pkgs/by-name/ky/kyverno-chainsaw/package.nix
+++ b/pkgs/by-name/ky/kyverno-chainsaw/package.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kyverno-chainsaw";
-  version = "0.2.1";
+  version = "0.2.3";
 
   src = fetchFromGitHub {
     owner = "kyverno";
     repo = "chainsaw";
     rev = "v${version}";
-    hash = "sha256-eQA4KiQH1tIbolQBKPId8hKCO0mcUnEyJ77+WSGYDjQ=";
+    hash = "sha256-YMUT1Wz/jDLH8eMYtfevdww/X+jdM9KqHjUCMSCRRXM=";
   };
 
-  vendorHash = "sha256-3x1HAt08Tbs56vaT2tBS//FPRn4JdFOI00XmlXMbs3w=";
+  vendorHash = "sha256-R2+HjziP0KtExYQ3ZPGZKkqfKinK3BBnxJJh454ed2w=";
 
   ldflags = [
     "-s" "-w"
diff --git a/pkgs/by-name/la/labwc-menu-generator/package.nix b/pkgs/by-name/la/labwc-menu-generator/package.nix
index 79c43706cc73f..f3883e3855af7 100644
--- a/pkgs/by-name/la/labwc-menu-generator/package.nix
+++ b/pkgs/by-name/la/labwc-menu-generator/package.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "labwc-menu-generator";
-  version = "0-unstable-2024-03-27";
+  version = "0-unstable-2024-05-27";
 
   src = fetchFromGitHub {
     owner = "labwc";
     repo = "labwc-menu-generator";
-    rev = "7b62ce9c25db9ee21c9f93e536615569378bcb20";
-    hash = "sha256-CZ+p06D3/Ou29f2RRL9MBvzM+Qisdq0h8ySjzUqhGZM=";
+    rev = "efed0194947c45123287ea057c5fdb13894854cd";
+    hash = "sha256-ZmuntI3NfIYkM2Fxt3J4pKOOilzgphF240mCer3cJ6c=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/la/labwc-tweaks-gtk/package.nix b/pkgs/by-name/la/labwc-tweaks-gtk/package.nix
index 7d444421a0d86..a5ded72c8fb99 100644
--- a/pkgs/by-name/la/labwc-tweaks-gtk/package.nix
+++ b/pkgs/by-name/la/labwc-tweaks-gtk/package.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "labwc-tweaks-gtk";
-  version = "0-unstable-2024-05-19";
+  version = "0-unstable-2024-05-22";
 
   src = fetchFromGitHub {
     owner = "labwc";
     repo = "labwc-tweaks-gtk";
-    rev = "6f251c525a89bbe3dc3fd1bc8cd7cad4950b348a";
-    hash = "sha256-MVnEJ3tk/TDCxAG8v5TDAZUIWmlUrP6Bq1VyeM5VkZ4=";
+    rev = "485961aaaaa3c0158b6b31efd6e504db3c58dc27";
+    hash = "sha256-+X/inkxVPN26AYMqtq3uvfGPlVVhxQpEtF1A9uYAmfY=";
   };
 
   nativeBuildInputs = [
@@ -46,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://github.com/labwc/labwc-tweaks-gtk";
     description = "Configuration gui app for labwc; gtk fork";
-    mainProgram = "labwc-tweaks";
+    mainProgram = "labwc-tweaks-gtk";
     license = lib.licenses.gpl2Only;
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [ AndersonTorres romildo ];
diff --git a/pkgs/by-name/la/labwc/package.nix b/pkgs/by-name/la/labwc/package.nix
index a6906f440ea1d..4e63c8085d63d 100644
--- a/pkgs/by-name/la/labwc/package.nix
+++ b/pkgs/by-name/la/labwc/package.nix
@@ -76,7 +76,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/labwc/labwc";
-    description = "A Wayland stacking compositor, inspired by Openbox";
+    description = "Wayland stacking compositor, inspired by Openbox";
     changelog = "https://github.com/labwc/labwc/blob/${finalAttrs.src.rev}/NEWS.md";
     license = with lib.licenses; [ gpl2Plus ];
     mainProgram = "labwc";
diff --git a/pkgs/by-name/la/lan-mouse/package.nix b/pkgs/by-name/la/lan-mouse/package.nix
index dd6be1f9d0c34..583953e829b55 100644
--- a/pkgs/by-name/la/lan-mouse/package.nix
+++ b/pkgs/by-name/la/lan-mouse/package.nix
@@ -43,7 +43,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = {
-    description = "A software KVM switch for sharing a mouse and keyboard with multiple hosts through the network";
+    description = "Software KVM switch for sharing a mouse and keyboard with multiple hosts through the network";
     homepage = "https://github.com/feschber/lan-mouse";
     changelog = "https://github.com/feschber/lan-mouse/releases/tag/v${version}";
     license = lib.licenses.gpl3Only;
diff --git a/pkgs/by-name/la/laravel/composer.lock b/pkgs/by-name/la/laravel/composer.lock
new file mode 100644
index 0000000000000..f4a977029e47b
--- /dev/null
+++ b/pkgs/by-name/la/laravel/composer.lock
@@ -0,0 +1,3764 @@
+{
+    "_readme": [
+        "This file locks the dependencies of your project to a known state",
+        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+        "This file is @generated automatically"
+    ],
+    "content-hash": "bbbf9f75876816a919d068f10bce5fcc",
+    "packages": [
+        {
+            "name": "carbonphp/carbon-doctrine-types",
+            "version": "3.2.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git",
+                "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
+                "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^8.1"
+            },
+            "conflict": {
+                "doctrine/dbal": "<4.0.0 || >=5.0.0"
+            },
+            "require-dev": {
+                "doctrine/dbal": "^4.0.0",
+                "nesbot/carbon": "^2.71.0 || ^3.0.0",
+                "phpunit/phpunit": "^10.3"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Carbon\\Doctrine\\": "src/Carbon/Doctrine/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "KyleKatarn",
+                    "email": "kylekatarnls@gmail.com"
+                }
+            ],
+            "description": "Types to use Carbon in Doctrine",
+            "keywords": [
+                "carbon",
+                "date",
+                "datetime",
+                "doctrine",
+                "time"
+            ],
+            "support": {
+                "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues",
+                "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/kylekatarnls",
+                    "type": "github"
+                },
+                {
+                    "url": "https://opencollective.com/Carbon",
+                    "type": "open_collective"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-02-09T16:56:22+00:00"
+        },
+        {
+            "name": "doctrine/inflector",
+            "version": "2.0.10",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/doctrine/inflector.git",
+                "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc",
+                "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.2 || ^8.0"
+            },
+            "require-dev": {
+                "doctrine/coding-standard": "^11.0",
+                "phpstan/phpstan": "^1.8",
+                "phpstan/phpstan-phpunit": "^1.1",
+                "phpstan/phpstan-strict-rules": "^1.3",
+                "phpunit/phpunit": "^8.5 || ^9.5",
+                "vimeo/psalm": "^4.25 || ^5.4"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Guilherme Blanco",
+                    "email": "guilhermeblanco@gmail.com"
+                },
+                {
+                    "name": "Roman Borschel",
+                    "email": "roman@code-factory.org"
+                },
+                {
+                    "name": "Benjamin Eberlei",
+                    "email": "kontakt@beberlei.de"
+                },
+                {
+                    "name": "Jonathan Wage",
+                    "email": "jonwage@gmail.com"
+                },
+                {
+                    "name": "Johannes Schmitt",
+                    "email": "schmittjoh@gmail.com"
+                }
+            ],
+            "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.",
+            "homepage": "https://www.doctrine-project.org/projects/inflector.html",
+            "keywords": [
+                "inflection",
+                "inflector",
+                "lowercase",
+                "manipulation",
+                "php",
+                "plural",
+                "singular",
+                "strings",
+                "uppercase",
+                "words"
+            ],
+            "support": {
+                "issues": "https://github.com/doctrine/inflector/issues",
+                "source": "https://github.com/doctrine/inflector/tree/2.0.10"
+            },
+            "funding": [
+                {
+                    "url": "https://www.doctrine-project.org/sponsorship.html",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://www.patreon.com/phpdoctrine",
+                    "type": "patreon"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-02-18T20:23:39+00:00"
+        },
+        {
+            "name": "illuminate/collections",
+            "version": "v11.8.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/illuminate/collections.git",
+                "reference": "dad22e648ae0f4973470d82b4ae5f809540a87ff"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/illuminate/collections/zipball/dad22e648ae0f4973470d82b4ae5f809540a87ff",
+                "reference": "dad22e648ae0f4973470d82b4ae5f809540a87ff",
+                "shasum": ""
+            },
+            "require": {
+                "illuminate/conditionable": "^11.0",
+                "illuminate/contracts": "^11.0",
+                "illuminate/macroable": "^11.0",
+                "php": "^8.2"
+            },
+            "suggest": {
+                "symfony/var-dumper": "Required to use the dump method (^7.0)."
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "11.x-dev"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "helpers.php"
+                ],
+                "psr-4": {
+                    "Illuminate\\Support\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Taylor Otwell",
+                    "email": "taylor@laravel.com"
+                }
+            ],
+            "description": "The Illuminate Collections package.",
+            "homepage": "https://laravel.com",
+            "support": {
+                "issues": "https://github.com/laravel/framework/issues",
+                "source": "https://github.com/laravel/framework"
+            },
+            "time": "2024-05-20T13:26:28+00:00"
+        },
+        {
+            "name": "illuminate/conditionable",
+            "version": "v11.8.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/illuminate/conditionable.git",
+                "reference": "8a558fec063b6a63da1c3af1d219c0f998edffeb"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/illuminate/conditionable/zipball/8a558fec063b6a63da1c3af1d219c0f998edffeb",
+                "reference": "8a558fec063b6a63da1c3af1d219c0f998edffeb",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^8.0.2"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "11.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Illuminate\\Support\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Taylor Otwell",
+                    "email": "taylor@laravel.com"
+                }
+            ],
+            "description": "The Illuminate Conditionable package.",
+            "homepage": "https://laravel.com",
+            "support": {
+                "issues": "https://github.com/laravel/framework/issues",
+                "source": "https://github.com/laravel/framework"
+            },
+            "time": "2024-04-04T17:36:49+00:00"
+        },
+        {
+            "name": "illuminate/contracts",
+            "version": "v11.8.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/illuminate/contracts.git",
+                "reference": "8782f75e80ab3e6036842d24dbeead34a16f3a79"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/illuminate/contracts/zipball/8782f75e80ab3e6036842d24dbeead34a16f3a79",
+                "reference": "8782f75e80ab3e6036842d24dbeead34a16f3a79",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^8.2",
+                "psr/container": "^1.1.1|^2.0.1",
+                "psr/simple-cache": "^1.0|^2.0|^3.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "11.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Illuminate\\Contracts\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Taylor Otwell",
+                    "email": "taylor@laravel.com"
+                }
+            ],
+            "description": "The Illuminate Contracts package.",
+            "homepage": "https://laravel.com",
+            "support": {
+                "issues": "https://github.com/laravel/framework/issues",
+                "source": "https://github.com/laravel/framework"
+            },
+            "time": "2024-04-17T14:09:55+00:00"
+        },
+        {
+            "name": "illuminate/filesystem",
+            "version": "v11.8.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/illuminate/filesystem.git",
+                "reference": "56d387455019a0b3c19b76dc7ccb70e337ee7c4b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/illuminate/filesystem/zipball/56d387455019a0b3c19b76dc7ccb70e337ee7c4b",
+                "reference": "56d387455019a0b3c19b76dc7ccb70e337ee7c4b",
+                "shasum": ""
+            },
+            "require": {
+                "illuminate/collections": "^11.0",
+                "illuminate/contracts": "^11.0",
+                "illuminate/macroable": "^11.0",
+                "illuminate/support": "^11.0",
+                "php": "^8.2",
+                "symfony/finder": "^7.0"
+            },
+            "suggest": {
+                "ext-fileinfo": "Required to use the Filesystem class.",
+                "ext-ftp": "Required to use the Flysystem FTP driver.",
+                "ext-hash": "Required to use the Filesystem class.",
+                "illuminate/http": "Required for handling uploaded files (^7.0).",
+                "league/flysystem": "Required to use the Flysystem local driver (^3.0.16).",
+                "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.0).",
+                "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.0).",
+                "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.0).",
+                "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).",
+                "symfony/filesystem": "Required to enable support for relative symbolic links (^7.0).",
+                "symfony/mime": "Required to enable support for guessing extensions (^7.0)."
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "11.x-dev"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "functions.php"
+                ],
+                "psr-4": {
+                    "Illuminate\\Filesystem\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Taylor Otwell",
+                    "email": "taylor@laravel.com"
+                }
+            ],
+            "description": "The Illuminate Filesystem package.",
+            "homepage": "https://laravel.com",
+            "support": {
+                "issues": "https://github.com/laravel/framework/issues",
+                "source": "https://github.com/laravel/framework"
+            },
+            "time": "2024-03-29T08:58:54+00:00"
+        },
+        {
+            "name": "illuminate/macroable",
+            "version": "v11.8.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/illuminate/macroable.git",
+                "reference": "5b6c7c7c5951e6e8fc22dd7e4363602df8294dfa"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/illuminate/macroable/zipball/5b6c7c7c5951e6e8fc22dd7e4363602df8294dfa",
+                "reference": "5b6c7c7c5951e6e8fc22dd7e4363602df8294dfa",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^8.2"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "11.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Illuminate\\Support\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Taylor Otwell",
+                    "email": "taylor@laravel.com"
+                }
+            ],
+            "description": "The Illuminate Macroable package.",
+            "homepage": "https://laravel.com",
+            "support": {
+                "issues": "https://github.com/laravel/framework/issues",
+                "source": "https://github.com/laravel/framework"
+            },
+            "time": "2024-05-16T21:43:47+00:00"
+        },
+        {
+            "name": "illuminate/support",
+            "version": "v11.8.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/illuminate/support.git",
+                "reference": "8deb8ba65ed7dc4e3f7b9b64ab70456250454824"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/illuminate/support/zipball/8deb8ba65ed7dc4e3f7b9b64ab70456250454824",
+                "reference": "8deb8ba65ed7dc4e3f7b9b64ab70456250454824",
+                "shasum": ""
+            },
+            "require": {
+                "doctrine/inflector": "^2.0",
+                "ext-ctype": "*",
+                "ext-filter": "*",
+                "ext-mbstring": "*",
+                "illuminate/collections": "^11.0",
+                "illuminate/conditionable": "^11.0",
+                "illuminate/contracts": "^11.0",
+                "illuminate/macroable": "^11.0",
+                "nesbot/carbon": "^2.72.2|^3.0",
+                "php": "^8.2",
+                "voku/portable-ascii": "^2.0"
+            },
+            "conflict": {
+                "tightenco/collect": "<5.5.33"
+            },
+            "replace": {
+                "spatie/once": "*"
+            },
+            "suggest": {
+                "illuminate/filesystem": "Required to use the composer class (^11.0).",
+                "league/commonmark": "Required to use Str::markdown() and Stringable::markdown() (^2.0.2).",
+                "ramsey/uuid": "Required to use Str::uuid() (^4.7).",
+                "symfony/process": "Required to use the composer class (^7.0).",
+                "symfony/uid": "Required to use Str::ulid() (^7.0).",
+                "symfony/var-dumper": "Required to use the dd function (^7.0).",
+                "vlucas/phpdotenv": "Required to use the Env class and env helper (^5.4.1)."
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "11.x-dev"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "helpers.php"
+                ],
+                "psr-4": {
+                    "Illuminate\\Support\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Taylor Otwell",
+                    "email": "taylor@laravel.com"
+                }
+            ],
+            "description": "The Illuminate Support package.",
+            "homepage": "https://laravel.com",
+            "support": {
+                "issues": "https://github.com/laravel/framework/issues",
+                "source": "https://github.com/laravel/framework"
+            },
+            "time": "2024-05-21T15:24:23+00:00"
+        },
+        {
+            "name": "laravel/prompts",
+            "version": "v0.1.22",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/laravel/prompts.git",
+                "reference": "37f94de71758dbfbccc9d299b0e5eb76e02a40f5"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/laravel/prompts/zipball/37f94de71758dbfbccc9d299b0e5eb76e02a40f5",
+                "reference": "37f94de71758dbfbccc9d299b0e5eb76e02a40f5",
+                "shasum": ""
+            },
+            "require": {
+                "ext-mbstring": "*",
+                "illuminate/collections": "^10.0|^11.0",
+                "php": "^8.1",
+                "symfony/console": "^6.2|^7.0"
+            },
+            "conflict": {
+                "illuminate/console": ">=10.17.0 <10.25.0",
+                "laravel/framework": ">=10.17.0 <10.25.0"
+            },
+            "require-dev": {
+                "mockery/mockery": "^1.5",
+                "pestphp/pest": "^2.3",
+                "phpstan/phpstan": "^1.11",
+                "phpstan/phpstan-mockery": "^1.1"
+            },
+            "suggest": {
+                "ext-pcntl": "Required for the spinner to be animated."
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "0.1.x-dev"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "src/helpers.php"
+                ],
+                "psr-4": {
+                    "Laravel\\Prompts\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "description": "Add beautiful and user-friendly forms to your command-line applications.",
+            "support": {
+                "issues": "https://github.com/laravel/prompts/issues",
+                "source": "https://github.com/laravel/prompts/tree/v0.1.22"
+            },
+            "time": "2024-05-10T19:22:18+00:00"
+        },
+        {
+            "name": "nesbot/carbon",
+            "version": "3.3.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/briannesbitt/Carbon.git",
+                "reference": "8ff64b92c1b1ec84fcde9f8bb9ff2ca34cb8a77a"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/8ff64b92c1b1ec84fcde9f8bb9ff2ca34cb8a77a",
+                "reference": "8ff64b92c1b1ec84fcde9f8bb9ff2ca34cb8a77a",
+                "shasum": ""
+            },
+            "require": {
+                "carbonphp/carbon-doctrine-types": "*",
+                "ext-json": "*",
+                "php": "^8.1",
+                "psr/clock": "^1.0",
+                "symfony/clock": "^6.3 || ^7.0",
+                "symfony/polyfill-mbstring": "^1.0",
+                "symfony/translation": "^4.4.18 || ^5.2.1|| ^6.0 || ^7.0"
+            },
+            "provide": {
+                "psr/clock-implementation": "1.0"
+            },
+            "require-dev": {
+                "doctrine/dbal": "^3.6.3 || ^4.0",
+                "doctrine/orm": "^2.15.2 || ^3.0",
+                "friendsofphp/php-cs-fixer": "^3.52.1",
+                "kylekatarnls/multi-tester": "^2.5.3",
+                "ondrejmirtes/better-reflection": "^6.25.0.4",
+                "phpmd/phpmd": "^2.15.0",
+                "phpstan/extension-installer": "^1.3.1",
+                "phpstan/phpstan": "^1.10.65",
+                "phpunit/phpunit": "^10.5.15",
+                "squizlabs/php_codesniffer": "^3.9.0"
+            },
+            "bin": [
+                "bin/carbon"
+            ],
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.x-dev",
+                    "dev-2.x": "2.x-dev"
+                },
+                "laravel": {
+                    "providers": [
+                        "Carbon\\Laravel\\ServiceProvider"
+                    ]
+                },
+                "phpstan": {
+                    "includes": [
+                        "extension.neon"
+                    ]
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Carbon\\": "src/Carbon/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Brian Nesbitt",
+                    "email": "brian@nesbot.com",
+                    "homepage": "https://markido.com"
+                },
+                {
+                    "name": "kylekatarnls",
+                    "homepage": "https://github.com/kylekatarnls"
+                }
+            ],
+            "description": "An API extension for DateTime that supports 281 different languages.",
+            "homepage": "https://carbon.nesbot.com",
+            "keywords": [
+                "date",
+                "datetime",
+                "time"
+            ],
+            "support": {
+                "docs": "https://carbon.nesbot.com/docs",
+                "issues": "https://github.com/briannesbitt/Carbon/issues",
+                "source": "https://github.com/briannesbitt/Carbon"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sponsors/kylekatarnls",
+                    "type": "github"
+                },
+                {
+                    "url": "https://opencollective.com/Carbon#sponsor",
+                    "type": "opencollective"
+                },
+                {
+                    "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-05-01T06:54:22+00:00"
+        },
+        {
+            "name": "psr/clock",
+            "version": "1.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/php-fig/clock.git",
+                "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d",
+                "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.0 || ^8.0"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Psr\\Clock\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "PHP-FIG",
+                    "homepage": "https://www.php-fig.org/"
+                }
+            ],
+            "description": "Common interface for reading the clock.",
+            "homepage": "https://github.com/php-fig/clock",
+            "keywords": [
+                "clock",
+                "now",
+                "psr",
+                "psr-20",
+                "time"
+            ],
+            "support": {
+                "issues": "https://github.com/php-fig/clock/issues",
+                "source": "https://github.com/php-fig/clock/tree/1.0.0"
+            },
+            "time": "2022-11-25T14:36:26+00:00"
+        },
+        {
+            "name": "psr/container",
+            "version": "2.0.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/php-fig/container.git",
+                "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+                "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.4.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Psr\\Container\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "PHP-FIG",
+                    "homepage": "https://www.php-fig.org/"
+                }
+            ],
+            "description": "Common Container Interface (PHP FIG PSR-11)",
+            "homepage": "https://github.com/php-fig/container",
+            "keywords": [
+                "PSR-11",
+                "container",
+                "container-interface",
+                "container-interop",
+                "psr"
+            ],
+            "support": {
+                "issues": "https://github.com/php-fig/container/issues",
+                "source": "https://github.com/php-fig/container/tree/2.0.2"
+            },
+            "time": "2021-11-05T16:47:00+00:00"
+        },
+        {
+            "name": "psr/simple-cache",
+            "version": "3.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/php-fig/simple-cache.git",
+                "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865",
+                "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.0.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Psr\\SimpleCache\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "PHP-FIG",
+                    "homepage": "https://www.php-fig.org/"
+                }
+            ],
+            "description": "Common interfaces for simple caching",
+            "keywords": [
+                "cache",
+                "caching",
+                "psr",
+                "psr-16",
+                "simple-cache"
+            ],
+            "support": {
+                "source": "https://github.com/php-fig/simple-cache/tree/3.0.0"
+            },
+            "time": "2021-10-29T13:26:27+00:00"
+        },
+        {
+            "name": "symfony/clock",
+            "version": "v7.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/clock.git",
+                "reference": "2008671acb4a30b01c453de193cf9c80549ebda6"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/clock/zipball/2008671acb4a30b01c453de193cf9c80549ebda6",
+                "reference": "2008671acb4a30b01c453de193cf9c80549ebda6",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.2",
+                "psr/clock": "^1.0",
+                "symfony/polyfill-php83": "^1.28"
+            },
+            "provide": {
+                "psr/clock-implementation": "1.0"
+            },
+            "type": "library",
+            "autoload": {
+                "files": [
+                    "Resources/now.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Component\\Clock\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Decouples applications from the system clock",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "clock",
+                "psr20",
+                "time"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/clock/tree/v7.0.7"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-04-18T09:29:19+00:00"
+        },
+        {
+            "name": "symfony/console",
+            "version": "v7.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/console.git",
+                "reference": "c981e0e9380ce9f146416bde3150c79197ce9986"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/console/zipball/c981e0e9380ce9f146416bde3150c79197ce9986",
+                "reference": "c981e0e9380ce9f146416bde3150c79197ce9986",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.2",
+                "symfony/polyfill-mbstring": "~1.0",
+                "symfony/service-contracts": "^2.5|^3",
+                "symfony/string": "^6.4|^7.0"
+            },
+            "conflict": {
+                "symfony/dependency-injection": "<6.4",
+                "symfony/dotenv": "<6.4",
+                "symfony/event-dispatcher": "<6.4",
+                "symfony/lock": "<6.4",
+                "symfony/process": "<6.4"
+            },
+            "provide": {
+                "psr/log-implementation": "1.0|2.0|3.0"
+            },
+            "require-dev": {
+                "psr/log": "^1|^2|^3",
+                "symfony/config": "^6.4|^7.0",
+                "symfony/dependency-injection": "^6.4|^7.0",
+                "symfony/event-dispatcher": "^6.4|^7.0",
+                "symfony/http-foundation": "^6.4|^7.0",
+                "symfony/http-kernel": "^6.4|^7.0",
+                "symfony/lock": "^6.4|^7.0",
+                "symfony/messenger": "^6.4|^7.0",
+                "symfony/process": "^6.4|^7.0",
+                "symfony/stopwatch": "^6.4|^7.0",
+                "symfony/var-dumper": "^6.4|^7.0"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Console\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Eases the creation of beautiful and testable command line interfaces",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "cli",
+                "command-line",
+                "console",
+                "terminal"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/console/tree/v7.0.7"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-04-18T09:29:19+00:00"
+        },
+        {
+            "name": "symfony/deprecation-contracts",
+            "version": "v3.5.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/deprecation-contracts.git",
+                "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
+                "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "3.5-dev"
+                },
+                "thanks": {
+                    "name": "symfony/contracts",
+                    "url": "https://github.com/symfony/contracts"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "function.php"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "A generic function and convention to trigger deprecation notices",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-04-18T09:32:20+00:00"
+        },
+        {
+            "name": "symfony/finder",
+            "version": "v7.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/finder.git",
+                "reference": "4d58f0f4fe95a30d7b538d71197135483560b97c"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/finder/zipball/4d58f0f4fe95a30d7b538d71197135483560b97c",
+                "reference": "4d58f0f4fe95a30d7b538d71197135483560b97c",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.2"
+            },
+            "require-dev": {
+                "symfony/filesystem": "^6.4|^7.0"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Finder\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Finds files and directories via an intuitive fluent interface",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/finder/tree/v7.0.7"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-04-28T11:44:19+00:00"
+        },
+        {
+            "name": "symfony/polyfill-ctype",
+            "version": "v1.29.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-ctype.git",
+                "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4",
+                "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "provide": {
+                "ext-ctype": "*"
+            },
+            "suggest": {
+                "ext-ctype": "For best performance"
+            },
+            "type": "library",
+            "extra": {
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "bootstrap.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Polyfill\\Ctype\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Gert de Pagter",
+                    "email": "BackEndTea@gmail.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill for ctype functions",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "ctype",
+                "polyfill",
+                "portable"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-01-29T20:11:03+00:00"
+        },
+        {
+            "name": "symfony/polyfill-intl-grapheme",
+            "version": "v1.29.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
+                "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f",
+                "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "suggest": {
+                "ext-intl": "For best performance"
+            },
+            "type": "library",
+            "extra": {
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "bootstrap.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill for intl's grapheme_* functions",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "grapheme",
+                "intl",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-01-29T20:11:03+00:00"
+        },
+        {
+            "name": "symfony/polyfill-intl-normalizer",
+            "version": "v1.29.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
+                "reference": "bc45c394692b948b4d383a08d7753968bed9a83d"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d",
+                "reference": "bc45c394692b948b4d383a08d7753968bed9a83d",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "suggest": {
+                "ext-intl": "For best performance"
+            },
+            "type": "library",
+            "extra": {
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "bootstrap.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
+                },
+                "classmap": [
+                    "Resources/stubs"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill for intl's Normalizer class and related functions",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "intl",
+                "normalizer",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-01-29T20:11:03+00:00"
+        },
+        {
+            "name": "symfony/polyfill-mbstring",
+            "version": "v1.29.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-mbstring.git",
+                "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
+                "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "provide": {
+                "ext-mbstring": "*"
+            },
+            "suggest": {
+                "ext-mbstring": "For best performance"
+            },
+            "type": "library",
+            "extra": {
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "bootstrap.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Polyfill\\Mbstring\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill for the Mbstring extension",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "mbstring",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-01-29T20:11:03+00:00"
+        },
+        {
+            "name": "symfony/polyfill-php80",
+            "version": "v1.29.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-php80.git",
+                "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
+                "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "type": "library",
+            "extra": {
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "bootstrap.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Polyfill\\Php80\\": ""
+                },
+                "classmap": [
+                    "Resources/stubs"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Ion Bazan",
+                    "email": "ion.bazan@gmail.com"
+                },
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-01-29T20:11:03+00:00"
+        },
+        {
+            "name": "symfony/polyfill-php83",
+            "version": "v1.29.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-php83.git",
+                "reference": "86fcae159633351e5fd145d1c47de6c528f8caff"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/86fcae159633351e5fd145d1c47de6c528f8caff",
+                "reference": "86fcae159633351e5fd145d1c47de6c528f8caff",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1",
+                "symfony/polyfill-php80": "^1.14"
+            },
+            "type": "library",
+            "extra": {
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "bootstrap.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Polyfill\\Php83\\": ""
+                },
+                "classmap": [
+                    "Resources/stubs"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-php83/tree/v1.29.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-01-29T20:11:03+00:00"
+        },
+        {
+            "name": "symfony/process",
+            "version": "v7.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/process.git",
+                "reference": "3839e56b94dd1dbd13235d27504e66baf23faba0"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/process/zipball/3839e56b94dd1dbd13235d27504e66baf23faba0",
+                "reference": "3839e56b94dd1dbd13235d27504e66baf23faba0",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.2"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Process\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Executes commands in sub-processes",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/process/tree/v7.0.7"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-04-18T09:29:19+00:00"
+        },
+        {
+            "name": "symfony/service-contracts",
+            "version": "v3.5.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/service-contracts.git",
+                "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
+                "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1",
+                "psr/container": "^1.1|^2.0",
+                "symfony/deprecation-contracts": "^2.5|^3"
+            },
+            "conflict": {
+                "ext-psr": "<1.1|>=2"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "3.5-dev"
+                },
+                "thanks": {
+                    "name": "symfony/contracts",
+                    "url": "https://github.com/symfony/contracts"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Contracts\\Service\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Test/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Generic abstractions related to writing services",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "abstractions",
+                "contracts",
+                "decoupling",
+                "interfaces",
+                "interoperability",
+                "standards"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/service-contracts/tree/v3.5.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-04-18T09:32:20+00:00"
+        },
+        {
+            "name": "symfony/string",
+            "version": "v7.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/string.git",
+                "reference": "e405b5424dc2528e02e31ba26b83a79fd4eb8f63"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/string/zipball/e405b5424dc2528e02e31ba26b83a79fd4eb8f63",
+                "reference": "e405b5424dc2528e02e31ba26b83a79fd4eb8f63",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.2",
+                "symfony/polyfill-ctype": "~1.8",
+                "symfony/polyfill-intl-grapheme": "~1.0",
+                "symfony/polyfill-intl-normalizer": "~1.0",
+                "symfony/polyfill-mbstring": "~1.0"
+            },
+            "conflict": {
+                "symfony/translation-contracts": "<2.5"
+            },
+            "require-dev": {
+                "symfony/error-handler": "^6.4|^7.0",
+                "symfony/http-client": "^6.4|^7.0",
+                "symfony/intl": "^6.4|^7.0",
+                "symfony/translation-contracts": "^2.5|^3.0",
+                "symfony/var-exporter": "^6.4|^7.0"
+            },
+            "type": "library",
+            "autoload": {
+                "files": [
+                    "Resources/functions.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Component\\String\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "grapheme",
+                "i18n",
+                "string",
+                "unicode",
+                "utf-8",
+                "utf8"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/string/tree/v7.0.7"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-04-18T09:29:19+00:00"
+        },
+        {
+            "name": "symfony/translation",
+            "version": "v7.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/translation.git",
+                "reference": "1515e03afaa93e6419aba5d5c9d209159317100b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/translation/zipball/1515e03afaa93e6419aba5d5c9d209159317100b",
+                "reference": "1515e03afaa93e6419aba5d5c9d209159317100b",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.2",
+                "symfony/polyfill-mbstring": "~1.0",
+                "symfony/translation-contracts": "^2.5|^3.0"
+            },
+            "conflict": {
+                "symfony/config": "<6.4",
+                "symfony/console": "<6.4",
+                "symfony/dependency-injection": "<6.4",
+                "symfony/http-client-contracts": "<2.5",
+                "symfony/http-kernel": "<6.4",
+                "symfony/service-contracts": "<2.5",
+                "symfony/twig-bundle": "<6.4",
+                "symfony/yaml": "<6.4"
+            },
+            "provide": {
+                "symfony/translation-implementation": "2.3|3.0"
+            },
+            "require-dev": {
+                "nikic/php-parser": "^4.18|^5.0",
+                "psr/log": "^1|^2|^3",
+                "symfony/config": "^6.4|^7.0",
+                "symfony/console": "^6.4|^7.0",
+                "symfony/dependency-injection": "^6.4|^7.0",
+                "symfony/finder": "^6.4|^7.0",
+                "symfony/http-client-contracts": "^2.5|^3.0",
+                "symfony/http-kernel": "^6.4|^7.0",
+                "symfony/intl": "^6.4|^7.0",
+                "symfony/polyfill-intl-icu": "^1.21",
+                "symfony/routing": "^6.4|^7.0",
+                "symfony/service-contracts": "^2.5|^3",
+                "symfony/yaml": "^6.4|^7.0"
+            },
+            "type": "library",
+            "autoload": {
+                "files": [
+                    "Resources/functions.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Component\\Translation\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Provides tools to internationalize your application",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/translation/tree/v7.0.7"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-04-18T09:29:19+00:00"
+        },
+        {
+            "name": "symfony/translation-contracts",
+            "version": "v3.5.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/translation-contracts.git",
+                "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
+                "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "3.5-dev"
+                },
+                "thanks": {
+                    "name": "symfony/contracts",
+                    "url": "https://github.com/symfony/contracts"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Contracts\\Translation\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Test/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Generic abstractions related to translation",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "abstractions",
+                "contracts",
+                "decoupling",
+                "interfaces",
+                "interoperability",
+                "standards"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-04-18T09:32:20+00:00"
+        },
+        {
+            "name": "voku/portable-ascii",
+            "version": "2.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/voku/portable-ascii.git",
+                "reference": "b56450eed252f6801410d810c8e1727224ae0743"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743",
+                "reference": "b56450eed252f6801410d810c8e1727224ae0743",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.0.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0"
+            },
+            "suggest": {
+                "ext-intl": "Use Intl for transliterator_transliterate() support"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "voku\\": "src/voku/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Lars Moelleken",
+                    "homepage": "http://www.moelleken.org/"
+                }
+            ],
+            "description": "Portable ASCII library - performance optimized (ascii) string functions for php.",
+            "homepage": "https://github.com/voku/portable-ascii",
+            "keywords": [
+                "ascii",
+                "clean",
+                "php"
+            ],
+            "support": {
+                "issues": "https://github.com/voku/portable-ascii/issues",
+                "source": "https://github.com/voku/portable-ascii/tree/2.0.1"
+            },
+            "funding": [
+                {
+                    "url": "https://www.paypal.me/moelleken",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/voku",
+                    "type": "github"
+                },
+                {
+                    "url": "https://opencollective.com/portable-ascii",
+                    "type": "open_collective"
+                },
+                {
+                    "url": "https://www.patreon.com/voku",
+                    "type": "patreon"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2022-03-08T17:03:00+00:00"
+        }
+    ],
+    "packages-dev": [
+        {
+            "name": "myclabs/deep-copy",
+            "version": "1.11.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/myclabs/DeepCopy.git",
+                "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
+                "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.1 || ^8.0"
+            },
+            "conflict": {
+                "doctrine/collections": "<1.6.8",
+                "doctrine/common": "<2.13.3 || >=3,<3.2.2"
+            },
+            "require-dev": {
+                "doctrine/collections": "^1.6.8",
+                "doctrine/common": "^2.13.3 || ^3.2.2",
+                "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
+            },
+            "type": "library",
+            "autoload": {
+                "files": [
+                    "src/DeepCopy/deep_copy.php"
+                ],
+                "psr-4": {
+                    "DeepCopy\\": "src/DeepCopy/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "description": "Create deep copies (clones) of your objects",
+            "keywords": [
+                "clone",
+                "copy",
+                "duplicate",
+                "object",
+                "object graph"
+            ],
+            "support": {
+                "issues": "https://github.com/myclabs/DeepCopy/issues",
+                "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1"
+            },
+            "funding": [
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2023-03-08T13:26:56+00:00"
+        },
+        {
+            "name": "nikic/php-parser",
+            "version": "v5.0.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/nikic/PHP-Parser.git",
+                "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/139676794dc1e9231bf7bcd123cfc0c99182cb13",
+                "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13",
+                "shasum": ""
+            },
+            "require": {
+                "ext-ctype": "*",
+                "ext-json": "*",
+                "ext-tokenizer": "*",
+                "php": ">=7.4"
+            },
+            "require-dev": {
+                "ircmaxell/php-yacc": "^0.0.7",
+                "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
+            },
+            "bin": [
+                "bin/php-parse"
+            ],
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "5.0-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "PhpParser\\": "lib/PhpParser"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Nikita Popov"
+                }
+            ],
+            "description": "A PHP parser written in PHP",
+            "keywords": [
+                "parser",
+                "php"
+            ],
+            "support": {
+                "issues": "https://github.com/nikic/PHP-Parser/issues",
+                "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.2"
+            },
+            "time": "2024-03-05T20:51:40+00:00"
+        },
+        {
+            "name": "phar-io/manifest",
+            "version": "2.0.4",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/phar-io/manifest.git",
+                "reference": "54750ef60c58e43759730615a392c31c80e23176"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176",
+                "reference": "54750ef60c58e43759730615a392c31c80e23176",
+                "shasum": ""
+            },
+            "require": {
+                "ext-dom": "*",
+                "ext-libxml": "*",
+                "ext-phar": "*",
+                "ext-xmlwriter": "*",
+                "phar-io/version": "^3.0.1",
+                "php": "^7.2 || ^8.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.0.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Arne Blankerts",
+                    "email": "arne@blankerts.de",
+                    "role": "Developer"
+                },
+                {
+                    "name": "Sebastian Heuer",
+                    "email": "sebastian@phpeople.de",
+                    "role": "Developer"
+                },
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "Developer"
+                }
+            ],
+            "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
+            "support": {
+                "issues": "https://github.com/phar-io/manifest/issues",
+                "source": "https://github.com/phar-io/manifest/tree/2.0.4"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/theseer",
+                    "type": "github"
+                }
+            ],
+            "time": "2024-03-03T12:33:53+00:00"
+        },
+        {
+            "name": "phar-io/version",
+            "version": "3.2.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/phar-io/version.git",
+                "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+                "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.2 || ^8.0"
+            },
+            "type": "library",
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Arne Blankerts",
+                    "email": "arne@blankerts.de",
+                    "role": "Developer"
+                },
+                {
+                    "name": "Sebastian Heuer",
+                    "email": "sebastian@phpeople.de",
+                    "role": "Developer"
+                },
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "Developer"
+                }
+            ],
+            "description": "Library for handling version information and constraints",
+            "support": {
+                "issues": "https://github.com/phar-io/version/issues",
+                "source": "https://github.com/phar-io/version/tree/3.2.1"
+            },
+            "time": "2022-02-21T01:04:05+00:00"
+        },
+        {
+            "name": "phpstan/phpstan",
+            "version": "1.11.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/phpstan/phpstan.git",
+                "reference": "0d5d4294a70deb7547db655c47685d680e39cfec"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/phpstan/phpstan/zipball/0d5d4294a70deb7547db655c47685d680e39cfec",
+                "reference": "0d5d4294a70deb7547db655c47685d680e39cfec",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.2|^8.0"
+            },
+            "conflict": {
+                "phpstan/phpstan-shim": "*"
+            },
+            "bin": [
+                "phpstan",
+                "phpstan.phar"
+            ],
+            "type": "library",
+            "autoload": {
+                "files": [
+                    "bootstrap.php"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "description": "PHPStan - PHP Static Analysis Tool",
+            "keywords": [
+                "dev",
+                "static analysis"
+            ],
+            "support": {
+                "docs": "https://phpstan.org/user-guide/getting-started",
+                "forum": "https://github.com/phpstan/phpstan/discussions",
+                "issues": "https://github.com/phpstan/phpstan/issues",
+                "security": "https://github.com/phpstan/phpstan/security/policy",
+                "source": "https://github.com/phpstan/phpstan-src"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/ondrejmirtes",
+                    "type": "github"
+                },
+                {
+                    "url": "https://github.com/phpstan",
+                    "type": "github"
+                }
+            ],
+            "time": "2024-05-24T13:23:04+00:00"
+        },
+        {
+            "name": "phpunit/php-code-coverage",
+            "version": "10.1.14",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+                "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/e3f51450ebffe8e0efdf7346ae966a656f7d5e5b",
+                "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b",
+                "shasum": ""
+            },
+            "require": {
+                "ext-dom": "*",
+                "ext-libxml": "*",
+                "ext-xmlwriter": "*",
+                "nikic/php-parser": "^4.18 || ^5.0",
+                "php": ">=8.1",
+                "phpunit/php-file-iterator": "^4.0",
+                "phpunit/php-text-template": "^3.0",
+                "sebastian/code-unit-reverse-lookup": "^3.0",
+                "sebastian/complexity": "^3.0",
+                "sebastian/environment": "^6.0",
+                "sebastian/lines-of-code": "^2.0",
+                "sebastian/version": "^4.0",
+                "theseer/tokenizer": "^1.2.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.1"
+            },
+            "suggest": {
+                "ext-pcov": "PHP extension that provides line coverage",
+                "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "10.1-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
+            "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+            "keywords": [
+                "coverage",
+                "testing",
+                "xunit"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
+                "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
+                "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.14"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2024-03-12T15:33:41+00:00"
+        },
+        {
+            "name": "phpunit/php-file-iterator",
+            "version": "4.1.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+                "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c",
+                "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "4.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+            "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+            "keywords": [
+                "filesystem",
+                "iterator"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
+                "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy",
+                "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.1.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-08-31T06:24:48+00:00"
+        },
+        {
+            "name": "phpunit/php-invoker",
+            "version": "4.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/php-invoker.git",
+                "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7",
+                "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "ext-pcntl": "*",
+                "phpunit/phpunit": "^10.0"
+            },
+            "suggest": {
+                "ext-pcntl": "*"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "4.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Invoke callables with a timeout",
+            "homepage": "https://github.com/sebastianbergmann/php-invoker/",
+            "keywords": [
+                "process"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
+                "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-02-03T06:56:09+00:00"
+        },
+        {
+            "name": "phpunit/php-text-template",
+            "version": "3.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/php-text-template.git",
+                "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748",
+                "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "3.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Simple template engine.",
+            "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+            "keywords": [
+                "template"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
+                "security": "https://github.com/sebastianbergmann/php-text-template/security/policy",
+                "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.1"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-08-31T14:07:24+00:00"
+        },
+        {
+            "name": "phpunit/php-timer",
+            "version": "6.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/php-timer.git",
+                "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d",
+                "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "6.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Utility class for timing",
+            "homepage": "https://github.com/sebastianbergmann/php-timer/",
+            "keywords": [
+                "timer"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/php-timer/issues",
+                "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-02-03T06:57:52+00:00"
+        },
+        {
+            "name": "phpunit/phpunit",
+            "version": "10.5.20",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/phpunit.git",
+                "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/547d314dc24ec1e177720d45c6263fb226cc2ae3",
+                "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3",
+                "shasum": ""
+            },
+            "require": {
+                "ext-dom": "*",
+                "ext-json": "*",
+                "ext-libxml": "*",
+                "ext-mbstring": "*",
+                "ext-xml": "*",
+                "ext-xmlwriter": "*",
+                "myclabs/deep-copy": "^1.10.1",
+                "phar-io/manifest": "^2.0.3",
+                "phar-io/version": "^3.0.2",
+                "php": ">=8.1",
+                "phpunit/php-code-coverage": "^10.1.5",
+                "phpunit/php-file-iterator": "^4.0",
+                "phpunit/php-invoker": "^4.0",
+                "phpunit/php-text-template": "^3.0",
+                "phpunit/php-timer": "^6.0",
+                "sebastian/cli-parser": "^2.0",
+                "sebastian/code-unit": "^2.0",
+                "sebastian/comparator": "^5.0",
+                "sebastian/diff": "^5.0",
+                "sebastian/environment": "^6.0",
+                "sebastian/exporter": "^5.1",
+                "sebastian/global-state": "^6.0.1",
+                "sebastian/object-enumerator": "^5.0",
+                "sebastian/recursion-context": "^5.0",
+                "sebastian/type": "^4.0",
+                "sebastian/version": "^4.0"
+            },
+            "suggest": {
+                "ext-soap": "To be able to generate mocks based on WSDL files"
+            },
+            "bin": [
+                "phpunit"
+            ],
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "10.5-dev"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "src/Framework/Assert/Functions.php"
+                ],
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "The PHP Unit Testing framework.",
+            "homepage": "https://phpunit.de/",
+            "keywords": [
+                "phpunit",
+                "testing",
+                "xunit"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/phpunit/issues",
+                "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
+                "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.20"
+            },
+            "funding": [
+                {
+                    "url": "https://phpunit.de/sponsors.html",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-04-24T06:32:35+00:00"
+        },
+        {
+            "name": "sebastian/cli-parser",
+            "version": "2.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/cli-parser.git",
+                "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/c34583b87e7b7a8055bf6c450c2c77ce32a24084",
+                "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "2.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Library for parsing CLI options",
+            "homepage": "https://github.com/sebastianbergmann/cli-parser",
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
+                "security": "https://github.com/sebastianbergmann/cli-parser/security/policy",
+                "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.1"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2024-03-02T07:12:49+00:00"
+        },
+        {
+            "name": "sebastian/code-unit",
+            "version": "2.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/code-unit.git",
+                "reference": "a81fee9eef0b7a76af11d121767abc44c104e503"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503",
+                "reference": "a81fee9eef0b7a76af11d121767abc44c104e503",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "2.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Collection of value objects that represent the PHP code units",
+            "homepage": "https://github.com/sebastianbergmann/code-unit",
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/code-unit/issues",
+                "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-02-03T06:58:43+00:00"
+        },
+        {
+            "name": "sebastian/code-unit-reverse-lookup",
+            "version": "3.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
+                "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d",
+                "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "3.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                }
+            ],
+            "description": "Looks up which function or method a line of code belongs to",
+            "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
+                "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-02-03T06:59:15+00:00"
+        },
+        {
+            "name": "sebastian/comparator",
+            "version": "5.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/comparator.git",
+                "reference": "2db5010a484d53ebf536087a70b4a5423c102372"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2db5010a484d53ebf536087a70b4a5423c102372",
+                "reference": "2db5010a484d53ebf536087a70b4a5423c102372",
+                "shasum": ""
+            },
+            "require": {
+                "ext-dom": "*",
+                "ext-mbstring": "*",
+                "php": ">=8.1",
+                "sebastian/diff": "^5.0",
+                "sebastian/exporter": "^5.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.3"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "5.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                },
+                {
+                    "name": "Jeff Welch",
+                    "email": "whatthejeff@gmail.com"
+                },
+                {
+                    "name": "Volker Dusch",
+                    "email": "github@wallbash.com"
+                },
+                {
+                    "name": "Bernhard Schussek",
+                    "email": "bschussek@2bepublished.at"
+                }
+            ],
+            "description": "Provides the functionality to compare PHP values for equality",
+            "homepage": "https://github.com/sebastianbergmann/comparator",
+            "keywords": [
+                "comparator",
+                "compare",
+                "equality"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/comparator/issues",
+                "security": "https://github.com/sebastianbergmann/comparator/security/policy",
+                "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.1"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-08-14T13:18:12+00:00"
+        },
+        {
+            "name": "sebastian/complexity",
+            "version": "3.2.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/complexity.git",
+                "reference": "68ff824baeae169ec9f2137158ee529584553799"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799",
+                "reference": "68ff824baeae169ec9f2137158ee529584553799",
+                "shasum": ""
+            },
+            "require": {
+                "nikic/php-parser": "^4.18 || ^5.0",
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "3.2-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Library for calculating the complexity of PHP code units",
+            "homepage": "https://github.com/sebastianbergmann/complexity",
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/complexity/issues",
+                "security": "https://github.com/sebastianbergmann/complexity/security/policy",
+                "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-12-21T08:37:17+00:00"
+        },
+        {
+            "name": "sebastian/diff",
+            "version": "5.1.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/diff.git",
+                "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e",
+                "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0",
+                "symfony/process": "^6.4"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "5.1-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                },
+                {
+                    "name": "Kore Nordmann",
+                    "email": "mail@kore-nordmann.de"
+                }
+            ],
+            "description": "Diff implementation",
+            "homepage": "https://github.com/sebastianbergmann/diff",
+            "keywords": [
+                "diff",
+                "udiff",
+                "unidiff",
+                "unified diff"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/diff/issues",
+                "security": "https://github.com/sebastianbergmann/diff/security/policy",
+                "source": "https://github.com/sebastianbergmann/diff/tree/5.1.1"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2024-03-02T07:15:17+00:00"
+        },
+        {
+            "name": "sebastian/environment",
+            "version": "6.1.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/environment.git",
+                "reference": "8074dbcd93529b357029f5cc5058fd3e43666984"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/8074dbcd93529b357029f5cc5058fd3e43666984",
+                "reference": "8074dbcd93529b357029f5cc5058fd3e43666984",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "suggest": {
+                "ext-posix": "*"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "6.1-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                }
+            ],
+            "description": "Provides functionality to handle HHVM/PHP environments",
+            "homepage": "https://github.com/sebastianbergmann/environment",
+            "keywords": [
+                "Xdebug",
+                "environment",
+                "hhvm"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/environment/issues",
+                "security": "https://github.com/sebastianbergmann/environment/security/policy",
+                "source": "https://github.com/sebastianbergmann/environment/tree/6.1.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2024-03-23T08:47:14+00:00"
+        },
+        {
+            "name": "sebastian/exporter",
+            "version": "5.1.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/exporter.git",
+                "reference": "955288482d97c19a372d3f31006ab3f37da47adf"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/955288482d97c19a372d3f31006ab3f37da47adf",
+                "reference": "955288482d97c19a372d3f31006ab3f37da47adf",
+                "shasum": ""
+            },
+            "require": {
+                "ext-mbstring": "*",
+                "php": ">=8.1",
+                "sebastian/recursion-context": "^5.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "5.1-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                },
+                {
+                    "name": "Jeff Welch",
+                    "email": "whatthejeff@gmail.com"
+                },
+                {
+                    "name": "Volker Dusch",
+                    "email": "github@wallbash.com"
+                },
+                {
+                    "name": "Adam Harvey",
+                    "email": "aharvey@php.net"
+                },
+                {
+                    "name": "Bernhard Schussek",
+                    "email": "bschussek@gmail.com"
+                }
+            ],
+            "description": "Provides the functionality to export PHP variables for visualization",
+            "homepage": "https://www.github.com/sebastianbergmann/exporter",
+            "keywords": [
+                "export",
+                "exporter"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/exporter/issues",
+                "security": "https://github.com/sebastianbergmann/exporter/security/policy",
+                "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.2"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2024-03-02T07:17:12+00:00"
+        },
+        {
+            "name": "sebastian/global-state",
+            "version": "6.0.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/global-state.git",
+                "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/987bafff24ecc4c9ac418cab1145b96dd6e9cbd9",
+                "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1",
+                "sebastian/object-reflector": "^3.0",
+                "sebastian/recursion-context": "^5.0"
+            },
+            "require-dev": {
+                "ext-dom": "*",
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "6.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                }
+            ],
+            "description": "Snapshotting of global state",
+            "homepage": "https://www.github.com/sebastianbergmann/global-state",
+            "keywords": [
+                "global state"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/global-state/issues",
+                "security": "https://github.com/sebastianbergmann/global-state/security/policy",
+                "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.2"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2024-03-02T07:19:19+00:00"
+        },
+        {
+            "name": "sebastian/lines-of-code",
+            "version": "2.0.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/lines-of-code.git",
+                "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0",
+                "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0",
+                "shasum": ""
+            },
+            "require": {
+                "nikic/php-parser": "^4.18 || ^5.0",
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "2.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Library for counting the lines of code in PHP source code",
+            "homepage": "https://github.com/sebastianbergmann/lines-of-code",
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
+                "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy",
+                "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-12-21T08:38:20+00:00"
+        },
+        {
+            "name": "sebastian/object-enumerator",
+            "version": "5.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/object-enumerator.git",
+                "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906",
+                "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1",
+                "sebastian/object-reflector": "^3.0",
+                "sebastian/recursion-context": "^5.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "5.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                }
+            ],
+            "description": "Traverses array structures and object graphs to enumerate all referenced objects",
+            "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
+                "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-02-03T07:08:32+00:00"
+        },
+        {
+            "name": "sebastian/object-reflector",
+            "version": "3.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/object-reflector.git",
+                "reference": "24ed13d98130f0e7122df55d06c5c4942a577957"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957",
+                "reference": "24ed13d98130f0e7122df55d06c5c4942a577957",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "3.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                }
+            ],
+            "description": "Allows reflection of object attributes, including inherited and non-public ones",
+            "homepage": "https://github.com/sebastianbergmann/object-reflector/",
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
+                "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-02-03T07:06:18+00:00"
+        },
+        {
+            "name": "sebastian/recursion-context",
+            "version": "5.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/recursion-context.git",
+                "reference": "05909fb5bc7df4c52992396d0116aed689f93712"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712",
+                "reference": "05909fb5bc7df4c52992396d0116aed689f93712",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "5.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                },
+                {
+                    "name": "Jeff Welch",
+                    "email": "whatthejeff@gmail.com"
+                },
+                {
+                    "name": "Adam Harvey",
+                    "email": "aharvey@php.net"
+                }
+            ],
+            "description": "Provides functionality to recursively process PHP variables",
+            "homepage": "https://github.com/sebastianbergmann/recursion-context",
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
+                "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-02-03T07:05:40+00:00"
+        },
+        {
+            "name": "sebastian/type",
+            "version": "4.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/type.git",
+                "reference": "462699a16464c3944eefc02ebdd77882bd3925bf"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf",
+                "reference": "462699a16464c3944eefc02ebdd77882bd3925bf",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "4.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Collection of value objects that represent the types of the PHP type system",
+            "homepage": "https://github.com/sebastianbergmann/type",
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/type/issues",
+                "source": "https://github.com/sebastianbergmann/type/tree/4.0.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-02-03T07:10:45+00:00"
+        },
+        {
+            "name": "sebastian/version",
+            "version": "4.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/version.git",
+                "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17",
+                "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "4.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Library that helps with managing the version number of Git-hosted PHP projects",
+            "homepage": "https://github.com/sebastianbergmann/version",
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/version/issues",
+                "source": "https://github.com/sebastianbergmann/version/tree/4.0.1"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-02-07T11:34:05+00:00"
+        },
+        {
+            "name": "theseer/tokenizer",
+            "version": "1.2.3",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/theseer/tokenizer.git",
+                "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+                "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+                "shasum": ""
+            },
+            "require": {
+                "ext-dom": "*",
+                "ext-tokenizer": "*",
+                "ext-xmlwriter": "*",
+                "php": "^7.2 || ^8.0"
+            },
+            "type": "library",
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Arne Blankerts",
+                    "email": "arne@blankerts.de",
+                    "role": "Developer"
+                }
+            ],
+            "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
+            "support": {
+                "issues": "https://github.com/theseer/tokenizer/issues",
+                "source": "https://github.com/theseer/tokenizer/tree/1.2.3"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/theseer",
+                    "type": "github"
+                }
+            ],
+            "time": "2024-03-03T12:36:25+00:00"
+        }
+    ],
+    "aliases": [],
+    "minimum-stability": "dev",
+    "stability-flags": [],
+    "prefer-stable": true,
+    "prefer-lowest": false,
+    "platform": {
+        "php": "^8.2"
+    },
+    "platform-dev": [],
+    "plugin-api-version": "2.6.0"
+}
diff --git a/pkgs/by-name/la/laravel/package.nix b/pkgs/by-name/la/laravel/package.nix
new file mode 100644
index 0000000000000..67ba3b2594cb8
--- /dev/null
+++ b/pkgs/by-name/la/laravel/package.nix
@@ -0,0 +1,36 @@
+{
+  lib,
+  fetchFromGitHub,
+  makeWrapper,
+  php,
+}:
+php.buildComposerProject (finalAttrs: {
+  pname = "laravel";
+  version = "5.8.1";
+
+  src = fetchFromGitHub {
+    owner = "laravel";
+    repo = "installer";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-LQABZnmKgJ8qkymmSjhjc+x1qZ/tFqFyQbfeGZECxok=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  composerLock = ./composer.lock;
+  vendorHash = "sha256-f18N2qNCUFetCaHaC4X6Benq70x21SVQ3YSs8kovK1g=";
+
+  postInstall = ''
+    wrapProgram $out/bin/laravel \
+      --suffix PATH : ${lib.makeBinPath [ php.packages.composer ]}
+  '';
+
+  meta = {
+    description = "Laravel application installer";
+    homepage = "https://laravel.com/docs#creating-a-laravel-project";
+    changelog = "https://github.com/laravel/installer/releases/tag/v${finalAttrs.version}";
+    license = lib.licenses.mit;
+    mainProgram = "laravel";
+    maintainers = with lib.maintainers; [ heisfer ];
+  };
+})
diff --git a/pkgs/development/libraries/LASzip/default.nix b/pkgs/by-name/la/laszip/package.nix
index ee6e74aa7bc23..65c2e6934a244 100644
--- a/pkgs/development/libraries/LASzip/default.nix
+++ b/pkgs/by-name/la/laszip/package.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   version = "3.4.3";
-  pname = "LASzip";
+  pname = "laszip";
 
   src = fetchFromGitHub {
     owner = "LASzip";
diff --git a/pkgs/development/libraries/LASzip/LASzip2.nix b/pkgs/by-name/la/laszip_2/package.nix
index 4f63dfe8059c8..8af9cae261fea 100644
--- a/pkgs/development/libraries/LASzip/LASzip2.nix
+++ b/pkgs/by-name/la/laszip_2/package.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchFromGitHub, cmake }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   version = "2.2.0";
-  pname = "LASzip";
+  pname = "laszip";
 
   src = fetchFromGitHub {
     owner = "LASzip";
     repo = "LASzip";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     sha256 = "sha256-TXzse4oLjNX5R2xDR721iV+gW/rP5z3Zciv4OgxfeqA=";
   };
 
@@ -20,4 +20,4 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.michelk ];
     platforms = platforms.unix;
   };
-}
+})
diff --git a/pkgs/by-name/la/latexminted/package.nix b/pkgs/by-name/la/latexminted/package.nix
new file mode 100644
index 0000000000000..fc5cb3a3a7e91
--- /dev/null
+++ b/pkgs/by-name/la/latexminted/package.nix
@@ -0,0 +1,38 @@
+{ lib
+, fetchPypi
+, python3Packages
+, latexminted
+, testers
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "latexminted";
+  version = "0.1.0b5";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-1K43rX3hs+ywMzOyeKX+GmAGUVHTDZB3Yo87dZ/uYaQ=";
+  };
+
+  build-system = with python3Packages; [
+    setuptools
+  ];
+
+  dependencies = with python3Packages; [
+    pygments
+    latex2pydata
+  ];
+
+  passthru = {
+    tests.version = testers.testVersion { package = latexminted; };
+  };
+
+  meta = {
+    description = "Python executable for LaTeX minted package";
+    homepage = "https://pypi.org/project/latexminted";
+    license = lib.licenses.lppl13c;
+    mainProgram = "latexminted";
+    maintainers = with lib.maintainers; [ romildo ];
+  };
+}
diff --git a/pkgs/by-name/la/laudanum/package.nix b/pkgs/by-name/la/laudanum/package.nix
index a744fe7720b89..3a4cc8bd16a9e 100644
--- a/pkgs/by-name/la/laudanum/package.nix
+++ b/pkgs/by-name/la/laudanum/package.nix
@@ -22,7 +22,7 @@ stdenvNoCC.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A collection of injectable files, designed to be used in a pentest when SQL injection flaws are found and are in multiple languages for different environments";
+    description = "Collection of injectable files, designed to be used in a pentest when SQL injection flaws are found and are in multiple languages for different environments";
     homepage = "https://github.com/junk13/laudanum";
     maintainers = with maintainers; [ d3vil0p3r ];
     platforms = platforms.all;
diff --git a/pkgs/by-name/la/lazysql/package.nix b/pkgs/by-name/la/lazysql/package.nix
new file mode 100644
index 0000000000000..6f78d0994d352
--- /dev/null
+++ b/pkgs/by-name/la/lazysql/package.nix
@@ -0,0 +1,31 @@
+{ lib
+, stdenv
+, buildGoModule
+, fetchFromGitHub
+, xorg ? null
+, darwin ? null
+}:
+
+buildGoModule rec {
+  pname = "lazysql";
+  version = "0.1.8";
+
+  src = fetchFromGitHub {
+    owner = "jorgerojas26";
+    repo = "lazysql";
+    rev = "v${version}";
+    hash = "sha256-yPf9/SM4uET/I8FsDU1le9JgxELu0DR9k7mv8PnBwvQ=";
+  };
+
+  vendorHash = "sha256-tgD6qoCVC1ox15VPJWVvhe4yg3R81ktMuW2dsaU69rY=";
+
+  buildInputs = lib.optionals stdenv.isLinux [ xorg.libX11 ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Cocoa ];
+
+  meta = with lib; {
+    description = "A cross-platform TUI database management tool written in Go";
+    homepage = "https://github.com/jorgerojas26/lazysql";
+    license = licenses.mit;
+    maintainers = with maintainers; [ kanielrkirby ];
+    mainProgram = "lazysql";
+  };
+}
diff --git a/pkgs/by-name/lb/lbreakouthd/package.nix b/pkgs/by-name/lb/lbreakouthd/package.nix
index 4de44c27dcbbf..2a5ddacbafdff 100644
--- a/pkgs/by-name/lb/lbreakouthd/package.nix
+++ b/pkgs/by-name/lb/lbreakouthd/package.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://lgames.sourceforge.io/LBreakoutHD/";
-    description = "A widescreen Breakout clone";
+    description = "Widescreen Breakout clone";
     license = lib.licenses.gpl2Plus;
     mainProgram = "lbreakouthd";
     maintainers = with lib.maintainers; [ AndersonTorres ];
diff --git a/pkgs/by-name/lc/lc0/package.nix b/pkgs/by-name/lc/lc0/package.nix
index 4ccb1927534bf..df4a59346f66d 100644
--- a/pkgs/by-name/lc/lc0/package.nix
+++ b/pkgs/by-name/lc/lc0/package.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lc0";
-  version = "0.30.0";
+  version = "0.31.0";
 
   src = fetchFromGitHub {
     owner = "LeelaChessZero";
     repo = "lc0";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Q85hXNSexHhk6W48tgJLk0Sf32xBipfg2P2SH1FF89Q=";
+    hash = "sha256-kHLO6xM1q/CQIBcGIFXVkvtGEx75sqA7atGYfvnJcso=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/compilers/ldc/binary.nix b/pkgs/by-name/ld/ldc/bootstrap.nix
index ca7fb4f04de35..2a23e755c7cf6 100644
--- a/pkgs/development/compilers/ldc/binary.nix
+++ b/pkgs/by-name/ld/ldc/bootstrap.nix
@@ -1,10 +1,17 @@
-{ lib, stdenv, fetchurl, curl, tzdata, autoPatchelfHook, fixDarwinDylibNames, libxml2
-, version, hashes }:
+{ lib, stdenv, fetchurl, curl, tzdata, autoPatchelfHook, fixDarwinDylibNames, libxml2 }:
 
 let
   inherit (stdenv) hostPlatform;
   OS = if hostPlatform.isDarwin then "osx" else hostPlatform.parsed.kernel.name;
   ARCH = if hostPlatform.isDarwin && hostPlatform.isAarch64 then "arm64" else hostPlatform.parsed.cpu.name;
+  version = "1.30.0";
+  hashes = {
+    # Get these from `nix store prefetch-file https://github.com/ldc-developers/ldc/releases/download/v1.19.0/ldc2-1.19.0-osx-x86_64.tar.xz` etc..
+    osx-x86_64 = "sha256-AAWZvxuZC82xvrW6fpYm783TY+H8k3DvqE94ZF1yjmk=";
+    linux-x86_64 = "sha256-V4TUzEfQhFrwiX07dHOgjdAoGkzausCkhnQIQNAU/eE=";
+    linux-aarch64  = "sha256-kTeglub75iv/jWWNPCn15aCGAbmck0RQl6L7bFOUu7Y=";
+    osx-arm64  = "sha256-Nb/owBdIeroB9jLMDvwjo8bvsTC9vFyJPLMTOMsSAd4=";
+  };
 in stdenv.mkDerivation {
   pname = "ldc-bootstrap";
   inherit version;
@@ -12,7 +19,7 @@ in stdenv.mkDerivation {
   src = fetchurl rec {
     name = "ldc2-${version}-${OS}-${ARCH}.tar.xz";
     url = "https://github.com/ldc-developers/ldc/releases/download/v${version}/${name}";
-    sha256 = hashes."${OS}-${ARCH}" or (throw "missing bootstrap sha256 for ${OS}-${ARCH}");
+    hash = hashes."${OS}-${ARCH}" or (throw "missing bootstrap hash for ${OS}-${ARCH}");
   };
 
   dontConfigure = true;
@@ -33,7 +40,7 @@ in stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "The LLVM-based D Compiler";
+    description = "LLVM-based D Compiler";
     homepage = "https://github.com/ldc-developers/ldc";
     # from https://github.com/ldc-developers/ldc/blob/master/LICENSE
     license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ];
diff --git a/pkgs/development/compilers/ldc/generic.nix b/pkgs/by-name/ld/ldc/package.nix
index 07b6986189c09..a807831ec4350 100644
--- a/pkgs/development/compilers/ldc/generic.nix
+++ b/pkgs/by-name/ld/ldc/package.nix
@@ -1,7 +1,22 @@
-{ version, sha256 }:
-{ lib, stdenv, fetchurl, cmake, ninja, llvm_17, curl, tzdata
-, libconfig, lit, gdb, unzip, darwin, bash
-, callPackage, makeWrapper, runCommand, targetPackages
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, ninja
+, llvm_17
+, curl
+, tzdata
+, libconfig
+, lit
+, gdb
+, unzip
+, darwin
+, bash
+, callPackage
+, makeWrapper
+, runCommand
+, targetPackages
+
 , ldcBootstrap ? callPackage ./bootstrap.nix { }
 }:
 
@@ -14,52 +29,44 @@ let
 
 in
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "ldc";
-  inherit version;
-
-  src = fetchurl {
-    url = "https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz";
-    inherit sha256;
+  version = "1.38.0";
+
+  src = fetchFromGitHub {
+    owner = "ldc-developers";
+    repo = "ldc";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-d/UREh+fHRRh0r3H60uPjHute+qspcm9TBFWZMbGDxk=";
+    fetchSubmodules = true;
   };
 
   # https://issues.dlang.org/show_bug.cgi?id=19553
   hardeningDisable = [ "fortify" ];
 
-  postUnpack = ''
-    patchShebangs .
-  ''
-  + ''
-      rm ldc-${version}-src/tests/dmd/fail_compilation/mixin_gc.d
-      rm ldc-${version}-src/tests/dmd/runnable/xtest46_gc.d
-      rm ldc-${version}-src/tests/dmd/runnable/testptrref_gc.d
-
-      # test depends on current year
-      rm ldc-${version}-src/tests/dmd/compilable/ddocYear.d
-  ''
-  + lib.optionalString stdenv.hostPlatform.isDarwin ''
-      # https://github.com/NixOS/nixpkgs/issues/34817
-      rm -r ldc-${version}-src/tests/plugins/addFuncEntryCall
-  '';
-
   postPatch = ''
-    # Setting SHELL=$SHELL when dmd testsuite is run doesn't work on Linux somehow
-    substituteInPlace tests/dmd/Makefile --replace "SHELL=/bin/bash" "SHELL=${bash}/bin/bash"
-  ''
-  + lib.optionalString stdenv.hostPlatform.isLinux ''
-      substituteInPlace runtime/phobos/std/socket.d --replace "assert(ih.addrList[0] == 0x7F_00_00_01);" ""
-  ''
-  + lib.optionalString stdenv.hostPlatform.isDarwin ''
-      substituteInPlace runtime/phobos/std/socket.d --replace "foreach (name; names)" "names = []; foreach (name; names)"
+    patchShebangs runtime tools tests
+
+    rm tests/dmd/fail_compilation/mixin_gc.d
+    rm tests/dmd/runnable/xtest46_gc.d
+    rm tests/dmd/runnable/testptrref_gc.d
+
+    # test depends on current year
+    rm tests/dmd/compilable/ddocYear.d
+  '' + lib.optionalString stdenv.hostPlatform.isLinux ''
+    substituteInPlace runtime/phobos/std/socket.d --replace-fail "assert(ih.addrList[0] == 0x7F_00_00_01);" ""
+  '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
+    substituteInPlace runtime/phobos/std/socket.d --replace-fail "foreach (name; names)" "names = []; foreach (name; names)"
+
+    # https://github.com/NixOS/nixpkgs/issues/34817
+    rm -r tests/plugins/addFuncEntryCall
   '';
 
   nativeBuildInputs = [
     cmake ldcBootstrap lit lit.python llvm_17.dev makeWrapper ninja unzip
-  ]
-  ++ lib.optionals stdenv.hostPlatform.isDarwin [
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
     darwin.apple_sdk.frameworks.Foundation
-  ]
-  ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
+  ] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
     # https://github.com/NixOS/nixpkgs/pull/36378#issuecomment-385034818
     gdb
   ];
@@ -76,7 +83,7 @@ stdenv.mkDerivation rec {
 
   makeFlags = [ "DMD=$DMD" ];
 
-  fixNames = lib.optionalString stdenv.hostPlatform.isDarwin  ''
+  fixNames = lib.optionalString stdenv.hostPlatform.isDarwin ''
     fixDarwinDylibNames() {
       local flags=()
 
@@ -103,7 +110,7 @@ stdenv.mkDerivation rec {
     # Build default lib test runners
     ninja -j$NIX_BUILD_CORES all-test-runners
 
-    ${fixNames}
+    ${finalAttrs.fixNames}
 
     # Run dmd testsuite
     export DMD_TESTSUITE_MAKE_ARGS="-j$NIX_BUILD_CORES DMD=$DMD"
@@ -116,22 +123,23 @@ stdenv.mkDerivation rec {
     ctest -V -R "lit-tests"
 
     # Run default lib unittests
-    ctest -j$NIX_BUILD_CORES --output-on-failure -E "ldc2-unittest|lit-tests|dmd-testsuite${additionalExceptions}"
+    ctest -j$NIX_BUILD_CORES --output-on-failure -E "ldc2-unittest|lit-tests|dmd-testsuite${finalAttrs.additionalExceptions}"
   '';
 
   postInstall = ''
     wrapProgram $out/bin/ldc2 \
-        --prefix PATH ":" "${targetPackages.stdenv.cc}/bin" \
-        --set-default CC "${targetPackages.stdenv.cc}/bin/cc"
-   '';
+      --prefix PATH : ${targetPackages.stdenv.cc}/bin \
+      --set-default CC ${targetPackages.stdenv.cc}/bin/cc
+  '';
 
   meta = with lib; {
-    description = "The LLVM-based D compiler";
+    description = "LLVM-based D compiler";
     homepage = "https://github.com/ldc-developers/ldc";
+    changelog = "https://github.com/ldc-developers/ldc/releases/tag/v${finalAttrs.version}";
     # from https://github.com/ldc-developers/ldc/blob/master/LICENSE
     license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ];
     mainProgram = "ldc2";
     maintainers = with maintainers; [ lionello jtbx ];
     platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
   };
-}
+})
diff --git a/pkgs/by-name/le/leaf/package.nix b/pkgs/by-name/le/leaf/package.nix
index a88295224be9a..bda0c6d2afb07 100644
--- a/pkgs/by-name/le/leaf/package.nix
+++ b/pkgs/by-name/le/leaf/package.nix
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A simple system fetch written in rust";
+    description = "Simple system fetch written in rust";
     homepage = "https://github.com/IogaMaster/leaf";
     license = licenses.mit;
     maintainers = with maintainers; [ iogamaster ];
diff --git a/pkgs/by-name/le/ledger/package.nix b/pkgs/by-name/le/ledger/package.nix
index 0029b1b7df465..ab98965cae80c 100644
--- a/pkgs/by-name/le/ledger/package.nix
+++ b/pkgs/by-name/le/ledger/package.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A double-entry accounting system with a command-line reporting interface";
+    description = "Double-entry accounting system with a command-line reporting interface";
     mainProgram = "ledger";
     homepage = "https://www.ledger-cli.org/";
     changelog = "https://github.com/ledger/ledger/raw/v${version}/NEWS.md";
diff --git a/pkgs/by-name/le/leetgo/package.nix b/pkgs/by-name/le/leetgo/package.nix
new file mode 100644
index 0000000000000..64d19fda9d7b0
--- /dev/null
+++ b/pkgs/by-name/le/leetgo/package.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, installShellFiles
+}:
+
+buildGoModule rec {
+  pname = "leetgo";
+  version = "1.4.1";
+
+  src = fetchFromGitHub {
+    owner = "j178";
+    repo = "leetgo";
+    rev = "v${version}";
+    hash = "sha256-LbY7GGPu2ZwcclCmsE9V421FUi+foR7CXyFHF7GrjQo=";
+  };
+
+  vendorHash = "sha256-GG9IfM50uVhsQVjXhUrYxuEbPlbsEsFubmUUSMr5SD4=";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X=github.com/j178/leetgo/constants.Version=${version}"
+  ];
+
+  subPackages = [ "." ];
+
+  postInstall = ''
+    installShellCompletion --cmd leetgo \
+      --bash <($out/bin/leetgo completion bash) \
+      --fish <($out/bin/leetgo completion fish) \
+      --zsh <($out/bin/leetgo completion zsh)
+  '';
+
+  meta = with lib; {
+    description = "A command-line tool for LeetCode";
+    homepage = "https://github.com/j178/leetgo";
+    changelog = "https://github.com/j178/leetgo/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ Ligthiago ];
+    mainProgram = "leetgo";
+  };
+}
diff --git a/pkgs/by-name/le/lefthook/package.nix b/pkgs/by-name/le/lefthook/package.nix
index 0cde03e8ae816..2931a41cc3efd 100644
--- a/pkgs/by-name/le/lefthook/package.nix
+++ b/pkgs/by-name/le/lefthook/package.nix
@@ -6,7 +6,7 @@
 
 let
   pname = "lefthook";
-  version = "1.6.12";
+  version = "1.6.16";
 in
 buildGoModule {
   inherit pname version;
@@ -15,10 +15,10 @@ buildGoModule {
     owner = "evilmartians";
     repo = "lefthook";
     rev = "v${version}";
-    hash = "sha256-j39A+cHu1MUa7kP46JY8pADsOejsMX0rcBHQZflhWe8=";
+    hash = "sha256-5sGhm+ioH9hQLDuk7a0oUB1CqiiTt88UKAmBqUeCfic=";
   };
 
-  vendorHash = "sha256-sDqP+fzAFavqtvJ98nwsD5+GxNhmLgtOkTzIK06wp9E=";
+  vendorHash = "sha256-ralnfqrP6R58Wjc/AWRf1motWZICPagZxHCkqVcwYoo=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/by-name/le/legba/package.nix b/pkgs/by-name/le/legba/package.nix
index 01586e05723a4..0ac2c5718726f 100644
--- a/pkgs/by-name/le/legba/package.nix
+++ b/pkgs/by-name/le/legba/package.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "legba";
-  version = "0.8.0";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "evilsocket";
     repo = "legba";
     rev = "v${version}";
-    hash = "sha256-yevQEbDuVaSsSfA3ug9rDeWtGjMvS+uD7qHguRVt4sg=";
+    hash = "sha256-emj2N3S26Nm0UiHGZIraCJN07rJNOMvdWRoUbHneknY=";
   };
 
-  cargoHash = "sha256-UBt4FP5zW+dijneHNaFJ80Ui5R+m+8aSwHTcqKDeEVg=";
+  cargoHash = "sha256-viDfJ214Zf5segjrLSTbHav5T5e219NAF+MvuPow+JQ=";
 
   nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [ openssl.dev samba ];
@@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A multiprotocol credentials bruteforcer / password sprayer and enumerator";
+    description = "Multiprotocol credentials bruteforcer / password sprayer and enumerator";
     homepage = "https://github.com/evilsocket/legba";
     changelog = "https://github.com/evilsocket/legba/releases/tag/v${version}";
     license = licenses.gpl3Only;
diff --git a/pkgs/by-name/le/less/package.nix b/pkgs/by-name/le/less/package.nix
index f7791a2636eb7..f94e4b0cad796 100644
--- a/pkgs/by-name/le/less/package.nix
+++ b/pkgs/by-name/le/less/package.nix
@@ -4,6 +4,7 @@
 , fetchpatch
 , ncurses
 , pcre2
+, withSecure ? false
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -24,6 +25,12 @@ stdenv.mkDerivation (finalAttrs: {
       url = "https://gitlab.archlinux.org/archlinux/packaging/packages/less/-/raw/1d570db0c84fe95799f460526492e45e24c30ad0/backport-007521ac3c95bc76.patch";
       hash = "sha256-BT8DLIu7oVhL5XL50uFVUp97qjklcvRHy85UQwVKAmc=";
     })
+    (fetchpatch {
+      # https://github.com/gwsw/less/pull/416
+      name = "freebsd.patch";
+      url = "https://github.com/gwsw/less/commit/3ecff3752078fda90fd46c9f020f2a2bb548dd71.patch";
+      hash = "sha256-Iv2Jm/7wwRsyLchoEvYz9VziySJ6sI4YbSgFTdQrV+I=";
+    })
   ];
 
   buildInputs = [
@@ -37,11 +44,11 @@ stdenv.mkDerivation (finalAttrs: {
     # Look for 'sysless' in /etc.
     "--sysconfdir=/etc"
     "--with-regex=pcre2"
-  ];
+  ] ++ lib.optional withSecure "--with-secure";
 
   meta = {
     homepage = "https://www.greenwoodsoftware.com/less/";
-    description = "A more advanced file pager than 'more'";
+    description = "More advanced file pager than 'more'";
     changelog = "https://www.greenwoodsoftware.com/less/news.${finalAttrs.version}.html";
     license = lib.licenses.gpl3Plus;
     mainProgram = "less";
diff --git a/pkgs/by-name/le/letterpress/package.nix b/pkgs/by-name/le/letterpress/package.nix
new file mode 100644
index 0000000000000..d68796e879dc0
--- /dev/null
+++ b/pkgs/by-name/le/letterpress/package.nix
@@ -0,0 +1,85 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitLab,
+  fetchpatch,
+  wrapGAppsHook4,
+  appstream,
+  blueprint-compiler,
+  desktop-file-utils,
+  gettext,
+  gobject-introspection,
+  jp2a,
+  libadwaita,
+  meson,
+  ninja,
+  pkg-config,
+  python3Packages,
+}:
+python3Packages.buildPythonApplication rec {
+  pname = "letterpress";
+  version = "2.1";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "World";
+    repo = "letterpress";
+    rev = version;
+    hash = "sha256-9U8iH3V4WMljdtWLmb0RlexLeAN5StJ0c9RlEB2E7Xs=";
+  };
+
+  patches = [
+    # Fix application segmentation fault on file chooser dialog opening
+    # https://gitlab.gnome.org/World/Letterpress/-/merge_requests/16
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/World/Letterpress/-/commit/15059eacca14204d1092a6e32ef30c6ce4df6d36.patch";
+      hash = "sha256-pjg/O9advtkZ0l73GQtL/GYcTWeOs5l3VGOdnsZCWI0=";
+    })
+  ];
+
+  runtimeDeps = [
+    jp2a
+  ];
+
+  buildInputs = [
+    libadwaita
+  ];
+
+  nativeBuildInputs = [
+    appstream
+    blueprint-compiler
+    desktop-file-utils
+    gettext
+    gobject-introspection
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook4
+  ];
+
+  dependencies = with python3Packages; [
+    pillow
+    pygobject3
+  ];
+
+  pyproject = false; # built by meson
+  dontWrapGApps = true; # prevent double wrapping
+
+  preFixup = ''
+    makeWrapperArgs+=(''${gappsWrapperArgs[@]} --prefix PATH : ${ lib.makeBinPath runtimeDeps })
+  '';
+
+  meta = with lib; {
+    description = "Create beautiful ASCII art";
+    longDescription = ''
+      Letterpress converts your images into a picture made up of ASCII characters.
+      You can save the output to a file, copy it, and even change its resolution!
+      High-res output can still be viewed comfortably by lowering the zoom factor.
+    '';
+    homepage = "https://apps.gnome.org/Letterpress/";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.dawidd6 ];
+    platforms = platforms.linux;
+    mainProgram = "letterpress";
+  };
+}
diff --git a/pkgs/by-name/le/lexido/package.nix b/pkgs/by-name/le/lexido/package.nix
index defa4c691693b..fffa1b092caf7 100644
--- a/pkgs/by-name/le/lexido/package.nix
+++ b/pkgs/by-name/le/lexido/package.nix
@@ -23,7 +23,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "A terminal assistant, powered by Generative AI";
+    description = "Terminal assistant, powered by Generative AI";
     homepage = "https://github.com/micr0-dev/lexido";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ daru-san ];
diff --git a/pkgs/by-name/li/lib60870/package.nix b/pkgs/by-name/li/lib60870/package.nix
index f5c744e71098b..9d8e959b99137 100644
--- a/pkgs/by-name/li/lib60870/package.nix
+++ b/pkgs/by-name/li/lib60870/package.nix
@@ -17,12 +17,12 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-9o+gWQbpCJb+UZzPNmzGqpWD0QbGjg41is/f1POUEQs=";
   };
 
+  sourceRoot = "${finalAttrs.src.name}/lib60870-C";
+
   separateDebugInfo = true;
 
   nativeBuildInputs = [ cmake ];
 
-  preConfigure = "cd lib60870-C";
-
   passthru.updateScript = gitUpdater { rev-prefix = "v"; };
 
   meta = with lib; {
@@ -30,6 +30,6 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://libiec61850.com/";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ stv0g ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 })
diff --git a/pkgs/by-name/li/libation/package.nix b/pkgs/by-name/li/libation/package.nix
index 692de5d3d909a..4ee6e09f33bdc 100644
--- a/pkgs/by-name/li/libation/package.nix
+++ b/pkgs/by-name/li/libation/package.nix
@@ -88,7 +88,7 @@ buildDotnetModule rec {
 
   meta = {
     changelog = "https://github.com/rmcrackan/Libation/releases/tag/${src.rev}";
-    description = "An Audible audiobook manager";
+    description = "Audible audiobook manager";
     homepage = "https://github.com/rmcrackan/Libation";
     license = lib.licenses.gpl3Only;
     mainProgram = "libation";
diff --git a/pkgs/by-name/li/libbfio/package.nix b/pkgs/by-name/li/libbfio/package.nix
index ccc4c640677ca..1695b65272d2e 100644
--- a/pkgs/by-name/li/libbfio/package.nix
+++ b/pkgs/by-name/li/libbfio/package.nix
@@ -1,6 +1,5 @@
 { lib
 , fetchzip
-, fetchpatch
 , stdenv
 , gettext
 , libtool
diff --git a/pkgs/by-name/li/libburn/package.nix b/pkgs/by-name/li/libburn/package.nix
index 701a511dc9076..7085551c72388 100644
--- a/pkgs/by-name/li/libburn/package.nix
+++ b/pkgs/by-name/li/libburn/package.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://dev.lovelyhq.com/libburnia/web/wiki";
-    description = "A library by which preformatted data get onto optical media: CD, DVD, BD (Blu-Ray)";
+    description = "Library by which preformatted data get onto optical media: CD, DVD, BD (Blu-Ray)";
     changelog = "https://dev.lovelyhq.com/libburnia/libburn/src/tag/${finalAttrs.src.rev}/ChangeLog";
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ abbradar AndersonTorres ];
diff --git a/pkgs/by-name/li/libcamera/package.nix b/pkgs/by-name/li/libcamera/package.nix
index 8bf654f209037..c122f840df32e 100644
--- a/pkgs/by-name/li/libcamera/package.nix
+++ b/pkgs/by-name/li/libcamera/package.nix
@@ -9,7 +9,6 @@
 , libdrm
 , libevent
 , libyaml
-, lttng-ust
 , gst_all_1
 , gtest
 , graphviz
@@ -17,6 +16,8 @@
 , python3
 , python3Packages
 , systemd # for libudev
+, withTracing ? lib.meta.availableOn stdenv.hostPlatform lttng-ust
+, lttng-ust # withTracing
 , withQcam ? false
 , qt5 # withQcam
 , libtiff # withQcam
@@ -67,14 +68,12 @@ stdenv.mkDerivation rec {
     # hotplugging
     systemd
 
-    # lttng tracing
-    lttng-ust
-
     # yamlparser
     libyaml
 
     gtest
-  ] ++ lib.optionals withQcam [ libtiff qt5.qtbase qt5.qttools ];
+  ] ++ lib.optionals withTracing [ lttng-ust ]
+    ++ lib.optionals withQcam [ libtiff qt5.qtbase qt5.qttools ];
 
   nativeBuildInputs = [
     meson
@@ -92,7 +91,8 @@ stdenv.mkDerivation rec {
 
   mesonFlags = [
     "-Dv4l2=true"
-    "-Dqcam=${if withQcam then "enabled" else "disabled"}"
+    (lib.mesonEnable "tracing" withTracing)
+    (lib.mesonEnable "qcam" withQcam)
     "-Dlc-compliance=disabled" # tries unconditionally to download gtest when enabled
     # Avoid blanket -Werror to evade build failures on less
     # tested compilers.
@@ -110,7 +110,7 @@ stdenv.mkDerivation rec {
   FONTCONFIG_FILE = makeFontsConf { fontDirectories = [ ]; };
 
   meta = with lib; {
-    description = "An open source camera stack and framework for Linux, Android, and ChromeOS";
+    description = "Open source camera stack and framework for Linux, Android, and ChromeOS";
     homepage = "https://libcamera.org";
     license = licenses.lgpl2Plus;
     maintainers = with maintainers; [ citadelcore ];
diff --git a/pkgs/by-name/li/libclipboard/package.nix b/pkgs/by-name/li/libclipboard/package.nix
new file mode 100644
index 0000000000000..5420501270b31
--- /dev/null
+++ b/pkgs/by-name/li/libclipboard/package.nix
@@ -0,0 +1,38 @@
+{
+  stdenv,
+  fetchFromGitHub,
+  cmake,
+  pkg-config,
+  libxcb,
+  libXau,
+  libXdmcp,
+  darwin,
+  lib
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  name = "libclipboard";
+  version = "1.1";
+
+  src = fetchFromGitHub {
+    owner = "jtanx";
+    repo = "libclipboard";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-553hNG8QUlt/Aff9EKYr6w279ELr+2MX7nh1SKIklhA=";
+  };
+
+  buildInputs = [ libxcb libXau libXdmcp ]
+    ++ lib.optional stdenv.isDarwin [ darwin.apple_sdk.frameworks.Cocoa ];
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ];
+  outputs = [ "out" "dev" ];
+
+  meta = {
+    description = "Lightweight cross-platform clipboard library";
+    homepage = "https://jtanx.github.io/libclipboard";
+    platforms = lib.platforms.unix;
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.sigmanificient ];
+  };
+})
diff --git a/pkgs/by-name/li/libcpuid/package.nix b/pkgs/by-name/li/libcpuid/package.nix
index cf4afd8df7d5e..8378a804fdcf0 100644
--- a/pkgs/by-name/li/libcpuid/package.nix
+++ b/pkgs/by-name/li/libcpuid/package.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   pname = "libcpuid";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://libcpuid.sourceforge.net/";
-    description = "A small C library for x86 CPU detection and feature extraction";
+    description = "Small C library for x86 CPU detection and feature extraction";
     mainProgram = "cpuid_tool";
     changelog = "https://raw.githubusercontent.com/anrieff/libcpuid/master/ChangeLog";
     license = licenses.bsd2;
diff --git a/pkgs/by-name/li/libdjinterop/package.nix b/pkgs/by-name/li/libdjinterop/package.nix
index 93bf2bc8a7ecf..2432c24de8b93 100644
--- a/pkgs/by-name/li/libdjinterop/package.nix
+++ b/pkgs/by-name/li/libdjinterop/package.nix
@@ -17,8 +17,8 @@ stdenv.mkDerivation {
   src = fetchFromGitHub {
     owner = "xsco";
     repo = "libdjinterop";
-    rev = "0.20.1";
-    hash = "sha256-/iXSRJVFPWqUTVz7z0BNWCq5LOqdNuTI+wx/34JAZfc=";
+    rev = "0.20.2";
+    hash = "sha256-eTr9ax/bZWazLhLLQG6XUgqiM+7LVieh5ruA0EaUaj0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/li/libedit/package.nix b/pkgs/by-name/li/libedit/package.nix
index aeb79811d6e78..eb228ae3217bd 100644
--- a/pkgs/by-name/li/libedit/package.nix
+++ b/pkgs/by-name/li/libedit/package.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "http://www.thrysoee.dk/editline/";
-    description = "A port of the NetBSD Editline library (libedit)";
+    description = "Port of the NetBSD Editline library (libedit)";
     longDescription = ''
        This is an autotool- and libtoolized port of the NetBSD Editline library
        (libedit). This Berkeley-style licensed command line editor library
diff --git a/pkgs/by-name/li/libeduvpn-common/package.nix b/pkgs/by-name/li/libeduvpn-common/package.nix
index 5e74e01ddecfe..a0b559fa31e7a 100644
--- a/pkgs/by-name/li/libeduvpn-common/package.nix
+++ b/pkgs/by-name/li/libeduvpn-common/package.nix
@@ -5,11 +5,11 @@
 
 buildGoModule rec {
   pname = "libeduvpn-common";
-  version = "1.2.0";
+  version = "2.0.1";
 
   src = fetchurl {
     url = "https://github.com/eduvpn/eduvpn-common/releases/download/${version}/eduvpn-common-${version}.tar.xz";
-    hash = "sha256-CqpOgvGGD6pW03fvKUzgoeCz6YgnzuYK2u5Zbw+/Ks4=";
+    hash = "sha256-hTF9CSqU9c0+TOK+/oRGjY1fBCKpisiiTJnWZqcdvjA=";
   };
 
   vendorHash = null;
diff --git a/pkgs/by-name/li/libepubgen/package.nix b/pkgs/by-name/li/libepubgen/package.nix
index 906642f140293..ec0901ec43855 100644
--- a/pkgs/by-name/li/libepubgen/package.nix
+++ b/pkgs/by-name/li/libepubgen/package.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An EPUB generator for librevenge";
+    description = "EPUB generator for librevenge";
     homepage = "https://sourceforge.net/projects/libepubgen/";
     license = licenses.mpl20;
     maintainers = [ ];
diff --git a/pkgs/by-name/li/libetonyek/package.nix b/pkgs/by-name/li/libetonyek/package.nix
index 4d0811ace7ba7..8ff8349b9d400 100644
--- a/pkgs/by-name/li/libetonyek/package.nix
+++ b/pkgs/by-name/li/libetonyek/package.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   configureFlags = ["--with-mdds=2.1"];
 
   meta = with lib; {
-    description = "A library and a set of tools for reading and converting Apple iWork documents (Keynote, Pages and Numbers).";
+    description = "Library and a set of tools for reading and converting Apple iWork documents (Keynote, Pages and Numbers)";
     homepage = "https://github.com/LibreOffice/libetonyek";
     changelog = "https://github.com/LibreOffice/libetonyek/blob/${src.rev}/NEWS";
     license = licenses.mpl20;
diff --git a/pkgs/by-name/li/libewf-legacy/package.nix b/pkgs/by-name/li/libewf-legacy/package.nix
index 536a28eceebea..3d2aee4d28741 100644
--- a/pkgs/by-name/li/libewf-legacy/package.nix
+++ b/pkgs/by-name/li/libewf-legacy/package.nix
@@ -1,6 +1,5 @@
 { lib
 , fetchurl
-, fetchpatch
 , stdenv
 , zlib
 , openssl
diff --git a/pkgs/by-name/li/libfmvoice/package.nix b/pkgs/by-name/li/libfmvoice/package.nix
index 06284bfd5eafb..cccc2f512e547 100644
--- a/pkgs/by-name/li/libfmvoice/package.nix
+++ b/pkgs/by-name/li/libfmvoice/package.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libfmvoice";
-  version = "0.0.0-unstable-2023-12-05";
+  version = "0-unstable-2024-06-06";
 
   src = fetchFromGitHub {
     owner = "vampirefrog";
     repo = "libfmvoice";
-    rev = "38b1a0c627ef66fcd9c672c215d2b9849163df12";
-    hash = "sha256-kXthY9TynIXNX9wmgn13vs4Mrrv/dmEr7zlWiKstjGk=";
+    rev = "cd89a6a386b3b17c74b1caca11e297b2748cf90d";
+    hash = "sha256-yak+pKxkrKOX/qgtwpldjd85deE/JB040bVjDD1mo7A=";
   };
 
   strictDeps = true;
diff --git a/pkgs/by-name/li/libgff/package.nix b/pkgs/by-name/li/libgff/package.nix
index fe3473f2e4df8..fc81cd0927776 100644
--- a/pkgs/by-name/li/libgff/package.nix
+++ b/pkgs/by-name/li/libgff/package.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation (finalAttrs: {
   nativeBuildInputs = [ cmake ];
 
   meta = {
-    description = "A lightweight GTF/GFF parsers exposing a C++ interface";
+    description = "Lightweight GTF/GFF parsers exposing a C++ interface";
     homepage = "https://github.com/COMBINE-lab/libgff";
     downloadPage = "https://github.com/COMBINE-lab/libgff/releases";
     changelog = "https://github.com/COMBINE-lab/libgff/releases/tag/" +
diff --git a/pkgs/by-name/li/libiconv-darwin/0001-Support-static-module-loading.patch b/pkgs/by-name/li/libiconv-darwin/0001-Support-static-module-loading.patch
new file mode 100644
index 0000000000000..691b483b27efe
--- /dev/null
+++ b/pkgs/by-name/li/libiconv-darwin/0001-Support-static-module-loading.patch
@@ -0,0 +1,72 @@
+From a3e945c630180e9aa182603207238302e58fe8fe Mon Sep 17 00:00:00 2001
+From: Randy Eckenrode <randy@largeandhighquality.com>
+Date: Sat, 25 May 2024 19:03:58 -0400
+Subject: [PATCH 1/2] Support static module loading
+
+---
+ citrus/citrus_module.c | 21 ++++++++++++++++++---
+ 1 file changed, 18 insertions(+), 3 deletions(-)
+
+diff --git a/citrus/citrus_module.c b/citrus/citrus_module.c
+index 5103d30..c22c9da 100644
+--- a/citrus/citrus_module.c
++++ b/citrus/citrus_module.c
+@@ -324,22 +324,36 @@ out:
+ 	return (path[0] ? path : NULL);
+ }
+ 
++#if defined(ENABLE_STATIC)
++#include "static-modules.h"
++#endif
++
+ void *
+ _citrus_find_getops(_citrus_module_t handle, const char *modname,
+     const char *ifname)
+ {
+ 	char name[PATH_MAX];
+ 	void *p;
+-
++#if defined(ENABLE_STATIC)
++	const struct getops_pair* res = lookup_getops(modname, strlen(modname));
++	p = res ? res->opsfn : NULL;
++#else
+ 	snprintf(name, sizeof(name), "_citrus_%s_%s_getops",
+ 	    modname, ifname);
+ 	p = dlsym((void *)handle, name);
++#endif
+ 	return (p);
+ }
+ 
+ int
+ _citrus_load_module(_citrus_module_t *rhandle, const char *encname)
+ {
++#if defined(ENABLE_STATIC)
++	if (is_known_encoding(encname, strnlen(encname, MAX_WORD_LENGTH)) > MAX_HASH_VALUE) {
++		return (EINVAL);
++	}
++	*rhandle = (_citrus_module_t)encodings;
++#else
+ 	const char *p;
+ 	char path[PATH_MAX];
+ 	void *handle;
+@@ -368,14 +382,15 @@ _citrus_load_module(_citrus_module_t *rhandle, const char *encname)
+ 	}
+ 
+ 	*rhandle = (_citrus_module_t)handle;
+-
++#endif
+ 	return (0);
+ }
+ 
+ void
+ _citrus_unload_module(_citrus_module_t handle)
+ {
+-
++#if !defined(ENABLE_STATIC)
+ 	if (handle)
+ 		dlclose((void *)handle);
++#endif
+ }
+-- 
+2.44.1
+
diff --git a/pkgs/by-name/li/libiconv-darwin/0002-Fix-ISO-2022-out-of-bounds-write-with-encoded-charac.patch b/pkgs/by-name/li/libiconv-darwin/0002-Fix-ISO-2022-out-of-bounds-write-with-encoded-charac.patch
new file mode 100644
index 0000000000000..e6bce71abd938
--- /dev/null
+++ b/pkgs/by-name/li/libiconv-darwin/0002-Fix-ISO-2022-out-of-bounds-write-with-encoded-charac.patch
@@ -0,0 +1,43 @@
+From 6a2c81d23558d19a68d5494f8f8618bd55c89405 Mon Sep 17 00:00:00 2001
+From: Randy Eckenrode <randy@largeandhighquality.com>
+Date: Mon, 27 May 2024 13:43:43 -0400
+Subject: [PATCH 2/2] Fix ISO-2022 out-of-bounds write with encoded characters
+
+---
+ libiconv_modules/ISO2022/citrus_iso2022.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/libiconv_modules/ISO2022/citrus_iso2022.c b/libiconv_modules/ISO2022/citrus_iso2022.c
+index 46da1d6..c2eeaa8 100644
+--- a/libiconv_modules/ISO2022/citrus_iso2022.c
++++ b/libiconv_modules/ISO2022/citrus_iso2022.c
+@@ -1031,7 +1031,7 @@ _ISO2022_sputwchar(_ISO2022EncodingInfo * __restrict ei, wchar_t wc,
+ {
+ 	_ISO2022Charset cs;
+ 	char *p;
+-	char tmp[MB_LEN_MAX];
++	char tmp[MB_LEN_MAX + 4];
+ 	size_t len;
+ 	int bit8, i = 0, target;
+ 	unsigned char mask;
+@@ -1196,7 +1196,7 @@ _citrus_ISO2022_put_state_reset(_ISO2022EncodingInfo * __restrict ei,
+     size_t * __restrict nresult)
+ {
+ 	char *result;
+-	char buf[MB_LEN_MAX];
++	char buf[MB_LEN_MAX + 4];
+ 	size_t len;
+ 	int ret;
+ 
+@@ -1225,7 +1225,7 @@ _citrus_ISO2022_wcrtomb_priv(_ISO2022EncodingInfo * __restrict ei,
+     _ISO2022State * __restrict psenc, size_t * __restrict nresult)
+ {
+ 	char *result;
+-	char buf[MB_LEN_MAX];
++	char buf[MB_LEN_MAX + 4];
+ 	size_t len;
+ 	int ret;
+ 
+-- 
+2.44.1
+
diff --git a/pkgs/by-name/li/libiconv-darwin/meson.build b/pkgs/by-name/li/libiconv-darwin/meson.build
index 99adeb7fe0849..9473cb8911423 100644
--- a/pkgs/by-name/li/libiconv-darwin/meson.build
+++ b/pkgs/by-name/li/libiconv-darwin/meson.build
@@ -19,6 +19,19 @@ i18nmoduledir = prefix_libdir / 'i18n'
 esdbdir = prefix_datadir / 'i18n/esdb'
 csmapperdir = prefix_datadir / 'i18n/csmapper'
 
+is_static = get_option('default_library') == 'static'
+static_suffix = is_static ? '_static' : ''
+
+# Generators
+if is_static
+    gperf_bin = find_program('gperf', required : true)
+    gperf = generator(
+        gperf_bin,
+        arguments : ['@INPUT@', '--output-file=@OUTPUT@'],
+        output : '@BASENAME@.h'
+    )
+endif
+
 
 # Libraries
 libcharset = library(
@@ -37,15 +50,16 @@ install_headers(
 )
 
 libiconv = library(
-    'iconv',
+    'iconv' + static_suffix,
     build_rpath : fs.parent(libcharset.full_path()),
     c_args : [
         f'-D_PATH_I18NMODULE="@i18nmoduledir@"',
         f'-D_PATH_ESDB="@esdbdir@"',
-        f'-D_PATH_CSMAPPER="@csmapperdir@"'
+        f'-D_PATH_CSMAPPER="@csmapperdir@"',
+        is_static ? '-DENABLE_STATIC=1' : [ ]
     ],
     darwin_versions : '7',
-    install : true,
+    install : not is_static,
     include_directories : ['citrus', 'libcharset'],
     link_args : ['-Wl,-reexport_library', fs.name(libcharset.full_path())],
     link_depends : [libcharset],
@@ -84,6 +98,7 @@ libiconv = library(
         'citrus/iconvctl.c',
         'citrus/iconvlist.c',
         'citrus/iconv.c',
+        is_static ? gperf.process('static-modules.gperf') : [ ]
     ],
     soversion : '2'
 )
@@ -99,19 +114,6 @@ install_man(
 )
 
 
-# Binaries
-executable(
-    'iconv',
-    install : true,
-    include_directories : ['citrus', 'libcharset'],
-    link_with : [libiconv],
-    sources : [
-        'iconv/iconv.c'
-    ]
-)
-install_man('iconv/iconv.1')
-
-
 # Data
 ## csmapper
 csmapper_modules = [
@@ -216,6 +218,7 @@ libiconv_modules = [
     'mapper_zone'
 ]
 
+modules = [ ]
 foreach module : libiconv_modules
     module_source = module.to_lower()
     module_path = 'libiconv_modules' / module
@@ -230,14 +233,19 @@ foreach module : libiconv_modules
     # See: https://github.com/apple-oss-distributions/libiconv/blob/81be60a93521c931a01aab9c747dd2b078bc0679/libiconv.xcodeproj/project.pbxproj#L2549-L2556
     # See also: https://cgit.freebsd.org/src/tree/lib/libiconv_modules/mapper_parallel/Makefile?id=9241ebc796c11cf133c550f188f324bd2c12d89a
     if module == 'mapper_parallel'
+        # Skip including mapper_parallel since it’s the same as mapper_serial, which would result in duplicate symbols.
+        if is_static
+            continue
+        endif
+
         module_source = 'mapper_serial'
         module_path = 'libiconv_modules/mapper_serial'
     endif
 
-    library(
+    modules += library(
         module,
         darwin_versions : '1',
-        install : true,
+        install : not is_static,
         install_dir : i18nmoduledir,
         include_directories : [module_path, 'citrus', 'libcharset'] + extra_headers,
         link_with : [libiconv],
@@ -249,6 +257,38 @@ foreach module : libiconv_modules
 endforeach
 
 
+# Bundle the modules into libiconv.a
+if is_static
+    objects = [libiconv.extract_all_objects(recursive : true)]
+    foreach module : modules
+        objects += module.extract_all_objects(recursive : true)
+    endforeach
+
+    libiconv = static_library(
+        'iconv',
+        install : true,
+        objects : objects
+    )
+endif
+
+
+# Binaries
+executable(
+    'iconv',
+    install : true,
+    include_directories : ['citrus', 'libcharset'],
+    link_with : [
+        libiconv,
+        # Darwin’s system `iconv` relies on the reexported symbols from libiconv
+        is_static ? libcharset : [ ]
+    ],
+    sources : [
+        'iconv/iconv.c'
+    ]
+)
+install_man('iconv/iconv.1')
+
+
 # Tests
 if get_option('tests') == true
 ## Only required for running the tests
@@ -259,7 +299,11 @@ if get_option('tests') == true
             suite,
             dependencies : [atf],
             include_directories : ['citrus', 'libcharset'],
-            link_with : [libiconv],
+            link_with : [
+                libiconv,
+                # Make sure the libcharset reexport is working by relying on libiconv to provide its symbols.
+                is_static ? libcharset : [ ]
+            ],
             sources : [test_src]
         )
 
diff --git a/pkgs/by-name/li/libiconv-darwin/nixpkgs_test.c b/pkgs/by-name/li/libiconv-darwin/nixpkgs_test.c
index 40400ef832832..90981c5820f35 100644
--- a/pkgs/by-name/li/libiconv-darwin/nixpkgs_test.c
+++ b/pkgs/by-name/li/libiconv-darwin/nixpkgs_test.c
@@ -73,10 +73,44 @@ ATF_TC_BODY(test_cp932_cp932, tc)
     ATF_CHECK_STREQ(expected, output);
 }
 
+ATF_TC(test_iso2022_crash);
+ATF_TC_HEAD(test_iso2022_crash, tc)
+{
+    atf_tc_set_md_var(tc, "descr", "regression test for converting to ISO-2022 with escape sequences");
+}
+ATF_TC_BODY(test_iso2022_crash, tc)
+{
+    char expected[] = "";
+    size_t expected_length = sizeof(expected) - 1;
+
+    char input[] = "\x41\x41\x41\x41\x41\xe5\x8a\x84";
+    size_t input_length = sizeof(input) - 1;
+
+    size_t output_available = sizeof(expected) - 1 ;
+    char output[sizeof(expected)] = { 0 };
+
+    iconv_t cd = iconv_open("ISO-2022-CN-EXT", "UTF-8");
+    ATF_REQUIRE((size_t)cd != -1);
+
+    char* input_buf = input;
+    char* output_buf = output;
+
+    size_t res = iconv(cd, &input_buf, &input_length, &output_buf, &output_available);
+    iconv_close(cd);
+
+    ATF_CHECK(res == -1);
+
+    size_t output_length = sizeof(output) - output_available - 1;
+
+    ATF_CHECK_INTEQ(expected_length, output_length);
+    ATF_CHECK_STREQ(expected, output);
+}
+
 ATF_TP_ADD_TCS(tp)
 {
     ATF_TP_ADD_TC(tp, test_cp932_eucjp);
     ATF_TP_ADD_TC(tp, test_cp932_cp932);
+    ATF_TP_ADD_TC(tp, test_iso2022_crash);
 
     return atf_no_error();
 }
diff --git a/pkgs/by-name/li/libiconv-darwin/package.nix b/pkgs/by-name/li/libiconv-darwin/package.nix
index bb5291831b655..5792568852ff6 100644
--- a/pkgs/by-name/li/libiconv-darwin/package.nix
+++ b/pkgs/by-name/li/libiconv-darwin/package.nix
@@ -2,8 +2,8 @@
   lib,
   stdenv,
   fetchFromGitHub,
-  fetchpatch,
   atf,
+  gperf,
   libiconvReal,
   meson,
   ninja,
@@ -11,6 +11,9 @@
   gitUpdater,
 }:
 
+let
+  inherit (stdenv) hostPlatform;
+in
 stdenv.mkDerivation (finalAttrs: {
   pname = "libiconv";
   version = "99";
@@ -20,6 +23,9 @@ stdenv.mkDerivation (finalAttrs: {
     "dev"
   ];
 
+  # Propagate `out` only when there are dylibs to link (i.e., don’t propagate when doing a static build).
+  propagatedBuildOutputs = lib.optionalString (!hostPlatform.isStatic) "out";
+
   src = fetchFromGitHub {
     owner = "apple-oss-distributions";
     repo = "libiconv";
@@ -27,7 +33,13 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-TGt6rsU52ztfW2rCqwnhMAExLbexI/59IoDOGY+XGu0=";
   };
 
-  inherit (libiconvReal) setupHooks;
+  setupHooks =
+    libiconvReal.setupHooks
+    ++ lib.optionals hostPlatform.isStatic [ ./static-setup-hook.sh ];
+
+  patches = lib.optionals hostPlatform.isStatic [ ./0001-Support-static-module-loading.patch ] ++ [
+    ./0002-Fix-ISO-2022-out-of-bounds-write-with-encoded-charac.patch
+  ];
 
   postPatch =
     ''
@@ -42,30 +54,42 @@ stdenv.mkDerivation (finalAttrs: {
       header
 
       cp ${./nixpkgs_test.c} tests/libiconv/nixpkgs_test.c
+    ''
+    + lib.optionalString hostPlatform.isStatic ''
+      cp ${./static-modules.gperf} static-modules.gperf
     '';
 
   strictDeps = true;
 
-  nativeBuildInputs = [
-    meson
-    ninja
-  ];
+  nativeBuildInputs =
+    [
+      meson
+      ninja
+    ]
+    # Dynamic builds use `dlopen` to load modules, but static builds have to link them all.
+    # `gperf` is used to generate a lookup table from module to ops functions.
+    ++ lib.optionals hostPlatform.isStatic [ gperf ];
 
   mesonBuildType = "release";
 
   mesonFlags = [ (lib.mesonBool "tests" finalAttrs.doInstallCheck) ];
 
-  postInstall = lib.optionalString stdenv.isDarwin ''
-    ${stdenv.cc.targetPrefix}install_name_tool "$out/lib/libiconv.2.dylib" \
-      -change '@rpath/libcharset.1.dylib' "$out/lib/libcharset.1.dylib"
-  '';
+  postInstall =
+    lib.optionalString (stdenv.isDarwin && !hostPlatform.isStatic) ''
+      ${stdenv.cc.targetPrefix}install_name_tool "$out/lib/libiconv.2.dylib" \
+        -change '@rpath/libcharset.1.dylib' "$out/lib/libcharset.1.dylib"
+    ''
+    # Move the static library to the `dev` output
+    + lib.optionalString hostPlatform.isStatic ''
+      moveToOutput lib "$dev"
+    '';
 
   # Tests have to be run in `installCheckPhase` because libiconv expects to `dlopen`
   # modules from `$out/lib/i18n`.
   nativeInstallCheckInputs = [ pkg-config ];
   installCheckInputs = [ atf ];
 
-  doInstallCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
+  doInstallCheck = stdenv.buildPlatform.canExecute hostPlatform;
 
   # Can’t use `mesonCheckPhase` because it runs the wrong hooks for `installCheckPhase`.
   installCheckPhase = ''
@@ -79,7 +103,7 @@ stdenv.mkDerivation (finalAttrs: {
   __structuredAttrs = true;
 
   meta = {
-    description = "An iconv(3) implementation";
+    description = "Iconv(3) implementation";
     homepage = "https://opensource.apple.com/releases/";
     license =
       with lib.licenses;
diff --git a/pkgs/by-name/li/libiconv-darwin/static-modules.gperf b/pkgs/by-name/li/libiconv-darwin/static-modules.gperf
new file mode 100644
index 0000000000000..be916fb257ec2
--- /dev/null
+++ b/pkgs/by-name/li/libiconv-darwin/static-modules.gperf
@@ -0,0 +1,73 @@
+%language=ANSI-C
+%compare-strncmp
+%pic
+%readonly-tables
+%{
+#include "citrus_namespace.h"
+#include "citrus_types.h"
+#include "citrus_module.h"
+#include "citrus_hash.h"
+
+#include "citrus_iconv.h"
+#include "citrus_mapper.h"
+#include "citrus_stdenc.h"
+
+extern _CITRUS_STDENC_GETOPS_FUNC(BIG5);
+extern _CITRUS_STDENC_GETOPS_FUNC(DECHanyu);
+extern _CITRUS_STDENC_GETOPS_FUNC(DECKanji);
+extern _CITRUS_STDENC_GETOPS_FUNC(EUC);
+extern _CITRUS_STDENC_GETOPS_FUNC(EUCTW);
+extern _CITRUS_STDENC_GETOPS_FUNC(GBK2K);
+extern _CITRUS_STDENC_GETOPS_FUNC(HZ);
+extern _CITRUS_STDENC_GETOPS_FUNC(ISO2022);
+extern _CITRUS_STDENC_GETOPS_FUNC(JOHAB);
+extern _CITRUS_STDENC_GETOPS_FUNC(MSKanji);
+extern _CITRUS_STDENC_GETOPS_FUNC(UES);
+extern _CITRUS_STDENC_GETOPS_FUNC(UTF1632);
+extern _CITRUS_STDENC_GETOPS_FUNC(UTF7);
+extern _CITRUS_STDENC_GETOPS_FUNC(UTF8);
+extern _CITRUS_STDENC_GETOPS_FUNC(UTF8MAC);
+extern _CITRUS_STDENC_GETOPS_FUNC(VIQR);
+extern _CITRUS_STDENC_GETOPS_FUNC(ZW);
+
+extern _CITRUS_ICONV_GETOPS_FUNC(iconv_none);
+extern _CITRUS_ICONV_GETOPS_FUNC(iconv_std);
+
+extern _CITRUS_MAPPER_GETOPS_FUNC(mapper_646);
+extern _CITRUS_MAPPER_GETOPS_FUNC(mapper_none);
+extern _CITRUS_MAPPER_GETOPS_FUNC(mapper_parallel);
+extern _CITRUS_MAPPER_GETOPS_FUNC(mapper_serial);
+extern _CITRUS_MAPPER_GETOPS_FUNC(mapper_std);
+extern _CITRUS_MAPPER_GETOPS_FUNC(mapper_zone);
+%}
+%define lookup-function-name lookup_getops
+%define hash-function-name is_known_encoding
+%define string-pool-name encodings
+%struct-type
+struct getops_pair { int name; void* opsfn; };
+%%
+BIG5, _citrus_BIG5_stdenc_getops
+DECHanyu, _citrus_DECHanyu_stdenc_getops
+DECKanji, _citrus_DECKanji_stdenc_getops
+EUC, _citrus_EUC_stdenc_getops
+EUCTW, _citrus_EUCTW_stdenc_getops
+GBK2K, _citrus_GBK2K_stdenc_getops
+HZ, _citrus_HZ_stdenc_getops
+ISO2022, _citrus_ISO2022_stdenc_getops
+JOHAB, _citrus_JOHAB_stdenc_getops
+MSKanji, _citrus_MSKanji_stdenc_getops
+UES, _citrus_UES_stdenc_getops
+UTF1632, _citrus_UTF1632_stdenc_getops
+UTF7, _citrus_UTF7_stdenc_getops
+UTF8, _citrus_UTF8_stdenc_getops
+UTF8MAC, _citrus_UTF8MAC_stdenc_getops
+VIQR, _citrus_VIQR_stdenc_getops
+ZW, _citrus_ZW_stdenc_getops
+iconv_none, _citrus_iconv_none_iconv_getops
+iconv_std, _citrus_iconv_std_iconv_getops
+mapper_646, _citrus_mapper_646_mapper_getops
+mapper_none, _citrus_mapper_none_mapper_getops
+mapper_serial, _citrus_mapper_serial_mapper_getops
+mapper_parallel, _citrus_mapper_parallel_mapper_getops
+mapper_std, _citrus_mapper_std_mapper_getops
+mapper_zone, _citrus_mapper_zone_mapper_getops
diff --git a/pkgs/by-name/li/libiconv-darwin/static-setup-hook.sh b/pkgs/by-name/li/libiconv-darwin/static-setup-hook.sh
new file mode 100644
index 0000000000000..2ad108b82f1d2
--- /dev/null
+++ b/pkgs/by-name/li/libiconv-darwin/static-setup-hook.sh
@@ -0,0 +1,5 @@
+# Darwin’s dynamic libiconv reexports libcharset, so reproduce that in static builds.
+if [ -z "${dontAddExtraLibs-}" ]; then
+    getHostRole
+    export NIX_LDFLAGS${role_post}+=" -lcharset"
+fi
diff --git a/pkgs/by-name/li/libideviceactivation/package.nix b/pkgs/by-name/li/libideviceactivation/package.nix
new file mode 100644
index 0000000000000..dffe780d28a87
--- /dev/null
+++ b/pkgs/by-name/li/libideviceactivation/package.nix
@@ -0,0 +1,55 @@
+{
+  stdenv,
+  fetchFromGitHub,
+  lib,
+  pkg-config,
+  automake,
+  autoreconfHook,
+  libtool,
+  libplist,
+  libimobiledevice,
+  libxml2,
+  curl,
+  usbmuxd,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "libideviceactivation";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "libimobiledevice";
+    repo = "libideviceactivation";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-owcQpCN4+A785oy9pCboJIyfpgZ6X+8PRzqGtWpYl2w=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    automake
+    autoreconfHook
+  ];
+
+  buildInputs = [
+    libtool
+    libplist
+    libimobiledevice
+    libxml2
+    curl
+    usbmuxd
+  ];
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  meta = {
+    description = "Library to manage the activation process of Apple iOS devices";
+    homepage = "https://libimobiledevice.org";
+    license = with lib.licenses; [
+      lgpl21
+      gpl3
+    ];
+    mainProgram = "ideviceactivation";
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ clebs ];
+  };
+})
diff --git a/pkgs/by-name/li/libiec61850/package.nix b/pkgs/by-name/li/libiec61850/package.nix
index c5e85c462bb39..ccbf571bba292 100644
--- a/pkgs/by-name/li/libiec61850/package.nix
+++ b/pkgs/by-name/li/libiec61850/package.nix
@@ -28,6 +28,6 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://libiec61850.com/";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ stv0g ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 })
diff --git a/pkgs/by-name/li/libisofs/package.nix b/pkgs/by-name/li/libisofs/package.nix
index d49279dc1f1be..ac9c606b55523 100644
--- a/pkgs/by-name/li/libisofs/package.nix
+++ b/pkgs/by-name/li/libisofs/package.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://dev.lovelyhq.com/libburnia/web/wiki";
-    description = "A library to create an ISO-9660 filesystem with extensions like RockRidge or Joliet";
+    description = "Library to create an ISO-9660 filesystem with extensions like RockRidge or Joliet";
     changelog = "https://dev.lovelyhq.com/libburnia/libisofs/src/tag/${finalAttrs.src.rev}/ChangeLog";
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ abbradar AndersonTorres ];
diff --git a/pkgs/by-name/li/libitl/package.nix b/pkgs/by-name/li/libitl/package.nix
new file mode 100644
index 0000000000000..e1d3a21e72917
--- /dev/null
+++ b/pkgs/by-name/li/libitl/package.nix
@@ -0,0 +1,32 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, fetchpatch
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "libitl";
+  version = "0.1.8-unstable-2024-05-26";
+
+  nativeBuildInputs = [ cmake ];
+
+  src = fetchFromGitHub {
+    owner = "arabeyes-org";
+    repo = "ITL";
+    rev = "07de1851722d0818d1f981df234e1b585eb60e05";
+    hash = "sha256-bhejnA7FfuopR27heliaE/vNd1Rqvnjj3n/vkjmimAw=";
+  };
+
+  meta = with lib; {
+    description = "Islamic Tools and Libraries (ITL)";
+    longDescription = ''
+      The Islamic Tools and Libraries (ITL) project provides
+      a fully featured library for performing common Islamic calculations.
+    '';
+    homepage = "https://www.arabeyes.org/ITL";
+    license = licenses.lgpl21Only;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ amyipdev ];
+  };
+})
diff --git a/pkgs/by-name/li/libixion/package.nix b/pkgs/by-name/li/libixion/package.nix
index f47cf289b0c02..c501442ff8be2 100644
--- a/pkgs/by-name/li/libixion/package.nix
+++ b/pkgs/by-name/li/libixion/package.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A general purpose formula parser, interpreter, formula cell dependency tracker and spreadsheet document model backend all in one package.";
+    description = "General purpose formula parser, interpreter, formula cell dependency tracker and spreadsheet document model backend all in one package";
     homepage = "https://gitlab.com/ixion/ixion";
     changelog = "https://gitlab.com/ixion/ixion/-/blob/${src.rev}/CHANGELOG";
     license = licenses.mpl20;
diff --git a/pkgs/by-name/li/liblapin/package.nix b/pkgs/by-name/li/liblapin/package.nix
index 97bcb1d1e181b..f736bb2d42687 100644
--- a/pkgs/by-name/li/liblapin/package.nix
+++ b/pkgs/by-name/li/liblapin/package.nix
@@ -9,7 +9,7 @@
 }:
 
 stdenv.mkDerivation {
-  name = "liblapin";
+  pname = "liblapin";
   version = "0-unstable-2024-05-20";
 
   src = fetchFromGitHub {
diff --git a/pkgs/by-name/li/libmamba/package.nix b/pkgs/by-name/li/libmamba/package.nix
index af87959a2e5f8..8db98ea2b664a 100644
--- a/pkgs/by-name/li/libmamba/package.nix
+++ b/pkgs/by-name/li/libmamba/package.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    description = "The library for the fast Cross-Platform Package Manager";
+    description = "Library for the fast Cross-Platform Package Manager";
     homepage = "https://github.com/mamba-org/mamba";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.all;
diff --git a/pkgs/by-name/li/libmediainfo/package.nix b/pkgs/by-name/li/libmediainfo/package.nix
index d1a6986274832..931c24ad28d4f 100644
--- a/pkgs/by-name/li/libmediainfo/package.nix
+++ b/pkgs/by-name/li/libmediainfo/package.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libmediainfo";
-  version = "24.04";
+  version = "24.05";
 
   src = fetchurl {
     url = "https://mediaarea.net/download/source/libmediainfo/${version}/libmediainfo_${version}.tar.xz";
-    hash = "sha256-dqb/BgiHdz8ll3tYiuUISEuxLRHLeivjMi2qnG5T8bI=";
+    hash = "sha256-sU95EEsdDXjen7QoBfKdVP3wHD5Ckcw2OOBNCdFFuNY=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/by-name/li/libmpd/package.nix b/pkgs/by-name/li/libmpd/package.nix
new file mode 100644
index 0000000000000..bf2e6c70d2ad8
--- /dev/null
+++ b/pkgs/by-name/li/libmpd/package.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, doxygen
+, glib
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "libmpd";
+  version = "11.8.17";
+  outputs = [
+    "out"
+    "dev"
+    "devdoc"
+  ];
+
+  src = fetchurl {
+    url = "https://www.musicpd.org/download/libmpd/${finalAttrs.version}/libmpd-${finalAttrs.version}.tar.gz";
+    hash = "sha256-/iAyaw0QZB9xxGc/rmN7+SIqluFxL3HxcPyi/DS/eoM=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    doxygen
+  ];
+  buildInputs = [
+    glib
+  ];
+
+  postInstall = ''
+    make doc
+    mkdir -p $devdoc/share/devhelp/libmpd
+    cp -r doc/html $devdoc/share/devhelp/libmpd/doxygen
+  '';
+
+  meta = with lib; {
+    description = "Higher level access to MPD functions";
+    homepage = "https://www.musicpd.org/download/libmpd/";
+    changelog = "https://www.musicpd.org/download/libmpd/${finalAttrs.version}/README";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ doronbehar ];
+    platforms = platforms.all;
+    # Getting DARWIN_NULL related errors
+    broken = stdenv.isDarwin;
+  };
+})
diff --git a/pkgs/by-name/li/libmsgraph/package.nix b/pkgs/by-name/li/libmsgraph/package.nix
index a3cb929f8041c..011d4bab9a81b 100644
--- a/pkgs/by-name/li/libmsgraph/package.nix
+++ b/pkgs/by-name/li/libmsgraph/package.nix
@@ -7,23 +7,23 @@
 , ninja
 , pkg-config
 , uhttpmock_1_0
+, libxml2
 , glib
 , gnome-online-accounts
 , json-glib
-, librest_1_0
 , libsoup_3
 , gnome
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libmsgraph";
-  version = "0.2.1";
+  version = "0.2.2";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/msgraph/${lib.versions.majorMinor finalAttrs.version}/msgraph-${finalAttrs.version}.tar.xz";
-    hash = "sha256-4OWeqorj4KSOwKbC/tBHCFanCSSOkhK2odA33leS7Ls=";
+    hash = "sha256-EsyVT3ULsTes6FAP6TVdJubgDvbMqrKVDp02DpJ1gzU=";
   };
 
   nativeBuildInputs = [
@@ -36,21 +36,16 @@ stdenv.mkDerivation (finalAttrs: {
 
   buildInputs = [
     uhttpmock_1_0
+    libxml2
   ];
 
   propagatedBuildInputs = [
     glib
     gnome-online-accounts
     json-glib
-    librest_1_0
     libsoup_3
   ];
 
-  mesonFlags = [
-    # https://gitlab.gnome.org/GNOME/msgraph/-/merge_requests/9
-    "-Dc_args=-Wno-error=format-security"
-  ];
-
   postFixup = ''
     # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
     moveToOutput "share/doc/msgraph-0" "$devdoc"
diff --git a/pkgs/development/libraries/libopus/default.nix b/pkgs/by-name/li/libopus/package.nix
index d247b8b0efa6c..cdf00a244ba4b 100644
--- a/pkgs/development/libraries/libopus/default.nix
+++ b/pkgs/by-name/li/libopus/package.nix
@@ -1,19 +1,19 @@
-{ lib
-, stdenv
-, fetchpatch
-, fetchurl
-, gitUpdater
-, meson
-, python3
-, ninja
-, fixedPoint ? false
-, withCustomModes ? true
-, withIntrinsics ? stdenv.hostPlatform.isAarch || stdenv.hostPlatform.isx86
-, withAsm ? false
+{
+  lib,
+  stdenv,
+  fetchurl,
+  gitUpdater,
+  meson,
+  python3,
+  ninja,
+  fixedPoint ? false,
+  withCustomModes ? true,
+  withIntrinsics ? stdenv.hostPlatform.isAarch || stdenv.hostPlatform.isx86,
+  withAsm ? false,
 
-# tests
-, ffmpeg-headless
-, testers
+  # tests
+  ffmpeg-headless,
+  testers,
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -34,7 +34,10 @@ stdenv.mkDerivation (finalAttrs: {
     patchShebangs meson/
   '';
 
-  outputs = [ "out" "dev" ];
+  outputs = [
+    "out"
+    "dev"
+  ];
 
   nativeBuildInputs = [
     meson
@@ -69,12 +72,12 @@ stdenv.mkDerivation (finalAttrs: {
     };
   };
 
-  meta = with lib; {
+  meta = {
     description = "Open, royalty-free, highly versatile audio codec";
     homepage = "https://opus-codec.org/";
     changelog = "https://gitlab.xiph.org/xiph/opus/-/releases/v${finalAttrs.version}";
-    license = licenses.bsd3;
-    platforms = platforms.all;
-    maintainers = [ ];
+    license = lib.licenses.bsd3;
+    platforms = lib.platforms.all;
+    maintainers = with lib.maintainers; [ getchoo jopejoe1 ];
   };
 })
diff --git a/pkgs/development/libraries/libopus/test-timeout.patch b/pkgs/by-name/li/libopus/test-timeout.patch
index 76025e648d8f5..76025e648d8f5 100644
--- a/pkgs/development/libraries/libopus/test-timeout.patch
+++ b/pkgs/by-name/li/libopus/test-timeout.patch
diff --git a/pkgs/development/libraries/liboqs/fix-openssl-detection.patch b/pkgs/by-name/li/liboqs/fix-openssl-detection.patch
index 33be7188370f9..33be7188370f9 100644
--- a/pkgs/development/libraries/liboqs/fix-openssl-detection.patch
+++ b/pkgs/by-name/li/liboqs/fix-openssl-detection.patch
diff --git a/pkgs/development/libraries/liboqs/default.nix b/pkgs/by-name/li/liboqs/package.nix
index e703dc3647faa..36d9d042ca4e1 100644
--- a/pkgs/development/libraries/liboqs/default.nix
+++ b/pkgs/by-name/li/liboqs/package.nix
@@ -4,21 +4,31 @@
   fetchFromGitHub,
   cmake,
   openssl,
+  fetchpatch,
   enableStatic ? stdenv.hostPlatform.isStatic,
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "liboqs";
-  version = "0.8.0";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "open-quantum-safe";
-    repo = pname;
-    rev = version;
-    sha256 = "sha256-h3mXoGRYgPg0wKQ1u6uFP7wlEUMQd5uIBt4Hr7vjNtA=";
+    repo = "liboqs";
+    rev = finalAttrs.version;
+    hash = "sha256-zsSKFUs75K0Byxh3KVCZ8lIOf/vpbyMJXfk6fa2u+aE=";
   };
 
-  patches = [ ./fix-openssl-detection.patch ];
+  patches = [
+    ./fix-openssl-detection.patch
+    # liboqs.pc.in path were modified in this commit
+    # causing malformed path with double slashes.
+    (fetchpatch {
+      url = "https://github.com/open-quantum-safe/liboqs/commit/f0e6b8646c5eae0e8052d029079ed3efa498f220.patch";
+      hash = "sha256-tDfWzcDnFGikzq2ADEWiUgcUt1NSLWQ9/HVWA3rKuzc=";
+      revert = true;
+    })
+  ];
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ openssl ];
@@ -31,6 +41,8 @@ stdenv.mkDerivation rec {
 
   dontFixCmake = true; # fix CMake file will give an error
 
+  outputs = [ "out" "dev" ];
+
   meta = with lib; {
     description = "C library for prototyping and experimenting with quantum-resistant cryptography";
     homepage = "https://openquantumsafe.org";
@@ -38,4 +50,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     maintainers = [ maintainers.sigmanificient ];
   };
-}
+})
diff --git a/pkgs/by-name/li/libpkgconf/package.nix b/pkgs/by-name/li/libpkgconf/package.nix
index bfa79f3c25322..ffeb136862df8 100644
--- a/pkgs/by-name/li/libpkgconf/package.nix
+++ b/pkgs/by-name/li/libpkgconf/package.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "pkgconf";
-  version = "2.1.1";
+  version = "2.2.0";
 
   src = fetchurl {
     url = "https://distfiles.dereferenced.org/pkgconf/pkgconf-${finalAttrs.version}.tar.xz";
-    hash = "sha256-OiJPKszwkbd6V4Exbie57juoLAg8wuU54IlAtopE/sU=";
+    hash = "sha256-sG/2OoNTaqjC9kIvqArUXkgz9ZAmb+sU6t3+HUyFPGk=";
   };
 
   outputs = [ "out" "lib" "dev" "man" "doc" ];
diff --git a/pkgs/applications/audio/LibreArp/lv2.nix b/pkgs/by-name/li/librearp-lv2/package.nix
index b723683b7ec6b..82c78aa76d7ec 100644
--- a/pkgs/applications/audio/LibreArp/lv2.nix
+++ b/pkgs/by-name/li/librearp-lv2/package.nix
@@ -2,14 +2,14 @@
 , xcbutilcursor, xcbutilkeysyms, xcbutil, libXrandr, libXinerama, libXcursor
 , alsa-lib, libjack2, lv2, gcc-unwrapped, curl}:
 
-stdenv.mkDerivation rec {
-  pname = "LibreArp-lv2";
+stdenv.mkDerivation (finalAttrs: {
+  pname = "librearp-lv2";
   version = "2.4";
 
   src = fetchFromGitLab {
     owner = "LibreArp";
     repo = "LibreArp";
-    rev = "${version}-lv2";
+    rev = "${finalAttrs.version}-lv2";
     hash = "sha256-x+ZPiU/ZFzrXb8szMS9Ts4JEEyXYpM8CLZHT4lNJWY8=";
     fetchSubmodules = true;
   };
@@ -50,4 +50,4 @@ stdenv.mkDerivation rec {
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ magnetophon ];
   };
-}
+})
diff --git a/pkgs/applications/audio/LibreArp/default.nix b/pkgs/by-name/li/librearp/package.nix
index 0736745aaaf40..9bd1beac345d4 100644
--- a/pkgs/applications/audio/LibreArp/default.nix
+++ b/pkgs/by-name/li/librearp/package.nix
@@ -2,14 +2,14 @@
 , xcbutilcursor, xcbutilkeysyms, xcbutil, libXrandr, libXinerama, libXcursor
 , alsa-lib, libjack2, lv2, gcc-unwrapped, curl}:
 
-stdenv.mkDerivation rec {
-  pname = "LibreArp";
+stdenv.mkDerivation (finalAttrs: {
+  pname = "librearp";
   version = "2.4";
 
   src = fetchFromGitLab {
     owner = "LibreArp";
     repo = "LibreArp";
-    rev = version;
+    rev = finalAttrs.version;
     hash = "sha256-jEpES68NuHhelUq/L46CxEeadk3LbuPZ72JaGDbw8fg=";
     fetchSubmodules = true;
   };
@@ -44,10 +44,10 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description =
-      "A pattern-based arpeggio generator plugin.";
+      "A pattern-based arpeggio generator plugin";
     homepage = "https://librearp.gitlab.io/";
     license = licenses.gpl3Plus;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ magnetophon ];
   };
-}
+})
diff --git a/pkgs/by-name/li/librum/package.nix b/pkgs/by-name/li/librum/package.nix
index 928bc7e0439c0..33972b85dc05e 100644
--- a/pkgs/by-name/li/librum/package.nix
+++ b/pkgs/by-name/li/librum/package.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An application designed to make reading enjoyable and straightforward";
+    description = "Application designed to make reading enjoyable and straightforward";
     longDescription = ''
       Librum is an application designed to make reading enjoyable
       and straightforward for everyone. It's not just an e-book
diff --git a/pkgs/by-name/li/libsbml/package.nix b/pkgs/by-name/li/libsbml/package.nix
index ce895beee0060..513e72f322bc5 100644
--- a/pkgs/by-name/li/libsbml/package.nix
+++ b/pkgs/by-name/li/libsbml/package.nix
@@ -22,9 +22,9 @@ stdenv.mkDerivation (attrs: {
 
   patches = [
     # This should be in next release, remember to remove fetchpatch
-    (fetchpatch {
+    (fetchpatch { # https://github.com/sbmlteam/libsbml/pull/358
       name = "fix-xmlerror-conversion.patch";
-      url = "https://github.com/sbmlteam/libsbml/pull/358.patch";
+      url = "https://github.com/sbmlteam/libsbml/commit/de2f77ee6766fe933a1472200f5e08e7c5ba6f8c.patch";
       hash = "sha256-uirG6XJ+w0hqBUEAGDnzhHoVtJVRdN1eqBYeneKMBao=";
     })
   ];
diff --git a/pkgs/by-name/li/libscfg/package.nix b/pkgs/by-name/li/libscfg/package.nix
index d0c7426080f68..f9eb2a5b804b0 100644
--- a/pkgs/by-name/li/libscfg/package.nix
+++ b/pkgs/by-name/li/libscfg/package.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://sr.ht/~emersion/libscfg";
-    description = "A simple configuration file format";
+    description = "Simple configuration file format";
     license = licenses.mit;
     maintainers = with maintainers; [ michaeladler ];
     platforms = platforms.linux;
diff --git a/pkgs/by-name/li/libsignal-ffi/package.nix b/pkgs/by-name/li/libsignal-ffi/package.nix
index 06afbfc804080..d2c8f1f3df806 100644
--- a/pkgs/by-name/li/libsignal-ffi/package.nix
+++ b/pkgs/by-name/li/libsignal-ffi/package.nix
@@ -38,7 +38,7 @@ rustPlatform.buildRustPackage rec {
   cargoBuildFlags = [ "-p" "libsignal-ffi" ];
 
   meta = with lib; {
-    description = "A C ABI library which exposes Signal protocol logic";
+    description = "C ABI library which exposes Signal protocol logic";
     homepage = "https://github.com/signalapp/libsignal";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ niklaskorz ];
diff --git a/pkgs/by-name/li/libstrophe/package.nix b/pkgs/by-name/li/libstrophe/package.nix
index f66c15edfd21b..d8ae379859cc2 100644
--- a/pkgs/by-name/li/libstrophe/package.nix
+++ b/pkgs/by-name/li/libstrophe/package.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A simple, lightweight C library for writing XMPP clients";
+    description = "Simple, lightweight C library for writing XMPP clients";
     longDescription = ''
       libstrophe is a lightweight XMPP client library written in C. It has
       minimal dependencies and is configurable for various environments. It
diff --git a/pkgs/by-name/li/libstudxml/package.nix b/pkgs/by-name/li/libstudxml/package.nix
new file mode 100644
index 0000000000000..ceaf052eee70a
--- /dev/null
+++ b/pkgs/by-name/li/libstudxml/package.nix
@@ -0,0 +1,38 @@
+{
+  lib,
+  stdenv,
+  fetchgit,
+  build2,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "libstudxml";
+  version = "1.1.0-b.10+2";
+
+  src = fetchgit {
+    url = "https://git.codesynthesis.com/libstudxml/libstudxml.git";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-OsjMhQ3u/wLhOay7qg9sQMEhnAOdrO30dsKQ8aDWUOo=";
+  };
+
+  outputs = [
+    "out"
+    "dev"
+    "doc"
+  ];
+
+  nativeBuildInputs = [ build2 ];
+
+  # lib files are not marked as executable by default
+  postInstall = ''
+    chmod +x "$out"/lib/*
+  '';
+
+  meta = {
+    description = "A streaming XML pull parser and streaming XML serializer implementation for modern, standard C++";
+    homepage = "https://www.codesynthesis.com/projects/libstudxml/";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ tomasajt ];
+    platforms = lib.platforms.all;
+  };
+})
diff --git a/pkgs/by-name/li/libui-ng/package.nix b/pkgs/by-name/li/libui-ng/package.nix
index 80e0589ac2c12..8799750b94236 100644
--- a/pkgs/by-name/li/libui-ng/package.nix
+++ b/pkgs/by-name/li/libui-ng/package.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libui-ng";
-  version = "4.1-unstable-2024-05-03";
+  version = "4.1-unstable-2024-05-19";
 
   src = fetchFromGitHub {
     owner = "libui-ng";
     repo = "libui-ng";
-    rev = "56f1ad65f0f32bb1eb67a268cca4658fbe4567c1";
-    hash = "sha256-wo4iS/a1ErdipFDPYKvaGpO/JGtk6eU/qMLC4eUoHnA=";
+    rev = "49b04c4cf8ae4d3e38e389f446ef75170eb62762";
+    hash = "sha256-W9LnUBUKwx1x3+BEeUanisBGR2Q4dnbcMM5k8mCondM=";
   };
 
   postPatch = lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) ''
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A portable GUI library for C";
+    description = "Portable GUI library for C";
     homepage = "https://github.com/libui-ng/libui-ng";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/by-name/li/libvibrant/package.nix b/pkgs/by-name/li/libvibrant/package.nix
index f9802bddafa8e..905ad34d29ea3 100644
--- a/pkgs/by-name/li/libvibrant/package.nix
+++ b/pkgs/by-name/li/libvibrant/package.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake makeWrapper ];
 
   meta = with lib; {
-    description = "A simple library to adjust color saturation of X11 outputs";
+    description = "Simple library to adjust color saturation of X11 outputs";
     homepage = "https://github.com/libvibrant/libvibrant";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/by-name/li/licensure/package.nix b/pkgs/by-name/li/licensure/package.nix
index 476b5c18629dd..19e580df3d5bb 100644
--- a/pkgs/by-name/li/licensure/package.nix
+++ b/pkgs/by-name/li/licensure/package.nix
@@ -8,16 +8,16 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "licensure";
-  version = "0.3.2";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "chasinglogic";
     repo = "licensure";
     rev = version;
-    hash = "sha256-rOD2H9TEoZ8JCjlg6feNQiAjvroVGqrlOkDHNZKXDoE=";
+    hash = "sha256-1ncQjg/loYX9rAGP4FzI0ttd+GMPLkNPlJ6Xzb7umr0=";
   };
 
-  cargoHash = "sha256-ku0SI14pZmbhzE7RnK5kJY6tSMjRVKEMssC9e0Hq6hc=";
+  cargoHash = "sha256-449p+y7qUcTxBOttyQPt+nRtK+s9HJBoVKGdMQaszLQ=";
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl git gitls ];
 
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A FOSS License management tool for your projects";
+    description = "FOSS License management tool for your projects";
     homepage = "https://github.com/chasinglogic/licensure";
     license = licenses.gpl3Plus;
     mainProgram = "licensure";
diff --git a/pkgs/by-name/li/lightningcss/package.nix b/pkgs/by-name/li/lightningcss/package.nix
index b4d74f3bcb8a2..cf4b381ee73f3 100644
--- a/pkgs/by-name/li/lightningcss/package.nix
+++ b/pkgs/by-name/li/lightningcss/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "lightningcss";
-  version = "1.25.0";
+  version = "1.25.1";
 
   src = fetchFromGitHub {
     owner = "parcel-bundler";
     repo = "lightningcss";
     rev = "refs/tags/v${version}";
-    hash = "sha256-0no2f4aIJ4f9kSXUdaqjS4ARmVgfV5wqP407WCFeD1g=";
+    hash = "sha256-jmNN2zCAlu3qLKJs8V7/zkpGmQ5wooH9Kbnsi80ffRc=";
   };
 
-  cargoHash = "sha256-P/EP5bKDqGMBfZL+yyUXLjT9YwIpSCruFxkxIbpKIaQ=";
+  cargoHash = "sha256-d5PqkqkHDLXA/5wW7QxSUDEKvejRc3+yn73TnM07lzE=";
 
   patches = [
     # Backport fix for build error for lightningcss-napi
@@ -40,12 +40,12 @@ rustPlatform.buildRustPackage rec {
 
   passthru.updateScript = nix-update-script {};
 
-  meta = with lib; {
+  meta = {
     description = "Extremely fast CSS parser, transformer, and minifier written in Rust";
     homepage = "https://lightningcss.dev/";
     changelog = "https://github.com/parcel-bundler/lightningcss/releases/tag/v${version}";
-    license = licenses.mpl20;
-    maintainers = with maintainers; [ johnrtitor toastal ];
+    license = lib.licenses.mpl20;
+    maintainers = with lib.maintainers; [ johnrtitor toastal ];
     mainProgram = "lightningcss";
     # never built on aarch64-linux since first introduction in nixpkgs
     broken = stdenv.isLinux && stdenv.isAarch64;
diff --git a/pkgs/by-name/li/lilipod/package.nix b/pkgs/by-name/li/lilipod/package.nix
index b5d6f56768a2b..0185a25c8a489 100644
--- a/pkgs/by-name/li/lilipod/package.nix
+++ b/pkgs/by-name/li/lilipod/package.nix
@@ -52,7 +52,7 @@ buildGoModule rec {
   '';
 
   meta = {
-    description = "A very simple (as in few features) container and image manager";
+    description = "Very simple (as in few features) container and image manager";
     longDescription = ''
       Lilipod is a very simple container manager with minimal features to:
 
diff --git a/pkgs/by-name/li/limine/package.nix b/pkgs/by-name/li/limine/package.nix
index 1a004b42f2107..f313ab80863f1 100644
--- a/pkgs/by-name/li/limine/package.nix
+++ b/pkgs/by-name/li/limine/package.nix
@@ -12,7 +12,7 @@
 }:
 
 let
-  version = "7.5.1";
+  version = "7.7.2";
 in
 # The output of the derivation is a tool to create bootable images using Limine
 # as bootloader for various platforms and corresponding binary and helper files.
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
   # Packaging that in Nix is very cumbersome.
   src = fetchurl {
     url = "https://github.com/limine-bootloader/limine/releases/download/v${version}/limine-${version}.tar.gz";
-    sha256 = "sha256-aWzhUwW4799v0qZDpzzztb2LnfRYwjPXWM2dgpqwYIo=";
+    sha256 = "sha256-t3ymsKn+pFW2xOn+BKJriqx2cMbCjtnGGgvCF82/8TE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/li/lint-staged/package.nix b/pkgs/by-name/li/lint-staged/package.nix
index 8366ff1e63728..dc5b5988ed152 100644
--- a/pkgs/by-name/li/lint-staged/package.nix
+++ b/pkgs/by-name/li/lint-staged/package.nix
@@ -2,16 +2,16 @@
 
 buildNpmPackage rec {
   pname = "lint-staged";
-  version = "15.2.2";
+  version = "15.2.7";
 
   src = fetchFromGitHub {
     owner = "okonet";
     repo = "lint-staged";
     rev = "v${version}";
-    hash = "sha256-gdL/gOAHcgvKUot6MmC1rUMmcrLgLMf1ISc1oPNWJOQ=";
+    hash = "sha256-V7NJ8UWORo+APCVJmC6l6uQUazLrG94O9V4yC3McBp4=";
   };
 
-  npmDepsHash = "sha256-32E5y0s6Hm8i74zso/yOmCYWZ6y2Sx4rn8ylSb0c8qE=";
+  npmDepsHash = "sha256-9Twg9jppFkp0cpxJfBVmWRMwKsXnJ+tUBH8qMYAm1cY=";
 
   dontNpmBuild = true;
 
diff --git a/pkgs/by-name/li/linux-scripts/package.nix b/pkgs/by-name/li/linux-scripts/package.nix
new file mode 100644
index 0000000000000..f317538be7e70
--- /dev/null
+++ b/pkgs/by-name/li/linux-scripts/package.nix
@@ -0,0 +1,64 @@
+{ lib
+, linuxHeaders # Linux source tree
+, makeWrapper
+, stdenvNoCC
+
+, binutils
+, coreutils
+, gnugrep
+
+  # decompressors for possible kernel image formats
+, bzip2
+, gzip
+, lz4
+, lzop
+, xz
+, zstd
+}:
+
+let
+  commonDeps = [
+    binutils
+    coreutils
+    gnugrep
+    gzip
+    xz
+    bzip2
+    lzop
+    lz4
+    zstd
+  ];
+
+  toWrapScriptLines = scriptName: ''
+    install -Dm 0755 scripts/${scriptName} $out/bin/${scriptName}
+    wrapProgram $out/bin/${scriptName} --prefix PATH : ${lib.makeBinPath commonDeps}
+  '';
+in
+stdenvNoCC.mkDerivation
+{
+  inherit (linuxHeaders) version;
+  pname = "linux-scripts";
+
+  # These scripts will rarely change and are usually not bound to a specific
+  # version of Linux. So it is okay to just use whatever Linux version comes
+  # from `linuxHeaders.
+  src = linuxHeaders.src;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    ${toWrapScriptLines "extract-ikconfig"}
+    ${toWrapScriptLines "extract-vmlinux"}
+  '';
+
+  meta = with lib; {
+    description = "Standalone scripts from <linux>/scripts";
+    homepage = "https://www.kernel.org/";
+    license = licenses.gpl2Only;
+    maintainers = [ maintainers.phip1611 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/by-name/li/listmonk/package.nix b/pkgs/by-name/li/listmonk/package.nix
index 0a111224161ee..800540a25ea55 100644
--- a/pkgs/by-name/li/listmonk/package.nix
+++ b/pkgs/by-name/li/listmonk/package.nix
@@ -47,7 +47,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "High performance, self-hosted, newsletter and mailing list manager with a modern dashboard.";
+    description = "High performance, self-hosted, newsletter and mailing list manager with a modern dashboard";
     mainProgram = "listmonk";
     homepage = "https://github.com/knadh/listmonk";
     changelog = "https://github.com/knadh/listmonk/releases/tag/v${version}";
diff --git a/pkgs/development/tools/literate-programming/Literate/dub-lock.json b/pkgs/by-name/li/literate/dub-lock.json
index 18a1e415e5622..18a1e415e5622 100644
--- a/pkgs/development/tools/literate-programming/Literate/dub-lock.json
+++ b/pkgs/by-name/li/literate/dub-lock.json
diff --git a/pkgs/development/tools/literate-programming/Literate/default.nix b/pkgs/by-name/li/literate/package.nix
index b80f29f70d951..29b177ec53a83 100644
--- a/pkgs/development/tools/literate-programming/Literate/default.nix
+++ b/pkgs/by-name/li/literate/package.nix
@@ -5,7 +5,7 @@
 }:
 
 buildDubPackage {
-  pname = "Literate";
+  pname = "literate";
   version = "unstable-2021-01-22";
 
   src = fetchFromGitHub {
@@ -31,7 +31,7 @@ buildDubPackage {
   '';
 
   meta = {
-    description = "A literate programming tool for any language";
+    description = "Literate programming tool for any language";
     homepage = "https://zyedidia.github.io/literate/";
     license = lib.licenses.mit;
     mainProgram = "lit";
diff --git a/pkgs/by-name/li/litmusctl/package.nix b/pkgs/by-name/li/litmusctl/package.nix
index 4cdfe6384b5bd..a1ed962521ce4 100644
--- a/pkgs/by-name/li/litmusctl/package.nix
+++ b/pkgs/by-name/li/litmusctl/package.nix
@@ -7,7 +7,7 @@
 
 buildGoModule rec {
   pname = "litmusctl";
-  version = "1.6.0";
+  version = "1.7.0";
 
   nativeBuildInputs = [
     installShellFiles
@@ -21,10 +21,10 @@ buildGoModule rec {
     owner = "litmuschaos";
     repo = "litmusctl";
     rev = "${version}";
-    hash = "sha256-aJcnK4VhtqVFaSUf0A40qGb0TBKiqlgkwY2nRdfTl2E=";
+    hash = "sha256-g3g0wVjtVIF56N1gTillHMkNDHt58tpRQa2ds+3rHAE=";
   };
 
-  vendorHash = "sha256-U4dp2E2TZ3rds63PS6GzUVhb2qDSv92bf9JCkWpdLew=";
+  vendorHash = "sha256-7FYOQ89aUFPX+5NCPYKg+YGCXstQ6j9DK4V2mCgklu0=";
 
   postInstall = ''
     installShellCompletion --cmd litmusctl \
diff --git a/pkgs/by-name/li/littlefs-fuse/package.nix b/pkgs/by-name/li/littlefs-fuse/package.nix
index 81300a8a82246..c026a8b7ce071 100644
--- a/pkgs/by-name/li/littlefs-fuse/package.nix
+++ b/pkgs/by-name/li/littlefs-fuse/package.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
   meta = src.meta // {
-    description = "A FUSE wrapper that puts the littlefs in user-space";
+    description = "FUSE wrapper that puts the littlefs in user-space";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ ehmry ];
     mainProgram = "littlefs-fuse";
diff --git a/pkgs/by-name/li/live555/package.nix b/pkgs/by-name/li/live555/package.nix
index e8fb1309844b8..2a49aaa0db4dc 100644
--- a/pkgs/by-name/li/live555/package.nix
+++ b/pkgs/by-name/li/live555/package.nix
@@ -10,7 +10,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "live555";
-  version = "2024.05.05";
+  version = "2024.05.15";
 
   src = fetchurl {
     urls = [
@@ -19,7 +19,7 @@ stdenv.mkDerivation (finalAttrs: {
       "https://download.videolan.org/contrib/live555/live.${finalAttrs.version}.tar.gz"
       "mirror://sourceforge/slackbuildsdirectlinks/live.${finalAttrs.version}.tar.gz"
     ];
-    hash = "sha256-jGT1jg5pa4bwIcxUy7/svIhU2HCxx2TNMkWvBfN33nM=";
+    hash = "sha256-Mgkf5XiFBEEDTTx+YlV12wE4zpmPPqaUPv9KcEK38D0=";
   };
 
   patches = [
@@ -38,12 +38,25 @@ stdenv.mkDerivation (finalAttrs: {
     openssl
   ];
 
-  strictDeps = true;
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+    "C_COMPILER=$(CC)"
+    "CPLUSPLUS_COMPILER=$(CXX)"
+    "LIBRARY_LINK=$(AR) cr "
+    "LINK=$(CXX) -o "
+  ];
 
-  # Since NIX_CFLAGS_COMPILE does not differentiate C and C++ toolchains, we
-  # set CXXFLAGS directly
+  # Since NIX_CFLAGS_COMPILE affects both C and C++ toolchains, we set CXXFLAGS
+  # directly
   env.CXXFLAGS = "-std=c++20";
 
+  strictDeps = true;
+
+  enableParallelBuilding = true;
+
+  # required for whitespaces in makeFlags
+  __structuredAttrs = true;
+
   postPatch = ''
     substituteInPlace config.macosx-catalina \
       --replace '/usr/lib/libssl.46.dylib' "${lib.getLib openssl}/lib/libssl.dylib" \
@@ -75,19 +88,6 @@ stdenv.mkDerivation (finalAttrs: {
     runHook postConfigure
   '';
 
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-    "C_COMPILER=$(CC)"
-    "CPLUSPLUS_COMPILER=$(CXX)"
-    "LIBRARY_LINK=$(AR) cr "
-    "LINK=$(CXX) -o "
-  ];
-
-  # required for whitespaces in makeFlags
-  __structuredAttrs = true;
-
-  enableParallelBuilding = true;
-
   passthru.tests = {
     # Downstream dependency
     inherit vlc;
diff --git a/pkgs/by-name/li/livi/package.nix b/pkgs/by-name/li/livi/package.nix
index b36f08497a619..d39007f9efe99 100644
--- a/pkgs/by-name/li/livi/package.nix
+++ b/pkgs/by-name/li/livi/package.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/guidog/livi";
-    description = "A small video player targeting mobile devices (also named μPlayer)";
+    description = "Small video player targeting mobile devices (also named μPlayer)";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     mainProgram = "livi";
diff --git a/pkgs/by-name/lk/lk-jwt-service/package.nix b/pkgs/by-name/lk/lk-jwt-service/package.nix
new file mode 100644
index 0000000000000..42e4441c6a117
--- /dev/null
+++ b/pkgs/by-name/lk/lk-jwt-service/package.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "lk-jwt-service";
+  version = "0-unstable-2024-04-27";
+
+  src = fetchFromGitHub {
+    owner = "element-hq";
+    repo = "lk-jwt-service";
+    rev = "4a295044a4d0bd2af4474bf6a8a14fd0596ecf9e";
+    hash = "sha256-dN4iJ8P0u5dbZ93mp/FumcvByP7EpQhOvR+Oe4COWXQ=";
+  };
+
+  vendorHash = "sha256-9qOApmmOW+N1L/9hj9tVy0hLIUI36WL2TGWUcM3ajeM=";
+
+  postInstall = ''
+    mv $out/bin/ec-lms $out/bin/lk-jwt-service
+  '';
+
+  meta = with lib; {
+    description = "Minimal service to provide LiveKit JWTs using Matrix OpenID Connect";
+    homepage = "https://github.com/element-hq/lk-jwt-service";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ kilimnik ];
+    mainProgram = "lk-jwt-service";
+  };
+}
diff --git a/pkgs/by-name/ll/llama-cpp/package.nix b/pkgs/by-name/ll/llama-cpp/package.nix
index 5488e10a87f66..2e5514dd15f29 100644
--- a/pkgs/by-name/ll/llama-cpp/package.nix
+++ b/pkgs/by-name/ll/llama-cpp/package.nix
@@ -22,12 +22,11 @@
 , pkg-config
 , metalSupport ? stdenv.isDarwin && stdenv.isAarch64 && !openclSupport
 , vulkanSupport ? false
-, mpiSupport ? false # Increases the runtime closure by ~700M
+, rpcSupport ? false
 , vulkan-headers
 , vulkan-loader
 , ninja
 , git
-, mpi
 }:
 
 let
@@ -35,7 +34,7 @@ let
   # otherwise we get libstdc++ errors downstream.
   # cuda imposes an upper bound on the gcc version, e.g. the latest gcc compatible with cudaPackages_11 is gcc11
   effectiveStdenv = if cudaSupport then cudaPackages.backendStdenv else stdenv;
-  inherit (lib) cmakeBool cmakeFeature optionals;
+  inherit (lib) cmakeBool cmakeFeature optionals optionalString;
 
   darwinBuildInputs =
     with darwin.apple_sdk.frameworks;
@@ -72,13 +71,13 @@ let
 in
 effectiveStdenv.mkDerivation (finalAttrs: {
   pname = "llama-cpp";
-  version = "2953";
+  version = "3091";
 
   src = fetchFromGitHub {
     owner = "ggerganov";
     repo = "llama.cpp";
     rev = "refs/tags/b${finalAttrs.version}";
-    hash = "sha256-IqR0tdTdrydrMCgOfNbRnVESN3pEzti3bAuTH9i3wQQ=";
+    hash = "sha256-ppujag6Nrk/M9QMQ4mYe2iADsfKzmfKtOP8Ib7GZBmk=";
     leaveDotGit = true;
     postFetch = ''
       git -C "$out" rev-parse --short HEAD > $out/COMMIT
@@ -103,7 +102,6 @@ effectiveStdenv.mkDerivation (finalAttrs: {
 
   buildInputs = optionals effectiveStdenv.isDarwin darwinBuildInputs
     ++ optionals cudaSupport cudaBuildInputs
-    ++ optionals mpiSupport [ mpi ]
     ++ optionals openclSupport [ clblast ]
     ++ optionals rocmSupport rocmBuildInputs
     ++ optionals blasSupport [ blas ]
@@ -120,7 +118,7 @@ effectiveStdenv.mkDerivation (finalAttrs: {
     (cmakeBool "LLAMA_CUDA" cudaSupport)
     (cmakeBool "LLAMA_HIPBLAS" rocmSupport)
     (cmakeBool "LLAMA_METAL" metalSupport)
-    (cmakeBool "LLAMA_MPI" mpiSupport)
+    (cmakeBool "LLAMA_RPC" rpcSupport)
     (cmakeBool "LLAMA_VULKAN" vulkanSupport)
   ]
       ++ optionals cudaSupport [
@@ -144,6 +142,11 @@ effectiveStdenv.mkDerivation (finalAttrs: {
       ++ optionals metalSupport [
         (cmakeFeature "CMAKE_C_FLAGS" "-D__ARM_FEATURE_DOTPROD=1")
         (cmakeBool "LLAMA_METAL_EMBED_LIBRARY" true)
+      ] ++ optionals rpcSupport [
+        "-DLLAMA_RPC=ON"
+        # This is done so we can move rpc-server out of bin because llama.cpp doesn't
+        # install rpc-server in their install target.
+        "-DCMAKE_SKIP_BUILD_RPATH=ON"
       ];
 
   # upstream plans on adding targets at the cmakelevel, remove those
@@ -153,7 +156,7 @@ effectiveStdenv.mkDerivation (finalAttrs: {
     mv $out/bin/server $out/bin/llama-server
     mkdir -p $out/include
     cp $src/llama.h $out/include/
-  '';
+  '' + optionalString rpcSupport "cp bin/rpc-server $out/bin/llama-rpc-server";
 
   passthru.updateScript = nix-update-script {
     attrPath = "llama-cpp";
diff --git a/pkgs/by-name/ll/llm-ls/package.nix b/pkgs/by-name/ll/llm-ls/package.nix
index d9fb4d6f60f61..1e7aa17f6554b 100644
--- a/pkgs/by-name/ll/llm-ls/package.nix
+++ b/pkgs/by-name/ll/llm-ls/package.nix
@@ -7,7 +7,7 @@
 
 let
   pname = "llm-ls";
-  version = "0.5.2";
+  version = "0.5.3";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -16,10 +16,10 @@ rustPlatform.buildRustPackage {
     owner = "huggingface";
     repo = "llm-ls";
     rev = version;
-    sha256 = "sha256-DyPdx+nNBhOZ86GQljMYULatWny2EteNNzzO6qv1Wlk=";
+    sha256 = "sha256-ICMM2kqrHFlKt2/jmE4gum1Eb32afTJkT3IRoqcjJJ8=";
   };
 
-  cargoHash = "sha256-7McUyQjnCuV0JG65hUoR8TtB4vrjiEO1l7NXYochgG8=";
+  cargoHash = "sha256-Fat67JxTYIkxkdwGNAyTfnuLt8ofUGVJ2609sbn1frU=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/by-name/lm/lmstudio/darwin.nix b/pkgs/by-name/lm/lmstudio/darwin.nix
index 5fa30e699db4a..f08d2d1510b7f 100644
--- a/pkgs/by-name/lm/lmstudio/darwin.nix
+++ b/pkgs/by-name/lm/lmstudio/darwin.nix
@@ -10,8 +10,8 @@ stdenv.mkDerivation {
   inherit meta pname version;
 
   src = fetchurl {
-    url = "https://releases.lmstudio.ai/mac/arm64/${version}/b/latest/LM-Studio-${version}-arm64.dmg";
-    hash = "sha256-kb1XoTZjhCL1+CsV+r3/EN0srzIJ43H2VMZ779dVq1k=";
+    url = "https://releases.lmstudio.ai/mac/arm64/${version}/latest/LM-Studio-${version}-arm64.dmg";
+    hash = "sha256-byS0LNJQjs/+sf2anhTAdsXUWad9HujxmLx5uEfdlo8=";
   };
 
   nativeBuildInputs = [ undmg ];
diff --git a/pkgs/by-name/lm/lmstudio/linux.nix b/pkgs/by-name/lm/lmstudio/linux.nix
index add6274d36d4a..abca76ac032a8 100644
--- a/pkgs/by-name/lm/lmstudio/linux.nix
+++ b/pkgs/by-name/lm/lmstudio/linux.nix
@@ -7,8 +7,8 @@
 }:
 let
   src = fetchurl {
-    url = "https://releases.lmstudio.ai/linux/${version}/beta/LM_Studio-${version}.AppImage";
-    hash = "sha256-hcV8wDhulFAxHDBDKicpEGovwcsn9RaIi/idUz+YzD8=";
+    url = "https://releases.lmstudio.ai/linux/x86/${version}/beta/LM_Studio-${version}.AppImage";
+    hash = "sha256-2a3ac+0m3C/YyPM0Waia+x2Q/lodfbyHNvlbB2AHT78=";
   };
 
   appimageContents = appimageTools.extractType2 { inherit pname version src; };
diff --git a/pkgs/by-name/lm/lmstudio/package.nix b/pkgs/by-name/lm/lmstudio/package.nix
index d18c76acefd7d..962bd58a94f0a 100644
--- a/pkgs/by-name/lm/lmstudio/package.nix
+++ b/pkgs/by-name/lm/lmstudio/package.nix
@@ -5,14 +5,14 @@
 }:
 let
   pname = "lmstudio";
-  version = "0.2.22";
+  version = "0.2.25";
   meta = {
     description = "LM Studio is an easy to use desktop app for experimenting with local and open-source Large Language Models (LLMs)";
     homepage = "https://lmstudio.ai/";
     license = lib.licenses.unfree;
     mainProgram = "lmstudio";
-    maintainers = with lib.maintainers; [ drupol eeedean ];
-    platforms = lib.platforms.linux ++ [ "aarch64-darwin" ];
+    maintainers = with lib.maintainers; [ cig0 eeedean ];
+    platforms = [ "x86_64-linux" "aarch64-darwin" ];
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
   };
 in
diff --git a/pkgs/by-name/lo/local-ai/module.nix b/pkgs/by-name/lo/local-ai/module.nix
index 70f486b43b1a7..e26a3637820f8 100644
--- a/pkgs/by-name/lo/local-ai/module.nix
+++ b/pkgs/by-name/lo/local-ai/module.nix
@@ -5,7 +5,7 @@ let
 in
 {
   options.services.local-ai = {
-    enable = lib.mkEnableOption "Enable service";
+    enable = lib.mkEnableOption "local-ai";
 
     package = lib.mkPackageOption pkgs "local-ai" { };
 
diff --git a/pkgs/by-name/lo/local-ai/package.nix b/pkgs/by-name/lo/local-ai/package.nix
index 5d582f3604a65..418a9a638419e 100644
--- a/pkgs/by-name/lo/local-ai/package.nix
+++ b/pkgs/by-name/lo/local-ai/package.nix
@@ -94,13 +94,33 @@ let
     '';
   };
 
+  llama-cpp-rpc = (llama-cpp-grpc.overrideAttrs (prev: {
+    name = "llama-cpp-rpc";
+    cmakeFlags = prev.cmakeFlags ++ [
+      (lib.cmakeBool "LLAMA_AVX" false)
+      (lib.cmakeBool "LLAMA_AVX2" false)
+      (lib.cmakeBool "LLAMA_AVX512" false)
+      (lib.cmakeBool "LLAMA_FMA" false)
+      (lib.cmakeBool "LLAMA_F16C" false)
+      (lib.cmakeBool "LLAMA_RPC" true)
+    ];
+    postPatch = prev.postPatch + ''
+      sed -i examples/rpc/CMakeLists.txt \
+        -e '$a\install(TARGETS rpc-server RUNTIME)'
+    '';
+  })).override {
+    cudaSupport = false;
+    openclSupport = false;
+    blasSupport = true; # TODO: set to false, when dropping 23.11 support
+  };
+
   llama-cpp-grpc = (llama-cpp.overrideAttrs (final: prev: {
     name = "llama-cpp-grpc";
     src = fetchFromGitHub {
       owner = "ggerganov";
       repo = "llama.cpp";
-      rev = "c12452c7aec8a02264afc00196a13caa591a13ac";
-      hash = "sha256-Kji8dlz7OfhPeNXnYgBHzpGGMhCsRLJ9d+EFf77Q6Co=";
+      rev = "74f33adf5f8b20b08fc5a6aa17ce081abe86ef2f";
+      hash = "sha256-hSdHhsC5Q8pLEC2bj8Gke4/ffCts5l7LtYa9RDrpGBI=";
       fetchSubmodules = true;
     };
     postPatch = prev.postPatch + ''
@@ -253,8 +273,8 @@ let
     src = fetchFromGitHub {
       owner = "ggerganov";
       repo = "whisper.cpp";
-      rev = "73d13ad19a8c9c4da4f405088a85169b1a171e66";
-      hash = "sha256-7g/J3a3behGgcJXy9ryAYXxgOYnsRMlGmux13re28AY=";
+      rev = "22d46b7ba4620e2db1281e210d0186863cffcec0";
+      hash = "sha256-JC3GHRBjFvfQSUWRdAcMc0pol54RsqUF1+zIZYAsbC4=";
     };
 
     nativeBuildInputs = [ cmake pkg-config ]
@@ -285,8 +305,8 @@ let
     src = fetchFromGitHub {
       owner = "go-skynet";
       repo = "go-bert.cpp";
-      rev = "6abe312cded14042f6b7c3cd8edf082713334a4d";
-      hash = "sha256-lh9cvXc032Eq31kysxFOkRd0zPjsCznRl0tzg9P2ygo=";
+      rev = "710044b124545415f555e4260d16b146c725a6e4";
+      hash = "sha256-UNrs3unYjvSzCVaVISFFBDD+s37lmN6/7ajmGNcYgrU=";
       fetchSubmodules = true;
     };
     buildFlags = [ "libgobert.a" ];
@@ -372,18 +392,18 @@ let
       stdenv;
 
   pname = "local-ai";
-  version = "2.15.0";
+  version = "2.16.0";
   src = fetchFromGitHub {
     owner = "go-skynet";
     repo = "LocalAI";
     rev = "v${version}";
-    hash = "sha256-AjNgfZjVxlw0LtPbUTbJuLcUfqJdPzn6vOmUDz/v7Jc=";
+    hash = "sha256-3SfU68wGyYIX0haKfuHGKHhthuDSeSdr18ReDkFzhH0=";
   };
 
   self = buildGoModule.override { stdenv = effectiveStdenv; } {
     inherit pname version src;
 
-    vendorHash = "sha256-+ZPZkOpaTsKrL2HDOEtAr8sT6uqTiQXo/XS+MBNZq5E=";
+    vendorHash = "sha256-UjqEsgRZ+xv4Thwh4u3juvg3JI3+RdGyCZlsk7ddgTU=";
 
     env.NIX_CFLAGS_COMPILE = lib.optionalString with_stablediffusion " -isystem ${opencv}/include/opencv4";
 
@@ -403,12 +423,20 @@ let
           -e 's;git clone.*go-tiny-dream$;${cp} ${if with_tinydream then go-tiny-dream else go-tiny-dream.src} sources/go-tiny-dream;' \
           -e 's, && git checkout.*,,g' \
           -e '/mod download/ d' \
-          -e '/^ALL_GRPC_BACKENDS+=backend-assets\/grpc\/llama-cpp-/ d' \
+          -e '/^ALL_GRPC_BACKENDS+=backend-assets\/grpc\/llama-cpp-fallback/ d' \
+          -e '/^ALL_GRPC_BACKENDS+=backend-assets\/grpc\/llama-cpp-avx/ d' \
+          -e '/^ALL_GRPC_BACKENDS+=backend-assets\/grpc\/llama-cpp-cuda/ d' \
+
       '';
 
     postConfigure = ''
+      shopt -s extglob
       mkdir -p backend-assets/grpc
-      cp ${llama-cpp-grpc}/bin/*grpc-server backend-assets/grpc/llama-cpp
+      cp ${llama-cpp-grpc}/bin/?(llama-cpp-)grpc-server backend-assets/grpc/llama-cpp-avx2
+      cp ${llama-cpp-rpc}/bin/?(llama-cpp-)grpc-server backend-assets/grpc/llama-cpp-grpc
+
+      mkdir -p backend-assets/util
+      cp ${llama-cpp-rpc}/bin/?(llama-cpp-)rpc-server backend-assets/util/llama-cpp-rpc-server
     '';
 
     buildInputs = [ ]
@@ -496,7 +524,7 @@ let
       inherit
         go-tiny-dream go-rwkv go-bert go-llama gpt4all go-piper
         llama-cpp-grpc whisper-cpp go-tiny-dream-ncnn espeak-ng' piper-phonemize
-        piper-tts';
+        piper-tts' llama-cpp-rpc;
     };
 
     passthru.features = {
diff --git a/pkgs/by-name/lo/loco-cli/package.nix b/pkgs/by-name/lo/loco-cli/package.nix
index f5a6958b276bf..66d2a468bdb4c 100644
--- a/pkgs/by-name/lo/loco-cli/package.nix
+++ b/pkgs/by-name/lo/loco-cli/package.nix
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage {
 
   meta = with lib; {
     mainProgram = "loco";
-    description = "Loco CLI is a powerful command-line tool designed to streamline the process of generating Loco websites.";
+    description = "Loco CLI is a powerful command-line tool designed to streamline the process of generating Loco websites";
     homepage = "https://loco.rs";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ sebrut ];
diff --git a/pkgs/by-name/lo/logiops/package.nix b/pkgs/by-name/lo/logiops/package.nix
index fea73c79268b5..cdd75e4963f31 100644
--- a/pkgs/by-name/lo/logiops/package.nix
+++ b/pkgs/by-name/lo/logiops/package.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation (oldAttrs: {
   pname = "logiops";
-  version = "0.3.3";
+  version = "0.3.4";
 
   src = fetchFromGitHub {
     owner = "PixlOne";
     repo = "logiops";
     rev = "v${oldAttrs.version}";
-    sha256 = "sha256-9nFTud5szQN8jpG0e/Bkp+I9ELldfo66SdfVCUTuekg=";
+    sha256 = "sha256-IL7jQA3lGhxVLYCFRgeXdadaBlQr+Op9cedHBlLUCWY=";
     # In v0.3.0, the `ipcgull` submodule was added as a dependency
     # https://github.com/PixlOne/logiops/releases/tag/v0.3.0
     fetchSubmodules = true;
diff --git a/pkgs/applications/misc/logseq/default.nix b/pkgs/by-name/lo/logseq/package.nix
index 5fe74bbe204a7..793e305ac3a45 100644
--- a/pkgs/applications/misc/logseq/default.nix
+++ b/pkgs/by-name/lo/logseq/package.nix
@@ -3,8 +3,10 @@
 , fetchurl
 , appimageTools
 , makeWrapper
-# graphs will not sync without matching upstream's major electron version
-, electron_27
+# Notice: graphs will not sync without matching upstream's major electron version
+#         the specific electron version is set at top-level file to preserve override interface.
+#         whenever updating this package also sync electron version at top-level file.
+, electron
 , autoPatchelfHook
 , git
 , nix-update-script
@@ -59,7 +61,7 @@ in {
 
   postFixup = ''
     # set the env "LOCAL_GIT_DIRECTORY" for dugite so that we can use the git in nixpkgs
-    makeWrapper ${electron_27}/bin/electron $out/bin/${pname} \
+    makeWrapper ${electron}/bin/electron $out/bin/${pname} \
       --set "LOCAL_GIT_DIRECTORY" ${git} \
       --add-flags $out/share/${pname}/resources/app \
       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
@@ -68,7 +70,7 @@ in {
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "A local-first, non-linear, outliner notebook for organizing and sharing your personal knowledge base";
+    description = "Local-first, non-linear, outliner notebook for organizing and sharing your personal knowledge base";
     homepage = "https://github.com/logseq/logseq";
     changelog = "https://github.com/logseq/logseq/releases/tag/${version}";
     license = lib.licenses.agpl3Plus;
diff --git a/pkgs/by-name/lo/loupe/package.nix b/pkgs/by-name/lo/loupe/package.nix
index 346da941ba2ec..c5de24d28958c 100644
--- a/pkgs/by-name/lo/loupe/package.nix
+++ b/pkgs/by-name/lo/loupe/package.nix
@@ -78,7 +78,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/loupe";
-    description = "A simple image viewer application written with GTK4 and Rust";
+    description = "Simple image viewer application written with GTK4 and Rust";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ jk ] ++ teams.gnome.members;
     platforms = platforms.unix;
diff --git a/pkgs/by-name/lo/louvre/package.nix b/pkgs/by-name/lo/louvre/package.nix
index 0435e553d9d45..5b7ad4a2f64fe 100644
--- a/pkgs/by-name/lo/louvre/package.nix
+++ b/pkgs/by-name/lo/louvre/package.nix
@@ -22,9 +22,9 @@
 }:
 stdenv.mkDerivation (self: {
   pname = "louvre";
-  version = "1.2.1-2";
+  version = "2.1.0-1";
   rev = "v${self.version}";
-  hash = "sha256-jHMgn6EwWt9GMT8JvIUtUPbn9o1DZCzxiYC7RnoGZv0=";
+  hash = "sha256-qRvAryZ6SIhh5yDugcosVYOM2Tq0XPuaA6ib8/jWxNI=";
 
   src = fetchFromGitHub {
     inherit (self) rev hash;
diff --git a/pkgs/by-name/lp/LPCNet/package.nix b/pkgs/by-name/lp/LPCNet/package.nix
new file mode 100644
index 0000000000000..0d94114f4e6dc
--- /dev/null
+++ b/pkgs/by-name/lp/LPCNet/package.nix
@@ -0,0 +1,56 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchurl,
+  cmake,
+  codec2,
+  # for tests
+  octave,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "LPCNet";
+  version = "0.5";
+
+  src = fetchFromGitHub {
+    owner = "drowe67";
+    repo = "LPCNet";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-tHZLKXmuM86A6OpfS3CRRjhFbqj1Q/w1w56msdgLHb0=";
+  };
+  passthru = {
+    # Prebuilt neural network model that is needed during the build - can be overrwritten
+    nnmodel = fetchurl {
+      url = "http://rowetel.com/downloads/deep/lpcnet_191005_v1.0.tgz";
+      hash = "sha256-UJRAkkdR/dh/+qVoPuPd3ZN69cgzuRBMzOZdUWFJJsg=";
+    };
+  };
+  preConfigure = ''
+    mkdir build
+    cp \
+      ${finalAttrs.finalPackage.passthru.nnmodel} \
+      build/${finalAttrs.finalPackage.passthru.nnmodel.name}
+  '';
+
+  prePatch = ''
+    patchShebangs *.sh unittest/*.sh
+  '';
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ codec2 ];
+  nativeCheckInputs = [ octave ];
+
+  doCheck = true;
+  preCheck = ''
+    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}/build/source/build/src"
+  '';
+
+  meta = with lib; {
+    description = "Experimental Neural Net speech coding for FreeDV";
+    homepage = "https://github.com/drowe67/LPCNet";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ doronbehar ];
+    platforms = platforms.all;
+  };
+})
diff --git a/pkgs/by-name/lp/lprint/package.nix b/pkgs/by-name/lp/lprint/package.nix
index deefd68a73b4d..e45c8a0e30916 100644
--- a/pkgs/by-name/lp/lprint/package.nix
+++ b/pkgs/by-name/lp/lprint/package.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "LPrint implements printing for a variety of common label and receipt printers connected via network or USB.";
+    description = "LPrint implements printing for a variety of common label and receipt printers connected via network or USB";
     mainProgram = "lprint";
     homepage = "https://github.com/michaelrsweet/lprint";
     license = licenses.asl20;
diff --git a/pkgs/by-name/ls/lse/package.nix b/pkgs/by-name/ls/lse/package.nix
new file mode 100644
index 0000000000000..52d050e5ba7c3
--- /dev/null
+++ b/pkgs/by-name/ls/lse/package.nix
@@ -0,0 +1,40 @@
+{
+  lib,
+  stdenv,
+  bash,
+  fetchFromGitHub,
+  makeWrapper,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "lse";
+  version = "4.14nw";
+
+  src = fetchFromGitHub {
+    owner = "diego-treitos";
+    repo = "linux-smart-enumeration";
+    rev = "refs/tags/${version}";
+    hash = "sha256-qGLmrbyeyhHG6ONs7TJLTm68xpvxB1iAnMUApfTSqEk=";
+  };
+
+  buildInputs = [ bash ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp lse.sh $out/bin/lse.sh
+    wrapProgram $out/bin/lse.sh \
+      --prefix PATH : ${lib.makeBinPath [ bash ]}
+  '';
+
+  meta = with lib; {
+    description = "Linux enumeration tool with verbosity levels";
+    homepage = "https://github.com/diego-treitos/linux-smart-enumeration";
+    changelog = "https://github.com/diego-treitos/linux-smart-enumeration/releases/tag/${version}";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "lse.sh";
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/by-name/lu/lubelogger/package.nix b/pkgs/by-name/lu/lubelogger/package.nix
index 24b5d9992be0a..eec0acada0f22 100644
--- a/pkgs/by-name/lu/lubelogger/package.nix
+++ b/pkgs/by-name/lu/lubelogger/package.nix
@@ -28,7 +28,7 @@ buildDotnetModule rec {
   executables = [ "CarCareTracker" ]; # This wraps "$out/lib/$pname/foo" to `$out/bin/foo`.
 
   meta = with lib; {
-    description = "A vehicle service records and maintainence tracker";
+    description = "Vehicle service records and maintainence tracker";
     longDescription = ''
       A self-hosted, open-source, unconventionally-named vehicle maintenance records and fuel mileage tracker.
 
diff --git a/pkgs/by-name/lu/lunacy/package.nix b/pkgs/by-name/lu/lunacy/package.nix
index 1e3ad510bf9ef..bb03aae9a2700 100644
--- a/pkgs/by-name/lu/lunacy/package.nix
+++ b/pkgs/by-name/lu/lunacy/package.nix
@@ -1,28 +1,30 @@
-{ stdenv
-, lib
-, fetchurl
-, dpkg
-, autoPatchelfHook
-, zlib
-, libgcc
-, fontconfig
-, libX11
-, lttng-ust
-, icu
-, libICE
-, libSM
-, libXcursor
-, openssl
-, imagemagick
+{
+  stdenv,
+  lib,
+  fetchurl,
+  dpkg,
+  autoPatchelfHook,
+  zlib,
+  libgcc,
+  fontconfig,
+  libX11,
+  lttng-ust,
+  icu,
+  libICE,
+  libSM,
+  libXcursor,
+  openssl,
+  imagemagick,
+  makeWrapper,
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "lunacy";
-  version = "9.6.0";
+  version = "9.6.2";
 
   src = fetchurl {
     url = "https://lcdn.icons8.com/setup/Lunacy_${finalAttrs.version}.deb";
-    hash = "sha256-PvQGDUC9BsIql4xMM1OH45gq3YtJMKJcYg4N2o18hno=";
+    hash = "sha256-iTne+vUnv+O/+QUKgSUr+ACdZpXrvRQkZmqghJH1fDw=";
   };
 
   unpackCmd = ''
@@ -47,19 +49,22 @@ stdenv.mkDerivation (finalAttrs: {
   nativeBuildInputs = [
     dpkg
     autoPatchelfHook
+    makeWrapper
   ];
 
   # adds to the RPATHS of all shared objects (exe and libs)
-  appendRunpaths = map (pkg: (lib.getLib pkg) + "/lib") [
-    icu
-    openssl
-    stdenv.cc.libc
-    stdenv.cc.cc
-  ] ++ [
-    # technically, this should be in runtimeDependencies but will not work as
-    # "lib" is appended to all elements in the array
-    "${placeholder "out"}/lib/lunacy"
-  ];
+  appendRunpaths =
+    map (pkg: (lib.getLib pkg) + "/lib") [
+      icu
+      openssl
+      stdenv.cc.libc
+      stdenv.cc.cc
+    ]
+    ++ [
+      # technically, this should be in runtimeDependencies but will not work as
+      # "lib" is appended to all elements in the array
+      "${placeholder "out"}/lib/lunacy"
+    ];
 
   # will add to the RPATH of executable only
   runtimeDependencies = [
@@ -82,33 +87,35 @@ stdenv.mkDerivation (finalAttrs: {
     # Prepare the desktop icon, the upstream icon is 200x200 but the hicolor theme does not
     # support this resolution. Nearest sizes are 192x192 and 256x256.
     ${imagemagick}/bin/convert "opt/icons8/lunacy/Assets/LunacyLogo.png" -resize 192x192 lunacy.png
-    install -D lunacy.png "$out/share/icons/hicolor/192x192/apps/${finalAttrs.pname}.png"
+    install -D lunacy.png "$out/share/icons/hicolor/192x192/apps/lunacy.png"
 
     runHook postInstall
   '';
 
   postInstall = ''
     substituteInPlace $out/share/applications/lunacy.desktop \
-      --replace "Exec=/opt/icons8/lunacy/Lunacy" "Exec=${finalAttrs.pname}" \
-      --replace "Icon=/opt/icons8/lunacy/Assets/LunacyLogo.png" "Icon=${finalAttrs.pname}"
+      --replace-fail "Exec=/opt/icons8/lunacy/Lunacy" "Exec=lunacy" \
+      --replace-fail "Icon=/opt/icons8/lunacy/Assets/LunacyLogo.png" "Icon=lunacy"
   '';
 
   postFixup = ''
     mkdir $out/bin
 
-    # Fixes runtime error regarding missing libSkiaSharp.so (which is in the same directory as the binary).
-    ln -s "$out/lib/lunacy/Lunacy" "$out/bin/${finalAttrs.pname}"
+    # The wrapper is needed instead of a symlink to prevent a random "Unsupported file format" when running the app.
+    makeWrapper "$out/lib/lunacy/Lunacy" "$out/bin/lunacy"
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Free design software that keeps your flow with AI tools and built-in graphics";
     homepage = "https://icons8.com/lunacy";
     changelog = "https://lunacy.docs.icons8.com/release-notes/";
-    license = licenses.unfree;
-    maintainers = [ maintainers.eliandoran ];
-    platforms = platforms.linux;
-    sourceProvenance = [ sourceTypes.binaryBytecode ];
+    license = lib.licenses.unfree;
+    maintainers = with lib.maintainers; [
+      eliandoran
+      luftmensch-luftmensch
+    ];
+    platforms = lib.platforms.linux;
+    sourceProvenance = [ lib.sourceTypes.binaryBytecode ];
     mainProgram = "lunacy";
   };
-
 })
diff --git a/pkgs/by-name/lu/lunar-client/package.nix b/pkgs/by-name/lu/lunar-client/package.nix
index 4a727834f6706..8ff8671f5c11c 100644
--- a/pkgs/by-name/lu/lunar-client/package.nix
+++ b/pkgs/by-name/lu/lunar-client/package.nix
@@ -6,11 +6,11 @@
 
 appimageTools.wrapType2 rec {
   pname = "lunar-client";
-  version = "3.2.7";
+  version = "3.2.10";
 
   src = fetchurl {
     url = "https://launcherupdates.lunarclientcdn.com/Lunar%20Client-${version}.AppImage";
-    hash = "sha512-dziL9lnpsiJ2BV+jNOhVMvZtYY/K4chyiZB5/fMCw9/4/3Boe/DO7s2steEOhxEsPqUcWaf1Sjs6DFSX/CHUqw==";
+    hash = "sha512-XsHMe4+TeTowxnMRby4W44YRa3Q/OgDf2QOVMjPel4wy3O9TSfNBTzpP7NM07BKVDmNJ7GJrF8WMXewfT3YU8g==";
   };
 
   extraInstallCommands =
@@ -29,7 +29,7 @@ appimageTools.wrapType2 rec {
   passthru.updateScript = ./update.sh;
 
   meta = with lib; {
-    description = "Free Minecraft client with mods, cosmetics, and performance boost.";
+    description = "Free Minecraft client with mods, cosmetics, and performance boost";
     homepage = "https://www.lunarclient.com/";
     license = with licenses; [ unfree ];
     mainProgram = "lunar-client";
diff --git a/pkgs/by-name/lu/luneta/package.nix b/pkgs/by-name/lu/luneta/package.nix
index 02e9a0724da2b..698e8b84a3285 100644
--- a/pkgs/by-name/lu/luneta/package.nix
+++ b/pkgs/by-name/lu/luneta/package.nix
@@ -35,7 +35,7 @@ buildDubPackage rec {
 
   meta = {
     changelog = "https://github.com/fbeline/luneta/releases/tag/${src.rev}";
-    description = "An interactive filter and fuzzy finder for the command-line";
+    description = "Interactive filter and fuzzy finder for the command-line";
     homepage = "https://github.com/fbeline/luneta";
     license = lib.licenses.gpl2Only;
     mainProgram = "luneta";
diff --git a/pkgs/by-name/lu/lutgen/package.nix b/pkgs/by-name/lu/lutgen/package.nix
index dc1955b684677..beac59da3af4f 100644
--- a/pkgs/by-name/lu/lutgen/package.nix
+++ b/pkgs/by-name/lu/lutgen/package.nix
@@ -30,7 +30,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A blazingly fast interpolated LUT generator and applicator for arbitrary and popular color palettes";
+    description = "Blazingly fast interpolated LUT generator and applicator for arbitrary and popular color palettes";
     homepage = "https://github.com/ozwaldorf/lutgen-rs";
     maintainers = with maintainers; [ zzzsy donovanglover ];
     mainProgram = "lutgen";
diff --git a/pkgs/by-name/lx/lx-music-desktop/package.nix b/pkgs/by-name/lx/lx-music-desktop/package.nix
index 0886f7282b77b..6f55e146d287d 100644
--- a/pkgs/by-name/lx/lx-music-desktop/package.nix
+++ b/pkgs/by-name/lx/lx-music-desktop/package.nix
@@ -13,24 +13,24 @@
 
 let
   pname = "lx-music-desktop";
-  version = "2.7.0";
+  version = "2.8.0";
 
   buildUrl = version: arch: "https://github.com/lyswhut/lx-music-desktop/releases/download/v${version}/lx-music-desktop_${version}_${arch}.deb";
 
   srcs = {
     x86_64-linux = fetchurl {
       url = buildUrl version "amd64";
-      hash = "sha256-+mCAFfiJwa+RQ/9vnSPDrC1LoLIoZyFUEJAF6sXdqRM=";
+      hash = "sha256-Kt/foI7NrXV+Ex2DxLRyP3bVFw0Bx4TLuMyBMZD0bDw=";
     };
 
     aarch64-linux = fetchurl {
       url = buildUrl version "arm64";
-      hash = "sha256-fDlgHJqoZLGnUuZeZGdocYLbsE02QBrWPKS31fbGThk=";
+      hash = "sha256-4X4fXb2V/FigArcIgpgkNBa2+mOemPOx/HkxPlx//gw=";
     };
 
     armv7l-linux = fetchurl {
       url = buildUrl version "armv7l";
-      hash = "sha256-X6EXsBvTbPGXCJ+ektMCMGDG2zqGKBvWT/TwjGFL3ug=";
+      hash = "sha256-uWEQYOT4wxg6HWoL18mEpWF8pONl5Bwf/bnoN4X+A7c=";
     };
   };
 
@@ -76,7 +76,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A music software based on Electron and Vue";
+    description = "Music software based on Electron and Vue";
     homepage = "https://github.com/lyswhut/lx-music-desktop";
     changelog = "https://github.com/lyswhut/lx-music-desktop/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/by-name/lx/lxd-ui/package.nix b/pkgs/by-name/lx/lxd-ui/package.nix
index 2475a653c3ccc..b200b1ea0d909 100644
--- a/pkgs/by-name/lx/lxd-ui/package.nix
+++ b/pkgs/by-name/lx/lxd-ui/package.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lxd-ui";
-  version = "0.8";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "canonical";
     repo = "lxd-ui";
     rev = "refs/tags/${version}";
-    hash = "sha256-oD/GPm84oFXHcZ8vTUzNgQinrHwNuvpeVjsrp8ibIZY=";
+    hash = "sha256-XLHLWD7iH4A5+MaFYiMILnjPGN565gBRpimFoOJMRtI=";
   };
 
   offlineCache = fetchYarnDeps {
diff --git a/pkgs/by-name/lx/lxgw-neoxihei/package.nix b/pkgs/by-name/lx/lxgw-neoxihei/package.nix
index b3175e871b816..e6aa12fc5c2fd 100644
--- a/pkgs/by-name/lx/lxgw-neoxihei/package.nix
+++ b/pkgs/by-name/lx/lxgw-neoxihei/package.nix
@@ -5,11 +5,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "lxgw-neoxihei";
-  version = "1.121";
+  version = "1.123.2";
 
   src = fetchurl {
     url = "https://github.com/lxgw/LxgwNeoXiHei/releases/download/v${version}/LXGWNeoXiHei.ttf";
-    hash = "sha256-3+th4alWV+i9kRT4F5tx8kOD4j8emcN2melcyN/mMMQ=";
+    hash = "sha256-soVFPeoU4Rovk4xpXd90CjzQ1y1rx1OT/4eKCZNTd4Q=";
   };
 
   dontUnpack = true;
@@ -23,7 +23,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Simplified Chinese sans-serif font derived from IPAex Gothic";
+    description = "Simplified Chinese sans-serif font derived from IPAex Gothic";
     homepage = "https://github.com/lxgw/LxgwNeoXiHei";
     license = licenses.ipa;
     platforms = platforms.all;
diff --git a/pkgs/by-name/lx/lxgw-wenkai-tc/package.nix b/pkgs/by-name/lx/lxgw-wenkai-tc/package.nix
index 7b93d94b42cef..d4b2d8969597e 100644
--- a/pkgs/by-name/lx/lxgw-wenkai-tc/package.nix
+++ b/pkgs/by-name/lx/lxgw-wenkai-tc/package.nix
@@ -22,7 +22,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/lxgw/LxgwWenKaiTC";
-    description = "The Traditional Chinese Edition of LXGW WenKai.";
+    description = "Traditional Chinese Edition of LXGW WenKai";
     license = licenses.ofl;
     platforms = platforms.all;
     maintainers = with maintainers; [ lebensterben ];
diff --git a/pkgs/by-name/m1/m1ddc/package.nix b/pkgs/by-name/m1/m1ddc/package.nix
new file mode 100644
index 0000000000000..9ea2659aba2b4
--- /dev/null
+++ b/pkgs/by-name/m1/m1ddc/package.nix
@@ -0,0 +1,43 @@
+{ stdenv
+, darwin
+, fetchFromGitHub
+, lib
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "m1ddc";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "waydabber";
+    repo = "m1ddc";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-obs2qQvSkIDsWhCXJOF1Geiqqy19KDf0InyxRVod4hk=";
+  };
+
+  postPatch = ''
+    substituteInPlace sources/ioregistry.m \
+        --replace-fail kIOMainPortDefault kIOMasterPortDefault
+  '';
+
+  buildInputs = with darwin.apple_sdk_11_0.frameworks; [
+    CoreDisplay
+    Foundation
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    cp m1ddc $out/bin
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Control external displays using DDC/CI on Apple Silicon Macs";
+    homepage = "https://github.com/waydabber/m1ddc";
+    license = lib.licenses.mit;
+    mainProgram = "m1ddc";
+    maintainers = [ lib.maintainers.joanmassachs ];
+    platforms = [ "aarch64-darwin" ];
+  };
+})
diff --git a/pkgs/by-name/ma/maa-assistant-arknights/fastdeploy-ppocr.nix b/pkgs/by-name/ma/maa-assistant-arknights/fastdeploy-ppocr.nix
index a8a4b2f53160b..53ac9fa3bfc11 100644
--- a/pkgs/by-name/ma/maa-assistant-arknights/fastdeploy-ppocr.nix
+++ b/pkgs/by-name/ma/maa-assistant-arknights/fastdeploy-ppocr.nix
@@ -1,14 +1,15 @@
-{ stdenv
-, config
-, pkgs
-, lib
-, fetchFromGitHub
-, cmake
-, eigen
-, onnxruntime
-, opencv
-, cudaSupport ? config.cudaSupport
-, cudaPackages ? { }
+{
+  stdenv,
+  config,
+  pkgs,
+  lib,
+  fetchFromGitHub,
+  cmake,
+  eigen,
+  onnxruntime,
+  opencv,
+  cudaSupport ? config.cudaSupport,
+  cudaPackages ? { },
 }@inputs:
 
 let
@@ -23,41 +24,49 @@ effectiveStdenv.mkDerivation (finalAttrs: {
   version = "0-unstable-2023-10-09";
 
   src = fetchFromGitHub {
-    owner = "Cryolitia";
+    owner = "MaaAssistantArknights";
     repo = "FastDeploy";
-    # follows https://github.com/MaaAssistantArknights/MaaDeps/blob/master/vcpkg-overlay/ports/maa-fastdeploy/portfile.cmake#L4
-    rev = "2e68908141f6950bc5d22ba84f514e893cc238ea";
-    hash = "sha256-BWO4lKZhwNG6mbkC70hPgMNjabTnEV5XMo0bLV/gvQs=";
+    # follows but not fully follows https://github.com/MaaAssistantArknights/MaaDeps/blob/master/vcpkg-overlay/ports/maa-fastdeploy/portfile.cmake#L4
+    rev = "0db6000aaac250824266ac37451f43ce272d80a3";
+    hash = "sha256-5TItnPDc5WShpZAgBYeqgI9KKkk3qw/M8HPMlq/H4BM=";
   };
 
-  outputs = [ "out" "cmake" ];
+  outputs = [
+    "out"
+    "cmake"
+  ];
 
   nativeBuildInputs = [
     cmake
     eigen
-  ] ++ lib.optionals cudaSupport [
-    cudaPackages.cuda_nvcc
-  ];
+  ] ++ lib.optionals cudaSupport [ cudaPackages.cuda_nvcc ];
 
-  buildInputs = [
-    onnxruntime
-    opencv
-  ] ++ lib.optionals cudaSupport (with cudaPackages; [
-    cuda_cccl # cub/cub.cuh
-    libcublas # cublas_v2.h
-    libcurand # curand.h
-    libcusparse # cusparse.h
-    libcufft # cufft.h
-    cudnn # cudnn.h
-    cuda_cudart
-  ]);
+  buildInputs =
+    [
+      onnxruntime
+      opencv
+    ]
+    ++ lib.optionals cudaSupport (
+      with cudaPackages;
+      [
+        cuda_cccl # cub/cub.cuh
+        libcublas # cublas_v2.h
+        libcurand # curand.h
+        libcusparse # cusparse.h
+        libcufft # cufft.h
+        cudnn # cudnn.h
+        cuda_cudart
+      ]
+    );
 
-  cmakeFlags = [
-    (lib.cmakeFeature "CMAKE_BUILD_TYPE" "None")
-    (lib.cmakeBool "BUILD_SHARED_LIBS" true)
-  ] ++ lib.optionals cudaSupport [
-    (lib.cmakeFeature "CMAKE_CUDA_ARCHITECTURES" cudaArchitecturesString)
-  ];
+  cmakeFlags =
+    [
+      (lib.cmakeFeature "CMAKE_BUILD_TYPE" "None")
+      (lib.cmakeBool "BUILD_SHARED_LIBS" true)
+    ]
+    ++ lib.optionals cudaSupport [
+      (lib.cmakeFeature "CMAKE_CUDA_ARCHITECTURES" cudaArchitecturesString)
+    ];
 
   postInstall = ''
     mkdir $cmake
@@ -67,7 +76,7 @@ effectiveStdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     description = "MaaAssistantArknights stripped-down version of FastDeploy";
     homepage = "https://github.com/MaaAssistantArknights/FastDeploy";
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
     license = licenses.asl20;
     broken = cudaSupport && stdenv.hostPlatform.system != "x86_64-linux";
   };
diff --git a/pkgs/by-name/ma/maa-assistant-arknights/package.nix b/pkgs/by-name/ma/maa-assistant-arknights/package.nix
index c53c52562db8c..27ef0e428cc50 100644
--- a/pkgs/by-name/ma/maa-assistant-arknights/package.nix
+++ b/pkgs/by-name/ma/maa-assistant-arknights/package.nix
@@ -1,24 +1,26 @@
-{ lib
-, config
-, callPackage
-, stdenv
-, fetchFromGitHub
-, asio
-, cmake
-, eigen
-, libcpr
-, onnxruntime
-, opencv
-, isBeta ? false
-, cudaSupport ? config.cudaSupport
-, cudaPackages ? { }
+{
+  lib,
+  config,
+  callPackage,
+  stdenv,
+  overrideSDK,
+  fetchFromGitHub,
+  asio,
+  cmake,
+  libcpr,
+  onnxruntime,
+  opencv,
+  isBeta ? false,
+  cudaSupport ? config.cudaSupport,
+  cudaPackages ? { },
 }:
 
 let
   fastdeploy = callPackage ./fastdeploy-ppocr.nix { };
   sources = lib.importJSON ./pin.json;
 in
-stdenv.mkDerivation (finalAttr: {
+# https://github.com/NixOS/nixpkgs/issues/314160
+(if stdenv.isDarwin then overrideSDK stdenv "11.0" else stdenv).mkDerivation (finalAttr: {
   pname = "maa-assistant-arknights" + lib.optionalString isBeta "-beta";
   version = if isBeta then sources.beta.version else sources.stable.version;
 
@@ -29,71 +31,58 @@ stdenv.mkDerivation (finalAttr: {
     hash = if isBeta then sources.beta.hash else sources.stable.hash;
   };
 
-  # https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=maa-assistant-arknights
-  postPatch = ''
-    substituteInPlace CMakeLists.txt \
-      --replace-fail 'RUNTIME DESTINATION .' ' ' \
-      --replace-fail 'LIBRARY DESTINATION .' ' ' \
-      --replace-fail 'PUBLIC_HEADER DESTINATION .' ' '
-
-    substituteInPlace CMakeLists.txt \
-      --replace-fail 'find_package(asio ' '# find_package(asio ' \
-      --replace-fail 'asio::asio' ' '
-
-    shopt -s globstar nullglob
-
-    substituteInPlace src/MaaCore/**/{*.h,*.cpp,*.hpp,*.cc} \
-      --replace 'onnxruntime/core/session/' ""
-    substituteInPlace CMakeLists.txt \
-      --replace-fail 'ONNXRuntime' 'onnxruntime'
-
-    cp -v ${fastdeploy.cmake}/Findonnxruntime.cmake cmake/
-  '';
-
   nativeBuildInputs = [
     asio
     cmake
     fastdeploy.cmake
-  ] ++ lib.optionals cudaSupport [
-    cudaPackages.cuda_nvcc
-  ];
+  ] ++ lib.optionals cudaSupport [ cudaPackages.cuda_nvcc ];
 
-  buildInputs = [
-    fastdeploy
-    libcpr
-    onnxruntime
-    opencv
-  ] ++ lib.optionals cudaSupport (with cudaPackages; [
-    cuda_cccl # cub/cub.cuh
-    libcublas # cublas_v2.h
-    libcurand # curand.h
-    libcusparse # cusparse.h
-    libcufft # cufft.h
-    cudnn # cudnn.h
-    cuda_cudart
-  ]);
+  buildInputs =
+    [
+      fastdeploy
+      libcpr
+      onnxruntime
+      opencv
+    ]
+    ++ lib.optionals cudaSupport (
+      with cudaPackages;
+      [
+        cuda_cccl # cub/cub.cuh
+        libcublas # cublas_v2.h
+        libcurand # curand.h
+        libcusparse # cusparse.h
+        libcufft # cufft.h
+        cudnn # cudnn.h
+        cuda_cudart
+      ]
+    );
 
   cmakeFlags = [
-    (lib.cmakeFeature "CMAKE_BUILD_TYPE" "None")
-    (lib.cmakeBool "USE_MAADEPS" false)
     (lib.cmakeBool "BUILD_SHARED_LIBS" true)
-    (lib.cmakeBool "INSTALL_RESOURCE" true)
+    (lib.cmakeBool "INSTALL_FLATTEN" false)
     (lib.cmakeBool "INSTALL_PYTHON" true)
+    (lib.cmakeBool "INSTALL_RESOURCE" true)
+    (lib.cmakeBool "USE_MAADEPS" false)
+    (lib.cmakeFeature "CMAKE_BUILD_TYPE" "None")
     (lib.cmakeFeature "MAA_VERSION" "v${finalAttr.version}")
   ];
 
   passthru.updateScript = ./update.sh;
 
+  postPatch = ''
+    cp -v ${fastdeploy.cmake}/Findonnxruntime.cmake cmake/
+  '';
+
   postInstall = ''
     mkdir -p $out/share/${finalAttr.pname}
     mv $out/{Python,resource} $out/share/${finalAttr.pname}
   '';
 
   meta = with lib; {
-    description = "An Arknights assistant";
+    description = "Arknights assistant";
     homepage = "https://github.com/MaaAssistantArknights/MaaAssistantArknights";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ Cryolitia ];
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
   };
 })
diff --git a/pkgs/by-name/ma/maa-assistant-arknights/pin.json b/pkgs/by-name/ma/maa-assistant-arknights/pin.json
index c6056d3c9deb6..8c2eabfcaefd1 100644
--- a/pkgs/by-name/ma/maa-assistant-arknights/pin.json
+++ b/pkgs/by-name/ma/maa-assistant-arknights/pin.json
@@ -1,10 +1,10 @@
 {
   "stable": {
-    "version": "5.2.3",
-    "hash": "sha256-fjlvP5PPmSSNYefYRrEBVdhbN3yZ0pCbvIe763U5y5o="
+    "version": "5.3.1",
+    "hash": "sha256-4Bz9r4UcaUI5v1upwdD0HclXIUBcNpfnA2iWwofk1zw="
   },
   "beta": {
-    "version": "5.2.3",
-    "hash": "sha256-fjlvP5PPmSSNYefYRrEBVdhbN3yZ0pCbvIe763U5y5o="
+    "version": "5.3.1",
+    "hash": "sha256-4Bz9r4UcaUI5v1upwdD0HclXIUBcNpfnA2iWwofk1zw="
   }
 }
diff --git a/pkgs/by-name/ma/maa-cli/package.nix b/pkgs/by-name/ma/maa-cli/package.nix
index 47949052b883f..254e10da2303b 100644
--- a/pkgs/by-name/ma/maa-cli/package.nix
+++ b/pkgs/by-name/ma/maa-cli/package.nix
@@ -1,14 +1,16 @@
-{ lib
-, stdenv
-, rustPlatform
-, fetchFromGitHub
-, installShellFiles
-, makeWrapper
-, pkg-config
-, openssl
-, maa-assistant-arknights
-, android-tools
-, git
+{
+  lib,
+  stdenv,
+  rustPlatform,
+  fetchFromGitHub,
+  installShellFiles,
+  makeWrapper,
+  pkg-config,
+  openssl,
+  darwin,
+  maa-assistant-arknights,
+  android-tools,
+  git,
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -28,13 +30,22 @@ rustPlatform.buildRustPackage rec {
     pkg-config
   ];
 
-  buildInputs = [
-    openssl
-  ];
+  buildInputs =
+    [ openssl ]
+    ++ lib.optionals stdenv.isDarwin (
+      with darwin.apple_sdk.frameworks;
+      [
+        Security
+        SystemConfiguration
+      ]
+    );
 
   # https://github.com/MaaAssistantArknights/maa-cli/pull/126
   buildNoDefaultFeatures = true;
-  buildFeatures = [ "git2" "core_installer" ];
+  buildFeatures = [
+    "git2"
+    "core_installer"
+  ];
 
   cargoHash = "sha256-iy9myT3bVW1TXCZx3ddiiDoDXx5BWqeQnSsJ97bc4IA=";
 
@@ -47,9 +58,12 @@ rustPlatform.buildRustPackage rec {
     mv $out/bin/maa $out/share/maa-assistant-arknights/
 
     makeWrapper $out/share/maa-assistant-arknights/maa $out/bin/maa \
-      --prefix PATH : "${lib.makeBinPath [
-        android-tools git
-      ]}"
+      --prefix PATH : "${
+        lib.makeBinPath [
+          android-tools
+          git
+        ]
+      }"
 
     installShellCompletion --cmd maa \
       --bash <($out/bin/maa complete bash) \
@@ -62,10 +76,10 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A simple CLI for MAA by Rust";
+    description = "Simple CLI for MAA by Rust";
     homepage = "https://github.com/MaaAssistantArknights/maa-cli";
     license = licenses.agpl3Only;
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ Cryolitia ];
     mainProgram = "maa";
   };
diff --git a/pkgs/by-name/ma/mac-robber/package.nix b/pkgs/by-name/ma/mac-robber/package.nix
index 977d6bd1bfa39..d86a180ca504a 100644
--- a/pkgs/by-name/ma/mac-robber/package.nix
+++ b/pkgs/by-name/ma/mac-robber/package.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A digital investigation tool that collects data from allocated files in a mounted file system";
+    description = "Digital investigation tool that collects data from allocated files in a mounted file system";
     mainProgram = "mac-robber";
     homepage = "https://www.sleuthkit.org/mac-robber/";
     maintainers = with maintainers; [ d3vil0p3r ];
diff --git a/pkgs/by-name/ma/mactop/package.nix b/pkgs/by-name/ma/mactop/package.nix
new file mode 100644
index 0000000000000..0d2730fd4dd47
--- /dev/null
+++ b/pkgs/by-name/ma/mactop/package.nix
@@ -0,0 +1,34 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+}:
+
+buildGoModule rec {
+  pname = "mactop";
+  version = "0.1.8";
+
+  src = fetchFromGitHub {
+    owner = "context-labs";
+    repo = "mactop";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-BcBUOI5EE04ZTPoHGrNQjctsDFbMoe/6MZaLj/58c34=";
+  };
+
+  vendorHash = "sha256-/KecVx4Gp776t8gFSO29E1q9v29nwrKIWZYCpj7IlSo=";
+
+  ldflags = [
+    "-s"
+    "-w"
+  ];
+
+  meta = {
+    description = "Terminal-based monitoring tool 'top' designed to display real-time metrics for Apple Silicon chips";
+    homepage = "https://github.com/context-labs/mactop";
+    changelog = "https://github.com/context-labs/mactop/releases/tag/${src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+    mainProgram = "mactop";
+    platforms = [ "aarch64-darwin" ];
+  };
+}
diff --git a/pkgs/by-name/ma/majima/package.nix b/pkgs/by-name/ma/majima/package.nix
index d2ff843cd66af..810936ecf5a00 100644
--- a/pkgs/by-name/ma/majima/package.nix
+++ b/pkgs/by-name/ma/majima/package.nix
@@ -1,16 +1,16 @@
-{ lib, fetchFromGitLab, rustPlatform }:
-rustPlatform.buildRustPackage rec {
+{ lib, fetchFromSourcehut, rustPlatform }:
+rustPlatform.buildRustPackage {
   pname = "majima";
-  version = "0.4.0";
+  version = "0.5.0";
 
-  src = fetchFromGitLab {
-    owner = "gumball-overall";
+  src = fetchFromSourcehut {
+    owner = "~cucumber-zoom";
     repo = "majima";
-    rev = version;
-    hash = "sha256-S62DQfvZFg8C26YG+fIVJj5cJ6mz73JXSgdu5yoK0Yo=";
+    rev = "0f32dceeaf09c082cf33ab31b40d3bfc45aaa6f8";
+    hash = "sha256-P5E0Wiy3mNPRCQ/bsIW4fG7LnPSPRXmW7pnbgl0/lBQ=";
   };
 
-  cargoHash = "sha256-zMQO6McnnGbp52A9n/h6yZTU9VH7vak2TSP0HLqDlKw=";
+  cargoHash = "sha256-sblSlmXkiJkVGbrMU6HgtvYnAd48SlUOgDwB6ASMFsQ=";
 
   meta = {
     description = "Generate random usernames quickly and in various formats";
diff --git a/pkgs/by-name/ma/makima/package.nix b/pkgs/by-name/ma/makima/package.nix
index 92192f9a7adde..804eecde76857 100644
--- a/pkgs/by-name/ma/makima/package.nix
+++ b/pkgs/by-name/ma/makima/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec{
   pname = "makima";
-  version = "0.8.4";
+  version = "0.9.3";
 
   src = fetchFromGitHub {
     owner = "cyber-sushi";
     repo = "makima";
     rev = "v${version}";
-    hash = "sha256-11BSfnfD9JFsIwk7fHp4MM5/7UzZJHCHbOWisyQZS7s=";
+    hash = "sha256-esZCFMeIRoafR7vQbnyf3Mo18trVZdIy9rvAvTHfrLA=";
   };
 
-  cargoHash = "sha256-cvd1sGzCWi269y7k0JubOmyTaNhrALAq3vv3al2Dznc=";
+  cargoHash = "sha256-NXiK+cimQaYpzY3WSHUlYUWcXOLWQ5TwGuZKh+OB+go=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ udev ];
diff --git a/pkgs/by-name/ma/mako/package.nix b/pkgs/by-name/ma/mako/package.nix
index ad518f00e582d..dbd6b7a08f77b 100644
--- a/pkgs/by-name/ma/mako/package.nix
+++ b/pkgs/by-name/ma/mako/package.nix
@@ -1,7 +1,21 @@
-{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, scdoc
-, systemd, pango, cairo, gdk-pixbuf, jq, bash
-, wayland, wayland-protocols
-, wrapGAppsHook3 }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, scdoc
+, systemd
+, pango
+, cairo
+, gdk-pixbuf
+, jq
+, bash
+, wayland
+, wayland-scanner
+, wayland-protocols
+, wrapGAppsHook3
+}:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "mako";
@@ -14,7 +28,9 @@ stdenv.mkDerivation (finalAttrs: {
     sha256 = "sha256-QtYtondP7E5QXLRnmcaOQlAm9fKXctfjxeUFqK6FnnE=";
   };
 
-  nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-protocols wrapGAppsHook3 ];
+  strictDeps = true;
+  depsBuildBuild = [ pkg-config ];
+  nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-protocols wrapGAppsHook3 wayland-scanner ];
   buildInputs = [ systemd pango cairo gdk-pixbuf wayland ];
 
   mesonFlags = [
@@ -29,7 +45,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A lightweight Wayland notification daemon";
+    description = "Lightweight Wayland notification daemon";
     homepage = "https://wayland.emersion.fr/mako/";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ dywedir synthetica ];
diff --git a/pkgs/by-name/ma/maltego/package.nix b/pkgs/by-name/ma/maltego/package.nix
index 749a426c47640..3af5602ca8c97 100644
--- a/pkgs/by-name/ma/maltego/package.nix
+++ b/pkgs/by-name/ma/maltego/package.nix
@@ -71,7 +71,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://www.maltego.com";
-    description = "An open source intelligence and forensics application, enabling to easily gather information about DNS, domains, IP addresses, websites, persons, and so on";
+    description = "Open source intelligence and forensics application, enabling to easily gather information about DNS, domains, IP addresses, websites, persons, and so on";
     mainProgram = "maltego";
     maintainers = with maintainers; [ emilytrau d3vil0p3r ];
     platforms = platforms.unix;
diff --git a/pkgs/by-name/ma/malwoverview/package.nix b/pkgs/by-name/ma/malwoverview/package.nix
index 9724c4b162be0..4028ae8fac3ce 100644
--- a/pkgs/by-name/ma/malwoverview/package.nix
+++ b/pkgs/by-name/ma/malwoverview/package.nix
@@ -5,7 +5,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "malwoverview";
-  version = "5.4.3";
+  version = "5.4.4";
   pyproject = true;
 
   src = fetchFromGitHub {
diff --git a/pkgs/by-name/ma/mangareader/package.nix b/pkgs/by-name/ma/mangareader/package.nix
new file mode 100644
index 0000000000000..456803218816a
--- /dev/null
+++ b/pkgs/by-name/ma/mangareader/package.nix
@@ -0,0 +1,52 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  cmake,
+  kdePackages,
+  nix-update-script,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "mangareader";
+  version = "2.2.1";
+
+  src = fetchFromGitHub {
+    owner = "g-fb";
+    repo = "mangareader";
+    rev = version;
+    hash = "sha256-XX0VaXVYmAs5vmgwslflKIYx1peITp4VmReLkv1nV3I=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    kdePackages.extra-cmake-modules
+    kdePackages.wrapQtAppsHook
+  ];
+
+  buildInputs = with kdePackages; [
+    qtbase
+    kio
+    ki18n
+    kxmlgui
+    kconfig
+    karchive
+    kcoreaddons
+    kconfigwidgets
+  ];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "Qt manga reader for local files";
+    homepage = "https://github.com/g-fb/mangareader";
+    changelog = "https://github.com/g-fb/mangareader/releases/tag/${src.rev}";
+    mainProgram = "mangareader";
+    platforms = lib.platforms.linux;
+    license = with lib.licenses; [
+      gpl3Plus
+      cc-by-sa-40
+    ];
+    maintainers = with lib.maintainers; [ zendo ];
+  };
+}
diff --git a/pkgs/by-name/ma/manix/package.nix b/pkgs/by-name/ma/manix/package.nix
index aca3846761bb8..bdf05833c73df 100644
--- a/pkgs/by-name/ma/manix/package.nix
+++ b/pkgs/by-name/ma/manix/package.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-45cb0yO/ypGLcvEgPOkN6Py99yqK09xnCmMOLOOYYSA=";
 
   meta = with lib; {
-    description = "A fast CLI documentation searcher for Nix";
+    description = "Fast CLI documentation searcher for Nix";
     homepage = "https://github.com/nix-community/manix";
     license = licenses.mpl20;
     maintainers = with maintainers; [ iogamaster lecoqjacob ];
diff --git a/pkgs/by-name/ma/manticoresearch/package.nix b/pkgs/by-name/ma/manticoresearch/package.nix
index cf9cf4e596552..b6022a04303d9 100644
--- a/pkgs/by-name/ma/manticoresearch/package.nix
+++ b/pkgs/by-name/ma/manticoresearch/package.nix
@@ -28,7 +28,7 @@ let
     nativeBuildInputs = [ cmake ];
     cmakeFlags = [ "-DAPI_ONLY=ON" ];
     meta = {
-      description = "A column-oriented storage and secondary indexing library";
+      description = "Column-oriented storage and secondary indexing library";
       homepage = "https://github.com/manticoresoftware/columnar/";
       license = lib.licenses.asl20;
       platforms = lib.platforms.all;
diff --git a/pkgs/by-name/ma/marcel/package.nix b/pkgs/by-name/ma/marcel/package.nix
index 9c91553fdf3ad..d2468fcb6fab4 100644
--- a/pkgs/by-name/ma/marcel/package.nix
+++ b/pkgs/by-name/ma/marcel/package.nix
@@ -6,14 +6,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "marcel";
-  version = "0.27.2";
+  version = "0.29.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "geophile";
     repo = "marcel";
     rev = "refs/tags/v${version}";
-    hash = "sha256-jzb4kSrcN+pLFkWYy0hc7NCCextWgZQuf3P+kiouEfY=";
+    hash = "sha256-hUI5dUqelmRuk65s67rJXrZoPDWAcnNVIHlzxAgRExs=";
   };
 
   nativeBuildInputs = with python3Packages; [
@@ -39,7 +39,7 @@ python3Packages.buildPythonApplication rec {
     '';
 
   meta = with lib; {
-    description = "A modern shell";
+    description = "Modern shell";
     homepage = "https://github.com/geophile/marcel";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ kud ];
diff --git a/pkgs/by-name/ma/marge-bot/package.nix b/pkgs/by-name/ma/marge-bot/package.nix
index b564622271d31..f5946f4b7ed13 100644
--- a/pkgs/by-name/ma/marge-bot/package.nix
+++ b/pkgs/by-name/ma/marge-bot/package.nix
@@ -16,7 +16,7 @@ python3.pkgs.buildPythonApplication rec {
   };
 
   postPatch = ''
-    substituteInPlace setup.cfg --replace "--flake8 --pylint --cov=marge" ""
+    substituteInPlace setup.cfg --replace-fail "--flake8 --pylint --cov=marge" ""
   '';
 
   nativeBuildInputs = [
@@ -30,17 +30,22 @@ python3.pkgs.buildPythonApplication rec {
     requests
   ];
 
-  nativeCheckInputs = with python3.pkgs; [ pytestCheckHook ];
+  nativeCheckInputs = with python3.pkgs; [ pytestCheckHook pendulum ];
   disabledTests = [
     # test broken when run under Nix:
     #   "unittest.mock.InvalidSpecError: Cannot spec a Mock object."
     "test_get_mr_ci_status"
   ];
+  disabledTestPaths = [
+    # test errors due to API mismatch in test setup:
+    #   "ImportError: cannot import name 'set_test_now' from 'pendulum.helpers'"
+    "tests/test_interval.py"
+  ];
 
   pythonImportsCheck = [ "marge" ];
 
   meta = with lib; {
-    description = "A merge bot for GitLab";
+    description = "Merge bot for GitLab";
     homepage = "https://gitlab.com/marge-org/marge-bot";
     changelog = "https://gitlab.com/marge-org/marge-bot/-/blob/${src.rev}/CHANGELOG.md";
     license = licenses.bsd3;
diff --git a/pkgs/by-name/ma/mariadb-connector-java/package.nix b/pkgs/by-name/ma/mariadb-connector-java/package.nix
index b0a805a717e34..3fa6f7a5186c5 100644
--- a/pkgs/by-name/ma/mariadb-connector-java/package.nix
+++ b/pkgs/by-name/ma/mariadb-connector-java/package.nix
@@ -6,19 +6,18 @@
 
 maven.buildMavenPackage rec {
   pname = "mariadb-connector-java";
-  version = "3.3.3";
+  version = "3.4.0";
 
   src = fetchFromGitHub {
     owner = "mariadb-corporation";
     repo = "mariadb-connector-j";
     rev = "refs/tags/${version}";
-    hash = "sha256-fvqVHjLYLO6reIkQ+SQMEXOw88MDZyNV7T8w0uFgnPg=";
+    hash = "sha256-4DsRTXjSKgC/mz3divnqdioFQnqgQXwRKNv4xxvH0H8=";
   };
 
   mvnHash = "sha256-7O+G5HT6mtp12zWL3Gn12KPVUwp3GMaWGvXX6Sg1+6k=";
 
-  # Disable tests because they require networking
-  mvnParameters = "-DskipTests";
+  doCheck = false; # Requires networking
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/by-name/ma/markdown-oxide/package.nix b/pkgs/by-name/ma/markdown-oxide/package.nix
index 439f845a1ada7..58a1453ef7fdb 100644
--- a/pkgs/by-name/ma/markdown-oxide/package.nix
+++ b/pkgs/by-name/ma/markdown-oxide/package.nix
@@ -22,7 +22,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A markdown LSP server inspired by Obsidian";
+    description = "Markdown LSP server inspired by Obsidian";
     homepage = "https://github.com/Feel-ix-343/markdown-oxide";
     license = with licenses; [ cc0 ];
     maintainers = with maintainers; [ linsui ];
diff --git a/pkgs/by-name/ma/marked-man/package-lock.json b/pkgs/by-name/ma/marked-man/package-lock.json
new file mode 100644
index 0000000000000..ad2a7ca847509
--- /dev/null
+++ b/pkgs/by-name/ma/marked-man/package-lock.json
@@ -0,0 +1,387 @@
+{
+  "name": "marked-man",
+  "version": "2.1.0",
+  "lockfileVersion": 3,
+  "requires": true,
+  "packages": {
+    "": {
+      "name": "marked-man",
+      "version": "2.1.0",
+      "license": "MIT",
+      "dependencies": {
+        "marked": "^12.0.1",
+        "read-pkg-up": "^11.0.0"
+      },
+      "bin": {
+        "marked-man": "bin/marked-man.js"
+      },
+      "devDependencies": {
+        "@kapouer/eslint-config": "^2.0.0"
+      }
+    },
+    "node_modules/@babel/code-frame": {
+      "version": "7.24.2",
+      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz",
+      "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==",
+      "dependencies": {
+        "@babel/highlight": "^7.24.2",
+        "picocolors": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-validator-identifier": {
+      "version": "7.24.5",
+      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz",
+      "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==",
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/highlight": {
+      "version": "7.24.5",
+      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz",
+      "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==",
+      "dependencies": {
+        "@babel/helper-validator-identifier": "^7.24.5",
+        "chalk": "^2.4.2",
+        "js-tokens": "^4.0.0",
+        "picocolors": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@kapouer/eslint-config": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/@kapouer/eslint-config/-/eslint-config-2.0.0.tgz",
+      "integrity": "sha512-a7+NvsaV5PotHLpTorMnEljBHm4l/4tW+hvvH7yZz6PvOVD89adYnjZ8wod7eD9p45MrJWyWDkUAm9mQ4jZoPg==",
+      "dev": true,
+      "dependencies": {
+        "@kapouer/eslint-plugin-no-return-in-loop": "^1.0.0"
+      }
+    },
+    "node_modules/@kapouer/eslint-plugin-no-return-in-loop": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/@kapouer/eslint-plugin-no-return-in-loop/-/eslint-plugin-no-return-in-loop-1.0.0.tgz",
+      "integrity": "sha512-IXQp8N68L2fkk7p7RckBBhT/KwAX04GooIGjwzmY5THQanQvsmJpYgwC7A1Io2XDXBJzlGelQkP/C1SRM/aq8w==",
+      "dev": true
+    },
+    "node_modules/@types/normalize-package-data": {
+      "version": "2.4.4",
+      "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
+      "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA=="
+    },
+    "node_modules/ansi-styles": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+      "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+      "dependencies": {
+        "color-convert": "^1.9.0"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/chalk": {
+      "version": "2.4.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+      "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+      "dependencies": {
+        "ansi-styles": "^3.2.1",
+        "escape-string-regexp": "^1.0.5",
+        "supports-color": "^5.3.0"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/color-convert": {
+      "version": "1.9.3",
+      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+      "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+      "dependencies": {
+        "color-name": "1.1.3"
+      }
+    },
+    "node_modules/color-name": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+      "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+    },
+    "node_modules/escape-string-regexp": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+      "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+      "engines": {
+        "node": ">=0.8.0"
+      }
+    },
+    "node_modules/find-up-simple": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.0.tgz",
+      "integrity": "sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/function-bind": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-flag": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+      "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/hasown": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+      "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+      "dependencies": {
+        "function-bind": "^1.1.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/hosted-git-info": {
+      "version": "7.0.2",
+      "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz",
+      "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==",
+      "dependencies": {
+        "lru-cache": "^10.0.1"
+      },
+      "engines": {
+        "node": "^16.14.0 || >=18.0.0"
+      }
+    },
+    "node_modules/index-to-position": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-0.1.2.tgz",
+      "integrity": "sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/is-core-module": {
+      "version": "2.13.1",
+      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+      "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
+      "dependencies": {
+        "hasown": "^2.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/js-tokens": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+      "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+    },
+    "node_modules/lru-cache": {
+      "version": "10.2.2",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz",
+      "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==",
+      "engines": {
+        "node": "14 || >=16.14"
+      }
+    },
+    "node_modules/marked": {
+      "version": "12.0.2",
+      "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz",
+      "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==",
+      "bin": {
+        "marked": "bin/marked.js"
+      },
+      "engines": {
+        "node": ">= 18"
+      }
+    },
+    "node_modules/normalize-package-data": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.1.tgz",
+      "integrity": "sha512-6rvCfeRW+OEZagAB4lMLSNuTNYZWLVtKccK79VSTf//yTY5VOCgcpH80O+bZK8Neps7pUnd5G+QlMg1yV/2iZQ==",
+      "dependencies": {
+        "hosted-git-info": "^7.0.0",
+        "is-core-module": "^2.8.1",
+        "semver": "^7.3.5",
+        "validate-npm-package-license": "^3.0.4"
+      },
+      "engines": {
+        "node": "^16.14.0 || >=18.0.0"
+      }
+    },
+    "node_modules/parse-json": {
+      "version": "8.1.0",
+      "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.1.0.tgz",
+      "integrity": "sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==",
+      "dependencies": {
+        "@babel/code-frame": "^7.22.13",
+        "index-to-position": "^0.1.2",
+        "type-fest": "^4.7.1"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/picocolors": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+      "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+    },
+    "node_modules/read-pkg": {
+      "version": "9.0.1",
+      "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz",
+      "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==",
+      "dependencies": {
+        "@types/normalize-package-data": "^2.4.3",
+        "normalize-package-data": "^6.0.0",
+        "parse-json": "^8.0.0",
+        "type-fest": "^4.6.0",
+        "unicorn-magic": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/read-pkg-up": {
+      "version": "11.0.0",
+      "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-11.0.0.tgz",
+      "integrity": "sha512-LOVbvF1Q0SZdjClSefZ0Nz5z8u+tIE7mV5NibzmE9VYmDe9CaBbAVtz1veOSZbofrdsilxuDAYnFenukZVp8/Q==",
+      "deprecated": "Renamed to read-package-up",
+      "dependencies": {
+        "find-up-simple": "^1.0.0",
+        "read-pkg": "^9.0.0",
+        "type-fest": "^4.6.0"
+      },
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/semver": {
+      "version": "7.6.0",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+      "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+      "dependencies": {
+        "lru-cache": "^6.0.0"
+      },
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/semver/node_modules/lru-cache": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+      "dependencies": {
+        "yallist": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/spdx-correct": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
+      "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
+      "dependencies": {
+        "spdx-expression-parse": "^3.0.0",
+        "spdx-license-ids": "^3.0.0"
+      }
+    },
+    "node_modules/spdx-exceptions": {
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
+      "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w=="
+    },
+    "node_modules/spdx-expression-parse": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+      "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+      "dependencies": {
+        "spdx-exceptions": "^2.1.0",
+        "spdx-license-ids": "^3.0.0"
+      }
+    },
+    "node_modules/spdx-license-ids": {
+      "version": "3.0.17",
+      "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz",
+      "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg=="
+    },
+    "node_modules/supports-color": {
+      "version": "5.5.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+      "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+      "dependencies": {
+        "has-flag": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/type-fest": {
+      "version": "4.18.1",
+      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.18.1.tgz",
+      "integrity": "sha512-qXhgeNsX15bM63h5aapNFcQid9jRF/l3ojDoDFmekDQEUufZ9U4ErVt6SjDxnHp48Ltrw616R8yNc3giJ3KvVQ==",
+      "engines": {
+        "node": ">=16"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/unicorn-magic": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz",
+      "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==",
+      "engines": {
+        "node": ">=18"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/validate-npm-package-license": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+      "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+      "dependencies": {
+        "spdx-correct": "^3.0.0",
+        "spdx-expression-parse": "^3.0.0"
+      }
+    },
+    "node_modules/yallist": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+    }
+  }
+}
diff --git a/pkgs/by-name/ma/marked-man/package.nix b/pkgs/by-name/ma/marked-man/package.nix
new file mode 100644
index 0000000000000..6de1f49c4374a
--- /dev/null
+++ b/pkgs/by-name/ma/marked-man/package.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildNpmPackage
+, fetchFromGitHub
+}:
+
+buildNpmPackage rec {
+  pname = "marked-man";
+  version = "2.1.0";
+
+  src = fetchFromGitHub {
+    owner = "kapouer";
+    repo = "marked-man";
+    rev = version;
+    hash = "sha256-RzPKahYxBdWZi1SwIv7Ju1cAQ4s0ANkCivFJItPYGCY=";
+  };
+
+  # https://github.com/kapouer/marked-man/issues/37
+  prePatch = ''
+    cp ${./package-lock.json} ./package-lock.json
+  '';
+
+  npmDepsHash = "sha256-8m0Xgq3O69hbSQArSrU/gbJvBEGP6rHK4to16QkXG6M=";
+
+  dontNpmBuild = true;
+
+  meta = {
+    description = "Markdown to roff wrapper around marked";
+    homepage = "https://github.com/kapouer/marked-man";
+    changelog = "https://github.com/kapouer/marked-man/blob/${version}/CHANGES.md";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ atemu ];
+    mainProgram = "marked-man";
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/by-name/ma/marwaita-x/package.nix b/pkgs/by-name/ma/marwaita-x/package.nix
index 85dfb775dc134..ddeeb5e39b514 100644
--- a/pkgs/by-name/ma/marwaita-x/package.nix
+++ b/pkgs/by-name/ma/marwaita-x/package.nix
@@ -10,13 +10,13 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "marwaita-x";
-  version = "1.0";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "darkomarko42";
     repo = "marwaita-x";
     rev = finalAttrs.version;
-    sha256 = "sha256-uSJfrM1QOTTV03WS6BpQh3GCgkW4+9w3aw+giwiCYWU=";
+    sha256 = "sha256-x5b3aaasYbxFGvdNNF6vIrF/ZZWBGbdS2kEuB1rwOlA=";
   };
 
   buildInputs = [
@@ -39,7 +39,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "A new version for Marwaita GTK theme";
+    description = "New version for Marwaita GTK theme";
     homepage = "https://www.pling.com/p/2044790/";
     license = lib.licenses.gpl3Only;
     platforms = lib.platforms.unix;
diff --git a/pkgs/by-name/ma/massdns/package.nix b/pkgs/by-name/ma/massdns/package.nix
new file mode 100644
index 0000000000000..9b90c674adb75
--- /dev/null
+++ b/pkgs/by-name/ma/massdns/package.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, nix-update-script
+}:
+stdenv.mkDerivation rec {
+  pname = "massdns";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "blechschmidt";
+    repo = "massdns";
+    rev = "v${version}";
+    hash = "sha256-hrnAg5ErPt93RV4zobRGVtcKt4aM2tC52r08T7+vRGc=";
+  };
+
+  makeFlags = [
+    "PREFIX=$(out)"
+    "PROJECT_FLAGS=-DMASSDNS_REVISION='\"v${version}\"'"
+  ];
+  buildFlags = if stdenv.isLinux then "all" else "nolinux";
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = with lib; {
+    description = "Resolve large amounts of domain names";
+    homepage = "https://github.com/blechschmidt/massdns";
+    changelog = "https://github.com/blechschmidt/massdns/releases/tag/v${version}";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ geoffreyfrogeye ];
+    mainProgram = "massdns";
+    platforms = platforms.all;
+    # error: use of undeclared identifier 'MSG_NOSIGNAL'
+    badPlatforms = platforms.darwin;
+  };
+}
diff --git a/pkgs/by-name/ma/mathemagix/package.nix b/pkgs/by-name/ma/mathemagix/package.nix
index f9c53759dfb7e..76873464d6291 100644
--- a/pkgs/by-name/ma/mathemagix/package.nix
+++ b/pkgs/by-name/ma/mathemagix/package.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A free computer algebra and analysis system consisting of a high level language with a compiler and a series of mathematical libraries";
+    description = "Free computer algebra and analysis system consisting of a high level language with a compiler and a series of mathematical libraries";
     homepage = "http://www.mathemagix.org/";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ drupol ];
diff --git a/pkgs/by-name/ma/matrix-hook/package.nix b/pkgs/by-name/ma/matrix-hook/package.nix
index c492217f00c35..05e78621ee15d 100644
--- a/pkgs/by-name/ma/matrix-hook/package.nix
+++ b/pkgs/by-name/ma/matrix-hook/package.nix
@@ -15,7 +15,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A simple webhook for matrix";
+    description = "Simple webhook for matrix";
     mainProgram = "matrix-hook";
     homepage = "https://github.com/pinpox/matrix-hook";
     license = licenses.gpl3;
diff --git a/pkgs/by-name/ma/matrix-media-repo/package.nix b/pkgs/by-name/ma/matrix-media-repo/package.nix
new file mode 100644
index 0000000000000..63e0f87d073f9
--- /dev/null
+++ b/pkgs/by-name/ma/matrix-media-repo/package.nix
@@ -0,0 +1,68 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, pkg-config
+, libde265
+, libheif
+}:
+let
+  pname = "matrix-media-repo";
+  version = "1.3.4";
+
+  src = fetchFromGitHub {
+    owner = "t2bot";
+    repo = "matrix-media-repo";
+    rev = "v${version}";
+    hash = "sha256-wC69OiB3HjRs/i46+E1YS+M4zKmvH5vENHyfgU7nt1I=";
+  };
+
+  vendorHash = "sha256-STzpKqn47qS0iogVYhFl4QBfKUtnqgxobqv1WaW6UtQ=";
+
+  asset-compiler = buildGoModule {
+    pname = "${pname}-compile_assets";
+    inherit version src vendorHash;
+
+    subPackages = [
+      "cmd/utilities/compile_assets"
+    ];
+  };
+in
+
+buildGoModule {
+  inherit pname version src vendorHash;
+
+  patches = [
+    ./synapse-import-u+x.patch
+  ];
+
+  nativeBuildInputs = [
+    pkg-config
+    asset-compiler
+  ];
+
+  buildInputs = [
+    libde265
+    libheif
+  ];
+
+  preBuild = ''
+    compile_assets
+  '';
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X" "github.com/t2bot/matrix-media-repo/common/version.Version=${version}"
+  ];
+
+  doCheck = false; # requires docker
+
+  meta = with lib; {
+    description = "Highly configurable multi-domain media repository for Matrix";
+    homepage = "https://github.com/t2bot/matrix-media-repo";
+    changelog = "https://github.com/t2bot/matrix-media-repo/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+    mainProgram = "media_repo";
+  };
+}
diff --git a/pkgs/by-name/ma/matrix-media-repo/synapse-import-u+x.patch b/pkgs/by-name/ma/matrix-media-repo/synapse-import-u+x.patch
new file mode 100644
index 0000000000000..e2be0bfde49ad
--- /dev/null
+++ b/pkgs/by-name/ma/matrix-media-repo/synapse-import-u+x.patch
@@ -0,0 +1,22 @@
+diff --git a/cmd/homeserver_offline_exporters/import_to_synapse/main.go b/cmd/homeserver_offline_exporters/import_to_synapse/main.go
+index 3c7db1e..c6cba4f 100644
+--- a/cmd/homeserver_offline_exporters/import_to_synapse/main.go
++++ b/cmd/homeserver_offline_exporters/import_to_synapse/main.go
+@@ -78,7 +78,7 @@ func main() {
+ 
+ 		ctx.Log.Infof("Copying %s", mxc)
+ 		directories := path.Join(cfg.ExportPath, "local_content", record.MediaId[0:2], record.MediaId[2:4])
+-		err = os.MkdirAll(directories, 0655)
++		err = os.MkdirAll(directories, 0755)
+ 		if err != nil {
+ 			return err
+ 		}
+@@ -134,7 +134,7 @@ func main() {
+ 				dirLock.Lock()
+ 				defer dirLock.Unlock()
+ 				thumbDir := path.Join(cfg.ExportPath, "local_thumbnails", record.MediaId[0:2], record.MediaId[2:4], record.MediaId[4:])
+-				err = os.MkdirAll(thumbDir, 0655)
++				err = os.MkdirAll(thumbDir, 0755)
+ 				if err != nil {
+ 					ctx.Log.Warn("Error creating thumbnail directories. ", s, err)
+ 					return
diff --git a/pkgs/by-name/ma/matugen/package.nix b/pkgs/by-name/ma/matugen/package.nix
index f2b80a0a76adb..c4dffa14bc954 100644
--- a/pkgs/by-name/ma/matugen/package.nix
+++ b/pkgs/by-name/ma/matugen/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "matugen";
-  version = "2.2.0";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     owner = "InioX";
     repo = "matugen";
     rev = "v${version}";
-    hash = "sha256-4VX7Rt+ftEH8nwg59eT7TsvHYUf8/euUmwh/JLc4rLc=";
+    hash = "sha256-WFitpFF1Ah4HkzSe4H4aN/ZM0EEIcP5ozLMUWaDggFU=";
   };
 
-  cargoHash = "sha256-axBdOzCUwseV2ltgarmIS3IOYLX3q3rXeA2y6y7aNFI=";
+  cargoHash = "sha256-pD1NKUJmvMTnYKWjRrGnvbA0zVvGpWRIlf/9ovP9Jq4=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Security
@@ -24,8 +24,8 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A material you color generation tool";
-    homepage = "git@github.com:InioX/matugen.git";
+    description = "Material you color generation tool";
+    homepage = "https://github.com/InioX/matugen";
     changelog = "https://github.com/InioX/matugen/blob/${src.rev}/CHANGELOG.md";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ lampros ];
diff --git a/pkgs/development/tools/build-managers/apache-maven/build-package.nix b/pkgs/by-name/ma/maven/build-maven-package.nix
index df5d67cb42e6b..f9ff54696dfe9 100644
--- a/pkgs/development/tools/build-managers/apache-maven/build-package.nix
+++ b/pkgs/by-name/ma/maven/build-maven-package.nix
@@ -6,6 +6,7 @@
 { src
 , sourceRoot ? null
 , buildOffline ? false
+, doCheck ? true
 , patches ? [ ]
 , pname
 , version
@@ -22,6 +23,7 @@
 # created to allow using maven packages in the same style as rust
 
 let
+  mvnSkipTests = lib.optionalString (!doCheck) "-DskipTests";
   fetchedMavenDeps = stdenv.mkDerivation ({
     name = "${pname}-${version}-maven-deps";
     inherit src sourceRoot patches;
@@ -49,7 +51,7 @@ let
         mvn dependency:sources -DincludeGroupIds="$group" -DincludeArtifactIds="$artifact" -Dmaven.repo.local=$out/.m2
       done
     '' + lib.optionalString (!buildOffline) ''
-      mvn package -Dmaven.repo.local=$out/.m2 ${mvnParameters}
+      mvn package -Dmaven.repo.local=$out/.m2 ${mvnSkipTests} ${mvnParameters}
     '' + ''
       runHook postBuild
     '';
@@ -85,7 +87,7 @@ stdenv.mkDerivation (builtins.removeAttrs args [ "mvnFetchExtraArgs" ] // {
     runHook preBuild
 
     mvnDeps=$(cp -dpR ${fetchedMavenDeps}/.m2 ./ && chmod +w -R .m2 && pwd)
-    mvn package -o -nsu "-Dmaven.repo.local=$mvnDeps/.m2" ${mvnParameters}
+    mvn package -o -nsu "-Dmaven.repo.local=$mvnDeps/.m2" ${mvnSkipTests} ${mvnParameters}
 
     runHook postBuild
   '';
diff --git a/pkgs/build-support/build-maven.nix b/pkgs/by-name/ma/maven/build-maven.nix
index 7ac8afdde225a..7ac8afdde225a 100644
--- a/pkgs/build-support/build-maven.nix
+++ b/pkgs/by-name/ma/maven/build-maven.nix
diff --git a/pkgs/by-name/ma/maven/package.nix b/pkgs/by-name/ma/maven/package.nix
new file mode 100644
index 0000000000000..7856cadcfa944
--- /dev/null
+++ b/pkgs/by-name/ma/maven/package.nix
@@ -0,0 +1,60 @@
+{
+  lib,
+  callPackage,
+  fetchurl,
+  jdk,
+  makeWrapper,
+  stdenvNoCC,
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "apache-maven";
+  version = "3.9.6";
+
+  src = fetchurl {
+    url = "mirror://apache/maven/maven-3/${finalAttrs.version}/binaries/apache-maven-${finalAttrs.version}-bin.tar.gz";
+    hash = "sha256-bu3SyuNibWrTpcnuMkvSZYU9ZCl/B/AzQwdVvQ4MOks=";
+  };
+
+  sourceRoot = ".";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/maven
+    cp -r apache-maven-${finalAttrs.version}/* $out/maven
+
+    makeWrapper $out/maven/bin/mvn $out/bin/mvn \
+      --set-default JAVA_HOME "${jdk}"
+    makeWrapper $out/maven/bin/mvnDebug $out/bin/mvnDebug \
+      --set-default JAVA_HOME "${jdk}"
+
+    runHook postInstall
+  '';
+
+  passthru = {
+    buildMaven = callPackage ./build-maven.nix {
+      maven = finalAttrs.finalPackage;
+    };
+    buildMavenPackage = callPackage ./build-maven-package.nix {
+      maven = finalAttrs.finalPackage;
+    };
+  };
+
+  meta = {
+    homepage = "https://maven.apache.org/";
+    description = "Build automation tool (used primarily for Java projects)";
+    longDescription = ''
+      Apache Maven is a software project management and comprehension
+      tool. Based on the concept of a project object model (POM), Maven can
+      manage a project's build, reporting and documentation from a central piece
+      of information.
+    '';
+    license = lib.licenses.asl20;
+    mainProgram = "mvn";
+    maintainers = with lib.maintainers; [ cko ];
+    inherit (jdk.meta) platforms;
+  };
+})
diff --git a/pkgs/by-name/mc/mcap-cli/package.nix b/pkgs/by-name/mc/mcap-cli/package.nix
index 735f78021484b..e959bc65f1ad1 100644
--- a/pkgs/by-name/mc/mcap-cli/package.nix
+++ b/pkgs/by-name/mc/mcap-cli/package.nix
@@ -1,7 +1,7 @@
 { lib, buildGoModule, fetchFromGitHub, nix-update-script
 }:
 let
-  version = "0.0.44";
+  version = "0.0.46";
 in
 buildGoModule {
 
@@ -13,7 +13,7 @@ buildGoModule {
     repo = "mcap";
     owner = "foxglove";
     rev = "releases/mcap-cli/v${version}";
-    hash = "sha256-OAL2z28FhMXlyVzgmLCzHNCpCeK7hIkQB6jd7v3WHHA=";
+    hash = "sha256-UdR5A2ZtCcnQIjPxlwcntZb78CXzJBvRy73GJUqvjuM=";
   };
 
   vendorHash = "sha256-ofJYarmnOHONu2lZ76GvSua0ViP1gr6968xAuQ/VRNk=";
diff --git a/pkgs/by-name/mc/mcdreforged/package.nix b/pkgs/by-name/mc/mcdreforged/package.nix
new file mode 100644
index 0000000000000..d88e84b3a50fd
--- /dev/null
+++ b/pkgs/by-name/mc/mcdreforged/package.nix
@@ -0,0 +1,48 @@
+{
+  lib,
+  fetchFromGitHub,
+  python3,
+  testers,
+  mcdreforged,
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "mcdreforged";
+  version = "2.12.3";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "Fallen-Breath";
+    repo = "MCDReforged";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-MLub++mkkB/jshpHJXtqgIhs7Gcb4jHUyHqGE65S8A8=";
+  };
+
+  build-system = [ python3.pkgs.setuptools ];
+
+  dependencies = with python3.pkgs; [
+    colorlog
+    colorama
+    packaging
+    parse
+    prompt-toolkit
+    psutil
+    ruamel-yaml
+    typing-extensions
+  ];
+
+  nativeCheckInputs = [ python3.pkgs.pytestCheckHook ];
+
+  passthru.tests = {
+    version = testers.testVersion { package = mcdreforged; };
+  };
+
+  meta = with lib; {
+    description = "A rewritten version of MCDaemon, a python tool to control your Minecraft server";
+    homepage = "https://mcdreforged.com";
+    changelog = "https://github.com/MCDReforged/MCDReforged/releases/tag/v${version}";
+    license = licenses.lgpl3Only;
+    maintainers = with maintainers; [ moraxyc ];
+    mainProgram = "mcdreforged";
+  };
+}
diff --git a/pkgs/by-name/md/md-tui/package.nix b/pkgs/by-name/md/md-tui/package.nix
new file mode 100644
index 0000000000000..6530ed3f4b7fc
--- /dev/null
+++ b/pkgs/by-name/md/md-tui/package.nix
@@ -0,0 +1,45 @@
+{
+  lib,
+  rustPlatform,
+  fetchFromGitHub,
+  pkg-config,
+  stdenv,
+  darwin,
+  nix-update-script,
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "md-tui";
+  version = "0.8.1";
+
+  src = fetchFromGitHub {
+    owner = "henriklovhaug";
+    repo = "md-tui";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-AwJvB1xLsJCr+r0RJi8jH50QlPq7mbUibvmvYZJi9XE=";
+  };
+
+  cargoHash = "sha256-QapogSDuAiQWbCFFwPiaSpvLHn0oRLwBEBuB44MN/t0=";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.CoreFoundation
+    darwin.apple_sdk.frameworks.CoreServices
+    darwin.apple_sdk.frameworks.Security
+  ];
+
+  passthru = {
+    updateScript = nix-update-script { };
+  };
+
+  meta = {
+    description = "Markdown renderer in the terminal";
+    homepage = "https://github.com/henriklovhaug/md-tui";
+    changelog = "https://github.com/henriklovhaug/md-tui/blob/${src.rev}/CHANGELOG.md";
+    license = lib.licenses.agpl3Only;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
+    platforms = lib.platforms.all;
+    mainProgram = "mdt";
+  };
+}
diff --git a/pkgs/by-name/md/mdsh/package.nix b/pkgs/by-name/md/mdsh/package.nix
index e97b8eee51fef..8b482d7e714e7 100644
--- a/pkgs/by-name/md/mdsh/package.nix
+++ b/pkgs/by-name/md/mdsh/package.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdsh";
-  version = "0.8.0";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "zimbatm";
     repo = "mdsh";
     rev = "v${version}";
-    hash = "sha256-ammLbKEKXDSuZMr4DwPpcRSkKh7BzNC+4ZRCqTNNCQk=";
+    hash = "sha256-vN8nFhbZgJIhFuFET9IOmdxT7uBKq/9X+TO9lZsDw6g=";
   };
 
-  cargoHash = "sha256-wLHMccxk3ceZyGK27t5Kyal48yj9dQNgmEHjH9hR9Pc=";
+  cargoHash = "sha256-0D1RSUJw7fszc9d4nrp+zCzr9l0xF4Ed8DbK5/O5bEY=";
 
   meta = with lib; {
     description = "Markdown shell pre-processor";
diff --git a/pkgs/by-name/me/mealie/mealie-frontend.nix b/pkgs/by-name/me/mealie/mealie-frontend.nix
index a98d22761e71e..477dcd993abcf 100644
--- a/pkgs/by-name/me/mealie/mealie-frontend.nix
+++ b/pkgs/by-name/me/mealie/mealie-frontend.nix
@@ -6,7 +6,7 @@ src: version:
 
   yarnOfflineCache = fetchYarnDeps {
     yarnLock = "${src}/frontend/yarn.lock";
-    hash = "sha256-zQUD/PQWzp2Q6fiVmLicvSusXffu6s9q3x/aAUnCN38=";
+    hash = "sha256-a2kIOQHaMzaMWId6+SSYN+SPQM2Ipa+F1ztFZgo3R6A=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/me/mealie/mealie-logs-to-stdout.patch b/pkgs/by-name/me/mealie/mealie-logs-to-stdout.patch
deleted file mode 100644
index 521c5cebcf74d..0000000000000
--- a/pkgs/by-name/me/mealie/mealie-logs-to-stdout.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-diff --git a/mealie/core/root_logger.py b/mealie/core/root_logger.py
-index 29db504f..3da5ef84 100644
---- a/mealie/core/root_logger.py
-+++ b/mealie/core/root_logger.py
-@@ -9,7 +9,6 @@ DATA_DIR = determine_data_dir()
- 
- from .config import get_app_settings  # noqa E402
- 
--LOGGER_FILE = DATA_DIR.joinpath("mealie.log")
- DATE_FORMAT = "%d-%b-%y %H:%M:%S"
- LOGGER_FORMAT = "%(levelname)s: %(asctime)s \t%(message)s"
- 
-@@ -40,19 +39,17 @@ def get_logger_config():
-             level=log_level,
-         )
- 
--    output_file_handler = logging.FileHandler(LOGGER_FILE)
-     handler_format = logging.Formatter(LOGGER_FORMAT, datefmt=DATE_FORMAT)
--    output_file_handler.setFormatter(handler_format)
- 
-     # Stdout
-     stdout_handler = logging.StreamHandler(sys.stdout)
-     stdout_handler.setFormatter(handler_format)
- 
-     return LoggerConfig(
--        handlers=[output_file_handler, stdout_handler],
-+        handlers=[stdout_handler],
-         format="%(levelname)s: %(asctime)s \t%(message)s",
-         date_format="%d-%b-%y %H:%M:%S",
--        logger_file=LOGGER_FILE,
-+        logger_file=None,
-         level=log_level,
-     )
- 
-diff --git a/mealie/routes/admin/admin_log.py b/mealie/routes/admin/admin_log.py
-index ac12c12e..0de98b99 100644
---- a/mealie/routes/admin/admin_log.py
-+++ b/mealie/routes/admin/admin_log.py
-@@ -1,6 +1,5 @@
- from fastapi import APIRouter
- 
--from mealie.core.root_logger import LOGGER_FILE
- from mealie.core.security import create_file_token
- 
- router = APIRouter(prefix="/logs")
-@@ -9,15 +8,13 @@ router = APIRouter(prefix="/logs")
- @router.get("/{num}")
- async def get_log(num: int):
-     """Doc Str"""
--    with open(LOGGER_FILE, "rb") as f:
--        log_text = tail(f, num)
--    return log_text
-+    return ""
- 
- 
- @router.get("")
- async def get_log_file():
-     """Returns a token to download a file"""
--    return {"fileToken": create_file_token(LOGGER_FILE)}
-+    return {"fileToken": create_file_token("nofile")}
- 
- 
- def tail(f, lines=20):
-diff --git a/mealie/routes/admin/admin_maintenance.py b/mealie/routes/admin/admin_maintenance.py
-index 23ef8369..322b580f 100644
---- a/mealie/routes/admin/admin_maintenance.py
-+++ b/mealie/routes/admin/admin_maintenance.py
-@@ -6,7 +6,6 @@ from pathlib import Path
- 
- from fastapi import APIRouter, HTTPException
- 
--from mealie.core.root_logger import LOGGER_FILE
- from mealie.pkgs.stats import fs_stats
- from mealie.routes._base import BaseAdminController, controller
- from mealie.schema.admin import MaintenanceSummary
-@@ -73,8 +72,6 @@ class AdminMaintenanceController(BaseAdminController):
-         Get the maintenance summary
-         """
-         log_file_size = 0
--        with contextlib.suppress(FileNotFoundError):
--            log_file_size = os.path.getsize(LOGGER_FILE)
- 
-         return MaintenanceSummary(
-             data_dir_size=fs_stats.pretty_size(fs_stats.get_dir_size(self.folders.DATA_DIR)),
-@@ -85,7 +82,7 @@ class AdminMaintenanceController(BaseAdminController):
- 
-     @router.get("/logs", response_model=MaintenanceLogs)
-     def get_logs(self, lines: int = 200):
--        return MaintenanceLogs(logs=tail_log(LOGGER_FILE, lines))
-+        return MaintenanceLogs(logs="")
- 
-     @router.get("/storage", response_model=MaintenanceStorageDetails)
-     def get_storage_details(self):
-@@ -137,9 +134,6 @@ class AdminMaintenanceController(BaseAdminController):
-         Purges the logs
-         """
-         try:
--            with contextlib.suppress(FileNotFoundError):
--                os.remove(LOGGER_FILE)
--                LOGGER_FILE.touch()
-             return SuccessResponse.respond("Logs cleaned")
-         except Exception as e:
-             raise HTTPException(status_code=500, detail=ErrorResponse.respond("Failed to clean logs")) from e
diff --git a/pkgs/by-name/me/mealie/package.nix b/pkgs/by-name/me/mealie/package.nix
index 0bd096f7977c3..6646a8ec09803 100644
--- a/pkgs/by-name/me/mealie/package.nix
+++ b/pkgs/by-name/me/mealie/package.nix
@@ -1,7 +1,6 @@
 { lib
 , callPackage
 , fetchFromGitHub
-, fetchpatch
 , makeWrapper
 , nixosTests
 , python3Packages
@@ -10,21 +9,17 @@
 }:
 
 let
-  version = "1.2.0";
+  version = "1.9.0";
   src = fetchFromGitHub {
     owner = "mealie-recipes";
     repo = "mealie";
     rev = "v${version}";
-    sha256 = "sha256-Kc49XDWcZLeJaYgiAO2/mHeVSOLMeiPr3U32e0IYfdU=";
+    hash = "sha256-gg7ClclBS9j9n4/3HLxbX8HXTz9Zw5+BYG2MEYRsRBU=";
   };
 
   frontend = callPackage (import ./mealie-frontend.nix src version) { };
 
-  pythonpkgs = python3Packages.override {
-    overrides = self: super: {
-      pydantic = python3Packages.pydantic_1;
-    };
-  };
+  pythonpkgs = python3Packages;
   python = pythonpkgs.python;
 
   crfpp = stdenv.mkDerivation {
@@ -37,34 +32,11 @@ let
       hash = "sha256-XNps3ZApU8m07bfPEnvip1w+3hLajdn9+L5+IpEaP0c=";
     };
   };
-
-  mealie_patch = { name, commit, hash }: fetchpatch {
-    inherit name hash;
-    url = "https://github.com/mealie-recipes/mealie/commit/${commit}.patch";
-  };
-
 in pythonpkgs.buildPythonPackage rec {
   pname = "mealie";
   inherit version src;
   pyproject = true;
 
-  patches = [
-    # See https://github.com/mealie-recipes/mealie/pull/3102
-    # Replace hardcoded paths in code with environment variables (meant for inside Docker only)
-    # So we can configure easily where the data is stored on the server
-    (mealie_patch {
-      name = "model-path.patch";
-      commit = "e445705c5d26b895d806b96b2f330d4e9aac3723";
-      hash = "sha256-cf0MwvT81lNBTjvag8UUEbXkBu8Jyi/LFwUcs4lBVcY=";
-    })
-    (mealie_patch {
-      name = "alembic-cfg-path.patch";
-      commit = "06c528bfac0708af66aa0629f2e2232ddf07768f";
-      hash = "sha256-IOgdZK7dmWeX2ox16J9v+bOS7nHgCMvCJy6RNJLj0p8=";
-    })
-    ./mealie-logs-to-stdout.patch
-  ];
-
   nativeBuildInputs = [
     pythonpkgs.poetry-core
     pythonpkgs.pythonRelaxDepsHook
@@ -82,6 +54,7 @@ in pythonpkgs.buildPythonPackage rec {
     aniso8601
     appdirs
     apprise
+    authlib
     bcrypt
     extruct
     fastapi
@@ -90,15 +63,16 @@ in pythonpkgs.buildPythonPackage rec {
     httpx
     jinja2
     lxml
+    openai
     orjson
     paho-mqtt
-    passlib
     pillow
+    pillow-heif
     psycopg2
+    pydantic-settings
     pyhumps
-    pytesseract
+    pyjwt
     python-dotenv
-    python-jose
     python-ldap
     python-multipart
     python-slugify
@@ -150,7 +124,7 @@ in pythonpkgs.buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A self hosted recipe manager and meal planner";
+    description = "Self hosted recipe manager and meal planner";
     longDescription = ''
       Mealie is a self hosted recipe manager and meal planner with a REST API and a reactive frontend
       application built in NuxtJS for a pleasant user experience for the whole family. Easily add recipes into your
@@ -160,7 +134,7 @@ in pythonpkgs.buildPythonPackage rec {
     homepage = "https://mealie.io";
     changelog = "https://github.com/mealie-recipes/mealie/releases/tag/${src.rev}";
     license = licenses.agpl3Only;
-    maintainers = with maintainers; [ litchipi ];
+    maintainers = with maintainers; [ litchipi anoa ];
     mainProgram = "mealie";
   };
 }
diff --git a/pkgs/by-name/me/media-downloader/package.nix b/pkgs/by-name/me/media-downloader/package.nix
new file mode 100644
index 0000000000000..8053f6a93adaf
--- /dev/null
+++ b/pkgs/by-name/me/media-downloader/package.nix
@@ -0,0 +1,67 @@
+{
+  aria2,
+  cmake,
+  # https://github.com/mhogomchungu/media-downloader?tab=readme-ov-file#extensions
+  extraPackages ? [
+    aria2
+    yt-dlp
+    ffmpeg
+    python3
+  ],
+  fetchFromGitHub,
+  ffmpeg,
+  lib,
+  libsForQt5,
+  python3,
+  stdenv,
+  yt-dlp,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "media-downloader";
+  version = "4.7.0";
+
+  src = fetchFromGitHub {
+    owner = "mhogomchungu";
+    repo = "media-downloader";
+    rev = finalAttrs.version;
+    hash = "sha256-ykPYxRgzKZrA0KwS1FoxZOkSL+7TbLgy0yLfs7Iqpf4=";
+  };
+
+  # Disable automatically updating extensions when starting the program because this will
+  # invalidate the dependence on extensions and may cause potential security issues
+  # Can still be enabled in Configure > Actions At Startup
+  postPatch = ''
+    substituteInPlace src/settings.cpp \
+      --replace-fail '"ShowVersionInfoAndAutoDownloadUpdates",true' '"ShowVersionInfoAndAutoDownloadUpdates",false' \
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    libsForQt5.wrapQtAppsHook
+  ];
+
+  buildInputs = [ libsForQt5.qtbase ];
+
+  qtWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath extraPackages}" ];
+
+  meta = {
+    description = "Qt/C++ GUI front end for yt-dlp and others";
+    longDescription = ''
+      Media Downloader is a GUI front end to yt-dlp, youtube-dl, gallery-dl,
+      lux, you-get, svtplay-dl, aria2c, wget and safari books.
+
+      Read https://github.com/mhogomchungu/media-downloader/wiki/Extensions
+      for further information. We have packaged most of them, and they can
+      be added by overriding `extraPackages`.
+    '';
+    homepage = "https://github.com/mhogomchungu/media-downloader";
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [
+      zendo
+      aleksana
+    ];
+    platforms = lib.platforms.linux;
+    mainProgram = "media-downloader";
+  };
+})
diff --git a/pkgs/by-name/me/mediasynclite/package.nix b/pkgs/by-name/me/mediasynclite/package.nix
new file mode 100644
index 0000000000000..869142da9acc8
--- /dev/null
+++ b/pkgs/by-name/me/mediasynclite/package.nix
@@ -0,0 +1,54 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gtk3
+, glib
+, gsettings-desktop-schemas
+, pkg-config
+, curl
+, openssl
+, jansson
+, wrapGAppsHook3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "mediasynclite";
+  version = "0.4.2";
+
+  src = fetchFromGitHub {
+    owner = "iBroadcastMediaServices";
+    repo = "MediaSyncLiteLinux";
+    rev = version;
+    hash = "sha256-ToSkR6tPJMBCcj1NUBAywKjCAPlpmh+ngIopFrT2PIA=";
+  };
+
+  buildInputs = [
+    curl
+    glib
+    gtk3
+    openssl
+    jansson
+  ];
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    gsettings-desktop-schemas
+    pkg-config
+    wrapGAppsHook3
+  ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  postPatch = ''
+    substitute ./src/ibmsl.c ./src/ibmsl.c --subst-var out
+  '';
+
+  meta = with lib; {
+    description = "Linux-native graphical uploader for iBroadcast";
+    downloadPage = "https://github.com/tobz619/MediaSyncLiteLinuxNix";
+    homepage = "https://github.com/iBroadcastMediaServices/MediaSyncLiteLinux";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ tobz619 ];
+  };
+}
diff --git a/pkgs/by-name/me/mednafen/package.nix b/pkgs/by-name/me/mednafen/package.nix
index a001edd0e0f15..f3e0f8478c08c 100644
--- a/pkgs/by-name/me/mednafen/package.nix
+++ b/pkgs/by-name/me/mednafen/package.nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://mednafen.github.io/";
-    description = "A portable, CLI-driven, SDL+OpenGL-based, multi-system emulator";
+    description = "Portable, CLI-driven, SDL+OpenGL-based, multi-system emulator";
     longDescription = ''
       Mednafen is a portable, utilizing OpenGL and SDL,
       argument(command-line)-driven multi-system emulator. Mednafen has the
diff --git a/pkgs/by-name/me/meletrix-udev-rules/meletrix.rules b/pkgs/by-name/me/meletrix-udev-rules/meletrix.rules
new file mode 100644
index 0000000000000..fc7cafd1e563f
--- /dev/null
+++ b/pkgs/by-name/me/meletrix-udev-rules/meletrix.rules
@@ -0,0 +1,26 @@
+# Download VIA jsons from https://drive.google.com/drive/folders/1ky4kmGxZo1i0WyRZiY9V6FQlGzjegcPk for USB vendor and product ids
+
+# Zoom 65 Olivia Wired
+SUBSYSTEM=="hidraw", ATTRS{idVendor}=="806c", ATTRS{idProduct}=="0005", MODE:="0660", GROUP="input"
+
+# Zoom 65 EE
+SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1ea7", ATTRS{idProduct}=="7777", MODE:="0660", GROUP="input"
+SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1ea7", ATTRS{idProduct}=="cc65", MODE:="0660", GROUP="input"
+
+# Zoom 65 V2
+# also 1ea7:7777
+SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1ea7", ATTRS{idProduct}=="ccbb", MODE:="0660", GROUP="input"
+
+# Zoom 65 V2.5
+SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1ea7", ATTRS{idProduct}=="ccc3", MODE:="0660", GROUP="input"
+
+# Zoom 75 (production unit)
+SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1ea7", ATTRS{idProduct}=="ced3", MODE:="0660", GROUP="input"
+
+# Zoom 75 (prototype)
+SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1ea7", ATTRS{idProduct}=="ce81", MODE:="0660", GROUP="input"
+
+# ZoomTKL
+# also 1ea7:7777
+SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1ea7", ATTRS{idProduct}=="cd87", MODE:="0660", GROUP="input"
+
diff --git a/pkgs/by-name/me/meletrix-udev-rules/package.nix b/pkgs/by-name/me/meletrix-udev-rules/package.nix
new file mode 100644
index 0000000000000..43fd2b94cdd5b
--- /dev/null
+++ b/pkgs/by-name/me/meletrix-udev-rules/package.nix
@@ -0,0 +1,24 @@
+{
+  lib,
+  stdenvNoCC,
+}:
+stdenvNoCC.mkDerivation {
+  pname = "meletrix-udev-rules";
+  version = "0-unstable-2023-10-20";
+
+  src = [./meletrix.rules];
+
+  dontUnpack = true;
+  dontBuild = true;
+
+  installPhase = ''
+    install -Dpm644 $src $out/lib/udev/rules.d/70-meletrix.rules
+  '';
+
+  meta = with lib; {
+    description = "udev rules to configure Meletrix keyboards";
+    license = licenses.cc0;
+    maintainers = with maintainers; [Scrumplex];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/me/meli/package.nix b/pkgs/by-name/me/meli/package.nix
index ab5d838c0ae4b..ab5542bb8cb69 100644
--- a/pkgs/by-name/me/meli/package.nix
+++ b/pkgs/by-name/me/meli/package.nix
@@ -17,12 +17,13 @@
 , sqlite
 
 # runtime deps
+, gpgme
 , gnum4
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "meli";
-  version = "0.8.5";
+  version = "0.8.6";
 
   src = fetchzip {
     urls = [
@@ -30,10 +31,10 @@ rustPlatform.buildRustPackage rec {
       "https://codeberg.org/meli/meli/archive/v${version}.tar.gz"
       "https://github.com/meli/meli/archive/refs/tags/v${version}.tar.gz"
     ];
-    hash = "sha256-xfc4DZGKQi/n87JcjTl+s2UFJ20v+6JmzSL36pZlSc0=";
+    hash = "sha256-7lSxXv2i8B6vRWIJqMiXlMqHH6fmgACy9X5qNKuj+IU=";
   };
 
-  cargoHash = "sha256-7ax3VQ+McmzxdG8TeKnMnD0uJmM0pi9Sskfdl2SZkz4=";
+  cargoHash = "sha256-vZkMfaALnRBK9ZwMB2uvvJgQq+BdUX7enNnr9t5H+MY=";
 
   # Needed to get openssl-sys to use pkg-config
   OPENSSL_NO_VENDOR=1;
@@ -60,6 +61,7 @@ rustPlatform.buildRustPackage rec {
     installManPage meli/docs/*.{1,5,7}
 
     wrapProgram $out/bin/meli \
+      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ gpgme ]} \
       --prefix PATH : ${lib.makeBinPath [ gnum4 ]}
   '';
 
diff --git a/pkgs/by-name/me/melonDS/package.nix b/pkgs/by-name/me/melonDS/package.nix
index 3ccecc1bab337..74a7cc4a7f68e 100644
--- a/pkgs/by-name/me/melonDS/package.nix
+++ b/pkgs/by-name/me/melonDS/package.nix
@@ -23,13 +23,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "melonDS";
-  version = "0.9.5-unstable-2024-05-15";
+  version = "0.9.5-unstable-2024-06-08";
 
   src = fetchFromGitHub {
     owner = "melonDS-emu";
     repo = "melonDS";
-    rev = "a72b79a55ad2d61811af11b1b911f6af863f66c2";
-    hash = "sha256-cdKfJ316iuRajdrRESt68oR8vkHISFRdHXxVuvGSUqE=";
+    rev = "8e9b88d01da0d21c3c35db051d7e44d8ee0c7715";
+    hash = "sha256-zlOK5yhg9rmLMDnCxQ9CDAy+qWZdvKwTaKxzna1zxxk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/me/memorado/package.nix b/pkgs/by-name/me/memorado/package.nix
new file mode 100644
index 0000000000000..e7282d01d90e6
--- /dev/null
+++ b/pkgs/by-name/me/memorado/package.nix
@@ -0,0 +1,51 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, gtk4
+, pkg-config
+, libadwaita
+, blueprint-compiler
+, python3
+, desktop-file-utils
+, gobject-introspection
+, wrapGAppsHook4
+}:
+
+stdenv.mkDerivation rec {
+  pname = "memorado";
+  version = "0.3";
+
+  src = fetchFromGitHub {
+    owner = "wbernard";
+    repo = "Memorado";
+    rev = "refs/tags/${version}";
+    hash = "sha256-bArcYUHSfpjYsySGZco4fmb6bKRFtG6efhzNSqUROX0=";
+  };
+
+  nativeBuildInputs = [
+    blueprint-compiler
+    desktop-file-utils
+    gobject-introspection
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook4
+  ];
+
+  buildInputs = [
+    gtk4
+    libadwaita
+    (python3.withPackages (ps: with ps; [
+      pygobject3
+    ]))
+  ];
+
+  meta = with lib; {
+    description = "Simple and clean flashcard memorizing app";
+    homepage = "https://github.com/wbernard/Memorado";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ onny ];
+  };
+}
diff --git a/pkgs/by-name/me/menulibre/package.nix b/pkgs/by-name/me/menulibre/package.nix
index 414f591965eb9..b8ad319c89576 100644
--- a/pkgs/by-name/me/menulibre/package.nix
+++ b/pkgs/by-name/me/menulibre/package.nix
@@ -12,7 +12,7 @@
 }:
 
 python3Packages.buildPythonApplication rec {
-  name = "menulibre";
+  pname = "menulibre";
   version = "2.4.0";
 
   src = fetchFromGitHub {
@@ -55,7 +55,7 @@ python3Packages.buildPythonApplication rec {
   };
 
   meta = with lib; {
-    description = "An advanced menu editor with an easy-to-use interface";
+    description = "Advanced menu editor with an easy-to-use interface";
     homepage = "https://bluesabre.org/projects/menulibre";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ lelgenio ];
diff --git a/pkgs/by-name/me/mercure/package.nix b/pkgs/by-name/me/mercure/package.nix
index 0e8cc02fbe724..b66483d29ae25 100644
--- a/pkgs/by-name/me/mercure/package.nix
+++ b/pkgs/by-name/me/mercure/package.nix
@@ -8,18 +8,18 @@
 
 buildGoModule rec {
   pname = "mercure";
-  version = "0.15.11";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "dunglas";
     repo = "mercure";
     rev = "v${version}";
-    hash = "sha256-qPKfF0awRsMfXu7N/xNwFVmmuqTMGsDDqrVgt6LwviI=";
+    hash = "sha256-HHErk1KX8HgAt4UrBuchK6ysNsxEsrf5uBzzvSNz+to=";
   };
 
   sourceRoot = "${src.name}/caddy";
 
-  vendorHash = "sha256-evUGa1kFWbj0ynDQruBRDx2opzh7Tc7eHnWn3H4xwxY=";
+  vendorHash = "sha256-aO0EvxZNOCAaqEWN1VIdPpS+y8KcsuXo7o8msicspNE=";
 
   subPackages = [ "mercure" ];
   excludedPackages = [ "../cmd/mercure" ];
@@ -42,7 +42,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "An open, easy, fast, reliable and battery-efficient solution for real-time communications";
+    description = "Open, easy, fast, reliable and battery-efficient solution for real-time communications";
     homepage = "https://github.com/dunglas/mercure";
     changelog = "https://github.com/dunglas/mercure/releases/tag/v${version}";
     license = licenses.agpl3Only;
diff --git a/pkgs/by-name/me/meson/007-Allow-building-via-ninja-12.patch b/pkgs/by-name/me/meson/007-Allow-building-via-ninja-12.patch
new file mode 100644
index 0000000000000..009d826aab036
--- /dev/null
+++ b/pkgs/by-name/me/meson/007-Allow-building-via-ninja-12.patch
@@ -0,0 +1,190 @@
+From 8e46d3e37f81bf13f3f62a14fb603feb2e37229d Mon Sep 17 00:00:00 2001
+From: John Titor <50095635+JohnRTitor@users.noreply.github.com>
+Date: Fri, 10 May 2024 23:25:58 +0530
+Subject: [PATCH] Fix builds with Ninja 12 and remove a 5 year old workaround.
+
+Co-authored-by: Jussi Pakkanen <jpakkane@gmail.com>
+Co-authored-by: Masum Reza <masumrezarock100@gmail.com>
+---
+ run_project_tests.py           |  3 +--
+ run_tests.py                   | 35 ++++++++++------------------------
+ unittests/baseplatformtests.py | 34 +++++++++++++++++++++++++++------
+ 3 files changed, 39 insertions(+), 33 deletions(-)
+
+diff --git a/run_project_tests.py b/run_project_tests.py
+index a14741364..222e12f74 100755
+--- a/run_project_tests.py
++++ b/run_project_tests.py
+@@ -45,7 +45,7 @@ from mesonbuild.coredata import backendlist, version as meson_version
+ from mesonbuild.modules.python import PythonExternalProgram
+ from run_tests import (
+     get_fake_options, run_configure, get_meson_script, get_backend_commands,
+-    get_backend_args_for_dir, Backend, ensure_backend_detects_changes,
++    get_backend_args_for_dir, Backend,
+     guess_backend, handle_meson_skip_test,
+ )
+ 
+@@ -720,7 +720,6 @@ def _run_test(test: TestDef,
+ 
+     # Touch the meson.build file to force a regenerate
+     def force_regenerate() -> None:
+-        ensure_backend_detects_changes(backend)
+         os.utime(str(test.path / 'meson.build'))
+ 
+     # just test building
+diff --git a/run_tests.py b/run_tests.py
+index 207653219..0c51f3d69 100755
+--- a/run_tests.py
++++ b/run_tests.py
+@@ -39,29 +39,27 @@ from mesonbuild.mesonlib import OptionKey, setup_vsenv
+ if T.TYPE_CHECKING:
+     from mesonbuild.coredata import SharedCMDOptions
+ 
+-NINJA_1_9_OR_NEWER = False
++NINJA_1_12_OR_NEWER = False
+ NINJA_CMD = None
+ # If we're on CI, detecting ninja for every subprocess unit test that we run is slow
+ # Optimize this by respecting $NINJA and skipping detection, then exporting it on
+ # first run.
+ try:
+-    NINJA_1_9_OR_NEWER = bool(int(os.environ['NINJA_1_9_OR_NEWER']))
++    NINJA_1_12_OR_NEWER = bool(int(os.environ['NINJA_1_12_OR_NEWER']))
+     NINJA_CMD = [os.environ['NINJA']]
+ except (KeyError, ValueError):
+-    # Look for 1.9 to see if https://github.com/ninja-build/ninja/issues/1219
+-    # is fixed
+-    NINJA_CMD = detect_ninja('1.9')
++    # Look for 1.12, which removes -w dupbuild=err
++    NINJA_CMD = detect_ninja('1.12')
+     if NINJA_CMD is not None:
+-        NINJA_1_9_OR_NEWER = True
++        NINJA_1_12_OR_NEWER = True
+     else:
+-        mlog.warning('Found ninja <1.9, tests will run slower', once=True)
+         NINJA_CMD = detect_ninja()
+ 
+ if NINJA_CMD is not None:
+-    os.environ['NINJA_1_9_OR_NEWER'] = str(int(NINJA_1_9_OR_NEWER))
++    os.environ['NINJA_1_12_OR_NEWER'] = str(int(NINJA_1_12_OR_NEWER))
+     os.environ['NINJA'] = NINJA_CMD[0]
+ else:
+-    raise RuntimeError('Could not find Ninja v1.7 or newer')
++    raise RuntimeError('Could not find Ninja.')
+ 
+ # Emulate running meson with -X utf8 by making sure all open() calls have a
+ # sane encoding. This should be a python default, but PEP 540 considered it not
+@@ -271,7 +269,9 @@ def get_backend_commands(backend: Backend, debug: bool = False) -> \
+         test_cmd = cmd + ['-target', 'RUN_TESTS']
+     elif backend is Backend.ninja:
+         global NINJA_CMD
+-        cmd = NINJA_CMD + ['-w', 'dupbuild=err', '-d', 'explain']
++        cmd = NINJA_CMD + ['-d', 'explain']
++        if not NINJA_1_12_OR_NEWER:
++            cmd += ['-w', 'dupbuild=err']
+         if debug:
+             cmd += ['-v']
+         clean_cmd = cmd + ['clean']
+@@ -282,21 +282,6 @@ def get_backend_commands(backend: Backend, debug: bool = False) -> \
+         raise AssertionError(f'Unknown backend: {backend!r}')
+     return cmd, clean_cmd, test_cmd, install_cmd, uninstall_cmd
+ 
+-def ensure_backend_detects_changes(backend: Backend) -> None:
+-    global NINJA_1_9_OR_NEWER
+-    if backend is not Backend.ninja:
+-        return
+-    need_workaround = False
+-    # We're using ninja >= 1.9 which has QuLogic's patch for sub-1s resolution
+-    # timestamps
+-    if not NINJA_1_9_OR_NEWER:
+-        mlog.warning('Don\'t have ninja >= 1.9, enabling timestamp resolution workaround', once=True)
+-        need_workaround = True
+-    # Increase the difference between build.ninja's timestamp and the timestamp
+-    # of whatever you changed: https://github.com/ninja-build/ninja/issues/371
+-    if need_workaround:
+-        time.sleep(1)
+-
+ def run_mtest_inprocess(commandlist: T.List[str]) -> T.Tuple[int, str, str]:
+     out = StringIO()
+     with mock.patch.object(sys, 'stdout', out), mock.patch.object(sys, 'stderr', out):
+diff --git a/unittests/baseplatformtests.py b/unittests/baseplatformtests.py
+index 6125ed933..226b2e11e 100644
+--- a/unittests/baseplatformtests.py
++++ b/unittests/baseplatformtests.py
+@@ -1,6 +1,8 @@
+ # SPDX-License-Identifier: Apache-2.0
+ # Copyright 2016-2021 The Meson development team
++# Copyright © 2024 Intel Corporation
+ 
++from __future__ import annotations
+ from pathlib import PurePath
+ from unittest import mock, TestCase, SkipTest
+ import json
+@@ -9,6 +11,7 @@ import os
+ import re
+ import subprocess
+ import sys
++import shutil
+ import tempfile
+ import typing as T
+ 
+@@ -28,7 +31,7 @@ import mesonbuild.modules.pkgconfig
+ 
+ 
+ from run_tests import (
+-    Backend, ensure_backend_detects_changes, get_backend_commands,
++    Backend, get_backend_commands,
+     get_builddir_target_args, get_meson_script, run_configure_inprocess,
+     run_mtest_inprocess, handle_meson_skip_test,
+ )
+@@ -286,11 +289,11 @@ class BasePlatformTests(TestCase):
+         '''
+         return self.build(target=target, override_envvars=override_envvars)
+ 
+-    def setconf(self, arg, will_build=True):
+-        if not isinstance(arg, list):
++    def setconf(self, arg: T.Sequence[str], will_build: bool = True) -> None:
++        if isinstance(arg, str):
+             arg = [arg]
+-        if will_build:
+-            ensure_backend_detects_changes(self.backend)
++        else:
++            arg = list(arg)
+         self._run(self.mconf_command + arg + [self.builddir])
+ 
+     def getconf(self, optname: str):
+@@ -304,7 +307,6 @@ class BasePlatformTests(TestCase):
+         windows_proof_rmtree(self.builddir)
+ 
+     def utime(self, f):
+-        ensure_backend_detects_changes(self.backend)
+         os.utime(f)
+ 
+     def get_compdb(self):
+@@ -492,3 +494,23 @@ class BasePlatformTests(TestCase):
+ 
+     def assertLength(self, val, length):
+         assert len(val) == length, f'{val} is not length {length}'
++
++    def copy_srcdir(self, srcdir: str) -> str:
++        """Copies a source tree and returns that copy.
++
++        ensures that the copied tree is deleted after running.
++
++        :param srcdir: The locaiton of the source tree to copy
++        :return: The location of the copy
++        """
++        dest = tempfile.mkdtemp()
++        self.addCleanup(windows_proof_rmtree, dest)
++
++        # shutil.copytree expects the destinatin directory to not exist, Once
++        # python 3.8 is required the `dirs_exist_ok` parameter negates the need
++        # for this
++        dest = os.path.join(dest, 'subdir')
++
++        shutil.copytree(srcdir, dest)
++
++        return dest
+\ No newline at end of file
+-- 
+2.44.0
+
diff --git a/pkgs/by-name/me/meson/007-freebsd-pkgconfig-path.patch b/pkgs/by-name/me/meson/007-freebsd-pkgconfig-path.patch
new file mode 100644
index 0000000000000..3a9ba6f092dda
--- /dev/null
+++ b/pkgs/by-name/me/meson/007-freebsd-pkgconfig-path.patch
@@ -0,0 +1,15 @@
+diff -ur a/mesonbuild/modules/pkgconfig.py b/mesonbuild/modules/pkgconfig.py
+--- a/mesonbuild/modules/pkgconfig.py	2024-05-17 17:52:30.880877000 -0700
++++ b/mesonbuild/modules/pkgconfig.py	2024-05-17 17:53:10.901068000 -0700
+@@ -693,10 +693,7 @@
+         pcfile = filebase + '.pc'
+         pkgroot = pkgroot_name = kwargs['install_dir'] or default_install_dir
+         if pkgroot is None:
+-            if mesonlib.is_freebsd():
+-                pkgroot = os.path.join(_as_str(state.environment.coredata.get_option(mesonlib.OptionKey('prefix'))), 'libdata', 'pkgconfig')
+-                pkgroot_name = os.path.join('{prefix}', 'libdata', 'pkgconfig')
+-            elif mesonlib.is_haiku():
++            if mesonlib.is_haiku():
+                 pkgroot = os.path.join(_as_str(state.environment.coredata.get_option(mesonlib.OptionKey('prefix'))), 'develop', 'lib', 'pkgconfig')
+                 pkgroot_name = os.path.join('{prefix}', 'develop', 'lib', 'pkgconfig')
+             else:
diff --git a/pkgs/by-name/me/meson/package.nix b/pkgs/by-name/me/meson/package.nix
index b2c85c431e01d..22bbc1c2fbc3f 100644
--- a/pkgs/by-name/me/meson/package.nix
+++ b/pkgs/by-name/me/meson/package.nix
@@ -4,6 +4,8 @@
 , installShellFiles
 , coreutils
 , darwin
+, libblocksruntime
+, llvmPackages
 , libxcrypt
 , openldap
 , ninja
@@ -66,9 +68,16 @@ python3.pkgs.buildPythonApplication rec {
     # Nixpkgs cctools does not have bitcode support.
     ./006-disable-bitcode.patch
 
+    # This edge case is explicitly part of meson but is wrong for nix
+    ./007-freebsd-pkgconfig-path.patch
+
     # Fix cross-compilation of proc-macro (and mesa)
     # https://github.com/mesonbuild/meson/issues/12973
     ./0001-Revert-rust-recursively-pull-proc-macro-dependencies.patch
+
+    # Fix compilation of Meson using Ninja 1.12
+    # FIXME: remove in the next point release
+    ./007-Allow-building-via-ninja-12.patch
   ];
 
   buildInputs = lib.optionals (python3.pythonOlder "3.9") [
@@ -93,6 +102,11 @@ python3.pkgs.buildPythonApplication rec {
     OpenAL
     OpenGL
     openldap
+  ] ++ lib.optionals (stdenv.cc.isClang && !stdenv.isDarwin) [
+    # https://github.com/mesonbuild/meson/blob/bd3f1b2e0e70ef16dfa4f441686003212440a09b/test%20cases/common/184%20openmp/meson.build
+    llvmPackages.openmp
+    # https://github.com/mesonbuild/meson/blob/1670fca36fcb1a4fe4780e96731e954515501a35/test%20cases/frameworks/29%20blocks/meson.build
+    libblocksruntime
   ];
 
   checkPhase = lib.concatStringsSep "\n" ([
@@ -106,7 +120,7 @@ python3.pkgs.buildPythonApplication rec {
     ''
   ]
   # Remove problematic tests
-  ++ (builtins.map (f: ''rm -vr "${f}";'') [
+  ++ (builtins.map (f: ''rm -vr "${f}";'') ([
     # requires git, creating cyclic dependency
     ''test cases/common/66 vcstag''
     # requires glib, creating cyclic dependency
@@ -116,7 +130,10 @@ python3.pkgs.buildPythonApplication rec {
     ''test cases/linuxlike/14 static dynamic linkage''
     # Nixpkgs cctools does not have bitcode support.
     ''test cases/osx/7 bitcode''
-  ])
+  ] ++ lib.optionals stdenv.isFreeBSD [
+    # pch doesn't work quite right on FreeBSD, I think
+    ''test cases/common/13 pch''
+  ]))
   ++ [
     ''HOME="$TMPDIR" python ./run_project_tests.py''
     "runHook postCheck"
@@ -146,7 +163,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = {
     homepage = "https://mesonbuild.com";
-    description = "An open source, fast and friendly build system made in Python";
+    description = "Open source, fast and friendly build system made in Python";
     mainProgram = "meson";
     longDescription = ''
       Meson is an open source build system meant to be both extremely fast, and,
diff --git a/pkgs/by-name/me/meson/setup-hook.sh b/pkgs/by-name/me/meson/setup-hook.sh
index 85849fbec734a..3f3c7ac59fdea 100644
--- a/pkgs/by-name/me/meson/setup-hook.sh
+++ b/pkgs/by-name/me/meson/setup-hook.sh
@@ -56,7 +56,7 @@ mesonCheckPhase() {
     local flagsArray=($mesonCheckFlags "${mesonCheckFlagsArray[@]}")
 
     echoCmd 'mesonCheckPhase flags' "${flagsArray[@]}"
-    meson test --no-rebuild "${flagsArray[@]}"
+    meson test --no-rebuild --print-errorlogs "${flagsArray[@]}"
 
     runHook postCheck
 }
diff --git a/pkgs/by-name/me/metacubexd/package.nix b/pkgs/by-name/me/metacubexd/package.nix
new file mode 100644
index 0000000000000..c55083e5b224b
--- /dev/null
+++ b/pkgs/by-name/me/metacubexd/package.nix
@@ -0,0 +1,55 @@
+{
+  lib,
+  fetchFromGitHub,
+  nix-update-script,
+  nodejs,
+  pnpm,
+  stdenv,
+}:
+stdenv.mkDerivation (finalAttrs: {
+  pname = "metacubexd";
+  version = "1.140.0";
+
+  src = fetchFromGitHub {
+    owner = "MetaCubeX";
+    repo = "metacubexd";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-OVLG+MHgwWTorPuBTHsHUAY1FSN91j7xWgRDJ7FiO7E=";
+  };
+
+  nativeBuildInputs = [
+    pnpm.configHook
+    nodejs
+  ];
+
+  pnpmDeps = pnpm.fetchDeps {
+    inherit (finalAttrs) pname version src;
+    hash = "sha256-24PkWT5UZJwMtL3y8qdf3XFuf3v5PjiP9XESbw3oppY=";
+  };
+
+  buildPhase = ''
+    runHook preBuild
+
+    pnpm build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    cp -r ./dist $out
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "Clash.Meta Dashboard, The Official One, XD";
+    homepage = "https://github.com/MetaCubeX/metacubexd";
+    license = lib.licenses.mit;
+    platforms = lib.platforms.all;
+    maintainers = with lib.maintainers; [ Guanran928 ];
+  };
+})
diff --git a/pkgs/by-name/mf/mfoc-hardnested/package.nix b/pkgs/by-name/mf/mfoc-hardnested/package.nix
index 672db4d21c1a0..9fb22863c74be 100644
--- a/pkgs/by-name/mf/mfoc-hardnested/package.nix
+++ b/pkgs/by-name/mf/mfoc-hardnested/package.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A fork of mfoc integrating hardnested code from the proxmark";
+    description = "Fork of mfoc integrating hardnested code from the proxmark";
     mainProgram = "mfoc-hardnested";
     license = licenses.gpl2;
     homepage = "https://github.com/nfc-tools/mfoc-hardnested";
diff --git a/pkgs/by-name/mg/mgba/package.nix b/pkgs/by-name/mg/mgba/package.nix
index 6eaf56419d654..3c04b1db120b7 100644
--- a/pkgs/by-name/mg/mgba/package.nix
+++ b/pkgs/by-name/mg/mgba/package.nix
@@ -75,7 +75,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://mgba.io";
-    description = "A modern GBA emulator with a focus on accuracy";
+    description = "Modern GBA emulator with a focus on accuracy";
     longDescription = ''
       mGBA is a new Game Boy Advance emulator written in C.
 
diff --git a/pkgs/by-name/mi/mihomo/package.nix b/pkgs/by-name/mi/mihomo/package.nix
index 3d1805687e2ad..b17e4c4b29ec8 100644
--- a/pkgs/by-name/mi/mihomo/package.nix
+++ b/pkgs/by-name/mi/mihomo/package.nix
@@ -38,7 +38,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A rule-based tunnel in Go";
+    description = "Rule-based tunnel in Go";
     homepage = "https://github.com/MetaCubeX/mihomo/tree/Alpha";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ oluceps ];
diff --git a/pkgs/by-name/mi/mimikatz/package.nix b/pkgs/by-name/mi/mimikatz/package.nix
index d834e9fdf888b..becc83dc6142f 100644
--- a/pkgs/by-name/mi/mimikatz/package.nix
+++ b/pkgs/by-name/mi/mimikatz/package.nix
@@ -22,7 +22,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/gentilkiwi/mimikatz";
-    description = "A little tool to play with Windows security";
+    description = "Little tool to play with Windows security";
     license = with lib.licenses; [ cc-by-40 ];
     maintainers = with lib.maintainers; [ d3vil0p3r ];
     platforms = lib.platforms.all;
diff --git a/pkgs/by-name/mi/mini-calc/package.nix b/pkgs/by-name/mi/mini-calc/package.nix
index d240aa7bbe694..099b94377626d 100644
--- a/pkgs/by-name/mi/mini-calc/package.nix
+++ b/pkgs/by-name/mi/mini-calc/package.nix
@@ -9,16 +9,16 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "mini-calc";
-  version = "3.0.1";
+  version = "3.2.0";
 
   src = fetchFromGitHub {
     owner = "coco33920";
     repo = "calc";
     rev = version;
-    hash = "sha256-vQQ0JKqNhcJ4UhbPzg3OmA2lmZ3HqNB3Ag68OffIXt0=";
+    hash = "sha256-f2xmc6wzZ5MwwBDYQNoxbFmIclZWd/xOOI4/MCmrnEI=";
   };
 
-  cargoHash = "sha256-PfhcQnAWK8/R+HTx/iHibqMvpjPDKUZssDbO9XgkOuk=";
+  cargoHash = "sha256-OiAU94URgOHZ/iNbCF5rE55zfZNkW3bdjPZo05kpIRo=";
 
   nativeBuildInputs = [ makeWrapper ];
   postFixup = ''
@@ -34,7 +34,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = {
-    description = "A fully-featured minimalistic configurable calculator written in Rust";
+    description = "Fully-featured minimalistic configurable calculator written in Rust";
     changelog = "https://github.com/coco33920/calc/blob/${version}/CHANGELOG.md";
     homepage = "https://calc.nwa2coco.fr";
     license = lib.licenses.gpl3Plus;
diff --git a/pkgs/by-name/mi/minijinja/package.nix b/pkgs/by-name/mi/minijinja/package.nix
index fa96849902de2..b8ca2a9c5931f 100644
--- a/pkgs/by-name/mi/minijinja/package.nix
+++ b/pkgs/by-name/mi/minijinja/package.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "minijinja";
-  version = "2.0.1";
+  version = "2.0.2";
 
   src = fetchFromGitHub {
     owner = "mitsuhiko";
     repo = "minijinja";
     rev = version;
-    hash = "sha256-6TUi9YY/CtxaFpW8itAiXDFYRet56y6h+okc3cNKzdk=";
+    hash = "sha256-aqoUsVj9XYlbi8wh2Rqxy+M9+RU9NLp97qlpTKUlJEI=";
   };
 
-  cargoHash = "sha256-QNGdJg+6mUhWTvLSuLRnPFe2F42UDGnYPEqlVr7jF3s=";
+  cargoHash = "sha256-G9nIlri7VwojNRsCwZxseZxcSxLqAKtnm+AV7TLqJm4=";
 
   # The tests relies on the presence of network connection
   doCheck = false;
diff --git a/pkgs/by-name/mi/miracode/package.nix b/pkgs/by-name/mi/miracode/package.nix
index 4dc1ad3f4eb3b..0ffcc3cdbfc60 100644
--- a/pkgs/by-name/mi/miracode/package.nix
+++ b/pkgs/by-name/mi/miracode/package.nix
@@ -23,7 +23,7 @@ stdenvNoCC.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A sharp, readable, vector-y version of Monocraft";
+    description = "Sharp, readable, vector-y version of Monocraft";
     homepage = "https://github.com/IdreesInc/Miracode";
     license = licenses.ofl;
     platforms = platforms.all;
diff --git a/pkgs/by-name/mi/miru/package.nix b/pkgs/by-name/mi/miru/package.nix
index e8bcb7729d999..c96def129eb09 100644
--- a/pkgs/by-name/mi/miru/package.nix
+++ b/pkgs/by-name/mi/miru/package.nix
@@ -5,12 +5,12 @@
 
 appimageTools.wrapType2 rec {
   pname = "miru";
-  version = "5.1.0";
+  version = "5.1.3";
 
   src = fetchurl {
     url = "https://github.com/ThaUnknown/miru/releases/download/v${version}/linux-Miru-${version}.AppImage";
     name = "${pname}-${version}.AppImage";
-    sha256 = "sha256-N9I5YNFIfBmANCnJA3gUmgq04cc5LLfOsYiEdwJupf8=";
+    sha256 = "sha256-F2wFCZvuANoeBNO+o3Rs/DJtyIVQl46MQCpXQcRiDHs=";
   };
 
   extraInstallCommands =
diff --git a/pkgs/by-name/mi/misconfig-mapper/package.nix b/pkgs/by-name/mi/misconfig-mapper/package.nix
index ab4945b3a9088..5db723ea0365b 100644
--- a/pkgs/by-name/mi/misconfig-mapper/package.nix
+++ b/pkgs/by-name/mi/misconfig-mapper/package.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "misconfig-mapper";
-  version = "1.2.0";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "intigriti";
     repo = "misconfig-mapper";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sG0irM7IdXxWrexN4vR+e8V0KeW+9c7umKj0hnIZwLs=";
+    hash = "sha256-pQAv4waEocsSDGSOJlK7s5g9rkQGVJRGOpcB3HvG2yo=";
   };
 
-  vendorHash = "sha256-lkVTgnWdk9eW6QtKScK8NckcXGzsHeIwjSoUx85AGU8=";
+  vendorHash = "sha256-T4SDL1Pq3mfN6Qd13Safof1EgCqQVB2+K1qJHm+2ilc=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/by-name/mi/mixxc/package.nix b/pkgs/by-name/mi/mixxc/package.nix
index 44287a81aeb3b..c8699987f4b92 100644
--- a/pkgs/by-name/mi/mixxc/package.nix
+++ b/pkgs/by-name/mi/mixxc/package.nix
@@ -57,7 +57,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = {
-    description = "A minimalistic and customizable volume mixer";
+    description = "Minimalistic and customizable volume mixer";
     homepage = "https://github.com/Elvyria/mixxc";
     license = with lib.licenses; [ mit ];
     maintainers = with lib.maintainers; [ daru-san ];
diff --git a/pkgs/by-name/mk/mkbootimage/package.nix b/pkgs/by-name/mk/mkbootimage/package.nix
index 47a5d69b9e602..278162bafcd6f 100644
--- a/pkgs/by-name/mk/mkbootimage/package.nix
+++ b/pkgs/by-name/mk/mkbootimage/package.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
   hardeningDisable = [ "fortify" ];
 
   meta = with lib; {
-    description = "An open source replacement of the Xilinx bootgen application";
+    description = "Open source replacement of the Xilinx bootgen application";
     homepage = "https://github.com/antmicro/zynq-mkbootimage";
     license = licenses.bsd2;
     platforms = platforms.linux;
diff --git a/pkgs/by-name/mk/mkjson/generated.nix b/pkgs/by-name/mk/mkjson/generated.nix
index a89306f5b427e..e20313a25d413 100644
--- a/pkgs/by-name/mk/mkjson/generated.nix
+++ b/pkgs/by-name/mk/mkjson/generated.nix
@@ -38,7 +38,7 @@ mkDerivation rec {
     time unordered-containers uuid vector
   ];
 
-  description = "A commandline tool to generate static or random JSON records";
+  description = "Commandline tool to generate static or random JSON records";
   homepage = "https://github.com/mfussenegger/mkjson";
   license = lib.licenses.mit;
   maintainers = with lib.maintainers; [ athas ];
diff --git a/pkgs/by-name/ml/mlx42/package.nix b/pkgs/by-name/ml/mlx42/package.nix
index 3387dec3378d5..1f485d42aab9c 100644
--- a/pkgs/by-name/ml/mlx42/package.nix
+++ b/pkgs/by-name/ml/mlx42/package.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , glfw
 , darwin
@@ -11,13 +10,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "mlx42";
-  version = "2.3.3";
+  version = "2.3.4";
 
   src = fetchFromGitHub {
     owner = "codam-coding-college";
     repo = "MLX42";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-igkTeOnqGYBISzmtDGlDx9cGJjoQ8fzXtVSR9hU4F5E=";
+    hash = "sha256-c4LoTePHhQeZTx33V1K3ZyXmT7vjB6NdkGVAiSuJKfI=";
   };
 
   postPatch = ''
@@ -42,7 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     changelog = "https://github.com/codam-coding-college/MLX42/releases/tag/${finalAttrs.src.rev}";
-    description = "A simple cross-platform graphics library that uses GLFW and OpenGL";
+    description = "Simple cross-platform graphics library that uses GLFW and OpenGL";
     homepage = "https://github.com/codam-coding-college/MLX42";
     license = lib.licenses.gpl2Only;
     maintainers = with lib.maintainers; [ tomasajt ];
diff --git a/pkgs/by-name/mo/modern-cpp-kafka/package.nix b/pkgs/by-name/mo/modern-cpp-kafka/package.nix
index 7986c63aab53b..f8db36d613bf8 100644
--- a/pkgs/by-name/mo/modern-cpp-kafka/package.nix
+++ b/pkgs/by-name/mo/modern-cpp-kafka/package.nix
@@ -21,14 +21,14 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
-    (fetchpatch {
+    (fetchpatch { # https://github.com/morganstanley/modern-cpp-kafka/pull/221
       name = "fix-avoid-overwriting-library-paths.patch";
-      url = "https://github.com/morganstanley/modern-cpp-kafka/pull/221.patch";
+      url = "https://github.com/morganstanley/modern-cpp-kafka/compare/a146d10bcf166f55299c7a55728abaaea52cb0e5...a0b5ec08315759097ce656813be57b2c38d79091.patch";
       hash = "sha256-UsQcMvJoRTn5kgXhmXOyqfW3n59kGKO596U2WjtdqAY=";
     })
-    (fetchpatch {
+    (fetchpatch { # https://github.com/morganstanley/modern-cpp-kafka/pull/222
       name = "add-pkg-config-cmake-config.patch";
-      url = "https://github.com/morganstanley/modern-cpp-kafka/pull/222.patch";
+      url = "https://github.com/morganstanley/modern-cpp-kafka/commit/edc576ab83710412f6201e2bb8de5cb41682ee4a.patch";
       hash = "sha256-OjoSttnpgEwSZjCVKc888xJb5f1Dulu/rQqoGmqXNM4=";
     })
     # Fix gcc-13 build failure:
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
   checkInputs = [ gtest rapidjson ];
 
   meta = with lib; {
-    description = "A C++ API for Kafka clients (i.e. KafkaProducer, KafkaConsumer, AdminClient)";
+    description = "C++ API for Kafka clients (i.e. KafkaProducer, KafkaConsumer, AdminClient)";
     homepage = "https://github.com/morganstanley/modern-cpp-kafka";
     license = licenses.asl20;
     maintainers = with maintainers; [ ditsuke ];
diff --git a/pkgs/tools/misc/mods/default.nix b/pkgs/by-name/mo/mods/package.nix
index 331992986264f..8f3b3b78220cd 100644
--- a/pkgs/tools/misc/mods/default.nix
+++ b/pkgs/by-name/mo/mods/package.nix
@@ -1,25 +1,33 @@
-{ lib
-, buildGoModule
-, fetchFromGitHub
-, gitUpdater
-, testers
-, mods
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+  gitUpdater,
+  testers,
+  mods,
 }:
 
 buildGoModule rec {
   pname = "mods";
-  version = "1.3.1";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "charmbracelet";
     repo = "mods";
     rev = "v${version}";
-    hash = "sha256-9sr6R7Keg9NQQapZKnjfrMOJilQEYCs8AS04TuNWQ68=";
+    hash = "sha256-MlFWYoSyk1i2uaD04chajsxKlRMtRceJOCrADMrEL60=";
   };
 
-  vendorHash = "sha256-BL5bxyeVkcm7GO1Kzk9d/hj2wY50UhauEFq9YQ/JbCE=";
+  vendorHash = "sha256-bfo91VGwLvCGS+BSfe+9/voTFfG4lMOOfK72gSLyv9c=";
 
-  ldflags = [ "-s" "-w" "-X=main.Version=${version}" ];
+  ldflags = [
+    "-s"
+    "-w"
+    "-X=main.Version=${version}"
+  ];
+
+  # These tests require internet access.
+  checkFlags = [ "-skip=^TestLoad/http_url$|^TestLoad/https_url$" ];
 
   passthru = {
     updateScript = gitUpdater {
diff --git a/pkgs/by-name/mo/moe/package.nix b/pkgs/by-name/mo/moe/package.nix
index 766d802150207..e60ce728a6fe6 100644
--- a/pkgs/by-name/mo/moe/package.nix
+++ b/pkgs/by-name/mo/moe/package.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://www.gnu.org/software/moe/";
-    description = "A small, 8-bit clean editor";
+    description = "Small, 8-bit clean editor";
     longDescription = ''
       GNU moe is a powerful, 8-bit clean, console text editor for ISO-8859 and
       ASCII character encodings. It has a modeless, user-friendly interface,
diff --git a/pkgs/by-name/mo/mokuro/package.nix b/pkgs/by-name/mo/mokuro/package.nix
new file mode 100644
index 0000000000000..95054f371480b
--- /dev/null
+++ b/pkgs/by-name/mo/mokuro/package.nix
@@ -0,0 +1,61 @@
+{
+  lib,
+  python3Packages,
+  fetchFromGitHub,
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "mokuro";
+  version = "0.1.8";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "kha-white";
+    repo = "mokuro";
+    rev = "v${version}";
+    hash = "sha256-w+hhUt2fTl9zrca4xotK5eNhbfragYNC0u5WDwNGb7k=";
+    fetchSubmodules = true;
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py \
+        --replace-fail 'opencv-python' 'opencv'
+  '';
+
+  nativeBuildInputs = with python3Packages; [ pythonRelaxDepsHook ];
+
+  pythonRelaxDeps = [ "torchvision" ];
+
+  build-system = with python3Packages; [ setuptools ];
+
+  dependencies = with python3Packages; [
+    fire
+    loguru
+    manga-ocr
+    natsort
+    numpy
+    opencv4
+    pillow
+    pyclipper
+    requests
+    scipy
+    shapely
+    torch
+    torchsummary
+    torchvision
+    transformers
+    tqdm
+    yattag
+  ];
+
+  # tests try to use the network
+  doCheck = false;
+
+  meta = {
+    description = "Read Japanese manga inside browser with selectable text";
+    homepage = "https://github.com/kha-white/mokuro";
+    license = lib.licenses.gpl3Only;
+    mainProgram = "mokuro";
+    maintainers = with lib.maintainers; [ tomasajt ];
+  };
+}
diff --git a/pkgs/by-name/mo/mold/package.nix b/pkgs/by-name/mo/mold/package.nix
index 32992d6a04c1a..d09ef06864a19 100644
--- a/pkgs/by-name/mo/mold/package.nix
+++ b/pkgs/by-name/mo/mold/package.nix
@@ -23,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mold";
-  version = "2.31.0";
+  version = "2.32.0";
 
   src = fetchFromGitHub {
     owner = "rui314";
     repo = "mold";
     rev = "v${version}";
-    hash = "sha256-CUIk1YACM+eCuxyUqyKaVBF00Ybxr23D+FQuXv45Qrs=";
+    hash = "sha256-0cidxsr7mZLtEMSXc+ZFH9l3pXNi4Fyv27XDks+th/I=";
   };
 
   nativeBuildInputs = [
@@ -102,7 +102,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A faster drop-in replacement for existing Unix linkers (unwrapped)";
+    description = "Faster drop-in replacement for existing Unix linkers (unwrapped)";
     longDescription = ''
       mold is a faster drop-in replacement for existing Unix linkers. It is
       several times faster than the LLVM lld linker. mold is designed to
diff --git a/pkgs/by-name/mo/mommy/package.nix b/pkgs/by-name/mo/mommy/package.nix
index 8d21870685147..280b8caae9969 100644
--- a/pkgs/by-name/mo/mommy/package.nix
+++ b/pkgs/by-name/mo/mommy/package.nix
@@ -4,7 +4,6 @@
 , makeWrapper
 , writeText
 , shellspec
-, fetchpatch
   # usage:
   # pkgs.mommy.override {
   #  mommySettings.sweetie = "catgirl";
diff --git a/pkgs/by-name/mo/monaspace/package.nix b/pkgs/by-name/mo/monaspace/package.nix
index 9612a78a8afdc..bf360c0086bae 100644
--- a/pkgs/by-name/mo/monaspace/package.nix
+++ b/pkgs/by-name/mo/monaspace/package.nix
@@ -28,7 +28,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "An innovative superfamily of fonts for code";
+    description = "Innovative superfamily of fonts for code";
     longDescription = ''
       Since the earliest days of the teletype machine, code has been set in
       monospaced type — letters, on a grid. Monaspace is a new type system that
diff --git a/pkgs/by-name/mo/moneydance/package.nix b/pkgs/by-name/mo/moneydance/package.nix
index b7929fe7383d8..a5e897db2ec75 100644
--- a/pkgs/by-name/mo/moneydance/package.nix
+++ b/pkgs/by-name/mo/moneydance/package.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://infinitekind.com/moneydance";
     changelog = "https://infinitekind.com/stabledl/2024_5118/changelog.txt";
-    description = "An easy to use and full-featured personal finance app that doesn't compromise your privacy";
+    description = "Easy to use and full-featured personal finance app that doesn't compromise your privacy";
     sourceProvenance = [ lib.sourceTypes.binaryBytecode ];
     license = lib.licenses.unfree;
     # Darwin refers to Zulu Java, which breaks the evaluation of this derivation
diff --git a/pkgs/by-name/mo/moproxy/package.nix b/pkgs/by-name/mo/moproxy/package.nix
index ca25da7d401b0..7c320cad4889d 100644
--- a/pkgs/by-name/mo/moproxy/package.nix
+++ b/pkgs/by-name/mo/moproxy/package.nix
@@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec{
 
   meta = with lib; {
     homepage = "https://github.com/sorz/moproxy";
-    description = "A transparent TCP to SOCKSv5/HTTP proxy on Linux written in Rust";
+    description = "Transparent TCP to SOCKSv5/HTTP proxy on Linux written in Rust";
     license = licenses.mit;
     mainProgram = "moproxy";
     maintainers = with maintainers; [ oluceps ];
diff --git a/pkgs/by-name/mo/morewaita-icon-theme/package.nix b/pkgs/by-name/mo/morewaita-icon-theme/package.nix
index be19082d6d292..d5668ce5428a8 100644
--- a/pkgs/by-name/mo/morewaita-icon-theme/package.nix
+++ b/pkgs/by-name/mo/morewaita-icon-theme/package.nix
@@ -32,7 +32,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An Adwaita style extra icons theme for Gnome Shell";
+    description = "Adwaita style extra icons theme for Gnome Shell";
     homepage = "https://github.com/somepaulo/MoreWaita";
     license = with licenses; [ gpl3Only ];
     platforms = platforms.linux;
diff --git a/pkgs/by-name/mo/mountpoint-s3/package.nix b/pkgs/by-name/mo/mountpoint-s3/package.nix
index 5aff3e5528423..4d4b3cedc006e 100644
--- a/pkgs/by-name/mo/mountpoint-s3/package.nix
+++ b/pkgs/by-name/mo/mountpoint-s3/package.nix
@@ -51,7 +51,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/awslabs/mountpoint-s3";
-    description = "A simple, high-throughput file client for mounting an Amazon S3 bucket as a local file system.";
+    description = "Simple, high-throughput file client for mounting an Amazon S3 bucket as a local file system";
     license = licenses.asl20;
     maintainers = with maintainers; [ lblasc ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/mousai/default.nix b/pkgs/by-name/mo/mousai/package.nix
index 1ce6a0ea82091..48535143a5094 100644
--- a/pkgs/applications/audio/mousai/default.nix
+++ b/pkgs/by-name/mo/mousai/package.nix
@@ -23,19 +23,19 @@
 
 stdenv.mkDerivation rec {
   pname = "mousai";
-  version = "0.7.6";
+  version = "0.7.7";
 
   src = fetchFromGitHub {
     owner = "SeaDve";
     repo = "Mousai";
     rev = "v${version}";
-    hash = "sha256-QInnKjGYaWlIj+F3upQ8CJ6RqCM72Y+BGrrezndqfOg=";
+    hash = "sha256-8N/31WhE79qLzhWxa0EJXJ4k/rg7HUqXZkidbgwNHo4=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-/AwTNuDdhAhj/kbc6EdC3FKGO1LfZIY68utPjcrw0S0=";
+    hash = "sha256-FjnRI1vHA9YF/Uw2+hDtMJmeJVa5RcxaYoG4XgXa9Ds=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/mo/mousam/package.nix b/pkgs/by-name/mo/mousam/package.nix
index 4990c96954f6c..bb57866d46cc2 100644
--- a/pkgs/by-name/mo/mousam/package.nix
+++ b/pkgs/by-name/mo/mousam/package.nix
@@ -12,15 +12,15 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "mousam";
-  version = "1.2.0";
+  version = "1.3.1";
   # built with meson, not a python format
   pyproject = false;
 
   src = fetchFromGitHub {
     owner = "amit9838";
     repo = "mousam";
-    rev = "v${version}";
-    hash = "sha256-/mOb4Pgdn5DcxwHjlI8L9kKD/Y6a4vROLbsQBb62VXM=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-QFEn7o3DRJyRLbEfb86AsS/ifYqzs3b5n2fZa/9Mm1A=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/mo/mousecape/package.nix b/pkgs/by-name/mo/mousecape/package.nix
index 7604b360dd656..3f29a01358276 100644
--- a/pkgs/by-name/mo/mousecape/package.nix
+++ b/pkgs/by-name/mo/mousecape/package.nix
@@ -22,7 +22,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A cursor manager for macOS built using private, nonintrusive CoreGraphics APIs";
+    description = "Cursor manager for macOS built using private, nonintrusive CoreGraphics APIs";
     homepage = "https://github.com/alexzielenski/Mousecape";
     license = with lib; licenses.free;
     maintainers = with lib; with maintainers; [ donteatoreo ];
diff --git a/pkgs/by-name/mo/mov-cli/package.nix b/pkgs/by-name/mo/mov-cli/package.nix
index cd6f17f7e7a27..05691e619285a 100644
--- a/pkgs/by-name/mo/mov-cli/package.nix
+++ b/pkgs/by-name/mo/mov-cli/package.nix
@@ -56,7 +56,7 @@ python3.pkgs.buildPythonPackage {
 
   meta = with lib; {
     homepage = "https://github.com/mov-cli/mov-cli";
-    description = "A cli tool to browse and watch movies";
+    description = "Cli tool to browse and watch movies";
     license = with lib.licenses; [ gpl3Only ];
     mainProgram = "mov-cli";
     maintainers = with lib.maintainers; [ baitinq ];
diff --git a/pkgs/by-name/mo/movim/package.nix b/pkgs/by-name/mo/movim/package.nix
index ed00000634587..22b9b21341d6f 100644
--- a/pkgs/by-name/mo/movim/package.nix
+++ b/pkgs/by-name/mo/movim/package.nix
@@ -136,7 +136,7 @@ php.buildComposerProject (finalAttrs: {
   };
 
   meta = {
-    description = "a federated blogging & chat platform that acts as a web front end for the XMPP protocol";
+    description = "Federated blogging & chat platform that acts as a web front end for the XMPP protocol";
     homepage = "https://movim.eu";
     license = lib.licenses.agpl3Plus;
     maintainers = with lib.maintainers; [ toastal ];
diff --git a/pkgs/tools/networking/mpack/CVE-2011-4919.patch b/pkgs/by-name/mp/mpack/CVE-2011-4919.patch
index 10b9a1116ef39..10b9a1116ef39 100644
--- a/pkgs/tools/networking/mpack/CVE-2011-4919.patch
+++ b/pkgs/by-name/mp/mpack/CVE-2011-4919.patch
diff --git a/pkgs/tools/networking/mpack/build-fix.patch b/pkgs/by-name/mp/mpack/build-fix.patch
index 0329bedd07f39..0329bedd07f39 100644
--- a/pkgs/tools/networking/mpack/build-fix.patch
+++ b/pkgs/by-name/mp/mpack/build-fix.patch
diff --git a/pkgs/tools/networking/mpack/default.nix b/pkgs/by-name/mp/mpack/package.nix
index 669ef500c4556..d428fbe664c92 100644
--- a/pkgs/tools/networking/mpack/default.nix
+++ b/pkgs/by-name/mp/mpack/package.nix
@@ -1,4 +1,10 @@
-{ lib, stdenv, fetchurl }:
+{
+  lib,
+  stdenv,
+  fetchurl,
+  testers,
+  mpack,
+}:
 
 stdenv.mkDerivation rec {
   pname = "mpack";
@@ -9,7 +15,11 @@ stdenv.mkDerivation rec {
     sha256 = "0k590z96509k96zxmhv72gkwhrlf55jkmyqlzi72m61r7axhhh97";
   };
 
-  patches = [ ./build-fix.patch ./sendmail-via-execvp.diff ./CVE-2011-4919.patch ];
+  patches = [
+    ./build-fix.patch
+    ./sendmail-via-execvp.diff
+    ./CVE-2011-4919.patch
+  ];
 
   postPatch = ''
     for f in *.{c,man,pl,unix} ; do
@@ -28,9 +38,20 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.tests = {
+    version = testers.testVersion {
+      command = ''
+        mpack 2>&1 || echo "mpack exited with error code $?"
+      '';
+      package = mpack;
+      version = "mpack version ${version}";
+    };
+  };
+
   meta = with lib; {
     description = "Utilities for encoding and decoding binary files in MIME";
     license = licenses.free;
     platforms = platforms.linux;
+    maintainers = with maintainers; [ tomodachi94 ];
   };
 }
diff --git a/pkgs/tools/networking/mpack/sendmail-via-execvp.diff b/pkgs/by-name/mp/mpack/sendmail-via-execvp.diff
index 8f10901038d6b..8f10901038d6b 100644
--- a/pkgs/tools/networking/mpack/sendmail-via-execvp.diff
+++ b/pkgs/by-name/mp/mpack/sendmail-via-execvp.diff
diff --git a/pkgs/by-name/mu/muffon/package.nix b/pkgs/by-name/mu/muffon/package.nix
new file mode 100644
index 0000000000000..43a5f135b8444
--- /dev/null
+++ b/pkgs/by-name/mu/muffon/package.nix
@@ -0,0 +1,41 @@
+{
+  lib,
+  fetchurl,
+  appimageTools,
+  makeWrapper,
+}:
+
+let
+  pname = "muffon";
+  version = "2.0.3";
+  src = fetchurl {
+    url = "https://github.com/staniel359/muffon/releases/download/v${version}/muffon-${version}-linux-x86_64.AppImage";
+    hash = "sha256-2eLe/xvdWcOcUSE0D+pMOcOYCfFVEyKO13LiaJiZgX0=";
+  };
+  appimageContents = appimageTools.extractType2 { inherit pname src version; };
+in
+appimageTools.wrapType2 {
+  inherit pname src version;
+
+  extraInstallCommands = ''
+    source "${makeWrapper}/nix-support/setup-hook"
+    wrapProgram $out/bin/muffon \
+      --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
+    install -m 444 -D ${appimageContents}/muffon.desktop -t $out/share/applications
+    substituteInPlace $out/share/applications/muffon.desktop \
+      --replace-fail 'Exec=AppRun' 'Exec=muffon'
+    install -m 444 -D ${appimageContents}/muffon.png \
+      $out/share/icons/hicolor/512x512/apps/muffon.png
+  '';
+
+  meta = {
+    description = "Advanced multi-source music streaming client";
+    homepage = "https://muffon.netlify.app/";
+    changelog = "https://github.com/staniel359/muffon/releases/tag/v${version}";
+    license = lib.licenses.agpl3Only;
+    maintainers = with lib.maintainers; [ octodi ];
+    mainProgram = "muffon";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/by-name/mu/multiplex/package.nix b/pkgs/by-name/mu/multiplex/package.nix
new file mode 100644
index 0000000000000..8486bf9441246
--- /dev/null
+++ b/pkgs/by-name/mu/multiplex/package.nix
@@ -0,0 +1,67 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+  pkg-config,
+  gobject-introspection,
+  wrapGAppsHook4,
+  libadwaita,
+}:
+
+buildGoModule rec {
+  pname = "multiplex";
+  version = "0.1.4";
+
+  src = fetchFromGitHub {
+    owner = "pojntfx";
+    repo = "multiplex";
+    rev = "v${version}";
+    hash = "sha256-6xZ46LeFuJXwd7s63YKekUIdb8ytdLk+rp+tFox27zY=";
+  };
+
+  vendorHash = "sha256-S14dMAejoVTVn3rRdZyG+npM5kNehHwntJkeW3M7Stk=";
+
+  nativeBuildInputs = [
+    pkg-config
+    gobject-introspection
+    wrapGAppsHook4
+  ];
+
+  buildInputs = [ libadwaita ];
+
+  # recursively generate all files requested by go:generate
+  preBuild = ''
+    go generate ./...
+  '';
+
+  postInstall = ''
+    install -Dm644 -t $out/share/applications com.pojtinger.felicitas.Multiplex.desktop
+    install -Dm644 -t $out/share/metainfo com.pojtinger.felicitas.Multiplex.metainfo.xml
+    # The provided pixmap icons appears to be a bit blurry so not installing them
+    install -Dm644 docs/icon.svg $out/share/icons/hicolor/scalable/apps/com.pojtinger.felicitas.Multiplex.svg
+    install -Dm644 docs/icon-symbolic.svg $out/share/icons/hicolor/symbolic/apps/com.pojtinger.felicitas.Multiplex-symbolic.svg
+  '';
+
+  meta = {
+    description = "Watch torrents with your friends";
+    longDescription = ''
+      Multiplex is an app to watch torrents together, providing an experience similar
+      to Apple's SharePlay and Amazon's Prime Video Watch Party.
+
+      It enables you to:
+      - Stream any file directly using a wide range of video and audio formats with
+        the mpv video player.
+      - Host online watch parties while preserving your privacy by synchronizing
+        video playback with friends without a central server using weron.
+      - Bypass internet restrictions by optionally separating the hTorrent HTTP to
+        BitTorrent gateway and user interface into two separate components.
+    '';
+    homepage = "https://github.com/pojntfx/multiplex";
+    license = with lib.licenses; [
+      agpl3Plus
+      cc0
+    ];
+    mainProgram = "multiplex";
+    maintainers = with lib.maintainers; [ aleksana ];
+  };
+}
diff --git a/pkgs/by-name/mu/multirun/package.nix b/pkgs/by-name/mu/multirun/package.nix
index 4f59a8bd73281..2886c2ec492b6 100644
--- a/pkgs/by-name/mu/multirun/package.nix
+++ b/pkgs/by-name/mu/multirun/package.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A minimalist init process designed for Docker";
+    description = "Minimalist init process designed for Docker";
     homepage = "https://github.com/nicolas-van/multirun";
     license = licenses.mit;
     maintainers = with maintainers; [ nickcao ];
diff --git a/pkgs/by-name/mu/muparser/package.nix b/pkgs/by-name/mu/muparser/package.nix
index 12d0c64922334..c73273d522de5 100644
--- a/pkgs/by-name/mu/muparser/package.nix
+++ b/pkgs/by-name/mu/muparser/package.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    description = "An extensible high performance math expression parser library written in C++";
+    description = "Extensible high performance math expression parser library written in C++";
     homepage = "https://beltoforion.de/en/muparser/";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ wegank ];
diff --git a/pkgs/by-name/mu/mus/package.nix b/pkgs/by-name/mu/mus/package.nix
index c1abc1666ab2e..0273e443b95af 100644
--- a/pkgs/by-name/mu/mus/package.nix
+++ b/pkgs/by-name/mu/mus/package.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-K9B8y9pOHcAOrUCmCB0zW2wy81DTF3K97gPYmAiKwAM=";
 
   meta = with lib; {
-    description = "a pretty good mpd client";
+    description = "Pretty good mpd client";
     homepage = "https://sr.ht/~nbsp/mus";
     license = licenses.mit;
     maintainers = with maintainers; [ nbsp ];
diff --git a/pkgs/by-name/my/mycelium/Cargo.lock b/pkgs/by-name/my/mycelium/Cargo.lock
index bf8ad6ce4d743..d60fb37a9c0c9 100644
--- a/pkgs/by-name/my/mycelium/Cargo.lock
+++ b/pkgs/by-name/my/mycelium/Cargo.lock
@@ -29,9 +29,9 @@ dependencies = [
 
 [[package]]
 name = "aes"
-version = "0.8.3"
+version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2"
+checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0"
 dependencies = [
  "cfg-if",
  "cipher",
@@ -53,57 +53,69 @@ dependencies = [
 ]
 
 [[package]]
+name = "ahash"
+version = "0.7.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
+dependencies = [
+ "getrandom",
+ "once_cell",
+ "version_check",
+]
+
+[[package]]
 name = "aho-corasick"
-version = "1.1.2"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "anstream"
-version = "0.6.11"
+version = "0.6.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
+checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b"
 dependencies = [
  "anstyle",
  "anstyle-parse",
  "anstyle-query",
  "anstyle-wincon",
  "colorchoice",
+ "is_terminal_polyfill",
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle"
-version = "1.0.4"
+version = "1.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
+checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.3"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
+checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4"
 dependencies = [
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle-query"
-version = "1.0.2"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
+checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5"
 dependencies = [
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "anstyle-wincon"
-version = "3.0.2"
+version = "3.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
+checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19"
 dependencies = [
  "anstyle",
  "windows-sys 0.52.0",
@@ -111,9 +123,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.79"
+version = "1.0.86"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
+checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
 
 [[package]]
 name = "arrayref"
@@ -129,20 +141,26 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
 
 [[package]]
 name = "async-trait"
-version = "0.1.77"
+version = "0.1.80"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
+checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.66",
 ]
 
 [[package]]
+name = "atomic-waker"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
+
+[[package]]
 name = "autocfg"
-version = "1.1.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
 
 [[package]]
 name = "axum"
@@ -170,7 +188,7 @@ dependencies = [
  "serde_json",
  "serde_path_to_error",
  "serde_urlencoded",
- "sync_wrapper 1.0.0",
+ "sync_wrapper 1.0.1",
  "tokio",
  "tower",
  "tower-layer",
@@ -199,9 +217,9 @@ dependencies = [
 
 [[package]]
 name = "backtrace"
-version = "0.3.69"
+version = "0.3.71"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d"
 dependencies = [
  "addr2line",
  "cc",
@@ -214,15 +232,9 @@ dependencies = [
 
 [[package]]
 name = "base64"
-version = "0.21.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
-
-[[package]]
-name = "base64"
-version = "0.22.0"
+version = "0.22.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51"
+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
 
 [[package]]
 name = "bitflags"
@@ -232,9 +244,21 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.2"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
+
+[[package]]
+name = "bitvec"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
+dependencies = [
+ "funty",
+ "radium",
+ "tap",
+ "wyz",
+]
 
 [[package]]
 name = "blake3"
@@ -250,10 +274,67 @@ dependencies = [
 ]
 
 [[package]]
+name = "borsh"
+version = "1.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6362ed55def622cddc70a4746a68554d7b687713770de539e59a739b249f8ed"
+dependencies = [
+ "borsh-derive",
+ "cfg_aliases 0.2.1",
+]
+
+[[package]]
+name = "borsh-derive"
+version = "1.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3ef8005764f53cd4dca619f5bf64cafd4664dada50ece25e4d81de54c80cc0b"
+dependencies = [
+ "once_cell",
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+ "syn_derive",
+]
+
+[[package]]
 name = "bumpalo"
-version = "3.14.0"
+version = "3.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
+
+[[package]]
+name = "byte-unit"
+version = "5.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+checksum = "33ac19bdf0b2665407c39d82dbc937e951e7e2001609f0fb32edd0af45a2d63e"
+dependencies = [
+ "rust_decimal",
+ "serde",
+ "utf8-width",
+]
+
+[[package]]
+name = "bytecheck"
+version = "0.6.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2"
+dependencies = [
+ "bytecheck_derive",
+ "ptr_meta",
+ "simdutf8",
+]
+
+[[package]]
+name = "bytecheck_derive"
+version = "0.6.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
 
 [[package]]
 name = "byteorder"
@@ -289,12 +370,9 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.83"
+version = "1.0.98"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
-dependencies = [
- "libc",
-]
+checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
 
 [[package]]
 name = "cfg-if"
@@ -309,6 +387,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
 
 [[package]]
+name = "cfg_aliases"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
+
+[[package]]
 name = "cipher"
 version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -349,7 +433,7 @@ dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -360,9 +444,9 @@ checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
 
 [[package]]
 name = "colorchoice"
-version = "1.0.0"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422"
 
 [[package]]
 name = "constant_time_eq"
@@ -407,6 +491,27 @@ dependencies = [
 ]
 
 [[package]]
+name = "csv"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe"
+dependencies = [
+ "csv-core",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "csv-core"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
 name = "ctr"
 version = "0.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -417,9 +522,9 @@ dependencies = [
 
 [[package]]
 name = "curve25519-dalek"
-version = "4.1.1"
+version = "4.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c"
+checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -439,7 +544,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -452,6 +557,27 @@ dependencies = [
 ]
 
 [[package]]
+name = "dirs-next"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
+dependencies = [
+ "cfg-if",
+ "dirs-sys-next",
+]
+
+[[package]]
+name = "dirs-sys-next"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
+[[package]]
 name = "dlopen2"
 version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -463,17 +589,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "env_logger"
-version = "0.10.2"
+name = "encode_unicode"
+version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
-dependencies = [
- "humantime",
- "is-terminal",
- "log",
- "regex",
- "termcolor",
-]
+checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0"
 
 [[package]]
 name = "equivalent"
@@ -483,9 +602,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "errno"
-version = "0.3.8"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
 dependencies = [
  "libc",
  "windows-sys 0.52.0",
@@ -493,9 +612,9 @@ dependencies = [
 
 [[package]]
 name = "etherparse"
-version = "0.14.3"
+version = "0.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "095ab548cf452be5813424558a18af88f0a620d0f4a3d8793aa09311a3b6fa5f"
+checksum = "21696e6dfe1057a166a042c6d27b89a46aad2ee1003e6e1e03c49d54fd3270d7"
 dependencies = [
  "arrayvec",
 ]
@@ -511,9 +630,9 @@ dependencies = [
 
 [[package]]
 name = "fiat-crypto"
-version = "0.2.5"
+version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7"
+checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d"
 
 [[package]]
 name = "fnv"
@@ -522,21 +641,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
-name = "foreign-types"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
-dependencies = [
- "foreign-types-shared",
-]
-
-[[package]]
-name = "foreign-types-shared"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-
-[[package]]
 name = "form_urlencoded"
 version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -546,6 +650,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "funty"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
+
+[[package]]
 name = "futures"
 version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -601,7 +711,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -659,9 +769,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.12"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
 dependencies = [
  "cfg-if",
  "libc",
@@ -670,9 +780,9 @@ dependencies = [
 
 [[package]]
 name = "ghash"
-version = "0.5.0"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40"
+checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1"
 dependencies = [
  "opaque-debug",
  "polyval",
@@ -686,15 +796,15 @@ checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
 name = "h2"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "816ec7294445779408f36fe57bc5b7fc1cf59664059096c65f905c1c61f58069"
+checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab"
 dependencies = [
+ "atomic-waker",
  "bytes",
  "fnv",
  "futures-core",
  "futures-sink",
- "futures-util",
  "http",
  "indexmap",
  "slab",
@@ -705,9 +815,18 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.14.3"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+dependencies = [
+ "ahash",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.14.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
 
 [[package]]
 name = "heck"
@@ -717,9 +836,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.4"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
 [[package]]
 name = "hex"
@@ -750,12 +869,12 @@ dependencies = [
 
 [[package]]
 name = "http-body-util"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840"
+checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d"
 dependencies = [
  "bytes",
- "futures-util",
+ "futures-core",
  "http",
  "http-body",
  "pin-project-lite",
@@ -774,16 +893,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
 
 [[package]]
-name = "humantime"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
-
-[[package]]
 name = "hyper"
-version = "1.2.0"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "186548d73ac615b32a73aafe38fb4f56c0d340e110e5a200bcadbaf2e199263a"
+checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -802,9 +915,9 @@ dependencies = [
 
 [[package]]
 name = "hyper-util"
-version = "0.1.3"
+version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa"
+checksum = "3d8d52be92d09acc2e01dddb7fde3ad983fc6489c7db4837e605bc3fca4cb63e"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -832,12 +945,12 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.1.0"
+version = "2.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
 dependencies = [
  "equivalent",
- "hashbrown",
+ "hashbrown 0.14.5",
 ]
 
 [[package]]
@@ -850,17 +963,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "io-lifetimes"
-version = "1.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
-dependencies = [
- "hermit-abi",
- "libc",
- "windows-sys 0.48.0",
-]
-
-[[package]]
 name = "ioctl-sys"
 version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -880,26 +982,32 @@ checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
 
 [[package]]
 name = "is-terminal"
-version = "0.4.10"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455"
+checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
 dependencies = [
  "hermit-abi",
- "rustix 0.38.30",
+ "libc",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
+name = "is_terminal_polyfill"
+version = "1.70.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800"
+
+[[package]]
 name = "itoa"
-version = "1.0.10"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
 
 [[package]]
 name = "js-sys"
-version = "0.3.67"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -922,37 +1030,41 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.154"
+version = "0.2.155"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346"
+checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
 
 [[package]]
 name = "libloading"
-version = "0.8.1"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
+checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
 dependencies = [
  "cfg-if",
- "windows-sys 0.48.0",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
-name = "linux-raw-sys"
-version = "0.1.4"
+name = "libredox"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
+checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
+dependencies = [
+ "bitflags 2.5.0",
+ "libc",
+]
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.13"
+version = "0.4.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
 
 [[package]]
 name = "lock_api"
-version = "0.4.11"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -1000,15 +1112,15 @@ checksum = "df39d232f5c40b0891c10216992c2f250c054105cb1e56f0fc9032db6203ecc1"
 
 [[package]]
 name = "memchr"
-version = "2.7.1"
+version = "2.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
 
 [[package]]
 name = "memoffset"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
 dependencies = [
  "autocfg",
 ]
@@ -1021,9 +1133,9 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.1"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae"
 dependencies = [
  "adler",
 ]
@@ -1041,7 +1153,7 @@ dependencies = [
 
 [[package]]
 name = "mycelium"
-version = "0.5.2"
+version = "0.5.3"
 dependencies = [
  "aes-gcm",
  "blake3",
@@ -1053,10 +1165,8 @@ dependencies = [
  "ipnet",
  "left-right",
  "libc",
- "log",
  "netdev",
- "nix 0.28.0",
- "openssl",
+ "nix 0.29.0",
  "quinn",
  "rand",
  "rcgen",
@@ -1064,37 +1174,83 @@ dependencies = [
  "rustls",
  "serde",
  "tokio",
- "tokio-openssl",
  "tokio-stream",
  "tokio-tun",
  "tokio-util",
+ "tracing",
+ "tracing-subscriber",
  "tun",
  "wintun 0.4.0",
  "x25519-dalek",
 ]
 
 [[package]]
-name = "myceliumd"
-version = "0.5.2"
+name = "mycelium-api"
+version = "0.5.3"
+dependencies = [
+ "axum",
+ "base64",
+ "mycelium",
+ "mycelium-metrics",
+ "serde",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "mycelium-cli"
+version = "0.5.3"
+dependencies = [
+ "base64",
+ "byte-unit",
+ "mycelium",
+ "mycelium-api",
+ "prettytable-rs",
+ "reqwest",
+ "serde",
+ "serde_json",
+ "tokio",
+ "tracing",
+ "urlencoding",
+]
+
+[[package]]
+name = "mycelium-metrics"
+version = "0.5.3"
 dependencies = [
  "axum",
- "base64 0.22.0",
- "clap",
- "log",
  "mycelium",
- "pretty_env_logger",
  "prometheus",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "myceliumd"
+version = "0.5.3"
+dependencies = [
+ "base64",
+ "byte-unit",
+ "clap",
+ "mycelium",
+ "mycelium-api",
+ "mycelium-cli",
+ "mycelium-metrics",
+ "prettytable-rs",
  "reqwest",
  "serde",
  "serde_json",
  "tokio",
+ "tracing",
+ "tracing-subscriber",
+ "urlencoding",
 ]
 
 [[package]]
 name = "netdev"
-version = "0.25.0"
+version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb353f5a5a852d5cc779c1c80bec0bd14a696ef832f3a761cb10091802c37109"
+checksum = "e12d9f49b8d4b9d7f97525ce65f6527079e549e8b2f010f15b921764e73d4baa"
 dependencies = [
  "dlopen2",
  "libc",
@@ -1160,9 +1316,9 @@ dependencies = [
 
 [[package]]
 name = "netlink-proto"
-version = "0.11.2"
+version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "842c6770fc4bb33dd902f41829c61ef872b8e38de1405aa0b938b27b8fba12c3"
+checksum = "86b33524dc0968bfad349684447bfce6db937a9ac3332a1fe60c0c5a5ce63f21"
 dependencies = [
  "bytes",
  "futures",
@@ -1175,9 +1331,9 @@ dependencies = [
 
 [[package]]
 name = "netlink-sys"
-version = "0.8.5"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411"
+checksum = "416060d346fbaf1f23f9512963e3e878f1a78e707cb699ba9215761754244307"
 dependencies = [
  "bytes",
  "futures",
@@ -1192,7 +1348,7 @@ version = "0.27.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "cfg-if",
  "libc",
 ]
@@ -1203,9 +1359,21 @@ version = "0.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "cfg-if",
- "cfg_aliases",
+ "cfg_aliases 0.1.1",
+ "libc",
+]
+
+[[package]]
+name = "nix"
+version = "0.29.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
+dependencies = [
+ "bitflags 2.5.0",
+ "cfg-if",
+ "cfg_aliases 0.2.1",
  "libc",
  "memoffset",
 ]
@@ -1221,6 +1389,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
+name = "num-traits"
+version = "0.2.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
 name = "num_cpus"
 version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1247,57 +1430,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "opaque-debug"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
-
-[[package]]
-name = "openssl"
-version = "0.10.64"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
-dependencies = [
- "bitflags 2.4.2",
- "cfg-if",
- "foreign-types",
- "libc",
- "once_cell",
- "openssl-macros",
- "openssl-sys",
-]
-
-[[package]]
-name = "openssl-macros"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
-]
-
-[[package]]
-name = "openssl-src"
-version = "300.2.3+3.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "openssl-sys"
-version = "0.9.102"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2"
-dependencies = [
- "cc",
- "libc",
- "openssl-src",
- "pkg-config",
- "vcpkg",
-]
+checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
 
 [[package]]
 name = "overload"
@@ -1307,9 +1442,9 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
 
 [[package]]
 name = "parking_lot"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
 dependencies = [
  "lock_api",
  "parking_lot_core",
@@ -1317,30 +1452,30 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.9"
+version = "0.9.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
 dependencies = [
  "cfg-if",
  "libc",
  "redox_syscall",
  "smallvec",
- "windows-targets 0.48.5",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
 name = "paste"
-version = "1.0.14"
+version = "1.0.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
+checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
 
 [[package]]
 name = "pem"
-version = "3.0.3"
+version = "3.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310"
+checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae"
 dependencies = [
- "base64 0.21.7",
+ "base64",
  "serde",
 ]
 
@@ -1352,29 +1487,29 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "pin-project"
-version = "1.1.3"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
+checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.1.3"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
+checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.13"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
 
 [[package]]
 name = "pin-utils"
@@ -1383,22 +1518,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
-name = "pkg-config"
-version = "0.3.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
-
-[[package]]
 name = "platforms"
-version = "3.3.0"
+version = "3.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c"
+checksum = "db23d408679286588f4d4644f965003d056e3dd5abcaaa938116871d7ce2fee7"
 
 [[package]]
 name = "polyval"
-version = "0.6.1"
+version = "0.6.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb"
+checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -1419,42 +1548,88 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[package]]
-name = "pretty_env_logger"
-version = "0.5.0"
+name = "prettytable-rs"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "865724d4dbe39d9f3dd3b52b88d859d66bcb2d6a0acfd5ea68a65fb66d4bdc1c"
+checksum = "eea25e07510aa6ab6547308ebe3c036016d162b8da920dbb079e3ba8acf3d95a"
 dependencies = [
- "env_logger",
- "log",
+ "csv",
+ "encode_unicode",
+ "is-terminal",
+ "lazy_static",
+ "term",
+ "unicode-width",
+]
+
+[[package]]
+name = "proc-macro-crate"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
+dependencies = [
+ "toml_edit",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
 ]
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.78"
+version = "1.0.84"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+checksum = "ec96c6a92621310b51366f1e28d05ef11489516e93be030060e5fc12024a49d6"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "procfs"
-version = "0.14.2"
+version = "0.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1de8dacb0873f77e6aefc6d71e044761fcc68060290f5b1089fcdf84626bb69"
+checksum = "731e0d9356b0c25f16f33b5be79b1c57b562f141ebfcdb0ad8ac2c13a24293b4"
 dependencies = [
- "bitflags 1.3.2",
- "byteorder",
+ "bitflags 2.5.0",
  "hex",
  "lazy_static",
- "rustix 0.36.17",
+ "procfs-core",
+ "rustix",
+]
+
+[[package]]
+name = "procfs-core"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d3554923a69f4ce04c4a754260c338f505ce22642d3830e049a399fc2059a29"
+dependencies = [
+ "bitflags 2.5.0",
+ "hex",
 ]
 
 [[package]]
 name = "prometheus"
-version = "0.13.3"
+version = "0.13.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c"
+checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1"
 dependencies = [
  "cfg-if",
  "fnv",
@@ -1467,10 +1642,30 @@ dependencies = [
 ]
 
 [[package]]
+name = "ptr_meta"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1"
+dependencies = [
+ "ptr_meta_derive",
+]
+
+[[package]]
+name = "ptr_meta_derive"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
 name = "quinn"
-version = "0.10.2"
+version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cc2c5017e4b43d5995dcea317bc46c1e09404c0a9664d2908f7f02dfe943d75"
+checksum = "904e3d3ba178131798c6d9375db2b13b34337d489b089fc5ba0825a2ff1bee73"
 dependencies = [
  "bytes",
  "pin-project-lite",
@@ -1485,13 +1680,13 @@ dependencies = [
 
 [[package]]
 name = "quinn-proto"
-version = "0.10.6"
+version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "141bf7dfde2fbc246bfd3fe12f2455aa24b0fbd9af535d8c86c7bd1381ff2b1a"
+checksum = "e974563a4b1c2206bbc61191ca4da9c22e4308b4c455e8906751cc7828393f08"
 dependencies = [
  "bytes",
  "rand",
- "ring 0.16.20",
+ "ring",
  "rustc-hash",
  "rustls",
  "slab",
@@ -1502,27 +1697,33 @@ dependencies = [
 
 [[package]]
 name = "quinn-udp"
-version = "0.4.1"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "055b4e778e8feb9f93c4e439f71dc2156ef13360b432b799e179a8c4cdf0b1d7"
+checksum = "e4f0def2590301f4f667db5a77f9694fb004f82796dc1a8b1508fafa3d0e8b72"
 dependencies = [
- "bytes",
  "libc",
+ "once_cell",
  "socket2",
  "tracing",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.35"
+version = "1.0.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
+name = "radium"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
+
+[[package]]
 name = "rand"
 version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1554,35 +1755,47 @@ dependencies = [
 
 [[package]]
 name = "rcgen"
-version = "0.12.1"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48406db8ac1f3cbc7dcdb56ec355343817958a356ff430259bb07baf7607e1e1"
+checksum = "54077e1872c46788540de1ea3d7f4ccb1983d12f9aa909b234468676c1a36779"
 dependencies = [
  "pem",
- "ring 0.17.7",
+ "ring",
+ "rustls-pki-types",
  "time",
  "yasna",
 ]
 
 [[package]]
 name = "redox_syscall"
-version = "0.4.1"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.5.0",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891"
+dependencies = [
+ "getrandom",
+ "libredox",
+ "thiserror",
 ]
 
 [[package]]
 name = "regex"
-version = "1.10.3"
+version = "1.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-automata 0.4.4",
- "regex-syntax 0.8.2",
+ "regex-automata 0.4.6",
+ "regex-syntax 0.8.3",
 ]
 
 [[package]]
@@ -1596,13 +1809,13 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.4.4"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b7fa1134405e2ec9353fd416b17f8dacd46c473d7d3fd1cf202706a14eb792a"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-syntax 0.8.2",
+ "regex-syntax 0.8.3",
 ]
 
 [[package]]
@@ -1613,9 +1826,18 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
 
 [[package]]
 name = "regex-syntax"
-version = "0.8.2"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
+
+[[package]]
+name = "rend"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c"
+dependencies = [
+ "bytecheck",
+]
 
 [[package]]
 name = "reqwest"
@@ -1623,7 +1845,7 @@ version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10"
 dependencies = [
- "base64 0.22.0",
+ "base64",
  "bytes",
  "futures-core",
  "futures-util",
@@ -1654,31 +1876,46 @@ dependencies = [
 
 [[package]]
 name = "ring"
-version = "0.16.20"
+version = "0.17.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
+checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
 dependencies = [
  "cc",
+ "cfg-if",
+ "getrandom",
  "libc",
- "once_cell",
- "spin 0.5.2",
- "untrusted 0.7.1",
- "web-sys",
- "winapi",
+ "spin",
+ "untrusted",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
-name = "ring"
-version = "0.17.7"
+name = "rkyv"
+version = "0.7.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
+checksum = "5cba464629b3394fc4dbc6f940ff8f5b4ff5c7aef40f29166fd4ad12acbc99c0"
 dependencies = [
- "cc",
- "getrandom",
- "libc",
- "spin 0.9.8",
- "untrusted 0.9.0",
- "windows-sys 0.48.0",
+ "bitvec",
+ "bytecheck",
+ "bytes",
+ "hashbrown 0.12.3",
+ "ptr_meta",
+ "rend",
+ "rkyv_derive",
+ "seahash",
+ "tinyvec",
+ "uuid",
+]
+
+[[package]]
+name = "rkyv_derive"
+version = "0.7.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
 ]
 
 [[package]]
@@ -1700,16 +1937,32 @@ dependencies = [
 ]
 
 [[package]]
+name = "rust_decimal"
+version = "1.35.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1790d1c4c0ca81211399e0e0af16333276f375209e71a37b67698a373db5b47a"
+dependencies = [
+ "arrayvec",
+ "borsh",
+ "bytes",
+ "num-traits",
+ "rand",
+ "rkyv",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
 name = "rustc-demangle"
-version = "0.1.23"
+version = "0.1.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
 
 [[package]]
 name = "rustc-hash"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+checksum = "3450ed37fe9609abb6bc3b8891b6e078404e4c53c7332350e2e15126a95229bf"
 
 [[package]]
 name = "rustc_version"
@@ -1722,63 +1975,59 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.36.17"
+version = "0.38.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "305efbd14fde4139eb501df5f136994bb520b033fa9fbdce287507dc23b8c7ed"
+checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
 dependencies = [
- "bitflags 1.3.2",
- "errno",
- "io-lifetimes",
- "libc",
- "linux-raw-sys 0.1.4",
- "windows-sys 0.45.0",
-]
-
-[[package]]
-name = "rustix"
-version = "0.38.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca"
-dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "errno",
  "libc",
- "linux-raw-sys 0.4.13",
+ "linux-raw-sys",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "rustls"
-version = "0.21.12"
+version = "0.23.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e"
+checksum = "a218f0f6d05669de4eabfb24f31ce802035c952429d037507b4a4a39f0e60c5b"
 dependencies = [
- "ring 0.17.7",
+ "once_cell",
+ "ring",
+ "rustls-pki-types",
  "rustls-webpki",
- "sct",
+ "subtle",
+ "zeroize",
 ]
 
 [[package]]
+name = "rustls-pki-types"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d"
+
+[[package]]
 name = "rustls-webpki"
-version = "0.101.7"
+version = "0.102.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
+checksum = "ff448f7e92e913c4b7d4c6d8e4540a1724b319b4152b8aef6d4cf8339712b33e"
 dependencies = [
- "ring 0.17.7",
- "untrusted 0.9.0",
+ "ring",
+ "rustls-pki-types",
+ "untrusted",
 ]
 
 [[package]]
 name = "rustversion"
-version = "1.0.14"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
 
 [[package]]
 name = "ryu"
-version = "1.0.16"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
 
 [[package]]
 name = "scoped-tls"
@@ -1793,46 +2042,42 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
-name = "sct"
-version = "0.7.1"
+name = "seahash"
+version = "4.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
-dependencies = [
- "ring 0.17.7",
- "untrusted 0.9.0",
-]
+checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
 
 [[package]]
 name = "semver"
-version = "1.0.21"
+version = "1.0.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
+checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
 
 [[package]]
 name = "serde"
-version = "1.0.199"
+version = "1.0.203"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c9f6e76df036c77cd94996771fb40db98187f096dd0b9af39c6c6e452ba966a"
+checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.199"
+version = "1.0.203"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11bd257a6541e141e42ca6d24ae26f7714887b47e89aa739099104c7e4d3b7fc"
+checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.116"
+version = "1.0.117"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813"
+checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
 dependencies = [
  "itoa",
  "ryu",
@@ -1841,9 +2086,9 @@ dependencies = [
 
 [[package]]
 name = "serde_path_to_error"
-version = "0.1.15"
+version = "0.1.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebd154a240de39fdebcf5775d2675c204d7c13cf39a4c697be6493c8e734337c"
+checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6"
 dependencies = [
  "itoa",
  "serde",
@@ -1872,14 +2117,20 @@ dependencies = [
 
 [[package]]
 name = "signal-hook-registry"
-version = "1.4.1"
+version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
 dependencies = [
  "libc",
 ]
 
 [[package]]
+name = "simdutf8"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a"
+
+[[package]]
 name = "slab"
 version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1890,37 +2141,31 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.13.1"
+version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "socket2"
-version = "0.5.5"
+version = "0.5.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
 dependencies = [
  "libc",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "spin"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
-
-[[package]]
-name = "spin"
 version = "0.9.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
 
 [[package]]
 name = "strsim"
-version = "0.11.0"
+version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
 
 [[package]]
 name = "subtle"
@@ -1941,9 +2186,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.48"
+version = "2.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
+checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1951,6 +2196,18 @@ dependencies = [
 ]
 
 [[package]]
+name = "syn_derive"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b"
+dependencies = [
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
 name = "sync_wrapper"
 version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1958,9 +2215,9 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
 
 [[package]]
 name = "sync_wrapper"
-version = "1.0.0"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "384595c11a4e2969895cad5a8c4029115f5ab956a9e5ef4de79d11a426e5f20c"
+checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394"
 
 [[package]]
 name = "system-configuration"
@@ -1968,7 +2225,7 @@ version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "658bc6ee10a9b4fcf576e9b0819d95ec16f4d2c02d39fd83ac1c8789785c4a42"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "core-foundation",
  "system-configuration-sys",
 ]
@@ -1984,39 +2241,47 @@ dependencies = [
 ]
 
 [[package]]
-name = "termcolor"
-version = "1.4.1"
+name = "tap"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
+checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
+
+[[package]]
+name = "term"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f"
 dependencies = [
- "winapi-util",
+ "dirs-next",
+ "rustversion",
+ "winapi",
 ]
 
 [[package]]
 name = "thiserror"
-version = "1.0.56"
+version = "1.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
+checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.56"
+version = "1.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
+checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "thread_local"
-version = "1.1.7"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
 dependencies = [
  "cfg-if",
  "once_cell",
@@ -2024,11 +2289,12 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.31"
+version = "0.3.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e"
+checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
 dependencies = [
  "deranged",
+ "num-conv",
  "powerfmt",
  "serde",
  "time-core",
@@ -2057,9 +2323,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.37.0"
+version = "1.38.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787"
+checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a"
 dependencies = [
  "backtrace",
  "bytes",
@@ -2075,25 +2341,13 @@ dependencies = [
 
 [[package]]
 name = "tokio-macros"
-version = "2.2.0"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
+checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
-]
-
-[[package]]
-name = "tokio-openssl"
-version = "0.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ffab79df67727f6acf57f1ff743091873c24c579b1e2ce4d8f53e47ded4d63d"
-dependencies = [
- "futures-util",
- "openssl",
- "openssl-sys",
- "tokio",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -2122,16 +2376,32 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.7.10"
+version = "0.7.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
+checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1"
 dependencies = [
  "bytes",
  "futures-core",
  "futures-sink",
  "pin-project-lite",
  "tokio",
- "tracing",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf"
+
+[[package]]
+name = "toml_edit"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow",
 ]
 
 [[package]]
@@ -2147,7 +2417,6 @@ dependencies = [
  "tokio",
  "tower-layer",
  "tower-service",
- "tracing",
 ]
 
 [[package]]
@@ -2168,7 +2437,6 @@ version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
- "log",
  "pin-project-lite",
  "tracing-attributes",
  "tracing-core",
@@ -2182,7 +2450,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -2233,7 +2501,7 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
 [[package]]
 name = "tun"
 version = "0.6.1"
-source = "git+https://github.com/LeeSmet/rust-tun#eaad3340ef74475def7e080dedff77f7d830f3b8"
+source = "git+https://github.com/LeeSmet/rust-tun#eb4d41c0a5d6a6e9c55340e2f61e50683d9f4731"
 dependencies = [
  "byteorder",
  "bytes",
@@ -2267,14 +2535,20 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
 dependencies = [
  "tinyvec",
 ]
 
 [[package]]
+name = "unicode-width"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d"
+
+[[package]]
 name = "universal-hash"
 version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2286,12 +2560,6 @@ dependencies = [
 
 [[package]]
 name = "untrusted"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
-
-[[package]]
-name = "untrusted"
 version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
@@ -2308,22 +2576,34 @@ dependencies = [
 ]
 
 [[package]]
+name = "urlencoding"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
+
+[[package]]
+name = "utf8-width"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3"
+
+[[package]]
 name = "utf8parse"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
-name = "valuable"
-version = "0.1.0"
+name = "uuid"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
 
 [[package]]
-name = "vcpkg"
-version = "0.2.15"
+name = "valuable"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
 
 [[package]]
 name = "version_check"
@@ -2348,9 +2628,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.90"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -2358,24 +2638,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.90"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.66",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.40"
+version = "0.4.42"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461"
+checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -2385,9 +2665,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.90"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -2395,28 +2675,28 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.90"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.66",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.90"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
 name = "web-sys"
-version = "0.3.67"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed"
+checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -2439,15 +2719,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
-name = "winapi-util"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
-dependencies = [
- "winapi",
-]
-
-[[package]]
 name = "winapi-x86_64-pc-windows-gnu"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2479,7 +2750,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
 dependencies = [
  "windows-core 0.52.0",
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -2489,7 +2760,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49"
 dependencies = [
  "windows-core 0.54.0",
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -2507,7 +2778,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -2517,25 +2788,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65"
 dependencies = [
  "windows-result",
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
 name = "windows-result"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd19df78e5168dfb0aedc343d1d1b8d422ab2db6756d2dc3fef75035402a3f64"
-dependencies = [
- "windows-targets 0.52.4",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.45.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+checksum = "749f0da9cc72d82e600d8d2e44cadd0b9eedb9038f71a1c58556ac1c5791813b"
 dependencies = [
- "windows-targets 0.42.2",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -2553,22 +2815,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.4",
-]
-
-[[package]]
-name = "windows-targets"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
-dependencies = [
- "windows_aarch64_gnullvm 0.42.2",
- "windows_aarch64_msvc 0.42.2",
- "windows_i686_gnu 0.42.2",
- "windows_i686_msvc 0.42.2",
- "windows_x86_64_gnu 0.42.2",
- "windows_x86_64_gnullvm 0.42.2",
- "windows_x86_64_msvc 0.42.2",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -2588,42 +2835,31 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.4",
- "windows_aarch64_msvc 0.52.4",
- "windows_i686_gnu 0.52.4",
- "windows_i686_msvc 0.52.4",
- "windows_x86_64_gnu 0.52.4",
- "windows_x86_64_gnullvm 0.52.4",
- "windows_x86_64_msvc 0.52.4",
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
 ]
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
-
-[[package]]
-name = "windows_aarch64_gnullvm"
 version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.42.2"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -2633,15 +2869,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.42.2"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -2651,15 +2881,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
 
 [[package]]
-name = "windows_i686_msvc"
-version = "0.42.2"
+name = "windows_i686_gnullvm"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -2669,15 +2899,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.42.2"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -2687,15 +2911,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
-
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -2705,27 +2923,30 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.48.5"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
 
 [[package]]
-name = "windows_x86_64_msvc"
-version = "0.52.4"
+name = "winnow"
+version = "0.5.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
 
 [[package]]
 name = "winreg"
@@ -2764,6 +2985,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "wyz"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
+dependencies = [
+ "tap",
+]
+
+[[package]]
 name = "x25519-dalek"
 version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2786,9 +3016,9 @@ dependencies = [
 
 [[package]]
 name = "zeroize"
-version = "1.7.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
+checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde"
 dependencies = [
  "zeroize_derive",
 ]
@@ -2801,5 +3031,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.66",
 ]
diff --git a/pkgs/by-name/my/mycelium/package.nix b/pkgs/by-name/my/mycelium/package.nix
index eea61e0c326b6..9551413833ddd 100644
--- a/pkgs/by-name/my/mycelium/package.nix
+++ b/pkgs/by-name/my/mycelium/package.nix
@@ -8,19 +8,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mycelium";
-  version = "0.5.2";
+  version = "0.5.3";
+
+  sourceRoot = "source/myceliumd";
 
   src = fetchFromGitHub {
     owner = "threefoldtech";
     repo = "mycelium";
     rev = "v${version}";
-    hash = "sha256-Mz4YYpnuSGUwQANiXzsJNAYMugXL229E30wnZCu2lSM=";
+    hash = "sha256-nyHHuwOHaIh8WCxaQb7QoTReV09ydhHLYwEVHQg2Hek=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "tun-0.6.1" = "sha256-DelNPCOWvVSMS2BNGA2Gw/Mn9c7RdFNR21/jo1xf+xk=";
+      "tun-0.6.1" = "sha256-tJx/qRwPcZOAfxyjZUHKLKsLu+loltVUOCP8IzWMryM=";
     };
   };
 
diff --git a/pkgs/by-name/my/myks/package.nix b/pkgs/by-name/my/myks/package.nix
index 0205401138f97..df2e495c329b8 100644
--- a/pkgs/by-name/my/myks/package.nix
+++ b/pkgs/by-name/my/myks/package.nix
@@ -9,16 +9,16 @@
 
 buildGoModule rec {
   pname = "myks";
-  version = "4.1.1";
+  version = "4.2.0";
 
   src = fetchFromGitHub {
     owner = "mykso";
     repo = "myks";
     rev = "refs/tags/v${version}";
-    hash = "sha256-IJlSryyNQFubjBQJ59Gl5Wn3eniwZ0svbGAxLKIrCt4=";
+    hash = "sha256-98JkyRszWls2fWS3JxlYa8MRHKpC2ViiDoH8VEk6r3Q=";
   };
 
-  vendorHash = "sha256-u9dNmgFMn6OMkKgTwNSqizUHJwvRk+S1xKZDozWjbps=";
+  vendorHash = "sha256-blx/Q787h1eBUmg45VFydqH8hmrCpcobJwIWvTUNDEo=";
 
   subPackages = ".";
 
@@ -46,7 +46,7 @@ buildGoModule rec {
 
   meta = with lib; {
     changelog = "https://github.com/mykso/myks/blob/v${version}/CHANGELOG.md";
-    description = "A configuration framework for Kubernetes applications";
+    description = "Configuration framework for Kubernetes applications";
     license = licenses.mit;
     homepage = "https://github.com/mykso/myks";
     maintainers = [ maintainers.kbudde ];
diff --git a/pkgs/by-name/my/mysql84/package.nix b/pkgs/by-name/my/mysql84/package.nix
index d7081f6141414..908b3e00ae8ca 100644
--- a/pkgs/by-name/my/mysql84/package.nix
+++ b/pkgs/by-name/my/mysql84/package.nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://www.mysql.com/";
-    description = "The world's most popular open source database";
+    description = "World's most popular open source database";
     license = licenses.gpl2;
     maintainers = with maintainers; [ orivej shyim ];
     platforms = platforms.unix;
diff --git a/pkgs/by-name/my/mystmd/package.nix b/pkgs/by-name/my/mystmd/package.nix
index ee07a8fef3be1..2753d50edb60d 100644
--- a/pkgs/by-name/my/mystmd/package.nix
+++ b/pkgs/by-name/my/mystmd/package.nix
@@ -2,16 +2,16 @@
 
 buildNpmPackage rec {
   pname = "mystmd";
-  version = "1.2.0";
+  version = "1.2.5";
 
   src = fetchFromGitHub {
     owner = "executablebooks";
     repo = "mystmd";
     rev = "mystmd@${version}";
-    hash = "sha256-SxUZvPSitzWZzTa490dkJWw6fZ5PtN8hy7fglifPn6o=";
+    hash = "sha256-K+19Ez+uSxa2pf59msdYl33HHIj55znsBMSEvF9JeoI=";
   };
 
-  npmDepsHash = "sha256-fwjtEw2mAnNX7lo9ovCC58qqtJPDLc2Ho9I1Ui0k/iI=";
+  npmDepsHash = "sha256-5Ma2+DrX3z/sdvBwnXtRAfLTOmoPtiEeMyYfAUf2/9o=";
 
   dontNpmInstall = true;
 
diff --git a/pkgs/by-name/my/myxer/package.nix b/pkgs/by-name/my/myxer/package.nix
index 61dd704db6774..8b865ba475f11 100644
--- a/pkgs/by-name/my/myxer/package.nix
+++ b/pkgs/by-name/my/myxer/package.nix
@@ -34,7 +34,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A modern Volume Mixer for PulseAudio";
+    description = "Modern Volume Mixer for PulseAudio";
     homepage = "https://github.com/Aurailus/Myxer";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ erin rster2002 ];
diff --git a/pkgs/by-name/n2/n2/package.nix b/pkgs/by-name/n2/n2/package.nix
index 4e88285c3e0f1..6700cc58a777c 100644
--- a/pkgs/by-name/n2/n2/package.nix
+++ b/pkgs/by-name/n2/n2/package.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage {
 
   meta = with lib; {
     homepage = "https://github.com/evmar/n2";
-    description = "A ninja compatible build system";
+    description = "Ninja compatible build system";
     mainProgram = "n2";
     license = licenses.asl20;
     maintainers = with maintainers; [ fgaz ];
diff --git a/pkgs/by-name/na/namespace-cli/package.nix b/pkgs/by-name/na/namespace-cli/package.nix
index 30812bd5ad164..807a7c8d665c3 100644
--- a/pkgs/by-name/na/namespace-cli/package.nix
+++ b/pkgs/by-name/na/namespace-cli/package.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "namespace-cli";
-  version = "0.0.371";
+  version = "0.0.376";
 
   src = fetchFromGitHub {
     owner = "namespacelabs";
     repo = "foundation";
     rev = "v${version}";
-    hash = "sha256-5cP5Z2VDxpBneDX+jhciaNrtDGi8XDm7DhhRBKh6ACU=";
+    hash = "sha256-kBB4TuC0ZRTJEzys7LEsD3WxdLhXpLOkU8K9VyS84Wk=";
   };
 
   vendorHash = "sha256-72cHswoTZszo42NOrPNuokDlqoJ3/YEhGe+rQSKvgAw=";
@@ -30,6 +30,6 @@ buildGoModule rec {
     license = licenses.asl20;
     changelog = "https://github.com/namespacelabs/foundation/releases/tag/v${version}";
     homepage = "https://github.com/namespacelabs/foundation";
-    description = "A command line interface for the Namespaces platform";
+    description = "Command line interface for the Namespaces platform";
   };
 }
diff --git a/pkgs/by-name/na/nanoboyadvance/package.nix b/pkgs/by-name/na/nanoboyadvance/package.nix
index 64e670614c1cd..b973959bc82bc 100644
--- a/pkgs/by-name/na/nanoboyadvance/package.nix
+++ b/pkgs/by-name/na/nanoboyadvance/package.nix
@@ -56,7 +56,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = {
-    description = "A cycle-accurate Nintendo Game Boy Advance emulator";
+    description = "Cycle-accurate Nintendo Game Boy Advance emulator";
     homepage = "https://github.com/nba-emu/NanoBoyAdvance";
     license = lib.licenses.gpl3Plus;
     mainProgram = "NanoBoyAdvance";
diff --git a/pkgs/by-name/na/naps2/deps.nix b/pkgs/by-name/na/naps2/deps.nix
index 0991989edc61a..4a9c92fe83659 100644
--- a/pkgs/by-name/na/naps2/deps.nix
+++ b/pkgs/by-name/na/naps2/deps.nix
@@ -2,43 +2,43 @@
 # Please dont edit it manually, your changes might get overwritten!
 
 { fetchNuGet }: [
-  (fetchNuGet { pname = "AtkSharp"; version = "3.24.24.38"; sha256 = "12dv3j8nzhjb5c0093djajdnv8n7m0q7vq2d5ry2v4xk9wqzxpr7"; })
-  (fetchNuGet { pname = "Autofac"; version = "7.1.0"; sha256 = "007bsc61cngjb14cma9lq2xwy1wpybmk37hqvc45s0gs1wv6hhpm"; })
+  (fetchNuGet { pname = "AtkSharp"; version = "3.24.24.95"; sha256 = "0x4nr8rx50h87n6ijv5a4vkavs2x61bsrkxvam27h178finmc1rn"; })
+  (fetchNuGet { pname = "Autofac"; version = "8.0.0"; sha256 = "0w3y76vik6rfr9am649v4w6dyyp5s25244q3il2x8si11xgl6y7d"; })
   (fetchNuGet { pname = "Ben.Demystifier"; version = "0.4.1"; sha256 = "1szlrhvwpwkjhpgvjlrpjg714bz1yhyljs72pxni3li4mgnklk1f"; })
-  (fetchNuGet { pname = "BouncyCastle"; version = "1.8.1"; sha256 = "0fz4vhcr6gghvm39hdl48a2sxvx5piyh8ig82slj97gffi1g5rvp"; })
-  (fetchNuGet { pname = "CairoSharp"; version = "3.24.24.38"; sha256 = "0n3y5w088k81apxik9amfvjdwcic4k2ixxvnrk9cw6d2wh1d5r8d"; })
+  (fetchNuGet { pname = "CairoSharp"; version = "3.24.24.95"; sha256 = "05fq8jdlxzrrw7gh0i3w272q34wzmb3bizcghjnf9mlh1jcn1iy9"; })
   (fetchNuGet { pname = "CommandLineParser"; version = "2.9.1"; sha256 = "1sldkj8lakggn4hnyabjj1fppqh50fkdrr1k99d4gswpbk5kv582"; })
   (fetchNuGet { pname = "EmbedIO"; version = "3.5.2"; sha256 = "13saxicm07nkppzfxb60cpm1501n4ixaqhkvvqqfaqgifma9z8bv"; })
-  (fetchNuGet { pname = "Eto.Forms"; version = "2.8.2"; sha256 = "117n5hvhp8zadnhzy661dw1l9y5w9hi21dz5z3j7vc8s4ndc1vbc"; })
-  (fetchNuGet { pname = "Eto.Platform.Gtk"; version = "2.8.2"; sha256 = "0bazmnb970677vwisq5lkf69q66w56kmvd5kabsfp3vdnp4w52zq"; })
-  (fetchNuGet { pname = "GdkSharp"; version = "3.24.24.38"; sha256 = "0c5gzg106bnnc4wwwhch6lja68623a9hk8r2sjcv35hl5dh21616"; })
-  (fetchNuGet { pname = "GioSharp"; version = "3.24.24.38"; sha256 = "1b3irarxjbbpf24fw2avdglcslb5653gn6m829yhlcm5ay37pds4"; })
-  (fetchNuGet { pname = "GLibSharp"; version = "3.24.24.38"; sha256 = "1a0ixdq1gdb46gkb2nnlydsi10bjrbd3risfyaphsy8fbsyzrzvm"; })
+  (fetchNuGet { pname = "Eto.Forms"; version = "2.8.3"; sha256 = "00v2ffi9sl8cjllrz8rw3a5s5cgm9bfh45852znwz18zp06rh5bg"; })
+  (fetchNuGet { pname = "Eto.Platform.Gtk"; version = "2.8.3"; sha256 = "0av22hyx6xf6cnm89a4jvpnm80h1p6a6301r4n2906ihai9k3gsk"; })
+  (fetchNuGet { pname = "GdkSharp"; version = "3.24.24.95"; sha256 = "1wp2kgng0pwg8q5bl1zz4lzzj603qcjljql61h83bxa60q7c121m"; })
+  (fetchNuGet { pname = "GioSharp"; version = "3.24.24.95"; sha256 = "121xb98hg955vwxfv1r5idr5a2zv09xpcmqckm7hhgprlzhz2cg5"; })
+  (fetchNuGet { pname = "GLibSharp"; version = "3.24.24.95"; sha256 = "1l5nbg0qwjp55wfj06vnk5q5r5cnq5h064qp4k5xf8qlma8d346n"; })
   (fetchNuGet { pname = "Google.Protobuf"; version = "3.25.1"; sha256 = "0zcw9vmv2bdai3zaip86s37lj3r5z4zvcs9mf5a9nih0hy4gzwsi"; })
   (fetchNuGet { pname = "Grpc.Core.Api"; version = "2.59.0"; sha256 = "0pajrxg0dsfnyxwrd2li5nrabz0r3b3bql776l44hn5rg1s1287k"; })
-  (fetchNuGet { pname = "Grpc.Tools"; version = "2.59.0"; sha256 = "1sb68ydclmabz6w0d12s37mfj35609406c6iwrnsy5xgirz7i98f"; })
-  (fetchNuGet { pname = "GrpcDotNetNamedPipes"; version = "2.1.1"; sha256 = "0fmxrr99wp7pdrf8230fl6fh2jlb3l0yg928qyab9mgnparppxqa"; })
-  (fetchNuGet { pname = "GtkSharp"; version = "3.24.24.38"; sha256 = "0cn8aggci6n088y5giiaxmyzv01rcz37r8pm738q2bsb57zppz2j"; })
+  (fetchNuGet { pname = "Grpc.Tools"; version = "2.62.0"; sha256 = "1x6ydsvjckxdpnrl07h307wql5gghlb4fasf591ppr16kv5igdfp"; })
+  (fetchNuGet { pname = "GrpcDotNetNamedPipes"; version = "3.0.0"; sha256 = "1sndscz12dldjfvifp04ml56fkbl1vwb9llzq0h58hwri35nnbv7"; })
+  (fetchNuGet { pname = "GtkSharp"; version = "3.24.24.95"; sha256 = "0y20zn8wv72dg2bc7f95l8iz8z51ap08q5gnv6f2xnhz8zjf86xh"; })
+  (fetchNuGet { pname = "IsExternalInit"; version = "1.0.3"; sha256 = "01flcxs8m7m916s5rx5iyvzh6fjdl1dvcyzl9cpzn0d17yp8dz2i"; })
   (fetchNuGet { pname = "Makaretu.Dns"; version = "2.0.1"; sha256 = "1l6ajfdcvqpz078wl6nm44bnhd8h47nssb5qgp5al9zqic50mqnd"; })
-  (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "1.1.0"; sha256 = "1dq5yw7cy6s42193yl4iqscfw5vzkjkgv0zyy32scr4jza6ni1a1"; })
+  (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "7.0.0"; sha256 = "1waiggh3g1cclc81gmjrqbh128kwfjky3z79ma4bd2ms9pa3gvfm"; })
   (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "8.0.0"; sha256 = "0z4jq5prnxyb4p3163yxx35znpd2msjd8hw8ysmv4ah90f5sd9gm"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "2.1.0"; sha256 = "04rjl38wlr1jjjpbzgf64jp0ql6sbzbil0brwq9mgr3hdgwd7vx2"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "2.1.0"; sha256 = "03gzlr3z9j1xnr1k6y91zgxpz3pj27i3zsvjwj7i8jqnlqmk7pxd"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "6.0.0"; sha256 = "0w6wwxv12nbc3sghvr68847wc9skkdgsicrz3fx4chgng1i3xy0j"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "8.0.0"; sha256 = "1jlpa4ggl1gr5fs7fdcw04li3y3iy05w3klr9lrrlc7v8w76kq71"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "2.1.0"; sha256 = "0x1888w5ypavvszfmpja9krgc64527prs75vm8xbf9fv3rgsplql"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "6.0.0"; sha256 = "1wlhb2vygzfdjbdzy7waxblmrx0q3pdcqvpapnpmq9fcx5m8r6w1"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "8.0.0"; sha256 = "0i7qziz0iqmbk8zzln7kx9vd0lbx1x3va0yi3j1bgkjir13h78ps"; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "2.1.0"; sha256 = "0c0cx8r5xkjpxmcfp51959jnp55qjvq28d9vaslk08avvi1by12s"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "6.0.0"; sha256 = "1vi67fw7q99gj7jd64gnnfr4d2c0ijpva7g9prps48ja6g91x6a9"; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "8.0.0"; sha256 = "1zw0bpp5742jzx03wvqc8csnvsbgdqi0ls9jfc5i2vd3cl8b74pg"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "8.0.1"; sha256 = "1wyhpamm1nqjfi3r463dhxljdlr6rm2ax4fvbgq2s0j3jhpdhd4p"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "2.1.0"; sha256 = "0dii8i7s6libfnspz2xb96ayagb4rwqj2kmr162vndivr9rmbm06"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "6.0.0"; sha256 = "0fd9jii3y3irfcwlsiww1y9npjgabzarh33rn566wpcz24lijszi"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "8.0.0"; sha256 = "0nppj34nmq25gnrg0wh1q22y4wdqbih4ax493f226azv8mkp9s1i"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "2.1.0"; sha256 = "1gvgif1wcx4k6pv7gc00qv1hid945jdywy1s50s33q0hfd91hbnj"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "6.0.0"; sha256 = "0b75fmins171zi6bfdcq1kcvyrirs8n91mknjnxy4c3ygi1rrnj0"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "8.0.0"; sha256 = "1klcqhg3hk55hb6vmjiq2wgqidsl81aldw0li2z98lrwx26msrr6"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "8.0.1"; sha256 = "0i9pgmk60b8xlws3q9z890gim1xjq42dhyh6dj4xvbycmgg1x1sd"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "2.1.0"; sha256 = "0w9644sryd1c6r3n4lq2cgd5pn6jl3k5m38a05m7vjffa4m2spd2"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "6.0.0"; sha256 = "008pnk2p50i594ahz308v81a41mbjz9mwcarqhmrjpl2d20c868g"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "8.0.0"; sha256 = "0p50qn6zhinzyhq9sy5svnmqqwhw2jajs2pbjh9sah504wjvhscz"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "2.1.0"; sha256 = "1r9gzwdfmb8ysnc4nzmyz5cyar1lw0qmizsvrsh252nhlyg06nmb"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "6.0.0"; sha256 = "1kjiw6s4yfz9gm7mx3wkhp06ghnbs95icj9hi505shz9rjrg42q2"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "8.0.0"; sha256 = "0aldaz5aapngchgdr7dax9jw5wy7k7hmjgjpfgfv1wfif27jlkqm"; })
   (fetchNuGet { pname = "Microsoft.NETCore.App"; version = "2.1.30"; sha256 = "10brwj7csacwa4ra37pjb2bqwg961lxi576330xlhhwqixkjkrqf"; })
   (fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "2.1.30"; sha256 = "0rabvmid1n604pk9rndlq62zqhq77p7cznmq9bzr7hshvr2rszab"; })
   (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "2.1.30"; sha256 = "1zk6ajalssvpm2yv4ri3g6hbxjaj1ns0y4w3g98wss54k7v44vpw"; })
@@ -53,29 +53,25 @@
   (fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies.net462"; version = "1.0.3"; sha256 = "08bfss2p262d8zj41xqndv0qgvz9lq636k2xhl80jl23ay22lsgf"; })
   (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
   (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "5.0.0"; sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n"; })
-  (fetchNuGet { pname = "MimeKit"; version = "1.22.0"; sha256 = "0zs9a4gjcs3q402dvvgfv58304sx533nrrhiafgqc04aazpqypr4"; })
+  (fetchNuGet { pname = "MimeKitLite"; version = "4.4.0"; sha256 = "1am381zbh89qa520pllsa92by92lg6wn0zxhqa26z7mlh6jwc8nz"; })
   (fetchNuGet { pname = "NAPS2.Mdns"; version = "1.0.1"; sha256 = "0xi46brppcjm8mrabnffahkmkcakhw94cnq1w2yk8y2hyq9qb4ms"; })
   (fetchNuGet { pname = "NAPS2.NTwain"; version = "1.0.0"; sha256 = "088dw31h7rlgr0s05snm382wz65wi46yaizjnjpd0wzw2mb58yld"; })
   (fetchNuGet { pname = "NAPS2.Pdfium.Binaries"; version = "1.1.0"; sha256 = "0rnqkk6y047p6a6li2dr2cygkhjn3d2a13yn3rck5gf854k3q3ws"; })
   (fetchNuGet { pname = "NAPS2.PdfSharp"; version = "1.0.1"; sha256 = "0x51whjhlqd5r0f1s5hjx41zzwwcwcdl19q6iz6k7fwx81746w0w"; })
   (fetchNuGet { pname = "NAPS2.Tesseract.Binaries"; version = "1.2.0"; sha256 = "0m1aksfjg4vfl2llvhd2in0a5i4wa72nmfw2h78y4wwxmjplbfz2"; })
   (fetchNuGet { pname = "NAPS2.Wia"; version = "2.0.3"; sha256 = "0xszkccb8fy2x60nkblpda78wx2d86fn8y49j94qmvz4rp2nw98i"; })
-  (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
   (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.3"; sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y"; })
   (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.3"; sha256 = "0xrwysmrn4midrjal8g2hr1bbg38iyisl0svamb11arqws4w2bw7"; })
-  (fetchNuGet { pname = "NLog"; version = "5.2.6"; sha256 = "1dkfw0qm5c45pyxcif37sbi8mf9k0ql46f4b1y36rqg8v257xh21"; })
-  (fetchNuGet { pname = "NLog.Extensions.Logging"; version = "5.3.5"; sha256 = "0jzfqa12l5vvxd2j684cnm29w19v386cpm11pw8h6prpf57affaj"; })
-  (fetchNuGet { pname = "Nullable"; version = "1.3.1"; sha256 = "0hwrr4q22c0i056dqy3v431rxjv7md910ihz0pjsi16qxsbpw7p7"; })
-  (fetchNuGet { pname = "PangoSharp"; version = "3.24.24.38"; sha256 = "0cma8j4cy4j3fw0nvsxlqi0azjkvfjsw0wb6k6b2k21rdpy5rbbn"; })
-  (fetchNuGet { pname = "Portable.BouncyCastle"; version = "1.8.1.3"; sha256 = "1lv1ljaz8df835jgmp3ny1xgqqjf1s9f25baw7bf8d24qlf25i2g"; })
+  (fetchNuGet { pname = "NLog"; version = "5.2.8"; sha256 = "1z3h20m5rjnizm1jbf5j0vpdc1f373rzzkg6478p1lxv5j385c12"; })
+  (fetchNuGet { pname = "NLog.Extensions.Logging"; version = "5.3.8"; sha256 = "1qnz91099f51vk7f5g2ig0041maw5hcbyqllxvj5zj7zkp0qw9b8"; })
+  (fetchNuGet { pname = "PangoSharp"; version = "3.24.24.95"; sha256 = "0548jrkgzia899va9smhh7if49nk6avbswb68xmc52k37lins6b2"; })
+  (fetchNuGet { pname = "Polyfill"; version = "4.2.0"; sha256 = "0h25jszwrkmxlklcr6mjjmz71rn6q36pqb5jx36l94lrccy2k0a8"; })
   (fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; })
-  (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk"; })
   (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn"; })
   (fetchNuGet { pname = "runtime.any.System.Globalization"; version = "4.3.0"; sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x"; })
   (fetchNuGet { pname = "runtime.any.System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201"; })
   (fetchNuGet { pname = "runtime.any.System.IO"; version = "4.3.0"; sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x"; })
   (fetchNuGet { pname = "runtime.any.System.Reflection"; version = "4.3.0"; sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly"; })
-  (fetchNuGet { pname = "runtime.any.System.Reflection.Extensions"; version = "4.3.0"; sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33"; })
   (fetchNuGet { pname = "runtime.any.System.Reflection.Primitives"; version = "4.3.0"; sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf"; })
   (fetchNuGet { pname = "runtime.any.System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl"; })
   (fetchNuGet { pname = "runtime.any.System.Runtime"; version = "4.3.0"; sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b"; })
@@ -84,12 +80,8 @@
   (fetchNuGet { pname = "runtime.any.System.Text.Encoding"; version = "4.3.0"; sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3"; })
   (fetchNuGet { pname = "runtime.any.System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8"; })
   (fetchNuGet { pname = "runtime.any.System.Threading.Tasks"; version = "4.3.0"; sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va"; })
-  (fetchNuGet { pname = "runtime.any.System.Threading.Timer"; version = "4.3.0"; sha256 = "0aw4phrhwqz9m61r79vyfl5la64bjxj8l34qnrcwb28v49fg2086"; })
-  (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
   (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0rwpqngkqiapqc5c2cpkj7idhngrgss5qpnqg0yh40mbyflcxf8i"; })
-  (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
   (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1n06gxwlinhs0w7s8a94r1q3lwqzvynxwd3mp10ws9bg6gck8n4r"; })
-  (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
   (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0404wqrc7f2yc0wxv71y3nnybvqx8v4j9d47hlscxy759a525mc3"; })
   (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.App"; version = "2.1.30"; sha256 = "039r4c42mz8fg8nqn8p3v0dxnjv681xlllhrc4l91rbbwv04li6j"; })
   (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "2.1.30"; sha256 = "00pm387jvv574jsdd1261mbvxd7lbjbsfx3wq0z0iqjhr31pgmw1"; })
@@ -100,38 +92,27 @@
   (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "2.1.30"; sha256 = "1zv9i8wqpsdr2vx35i3qzad1yvz00l6i9f00fclw02v2p92jz9c1"; })
   (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"; version = "2.1.30"; sha256 = "1s6zx2hpg60pscvz8yfdkxpdg1lhs534x5mz3yryxa91nfzhxv95"; })
   (fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
-  (fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; })
   (fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
   (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
-  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
   (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0zy5r25jppz48i2bkg8b9lfig24xixg6nm3xyr1379zdnqnpm8f6"; })
-  (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
   (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "096ch4n4s8k82xga80lfmpimpzahd2ip1mgwdqgar0ywbbl6x438"; })
-  (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
   (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1dm8fifl7rf1gy7lnwln78ch4rw54g0pl5g1c189vawavll7p6rj"; })
   (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
-  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
   (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1m9z1k9kzva9n9kwinqxl97x2vgl79qhqjlv17k9s2ymcyv2bwr6"; })
-  (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
   (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1cpx56mcfxz7cpn57wvj18sjisvzq8b5vd9rw16ihd2i6mcp3wa1"; })
-  (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
   (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "15gsm1a8jdmgmf8j5v1slfz8ks124nfdhk2vxs2rw3asrxalg8hi"; })
-  (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
   (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0q0n5q1r1wnqmr5i5idsrd9ywl33k0js4pngkwq9p368mbxp8x1w"; })
-  (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
   (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1x0g58pbpjrmj2x2qw17rdwwnrcl0wvim2hdwz48lixvwvp22n9c"; })
   (fetchNuGet { pname = "runtime.unix.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id"; })
-  (fetchNuGet { pname = "runtime.unix.System.Console"; version = "4.3.0"; sha256 = "1pfpkvc6x2if8zbdzg9rnc5fx51yllprl8zkm5npni2k50lisy80"; })
   (fetchNuGet { pname = "runtime.unix.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5"; })
   (fetchNuGet { pname = "runtime.unix.System.IO.FileSystem"; version = "4.3.0"; sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix"; })
   (fetchNuGet { pname = "runtime.unix.System.Net.Primitives"; version = "4.3.0"; sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4"; })
-  (fetchNuGet { pname = "runtime.unix.System.Net.Sockets"; version = "4.3.0"; sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12"; })
   (fetchNuGet { pname = "runtime.unix.System.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; })
   (fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; })
   (fetchNuGet { pname = "SharpZipLib"; version = "1.4.2"; sha256 = "0ijrzz2szxjmv2cipk7rpmg14dfaigdkg7xabjvb38ih56m9a27y"; })
   (fetchNuGet { pname = "SimpleBase"; version = "1.3.1"; sha256 = "0mjvqbn3b6ai7nhzs5mssy2imn9lw10z4sj8nhgiapyqy9qlim0n"; })
   (fetchNuGet { pname = "SixLabors.Fonts"; version = "1.0.1"; sha256 = "08ljgagwm8aha9p4plqdnf507gcisajd9frcbvaykikrsrzpm33y"; })
-  (fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
+  (fetchNuGet { pname = "StandardSocketsHttpHandler"; version = "2.2.0.8"; sha256 = "18h3rzh9pp3b6mjx1m4jvwwhv5abjqsd1nnbibc0gbkvbcrb16ni"; })
   (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
   (fetchNuGet { pname = "System.Buffers"; version = "4.4.0"; sha256 = "183f8063w8zqn99pv0ni0nnwh7fgx46qzxamwnans55hhs2l0g19"; })
   (fetchNuGet { pname = "System.Buffers"; version = "4.5.1"; sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3"; })
@@ -140,45 +121,29 @@
   (fetchNuGet { pname = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; })
   (fetchNuGet { pname = "System.Collections.Immutable"; version = "8.0.0"; sha256 = "0z53a42zjd59zdkszcm7pvij4ri5xbb8jly9hzaad9khlf69bcqp"; })
   (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "5.0.0"; sha256 = "021h7x98lblq9avm1bgpa4i31c2kgsa7zn4sqhxf39g087ar756j"; })
-  (fetchNuGet { pname = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
-  (fetchNuGet { pname = "System.Data.Common"; version = "4.3.0"; sha256 = "12cl7vy3him9lmal10cyxifasf75x4h5b239wawpx3vzgim23xq3"; })
   (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
   (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; })
-  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.7.1"; sha256 = "1mivaifniyrqwlnvzsfaxzrh2sd981bwzs3cbvs5wi7jjzbcqr4p"; })
-  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "6.0.0"; sha256 = "0rrihs9lnb1h6x4h0hn6kgfnh58qq7hx8qq99gh6fayx4dcnx3s5"; })
-  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "7.0.2"; sha256 = "1h97ikph775gya93qsjjaka87qcygbyh1064rh1hnfcnp5xv0ipi"; })
   (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
   (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
   (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
   (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
   (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
-  (fetchNuGet { pname = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
-  (fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.3.0"; sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar"; })
   (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
   (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
   (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
-  (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
   (fetchNuGet { pname = "System.Memory"; version = "4.5.0"; sha256 = "1layqpcx1q4l805fdnj2dfqp6ncx2z42ca06rgsr6ikq4jjgbv30"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.1"; sha256 = "0f07d7hny38lq9w69wx4lxkn4wszrqf9m9js6fh9is645csm167c"; })
   (fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
   (fetchNuGet { pname = "System.Memory"; version = "4.5.5"; sha256 = "08jsfwimcarfzrhlyvjjid61j02irx6xsklf32rv57x2aaikvx0h"; })
-  (fetchNuGet { pname = "System.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; })
   (fetchNuGet { pname = "System.Net.Http"; version = "4.3.4"; sha256 = "0kdp31b8819v88l719j6my0yas6myv9d1viql3qz5577mv819jhl"; })
-  (fetchNuGet { pname = "System.Net.NameResolution"; version = "4.3.0"; sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq"; })
-  (fetchNuGet { pname = "System.Net.NetworkInformation"; version = "4.3.0"; sha256 = "1w10xqq3d5xqipp5403y5ndq7iggq19jimrd6gp5rghp1qg8rlbg"; })
   (fetchNuGet { pname = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
-  (fetchNuGet { pname = "System.Net.Sockets"; version = "4.3.0"; sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"; })
   (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.4.0"; sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba"; })
   (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
-  (fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
   (fetchNuGet { pname = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; })
   (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
-  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
-  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
-  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
-  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
   (fetchNuGet { pname = "System.Reflection.Metadata"; version = "5.0.0"; sha256 = "17qsl5nanlqk9iz0l5wijdn6ka632fs1m1fvx18dfgswm258r3ss"; })
   (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
-  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
   (fetchNuGet { pname = "System.Resources.Extensions"; version = "8.0.0"; sha256 = "0chqkw486pb5dg9nlj5352lsz1206xyf953nd98dglia3isxklg5"; })
   (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
   (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
@@ -190,11 +155,8 @@
   (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
   (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
   (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
-  (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
   (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
-  (fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.3.0"; sha256 = "01vv2p8h4hsz217xxs0rixvb7f2xzbh6wv1gzbfykcbfrza6dvnf"; })
   (fetchNuGet { pname = "System.Security.AccessControl"; version = "5.0.0"; sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r"; })
-  (fetchNuGet { pname = "System.Security.Claims"; version = "4.3.0"; sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn"; })
   (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
   (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
   (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
@@ -203,26 +165,16 @@
   (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
   (fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "8.0.0"; sha256 = "1ysjx3b5ips41s32zacf4vs7ig41906mxrsbmykdzi0hvdmjkgbx"; })
   (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
-  (fetchNuGet { pname = "System.Security.Principal"; version = "4.3.0"; sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf"; })
-  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.3.0"; sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr"; })
   (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
   (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
-  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.3.0"; sha256 = "0lgxg1gn7pg7j0f942pfdc9q7wamzxsgq3ng248ikdasxz0iadkv"; })
+  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "8.0.0"; sha256 = "1lgdd78cik4qyvp2fggaa0kzxasw6kc9a6cjqw46siagrm0qnc3y"; })
   (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
-  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
   (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
-  (fetchNuGet { pname = "System.Threading.Overlapped"; version = "4.3.0"; sha256 = "1nahikhqh9nk756dh8p011j36rlcp1bzz3vwi2b4m1l2s3vz8idm"; })
   (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
   (fetchNuGet { pname = "System.Threading.Tasks.Dataflow"; version = "8.0.0"; sha256 = "02mmqnbd7ybin1yiffrq3ph71rsbrnf6r6m01j98ynydqfscz9s3"; })
-  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
   (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.2"; sha256 = "1sh63dz0dymqcwmprp0nadm77b83vmm7lyllpv578c397bslb8hj"; })
   (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
-  (fetchNuGet { pname = "System.Threading.Thread"; version = "4.3.0"; sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4"; })
-  (fetchNuGet { pname = "System.Threading.ThreadPool"; version = "4.3.0"; sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1"; })
-  (fetchNuGet { pname = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; })
   (fetchNuGet { pname = "System.ValueTuple"; version = "4.5.0"; sha256 = "00k8ja51d0f9wrq4vv5z2jhq8hy31kac2rg0rv06prylcybzl8cy"; })
-  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
-  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
   (fetchNuGet { pname = "Unosquare.Swan.Lite"; version = "3.1.0"; sha256 = "0yjbchc2rhgssfvb1qxg3kq3lzyx089r3rngpcjgrkw85bf0vgrw"; })
   (fetchNuGet { pname = "ZXing.Net"; version = "0.16.9"; sha256 = "0bpki21p2wjjjviayhza0gam7s9lm7qj6g8hdcp2csd0mv54l980"; })
 ]
diff --git a/pkgs/by-name/na/naps2/package.nix b/pkgs/by-name/na/naps2/package.nix
index 7df33d1a425d3..c3493fb5735de 100644
--- a/pkgs/by-name/na/naps2/package.nix
+++ b/pkgs/by-name/na/naps2/package.nix
@@ -12,13 +12,13 @@
 
 buildDotnetModule rec {
   pname = "naps2";
-  version = "7.4.0";
+  version = "7.4.2";
 
   src = fetchFromGitHub {
     owner = "cyanfish";
     repo = "naps2";
     rev = "v${version}";
-    hash = "sha256-zU6VjHNtuX8JHC03CmaDnTAAei+mEhA/oMs9p42EgtA=";
+    hash = "sha256-1tPPb8bAQSc5FpizWpi7q4alxoA6xfb/QOAaTK2eNc8=";
   };
 
   projectFile = "NAPS2.App.Gtk/NAPS2.App.Gtk.csproj";
@@ -48,7 +48,7 @@ buildDotnetModule rec {
   '';
 
   meta = {
-    description = "Scan documents to PDF and more, as simply as possible.";
+    description = "Scan documents to PDF and more, as simply as possible";
     homepage = "https://www.naps2.com";
     changelog = "https://github.com/cyanfish/naps2/blob/master/CHANGELOG.md";
     license = lib.licenses.gpl2Plus;
diff --git a/pkgs/by-name/na/nats-kafka/package.nix b/pkgs/by-name/na/nats-kafka/package.nix
new file mode 100644
index 0000000000000..fa9b770a0a8d6
--- /dev/null
+++ b/pkgs/by-name/na/nats-kafka/package.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, nix-update-script
+}:
+
+buildGoModule rec {
+  pname = "nats-kafka";
+  version = "1.4.2";
+
+  src = fetchFromGitHub {
+    owner = "nats-io";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-RboNlKpD+4mOx6iL6JpguR90y6Ux1x0twFcazIPj0w0=";
+  };
+
+  vendorHash = "sha256-Zo4lAV/1TIblTbFrZcwvVecvAAgX+8N6OmdeNyI6Ja0=";
+
+  ldflags = [
+    "-X github.com/nats-io/nats-kafka/server/core.Version=v${version}"
+  ];
+
+  # do not build & install test binaries
+  subPackages = [ "." ];
+
+  # needs running nats-server and kafka
+  doCheck = false;
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = with lib; {
+    description = "NATS to Kafka Bridging";
+    mainProgram = "nats-kafka";
+    homepage = "https://github.com/nats-io/nats-kafka";
+    changelog = "https://github.com/nats-io/nats-kafka/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ misuzu ];
+  };
+}
diff --git a/pkgs/by-name/na/nawk/package.nix b/pkgs/by-name/na/nawk/package.nix
index bb93e778922e9..f05cd3cd3de0c 100644
--- a/pkgs/by-name/na/nawk/package.nix
+++ b/pkgs/by-name/na/nawk/package.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://awk.dev";
-    description = "The one, true implementation of AWK";
+    description = "One, true implementation of AWK";
     longDescription = ''
       This is the version of awk described in "The AWK Programming Language",
       Second Edition, by Al Aho, Brian Kernighan, and Peter Weinberger
diff --git a/pkgs/by-name/nb/nb-cli/package.nix b/pkgs/by-name/nb/nb-cli/package.nix
new file mode 100644
index 0000000000000..5362c16e3ae2a
--- /dev/null
+++ b/pkgs/by-name/nb/nb-cli/package.nix
@@ -0,0 +1,60 @@
+{
+  fetchPypi,
+  lib,
+  nb-cli,
+  python3,
+  testers,
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "nb-cli";
+  version = "1.4.1";
+  pyproject = true;
+
+  src = fetchPypi {
+    pname = "nb_cli";
+    inherit version;
+    hash = "sha256-kI3Uy79mv0b+h5wjrRN3My9jOFzryhkStieqaG0YFvM=";
+  };
+
+  build-system = [
+    python3.pkgs.babel
+    python3.pkgs.pdm-backend
+  ];
+
+  dependencies = with python3.pkgs; [
+    anyio
+    cashews
+    click
+    cookiecutter
+    httpx
+    importlib-metadata
+    jinja2
+    noneprompt
+    pydantic
+    pyfiglet
+    tomlkit
+    typing-extensions
+    virtualenv
+    watchfiles
+    wcwidth
+  ];
+
+  # no test
+  doCheck = false;
+
+  pythonImportsCheck = [ "nb_cli" ];
+
+  passthru.tests = {
+    version = testers.testVersion { package = nb-cli; };
+  };
+
+  meta = {
+    description = "CLI for nonebot2";
+    homepage = "https://cli.nonebot.dev";
+    changelog = "https://github.com/nonebot/nb-cli/releases/tag/v${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ moraxyc ];
+    mainProgram = "nb";
+  };
+}
diff --git a/pkgs/by-name/ne/needle/nix/default.nix b/pkgs/by-name/ne/needle/nix/default.nix
new file mode 100644
index 0000000000000..bf057c1117738
--- /dev/null
+++ b/pkgs/by-name/ne/needle/nix/default.nix
@@ -0,0 +1,11 @@
+# This file was generated by swiftpm2nix.
+{
+  workspaceStateFile = ./workspace-state.json;
+  hashes = {
+    "swift-common" = "1zqdiwz934kpdlig22ikvmklhb720hv3i70wnznhhxfg2v4c115j";
+    "swift-concurrency" = "06x9fc8gwyvg5ymf889rfqs3jp89l1pbpm3m9553nq75vwcia6d3";
+    "swift-syntax" = "0sc29acwxv6rl3i8nwfazk0p0cm41figxls8n4aks84vww7m2in1";
+    "swift-system" = "0402hkx2q2dv27gccnn8ma79ngvwiwzkhcv4zlcdldmy6cgi0px7";
+    "swift-tools-support-core" = "0lbc3naj9hrbaa7ifxsvcs4mjigmiv61npzsphbpb6axx8s065mn";
+  };
+}
diff --git a/pkgs/by-name/ne/needle/nix/workspace-state.json b/pkgs/by-name/ne/needle/nix/workspace-state.json
new file mode 100644
index 0000000000000..e070e16e81a17
--- /dev/null
+++ b/pkgs/by-name/ne/needle/nix/workspace-state.json
@@ -0,0 +1,93 @@
+{
+    "object": {
+      "artifacts": [],
+      "dependencies": [
+        {
+          "basedOn": null,
+          "packageRef": {
+            "identity": "swift-common",
+            "kind": "remoteSourceControl",
+            "location": "https://github.com/uber/swift-common.git",
+            "name": "Swift-Common"
+          },
+          "state": {
+            "checkoutState": {
+              "revision": "32c4757e0702686df12c32e06b9bbf815ec4e641",
+              "version": "0.5.0"
+            },
+            "name": "sourceControlCheckout"
+          },
+          "subpath": "swift-common"
+        },
+        {
+          "basedOn": null,
+          "packageRef": {
+            "identity": "swift-concurrency",
+            "kind": "remoteSourceControl",
+            "location": "https://github.com/uber/swift-concurrency.git",
+            "name": "Concurrency"
+          },
+          "state": {
+            "checkoutState": {
+              "revision": "e29e42c41c47c82ec32d3a2b2695719c32415ca9",
+              "version": "0.7.1"
+            },
+            "name": "sourceControlCheckout"
+          },
+          "subpath": "swift-concurrency"
+        },
+        {
+          "basedOn": null,
+          "packageRef": {
+            "identity": "swift-syntax",
+            "kind": "remoteSourceControl",
+            "location": "https://github.com/apple/swift-syntax.git",
+            "name": "SwiftSyntax"
+          },
+          "state": {
+            "checkoutState": {
+              "branch": "0e85cf7",
+              "revision": "0e85cf739b10103190a2d7e6de0c0532a0514981"
+            },
+            "name": "sourceControlCheckout"
+          },
+          "subpath": "swift-syntax"
+        },
+        {
+          "basedOn": null,
+          "packageRef": {
+            "identity": "swift-system",
+            "kind": "remoteSourceControl",
+            "location": "https://github.com/apple/swift-system.git",
+            "name": "swift-system"
+          },
+          "state": {
+            "checkoutState": {
+              "revision": "836bc4557b74fe6d2660218d56e3ce96aff76574",
+              "version": "1.1.1"
+            },
+            "name": "sourceControlCheckout"
+          },
+          "subpath": "swift-system"
+        },
+        {
+          "basedOn": null,
+          "packageRef": {
+            "identity": "swift-tools-support-core",
+            "kind": "remoteSourceControl",
+            "location": "https://github.com/apple/swift-tools-support-core",
+            "name": "swift-tools-support-core"
+          },
+          "state": {
+            "checkoutState": {
+              "revision": "4f07be3dc201f6e2ee85b6942d0c220a16926811",
+              "version": "0.2.7"
+            },
+            "name": "sourceControlCheckout"
+          },
+          "subpath": "swift-tools-support-core"
+        }
+      ]
+    },
+    "version": 6
+}
diff --git a/pkgs/by-name/ne/needle/package.nix b/pkgs/by-name/ne/needle/package.nix
new file mode 100644
index 0000000000000..3d771cd693e5f
--- /dev/null
+++ b/pkgs/by-name/ne/needle/package.nix
@@ -0,0 +1,49 @@
+{
+  stdenv,
+  lib,
+  fetchFromGitHub,
+  swift,
+  swiftpm,
+  swiftpm2nix,
+  sqlite,
+}:
+let
+  generated = swiftpm2nix.helpers ./nix;
+in
+stdenv.mkDerivation rec {
+  pname = "needle";
+  version = "0.24.0";
+
+  src = fetchFromGitHub {
+    owner = "uber";
+    repo = "needle";
+    rev = "v${version}";
+    hash = "sha256-vQlUcfIj+LHZ3R+XwSr9bBIjcZUWkW2k/wI6HF+sDPo=";
+  };
+
+  sourceRoot = "${src.name}/Generator";
+
+  nativeBuildInputs = [
+    swift
+    swiftpm
+  ];
+
+  propagatedBuildInputs = [ sqlite ];
+
+  configurePhase = generated.configure;
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm755 "$(swiftpmBinPath)"/needle $out/bin/needle
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Compile-time safe Swift dependency injection framework";
+    homepage = "https://github.com/uber/needle";
+    license = licenses.asl20;
+    mainProgram = "needle";
+    maintainers = with maintainers; [ matteopacini ];
+    platforms = platforms.darwin;
+  };
+}
diff --git a/pkgs/by-name/ne/nekoray/package.nix b/pkgs/by-name/ne/nekoray/package.nix
index 1fda18056a6eb..5b648feddb1cc 100644
--- a/pkgs/by-name/ne/nekoray/package.nix
+++ b/pkgs/by-name/ne/nekoray/package.nix
@@ -96,6 +96,7 @@ stdenv.mkDerivation (finalAttrs: {
   buildInputs = [
     libsForQt5.qtbase
     libsForQt5.qttools
+    libsForQt5.qtwayland
     libsForQt5.qtx11extras
     protobuf
     yaml-cpp
diff --git a/pkgs/by-name/ne/neocities-cli/package.nix b/pkgs/by-name/ne/neocities-cli/package.nix
index 6bc673d3288b7..546c29918082c 100644
--- a/pkgs/by-name/ne/neocities-cli/package.nix
+++ b/pkgs/by-name/ne/neocities-cli/package.nix
@@ -11,7 +11,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "neocities";
 
   meta = with lib; {
-    description = "The Neocities Gem - A CLI and library for using the Neocities web site API.";
+    description = "Neocities Gem - A CLI and library for using the Neocities web site API";
     homepage = "https://github.com/neocities/neocities-ruby";
     license = licenses.mit;
     mainProgram = "neocities";
diff --git a/pkgs/by-name/ne/neocities/Gemfile b/pkgs/by-name/ne/neocities/Gemfile
new file mode 100644
index 0000000000000..f9e464079d0f0
--- /dev/null
+++ b/pkgs/by-name/ne/neocities/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'neocities'
diff --git a/pkgs/by-name/ne/neocities/Gemfile.lock b/pkgs/by-name/ne/neocities/Gemfile.lock
new file mode 100644
index 0000000000000..3c49da1d033b0
--- /dev/null
+++ b/pkgs/by-name/ne/neocities/Gemfile.lock
@@ -0,0 +1,47 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    equatable (0.5.0)
+    httpclient-fixcerts (2.8.5)
+    necromancer (0.4.0)
+    neocities (0.0.18)
+      httpclient-fixcerts (~> 2.8, >= 2.8.5)
+      pastel (~> 0.7, = 0.7.2)
+      rake (~> 12.3, >= 12.3.1)
+      tty-prompt (~> 0.12, = 0.12.0)
+      tty-table (~> 0.10, = 0.10.0)
+    pastel (0.7.2)
+      equatable (~> 0.5.0)
+      tty-color (~> 0.4.0)
+    rake (12.3.3)
+    strings (0.1.8)
+      strings-ansi (~> 0.1)
+      unicode-display_width (~> 1.5)
+      unicode_utils (~> 1.4)
+    strings-ansi (0.2.0)
+    tty-color (0.4.3)
+    tty-cursor (0.4.0)
+    tty-prompt (0.12.0)
+      necromancer (~> 0.4.0)
+      pastel (~> 0.7.0)
+      tty-cursor (~> 0.4.0)
+      wisper (~> 1.6.1)
+    tty-screen (0.6.5)
+    tty-table (0.10.0)
+      equatable (~> 0.5.0)
+      necromancer (~> 0.4.0)
+      pastel (~> 0.7.2)
+      strings (~> 0.1.0)
+      tty-screen (~> 0.6.4)
+    unicode-display_width (1.8.0)
+    unicode_utils (1.4.0)
+    wisper (1.6.1)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  neocities
+
+BUNDLED WITH
+   2.1.4
diff --git a/pkgs/by-name/ne/neocities/gemset.nix b/pkgs/by-name/ne/neocities/gemset.nix
new file mode 100644
index 0000000000000..bb5b696cd14d4
--- /dev/null
+++ b/pkgs/by-name/ne/neocities/gemset.nix
@@ -0,0 +1,167 @@
+{
+  equatable = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sjm9zjakyixyvsqziikdrsqfzis6j3fq23crgjkp6fwkfgndj7x";
+      type = "gem";
+    };
+    version = "0.5.0";
+  };
+  httpclient-fixcerts = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zfszylh51y8ic8sbff3mwf30jb0gj270r5nxkcm1ydxad19w6sl";
+      type = "gem";
+    };
+    version = "2.8.5";
+  };
+  necromancer = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0v9nhdkv6zrp7cn48xv7n2vjhsbslpvs0ha36mfkcd56cp27pavz";
+      type = "gem";
+    };
+    version = "0.4.0";
+  };
+  neocities = {
+    dependencies = ["httpclient-fixcerts" "pastel" "rake" "tty-prompt" "tty-table"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hfvy4gc7rzxkgl2dbrjs2fqzi5mphmr22rjfhk6n0i3bd0wazbw";
+      type = "gem";
+    };
+    version = "0.0.18";
+  };
+  pastel = {
+    dependencies = ["equatable" "tty-color"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yf30d9kzpm96gw9kwbv31p0qigwfykn8qdis5950plnzgc1vlp1";
+      type = "gem";
+    };
+    version = "0.7.2";
+  };
+  rake = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cvaqarr1m84mhc006g3l1vw7sa5qpkcw0138lsxlf769zdllsgp";
+      type = "gem";
+    };
+    version = "12.3.3";
+  };
+  strings = {
+    dependencies = ["strings-ansi" "unicode-display_width" "unicode_utils"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "111876lcqrykh30w7zzkrl06d6rj9lq24y625m28674vgfxkkcz0";
+      type = "gem";
+    };
+    version = "0.1.8";
+  };
+  strings-ansi = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "120wa6yjc63b84lprglc52f40hx3fx920n4dmv14rad41rv2s9lh";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  tty-color = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zz5xa6xbrj69h334d8nx7z732fz80s1a0b02b53mim95p80s7bk";
+      type = "gem";
+    };
+    version = "0.4.3";
+  };
+  tty-cursor = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07whfm8mnp7l49s2cm2qy1snhsqq3a90sqwb71gvym4hm2kx822a";
+      type = "gem";
+    };
+    version = "0.4.0";
+  };
+  tty-prompt = {
+    dependencies = ["necromancer" "pastel" "tty-cursor" "wisper"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1026nyqhgmgxi2nmk8xk3hca07gy5rpisjs8y6w00wnw4f01kpv0";
+      type = "gem";
+    };
+    version = "0.12.0";
+  };
+  tty-screen = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0azpjgyhdm8ycblnx9crq3dgb2x8yg454a13n60zfpsc0n138sw1";
+      type = "gem";
+    };
+    version = "0.6.5";
+  };
+  tty-table = {
+    dependencies = ["equatable" "necromancer" "pastel" "strings" "tty-screen"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05krrj1x5pmfbz74paszrsr1316w9b9jlc4wpd9s9gpzqfzwjzcg";
+      type = "gem";
+    };
+    version = "0.10.0";
+  };
+  unicode-display_width = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1204c1jx2g89pc25qk5150mk7j5k90692i7ihgfzqnad6qni74h2";
+      type = "gem";
+    };
+    version = "1.8.0";
+  };
+  unicode_utils = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h1a5yvrxzlf0lxxa1ya31jcizslf774arnsd89vgdhk4g7x08mr";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  wisper = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19bw0z1qw1dhv7gn9lad25hgbgpb1bkw8d599744xdfam158ms2s";
+      type = "gem";
+    };
+    version = "1.6.1";
+  };
+}
diff --git a/pkgs/by-name/ne/neocities/package.nix b/pkgs/by-name/ne/neocities/package.nix
new file mode 100644
index 0000000000000..5950d1ba92b27
--- /dev/null
+++ b/pkgs/by-name/ne/neocities/package.nix
@@ -0,0 +1,19 @@
+{ lib
+, bundlerApp
+, bundlerUpdateScript
+}:
+bundlerApp {
+  pname = "neocities";
+  gemdir = ./.;
+  exes = [ "neocities" ];
+
+  passthru.updateScript = bundlerUpdateScript "neocities";
+
+  meta = with lib; {
+    description = "The Neocities CLI, written in Ruby";
+    homepage = "https://github.com/neocities/neocities-ruby";
+    license = licenses.mit;
+    maintainers = with maintainers; [ infinidoge ];
+    mainProgram = "neocities";
+  };
+}
diff --git a/pkgs/by-name/ne/neovide/package.nix b/pkgs/by-name/ne/neovide/package.nix
index ce9b091add820..1e94ae750561e 100644
--- a/pkgs/by-name/ne/neovide/package.nix
+++ b/pkgs/by-name/ne/neovide/package.nix
@@ -26,16 +26,16 @@
 
 rustPlatform.buildRustPackage.override { stdenv = clangStdenv; } rec {
   pname = "neovide";
-  version = "0.12.2";
+  version = "0.13.1";
 
   src = fetchFromGitHub {
     owner = "neovide";
     repo = "neovide";
     rev = version;
-    sha256 = "sha256-M19LKNjUmC0WkVGm4t7vjxgMMe0FdMTmB1mLcG33OUg=";
+    hash = "sha256-vN4LwJdVU0OWBuG7omDYY3Q6QZ2pTyCxWxFzv9Z1/6I=";
   };
 
-  cargoHash = "sha256-2fPprZVT7V+Ot8aCpWj6WTdyFylmzlujFdTJCrtE0rk=";
+  cargoHash = "sha256-TiGEAwNXBNTXVU/CyKrUkjy8eIypYiLtoTyjskMpWvs=";
 
   SKIA_SOURCE_DIR =
     let
@@ -43,8 +43,8 @@ rustPlatform.buildRustPackage.override { stdenv = clangStdenv; } rec {
         owner = "rust-skia";
         repo = "skia";
         # see rust-skia:skia-bindings/Cargo.toml#package.metadata skia
-        rev = "m119-0.67.3";
-        sha256 = "sha256-U75NuJnQa5+SNlOrsBmdlvflGdjo3el63EeIsbnE7ms=";
+        rev = "m124-0.72.3";
+        hash = "sha256-zlHUJUXukE4CsXwwmVl3KHf9mnNPT8lC/ETEE15Gb4s=";
       };
       # The externals for skia are taken from skia/DEPS
       externals = linkFarm "skia-externals" (lib.mapAttrsToList
@@ -108,12 +108,12 @@ rustPlatform.buildRustPackage.override { stdenv = clangStdenv; } rec {
   disallowedReferences = [ SKIA_SOURCE_DIR ];
 
   meta = with lib; {
-    description = "This is a simple graphical user interface for Neovim.";
+    description = "This is a simple graphical user interface for Neovim";
     mainProgram = "neovide";
     homepage = "https://github.com/neovide/neovide";
     changelog = "https://github.com/neovide/neovide/releases/tag/${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ ck3d ];
-    platforms = platforms.all;
+    platforms = platforms.linux ++ [ "aarch64-darwin" ];
   };
 }
diff --git a/pkgs/by-name/ne/neovide/skia-externals.json b/pkgs/by-name/ne/neovide/skia-externals.json
index e57814e2a2d87..9a71fd62899ff 100644
--- a/pkgs/by-name/ne/neovide/skia-externals.json
+++ b/pkgs/by-name/ne/neovide/skia-externals.json
@@ -16,13 +16,13 @@
   },
   "zlib": {
     "url": "https://chromium.googlesource.com/chromium/src/third_party/zlib",
-    "rev": "c876c8f87101c5a75f6014b0f832499afeb65b73",
-    "sha256": "sha256-mwozVo8ymyrYN4tw+/ZnSI+xogSTZQ6PUBba/jQqRkE="
+    "rev": "646b7f569718921d7d4b5b8e22572ff6c76f2596",
+    "sha256": "sha256-jNj6SuTZ5/a7crtYhxW3Q/TlfRMNMfYIVxDlr7bYdzQ="
   },
   "harfbuzz": {
     "url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git",
-    "rev": "4cfc6d8e173e800df086d7be078da2e8c5cfca19",
-    "sha256": "sha256-rrstyAz7Eb8ZgFJZKUASY8nU4YFZAptd5VS9B2cs2Yg="
+    "rev": "c053e8f29257814e11ad61493dbbe29f27656de4",
+    "sha256": "sha256-D8DNcZH/oiJqWvfWFHvQ8AwQ3OrMwyZdfGmZ5y30Hvg="
   },
   "wuffs": {
     "url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git",
@@ -31,7 +31,7 @@
   },
   "libpng": {
     "url": "https://skia.googlesource.com/third_party/libpng.git",
-    "rev": "386707c6d19b974ca2e3db7f5c61873813c6fe44",
-    "sha256": "sha256-67kf5MBsnBBi0bOfX/RKL52xpaCWm/ampltAI+EeQ+c="
+    "rev": "144b348e072a78e8130ed0acc452c9f039a67bf2",
+    "sha256": "sha256-eTF7q7hR4S1OqV2oPQKmcHujA5Od4rGMc5879kT0SkE="
   }
 }
diff --git a/pkgs/applications/editors/neovim/neovim-qt.nix b/pkgs/by-name/ne/neovim-qt-unwrapped/package.nix
index 75067585653bf..0cd07e2711bc9 100644
--- a/pkgs/applications/editors/neovim/neovim-qt.nix
+++ b/pkgs/by-name/ne/neovim-qt-unwrapped/package.nix
@@ -1,6 +1,6 @@
-{ lib, mkDerivation, fetchFromGitHub, cmake, doxygen, msgpack, neovim, python3Packages, qtbase, qtsvg }:
+{ stdenv, lib, libsForQt5, fetchFromGitHub, cmake, doxygen, msgpack, neovim, python3Packages }:
 
-mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "neovim-qt-unwrapped";
   version = "0.2.18";
 
@@ -16,16 +16,16 @@ mkDerivation rec {
     "-DENABLE_TESTS=0"  # tests fail because xcb platform plugin is not found
   ];
 
+  nativeBuildInputs = [ cmake doxygen libsForQt5.wrapQtAppsHook ];
+
   buildInputs = [
     neovim.unwrapped # only used to generate help tags at build time
-    qtbase
-    qtsvg
+    libsForQt5.qtbase
+    libsForQt5.qtsvg
   ] ++ (with python3Packages; [
     jinja2 python msgpack
   ]);
 
-  nativeBuildInputs = [ cmake doxygen ];
-
   preCheck = ''
     # The GUI tests require a running X server, disable them
     sed -i ../test/CMakeLists.txt -e '/^add_xtest_gui/d'
diff --git a/pkgs/applications/editors/neovim/qt.nix b/pkgs/by-name/ne/neovim-qt/package.nix
index 728c364d40061..aa7b2607fb709 100644
--- a/pkgs/applications/editors/neovim/qt.nix
+++ b/pkgs/by-name/ne/neovim-qt/package.nix
@@ -1,9 +1,9 @@
-{ stdenv, makeWrapper, neovim, neovim-qt-unwrapped }:
+{ stdenv, libsForQt5, makeWrapper, neovim, neovim-qt-unwrapped }:
 
 let
   unwrapped = neovim-qt-unwrapped;
 in
-stdenv.mkDerivation {
+libsForQt5.mkDerivation {
   pname = "neovim-qt";
   version = unwrapped.version;
   buildCommand = if stdenv.isDarwin then ''
diff --git a/pkgs/by-name/ne/neovim-unwrapped/package.nix b/pkgs/by-name/ne/neovim-unwrapped/package.nix
index 0dd8ca8a0877b..bd25ac1c36f84 100644
--- a/pkgs/by-name/ne/neovim-unwrapped/package.nix
+++ b/pkgs/by-name/ne/neovim-unwrapped/package.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv, fetchFromGitHub, removeReferencesTo, cmake, gettext, msgpack-c, libtermkey, libiconv
-, libuv, lua, ncurses, pkg-config
-, unibilium, gperf
+{ lib, stdenv, fetchFromGitHub, removeReferencesTo, cmake, gettext, msgpack-c, libiconv
+, libuv, lua, pkg-config
+, unibilium
 , libvterm-neovim
 , tree-sitter
 , fetchurl
@@ -66,7 +66,7 @@ stdenv.mkDerivation (finalAttrs:
 
 in {
     pname = "neovim-unwrapped";
-    version = "0.9.5";
+    version = "0.10.0";
 
     __structuredAttrs = true;
 
@@ -74,7 +74,7 @@ in {
       owner = "neovim";
       repo = "neovim";
       rev = "v${finalAttrs.version}";
-      hash = "sha256-CcaBqA0yFCffNPmXOJTo8c9v1jrEBiqAl8CG5Dj5YxE=";
+      hash = "sha256-FCOipXHkAbkuFw9JjEpOIJ8BkyMkjkI0Dp+SzZ4yZlw=";
     };
 
     patches = [
@@ -86,11 +86,13 @@ in {
 
     dontFixCmake = true;
 
-    inherit lua treesitter-parsers;
+    inherit lua;
+    treesitter-parsers = treesitter-parsers //
+      { markdown = treesitter-parsers.markdown // { location = "tree-sitter-markdown"; }; } //
+      { markdown_inline = treesitter-parsers.markdown // { language = "markdown_inline"; location = "tree-sitter-markdown-inline"; }; }
+      ;
 
     buildInputs = [
-      gperf
-      libtermkey
       libuv
       libvterm-neovim
       # This is actually a c library, hence it's not included in neovimLuaEnv,
@@ -99,7 +101,6 @@ in {
       # and it's definition at: pkgs/development/lua-modules/overrides.nix
       lua.pkgs.libluv
       msgpack-c
-      ncurses
       neovimLuaEnv
       tree-sitter
       unibilium
@@ -169,11 +170,13 @@ in {
     '' + ''
       mkdir -p $out/lib/nvim/parser
     '' + lib.concatStrings (lib.mapAttrsToList
-      (language: src: ''
+      (language: grammar: ''
         ln -s \
           ${tree-sitter.buildGrammar {
-            inherit language src;
+            inherit (grammar) src;
             version = "neovim-${finalAttrs.version}";
+            language = grammar.language or language;
+            location = grammar.location or null;
           }}/parser \
           $out/lib/nvim/parser/${language}.so
       '')
diff --git a/pkgs/by-name/ne/neovim-unwrapped/treesitter-parsers.nix b/pkgs/by-name/ne/neovim-unwrapped/treesitter-parsers.nix
index d36f8bda85429..e4d4dd60e2eb2 100644
--- a/pkgs/by-name/ne/neovim-unwrapped/treesitter-parsers.nix
+++ b/pkgs/by-name/ne/neovim-unwrapped/treesitter-parsers.nix
@@ -1,24 +1,36 @@
 { fetchurl }:
 
 {
-  c = fetchurl {
-    url = "https://github.com/tree-sitter/tree-sitter-c/archive/v0.20.2.tar.gz";
-    hash = "sha256:af66fde03feb0df4faf03750102a0d265b007e5d957057b6b293c13116a70af2";
+  c.src = fetchurl {
+    url = "https://github.com/tree-sitter/tree-sitter-c/archive/v0.21.0.tar.gz";
+    hash = "sha256:6f0f5d1b71cf8ffd8a37fb638c6022fa1245bd630150b538547d52128ce0ea7e";
   };
-  lua = fetchurl {
-    url = "https://github.com/MunifTanjim/tree-sitter-lua/archive/v0.0.14.tar.gz";
-    hash = "sha256:930d0370dc15b66389869355c8e14305b9ba7aafd36edbfdb468c8023395016d";
+  lua.src = fetchurl {
+    url = "https://github.com/tree-sitter-grammars/tree-sitter-lua/archive/v0.1.0.tar.gz";
+    hash = "sha256:230cfcbfa74ed1f7b8149e9a1f34c2efc4c589a71fe0f5dc8560622f8020d722";
   };
-  vim = fetchurl {
-    url = "https://github.com/neovim/tree-sitter-vim/archive/v0.3.0.tar.gz";
-    hash = "sha256:403acec3efb7cdb18ff3d68640fc823502a4ffcdfbb71cec3f98aa786c21cbe2";
+  vim.src = fetchurl {
+    url = "https://github.com/neovim/tree-sitter-vim/archive/v0.4.0.tar.gz";
+    hash = "sha256:9f856f8b4a10ab43348550fa2d3cb2846ae3d8e60f45887200549c051c66f9d5";
   };
-  vimdoc = fetchurl {
-    url = "https://github.com/neovim/tree-sitter-vimdoc/archive/v2.0.0.tar.gz";
-    hash = "sha256:1ff8f4afd3a9599dd4c3ce87c155660b078c1229704d1a254433e33794b8f274";
+  vimdoc.src = fetchurl {
+    url = "https://github.com/neovim/tree-sitter-vimdoc/archive/v2.5.1.tar.gz";
+    hash = "sha256:063645096504b21603585507c41c6d8718ff3c11b2150c5bfc31e8f3ee9afea3";
   };
-  query = fetchurl {
-    url = "https://github.com/nvim-treesitter/tree-sitter-query/archive/v0.1.0.tar.gz";
-    hash = "sha256:e2b806f80e8bf1c4f4e5a96248393fe6622fc1fc6189d6896d269658f67f914c";
+  query.src = fetchurl {
+    url = "https://github.com/tree-sitter-grammars/tree-sitter-query/archive/v0.3.0.tar.gz";
+    hash = "sha256:f878ff37abcb83250e31a6569e997546f3dbab74dcb26683cb2d613f7568cfc0";
+  };
+  python.src = fetchurl {
+    url = "https://github.com/tree-sitter/tree-sitter-python/archive/v0.21.0.tar.gz";
+    hash = "sha256:720304a603271fa89e4430a14d6a81a023d6d7d1171b1533e49c0ab44f1e1c13";
+  };
+  bash.src = fetchurl {
+    url = "https://github.com/tree-sitter/tree-sitter-bash/archive/v0.21.0.tar.gz";
+    hash = "sha256:f0515efda839cfede851adb24ac154227fbc0dfb60c6c11595ecfa9087d43ceb";
+  };
+  markdown.src = fetchurl {
+    url = "https://github.com/MDeiml/tree-sitter-markdown/archive/v0.2.3.tar.gz";
+    hash = "sha256:4909d6023643f1afc3ab219585d4035b7403f3a17849782ab803c5f73c8a31d5";
   };
 }
diff --git a/pkgs/by-name/ne/neovim-unwrapped/update-treesitter-parsers.py b/pkgs/by-name/ne/neovim-unwrapped/update-treesitter-parsers.py
index 27260ca649172..117c7eb481231 100755
--- a/pkgs/by-name/ne/neovim-unwrapped/update-treesitter-parsers.py
+++ b/pkgs/by-name/ne/neovim-unwrapped/update-treesitter-parsers.py
@@ -7,7 +7,7 @@ from pathlib import Path
 
 parsers = {}
 dir = Path(__file__).parent
-regex = re.compile(r"^set\(TREESITTER_([A-Z_]+)_(URL|SHA256)\s+([^ \)]+)\s*\)\s*$")
+regex = re.compile(r"^TREESITTER_([A-Z_]+)_(URL|SHA256)\s+(.+)$")
 
 src = subprocess.check_output(
     [
@@ -20,8 +20,8 @@ src = subprocess.check_output(
     text=True,
 ).strip()
 
-for line in open(f"{src}/cmake.deps/CMakeLists.txt"):
-    m = regex.fullmatch(line)
+for line in open(f"{src}/cmake.deps/deps.txt"):
+    m = regex.fullmatch(line.strip())
     if m is None:
         continue
 
@@ -37,7 +37,7 @@ with open(dir / "treesitter-parsers.nix", "w") as f:
     f.write("{ fetchurl }:\n\n{\n")
     for lang, src in parsers.items():
         f.write(
-            f"""  {lang} = fetchurl {{
+            f"""  {lang}.src = fetchurl {{
     url = "{src["URL"]}";
     hash = "sha256:{src["SHA256"]}";
   }};
diff --git a/pkgs/by-name/ne/nerdfetch/package.nix b/pkgs/by-name/ne/nerdfetch/package.nix
index de0931d3b685a..33160a7f603af 100644
--- a/pkgs/by-name/ne/nerdfetch/package.nix
+++ b/pkgs/by-name/ne/nerdfetch/package.nix
@@ -27,7 +27,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   };
 
   meta = with lib;{
-    description = "A POSIX *nix (Linux, macOS, Android, *BSD, etc) fetch script using Nerdfonts";
+    description = "POSIX *nix (Linux, macOS, Android, *BSD, etc) fetch script using Nerdfonts";
     homepage = "https://github.com/ThatOneCalculator/NerdFetch";
     maintainers = with maintainers; [ ByteSudoer ];
     license = licenses.mit;
diff --git a/pkgs/by-name/ne/netclient/package.nix b/pkgs/by-name/ne/netclient/package.nix
index 456a422fabdd1..5b2dc7b8024ee 100644
--- a/pkgs/by-name/ne/netclient/package.nix
+++ b/pkgs/by-name/ne/netclient/package.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "netclient";
-  version = "0.24.1";
+  version = "0.24.2";
 
   src = fetchFromGitHub {
     owner = "gravitl";
     repo = "netclient";
     rev = "v${version}";
-    hash = "sha256-oS0DqrlOyab0MS7qSEquEIixcOYnlGuCYtCBmfEURm0=";
+    hash = "sha256-7+r2fuFNVvOC0Zl1kqAiAh9C3qqhg7KGrbnOp4Jk+Is=";
   };
 
-  vendorHash = "sha256-09pRwsB2ycB/MK3isXZLBZDpga95SHYkNPjWWYtUuoU=";
+  vendorHash = "sha256-eTiNBs8xcfrth/E44URhD8uSgdoXZT1+MD3H24dzI1A=";
 
   buildInputs = lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Cocoa
     ++ lib.optional stdenv.isLinux libX11;
diff --git a/pkgs/by-name/ne/netease-cloud-music-gtk/Cargo.lock b/pkgs/by-name/ne/netease-cloud-music-gtk/Cargo.lock
index 8bf8172424599..2e116556b7744 100644
--- a/pkgs/by-name/ne/netease-cloud-music-gtk/Cargo.lock
+++ b/pkgs/by-name/ne/netease-cloud-music-gtk/Cargo.lock
@@ -10,9 +10,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "aho-corasick"
-version = "1.1.2"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
 dependencies = [
  "memchr",
 ]
@@ -34,47 +34,48 @@ dependencies = [
 
 [[package]]
 name = "anstream"
-version = "0.6.13"
+version = "0.6.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
+checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b"
 dependencies = [
  "anstyle",
  "anstyle-parse",
  "anstyle-query",
  "anstyle-wincon",
  "colorchoice",
+ "is_terminal_polyfill",
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle"
-version = "1.0.6"
+version = "1.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
+checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.3"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
+checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4"
 dependencies = [
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle-query"
-version = "1.0.2"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
+checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5"
 dependencies = [
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "anstyle-wincon"
-version = "3.0.2"
+version = "3.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
+checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19"
 dependencies = [
  "anstyle",
  "windows-sys 0.52.0",
@@ -82,18 +83,20 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.80"
+version = "1.0.86"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
+checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
 
 [[package]]
 name = "async-broadcast"
-version = "0.5.1"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b"
+checksum = "258b52a1aa741b9f09783b2d86cf0aeeb617bbf847f6933340a39644227acbdb"
 dependencies = [
- "event-listener 2.5.3",
+ "event-listener 5.3.1",
+ "event-listener-strategy 0.5.2",
  "futures-core",
+ "pin-project-lite",
 ]
 
 [[package]]
@@ -109,61 +112,38 @@ dependencies = [
 
 [[package]]
 name = "async-channel"
-version = "2.2.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
+checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a"
 dependencies = [
  "concurrent-queue",
- "event-listener 5.2.0",
- "event-listener-strategy 0.5.0",
+ "event-listener-strategy 0.5.2",
  "futures-core",
  "pin-project-lite",
 ]
 
 [[package]]
 name = "async-executor"
-version = "1.8.0"
+version = "1.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c"
+checksum = "c8828ec6e544c02b0d6691d21ed9f9218d0384a82542855073c2a3f58304aaf0"
 dependencies = [
- "async-lock 3.3.0",
  "async-task",
  "concurrent-queue",
- "fastrand 2.0.1",
- "futures-lite 2.2.0",
+ "fastrand 2.1.0",
+ "futures-lite 2.3.0",
  "slab",
 ]
 
 [[package]]
 name = "async-fs"
-version = "1.6.0"
+version = "2.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06"
+checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a"
 dependencies = [
- "async-lock 2.8.0",
- "autocfg",
+ "async-lock",
  "blocking",
- "futures-lite 1.13.0",
-]
-
-[[package]]
-name = "async-io"
-version = "1.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
-dependencies = [
- "async-lock 2.8.0",
- "autocfg",
- "cfg-if",
- "concurrent-queue",
- "futures-lite 1.13.0",
- "log",
- "parking",
- "polling 2.8.0",
- "rustix 0.37.27",
- "slab",
- "socket2 0.4.10",
- "waker-fn",
+ "futures-lite 2.3.0",
 ]
 
 [[package]]
@@ -172,14 +152,14 @@ version = "2.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884"
 dependencies = [
- "async-lock 3.3.0",
+ "async-lock",
  "cfg-if",
  "concurrent-queue",
  "futures-io",
- "futures-lite 2.2.0",
+ "futures-lite 2.3.0",
  "parking",
- "polling 3.5.0",
- "rustix 0.38.31",
+ "polling 3.7.0",
+ "rustix",
  "slab",
  "tracing",
  "windows-sys 0.52.0",
@@ -187,15 +167,6 @@ dependencies = [
 
 [[package]]
 name = "async-lock"
-version = "2.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
-dependencies = [
- "event-listener 2.5.3",
-]
-
-[[package]]
-name = "async-lock"
 version = "3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
@@ -207,65 +178,68 @@ dependencies = [
 
 [[package]]
 name = "async-process"
-version = "1.8.1"
+version = "2.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88"
+checksum = "a53fc6301894e04a92cb2584fedde80cb25ba8e02d9dc39d4a87d036e22f397d"
 dependencies = [
- "async-io 1.13.0",
- "async-lock 2.8.0",
+ "async-channel 2.3.1",
+ "async-io",
+ "async-lock",
  "async-signal",
+ "async-task",
  "blocking",
  "cfg-if",
- "event-listener 3.1.0",
- "futures-lite 1.13.0",
- "rustix 0.38.31",
- "windows-sys 0.48.0",
+ "event-listener 5.3.1",
+ "futures-lite 2.3.0",
+ "rustix",
+ "tracing",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "async-recursion"
-version = "1.0.5"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
+checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
 ]
 
 [[package]]
 name = "async-signal"
-version = "0.2.5"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
+checksum = "afe66191c335039c7bb78f99dc7520b0cbb166b3a1cb33a03f53d8a1c6f2afda"
 dependencies = [
- "async-io 2.3.2",
- "async-lock 2.8.0",
+ "async-io",
+ "async-lock",
  "atomic-waker",
  "cfg-if",
  "futures-core",
  "futures-io",
- "rustix 0.38.31",
+ "rustix",
  "signal-hook-registry",
  "slab",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "async-task"
-version = "4.7.0"
+version = "4.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
+checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
 
 [[package]]
 name = "async-trait"
-version = "0.1.77"
+version = "0.1.80"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
+checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
 ]
 
 [[package]]
@@ -282,15 +256,15 @@ checksum = "41e67cd8309bbd06cd603a9e693a784ac2e5d1e955f11286e355089fcab3047c"
 
 [[package]]
 name = "autocfg"
-version = "1.1.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
 
 [[package]]
 name = "base64"
-version = "0.22.0"
+version = "0.22.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51"
+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
 
 [[package]]
 name = "bitflags"
@@ -300,9 +274,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.2"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
 
 [[package]]
 name = "block"
@@ -321,31 +295,28 @@ dependencies = [
 
 [[package]]
 name = "blocking"
-version = "1.5.1"
+version = "1.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
+checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea"
 dependencies = [
- "async-channel 2.2.0",
- "async-lock 3.3.0",
+ "async-channel 2.3.1",
  "async-task",
- "fastrand 2.0.1",
  "futures-io",
- "futures-lite 2.2.0",
+ "futures-lite 2.3.0",
  "piper",
- "tracing",
 ]
 
 [[package]]
 name = "bumpalo"
-version = "3.15.4"
+version = "3.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
 
 [[package]]
 name = "bytemuck"
-version = "1.14.3"
+version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
+checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5"
 
 [[package]]
 name = "byteorder"
@@ -355,17 +326,17 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
-version = "1.5.0"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
 
 [[package]]
 name = "cairo-rs"
-version = "0.19.2"
+version = "0.19.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2650f66005301bd33cc486dec076e1293c4cecf768bc7ba9bf5d2b1be339b99c"
+checksum = "b2ac2a4d0e69036cf0062976f6efcba1aaee3e448594e6514bb2ddf87acce562"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "cairo-sys-rs",
  "glib",
  "libc",
@@ -391,15 +362,15 @@ checksum = "a2698f953def977c68f935bb0dfa959375ad4638570e969e2f1e9f433cbf1af6"
 
 [[package]]
 name = "cc"
-version = "1.0.90"
+version = "1.0.98"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
+checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
 
 [[package]]
 name = "cfg-expr"
-version = "0.15.7"
+version = "0.15.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d"
+checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02"
 dependencies = [
  "smallvec",
  "target-lexicon",
@@ -412,17 +383,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
+[[package]]
 name = "chrono"
-version = "0.4.35"
+version = "0.4.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "js-sys",
  "num-traits",
  "wasm-bindgen",
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -433,24 +410,24 @@ checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
 
 [[package]]
 name = "colorchoice"
-version = "1.0.0"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422"
 
 [[package]]
 name = "concurrent-queue"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
+checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
 dependencies = [
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "cookie"
-version = "0.18.0"
+version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cd91cf61412820176e137621345ee43b3f4423e589e7ae4e50d601d93e35ef8"
+checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747"
 dependencies = [
  "percent-encoding",
  "time",
@@ -491,18 +468,18 @@ dependencies = [
 
 [[package]]
 name = "crc32fast"
-version = "1.4.0"
+version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
+checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
 dependencies = [
  "cfg-if",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.19"
+version = "0.8.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
 
 [[package]]
 name = "crypto-common"
@@ -525,7 +502,7 @@ dependencies = [
  "openssl-probe",
  "openssl-sys",
  "schannel",
- "socket2 0.5.6",
+ "socket2",
  "windows-sys 0.52.0",
 ]
 
@@ -555,17 +532,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "derivative"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
 name = "digest"
 version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -577,20 +543,26 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.10.0"
+version = "1.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
+checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b"
 
 [[package]]
 name = "encoding_rs"
-version = "0.8.33"
+version = "0.8.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
 dependencies = [
  "cfg-if",
 ]
 
 [[package]]
+name = "endi"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf"
+
+[[package]]
 name = "enumflags2"
 version = "0.7.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -608,7 +580,7 @@ checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
 ]
 
 [[package]]
@@ -642,9 +614,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "errno"
-version = "0.3.8"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
 dependencies = [
  "libc",
  "windows-sys 0.52.0",
@@ -658,17 +630,6 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
 
 [[package]]
 name = "event-listener"
-version = "3.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2"
-dependencies = [
- "concurrent-queue",
- "parking",
- "pin-project-lite",
-]
-
-[[package]]
-name = "event-listener"
 version = "4.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
@@ -680,9 +641,9 @@ dependencies = [
 
 [[package]]
 name = "event-listener"
-version = "5.2.0"
+version = "5.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91"
+checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba"
 dependencies = [
  "concurrent-queue",
  "parking",
@@ -701,11 +662,11 @@ dependencies = [
 
 [[package]]
 name = "event-listener-strategy"
-version = "0.5.0"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
+checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1"
 dependencies = [
- "event-listener 5.2.0",
+ "event-listener 5.3.1",
  "pin-project-lite",
 ]
 
@@ -720,9 +681,9 @@ dependencies = [
 
 [[package]]
 name = "fastrand"
-version = "2.0.1"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
 
 [[package]]
 name = "fdeflate"
@@ -739,15 +700,15 @@ version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f"
 dependencies = [
- "memoffset 0.9.0",
+ "memoffset",
  "rustc_version",
 ]
 
 [[package]]
 name = "flate2"
-version = "1.0.28"
+version = "1.0.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
+checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae"
 dependencies = [
  "crc32fast",
  "miniz_oxide",
@@ -832,11 +793,11 @@ dependencies = [
 
 [[package]]
 name = "futures-lite"
-version = "2.2.0"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba"
+checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
 dependencies = [
- "fastrand 2.0.1",
+ "fastrand 2.1.0",
  "futures-core",
  "futures-io",
  "parking",
@@ -851,7 +812,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
 ]
 
 [[package]]
@@ -897,9 +858,9 @@ dependencies = [
 
 [[package]]
 name = "gdk-pixbuf-sys"
-version = "0.19.0"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dcbd04c1b2c4834cc008b4828bc917d062483b88d26effde6342e5622028f96"
+checksum = "1fdbf021f8b9d19e30fb9ea6d6e5f2b6a712fe4645417c69f86f6ff1e1444a8f"
 dependencies = [
  "gio-sys",
  "glib-sys",
@@ -910,9 +871,9 @@ dependencies = [
 
 [[package]]
 name = "gdk4"
-version = "0.8.1"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9100b25604183f2fd97f55ef087fae96ab4934d7215118a35303e422688e6e4b"
+checksum = "db265c9dd42d6a371e09e52deab3a84808427198b86ac792d75fd35c07990a07"
 dependencies = [
  "cairo-rs",
  "gdk-pixbuf",
@@ -925,9 +886,9 @@ dependencies = [
 
 [[package]]
 name = "gdk4-sys"
-version = "0.8.1"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0b76874c40bb8d1c7d03a7231e23ac75fa577a456cd53af32ec17ec8f121626"
+checksum = "c9418fb4e8a67074919fe7604429c45aa74eb9df82e7ca529767c6d4e9dc66dd"
 dependencies = [
  "cairo-sys-rs",
  "gdk-pixbuf-sys",
@@ -952,9 +913,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.12"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
 dependencies = [
  "cfg-if",
  "libc",
@@ -983,9 +944,9 @@ dependencies = [
 
 [[package]]
 name = "gio"
-version = "0.19.2"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2eae10b27b6dd27e22ed0d812c6387deba295e6fc004a8b379e459b663b05a02"
+checksum = "be548be810e45dd31d3bbb89c6210980bb7af9bca3ea1292b5f16b75f8e394a7"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -1001,9 +962,9 @@ dependencies = [
 
 [[package]]
 name = "gio-sys"
-version = "0.19.0"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcf8e1d9219bb294636753d307b030c1e8a032062cba74f493c431a5c8b81ce4"
+checksum = "d4bdbef451b0f0361e7f762987cc6bebd5facab1d535e85a3cf1115dfb08db40"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -1014,11 +975,11 @@ dependencies = [
 
 [[package]]
 name = "glib"
-version = "0.19.2"
+version = "0.19.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab9e86540b5d8402e905ad4ce7d6aa544092131ab564f3102175af176b90a053"
+checksum = "e52355166df21c7ed16b6a01f615669c7911ed74e27ef60eba339c0d2da12490"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "futures-channel",
  "futures-core",
  "futures-executor",
@@ -1036,22 +997,22 @@ dependencies = [
 
 [[package]]
 name = "glib-macros"
-version = "0.19.2"
+version = "0.19.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f5897ca27a83e4cdc7b4666850bade0a2e73e17689aabafcc9acddad9d823b8"
+checksum = "70025dbfa1275cf7d0531c3317ba6270dae15d87e63342229d638246ff45202e"
 dependencies = [
  "heck",
- "proc-macro-crate 3.1.0",
+ "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
 ]
 
 [[package]]
 name = "glib-sys"
-version = "0.19.0"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630f097773d7c7a0bb3258df4e8157b47dc98bbfa0e60ad9ab56174813feced4"
+checksum = "767d23ead9bbdfcbb1c2242c155c8128a7d13dde7bf69c176f809546135e2282"
 dependencies = [
  "libc",
  "system-deps",
@@ -1059,9 +1020,9 @@ dependencies = [
 
 [[package]]
 name = "gobject-sys"
-version = "0.19.0"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c85e2b1080b9418dd0c58b498da3a5c826030343e0ef07bde6a955d28de54979"
+checksum = "c3787b0bfacca12bb25f8f822b0dbee9f7e4a86e6469a29976d332d2c14c945b"
 dependencies = [
  "glib-sys",
  "libc",
@@ -1081,9 +1042,9 @@ dependencies = [
 
 [[package]]
 name = "graphene-sys"
-version = "0.19.0"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "236ed66cc9b18d8adf233716f75de803d0bf6fc806f60d14d948974a12e240d0"
+checksum = "2a60e7381afdd7be43bd10a89d3b6741d162aabbca3a8db73505afb6a3aea59d"
 dependencies = [
  "glib-sys",
  "libc",
@@ -1093,9 +1054,9 @@ dependencies = [
 
 [[package]]
 name = "gsk4"
-version = "0.8.1"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c65036fc8f99579e8cb37b12487969b707ab23ec8ab953682ff347cbd15d396e"
+checksum = "7563884bf6939f4468e5d94654945bdd9afcaf8c3ba4c5dd17b5342b747221be"
 dependencies = [
  "cairo-rs",
  "gdk4",
@@ -1108,9 +1069,9 @@ dependencies = [
 
 [[package]]
 name = "gsk4-sys"
-version = "0.8.1"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd24c814379f9c3199dc53e52253ee8d0f657eae389ab282c330505289d24738"
+checksum = "23024bf2636c38bbd1f822f58acc9d1c25b28da896ff0f291a1a232d4272b3dc"
 dependencies = [
  "cairo-sys-rs",
  "gdk4-sys",
@@ -1124,9 +1085,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer"
-version = "0.22.2"
+version = "0.22.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48a5e10c539f8b594c50f6cd1bd1cd07785e06d701a077bff397ad211bc92e88"
+checksum = "56b59fdce2dfacda226d4b1b71ce4700b2f04228909b52252c197d8e30bd54a6"
 dependencies = [
  "cfg-if",
  "futures-channel",
@@ -1163,9 +1124,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-base-sys"
-version = "0.22.0"
+version = "0.22.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "286591e0f85bbda1adf9bab6f21d015acd9ca0a4d4acb61da65e3d0487e23c4e"
+checksum = "2d8d11de9d94072657f2e9ca294b72326874a1e53de9f45613a9bf00773a5938"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -1189,9 +1150,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-play-sys"
-version = "0.22.0"
+version = "0.22.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19def7b12d3a53c520ad661b8f4501ae04158627e4a9fc49cc30c4ea04522cbf"
+checksum = "5bdd875021fecd478d0ee3b787dc3fd41be86f83692c59344af2db6251028b3c"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -1203,9 +1164,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-sys"
-version = "0.22.2"
+version = "0.22.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5ddf526b3bf90ea627224c804f00b8bcb0452e3b447978b4d5092f8e8ff5918"
+checksum = "4975a75279a9cf658bac1798dcf57100c6ec89fca7886572c8250ea4d94b76bd"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -1215,9 +1176,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-video"
-version = "0.22.1"
+version = "0.22.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ab3f4045ddb92bf2b469f5db8825d4f5eb46e4beff661fc97f50bb4e2b2c626"
+checksum = "2a7900a4c4d7a48bd73405fb23289d2604c5efe483eb224cbe252d6a7517a6d5"
 dependencies = [
  "cfg-if",
  "futures-channel",
@@ -1232,9 +1193,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-video-sys"
-version = "0.22.1"
+version = "0.22.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1ea7996ba44fbbf563aeeda96e24259efc9f06b407854d837ee58e260d7ba78"
+checksum = "1cbe811de2cc60da42eb6d374a106bb5446e8fcd2134a97319dd2b8cc11450c7"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -1246,9 +1207,9 @@ dependencies = [
 
 [[package]]
 name = "gtk4"
-version = "0.8.1"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa82753b8c26277e4af1446c70e35b19aad4fb794a7b143859e7eeb9a4025d83"
+checksum = "b04e11319b08af11358ab543105a9e49b0c491faca35e2b8e7e36bfba8b671ab"
 dependencies = [
  "cairo-rs",
  "field-offset",
@@ -1267,23 +1228,21 @@ dependencies = [
 
 [[package]]
 name = "gtk4-macros"
-version = "0.8.1"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40300bf071d2fcd4c94eacc09e84ec6fe73129d2ceb635cf7e55b026b5443567"
+checksum = "ec655a7ef88d8ce9592899deb8b2d0fa50bab1e6dd69182deb764e643c522408"
 dependencies = [
- "anyhow",
- "proc-macro-crate 3.1.0",
- "proc-macro-error",
+ "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn",
 ]
 
 [[package]]
 name = "gtk4-sys"
-version = "0.8.1"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0db1b104138f087ccdc81d2c332de5dd049b89de3d384437cc1093b17cd2da18"
+checksum = "8c8aa86b7f85ea71d66ea88c1d4bae1cfacf51ca4856274565133838d77e57b5"
 dependencies = [
  "cairo-sys-rs",
  "gdk-pixbuf-sys",
@@ -1300,15 +1259,15 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.14.3"
+version = "0.14.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
 
 [[package]]
 name = "heck"
-version = "0.4.1"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
 
 [[package]]
 name = "hermit-abi"
@@ -1412,9 +1371,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.2.5"
+version = "2.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
 dependencies = [
  "equivalent",
  "hashbrown",
@@ -1422,23 +1381,18 @@ dependencies = [
 
 [[package]]
 name = "instant"
-version = "0.1.12"
+version = "0.1.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222"
 dependencies = [
  "cfg-if",
 ]
 
 [[package]]
-name = "io-lifetimes"
-version = "1.0.11"
+name = "is_terminal_polyfill"
+version = "1.70.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
-dependencies = [
- "hermit-abi",
- "libc",
- "windows-sys 0.48.0",
-]
+checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800"
 
 [[package]]
 name = "isahc"
@@ -1470,18 +1424,18 @@ dependencies = [
 
 [[package]]
 name = "itertools"
-version = "0.12.1"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
+checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
 dependencies = [
  "either",
 ]
 
 [[package]]
 name = "itoa"
-version = "1.0.10"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
 
 [[package]]
 name = "js-sys"
@@ -1532,15 +1486,15 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.153"
+version = "0.2.155"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
 
 [[package]]
 name = "libnghttp2-sys"
-version = "0.1.9+1.58.0"
+version = "0.1.10+1.61.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b57e858af2798e167e709b9d969325b6d8e9d50232fcbc494d7d54f976854a64"
+checksum = "959c25552127d2e1fa72f0e52548ec04fc386e827ba71a7bd01db46a447dc135"
 dependencies = [
  "cc",
  "libc",
@@ -1548,9 +1502,9 @@ dependencies = [
 
 [[package]]
 name = "libz-sys"
-version = "1.1.15"
+version = "1.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6"
+checksum = "c15da26e5af7e25c90b37a2d75cdbf940cf4a55316de9d84c679c9b8bfabf82e"
 dependencies = [
  "cc",
  "libc",
@@ -1560,15 +1514,9 @@ dependencies = [
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.3.8"
+version = "0.4.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
-
-[[package]]
-name = "linux-raw-sys"
-version = "0.4.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
 
 [[package]]
 name = "locale_config"
@@ -1600,24 +1548,15 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
-
-[[package]]
-name = "memoffset"
-version = "0.7.1"
+version = "2.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
-dependencies = [
- "autocfg",
-]
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
 
 [[package]]
 name = "memoffset"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
 dependencies = [
  "autocfg",
 ]
@@ -1630,9 +1569,9 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
+checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae"
 dependencies = [
  "adler",
  "simd-adler32",
@@ -1640,14 +1579,14 @@ dependencies = [
 
 [[package]]
 name = "mpris-server"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca665e9b0f892e42d7ad9ee6076adaf5de762497640816c67fb6406aca946d40"
+checksum = "cc8408a42f7325f9217576c25dd3066d2741ed6a5b962e189493d83c440ca475"
 dependencies = [
- "async-trait",
+ "async-channel 2.3.1",
  "futures-channel",
- "futures-util",
  "serde",
+ "trait-variant",
  "zbus",
 ]
 
@@ -1659,8 +1598,8 @@ checksum = "956787520e75e9bd233246045d19f42fb73242759cc57fba9611d940ae96d4b0"
 
 [[package]]
 name = "netease-cloud-music-api"
-version = "1.3.1"
-source = "git+https://gitee.com/gmg137/netease-cloud-music-api.git?tag=1.3.1#fa13ca1fb89a97fff0bab58493ec353e4200ecd2"
+version = "1.3.2"
+source = "git+https://gitee.com/gmg137/netease-cloud-music-api.git?tag=1.3.2#4ea470a0e3b4f2a310a70ca485f60d3f6a643c03"
 dependencies = [
  "anyhow",
  "base64",
@@ -1677,14 +1616,14 @@ dependencies = [
 
 [[package]]
 name = "netease-cloud-music-gtk4"
-version = "2.3.1"
+version = "2.4.0"
 dependencies = [
  "anyhow",
- "async-channel 2.2.0",
+ "async-channel 2.3.1",
  "chrono",
  "cookie_store",
  "env_logger",
- "fastrand 2.0.1",
+ "fastrand 2.1.0",
  "gettext-rs",
  "gstreamer",
  "gstreamer-play",
@@ -1700,14 +1639,15 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.26.4"
+version = "0.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.5.0",
  "cfg-if",
+ "cfg_aliases",
  "libc",
- "memoffset 0.7.1",
+ "memoffset",
 ]
 
 [[package]]
@@ -1727,20 +1667,19 @@ dependencies = [
 
 [[package]]
 name = "num-rational"
-version = "0.4.1"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
+checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
 dependencies = [
- "autocfg",
  "num-integer",
  "num-traits",
 ]
 
 [[package]]
 name = "num-traits"
-version = "0.2.18"
+version = "0.2.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
 dependencies = [
  "autocfg",
 ]
@@ -1786,7 +1725,7 @@ version = "0.10.64"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "cfg-if",
  "foreign-types",
  "libc",
@@ -1803,7 +1742,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
 ]
 
 [[package]]
@@ -1814,9 +1753,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.101"
+version = "0.9.102"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff"
+checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2"
 dependencies = [
  "cc",
  "libc",
@@ -1845,9 +1784,9 @@ dependencies = [
 
 [[package]]
 name = "pango"
-version = "0.19.2"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7809e8af4df8d024a066106b72ca6bc7253a484ae3867041a96103ef8a13188d"
+checksum = "504ce6e805439ea2c6791168fe7ef8e3da0c1b2ef82c44bc450dbc330592920d"
 dependencies = [
  "gio",
  "glib",
@@ -1857,9 +1796,9 @@ dependencies = [
 
 [[package]]
 name = "pango-sys"
-version = "0.19.0"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f52ef6a881c19fbfe3b1484df5cad411acaaba29dbec843941c3110d19f340ea"
+checksum = "e4829555bdbb83692ddeaf5a6927fb2d025c8131e5ecaa4f7619fff6985d3505"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -1875,9 +1814,9 @@ checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
 
 [[package]]
 name = "paste"
-version = "1.0.14"
+version = "1.0.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
+checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
 
 [[package]]
 name = "percent-encoding"
@@ -1902,14 +1841,14 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
 ]
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.13"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
 
 [[package]]
 name = "pin-utils"
@@ -1919,12 +1858,12 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
 name = "piper"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4"
+checksum = "464db0c665917b13ebb5d453ccdec4add5658ee1adc7affc7677615356a8afaf"
 dependencies = [
  "atomic-waker",
- "fastrand 2.0.1",
+ "fastrand 2.1.0",
  "futures-io",
 ]
 
@@ -1965,14 +1904,15 @@ dependencies = [
 
 [[package]]
 name = "polling"
-version = "3.5.0"
+version = "3.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24f040dee2588b4963afb4e420540439d126f73fdacf4a9c486a96d840bac3c9"
+checksum = "645493cf344456ef24219d02a768cf1fb92ddf8c92161679ae3d91b91a637be3"
 dependencies = [
  "cfg-if",
  "concurrent-queue",
+ "hermit-abi",
  "pin-project-lite",
- "rustix 0.38.31",
+ "rustix",
  "tracing",
  "windows-sys 0.52.0",
 ]
@@ -1991,16 +1931,6 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[package]]
 name = "proc-macro-crate"
-version = "1.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
-dependencies = [
- "once_cell",
- "toml_edit 0.19.15",
-]
-
-[[package]]
-name = "proc-macro-crate"
 version = "3.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
@@ -2009,34 +1939,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "proc-macro-error"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
-dependencies = [
- "proc-macro-error-attr",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
- "version_check",
-]
-
-[[package]]
-name = "proc-macro-error-attr"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
-dependencies = [
- "proc-macro2",
- "quote",
- "version_check",
-]
-
-[[package]]
 name = "proc-macro2"
-version = "1.0.78"
+version = "1.0.84"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+checksum = "ec96c6a92621310b51366f1e28d05ef11489516e93be030060e5fc12024a49d6"
 dependencies = [
  "unicode-ident",
 ]
@@ -2076,9 +1982,9 @@ checksum = "4339fc7a1021c9c1621d87f5e3505f2805c8c105420ba2f2a4df86814590c142"
 
 [[package]]
 name = "quote"
-version = "1.0.35"
+version = "1.0.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
 dependencies = [
  "proc-macro2",
 ]
@@ -2115,9 +2021,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.10.3"
+version = "1.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -2138,9 +2044,9 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
 
 [[package]]
 name = "rustc_version"
@@ -2153,36 +2059,22 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.37.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
-dependencies = [
- "bitflags 1.3.2",
- "errno",
- "io-lifetimes",
- "libc",
- "linux-raw-sys 0.3.8",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "rustix"
-version = "0.38.31"
+version = "0.38.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
+checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "errno",
  "libc",
- "linux-raw-sys 0.4.13",
+ "linux-raw-sys",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "ryu"
-version = "1.0.17"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
 
 [[package]]
 name = "schannel"
@@ -2195,35 +2087,35 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.22"
+version = "1.0.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
+checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
 
 [[package]]
 name = "serde"
-version = "1.0.197"
+version = "1.0.203"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
+checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.197"
+version = "1.0.203"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
+checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.114"
+version = "1.0.117"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
+checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
 dependencies = [
  "itoa",
  "ryu",
@@ -2232,20 +2124,20 @@ dependencies = [
 
 [[package]]
 name = "serde_repr"
-version = "0.1.18"
+version = "0.1.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
+checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
 ]
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.5"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0"
 dependencies = [
  "serde",
 ]
@@ -2263,9 +2155,9 @@ dependencies = [
 
 [[package]]
 name = "signal-hook-registry"
-version = "1.4.1"
+version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
 dependencies = [
  "libc",
 ]
@@ -2298,25 +2190,15 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
-
-[[package]]
-name = "socket2"
-version = "0.4.10"
+version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
-dependencies = [
- "libc",
- "winapi",
-]
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "socket2"
-version = "0.5.6"
+version = "0.5.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
+checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
 dependencies = [
  "libc",
  "windows-sys 0.52.0",
@@ -2330,20 +2212,9 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
 
 [[package]]
 name = "syn"
-version = "1.0.109"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "syn"
-version = "2.0.52"
+version = "2.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
+checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2352,9 +2223,9 @@ dependencies = [
 
 [[package]]
 name = "system-deps"
-version = "6.2.0"
+version = "6.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331"
+checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349"
 dependencies = [
  "cfg-expr",
  "heck",
@@ -2371,9 +2242,9 @@ checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
 
 [[package]]
 name = "temp-dir"
-version = "0.1.12"
+version = "0.1.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd16aa9ffe15fe021c6ee3766772132c6e98dfa395a167e16864f61a9cfb71d6"
+checksum = "1f227968ec00f0e5322f9b8173c7a0cbcff6181a0a5b28e9892491c286277231"
 
 [[package]]
 name = "tempfile"
@@ -2382,36 +2253,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if",
- "fastrand 2.0.1",
- "rustix 0.38.31",
+ "fastrand 2.1.0",
+ "rustix",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "thiserror"
-version = "1.0.57"
+version = "1.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
+checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.57"
+version = "1.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
+checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
 ]
 
 [[package]]
 name = "time"
-version = "0.3.34"
+version = "0.3.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
+checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
 dependencies = [
  "deranged",
  "itoa",
@@ -2430,9 +2301,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.17"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
+checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
 dependencies = [
  "num-conv",
  "time-core",
@@ -2455,38 +2326,27 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "toml"
-version = "0.8.10"
+version = "0.8.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
+checksum = "a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.22.6",
+ "toml_edit 0.22.13",
 ]
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.5"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.19.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
-dependencies = [
- "indexmap",
- "toml_datetime",
- "winnow 0.5.40",
-]
-
-[[package]]
-name = "toml_edit"
 version = "0.21.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
@@ -2498,15 +2358,15 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.22.6"
+version = "0.22.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6"
+checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c"
 dependencies = [
  "indexmap",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow 0.6.5",
+ "winnow 0.6.9",
 ]
 
 [[package]]
@@ -2529,7 +2389,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
 ]
 
 [[package]]
@@ -2552,6 +2412,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "trait-variant"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70977707304198400eb4835a78f6a9f928bf41bba420deb8fdb175cd965d77a7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
 name = "typenum"
 version = "1.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2563,7 +2434,7 @@ version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
 dependencies = [
- "memoffset 0.9.0",
+ "memoffset",
  "tempfile",
  "winapi",
 ]
@@ -2626,9 +2497,9 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
 
 [[package]]
 name = "version-compare"
-version = "0.1.1"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
+checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b"
 
 [[package]]
 name = "version_check"
@@ -2638,9 +2509,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[package]]
 name = "waker-fn"
-version = "1.1.1"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
+checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7"
 
 [[package]]
 name = "wasi"
@@ -2669,7 +2540,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
  "wasm-bindgen-shared",
 ]
 
@@ -2691,7 +2562,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -2730,7 +2601,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -2748,7 +2619,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -2768,17 +2639,18 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.4",
- "windows_aarch64_msvc 0.52.4",
- "windows_i686_gnu 0.52.4",
- "windows_i686_msvc 0.52.4",
- "windows_x86_64_gnu 0.52.4",
- "windows_x86_64_gnullvm 0.52.4",
- "windows_x86_64_msvc 0.52.4",
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
 ]
 
 [[package]]
@@ -2789,9 +2661,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -2801,9 +2673,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -2813,9 +2685,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -2825,9 +2703,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -2837,9 +2715,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -2849,9 +2727,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -2861,9 +2739,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
 
 [[package]]
 name = "winnow"
@@ -2876,9 +2754,9 @@ dependencies = [
 
 [[package]]
 name = "winnow"
-version = "0.6.5"
+version = "0.6.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
+checksum = "86c949fede1d13936a99f14fafd3e76fd642b556dd2ce96287fbe2e0151bfac6"
 dependencies = [
  "memchr",
 ]
@@ -2895,30 +2773,27 @@ dependencies = [
 
 [[package]]
 name = "zbus"
-version = "3.15.2"
+version = "4.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "675d170b632a6ad49804c8cf2105d7c31eddd3312555cffd4b740e08e97c25e6"
+checksum = "989c3977a7aafa97b12b9a35d21cdcff9b0d2289762b14683f45d66b1ba6c48f"
 dependencies = [
  "async-broadcast",
  "async-executor",
  "async-fs",
- "async-io 1.13.0",
- "async-lock 2.8.0",
+ "async-io",
+ "async-lock",
  "async-process",
  "async-recursion",
  "async-task",
  "async-trait",
  "blocking",
- "byteorder",
- "derivative",
  "enumflags2",
- "event-listener 2.5.3",
+ "event-listener 5.3.1",
  "futures-core",
  "futures-sink",
  "futures-util",
  "hex",
  "nix",
- "once_cell",
  "ordered-stream",
  "rand",
  "serde",
@@ -2927,7 +2802,7 @@ dependencies = [
  "static_assertions",
  "tracing",
  "uds_windows",
- "winapi",
+ "windows-sys 0.52.0",
  "xdg-home",
  "zbus_macros",
  "zbus_names",
@@ -2936,23 +2811,22 @@ dependencies = [
 
 [[package]]
 name = "zbus_macros"
-version = "3.15.2"
+version = "4.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7131497b0f887e8061b430c530240063d33bf9455fa34438f388a245da69e0a5"
+checksum = "6fe9de53245dcf426b7be226a4217dd5e339080e5d46e64a02d6e5dcbf90fca1"
 dependencies = [
- "proc-macro-crate 1.3.1",
+ "proc-macro-crate",
  "proc-macro2",
  "quote",
- "regex",
- "syn 1.0.109",
+ "syn",
  "zvariant_utils",
 ]
 
 [[package]]
 name = "zbus_names"
-version = "2.6.1"
+version = "3.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "437d738d3750bed6ca9b8d423ccc7a8eb284f6b1d6d4e225a0e4e6258d864c8d"
+checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c"
 dependencies = [
  "serde",
  "static_assertions",
@@ -2961,13 +2835,12 @@ dependencies = [
 
 [[package]]
 name = "zvariant"
-version = "3.15.2"
+version = "4.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eef2be88ba09b358d3b58aca6e41cd853631d44787f319a1383ca83424fb2db"
+checksum = "9aa6d31a02fbfb602bfde791de7fedeb9c2c18115b3d00f3a36e489f46ffbbc7"
 dependencies = [
- "byteorder",
+ "endi",
  "enumflags2",
- "libc",
  "serde",
  "static_assertions",
  "zvariant_derive",
@@ -2975,24 +2848,24 @@ dependencies = [
 
 [[package]]
 name = "zvariant_derive"
-version = "3.15.2"
+version = "4.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37c24dc0bed72f5f90d1f8bb5b07228cbf63b3c6e9f82d82559d4bae666e7ed9"
+checksum = "642bf1b6b6d527988b3e8193d20969d53700a36eac734d21ae6639db168701c8"
 dependencies = [
- "proc-macro-crate 1.3.1",
+ "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn",
  "zvariant_utils",
 ]
 
 [[package]]
 name = "zvariant_utils"
-version = "1.0.1"
+version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200"
+checksum = "fc242db087efc22bd9ade7aa7809e4ba828132edc312871584a6b4391bdf8786"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn",
 ]
diff --git a/pkgs/by-name/ne/netease-cloud-music-gtk/package.nix b/pkgs/by-name/ne/netease-cloud-music-gtk/package.nix
index c8dc77a6c2749..276756f5789af 100644
--- a/pkgs/by-name/ne/netease-cloud-music-gtk/package.nix
+++ b/pkgs/by-name/ne/netease-cloud-music-gtk/package.nix
@@ -6,11 +6,7 @@
 , meson
 , ninja
 , pkg-config
-, glib
-, gtk4
-, appstream-glib
 , desktop-file-utils
-, libxml2
 , rustc
 , wrapGAppsHook4
 , openssl
@@ -22,19 +18,19 @@
 
 stdenv.mkDerivation rec {
   pname = "netease-cloud-music-gtk";
-  version = "2.3.1";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "gmg137";
     repo = "netease-cloud-music-gtk";
     rev = version;
-    hash = "sha256-75zovq7Q370L+bRczTCCC34G2w8xeMMUK5EUTfKAc+w=";
+    hash = "sha256-uoC9J09U2aI1dhaKc3TxIyFwRrPRxDrzaV+RyoZ6mKo=";
   };
 
   cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "netease-cloud-music-api-1.3.1" = "sha256-ZIc5zj9ZtLBYlZqBR7iUW+KmD71M+OYDiv0dkZrpFos=";
+      "netease-cloud-music-api-1.3.2" = "sha256-QRz9Sdu+0I7SwujoTBKWPQMjPDdX8ZyVlFwMw9pM7UY=";
     };
   };
 
@@ -46,11 +42,7 @@ stdenv.mkDerivation rec {
     meson
     ninja
     pkg-config
-    glib # glib-compile-resources
-    gtk4 # gtk4-update-icon-cache
-    appstream-glib # appstream-util
     desktop-file-utils # update-desktop-database
-    libxml2 # xmllint
     wrapGAppsHook4
     rustPlatform.cargoSetupHook
     cargo
@@ -71,7 +63,7 @@ stdenv.mkDerivation rec {
   ]);
 
   meta = with lib; {
-    description = "A Rust + GTK based netease cloud music player";
+    description = "Rust + GTK based netease cloud music player";
     homepage = "https://github.com/gmg137/netease-cloud-music-gtk";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ diffumist aleksana ];
diff --git a/pkgs/by-name/ne/netop/package.nix b/pkgs/by-name/ne/netop/package.nix
index 146409511aaa9..ac85b1e4936bd 100644
--- a/pkgs/by-name/ne/netop/package.nix
+++ b/pkgs/by-name/ne/netop/package.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/ZingerLittleBee/netop/raw/v${version}/CHANGELOG.md";
-    description = "A network monitor using bpf";
+    description = "Network monitor using bpf";
     homepage = "https://github.com/ZingerLittleBee/netop";
     license = licenses.mit;
     mainProgram = "netop";
diff --git a/pkgs/by-name/ne/netproxrc/package.nix b/pkgs/by-name/ne/netproxrc/package.nix
index 93f965e40c6af..341c74d2c6646 100644
--- a/pkgs/by-name/ne/netproxrc/package.nix
+++ b/pkgs/by-name/ne/netproxrc/package.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
   vendorHash = "sha256-LWNn5qp+Z/M9xTtOZ5RDHq1QEFK/Y2XgBi7H5S7Z7XE=";
 
   meta = with lib; {
-    description = "A HTTP proxy injecting credentials from a .netrc file";
+    description = "HTTP proxy injecting credentials from a .netrc file";
     mainProgram = "netproxrc";
     homepage = "https://github.com/timbertson/netproxrc";
     license = licenses.mit;
diff --git a/pkgs/by-name/ne/newsraft/package.nix b/pkgs/by-name/ne/newsraft/package.nix
index 066ab2b204649..38e79eb6890d6 100644
--- a/pkgs/by-name/ne/newsraft/package.nix
+++ b/pkgs/by-name/ne/newsraft/package.nix
@@ -13,14 +13,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "newsraft";
-  version = "0.24";
+  version = "0.25";
 
   src = fetchFromGitea {
     domain = "codeberg.org";
     owner = "newsraft";
     repo = "newsraft";
     rev = "newsraft-${finalAttrs.version}";
-    hash = "sha256-LTiFwsjnGuGN4UgMpu/HGKtJbbYTx58zldjV2C/wtPQ=";
+    hash = "sha256-hRWhjv/uCL3w0BUzYho3luCeZPyDsXqxnhx1wMovHY0=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/by-name/ne/nextjs-ollama-llm-ui/0001-update-nextjs.patch b/pkgs/by-name/ne/nextjs-ollama-llm-ui/0001-update-nextjs.patch
new file mode 100644
index 0000000000000..d904f04f73447
--- /dev/null
+++ b/pkgs/by-name/ne/nextjs-ollama-llm-ui/0001-update-nextjs.patch
@@ -0,0 +1,879 @@
+diff --git a/package-lock.json b/package-lock.json
+index 11dfbf6..b9470d0 100644
+--- a/package-lock.json
++++ b/package-lock.json
+@@ -30,7 +30,7 @@
+         "framer-motion": "^11.0.3",
+         "langchain": "^0.1.13",
+         "lucide-react": "^0.322.0",
+-        "next": "14.1.0",
++        "next": "^14.2.3",
+         "next-themes": "^0.2.1",
+         "react": "^18",
+         "react-code-blocks": "^0.1.6",
+@@ -40,6 +40,7 @@
+         "react-resizable-panels": "^2.0.3",
+         "react-textarea-autosize": "^8.5.3",
+         "remark-gfm": "^4.0.0",
++        "sharp": "^0.33.4",
+         "sonner": "^1.4.0",
+         "tailwind-merge": "^2.2.1",
+         "tailwindcss-animate": "^1.0.7",
+@@ -139,6 +140,15 @@
+         "node": ">=6.9.0"
+       }
+     },
++    "node_modules/@emnapi/runtime": {
++      "version": "1.1.1",
++      "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.1.1.tgz",
++      "integrity": "sha512-3bfqkzuR1KLx57nZfjr2NLnFOobvyS0aTszaEGCGqmYMVDRaGvgIZbjGSV/MHSSmLgQ/b9JFHQ5xm5WRZYd+XQ==",
++      "optional": true,
++      "dependencies": {
++        "tslib": "^2.4.0"
++      }
++    },
+     "node_modules/@emoji-mart/data": {
+       "version": "1.1.2",
+       "resolved": "https://registry.npmjs.org/@emoji-mart/data/-/data-1.1.2.tgz",
+@@ -304,6 +314,437 @@
+       "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==",
+       "dev": true
+     },
++    "node_modules/@img/sharp-darwin-arm64": {
++      "version": "0.33.4",
++      "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.4.tgz",
++      "integrity": "sha512-p0suNqXufJs9t3RqLBO6vvrgr5OhgbWp76s5gTRvdmxmuv9E1rcaqGUsl3l4mKVmXPkTkTErXediAui4x+8PSA==",
++      "cpu": [
++        "arm64"
++      ],
++      "optional": true,
++      "os": [
++        "darwin"
++      ],
++      "engines": {
++        "glibc": ">=2.26",
++        "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      },
++      "optionalDependencies": {
++        "@img/sharp-libvips-darwin-arm64": "1.0.2"
++      }
++    },
++    "node_modules/@img/sharp-darwin-x64": {
++      "version": "0.33.4",
++      "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.4.tgz",
++      "integrity": "sha512-0l7yRObwtTi82Z6ebVI2PnHT8EB2NxBgpK2MiKJZJ7cz32R4lxd001ecMhzzsZig3Yv9oclvqqdV93jo9hy+Dw==",
++      "cpu": [
++        "x64"
++      ],
++      "optional": true,
++      "os": [
++        "darwin"
++      ],
++      "engines": {
++        "glibc": ">=2.26",
++        "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      },
++      "optionalDependencies": {
++        "@img/sharp-libvips-darwin-x64": "1.0.2"
++      }
++    },
++    "node_modules/@img/sharp-libvips-darwin-arm64": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.2.tgz",
++      "integrity": "sha512-tcK/41Rq8IKlSaKRCCAuuY3lDJjQnYIW1UXU1kxcEKrfL8WR7N6+rzNoOxoQRJWTAECuKwgAHnPvqXGN8XfkHA==",
++      "cpu": [
++        "arm64"
++      ],
++      "optional": true,
++      "os": [
++        "darwin"
++      ],
++      "engines": {
++        "macos": ">=11",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      }
++    },
++    "node_modules/@img/sharp-libvips-darwin-x64": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.2.tgz",
++      "integrity": "sha512-Ofw+7oaWa0HiiMiKWqqaZbaYV3/UGL2wAPeLuJTx+9cXpCRdvQhCLG0IH8YGwM0yGWGLpsF4Su9vM1o6aer+Fw==",
++      "cpu": [
++        "x64"
++      ],
++      "optional": true,
++      "os": [
++        "darwin"
++      ],
++      "engines": {
++        "macos": ">=10.13",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      }
++    },
++    "node_modules/@img/sharp-libvips-linux-arm": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.2.tgz",
++      "integrity": "sha512-iLWCvrKgeFoglQxdEwzu1eQV04o8YeYGFXtfWU26Zr2wWT3q3MTzC+QTCO3ZQfWd3doKHT4Pm2kRmLbupT+sZw==",
++      "cpu": [
++        "arm"
++      ],
++      "optional": true,
++      "os": [
++        "linux"
++      ],
++      "engines": {
++        "glibc": ">=2.28",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      }
++    },
++    "node_modules/@img/sharp-libvips-linux-arm64": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.2.tgz",
++      "integrity": "sha512-x7kCt3N00ofFmmkkdshwj3vGPCnmiDh7Gwnd4nUwZln2YjqPxV1NlTyZOvoDWdKQVDL911487HOueBvrpflagw==",
++      "cpu": [
++        "arm64"
++      ],
++      "optional": true,
++      "os": [
++        "linux"
++      ],
++      "engines": {
++        "glibc": ">=2.26",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      }
++    },
++    "node_modules/@img/sharp-libvips-linux-s390x": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.2.tgz",
++      "integrity": "sha512-cmhQ1J4qVhfmS6szYW7RT+gLJq9dH2i4maq+qyXayUSn9/3iY2ZeWpbAgSpSVbV2E1JUL2Gg7pwnYQ1h8rQIog==",
++      "cpu": [
++        "s390x"
++      ],
++      "optional": true,
++      "os": [
++        "linux"
++      ],
++      "engines": {
++        "glibc": ">=2.28",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      }
++    },
++    "node_modules/@img/sharp-libvips-linux-x64": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.2.tgz",
++      "integrity": "sha512-E441q4Qdb+7yuyiADVi5J+44x8ctlrqn8XgkDTwr4qPJzWkaHwD489iZ4nGDgcuya4iMN3ULV6NwbhRZJ9Z7SQ==",
++      "cpu": [
++        "x64"
++      ],
++      "optional": true,
++      "os": [
++        "linux"
++      ],
++      "engines": {
++        "glibc": ">=2.26",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      }
++    },
++    "node_modules/@img/sharp-libvips-linuxmusl-arm64": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.2.tgz",
++      "integrity": "sha512-3CAkndNpYUrlDqkCM5qhksfE+qSIREVpyoeHIU6jd48SJZViAmznoQQLAv4hVXF7xyUB9zf+G++e2v1ABjCbEQ==",
++      "cpu": [
++        "arm64"
++      ],
++      "optional": true,
++      "os": [
++        "linux"
++      ],
++      "engines": {
++        "musl": ">=1.2.2",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      }
++    },
++    "node_modules/@img/sharp-libvips-linuxmusl-x64": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.2.tgz",
++      "integrity": "sha512-VI94Q6khIHqHWNOh6LLdm9s2Ry4zdjWJwH56WoiJU7NTeDwyApdZZ8c+SADC8OH98KWNQXnE01UdJ9CSfZvwZw==",
++      "cpu": [
++        "x64"
++      ],
++      "optional": true,
++      "os": [
++        "linux"
++      ],
++      "engines": {
++        "musl": ">=1.2.2",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      }
++    },
++    "node_modules/@img/sharp-linux-arm": {
++      "version": "0.33.4",
++      "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.4.tgz",
++      "integrity": "sha512-RUgBD1c0+gCYZGCCe6mMdTiOFS0Zc/XrN0fYd6hISIKcDUbAW5NtSQW9g/powkrXYm6Vzwd6y+fqmExDuCdHNQ==",
++      "cpu": [
++        "arm"
++      ],
++      "optional": true,
++      "os": [
++        "linux"
++      ],
++      "engines": {
++        "glibc": ">=2.28",
++        "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      },
++      "optionalDependencies": {
++        "@img/sharp-libvips-linux-arm": "1.0.2"
++      }
++    },
++    "node_modules/@img/sharp-linux-arm64": {
++      "version": "0.33.4",
++      "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.4.tgz",
++      "integrity": "sha512-2800clwVg1ZQtxwSoTlHvtm9ObgAax7V6MTAB/hDT945Tfyy3hVkmiHpeLPCKYqYR1Gcmv1uDZ3a4OFwkdBL7Q==",
++      "cpu": [
++        "arm64"
++      ],
++      "optional": true,
++      "os": [
++        "linux"
++      ],
++      "engines": {
++        "glibc": ">=2.26",
++        "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      },
++      "optionalDependencies": {
++        "@img/sharp-libvips-linux-arm64": "1.0.2"
++      }
++    },
++    "node_modules/@img/sharp-linux-s390x": {
++      "version": "0.33.4",
++      "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.4.tgz",
++      "integrity": "sha512-h3RAL3siQoyzSoH36tUeS0PDmb5wINKGYzcLB5C6DIiAn2F3udeFAum+gj8IbA/82+8RGCTn7XW8WTFnqag4tQ==",
++      "cpu": [
++        "s390x"
++      ],
++      "optional": true,
++      "os": [
++        "linux"
++      ],
++      "engines": {
++        "glibc": ">=2.31",
++        "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      },
++      "optionalDependencies": {
++        "@img/sharp-libvips-linux-s390x": "1.0.2"
++      }
++    },
++    "node_modules/@img/sharp-linux-x64": {
++      "version": "0.33.4",
++      "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.4.tgz",
++      "integrity": "sha512-GoR++s0XW9DGVi8SUGQ/U4AeIzLdNjHka6jidVwapQ/JebGVQIpi52OdyxCNVRE++n1FCLzjDovJNozif7w/Aw==",
++      "cpu": [
++        "x64"
++      ],
++      "optional": true,
++      "os": [
++        "linux"
++      ],
++      "engines": {
++        "glibc": ">=2.26",
++        "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      },
++      "optionalDependencies": {
++        "@img/sharp-libvips-linux-x64": "1.0.2"
++      }
++    },
++    "node_modules/@img/sharp-linuxmusl-arm64": {
++      "version": "0.33.4",
++      "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.4.tgz",
++      "integrity": "sha512-nhr1yC3BlVrKDTl6cO12gTpXMl4ITBUZieehFvMntlCXFzH2bvKG76tBL2Y/OqhupZt81pR7R+Q5YhJxW0rGgQ==",
++      "cpu": [
++        "arm64"
++      ],
++      "optional": true,
++      "os": [
++        "linux"
++      ],
++      "engines": {
++        "musl": ">=1.2.2",
++        "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      },
++      "optionalDependencies": {
++        "@img/sharp-libvips-linuxmusl-arm64": "1.0.2"
++      }
++    },
++    "node_modules/@img/sharp-linuxmusl-x64": {
++      "version": "0.33.4",
++      "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.4.tgz",
++      "integrity": "sha512-uCPTku0zwqDmZEOi4ILyGdmW76tH7dm8kKlOIV1XC5cLyJ71ENAAqarOHQh0RLfpIpbV5KOpXzdU6XkJtS0daw==",
++      "cpu": [
++        "x64"
++      ],
++      "optional": true,
++      "os": [
++        "linux"
++      ],
++      "engines": {
++        "musl": ">=1.2.2",
++        "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      },
++      "optionalDependencies": {
++        "@img/sharp-libvips-linuxmusl-x64": "1.0.2"
++      }
++    },
++    "node_modules/@img/sharp-wasm32": {
++      "version": "0.33.4",
++      "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.4.tgz",
++      "integrity": "sha512-Bmmauh4sXUsUqkleQahpdNXKvo+wa1V9KhT2pDA4VJGKwnKMJXiSTGphn0gnJrlooda0QxCtXc6RX1XAU6hMnQ==",
++      "cpu": [
++        "wasm32"
++      ],
++      "optional": true,
++      "dependencies": {
++        "@emnapi/runtime": "^1.1.1"
++      },
++      "engines": {
++        "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      }
++    },
++    "node_modules/@img/sharp-win32-ia32": {
++      "version": "0.33.4",
++      "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.4.tgz",
++      "integrity": "sha512-99SJ91XzUhYHbx7uhK3+9Lf7+LjwMGQZMDlO/E/YVJ7Nc3lyDFZPGhjwiYdctoH2BOzW9+TnfqcaMKt0jHLdqw==",
++      "cpu": [
++        "ia32"
++      ],
++      "optional": true,
++      "os": [
++        "win32"
++      ],
++      "engines": {
++        "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      }
++    },
++    "node_modules/@img/sharp-win32-x64": {
++      "version": "0.33.4",
++      "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.4.tgz",
++      "integrity": "sha512-3QLocdTRVIrFNye5YocZl+KKpYKP+fksi1QhmOArgx7GyhIbQp/WrJRu176jm8IxromS7RIkzMiMINVdBtC8Aw==",
++      "cpu": [
++        "x64"
++      ],
++      "optional": true,
++      "os": [
++        "win32"
++      ],
++      "engines": {
++        "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      }
++    },
+     "node_modules/@isaacs/cliui": {
+       "version": "8.0.2",
+       "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+@@ -800,9 +1241,9 @@
+       }
+     },
+     "node_modules/@next/env": {
+-      "version": "14.1.0",
+-      "resolved": "https://registry.npmjs.org/@next/env/-/env-14.1.0.tgz",
+-      "integrity": "sha512-Py8zIo+02ht82brwwhTg36iogzFqGLPXlRGKQw5s+qP/kMNc4MAyDeEwBKDijk6zTIbegEgu8Qy7C1LboslQAw=="
++      "version": "14.2.3",
++      "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.3.tgz",
++      "integrity": "sha512-W7fd7IbkfmeeY2gXrzJYDx8D2lWKbVoTIj1o1ScPHNzvp30s1AuoEFSdr39bC5sjxJaxTtq3OTCZboNp0lNWHA=="
+     },
+     "node_modules/@next/eslint-plugin-next": {
+       "version": "14.1.0",
+@@ -814,9 +1255,9 @@
+       }
+     },
+     "node_modules/@next/swc-darwin-arm64": {
+-      "version": "14.1.0",
+-      "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.1.0.tgz",
+-      "integrity": "sha512-nUDn7TOGcIeyQni6lZHfzNoo9S0euXnu0jhsbMOmMJUBfgsnESdjN97kM7cBqQxZa8L/bM9om/S5/1dzCrW6wQ==",
++      "version": "14.2.3",
++      "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.3.tgz",
++      "integrity": "sha512-3pEYo/RaGqPP0YzwnlmPN2puaF2WMLM3apt5jLW2fFdXD9+pqcoTzRk+iZsf8ta7+quAe4Q6Ms0nR0SFGFdS1A==",
+       "cpu": [
+         "arm64"
+       ],
+@@ -829,9 +1270,9 @@
+       }
+     },
+     "node_modules/@next/swc-darwin-x64": {
+-      "version": "14.1.0",
+-      "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.1.0.tgz",
+-      "integrity": "sha512-1jgudN5haWxiAl3O1ljUS2GfupPmcftu2RYJqZiMJmmbBT5M1XDffjUtRUzP4W3cBHsrvkfOFdQ71hAreNQP6g==",
++      "version": "14.2.3",
++      "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.3.tgz",
++      "integrity": "sha512-6adp7waE6P1TYFSXpY366xwsOnEXM+y1kgRpjSRVI2CBDOcbRjsJ67Z6EgKIqWIue52d2q/Mx8g9MszARj8IEA==",
+       "cpu": [
+         "x64"
+       ],
+@@ -844,9 +1285,9 @@
+       }
+     },
+     "node_modules/@next/swc-linux-arm64-gnu": {
+-      "version": "14.1.0",
+-      "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.1.0.tgz",
+-      "integrity": "sha512-RHo7Tcj+jllXUbK7xk2NyIDod3YcCPDZxj1WLIYxd709BQ7WuRYl3OWUNG+WUfqeQBds6kvZYlc42NJJTNi4tQ==",
++      "version": "14.2.3",
++      "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.3.tgz",
++      "integrity": "sha512-cuzCE/1G0ZSnTAHJPUT1rPgQx1w5tzSX7POXSLaS7w2nIUJUD+e25QoXD/hMfxbsT9rslEXugWypJMILBj/QsA==",
+       "cpu": [
+         "arm64"
+       ],
+@@ -859,9 +1300,9 @@
+       }
+     },
+     "node_modules/@next/swc-linux-arm64-musl": {
+-      "version": "14.1.0",
+-      "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.1.0.tgz",
+-      "integrity": "sha512-v6kP8sHYxjO8RwHmWMJSq7VZP2nYCkRVQ0qolh2l6xroe9QjbgV8siTbduED4u0hlk0+tjS6/Tuy4n5XCp+l6g==",
++      "version": "14.2.3",
++      "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.3.tgz",
++      "integrity": "sha512-0D4/oMM2Y9Ta3nGuCcQN8jjJjmDPYpHX9OJzqk42NZGJocU2MqhBq5tWkJrUQOQY9N+In9xOdymzapM09GeiZw==",
+       "cpu": [
+         "arm64"
+       ],
+@@ -874,9 +1315,9 @@
+       }
+     },
+     "node_modules/@next/swc-linux-x64-gnu": {
+-      "version": "14.1.0",
+-      "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.1.0.tgz",
+-      "integrity": "sha512-zJ2pnoFYB1F4vmEVlb/eSe+VH679zT1VdXlZKX+pE66grOgjmKJHKacf82g/sWE4MQ4Rk2FMBCRnX+l6/TVYzQ==",
++      "version": "14.2.3",
++      "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.3.tgz",
++      "integrity": "sha512-ENPiNnBNDInBLyUU5ii8PMQh+4XLr4pG51tOp6aJ9xqFQ2iRI6IH0Ds2yJkAzNV1CfyagcyzPfROMViS2wOZ9w==",
+       "cpu": [
+         "x64"
+       ],
+@@ -889,9 +1330,9 @@
+       }
+     },
+     "node_modules/@next/swc-linux-x64-musl": {
+-      "version": "14.1.0",
+-      "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.1.0.tgz",
+-      "integrity": "sha512-rbaIYFt2X9YZBSbH/CwGAjbBG2/MrACCVu2X0+kSykHzHnYH5FjHxwXLkcoJ10cX0aWCEynpu+rP76x0914atg==",
++      "version": "14.2.3",
++      "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.3.tgz",
++      "integrity": "sha512-BTAbq0LnCbF5MtoM7I/9UeUu/8ZBY0i8SFjUMCbPDOLv+un67e2JgyN4pmgfXBwy/I+RHu8q+k+MCkDN6P9ViQ==",
+       "cpu": [
+         "x64"
+       ],
+@@ -904,9 +1345,9 @@
+       }
+     },
+     "node_modules/@next/swc-win32-arm64-msvc": {
+-      "version": "14.1.0",
+-      "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.1.0.tgz",
+-      "integrity": "sha512-o1N5TsYc8f/HpGt39OUQpQ9AKIGApd3QLueu7hXk//2xq5Z9OxmV6sQfNp8C7qYmiOlHYODOGqNNa0e9jvchGQ==",
++      "version": "14.2.3",
++      "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.3.tgz",
++      "integrity": "sha512-AEHIw/dhAMLNFJFJIJIyOFDzrzI5bAjI9J26gbO5xhAKHYTZ9Or04BesFPXiAYXDNdrwTP2dQceYA4dL1geu8A==",
+       "cpu": [
+         "arm64"
+       ],
+@@ -919,9 +1360,9 @@
+       }
+     },
+     "node_modules/@next/swc-win32-ia32-msvc": {
+-      "version": "14.1.0",
+-      "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.1.0.tgz",
+-      "integrity": "sha512-XXIuB1DBRCFwNO6EEzCTMHT5pauwaSj4SWs7CYnME57eaReAKBXCnkUE80p/pAZcewm7hs+vGvNqDPacEXHVkw==",
++      "version": "14.2.3",
++      "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.3.tgz",
++      "integrity": "sha512-vga40n1q6aYb0CLrM+eEmisfKCR45ixQYXuBXxOOmmoV8sYST9k7E3US32FsY+CkkF7NtzdcebiFT4CHuMSyZw==",
+       "cpu": [
+         "ia32"
+       ],
+@@ -934,9 +1375,9 @@
+       }
+     },
+     "node_modules/@next/swc-win32-x64-msvc": {
+-      "version": "14.1.0",
+-      "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.1.0.tgz",
+-      "integrity": "sha512-9WEbVRRAqJ3YFVqEZIxUqkiO8l1nool1LmNxygr5HWF8AcSYsEpneUDhmjUVJEzO2A04+oPtZdombzzPPkTtgg==",
++      "version": "14.2.3",
++      "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.3.tgz",
++      "integrity": "sha512-Q1/zm43RWynxrO7lW4ehciQVj+5ePBhOK+/K2P7pLFX3JaJ/IZVC69SHidrmZSOkqz7ECIOhhy7XhAFG4JYyHA==",
+       "cpu": [
+         "x64"
+       ],
+@@ -1810,11 +2251,17 @@
+       "integrity": "sha512-RbhOOTCNoCrbfkRyoXODZp75MlpiHMgbE5MEBZAnnnLyQNgrigEj4p0lzsMDyc1zVsJDLrivB58tgg3emX0eEA==",
+       "dev": true
+     },
++    "node_modules/@swc/counter": {
++      "version": "0.1.3",
++      "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz",
++      "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ=="
++    },
+     "node_modules/@swc/helpers": {
+-      "version": "0.5.2",
+-      "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz",
+-      "integrity": "sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==",
++      "version": "0.5.5",
++      "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz",
++      "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==",
+       "dependencies": {
++        "@swc/counter": "^0.1.3",
+         "tslib": "^2.4.0"
+       }
+     },
+@@ -2930,6 +3377,18 @@
+         "periscopic": "^3.1.0"
+       }
+     },
++    "node_modules/color": {
++      "version": "4.2.3",
++      "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
++      "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
++      "dependencies": {
++        "color-convert": "^2.0.1",
++        "color-string": "^1.9.0"
++      },
++      "engines": {
++        "node": ">=12.5.0"
++      }
++    },
+     "node_modules/color-convert": {
+       "version": "2.0.1",
+       "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+@@ -2946,6 +3405,15 @@
+       "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+       "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+     },
++    "node_modules/color-string": {
++      "version": "1.9.1",
++      "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
++      "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
++      "dependencies": {
++        "color-name": "^1.0.0",
++        "simple-swizzle": "^0.2.2"
++      }
++    },
+     "node_modules/combined-stream": {
+       "version": "1.0.8",
+       "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+@@ -3152,6 +3620,14 @@
+         "node": ">=6"
+       }
+     },
++    "node_modules/detect-libc": {
++      "version": "2.0.3",
++      "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz",
++      "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
++      "engines": {
++        "node": ">=8"
++      }
++    },
+     "node_modules/detect-node-es": {
+       "version": "1.1.0",
+       "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz",
+@@ -4677,6 +5153,11 @@
+         "url": "https://github.com/sponsors/ljharb"
+       }
+     },
++    "node_modules/is-arrayish": {
++      "version": "0.3.2",
++      "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
++      "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
++    },
+     "node_modules/is-async-function": {
+       "version": "2.0.0",
+       "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
+@@ -6676,12 +7157,12 @@
+       "dev": true
+     },
+     "node_modules/next": {
+-      "version": "14.1.0",
+-      "resolved": "https://registry.npmjs.org/next/-/next-14.1.0.tgz",
+-      "integrity": "sha512-wlzrsbfeSU48YQBjZhDzOwhWhGsy+uQycR8bHAOt1LY1bn3zZEcDyHQOEoN3aWzQ8LHCAJ1nqrWCc9XF2+O45Q==",
++      "version": "14.2.3",
++      "resolved": "https://registry.npmjs.org/next/-/next-14.2.3.tgz",
++      "integrity": "sha512-dowFkFTR8v79NPJO4QsBUtxv0g9BrS/phluVpMAt2ku7H+cbcBJlopXjkWlwxrk/xGqMemr7JkGPGemPrLLX7A==",
+       "dependencies": {
+-        "@next/env": "14.1.0",
+-        "@swc/helpers": "0.5.2",
++        "@next/env": "14.2.3",
++        "@swc/helpers": "0.5.5",
+         "busboy": "1.6.0",
+         "caniuse-lite": "^1.0.30001579",
+         "graceful-fs": "^4.2.11",
+@@ -6695,18 +7176,19 @@
+         "node": ">=18.17.0"
+       },
+       "optionalDependencies": {
+-        "@next/swc-darwin-arm64": "14.1.0",
+-        "@next/swc-darwin-x64": "14.1.0",
+-        "@next/swc-linux-arm64-gnu": "14.1.0",
+-        "@next/swc-linux-arm64-musl": "14.1.0",
+-        "@next/swc-linux-x64-gnu": "14.1.0",
+-        "@next/swc-linux-x64-musl": "14.1.0",
+-        "@next/swc-win32-arm64-msvc": "14.1.0",
+-        "@next/swc-win32-ia32-msvc": "14.1.0",
+-        "@next/swc-win32-x64-msvc": "14.1.0"
++        "@next/swc-darwin-arm64": "14.2.3",
++        "@next/swc-darwin-x64": "14.2.3",
++        "@next/swc-linux-arm64-gnu": "14.2.3",
++        "@next/swc-linux-arm64-musl": "14.2.3",
++        "@next/swc-linux-x64-gnu": "14.2.3",
++        "@next/swc-linux-x64-musl": "14.2.3",
++        "@next/swc-win32-arm64-msvc": "14.2.3",
++        "@next/swc-win32-ia32-msvc": "14.2.3",
++        "@next/swc-win32-x64-msvc": "14.2.3"
+       },
+       "peerDependencies": {
+         "@opentelemetry/api": "^1.1.0",
++        "@playwright/test": "^1.41.2",
+         "react": "^18.2.0",
+         "react-dom": "^18.2.0",
+         "sass": "^1.3.0"
+@@ -6715,6 +7197,9 @@
+         "@opentelemetry/api": {
+           "optional": true
+         },
++        "@playwright/test": {
++          "optional": true
++        },
+         "sass": {
+           "optional": true
+         }
+@@ -7928,13 +8413,9 @@
+       }
+     },
+     "node_modules/semver": {
+-      "version": "7.5.4",
+-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+-      "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+-      "dev": true,
+-      "dependencies": {
+-        "lru-cache": "^6.0.0"
+-      },
++      "version": "7.6.2",
++      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
++      "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+       "bin": {
+         "semver": "bin/semver.js"
+       },
+@@ -7942,18 +8423,6 @@
+         "node": ">=10"
+       }
+     },
+-    "node_modules/semver/node_modules/lru-cache": {
+-      "version": "6.0.0",
+-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+-      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+-      "dev": true,
+-      "dependencies": {
+-        "yallist": "^4.0.0"
+-      },
+-      "engines": {
+-        "node": ">=10"
+-      }
+-    },
+     "node_modules/seroval": {
+       "version": "1.0.4",
+       "resolved": "https://registry.npmjs.org/seroval/-/seroval-1.0.4.tgz",
+@@ -8010,6 +8479,45 @@
+       "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz",
+       "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ=="
+     },
++    "node_modules/sharp": {
++      "version": "0.33.4",
++      "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.4.tgz",
++      "integrity": "sha512-7i/dt5kGl7qR4gwPRD2biwD2/SvBn3O04J77XKFgL2OnZtQw+AG9wnuS/csmu80nPRHLYE9E41fyEiG8nhH6/Q==",
++      "hasInstallScript": true,
++      "dependencies": {
++        "color": "^4.2.3",
++        "detect-libc": "^2.0.3",
++        "semver": "^7.6.0"
++      },
++      "engines": {
++        "libvips": ">=8.15.2",
++        "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      },
++      "optionalDependencies": {
++        "@img/sharp-darwin-arm64": "0.33.4",
++        "@img/sharp-darwin-x64": "0.33.4",
++        "@img/sharp-libvips-darwin-arm64": "1.0.2",
++        "@img/sharp-libvips-darwin-x64": "1.0.2",
++        "@img/sharp-libvips-linux-arm": "1.0.2",
++        "@img/sharp-libvips-linux-arm64": "1.0.2",
++        "@img/sharp-libvips-linux-s390x": "1.0.2",
++        "@img/sharp-libvips-linux-x64": "1.0.2",
++        "@img/sharp-libvips-linuxmusl-arm64": "1.0.2",
++        "@img/sharp-libvips-linuxmusl-x64": "1.0.2",
++        "@img/sharp-linux-arm": "0.33.4",
++        "@img/sharp-linux-arm64": "0.33.4",
++        "@img/sharp-linux-s390x": "0.33.4",
++        "@img/sharp-linux-x64": "0.33.4",
++        "@img/sharp-linuxmusl-arm64": "0.33.4",
++        "@img/sharp-linuxmusl-x64": "0.33.4",
++        "@img/sharp-wasm32": "0.33.4",
++        "@img/sharp-win32-ia32": "0.33.4",
++        "@img/sharp-win32-x64": "0.33.4"
++      }
++    },
+     "node_modules/shebang-command": {
+       "version": "2.0.0",
+       "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+@@ -8054,6 +8562,14 @@
+         "url": "https://github.com/sponsors/isaacs"
+       }
+     },
++    "node_modules/simple-swizzle": {
++      "version": "0.2.2",
++      "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
++      "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
++      "dependencies": {
++        "is-arrayish": "^0.3.1"
++      }
++    },
+     "node_modules/slash": {
+       "version": "3.0.0",
+       "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+@@ -9369,12 +9885,6 @@
+         "node": ">=0.4"
+       }
+     },
+-    "node_modules/yallist": {
+-      "version": "4.0.0",
+-      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+-      "dev": true
+-    },
+     "node_modules/yaml": {
+       "version": "2.3.4",
+       "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz",
+diff --git a/package.json b/package.json
+index 4185096..4ab1c58 100644
+--- a/package.json
++++ b/package.json
+@@ -31,7 +31,7 @@
+     "framer-motion": "^11.0.3",
+     "langchain": "^0.1.13",
+     "lucide-react": "^0.322.0",
+-    "next": "14.1.0",
++    "next": "^14.2.3",
+     "next-themes": "^0.2.1",
+     "react": "^18",
+     "react-code-blocks": "^0.1.6",
+@@ -41,6 +41,7 @@
+     "react-resizable-panels": "^2.0.3",
+     "react-textarea-autosize": "^8.5.3",
+     "remark-gfm": "^4.0.0",
++    "sharp": "^0.33.4",
+     "sonner": "^1.4.0",
+     "tailwind-merge": "^2.2.1",
+     "tailwindcss-animate": "^1.0.7",
+-- 
+2.42.0
+
diff --git a/pkgs/by-name/ne/nextjs-ollama-llm-ui/0002-use-local-google-fonts.patch b/pkgs/by-name/ne/nextjs-ollama-llm-ui/0002-use-local-google-fonts.patch
new file mode 100644
index 0000000000000..454e005284fe9
--- /dev/null
+++ b/pkgs/by-name/ne/nextjs-ollama-llm-ui/0002-use-local-google-fonts.patch
@@ -0,0 +1,20 @@
+diff --git a/src/app/layout.tsx b/src/app/layout.tsx
+index 647ed68..b08088e 100644
+--- a/src/app/layout.tsx
++++ b/src/app/layout.tsx
+@@ -1,10 +1,10 @@
+ import type { Metadata } from "next";
+-import { Inter } from "next/font/google";
++import localFont from "next/font/local";
+ import "./globals.css";
+ import { ThemeProvider } from "@/providers/theme-provider";
+ import { Toaster } from "@/components/ui/sonner"
+ 
+-const inter = Inter({ subsets: ["latin"] });
++const inter = localFont({ src: './Inter.ttf' });
+ 
+ export const metadata: Metadata = {
+   title: "Ollama UI",
+-- 
+2.42.0
+
diff --git a/pkgs/by-name/ne/nextjs-ollama-llm-ui/0003-add-standalone-output.patch b/pkgs/by-name/ne/nextjs-ollama-llm-ui/0003-add-standalone-output.patch
new file mode 100644
index 0000000000000..50d1611148960
--- /dev/null
+++ b/pkgs/by-name/ne/nextjs-ollama-llm-ui/0003-add-standalone-output.patch
@@ -0,0 +1,16 @@
+diff --git a/next.config.mjs b/next.config.mjs
+index dc34f1a..f6f90c4 100644
+--- a/next.config.mjs
++++ b/next.config.mjs
+@@ -1,6 +1,7 @@
+ /** @type {import('next').NextConfig} */
+ const nextConfig = {
+-    webpack: (config, { isServer }) => {
++  output: 'standalone',
++  webpack: (config, { isServer }) => {
+         // Fixes npm packages that depend on `fs` module
+         if (!isServer) {
+           config.resolve.fallback = {
+-- 
+2.42.0
+
diff --git a/pkgs/by-name/ne/nextjs-ollama-llm-ui/package.nix b/pkgs/by-name/ne/nextjs-ollama-llm-ui/package.nix
new file mode 100644
index 0000000000000..aad1420f8b659
--- /dev/null
+++ b/pkgs/by-name/ne/nextjs-ollama-llm-ui/package.nix
@@ -0,0 +1,101 @@
+{
+  buildNpmPackage,
+  fetchFromGitHub,
+  inter,
+  nixosTests,
+  lib,
+  # This is a app can only be used in a browser and starts a web server only accessible at
+  # localhost/127.0.0.1 from the local computer at the given port.
+  defaultHostname ? "127.0.0.1",
+  defaultPort ? 3000,
+  # Where to find the Ollama service; this url gets baked into the Nix package
+  ollamaUrl ? "http://127.0.0.1:11434",
+  ...
+}:
+
+let
+  version = "1.0.1";
+in
+buildNpmPackage {
+  pname = "nextjs-ollama-llm-ui";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "jakobhoeg";
+    repo = "nextjs-ollama-llm-ui";
+    rev = "v${version}";
+    hash = "sha256-pZJgiopm0VGwaZxsNcyRawevvzEcK1j5WhngX1Pn6YE=";
+  };
+  npmDepsHash = "sha256-wtHOW0CyEOszgiZwDkF2/cSxbw6WFRLbhDnd2FlY70E=";
+
+  patches = [
+    # Update to a newer nextjs version that buildNpmPackage is able to build.
+    # Remove at nextjs update.
+    ./0001-update-nextjs.patch
+    # nextjs tries to download google fonts from the internet during buildPhase and fails in Nix sandbox.
+    # We patch the code to expect a local font from src/app/Inter.ttf that we load from Nixpkgs in preBuild phase.
+    ./0002-use-local-google-fonts.patch
+    # Modify next.config.js to produce a production "standalone" output at .next/standalone.
+    # This output is easy to package with Nix and run with "node .next/standalone/server.js" later.
+    ./0003-add-standalone-output.patch
+  ];
+
+  # Adjust buildNpmPackage phases with nextjs quirk workarounds.
+  # These are adapted from
+  # https://github.com/NixOS/nixpkgs/blob/485125d667747f971cfcd1a1cfb4b2213a700c79/pkgs/servers/homepage-dashboard/default.nix
+  #######################3
+  preBuild = ''
+    # We have to pass and bake in the Ollama URL into the package
+    echo "NEXT_PUBLIC_OLLAMA_URL=${ollamaUrl}" > .env
+
+    # Replace the googleapis.com Inter font with a local copy from nixpkgs
+    cp "${inter}/share/fonts/truetype/InterVariable.ttf" src/app/Inter.ttf
+  '';
+
+  postBuild = ''
+    # Add a shebang to the server js file, then patch the shebang to use a nixpkgs nodejs binary.
+    sed -i '1s|^|#!/usr/bin/env node\n|' .next/standalone/server.js
+    patchShebangs .next/standalone/server.js
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{share,bin}
+
+    cp -r .next/standalone $out/share/homepage/
+    cp -r .env $out/share/homepage/
+    cp -r public $out/share/homepage/public
+
+    mkdir -p $out/share/homepage/.next
+    cp -r .next/static $out/share/homepage/.next/static
+
+    chmod +x $out/share/homepage/server.js
+
+    # we set a default port to support "nix run ..."
+    makeWrapper $out/share/homepage/server.js $out/bin/nextjs-ollama-llm-ui \
+      --set-default PORT ${toString defaultPort} \
+      --set-default HOSTNAME ${defaultHostname}
+
+    runHook postInstall
+  '';
+
+  doDist = false;
+  #######################
+
+  passthru = {
+    tests = {
+      inherit (nixosTests) nextjs-ollama-llm-ui;
+    };
+  };
+
+  meta = {
+    description = "Simple chat web interface for Ollama LLMs";
+    changelog = "https://github.com/jakobhoeg/nextjs-ollama-llm-ui/releases/tag/v${version}";
+    mainProgram = "nextjs-ollama-llm-ui";
+    homepage = "https://github.com/jakobhoeg/nextjs-ollama-llm-ui";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ malteneuss ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/by-name/ne/nextpnr/package.nix b/pkgs/by-name/ne/nextpnr/package.nix
index e164a38d95642..49c86cfc2ab3b 100644
--- a/pkgs/by-name/ne/nextpnr/package.nix
+++ b/pkgs/by-name/ne/nextpnr/package.nix
@@ -89,6 +89,6 @@ stdenv.mkDerivation rec {
     homepage    = "https://github.com/yosyshq/nextpnr";
     license     = licenses.isc;
     platforms   = platforms.all;
-    maintainers = with maintainers; [ thoughtpolice emily ];
+    maintainers = with maintainers; [ thoughtpolice ];
   };
 }
diff --git a/pkgs/by-name/ne/nexusmods-app/deps.nix b/pkgs/by-name/ne/nexusmods-app/deps.nix
new file mode 100644
index 0000000000000..02fe55e32d794
--- /dev/null
+++ b/pkgs/by-name/ne/nexusmods-app/deps.nix
@@ -0,0 +1,676 @@
+# This file was automatically generated by passthru.fetch-deps.
+# Please dont edit it manually, your changes might get overwritten!
+
+{ fetchNuGet }: [
+  (fetchNuGet { pname = "Argon"; version = "0.11.0"; sha256 = "0pn7b48qilhfy5hmk4dnsn6x7m3vl4168qha3chibj8hkwq5lkkc"; })
+  (fetchNuGet { pname = "Argon"; version = "0.17.0"; sha256 = "027fng81s6fj9hsl1pc4frrb2mkchbmmh9848ksdxixb05j5dclf"; })
+  (fetchNuGet { pname = "AutoFixture"; version = "4.18.1"; sha256 = "0whinrvkr2xbhkwd02jbcnws3wz7vlc25hk6w0iw4g92hrmgxqxd"; })
+  (fetchNuGet { pname = "AutoFixture.Xunit2"; version = "4.18.1"; sha256 = "1xs5dbj410h29spdl5c07vrxqkdl3rcyl2fv4jv4g7vq3kanc5p6"; })
+  (fetchNuGet { pname = "Avalonia"; version = "11.0.0"; sha256 = "0wfbwrr8p5hg9f809d44gh2zfkfwnwayfw84vs33hh7ms0r380gd"; })
+  (fetchNuGet { pname = "Avalonia"; version = "11.0.10"; sha256 = "0mvsc6fg8qbvdqkdkia61jkprb3yhvvgvq6s8hgd09v6lzjsbq8n"; })
+  (fetchNuGet { pname = "Avalonia.Angle.Windows.Natives"; version = "2.1.0.2023020321"; sha256 = "1az4s1g22ipak9a3xfh55z2h3rm6lpqh7svbpw6ag4ysrgsjjsjd"; })
+  (fetchNuGet { pname = "Avalonia.BuildServices"; version = "0.0.28"; sha256 = "0d9hyc1zmyvzlb320arwrv12ncp45llq98hibv711b7ibm11dm7c"; })
+  (fetchNuGet { pname = "Avalonia.BuildServices"; version = "0.0.29"; sha256 = "05mm7f0jssih3gbzqfgjnfq5cnqa85ihsg0z1897ciihv8qd3waq"; })
+  (fetchNuGet { pname = "Avalonia.Controls.ColorPicker"; version = "11.0.10"; sha256 = "0s2wn7sf0dsa861gh6ghfgf881p6bvyahfpl583rcnsi6ci2hjhv"; })
+  (fetchNuGet { pname = "Avalonia.Controls.DataGrid"; version = "11.0.10"; sha256 = "13g5sac0ba8dy1pn21j2g4fin57x1vs1pl07gzgv53bl8nz1xznj"; })
+  (fetchNuGet { pname = "Avalonia.Controls.TreeDataGrid"; version = "11.0.2"; sha256 = "1b8hymad7rhr6zrj493i1hwlib5cg24dsj8k4v5lxpkc94lnhz0g"; })
+  (fetchNuGet { pname = "Avalonia.Desktop"; version = "11.0.10"; sha256 = "0s27ajknbrymnchv66rybrs3snzh825iy0nqby72yk726znp52vw"; })
+  (fetchNuGet { pname = "Avalonia.Diagnostics"; version = "11.0.10"; sha256 = "1c7hv9ypvn1ncg6cmzn2cs0nkax0y0pnbx1h1asjzn8rnbwcvnca"; })
+  (fetchNuGet { pname = "Avalonia.FreeDesktop"; version = "11.0.10"; sha256 = "18f9vpsxfaak4qpqvcz9rdygx3k8dhzb64iqlhva88nhahwlwlxr"; })
+  (fetchNuGet { pname = "Avalonia.Headless"; version = "11.0.10"; sha256 = "0pr6l2cagg7xbxs9lnvk9jwbvmhf6c8crsxf2cp7x391h5jg9xjs"; })
+  (fetchNuGet { pname = "Avalonia.Native"; version = "11.0.10"; sha256 = "06pihfddbvdw1s3rs6v183ljch1bsxym80fclfqrh3npa3ag9n1z"; })
+  (fetchNuGet { pname = "Avalonia.ReactiveUI"; version = "11.0.10"; sha256 = "1qarrbbmdglw1034pl2ga3b10n6kav67g9n8hf4jcr3y6nkdybmk"; })
+  (fetchNuGet { pname = "Avalonia.Remote.Protocol"; version = "11.0.0"; sha256 = "1b5031k8slwiz7bncih67fjl6ny234yd4skqxk611l9zp5snjic2"; })
+  (fetchNuGet { pname = "Avalonia.Remote.Protocol"; version = "11.0.10"; sha256 = "0p75z6k4ivzhdn9y9gwqsqmja7x03d4mxaicbccjbnz06irybnxa"; })
+  (fetchNuGet { pname = "Avalonia.Skia"; version = "11.0.0"; sha256 = "1ra1kd0kkblppr5zy7rzdbwllggrzvp9lkxblf9mg3y8rnp6fk83"; })
+  (fetchNuGet { pname = "Avalonia.Skia"; version = "11.0.10"; sha256 = "0w45j4ypqnwmsh3byzaghn43ycfkfnn8415i5lw2q5ip7vp3a9fm"; })
+  (fetchNuGet { pname = "Avalonia.Svg.Skia"; version = "11.0.0.14"; sha256 = "0b95h42kflbjlfw0ky58cxd0745wf7ad9phfgdyn3w7x3bjfn0x3"; })
+  (fetchNuGet { pname = "Avalonia.Themes.Fluent"; version = "11.0.10"; sha256 = "1jqkwhpvnnbbjwr6992ahlkwgwj7l0k1141317qy1wprirn4mpv1"; })
+  (fetchNuGet { pname = "Avalonia.Themes.Simple"; version = "11.0.10"; sha256 = "0vssdz6rng0k85qsv2xn6x0dldaalnnx718n7plwxg3j1pddr1z7"; })
+  (fetchNuGet { pname = "Avalonia.Win32"; version = "11.0.10"; sha256 = "1gh3fad9ya56qwzhk7590bdzkky76yx1jjj60rqr013b97qbd3gs"; })
+  (fetchNuGet { pname = "Avalonia.X11"; version = "11.0.10"; sha256 = "1x09mp8q3mrj5fijqk7qp5qivrysqnbc2bkj2ssvawb9rjy6497w"; })
+  (fetchNuGet { pname = "Bannerlord.LauncherManager"; version = "1.0.76"; sha256 = "1vkjbh7mqpyqxphqgk2qq8xndhfvc09d04l51y0jj4yklq20ik18"; })
+  (fetchNuGet { pname = "BenchmarkDotNet"; version = "0.13.12"; sha256 = "1pbfr2d2jl1qpbljny1sgv3614dh6ahhqr49ak4idm4fsyff3bjy"; })
+  (fetchNuGet { pname = "BenchmarkDotNet.Annotations"; version = "0.13.12"; sha256 = "0sxz5vdsszm8a2s64yhjpz3wlqdv53drf1n5pxyvlzdldipx2w5z"; })
+  (fetchNuGet { pname = "BitFaster.Caching"; version = "2.4.1"; sha256 = "1rlk9isns57dxnxifb59mllk36ldmqczcvm381frxrv4hlf6kx2q"; })
+  (fetchNuGet { pname = "Castle.Core"; version = "5.1.1"; sha256 = "1caf4878nvjid3cw3rw18p9cn53brfs5x8dkvf82xvcdwc3i0nd1"; })
+  (fetchNuGet { pname = "CliWrap"; version = "3.6.6"; sha256 = "02pmshsxfp0xjkyd49r2dkq3cpr8qb7nmjphjzhr60v0qyambxyr"; })
+  (fetchNuGet { pname = "ColorTextBlock.Avalonia"; version = "11.0.2"; sha256 = "0zvdgpg6r142zhldam5kcpmjpi0qjxsm40cy491gb9ynrj39hrhn"; })
+  (fetchNuGet { pname = "CommandLineParser"; version = "2.9.1"; sha256 = "1sldkj8lakggn4hnyabjj1fppqh50fkdrr1k99d4gswpbk5kv582"; })
+  (fetchNuGet { pname = "coverlet.collector"; version = "6.0.0"; sha256 = "12j34vrkmph8lspbafnqmfnj2qvysz1jcrks2khw798s6dwv0j90"; })
+  (fetchNuGet { pname = "DiffEngine"; version = "12.3.0"; sha256 = "07b9hzxf1bvy35zb49czaffp089w6jr24s3h8bpyhqv5sz7xk2mw"; })
+  (fetchNuGet { pname = "DiffEngine"; version = "15.2.1"; sha256 = "1nm8wghxyk8742hl8lxrag9pwhip055jc8w0kzz947hmrvpybqbb"; })
+  (fetchNuGet { pname = "DiffEngine"; version = "15.3.0"; sha256 = "0291rgxr9knk6nsw7vqjhzkcvrgn02cklxmw3mi3s2p6scv8hs2s"; })
+  (fetchNuGet { pname = "DiffPlex"; version = "1.5.0"; sha256 = "033xgpxj37iwhs67kzlyrx57y8f1fagpmfkw066yz7w2kklh0z78"; })
+  (fetchNuGet { pname = "DotNetZip"; version = "1.16.0"; sha256 = "14ggqkcjxfzkbpk1961gp9fzikbf037s985zjb8jpi63xs8cfp26"; })
+  (fetchNuGet { pname = "DynamicData"; version = "7.13.1"; sha256 = "0hy2ba2nkhgp23glkinhfx3v892fkkf4cr9m41daaahnl2r2l8y1"; })
+  (fetchNuGet { pname = "DynamicData"; version = "8.3.27"; sha256 = "19y1zk2zga464jfv77qir8nlw7mx8lsfpgdswkgz5s3pbhpmzxl8"; })
+  (fetchNuGet { pname = "EmptyFiles"; version = "4.5.1"; sha256 = "05iwlpyi4l6173qsz07lxrn8c27xm6i2iglpvw202yf5ycypaqpf"; })
+  (fetchNuGet { pname = "EmptyFiles"; version = "8.1.0"; sha256 = "1jf73vgfx22ah71gv8s15lyakr1f740knvyqmxhpl28zivlqi2lm"; })
+  (fetchNuGet { pname = "EmptyFiles"; version = "8.2.0"; sha256 = "10g2fyc1gvpnndbh5s6r6kfmlavv83w2xhbqi9h2qry3g25bqc7j"; })
+  (fetchNuGet { pname = "ExCSS"; version = "4.2.3"; sha256 = "1likxhccg4l4g4i65z4dfzp9059hij6h1q7prx2sgakvk8zzmw9k"; })
+  (fetchNuGet { pname = "Fare"; version = "2.1.1"; sha256 = "1gagj8k2w5m2z6nlywrzhqx1q9n880yriwk0lsq3vcda9lcggmcz"; })
+  (fetchNuGet { pname = "FetchBannerlordVersion"; version = "1.0.6.45"; sha256 = "0xz79h1y0ffz9m72gwsgq1kkqih1z1d8rmjbz98dg4nv9k9ia2gz"; })
+  (fetchNuGet { pname = "FetchBannerlordVersion.Models"; version = "1.0.6.45"; sha256 = "1bsqjvr5fh1jwnj32sss3a99g3dk5iv202sfbhhf8ws6cp3bmgfm"; })
+  (fetchNuGet { pname = "FluentAssertions"; version = "6.12.0"; sha256 = "04fhn67930zv3i0d8xbrbw5vwz99c83bbvgdwqiir55vw5xlys9c"; })
+  (fetchNuGet { pname = "FluentAssertions.Analyzers"; version = "0.31.0"; sha256 = "1k3maha460l253300xka55ahgc4lbq3q45805r629kryyx5qy03r"; })
+  (fetchNuGet { pname = "FluentAssertions.OneOf"; version = "0.0.5"; sha256 = "0fkkqq5d48nlmxcfda4ggsvi528ryq0kwm52mxsah47h2fjv7z2g"; })
+  (fetchNuGet { pname = "FluentResults"; version = "3.15.2"; sha256 = "1p13dh2dkca29qnsvs6d81yly6sr8z7dn6qcw4430p30p2qbn51n"; })
+  (fetchNuGet { pname = "Fody"; version = "6.8.0"; sha256 = "1y159433n5wzlvc8hjjrhjarf7mjvngbmh34jkd452zlrjqrhmns"; })
+  (fetchNuGet { pname = "FomodInstaller.Interface"; version = "1.2.0"; sha256 = "0s627hlrdcxkvgk6k3y8jdnianqjj43irl0nny0jdfiv81aaa75k"; })
+  (fetchNuGet { pname = "FomodInstaller.Scripting"; version = "1.0.0"; sha256 = "0j0a7dk9zk175cgmv53qnzx0z64rd7r0j50m9s6sclx55wnrpnhq"; })
+  (fetchNuGet { pname = "FomodInstaller.Scripting.XmlScript"; version = "1.0.0"; sha256 = "1rkr1x9p3hm8a0cm5p6s2d7wwfvq5svcsd291z84hzx7ijia9dvx"; })
+  (fetchNuGet { pname = "FomodInstaller.Utils"; version = "1.0.0"; sha256 = "0wj40cf40czxyv9y0pkdmir53nznckbalwybcahs2fxcv7pmqh8z"; })
+  (fetchNuGet { pname = "GameFinder"; version = "4.2.0"; sha256 = "02z94xbpm9kp2b9dw7a77zdqfy4fhqidk7z7if898ap6rwyibwiv"; })
+  (fetchNuGet { pname = "GameFinder.Common"; version = "2.4.0"; sha256 = "08kfyj422slf2lj29c07jv4fkyzvi0n7r7w3rp4l2jzalys82w0w"; })
+  (fetchNuGet { pname = "GameFinder.Common"; version = "4.2.0"; sha256 = "0xdgfjxr1vf2r6mlvx3fsmh7iy2yk3dwx55fc7xb4xnl1ys8lh4x"; })
+  (fetchNuGet { pname = "GameFinder.RegistryUtils"; version = "2.4.0"; sha256 = "0hvihgwjggr9fxa37s89xxaiafgbr38acn4dy8jza1chwdj27nsw"; })
+  (fetchNuGet { pname = "GameFinder.RegistryUtils"; version = "4.2.0"; sha256 = "1gsva2sabxj4g16wx6vr1cp81qz7ynqfkjvz0qskw2h1h2743vx1"; })
+  (fetchNuGet { pname = "GameFinder.StoreHandlers.EADesktop"; version = "4.2.0"; sha256 = "0li6r92x7wvn16yivhqfk0xg2y67ksi56fyhrxlx0y41l27g6fpb"; })
+  (fetchNuGet { pname = "GameFinder.StoreHandlers.EGS"; version = "4.2.0"; sha256 = "0w6rh4mdwi4l1d7ag37qk2g73qlahkbgfab2550x171q0v5vxzbn"; })
+  (fetchNuGet { pname = "GameFinder.StoreHandlers.GOG"; version = "2.4.0"; sha256 = "0p2qpk908sd9hl1gil6pmh2fqrkz09vzhgwypmslikvvs0bdza1b"; })
+  (fetchNuGet { pname = "GameFinder.StoreHandlers.GOG"; version = "4.2.0"; sha256 = "0w5infnkbz7q8pc9q9bxqlkz8dvnsnvb4lj5qp2zqwvvrlavqfpv"; })
+  (fetchNuGet { pname = "GameFinder.StoreHandlers.Origin"; version = "4.2.0"; sha256 = "0lfa5l013shhwjd0n88zgpa348ssd7yligcap67a2jp1bcsa6npf"; })
+  (fetchNuGet { pname = "GameFinder.StoreHandlers.Steam"; version = "2.4.0"; sha256 = "05rp101d401qwcknwh9dlk41slp5byjsfcm46653hian2b17lrs8"; })
+  (fetchNuGet { pname = "GameFinder.StoreHandlers.Steam"; version = "4.2.0"; sha256 = "0165qjz7sqcrqskij7zgsd8vhimdq6y2gxngjphpwx4g39a5b23y"; })
+  (fetchNuGet { pname = "GameFinder.StoreHandlers.Xbox"; version = "4.2.0"; sha256 = "1qcprjpx1a5gxiynl4h9xhmkdfbfj5bblblj5xxm7v81jldi90yd"; })
+  (fetchNuGet { pname = "GameFinder.Wine"; version = "4.2.0"; sha256 = "0h61piw0szbf2w2wh47h4ap2nyqwf9xqvwi4s880w2mx8635jjaq"; })
+  (fetchNuGet { pname = "Gee.External.Capstone"; version = "2.3.0"; sha256 = "119yll2zpc9m176i17lcan31zcvww47zsvw573vbwb0jbzy17mn1"; })
+  (fetchNuGet { pname = "GitHubActionsTestLogger"; version = "2.3.3"; sha256 = "12rpibz66bm4img2v1knjhawp4g94qmb78pfbpbhmg60zpnmjg7x"; })
+  (fetchNuGet { pname = "Google.Protobuf"; version = "3.19.4"; sha256 = "134wlbj1d3l3p81z2q3cwjwpg3s4288h1bgis0x8cpagk4k1ads7"; })
+  (fetchNuGet { pname = "Grpc.Core.Api"; version = "2.43.0"; sha256 = "0aywd270inzfy3nizdvz7z1c083m11xfd76016q0c9sbmwrhv20j"; })
+  (fetchNuGet { pname = "Grpc.Net.Client"; version = "2.43.0"; sha256 = "1yxm894lpn5sg6xg7i5ldd9bh7xg2s2c6xsx0yf7zrachy1bqbar"; })
+  (fetchNuGet { pname = "Grpc.Net.Common"; version = "2.43.0"; sha256 = "17gn73ccqq5aap7r8i6nir1260f5ndav2yc67wk2gnp94nsavbm2"; })
+  (fetchNuGet { pname = "HarfBuzzSharp"; version = "2.8.2.3"; sha256 = "115aybicqs9ijjlcv6k6r5v0agkjm1bm1nkd0rj3jglv8s0xvmp2"; })
+  (fetchNuGet { pname = "HarfBuzzSharp"; version = "7.3.0"; sha256 = "1rqcmdyzxz9kc0k8594hbpksjc23mkakmjybi4b8702qycxx0lrf"; })
+  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Linux"; version = "2.8.2.3"; sha256 = "1f18ahwkaginrg0vwsi6s56lvnqvvxv7pzklfs5lnknasxy1a76z"; })
+  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Linux"; version = "7.3.0"; sha256 = "0i9gaiyjgmcpnfn1fixbxq8shqlh4ahng7j4dxlf38zlln1f6h80"; })
+  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.macOS"; version = "2.8.2.3"; sha256 = "052d8frpkj4ijs6fm6xp55xbv95b1s9biqwa0w8zp3rgm88m9236"; })
+  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.macOS"; version = "7.3.0"; sha256 = "1b5ng37bwk75cifw7p1hzn8z6sswi8h7h510qgwlbvgmlrs5r0ga"; })
+  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.WebAssembly"; version = "2.8.2.3"; sha256 = "043hv36bg5240znbm8x5la7py17m4jfzy57q3ka32f6zjld83j36"; })
+  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.WebAssembly"; version = "7.3.0"; sha256 = "0dcmclnyryb82wzsky1dn0gbjsvx84mfx46v984f5fmg4v238lpm"; })
+  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Win32"; version = "2.8.2.3"; sha256 = "08khd2jqm8sw58ljz5srangzfm2sz3gd2q1jzc5fr80lj8rv6r74"; })
+  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Win32"; version = "7.3.0"; sha256 = "1hyvmz7rfbrxbcpnwyvb64gdk1hifcpz3rln58yyb7g1pnbpnw2s"; })
+  (fetchNuGet { pname = "HtmlAgilityPack"; version = "1.11.52"; sha256 = "01046w7j63404wvhxglaik8k89pimsnyr4q4mr6fs92ajsp1hrp7"; })
+  (fetchNuGet { pname = "Humanizer"; version = "2.14.1"; sha256 = "18cycx9gvbc3735chdi2r583x73m2fkz1ws03yi3g640j9zv00fp"; })
+  (fetchNuGet { pname = "Humanizer.Core"; version = "2.14.1"; sha256 = "1ai7hgr0qwd7xlqfd92immddyi41j3ag91h3594yzfsgsy6yhyqi"; })
+  (fetchNuGet { pname = "Humanizer.Core"; version = "2.2.0"; sha256 = "08mzg65y9d3zvq16rsmpapcdan71ggq2mpks6k777h3wlm2sh3p5"; })
+  (fetchNuGet { pname = "Humanizer.Core.af"; version = "2.14.1"; sha256 = "197lsky6chbmrixgsg6dvxbdbbpis0an8mn6vnwjcydhncis087h"; })
+  (fetchNuGet { pname = "Humanizer.Core.ar"; version = "2.14.1"; sha256 = "03rz12mxrjv5afm1hn4rrpimkkb8wdzp17634dcq10fhpbwhy6i5"; })
+  (fetchNuGet { pname = "Humanizer.Core.az"; version = "2.14.1"; sha256 = "138kdhy86afy5n72wy12qlb25q4034z73lz5nbibmkixxdnj9g5r"; })
+  (fetchNuGet { pname = "Humanizer.Core.bg"; version = "2.14.1"; sha256 = "0scwzrvv8332prijkbp4y11n172smjb4sf7ygia6bi3ibhzq7zjy"; })
+  (fetchNuGet { pname = "Humanizer.Core.bn-BD"; version = "2.14.1"; sha256 = "1322kn7ym46mslh32sgwkv07l3jkkx7cw5wjphql2ziphxw536p8"; })
+  (fetchNuGet { pname = "Humanizer.Core.cs"; version = "2.14.1"; sha256 = "1zl3vsdd2pw3nm05qpnr6c75y7gacgaghg9sj07ksvsjmklgqqih"; })
+  (fetchNuGet { pname = "Humanizer.Core.da"; version = "2.14.1"; sha256 = "10rmrvzwp212fpxv0sdq8f0sjymccsdn71k99f845kz0js83r70s"; })
+  (fetchNuGet { pname = "Humanizer.Core.de"; version = "2.14.1"; sha256 = "0j7kld0jdiqwin83arais9gzjj85mpshmxls64yi58qhl7qjzk0j"; })
+  (fetchNuGet { pname = "Humanizer.Core.el"; version = "2.14.1"; sha256 = "143q1321qh5506wwvcpy0fj7hpbd9i1k75247mqs2my05x9vc8n0"; })
+  (fetchNuGet { pname = "Humanizer.Core.es"; version = "2.14.1"; sha256 = "011kscy671mgyx412h55b0x9a1ngmdsgqzqq1w0l10xhf90y4hc8"; })
+  (fetchNuGet { pname = "Humanizer.Core.fa"; version = "2.14.1"; sha256 = "184dxwkf251c27h7gg9y5zciixgcwy1cmdrs0bqrph7gg69kp6yq"; })
+  (fetchNuGet { pname = "Humanizer.Core.fi-FI"; version = "2.14.1"; sha256 = "144jlnlipr3pnbcyhbgrd2lxibx8vy00lp2zn60ihxppgbisircc"; })
+  (fetchNuGet { pname = "Humanizer.Core.fr"; version = "2.14.1"; sha256 = "0klnfy8n659sp8zngd87gy7qakd56dwr1axjjzk0zph1zvww09jq"; })
+  (fetchNuGet { pname = "Humanizer.Core.fr-BE"; version = "2.14.1"; sha256 = "0b70illi4m58xvlqwcvar0smh6292zadzk2r8c25ryijh6d5a9qv"; })
+  (fetchNuGet { pname = "Humanizer.Core.he"; version = "2.14.1"; sha256 = "08xkiv88qqd1b0frpalb2npq9rvz2q1yz48k6dikrjvy6amggirh"; })
+  (fetchNuGet { pname = "Humanizer.Core.hr"; version = "2.14.1"; sha256 = "12djmwxfg03018j2bqq5ikwkllyma8k7zmvpw61vxs7cv4izc6wh"; })
+  (fetchNuGet { pname = "Humanizer.Core.hu"; version = "2.14.1"; sha256 = "0lw13p9b2kbqf96lif5kx59axxiahd617h154iswjfka9kxdw65x"; })
+  (fetchNuGet { pname = "Humanizer.Core.hy"; version = "2.14.1"; sha256 = "1bgm0yabhvsv70amzmkvf3mls32lvd7yyr59yxf3xc96msqczgjh"; })
+  (fetchNuGet { pname = "Humanizer.Core.id"; version = "2.14.1"; sha256 = "1w0bnyac46f2321l09ckb6vz66s1bxl27skfww1iwrmf03i7m2cw"; })
+  (fetchNuGet { pname = "Humanizer.Core.is"; version = "2.14.1"; sha256 = "10w1fprlhxm1qy3rh0qf6z86ahrv8fcza3wrsx55idlmar1x9jyz"; })
+  (fetchNuGet { pname = "Humanizer.Core.it"; version = "2.14.1"; sha256 = "1msrmih8cp7r4yj7r85kr0l5h4yln80450mivliy1x322dav8xz2"; })
+  (fetchNuGet { pname = "Humanizer.Core.ja"; version = "2.14.1"; sha256 = "04ry6z0v85y4y5vzbqlbxppfdm04i02dxbxaaykbps09rwqaa250"; })
+  (fetchNuGet { pname = "Humanizer.Core.ko-KR"; version = "2.14.1"; sha256 = "156641v0ilrpbzprscvbzfha57pri4y1i66n9v056nc8bm10ggbg"; })
+  (fetchNuGet { pname = "Humanizer.Core.ku"; version = "2.14.1"; sha256 = "1scz21vgclbm1xhaw89f0v8s0vx46yv8yk3ij0nr6shsncgq9f7h"; })
+  (fetchNuGet { pname = "Humanizer.Core.lv"; version = "2.14.1"; sha256 = "1909dsbxiv2sgj6myfhn8lbbmvkp2hjahj0knawypyq3jw9sq86g"; })
+  (fetchNuGet { pname = "Humanizer.Core.ms-MY"; version = "2.14.1"; sha256 = "1dmjrxb0kb297ycr8xf7ni3l7y4wdqrdhqbhy8xnm8dx90nmj9x5"; })
+  (fetchNuGet { pname = "Humanizer.Core.mt"; version = "2.14.1"; sha256 = "0b183r1apzfa1hasimp2f27yfjkfp87nfbd8qdyrqdigw6nzcics"; })
+  (fetchNuGet { pname = "Humanizer.Core.nb"; version = "2.14.1"; sha256 = "12rd75f83lv6z12b5hbwnarv3dkk29pvc836jpg2mzffm0g0kxj2"; })
+  (fetchNuGet { pname = "Humanizer.Core.nb-NO"; version = "2.14.1"; sha256 = "1n033yfw44sjf99mv51c53wggjdffz8b9wv7gwm3q7i6g7ck4vv1"; })
+  (fetchNuGet { pname = "Humanizer.Core.nl"; version = "2.14.1"; sha256 = "0q4231by40bsr6mjy93n0zs365pz6da32pwkxcz1cc2hfdlkn0vd"; })
+  (fetchNuGet { pname = "Humanizer.Core.pl"; version = "2.14.1"; sha256 = "0h2wbwrlcmjk8b2mryyd8rbb1qmripvg0zyg61gg0hifiqfg3cr2"; })
+  (fetchNuGet { pname = "Humanizer.Core.pt"; version = "2.14.1"; sha256 = "0pg260zvyhqz8h1c96px1vs9q5ywvd0j2ixsq21mj96dj7bl5fay"; })
+  (fetchNuGet { pname = "Humanizer.Core.ro"; version = "2.14.1"; sha256 = "04mr28bjcb9hs0wmpb4nk2v178i0fjr0ymc78dv9bbqkmrzfsmcn"; })
+  (fetchNuGet { pname = "Humanizer.Core.ru"; version = "2.14.1"; sha256 = "060abvk7mrgawipjgw0h4hrvizby7acmj58w2g35fv54g43isgcl"; })
+  (fetchNuGet { pname = "Humanizer.Core.sk"; version = "2.14.1"; sha256 = "182xiqf71kiqp42b8yqrag6z57wzqraqi10bnhx0crrc1gxq8v0j"; })
+  (fetchNuGet { pname = "Humanizer.Core.sl"; version = "2.14.1"; sha256 = "12ygvzyqa0km7a0wz42zssq8qqakvghh96x1ng7qvwcrna3v2rdi"; })
+  (fetchNuGet { pname = "Humanizer.Core.sr"; version = "2.14.1"; sha256 = "1ggj15qksyr16rilq2w76x38bxp6a6z75b30c9b7w5ni88nkgc7x"; })
+  (fetchNuGet { pname = "Humanizer.Core.sr-Latn"; version = "2.14.1"; sha256 = "0lwr0gnashirny8lgaw0qnbb7x0qrjg8fs11594x8l7li3mahzz3"; })
+  (fetchNuGet { pname = "Humanizer.Core.sv"; version = "2.14.1"; sha256 = "1c7yx59haikdqx7k7vqll6223jjmikgwbl3dzmrcs3laywgfnmgn"; })
+  (fetchNuGet { pname = "Humanizer.Core.th-TH"; version = "2.14.1"; sha256 = "0kyyi5wc23i2lcag3zvrhga9gsnba3ahl4kdlaqvvg2jhdfarl4m"; })
+  (fetchNuGet { pname = "Humanizer.Core.tr"; version = "2.14.1"; sha256 = "0rdvp0an263b2nj3c5v11hvdwgmj86ljf2m1h3g1x28pygbcx6am"; })
+  (fetchNuGet { pname = "Humanizer.Core.uk"; version = "2.14.1"; sha256 = "0a2p6mhh0ajn0y7x98zbfasln1l04iiknd50sgf3svna99wybnxd"; })
+  (fetchNuGet { pname = "Humanizer.Core.uz-Cyrl-UZ"; version = "2.14.1"; sha256 = "1jfzfgnk6wz5na2md800vq0djm6z194x618yvwxbnk2c7wikbjj2"; })
+  (fetchNuGet { pname = "Humanizer.Core.uz-Latn-UZ"; version = "2.14.1"; sha256 = "0vimhw500rq60naxfari8qm6gjmjm8h9j6c04k67fs447djy8ndi"; })
+  (fetchNuGet { pname = "Humanizer.Core.vi"; version = "2.14.1"; sha256 = "1yr0l73cy2qypkssmmjwfbbqgdplam62dqnzk9vx6x47dzpys077"; })
+  (fetchNuGet { pname = "Humanizer.Core.zh-CN"; version = "2.14.1"; sha256 = "1k6nnawd016xpwgzdzy84z1lcv2vc1cygcksw19wbgd8dharyyk7"; })
+  (fetchNuGet { pname = "Humanizer.Core.zh-Hans"; version = "2.14.1"; sha256 = "0zn99311zfn602phxyskfjq9vly0w5712z6fly8r4q0h94qa8c85"; })
+  (fetchNuGet { pname = "Humanizer.Core.zh-Hant"; version = "2.14.1"; sha256 = "0qxjnbdj645l5sd6y3100yyrq1jy5misswg6xcch06x8jv7zaw1p"; })
+  (fetchNuGet { pname = "Iced"; version = "1.17.0"; sha256 = "1999xavgpy2h83rh4indiq5mx5l509swqdi1raxj3ab6zvk49zpb"; })
+  (fetchNuGet { pname = "ini-parser-netstandard"; version = "2.5.2"; sha256 = "14alsxh7ik07xl9xab8bdi108f4xhz8vcchxvxy1k5w3zf3gdml9"; })
+  (fetchNuGet { pname = "JetBrains.Annotations"; version = "2023.3.0"; sha256 = "0vp4mpn6gfckn8grzjm1jxlbqiq2fglm2rk9wq787adw7rxs8k7w"; })
+  (fetchNuGet { pname = "K4os.Compression.LZ4"; version = "1.3.5"; sha256 = "1nv9inhz0n25lhkw9xgp6g5xbqmcdccdhx6mwrli0pdp6hjmlh9k"; })
+  (fetchNuGet { pname = "K4os.Compression.LZ4"; version = "1.3.7-beta"; sha256 = "1dq0pdpj6sv0rwsn234i3jkj4k4z7zlmy840vr2s374pnhq4ihwq"; })
+  (fetchNuGet { pname = "K4os.Compression.LZ4.Streams"; version = "1.3.5"; sha256 = "09m0jxq6558r1v1l4rsc8c0n6nlacz2d8c03as6kvvvz2gr7h506"; })
+  (fetchNuGet { pname = "K4os.Hash.xxHash"; version = "1.0.8"; sha256 = "0vz1f81z4rh7a576fdzbc6wmj7p4gaca1rch3anvh1s5qd7xdd10"; })
+  (fetchNuGet { pname = "LinqGen"; version = "0.3.1"; sha256 = "1nlgmmpw6f93mh357avjpzs63ayqrg44zkw813ah32j752wpaav3"; })
+  (fetchNuGet { pname = "Loqui"; version = "2.60.0"; sha256 = "1kb7a7pz4srg6gwbfx5d2yf2pbbfbxp435lgngaxihn02w0cx6x9"; })
+  (fetchNuGet { pname = "Magick.NET-Q16-AnyCPU"; version = "13.6.0"; sha256 = "0m04xwcrsmwqbx6y9kb6754sam98b530525bbr463k27w7fnvlg0"; })
+  (fetchNuGet { pname = "Magick.NET.Core"; version = "13.6.0"; sha256 = "0rskzm986ayjzapima66y1dzslgbwdbykivns4vwyn96v0pdybpp"; })
+  (fetchNuGet { pname = "Markdown.Avalonia.Tight"; version = "11.0.2"; sha256 = "1mz229r42f1p320xkjl45pdv72lycn9cqk46arycm9km45jgzzgl"; })
+  (fetchNuGet { pname = "MartinCostello.Logging.XUnit"; version = "0.3.0"; sha256 = "1l2bp67lfpmm502gxa0zrdyizwz5gl9sjzwnsn0qcr9n1iri25s6"; })
+  (fetchNuGet { pname = "MemoryPack"; version = "1.10.0"; sha256 = "1h3i2zxzmi0nhk993fldi1i5kzsgy2dxdzly6l44x8kgr3fmld0z"; })
+  (fetchNuGet { pname = "MemoryPack.Core"; version = "1.10.0"; sha256 = "02mcavp807q88nbay7hz43g50vzpmmqn6kvqxcqld6n6yqgqfl4m"; })
+  (fetchNuGet { pname = "MemoryPack.Generator"; version = "1.10.0"; sha256 = "0x4dxnxxp8ffjdwa8wj2r51z6hmmcmsxiccrkm3r6f238xli5amj"; })
+  (fetchNuGet { pname = "MemoryPack.Streaming"; version = "1.10.0"; sha256 = "1km24ajy3igq7l1rs33aqb7qaf3a4pbnj4zr7k1n531zjmzyzgj1"; })
+  (fetchNuGet { pname = "MicroCom.Runtime"; version = "0.11.0"; sha256 = "0p9c3m0zk59x9dcqw077hzd2yk60myisbacvm36mnwpcjwzjkp2m"; })
+  (fetchNuGet { pname = "Microsoft.AspNet.WebApi.Client"; version = "5.2.9"; sha256 = "1sy1q36bm9fz3gi780w4jgysw3dwaz2f3a5gcn6jxw1gkmdasb08"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.WebUtilities"; version = "8.0.3"; sha256 = "1jfwlk75db63ziar5rczw69dxn75byci2sb87wja3g6w3sswffp0"; })
+  (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "1.1.0"; sha256 = "1dq5yw7cy6s42193yl4iqscfw5vzkjkgv0zyy32scr4jza6ni1a1"; })
+  (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "1.1.1"; sha256 = "0a1ahssqds2ympr7s4xcxv5y8jgxs7ahd6ah6fbgglj4rki1f1vw"; })
+  (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "6.0.0"; sha256 = "15gqy2m14fdlvy1g59207h5kisznm355kbw010gy19vh47z8gpz3"; })
+  (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "7.0.0"; sha256 = "1waiggh3g1cclc81gmjrqbh128kwfjky3z79ma4bd2ms9pa3gvfm"; })
+  (fetchNuGet { pname = "Microsoft.Build.Tasks.Git"; version = "8.0.0"; sha256 = "0055f69q3hbagqp8gl3nk0vfn4qyqyxsxyy7pd0g7wm3z28byzmx"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzer.Testing"; version = "1.1.1"; sha256 = "1vqyrj82li1jli1h90skx1vrp6np9xfg82mny93sdms6m38f03nz"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.0.0"; sha256 = "0bbl0jpqywqmzz2gagld1p2gvdfldjfjmm25hil9wj2nq1zc4di8"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.3.2"; sha256 = "162vb5894zxps0cf5n9gc08an7gwybzz87allx3lsszvllr9ldx4"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.3.3"; sha256 = "09m4cpry8ivm9ga1abrxmvw16sslxhy2k5sl14zckhqb1j164im6"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.3.4"; sha256 = "0wd6v57p53ahz5z9zg4iyzmy3src7rlsncyqpcag02jjj1yx6g58"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "1.0.1"; sha256 = "0vsc1ds60mk417v7faiihrmx0mmi0gyy1gar2w0jh8fjn5vasdcf"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "3.8.0"; sha256 = "12n7rvr39bzkf2maw7zplw8rwpxpxss4ich3bb2pw770rx4nyvyw"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "4.1.0"; sha256 = "1mbwbp0gq6fnh2fkvsl9yzry9bykcar58gbzx22y6x6zw74lnx43"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "4.8.0"; sha256 = "0gmbxn91h4r23fhzpl1dh56cpva4sg2h659kdbdazayrajfj50fw"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "3.8.0"; sha256 = "1kmry65csvfn72zzc16vj1nfbfwam28wcmlrk3m5rzb8ydbzgylb"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "4.1.0"; sha256 = "005dj0w0ika9s7b0qrd2zk4rj35ld8y5d1nhyf9788srzig5dkx4"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "4.8.0"; sha256 = "0idaksbib90zgi8xlycmdzk77dlxichspp23wpnfrzfxkdfafqrj"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.Scripting"; version = "3.8.0"; sha256 = "0w0yx0lpg54iw5jazqk46h48gx43ij32gwac8iywdj6kxfxm03vw"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing"; version = "1.1.1"; sha256 = "0n80xxvzsl0502d67jcpv46da5bijx118w9zf2wc4vrgz94hczlx"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.XUnit"; version = "1.1.1"; sha256 = "0rh7s809nkrjfnf5339n3yvz07gpfxs4j0xcpaybzcixjgp3q120"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.Workspaces"; version = "3.8.0"; sha256 = "1jfbqfngwwjx3x1cyqaamf26s7j6wag86ig1n7bh99ny85gd78wb"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.Workspaces"; version = "4.8.0"; sha256 = "00bgzgr9kw35iz3bgndprfrxcaibc73mhd72i3pk7awam7xxrp2q"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Scripting.Common"; version = "3.8.0"; sha256 = "0hjgxcsj5zy27lqk0986m59n5dbplx2vjjla2lsvg4bwg8qa7bpk"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.SourceGenerators.Testing"; version = "1.1.1"; sha256 = "1y6nclzsb7l1pwla511c2byc96xkbaph3ilp44q31x6p702yi33p"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Testing.Verifiers.XUnit"; version = "1.1.1"; sha256 = "0xw2zxzimjcqjsnvz7xi2dnf69iihav8hk4zq2cs06z4hjj39sjq"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Workspaces.Common"; version = "1.0.1"; sha256 = "0nrds4x3hja3r8mnd4qh8x9zc0n98cb71argb82fm12bms90y9px"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Workspaces.Common"; version = "3.8.0"; sha256 = "0qbirv7wxllzw5120pfa42wailfgzvl10373yhacankmfmbz2gnw"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Workspaces.Common"; version = "4.8.0"; sha256 = "10r2qci44syk8v45rp8pq73q4c76bxbasplyi8lzhfwmjm57ii2z"; })
+  (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.9.0"; sha256 = "1gljgi69k0fz8vy8bn6xlyxabj6q4vls2zza9wz7ng6ix3irm89r"; })
+  (fetchNuGet { pname = "Microsoft.Composition"; version = "1.0.27"; sha256 = "1la5s2n2kwzi3fxg2dvsn79zkpm8big2wyxvm03jyn2f7kgykz8v"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.3.0"; sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb"; })
+  (fetchNuGet { pname = "Microsoft.Data.Sqlite"; version = "8.0.3"; sha256 = "1v1vs0cmx8lcwc8x5n794ky0y7ck9qq6742nm54kdqixz2y501a2"; })
+  (fetchNuGet { pname = "Microsoft.Data.Sqlite.Core"; version = "8.0.3"; sha256 = "1c9ajcjkszwnx6p0ba93cxa7hb3m5b98mvn4g151bgx2izcv656d"; })
+  (fetchNuGet { pname = "Microsoft.Diagnostics.NETCore.Client"; version = "0.2.251802"; sha256 = "0h4mc6gx95l1mwcxhj7m7drsfgbhp0ssr6l8wr7k42y0nypgi4gm"; })
+  (fetchNuGet { pname = "Microsoft.Diagnostics.Runtime"; version = "2.2.332302"; sha256 = "1n64ya4fq6305xv8ybk7f22v0f39rylkqap7n9blhr1h98mp27z5"; })
+  (fetchNuGet { pname = "Microsoft.Diagnostics.Tracing.TraceEvent"; version = "3.0.2"; sha256 = "14swfz2myqv4zxznf5450b3485q629pk0zc483yszvq0956a4yq4"; })
+  (fetchNuGet { pname = "Microsoft.DotNet.PlatformAbstractions"; version = "3.1.6"; sha256 = "0b9myd7gqbpaw9pkd2bx45jhik9mwj0f1ss57sk2cxmag2lkdws5"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "2.1.1"; sha256 = "0244czr3jflvzcj6axq61j10dkl0f16ad34rw81ryg57v4cvlwx6"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "3.1.0"; sha256 = "1rszgz0rd5kvib5fscz6ss3pkxyjwqy0xpd4f2ypgzf5z5g5d398"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "6.0.0"; sha256 = "1zdyai2rzngmsp3706d12qrdk315c1s3ja218fzb3nc3wd1vz0s8"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "8.0.0"; sha256 = "080kab87qgq2kh0ijry5kfdiq9afyzb8s0k3jqi5zbbi540yq4zl"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "2.1.1"; sha256 = "0b4bn0cf39c6jlc8xnpi1d8f3pz0qhf8ng440yb95y5jv5q4fdyw"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "3.1.0"; sha256 = "1f7h52kamljglx5k08ccryilvk6d6cvr9c26lcb6b2c091znzk0q"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "6.0.0"; sha256 = "0w6wwxv12nbc3sghvr68847wc9skkdgsicrz3fx4chgng1i3xy0j"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "8.0.0"; sha256 = "1jlpa4ggl1gr5fs7fdcw04li3y3iy05w3klr9lrrlc7v8w76kq71"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "2.1.1"; sha256 = "0n91s6cjfv8plf5swhr307s849jmq2pa3i1rbpb0cb0grxml0mqm"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "3.1.0"; sha256 = "13jj7jxihiswmhmql7r5jydbca4x5qj6h7zq10z17gagys6dc7pw"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "6.0.0"; sha256 = "15hb2rbzgri1fq8wpj4ll7czm3rxqzszs02phnhjnncp90m5rmpc"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "8.0.0"; sha256 = "1m0gawiz8f5hc3li9vd5psddlygwgkiw13d7div87kmkf4idza8r"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.CommandLine"; version = "6.0.0"; sha256 = "1hb4qrq9xdxzh2px515pv1vkz1jigwaxw1hfg9w8s6pgl8z04l4c"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.CommandLine"; version = "8.0.0"; sha256 = "026f7f2iv6ph2dc5rnslll0bly8qcx5clmh2nn9hgyqjizzc4qvy"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.EnvironmentVariables"; version = "6.0.0"; sha256 = "19w2vxliz1xangbach3hkx72x2pxqhc9n9c3kc3l8mhicl8w6vdl"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.EnvironmentVariables"; version = "8.0.0"; sha256 = "13qb8wz3k59ihq0mjcqz1kwrpyzxn5da4dhk2pvcgc42z9kcbf7r"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.FileExtensions"; version = "6.0.0"; sha256 = "02nna984iwnyyz4jjh9vs405nlj0yk1g5vz4v2x30z2c89mx5f9w"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.FileExtensions"; version = "8.0.0"; sha256 = "1jrmlfzy4h32nzf1nm5q8bhkpx958b0ww9qx1k1zm4pyaf6mqb04"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Json"; version = "6.0.0"; sha256 = "1c6l5szma1pdn61ncq1kaqibg0dz65hbma2xl626a8d1m6awn353"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Json"; version = "8.0.0"; sha256 = "1n3ss26v1lq6b69fxk1vz3kqv9ppxq8ypgdqpd7415xrq66y4bqn"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.UserSecrets"; version = "6.0.0"; sha256 = "0rqsdjm37wifi0rcxbmicmgd6h9p539mb88hcsgy16yl30fvgv3g"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.UserSecrets"; version = "8.0.0"; sha256 = "1br01zhzhnxjzqx63bxd25x48y9xs69hcs71pjni8y9kl50zja7z"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "3.1.0"; sha256 = "1xc61dy07bn2q73mx1z3ylrw80xpa682qjby13gklnqq636a3gab"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "6.0.0"; sha256 = "1wlhb2vygzfdjbdzy7waxblmrx0q3pdcqvpapnpmq9fcx5m8r6w1"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "8.0.0"; sha256 = "0i7qziz0iqmbk8zzln7kx9vd0lbx1x3va0yi3j1bgkjir13h78ps"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "2.0.0"; sha256 = "1pwrfh9b72k9rq6mb2jab5qhhi225d5rjalzkapiayggmygc8nhz"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "2.1.1"; sha256 = "0rn0925aqm1fsbaf0n8jy6ng2fm1cy97lp7yikvx31m6178k9i84"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "3.1.0"; sha256 = "1pvms778xkyv1a3gfwrxnh8ja769cxi416n7pcidn9wvg15ifvbh"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "6.0.0"; sha256 = "1vi67fw7q99gj7jd64gnnfr4d2c0ijpva7g9prps48ja6g91x6a9"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "7.0.0"; sha256 = "181d7mp9307fs17lyy42f8cxnjwysddmpsalky4m0pqxcimnr6g7"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "8.0.0"; sha256 = "1zw0bpp5742jzx03wvqc8csnvsbgdqi0ls9jfc5i2vd3cl8b74pg"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "8.0.1"; sha256 = "1wyhpamm1nqjfi3r463dhxljdlr6rm2ax4fvbgq2s0j3jhpdhd4p"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Diagnostics"; version = "8.0.0"; sha256 = "0ghwkld91k20hcbmzg2137w81mzzdh8hfaapdwckhza0vipya4kw"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Diagnostics.Abstractions"; version = "8.0.0"; sha256 = "15m4j6w9n8h0mj7hlfzb83hd3wn7aq1s7fxbicm16slsjfwzj82i"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Abstractions"; version = "6.0.0"; sha256 = "1fbqmfapxdz77drcv1ndyj2ybvd2rv4c9i9pgiykcpl4fa6dc65q"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Abstractions"; version = "8.0.0"; sha256 = "1idq65fxwcn882c06yci7nscy9i0rgw6mqjrl7362prvvsd9f15r"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Physical"; version = "6.0.0"; sha256 = "1ikc3kf325xig6njbi2aj5kmww4xlaq9lsrpc8v764fsm4x10474"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Physical"; version = "8.0.0"; sha256 = "05wxjvjbx79ir7vfkri6b28k8zl8fa6bbr0i7gahqrim2ijvkp6v"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileSystemGlobbing"; version = "6.0.0"; sha256 = "09gyyv4fwy9ys84z3aq4lm9y09b7bd1d4l4gfdinmg0z9678f1a4"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileSystemGlobbing"; version = "8.0.0"; sha256 = "1igf2bqism22fxv7km5yv028r4rg12a4lki2jh4xg3brjkagiv7q"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Hosting"; version = "6.0.0"; sha256 = "0h7yh9hm3pzqphsav54lrpjf12lqqdz4dq7hr61bcjycwd29l7dv"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Hosting"; version = "8.0.0"; sha256 = "1f2af5m1yny8b43251gsj75hjd9ixni1clcldy8cg91z1vxxm8dh"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Hosting.Abstractions"; version = "6.0.0"; sha256 = "1mwjx6li4a82nb589763whpnhf5hfy1bpv1dzqqvczb1lhxhzhlj"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Hosting.Abstractions"; version = "8.0.0"; sha256 = "00d5dwmzw76iy8z40ly01hy9gly49a7rpf7k7m99vrid1kxp346h"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "2.0.0"; sha256 = "1jkwjcq1ld9znz1haazk8ili2g4pzfdp6i7r7rki4hg3jcadn386"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "2.1.1"; sha256 = "12pag6rf01xfa8x1h30mf4czfhlhg2kgi5q712jicy3h12c02w8y"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "3.1.0"; sha256 = "1d3yhqj1rav7vswm747j7w8fh8paybji4rz941hhlq4b12mfqfh4"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "6.0.0"; sha256 = "0fd9jii3y3irfcwlsiww1y9npjgabzarh33rn566wpcz24lijszi"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "8.0.0"; sha256 = "0nppj34nmq25gnrg0wh1q22y4wdqbih4ax493f226azv8mkp9s1i"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "2.0.0"; sha256 = "1x5isi71z02khikzvm7vaschb006pqqrsv86ky1x08a4hir4s43h"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "2.1.1"; sha256 = "1sgpwj0sa0ac7m5fnkb482mnch8fsv8hfbvk53c6lyh47s1xhdjg"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "3.0.3"; sha256 = "1wj871vl1azasbn2lrzzycvzkk72rvaxywnj193xwv11420b0mjh"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "3.1.0"; sha256 = "1zyalrcksszmn9r5xjnirfh7847axncgzxkk3k5srbvlcch8fw8g"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "6.0.0"; sha256 = "0b75fmins171zi6bfdcq1kcvyrirs8n91mknjnxy4c3ygi1rrnj0"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "8.0.0"; sha256 = "1klcqhg3hk55hb6vmjiq2wgqidsl81aldw0li2z98lrwx26msrr6"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "8.0.1"; sha256 = "0i9pgmk60b8xlws3q9z890gim1xjq42dhyh6dj4xvbycmgg1x1sd"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Configuration"; version = "3.1.0"; sha256 = "00bx95j2j0lkrr1znm53qicigvrj4sbc7snh27nqwsp4vkjnpz5h"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Configuration"; version = "6.0.0"; sha256 = "0plx785hk61arjxf0m3ywy9hl5nii25raj4523n3ql7mmv6hxqr1"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Configuration"; version = "8.0.0"; sha256 = "1d9b734vnll935661wqkgl7ry60rlh5p876l2bsa930mvfsaqfcv"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Console"; version = "6.0.0"; sha256 = "1383b0r33dzz0hrch9cqzzxr9vxr21qq0a5vnrpkfq71m2fky31d"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Console"; version = "8.0.0"; sha256 = "1mvp3ipw7k33v2qw2yrvc4vl5yzgpk3yxa94gg0gz7wmcmhzvmkd"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Debug"; version = "6.0.0"; sha256 = "0aql9kc45g2d6z1hmwr3p1a2qy9m3f36bds3054givsnpnis81wk"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Debug"; version = "8.0.0"; sha256 = "1h7mg97lj0ss47kq7zwnihh9c6xcrkwrr8ffhc16qcsrh36sg6q0"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.EventLog"; version = "6.0.0"; sha256 = "0j3g2k8sr99kr73w66yk4ghq469syyxzayq6fjfnjjgj1y7x05fl"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.EventLog"; version = "8.0.0"; sha256 = "05vfrxw7mlwlwhsl6r4yrhxk3sd8dv5sl0hdlcpgw62n53incw5x"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.EventSource"; version = "6.0.0"; sha256 = "0ck8r63qal88349kkbj1i98fd8z9kcp41s13yyz8cpkygn15wq4g"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.EventSource"; version = "8.0.0"; sha256 = "0gbjll6p03rmw0cf8fp0p8cxzn9awmzv8hvnyqbczrkax5h7p94i"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.ObjectPool"; version = "8.0.3"; sha256 = "0h9i862qnnczix3ldai49djphd2cgpcg4wyaz1xsqv0i8gll65sp"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "2.0.0"; sha256 = "0g4zadlg73f507krilhaaa7h0jdga216syrzjlyf5fdk25gxmjqh"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "2.1.1"; sha256 = "0wgpsi874gzzjj099xbdmmsifslkbdjkxd5xrzpc5xdglpkw08vl"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "3.1.0"; sha256 = "0akccwhpn93a4qrssyb3rszdsp3j4p9hlxbsb7yhqb78xydaqhyh"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "6.0.0"; sha256 = "008pnk2p50i594ahz308v81a41mbjz9mwcarqhmrjpl2d20c868g"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "8.0.0"; sha256 = "0p50qn6zhinzyhq9sy5svnmqqwhw2jajs2pbjh9sah504wjvhscz"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options.ConfigurationExtensions"; version = "3.1.0"; sha256 = "13bhi1q4s79k4qb19m4p94364543jr3a1f8kacjvdhigpmqa732r"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options.ConfigurationExtensions"; version = "6.0.0"; sha256 = "1k6q91vrhq1r74l4skibn7wzxzww9l74ibxb2i8gg4q6fzbiivba"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options.ConfigurationExtensions"; version = "8.0.0"; sha256 = "04nm8v5a3zp0ill7hjnwnja3s2676b4wffdri8hdk2341p7mp403"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "2.0.0"; sha256 = "1xppr5jbny04slyjgngxjdm0maxdh47vq481ps944d7jrfs0p3mb"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "2.1.1"; sha256 = "033rkqdffybq5prhc7nn6v68zij393n00s5a82yf2n86whwvdfwx"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "3.1.0"; sha256 = "1w1y22njywwysi8qjnj4m83qhbq0jr4mmjib0hfawz6cwamh7xrb"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "6.0.0"; sha256 = "1kjiw6s4yfz9gm7mx3wkhp06ghnbs95icj9hi505shz9rjrg42q2"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "8.0.0"; sha256 = "0aldaz5aapngchgdr7dax9jw5wy7k7hmjgjpfgfv1wfif27jlkqm"; })
+  (fetchNuGet { pname = "Microsoft.Net.Http.Headers"; version = "8.0.3"; sha256 = "00rr4fcbwc0zf2iczdi91cdmh6w3gb1x02zv7smhcqqpgzrvidqa"; })
+  (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.9.0"; sha256 = "1lls1fly2gr1n9n1xyl9k33l2v4pwfmylyzkq8v4v5ldnwkl1zdb"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.0.0"; sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.1.2"; sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "3.1.0"; sha256 = "1gc1x8f95wk8yhgznkwsg80adk1lc65v9n5rx4yaa4bc5dva0z3j"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
+  (fetchNuGet { pname = "Microsoft.SourceLink.Common"; version = "8.0.0"; sha256 = "0xrr8yd34ij7dqnyddkp2awfmf9qn3c89xmw2f3npaa4wnajmx81"; })
+  (fetchNuGet { pname = "Microsoft.SourceLink.GitHub"; version = "8.0.0"; sha256 = "1gdx7n45wwia3yvang3ls92sk3wrymqcx9p349j8wba2lyjf9m44"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.7.1"; sha256 = "0agmphcspyg4pmpzfrfpbmgqf3wd3kqqvs87xls0i1139pa8ryi9"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.9.0"; sha256 = "1kgsl9w9fganbm9wvlkqgk0ag9hfi58z88rkfybc6kvg78bx89ca"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.9.0"; sha256 = "19ffh31a1jxzn8j69m1vnk5hyfz3dbxmflq77b8x82zybiilh5nl"; })
+  (fetchNuGet { pname = "Microsoft.VisualBasic"; version = "10.0.1"; sha256 = "0q6vv9qfkbwn7gz8qf1gfcn33r87m260hsxdsk838mcbqmjz6wgc"; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.Composition"; version = "16.1.8"; sha256 = "0x4ln1f4y2dyc0l5cckwzs56wr022cdwfh7p21wm9pr4fnvzhm68"; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.Composition.NetFxAttributes"; version = "16.1.8"; sha256 = "00dhyk24v438iilynjy6hygmh7iyhx0glmlf7sa1bwd6dwhacmql"; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.Validation"; version = "15.0.82"; sha256 = "0ms0167bi97hps5d5pw0rd2vkf24qchzxqfl2bn5h7fry41mm4gc"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.0.1"; sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.3.0"; sha256 = "1gxyzxam8163vk1kb6xzxjj4iwspjsz9zhgn1w9rjzciphaz0ig7"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "5.0.0"; sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n"; })
+  (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "4.7.0"; sha256 = "0pjll2a62hc576hd4wgyasva0lp733yllmk54n37svz5ac7nfz0q"; })
+  (fetchNuGet { pname = "Mutagen.Bethesda.Core"; version = "0.42.0"; sha256 = "1wncsnmwbc11ardl38ii81jkspilzlnq3p4jhcwfmykiang9dr50"; })
+  (fetchNuGet { pname = "Mutagen.Bethesda.Kernel"; version = "0.42.0"; sha256 = "1bpaqxqygjr0vbhxg6iwj3shqak0gz28kmpjc364y4vchhhvczwk"; })
+  (fetchNuGet { pname = "Mutagen.Bethesda.Skyrim"; version = "0.42.0"; sha256 = "1ippwgiicl4rp7a2cv88axwnrjgx2pbpxwdqpw9w8wqlm5rdp2ql"; })
+  (fetchNuGet { pname = "NetEscapades.EnumGenerators"; version = "1.0.0-beta07"; sha256 = "01n7h7bgarmkar1ll7s4qrvl9j0avd5pfylcnpp2lvkna29jx0j9"; })
+  (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.0"; sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k"; })
+  (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
+  (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.3"; sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.3"; sha256 = "0xrwysmrn4midrjal8g2hr1bbg38iyisl0svamb11arqws4w2bw7"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
+  (fetchNuGet { pname = "Newtonsoft.Json.Bson"; version = "1.0.1"; sha256 = "1r1hvj5gjl466bya2bfl5aaj8rbwyf5x1msg710wf3k2llbci1xa"; })
+  (fetchNuGet { pname = "NexusMods.Archives.Nx"; version = "0.3.8"; sha256 = "067wgxqby7kiya6cnx64mq824csbz1h8vx30i5w8wax3ppaxbgp2"; })
+  (fetchNuGet { pname = "NexusMods.Hashing.xxHash64"; version = "2.0.0"; sha256 = "003jwn9hnmszfzwa9xd36hspc9xh8mcldkh169sj84rxsw0xliri"; })
+  (fetchNuGet { pname = "NexusMods.Paths"; version = "0.1.8"; sha256 = "0gid7zdhcfilhlvs1fm19z6sgp63zcjx522fw1ghgngj7dwgqpp6"; })
+  (fetchNuGet { pname = "NexusMods.Paths"; version = "0.4.0"; sha256 = "0kyhpn2dha2d9fri3nm2zfpd5ly2lgc1bqs1k06fxnmsxljy7vd8"; })
+  (fetchNuGet { pname = "NexusMods.Paths"; version = "0.8.0"; sha256 = "0sw49xdj6h3n38kdzb46gc99z05klhgjr33fjrdg0ln8j1m9q3gv"; })
+  (fetchNuGet { pname = "NexusMods.Paths"; version = "0.9.2"; sha256 = "0a550hb48rdj5y9pazixl90gzyvwqf6zhmam5q90z11k2mifp0gp"; })
+  (fetchNuGet { pname = "NexusMods.Paths.TestingHelpers"; version = "0.8.0"; sha256 = "0wcmpskfn9pw0jhjq7hdwgnvflqpl9a1rasx3ck3ansmh0my1f3z"; })
+  (fetchNuGet { pname = "NexusMods.ProxyConsole"; version = "0.6.0"; sha256 = "1iajcv1z2xc6851h4xxymbp4085hh236la9pwivd71rlcilikjln"; })
+  (fetchNuGet { pname = "NexusMods.ProxyConsole.Abstractions"; version = "0.6.0"; sha256 = "10icz41zjd0jfyg9v8c4cfjm5ivg23klll3cbsyj4k8v70dwf7x0"; })
+  (fetchNuGet { pname = "NexusMods.SingleProcess"; version = "0.6.0"; sha256 = "1ibkvric5gpn89qdic7bgg8knap64m4svjgc8xgnc4f4l6wi1802"; })
+  (fetchNuGet { pname = "NexusMods.Telemetry"; version = "1.0.0"; sha256 = "18v3kqk3nldk8qvp7yky8l33vjgp16bsgzfvfz6a0z4n7l1wxwhq"; })
+  (fetchNuGet { pname = "NexusMods.Telemetry.OpenTelemetry"; version = "1.0.0"; sha256 = "0885nhmx6hln9r7psfrg6101z5mx949g6a73w9ini13z4cx5fvgb"; })
+  (fetchNuGet { pname = "NLog"; version = "5.2.8"; sha256 = "1z3h20m5rjnizm1jbf5j0vpdc1f373rzzkg6478p1lxv5j385c12"; })
+  (fetchNuGet { pname = "NLog.Extensions.Logging"; version = "5.3.8"; sha256 = "1qnz91099f51vk7f5g2ig0041maw5hcbyqllxvj5zj7zkp0qw9b8"; })
+  (fetchNuGet { pname = "Noggog.CSharpExt"; version = "2.60.0"; sha256 = "1p6ih9a30y1mir3y4cchbnmhj9pv7rsmqfhmn10gm4apf68fid0n"; })
+  (fetchNuGet { pname = "NSubstitute"; version = "5.1.0"; sha256 = "0vjl2pgw4b6366x47xyc0nfz33rx96bwjpnn0diq8mksaxn6w6ir"; })
+  (fetchNuGet { pname = "NSubstitute.Analyzers.CSharp"; version = "1.0.17"; sha256 = "1gkr7xw4my7577dhyb4a5ylw5qlfdfddcyxr4l5p0yrkjcs228qz"; })
+  (fetchNuGet { pname = "NuGet.Common"; version = "5.6.0"; sha256 = "1y7z537xrq2flfhsr63da1lxq9xgnja5d0ssp8ih7fhzjw5f1kxr"; })
+  (fetchNuGet { pname = "NuGet.Configuration"; version = "5.6.0"; sha256 = "1lk9gf8pyyic6r6vfz09cmh1s2h8y8qgh9c2cl7kygsnxzm3m41b"; })
+  (fetchNuGet { pname = "NuGet.Frameworks"; version = "5.6.0"; sha256 = "1dzmma2qm6brmsy3nfh3w7y04aijyzzq4xwa8f8ykg9f6wqrril8"; })
+  (fetchNuGet { pname = "NuGet.Frameworks"; version = "6.5.0"; sha256 = "0s37d1p4md0k6d4cy6sq36f2dgkd9qfbzapxhkvi8awwh0vrynhj"; })
+  (fetchNuGet { pname = "NuGet.Packaging"; version = "5.6.0"; sha256 = "02d101kfljcsvrn7wq756nnwvvn1qsl3ijlw3azhn9680vaw0pvf"; })
+  (fetchNuGet { pname = "NuGet.Protocol"; version = "5.6.0"; sha256 = "1zsi1gdlyjwmmxpqbbzmc524nmcs8v50xyql2m8dr0rq9723g9kx"; })
+  (fetchNuGet { pname = "NuGet.Resolver"; version = "5.6.0"; sha256 = "0kn751hxvwy4c0bzmpk5fin435iav4wx56ndwg7jid29a1380260"; })
+  (fetchNuGet { pname = "NuGet.Versioning"; version = "5.6.0"; sha256 = "10jfafhscgh2y92a70lbn1jq7k3v8mjx6ryfchjfqkk1g1dv0wnw"; })
+  (fetchNuGet { pname = "OneOf"; version = "2.1.125"; sha256 = "0yrvf99gspbz4k19zrklpxrwr3i75ml1ygwn6rr57hhc44sh2yfx"; })
+  (fetchNuGet { pname = "OneOf"; version = "3.0.263"; sha256 = "08jiy5ff6nx3bbmia7iqcfrva0bynr87m0m4nxkzm5ri21w49ri1"; })
+  (fetchNuGet { pname = "OneOf.Extended"; version = "2.1.125"; sha256 = "0j0nvwc2p4xc0amx1v74mgj7m550qjk7j4wk99q3c5ydvkiv75n0"; })
+  (fetchNuGet { pname = "OpenTelemetry"; version = "1.5.1"; sha256 = "11viab672mdiyw5pl7fk43lmn0i1wyjrnx4nwfh44m3vj1x0a7xn"; })
+  (fetchNuGet { pname = "OpenTelemetry.Api"; version = "1.5.1"; sha256 = "0wybx4zjsfzxn8gqjcy6impi634swy0s50fq9af7hrhwa4mwsr5w"; })
+  (fetchNuGet { pname = "OpenTelemetry.Api.ProviderBuilderExtensions"; version = "1.5.1"; sha256 = "0rb092l5hsivk8giiz2iqh9y1040m8zvyg4k4ikgzfr7xz00zlh9"; })
+  (fetchNuGet { pname = "OpenTelemetry.Exporter.OpenTelemetryProtocol"; version = "1.5.1"; sha256 = "17d6a9hvs3g4vkbbv5jsjl74ixvb4anvgfkav72nv6c2j6qrdlcd"; })
+  (fetchNuGet { pname = "OpenTelemetry.Extensions.Hosting"; version = "1.5.1"; sha256 = "1l83hivr1596mnjd51j0mjsfswm2mz7b5az9krwc80yhyxdhkba3"; })
+  (fetchNuGet { pname = "Pathoschild.Http.FluentClient"; version = "4.3.0"; sha256 = "157cv084sdy463qx57wqnsj437magqs25dcd38brv35jnbk3vkqp"; })
+  (fetchNuGet { pname = "Perfolizer"; version = "0.2.1"; sha256 = "012aqqi3y3nfikqmn26yajpwd52c04zlzp0p91iyslw7mf26qncy"; })
+  (fetchNuGet { pname = "Projektanker.Icons.Avalonia"; version = "9.1.2"; sha256 = "1a28f02n7zxgbi2wpx83krjq9ribylalwny2anabfk8y5lc4xw8n"; })
+  (fetchNuGet { pname = "Projektanker.Icons.Avalonia.MaterialDesign"; version = "9.1.2"; sha256 = "0w8x94d7bqwgpcnlxxf27zcjxh1frv3mb647wv0k7lj3bvnpmkdl"; })
+  (fetchNuGet { pname = "ReactiveUI"; version = "18.3.1"; sha256 = "1lxkc8yk9glj0w9n5vry2dnwwvh8152ad2c5bivk8aciq64zidyn"; })
+  (fetchNuGet { pname = "ReactiveUI"; version = "19.5.41"; sha256 = "1sbs76x4b3kqc5aba6bvp0430nngq28qbjaw74mfijara3b47iqn"; })
+  (fetchNuGet { pname = "ReactiveUI.Fody"; version = "19.5.41"; sha256 = "0hwrayh0ji6f35z56c5qj0plriha16spghs75w5r80hz20pq9wid"; })
+  (fetchNuGet { pname = "Reloaded.Memory"; version = "9.3.0"; sha256 = "08jyxwj2jh8dlhdf43f2mqi5cg2pxzrlh1b7bhsx0yp1hgzh58pr"; })
+  (fetchNuGet { pname = "Reloaded.Memory"; version = "9.4.1"; sha256 = "1yv9c49zp4fvl329q7nwa71zkp2plvxvicdr62i2izby9h0r6xkd"; })
+  (fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; })
+  (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk"; })
+  (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn"; })
+  (fetchNuGet { pname = "runtime.any.System.Globalization"; version = "4.3.0"; sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x"; })
+  (fetchNuGet { pname = "runtime.any.System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201"; })
+  (fetchNuGet { pname = "runtime.any.System.IO"; version = "4.3.0"; sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x"; })
+  (fetchNuGet { pname = "runtime.any.System.Reflection"; version = "4.3.0"; sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly"; })
+  (fetchNuGet { pname = "runtime.any.System.Reflection.Extensions"; version = "4.3.0"; sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33"; })
+  (fetchNuGet { pname = "runtime.any.System.Reflection.Primitives"; version = "4.3.0"; sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf"; })
+  (fetchNuGet { pname = "runtime.any.System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl"; })
+  (fetchNuGet { pname = "runtime.any.System.Runtime"; version = "4.3.0"; sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b"; })
+  (fetchNuGet { pname = "runtime.any.System.Runtime.Handles"; version = "4.3.0"; sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x"; })
+  (fetchNuGet { pname = "runtime.any.System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19"; })
+  (fetchNuGet { pname = "runtime.any.System.Text.Encoding"; version = "4.3.0"; sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3"; })
+  (fetchNuGet { pname = "runtime.any.System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8"; })
+  (fetchNuGet { pname = "runtime.any.System.Threading.Tasks"; version = "4.3.0"; sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va"; })
+  (fetchNuGet { pname = "runtime.any.System.Threading.Timer"; version = "4.3.0"; sha256 = "0aw4phrhwqz9m61r79vyfl5la64bjxj8l34qnrcwb28v49fg2086"; })
+  (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
+  (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
+  (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
+  (fetchNuGet { pname = "runtime.native.System"; version = "4.0.0"; sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf"; })
+  (fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
+  (fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.1.0"; sha256 = "0d720z4lzyfcabmmnvh0bnj76ll7djhji2hmfh3h44sdkjnlkknk"; })
+  (fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; })
+  (fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.0.1"; sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6"; })
+  (fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography"; version = "4.0.0"; sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
+  (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
+  (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
+  (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
+  (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
+  (fetchNuGet { pname = "runtime.unix.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id"; })
+  (fetchNuGet { pname = "runtime.unix.System.Console"; version = "4.3.0"; sha256 = "1pfpkvc6x2if8zbdzg9rnc5fx51yllprl8zkm5npni2k50lisy80"; })
+  (fetchNuGet { pname = "runtime.unix.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5"; })
+  (fetchNuGet { pname = "runtime.unix.System.IO.FileSystem"; version = "4.3.0"; sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix"; })
+  (fetchNuGet { pname = "runtime.unix.System.Net.Primitives"; version = "4.3.0"; sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4"; })
+  (fetchNuGet { pname = "runtime.unix.System.Net.Sockets"; version = "4.3.0"; sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12"; })
+  (fetchNuGet { pname = "runtime.unix.System.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; })
+  (fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; })
+  (fetchNuGet { pname = "SHA3.Net"; version = "2.0.0"; sha256 = "11wmqx6gvkl8kvbhsavk2hsj8nplnv8ai3apwiyv7ndrpkv29p5c"; })
+  (fetchNuGet { pname = "SharpZipLib"; version = "1.4.2"; sha256 = "0ijrzz2szxjmv2cipk7rpmg14dfaigdkg7xabjvb38ih56m9a27y"; })
+  (fetchNuGet { pname = "SharpZstd.Interop"; version = "1.5.5-beta1"; sha256 = "1jdwd00pgl86k9k5sz5jk7vckd0bi4818kg52pwpc0byjn8wqfgg"; })
+  (fetchNuGet { pname = "ShimSkiaSharp"; version = "1.0.0.14"; sha256 = "0gdzvkrg63a4nqh4z2dxqiwmw07if08vdffmmgbck6j4nblx11qh"; })
+  (fetchNuGet { pname = "SimpleInfoName"; version = "2.1.1"; sha256 = "08rbvnk5aln1dbfv69rqnzkld5m3bvb2j4z367s297fb5ci4s87g"; })
+  (fetchNuGet { pname = "SimpleInfoName"; version = "2.2.0"; sha256 = "0dd68biqqzi81p8jz8z61181hachpikqphk73xw12s7w33xqf8x0"; })
+  (fetchNuGet { pname = "SkiaSharp"; version = "2.88.6"; sha256 = "0xs11zjw9ha68maw3l825kfwlrid43qwy0mswljxhpjh0y1k6k6b"; })
+  (fetchNuGet { pname = "SkiaSharp"; version = "2.88.7"; sha256 = "0f6wbk9dnjiffb9ycjachy1m9zw3pai2m503nym07qgb0izxm792"; })
+  (fetchNuGet { pname = "SkiaSharp.HarfBuzz"; version = "2.88.6"; sha256 = "1h61vk9ibavwwrxqgclzsxmchighvfaqlcqrj0dpi2fzw57f54c2"; })
+  (fetchNuGet { pname = "SkiaSharp.NativeAssets.Linux"; version = "2.88.3"; sha256 = "0dajvr60nwvnv7s6kcqgw1w97zxdpz1c5lb7kcq7r0hi0l05ck3q"; })
+  (fetchNuGet { pname = "SkiaSharp.NativeAssets.Linux"; version = "2.88.7"; sha256 = "0p0z6nxkkmabv46wmxhs3yr0xy24i6jzn54gk0hsm3h1a8vi3m21"; })
+  (fetchNuGet { pname = "SkiaSharp.NativeAssets.macOS"; version = "2.88.6"; sha256 = "1fp9h8c8k6sbsh48b69dc6461isd4dajq7yw5i7j6fhkas78q4zf"; })
+  (fetchNuGet { pname = "SkiaSharp.NativeAssets.macOS"; version = "2.88.7"; sha256 = "05xwa1izzvqz4gznvx2x31qnpvl1lc65hm5p9sscjg5afisya0ss"; })
+  (fetchNuGet { pname = "SkiaSharp.NativeAssets.WebAssembly"; version = "2.88.3"; sha256 = "1w5njksq3amrrp7fqxw89nv6ar2kgc5yx092i4rxv7hrjbd1aagx"; })
+  (fetchNuGet { pname = "SkiaSharp.NativeAssets.WebAssembly"; version = "2.88.7"; sha256 = "1k2hfasgbv01navc55zzwdwzfxcw4186jni35c00zykgwhbwb250"; })
+  (fetchNuGet { pname = "SkiaSharp.NativeAssets.Win32"; version = "2.88.6"; sha256 = "1w2mwcwkqvrg4x4ybc4674xnkqwh1n2ihg520gqgpnqfc11ghc4n"; })
+  (fetchNuGet { pname = "SkiaSharp.NativeAssets.Win32"; version = "2.88.7"; sha256 = "119mlbh5hmlis7vb111s95dwg5p1anm2hmv7cm6fz7gy18473d7v"; })
+  (fetchNuGet { pname = "Spectre.Console"; version = "0.47.0"; sha256 = "0gc9ana660an7d76w9qd8l62lv66dc69vr5lslr896b1313ywakp"; })
+  (fetchNuGet { pname = "Spectre.Console"; version = "0.48.0"; sha256 = "0v3zijim9k5lcmhn0ajlsix0japvx3c20r9b7x7f7gvraa8w3gl6"; })
+  (fetchNuGet { pname = "Splat"; version = "14.4.1"; sha256 = "03ycyjn2ii44npi015p4rk344xnjgdzz02cf63cmhx2ab8hv6p4b"; })
+  (fetchNuGet { pname = "Splat"; version = "14.8.12"; sha256 = "09gigvphgq6w3n251wgi5r3wbyk9j19cpn6g5wigqdymy5hfr97l"; })
+  (fetchNuGet { pname = "Splat.Microsoft.Extensions.Logging"; version = "14.8.12"; sha256 = "0gbwyr1sbadbkrf7wgc4jcxv73q96dybwvnkrxhr3igi2hidsn29"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.bundle_e_sqlite3"; version = "2.1.6"; sha256 = "0pzgdfl707pd9fz108xaff22w7c2y27yaix6wfp36phqkdnzz43m"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "2.1.6"; sha256 = "1w8zsgz2w2q0a9cw9cl1rzrpv48a04nhyq67ywan6xlgknds65a7"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3"; version = "2.1.6"; sha256 = "0g959z7r3h43nwzm7z3jiib1xvyx146lxyv0x6fl8ll5wivpjyxq"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.provider.e_sqlite3"; version = "2.1.6"; sha256 = "1vs1c7yhi0mdqrd35ji289cxkhg7dxdnn6wgjjbngvqxkdhkyxyc"; })
+  (fetchNuGet { pname = "Svg.Custom"; version = "1.0.0.14"; sha256 = "1x4cc9npxfl22wgy34pxglp7aja7h6q4vkc5ms0xknr2j9b7x5j6"; })
+  (fetchNuGet { pname = "Svg.Model"; version = "1.0.0.14"; sha256 = "03g343r1adaclnybj35p33bskwkn2scr9gka1l3cf13d3rz1hxal"; })
+  (fetchNuGet { pname = "Svg.Skia"; version = "1.0.0.14"; sha256 = "18rnn88gfkry72vzknwa89vfkclsn06hz4wqx3iy1x81pf1az4qq"; })
+  (fetchNuGet { pname = "System.AppContext"; version = "4.1.0"; sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz"; })
+  (fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.0.0"; sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.5.1"; sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3"; })
+  (fetchNuGet { pname = "System.CodeDom"; version = "5.0.0"; sha256 = "14zs2wqkmdlxzj8ikx19n321lsbarx5vl2a8wrachymxn8zb5njh"; })
+  (fetchNuGet { pname = "System.CodeDom"; version = "6.0.0"; sha256 = "1i55cxp8ycc03dmxx4n22qi6jkwfl23cgffb95izq7bjar8avxxq"; })
+  (fetchNuGet { pname = "System.CodeDom"; version = "8.0.0"; sha256 = "0zyzd15v0nf8gla7nz243m1kff8ia6vqp471i3g7xgawgj5n21dv"; })
+  (fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
+  (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
+  (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.0.12"; sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc"; })
+  (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.1.36"; sha256 = "0bgwv02alikabdp8ax7wbrp8ym4nbbfa65lhz042cy5g9hn35xf7"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.2.0"; sha256 = "1jm4pc666yiy7af1mcf7766v710gp0h40p228ghj6bavx7xfa38m"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "7.0.0"; sha256 = "1n9122cy6v3qhsisc9lzwa1m1j62b8pi2678nsmnlyvfpk0zdagm"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "8.0.0"; sha256 = "0z53a42zjd59zdkszcm7pvij4ri5xbb8jly9hzaad9khlf69bcqp"; })
+  (fetchNuGet { pname = "System.CommandLine"; version = "2.0.0-beta4.22272.1"; sha256 = "1iy5hwwgvx911g3yq65p4zsgpy08w4qz9j3h0igcf7yci44vw8yd"; })
+  (fetchNuGet { pname = "System.ComponentModel"; version = "4.3.0"; sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb"; })
+  (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.3.0"; sha256 = "1ab25njbjgqbnvkazv41ndc0fc7gx0dnnhzb57d2wbd7ljxm21fd"; })
+  (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.5.0"; sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p"; })
+  (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "5.0.0"; sha256 = "021h7x98lblq9avm1bgpa4i31c2kgsa7zn4sqhxf39g087ar756j"; })
+  (fetchNuGet { pname = "System.ComponentModel.Composition"; version = "4.5.0"; sha256 = "196ihd17in5idnxq5l5xvpa1fhqamnihjg3mcmv1k4n8bjrrj5y7"; })
+  (fetchNuGet { pname = "System.Composition"; version = "1.0.31"; sha256 = "0aa27jz73qb0xm6dyxv22qhfrmyyqjyn2dvvsd9asi82lcdh9i61"; })
+  (fetchNuGet { pname = "System.Composition"; version = "7.0.0"; sha256 = "1aii681g7a4gv8fvgd6hbnbbwi6lpzfcnl3k0k8hqx4m7fxp2f32"; })
+  (fetchNuGet { pname = "System.Composition.AttributedModel"; version = "1.0.31"; sha256 = "1ipyb86hvw754kmk47vjmzyilvj5hymg9nqabz70sbgsz1fygrdv"; })
+  (fetchNuGet { pname = "System.Composition.AttributedModel"; version = "7.0.0"; sha256 = "1cxrp0sk5b2gihhkn503iz8fa99k860js2qyzjpsw9rn547pdkny"; })
+  (fetchNuGet { pname = "System.Composition.Convention"; version = "1.0.31"; sha256 = "00gqcdrql7vhynxh4xq0s9j5nw27kghmn2n773v7lhzjh3ash18r"; })
+  (fetchNuGet { pname = "System.Composition.Convention"; version = "7.0.0"; sha256 = "1nbyn42xys0kv247jf45r748av6fp8kp27f1582lfhnj2n8290rp"; })
+  (fetchNuGet { pname = "System.Composition.Hosting"; version = "1.0.31"; sha256 = "1f1bnk3j7ndx9r7zpzibmrhw78clys1pspl20j2dhnmkiwhl23vy"; })
+  (fetchNuGet { pname = "System.Composition.Hosting"; version = "7.0.0"; sha256 = "0wqbjxgggskfn45ilvg86grqci3zx9xj34r5sradca4mqqc90n7f"; })
+  (fetchNuGet { pname = "System.Composition.Runtime"; version = "1.0.31"; sha256 = "1shfybfzsn4g6aim4pggb5ha31g0fz2kkk0519c4vj6m166g39ws"; })
+  (fetchNuGet { pname = "System.Composition.Runtime"; version = "7.0.0"; sha256 = "1p9xpqzx42s8cdizv6nh15hcjvl2km0rwby66nfkj4cb472l339s"; })
+  (fetchNuGet { pname = "System.Composition.TypedParts"; version = "1.0.31"; sha256 = "1m4j19zx50lbbdx1xxbgpsd1dai2r3kzkyapw47kdvkb89qjkl63"; })
+  (fetchNuGet { pname = "System.Composition.TypedParts"; version = "7.0.0"; sha256 = "0syz7y6wgnxxgjvfqgymn9mnaa5fjy1qp06qnsvh3agr9mvcv779"; })
+  (fetchNuGet { pname = "System.Configuration.ConfigurationManager"; version = "4.4.0"; sha256 = "1hjgmz47v5229cbzd2pwz2h0dkq78lb2wp9grx8qr72pb5i0dk7v"; })
+  (fetchNuGet { pname = "System.Console"; version = "4.0.0"; sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf"; })
+  (fetchNuGet { pname = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
+  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
+  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.0.0"; sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "6.0.0"; sha256 = "0rrihs9lnb1h6x4h0hn6kgfnh58qq7hx8qq99gh6fayx4dcnx3s5"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "7.0.0"; sha256 = "1jxhvsh5mzdf0sgb4dfmbys1b12ylyr5pcfyj1map354fiq3qsgm"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "8.0.0"; sha256 = "0nzra1i0mljvmnj1qqqg37xs7bl71fnpl68nwmdajchh65l878zr"; })
+  (fetchNuGet { pname = "System.Diagnostics.EventLog"; version = "6.0.0"; sha256 = "08y1x2d5w2hnhkh9r1998pjc7r4qp0rmzax062abha85s11chifd"; })
+  (fetchNuGet { pname = "System.Diagnostics.EventLog"; version = "8.0.0"; sha256 = "1xnvcidh2qf6k7w8ij1rvj0viqkq84cq47biw0c98xhxg5rk3pxf"; })
+  (fetchNuGet { pname = "System.Diagnostics.Process"; version = "4.3.0"; sha256 = "0g4prsbkygq8m21naqmcp70f24a1ksyix3dihb1r1f71lpi3cfj7"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.1.0"; sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
+  (fetchNuGet { pname = "System.Drawing.Common"; version = "4.7.0"; sha256 = "0yfw7cpl54mgfcylvlpvrl0c8r1b0zca6p7r3rcwkvqy23xqcyhg"; })
+  (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
+  (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.3.0"; sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk"; })
+  (fetchNuGet { pname = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
+  (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
+  (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.0.1"; sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh"; })
+  (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
+  (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.0.1"; sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc"; })
+  (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
+  (fetchNuGet { pname = "System.IO.Abstractions"; version = "19.1.5"; sha256 = "1dkzkglkdj0alrsmn0bxjx6i7x5xc5svrp0jihyzpkmk9ycs5nwp"; })
+  (fetchNuGet { pname = "System.IO.Abstractions"; version = "19.2.1"; sha256 = "1v6aazxwmfgy4y95dcbk1wycm4mc53n4pm1cck93nagrwcgbs9y6"; })
+  (fetchNuGet { pname = "System.IO.Compression"; version = "4.1.0"; sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji"; })
+  (fetchNuGet { pname = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
+  (fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.0.1"; sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82"; })
+  (fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.3.0"; sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar"; })
+  (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.0.1"; sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; })
+  (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
+  (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
+  (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
+  (fetchNuGet { pname = "System.IO.Hashing"; version = "7.0.0"; sha256 = "0vilmb817wnw8w13kkps831p05zzc41dldigpbr3wqi0hsrf8ad9"; })
+  (fetchNuGet { pname = "System.IO.Hashing"; version = "8.0.0"; sha256 = "1hg5i9hiihj9x4d0mlvhfddmivzrhzz83dyh26fqw1nd8jvqccxk"; })
+  (fetchNuGet { pname = "System.IO.Pipelines"; version = "6.0.0"; sha256 = "08211lvckdsdbd67xz4f6cyk76cli565j0dby1grlc4k9bhwby65"; })
+  (fetchNuGet { pname = "System.IO.Pipelines"; version = "6.0.3"; sha256 = "1jgdazpmwc21dd9naq3l9n5s8a1jnbwlvgkf1pnm0aji6jd4xqdz"; })
+  (fetchNuGet { pname = "System.IO.Pipelines"; version = "7.0.0"; sha256 = "1ila2vgi1w435j7g2y7ykp2pdbh9c5a02vm85vql89az93b7qvav"; })
+  (fetchNuGet { pname = "System.IO.Pipelines"; version = "8.0.0"; sha256 = "00f36lqz1wf3x51kwk23gznkjjrf5nmqic9n7073nhrgrvb43nid"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
+  (fetchNuGet { pname = "System.Linq.Async"; version = "6.0.1"; sha256 = "10ira8hmv0i54yp9ggrrdm1c06j538sijfjpn1kmnh9j2xk5yzmq"; })
+  (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
+  (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
+  (fetchNuGet { pname = "System.Management"; version = "5.0.0"; sha256 = "09hyv3p0zd549577clydlb2szl84m4gvdjnsry73n8b12ja7d75s"; })
+  (fetchNuGet { pname = "System.Management"; version = "6.0.2"; sha256 = "190bxmg0y5dmzh0yv9gzh8k6safdz20gqaifpnl8v7yw3z5wcpgj"; })
+  (fetchNuGet { pname = "System.Management"; version = "8.0.0"; sha256 = "1zbwj6ii8axa4w8ymjzi9d9pj28nhswygahyqppvzaxypw6my2hz"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.1"; sha256 = "0f07d7hny38lq9w69wx4lxkn4wszrqf9m9js6fh9is645csm167c"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.5"; sha256 = "08jsfwimcarfzrhlyvjjid61j02irx6xsklf32rv57x2aaikvx0h"; })
+  (fetchNuGet { pname = "System.Net.Http"; version = "4.1.0"; sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb"; })
+  (fetchNuGet { pname = "System.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; })
+  (fetchNuGet { pname = "System.Net.NameResolution"; version = "4.3.0"; sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq"; })
+  (fetchNuGet { pname = "System.Net.Primitives"; version = "4.0.11"; sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r"; })
+  (fetchNuGet { pname = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
+  (fetchNuGet { pname = "System.Net.Sockets"; version = "4.1.0"; sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls"; })
+  (fetchNuGet { pname = "System.Net.Sockets"; version = "4.3.0"; sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"; })
+  (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.4.0"; sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba"; })
+  (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
+  (fetchNuGet { pname = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
+  (fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
+  (fetchNuGet { pname = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; })
+  (fetchNuGet { pname = "System.Reactive"; version = "5.0.0"; sha256 = "1lafmpnadhiwxyd543kraxa3jfdpm6ipblxrjlibym9b1ykpr5ik"; })
+  (fetchNuGet { pname = "System.Reactive"; version = "6.0.0"; sha256 = "1mkvx1fwychpczksy6svfmniqhbm3xqblxqik6178l12xgq7aw45"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
+  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
+  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
+  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.0.21"; sha256 = "0jq1jvjxwgaxi9wama5wy5b3lspvd2kz4rcp8gc9xhqs3idq6ank"; })
+  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.3.0"; sha256 = "1y5m6kryhjpqqm2g3h3b6bzig13wkiw954x3b7icqjm6xypm1x3b"; })
+  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
+  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "5.0.0"; sha256 = "17qsl5nanlqk9iz0l5wijdn6ka632fs1m1fvx18dfgswm258r3ss"; })
+  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "7.0.0"; sha256 = "1wilasn2qmj870h2bhw348lspamm7pbinpb4m89icg113510l00v"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
+  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
+  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
+  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; })
+  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
+  (fetchNuGet { pname = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
+  (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.4.0"; sha256 = "0a6ahgi5b148sl5qyfpyw383p3cb4yrkm802k29fsi4mxkiwir29"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.3"; sha256 = "1afi6s2r1mh1kygbjmfba6l4f87pi5sg13p4a48idqafli94qxln"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.1"; sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "5.0.0"; sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "6.0.0"; sha256 = "0qm741kh4rh57wky16sq4m0v05fxmkjjr87krycf5vp9f0zbahbc"; })
+  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
+  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
+  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; })
+  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.0.0"; sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
+  (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.0.1"; sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn"; })
+  (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
+  (fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; })
+  (fetchNuGet { pname = "System.Security.AccessControl"; version = "4.5.0"; sha256 = "1wvwanz33fzzbnd2jalar0p0z3x0ba53vzx1kazlskp7pwyhlnq0"; })
+  (fetchNuGet { pname = "System.Security.AccessControl"; version = "4.7.0"; sha256 = "0n0k0w44flkd8j0xw7g3g3vhw7dijfm51f75xkm1qxnbh4y45mpz"; })
+  (fetchNuGet { pname = "System.Security.AccessControl"; version = "5.0.0"; sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r"; })
+  (fetchNuGet { pname = "System.Security.Claims"; version = "4.3.0"; sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.2.0"; sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.2.0"; sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.0.0"; sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.0.0"; sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.0.0"; sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.0.0"; sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "4.3.0"; sha256 = "1kg264xmqabyz8gfg8ymp6qp6aw43vawfp0znf0909d7b5jd3dq9"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "4.4.0"; sha256 = "1q8ljvqhasyynp94a1d7jknk946m20lkwy2c3wa8zw2pc517fbj6"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.1.0"; sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
+  (fetchNuGet { pname = "System.Security.Permissions"; version = "4.5.0"; sha256 = "192ww5rm3c9mirxgl1nzyrwd18am3izqls0hzm0fvcdjl5grvbhm"; })
+  (fetchNuGet { pname = "System.Security.Permissions"; version = "4.7.0"; sha256 = "13f366sj36jwbvld957gk2q64k2xbj48r8b0k9avrri2nlq1fs04"; })
+  (fetchNuGet { pname = "System.Security.Principal"; version = "4.3.0"; sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.3.0"; sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.5.0"; sha256 = "0rmj89wsl5yzwh0kqjgx45vzf694v9p92r4x4q6yxldk1cv1hi86"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.7.0"; sha256 = "1a56ls5a9sr3ya0nr086sdpa9qv0abv31dd6fp27maqa9zclqq5d"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
+  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.5.1"; sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w"; })
+  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "7.0.0"; sha256 = "0sn6hxdjm7bw3xgsmg041ccchsa4sp02aa27cislw3x61dbr68kq"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
+  (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "6.0.0"; sha256 = "06n9ql3fmhpjl32g3492sj181zjml5dlcc5l76xq2h38c4f87sai"; })
+  (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "8.0.0"; sha256 = "1wbypkx0m8dgpsaqgyywz4z760xblnwalb241d5qv9kx8m128i11"; })
+  (fetchNuGet { pname = "System.Text.Json"; version = "6.0.0"; sha256 = "1si2my1g0q0qv1hiqnji4xh9wd05qavxnzj9dwgs23iqvgjky0gl"; })
+  (fetchNuGet { pname = "System.Text.Json"; version = "8.0.0"; sha256 = "134savxw0sq7s448jnzw17bxcijsi1v38mirpbb6zfxmqlf04msw"; })
+  (fetchNuGet { pname = "System.Text.Json"; version = "8.0.3"; sha256 = "0jkl986gnh2a39v5wbab47qyh1g9a64dgh5s67vppcay8hd42c4n"; })
+  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
+  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
+  (fetchNuGet { pname = "System.Threading.Channels"; version = "7.0.0"; sha256 = "1qrmqa6hpzswlmyp3yqsbnmia9i5iz1y208xpqc1y88b1f6j1v8a"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Dataflow"; version = "4.6.0"; sha256 = "0a1davr71wssyn4z1hr75lk82wqa0daz0vfwkmg1fm3kckfd72k1"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
+  (fetchNuGet { pname = "System.Threading.Thread"; version = "4.3.0"; sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4"; })
+  (fetchNuGet { pname = "System.Threading.ThreadPool"; version = "4.3.0"; sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1"; })
+  (fetchNuGet { pname = "System.Threading.Timer"; version = "4.0.1"; sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6"; })
+  (fetchNuGet { pname = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; })
+  (fetchNuGet { pname = "System.ValueTuple"; version = "4.5.0"; sha256 = "00k8ja51d0f9wrq4vv5z2jhq8hy31kac2rg0rv06prylcybzl8cy"; })
+  (fetchNuGet { pname = "System.Windows.Extensions"; version = "4.7.0"; sha256 = "11dmyx3j0jafjx5r9mkj1v4w2a4rzrdn8fgwm2d1g7fs1ayqcvy9"; })
+  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
+  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
+  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
+  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
+  (fetchNuGet { pname = "TestableIO.System.IO.Abstractions"; version = "19.1.5"; sha256 = "0c4iis3zdmkmhy5mnkq18qyb56a1w3lzp39k0mpsdajal82bzmva"; })
+  (fetchNuGet { pname = "TestableIO.System.IO.Abstractions"; version = "19.2.1"; sha256 = "0b5grv4pqjyz9qwfpfaycgizcy392csdf3yrdqsvlimk8g1j968x"; })
+  (fetchNuGet { pname = "TestableIO.System.IO.Abstractions.Wrappers"; version = "19.1.5"; sha256 = "1igvpn8crzbv53x6kc1dbyp0ljlzbxhzzas3yzq2ya0lhqf3g2jl"; })
+  (fetchNuGet { pname = "TestableIO.System.IO.Abstractions.Wrappers"; version = "19.2.1"; sha256 = "0n57wg3sb0m635c1hlqh2klhc3rsgsx7l503g384kvafp3bcgdxl"; })
+  (fetchNuGet { pname = "Tmds.DBus.Protocol"; version = "0.15.0"; sha256 = "0d99kcs7r9cp6gpyc7z230czkkyx4164x86dhy0mca73f2ykc2g2"; })
+  (fetchNuGet { pname = "TransparentValueObjects"; version = "1.0.1"; sha256 = "1c7ygykkvfwibj8an2xnf0fqldfd3pv0qgchi7nlr9zl70vcjfcx"; })
+  (fetchNuGet { pname = "Validation"; version = "2.4.18"; sha256 = "0ljc5bzz3h00ba0iwf1y3wgdpzflwafnj4gjb0jmiagc51ai68h7"; })
+  (fetchNuGet { pname = "ValveKeyValue"; version = "0.8.2.162"; sha256 = "1f1vmvvrqq4m96y3r6bwfz0qipqacf4h3rh367b5h4x578lwbjin"; })
+  (fetchNuGet { pname = "ValveKeyValue"; version = "0.9.0.267"; sha256 = "1i25kjh06dv93700s03miv3p9ay4zhw32d0hxdzzd2aszag6ppnp"; })
+  (fetchNuGet { pname = "Verify"; version = "21.3.0"; sha256 = "1qc61h7ga1d0qmhvhxz90fdq1sylg4w0risgj8vwn7qbxapvg8z8"; })
+  (fetchNuGet { pname = "Verify"; version = "23.2.1"; sha256 = "0qi86z0m9hgv7pv9jq20sra9j3wqdfx39s384pbrfbbbg9h42d09"; })
+  (fetchNuGet { pname = "Verify"; version = "23.5.0"; sha256 = "14wsn6nwywqlcrb9shvy2wviklhl5dsz0g4xsy2driwmn45l67mw"; })
+  (fetchNuGet { pname = "Verify.ImageMagick"; version = "3.3.0"; sha256 = "15lgc11l55gq2rz25448d2kjafw3555vmcppmxys1grgiwhy93rh"; })
+  (fetchNuGet { pname = "Verify.SourceGenerators"; version = "2.2.0"; sha256 = "0rf2rc7z7r2z02l2rp3h7481nlb6qp7ksh24j2jagmjs264k9qhq"; })
+  (fetchNuGet { pname = "Verify.Xunit"; version = "23.5.0"; sha256 = "05bclxkd1g50s3mb66r11fsqhz2fmc6n76vas6f364g8rsk4n083"; })
+  (fetchNuGet { pname = "Vogen"; version = "3.0.20"; sha256 = "0z43k2g18f4sq804lvaya6q8r249p2n1fbxnl3a61a0vx7sx73i9"; })
+  (fetchNuGet { pname = "Vogen"; version = "3.0.24"; sha256 = "1531iavcjfkz64yxm3634wh88laj9vxiagr3krxfmwx08ggzzg3s"; })
+  (fetchNuGet { pname = "xunit"; version = "2.7.0"; sha256 = "0qs7yaz8qdhi75is7grgdxwxm09j36wv9c2ifyj2xd5jfzvlkc71"; })
+  (fetchNuGet { pname = "xunit.abstractions"; version = "2.0.1"; sha256 = "0c7zkf3i8n1mhc457q859klk067bw1xbf31lyxlwc5hlx9aqz65z"; })
+  (fetchNuGet { pname = "xunit.abstractions"; version = "2.0.2"; sha256 = "1cfpdhzrmqywsg8w899w9x5bxbhszipsm4791il1gf7cdq4hz463"; })
+  (fetchNuGet { pname = "xunit.abstractions"; version = "2.0.3"; sha256 = "00wl8qksgkxld76fgir3ycc5rjqv1sqds6x8yx40927q5py74gfh"; })
+  (fetchNuGet { pname = "xunit.analyzers"; version = "1.11.0"; sha256 = "0qfmc6s5g2cnfvbdp837jvkgk1sq7hrql8bip6qjsy33liqwfx2m"; })
+  (fetchNuGet { pname = "xunit.assert"; version = "2.3.0"; sha256 = "07z9xhad8r3lii3p4y6qfn2daqxp1pxqx559l6k7b80h864qvpwl"; })
+  (fetchNuGet { pname = "xunit.assert"; version = "2.7.0"; sha256 = "14g5pvv709ykkz3lgqbdisksqfll72792fkrg4qr0s8jcp38kpyc"; })
+  (fetchNuGet { pname = "xunit.core"; version = "2.7.0"; sha256 = "0s31kxc383xa9132hz9nkm21d10xvay78yzpnz2pabaxld2mwdz9"; })
+  (fetchNuGet { pname = "Xunit.DependencyInjection"; version = "8.9.1"; sha256 = "1shcda3055g2hcbjcz790gxh0009ac91rl0lfxajaim6bkkgsd02"; })
+  (fetchNuGet { pname = "Xunit.DependencyInjection.Logging"; version = "8.1.0"; sha256 = "019h3pwbhzq1pnivl2prwsb5ssj572884d5y3w65cigfysmifjs7"; })
+  (fetchNuGet { pname = "Xunit.DependencyInjection.SkippableFact"; version = "8.1.0"; sha256 = "0f656lrmpn6nnpymvikbrn5j4kl9xzlcq98n5wssy5b2xx1ikh0p"; })
+  (fetchNuGet { pname = "xunit.extensibility.core"; version = "2.2.0"; sha256 = "0l9fl09l709dq671r5yvmcrk9vhxgszmxf3ny1h9ja2sp9xx5pbs"; })
+  (fetchNuGet { pname = "xunit.extensibility.core"; version = "2.4.0"; sha256 = "0qd834mv1017j13bjz7g0byiiqzpflnnqhm15zvnk309q48rgfrd"; })
+  (fetchNuGet { pname = "xunit.extensibility.core"; version = "2.4.2"; sha256 = "1h0a62xddsd82lljfjldn1nqy17imga905jb7j0ddr10wi8cqm62"; })
+  (fetchNuGet { pname = "xunit.extensibility.core"; version = "2.7.0"; sha256 = "0n4xc0fmj9a7rhsavs66n292g4vx5bsa27566k2g5dak4x1lvdv8"; })
+  (fetchNuGet { pname = "xunit.extensibility.execution"; version = "2.4.0"; sha256 = "0bpy9iw4dkx884ld10dlijlyfp13afxrb3akhprdvazhmh8lj53j"; })
+  (fetchNuGet { pname = "xunit.extensibility.execution"; version = "2.4.2"; sha256 = "0r9gczqz4bc59cwl6d6wali6pvlw210i97chc1nlwn2qh383m54p"; })
+  (fetchNuGet { pname = "xunit.extensibility.execution"; version = "2.7.0"; sha256 = "1pmgl10wipvzq739gmlwdcmicpshb6620v1180p8yhham36ppy5i"; })
+  (fetchNuGet { pname = "xunit.runner.visualstudio"; version = "2.5.7"; sha256 = "07wan383cbxldlczjrxcn8s75jc7i2yv70s8sghv8n860mfsks96"; })
+  (fetchNuGet { pname = "Xunit.SkippableFact"; version = "1.4.13"; sha256 = "1z0mxzjxlsfh34mymrnkc4wvcn0j7xwq6mcdsl7ack58zp9p3fx4"; })
+]
diff --git a/pkgs/by-name/ne/nexusmods-app/package.nix b/pkgs/by-name/ne/nexusmods-app/package.nix
new file mode 100644
index 0000000000000..c331fad8a7f9c
--- /dev/null
+++ b/pkgs/by-name/ne/nexusmods-app/package.nix
@@ -0,0 +1,122 @@
+{ _7zz
+, buildDotnetModule
+, copyDesktopItems
+, desktop-file-utils
+, dotnetCorePackages
+, fetchFromGitHub
+, fontconfig
+, lib
+, libICE
+, libSM
+, libX11
+, nexusmods-app
+, runCommand
+, enableUnfree ? false # Set to true to support RAR format mods
+}:
+let
+  _7zzWithOptionalUnfreeRarSupport = _7zz.override {
+    inherit enableUnfree;
+  };
+in
+buildDotnetModule rec {
+  pname = "nexusmods-app";
+
+  version = "0.4.1";
+
+  src = fetchFromGitHub {
+    owner = "Nexus-Mods";
+    repo = "NexusMods.App";
+    rev = "v${version}";
+    fetchSubmodules = true;
+    hash = "sha256-FzQphMhiC1g+6qmk/R1v4rq2ldy35NcaWm0RR1UlwLA=";
+  };
+
+  projectFile = "NexusMods.App.sln";
+
+  nativeBuildInputs = [
+    copyDesktopItems
+  ];
+
+  nugetDeps = ./deps.nix;
+
+  dotnet-sdk = dotnetCorePackages.sdk_8_0;
+  dotnet-runtime = dotnetCorePackages.runtime_8_0;
+
+  preConfigure = ''
+    substituteInPlace Directory.Build.props \
+      --replace '</PropertyGroup>' '<ErrorOnDuplicatePublishOutputFiles>false</ErrorOnDuplicatePublishOutputFiles></PropertyGroup>'
+  '';
+
+  postPatch = ''
+    ln --force --symbolic "${lib.getExe _7zzWithOptionalUnfreeRarSupport}" src/ArchiveManagement/NexusMods.FileExtractor/runtimes/linux-x64/native/7zz
+  '';
+
+  makeWrapperArgs = [
+    "--prefix PATH : ${lib.makeBinPath [desktop-file-utils]}"
+    "--set APPIMAGE $out/bin/${meta.mainProgram}" # Make associating with nxm links work on Linux
+  ];
+
+  runtimeDeps = [
+    fontconfig
+    libICE
+    libSM
+    libX11
+  ];
+
+  executables = [
+    nexusmods-app.meta.mainProgram
+  ];
+
+  doCheck = true;
+
+  dotnetTestFlags = [
+    "--environment=USER=nobody"
+    (lib.strings.concatStrings [
+      "--filter="
+      (lib.strings.concatStrings (lib.strings.intersperse "&" ([
+        "Category!=Disabled"
+        "FlakeyTest!=True"
+        "RequiresNetworking!=True"
+        "FullyQualifiedName!=NexusMods.UI.Tests.ImageCacheTests.Test_LoadAndCache_RemoteImage"
+        "FullyQualifiedName!=NexusMods.UI.Tests.ImageCacheTests.Test_LoadAndCache_ImageStoredFile"
+      ] ++ lib.optionals (! enableUnfree) [
+        "FullyQualifiedName!=NexusMods.Games.FOMOD.Tests.FomodXmlInstallerTests.InstallsFilesSimple_UsingRar"
+       ])))
+    ])
+  ];
+
+  passthru = {
+    tests = {
+      serve = runCommand "${pname}-test-serve" { } ''
+        ${nexusmods-app}/bin/${nexusmods-app.meta.mainProgram}
+        touch $out
+      '';
+      help = runCommand "${pname}-test-help" { } ''
+        ${nexusmods-app}/bin/${nexusmods-app.meta.mainProgram} --help
+        touch $out
+      '';
+      associate-nxm = runCommand "${pname}-test-associate-nxm" { } ''
+        ${nexusmods-app}/bin/${nexusmods-app.meta.mainProgram} associate-nxm
+        touch $out
+      '';
+      list-tools = runCommand "${pname}-test-list-tools" { } ''
+        ${nexusmods-app}/bin/${nexusmods-app.meta.mainProgram} list-tools
+        touch $out
+      '';
+    };
+    updateScript = ./update.bash;
+  };
+
+  meta = {
+    description = "Game mod installer, creator and manager";
+    mainProgram = "NexusMods.App";
+    homepage = "https://github.com/Nexus-Mods/NexusMods.App";
+    changelog = "https://github.com/Nexus-Mods/NexusMods.App/releases/tag/${src.rev}";
+    license = [ lib.licenses.gpl3Plus ];
+    maintainers = with lib.maintainers; [
+      l0b0
+      MattSturgeon
+    ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/ne/nexusmods-app/update.bash b/pkgs/by-name/ne/nexusmods-app/update.bash
new file mode 100755
index 0000000000000..fac4a04e422a6
--- /dev/null
+++ b/pkgs/by-name/ne/nexusmods-app/update.bash
@@ -0,0 +1,9 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -I nixpkgs=./. -i bash -p nix-update
+#shellcheck shell=bash
+
+set -o errexit -o nounset -o pipefail
+
+package=nexusmods-app
+nix-update "$package"
+"$(nix-build --attr "$package".fetch-deps --no-out-link)"
diff --git a/pkgs/by-name/ne/nezha-agent/package.nix b/pkgs/by-name/ne/nezha-agent/package.nix
index 2f80dc2ded43a..94b29557dc33e 100644
--- a/pkgs/by-name/ne/nezha-agent/package.nix
+++ b/pkgs/by-name/ne/nezha-agent/package.nix
@@ -7,16 +7,16 @@
 }:
 buildGoModule rec {
   pname = "nezha-agent";
-  version = "0.16.8";
+  version = "0.16.11";
 
   src = fetchFromGitHub {
     owner = "nezhahq";
     repo = "agent";
     rev = "v${version}";
-    hash = "sha256-s3l6sI+gQcy5Qxjzg+l9t9e8WWYppiMljX7o1rSXFIs=";
+    hash = "sha256-mcTS+PjFa5niWhe8pmWmuYpx+Y9ZWX0hpcLEodN/SIs=";
   };
 
-  vendorHash = "sha256-Qx0XAlWLDqN1CZTmf1yVc8yFmz9/5bz/HVqN/korJzE=";
+  vendorHash = "sha256-L6QdodI8Ur1H6Zc24KSTYAHfzvW2aq9SYwCVgjvSDII=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/by-name/ng/ngrrram/package.nix b/pkgs/by-name/ng/ngrrram/package.nix
new file mode 100644
index 0000000000000..2ae07b76cac79
--- /dev/null
+++ b/pkgs/by-name/ng/ngrrram/package.nix
@@ -0,0 +1,29 @@
+{
+  lib,
+  fetchFromGitHub,
+  nix-update-script,
+  rustPlatform,
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "ngrrram";
+  version = "1.0.3";
+
+  src = fetchFromGitHub {
+    owner = "wintermute-cell";
+    repo = "ngrrram";
+    rev = "v${version}";
+    hash = "sha256-65cbNsGQZSpxKV0lq/Z7TK7CODPTqayOiPStukFbo44=";
+  };
+
+  cargoHash = "sha256-CWk3ixajgDI1oOOZ4qBZw5jq1xlJtxa6sAQu+fyk4rI=";
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "TUI tool to help you type faster and learn new layouts. Includes a free cat";
+    homepage = "https://github.com/wintermute-cell/ngrrram";
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ Guanran928 ];
+    mainProgram = "ngrrram";
+  };
+}
diff --git a/pkgs/by-name/nh/nh/package.nix b/pkgs/by-name/nh/nh/package.nix
index e20797546f1a0..14c22003e64cc 100644
--- a/pkgs/by-name/nh/nh/package.nix
+++ b/pkgs/by-name/nh/nh/package.nix
@@ -10,7 +10,7 @@
 , nix-output-monitor
 }:
 let
-  version = "3.5.15";
+  version = "3.5.17";
   runtimeDeps = [ nvd nix-output-monitor ];
 in
 rustPlatform.buildRustPackage {
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage {
     owner = "viperML";
     repo = "nh";
     rev = "refs/tags/v${version}";
-    hash = "sha256-1mE4ZXGAMZl2Mufr47y+2UMDHBelqsvChaCsQDK3m70=";
+    hash = "sha256-o4K6QHBjXrmcYkX9MIw9gZ+DHM3OaEVswswHRX9h8Is=";
   };
 
   strictDeps = true;
@@ -47,7 +47,7 @@ rustPlatform.buildRustPackage {
       --prefix PATH : ${lib.makeBinPath runtimeDeps}
   '';
 
-  cargoHash = "sha256-5BazSJGsafSl0eE7GOWw2SrVgC3k1tlrLiIFIpC51/o=";
+  cargoHash = "sha256-6Y5vpXEuHZXe9HKk6KomujlibzwtZJbtn6YgOqbmInk=";
 
   passthru.updateScript = nix-update-script { };
 
diff --git a/pkgs/by-name/nh/nhost-cli/package.nix b/pkgs/by-name/nh/nhost-cli/package.nix
new file mode 100644
index 0000000000000..d3a88416983da
--- /dev/null
+++ b/pkgs/by-name/nh/nhost-cli/package.nix
@@ -0,0 +1,37 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+}:
+
+buildGoModule rec {
+  pname = "nhost-cli";
+  version = "1.18.3";
+
+  src = fetchFromGitHub {
+    owner = "nhost";
+    repo = "cli";
+    rev = "v${version}";
+    hash = "sha256-TYi0Cth4GWEIT9QRUC4z3Uwnh4EmywY+XCOM5oJP+4g=";
+  };
+
+  vendorHash = null;
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X=main.Version=v${version}"
+  ];
+
+  postInstall = ''
+    mv $out/bin/cli $out/bin/nhost
+  '';
+
+  meta = {
+    description = "A tool for setting up a local development environment for Nhost";
+    homepage = "https://github.com/nhost/cli";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ moraxyc ];
+    mainProgram = "nhost";
+  };
+}
diff --git a/pkgs/by-name/ni/nickel/Cargo.lock b/pkgs/by-name/ni/nickel/Cargo.lock
index a9577c251fd78..2bc24165ac017 100644
--- a/pkgs/by-name/ni/nickel/Cargo.lock
+++ b/pkgs/by-name/ni/nickel/Cargo.lock
@@ -1287,33 +1287,33 @@ dependencies = [
 
 [[package]]
 name = "lalrpop"
-version = "0.19.12"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a1cbf952127589f2851ab2046af368fd20645491bb4b376f04b7f94d7a9837b"
+checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca"
 dependencies = [
  "ascii-canvas",
  "bit-set",
- "diff",
  "ena",
- "is-terminal",
- "itertools 0.10.5",
+ "itertools 0.11.0",
  "lalrpop-util",
  "petgraph",
+ "pico-args",
  "regex",
- "regex-syntax 0.6.29",
+ "regex-syntax 0.8.2",
  "string_cache",
  "term",
  "tiny-keccak",
  "unicode-xid 0.2.4",
+ "walkdir",
 ]
 
 [[package]]
 name = "lalrpop-util"
-version = "0.19.12"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3c48237b9604c5a4702de6b824e02006c3214327564636aef27c1028a8fa0ed"
+checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553"
 dependencies = [
- "regex",
+ "regex-automata",
 ]
 
 [[package]]
@@ -1649,7 +1649,7 @@ dependencies = [
 
 [[package]]
 name = "nickel-lang-cli"
-version = "1.6.0"
+version = "1.7.0"
 dependencies = [
  "clap 4.5.2",
  "clap_complete",
@@ -1667,7 +1667,7 @@ dependencies = [
 
 [[package]]
 name = "nickel-lang-core"
-version = "0.7.0"
+version = "0.8.0"
 dependencies = [
  "ansi_term",
  "assert_matches",
@@ -1722,7 +1722,7 @@ dependencies = [
 
 [[package]]
 name = "nickel-lang-lsp"
-version = "1.6.0"
+version = "1.7.0"
 dependencies = [
  "anyhow",
  "assert_cmd",
@@ -1736,6 +1736,7 @@ dependencies = [
  "csv",
  "derive_more",
  "env_logger",
+ "git-version",
  "glob",
  "insta",
  "lalrpop",
@@ -1769,7 +1770,7 @@ dependencies = [
 
 [[package]]
 name = "nickel-wasm-repl"
-version = "0.7.0"
+version = "0.8.0"
 dependencies = [
  "nickel-lang-core",
 ]
@@ -1936,6 +1937,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "pico-args"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315"
+
+[[package]]
 name = "pin-project-lite"
 version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2114,7 +2121,7 @@ dependencies = [
 
 [[package]]
 name = "pyckel"
-version = "1.6.0"
+version = "1.7.0"
 dependencies = [
  "codespan-reporting",
  "nickel-lang-core",
@@ -3010,8 +3017,9 @@ dependencies = [
 
 [[package]]
 name = "topiary-core"
-version = "0.3.0"
-source = "git+https://github.com/tweag/topiary.git?rev=82a94a9f57104b89d4316afaeeab271cc51f7698#82a94a9f57104b89d4316afaeeab271cc51f7698"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b26541394bdbcd5a039deb917b2096a69c6604f733f0d41f534fc6975987040d"
 dependencies = [
  "futures",
  "itertools 0.11.0",
@@ -3028,13 +3036,15 @@ dependencies = [
 
 [[package]]
 name = "topiary-queries"
-version = "0.3.0"
-source = "git+https://github.com/tweag/topiary.git?rev=82a94a9f57104b89d4316afaeeab271cc51f7698#82a94a9f57104b89d4316afaeeab271cc51f7698"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89106b9c504a9e3247b8e40f879a73a922f0d516e1051a6ef739b4cf7d54c8d9"
 
 [[package]]
 name = "topiary-tree-sitter-facade"
-version = "0.3.0"
-source = "git+https://github.com/tweag/topiary.git?rev=82a94a9f57104b89d4316afaeeab271cc51f7698#82a94a9f57104b89d4316afaeeab271cc51f7698"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea7c870d9a844bbba0f55be40eaa89624a9f627c155cd22eea70dd808bd71b3d"
 dependencies = [
  "js-sys",
  "topiary-web-tree-sitter-sys",
@@ -3045,8 +3055,9 @@ dependencies = [
 
 [[package]]
 name = "topiary-web-tree-sitter-sys"
-version = "0.3.0"
-source = "git+https://github.com/tweag/topiary.git?rev=82a94a9f57104b89d4316afaeeab271cc51f7698#82a94a9f57104b89d4316afaeeab271cc51f7698"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc9e35caeeb7f07e97b71ee7ea204c89516e7cc490d1c2ae318eca3ff3c08d46"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -3066,8 +3077,9 @@ dependencies = [
 
 [[package]]
 name = "tree-sitter-nickel"
-version = "0.1.0"
-source = "git+https://github.com/nickel-lang/tree-sitter-nickel?rev=58baf89db8fdae54a84bcf22c80ff10ee3f929ed#58baf89db8fdae54a84bcf22c80ff10ee3f929ed"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "449daa9ac0e2a18d7243eaf21d7299d6683ce6750ca225ebd557412d22d106cf"
 dependencies = [
  "cc",
  "tree-sitter",
diff --git a/pkgs/by-name/ni/nickel/package.nix b/pkgs/by-name/ni/nickel/package.nix
index bd829aa6ba43f..c55cc55cf3ea3 100644
--- a/pkgs/by-name/ni/nickel/package.nix
+++ b/pkgs/by-name/ni/nickel/package.nix
@@ -8,21 +8,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nickel";
-  version = "1.6.0";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "tweag";
     repo = "nickel";
     rev = "refs/tags/${version}";
-    hash = "sha256-AL5YkdITO9CPFYzMGQwHbuFZrMDUvF1yTt2XTotoymM=";
+    hash = "sha256-EwiZg0iyF9EQ0Z65Re5WgeV7xgs/wPtTQ9XA0iEMEIQ=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
-    outputHashes = {
-      "topiary-core-0.3.0" = "sha256-KWfgbVFV2zbCuNNFp9yeSgAa0Cc7cT090KK2J1ynfKg=";
-      "tree-sitter-nickel-0.1.0" = "sha256-WuY6X1mnXdjiy4joIcY8voK2sqICFf0GvudulZ9lwqg=";
-    };
   };
 
   cargoBuildFlags = [ "-p nickel-lang-cli" "-p nickel-lang-lsp" ];
diff --git a/pkgs/by-name/ni/nicotine-plus/package.nix b/pkgs/by-name/ni/nicotine-plus/package.nix
index 10919ee87c04f..44539d8fd407c 100644
--- a/pkgs/by-name/ni/nicotine-plus/package.nix
+++ b/pkgs/by-name/ni/nicotine-plus/package.nix
@@ -41,7 +41,7 @@ python3Packages.buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A graphical client for the SoulSeek peer-to-peer system";
+    description = "Graphical client for the SoulSeek peer-to-peer system";
     longDescription = ''
       Nicotine+ aims to be a pleasant, free and open source (FOSS) alternative
       to the official Soulseek client, providing additional functionality while
diff --git a/pkgs/by-name/ni/nightfox-gtk-theme/package.nix b/pkgs/by-name/ni/nightfox-gtk-theme/package.nix
index 2e19c9ea50e22..84ff857e81684 100644
--- a/pkgs/by-name/ni/nightfox-gtk-theme/package.nix
+++ b/pkgs/by-name/ni/nightfox-gtk-theme/package.nix
@@ -34,7 +34,7 @@ stdenvNoCC.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A GTK theme based on the Nightfox colour palette";
+    description = "GTK theme based on the Nightfox colour palette";
     homepage = "https://github.com/Fausto-Korpsvart/Nightfox-GTK-Theme";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ d3vil0p3r ];
diff --git a/pkgs/by-name/ni/nim_builder/package.nix b/pkgs/by-name/ni/nim_builder/package.nix
index 50fa519b7a927..8466ab8535c93 100644
--- a/pkgs/by-name/ni/nim_builder/package.nix
+++ b/pkgs/by-name/ni/nim_builder/package.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
     install -Dt $out/bin nim_builder
   '';
   meta = {
-    description = "Internal Nixpkgs utility for buildNimPackage.";
+    description = "Internal Nixpkgs utility for buildNimPackage";
     mainProgram = "nim_builder";
     maintainers = [ lib.maintainers.ehmry ];
   };
diff --git a/pkgs/by-name/ni/nim_lk/lock.json b/pkgs/by-name/ni/nim_lk/lock.json
index 88a746065af83..d262cb4e47f7a 100644
--- a/pkgs/by-name/ni/nim_lk/lock.json
+++ b/pkgs/by-name/ni/nim_lk/lock.json
@@ -3,46 +3,37 @@
     {
       "method": "fetchzip",
       "packages": [
-        "atlas"
+        "nimble"
       ],
-      "path": "/nix/store/v015scfifr10ialyimn7xxm0rdg4dha2-source",
-      "rev": "60681b93af4c8914afbd8eae9fc9820ba4d198a0",
-      "sha256": "1kc47w20ipbdh31s1gcblcikzlvlagmmha1qw3by70fc7mgazrxf",
+      "path": "/nix/store/iz0s3zshxhsxkjkv73d7ynmajlmbph7m-source",
+      "rev": "f8bd7b5fa6ea7a583b411b5959b06e6b5eb23667",
+      "sha256": "1p6k00rsncyczbj5m06xx9zc2jrbdylavj3jnl7ybh7sq2wxl439",
       "srcDir": "src",
-      "url": "https://github.com/nim-lang/atlas/archive/60681b93af4c8914afbd8eae9fc9820ba4d198a0.tar.gz"
+      "url": "https://github.com/nim-lang/nimble/archive/f8bd7b5fa6ea7a583b411b5959b06e6b5eb23667.tar.gz"
     },
     {
       "method": "fetchzip",
       "packages": [
-        "bigints"
+        "sat"
       ],
-      "path": "/nix/store/jvrm392g8adfsgf36prgwkbyd7vh5jsw-source",
-      "rev": "86ea14d31eea9275e1408ca34e6bfe9c99989a96",
-      "sha256": "15pcpmnk1bnw3k8769rjzcpg00nahyrypwbxs88jnwr4aczp99j4",
+      "path": "/nix/store/wc1m76bsnnd5965jqzqzq3b3r8xx5ky7-source",
+      "ref": "pr_init",
+      "rev": "d6d992bc2717054cbb99e31df57ab071a4772d35",
+      "sha256": "07sr6zbf7a68qc32561pf98ir60078cakjcg5vd4xr6sdz7gv8j7",
       "srcDir": "src",
-      "url": "https://github.com/ehmry/nim-bigints/archive/86ea14d31eea9275e1408ca34e6bfe9c99989a96.tar.gz"
+      "url": "https://github.com/nim-lang/sat/archive/d6d992bc2717054cbb99e31df57ab071a4772d35.tar.gz"
     },
     {
       "method": "fetchzip",
       "packages": [
-        "npeg"
+        "checksums"
       ],
-      "path": "/nix/store/ffkxmjmigfs7zhhiiqm0iw2c34smyciy-source",
-      "rev": "26d62fdc40feb84c6533956dc11d5ee9ea9b6c09",
-      "sha256": "0xpzifjkfp49w76qmaylan8q181bs45anmp46l4bwr3lkrr7bpwh",
+      "path": "/nix/store/z6799507gzbw46lzbi1i8mwm0nbvrvnx-source",
+      "ref": "v0.1.0",
+      "rev": "7ff0b762332d2591bbeb65df9bb86d52ea44ec01",
+      "sha256": "11612prr2wwbx414ip0zjh1fv638dgfvzxfd6v2f432n0wfwhjhj",
       "srcDir": "src",
-      "url": "https://github.com/zevv/npeg/archive/26d62fdc40feb84c6533956dc11d5ee9ea9b6c09.tar.gz"
-    },
-    {
-      "method": "fetchzip",
-      "packages": [
-        "preserves"
-      ],
-      "path": "/nix/store/6nnn5di5vip1vladlb7z56rbw18d1y7j-source",
-      "rev": "2825bceecf33a15b9b7942db5331a32cbc39b281",
-      "sha256": "145vf46fy3wc52j6vs509fm9bi5lx7c53gskbkpcfbkv82l86dgk",
-      "srcDir": "src",
-      "url": "https://git.syndicate-lang.org/ehmry/preserves-nim/archive/2825bceecf33a15b9b7942db5331a32cbc39b281.tar.gz"
+      "url": "https://github.com/nim-lang/checksums/archive/7ff0b762332d2591bbeb65df9bb86d52ea44ec01.tar.gz"
     }
   ]
 }
diff --git a/pkgs/by-name/ni/nim_lk/package.nix b/pkgs/by-name/ni/nim_lk/package.nix
index 184d1e27745ad..d2dd16a0a3ba1 100644
--- a/pkgs/by-name/ni/nim_lk/package.nix
+++ b/pkgs/by-name/ni/nim_lk/package.nix
@@ -14,13 +14,13 @@ let
 in
 buildNimPackage (finalAttrs: {
   pname = "nim_lk";
-  version = "20240510";
+  version = "20240527";
 
   src = fetchFromSourcehut {
     owner = "~ehmry";
     repo = "nim_lk";
     rev = finalAttrs.version;
-    hash = "sha256-fwoGyYkbGstWG0qw15dOq1gmr3GyIn6ZEBeBmEivHlA=";
+    hash = "sha256-r8K9HRGEgqlFZJPdDeOYienmfzfNOeCdqMhshjr72Ok=";
   };
 
   lockFile = ./lock.json;
diff --git a/pkgs/by-name/ni/nimble/lock.json b/pkgs/by-name/ni/nimble/lock.json
new file mode 100644
index 0000000000000..5fe2cca79da16
--- /dev/null
+++ b/pkgs/by-name/ni/nimble/lock.json
@@ -0,0 +1,26 @@
+{
+  "depends": [
+    {
+      "method": "fetchzip",
+      "packages": [
+        "checksums"
+      ],
+      "path": "/nix/store/z6799507gzbw46lzbi1i8mwm0nbvrvnx-source",
+      "rev": "7ff0b762332d2591bbeb65df9bb86d52ea44ec01",
+      "sha256": "11612prr2wwbx414ip0zjh1fv638dgfvzxfd6v2f432n0wfwhjhj",
+      "srcDir": "src",
+      "url": "https://github.com/nim-lang/checksums/archive/7ff0b762332d2591bbeb65df9bb86d52ea44ec01.tar.gz"
+    },
+    {
+      "method": "fetchzip",
+      "packages": [
+        "sat"
+      ],
+      "path": "/nix/store/lwg9fm34h5xv0dvxij9r5m2y6pn1zsvx-source",
+      "rev": "a53d9d6e0470f78f8ba14652d981e7bcdbcd579f",
+      "sha256": "1dxbc41wbvkpdp6q3qz1r38lpn32447qkkgyh2s12ym6bx4ynni4",
+      "srcDir": "src",
+      "url": "https://github.com/nim-lang/sat/archive/a53d9d6e0470f78f8ba14652d981e7bcdbcd579f.tar.gz"
+    }
+  ]
+}
diff --git a/pkgs/by-name/ni/nimble/package.nix b/pkgs/by-name/ni/nimble/package.nix
index 4e7457a88182b..213f621fd8667 100644
--- a/pkgs/by-name/ni/nimble/package.nix
+++ b/pkgs/by-name/ni/nimble/package.nix
@@ -1,31 +1,43 @@
-{ lib, buildNimPackage, fetchFromGitHub, nim, makeWrapper }:
+{
+  lib,
+  buildNimPackage,
+  fetchFromGitHub,
+  nim,
+  openssl,
+  makeWrapper,
+}:
 
-buildNimPackage (final: prev: {
-  pname = "nimble";
-  version = "0.14.2";
+buildNimPackage (
+  final: prev: {
+    pname = "nimble";
+    version = "0-unstable-2024-05-14";
 
-  requiredNimVersion = 1;
+    src = fetchFromGitHub {
+      owner = "nim-lang";
+      repo = "nimble";
+      rev = "f8bd7b5fa6ea7a583b411b5959b06e6b5eb23667";
+      hash = "sha256-aRDaucD6wOUPtXLIrahvK0vBfurdgFrk+swzqzMA09w=";
+    };
 
-  src = fetchFromGitHub {
-    owner = "nim-lang";
-    repo = "nimble";
-    rev = "v${final.version}";
-    hash = "sha256-8b5yKvEl7c7wA/8cpdaN2CSvawQJzuRce6mULj3z/mI=";
-  };
+    lockFile = ./lock.json;
 
-  nativeBuildInputs = [ makeWrapper ];
+    nativeBuildInputs = [ makeWrapper ];
+    buildInputs = [ openssl ];
 
-  doCheck = false; # it works on their machine
+    nimFlags = [ "--define:git_revision_override=${final.src.rev}" ];
 
-  postInstall = ''
-    wrapProgram $out/bin/nimble \
-      --suffix PATH : ${lib.makeBinPath [ nim ]}
-  '';
+    doCheck = false; # it works on their machine
 
-  meta = {
-    description = "Package manager for the Nim programming language";
-    homepage = "https://github.com/nim-lang/nimble";
-    license = lib.licenses.bsd3;
-    mainProgram = "nimble";
-  };
-})
+    postInstall = ''
+      wrapProgram $out/bin/nimble \
+        --suffix PATH : ${lib.makeBinPath [ nim ]}
+    '';
+
+    meta = {
+      description = "Package manager for the Nim programming language";
+      homepage = "https://github.com/nim-lang/nimble";
+      license = lib.licenses.bsd3;
+      mainProgram = "nimble";
+    };
+  }
+)
diff --git a/pkgs/by-name/ni/nimlangserver/package.nix b/pkgs/by-name/ni/nimlangserver/package.nix
index 634b6831330ce..2a5f7d36e14de 100644
--- a/pkgs/by-name/ni/nimlangserver/package.nix
+++ b/pkgs/by-name/ni/nimlangserver/package.nix
@@ -22,7 +22,7 @@ buildNimPackage (final: prev: {
   meta = with lib;
     final.src.meta
     // {
-      description = "The Nim language server implementation (based on nimsuggest)";
+      description = "Nim language server implementation (based on nimsuggest)";
       homepage = "https://github.com/nim-lang/langserver";
       license = licenses.mit;
       mainProgram = "nimlangserver";
diff --git a/pkgs/by-name/ni/nimlsp/package.nix b/pkgs/by-name/ni/nimlsp/package.nix
index 40e1b0fb9ec2d..0cd648b74790d 100644
--- a/pkgs/by-name/ni/nimlsp/package.nix
+++ b/pkgs/by-name/ni/nimlsp/package.nix
@@ -1,11 +1,9 @@
-{ lib, buildNimPackage, fetchFromGitHub, srcOnly, nim-unwrapped-1 }:
+{ lib, buildNimPackage, fetchFromGitHub, srcOnly, nim-unwrapped-2 }:
 
 buildNimPackage (finalAttrs: {
   pname = "nimlsp";
   version = "0.4.6";
 
-  requiredNimVersion = 1;
-
   src = fetchFromGitHub {
     owner = "PMunch";
     repo = "nimlsp";
@@ -29,7 +27,7 @@ buildNimPackage (finalAttrs: {
 
   nimFlags = [
     "--threads:on"
-    "-d:explicitSourcePath=${srcOnly nim-unwrapped-1}"
+    "-d:explicitSourcePath=${srcOnly nim-unwrapped-2}"
     "-d:tempDir=/tmp"
   ];
 
@@ -41,6 +39,6 @@ buildNimPackage (finalAttrs: {
     description = "Language Server Protocol implementation for Nim";
     homepage = "https://github.com/PMunch/nimlsp";
     license = lib.licenses.mit;
-    maintainers = [ ];
+    maintainers = with lib.maintainers; [ xtrayambak ];
   };
 })
diff --git a/pkgs/development/tools/build-managers/ninja/default.nix b/pkgs/by-name/ni/ninja/package.nix
index 3402bcfca625f..23d279e362d76 100644
--- a/pkgs/development/tools/build-managers/ninja/default.nix
+++ b/pkgs/by-name/ni/ninja/package.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , asciidoc
 , docbook_xml_dtd_45
 , docbook_xsl
@@ -11,17 +10,18 @@
 , re2c
 , buildPackages
 , buildDocs ? true
+, nix-update-script
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "ninja";
-  version = "1.11.1";
+  version = "1.12.1";
 
   src = fetchFromGitHub {
     owner = "ninja-build";
     repo = "ninja";
-    rev = "v${version}";
-    hash = "sha256-LvV/Fi2ARXBkfyA1paCRmLUwCh/rTyz+tGMg2/qEepI=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-RT5u+TDvWxG5EVQEYj931EZyrHUSAqK73OKDAascAwA=";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
@@ -38,15 +38,6 @@ stdenv.mkDerivation rec {
     libxslt.bin
   ];
 
-  patches = lib.optionals stdenv.is32bit [
-    # Otherwise ninja may fail on some files in a larger FS.
-    (fetchpatch {
-      name = "stat64.patch";
-      url = "https://github.com/ninja-build/ninja/commit/7bba11ae704efc84cac5fde5e9be53f653f237d1.diff";
-      hash = "sha256-tINS57xLh1lwnYFWCQs5OudfgtIShaOh5zbmv7w5BnQ=";
-    })
-  ];
-
   postPatch = ''
     # write rebuild args to file after bootstrap
     substituteInPlace configure.py --replace "subprocess.check_call(rebuild_args)" "open('rebuild_args','w').write(rebuild_args[0])"
@@ -91,7 +82,9 @@ stdenv.mkDerivation rec {
 
   setupHook = ./setup-hook.sh;
 
-  meta = with lib; {
+  passthru.updateScript = nix-update-script {};
+
+  meta = {
     description = "Small build system with a focus on speed";
     mainProgram = "ninja";
     longDescription = ''
@@ -101,8 +94,8 @@ stdenv.mkDerivation rec {
       to run builds as fast as possible.
     '';
     homepage = "https://ninja-build.org/";
-    license = licenses.asl20;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ thoughtpolice bjornfor orivej ];
+    license = lib.licenses.asl20;
+    platforms = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ thoughtpolice bjornfor orivej ];
   };
-}
+})
diff --git a/pkgs/development/tools/build-managers/ninja/setup-hook.sh b/pkgs/by-name/ni/ninja/setup-hook.sh
index 7fa5e4675f39b..7fa5e4675f39b 100644
--- a/pkgs/development/tools/build-managers/ninja/setup-hook.sh
+++ b/pkgs/by-name/ni/ninja/setup-hook.sh
diff --git a/pkgs/by-name/ni/niri/package.nix b/pkgs/by-name/ni/niri/package.nix
index baa8fb2761767..8799988a4bed7 100644
--- a/pkgs/by-name/ni/niri/package.nix
+++ b/pkgs/by-name/ni/niri/package.nix
@@ -77,7 +77,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A scrollable-tiling Wayland compositor";
+    description = "Scrollable-tiling Wayland compositor";
     homepage = "https://github.com/YaLTeR/niri";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ iogamaster foo-dogsquared sodiboo ];
diff --git a/pkgs/by-name/ni/nix-direnv/package.nix b/pkgs/by-name/ni/nix-direnv/package.nix
index 74fc9d9c63362..214c603ee2ded 100644
--- a/pkgs/by-name/ni/nix-direnv/package.nix
+++ b/pkgs/by-name/ni/nix-direnv/package.nix
@@ -4,13 +4,13 @@
 # https://github.com/abathur/resholve/issues/107
 resholve.mkDerivation rec {
   pname = "nix-direnv";
-  version = "3.0.4";
+  version = "3.0.5";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "nix-direnv";
     rev = version;
-    hash = "sha256-3Fkat0HWU/hdQKwJYx5KWVzX8sVbGtFTon6G6/F9zFk=";
+    hash = "sha256-imUlc5v/Ow7dgjCjTyEeet+4lNHLeEwfqGQcB4dKcao=";
   };
 
   # skip min version checks which are redundant when built with nix
@@ -56,7 +56,7 @@ resholve.mkDerivation rec {
   };
 
   meta = {
-    description = "A fast, persistent use_nix implementation for direnv";
+    description = "Fast, persistent use_nix implementation for direnv";
     homepage    = "https://github.com/nix-community/nix-direnv";
     license     = lib.licenses.mit;
     platforms   = lib.platforms.unix;
diff --git a/pkgs/by-name/ni/nix-janitor/package.nix b/pkgs/by-name/ni/nix-janitor/package.nix
new file mode 100644
index 0000000000000..d62d8853751a4
--- /dev/null
+++ b/pkgs/by-name/ni/nix-janitor/package.nix
@@ -0,0 +1,43 @@
+{
+  lib,
+  rustPlatform,
+  fetchFromGitHub,
+  installShellFiles,
+  nix-update-script,
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "nix-janitor";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "nobbz";
+    repo = "nix-janitor";
+    rev = "refs/tags/${version}";
+    hash = "sha256-xoVByI17rt2SCY3ULg12S8QsoXGhQWZlOpPpK2mfcPY=";
+  };
+
+  cargoHash = "sha256-QG2hHM4KBSU6+droew2WnOFxWRTpk9griIPMD8MLSbw=";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    for shell in bash fish zsh; do
+      completionFile=janitor.$shell
+      $out/bin/janitor --completions $shell > $completionFile
+      installShellCompletion $completionFile
+    done
+  '';
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    homepage = "https://github.com/nobbz/nix-janitor";
+    changelog = "https://github.com/NobbZ/nix-janitor/blob/${version}/CHANGELOG.md";
+    description = "Tool to clean up old profile generations";
+    mainProgram = "janitor";
+    platforms = lib.platforms.linux;
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.nobbz ];
+  };
+}
diff --git a/pkgs/by-name/ni/nix-lib-nmd/package.nix b/pkgs/by-name/ni/nix-lib-nmd/package.nix
index 6365989a2ae24..2fbfa758056cd 100644
--- a/pkgs/by-name/ni/nix-lib-nmd/package.nix
+++ b/pkgs/by-name/ni/nix-lib-nmd/package.nix
@@ -22,7 +22,7 @@ in stdenv.mkDerivation {
 
   meta = {
     homepage = "https://git.sr.ht/~rycee/nmd";
-    description = "A documentation framework for projects based on NixOS modules";
+    description = "Documentation framework for projects based on NixOS modules";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ rycee ];
   };
diff --git a/pkgs/by-name/ni/nix-lib-nmt/package.nix b/pkgs/by-name/ni/nix-lib-nmt/package.nix
index 7cb6ff1971399..ed792ae2883d9 100644
--- a/pkgs/by-name/ni/nix-lib-nmt/package.nix
+++ b/pkgs/by-name/ni/nix-lib-nmt/package.nix
@@ -22,7 +22,7 @@ in stdenv.mkDerivation {
 
   meta = {
     homepage = "https://git.sr.ht/~rycee/nmt";
-    description = "A basic test framework for projects using the Nixpkgs module system";
+    description = "Basic test framework for projects using the Nixpkgs module system";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ rycee ];
   };
diff --git a/pkgs/by-name/ni/nixfmt-rfc-style/date.txt b/pkgs/by-name/ni/nixfmt-rfc-style/date.txt
index f4f1f2ef867ec..c494f5c70a473 100644
--- a/pkgs/by-name/ni/nixfmt-rfc-style/date.txt
+++ b/pkgs/by-name/ni/nixfmt-rfc-style/date.txt
@@ -1 +1 @@
-2024-03-01
+2024-05-28
diff --git a/pkgs/by-name/ni/nixfmt-rfc-style/generated-package.nix b/pkgs/by-name/ni/nixfmt-rfc-style/generated-package.nix
index 738b3e53c872b..44ae05865fdd5 100644
--- a/pkgs/by-name/ni/nixfmt-rfc-style/generated-package.nix
+++ b/pkgs/by-name/ni/nixfmt-rfc-style/generated-package.nix
@@ -1,27 +1,28 @@
 # This file has been autogenerate with cabal2nix.
 # Update via ./update.sh
 { mkDerivation, base, cmdargs, directory, fetchzip, filepath, lib
-, megaparsec, mtl, parser-combinators, safe-exceptions, scientific
-, text, transformers, unix
+, megaparsec, mtl, parser-combinators, pretty-simple
+, safe-exceptions, scientific, text, transformers, unix
 }:
 mkDerivation {
   pname = "nixfmt";
-  version = "0.5.0";
+  version = "0.6.0";
   src = fetchzip {
-    url = "https://github.com/piegamesde/nixfmt/archive/2b5ee820690bae64cb4003e46917ae43541e3e0b.tar.gz";
-    sha256 = "1i1jbc1q4gd7fpilwy6s3a583yl5l8d8rlmipygj61mpclg9ihqg";
+    url = "https://github.com/nixos/nixfmt/archive/c67a7b65906bd2432730929bd0e4957659c95b8e.tar.gz";
+    sha256 = "03f00vwlla6i3m125389h3xjsl5xm07630ahm4w5gqwq1007y3r2";
   };
   isLibrary = true;
   isExecutable = true;
   libraryHaskellDepends = [
-    base megaparsec mtl parser-combinators scientific text transformers
+    base megaparsec mtl parser-combinators pretty-simple scientific
+    text transformers
   ];
   executableHaskellDepends = [
     base cmdargs directory filepath safe-exceptions text unix
   ];
   jailbreak = true;
-  homepage = "https://github.com/serokell/nixfmt";
-  description = "An opinionated formatter for Nix";
+  homepage = "https://github.com/NixOS/nixfmt";
+  description = "Opinionated formatter for Nix";
   license = lib.licenses.mpl20;
   mainProgram = "nixfmt";
 }
diff --git a/pkgs/by-name/ni/nixfmt-rfc-style/package.nix b/pkgs/by-name/ni/nixfmt-rfc-style/package.nix
index 90e6dbf2e25d0..bf1c093051d57 100644
--- a/pkgs/by-name/ni/nixfmt-rfc-style/package.nix
+++ b/pkgs/by-name/ni/nixfmt-rfc-style/package.nix
@@ -14,13 +14,6 @@ let
 
     passthru.updateScript = ./update.sh;
 
-    patches = [
-      (fetchpatch {
-        url = "https://github.com/serokell/nixfmt/commit/ca9c8975ed671112fdfce94f2e9e2ad3de480c9a.patch";
-        hash = "sha256-UOSAYahSKBsqPMVcQJ3H26Eg2xpPAsNOjYMI6g+WTYU=";
-      })
-    ];
-
     maintainers = lib.teams.formatter.members;
 
     # These tests can be run with the following command.
diff --git a/pkgs/by-name/ni/nixfmt-rfc-style/update.sh b/pkgs/by-name/ni/nixfmt-rfc-style/update.sh
index c70a6e88e7884..9213c73964524 100755
--- a/pkgs/by-name/ni/nixfmt-rfc-style/update.sh
+++ b/pkgs/by-name/ni/nixfmt-rfc-style/update.sh
@@ -13,8 +13,8 @@ derivation_file="${script_dir}/generated-package.nix"
 date_file="${script_dir}/date.txt"
 
 # This is the latest version of nixfmt-rfc-style branch on GitHub.
-new_version=$(curl --silent https://api.github.com/repos/piegamesde/nixfmt/git/refs/heads/rfc101-style | jq '.object.sha' --raw-output)
-new_date=$(curl --silent https://api.github.com/repos/piegamesde/nixfmt/git/commits/"$new_version" | jq '.committer.date' --raw-output)
+new_version=$(curl --silent https://api.github.com/repos/nixos/nixfmt/git/refs/heads/master | jq '.object.sha' --raw-output)
+new_date=$(curl --silent https://api.github.com/repos/nixos/nixfmt/git/commits/"$new_version" | jq '.committer.date' --raw-output)
 
 echo "Updating nixfmt-rfc-style to version $new_date."
 echo "Running cabal2nix and outputting to ${derivation_file}..."
@@ -25,7 +25,7 @@ cat > "$derivation_file" << EOF
 EOF
 
 cabal2nix --jailbreak \
-  "https://github.com/piegamesde/nixfmt/archive/${new_version}.tar.gz" \
+  "https://github.com/nixos/nixfmt/archive/${new_version}.tar.gz" \
   >> "$derivation_file"
 
 date --date="$new_date" -I > "$date_file"
diff --git a/pkgs/by-name/ni/nixos-anywhere/package.nix b/pkgs/by-name/ni/nixos-anywhere/package.nix
index 36ee25429b817..55a7deb1b4424 100644
--- a/pkgs/by-name/ni/nixos-anywhere/package.nix
+++ b/pkgs/by-name/ni/nixos-anywhere/package.nix
@@ -2,7 +2,6 @@
 , fetchFromGitHub
 , openssh
 , gitMinimal
-, rsync
 , nix
 , coreutils
 , curl
@@ -13,6 +12,7 @@
 , lib
 , makeWrapper
 , sshpass
+, gnutar
 }:
 let
   runtimeDeps = [
@@ -25,17 +25,17 @@ let
     findutils
     gnused # needed by ssh-copy-id
     sshpass # used to provide password for ssh-copy-id
-    rsync # used to upload extra-files
+    gnutar # used to upload extra-files
   ];
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "nixos-anywhere";
-  version = "1.2.0";
+  version = "1.3.0";
   src = fetchFromGitHub {
     owner = "numtide";
     repo = "nixos-anywhere";
     rev = finalAttrs.version;
-    hash = "sha256-u3PFJup/XOz2MBhvqCzm94iH6Z4nrE0KmBgT/OnNDqU=";
+    hash = "sha256-AdSrhQhJb9ObCgM1iXnoIBBl+6cjRbuTST4Lt02AP5Q=";
   };
   nativeBuildInputs = [ makeWrapper ];
   installPhase = ''
diff --git a/pkgs/by-name/nl/nls/package.nix b/pkgs/by-name/nl/nls/package.nix
index 136920367da28..0132b35be6884 100644
--- a/pkgs/by-name/nl/nls/package.nix
+++ b/pkgs/by-name/nl/nls/package.nix
@@ -11,7 +11,7 @@ symlinkJoin {
 
   meta = {
     inherit (nickel.meta) homepage changelog license maintainers;
-    description = "A language server for the Nickel programming language";
+    description = "Language server for the Nickel programming language";
     mainProgram = "nls";
     longDescription = ''
       The Nickel Language Server (NLS) is a language server for the Nickel
diff --git a/pkgs/by-name/no/node-hp-scan-to/package.nix b/pkgs/by-name/no/node-hp-scan-to/package.nix
index 93ea3b3a760a9..86498d2b7fd52 100644
--- a/pkgs/by-name/no/node-hp-scan-to/package.nix
+++ b/pkgs/by-name/no/node-hp-scan-to/package.nix
@@ -10,18 +10,18 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "node-hp-scan-to";
-  version = "1.4.2";
+  version = "1.4.3";
 
   src = fetchFromGitHub {
     owner = "manuc66";
     repo = "node-hp-scan-to";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-/aoR2ccDYTkdmcj4k2zf8VJydQufZ2ucqyZ1OH9jRt0=";
+    hash = "sha256-/XUqCL2F1iMYUoCbGgL9YKs+8wIFHvmh2O0LMbDU8yE=";
   };
 
   offlineCache = fetchYarnDeps {
     yarnLock = "${finalAttrs.src}/yarn.lock";
-    hash = "sha256-Mhlw/3js35TOVDADsPScE9kfv9rmF+u1LzDmKkzunM0=";
+    hash = "sha256-pxeYumHuomOFyCi8XhYTYQNcsGOUvjOg36bFD0yhdLk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/no/nodeinfo/package.nix b/pkgs/by-name/no/nodeinfo/package.nix
index 2027ce8035103..5842433e2ef0f 100644
--- a/pkgs/by-name/no/nodeinfo/package.nix
+++ b/pkgs/by-name/no/nodeinfo/package.nix
@@ -24,7 +24,7 @@ buildGoModule rec {
 
   meta = with lib; {
     mainProgram = "nodeinfo";
-    description = "A command line tool to query nodeinfo based on a given domain";
+    description = "Command line tool to query nodeinfo based on a given domain";
     homepage = "https://codeberg.org/thefederationinfo/nodeinfo-go";
     changelog = "https://codeberg.org/thefederationinfo/nodeinfo-go/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/by-name/no/nofi/package.nix b/pkgs/by-name/no/nofi/package.nix
index 8418a30e65414..688c8c397d42b 100644
--- a/pkgs/by-name/no/nofi/package.nix
+++ b/pkgs/by-name/no/nofi/package.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ dbus ];
 
   meta = with lib; {
-    description = "An interruption-free notification system for Linux";
+    description = "Interruption-free notification system for Linux";
     homepage = "https://github.com/ellsclytn/nofi/";
     changelog = "https://github.com/ellsclytn/nofi/raw/v${version}/CHANGELOG.md";
     license = [ licenses.asl20 /* or */ licenses.mit ];
diff --git a/pkgs/by-name/no/nom/package.nix b/pkgs/by-name/no/nom/package.nix
index 57291810870df..deeb3df4291bd 100644
--- a/pkgs/by-name/no/nom/package.nix
+++ b/pkgs/by-name/no/nom/package.nix
@@ -5,16 +5,16 @@
 }:
 buildGoModule rec {
   pname = "nom";
-  version = "2.2.3";
+  version = "2.5.1";
 
   src = fetchFromGitHub {
     owner = "guyfedwards";
     repo = "nom";
     rev = "v${version}";
-    hash = "sha256-W0HDoQURZxTvMyFfRGOu8gcZJihtvXvrEaObmi/CAk0=";
+    hash = "sha256-kIm0q4/D80skFjlj2ABq4d2PKnATDt53x4fLU6kmA9U=";
   };
 
-  vendorHash = "sha256-wWdsLU656wBAUmnVw21wo+a/OLmyhZ2Bq0j8S190XQs=";
+  vendorHash = "sha256-xolhwdWRjYZMgwI4jq0fGzvxnNjx6EplvZC7XMvBw+M=";
 
   meta = with lib; {
     homepage = "https://github.com/guyfedwards/nom";
diff --git a/pkgs/by-name/no/nomacs/package.nix b/pkgs/by-name/no/nomacs/package.nix
index 138e4ead7fcde..a12d5db94b869 100644
--- a/pkgs/by-name/no/nomacs/package.nix
+++ b/pkgs/by-name/no/nomacs/package.nix
@@ -38,7 +38,10 @@ stdenv.mkDerivation (finalAttrs: {
     exiv2
     libraw
     libtiff
-    opencv4
+    # Once python stops relying on `propagatedBuildInputs` (https://github.com/NixOS/nixpkgs/issues/272178), deprecate `cxxdev` and switch to `dev`;
+    # note `dev` is selected by `mkDerivation` automatically, so one should omit `getOutput "dev"`;
+    # see: https://github.com/NixOS/nixpkgs/pull/314186#issuecomment-2129974277
+    (lib.getOutput "cxxdev" opencv4)
   ] ++ (with libsForQt5; [
     qtbase
     qtimageformats
diff --git a/pkgs/by-name/no/nomnatong/package.nix b/pkgs/by-name/no/nomnatong/package.nix
index e17d9c7f0c361..5f2b3f69b7196 100644
--- a/pkgs/by-name/no/nomnatong/package.nix
+++ b/pkgs/by-name/no/nomnatong/package.nix
@@ -46,7 +46,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "http://nomfoundation.org/nom-tools/Nom-Font";
-    description = "The Hán-Nôm Coded Character Set and Nom Na Tong Regular Reference Font";
+    description = "Hán-Nôm Coded Character Set and Nom Na Tong Regular Reference Font";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ eclairevoyant ];
     platforms = lib.platforms.all;
diff --git a/pkgs/by-name/no/normaliz/package.nix b/pkgs/by-name/no/normaliz/package.nix
index 69755e56b8fa7..bb090ef755cd2 100644
--- a/pkgs/by-name/no/normaliz/package.nix
+++ b/pkgs/by-name/no/normaliz/package.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "normaliz";
-  version = "3.10.2";
+  version = "3.10.3";
 
   src = fetchFromGitHub {
     owner = "normaliz";
     repo = "normaliz";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-Q4OktVvFobP25fYggIqBGtSJu2HsYz9Tm+QbEAz0fMg=";
+    hash = "sha256-9jN3EbYfWmir+pa4XuJpeT7CnQdhVU9pP8G11npIG00=";
   };
 
   buildInputs = [
@@ -34,7 +34,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://www.normaliz.uni-osnabrueck.de/";
-    description = "An open source tool for computations in affine monoids, vector configurations, lattice polytopes, and rational cones";
+    description = "Open source tool for computations in affine monoids, vector configurations, lattice polytopes, and rational cones";
     maintainers = with maintainers; [ yannickulrich ];
     platforms = with platforms; unix ++ windows;
     license = licenses.gpl3Plus;
diff --git a/pkgs/by-name/no/normcap/package.nix b/pkgs/by-name/no/normcap/package.nix
index 98fb6f27e117a..a7c349a7a3566 100644
--- a/pkgs/by-name/no/normcap/package.nix
+++ b/pkgs/by-name/no/normcap/package.nix
@@ -25,7 +25,7 @@ in
 
 ps.buildPythonApplication rec {
   pname = "normcap";
-  version = "0.5.7";
+  version = "0.5.8";
   format = "pyproject";
 
   disabled = ps.pythonOlder "3.9";
@@ -34,7 +34,7 @@ ps.buildPythonApplication rec {
     owner = "dynobo";
     repo = "normcap";
     rev = "refs/tags/v${version}";
-    hash = "sha256-JeecX7rxM3T2WqGFwANI5+HQFWCLLA8ESHy8mEKYUmc=";
+    hash = "sha256-iMlW8oEt4OSipJaQ2XzBZeBVqiZP/C1sM0f5LYjv7/A=";
   };
 
   postPatch = ''
diff --git a/pkgs/by-name/no/novelwriter/package.nix b/pkgs/by-name/no/novelwriter/package.nix
new file mode 100644
index 0000000000000..7f578f54a4421
--- /dev/null
+++ b/pkgs/by-name/no/novelwriter/package.nix
@@ -0,0 +1,73 @@
+{
+  lib,
+  stdenv,
+  python3,
+  fetchFromGitHub,
+  qt5,
+  nix-update-script,
+}:
+let
+  version = "2.4.4";
+in
+python3.pkgs.buildPythonApplication {
+  pname = "novelwriter";
+  inherit version;
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "vkbo";
+    repo = "novelWriter";
+    rev = "v${version}";
+    hash = "sha256-vYvrSRQTp/8jcCQIL6HgxdSJwogiPJKfVO+9hhK6emc=";
+  };
+
+  nativeBuildInputs = [ qt5.wrapQtAppsHook ];
+
+  build-system = with python3.pkgs; [ setuptools ];
+
+  dependencies = with python3.pkgs; [
+    pyqt5
+    pyenchant
+    qt5.qtbase
+    qt5.qtwayland
+  ];
+
+  preBuild = ''
+    export QT_QPA_PLATFORM_PLUGIN_PATH=${qt5.qtbase.bin}/lib/qt-${qt5.qtbase.version}/plugins/platforms
+  '';
+
+  postInstall = lib.optionalString stdenv.isLinux ''
+    mkdir -p $out/share/{icons,applications,pixmaps,mime/packages}
+
+    cp -r setup/data/hicolor $out/share/icons
+    cp setup/data/novelwriter.desktop $out/share/applications
+    cp setup/data/novelwriter.png $out/share/pixmaps
+    cp setup/data/x-novelwriter-project.xml $out/share/mime/packages
+  '';
+
+  dontWrapQtApps = true;
+
+  postFixup = ''
+    wrapQtApp $out/bin/novelwriter
+  '';
+
+  passthru.updateScript = nix-update-script {
+    # Stable releases only
+    extraArgs = [
+      "--version-regex"
+      "^v([0-9.]+)$"
+    ];
+  };
+
+  meta = {
+    description = "Open source plain text editor designed for writing novels";
+    homepage = "https://novelwriter.io";
+    changelog = "https://github.com/vkbo/novelWriter/blob/main/CHANGELOG.md";
+    license = with lib.licenses; [ gpl3 ];
+    maintainers = with lib.maintainers; [ pluiedev ];
+    mainProgram = "novelwriter";
+
+    platforms = with lib.platforms; unix ++ windows;
+    broken = stdenv.isDarwin; # TODO awaiting build instructions for Darwin
+  };
+}
diff --git a/pkgs/by-name/np/np/package.nix b/pkgs/by-name/np/np/package.nix
index f8d964b998352..5d3d18857e519 100644
--- a/pkgs/by-name/np/np/package.nix
+++ b/pkgs/by-name/np/np/package.nix
@@ -22,7 +22,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "A tool to parse, deduplicate, and query multiple port scans";
+    description = "Tool to parse, deduplicate, and query multiple port scans";
     homepage = "https://github.com/leesoh/np";
     changelog = "https://github.com/leesoh/np/releases/tag/v${version}";
     license = licenses.agpl3Only;
diff --git a/pkgs/by-name/nr/nrf-udev/package.nix b/pkgs/by-name/nr/nrf-udev/package.nix
new file mode 100644
index 0000000000000..848199811c086
--- /dev/null
+++ b/pkgs/by-name/nr/nrf-udev/package.nix
@@ -0,0 +1,40 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, gitUpdater
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "nrf-udev";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "NordicSemiconductor";
+    repo = "nrf-udev";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-bEIAsz9ZwX6RTzhv5/waFZ5a3KlnwX4kQs29+475zN0=";
+  };
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out
+    cp -r nrf-udev_*/lib $out
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = gitUpdater { rev-prefix = "v"; };
+
+  meta = with lib; {
+    description = "Udev rules for nRF (Nordic Semiconductor) development kits";
+    homepage = "https://github.com/NordicSemiconductor/nrf-udev";
+    changelog = "https://github.com/NordicSemiconductor/nrf-udev/releases/tag/${finalAttrs.src.rev}";
+    license = licenses.unfree;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ h7x4 ];
+  };
+})
diff --git a/pkgs/by-name/nr/nrr/package.nix b/pkgs/by-name/nr/nrr/package.nix
index 7d43400dba3e9..c0cd511cdc10c 100644
--- a/pkgs/by-name/nr/nrr/package.nix
+++ b/pkgs/by-name/nr/nrr/package.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nrr";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "ryanccn";
     repo = "nrr";
     rev = "v${version}";
-    hash = "sha256-wof/KmoHiBkcn2aTh+M6bNH/B6Le3H6hnT8BzUCs0Pw=";
+    hash = "sha256-jC+jyg97ifn2T6o0K2KEELGbko5eBIo9ZFLw9ly9lyE=";
   };
 
-  cargoHash = "sha256-BtYZNZxFjgY/BFd1kwGyy/F1iRezSDxoPHF4exrNzuk=";
+  cargoHash = "sha256-byDFHxXqXd14/ql1FGj/ySn7zrNgSGo5RBGJrHIRDC4=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.CoreFoundation
diff --git a/pkgs/by-name/nt/ntfs2btrfs/package.nix b/pkgs/by-name/nt/ntfs2btrfs/package.nix
index fc16e67f850ad..f3f5e00f9f06c 100644
--- a/pkgs/by-name/nt/ntfs2btrfs/package.nix
+++ b/pkgs/by-name/nt/ntfs2btrfs/package.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ fmt lzo zlib zstd ];
 
   meta = {
-    description = "A CLI tool which does in-place conversion of Microsoft's NTFS filesystem to the open-source filesystem Btrfs";
+    description = "CLI tool which does in-place conversion of Microsoft's NTFS filesystem to the open-source filesystem Btrfs";
     homepage = "https://github.com/maharmstone/ntfs2btrfs";
     license = with lib.licenses; [ gpl2Only ];
     maintainers = with lib.maintainers; [ j1nxie ];
diff --git a/pkgs/by-name/nu/nuclei-templates/package.nix b/pkgs/by-name/nu/nuclei-templates/package.nix
index 90eb9d35d25ec..98ccc3f451a87 100644
--- a/pkgs/by-name/nu/nuclei-templates/package.nix
+++ b/pkgs/by-name/nu/nuclei-templates/package.nix
@@ -6,13 +6,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "nuclei-templates";
-  version = "9.8.6";
+  version = "9.8.9";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "nuclei-templates";
     rev = "refs/tags/v${version}";
-    hash = "sha256-3hJfWSBciJ/UutVBIGisptcxmtWfvSfTbx55cyWxs4k=";
+    hash = "sha256-BdlS0gBeGI+5hEgUvkdJPEuZhXpA7Spd2wJ2PtmCkpM=";
   };
 
   installPhase = ''
diff --git a/pkgs/by-name/nu/nucleiparser/package.nix b/pkgs/by-name/nu/nucleiparser/package.nix
index 58ff98d1a9f1a..d0b5fa1ccf34f 100644
--- a/pkgs/by-name/nu/nucleiparser/package.nix
+++ b/pkgs/by-name/nu/nucleiparser/package.nix
@@ -28,7 +28,7 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   meta = with lib; {
-    description = "A Nuclei output parser for CLI";
+    description = "Nuclei output parser for CLI";
     homepage = "https://github.com/sinkmanu/nucleiparser";
     changelog = "https://github.com/Sinkmanu/nucleiparser/releases/tag/${version}";
     license = licenses.gpl3Only;
diff --git a/pkgs/by-name/nu/nuget/package.nix b/pkgs/by-name/nu/nuget/package.nix
index 664dd7b4e390a..dd0af4ab22441 100644
--- a/pkgs/by-name/nu/nuget/package.nix
+++ b/pkgs/by-name/nu/nuget/package.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation (attrs: {
   '';
 
   meta = with lib; {
-    description = "A package manager for the .NET platform";
+    description = "Package manager for the .NET platform";
     mainProgram = "nuget";
     homepage = "https://www.mono-project.com/";
     longDescription = ''
diff --git a/pkgs/by-name/nu/nulloy/package.nix b/pkgs/by-name/nu/nulloy/package.nix
index 57ff0eb60ff05..fbc8d093635fe 100644
--- a/pkgs/by-name/nu/nulloy/package.nix
+++ b/pkgs/by-name/nu/nulloy/package.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nulloy";
-  version = "0.9.8.7";
+  version = "0.9.9";
 
   src = fetchFromGitHub {
     owner = "nulloy";
     repo = "nulloy";
     rev = version;
-    hash = "sha256-s8DzL7pp3hmD9k8pVqmk7WGq3zZ1tLF9C+jxcRtJOXA=";
+    hash = "sha256-vFg789vBV7ks+4YiWWl3u0/kQjzpAiX8dMfXU0hynDM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/nu/numbat/package.nix b/pkgs/by-name/nu/numbat/package.nix
index 26e0c6f61d5cc..f9dcdb5031bde 100644
--- a/pkgs/by-name/nu/numbat/package.nix
+++ b/pkgs/by-name/nu/numbat/package.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "numbat";
-  version = "1.11.0";
+  version = "1.12.0";
 
   src = fetchFromGitHub {
     owner = "sharkdp";
     repo = "numbat";
     rev = "v${version}";
-    hash = "sha256-/XUDtyOk//J4S9NoRP/s5s6URkdzePhW7UQ4FxDgmhs=";
+    hash = "sha256-MYoNziQiyppftLPNM8cqEuNwUA4KCmtotQqDhgyef1E=";
   };
 
-  cargoHash = "sha256-uM4LmD78ZHAzx5purTO+MUstaSrR+j2LuSDUBI2tl3s=";
+  cargoHash = "sha256-t6vxJ0UIQJILCGv4PO5V4/QF5de/wtMQDkb8gPtE70E=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Security
diff --git a/pkgs/by-name/nu/numi/package.nix b/pkgs/by-name/nu/numi/package.nix
new file mode 100644
index 0000000000000..527ecd7c5d2c8
--- /dev/null
+++ b/pkgs/by-name/nu/numi/package.nix
@@ -0,0 +1,41 @@
+{
+  lib,
+  stdenv,
+  fetchurl,
+  undmg,
+  nix-update-script,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "numi";
+  version = "3.32.721";
+
+  src = fetchurl {
+    url = "https://s3.numi.app/updates/${finalAttrs.version}/Numi.dmg";
+    hash = "sha256-IbX4nsrPqwOSlYdNJLeaRQwIDVJrzfMXFqRqixHd2zA=";
+  };
+
+  nativeBuildInputs = [ undmg ];
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p "$out/Applications"
+    cp -R *.app "$out/Applications"
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "Beautiful calculator app for macOS";
+    homepage = "https://numi.app/";
+    license = lib.licenses.unfree;
+    maintainers = with lib.maintainers; [ donteatoreo ];
+    platforms = lib.platforms.darwin;
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+  };
+})
diff --git a/pkgs/by-name/nu/nuv/package.nix b/pkgs/by-name/nu/nuv/package.nix
new file mode 100644
index 0000000000000..30ca0bfecfee4
--- /dev/null
+++ b/pkgs/by-name/nu/nuv/package.nix
@@ -0,0 +1,75 @@
+{ lib
+, stdenv
+, symlinkJoin
+, callPackage
+, fetchFromGitHub
+, fetchurl
+, buildGoModule
+, makeWrapper
+, breakpointHook
+, jq
+, curl
+, kubectl
+, eksctl
+, kind
+, k3sup
+, coreutils
+}:
+
+let
+  branch = "3.0.0";
+  version = "3.0.1-beta.2405292059";
+  pname = "nuv";
+in
+buildGoModule {
+  inherit pname version;
+
+  src = fetchFromGitHub {
+    owner = "nuvolaris";
+    repo = "nuv";
+    rev = version;
+    hash = "sha256-MdnBvlA4S2Mi/bcbE+O02x+wvlIrsK1Zc0dySz4FB/w=";
+  };
+
+  subPackages = [ "." ];
+  vendorHash = "sha256-JkQbQ2NEaumXbAfsv0fNiQf/EwMs3SDLHvu7c/bU7fU=";
+
+  nativeBuildInputs = [ makeWrapper jq curl breakpointHook ];
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X main.NuvVersion=${version}"
+    "-X main.NuvBranch=${branch}"
+  ];
+
+  # false because tests require some modifications inside nix-env
+  doCheck = false;
+
+  postInstall = let
+    nuv-bin = symlinkJoin {
+      name = "nuv-bin";
+      paths = [
+        coreutils
+        kubectl
+        eksctl
+        kind
+        k3sup
+      ];
+    };
+  in ''
+    wrapProgram $out/bin/nuv --set NUV_BIN "${nuv-bin}/bin"
+  '';
+
+  passthru.tests = {
+    simple = callPackage ./tests.nix { inherit version; };
+  };
+
+  meta = {
+    homepage = "https://nuvolaris.io/";
+    description = "A CLI tool for running tasks using the Nuvolaris serverless engine";
+    license = lib.licenses.asl20;
+    mainProgram = "nuv";
+    maintainers = with lib.maintainers; [ msciabarra d4rkstar ];
+  };
+}
diff --git a/pkgs/by-name/nu/nuv/tests.nix b/pkgs/by-name/nu/nuv/tests.nix
new file mode 100644
index 0000000000000..4e531728e8ff4
--- /dev/null
+++ b/pkgs/by-name/nu/nuv/tests.nix
@@ -0,0 +1,17 @@
+{ runCommand, nuv, version }:
+
+runCommand "nuv-test-run"
+{
+  nativeBuildInputs = [ nuv ];
+} ''
+  export TMP_BASE=$(mktemp -d /tmp/.nuv-XXXXX)
+  export HOME=$TMP_BASE
+  export NUV_REPO=""
+  export NUV_ROOT=$TMP_BASE/.nuv/3.0.0/olaris
+  rm -rf $TMP_BASE/.nuv && \
+    mkdir -p $TMP_BASE/.nuv/3.0.0/olaris && \
+    mkdir $TMP_BASE/.nuv/tmp
+  V=$(nuv -version 2>/dev/null)
+  diff -U3 --color=auto <(echo "$V") <(echo "${version}")
+  touch $out
+''
diff --git a/pkgs/by-name/nv/nvidia-texture-tools/package.nix b/pkgs/by-name/nv/nvidia-texture-tools/package.nix
index 0caa6277b5a9a..3f2bd5ad36a35 100644
--- a/pkgs/by-name/nv/nvidia-texture-tools/package.nix
+++ b/pkgs/by-name/nv/nvidia-texture-tools/package.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A set of cuda-enabled texture tools and compressors";
+    description = "Set of cuda-enabled texture tools and compressors";
     homepage = "https://github.com/castano/nvidia-texture-tools";
     license = licenses.mit;
     maintainers = with maintainers; [ wegank ];
diff --git a/pkgs/by-name/nw/nwg-drawer/package.nix b/pkgs/by-name/nw/nwg-drawer/package.nix
index 647ca14b3c2b7..000d86b4baf4d 100644
--- a/pkgs/by-name/nw/nwg-drawer/package.nix
+++ b/pkgs/by-name/nw/nwg-drawer/package.nix
@@ -12,16 +12,16 @@
 
 let
   pname = "nwg-drawer";
-  version = "0.4.7";
+  version = "0.4.8";
 
   src = fetchFromGitHub {
     owner = "nwg-piotr";
     repo = "nwg-drawer";
     rev = "v${version}";
-    hash = "sha256-rBb2ArjllCBO2+9hx3f/c+uUQD1nCZzzfQGz1Wovy/0=";
+    hash = "sha256-ZfWl9DfU8h300WbvFNOCs7QGp11NB49ShPRxY5hpNFE=";
   };
 
-  vendorHash = "sha256-L8gdJd5cPfQrcSXLxFx6BAVWOXC8HRuk5fFQ7MsKpIc=";
+  vendorHash = "sha256-J7r3YyfV5lRZbjKo7ZNHQrOqR1GNbUB7GxRMlXuuw/c=";
 in
 buildGoModule {
   inherit pname version src vendorHash;
diff --git a/pkgs/by-name/nw/nwg-hello/package.nix b/pkgs/by-name/nw/nwg-hello/package.nix
index 8efe84411f501..004979ced17bd 100644
--- a/pkgs/by-name/nw/nwg-hello/package.nix
+++ b/pkgs/by-name/nw/nwg-hello/package.nix
@@ -9,13 +9,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "nwg-hello";
-  version = "0.1.10";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "nwg-piotr";
     repo = "nwg-hello";
     rev = "refs/tags/v${version}";
-    hash = "sha256-naYouinDYgdGwySVxdEOZpNTK0vwnIyUKTkPgYaneew=";
+    hash = "sha256-WKDj68hQDPNsqyDG9kB1SklRIl/BSfVl7ebjVKA+33c=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/nwg-panel/default.nix b/pkgs/by-name/nw/nwg-panel/package.nix
index c7091b00c7dc5..e37539b12cea3 100644
--- a/pkgs/applications/misc/nwg-panel/default.nix
+++ b/pkgs/by-name/nw/nwg-panel/package.nix
@@ -16,13 +16,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "nwg-panel";
-  version = "0.9.32";
+  version = "0.9.34";
 
   src = fetchFromGitHub {
     owner = "nwg-piotr";
     repo = "nwg-panel";
     rev = "refs/tags/v${version}";
-    hash = "sha256-7UROYXmDDWW/NFmKy3h1PfkQGB74DogcgTQXGXojY4U=";
+    hash = "sha256-Mn3HXm6hPKxvf98do177dCN+RJgRc02AQ1ILjkZwBVc=";
   };
 
   # No tests
diff --git a/pkgs/by-name/nx/nxengine-evo/package.nix b/pkgs/by-name/nx/nxengine-evo/package.nix
index cb4c480137fe3..79589e2f32816 100644
--- a/pkgs/by-name/nx/nxengine-evo/package.nix
+++ b/pkgs/by-name/nx/nxengine-evo/package.nix
@@ -80,7 +80,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/nxengine/nxengine-evo";
-    description = "A complete open-source clone/rewrite of the masterpiece jump-and-run platformer Doukutsu Monogatari (also known as Cave Story)";
+    description = "Complete open-source clone/rewrite of the masterpiece jump-and-run platformer Doukutsu Monogatari (also known as Cave Story)";
     license = with lib.licenses; [
       gpl3Plus
     ];
diff --git a/pkgs/by-name/oc/ocis-bin/package.nix b/pkgs/by-name/oc/ocis-bin/package.nix
index a9f365772887a..f64625b7a5ee5 100644
--- a/pkgs/by-name/oc/ocis-bin/package.nix
+++ b/pkgs/by-name/oc/ocis-bin/package.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "ocis-bin";
-  version = "5.0.1";
+  version = "5.0.5";
   system =
     if stdenv.isLinux && stdenv.isx86_64 then
       "linux-amd64"
@@ -21,9 +21,9 @@ stdenv.mkDerivation (finalAttrs: {
 
     hash =
       if stdenv.isLinux && stdenv.isAarch64 then
-        "sha256-8AEXuwTodhqF0LF1duYItntgp9mxoIdHChbtAnnnaQg="
+        "sha256-OdtT9NOhh0Fkk+8CDic0NWWbGflk3FcuKB60OycJU5E="
       else if stdenv.isLinux && stdenv.isx86_64 then
-        "sha256-Fz0ee0Lu0CL3xJbsp1CCl0rsN/p48BdOj8oVOf0QSh4="
+        "sha256-YAIhtHv/cO4yFpkWoRNMf6t4+ifMtGPTcYu84ZMvfD4="
       else
         builtins.throw "Unsupported platform, please contact Nixpkgs maintainers for ocis package";
   };
diff --git a/pkgs/by-name/od/odoo/package.nix b/pkgs/by-name/od/odoo/package.nix
new file mode 100644
index 0000000000000..f2239bd5d59e3
--- /dev/null
+++ b/pkgs/by-name/od/odoo/package.nix
@@ -0,0 +1,111 @@
+{ stdenv
+, lib
+, fetchgit
+, fetchzip
+, python310
+, rtlcss
+, wkhtmltopdf
+, nixosTests
+, odoo_version ? "17.0"
+, odoo_release ? "20240610"
+}:
+
+let
+  python = python310.override {
+    packageOverrides = final: prev: {
+      # requirements.txt fixes docutils at 0.17; the default 0.21.1 tested throws exceptions
+      docutils-0_17 = prev.docutils.overridePythonAttrs (old: rec {
+        version = "0.17";
+        src = fetchgit {
+          url = "git://repo.or.cz/docutils.git";
+          rev = "docutils-${version}";
+          hash = "sha256-O/9q/Dg1DBIxKdNBOhDV16yy5ez0QANJYMjeovDoWX8=";
+        };
+        buildInputs = with prev; [setuptools];
+      });
+    };
+  };
+in python.pkgs.buildPythonApplication rec {
+  pname = "odoo";
+  version = "${odoo_version}.${odoo_release}";
+
+  format = "setuptools";
+
+  src = fetchzip {
+    # find latest version on https://nightly.odoo.com/${odoo_version}/nightly/src
+    url = "https://nightly.odoo.com/${odoo_version}/nightly/src/odoo_${version}.zip";
+    name = "${pname}-${version}";
+    hash = "sha256-blibGJyaz+MxMazOXhPbGBAJWZoGubirwSnjVYyLBJs="; # odoo
+  };
+
+  # needs some investigation
+  doCheck = false;
+
+  makeWrapperArgs = [
+    "--prefix" "PATH" ":" "${lib.makeBinPath [ wkhtmltopdf rtlcss ]}"
+  ];
+
+  propagatedBuildInputs = with python.pkgs; [
+    babel
+    chardet
+    cryptography
+    decorator
+    docutils-0_17  # sphinx has a docutils requirement >= 18
+    ebaysdk
+    freezegun
+    gevent
+    greenlet
+    idna
+    jinja2
+    libsass
+    lxml
+    markupsafe
+    num2words
+    ofxparse
+    passlib
+    pillow
+    polib
+    psutil
+    psycopg2
+    pydot
+    pyopenssl
+    pypdf2
+    pyserial
+    python-dateutil
+    python-ldap
+    python-stdnum
+    pytz
+    pyusb
+    qrcode
+    reportlab
+    requests
+    rjsmin
+    urllib3
+    vobject
+    werkzeug
+    xlrd
+    xlsxwriter
+    xlwt
+    zeep
+
+    setuptools
+    mock
+  ];
+
+  # takes 5+ minutes and there are not files to strip
+  dontStrip = true;
+
+  passthru = {
+    updateScript = ./update.sh;
+    tests = {
+      inherit (nixosTests) odoo;
+    };
+  };
+
+  meta = with lib; {
+    description = "Open Source ERP and CRM";
+    homepage = "https://www.odoo.com/";
+    license = licenses.lgpl3Only;
+    maintainers = with maintainers; [ mkg20001 siriobalmelli ];
+  };
+}
diff --git a/pkgs/by-name/od/odoo/update.sh b/pkgs/by-name/od/odoo/update.sh
new file mode 100755
index 0000000000000..e9c50ccb50815
--- /dev/null
+++ b/pkgs/by-name/od/odoo/update.sh
@@ -0,0 +1,26 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gnused nix coreutils nix-prefetch
+
+set -euo pipefail
+
+VERSION="17.0" # must be incremented manually
+
+RELEASE="$(
+    curl "https://nightly.odoo.com/$VERSION/nightly/src/" |
+        sed -nE 's/.*odoo_'"$VERSION"'.(20[0-9]{6}).tar.gz.*/\1/p' |
+        tail -n 1
+)"
+
+latestVersion="$VERSION.$RELEASE"
+currentVersion=$(nix-instantiate --eval -E "with import ./. {}; odoo.version or (lib.getVersion odoo)" | tr -d '"')
+
+if [[ "$currentVersion" == "$latestVersion" ]]; then
+    echo "odoo is up-to-date: $currentVersion"
+    exit 0
+fi
+
+cd "$(dirname "${BASH_SOURCE[0]}")"
+
+sed -ri "s| hash.+ # odoo| hash = \"$(nix-prefetch -q fetchzip --url "https://nightly.odoo.com/${VERSION}/nightly/src/odoo_${latestVersion}.zip")\"; # odoo|g" package.nix
+sed -ri "s|, odoo_version \? .+|, odoo_version ? \"$VERSION\"|" package.nix
+sed -ri "s|, odoo_release \? .+|, odoo_release ? \"$RELEASE\"|" package.nix
diff --git a/pkgs/applications/finance/odoo/odoo15.nix b/pkgs/by-name/od/odoo15/package.nix
index a3255c4aa101c..a3255c4aa101c 100644
--- a/pkgs/applications/finance/odoo/odoo15.nix
+++ b/pkgs/by-name/od/odoo15/package.nix
diff --git a/pkgs/applications/finance/odoo/default.nix b/pkgs/by-name/od/odoo16/package.nix
index c10e0d43686f0..6e68228d73479 100644
--- a/pkgs/applications/finance/odoo/default.nix
+++ b/pkgs/by-name/od/odoo16/package.nix
@@ -1,6 +1,5 @@
 { stdenv
 , lib
-, fetchFromGitHub
 , fetchzip
 , python310
 , rtlcss
@@ -24,6 +23,9 @@ let
           inherit version;
           hash = "sha256-K4wORHtLnbzIXdl7butNy69si2w74L1lTiVVPgohV9g=";
         };
+        disabledTests = old.disabledTests ++ [
+          "test_response_body"
+        ];
       });
     };
   };
@@ -100,7 +102,6 @@ in python.pkgs.buildPythonApplication rec {
   dontStrip = true;
 
   passthru = {
-    updateScript = ./update.sh;
     tests = {
       inherit (nixosTests) odoo;
     };
diff --git a/pkgs/by-name/oe/oelint-adv/package.nix b/pkgs/by-name/oe/oelint-adv/package.nix
index cf15799029644..5548ac8187669 100644
--- a/pkgs/by-name/oe/oelint-adv/package.nix
+++ b/pkgs/by-name/oe/oelint-adv/package.nix
@@ -6,13 +6,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "oelint-adv";
-  version = "5.3.2";
+  version = "5.5.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit version;
     pname = "oelint_adv";
-    hash = "sha256-9FLoQxh9HNWmZguczfC3CkXIt7oMfCFhfen2y+Tfac4=";
+    hash = "sha256-9cyYBPDYbhDVaKNLAm1LjB5/UfnYkAuT46XI0JaHg3I=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/by-name/of/offpunk/package.nix b/pkgs/by-name/of/offpunk/package.nix
index 935d4c0a61403..db3c61b14498e 100644
--- a/pkgs/by-name/of/offpunk/package.nix
+++ b/pkgs/by-name/of/offpunk/package.nix
@@ -54,7 +54,7 @@ python3Packages.buildPythonApplication rec {
   passthru.tests.version = testers.testVersion { package = offpunk; };
 
   meta = {
-    description = "A command-line and offline-first smolnet browser/feed reader";
+    description = "Command-line and offline-first smolnet browser/feed reader";
     homepage = src.meta.homepage;
     license = lib.licenses.agpl3Plus;
     mainProgram = "offpunk";
diff --git a/pkgs/by-name/oh/oh-my-fish/package.nix b/pkgs/by-name/oh/oh-my-fish/package.nix
index ff6d0a69b321b..60448748c320c 100644
--- a/pkgs/by-name/oh/oh-my-fish/package.nix
+++ b/pkgs/by-name/oh/oh-my-fish/package.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/oh-my-fish/oh-my-fish";
-    description = "The Fish Shell Framework";
+    description = "Fish Shell Framework";
     longDescription = ''
       Oh My Fish provides core infrastructure to allow you to install packages
       which extend or modify the look of your shell. It's fast, extensible and
diff --git a/pkgs/by-name/oh/oh-my-posh/package.nix b/pkgs/by-name/oh/oh-my-posh/package.nix
index 698aa781b2013..bc33e030dead3 100644
--- a/pkgs/by-name/oh/oh-my-posh/package.nix
+++ b/pkgs/by-name/oh/oh-my-posh/package.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "oh-my-posh";
-  version = "19.29.0";
+  version = "21.9.1";
 
   src = fetchFromGitHub {
     owner = "jandedobbeleer";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-vn3P9upO6d0jpZzrG77/xkhfn4NINnBZ3YymlRdoONw=";
+    hash = "sha256-QzIKxvG1fg6f4Xk18XBXYirvD1cPmvzwXZoaLhSeuTI=";
   };
 
-  vendorHash = "sha256-mZNhsvEI1AbsAhoK7AuNgrQvYlkGrrpPVuv3R5nssC4=";
+  vendorHash = "sha256-N71kM9T8EHh/i8NUSxfPaIRlWk/WADieCkObhVcSyEU=";
 
   sourceRoot = "${src.name}/src";
 
@@ -52,7 +52,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A prompt theme engine for any shell";
+    description = "Prompt theme engine for any shell";
     mainProgram = "oh-my-posh";
     homepage = "https://ohmyposh.dev";
     changelog = "https://github.com/JanDeDobbeleer/oh-my-posh/releases/tag/v${version}";
diff --git a/pkgs/by-name/oi/oil/package.nix b/pkgs/by-name/oi/oil/package.nix
index c6ba73d1ef8ee..c7df2077f7fe1 100644
--- a/pkgs/by-name/oi/oil/package.nix
+++ b/pkgs/by-name/oi/oil/package.nix
@@ -7,11 +7,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "oil";
-  version = "0.21.0";
+  version = "0.22.0";
 
   src = fetchurl {
     url = "https://www.oilshell.org/download/oil-${version}.tar.xz";
-    hash = "sha256-eoImAByJFtAEaPYn02XerR/0+dXO8IdhnTEDCMKmlJI=";
+    hash = "sha256-RS5/1Ci2hqp1LP65viuU+fz3upqyLgrlcKh83PeCJC4=";
   };
 
   postPatch = ''
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   dontStrip = true;
 
   meta = {
-    description = "A new unix shell - Python version";
+    description = "New unix shell - Python version";
     homepage = "https://www.oilshell.org/";
 
     license = with lib.licenses; [
diff --git a/pkgs/by-name/oi/oils-for-unix/package.nix b/pkgs/by-name/oi/oils-for-unix/package.nix
index f477d66d8a07c..eebe1137c68ba 100644
--- a/pkgs/by-name/oi/oils-for-unix/package.nix
+++ b/pkgs/by-name/oi/oils-for-unix/package.nix
@@ -51,11 +51,8 @@ stdenv.mkDerivation rec {
     "--readline=${readline-all}"
   ];
 
-  # Stripping breaks the bundles by removing the zip file from the end.
-  dontStrip = true;
-
   meta = {
-    description = "A Unix shell with JSON-compatible structured data. It's our upgrade path from bash to a better language and runtime.";
+    description = "Unix shell with JSON-compatible structured data. It's our upgrade path from bash to a better language and runtime";
     homepage = "https://www.oilshell.org/";
 
     license = lib.licenses.asl20;
diff --git a/pkgs/by-name/oi/oink/package.nix b/pkgs/by-name/oi/oink/package.nix
new file mode 100644
index 0000000000000..b7198abacc544
--- /dev/null
+++ b/pkgs/by-name/oi/oink/package.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "oink";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "rlado";
+    repo = "oink";
+    rev = "v${version}";
+    hash = "sha256-nSLoochU0mRxD83EXH3xsrfBBg4SnvIyf5qUiwSeh0c=";
+  };
+
+  vendorHash = null;
+
+  postInstall = ''
+    mv $out/bin/src $out/bin/oink
+  '';
+
+  meta = {
+    description = "Dynamic DNS client for Porkbun";
+    homepage = "https://github.com/rlado/oink";
+    license = lib.licenses.mit;
+    mainProgram = "oink";
+    maintainers = with lib.maintainers; [ jtbx ];
+  };
+}
diff --git a/pkgs/by-name/ok/okolors/package.nix b/pkgs/by-name/ok/okolors/package.nix
new file mode 100644
index 0000000000000..f3b35e2bc1600
--- /dev/null
+++ b/pkgs/by-name/ok/okolors/package.nix
@@ -0,0 +1,26 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "okolors";
+  version = "0.7.0";
+
+  src = fetchFromGitHub {
+    owner = "Ivordir";
+    repo = "Okolors";
+    rev = "v${version}";
+    sha256 = "sha256-xroiiDTm3B2sVC1sO7oe3deqh+j3URmiy/ctwqrvvkI=";
+  };
+
+  cargoHash = "sha256-Ru7VZM+vLGkYeLqWilQvpWUnbNZqkJHn1D/Vo/KUmRk=";
+
+  meta = with lib; {
+    description = "Generate a color palette from an image using k-means clustering in the Oklab color space";
+    homepage = "https://github.com/Ivordir/Okolors";
+    license = licenses.mit;
+    maintainers = with maintainers; [ laurent-f1z1 ];
+    mainProgram = "okolors";
+  };
+}
diff --git a/pkgs/by-name/ol/ollama/package.nix b/pkgs/by-name/ol/ollama/package.nix
index 9e0e4d2d87a04..95c79f3c5b506 100644
--- a/pkgs/by-name/ol/ollama/package.nix
+++ b/pkgs/by-name/ol/ollama/package.nix
@@ -7,9 +7,7 @@
 , overrideCC
 , makeWrapper
 , stdenv
-, nixosTests
 
-, pkgs
 , cmake
 , gcc12
 , clblast
@@ -19,8 +17,11 @@
 , linuxPackages
 , darwin
 
+, nixosTests
 , testers
 , ollama
+, ollama-rocm
+, ollama-cuda
 
 , config
   # one of `[ null false "rocm" "cuda" ]`
@@ -30,24 +31,28 @@
 let
   pname = "ollama";
   # don't forget to invalidate all hashes each update
-  version = "0.1.38";
+  version = "0.1.44";
 
   src = fetchFromGitHub {
-    owner = "jmorganca";
+    owner = "ollama";
     repo = "ollama";
     rev = "v${version}";
-    hash = "sha256-9HHR48gqETYVJgIaDH8s/yHTrDPEmHm80shpDNS+6hY=";
+    hash = "sha256-HM7xtVdhRwhsLEBLvCgjU1iwdaqowRdrxh/Z0BzTPn8=";
     fetchSubmodules = true;
   };
-  vendorHash = "sha256-zOQGhNcGNlQppTqZdPfx+y4fUrxH0NOUl38FN8J6ffE=";
+
+  vendorHash = "sha256-LNH3mpxIrPMe5emfum1W10jvXIjKC6GkGcjq1HhpJQo=";
+
   # ollama's patches of llama.cpp's example server
   # `ollama/llm/generate/gen_common.sh` -> "apply temporary patches until fix is upstream"
   # each update, these patches should be synchronized with the contents of `ollama/llm/patches/`
   llamacppPatches = [
+    (preparePatch "01-load-progress.diff" "sha256-3QxyKX1n5NeMLU8d7wI/96wCM1Cvb5X5sQL5CFhMFo4=")
     (preparePatch "02-clip-log.diff" "sha256-rMWbl3QgrPlhisTeHwD7EnGRJyOhLB4UeS7rqa0tdXM=")
-    (preparePatch "03-load_exception.diff" "sha256-1DfNahFYYxqlx4E4pwMKQpL+XR0bibYnDFGt6dCL4TM=")
+    (preparePatch "03-load_exception.diff" "sha256-0XfMtMyg17oihqSFDBakBtAF0JwhsR188D+cOodgvDk=")
     (preparePatch "04-metal.diff" "sha256-Ne8J9R8NndUosSK0qoMvFfKNwqV5xhhce1nSoYrZo7Y=")
-    (preparePatch "05-clip-fix.diff" "sha256-rCc3xNuJR11OkyiXuau8y46hb+KYk40ZqH1Llq+lqWc=")
+    (preparePatch "05-default-pretokenizer.diff" "sha256-NrQ0Fv5DAZYtRM0NBEeM2JLVTLFmb4Fs9RhwXhdMCC4=")
+    (preparePatch "06-qwen2.diff" "sha256-nMtoAQUsjYuJv45uTlz8r/K1oF5NUsc75SnhgfSkE30=")
   ];
 
   preparePatch = patch: hash: fetchpatch {
@@ -65,23 +70,22 @@ let
       "but they are mutually exclusive; falling back to cpu"
     ])
     (!(config.rocmSupport && config.cudaSupport));
-  validateLinux = api: (lib.warnIfNot stdenv.isLinux
-    "building ollama with `${api}` is only supported on linux; falling back to cpu"
-    stdenv.isLinux);
   shouldEnable = assert accelIsValid;
     mode: fallback:
-      ((acceleration == mode)
-      || (fallback && acceleration == null && validateFallback))
-      && (validateLinux mode);
+      (acceleration == mode)
+      || (fallback && acceleration == null && validateFallback);
+
+  rocmRequested = shouldEnable "rocm" config.rocmSupport;
+  cudaRequested = shouldEnable "cuda" config.cudaSupport;
 
-  enableRocm = shouldEnable "rocm" config.rocmSupport;
-  enableCuda = shouldEnable "cuda" config.cudaSupport;
+  enableRocm = rocmRequested && stdenv.isLinux;
+  enableCuda = cudaRequested && stdenv.isLinux;
 
 
   rocmLibs = [
     rocmPackages.clr
     rocmPackages.hipblas
-    (rocmPackages.rocblas.override { tensileSepArch = true; tensileLazyLib = true; })
+    rocmPackages.rocblas
     rocmPackages.rocsolver
     rocmPackages.rocsparse
     rocmPackages.rocm-device-libs
@@ -188,27 +192,32 @@ goBuild ((lib.optionalAttrs enableRocm {
   ldflags = [
     "-s"
     "-w"
-    "-X=github.com/jmorganca/ollama/version.Version=${version}"
-    "-X=github.com/jmorganca/ollama/server.mode=release"
+    "-X=github.com/ollama/ollama/version.Version=${version}"
+    "-X=github.com/ollama/ollama/server.mode=release"
   ];
 
   passthru.tests = {
+    inherit ollama;
     service = nixosTests.ollama;
-    rocm = pkgs.ollama.override { acceleration = "rocm"; };
-    cuda = pkgs.ollama.override { acceleration = "cuda"; };
     version = testers.testVersion {
       inherit version;
       package = ollama;
     };
+  } // lib.optionalAttrs stdenv.isLinux {
+    inherit ollama-rocm ollama-cuda;
   };
 
   meta = {
-    description = "Get up and running with large language models locally";
+    description = "Get up and running with large language models locally"
+      + lib.optionalString rocmRequested ", using ROCm for AMD GPU acceleration"
+      + lib.optionalString cudaRequested ", using CUDA for NVIDIA GPU acceleration";
     homepage = "https://github.com/ollama/ollama";
     changelog = "https://github.com/ollama/ollama/releases/tag/v${version}";
     license = licenses.mit;
-    platforms = platforms.unix;
+    platforms =
+      if (rocmRequested || cudaRequested) then platforms.linux
+      else platforms.unix;
     mainProgram = "ollama";
-    maintainers = with maintainers; [ abysssol dit7ya elohmeier ];
+    maintainers = with maintainers; [ abysssol dit7ya elohmeier roydubnium ];
   };
 })
diff --git a/pkgs/development/tools/ols/default.nix b/pkgs/by-name/ol/ols/package.nix
index 613dd0f5acbdc..26d4ff979645e 100644
--- a/pkgs/development/tools/ols/default.nix
+++ b/pkgs/by-name/ol/ols/package.nix
@@ -1,32 +1,31 @@
-{ stdenv, fetchFromGitHub, makeBinaryWrapper, unstableGitUpdater, odin, lib }:
+{
+  fetchFromGitHub,
+  lib,
+  makeBinaryWrapper,
+  odin,
+  stdenv,
+  unstableGitUpdater,
+}:
 
 stdenv.mkDerivation {
   pname = "ols";
-  version = "0-unstable-2024-05-18";
+  version = "0-unstable-2024-06-13";
 
   src = fetchFromGitHub {
     owner = "DanielGavin";
     repo = "ols";
-    rev = "b5b6733320bd866b6895cc2f44910f180dda4e0b";
-    hash = "sha256-Mok77ioHklE3jeSFT2um1XgrnRuQf0ysDcTo3Fjukmk=";
+    rev = "09f865e685f8ebddaf994e51baeabed795e7f849";
+    hash = "sha256-JdKmXMyRZCf6UYo5sKmiIaeZNgnbUm5ALP39tf6z36w=";
   };
 
-  passthru.updateScript = unstableGitUpdater {
-    hardcodeZeroVersion = true;
-  };
-
-  nativeBuildInputs = [
-    makeBinaryWrapper
-  ];
-
-  buildInputs = [
-    odin
-  ];
-
   postPatch = ''
     patchShebangs build.sh
   '';
 
+  nativeBuildInputs = [ makeBinaryWrapper ];
+
+  buildInputs = [ odin ];
+
   buildPhase = ''
     runHook preBuild
 
@@ -44,12 +43,17 @@ stdenv.mkDerivation {
     runHook postInstall
   '';
 
-  meta = with lib; {
+  passthru.updateScript = unstableGitUpdater { hardcodeZeroVersion = true; };
+
+  meta = {
     inherit (odin.meta) platforms;
     description = "Language server for the Odin programming language";
-    mainProgram = "ols";
     homepage = "https://github.com/DanielGavin/ols";
-    license = licenses.mit;
-    maintainers = with maintainers; [ astavie znaniye ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [
+      astavie
+      znaniye
+    ];
+    mainProgram = "ols";
   };
 }
diff --git a/pkgs/by-name/ol/olvid/package.nix b/pkgs/by-name/ol/olvid/package.nix
index ec90fcb72fe9f..1d8ba41adb3c2 100644
--- a/pkgs/by-name/ol/olvid/package.nix
+++ b/pkgs/by-name/ol/olvid/package.nix
@@ -53,14 +53,14 @@ in
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "olvid";
-  version = "1.5.2";
+  version = "1.6.2";
 
   dontUnpack = true;
   dontWrapGApps = true;
 
   src = fetchurl {
     url = "https://static.olvid.io/linux/${repo}-${finalAttrs.version}.tar.gz";
-    hash = "sha256-WjIOk3dPSXQdAR2fdXseV0NdOjld0PzyqnUx/VbvQio=";
+    hash = "sha256-Cej8ei+Dh6yn7ZRZ1DE9ay/KWWLLALhaQ5gNpBw8vDs=";
   };
 
   nativeBuildInputs = [
@@ -98,7 +98,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "The secure french messenger";
+    description = "Secure french messenger";
     homepage = "https://www.olvid.io";
     license = licenses.agpl3Only;
     mainProgram = "olvid";
diff --git a/pkgs/by-name/om/omnictl/package.nix b/pkgs/by-name/om/omnictl/package.nix
index 7e8cb69b2e628..ece16ef86b0ae 100644
--- a/pkgs/by-name/om/omnictl/package.nix
+++ b/pkgs/by-name/om/omnictl/package.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "omnictl";
-  version = "0.35.1";
+  version = "0.37.5";
 
   src = fetchFromGitHub {
     owner = "siderolabs";
     repo = "omni";
     rev = "v${version}";
-    hash = "sha256-cxD3oaGRpYqgraJpDtnjND5TBSdloACms57Be/gnTbo=";
+    hash = "sha256-eM3Tq314B4cb4fL7XdJacn2lmsEGvNwPXROoKvwzIKU=";
   };
 
-  vendorHash = "sha256-gQUg0ynaySpBCrZWeZl0GdiB7mvHML58lmV6l7ABb5E=";
+  vendorHash = "sha256-4G47S/Mb0zjiAiD7QsXzmbdNmb8hcfGwhuFMfwRuHnY=";
 
   ldflags = [ "-s" "-w" ];
 
@@ -31,7 +31,7 @@ buildGoModule rec {
   doCheck = false; # no tests
 
   meta = with lib; {
-    description = "A CLI for the Sidero Omni Kubernetes management platform";
+    description = "CLI for the Sidero Omni Kubernetes management platform";
     mainProgram = "omnictl";
     homepage = "https://omni.siderolabs.com/";
     license = licenses.bsl11;
diff --git a/pkgs/by-name/om/omniorbpy/package.nix b/pkgs/by-name/om/omniorbpy/package.nix
index 66254cdaba21d..a288dc34c6481 100644
--- a/pkgs/by-name/om/omniorbpy/package.nix
+++ b/pkgs/by-name/om/omniorbpy/package.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation (finalAttrs: {
 
 
   meta = with lib; {
-    description = "The python backend for omniorb";
+    description = "Python backend for omniorb";
     homepage = "http://omniorb.sourceforge.net";
     license = with licenses; [ gpl2Plus lgpl21Plus ];
     maintainers = with maintainers; [ nim65s ];
diff --git a/pkgs/by-name/on/onagre/package.nix b/pkgs/by-name/on/onagre/package.nix
index 2943e8f032941..5afed73417134 100644
--- a/pkgs/by-name/on/onagre/package.nix
+++ b/pkgs/by-name/on/onagre/package.nix
@@ -48,7 +48,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A general purpose application launcher for X and wayland inspired by rofi/wofi and alfred";
+    description = "General purpose application launcher for X and wayland inspired by rofi/wofi and alfred";
     homepage = "https://github.com/onagre-launcher/onagre";
     license = licenses.mit;
     maintainers = [ maintainers.jfvillablanca maintainers.ilya-epifanov ];
diff --git a/pkgs/by-name/on/onedrivegui/package.nix b/pkgs/by-name/on/onedrivegui/package.nix
index f0a7eb7b75947..53dda082e8d56 100644
--- a/pkgs/by-name/on/onedrivegui/package.nix
+++ b/pkgs/by-name/on/onedrivegui/package.nix
@@ -79,7 +79,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/bpozdena/OneDriveGUI";
-    description = "A simple GUI for Linux OneDrive Client, with multi-account support";
+    description = "Simple GUI for Linux OneDrive Client, with multi-account support";
     mainProgram = "onedrivegui";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ chewblacka ];
diff --git a/pkgs/by-name/on/onedriver/package.nix b/pkgs/by-name/on/onedriver/package.nix
index c4e3ba572d28a..20e8474c27edc 100644
--- a/pkgs/by-name/on/onedriver/package.nix
+++ b/pkgs/by-name/on/onedriver/package.nix
@@ -57,7 +57,7 @@ buildGoModule {
   '';
 
   meta = with lib; {
-    description = "A network filesystem for Linux";
+    description = "Network filesystem for Linux";
     longDescription = ''
       onedriver is a network filesystem that gives your computer direct access to your files on Microsoft OneDrive.
       This is not a sync client. Instead of syncing files, onedriver performs an on-demand download of files when
diff --git a/pkgs/by-name/on/onscripter-en/package.nix b/pkgs/by-name/on/onscripter-en/package.nix
new file mode 100644
index 0000000000000..74b440b427732
--- /dev/null
+++ b/pkgs/by-name/on/onscripter-en/package.nix
@@ -0,0 +1,67 @@
+{
+  lib,
+  SDL,
+  SDL_image,
+  SDL_mixer,
+  SDL_ttf,
+  fetchFromGitHub,
+  freetype,
+  libjpeg,
+  libogg,
+  libpng,
+  libvorbis,
+  pkg-config,
+  smpeg,
+  stdenv,
+}:
+
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "onscripter-en";
+  version = "20110930";
+
+  # The website is not available now. Let's use a Museoa backup
+  src = fetchFromGitHub {
+    owner = "museoa";
+    repo = "onscripter-en";
+    rev = finalAttrs.version;
+    hash = "sha256-Lc5ZlH2C4ER02NmQ6icfiqpzVQdVUnOmdywGjjjSYSg=";
+  };
+
+  nativeBuildInputs = [
+    SDL
+    pkg-config
+    smpeg
+  ];
+
+  buildInputs = [
+    SDL
+    SDL_image
+    SDL_mixer
+    SDL_ttf
+    freetype
+    libjpeg
+    libogg
+    libpng
+    libvorbis
+    smpeg
+  ];
+
+  configureFlags = [ "--no-werror" ];
+
+  strictDeps = true;
+
+  preBuild = ''
+    sed -i 's/.dll//g' Makefile
+  '';
+
+  meta = {
+    homepage = "http://github.com/museoa/onscripter-en";
+    description = "Japanese visual novel scripting engine";
+    license = lib.licenses.gpl2Plus;
+    mainProgram = "onscripter-en";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.unix;
+    broken = stdenv.isDarwin;
+  };
+})
diff --git a/pkgs/by-name/on/onthespot/package.nix b/pkgs/by-name/on/onthespot/package.nix
index 7e52d4892fa5f..138ac6e94b7c5 100644
--- a/pkgs/by-name/on/onthespot/package.nix
+++ b/pkgs/by-name/on/onthespot/package.nix
@@ -4,6 +4,7 @@
 , makeDesktopItem
 , python3
 , libsForQt5
+, ffmpeg
 }:
 
 python3.pkgs.buildPythonApplication rec {
@@ -27,6 +28,7 @@ python3.pkgs.buildPythonApplication rec {
   propagatedBuildInputs = with python3.pkgs; [
     charset-normalizer
     defusedxml
+    ffmpeg
     librespot
     music-tag
     packaging
@@ -52,16 +54,32 @@ python3.pkgs.buildPythonApplication rec {
 
   pythonRelaxDeps = true;
 
+  postInstall = ''
+    install -Dm444 $src/src/onthespot/resources/icon.png $out/share/icons/hicolor/256x256/apps/onthespot.png
+  '';
+
   preFixup = ''
     makeWrapperArgs+=("''${qtWrapperArgs[@]}")
   '';
 
+  desktopItems = [
+    (makeDesktopItem {
+      name = "Onthespot";
+      exec = "onthespot_gui";
+      icon = "onthespot";
+      desktopName = "Onthespot";
+      comment = meta.description;
+      categories = [ "Audio" ];
+    })
+  ];
+
   meta = with lib; {
-    description = " QT based Spotify music downloader written in Python";
+    description = "QT based Spotify music downloader written in Python";
     homepage = "https://github.com/casualsnek/onthespot";
     changelog = "https://github.com/casualsnek/onthespot/releases/tag/v${version}";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ onny ];
     platforms = platforms.linux;
+    mainProgram = "onthespot_gui";
   };
 }
diff --git a/pkgs/by-name/oo/oo7/Cargo.lock b/pkgs/by-name/oo/oo7/Cargo.lock
new file mode 100644
index 0000000000000..25dabd4253ba0
--- /dev/null
+++ b/pkgs/by-name/oo/oo7/Cargo.lock
@@ -0,0 +1,1980 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "addr2line"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "aes"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0"
+dependencies = [
+ "cfg-if",
+ "cipher",
+ "cpufeatures",
+ "zeroize",
+]
+
+[[package]]
+name = "android-tzdata"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+
+[[package]]
+name = "android_system_properties"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "anstream"
+version = "0.6.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "is_terminal_polyfill",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b"
+
+[[package]]
+name = "anstyle-parse"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19"
+dependencies = [
+ "anstyle",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "async-broadcast"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "258b52a1aa741b9f09783b2d86cf0aeeb617bbf847f6933340a39644227acbdb"
+dependencies = [
+ "event-listener 5.3.1",
+ "event-listener-strategy 0.5.2",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-channel"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a"
+dependencies = [
+ "concurrent-queue",
+ "event-listener-strategy 0.5.2",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-executor"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8828ec6e544c02b0d6691d21ed9f9218d0384a82542855073c2a3f58304aaf0"
+dependencies = [
+ "async-task",
+ "concurrent-queue",
+ "fastrand",
+ "futures-lite",
+ "slab",
+]
+
+[[package]]
+name = "async-fs"
+version = "2.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a"
+dependencies = [
+ "async-lock",
+ "blocking",
+ "futures-lite",
+]
+
+[[package]]
+name = "async-io"
+version = "2.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884"
+dependencies = [
+ "async-lock",
+ "cfg-if",
+ "concurrent-queue",
+ "futures-io",
+ "futures-lite",
+ "parking",
+ "polling",
+ "rustix",
+ "slab",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "async-lock"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
+dependencies = [
+ "event-listener 4.0.3",
+ "event-listener-strategy 0.4.0",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-process"
+version = "2.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a53fc6301894e04a92cb2584fedde80cb25ba8e02d9dc39d4a87d036e22f397d"
+dependencies = [
+ "async-channel",
+ "async-io",
+ "async-lock",
+ "async-signal",
+ "async-task",
+ "blocking",
+ "cfg-if",
+ "event-listener 5.3.1",
+ "futures-lite",
+ "rustix",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "async-recursion"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "async-signal"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "afe66191c335039c7bb78f99dc7520b0cbb166b3a1cb33a03f53d8a1c6f2afda"
+dependencies = [
+ "async-io",
+ "async-lock",
+ "atomic-waker",
+ "cfg-if",
+ "futures-core",
+ "futures-io",
+ "rustix",
+ "signal-hook-registry",
+ "slab",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "async-task"
+version = "4.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
+
+[[package]]
+name = "async-trait"
+version = "0.1.80"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "atomic-waker"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
+
+[[package]]
+name = "autocfg"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
+
+[[package]]
+name = "backtrace"
+version = "0.3.72"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17c6a35df3749d2e8bb1b7b21a976d82b15548788d2735b9d82f329268f71a11"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "bitflags"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
+
+[[package]]
+name = "block-buffer"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "block-padding"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "blocking"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea"
+dependencies = [
+ "async-channel",
+ "async-task",
+ "futures-io",
+ "futures-lite",
+ "piper",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
+
+[[package]]
+name = "byteorder"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+
+[[package]]
+name = "bytes"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
+
+[[package]]
+name = "cbc"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6"
+dependencies = [
+ "cipher",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.98"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
+[[package]]
+name = "chrono"
+version = "0.4.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
+dependencies = [
+ "android-tzdata",
+ "iana-time-zone",
+ "num-traits",
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "cipher"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
+dependencies = [
+ "crypto-common",
+ "inout",
+ "zeroize",
+]
+
+[[package]]
+name = "clap"
+version = "4.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0"
+dependencies = [
+ "clap_builder",
+ "clap_derive",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "clap_lex",
+ "strsim",
+]
+
+[[package]]
+name = "clap_derive"
+version = "4.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
+
+[[package]]
+name = "colorchoice"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422"
+
+[[package]]
+name = "concurrent-queue"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
+
+[[package]]
+name = "crypto-common"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+dependencies = [
+ "generic-array",
+ "rand_core",
+ "typenum",
+]
+
+[[package]]
+name = "digest"
+version = "0.10.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+dependencies = [
+ "block-buffer",
+ "crypto-common",
+ "subtle",
+]
+
+[[package]]
+name = "endi"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf"
+
+[[package]]
+name = "enumflags2"
+version = "0.7.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d"
+dependencies = [
+ "enumflags2_derive",
+ "serde",
+]
+
+[[package]]
+name = "enumflags2_derive"
+version = "0.7.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "event-listener"
+version = "4.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener"
+version = "5.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
+dependencies = [
+ "event-listener 4.0.3",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1"
+dependencies = [
+ "event-listener 5.3.1",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
+name = "futures-channel"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+dependencies = [
+ "futures-core",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+
+[[package]]
+name = "futures-io"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+
+[[package]]
+name = "futures-lite"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
+dependencies = [
+ "fastrand",
+ "futures-core",
+ "futures-io",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "futures-macro"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
+
+[[package]]
+name = "futures-task"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+
+[[package]]
+name = "futures-util"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+dependencies = [
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "generic-array"
+version = "0.14.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+dependencies = [
+ "typenum",
+ "version_check",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "gimli"
+version = "0.29.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
+
+[[package]]
+name = "hashbrown"
+version = "0.14.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
+
+[[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+
+[[package]]
+name = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
+[[package]]
+name = "hkdf"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
+dependencies = [
+ "hmac",
+]
+
+[[package]]
+name = "hmac"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
+dependencies = [
+ "digest",
+]
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "windows-core",
+]
+
+[[package]]
+name = "iana-time-zone-haiku"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
+dependencies = [
+ "equivalent",
+ "hashbrown",
+]
+
+[[package]]
+name = "inout"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
+dependencies = [
+ "block-padding",
+ "generic-array",
+]
+
+[[package]]
+name = "is_terminal_polyfill"
+version = "1.70.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800"
+
+[[package]]
+name = "js-sys"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+dependencies = [
+ "spin 0.5.2",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.155"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
+
+[[package]]
+name = "libm"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
+
+[[package]]
+name = "log"
+version = "0.4.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
+
+[[package]]
+name = "md-5"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
+dependencies = [
+ "cfg-if",
+ "digest",
+]
+
+[[package]]
+name = "memchr"
+version = "2.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
+
+[[package]]
+name = "memoffset"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "miniz_oxide"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae"
+dependencies = [
+ "adler",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
+dependencies = [
+ "libc",
+ "wasi",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "nix"
+version = "0.28.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
+dependencies = [
+ "bitflags",
+ "cfg-if",
+ "cfg_aliases",
+ "libc",
+ "memoffset",
+]
+
+[[package]]
+name = "nu-ansi-term"
+version = "0.46.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
+dependencies = [
+ "overload",
+ "winapi",
+]
+
+[[package]]
+name = "num"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23"
+dependencies = [
+ "num-bigint",
+ "num-complex",
+ "num-integer",
+ "num-iter",
+ "num-rational",
+ "num-traits",
+]
+
+[[package]]
+name = "num-bigint"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7"
+dependencies = [
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-bigint-dig"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151"
+dependencies = [
+ "byteorder",
+ "lazy_static",
+ "libm",
+ "num-integer",
+ "num-iter",
+ "num-traits",
+ "rand",
+ "serde",
+ "smallvec",
+ "zeroize",
+]
+
+[[package]]
+name = "num-complex"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "num-integer"
+version = "0.1.46"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "num-iter"
+version = "0.1.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-rational"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
+dependencies = [
+ "num-bigint",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "object"
+version = "0.35.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8ec7ab813848ba4522158d5517a6093db1ded27575b070f4177b8d12b41db5e"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "oo7"
+version = "0.3.2"
+dependencies = [
+ "aes",
+ "async-fs",
+ "async-io",
+ "async-lock",
+ "blocking",
+ "cbc",
+ "cipher",
+ "digest",
+ "endi",
+ "futures-lite",
+ "futures-util",
+ "hkdf",
+ "hmac",
+ "md-5",
+ "num",
+ "num-bigint-dig",
+ "openssl",
+ "pbkdf2",
+ "rand",
+ "serde",
+ "sha2",
+ "subtle",
+ "tempfile",
+ "tokio",
+ "tracing",
+ "zbus",
+ "zeroize",
+ "zvariant",
+]
+
+[[package]]
+name = "oo7-cli"
+version = "0.3.2"
+dependencies = [
+ "chrono",
+ "clap",
+ "oo7",
+ "rpassword",
+ "tokio",
+]
+
+[[package]]
+name = "oo7-portal"
+version = "0.3.2"
+dependencies = [
+ "futures-channel",
+ "futures-util",
+ "oo7",
+ "ring",
+ "secrecy",
+ "serde",
+ "tokio",
+ "tracing",
+ "tracing-subscriber",
+ "zbus",
+ "zeroize",
+]
+
+[[package]]
+name = "openssl"
+version = "0.10.64"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
+dependencies = [
+ "bitflags",
+ "cfg-if",
+ "foreign-types",
+ "libc",
+ "once_cell",
+ "openssl-macros",
+ "openssl-sys",
+]
+
+[[package]]
+name = "openssl-macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.102"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "ordered-stream"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50"
+dependencies = [
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "overload"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
+[[package]]
+name = "parking"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
+
+[[package]]
+name = "pbkdf2"
+version = "0.12.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2"
+dependencies = [
+ "digest",
+ "hmac",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "piper"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "464db0c665917b13ebb5d453ccdec4add5658ee1adc7affc7677615356a8afaf"
+dependencies = [
+ "atomic-waker",
+ "fastrand",
+ "futures-io",
+]
+
+[[package]]
+name = "pkg-config"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+
+[[package]]
+name = "polling"
+version = "3.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "645493cf344456ef24219d02a768cf1fb92ddf8c92161679ae3d91b91a637be3"
+dependencies = [
+ "cfg-if",
+ "concurrent-queue",
+ "hermit-abi",
+ "pin-project-lite",
+ "rustix",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "proc-macro-crate"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
+dependencies = [
+ "toml_edit",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec96c6a92621310b51366f1e28d05ef11489516e93be030060e5fc12024a49d6"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "ring"
+version = "0.17.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
+dependencies = [
+ "cc",
+ "cfg-if",
+ "getrandom",
+ "libc",
+ "spin 0.9.8",
+ "untrusted",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rpassword"
+version = "7.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f"
+dependencies = [
+ "libc",
+ "rtoolbox",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "rtoolbox"
+version = "0.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e"
+dependencies = [
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
+
+[[package]]
+name = "rustix"
+version = "0.38.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
+dependencies = [
+ "bitflags",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "secrecy"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e"
+dependencies = [
+ "zeroize",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.203"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.203"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "serde_repr"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "sha1"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sha2"
+version = "0.10.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sharded-slab"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
+
+[[package]]
+name = "socket2"
+version = "0.5.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "spin"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+
+[[package]]
+name = "spin"
+version = "0.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+
+[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
+name = "strsim"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
+
+[[package]]
+name = "subtle"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
+
+[[package]]
+name = "syn"
+version = "2.0.66"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "rustix",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+]
+
+[[package]]
+name = "tokio"
+version = "1.37.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787"
+dependencies = [
+ "backtrace",
+ "bytes",
+ "libc",
+ "mio",
+ "num_cpus",
+ "pin-project-lite",
+ "signal-hook-registry",
+ "socket2",
+ "tokio-macros",
+ "tracing",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "tokio-macros"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf"
+
+[[package]]
+name = "toml_edit"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "tracing"
+version = "0.1.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+dependencies = [
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+dependencies = [
+ "once_cell",
+ "valuable",
+]
+
+[[package]]
+name = "tracing-log"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
+dependencies = [
+ "log",
+ "once_cell",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-subscriber"
+version = "0.3.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
+dependencies = [
+ "nu-ansi-term",
+ "sharded-slab",
+ "smallvec",
+ "thread_local",
+ "tracing-core",
+ "tracing-log",
+]
+
+[[package]]
+name = "typenum"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+[[package]]
+name = "uds_windows"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
+dependencies = [
+ "memoffset",
+ "tempfile",
+ "winapi",
+]
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "untrusted"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
+
+[[package]]
+name = "utf8parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+
+[[package]]
+name = "valuable"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
+
+[[package]]
+name = "winnow"
+version = "0.5.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "xdg-home"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "zbus"
+version = "4.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "989c3977a7aafa97b12b9a35d21cdcff9b0d2289762b14683f45d66b1ba6c48f"
+dependencies = [
+ "async-broadcast",
+ "async-executor",
+ "async-fs",
+ "async-io",
+ "async-lock",
+ "async-process",
+ "async-recursion",
+ "async-task",
+ "async-trait",
+ "blocking",
+ "enumflags2",
+ "event-listener 5.3.1",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "hex",
+ "nix",
+ "ordered-stream",
+ "rand",
+ "serde",
+ "serde_repr",
+ "sha1",
+ "static_assertions",
+ "tokio",
+ "tracing",
+ "uds_windows",
+ "windows-sys 0.52.0",
+ "xdg-home",
+ "zbus_macros",
+ "zbus_names",
+ "zvariant",
+]
+
+[[package]]
+name = "zbus_macros"
+version = "4.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6fe9de53245dcf426b7be226a4217dd5e339080e5d46e64a02d6e5dcbf90fca1"
+dependencies = [
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "zvariant_utils",
+]
+
+[[package]]
+name = "zbus_names"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c"
+dependencies = [
+ "serde",
+ "static_assertions",
+ "zvariant",
+]
+
+[[package]]
+name = "zeroize"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde"
+dependencies = [
+ "zeroize_derive",
+]
+
+[[package]]
+name = "zeroize_derive"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "zvariant"
+version = "4.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aa6d31a02fbfb602bfde791de7fedeb9c2c18115b3d00f3a36e489f46ffbbc7"
+dependencies = [
+ "endi",
+ "enumflags2",
+ "serde",
+ "static_assertions",
+ "zvariant_derive",
+]
+
+[[package]]
+name = "zvariant_derive"
+version = "4.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "642bf1b6b6d527988b3e8193d20969d53700a36eac734d21ae6639db168701c8"
+dependencies = [
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "zvariant_utils",
+]
+
+[[package]]
+name = "zvariant_utils"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc242db087efc22bd9ade7aa7809e4ba828132edc312871584a6b4391bdf8786"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
diff --git a/pkgs/by-name/oo/oo7/package.nix b/pkgs/by-name/oo/oo7/package.nix
new file mode 100644
index 0000000000000..8054daa560889
--- /dev/null
+++ b/pkgs/by-name/oo/oo7/package.nix
@@ -0,0 +1,60 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, nix-update-script
+, oo7
+, openssl
+, pkg-config
+, testers
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "oo7";
+  version = "0.3.2";
+
+  src = fetchFromGitHub {
+    owner = "bilelmoussaoui";
+    repo = "oo7";
+    rev = version;
+    hash = "sha256-oNzDjPMPM8opINSHC8T4ivQ6mfRVmN2VXPZAFkBZS8U=";
+  };
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+  };
+
+  postPatch = ''
+    ln -s ${./Cargo.lock} Cargo.lock
+  '';
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    openssl
+  ];
+
+  postInstall = ''
+    install -Dm644 portal/data/oo7-portal.portal $out/share/xdg-desktop-portal/portals/oo7.portal
+    install -Dm644 portal/data/oo7-portal.service $out/share/dbus-1/services/oo7-portal.service
+    substituteInPlace $out/share/dbus-1/services/oo7-portal.service \
+      --replace-fail "@bindir@" "$out/bin"
+  '';
+
+  passthru = {
+    tests.testVersion = testers.testVersion {
+      package = oo7;
+    };
+    updateScript = nix-update-script { };
+  };
+
+  meta = with lib; {
+    description = "James Bond went on a new mission as a Secret Service provider";
+    homepage = "https://github.com/bilelmoussaoui/oo7";
+    license = licenses.mit;
+    maintainers = with maintainers; [ getchoo Scrumplex ];
+    platforms = platforms.linux;
+    mainProgram = "oo7-cli";
+  };
+}
diff --git a/pkgs/by-name/op/opcua-commander/package.nix b/pkgs/by-name/op/opcua-commander/package.nix
index aecae5070ed8b..9cbf043832bd7 100644
--- a/pkgs/by-name/op/opcua-commander/package.nix
+++ b/pkgs/by-name/op/opcua-commander/package.nix
@@ -35,7 +35,7 @@ buildNpmPackage rec {
   '';
 
   meta = with lib; {
-    description = "A opcua client with blessed (ncurses)";
+    description = "Opcua client with blessed (ncurses)";
     homepage = "https://github.com/node-opcua/opcua-commander";
     license = licenses.mit;
     maintainers = with maintainers; [ jonboh ];
diff --git a/pkgs/by-name/op/open-scq30/package.nix b/pkgs/by-name/op/open-scq30/package.nix
index 7ab3452bd2df8..3e2e41a15e98d 100644
--- a/pkgs/by-name/op/open-scq30/package.nix
+++ b/pkgs/by-name/op/open-scq30/package.nix
@@ -64,7 +64,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "Cross platform application for controlling settings of Soundcore headphones.";
+    description = "Cross platform application for controlling settings of Soundcore headphones";
     homepage = "https://github.com/Oppzippy/OpenSCQ30";
     changelog = "https://github.com/Oppzippy/OpenSCQ30/blob/${src.rev}/CHANGELOG.md";
     license = licenses.gpl3Only;
diff --git a/pkgs/by-name/op/open-webui/package.nix b/pkgs/by-name/op/open-webui/package.nix
new file mode 100644
index 0000000000000..1292ff3c27923
--- /dev/null
+++ b/pkgs/by-name/op/open-webui/package.nix
@@ -0,0 +1,137 @@
+{
+  lib,
+  buildNpmPackage,
+  fetchFromGitHub,
+  python3,
+  nixosTests,
+}:
+let
+  pname = "open-webui";
+  version = "0.3.5";
+
+  src = fetchFromGitHub {
+    owner = "open-webui";
+    repo = "open-webui";
+    rev = "v${version}";
+    hash = "sha256-copxy9fgHTHfF14bh9ddF4eTWx2GP2Mkw3lr+1NKKkI=";
+  };
+
+  frontend = buildNpmPackage {
+    inherit pname version src;
+
+    npmDepsHash = "sha256-whddW3ThC/zlttqhV3wf15roaCgp0H/BELWLs9/c5Jc=";
+
+    # Disabling `pyodide:fetch` as it downloads packages during `buildPhase`
+    # Until this is solved, running python packages from the browser will not work.
+    postPatch = ''
+      substituteInPlace package.json \
+        --replace-fail "npm run pyodide:fetch && vite build" "vite build" \
+    '';
+
+    env.CYPRESS_INSTALL_BINARY = "0"; # disallow cypress from downloading binaries in sandbox
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out/share
+      cp -a build $out/share/open-webui
+
+      runHook postInstall
+    '';
+  };
+in
+python3.pkgs.buildPythonApplication rec {
+  inherit pname version src;
+  pyproject = true;
+
+  # Not force-including the frontend build directory as frontend is managed by the `frontend` derivation above.
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail ', build = "open_webui/frontend"' ""
+  '';
+
+  env.HATCH_BUILD_NO_HOOKS = true;
+
+  pythonRelaxDeps = true;
+
+  pythonRemoveDeps = [
+    # using `opencv4`
+    "opencv-python-headless"
+    # using `psycopg2` instead
+    "psycopg2-binary"
+  ];
+
+  dependencies = with python3.pkgs; [
+    aiohttp
+    apscheduler
+    argon2-cffi
+    bcrypt
+    beautifulsoup4
+    black
+    boto3
+    chromadb
+    docx2txt
+    duckduckgo-search
+    extract-msg
+    fake-useragent
+    fastapi
+    faster-whisper
+    flask
+    flask-cors
+    fpdf2
+    google-generativeai
+    langchain
+    langchain-chroma
+    langchain-community
+    langfuse
+    markdown
+    opencv4
+    openpyxl
+    pandas
+    passlib
+    peewee
+    peewee-migrate
+    psycopg2
+    pydub
+    pyjwt
+    pymysql
+    pypandoc
+    pypdf
+    python-jose
+    python-multipart
+    python-pptx
+    python-socketio
+    pytube
+    pyxlsb
+    rank-bm25
+    rapidocr-onnxruntime
+    requests
+    sentence-transformers
+    unstructured
+    uvicorn
+    validators
+    xlrd
+    youtube-transcript-api
+  ];
+
+  build-system = with python3.pkgs; [ hatchling ];
+
+  nativeBuildInputs = [ python3.pkgs.pythonRelaxDepsHook ];
+
+  pythonImportsCheck = [ "open_webui" ];
+
+  makeWrapperArgs = [ "--set FRONTEND_BUILD_DIR ${frontend}/share/open-webui" ];
+
+  passthru.tests = {
+    inherit (nixosTests) open-webui;
+  };
+
+  meta = {
+    description = "Full-stack of open-webui. open-webui is a user-friendly WebUI for LLMs (Formerly Ollama WebUI)";
+    homepage = "https://github.com/open-webui/open-webui";
+    changelog = "https://github.com/open-webui/open-webui/blob/${src.rev}/CHANGELOG.md";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ shivaraj-bh ];
+    mainProgram = "open-webui";
+  };
+}
diff --git a/pkgs/development/libraries/open62541/default.nix b/pkgs/by-name/op/open62541/package.nix
index 0ddc010deb65a..49099e7b0e73a 100644
--- a/pkgs/development/libraries/open62541/default.nix
+++ b/pkgs/by-name/op/open62541/package.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , pkg-config
 , check
@@ -19,8 +18,6 @@
 , openssl
 , mbedtls
 
-, withPubSub ? false
-
 # for passthru.tests only
 , open62541
 }:
@@ -33,44 +30,35 @@ in
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "open62541";
-  version = "1.3.10";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "open62541";
     repo = "open62541";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-FekO0cKgpYulMXz4r0/TUPz2tawC4k3Sq07Og4xqh4I=";
+    hash = "sha256-An8Yg6VSelNV/7poLEOjeiIb0+eMoQWG7sYqhytEKMA=";
     fetchSubmodules = true;
   };
 
-  patches = [
-    (fetchpatch {
-      name = "Ensure-absolute-paths-in-pkg-config-file.patch";
-      url = "https://github.com/open62541/open62541/commit/023d4b6b8bdec987f8f3ffee6c09801bbee4fa2d.patch";
-      sha256 = "sha256-mq4h32js2RjI0Ljown/01SXA3gc+7+zX8meIcvDPvoA=";
-    })
-  ];
-
   cmakeFlags = [
-    "-DOPEN62541_VERSION=v${finalAttrs.version}"
+    (lib.cmakeFeature "OPEN62541_VERSION" finalAttrs.src.rev)
+    (lib.cmakeFeature "UA_NAMESPACE_ZERO" "FULL")
+    (lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic))
 
-    "-DBUILD_SHARED_LIBS=${if stdenv.hostPlatform.isStatic then "OFF" else "ON"}"
-    "-DUA_NAMESPACE_ZERO=FULL"
+    # Note comment near doCheck
+    (lib.cmakeBool "UA_BUILD_UNIT_TESTS" finalAttrs.finalPackage.doCheck)
+    (lib.cmakeBool "UA_ENABLE_ALLOW_REUSEADDR" finalAttrs.finalPackage.doCheck)
 
-    "-DUA_BUILD_UNIT_TESTS=${if finalAttrs.finalPackage.doCheck then "ON" else "OFF"}"
-  ]
-  ++ lib.optional withExamples "-DUA_BUILD_EXAMPLES=ON"
-  ++ lib.optional (withEncryption != false)
-    "-DUA_ENABLE_ENCRYPTION=${lib.toUpper withEncryption}"
-  ++ lib.optional withPubSub "-DUA_ENABLE_PUBSUB=ON"
-  ;
+    (lib.cmakeBool "UA_BUILD_EXAMPLES" withExamples)
+  ] ++ lib.optionals (withEncryption != false) [
+    (lib.cmakeFeature "UA_ENABLE_ENCRYPTION" (lib.toUpper withEncryption))
+  ];
 
   nativeBuildInputs = [
     cmake
     pkg-config
     python3Packages.python
-  ]
-  ++ lib.optionals withDoc (with python3Packages; [
+  ] ++ lib.optionals withDoc (with python3Packages; [
     sphinx
     sphinx_rtd_theme
     graphviz-nox
@@ -80,7 +68,11 @@ stdenv.mkDerivation (finalAttrs: {
 
   buildFlags = [ "all" ] ++ lib.optional withDoc "doc";
 
-  doCheck = true;
+  # Tests must normally be disabled because they require
+  # -DUA_ENABLE_ALLOW_REUSEADDR=ON. The option must not be used in production,
+  # since it is a security risk.
+  # See https://github.com/open62541/open62541/issues/6407
+  doCheck = false;
 
   checkInputs = [
     check
@@ -92,14 +84,30 @@ stdenv.mkDerivation (finalAttrs: {
   enableParallelChecking = false;
 
   preCheck = let
-    disabledTests = lib.optionals withPubSub [
-      # "Cannot set socket option IP_ADD_MEMBERSHIP"
-      "pubsub_publish"
+    disabledTests = [
+      # error "Could not create a raw Ethernet socket (are you root?)"
+      "check_eventloop_eth"
+
+      # Cannot set socket option IP_ADD_MEMBERSHIP
+      "check_pubsub_publish"
+      "check_pubsub_publish_json"
+      "check_pubsub_connection_udp"
       "check_pubsub_get_state"
-      "check_pubsub_publish_rt_levels"
+      "check_pubsub_publisherid"
+      "check_pubsub_subscribe"
+      "check_pubsub_publishspeed"
       "check_pubsub_subscribe_config_freeze"
       "check_pubsub_subscribe_rt_levels"
       "check_pubsub_multiple_subscribe_rt_levels"
+      "check_pubsub_config_freeze"
+      "check_pubsub_publish_rt_levels"
+
+      # Could not find the interface
+      "check_pubsub_connection_ethernet"
+      "check_pubsub_connection_ethernet_etf"
+      "check_pubsub_publish_ethernet_etf"
+      "check_pubsub_informationmodel"
+      "check_pubsub_informationmodel_methods"
     ];
     regex = "^(${builtins.concatStringsSep "|" disabledTests})\$";
   in lib.optionalString (disabledTests != []) ''
@@ -131,14 +139,16 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.updateScript = nix-update-script { };
 
   passthru.tests = let
-    open62541Full = encBackend: open62541.override {
+    open62541Full = encBackend: (open62541.overrideAttrs (_: {
+      doCheck = true;
+    })).override {
       withDoc = true;
-      # if (withExamples && withPubSub), one of the example currently fails to build
+      # if withExamples, one of the example currently fails to build
       #withExamples = true;
       withEncryption = encBackend;
-      withPubSub = true;
     };
   in {
+    open62541WithTests = finalAttrs.finalPackage.overrideAttrs (_: { doCheck = true; });
     open62541Full = open62541Full false;
     open62541Full-openssl = open62541Full "openssl";
     open62541Full-mbedtls = open62541Full "mbedtls";
diff --git a/pkgs/by-name/op/openapi-changes/package.nix b/pkgs/by-name/op/openapi-changes/package.nix
index efeee6ce34131..0020856ee9751 100644
--- a/pkgs/by-name/op/openapi-changes/package.nix
+++ b/pkgs/by-name/op/openapi-changes/package.nix
@@ -32,7 +32,7 @@ buildGoModule rec {
   vendorHash = "sha256-gaBVwrSaIwe1eh8voq928cxM/d0urVUF0OUwWZb2fR8=";
 
   meta = with lib; {
-    description = "The world's sexiest OpenAPI breaking changes detector";
+    description = "World's sexiest OpenAPI breaking changes detector";
     homepage = "https://pb33f.io/openapi-changes/";
     changelog = "https://github.com/pb33f/openapi-changes/releases/tag/v${version}";
     license = licenses.gpl3;
diff --git a/pkgs/by-name/op/openasar/package.nix b/pkgs/by-name/op/openasar/package.nix
index a03e3205ffc39..da858575ab06c 100644
--- a/pkgs/by-name/op/openasar/package.nix
+++ b/pkgs/by-name/op/openasar/package.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "Open-source alternative of Discord desktop's \"app.asar\".";
+    description = "Open-source alternative of Discord desktop's \"app.asar\"";
     homepage = "https://openasar.dev";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [
diff --git a/pkgs/by-name/op/opencomposite/package.nix b/pkgs/by-name/op/opencomposite/package.nix
index 8e58c90dfdf6e..5607d55a0be6c 100644
--- a/pkgs/by-name/op/opencomposite/package.nix
+++ b/pkgs/by-name/op/opencomposite/package.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation {
   pname = "opencomposite";
-  version = "0-unstable-2024-05-08";
+  version = "0-unstable-2024-06-01";
 
   src = fetchFromGitLab {
     owner = "znixian";
     repo = "OpenOVR";
-    rev = "5ddd6024efafa82c7a432c9dd8a67e3d5c3f9b38";
-    hash = "sha256-m6Xhi6xlDWiVqtYyxpQP2vp5JsB2EKsoXkmd0IYtPQ8=";
+    rev = "49c4b89579fd49c5b40b72924d6593fcd47c5065";
+    hash = "sha256-Aubf1tupyXzmff3ho/yKx9B3uJ8I0aoZi9zRV3A89Pc=";
   };
 
   nativeBuildInputs = [
@@ -41,8 +41,10 @@ stdenv.mkDerivation {
   ];
 
   cmakeFlags = [
-    "-DUSE_SYSTEM_OPENXR=ON"
-    "-DUSE_SYSTEM_GLM=ON"
+    (lib.cmakeBool "USE_SYSTEM_OPENXR" true)
+    (lib.cmakeBool "USE_SYSTEM_GLM" true)
+    # debug logging macros cause format-security warnings
+    (lib.cmakeFeature "CMAKE_CXX_FLAGS" "-Wno-error=format-security")
   ];
 
   installPhase = ''
diff --git a/pkgs/by-name/op/openfga-cli/package.nix b/pkgs/by-name/op/openfga-cli/package.nix
index 1cdbfaca786dd..4c08f32b3f749 100644
--- a/pkgs/by-name/op/openfga-cli/package.nix
+++ b/pkgs/by-name/op/openfga-cli/package.nix
@@ -7,7 +7,7 @@
 
 let
   pname = "openfga-cli";
-  version = "0.4.0";
+  version = "0.4.1";
 in
 
 buildGoModule {
@@ -17,10 +17,10 @@ buildGoModule {
     owner = "openfga";
     repo = "cli";
     rev = "v${version}";
-    hash = "sha256-nwzUBzu8c8kuSTbjwOB1mCFMLF1zoUReXofXeBOAO1U=";
+    hash = "sha256-Eex2Bts0A6Lu5M626idVK3lqVCX+2WosD8YrQP4DuC8=";
   };
 
-  vendorHash = "sha256-3fElvsy248lRwmIKWv8ac6BLJ1y5Qyr+kKh/1vprmvo=";
+  vendorHash = "sha256-cr9Y72ilUZxAjOIopx7VmZVtE8TxJhxdKSJIj6NawRI=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -46,7 +46,7 @@ buildGoModule {
   '';
 
   meta = {
-    description = "A cross-platform CLI to interact with an OpenFGA server";
+    description = "Cross-platform CLI to interact with an OpenFGA server";
     homepage = "https://github.com/openfga/cli";
     license = lib.licenses.asl20;
     mainProgram = "fga";
diff --git a/pkgs/by-name/op/openfga/package.nix b/pkgs/by-name/op/openfga/package.nix
index 3b034bb11643d..e4421c334df0f 100644
--- a/pkgs/by-name/op/openfga/package.nix
+++ b/pkgs/by-name/op/openfga/package.nix
@@ -7,7 +7,7 @@
 
 let
   pname = "openfga";
-  version = "1.5.3";
+  version = "1.5.4";
 in
 
 buildGoModule {
@@ -17,10 +17,10 @@ buildGoModule {
     owner = "openfga";
     repo = "openfga";
     rev = "v${version}";
-    hash = "sha256-+ECfBG0Z1XnopMPbq9jngcZ3lcSFOIomWo5iD0T1teQ=";
+    hash = "sha256-0K4z5CPNx+MVJ1PeB8rmO8+6hDGZ3ZALTFBWwR2Xl1k=";
   };
 
-  vendorHash = "sha256-MyoqdmNtpsoT08BKA9DPlpldIEXb82qzeXnW4KQXTiE=";
+  vendorHash = "sha256-sihNWuxwptBrVO9sXD2YNP20mgwYU2y4NSb8wqVWmCk=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -49,7 +49,7 @@ buildGoModule {
   '';
 
   meta = {
-    description = "A high performance and flexible authorization/permission engine built for developers and inspired by Google Zanzibar";
+    description = "High performance and flexible authorization/permission engine built for developers and inspired by Google Zanzibar";
     homepage = "https://openfga.dev/";
     license = lib.licenses.asl20;
     mainProgram = "openfga";
diff --git a/pkgs/by-name/op/opengv/package.nix b/pkgs/by-name/op/opengv/package.nix
index ffe10a4d732bb..a0025a29dba77 100644
--- a/pkgs/by-name/op/opengv/package.nix
+++ b/pkgs/by-name/op/opengv/package.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = {
-    description = "A collection of computer vision methods for solving geometric vision problems";
+    description = "Collection of computer vision methods for solving geometric vision problems";
     homepage = "https://github.com/laurentkneip/opengv";
     license = lib.licenses.bsd2;
     longDescription = ''OpenGV is a collection of computer vision methods for solving
diff --git a/pkgs/by-name/op/openh264/package.nix b/pkgs/by-name/op/openh264/package.nix
index 0ece02c3a2b3d..c8eed276e1039 100644
--- a/pkgs/by-name/op/openh264/package.nix
+++ b/pkgs/by-name/op/openh264/package.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://www.openh264.org";
-    description = "A codec library which supports H.264 encoding and decoding";
+    description = "Codec library which supports H.264 encoding and decoding";
     changelog = "https://github.com/cisco/openh264/releases/tag/${finalAttrs.src.rev}";
     license = with lib.licenses; [ bsd2 ];
     maintainers = with lib.maintainers; [ AndersonTorres ];
diff --git a/pkgs/by-name/op/openorienteering-mapper/package.nix b/pkgs/by-name/op/openorienteering-mapper/package.nix
index eef5c0f917911..4a1519337034d 100644
--- a/pkgs/by-name/op/openorienteering-mapper/package.nix
+++ b/pkgs/by-name/op/openorienteering-mapper/package.nix
@@ -84,7 +84,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.openorienteering.org/apps/mapper/";
-    description = "An orienteering mapmaking program";
+    description = "Orienteering mapmaking program";
     changelog = "https://github.com/OpenOrienteering/mapper/releases/tag/v${version}";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ mpickering sikmir ];
diff --git a/pkgs/tools/security/openpgp-card-tools/default.nix b/pkgs/by-name/op/openpgp-card-tools/package.nix
index 009807058661d..a0dbd7e10a253 100644
--- a/pkgs/tools/security/openpgp-card-tools/default.nix
+++ b/pkgs/by-name/op/openpgp-card-tools/package.nix
@@ -4,28 +4,31 @@
 , fetchFromGitea
 , pkg-config
 , pcsclite
-, nettle
-, PCSC
 , testers
 , openpgp-card-tools
+, darwin
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "openpgp-card-tools";
-  version = "0.10.1";
+  version = "0.11.2";
 
   src = fetchFromGitea {
     domain = "codeberg.org";
     owner = "openpgp-card";
     repo = "openpgp-card-tools";
     rev = "v${version}";
-    hash = "sha256-fasu2XElGk6TB2VNFg43rpa3ZafgGZga9WojyUiXj0k=";
+    hash = "sha256-4PRUBzVy1sb15sYsbitBrOfQnsdbGKoR2OA4EjSc8B8=";
   };
 
-  cargoHash = "sha256-7OauQRG8DhIoANfel45QBm3igGjmtNw9KNAwt1TL5xg=";
+  cargoHash = "sha256-Jm1181WQfYZPKnu0f2om/hxkJ8Bm5AA/3IwBgZkpF0I=";
 
   nativeBuildInputs = [ pkg-config rustPlatform.bindgenHook ];
-  buildInputs = [ pcsclite nettle ] ++ lib.optionals stdenv.isDarwin [ PCSC ];
+
+  buildInputs = [ pcsclite ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.PCSC
+    darwin.apple_sdk.frameworks.Security
+  ];
 
   passthru = {
     tests.version = testers.testVersion {
@@ -34,7 +37,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A tool for inspecting and configuring OpenPGP cards";
+    description = "Tool for inspecting and configuring OpenPGP cards";
     homepage = "https://codeberg.org/openpgp-card/openpgp-card-tools";
     license = with licenses ;[ asl20 /* OR */ mit ];
     maintainers = with maintainers; [ nickcao ];
diff --git a/pkgs/by-name/op/openpomodoro-cli/package.nix b/pkgs/by-name/op/openpomodoro-cli/package.nix
index 5e29d1e1c7734..e977bbcfba567 100644
--- a/pkgs/by-name/op/openpomodoro-cli/package.nix
+++ b/pkgs/by-name/op/openpomodoro-cli/package.nix
@@ -23,7 +23,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "A command-line Pomodoro tracker which uses the Open Pomodoro Format";
+    description = "Command-line Pomodoro tracker which uses the Open Pomodoro Format";
     homepage = "https://github.com/open-pomodoro/openpomodoro-cli";
     changelog = "https://github.com/open-pomodoro/openpomodoro-cli/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/by-name/op/opensearch-cli/package.nix b/pkgs/by-name/op/opensearch-cli/package.nix
index ce0a671358045..0cfe572a02f80 100644
--- a/pkgs/by-name/op/opensearch-cli/package.nix
+++ b/pkgs/by-name/op/opensearch-cli/package.nix
@@ -27,7 +27,7 @@ buildGoModule rec {
   '';
 
   meta = {
-    description = "A full-featured command line interface (CLI) for OpenSearch.";
+    description = "Full-featured command line interface (CLI) for OpenSearch";
     homepage = "https://github.com/opensearch-project/opensearch-cli";
     license = lib.licenses.asl20;
     mainProgram = "opensearch-cli";
diff --git a/pkgs/by-name/op/opensnitch-ui/package.nix b/pkgs/by-name/op/opensnitch-ui/package.nix
index a22767daacdc2..7628df552c76d 100644
--- a/pkgs/by-name/op/opensnitch-ui/package.nix
+++ b/pkgs/by-name/op/opensnitch-ui/package.nix
@@ -66,7 +66,7 @@ python3Packages.buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "An application firewall";
+    description = "Application firewall";
     mainProgram = "opensnitch-ui";
     homepage = "https://github.com/evilsocket/opensnitch/wiki";
     license = licenses.gpl3Only;
diff --git a/pkgs/by-name/op/opensnitch/package.nix b/pkgs/by-name/op/opensnitch/package.nix
index df8647bdeb054..dec178c4031c6 100644
--- a/pkgs/by-name/op/opensnitch/package.nix
+++ b/pkgs/by-name/op/opensnitch/package.nix
@@ -1,13 +1,11 @@
 { buildGoModule
 , fetchFromGitHub
-, fetchpatch
 , protobuf
 , go-protobuf
 , pkg-config
 , libnetfilter_queue
 , libnfnetlink
 , lib
-, coreutils
 , iptables
 , makeWrapper
 , protoc-gen-go-grpc
@@ -91,7 +89,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "An application firewall";
+    description = "Application firewall";
     mainProgram = "opensnitchd";
     homepage = "https://github.com/evilsocket/opensnitch/wiki";
     license = licenses.gpl3Only;
diff --git a/pkgs/by-name/op/opentelemetry-cpp/package.nix b/pkgs/by-name/op/opentelemetry-cpp/package.nix
index 5bc1a46ad6ce7..dcb01890a0c32 100644
--- a/pkgs/by-name/op/opentelemetry-cpp/package.nix
+++ b/pkgs/by-name/op/opentelemetry-cpp/package.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "The OpenTelemetry C++ Client Library";
+    description = "OpenTelemetry C++ Client Library";
     homepage = "https://github.com/open-telemetry/opentelemetry-cpp";
     license = [ lib.licenses.asl20 ];
     maintainers = with lib.maintainers; [ jfroche ];
diff --git a/pkgs/by-name/op/openturns/package.nix b/pkgs/by-name/op/openturns/package.nix
index 152714133fa7a..e6f3fb3a5ff7f 100644
--- a/pkgs/by-name/op/openturns/package.nix
+++ b/pkgs/by-name/op/openturns/package.nix
@@ -7,7 +7,6 @@
   darwin,
   dlib,
   fetchFromGitHub,
-  fetchpatch,
   hdf5,
   hmat-oss,
   ipopt,
diff --git a/pkgs/by-name/op/openvas-scanner/package.nix b/pkgs/by-name/op/openvas-scanner/package.nix
index f732a8226ce17..3b75b44a6ef81 100644
--- a/pkgs/by-name/op/openvas-scanner/package.nix
+++ b/pkgs/by-name/op/openvas-scanner/package.nix
@@ -31,13 +31,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openvas-scanner";
-  version = "23.3.0";
+  version = "23.4.1";
 
   src = fetchFromGitHub {
     owner = "greenbone";
     repo = "openvas-scanner";
     rev = "refs/tags/v${version}";
-    hash = "sha256-CkwDhHPdTbXNrqY/obg1rOtGB1HC+fUwZ5+5d82vlV4=";
+    hash = "sha256-D0HQ00NCep0hAQ+dDWoinIxivloqgjPbp2lUunTxoyM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/op/openvr/package.nix b/pkgs/by-name/op/openvr/package.nix
index 418004909ae6e..7d309065df9ee 100644
--- a/pkgs/by-name/op/openvr/package.nix
+++ b/pkgs/by-name/op/openvr/package.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     broken = stdenv.isDarwin;
-    description = "An API and runtime that allows access to VR hardware from multiple vendors without requiring that applications have specific knowledge of the hardware they are targeting";
+    description = "API and runtime that allows access to VR hardware from multiple vendors without requiring that applications have specific knowledge of the hardware they are targeting";
     homepage = "https://github.com/ValveSoftware/openvr";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ Scrumplex ];
diff --git a/pkgs/by-name/op/openvswitch/generic.nix b/pkgs/by-name/op/openvswitch/generic.nix
index 9833661ef5cdc..b3c00ab18203e 100644
--- a/pkgs/by-name/op/openvswitch/generic.nix
+++ b/pkgs/by-name/op/openvswitch/generic.nix
@@ -121,7 +121,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     changelog = "https://www.openvswitch.org/releases/NEWS-${version}.txt";
-    description = "A multilayer virtual switch";
+    description = "Multilayer virtual switch";
     longDescription = ''
       Open vSwitch is a production quality, multilayer virtual switch
       licensed under the open source Apache 2.0 license. It is
diff --git a/pkgs/by-name/op/ophcrack-cli/package.nix b/pkgs/by-name/op/ophcrack-cli/package.nix
new file mode 100644
index 0000000000000..bbc7b8e199788
--- /dev/null
+++ b/pkgs/by-name/op/ophcrack-cli/package.nix
@@ -0,0 +1,73 @@
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, autoreconfHook
+, libtool
+, zlib
+, pkg-config
+, openssl
+, freetype
+, expat
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ophcrack";
+  version = "3.8.0";
+
+  src = fetchurl {
+    url = "https://sourceforge.net/projects/ophcrack/files/ophcrack/3.8.0/ophcrack-3.8.0.tar.bz2";
+    hash = "sha256-BIpt9XmDo6WjGsfE7BLfFqpJ5lKilnbZPU75WdUK7uA=";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    libtool
+    expat
+  ];
+
+  buildInputs = [
+    zlib
+    openssl
+    freetype
+    pkg-config
+  ];
+
+  patches = [
+    (fetchpatch {
+      url = "https://salsa.debian.org/pkg-security-team/ophcrack/-/raw/c60118b40802e1162dcebfe5f881cf973b2334d3/debian/patches/fix_spelling_error.diff";
+      hash = "sha256-Fc044hTU4Mtdym+HukGAwGzaLm7aVzV9KpvHvFUG2Sc=";
+    })
+    (fetchpatch {
+      url = "https://salsa.debian.org/pkg-security-team/ophcrack/-/raw/e19d993a7dbf131d13128366e2aac270a685befc/debian/patches/qmake_crossbuild.diff";
+      hash = "sha256-sOKXOBpAYGLacU6IxjRzy3HCnGm4DFowDL2qP+DzG8M=";
+    })
+  ];
+
+  configureFlags = [
+    "--with-libssl=yes"
+    "--disable-gui"
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    make
+
+    runHook postBuild
+  '';
+
+  postInstall = ''
+    mv $out/bin/ophcrack $out/bin/ophcrack-cli
+  '';
+
+  meta = with lib; {
+    description = "Free Windows password cracker based on rainbow tables";
+    homepage = "https://ophcrack.sourceforge.io";
+    license = with licenses; [ gpl2Plus ];
+    maintainers = with maintainers; [ tochiaha ];
+    mainProgram = "ophcrack-cli";
+    platforms = platforms.all;
+  };
+}
+
diff --git a/pkgs/by-name/op/opshin/package.nix b/pkgs/by-name/op/opshin/package.nix
index 12fd3671cfee6..d7fdf72a8163d 100644
--- a/pkgs/by-name/op/opshin/package.nix
+++ b/pkgs/by-name/op/opshin/package.nix
@@ -28,7 +28,7 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   meta = with lib; {
-    description = "A simple pythonic programming language for Smart Contracts on Cardano";
+    description = "Simple pythonic programming language for Smart Contracts on Cardano";
     homepage = "https://opshin.dev";
     license = licenses.mit;
     maintainers = with maintainers; [ t4ccer ];
diff --git a/pkgs/applications/editors/orbiton/default.nix b/pkgs/by-name/or/orbiton/package.nix
index 1e64c5950798a..eedbfac9e8a6c 100644
--- a/pkgs/applications/editors/orbiton/default.nix
+++ b/pkgs/by-name/or/orbiton/package.nix
@@ -1,16 +1,16 @@
-{ lib, stdenv, buildGoModule, fetchFromGitHub, installShellFiles, makeWrapper, pkg-config
+{ lib, stdenv, buildGo122Module, fetchFromGitHub, installShellFiles, makeWrapper, pkg-config
 , withGui ? true, vte
 }:
 
-buildGoModule rec {
+buildGo122Module rec {
   pname = "orbiton";
-  version = "2.65.11";
+  version = "2.65.12";
 
   src = fetchFromGitHub {
     owner = "xyproto";
     repo = "orbiton";
     rev = "v${version}";
-    hash = "sha256-eb7Ku1hgvYdmRgemXcEZMl53oNXYcomh4wYHpRzLTUc=";
+    hash = "sha256-1KVw2dj//6vwUUj1jVWe2J/9F6J8BQsvCAEbJZnW26c=";
   };
 
   vendorHash = null;
diff --git a/pkgs/by-name/or/orchard/package.nix b/pkgs/by-name/or/orchard/package.nix
index f5996ccbbd169..37bcebe9e4302 100644
--- a/pkgs/by-name/or/orchard/package.nix
+++ b/pkgs/by-name/or/orchard/package.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "orchard";
-  version = "0.18.0";
+  version = "0.19.0";
 
   src = fetchFromGitHub {
     owner = "cirruslabs";
     repo = pname;
     rev = version;
-    hash = "sha256-rzfGECRa3IPt9LRX8Av7NabaIzaKfxzkOR85q9zl9sk=";
+    hash = "sha256-8E5U+2JTc0GYteoKqYn3JRrMx6ta1J+0GR3Jtn+NkYk=";
     # populate values that require us to use git. By doing this in postFetch we
     # can delete .git afterwards and maintain better reproducibility of the src.
     leaveDotGit = true;
@@ -19,7 +19,7 @@ buildGoModule rec {
     '';
   };
 
-  vendorHash = "sha256-dVWCxEmqzJw9oN6mCwFVn81Mhq4XfBEM3iXHQn4NXko=";
+  vendorHash = "sha256-icV4MOVzPSCGhFTIixWA02Jcf/7qhQwG4sBx1kRoJks=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/by-name/or/ord/package.nix b/pkgs/by-name/or/ord/package.nix
new file mode 100644
index 0000000000000..6b985dcf968bf
--- /dev/null
+++ b/pkgs/by-name/or/ord/package.nix
@@ -0,0 +1,48 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, openssl
+, stdenv
+, darwin
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "ord";
+  version = "0.18.5";
+
+  src = fetchFromGitHub {
+    owner = "ordinals";
+    repo = "ord";
+    rev = version;
+    hash = "sha256-rqyf2GZ3lhYSSr14S+JXJYCYZC+7BbFzxLOourykMas=";
+  };
+
+  cargoHash = "sha256-SjD5S8GVjfpIvA++eiNebn9M33aRvrXL+MyqZTK2e4U=";
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    openssl
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Security
+    darwin.apple_sdk.frameworks.SystemConfiguration
+  ];
+
+  dontUseCargoParallelTests = true;
+
+  checkFlags = [
+    "--skip=subcommand::server::tests::status" # test fails if it built from source tarball
+  ];
+
+  meta = with lib; {
+    description = "Index, block explorer, and command-line wallet for Ordinals";
+    homepage = "https://github.com/ordinals/ord";
+    changelog = "https://github.com/ordinals/ord/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.cc0;
+    maintainers = with maintainers; [ xrelkd ];
+    mainProgram = "ord";
+  };
+}
diff --git a/pkgs/by-name/or/ory/package.nix b/pkgs/by-name/or/ory/package.nix
index d4fb9aa9e7d8b..01c6424513af5 100644
--- a/pkgs/by-name/or/ory/package.nix
+++ b/pkgs/by-name/or/ory/package.nix
@@ -35,7 +35,7 @@ buildGoModule rec {
 
   meta = with lib; {
     mainProgram = "ory";
-    description = "The Ory CLI";
+    description = "Ory CLI";
     homepage = "https://www.ory.sh/cli";
     license = licenses.asl20;
     maintainers = with maintainers; [ luleyleo nicolas-goudry ];
diff --git a/pkgs/by-name/ot/oterm/package.nix b/pkgs/by-name/ot/oterm/package.nix
index c321aca862362..9651b8d9cf3ba 100644
--- a/pkgs/by-name/ot/oterm/package.nix
+++ b/pkgs/by-name/ot/oterm/package.nix
@@ -6,14 +6,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "oterm";
-  version = "0.2.8";
+  version = "0.2.9";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "ggozad";
     repo = "oterm";
     rev = "refs/tags/${version}";
-    hash = "sha256-6UFNsEc6bYBrBYfCbeiDfemueeRMEXHGCT8junZVFtk=";
+    hash = "sha256-UOZxktgpuTxkE1+DVnd5T1Fye+2SS2hUDmWtCaGEol0=";
   };
 
   pythonRelaxDeps = [
@@ -22,6 +22,7 @@ python3Packages.buildPythonApplication rec {
     "ollama"
     "packaging"
     "pillow"
+    "textual"
     "typer"
   ];
 
@@ -29,7 +30,7 @@ python3Packages.buildPythonApplication rec {
 
   nativeBuildInputs = with python3Packages; [ pythonRelaxDepsHook ];
 
-  propagatedBuildInputs = with python3Packages; [
+  dependencies = with python3Packages; [
     aiohttp
     aiosql
     aiosqlite
@@ -50,11 +51,11 @@ python3Packages.buildPythonApplication rec {
   doCheck = false;
 
   meta = {
-    description = "A text-based terminal client for Ollama";
+    description = "Text-based terminal client for Ollama";
     homepage = "https://github.com/ggozad/oterm";
     changelog = "https://github.com/ggozad/oterm/releases/tag/${version}";
     license = lib.licenses.mit;
-    mainProgram = "oterm";
     maintainers = with lib.maintainers; [ suhr ];
+    mainProgram = "oterm";
   };
 }
diff --git a/pkgs/by-name/ot/otus-lisp/package.nix b/pkgs/by-name/ot/otus-lisp/package.nix
index ba51c417fdb85..71030e9a209e1 100644
--- a/pkgs/by-name/ot/otus-lisp/package.nix
+++ b/pkgs/by-name/ot/otus-lisp/package.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation (finalAttrs: {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = {
-    description = "A purely functional dialect of Lisp";
+    description = "Purely functional dialect of Lisp";
     homepage = "https://yuriy-chumak.github.io/ol/";
     license = with lib.licenses; [ mit lgpl3Only ]; # dual licensed
     platforms = lib.platforms.unix;
diff --git a/pkgs/by-name/ou/outfox/package.nix b/pkgs/by-name/ou/outfox/package.nix
index b18ed662faff5..4e8942073d9e2 100644
--- a/pkgs/by-name/ou/outfox/package.nix
+++ b/pkgs/by-name/ou/outfox/package.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A rhythm game engine forked from StepMania";
+    description = "Rhythm game engine forked from StepMania";
     homepage = "https://projectoutfox.com";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
diff --git a/pkgs/by-name/ou/outputcheck/package.nix b/pkgs/by-name/ou/outputcheck/package.nix
index 22b033ea11923..f9ec2fd3c2f07 100644
--- a/pkgs/by-name/ou/outputcheck/package.nix
+++ b/pkgs/by-name/ou/outputcheck/package.nix
@@ -43,7 +43,7 @@ python3.pkgs.buildPythonApplication rec {
   pythonImportsCheck = [ "OutputCheck" ];
 
   meta = with lib; {
-    description = "A tool for checking tool output inspired by LLVM's FileCheck";
+    description = "Tool for checking tool output inspired by LLVM's FileCheck";
     homepage = "https://github.com/stp/OutputCheck";
     license = licenses.bsd3;
     maintainers = with maintainers; [ fsagbuya ];
diff --git a/pkgs/by-name/ow/owncloud-client/package.nix b/pkgs/by-name/ow/owncloud-client/package.nix
index e30304fde30b9..31f2b52b00bb2 100644
--- a/pkgs/by-name/ow/owncloud-client/package.nix
+++ b/pkgs/by-name/ow/owncloud-client/package.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "owncloud-client";
-  version = "5.2.1";
+  version = "5.3.1";
 
   src = fetchFromGitHub {
     owner = "owncloud";
     repo = "client";
     rev = "refs/tags/v${version}";
-    hash = "sha256-yErMHh0QbWVpJhNiXU1IIGpQ5CGARN/4cqELRMoxSac=";
+    hash = "sha256-ot+2hxipeZ5eI6nPJ8XGE8gFMNQoblUq+koAFZpZDv4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/pa/pablodraw/package.nix b/pkgs/by-name/pa/pablodraw/package.nix
index 1f1d4ccd7935d..793abf7f0158e 100644
--- a/pkgs/by-name/pa/pablodraw/package.nix
+++ b/pkgs/by-name/pa/pablodraw/package.nix
@@ -58,7 +58,7 @@ buildDotnetModule rec {
   '';
 
   meta = with lib; {
-    description = "An Ansi/Ascii text and RIPscrip vector graphic art editor/viewer with multi-user capabilities";
+    description = "Ansi/Ascii text and RIPscrip vector graphic art editor/viewer with multi-user capabilities";
     homepage = "https://picoe.ca/products/pablodraw";
     license = licenses.mit;
     mainProgram = "PabloDraw";
diff --git a/pkgs/by-name/pa/pacproxy/package.nix b/pkgs/by-name/pa/pacproxy/package.nix
index 9b6538b1c85c2..b92cf6e10aceb 100644
--- a/pkgs/by-name/pa/pacproxy/package.nix
+++ b/pkgs/by-name/pa/pacproxy/package.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
   vendorHash = "sha256-0Go+xwzaT1qt+cJfcPkC8ft3eB/OZCvOi2Pnn/A/rtQ=";
 
   meta = with lib; {
-    description = "A no-frills local HTTP proxy server powered by a proxy auto-config (PAC) file";
+    description = "No-frills local HTTP proxy server powered by a proxy auto-config (PAC) file";
     homepage = "https://github.com/williambailey/pacproxy";
     changelog = "https://github.com/williambailey/pacproxy/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/by-name/pa/pacu/package.nix b/pkgs/by-name/pa/pacu/package.nix
index ff69f23d6b298..46143afdb5e38 100644
--- a/pkgs/by-name/pa/pacu/package.nix
+++ b/pkgs/by-name/pa/pacu/package.nix
@@ -12,14 +12,14 @@ let
 in
 python.pkgs.buildPythonApplication rec {
   pname = "pacu";
-  version = "1.5.3";
+  version = "1.6.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "RhinoSecurityLabs";
     repo = "pacu";
     rev = "refs/tags/v${version}";
-    hash = "sha256-DLyTWyfDOawtBZ7rIzVc0PFgagpM7qbaAbOJE6nh0Wo=";
+    hash = "sha256-Td5H4O6/7Gh/rvP191xjCJmIbyc4ezZC5Fh4FZ39ZUM=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/desktops/pantheon/third-party/pantheon-tweaks/default.nix b/pkgs/by-name/pa/pantheon-tweaks/package.nix
index c05c4b9b0a251..fc49c062d907b 100644
--- a/pkgs/desktops/pantheon/third-party/pantheon-tweaks/default.nix
+++ b/pkgs/by-name/pa/pantheon-tweaks/package.nix
@@ -7,6 +7,7 @@
 , pkg-config
 , python3
 , vala
+, wrapGAppsHook3
 , gtk3
 , libgee
 , pantheon
@@ -14,25 +15,22 @@
 
 stdenv.mkDerivation rec {
   pname = "pantheon-tweaks";
-  version = "1.1.2";
+  version = "2.0.2";
 
   src = fetchFromGitHub {
     owner = "pantheon-tweaks";
     repo = pname;
     rev = version;
-    sha256 = "sha256-E9YSRfh9bLAHn2y4p3aKwR5NOtexKokLWj3RwtDnLsQ=";
+    hash = "sha256-7a6maEpvmIS+Raawr9ec44nCbuj83EUnd+8RqYgWy24=";
   };
 
-  patches = [
-    ./fix-paths.patch
-  ];
-
   nativeBuildInputs = [
     meson
     ninja
     pkg-config
     python3
     vala
+    wrapGAppsHook3
   ];
 
   buildInputs = [
@@ -42,12 +40,14 @@ stdenv.mkDerivation rec {
     elementary-files # settings schemas
     elementary-terminal # settings schemas
     granite
-    switchboard
   ]);
 
   postPatch = ''
     chmod +x meson/post_install.py
     patchShebangs meson/post_install.py
+
+    substituteInPlace src/Settings/ThemeSettings.vala \
+      --replace-fail "/usr/share/" "/run/current-system/sw/share/"
   '';
 
   passthru = {
@@ -55,15 +55,15 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "Unofficial system settings panel for Pantheon";
+    description = "Unofficial system customization app for Pantheon";
     longDescription = ''
-      Unofficial system settings panel for Pantheon
+      Unofficial system customization app for Pantheon
       that lets you easily and safely customise your desktop's appearance.
-      Use programs.pantheon-tweaks.enable to add this to your switchboard.
     '';
     homepage = "https://github.com/pantheon-tweaks/pantheon-tweaks";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = teams.pantheon.members;
+    mainProgram = "pantheon-tweaks";
   };
 }
diff --git a/pkgs/by-name/pa/paper-age/package.nix b/pkgs/by-name/pa/paper-age/package.nix
index 3a2c20f95bb43..64a90eba0aa14 100644
--- a/pkgs/by-name/pa/paper-age/package.nix
+++ b/pkgs/by-name/pa/paper-age/package.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "paper-age";
-  version = "1.3.0";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "matiaskorhonen";
     repo = "paper-age";
     rev = "v${version}";
-    hash = "sha256-hrqjnZmcGUgFWn8Z85oJEbeUBaF2SccytMr1AG0GGos=";
+    hash = "sha256-WWRX5St701ja/7wl4beiqD3+ZEEsb9n5N/pbbjdrgDM=";
   };
 
-  cargoHash = "sha256-sFofS+POvJwGo/+tiF6dawKgQci/54tUKkQQalqT+K0=";
+  cargoHash = "sha256-Ede/BNLTSJPMsu/uYyowuUxBVu1oggiqKcE+vWHCtgU=";
 
   meta = with lib; {
     description = "Easy and secure paper backups of secrets";
diff --git a/pkgs/by-name/pa/parallel-hashmap/package.nix b/pkgs/by-name/pa/parallel-hashmap/package.nix
index 767b760c920a5..6a944d804fce8 100644
--- a/pkgs/by-name/pa/parallel-hashmap/package.nix
+++ b/pkgs/by-name/pa/parallel-hashmap/package.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
   doCheck = true;
 
   meta = with lib; {
-    description = "A family of header-only, very fast and memory-friendly hashmap and btree containers";
+    description = "Family of header-only, very fast and memory-friendly hashmap and btree containers";
     homepage = "https://github.com/greg7mdp/parallel-hashmap";
     changelog = "https://github.com/greg7mdp/parallel-hashmap/releases/tag/${finalAttrs.src.rev}";
     license = licenses.asl20;
diff --git a/pkgs/by-name/pa/parinfer-rust-emacs/package.nix b/pkgs/by-name/pa/parinfer-rust-emacs/package.nix
index ec1c89edb343e..8bed804d3d66e 100644
--- a/pkgs/by-name/pa/parinfer-rust-emacs/package.nix
+++ b/pkgs/by-name/pa/parinfer-rust-emacs/package.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-LmfcY9iR7BGh3dF/raSZTIwburtaQRI3I3XvOZG343M=";
 
   meta = with lib; {
-    description = "An emacs centric fork of parinfer-rust";
+    description = "Emacs centric fork of parinfer-rust";
     mainProgram = "parinfer-rust";
     homepage = "https://github.com/justinbarclay/parinfer-rust-emacs";
     license = licenses.isc;
diff --git a/pkgs/by-name/pa/passes/package.nix b/pkgs/by-name/pa/passes/package.nix
index e7abf9d95f009..a20a1fe80b84a 100644
--- a/pkgs/by-name/pa/passes/package.nix
+++ b/pkgs/by-name/pa/passes/package.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A digital pass manager";
+    description = "Digital pass manager";
     mainProgram = "passes";
     homepage = "https://github.com/pablo-s/passes";
     license = licenses.gpl3Plus;
diff --git a/pkgs/by-name/pa/passmark-performancetest/package.nix b/pkgs/by-name/pa/passmark-performancetest/package.nix
index 5fbb4f3199c84..72914a647126f 100644
--- a/pkgs/by-name/pa/passmark-performancetest/package.nix
+++ b/pkgs/by-name/pa/passmark-performancetest/package.nix
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A software tool that allows everybody to quickly assess the performance of their computer and compare it to a number of standard 'baseline' computer systems.";
+    description = "Software tool that allows everybody to quickly assess the performance of their computer and compare it to a number of standard 'baseline' computer systems";
     homepage = "https://www.passmark.com";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
diff --git a/pkgs/by-name/pa/passt/package.nix b/pkgs/by-name/pa/passt/package.nix
index 8a149b07a940e..6daf6ae1919a2 100644
--- a/pkgs/by-name/pa/passt/package.nix
+++ b/pkgs/by-name/pa/passt/package.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "passt";
-  version = "2024_04_26.d03c4e2";
+  version = "2024_05_23.765eb0b";
 
   src = fetchurl {
     url = "https://passt.top/passt/snapshot/passt-${finalAttrs.version}.tar.gz";
-    hash = "sha256-SE9ae4ewwgpGv+Mc1GwUsAi2VZS26Ne7Flvw1ggjb4U=";
+    hash = "sha256-4i+83uv7fXeK4/0bf1FYGALKwjCqCx51rQAGTOnbrNE=";
   };
 
   makeFlags = [
diff --git a/pkgs/by-name/pa/patch2pr/package.nix b/pkgs/by-name/pa/patch2pr/package.nix
index 488d2f8583772..0795adf94f5f8 100644
--- a/pkgs/by-name/pa/patch2pr/package.nix
+++ b/pkgs/by-name/pa/patch2pr/package.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "patch2pr";
-  version = "0.24.0";
+  version = "0.25.0";
 
   src = fetchFromGitHub {
     owner = "bluekeyes";
     repo = "patch2pr";
     rev = "v${version}";
-    hash = "sha256-ot/PECNRuhJUYX1woektKC6VEV+rLKiSnCVCLIRhSUo=";
+    hash = "sha256-mS7Yz1RPeA/pms3gGQ1oEjtzH9miIOWlf6YrrIoJk94=";
   };
 
-  vendorHash = "sha256-K2qYfS0A1gOo2n3pBy00oLbd1/q/p5N8RoId+OP1Jmw=";
+  vendorHash = "sha256-XJC4rJI+adqiyFfiuyTbrAoWDiTThz7vjDZQrchDEiA=";
 
   ldflags = [
     "-X main.version=${version}"
diff --git a/pkgs/by-name/pa/payloadsallthethings/package.nix b/pkgs/by-name/pa/payloadsallthethings/package.nix
new file mode 100644
index 0000000000000..9e70611c7d283
--- /dev/null
+++ b/pkgs/by-name/pa/payloadsallthethings/package.nix
@@ -0,0 +1,33 @@
+{ lib
+, fetchFromGitHub
+, stdenvNoCC
+}:
+
+stdenvNoCC.mkDerivation {
+  pname = "payloadsallthethings";
+  version = "3.0-unstable-2024-01-21";
+
+  src = fetchFromGitHub {
+    owner = "swisskyrepo";
+    repo = "PayloadsAllTheThings";
+    rev = "97cfeee270395a838802fa1fcb8a4d5ffc6d6b48";
+    hash = "sha256-LRS60v0o5nPSLfGFH6P0Y5roN8Mk5/KyRF4SWTv/7Hw=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/payloadsallthethings
+    rm CONTRIBUTING.md mkdocs.yml custom.css
+    cp -a * $out/share/payloadsallthethings
+    runHook postInstall
+  '';
+
+  meta = {
+    homepage = "https://github.com/swisskyrepo/PayloadsAllTheThings";
+    description = "List of useful payloads and bypass for Web Application Security and Pentest/CTF";
+    license = with lib.licenses; [ mit ];
+    maintainers = with lib.maintainers; [ shard7 ];
+    platforms = lib.platforms.all;
+    sourceProvenance = with lib.sourceTypes; [ fromSource ];
+  };
+}
diff --git a/pkgs/applications/emulators/pcsx2/define-rev.patch b/pkgs/by-name/pc/pcsx2/define-rev.patch
index 1f970b1a073be..1f970b1a073be 100644
--- a/pkgs/applications/emulators/pcsx2/define-rev.patch
+++ b/pkgs/by-name/pc/pcsx2/define-rev.patch
diff --git a/pkgs/applications/emulators/pcsx2/default.nix b/pkgs/by-name/pc/pcsx2/package.nix
index cb39b5417b095..89efacebb5159 100644
--- a/pkgs/applications/emulators/pcsx2/default.nix
+++ b/pkgs/by-name/pc/pcsx2/package.nix
@@ -2,64 +2,77 @@
 , fetchFromGitHub
 , lib
 , llvmPackages_17
+, callPackage
 , cubeb
 , curl
 , extra-cmake-modules
+, fetchpatch
 , ffmpeg
 , libaio
 , libbacktrace
 , libpcap
 , libwebp
 , libXrandr
-, libzip
 , lz4
 , makeWrapper
 , pkg-config
-, qtbase
-, qtsvg
-, qttools
-, qtwayland
+, qt6
 , SDL2
 , soundtouch
 , strip-nondeterminism
 , vulkan-headers
 , vulkan-loader
 , wayland
-, wrapQtAppsHook
-, xz
 , zip
 , zstd
 }:
 
 let
+  shaderc-patched = callPackage ./shaderc-patched.nix { };
   # The pre-zipped files in releases don't have a versioned link, we need to zip them ourselves
   pcsx2_patches = fetchFromGitHub {
     owner = "PCSX2";
     repo = "pcsx2_patches";
-    rev = "e3b354f144de71d2b87471166cca8911867c1dfd";
-    sha256 = "sha256-H7cFyBYZumcCZ0/FFOFZoChoi0XPs4siA4dHcFt9U7k=";
+    rev = "b3a788e16ea12efac006cbbe1ece45b6b9b34326";
+    sha256 = "sha256-Uvpz2Gpj533Sr6wLruubZxssoXefQDey8GHIDKWhW3s=";
   };
+  inherit (qt6)
+    qtbase
+    qtsvg
+    qttools
+    qtwayland
+    wrapQtAppsHook
+  ;
 in
-llvmPackages_17.stdenv.mkDerivation rec {
+llvmPackages_17.stdenv.mkDerivation (finalAttrs: {
   pname = "pcsx2";
-  version = "1.7.5587";
+  version = "1.7.5779";
 
   src = fetchFromGitHub {
     owner = "PCSX2";
     repo = "pcsx2";
     fetchSubmodules = true;
-    rev = "v${version}";
-    sha256 = "sha256-PCZ1r6x28Z5FEVMXWm4oxpTknz/XEiwo0rRGhn4B33g=";
+    rev = "v${finalAttrs.version}";
+    sha256 = "sha256-WiwnP5yoBy8bRLUPuCZ7z4nhIzrY8P29KS5ZjErM/A4=";
   };
 
   patches = [
     ./define-rev.patch
+    # Backport patches to fix random crashes on startup
+    (fetchpatch {
+      url = "https://github.com/PCSX2/pcsx2/commit/e47bcf8d80df9a93201eefbaf169ec1a0673a833.patch";
+      sha256 = "sha256-7CL1Kpu+/JgtKIenn9rQKAs3A+oJ40W5XHlqSg77Q7Y=";
+    })
+    (fetchpatch {
+      url = "https://github.com/PCSX2/pcsx2/commit/92b707db994f821bccc35d6eef67727ea3ab496b.patch";
+      sha256 = "sha256-HWJ8KZAY/qBBotAJerZg6zi5QUHuTD51zKH1rAtZ3tc=";
+    })
   ];
 
   cmakeFlags = [
-    "-DDISABLE_ADVANCE_SIMD=ON"
-    "-DUSE_LINKED_FFMPEG=ON"
-    "-DPCSX2_GIT_REV=v${version}"
+    (lib.cmakeBool "DISABLE_ADVANCE_SIMD" true)
+    (lib.cmakeBool "USE_LINKED_FFMPEG" true)
+    (lib.cmakeFeature "PCSX2_GIT_REV" finalAttrs.src.rev)
   ];
 
   nativeBuildInputs = [
@@ -79,17 +92,16 @@ llvmPackages_17.stdenv.mkDerivation rec {
     libpcap
     libwebp
     libXrandr
-    libzip
     lz4
     qtbase
     qtsvg
     qttools
     qtwayland
     SDL2
+    shaderc-patched
     soundtouch
     vulkan-headers
     wayland
-    xz
     zstd
   ]
   ++ cubeb.passthru.backendLibs;
@@ -132,9 +144,9 @@ llvmPackages_17.stdenv.mkDerivation rec {
       PC, with many additional features and benefits.
     '';
     homepage = "https://pcsx2.net";
-    license = with licenses; [ gpl3 lgpl3 ];
+    license = with licenses; [ gpl3Plus lgpl3Plus ];
     maintainers = with maintainers; [ hrdinka govanify ];
     mainProgram = "pcsx2-qt";
-    platforms = platforms.x86_64;
+    platforms = [ "x86_64-linux" ];
   };
-}
+})
diff --git a/pkgs/by-name/pc/pcsx2/shaderc-patched.nix b/pkgs/by-name/pc/pcsx2/shaderc-patched.nix
new file mode 100644
index 0000000000000..82f9721a87d61
--- /dev/null
+++ b/pkgs/by-name/pc/pcsx2/shaderc-patched.nix
@@ -0,0 +1,20 @@
+{
+  fetchpatch,
+  pcsx2,
+  shaderc,
+}:
+
+shaderc.overrideAttrs (old: {
+  pname = "shaderc-patched-for-pcsx2";
+  patches = (old.patches or [ ]) ++ [
+    (fetchpatch {
+      url = "file://${pcsx2.src}/.github/workflows/scripts/common/shaderc-changes.patch";
+      hash = "sha256-Ps/D+CdSbjVWg3ZGOEcgbpQbCNkI5Nuizm4E5qiM9Wo=";
+      excludes = [
+        "CHANGES"
+        "CMakeLists.txt"
+        "libshaderc/CMakeLists.txt"
+      ];
+    })
+  ];
+})
diff --git a/pkgs/by-name/pd/pdepend/package.nix b/pkgs/by-name/pd/pdepend/package.nix
index 412bdc0a89550..ca92bb0e10d71 100644
--- a/pkgs/by-name/pd/pdepend/package.nix
+++ b/pkgs/by-name/pd/pdepend/package.nix
@@ -19,7 +19,7 @@ php.buildComposerProject (finalAttrs: {
 
   meta = {
     changelog = "https://github.com/pdepend/pdepend/releases/tag/${finalAttrs.version}";
-    description = "An adaptation of JDepend for PHP";
+    description = "Adaptation of JDepend for PHP";
     homepage = "https://github.com/pdepend/pdepend";
     license = lib.licenses.bsd3;
     longDescription = "
diff --git a/pkgs/by-name/pd/pdf-sign/package.nix b/pkgs/by-name/pd/pdf-sign/package.nix
index 8dd23f5f76d77..9ec4f32ec4c49 100644
--- a/pkgs/by-name/pd/pdf-sign/package.nix
+++ b/pkgs/by-name/pd/pdf-sign/package.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "A tool to visually sign PDF files";
+    description = "Tool to visually sign PDF files";
     homepage = "https://github.com/svenssonaxel/pdf-sign";
     license = lib.licenses.mit;
     mainProgram = "pdf-sign";
diff --git a/pkgs/by-name/pd/pdfannots2json/package.nix b/pkgs/by-name/pd/pdfannots2json/package.nix
index 9d32f9a7c92cf..23776a452752b 100644
--- a/pkgs/by-name/pd/pdfannots2json/package.nix
+++ b/pkgs/by-name/pd/pdfannots2json/package.nix
@@ -19,7 +19,7 @@ in
     meta = with lib; {
       homepage = "https://github.com/mgmeyers/pdfannots2json";
       license = licenses.agpl3Only;
-      description = "A tool to convert PDF annotations to JSON";
+      description = "Tool to convert PDF annotations to JSON";
       mainProgram = "pdfannots2json";
       maintainers = with maintainers; [ _0nyr ];
     };
diff --git a/pkgs/by-name/pd/pdk/Gemfile b/pkgs/by-name/pd/pdk/Gemfile
index 9b3016e96bf7e..1e165ac0c6c17 100644
--- a/pkgs/by-name/pd/pdk/Gemfile
+++ b/pkgs/by-name/pd/pdk/Gemfile
@@ -1,2 +1,2 @@
 source 'https://rubygems.org'
-gem 'pdk', '3.0.1'
+gem 'pdk', '3.2.0'
diff --git a/pkgs/by-name/pd/pdk/Gemfile.lock b/pkgs/by-name/pd/pdk/Gemfile.lock
index 85ab3bacbae5d..cd5c071a641b3 100644
--- a/pkgs/by-name/pd/pdk/Gemfile.lock
+++ b/pkgs/by-name/pd/pdk/Gemfile.lock
@@ -4,35 +4,26 @@ GEM
     addressable (2.8.6)
       public_suffix (>= 2.0.2, < 6.0)
     childprocess (4.1.0)
-    concurrent-ruby (1.1.10)
     cri (2.15.11)
     deep_merge (1.2.2)
     diff-lcs (1.5.1)
-    facter (4.6.1)
-      hocon (~> 1.3)
-      thor (>= 1.0.1, < 2.0)
-    ffi (1.16.3)
+    ffi (1.17.0)
     hitimes (2.0.0)
-    hocon (1.4.0)
-    httpclient (2.8.3)
-    json-schema (4.2.0)
+    json-schema (4.3.0)
       addressable (>= 2.8)
     json_pure (2.6.3)
     minitar (0.9)
     pastel (0.8.0)
       tty-color (~> 0.5)
     pathspec (1.1.3)
-    pdk (3.0.1)
+    pdk (3.2.0)
       bundler (>= 2.1.0, < 3.0.0)
       childprocess (~> 4.1.0)
-      concurrent-ruby (= 1.1.10)
       cri (~> 2.15.11)
       deep_merge (~> 1.2.2)
       diff-lcs (>= 1.5.0)
-      facter (~> 4.0)
       ffi (>= 1.15.5, < 2.0.0)
       hitimes (= 2.0.0)
-      httpclient (~> 2.8.3)
       json-schema (~> 4.0)
       json_pure (~> 2.6.3)
       minitar (~> 0.8)
@@ -40,8 +31,7 @@ GEM
       tty-prompt (~> 0.23)
       tty-spinner (~> 0.9)
       tty-which (~> 0.5)
-    public_suffix (5.0.4)
-    thor (1.3.1)
+    public_suffix (5.0.5)
     tty-color (0.6.0)
     tty-cursor (0.7.1)
     tty-prompt (0.23.1)
@@ -61,7 +51,7 @@ PLATFORMS
   ruby
 
 DEPENDENCIES
-  pdk (= 3.0.1)
+  pdk (= 3.2.0)
 
 BUNDLED WITH
-   2.5.6
+   2.5.9
diff --git a/pkgs/by-name/pd/pdk/gemset.nix b/pkgs/by-name/pd/pdk/gemset.nix
index 6d8fa5dceb082..28f276022d0e6 100644
--- a/pkgs/by-name/pd/pdk/gemset.nix
+++ b/pkgs/by-name/pd/pdk/gemset.nix
@@ -20,16 +20,6 @@
     };
     version = "4.1.0";
   };
-  concurrent-ruby = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0s4fpn3mqiizpmpy2a24k4v365pv75y50292r8ajrv4i1p5b2k14";
-      type = "gem";
-    };
-    version = "1.1.10";
-  };
   cri = {
     groups = ["default"];
     platforms = [];
@@ -60,26 +50,15 @@
     };
     version = "1.5.1";
   };
-  facter = {
-    dependencies = ["hocon" "thor"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0pxpldfcf40dr9khra3sa131ij7gzd97bba2vpw89c785pl736a7";
-      type = "gem";
-    };
-    version = "4.6.1";
-  };
   ffi = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yvii03hcgqj30maavddqamqy50h7y6xcn2wcyq72wn823zl4ckd";
+      sha256 = "07139870npj59jnl8vmk39ja3gdk3fb5z9vc0lf32y2h891hwqsi";
       type = "gem";
     };
-    version = "1.16.3";
+    version = "1.17.0";
   };
   hitimes = {
     groups = ["default"];
@@ -91,36 +70,16 @@
     };
     version = "2.0.0";
   };
-  hocon = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "106dmzsl1bxkqw5xaif012nwwfr3k9wff32cqc77ibjngknj6477";
-      type = "gem";
-    };
-    version = "1.4.0";
-  };
-  httpclient = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99";
-      type = "gem";
-    };
-    version = "2.8.3";
-  };
   json-schema = {
     dependencies = ["addressable"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1h23nlk1a5xg7ayayzkanrgy3s5sk57vmc3awqbplqwzf8827rdd";
+      sha256 = "1ljqbpjc5aa8a2cgq8f64iwbx7rr9dqvpk7v8n5jpslyz6mvyddc";
       type = "gem";
     };
-    version = "4.2.0";
+    version = "4.3.0";
   };
   json_pure = {
     groups = ["default"];
@@ -164,35 +123,25 @@
     version = "1.1.3";
   };
   pdk = {
-    dependencies = ["childprocess" "concurrent-ruby" "cri" "deep_merge" "diff-lcs" "facter" "ffi" "hitimes" "httpclient" "json-schema" "json_pure" "minitar" "pathspec" "tty-prompt" "tty-spinner" "tty-which"];
+    dependencies = ["childprocess" "cri" "deep_merge" "diff-lcs" "ffi" "hitimes" "json-schema" "json_pure" "minitar" "pathspec" "tty-prompt" "tty-spinner" "tty-which"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1imb1bqda7xxq38r2fvq9qphr4d1shy7c2v1agw50a736g4346x2";
+      sha256 = "1avc2dgcdi9l6xam9crka790jhpx04536387f1vq2p9yqpr5lw7h";
       type = "gem";
     };
-    version = "3.0.1";
+    version = "3.2.0";
   };
   public_suffix = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bni4qjrsh2q49pnmmd6if4iv3ak36bd2cckrs6npl111n769k9m";
-      type = "gem";
-    };
-    version = "5.0.4";
-  };
-  thor = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1vq1fjp45az9hfp6fxljhdrkv75cvbab1jfrwcw738pnsiqk8zps";
+      sha256 = "14y4vzjwf5gp0mqgs880kis0k7n2biq8i6ci6q2n315kichl1hvj";
       type = "gem";
     };
-    version = "1.3.1";
+    version = "5.0.5";
   };
   tty-color = {
     groups = ["default"];
diff --git a/pkgs/by-name/pd/pdns-recursor/package.nix b/pkgs/by-name/pd/pdns-recursor/package.nix
index e2ba9cf842fbe..6de1ebd93f36e 100644
--- a/pkgs/by-name/pd/pdns-recursor/package.nix
+++ b/pkgs/by-name/pd/pdns-recursor/package.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A recursive DNS server";
+    description = "Recursive DNS server";
     homepage = "https://www.powerdns.com/";
     platforms = platforms.linux;
     badPlatforms = [
diff --git a/pkgs/by-name/pd/pdpmake/package.nix b/pkgs/by-name/pd/pdpmake/package.nix
index 808de7bb755d7..af6960be9e68a 100644
--- a/pkgs/by-name/pd/pdpmake/package.nix
+++ b/pkgs/by-name/pd/pdpmake/package.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchFromGitHub }:
 stdenv.mkDerivation rec {
   pname = "pdpmake";
-  version = "1.4.1";
+  version = "1.4.3";
 
   src = fetchFromGitHub {
     owner = "rmyorston";
     repo = "pdpmake";
     rev = version;
-    hash = "sha256-N9MT+3nE8To0ktNTPT9tDHkKRrn4XsTYiTeYdBk9VtI=";
+    hash = "sha256-drHo8IUC3xQ/O6T4xCMQSK9m+O/6hTOJSw0OMl1W9WA=";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/pkgs/by-name/pe/peergos/package.nix b/pkgs/by-name/pe/peergos/package.nix
index dc142f44ce591..7485e7413627b 100644
--- a/pkgs/by-name/pe/peergos/package.nix
+++ b/pkgs/by-name/pe/peergos/package.nix
@@ -9,10 +9,10 @@
 
 stdenv.mkDerivation rec {
   pname = "peergos";
-  version = "0.17.0";
+  version = "0.18.0";
   src = fetchurl {
     url = "https://github.com/Peergos/web-ui/releases/download/v${version}/Peergos.jar";
-    hash = "sha256-sQPEKvtQDRQ4dF22tZjPhK7DLtDVAcudxoA4+GOeeZA=";
+    hash = "sha256-qscNGuptkRd7bQhIq51bJ/cH2Gzn60lB4IUT9RK6eIo=";
   };
 
   dontUnpack = true;
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     changelog = "https://github.com/Peergos/web-ui/releases/tag/v${version}";
-    description = "A p2p, secure file storage, social network and application protocol";
+    description = "P2p, secure file storage, social network and application protocol";
     downloadPage = "https://github.com/Peergos/web-ui";
     homepage = "https://peergos.org/";
     # peergos have agpt3 license, peergos-web-ui have gpl3, both are used
diff --git a/pkgs/by-name/pe/pekwm/package.nix b/pkgs/by-name/pe/pekwm/package.nix
index b6baed455925c..11ff17f0d76b9 100644
--- a/pkgs/by-name/pe/pekwm/package.nix
+++ b/pkgs/by-name/pe/pekwm/package.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://www.pekwm.se/";
-    description = "A lightweight window manager";
+    description = "Lightweight window manager";
     longDescription = ''
       pekwm is a window manager that once upon a time was based on the aewm++
       window manager, but it has evolved enough that it no longer resembles
diff --git a/pkgs/by-name/pe/perf_data_converter/package.nix b/pkgs/by-name/pe/perf_data_converter/package.nix
index 22f6e5aa9a8d7..c8d49ab84c929 100644
--- a/pkgs/by-name/pe/perf_data_converter/package.nix
+++ b/pkgs/by-name/pe/perf_data_converter/package.nix
@@ -1,9 +1,7 @@
 {
   lib,
-  stdenv,
   buildBazelPackage,
   fetchFromGitHub,
-  fetchpatch,
   bazel_6,
   jdk,
   elfutils,
diff --git a/pkgs/by-name/pe/perl-debug-adapter/package.nix b/pkgs/by-name/pe/perl-debug-adapter/package.nix
index 4b1dd4e09ee67..eb9dd371a9b9b 100644
--- a/pkgs/by-name/pe/perl-debug-adapter/package.nix
+++ b/pkgs/by-name/pe/perl-debug-adapter/package.nix
@@ -1,7 +1,6 @@
 { lib
 , buildNpmPackage
 , fetchFromGitHub
-, fetchpatch
 , makeWrapper
 , perl
 # Needed if you want to use it for a perl script with dependencies.
diff --git a/pkgs/by-name/pe/persepolis/package.nix b/pkgs/by-name/pe/persepolis/package.nix
index 3105cd8621f3f..0fa3a3ec41bf4 100644
--- a/pkgs/by-name/pe/persepolis/package.nix
+++ b/pkgs/by-name/pe/persepolis/package.nix
@@ -75,7 +75,7 @@ python3.pkgs.buildPythonApplication rec {
   ]);
 
   meta = with lib; {
-    description = "A GUI for aria2";
+    description = "GUI for aria2";
     mainProgram = "persepolis";
     homepage = "https://persepolisdm.github.io/";
     license = licenses.gpl3Plus;
diff --git a/pkgs/by-name/pe/pesign/package.nix b/pkgs/by-name/pe/pesign/package.nix
index b39db9cd430b7..a4bc4519d118a 100644
--- a/pkgs/by-name/pe/pesign/package.nix
+++ b/pkgs/by-name/pe/pesign/package.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "Signing tools for PE-COFF binaries. Compliant with the PE and Authenticode specifications.";
+    description = "Signing tools for PE-COFF binaries. Compliant with the PE and Authenticode specifications";
     homepage = "https://github.com/rhboot/pesign";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ raitobezarius ];
diff --git a/pkgs/by-name/pg/pg-dump-anon/package.nix b/pkgs/by-name/pg/pg-dump-anon/package.nix
index fedcf9f40b6a7..d5f5dddea4961 100644
--- a/pkgs/by-name/pg/pg-dump-anon/package.nix
+++ b/pkgs/by-name/pg/pg-dump-anon/package.nix
@@ -2,12 +2,12 @@
 
 buildGoModule rec {
   pname = "pg-dump-anon";
-  version = "1.3.1";
+  version = "1.3.2";
   src = fetchFromGitLab {
     owner = "dalibo";
     repo = "postgresql_anonymizer";
     rev = version;
-    hash = "sha256-Z5Oz/cIYDxFUZwQijRk4xAOUdOK0LWR+px8WOcs+Rs0=";
+    hash = "sha256-MGdGvd4P1fFKdd6wnS2V5Tdly6hJlAmSA4TspnO/6Tk=";
   };
 
   sourceRoot = "${src.name}/pg_dump_anon";
diff --git a/pkgs/by-name/pg/pget/package.nix b/pkgs/by-name/pg/pget/package.nix
index 3c6c2dd2380fc..d4c5a702fe05b 100644
--- a/pkgs/by-name/pg/pget/package.nix
+++ b/pkgs/by-name/pg/pget/package.nix
@@ -22,7 +22,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "The fast, resumable file download client";
+    description = "Fast, resumable file download client";
     homepage = "https://github.com/Code-Hex/pget?tab=readme-ov-file";
     license = licenses.mit;
     maintainers = with maintainers; [ Ligthiago ];
diff --git a/pkgs/by-name/pg/pghero/Gemfile b/pkgs/by-name/pg/pghero/Gemfile
new file mode 100644
index 0000000000000..ab0039625a89f
--- /dev/null
+++ b/pkgs/by-name/pg/pghero/Gemfile
@@ -0,0 +1,14 @@
+source "https://rubygems.org"
+
+gem "rails", "~> 7.0.0"
+gem "propshaft"
+gem "puma"
+gem "pg"
+gem "activerecord-nulldb-adapter", require: false
+
+# See also https://github.com/ankane/pghero/blob/v3.3.4/guides/Rails.md
+gem "pghero"
+gem "pg_query"
+gem "aws-sdk-cloudwatch"
+gem "google-apis-monitoring_v3"
+gem "azure_mgmt_monitor"
diff --git a/pkgs/by-name/pg/pghero/Gemfile.lock b/pkgs/by-name/pg/pghero/Gemfile.lock
new file mode 100644
index 0000000000000..df92af192636a
--- /dev/null
+++ b/pkgs/by-name/pg/pghero/Gemfile.lock
@@ -0,0 +1,280 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    actioncable (7.0.8.3)
+      actionpack (= 7.0.8.3)
+      activesupport (= 7.0.8.3)
+      nio4r (~> 2.0)
+      websocket-driver (>= 0.6.1)
+    actionmailbox (7.0.8.3)
+      actionpack (= 7.0.8.3)
+      activejob (= 7.0.8.3)
+      activerecord (= 7.0.8.3)
+      activestorage (= 7.0.8.3)
+      activesupport (= 7.0.8.3)
+      mail (>= 2.7.1)
+      net-imap
+      net-pop
+      net-smtp
+    actionmailer (7.0.8.3)
+      actionpack (= 7.0.8.3)
+      actionview (= 7.0.8.3)
+      activejob (= 7.0.8.3)
+      activesupport (= 7.0.8.3)
+      mail (~> 2.5, >= 2.5.4)
+      net-imap
+      net-pop
+      net-smtp
+      rails-dom-testing (~> 2.0)
+    actionpack (7.0.8.3)
+      actionview (= 7.0.8.3)
+      activesupport (= 7.0.8.3)
+      rack (~> 2.0, >= 2.2.4)
+      rack-test (>= 0.6.3)
+      rails-dom-testing (~> 2.0)
+      rails-html-sanitizer (~> 1.0, >= 1.2.0)
+    actiontext (7.0.8.3)
+      actionpack (= 7.0.8.3)
+      activerecord (= 7.0.8.3)
+      activestorage (= 7.0.8.3)
+      activesupport (= 7.0.8.3)
+      globalid (>= 0.6.0)
+      nokogiri (>= 1.8.5)
+    actionview (7.0.8.3)
+      activesupport (= 7.0.8.3)
+      builder (~> 3.1)
+      erubi (~> 1.4)
+      rails-dom-testing (~> 2.0)
+      rails-html-sanitizer (~> 1.1, >= 1.2.0)
+    activejob (7.0.8.3)
+      activesupport (= 7.0.8.3)
+      globalid (>= 0.3.6)
+    activemodel (7.0.8.3)
+      activesupport (= 7.0.8.3)
+    activerecord (7.0.8.3)
+      activemodel (= 7.0.8.3)
+      activesupport (= 7.0.8.3)
+    activerecord-nulldb-adapter (1.0.1)
+      activerecord (>= 5.2.0, < 7.2)
+    activestorage (7.0.8.3)
+      actionpack (= 7.0.8.3)
+      activejob (= 7.0.8.3)
+      activerecord (= 7.0.8.3)
+      activesupport (= 7.0.8.3)
+      marcel (~> 1.0)
+      mini_mime (>= 1.1.0)
+    activesupport (7.0.8.3)
+      concurrent-ruby (~> 1.0, >= 1.0.2)
+      i18n (>= 1.6, < 2)
+      minitest (>= 5.1)
+      tzinfo (~> 2.0)
+    addressable (2.8.6)
+      public_suffix (>= 2.0.2, < 6.0)
+    aws-eventstream (1.3.0)
+    aws-partitions (1.935.0)
+    aws-sdk-cloudwatch (1.91.0)
+      aws-sdk-core (~> 3, >= 3.193.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-core (3.196.1)
+      aws-eventstream (~> 1, >= 1.3.0)
+      aws-partitions (~> 1, >= 1.651.0)
+      aws-sigv4 (~> 1.8)
+      jmespath (~> 1, >= 1.6.1)
+    aws-sigv4 (1.8.0)
+      aws-eventstream (~> 1, >= 1.0.2)
+    azure_mgmt_monitor (0.19.0)
+      ms_rest_azure (~> 0.12.0)
+    base64 (0.2.0)
+    bigdecimal (3.1.8)
+    builder (3.2.4)
+    concurrent-ruby (1.2.3)
+    crass (1.0.6)
+    date (3.3.4)
+    declarative (0.0.20)
+    domain_name (0.6.20240107)
+    erubi (1.12.0)
+    faraday (1.10.3)
+      faraday-em_http (~> 1.0)
+      faraday-em_synchrony (~> 1.0)
+      faraday-excon (~> 1.1)
+      faraday-httpclient (~> 1.0)
+      faraday-multipart (~> 1.0)
+      faraday-net_http (~> 1.0)
+      faraday-net_http_persistent (~> 1.0)
+      faraday-patron (~> 1.0)
+      faraday-rack (~> 1.0)
+      faraday-retry (~> 1.0)
+      ruby2_keywords (>= 0.0.4)
+    faraday-cookie_jar (0.0.7)
+      faraday (>= 0.8.0)
+      http-cookie (~> 1.0.0)
+    faraday-em_http (1.0.0)
+    faraday-em_synchrony (1.0.0)
+    faraday-excon (1.1.0)
+    faraday-httpclient (1.0.1)
+    faraday-multipart (1.0.4)
+      multipart-post (~> 2)
+    faraday-net_http (1.0.1)
+    faraday-net_http_persistent (1.2.0)
+    faraday-patron (1.0.0)
+    faraday-rack (1.0.0)
+    faraday-retry (1.0.3)
+    globalid (1.2.1)
+      activesupport (>= 6.1)
+    google-apis-core (0.15.0)
+      addressable (~> 2.5, >= 2.5.1)
+      googleauth (~> 1.9)
+      httpclient (>= 2.8.1, < 3.a)
+      mini_mime (~> 1.0)
+      representable (~> 3.0)
+      retriable (>= 2.0, < 4.a)
+      rexml
+    google-apis-monitoring_v3 (0.62.0)
+      google-apis-core (>= 0.15.0, < 2.a)
+    google-cloud-env (2.1.1)
+      faraday (>= 1.0, < 3.a)
+    google-protobuf (4.27.0)
+      bigdecimal
+      rake (>= 13)
+    googleauth (1.11.0)
+      faraday (>= 1.0, < 3.a)
+      google-cloud-env (~> 2.1)
+      jwt (>= 1.4, < 3.0)
+      multi_json (~> 1.11)
+      os (>= 0.9, < 2.0)
+      signet (>= 0.16, < 2.a)
+    http-cookie (1.0.5)
+      domain_name (~> 0.5)
+    httpclient (2.8.3)
+    i18n (1.14.5)
+      concurrent-ruby (~> 1.0)
+    jmespath (1.6.2)
+    jwt (2.8.1)
+      base64
+    loofah (2.22.0)
+      crass (~> 1.0.2)
+      nokogiri (>= 1.12.0)
+    mail (2.8.1)
+      mini_mime (>= 0.1.1)
+      net-imap
+      net-pop
+      net-smtp
+    marcel (1.0.4)
+    method_source (1.1.0)
+    mini_mime (1.1.5)
+    mini_portile2 (2.8.6)
+    minitest (5.23.1)
+    ms_rest (0.7.6)
+      concurrent-ruby (~> 1.0)
+      faraday (>= 0.9, < 2.0.0)
+      timeliness (~> 0.3.10)
+    ms_rest_azure (0.12.0)
+      concurrent-ruby (~> 1.0)
+      faraday (>= 0.9, < 2.0.0)
+      faraday-cookie_jar (~> 0.0.6)
+      ms_rest (~> 0.7.6)
+    multi_json (1.15.0)
+    multipart-post (2.4.1)
+    net-imap (0.4.11)
+      date
+      net-protocol
+    net-pop (0.1.2)
+      net-protocol
+    net-protocol (0.2.2)
+      timeout
+    net-smtp (0.5.0)
+      net-protocol
+    nio4r (2.7.3)
+    nokogiri (1.16.5)
+      mini_portile2 (~> 2.8.2)
+      racc (~> 1.4)
+    os (1.1.4)
+    pg (1.5.6)
+    pg_query (5.1.0)
+      google-protobuf (>= 3.22.3)
+    pghero (3.5.0)
+      activerecord (>= 6)
+    propshaft (0.9.0)
+      actionpack (>= 7.0.0)
+      activesupport (>= 7.0.0)
+      rack
+      railties (>= 7.0.0)
+    public_suffix (5.0.5)
+    puma (6.4.2)
+      nio4r (~> 2.0)
+    racc (1.8.0)
+    rack (2.2.9)
+    rack-test (2.1.0)
+      rack (>= 1.3)
+    rails (7.0.8.3)
+      actioncable (= 7.0.8.3)
+      actionmailbox (= 7.0.8.3)
+      actionmailer (= 7.0.8.3)
+      actionpack (= 7.0.8.3)
+      actiontext (= 7.0.8.3)
+      actionview (= 7.0.8.3)
+      activejob (= 7.0.8.3)
+      activemodel (= 7.0.8.3)
+      activerecord (= 7.0.8.3)
+      activestorage (= 7.0.8.3)
+      activesupport (= 7.0.8.3)
+      bundler (>= 1.15.0)
+      railties (= 7.0.8.3)
+    rails-dom-testing (2.2.0)
+      activesupport (>= 5.0.0)
+      minitest
+      nokogiri (>= 1.6)
+    rails-html-sanitizer (1.6.0)
+      loofah (~> 2.21)
+      nokogiri (~> 1.14)
+    railties (7.0.8.3)
+      actionpack (= 7.0.8.3)
+      activesupport (= 7.0.8.3)
+      method_source
+      rake (>= 12.2)
+      thor (~> 1.0)
+      zeitwerk (~> 2.5)
+    rake (13.2.1)
+    representable (3.2.0)
+      declarative (< 0.1.0)
+      trailblazer-option (>= 0.1.1, < 0.2.0)
+      uber (< 0.2.0)
+    retriable (3.1.2)
+    rexml (3.2.8)
+      strscan (>= 3.0.9)
+    ruby2_keywords (0.0.5)
+    signet (0.19.0)
+      addressable (~> 2.8)
+      faraday (>= 0.17.5, < 3.a)
+      jwt (>= 1.5, < 3.0)
+      multi_json (~> 1.10)
+    strscan (3.1.0)
+    thor (1.3.1)
+    timeliness (0.3.10)
+    timeout (0.4.1)
+    trailblazer-option (0.1.2)
+    tzinfo (2.0.6)
+      concurrent-ruby (~> 1.0)
+    uber (0.1.0)
+    websocket-driver (0.7.6)
+      websocket-extensions (>= 0.1.0)
+    websocket-extensions (0.1.5)
+    zeitwerk (2.6.15)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  activerecord-nulldb-adapter
+  aws-sdk-cloudwatch
+  azure_mgmt_monitor
+  google-apis-monitoring_v3
+  pg
+  pg_query
+  pghero
+  propshaft
+  puma
+  rails (~> 7.0.0)
+
+BUNDLED WITH
+   2.5.9
diff --git a/pkgs/by-name/pg/pghero/gemset.nix b/pkgs/by-name/pg/pghero/gemset.nix
new file mode 100644
index 0000000000000..1988239ea4324
--- /dev/null
+++ b/pkgs/by-name/pg/pghero/gemset.nix
@@ -0,0 +1,1034 @@
+{
+  actioncable = {
+    dependencies = ["actionpack" "activesupport" "nio4r" "websocket-driver"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1d5g5h9r2a026fg3b75ffkfd5xkc7djild9hf7gb3v78ri20mdxy";
+      type = "gem";
+    };
+    version = "7.0.8.3";
+  };
+  actionmailbox = {
+    dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail" "net-imap" "net-pop" "net-smtp"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1drdgk8795mm2wlb9g50jixd2q79vr9fkrxvqcanbmqa16y2v7k7";
+      type = "gem";
+    };
+    version = "7.0.8.3";
+  };
+  actionmailer = {
+    dependencies = ["actionpack" "actionview" "activejob" "activesupport" "mail" "net-imap" "net-pop" "net-smtp" "rails-dom-testing"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1klwlyfnnznwpcphg6z2n8z9508szr33xk7x3hv4ycdqcirgnfr5";
+      type = "gem";
+    };
+    version = "7.0.8.3";
+  };
+  actionpack = {
+    dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11c5pm65m46wlqd25glmwpkji1jn1v2n918jmklxp4w9rr43dzi6";
+      type = "gem";
+    };
+    version = "7.0.8.3";
+  };
+  actiontext = {
+    dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "globalid" "nokogiri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nxycm7wpxyf05hqd1bgy98jdyi0wynlwzs7p3km8gwpdmgfw1ad";
+      type = "gem";
+    };
+    version = "7.0.8.3";
+  };
+  actionview = {
+    dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0p0w1rl3f5k7m39j9gnyw5wqz6ym18bhcacisqq4zng2k6jf4893";
+      type = "gem";
+    };
+    version = "7.0.8.3";
+  };
+  activejob = {
+    dependencies = ["activesupport" "globalid"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0njgqssvh3gzk0hhr04y0f783i7b44draadhjv2jsd56ssx5h8qa";
+      type = "gem";
+    };
+    version = "7.0.8.3";
+  };
+  activemodel = {
+    dependencies = ["activesupport"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0y8w73rdd7x1m1gwswjhpqfbjr95hh7hcnkjqk1wz8x9gjk9njb6";
+      type = "gem";
+    };
+    version = "7.0.8.3";
+  };
+  activerecord = {
+    dependencies = ["activemodel" "activesupport"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03pqj57md528dgwwplr234hq628allla71i1pxys2inbpp7s7vn8";
+      type = "gem";
+    };
+    version = "7.0.8.3";
+  };
+  activerecord-nulldb-adapter = {
+    dependencies = ["activerecord"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1552py7zlamd5gy2dbkzjixanl9k07y6jqqrr4ic6n52apwd0ijy";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  activestorage = {
+    dependencies = ["actionpack" "activejob" "activerecord" "activesupport" "marcel" "mini_mime"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pkb6ssxl8b9w8pczd562qw0n78fvgjc3xb5yjpfips33a7zqd9j";
+      type = "gem";
+    };
+    version = "7.0.8.3";
+  };
+  activesupport = {
+    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ybapgiiysxgcjyzifn34ksbwjdjzslbvbcd7v83wiry1qmiyg93";
+      type = "gem";
+    };
+    version = "7.0.8.3";
+  };
+  addressable = {
+    dependencies = ["public_suffix"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0irbdwkkjwzajq1ip6ba46q49sxnrl2cw7ddkdhsfhb6aprnm3vr";
+      type = "gem";
+    };
+    version = "2.8.6";
+  };
+  aws-eventstream = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0gvdg4yx4p9av2glmp7vsxhs0n8fj1ga9kq2xdb8f95j7b04qhzi";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  aws-partitions = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10yhixzr5ndxswgis8z23cqas98m6idd2zprg7ms4sg2iixnh6sz";
+      type = "gem";
+    };
+    version = "1.935.0";
+  };
+  aws-sdk-cloudwatch = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0iw1754r8rizshv04rj9fsm56ipnipfqxb349mx4cy195bq5k72n";
+      type = "gem";
+    };
+    version = "1.91.0";
+  };
+  aws-sdk-core = {
+    dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0f44kp3g9g8v60f7xw769r734b7w6n774jj2njn42444ip3zwsz3";
+      type = "gem";
+    };
+    version = "3.196.1";
+  };
+  aws-sigv4 = {
+    dependencies = ["aws-eventstream"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g3w27wzjy4si6kp49w10as6ml6g6zl3xrfqs5ikpfciidv9kpc4";
+      type = "gem";
+    };
+    version = "1.8.0";
+  };
+  azure_mgmt_monitor = {
+    dependencies = ["ms_rest_azure"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13yqhcdqv4lr6bf3ylh2p1k9x4qg9qlr05y9fv7fi8yj5rqrbjhx";
+      type = "gem";
+    };
+    version = "0.19.0";
+  };
+  base64 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01qml0yilb9basf7is2614skjp8384h2pycfx86cr8023arfj98g";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  bigdecimal = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gi7zqgmqwi5lizggs1jhc3zlwaqayy9rx2ah80sxy24bbnng558";
+      type = "gem";
+    };
+    version = "3.1.8";
+  };
+  builder = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr";
+      type = "gem";
+    };
+    version = "3.2.4";
+  };
+  concurrent-ruby = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qh1b14jwbbj242klkyz5fc7npd4j0mvndz62gajhvl1l3wd7zc2";
+      type = "gem";
+    };
+    version = "1.2.3";
+  };
+  crass = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pfl5c0pyqaparxaqxi6s4gfl21bdldwiawrc0aknyvflli60lfw";
+      type = "gem";
+    };
+    version = "1.0.6";
+  };
+  date = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "149jknsq999gnhy865n33fkk22s0r447k76x9pmcnnwldfv2q7wp";
+      type = "gem";
+    };
+    version = "3.3.4";
+  };
+  declarative = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yczgnqrbls7shrg63y88g7wand2yp9h6sf56c9bdcksn5nds8c0";
+      type = "gem";
+    };
+    version = "0.0.20";
+  };
+  domain_name = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cyr2xm576gqhqicsyqnhanni47408w2pgvrfi8pd13h2li3nsaz";
+      type = "gem";
+    };
+    version = "0.6.20240107";
+  };
+  erubi = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08s75vs9cxlc4r1q2bjg4br8g9wc5lc5x5vl0vv4zq5ivxsdpgi7";
+      type = "gem";
+    };
+    version = "1.12.0";
+  };
+  faraday = {
+    dependencies = ["faraday-em_http" "faraday-em_synchrony" "faraday-excon" "faraday-httpclient" "faraday-multipart" "faraday-net_http" "faraday-net_http_persistent" "faraday-patron" "faraday-rack" "faraday-retry" "ruby2_keywords"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1c760q0ks4vj4wmaa7nh1dgvgqiwaw0mjr7v8cymy7i3ffgjxx90";
+      type = "gem";
+    };
+    version = "1.10.3";
+  };
+  faraday-cookie_jar = {
+    dependencies = ["faraday" "http-cookie"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00hligx26w9wdnpgsrf0qdnqld4rdccy8ym6027h5m735mpvxjzk";
+      type = "gem";
+    };
+    version = "0.0.7";
+  };
+  faraday-em_http = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12cnqpbak4vhikrh2cdn94assh3yxza8rq2p9w2j34bqg5q4qgbs";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  faraday-em_synchrony = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vgrbhkp83sngv6k4mii9f2s9v5lmp693hylfxp2ssfc60fas3a6";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  faraday-excon = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h09wkb0k0bhm6dqsd47ac601qiaah8qdzjh8gvxfd376x1chmdh";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  faraday-httpclient = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fyk0jd3ks7fdn8nv3spnwjpzx2lmxmg2gh4inz3by1zjzqg33sc";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  faraday-multipart = {
+    dependencies = ["multipart-post"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09871c4hd7s5ws1wl4gs7js1k2wlby6v947m2bbzg43pnld044lh";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  faraday-net_http = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  faraday-net_http_persistent = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dc36ih95qw3rlccffcb0vgxjhmipsvxhn6cw71l7ffs0f7vq30b";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  faraday-patron = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19wgsgfq0xkski1g7m96snv39la3zxz6x7nbdgiwhg5v82rxfb6w";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  faraday-rack = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1h184g4vqql5jv9s9im6igy00jp6mrah2h14py6mpf9bkabfqq7g";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  faraday-retry = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "153i967yrwnswqgvnnajgwp981k9p50ys1h80yz3q94rygs59ldd";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  globalid = {
+    dependencies = ["activesupport"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sbw6b66r7cwdx3jhs46s4lr991969hvigkjpbdl7y3i31qpdgvh";
+      type = "gem";
+    };
+    version = "1.2.1";
+  };
+  google-apis-core = {
+    dependencies = ["addressable" "googleauth" "httpclient" "mini_mime" "representable" "retriable" "rexml"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1r56f3h85979q960fvc8iskc6cd0adpqbclqhqzzpcf6d28fx5cw";
+      type = "gem";
+    };
+    version = "0.15.0";
+  };
+  google-apis-monitoring_v3 = {
+    dependencies = ["google-apis-core"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sqd07zpy99m9x69y23j0pyd17y2bvlx2hxd5jcbi5z4hsgnmb59";
+      type = "gem";
+    };
+    version = "0.62.0";
+  };
+  google-cloud-env = {
+    dependencies = ["faraday"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16b9yjbrzal1cjkdbn29fl06ikjn1dpg1vdsjak1xvhpsp3vhjyg";
+      type = "gem";
+    };
+    version = "2.1.1";
+  };
+  google-protobuf = {
+    dependencies = ["bigdecimal" "rake"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13fqdhs2asr2vaqhbmh504zf2khacilqyfwi8qrilwn4md3r6rsy";
+      type = "gem";
+    };
+    version = "4.27.0";
+  };
+  googleauth = {
+    dependencies = ["faraday" "google-cloud-env" "jwt" "multi_json" "os" "signet"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15knmk2fcyqxdpppc3wb5lc6xapbx5hax4lma0iclc2p55aa2kkl";
+      type = "gem";
+    };
+    version = "1.11.0";
+  };
+  http-cookie = {
+    dependencies = ["domain_name"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13rilvlv8kwbzqfb644qp6hrbsj82cbqmnzcvqip1p6vqx36sxbk";
+      type = "gem";
+    };
+    version = "1.0.5";
+  };
+  httpclient = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99";
+      type = "gem";
+    };
+    version = "2.8.3";
+  };
+  i18n = {
+    dependencies = ["concurrent-ruby"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ffix518y7976qih9k1lgnc17i3v6yrlh0a3mckpxdb4wc2vrp16";
+      type = "gem";
+    };
+    version = "1.14.5";
+  };
+  jmespath = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cdw9vw2qly7q7r41s7phnac264rbsdqgj4l0h4nqgbjb157g393";
+      type = "gem";
+    };
+    version = "1.6.2";
+  };
+  jwt = {
+    dependencies = ["base64"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02m3vza49pb9dirwpn8vmzbcypi3fc6l3a9dh253jwm1121g7ajb";
+      type = "gem";
+    };
+    version = "2.8.1";
+  };
+  loofah = {
+    dependencies = ["crass" "nokogiri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zkjqf37v2d7s11176cb35cl83wls5gm3adnfkn2zcc61h3nxmqh";
+      type = "gem";
+    };
+    version = "2.22.0";
+  };
+  mail = {
+    dependencies = ["mini_mime" "net-imap" "net-pop" "net-smtp"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bf9pysw1jfgynv692hhaycfxa8ckay1gjw5hz3madrbrynryfzc";
+      type = "gem";
+    };
+    version = "2.8.1";
+  };
+  marcel = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "190n2mk8m1l708kr88fh6mip9sdsh339d2s6sgrik3sbnvz4jmhd";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  method_source = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1igmc3sq9ay90f8xjvfnswd1dybj1s3fi0dwd53inwsvqk4h24qq";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  mini_mime = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vycif7pjzkr29mfk4dlqv3disc5dn0va04lkwajlpr1wkibg0c6";
+      type = "gem";
+    };
+    version = "1.1.5";
+  };
+  mini_portile2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "149r94xi6b3jbp6bv72f8383b95ndn0p5sxnq11gs1j9jadv0ajf";
+      type = "gem";
+    };
+    version = "2.8.6";
+  };
+  minitest = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gkslxvkhh44s21rbjvka3zsvfxxrf5pcl6f75rv2vyrzzbgis7i";
+      type = "gem";
+    };
+    version = "5.23.1";
+  };
+  ms_rest = {
+    dependencies = ["concurrent-ruby" "faraday" "timeliness"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jiha1bda5knpjqjymwik6i41n69gb0phcrgvmgc5icl4mcisai7";
+      type = "gem";
+    };
+    version = "0.7.6";
+  };
+  ms_rest_azure = {
+    dependencies = ["concurrent-ruby" "faraday" "faraday-cookie_jar" "ms_rest"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06i37b84r2q206kfm5vsi9s1qiiy09091vhvc5pzb7320h0hc1ih";
+      type = "gem";
+    };
+    version = "0.12.0";
+  };
+  multi_json = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
+      type = "gem";
+    };
+    version = "1.15.0";
+  };
+  multipart-post = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1a5lrlvmg2kb2dhw3lxcsv6x276bwgsxpnka1752082miqxd0wlq";
+      type = "gem";
+    };
+    version = "2.4.1";
+  };
+  net-imap = {
+    dependencies = ["date" "net-protocol"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1y0pzapcasfjayk4nydy04hnx11xmsv8jl8myizxhbpkdmrl10dc";
+      type = "gem";
+    };
+    version = "0.4.11";
+  };
+  net-pop = {
+    dependencies = ["net-protocol"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wyz41jd4zpjn0v1xsf9j778qx1vfrl24yc20cpmph8k42c4x2w4";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
+  net-protocol = {
+    dependencies = ["timeout"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1a32l4x73hz200cm587bc29q8q9az278syw3x6fkc9d1lv5y0wxa";
+      type = "gem";
+    };
+    version = "0.2.2";
+  };
+  net-smtp = {
+    dependencies = ["net-protocol"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0amlhz8fhnjfmsiqcjajip57ici2xhw089x7zqyhpk51drg43h2z";
+      type = "gem";
+    };
+    version = "0.5.0";
+  };
+  nio4r = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "017nbw87dpr4wyk81cgj8kxkxqgsgblrkxnmmadc77cg9gflrfal";
+      type = "gem";
+    };
+    version = "2.7.3";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2" "racc"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lla2macphrlbzkirk0nwwwhcijrfymyfjjw1als0kwqd0n1cdpc";
+      type = "gem";
+    };
+    version = "1.16.5";
+  };
+  os = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0gwd20smyhxbm687vdikfh1gpi96h8qb1x28s2pdcysf6dm6v0ap";
+      type = "gem";
+    };
+    version = "1.1.4";
+  };
+  pg = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "071b55bhsz7mivlnp2kv0a11msnl7xg5awvk8mlflpl270javhsb";
+      type = "gem";
+    };
+    version = "1.5.6";
+  };
+  pg_query = {
+    dependencies = ["google-protobuf"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0p8ljf694qvrf5875ljg6kp7gvmndy8490kasjzcq22ghryg9xxp";
+      type = "gem";
+    };
+    version = "5.1.0";
+  };
+  pghero = {
+    dependencies = ["activerecord"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0shy6p0bc2z5l1mj6wqc6kxvp0ka3g0i1lhdgl0miqvk6qw9sibv";
+      type = "gem";
+    };
+    version = "3.5.0";
+  };
+  propshaft = {
+    dependencies = ["actionpack" "activesupport" "rack" "railties"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14b06ilc0cadr0jz5aih56yxgnd0j36qp9a4x16py55id1ijw7gy";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
+  public_suffix = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14y4vzjwf5gp0mqgs880kis0k7n2biq8i6ci6q2n315kichl1hvj";
+      type = "gem";
+    };
+    version = "5.0.5";
+  };
+  puma = {
+    dependencies = ["nio4r"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0i2vaww6qcazj0ywva1plmjnj6rk23b01szswc5jhcq7s2cikd1y";
+      type = "gem";
+    };
+    version = "6.4.2";
+  };
+  racc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "021s7maw0c4d9a6s07vbmllrzqsj2sgmrwimlh8ffkvwqdjrld09";
+      type = "gem";
+    };
+    version = "1.8.0";
+  };
+  rack = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hj0rkw2z9r1lcg2wlrcld2n3phwrcgqcp7qd1g9a7hwgalh2qzx";
+      type = "gem";
+    };
+    version = "2.2.9";
+  };
+  rack-test = {
+    dependencies = ["rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ysx29gk9k14a14zsp5a8czys140wacvp91fja8xcja0j1hzqq8c";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  rails = {
+    dependencies = ["actioncable" "actionmailbox" "actionmailer" "actionpack" "actiontext" "actionview" "activejob" "activemodel" "activerecord" "activestorage" "activesupport" "railties"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1inqd2jjl9rd1yl85rn2wbbsln9i5x029hr5abgnwm8z5vc437fg";
+      type = "gem";
+    };
+    version = "7.0.8.3";
+  };
+  rails-dom-testing = {
+    dependencies = ["activesupport" "minitest" "nokogiri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fx9dx1ag0s1lr6lfr34lbx5i1bvn3bhyf3w3mx6h7yz90p725g5";
+      type = "gem";
+    };
+    version = "2.2.0";
+  };
+  rails-html-sanitizer = {
+    dependencies = ["loofah" "nokogiri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pm4z853nyz1bhhqr7fzl44alnx4bjachcr6rh6qjj375sfz3sc6";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  railties = {
+    dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor" "zeitwerk"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sxki005rl1315mp78csayvfdx5zxjvwv8xmcfyjksgq27cimk5r";
+      type = "gem";
+    };
+    version = "7.0.8.3";
+  };
+  rake = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17850wcwkgi30p7yqh60960ypn7yibacjjha0av78zaxwvd3ijs6";
+      type = "gem";
+    };
+    version = "13.2.1";
+  };
+  representable = {
+    dependencies = ["declarative" "trailblazer-option" "uber"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kms3r6w6pnryysnaqqa9fsn0v73zx1ilds9d1c565n3xdzbyafc";
+      type = "gem";
+    };
+    version = "3.2.0";
+  };
+  retriable = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q48hqws2dy1vws9schc0kmina40gy7sn5qsndpsfqdslh65snha";
+      type = "gem";
+    };
+    version = "3.1.2";
+  };
+  rexml = {
+    dependencies = ["strscan"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0d8ivcirrrxpkpjc1c835wknc9s2fl54xpw08s177yfrh5ish209";
+      type = "gem";
+    };
+    version = "3.2.8";
+  };
+  ruby2_keywords = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vz322p8n39hz3b4a9gkmz9y7a5jaz41zrm2ywf31dvkqm03glgz";
+      type = "gem";
+    };
+    version = "0.0.5";
+  };
+  signet = {
+    dependencies = ["addressable" "faraday" "jwt" "multi_json"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cfxa11wy1nv9slmnzjczkdgld0gqizajsb03rliy53zylwkjzsk";
+      type = "gem";
+    };
+    version = "0.19.0";
+  };
+  strscan = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mamrl7pxacbc79ny5hzmakc9grbjysm3yy6119ppgsg44fsif01";
+      type = "gem";
+    };
+    version = "3.1.0";
+  };
+  thor = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vq1fjp45az9hfp6fxljhdrkv75cvbab1jfrwcw738pnsiqk8zps";
+      type = "gem";
+    };
+    version = "1.3.1";
+  };
+  timeliness = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0gvp9b7yn4pykn794cibylc9ys1lw7fzv7djx1433icxw4y26my3";
+      type = "gem";
+    };
+    version = "0.3.10";
+  };
+  timeout = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16mvvsmx90023wrhf8dxc1lpqh0m8alk65shb7xcya6a9gflw7vg";
+      type = "gem";
+    };
+    version = "0.4.1";
+  };
+  trailblazer-option = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18s48fndi2kfvrfzmq6rxvjfwad347548yby0341ixz1lhpg3r10";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
+  tzinfo = {
+    dependencies = ["concurrent-ruby"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16w2g84dzaf3z13gxyzlzbf748kylk5bdgg3n1ipvkvvqy685bwd";
+      type = "gem";
+    };
+    version = "2.0.6";
+  };
+  uber = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p1mm7mngg40x05z52md3mbamkng0zpajbzqjjwmsyw0zw3v9vjv";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  websocket-driver = {
+    dependencies = ["websocket-extensions"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nyh873w4lvahcl8kzbjfca26656d5c6z3md4sbqg5y1gfz0157n";
+      type = "gem";
+    };
+    version = "0.7.6";
+  };
+  websocket-extensions = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hc2g9qps8lmhibl5baa91b4qx8wqw872rgwagml78ydj8qacsqw";
+      type = "gem";
+    };
+    version = "0.1.5";
+  };
+  zeitwerk = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kr2731z8f6cj23jxh67cdnpkrnnfwbrxj1hfhshls4mp8i8drmj";
+      type = "gem";
+    };
+    version = "2.6.15";
+  };
+}
diff --git a/pkgs/by-name/pg/pghero/package.nix b/pkgs/by-name/pg/pghero/package.nix
new file mode 100644
index 0000000000000..0f74a39add637
--- /dev/null
+++ b/pkgs/by-name/pg/pghero/package.nix
@@ -0,0 +1,74 @@
+{ lib
+, stdenv
+, ruby
+, bundlerEnv
+, buildPackages
+, fetchFromGitHub
+, makeBinaryWrapper
+, nixosTests
+, callPackage
+}:
+stdenv.mkDerivation (finalAttrs:
+let
+  # Use bundlerEnvArgs from passthru to allow overriding bundlerEnv arguments.
+  rubyEnv = bundlerEnv finalAttrs.passthru.bundlerEnvArgs;
+  # We also need a separate nativeRubyEnv to precompile assets on the build
+  # host. If possible, reuse existing rubyEnv derivation.
+  nativeRubyEnv =
+    if stdenv.buildPlatform.canExecute stdenv.hostPlatform then rubyEnv
+    else buildPackages.bundlerEnv finalAttrs.passthru.bundlerEnvArgs;
+
+  bundlerEnvArgs = {
+    name = "${finalAttrs.pname}-${finalAttrs.version}-gems";
+    gemdir = ./.;
+  };
+in
+{
+  pname = "pghero";
+  version = "3.5.0";
+
+  src = fetchFromGitHub {
+    owner = "pghero";
+    repo = "pghero";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-6JShYn3QfxPdAVcrJ7/kxzxa4dBEzSkUiLguIH+VCRQ=";
+  };
+
+  strictDeps = true;
+  nativeBuildInputs = [ nativeRubyEnv makeBinaryWrapper ];
+
+  inherit rubyEnv;
+
+  buildPhase = ''
+    runHook preBuild
+    DATABASE_URL=nulldb:/// RAILS_ENV=production rake assets:precompile
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p -- "$out"/{share,bin}
+    cp -a -- . "$out"/share/pghero
+    makeWrapper "$rubyEnv"/bin/puma "$out"/bin/pghero \
+      --add-flags -C \
+      --add-flags config/puma.rb \
+      --chdir "$out"/share/pghero
+    runHook postInstall
+  '';
+
+  passthru = {
+    inherit bundlerEnvArgs;
+    updateScript = callPackage ./update.nix { };
+    tests = {
+      inherit (nixosTests) pghero;
+    };
+  };
+
+  meta = {
+    homepage = "https://github.com/ankane/pghero";
+    description = "Performance dashboard for Postgres";
+    mainProgram = "pghero";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.tie ];
+  };
+})
diff --git a/pkgs/by-name/pg/pghero/update.nix b/pkgs/by-name/pg/pghero/update.nix
new file mode 100644
index 0000000000000..35edcec7b6af8
--- /dev/null
+++ b/pkgs/by-name/pg/pghero/update.nix
@@ -0,0 +1,59 @@
+{ lib
+, writeShellScript
+, git
+, nix
+, bundler
+, bundix
+, coreutils
+, common-updater-scripts
+}:
+writeShellScript "update-script" ''
+  set -eu
+  PATH=${lib.makeBinPath [
+    git
+    nix
+    bundler
+    bundix
+    coreutils
+    common-updater-scripts
+  ]}
+  nix() {
+    command nix --extra-experimental-features nix-command "$@"
+  }
+  bundle() {
+    BUNDLE_FORCE_RUBY_PLATFORM=1 command bundle "$@"
+  }
+
+  attrPath=''${UPDATE_NIX_ATTR_PATH:-pghero}
+
+  toplevel=$(git rev-parse --show-toplevel)
+  position=$(nix eval --file "$toplevel" --raw "$attrPath.meta.position")
+  gemdir=$(dirname "$position")
+
+  cd "$gemdir"
+
+  tempdir=$(mktemp -d)
+  cleanup() {
+    rc=$?
+    rm -r -- "$tempdir" || true
+    exit $rc
+  }
+  trap cleanup EXIT
+
+  cp gemset.nix "$tempdir"
+
+  bundle lock --update --lockfile="$tempdir"/Gemfile.lock
+  bundix --lockfile="$tempdir"/Gemfile.lock --gemset="$tempdir"/gemset.nix
+
+  oldVersion=''${UPDATE_NIX_OLD_VERSION-}
+  newVersion=$(nix eval --file "$tempdir"/gemset.nix --raw pghero.version)
+
+  if [ "$oldVersion" = "$newVersion" ]; then
+    exit
+  fi
+
+  cp "$tempdir"/{Gemfile.lock,gemset.nix} .
+
+  cd "$toplevel"
+  update-source-version "$attrPath" "$newVersion" --file="$gemdir"/package.nix --ignore-same-hash
+''
diff --git a/pkgs/by-name/pg/pgraphs/package.nix b/pkgs/by-name/pg/pgraphs/package.nix
new file mode 100644
index 0000000000000..0f9e5bc2dbf42
--- /dev/null
+++ b/pkgs/by-name/pg/pgraphs/package.nix
@@ -0,0 +1,29 @@
+{
+  lib,
+  buildNpmPackage,
+  fetchFromGitHub,
+}:
+
+buildNpmPackage rec {
+  pname = "pgraphs";
+  version = "0.6.12";
+
+  src = fetchFromGitHub {
+    owner = "pg-format";
+    repo = "pgraphs";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-rhNXASSHgdL9knq9uPFhAGlh0ZAKo5TNh/2a4u6Mh1U=";
+  };
+
+  npmDepsHash = "sha256-S1pCmRaRuprqIjaylIsuHyguhgQC5vvp7pDq2KJgrHQ=";
+  dontNpmBuild = true;
+
+  meta = {
+    description = "Property Graph Exchange Format (PG) converter";
+    changelog = "https://github.com/pg-format/pgraphs/blob/v${version}/CHANGELOG.md";
+    homepage = "https://github.com/pg-format/pgraphs";
+    license = lib.licenses.mit;
+    mainProgram = "pgraphs";
+    maintainers = with lib.maintainers; [ luftmensch-luftmensch ];
+  };
+}
diff --git a/pkgs/tools/networking/pgrok/default.nix b/pkgs/by-name/pg/pgrok/package.nix
index e5c9610521ce2..0aed3b49f8075 100644
--- a/pkgs/tools/networking/pgrok/default.nix
+++ b/pkgs/by-name/pg/pgrok/package.nix
@@ -1,24 +1,38 @@
 { lib
 , buildGoModule
-, callPackage
 , fetchFromGitHub
+, nix-update-script
+, nodejs
+, pnpm
 }:
-buildGoModule rec {
+
+let
   pname = "pgrok";
   version = "1.4.1";
-
   src = fetchFromGitHub {
     owner = "pgrok";
     repo = "pgrok";
     rev = "v${version}";
     hash = "sha256-P36rpFi5J+dF6FrVaPhqupG00h4kwr0qumt4ehL/7vU=";
   };
+in
 
-  vendorHash = "sha256-X5FjzliIJdfJnNaUXBjv1uq5tyjMVjBbnLCBH/P0LFM=";
+buildGoModule {
+  inherit pname version src;
 
   outputs = [ "out" "server" ];
 
-  web = callPackage ./web.nix { inherit src version; };
+  nativeBuildInputs = [
+    nodejs
+    pnpm.configHook
+  ];
+
+  pnpmDeps = pnpm.fetchDeps {
+    inherit pname version src;
+    hash = "sha256-1PUcISW1pC9+5HZyI9SIDRyhos5f/6aW1wa2z0OKams=";
+  };
+
+  vendorHash = "sha256-X5FjzliIJdfJnNaUXBjv1uq5tyjMVjBbnLCBH/P0LFM=";
 
   ldflags = [
     "-s"
@@ -33,18 +47,23 @@ buildGoModule rec {
     "pgrokd/pgrokd"
   ];
 
-  postPatch = ''
+  preBuild = ''
+    pushd pgrokd/web
+
+    pnpm run build
+
+    popd
+
     # rename packages due to naming conflict
     mv pgrok/cli/ pgrok/pgrok/
     mv pgrokd/cli/ pgrokd/pgrokd/
-    cp -r ${web} pgrokd/pgrokd/dist
   '';
 
   postInstall = ''
     moveToOutput bin/pgrokd $server
   '';
 
-  passthru.updateScript = ./update.sh;
+  passthru.updateScript = nix-update-script { };
 
   meta = {
     description = "Selfhosted TCP/HTTP tunnel, ngrok alternative, written in Go";
diff --git a/pkgs/by-name/ph/phel/package.nix b/pkgs/by-name/ph/phel/package.nix
index a03d99147897d..018ef07bbf253 100644
--- a/pkgs/by-name/ph/phel/package.nix
+++ b/pkgs/by-name/ph/phel/package.nix
@@ -23,7 +23,7 @@ php.buildComposerProject (finalAttrs: {
 
   meta = {
     changelog = "https://github.com/phel-lang/phel-lang/releases/tag/v${finalAttrs.version}";
-    description = "Phel is a functional programming language that compiles to PHP. A Lisp dialect inspired by Clojure and Janet.";
+    description = "Phel is a functional programming language that compiles to PHP. A Lisp dialect inspired by Clojure and Janet";
     homepage = "https://github.com/phel-lang/phel-lang";
     license = lib.licenses.mit;
     mainProgram = "phel";
diff --git a/pkgs/by-name/ph/photonvision/package.nix b/pkgs/by-name/ph/photonvision/package.nix
index 0efd253e147e4..408dfb123f30c 100644
--- a/pkgs/by-name/ph/photonvision/package.nix
+++ b/pkgs/by-name/ph/photonvision/package.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "The free, fast, and easy-to-use computer vision solution for the FIRST Robotics Competition";
+    description = "Free, fast, and easy-to-use computer vision solution for the FIRST Robotics Competition";
     homepage = "https://photonvision.org/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ max-niederman ];
diff --git a/pkgs/by-name/ph/phpdocumentor/package.nix b/pkgs/by-name/ph/phpdocumentor/package.nix
index e0eeef5935a3b..710a0cf4dce3a 100644
--- a/pkgs/by-name/ph/phpdocumentor/package.nix
+++ b/pkgs/by-name/ph/phpdocumentor/package.nix
@@ -6,16 +6,16 @@
 
 php.buildComposerProject (finalAttrs: {
   pname = "phpdocumentor";
-  version = "3.4.3";
+  version = "3.5.0";
 
   src = fetchFromGitHub {
     owner = "phpDocumentor";
     repo = "phpDocumentor";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-NCBCwQ8im6ttFuQBaG+bzmtinf+rqNnbogcK8r60dCM=";
+    hash = "sha256-//erxY9ryJne/HZLB1l4SwF3EsQ1vmgSe4pZ5xSieIU=";
   };
 
-  vendorHash = "sha256-/TJ/CahmOWcRBlAsJDzWcfhlDd+ypRapruFT0Dvlb1w=";
+  vendorHash = "sha256-VNlAzWueF7ZXBpr9RrJghMPrAUof7f1DCh1osFIwFfs=";
 
   # Needed because of the unbound version constraint on phpdocumentor/json-path
   composerStrictValidation = false;
diff --git a/pkgs/by-name/ph/phpunit/package.nix b/pkgs/by-name/ph/phpunit/package.nix
index 47a29be92f1de..a598f69853421 100644
--- a/pkgs/by-name/ph/phpunit/package.nix
+++ b/pkgs/by-name/ph/phpunit/package.nix
@@ -6,16 +6,16 @@
 
 php.buildComposerProject (finalAttrs: {
   pname = "phpunit";
-  version = "11.1.3";
+  version = "11.2.2";
 
   src = fetchFromGitHub {
     owner = "sebastianbergmann";
     repo = "phpunit";
     rev = finalAttrs.version;
-    hash = "sha256-Wq2k44WpUhDhSyIx8ofn/jUR7FS3zn2CCe4OiFKHXEA=";
+    hash = "sha256-MhQxPZeg0mKDmy/iIUj+2oybBC3CoIYj2PWB+RBWq10=";
   };
 
-  vendorHash = "sha256-kjMJCrMG08AXX662GAR5+V6w1+WOv8F9r6ONIOowP8Q=";
+  vendorHash = "sha256-w2Yu0T8omr8F7r5nBZOmRJE0LEdGQ3XAdxNZoK1sx1M=";
 
   passthru.updateScript = nix-update-script { };
 
diff --git a/pkgs/by-name/ph/physac/package.nix b/pkgs/by-name/ph/physac/package.nix
new file mode 100644
index 0000000000000..3040c9eda2532
--- /dev/null
+++ b/pkgs/by-name/ph/physac/package.nix
@@ -0,0 +1,47 @@
+{
+  stdenvNoCC,
+  fetchFromGitHub,
+  lib
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "physac";
+  version = "2.5-unstable-2023-12-11";
+
+  src = fetchFromGitHub {
+    owner = "victorfisac";
+    repo = "Physac";
+    rev = "29d9fc06860b54571a02402fff6fa8572d19bd12";
+    hash = "sha256-PTlV1tT0axQbmGmJ7JD1n6wmbIxUdu7xho78EO0HNNk=";
+  };
+
+  dontBuild = true;
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{include,lib/pkgconfig}
+
+    install -Dm644 $src/src/physac.h $out/include/physac.h
+
+    cat <<EOF > $out/lib/pkgconfig/physac.pc
+    prefix=$out
+    includedir=$out/include
+
+    Name: physac
+    Description: ${finalAttrs.meta.description}
+    URL: ${finalAttrs.meta.homepage}
+    Version: ${finalAttrs.version}
+    Cflags: -I"{includedir}"
+    EOF
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "2D physics header-only library for raylib";
+    homepage = "https://github.com/victorfisac/Physac";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ sigmanificient ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/pkgs/by-name/pi/picom-pijulius/package.nix b/pkgs/by-name/pi/picom-pijulius/package.nix
index bb41a7d221afb..998514b3f9815 100644
--- a/pkgs/by-name/pi/picom-pijulius/package.nix
+++ b/pkgs/by-name/pi/picom-pijulius/package.nix
@@ -1,18 +1,20 @@
 {
   picom,
   lib,
+  writeShellScript,
   fetchFromGitHub,
-  pcre
+  pcre,
+  unstableGitUpdater
 }:
 picom.overrideAttrs (previousAttrs: {
   pname = "picom-pijulius";
-  version = "8.2-unstable-2024-04-30";
+  version = "8.2-unstable-2024-06-13";
 
   src = fetchFromGitHub {
     owner = "pijulius";
     repo = "picom";
-    rev = "e7b14886ae644aaa657383f7c4f44be7797fd5f6";
-    hash = "sha256-YQVp5HicO+jbvCYSY+hjDTnXCU6aS3aCvbux6NFcJ/Y=";
+    rev = "a0e818855daba0d2f11a298f7fd238f8a6049167";
+    hash = "sha256-w1SWYhPfFGX2EumEe8UBZA3atW4jvW54GsMYLGg59Ys=";
   };
 
   buildInputs = (previousAttrs.buildInputs or [ ]) ++ [ pcre ];
@@ -29,4 +31,11 @@ picom.overrideAttrs (previousAttrs: {
     homepage = "https://github.com/pijulius/picom";
     maintainers = with lib.maintainers; [ YvesStraten ];
   };
+
+  passthru.updateScript = unstableGitUpdater {
+    tagFormat = "v([A-Z]+)([a-z]+)|v([1-9]).([1-9])|v([1-9])-rc([1-9])";
+    tagConverter = writeShellScript "picom-pijulius-tag-converter.sh" ''
+sed -e 's/v//g' -e 's/([A-Z])([a-z])+/8.2/g' -e 's/-rc([1-9])|-rc//g' -e 's/0/8.2/g'
+'';
+  };
 })
diff --git a/pkgs/by-name/pi/picom/package.nix b/pkgs/by-name/pi/picom/package.nix
index bf197ab08f355..676ac95fb5129 100644
--- a/pkgs/by-name/pi/picom/package.nix
+++ b/pkgs/by-name/pi/picom/package.nix
@@ -96,7 +96,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A fork of XCompMgr, a sample compositing manager for X servers";
+    description = "Fork of XCompMgr, a sample compositing manager for X servers";
     longDescription = ''
       A fork of XCompMgr, which is a sample compositing manager for X
       servers supporting the XFIXES, DAMAGE, RENDER, and COMPOSITE
diff --git a/pkgs/by-name/pi/pid1/package.nix b/pkgs/by-name/pi/pid1/package.nix
index 76e4d3044cea3..d991d01be8487 100644
--- a/pkgs/by-name/pi/pid1/package.nix
+++ b/pkgs/by-name/pi/pid1/package.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pid1";
-  version = "0.1.2";
+  version = "0.1.3";
 
   src = fetchFromGitHub {
     owner = "fpco";
     repo = "pid1-rs";
     rev = "v${version}";
-    hash = "sha256-BljIa+4BKI7WHlOhXfN/3VKMzs5G5E4tNlQ2oPpJV2g=";
+    hash = "sha256-2dnQj3AQxedyq1YvHKt+lVXNEtuB5sMRSCqX9YeifzI=";
   };
 
-  cargoHash = "sha256-7PANlw/SKxyAqymfXIXFT/v3U0GCiGfgStguSr0lrqQ=";
+  cargoHash = "sha256-/KK9U1dgCLglgn/MJ7+sov4EEnY/nluEsz0ooMp6ggI=";
 
   meta = with lib; {
     description = "Signal handling and zombie reaping for PID1 process";
diff --git a/pkgs/by-name/pi/pie-cli/package.nix b/pkgs/by-name/pi/pie-cli/package.nix
new file mode 100644
index 0000000000000..98d70a2bf3601
--- /dev/null
+++ b/pkgs/by-name/pi/pie-cli/package.nix
@@ -0,0 +1,37 @@
+{
+  lib,
+  fetchFromGitHub,
+  stdenv,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "pie-cli";
+  version = "2.0.1";
+
+  src = fetchFromGitHub {
+    owner = "Falconerd";
+    repo = "pie";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-qJaQyet6pjvPhBg6p0wxSIJtZE+P7A7XVqzAnvGn12E=";
+  };
+
+  buildPhase = ''
+    runHook preBuild
+    ${stdenv.cc.targetPrefix}cc -o pie pie_cli/pie.c -lm
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm 755 pie $out/bin/pie
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Simple image format optimised for pixel art";
+    homepage = "https://github.com/Falconerd/pie";
+    maintainers = with lib.maintainers; [ sigmanificient ];
+    license = lib.licenses.mit;
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/pi/pinact/package.nix b/pkgs/by-name/pi/pinact/package.nix
index 7e710c8f270ec..1c32aac2180de 100644
--- a/pkgs/by-name/pi/pinact/package.nix
+++ b/pkgs/by-name/pi/pinact/package.nix
@@ -7,18 +7,18 @@
 
 let
   pname = "pinact";
-  version = "0.1.3";
+  version = "0.2.0";
   src = fetchFromGitHub {
     owner = "suzuki-shunsuke";
     repo = "pinact";
     rev = "v${version}";
-    hash = "sha256-ifUnF7u4/vMy89xb7sk4tPKQYdFBYAIHc0GYVBMWvWM=";
+    hash = "sha256-ndlyfp+neoOEzofIlQEQp/6masnzMQFWAPmhan3hlb0=";
   };
 in
 buildGoModule {
   inherit pname version src;
 
-  vendorHash = "sha256-ht4eV62w9AWKYahrd83LmBI+Tu2Q64YA3t90N4BR1e4=";
+  vendorHash = "sha256-qu4CHh2013q7e7mBuymlKEhjpdtSOaWGVutjegoVP7E=";
 
   doCheck = true;
 
diff --git a/pkgs/by-name/pi/pingtunnel/package.nix b/pkgs/by-name/pi/pingtunnel/package.nix
index 826a562699289..e91e12fba747e 100644
--- a/pkgs/by-name/pi/pingtunnel/package.nix
+++ b/pkgs/by-name/pi/pingtunnel/package.nix
@@ -23,7 +23,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A tool that send TCP/UDP traffic over ICMP";
+    description = "Tool that send TCP/UDP traffic over ICMP";
     homepage = "https://github.com/esrrhs/pingtunnel";
     license = licenses.mit;
     maintainers = with maintainers; [ oluceps ];
diff --git a/pkgs/by-name/pi/piv-agent/package.nix b/pkgs/by-name/pi/piv-agent/package.nix
index f29c4bdf4383b..ba287be68b497 100644
--- a/pkgs/by-name/pi/piv-agent/package.nix
+++ b/pkgs/by-name/pi/piv-agent/package.nix
@@ -32,7 +32,7 @@ buildGoModule rec {
     else [ pcsclite ];
 
   meta = with lib; {
-    description = "An SSH and GPG agent which you can use with your PIV hardware security device (e.g. a Yubikey)";
+    description = "SSH and GPG agent which you can use with your PIV hardware security device (e.g. a Yubikey)";
     homepage = "https://github.com/smlx/piv-agent";
     license = licenses.asl20;
     maintainers = [ ];
diff --git a/pkgs/by-name/pi/pixel-code/package.nix b/pkgs/by-name/pi/pixel-code/package.nix
index 47a678ce6e028..7c08deca93c24 100644
--- a/pkgs/by-name/pi/pixel-code/package.nix
+++ b/pkgs/by-name/pi/pixel-code/package.nix
@@ -1,7 +1,7 @@
 { lib, stdenvNoCC, fetchzip }:
 
 stdenvNoCC.mkDerivation rec {
-  name = "pixel-code";
+  pname = "pixel-code";
   version = "2.2";
 
   src = fetchzip {
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/qwerasd205/PixelCode";
-    description = "A pixel font designed to actually be good for programming";
+    description = "Pixel font designed to actually be good for programming";
     license = licenses.ofl;
     maintainers = with maintainers; [ mattpolzin ];
   };
diff --git a/pkgs/by-name/pi/pixi/Cargo.lock b/pkgs/by-name/pi/pixi/Cargo.lock
index 090963583bd80..0f549ee8b6eae 100644
--- a/pkgs/by-name/pi/pixi/Cargo.lock
+++ b/pkgs/by-name/pi/pixi/Cargo.lock
@@ -41,6 +41,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "ahash"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
+dependencies = [
+ "cfg-if",
+ "getrandom",
+ "once_cell",
+ "version_check",
+ "zerocopy",
+]
+
+[[package]]
 name = "aho-corasick"
 version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -87,47 +100,48 @@ dependencies = [
 
 [[package]]
 name = "anstream"
-version = "0.6.13"
+version = "0.6.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
+checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b"
 dependencies = [
  "anstyle",
  "anstyle-parse",
  "anstyle-query",
  "anstyle-wincon",
  "colorchoice",
+ "is_terminal_polyfill",
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle"
-version = "1.0.6"
+version = "1.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
+checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.3"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
+checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4"
 dependencies = [
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle-query"
-version = "1.0.2"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
+checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5"
 dependencies = [
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "anstyle-wincon"
-version = "3.0.2"
+version = "3.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
+checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19"
 dependencies = [
  "anstyle",
  "windows-sys 0.52.0",
@@ -135,9 +149,18 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.82"
+version = "1.0.86"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519"
+checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
+
+[[package]]
+name = "arbitrary"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110"
+dependencies = [
+ "derive_arbitrary",
+]
 
 [[package]]
 name = "archspec"
@@ -146,7 +169,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9db67cd9cf4f56a10d2cbae6a3b552e5bd36701fd37b74a18c14a231bdf446c7"
 dependencies = [
  "cfg-if",
- "itertools",
+ "itertools 0.12.1",
  "libc",
  "serde",
  "serde_json",
@@ -171,22 +194,21 @@ dependencies = [
 
 [[package]]
 name = "async-channel"
-version = "2.2.1"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "136d4d23bcc79e27423727b36823d86233aad06dfea531837b038394d11e9928"
+checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a"
 dependencies = [
  "concurrent-queue",
- "event-listener 5.3.0",
- "event-listener-strategy 0.5.1",
+ "event-listener-strategy 0.5.2",
  "futures-core",
  "pin-project-lite",
 ]
 
 [[package]]
 name = "async-compression"
-version = "0.4.8"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07dbbf24db18d609b1462965249abdf49129ccad073ec257da372adc83259c60"
+checksum = "9c90a406b4495d129f00461241616194cb8a032c8d1c53c657f0961d5f8e0498"
 dependencies = [
  "brotli",
  "bzip2",
@@ -208,7 +230,7 @@ checksum = "b10202063978b3351199d68f8b22c4e47e4b1b822f8d43fd862d5ea8c006b29a"
 dependencies = [
  "async-task",
  "concurrent-queue",
- "fastrand 2.0.2",
+ "fastrand 2.1.0",
  "futures-lite 2.3.0",
  "slab",
 ]
@@ -257,8 +279,8 @@ dependencies = [
  "futures-io",
  "futures-lite 2.3.0",
  "parking",
- "polling 3.6.0",
- "rustix 0.38.32",
+ "polling 3.7.0",
+ "rustix 0.38.34",
  "slab",
  "tracing",
  "windows-sys 0.52.0",
@@ -303,44 +325,44 @@ dependencies = [
  "cfg-if",
  "event-listener 3.1.0",
  "futures-lite 1.13.0",
- "rustix 0.38.32",
+ "rustix 0.38.34",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "async-recursion"
-version = "1.1.0"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30c5ef0ede93efbf733c1a727f3b6b5a1060bbedd5600183e66f6e4be4af0ec5"
+checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
 ]
 
 [[package]]
 name = "async-signal"
-version = "0.2.5"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
+checksum = "afe66191c335039c7bb78f99dc7520b0cbb166b3a1cb33a03f53d8a1c6f2afda"
 dependencies = [
  "async-io 2.3.2",
- "async-lock 2.8.0",
+ "async-lock 3.3.0",
  "atomic-waker",
  "cfg-if",
  "futures-core",
  "futures-io",
- "rustix 0.38.32",
+ "rustix 0.38.34",
  "signal-hook-registry",
  "slab",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "async-task"
-version = "4.7.0"
+version = "4.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
+checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
 
 [[package]]
 name = "async-trait"
@@ -350,7 +372,7 @@ checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
 ]
 
 [[package]]
@@ -362,9 +384,9 @@ dependencies = [
  "bisection",
  "futures",
  "http-content-range",
- "itertools",
+ "itertools 0.12.1",
  "memmap2 0.9.4",
- "reqwest",
+ "reqwest 0.12.4",
  "reqwest-middleware",
  "thiserror",
  "tokio",
@@ -395,9 +417,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
 
 [[package]]
 name = "autocfg"
-version = "1.2.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
 
 [[package]]
 name = "backoff"
@@ -451,9 +473,9 @@ checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
 name = "base64"
-version = "0.22.0"
+version = "0.22.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51"
+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
 
 [[package]]
 name = "bincode"
@@ -530,25 +552,23 @@ checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"
 
 [[package]]
 name = "blocking"
-version = "1.5.1"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
+checksum = "495f7104e962b7356f0aeb34247aca1fe7d2e783b346582db7f2904cb5717e88"
 dependencies = [
  "async-channel",
  "async-lock 3.3.0",
  "async-task",
- "fastrand 2.0.2",
  "futures-io",
  "futures-lite 2.3.0",
  "piper",
- "tracing",
 ]
 
 [[package]]
 name = "brotli"
-version = "4.0.0"
+version = "6.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "125740193d7fee5cc63ab9e16c2fdc4e07c74ba755cc53b327d6ea029e9fc569"
+checksum = "74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b"
 dependencies = [
  "alloc-no-stdlib",
  "alloc-stdlib",
@@ -557,9 +577,9 @@ dependencies = [
 
 [[package]]
 name = "brotli-decompressor"
-version = "3.0.0"
+version = "4.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "65622a320492e09b5e0ac436b14c54ff68199bac392d0e89a6832c4518eea525"
+checksum = "e6221fe77a248b9117d431ad93761222e1cf8ff282d9d1d5d9f53d6299a1cf76"
 dependencies = [
  "alloc-no-stdlib",
  "alloc-stdlib",
@@ -666,7 +686,7 @@ dependencies = [
 [[package]]
 name = "cache-key"
 version = "0.0.1"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "hex",
  "seahash",
@@ -690,9 +710,9 @@ dependencies = [
 
 [[package]]
 name = "cargo-util"
-version = "0.2.10"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f2d9a9a8d3e0b61b1110c49ab8f6ed7a76ce4f2b1d53ae48a83152d3d5e8f5b"
+checksum = "f6e977de2867ec90a1654882ff95ca5849a526e893bab588f84664cfcdb11c0a"
 dependencies = [
  "anyhow",
  "core-foundation",
@@ -713,12 +733,13 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.94"
+version = "1.0.98"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17f6e324229dc011159fcc089755d1e2e216a90d43a7dea6853ca740b84f35e7"
+checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
 dependencies = [
  "jobserver",
  "libc",
+ "once_cell",
 ]
 
 [[package]]
@@ -796,7 +817,7 @@ dependencies = [
  "anstream",
  "anstyle",
  "clap_lex",
- "strsim 0.11.1",
+ "strsim",
  "terminal_size",
 ]
 
@@ -818,7 +839,7 @@ dependencies = [
  "heck 0.5.0",
  "proc-macro2",
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
 ]
 
 [[package]]
@@ -829,15 +850,15 @@ checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
 
 [[package]]
 name = "colorchoice"
-version = "1.0.0"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422"
 
 [[package]]
 name = "concurrent-queue"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
+checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
 dependencies = [
  "crossbeam-utils",
 ]
@@ -888,18 +909,18 @@ dependencies = [
 
 [[package]]
 name = "crc32fast"
-version = "1.4.0"
+version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
+checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
 dependencies = [
  "cfg-if",
 ]
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.12"
+version = "0.5.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95"
+checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2"
 dependencies = [
  "crossbeam-utils",
 ]
@@ -925,9 +946,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.19"
+version = "0.8.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
 
 [[package]]
 name = "crypto-common"
@@ -962,9 +983,9 @@ dependencies = [
 
 [[package]]
 name = "darling"
-version = "0.20.8"
+version = "0.20.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391"
+checksum = "83b2eb4d90d12bdda5ed17de686c2acb4c57914f8f921b8da7e112b5a36f3fe1"
 dependencies = [
  "darling_core",
  "darling_macro",
@@ -972,27 +993,27 @@ dependencies = [
 
 [[package]]
 name = "darling_core"
-version = "0.20.8"
+version = "0.20.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f"
+checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120"
 dependencies = [
  "fnv",
  "ident_case",
  "proc-macro2",
  "quote",
- "strsim 0.10.0",
- "syn 2.0.60",
+ "strsim",
+ "syn 2.0.65",
 ]
 
 [[package]]
 name = "darling_macro"
-version = "0.20.8"
+version = "0.20.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
+checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178"
 dependencies = [
  "darling_core",
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
 ]
 
 [[package]]
@@ -1002,23 +1023,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
 dependencies = [
  "cfg-if",
- "hashbrown 0.14.3",
+ "hashbrown 0.14.5",
  "lock_api",
  "once_cell",
- "parking_lot_core 0.9.9",
+ "parking_lot_core 0.9.10",
 ]
 
 [[package]]
 name = "data-encoding"
-version = "2.5.0"
+version = "2.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
+checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2"
 
 [[package]]
 name = "deno_task_shell"
-version = "0.16.0"
+version = "0.16.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b44af10161906e1bccc1fc966f074bec0148997bb7e2221ecd29416dcad90b3"
+checksum = "97e5ff66a1e89edb7ca0c36b73a8fcdc008ba426c4ad7a36e1dfb3f4a166179e"
 dependencies = [
  "anyhow",
  "futures",
@@ -1053,6 +1074,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "derive_arbitrary"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.65",
+]
+
+[[package]]
 name = "dialoguer"
 version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1107,9 +1139,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "displaydoc"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.65",
+]
+
+[[package]]
 name = "distribution-filename"
 version = "0.0.1"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "pep440_rs",
  "platform-tags",
@@ -1123,13 +1166,14 @@ dependencies = [
 [[package]]
 name = "distribution-types"
 version = "0.0.1"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "anyhow",
  "cache-key",
  "distribution-filename",
  "fs-err",
- "itertools",
+ "git2",
+ "itertools 0.12.1",
  "once_cell",
  "pep440_rs",
  "pep508_rs",
@@ -1156,9 +1200,9 @@ checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
 
 [[package]]
 name = "either"
-version = "1.11.0"
+version = "1.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2"
+checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b"
 
 [[package]]
 name = "elsa"
@@ -1202,7 +1246,7 @@ dependencies = [
  "heck 0.4.1",
  "proc-macro2",
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
 ]
 
 [[package]]
@@ -1214,7 +1258,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
 ]
 
 [[package]]
@@ -1235,7 +1279,7 @@ checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
 ]
 
 [[package]]
@@ -1246,18 +1290,19 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "erased-serde"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b73807008a3c7f171cc40312f37d95ef0396e048b5848d775f54b1a4dd4a0d3"
+checksum = "24e2389d65ab4fab27dc2a5de7b191e1f6617d1f1c8855c0dc569c94a4cbb18d"
 dependencies = [
  "serde",
+ "typeid",
 ]
 
 [[package]]
 name = "errno"
-version = "0.3.8"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
 dependencies = [
  "libc",
  "windows-sys 0.52.0",
@@ -1314,9 +1359,9 @@ dependencies = [
 
 [[package]]
 name = "event-listener-strategy"
-version = "0.5.1"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "332f51cb23d20b0de8458b86580878211da09bcd4503cb579c225b3d124cabb3"
+checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1"
 dependencies = [
  "event-listener 5.3.0",
  "pin-project-lite",
@@ -1333,9 +1378,21 @@ dependencies = [
 
 [[package]]
 name = "fastrand"
-version = "2.0.2"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
+
+[[package]]
+name = "file_url"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984"
+checksum = "1cd0e1a8a0c7a1829090615ebce07ebf31911031a08915ca869f1085f0e39032"
+dependencies = [
+ "itertools 0.12.1",
+ "percent-encoding",
+ "typed-path",
+ "url",
+]
 
 [[package]]
 name = "filetime"
@@ -1357,9 +1414,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
 
 [[package]]
 name = "flate2"
-version = "1.0.28"
+version = "1.0.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
+checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae"
 dependencies = [
  "crc32fast",
  "miniz_oxide",
@@ -1500,7 +1557,7 @@ version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
 dependencies = [
- "fastrand 2.0.2",
+ "fastrand 2.1.0",
  "futures-core",
  "futures-io",
  "parking",
@@ -1515,7 +1572,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
 ]
 
 [[package]]
@@ -1569,15 +1626,16 @@ version = "0.14.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
 dependencies = [
+ "serde",
  "typenum",
  "version_check",
 ]
 
 [[package]]
 name = "getrandom"
-version = "0.2.14"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c"
+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -1627,19 +1685,99 @@ dependencies = [
 ]
 
 [[package]]
+name = "google-cloud-auth"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3bf7cb7864f08a92e77c26bb230d021ea57691788fb5dd51793f96965d19e7f9"
+dependencies = [
+ "async-trait",
+ "base64 0.21.7",
+ "google-cloud-metadata",
+ "google-cloud-token",
+ "home",
+ "jsonwebtoken",
+ "reqwest 0.11.27",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "time",
+ "tokio",
+ "tracing",
+ "urlencoding",
+]
+
+[[package]]
+name = "google-cloud-metadata"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc279bfb50487d7bcd900e8688406475fc750fe474a835b2ab9ade9eb1fc90e2"
+dependencies = [
+ "reqwest 0.11.27",
+ "thiserror",
+ "tokio",
+]
+
+[[package]]
+name = "google-cloud-token"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f49c12ba8b21d128a2ce8585955246977fbce4415f680ebf9199b6f9d6d725f"
+dependencies = [
+ "async-trait",
+]
+
+[[package]]
+name = "h2"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http 0.2.12",
+ "indexmap 2.2.6",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "h2"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab"
+dependencies = [
+ "atomic-waker",
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "http 1.1.0",
+ "indexmap 2.2.6",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
 name = "hashbrown"
 version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
 dependencies = [
- "ahash",
+ "ahash 0.7.8",
 ]
 
 [[package]]
 name = "hashbrown"
-version = "0.14.3"
+version = "0.14.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
 
 [[package]]
 name = "heck"
@@ -1706,6 +1844,17 @@ dependencies = [
 
 [[package]]
 name = "http"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
@@ -1717,12 +1866,23 @@ dependencies = [
 
 [[package]]
 name = "http-body"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
+dependencies = [
+ "bytes",
+ "http 0.2.12",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "http-body"
 version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
 dependencies = [
  "bytes",
- "http",
+ "http 1.1.0",
 ]
 
 [[package]]
@@ -1733,8 +1893,8 @@ checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d"
 dependencies = [
  "bytes",
  "futures-core",
- "http",
- "http-body",
+ "http 1.1.0",
+ "http-body 1.0.0",
  "pin-project-lite",
 ]
 
@@ -1747,7 +1907,7 @@ dependencies = [
  "async-trait",
  "bincode",
  "cacache",
- "http",
+ "http 1.1.0",
  "http-cache-semantics",
  "httpdate",
  "serde",
@@ -1762,10 +1922,10 @@ checksum = "be3e27c4e2e510571cbcc601407b639667146aa9a4e818d5cc1d97c8b4b27d61"
 dependencies = [
  "anyhow",
  "async-trait",
- "http",
+ "http 1.1.0",
  "http-cache",
  "http-cache-semantics",
- "reqwest",
+ "reqwest 0.12.4",
  "reqwest-middleware",
  "serde",
  "url",
@@ -1777,8 +1937,9 @@ version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "92baf25cf0b8c9246baecf3a444546360a97b569168fdf92563ee6a47829920c"
 dependencies = [
- "http",
+ "http 1.1.0",
  "http-serde",
+ "reqwest 0.12.4",
  "serde",
  "time",
 ]
@@ -1795,7 +1956,7 @@ version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1133cafcce27ea69d35e56b3a8772e265633e04de73c5f4e1afdffc1d19b5419"
 dependencies = [
- "http",
+ "http 1.1.0",
  "serde",
 ]
 
@@ -1834,6 +1995,30 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[package]]
 name = "hyper"
+version = "0.14.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2 0.3.26",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "socket2 0.5.7",
+ "tokio",
+ "tower-service",
+ "tracing",
+ "want",
+]
+
+[[package]]
+name = "hyper"
 version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d"
@@ -1841,8 +2026,9 @@ dependencies = [
  "bytes",
  "futures-channel",
  "futures-util",
- "http",
- "http-body",
+ "h2 0.4.5",
+ "http 1.1.0",
+ "http-body 1.0.0",
  "httparse",
  "itoa",
  "pin-project-lite",
@@ -1853,30 +2039,57 @@ dependencies = [
 
 [[package]]
 name = "hyper-rustls"
+version = "0.24.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
+dependencies = [
+ "futures-util",
+ "http 0.2.12",
+ "hyper 0.14.28",
+ "rustls 0.21.12",
+ "tokio",
+ "tokio-rustls 0.24.1",
+]
+
+[[package]]
+name = "hyper-rustls"
 version = "0.26.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c"
 dependencies = [
  "futures-util",
- "http",
- "hyper",
+ "http 1.1.0",
+ "hyper 1.3.1",
  "hyper-util",
- "rustls",
+ "rustls 0.22.4",
  "rustls-pki-types",
  "tokio",
- "tokio-rustls",
+ "tokio-rustls 0.25.0",
  "tower-service",
 ]
 
 [[package]]
 name = "hyper-tls"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
+dependencies = [
+ "bytes",
+ "hyper 0.14.28",
+ "native-tls",
+ "tokio",
+ "tokio-native-tls",
+]
+
+[[package]]
+name = "hyper-tls"
 version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0"
 dependencies = [
  "bytes",
  "http-body-util",
- "hyper",
+ "hyper 1.3.1",
  "hyper-util",
  "native-tls",
  "tokio",
@@ -1893,11 +2106,11 @@ dependencies = [
  "bytes",
  "futures-channel",
  "futures-util",
- "http",
- "http-body",
- "hyper",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "hyper 1.3.1",
  "pin-project-lite",
- "socket2 0.5.6",
+ "socket2 0.5.7",
  "tokio",
  "tower",
  "tower-service",
@@ -1977,7 +2190,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.3",
+ "hashbrown 0.14.5",
  "serde",
 ]
 
@@ -2002,9 +2215,9 @@ checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5"
 
 [[package]]
 name = "insta"
-version = "1.38.0"
+version = "1.39.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3eab73f58e59ca6526037208f0e98851159ec1633cf17b6cd2e1f2c3fd5d53cc"
+checksum = "810ae6042d48e2c9e9215043563a58a80b877bc863228a74cf10c49d4620a6f5"
 dependencies = [
  "console",
  "globset",
@@ -2018,7 +2231,7 @@ dependencies = [
 [[package]]
 name = "install-wheel-rs"
 version = "0.0.1"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "configparser",
  "csv",
@@ -2044,14 +2257,14 @@ dependencies = [
  "uv-fs",
  "uv-normalize",
  "walkdir",
- "zip",
+ "zip 1.3.1",
 ]
 
 [[package]]
 name = "instant"
-version = "0.1.12"
+version = "0.1.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -2092,6 +2305,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "is_terminal_polyfill"
+version = "1.70.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800"
+
+[[package]]
 name = "itertools"
 version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2101,6 +2320,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "itertools"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
+dependencies = [
+ "either",
+]
+
+[[package]]
 name = "itoa"
 version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2108,9 +2336,9 @@ checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
 
 [[package]]
 name = "jobserver"
-version = "0.1.30"
+version = "0.1.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "685a7d121ee3f65ae4fddd72b25a04bb36b6af81bc0828f7d5434c0fe60fa3a2"
+checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e"
 dependencies = [
  "libc",
 ]
@@ -2126,31 +2354,45 @@ dependencies = [
 
 [[package]]
 name = "json-patch"
-version = "1.2.0"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55ff1e1486799e3f64129f8ccad108b38290df9cd7015cd31bed17239f0789d6"
+checksum = "ec9ad60d674508f3ca8f380a928cfe7b096bc729c4e2dbfe3852bc45da3ab30b"
 dependencies = [
  "serde",
  "serde_json",
  "thiserror",
- "treediff",
+]
+
+[[package]]
+name = "jsonwebtoken"
+version = "9.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f"
+dependencies = [
+ "base64 0.21.7",
+ "js-sys",
+ "pem",
+ "ring",
+ "serde",
+ "serde_json",
+ "simple_asn1",
 ]
 
 [[package]]
 name = "junction"
-version = "1.0.0"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca39ef0d69b18e6a2fd14c2f0a1d593200f4a4ed949b240b5917ab51fac754cb"
+checksum = "1c9c415a9b7b1e86cd5738f39d34c9e78c765da7fb1756dbd7d31b3b0d2e7afa"
 dependencies = [
  "scopeguard",
- "winapi",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "keyring"
-version = "2.3.2"
+version = "2.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1be8bc4c6b6e9d85ecdad090fcf342a9216f53d747a537cc05e3452fd650ca46"
+checksum = "363387f0019d714aa60cc30ab4fe501a747f4c08fc58f069dd14be971bd495a0"
 dependencies = [
  "byteorder",
  "lazy_static",
@@ -2180,7 +2422,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "regex",
- "syn 2.0.60",
+ "syn 2.0.65",
 ]
 
 [[package]]
@@ -2191,9 +2433,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.153"
+version = "0.2.155"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
 
 [[package]]
 name = "libgit2-sys"
@@ -2291,21 +2533,27 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.13"
+version = "0.4.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
 
 [[package]]
 name = "lock_api"
-version = "0.4.11"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
 dependencies = [
  "autocfg",
  "scopeguard",
 ]
 
 [[package]]
+name = "lockfree-object-pool"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e"
+
+[[package]]
 name = "log"
 version = "0.4.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2423,7 +2671,7 @@ checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
 ]
 
 [[package]]
@@ -2434,7 +2682,7 @@ checksum = "dcf09caffaac8068c346b6df2a7fc27a177fd20b39421a39ce0a211bde679a6c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
 ]
 
 [[package]]
@@ -2445,9 +2693,9 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
 
 [[package]]
 name = "minijinja"
-version = "1.0.20"
+version = "1.0.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5c5e3d2b4c0a6832bd3d571f7c19a7c1c1f05f11a6e85ae1a29f76be5f9455"
+checksum = "55e877d961d4f96ce13615862322df7c0b6d169d40cab71a7ef3f9b9e594451e"
 dependencies = [
  "serde",
 ]
@@ -2460,9 +2708,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
+checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae"
 dependencies = [
  "adler",
 ]
@@ -2581,9 +2829,9 @@ dependencies = [
 
 [[package]]
 name = "num"
-version = "0.4.2"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3135b08af27d103b0a51f2ae0f8632117b7b185ccf931445affa8df530576a41"
+checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23"
 dependencies = [
  "num-bigint",
  "num-complex",
@@ -2595,20 +2843,19 @@ dependencies = [
 
 [[package]]
 name = "num-bigint"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
+checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7"
 dependencies = [
- "autocfg",
  "num-integer",
  "num-traits",
 ]
 
 [[package]]
 name = "num-complex"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6"
+checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
 dependencies = [
  "num-traits",
 ]
@@ -2630,9 +2877,9 @@ dependencies = [
 
 [[package]]
 name = "num-iter"
-version = "0.1.44"
+version = "0.1.45"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9"
+checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf"
 dependencies = [
  "autocfg",
  "num-integer",
@@ -2641,11 +2888,10 @@ dependencies = [
 
 [[package]]
 name = "num-rational"
-version = "0.4.1"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
+checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
 dependencies = [
- "autocfg",
  "num-bigint",
  "num-integer",
  "num-traits",
@@ -2653,9 +2899,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.18"
+version = "0.2.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
 dependencies = [
  "autocfg",
 ]
@@ -2688,7 +2934,7 @@ dependencies = [
 [[package]]
 name = "once-map"
 version = "0.0.1"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "dashmap",
  "tokio",
@@ -2729,7 +2975,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
 ]
 
 [[package]]
@@ -2740,9 +2986,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-src"
-version = "300.2.3+3.2.1"
+version = "300.3.0+3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843"
+checksum = "eba8804a1c5765b18c4b3f907e6897ebabeedebc9830e1a0046c4a4cf44663e1"
 dependencies = [
  "cc",
 ]
@@ -2804,11 +3050,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b645dcde5f119c2c454a92d0dfa271a2a3b205da92e4292a68ead4bdbfde1f33"
 dependencies = [
  "heck 0.4.1",
- "itertools",
+ "itertools 0.12.1",
  "proc-macro2",
  "proc-macro2-diagnostics",
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
 ]
 
 [[package]]
@@ -2842,12 +3088,12 @@ dependencies = [
 
 [[package]]
 name = "parking_lot"
-version = "0.12.1"
+version = "0.12.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb"
 dependencies = [
  "lock_api",
- "parking_lot_core 0.9.9",
+ "parking_lot_core 0.9.10",
 ]
 
 [[package]]
@@ -2866,22 +3112,22 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.9"
+version = "0.9.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.4.1",
+ "redox_syscall 0.5.1",
  "smallvec",
- "windows-targets 0.48.5",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
 name = "paste"
-version = "1.0.14"
+version = "1.0.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
+checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
 
 [[package]]
 name = "path-absolutize"
@@ -2908,9 +3154,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
 
 [[package]]
+name = "pem"
+version = "3.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae"
+dependencies = [
+ "base64 0.22.1",
+ "serde",
+]
+
+[[package]]
 name = "pep440_rs"
 version = "0.5.0"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "once_cell",
  "rkyv",
@@ -2922,7 +3178,7 @@ dependencies = [
 [[package]]
 name = "pep508_rs"
 version = "0.4.2"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "derivative",
  "once_cell",
@@ -2944,9 +3200,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "petgraph"
-version = "0.6.4"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
+checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db"
 dependencies = [
  "fixedbitset",
  "indexmap 2.2.6",
@@ -2982,7 +3238,7 @@ dependencies = [
  "phf_shared",
  "proc-macro2",
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
  "unicase",
 ]
 
@@ -3013,7 +3269,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
 ]
 
 [[package]]
@@ -3030,19 +3286,20 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
 name = "piper"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4"
+checksum = "464db0c665917b13ebb5d453ccdec4add5658ee1adc7affc7677615356a8afaf"
 dependencies = [
  "atomic-waker",
- "fastrand 2.0.2",
+ "fastrand 2.1.0",
  "futures-io",
 ]
 
 [[package]]
 name = "pixi"
-version = "0.20.0"
+version = "0.23.0"
 dependencies = [
+ "ahash 0.8.11",
  "assert_matches",
  "async-once-cell",
  "cfg-if",
@@ -3052,6 +3309,7 @@ dependencies = [
  "clap_complete",
  "console",
  "crossbeam-channel",
+ "csv",
  "deno_task_shell",
  "dialoguer",
  "dirs",
@@ -3069,13 +3327,14 @@ dependencies = [
  "insta",
  "install-wheel-rs",
  "is_executable",
- "itertools",
+ "itertools 0.12.1",
  "lazy_static",
  "libc",
  "miette 7.2.0",
  "minijinja",
  "nix 0.28.0",
  "once_cell",
+ "parking_lot 0.12.2",
  "pep440_rs",
  "pep508_rs",
  "platform-tags",
@@ -3092,13 +3351,14 @@ dependencies = [
  "rattler_virtual_packages",
  "regex",
  "requirements-txt",
- "reqwest",
+ "reqwest 0.12.4",
  "reqwest-middleware",
  "reqwest-retry",
  "rstest",
  "self-replace",
  "serde",
  "serde-untagged",
+ "serde_ignored",
  "serde_json",
  "serde_with",
  "serde_yaml",
@@ -3106,18 +3366,18 @@ dependencies = [
  "shlex",
  "signal-hook",
  "spdx",
- "strsim 0.11.1",
+ "strsim",
  "tabwriter",
  "tar",
  "tempfile",
  "thiserror",
  "tokio",
  "tokio-util",
- "toml",
- "toml_edit 0.22.11",
+ "toml_edit 0.22.13",
  "tracing",
  "tracing-subscriber",
  "url",
+ "uv-auth",
  "uv-build",
  "uv-cache",
  "uv-client",
@@ -3130,8 +3390,9 @@ dependencies = [
  "uv-normalize",
  "uv-resolver",
  "uv-types",
+ "winapi",
  "xxhash-rust",
- "zip",
+ "zip 1.3.1",
 ]
 
 [[package]]
@@ -3153,7 +3414,7 @@ dependencies = [
 [[package]]
 name = "platform-tags"
 version = "0.0.1"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "rustc-hash",
  "serde",
@@ -3192,15 +3453,15 @@ dependencies = [
 
 [[package]]
 name = "polling"
-version = "3.6.0"
+version = "3.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0c976a60b2d7e99d6f229e414670a9b85d13ac305cc6d1e9c134de58c5aaaf6"
+checksum = "645493cf344456ef24219d02a768cf1fb92ddf8c92161679ae3d91b91a637be3"
 dependencies = [
  "cfg-if",
  "concurrent-queue",
  "hermit-abi",
  "pin-project-lite",
- "rustix 0.38.32",
+ "rustix 0.38.34",
  "tracing",
  "windows-sys 0.52.0",
 ]
@@ -3246,9 +3507,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.81"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba"
+checksum = "0b33eb56c327dec362a9e55b3ad14f9d2f0904fb5a5b03b513ab5465399e9f43"
 dependencies = [
  "unicode-ident",
 ]
@@ -3261,7 +3522,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
  "version_check",
  "yansi",
 ]
@@ -3300,9 +3561,9 @@ dependencies = [
 
 [[package]]
 name = "purl"
-version = "0.1.2"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d153044e55fb5c0a6f0f0f974c3335d15a842263ba4b208d2656120fe530a5ab"
+checksum = "c14fe28c8495f7eaf77a6e6106966f95211c0a2404b9da50d248fc32af3a3f14"
 dependencies = [
  "hex",
  "percent-encoding",
@@ -3316,7 +3577,7 @@ dependencies = [
 [[package]]
 name = "pypi-types"
 version = "0.0.1"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "chrono",
  "indexmap 2.2.6",
@@ -3409,24 +3670,28 @@ dependencies = [
 
 [[package]]
 name = "rattler"
-version = "0.22.0"
+version = "0.26.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c954c00bfef8915def6b043db4d61d4d61a4436c89382915839c4360424a02e"
+checksum = "b659b13fde86dcd6f8b1adc6aeaaf50eb9d082468ff7639aea45bd2c9ce57c97"
 dependencies = [
  "anyhow",
  "bytes",
  "chrono",
  "clap",
+ "console",
  "digest",
  "dirs",
  "fs-err",
  "futures",
  "fxhash",
+ "humantime",
  "indexmap 2.2.6",
- "itertools",
+ "indicatif",
+ "itertools 0.12.1",
  "memchr",
  "memmap2 0.9.4",
  "once_cell",
+ "parking_lot 0.12.2",
  "rattler_conda_types",
  "rattler_digest",
  "rattler_networking",
@@ -3434,8 +3699,9 @@ dependencies = [
  "rattler_shell",
  "reflink-copy",
  "regex",
- "reqwest",
+ "reqwest 0.12.4",
  "reqwest-middleware",
+ "simple_spawn_blocking",
  "smallvec",
  "tempfile",
  "thiserror",
@@ -3448,15 +3714,16 @@ dependencies = [
 
 [[package]]
 name = "rattler_conda_types"
-version = "0.21.0"
+version = "0.24.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15c4109edd67464a8f43c3a68b031df0f92c8efe89b3d1cf09fdc407cd90abae"
+checksum = "1ae7656866a9e67ea29627c52b350510e0600176b8cf266759368d22ee6f7490"
 dependencies = [
  "chrono",
+ "file_url",
  "fxhash",
  "glob",
  "hex",
- "itertools",
+ "itertools 0.12.1",
  "lazy-regex",
  "nom",
  "purl",
@@ -3471,17 +3738,19 @@ dependencies = [
  "strum",
  "thiserror",
  "tracing",
+ "typed-path",
  "url",
 ]
 
 [[package]]
 name = "rattler_digest"
-version = "0.19.3"
+version = "0.19.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe7143db952a9256f187ec5f69d6289c87d51b73e591cb21c653034b06fb0de7"
+checksum = "9cf69475918dd44152f7df690b13f2909f34cc762ae18a2e2c55824b546de161"
 dependencies = [
  "blake2",
  "digest",
+ "generic-array",
  "hex",
  "md-5",
  "serde",
@@ -3492,14 +3761,15 @@ dependencies = [
 
 [[package]]
 name = "rattler_lock"
-version = "0.22.2"
+version = "0.22.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b6c653f0af03d910a09e8c2d2938da6462c1218518760d3c88eddb776221d57"
+checksum = "a97d2aebc838d2c61c9b57f2694e15f82c35e5198dbbebb2e94f6e92e426727c"
 dependencies = [
  "chrono",
+ "file_url",
  "fxhash",
  "indexmap 2.2.6",
- "itertools",
+ "itertools 0.12.1",
  "pep440_rs",
  "pep508_rs",
  "purl",
@@ -3507,6 +3777,7 @@ dependencies = [
  "rattler_digest",
  "serde",
  "serde_json",
+ "serde_repr",
  "serde_with",
  "serde_yaml",
  "thiserror",
@@ -3520,27 +3791,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "10cef20e8356ea6840294e5754c6a8663b0eb1b97f29d517642f0f99215a2483"
 dependencies = [
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
 ]
 
 [[package]]
 name = "rattler_networking"
-version = "0.20.2"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4586c089e479cfb541d81db67cd8b43e0036507ffbf536e1d393e8147aa685c6"
+checksum = "c582ad6d82b397d1e1522910b34dc052bbed4dedc0eed7fb640024de0dc6f5f6"
 dependencies = [
  "anyhow",
  "async-trait",
- "base64 0.22.0",
+ "base64 0.22.1",
+ "bytes",
  "chrono",
  "dirs",
  "fslock",
+ "futures",
  "getrandom",
- "http",
- "itertools",
+ "google-cloud-auth",
+ "http 1.1.0",
+ "itertools 0.12.1",
  "keyring",
  "netrc-rs",
- "reqwest",
+ "pin-project-lite",
+ "reqwest 0.12.4",
  "reqwest-middleware",
  "retry-policies",
  "serde",
@@ -3552,9 +3827,9 @@ dependencies = [
 
 [[package]]
 name = "rattler_package_streaming"
-version = "0.20.4"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4761292a1fb0346ad20a76c81da1261454bf87a4993935506b220429d8e2b63c"
+checksum = "cb3e5f158b303cac143f0c537e237fd934b6aba9f5e26cb9adebbde1af5a4cd0"
 dependencies = [
  "bzip2",
  "chrono",
@@ -3563,7 +3838,7 @@ dependencies = [
  "rattler_conda_types",
  "rattler_digest",
  "rattler_networking",
- "reqwest",
+ "reqwest 0.12.4",
  "reqwest-middleware",
  "serde_json",
  "tar",
@@ -3572,39 +3847,51 @@ dependencies = [
  "tokio",
  "tokio-util",
  "url",
- "zip",
+ "zip 0.6.6",
  "zstd",
 ]
 
 [[package]]
 name = "rattler_repodata_gateway"
-version = "0.19.7"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f450d02a301c9da95b6f48d8fe29a921af036bb43553eee0b58b390dba70219"
+checksum = "724051407513f63016c76e23f3e9d2487f7fd32a402a811adc49d8db31a669db"
 dependencies = [
  "anyhow",
  "async-compression",
+ "async-trait",
  "blake2",
+ "bytes",
  "cache_control",
  "chrono",
+ "dashmap",
+ "dirs",
+ "file_url",
  "futures",
  "hex",
+ "http 1.1.0",
+ "http-cache-semantics",
  "humansize",
  "humantime",
- "itertools",
+ "itertools 0.12.1",
  "json-patch",
  "libc",
+ "md-5",
  "memmap2 0.9.4",
  "ouroboros",
+ "parking_lot 0.12.2",
+ "percent-encoding",
  "pin-project-lite",
  "rattler_conda_types",
  "rattler_digest",
  "rattler_networking",
- "reqwest",
+ "reqwest 0.12.4",
  "reqwest-middleware",
+ "rmp-serde",
  "serde",
  "serde_json",
  "serde_with",
+ "simple_spawn_blocking",
  "superslice",
  "tempfile",
  "thiserror",
@@ -3613,17 +3900,18 @@ dependencies = [
  "tracing",
  "url",
  "windows-sys 0.52.0",
+ "zstd",
 ]
 
 [[package]]
 name = "rattler_shell"
-version = "0.20.0"
+version = "0.20.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df3d2cc94dc0b26d871688be08bc72d8d24a69cafdf408adf7a1c4dab9dc32e4"
+checksum = "f98b0b2c7841458bfb1b19eecd98517a2033e441d116201a638d55900a7c9905"
 dependencies = [
  "enum_dispatch",
  "indexmap 2.2.6",
- "itertools",
+ "itertools 0.12.1",
  "rattler_conda_types",
  "serde_json",
  "shlex",
@@ -3635,13 +3923,13 @@ dependencies = [
 
 [[package]]
 name = "rattler_solve"
-version = "0.20.6"
+version = "0.23.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ecc29d71862c0b9307a18c8dc8dcddb6042715f26d44085f950426e8b2ef65b"
+checksum = "0c58bfe47f340da07709494d04b03e1a7d90c785a8e587171c8c19a0cb29c038"
 dependencies = [
  "chrono",
  "futures",
- "itertools",
+ "itertools 0.12.1",
  "rattler_conda_types",
  "rattler_digest",
  "resolvo",
@@ -3653,9 +3941,9 @@ dependencies = [
 
 [[package]]
 name = "rattler_virtual_packages"
-version = "0.19.7"
+version = "0.19.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a0ce73b5939df90e9f968d3d3751e97314bc030bc35ee084e6e292a1e27690a"
+checksum = "b9a5b06af1855cc4c3257659d9c788f915572c4b1f5b47657772f8d5daf00912"
 dependencies = [
  "archspec",
  "libloading",
@@ -3717,6 +4005,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "redox_syscall"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e"
+dependencies = [
+ "bitflags 2.5.0",
+]
+
+[[package]]
 name = "redox_users"
 version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3729,12 +4026,12 @@ dependencies = [
 
 [[package]]
 name = "reflink-copy"
-version = "0.1.16"
+version = "0.1.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dea9fb2ba3bcc8c51607906e56fe392ba2eb9947dcc84597f26d73f56877c66"
+checksum = "7c3138c30c59ed9b8572f82bed97ea591ecd7e45012566046cc39e72679cff22"
 dependencies = [
  "cfg-if",
- "rustix 0.38.32",
+ "rustix 0.38.34",
  "windows 0.56.0",
 ]
 
@@ -3784,9 +4081,9 @@ checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
 
 [[package]]
 name = "relative-path"
-version = "1.9.2"
+version = "1.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e898588f33fdd5b9420719948f9f2a32c922a246964576f71ba7f24f80610fbc"
+checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2"
 
 [[package]]
 name = "rend"
@@ -3800,7 +4097,7 @@ dependencies = [
 [[package]]
 name = "requirements-txt"
 version = "0.0.1"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "fs-err",
  "pep508_rs",
@@ -3818,22 +4115,67 @@ dependencies = [
 
 [[package]]
 name = "reqwest"
-version = "0.12.3"
+version = "0.11.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e6cc1e89e689536eb5aeede61520e874df5a4707df811cd5da4aa5fbb2aae19"
+checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62"
+dependencies = [
+ "base64 0.21.7",
+ "bytes",
+ "encoding_rs",
+ "futures-core",
+ "futures-util",
+ "h2 0.3.26",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "hyper 0.14.28",
+ "hyper-rustls 0.24.2",
+ "hyper-tls 0.5.0",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "native-tls",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls 0.21.12",
+ "rustls-pemfile 1.0.4",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "sync_wrapper",
+ "system-configuration",
+ "tokio",
+ "tokio-native-tls",
+ "tokio-rustls 0.24.1",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "webpki-roots 0.25.4",
+ "winreg 0.50.0",
+]
+
+[[package]]
+name = "reqwest"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10"
 dependencies = [
  "async-compression",
- "base64 0.22.0",
+ "base64 0.22.1",
  "bytes",
  "futures-channel",
  "futures-core",
  "futures-util",
- "http",
- "http-body",
+ "h2 0.4.5",
+ "http 1.1.0",
+ "http-body 1.0.0",
  "http-body-util",
- "hyper",
- "hyper-rustls",
- "hyper-tls",
+ "hyper 1.3.1",
+ "hyper-rustls 0.26.0",
+ "hyper-tls 0.6.0",
  "hyper-util",
  "ipnet",
  "js-sys",
@@ -3843,17 +4185,18 @@ dependencies = [
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
- "rustls",
+ "rustls 0.22.4",
  "rustls-native-certs",
- "rustls-pemfile",
+ "rustls-pemfile 2.1.2",
  "rustls-pki-types",
  "serde",
  "serde_json",
  "serde_urlencoded",
  "sync_wrapper",
+ "system-configuration",
  "tokio",
  "tokio-native-tls",
- "tokio-rustls",
+ "tokio-rustls 0.25.0",
  "tokio-util",
  "tower-service",
  "url",
@@ -3861,20 +4204,20 @@ dependencies = [
  "wasm-bindgen-futures",
  "wasm-streams",
  "web-sys",
- "webpki-roots",
- "winreg",
+ "webpki-roots 0.26.1",
+ "winreg 0.52.0",
 ]
 
 [[package]]
 name = "reqwest-middleware"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0209efb52486ad88136190094ee214759ef7507068b27992256ed6610eb71a01"
+checksum = "a45d100244a467870f6cb763c4484d010a6bed6bd610b3676e3825d93fb4cfbd"
 dependencies = [
  "anyhow",
  "async-trait",
- "http",
- "reqwest",
+ "http 1.1.0",
+ "reqwest 0.12.4",
  "serde",
  "thiserror",
  "tower-service",
@@ -3891,10 +4234,10 @@ dependencies = [
  "chrono",
  "futures",
  "getrandom",
- "http",
- "hyper",
+ "http 1.1.0",
+ "hyper 1.3.1",
  "parking_lot 0.11.2",
- "reqwest",
+ "reqwest 0.12.4",
  "reqwest-middleware",
  "retry-policies",
  "tokio",
@@ -3904,15 +4247,15 @@ dependencies = [
 
 [[package]]
 name = "resolvo"
-version = "0.4.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2016584c3fd9df0fd859a7dcbc7fafdc7fdd2d87b53a576e8e63e62fad140e33"
+checksum = "d299d168910c5d71f3c0f5441abe38ca4a6ae21f70fae909bfc6bead28f6620f"
 dependencies = [
  "bitvec",
  "elsa",
  "event-listener 5.3.0",
  "futures",
- "itertools",
+ "itertools 0.13.0",
  "petgraph",
  "tracing",
 ]
@@ -3985,9 +4328,9 @@ dependencies = [
 
 [[package]]
 name = "rmp-serde"
-version = "1.2.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "938a142ab806f18b88a97b0dea523d39e0fd730a064b035726adcfc58a8a5188"
+checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db"
 dependencies = [
  "byteorder",
  "rmp",
@@ -4019,7 +4362,7 @@ dependencies = [
  "regex",
  "relative-path",
  "rustc_version",
- "syn 2.0.60",
+ "syn 2.0.65",
  "unicode-ident",
 ]
 
@@ -4034,9 +4377,9 @@ dependencies = [
 
 [[package]]
 name = "rustc-demangle"
-version = "0.1.23"
+version = "0.1.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
 
 [[package]]
 name = "rustc-hash"
@@ -4069,27 +4412,39 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.32"
+version = "0.38.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
+checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
 dependencies = [
  "bitflags 2.5.0",
  "errno",
  "libc",
- "linux-raw-sys 0.4.13",
+ "linux-raw-sys 0.4.14",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "rustls"
-version = "0.22.3"
+version = "0.21.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e"
+dependencies = [
+ "log",
+ "ring",
+ "rustls-webpki 0.101.7",
+ "sct",
+]
+
+[[package]]
+name = "rustls"
+version = "0.22.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99008d7ad0bbbea527ec27bddbc0e432c5b87d8175178cee68d2eec9c4a1813c"
+checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432"
 dependencies = [
  "log",
  "ring",
  "rustls-pki-types",
- "rustls-webpki",
+ "rustls-webpki 0.102.4",
  "subtle",
  "zeroize",
 ]
@@ -4101,7 +4456,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792"
 dependencies = [
  "openssl-probe",
- "rustls-pemfile",
+ "rustls-pemfile 2.1.2",
  "rustls-pki-types",
  "schannel",
  "security-framework",
@@ -4109,25 +4464,44 @@ dependencies = [
 
 [[package]]
 name = "rustls-pemfile"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
+dependencies = [
+ "base64 0.21.7",
+]
+
+[[package]]
+name = "rustls-pemfile"
 version = "2.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d"
 dependencies = [
- "base64 0.22.0",
+ "base64 0.22.1",
  "rustls-pki-types",
 ]
 
 [[package]]
 name = "rustls-pki-types"
-version = "1.4.1"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247"
+checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d"
 
 [[package]]
 name = "rustls-webpki"
-version = "0.102.2"
+version = "0.101.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610"
+checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
+name = "rustls-webpki"
+version = "0.102.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff448f7e92e913c4b7d4c6d8e4540a1724b319b4152b8aef6d4cf8339712b33e"
 dependencies = [
  "ring",
  "rustls-pki-types",
@@ -4136,15 +4510,15 @@ dependencies = [
 
 [[package]]
 name = "rustversion"
-version = "1.0.15"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47"
+checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
 
 [[package]]
 name = "ryu"
-version = "1.0.17"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
 
 [[package]]
 name = "same-file"
@@ -4156,6 +4530,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "scc"
+version = "2.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76ad2bbb0ae5100a07b7a6f2ed7ab5fd0045551a4c507989b7a620046ea3efdc"
+dependencies = [
+ "sdd",
+]
+
+[[package]]
 name = "schannel"
 version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4171,6 +4554,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
+name = "sct"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
+name = "sdd"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b84345e4c9bd703274a082fb80caaa99b7612be48dfaa1dd9266577ec412309d"
+
+[[package]]
 name = "seahash"
 version = "4.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4197,11 +4596,11 @@ dependencies = [
 
 [[package]]
 name = "security-framework"
-version = "2.10.0"
+version = "2.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6"
+checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.5.0",
  "core-foundation",
  "core-foundation-sys",
  "libc",
@@ -4210,9 +4609,9 @@ dependencies = [
 
 [[package]]
 name = "security-framework-sys"
-version = "2.10.0"
+version = "2.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef"
+checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -4231,45 +4630,55 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.22"
+version = "1.0.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
+checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
 
 [[package]]
 name = "serde"
-version = "1.0.198"
+version = "1.0.202"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc"
+checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde-untagged"
-version = "0.1.5"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a160535368dfc353348e7eaa299156bd508c60c45a9249725f5f6d370d82a66"
+checksum = "2676ba99bd82f75cae5cbd2c8eda6fa0b8760f18978ea840e980dd5567b5c5b6"
 dependencies = [
  "erased-serde",
  "serde",
+ "typeid",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.198"
+version = "1.0.202"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9"
+checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
+]
+
+[[package]]
+name = "serde_ignored"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8e319a36d1b52126a0d608f24e93b2d81297091818cd70625fcf50a15d84ddf"
+dependencies = [
+ "serde",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.116"
+version = "1.0.117"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813"
+checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
 dependencies = [
  "indexmap 2.2.6",
  "itoa",
@@ -4285,14 +4694,14 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
 ]
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.5"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0"
 dependencies = [
  "serde",
 ]
@@ -4311,11 +4720,11 @@ dependencies = [
 
 [[package]]
 name = "serde_with"
-version = "3.7.0"
+version = "3.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee80b0e361bbf88fd2f6e242ccd19cfda072cb0faa6ae694ecee08199938569a"
+checksum = "0ad483d2ab0149d5a5ebcd9972a3852711e0153d863bf5a5d0391d28883c4a20"
 dependencies = [
- "base64 0.21.7",
+ "base64 0.22.1",
  "chrono",
  "hex",
  "indexmap 1.9.3",
@@ -4329,14 +4738,14 @@ dependencies = [
 
 [[package]]
 name = "serde_with_macros"
-version = "3.7.0"
+version = "3.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6561dc161a9224638a31d876ccdfefbc1df91d3f3a8342eddb35f055d48c7655"
+checksum = "65569b702f41443e8bc8bbb1c5779bd0450bbe723b56198980e80ec45780bce2"
 dependencies = [
  "darling",
  "proc-macro2",
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
 ]
 
 [[package]]
@@ -4354,27 +4763,27 @@ dependencies = [
 
 [[package]]
 name = "serial_test"
-version = "3.0.0"
+version = "3.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "953ad9342b3aaca7cb43c45c097dd008d4907070394bd0751a0aa8817e5a018d"
+checksum = "4b4b487fe2acf240a021cf57c6b2b4903b1e78ca0ecd862a71b71d2a51fed77d"
 dependencies = [
- "dashmap",
  "futures",
- "lazy_static",
  "log",
- "parking_lot 0.12.1",
+ "once_cell",
+ "parking_lot 0.12.2",
+ "scc",
  "serial_test_derive",
 ]
 
 [[package]]
 name = "serial_test_derive"
-version = "3.0.0"
+version = "3.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212"
+checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
 ]
 
 [[package]]
@@ -4449,14 +4858,20 @@ dependencies = [
 
 [[package]]
 name = "signal-hook-registry"
-version = "1.4.1"
+version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
 dependencies = [
  "libc",
 ]
 
 [[package]]
+name = "simd-adler32"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
+
+[[package]]
 name = "simdutf8"
 version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4469,6 +4884,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fa42c91313f1d05da9b26f267f931cf178d4aba455b4c4622dd7355eb80c6640"
 
 [[package]]
+name = "simple_asn1"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085"
+dependencies = [
+ "num-bigint",
+ "num-traits",
+ "thiserror",
+ "time",
+]
+
+[[package]]
+name = "simple_spawn_blocking"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b31ed96d1593e129cc76cb7aca364fb5c173558bfda922c15aac4e2f2f5844e"
+dependencies = [
+ "tokio",
+]
+
+[[package]]
 name = "siphasher"
 version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4521,9 +4957,9 @@ dependencies = [
 
 [[package]]
 name = "socket2"
-version = "0.5.6"
+version = "0.5.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
+checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
 dependencies = [
  "libc",
  "windows-sys 0.52.0",
@@ -4575,12 +5011,6 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
 
 [[package]]
 name = "strsim"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
-
-[[package]]
-name = "strsim"
 version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
@@ -4604,7 +5034,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.60",
+ "syn 2.0.65",
 ]
 
 [[package]]
@@ -4653,9 +5083,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.60"
+version = "2.0.65"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3"
+checksum = "d2863d96a84c6439701d7a38f9de935ec562c8832cc55d1dde0f513b52fad106"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4694,9 +5124,9 @@ dependencies = [
 
 [[package]]
 name = "sysinfo"
-version = "0.30.11"
+version = "0.30.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87341a165d73787554941cd5ef55ad728011566fe714e987d1b976c15dbc3a83"
+checksum = "732ffa00f53e6b2af46208fba5718d9662a421049204e156328b66791ffa15ae"
 dependencies = [
  "cfg-if",
  "core-foundation-sys",
@@ -4708,6 +5138,27 @@ dependencies = [
 ]
 
 [[package]]
+name = "system-configuration"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "system-configuration-sys",
+]
+
+[[package]]
+name = "system-configuration-sys"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
 name = "tabwriter"
 version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4740,8 +5191,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if",
- "fastrand 2.0.2",
- "rustix 0.38.32",
+ "fastrand 2.1.0",
+ "rustix 0.38.34",
  "windows-sys 0.52.0",
 ]
 
@@ -4751,7 +5202,7 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
 dependencies = [
- "rustix 0.38.32",
+ "rustix 0.38.34",
  "windows-sys 0.48.0",
 ]
 
@@ -4768,22 +5219,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.58"
+version = "1.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
+checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.58"
+version = "1.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
+checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
 ]
 
 [[package]]
@@ -4859,9 +5310,10 @@ dependencies = [
  "libc",
  "mio",
  "num_cpus",
+ "parking_lot 0.12.2",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2 0.5.6",
+ "socket2 0.5.7",
  "tokio-macros",
  "windows-sys 0.48.0",
 ]
@@ -4874,7 +5326,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
 ]
 
 [[package]]
@@ -4889,11 +5341,21 @@ dependencies = [
 
 [[package]]
 name = "tokio-rustls"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
+dependencies = [
+ "rustls 0.21.12",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-rustls"
 version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
 dependencies = [
- "rustls",
+ "rustls 0.22.4",
  "rustls-pki-types",
  "tokio",
 ]
@@ -4927,9 +5389,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.7.10"
+version = "0.7.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
+checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1"
 dependencies = [
  "bytes",
  "futures-core",
@@ -4937,26 +5399,25 @@ dependencies = [
  "futures-sink",
  "pin-project-lite",
  "tokio",
- "tracing",
 ]
 
 [[package]]
 name = "toml"
-version = "0.8.12"
+version = "0.8.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
+checksum = "a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.22.11",
+ "toml_edit 0.22.13",
 ]
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.5"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf"
 dependencies = [
  "serde",
 ]
@@ -4974,15 +5435,15 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.22.11"
+version = "0.22.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb686a972ccef8537b39eead3968b0e8616cb5040dbb9bba93007c8e07c9215f"
+checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c"
 dependencies = [
  "indexmap 2.2.6",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow 0.6.6",
+ "winnow 0.6.8",
 ]
 
 [[package]]
@@ -5033,7 +5494,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
 ]
 
 [[package]]
@@ -5076,21 +5537,24 @@ dependencies = [
 ]
 
 [[package]]
-name = "treediff"
-version = "4.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d127780145176e2b5d16611cc25a900150e86e9fd79d3bde6ff3a37359c9cb5"
-dependencies = [
- "serde_json",
-]
-
-[[package]]
 name = "try-lock"
 version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
 
 [[package]]
+name = "typed-path"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6069e2cc1d241fd4ff5fa067e8882996fcfce20986d078696e05abccbcf27b43"
+
+[[package]]
+name = "typeid"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "059d83cc991e7a42fc37bd50941885db0888e34209f8cfd9aab07ddec03bc9cf"
+
+[[package]]
 name = "typenum"
 version = "1.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5145,9 +5609,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-width"
-version = "0.1.11"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
+checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6"
 
 [[package]]
 name = "unsafe-libyaml"
@@ -5210,16 +5674,19 @@ dependencies = [
 [[package]]
 name = "uv-auth"
 version = "0.0.1"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
+ "anyhow",
  "async-trait",
- "base64 0.22.0",
- "http",
+ "base64 0.22.1",
+ "futures",
+ "http 1.1.0",
+ "once-map",
  "once_cell",
- "reqwest",
+ "reqwest 0.12.4",
  "reqwest-middleware",
  "rust-netrc",
- "thiserror",
+ "tokio",
  "tracing",
  "url",
  "urlencoding",
@@ -5228,13 +5695,13 @@ dependencies = [
 [[package]]
 name = "uv-build"
 version = "0.0.1"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "anyhow",
  "distribution-types",
  "fs-err",
  "indoc",
- "itertools",
+ "itertools 0.12.1",
  "once_cell",
  "pep440_rs",
  "pep508_rs",
@@ -5257,7 +5724,7 @@ dependencies = [
 [[package]]
 name = "uv-cache"
 version = "0.0.1"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "cache-key",
  "cachedir",
@@ -5280,7 +5747,7 @@ dependencies = [
 [[package]]
 name = "uv-client"
 version = "0.0.1"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -5293,13 +5760,13 @@ dependencies = [
  "fs-err",
  "futures",
  "html-escape",
- "http",
+ "http 1.1.0",
  "install-wheel-rs",
  "pep440_rs",
  "pep508_rs",
  "platform-tags",
  "pypi-types",
- "reqwest",
+ "reqwest 0.12.4",
  "reqwest-middleware",
  "reqwest-retry",
  "rkyv",
@@ -5327,27 +5794,29 @@ dependencies = [
 [[package]]
 name = "uv-configuration"
 version = "0.0.1"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "anyhow",
- "itertools",
+ "itertools 0.12.1",
  "pep508_rs",
+ "platform-tags",
  "rustc-hash",
  "serde",
  "serde_json",
+ "uv-auth",
  "uv-normalize",
 ]
 
 [[package]]
 name = "uv-dispatch"
 version = "0.0.1"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "anyhow",
  "distribution-types",
  "futures",
  "install-wheel-rs",
- "itertools",
+ "itertools 0.12.1",
  "pep508_rs",
  "rustc-hash",
  "tracing",
@@ -5364,7 +5833,7 @@ dependencies = [
 [[package]]
 name = "uv-distribution"
 version = "0.0.1"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "anyhow",
  "cache-key",
@@ -5373,19 +5842,17 @@ dependencies = [
  "fs-err",
  "futures",
  "install-wheel-rs",
- "md-5",
  "nanoid",
  "once_cell",
  "pep440_rs",
  "pep508_rs",
  "platform-tags",
  "pypi-types",
- "reqwest",
+ "reqwest 0.12.4",
  "reqwest-middleware",
  "rmp-serde",
  "rustc-hash",
  "serde",
- "sha2",
  "tempfile",
  "thiserror",
  "tokio",
@@ -5400,13 +5867,13 @@ dependencies = [
  "uv-git",
  "uv-normalize",
  "uv-types",
- "zip",
+ "zip 1.3.1",
 ]
 
 [[package]]
 name = "uv-extract"
 version = "0.0.1"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "async-compression",
  "async_zip",
@@ -5422,13 +5889,13 @@ dependencies = [
  "tokio-tar",
  "tokio-util",
  "tracing",
- "zip",
+ "zip 1.3.1",
 ]
 
 [[package]]
 name = "uv-fs"
 version = "0.0.1"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "backoff",
  "dunce",
@@ -5448,10 +5915,10 @@ dependencies = [
 [[package]]
 name = "uv-git"
 version = "0.0.1"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "anyhow",
- "base64 0.22.0",
+ "base64 0.22.1",
  "cache-key",
  "cargo-util",
  "fs-err",
@@ -5460,7 +5927,7 @@ dependencies = [
  "hmac",
  "home",
  "rand",
- "reqwest",
+ "reqwest 0.12.4",
  "sha1",
  "tokio",
  "tracing",
@@ -5471,7 +5938,7 @@ dependencies = [
 [[package]]
 name = "uv-installer"
 version = "0.0.1"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "anyhow",
  "async-channel",
@@ -5485,7 +5952,6 @@ dependencies = [
  "pypi-types",
  "rayon",
  "requirements-txt",
- "rmp-serde",
  "rustc-hash",
  "serde",
  "tempfile",
@@ -5510,7 +5976,7 @@ dependencies = [
 [[package]]
 name = "uv-interpreter"
 version = "0.0.1"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "cache-key",
  "configparser",
@@ -5532,6 +5998,7 @@ dependencies = [
  "uv-cache",
  "uv-fs",
  "uv-toolchain",
+ "uv-warnings",
  "which",
  "winapi",
 ]
@@ -5539,7 +6006,7 @@ dependencies = [
 [[package]]
 name = "uv-normalize"
 version = "0.0.1"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "rkyv",
  "serde",
@@ -5548,7 +6015,7 @@ dependencies = [
 [[package]]
 name = "uv-resolver"
 version = "0.0.1"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "anstream",
  "anyhow",
@@ -5562,7 +6029,7 @@ dependencies = [
  "futures",
  "indexmap 2.2.6",
  "install-wheel-rs",
- "itertools",
+ "itertools 0.12.1",
  "once-map",
  "once_cell",
  "owo-colors",
@@ -5594,7 +6061,7 @@ dependencies = [
 [[package]]
 name = "uv-toolchain"
 version = "0.1.0"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "anyhow",
  "fs-err",
@@ -5602,11 +6069,10 @@ dependencies = [
  "once_cell",
  "pep440_rs",
  "pep508_rs",
- "reqwest",
+ "reqwest 0.12.4",
  "reqwest-middleware",
  "tempfile",
  "thiserror",
- "tokio",
  "tokio-util",
  "tracing",
  "url",
@@ -5618,18 +6084,16 @@ dependencies = [
 [[package]]
 name = "uv-types"
 version = "0.0.1"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "anyhow",
  "distribution-types",
- "itertools",
  "once-map",
  "pep440_rs",
  "pep508_rs",
  "pypi-types",
+ "requirements-txt",
  "rustc-hash",
- "serde",
- "serde_json",
  "thiserror",
  "url",
  "uv-cache",
@@ -5640,13 +6104,13 @@ dependencies = [
 
 [[package]]
 name = "uv-version"
-version = "0.1.32"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+version = "0.1.38"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 
 [[package]]
 name = "uv-virtualenv"
 version = "0.0.4"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "anstream",
  "cachedir",
@@ -5660,12 +6124,13 @@ dependencies = [
  "uv-cache",
  "uv-fs",
  "uv-interpreter",
+ "uv-version",
 ]
 
 [[package]]
 name = "uv-warnings"
 version = "0.0.1"
-source = "git+https://github.com/astral-sh/uv?tag=0.1.32#f6b1580d8bd5388d80592701a02d0e77a199ddd5"
+source = "git+https://github.com/astral-sh/uv?tag=0.1.38#0b23caa18d7eb2f874d73e57b7b4bdf35e881a46"
 dependencies = [
  "anstream",
  "once_cell",
@@ -5693,9 +6158,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[package]]
 name = "waker-fn"
-version = "1.1.1"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
+checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7"
 
 [[package]]
 name = "walkdir"
@@ -5743,7 +6208,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
  "wasm-bindgen-shared",
 ]
 
@@ -5777,7 +6242,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -5828,6 +6293,12 @@ dependencies = [
 
 [[package]]
 name = "webpki-roots"
+version = "0.25.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
+
+[[package]]
+name = "webpki-roots"
 version = "0.26.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009"
@@ -5843,7 +6314,7 @@ checksum = "8211e4f58a2b2805adfbefbc07bab82958fc91e3836339b1ab7ae32465dce0d7"
 dependencies = [
  "either",
  "home",
- "rustix 0.38.32",
+ "rustix 0.38.34",
  "winsafe",
 ]
 
@@ -5865,11 +6336,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.6"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
+checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b"
 dependencies = [
- "winapi",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -5927,7 +6398,7 @@ checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
 ]
 
 [[package]]
@@ -5938,7 +6409,7 @@ checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.60",
+ "syn 2.0.65",
 ]
 
 [[package]]
@@ -6100,15 +6571,25 @@ dependencies = [
 
 [[package]]
 name = "winnow"
-version = "0.6.6"
+version = "0.6.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0c976aaaa0e1f90dbb21e9587cdaf1d9679a1cde8875c0d6bd83ab96a208352"
+checksum = "c3c52e9c97a68071b23e836c9380edae937f17b9c4667bd021973efc689f618d"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "winreg"
+version = "0.50.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "winreg"
 version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5"
@@ -6139,8 +6620,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
 dependencies = [
  "libc",
- "linux-raw-sys 0.4.13",
- "rustix 0.38.32",
+ "linux-raw-sys 0.4.14",
+ "rustix 0.38.34",
 ]
 
 [[package]]
@@ -6232,6 +6713,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "zerocopy"
+version = "0.7.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.65",
+]
+
+[[package]]
 name = "zeroize"
 version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6251,6 +6752,37 @@ dependencies = [
 ]
 
 [[package]]
+name = "zip"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b7a5a9285bd4ee13bdeb3f8a4917eb46557e53f270c783849db8bef37b0ad00"
+dependencies = [
+ "arbitrary",
+ "crc32fast",
+ "crossbeam-utils",
+ "displaydoc",
+ "flate2",
+ "indexmap 2.2.6",
+ "thiserror",
+ "time",
+ "zopfli",
+]
+
+[[package]]
+name = "zopfli"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5019f391bac5cf252e93bbcc53d039ffd62c7bfb7c150414d61369afe57e946"
+dependencies = [
+ "bumpalo",
+ "crc32fast",
+ "lockfree-object-pool",
+ "log",
+ "once_cell",
+ "simd-adler32",
+]
+
+[[package]]
 name = "zstd"
 version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/pkgs/by-name/pi/pixi/package.nix b/pkgs/by-name/pi/pixi/package.nix
index 660126bebefc5..86abbff58246a 100644
--- a/pkgs/by-name/pi/pixi/package.nix
+++ b/pkgs/by-name/pi/pixi/package.nix
@@ -13,20 +13,20 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pixi";
-  version = "0.20.0";
+  version = "0.23.0";
 
   src = fetchFromGitHub {
     owner = "prefix-dev";
     repo = "pixi";
     rev = "v${version}";
-    hash = "sha256-7ah5u3E9nodo/0YSuaswRY07zz8EQgvttbVKjw/USCc=";
+    hash = "sha256-uLlScqcTU9nnBQiufRo+eee1TNyP5R52oI1jUaH6L1M=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
       "async_zip-0.0.17" = "sha256-Q5fMDJrQtob54CTII3+SXHeozy5S5s3iLOzntevdGOs=";
-      "cache-key-0.0.1" = "sha256-qGFjI/LNf2p11BOgacYHU0hoXvCEjjnyAcAAIcD7YTo=";
+      "cache-key-0.0.1" = "sha256-fbaIeM4wgwi/3S8s9KRux8wKe6FbCBNPZFPekmrq2jA=";
       "pubgrub-0.2.1" = "sha256-sqC7R2mtqymYFULDW0wSbM/MKCZc8rP7Yy/gaQpjYEI=";
     };
   };
@@ -66,10 +66,14 @@ rustPlatform.buildRustPackage rec {
     "--skip=test_alias"
     "--skip=test_cwd"
     "--skip=test_compressed_mapping_catch_missing_package"
+    "--skip=test_compressed_mapping_catch_not_pandoc_not_a_python_package"
+    "--skip=test_dont_record_not_present_package_as_purl"
     "--skip=test_incremental_lock_file"
     "--skip=test_purl_are_added_for_pypi"
 
-    "--skip=test_task_with_env" # `/usr/bin/env` required
+    # `/usr/bin/env` required
+    "--skip=test_task_with_env"
+    "--skip=cli::shell_hook::tests::test_environment_json"
   ];
 
   postInstall = ''
@@ -87,7 +91,7 @@ rustPlatform.buildRustPackage rec {
     description = "Package management made easy";
     homepage = "https://pixi.sh/";
     license = licenses.bsd3;
-    maintainers = with lib.maintainers; [ aaronjheng edmundmiller ];
+    maintainers = with maintainers; [ aaronjheng edmundmiller ];
     mainProgram = "pixi";
   };
 }
diff --git a/pkgs/by-name/pi/pizauth/package.nix b/pkgs/by-name/pi/pizauth/package.nix
new file mode 100644
index 0000000000000..17c201663c02f
--- /dev/null
+++ b/pkgs/by-name/pi/pizauth/package.nix
@@ -0,0 +1,43 @@
+{
+  lib,
+  rustPlatform,
+  fetchFromGitHub,
+  installShellFiles,
+  stdenv,
+  darwin,
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "pizauth";
+  version = "1.0.4";
+
+  src = fetchFromGitHub {
+    owner = "ltratt";
+    repo = "pizauth";
+    rev = "pizauth-${version}";
+    hash = "sha256-Du+MVdYVQgH2V7928kpur+Xp/0y7HXgB8ZC0qciiQvs=";
+  };
+
+  cargoHash = "sha256-DrpYMVGvu7UnzQToVgVptURqp7XyoR1iYUfRSLZaqXw=";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  buildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
+
+  postInstall = ''
+    installShellCompletion --cmd pizauth \
+      --bash share/bash/completion.bash
+  '';
+
+  meta = {
+    description = "Command-line OAuth2 authentication daemon";
+    homepage = "https://github.com/ltratt/pizauth";
+    changelog = "https://github.com/ltratt/pizauth/blob/${src.rev}/CHANGES.md";
+    license = with lib.licenses; [
+      asl20
+      mit
+    ];
+    maintainers = with lib.maintainers; [ moraxyc ];
+    mainProgram = "pizauth";
+  };
+}
diff --git a/pkgs/by-name/pk/pkcrack/package.nix b/pkgs/by-name/pk/pkcrack/package.nix
index 2f3f16e07411e..5cbe977c38ec1 100644
--- a/pkgs/by-name/pk/pkcrack/package.nix
+++ b/pkgs/by-name/pk/pkcrack/package.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "pkcrack";
-  version = "1.2.2";
+  version = "1.2.3";
 
   src = fetchurl {
     url = "https://www.unix-ag.uni-kl.de/~conrad/krypto/pkcrack/pkcrack-${finalAttrs.version}.tar.gz";
-    hash = "sha256-TS3Bk/+kNCrC7TpjEf33cK5qB3Eiaz70U9yo0D5DiVo=";
+    hash = "sha256-j0n6OHlio3oUyavVSQFnIaY0JREFv0uDfMcvC61BPTg=";
   };
   sourceRoot = "pkcrack-${finalAttrs.version}/src";
 
diff --git a/pkgs/by-name/pk/pkcs11-provider/package.nix b/pkgs/by-name/pk/pkcs11-provider/package.nix
index 37f622bc94803..d0d03d70a9e96 100644
--- a/pkgs/by-name/pk/pkcs11-provider/package.nix
+++ b/pkgs/by-name/pk/pkcs11-provider/package.nix
@@ -1,33 +1,39 @@
 { lib, stdenv, fetchFromGitHub
 , openssl, nss, p11-kit
 , opensc, gnutls, expect
-, autoreconfHook, autoconf-archive, pkg-config
+, meson, ninja, pkg-config
+, nix-update-script
 }:
 
 stdenv.mkDerivation rec {
   pname = "pkcs11-provider";
-  version = "0.3";
+  version = "0.4";
 
   src = fetchFromGitHub {
     owner = "latchset";
     repo = "pkcs11-provider";
     rev = "v${version}";
-    hash = "sha256-jEQYsINRZ7bi2UqOXUUmGpm+1h+1qBNe18KvfAw2JzU=";
+    hash = "sha256-f4BbW2awSXS1srSkn1CTRCqNp+2pvVpc4YL79Ht0w0A=";
   };
 
   buildInputs = [ openssl nss p11-kit ];
-  nativeBuildInputs = [ autoreconfHook pkg-config autoconf-archive ];
+  nativeBuildInputs = [ meson ninja pkg-config ];
 
   # don't add SoftHSM to here: https://github.com/openssl/openssl/issues/22508
   nativeCheckInputs = [ p11-kit.bin opensc nss.tools gnutls openssl.bin expect ];
 
   postPatch = ''
     patchShebangs --build .
+  '';
 
-    # Makefile redirects to logfiles; make sure we can catch them.
-    for name in softokn softhsm; do
-      ln -s /dev/stderr tests/setup-$name.log
+  preInstall = ''
+    # Meson tries to install to `$out/$out` and `$out/''${openssl.out}`; so join them.
+    mkdir -p "$out"
+    for dir in "$out" "${openssl.out}"; do
+      mkdir -p .install/"$(dirname -- "$dir")"
+      ln -s "$out" ".install/$dir"
     done
+    export DESTDIR="$(realpath .install)"
   '';
 
   enableParallelBuilding = true;
@@ -37,9 +43,13 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  passthru.updateScript = nix-update-script {
+    extraArgs = [ "--version-regex" "v(\d\.\d)"];
+  };
+
   meta = with lib; {
     homepage = "https://github.com/latchset/pkcs11-provider";
-    description = "An OpenSSL 3.x provider to access hardware or software tokens using the PKCS#11 Cryptographic Token Interface";
+    description = "OpenSSL 3.x provider to access hardware or software tokens using the PKCS#11 Cryptographic Token Interface";
     maintainers = with maintainers; [ numinit ];
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/pkgs/by-name/pl/plasticity/package.nix b/pkgs/by-name/pl/plasticity/package.nix
index 895b8a604b56a..84584bf421885 100644
--- a/pkgs/by-name/pl/plasticity/package.nix
+++ b/pkgs/by-name/pl/plasticity/package.nix
@@ -33,11 +33,11 @@
 }:
 stdenv.mkDerivation rec  {
   pname = "plasticity";
-  version = "24.1.5";
+  version = "24.1.6";
 
   src = fetchurl {
     url = "https://github.com/nkallen/plasticity/releases/download/v${version}/Plasticity-${version}-1.x86_64.rpm";
-    hash = "sha256-1oneFWWgMYsh12knn+Atp8ttSnTdaV+5TWwp2htZsvE=";
+    hash = "sha256-gGfDsAqg0PkORrOEvBWLpKgLv5a+M9Rj+oC+jF1gYqA=";
   };
 
   passthru.updateScript = ./update.sh;
diff --git a/pkgs/by-name/pl/plasticity/update.sh b/pkgs/by-name/pl/plasticity/update.sh
index 8980f632e3ee4..2b778658739d2 100755
--- a/pkgs/by-name/pl/plasticity/update.sh
+++ b/pkgs/by-name/pl/plasticity/update.sh
@@ -5,7 +5,7 @@
 set -eu -o pipefail
 
 version=$(curl -s ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} \
-    curl -s https://api.github.com/repos/nkallen/plasticity/releases/latest | jq -e -r ".tag_name | .[1:]")
+    https://api.github.com/repos/nkallen/plasticity/releases/latest | jq -e -r ".tag_name | .[1:]")
 old_version=$(nix-instantiate --eval -A plasticity.version | jq -e -r)
 
 if [[ $version == "$old_version" ]]; then
diff --git a/pkgs/by-name/pl/platformsh/package.nix b/pkgs/by-name/pl/platformsh/package.nix
index 6bf7a9a9c9b4a..2b0387ad1b89d 100644
--- a/pkgs/by-name/pl/platformsh/package.nix
+++ b/pkgs/by-name/pl/platformsh/package.nix
@@ -58,7 +58,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   };
 
   meta = {
-    description = "The unified tool for managing your Platform.sh services from the command line";
+    description = "Unified tool for managing your Platform.sh services from the command line";
     homepage = "https://github.com/platformsh/cli";
     license = lib.licenses.mit;
     mainProgram = "platform";
diff --git a/pkgs/by-name/pl/plattenalbum/package.nix b/pkgs/by-name/pl/plattenalbum/package.nix
new file mode 100644
index 0000000000000..200bc55569da2
--- /dev/null
+++ b/pkgs/by-name/pl/plattenalbum/package.nix
@@ -0,0 +1,60 @@
+{
+  lib,
+  python3Packages,
+  fetchFromGitHub,
+  meson,
+  ninja,
+  pkg-config,
+  gobject-introspection,
+  wrapGAppsHook4,
+  desktop-file-utils,
+  libadwaita,
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "plattenalbum";
+  version = "2.1.1";
+  pyproject = false;
+
+  src = fetchFromGitHub {
+    owner = "SoongNoonien";
+    repo = "plattenalbum";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-M4WjRQQYu8ixUYV6LgiyAPyvCS1Vk+UpLq/Sek0qBlw=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gobject-introspection
+    wrapGAppsHook4
+    desktop-file-utils
+  ];
+
+  buildInputs = [ libadwaita ];
+
+  dependencies = with python3Packages; [
+    pygobject3
+    mpd2
+  ];
+
+  dontWrapGApps = true;
+
+  preFixup = ''
+    makeWrapperArgs+=(''${gappsWrapperArgs[@]})
+  '';
+
+  meta = {
+    description = "Client for the Music Player Daemon (originally named mpdevil)";
+    homepage = "https://github.com/SoongNoonien/plattenalbum";
+    changelog = "https://github.com/SoongNoonien/plattenalbum/releases/tag/v${version}";
+    license = with lib.licenses; [
+      gpl3Only
+      cc0
+    ];
+    mainProgram = "plattenalbum";
+    maintainers = with lib.maintainers; [ aleksana ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/pl/plemoljp-hs/package.nix b/pkgs/by-name/pl/plemoljp-hs/package.nix
index 4e7404025ccdb..fe94bdc0a1479 100644
--- a/pkgs/by-name/pl/plemoljp-hs/package.nix
+++ b/pkgs/by-name/pl/plemoljp-hs/package.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A composite font of IBM Plex Mono, IBM Plex Sans JP and hidden full-width space";
+    description = "Composite font of IBM Plex Mono, IBM Plex Sans JP and hidden full-width space";
     homepage = "https://github.com/yuru7/PlemolJP";
     license = licenses.ofl;
     platforms = platforms.all;
diff --git a/pkgs/by-name/pl/plemoljp-nf/package.nix b/pkgs/by-name/pl/plemoljp-nf/package.nix
index 0925b303ddc2f..40687bb720f9c 100644
--- a/pkgs/by-name/pl/plemoljp-nf/package.nix
+++ b/pkgs/by-name/pl/plemoljp-nf/package.nix
@@ -19,7 +19,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A composite font of IBM Plex Mono, IBM Plex Sans JP and nerd-fonts";
+    description = "Composite font of IBM Plex Mono, IBM Plex Sans JP and nerd-fonts";
     homepage = "https://github.com/yuru7/PlemolJP";
     license = licenses.ofl;
     platforms = platforms.all;
diff --git a/pkgs/by-name/pl/plemoljp/package.nix b/pkgs/by-name/pl/plemoljp/package.nix
index 571cdf01522eb..43472cb743e0c 100644
--- a/pkgs/by-name/pl/plemoljp/package.nix
+++ b/pkgs/by-name/pl/plemoljp/package.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A composite font of IBM Plex Mono and IBM Plex Sans JP";
+    description = "Composite font of IBM Plex Mono and IBM Plex Sans JP";
     homepage = "https://github.com/yuru7/PlemolJP";
     license = licenses.ofl;
     platforms = platforms.all;
diff --git a/pkgs/by-name/pl/plow/package.nix b/pkgs/by-name/pl/plow/package.nix
index 237b889c71e03..981787d16d94d 100644
--- a/pkgs/by-name/pl/plow/package.nix
+++ b/pkgs/by-name/pl/plow/package.nix
@@ -20,7 +20,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A high-performance HTTP benchmarking tool that includes a real-time web UI and terminal display";
+    description = "High-performance HTTP benchmarking tool that includes a real-time web UI and terminal display";
     homepage = "https://github.com/six-ddc/plow";
     changelog = "https://github.com/six-ddc/plow/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/by-name/pl/plumber/package.nix b/pkgs/by-name/pl/plumber/package.nix
index 61537027e311a..8571bd7ca096b 100644
--- a/pkgs/by-name/pl/plumber/package.nix
+++ b/pkgs/by-name/pl/plumber/package.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "plumber";
-  version = "2.6.1";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     owner = "streamdal";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-7sOj21ZTmo3KJ8CduH25jA4gmXLMKi5QWAng6nP0dsQ=";
+    hash = "sha256-20rc9TLiCkt9k/Gtr5aoheGiiqOp1eURSqg4p1jTnkE=";
   };
 
   vendorHash = null;
@@ -27,7 +27,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "A CLI devtool for interacting with data in message systems like Kafka, RabbitMQ, GCP PubSub and more";
+    description = "CLI devtool for interacting with data in message systems like Kafka, RabbitMQ, GCP PubSub and more";
     mainProgram = "plumber";
     homepage = "https://github.com/streamdal/plumber";
     license = licenses.mit;
diff --git a/pkgs/by-name/pl/plymouth-proxzima-theme/package.nix b/pkgs/by-name/pl/plymouth-proxzima-theme/package.nix
new file mode 100644
index 0000000000000..175a287435e93
--- /dev/null
+++ b/pkgs/by-name/pl/plymouth-proxzima-theme/package.nix
@@ -0,0 +1,39 @@
+{
+  stdenvNoCC,
+  fetchFromGitHub,
+  lib,
+  unstableGitUpdater,
+}:
+
+stdenvNoCC.mkDerivation {
+  pname = "plymouth-proxzima-theme";
+  version = "0-unstable-2023-01-30";
+
+  src = fetchFromGitHub {
+    owner = "PROxZIMA";
+    repo = "proxzima-plymouth";
+    rev = "b6e335a631e057942700de5c523198a5b8061d9c";
+    hash = "sha256-f4CtXKsZPc/gZMVD+MJrHMrMw7TTFUndhUT4YLpfORU=";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/plymouth/themes/proxzima
+    cp proxzima/* $out/share/plymouth/themes/proxzima
+    substituteInPlace $out/share/plymouth/themes/proxzima/proxzima.plymouth \
+      --replace-fail "/usr/" "$out/"
+    runHook postInstall
+  '';
+
+  passthru.updateScript = unstableGitUpdater { };
+
+  meta = {
+    description = "Techno Plymouth theme with crazy animation";
+    homepage = "https://github.com/PROxZIMA/proxzima-plymouth";
+    license = lib.licenses.gpl3Only;
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ johnrtitor ];
+  };
+}
diff --git a/pkgs/by-name/pl/plymouth-vortex-ubuntu-theme/package.nix b/pkgs/by-name/pl/plymouth-vortex-ubuntu-theme/package.nix
new file mode 100644
index 0000000000000..d6223df07cda7
--- /dev/null
+++ b/pkgs/by-name/pl/plymouth-vortex-ubuntu-theme/package.nix
@@ -0,0 +1,43 @@
+{
+  stdenvNoCC,
+  fetchFromGitHub,
+  lib,
+  unstableGitUpdater,
+}:
+
+stdenvNoCC.mkDerivation {
+  pname = "plymouth-vortex-ubuntu-theme";
+  version = "0-unstable-2024-05-05";
+
+  src = fetchFromGitHub {
+    owner = "emanuele-scarsella";
+    repo = "vortex-ubuntu-plymouth-theme";
+    rev = "331a201918a3b026dd200659403c1cf779c718f0";
+    hash = "sha256-RSWfuKCdsuFA2e5kb0OXnxW+QV7b2iHVvZEKVHoLgMw=";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/plymouth/themes/vortex-ubuntu
+    cp vortex-ubuntu/* $out/share/plymouth/themes/vortex-ubuntu
+    substituteInPlace $out/share/plymouth/themes/vortex-ubuntu/vortex-ubuntu.plymouth \
+      --replace-fail "/usr/" "$out/"
+    runHook postInstall
+  '';
+
+  passthru.updateScript = unstableGitUpdater { };
+
+  meta = {
+    description = "Animated Plymouth boot theme with rotating Ubuntu logo";
+    longDescription = ''
+      Animated Plymouth theme with the Ubuntu logo and a futuristic and elegant look.
+      Disk encryption password prompt is supported.
+    '';
+    homepage = "https://github.com/emanuele-scarsella/vortex-ubuntu-plymouth-theme";
+    license = lib.licenses.gpl2Only;
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ johnrtitor ];
+  };
+}
diff --git a/pkgs/by-name/pl/plzip/package.nix b/pkgs/by-name/pl/plzip/package.nix
index e9083581a86ea..db7d3101d7e28 100644
--- a/pkgs/by-name/pl/plzip/package.nix
+++ b/pkgs/by-name/pl/plzip/package.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://www.nongnu.org/lzip/plzip.html";
-    description = "A massively parallel lossless data compressor based on the lzlib compression library";
+    description = "Massively parallel lossless data compressor based on the lzlib compression library";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.all;
     maintainers = with lib.maintainers; [ _360ied ehmry ];
diff --git a/pkgs/by-name/pm/pm2/package.nix b/pkgs/by-name/pm/pm2/package.nix
index 1b29f2fa52dc0..20ad72df78533 100644
--- a/pkgs/by-name/pm/pm2/package.nix
+++ b/pkgs/by-name/pm/pm2/package.nix
@@ -5,16 +5,16 @@
 
 buildNpmPackage rec {
   pname = "pm2";
-  version = "5.3.1";
+  version = "5.4.1";
 
   src = fetchFromGitHub {
     owner = "Unitech";
     repo = "pm2";
     rev = "v${version}";
-    hash = "sha256-thShqrnM5S3/IImEm+2vHVRLCsLJN5NGaSRYubtULW0=";
+    hash = "sha256-LMBQ1+VyGjq76Qs5HtELSvEuml3XfzLBbvcuAFuJzw4=";
   };
 
-  npmDepsHash = "sha256-6M8kwiCHaQzcFyUUx7Yax/dobATWXG0Di7enEzlO8YE=";
+  npmDepsHash = "sha256-hXP+rXXn0Ds81D2iLWVkgfFiFA3dDD5wrAoVivHaRHA=";
 
   dontNpmBuild = true;
 
diff --git a/pkgs/tools/misc/pmbootstrap/default.nix b/pkgs/by-name/pm/pmbootstrap/package.nix
index 03cc7997e2252..666f12396681a 100644
--- a/pkgs/tools/misc/pmbootstrap/default.nix
+++ b/pkgs/by-name/pm/pmbootstrap/package.nix
@@ -1,15 +1,24 @@
-{ stdenv, lib, git, openssl, buildPythonApplication, pytestCheckHook, ps
-, fetchPypi, fetchFromGitLab, sudo }:
+{ stdenv
+, lib
+, git
+, openssl
+, ps
+, fetchFromGitLab
+, sudo
+, python3Packages
+, gitUpdater
+}:
 
-buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "pmbootstrap";
-  version = "2.2.0";
+  version = "2.3.1";
+  pyproject = true;
 
   src = fetchFromGitLab {
     owner = "postmarketos";
     repo = pname;
     rev = version;
-    hash = "sha256-wRJvvABIUPh79QfS8VcwRueB/vO9oGcqyE/OugfTsd8=";
+    hash = "sha256-0hC84Gyfr1FOpZGAc7pAhz/QBSTA5A/Lu/ZJdzlEcX4=";
   };
 
   pmb_test = "${src}/test";
@@ -17,7 +26,14 @@ buildPythonApplication rec {
   # Tests depend on sudo
   doCheck = stdenv.isLinux;
 
-  nativeCheckInputs = [ pytestCheckHook git openssl ps sudo ];
+  nativeCheckInputs = [
+    python3Packages.pytestCheckHook
+    python3Packages.setuptools
+    git
+    openssl
+    ps
+    sudo
+  ];
 
   # Add test dependency in PATH
   preCheck = "export PYTHONPATH=$PYTHONPATH:${pmb_test}";
@@ -93,12 +109,14 @@ buildPythonApplication rec {
 
   makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ git openssl ]}" ];
 
+  passthru.updateScript = gitUpdater { };
+
   meta = with lib; {
     description =
       "Sophisticated chroot/build/flash tool to develop and install postmarketOS";
     homepage = "https://gitlab.com/postmarketOS/pmbootstrap";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ onny ];
+    maintainers = with maintainers; [ onny lucasew ];
     mainProgram = "pmbootstrap";
   };
 }
diff --git a/pkgs/by-name/pm/pmtiles/package.nix b/pkgs/by-name/pm/pmtiles/package.nix
index b6930bf1ef86e..aa2f3ea918532 100644
--- a/pkgs/by-name/pm/pmtiles/package.nix
+++ b/pkgs/by-name/pm/pmtiles/package.nix
@@ -1,16 +1,16 @@
 { lib, buildGoModule, fetchFromGitHub }:
 buildGoModule rec {
   pname = "pmtiles";
-  version = "1.19.1";
+  version = "1.20.0";
 
   src = fetchFromGitHub {
     owner = "protomaps";
     repo = "go-pmtiles";
     rev = "v${version}";
-    hash = "sha256-JVx543uatVUWD1TmnjJBz4X/oHPKpbrGpGcxQd2IYiw=";
+    hash = "sha256-ZwTZtMNgQE0AIbxdjA+8CFKSp1B9QnV5wmP+z/JoIpg=";
   };
 
-  vendorHash = "sha256-N/8n3NDHShcXjPvLSkLRacY4aqFzLYM/+/mJRGXQAVg=";
+  vendorHash = "sha256-Buzk+rPSPrs0q+g6MWVb47cAIKMxsNXlj3CWA0JINXM=";
 
   ldflags = [ "-s" "-w" "-X main.version=${version}" "-X main.commit=v${version}" ];
 
@@ -19,7 +19,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "The single-file utility for creating and working with PMTiles archives";
+    description = "Single-file utility for creating and working with PMTiles archives";
     homepage = "https://github.com/protomaps/go-pmtiles";
     license = licenses.bsd3;
     maintainers = [ maintainers.theaninova ];
diff --git a/pkgs/by-name/po/poethepoet/package.nix b/pkgs/by-name/po/poethepoet/package.nix
index 08237d2b8a721..980334c26077a 100644
--- a/pkgs/by-name/po/poethepoet/package.nix
+++ b/pkgs/by-name/po/poethepoet/package.nix
@@ -33,7 +33,7 @@ python3.pkgs.buildPythonApplication rec {
   pythonImportsCheck = [ "poethepoet" ];
 
   meta = with lib; {
-    description = "A task runner that works well with poetry";
+    description = "Task runner that works well with poetry";
     homepage = "https://github.com/nat-n/poethepoet";
     changelog = "https://github.com/nat-n/poethepoet/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/by-name/po/pokemon-cursor/package.nix b/pkgs/by-name/po/pokemon-cursor/package.nix
index ef9d35b49c836..c5718e365ec1d 100644
--- a/pkgs/by-name/po/pokemon-cursor/package.nix
+++ b/pkgs/by-name/po/pokemon-cursor/package.nix
@@ -41,7 +41,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "An unofficial open-source Pokemon cursor theme";
+    description = "Unofficial open-source Pokemon cursor theme";
     homepage = "https://github.com/ful1e5/pokemon-cursor";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.getpsyched ];
diff --git a/pkgs/tools/security/polkit-gnome/default.nix b/pkgs/by-name/po/polkit_gnome/package.nix
index e0d57d9bde236..fd35df9f9e6c9 100644
--- a/pkgs/tools/security/polkit-gnome/default.nix
+++ b/pkgs/by-name/po/polkit_gnome/package.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, polkit, gtk3, pkg-config, intltool }:
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "polkit-gnome";
   version = "0.105";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/polkit-gnome/${version}/${pname}-${version}.tar.xz";
-    sha256 = "0sckmcbxyj6sbrnfc5p5lnw27ccghsid6v6wxq09mgxqcd4lk10p";
+    url = "mirror://gnome/sources/polkit-gnome/${finalAttrs.version}/polkit-gnome-${finalAttrs.version}.tar.xz";
+    hash = "sha256-F4RJSWO4v5oA7txs06KGj7EjuKXlFuZsXtpI3xerk2k=";
   };
 
   buildInputs = [ polkit gtk3 ];
@@ -21,9 +21,9 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://gitlab.gnome.org/Archive/policykit-gnome";
-    description = "A dbus session bus service that is used to bring up authentication dialogs";
+    description = "Dbus session bus service that is used to bring up authentication dialogs";
     license = lib.licenses.lgpl2Plus;
     maintainers = with lib.maintainers; [ ];
     platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/pkgs/tools/security/polkit-gnome/polkit-gnome-authentication-agent-1.desktop b/pkgs/by-name/po/polkit_gnome/polkit-gnome-authentication-agent-1.desktop
index 5ddda50cb0157..5ddda50cb0157 100644
--- a/pkgs/tools/security/polkit-gnome/polkit-gnome-authentication-agent-1.desktop
+++ b/pkgs/by-name/po/polkit_gnome/polkit-gnome-authentication-agent-1.desktop
diff --git a/pkgs/by-name/po/polybar/package.nix b/pkgs/by-name/po/polybar/package.nix
index 870968ef658cf..66da65842d31d 100644
--- a/pkgs/by-name/po/polybar/package.nix
+++ b/pkgs/by-name/po/polybar/package.nix
@@ -103,7 +103,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://polybar.github.io/";
     changelog = "https://github.com/polybar/polybar/releases/tag/${finalAttrs.version}";
-    description = "A fast and easy-to-use tool for creating status bars";
+    description = "Fast and easy-to-use tool for creating status bars";
     longDescription = ''
       Polybar aims to help users build beautiful and highly customizable
       status bars for their desktop environment, without the need of
diff --git a/pkgs/by-name/po/polylux2pdfpc/package.nix b/pkgs/by-name/po/polylux2pdfpc/package.nix
index e0ab8318f69d5..cfe1290d19391 100644
--- a/pkgs/by-name/po/polylux2pdfpc/package.nix
+++ b/pkgs/by-name/po/polylux2pdfpc/package.nix
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A tool to make pdfpc interpret slides created by polylux correctly";
+    description = "Tool to make pdfpc interpret slides created by polylux correctly";
     homepage = "https://github.com/andreasKroepelin/polylux/tree/main/pdfpc-extractor";
     license = licenses.mit;
     mainProgram = "polylux2pdfpc";
diff --git a/pkgs/by-name/po/pomodoro-gtk/package.nix b/pkgs/by-name/po/pomodoro-gtk/package.nix
index ef667552a8117..b373535960c9b 100644
--- a/pkgs/by-name/po/pomodoro-gtk/package.nix
+++ b/pkgs/by-name/po/pomodoro-gtk/package.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation {
   ];
 
   meta = {
-    description = "A simple and intuitive timer application (also named Planytimer)";
+    description = "Simple and intuitive timer application (also named Planytimer)";
     homepage = "https://gitlab.com/idevecore/pomodoro";
     license = lib.licenses.gpl3Plus;
     mainProgram = "pomodoro";
diff --git a/pkgs/by-name/po/poppins/package.nix b/pkgs/by-name/po/poppins/package.nix
index b56b2c3f2c8d6..f72ce9ffcc692 100644
--- a/pkgs/by-name/po/poppins/package.nix
+++ b/pkgs/by-name/po/poppins/package.nix
@@ -26,7 +26,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = {
-    description = "A Devanagari + Latin family for Google Fonts";
+    description = "Devanagari + Latin family for Google Fonts";
     homepage = "https://github.com/itfoundry/Poppins/";
     license = lib.licenses.ofl;
     maintainers = with lib.maintainers; [nyawox];
diff --git a/pkgs/by-name/po/poptracker/package.nix b/pkgs/by-name/po/poptracker/package.nix
index 6ef94feb3484a..4fb90aa82c37c 100644
--- a/pkgs/by-name/po/poptracker/package.nix
+++ b/pkgs/by-name/po/poptracker/package.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "poptracker";
-  version = "0.25.7";
+  version = "0.26.1";
 
   src = fetchFromGitHub {
     owner = "black-sliver";
     repo = "PopTracker";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-wP2d8cWNg80KUyw1xPQMriNRg3UyXgKaSoJ17U5vqCE=";
+    hash = "sha256-NeUIU+vXML9lP+JL7MJyGNxZB0ggAngOpf8mMgOE+r8=";
     fetchSubmodules = true;
   };
 
@@ -57,7 +57,7 @@ stdenv.mkDerivation (finalAttrs: {
     runHook postInstall
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Scriptable tracker for randomized games";
     longDescription = ''
       Universal, scriptable randomizer tracking solution that is open source. Supports auto-tracking.
@@ -66,8 +66,8 @@ stdenv.mkDerivation (finalAttrs: {
     '';
     homepage = "https://github.com/black-sliver/PopTracker";
     changelog = "https://github.com/black-sliver/PopTracker/releases/tag/v${finalAttrs.version}";
-    license = licenses.gpl3Only;
-    maintainers = with maintainers; [ freyacodes ];
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ freyacodes pyrox0 ];
     mainProgram = "poptracker";
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/by-name/po/portablemc/package.nix b/pkgs/by-name/po/portablemc/package.nix
index 444dd9d205506..494331045c00c 100644
--- a/pkgs/by-name/po/portablemc/package.nix
+++ b/pkgs/by-name/po/portablemc/package.nix
@@ -83,7 +83,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = {
     homepage = "https://github.com/mindstorm38/portablemc";
-    description = "A fast, reliable and cross-platform command-line Minecraft launcher and API for developers";
+    description = "Fast, reliable and cross-platform command-line Minecraft launcher and API for developers";
     longDescription = ''
       A fast, reliable and cross-platform command-line Minecraft launcher and API for developers.
       Including fast and easy installation of common mod loaders such as Fabric, Forge, NeoForge and Quilt.
diff --git a/pkgs/by-name/po/pot/package.nix b/pkgs/by-name/po/pot/package.nix
index 0547e72f48198..ee6fc05bb6411 100644
--- a/pkgs/by-name/po/pot/package.nix
+++ b/pkgs/by-name/po/pot/package.nix
@@ -1,76 +1,49 @@
 { lib
 , stdenv
-, stdenvNoCC
 , rustPlatform
 , fetchFromGitHub
+, nodejs
+, pnpm
 , wrapGAppsHook3
 , cargo
 , rustc
 , cargo-tauri
 , pkg-config
-, nodePackages
 , esbuild
 , buildGoModule
-, jq
-, moreutils
 , libayatana-appindicator
 , gtk3
 , webkitgtk
 , libsoup
 , openssl
 , xdotool
-, cacert
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "pot";
   version = "2.7.9";
 
   src = fetchFromGitHub {
     owner = "pot-app";
     repo = "pot-desktop";
-    rev = version;
+    rev = finalAttrs.version;
     hash = "sha256-Y2gFLvRNBjOGxdpIeoY1CXEip0Ht73aymWIP5wuc9kU=";
   };
 
-  sourceRoot = "${src.name}/src-tauri";
+  sourceRoot = "${finalAttrs.src.name}/src-tauri";
 
   postPatch = ''
     substituteInPlace $cargoDepsCopy/libappindicator-sys-*/src/lib.rs \
       --replace "libayatana-appindicator3.so.1" "${libayatana-appindicator}/lib/libayatana-appindicator3.so.1"
   '';
 
-  pnpm-deps = stdenvNoCC.mkDerivation {
-    pname = "${pname}-pnpm-deps";
-    inherit src version;
-
-    nativeBuildInputs = [
-      jq
-      moreutils
-      nodePackages.pnpm
-      cacert
-    ];
-
-    installPhase = ''
-      export HOME=$(mktemp -d)
-      pnpm config set store-dir $out
-      # use --ignore-script and --no-optional to avoid downloading binaries
-      # use --frozen-lockfile to avoid checking git deps
-      pnpm install --frozen-lockfile --no-optional --ignore-script
-
-      # Remove timestamp and sort the json files
-      rm -rf $out/v3/tmp
-      for f in $(find $out -name "*.json"); do
-        sed -i -E -e 's/"checkedAt":[0-9]+,//g' $f
-        jq --sort-keys . $f | sponge $f
-      done
-    '';
-
-    dontFixup = true;
-    outputHashMode = "recursive";
-    outputHash = "sha256-LuY5vh642DgSa91eUcA/AT+ovDcP9tZFE2dKyicCOeQ=";
+  pnpmDeps = pnpm.fetchDeps {
+    inherit (finalAttrs) pname version src;
+    hash = "sha256-nRRUX6CH3s1cEoI80gtRmu0ovXpIwS+h1rFJo8kw60E=";
   };
 
+  pnpmRoot = "..";
+
   cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
     outputHashes = {
@@ -84,8 +57,9 @@ stdenv.mkDerivation rec {
     cargo
     rustc
     cargo-tauri
+    nodejs
+    pnpm.configHook
     wrapGAppsHook3
-    nodePackages.pnpm
     pkg-config
   ];
 
@@ -111,13 +85,13 @@ stdenv.mkDerivation rec {
     });
   })}";
 
-  preBuild = ''
-    export HOME=$(mktemp -d)
-    pnpm config set store-dir ${pnpm-deps}
+  preConfigure = ''
+    # pnpm.configHook has to write to .., as our sourceRoot is set to src-tauri
+    # TODO: move frontend into its own drv
     chmod +w ..
-    pnpm install --offline --frozen-lockfile --no-optional --ignore-script
-    chmod -R +w ../node_modules
-    pnpm rebuild
+  '';
+
+  preBuild = ''
     # Use cargo-tauri from nixpkgs instead of pnpm tauri from npm
     cargo tauri build -b deb
   '';
@@ -127,12 +101,11 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A cross-platform translation software";
+    description = "Cross-platform translation software";
     mainProgram = "pot";
     homepage = "https://pot.pylogmon.com";
     platforms = platforms.linux;
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ linsui ];
   };
-}
-
+})
diff --git a/pkgs/by-name/po/poutine/package.nix b/pkgs/by-name/po/poutine/package.nix
new file mode 100644
index 0000000000000..617454ae468ee
--- /dev/null
+++ b/pkgs/by-name/po/poutine/package.nix
@@ -0,0 +1,33 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+}:
+
+buildGoModule rec {
+  pname = "poutine";
+  version = "0.11.0";
+
+  src = fetchFromGitHub {
+    owner = "boostsecurityio";
+    repo = "poutine";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-T81Qi79VaZzfKL4niTZQW+gwwiBcyInALrvyUg1V4Ck=";
+  };
+
+  vendorHash = "sha256-/chq40j+puAI3KdI15vbZwrnzCKrU7g+Z/t9aOXQ1Sg=";
+
+  ldflags = [
+    "-s"
+    "-w"
+  ];
+
+  meta = with lib; {
+    description = "Security scanner that detects misconfigurations and vulnerabilities in build pipelines of repositories";
+    homepage = "https://github.com/boostsecurityio/poutine";
+    changelog = "https://github.com/boostsecurityio/poutine/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "poutine";
+  };
+}
diff --git a/pkgs/by-name/po/powerjoular/package.nix b/pkgs/by-name/po/powerjoular/package.nix
new file mode 100644
index 0000000000000..62313198f92b1
--- /dev/null
+++ b/pkgs/by-name/po/powerjoular/package.nix
@@ -0,0 +1,45 @@
+{
+  stdenv,
+  lib,
+  fetchFromGitHub,
+  gnat,
+  gprbuild,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "powerjoular";
+  version = "0.7.3";
+
+  src = fetchFromGitHub {
+    owner = "joular";
+    repo = pname;
+    rev = version;
+    hash = "sha256-UjoGY1C58xhINmji7R63wqkWK9yCeXa0wwosnIcfYdA=";
+  };
+
+  nativeBuildInputs = [
+    gnat
+    gprbuild
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+    gprbuild
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    cp obj/powerjoular $out/bin
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "CLI software to monitor the power consumption of software and hardware components";
+    homepage = "https://github.com/joular/powerjoular";
+    maintainers = [ maintainers.julienmalka ];
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/po/powerpipe/package.nix b/pkgs/by-name/po/powerpipe/package.nix
index 007ded3522675..353d2a5ba4932 100644
--- a/pkgs/by-name/po/powerpipe/package.nix
+++ b/pkgs/by-name/po/powerpipe/package.nix
@@ -11,16 +11,16 @@
 
 buildGoModule rec {
   pname = "powerpipe";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "turbot";
     repo = "powerpipe";
     rev = "refs/tags/v${version}";
-    hash = "sha256-lG2MYLb/8bv8SOLPZvZNtf5WM1qOJWEBTpLU2MzPbLs=";
+    hash = "sha256-KJ024dIU0GmeHCFa/pbyFIA+LitaudHC+NBGg8yNWxM=";
   };
 
-  vendorHash = "sha256-K8SfPWn4IGQNPdax0Qe4KD+XttvDe2xj361zz55u6tA=";
+  vendorHash = "sha256-XALFXUeWrS4nt+ONToCfYXvLWuk7ZhLWvJidnATcWtM=";
   proxyVendor = true;
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/po/powersploit/package.nix b/pkgs/by-name/po/powersploit/package.nix
index a3a86cb75c008..5a63dcf9f003f 100644
--- a/pkgs/by-name/po/powersploit/package.nix
+++ b/pkgs/by-name/po/powersploit/package.nix
@@ -24,7 +24,7 @@ stdenvNoCC.mkDerivation {
 
   meta = {
     changelog = "https://github.com/PowerShellMafia/PowerSploit/releases/";
-    description = "A PowerShell Post-Exploitation Framework";
+    description = "PowerShell Post-Exploitation Framework";
     license = with lib.licenses; [ bsd3 ];
     maintainers = with lib.maintainers; [ shard7 ];
     platforms = lib.platforms.all;
diff --git a/pkgs/by-name/pp/ppsspp/package.nix b/pkgs/by-name/pp/ppsspp/package.nix
index 0dd5e3492a0f0..2fbcdef3f7441 100644
--- a/pkgs/by-name/pp/ppsspp/package.nix
+++ b/pkgs/by-name/pp/ppsspp/package.nix
@@ -139,7 +139,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://www.ppsspp.org/";
-    description = "A HLE Playstation Portable emulator, written in C++ ("
+    description = "HLE Playstation Portable emulator, written in C++ ("
                   + (if enableQt then "Qt" else "SDL + headless") + ")";
     longDescription = ''
       PPSSPP is a PSP emulator, which means that it can run games and other
diff --git a/pkgs/by-name/pr/pragtical/package.nix b/pkgs/by-name/pr/pragtical/package.nix
index cfa6269b89f44..513227e5637c2 100644
--- a/pkgs/by-name/pr/pragtical/package.nix
+++ b/pkgs/by-name/pr/pragtical/package.nix
@@ -73,7 +73,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     changelog = "https://github.com/pragtical/pragtical/blob/${finalAttrs.src.rev}/changelog.md";
-    description = "A practical and pragmatic code editor";
+    description = "Practical and pragmatic code editor";
     homepage = "https://pragtical.dev";
     license = lib.licenses.mit;
     mainProgram = "pragtical";
diff --git a/pkgs/by-name/pr/presenterm/package.nix b/pkgs/by-name/pr/presenterm/package.nix
index e14510559cbec..5e7e767fef595 100644
--- a/pkgs/by-name/pr/presenterm/package.nix
+++ b/pkgs/by-name/pr/presenterm/package.nix
@@ -37,7 +37,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A terminal based slideshow tool";
+    description = "Terminal based slideshow tool";
     changelog = "https://github.com/mfontanini/presenterm/releases/tag/v${version}";
     homepage = "https://github.com/mfontanini/presenterm";
     license = licenses.bsd2;
diff --git a/pkgs/by-name/pr/pretalx/package.nix b/pkgs/by-name/pr/pretalx/package.nix
index 4674812339ae3..784976d06eaf8 100644
--- a/pkgs/by-name/pr/pretalx/package.nix
+++ b/pkgs/by-name/pr/pretalx/package.nix
@@ -3,6 +3,7 @@
 , gettext
 , python3
 , fetchFromGitHub
+, fetchpatch2
 , plugins ? [ ]
 , nixosTests
 }:
@@ -70,6 +71,15 @@ python.pkgs.buildPythonApplication rec {
     "static"
   ];
 
+  patches = [
+    (fetchpatch2 {
+      # Backport support for Djangorestframework 3.15.x
+      name = "pretalx-drf-3.15.patch";
+      url = "https://github.com/pretalx/pretalx/commit/43a0416c6968d64ea57720abdb82f482940b11f8.patch";
+      hash = "sha256-Iw1xVF7j7c712kwIk1SMbQSF0ixMUZr1BJib3KAb2HY=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace src/pretalx/common/management/commands/rebuild.py \
       --replace 'subprocess.check_call(["npm", "run", "build"], cwd=frontend_dir, env=env)' ""
@@ -92,10 +102,12 @@ python.pkgs.buildPythonApplication rec {
     "django-csp"
     "django-filter"
     "django-hierarkey"
+    "djangorestframework"
     "markdown"
     "pillow"
     "python-dateutil"
     "reportlab"
+    "requests"
     "rules"
   ];
 
diff --git a/pkgs/by-name/pr/pretalx/plugins/public-voting.nix b/pkgs/by-name/pr/pretalx/plugins/public-voting.nix
index 3ce595b69fe58..49439ef92c51b 100644
--- a/pkgs/by-name/pr/pretalx/plugins/public-voting.nix
+++ b/pkgs/by-name/pr/pretalx/plugins/public-voting.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pretalx_public_voting" ];
 
   meta = {
-    description = "A public voting plugin for pretalx";
+    description = "Public voting plugin for pretalx";
     homepage = "https://github.com/pretalx/pretalx-public-voting";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ wegank ];
diff --git a/pkgs/by-name/pr/pretix/package.nix b/pkgs/by-name/pr/pretix/package.nix
index a45fdbdf2ff31..8234f49fcf134 100644
--- a/pkgs/by-name/pr/pretix/package.nix
+++ b/pkgs/by-name/pr/pretix/package.nix
@@ -29,13 +29,13 @@ let
   };
 
   pname = "pretix";
-  version = "2024.4.0";
+  version = "2024.5.0";
 
   src = fetchFromGitHub {
     owner = "pretix";
     repo = "pretix";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+F5EOMMkO1ngGeFscDipwbldsY0AhOUKbjqgNpuph4g=";
+    hash = "sha256-dLzCugbRQSGuOwe99a3WLMffisyvYWNRdSdcdW9knjY=";
   };
 
   npmDeps = buildNpmPackage {
@@ -43,7 +43,7 @@ let
     inherit version src;
 
     sourceRoot = "${src.name}/src/pretix/static/npm_dir";
-    npmDepsHash = "sha256-0Q/BCRHlnyQJlCF3PgIP9q3Qyr/ff+GP0lPIwPsIMSU=";
+    npmDepsHash = "sha256-SEgAC3dmnxG1xM9QZQ/e+6NFOwXU3tXlbfZCzrAMFO0=";
 
     dontBuild = true;
 
@@ -81,15 +81,15 @@ python.pkgs.buildPythonApplication rec {
       --replace-fail psycopg2-binary psycopg2 \
       --replace-fail vat_moss_forked==2020.3.20.0.11.0 vat-moss \
       --replace-fail "bleach==5.0.*" bleach \
-      --replace-fail "django-hierarkey==1.1.*" django-hierarkey \
+      --replace-fail "django-oauth-toolkit==2.3.*" django-oauth-toolkit \
       --replace-fail "djangorestframework==3.15.*" djangorestframework \
       --replace-fail "dnspython==2.6.*" dnspython \
       --replace-fail "importlib_metadata==7.*" importlib_metadata \
       --replace-fail "markdown==3.6" markdown \
-      --replace-fail "protobuf==5.26.*" protobuf \
+      --replace-fail "protobuf==5.27.*" protobuf \
       --replace-fail "pycryptodome==3.20.*" pycryptodome \
-      --replace-fail "pypdf==3.9.*" pypdf \
       --replace-fail "python-dateutil==2.9.*" python-dateutil \
+      --replace-fail "requests==2.32.*" "requests" \
       --replace-fail "stripe==7.9.*" stripe
   '';
 
@@ -179,7 +179,9 @@ python.pkgs.buildPythonApplication rec {
     vobject
     webauthn
     zeep
-  ] ++ plugins;
+  ]
+  ++ django.optional-dependencies.argon2
+  ++ plugins;
 
   optional-dependencies = with python.pkgs; {
     memcached = [
diff --git a/pkgs/by-name/pr/pretix/plugins/pages.nix b/pkgs/by-name/pr/pretix/plugins/pages.nix
index 91f8ef032f773..0edc1f9c34894 100644
--- a/pkgs/by-name/pr/pretix/plugins/pages.nix
+++ b/pkgs/by-name/pr/pretix/plugins/pages.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "pretix-pages";
-  version = "1.6.0";
+  version = "1.6.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pretix";
     repo = "pretix-pages";
     rev = "v${version}";
-    hash = "sha256-cO5tAiOifLpqFEQwYgrGoByUecpzvue8YmChpPwm+y0=";
+    hash = "sha256-u2POt3v0OpjbauDCX8Uclvqd1+jujvVrzUIYrvDv/qI=";
   };
 
   build-system = [
diff --git a/pkgs/by-name/pr/pretix/plugins/passbook.nix b/pkgs/by-name/pr/pretix/plugins/passbook.nix
index b7d380aa681d9..ccb14543b7ab0 100644
--- a/pkgs/by-name/pr/pretix/plugins/passbook.nix
+++ b/pkgs/by-name/pr/pretix/plugins/passbook.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "pretix-passbook";
-  version = "1.13.1";
+  version = "1.13.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pretix";
     repo = "pretix-passbook";
     rev = "v${version}";
-    hash = "sha256-bp64wCEMon05JhOaDr/cVbqUxc+7ndcsSuSesxJt8GE=";
+    hash = "sha256-rdX93AFoLLsA44a9sSgcQrCJiOlhe3j5WTBO+MHZ/X8=";
   };
 
   patches = [
diff --git a/pkgs/by-name/pr/probe-rs-tools/package.nix b/pkgs/by-name/pr/probe-rs-tools/package.nix
new file mode 100644
index 0000000000000..64b014517c63e
--- /dev/null
+++ b/pkgs/by-name/pr/probe-rs-tools/package.nix
@@ -0,0 +1,69 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, cmake
+, gitMinimal
+, pkg-config
+, libusb1
+, openssl
+, DarwinTools
+, AppKit
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "probe-rs-tools";
+  version = "0.24.0";
+
+  src = fetchFromGitHub {
+    owner = "probe-rs";
+    repo = "probe-rs";
+    rev = "v${version}";
+    hash = "sha256-H1RT+H7aQjZmesW+/0mjPH2M01J1eBZ47Rern5lCqWk=";
+  };
+
+  cargoHash = "sha256-aTBtWPcOYT5koIu/uw5S2oKTnsvXcqB39SFbe8U1NJY=";
+
+  buildAndTestSubdir = pname;
+
+  nativeBuildInputs = [
+    # required by libz-sys, no option for dynamic linking
+    # https://github.com/rust-lang/libz-sys/issues/158
+    cmake
+    # build.rs fails without git
+    # https://github.com/probe-rs/probe-rs/pull/2492
+    gitMinimal
+    pkg-config
+  ] ++ lib.optionals stdenv.isDarwin [ DarwinTools ];
+
+  buildInputs = [ libusb1 openssl ] ++ lib.optionals stdenv.isDarwin [ AppKit ];
+
+  checkFlags = [
+    # require a physical probe
+    "--skip=cmd::dap_server::server::debugger::test::attach_request"
+    "--skip=cmd::dap_server::server::debugger::test::attach_with_flashing"
+    "--skip=cmd::dap_server::server::debugger::test::launch_and_threads"
+    "--skip=cmd::dap_server::server::debugger::test::launch_with_config_error"
+    "--skip=cmd::dap_server::server::debugger::test::test_initalize_request"
+    "--skip=cmd::dap_server::server::debugger::test::test_launch_and_terminate"
+    "--skip=cmd::dap_server::server::debugger::test::test_launch_no_probes"
+    "--skip=cmd::dap_server::server::debugger::test::wrong_request_after_init"
+    # compiles an image for an embedded target which we do not have a toolchain for
+    "--skip=util::cargo::test::get_binary_artifact_with_cargo_config"
+    "--skip=util::cargo::test::get_binary_artifact_with_cargo_config_toml"
+    # requires other crates in the workspace
+    "--skip=util::cargo::test::get_binary_artifact"
+    "--skip=util::cargo::test::library_with_example_specified"
+    "--skip=util::cargo::test::multiple_binaries_in_crate_select_binary"
+    "--skip=util::cargo::test::workspace_binary_package"
+    "--skip=util::cargo::test::workspace_root"
+  ];
+
+  meta = with lib; {
+    description = "CLI tool for on-chip debugging and flashing of ARM chips";
+    homepage = "https://probe.rs/";
+    changelog = "https://github.com/probe-rs/probe-rs/blob/v${version}/CHANGELOG.md";
+    license = with licenses; [ asl20 /* or */ mit ];
+    maintainers = with maintainers; [ xgroleau newam ];
+  };
+}
diff --git a/pkgs/by-name/pr/process-cpp/package.nix b/pkgs/by-name/pr/process-cpp/package.nix
new file mode 100644
index 0000000000000..2a04e385c3254
--- /dev/null
+++ b/pkgs/by-name/pr/process-cpp/package.nix
@@ -0,0 +1,78 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, testers
+, unstableGitUpdater
+, cmake
+, coreutils
+, boost
+, gtest
+, lomiri
+, properties-cpp
+, pkg-config
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "process-cpp";
+  version = "3.0.1-unstable-2024-03-14";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.com";
+    owner = "ubports";
+    repo = "development/core/lib-cpp/process-cpp";
+    rev = "7b0a829abcbcdd25d949e5f9e2c26bb985a58b31";
+    hash = "sha256-Az+lSJ7uVR4pAWvOeah5vFtIPb12eKp0nAFF1qsHZXA=";
+  };
+
+  outputs = [
+    "out"
+    "dev"
+  ];
+
+  postPatch = ''
+    substituteInPlace data/process-cpp.pc.in \
+      --replace-fail 'libdir=''${exec_prefix}' 'libdir=''${prefix}' \
+      --replace-fail 'includedir=''${exec_prefix}' 'includedir=''${prefix}'
+
+    substituteInPlace tests/posix_process_test.cpp \
+      --replace-fail '/usr/bin/sleep' '${lib.getExe' coreutils "sleep"}' \
+      --replace-fail '/usr/bin/env' '${lib.getExe' coreutils "env"}'
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    boost
+    lomiri.cmake-extras
+    properties-cpp
+  ];
+
+  checkInputs = [
+    gtest
+  ];
+
+  cmakeFlags = [
+    (lib.cmakeBool "BUILD_TESTING" finalAttrs.finalPackage.doCheck)
+  ];
+
+  doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
+
+  passthru = {
+    tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+    updateScript = unstableGitUpdater { };
+  };
+
+  meta = with lib; {
+    description = "Simple convenience library for handling processes in C++11";
+    homepage = "https://gitlab.com/ubports/development/core/lib-cpp/process-cpp";
+    license = with licenses; [ gpl3Only lgpl3Only ];
+    maintainers = with maintainers; [ onny OPNA2608 ];
+    platforms = platforms.linux;
+    pkgConfigModules = [ "process-cpp" ];
+  };
+})
diff --git a/pkgs/by-name/pr/prometheus-jmx-javaagent/package.nix b/pkgs/by-name/pr/prometheus-jmx-javaagent/package.nix
new file mode 100644
index 0000000000000..179acfe520ace
--- /dev/null
+++ b/pkgs/by-name/pr/prometheus-jmx-javaagent/package.nix
@@ -0,0 +1,36 @@
+{
+  lib,
+  stdenv,
+  fetchurl,
+}:
+stdenv.mkDerivation (
+  finalAttrs:
+  let
+    jarName = "jmx_prometheus_javaagent-${finalAttrs.version}.jar";
+  in
+  {
+    pname = "jmx-prometheus-javaagent";
+    version = "0.20.0";
+    src = fetchurl {
+      url = "mirror://maven/io/prometheus/jmx/jmx_prometheus_javaagent/${finalAttrs.version}/${jarName}";
+      sha256 = "sha256-i2ftQEhdR1ZIw20R0hRktIRAb4X6+RKzNj9xpqeGEyA=";
+    };
+
+    dontUnpack = true;
+
+    installPhase = ''
+      env
+      mkdir -p $out/lib
+      cp $src $out/lib/${jarName}
+    '';
+
+    meta = {
+      homepage = "https://github.com/prometheus/jmx_exporter";
+      description = "A process for exposing JMX Beans via HTTP for Prometheus consumption";
+      sourceProvenance = [ lib.sourceTypes.binaryBytecode ];
+      license = lib.licenses.asl20;
+      maintainers = [ lib.maintainers.srhb ];
+      platforms = lib.platforms.unix;
+    };
+  }
+)
diff --git a/pkgs/by-name/pr/prometheus-squid-exporter/package.nix b/pkgs/by-name/pr/prometheus-squid-exporter/package.nix
new file mode 100644
index 0000000000000..1c9098997010c
--- /dev/null
+++ b/pkgs/by-name/pr/prometheus-squid-exporter/package.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub, }:
+
+buildGoModule rec {
+  pname = "squid-exporter";
+  version = "1.11.0";
+
+  src = fetchFromGitHub {
+    owner = "boynux";
+    repo = "squid-exporter";
+    rev = "v${version}";
+    sha256 = "sha256-43f6952IqUHoB5CN0p5R5J/sMKbTe2msF9FGqykwMBo=";
+  };
+
+  vendorHash = null;
+
+  meta = {
+    description = "Squid Prometheus exporter";
+    homepage = "https://github.com/boynux/squid-exporter";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ srhb ];
+  };
+}
diff --git a/pkgs/by-name/pr/promexplorer/package.nix b/pkgs/by-name/pr/promexplorer/package.nix
index d0443ecf1aa63..ce4b22bfb3404 100644
--- a/pkgs/by-name/pr/promexplorer/package.nix
+++ b/pkgs/by-name/pr/promexplorer/package.nix
@@ -12,7 +12,7 @@ buildNimPackage (finalAttrs: {
   lockFile = ./lock.json;
 
   meta = with lib; {
-    description = "A simple tool to explore prometheus exporter metrics";
+    description = "Simple tool to explore prometheus exporter metrics";
     homepage = "https://github.com/marcusramberg/promexplorer";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/by-name/pr/promptfoo/package.nix b/pkgs/by-name/pr/promptfoo/package.nix
index 34a76e5b45840..50fc9fa251234 100644
--- a/pkgs/by-name/pr/promptfoo/package.nix
+++ b/pkgs/by-name/pr/promptfoo/package.nix
@@ -19,7 +19,7 @@ buildNpmPackage rec {
   dontNpmBuild = true;
 
   meta = with lib; {
-    description = "Test your prompts, models, RAGs. Evaluate and compare LLM outputs, catch regressions, and improve prompt quality.";
+    description = "Test your prompts, models, RAGs. Evaluate and compare LLM outputs, catch regressions, and improve prompt quality";
     mainProgram = "promptfoo";
     homepage = "https://www.promptfoo.dev/";
     changelog = "https://github.com/promptfoo/promptfoo/releases/tag/${version}";
diff --git a/pkgs/by-name/pr/protege/enforce-plugin-versions.patch b/pkgs/by-name/pr/protege/enforce-plugin-versions.patch
new file mode 100644
index 0000000000000..1df4594f2c99f
--- /dev/null
+++ b/pkgs/by-name/pr/protege/enforce-plugin-versions.patch
@@ -0,0 +1,43 @@
+diff --git a/pom.xml b/pom.xml
+index 839bed04..4cb5f392 100644
+--- a/pom.xml
++++ b/pom.xml
+@@ -358,6 +358,30 @@
+ 						<release>11</release>
+ 					</configuration>
+ 				</plugin>
++
++                                <plugin>
++					<groupId>org.apache.maven.plugins</groupId>
++					<artifactId>maven-install-plugin</artifactId>
++					<version>3.1.1</version>
++                                </plugin>
++
++                                <plugin>
++					<groupId>org.apache.maven.plugins</groupId>
++					<artifactId>maven-site-plugin</artifactId>
++					<version>3.12.1</version>
++                                </plugin>
++
++                                <plugin>
++					<groupId>org.apache.maven.plugins</groupId>
++					<artifactId>maven-deploy-plugin</artifactId>
++					<version>3.1.1</version>
++                                </plugin>
++
++                                <plugin>
++					<groupId>org.apache.maven.plugins</groupId>
++					<artifactId>maven-jar-plugin</artifactId>
++					<version>3.3.0</version>
++                                </plugin>
+ 							
+ 				<plugin>
+ 					<groupId>org.apache.maven.plugins</groupId>
+@@ -476,6 +494,7 @@
+ 								<requireMavenVersion>
+ 									<version>3.6.3</version>
+ 								</requireMavenVersion>
++                                                                <requirePluginVersions/>
+ 							</rules>
+ 						</configuration>
+ 					</execution>
diff --git a/pkgs/by-name/pr/protege/package.nix b/pkgs/by-name/pr/protege/package.nix
new file mode 100644
index 0000000000000..f6d22a08e2f57
--- /dev/null
+++ b/pkgs/by-name/pr/protege/package.nix
@@ -0,0 +1,93 @@
+{ lib
+, fetchFromGitHub
+, copyDesktopItems
+, iconConvTools
+, makeDesktopItem
+, makeWrapper
+, jdk11
+, maven
+}:
+
+let
+  mvn = maven.override { jdk = jdk11; };
+in
+mvn.buildMavenPackage rec {
+  pname = "protege";
+  version = "5.6.4";
+
+  src = fetchFromGitHub {
+    owner = "protegeproject";
+    repo = "protege";
+    rev = version;
+    hash = "sha256-Q3MHa7nCeF31n7JPltcemFBc/sJwGA9Ev0ymjQhY/U0=";
+  };
+
+  mvnHash = "sha256-kemP2gDv1CYuaoK0fwzBxdLTusarPasf2jCDQj/HPYE=";
+
+  patches = [
+    # Pin built-in Maven plugins to avoid checksum variations on Maven updates
+    ./enforce-plugin-versions.patch
+    # Avoid building platform-dependent builds which embed their own JREs
+    ./platform-independent-only.patch
+  ];
+
+  nativeBuildInputs = [
+    copyDesktopItems
+    iconConvTools
+    jdk11
+    makeWrapper
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin $out/share/protege
+
+    # Copy the application directory whole into the output, as it is used by the
+    # launcher script as a reference point to look for default configuration
+    mv protege-desktop/target/protege-${version}-platform-independent/Protege-${version} $out/Protege
+
+    # Place a wrapper for the launcher script into a default /bin location
+    makeWrapper $out/Protege/run.sh $out/bin/protege \
+      --set JAVA_HOME ${jdk11.home}
+
+    # Link all jars from within the standard /share/protege directory
+    ln -s -t $out/share/protege $out/Protege/bundles/*
+
+    # Generate and copy icons to where they can be found
+    icoFileToHiColorTheme $out/Protege/app/Protege.ico protege $out
+
+    runHook postInstall
+  '';
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = pname;
+      desktopName = "Protege Desktop";
+      genericName = "Ontology Editor";
+      icon = "protege";
+      comment = meta.description;
+      categories = [ "Development" ];
+      exec = "protege";
+    })
+  ];
+
+  meta = {
+    homepage = "https://protege.stanford.edu/";
+    downloadPage = "https://protege.stanford.edu/software.php#desktop-protege";
+    description = "A free and open-source OWL 2 ontology editor";
+    longDescription = ''
+      Protégé Desktop is a feature rich ontology editing environment with full
+      support for the OWL 2 Web Ontology Language, and direct in-memory
+      connections to description logic reasoners.
+    '';
+    maintainers = with lib.maintainers; [ nessdoor ];
+    license = with lib.licenses; [ bsd2 ];
+    # TODO Protege is able to run on Darwin as well, but I (@nessdoor) had no
+    #      way of testing it nor any experience in packaging Darwin apps, so I
+    #      will leave the task to someone who has the right tools and knowledge.
+    platforms = lib.platforms.unix;
+    mainProgram = "protege";
+    sourceProvenance = with lib.sourceTypes; [ fromSource binaryBytecode ];
+  };
+}
diff --git a/pkgs/by-name/pr/protege/platform-independent-only.patch b/pkgs/by-name/pr/protege/platform-independent-only.patch
new file mode 100644
index 0000000000000..d0f489372f2e4
--- /dev/null
+++ b/pkgs/by-name/pr/protege/platform-independent-only.patch
@@ -0,0 +1,24 @@
+diff --git a/protege-desktop/pom.xml b/protege-desktop/pom.xml
+index 2f599708..60059308 100644
+--- a/protege-desktop/pom.xml
++++ b/protege-desktop/pom.xml
+@@ -110,9 +110,6 @@
+ 							</archiverConfig>
+ 							<descriptors>
+ 								<descriptor>src/main/assembly/protege-platform-independent.xml</descriptor>
+-								<descriptor>src/main/assembly/protege-os-x.xml</descriptor>
+-								<descriptor>src/main/assembly/protege-win.xml</descriptor>
+-								<descriptor>src/main/assembly/protege-linux.xml</descriptor>
+ 							</descriptors>
+ 						</configuration>
+ 					</execution>
+@@ -165,9 +162,6 @@
+ 									</archiverConfig>
+ 									<descriptors>
+ 										<descriptor>src/main/assembly/protege-platform-independent.xml</descriptor>
+-										<descriptor>src/main/assembly/protege-os-x.xml</descriptor>
+-										<descriptor>src/main/assembly/protege-win.xml</descriptor>
+-										<descriptor>src/main/assembly/protege-linux.xml</descriptor>
+ 									</descriptors>
+ 								</configuration>
+ 							</execution>
diff --git a/pkgs/by-name/pr/proto/package.nix b/pkgs/by-name/pr/proto/package.nix
index 606db2601f0cc..4aa6059ad9556 100644
--- a/pkgs/by-name/pr/proto/package.nix
+++ b/pkgs/by-name/pr/proto/package.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "proto";
-  version = "0.35.2";
+  version = "0.36.2";
 
   src = fetchFromGitHub {
     owner = "moonrepo";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-2m6ktcSZWOuu4S3FI3kiPTRhS2+rRgI5M7BZ//9bb8M=";
+    hash = "sha256-k1aVz3eiZHE92cPKtxEZhCN8I3hcNEr2HN3Z70zPT+I=";
   };
 
-  cargoHash = "sha256-JbuHuj0VG+3nRNEoVHoOdA66RWbWrIzDkwa7PsO3TJ0=";
+  cargoHash = "sha256-HFYISBB+5lyNtWcYNBj3rTX0C52YNC6bBsVT+OpWa+c=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.SystemConfiguration
@@ -38,7 +38,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = {
-    description = "A pluggable multi-language version manager";
+    description = "Pluggable multi-language version manager";
     longDescription = ''
       proto is a pluggable next-generation version manager for multiple programming languages. A unified toolchain.
     '';
diff --git a/pkgs/by-name/pr/proton-ge-bin/package.nix b/pkgs/by-name/pr/proton-ge-bin/package.nix
index a281607d5024b..186943dd9dca1 100644
--- a/pkgs/by-name/pr/proton-ge-bin/package.nix
+++ b/pkgs/by-name/pr/proton-ge-bin/package.nix
@@ -5,11 +5,11 @@
 }:
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "proton-ge-bin";
-  version = "GE-Proton9-5";
+  version = "GE-Proton9-7";
 
   src = fetchzip {
     url = "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/${finalAttrs.version}/${finalAttrs.version}.tar.gz";
-    hash = "sha256-bUlV533M5BL5UEOB0ED8VIMmquvVAvIm+E/ZJNjftRU=";
+    hash = "sha256-/FXdyPuCe6rD5HoMOHPVlwRXu3DMJ3lEOnRloYZMA8s=";
   };
 
   outputs = [ "out" "steamcompattool" ];
diff --git a/pkgs/by-name/pr/proton-pass/package.nix b/pkgs/by-name/pr/proton-pass/package.nix
new file mode 100644
index 0000000000000..960eb6c64a934
--- /dev/null
+++ b/pkgs/by-name/pr/proton-pass/package.nix
@@ -0,0 +1,52 @@
+{
+  lib,
+  stdenvNoCC,
+  fetchurl,
+  dpkg,
+  makeWrapper,
+  electron,
+}:
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "proton-pass";
+  version = "1.17.5";
+
+  src = fetchurl {
+    url = "https://proton.me/download/PassDesktop/linux/x64/ProtonPass_${finalAttrs.version}.deb";
+    hash = "sha256-2dnR/4LpLiQlJebv74/F7L/a5lYPh+AMPqQVIBHvxcg=";
+  };
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  nativeBuildInputs = [
+    dpkg
+    makeWrapper
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out
+    cp -r usr/share/ $out/
+    cp -r usr/lib/proton-pass/resources/app.asar $out/share/
+    runHook postInstall
+  '';
+
+  preFixup = ''
+    makeWrapper ${lib.getExe electron} $out/bin/proton-pass \
+      --add-flags $out/share/app.asar \
+      --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
+      --set-default ELECTRON_FORCE_IS_PACKAGED 1 \
+      --set-default ELECTRON_IS_DEV 0 \
+      --inherit-argv0
+  '';
+
+  meta = {
+    description = "Desktop application for Proton Pass";
+    homepage = "https://proton.me/pass";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ massimogengarelli sebtm ];
+    platforms = [ "x86_64-linux" ];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+    mainProgram = "proton-pass";
+  };
+})
diff --git a/pkgs/by-name/pr/protonmail-desktop/package.nix b/pkgs/by-name/pr/protonmail-desktop/package.nix
index fce6e7bef53eb..8d65ba26b294b 100644
--- a/pkgs/by-name/pr/protonmail-desktop/package.nix
+++ b/pkgs/by-name/pr/protonmail-desktop/package.nix
@@ -10,11 +10,11 @@ let
   mainProgram = "proton-mail";
 in stdenv.mkDerivation rec {
   pname = "protonmail-desktop";
-  version = "1.0.2";
+  version = "1.0.3";
 
   src = fetchurl {
     url = "https://github.com/ProtonMail/inbox-desktop/releases/download/v${version}/proton-mail_${version}_amd64.deb";
-    hash = "sha256-c+0iFBpcg+t983oOttPokA5sLGsIQFIsC+GbsVY6hmI=";
+    hash = "sha256-opavVpXQmA/VDZ+K/k0NJFwQHUUJhg+bUm/w8Ertopw=";
   };
 
   dontConfigure = true;
diff --git a/pkgs/by-name/pr/protonplus/package.nix b/pkgs/by-name/pr/protonplus/package.nix
index cd715b3a36d0c..ed74777fedecc 100644
--- a/pkgs/by-name/pr/protonplus/package.nix
+++ b/pkgs/by-name/pr/protonplus/package.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     mainProgram = "com.vysp3r.ProtonPlus";
-    description = "A simple Wine and Proton-based compatibility tools manager";
+    description = "Simple Wine and Proton-based compatibility tools manager";
     homepage = "https://github.com/Vysp3r/ProtonPlus";
     changelog = "https://github.com/Vysp3r/ProtonPlus/releases/tag/v${finalAttrs.version}";
     license = licenses.gpl3Only;
diff --git a/pkgs/by-name/pr/prox/package.nix b/pkgs/by-name/pr/prox/package.nix
index 6f432de3ec72d..ef7b588ea51fe 100644
--- a/pkgs/by-name/pr/prox/package.nix
+++ b/pkgs/by-name/pr/prox/package.nix
@@ -24,7 +24,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/fgrosse/prox";
-    description = "A process runner for Procfile-based applications ";
+    description = "Process runner for Procfile-based applications ";
     mainProgram = "prox";
     license = licenses.bsd2;
     maintainers = with maintainers; [ lucperkins ];
diff --git a/pkgs/by-name/pr/prr/package.nix b/pkgs/by-name/pr/prr/package.nix
index f856b20fcae66..46576e1a18222 100644
--- a/pkgs/by-name/pr/prr/package.nix
+++ b/pkgs/by-name/pr/prr/package.nix
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
   nativeBuildInputs = [ pkg-config ];
 
   meta = with lib; {
-    description = "A tool that brings mailing list style code reviews to Github PRs";
+    description = "Tool that brings mailing list style code reviews to Github PRs";
     homepage = "https://github.com/danobi/prr";
     license = licenses.gpl2Only;
     mainProgram = "prr";
diff --git a/pkgs/by-name/ps/ps_mem/package.nix b/pkgs/by-name/ps/ps_mem/package.nix
index c6cdbab67262f..2b8365f040774 100644
--- a/pkgs/by-name/ps/ps_mem/package.nix
+++ b/pkgs/by-name/ps/ps_mem/package.nix
@@ -16,7 +16,7 @@ python3Packages.buildPythonApplication rec {
   };
 
   meta = {
-    description = "A utility to accurately report the in core memory usage for a program";
+    description = "Utility to accurately report the in core memory usage for a program";
     homepage = "https://github.com/pixelb/ps_mem";
     license = lib.licenses.lgpl21;
     maintainers = with lib.maintainers; [ sigmanificient ];
diff --git a/pkgs/by-name/pt/ptunnel/package.nix b/pkgs/by-name/pt/ptunnel/package.nix
index fedc0e3a5fe00..1730a0615d769 100644
--- a/pkgs/by-name/pt/ptunnel/package.nix
+++ b/pkgs/by-name/pt/ptunnel/package.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A tool for reliably tunneling TCP connections over ICMP echo request and reply packets";
+    description = "Tool for reliably tunneling TCP connections over ICMP echo request and reply packets";
     homepage = "https://www.cs.uit.no/~daniels/PingTunnel";
     license = licenses.bsd3;
     mainProgram = "ptunnel";
diff --git a/pkgs/by-name/pt/ptyxis/package.nix b/pkgs/by-name/pt/ptyxis/package.nix
index 3ff45bffb4db7..e5c51f1b75083 100644
--- a/pkgs/by-name/pt/ptyxis/package.nix
+++ b/pkgs/by-name/pt/ptyxis/package.nix
@@ -56,7 +56,7 @@ stdenv.mkDerivation {
   };
 
   meta = {
-    description = "A terminal for GNOME with first-class support for containers";
+    description = "Terminal for GNOME with first-class support for containers";
     homepage = "https://gitlab.gnome.org/chergert/ptyxis";
     license = lib.licenses.gpl3Plus;
     mainProgram = "ptyxis";
diff --git a/pkgs/by-name/pu/pulsar/package.nix b/pkgs/by-name/pu/pulsar/package.nix
index 443ac74c32db2..fb07768629351 100644
--- a/pkgs/by-name/pu/pulsar/package.nix
+++ b/pkgs/by-name/pu/pulsar/package.nix
@@ -220,7 +220,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = ./update.mjs;
 
   meta = {
-    description = "A Community-led Hyper-Hackable Text Editor";
+    description = "Community-led Hyper-Hackable Text Editor";
     longDescription = ''
       A Community-led Hyper-Hackable Text Editor, Forked from Atom, built on Electron.
       Designed to be deeply customizable, but still approachable using the default configuration.
diff --git a/pkgs/by-name/pu/pulumi-esc/package.nix b/pkgs/by-name/pu/pulumi-esc/package.nix
new file mode 100644
index 0000000000000..1249b31e8a1ce
--- /dev/null
+++ b/pkgs/by-name/pu/pulumi-esc/package.nix
@@ -0,0 +1,36 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+}:
+
+buildGoModule rec {
+  pname = "pulumi-esc";
+  version = "0.9.1";
+
+  src = fetchFromGitHub {
+    owner = "pulumi";
+    repo = "esc";
+    rev = "v${version}";
+    hash = "sha256-9K7pP4MOShHPTxTuKaUMY87Z4rDkGHrV9Ds1guUpFqM=";
+  };
+
+  subPackages = "cmd/esc";
+
+  vendorHash = "sha256-uVw8jc7dZOHdJt9uVDJGaJWkD7dz0rQ3W1pJXSrcW5w=";
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X=github.com/pulumi/esc/cmd/esc/cli/version.Version=${src.rev}"
+  ];
+
+  meta = with lib; {
+    description = "Pulumi ESC (Environments, Secrets, and Configuration) for cloud applications and infrastructure";
+    homepage = "https://github.com/pulumi/esc/tree/main";
+    changelog = "https://github.com/pulumi/esc/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ yomaq ];
+    mainProgram = "esc";
+  };
+}
diff --git a/pkgs/by-name/pu/pupdate/package.nix b/pkgs/by-name/pu/pupdate/package.nix
index 52a62f04268d7..a45b77d2e9657 100644
--- a/pkgs/by-name/pu/pupdate/package.nix
+++ b/pkgs/by-name/pu/pupdate/package.nix
@@ -12,13 +12,13 @@
 
 buildDotnetModule rec {
   pname = "pupdate";
-  version = "3.10.2";
+  version = "3.10.3";
 
   src = fetchFromGitHub {
     owner = "mattpannella";
     repo = "${pname}";
     rev = "${version}";
-    hash = "sha256-XPPbxlmwuM9q1NkeI8MX6w+ZbC272o2BPopQgkqU4Ek=";
+    hash = "sha256-xaoOfylDf8KBGjS5RxPH156PRfEBFk+sRZ4QTCMSQbY=";
   };
 
   buildInputs = [
diff --git a/pkgs/by-name/pu/puppet-bolt/package.nix b/pkgs/by-name/pu/puppet-bolt/package.nix
index 7340ed9eb751e..a937752698559 100644
--- a/pkgs/by-name/pu/puppet-bolt/package.nix
+++ b/pkgs/by-name/pu/puppet-bolt/package.nix
@@ -1,5 +1,6 @@
 {
   bundlerApp,
+  defaultGemConfig,
   bundlerUpdateScript,
   lib,
   makeWrapper,
@@ -14,10 +15,12 @@
   exes = [ "bolt" ];
   nativeBuildInputs = [ makeWrapper ];
 
-  gemConfig.bolt = attrs: {
-    # scripts in libexec will be executed by remote host,
-    # so shebangs should remain unchanged
-    dontPatchShebangs = true;
+  gemConfig = defaultGemConfig // {
+    bolt = attrs: {
+      # scripts in libexec will be executed by remote host,
+      # so shebangs should remain unchanged
+      dontPatchShebangs = true;
+    };
   };
 
   postBuild = ''
diff --git a/pkgs/by-name/pu/purescm/package.nix b/pkgs/by-name/pu/purescm/package.nix
index c03f1339d18a2..0eebd7f23e179 100644
--- a/pkgs/by-name/pu/purescm/package.nix
+++ b/pkgs/by-name/pu/purescm/package.nix
@@ -15,11 +15,24 @@ let
   package = buildNpmPackage {
     inherit pname version;
 
-    src = ./.;
+    src = fileset.toSource {
+      root = ./.;
+      fileset = fileset.unions [
+        ./package.json
+        ./package-lock.json
+        ./.gitignore
+      ];
+    };
     dontNpmBuild = true;
 
     npmDeps = fetchNpmDeps {
-      src = ./.;
+      src = fileset.toSource {
+        root = ./.;
+        fileset = fileset.unions [
+          ./package-lock.json
+          ./package.json
+        ];
+      };
       hash = "sha256-ljeFcLvIET77Q0OR6O5Ok1fGnaxaKaoywpcy2aHq/6o=";
     };
 
diff --git a/pkgs/by-name/pu/pushup/package.nix b/pkgs/by-name/pu/pushup/package.nix
index 3d777479da905..65fa4f0b27feb 100644
--- a/pkgs/by-name/pu/pushup/package.nix
+++ b/pkgs/by-name/pu/pushup/package.nix
@@ -26,7 +26,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A web framework for Go";
+    description = "Web framework for Go";
     homepage = "https://pushup.adhoc.dev/";
     license = licenses.mit;
     changelog = "https://github.com/adhocteam/pushup/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/by-name/pw/pwalarmctl/package.nix b/pkgs/by-name/pw/pwalarmctl/package.nix
new file mode 100644
index 0000000000000..ed0522307ebd7
--- /dev/null
+++ b/pkgs/by-name/pw/pwalarmctl/package.nix
@@ -0,0 +1,43 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, alsa-lib
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "pwalarmctl";
+  version = "0.1.0";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ alsa-lib ];
+
+  src = fetchFromGitHub {
+    owner = "amyipdev";
+    repo = "pwalarmd";
+    rev = "v${version}";
+    hash = "sha256-xoC1PtDQjkvoWb9x8A43ITo6xyYOv9hxH2pxiZBBvKI=";
+  };
+
+  cargoHash = "sha256-OvTGpekiy6j7un+jF4t9tauzi4RndIyPwJRHTOtt4GM=";
+
+  preBuild = ''
+    cargo check
+  '';
+
+  buildAndTestSubdir = "pwalarmctl";
+
+  meta = {
+    description = "Controller for pwalarmd";
+    longDescription = ''
+      pwalarmctl is a command-line controller for pwalarmd which allows
+      for live configuration changes and access to the active state
+      of pwalarmd.
+    '';
+    mainProgram = "pwalarmctl";
+    license = lib.licenses.gpl2Only;
+    platforms = lib.platforms.all;
+    badPlatforms = lib.platforms.darwin;
+    maintainers = with lib.maintainers; [ amyipdev ];
+  };
+}
diff --git a/pkgs/by-name/pw/pwalarmd/package.nix b/pkgs/by-name/pw/pwalarmd/package.nix
new file mode 100644
index 0000000000000..39a686f992883
--- /dev/null
+++ b/pkgs/by-name/pw/pwalarmd/package.nix
@@ -0,0 +1,37 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, alsa-lib
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "pwalarmd";
+  version = "0.1.0";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ alsa-lib ];
+
+  src = fetchFromGitHub {
+    owner = "amyipdev";
+    repo = "pwalarmd";
+    rev = "v${version}";
+    hash = "sha256-xoC1PtDQjkvoWb9x8A43ITo6xyYOv9hxH2pxiZBBvKI=";
+  };
+
+  cargoHash = "sha256-cRAFnmgvzWLFAjB7H1rU4FdxMwm0J6d76kdFPoXpPMw=";
+
+  meta = {
+    description = "Background CLI-based alarm system for *nix";
+    longDescription = ''
+      pwalarmd is a command-line (daemon-based) alarm system.
+      It has extensive configuration and personalization, PulseAudio
+      and PipeWire support, and supports live configuration changes.
+    '';
+    mainProgram = "pwalarmd";
+    license = lib.licenses.gpl2Only;
+    platforms = lib.platforms.all;
+    badPlatforms = lib.platforms.darwin;
+    maintainers = with lib.maintainers; [ amyipdev ];
+  };
+}
diff --git a/pkgs/by-name/pw/pwndbg/package.nix b/pkgs/by-name/pw/pwndbg/package.nix
index 473a401ce1c54..bad009b07ab2f 100644
--- a/pkgs/by-name/pw/pwndbg/package.nix
+++ b/pkgs/by-name/pw/pwndbg/package.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , python3
-, fetchFromGitHub
 , makeWrapper
 , gdb
 }:
diff --git a/pkgs/by-name/py/pybibget/package.nix b/pkgs/by-name/py/pybibget/package.nix
new file mode 100644
index 0000000000000..a3f8febc7d07b
--- /dev/null
+++ b/pkgs/by-name/py/pybibget/package.nix
@@ -0,0 +1,42 @@
+{ lib
+, python3
+, fetchPypi
+}:
+
+let
+  pname = "pybibget";
+  version = "0.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1n4as3kdsgrcmxxyjz9klm0v0pb24rsa1b7r43j7wmnfsir8i81k";
+  };
+
+in
+python3.pkgs.buildPythonApplication  {
+  inherit pname version src;
+  pyproject = true;
+
+  propagatedBuildInputs = with python3.pkgs; [
+    lxml
+    httpx
+    appdirs
+    aiolimiter
+    pybtex
+    pylatexenc
+    numpy
+    networkx
+    requests
+  ];
+
+  # Tests for this applicaiton do not run on NixOS, and binaries were
+  # manually tested instead
+  doCheck = false;
+
+  meta = {
+    description = "Command line utility to automatically retrieve BibTeX citations from MathSciNet, arXiv, PubMed and doi.org";
+    homepage = "https://github.com/wirhabenzeit/pybibget";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ vasissualiyp ];
+  };
+}
diff --git a/pkgs/by-name/py/pyprland/package.nix b/pkgs/by-name/py/pyprland/package.nix
index 3af5128c129b5..9162724b7a758 100644
--- a/pkgs/by-name/py/pyprland/package.nix
+++ b/pkgs/by-name/py/pyprland/package.nix
@@ -7,7 +7,7 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "pyprland";
-  version = "2.3.2";
+  version = "2.3.8";
   format = "pyproject";
 
   disabled = python3Packages.pythonOlder "3.10";
@@ -16,7 +16,7 @@ python3Packages.buildPythonApplication rec {
     owner = "hyprland-community";
     repo = "pyprland";
     rev = "refs/tags/${version}";
-    hash = "sha256-3Y+5tOKd4Z7xwTU4OoEQffw70kb29wxKFC9Oh0bCO4k=";
+    hash = "sha256-0YUI2/gJmBoummiHGpq2p2sT25SwCdnsRwfGK2pcm4s=";
   };
 
   nativeBuildInputs = with python3Packages; [ poetry-core ];
@@ -62,7 +62,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = {
     mainProgram = "pypr";
-    description = "An hyperland plugin system";
+    description = "Hyperland plugin system";
     homepage = "https://github.com/hyprland-community/pyprland";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [
diff --git a/pkgs/by-name/py/pyright/package.nix b/pkgs/by-name/py/pyright/package.nix
index 1f91e91abba03..3fc15b45b72f2 100644
--- a/pkgs/by-name/py/pyright/package.nix
+++ b/pkgs/by-name/py/pyright/package.nix
@@ -1,13 +1,13 @@
 { lib, buildNpmPackage, fetchFromGitHub, runCommand, jq }:
 
 let
-  version = "1.1.362";
+  version = "1.1.367";
 
   src = fetchFromGitHub {
     owner = "Microsoft";
     repo = "pyright";
     rev = "${version}";
-    hash = "sha256-sz+Om2bfsJJTe2W8l49pI+K9phCTwoczeG1Q7qlMIig=";
+    hash = "sha256-ILhY6O5B38P5PYdCK1DeuvQzTU5SbhL3F4X0KFne9UM=";
   };
 
   patchedPackageJSON = runCommand "package.json" { } ''
@@ -37,7 +37,7 @@ let
     pname = "pyright-internal";
     inherit version src;
     sourceRoot = "${src.name}/packages/pyright-internal";
-    npmDepsHash = "sha256-xcr9j5/90gfV/r0yI9ifj6Nrr9WrawwvukuVkl387r4=";
+    npmDepsHash = "sha256-MskvUwzlREmTR8qmLlWGxNWVlveIIyHhihigkQ+5seY=";
     dontNpmBuild = true;
     installPhase = ''
       runHook preInstall
@@ -51,7 +51,7 @@ buildNpmPackage rec {
   inherit version src;
 
   sourceRoot = "${src.name}/packages/pyright";
-  npmDepsHash = "sha256-79tXMdOt1XH3KTT46bq35J4AcCVyoB2d4KEkr9EjqVY=";
+  npmDepsHash = "sha256-kpqV81iafKWROtdPxLZqi6YVT0WJf82salTFl46Iu24=";
 
   postPatch = ''
     chmod +w ../../
diff --git a/pkgs/by-name/py/pyspread/package.nix b/pkgs/by-name/py/pyspread/package.nix
index 6af2853a80388..fd1206a9fd050 100644
--- a/pkgs/by-name/py/pyspread/package.nix
+++ b/pkgs/by-name/py/pyspread/package.nix
@@ -64,7 +64,7 @@ python3.pkgs.buildPythonApplication {
 
   meta = {
     homepage = "https://pyspread.gitlab.io/";
-    description = "A Python-oriented spreadsheet application";
+    description = "Python-oriented spreadsheet application";
     longDescription = ''
       pyspread is a non-traditional spreadsheet application that is based on and
       written in the programming language Python. The goal of pyspread is to be
diff --git a/pkgs/by-name/py/pyxel/Cargo.lock b/pkgs/by-name/py/pyxel/Cargo.lock
index 48e718510249d..5b80d12b5670c 100644
--- a/pkgs/by-name/py/pyxel/Cargo.lock
+++ b/pkgs/by-name/py/pyxel/Cargo.lock
@@ -9,16 +9,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
-name = "adler32"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
-
-[[package]]
 name = "aho-corasick"
-version = "1.1.2"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
 dependencies = [
  "memchr",
 ]
@@ -39,23 +33,33 @@ dependencies = [
 ]
 
 [[package]]
+name = "arbitrary"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110"
+dependencies = [
+ "derive_arbitrary",
+]
+
+[[package]]
 name = "autocfg"
-version = "1.1.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
 
 [[package]]
 name = "bindgen"
-version = "0.69.1"
-source = "git+https://github.com/rust-lang/rust-bindgen.git?rev=d77e53ed8398743bf68831d25063719fa0f4f136#d77e53ed8398743bf68831d25063719fa0f4f136"
+version = "0.69.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "cexpr",
  "clang-sys",
+ "itertools",
  "lazy_static",
  "lazycell",
  "log",
- "peeking_take_while",
  "prettyplease",
  "proc-macro2",
  "quote",
@@ -80,21 +84,21 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.2"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
 
 [[package]]
 name = "bumpalo"
-version = "3.15.0"
+version = "3.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d32a994c2b3ca201d9b263612a374263f05e7adde37c4707f693dcd375076d1f"
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
 
 [[package]]
 name = "bytemuck"
-version = "1.14.3"
+version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
+checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5"
 
 [[package]]
 name = "byteorder"
@@ -104,12 +108,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "cc"
-version = "1.0.83"
+version = "1.0.99"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
-dependencies = [
- "libc",
-]
+checksum = "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695"
 
 [[package]]
 name = "cexpr"
@@ -128,23 +129,23 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "chrono"
-version = "0.4.34"
+version = "0.4.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "js-sys",
  "num-traits",
  "wasm-bindgen",
- "windows-targets 0.52.0",
+ "windows-targets",
 ]
 
 [[package]]
 name = "clang-sys"
-version = "1.7.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1"
+checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4"
 dependencies = [
  "glob",
  "libc",
@@ -174,9 +175,9 @@ checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "crc32fast"
-version = "1.4.0"
+version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
+checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
 dependencies = [
  "cfg-if",
 ]
@@ -202,9 +203,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.19"
+version = "0.8.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
 
 [[package]]
 name = "crunchy"
@@ -213,13 +214,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
 
 [[package]]
-name = "deflate"
-version = "0.8.6"
+name = "derive_arbitrary"
+version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73770f8e1fe7d64df17ca66ad28994a0a623ea497fa69486e14984e715c5d174"
+checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611"
 dependencies = [
- "adler32",
- "byteorder",
+ "proc-macro2",
+ "quote",
+ "syn",
 ]
 
 [[package]]
@@ -244,10 +246,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "displaydoc"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
 name = "either"
-version = "1.10.0"
+version = "1.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
+checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b"
 
 [[package]]
 name = "equivalent"
@@ -257,12 +270,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "errno"
-version = "0.3.8"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
 dependencies = [
  "libc",
- "windows-sys 0.52.0",
+ "windows-sys",
 ]
 
 [[package]]
@@ -275,7 +288,7 @@ dependencies = [
  "flume",
  "half",
  "lebe",
- "miniz_oxide 0.7.2",
+ "miniz_oxide",
  "rayon-core",
  "smallvec",
  "zune-inflate",
@@ -298,18 +311,18 @@ checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall",
- "windows-sys 0.52.0",
+ "redox_syscall 0.4.1",
+ "windows-sys",
 ]
 
 [[package]]
 name = "flate2"
-version = "1.0.28"
+version = "1.0.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
+checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae"
 dependencies = [
  "crc32fast",
- "miniz_oxide 0.7.2",
+ "miniz_oxide",
 ]
 
 [[package]]
@@ -323,44 +336,13 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.1.16"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
 dependencies = [
  "cfg-if",
  "libc",
- "wasi 0.9.0+wasi-snapshot-preview1",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.2.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
-]
-
-[[package]]
-name = "gif"
-version = "0.11.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3edd93c6756b4dfaf2709eafcc345ba2636565295c198a9cfbf75fa5e3e00b06"
-dependencies = [
- "color_quant",
- "weezl",
-]
-
-[[package]]
-name = "gif"
-version = "0.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045"
-dependencies = [
- "color_quant",
- "weezl",
+ "wasi",
 ]
 
 [[package]]
@@ -393,9 +375,9 @@ dependencies = [
 
 [[package]]
 name = "half"
-version = "2.3.1"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872"
+checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888"
 dependencies = [
  "cfg-if",
  "crunchy",
@@ -403,9 +385,9 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.14.3"
+version = "0.14.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
 
 [[package]]
 name = "heck"
@@ -419,7 +401,7 @@ version = "0.5.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
 dependencies = [
- "windows-sys 0.52.0",
+ "windows-sys",
 ]
 
 [[package]]
@@ -447,46 +429,27 @@ dependencies = [
 
 [[package]]
 name = "image"
-version = "0.23.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24ffcb7e7244a9bf19d35bf2883b9c080c4ced3c07a9895572178cdb8f13f6a1"
-dependencies = [
- "bytemuck",
- "byteorder",
- "color_quant",
- "gif 0.11.4",
- "jpeg-decoder 0.1.22",
- "num-iter",
- "num-rational",
- "num-traits",
- "png 0.16.8",
- "scoped_threadpool",
- "tiff 0.6.1",
-]
-
-[[package]]
-name = "image"
-version = "0.24.8"
+version = "0.24.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "034bbe799d1909622a74d1193aa50147769440040ff36cb2baa947609b0a4e23"
+checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d"
 dependencies = [
  "bytemuck",
  "byteorder",
  "color_quant",
  "exr",
- "gif 0.12.0",
- "jpeg-decoder 0.3.1",
+ "gif",
+ "jpeg-decoder",
  "num-traits",
- "png 0.17.12",
+ "png",
  "qoi",
- "tiff 0.9.1",
+ "tiff",
 ]
 
 [[package]]
 name = "indexmap"
-version = "2.2.3"
+version = "2.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
 dependencies = [
  "equivalent",
  "hashbrown",
@@ -494,17 +457,17 @@ dependencies = [
 
 [[package]]
 name = "indoc"
-version = "2.0.4"
+version = "2.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
+checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5"
 
 [[package]]
-name = "jpeg-decoder"
-version = "0.1.22"
+name = "itertools"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
 dependencies = [
- "rayon",
+ "either",
 ]
 
 [[package]]
@@ -518,9 +481,9 @@ dependencies = [
 
 [[package]]
 name = "js-sys"
-version = "0.3.68"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -545,42 +508,41 @@ checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
 
 [[package]]
 name = "libc"
-version = "0.2.153"
+version = "0.2.155"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
 
 [[package]]
 name = "libloading"
-version = "0.8.1"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
+checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
 dependencies = [
  "cfg-if",
- "windows-sys 0.48.0",
+ "windows-targets",
 ]
 
 [[package]]
 name = "libredox"
-version = "0.0.1"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "libc",
- "redox_syscall",
 ]
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.13"
+version = "0.4.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
 
 [[package]]
 name = "lock_api"
-version = "0.4.11"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -588,21 +550,21 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.20"
+version = "0.4.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
 
 [[package]]
 name = "memchr"
-version = "2.7.1"
+version = "2.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
 
 [[package]]
 name = "memoffset"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
 dependencies = [
  "autocfg",
 ]
@@ -615,28 +577,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435"
-dependencies = [
- "adler32",
-]
-
-[[package]]
-name = "miniz_oxide"
-version = "0.4.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b"
-dependencies = [
- "adler",
- "autocfg",
-]
-
-[[package]]
-name = "miniz_oxide"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
+checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae"
 dependencies = [
  "adler",
  "simd-adler32",
@@ -644,12 +587,12 @@ dependencies = [
 
 [[package]]
 name = "noise"
-version = "0.7.0"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82051dd6745d5184c6efb7bc8be14892a7f6d4f3ad6dbf754d1c7d7d5fe24b43"
+checksum = "6da45c8333f2e152fc665d78a380be060eb84fad8ca4c9f7ac8ca29216cff0cc"
 dependencies = [
- "image 0.23.14",
- "rand 0.7.3",
+ "num-traits",
+ "rand",
  "rand_xorshift",
 ]
 
@@ -673,43 +616,33 @@ dependencies = [
 ]
 
 [[package]]
-name = "num-integer"
-version = "0.1.46"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
-dependencies = [
- "num-traits",
-]
-
-[[package]]
-name = "num-iter"
-version = "0.1.44"
+name = "num-traits"
+version = "0.2.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
 dependencies = [
  "autocfg",
- "num-integer",
- "num-traits",
 ]
 
 [[package]]
-name = "num-rational"
-version = "0.3.2"
+name = "num_enum"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07"
+checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845"
 dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
+ "num_enum_derive",
 ]
 
 [[package]]
-name = "num-traits"
-version = "0.2.18"
+name = "num_enum_derive"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b"
 dependencies = [
- "autocfg",
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "syn",
 ]
 
 [[package]]
@@ -720,9 +653,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "parking_lot"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
 dependencies = [
  "lock_api",
  "parking_lot_core",
@@ -730,28 +663,22 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.9"
+version = "0.9.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall",
+ "redox_syscall 0.5.1",
  "smallvec",
- "windows-targets 0.48.5",
+ "windows-targets",
 ]
 
 [[package]]
 name = "paste"
-version = "1.0.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
-
-[[package]]
-name = "peeking_take_while"
-version = "0.1.2"
+version = "1.0.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
+checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
 
 [[package]]
 name = "platform-dirs"
@@ -764,28 +691,22 @@ dependencies = [
 
 [[package]]
 name = "png"
-version = "0.16.8"
+version = "0.17.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6"
+checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
 dependencies = [
  "bitflags 1.3.2",
  "crc32fast",
- "deflate",
- "miniz_oxide 0.3.7",
+ "fdeflate",
+ "flate2",
+ "miniz_oxide",
 ]
 
 [[package]]
-name = "png"
-version = "0.17.12"
+name = "portable-atomic"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78c2378060fb13acff3ba0325b83442c1d2c44fbb76df481160ddc1687cce160"
-dependencies = [
- "bitflags 1.3.2",
- "crc32fast",
- "fdeflate",
- "flate2",
- "miniz_oxide 0.7.2",
-]
+checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
 
 [[package]]
 name = "ppv-lite86"
@@ -795,34 +716,44 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[package]]
 name = "prettyplease"
-version = "0.2.16"
+version = "0.2.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5"
+checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e"
 dependencies = [
  "proc-macro2",
  "syn",
 ]
 
 [[package]]
+name = "proc-macro-crate"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
+dependencies = [
+ "toml_edit 0.21.1",
+]
+
+[[package]]
 name = "proc-macro2"
-version = "1.0.78"
+version = "1.0.85"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "pyo3"
-version = "0.20.2"
+version = "0.21.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a89dc7a5850d0e983be1ec2a463a171d20990487c3cfcd68b5363f1ee3d6fe0"
+checksum = "a5e00b96a521718e08e03b1a622f01c8a8deb50719335de3f60b3b3950f069d8"
 dependencies = [
  "cfg-if",
  "indoc",
  "libc",
  "memoffset",
  "parking_lot",
+ "portable-atomic",
  "pyo3-build-config",
  "pyo3-ffi",
  "pyo3-macros",
@@ -831,9 +762,9 @@ dependencies = [
 
 [[package]]
 name = "pyo3-build-config"
-version = "0.20.2"
+version = "0.21.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07426f0d8fe5a601f26293f300afd1a7b1ed5e78b2a705870c5f30893c5163be"
+checksum = "7883df5835fafdad87c0d888b266c8ec0f4c9ca48a5bed6bbb592e8dedee1b50"
 dependencies = [
  "once_cell",
  "target-lexicon",
@@ -841,9 +772,9 @@ dependencies = [
 
 [[package]]
 name = "pyo3-ffi"
-version = "0.20.2"
+version = "0.21.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb7dec17e17766b46bca4f1a4215a85006b4c2ecde122076c562dd058da6cf1"
+checksum = "01be5843dc60b916ab4dad1dca6d20b9b4e6ddc8e15f50c47fe6d85f1fb97403"
 dependencies = [
  "libc",
  "pyo3-build-config",
@@ -851,9 +782,9 @@ dependencies = [
 
 [[package]]
 name = "pyo3-macros"
-version = "0.20.2"
+version = "0.21.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05f738b4e40d50b5711957f142878cfa0f28e054aa0ebdfc3fd137a843f74ed3"
+checksum = "77b34069fc0682e11b31dbd10321cbf94808394c56fd996796ce45217dfac53c"
 dependencies = [
  "proc-macro2",
  "pyo3-macros-backend",
@@ -863,32 +794,33 @@ dependencies = [
 
 [[package]]
 name = "pyo3-macros-backend"
-version = "0.20.2"
+version = "0.21.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fc910d4851847827daf9d6cdd4a823fbdaab5b8818325c5e97a86da79e8881f"
+checksum = "08260721f32db5e1a5beae69a55553f56b99bd0e1c3e6e0a5e8851a9d0f5a85c"
 dependencies = [
  "heck",
  "proc-macro2",
+ "pyo3-build-config",
  "quote",
  "syn",
 ]
 
 [[package]]
 name = "pyxel-engine"
-version = "2.0.7"
+version = "2.0.13"
 dependencies = [
  "cfg-if",
  "chrono",
- "gif 0.13.1",
+ "gif",
  "glow",
- "image 0.24.8",
+ "image",
  "indexmap",
  "noise",
  "once_cell",
  "parking_lot",
  "platform-dirs",
  "pyxel-platform",
- "rand 0.8.5",
+ "rand",
  "rand_xoshiro",
  "semver",
  "serde",
@@ -899,7 +831,7 @@ dependencies = [
 
 [[package]]
 name = "pyxel-platform"
-version = "2.0.7"
+version = "2.0.13"
 dependencies = [
  "bindgen",
  "cfg-if",
@@ -914,7 +846,7 @@ dependencies = [
 
 [[package]]
 name = "pyxel-wrapper"
-version = "2.0.7"
+version = "2.0.13"
 dependencies = [
  "pyo3",
  "pyxel-engine",
@@ -932,45 +864,22 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "1.0.35"
+version = "1.0.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
 name = "rand"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
-dependencies = [
- "getrandom 0.1.16",
- "libc",
- "rand_chacha 0.2.2",
- "rand_core 0.5.1",
- "rand_hc",
-]
-
-[[package]]
-name = "rand"
 version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
 dependencies = [
  "libc",
- "rand_chacha 0.3.1",
- "rand_core 0.6.4",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
-dependencies = [
- "ppv-lite86",
- "rand_core 0.5.1",
+ "rand_chacha",
+ "rand_core",
 ]
 
 [[package]]
@@ -980,16 +889,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
 dependencies = [
  "ppv-lite86",
- "rand_core 0.6.4",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-dependencies = [
- "getrandom 0.1.16",
+ "rand_core",
 ]
 
 [[package]]
@@ -998,25 +898,16 @@ version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
 dependencies = [
- "getrandom 0.2.12",
-]
-
-[[package]]
-name = "rand_hc"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-dependencies = [
- "rand_core 0.5.1",
+ "getrandom",
 ]
 
 [[package]]
 name = "rand_xorshift"
-version = "0.2.0"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77d416b86801d23dde1aa643023b775c3a462efc0ed96443add11546cdf1dca8"
+checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f"
 dependencies = [
- "rand_core 0.5.1",
+ "rand_core",
 ]
 
 [[package]]
@@ -1025,14 +916,14 @@ version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa"
 dependencies = [
- "rand_core 0.6.4",
+ "rand_core",
 ]
 
 [[package]]
 name = "rayon"
-version = "1.8.1"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051"
+checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
 dependencies = [
  "either",
  "rayon-core",
@@ -1058,21 +949,30 @@ dependencies = [
 ]
 
 [[package]]
+name = "redox_syscall"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e"
+dependencies = [
+ "bitflags 2.5.0",
+]
+
+[[package]]
 name = "redox_users"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
+checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891"
 dependencies = [
- "getrandom 0.2.12",
+ "getrandom",
  "libredox",
  "thiserror",
 ]
 
 [[package]]
 name = "regex"
-version = "1.10.3"
+version = "1.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1082,9 +982,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1093,9 +993,9 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
 
 [[package]]
 name = "rustc-hash"
@@ -1105,24 +1005,18 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
 
 [[package]]
 name = "rustix"
-version = "0.38.31"
+version = "0.38.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
+checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "errno",
  "libc",
  "linux-raw-sys",
- "windows-sys 0.52.0",
+ "windows-sys",
 ]
 
 [[package]]
-name = "scoped_threadpool"
-version = "0.1.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8"
-
-[[package]]
 name = "scopeguard"
 version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1130,15 +1024,15 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "semver"
-version = "1.0.21"
+version = "1.0.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
+checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
 
 [[package]]
 name = "serde"
-version = "1.0.196"
+version = "1.0.203"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
+checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
 dependencies = [
  "serde_derive",
 ]
@@ -1157,9 +1051,9 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.196"
+version = "1.0.203"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
+checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1168,9 +1062,9 @@ dependencies = [
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.5"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0"
 dependencies = [
  "serde",
 ]
@@ -1198,9 +1092,9 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.13.1"
+version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "spin"
@@ -1213,9 +1107,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.49"
+version = "2.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "915aea9e586f80826ee59f8453c1101f9d1c4b3964cd2460185ee8e299ada496"
+checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1224,9 +1118,9 @@ dependencies = [
 
 [[package]]
 name = "sysinfo"
-version = "0.30.5"
+version = "0.30.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fb4f3438c8f6389c864e61221cbc97e9bca98b4daf39a5beb7bea660f528bb2"
+checksum = "732ffa00f53e6b2af46208fba5718d9662a421049204e156328b66791ffa15ae"
 dependencies = [
  "cfg-if",
  "core-foundation-sys",
@@ -1239,9 +1133,9 @@ dependencies = [
 
 [[package]]
 name = "tar"
-version = "0.4.40"
+version = "0.4.41"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb"
+checksum = "cb797dad5fb5b76fcf519e702f4a589483b5ef06567f160c392832c1f5e44909"
 dependencies = [
  "filetime",
  "libc",
@@ -1250,24 +1144,24 @@ dependencies = [
 
 [[package]]
 name = "target-lexicon"
-version = "0.12.13"
+version = "0.12.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
 
 [[package]]
 name = "thiserror"
-version = "1.0.57"
+version = "1.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
+checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.57"
+version = "1.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
+checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1276,58 +1170,58 @@ dependencies = [
 
 [[package]]
 name = "tiff"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a53f4706d65497df0c4349241deddf35f84cee19c87ed86ea8ca590f4464437"
-dependencies = [
- "jpeg-decoder 0.1.22",
- "miniz_oxide 0.4.4",
- "weezl",
-]
-
-[[package]]
-name = "tiff"
 version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e"
 dependencies = [
  "flate2",
- "jpeg-decoder 0.3.1",
+ "jpeg-decoder",
  "weezl",
 ]
 
 [[package]]
 name = "toml"
-version = "0.8.10"
+version = "0.8.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
+checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit",
+ "toml_edit 0.22.14",
 ]
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.5"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.22.6"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow 0.5.40",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6"
+checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38"
 dependencies = [
  "indexmap",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow",
+ "winnow 0.6.13",
 ]
 
 [[package]]
@@ -1350,21 +1244,15 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[package]]
 name = "wasi"
-version = "0.9.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-
-[[package]]
-name = "wasi"
 version = "0.11.0+wasi-snapshot-preview1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -1372,9 +1260,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
@@ -1387,9 +1275,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -1397,9 +1285,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1410,15 +1298,15 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
 name = "web-sys"
-version = "0.3.68"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446"
+checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -1471,7 +1359,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
 dependencies = [
  "windows-core",
- "windows-targets 0.52.0",
+ "windows-targets",
 ]
 
 [[package]]
@@ -1480,16 +1368,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.52.0",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
-dependencies = [
- "windows-targets 0.48.5",
+ "windows-targets",
 ]
 
 [[package]]
@@ -1498,128 +1377,87 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.0",
-]
-
-[[package]]
-name = "windows-targets"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
-dependencies = [
- "windows_aarch64_gnullvm 0.48.5",
- "windows_aarch64_msvc 0.48.5",
- "windows_i686_gnu 0.48.5",
- "windows_i686_msvc 0.48.5",
- "windows_x86_64_gnu 0.48.5",
- "windows_x86_64_gnullvm 0.48.5",
- "windows_x86_64_msvc 0.48.5",
+ "windows-targets",
 ]
 
 [[package]]
 name = "windows-targets"
-version = "0.52.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.0",
- "windows_aarch64_msvc 0.52.0",
- "windows_i686_gnu 0.52.0",
- "windows_i686_msvc 0.52.0",
- "windows_x86_64_gnu 0.52.0",
- "windows_x86_64_gnullvm 0.52.0",
- "windows_x86_64_msvc 0.52.0",
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
 ]
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.48.5"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
-
-[[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.52.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.48.5"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.52.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.48.5"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
 
 [[package]]
-name = "windows_i686_gnu"
-version = "0.52.0"
+name = "windows_i686_gnullvm"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.48.5"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.52.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.52.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.48.5"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
-
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.52.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.48.5"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
 
 [[package]]
-name = "windows_x86_64_msvc"
-version = "0.52.0"
+name = "winnow"
+version = "0.5.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
 
 [[package]]
 name = "winnow"
-version = "0.6.1"
+version = "0.6.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d90f4e0f530c4c69f62b80d839e9ef3855edc9cba471a160c4d692deed62b401"
+checksum = "59b5e5f6c299a3c7890b876a2a587f3115162487e704907d9b6cd29473052ba1"
 dependencies = [
  "memchr",
 ]
@@ -1637,20 +1475,24 @@ dependencies = [
 
 [[package]]
 name = "xml-rs"
-version = "0.8.19"
+version = "0.8.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a"
+checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193"
 
 [[package]]
 name = "zip"
-version = "0.6.6"
+version = "1.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261"
+checksum = "9cc23c04387f4da0374be4533ad1208cbb091d5c11d070dfef13676ad6497164"
 dependencies = [
- "byteorder",
+ "arbitrary",
  "crc32fast",
  "crossbeam-utils",
+ "displaydoc",
  "flate2",
+ "indexmap",
+ "num_enum",
+ "thiserror",
 ]
 
 [[package]]
diff --git a/pkgs/by-name/py/pyxel/never-bundle-sdl2.patch b/pkgs/by-name/py/pyxel/never-bundle-sdl2.patch
index e3448d4ede632..dc53e63bc6ca2 100644
--- a/pkgs/by-name/py/pyxel/never-bundle-sdl2.patch
+++ b/pkgs/by-name/py/pyxel/never-bundle-sdl2.patch
@@ -1,8 +1,8 @@
-diff --git a/crates/pyxel-platform/build.rs b/crates/pyxel-platform/build.rs
-index 35cdeef5..68a93ed9 100644
---- a/crates/pyxel-platform/build.rs
-+++ b/crates/pyxel-platform/build.rs
-@@ -30,7 +30,7 @@ impl SDL2BindingsBuilder {
+diff --git a/rust/pyxel-platform/build.rs b/rust/pyxel-platform/build.rs
+index 45eecae..f385eb9 100644
+--- a/rust/pyxel-platform/build.rs
++++ b/rust/pyxel-platform/build.rs
+@@ -31,7 +31,7 @@ impl SDL2BindingsBuilder {
      }
  
      fn should_bundle_sdl2(&self) -> bool {
diff --git a/pkgs/by-name/py/pyxel/package.nix b/pkgs/by-name/py/pyxel/package.nix
index 4c9cd40682ff7..efdfdcc2c61b1 100644
--- a/pkgs/by-name/py/pyxel/package.nix
+++ b/pkgs/by-name/py/pyxel/package.nix
@@ -10,7 +10,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "pyxel";
-  version = "2.0.7";
+  version = "2.0.13";
   pyproject = true;
 
   disabled = python3.pythonOlder "3.7";
@@ -19,28 +19,23 @@ python3.pkgs.buildPythonApplication rec {
     owner = "kitao";
     repo = "pyxel";
     rev = "v${version}";
-    hash = "sha256-5Jrwfi79HbS4hh+eMwI49Rsk4jrAdAuDhNpUT2cEvDo=";
+    hash = "sha256-0pVeIYDt8sz3eIQU/mU443fVWYjhShTpFKoPpM/PFf0=";
   };
 
-  patches = [
-    ./never-bundle-sdl2.patch
-    ./update-bindgen-f16-support.patch # can be removed once rust-bindgen gets a new release
-  ];
+  patches = [ ./never-bundle-sdl2.patch ];
+
+  postPatch = ''
+    cp ${./Cargo.lock} rust/Cargo.lock
+  '';
 
-  cargoRoot = "crates/pyxel-wrapper";
+  cargoRoot = "rust";
 
-  # Lockfile is generated by applying patches with `git apply`
-  # and then running `cargo generate-lockfile` in `crates/pyxel-wrapper`
   cargoDeps = rustPlatform.importCargoLock {
+    # generated by running `cargo generate-lockfile` in the `rust` directory
     lockFile = ./Cargo.lock;
-    outputHashes = {
-      "bindgen-0.69.1" = "sha256-1967EmuyWgmrKmhwAcW49dlmuWPNuKjuRr5/u7ZKpXQ=";
-    };
   };
 
-  postPatch = ''
-    cp ${./Cargo.lock} crates/pyxel-wrapper/Cargo.lock
-  '';
+  buildAndTestSubdir = "python";
 
   nativeBuildInputs = with rustPlatform; [
     cargoSetupHook
@@ -55,8 +50,8 @@ python3.pkgs.buildPythonApplication rec {
 
   env.NIX_CFLAGS_COMPILE = "-I${lib.getDev SDL2}/include/SDL2";
 
-  # Tests can't use the display
-  dontCheck = true;
+  # Tests want to use the display
+  doCheck = false;
 
   pythonImportsCheck = [
     "pyxel"
@@ -65,7 +60,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = {
     changelog = "https://github.com/kitao/pyxel/tree/${src.rev}/CHANGELOG.md";
-    description = "A retro game engine for Python";
+    description = "Retro game engine for Python";
     homepage = "https://github.com/kitao/pyxel";
     license = lib.licenses.mit;
     mainProgram = "pyxel";
diff --git a/pkgs/by-name/py/pyxel/update-bindgen-f16-support.patch b/pkgs/by-name/py/pyxel/update-bindgen-f16-support.patch
deleted file mode 100644
index 9b7257c7670c5..0000000000000
--- a/pkgs/by-name/py/pyxel/update-bindgen-f16-support.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/crates/pyxel-platform/Cargo.toml b/crates/pyxel-platform/Cargo.toml
-index 01a87b68..088ffbdd 100644
---- a/crates/pyxel-platform/Cargo.toml
-+++ b/crates/pyxel-platform/Cargo.toml
-@@ -22,7 +22,7 @@ parking_lot = "0.12"
- paste = "1.0"
- 
- [build-dependencies]
--bindgen = "0.69"
-+bindgen = { git = "https://github.com/rust-lang/rust-bindgen.git", rev = "d77e53ed8398743bf68831d25063719fa0f4f136" }
- cmake = "0.1"
- flate2 = "1.0"
- tar = "0.4"
diff --git a/pkgs/by-name/pz/pzip/package.nix b/pkgs/by-name/pz/pzip/package.nix
index f2797c6791c8d..625f1f4492bc4 100644
--- a/pkgs/by-name/pz/pzip/package.nix
+++ b/pkgs/by-name/pz/pzip/package.nix
@@ -24,7 +24,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "A fast concurrent zip archiver and extractor";
+    description = "Fast concurrent zip archiver and extractor";
     homepage = "https://github.com/ybirader/pzip";
     changelog = "https://github.com/ybirader/pzip/releases/tag/${src.rev}";
     license = licenses.asl20;
diff --git a/pkgs/by-name/qc/qcm/package.nix b/pkgs/by-name/qc/qcm/package.nix
index 6e99a64e4bbac..c1aaa0e3311ea 100644
--- a/pkgs/by-name/qc/qcm/package.nix
+++ b/pkgs/by-name/qc/qcm/package.nix
@@ -11,14 +11,14 @@
 
 stdenv.mkDerivation rec {
   pname = "qcm";
-  version = "1.0.2";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "hypengw";
     repo = "Qcm";
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-6QivAQqOuWIldx2Rh5nNsj0gia3AOUm6vy9aqyJ1G6k=";
+    hash = "sha256-9xbAw5U4BtpupelsOzfZGosdLx06TKPTG8hhc/no3R0=";
   };
 
   patches = [ ./remove_cubeb_vendor.patch ];
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An unofficial Qt client for netease cloud music";
+    description = "Unofficial Qt client for netease cloud music";
     homepage = "https://github.com/hypengw/Qcm";
     license = licenses.gpl2Plus;
     mainProgram = "Qcm";
diff --git a/pkgs/by-name/qd/qdrant-web-ui/package.nix b/pkgs/by-name/qd/qdrant-web-ui/package.nix
new file mode 100644
index 0000000000000..333d9eed042d2
--- /dev/null
+++ b/pkgs/by-name/qd/qdrant-web-ui/package.nix
@@ -0,0 +1,35 @@
+{
+  buildNpmPackage,
+  fetchFromGitHub,
+  lib,
+}:
+buildNpmPackage rec {
+  pname = "qdrant-web-ui";
+  version = "0.1.28";
+
+  src = fetchFromGitHub {
+    owner = "qdrant";
+    repo = "qdrant-web-ui";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-jbr1PdoYcBxT7EOksLOPYNGz+GG5HVG406S+GRyWeiE=";
+  };
+
+  npmDepsHash = "sha256-8sk2QyunSrKE5/kjSoo0whdVbY9IXCF+n7ZIjP4Mgq8=";
+
+  npmBuildScript = "build-qdrant";
+
+  installPhase = ''
+    runHook preInstall
+    cp -r dist $out
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Self-hosted web UI for Qdrant";
+    homepage = "https://github.com/qdrant/qdrant-web-ui";
+    changelog = "https://github.com/qdrant/qdrant-web-ui/releases/tag/v${version}";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ xzfc ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/tools/graphics/qrcode/default.nix b/pkgs/by-name/qr/qrcode/package.nix
index e870f53da82e8..2a02e8e2043ed 100644
--- a/pkgs/tools/graphics/qrcode/default.nix
+++ b/pkgs/by-name/qr/qrcode/package.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub }:
+{ lib, stdenv, fetchFromGitHub, unstableGitUpdater }:
 
 stdenv.mkDerivation {
   pname = "qrcode";
-  version = "unstable-2023-12-02";
+  version = "0-unstable-2024-06-05";
 
   src = fetchFromGitHub {
     owner = "qsantos";
     repo = "qrcode";
-    rev = "96fac69ad3e4f616ce75c0e3ef4ed0574cfab315";
-    hash = "sha256-Aesjys6FchB6qcLRWJNGfcEZRlO3stw3+IM8Xe2pF+Q=";
+    rev = "822923d1b088c58e329c155baa5e5f3e83021947";
+    hash = "sha256-e/HnMOcfpGaQkPdp9zww08G4Rc1z0flA2Ghu57kKsQA=";
   };
 
   makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
@@ -19,11 +19,13 @@ stdenv.mkDerivation {
     cp DOCUMENTATION LICENCE "$out/share/doc/qrcode"
   '';
 
+  passthru.updateScript = unstableGitUpdater { };
+
   meta = with lib; {
-    description = "A small QR-code tool";
+    description = "Small QR-code tool";
     homepage = "https://github.com/qsantos/qrcode";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ raskin ];
+    maintainers = with maintainers; [ raskin lucasew ];
     platforms = with platforms; unix;
     mainProgram = "qrcode";
   };
diff --git a/pkgs/by-name/qr/qrtool/package.nix b/pkgs/by-name/qr/qrtool/package.nix
index ff1e25ee27aca..1b4c4a29ac2e2 100644
--- a/pkgs/by-name/qr/qrtool/package.nix
+++ b/pkgs/by-name/qr/qrtool/package.nix
@@ -33,7 +33,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     maintainers = with maintainers; [ philiptaron ];
-    description = "A utility for encoding and decoding QR code images";
+    description = "Utility for encoding and decoding QR code images";
     license = licenses.asl20;
     homepage = "https://sorairolake.github.io/qrtool/book/index.html";
     changelog = "https://sorairolake.github.io/qrtool/book/changelog.html";
diff --git a/pkgs/by-name/qs/qspeakers/package.nix b/pkgs/by-name/qs/qspeakers/package.nix
index ffee7775154fd..a0fcc0698a77c 100644
--- a/pkgs/by-name/qs/qspeakers/package.nix
+++ b/pkgs/by-name/qs/qspeakers/package.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = {
-    description = "A loudspeaker enclosure designer";
+    description = "Loudspeaker enclosure designer";
     homepage = "https://github.com/be1/qspeakers";
     license = lib.licenses.gpl3Plus;
     mainProgram = "qspeakers";
diff --git a/pkgs/by-name/qu/quarkus/package.nix b/pkgs/by-name/qu/quarkus/package.nix
index 018258955ff3a..7e79a87056173 100644
--- a/pkgs/by-name/qu/quarkus/package.nix
+++ b/pkgs/by-name/qu/quarkus/package.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "quarkus-cli";
-  version = "3.10.1";
+  version = "3.11.1";
 
   src = fetchurl {
     url = "https://github.com/quarkusio/quarkus/releases/download/${finalAttrs.version}/quarkus-cli-${finalAttrs.version}.tar.gz";
-    hash = "sha256-bS+d7CvzsMcIdex+cZ8DMFOkIgT9G1ktMDu2wc6XySU=";
+    hash = "sha256-eR3/DDO50KYVI14iX+IvALK4YLx0hmd9Z4rToPQTBGE=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/by-name/qu/quickemu/package.nix b/pkgs/by-name/qu/quickemu/package.nix
index 9280eaa990074..b650ef91f88ec 100644
--- a/pkgs/by-name/qu/quickemu/package.nix
+++ b/pkgs/by-name/qu/quickemu/package.nix
@@ -1,32 +1,34 @@
-{ lib
-, fetchFromGitHub
-, stdenv
-, makeWrapper
-, cdrtools
-, curl
-, gawk
-, gnugrep
-, gnused
-, jq
-, ncurses
-, pciutils
-, procps
-, python3
-, qemu
-, socat
-, spice-gtk
-, swtpm
-, usbutils
-, util-linux
-, unzip
-, xdg-user-dirs
-, xrandr
-, zsync
-, OVMF
-, OVMFFull
-, quickemu
-, testers
-, installShellFiles
+{
+  lib,
+  fetchFromGitHub,
+  stdenv,
+  makeWrapper,
+  cdrtools,
+  curl,
+  gawk,
+  gnugrep,
+  gnused,
+  jq,
+  ncurses,
+  pciutils,
+  procps,
+  python3,
+  qemu,
+  socat,
+  spice-gtk,
+  swtpm,
+  usbutils,
+  util-linux,
+  unzip,
+  xdg-user-dirs,
+  xrandr,
+  zsync,
+  OVMF,
+  OVMFFull,
+  quickemu,
+  testers,
+  installShellFiles,
+  fetchpatch2,
 }:
 let
   runtimePaths = [
@@ -52,7 +54,7 @@ let
   ];
 in
 
-stdenv.mkDerivation (finalAttrs : {
+stdenv.mkDerivation (finalAttrs: {
   pname = "quickemu";
   version = "4.9.4";
 
@@ -72,7 +74,20 @@ stdenv.mkDerivation (finalAttrs : {
       quickemu
   '';
 
-  nativeBuildInputs = [ makeWrapper installShellFiles ];
+  patches = [
+    # reduces windows vm ram requirements to 4G, to match microsoft recommendations
+    # TODO: remove on next release
+    (fetchpatch2 {
+      name = "decrease-windows-ram-requirements.patch";
+      url = "https://github.com/quickemu-project/quickemu/commit/f51697593a4650c5486661292e2febe1d16f8c71.patch";
+      hash = "sha256-J5hIvQGtkufOcjk2FZN65iox/W2zkLlg+Veg9TF11Fs=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    makeWrapper
+    installShellFiles
+  ];
 
   installPhase = ''
     runHook preInstall
@@ -98,6 +113,9 @@ stdenv.mkDerivation (finalAttrs : {
     homepage = "https://github.com/quickemu-project/quickemu";
     mainProgram = "quickemu";
     license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ fedx-sudo flexiondotorg ];
+    maintainers = with lib.maintainers; [
+      fedx-sudo
+      flexiondotorg
+    ];
   };
 })
diff --git a/pkgs/by-name/qu/quickjs-ng/package.nix b/pkgs/by-name/qu/quickjs-ng/package.nix
index 33a057dc6fac7..f0d353e7f6fbc 100644
--- a/pkgs/by-name/qu/quickjs-ng/package.nix
+++ b/pkgs/by-name/qu/quickjs-ng/package.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A mighty JavaScript engine";
+    description = "Mighty JavaScript engine";
     homepage = "https://github.com/quickjs-ng/quickjs";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/by-name/qu/quicksand/package.nix b/pkgs/by-name/qu/quicksand/package.nix
index 189c1dfdf5b45..e4fc1c2d5e016 100644
--- a/pkgs/by-name/qu/quicksand/package.nix
+++ b/pkgs/by-name/qu/quicksand/package.nix
@@ -25,7 +25,7 @@ stdenvNoCC.mkDerivation {
 
   meta = {
     homepage = "https://github.com/andrew-paglinawan/QuicksandFamily";
-    description = "A sans serif font designed using geometric shapes";
+    description = "Sans serif font designed using geometric shapes";
     longDescription = ''
       Quicksand is a sans serif typeface designed by Andrew Paglinawan
       in 2008 using geometric shapes as it's core foundation. It is
diff --git a/pkgs/by-name/qu/quinze/package.nix b/pkgs/by-name/qu/quinze/package.nix
new file mode 100644
index 0000000000000..dd029db212370
--- /dev/null
+++ b/pkgs/by-name/qu/quinze/package.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation {
+  name = "quinze";
+  version = "2018-09-22";
+
+  src = fetchzip {
+    url = "https://fontlibrary.org/assets/downloads/quinze/0271bb7be00ea75dcfa06ef7c7f1054e/quinze.zip";
+    hash = "sha256-6C6drbAHme38tF2PtY/YFDdHCbR0JURs4F/K+KZqKiQ=";
+    stripRoot = false;
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m444 -Dt $out/share/fonts/truetype *.ttf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "narrow monospaced font, designed to fit a fifteen pixel bitmap";
+    homepage = "https://fontlibrary.org/en/font/quinze";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ phunehehe ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/by-name/r0/r0vm/package.nix b/pkgs/by-name/r0/r0vm/package.nix
new file mode 100644
index 0000000000000..75a8ab6e5976c
--- /dev/null
+++ b/pkgs/by-name/r0/r0vm/package.nix
@@ -0,0 +1,59 @@
+{ rustPlatform
+, stdenv
+, fetchFromGitHub
+, fetchurl
+, pkg-config
+, perl
+, openssl
+, lib
+, darwin
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "r0vm";
+  version = "1.0.1";
+  src = fetchFromGitHub {
+    owner = "risc0";
+    repo = "risc0";
+    rev = "v${version}";
+    sha256 = "sha256-0Y7+Z2TEm5ZbEkbO8nSOZulGuZAgl9FdyEVNmqV7S8U=";
+  };
+
+  buildAndTestSubdir = "risc0/r0vm";
+
+  nativeBuildInputs = [
+    pkg-config
+    perl
+  ];
+
+  buildInputs = [
+    openssl.dev
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.SystemConfiguration
+  ];
+
+  doCheck = false;
+
+  cargoHash = "sha256-3DwrWkjPCE4f/FHjzWyRGAXJPv30B4Ce8fh2oKDhpMM=";
+
+  postPatch =
+    let
+      # see https://github.com/risc0/risc0/blob/v1.0.1/risc0/circuit/recursion/build.rs
+      sha256Hash = "4e8496469e1efa00efb3630d261abf345e6b2905fb64b4f3a297be88ebdf83d2";
+      recursionZkr = fetchurl {
+        name = "recursion_zkr.zip";
+        url = "https://risc0-artifacts.s3.us-west-2.amazonaws.com/zkr/${sha256Hash}.zip";
+        sha256 = "sha256-ToSWRp4e+gDvs2MNJhq/NF5rKQX7ZLTzope+iOvfg9I=";
+      };
+    in
+    ''
+      ln -sf ${recursionZkr} ./risc0/circuit/recursion/src/recursion_zkr.zip
+    '';
+
+  meta = with lib; {
+    description = "RISC Zero zero-knowledge VM";
+    homepage = "https://github.com/risc0/risc0";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ marijanp ];
+    mainProgram = "r0vm";
+  };
+}
diff --git a/pkgs/by-name/ra/rabbit/package.nix b/pkgs/by-name/ra/rabbit/package.nix
index 60923f6bbc018..66e66fb2c1da1 100644
--- a/pkgs/by-name/ra/rabbit/package.nix
+++ b/pkgs/by-name/ra/rabbit/package.nix
@@ -37,7 +37,7 @@ python3.pkgs.buildPythonApplication rec {
   pythonImportsCheck = [ "rabbit" ];
 
   meta = {
-    description = "A tool for identifying bot accounts based on their recent GitHub event history";
+    description = "Tool for identifying bot accounts based on their recent GitHub event history";
     homepage = "https://github.com/natarajan-chidambaram/RABBIT";
     license = lib.licenses.asl20;
     mainProgram = "rabbit";
diff --git a/pkgs/by-name/ra/radcli/package.nix b/pkgs/by-name/ra/radcli/package.nix
index 86774e3762c44..cc78281df3970 100644
--- a/pkgs/by-name/ra/radcli/package.nix
+++ b/pkgs/by-name/ra/radcli/package.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "radcli";
-  version = "1.3.1";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "radcli";
     repo = "radcli";
     rev = "refs/tags/${version}";
-    hash = "sha256-KBgimvhuHvaVh9hxPr+CtibGWyscSi0KXk8S1/STk+Q=";
+    hash = "sha256-YnZkFYTiU2VNKxuP+JTnH64XYTB/+imeMKN1mZN9VCQ=";
   };
 
   postUnpack = ''
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A simple RADIUS client library";
+    description = "Simple RADIUS client library";
     homepage = "https://github.com/radcli/radcli";
     changelog = "https://github.com/radcli/radcli/blob/${version}/NEWS";
     license = licenses.bsd2;
diff --git a/pkgs/by-name/ra/radicale/package.nix b/pkgs/by-name/ra/radicale/package.nix
index d3637df36b07b..719d49ab3a0e3 100644
--- a/pkgs/by-name/ra/radicale/package.nix
+++ b/pkgs/by-name/ra/radicale/package.nix
@@ -6,25 +6,25 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "radicale";
-  version = "3.2.0";
+  version = "3.2.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Kozea";
     repo = "Radicale";
-    rev = "v${version}";
-    hash = "sha256-RxC8VOfdTXJZiAroDHTKjJqGWu65Z5uyb4WK1LOqubQ=";
+    rev = "v${version}-version";
+    hash = "sha256-ZdcV2t2F2UgjGC+aTfynP2DbPRgzOIADDebY64nj3NA=";
   };
 
   postPatch = ''
     sed -i '/addopts/d' setup.cfg
   '';
 
-  nativeBuildInputs = with python3.pkgs; [
+  build-system = with python3.pkgs; [
     setuptools
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  dependencies = with python3.pkgs; [
     defusedxml
     passlib
     vobject
diff --git a/pkgs/by-name/ra/radicle-node/package.nix b/pkgs/by-name/ra/radicle-node/package.nix
index 8044e41d8e443..020c24e0a4284 100644
--- a/pkgs/by-name/ra/radicle-node/package.nix
+++ b/pkgs/by-name/ra/radicle-node/package.nix
@@ -1,26 +1,32 @@
-{ lib
-, stdenv
+{ asciidoctor
+, darwin
 , fetchgit
-, asciidoctor
 , git
 , installShellFiles
+, jq
+, lib
+, makeWrapper
+, man-db
+, openssh
+, radicle-node
+, runCommand
 , rustPlatform
+, stdenv
 , testers
-, radicle-node
-, darwin
+, xdg-utils
 }: rustPlatform.buildRustPackage rec {
   pname = "radicle-node";
-  version = "1.0.0-rc.9";
+  version = "1.0.0-rc.10";
   env.RADICLE_VERSION = version;
 
   src = fetchgit {
     url = "https://seed.radicle.xyz/z3gqcJUoA1n9HaHKufZs5FCSGazv5.git";
     rev = "refs/namespaces/z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT/refs/tags/v${version}";
-    hash = "sha256-GFltwKc6madTJWPTeAeslmFffHtixR0Dxd+3hAnHvz0=";
+    hash = "sha256-bkP9/S9luT0tgESabt3KaaEUObx6SGxz87XLOIIrDNw=";
   };
-  cargoHash = "sha256-UM9eDWyeewWPq3+z0JWqdAsCxx6EqytuYMwLXDHOC64=";
+  cargoHash = "sha256-FDxXFhQmpWwkvAMawBTwuSXOz1UMqP83Csk9N0atlN8=";
 
-  nativeBuildInputs = [ asciidoctor installShellFiles ];
+  nativeBuildInputs = [ asciidoctor installShellFiles makeWrapper ];
   nativeCheckInputs = [ git ];
   buildInputs = lib.optionals stdenv.buildPlatform.isDarwin [
     darwin.apple_sdk.frameworks.Security
@@ -36,6 +42,8 @@
   checkFlags = [
     "--skip=service::message::tests::test_node_announcement_validate"
     "--skip=tests::test_announcement_relay"
+    # https://radicle.zulipchat.com/#narrow/stream/369277-heartwood/topic/Flaky.20tests/near/438352360
+    "--skip=tests::e2e::test_connection_crossing"
   ];
 
   postInstall = ''
@@ -45,7 +53,40 @@
     done
   '';
 
-  passthru.tests.version = testers.testVersion { package = radicle-node; };
+  postFixup = ''
+    for program in $out/bin/* ;
+    do
+      wrapProgram "$program" \
+        --prefix PATH : "${lib.makeBinPath [ git man-db openssh xdg-utils ]}"
+    done
+  '';
+
+  passthru.tests =
+    let
+      package = radicle-node;
+    in
+    {
+      version = testers.testVersion { inherit package; };
+      basic = runCommand "${package.name}-basic-test"
+        {
+          nativeBuildInputs = [ jq openssh radicle-node ];
+        } ''
+        set -e
+        export RAD_HOME="$PWD/.radicle"
+        mkdir -p "$RAD_HOME/keys"
+        ssh-keygen -t ed25519 -N "" -f "$RAD_HOME/keys/radicle" > /dev/null
+        jq -n '.node.alias |= "nix"' > "$RAD_HOME/config.json"
+
+        rad config > /dev/null
+        rad debug | jq -e '
+            (.sshVersion | contains("${openssh.version}"))
+          and
+            (.gitVersion | contains("${git.version}"))
+        '
+
+        touch $out
+      '';
+    };
 
   meta = {
     description = "Radicle node and CLI for decentralized code collaboration";
diff --git a/pkgs/by-name/ra/rage/package.nix b/pkgs/by-name/ra/rage/package.nix
index 3c33b5025fc10..a6024ace31765 100644
--- a/pkgs/by-name/ra/rage/package.nix
+++ b/pkgs/by-name/ra/rage/package.nix
@@ -39,7 +39,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A simple, secure and modern encryption tool with small explicit keys, no config options, and UNIX-style composability";
+    description = "Simple, secure and modern encryption tool with small explicit keys, no config options, and UNIX-style composability";
     homepage = "https://github.com/str4d/rage";
     changelog = "https://github.com/str4d/rage/blob/v${version}/rage/CHANGELOG.md";
     license = with licenses; [ asl20 mit ]; # either at your option
diff --git a/pkgs/by-name/ra/rasm/package.nix b/pkgs/by-name/ra/rasm/package.nix
new file mode 100644
index 0000000000000..a1708485e8715
--- /dev/null
+++ b/pkgs/by-name/ra/rasm/package.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "rasm";
+  version = "2.2.5";
+
+  src = fetchFromGitHub {
+    owner = "EdouardBERGE";
+    repo = "rasm";
+    rev = "v${version}";
+    hash = "sha256-m2XRi9RF089dBpkwcu/zgmd3XnBF4uJU5B4ec4WJ36I=";
+  };
+
+  # by default the EXEC variable contains `rasm.exe`
+  makeFlags = [ "EXEC=rasm" ];
+
+  installPhase = ''
+    install -Dt $out/bin rasm
+  '';
+
+  meta = with lib; {
+    homepage = "http://rasm.wikidot.com/english-index:home";
+    description = "Z80 assembler";
+    mainProgram = "rasm";
+    # use -n option to display all licenses
+    license = licenses.mit; # expat version
+    maintainers = with lib.maintainers; [ sigmanificient ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/by-name/ra/raspberrypi-eeprom/package.nix b/pkgs/by-name/ra/raspberrypi-eeprom/package.nix
index afad529c8261f..4c72c2a4fd5ed 100644
--- a/pkgs/by-name/ra/raspberrypi-eeprom/package.nix
+++ b/pkgs/by-name/ra/raspberrypi-eeprom/package.nix
@@ -12,13 +12,13 @@
 }:
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "raspberrypi-eeprom";
-  version = "2024.02.16-2712";
+  version = "2024.06.05-2712";
 
   src = fetchFromGitHub {
     owner = "raspberrypi";
     repo = "rpi-eeprom";
     rev = "refs/tags/v${finalAttrs.version}";
-    hash = "sha256-R3X7JaS8Ob6KwN1KYaJDZA8aI4Hv6Y3R+nOMSPjt2ew=";
+    hash = "sha256-VcMDDnM0VNr+Y+16ZChZdlEcmlHx6mYNCK0mrPMJHes=";
   };
 
   buildInputs = [ python3 ];
diff --git a/pkgs/by-name/ra/ratchet/package.nix b/pkgs/by-name/ra/ratchet/package.nix
index 627ba522491f7..a613bea272aac 100644
--- a/pkgs/by-name/ra/ratchet/package.nix
+++ b/pkgs/by-name/ra/ratchet/package.nix
@@ -57,7 +57,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A tool for securing CI/CD workflows with version pinning.";
+    description = "Tool for securing CI/CD workflows with version pinning";
     mainProgram = "ratchet";
     downloadPage = "https://github.com/sethvargo/ratchet";
     homepage = "https://github.com/sethvargo/ratchet";
diff --git a/pkgs/tools/video/rav1e/default.nix b/pkgs/by-name/ra/rav1e/package.nix
index 406276977c520..b90dd2d56a617 100644
--- a/pkgs/tools/video/rav1e/default.nix
+++ b/pkgs/by-name/ra/rav1e/package.nix
@@ -1,16 +1,18 @@
-{ lib
-, rust
-, stdenv
-, rustPlatform
-, fetchCrate
-, pkg-config
-, cargo-c
-, libgit2
-, nasm
-, zlib
-, libiconv
-, Security
-, buildPackages
+{
+  lib,
+  rust,
+  stdenv,
+  rustPlatform,
+  fetchCrate,
+  pkg-config,
+  cargo-c,
+  darwin,
+  libgit2,
+  libiconv,
+  nasm,
+  testers,
+  zlib,
+  rav1e,
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -19,22 +21,26 @@ rustPlatform.buildRustPackage rec {
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-Db7qb7HBAy6lniIiN07iEzURmbfNtuhmgJRv7OUagUM=";
+    hash = "sha256-Db7qb7HBAy6lniIiN07iEzURmbfNtuhmgJRv7OUagUM=";
   };
 
   cargoHash = "sha256-VyQ6n2kIJ7OjK6Xlf0T0GNsBvgESRETzKZDZzAn8ZuY=";
 
   depsBuildBuild = [ pkg-config ];
 
-  nativeBuildInputs = [ cargo-c libgit2 nasm ];
-
-  buildInputs = [
-    zlib
-  ] ++ lib.optionals stdenv.isDarwin [
-    libiconv
-    Security
+  nativeBuildInputs = [
+    cargo-c
+    libgit2
+    nasm
   ];
 
+  buildInputs =
+    [ zlib ]
+    ++ lib.optionals stdenv.isDarwin [
+      libiconv
+      darwin.apple_sdk.frameworks.Security
+    ];
+
   # Darwin uses `llvm-strip`, which results in link errors when using `-x` to strip the asm library
   # and linking it with cctools ld64.
   postPatch = lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) ''
@@ -43,7 +49,7 @@ rustPlatform.buildRustPackage rec {
 
   checkType = "debug";
 
-  postBuild =  ''
+  postBuild = ''
     ${rust.envVars.setEnv} cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
   '';
 
@@ -51,8 +57,12 @@ rustPlatform.buildRustPackage rec {
     ${rust.envVars.setEnv} cargo cinstall --release --frozen --prefix=${placeholder "out"} --target ${stdenv.hostPlatform.rust.rustcTarget}
   '';
 
-  meta = with lib; {
-    description = "The fastest and safest AV1 encoder";
+  passthru = {
+    tests.version = testers.testVersion { package = rav1e; };
+  };
+
+  meta = {
+    description = "Fastest and safest AV1 encoder";
     longDescription = ''
       rav1e is an AV1 video encoder. It is designed to eventually cover all use
       cases, though in its current form it is most suitable for cases where
@@ -61,8 +71,8 @@ rustPlatform.buildRustPackage rec {
     '';
     homepage = "https://github.com/xiph/rav1e";
     changelog = "https://github.com/xiph/rav1e/releases/tag/v${version}";
-    license = licenses.bsd2;
-    maintainers = [ ];
+    license = lib.licenses.bsd2;
+    maintainers = with lib.maintainers; [ getchoo ];
     mainProgram = "rav1e";
   };
 }
diff --git a/pkgs/by-name/ra/raygui/package.nix b/pkgs/by-name/ra/raygui/package.nix
new file mode 100644
index 0000000000000..3c5b427e828fb
--- /dev/null
+++ b/pkgs/by-name/ra/raygui/package.nix
@@ -0,0 +1,47 @@
+{
+  stdenvNoCC,
+  fetchFromGitHub,
+  lib
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  name = "raygui";
+  version = "4.0";
+
+  src = fetchFromGitHub {
+    owner = "raysan5";
+    repo = "raygui";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-1qnChZYsb0e5LnPhvs6a/R5Ammgj2HWFNe9625sBRo8=";
+  };
+
+  dontBuild = true;
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{include,lib/pkgconfig}
+
+    install -Dm644 $src/src/raygui.h $out/include/raygui.h
+
+    cat <<EOF > $out/lib/pkgconfig/raygui.pc
+    prefix=$out
+    includedir=$out/include
+
+    Name: raygui
+    Description: ${finalAttrs.meta.description}
+    URL: ${finalAttrs.meta.homepage}
+    Version: ${finalAttrs.version}
+    Cflags: -I"{includedir}"
+    EOF
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "A simple and easy-to-use immediate-mode gui library";
+    homepage = "https://github.com/raysan5/raygui";
+    license = lib.licenses.zlib;
+    maintainers = with lib.maintainers; [ sigmanificient ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/pkgs/by-name/rc/rc/package.nix b/pkgs/by-name/rc/rc/package.nix
index 1e1e968e73330..6484269c924b9 100644
--- a/pkgs/by-name/rc/rc/package.nix
+++ b/pkgs/by-name/rc/rc/package.nix
@@ -86,7 +86,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/rakitzis/rc";
-    description = "The Plan 9 shell";
+    description = "Plan 9 shell";
     license = [ lib.licenses.zlib ];
     mainProgram = "rc";
     maintainers = with lib.maintainers; [ ramkromberg AndersonTorres ];
diff --git a/pkgs/by-name/rc/rclip/package.nix b/pkgs/by-name/rc/rclip/package.nix
index ed611edfda902..09790b93cbcc6 100644
--- a/pkgs/by-name/rc/rclip/package.nix
+++ b/pkgs/by-name/rc/rclip/package.nix
@@ -4,14 +4,14 @@
 }:
 python3Packages.buildPythonApplication rec {
   pname = "rclip";
-  version = "1.8.10";
+  version = "1.10.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "yurijmikhalevich";
     repo = "rclip";
     rev = "refs/tags/v${version}";
-    hash = "sha256-wjwi6GBblv8Z3SA1bMrtPz3KVF8Zw5595Hqyp8FPgcg=";
+    hash = "sha256-l3KsOX5IkU4/wQyXXHR+09KPSD6nsnBaiGjSi7fMyqA=";
   };
 
   nativeBuildInputs = with python3Packages; [
@@ -38,6 +38,13 @@ python3Packages.buildPythonApplication rec {
     "tests/e2e/test_rclip.py"
   ];
 
+  disabledTests = [
+    # requires network
+    "test_text_model_produces_the_same_vector_as_the_main_model"
+    "test_loads_text_model_when_text_processing_only_requested_and_checkpoint_exists"
+    "test_loads_full_model_when_text_processing_only_requested_and_checkpoint_doesnt_exist"
+  ];
+
   meta = with lib; {
     description = "AI-Powered Command-Line Photo Search Tool";
     homepage = "https://github.com/yurijmikhalevich/rclip";
diff --git a/pkgs/by-name/rc/rcp/package.nix b/pkgs/by-name/rc/rcp/package.nix
index d48b399c48ca0..9d2f64c9b22b2 100644
--- a/pkgs/by-name/rc/rcp/package.nix
+++ b/pkgs/by-name/rc/rcp/package.nix
@@ -7,20 +7,20 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rcp";
-  version = "0.9.0";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "wykurz";
     repo = "rcp";
     rev = "v${version}";
-    hash = "sha256-e6m3E1R7o4X9cPEy/ayUIsK0xhRaVsAFDAwObJrDJPA=";
+    hash = "sha256-nNMcZyJAvqxVSoytmfSqsfk1yVzzZ5aIOj72L+jFAAM=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
     IOKit
   ]);
 
-  cargoHash = "sha256-croFSe37yQa9LijaNxKHrZlcJdExz9SweOoG21PPn9E=";
+  cargoHash = "sha256-3+w+pTws8WjrUqIWYGbE2V438mVUUyrjBH9mHI8uRMQ=";
 
   RUSTFLAGS = "--cfg tokio_unstable";
 
diff --git a/pkgs/by-name/rc/rcu/package.nix b/pkgs/by-name/rc/rcu/package.nix
index 250dda8940e6d..3398236ec6a57 100644
--- a/pkgs/by-name/rc/rcu/package.nix
+++ b/pkgs/by-name/rc/rcu/package.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , requireFile
-, fetchpatch
 , runCommand
 , rcu
 , testers
@@ -15,14 +14,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "rcu";
-  version = "2024.001o";
+  version = "2024.001p";
 
   format = "other";
 
   src = let
     src-tarball = requireFile {
       name = "rcu-d${version}-source.tar.gz";
-      sha256 = "1smi4cfnwbdil0f77244dfq65i173vb4g3kk451lwh35s91ar628";
+      sha256 = "1njsfj4pfqh4c9gppkdlkkfba31v186wjz3zm94adhhpdwzx2ybb";
       url = "http://www.davisr.me/projects/rcu/";
     };
   in runCommand "${src-tarball.name}-unpacked" {} ''
diff --git a/pkgs/by-name/re/reaction/package.nix b/pkgs/by-name/re/reaction/package.nix
index 0451c1b9ddf77..84de0d1255526 100644
--- a/pkgs/by-name/re/reaction/package.nix
+++ b/pkgs/by-name/re/reaction/package.nix
@@ -5,7 +5,7 @@
   fetchFromGitLab,
 }:
 let
-  version = "1.3.0";
+  version = "1.4.1";
 in buildGoModule {
   inherit version;
   pname = "reaction";
@@ -15,7 +15,7 @@ in buildGoModule {
     owner = "ppom";
     repo = "reaction";
     rev = "v${version}";
-    sha256 = "sha256-hlrso4dCGwn5/jOEPvjrK0RgctB4a70UhQkF+cv6NMc=";
+    sha256 = "sha256-UL3ck+gejZAu/mZS3ZiZ78a2/I+OesaSRZUhHirgu9o=";
   };
 
   vendorHash = "sha256-THUIoWFzkqaTofwH4clBgsmtUlLS9WIB2xjqW7vkhpg=";
@@ -26,8 +26,8 @@ in buildGoModule {
   ];
 
   postBuild = ''
-    gcc helpers_c/ip46tables.c -o ip46tables
-    gcc helpers_c/nft46.c -o nft46
+    $CC helpers_c/ip46tables.c -o ip46tables
+    $CC helpers_c/nft46.c -o nft46
   '';
 
   postInstall = ''
diff --git a/pkgs/by-name/re/reactphysics3d/package.nix b/pkgs/by-name/re/reactphysics3d/package.nix
index 2245eeee4214d..76a05dcea107e 100644
--- a/pkgs/by-name/re/reactphysics3d/package.nix
+++ b/pkgs/by-name/re/reactphysics3d/package.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake }:
+{ lib, stdenv, fetchFromGitHub, cmake }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "reactphysics3d";
@@ -14,7 +14,7 @@ stdenv.mkDerivation (finalAttrs: {
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
-    description = "An open source C++ physics engine library";
+    description = "Open source C++ physics engine library";
     homepage = "https://www.reactphysics3d.com";
     maintainers = with maintainers; [ rexxDigital ];
     license = licenses.zlib;
diff --git a/pkgs/by-name/re/read-it-later/package.nix b/pkgs/by-name/re/read-it-later/package.nix
index f63d734093e9d..2c17e72d95104 100644
--- a/pkgs/by-name/re/read-it-later/package.nix
+++ b/pkgs/by-name/re/read-it-later/package.nix
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A simple Wallabag client with basic features to manage articles";
+    description = "Simple Wallabag client with basic features to manage articles";
     homepage = "https://gitlab.gnome.org/World/read-it-later";
     license = licenses.gpl3Plus;
     mainProgram = "read-it-later";
diff --git a/pkgs/by-name/re/recoverdm/package.nix b/pkgs/by-name/re/recoverdm/package.nix
index b0de4b7d1cfe9..647f50e97a8c3 100644
--- a/pkgs/by-name/re/recoverdm/package.nix
+++ b/pkgs/by-name/re/recoverdm/package.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitLab
-, fetchpatch
 , installShellFiles
 }:
 
diff --git a/pkgs/by-name/re/redfishtool/package.nix b/pkgs/by-name/re/redfishtool/package.nix
index d9457c3e1e6db..67aece20026f4 100644
--- a/pkgs/by-name/re/redfishtool/package.nix
+++ b/pkgs/by-name/re/redfishtool/package.nix
@@ -19,7 +19,7 @@ python3.pkgs.buildPythonApplication {
   propagatedBuildInputs = with python3.pkgs; [ requests python-dateutil ];
 
   meta = with lib; {
-    description = "A Python34 program that implements a command line tool for accessing the Redfish API";
+    description = "Python34 program that implements a command line tool for accessing the Redfish API";
     homepage = "https://github.com/DMTF/Redfishtool";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jfvillablanca ];
diff --git a/pkgs/by-name/re/redict/package.nix b/pkgs/by-name/re/redict/package.nix
index 39133faa9b1ba..7d045cdc6fcb6 100644
--- a/pkgs/by-name/re/redict/package.nix
+++ b/pkgs/by-name/re/redict/package.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitea, fetchurl, fetchpatch, lua, jemalloc, pkg-config, nixosTests
+{ lib, stdenv, fetchFromGitea, fetchurl, lua, jemalloc, pkg-config, nixosTests
 , tcl, which, ps, getconf
 , withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd, systemd
 # dependency ordering is broken at the moment when building with openssl
@@ -84,7 +84,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://redict.io";
-    description = "A distributed key/value store";
+    description = "Distributed key/value store";
     license = licenses.lgpl3Only;
     platforms = platforms.all;
     changelog = "https://codeberg.org/redict/redict/releases/tag/${finalAttrs.version}";
diff --git a/pkgs/by-name/re/redka/package.nix b/pkgs/by-name/re/redka/package.nix
index d4f62134483b9..669cd5a3535eb 100644
--- a/pkgs/by-name/re/redka/package.nix
+++ b/pkgs/by-name/re/redka/package.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "redka";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "nalgeon";
     repo = "redka";
     rev = "v${version}";
-    hash = "sha256-PlEZMOrAPQh9RxJBw3zhaUoAH44lor7SFSpmODxUM4U=";
+    hash = "sha256-URPuAltTh95hXePx5zW/bdP2woAoEsKRpf4DHBwzdw4=";
   };
 
   vendorHash = "sha256-aX0X6TWVEouo884LunCt+UzLyvDHgmvuxdV0wh0r7Ro=";
diff --git a/pkgs/by-name/re/redlib/package.nix b/pkgs/by-name/re/redlib/package.nix
index c3778b9cd0fab..216b3f08a25c5 100644
--- a/pkgs/by-name/re/redlib/package.nix
+++ b/pkgs/by-name/re/redlib/package.nix
@@ -8,16 +8,16 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "redlib";
-  version = "0.31.0";
+  version = "0.34.0";
 
   src = fetchFromGitHub {
     owner = "redlib-org";
     repo = "redlib";
     rev = "refs/tags/v${version}";
-    hash = "sha256-d3Jjs/a2EgdqRBTjXKwDDRnU6orb7RQGl1CVz9b9SdI=";
+    hash = "sha256-JpuCX2ae9me+zHxQj5jqQlgDci2NV+TEVUAqnuTn3cA=";
   };
 
-  cargoHash = "sha256-2MugS0/MO85lQvDbiFwnsX4LYdk7TACDFR8OOLEFGUQ=";
+  cargoHash = "sha256-gkRblCHUFiprZeYtu43GIGBZqCq5l/HEGaQN91XbfSs=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Security
diff --git a/pkgs/by-name/re/redocly/package.nix b/pkgs/by-name/re/redocly/package.nix
index eb1b0715d4069..2d23539271eea 100644
--- a/pkgs/by-name/re/redocly/package.nix
+++ b/pkgs/by-name/re/redocly/package.nix
@@ -8,16 +8,16 @@
 
 buildNpmPackage rec {
   pname = "redocly";
-  version = "1.12.0";
+  version = "1.15.0";
 
   src = fetchFromGitHub {
     owner = "Redocly";
     repo = "redocly-cli";
     rev = "@redocly/cli@${version}";
-    hash = "sha256-KfNwBRGDFNMsba+yjwUHiiO2BJbIl4pW1b3cvLBe+lk=";
+    hash = "sha256-qGjFueL05f7DgDa0/B+w1Ix2tRx7PicMneub2sWJ7Gw=";
   };
 
-  npmDepsHash = "sha256-I3cxMw9zOZb9sfP8UUoHc1UJ0RpDqVn9D29arSdNob4=";
+  npmDepsHash = "sha256-pO1ewVInuPCLDk2V4HRqOCFmT1VTVa/qRkJ5rxREWMU=";
 
   npmBuildScript = "prepare";
 
diff --git a/pkgs/by-name/re/regal/package.nix b/pkgs/by-name/re/regal/package.nix
index d97004f6439bf..812a9f8a2f91b 100644
--- a/pkgs/by-name/re/regal/package.nix
+++ b/pkgs/by-name/re/regal/package.nix
@@ -2,19 +2,19 @@
 
 buildGoModule rec {
   name = "regal";
-  version = "0.21.3";
+  version = "0.23.1";
 
   src = fetchFromGitHub {
     owner = "StyraInc";
     repo = "regal";
     rev = "v${version}";
-    hash = "sha256-MeEamVAETl+PJXJ2HpbhYdEG3kqvEeT5bGzRHyTrjcY=";
+    hash = "sha256-ui4SY8HNpS5CV2zh84w8CYZmZAoNOPxIj/eG+KvKlwI=";
   };
 
-  vendorHash = "sha256-5rj2dCWya24VUmIFf0oJQop80trq9NnqqFlBW/A6opk=";
+  vendorHash = "sha256-I0aJFvJmmnxlqgeETOyg2/mjGX8lUJz99t56Qe+9uZg=";
 
   meta = with lib; {
-    description = "a linter and language server for Rego";
+    description = "Linter and language server for Rego";
     mainProgram = "regal";
     homepage = "https://github.com/StyraInc/regal";
     license = licenses.asl20;
diff --git a/pkgs/by-name/re/release-plz/package.nix b/pkgs/by-name/re/release-plz/package.nix
new file mode 100644
index 0000000000000..f2ea059714da1
--- /dev/null
+++ b/pkgs/by-name/re/release-plz/package.nix
@@ -0,0 +1,46 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, installShellFiles
+, pkg-config
+, perl
+, openssl
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "release-plz";
+  version = "0.3.72";
+
+  src = fetchFromGitHub {
+    owner = "MarcoIeni";
+    repo = "release-plz";
+    rev = "release-plz-v${version}";
+    hash = "sha256-wc/+X/P/FKDpvw0U7ItIgzHbqsEnngHk4wt7Pjzk594=";
+  };
+
+  cargoHash = "sha256-RB+NXuASfpx6tZJfG18Hj7JOfXK9FIqSD7QaDfGUHi4=";
+
+  nativeBuildInputs = [ installShellFiles pkg-config perl ];
+  buildInputs = [ openssl ];
+
+  buildAndTestSubdir = "crates/release_plz";
+
+  # Tests depend on additional infrastructure to be running locally
+  doCheck = false;
+
+  postInstall = ''
+    installShellCompletion --cmd ${meta.mainProgram} \
+      --bash <($out/bin/${meta.mainProgram} generate-completions bash) \
+      --fish <($out/bin/${meta.mainProgram} generate-completions fish) \
+      --zsh <($out/bin/${meta.mainProgram} generate-completions zsh)
+  '';
+
+  meta = {
+    description = "Publish Rust crates from CI with a Release PR";
+    homepage = "https://release-plz.ieni.dev";
+    license = with lib.licenses; [ asl20 mit ];
+    maintainers = with lib.maintainers; [ dannixon ];
+    mainProgram = "release-plz";
+    broken = stdenv.isDarwin;
+  };
+}
diff --git a/pkgs/by-name/re/ren-find/package.nix b/pkgs/by-name/re/ren-find/package.nix
index caddd17ae1d59..0008b398093e1 100644
--- a/pkgs/by-name/re/ren-find/package.nix
+++ b/pkgs/by-name/re/ren-find/package.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-pUy8850v4m9P5OuL15qxmDDQYYyae9HFXRbg3b4f3Lw=";
 
   meta = with lib; {
-    description = "A command-line utility that takes find-formatted lines and batch renames them.";
+    description = "Command-line utility that takes find-formatted lines and batch renames them";
     homepage = "https://github.com/robenkleene/ren-find";
     license = licenses.mit;
     maintainers = with maintainers; [ philiptaron ];
diff --git a/pkgs/by-name/re/renode-dts2repl/package.nix b/pkgs/by-name/re/renode-dts2repl/package.nix
index 47ef5321bd190..92bf643dc4219 100644
--- a/pkgs/by-name/re/renode-dts2repl/package.nix
+++ b/pkgs/by-name/re/renode-dts2repl/package.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication {
   pname = "renode-dts2repl";
-  version = "0-unstable-2024-05-16";
+  version = "0-unstable-2024-06-11";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "antmicro";
     repo = "dts2repl";
-    rev = "2eb930e6c9f6b5821e62ca568682a099a2aea99e";
-    hash = "sha256-fMx3sbpxLDzNiDvqxEtqXvAKD8UWe7Du7JTOL1hVkk4=";
+    rev = "7360c07d2ef1e32661a0efa04323e799d400a58e";
+    hash = "sha256-lN3IgLOAeMexWG5zQB9RxRld7Snl3aqNJt3fZV5hdnM=";
   };
 
   nativeBuildInputs = [
@@ -26,7 +26,7 @@ python3.pkgs.buildPythonApplication {
   passthru.updateScript = unstableGitUpdater { };
 
   meta = with lib; {
-    description = "A tool for converting device tree sources into Renode's .repl files";
+    description = "Tool for converting device tree sources into Renode's .repl files";
     homepage = "https://github.com/antmicro/dts2repl";
     license = licenses.asl20;
     maintainers = with maintainers; [ otavio ];
diff --git a/pkgs/by-name/re/renode-unstable/package.nix b/pkgs/by-name/re/renode-unstable/package.nix
index 46cf78a80971a..6fb753a1cbadd 100644
--- a/pkgs/by-name/re/renode-unstable/package.nix
+++ b/pkgs/by-name/re/renode-unstable/package.nix
@@ -5,11 +5,11 @@
 
 renode.overrideAttrs (finalAttrs: _: {
   pname = "renode-unstable";
-  version = "1.15.0+20240515gita6b1d773d";
+  version = "1.15.1+20240615gitdd55f8ea4";
 
   src = fetchurl {
     url = "https://builds.renode.io/renode-${finalAttrs.version}.linux-portable.tar.gz";
-    hash = "sha256-N0pdjbEsXZiPh/xr76akmwSmkEt/fsBXZl4Cjncz3hU=";
+    hash = "sha256-CxV92sGxRlITi0jhi/O0J/FwLGyJVS7niIzlO3s3pis=";
   };
 
   passthru.updateScript =
diff --git a/pkgs/by-name/re/renode/package.nix b/pkgs/by-name/re/renode/package.nix
index 0a514587f8384..c296d7c85967d 100644
--- a/pkgs/by-name/re/renode/package.nix
+++ b/pkgs/by-name/re/renode/package.nix
@@ -31,11 +31,11 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "renode";
-  version = "1.15.0";
+  version = "1.15.1";
 
   src = fetchurl {
     url = "https://github.com/renode/renode/releases/download/v${finalAttrs.version}/renode-${finalAttrs.version}.linux-portable.tar.gz";
-    hash = "sha256-w3HKYctW1LmiAse/27Y1Gmz9hDprQ1CK7+TXIexCrkg=";
+    hash = "sha256-W+JtyaXcYZD+iaVEFX6eatxV3/Vr4aZrsCLm1Aj+ISs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/re/renovate/package.nix b/pkgs/by-name/re/renovate/package.nix
new file mode 100644
index 0000000000000..ca84aa9ce4ef3
--- /dev/null
+++ b/pkgs/by-name/re/renovate/package.nix
@@ -0,0 +1,107 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  makeWrapper,
+  nodejs,
+  overrideSDK,
+  pnpm_9,
+  python3,
+  renovate,
+  testers,
+  xcbuild,
+  nixosTests,
+}:
+
+let
+  # fix build error, `no member named 'aligned_alloc'` on x86_64-darwin
+  # https://github.com/NixOS/nixpkgs/issues/272156#issuecomment-1839904283
+  stdenv' = if stdenv.hostPlatform.isDarwin then overrideSDK stdenv "11.0" else stdenv;
+in
+stdenv'.mkDerivation (finalAttrs: {
+  pname = "renovate";
+  version = "37.393.0";
+
+  src = fetchFromGitHub {
+    owner = "renovatebot";
+    repo = "renovate";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-YgxcGNMgmwrausdR7kvG1NiyQPn0FcCq/isf9qUDCFY=";
+  };
+
+  postPatch = ''
+    substituteInPlace package.json \
+      --replace-fail "0.0.0-semantic-release" "${finalAttrs.version}"
+  '';
+
+  nativeBuildInputs = [
+    makeWrapper
+    nodejs
+    pnpm_9.configHook
+    python3
+  ] ++ lib.optional stdenv'.hostPlatform.isDarwin xcbuild;
+
+  pnpmDeps = pnpm_9.fetchDeps {
+    inherit (finalAttrs) pname version src;
+    hash = "sha256-Zbe561q6xDKDIN+E/2eyQMz2GtpPvJEv2pAauMa+8pE=";
+  };
+
+  env.COREPACK_ENABLE_STRICT = 0;
+
+  buildPhase =
+    ''
+      runHook preBuild
+
+      pnpm build
+      pnpm prune --prod --ignore-scripts
+    ''
+    # The optional dependency re2 is not built by pnpm and needs to be built manually.
+    # If re2 is not built, you will get an annoying warning when you run renovate.
+    + ''
+      pushd node_modules/.pnpm/re2*/node_modules/re2
+
+      mkdir -p $HOME/.node-gyp/${nodejs.version}
+      echo 9 > $HOME/.node-gyp/${nodejs.version}/installVersion
+      ln -sfv ${nodejs}/include $HOME/.node-gyp/${nodejs.version}
+      export npm_config_nodedir=${nodejs}
+      npm run rebuild
+
+      popd
+
+      runHook postBuild
+    '';
+
+  # TODO: replace with `pnpm deploy`
+  # now it fails to build with ERR_PNPM_NO_OFFLINE_META
+  # see https://github.com/pnpm/pnpm/issues/5315
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{bin,lib/node_modules/renovate}
+    cp -r dist node_modules package.json renovate-schema.json $out/lib/node_modules/renovate
+
+    makeWrapper "${lib.getExe nodejs}" "$out/bin/renovate" \
+      --add-flags "$out/lib/node_modules/renovate/dist/renovate.js"
+    makeWrapper "${lib.getExe nodejs}" "$out/bin/renovate-config-validator" \
+      --add-flags "$out/lib/node_modules/renovate/dist/config-validator.js"
+
+    runHook postInstall
+  '';
+
+  passthru.tests = {
+    version = testers.testVersion { package = renovate; };
+    vm-test = nixosTests.renovate;
+  };
+
+  meta = {
+    description = "Cross-platform Dependency Automation by Mend.io";
+    homepage = "https://github.com/renovatebot/renovate";
+    license = lib.licenses.agpl3Only;
+    maintainers = with lib.maintainers; [
+      marie
+      natsukium
+    ];
+    mainProgram = "renovate";
+    platforms = nodejs.meta.platforms;
+  };
+})
diff --git a/pkgs/by-name/re/rep-grep/package.nix b/pkgs/by-name/re/rep-grep/package.nix
index 1869938cb55b0..de67de3f7be1a 100644
--- a/pkgs/by-name/re/rep-grep/package.nix
+++ b/pkgs/by-name/re/rep-grep/package.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-ch+RMLc+xogL0gkrnw+n+bmUVIcixdPTaNPHPuJ0/EI=";
 
   meta = with lib; {
-    description = "A command-line utility that takes grep-formatted lines and performs a find-and-replace on them.";
+    description = "Command-line utility that takes grep-formatted lines and performs a find-and-replace on them";
     homepage = "https://github.com/robenkleene/rep-grep";
     license = licenses.mit;
     maintainers = with maintainers; [ philiptaron ];
diff --git a/pkgs/by-name/re/replxx/package.nix b/pkgs/by-name/re/replxx/package.nix
index ae8d185bb530c..1df434315fe3d 100644
--- a/pkgs/by-name/re/replxx/package.nix
+++ b/pkgs/by-name/re/replxx/package.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://github.com/AmokHuginnsson/replxx";
-    description = "A readline and libedit replacement that supports UTF-8, syntax highlighting, hints and Windows and is BSD licensed";
+    description = "Readline and libedit replacement that supports UTF-8, syntax highlighting, hints and Windows and is BSD licensed";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
     platforms = platforms.all;
diff --git a/pkgs/by-name/re/reproxy/package.nix b/pkgs/by-name/re/reproxy/package.nix
index f90ad1246cf85..c41334aa6be57 100644
--- a/pkgs/by-name/re/reproxy/package.nix
+++ b/pkgs/by-name/re/reproxy/package.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "reproxy";
-  version = "1.1.1";
+  version = "1.2.2";
 
   src = fetchFromGitHub {
     owner = "umputun";
     repo = "reproxy";
     rev = "v${version}";
-    hash = "sha256-/ydpqi7O4z41YxYb/RngPWk/79h3MIxAopzqIDMgw1g=";
+    hash = "sha256-UQ20mP+7AsrkNN+tvaRb8BcpHu76bpmswtR2PL4/JsE=";
   };
 
   vendorHash = null;
@@ -19,7 +19,7 @@ buildGoModule rec {
 
   checkFlags = [
     # Requires network access or fluky
-    "-skip=^Test(_MainWithPlugin|_MainWithSSL|_Main|Http_matchHandler|Http_withBasicAuth|File_Events|File_Events_BusyListener)$"
+    "-skip=^Test(_MainWithPlugin|_MainWithSSL|_Main|Http_health|Http_matchHandler|Http_withBasicAuth|File_Events|File_Events_BusyListener)$"
   ];
 
   postInstall = ''
diff --git a/pkgs/by-name/re/rerun/package.nix b/pkgs/by-name/re/rerun/package.nix
index 844f97700c226..6fedb10cfed12 100644
--- a/pkgs/by-name/re/rerun/package.nix
+++ b/pkgs/by-name/re/rerun/package.nix
@@ -78,8 +78,6 @@ rustPlatform.buildRustPackage rec {
     ]
     ++ lib.optionals stdenv.isLinux [ (lib.getLib wayland) ];
 
-  env.CARGO_TARGET_WASM32_UNKNOWN_UNKNOWN_LINKER = "lld";
-
   addDlopenRunpaths = map (p: "${lib.getLib p}/lib") (
     lib.optionals stdenv.hostPlatform.isLinux [
       libxkbcommon
@@ -128,5 +126,8 @@ rustPlatform.buildRustPackage rec {
     ];
     maintainers = with maintainers; [ SomeoneSerge ];
     mainProgram = "rerun";
+    # See comment about wasm32-unknown-unknown in rustc.nix.
+    broken = lib.any (a: lib.hasAttr a stdenv.hostPlatform.gcc) [ "cpu" "float-abi" "fpu" ] ||
+      !stdenv.hostPlatform.gcc.thumb or true;
   };
 }
diff --git a/pkgs/by-name/re/resorter/package.nix b/pkgs/by-name/re/resorter/package.nix
new file mode 100644
index 0000000000000..c717ff495462b
--- /dev/null
+++ b/pkgs/by-name/re/resorter/package.nix
@@ -0,0 +1,46 @@
+{
+  lib,
+  fetchFromGitHub,
+  rPackages,
+  rWrapper,
+  stdenv,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "resorter";
+  version = "0-unstable-2023-07-14";
+
+  src = fetchFromGitHub {
+    owner = "hiAndrewQuinn";
+    repo = "resorter";
+    rev = "81f8922d41d062794e1563a468cb5ca78680436b";
+    hash = "sha256-oC1atQNxwXcsTjom/SCBUsLhHJJEBwqKh0BN9/mvRTU=";
+  };
+
+  buildInputs = [
+    (rWrapper.override {
+      packages = with rPackages; [
+        BradleyTerry2
+        argparser
+      ];
+    })
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -pv $out/bin/
+    cp -v resorter.r $out/bin/resorter
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Tool to sort a list of items based on pairwise comparisons";
+    homepage = "https://github.com/hiAndrewQuinn/resorter";
+    license = with lib.licenses; [ cc0 ];
+    mainProgram = "resorter";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.all;
+  };
+})
diff --git a/pkgs/by-name/re/resources/package.nix b/pkgs/by-name/re/resources/package.nix
index 17003ae901d96..aa5e1ff47bc06 100644
--- a/pkgs/by-name/re/resources/package.nix
+++ b/pkgs/by-name/re/resources/package.nix
@@ -19,19 +19,19 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "resources";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "nokyan";
     repo = "resources";
     rev = "refs/tags/v${finalAttrs.version}";
-    hash = "sha256-57GsxLxnaQ9o3Dux2fTNWUmhOMs6waYvtV6260CM5fo=";
+    hash = "sha256-Udl5DY68AeysYoXVlQQ0cIv3EHOtdqkW1nmGRYXaT8Y=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit (finalAttrs) src;
     name = "resources-${finalAttrs.version}";
-    hash = "sha256-bHzijXjvbmYltNHevhddz5TCYKg2OMRn+Icb77F18XU=";
+    hash = "sha256-XvCnYBl0pCtJ4vXuQxqBlTVMIiFNQiNabHhqaxq8AdM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/re/restls/package.nix b/pkgs/by-name/re/restls/package.nix
index c01e392190122..ff260ada34688 100644
--- a/pkgs/by-name/re/restls/package.nix
+++ b/pkgs/by-name/re/restls/package.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec{
 
   meta = with lib; {
     homepage = "https://github.com/3andne/restls";
-    description = "A Perfect Impersonation of TLS";
+    description = "Perfect Impersonation of TLS";
     license = licenses.bsd3;
     mainProgram = "restls";
     maintainers = with maintainers; [ oluceps ];
diff --git a/pkgs/by-name/re/retool/package.nix b/pkgs/by-name/re/retool/package.nix
index dd47fa3e6d0a0..84bba4dae2ee6 100644
--- a/pkgs/by-name/re/retool/package.nix
+++ b/pkgs/by-name/re/retool/package.nix
@@ -48,7 +48,7 @@ python3.pkgs.buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A better filter tool for Redump and No-Intro dats";
+    description = "Better filter tool for Redump and No-Intro dats";
     homepage = "https://github.com/unexpectedpanda/retool";
     license = licenses.bsd3;
     maintainers = with maintainers; [ thiagokokada ];
diff --git a/pkgs/by-name/re/rewind-ai/package.nix b/pkgs/by-name/re/rewind-ai/package.nix
new file mode 100644
index 0000000000000..cfd1db4846715
--- /dev/null
+++ b/pkgs/by-name/re/rewind-ai/package.nix
@@ -0,0 +1,82 @@
+{
+  lib,
+  stdenvNoCC,
+  fetchzip,
+  writeShellApplication,
+  curl,
+  gawk,
+  xmlstarlet,
+  common-updater-scripts,
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "rewind-ai";
+  # Example version with explanation
+  # 1.5284 (Base version)
+  # 15284.1 (build number)
+  # dcd0176 (commit hash)
+  # 20240504 (pub date)
+  version = "1.5284-15284.1-dcd0176-20240504";
+
+  src = fetchzip {
+    url =
+      let
+        buildNumber = lib.elemAt (lib.splitString "-" finalAttrs.version) 1;
+        commitHash = lib.elemAt (lib.splitString "-" finalAttrs.version) 2;
+      in
+      "https://updates.rewind.ai/builds/main/b${buildNumber}-main-${commitHash}.zip";
+    hash = "sha256-Y7iAYHH/msZoXFzAZHJb6YoDz5fwMPHJx1kg7TqP5Gw=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p "$out/Applications/Rewind.app"
+    cp -R . "$out/Applications/Rewind.app"
+
+    runHook postInstall
+  '';
+
+  # Example response to use when modifing the script: https://pastebin.com/raw/90qU3n6H
+  # There is a real harsh limit on update checks, so DO NOT send any unnecessary update checks
+  # Wait at least 3 days since the last pub_date (you will find the date at the end of the version number)
+  # Example: 20240504 would be 2024/05/04, and that would mean that we want to check no earlier than on 2024/05/07 for any updates
+  passthru.updateScript = lib.getExe (writeShellApplication {
+    name = "${finalAttrs.pname}-update-script";
+    runtimeInputs = [
+      curl
+      gawk
+      xmlstarlet
+      common-updater-scripts
+    ];
+    text = ''
+      xml_get () {
+        echo "$update_xml" | xmlstarlet sel -t -v "$1"
+      }
+
+      update_url="https://updates.rewind.ai/appcasts/main.xml"
+
+      update_xml=$(curl -s "$update_url")
+
+      version_base=$(xml_get "/rss/channel/item/sparkle:shortVersionString")
+      url=$(xml_get "/rss/channel/item/enclosure/@url")
+      pub_date=$(xml_get "/rss/channel/item/pubDate")
+      commit_id=$(echo "$url" | awk -F '-|\\.' '{ print $(NF - 1) }')
+      build_number=$(xml_get "/rss/channel/item/sparkle:version")
+      formatted_pub_date=$(date -d "$pub_date" +"%Y%m%d")
+
+      full_version="''${version_base}-''${build_number}-''${commit_id}-''${formatted_pub_date}"
+      update-source-version "rewind-ai" "$full_version" --version-key=version --file=./pkgs/by-name/re/rewind-ai/package.nix --print-changes
+    '';
+  });
+
+  meta = {
+    changelog = "https://www.rewind.ai/changelog";
+    description = "Rewind is a personalized AI powered by everything you've seen, said, or heard";
+    homepage = "https://www.rewind.ai/";
+    license = lib.licenses.unfree;
+    maintainers = with lib.maintainers; [ donteatoreo ];
+    platforms = [ "aarch64-darwin" ];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+  };
+})
diff --git a/pkgs/by-name/ri/ricochet-refresh/package.nix b/pkgs/by-name/ri/ricochet-refresh/package.nix
index 4d753b760d696..6072f05e06c19 100644
--- a/pkgs/by-name/ri/ricochet-refresh/package.nix
+++ b/pkgs/by-name/ri/ricochet-refresh/package.nix
@@ -3,24 +3,21 @@
 , fetchFromGitHub
 , qt5
 , openssl
-, protobuf3_20  # https://github.com/blueprint-freespeech/ricochet-refresh/issues/178
+, protobuf
 , pkg-config
 , cmake
 }:
 
-let
-  protobuf = protobuf3_20;
-in
 stdenv.mkDerivation (finalAttrs: {
   pname = "ricochet-refresh";
-  version = "3.0.22";
+  version = "3.0.24";
 
   src = fetchFromGitHub {
     owner = "blueprint-freespeech";
     repo = "ricochet-refresh";
     rev = "v${finalAttrs.version}-release";
-    hash = "sha256-xPOAtH+K3WTPjbDw4ZhwpO2+wUYe5JdqKdtfNKQbgSM=";
     fetchSubmodules = true;
+    hash = "sha256-xz1cyNQgmXUIZc56OHwWZCGVNpp7CFFyCd0EvAas4zw=";
   };
 
   sourceRoot = "${finalAttrs.src.name}/src";
diff --git a/pkgs/by-name/ri/ride/package.nix b/pkgs/by-name/ri/ride/package.nix
index 55ad02104ba9c..52adbc5387d03 100644
--- a/pkgs/by-name/ri/ride/package.nix
+++ b/pkgs/by-name/ri/ride/package.nix
@@ -3,6 +3,7 @@
   stdenv,
   buildNpmPackage,
   fetchFromGitHub,
+  fetchpatch,
   substituteAll,
   jq,
   moreutils,
@@ -10,7 +11,7 @@
   makeWrapper,
   copyDesktopItems,
   makeDesktopItem,
-  electron_27,
+  electron,
 }:
 
 let
@@ -30,9 +31,6 @@ let
   };
 
   platformInfo = platformInfos.${stdenv.system};
-
-  # Electron 27 is the latest version that works as of RIDE version 4.5.4097
-  electron = electron_27;
 in
 buildNpmPackage rec {
   pname = "ride";
@@ -45,9 +43,15 @@ buildNpmPackage rec {
     hash = "sha256-xR+HVC1JVrPkgPhIJZxdTVG52+QbanmD1c/uO5l84oc=";
   };
 
-  npmDepsHash = "sha256-EG3pZkjDGBI2dDaQZ6351+oU4xfHd6HNB8eD7ErpYIg=";
+  npmDepsHash = "sha256-h+48/9h7/cD8woyA0UCLtzKuE9jCrfpDk6IeoDWnYik=";
 
   patches = [
+    # Adds support for electron versions >=28
+    (fetchpatch {
+      name = "bump-electron-version.patch";
+      url = "https://github.com/Dyalog/ride/commit/de42ebbd5036cfe0c7e6604296e87cc57ac9d365.patch";
+      hash = "sha256-5iKSNcxOOo2fKNvy3Rv+AlH3psYhLWLWUY0l8M6mAD4=";
+    })
     # Fix info in the "about" page, set electron version, set local-cache as zipdir
     (substituteAll {
       src = ./mk.patch;
diff --git a/pkgs/by-name/ri/rimgo/package.nix b/pkgs/by-name/ri/rimgo/package.nix
index 685c1f279b690..7040e64b15768 100644
--- a/pkgs/by-name/ri/rimgo/package.nix
+++ b/pkgs/by-name/ri/rimgo/package.nix
@@ -31,7 +31,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "An alternative frontend for Imgur";
+    description = "Alternative frontend for Imgur";
     homepage = "https://codeberg.org/rimgo/rimgo";
     license = licenses.agpl3Only;
     mainProgram = "rimgo";
diff --git a/pkgs/by-name/ri/ringfairy/package.nix b/pkgs/by-name/ri/ringfairy/package.nix
new file mode 100644
index 0000000000000..1b4295d1f6341
--- /dev/null
+++ b/pkgs/by-name/ri/ringfairy/package.nix
@@ -0,0 +1,41 @@
+{
+  lib,
+  rustPlatform,
+  fetchFromGitHub,
+  pkg-config,
+  openssl,
+  stdenv,
+  darwin,
+}:
+rustPlatform.buildRustPackage {
+  pname = "ringfairy";
+  version = "0.1.2-unstable-2024-05-11";
+
+  src = fetchFromGitHub {
+    owner = "k3rs3d";
+    repo = "ringfairy";
+    rev = "966fe129c72a7ff09f55f22273c1c291780d40cd";
+    hash = "sha256-1soTvSjoBSIQBUK21COSmw8EKYcMUBjNs+FNs3jzy/E=";
+  };
+
+  cargoHash = "sha256-cmW+y57AAK1NNBJ6xE2EvHsSoKddLWgdtnAmSjzAN0k=";
+
+  nativeBuildInputs = [pkg-config];
+
+  buildInputs =
+    [openssl]
+    ++ lib.optionals stdenv.isDarwin (
+      with darwin.apple_sdk.frameworks; [
+        Security
+        SystemConfiguration
+      ]
+    );
+
+  meta = {
+    description = "Static webring generator in Rust";
+    homepage = "https://github.com/k3rs3d/ringfairy";
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [uncenter];
+    mainProgram = "ringfairy";
+  };
+}
diff --git a/pkgs/by-name/ri/ringracers/package.nix b/pkgs/by-name/ri/ringracers/package.nix
new file mode 100644
index 0000000000000..2f8368b848c06
--- /dev/null
+++ b/pkgs/by-name/ri/ringracers/package.nix
@@ -0,0 +1,95 @@
+{ lib
+, stdenv
+, fetchzip
+, fetchFromGitHub
+, cmake
+, curl
+, nasm
+, game-music-emu
+, libpng
+, SDL2
+, SDL2_mixer
+, libvpx
+, libyuv
+, zlib
+, makeWrapper
+, makeDesktopItem
+, copyDesktopItems
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "ringracers";
+  version = "2.3";
+
+  src = fetchFromGitHub {
+    owner = "KartKrewDev";
+    repo = "RingRacers";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-X2rSwZOEHtnSJBpu+Xf2vkxGUAZSNSXi6GCuGlM6jhY=";
+  };
+
+  assets = fetchzip {
+    name = "${finalAttrs.pname}-${finalAttrs.version}-assets";
+    url = "https://github.com/KartKrewDev/RingRacers/releases/download/v${finalAttrs.version}/Dr.Robotnik.s-Ring-Racers-v${finalAttrs.version}-Assets.zip";
+    hash = "sha256-sHeI1E6uNF0gBNd1e1AU/JT9wyZdkCQgYLiMPZqXAVc=";
+    stripRoot = false;
+  };
+
+  nativeBuildInputs = [
+    cmake
+    nasm
+    makeWrapper
+    copyDesktopItems
+  ];
+
+  buildInputs = [
+    curl
+    game-music-emu
+    libpng
+    SDL2
+    SDL2_mixer
+    libvpx
+    libyuv
+    zlib
+  ];
+
+  cmakeFlags = [
+    "-DSRB2_ASSET_DIRECTORY=${finalAttrs.assets}"
+    "-DGME_INCLUDE_DIR=${game-music-emu}/include"
+    "-DSDL2_MIXER_INCLUDE_DIR=${lib.getDev SDL2_mixer}/include/SDL2"
+    "-DSDL2_INCLUDE_DIR=${lib.getDev SDL2}/include/SDL2"
+  ];
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "ringracers";
+      exec = "ringracers";
+      icon = "ringracers";
+      comment = "This is Racing at the Next Level";
+      desktopName = "Dr. Robotnik's Ring Racers";
+      startupWMClass = ".ringracers-wrapped";
+      categories = [ "Game" ];
+    })
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 ../srb2.png $out/share/icons/hicolor/256x256/apps/ringracers.png
+    install -Dm755 bin/ringracers $out/bin/ringracers
+
+    wrapProgram $out/bin/ringracers \
+      --set RINGRACERSWADDIR "${finalAttrs.assets}"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Kart racing video game based on Sonic Robo Blast 2 (SRB2), itself based on a modified version of Doom Legacy";
+    homepage = "https://kartkrew.org";
+    platforms = platforms.linux;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ donovanglover thehans255 ];
+    mainProgram = "ringracers";
+  };
+})
diff --git a/pkgs/by-name/ri/rippkgs/package.nix b/pkgs/by-name/ri/rippkgs/package.nix
index 9ee41a107efd5..ce368c48b8ea4 100644
--- a/pkgs/by-name/ri/rippkgs/package.nix
+++ b/pkgs/by-name/ri/rippkgs/package.nix
@@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = {
-    description = "A CLI for indexing and searching packages in Nix expressions";
+    description = "CLI for indexing and searching packages in Nix expressions";
     homepage = "https://github.com/replit/rippkgs";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ eclairevoyant cdmistman ];
diff --git a/pkgs/by-name/ri/ripsecrets/package.nix b/pkgs/by-name/ri/ripsecrets/package.nix
index 540eb3a8d9e5d..3783e5ef0983b 100644
--- a/pkgs/by-name/ri/ripsecrets/package.nix
+++ b/pkgs/by-name/ri/ripsecrets/package.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-BKq1ttf8ctXvIbhKxHwCpjeiRKqSyN5+kP2k4CV511I=";
 
   meta = with lib; {
-    description = "A command-line tool to prevent committing secret keys into your source code";
+    description = "Command-line tool to prevent committing secret keys into your source code";
     homepage = "https://github.com/sirwart/ripsecrets";
     changelog = "https://github.com/sirwart/ripsecrets/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/by-name/ri/ripunzip/package.nix b/pkgs/by-name/ri/ripunzip/package.nix
index 0af8460c2611a..43ec13dcda173 100644
--- a/pkgs/by-name/ri/ripunzip/package.nix
+++ b/pkgs/by-name/ri/ripunzip/package.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ripunzip";
-  version = "1.2.1";
+  version = "1.2.2";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "ripunzip";
     rev = "v${version}";
-    hash = "sha256-WcqN3Li0UiEhntKlQkGUrkP9N1I3NrjaGzIs9Q5i4y4=";
+    hash = "sha256-qDY81SxTVfGBCZU2jxuOswyTqzN7Mk3q7Ns6+ShRUnU=";
   };
 
-  cargoHash = "sha256-CezigBDU632UVaeFNv+iM2dQQUabKhOP43etp6vjxTg=";
+  cargoHash = "sha256-8AKmIzMrxpQBDrW8C/OFZYvFn+u4yvWbMXSsCC0NX+Y=";
 
   buildInputs = [ openssl ]
     ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ Security SystemConfiguration ]);
@@ -40,7 +40,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A tool to unzip files in parallel";
+    description = "Tool to unzip files in parallel";
     mainProgram = "ripunzip";
     homepage = "https://github.com/google/ripunzip";
     license = with lib.licenses; [ mit asl20 ];
diff --git a/pkgs/by-name/ri/river-filtile/package.nix b/pkgs/by-name/ri/river-filtile/package.nix
index e54c3e9b43050..5b0b9962f0bce 100644
--- a/pkgs/by-name/ri/river-filtile/package.nix
+++ b/pkgs/by-name/ri/river-filtile/package.nix
@@ -22,7 +22,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A layout manager for the River window manager";
+    description = "Layout manager for the River window manager";
     homepage = "https://github.com/pkulak/filtile";
     license = licenses.gpl3Only;
     maintainers = with lib.maintainers; [ pkulak ];
diff --git a/pkgs/by-name/ri/river/build.zig.zon.nix b/pkgs/by-name/ri/river/build.zig.zon.nix
index 424b5ad35eddf..6ce16a1dd10ea 100644
--- a/pkgs/by-name/ri/river/build.zig.zon.nix
+++ b/pkgs/by-name/ri/river/build.zig.zon.nix
@@ -4,31 +4,31 @@
 
 linkFarm "zig-packages" [
   {
-    name = "122014eeb4600a059bdcfe1c864862f17e6d5e4237e3bb7d6818f2a5583f6f4eb843";
+    name = "1220687c8c47a48ba285d26a05600f8700d37fc637e223ced3aa8324f3650bf52242";
     path = fetchzip {
-      url = "https://codeberg.org/ifreund/zig-pixman/archive/v0.1.0.tar.gz";
-      hash = "sha256-Atfkiyt9v+GWry3xA2Y0Iv6AvwbZ+EHfHLmX0AUEz6Y=";
+      url = "https://codeberg.org/ifreund/zig-wayland/archive/v0.2.0.tar.gz";
+      hash = "sha256-dvit+yvc0MnipqWjxJdfIsA6fJaJZOaIpx4w4woCxbE=";
     };
   }
   {
-    name = "1220714d1cc39c3abb1d9c22a0b838d847ead099cb7d9931821490483f30c022e827";
+    name = "12209db20ce873af176138b76632931def33a10539387cba745db72933c43d274d56";
     path = fetchzip {
-      url = "https://codeberg.org/ifreund/zig-wlroots/archive/v0.17.0.tar.gz";
-      hash = "sha256-C1D2dBn65Z9PmDacpeYbdX574fcOyYi/BJVDUMibkPA=";
+      url = "https://codeberg.org/ifreund/zig-pixman/archive/v0.2.0.tar.gz";
+      hash = "sha256-zcfZEMnipWDPuptl9UN0PoaJDjy2EHc7Wwi4GQq3hkY=";
     };
   }
   {
-    name = "1220840390382c88caf9b0887f6cebbba3a7d05960b8b2ee6d80567b2950b71e5017";
+    name = "1220c65ab884c236cc950b564c70f6cd04046d86485ee76e0cde886cef7438021b4f";
     path = fetchzip {
-      url = "https://codeberg.org/ifreund/zig-xkbcommon/archive/v0.1.0.tar.gz";
-      hash = "sha256-xilmsDGWlkfpTiGff+/nb76jx87ANdr4zqYy6rKOBMg=";
+      url = "https://codeberg.org/ifreund/zig-wlroots/archive/v0.17.1.tar.gz";
+      hash = "sha256-rVI/tJD3cx8b+nGTG5u08/RYoI179oDY7AY0riTntA0=";
     };
   }
   {
-    name = "1220b0f8f822c1625af7aae4cb3ab2c4ec1a4c0e99ef32867b2a8d88bb070b3e7f6d";
+    name = "1220c90b2228d65fd8427a837d31b0add83e9fade1dcfa539bb56fd06f1f8461605f";
     path = fetchzip {
-      url = "https://codeberg.org/ifreund/zig-wayland/archive/v0.1.0.tar.gz";
-      hash = "sha256-VLEx8nRgmJZWgLNBRqrR7bZEkW0m5HTRv984HKwoIfA=";
+      url = "https://codeberg.org/ifreund/zig-xkbcommon/archive/v0.2.0.tar.gz";
+      hash = "sha256-T+EZiStBfmxFUjaX05WhYkFJ8tRok/UQtpc9QY9NxZk=";
     };
   }
 ]
diff --git a/pkgs/by-name/ri/river/package.nix b/pkgs/by-name/ri/river/package.nix
index 0a251f51e0791..e28161b0b02c4 100644
--- a/pkgs/by-name/ri/river/package.nix
+++ b/pkgs/by-name/ri/river/package.nix
@@ -15,14 +15,14 @@
 , wayland-protocols
 , wlroots_0_17
 , xwayland
-, zig_0_12
+, zig_0_13
 , withManpages ? true
 , xwaylandSupport ? true
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "river";
-  version = "0.3.2";
+  version = "0.3.3";
 
   outputs = [ "out" ] ++ lib.optionals withManpages [ "man" ];
 
@@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
     repo = "river";
     rev = "refs/tags/v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-I09cR5aN7qXOzV9HDXaL4TjoeJcVa0Ch00zxOJokdDE=";
+    hash = "sha256-DYaxtYJLZQqE2SyPfWec/zXsZKRnxK2QNgOkM7GJkLI=";
   };
 
   deps = callPackage ./build.zig.zon.nix { };
@@ -41,7 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
     pkg-config
     wayland
     xwayland
-    zig_0_12.hook
+    zig_0_13.hook
   ]
   ++ lib.optional withManpages scdoc;
 
@@ -74,7 +74,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://codeberg.org/river/river";
-    description = "A dynamic tiling wayland compositor";
+    description = "Dynamic tiling wayland compositor";
     longDescription = ''
       River is a dynamic tiling Wayland compositor with flexible runtime
       configuration.
diff --git a/pkgs/by-name/ro/roave-backward-compatibility-check/package.nix b/pkgs/by-name/ro/roave-backward-compatibility-check/package.nix
new file mode 100644
index 0000000000000..a9b5bedbca0c8
--- /dev/null
+++ b/pkgs/by-name/ro/roave-backward-compatibility-check/package.nix
@@ -0,0 +1,37 @@
+{
+  lib,
+  fetchFromGitHub,
+  php,
+  testers,
+  roave-backward-compatibility-check,
+}:
+
+php.buildComposerProject (finalAttrs: {
+  pname = "roave-backward-compatibility-check";
+  version = "8.8.0";
+
+  src = fetchFromGitHub {
+    owner = "Roave";
+    repo = "BackwardCompatibilityCheck";
+    rev = finalAttrs.version;
+    hash = "sha256-/9nJqZcuBLzgzDyoX4NHW9And7L/F+Bsm/gLzQS7QzE=";
+  };
+
+  vendorHash = "sha256-I8JZ4CBrrQmZ38QF9SPZtkPirCAxqSCeTUpMg59Mz7U=";
+
+  passthru = {
+    tests.version = testers.testVersion {
+      package = roave-backward-compatibility-check;
+      version = finalAttrs.version;
+    };
+  };
+
+  meta = {
+    changelog = "https://github.com/Roave/BackwardCompatibilityCheck/releases/tag/${finalAttrs.version}";
+    description = "Tool that can be used to verify BC breaks between two versions of a PHP library";
+    homepage = "https://github.com/Roave/BackwardCompatibilityCheck";
+    license = lib.licenses.mit;
+    mainProgram = "roave-backward-compatibility-check";
+    maintainers = lib.teams.php.members;
+  };
+})
diff --git a/pkgs/by-name/ro/rockyou/package.nix b/pkgs/by-name/ro/rockyou/package.nix
index 7e6bb2f34c361..6c941fd28724d 100644
--- a/pkgs/by-name/ro/rockyou/package.nix
+++ b/pkgs/by-name/ro/rockyou/package.nix
@@ -15,6 +15,6 @@ stdenvNoCC.mkDerivation {
   '';
 
   meta = seclists.meta // {
-    description = "A famous wordlist often used for brute force attacks";
+    description = "Famous wordlist often used for brute force attacks";
   };
 }
diff --git a/pkgs/by-name/ro/roddhjav-apparmor-rules/package.nix b/pkgs/by-name/ro/roddhjav-apparmor-rules/package.nix
new file mode 100644
index 0000000000000..18aee65f02103
--- /dev/null
+++ b/pkgs/by-name/ro/roddhjav-apparmor-rules/package.nix
@@ -0,0 +1,47 @@
+{
+  lib,
+  stdenvNoCC,
+  fetchFromGitHub,
+  unstableGitUpdater,
+}:
+
+stdenvNoCC.mkDerivation {
+  pname = "roddhjav-apparmor-rules";
+  version = "0-unstable-2024-06-12";
+
+  src = fetchFromGitHub {
+    owner = "roddhjav";
+    repo = "apparmor.d";
+    rev = "327c1dec332aaf2f6a9ef59e2243fdf517a0956a";
+    hash = "sha256-AIMmwqa7Kh4/zbTAiHVfOi4LwXO9eInaGCjUx9MRa1o=";
+  };
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/etc/apparmor.d
+    cp -r apparmor.d/* $out/etc/apparmor.d
+    runHook postInstall
+  '';
+
+  passthru.updateScript = unstableGitUpdater { };
+
+  meta = {
+    homepage = "https://github.com/roddhjav/apparmor.d";
+    description = "Over 1500 AppArmor profiles aiming to confine most linux processes";
+    longDescription = ''
+      AppArmor.d is a set of over 1500 AppArmor profiles whose aim is to confine
+      most Linux based applications and processes. Confines all system services, user services
+      and most desktop environments. Currently supported DEs are GNOME, KDE and XFCE (partial).
+      If your DE is not listed in https://github.com/roddhjav/apparmor.d
+      Do not use this, else it may break your system.
+    '';
+    license = lib.licenses.gpl2;
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [
+      johnrtitor
+    ];
+  };
+}
diff --git a/pkgs/by-name/ro/rofi-blezz/package.nix b/pkgs/by-name/ro/rofi-blezz/package.nix
index 0b6f0b2bdc2f5..d8cc9512b4f3b 100644
--- a/pkgs/by-name/ro/rofi-blezz/package.nix
+++ b/pkgs/by-name/ro/rofi-blezz/package.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation {
   ];
 
   meta = with lib; {
-    description = "A plugin for rofi that emulates blezz behaviour";
+    description = "Plugin for rofi that emulates blezz behaviour";
     homepage = "https://github.com/davatorium/rofi-blezz";
     license = licenses.mit;
     maintainers = with maintainers; [ johnjohnstone ];
diff --git a/pkgs/by-name/ro/rofi-obsidian/package.nix b/pkgs/by-name/ro/rofi-obsidian/package.nix
index 5ab8d19be5f68..ba5da27707497 100644
--- a/pkgs/by-name/ro/rofi-obsidian/package.nix
+++ b/pkgs/by-name/ro/rofi-obsidian/package.nix
@@ -5,16 +5,16 @@
 }:
 rustPlatform.buildRustPackage {
   pname = "rofi-obsidian";
-  version = "0.1.0";
+  version = "0.1.5";
 
   src = fetchFromGitHub {
     owner = "Nydragon";
     repo = "rofi-obsidian";
-    rev = "c8f34e424a59b8a15bc77152462d59cfff7fc20e";
-    hash = "sha256-t/neFiLdrA37jknLEsHmWhCug5BS40HgQpQ5a1svtQw=";
+    rev = "0.1.5";
+    hash = "sha256-EQ7OGW5FTgfuJ/xJzOhl1eb3XNORUfs0efP17A6yp7g=";
   };
 
-  cargoHash = "sha256-Eikzn7ZMsrujBdzmsiHGSYAJ+kGBgQAaiVJzixHknWM=";
+  cargoHash = "sha256-hAiBSAvnMRchH49bku2oPhoCK3+bcWiZW4YbcMuAiqU=";
 
   meta = {
     description = "Launch your Obsidian vaults from the comfort of rofi";
diff --git a/pkgs/by-name/ro/rofimoji/package.nix b/pkgs/by-name/ro/rofimoji/package.nix
index c694f88dd1901..610292c2105ac 100644
--- a/pkgs/by-name/ro/rofimoji/package.nix
+++ b/pkgs/by-name/ro/rofimoji/package.nix
@@ -15,14 +15,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "rofimoji";
-  version = "6.3.1";
+  version = "6.3.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "fdw";
     repo = "rofimoji";
     rev = "refs/tags/${version}";
-    hash = "sha256-gYLUUbT6OHMo2nzJ//Pa0vZ9WPcHs6YnAjTKNO07VNk=";
+    hash = "sha256-LJJWHn3UnrCJaowHHuYksD2MHqClLc2MmYYXQfUxTgQ=";
   };
 
   nativeBuildInputs = [
@@ -47,7 +47,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A simple emoji and character picker for rofi";
+    description = "Simple emoji and character picker for rofi";
     mainProgram = "rofimoji";
     homepage = "https://github.com/fdw/rofimoji";
     changelog = "https://github.com/fdw/rofimoji/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/by-name/ro/roon-tui/package.nix b/pkgs/by-name/ro/roon-tui/package.nix
index fb0ed9f6e6817..5e51b5314bccf 100644
--- a/pkgs/by-name/ro/roon-tui/package.nix
+++ b/pkgs/by-name/ro/roon-tui/package.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = {
-    description = "A Roon Remote for the terminal";
+    description = "Roon Remote for the terminal";
     homepage = "https://github.com/TheAppgineer/roon-tui";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ MichaelCDormann ];
diff --git a/pkgs/by-name/ro/roslyn-ls/package.nix b/pkgs/by-name/ro/roslyn-ls/package.nix
index d4ea8136d21c2..bc50c7f10cda9 100644
--- a/pkgs/by-name/ro/roslyn-ls/package.nix
+++ b/pkgs/by-name/ro/roslyn-ls/package.nix
@@ -80,7 +80,7 @@ buildDotnetModule rec {
 
   meta = {
     homepage = "https://github.com/dotnet/vscode-csharp";
-    description = "The language server behind C# Dev Kit for Visual Studio Code";
+    description = "Language server behind C# Dev Kit for Visual Studio Code";
     changelog = "https://github.com/dotnet/vscode-csharp/releases/tag/v${vsVersion}";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ konradmalik ];
diff --git a/pkgs/by-name/rp/rpcs3/package.nix b/pkgs/by-name/rp/rpcs3/package.nix
index ef9b5965aff7f..8a88b4b202f75 100644
--- a/pkgs/by-name/rp/rpcs3/package.nix
+++ b/pkgs/by-name/rp/rpcs3/package.nix
@@ -32,10 +32,10 @@
 
 let
   # Keep these separate so the update script can regex them
-  rpcs3GitVersion = "16391-39e946630";
-  rpcs3Version = "0.0.31-16391-39e946630";
-  rpcs3Revision = "39e946630da8e23c4d2d2b763f63145eb9205e43";
-  rpcs3Hash = "sha256-CIPUmcpBc6iRMzZJZ5vKty/Uh4TYiR65xXD4aKRPSKc=";
+  rpcs3GitVersion = "16614-5b973448b";
+  rpcs3Version = "0.0.32-16614-5b973448b";
+  rpcs3Revision = "5b973448bf75a239f34fd9c7698c8a02b04e2ea9";
+  rpcs3Hash = "sha256-6rDHOK3KZkLaDcdG6dFlicWLFeuQUhCiRG1Y0grOvmA=";
 
   inherit (qt6Packages) qtbase qtmultimedia wrapQtAppsHook qtwayland;
 in
diff --git a/pkgs/by-name/rq/rqbit/package.nix b/pkgs/by-name/rq/rqbit/package.nix
index 0aece0632d191..ecab085a8e634 100644
--- a/pkgs/by-name/rq/rqbit/package.nix
+++ b/pkgs/by-name/rq/rqbit/package.nix
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A bittorrent client in Rust";
+    description = "Bittorrent client in Rust";
     homepage = "https://github.com/ikatson/rqbit";
     changelog = "https://github.com/ikatson/rqbit/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/by-name/rq/rquickshare/package.nix b/pkgs/by-name/rq/rquickshare/package.nix
new file mode 100644
index 0000000000000..89effd8427b04
--- /dev/null
+++ b/pkgs/by-name/rq/rquickshare/package.nix
@@ -0,0 +1,34 @@
+{
+  appimageTools,
+  lib,
+  fetchurl,
+}:
+let
+  pname = "rquickshare";
+  version = "0.7.1";
+  src = fetchurl {
+    url = "https://github.com/Martichou/rquickshare/releases/download/v${version}/r-quick-share_${version}_amd64.AppImage";
+    hash = "sha256-716d7T4nbs/dDS4KVGTADCpLO31U8iq6hDVD+c7Ks1I=";
+  };
+  appimageContents = appimageTools.extractType2 { inherit pname version src; };
+in
+appimageTools.wrapType2 {
+  inherit pname version src;
+  extraInstallCommands = ''
+    install -Dm444 ${appimageContents}/r-quick-share.desktop -t $out/share/applications
+    substituteInPlace $out/share/applications/r-quick-share.desktop \
+      --replace-fail 'Exec=r-quick-share' 'Exec=rquickshare %u'
+    cp -r ${appimageContents}/usr/share/icons $out/share
+  '';
+
+  meta = {
+    description = "Rust implementation of NearbyShare/QuickShare from Android for Linux";
+    homepage = "https://github.com/Martichou/rquickshare";
+    changelog = "https://github.com/Martichou/rquickshare/blob/v${version}/CHANGELOG.md";
+    license = lib.licenses.gpl3Plus;
+    maintainers = [ lib.maintainers.luftmensch-luftmensch ];
+    platforms = [ "x86_64-linux" ];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+    mainProgram = "rquickshare";
+  };
+}
diff --git a/pkgs/by-name/rs/rs-tftpd/package.nix b/pkgs/by-name/rs/rs-tftpd/package.nix
index 43b010913ea8a..1e5b513f5ac01 100644
--- a/pkgs/by-name/rs/rs-tftpd/package.nix
+++ b/pkgs/by-name/rs/rs-tftpd/package.nix
@@ -1,20 +1,23 @@
 { lib
 , rustPlatform
 , fetchFromGitHub
+, nix-update-script
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "rs-tftpd";
-  version = "0.2.12";
+  version = "0.2.13";
 
   src = fetchFromGitHub {
     owner = "altugbakan";
     repo = "rs-tftpd";
     rev = version;
-    hash = "sha256-H67lXwX+4guHpdq0yTHe6tl1NxC41saNrM9g+yH5otk=";
+    hash = "sha256-ABxgptbdepyTqMOz1YHSNRn1+8xYo8vN/dqZiSleJz4=";
   };
 
-  cargoHash = "sha256-B5kduRuX9Lcdd31yj4PsDo8fyy0nabtmsiAXvc8RlYo=";
+  cargoHash = "sha256-8QVgdQnis0ihkU5ZYtxbPIM+9arfO4do1ToRHoi94A8=";
+
+  passthru.updateScript = nix-update-script {};
 
   meta = with lib; {
     description = "TFTP Server Daemon implemented in Rust";
diff --git a/pkgs/by-name/rs/rsgain/package.nix b/pkgs/by-name/rs/rsgain/package.nix
index b759b50892d5f..4d27137718279 100644
--- a/pkgs/by-name/rs/rsgain/package.nix
+++ b/pkgs/by-name/rs/rsgain/package.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
     pname = "rsgain";
-    version = "3.5";
+    version = "3.5.1";
 
     src = fetchFromGitHub {
       owner = "complexlogic";
       repo = "rsgain";
       rev = "v${version}";
-      sha256 = "sha256-qIRtdgfGDNbZk9TQ3GC3lYetRqjOk8QPhAb4MuFuN0U=";
+      sha256 = "sha256-33ezojvCYAvxmUWzLxes3nUpK4iIWjlXsVSi+q7xeGU=";
     };
 
     cmakeFlags = ["-DCMAKE_BUILD_TYPE='Release'"];
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     buildInputs = [libebur128 taglib ffmpeg inih fmt zlib];
 
     meta = with lib; {
-      description = "A simple, but powerful ReplayGain 2.0 tagging utility";
+      description = "Simple, but powerful ReplayGain 2.0 tagging utility";
       mainProgram = "rsgain";
       homepage = "https://github.com/complexlogic/rsgain";
       changelog = "https://github.com/complexlogic/rsgain/blob/v${version}/CHANGELOG";
diff --git a/pkgs/by-name/rt/rtaudio_6/package.nix b/pkgs/by-name/rt/rtaudio_6/package.nix
index f00788782fbad..a8b5f61cc7660 100644
--- a/pkgs/by-name/rt/rtaudio_6/package.nix
+++ b/pkgs/by-name/rt/rtaudio_6/package.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
 
   meta = {
-    description = "A set of C++ classes that provide a cross platform API for realtime audio input/output";
+    description = "Set of C++ classes that provide a cross platform API for realtime audio input/output";
     homepage = "https://www.music.mcgill.ca/~gary/rtaudio/";
     changelog = "https://github.com/thestk/rtaudio/releases/tag/${finalAttrs.version}";
     license = lib.licenses.mit;
diff --git a/pkgs/by-name/rt/rtl_fm_streamer/package.nix b/pkgs/by-name/rt/rtl_fm_streamer/package.nix
new file mode 100644
index 0000000000000..05874d6461085
--- /dev/null
+++ b/pkgs/by-name/rt/rtl_fm_streamer/package.nix
@@ -0,0 +1,50 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, libusb1
+, libev
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "rtl_fm_streamer";
+  version = "unstable-2021-06-08";
+
+  src = fetchFromGitHub {
+    owner = "AlbrechtL";
+    repo = "rtl_fm_streamer";
+    rev = "ceb2bf06883f986ed01aa57c84989ba35b6b9a27";
+    sha256 = "sha256-9M7GS6AC7HEJge04vl7V6ZdtwWvbMu/Rhaf9fwQa9WA=";
+  };
+
+  postPatch = ''
+    substituteInPlace CMakeLists.txt \
+      --replace '/etc/udev/rules.d' "$out/etc/udev/rules.d"
+
+    substituteInPlace rtl-sdr.rules \
+      --replace 'MODE:="0666"' 'ENV{ID_SOFTWARE_RADIO}="1", MODE="0660", GROUP="plugdev"'
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    libusb1
+    libev
+  ];
+
+  cmakeFlags = [
+    (lib.cmakeBool "INSTALL_UDEV_RULES" stdenv.isLinux)
+  ];
+
+  meta = {
+    description = "Turns your Realtek RTL2832 based DVB dongle into a FM radio stereo receiver";
+    homepage = "https://github.com/AlbrechtL/rtl_fm_streamer";
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ doronbehar ];
+    broken = stdenv.isDarwin && stdenv.isx86_64;
+  };
+})
diff --git a/pkgs/by-name/ru/rustplayer/package.nix b/pkgs/by-name/ru/rustplayer/package.nix
index 71c86fe5dde1a..146bbf27b0d29 100644
--- a/pkgs/by-name/ru/rustplayer/package.nix
+++ b/pkgs/by-name/ru/rustplayer/package.nix
@@ -39,7 +39,7 @@ rustPlatform.buildRustPackage {
 
   meta = with lib; {
     homepage = "https://github.com/Kingtous/RustPlayer";
-    description = "A local audio player and network m3u8 radio player using a terminal interface";
+    description = "Local audio player and network m3u8 radio player using a terminal interface";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ oluceps ];
     platforms = platforms.unix;
diff --git a/pkgs/by-name/ru/rusty-diceware/package.nix b/pkgs/by-name/ru/rusty-diceware/package.nix
new file mode 100644
index 0000000000000..acc271e0f7a1f
--- /dev/null
+++ b/pkgs/by-name/ru/rusty-diceware/package.nix
@@ -0,0 +1,29 @@
+{ fetchFromGitLab
+, lib
+, rustPlatform
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "rusty-diceware";
+  version = "0.5.8";
+
+  src = fetchFromGitLab {
+    owner = "yuvallanger";
+    repo = "rusty-diceware";
+    rev = "diceware-v${version}";
+    hash = "sha256-GDWvHHl4EztTaR0jI4XL1I9qE2KSL+q9C8IvLWQF4Ys=";
+  };
+
+  cargoHash = "sha256-5SAKrNgFG3O+hLKvEGhawyRi7wiEPWmxPsLtEX0OkDM=";
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "Commandline diceware, with or without dice, written in Rustlang";
+    homepage = "https://gitlab.com/yuvallanger/rusty-diceware";
+    changelog = "https://gitlab.com/yuvallanger/rusty-diceware/-/blob/v${version}/CHANGELOG.md?ref_type=heads";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ cherrykitten ];
+    mainProgram = "diceware";
+  };
+}
diff --git a/pkgs/by-name/rw/rwpspread/package.nix b/pkgs/by-name/rw/rwpspread/package.nix
index 954bdd4092d1a..31f37735e2547 100644
--- a/pkgs/by-name/rw/rwpspread/package.nix
+++ b/pkgs/by-name/rw/rwpspread/package.nix
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
     description = "Multi-Monitor Wallpaper Utility";
     homepage = "https://github.com/0xk1f0/rwpspread";
     license = lib.licenses.gpl3Only;
-    maintainers = with lib.maintainers; [ nu-nu-ko ];
+    maintainers = with lib.maintainers; [ fsnkty ];
     platforms = lib.platforms.linux;
     mainProgram = "rwpspread";
   };
diff --git a/pkgs/by-name/ry/ryujinx/deps.nix b/pkgs/by-name/ry/ryujinx/deps.nix
index 393c492d21f51..3224a9e49537b 100644
--- a/pkgs/by-name/ry/ryujinx/deps.nix
+++ b/pkgs/by-name/ry/ryujinx/deps.nix
@@ -19,13 +19,13 @@
   (fetchNuGet { pname = "Avalonia.Skia"; version = "11.0.0"; sha256 = "1ra1kd0kkblppr5zy7rzdbwllggrzvp9lkxblf9mg3y8rnp6fk83"; })
   (fetchNuGet { pname = "Avalonia.Skia"; version = "11.0.10"; sha256 = "0w45j4ypqnwmsh3byzaghn43ycfkfnn8415i5lw2q5ip7vp3a9fm"; })
   (fetchNuGet { pname = "Avalonia.Skia"; version = "11.0.4"; sha256 = "1ysmq4f8bxabpq3nhcrrvgwvxb9z7gx9565bvdyksdhsq16wyxym"; })
-  (fetchNuGet { pname = "Avalonia.Svg"; version = "11.0.0.16"; sha256 = "12bk984wylqyyl3fcgxg640pqf6bjbqfkgp1fldrprncca0fx80k"; })
-  (fetchNuGet { pname = "Avalonia.Svg.Skia"; version = "11.0.0.16"; sha256 = "1yd9zf1vbfci52f6yyig8ar2w8wpwiafbf65ah11qqrm32rwd7z6"; })
+  (fetchNuGet { pname = "Avalonia.Svg"; version = "11.0.0.18"; sha256 = "1mcvjwzc7z2kij1wx567nhb6irqzn45wd5b258nls53i3izxm1jk"; })
+  (fetchNuGet { pname = "Avalonia.Svg.Skia"; version = "11.0.0.18"; sha256 = "1915rg60p5bkigqmjchg6538hxnnqbz2sf69967gly9nps81101k"; })
   (fetchNuGet { pname = "Avalonia.Themes.Simple"; version = "11.0.10"; sha256 = "0vssdz6rng0k85qsv2xn6x0dldaalnnx718n7plwxg3j1pddr1z7"; })
   (fetchNuGet { pname = "Avalonia.Win32"; version = "11.0.10"; sha256 = "1gh3fad9ya56qwzhk7590bdzkky76yx1jjj60rqr013b97qbd3gs"; })
   (fetchNuGet { pname = "Avalonia.X11"; version = "11.0.10"; sha256 = "1x09mp8q3mrj5fijqk7qp5qivrysqnbc2bkj2ssvawb9rjy6497w"; })
   (fetchNuGet { pname = "CommandLineParser"; version = "2.9.1"; sha256 = "1sldkj8lakggn4hnyabjj1fppqh50fkdrr1k99d4gswpbk5kv582"; })
-  (fetchNuGet { pname = "Concentus"; version = "1.1.7"; sha256 = "0y5z444wrbhlmsqpy2sxmajl1fbf74843lvgj3y6vz260dn2q0l0"; })
+  (fetchNuGet { pname = "Concentus"; version = "2.2.0"; sha256 = "00x2ch3y57wi661xmla84ypwh8qjcrl0q3i2461dskd8lppw21pg"; })
   (fetchNuGet { pname = "DiscordRichPresence"; version = "1.2.1.24"; sha256 = "0maw0yd6xgwy0cgk593z3zva0r5j267zpdmmpq8avj3zbna6n4x1"; })
   (fetchNuGet { pname = "DynamicData"; version = "8.4.1"; sha256 = "03mdxfrwgfprpn9g17sxhzxg09k3dkkm2xs29i4r36b5jlgmms5g"; })
   (fetchNuGet { pname = "ExCSS"; version = "4.2.3"; sha256 = "1likxhccg4l4g4i65z4dfzp9059hij6h1q7prx2sgakvk8zzmw9k"; })
@@ -58,26 +58,22 @@
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
   (fetchNuGet { pname = "Microsoft.DotNet.PlatformAbstractions"; version = "3.1.6"; sha256 = "0b9myd7gqbpaw9pkd2bx45jhik9mwj0f1ss57sk2cxmag2lkdws5"; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "6.0.0"; sha256 = "08c4fh1n8vsish1vh7h73mva34g0as4ph29s4lvps7kmjb4z64nl"; })
-  (fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "7.5.1"; sha256 = "0kdxb47rafvk6mx0xkf2pik7b638b2d847jlhzi3fvj6swg3v15b"; })
-  (fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "7.5.1"; sha256 = "1ny97mhld7vzn5xwxvcy1jhfq4mw15wrk9c77z6cg2fydkgawyzx"; })
-  (fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "7.5.1"; sha256 = "1zharnx3vhrfdn761w16ygxyj9ig5zn71346aqkk0nmzlll3gfjf"; })
-  (fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "7.5.1"; sha256 = "14fjr679hwal35mdwdv4w40mnxzfnnx65yc16807zzkyri011zc1"; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "7.6.0"; sha256 = "18g4j9n47387k4ym3kl2dzhhhs6fs5rq96757fc4lcdql2rpkmp0"; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "7.6.0"; sha256 = "11znwbbg44hhz3ly6j6q81qz83yqf97jj5zhpldng5zq0h791srl"; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "7.6.0"; sha256 = "1slkzygcn4abpqip4rmi73h9096ihjkkaiwgmkaiba9pidn9lzlx"; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "7.6.0"; sha256 = "1blj1ayw9qpjpsnb4k95s03pdkin0032mxgznfaw1z1qhhiqdnsi"; })
   (fetchNuGet { pname = "Microsoft.IO.RecyclableMemoryStream"; version = "3.0.0"; sha256 = "1zl39k27r4zq75r1x1zr1yl4nzxpkxdnnv6dwd4qp0xr22my85aq"; })
   (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.9.0"; sha256 = "1lls1fly2gr1n9n1xyl9k33l2v4pwfmylyzkq8v4v5ldnwkl1zdb"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.0.0"; sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.1.2"; sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
   (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.9.0"; sha256 = "1kgsl9w9fganbm9wvlkqgk0ag9hfi58z88rkfybc6kvg78bx89ca"; })
   (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.9.0"; sha256 = "19ffh31a1jxzn8j69m1vnk5hyfz3dbxmflq77b8x82zybiilh5nl"; })
-  (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.0.1"; sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7"; })
   (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.5.0"; sha256 = "1zapbz161ji8h82xiajgriq6zgzmb1f3ar517p2h63plhsq5gh2q"; })
   (fetchNuGet { pname = "MsgPack.Cli"; version = "1.0.1"; sha256 = "1dk2bs3g16lsxcjjm7gfx6jxa4667wccw94jlh2ql7y7smvh9z8r"; })
   (fetchNuGet { pname = "NetCoreServer"; version = "8.0.7"; sha256 = "171mn5b56ikkjvsx3hvgmh3lga9c2ja31as0hnfr3040rdrj4ij5"; })
-  (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.0"; sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k"; })
   (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.0"; sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy"; })
   (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.3"; sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y"; })
   (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; })
@@ -90,10 +86,7 @@
   (fetchNuGet { pname = "OpenTK.redist.glfw"; version = "3.3.8.39"; sha256 = "05z0hcignvzk8ffg6mn8m10sv5wppicibjz7zncsj3h3z8cin3vf"; })
   (fetchNuGet { pname = "OpenTK.Windowing.GraphicsLibraryFramework"; version = "4.8.2"; sha256 = "11jc154j5r1jvcxa7by42xkyj5dkiv4q6yffkr6r1vmn9yshclvb"; })
   (fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; })
-  (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk"; })
-  (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn"; })
   (fetchNuGet { pname = "runtime.any.System.Globalization"; version = "4.3.0"; sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x"; })
-  (fetchNuGet { pname = "runtime.any.System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201"; })
   (fetchNuGet { pname = "runtime.any.System.IO"; version = "4.3.0"; sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x"; })
   (fetchNuGet { pname = "runtime.any.System.Reflection"; version = "4.3.0"; sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly"; })
   (fetchNuGet { pname = "runtime.any.System.Reflection.Extensions"; version = "4.3.0"; sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33"; })
@@ -103,17 +96,11 @@
   (fetchNuGet { pname = "runtime.any.System.Runtime.Handles"; version = "4.3.0"; sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x"; })
   (fetchNuGet { pname = "runtime.any.System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19"; })
   (fetchNuGet { pname = "runtime.any.System.Text.Encoding"; version = "4.3.0"; sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3"; })
-  (fetchNuGet { pname = "runtime.any.System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8"; })
   (fetchNuGet { pname = "runtime.any.System.Threading.Tasks"; version = "4.3.0"; sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va"; })
-  (fetchNuGet { pname = "runtime.any.System.Threading.Timer"; version = "4.3.0"; sha256 = "0aw4phrhwqz9m61r79vyfl5la64bjxj8l34qnrcwb28v49fg2086"; })
   (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
   (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
   (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
-  (fetchNuGet { pname = "runtime.native.System"; version = "4.0.0"; sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf"; })
   (fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
-  (fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.1.0"; sha256 = "0d720z4lzyfcabmmnvh0bnj76ll7djhji2hmfh3h44sdkjnlkknk"; })
-  (fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.0.1"; sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6"; })
-  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography"; version = "4.0.0"; sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9"; })
   (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
   (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
   (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
@@ -122,12 +109,7 @@
   (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
   (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
   (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
-  (fetchNuGet { pname = "runtime.unix.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id"; })
-  (fetchNuGet { pname = "runtime.unix.System.Console"; version = "4.3.0"; sha256 = "1pfpkvc6x2if8zbdzg9rnc5fx51yllprl8zkm5npni2k50lisy80"; })
   (fetchNuGet { pname = "runtime.unix.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5"; })
-  (fetchNuGet { pname = "runtime.unix.System.IO.FileSystem"; version = "4.3.0"; sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix"; })
-  (fetchNuGet { pname = "runtime.unix.System.Net.Primitives"; version = "4.3.0"; sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4"; })
-  (fetchNuGet { pname = "runtime.unix.System.Net.Sockets"; version = "4.3.0"; sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12"; })
   (fetchNuGet { pname = "runtime.unix.System.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; })
   (fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; })
   (fetchNuGet { pname = "Ryujinx.AtkSharp"; version = "3.24.24.59-ryujinx"; sha256 = "0497v1himb77qfir5crgx25fgi7h12vzx9m3c8xxlvbs8xg77bcq"; })
@@ -145,7 +127,7 @@
   (fetchNuGet { pname = "securifybv.ShellLink"; version = "0.1.0"; sha256 = "1v52d01590m8y06bybis6hlg296wk3y7ilqyh01ram62v5wrjvq2"; })
   (fetchNuGet { pname = "shaderc.net"; version = "0.1.0"; sha256 = "0f35s9h0vj9f1rx9bssj66hibc3j9bzrb4wgb5q2jwkf5xncxbpq"; })
   (fetchNuGet { pname = "SharpZipLib"; version = "1.4.2"; sha256 = "0ijrzz2szxjmv2cipk7rpmg14dfaigdkg7xabjvb38ih56m9a27y"; })
-  (fetchNuGet { pname = "ShimSkiaSharp"; version = "1.0.0.16"; sha256 = "0af7qhv5mxmynh08snqb345n0ykc9mywqgqlb6lng1f001n9038z"; })
+  (fetchNuGet { pname = "ShimSkiaSharp"; version = "1.0.0.18"; sha256 = "1vxsw5kkw3z4c59v5678k4nmxng92845y3pi4fgv1wcnxgw5aqzg"; })
   (fetchNuGet { pname = "Silk.NET.Core"; version = "2.16.0"; sha256 = "1mkqc2aicvknmpyfry2v7jjxh3apaxa6dmk1vfbwxnkysl417x0k"; })
   (fetchNuGet { pname = "Silk.NET.Vulkan"; version = "2.16.0"; sha256 = "0sg5mxv7ga5pq6wc0lz52j07fxrcfmb0an30r4cxsxk66298z2wy"; })
   (fetchNuGet { pname = "Silk.NET.Vulkan.Extensions.EXT"; version = "2.16.0"; sha256 = "05918f6fl8byla2m7qjp7dvxww2rbpj2sqd4xq26rl885fmddfvf"; })
@@ -168,121 +150,62 @@
   (fetchNuGet { pname = "SkiaSharp.NativeAssets.Win32"; version = "2.88.6"; sha256 = "1w2mwcwkqvrg4x4ybc4674xnkqwh1n2ihg520gqgpnqfc11ghc4n"; })
   (fetchNuGet { pname = "SkiaSharp.NativeAssets.Win32"; version = "2.88.7"; sha256 = "119mlbh5hmlis7vb111s95dwg5p1anm2hmv7cm6fz7gy18473d7v"; })
   (fetchNuGet { pname = "SPB"; version = "0.0.4-build32"; sha256 = "0fk803f4llcc7g111g7wdn6fwqjrlyr64p97lv9xannbk9bxnk0r"; })
-  (fetchNuGet { pname = "Svg.Custom"; version = "1.0.0.16"; sha256 = "1xm30503b8921dn1mvpbhfx4g88hk0mq20zrp41bykhwcfmircqg"; })
-  (fetchNuGet { pname = "Svg.Model"; version = "1.0.0.16"; sha256 = "0nd0ibjc2l50rd9xx2lh1zsfva6qp97zk6gl5iv2ds72dm669smz"; })
-  (fetchNuGet { pname = "Svg.Skia"; version = "1.0.0.16"; sha256 = "1msyivfdkjdiiw1ngfmplk1wwcv1glkfsx7qvfn4wsgahc775wzr"; })
-  (fetchNuGet { pname = "System.AppContext"; version = "4.1.0"; sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz"; })
-  (fetchNuGet { pname = "System.Buffers"; version = "4.0.0"; sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr"; })
-  (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
+  (fetchNuGet { pname = "Svg.Custom"; version = "1.0.0.18"; sha256 = "0186sxdcz7c30g3vvygbahvsmywn1cqq53m8h6la1z2c00zr22s6"; })
+  (fetchNuGet { pname = "Svg.Model"; version = "1.0.0.18"; sha256 = "03vjk6pmxpff6q7saqgq9qdfbs6sf11hqrp469ycfzbikgil4xh9"; })
+  (fetchNuGet { pname = "Svg.Skia"; version = "1.0.0.18"; sha256 = "0vnjy0gc8qfv626rn3z4sy03ds186h1yv9fwq3p84pq6l04ng5d3"; })
   (fetchNuGet { pname = "System.Buffers"; version = "4.5.1"; sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3"; })
   (fetchNuGet { pname = "System.CodeDom"; version = "4.4.0"; sha256 = "1zgbafm5p380r50ap5iddp11kzhr9khrf2pnai6k593wjar74p1g"; })
   (fetchNuGet { pname = "System.CodeDom"; version = "8.0.0"; sha256 = "0zyzd15v0nf8gla7nz243m1kff8ia6vqp471i3g7xgawgj5n21dv"; })
-  (fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
   (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
-  (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.0.12"; sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc"; })
   (fetchNuGet { pname = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; })
   (fetchNuGet { pname = "System.Collections.Immutable"; version = "8.0.0"; sha256 = "0z53a42zjd59zdkszcm7pvij4ri5xbb8jly9hzaad9khlf69bcqp"; })
   (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.5.0"; sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p"; })
-  (fetchNuGet { pname = "System.Console"; version = "4.0.0"; sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf"; })
-  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
   (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
-  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.0.0"; sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m"; })
-  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
-  (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.1.0"; sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394"; })
   (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.3.0"; sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk"; })
-  (fetchNuGet { pname = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
   (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
-  (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.0.1"; sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh"; })
-  (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.0.1"; sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc"; })
-  (fetchNuGet { pname = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
   (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
-  (fetchNuGet { pname = "System.IO.Compression"; version = "4.1.0"; sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji"; })
-  (fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.0.1"; sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82"; })
-  (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.0.1"; sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; })
-  (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
   (fetchNuGet { pname = "System.IO.Hashing"; version = "8.0.0"; sha256 = "1hg5i9hiihj9x4d0mlvhfddmivzrhzz83dyh26fqw1nd8jvqccxk"; })
   (fetchNuGet { pname = "System.IO.Pipelines"; version = "6.0.0"; sha256 = "08211lvckdsdbd67xz4f6cyk76cli565j0dby1grlc4k9bhwby65"; })
-  (fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
   (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
-  (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
   (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
   (fetchNuGet { pname = "System.Management"; version = "8.0.0"; sha256 = "1zbwj6ii8axa4w8ymjzi9d9pj28nhswygahyqppvzaxypw6my2hz"; })
   (fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
   (fetchNuGet { pname = "System.Memory"; version = "4.5.5"; sha256 = "08jsfwimcarfzrhlyvjjid61j02irx6xsklf32rv57x2aaikvx0h"; })
-  (fetchNuGet { pname = "System.Net.Http"; version = "4.1.0"; sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb"; })
-  (fetchNuGet { pname = "System.Net.NameResolution"; version = "4.3.0"; sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq"; })
-  (fetchNuGet { pname = "System.Net.Primitives"; version = "4.0.11"; sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r"; })
-  (fetchNuGet { pname = "System.Net.Sockets"; version = "4.1.0"; sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls"; })
   (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.3.0"; sha256 = "05kji1mv4sl75iwmc613p873145nynm02xiajx8pn0h2kx53d23s"; })
   (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.4.0"; sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba"; })
   (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
-  (fetchNuGet { pname = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
   (fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
   (fetchNuGet { pname = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; })
   (fetchNuGet { pname = "System.Reactive"; version = "6.0.0"; sha256 = "1mkvx1fwychpczksy6svfmniqhbm3xqblxqik6178l12xgq7aw45"; })
-  (fetchNuGet { pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
   (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
-  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
   (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
-  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
   (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
-  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
   (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
-  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
   (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
   (fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
   (fetchNuGet { pname = "System.Reflection.Metadata"; version = "5.0.0"; sha256 = "17qsl5nanlqk9iz0l5wijdn6ka632fs1m1fvx18dfgswm258r3ss"; })
   (fetchNuGet { pname = "System.Reflection.Metadata"; version = "8.0.0"; sha256 = "10a8vm0c3n5cili5nix6bdmiaxr69qisvk356pb81f2s8bgq40bm"; })
-  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
   (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
-  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
   (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
-  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; })
   (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
-  (fetchNuGet { pname = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
   (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
   (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.1"; sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; })
   (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "5.0.0"; sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x"; })
   (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "6.0.0"; sha256 = "0qm741kh4rh57wky16sq4m0v05fxmkjjr87krycf5vp9f0zbahbc"; })
-  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
   (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
-  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; })
   (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
-  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
   (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
-  (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.0.0"; sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6"; })
-  (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.0.1"; sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn"; })
   (fetchNuGet { pname = "System.Security.AccessControl"; version = "4.5.0"; sha256 = "1wvwanz33fzzbnd2jalar0p0z3x0ba53vzx1kazlskp7pwyhlnq0"; })
-  (fetchNuGet { pname = "System.Security.Claims"; version = "4.3.0"; sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.2.0"; sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.2.0"; sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.0.0"; sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.0.0"; sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.0.0"; sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.0.0"; sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.1.0"; sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh"; })
-  (fetchNuGet { pname = "System.Security.Principal"; version = "4.3.0"; sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf"; })
-  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.3.0"; sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr"; })
   (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.5.0"; sha256 = "0rmj89wsl5yzwh0kqjgx45vzf694v9p92r4x4q6yxldk1cv1hi86"; })
-  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
   (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
   (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.5.1"; sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w"; })
   (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "5.0.0"; sha256 = "1bn2pzaaq4wx9ixirr8151vm5hynn3lmrljcgjx9yghmm4k677k0"; })
   (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "8.0.0"; sha256 = "1lgdd78cik4qyvp2fggaa0kzxasw6kc9a6cjqw46siagrm0qnc3y"; })
-  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
   (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "6.0.0"; sha256 = "06n9ql3fmhpjl32g3492sj181zjml5dlcc5l76xq2h38c4f87sai"; })
   (fetchNuGet { pname = "System.Text.Json"; version = "6.0.0"; sha256 = "1si2my1g0q0qv1hiqnji4xh9wd05qavxnzj9dwgs23iqvgjky0gl"; })
-  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
-  (fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
   (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
-  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
   (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
-  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
   (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
-  (fetchNuGet { pname = "System.Threading.ThreadPool"; version = "4.3.0"; sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1"; })
-  (fetchNuGet { pname = "System.Threading.Timer"; version = "4.0.1"; sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6"; })
-  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
-  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
   (fetchNuGet { pname = "Tmds.DBus.Protocol"; version = "0.15.0"; sha256 = "0d99kcs7r9cp6gpyc7z230czkkyx4164x86dhy0mca73f2ykc2g2"; })
   (fetchNuGet { pname = "UnicornEngine.Unicorn"; version = "2.0.2-rc1-fb78016"; sha256 = "1r43b5fd5q8xq8b5nk11jsz2gnm96dh7sxc0rrv2p605ivz7icin"; })
 ]
diff --git a/pkgs/by-name/ry/ryujinx/package.nix b/pkgs/by-name/ry/ryujinx/package.nix
index 4740e943a524d..6687554744c21 100644
--- a/pkgs/by-name/ry/ryujinx/package.nix
+++ b/pkgs/by-name/ry/ryujinx/package.nix
@@ -26,13 +26,13 @@
 
 buildDotnetModule rec {
   pname = "ryujinx";
-  version = "1.1.1298"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
+  version = "1.1.1330"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
 
   src = fetchFromGitHub {
     owner = "Ryujinx";
     repo = "Ryujinx";
-    rev = "a23d8cb92f3f1bb8dc144f4d9fb3fddee749feae";
-    sha256 = "1vf4xwn1z7bfm7c49r2yydx3dqqzqwp0qgzq12m9yskqsj898d63";
+    rev = "c0f2491eaee7eb1088605f5bda8055b941a14f99";
+    sha256 = "0h6gkcgixxfrlcvwsfq6yrnscpqr00iyqc5pb1pyzjrxy6z5yb2v";
   };
 
   dotnet-sdk = dotnetCorePackages.sdk_8_0;
diff --git a/pkgs/by-name/s0/s0ix-selftest-tool/package.nix b/pkgs/by-name/s0/s0ix-selftest-tool/package.nix
index b55333e1ad034..1b782d8c59115 100644
--- a/pkgs/by-name/s0/s0ix-selftest-tool/package.nix
+++ b/pkgs/by-name/s0/s0ix-selftest-tool/package.nix
@@ -65,7 +65,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/intel/S0ixSelftestTool";
-    description = "A tool for testing the S2idle path CPU Package C-state and S0ix failures";
+    description = "Tool for testing the S2idle path CPU Package C-state and S0ix failures";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ adamcstephens ];
diff --git a/pkgs/by-name/s3/s3proxy/package.nix b/pkgs/by-name/s3/s3proxy/package.nix
index b2fd1b03a5ab9..72f18af79cc13 100644
--- a/pkgs/by-name/s3/s3proxy/package.nix
+++ b/pkgs/by-name/s3/s3proxy/package.nix
@@ -21,7 +21,7 @@ maven.buildMavenPackage {
     hash = "sha256-GhZPvo8wlXInHwg8rSmpwMMkZVw5SMpnZyKqFUYLbrE=";
   };
 
-  mvnParameters = lib.optionalString stdenv.isDarwin "-DskipTests";
+  doCheck = !stdenv.isDarwin;
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/by-name/sa/sabnzbd/package.nix b/pkgs/by-name/sa/sabnzbd/package.nix
index 99a8e66514f6d..5eac94f6aa6e7 100644
--- a/pkgs/by-name/sa/sabnzbd/package.nix
+++ b/pkgs/by-name/sa/sabnzbd/package.nix
@@ -48,14 +48,14 @@ let
   ]);
   path = lib.makeBinPath [ coreutils par2cmdline-turbo unrar unzip p7zip util-linux ];
 in stdenv.mkDerivation rec {
-  version = "4.3.1";
+  version = "4.3.2";
   pname = "sabnzbd";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-OlACGAYP4nMZZAVJduzj0AGTzSwM+lE7+H2xgmQVSWg=";
+    sha256 = "sha256-EJf5yTyGbWqS9qaCWdxnJqaSFzVu3h5N3CGGzAEsBtI=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/by-name/sa/salut/package.nix b/pkgs/by-name/sa/salut/package.nix
index 38bf028db0f3e..83818dae8bdcb 100644
--- a/pkgs/by-name/sa/salut/package.nix
+++ b/pkgs/by-name/sa/salut/package.nix
@@ -39,7 +39,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = {
-    description = "A sleek notification daemon for Wayland";
+    description = "Sleek notification daemon for Wayland";
     homepage = "https://gitlab.com/snakedye/salut/-/wikis/Home";
     license = lib.licenses.mpl20;
     maintainers = with lib.maintainers; [ eclairevoyant ];
diff --git a/pkgs/by-name/sa/samrewritten/package.nix b/pkgs/by-name/sa/samrewritten/package.nix
index 1cbaf4b79db81..375e3be3385a4 100644
--- a/pkgs/by-name/sa/samrewritten/package.nix
+++ b/pkgs/by-name/sa/samrewritten/package.nix
@@ -43,6 +43,6 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://github.com/PaulCombal/SamRewritten";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ ludovicopiero ];
-    platforms = lib.platforms.linux;
+    platforms = [ "x86_64-linux" ];
   };
 })
diff --git a/pkgs/by-name/sa/sarasa-gothic/package.nix b/pkgs/by-name/sa/sarasa-gothic/package.nix
index 9c77d1070ee66..ff1447e49203f 100644
--- a/pkgs/by-name/sa/sarasa-gothic/package.nix
+++ b/pkgs/by-name/sa/sarasa-gothic/package.nix
@@ -7,13 +7,13 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "sarasa-gothic";
-  version = "1.0.12";
+  version = "1.0.14";
 
   src = fetchurl {
     # Use the 'ttc' files here for a smaller closure size.
     # (Using 'ttf' files gives a closure size about 15x larger, as of November 2021.)
     url = "https://github.com/be5invis/Sarasa-Gothic/releases/download/v${finalAttrs.version}/Sarasa-TTC-${finalAttrs.version}.zip";
-    hash = "sha256-icZT/CEvCCbDTklcca3LjtX7wnvx35wg4RyK1jHDmwk=";
+    hash = "sha256-1LWooboM+vPbft1+Gvg9Cp24RFEeJPG4yvNiexRi/pg=";
   };
 
   sourceRoot = ".";
@@ -30,7 +30,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A CJK programming font based on Iosevka and Source Han Sans";
+    description = "CJK programming font based on Iosevka and Source Han Sans";
     homepage = "https://github.com/be5invis/Sarasa-Gothic";
     license = lib.licenses.ofl;
     maintainers = with lib.maintainers; [
diff --git a/pkgs/by-name/sa/sarif-fmt/package.nix b/pkgs/by-name/sa/sarif-fmt/package.nix
new file mode 100644
index 0000000000000..ad273bca0d64a
--- /dev/null
+++ b/pkgs/by-name/sa/sarif-fmt/package.nix
@@ -0,0 +1,58 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  rustPlatform,
+  clippy,
+  sarif-fmt,
+  testers,
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "sarif-fmt";
+  version = "0.4.2";
+
+  src = fetchFromGitHub {
+    owner = "psastras";
+    repo = "sarif-rs";
+    rev = "sarif-fmt-v${version}";
+    hash = "sha256-EzWzDeIeSJ11CVcVyAhMjYQJcKHnieRrFkULc5eXAno=";
+  };
+
+  cargoHash = "sha256-dHOxVLXtnqSHMX5r1wFxqogDf9QdnOZOjTyYFahru34=";
+  cargoBuildFlags = [
+    "--package"
+    "sarif-fmt"
+  ];
+  cargoTestFlags = cargoBuildFlags;
+
+  # `test_clippy` (the only test we enable) is broken on Darwin
+  # because `--enable-profiler` is not enabled in rustc on Darwin
+  # error[E0463]: can't find crate for profiler_builtins
+  doCheck = !stdenv.isDarwin;
+
+  nativeCheckInputs = [
+    # `test_clippy`
+    clippy
+  ];
+
+  checkFlags = [
+    # this test uses nix so...no go
+    "--skip=test_clang_tidy"
+    # ditto
+    "--skip=test_hadolint"
+    # ditto
+    "--skip=test_shellcheck"
+  ];
+
+  passthru = {
+    tests.version = testers.testVersion { package = sarif-fmt; };
+  };
+
+  meta = {
+    description = "A CLI tool to pretty print SARIF diagnostics";
+    homepage = "https://psastras.github.io/sarif-rs";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ getchoo ];
+    mainProgram = "sarif-fmt";
+  };
+}
diff --git a/pkgs/by-name/sa/satellite/package.nix b/pkgs/by-name/sa/satellite/package.nix
index 70b7f84c1290b..2eb747758bd18 100644
--- a/pkgs/by-name/sa/satellite/package.nix
+++ b/pkgs/by-name/sa/satellite/package.nix
@@ -43,7 +43,7 @@ python3.pkgs.buildPythonApplication rec {
   strictDeps = true;
 
   meta = with lib; {
-    description = "A program for showing navigation satellite data";
+    description = "Program for showing navigation satellite data";
     longDescription = ''
       Satellite is an adaptive GTK3 / libhandy application which displays global navigation satellite system (GNSS: GPS et al.) data obtained from ModemManager or gnss-share.
       It can also save your position to a GPX-file.
diff --git a/pkgs/by-name/sa/satty/package.nix b/pkgs/by-name/sa/satty/package.nix
index be27d9b8cd998..db708a46ed014 100644
--- a/pkgs/by-name/sa/satty/package.nix
+++ b/pkgs/by-name/sa/satty/package.nix
@@ -16,16 +16,16 @@
 rustPlatform.buildRustPackage rec {
 
   pname = "satty";
-  version = "0.12.0";
+  version = "0.12.1";
 
   src = fetchFromGitHub {
     owner = "gabm";
     repo = "Satty";
     rev = "v${version}";
-    hash = "sha256-yidnpgUwfbaKmWznjN+TkF6ww/gVLDXFjQ0cIAQ4qFM=";
+    hash = "sha256-4upjVP7DEWD76wycmCQxl86nsJYI0+V7dSThRFJu9Ds=";
   };
 
-  cargoHash = "sha256-GP7Bu11xim9lAfdhgm+MAxBghd5taA+Q0cWCbI8OxEM=";
+  cargoHash = "sha256-z2hRSGAwCI6DiXP87OzyyhJYjdB/7hSxYlUsKij1WQk=";
 
   nativeBuildInputs = [
     copyDesktopItems
@@ -55,7 +55,7 @@ rustPlatform.buildRustPackage rec {
   desktopItems = [ "satty.desktop" ];
 
   meta = with lib; {
-    description = "A screenshot annotation tool inspired by Swappy and Flameshot";
+    description = "Screenshot annotation tool inspired by Swappy and Flameshot";
     homepage = "https://github.com/gabm/Satty";
     license = licenses.mpl20;
     maintainers = with maintainers; [ pinpox donovanglover ];
diff --git a/pkgs/by-name/sc/scc/package.nix b/pkgs/by-name/sc/scc/package.nix
index 5895b2f0b4551..8d3f65e1621c9 100644
--- a/pkgs/by-name/sc/scc/package.nix
+++ b/pkgs/by-name/sc/scc/package.nix
@@ -5,13 +5,13 @@
 }:
 buildGoModule rec {
   pname = "scc";
-  version = "3.3.3";
+  version = "3.3.4";
 
   src = fetchFromGitHub {
     owner = "boyter";
     repo = "scc";
     rev = "v${version}";
-    hash = "sha256-YbTPRUxkSKYZwOSK7XFr6wHqACp0rkFyzQCMcAFlZ7Y=";
+    hash = "sha256-mKKUFW01WVBNfy6z4v3y+yu9DJuLZkQSWpekzmVuMn0=";
   };
 
   vendorHash = null;
@@ -21,7 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/boyter/scc";
-    description = "A very fast accurate code counter with complexity calculations and COCOMO estimates written in pure Go";
+    description = "Very fast accurate code counter with complexity calculations and COCOMO estimates written in pure Go";
     maintainers = with maintainers; [
       sigma
       Br1ght0ne
diff --git a/pkgs/by-name/sc/scdoc/package.nix b/pkgs/by-name/sc/scdoc/package.nix
index 5ad6fb3dbaf4b..1d1f63963f7e9 100644
--- a/pkgs/by-name/sc/scdoc/package.nix
+++ b/pkgs/by-name/sc/scdoc/package.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation (finalAttrs: {
   doCheck = true;
 
   meta = {
-    description = "A simple man page generator written in C99 for POSIX systems";
+    description = "Simple man page generator written in C99 for POSIX systems";
     homepage = "https://git.sr.ht/~sircmpwn/scdoc";
     changelog = "https://git.sr.ht/~sircmpwn/scdoc/refs/${finalAttrs.src.rev}";
     license = lib.licenses.mit;
diff --git a/pkgs/by-name/sc/scenefx/package.nix b/pkgs/by-name/sc/scenefx/package.nix
index c9b50e5af047b..ee92339b9a1fd 100644
--- a/pkgs/by-name/sc/scenefx/package.nix
+++ b/pkgs/by-name/sc/scenefx/package.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
 
   meta = {
-    description = "A drop-in replacement for the wlroots scene API that allows wayland compositors to render surfaces with eye-candy effects";
+    description = "Drop-in replacement for the wlroots scene API that allows wayland compositors to render surfaces with eye-candy effects";
     homepage = "https://github.com/wlrfx/scenefx";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ eclairevoyant ];
diff --git a/pkgs/by-name/sc/scion/package.nix b/pkgs/by-name/sc/scion/package.nix
index 9044dc44f2a52..830f6deb232f1 100644
--- a/pkgs/by-name/sc/scion/package.nix
+++ b/pkgs/by-name/sc/scion/package.nix
@@ -1,7 +1,6 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
-, fetchpatch2
 , nixosTests
 }:
 let
@@ -41,7 +40,7 @@ buildGoModule {
   };
 
   meta = with lib; {
-    description = "A future Internet architecture utilizing path-aware networking";
+    description = "Future Internet architecture utilizing path-aware networking";
     homepage = "https://scion-architecture.net/";
     platforms = platforms.unix;
     license = licenses.asl20;
diff --git a/pkgs/by-name/sc/scope-tui/package.nix b/pkgs/by-name/sc/scope-tui/package.nix
index 850036fd89adc..2cd6569a4bcbe 100644
--- a/pkgs/by-name/sc/scope-tui/package.nix
+++ b/pkgs/by-name/sc/scope-tui/package.nix
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage {
   buildInputs = [ libpulseaudio ];
 
   meta = with lib; {
-    description = "A simple oscilloscope/vectorscope/spectroscope for your terminal";
+    description = "Simple oscilloscope/vectorscope/spectroscope for your terminal";
     homepage = "https://github.com/alemidev/scope-tui";
     license = licenses.mit;
     maintainers = with maintainers; [ iynaix ];
diff --git a/pkgs/by-name/sc/screentest/package.nix b/pkgs/by-name/sc/screentest/package.nix
index 8efba0354e5fd..6d671f608903d 100644
--- a/pkgs/by-name/sc/screentest/package.nix
+++ b/pkgs/by-name/sc/screentest/package.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A simple screen testing tool";
+    description = "Simple screen testing tool";
     mainProgram = "screentest";
     homepage = "https://github.com/TobiX/screentest";
     changelog = "https://github.com/TobiX/screentest/blob/${finalAttrs.src.rev}/NEWS";
diff --git a/pkgs/by-name/sc/scrutiny-collector/package.nix b/pkgs/by-name/sc/scrutiny-collector/package.nix
index f7e7a00267c81..b0efd81f76fae 100644
--- a/pkgs/by-name/sc/scrutiny-collector/package.nix
+++ b/pkgs/by-name/sc/scrutiny-collector/package.nix
@@ -45,7 +45,7 @@ buildGoModule rec {
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "Hard disk metrics collector for Scrutiny.";
+    description = "Hard disk metrics collector for Scrutiny";
     homepage = "https://github.com/AnalogJ/scrutiny";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ jnsgruk ];
diff --git a/pkgs/by-name/sc/scrutiny/package.nix b/pkgs/by-name/sc/scrutiny/package.nix
index 179365c49dfed..98a1f0be8083f 100644
--- a/pkgs/by-name/sc/scrutiny/package.nix
+++ b/pkgs/by-name/sc/scrutiny/package.nix
@@ -62,7 +62,7 @@ buildGoModule rec {
   passthru.updatescript = nix-update-script { };
 
   meta = {
-    description = "Hard Drive S.M.A.R.T Monitoring, Historical Trends & Real World Failure Thresholds.";
+    description = "Hard Drive S.M.A.R.T Monitoring, Historical Trends & Real World Failure Thresholds";
     homepage = "https://github.com/AnalogJ/scrutiny";
     changelog = "https://github.com/AnalogJ/scrutiny/releases/tag/v${version}";
     license = lib.licenses.mit;
diff --git a/pkgs/by-name/sd/SDL2_Pango/package.nix b/pkgs/by-name/sd/SDL2_Pango/package.nix
index e81d392ca6d61..9fbee142d6b9c 100644
--- a/pkgs/by-name/sd/SDL2_Pango/package.nix
+++ b/pkgs/by-name/sd/SDL2_Pango/package.nix
@@ -1,48 +1,50 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, autoreconfHook
-, pkg-config
-, freetype
-, pango
-, SDL2
-, darwin
+{
+  lib,
+  SDL2,
+  autoreconfHook,
+  darwin,
+  fetchFromGitHub,
+  freetype,
+  pango,
+  pkg-config,
+  stdenv,
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "sdl2-pango";
   version = "2.1.5";
 
   src = fetchFromGitHub {
     owner = "markuskimius";
     repo = "SDL2_Pango";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     hash = "sha256-8SL5ylxi87TuKreC8m2kxlLr8rcmwYYvwkp4vQZ9dkc=";
   };
 
-  outputs = [ "out" "dev" ];
-
-  strictDeps = true;
-
   nativeBuildInputs = [
+    SDL2
     autoreconfHook
     pkg-config
-    SDL2
   ];
 
   buildInputs = [
+    SDL2
     freetype
     pango
-    SDL2
   ] ++ lib.optionals stdenv.isDarwin [
     darwin.libobjc
   ];
 
-  meta = with lib; {
-    description = "A library for graphically rendering internationalized and tagged text in SDL2 using TrueType fonts";
+  outputs = [ "out" "dev" ];
+
+  strictDeps = true;
+
+  meta = {
     homepage = "https://github.com/markuskimius/SDL2_Pango";
-    license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ rardiol ];
-    platforms = platforms.all;
+    description = "Library for graphically rendering internationalized and tagged text in SDL2 using TrueType fonts";
+    license = lib.licenses.lgpl21Plus;
+    maintainers = lib.teams.sdl.members
+                  ++ (with lib.maintainers; [ rardiol ]);
+    inherit (SDL2.meta) platforms;
   };
-}
+})
diff --git a/pkgs/by-name/sd/SDL2_gfx/package.nix b/pkgs/by-name/sd/SDL2_gfx/package.nix
new file mode 100644
index 0000000000000..d74d859fefcbc
--- /dev/null
+++ b/pkgs/by-name/sd/SDL2_gfx/package.nix
@@ -0,0 +1,75 @@
+{ lib,
+  SDL2,
+  darwin,
+  fetchurl,
+  pkg-config,
+  stdenv,
+  testers,
+  # Boolean flags
+  enableMmx ? stdenv.hostPlatform.isx86,
+  enableSdltest ? (!stdenv.isDarwin),
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "SDL2_gfx";
+  version = "1.0.4";
+
+  src = fetchurl {
+    url = "http://www.ferzkopp.net/Software/SDL2_gfx/SDL2_gfx-${finalAttrs.version}.tar.gz";
+    hash = "sha256-Y+DgGt3tyd8vhbk6JI8G6KBK/6AUqDXC6jS/405XYmI=";
+  };
+
+  nativeBuildInputs = [
+    SDL2
+    pkg-config
+  ];
+
+  buildInputs = [
+    SDL2
+  ]
+  ++ lib.optionals stdenv.isDarwin [
+    darwin.libobjc
+  ];
+
+  outputs = [ "out" "dev" ];
+
+  configureFlags = [
+    (lib.enableFeature enableMmx "mmx")
+    (lib.enableFeature enableSdltest "sdltest")
+  ];
+
+  strictDeps = true;
+
+  passthru = {
+    tests.pkg-config = testers.hasPkgConfigModules {
+      package = finalAttrs.finalPackage;
+    };
+  };
+
+  meta = {
+    homepage = "http://www.ferzkopp.net/wordpress/2016/01/02/sdl_gfx-sdl2_gfx/";
+    description = "SDL graphics drawing primitives and support functions";
+    longDescription = ''
+      The SDL_gfx library evolved out of the SDL_gfxPrimitives code which
+      provided basic drawing routines such as lines, circles or polygons and
+      SDL_rotozoom which implemented a interpolating rotozoomer for SDL
+      surfaces.
+
+      The current components of the SDL_gfx library are:
+
+      - Graphic Primitives (SDL_gfxPrimitves.h)
+      - Rotozoomer (SDL_rotozoom.h)
+      - Framerate control (SDL_framerate.h)
+      - MMX image filters (SDL_imageFilter.h)
+      - Custom Blit functions (SDL_gfxBlitFunc.h)
+
+      The library is backwards compatible to the above mentioned code. Its is
+      written in plain C and can be used in C++ code.
+    '';
+    license = lib.licenses.zlib;
+    maintainers = lib.teams.sdl.members
+                  ++ (with lib.maintainers; [ ]);
+    pkgConfigModules = [ "SDL2_gfx" ];
+    inherit (SDL2.meta) platforms;
+  };
+})
diff --git a/pkgs/by-name/sd/SDL2_mixer/package.nix b/pkgs/by-name/sd/SDL2_mixer/package.nix
index c271614d8f5f8..976dc2f5fa924 100644
--- a/pkgs/by-name/sd/SDL2_mixer/package.nix
+++ b/pkgs/by-name/sd/SDL2_mixer/package.nix
@@ -14,6 +14,9 @@
   smpeg2,
   stdenv,
   timidity,
+  # Boolean flags
+  enableSdltest ? (!stdenv.isDarwin),
+  enableSmpegtest ? (!stdenv.isDarwin),
 }:
 
 let
@@ -66,8 +69,8 @@ stdenv.mkDerivation (finalAttrs: {
    (lib.enableFeature false "music-mp3-mpg123-shared")
    (lib.enableFeature false "music-opus-shared")
    (lib.enableFeature false "music-midi-fluidsynth-shared")
-   (lib.enableFeature (!stdenv.isDarwin) "sdltest")
-   (lib.enableFeature (!stdenv.isDarwin) "smpegtest")
+   (lib.enableFeature enableSdltest "sdltest")
+   (lib.enableFeature enableSmpegtest "smpegtest")
    # override default path to allow MIDI files to be played
    (lib.withFeatureAs true "timidity-cfg" "${timidity}/share/timidity/timidity.cfg")
   ];
@@ -76,7 +79,8 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://github.com/libsdl-org/SDL_mixer";
     description = "SDL multi-channel audio mixer library";
     license = lib.licenses.zlib;
-    maintainers = with lib.maintainers; [ AndersonTorres ];
+    maintainers = lib.teams.sdl.members
+                  ++ (with lib.maintainers; [ AndersonTorres ]);
     platforms = lib.platforms.unix;
   };
 })
diff --git a/pkgs/by-name/sd/SDL2_net/package.nix b/pkgs/by-name/sd/SDL2_net/package.nix
index 79e0e0098623d..0214e2cd5b4bb 100644
--- a/pkgs/by-name/sd/SDL2_net/package.nix
+++ b/pkgs/by-name/sd/SDL2_net/package.nix
@@ -44,7 +44,8 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://github.com/libsdl-org/SDL_net";
     description = "SDL multiplatform networking library";
     license = lib.licenses.zlib;
-    maintainers = with lib.maintainers; [ AndersonTorres ];
+    maintainers = lib.teams.sdl.members
+                  ++ (with lib.maintainers; [ ]);
     inherit (SDL2.meta) platforms;
   };
 })
diff --git a/pkgs/development/libraries/SDL2_sound/default.nix b/pkgs/by-name/sd/SDL2_sound/package.nix
index 056991c9aca45..14f57cb49eab1 100644
--- a/pkgs/development/libraries/SDL2_sound/default.nix
+++ b/pkgs/by-name/sd/SDL2_sound/package.nix
@@ -8,10 +8,15 @@
 , libmikmod
 , libvorbis
 , timidity
-, AudioToolbox
-, CoreAudio
+, darwin
 }:
 
+let
+  inherit (darwin.apple_sdk.frameworks)
+    AudioToolbox
+    CoreAudio
+  ;
+in
 stdenv.mkDerivation rec {
   pname = "SDL2_sound";
   version = "2.0.1";
diff --git a/pkgs/by-name/sd/SDL2_ttf/package.nix b/pkgs/by-name/sd/SDL2_ttf/package.nix
new file mode 100644
index 0000000000000..b4cda24402377
--- /dev/null
+++ b/pkgs/by-name/sd/SDL2_ttf/package.nix
@@ -0,0 +1,65 @@
+{
+  lib,
+  SDL2,
+  darwin,
+  fetchurl,
+  freetype,
+  harfbuzz,
+  libGL,
+  pkg-config,
+  stdenv,
+  testers,
+  # Boolean flags
+  enableSdltest ? (!stdenv.isDarwin),
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "SDL2_ttf";
+  version = "2.22.0";
+
+  src = fetchurl {
+    url = "https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-${finalAttrs.version}.tar.gz";
+    sha256 = "sha256-1Iy9HOR1ueF4IGvzty1Wtm2E1E9krAWAMyg5YjTWdyM=";
+  };
+
+  nativeBuildInputs = [
+    SDL2
+    pkg-config
+  ];
+
+  buildInputs = [
+    SDL2
+    freetype
+    harfbuzz
+  ]
+  ++ lib.optionals (!stdenv.isDarwin) [
+    libGL
+  ]
+  ++ lib.optionals stdenv.isDarwin [
+    darwin.libobjc
+  ];
+
+  configureFlags = [
+    (lib.enableFeature false "harfbuzz-builtin")
+    (lib.enableFeature false "freetype-builtin")
+    (lib.enableFeature enableSdltest "sdltest")
+  ];
+
+  strictDeps = true;
+
+  passthru = {
+    tests.pkg-config = testers.hasPkgConfigModules {
+      package = finalAttrs.finalPackage;
+    };
+  };
+
+  meta = {
+    homepage = "https://github.com/libsdl-org/SDL_ttf";
+    description = "Support for TrueType (.ttf) font files with Simple Directmedia Layer";
+    license = lib.licenses.zlib;
+    maintainers = lib.teams.sdl.members
+                  ++ (with lib.maintainers; [ ]);
+    inherit (SDL2.meta) platforms;
+    pkgConfigModules = [ "SDL2_ttf" ];
+  };
+})
diff --git a/pkgs/development/libraries/SDL_Pango/fixes.patch b/pkgs/by-name/sd/SDL_Pango/0001-fixes.patch
index 9703c0d4918f5..9703c0d4918f5 100644
--- a/pkgs/development/libraries/SDL_Pango/fixes.patch
+++ b/pkgs/by-name/sd/SDL_Pango/0001-fixes.patch
diff --git a/pkgs/by-name/sd/SDL_Pango/package.nix b/pkgs/by-name/sd/SDL_Pango/package.nix
new file mode 100644
index 0000000000000..8c4160d98684a
--- /dev/null
+++ b/pkgs/by-name/sd/SDL_Pango/package.nix
@@ -0,0 +1,57 @@
+{
+  lib,
+  SDL,
+  autoreconfHook,
+  fetchpatch,
+  fetchurl,
+  pango,
+  pkg-config,
+  stdenv,
+  # Boolean flags
+  enableSdltest ? (!stdenv.isDarwin),
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "SDL_Pango";
+  version = "0.1.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/sdlpango/SDL_Pango-${finalAttrs.version}.tar.gz";
+    hash = "sha256-f3XTuXrPcHxpbqEmQkkGIE6/oHZgFi3pJRc83QJX66Q=";
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "0000-api_additions.patch";
+      url = "https://sources.debian.org/data/main/s/sdlpango/0.1.2-6/debian/patches/api_additions.patch";
+      hash = "sha256-jfr+R4tIVZfYoaY4i+aNSGLwJGEipnuKqD2O9orP5QI=";
+    })
+    ./0001-fixes.patch
+  ];
+
+  nativeBuildInputs = [
+    SDL
+    autoreconfHook
+    pkg-config
+  ];
+
+  buildInputs = [
+    SDL
+    pango
+  ];
+
+  configureFlags = [
+    (lib.enableFeature enableSdltest "sdltest")
+  ];
+
+  strictDeps = true;
+
+  meta = {
+    homepage = "https://sdlpango.sourceforge.net/";
+    description = "Connects the Pango rendering engine to SDL";
+    license = lib.licenses.lgpl21Plus;
+    maintainers = lib.teams.sdl.members
+                  ++ (with lib.maintainers; [ puckipedia ]);
+    inherit (SDL.meta) platforms;
+  };
+})
diff --git a/pkgs/by-name/sd/SDL_audiolib/package.nix b/pkgs/by-name/sd/SDL_audiolib/package.nix
new file mode 100644
index 0000000000000..af84b5c0d0dc5
--- /dev/null
+++ b/pkgs/by-name/sd/SDL_audiolib/package.nix
@@ -0,0 +1,59 @@
+{
+  lib,
+  SDL2,
+  cmake,
+  fetchFromGitHub,
+  pkg-config,
+  stdenv,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "SDL_audiolib";
+  version = "0-unstable-2022-04-17";
+
+  src = fetchFromGitHub {
+    owner = "realnc";
+    repo = "SDL_audiolib";
+    rev = "908214606387ef8e49aeacf89ce848fb36f694fc";
+    hash = "sha256-11KkwIhG1rX7yDFSj92NJRO9L2e7XZGq2gOJ54+sN/A=";
+  };
+
+  nativeBuildInputs = [
+    SDL2
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    SDL2
+  ];
+
+  strictDeps = true;
+
+  cmakeFlags = [
+    (lib.cmakeBool "USE_DEC_ADLMIDI" false)
+    (lib.cmakeBool "USE_DEC_BASSMIDI" false)
+    (lib.cmakeBool "USE_DEC_DRFLAC" false)
+    (lib.cmakeBool "USE_DEC_FLUIDSYNTH" false)
+    (lib.cmakeBool "USE_DEC_LIBOPUSFILE" false)
+    (lib.cmakeBool "USE_DEC_LIBVORBIS" false)
+    (lib.cmakeBool "USE_DEC_MODPLUG" false)
+    (lib.cmakeBool "USE_DEC_MPG123" false)
+    (lib.cmakeBool "USE_DEC_MUSEPACK" false)
+    (lib.cmakeBool "USE_DEC_OPENMPT" false)
+    (lib.cmakeBool "USE_DEC_SNDFILE" false)
+    (lib.cmakeBool "USE_DEC_WILDMIDI" false)
+    (lib.cmakeBool "USE_DEC_XMP" false)
+    (lib.cmakeBool "USE_RESAMP_SOXR" false)
+    (lib.cmakeBool "USE_RESAMP_SRC" false)
+  ];
+
+  meta = {
+    description = "Audio decoding, resampling and mixing library for SDL";
+    homepage = "https://github.com/realnc/SDL_audiolib";
+    license = lib.licenses.lgpl3Plus;
+    maintainers = lib.teams.sdl.members
+                  ++ (with lib.maintainers; [ ]);
+    inherit (SDL2.meta) platforms;
+  };
+})
diff --git a/pkgs/by-name/sd/SDL_gfx/package.nix b/pkgs/by-name/sd/SDL_gfx/package.nix
new file mode 100644
index 0000000000000..558e1943a14b6
--- /dev/null
+++ b/pkgs/by-name/sd/SDL_gfx/package.nix
@@ -0,0 +1,58 @@
+{
+  lib,
+  SDL,
+  fetchurl,
+  stdenv,
+  # Boolean flags
+  enableSdltest ? (!stdenv.isDarwin),
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "SDL_gfx";
+  version = "2.0.27";
+
+  src = fetchurl {
+    url = "https://www.ferzkopp.net/Software/SDL_gfx-2.0/SDL_gfx-${finalAttrs.version}.tar.gz";
+    hash = "sha256-37FaxfjOeklS3BLSrtl0dRjF5rM1wOMWNtI/k8Yw9Bk=";
+  };
+
+  nativeBuildInputs = [ SDL ];
+
+  buildInputs = [ SDL ];
+
+  # SDL_gfx.pc refers to sdl.pc and some SDL_gfx headers import SDL.h
+  propagatedBuildInputs = [ SDL ];
+
+  configureFlags = [
+    (lib.enableFeature false "mmx")
+    (lib.enableFeature enableSdltest "sdltest")
+  ];
+
+  strictDeps = true;
+
+  meta = {
+    homepage = "https://sourceforge.net/projects/sdlgfx/";
+    description = "SDL graphics drawing primitives and support functions";
+    longDescription = ''
+      The SDL_gfx library evolved out of the SDL_gfxPrimitives code which
+      provided basic drawing routines such as lines, circles or polygons and
+      SDL_rotozoom which implemented a interpolating rotozoomer for SDL
+      surfaces.
+
+      The current components of the SDL_gfx library are:
+
+      - Graphic Primitives (SDL_gfxPrimitves.h)
+      - Rotozoomer (SDL_rotozoom.h)
+      - Framerate control (SDL_framerate.h)
+      - MMX image filters (SDL_imageFilter.h)
+      - Custom Blit functions (SDL_gfxBlitFunc.h)
+
+      The library is backwards compatible to the above mentioned code. Its is
+      written in plain C and can be used in C++ code.
+    '';
+    license = lib.licenses.zlib;
+    maintainers = lib.teams.sdl.members
+                  ++ (with lib.maintainers; [ ]);
+    inherit (SDL.meta) platforms;
+  };
+})
diff --git a/pkgs/by-name/sd/SDL_gpu/package.nix b/pkgs/by-name/sd/SDL_gpu/package.nix
new file mode 100644
index 0000000000000..5165099d44887
--- /dev/null
+++ b/pkgs/by-name/sd/SDL_gpu/package.nix
@@ -0,0 +1,52 @@
+{
+  lib,
+  SDL2,
+  cmake,
+  fetchFromGitHub,
+  libGLU,
+  pkg-config,
+  stdenv,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "SDL_gpu";
+  version = "0-unstable-2022-06-24";
+
+  src = fetchFromGitHub {
+    owner = "grimfang4";
+    repo = "sdl-gpu";
+    rev = "e8ee3522ba0dbe72ca387d978e5f49a9f31e7ba0";
+    hash = "sha256-z1ZuHh9hvno2h+kCKfe+uWa/S6/OLZWWgLZ0zs9HetQ=";
+  };
+
+  nativeBuildInputs = [
+    SDL2
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    SDL2
+    libGLU
+  ];
+
+  cmakeFlags = [
+    (lib.cmakeBool "SDL_gpu_BUILD_DEMOS" false)
+    (lib.cmakeBool "SDL_gpu_BUILD_TOOLS" false)
+    (lib.cmakeBool "SDL_gpu_BUILD_VIDEO_TEST" false)
+    (lib.cmakeBool "SDL_gpu_BUILD_TESTS" false)
+  ];
+
+  outputs = [ "out" "dev" ];
+
+  strictDeps = true;
+
+  meta = {
+    description = "Library for high-performance, modern 2D graphics with SDL written in C";
+    homepage = "https://grimfang4.github.io/sdl-gpu";
+    license = lib.licenses.mit;
+    maintainers = lib.teams.sdl.members
+                  ++ (with lib.maintainers; [ ]);
+    inherit (SDL2.meta) platforms;
+  };
+})
diff --git a/pkgs/by-name/sd/SDL_image/package.nix b/pkgs/by-name/sd/SDL_image/package.nix
new file mode 100644
index 0000000000000..c49e195f970ff
--- /dev/null
+++ b/pkgs/by-name/sd/SDL_image/package.nix
@@ -0,0 +1,69 @@
+{
+  lib,
+  SDL,
+  fetchpatch,
+  fetchurl,
+  giflib,
+  libXpm,
+  libjpeg,
+  libpng,
+  libtiff,
+  pkg-config,
+  stdenv,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "SDL_image";
+  version = "1.2.12";
+
+  src = fetchurl {
+    url = "https://www.libsdl.org/projects/SDL_image/release/SDL_image-${finalAttrs.version}.tar.gz";
+    hash = "sha256-C5ByKYRWEATehIR3RNVmgJ27na9zKp5QO5GhtahOVpk=";
+  };
+
+  patches = [
+    # Fixed security vulnerability in XCF image loader
+    (fetchpatch {
+      name = "CVE-2017-2887";
+      url = "https://github.com/libsdl-org/SDL_image/commit/e7723676825cd2b2ffef3316ec1879d7726618f2.patch";
+      includes = [ "IMG_xcf.c" ];
+      hash = "sha256-Z0nyEtE1LNGsGsN9SFG8ZyPDdunmvg81tUnEkrJQk5w=";
+    })
+  ];
+
+  configureFlags = [
+    # Disable dynamic loading or else dlopen will fail because of no proper
+    # rpath
+    (lib.enableFeature false "jpg-shared")
+    (lib.enableFeature false "png-shared")
+    (lib.enableFeature false "tif-shared")
+    (lib.enableFeature (!stdenv.isDarwin) "sdltest")
+  ];
+
+  nativeBuildInputs = [
+    SDL
+    pkg-config
+  ];
+
+  buildInputs = [
+    SDL
+    giflib
+    libXpm
+    libjpeg
+    libpng
+    libtiff
+  ];
+
+  outputs = [ "out" "dev" ];
+
+  strictDeps = true;
+
+  meta = {
+    homepage = "http://www.libsdl.org/projects/SDL_image/";
+    description = "SDL image library";
+    license = lib.licenses.zlib;
+    maintainers = lib.teams.sdl.members
+                  ++ (with lib.maintainers; [ ]);
+    inherit (SDL.meta) platforms;
+  };
+})
diff --git a/pkgs/development/libraries/SDL_mixer/default.nix b/pkgs/by-name/sd/SDL_mixer/package.nix
index 12b50cd476ba9..470bd5559d7c1 100644
--- a/pkgs/development/libraries/SDL_mixer/default.nix
+++ b/pkgs/by-name/sd/SDL_mixer/package.nix
@@ -1,16 +1,28 @@
-{ stdenv, lib, fetchurl, fetchpatch
-, SDL, libogg, libvorbis, smpeg, libmikmod
-, fluidsynth, pkg-config
-, enableNativeMidi ? false
+{
+  lib,
+  SDL,
+  fetchpatch,
+  fetchurl,
+  fluidsynth,
+  libmikmod,
+  libogg,
+  libvorbis,
+  pkg-config,
+  smpeg,
+  stdenv,
+  # Boolean flags
+  enableNativeMidi ? false,
+  enableSdltest ? (!stdenv.isDarwin),
+  enableSmpegtest ? (!stdenv.isDarwin),
 }:
 
-stdenv.mkDerivation rec {
-  pname   = "SDL_mixer";
+stdenv.mkDerivation (finalAttrs: {
+  pname = "SDL_mixer";
   version = "1.2.12";
 
   src = fetchurl {
-    url    = "http://www.libsdl.org/projects/${pname}/release/${pname}-${version}.tar.gz";
-    sha256 = "0alrhqgm40p4c92s26mimg9cm1y7rzr6m0p49687jxd9g6130i0n";
+    url = "http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-${finalAttrs.version}.tar.gz";
+    hash = "sha256-FkQwgnmpdXmQSeSCavLPx4fK0quxGqFFYuQCUh+GmSo=";
   };
 
   patches = [
@@ -31,7 +43,7 @@ stdenv.mkDerivation rec {
     (fetchpatch {
       name = "mikmod-fixes.patch";
       url = "https://github.com/libsdl-org/SDL_mixer/commit/a3e5ff8142cf3530cddcb27b58f871f387796ab6.patch";
-      hash = "sha256-dqD8hxx6U2HaelUx0WsGPiWuso++LjwasaAeTTGqdbk";
+      hash = "sha256-dqD8hxx6U2HaelUx0WsGPiWuso++LjwasaAeTTGqdbk=";
     })
     # More incompatible function pointer conversion fixes (this time in Vorbis-decoding code).
     (fetchpatch {
@@ -51,18 +63,39 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ SDL libogg libvorbis fluidsynth smpeg libmikmod ];
+  nativeBuildInputs = [
+    SDL
+    pkg-config
+    smpeg
+  ];
+
+  buildInputs = [
+    SDL
+    fluidsynth
+    libmikmod
+    libogg
+    libvorbis
+    smpeg
+  ];
+
+  configureFlags = [
+    (lib.enableFeature false "music-ogg-shared")
+    (lib.enableFeature false "music-mod-shared")
+    (lib.enableFeature enableNativeMidi "music-native-midi-gpl")
+    (lib.enableFeature enableSdltest "sdltest")
+    (lib.enableFeature enableSmpegtest "smpegtest")
+  ];
+
+  outputs = [ "out" "dev" ];
 
-  configureFlags = [ "--disable-music-ogg-shared" "--disable-music-mod-shared" ]
-    ++ lib.optional enableNativeMidi " --enable-music-native-midi-gpl"
-    ++ lib.optionals stdenv.isDarwin [ "--disable-sdltest" "--disable-smpegtest" ];
+  strictDeps = true;
 
-  meta = with lib; {
+  meta = {
     description = "SDL multi-channel audio mixer library";
-    homepage    = "http://www.libsdl.org/projects/SDL_mixer/";
-    maintainers = with maintainers; [ lovek323 ];
-    platforms   = platforms.unix;
-    license     = licenses.zlib;
+    homepage = "http://www.libsdl.org/projects/SDL_mixer/";
+    maintainers = lib.teams.sdl.members
+                  ++ (with lib.maintainers; [ ]);
+    license = lib.licenses.zlib;
+    inherit (SDL.meta) platforms;
   };
-}
+})
diff --git a/pkgs/by-name/sd/SDL_net/package.nix b/pkgs/by-name/sd/SDL_net/package.nix
new file mode 100644
index 0000000000000..4d45ff624e8f9
--- /dev/null
+++ b/pkgs/by-name/sd/SDL_net/package.nix
@@ -0,0 +1,43 @@
+{
+  lib,
+  SDL,
+  fetchurl,
+  pkg-config,
+  stdenv,
+  # Boolean flags
+  enableSdltest ? (!stdenv.isDarwin)
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "SDL_net";
+  version = "1.2.8";
+
+  src = fetchurl {
+    url = "http://www.libsdl.org/projects/SDL_net/release/SDL_net-${finalAttrs.version}.tar.gz";
+    hash = "sha256-X0p6i7iE95PCeKw/NxO+QZgMXu3M7P8CYEETR3FPrLQ=";
+  };
+
+  nativeBuildInputs = [
+    SDL
+    pkg-config
+  ];
+
+  propagatedBuildInputs = [
+    SDL
+  ];
+
+  configureFlags = [
+    (lib.enableFeature enableSdltest "sdltest")
+  ];
+
+  strictDeps = true;
+
+  meta = {
+    homepage = "https://github.com/libsdl-org/SDL_net";
+    description = "SDL networking library";
+    license = lib.licenses.zlib;
+    maintainers =  lib.teams.sdl.members
+                   ++ (with lib.maintainers; [ ]);
+    inherit (SDL.meta) platforms;
+  };
+})
diff --git a/pkgs/by-name/sd/SDL_sixel/package.nix b/pkgs/by-name/sd/SDL_sixel/package.nix
new file mode 100644
index 0000000000000..e7fd400b57339
--- /dev/null
+++ b/pkgs/by-name/sd/SDL_sixel/package.nix
@@ -0,0 +1,39 @@
+{
+  lib,
+  fetchFromGitHub,
+  libsixel,
+  pkg-config,
+  stdenv,
+}:
+
+stdenv.mkDerivation {
+  pname = "SDL_sixel";
+  version = "0-unstable-2016-02-06";
+
+  src = fetchFromGitHub {
+    owner = "saitoha";
+    repo = "SDL1.2-SIXEL";
+    rev = "ab3fccac6e34260a617be511bd8c2b2beae41952";
+    hash = "sha256-l5eLnfV2ozAlfiTo2pr0a2BXv/pwfpX4pycw1Z7doj4=";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ libsixel ];
+
+  configureFlags = [
+    (lib.enableFeature true "video-sixel")
+  ];
+
+  strictDeps = true;
+
+  meta = {
+    homepage = "https://github.com/saitoha/SDL1.2-SIXEL";
+    description = "SDL 1.2 patched with libsixel support";
+    license = lib.licenses.lgpl21;
+    mainProgram = "sdl-config";
+    maintainers = lib.teams.sdl.members
+                  ++ (with lib.maintainers; [ vrthra ]);
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/sd/SDL_sound/package.nix b/pkgs/by-name/sd/SDL_sound/package.nix
new file mode 100644
index 0000000000000..b5e93b3efdf27
--- /dev/null
+++ b/pkgs/by-name/sd/SDL_sound/package.nix
@@ -0,0 +1,48 @@
+{
+  lib,
+  SDL,
+  fetchurl,
+  flac,
+  libmikmod,
+  libvorbis,
+  stdenv,
+  # Boolean flags
+  enableSdltest ? (!stdenv.isDarwin)
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "SDL_sound";
+  version = "1.0.3";
+
+  src = fetchurl {
+    url = "https://icculus.org/SDL_sound/downloads/SDL_sound-${finalAttrs.version}.tar.gz";
+    hash = "sha256-OZn9C7tIUomlK+FLL2i1ccuE44DMQzh+rfd49kx55t8=";
+  };
+
+  nativeBuildInputs = [
+    SDL
+  ];
+
+  buildInputs = [
+    SDL
+    flac
+    libmikmod
+    libvorbis
+  ];
+
+  configureFlags = [
+    (lib.enableFeature enableSdltest "--disable-sdltest")
+  ];
+
+  strictDeps = true;
+
+  meta = {
+    homepage = "https://www.icculus.org/SDL_sound/";
+    description = "SDL sound library";
+    license = lib.licenses.lgpl21Plus;
+    maintainers = lib.teams.sdl.members
+                  ++ (with lib.maintainers; [ ]);
+    mainProgram = "playsound";
+    inherit (SDL.meta) platforms;
+  };
+})
diff --git a/pkgs/by-name/sd/SDL_stretch/package.nix b/pkgs/by-name/sd/SDL_stretch/package.nix
new file mode 100644
index 0000000000000..f7267b86fd6d6
--- /dev/null
+++ b/pkgs/by-name/sd/SDL_stretch/package.nix
@@ -0,0 +1,31 @@
+{
+  lib,
+  SDL,
+  fetchurl,
+  stdenv,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "SDL_stretch";
+  version = "0.3.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/sdl-stretch/${finalAttrs.version}/SDL_stretch-${finalAttrs.version}.tar.bz2";
+    hash = "sha256-fL8L+rAMPt1uceGH0qLEgncEh4DiySQIuqt7YjUy/Nc=";
+  };
+
+  nativeBuildInputs = [ SDL ];
+
+  buildInputs = [ SDL ];
+
+  strictDeps = true;
+
+  meta = {
+     homepage = "https://sdl-stretch.sourceforge.net/";
+     description = "Stretch Functions For SDL";
+     license = lib.licenses.lgpl2;
+     maintainers = lib.teams.sdl.members
+                  ++ (with lib.maintainers; [ ]);
+     inherit (SDL.meta) platforms;
+  };
+})
diff --git a/pkgs/by-name/sd/SDL_ttf/package.nix b/pkgs/by-name/sd/SDL_ttf/package.nix
new file mode 100644
index 0000000000000..a44aeaa7f05b2
--- /dev/null
+++ b/pkgs/by-name/sd/SDL_ttf/package.nix
@@ -0,0 +1,55 @@
+{
+  lib,
+  SDL,
+  fetchpatch,
+  fetchurl,
+  freetype,
+  stdenv,
+  # Boolean flags
+  enableSdltest ? (!stdenv.isDarwin),
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "SDL_ttf";
+  version = "2.0.11";
+
+  src = fetchurl {
+    url = "https://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-${finalAttrs.version}.tar.gz";
+    hash = "sha256-ckzYlez02jGaPvFkiStyB4vZJjKl2BIREmHN4kjrzbc=";
+  };
+
+  patches = [
+    # Bug #830: TTF_RenderGlyph_Shaded is broken
+    (fetchpatch {
+      url = "https://bugzilla-attachments.libsdl.org/attachments/830/renderglyph_shaded.patch.txt";
+      hash = "sha256-TZzlZe7gCRA8wZDHQZsqESAOGbLpJzIoB0HD8L6z3zE=";
+    })
+  ];
+
+  patchFlags = [ "-p0" ];
+
+  buildInputs = [
+    SDL
+    freetype
+  ];
+
+  nativeBuildInputs = [
+    SDL
+    freetype
+  ];
+
+  configureFlags = [
+    (lib.enableFeature enableSdltest "-sdltest")
+  ];
+
+  strictDeps = true;
+
+  meta = {
+    homepage = "https://github.com/libsdl-org/SDL_ttf";
+    description = "SDL TrueType library";
+    license = lib.licenses.zlib;
+    maintainers = lib.teams.sdl.members
+                  ++ (with lib.maintainers; [ ]);
+    inherit (SDL.meta) platforms;
+  };
+})
diff --git a/pkgs/by-name/se/searxng/package.nix b/pkgs/by-name/se/searxng/package.nix
index 2fdf2e8b92843..4270088a5d293 100644
--- a/pkgs/by-name/se/searxng/package.nix
+++ b/pkgs/by-name/se/searxng/package.nix
@@ -1,79 +1,97 @@
-{ lib
-, python3
-, fetchFromGitHub
+{
+  lib,
+  python3,
+  fetchFromGitHub,
+  nixosTests
 }:
 
-python3.pkgs.toPythonModule (python3.pkgs.buildPythonApplication rec {
-  pname = "searxng";
-  version = "0-unstable-2024-03-08";
+python3.pkgs.toPythonModule (
+  python3.pkgs.buildPythonApplication rec {
+    pname = "searxng";
+    version = "0-unstable-2024-06-19";
 
-  src = fetchFromGitHub {
-    owner = "searxng";
-    repo = "searxng";
-    rev = "9c08a0cdddae7ceafbe5e00ce94cf7f1d36c97e0";
-    hash = "sha256-0qlOpJqpOmseIeIafd0NLd2lF5whu18QxmwOua8dKzg=";
-  };
+    src = fetchFromGitHub {
+      owner = "searxng";
+      repo = "searxng";
+      rev = "acf3f109b2a99a5e6f25f5f2975016a36673c6ef";
+      hash = "sha256-NdFnB5JEaWo7gt+RwxKxkVtEL8uGLlc4z0ROHN+zoL4=";
+    };
 
-  postPatch = ''
-    sed -i 's/==.*$//' requirements.txt
-  '';
+    postPatch = ''
+      sed -i 's/==.*$//' requirements.txt
+    '';
 
-  preBuild =
-    let
-      versionString = lib.concatStringsSep "." (builtins.tail (lib.splitString "-" (lib.removePrefix "0-" version)));
-      commitAbbrev = builtins.substring 0 8 src.rev;
-    in
-    ''
-      export SEARX_DEBUG="true";
+    preBuild =
+      let
+        versionString = lib.concatStringsSep "." (
+          builtins.tail (lib.splitString "-" (lib.removePrefix "0-" version))
+        );
+        commitAbbrev = builtins.substring 0 8 src.rev;
+      in
+      ''
+        export SEARX_DEBUG="true";
 
-      cat > searx/version_frozen.py <<EOF
-      VERSION_STRING="${versionString}+${commitAbbrev}"
-      VERSION_TAG="${versionString}+${commitAbbrev}"
-      DOCKER_TAG="${versionString}-${commitAbbrev}"
-      GIT_URL="https://github.com/searxng/searxng"
-      GIT_BRANCH="master"
-      EOF
-    '';
+        cat > searx/version_frozen.py <<EOF
+        VERSION_STRING="${versionString}+${commitAbbrev}"
+        VERSION_TAG="${versionString}+${commitAbbrev}"
+        DOCKER_TAG="${versionString}-${commitAbbrev}"
+        GIT_URL="https://github.com/searxng/searxng"
+        GIT_BRANCH="master"
+        EOF
+      '';
 
-  propagatedBuildInputs = with python3.pkgs; [
-    babel
-    certifi
-    python-dateutil
-    fasttext-predict
-    flask
-    flask-babel
-    brotli
-    jinja2
-    lxml
-    pygments
-    pytomlpp
-    pyyaml
-    redis
-    uvloop
-    setproctitle
-    httpx
-    httpx-socks
-    markdown-it-py
-  ] ++ httpx.optional-dependencies.http2
-  ++ httpx-socks.optional-dependencies.asyncio;
+    dependencies =
+      with python3.pkgs;
+      [
+        babel
+        certifi
+        python-dateutil
+        fasttext-predict
+        flask
+        flask-babel
+        brotli
+        jinja2
+        lxml
+        pygments
+        pytomlpp
+        pyyaml
+        redis
+        uvloop
+        setproctitle
+        httpx
+        httpx-socks
+        markdown-it-py
+      ]
+      ++ httpx.optional-dependencies.http2
+      ++ httpx-socks.optional-dependencies.asyncio;
 
-  # tests try to connect to network
-  doCheck = false;
+    # tests try to connect to network
+    doCheck = false;
 
-  postInstall = ''
-    # Create a symlink for easier access to static data
-    mkdir -p $out/share
-    ln -s ../${python3.sitePackages}/searx/static $out/share/
+    postInstall = ''
+      # Create a symlink for easier access to static data
+      mkdir -p $out/share
+      ln -s ../${python3.sitePackages}/searx/static $out/share/
+
+      # copy config schema for the limiter
+      cp searx/limiter.toml $out/${python3.sitePackages}/searx/limiter.toml
+    '';
 
-    # copy config schema for the limiter
-    cp searx/limiter.toml $out/${python3.sitePackages}/searx/limiter.toml
-  '';
+    passthru = {
+      tests = {
+        searxng = nixosTests.searx;
+      };
+    };
 
-  meta = with lib; {
-    homepage = "https://github.com/searxng/searxng";
-    description = "A fork of Searx, a privacy-respecting, hackable metasearch engine";
-    license = licenses.agpl3Plus;
-    mainProgram = "searxng-run";
-    maintainers = with maintainers; [ SuperSandro2000 _999eagle ];
-  };
-})
+    meta = with lib; {
+      homepage = "https://github.com/searxng/searxng";
+      description = "Fork of Searx, a privacy-respecting, hackable metasearch engine";
+      license = licenses.agpl3Plus;
+      mainProgram = "searxng-run";
+      maintainers = with maintainers; [
+        SuperSandro2000
+        _999eagle
+      ];
+    };
+  }
+)
diff --git a/pkgs/by-name/se/seclists/package.nix b/pkgs/by-name/se/seclists/package.nix
index 8bb86ce2e614f..7a149ca92a74e 100644
--- a/pkgs/by-name/se/seclists/package.nix
+++ b/pkgs/by-name/se/seclists/package.nix
@@ -5,13 +5,13 @@
 
 stdenvNoCC.mkDerivation {
   pname = "seclists";
-  version = "2024.1";
+  version = "2024.2";
 
   src = fetchFromGitHub {
     owner = "danielmiessler";
     repo = "SecLists";
-    rev = "2024.1";
-    hash = "sha256-0wK/8cJC9FSFrQUPhRy1/uwQONx2dR3U0XOdnMpxBuA=";
+    rev = "2024.2";
+    hash = "sha256-qqXOLuZOj+mF7kXrdO62HZTrGsyepOSWr5v6j4WFGcc=";
   };
 
   installPhase = ''
@@ -25,7 +25,7 @@ stdenvNoCC.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A collection of multiple types of lists used during security assessments, collected in one place";
+    description = "Collection of multiple types of lists used during security assessments, collected in one place";
     homepage = "https://github.com/danielmiessler/seclists";
     license = licenses.mit;
     maintainers = with maintainers; [ tochiaha janik pamplemousse ];
diff --git a/pkgs/by-name/se/segger-jlink/package.nix b/pkgs/by-name/se/segger-jlink/package.nix
index 074f687f35f00..d7b2e0cfcaebb 100755
--- a/pkgs/by-name/se/segger-jlink/package.nix
+++ b/pkgs/by-name/se/segger-jlink/package.nix
@@ -15,25 +15,25 @@ let
   supported = {
     x86_64-linux = {
       name = "x86_64";
-      hash = "sha256-CELUteYzy0oMxDonOot+DR5MgGjSRwLgRCbJRAaS/EY=";
+      hash = "sha256-UsDP+wMS7ZeWMQBObwv5RxbwuWU8nLnHes7LEXK6imE=";
     };
     i686-linux = {
       name = "i386";
-      hash = "sha256-lw3gqgCjmASkelj5lPDnltRJ1Cb+318QjrbirQ6oRFI=";
+      hash = "sha256-InNHXWAc6QZEWyEcTTUCRMDsKd0RtR8d7O0clWKuFo8=";
     };
     aarch64-linux = {
       name = "arm64";
-      hash = "sha256-yq/L9k+22OWhwnAROJlsyYd/AH5SHJD231y6xd83N6g=";
+      hash = "sha256-ueIGdqfuIRCuEwaPkgZMgghO9DU11IboLLMryg/mxQ8=";
     };
     armv7l-linux = {
       name = "arm";
-      hash = "sha256-FAnzZzz3tgSxgX5n3CUrCbD5lfub91cDkjdD/lVaf0g=";
+      hash = "sha256-6nTQGQpkbqQntheQqiUAdVS4rp30nl2KRUn5Adsfeoo=";
     };
   };
 
   platform = supported.${stdenv.system} or (throw "unsupported platform ${stdenv.system}");
 
-  version = "794l";
+  version = "796b";
 
   url = "https://www.segger.com/downloads/jlink/JLink_Linux_V${version}_${platform.name}.tgz";
 
diff --git a/pkgs/by-name/se/selenium-manager/package.nix b/pkgs/by-name/se/selenium-manager/package.nix
index d3703ba669931..4dac1c11b4333 100644
--- a/pkgs/by-name/se/selenium-manager/package.nix
+++ b/pkgs/by-name/se/selenium-manager/package.nix
@@ -30,7 +30,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A browser automation framework and ecosystem";
+    description = "Browser automation framework and ecosystem";
     homepage = "https://github.com/SeleniumHQ/selenium";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/by-name/se/sendme/package.nix b/pkgs/by-name/se/sendme/package.nix
index 08b7c8d232b12..7cda586708382 100644
--- a/pkgs/by-name/se/sendme/package.nix
+++ b/pkgs/by-name/se/sendme/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sendme";
-  version = "0.7.0";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "n0-computer";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-x4RN/C/XMvpfsbWJTX5wDj1K+ADz2YIb/esAIEpFVcs=";
+    hash = "sha256-9ea0HZErwZ1PZwl1jlC3vafm/QnfhFRLYoFIOhxfY/g=";
   };
 
-  cargoHash = "sha256-yeexP6wfhg2Ir1oJzaxMwRMen9M409MB4cNZ8fd6cHc=";
+  cargoHash = "sha256-4SAvx1G5hBi0il7zmlXFSBAxzqLE7Vezo1ZuVccqhms=";
 
   buildInputs = lib.optionals stdenv.isDarwin (
     with darwin.apple_sdk.frameworks; [
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   );
 
   meta = with lib; {
-    description = "A tool to send files and directories, based on iroh";
+    description = "Tool to send files and directories, based on iroh";
     homepage = "https://iroh.computer/sendme";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ cameronfyfe ];
diff --git a/pkgs/by-name/se/sequoia-sq/package.nix b/pkgs/by-name/se/sequoia-sq/package.nix
index 54e19ba073fa3..1df73c9cd3f24 100644
--- a/pkgs/by-name/se/sequoia-sq/package.nix
+++ b/pkgs/by-name/se/sequoia-sq/package.nix
@@ -70,7 +70,7 @@ rustPlatform.buildRustPackage rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A cool new OpenPGP implementation";
+    description = "Cool new OpenPGP implementation";
     homepage = "https://sequoia-pgp.org/";
     changelog = "https://gitlab.com/sequoia-pgp/sequoia-sq/-/blob/v${version}/NEWS";
     license = licenses.gpl2Plus;
diff --git a/pkgs/by-name/se/sequoia-wot/package.nix b/pkgs/by-name/se/sequoia-wot/package.nix
new file mode 100644
index 0000000000000..38c90c4837fda
--- /dev/null
+++ b/pkgs/by-name/se/sequoia-wot/package.nix
@@ -0,0 +1,90 @@
+{
+  lib,
+  stdenv,
+  rustPlatform,
+  fetchFromGitLab,
+  installShellFiles,
+  pkg-config,
+  nettle,
+  openssl,
+  sqlite,
+  darwin,
+  gnupg,
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "sequoia-wot";
+  version = "0.11.0";
+
+  src = fetchFromGitLab {
+    owner = "sequoia-pgp";
+    repo = "sequoia-wot";
+    rev = "v${version}";
+    hash = "sha256-qSf2uESsMGUEvAiRefpwxHKyizbq5Sst3SpjKaMIWTQ=";
+  };
+
+  cargoHash = "sha256-vGseKdHqyncScS57UF3SR3EVdUGKVMue8fnRftefSY0=";
+
+  nativeBuildInputs = [
+    pkg-config
+    rustPlatform.bindgenHook
+    installShellFiles
+  ];
+
+  buildInputs = [
+    openssl
+    sqlite
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.SystemConfiguration
+    # See comment near sequoia-openpgp/crypto- buildFeatures
+  ] ++ lib.optionals (!stdenv.targetPlatform.isWindows) [
+    nettle
+  ];
+
+  buildFeatures = [
+    # Upstream uses the sequoia-openpgp crate, which doesn't force you to use a
+    # specific crypto backend. As recommended by sequoia-openpgp's crate
+    # docs[1], upstream uses `target.'cfg(not(windows))'.dev-dependencies` to
+    # choose a different backend when the target platform is Windows or not. We
+    # propagate this logic here as well.
+    #
+    # [1]: https://crates.io/crates/sequoia-openpgp#user-content-intermediate-crate
+    (if stdenv.targetPlatform.isWindows then
+      "sequoia-openpgp/crypto-cng"
+    else
+      "sequoia-openpgp/crypto-nettle"
+    )
+  ];
+
+  doCheck = true;
+
+  nativeCheckInputs = [ gnupg ];
+
+  # Install shell completion files and manual pages. Unfortunatly it is hard to
+  # predict the paths to all of these files generated during the build, and it
+  # is impossible to control these using `$OUT_DIR` or alike, as implied by
+  # upstream's `build.rs`. This is a general Rust issue also discussed in
+  # https://github.com/rust-lang/cargo/issues/9661, also discussed upstream at:
+  # https://gitlab.com/sequoia-pgp/sequoia-wot/-/issues/56
+  postInstall = ''
+    installShellCompletion --cmd sq-wot \
+      --bash target/*/release/build/sequoia-wot-*/out/sq-wot.bash \
+      --fish target/*/release/build/sequoia-wot-*/out/sq-wot.fish \
+      --zsh  target/*/release/build/sequoia-wot-*/out/_sq-wot
+    # Also elv and powershell are generated there
+    installManPage \
+      target/*/release/build/sequoia-wot-*/out/sq-wot.1 \
+      target/*/release/build/sequoia-wot-*/out/sq-wot-authenticate.1 \
+      target/*/release/build/sequoia-wot-*/out/sq-wot-lookup.1 \
+      target/*/release/build/sequoia-wot-*/out/sq-wot-identify.1 \
+      target/*/release/build/sequoia-wot-*/out/sq-wot-list.1 \
+      target/*/release/build/sequoia-wot-*/out/sq-wot-path.1
+  '';
+
+  meta = with lib; {
+    description = "Rust CLI tool for authenticating bindings and exploring a web of trust";
+    homepage = "https://gitlab.com/sequoia-pgp/sequoia-wot";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ Cryolitia ];
+    mainProgram = "sq-wot";
+  };
+}
diff --git a/pkgs/by-name/se/serious-sans/package.nix b/pkgs/by-name/se/serious-sans/package.nix
index 004265e4243fa..b2ac8d1468ca8 100644
--- a/pkgs/by-name/se/serious-sans/package.nix
+++ b/pkgs/by-name/se/serious-sans/package.nix
@@ -25,7 +25,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/kaBeech/serious-sans";
-    description = "A legible monospace font for playful professionals";
+    description = "Legible monospace font for playful professionals";
     license = with lib.licenses; [ mit ];
     maintainers = with lib.maintainers; [ CobaltCause ];
     platforms = lib.platforms.all;
diff --git a/pkgs/by-name/se/sesh/package.nix b/pkgs/by-name/se/sesh/package.nix
index 80bfac6348f5d..4460337967c12 100644
--- a/pkgs/by-name/se/sesh/package.nix
+++ b/pkgs/by-name/se/sesh/package.nix
@@ -5,13 +5,13 @@
 }:
 buildGoModule rec {
   pname = "sesh";
-  version = "1.1.1";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "joshmedeski";
     repo = "sesh";
     rev = "v${version}";
-    hash = "sha256-Q0ErSM4r3wNjGu4p0EVhvdWkz4Cd46XD0hauN7idMRg=";
+    hash = "sha256-nihyctFnDRLiDgHeXfn/q4G5IVEAOxh9MqFcsInK9UI=";
   };
 
   vendorHash = "sha256-zt1/gE4bVj+3yr9n0kT2FMYMEmiooy3k1lQ77rN6sTk=";
diff --git a/pkgs/by-name/se/setup-envtest/package.nix b/pkgs/by-name/se/setup-envtest/package.nix
new file mode 100644
index 0000000000000..2fe80013d8efb
--- /dev/null
+++ b/pkgs/by-name/se/setup-envtest/package.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "setup-envtest";
+  version = "0.18.2";
+
+  src = fetchFromGitHub {
+    owner = "kubernetes-sigs";
+    repo = "controller-runtime";
+    rev = "v${version}";
+    hash = "sha256-fQgWwndxzBIi3zsNMYvFDXjetnaQF0NNK+qW8j4Wn/M=";
+  } + "/tools/setup-envtest";
+
+  vendorHash = "sha256-Xr5b/CRz/DMmoc4bvrEyAZcNufLIZOY5OGQ6yw4/W9k=";
+
+  ldflags = [ "-s" "-w" ];
+
+  __darwinAllowLocalNetworking = true;
+
+  meta = with lib; {
+    description = "Tool that manages binaries for envtest, allowing the download of new binaries, listing installed and available ones, and cleaning up versions";
+    homepage = "https://github.com/kubernetes-sigs/controller-runtime/tree/v${version}/tools/setup-envtest";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ arikgrahl ];
+    mainProgram = "setup-envtest";
+  };
+}
diff --git a/pkgs/by-name/sf/sfwbar/package.nix b/pkgs/by-name/sf/sfwbar/package.nix
new file mode 100644
index 0000000000000..712040333536d
--- /dev/null
+++ b/pkgs/by-name/sf/sfwbar/package.nix
@@ -0,0 +1,65 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  gtk3,
+  meson,
+  ninja,
+  json_c,
+  pkg-config,
+  gtk-layer-shell,
+  libpulseaudio,
+  libmpdclient,
+  libxkbcommon,
+  alsa-lib,
+  makeWrapper,
+}:
+let
+  version = "1.0_beta14";
+in
+stdenv.mkDerivation {
+  pname = "sfwbar";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "LBCrion";
+    repo = "sfwbar";
+    rev = "v${version}";
+    hash = "sha256-4brP1SXaWq/L0D87rvlrWhLU1oFPSwNNxBSzRr4jsTM=";
+  };
+
+  buildInputs = [
+    gtk3
+    json_c
+    gtk-layer-shell
+    libpulseaudio
+    libmpdclient
+    libxkbcommon
+    alsa-lib
+  ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    makeWrapper
+  ];
+
+  postFixup = ''
+    wrapProgram $out/bin/sfwbar \
+      --suffix XDG_DATA_DIRS : $out/share
+  '';
+
+  meta = {
+    homepage = "https://github.com/LBCrion/sfwbar";
+    description = "Flexible taskbar application for wayland compositors, designed with a stacking layout in mind";
+    changelog = "https://github.com/LBCrion/sfwbar/releases/tag/v${version}";
+    mainProgram = "sfwbar";
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [
+      luftmensch-luftmensch
+      NotAShelf
+    ];
+    license = lib.licenses.gpl3Only;
+  };
+}
diff --git a/pkgs/by-name/sg/sgfutils/package.nix b/pkgs/by-name/sg/sgfutils/package.nix
index 7548ab42107e1..f82bc4e59a6ab 100644
--- a/pkgs/by-name/sg/sgfutils/package.nix
+++ b/pkgs/by-name/sg/sgfutils/package.nix
@@ -2,7 +2,7 @@
 , stdenv
 , fetchFromGitHub
 , openssl
-, iconv
+, libiconv
 , makeWrapper
 , imagemagick
 , makeFontsConf
@@ -18,7 +18,7 @@ stdenv.mkDerivation
     hash = "sha256-KWYgTxz32WK3MKouj1WAJtZmleKt5giCpzQPwfWruZQ=";
   };
   nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ iconv ];
+  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
   buildPhase = ''
     runHook preBuild
     make all
diff --git a/pkgs/by-name/sh/shadow-tls/package.nix b/pkgs/by-name/sh/shadow-tls/package.nix
index 91116caf47505..481729feff67f 100644
--- a/pkgs/by-name/sh/shadow-tls/package.nix
+++ b/pkgs/by-name/sh/shadow-tls/package.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec{
 
   meta = with lib; {
     homepage = "https://github.com/ihciah/shadow-tls";
-    description = "A proxy to expose real tls handshake to the firewall";
+    description = "Proxy to expose real tls handshake to the firewall";
     license = licenses.mit;
     mainProgram = "shadow-tls";
     maintainers = with maintainers; [ oluceps ];
diff --git a/pkgs/by-name/sh/share-preview/package.nix b/pkgs/by-name/sh/share-preview/package.nix
new file mode 100644
index 0000000000000..093bbaf33270e
--- /dev/null
+++ b/pkgs/by-name/sh/share-preview/package.nix
@@ -0,0 +1,66 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  rustPlatform,
+  meson,
+  ninja,
+  pkg-config,
+  rustc,
+  cargo,
+  wrapGAppsHook4,
+  desktop-file-utils,
+  libadwaita,
+  openssl,
+  darwin,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "share-preview";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "rafaelmardojai";
+    repo = "share-preview";
+    rev = finalAttrs.version;
+    hash = "sha256-FqualaTkirB+gBcgkThQpSBHhM4iaXkiGujwBUnUX0E=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit (finalAttrs) src;
+    name = "share-preview-${finalAttrs.version}";
+    hash = "sha256-Gh6bQZD1mlkj3XeGp+fF/NShC4PZCZSEqymrsSdX4Ec=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    rustPlatform.cargoSetupHook
+    rustc
+    cargo
+    wrapGAppsHook4
+    desktop-file-utils
+  ];
+
+  buildInputs = [
+    libadwaita
+    openssl
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Foundation
+    darwin.apple_sdk.frameworks.SystemConfiguration
+  ];
+
+  env.NIX_CFLAGS_COMPILE = toString (
+    lib.optionals stdenv.isDarwin [ "-Wno-error=incompatible-function-pointer-types" ]
+  );
+
+  meta = {
+    description = "Preview and debug websites metadata tags for social media share";
+    homepage = "https://apps.gnome.org/SharePreview";
+    license = lib.licenses.gpl3Plus;
+    mainProgram = "share-preview";
+    maintainers = with lib.maintainers; [ aleksana ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/pkgs/by-name/sh/shellcheck-sarif/package.nix b/pkgs/by-name/sh/shellcheck-sarif/package.nix
index 83492cfd39f8f..f5614143bd8f4 100644
--- a/pkgs/by-name/sh/shellcheck-sarif/package.nix
+++ b/pkgs/by-name/sh/shellcheck-sarif/package.nix
@@ -12,14 +12,14 @@ rustPlatform.buildRustPackage rec {
   src = fetchFromGitHub {
     owner = "psastras";
     repo = "sarif-rs";
-    rev = "${pname}-v${version}";
+    rev = "shellcheck-sarif-v${version}";
     hash = "sha256-EzWzDeIeSJ11CVcVyAhMjYQJcKHnieRrFkULc5eXAno=";
   };
 
   cargoHash = "sha256-JuE/Z0qrS/3BRlb0jTGDfV0TYk74Q75X1wv/IERxqeQ=";
   cargoBuildFlags = [
     "--package"
-    pname
+    "shellcheck-sarif"
   ];
   cargoTestFlags = cargoBuildFlags;
 
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = {
-    description = "A CLI tool to convert shellcheck diagnostics into SARIF";
+    description = "CLI tool to convert shellcheck diagnostics into SARIF";
     homepage = "https://psastras.github.io/sarif-rs";
     mainProgram = "shellcheck-sarif";
     maintainers = with lib.maintainers; [ getchoo ];
diff --git a/pkgs/by-name/sh/shepherd/package.nix b/pkgs/by-name/sh/shepherd/package.nix
index 3f7323e564821..19205b6617c65 100644
--- a/pkgs/by-name/sh/shepherd/package.nix
+++ b/pkgs/by-name/sh/shepherd/package.nix
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     changelog = "https://github.com/NerdWalletOSS/shepherd/blob/${src.rev}/CHANGELOG.md";
-    description = "A utility for applying code changes across many repositories";
+    description = "Utility for applying code changes across many repositories";
     homepage = "https://github.com/NerdWalletOSS/shepherd";
     license = lib.licenses.asl20;
     mainProgram = "shepherd";
diff --git a/pkgs/by-name/sh/shopware-cli/package.nix b/pkgs/by-name/sh/shopware-cli/package.nix
index 899b956b50a68..577288bb127ed 100644
--- a/pkgs/by-name/sh/shopware-cli/package.nix
+++ b/pkgs/by-name/sh/shopware-cli/package.nix
@@ -9,18 +9,18 @@
 
 buildGoModule rec {
   pname = "shopware-cli";
-  version = "0.4.43";
+  version = "0.4.47";
   src = fetchFromGitHub {
     repo = "shopware-cli";
     owner = "FriendsOfShopware";
     rev = version;
-    hash = "sha256-c8CaPxV54bF4Unlz15SIh64jiGZMZywcKOzdZ74AtaM=";
+    hash = "sha256-9XCKrT+fOkC7Ft1/pGEgHjv3suXOf5NKYWqS702DtOA=";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
   nativeCheckInputs = [ git dart-sass ];
 
-  vendorHash = "sha256-7K56fBX4y2UPofksAl6+u7jBg5tySvtrutUJXDJ/qz4=";
+  vendorHash = "sha256-W/lIPcbCcHs+xRzAO8R49AE6oFLTLc6Ca5UlIdMLO5A=";
 
   postInstall = ''
     export HOME="$(mktemp -d)"
diff --git a/pkgs/by-name/sh/show-midi/package.nix b/pkgs/by-name/sh/show-midi/package.nix
index 4e3029921321c..f3f64967e627b 100644
--- a/pkgs/by-name/sh/show-midi/package.nix
+++ b/pkgs/by-name/sh/show-midi/package.nix
@@ -9,6 +9,8 @@
 , libXinerama
 , libXext
 , libXcursor
+, makeDesktopItem
+, copyDesktopItems
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -23,7 +25,10 @@ stdenv.mkDerivation (finalAttrs: {
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [
+    pkg-config
+    copyDesktopItems
+  ];
   buildInputs = [
     alsa-lib
     freetype
@@ -53,6 +58,8 @@ stdenv.mkDerivation (finalAttrs: {
 
     install -Dt $out/share/ShowMIDI/themes Themes/*
 
+    install -D Design/icon.png $out/share/icons/hicolor/1024x1024/apps/show-midi.png
+
     mkdir -p $out/bin $out/lib/lv2 $out/lib/vst3
     cd Builds/LinuxMakefile/build/
     cp -r ShowMIDI.lv2 $out/lib/lv2
@@ -62,6 +69,16 @@ stdenv.mkDerivation (finalAttrs: {
     runHook postInstall
   '';
 
+  desktopItems = [(makeDesktopItem {
+    name = "ShowMIDI";
+    exec = finalAttrs.meta.mainProgram;
+    comment = finalAttrs.meta.description;
+    type = "Application";
+    icon = "show-midi";
+    desktopName = "ShowMIDI";
+    categories = [ "Audio" ];
+  })];
+
   # JUCE dlopens these, make sure they are in rpath
   # Otherwise, segfault will happen
   env.NIX_LDFLAGS = toString [
diff --git a/pkgs/by-name/si/sigi/package.nix b/pkgs/by-name/si/sigi/package.nix
index 2c23d52a40df0..9bab8e985375b 100644
--- a/pkgs/by-name/si/sigi/package.nix
+++ b/pkgs/by-name/si/sigi/package.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sigi";
-  version = "3.6.4";
+  version = "3.7.1";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-hw4dLQlIftbQfUK9+MT29jPPaeOPVLfkR6nqxJkn+t0=";
+    hash = "sha256-Tsrfan7aejP2oy9x9VoTIq0ba0s0tnx1RTlAB0v6eis=";
   };
 
-  cargoHash = "sha256-WS+75LeXBuw6P1PZpygVrWbEHOuQCCzM9hsmkLwHsIg=";
+  cargoHash = "sha256-jstxl1CcSNv1bQuAY9n2kYmoTYmfeBYUCKJKWCSEuec=";
   nativeBuildInputs = [ installShellFiles ];
 
   # In case anything goes wrong.
@@ -22,7 +22,7 @@ rustPlatform.buildRustPackage rec {
   passthru.tests.version = testers.testVersion { package = sigi; };
 
   meta = with lib; {
-    description = "Organizing CLI for people who don't love organizing.";
+    description = "Organizing CLI for people who don't love organizing";
     homepage = "https://github.com/sigi-cli/sigi";
     license = licenses.gpl2;
     maintainers = with maintainers; [ booniepepper ];
diff --git a/pkgs/by-name/si/signal-backup-deduplicator/package.nix b/pkgs/by-name/si/signal-backup-deduplicator/package.nix
new file mode 100644
index 0000000000000..d5efff9e3f4d8
--- /dev/null
+++ b/pkgs/by-name/si/signal-backup-deduplicator/package.nix
@@ -0,0 +1,38 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitLab,
+  cmake,
+  cryptopp,
+  protobuf,
+}:
+
+stdenv.mkDerivation {
+  pname = "signal-backup-deduplicator";
+  version = "0-unstable-2024-05-24";
+
+  src = fetchFromGitLab {
+    owner = "gerum";
+    repo = "signal-backup-deduplicator";
+    rev = "6c09f14b16ff47c2ed0914c68102e45c93ebbfa6";
+    hash = "sha256-JR2Qu4EtTMObM/BvxQS5WwGFqWj9g0bqOpKt4y5UNaM=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [
+    protobuf
+    cryptopp
+  ];
+
+  meta = {
+    description = "Generate chunked backups for Signal messages";
+    homepage = "https://gitlab.com/gerum/signal-backup-deduplicator";
+    license = lib.licenses.agpl3Only;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
+    mainProgram = "signal_backup_deduplicate";
+    platforms = lib.platforms.all;
+    # ld: symbol(s) not found for architecture ...
+    broken = stdenv.isDarwin;
+  };
+}
diff --git a/pkgs/by-name/si/signal-export/package.nix b/pkgs/by-name/si/signal-export/package.nix
index 3f9f9fa54ead2..40c925e5f4d27 100644
--- a/pkgs/by-name/si/signal-export/package.nix
+++ b/pkgs/by-name/si/signal-export/package.nix
@@ -32,7 +32,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     mainProgram = "sigexport";
     homepage = "https://github.com/carderne/signal-export";
-    description = "Export your Signal chats to markdown files with attachments.";
+    description = "Export your Signal chats to markdown files with attachments";
     platforms = platforms.unix;
     license = licenses.mit;
     maintainers = with maintainers; [ phaer picnoir ];
diff --git a/pkgs/by-name/si/silicon/package.nix b/pkgs/by-name/si/silicon/package.nix
index 57a86a27213d4..18edc3b84948b 100644
--- a/pkgs/by-name/si/silicon/package.nix
+++ b/pkgs/by-name/si/silicon/package.nix
@@ -2,7 +2,6 @@
 , stdenv
 , rustPlatform
 , fetchFromGitHub
-, fetchpatch
 , pkg-config
 , cmake
 , expat
diff --git a/pkgs/by-name/si/silverbullet/package.nix b/pkgs/by-name/si/silverbullet/package.nix
index 4a41b37014277..566b205c223ad 100644
--- a/pkgs/by-name/si/silverbullet/package.nix
+++ b/pkgs/by-name/si/silverbullet/package.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     changelog = "https://github.com/silverbulletmd/silverbullet/blob/${finalAttrs.version}/website/CHANGELOG.md";
-    description = "An open-source, self-hosted, offline-capable Personal Knowledge Management (PKM) web application";
+    description = "Open-source, self-hosted, offline-capable Personal Knowledge Management (PKM) web application";
     homepage = "https://silverbullet.md";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ aorith ];
diff --git a/pkgs/by-name/si/simpleBluez/package.nix b/pkgs/by-name/si/simpleBluez/package.nix
new file mode 100644
index 0000000000000..ab5b5f74b072b
--- /dev/null
+++ b/pkgs/by-name/si/simpleBluez/package.nix
@@ -0,0 +1,47 @@
+{
+  stdenv,
+  fetchFromGitHub,
+  cmake,
+  pkg-config,
+  dbus,
+  fmt_9,
+  lib,
+}:
+stdenv.mkDerivation (finalAttrs: {
+  pname = "simpleBluez";
+
+  version = "0.7.3";
+
+  src = fetchFromGitHub {
+    owner = "OpenBluetoothToolbox";
+    repo = "SimpleBLE";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-CPBdPnBeQ0c3VjSX0Op6nCHF3w0MdXGULbk1aavr+LM=";
+  };
+
+  outputs = [
+    "out"
+    "dev"
+  ];
+
+  sourceRoot = "${finalAttrs.src.name}/simplebluez";
+
+  cmakeFlags = [ "-DLIBFMT_LOCAL_PATH=${fmt_9.src}" ];
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    dbus
+  ];
+
+  meta = with lib; {
+    description = "C++ abstraction layer for BlueZ over DBus";
+    homepage = "https://github.com/OpenBluetoothToolbox/SimpleBLE";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ aciceri ];
+  };
+})
diff --git a/pkgs/by-name/si/simpleDBus/package.nix b/pkgs/by-name/si/simpleDBus/package.nix
new file mode 100644
index 0000000000000..1e2cbaa0b2a33
--- /dev/null
+++ b/pkgs/by-name/si/simpleDBus/package.nix
@@ -0,0 +1,47 @@
+{
+  stdenv,
+  fetchFromGitHub,
+  cmake,
+  pkg-config,
+  dbus,
+  fmt_9,
+  lib,
+}:
+stdenv.mkDerivation (finalAttrs: {
+  pname = "simpleDBus";
+
+  version = "0.7.3";
+
+  src = fetchFromGitHub {
+    owner = "OpenBluetoothToolbox";
+    repo = "SimpleBLE";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-CPBdPnBeQ0c3VjSX0Op6nCHF3w0MdXGULbk1aavr+LM=";
+  };
+
+  outputs = [
+    "out"
+    "dev"
+  ];
+
+  sourceRoot = "${finalAttrs.src.name}/simpledbus";
+
+  cmakeFlags = [ "-DLIBFMT_LOCAL_PATH=${fmt_9.src}" ];
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    dbus
+  ];
+
+  meta = with lib; {
+    description = "C++ wrapper for libdbus-1";
+    homepage = "https://github.com/OpenBluetoothToolbox/SimpleBLE";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ aciceri ];
+  };
+})
diff --git a/pkgs/by-name/si/simplesamlphp/package.nix b/pkgs/by-name/si/simplesamlphp/package.nix
index 4364e22fa2053..35ae0774f99a0 100644
--- a/pkgs/by-name/si/simplesamlphp/package.nix
+++ b/pkgs/by-name/si/simplesamlphp/package.nix
@@ -17,7 +17,7 @@ php.buildComposerProject (finalAttrs: {
   vendorHash = "sha256-FMFD0AXmD7Rq4d9+aNtGVk11YuOt40FWEqxvf+gBjmI=";
 
   meta = {
-    description = "SimpleSAMLphp is an application written in native PHP that deals with authentication (SQL, .htpasswd, YubiKey, LDAP, PAPI, Radius).";
+    description = "SimpleSAMLphp is an application written in native PHP that deals with authentication (SQL, .htpasswd, YubiKey, LDAP, PAPI, Radius)";
     homepage = "https://simplesamlphp.org";
     license = lib.licenses.lgpl21;
     maintainers = with lib.maintainers; [ nhnn ];
diff --git a/pkgs/by-name/si/simplex-chat-desktop/package.nix b/pkgs/by-name/si/simplex-chat-desktop/package.nix
index c3e5c618a7aeb..d262dbd5a50d2 100644
--- a/pkgs/by-name/si/simplex-chat-desktop/package.nix
+++ b/pkgs/by-name/si/simplex-chat-desktop/package.nix
@@ -6,11 +6,11 @@
 
 let
   pname = "simplex-chat-desktop";
-  version = "5.7.0";
+  version = "5.8.0";
 
   src = fetchurl {
     url = "https://github.com/simplex-chat/simplex-chat/releases/download/v${version}/simplex-desktop-x86_64.AppImage";
-    hash = "sha256-T8ojnay/FCa9Q4PObqlfy2MC4pKTF73taNW8elNDjIg=";
+    hash = "sha256-EYoUsxJgG9xqXtjys0InJJaqvX1XXcef9PYQ3nZPNuo=";
   };
 
   appimageContents = appimageTools.extract {
@@ -26,10 +26,17 @@ in appimageTools.wrapType2 {
     extraInstallCommands = ''
       install --mode=444 -D ${appimageContents}/chat.simplex.app.desktop --target-directory=$out/share/applications
       substituteInPlace $out/share/applications/chat.simplex.app.desktop \
-        --replace 'Exec=simplex' 'Exec=${pname}'
+        --replace-fail 'Exec=simplex' 'Exec=simplex-chat-desktop'
       cp -r ${appimageContents}/usr/share/icons $out/share
     '';
 
+  passthru.updateScript = gitUpdater {
+    url = "https://github.com/simplex-chat/simplex-chat";
+    rev-prefix = "v";
+    # skip tags that does not correspond to official releases, like vX.Y.Z-(beta,fdroid,armv7a).
+    ignoredVersions = "-";
+  };
+
   meta = with lib; {
     description = "Desktop application for SimpleX Chat";
     mainProgram = "simplex-chat-desktop";
@@ -39,11 +46,4 @@ in appimageTools.wrapType2 {
     maintainers = with maintainers; [ yuu ];
     platforms = [ "x86_64-linux" ];
   };
-
-  passthru.updateScript = gitUpdater {
-    url = "https://github.com/simplex-chat/simplex-chat";
-    rev-prefix = "v";
-    # skip tags that does not correspond to official releases, like vX.Y.Z-(beta,fdroid,armv7a).
-    ignoredVersions = "-";
-  };
 }
diff --git a/pkgs/by-name/si/simplotask/package.nix b/pkgs/by-name/si/simplotask/package.nix
index d08d53ed88c4e..402316e646323 100644
--- a/pkgs/by-name/si/simplotask/package.nix
+++ b/pkgs/by-name/si/simplotask/package.nix
@@ -28,7 +28,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A tool for effortless deployment and configuration management";
+    description = "Tool for effortless deployment and configuration management";
     homepage = "https://spot.umputun.dev/";
     maintainers = with maintainers; [ sikmir ];
     license = licenses.mit;
diff --git a/pkgs/by-name/si/sink-rotate/package.nix b/pkgs/by-name/si/sink-rotate/package.nix
index 8d0c8afe6e9d0..44fd2a7dc12d3 100644
--- a/pkgs/by-name/si/sink-rotate/package.nix
+++ b/pkgs/by-name/si/sink-rotate/package.nix
@@ -30,7 +30,7 @@ rustPlatform.buildRustPackage {
   '';
 
   meta = with lib; {
-    description = "Command that rotates default between two PipeWire audio sinks.";
+    description = "Command that rotates default between two PipeWire audio sinks";
     homepage = "https://github.com/mightyiam/sink-rotate";
     license = licenses.mit;
     maintainers = with maintainers; [ mightyiam ];
diff --git a/pkgs/by-name/si/sirikali/package.nix b/pkgs/by-name/si/sirikali/package.nix
index 8f02674adbe16..ea55431e706cc 100644
--- a/pkgs/by-name/si/sirikali/package.nix
+++ b/pkgs/by-name/si/sirikali/package.nix
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A Qt/C++ GUI front end to sshfs, ecryptfs-simple, cryfs, gocryptfs, securefs, fscrypt and encfs";
+    description = "Qt/C++ GUI front end to sshfs, ecryptfs-simple, cryfs, gocryptfs, securefs, fscrypt and encfs";
     homepage = "https://github.com/mhogomchungu/sirikali";
     changelog = "https://github.com/mhogomchungu/sirikali/blob/${src.rev}/changelog";
     license = licenses.gpl3Only;
diff --git a/pkgs/by-name/si/siyuan/package.nix b/pkgs/by-name/si/siyuan/package.nix
index c80d27b612a03..e019f507cceaf 100644
--- a/pkgs/by-name/si/siyuan/package.nix
+++ b/pkgs/by-name/si/siyuan/package.nix
@@ -90,7 +90,7 @@ buildNpmPackage rec {
   '';
 
   meta = {
-    description = "A privacy-first personal knowledge management system that supports complete offline usage, as well as end-to-end encrypted data sync";
+    description = "Privacy-first personal knowledge management system that supports complete offline usage, as well as end-to-end encrypted data sync";
     homepage = "https://b3log.org/siyuan/";
     license = lib.licenses.agpl3Plus;
     mainProgram = "siyuan";
diff --git a/pkgs/by-name/sk/sketchybar-app-font/package.nix b/pkgs/by-name/sk/sketchybar-app-font/package.nix
index e13b23e3fbbc8..7e34a1041db13 100644
--- a/pkgs/by-name/sk/sketchybar-app-font/package.nix
+++ b/pkgs/by-name/sk/sketchybar-app-font/package.nix
@@ -18,7 +18,7 @@ lib.checkListOfEnum "sketchybar-app-font: artifacts" artifacts artifactList
   in
   {
     pname = "sketchybar-app-font";
-    version = "2.0.18";
+    version = "2.0.19";
 
     srcs = selectedSources;
 
@@ -52,15 +52,15 @@ lib.checkListOfEnum "sketchybar-app-font: artifacts" artifacts artifactList
       sources = {
         font = fetchurl {
           url = "https://github.com/kvndrsslr/sketchybar-app-font/releases/download/v${finalAttrs.version}/sketchybar-app-font.ttf";
-          hash = "sha256-ajwyBUfgvIUcac8gdFUnzGJCXsUcOJnscIdtrxo7ZqY=";
+          hash = "sha256-AH4Zkaccms1gNt7ZHZRHYPOx/iLpbcA4MiyBStHRDfU=";
         };
         lua = fetchurl {
           url = "https://github.com/kvndrsslr/sketchybar-app-font/releases/download/v${finalAttrs.version}/icon_map.lua";
-          hash = "sha256-jxIBLE1UDD1S8nu4b9y7AUYb0XHH/3iknhmBloi1Qrs=";
+          hash = "sha256-AGcHBgOZY2EBR0WEfaQhEsTRdo8QfEawx6Q2rdBuKIg=";
         };
         shell = fetchurl {
           url = "https://github.com/kvndrsslr/sketchybar-app-font/releases/download/v${finalAttrs.version}/icon_map.sh";
-          hash = "sha256-I0t9KbC3Cs73021z9lm7TZUhmwdIaIgPVuLe8IjwkCU=";
+          hash = "sha256-fdKnweYF92zCLVBVXTjLWK9vdzMD8FvOHjEo2vqPbhQ=";
         };
       };
 
@@ -73,14 +73,13 @@ lib.checkListOfEnum "sketchybar-app-font: artifacts" artifacts artifactList
             exit 0
         fi
         for artifact in ${lib.escapeShellArgs (lib.mapAttrsToList(a: _: a) finalAttrs.passthru.sources)}; do
-          update-source-version "sketchybar-app-font" "0" "${lib.fakeHash}" --source-key="sources.$artifact"
-          update-source-version "sketchybar-app-font" "$NEW_VERSION" --source-key="sources.$artifact"
+          update-source-version "sketchybar-app-font" "$NEW_VERSION" --ignore-same-version --source-key="sources.$artifact"
         done
       '';
     };
 
     meta = {
-      description = "A ligature-based symbol font and a mapping function for sketchybar";
+      description = "Ligature-based symbol font and a mapping function for sketchybar";
       longDescription = ''
         A ligature-based symbol font and a mapping function for sketchybar, inspired by simple-bar's usage of community-contributed minimalistic app icons.
       '';
diff --git a/pkgs/by-name/sk/sketchybar/package.nix b/pkgs/by-name/sk/sketchybar/package.nix
index 37a9849b2830c..0b1b4e21acd16 100644
--- a/pkgs/by-name/sk/sketchybar/package.nix
+++ b/pkgs/by-name/sk/sketchybar/package.nix
@@ -75,7 +75,7 @@ stdenv'.mkDerivation (finalAttrs: {
   };
 
   meta = {
-    description = "A highly customizable macOS status bar replacement";
+    description = "Highly customizable macOS status bar replacement";
     homepage = "https://github.com/FelixKratz/SketchyBar";
     license = lib.licenses.gpl3;
     mainProgram = "sketchybar";
diff --git a/pkgs/applications/editors/aseprite/skia-deps.nix b/pkgs/by-name/sk/skia-aseprite/deps.nix
index 3c92c649bebf3..a51fe82d9bcec 100644
--- a/pkgs/applications/editors/aseprite/skia-deps.nix
+++ b/pkgs/by-name/sk/skia-aseprite/deps.nix
@@ -3,21 +3,21 @@
   angle2 = fetchgit {
     url = "https://chromium.googlesource.com/angle/angle.git";
     rev = "8718783526307a3fbb35d4c1ad4e8101262a0d73";
-    sha256 = "0c90q8f4syvwcayw58743sa332dcpkmblwh3ffkjqn5ygym04xji";
+    hash = "sha256-UXYCqn++WCyncwNyuuq8rIkxlB7koMK9Ynx7TRzCIDE=";
   };
   dng_sdk = fetchgit {
     url = "https://android.googlesource.com/platform/external/dng_sdk.git";
     rev = "c8d0c9b1d16bfda56f15165d39e0ffa360a11123";
-    sha256 = "1nlq082aij7q197i5646bi4vd2il7fww6sdwhqisv2cs842nyfwm";
+    hash = "sha256-lTtvBUGaia0jhrxpw7k7NIq2SVyGmBJPCvjIqAQCmNo=";
   };
   piex = fetchgit {
     url = "https://android.googlesource.com/platform/external/piex.git";
     rev = "bb217acdca1cc0c16b704669dd6f91a1b509c406";
-    sha256 = "05ipmag6k55jmidbyvg5mkqm69zfw03gfkqhi9jnjlmlbg31y412";
+    hash = "sha256-IhAfxlu0UmllihBP9wbg7idT8azlbb9arLKUaZ6qNxY=";
   };
   sfntly = fetchgit {
     url = "https://chromium.googlesource.com/external/github.com/googlei18n/sfntly.git";
     rev = "b55ff303ea2f9e26702b514cf6a3196a2e3e2974";
-    sha256 = "1qi5rfzmwfrji46x95g6dsb03i1v26700kifl2hpgm3pqhr7afpz";
+    hash = "sha256-/zp1MsR31HehoC5OAI4RO8QBlm7mldQNiTI7Xr/LJeI=";
   };
 }
diff --git a/pkgs/by-name/sk/skia-aseprite/package.nix b/pkgs/by-name/sk/skia-aseprite/package.nix
new file mode 100644
index 0000000000000..3b34ad631862f
--- /dev/null
+++ b/pkgs/by-name/sk/skia-aseprite/package.nix
@@ -0,0 +1,115 @@
+{
+  aseprite,
+  clangStdenv,
+  expat,
+  fetchFromGitHub,
+  fetchgit,
+  fontconfig,
+  gn,
+  harfbuzzFull,
+  icu,
+  lib,
+  libglvnd,
+  libjpeg,
+  libpng,
+  libwebp,
+  libX11,
+  mesa,
+  ninja,
+  python3,
+  zlib,
+}:
+
+let
+  # deps.nix is generated by ./update.sh
+  depSrcs = import ./deps.nix { inherit fetchgit; };
+in
+clangStdenv.mkDerivation (finalAttrs: {
+  pname = "skia-aseprite";
+  version = "m102-861e4743af";
+
+  src = fetchFromGitHub {
+    owner = "aseprite";
+    repo = "skia";
+    rev = finalAttrs.version;
+    hash = "sha256-IlZbalmHl549uDUfPG8hlzub8TLWhG0EsV6HVAPdsl0=";
+  };
+
+  nativeBuildInputs = [
+    gn
+    ninja
+    python3
+  ];
+
+  preConfigure = with depSrcs; ''
+    mkdir -p third_party/externals
+    ln -s ${angle2} third_party/externals/angle2
+    ln -s ${dng_sdk} third_party/externals/dng_sdk
+    ln -s ${piex} third_party/externals/piex
+    ln -s ${sfntly} third_party/externals/sfntly
+  '';
+
+  configurePhase = ''
+    runHook preConfigure
+    gn gen lib --args="is_debug=false is_official_build=true extra_cflags=[\"-I${harfbuzzFull.dev}/include/harfbuzz\"]"
+    runHook postConfigure
+  '';
+
+  buildInputs = [
+    expat
+    fontconfig
+    harfbuzzFull
+    icu
+    libglvnd
+    libjpeg
+    libpng
+    libwebp
+    libX11
+    mesa
+    zlib
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+    ninja -C lib skia modules
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out
+
+    # Glob will match all subdirs.
+    shopt -s globstar
+
+    # All these paths are used in some way when building Aseprite.
+    cp -r --parents -t $out/ \
+      include/codec \
+      include/config \
+      include/core \
+      include/effects \
+      include/gpu \
+      include/private \
+      include/utils \
+      include/third_party/skcms/*.h \
+      lib/*.a \
+      modules/skshaper/include/*.h \
+      src/core/*.h \
+      src/gpu/**/*.h \
+      third_party/externals/angle2/include \
+      third_party/skcms/**/*.h
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = [ ./update.sh ] ++ builtins.attrNames depSrcs;
+
+  meta = {
+    description = "Complete 2D graphic library for drawing Text, Geometries, and Images (Aseprite's fork)";
+    homepage = "https://skia.org/";
+    downloadPage = "https://github.com/aseprite/skia";
+    license = lib.licenses.bsd3;
+    inherit (aseprite.meta) maintainers;
+    platforms = lib.platforms.all;
+  };
+})
diff --git a/pkgs/by-name/sk/skia-aseprite/update.sh b/pkgs/by-name/sk/skia-aseprite/update.sh
new file mode 100755
index 0000000000000..78f7e67da6e90
--- /dev/null
+++ b/pkgs/by-name/sk/skia-aseprite/update.sh
@@ -0,0 +1,71 @@
+#!/usr/bin/env nix-shell
+#!nix-shell --pure -i bash
+#!nix-shell -p cacert curl git jq nix-prefetch-git
+# shellcheck shell=bash
+# vim: set tabstop=2 shiftwidth=2 expandtab:
+set -euo pipefail
+shopt -s inherit_errexit
+
+[ $# -gt 0 ] || {
+  printf >&2 'usage: %s <deps>' "$0"
+  exit 1
+}
+
+pkgpath=$(git rev-parse --show-toplevel)/pkgs/by-name/sk/skia-aseprite
+depfilter=$(tr ' ' '|' <<< "$*")
+depfile=$pkgpath/deps.nix
+pkgfile=$pkgpath/package.nix
+
+update_deps() {
+  local deps third_party_deps name url rev hash prefetch
+
+  version=$(sed -n 's|.*version = "\(.*\)".*|\1|p' < "$pkgfile")
+  deps=$(curl -fsS https://raw.githubusercontent.com/aseprite/skia/$version/DEPS)
+  third_party_deps=$(sed -n 's|[ ",]||g; s|:| |; s|@| |; s|^third_party/externals/||p' <<< "$deps")
+  filtered=$(grep -E -- "$depfilter" <<< "$third_party_deps")
+  if [[ -z $filtered ]]; then
+    printf >&2 '%s: error: filter "%s" matched nothing' "$0" "$depfilter"
+    return 1
+  fi
+
+  printf '{ fetchgit }:\n{\n'
+  while read -r name url rev; do
+    printf >&2 'Fetching %s@%s\n' "$name" "$rev"
+    prefetch=$(nix-prefetch-git --quiet --rev "$rev" "$url")
+    hash=$(jq -r '.hash' <<< "$prefetch")
+
+    cat << EOF
+  $name = fetchgit {
+    url = "$url";
+    rev = "$rev";
+    hash = "$hash";
+  };
+EOF
+  # `read` could exit with a non-zero code without a newline at the end
+  done < <(printf '%s\n' "$filtered")
+  printf '}\n'
+}
+
+update_version() {
+  local newver newrev
+  newver=$(
+    curl --fail \
+      --header 'Accept: application/vnd.github+json' \
+      --location --show-error --silent \
+      ${GITHUB_TOKEN:+ --user \":$GITHUB_TOKEN\"} \
+      https://api.github.com/repos/aseprite/skia/releases/latest \
+      | jq -r .tag_name
+  )
+  newhash=$(nix-prefetch-git --quiet --rev "$newver" https://github.com/aseprite/skia.git | jq -r '.hash')
+  sed \
+    -e 's|version = ".*"|version = "'$newver'"|' \
+    -e 's|hash = ".*"|hash = "'$newhash'"|' \
+    -- "$pkgfile"
+}
+
+temp=$(mktemp)
+trap 'ret=$?; rm -rf -- "$temp"; exit $ret' EXIT
+update_version > "$temp"
+cp "$temp" "$pkgfile"
+update_deps > "$temp"
+cp "$temp" "$depfile"
diff --git a/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix b/pkgs/by-name/sk/skypeexport/package.nix
index de70f49fe6040..2e6d72866073f 100644
--- a/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix
+++ b/pkgs/by-name/sk/skypeexport/package.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchFromGitHub, fetchpatch, cmake, boost }:
 
-stdenv.mkDerivation rec {
-  pname = "SkypeExport";
+stdenv.mkDerivation (finalAttrs: {
+  pname = "skypeexport";
   version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "Temptin";
     repo = "SkypeExport";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     sha256 = "1ilkh0s3dz5cp83wwgmscnfmnyck5qcwqg1yxp9zv6s356dxnbak";
   };
 
@@ -33,4 +33,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     maintainers = with maintainers; [ yana ];
   };
-}
+})
diff --git a/pkgs/by-name/sl/slimserver/package.nix b/pkgs/by-name/sl/slimserver/package.nix
index 4e5b2e45fd31a..1a9a2207ac053 100644
--- a/pkgs/by-name/sl/slimserver/package.nix
+++ b/pkgs/by-name/sl/slimserver/package.nix
@@ -33,13 +33,13 @@ let
 in
 perlPackages.buildPerlPackage rec {
   pname = "slimserver";
-  version = "8.5.1";
+  version = "8.5.2";
 
   src = fetchFromGitHub {
     owner = "LMS-Community";
     repo = "slimserver";
     rev = version;
-    hash = "sha256-ULyYZC0/ruJCdwR6cxvBRV1S3DTBJiNua64foi80qvI=";
+    hash = "sha256-262SHaxt5ow3nJtNVk10sbiPUfDb/U+Ab97DRjkJZFI=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -168,7 +168,7 @@ perlPackages.buildPerlPackage rec {
   meta = with lib; {
     homepage = "https://lyrion.org/";
     changelog = "https://github.com/LMS-Community/slimserver/blob/${version}/Changelog${lib.versions.major version}.html";
-    description = "Lyrion Music Server (formerly Logitech Media Server) is open-source server software which controls a wide range of Squeezebox audio players.";
+    description = "Lyrion Music Server (formerly Logitech Media Server) is open-source server software which controls a wide range of Squeezebox audio players";
     # the firmware is not under a free license, so we do not include firmware in the default package
     # https://github.com/LMS-Community/slimserver/blob/public/8.3/License.txt
     license = if enableUnfreeFirmware then licenses.unfree else licenses.gpl2Only;
diff --git a/pkgs/by-name/sl/slumber/package.nix b/pkgs/by-name/sl/slumber/package.nix
index 2cb38167c0572..b992ffe48c1f6 100644
--- a/pkgs/by-name/sl/slumber/package.nix
+++ b/pkgs/by-name/sl/slumber/package.nix
@@ -7,16 +7,16 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "slumber";
-  version = "1.3.1";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "LucasPickering";
     repo = "slumber";
     rev = "v${version}";
-    hash = "sha256-BPOBIE/nAupBwjKYnEfrHQQ8EEA3ZbuU/D0fqio4Ir0=";
+    hash = "sha256-7JXkyRhoSjGYhse+2/v3Ndogar10K4N3ZUZNGpMiQ/A=";
   };
 
-  cargoHash = "sha256-+GXLCxitYjNK9Eg93Do1q6DglJ5QQi1KSZ6GNmJ1jG8=";
+  cargoHash = "sha256-wZcnaT8EjbdSX6Y/UNS7v9/hQ9ISxkyRwRqRotXPCWU=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.AppKit ];
 
diff --git a/pkgs/by-name/sl/slurm-nm/package.nix b/pkgs/by-name/sl/slurm-nm/package.nix
index 5e9fa47127fc1..27112a55ad0ac 100644
--- a/pkgs/by-name/sl/slurm-nm/package.nix
+++ b/pkgs/by-name/sl/slurm-nm/package.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ ncurses ];
 
   meta = with lib; {
-    description = "A generic network load monitor";
+    description = "Generic network load monitor";
     homepage = "https://github.com/mattthias/slurm";
     license = licenses.gpl2Plus;
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/by-name/sm/smallwm/package.nix b/pkgs/by-name/sm/smallwm/package.nix
index ceee59a326fac..35b23f0bf3160 100644
--- a/pkgs/by-name/sm/smallwm/package.nix
+++ b/pkgs/by-name/sm/smallwm/package.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A small X window manager, extended from tinywm";
+    description = "Small X window manager, extended from tinywm";
     homepage = "https://github.com/adamnew123456/SmallWM";
     license = lib.licenses.bsd2;
     mainProgram = "smallwm";
diff --git a/pkgs/by-name/sm/smassh/package.nix b/pkgs/by-name/sm/smassh/package.nix
index 7ad7463413732..eb82f51399acd 100644
--- a/pkgs/by-name/sm/smassh/package.nix
+++ b/pkgs/by-name/sm/smassh/package.nix
@@ -42,7 +42,7 @@ python3.pkgs.buildPythonApplication rec {
   };
 
   meta = with lib; {
-    description = "A TUI based typing test application inspired by MonkeyType";
+    description = "TUI based typing test application inspired by MonkeyType";
     homepage = "https://github.com/kraanzu/smassh";
     changelog = "https://github.com/kraanzu/smassh/blob/main/CHANGELOG.md";
     license = licenses.gpl3Plus;
diff --git a/pkgs/by-name/sm/smb3-foundry/package.nix b/pkgs/by-name/sm/smb3-foundry/package.nix
index 475bab58ddbac..2f78261f854ec 100644
--- a/pkgs/by-name/sm/smb3-foundry/package.nix
+++ b/pkgs/by-name/sm/smb3-foundry/package.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     changelog = "https://github.com/mchlnix/SMB3-Foundry/releases/tag/${finalAttrs.version}";
-    description = "A modern Super Mario Bros. 3 Level Editor";
+    description = "Modern Super Mario Bros. 3 Level Editor";
     homepage = "https://github.com/mchlnix/SMB3-Foundry";
     license = lib.licenses.gpl3Only;
     mainProgram = "smb3-foundry";
diff --git a/pkgs/by-name/sm/smile/package.nix b/pkgs/by-name/sm/smile/package.nix
index 1c95965fde22f..b6e1776906596 100644
--- a/pkgs/by-name/sm/smile/package.nix
+++ b/pkgs/by-name/sm/smile/package.nix
@@ -13,28 +13,20 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "smile";
-  version = "2.9.0";
-  format = "other";
+  version = "2.9.5";
+  pyproject = false; # Builds with meson
 
   src = fetchFromGitHub {
     owner = "mijorus";
     repo = "smile";
     rev = version;
-    hash = "sha256-tXbRel+rtaE2zPO8NOc4X+Ktk4PdRHBMtpsGLbvuHZk=";
+    hash = "sha256-WwkwJXRnIvBS0cdcmJhErZLe0wwvarUdE7rpx7qcd2E=";
   };
 
-  postPatch = ''
-    patchShebangs build-aux/meson/postinstall.py
-
-    substituteInPlace build-aux/meson/postinstall.py \
-      --replace-fail gtk-update-icon-cache gtk4-update-icon-cache
-  '';
-
   nativeBuildInputs = [
     desktop-file-utils # for update-desktop-database
     glib # for glib-compile-resources
     gobject-introspection
-    gtk4 # for gtk4-update-icon-cache
     meson
     ninja
     wrapGAppsHook4
@@ -44,7 +36,7 @@ python3.pkgs.buildPythonApplication rec {
     libadwaita
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  dependencies = with python3.pkgs; [
     dbus-python
     manimpango
     pygobject3
@@ -58,11 +50,11 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = {
     changelog = "https://smile.mijorus.it/changelog";
-    description = "An emoji picker for linux, with custom tags support and localization";
+    description = "Emoji picker for linux, with custom tags support and localization";
     downloadPage = "https://github.com/mijorus/smile";
     homepage = "https://mijorus.it/projects/smile/";
     license = lib.licenses.gpl3Plus;
     mainProgram = "smile";
-    maintainers = with lib.maintainers; [ koppor ];
+    maintainers = with lib.maintainers; [ koppor aleksana ];
   };
 }
diff --git a/pkgs/applications/video/smplayer/default.nix b/pkgs/by-name/sm/smplayer/package.nix
index 513468cb16cf0..806e504773a31 100644
--- a/pkgs/applications/video/smplayer/default.nix
+++ b/pkgs/by-name/sm/smplayer/package.nix
@@ -1,20 +1,22 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, qmake
-, qtscript
-, wrapQtAppsHook
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  qt5,
 }:
 
+let
+  inherit (qt5) qmake qtscript wrapQtAppsHook;
+in
 stdenv.mkDerivation (finalAttrs: {
   pname = "smplayer";
-  version = "23.12.0";
+  version = "24.5.0";
 
   src = fetchFromGitHub {
     owner = "smplayer-dev";
     repo = "smplayer";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-ip4y9GF2u1yl1Ts8T9XcFg9wdXVTYXfDrrPuHLz6oSs=";
+    hash = "sha256-KblVDlE8EglMMAclGFZm81obipm6/JLUvsn5sLrpKqc=";
   };
 
   nativeBuildInputs = [
@@ -22,19 +24,15 @@ stdenv.mkDerivation (finalAttrs: {
     wrapQtAppsHook
   ];
 
-  buildInputs = [
-    qtscript
-  ];
+  buildInputs = [ qtscript ];
 
   dontUseQmakeConfigure = true;
 
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-  ];
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
   meta = {
     homepage = "https://www.smplayer.info";
-    description = "A complete front-end for MPlayer";
+    description = "Complete front-end for MPlayer";
     longDescription = ''
       SMPlayer is a free media player for Windows and Linux with built-in codecs
       that can play virtually all video and audio formats. It doesn't need any
@@ -53,7 +51,7 @@ stdenv.mkDerivation (finalAttrs: {
       options of MPlayer, SMPlayer adds other interesting features like the
       possibility to play Youtube videos or download subtitles.
     '';
-    changelog = "https://github.com/smplayer-dev/smplayer/releases/tag/v${finalAttrs.version}";
+    changelog = "https://github.com/smplayer-dev/smplayer/releases/tag/${finalAttrs.src.rev}";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ AndersonTorres ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/by-name/sm/smuview/package.nix b/pkgs/by-name/sm/smuview/package.nix
index e2825cdb783ff..907e332279ca0 100644
--- a/pkgs/by-name/sm/smuview/package.nix
+++ b/pkgs/by-name/sm/smuview/package.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals stdenv.isLinux [ bluez ];
 
   meta = with lib; {
-    description = "A Qt based source measure unit GUI for sigrok";
+    description = "Qt based source measure unit GUI for sigrok";
     mainProgram = "smuview";
     longDescription = "SmuView is a GUI for sigrok that supports power supplies, electronic loads and all sorts of measurement devices like multimeters, LCR meters and so on";
     homepage = "https://github.com/knarfS/smuview";
diff --git a/pkgs/by-name/sn/snekim/package.nix b/pkgs/by-name/sn/snekim/package.nix
index d5e80a3c75fe0..777f6fc24b451 100644
--- a/pkgs/by-name/sn/snekim/package.nix
+++ b/pkgs/by-name/sn/snekim/package.nix
@@ -24,7 +24,7 @@ buildNimPackage (finalAttrs: {
 
   meta = {
     homepage = "https://codeberg.org/annaaurora/snekim";
-    description = "A simple implementation of the classic snake game";
+    description = "Simple implementation of the classic snake game";
     mainProgram = "snekim";
     license = lib.licenses.lgpl3Only;
     maintainers = [ lib.maintainers.annaaurora ];
diff --git a/pkgs/by-name/sn/snicat/deps.nix b/pkgs/by-name/sn/snicat/deps.nix
deleted file mode 100644
index dca575f883443..0000000000000
--- a/pkgs/by-name/sn/snicat/deps.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-[
-  {
-    goPackagePath = "github.com/therootcompany/sclient";
-    fetch = {
-      type = "FromGitHub";
-      owner = "therootcompany";
-      repo = "sclient";
-      rev = "v1.5.0";
-      sha256 = "sha256-NAFTOx2sm92K+d746Z5UpB1HGsJI6cJgmh+YTyVkJ0w=";
-    };
-  }
-]
diff --git a/pkgs/by-name/sn/snicat/package.nix b/pkgs/by-name/sn/snicat/package.nix
index bbc3fded5b2f1..d38a45f593899 100644
--- a/pkgs/by-name/sn/snicat/package.nix
+++ b/pkgs/by-name/sn/snicat/package.nix
@@ -1,8 +1,9 @@
 { lib
-, buildGoPackage
+, buildGoModule
 , fetchFromGitHub
+, fetchpatch
 }:
-buildGoPackage rec {
+buildGoModule rec {
   pname = "snicat";
   version = "0.0.1";
 
@@ -13,18 +14,21 @@ buildGoPackage rec {
     hash = "sha256-fFlTBOz127le2Y7F9KKhbcldcyFEpAU5QiJ4VCAPs9Y=";
   };
 
-  goPackagePath = "github.com/CTFd/snicat";
+  patches = [
+    # Migrate to Go modules
+    (fetchpatch {
+      url = "https://github.com/CTFd/snicat/commit/098a5ce3141bae5d2e188338d78517d710d10f70.patch";
+      hash = "sha256-pIdXViUz14nkvL1H3u3oFkm308XA2POtKIGZOKDO6p8=";
+    })
+  ];
 
-  goDeps = ./deps.nix;
+  vendorHash = "sha256-27ykI9HK1jFanxwa6QrN6ZS548JbFNSZHaXr4ciCVOE=";
+  proxyVendor = true;
 
-  ldflags = [ "-s" "-w" "-X main.version=v${version}" ];
+  ldflags = [ "-s" "-X main.version=v${version}" ];
 
-  installPhase = ''
-    runHook preInstall
-
-    install -Dm555 go/bin/snicat $out/bin/sc
-
-    runHook postInstall
+  postInstall = ''
+    mv $out/bin/snicat $out/bin/sc
   '';
 
   meta = with lib; {
diff --git a/pkgs/by-name/sn/snipaste/package.nix b/pkgs/by-name/sn/snipaste/package.nix
new file mode 100644
index 0000000000000..4b62ab5dce438
--- /dev/null
+++ b/pkgs/by-name/sn/snipaste/package.nix
@@ -0,0 +1,24 @@
+{
+  appimageTools,
+  lib,
+  fetchurl,
+}:
+appimageTools.wrapType2 rec {
+  pname = "snipaste";
+  version = "2.9-Beta2";
+
+  src = fetchurl {
+    url = "https://download.snipaste.com/archives/Snipaste-${version}-x86_64.AppImage";
+    hash = "sha256-VJvw3M1Ohfji/PoIxn4gc9KcFl6H1wRYW5Pbf1p5rlg=";
+  };
+
+  meta = with lib; {
+    description = "Screenshot tools";
+    homepage = "https://www.snipaste.com/";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ luftmensch-luftmensch ];
+    mainProgram = "snipaste";
+    platforms = [ "x86_64-linux" ];
+    sourceProvenance = [ sourceTypes.binaryNativeCode ];
+  };
+}
diff --git a/pkgs/by-name/sn/snipe-it/package.nix b/pkgs/by-name/sn/snipe-it/package.nix
index db68a36a4d177..ac24c711b6bb4 100644
--- a/pkgs/by-name/sn/snipe-it/package.nix
+++ b/pkgs/by-name/sn/snipe-it/package.nix
@@ -8,13 +8,13 @@
 
 php.buildComposerProject (finalAttrs: {
   pname = "snipe-it";
-  version = "6.4.1";
+  version = "6.4.2";
 
   src = fetchFromGitHub {
     owner = "snipe";
     repo = "snipe-it";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-7IK5KLdWYcdzsJwzXfHsYvxWiR/R4407gGAGiY9+czY=";
+    hash = "sha256-wNHFFqi1WNTzI3xv1/aXTPpVXe7oxiTqWMEYhplNM9A=";
   };
 
   vendorHash = "sha256-KkFoc/fqYVgA5Vv6oEk+1/Rcj9VA52ZnH5O5qmLhmE4=";
@@ -45,7 +45,7 @@ php.buildComposerProject (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A free open source IT asset/license management system";
+    description = "Free open source IT asset/license management system";
     longDescription = ''
       Snipe-IT was made for IT asset management, to enable IT departments to track
       who has which laptop, when it was purchased, which software licenses and accessories
diff --git a/pkgs/by-name/sn/snippetexpander/package.nix b/pkgs/by-name/sn/snippetexpander/package.nix
index 2d50515c5026b..334864bb8e578 100644
--- a/pkgs/by-name/sn/snippetexpander/package.nix
+++ b/pkgs/by-name/sn/snippetexpander/package.nix
@@ -1,6 +1,5 @@
 { lib
 , buildGoModule
-, fetchFromSourcehut
 , makeWrapper
 , scdoc
 , installShellFiles
diff --git a/pkgs/by-name/sn/snippetexpandergui/package.nix b/pkgs/by-name/sn/snippetexpandergui/package.nix
index a5b68fbce93f1..ef58bc920542c 100644
--- a/pkgs/by-name/sn/snippetexpandergui/package.nix
+++ b/pkgs/by-name/sn/snippetexpandergui/package.nix
@@ -1,6 +1,5 @@
 { lib
 , buildGoModule
-, fetchFromSourcehut
 , wrapGAppsHook3
 , wails
 , scdoc
diff --git a/pkgs/by-name/sn/snippetexpanderx/package.nix b/pkgs/by-name/sn/snippetexpanderx/package.nix
index c1d7827a4cc59..5f67512edda6a 100644
--- a/pkgs/by-name/sn/snippetexpanderx/package.nix
+++ b/pkgs/by-name/sn/snippetexpanderx/package.nix
@@ -1,6 +1,5 @@
 { lib
 , stdenv
-, fetchFromSourcehut
 , pkg-config
 , vala
 , wrapGAppsHook3
diff --git a/pkgs/by-name/sn/snowmachine/package.nix b/pkgs/by-name/sn/snowmachine/package.nix
index a6d3aedf0b41c..124575160afef 100644
--- a/pkgs/by-name/sn/snowmachine/package.nix
+++ b/pkgs/by-name/sn/snowmachine/package.nix
@@ -16,7 +16,7 @@ python3Packages.buildPythonApplication rec {
   pythonImportsCheck = [ "snowmachine" ];
 
   meta = with lib; {
-    description = "A python script that will make your terminal snow";
+    description = "Python script that will make your terminal snow";
     homepage = "https://github.com/sontek/snowmachine";
     mainProgram = "snowmachine";
     license = with licenses; [ bsd3 ];
diff --git a/pkgs/by-name/sn/snx-rs/Cargo.lock b/pkgs/by-name/sn/snx-rs/Cargo.lock
new file mode 100644
index 0000000000000..6ae6f4b141f87
--- /dev/null
+++ b/pkgs/by-name/sn/snx-rs/Cargo.lock
@@ -0,0 +1,4253 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "addr2line"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "aes"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0"
+dependencies = [
+ "cfg-if",
+ "cipher",
+ "cpufeatures",
+]
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "android-tzdata"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+
+[[package]]
+name = "android_system_properties"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "anstream"
+version = "0.6.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "is_terminal_polyfill",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b"
+
+[[package]]
+name = "anstyle-parse"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19"
+dependencies = [
+ "anstyle",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.86"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
+
+[[package]]
+name = "async-broadcast"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b"
+dependencies = [
+ "event-listener 2.5.3",
+ "futures-core",
+]
+
+[[package]]
+name = "async-broadcast"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e"
+dependencies = [
+ "event-listener 5.3.1",
+ "event-listener-strategy",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-channel"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a"
+dependencies = [
+ "concurrent-queue",
+ "event-listener-strategy",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-io"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
+dependencies = [
+ "async-lock 2.8.0",
+ "autocfg",
+ "cfg-if",
+ "concurrent-queue",
+ "futures-lite 1.13.0",
+ "log",
+ "parking",
+ "polling 2.8.0",
+ "rustix 0.37.27",
+ "slab",
+ "socket2 0.4.10",
+ "waker-fn",
+]
+
+[[package]]
+name = "async-io"
+version = "2.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d6baa8f0178795da0e71bc42c9e5d13261aac7ee549853162e66a241ba17964"
+dependencies = [
+ "async-lock 3.4.0",
+ "cfg-if",
+ "concurrent-queue",
+ "futures-io",
+ "futures-lite 2.3.0",
+ "parking",
+ "polling 3.7.1",
+ "rustix 0.38.34",
+ "slab",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "async-lock"
+version = "2.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
+dependencies = [
+ "event-listener 2.5.3",
+]
+
+[[package]]
+name = "async-lock"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18"
+dependencies = [
+ "event-listener 5.3.1",
+ "event-listener-strategy",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-process"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88"
+dependencies = [
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
+ "async-signal",
+ "blocking",
+ "cfg-if",
+ "event-listener 3.1.0",
+ "futures-lite 1.13.0",
+ "rustix 0.38.34",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "async-process"
+version = "2.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7eda79bbd84e29c2b308d1dc099d7de8dcc7035e48f4bf5dc4a531a44ff5e2a"
+dependencies = [
+ "async-channel",
+ "async-io 2.3.3",
+ "async-lock 3.4.0",
+ "async-signal",
+ "async-task",
+ "blocking",
+ "cfg-if",
+ "event-listener 5.3.1",
+ "futures-lite 2.3.0",
+ "rustix 0.38.34",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "async-recursion"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "async-signal"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "794f185324c2f00e771cd9f1ae8b5ac68be2ca7abb129a87afd6e86d228bc54d"
+dependencies = [
+ "async-io 2.3.3",
+ "async-lock 3.4.0",
+ "atomic-waker",
+ "cfg-if",
+ "futures-core",
+ "futures-io",
+ "rustix 0.38.34",
+ "signal-hook-registry",
+ "slab",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "async-task"
+version = "4.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
+
+[[package]]
+name = "async-trait"
+version = "0.1.80"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "atk"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4af014b17dd80e8af9fa689b2d4a211ddba6eb583c1622f35d0cb543f6b17e4"
+dependencies = [
+ "atk-sys",
+ "glib",
+ "libc",
+]
+
+[[package]]
+name = "atk-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "251e0b7d90e33e0ba930891a505a9a35ece37b2dd37a14f3ffc306c13b980009"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "atomic-waker"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
+
+[[package]]
+name = "autocfg"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
+
+[[package]]
+name = "backtrace"
+version = "0.3.72"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17c6a35df3749d2e8bb1b7b21a976d82b15548788d2735b9d82f329268f71a11"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "base64"
+version = "0.22.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "block"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
+
+[[package]]
+name = "block-buffer"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "block-padding"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "blocking"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea"
+dependencies = [
+ "async-channel",
+ "async-task",
+ "futures-io",
+ "futures-lite 2.3.0",
+ "piper",
+]
+
+[[package]]
+name = "bstr"
+version = "1.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
+dependencies = [
+ "memchr",
+ "regex-automata",
+ "serde",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
+
+[[package]]
+name = "byteorder"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+
+[[package]]
+name = "bytes"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
+
+[[package]]
+name = "c2rust-bitfields"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b43c3f07ab0ef604fa6f595aa46ec2f8a22172c975e186f6f5bf9829a3b72c41"
+dependencies = [
+ "c2rust-bitfields-derive",
+]
+
+[[package]]
+name = "c2rust-bitfields-derive"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3cbc102e2597c9744c8bd8c15915d554300601c91a079430d309816b0912545"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "cairo-rs"
+version = "0.18.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2"
+dependencies = [
+ "bitflags 2.5.0",
+ "cairo-sys-rs",
+ "glib",
+ "libc",
+ "once_cell",
+ "thiserror",
+]
+
+[[package]]
+name = "cairo-sys-rs"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "cbc"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6"
+dependencies = [
+ "cipher",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.99"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695"
+
+[[package]]
+name = "cfg-expr"
+version = "0.15.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02"
+dependencies = [
+ "smallvec",
+ "target-lexicon",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
+[[package]]
+name = "cfg_aliases"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
+
+[[package]]
+name = "chrono"
+version = "0.4.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
+dependencies = [
+ "android-tzdata",
+ "iana-time-zone",
+ "js-sys",
+ "num-traits",
+ "serde",
+ "wasm-bindgen",
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "cipher"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
+dependencies = [
+ "crypto-common",
+ "inout",
+]
+
+[[package]]
+name = "clap"
+version = "4.5.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5db83dced34638ad474f39f250d7fea9598bdd239eaced1bdf45d597da0f433f"
+dependencies = [
+ "clap_builder",
+ "clap_derive",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.5.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7e204572485eb3fbf28f871612191521df159bc3e15a9f5064c66dba3a8c05f"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "clap_lex",
+ "strsim",
+]
+
+[[package]]
+name = "clap_derive"
+version = "4.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c780290ccf4fb26629baa7a1081e68ced113f1d3ec302fa5948f1c381ebf06c6"
+dependencies = [
+ "heck 0.5.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70"
+
+[[package]]
+name = "cocoa"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c"
+dependencies = [
+ "bitflags 1.3.2",
+ "block",
+ "cocoa-foundation",
+ "core-foundation",
+ "core-graphics",
+ "foreign-types 0.5.0",
+ "libc",
+ "objc",
+]
+
+[[package]]
+name = "cocoa-foundation"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7"
+dependencies = [
+ "bitflags 1.3.2",
+ "block",
+ "core-foundation",
+ "core-graphics-types",
+ "libc",
+ "objc",
+]
+
+[[package]]
+name = "colorchoice"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422"
+
+[[package]]
+name = "concurrent-queue"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "core-foundation"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
+
+[[package]]
+name = "core-graphics"
+version = "0.23.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "core-graphics-types",
+ "foreign-types 0.5.0",
+ "libc",
+]
+
+[[package]]
+name = "core-graphics-types"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "libc",
+]
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "crc32fast"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
+
+[[package]]
+name = "crypto-common"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+dependencies = [
+ "generic-array",
+ "typenum",
+]
+
+[[package]]
+name = "cryptoki"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e9123ecc6a29329cd3f852e6e6814f302ed777820e1eb60b098b89aee0eb91b"
+dependencies = [
+ "bitflags 1.3.2",
+ "cryptoki-sys",
+ "libloading 0.7.4",
+ "log",
+ "paste",
+ "secrecy",
+]
+
+[[package]]
+name = "cryptoki-sys"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a978e5e226446ac68eded4f92796947130f0d21de1e21bf80298f9f50d917d5"
+dependencies = [
+ "libloading 0.7.4",
+]
+
+[[package]]
+name = "dbus"
+version = "0.9.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bb21987b9fb1613058ba3843121dd18b163b254d8a6e797e144cbac14d96d1b"
+dependencies = [
+ "libc",
+ "libdbus-sys",
+ "winapi",
+]
+
+[[package]]
+name = "derivative"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "digest"
+version = "0.10.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+dependencies = [
+ "block-buffer",
+ "crypto-common",
+ "subtle",
+]
+
+[[package]]
+name = "directories-next"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc"
+dependencies = [
+ "cfg-if",
+ "dirs-sys-next",
+]
+
+[[package]]
+name = "dirs"
+version = "5.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
+dependencies = [
+ "dirs-sys",
+]
+
+[[package]]
+name = "dirs-sys"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
+dependencies = [
+ "libc",
+ "option-ext",
+ "redox_users",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "dirs-sys-next"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
+[[package]]
+name = "displaydoc"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "dpi"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53"
+
+[[package]]
+name = "either"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b"
+
+[[package]]
+name = "encoding_rs"
+version = "0.8.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "endi"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf"
+
+[[package]]
+name = "enum-as-inner"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "enumflags2"
+version = "0.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d"
+dependencies = [
+ "enumflags2_derive",
+ "serde",
+]
+
+[[package]]
+name = "enumflags2_derive"
+version = "0.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "event-listener"
+version = "2.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
+
+[[package]]
+name = "event-listener"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener"
+version = "5.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1"
+dependencies = [
+ "event-listener 5.3.1",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "fastrand"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+dependencies = [
+ "instant",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
+
+[[package]]
+name = "fdeflate"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
+dependencies = [
+ "simd-adler32",
+]
+
+[[package]]
+name = "field-offset"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f"
+dependencies = [
+ "memoffset 0.9.1",
+ "rustc_version",
+]
+
+[[package]]
+name = "flate2"
+version = "1.0.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae"
+dependencies = [
+ "crc32fast",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared 0.1.1",
+]
+
+[[package]]
+name = "foreign-types"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
+dependencies = [
+ "foreign-types-macros",
+ "foreign-types-shared 0.3.1",
+]
+
+[[package]]
+name = "foreign-types-macros"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "futures"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+
+[[package]]
+name = "futures-lite"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
+dependencies = [
+ "fastrand 1.9.0",
+ "futures-core",
+ "futures-io",
+ "memchr",
+ "parking",
+ "pin-project-lite",
+ "waker-fn",
+]
+
+[[package]]
+name = "futures-lite"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
+dependencies = [
+ "fastrand 2.1.0",
+ "futures-core",
+ "futures-io",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "futures-macro"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
+
+[[package]]
+name = "futures-task"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+
+[[package]]
+name = "futures-util"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "gdk"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f5ba081bdef3b75ebcdbfc953699ed2d7417d6bd853347a42a37d76406a33646"
+dependencies = [
+ "cairo-rs",
+ "gdk-pixbuf",
+ "gdk-sys",
+ "gio",
+ "glib",
+ "libc",
+ "pango",
+]
+
+[[package]]
+name = "gdk-pixbuf"
+version = "0.18.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec"
+dependencies = [
+ "gdk-pixbuf-sys",
+ "gio",
+ "glib",
+ "libc",
+ "once_cell",
+]
+
+[[package]]
+name = "gdk-pixbuf-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7"
+dependencies = [
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "gdk-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31ff856cb3386dae1703a920f803abafcc580e9b5f711ca62ed1620c25b51ff2"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "pkg-config",
+ "system-deps",
+]
+
+[[package]]
+name = "generic-array"
+version = "0.14.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+dependencies = [
+ "typenum",
+ "version_check",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "gimli"
+version = "0.29.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
+
+[[package]]
+name = "gio"
+version = "0.18.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-util",
+ "gio-sys",
+ "glib",
+ "libc",
+ "once_cell",
+ "pin-project-lite",
+ "smallvec",
+ "thiserror",
+]
+
+[[package]]
+name = "gio-sys"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+ "winapi",
+]
+
+[[package]]
+name = "glib"
+version = "0.18.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5"
+dependencies = [
+ "bitflags 2.5.0",
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-task",
+ "futures-util",
+ "gio-sys",
+ "glib-macros",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "memchr",
+ "once_cell",
+ "smallvec",
+ "thiserror",
+]
+
+[[package]]
+name = "glib-macros"
+version = "0.18.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro-crate 2.0.0",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "glib-sys"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898"
+dependencies = [
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "gobject-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "gtk"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93c4f5e0e20b60e10631a5f06da7fe3dda744b05ad0ea71fee2f47adf865890c"
+dependencies = [
+ "atk",
+ "cairo-rs",
+ "field-offset",
+ "futures-channel",
+ "gdk",
+ "gdk-pixbuf",
+ "gio",
+ "glib",
+ "gtk-sys",
+ "gtk3-macros",
+ "libc",
+ "pango",
+ "pkg-config",
+]
+
+[[package]]
+name = "gtk-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "771437bf1de2c1c0b496c11505bdf748e26066bbe942dfc8f614c9460f6d7722"
+dependencies = [
+ "atk-sys",
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gdk-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "system-deps",
+]
+
+[[package]]
+name = "gtk3-macros"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6063efb63db582968fb7df72e1ae68aa6360dcfb0a75143f34fc7d616bad75e"
+dependencies = [
+ "proc-macro-crate 1.3.1",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "h2"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab"
+dependencies = [
+ "atomic-waker",
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "http",
+ "indexmap",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.14.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
+
+[[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+
+[[package]]
+name = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
+[[package]]
+name = "hkdf"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
+dependencies = [
+ "hmac",
+]
+
+[[package]]
+name = "hmac"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
+dependencies = [
+ "digest",
+]
+
+[[package]]
+name = "http"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http-body"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
+dependencies = [
+ "bytes",
+ "http",
+]
+
+[[package]]
+name = "http-body-util"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f"
+dependencies = [
+ "bytes",
+ "futures-util",
+ "http",
+ "http-body",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "httparse"
+version = "1.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f3935c160d00ac752e09787e6e6bfc26494c2183cc922f1bc678a60d4733bc2"
+
+[[package]]
+name = "hyper"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "httparse",
+ "itoa",
+ "pin-project-lite",
+ "smallvec",
+ "tokio",
+ "want",
+]
+
+[[package]]
+name = "hyper-tls"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0"
+dependencies = [
+ "bytes",
+ "http-body-util",
+ "hyper",
+ "hyper-util",
+ "native-tls",
+ "tokio",
+ "tokio-native-tls",
+ "tower-service",
+]
+
+[[package]]
+name = "hyper-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b875924a60b96e5d7b9ae7b066540b1dd1cbd90d1828f54c92e02a283351c56"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "http",
+ "http-body",
+ "hyper",
+ "pin-project-lite",
+ "socket2 0.5.7",
+ "tokio",
+ "tower",
+ "tower-service",
+ "tracing",
+]
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "windows-core 0.52.0",
+]
+
+[[package]]
+name = "iana-time-zone-haiku"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "icu_collections"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526"
+dependencies = [
+ "displaydoc",
+ "yoke",
+ "zerofrom",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_locid"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637"
+dependencies = [
+ "displaydoc",
+ "litemap",
+ "tinystr",
+ "writeable",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_locid_transform"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e"
+dependencies = [
+ "displaydoc",
+ "icu_locid",
+ "icu_locid_transform_data",
+ "icu_provider",
+ "tinystr",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_locid_transform_data"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e"
+
+[[package]]
+name = "icu_normalizer"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f"
+dependencies = [
+ "displaydoc",
+ "icu_collections",
+ "icu_normalizer_data",
+ "icu_properties",
+ "icu_provider",
+ "smallvec",
+ "utf16_iter",
+ "utf8_iter",
+ "write16",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_normalizer_data"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516"
+
+[[package]]
+name = "icu_properties"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f8ac670d7422d7f76b32e17a5db556510825b29ec9154f235977c9caba61036"
+dependencies = [
+ "displaydoc",
+ "icu_collections",
+ "icu_locid_transform",
+ "icu_properties_data",
+ "icu_provider",
+ "tinystr",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_properties_data"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569"
+
+[[package]]
+name = "icu_provider"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9"
+dependencies = [
+ "displaydoc",
+ "icu_locid",
+ "icu_provider_macros",
+ "stable_deref_trait",
+ "tinystr",
+ "writeable",
+ "yoke",
+ "zerofrom",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_provider_macros"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "idna"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4716a3a0933a1d01c2f72450e89596eb51dd34ef3c211ccd875acdf1f8fe47ed"
+dependencies = [
+ "icu_normalizer",
+ "icu_properties",
+ "smallvec",
+ "utf8_iter",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
+dependencies = [
+ "equivalent",
+ "hashbrown",
+]
+
+[[package]]
+name = "inout"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
+dependencies = [
+ "block-padding",
+ "generic-array",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "io-lifetimes"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "ioctl-sys"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8bd11f3a29434026f5ff98c730b668ba74b1033637b8817940b54d040696133c"
+
+[[package]]
+name = "ipnet"
+version = "2.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "is_terminal_polyfill"
+version = "1.70.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800"
+
+[[package]]
+name = "isakmp"
+version = "0.1.0"
+source = "git+https://github.com/ancwrd1/isakmp.git#f958a02bd70bcaae8556ec9d5f8c0bdc97957cbd"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "bitflags 2.5.0",
+ "byteorder",
+ "bytes",
+ "cryptoki",
+ "futures",
+ "hex",
+ "itertools",
+ "openssl",
+ "parking_lot",
+ "rand",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "itertools"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
+
+[[package]]
+name = "javascriptcore-rs"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc"
+dependencies = [
+ "bitflags 1.3.2",
+ "glib",
+ "javascriptcore-rs-sys",
+]
+
+[[package]]
+name = "javascriptcore-rs-sys"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "js-sys"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "keyboard-types"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a"
+dependencies = [
+ "bitflags 2.5.0",
+ "serde",
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libappindicator"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a"
+dependencies = [
+ "glib",
+ "gtk",
+ "gtk-sys",
+ "libappindicator-sys",
+ "log",
+]
+
+[[package]]
+name = "libappindicator-sys"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf"
+dependencies = [
+ "gtk-sys",
+ "libloading 0.7.4",
+ "once_cell",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.155"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
+
+[[package]]
+name = "libdbus-sys"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06085512b750d640299b79be4bad3d2fa90a9c00b1fd9e1b46364f66f0485c72"
+dependencies = [
+ "cc",
+ "pkg-config",
+]
+
+[[package]]
+name = "libloading"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+dependencies = [
+ "cfg-if",
+ "winapi",
+]
+
+[[package]]
+name = "libloading"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
+dependencies = [
+ "cfg-if",
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "libredox"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
+dependencies = [
+ "bitflags 2.5.0",
+ "libc",
+]
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
+
+[[package]]
+name = "litemap"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704"
+
+[[package]]
+name = "lock_api"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
+
+[[package]]
+name = "malloc_buf"
+version = "0.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memchr"
+version = "2.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
+
+[[package]]
+name = "memoffset"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "mime"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+
+[[package]]
+name = "miniz_oxide"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae"
+dependencies = [
+ "adler",
+ "simd-adler32",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
+dependencies = [
+ "libc",
+ "wasi",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "muda"
+version = "0.13.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b959f97c97044e4c96e32e1db292a7d594449546a3c6b77ae613dc3a5b5145"
+dependencies = [
+ "cocoa",
+ "crossbeam-channel",
+ "dpi",
+ "gtk",
+ "keyboard-types",
+ "objc",
+ "once_cell",
+ "png",
+ "thiserror",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "native-tls"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466"
+dependencies = [
+ "libc",
+ "log",
+ "openssl",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "security-framework",
+ "security-framework-sys",
+ "tempfile",
+]
+
+[[package]]
+name = "nix"
+version = "0.26.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
+dependencies = [
+ "bitflags 1.3.2",
+ "cfg-if",
+ "libc",
+ "memoffset 0.7.1",
+]
+
+[[package]]
+name = "nix"
+version = "0.28.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
+dependencies = [
+ "bitflags 2.5.0",
+ "cfg-if",
+ "cfg_aliases 0.1.1",
+ "libc",
+ "memoffset 0.9.1",
+]
+
+[[package]]
+name = "nix"
+version = "0.29.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
+dependencies = [
+ "bitflags 2.5.0",
+ "cfg-if",
+ "cfg_aliases 0.2.1",
+ "libc",
+]
+
+[[package]]
+name = "normpath"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5831952a9476f2fed74b77d74182fa5ddc4d21c72ec45a333b250e3ed0272804"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "nu-ansi-term"
+version = "0.46.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
+dependencies = [
+ "overload",
+ "winapi",
+]
+
+[[package]]
+name = "num"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23"
+dependencies = [
+ "num-bigint",
+ "num-complex",
+ "num-integer",
+ "num-iter",
+ "num-rational",
+ "num-traits",
+]
+
+[[package]]
+name = "num-bigint"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7"
+dependencies = [
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-complex"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "num-integer"
+version = "0.1.46"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "num-iter"
+version = "0.1.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-rational"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
+dependencies = [
+ "num-bigint",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "objc"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
+dependencies = [
+ "malloc_buf",
+]
+
+[[package]]
+name = "object"
+version = "0.35.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8ec7ab813848ba4522158d5517a6093db1ded27575b070f4177b8d12b41db5e"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "opener"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8df34be653210fbe9ffaff41d3b92721c56ce82dfee58ee684f9afb5e3a90c0"
+dependencies = [
+ "bstr",
+ "dbus",
+ "normpath",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "openssl"
+version = "0.10.64"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
+dependencies = [
+ "bitflags 2.5.0",
+ "cfg-if",
+ "foreign-types 0.3.2",
+ "libc",
+ "once_cell",
+ "openssl-macros",
+ "openssl-sys",
+]
+
+[[package]]
+name = "openssl-macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.102"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "option-ext"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
+
+[[package]]
+name = "ordered-stream"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50"
+dependencies = [
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "overload"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
+[[package]]
+name = "pango"
+version = "0.18.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4"
+dependencies = [
+ "gio",
+ "glib",
+ "libc",
+ "once_cell",
+ "pango-sys",
+]
+
+[[package]]
+name = "pango-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "parking"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
+
+[[package]]
+name = "parking_lot"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "parse_int"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d695b79916a2c08bcff7be7647ab60d1402885265005a6658ffe6d763553c5a"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "passterm"
+version = "2.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eea7e8981bca32c52230ca5f28b080dd5f28aed618a7bd12b5a382b234cd2b99"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "paste"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
+
+[[package]]
+name = "percent-encoding"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+
+[[package]]
+name = "pest"
+version = "2.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8"
+dependencies = [
+ "memchr",
+ "thiserror",
+ "ucd-trie",
+]
+
+[[package]]
+name = "pest_derive"
+version = "2.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459"
+dependencies = [
+ "pest",
+ "pest_generator",
+]
+
+[[package]]
+name = "pest_generator"
+version = "2.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687"
+dependencies = [
+ "pest",
+ "pest_meta",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "pest_meta"
+version = "2.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd"
+dependencies = [
+ "once_cell",
+ "pest",
+ "sha2",
+]
+
+[[package]]
+name = "pin-project"
+version = "1.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "1.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "piper"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae1d5c74c9876f070d3e8fd503d748c7d974c3e48da8f41350fa5222ef9b4391"
+dependencies = [
+ "atomic-waker",
+ "fastrand 2.1.0",
+ "futures-io",
+]
+
+[[package]]
+name = "pkg-config"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+
+[[package]]
+name = "png"
+version = "0.17.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
+dependencies = [
+ "bitflags 1.3.2",
+ "crc32fast",
+ "fdeflate",
+ "flate2",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "polling"
+version = "2.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
+dependencies = [
+ "autocfg",
+ "bitflags 1.3.2",
+ "cfg-if",
+ "concurrent-queue",
+ "libc",
+ "log",
+ "pin-project-lite",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "polling"
+version = "3.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e6a007746f34ed64099e88783b0ae369eaa3da6392868ba262e2af9b8fbaea1"
+dependencies = [
+ "cfg-if",
+ "concurrent-queue",
+ "hermit-abi",
+ "pin-project-lite",
+ "rustix 0.38.34",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "proc-macro-crate"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
+dependencies = [
+ "once_cell",
+ "toml_edit 0.19.15",
+]
+
+[[package]]
+name = "proc-macro-crate"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8"
+dependencies = [
+ "toml_edit 0.20.7",
+]
+
+[[package]]
+name = "proc-macro-crate"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
+dependencies = [
+ "toml_edit 0.21.1",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.85"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e"
+dependencies = [
+ "bitflags 2.5.0",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891"
+dependencies = [
+ "getrandom",
+ "libredox",
+ "thiserror",
+]
+
+[[package]]
+name = "regex"
+version = "1.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b"
+
+[[package]]
+name = "reqwest"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10"
+dependencies = [
+ "base64",
+ "bytes",
+ "encoding_rs",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "http-body-util",
+ "hyper",
+ "hyper-tls",
+ "hyper-util",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "native-tls",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls-pemfile",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "sync_wrapper",
+ "system-configuration",
+ "tokio",
+ "tokio-native-tls",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "winreg",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "rustix"
+version = "0.37.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
+dependencies = [
+ "bitflags 1.3.2",
+ "errno",
+ "io-lifetimes",
+ "libc",
+ "linux-raw-sys 0.3.8",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "rustix"
+version = "0.38.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
+dependencies = [
+ "bitflags 2.5.0",
+ "errno",
+ "libc",
+ "linux-raw-sys 0.4.14",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "2.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d"
+dependencies = [
+ "base64",
+ "rustls-pki-types",
+]
+
+[[package]]
+name = "rustls-pki-types"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d"
+
+[[package]]
+name = "ryu"
+version = "1.0.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
+
+[[package]]
+name = "schannel"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "secrecy"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e"
+dependencies = [
+ "zeroize",
+]
+
+[[package]]
+name = "secret-service"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5204d39df37f06d1944935232fd2dfe05008def7ca599bf28c0800366c8a8f9"
+dependencies = [
+ "aes",
+ "cbc",
+ "futures-util",
+ "generic-array",
+ "hkdf",
+ "num",
+ "once_cell",
+ "rand",
+ "serde",
+ "sha2",
+ "zbus 3.15.2",
+]
+
+[[package]]
+name = "security-framework"
+version = "2.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0"
+dependencies = [
+ "bitflags 2.5.0",
+ "core-foundation",
+ "core-foundation-sys",
+ "libc",
+ "security-framework-sys",
+]
+
+[[package]]
+name = "security-framework-sys"
+version = "2.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "semver"
+version = "1.0.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
+
+[[package]]
+name = "serde"
+version = "1.0.203"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.203"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.117"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_repr"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_urlencoded"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+dependencies = [
+ "form_urlencoded",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "sha1"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sha1_smol"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012"
+
+[[package]]
+name = "sha2"
+version = "0.10.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sharded-slab"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "simd-adler32"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
+
+[[package]]
+name = "snx-rs"
+version = "2.2.3"
+dependencies = [
+ "anyhow",
+ "clap",
+ "futures",
+ "ipnet",
+ "libc",
+ "snxcore",
+ "tokio",
+ "tracing",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "snx-rs-gui"
+version = "2.2.3"
+dependencies = [
+ "anyhow",
+ "async-channel",
+ "clap",
+ "futures",
+ "gtk",
+ "hex",
+ "ipnet",
+ "once_cell",
+ "png",
+ "snxcore",
+ "tokio",
+ "tracing",
+ "tracing-subscriber",
+ "tray-icon",
+ "webkit2gtk",
+ "zbus 4.2.2",
+]
+
+[[package]]
+name = "snxcore"
+version = "2.2.3"
+dependencies = [
+ "anyhow",
+ "async-recursion",
+ "async-trait",
+ "base64",
+ "byteorder",
+ "bytes",
+ "chrono",
+ "directories-next",
+ "enum-as-inner",
+ "futures",
+ "hex",
+ "ipnet",
+ "isakmp",
+ "libc",
+ "nix 0.29.0",
+ "num-traits",
+ "once_cell",
+ "parking_lot",
+ "parse_int",
+ "passterm",
+ "pest",
+ "pest_derive",
+ "rand",
+ "regex",
+ "reqwest",
+ "secret-service",
+ "serde",
+ "serde_json",
+ "tokio",
+ "tokio-native-tls",
+ "tokio-util",
+ "tracing",
+ "tun",
+ "uuid",
+ "zbus 4.2.2",
+]
+
+[[package]]
+name = "snxctl"
+version = "2.2.3"
+dependencies = [
+ "anyhow",
+ "clap",
+ "opener",
+ "snxcore",
+ "tokio",
+ "tracing",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "socket2"
+version = "0.4.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "socket2"
+version = "0.5.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "soup3"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f"
+dependencies = [
+ "futures-channel",
+ "gio",
+ "glib",
+ "libc",
+ "soup3-sys",
+]
+
+[[package]]
+name = "soup3-sys"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27"
+dependencies = [
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "stable_deref_trait"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+
+[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
+name = "strsim"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
+
+[[package]]
+name = "subtle"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.66"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "sync_wrapper"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
+
+[[package]]
+name = "synstructure"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "system-configuration"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "system-configuration-sys",
+]
+
+[[package]]
+name = "system-configuration-sys"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "system-deps"
+version = "6.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349"
+dependencies = [
+ "cfg-expr",
+ "heck 0.5.0",
+ "pkg-config",
+ "toml",
+ "version-compare",
+]
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
+
+[[package]]
+name = "tempfile"
+version = "3.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
+dependencies = [
+ "cfg-if",
+ "fastrand 2.1.0",
+ "rustix 0.38.34",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+]
+
+[[package]]
+name = "tinystr"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f"
+dependencies = [
+ "displaydoc",
+ "zerovec",
+]
+
+[[package]]
+name = "tokio"
+version = "1.38.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a"
+dependencies = [
+ "backtrace",
+ "bytes",
+ "libc",
+ "mio",
+ "num_cpus",
+ "pin-project-lite",
+ "signal-hook-registry",
+ "socket2 0.5.7",
+ "tokio-macros",
+ "tracing",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "tokio-macros"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "tokio-native-tls"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
+dependencies = [
+ "native-tls",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-util"
+version = "0.7.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "futures-sink",
+ "pin-project-lite",
+ "tokio",
+]
+
+[[package]]
+name = "toml"
+version = "0.8.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit 0.22.14",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.19.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow 0.5.40",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.20.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow 0.5.40",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow 0.5.40",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38"
+dependencies = [
+ "indexmap",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow 0.6.13",
+]
+
+[[package]]
+name = "tower"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"
+dependencies = [
+ "futures-core",
+ "futures-util",
+ "pin-project",
+ "pin-project-lite",
+ "tokio",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
+name = "tower-layer"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0"
+
+[[package]]
+name = "tower-service"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+
+[[package]]
+name = "tracing"
+version = "0.1.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+dependencies = [
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+dependencies = [
+ "once_cell",
+ "valuable",
+]
+
+[[package]]
+name = "tracing-log"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
+dependencies = [
+ "log",
+ "once_cell",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-subscriber"
+version = "0.3.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
+dependencies = [
+ "nu-ansi-term",
+ "sharded-slab",
+ "smallvec",
+ "thread_local",
+ "tracing-core",
+ "tracing-log",
+]
+
+[[package]]
+name = "tray-icon"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ad8319cca93189ea9ab1b290de0595960529750b6b8b501a399ed1ec3775d60"
+dependencies = [
+ "cocoa",
+ "core-graphics",
+ "crossbeam-channel",
+ "dirs",
+ "libappindicator",
+ "muda",
+ "objc",
+ "once_cell",
+ "png",
+ "thiserror",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "try-lock"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
+
+[[package]]
+name = "tun"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0adb9992bbd5ca76f3847ed579ad4ee8defb2ec2eea918cceef17ccc66fa4fd4"
+dependencies = [
+ "byteorder",
+ "bytes",
+ "futures-core",
+ "ioctl-sys",
+ "libc",
+ "log",
+ "thiserror",
+ "tokio",
+ "tokio-util",
+ "wintun",
+]
+
+[[package]]
+name = "typenum"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+[[package]]
+name = "ucd-trie"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
+
+[[package]]
+name = "uds_windows"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
+dependencies = [
+ "memoffset 0.9.1",
+ "tempfile",
+ "winapi",
+]
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
+
+[[package]]
+name = "url"
+version = "2.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7c25da092f0a868cdf09e8674cd3b7ef3a7d92a24253e663a2fb85e2496de56"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+]
+
+[[package]]
+name = "utf16_iter"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246"
+
+[[package]]
+name = "utf8_iter"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
+
+[[package]]
+name = "utf8parse"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
+
+[[package]]
+name = "uuid"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
+dependencies = [
+ "getrandom",
+ "sha1_smol",
+]
+
+[[package]]
+name = "valuable"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "version-compare"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "waker-fn"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7"
+
+[[package]]
+name = "want"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
+dependencies = [
+ "try-lock",
+]
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
+
+[[package]]
+name = "web-sys"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "webkit2gtk"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76b1bc1e54c581da1e9f179d0b38512ba358fb1af2d634a1affe42e37172361a"
+dependencies = [
+ "bitflags 1.3.2",
+ "cairo-rs",
+ "gdk",
+ "gdk-sys",
+ "gio",
+ "gio-sys",
+ "glib",
+ "glib-sys",
+ "gobject-sys",
+ "gtk",
+ "gtk-sys",
+ "javascriptcore-rs",
+ "libc",
+ "once_cell",
+ "soup3",
+ "webkit2gtk-sys",
+]
+
+[[package]]
+name = "webkit2gtk-sys"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62daa38afc514d1f8f12b8693d30d5993ff77ced33ce30cd04deebc267a6d57c"
+dependencies = [
+ "bitflags 1.3.2",
+ "cairo-sys-rs",
+ "gdk-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "gtk-sys",
+ "javascriptcore-rs-sys",
+ "libc",
+ "pkg-config",
+ "soup3-sys",
+ "system-deps",
+]
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows"
+version = "0.51.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9"
+dependencies = [
+ "windows-core 0.51.1",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.51.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
+
+[[package]]
+name = "winnow"
+version = "0.5.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winnow"
+version = "0.6.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59b5e5f6c299a3c7890b876a2a587f3115162487e704907d9b6cd29473052ba1"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winreg"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "wintun"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29b83b0eca06dd125dbcd48a45327c708a6da8aada3d95a3f06db0ce4b17e0d4"
+dependencies = [
+ "c2rust-bitfields",
+ "libloading 0.8.3",
+ "log",
+ "thiserror",
+ "windows",
+]
+
+[[package]]
+name = "write16"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936"
+
+[[package]]
+name = "writeable"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51"
+
+[[package]]
+name = "xdg-home"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca91dcf8f93db085f3a0a29358cd0b9d670915468f4290e8b85d118a34211ab8"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "yoke"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5"
+dependencies = [
+ "serde",
+ "stable_deref_trait",
+ "yoke-derive",
+ "zerofrom",
+]
+
+[[package]]
+name = "yoke-derive"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+ "synstructure",
+]
+
+[[package]]
+name = "zbus"
+version = "3.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "675d170b632a6ad49804c8cf2105d7c31eddd3312555cffd4b740e08e97c25e6"
+dependencies = [
+ "async-broadcast 0.5.1",
+ "async-process 1.8.1",
+ "async-recursion",
+ "async-trait",
+ "byteorder",
+ "derivative",
+ "enumflags2",
+ "event-listener 2.5.3",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "hex",
+ "nix 0.26.4",
+ "once_cell",
+ "ordered-stream",
+ "rand",
+ "serde",
+ "serde_repr",
+ "sha1",
+ "static_assertions",
+ "tokio",
+ "tracing",
+ "uds_windows",
+ "winapi",
+ "xdg-home",
+ "zbus_macros 3.15.2",
+ "zbus_names 2.6.1",
+ "zvariant 3.15.2",
+]
+
+[[package]]
+name = "zbus"
+version = "4.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "989c3977a7aafa97b12b9a35d21cdcff9b0d2289762b14683f45d66b1ba6c48f"
+dependencies = [
+ "async-broadcast 0.7.1",
+ "async-process 2.2.3",
+ "async-recursion",
+ "async-trait",
+ "enumflags2",
+ "event-listener 5.3.1",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "hex",
+ "nix 0.28.0",
+ "ordered-stream",
+ "rand",
+ "serde",
+ "serde_repr",
+ "sha1",
+ "static_assertions",
+ "tokio",
+ "tracing",
+ "uds_windows",
+ "windows-sys 0.52.0",
+ "xdg-home",
+ "zbus_macros 4.2.2",
+ "zbus_names 3.0.0",
+ "zvariant 4.1.1",
+]
+
+[[package]]
+name = "zbus_macros"
+version = "3.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7131497b0f887e8061b430c530240063d33bf9455fa34438f388a245da69e0a5"
+dependencies = [
+ "proc-macro-crate 1.3.1",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "syn 1.0.109",
+ "zvariant_utils 1.0.1",
+]
+
+[[package]]
+name = "zbus_macros"
+version = "4.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6fe9de53245dcf426b7be226a4217dd5e339080e5d46e64a02d6e5dcbf90fca1"
+dependencies = [
+ "proc-macro-crate 3.1.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+ "zvariant_utils 2.0.0",
+]
+
+[[package]]
+name = "zbus_names"
+version = "2.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "437d738d3750bed6ca9b8d423ccc7a8eb284f6b1d6d4e225a0e4e6258d864c8d"
+dependencies = [
+ "serde",
+ "static_assertions",
+ "zvariant 3.15.2",
+]
+
+[[package]]
+name = "zbus_names"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c"
+dependencies = [
+ "serde",
+ "static_assertions",
+ "zvariant 4.1.1",
+]
+
+[[package]]
+name = "zerofrom"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55"
+dependencies = [
+ "zerofrom-derive",
+]
+
+[[package]]
+name = "zerofrom-derive"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+ "synstructure",
+]
+
+[[package]]
+name = "zeroize"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde"
+
+[[package]]
+name = "zerovec"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb2cc8827d6c0994478a15c53f374f46fbd41bea663d809b14744bc42e6b109c"
+dependencies = [
+ "yoke",
+ "zerofrom",
+ "zerovec-derive",
+]
+
+[[package]]
+name = "zerovec-derive"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97cf56601ee5052b4417d90c8755c6683473c926039908196cf35d99f893ebe7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "zvariant"
+version = "3.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4eef2be88ba09b358d3b58aca6e41cd853631d44787f319a1383ca83424fb2db"
+dependencies = [
+ "byteorder",
+ "enumflags2",
+ "libc",
+ "serde",
+ "static_assertions",
+ "zvariant_derive 3.15.2",
+]
+
+[[package]]
+name = "zvariant"
+version = "4.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aa6d31a02fbfb602bfde791de7fedeb9c2c18115b3d00f3a36e489f46ffbbc7"
+dependencies = [
+ "endi",
+ "enumflags2",
+ "serde",
+ "static_assertions",
+ "zvariant_derive 4.1.1",
+]
+
+[[package]]
+name = "zvariant_derive"
+version = "3.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37c24dc0bed72f5f90d1f8bb5b07228cbf63b3c6e9f82d82559d4bae666e7ed9"
+dependencies = [
+ "proc-macro-crate 1.3.1",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "zvariant_utils 1.0.1",
+]
+
+[[package]]
+name = "zvariant_derive"
+version = "4.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "642bf1b6b6d527988b3e8193d20969d53700a36eac734d21ae6639db168701c8"
+dependencies = [
+ "proc-macro-crate 3.1.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+ "zvariant_utils 2.0.0",
+]
+
+[[package]]
+name = "zvariant_utils"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "zvariant_utils"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc242db087efc22bd9ade7aa7809e4ba828132edc312871584a6b4391bdf8786"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
diff --git a/pkgs/by-name/sn/snx-rs/package.nix b/pkgs/by-name/sn/snx-rs/package.nix
new file mode 100644
index 0000000000000..ff8ee2deb50e7
--- /dev/null
+++ b/pkgs/by-name/sn/snx-rs/package.nix
@@ -0,0 +1,33 @@
+{ fetchFromGitHub, rustPlatform, lib, pkg-config, openssl, glib, atk, gtk3, libsoup, webkitgtk_4_1 }:
+rustPlatform.buildRustPackage {
+  pname = "snx-rs";
+  version = "2.2.3";
+
+  src = fetchFromGitHub {
+    owner = "ancwrd1";
+    repo = "snx-rs";
+    rev = "v2.2.3";
+    hash = "sha256-tBl67uDeYVmVBwi8NQVclfFQ0Sj1dl+hR8Jct1iE2LI=";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ openssl glib atk gtk3 libsoup webkitgtk_4_1 ];
+
+  checkFlags = [
+    "--skip=platform::linux::net::tests::test_default_ip"
+  ];
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "isakmp-0.1.0" = "sha256-6v5xhkt9iaQg3Eh8S1tXW55oLv4YFDYvY0cfsepMuIM=";
+    };
+  };
+
+  meta = {
+    description = "Open source Linux client for Checkpoint VPN tunnels";
+    homepage = "https://github.com/ancwrd1/snx-rs";
+    license = lib.licenses.agpl3Plus;
+    maintainers = [ lib.maintainers.lheckemann ];
+  };
+}
diff --git a/pkgs/applications/networking/soju/default.nix b/pkgs/by-name/so/soju/package.nix
index f8d6e3044314c..f3519f4782834 100644
--- a/pkgs/applications/networking/soju/default.nix
+++ b/pkgs/by-name/so/soju/package.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "soju";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchFromSourcehut {
     owner = "~emersion";
     repo = "soju";
     rev = "v${version}";
-    hash = "sha256-nzaYa4h+UZcP6jqFHxVjgQ/F3q9aOeOPgVKFWBy6Fag=";
+    hash = "sha256-K7Dgc1HQ6+GnjraQNcK9LOFxUIoKKWro1mWKDZFwLiE=";
   };
 
-  vendorHash = "sha256-JLght6bOrtc/VP3tfQboASa68VL2GGBTdK02DOC5EQk=";
+  vendorHash = "sha256-4Yl87Gk/HykjIyNpRfgthLf6b+v7kxmONIhYBWVXi0I=";
 
   nativeBuildInputs = [
     installShellFiles
@@ -39,7 +39,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A user-friendly IRC bouncer";
+    description = "User-friendly IRC bouncer";
     longDescription = ''
       soju is a user-friendly IRC bouncer. soju connects to upstream IRC servers
       on behalf of the user to provide extra functionality. soju supports many
@@ -50,6 +50,6 @@ buildGoModule rec {
     homepage = "https://soju.im";
     changelog = "https://git.sr.ht/~emersion/soju/refs/${src.rev}";
     license = licenses.agpl3Only;
-    maintainers = with maintainers; [ azahi malte-v ];
+    maintainers = with maintainers; [ azahi malte-v jtbx ];
   };
 }
diff --git a/pkgs/by-name/so/sonarlint-ls/package.nix b/pkgs/by-name/so/sonarlint-ls/package.nix
new file mode 100644
index 0000000000000..42b8d6098947e
--- /dev/null
+++ b/pkgs/by-name/so/sonarlint-ls/package.nix
@@ -0,0 +1,120 @@
+{ lib
+, fetchFromGitHub
+, jre_headless
+, maven
+, jdk17
+, makeWrapper
+, writeShellApplication
+, runCommand
+, sonarlint-ls
+, curl
+, pcre
+, common-updater-scripts
+, jq
+, gnused
+}:
+
+let
+  mavenJdk17 = maven.override { jdk = jdk17; };
+in
+mavenJdk17.buildMavenPackage rec {
+  pname = "sonarlint-ls";
+  version = "3.5.1.75119";
+
+  src = fetchFromGitHub {
+    owner = "SonarSource";
+    repo = "sonarlint-language-server";
+    rev = version;
+    hash = "sha256-6tbuX0wUpqbTyM44e7PqZHL0/XjN8hTFCgfzV+qc1m0=";
+  };
+
+  manualMvnArtifacts = [
+    "org.apache.maven.surefire:surefire-junit-platform:3.1.2"
+    "org.junit.platform:junit-platform-launcher:1.8.2"
+  ];
+
+  mvnHash = "sha256-ZhAQtpi0wQP8+QPeYaor2MveY+DZ9RPENb3kITnuWd8=";
+
+  buildOffline = true;
+
+
+  # disable node and npm module installation because the need network access
+  # for the tests.
+  mvnDepsParameters = "-Dskip.installnodenpm=true -Dskip.npm package";
+
+  # disable failing tests which either need network access or are flaky
+  mvnParameters = lib.escapeShellArgs [
+    "-Dskip.installnodenpm=true"
+    "-Dskip.npm"
+    "-Dtest=!LanguageServerMediumTests,
+    !LanguageServerWithFoldersMediumTests,
+    !NotebookMediumTests,
+    !ConnectedModeMediumTests,
+    !JavaMediumTests"
+  ];
+
+  doCheck = false;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{bin,share/plugins}
+    install -Dm644 target/sonarlint-language-server-*.jar \
+      $out/share/sonarlint-ls.jar
+    install -Dm644 target/plugins/* \
+      $out/share/plugins
+
+
+    makeWrapper ${jre_headless}/bin/java $out/bin/sonarlint-ls \
+      --add-flags "-jar $out/share/sonarlint-ls.jar" \
+      --add-flags "-stdio" \
+      --add-flags "-analyzers $(ls -1 $out/share/plugins | tr '\n' ' ')"
+
+    runHook postInstall
+  '';
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  passthru = {
+    tests = {
+      sonarlint-ls-starts-successfully = runCommand "${pname}-test" { } ''
+        ${sonarlint-ls}/bin/sonarlint-ls > $out
+        cat $out | grep "SonarLint backend started"
+      '';
+    };
+
+    updateScript =
+      let
+        pkgFile = builtins.toString ./package.nix;
+      in
+      lib.getExe (writeShellApplication {
+        name = "update-${pname}";
+        runtimeInputs = [ curl pcre common-updater-scripts jq gnused ];
+        text = ''
+          LATEST_TAG=$(curl https://api.github.com/repos/${src.owner}/${src.repo}/tags | \
+            jq -r '[.[] | select(.name | test("^[0-9]"))] | sort_by(.name | split(".") |
+            map(tonumber)) | reverse | .[0].name')
+          update-source-version ${pname} "$LATEST_TAG"
+          sed -i '0,/mvnHash *= *"[^"]*"/{s/mvnHash = "[^"]*"/mvnHash = ""/}' ${pkgFile}
+
+          echo -e "\nFetching all mvn dependencies to calculate the mvnHash. This may take a while ..."
+          nix-build -A ${pname}.fetchedMavenDeps 2> ${pname}-stderr.log || true
+
+          NEW_MVN_HASH=$(grep "got:" ${pname}-stderr.log | awk '{print ''$2}')
+          rm ${pname}-stderr.log
+          # escaping double quotes looks ugly but is needed for variable substitution
+          # use # instead of / as separator because the sha256 might contain the / character
+          sed -i "0,/mvnHash *= *\"[^\"]*\"/{s#mvnHash = \"[^\"]*\"#mvnHash = \"$NEW_MVN_HASH\"#}" ${pkgFile}
+        '';
+      });
+  };
+
+  meta = {
+    description = "Sonarlint language server";
+    mainProgram = "sonarlint-ls";
+    homepage = "https://github.com/SonarSource/sonarlint-language-server";
+    license = lib.licenses.lgpl3;
+    maintainers = with lib.maintainers; [ tricktron ];
+  };
+}
+
diff --git a/pkgs/by-name/so/sopwith/package.nix b/pkgs/by-name/so/sopwith/package.nix
index 8a4c1f9162010..fe6fb0c147d32 100644
--- a/pkgs/by-name/so/sopwith/package.nix
+++ b/pkgs/by-name/so/sopwith/package.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/fragglet/sdl-sopwith";
-    description = "Classic biplane shoot ‘em-up game.";
+    description = "Classic biplane shoot ‘em-up game";
     license = licenses.gpl2Plus;
     mainProgram = "sopwith";
     maintainers = with maintainers; [ evilbulgarian ];
diff --git a/pkgs/by-name/so/soupault/package.nix b/pkgs/by-name/so/soupault/package.nix
index a3d9257d3e310..c38e58d181d97 100644
--- a/pkgs/by-name/so/soupault/package.nix
+++ b/pkgs/by-name/so/soupault/package.nix
@@ -51,7 +51,7 @@ ocamlPackages.buildDunePackage rec {
   };
 
   meta = {
-    description = "A tool that helps you create and manage static websites";
+    description = "Tool that helps you create and manage static websites";
     homepage = "https://soupault.app/";
     changelog = "https://codeberg.org/PataphysicalSociety/soupault/src/branch/main/CHANGELOG.md";
     license = lib.licenses.mit;
diff --git a/pkgs/by-name/so/sourcery/package.nix b/pkgs/by-name/so/sourcery/package.nix
index 342d0e9187253..79f469347a89a 100644
--- a/pkgs/by-name/so/sourcery/package.nix
+++ b/pkgs/by-name/so/sourcery/package.nix
@@ -4,25 +4,25 @@
   python3Packages,
   fetchPypi,
   autoPatchelfHook,
-  libxcrypt-legacy,
+  zlib,
 }:
 
 let
   platformInfos = {
     "x86_64-linux" = {
       platform = "manylinux1_x86_64";
-      hash = "sha256-gr5z8VYkuCqgmcnyA01/Ez6aX9NrKR4MgA0Bc6IHnfs=";
+      hash = "sha256-IJFuMtrddHciuHGeiCuv4hgco9E3GJveegL7dBmVmAw=";
     };
     "x86_64-darwin" = {
       platform = "macosx_10_9_universal2";
-      hash = "sha256-5LsxeozPgInUC1QAxDSlr8NIfmRSl5BN+g9/ZYAxiRE=";
+      hash = "sha256-eTD8NnmDTMSB0dt5skPOlWbnW6AexxEkKZ9ABc+kUas=";
     };
   };
   platformInfo = platformInfos.${stdenv.system} or (throw "Unsupported platform ${stdenv.system}");
 in
 python3Packages.buildPythonApplication rec {
   pname = "sourcery";
-  version = "1.16.0";
+  version = "1.19.0";
   format = "wheel";
 
   src = fetchPypi {
@@ -32,11 +32,11 @@ python3Packages.buildPythonApplication rec {
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ];
 
-  buildInputs = [ libxcrypt-legacy ];
+  buildInputs = [ zlib ];
 
   meta = {
     changelog = "https://sourcery.ai/changelog/";
-    description = "An AI-powered code review and pair programming tool for Python";
+    description = "AI-powered code review and pair programming tool for Python";
     downloadPage = "https://pypi.org/project/sourcery/";
     homepage = "https://sourcery.ai";
     license = lib.licenses.unfree;
diff --git a/pkgs/by-name/sp/spacedrive/package.nix b/pkgs/by-name/sp/spacedrive/package.nix
index 80220ae4b941c..dc738be669d96 100644
--- a/pkgs/by-name/sp/spacedrive/package.nix
+++ b/pkgs/by-name/sp/spacedrive/package.nix
@@ -1,73 +1,136 @@
-{ lib
-, pkgs
-, stdenv
-, fetchurl
-, appimageTools
-, undmg
-, nix-update-script
+{
+  lib,
+  stdenv,
+  fetchurl,
+  undmg,
+  nix-update-script,
+  #linux required
+  autoPatchelfHook,
+  dpkg,
+  gdk-pixbuf,
+  glib,
+  gst_all_1,
+  libsoup,
+  webkitgtk_4_1,
+  xdotool,
 }:
 
 let
   pname = "spacedrive";
-  version = "0.2.14";
-
-  src = fetchurl {
-    aarch64-darwin = {
-      url = "https://github.com/spacedriveapp/spacedrive/releases/download/${version}/Spacedrive-darwin-aarch64.dmg";
-      hash = "sha256-G0Ey7ewZeXegiqkAXFmS0MdaYllTphp7Buqs5/4/mWY=";
-    };
-    x86_64-darwin = {
-      url = "https://github.com/spacedriveapp/spacedrive/releases/download/${version}/Spacedrive-darwin-x86_64.dmg";
-      hash = "sha256-ypUDb94RlGqJfkf4htWKZ0UrGZ0SyCZrrAqtMuxDzDI=";
-    };
-    x86_64-linux = {
-      url = "https://github.com/spacedriveapp/spacedrive/releases/download/${version}/Spacedrive-linux-x86_64.AppImage";
-      hash = "sha256-DFJ1/uJW0BwEtJZxGpnvGC7U8YmsJTUbcuWEOAP2Bno=";
-    };
-  }.${stdenv.system} or (throw "${pname}-${version}: ${stdenv.system} is unsupported.");
+  version = "0.3.1";
+
+  src =
+    fetchurl
+      {
+        aarch64-darwin = {
+          url = "https://github.com/spacedriveapp/spacedrive/releases/download/${version}/Spacedrive-darwin-aarch64.dmg";
+          hash = "sha256-9E7h03zJtH8b6khDcbBsB46iVWwl48s+GJuBMOmEre4=";
+        };
+        x86_64-darwin = {
+          url = "https://github.com/spacedriveapp/spacedrive/releases/download/${version}/Spacedrive-darwin-x86_64.dmg";
+          hash = "sha256-h+B7tc6jXJUFNEMhG6ZNch+grtgUeAzfa37BDoZ6M8Q=";
+        };
+        x86_64-linux = {
+          url = "https://github.com/spacedriveapp/spacedrive/releases/download/${version}/Spacedrive-linux-x86_64.deb";
+          hash = "sha256-E1mOODG4YzBc0TPZJmKgrt/c5hp5LwzLaYPl+J5dnkg=";
+        };
+      }
+      .${stdenv.system} or (throw "${pname}-${version}: ${stdenv.system} is unsupported.");
 
   meta = {
-    description = "An open source file manager, powered by a virtual distributed filesystem";
+    description = "Open source file manager, powered by a virtual distributed filesystem";
     homepage = "https://www.spacedrive.com";
     changelog = "https://github.com/spacedriveapp/spacedrive/releases/tag/${version}";
-    platforms = [ "aarch64-darwin" "x86_64-darwin" "x86_64-linux" ];
+    platforms = [
+      "aarch64-darwin"
+      "x86_64-darwin"
+      "x86_64-linux"
+    ];
     license = lib.licenses.agpl3Plus;
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
-    maintainers = with lib.maintainers; [ DataHearth heisfer mikaelfangel stepbrobd ];
+    maintainers = with lib.maintainers; [
+      DataHearth
+      heisfer
+      mikaelfangel
+      stepbrobd
+    ];
     mainProgram = "spacedrive";
   };
 
   passthru.updateScript = nix-update-script { };
 in
-if stdenv.isDarwin then stdenv.mkDerivation
-{
-  inherit pname version src meta passthru;
-
-  sourceRoot = "Spacedrive.app";
-
-  nativeBuildInputs = [ undmg ];
-
-  installPhase = ''
-    mkdir -p "$out/Applications/Spacedrive.app"
-    cp -r . "$out/Applications/Spacedrive.app"
-    mkdir -p "$out/bin"
-    ln -s "$out/Applications/Spacedrive.app/Contents/MacOS/Spacedrive" "$out/bin/spacedrive"
-  '';
-}
-else appimageTools.wrapType2 {
-  inherit pname version src meta passthru;
-
-  extraPkgs = pkgs: [ pkgs.libthai ];
-
-  extraInstallCommands =
-    let
-      appimageContents = appimageTools.extractType2 { inherit pname version src; };
-    in
-    ''
-      # Install .desktop files
-      install -Dm444 ${appimageContents}/com.spacedrive.desktop -t $out/share/applications
-      install -Dm444 ${appimageContents}/spacedrive.png -t $out/share/pixmaps
-      substituteInPlace $out/share/applications/com.spacedrive.desktop \
-        --replace 'Exec=usr/bin/spacedrive' 'Exec=spacedrive'
+if stdenv.isDarwin then
+  stdenv.mkDerivation {
+    inherit
+      pname
+      version
+      src
+      meta
+      passthru
+      ;
+
+    sourceRoot = "Spacedrive.app";
+
+    nativeBuildInputs = [ undmg ];
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p "$out/Applications/Spacedrive.app"
+      cp -r . "$out/Applications/Spacedrive.app"
+      mkdir -p "$out/bin"
+      ln -s "$out/Applications/Spacedrive.app/Contents/MacOS/Spacedrive" "$out/bin/spacedrive"
+
+      runHook postInstall
+    '';
+  }
+
+else
+  stdenv.mkDerivation {
+    inherit
+      pname
+      version
+      src
+      meta
+      passthru
+      ;
+
+    nativeBuildInputs = [
+      autoPatchelfHook
+      dpkg
+    ];
+
+    # Depends: libc6, libxdo3, libwebkit2gtk-4.1-0, libgtk-3-0
+    # Recommends: gstreamer1.0-plugins-ugly
+    # Suggests: gstreamer1.0-plugins-bad
+    buildInputs = [
+      xdotool
+      glib
+      libsoup
+      webkitgtk_4_1
+      gdk-pixbuf
+      gst_all_1.gst-plugins-ugly
+      gst_all_1.gst-plugins-bad
+      gst_all_1.gst-plugins-base
+      gst_all_1.gstreamer
+    ];
+
+    unpackPhase = ''
+      runHook preUnpack
+
+      dpkg-deb -x $src .
+
+      runHook postUnpack
+    '';
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out/bin
+      cp -r usr/share $out/
+      cp -r usr/lib $out/
+      cp -r usr/bin $out/
+
+      runHook postInstall
     '';
-}
+  }
diff --git a/pkgs/by-name/sp/spade/package.nix b/pkgs/by-name/sp/spade/package.nix
index 2781a6440de92..e1d133841f6b1 100644
--- a/pkgs/by-name/sp/spade/package.nix
+++ b/pkgs/by-name/sp/spade/package.nix
@@ -41,7 +41,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A better hardware description language";
+    description = "Better hardware description language";
     homepage = "https://gitlab.com/spade-lang/spade";
     changelog = "https://gitlab.com/spade-lang/spade/-/blob/${src.rev}/CHANGELOG.md";
     # compiler is eupl12, spade-lang stdlib is both asl20 and mit
diff --git a/pkgs/by-name/sp/spades/package.nix b/pkgs/by-name/sp/spades/package.nix
new file mode 100644
index 0000000000000..9a60ee499a645
--- /dev/null
+++ b/pkgs/by-name/sp/spades/package.nix
@@ -0,0 +1,46 @@
+{
+  lib,
+  stdenv,
+  fetchurl,
+  zlib,
+  bzip2,
+  cmake,
+  python3,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "spades";
+  version = "3.15.5";
+
+  src = fetchurl {
+    url = "https://github.com/ablab/spades/releases/download/v${finalAttrs.version}/SPAdes-${finalAttrs.version}.tar.gz";
+    hash = "sha256-FVw2QNVx8uexmgUDHR/Q0ZvYLfeF04hw+5O9JBsSu/o=";
+  };
+  sourceRoot = "SPAdes-${finalAttrs.version}/src";
+
+  env.CXXFLAGS = toString [
+    # GCC 13: error: 'uint32_t' does not name a type
+    "-include cstdint"
+  ];
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [
+    zlib
+    bzip2
+    python3
+  ];
+
+  doCheck = true;
+
+  meta = {
+    description = "St. Petersburg genome assembler, a toolkit for assembling and analyzing sequencing data";
+    license = lib.licenses.gpl2Only;
+    homepage = "http://ablab.github.io/spades";
+    platforms = [
+      "x86_64-linux"
+      "x86_64-darwin"
+    ];
+    maintainers = with lib.maintainers; [ bzizou ];
+  };
+})
diff --git a/pkgs/by-name/sp/spatial-shell/package.nix b/pkgs/by-name/sp/spatial-shell/package.nix
new file mode 100644
index 0000000000000..4b741f8aaec2b
--- /dev/null
+++ b/pkgs/by-name/sp/spatial-shell/package.nix
@@ -0,0 +1,37 @@
+{ lib
+, ocamlPackages
+, fetchFromGitHub
+, scdoc
+}:
+
+ocamlPackages.buildDunePackage rec {
+  pname = "spatial-shell";
+  version = "7";
+
+  src = fetchFromGitHub {
+    owner = "lthms";
+    repo = "spatial-shell";
+    rev = version;
+    hash = "sha256-OeNBP/jea1ABh/WpvCP7We+L20WoTfLZH71raH7bKPI=";
+  };
+
+  nativeBuildInputs = [
+    scdoc
+  ];
+
+  buildInputs = with ocamlPackages; [
+    cmdliner
+    ezjsonm-encoding
+    poll
+  ];
+
+  meta = {
+    description = "Implementing a spatial model inspired by Material Shell, for i3 and sway";
+    homepage = "https://spatial-shell.app";
+    changelog = "https://github.com/lthms/spatial-shell/blob/${src.rev}/CHANGES.md";
+    license = lib.licenses.mpl20;
+    maintainers = with lib.maintainers; [ fgaz ];
+    mainProgram = "spatial";
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/sp/speakersafetyd/package.nix b/pkgs/by-name/sp/speakersafetyd/package.nix
index aa44ad62c02bd..2fe430e4505ee 100644
--- a/pkgs/by-name/sp/speakersafetyd/package.nix
+++ b/pkgs/by-name/sp/speakersafetyd/package.nix
@@ -38,7 +38,7 @@ rustPlatform.buildRustPackage rec {
   dontCargoInstall = true;
 
   meta = with lib; {
-    description = "A userspace daemon written in Rust that implements an analogue of the Texas Instruments Smart Amp speaker protection model";
+    description = "Userspace daemon written in Rust that implements an analogue of the Texas Instruments Smart Amp speaker protection model";
     mainProgram = "speakersafetyd";
     homepage = "https://github.com/AsahiLinux/speakersafetyd";
     maintainers = with maintainers; [ yuka ];
diff --git a/pkgs/by-name/sp/spice-autorandr/package.nix b/pkgs/by-name/sp/spice-autorandr/package.nix
index 1291a0f612d7b..bcb063b9dd1a9 100644
--- a/pkgs/by-name/sp/spice-autorandr/package.nix
+++ b/pkgs/by-name/sp/spice-autorandr/package.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation  {
   '';
 
   meta = {
-    description = "Automatically adjust the client window resolution in Linux KVM guests using the SPICE driver.";
+    description = "Automatically adjust the client window resolution in Linux KVM guests using the SPICE driver";
     mainProgram = "spice-autorandr";
     longDescription = ''
       Some desktop environments update the display resolution automatically,
diff --git a/pkgs/by-name/sp/spicetify-cli/package.nix b/pkgs/by-name/sp/spicetify-cli/package.nix
index 22489b3b7c9c3..36db7162d87f8 100644
--- a/pkgs/by-name/sp/spicetify-cli/package.nix
+++ b/pkgs/by-name/sp/spicetify-cli/package.nix
@@ -1,4 +1,10 @@
-{ lib, buildGoModule, fetchFromGitHub, testers, spicetify-cli }:
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+  testers,
+  spicetify-cli,
+}:
 
 buildGoModule rec {
   pname = "spicetify-cli";
@@ -20,6 +26,8 @@ buildGoModule rec {
 
   # used at runtime, but not installed by default
   postInstall = ''
+    mv $out/bin/spicetify-cli $out/bin/spicetify
+    ln -s $out/bin/spicetify $out/bin/spicetify-cli
     cp -r ${src}/jsHelper $out/bin/jsHelper
     cp -r ${src}/CustomApps $out/bin/CustomApps
     cp -r ${src}/Extensions $out/bin/Extensions
@@ -28,19 +36,19 @@ buildGoModule rec {
 
   doInstallCheck = true;
   installCheckPhase = ''
-    $out/bin/spicetify-cli --help > /dev/null
+    $out/bin/spicetify --help > /dev/null
   '';
 
-  passthru.tests.version = testers.testVersion {
-    package = spicetify-cli;
-    command = "spicetify-cli -v";
-  };
+  passthru.tests.version = testers.testVersion { package = spicetify-cli; };
 
   meta = with lib; {
     description = "Command-line tool to customize Spotify client";
     homepage = "https://github.com/spicetify/spicetify-cli/";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ jonringer mdarocha ];
-    mainProgram = "spicetify-cli";
+    maintainers = with maintainers; [
+      jonringer
+      mdarocha
+    ];
+    mainProgram = "spicetify";
   };
 }
diff --git a/pkgs/by-name/sp/spigot/package.nix b/pkgs/by-name/sp/spigot/package.nix
index 9515a573b7133..da8393210ca13 100644
--- a/pkgs/by-name/sp/spigot/package.nix
+++ b/pkgs/by-name/sp/spigot/package.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://www.chiark.greenend.org.uk/~sgtatham/spigot/";
-    description = "A command-line exact real calculator";
+    description = "Command-line exact real calculator";
     mainProgram = "spigot";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ AndersonTorres ];
diff --git a/pkgs/by-name/sp/spirit/package.nix b/pkgs/by-name/sp/spirit/package.nix
index ada3c2e9e021f..ec6d4f2b508d1 100644
--- a/pkgs/by-name/sp/spirit/package.nix
+++ b/pkgs/by-name/sp/spirit/package.nix
@@ -5,16 +5,16 @@
 
 buildGoModule {
   pname = "spirit";
-  version = "0-unstable-2024-04-18";
+  version = "0-unstable-2024-05-24";
 
   src = fetchFromGitHub {
     owner = "cashapp";
     repo = "spirit";
-    rev = "886ee21e7338faef6612495b27d409713a202082";
-    hash = "sha256-xXObprJCo9evArCX5ezqrD+lagiHMO4SwycY+pTkHPg=";
+    rev = "a384d903db9586d2610f06319bd67814dad678a5";
+    hash = "sha256-oybvdVSG9XvBk4j+a+R8CIrEmzZ+gV0Chysq/sr2sws=";
   };
 
-  vendorHash = "sha256-r6iQs5kgOniHCN8KteQ17rPhQ/73Exuqlu6qWgKEIzs=";
+  vendorHash = "sha256-iTU45Ce5Mb09MyJTzqueyO0F9wV39l106Lkj50oYDvc=";
 
   subPackages = [ "cmd/spirit" ];
 
diff --git a/pkgs/by-name/sp/spla/package.nix b/pkgs/by-name/sp/spla/package.nix
index 98222aa7c1f58..86124dfe77729 100644
--- a/pkgs/by-name/sp/spla/package.nix
+++ b/pkgs/by-name/sp/spla/package.nix
@@ -22,13 +22,13 @@ assert builtins.elem gpuBackend [ "none" "cuda" "rocm" ];
 
 stdenv.mkDerivation rec {
   pname = "spla";
-  version = "1.5.5";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "eth-cscs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-71QpwTsRogH+6Bik9DKwezl9SqwoLxQt4SZ7zw5X6DE=";
+    hash = "sha256-1k9Su7loXsH7AyhYFZax+4nyNoCO5+WJbXrzGGAIy/c=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/by-name/sp/sploitscan/package.nix b/pkgs/by-name/sp/sploitscan/package.nix
new file mode 100644
index 0000000000000..85477ba19b6d2
--- /dev/null
+++ b/pkgs/by-name/sp/sploitscan/package.nix
@@ -0,0 +1,45 @@
+{ lib
+, python3
+, fetchFromGitHub
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "sploitscan";
+  version = "0.9.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "xaitax";
+    repo = "SploitScan";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-l2nLqQoM5TuOezobipBV+s/nXTw37xhop/xpipLL1Bs=";
+  };
+
+  pythonRelaxDeps = [
+    "openai"
+    "requests"
+  ];
+
+  build-system = with python3.pkgs; [
+    setuptools
+  ];
+
+  nativeBuildInputs = with python3.pkgs; [ pythonRelaxDepsHook ];
+
+  dependencies = with python3.pkgs; [
+    jinja2
+    openai
+    requests
+  ];
+
+  pythonImportsCheck = [ "sploitscan" ];
+
+  meta = with lib; {
+    description = "Cybersecurity utility designed to provide detailed information on vulnerabilities and associated exploits";
+    homepage = "https://github.com/xaitax/SploitScan";
+    changelog = "https://github.com/xaitax/SploitScan/releases/tag/v${version}";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "sploitscan";
+  };
+}
diff --git a/pkgs/by-name/sp/spoof/package-lock.json b/pkgs/by-name/sp/spoof/package-lock.json
new file mode 100644
index 0000000000000..9604e8fcf4af7
--- /dev/null
+++ b/pkgs/by-name/sp/spoof/package-lock.json
@@ -0,0 +1,3472 @@
+{
+  "name": "spoof",
+  "version": "2.0.4",
+  "lockfileVersion": 3,
+  "requires": true,
+  "packages": {
+    "": {
+      "name": "spoof",
+      "version": "2.0.4",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
+      "license": "MIT",
+      "dependencies": {
+        "chalk": "^4.1.0",
+        "common-tags": "^1.8.0",
+        "minimist": "^1.2.5",
+        "shell-quote": "^1.7.2",
+        "winreg": "^1.2.4",
+        "zero-fill": "^2.2.4"
+      },
+      "bin": {
+        "spoof": "bin/cmd.js"
+      },
+      "devDependencies": {
+        "standard": "*",
+        "tape": "^5.0.1"
+      }
+    },
+    "node_modules/@aashutoshrathi/word-wrap": {
+      "version": "1.2.6",
+      "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
+      "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/@eslint-community/eslint-utils": {
+      "version": "4.4.0",
+      "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
+      "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+      "dev": true,
+      "dependencies": {
+        "eslint-visitor-keys": "^3.3.0"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "peerDependencies": {
+        "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+      }
+    },
+    "node_modules/@eslint-community/regexpp": {
+      "version": "4.10.0",
+      "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
+      "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
+      "dev": true,
+      "engines": {
+        "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+      }
+    },
+    "node_modules/@eslint/eslintrc": {
+      "version": "2.1.4",
+      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
+      "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
+      "dev": true,
+      "dependencies": {
+        "ajv": "^6.12.4",
+        "debug": "^4.3.2",
+        "espree": "^9.6.0",
+        "globals": "^13.19.0",
+        "ignore": "^5.2.0",
+        "import-fresh": "^3.2.1",
+        "js-yaml": "^4.1.0",
+        "minimatch": "^3.1.2",
+        "strip-json-comments": "^3.1.1"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/@eslint/js": {
+      "version": "8.56.0",
+      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz",
+      "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==",
+      "dev": true,
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      }
+    },
+    "node_modules/@humanwhocodes/config-array": {
+      "version": "0.11.14",
+      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
+      "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
+      "dev": true,
+      "dependencies": {
+        "@humanwhocodes/object-schema": "^2.0.2",
+        "debug": "^4.3.1",
+        "minimatch": "^3.0.5"
+      },
+      "engines": {
+        "node": ">=10.10.0"
+      }
+    },
+    "node_modules/@humanwhocodes/module-importer": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+      "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+      "dev": true,
+      "engines": {
+        "node": ">=12.22"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/nzakas"
+      }
+    },
+    "node_modules/@humanwhocodes/object-schema": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
+      "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==",
+      "dev": true
+    },
+    "node_modules/@ljharb/resumer": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/@ljharb/resumer/-/resumer-0.0.1.tgz",
+      "integrity": "sha512-skQiAOrCfO7vRTq53cxznMpks7wS1va95UCidALlOVWqvBAzwPVErwizDwoMqNVMEn1mDq0utxZd02eIrvF1lw==",
+      "dev": true,
+      "dependencies": {
+        "@ljharb/through": "^2.3.9"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/@ljharb/through": {
+      "version": "2.3.12",
+      "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.12.tgz",
+      "integrity": "sha512-ajo/heTlG3QgC8EGP6APIejksVAYt4ayz4tqoP3MolFELzcH1x1fzwEYRJTPO0IELutZ5HQ0c26/GqAYy79u3g==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.5"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/@nodelib/fs.scandir": {
+      "version": "2.1.5",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+      "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+      "dev": true,
+      "dependencies": {
+        "@nodelib/fs.stat": "2.0.5",
+        "run-parallel": "^1.1.9"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@nodelib/fs.stat": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+      "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+      "dev": true,
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@nodelib/fs.walk": {
+      "version": "1.2.8",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+      "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+      "dev": true,
+      "dependencies": {
+        "@nodelib/fs.scandir": "2.1.5",
+        "fastq": "^1.6.0"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@types/json5": {
+      "version": "0.0.29",
+      "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+      "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
+      "dev": true
+    },
+    "node_modules/@ungap/structured-clone": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+      "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
+      "dev": true
+    },
+    "node_modules/acorn": {
+      "version": "8.11.3",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
+      "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+      "dev": true,
+      "bin": {
+        "acorn": "bin/acorn"
+      },
+      "engines": {
+        "node": ">=0.4.0"
+      }
+    },
+    "node_modules/acorn-jsx": {
+      "version": "5.3.2",
+      "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+      "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+      "dev": true,
+      "peerDependencies": {
+        "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+      }
+    },
+    "node_modules/ajv": {
+      "version": "6.12.6",
+      "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+      "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+      "dev": true,
+      "dependencies": {
+        "fast-deep-equal": "^3.1.1",
+        "fast-json-stable-stringify": "^2.0.0",
+        "json-schema-traverse": "^0.4.1",
+        "uri-js": "^4.2.2"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/epoberezkin"
+      }
+    },
+    "node_modules/ansi-regex": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/ansi-styles": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+      "dependencies": {
+        "color-convert": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/argparse": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+      "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+      "dev": true
+    },
+    "node_modules/array-buffer-byte-length": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz",
+      "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "is-array-buffer": "^3.0.1"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/array-includes": {
+      "version": "3.1.7",
+      "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz",
+      "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.2.0",
+        "es-abstract": "^1.22.1",
+        "get-intrinsic": "^1.2.1",
+        "is-string": "^1.0.7"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/array.prototype.every": {
+      "version": "1.1.5",
+      "resolved": "https://registry.npmjs.org/array.prototype.every/-/array.prototype.every-1.1.5.tgz",
+      "integrity": "sha512-FfMQJ+/joFGXpRCltbzV3znaP5QxIhLFySo0fEPn3GuoYlud9LhknMCIxdYKC2qsM/6VHoSp6YGwe3EZXrEcwQ==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.2.0",
+        "es-abstract": "^1.22.1",
+        "is-string": "^1.0.7"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/array.prototype.findlastindex": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz",
+      "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.2.0",
+        "es-abstract": "^1.22.1",
+        "es-shim-unscopables": "^1.0.0",
+        "get-intrinsic": "^1.2.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/array.prototype.flat": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
+      "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.2.0",
+        "es-abstract": "^1.22.1",
+        "es-shim-unscopables": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/array.prototype.flatmap": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
+      "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.2.0",
+        "es-abstract": "^1.22.1",
+        "es-shim-unscopables": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/array.prototype.tosorted": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz",
+      "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.2.0",
+        "es-abstract": "^1.22.1",
+        "es-shim-unscopables": "^1.0.0",
+        "get-intrinsic": "^1.2.1"
+      }
+    },
+    "node_modules/arraybuffer.prototype.slice": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz",
+      "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==",
+      "dev": true,
+      "dependencies": {
+        "array-buffer-byte-length": "^1.0.0",
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.2.0",
+        "es-abstract": "^1.22.1",
+        "get-intrinsic": "^1.2.1",
+        "is-array-buffer": "^3.0.2",
+        "is-shared-array-buffer": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/asynciterator.prototype": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz",
+      "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==",
+      "dev": true,
+      "dependencies": {
+        "has-symbols": "^1.0.3"
+      }
+    },
+    "node_modules/available-typed-arrays": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz",
+      "integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/balanced-match": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+      "dev": true
+    },
+    "node_modules/brace-expansion": {
+      "version": "1.1.11",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+      "dev": true,
+      "dependencies": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "node_modules/builtins": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz",
+      "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==",
+      "dev": true,
+      "dependencies": {
+        "semver": "^7.0.0"
+      }
+    },
+    "node_modules/builtins/node_modules/semver": {
+      "version": "7.5.4",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+      "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+      "dev": true,
+      "dependencies": {
+        "lru-cache": "^6.0.0"
+      },
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/call-bind": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
+      "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
+      "dev": true,
+      "dependencies": {
+        "function-bind": "^1.1.2",
+        "get-intrinsic": "^1.2.1",
+        "set-function-length": "^1.1.1"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/callsites": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+      "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/chalk": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+      "dependencies": {
+        "ansi-styles": "^4.1.0",
+        "supports-color": "^7.1.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/chalk?sponsor=1"
+      }
+    },
+    "node_modules/color-convert": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+      "dependencies": {
+        "color-name": "~1.1.4"
+      },
+      "engines": {
+        "node": ">=7.0.0"
+      }
+    },
+    "node_modules/color-name": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+    },
+    "node_modules/common-tags": {
+      "version": "1.8.2",
+      "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz",
+      "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==",
+      "engines": {
+        "node": ">=4.0.0"
+      }
+    },
+    "node_modules/concat-map": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+      "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+      "dev": true
+    },
+    "node_modules/cross-spawn": {
+      "version": "7.0.3",
+      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+      "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+      "dev": true,
+      "dependencies": {
+        "path-key": "^3.1.0",
+        "shebang-command": "^2.0.0",
+        "which": "^2.0.1"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/debug": {
+      "version": "4.3.4",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+      "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+      "dev": true,
+      "dependencies": {
+        "ms": "2.1.2"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/deep-equal": {
+      "version": "2.2.3",
+      "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz",
+      "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==",
+      "dev": true,
+      "dependencies": {
+        "array-buffer-byte-length": "^1.0.0",
+        "call-bind": "^1.0.5",
+        "es-get-iterator": "^1.1.3",
+        "get-intrinsic": "^1.2.2",
+        "is-arguments": "^1.1.1",
+        "is-array-buffer": "^3.0.2",
+        "is-date-object": "^1.0.5",
+        "is-regex": "^1.1.4",
+        "is-shared-array-buffer": "^1.0.2",
+        "isarray": "^2.0.5",
+        "object-is": "^1.1.5",
+        "object-keys": "^1.1.1",
+        "object.assign": "^4.1.4",
+        "regexp.prototype.flags": "^1.5.1",
+        "side-channel": "^1.0.4",
+        "which-boxed-primitive": "^1.0.2",
+        "which-collection": "^1.0.1",
+        "which-typed-array": "^1.1.13"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/deep-is": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+      "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+      "dev": true
+    },
+    "node_modules/define-data-property": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz",
+      "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==",
+      "dev": true,
+      "dependencies": {
+        "get-intrinsic": "^1.2.1",
+        "gopd": "^1.0.1",
+        "has-property-descriptors": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/define-properties": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+      "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
+      "dev": true,
+      "dependencies": {
+        "define-data-property": "^1.0.1",
+        "has-property-descriptors": "^1.0.0",
+        "object-keys": "^1.1.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/defined": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz",
+      "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/doctrine": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+      "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+      "dev": true,
+      "dependencies": {
+        "esutils": "^2.0.2"
+      },
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
+    "node_modules/dotignore": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz",
+      "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==",
+      "dev": true,
+      "dependencies": {
+        "minimatch": "^3.0.4"
+      },
+      "bin": {
+        "ignored": "bin/ignored"
+      }
+    },
+    "node_modules/error-ex": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+      "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+      "dev": true,
+      "dependencies": {
+        "is-arrayish": "^0.2.1"
+      }
+    },
+    "node_modules/es-abstract": {
+      "version": "1.22.3",
+      "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz",
+      "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==",
+      "dev": true,
+      "dependencies": {
+        "array-buffer-byte-length": "^1.0.0",
+        "arraybuffer.prototype.slice": "^1.0.2",
+        "available-typed-arrays": "^1.0.5",
+        "call-bind": "^1.0.5",
+        "es-set-tostringtag": "^2.0.1",
+        "es-to-primitive": "^1.2.1",
+        "function.prototype.name": "^1.1.6",
+        "get-intrinsic": "^1.2.2",
+        "get-symbol-description": "^1.0.0",
+        "globalthis": "^1.0.3",
+        "gopd": "^1.0.1",
+        "has-property-descriptors": "^1.0.0",
+        "has-proto": "^1.0.1",
+        "has-symbols": "^1.0.3",
+        "hasown": "^2.0.0",
+        "internal-slot": "^1.0.5",
+        "is-array-buffer": "^3.0.2",
+        "is-callable": "^1.2.7",
+        "is-negative-zero": "^2.0.2",
+        "is-regex": "^1.1.4",
+        "is-shared-array-buffer": "^1.0.2",
+        "is-string": "^1.0.7",
+        "is-typed-array": "^1.1.12",
+        "is-weakref": "^1.0.2",
+        "object-inspect": "^1.13.1",
+        "object-keys": "^1.1.1",
+        "object.assign": "^4.1.4",
+        "regexp.prototype.flags": "^1.5.1",
+        "safe-array-concat": "^1.0.1",
+        "safe-regex-test": "^1.0.0",
+        "string.prototype.trim": "^1.2.8",
+        "string.prototype.trimend": "^1.0.7",
+        "string.prototype.trimstart": "^1.0.7",
+        "typed-array-buffer": "^1.0.0",
+        "typed-array-byte-length": "^1.0.0",
+        "typed-array-byte-offset": "^1.0.0",
+        "typed-array-length": "^1.0.4",
+        "unbox-primitive": "^1.0.2",
+        "which-typed-array": "^1.1.13"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/es-get-iterator": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz",
+      "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "get-intrinsic": "^1.1.3",
+        "has-symbols": "^1.0.3",
+        "is-arguments": "^1.1.1",
+        "is-map": "^2.0.2",
+        "is-set": "^2.0.2",
+        "is-string": "^1.0.7",
+        "isarray": "^2.0.5",
+        "stop-iteration-iterator": "^1.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/es-iterator-helpers": {
+      "version": "1.0.15",
+      "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz",
+      "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==",
+      "dev": true,
+      "dependencies": {
+        "asynciterator.prototype": "^1.0.0",
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.2.1",
+        "es-abstract": "^1.22.1",
+        "es-set-tostringtag": "^2.0.1",
+        "function-bind": "^1.1.1",
+        "get-intrinsic": "^1.2.1",
+        "globalthis": "^1.0.3",
+        "has-property-descriptors": "^1.0.0",
+        "has-proto": "^1.0.1",
+        "has-symbols": "^1.0.3",
+        "internal-slot": "^1.0.5",
+        "iterator.prototype": "^1.1.2",
+        "safe-array-concat": "^1.0.1"
+      }
+    },
+    "node_modules/es-set-tostringtag": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz",
+      "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==",
+      "dev": true,
+      "dependencies": {
+        "get-intrinsic": "^1.2.2",
+        "has-tostringtag": "^1.0.0",
+        "hasown": "^2.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/es-shim-unscopables": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
+      "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
+      "dev": true,
+      "dependencies": {
+        "hasown": "^2.0.0"
+      }
+    },
+    "node_modules/es-to-primitive": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+      "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+      "dev": true,
+      "dependencies": {
+        "is-callable": "^1.1.4",
+        "is-date-object": "^1.0.1",
+        "is-symbol": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/escape-string-regexp": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+      "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/eslint": {
+      "version": "8.56.0",
+      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz",
+      "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==",
+      "dev": true,
+      "dependencies": {
+        "@eslint-community/eslint-utils": "^4.2.0",
+        "@eslint-community/regexpp": "^4.6.1",
+        "@eslint/eslintrc": "^2.1.4",
+        "@eslint/js": "8.56.0",
+        "@humanwhocodes/config-array": "^0.11.13",
+        "@humanwhocodes/module-importer": "^1.0.1",
+        "@nodelib/fs.walk": "^1.2.8",
+        "@ungap/structured-clone": "^1.2.0",
+        "ajv": "^6.12.4",
+        "chalk": "^4.0.0",
+        "cross-spawn": "^7.0.2",
+        "debug": "^4.3.2",
+        "doctrine": "^3.0.0",
+        "escape-string-regexp": "^4.0.0",
+        "eslint-scope": "^7.2.2",
+        "eslint-visitor-keys": "^3.4.3",
+        "espree": "^9.6.1",
+        "esquery": "^1.4.2",
+        "esutils": "^2.0.2",
+        "fast-deep-equal": "^3.1.3",
+        "file-entry-cache": "^6.0.1",
+        "find-up": "^5.0.0",
+        "glob-parent": "^6.0.2",
+        "globals": "^13.19.0",
+        "graphemer": "^1.4.0",
+        "ignore": "^5.2.0",
+        "imurmurhash": "^0.1.4",
+        "is-glob": "^4.0.0",
+        "is-path-inside": "^3.0.3",
+        "js-yaml": "^4.1.0",
+        "json-stable-stringify-without-jsonify": "^1.0.1",
+        "levn": "^0.4.1",
+        "lodash.merge": "^4.6.2",
+        "minimatch": "^3.1.2",
+        "natural-compare": "^1.4.0",
+        "optionator": "^0.9.3",
+        "strip-ansi": "^6.0.1",
+        "text-table": "^0.2.0"
+      },
+      "bin": {
+        "eslint": "bin/eslint.js"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/eslint-config-standard": {
+      "version": "17.1.0",
+      "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz",
+      "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
+      "engines": {
+        "node": ">=12.0.0"
+      },
+      "peerDependencies": {
+        "eslint": "^8.0.1",
+        "eslint-plugin-import": "^2.25.2",
+        "eslint-plugin-n": "^15.0.0 || ^16.0.0 ",
+        "eslint-plugin-promise": "^6.0.0"
+      }
+    },
+    "node_modules/eslint-config-standard-jsx": {
+      "version": "11.0.0",
+      "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-11.0.0.tgz",
+      "integrity": "sha512-+1EV/R0JxEK1L0NGolAr8Iktm3Rgotx3BKwgaX+eAuSX8D952LULKtjgZD3F+e6SvibONnhLwoTi9DPxN5LvvQ==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
+      "peerDependencies": {
+        "eslint": "^8.8.0",
+        "eslint-plugin-react": "^7.28.0"
+      }
+    },
+    "node_modules/eslint-import-resolver-node": {
+      "version": "0.3.9",
+      "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
+      "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
+      "dev": true,
+      "dependencies": {
+        "debug": "^3.2.7",
+        "is-core-module": "^2.13.0",
+        "resolve": "^1.22.4"
+      }
+    },
+    "node_modules/eslint-import-resolver-node/node_modules/debug": {
+      "version": "3.2.7",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+      "dev": true,
+      "dependencies": {
+        "ms": "^2.1.1"
+      }
+    },
+    "node_modules/eslint-module-utils": {
+      "version": "2.8.0",
+      "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz",
+      "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==",
+      "dev": true,
+      "dependencies": {
+        "debug": "^3.2.7"
+      },
+      "engines": {
+        "node": ">=4"
+      },
+      "peerDependenciesMeta": {
+        "eslint": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/eslint-module-utils/node_modules/debug": {
+      "version": "3.2.7",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+      "dev": true,
+      "dependencies": {
+        "ms": "^2.1.1"
+      }
+    },
+    "node_modules/eslint-plugin-es": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz",
+      "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==",
+      "dev": true,
+      "dependencies": {
+        "eslint-utils": "^2.0.0",
+        "regexpp": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=8.10.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/mysticatea"
+      },
+      "peerDependencies": {
+        "eslint": ">=4.19.1"
+      }
+    },
+    "node_modules/eslint-plugin-es/node_modules/eslint-utils": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
+      "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+      "dev": true,
+      "dependencies": {
+        "eslint-visitor-keys": "^1.1.0"
+      },
+      "engines": {
+        "node": ">=6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/mysticatea"
+      }
+    },
+    "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+      "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/eslint-plugin-import": {
+      "version": "2.29.1",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz",
+      "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==",
+      "dev": true,
+      "dependencies": {
+        "array-includes": "^3.1.7",
+        "array.prototype.findlastindex": "^1.2.3",
+        "array.prototype.flat": "^1.3.2",
+        "array.prototype.flatmap": "^1.3.2",
+        "debug": "^3.2.7",
+        "doctrine": "^2.1.0",
+        "eslint-import-resolver-node": "^0.3.9",
+        "eslint-module-utils": "^2.8.0",
+        "hasown": "^2.0.0",
+        "is-core-module": "^2.13.1",
+        "is-glob": "^4.0.3",
+        "minimatch": "^3.1.2",
+        "object.fromentries": "^2.0.7",
+        "object.groupby": "^1.0.1",
+        "object.values": "^1.1.7",
+        "semver": "^6.3.1",
+        "tsconfig-paths": "^3.15.0"
+      },
+      "engines": {
+        "node": ">=4"
+      },
+      "peerDependencies": {
+        "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
+      }
+    },
+    "node_modules/eslint-plugin-import/node_modules/debug": {
+      "version": "3.2.7",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+      "dev": true,
+      "dependencies": {
+        "ms": "^2.1.1"
+      }
+    },
+    "node_modules/eslint-plugin-import/node_modules/doctrine": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+      "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+      "dev": true,
+      "dependencies": {
+        "esutils": "^2.0.2"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/eslint-plugin-n": {
+      "version": "15.7.0",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz",
+      "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==",
+      "dev": true,
+      "dependencies": {
+        "builtins": "^5.0.1",
+        "eslint-plugin-es": "^4.1.0",
+        "eslint-utils": "^3.0.0",
+        "ignore": "^5.1.1",
+        "is-core-module": "^2.11.0",
+        "minimatch": "^3.1.2",
+        "resolve": "^1.22.1",
+        "semver": "^7.3.8"
+      },
+      "engines": {
+        "node": ">=12.22.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/mysticatea"
+      },
+      "peerDependencies": {
+        "eslint": ">=7.0.0"
+      }
+    },
+    "node_modules/eslint-plugin-n/node_modules/semver": {
+      "version": "7.5.4",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+      "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+      "dev": true,
+      "dependencies": {
+        "lru-cache": "^6.0.0"
+      },
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/eslint-plugin-promise": {
+      "version": "6.1.1",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz",
+      "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==",
+      "dev": true,
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "peerDependencies": {
+        "eslint": "^7.0.0 || ^8.0.0"
+      }
+    },
+    "node_modules/eslint-plugin-react": {
+      "version": "7.33.2",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz",
+      "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==",
+      "dev": true,
+      "dependencies": {
+        "array-includes": "^3.1.6",
+        "array.prototype.flatmap": "^1.3.1",
+        "array.prototype.tosorted": "^1.1.1",
+        "doctrine": "^2.1.0",
+        "es-iterator-helpers": "^1.0.12",
+        "estraverse": "^5.3.0",
+        "jsx-ast-utils": "^2.4.1 || ^3.0.0",
+        "minimatch": "^3.1.2",
+        "object.entries": "^1.1.6",
+        "object.fromentries": "^2.0.6",
+        "object.hasown": "^1.1.2",
+        "object.values": "^1.1.6",
+        "prop-types": "^15.8.1",
+        "resolve": "^2.0.0-next.4",
+        "semver": "^6.3.1",
+        "string.prototype.matchall": "^4.0.8"
+      },
+      "engines": {
+        "node": ">=4"
+      },
+      "peerDependencies": {
+        "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
+      }
+    },
+    "node_modules/eslint-plugin-react/node_modules/doctrine": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+      "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+      "dev": true,
+      "dependencies": {
+        "esutils": "^2.0.2"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/eslint-plugin-react/node_modules/resolve": {
+      "version": "2.0.0-next.5",
+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
+      "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
+      "dev": true,
+      "dependencies": {
+        "is-core-module": "^2.13.0",
+        "path-parse": "^1.0.7",
+        "supports-preserve-symlinks-flag": "^1.0.0"
+      },
+      "bin": {
+        "resolve": "bin/resolve"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/eslint-scope": {
+      "version": "7.2.2",
+      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+      "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
+      "dev": true,
+      "dependencies": {
+        "esrecurse": "^4.3.0",
+        "estraverse": "^5.2.0"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/eslint-utils": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
+      "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
+      "dev": true,
+      "dependencies": {
+        "eslint-visitor-keys": "^2.0.0"
+      },
+      "engines": {
+        "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/mysticatea"
+      },
+      "peerDependencies": {
+        "eslint": ">=5"
+      }
+    },
+    "node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+      "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/eslint-visitor-keys": {
+      "version": "3.4.3",
+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+      "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+      "dev": true,
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/espree": {
+      "version": "9.6.1",
+      "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+      "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
+      "dev": true,
+      "dependencies": {
+        "acorn": "^8.9.0",
+        "acorn-jsx": "^5.3.2",
+        "eslint-visitor-keys": "^3.4.1"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      }
+    },
+    "node_modules/esquery": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
+      "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
+      "dev": true,
+      "dependencies": {
+        "estraverse": "^5.1.0"
+      },
+      "engines": {
+        "node": ">=0.10"
+      }
+    },
+    "node_modules/esrecurse": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+      "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+      "dev": true,
+      "dependencies": {
+        "estraverse": "^5.2.0"
+      },
+      "engines": {
+        "node": ">=4.0"
+      }
+    },
+    "node_modules/estraverse": {
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+      "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+      "dev": true,
+      "engines": {
+        "node": ">=4.0"
+      }
+    },
+    "node_modules/esutils": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+      "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/fast-deep-equal": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+      "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+      "dev": true
+    },
+    "node_modules/fast-json-stable-stringify": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+      "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+      "dev": true
+    },
+    "node_modules/fast-levenshtein": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+      "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+      "dev": true
+    },
+    "node_modules/fastq": {
+      "version": "1.17.0",
+      "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.0.tgz",
+      "integrity": "sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==",
+      "dev": true,
+      "dependencies": {
+        "reusify": "^1.0.4"
+      }
+    },
+    "node_modules/file-entry-cache": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+      "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+      "dev": true,
+      "dependencies": {
+        "flat-cache": "^3.0.4"
+      },
+      "engines": {
+        "node": "^10.12.0 || >=12.0.0"
+      }
+    },
+    "node_modules/find-up": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+      "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+      "dev": true,
+      "dependencies": {
+        "locate-path": "^6.0.0",
+        "path-exists": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/flat-cache": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+      "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
+      "dev": true,
+      "dependencies": {
+        "flatted": "^3.2.9",
+        "keyv": "^4.5.3",
+        "rimraf": "^3.0.2"
+      },
+      "engines": {
+        "node": "^10.12.0 || >=12.0.0"
+      }
+    },
+    "node_modules/flatted": {
+      "version": "3.2.9",
+      "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
+      "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
+      "dev": true
+    },
+    "node_modules/for-each": {
+      "version": "0.3.3",
+      "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+      "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+      "dev": true,
+      "dependencies": {
+        "is-callable": "^1.1.3"
+      }
+    },
+    "node_modules/fs.realpath": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+      "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+      "dev": true
+    },
+    "node_modules/function-bind": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/function.prototype.name": {
+      "version": "1.1.6",
+      "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
+      "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.2.0",
+        "es-abstract": "^1.22.1",
+        "functions-have-names": "^1.2.3"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/functions-have-names": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+      "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/get-intrinsic": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
+      "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
+      "dev": true,
+      "dependencies": {
+        "function-bind": "^1.1.2",
+        "has-proto": "^1.0.1",
+        "has-symbols": "^1.0.3",
+        "hasown": "^2.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/get-package-type": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
+      "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=8.0.0"
+      }
+    },
+    "node_modules/get-stdin": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz",
+      "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/get-symbol-description": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
+      "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "get-intrinsic": "^1.1.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/glob": {
+      "version": "7.2.3",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+      "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+      "dev": true,
+      "dependencies": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^3.1.1",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      },
+      "engines": {
+        "node": "*"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/glob-parent": {
+      "version": "6.0.2",
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+      "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+      "dev": true,
+      "dependencies": {
+        "is-glob": "^4.0.3"
+      },
+      "engines": {
+        "node": ">=10.13.0"
+      }
+    },
+    "node_modules/globals": {
+      "version": "13.24.0",
+      "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+      "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+      "dev": true,
+      "dependencies": {
+        "type-fest": "^0.20.2"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/globalthis": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
+      "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+      "dev": true,
+      "dependencies": {
+        "define-properties": "^1.1.3"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/gopd": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+      "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+      "dev": true,
+      "dependencies": {
+        "get-intrinsic": "^1.1.3"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/graceful-fs": {
+      "version": "4.2.11",
+      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+      "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+      "dev": true
+    },
+    "node_modules/graphemer": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+      "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
+      "dev": true
+    },
+    "node_modules/has-bigints": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+      "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-dynamic-import": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/has-dynamic-import/-/has-dynamic-import-2.1.0.tgz",
+      "integrity": "sha512-su0anMkNEnJKZ/rB99jn3y6lV/J8Ro96hBJ28YAeVzj5rWxH+YL/AdCyiYYA1HDLV9YhmvqpWSJJj2KLo1MX6g==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.5",
+        "get-intrinsic": "^1.2.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-flag": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/has-property-descriptors": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
+      "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
+      "dev": true,
+      "dependencies": {
+        "get-intrinsic": "^1.2.2"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-proto": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
+      "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-symbols": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+      "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-tostringtag": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+      "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+      "dev": true,
+      "dependencies": {
+        "has-symbols": "^1.0.3"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/hasown": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
+      "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
+      "dev": true,
+      "dependencies": {
+        "function-bind": "^1.1.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/ignore": {
+      "version": "5.3.1",
+      "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
+      "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
+      "dev": true,
+      "engines": {
+        "node": ">= 4"
+      }
+    },
+    "node_modules/import-fresh": {
+      "version": "3.3.0",
+      "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+      "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+      "dev": true,
+      "dependencies": {
+        "parent-module": "^1.0.0",
+        "resolve-from": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/imurmurhash": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+      "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.8.19"
+      }
+    },
+    "node_modules/inflight": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+      "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+      "dev": true,
+      "dependencies": {
+        "once": "^1.3.0",
+        "wrappy": "1"
+      }
+    },
+    "node_modules/inherits": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+      "dev": true
+    },
+    "node_modules/internal-slot": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz",
+      "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==",
+      "dev": true,
+      "dependencies": {
+        "get-intrinsic": "^1.2.2",
+        "hasown": "^2.0.0",
+        "side-channel": "^1.0.4"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/is-arguments": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
+      "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "has-tostringtag": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-array-buffer": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz",
+      "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "get-intrinsic": "^1.2.0",
+        "is-typed-array": "^1.1.10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-arrayish": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+      "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+      "dev": true
+    },
+    "node_modules/is-async-function": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
+      "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==",
+      "dev": true,
+      "dependencies": {
+        "has-tostringtag": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-bigint": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+      "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+      "dev": true,
+      "dependencies": {
+        "has-bigints": "^1.0.1"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-boolean-object": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
+      "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "has-tostringtag": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-callable": {
+      "version": "1.2.7",
+      "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+      "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-core-module": {
+      "version": "2.13.1",
+      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+      "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
+      "dev": true,
+      "dependencies": {
+        "hasown": "^2.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-date-object": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
+      "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+      "dev": true,
+      "dependencies": {
+        "has-tostringtag": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-extglob": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+      "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/is-finalizationregistry": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz",
+      "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-generator-function": {
+      "version": "1.0.10",
+      "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
+      "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
+      "dev": true,
+      "dependencies": {
+        "has-tostringtag": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-glob": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+      "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+      "dev": true,
+      "dependencies": {
+        "is-extglob": "^2.1.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/is-map": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
+      "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-negative-zero": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
+      "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-number-object": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+      "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+      "dev": true,
+      "dependencies": {
+        "has-tostringtag": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-path-inside": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
+      "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/is-regex": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+      "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "has-tostringtag": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-set": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
+      "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-shared-array-buffer": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
+      "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-string": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+      "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+      "dev": true,
+      "dependencies": {
+        "has-tostringtag": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-symbol": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
+      "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+      "dev": true,
+      "dependencies": {
+        "has-symbols": "^1.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-typed-array": {
+      "version": "1.1.13",
+      "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
+      "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
+      "dev": true,
+      "dependencies": {
+        "which-typed-array": "^1.1.14"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-weakmap": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
+      "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-weakref": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
+      "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-weakset": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz",
+      "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "get-intrinsic": "^1.1.1"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/isarray": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+      "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+      "dev": true
+    },
+    "node_modules/isexe": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+      "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+      "dev": true
+    },
+    "node_modules/iterator.prototype": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz",
+      "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==",
+      "dev": true,
+      "dependencies": {
+        "define-properties": "^1.2.1",
+        "get-intrinsic": "^1.2.1",
+        "has-symbols": "^1.0.3",
+        "reflect.getprototypeof": "^1.0.4",
+        "set-function-name": "^2.0.1"
+      }
+    },
+    "node_modules/js-tokens": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+      "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+      "dev": true
+    },
+    "node_modules/js-yaml": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+      "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+      "dev": true,
+      "dependencies": {
+        "argparse": "^2.0.1"
+      },
+      "bin": {
+        "js-yaml": "bin/js-yaml.js"
+      }
+    },
+    "node_modules/json-buffer": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+      "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+      "dev": true
+    },
+    "node_modules/json-parse-better-errors": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+      "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
+      "dev": true
+    },
+    "node_modules/json-schema-traverse": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+      "dev": true
+    },
+    "node_modules/json-stable-stringify-without-jsonify": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+      "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+      "dev": true
+    },
+    "node_modules/json5": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+      "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+      "dev": true,
+      "dependencies": {
+        "minimist": "^1.2.0"
+      },
+      "bin": {
+        "json5": "lib/cli.js"
+      }
+    },
+    "node_modules/jsx-ast-utils": {
+      "version": "3.3.5",
+      "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
+      "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
+      "dev": true,
+      "dependencies": {
+        "array-includes": "^3.1.6",
+        "array.prototype.flat": "^1.3.1",
+        "object.assign": "^4.1.4",
+        "object.values": "^1.1.6"
+      },
+      "engines": {
+        "node": ">=4.0"
+      }
+    },
+    "node_modules/keyv": {
+      "version": "4.5.4",
+      "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+      "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+      "dev": true,
+      "dependencies": {
+        "json-buffer": "3.0.1"
+      }
+    },
+    "node_modules/levn": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+      "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+      "dev": true,
+      "dependencies": {
+        "prelude-ls": "^1.2.1",
+        "type-check": "~0.4.0"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/load-json-file": {
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz",
+      "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==",
+      "dev": true,
+      "dependencies": {
+        "graceful-fs": "^4.1.15",
+        "parse-json": "^4.0.0",
+        "pify": "^4.0.1",
+        "strip-bom": "^3.0.0",
+        "type-fest": "^0.3.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/load-json-file/node_modules/type-fest": {
+      "version": "0.3.1",
+      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz",
+      "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/locate-path": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+      "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+      "dev": true,
+      "dependencies": {
+        "p-locate": "^5.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/lodash.merge": {
+      "version": "4.6.2",
+      "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+      "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+      "dev": true
+    },
+    "node_modules/loose-envify": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+      "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+      "dev": true,
+      "dependencies": {
+        "js-tokens": "^3.0.0 || ^4.0.0"
+      },
+      "bin": {
+        "loose-envify": "cli.js"
+      }
+    },
+    "node_modules/lru-cache": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+      "dev": true,
+      "dependencies": {
+        "yallist": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/minimatch": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+      "dev": true,
+      "dependencies": {
+        "brace-expansion": "^1.1.7"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/minimist": {
+      "version": "1.2.8",
+      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+      "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/mock-property": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/mock-property/-/mock-property-1.0.3.tgz",
+      "integrity": "sha512-2emPTb1reeLLYwHxyVx993iYyCHEiRRO+y8NFXFPL5kl5q14sgTK76cXyEKkeKCHeRw35SfdkUJ10Q1KfHuiIQ==",
+      "dev": true,
+      "dependencies": {
+        "define-data-property": "^1.1.1",
+        "functions-have-names": "^1.2.3",
+        "gopd": "^1.0.1",
+        "has-property-descriptors": "^1.0.0",
+        "hasown": "^2.0.0",
+        "isarray": "^2.0.5"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/ms": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+      "dev": true
+    },
+    "node_modules/natural-compare": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+      "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+      "dev": true
+    },
+    "node_modules/object-assign": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+      "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/object-inspect": {
+      "version": "1.13.1",
+      "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
+      "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/object-is": {
+      "version": "1.1.5",
+      "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
+      "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.1.3"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/object-keys": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+      "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/object.assign": {
+      "version": "4.1.5",
+      "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
+      "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.5",
+        "define-properties": "^1.2.1",
+        "has-symbols": "^1.0.3",
+        "object-keys": "^1.1.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/object.entries": {
+      "version": "1.1.7",
+      "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz",
+      "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.2.0",
+        "es-abstract": "^1.22.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/object.fromentries": {
+      "version": "2.0.7",
+      "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz",
+      "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.2.0",
+        "es-abstract": "^1.22.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/object.groupby": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz",
+      "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.2.0",
+        "es-abstract": "^1.22.1",
+        "get-intrinsic": "^1.2.1"
+      }
+    },
+    "node_modules/object.hasown": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz",
+      "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==",
+      "dev": true,
+      "dependencies": {
+        "define-properties": "^1.2.0",
+        "es-abstract": "^1.22.1"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/object.values": {
+      "version": "1.1.7",
+      "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz",
+      "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.2.0",
+        "es-abstract": "^1.22.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+      "dev": true,
+      "dependencies": {
+        "wrappy": "1"
+      }
+    },
+    "node_modules/optionator": {
+      "version": "0.9.3",
+      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
+      "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
+      "dev": true,
+      "dependencies": {
+        "@aashutoshrathi/word-wrap": "^1.2.3",
+        "deep-is": "^0.1.3",
+        "fast-levenshtein": "^2.0.6",
+        "levn": "^0.4.1",
+        "prelude-ls": "^1.2.1",
+        "type-check": "^0.4.0"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/p-limit": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+      "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+      "dev": true,
+      "dependencies": {
+        "yocto-queue": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/p-locate": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+      "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+      "dev": true,
+      "dependencies": {
+        "p-limit": "^3.0.2"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/p-try": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+      "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/parent-module": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+      "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+      "dev": true,
+      "dependencies": {
+        "callsites": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/parse-json": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+      "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
+      "dev": true,
+      "dependencies": {
+        "error-ex": "^1.3.1",
+        "json-parse-better-errors": "^1.0.1"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/path-exists": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+      "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/path-is-absolute": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+      "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/path-key": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+      "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/path-parse": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+      "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+      "dev": true
+    },
+    "node_modules/pify": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+      "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/pkg-conf": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz",
+      "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==",
+      "dev": true,
+      "dependencies": {
+        "find-up": "^3.0.0",
+        "load-json-file": "^5.2.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/pkg-conf/node_modules/find-up": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+      "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+      "dev": true,
+      "dependencies": {
+        "locate-path": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/pkg-conf/node_modules/locate-path": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+      "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+      "dev": true,
+      "dependencies": {
+        "p-locate": "^3.0.0",
+        "path-exists": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/pkg-conf/node_modules/p-limit": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+      "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+      "dev": true,
+      "dependencies": {
+        "p-try": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/pkg-conf/node_modules/p-locate": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+      "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+      "dev": true,
+      "dependencies": {
+        "p-limit": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/pkg-conf/node_modules/path-exists": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+      "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/prelude-ls": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+      "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/prop-types": {
+      "version": "15.8.1",
+      "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
+      "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+      "dev": true,
+      "dependencies": {
+        "loose-envify": "^1.4.0",
+        "object-assign": "^4.1.1",
+        "react-is": "^16.13.1"
+      }
+    },
+    "node_modules/punycode": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+      "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/queue-microtask": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+      "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ]
+    },
+    "node_modules/react-is": {
+      "version": "16.13.1",
+      "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+      "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+      "dev": true
+    },
+    "node_modules/reflect.getprototypeof": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz",
+      "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.2.0",
+        "es-abstract": "^1.22.1",
+        "get-intrinsic": "^1.2.1",
+        "globalthis": "^1.0.3",
+        "which-builtin-type": "^1.1.3"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/regexp.prototype.flags": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz",
+      "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.2.0",
+        "set-function-name": "^2.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/regexpp": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
+      "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/mysticatea"
+      }
+    },
+    "node_modules/resolve": {
+      "version": "1.22.8",
+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+      "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+      "dev": true,
+      "dependencies": {
+        "is-core-module": "^2.13.0",
+        "path-parse": "^1.0.7",
+        "supports-preserve-symlinks-flag": "^1.0.0"
+      },
+      "bin": {
+        "resolve": "bin/resolve"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/resolve-from": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+      "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/reusify": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+      "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+      "dev": true,
+      "engines": {
+        "iojs": ">=1.0.0",
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/rimraf": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+      "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+      "dev": true,
+      "dependencies": {
+        "glob": "^7.1.3"
+      },
+      "bin": {
+        "rimraf": "bin.js"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/run-parallel": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+      "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
+      "dependencies": {
+        "queue-microtask": "^1.2.2"
+      }
+    },
+    "node_modules/safe-array-concat": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz",
+      "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.5",
+        "get-intrinsic": "^1.2.2",
+        "has-symbols": "^1.0.3",
+        "isarray": "^2.0.5"
+      },
+      "engines": {
+        "node": ">=0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/safe-regex-test": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.2.tgz",
+      "integrity": "sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.5",
+        "get-intrinsic": "^1.2.2",
+        "is-regex": "^1.1.4"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/semver": {
+      "version": "6.3.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+      "dev": true,
+      "bin": {
+        "semver": "bin/semver.js"
+      }
+    },
+    "node_modules/set-function-length": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz",
+      "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==",
+      "dev": true,
+      "dependencies": {
+        "define-data-property": "^1.1.1",
+        "function-bind": "^1.1.2",
+        "get-intrinsic": "^1.2.2",
+        "gopd": "^1.0.1",
+        "has-property-descriptors": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/set-function-name": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz",
+      "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==",
+      "dev": true,
+      "dependencies": {
+        "define-data-property": "^1.0.1",
+        "functions-have-names": "^1.2.3",
+        "has-property-descriptors": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/shebang-command": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+      "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+      "dev": true,
+      "dependencies": {
+        "shebang-regex": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/shebang-regex": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+      "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/shell-quote": {
+      "version": "1.8.1",
+      "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz",
+      "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==",
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/side-channel": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+      "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.0",
+        "get-intrinsic": "^1.0.2",
+        "object-inspect": "^1.9.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/standard": {
+      "version": "17.1.0",
+      "resolved": "https://registry.npmjs.org/standard/-/standard-17.1.0.tgz",
+      "integrity": "sha512-jaDqlNSzLtWYW4lvQmU0EnxWMUGQiwHasZl5ZEIwx3S/ijZDjZOzs1y1QqKwKs5vqnFpGtizo4NOYX2s0Voq/g==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
+      "dependencies": {
+        "eslint": "^8.41.0",
+        "eslint-config-standard": "17.1.0",
+        "eslint-config-standard-jsx": "^11.0.0",
+        "eslint-plugin-import": "^2.27.5",
+        "eslint-plugin-n": "^15.7.0",
+        "eslint-plugin-promise": "^6.1.1",
+        "eslint-plugin-react": "^7.32.2",
+        "standard-engine": "^15.0.0",
+        "version-guard": "^1.1.1"
+      },
+      "bin": {
+        "standard": "bin/cmd.cjs"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      }
+    },
+    "node_modules/standard-engine": {
+      "version": "15.1.0",
+      "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-15.1.0.tgz",
+      "integrity": "sha512-VHysfoyxFu/ukT+9v49d4BRXIokFRZuH3z1VRxzFArZdjSCFpro6rEIU3ji7e4AoAtuSfKBkiOmsrDqKW5ZSRw==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
+      "dependencies": {
+        "get-stdin": "^8.0.0",
+        "minimist": "^1.2.6",
+        "pkg-conf": "^3.1.0",
+        "xdg-basedir": "^4.0.0"
+      },
+      "engines": {
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+      }
+    },
+    "node_modules/stop-iteration-iterator": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz",
+      "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==",
+      "dev": true,
+      "dependencies": {
+        "internal-slot": "^1.0.4"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/string.prototype.matchall": {
+      "version": "4.0.10",
+      "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz",
+      "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.2.0",
+        "es-abstract": "^1.22.1",
+        "get-intrinsic": "^1.2.1",
+        "has-symbols": "^1.0.3",
+        "internal-slot": "^1.0.5",
+        "regexp.prototype.flags": "^1.5.0",
+        "set-function-name": "^2.0.0",
+        "side-channel": "^1.0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/string.prototype.trim": {
+      "version": "1.2.8",
+      "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz",
+      "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.2.0",
+        "es-abstract": "^1.22.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/string.prototype.trimend": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz",
+      "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.2.0",
+        "es-abstract": "^1.22.1"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/string.prototype.trimstart": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz",
+      "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "define-properties": "^1.2.0",
+        "es-abstract": "^1.22.1"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/strip-ansi": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+      "dev": true,
+      "dependencies": {
+        "ansi-regex": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/strip-bom": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+      "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/strip-json-comments": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+      "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/supports-color": {
+      "version": "7.2.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+      "dependencies": {
+        "has-flag": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/supports-preserve-symlinks-flag": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+      "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/tape": {
+      "version": "5.7.4",
+      "resolved": "https://registry.npmjs.org/tape/-/tape-5.7.4.tgz",
+      "integrity": "sha512-uaigP+5H9+E8aaMLKMbGkDd33G5TKu4UFpapqT7um+8xSHQQUS2lJNd+hTj9fFVQLg8bmcIofwc8b9f6+ISSfQ==",
+      "dev": true,
+      "dependencies": {
+        "@ljharb/resumer": "^0.0.1",
+        "@ljharb/through": "^2.3.11",
+        "array.prototype.every": "^1.1.5",
+        "call-bind": "^1.0.5",
+        "deep-equal": "^2.2.3",
+        "defined": "^1.0.1",
+        "dotignore": "^0.1.2",
+        "for-each": "^0.3.3",
+        "get-package-type": "^0.1.0",
+        "glob": "^7.2.3",
+        "has-dynamic-import": "^2.1.0",
+        "hasown": "^2.0.0",
+        "inherits": "^2.0.4",
+        "is-regex": "^1.1.4",
+        "minimist": "^1.2.8",
+        "mock-property": "^1.0.3",
+        "object-inspect": "^1.13.1",
+        "object-is": "^1.1.5",
+        "object-keys": "^1.1.1",
+        "object.assign": "^4.1.5",
+        "resolve": "^2.0.0-next.5",
+        "string.prototype.trim": "^1.2.8"
+      },
+      "bin": {
+        "tape": "bin/tape"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/tape/node_modules/resolve": {
+      "version": "2.0.0-next.5",
+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
+      "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
+      "dev": true,
+      "dependencies": {
+        "is-core-module": "^2.13.0",
+        "path-parse": "^1.0.7",
+        "supports-preserve-symlinks-flag": "^1.0.0"
+      },
+      "bin": {
+        "resolve": "bin/resolve"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/text-table": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+      "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+      "dev": true
+    },
+    "node_modules/tsconfig-paths": {
+      "version": "3.15.0",
+      "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
+      "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
+      "dev": true,
+      "dependencies": {
+        "@types/json5": "^0.0.29",
+        "json5": "^1.0.2",
+        "minimist": "^1.2.6",
+        "strip-bom": "^3.0.0"
+      }
+    },
+    "node_modules/type-check": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+      "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+      "dev": true,
+      "dependencies": {
+        "prelude-ls": "^1.2.1"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/type-fest": {
+      "version": "0.20.2",
+      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+      "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/typed-array-buffer": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz",
+      "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "get-intrinsic": "^1.2.1",
+        "is-typed-array": "^1.1.10"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/typed-array-byte-length": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz",
+      "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "for-each": "^0.3.3",
+        "has-proto": "^1.0.1",
+        "is-typed-array": "^1.1.10"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/typed-array-byte-offset": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz",
+      "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==",
+      "dev": true,
+      "dependencies": {
+        "available-typed-arrays": "^1.0.5",
+        "call-bind": "^1.0.2",
+        "for-each": "^0.3.3",
+        "has-proto": "^1.0.1",
+        "is-typed-array": "^1.1.10"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/typed-array-length": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
+      "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "for-each": "^0.3.3",
+        "is-typed-array": "^1.1.9"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/unbox-primitive": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+      "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+      "dev": true,
+      "dependencies": {
+        "call-bind": "^1.0.2",
+        "has-bigints": "^1.0.2",
+        "has-symbols": "^1.0.3",
+        "which-boxed-primitive": "^1.0.2"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/uri-js": {
+      "version": "4.4.1",
+      "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+      "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+      "dev": true,
+      "dependencies": {
+        "punycode": "^2.1.0"
+      }
+    },
+    "node_modules/version-guard": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/version-guard/-/version-guard-1.1.1.tgz",
+      "integrity": "sha512-MGQLX89UxmYHgDvcXyjBI0cbmoW+t/dANDppNPrno64rYr8nH4SHSuElQuSYdXGEs0mUzdQe1BY+FhVPNsAmJQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.48"
+      }
+    },
+    "node_modules/which": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+      "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+      "dev": true,
+      "dependencies": {
+        "isexe": "^2.0.0"
+      },
+      "bin": {
+        "node-which": "bin/node-which"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/which-boxed-primitive": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+      "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+      "dev": true,
+      "dependencies": {
+        "is-bigint": "^1.0.1",
+        "is-boolean-object": "^1.1.0",
+        "is-number-object": "^1.0.4",
+        "is-string": "^1.0.5",
+        "is-symbol": "^1.0.3"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/which-builtin-type": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz",
+      "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==",
+      "dev": true,
+      "dependencies": {
+        "function.prototype.name": "^1.1.5",
+        "has-tostringtag": "^1.0.0",
+        "is-async-function": "^2.0.0",
+        "is-date-object": "^1.0.5",
+        "is-finalizationregistry": "^1.0.2",
+        "is-generator-function": "^1.0.10",
+        "is-regex": "^1.1.4",
+        "is-weakref": "^1.0.2",
+        "isarray": "^2.0.5",
+        "which-boxed-primitive": "^1.0.2",
+        "which-collection": "^1.0.1",
+        "which-typed-array": "^1.1.9"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/which-collection": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz",
+      "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==",
+      "dev": true,
+      "dependencies": {
+        "is-map": "^2.0.1",
+        "is-set": "^2.0.1",
+        "is-weakmap": "^2.0.1",
+        "is-weakset": "^2.0.1"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/which-typed-array": {
+      "version": "1.1.14",
+      "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz",
+      "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==",
+      "dev": true,
+      "dependencies": {
+        "available-typed-arrays": "^1.0.6",
+        "call-bind": "^1.0.5",
+        "for-each": "^0.3.3",
+        "gopd": "^1.0.1",
+        "has-tostringtag": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/winreg": {
+      "version": "1.2.5",
+      "resolved": "https://registry.npmjs.org/winreg/-/winreg-1.2.5.tgz",
+      "integrity": "sha512-uf7tHf+tw0B1y+x+mKTLHkykBgK2KMs3g+KlzmyMbLvICSHQyB/xOFjTT8qZ3oeTFyU7Bbj4FzXitGG6jvKhYw=="
+    },
+    "node_modules/wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+      "dev": true
+    },
+    "node_modules/xdg-basedir": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
+      "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/yallist": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+      "dev": true
+    },
+    "node_modules/yocto-queue": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+      "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/zero-fill": {
+      "version": "2.2.4",
+      "resolved": "https://registry.npmjs.org/zero-fill/-/zero-fill-2.2.4.tgz",
+      "integrity": "sha512-/N5GEDauLHz2uGnuJXWO1Wfib4EC+q4yp9C1jojM7RubwEKADqIqMcYpETMm1lRop403fi3v1qTOdgDE8DIOdw==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ]
+    }
+  }
+}
diff --git a/pkgs/by-name/sp/spoof/package.nix b/pkgs/by-name/sp/spoof/package.nix
new file mode 100644
index 0000000000000..e7586483d2d49
--- /dev/null
+++ b/pkgs/by-name/sp/spoof/package.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildNpmPackage
+, fetchFromGitHub
+}:
+
+buildNpmPackage rec {
+  pname = "spoof";
+  version = "2.0.4";
+
+  src = fetchFromGitHub {
+    owner = "feross";
+    repo = "spoof";
+    rev = "v${version}";
+    hash = "sha256-oysURKLQ/rbGAvsy3K0OmDRHUqRKa8S8l5ihBjNqYXc=";
+  };
+
+  npmDepsHash = "sha256-jf0tcsftXoYy6K3PcXgSU+3PAb6Ux9BsVpOX79TI4/o=";
+
+  postPatch = ''
+    cp ${./package-lock.json} package-lock.json
+  '';
+
+  npmFlags = [ "--ignore-scripts" ];
+
+  dontNpmBuild = true;
+
+  meta = {
+    description = "Easily spoof your MAC address in OS X & Linux";
+    homepage = "https://github.com/feross/spoof";
+    license = lib.licenses.mit;
+    mainProgram = "spoof";
+    maintainers = with lib.maintainers; [ modderme123 ];
+  };
+}
diff --git a/pkgs/by-name/sp/spotube/package.nix b/pkgs/by-name/sp/spotube/package.nix
index cc63a6b680a10..5d567669a1f26 100644
--- a/pkgs/by-name/sp/spotube/package.nix
+++ b/pkgs/by-name/sp/spotube/package.nix
@@ -22,7 +22,7 @@ let
   version = "3.6.0";
 
   meta = {
-    description = "An open source, cross-platform Spotify client compatible across multiple platforms";
+    description = "Open source, cross-platform Spotify client compatible across multiple platforms";
     longDescription = ''
       Spotube is an open source, cross-platform Spotify client compatible across
       multiple platforms utilizing Spotify's data API and YouTube (or Piped.video or JioSaavn)
diff --git a/pkgs/by-name/sq/sqlite-vss/package.nix b/pkgs/by-name/sq/sqlite-vss/package.nix
index b619e8ae6ed5e..e1c65b63407af 100644
--- a/pkgs/by-name/sq/sqlite-vss/package.nix
+++ b/pkgs/by-name/sq/sqlite-vss/package.nix
@@ -47,7 +47,6 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://github.com/asg017/sqlite-vss";
     changelog = "https://github.com/asg017/sqlite-vss/releases/tag/v${finalAttrs.version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ elohmeier ];
     platforms = platforms.unix;
   };
 })
diff --git a/pkgs/applications/audio/squeezelite/default.nix b/pkgs/by-name/sq/squeezelite/package.nix
index 92f6932fb3751..41d5f8c9d343d 100644
--- a/pkgs/applications/audio/squeezelite/default.nix
+++ b/pkgs/by-name/sq/squeezelite/package.nix
@@ -1,35 +1,31 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, flac
-, libgpiod
-, libmad
-, libpulseaudio
-, libvorbis
-, mpg123
-, audioBackend ? if stdenv.isLinux then "alsa" else "portaudio"
-, alsaSupport ? stdenv.isLinux
-, alsa-lib
-, dsdSupport ? true
-, faad2Support ? true
-, faad2
-, ffmpegSupport ? true
-, ffmpeg
-, opusSupport ? true
-, opusfile
-, resampleSupport ? true
-, soxr
-, sslSupport ? true
-, openssl
-, portaudioSupport ? stdenv.isDarwin
-, portaudio
-, slimserver
-, AudioToolbox
-, AudioUnit
-, Carbon
-, CoreAudio
-, CoreVideo
-, VideoDecodeAcceleration
+{
+  lib,
+  stdenv,
+  darwin,
+  fetchFromGitHub,
+  flac,
+  libgpiod,
+  libmad,
+  libpulseaudio,
+  libvorbis,
+  mpg123,
+  audioBackend ? if stdenv.isLinux then "alsa" else "portaudio",
+  alsaSupport ? stdenv.isLinux,
+  alsa-lib,
+  dsdSupport ? true,
+  faad2Support ? true,
+  faad2,
+  ffmpegSupport ? true,
+  ffmpeg,
+  opusSupport ? true,
+  opusfile,
+  resampleSupport ? true,
+  soxr,
+  sslSupport ? true,
+  openssl,
+  portaudioSupport ? stdenv.isDarwin,
+  portaudio,
+  slimserver,
 }:
 
 let
@@ -38,7 +34,6 @@ let
   pulseSupport = audioBackend == "pulse";
 
   binName = "squeezelite${optionalString pulseSupport "-pulse"}";
-
 in
 stdenv.mkDerivation {
   # the nixos module uses the pname as the binary name
@@ -54,11 +49,27 @@ stdenv.mkDerivation {
     hash = "sha256-FGqo/c74JN000w/iRnvYUejqnYGDzHNZu9pEmR7yR3s=";
   };
 
-  buildInputs = [ flac libmad libvorbis mpg123 ]
+  buildInputs =
+    [
+      flac
+      libmad
+      libvorbis
+      mpg123
+    ]
     ++ optional pulseSupport libpulseaudio
     ++ optional alsaSupport alsa-lib
     ++ optional portaudioSupport portaudio
-    ++ optionals stdenv.isDarwin [ CoreVideo VideoDecodeAcceleration CoreAudio AudioToolbox AudioUnit Carbon ]
+    ++ optionals stdenv.isDarwin (
+      with darwin.apple_sdk_11_0.frameworks;
+      [
+        CoreVideo
+        VideoDecodeAcceleration
+        CoreAudio
+        AudioToolbox
+        AudioUnit
+        Carbon
+      ]
+    )
     ++ optional faad2Support faad2
     ++ optional ffmpegSupport ffmpeg
     ++ optional opusSupport opusfile
@@ -75,7 +86,11 @@ stdenv.mkDerivation {
 
   EXECUTABLE = binName;
 
-  OPTS = [ "-DLINKALL" "-DGPIO" ]
+  OPTS =
+    [
+      "-DLINKALL"
+      "-DGPIO"
+    ]
     ++ optional dsdSupport "-DDSD"
     ++ optional (!faad2Support) "-DNO_FAAD"
     ++ optional ffmpegSupport "-DFFMPEG"
@@ -86,15 +101,13 @@ stdenv.mkDerivation {
     ++ optional sslSupport "-DUSE_SSL"
     ++ optional (stdenv.isAarch32 or stdenv.isAarch64) "-DRPI";
 
-  env = lib.optionalAttrs stdenv.isDarwin {
-    LDADD = "-lportaudio -lpthread";
-  };
+  env = lib.optionalAttrs stdenv.isDarwin { LDADD = "-lportaudio -lpthread"; };
 
   installPhase = ''
     runHook preInstall
 
     install -Dm555 -t $out/bin                   ${binName}
-    install -Dm444 -t $out/share/doc/squeezelite *.txt *.md
+    install -Dm444 -t $out/share/man/man1 doc/squeezelite.1
 
     runHook postInstall
   '';
@@ -110,6 +123,7 @@ stdenv.mkDerivation {
     license = with licenses; [ gpl3Plus ] ++ optional dsdSupport bsd2;
     mainProgram = binName;
     maintainers = with maintainers; [ adamcstephens ];
-    platforms = if (audioBackend == "pulse") then platforms.linux else platforms.linux ++ platforms.darwin;
+    platforms =
+      if (audioBackend == "pulse") then platforms.linux else platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/applications/audio/squeezelite/update.sh b/pkgs/by-name/sq/squeezelite/update.sh
index ac55144d158d5..ac55144d158d5 100755
--- a/pkgs/applications/audio/squeezelite/update.sh
+++ b/pkgs/by-name/sq/squeezelite/update.sh
diff --git a/pkgs/by-name/sr/sr2t/package.nix b/pkgs/by-name/sr/sr2t/package.nix
new file mode 100644
index 0000000000000..e49303258a165
--- /dev/null
+++ b/pkgs/by-name/sr/sr2t/package.nix
@@ -0,0 +1,40 @@
+{
+  lib,
+  python3,
+  fetchFromGitLab,
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "sr2t";
+  version = "0.0.26";
+  pyproject = true;
+
+  src = fetchFromGitLab {
+    owner = "0bs1d1an";
+    repo = "sr2t";
+    rev = "refs/tags/${version}";
+    hash = "sha256-BPsYnKBTxt5WUd2+WumMdVi8p6iryOWG2MjI97qbaCw=";
+  };
+
+  build-system = with python3.pkgs; [ hatchling ];
+
+  dependencies = with python3.pkgs; [
+    prettytable
+    pyyaml
+    setuptools
+    xlsxwriter
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "sr2t" ];
+
+  meta = with lib; {
+    description = "Tool to convert scanning reports to a tabular format";
+    homepage = "https://gitlab.com/0bs1d1an/sr2t";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "sr2t";
+  };
+}
diff --git a/pkgs/by-name/sr/srgn/package.nix b/pkgs/by-name/sr/srgn/package.nix
new file mode 100644
index 0000000000000..39a16c5d372cb
--- /dev/null
+++ b/pkgs/by-name/sr/srgn/package.nix
@@ -0,0 +1,36 @@
+{ rustPlatform
+, fetchFromGitHub
+, installShellFiles
+, lib
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "srgn";
+  version = "0.12.0";
+
+  src = fetchFromGitHub {
+    owner = "alexpovel";
+    repo = "srgn";
+    rev = "${pname}-v${version}";
+    hash = "sha256-d53aSo1gzINC8WdMzjCHzU/8+9kvrrGglV4WsiCt+rM=";
+  };
+
+  cargoHash = "sha256-jy7KHcdkI+T8GbT6gH9ppJhQvhv/NPe+jRWKuybtQC4=";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    for shell in bash zsh fish; do
+      installShellCompletion --cmd srgn "--$shell" <("$out/bin/srgn" --completions "$shell")
+    done
+  '';
+
+  meta = with lib; {
+    description = "A code surgeon for precise text and code transplantation";
+    license = licenses.mit;
+    maintainers = with maintainers; [ caralice ];
+    mainProgram = "srgn";
+    homepage = "https://github.com/${src.owner}/${src.repo}/";
+    downloadPage = "https://github.com/${src.owner}/${src.repo}/releases/tag/${src.rev}";
+    changelog = "https://github.com/${src.owner}/${src.repo}/blob/${src.rev}/CHANGELOG.md";
+  };
+}
diff --git a/pkgs/by-name/sr/srht-gen-oauth-tok/package.nix b/pkgs/by-name/sr/srht-gen-oauth-tok/package.nix
index 16a0b2c2cfd76..581521e0edd93 100644
--- a/pkgs/by-name/sr/srht-gen-oauth-tok/package.nix
+++ b/pkgs/by-name/sr/srht-gen-oauth-tok/package.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   passthru.tests.sourcehut = nixosTests.sourcehut;
 
   meta = {
-    description = "A script to register a new Sourcehut OAuth token for a given user";
+    description = "Script to register a new Sourcehut OAuth token for a given user";
     longDescription = ''
       srht-gen-oauth-tok is a Perl script for automating the generation of user
       OAuth tokens for Sourcehut-based code forges. This is done by emulating a
diff --git a/pkgs/by-name/sr/srm-cuarzo/package.nix b/pkgs/by-name/sr/srm-cuarzo/package.nix
index 5612520e626ec..af1468b42850f 100644
--- a/pkgs/by-name/sr/srm-cuarzo/package.nix
+++ b/pkgs/by-name/sr/srm-cuarzo/package.nix
@@ -14,9 +14,9 @@
 }:
 stdenv.mkDerivation (self: {
   pname = "srm-cuarzo";
-  version = "0.5.6-1";
+  version = "0.5.7-1";
   rev = "v${self.version}";
-  hash = "sha256-REILtx4tPAWX4JnBjC0EU5dnnZhbVHhlVAWKo7n7sdA=";
+  hash = "sha256-TUYiReCWryNFfJ0lFBKNJiauil8ZwRSG8X9Bsdtwswc=";
 
   src = fetchFromGitHub {
     inherit (self) rev hash;
@@ -42,12 +42,6 @@ stdenv.mkDerivation (self: {
 
   outputs = [ "out" "dev" ];
 
-  postPatch = ''
-    substituteInPlace src/meson.build \
-      --replace "/usr/include/drm" "${libdrm.dev}/include/drm" \
-      --replace "/usr/include/libdrm" "${libdrm.dev}/include/libdrm"
-  '';
-
   preConfigure = ''
     # The root meson.build file is in src/
     cd src
diff --git a/pkgs/by-name/ss/ssh-askpass-fullscreen/package.nix b/pkgs/by-name/ss/ssh-askpass-fullscreen/package.nix
index c3b8b129d03ec..e677562fe3ed7 100644
--- a/pkgs/by-name/ss/ssh-askpass-fullscreen/package.nix
+++ b/pkgs/by-name/ss/ssh-askpass-fullscreen/package.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://github.com/atj/ssh-askpass-fullscreen";
     broken = stdenv.isDarwin;
-    description = "A small, fullscreen SSH askpass GUI using GTK+2";
+    description = "Small, fullscreen SSH askpass GUI using GTK+2";
     license = with lib.licenses; [ gpl2Plus ];
     mainProgram = "ssh-askpass-fullscreen";
     maintainers = with lib.maintainers; [ AndersonTorres ];
diff --git a/pkgs/by-name/ss/sshesame/package.nix b/pkgs/by-name/ss/sshesame/package.nix
index f51e8b5af02d7..b64b18300b9e2 100644
--- a/pkgs/by-name/ss/sshesame/package.nix
+++ b/pkgs/by-name/ss/sshesame/package.nix
@@ -24,7 +24,7 @@ buildGoModule rec {
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "An easy to set up and use SSH honeypot";
+    description = "Easy to set up and use SSH honeypot";
     longDescription = ''
       A fake SSH server that lets anyone in and logs their activity.
       sshesame accepts and logs SSH connections and activity (channels, requests),
diff --git a/pkgs/by-name/st/stackit-cli/package.nix b/pkgs/by-name/st/stackit-cli/package.nix
index 1a786eafebe64..3b98ecdd069d5 100644
--- a/pkgs/by-name/st/stackit-cli/package.nix
+++ b/pkgs/by-name/st/stackit-cli/package.nix
@@ -12,16 +12,16 @@
 
 buildGoModule rec {
   pname = "stackit-cli";
-  version = "0.6.0";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "stackitcloud";
     repo = "stackit-cli";
     rev = "v${version}";
-    hash = "sha256-Rd4kuU1iMCxuNhL0GwAX625hIAv6O2URmP7JTeMduMo";
+    hash = "sha256-+E+GEjlytspTfe057GbEiwZXGedrnGC6uwJBFpO0J7I=";
   };
 
-  vendorHash = "sha256-PRCra/i4n+YvYC+onBYO/uZ8JlyTjibfZsGMM53COcw=";
+  vendorHash = "sha256-/JYkfGYJNk3xi6tvaY26tO4lkSI/cdB3+J+NnVBOCBE=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/by-name/st/stackql/package.nix b/pkgs/by-name/st/stackql/package.nix
new file mode 100644
index 0000000000000..d1d749d971fae
--- /dev/null
+++ b/pkgs/by-name/st/stackql/package.nix
@@ -0,0 +1,48 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildGoModule,
+  testers,
+  stackql,
+}:
+
+buildGoModule rec {
+  pname = "stackql";
+  version = "0.5.665";
+
+  src = fetchFromGitHub {
+    owner = "stackql";
+    repo = "stackql";
+    rev = "v${version}";
+    hash = "sha256-oX1WB6XkjEPzbj3qqXoD8urp827LAU7Cc7lLcpTTZJE=";
+  };
+
+  vendorHash = "sha256-JCWXs3tfTG+aj4hG0eFhl52FmNFvPiBuWpQG2RC6FTM=";
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X github.com/stackql/stackql/internal/stackql/cmd.BuildMajorVersion=${builtins.elemAt (lib.splitVersion version) 0}"
+    "-X github.com/stackql/stackql/internal/stackql/cmd.BuildMinorVersion=${builtins.elemAt (lib.splitVersion version) 1}"
+    "-X github.com/stackql/stackql/internal/stackql/cmd.BuildPatchVersion=${builtins.elemAt (lib.splitVersion version) 2}"
+    "-X github.com/stackql/stackql/internal/stackql/cmd.BuildDate=2024-05-15T07:51:52Z" # date of commit hash
+    "-X stackql/internal/stackql/planbuilder.PlanCacheEnabled=true"
+  ];
+
+  __darwinAllowLocalNetworking = true;
+
+  checkFlags = [ "--tags json1,sqleanal" ];
+
+  passthru.tests.version = testers.testVersion {
+    package = stackql;
+    version = "v${version}";
+  };
+
+  meta = {
+    homepage = "https://github.com/stackql/stackql";
+    description = "Deploy, manage and query cloud resources and interact with APIs using SQL";
+    mainProgram = "stackql";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ jonochang ];
+  };
+}
diff --git a/pkgs/by-name/st/stalwart-mail/package.nix b/pkgs/by-name/st/stalwart-mail/package.nix
index 8fb02098f0b5f..5ef0a24af0bef 100644
--- a/pkgs/by-name/st/stalwart-mail/package.nix
+++ b/pkgs/by-name/st/stalwart-mail/package.nix
@@ -22,7 +22,7 @@ let
   # See upstream issue for rocksdb 9.X support
   # https://github.com/stalwartlabs/mail-server/issues/407
   rocksdb = rocksdb_8_11;
-  version = "0.8.0";
+  version = "0.8.1";
 in
 rustPlatform.buildRustPackage {
   pname = "stalwart-mail";
@@ -32,11 +32,11 @@ rustPlatform.buildRustPackage {
     owner = "stalwartlabs";
     repo = "mail-server";
     rev = "v${version}";
-    hash = "sha256-V6Gl59938AplFW7pbrbGWB42+zRQBEaTUSW0+TMBo8I=";
+    hash = "sha256-al2+/+HPbjJ30rju2ih/yFZgmTdO2bQ6jDv+dtoIqsc=";
     fetchSubmodules = true;
   };
 
-  cargoHash = "sha256-LWA08GNCrDlSwcSAlAi58OkoLs41fL6J5DPCsacozsM=";
+  cargoHash = "sha256-ek9vPo/M4peDcDkfzjXoKlJ+gFZUiREwNflOKEJNaWQ=";
 
   nativeBuildInputs = [
     pkg-config
@@ -62,6 +62,13 @@ rustPlatform.buildRustPackage {
     ROCKSDB_LIB_DIR = "${rocksdb}/lib";
   };
 
+  postInstall = ''
+    mkdir -p $out/lib/systemd/system
+
+    substitute resources/systemd/stalwart-mail.service $out/lib/systemd/system/stalwart-mail.service \
+      --replace "__PATH__" "$out"
+  '';
+
   # Tests require reading to /etc/resolv.conf
   doCheck = false;
 
@@ -75,6 +82,6 @@ rustPlatform.buildRustPackage {
     homepage = "https://github.com/stalwartlabs/mail-server";
     changelog = "https://github.com/stalwartlabs/mail-server/blob/${version}/CHANGELOG";
     license = licenses.agpl3Only;
-    maintainers = with maintainers; [ happysalada ];
+    maintainers = with maintainers; [ happysalada onny ];
   };
 }
diff --git a/pkgs/by-name/st/stanc/package.nix b/pkgs/by-name/st/stanc/package.nix
index e5e6f79eb8cdc..9fd2e5af9b316 100644
--- a/pkgs/by-name/st/stanc/package.nix
+++ b/pkgs/by-name/st/stanc/package.nix
@@ -6,7 +6,7 @@
 
 ocamlPackages.buildDunePackage rec {
   pname = "stanc";
-  version = "2.34.0";
+  version = "2.35.0";
 
   minimalOCamlVersion = "4.12";
   duneVersion = "3";
@@ -15,7 +15,7 @@ ocamlPackages.buildDunePackage rec {
     owner = "stan-dev";
     repo = "stanc3";
     rev = "v${version}";
-    hash = "sha256-ixZCix3oLZhzs08JbmbNCO0lhAu1Jf+KnpHNKlU/FaA=";
+    hash = "sha256-QN/yY4tn0U5yOE0FKkOvvEFXDaj5GDBdeqI2UqjVN2c=";
   };
 
   nativeBuildInputs = with ocamlPackages; [ menhir ];
@@ -30,7 +30,7 @@ ocamlPackages.buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/stan-dev/stanc3";
-    description = "The Stan compiler and utilities";
+    description = "Stan compiler and utilities";
     license = licenses.bsd3;
     maintainers = with maintainers; [ wegank ];
     platforms = platforms.unix;
diff --git a/pkgs/by-name/st/starlark/package.nix b/pkgs/by-name/st/starlark/package.nix
index 55ceab609164c..214c97edf5bf1 100644
--- a/pkgs/by-name/st/starlark/package.nix
+++ b/pkgs/by-name/st/starlark/package.nix
@@ -1,22 +1,22 @@
 { lib, fetchFromGitHub, buildGoModule }:
 buildGoModule rec {
   pname = "starlark";
-  version = "0-unstable-2023-11-21";
+  version = "0-unstable-2024-05-21";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "starlark-go";
-    rev = "90ade8b19d09805d1b91a9687198869add6dfaa1";
-    hash = "sha256-ZNOPx7L21A4BR5WshMMAHGm6j1ukWC9waJ1lYLvxBw0=";
+    rev = "046347dcd1044f5e568fcf64884b0344f27910c0";
+    hash = "sha256-qpJPCcMxrsspiN5FeQDZRaNchYPawMNJHtKK8fmrRug=";
   };
 
-  vendorHash = "sha256-jQE5fSqJeiDV7PW7BY/dzCxG6b/KEVIobcjJsaL2zMw=";
+  vendorHash = "sha256-8drlCBy+KROyqXzm/c+HBe/bMVOyvwRoLHxOApJhMfo=";
 
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
     homepage = "https://github.com/google/starlark-go";
-    description = "An interpreter for Starlark, implemented in Go";
+    description = "Interpreter for Starlark, implemented in Go";
     license = licenses.bsd3;
     maintainers = with maintainers; [ aaronjheng ];
     mainProgram = "starlark";
diff --git a/pkgs/by-name/st/starpls-bin/package.nix b/pkgs/by-name/st/starpls-bin/package.nix
new file mode 100644
index 0000000000000..c6106ebd61266
--- /dev/null
+++ b/pkgs/by-name/st/starpls-bin/package.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "starpls-bin";
+  version = "0.1.14";
+
+  src = {
+    x86_64-linux = fetchurl {
+      url = "https://github.com/withered-magic/starpls/releases/download/v${finalAttrs.version}/starpls-linux-amd64";
+      hash = "sha256-PYU+Jv3uaJqJKw6zSNOPl+NlIQgfm38cOrRqTdNXY+8=";
+    };
+    aarch64-darwin = fetchurl {
+      url = "https://github.com/withered-magic/starpls/releases/download/v${finalAttrs.version}/starpls-darwin-arm64";
+      hash = "sha256-9d1ybebguEUJu2PvMcToQEd8M4ajRrQUvBZqS6o0sbw=";
+    };
+  }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    install -D $src $out/bin/starpls
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/withered-magic/starpls";
+    description = "A language server for Starlark";
+    license = licenses.asl20;
+    platforms = [ "aarch64-darwin" "x86_64-linux" ];
+    maintainers = with maintainers; [ aaronjheng ];
+    mainProgram = "starpls";
+  };
+})
diff --git a/pkgs/by-name/st/stash/package.nix b/pkgs/by-name/st/stash/package.nix
new file mode 100644
index 0000000000000..46c3df1a33d36
--- /dev/null
+++ b/pkgs/by-name/st/stash/package.nix
@@ -0,0 +1,50 @@
+{
+  lib,
+  stdenv,
+  fetchurl,
+}:
+let
+
+  version = "0.25.1";
+
+  sources = {
+    x86_64-linux = {
+      url = "https://github.com/stashapp/stash/releases/download/v${version}/stash-linux";
+      hash = "sha256-Rb4x6iKx6T9NPuWWDbNaz+35XPzLqZzSm0psv+k2Gw4=";
+    };
+    aarch64-linux = {
+      url = "https://github.com/stashapp/stash/releases/download/v${version}/stash-linux-arm64v8";
+      hash = "sha256-6qPyIYKFkhmBNO47w9E91FSKlByepBOnl0MNJighGSc=";
+    };
+    x86_64-darwin = {
+      url = "https://github.com/stashapp/stash/releases/download/v${version}/stash-macos";
+      hash = "sha256-W8+rgqWUDTOB8ykGO2GL9tKEjaDXdx9LpFg0TAtJsxM=";
+    };
+  };
+in
+stdenv.mkDerivation (finalAttrs: {
+  inherit version;
+
+  pname = "stash";
+
+  src = fetchurl { inherit (sources.${stdenv.system}) url hash; };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm755 $src $out/bin/stash
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Stash is a self-hosted porn app";
+    homepage = "https://github.com/stashapp/stash";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ Golo300 ];
+    platforms = builtins.attrNames sources;
+    mainProgram = "stash";
+  };
+})
diff --git a/pkgs/by-name/st/static-server/package.nix b/pkgs/by-name/st/static-server/package.nix
index f2b7d26d8f0b1..4ec8b8c20852a 100644
--- a/pkgs/by-name/st/static-server/package.nix
+++ b/pkgs/by-name/st/static-server/package.nix
@@ -47,7 +47,7 @@ buildGoModule rec {
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
-    description = "A simple, zero-configuration HTTP server CLI for serving static files";
+    description = "Simple, zero-configuration HTTP server CLI for serving static files";
     homepage = "https://github.com/eliben/static-server";
     license = licenses.unlicense;
     maintainers = with maintainers; [ figsoda ];
diff --git a/pkgs/by-name/st/stats/package.nix b/pkgs/by-name/st/stats/package.nix
index 586d0672d1fe5..a85e7d36f9828 100644
--- a/pkgs/by-name/st/stats/package.nix
+++ b/pkgs/by-name/st/stats/package.nix
@@ -8,11 +8,11 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "stats";
-  version = "2.10.14";
+  version = "2.10.18";
 
   src = fetchurl {
     url = "https://github.com/exelban/stats/releases/download/v${finalAttrs.version}/Stats.dmg";
-    hash = "sha256-WJBn98C5uV9EmeEM+Zieztuof1CW80co8wrLntY7D0E=";
+    hash = "sha256-iBo6rP8V7jGTFaKyd3er3L2EWW3slCyV6eFoJT3w7z8=";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/by-name/st/stduuid/package.nix b/pkgs/by-name/st/stduuid/package.nix
index af9ea37639817..d11f9b753c2a7 100644
--- a/pkgs/by-name/st/stduuid/package.nix
+++ b/pkgs/by-name/st/stduuid/package.nix
@@ -23,7 +23,7 @@ in stdenv.mkDerivation {
   ];
 
   meta = {
-    description = "A C++17 cross-platform implementation for UUIDs";
+    description = "C++17 cross-platform implementation for UUIDs";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.shlevy ];
     homepage = "https://github.com/mariusbancila/stduuid";
diff --git a/pkgs/by-name/st/steamguard-cli/package.nix b/pkgs/by-name/st/steamguard-cli/package.nix
index 748c0c1e97dbe..d0177ed46befa 100644
--- a/pkgs/by-name/st/steamguard-cli/package.nix
+++ b/pkgs/by-name/st/steamguard-cli/package.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "steamguard-cli";
-  version = "0.13.0";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "dyc3";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-+Lax9MaNyrsckgx7HtpXC1zBWcZNt16inY8qil0CVLQ=";
+    hash = "sha256-MTNp4LQtFUOvlcic+EgrMaJPq0aEa6YqwwdrKkpv87Q=";
   };
 
-  cargoHash = "sha256-4QyFNy7oGWKScKZXQc63TxsI3avyEVSlqJAmv+lg1GE=";
+  cargoHash = "sha256-FBKHvkUJcjrUxuCDrra5VKBdK95IssVw7g9zzldX6jU=";
 
   nativeBuildInputs = [ installShellFiles ];
   postInstall = ''
@@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/dyc3/steamguard-cli/releases/tag/v${version}";
-    description = "A linux utility for generating 2FA codes for Steam and managing Steam trade confirmations.";
+    description = "Linux utility for generating 2FA codes for Steam and managing Steam trade confirmations";
     homepage = "https://github.com/dyc3/steamguard-cli";
     license = with licenses; [ gpl3Only ];
     mainProgram = "steamguard";
diff --git a/pkgs/by-name/st/steampipe/package.nix b/pkgs/by-name/st/steampipe/package.nix
index cbe64f835fc51..e52182508c064 100644
--- a/pkgs/by-name/st/steampipe/package.nix
+++ b/pkgs/by-name/st/steampipe/package.nix
@@ -11,13 +11,13 @@
 
 buildGoModule rec {
   pname = "steampipe";
-  version = "0.23.1";
+  version = "0.23.2";
 
   src = fetchFromGitHub {
     owner = "turbot";
     repo = "steampipe";
     rev = "refs/tags/v${version}";
-    hash = "sha256-OpZqOEE5lIJOBaDfQFi71XmPqCjJXIYeCaWUFqbcgMc=";
+    hash = "sha256-hMEFIPhtvYkBG+HBtigOzFe8iAKmywWWl1da6sksX7k=";
   };
 
   vendorHash = "sha256-KY5mVs+YsyHHtV6DvfwwxcF8K9IQWxlxIJeSyFsKkpc=";
diff --git a/pkgs/by-name/st/stella/package.nix b/pkgs/by-name/st/stella/package.nix
index f6c863bc95df8..26cb88cdbbbf9 100644
--- a/pkgs/by-name/st/stella/package.nix
+++ b/pkgs/by-name/st/stella/package.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://stella-emu.github.io/";
-    description = "An open-source Atari 2600 VCS emulator";
+    description = "Open-source Atari 2600 VCS emulator";
     longDescription = ''
       Stella is a multi-platform Atari 2600 VCS emulator released under the GNU
       General Public License (GPL). Stella was originally developed for Linux by
diff --git a/pkgs/by-name/st/step-cli/package.nix b/pkgs/by-name/st/step-cli/package.nix
index 65f8959e34e26..c33aec603b1e3 100644
--- a/pkgs/by-name/st/step-cli/package.nix
+++ b/pkgs/by-name/st/step-cli/package.nix
@@ -3,7 +3,7 @@
   buildGoModule,
   fetchFromGitHub,
 }: let
-  version = "0.26.1";
+  version = "0.26.2";
 in
   buildGoModule {
     pname = "step-cli";
@@ -13,7 +13,7 @@ in
       owner = "smallstep";
       repo = "cli";
       rev = "refs/tags/v${version}";
-      hash = "sha256-BVxdgyQsfCwHw/zjP3AKNib3sRWoBpMlZ7vh71nso94=";
+      hash = "sha256-CrV6kWgq2ldeOh5G0SgO8+q0HC1l8RuTELT3YXLxClU=";
     };
 
     ldflags = [
@@ -27,10 +27,10 @@ in
       rm command/certificate/remote_test.go
     '';
 
-    vendorHash = "sha256-Z6wrWkyAGi01gH7+v2+VkyqRNqDwLFVwXm/1FIMzURg=";
+    vendorHash = "sha256-pqwrjreysMLfVmzPE7Tj/hLdM1HO13UfmbMXvNgLd5Y=";
 
     meta = {
-      description = "A zero trust swiss army knife for working with X509, OAuth, JWT, OATH OTP, etc";
+      description = "Zero trust swiss army knife for working with X509, OAuth, JWT, OATH OTP, etc";
       homepage = "https://smallstep.com/cli/";
       changelog = "https://github.com/smallstep/cli/blob/v${version}/CHANGELOG.md";
       license = lib.licenses.asl20;
diff --git a/pkgs/by-name/st/stereotool/package.nix b/pkgs/by-name/st/stereotool/package.nix
index bb5e7e41fe968..dd562f3985f95 100644
--- a/pkgs/by-name/st/stereotool/package.nix
+++ b/pkgs/by-name/st/stereotool/package.nix
@@ -161,7 +161,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.thimeo.com/stereo-tool/";
-    description = "Stereo Tool is a software-based audio processor which offers outstanding audio quality and comes with many unique features.";
+    description = "Stereo Tool is a software-based audio processor which offers outstanding audio quality and comes with many unique features";
     license = licenses.unfree;
     mainProgram = "stereo_tool_gui";
     platforms = [ "aarch64-linux" "aarch32-linux" "x86_64-linux" "i686-linux" ];
diff --git a/pkgs/by-name/st/stirling-pdf/package.nix b/pkgs/by-name/st/stirling-pdf/package.nix
index dcd4f61d8102c..9ec363cf5b58f 100644
--- a/pkgs/by-name/st/stirling-pdf/package.nix
+++ b/pkgs/by-name/st/stirling-pdf/package.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "stirling-pdf";
-  version = "0.23.1";
+  version = "0.25.1";
 
   src = fetchFromGitHub {
     owner = "Stirling-Tools";
     repo = "Stirling-PDF";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-71caSM4J0sNMqWX0ok8aO3wdpVcjfrn/yVGLWeO5fOk=";
+    hash = "sha256-DgQLn4+uBAF8/c3G6ckkq/0gtJEE9GPHd1d/xB6omlA=";
   };
 
   patches = [
@@ -75,7 +75,7 @@ stdenv.mkDerivation (finalAttrs: {
 
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "sha256-8suWAX1+GGMvMUaymZnze7cBL701P/381dGqnyfha7s=";
+    outputHash = "sha256-JaTL6/DyBAqXkIQOkbi8MYoIZrhWqc3MpJ7DDB4h+ok=";
   };
 
   nativeBuildInputs = [
@@ -104,7 +104,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     changelog = "https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/${finalAttrs.src.rev}";
-    description = "A locally hosted web application that allows you to perform various operations on PDF files";
+    description = "Locally hosted web application that allows you to perform various operations on PDF files";
     homepage = "https://github.com/Stirling-Tools/Stirling-PDF";
     license = lib.licenses.gpl3Only;
     mainProgram = "Stirling-PDF";
diff --git a/pkgs/by-name/st/stormlib/package.nix b/pkgs/by-name/st/stormlib/package.nix
index 8248956f26675..90a748ca801f5 100644
--- a/pkgs/by-name/st/stormlib/package.nix
+++ b/pkgs/by-name/st/stormlib/package.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/ladislav-zezula/StormLib";
-    description = "An open-source project that can work with Blizzard MPQ archives";
+    description = "Open-source project that can work with Blizzard MPQ archives";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ aanderse karolchmist ];
     platforms = lib.platforms.all;
diff --git a/pkgs/by-name/st/streamdeck-ui/package.nix b/pkgs/by-name/st/streamdeck-ui/package.nix
new file mode 100644
index 0000000000000..4af7ad66c7898
--- /dev/null
+++ b/pkgs/by-name/st/streamdeck-ui/package.nix
@@ -0,0 +1,139 @@
+{
+  copyDesktopItems,
+  fetchFromGitHub,
+  fetchPypi,
+  lib,
+  makeDesktopItem,
+  python3Packages,
+  qt6,
+  wrapGAppsHook3,
+  writeText,
+  xvfb-run,
+}:
+
+let
+  # There are breaking changes between 6 and 7
+  importlib-metadata_6 = python3Packages.importlib-metadata.overrideAttrs (_: rec {
+    version = "6.9.0";
+    src = fetchPypi {
+      pname = "importlib_metadata";
+      inherit version;
+      hash = "sha256-6Ky1I8M1qRgiZ04Um0bAOZ7E0yjE0fbknCc9pf8CAbk=";
+    };
+  });
+in
+
+python3Packages.buildPythonApplication rec {
+  pname = "streamdeck-ui";
+  version = "4.1.2";
+
+  src = fetchFromGitHub {
+    repo = "streamdeck-linux-gui";
+    owner = "streamdeck-linux-gui";
+    rev = "v${version}";
+    hash = "sha256-CSsFPGnKVQUCND6YOA9kfO41KS85C57YL9LcrWlQRKo=";
+  };
+
+  format = "pyproject";
+
+  pythonRelaxDeps = [ "pillow" ];
+
+  nativeBuildInputs = [
+    python3Packages.poetry-core
+    python3Packages.pythonRelaxDepsHook
+    copyDesktopItems
+    qt6.wrapQtAppsHook
+    wrapGAppsHook3
+  ];
+
+  propagatedBuildInputs =
+    with python3Packages;
+    [
+      setuptools
+      filetype
+      cairosvg
+      pillow
+      pynput
+      pyside6
+      streamdeck
+      xlib
+      importlib-metadata_6
+      evdev
+    ]
+    ++ lib.optionals stdenv.isLinux [ qt6.qtwayland ];
+
+  nativeCheckInputs =
+    [ xvfb-run ]
+    ++ (with python3Packages; [
+      pytest
+      pytest-qt
+      pytest-mock
+    ]);
+
+  checkPhase = ''
+    runHook preCheck
+
+    # The tests needs to find the log file
+    export STREAMDECK_UI_LOG_FILE=$(pwd)/.streamdeck_ui.log
+    xvfb-run pytest tests
+
+    runHook preCheck
+  '';
+
+  postInstall =
+    let
+      udevRules = ''
+        SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", TAG+="uaccess"
+      '';
+    in
+    ''
+      mkdir -p $out/lib/systemd/user
+      substitute scripts/streamdeck.service $out/lib/systemd/user/streamdeck.service \
+        --replace '<path to streamdeck>' $out/bin/streamdeck
+
+      mkdir -p "$out/etc/udev/rules.d"
+      cp ${writeText "70-streamdeck.rules" udevRules} $out/etc/udev/rules.d/70-streamdeck.rules
+
+      mkdir -p "$out/share/pixmaps"
+      cp streamdeck_ui/logo.png $out/share/pixmaps/streamdeck-ui.png
+    '';
+
+  desktopItems =
+    let
+      common = {
+        name = "streamdeck-ui";
+        desktopName = "Stream Deck UI";
+        icon = "streamdeck-ui";
+        exec = "streamdeck";
+        comment = "UI for the Elgato Stream Deck";
+        categories = [ "Utility" ];
+      };
+    in
+    builtins.map makeDesktopItem [
+      common
+      (
+        common
+        // {
+          name = "${common.name}-noui";
+          exec = "${common.exec} --no-ui";
+          noDisplay = true;
+        }
+      )
+    ];
+
+  dontWrapQtApps = true;
+  dontWrapGApps = true;
+  makeWrapperArgs = [
+    "\${qtWrapperArgs[@]}"
+    "\${gappsWrapperArgs[@]}"
+  ];
+
+  meta = {
+    description = "Linux compatible UI for the Elgato Stream Deck";
+    downloadPage = "https://github.com/streamdeck-linux-gui/streamdeck-linux-gui/";
+    homepage = "https://streamdeck-linux-gui.github.io/streamdeck-linux-gui/";
+    license = lib.licenses.mit;
+    mainProgram = "streamdeck";
+    maintainers = with lib.maintainers; [ majiir ];
+  };
+}
diff --git a/pkgs/by-name/st/streamrip/package.nix b/pkgs/by-name/st/streamrip/package.nix
new file mode 100644
index 0000000000000..8e7f6c683a0ca
--- /dev/null
+++ b/pkgs/by-name/st/streamrip/package.nix
@@ -0,0 +1,77 @@
+{ lib
+, python3Packages
+, fetchFromGitHub
+
+, ffmpeg
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "streamrip";
+  version = "2.0.5";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "nathom";
+    repo = "streamrip";
+    rev = "v${version}";
+    hash = "sha256-KwMt89lOPGt6nX7ywliG/iAJ1WnG0CRPwhAVlPR85q0=";
+  };
+
+  patches = [
+    ./patches/ensure-the-default-config-file-is-writable.patch
+  ];
+
+  nativeBuildInputs = with python3Packages; [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
+    aiodns
+    aiofiles
+    aiohttp
+    aiolimiter
+    appdirs
+    cleo
+    click-help-colors
+    deezer-py
+    m3u8
+    mutagen
+    pathvalidate
+    pillow
+    pycryptodomex
+    pytest-asyncio
+    pytest-mock
+    rich
+    simple-term-menu
+    tomlkit
+    tqdm
+  ];
+
+  nativeCheckInputs = with python3Packages; [
+    pytestCheckHook
+  ];
+
+  prePatch = ''
+    sed -i 's#aiofiles = ".*"#aiofiles = "*"#' pyproject.toml
+    sed -i 's#deezer-py = ".*"#deezer-py = "*"#' pyproject.toml
+    sed -i 's#m3u8 = ".*"#m3u8 = "*"#' pyproject.toml
+    sed -i 's#pathvalidate = ".*"#pathvalidate = "*"#' pyproject.toml
+    sed -i 's#Pillow = ".*"#Pillow = "*"#' pyproject.toml
+    sed -i 's#pytest-asyncio = ".*"#pytest-asyncio = "*"#' pyproject.toml
+    sed -i 's#tomlkit = ".*"#tomlkit = "*"#' pyproject.toml
+
+    sed -i 's#"ffmpeg"#"${lib.getBin ffmpeg}/bin/ffmpeg"#g' streamrip/client/downloadable.py
+  '';
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  meta = with lib; {
+    description = "Scriptable music downloader for Qobuz, Tidal, SoundCloud, and Deezer";
+    homepage = "https://github.com/nathom/streamrip";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ paveloom ];
+    mainProgram = "rip";
+  };
+}
diff --git a/pkgs/by-name/st/streamrip/patches/ensure-the-default-config-file-is-writable.patch b/pkgs/by-name/st/streamrip/patches/ensure-the-default-config-file-is-writable.patch
new file mode 100644
index 0000000000000..5bd47195dcbfb
--- /dev/null
+++ b/pkgs/by-name/st/streamrip/patches/ensure-the-default-config-file-is-writable.patch
@@ -0,0 +1,26 @@
+From 18efb9b5c8e562b169425f6ba79977e52e8b91b9 Mon Sep 17 00:00:00 2001
+From: Pavel Sobolev <paveloomm@gmail.com>
+Date: Sat, 13 Jan 2024 12:49:45 +0000
+Subject: [PATCH] Ensure the default config file is writable.
+
+---
+ streamrip/config.py | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/streamrip/config.py b/streamrip/config.py
+index 7ee2f57..88a5fef 100644
+--- a/streamrip/config.py
++++ b/streamrip/config.py
+@@ -378,6 +378,9 @@ def set_user_defaults(path: str, /):
+     """Update the TOML file at the path with user-specific default values."""
+     shutil.copy(BLANK_CONFIG_PATH, path)
+
++    # Ensure the default config file is writable
++    os.chmod(path, 0o644)
++
+     with open(path) as f:
+         toml = parse(f.read())
+     toml["downloads"]["folder"] = DEFAULT_DOWNLOADS_FOLDER  # type: ignore
+--
+2.42.0
+
diff --git a/pkgs/by-name/st/strictdoc/package.nix b/pkgs/by-name/st/strictdoc/package.nix
index 3b1e2397407fa..95d11ba10aeef 100644
--- a/pkgs/by-name/st/strictdoc/package.nix
+++ b/pkgs/by-name/st/strictdoc/package.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "strictdoc";
-  version = "0.0.55";
+  version = "0.0.56";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "strictdoc-project";
     repo = "strictdoc";
     rev = "refs/tags/${version}";
-    hash = "sha256-QIwDtOaqRq59zdF5IZ7xwas5LLYt98Vyv00HkgGgahM=";
+    hash = "sha256-T2xFMExRas7mxfjmAZnv3kiHdc+eEFdCf7TG1ABzgWM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/st/sttr/package.nix b/pkgs/by-name/st/sttr/package.nix
index a645940a59a3b..7c9256b2ae35c 100644
--- a/pkgs/by-name/st/sttr/package.nix
+++ b/pkgs/by-name/st/sttr/package.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "sttr";
-  version = "0.2.20";
+  version = "0.2.21";
 
   src = fetchFromGitHub {
     owner = "abhimanyu003";
     repo = "sttr";
     rev = "v${version}";
-    hash = "sha256-8xIVLUbqk7bPjDTO2tdU9dGslBEorQusaJSAuFhRZYw=";
+    hash = "sha256-XBg/t2hspKdgkRgU95VLfi74cnA9OZ03x4deFOu+2do=";
   };
 
   vendorHash = "sha256-OuPPK4ordP/yzH+0sCRKO9szJ81LUbvM2Z8U88O6Qwc=";
diff --git a/pkgs/by-name/st/stylance-cli/package.nix b/pkgs/by-name/st/stylance-cli/package.nix
index 767d7370b7664..3649dc519dc13 100644
--- a/pkgs/by-name/st/stylance-cli/package.nix
+++ b/pkgs/by-name/st/stylance-cli/package.nix
@@ -4,17 +4,17 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "stylance-cli";
-  version = "0.3.0";
+  version = "0.5.0";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-YQYYZxLypD5Nz8kllIaBFDoV8L2c9wzJwmszqPpjpmg=";
+    hash = "sha256-nwvlce1a5Qerh1wa/lAtkl60fpjMV6WQuEzNLfmCK7k=";
   };
 
-  cargoHash = "sha256-ZzdLbsHRBgprdzmPVzywJx+wMMqRBsLeT84UIDMJbQM=";
+  cargoHash = "sha256-e8lu839kthncvCVlg13ZWNUwYGgGVgXZWJlHufubNA8=";
 
   meta = with lib; {
-    description = "A library and cli tool for working with scoped CSS in rust";
+    description = "Library and cli tool for working with scoped CSS in rust";
     mainProgram = "stylance";
     homepage = "https://github.com/basro/stylance-rs";
     changelog = "https://github.com/basro/stylance-rs/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/applications/audio/sublime-music/default.nix b/pkgs/by-name/su/sublime-music/package.nix
index a1c74abeca1c8..e2a7874a0eb05 100644
--- a/pkgs/applications/audio/sublime-music/default.nix
+++ b/pkgs/by-name/su/sublime-music/package.nix
@@ -12,26 +12,32 @@
 , libnotify
 , networkSupport ? true
 , networkmanager
+, fetchpatch
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "sublime-music";
-  version = "0.12.0";
+  version = "0.12.0-unstable-2024-01-06";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "sublime-music";
     repo = "sublime-music";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-FPzeFqDOcaiariz7qJwz6P3Wd+ZDxNP57uj+ptMtEyM=";
+    rev = "0b4ba69a7ff7ad2dfcb0a264587921f323030766";
+    hash = "sha256-NoJ50n/AjM738ebQ/Wccwp2l0sC3VBvKovJvDhDa5SU=";
   };
 
+  patches = [
+    # Fix loadfile command https://github.com/sublime-music/sublime-music/pull/461
+    (fetchpatch {
+      url = "https://github.com/sublime-music/sublime-music/commit/1d107fec2ac7f83e0c49bab663273b31c9072411.patch";
+      hash = "sha256-fUss4kqlFiXRr37AIaeWEv/4Bpzx5xkW28OEnsjQqzY=";
+    })
+  ];
+
   postPatch = ''
     sed -i "/--cov/d" setup.cfg
     sed -i "/--no-cov-on-fail/d" setup.cfg
-
-    # https://github.com/sublime-music/sublime-music/commit/f477659d24e372ed6654501deebad91ae4b0b51c
-    sed -i "s/python-mpv/mpv/g" pyproject.toml
   '';
 
   build-system = with python3.pkgs; [
@@ -94,7 +100,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "GTK3 Subsonic/Airsonic client";
-    homepage = "https://sublimemusic.app/";
+    homepage = "https://sublimemusic.app";
     changelog = "https://github.com/sublime-music/sublime-music/blob/v${version}/CHANGELOG.rst";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ albakham sumnerevans ];
diff --git a/pkgs/by-name/su/subprober/package.nix b/pkgs/by-name/su/subprober/package.nix
new file mode 100644
index 0000000000000..6b2cc439439e1
--- /dev/null
+++ b/pkgs/by-name/su/subprober/package.nix
@@ -0,0 +1,53 @@
+{
+  lib,
+  python3,
+  fetchFromGitHub,
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "subprober";
+  version = "1.0.9";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "RevoltSecurities";
+    repo = "SubProber";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-CxmePd1dw9H/XLQZ16JMF1pdFFOI59Qa2knTnKKzFvM=";
+  };
+
+  build-system = with python3.pkgs; [ setuptools ];
+
+  dependencies = with python3.pkgs; [
+    aiodns
+    aiofiles
+    aiohttp
+    alive-progress
+    anyio
+    appdirs
+    arsenic
+    beautifulsoup4
+    colorama
+    fake-useragent
+    httpx
+    requests
+    rich
+    structlog
+    urllib3
+    uvloop
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "subprober" ];
+
+  meta = with lib; {
+    description = "Subdomain scanning tool";
+    homepage = "https://github.com/RevoltSecurities/SubProber";
+    changelog = "https://github.com/RevoltSecurities/SubProber/releases/tag/v${version}";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "subprober";
+  };
+}
diff --git a/pkgs/by-name/su/subtitlecomposer/package.nix b/pkgs/by-name/su/subtitlecomposer/package.nix
index 31ede6bbedbad..ce6e7fe6e6356 100644
--- a/pkgs/by-name/su/subtitlecomposer/package.nix
+++ b/pkgs/by-name/su/subtitlecomposer/package.nix
@@ -10,14 +10,14 @@
 
 stdenv.mkDerivation rec {
   pname = "subtitlecomposer";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchFromGitLab {
     domain = "invent.kde.org";
     owner = "multimedia";
     repo = "subtitlecomposer";
     rev = "v${version}";
-    hash = "sha256-RKS3VTtpxnox0hzessMHmoGPpT+Ho0b3fxtQMGw9OrM=";
+    hash = "sha256-5RBrxOy1EIgDLb21r1y+Pou8d/j05a1YYMRJh1n8vSA=";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules libsForQt5.wrapQtAppsHook ];
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://apps.kde.org/subtitlecomposer";
-    description = "An open source text-based subtitle editor";
+    description = "Open source text-based subtitle editor";
     longDescription = ''
       An open source text-based subtitle editor that supports basic and
       advanced editing operations, aiming to become an improved version of
diff --git a/pkgs/by-name/su/sudachi-rs/package.nix b/pkgs/by-name/su/sudachi-rs/package.nix
index 24ae7a9873e89..a68dcdf87e91b 100644
--- a/pkgs/by-name/su/sudachi-rs/package.nix
+++ b/pkgs/by-name/su/sudachi-rs/package.nix
@@ -50,7 +50,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A Japanese morphological analyzer";
+    description = "Japanese morphological analyzer";
     homepage = "https://github.com/WorksApplications/sudachi.rs";
     changelog = "https://github.com/WorksApplications/sudachi.rs/blob/${src.rev}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/by-name/su/sudachidict/package.nix b/pkgs/by-name/su/sudachidict/package.nix
index 7245b9696bf2a..9be524b9acd91 100644
--- a/pkgs/by-name/su/sudachidict/package.nix
+++ b/pkgs/by-name/su/sudachidict/package.nix
@@ -48,7 +48,7 @@ stdenvNoCC.mkDerivation {
   };
 
   meta = with lib; {
-    description = "A lexicon for Sudachi";
+    description = "Lexicon for Sudachi";
     homepage = "https://github.com/WorksApplications/SudachiDict";
     changelog = "https://github.com/WorksApplications/SudachiDict/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/by-name/su/sunpaper/package.nix b/pkgs/by-name/su/sunpaper/package.nix
index 54d8d3d871ac6..e704cb87f1c65 100644
--- a/pkgs/by-name/su/sunpaper/package.nix
+++ b/pkgs/by-name/su/sunpaper/package.nix
@@ -45,7 +45,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A utility to change wallpaper based on local weather, sunrise and sunset times";
+    description = "Utility to change wallpaper based on local weather, sunrise and sunset times";
     homepage = "https://github.com/hexive/sunpaper";
     license = lib.licenses.asl20;
     mainProgram = "sunpaper";
diff --git a/pkgs/by-name/su/supergfxctl-plasmoid/package.nix b/pkgs/by-name/su/supergfxctl-plasmoid/package.nix
new file mode 100644
index 0000000000000..9141881c7a623
--- /dev/null
+++ b/pkgs/by-name/su/supergfxctl-plasmoid/package.nix
@@ -0,0 +1,38 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, cmake
+, kdePackages
+}:
+
+stdenv.mkDerivation rec {
+  pname = "supergfxctl-plasmoid";
+  version = "2.0.0";
+
+  src = fetchFromGitLab {
+    owner = "jhyub";
+    repo = "supergfxctl-plasmoid";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-m3NmbFD9tqqCyiQgMVRNtlCZy7q+rMCsWgtds1QdOrE=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    kdePackages.wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    kdePackages.libplasma
+  ];
+
+  meta = {
+    description = "KDE Plasma plasmoid for supergfxctl";
+    longDescription = ''
+      KDE Plasma plasmoid for supergfxctl
+      Built as a C++/QML Plasmoid
+    '';
+    license = lib.licenses.mpl20;
+    homepage = "https://gitlab.com/Jhyub/supergfxctl-plasmoid";
+    maintainers = with lib.maintainers; [ johnylpm ];
+  };
+}
diff --git a/pkgs/by-name/su/supermodel/package.nix b/pkgs/by-name/su/supermodel/package.nix
index 27b9f633a661b..cbaf5b41cf72d 100644
--- a/pkgs/by-name/su/supermodel/package.nix
+++ b/pkgs/by-name/su/supermodel/package.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A Sega Model 3 Arcade Emulator";
+    description = "Sega Model 3 Arcade Emulator";
     homepage = "https://github.com/trzy/supermodel";
     license = lib.licenses.gpl3;
     longDescription = ''
diff --git a/pkgs/by-name/su/supersonic/package.nix b/pkgs/by-name/su/supersonic/package.nix
index fee32dc5f88d9..2f877d881ae4e 100644
--- a/pkgs/by-name/su/supersonic/package.nix
+++ b/pkgs/by-name/su/supersonic/package.nix
@@ -20,16 +20,16 @@ assert waylandSupport -> stdenv.isLinux;
 
 buildGoModule rec {
   pname = "supersonic" + lib.optionalString waylandSupport "-wayland";
-  version = "0.10.1";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "dweymouth";
     repo = "supersonic";
     rev = "v${version}";
-    hash = "sha256-0MbR6ah3UakLn/6Mfd156BlTZe7thNK6mAPLTuz298g=";
+    hash = "sha256-tuXpK1KYp0INSCuCQFw1crgPjqW655AagwHZswLrodg=";
   };
 
-  vendorHash = "sha256-Ld1j/SFq5W+SKppAzk7UV74RD6/Dw+PWk0BhEGML5+k=";
+  vendorHash = "sha256-hYFz9XEYkHv9HOCYKE3a17eDUspv6QmkH/+ipjJuaz0=";
 
   nativeBuildInputs = [
     copyDesktopItems
diff --git a/pkgs/by-name/su/surrealdb/package.nix b/pkgs/by-name/su/surrealdb/package.nix
index 0e881eeb7dac6..b31e604754444 100644
--- a/pkgs/by-name/su/surrealdb/package.nix
+++ b/pkgs/by-name/su/surrealdb/package.nix
@@ -16,16 +16,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "surrealdb";
-  version = "1.5.0";
+  version = "1.5.3";
 
   src = fetchFromGitHub {
     owner = "surrealdb";
     repo = "surrealdb";
     rev = "v${version}";
-    hash = "sha256-MX7XE+1YCP6zSc207GAaFgr0QJLMX0dbFqGjLMf/KOI=";
+    hash = "sha256-lRXQq834KYDW/ugpFudrmSDPlzBaGDuS/pC2riElF04=";
   };
 
-  cargoHash = "sha256-skPCmQVH76qdmBVd4IVCnKn1uHP7mEgJ8YXprycpQ5I=";
+  cargoHash = "sha256-XQu1I4ufQZKpeDBTb13g2vECmdWAGRckQjWz8BbHMHA=";
 
   # error: linker `aarch64-linux-gnu-gcc` not found
   postPatch = ''
@@ -65,7 +65,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A scalable, distributed, collaborative, document-graph database, for the realtime web";
+    description = "Scalable, distributed, collaborative, document-graph database, for the realtime web";
     homepage = "https://surrealdb.com/";
     mainProgram = "surreal";
     license = licenses.bsl11;
diff --git a/pkgs/by-name/su/surrealist/package.nix b/pkgs/by-name/su/surrealist/package.nix
index e67cf28fcdb60..53290ea042c73 100644
--- a/pkgs/by-name/su/surrealist/package.nix
+++ b/pkgs/by-name/su/surrealist/package.nix
@@ -1,5 +1,4 @@
 { buildGoModule
-, cacert
 , cairo
 , cargo
 , cargo-tauri
@@ -7,15 +6,14 @@
 , fetchFromGitHub
 , gdk-pixbuf
 , gobject-introspection
-, jq
 , lib
 , libsoup
 , llvmPackages_15
 , makeBinaryWrapper
-, moreutils
-, nodePackages
+, nodejs
 , pango
 , pkg-config
+, pnpm
 , rustc
 , rustPlatform
 , stdenv
@@ -83,7 +81,7 @@ in stdenv.mkDerivation (finalAttrs: {
     ];
 
     postBuild = ''
-      CC=clang CARGO_TARGET_WASM32_UNKNOWN_UNKNOWN_LINKER=lld cargo build \
+      CC=clang cargo build \
         --target wasm32-unknown-unknown \
         --release
 
@@ -95,49 +93,25 @@ in stdenv.mkDerivation (finalAttrs: {
     '';
   };
 
-  pnpm-deps = stdenvNoCC.mkDerivation {
-    inherit (finalAttrs) src version;
-    pname = "${finalAttrs.pname}-pnpm-deps";
-    dontFixup = true;
-
-    nativeBuildInputs = [ cacert jq moreutils nodePackages.pnpm ];
-
-    postInstall = ''
-      export HOME=$(mktemp -d)
-      pnpm config set store-dir $out
-      # use --ignore-script and --no-optional to avoid downloading binaries
-      # use --frozen-lockfile to avoid checking git deps
-      pnpm install --frozen-lockfile --no-optional --ignore-script
-
-      # Remove timestamp and sort the json files
-      rm -rf $out/v3/tmp
-      for f in $(find $out -name "*.json"); do
-        sed -i -E -e 's/"checkedAt":[0-9]+,//g' $f
-        jq --sort-keys . $f | sponge $f
-      done
-    '';
-
-    outputHashMode = "recursive";
-    outputHash = "sha256-jT0Bw0xiusOw/5o6EUaEV3/GqkD/l6jkwXmOqc3a/nc=";
-  };
-
   ui = stdenvNoCC.mkDerivation {
     inherit (finalAttrs) src version;
     pname = "${finalAttrs.pname}-ui";
     dontFixup = true;
 
+    pnpmDeps = pnpm.fetchDeps {
+      inherit (finalAttrs) pname version src;
+      hash = "sha256-3x/GKgVX0mnxTZmINe/qTtr/vI0h5IqPYt9N0l/VGzg=";
+    };
+
     ESBUILD_BINARY_PATH = "${lib.getExe esbuild-18-20}";
 
-    nativeBuildInputs = [ nodePackages.pnpm ];
+    nativeBuildInputs = [ nodejs pnpm.configHook ];
 
     postPatch = ''
       ln -s ${finalAttrs.embed} src/generated
     '';
 
     postBuild = ''
-      export HOME=$(mktemp -d)
-      pnpm config set store-dir ${finalAttrs.pnpm-deps}
-      pnpm install --offline --frozen-lockfile --no-optional --ignore-script
       pnpm build
     '';
 
@@ -192,5 +166,8 @@ in stdenv.mkDerivation (finalAttrs: {
     mainProgram = "surrealist";
     maintainers = with maintainers; [ frankp ];
     platforms = platforms.linux;
+    # See comment about wasm32-unknown-unknown in rustc.nix.
+    broken = lib.any (a: lib.hasAttr a stdenv.hostPlatform.gcc) [ "cpu" "float-abi" "fpu" ] ||
+      !stdenv.hostPlatform.gcc.thumb or true;
   };
 })
diff --git a/pkgs/by-name/su/suwayomi-server/package.nix b/pkgs/by-name/su/suwayomi-server/package.nix
index e924d0ea1f7ba..1781fa8e73c9f 100644
--- a/pkgs/by-name/su/suwayomi-server/package.nix
+++ b/pkgs/by-name/su/suwayomi-server/package.nix
@@ -41,7 +41,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A free and open source manga reader server that runs extensions built for Tachiyomi.";
+    description = "Free and open source manga reader server that runs extensions built for Tachiyomi";
     longDescription = ''
       Suwayomi is an independent Tachiyomi compatible software and is not a Fork of Tachiyomi.
 
diff --git a/pkgs/by-name/sv/svelte-language-server/package-lock.json b/pkgs/by-name/sv/svelte-language-server/package-lock.json
new file mode 100644
index 0000000000000..da3bab8625e55
--- /dev/null
+++ b/pkgs/by-name/sv/svelte-language-server/package-lock.json
@@ -0,0 +1,1946 @@
+{
+  "name": "svelte-language-server",
+  "version": "0.16.10",
+  "lockfileVersion": 3,
+  "requires": true,
+  "packages": {
+    "": {
+      "name": "svelte-language-server",
+      "version": "0.16.10",
+      "license": "MIT",
+      "dependencies": {
+        "@jridgewell/trace-mapping": "^0.3.17",
+        "@vscode/emmet-helper": "2.8.4",
+        "chokidar": "^3.4.1",
+        "estree-walker": "^2.0.1",
+        "fast-glob": "^3.2.7",
+        "lodash": "^4.17.21",
+        "prettier": "~3.2.5",
+        "prettier-plugin-svelte": "^3.2.2",
+        "svelte": "^3.57.0",
+        "svelte-preprocess": "^5.1.3",
+        "svelte2tsx": "~0.7.0",
+        "typescript": "^5.3.2",
+        "typescript-auto-import-cache": "^0.3.2",
+        "vscode-css-languageservice": "~6.2.10",
+        "vscode-html-languageservice": "~5.1.1",
+        "vscode-languageserver": "8.0.2",
+        "vscode-languageserver-protocol": "3.17.2",
+        "vscode-languageserver-types": "3.17.2",
+        "vscode-uri": "~3.0.0"
+      },
+      "bin": {
+        "svelteserver": "bin/server.js"
+      },
+      "devDependencies": {
+        "@types/estree": "^0.0.42",
+        "@types/lodash": "^4.14.116",
+        "@types/mocha": "^9.1.0",
+        "@types/node": "^16.0.0",
+        "@types/prettier": "^2.2.3",
+        "@types/sinon": "^7.5.2",
+        "cross-env": "^7.0.2",
+        "mocha": "^9.2.0",
+        "sinon": "^11.0.0",
+        "ts-node": "^10.0.0"
+      },
+      "engines": {
+        "node": ">= 12.0.0"
+      }
+    },
+    "node_modules/@cspotcode/source-map-support": {
+      "version": "0.8.1",
+      "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
+      "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
+      "dev": true,
+      "dependencies": {
+        "@jridgewell/trace-mapping": "0.3.9"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": {
+      "version": "0.3.9",
+      "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
+      "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
+      "dev": true,
+      "dependencies": {
+        "@jridgewell/resolve-uri": "^3.0.3",
+        "@jridgewell/sourcemap-codec": "^1.4.10"
+      }
+    },
+    "node_modules/@emmetio/abbreviation": {
+      "version": "2.3.3",
+      "resolved": "https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-2.3.3.tgz",
+      "integrity": "sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==",
+      "dependencies": {
+        "@emmetio/scanner": "^1.0.4"
+      }
+    },
+    "node_modules/@emmetio/css-abbreviation": {
+      "version": "2.1.8",
+      "resolved": "https://registry.npmjs.org/@emmetio/css-abbreviation/-/css-abbreviation-2.1.8.tgz",
+      "integrity": "sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==",
+      "dependencies": {
+        "@emmetio/scanner": "^1.0.4"
+      }
+    },
+    "node_modules/@emmetio/scanner": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/@emmetio/scanner/-/scanner-1.0.4.tgz",
+      "integrity": "sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA=="
+    },
+    "node_modules/@jridgewell/resolve-uri": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+      "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
+    "node_modules/@jridgewell/sourcemap-codec": {
+      "version": "1.4.15",
+      "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+      "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
+    },
+    "node_modules/@jridgewell/trace-mapping": {
+      "version": "0.3.25",
+      "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+      "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+      "dependencies": {
+        "@jridgewell/resolve-uri": "^3.1.0",
+        "@jridgewell/sourcemap-codec": "^1.4.14"
+      }
+    },
+    "node_modules/@nodelib/fs.scandir": {
+      "version": "2.1.5",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+      "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+      "dependencies": {
+        "@nodelib/fs.stat": "2.0.5",
+        "run-parallel": "^1.1.9"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@nodelib/fs.stat": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+      "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@nodelib/fs.walk": {
+      "version": "1.2.8",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+      "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+      "dependencies": {
+        "@nodelib/fs.scandir": "2.1.5",
+        "fastq": "^1.6.0"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@sinonjs/commons": {
+      "version": "1.8.6",
+      "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz",
+      "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==",
+      "dev": true,
+      "dependencies": {
+        "type-detect": "4.0.8"
+      }
+    },
+    "node_modules/@sinonjs/fake-timers": {
+      "version": "7.1.2",
+      "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz",
+      "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==",
+      "dev": true,
+      "dependencies": {
+        "@sinonjs/commons": "^1.7.0"
+      }
+    },
+    "node_modules/@sinonjs/samsam": {
+      "version": "6.1.3",
+      "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.3.tgz",
+      "integrity": "sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ==",
+      "dev": true,
+      "dependencies": {
+        "@sinonjs/commons": "^1.6.0",
+        "lodash.get": "^4.4.2",
+        "type-detect": "^4.0.8"
+      }
+    },
+    "node_modules/@sinonjs/text-encoding": {
+      "version": "0.7.2",
+      "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz",
+      "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==",
+      "dev": true
+    },
+    "node_modules/@tsconfig/node10": {
+      "version": "1.0.11",
+      "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz",
+      "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==",
+      "dev": true
+    },
+    "node_modules/@tsconfig/node12": {
+      "version": "1.0.11",
+      "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
+      "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
+      "dev": true
+    },
+    "node_modules/@tsconfig/node14": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
+      "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
+      "dev": true
+    },
+    "node_modules/@tsconfig/node16": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
+      "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
+      "dev": true
+    },
+    "node_modules/@types/estree": {
+      "version": "0.0.42",
+      "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.42.tgz",
+      "integrity": "sha512-K1DPVvnBCPxzD+G51/cxVIoc2X8uUVl1zpJeE6iKcgHMj4+tbat5Xu4TjV7v2QSDbIeAfLi2hIk+u2+s0MlpUQ==",
+      "dev": true
+    },
+    "node_modules/@types/lodash": {
+      "version": "4.17.4",
+      "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.4.tgz",
+      "integrity": "sha512-wYCP26ZLxaT3R39kiN2+HcJ4kTd3U1waI/cY7ivWYqFP6pW3ZNpvi6Wd6PHZx7T/t8z0vlkXMg3QYLa7DZ/IJQ==",
+      "dev": true
+    },
+    "node_modules/@types/mocha": {
+      "version": "9.1.1",
+      "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz",
+      "integrity": "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==",
+      "dev": true
+    },
+    "node_modules/@types/node": {
+      "version": "16.18.98",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.98.tgz",
+      "integrity": "sha512-fpiC20NvLpTLAzo3oVBKIqBGR6Fx/8oAK/SSf7G+fydnXMY1x4x9RZ6sBXhqKlCU21g2QapUsbLlhv3+a7wS+Q==",
+      "dev": true
+    },
+    "node_modules/@types/prettier": {
+      "version": "2.7.3",
+      "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz",
+      "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==",
+      "dev": true
+    },
+    "node_modules/@types/pug": {
+      "version": "2.0.10",
+      "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.10.tgz",
+      "integrity": "sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA=="
+    },
+    "node_modules/@types/sinon": {
+      "version": "7.5.2",
+      "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-7.5.2.tgz",
+      "integrity": "sha512-T+m89VdXj/eidZyejvmoP9jivXgBDdkOSBVQjU9kF349NEx10QdPNGxHeZUaj1IlJ32/ewdyXJjnJxyxJroYwg==",
+      "dev": true
+    },
+    "node_modules/@ungap/promise-all-settled": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
+      "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
+      "dev": true
+    },
+    "node_modules/@vscode/emmet-helper": {
+      "version": "2.8.4",
+      "resolved": "https://registry.npmjs.org/@vscode/emmet-helper/-/emmet-helper-2.8.4.tgz",
+      "integrity": "sha512-lUki5QLS47bz/U8IlG9VQ+1lfxMtxMZENmU5nu4Z71eOD5j9FK0SmYGL5NiVJg9WBWeAU0VxRADMY2Qpq7BfVg==",
+      "dependencies": {
+        "emmet": "^2.3.0",
+        "jsonc-parser": "^2.3.0",
+        "vscode-languageserver-textdocument": "^1.0.1",
+        "vscode-languageserver-types": "^3.15.1",
+        "vscode-nls": "^5.0.0",
+        "vscode-uri": "^2.1.2"
+      }
+    },
+    "node_modules/@vscode/emmet-helper/node_modules/vscode-uri": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.1.2.tgz",
+      "integrity": "sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A=="
+    },
+    "node_modules/@vscode/l10n": {
+      "version": "0.0.18",
+      "resolved": "https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.18.tgz",
+      "integrity": "sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ=="
+    },
+    "node_modules/acorn": {
+      "version": "8.11.3",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
+      "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+      "dev": true,
+      "bin": {
+        "acorn": "bin/acorn"
+      },
+      "engines": {
+        "node": ">=0.4.0"
+      }
+    },
+    "node_modules/acorn-walk": {
+      "version": "8.3.2",
+      "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz",
+      "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.4.0"
+      }
+    },
+    "node_modules/ansi-colors": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
+      "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/ansi-regex": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/ansi-styles": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+      "dev": true,
+      "dependencies": {
+        "color-convert": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/anymatch": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+      "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+      "dependencies": {
+        "normalize-path": "^3.0.0",
+        "picomatch": "^2.0.4"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/arg": {
+      "version": "4.1.3",
+      "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
+      "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
+      "dev": true
+    },
+    "node_modules/argparse": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+      "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+      "dev": true
+    },
+    "node_modules/balanced-match": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+    },
+    "node_modules/binary-extensions": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+      "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/brace-expansion": {
+      "version": "1.1.11",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+      "dependencies": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "node_modules/braces": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+      "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+      "dependencies": {
+        "fill-range": "^7.1.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/browser-stdout": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
+      "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
+      "dev": true
+    },
+    "node_modules/buffer-crc32": {
+      "version": "0.2.13",
+      "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+      "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/camelcase": {
+      "version": "6.3.0",
+      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+      "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/chalk": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+      "dev": true,
+      "dependencies": {
+        "ansi-styles": "^4.1.0",
+        "supports-color": "^7.1.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/chalk?sponsor=1"
+      }
+    },
+    "node_modules/chalk/node_modules/supports-color": {
+      "version": "7.2.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+      "dev": true,
+      "dependencies": {
+        "has-flag": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/chokidar": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+      "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+      "dependencies": {
+        "anymatch": "~3.1.2",
+        "braces": "~3.0.2",
+        "glob-parent": "~5.1.2",
+        "is-binary-path": "~2.1.0",
+        "is-glob": "~4.0.1",
+        "normalize-path": "~3.0.0",
+        "readdirp": "~3.6.0"
+      },
+      "engines": {
+        "node": ">= 8.10.0"
+      },
+      "funding": {
+        "url": "https://paulmillr.com/funding/"
+      },
+      "optionalDependencies": {
+        "fsevents": "~2.3.2"
+      }
+    },
+    "node_modules/cliui": {
+      "version": "7.0.4",
+      "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+      "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+      "dev": true,
+      "dependencies": {
+        "string-width": "^4.2.0",
+        "strip-ansi": "^6.0.0",
+        "wrap-ansi": "^7.0.0"
+      }
+    },
+    "node_modules/color-convert": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+      "dev": true,
+      "dependencies": {
+        "color-name": "~1.1.4"
+      },
+      "engines": {
+        "node": ">=7.0.0"
+      }
+    },
+    "node_modules/color-name": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+      "dev": true
+    },
+    "node_modules/concat-map": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+      "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+    },
+    "node_modules/create-require": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
+      "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
+      "dev": true
+    },
+    "node_modules/cross-env": {
+      "version": "7.0.3",
+      "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz",
+      "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==",
+      "dev": true,
+      "dependencies": {
+        "cross-spawn": "^7.0.1"
+      },
+      "bin": {
+        "cross-env": "src/bin/cross-env.js",
+        "cross-env-shell": "src/bin/cross-env-shell.js"
+      },
+      "engines": {
+        "node": ">=10.14",
+        "npm": ">=6",
+        "yarn": ">=1"
+      }
+    },
+    "node_modules/cross-spawn": {
+      "version": "7.0.3",
+      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+      "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+      "dev": true,
+      "dependencies": {
+        "path-key": "^3.1.0",
+        "shebang-command": "^2.0.0",
+        "which": "^2.0.1"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/debug": {
+      "version": "4.3.3",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
+      "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
+      "dev": true,
+      "dependencies": {
+        "ms": "2.1.2"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/debug/node_modules/ms": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+      "dev": true
+    },
+    "node_modules/decamelize": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
+      "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/dedent-js": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/dedent-js/-/dedent-js-1.0.1.tgz",
+      "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ=="
+    },
+    "node_modules/detect-indent": {
+      "version": "6.1.0",
+      "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz",
+      "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/diff": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
+      "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.3.1"
+      }
+    },
+    "node_modules/emmet": {
+      "version": "2.4.7",
+      "resolved": "https://registry.npmjs.org/emmet/-/emmet-2.4.7.tgz",
+      "integrity": "sha512-O5O5QNqtdlnQM2bmKHtJgyChcrFMgQuulI+WdiOw2NArzprUqqxUW6bgYtKvzKgrsYpuLWalOkdhNP+1jluhCA==",
+      "workspaces": [
+        "./packages/scanner",
+        "./packages/abbreviation",
+        "./packages/css-abbreviation",
+        "./"
+      ],
+      "dependencies": {
+        "@emmetio/abbreviation": "^2.3.3",
+        "@emmetio/css-abbreviation": "^2.1.8"
+      }
+    },
+    "node_modules/emoji-regex": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+      "dev": true
+    },
+    "node_modules/es6-promise": {
+      "version": "3.3.1",
+      "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz",
+      "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg=="
+    },
+    "node_modules/escalade": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
+      "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/escape-string-regexp": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+      "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/estree-walker": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+      "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+    },
+    "node_modules/fast-glob": {
+      "version": "3.3.2",
+      "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+      "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+      "dependencies": {
+        "@nodelib/fs.stat": "^2.0.2",
+        "@nodelib/fs.walk": "^1.2.3",
+        "glob-parent": "^5.1.2",
+        "merge2": "^1.3.0",
+        "micromatch": "^4.0.4"
+      },
+      "engines": {
+        "node": ">=8.6.0"
+      }
+    },
+    "node_modules/fastq": {
+      "version": "1.17.1",
+      "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
+      "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+      "dependencies": {
+        "reusify": "^1.0.4"
+      }
+    },
+    "node_modules/fill-range": {
+      "version": "7.1.1",
+      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+      "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+      "dependencies": {
+        "to-regex-range": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/find-up": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+      "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+      "dev": true,
+      "dependencies": {
+        "locate-path": "^6.0.0",
+        "path-exists": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/flat": {
+      "version": "5.0.2",
+      "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
+      "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
+      "dev": true,
+      "bin": {
+        "flat": "cli.js"
+      }
+    },
+    "node_modules/fs.realpath": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+      "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+    },
+    "node_modules/fsevents": {
+      "version": "2.3.3",
+      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+      "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+      "hasInstallScript": true,
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+      }
+    },
+    "node_modules/get-caller-file": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+      "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+      "dev": true,
+      "engines": {
+        "node": "6.* || 8.* || >= 10.*"
+      }
+    },
+    "node_modules/glob": {
+      "version": "7.2.0",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
+      "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
+      "deprecated": "Glob versions prior to v9 are no longer supported",
+      "dependencies": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^3.0.4",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      },
+      "engines": {
+        "node": "*"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/glob-parent": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+      "dependencies": {
+        "is-glob": "^4.0.1"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/glob/node_modules/minimatch": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+      "dependencies": {
+        "brace-expansion": "^1.1.7"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/graceful-fs": {
+      "version": "4.2.11",
+      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+      "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
+    },
+    "node_modules/growl": {
+      "version": "1.10.5",
+      "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
+      "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
+      "dev": true,
+      "engines": {
+        "node": ">=4.x"
+      }
+    },
+    "node_modules/has-flag": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/he": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+      "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+      "dev": true,
+      "bin": {
+        "he": "bin/he"
+      }
+    },
+    "node_modules/inflight": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+      "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+      "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
+      "dependencies": {
+        "once": "^1.3.0",
+        "wrappy": "1"
+      }
+    },
+    "node_modules/inherits": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+    },
+    "node_modules/is-binary-path": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+      "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+      "dependencies": {
+        "binary-extensions": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/is-extglob": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+      "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/is-fullwidth-code-point": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+      "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/is-glob": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+      "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+      "dependencies": {
+        "is-extglob": "^2.1.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/is-number": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+      "engines": {
+        "node": ">=0.12.0"
+      }
+    },
+    "node_modules/is-plain-obj": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+      "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/is-unicode-supported": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+      "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/isexe": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+      "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+      "dev": true
+    },
+    "node_modules/js-yaml": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+      "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+      "dev": true,
+      "dependencies": {
+        "argparse": "^2.0.1"
+      },
+      "bin": {
+        "js-yaml": "bin/js-yaml.js"
+      }
+    },
+    "node_modules/jsonc-parser": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz",
+      "integrity": "sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg=="
+    },
+    "node_modules/just-extend": {
+      "version": "6.2.0",
+      "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz",
+      "integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==",
+      "dev": true
+    },
+    "node_modules/locate-path": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+      "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+      "dev": true,
+      "dependencies": {
+        "p-locate": "^5.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/lodash": {
+      "version": "4.17.21",
+      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+    },
+    "node_modules/lodash.get": {
+      "version": "4.4.2",
+      "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+      "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
+      "dev": true
+    },
+    "node_modules/log-symbols": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+      "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+      "dev": true,
+      "dependencies": {
+        "chalk": "^4.1.0",
+        "is-unicode-supported": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/lower-case": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+      "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+      "dependencies": {
+        "tslib": "^2.0.3"
+      }
+    },
+    "node_modules/magic-string": {
+      "version": "0.30.10",
+      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz",
+      "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
+      "dependencies": {
+        "@jridgewell/sourcemap-codec": "^1.4.15"
+      }
+    },
+    "node_modules/make-error": {
+      "version": "1.3.6",
+      "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
+      "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
+      "dev": true
+    },
+    "node_modules/merge2": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+      "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/micromatch": {
+      "version": "4.0.7",
+      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
+      "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
+      "dependencies": {
+        "braces": "^3.0.3",
+        "picomatch": "^2.3.1"
+      },
+      "engines": {
+        "node": ">=8.6"
+      }
+    },
+    "node_modules/min-indent": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
+      "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/minimatch": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz",
+      "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==",
+      "dev": true,
+      "dependencies": {
+        "brace-expansion": "^1.1.7"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/minimist": {
+      "version": "1.2.8",
+      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+      "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/mkdirp": {
+      "version": "0.5.6",
+      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+      "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+      "dependencies": {
+        "minimist": "^1.2.6"
+      },
+      "bin": {
+        "mkdirp": "bin/cmd.js"
+      }
+    },
+    "node_modules/mocha": {
+      "version": "9.2.2",
+      "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz",
+      "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==",
+      "dev": true,
+      "dependencies": {
+        "@ungap/promise-all-settled": "1.1.2",
+        "ansi-colors": "4.1.1",
+        "browser-stdout": "1.3.1",
+        "chokidar": "3.5.3",
+        "debug": "4.3.3",
+        "diff": "5.0.0",
+        "escape-string-regexp": "4.0.0",
+        "find-up": "5.0.0",
+        "glob": "7.2.0",
+        "growl": "1.10.5",
+        "he": "1.2.0",
+        "js-yaml": "4.1.0",
+        "log-symbols": "4.1.0",
+        "minimatch": "4.2.1",
+        "ms": "2.1.3",
+        "nanoid": "3.3.1",
+        "serialize-javascript": "6.0.0",
+        "strip-json-comments": "3.1.1",
+        "supports-color": "8.1.1",
+        "which": "2.0.2",
+        "workerpool": "6.2.0",
+        "yargs": "16.2.0",
+        "yargs-parser": "20.2.4",
+        "yargs-unparser": "2.0.0"
+      },
+      "bin": {
+        "_mocha": "bin/_mocha",
+        "mocha": "bin/mocha"
+      },
+      "engines": {
+        "node": ">= 12.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/mochajs"
+      }
+    },
+    "node_modules/mocha/node_modules/chokidar": {
+      "version": "3.5.3",
+      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+      "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "individual",
+          "url": "https://paulmillr.com/funding/"
+        }
+      ],
+      "dependencies": {
+        "anymatch": "~3.1.2",
+        "braces": "~3.0.2",
+        "glob-parent": "~5.1.2",
+        "is-binary-path": "~2.1.0",
+        "is-glob": "~4.0.1",
+        "normalize-path": "~3.0.0",
+        "readdirp": "~3.6.0"
+      },
+      "engines": {
+        "node": ">= 8.10.0"
+      },
+      "optionalDependencies": {
+        "fsevents": "~2.3.2"
+      }
+    },
+    "node_modules/ms": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+      "dev": true
+    },
+    "node_modules/nanoid": {
+      "version": "3.3.1",
+      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz",
+      "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==",
+      "dev": true,
+      "bin": {
+        "nanoid": "bin/nanoid.cjs"
+      },
+      "engines": {
+        "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+      }
+    },
+    "node_modules/nise": {
+      "version": "5.1.9",
+      "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.9.tgz",
+      "integrity": "sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==",
+      "dev": true,
+      "dependencies": {
+        "@sinonjs/commons": "^3.0.0",
+        "@sinonjs/fake-timers": "^11.2.2",
+        "@sinonjs/text-encoding": "^0.7.2",
+        "just-extend": "^6.2.0",
+        "path-to-regexp": "^6.2.1"
+      }
+    },
+    "node_modules/nise/node_modules/@sinonjs/commons": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
+      "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
+      "dev": true,
+      "dependencies": {
+        "type-detect": "4.0.8"
+      }
+    },
+    "node_modules/nise/node_modules/@sinonjs/fake-timers": {
+      "version": "11.2.2",
+      "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz",
+      "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==",
+      "dev": true,
+      "dependencies": {
+        "@sinonjs/commons": "^3.0.0"
+      }
+    },
+    "node_modules/no-case": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+      "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+      "dependencies": {
+        "lower-case": "^2.0.2",
+        "tslib": "^2.0.3"
+      }
+    },
+    "node_modules/normalize-path": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+      "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+      "dependencies": {
+        "wrappy": "1"
+      }
+    },
+    "node_modules/p-limit": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+      "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+      "dev": true,
+      "dependencies": {
+        "yocto-queue": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/p-locate": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+      "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+      "dev": true,
+      "dependencies": {
+        "p-limit": "^3.0.2"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/pascal-case": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+      "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+      "dependencies": {
+        "no-case": "^3.0.4",
+        "tslib": "^2.0.3"
+      }
+    },
+    "node_modules/path-exists": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+      "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/path-is-absolute": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+      "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/path-key": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+      "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/path-to-regexp": {
+      "version": "6.2.2",
+      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz",
+      "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==",
+      "dev": true
+    },
+    "node_modules/picomatch": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+      "engines": {
+        "node": ">=8.6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/jonschlinkert"
+      }
+    },
+    "node_modules/prettier": {
+      "version": "3.2.5",
+      "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz",
+      "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==",
+      "bin": {
+        "prettier": "bin/prettier.cjs"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/prettier/prettier?sponsor=1"
+      }
+    },
+    "node_modules/prettier-plugin-svelte": {
+      "version": "3.2.3",
+      "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.2.3.tgz",
+      "integrity": "sha512-wJq8RunyFlWco6U0WJV5wNCM7zpBFakS76UBSbmzMGpncpK98NZABaE+s7n8/APDCEVNHXC5Mpq+MLebQtsRlg==",
+      "peerDependencies": {
+        "prettier": "^3.0.0",
+        "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0"
+      }
+    },
+    "node_modules/queue-microtask": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+      "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ]
+    },
+    "node_modules/randombytes": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+      "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+      "dev": true,
+      "dependencies": {
+        "safe-buffer": "^5.1.0"
+      }
+    },
+    "node_modules/readdirp": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+      "dependencies": {
+        "picomatch": "^2.2.1"
+      },
+      "engines": {
+        "node": ">=8.10.0"
+      }
+    },
+    "node_modules/require-directory": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+      "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/reusify": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+      "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+      "engines": {
+        "iojs": ">=1.0.0",
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/rimraf": {
+      "version": "2.7.1",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+      "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+      "deprecated": "Rimraf versions prior to v4 are no longer supported",
+      "dependencies": {
+        "glob": "^7.1.3"
+      },
+      "bin": {
+        "rimraf": "bin.js"
+      }
+    },
+    "node_modules/run-parallel": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+      "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
+      "dependencies": {
+        "queue-microtask": "^1.2.2"
+      }
+    },
+    "node_modules/safe-buffer": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ]
+    },
+    "node_modules/sander": {
+      "version": "0.5.1",
+      "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz",
+      "integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==",
+      "dependencies": {
+        "es6-promise": "^3.1.2",
+        "graceful-fs": "^4.1.3",
+        "mkdirp": "^0.5.1",
+        "rimraf": "^2.5.2"
+      }
+    },
+    "node_modules/semver": {
+      "version": "7.6.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+      "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/serialize-javascript": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
+      "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
+      "dev": true,
+      "dependencies": {
+        "randombytes": "^2.1.0"
+      }
+    },
+    "node_modules/shebang-command": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+      "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+      "dev": true,
+      "dependencies": {
+        "shebang-regex": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/shebang-regex": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+      "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/sinon": {
+      "version": "11.1.2",
+      "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz",
+      "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==",
+      "deprecated": "16.1.1",
+      "dev": true,
+      "dependencies": {
+        "@sinonjs/commons": "^1.8.3",
+        "@sinonjs/fake-timers": "^7.1.2",
+        "@sinonjs/samsam": "^6.0.2",
+        "diff": "^5.0.0",
+        "nise": "^5.1.0",
+        "supports-color": "^7.2.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/sinon"
+      }
+    },
+    "node_modules/sinon/node_modules/supports-color": {
+      "version": "7.2.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+      "dev": true,
+      "dependencies": {
+        "has-flag": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/sorcery": {
+      "version": "0.11.0",
+      "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.0.tgz",
+      "integrity": "sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==",
+      "dependencies": {
+        "@jridgewell/sourcemap-codec": "^1.4.14",
+        "buffer-crc32": "^0.2.5",
+        "minimist": "^1.2.0",
+        "sander": "^0.5.0"
+      },
+      "bin": {
+        "sorcery": "bin/sorcery"
+      }
+    },
+    "node_modules/string-width": {
+      "version": "4.2.3",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+      "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+      "dev": true,
+      "dependencies": {
+        "emoji-regex": "^8.0.0",
+        "is-fullwidth-code-point": "^3.0.0",
+        "strip-ansi": "^6.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/strip-ansi": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+      "dev": true,
+      "dependencies": {
+        "ansi-regex": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/strip-indent": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
+      "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
+      "dependencies": {
+        "min-indent": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/strip-json-comments": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+      "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/supports-color": {
+      "version": "8.1.1",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+      "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+      "dev": true,
+      "dependencies": {
+        "has-flag": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/supports-color?sponsor=1"
+      }
+    },
+    "node_modules/svelte": {
+      "version": "3.59.2",
+      "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.59.2.tgz",
+      "integrity": "sha512-vzSyuGr3eEoAtT/A6bmajosJZIUWySzY2CzB3w2pgPvnkUjGqlDnsNnA0PMO+mMAhuyMul6C2uuZzY6ELSkzyA==",
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/svelte-preprocess": {
+      "version": "5.1.4",
+      "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.1.4.tgz",
+      "integrity": "sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==",
+      "hasInstallScript": true,
+      "dependencies": {
+        "@types/pug": "^2.0.6",
+        "detect-indent": "^6.1.0",
+        "magic-string": "^0.30.5",
+        "sorcery": "^0.11.0",
+        "strip-indent": "^3.0.0"
+      },
+      "engines": {
+        "node": ">= 16.0.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.10.2",
+        "coffeescript": "^2.5.1",
+        "less": "^3.11.3 || ^4.0.0",
+        "postcss": "^7 || ^8",
+        "postcss-load-config": "^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0",
+        "pug": "^3.0.0",
+        "sass": "^1.26.8",
+        "stylus": "^0.55.0",
+        "sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0",
+        "svelte": "^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0",
+        "typescript": ">=3.9.5 || ^4.0.0 || ^5.0.0"
+      },
+      "peerDependenciesMeta": {
+        "@babel/core": {
+          "optional": true
+        },
+        "coffeescript": {
+          "optional": true
+        },
+        "less": {
+          "optional": true
+        },
+        "postcss": {
+          "optional": true
+        },
+        "postcss-load-config": {
+          "optional": true
+        },
+        "pug": {
+          "optional": true
+        },
+        "sass": {
+          "optional": true
+        },
+        "stylus": {
+          "optional": true
+        },
+        "sugarss": {
+          "optional": true
+        },
+        "typescript": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/svelte2tsx": {
+      "version": "0.7.9",
+      "resolved": "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.7.9.tgz",
+      "integrity": "sha512-Rm+0LAwg9wT4H2IsR8EaM9EWErTzi9LmuZKxkH5b1ua94XjQmwHstBP4VabLgA9AE6XmwBg+xK7Cjzwfm6ustQ==",
+      "dependencies": {
+        "dedent-js": "^1.0.1",
+        "pascal-case": "^3.1.1"
+      },
+      "peerDependencies": {
+        "svelte": "^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0",
+        "typescript": "^4.9.4 || ^5.0.0"
+      }
+    },
+    "node_modules/to-regex-range": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+      "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+      "dependencies": {
+        "is-number": "^7.0.0"
+      },
+      "engines": {
+        "node": ">=8.0"
+      }
+    },
+    "node_modules/ts-node": {
+      "version": "10.9.2",
+      "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
+      "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
+      "dev": true,
+      "dependencies": {
+        "@cspotcode/source-map-support": "^0.8.0",
+        "@tsconfig/node10": "^1.0.7",
+        "@tsconfig/node12": "^1.0.7",
+        "@tsconfig/node14": "^1.0.0",
+        "@tsconfig/node16": "^1.0.2",
+        "acorn": "^8.4.1",
+        "acorn-walk": "^8.1.1",
+        "arg": "^4.1.0",
+        "create-require": "^1.1.0",
+        "diff": "^4.0.1",
+        "make-error": "^1.1.1",
+        "v8-compile-cache-lib": "^3.0.1",
+        "yn": "3.1.1"
+      },
+      "bin": {
+        "ts-node": "dist/bin.js",
+        "ts-node-cwd": "dist/bin-cwd.js",
+        "ts-node-esm": "dist/bin-esm.js",
+        "ts-node-script": "dist/bin-script.js",
+        "ts-node-transpile-only": "dist/bin-transpile.js",
+        "ts-script": "dist/bin-script-deprecated.js"
+      },
+      "peerDependencies": {
+        "@swc/core": ">=1.2.50",
+        "@swc/wasm": ">=1.2.50",
+        "@types/node": "*",
+        "typescript": ">=2.7"
+      },
+      "peerDependenciesMeta": {
+        "@swc/core": {
+          "optional": true
+        },
+        "@swc/wasm": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/ts-node/node_modules/diff": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+      "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.3.1"
+      }
+    },
+    "node_modules/tslib": {
+      "version": "2.6.3",
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
+      "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ=="
+    },
+    "node_modules/type-detect": {
+      "version": "4.0.8",
+      "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+      "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/typescript": {
+      "version": "5.4.5",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
+      "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
+      "bin": {
+        "tsc": "bin/tsc",
+        "tsserver": "bin/tsserver"
+      },
+      "engines": {
+        "node": ">=14.17"
+      }
+    },
+    "node_modules/typescript-auto-import-cache": {
+      "version": "0.3.2",
+      "resolved": "https://registry.npmjs.org/typescript-auto-import-cache/-/typescript-auto-import-cache-0.3.2.tgz",
+      "integrity": "sha512-+laqe5SFL1vN62FPOOJSUDTZxtgsoOXjneYOXIpx5rQ4UMiN89NAtJLpqLqyebv9fgQ/IMeeTX+mQyRnwvJzvg==",
+      "dependencies": {
+        "semver": "^7.3.8"
+      }
+    },
+    "node_modules/v8-compile-cache-lib": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
+      "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
+      "dev": true
+    },
+    "node_modules/vscode-css-languageservice": {
+      "version": "6.2.14",
+      "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.2.14.tgz",
+      "integrity": "sha512-5UPQ9Y1sUTnuMyaMBpO7LrBkqjhEJb5eAwdUlDp+Uez8lry+Tspnk3+3p2qWS4LlNsr4p3v9WkZxUf1ltgFpgw==",
+      "dependencies": {
+        "@vscode/l10n": "^0.0.18",
+        "vscode-languageserver-textdocument": "^1.0.11",
+        "vscode-languageserver-types": "3.17.5",
+        "vscode-uri": "^3.0.8"
+      }
+    },
+    "node_modules/vscode-css-languageservice/node_modules/vscode-languageserver-types": {
+      "version": "3.17.5",
+      "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
+      "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg=="
+    },
+    "node_modules/vscode-html-languageservice": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.1.2.tgz",
+      "integrity": "sha512-wkWfEx/IIR3s2P5yD4aTGHiOb8IAzFxgkSt1uSC3itJ4oDAm23yG7o0L29JljUdnXDDgLafPAvhv8A2I/8riHw==",
+      "dependencies": {
+        "@vscode/l10n": "^0.0.18",
+        "vscode-languageserver-textdocument": "^1.0.11",
+        "vscode-languageserver-types": "^3.17.5",
+        "vscode-uri": "^3.0.8"
+      }
+    },
+    "node_modules/vscode-html-languageservice/node_modules/vscode-languageserver-types": {
+      "version": "3.17.5",
+      "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
+      "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg=="
+    },
+    "node_modules/vscode-jsonrpc": {
+      "version": "8.0.2",
+      "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.0.2.tgz",
+      "integrity": "sha512-RY7HwI/ydoC1Wwg4gJ3y6LpU9FJRZAUnTYMXthqhFXXu77ErDd/xkREpGuk4MyYkk4a+XDWAMqe0S3KkelYQEQ==",
+      "engines": {
+        "node": ">=14.0.0"
+      }
+    },
+    "node_modules/vscode-languageserver": {
+      "version": "8.0.2",
+      "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-8.0.2.tgz",
+      "integrity": "sha512-bpEt2ggPxKzsAOZlXmCJ50bV7VrxwCS5BI4+egUmure/oI/t4OlFzi/YNtVvY24A2UDOZAgwFGgnZPwqSJubkA==",
+      "dependencies": {
+        "vscode-languageserver-protocol": "3.17.2"
+      },
+      "bin": {
+        "installServerIntoExtension": "bin/installServerIntoExtension"
+      }
+    },
+    "node_modules/vscode-languageserver-protocol": {
+      "version": "3.17.2",
+      "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.2.tgz",
+      "integrity": "sha512-8kYisQ3z/SQ2kyjlNeQxbkkTNmVFoQCqkmGrzLH6A9ecPlgTbp3wDTnUNqaUxYr4vlAcloxx8zwy7G5WdguYNg==",
+      "dependencies": {
+        "vscode-jsonrpc": "8.0.2",
+        "vscode-languageserver-types": "3.17.2"
+      }
+    },
+    "node_modules/vscode-languageserver-textdocument": {
+      "version": "1.0.11",
+      "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz",
+      "integrity": "sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA=="
+    },
+    "node_modules/vscode-languageserver-types": {
+      "version": "3.17.2",
+      "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2.tgz",
+      "integrity": "sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA=="
+    },
+    "node_modules/vscode-nls": {
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.2.0.tgz",
+      "integrity": "sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng=="
+    },
+    "node_modules/vscode-uri": {
+      "version": "3.0.8",
+      "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz",
+      "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw=="
+    },
+    "node_modules/which": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+      "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+      "dev": true,
+      "dependencies": {
+        "isexe": "^2.0.0"
+      },
+      "bin": {
+        "node-which": "bin/node-which"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/workerpool": {
+      "version": "6.2.0",
+      "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz",
+      "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==",
+      "dev": true
+    },
+    "node_modules/wrap-ansi": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+      "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+      "dev": true,
+      "dependencies": {
+        "ansi-styles": "^4.0.0",
+        "string-width": "^4.1.0",
+        "strip-ansi": "^6.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+      }
+    },
+    "node_modules/wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+    },
+    "node_modules/y18n": {
+      "version": "5.0.8",
+      "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+      "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/yargs": {
+      "version": "16.2.0",
+      "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+      "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+      "dev": true,
+      "dependencies": {
+        "cliui": "^7.0.2",
+        "escalade": "^3.1.1",
+        "get-caller-file": "^2.0.5",
+        "require-directory": "^2.1.1",
+        "string-width": "^4.2.0",
+        "y18n": "^5.0.5",
+        "yargs-parser": "^20.2.2"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/yargs-parser": {
+      "version": "20.2.4",
+      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
+      "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/yargs-unparser": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
+      "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
+      "dev": true,
+      "dependencies": {
+        "camelcase": "^6.0.0",
+        "decamelize": "^4.0.0",
+        "flat": "^5.0.2",
+        "is-plain-obj": "^2.1.0"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/yn": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
+      "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/yocto-queue": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+      "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    }
+  }
+}
diff --git a/pkgs/by-name/sv/svelte-language-server/package.nix b/pkgs/by-name/sv/svelte-language-server/package.nix
new file mode 100644
index 0000000000000..7fdab27f323ee
--- /dev/null
+++ b/pkgs/by-name/sv/svelte-language-server/package.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildNpmPackage
+, fetchurl
+}:
+let
+  version = "0.16.10";
+in buildNpmPackage {
+  pname = "svelte-language-server";
+  inherit version;
+
+  src = fetchurl {
+    url = "https://registry.npmjs.org/svelte-language-server/-/svelte-language-server-${version}.tgz";
+    hash = "sha256-Int5mc147BUqpOGT2T3oNRbLNjioEaEifOH3wF1vJL4=";
+  };
+
+  npmDepsHash = "sha256-/JjMrbDyoHUvGJxqmkxjxCkWURJa8sXUZryQRGTdRMY=";
+
+  postPatch = ''
+    ln -s ${./package-lock.json} package-lock.json
+  '';
+
+  dontNpmBuild = true;
+
+  passthru.updateScript = ./update.sh;
+
+  meta = {
+    description = "Language server (implementing the language server protocol) for Svelte";
+    downloadPage = "https://www.npmjs.com/package/svelte-language-server";
+    homepage = "https://github.com/sveltejs/language-tools";
+    license = lib.licenses.mit;
+    mainProgram = "svelteserver";
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/pkgs/by-name/sv/svelte-language-server/update.sh b/pkgs/by-name/sv/svelte-language-server/update.sh
new file mode 100755
index 0000000000000..40d1ef0175dc1
--- /dev/null
+++ b/pkgs/by-name/sv/svelte-language-server/update.sh
@@ -0,0 +1,30 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p gnused nix nodejs prefetch-npm-deps wget
+
+set -euo pipefail
+pushd "$(dirname "${BASH_SOURCE[0]}")"
+
+version=$(npm view svelte-language-server version)
+tarball="svelte-language-server-$version.tgz"
+url="https://registry.npmjs.org/svelte-language-server/-/$tarball"
+
+if [[ "$UPDATE_NIX_OLD_VERSION" == "$version" ]]; then
+    echo "Already up to date!"
+    exit 0
+fi
+
+sed -i 's#version = "[^"]*"#version = "'"$version"'"#' package.nix
+
+sha256=$(nix-prefetch-url "$url")
+src_hash=$(nix-hash --type sha256 --to-sri "$sha256")
+sed -i 's#hash = "[^"]*"#hash = "'"$src_hash"'"#' package.nix
+
+rm -f package-lock.json package.json *.tgz
+wget "$url"
+tar xf "$tarball" --strip-components=1 package/package.json
+npm i --package-lock-only
+npm_hash=$(prefetch-npm-deps package-lock.json)
+sed -i 's#npmDepsHash = "[^"]*"#npmDepsHash = "'"$npm_hash"'"#' package.nix
+rm -f package.json *.tgz
+
+popd
diff --git a/pkgs/by-name/sv/svix-server/package.nix b/pkgs/by-name/sv/svix-server/package.nix
index 7ccdf1f6b3f22..9bf33694e2a90 100644
--- a/pkgs/by-name/sv/svix-server/package.nix
+++ b/pkgs/by-name/sv/svix-server/package.nix
@@ -44,7 +44,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     mainProgram = "svix-server";
-    description = "The enterprise-ready webhooks service";
+    description = "Enterprise-ready webhooks service";
     homepage = "https://github.com/svix/svix-webhooks";
     changelog =
       "https://github.com/svix/svix-webhooks/releases/tag/v${version}";
diff --git a/pkgs/by-name/sv/svp/mpv.nix b/pkgs/by-name/sv/svp/mpv.nix
index 752d76baf794c..ac597bd91708e 100644
--- a/pkgs/by-name/sv/svp/mpv.nix
+++ b/pkgs/by-name/sv/svp/mpv.nix
@@ -1,24 +1,16 @@
 { lib
 , mpv-unwrapped
-, wrapMpv
 , ocl-icd
 , ...
 }:
-let
-  libraries = [
-    ocl-icd
-  ];
-in
-wrapMpv
-  (mpv-unwrapped.override {
-    vapoursynthSupport = true;
-  })
-{
+
+mpv-unwrapped.wrapper {
+  mpv = mpv-unwrapped.override { vapoursynthSupport = true; };
   extraMakeWrapperArgs = [
     # Add paths to required libraries
     "--prefix"
     "LD_LIBRARY_PATH"
     ":"
-    "/run/opengl-driver/lib:${lib.makeLibraryPath libraries}"
+    "/run/opengl-driver/lib:${lib.makeLibraryPath [ ocl-icd ]}"
   ];
 }
diff --git a/pkgs/by-name/sv/svp/package.nix b/pkgs/by-name/sv/svp/package.nix
index 639c67d8cd113..c34507c91e448 100644
--- a/pkgs/by-name/sv/svp/package.nix
+++ b/pkgs/by-name/sv/svp/package.nix
@@ -137,7 +137,7 @@ stdenv.mkDerivation {
   ];
 
   meta = with lib; {
-    description = "SmoothVideo Project 4 (SVP4) converts any video to 60 fps (and even higher) and performs this in real time right in your favorite video player.";
+    description = "SmoothVideo Project 4 (SVP4) converts any video to 60 fps (and even higher) and performs this in real time right in your favorite video player";
     homepage = "https://www.svp-team.com/wiki/SVP:Linux";
     platforms = [ "x86_64-linux" ];
     license = licenses.unfree;
diff --git a/pkgs/by-name/sw/sway-assign-cgroups/package.nix b/pkgs/by-name/sw/sway-assign-cgroups/package.nix
index 83602655a669b..47acd2ae4d1d1 100644
--- a/pkgs/by-name/sw/sway-assign-cgroups/package.nix
+++ b/pkgs/by-name/sw/sway-assign-cgroups/package.nix
@@ -24,7 +24,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "Place GUI applications into systemd scopes for systemd-oomd compatibility.";
+    description = "Place GUI applications into systemd scopes for systemd-oomd compatibility";
     mainProgram = "assign-cgroups.py";
     longDescription = ''
       Automatically assign a dedicated systemd scope to the GUI applications
diff --git a/pkgs/by-name/sw/sway-easyfocus/package.nix b/pkgs/by-name/sw/sway-easyfocus/package.nix
index 43a9f9ab1340c..bc19c7ebd01d7 100644
--- a/pkgs/by-name/sw/sway-easyfocus/package.nix
+++ b/pkgs/by-name/sw/sway-easyfocus/package.nix
@@ -41,7 +41,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = {
-    description = "A tool to help efficiently focus windows in Sway, inspired by i3-easyfocus";
+    description = "Tool to help efficiently focus windows in Sway, inspired by i3-easyfocus";
     homepage = "https://github.com/edzdez/sway-easyfocus";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ eclairevoyant ];
diff --git a/pkgs/by-name/sw/sway-unwrapped/package.nix b/pkgs/by-name/sw/sway-unwrapped/package.nix
index 8a747f8e19471..6bcff1c52a2d2 100644
--- a/pkgs/by-name/sw/sway-unwrapped/package.nix
+++ b/pkgs/by-name/sw/sway-unwrapped/package.nix
@@ -78,7 +78,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests.basic = nixosTests.sway;
 
   meta = {
-    description = "An i3-compatible tiling Wayland compositor";
+    description = "I3-compatible tiling Wayland compositor";
     longDescription = ''
       Sway is a tiling Wayland compositor and a drop-in replacement for the i3
       window manager for X11. It works with your existing i3 configuration and
diff --git a/pkgs/by-name/sw/swaycons/package.nix b/pkgs/by-name/sw/swaycons/package.nix
index 9716f87087951..b60b5a6115a21 100644
--- a/pkgs/by-name/sw/swaycons/package.nix
+++ b/pkgs/by-name/sw/swaycons/package.nix
@@ -5,21 +5,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "swaycons";
-  version = "unstable-2023-01-05";
+  version = "unstable-2023-11-29";
 
   src = fetchFromGitHub {
-    owner = "ActuallyAllie";
+    owner = "allie-wake-up";
     repo = "swaycons";
-    rev = "e863599fb56177fc9747d60db661be2d7c2d290b";
-    hash = "sha256-zkCpZ3TehFKNePtSyFaEk+MA4mi1+la9yFjRPFy+eq8=";
+    rev = "aa1102393be34e8bd7ed4e74c574e851fbd8cff9";
+    hash = "sha256-vyZcfBH2mry8Yd41QPX4+yLv0nS9J1yrgg7lpslJs7M=";
   };
 
-  cargoSha256 = "sha256-GcoRx52dwL/ehJ1Xg6xQHVzPIKXWqBrG7IjzxRjfgqA=";
+  cargoSha256 = "sha256-cdZ7DpH//c9TulvPYd6aaXpQHYC1b+T7BrxAyr56Pf0=";
 
   meta = with lib; {
     description = "Window Icons in Sway with Nerd Fonts!";
     mainProgram = "swaycons";
-    homepage = "https://github.com/ActuallyAllie/swaycons";
+    homepage = "https://github.com/allie-wake-up/swaycons";
     license = licenses.asl20;
     platforms = platforms.linux;
     maintainers = with maintainers; [ aacebedo ];
diff --git a/pkgs/by-name/sw/swaylock/package.nix b/pkgs/by-name/sw/swaylock/package.nix
index 0b438df13d289..0ba3b727c9490 100644
--- a/pkgs/by-name/sw/swaylock/package.nix
+++ b/pkgs/by-name/sw/swaylock/package.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch
+{ lib, stdenv, fetchFromGitHub
 , meson, ninja, pkg-config, scdoc, wayland-scanner
 , wayland, wayland-protocols, libxkbcommon, cairo, gdk-pixbuf, pam
 }:
diff --git a/pkgs/by-name/sw/swaymux/package.nix b/pkgs/by-name/sw/swaymux/package.nix
index dfe928d845205..7d9fee3866517 100644
--- a/pkgs/by-name/sw/swaymux/package.nix
+++ b/pkgs/by-name/sw/swaymux/package.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     changelog = "https://git.grimmauld.de/Grimmauld/swaymux/commits/branch/main";
-    description = "A program to quickly navigate sway";
+    description = "Program to quickly navigate sway";
     homepage = "https://git.grimmauld.de/Grimmauld/swaymux";
     license = licenses.bsd3;
     longDescription = ''
diff --git a/pkgs/by-name/sw/swayosd/package.nix b/pkgs/by-name/sw/swayosd/package.nix
index c6e9dc2a809f3..f7f5c84d204b4 100644
--- a/pkgs/by-name/sw/swayosd/package.nix
+++ b/pkgs/by-name/sw/swayosd/package.nix
@@ -71,7 +71,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A GTK based on screen display for keyboard shortcuts";
+    description = "GTK based on screen display for keyboard shortcuts";
     homepage = "https://github.com/ErikReider/SwayOSD";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ aleksana barab-i sergioribera ];
diff --git a/pkgs/by-name/sw/swayws/package.nix b/pkgs/by-name/sw/swayws/package.nix
index a216e9efba71c..902db2f603d10 100644
--- a/pkgs/by-name/sw/swayws/package.nix
+++ b/pkgs/by-name/sw/swayws/package.nix
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A sway workspace tool which allows easy moving of workspaces to and from outputs";
+    description = "Sway workspace tool which allows easy moving of workspaces to and from outputs";
     mainProgram = "swayws";
     homepage = "https://gitlab.com/w0lff/swayws";
     license = licenses.mit;
diff --git a/pkgs/by-name/sw/swaywsr/package.nix b/pkgs/by-name/sw/swaywsr/package.nix
index 5926e605b7505..8901eb3c69e24 100644
--- a/pkgs/by-name/sw/swaywsr/package.nix
+++ b/pkgs/by-name/sw/swaywsr/package.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "swaywsr";
-  version = "1.1.1";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "pedroscaff";
     repo = pname;
-    rev = "0276b43824af5c40085248c1275feaa372c412a5";
-    sha256 = "sha256-KCMsn9uevmmjHkP4zwfaWSUI10JgT3M91iqmXI9Cv2Y=";
+    rev = "521fbf92738f44be438d3be6bdd665f02ac9d35c";
+    hash = "sha256-6hGEcJz+zGfwz1q+XKQYfyJJK7lr+kCgk2/uiq1xP0M=";
   };
 
-  cargoSha256 = "sha256-j/9p28ezy8m5NXReOmG1oryWd+GcY/fNW6i7OrEvjSc=";
+  cargoHash = "sha256-zoV2vy41fVsX8BtddURqQymMX4Zpso+GOBBqoVr3tYo=";
 
   nativeBuildInputs = [ python3 ];
   buildInputs = [ libxcb ];
diff --git a/pkgs/by-name/sw/swiftlint/package.nix b/pkgs/by-name/sw/swiftlint/package.nix
new file mode 100644
index 0000000000000..aa6c641e32415
--- /dev/null
+++ b/pkgs/by-name/sw/swiftlint/package.nix
@@ -0,0 +1,42 @@
+{
+  stdenvNoCC,
+  lib,
+  fetchurl,
+  unzip,
+  nix-update-script,
+}:
+stdenvNoCC.mkDerivation rec {
+  pname = "swiftlint";
+  version = "0.55.1";
+
+  src = fetchurl {
+    url = "https://github.com/realm/SwiftLint/releases/download/${version}/portable_swiftlint.zip";
+    hash = "sha256-Tmhw30CJaVQlcYnHjzmwrDpugHgR2/ihHIV8M+O2zwI=";
+  };
+
+  dontPatch = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  nativeBuildInputs = [ unzip ];
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm755 swiftlint $out/bin/swiftlint
+    runHook postInstall
+  '';
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = with lib; {
+    description = "A tool to enforce Swift style and conventions";
+    homepage = "https://realm.github.io/SwiftLint/";
+    license = licenses.mit;
+    mainProgram = "swiftlint";
+    maintainers = with maintainers; [ matteopacini ];
+    platforms = platforms.darwin;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+  };
+}
diff --git a/pkgs/by-name/sw/switch-to-configuration-ng/src/main.rs b/pkgs/by-name/sw/switch-to-configuration-ng/src/main.rs
index e050e74d79eaf..a35b55065c073 100644
--- a/pkgs/by-name/sw/switch-to-configuration-ng/src/main.rs
+++ b/pkgs/by-name/sw/switch-to-configuration-ng/src/main.rs
@@ -1,7 +1,7 @@
 use std::{
     cell::RefCell,
     collections::HashMap,
-    io::{BufRead, Write},
+    io::{BufRead, Read, Write},
     os::unix::{fs::PermissionsExt, process::CommandExt},
     path::{Path, PathBuf},
     rc::Rc,
@@ -16,7 +16,7 @@ use dbus::{
     Message,
 };
 use glob::glob;
-use ini::Ini;
+use ini::{Ini, ParseOption};
 use log::LevelFilter;
 use nix::{
     fcntl::{Flock, FlockArg, OFlag},
@@ -216,9 +216,22 @@ fn get_active_units<'a>(
 // Instead of returning the HashMap, this function takes a mutable reference to a HashMap to return
 // the data in. This allows calling the function multiple times with the same Hashmap to parse
 // override files.
-fn parse_systemd_ini(data: &mut UnitInfo, unit_file: &Path) -> Result<()> {
-    let ini = Ini::load_from_file(unit_file)
-        .with_context(|| format!("Failed to load unit file {}", unit_file.display()))?;
+fn parse_systemd_ini(data: &mut UnitInfo, mut unit_file: impl Read) -> Result<()> {
+    let mut unit_file_content = String::new();
+    _ = unit_file
+        .read_to_string(&mut unit_file_content)
+        .context("Failed to read unit file")?;
+
+    let ini = Ini::load_from_str_opt(
+        &unit_file_content,
+        ParseOption {
+            enabled_quote: true,
+            // Allow for escaped characters that won't get interpreted by the INI parser. These
+            // often show up in systemd unit files device/mount/swap unit names (e.g. dev-disk-by\x2dlabel-root.device).
+            enabled_escape: false,
+        },
+    )
+    .context("Failed parse unit file as INI")?;
 
     // Copy over all sections
     for (section, properties) in ini.iter() {
@@ -275,24 +288,33 @@ fn parse_systemd_ini(data: &mut UnitInfo, unit_file: &Path) -> Result<()> {
 //
 // If a directory with the same basename ending in .d exists next to the unit file, it will be
 // assumed to contain override files which will be parsed as well and handled properly.
-fn parse_unit(unit_file: &Path, base_unit_file: &Path) -> Result<UnitInfo> {
+fn parse_unit(unit_file: &Path, base_unit_path: &Path) -> Result<UnitInfo> {
     // Parse the main unit and all overrides
     let mut unit_data = HashMap::new();
 
-    parse_systemd_ini(&mut unit_data, base_unit_file)?;
+    let base_unit_file = std::fs::File::open(base_unit_path)
+        .with_context(|| format!("Failed to open unit file {}", base_unit_path.display()))?;
+    parse_systemd_ini(&mut unit_data, base_unit_file).with_context(|| {
+        format!(
+            "Failed to parse systemd unit file {}",
+            base_unit_path.display()
+        )
+    })?;
 
     for entry in
-        glob(&format!("{}.d/*.conf", base_unit_file.display())).context("Invalid glob pattern")?
+        glob(&format!("{}.d/*.conf", base_unit_path.display())).context("Invalid glob pattern")?
     {
         let Ok(entry) = entry else {
             continue;
         };
 
-        parse_systemd_ini(&mut unit_data, &entry)?;
+        let unit_file = std::fs::File::open(&entry)
+            .with_context(|| format!("Failed to open unit file {}", entry.display()))?;
+        parse_systemd_ini(&mut unit_data, unit_file)?;
     }
 
     // Handle drop-in template-unit instance overrides
-    if unit_file != base_unit_file {
+    if unit_file != base_unit_path {
         for entry in
             glob(&format!("{}.d/*.conf", unit_file.display())).context("Invalid glob pattern")?
         {
@@ -300,7 +322,9 @@ fn parse_unit(unit_file: &Path, base_unit_file: &Path) -> Result<UnitInfo> {
                 continue;
             };
 
-            parse_systemd_ini(&mut unit_data, &entry)?;
+            let unit_file = std::fs::File::open(&entry)
+                .with_context(|| format!("Failed to open unit file {}", entry.display()))?;
+            parse_systemd_ini(&mut unit_data, unit_file)?;
         }
     }
 
@@ -2074,4 +2098,31 @@ invalid
             );
         }
     }
+
+    #[test]
+    fn parse_systemd_ini() {
+        // Ensure we don't attempt to unescape content in unit files.
+        // https://github.com/NixOS/nixpkgs/issues/315602
+        {
+            let mut unit_info = HashMap::new();
+
+            let test_unit = std::io::Cursor::new(
+                r#"[Unit]
+After=dev-disk-by\x2dlabel-root.device
+"#,
+            );
+            super::parse_systemd_ini(&mut unit_info, test_unit).unwrap();
+
+            assert_eq!(
+                unit_info
+                    .get("Unit")
+                    .unwrap()
+                    .get("After")
+                    .unwrap()
+                    .first()
+                    .unwrap(),
+                "dev-disk-by\\x2dlabel-root.device"
+            );
+        }
+    }
 }
diff --git a/pkgs/by-name/sw/switcheroo/package.nix b/pkgs/by-name/sw/switcheroo/package.nix
index aa132910b1c26..632960d70bccd 100644
--- a/pkgs/by-name/sw/switcheroo/package.nix
+++ b/pkgs/by-name/sw/switcheroo/package.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     changelog = "https://gitlab.com/adhami3310/Switcheroo/-/releases/v${finalAttrs.version}";
-    description = "An app for converting images between different formats";
+    description = "App for converting images between different formats";
     homepage = "https://apps.gnome.org/Converter/";
     license = licenses.gpl3Plus;
     mainProgram = "switcheroo";
diff --git a/pkgs/by-name/sy/syft/package.nix b/pkgs/by-name/sy/syft/package.nix
index f2c220b43f569..e3c9cf532184a 100644
--- a/pkgs/by-name/sy/syft/package.nix
+++ b/pkgs/by-name/sy/syft/package.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "syft";
-  version = "1.4.1";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "anchore";
     repo = "syft";
     rev = "refs/tags/v${version}";
-    hash = "sha256-fFJcRNqXhhdxsxQkP5S8xSeeUOa+KbS9CkUs1sbNuOg=";
+    hash = "sha256-fTqyFsFWSsVt2Thd15nlsmnNIhQSLAv9SaaaVJWto/8=";
     # populate values that require us to use git. By doing this in postFetch we
     # can delete .git afterwards and maintain better reproducibility of the src.
     leaveDotGit = true;
@@ -28,7 +28,7 @@ buildGoModule rec {
   # hash mismatch with darwin
   proxyVendor = true;
 
-  vendorHash = "sha256-vuKvQjWMFHtTjTb7Sg/jXvzpR2IxrHaWyfibTQdpSd4=";
+  vendorHash = "sha256-U4PZPUsfWCJB2YFJkirF8Q46pRmhKqzSnk7GpKOrfbU=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/networking/Sylk/default.nix b/pkgs/by-name/sy/sylk/package.nix
index a83742cf937cc..ab32ef5463ff2 100644
--- a/pkgs/applications/networking/Sylk/default.nix
+++ b/pkgs/by-name/sy/sylk/package.nix
@@ -1,12 +1,8 @@
 { appimageTools, fetchurl, lib }:
 
-let
-  pname = "Sylk";
-  version = "3.0.1";
-in
-
 appimageTools.wrapType2 rec {
-  inherit pname version;
+  pname = "sylk";
+  version = "3.0.1";
 
   src = fetchurl {
     url = "http://download.ag-projects.com/Sylk/Sylk-${version}-x86_64.AppImage";
@@ -17,12 +13,13 @@ appimageTools.wrapType2 rec {
     export LC_ALL=C.UTF-8
   '';
 
-  meta = with lib; {
-    description = "Sylk WebRTC client";
+  meta = {
+    description = "Desktop client for SylkServer, a multiparty conferencing tool";
     homepage = "https://sylkserver.com/";
-    license = licenses.agpl3Plus;
-    maintainers = with maintainers; [ zimbatm ];
-    platforms = [ "i386-linux" "x86_64-linux" ];
+    license = lib.licenses.agpl3Plus;
     mainProgram = "Sylk";
+    maintainers = with lib.maintainers; [ zimbatm ];
+    platforms = [ "i386-linux" "x86_64-linux" ];
+    sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
   };
 }
diff --git a/pkgs/by-name/sy/symfony-cli/package.nix b/pkgs/by-name/sy/symfony-cli/package.nix
index 20a30fd5d2499..2d9a28bf14100 100644
--- a/pkgs/by-name/sy/symfony-cli/package.nix
+++ b/pkgs/by-name/sy/symfony-cli/package.nix
@@ -10,14 +10,14 @@
 
 buildGoModule rec {
   pname = "symfony-cli";
-  version = "5.8.17";
-  vendorHash = "sha256-ARTKJVHgN1Y3xOUc3P2Ch7e8gN9BZbhBEZ1DiM7nEWs=";
+  version = "5.9.1";
+  vendorHash = "sha256-oo4lLJTF44hBb8QaIMONj+2WRdDSlhImZaC/nniWAhs=";
 
   src = fetchFromGitHub {
     owner = "symfony-cli";
     repo = "symfony-cli";
     rev = "v${version}";
-    hash = "sha256-UmGyIZk5s5A8ModafWMZqeJHdZ4fa+hAHi62pdlfJ8I=";
+    hash = "sha256-uJbX1IzZtcXH7mZuqh2YZy9wYZHNWfUHRZ8Tlm5zEac=";
     leaveDotGit = true;
     postFetch = ''
       git --git-dir $out/.git log -1 --pretty=%cd --date=format:'%Y-%m-%dT%H:%M:%SZ' > $out/SOURCE_DATE
diff --git a/pkgs/by-name/sy/symphony/package.nix b/pkgs/by-name/sy/symphony/package.nix
index 51d3316c7d17b..cb75fae961b1c 100644
--- a/pkgs/by-name/sy/symphony/package.nix
+++ b/pkgs/by-name/sy/symphony/package.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , cmake
 , coin-utils
-, CoinMP
+, coinmp
 , gfortran
 , libtool
 , glpk
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-OdTUMG3iVhjhw5uKtUnsLCZ4DfMjYHm8+/ozfmw7J6c=";
   };
 
-  nativeBuildInputs = [ libtool pkg-config glpk gfortran CoinMP osi coin-utils ];
+  nativeBuildInputs = [ libtool pkg-config glpk gfortran coinmp osi coin-utils ];
 
   meta = {
     description = "SYMPHONY is an open-source solver, callable library, and development framework for mixed-integer linear programs (MILPs) written in C with a number of unique features";
diff --git a/pkgs/by-name/sy/sync/package.nix b/pkgs/by-name/sy/sync/package.nix
index e96aa738d2c14..2ac766a4efbd4 100644
--- a/pkgs/by-name/sy/sync/package.nix
+++ b/pkgs/by-name/sy/sync/package.nix
@@ -19,12 +19,12 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "sync";
-  version = "0.10.1";
+  version = "0.11.0";
 
   src = fetchgit {
     url = "https://git.taler.net/sync.git";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-7EBm4Zp1sjZw7pXxQySY+1It3C/KLG2SHhqUPhDATbg=";
+    hash = "sha256-IGYc4Olbn9lVnN1THR2BXzllD1li/vhWwHg+1WU84YM=";
   };
 
   strictDeps = true;
diff --git a/pkgs/by-name/sy/syncstorage-rs/Cargo.lock b/pkgs/by-name/sy/syncstorage-rs/Cargo.lock
index e0b2cb8d34b80..fc7f8f744bd11 100644
--- a/pkgs/by-name/sy/syncstorage-rs/Cargo.lock
+++ b/pkgs/by-name/sy/syncstorage-rs/Cargo.lock
@@ -21,9 +21,9 @@ dependencies = [
 
 [[package]]
 name = "actix-cors"
-version = "0.6.5"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0346d8c1f762b41b458ed3145eea914966bb9ad20b9be0d6d463b20d45586370"
+checksum = "f9e772b3bcafe335042b5db010ab7c09013dad6eac4915c91d8d50902769f331"
 dependencies = [
  "actix-utils",
  "actix-web",
@@ -45,7 +45,7 @@ dependencies = [
  "actix-service",
  "actix-utils",
  "ahash",
- "base64",
+ "base64 0.21.7",
  "bitflags 2.5.0",
  "brotli",
  "bytes",
@@ -55,7 +55,7 @@ dependencies = [
  "flate2",
  "futures-core",
  "h2",
- "http",
+ "http 0.2.12",
  "httparse",
  "httpdate",
  "itoa",
@@ -80,7 +80,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb"
 dependencies = [
  "quote",
- "syn 2.0.58",
+ "syn 2.0.60",
 ]
 
 [[package]]
@@ -90,9 +90,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d22475596539443685426b6bdadb926ad0ecaefdfc5fb05e5e3441f15463c511"
 dependencies = [
  "bytestring",
- "http",
+ "http 0.2.12",
  "regex",
- "serde 1.0.197",
+ "serde 1.0.200",
  "tracing",
 ]
 
@@ -176,7 +176,7 @@ dependencies = [
  "once_cell",
  "pin-project-lite",
  "regex",
- "serde 1.0.197",
+ "serde 1.0.200",
  "serde_json",
  "serde_urlencoded",
  "smallvec",
@@ -194,7 +194,7 @@ dependencies = [
  "actix-router",
  "proc-macro2",
  "quote",
- "syn 2.0.58",
+ "syn 2.0.60",
 ]
 
 [[package]]
@@ -274,10 +274,59 @@ dependencies = [
 ]
 
 [[package]]
+name = "anstream"
+version = "0.6.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "is_terminal_polyfill",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b"
+
+[[package]]
+name = "anstyle-parse"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19"
+dependencies = [
+ "anstyle",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "anyhow"
-version = "1.0.81"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
+checksum = "25bdb32cbbdce2b519a9cd7df3a678443100e265d5e25ca763b7572a5104f5f3"
 
 [[package]]
 name = "arc-swap"
@@ -297,19 +346,19 @@ version = "2.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12"
 dependencies = [
- "serde 1.0.197",
+ "serde 1.0.200",
  "serde_json",
 ]
 
 [[package]]
 name = "async-trait"
-version = "0.1.79"
+version = "0.1.80"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681"
+checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.58",
+ "syn 2.0.60",
 ]
 
 [[package]]
@@ -325,9 +374,9 @@ dependencies = [
 
 [[package]]
 name = "autocfg"
-version = "1.2.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
 
 [[package]]
 name = "backtrace"
@@ -351,6 +400,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
+name = "base64"
+version = "0.22.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
+
+[[package]]
 name = "bindgen"
 version = "0.59.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -453,21 +508,22 @@ dependencies = [
 
 [[package]]
 name = "cadence"
-version = "0.29.1"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f39286bc075b023101dccdb79456a1334221c768b8faede0c2aff7ed29a9482d"
+checksum = "2f338b979d9ebfff4bb9801ae8f3af0dc3615f7f1ca963f2e4782bcf9acb3753"
 dependencies = [
  "crossbeam-channel",
 ]
 
 [[package]]
 name = "cc"
-version = "1.0.92"
+version = "1.0.97"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2678b2e3449475e95b0aa6f9b506a28e61b3dc8996592b983695e8ebb58a8b41"
+checksum = "099a5357d84c4c61eb35fc8eafa9a79a902c2f76911e5747ced4e032edd8d9b4"
 dependencies = [
  "jobserver",
  "libc",
+ "once_cell",
 ]
 
 [[package]]
@@ -487,16 +543,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "chrono"
-version = "0.4.37"
+version = "0.4.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "js-sys",
- "num-traits 0.2.18",
+ "num-traits 0.2.19",
  "wasm-bindgen",
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -535,6 +591,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "colorchoice"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422"
+
+[[package]]
 name = "colored"
 version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -552,7 +614,7 @@ checksum = "19b076e143e1d9538dde65da30f8481c2a6c44040edb8e02b9bf1351edb92ce3"
 dependencies = [
  "lazy_static",
  "nom 5.1.3",
- "serde 1.0.197",
+ "serde 1.0.200",
 ]
 
 [[package]]
@@ -564,7 +626,7 @@ dependencies = [
  "lazy_static",
  "nom 5.1.3",
  "rust-ini",
- "serde 1.0.197",
+ "serde 1.0.200",
  "serde-hjson",
  "serde_json",
  "toml",
@@ -589,16 +651,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "core-foundation"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[package]]
 name = "core-foundation-sys"
 version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -695,7 +747,7 @@ dependencies = [
  "config 0.10.1",
  "crossbeam-queue",
  "num_cpus",
- "serde 1.0.197",
+ "serde 1.0.200",
  "tokio",
 ]
 
@@ -705,7 +757,7 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d"
 dependencies = [
- "serde 1.0.197",
+ "serde 1.0.200",
  "uuid",
 ]
 
@@ -821,7 +873,7 @@ checksum = "7f3f119846c823f9eafcf953a8f6ffb6ed69bf6240883261a7f13b634579a51f"
 dependencies = [
  "lazy_static",
  "regex",
- "serde 1.0.197",
+ "serde 1.0.200",
  "strsim 0.10.0",
 ]
 
@@ -833,20 +885,30 @@ checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125"
 
 [[package]]
 name = "either"
-version = "1.10.0"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
+checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2"
 
 [[package]]
 name = "encoding_rs"
-version = "0.8.33"
+version = "0.8.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
 dependencies = [
  "cfg-if",
 ]
 
 [[package]]
+name = "env_filter"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea"
+dependencies = [
+ "log",
+ "regex",
+]
+
+[[package]]
 name = "env_logger"
 version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -861,15 +923,15 @@ dependencies = [
 
 [[package]]
 name = "env_logger"
-version = "0.10.2"
+version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
+checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9"
 dependencies = [
+ "anstream",
+ "anstyle",
+ "env_filter",
  "humantime",
- "is-terminal",
  "log",
- "regex",
- "termcolor",
 ]
 
 [[package]]
@@ -884,7 +946,7 @@ version = "0.3.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6c138974f9d5e7fe373eb04df7cae98833802ae4b11c24ac7039a21d5af4b26c"
 dependencies = [
- "serde 1.0.197",
+ "serde 1.0.200",
 ]
 
 [[package]]
@@ -911,9 +973,9 @@ dependencies = [
 
 [[package]]
 name = "flate2"
-version = "1.0.28"
+version = "1.0.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
+checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae"
 dependencies = [
  "crc32fast",
  "miniz_oxide",
@@ -996,7 +1058,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.58",
+ "syn 2.0.60",
 ]
 
 [[package]]
@@ -1042,9 +1104,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.14"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c"
+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -1118,7 +1180,7 @@ dependencies = [
  "futures-core",
  "futures-sink",
  "futures-util",
- "http",
+ "http 0.2.12",
  "indexmap",
  "slab",
  "tokio",
@@ -1128,9 +1190,9 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.14.3"
+version = "0.14.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
 
 [[package]]
 name = "hawk"
@@ -1139,7 +1201,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2ba86b7cbed4f24e509c720688eaf4963eac20d9341689bf69bcf5ee5e0f1cd2"
 dependencies = [
  "anyhow",
- "base64",
+ "base64 0.21.7",
  "log",
  "once_cell",
  "ring",
@@ -1203,13 +1265,13 @@ dependencies = [
 
 [[package]]
 name = "hostname"
-version = "0.3.1"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
+checksum = "f9c7c7c8ac16c798734b8a24560c1362120597c40d5e1459f09498f8f6c8f2ba"
 dependencies = [
+ "cfg-if",
  "libc",
- "match_cfg",
- "winapi",
+ "windows",
 ]
 
 [[package]]
@@ -1224,13 +1286,36 @@ dependencies = [
 ]
 
 [[package]]
+name = "http"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
 name = "http-body"
-version = "0.4.6"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
+dependencies = [
+ "bytes",
+ "http 1.1.0",
+]
+
+[[package]]
+name = "http-body-util"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
+checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d"
 dependencies = [
  "bytes",
- "http",
+ "futures-core",
+ "http 1.1.0",
+ "http-body",
  "pin-project-lite",
 ]
 
@@ -1254,40 +1339,58 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[package]]
 name = "hyper"
-version = "0.14.28"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
+checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d"
 dependencies = [
  "bytes",
  "futures-channel",
- "futures-core",
  "futures-util",
- "h2",
- "http",
+ "http 1.1.0",
  "http-body",
  "httparse",
- "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2",
+ "smallvec",
  "tokio",
- "tower-service",
- "tracing",
  "want",
 ]
 
 [[package]]
 name = "hyper-rustls"
-version = "0.24.2"
+version = "0.26.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
+checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c"
 dependencies = [
  "futures-util",
- "http",
+ "http 1.1.0",
  "hyper",
+ "hyper-util",
  "rustls",
+ "rustls-pki-types",
  "tokio",
  "tokio-rustls",
+ "tower-service",
+]
+
+[[package]]
+name = "hyper-util"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "http 1.1.0",
+ "http-body",
+ "hyper",
+ "pin-project-lite",
+ "socket2",
+ "tokio",
+ "tower",
+ "tower-service",
+ "tracing",
 ]
 
 [[package]]
@@ -1384,6 +1487,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "is_terminal_polyfill"
+version = "1.70.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800"
+
+[[package]]
 name = "itoa"
 version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1391,9 +1500,9 @@ checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
 
 [[package]]
 name = "jobserver"
-version = "0.1.28"
+version = "0.1.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
+checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e"
 dependencies = [
  "libc",
 ]
@@ -1413,10 +1522,10 @@ version = "9.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f"
 dependencies = [
- "base64",
+ "base64 0.21.7",
  "js-sys",
  "ring",
- "serde 1.0.197",
+ "serde 1.0.200",
  "serde_json",
 ]
 
@@ -1453,9 +1562,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.153"
+version = "0.2.154"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346"
 
 [[package]]
 name = "libloading"
@@ -1464,7 +1573,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
 dependencies = [
  "cfg-if",
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -1520,9 +1629,9 @@ checksum = "4d873d7c67ce09b42110d801813efbc9364414e356be9935700d368351657487"
 
 [[package]]
 name = "lock_api"
-version = "0.4.11"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -1535,12 +1644,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
 
 [[package]]
-name = "match_cfg"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
-
-[[package]]
 name = "matches"
 version = "0.1.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1676,14 +1779,14 @@ version = "0.1.43"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
 dependencies = [
- "num-traits 0.2.18",
+ "num-traits 0.2.19",
 ]
 
 [[package]]
 name = "num-traits"
-version = "0.2.18"
+version = "0.2.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
 dependencies = [
  "autocfg",
 ]
@@ -1738,15 +1841,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ae99c7fa6dd38c7cafe1ec085e804f8f555a2f8659b0dbe03f1f9963a9b51092"
 dependencies = [
  "log",
- "serde 1.0.197",
+ "serde 1.0.200",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "parking_lot"
-version = "0.12.1"
+version = "0.12.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb"
 dependencies = [
  "lock_api",
  "parking_lot_core",
@@ -1754,15 +1857,15 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.9"
+version = "0.9.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
 dependencies = [
  "cfg-if",
  "libc",
  "redox_syscall",
  "smallvec",
- "windows-targets 0.48.5",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -1790,6 +1893,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
+name = "pin-project"
+version = "1.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "1.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
 name = "pin-project-lite"
 version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1851,9 +1974,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.79"
+version = "1.0.81"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
+checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba"
 dependencies = [
  "unicode-ident",
 ]
@@ -1911,7 +2034,7 @@ dependencies = [
  "proc-macro2",
  "pyo3-macros-backend",
  "quote",
- "syn 2.0.58",
+ "syn 2.0.60",
 ]
 
 [[package]]
@@ -1924,14 +2047,14 @@ dependencies = [
  "proc-macro2",
  "pyo3-build-config",
  "quote",
- "syn 2.0.58",
+ "syn 2.0.60",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.35"
+version = "1.0.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
 dependencies = [
  "proc-macro2",
 ]
@@ -1979,11 +2102,11 @@ dependencies = [
 
 [[package]]
 name = "redox_syscall"
-version = "0.4.1"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.5.0",
 ]
 
 [[package]]
@@ -2028,20 +2151,20 @@ checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
 
 [[package]]
 name = "reqwest"
-version = "0.11.27"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62"
+checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10"
 dependencies = [
- "base64",
+ "base64 0.22.1",
  "bytes",
- "encoding_rs",
  "futures-core",
  "futures-util",
- "h2",
- "http",
+ "http 1.1.0",
  "http-body",
+ "http-body-util",
  "hyper",
  "hyper-rustls",
+ "hyper-util",
  "ipnet",
  "js-sys",
  "log",
@@ -2051,11 +2174,11 @@ dependencies = [
  "pin-project-lite",
  "rustls",
  "rustls-pemfile",
- "serde 1.0.197",
+ "rustls-pki-types",
+ "serde 1.0.200",
  "serde_json",
  "serde_urlencoded",
  "sync_wrapper",
- "system-configuration",
  "tokio",
  "tokio-rustls",
  "tower-service",
@@ -2111,9 +2234,9 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.32"
+version = "0.38.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
+checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
 dependencies = [
  "bitflags 2.5.0",
  "errno",
@@ -2124,32 +2247,42 @@ dependencies = [
 
 [[package]]
 name = "rustls"
-version = "0.21.10"
+version = "0.22.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
+checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432"
 dependencies = [
  "log",
  "ring",
+ "rustls-pki-types",
  "rustls-webpki",
- "sct",
+ "subtle",
+ "zeroize",
 ]
 
 [[package]]
 name = "rustls-pemfile"
-version = "1.0.4"
+version = "2.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
+checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d"
 dependencies = [
- "base64",
+ "base64 0.22.1",
+ "rustls-pki-types",
 ]
 
 [[package]]
+name = "rustls-pki-types"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "beb461507cee2c2ff151784c52762cf4d9ff6a61f3e80968600ed24fa837fa54"
+
+[[package]]
 name = "rustls-webpki"
-version = "0.101.7"
+version = "0.102.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
+checksum = "f3bce581c0dd41bce533ce695a1437fa16a7ab5ac3ccfa99fe1a620a7885eabf"
 dependencies = [
  "ring",
+ "rustls-pki-types",
  "untrusted",
 ]
 
@@ -2199,16 +2332,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
-name = "sct"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
-dependencies = [
- "ring",
- "untrusted",
-]
-
-[[package]]
 name = "semver"
 version = "1.0.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2216,9 +2339,9 @@ checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
 
 [[package]]
 name = "sentry"
-version = "0.31.8"
+version = "0.32.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ce4b57f1b521f674df7a1d200be8ff5d74e3712020ee25b553146657b5377d5"
+checksum = "00421ed8fa0c995f07cde48ba6c89e80f2b312f74ff637326f392fbfd23abe02"
 dependencies = [
  "curl",
  "httpdate",
@@ -2231,9 +2354,9 @@ dependencies = [
 
 [[package]]
 name = "sentry-backtrace"
-version = "0.31.8"
+version = "0.32.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58cc8d4e04a73de8f718dc703943666d03f25d3e9e4d0fb271ca0b8c76dfa00e"
+checksum = "a79194074f34b0cbe5dd33896e5928bbc6ab63a889bd9df2264af5acb186921e"
 dependencies = [
  "backtrace",
  "once_cell",
@@ -2243,9 +2366,9 @@ dependencies = [
 
 [[package]]
 name = "sentry-contexts"
-version = "0.31.8"
+version = "0.32.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6436c1bad22cdeb02179ea8ef116ffc217797c028927def303bc593d9320c0d1"
+checksum = "eba8870c5dba2bfd9db25c75574a11429f6b95957b0a78ac02e2970dd7a5249a"
 dependencies = [
  "hostname",
  "libc",
@@ -2257,22 +2380,22 @@ dependencies = [
 
 [[package]]
 name = "sentry-core"
-version = "0.31.8"
+version = "0.32.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "901f761681f97db3db836ef9e094acdd8756c40215326c194201941947164ef1"
+checksum = "46a75011ea1c0d5c46e9e57df03ce81f5c7f0a9e199086334a1f9c0a541e0826"
 dependencies = [
  "once_cell",
  "rand",
  "sentry-types",
- "serde 1.0.197",
+ "serde 1.0.200",
  "serde_json",
 ]
 
 [[package]]
 name = "sentry-debug-images"
-version = "0.31.8"
+version = "0.32.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afdb263e73d22f39946f6022ed455b7561b22ff5553aca9be3c6a047fa39c328"
+checksum = "7ec2a486336559414ab66548da610da5e9626863c3c4ffca07d88f7dc71c8de8"
 dependencies = [
  "findshlibs",
  "once_cell",
@@ -2281,9 +2404,9 @@ dependencies = [
 
 [[package]]
 name = "sentry-tracing"
-version = "0.31.8"
+version = "0.32.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82eabcab0a047040befd44599a1da73d3adb228ff53b5ed9795ae04535577704"
+checksum = "f715932bf369a61b7256687c6f0554141b7ce097287e30e3f7ed6e9de82498fe"
 dependencies = [
  "sentry-backtrace",
  "sentry-core",
@@ -2293,14 +2416,14 @@ dependencies = [
 
 [[package]]
 name = "sentry-types"
-version = "0.31.8"
+version = "0.32.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da956cca56e0101998c8688bc65ce1a96f00673a0e58e663664023d4c7911e82"
+checksum = "4519c900ce734f7a0eb7aba0869dfb225a7af8820634a7dd51449e3b093cfb7c"
 dependencies = [
  "debugid",
  "hex",
  "rand",
- "serde 1.0.197",
+ "serde 1.0.200",
  "serde_json",
  "thiserror",
  "time",
@@ -2316,9 +2439,9 @@ checksum = "9dad3f759919b92c3068c696c15c3d17238234498bbdcc80f2c469606f948ac8"
 
 [[package]]
 name = "serde"
-version = "1.0.197"
+version = "1.0.200"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
+checksum = "ddc6f9cc94d67c0e21aaf7eda3a010fd3af78ebf6e096aa6e2e13c79749cce4f"
 dependencies = [
  "serde_derive",
 ]
@@ -2337,24 +2460,24 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.197"
+version = "1.0.200"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
+checksum = "856f046b9400cee3c8c94ed572ecdb752444c24528c035cd35882aad6f492bcb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.58",
+ "syn 2.0.60",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.115"
+version = "1.0.116"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd"
+checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813"
 dependencies = [
  "itoa",
  "ryu",
- "serde 1.0.197",
+ "serde 1.0.200",
 ]
 
 [[package]]
@@ -2366,7 +2489,7 @@ dependencies = [
  "form_urlencoded",
  "itoa",
  "ryu",
- "serde 1.0.197",
+ "serde 1.0.200",
 ]
 
 [[package]]
@@ -2399,9 +2522,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
 
 [[package]]
 name = "signal-hook-registry"
-version = "1.4.1"
+version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
 dependencies = [
  "libc",
 ]
@@ -2458,7 +2581,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f400f1c5db96f1f52065e8931ca0c524cceb029f7537c9e6d5424488ca137ca0"
 dependencies = [
  "chrono",
- "serde 1.0.197",
+ "serde 1.0.200",
  "serde_json",
  "slog",
 ]
@@ -2506,9 +2629,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "socket2"
-version = "0.5.6"
+version = "0.5.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
+checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
 dependencies = [
  "libc",
  "windows-sys 0.52.0",
@@ -2557,9 +2680,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.58"
+version = "2.0.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687"
+checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2574,7 +2697,7 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
 
 [[package]]
 name = "syncserver"
-version = "0.15.2"
+version = "0.17.0"
 dependencies = [
  "actix-cors",
  "actix-http",
@@ -2582,23 +2705,25 @@ dependencies = [
  "actix-web",
  "async-trait",
  "backtrace",
- "base64",
+ "base64 0.22.1",
  "cadence",
  "chrono",
  "docopt",
  "dyn-clone",
  "futures 0.3.30",
+ "futures-util",
  "hawk",
  "hex",
  "hmac",
  "hostname",
+ "http 1.1.0",
  "lazy_static",
  "mime",
  "rand",
  "regex",
  "sentry",
  "sentry-backtrace",
- "serde 1.0.197",
+ "serde 1.0.200",
  "serde_derive",
  "serde_json",
  "sha2",
@@ -2629,13 +2754,14 @@ dependencies = [
 
 [[package]]
 name = "syncserver-common"
-version = "0.15.2"
+version = "0.17.0"
 dependencies = [
  "actix-web",
+ "backtrace",
  "cadence",
  "futures 0.3.30",
  "hkdf",
- "serde 1.0.197",
+ "serde 1.0.200",
  "serde_json",
  "sha2",
  "slog",
@@ -2644,25 +2770,25 @@ dependencies = [
 
 [[package]]
 name = "syncserver-db-common"
-version = "0.15.2"
+version = "0.17.0"
 dependencies = [
  "backtrace",
  "deadpool",
  "diesel",
  "diesel_migrations",
  "futures 0.3.30",
- "http",
+ "http 1.1.0",
  "syncserver-common",
  "thiserror",
 ]
 
 [[package]]
 name = "syncserver-settings"
-version = "0.15.2"
+version = "0.17.0"
 dependencies = [
  "config 0.11.0",
  "num_cpus",
- "serde 1.0.197",
+ "serde 1.0.200",
  "slog-scope",
  "syncserver-common",
  "syncstorage-settings",
@@ -2672,11 +2798,11 @@ dependencies = [
 
 [[package]]
 name = "syncstorage-db"
-version = "0.15.2"
+version = "0.17.0"
 dependencies = [
  "async-trait",
  "cadence",
- "env_logger 0.10.2",
+ "env_logger 0.11.3",
  "futures 0.3.30",
  "hostname",
  "lazy_static",
@@ -2695,7 +2821,7 @@ dependencies = [
 
 [[package]]
 name = "syncstorage-db-common"
-version = "0.15.2"
+version = "0.17.0"
 dependencies = [
  "async-trait",
  "backtrace",
@@ -2703,9 +2829,9 @@ dependencies = [
  "diesel",
  "diesel_migrations",
  "futures 0.3.30",
- "http",
+ "http 1.1.0",
  "lazy_static",
- "serde 1.0.197",
+ "serde 1.0.200",
  "serde_json",
  "syncserver-common",
  "syncserver-db-common",
@@ -2714,17 +2840,17 @@ dependencies = [
 
 [[package]]
 name = "syncstorage-mysql"
-version = "0.15.2"
+version = "0.17.0"
 dependencies = [
  "async-trait",
  "backtrace",
- "base64",
+ "base64 0.22.1",
  "diesel",
  "diesel_logger",
  "diesel_migrations",
- "env_logger 0.10.2",
+ "env_logger 0.11.3",
  "futures 0.3.30",
- "http",
+ "http 1.1.0",
  "slog-scope",
  "syncserver-common",
  "syncserver-db-common",
@@ -2737,28 +2863,28 @@ dependencies = [
 
 [[package]]
 name = "syncstorage-settings"
-version = "0.15.2"
+version = "0.17.0"
 dependencies = [
  "rand",
- "serde 1.0.197",
+ "serde 1.0.200",
  "syncserver-common",
  "time",
 ]
 
 [[package]]
 name = "syncstorage-spanner"
-version = "0.15.2"
+version = "0.17.0"
 dependencies = [
  "async-trait",
  "backtrace",
  "cadence",
  "deadpool",
- "env_logger 0.10.2",
+ "env_logger 0.11.3",
  "form_urlencoded",
  "futures 0.3.30",
  "google-cloud-rust-raw",
  "grpcio",
- "http",
+ "http 1.1.0",
  "log",
  "protobuf",
  "slog-scope",
@@ -2773,27 +2899,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "system-configuration"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
-dependencies = [
- "bitflags 1.3.2",
- "core-foundation",
- "system-configuration-sys",
-]
-
-[[package]]
-name = "system-configuration-sys"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[package]]
 name = "take_mut"
 version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2836,22 +2941,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.58"
+version = "1.0.59"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
+checksum = "f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.58"
+version = "1.0.59"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
+checksum = "d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.58",
+ "syn 2.0.60",
 ]
 
 [[package]]
@@ -2866,15 +2971,15 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.34"
+version = "0.3.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
+checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
 dependencies = [
  "deranged",
  "itoa",
  "num-conv",
  "powerfmt",
- "serde 1.0.197",
+ "serde 1.0.200",
  "time-core",
  "time-macros",
 ]
@@ -2887,9 +2992,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.17"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
+checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
 dependencies = [
  "num-conv",
  "time-core",
@@ -2912,10 +3017,10 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokenserver-auth"
-version = "0.15.2"
+version = "0.17.0"
 dependencies = [
  "async-trait",
- "base64",
+ "base64 0.22.1",
  "dyn-clone",
  "futures 0.3.30",
  "hex",
@@ -2926,7 +3031,7 @@ dependencies = [
  "pyo3",
  "reqwest",
  "ring",
- "serde 1.0.197",
+ "serde 1.0.200",
  "serde_json",
  "sha2",
  "slog-scope",
@@ -2939,30 +3044,32 @@ dependencies = [
 
 [[package]]
 name = "tokenserver-common"
-version = "0.15.2"
+version = "0.17.0"
 dependencies = [
  "actix-web",
  "backtrace",
+ "http 1.1.0",
  "jsonwebtoken",
- "serde 1.0.197",
+ "serde 1.0.200",
  "serde_json",
  "syncserver-common",
  "thiserror",
+ "tokio",
 ]
 
 [[package]]
 name = "tokenserver-db"
-version = "0.15.2"
+version = "0.17.0"
 dependencies = [
  "async-trait",
  "backtrace",
  "diesel",
  "diesel_logger",
  "diesel_migrations",
- "env_logger 0.10.2",
+ "env_logger 0.11.3",
  "futures 0.3.30",
- "http",
- "serde 1.0.197",
+ "http 1.1.0",
+ "serde 1.0.200",
  "serde_derive",
  "serde_json",
  "slog-scope",
@@ -2977,10 +3084,10 @@ dependencies = [
 
 [[package]]
 name = "tokenserver-settings"
-version = "0.15.2"
+version = "0.17.0"
 dependencies = [
  "jsonwebtoken",
- "serde 1.0.197",
+ "serde 1.0.200",
  "tokenserver-common",
 ]
 
@@ -3010,31 +3117,31 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.58",
+ "syn 2.0.60",
 ]
 
 [[package]]
 name = "tokio-rustls"
-version = "0.24.1"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
+checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
 dependencies = [
  "rustls",
+ "rustls-pki-types",
  "tokio",
 ]
 
 [[package]]
 name = "tokio-util"
-version = "0.7.10"
+version = "0.7.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
+checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1"
 dependencies = [
  "bytes",
  "futures-core",
  "futures-sink",
  "pin-project-lite",
  "tokio",
- "tracing",
 ]
 
 [[package]]
@@ -3043,10 +3150,32 @@ version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
 dependencies = [
- "serde 1.0.197",
+ "serde 1.0.200",
+]
+
+[[package]]
+name = "tower"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"
+dependencies = [
+ "futures-core",
+ "futures-util",
+ "pin-project",
+ "pin-project-lite",
+ "tokio",
+ "tower-layer",
+ "tower-service",
+ "tracing",
 ]
 
 [[package]]
+name = "tower-layer"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0"
+
+[[package]]
 name = "tower-service"
 version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3126,9 +3255,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-width"
-version = "0.1.11"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
+checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6"
 
 [[package]]
 name = "unindent"
@@ -3162,7 +3291,7 @@ dependencies = [
  "form_urlencoded",
  "idna 0.5.0",
  "percent-encoding 2.3.1",
- "serde 1.0.197",
+ "serde 1.0.200",
 ]
 
 [[package]]
@@ -3172,13 +3301,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
 
 [[package]]
+name = "utf8parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+
+[[package]]
 name = "uuid"
 version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
 dependencies = [
  "getrandom",
- "serde 1.0.197",
+ "serde 1.0.200",
 ]
 
 [[package]]
@@ -3190,7 +3325,7 @@ dependencies = [
  "idna 0.4.0",
  "lazy_static",
  "regex",
- "serde 1.0.197",
+ "serde 1.0.200",
  "serde_derive",
  "serde_json",
  "url 2.5.0",
@@ -3292,7 +3427,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.58",
+ "syn 2.0.60",
  "wasm-bindgen-shared",
 ]
 
@@ -3326,7 +3461,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.58",
+ "syn 2.0.60",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -3349,9 +3484,12 @@ dependencies = [
 
 [[package]]
 name = "webpki-roots"
-version = "0.25.4"
+version = "0.26.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
+checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009"
+dependencies = [
+ "rustls-pki-types",
+]
 
 [[package]]
 name = "which"
@@ -3383,11 +3521,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.6"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
+checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b"
 dependencies = [
- "winapi",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -3397,12 +3535,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
+name = "windows"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
+dependencies = [
+ "windows-core",
+ "windows-targets 0.52.5",
+]
+
+[[package]]
 name = "windows-core"
 version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -3420,7 +3568,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -3440,17 +3588,18 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.4",
- "windows_aarch64_msvc 0.52.4",
- "windows_i686_gnu 0.52.4",
- "windows_i686_msvc 0.52.4",
- "windows_x86_64_gnu 0.52.4",
- "windows_x86_64_gnullvm 0.52.4",
- "windows_x86_64_msvc 0.52.4",
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
 ]
 
 [[package]]
@@ -3461,9 +3610,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -3473,9 +3622,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -3485,9 +3634,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.4"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -3497,9 +3652,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -3509,9 +3664,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -3521,9 +3676,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -3533,15 +3688,15 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
 
 [[package]]
 name = "winreg"
-version = "0.50.0"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
+checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5"
 dependencies = [
  "cfg-if",
  "windows-sys 0.48.0",
@@ -3568,25 +3723,31 @@ dependencies = [
 
 [[package]]
 name = "zerocopy"
-version = "0.7.32"
+version = "0.7.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
+checksum = "087eca3c1eaf8c47b94d02790dd086cd594b912d2043d4de4bfdd466b3befb7c"
 dependencies = [
  "zerocopy-derive",
 ]
 
 [[package]]
 name = "zerocopy-derive"
-version = "0.7.32"
+version = "0.7.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
+checksum = "6f4b6c273f496d8fd4eaf18853e6b448760225dc030ff2c485a786859aea6393"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.58",
+ "syn 2.0.60",
 ]
 
 [[package]]
+name = "zeroize"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
+
+[[package]]
 name = "zstd"
 version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/pkgs/by-name/sy/syncstorage-rs/package.nix b/pkgs/by-name/sy/syncstorage-rs/package.nix
index 47619e2c61568..2c3f8415d3493 100644
--- a/pkgs/by-name/sy/syncstorage-rs/package.nix
+++ b/pkgs/by-name/sy/syncstorage-rs/package.nix
@@ -20,13 +20,13 @@ in
 
 rustPlatform.buildRustPackage rec {
   pname = "syncstorage-rs";
-  version = "0.15.2";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "mozilla-services";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-YKWXr10cVOqQm6XvugwarE3I1gtAyLOlUqPGbLDhHxY=";
+    hash = "sha256-8MxGrE8BaqSN0vPORKupKQuqHiv2vcqQhTX+SnmWFoM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/sy/syncthing-tray/package.nix b/pkgs/by-name/sy/syncthing-tray/package.nix
new file mode 100644
index 0000000000000..2fc912de8519d
--- /dev/null
+++ b/pkgs/by-name/sy/syncthing-tray/package.nix
@@ -0,0 +1,44 @@
+{
+  lib,
+  fetchFromGitHub,
+  fetchpatch,
+  buildGoModule,
+  pkg-config,
+  libappindicator-gtk3,
+}:
+
+buildGoModule rec {
+  pname = "syncthing-tray";
+  version = "0.7";
+
+  src = fetchFromGitHub {
+    owner = "alex2108";
+    repo = "syncthing-tray";
+    rev = "v${version}";
+    sha256 = "0869kinnsfzb8ydd0sv9fgqsi1sy5rhqg4whfdnrv82xjc71xyw3";
+  };
+
+  vendorHash = "sha256-hGV5bivDUFEbOwU9sU+Eu5Wzz/aZtj6NUkpzHlmZTtw=";
+
+  patches = [
+    # Migrate to Go modules
+    (fetchpatch {
+      url = "https://github.com/alex2108/syncthing-tray/commit/94fac974a227cd03c566f81797a21b1bcc29adf5.patch";
+      hash = "sha256-uJfnI9kGIlw4OzFoML+ulgR3keOeVB3+ox/4RtYJNXY=";
+    })
+  ];
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ libappindicator-gtk3 ];
+
+  meta = {
+    description = "Simple application tray for syncthing";
+    homepage = "https://github.com/alex2108/syncthing-tray";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [
+      luftmensch-luftmensch
+      nickhu
+    ];
+    mainProgram = "syncthing-tray";
+  };
+}
diff --git a/pkgs/by-name/sy/sysmenu/001-no-runtime-config.patch b/pkgs/by-name/sy/sysmenu/001-no-runtime-config.patch
new file mode 100644
index 0000000000000..e310f21b3dc15
--- /dev/null
+++ b/pkgs/by-name/sy/sysmenu/001-no-runtime-config.patch
@@ -0,0 +1,13 @@
+diff --git a/src/config.hpp b/src/config.hpp
+index 6e7439b..ae01462 100644
+--- a/src/config.hpp
++++ b/src/config.hpp
+@@ -4,8 +4,6 @@
+ 	Runtime configuration can be disabled by deleting #define RUNTIME_CONFIG
+ */
+ 
+-#define RUNTIME_CONFIG
+-
+ // Current								Default
+ inline bool starthidden = false;		// false
+ inline bool searchbar = true;			// true
diff --git a/pkgs/by-name/sy/sysmenu/002-cflags-fix.patch b/pkgs/by-name/sy/sysmenu/002-cflags-fix.patch
new file mode 100644
index 0000000000000..d089857ff6694
--- /dev/null
+++ b/pkgs/by-name/sy/sysmenu/002-cflags-fix.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile b/Makefile
+index f0b6baf..71033a5 100644
+--- a/Makefile
++++ b/Makefile
+@@ -4,7 +4,7 @@ SRCS +=	$(wildcard src/*.cpp)
+ OBJS = $(SRCS:.cpp=.o)
+ DESTDIR = $(HOME)/.local
+ 
+-CXXFLAGS = -march=native -mtune=native -Os -s -Wall -flto=auto -fno-exceptions
++CXXFLAGS = -Os -s -Wall -flto=auto -fno-exceptions
+ CXXFLAGS += $(shell pkg-config --cflags $(PKGS))
+ LDFLAGS += $(shell pkg-config --libs $(PKGS)) -Wl,--gc-sections
+ 
diff --git a/pkgs/by-name/sy/sysmenu/package.nix b/pkgs/by-name/sy/sysmenu/package.nix
new file mode 100644
index 0000000000000..1c7f86aea499f
--- /dev/null
+++ b/pkgs/by-name/sy/sysmenu/package.nix
@@ -0,0 +1,56 @@
+{
+  stdenv,
+  lib,
+  fetchFromGitHub,
+  pkg-config,
+  git,
+  gtkmm4,
+  gtk4-layer-shell,
+  wrapGAppsHook4,
+  unstableGitUpdater,
+}:
+
+stdenv.mkDerivation {
+  pname = "sysmenu";
+  version = "unstable-2024-06-13";
+
+  src = fetchFromGitHub {
+    owner = "System64fumo";
+    repo = "sysmenu";
+    rev = "0b891e5d27f286b867d4a0984ee284a3456de851";
+    hash = "sha256-zI6dmS+ZqcGrG/joWouqrMNQfTRflP677kYJLJEWTBc=";
+  };
+
+  patches = [
+    ./001-no-runtime-config.patch
+    ./002-cflags-fix.patch
+  ];
+
+  nativeBuildInputs = [
+    pkg-config
+    git
+    wrapGAppsHook4
+  ];
+
+  buildInputs = [
+    gtkmm4
+    gtk4-layer-shell
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm755 sysmenu $out/bin/sysmenu
+    runHook postInstall
+  '';
+
+  passthru.updateScript = unstableGitUpdater { };
+
+  meta = {
+    description = "Simple program launcher using GTK4";
+    homepage = "https://github.com/System64fumo/sysmenu";
+    license = lib.licenses.wtfpl;
+    mainProgram = "sysmenu";
+    maintainers = with lib.maintainers; [ matteopacini ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/sy/systemctl-tui/package.nix b/pkgs/by-name/sy/systemctl-tui/package.nix
index f51ada76c07eb..4ac9266a02ead 100644
--- a/pkgs/by-name/sy/systemctl-tui/package.nix
+++ b/pkgs/by-name/sy/systemctl-tui/package.nix
@@ -7,21 +7,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "systemctl-tui";
-  version = "0.3.5";
+  version = "0.3.6";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-CONg4amz4WaaZC/RtptzZDxLY8QnYqSnmpbBTILHjos=";
+    hash = "sha256-R7PeExN31vjGJnvRCYZO8DjZWXa17OFZ+lpdxCPIVpE=";
   };
 
-  cargoHash = "sha256-EQ5vAAO52KXt9RhnB+P0cX7mCvXDYSxPfSh+Ak/DN0g=";
+  cargoHash = "sha256-rlKizeWPWZUy23IHII6hrNVLFUR5xSkDQxYrc5WToC0=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.AppKit
   ];
 
   meta = with lib; {
-    description = "A simple TUI for interacting with systemd services and their logs";
+    description = "Simple TUI for interacting with systemd services and their logs";
     homepage = "https://crates.io/crates/systemctl-tui";
     license = licenses.mit;
     maintainers = with maintainers; [ siph ];
diff --git a/pkgs/by-name/ta/tabiew/package.nix b/pkgs/by-name/ta/tabiew/package.nix
new file mode 100644
index 0000000000000..3c562a146666a
--- /dev/null
+++ b/pkgs/by-name/ta/tabiew/package.nix
@@ -0,0 +1,41 @@
+{ lib, fetchFromGitHub, rustPlatform, stdenv, installShellFiles }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "tabiew";
+  version = "0.3.4";
+
+  src = fetchFromGitHub {
+    owner = "shshemi";
+    repo = "tabiew";
+    rev = "v${version}";
+    hash = "sha256-sJQlvJxVXHgkE4RUtlM3BNL1rZKvQa7C5wlPHjFSuus=";
+  };
+
+  cargoHash = "sha256-QpeCGeId6pPYSGQvcI06zFC013RLcv7ryZlEn3F9dAI=";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  outputs = [ "out" "man" ];
+
+  postInstall = ''
+    installManPage target/manual/tabiew.1
+
+    installShellCompletion \
+      --bash target/completion/tw.bash \
+      --zsh target/completion/_tw \
+      --fish target/completion/tw.fish
+  '';
+
+  doCheck = false; # there are no tests
+
+  meta = {
+    description =
+      "Lightweight, terminal-based application to view and query delimiter separated value formatted documents, such as CSV and TSV files";
+    homepage = "https://github.com/shshemi/tabiew";
+    changelog = "https://github.com/shshemi/tabiew/releases/tag/v${version}";
+    license = lib.licenses.mit;
+    mainProgram = "tw";
+    maintainers = with lib.maintainers; [ anas ];
+    platforms = with lib.platforms; unix ++ windows;
+  };
+}
diff --git a/pkgs/by-name/ta/tailscale-nginx-auth/package.nix b/pkgs/by-name/ta/tailscale-nginx-auth/package.nix
index d22b9d8185ee2..f16f01b2b92e3 100644
--- a/pkgs/by-name/ta/tailscale-nginx-auth/package.nix
+++ b/pkgs/by-name/ta/tailscale-nginx-auth/package.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, buildGoModule, fetchFromGitHub }:
 
 let
-  version = "1.66.4";
+  version = "1.68.0";
 in
 buildGoModule {
   pname = "tailscale-nginx-auth";
@@ -11,9 +11,9 @@ buildGoModule {
     owner = "tailscale";
     repo = "tailscale";
     rev = "v${version}";
-    hash = "sha256-ETBca3qKO2iS30teIF5sr/oyJdRSKFqLFVO3+mmm7bo=";
+    hash = "sha256-GTl5RCwIoDuzbaigy0/++xaPPEMLRDbBi/z82xCDOZY=";
   };
-  vendorHash = "sha256-Hd77xy8stw0Y6sfk3/ItqRIbM/349M/4uf0iNy1xJGw=";
+  vendorHash = "sha256-SUjoeOFYz6zbEgv/vND7kEXbuWlZDrUKF2Dmqsf/KVw=";
 
   CGO_ENABLED = 0;
 
@@ -35,7 +35,7 @@ buildGoModule {
 
   meta = with lib; {
     homepage = "https://tailscale.com";
-    description = "Tool that allows users to use Tailscale Whois authentication with NGINX as a reverse proxy.";
+    description = "Tool that allows users to use Tailscale Whois authentication with NGINX as a reverse proxy";
     license = licenses.bsd3;
     mainProgram = "tailscale.nginx-auth";
     maintainers = with maintainers; [ phaer ];
diff --git a/pkgs/by-name/ta/taler-exchange/package.nix b/pkgs/by-name/ta/taler-exchange/package.nix
index d5139dafaa6bb..4f3b158522f0d 100644
--- a/pkgs/by-name/ta/taler-exchange/package.nix
+++ b/pkgs/by-name/ta/taler-exchange/package.nix
@@ -21,7 +21,7 @@
 }:
 
 let
-  version = "0.10.2";
+  version = "0.11.2";
 in
 stdenv.mkDerivation {
   pname = "taler-exchange";
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
     url = "https://git.taler.net/exchange.git";
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-dl8lZ7uKUr+KSUaT4xlkaX3W5UoW2Zfu/0iVXvLejnA=";
+    hash = "sha256-DflUfXAe310LRhZmaHgF1ZpCi+hHF30lpzAIpI1HZvM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/ta/taler-merchant/package.nix b/pkgs/by-name/ta/taler-merchant/package.nix
index 59fb722b72fc9..65367499e23cf 100644
--- a/pkgs/by-name/ta/taler-merchant/package.nix
+++ b/pkgs/by-name/ta/taler-merchant/package.nix
@@ -12,12 +12,13 @@
 }:
 
 let
-  version = "0.10.2";
+  version = "0.11.3";
 
   taler-wallet-core = fetchgit {
     url = "https://git.taler.net/wallet-core.git";
-    rev = "v${version}";
-    hash = "sha256-jC8XhcHZxv7ww+wspJUqTq6x6FIeEehQmE03ttJZWT4=";
+    # https://taler.net/fr/news/2024-11.html
+    rev = "v0.11.2";
+    hash = "sha256-GtR87XqmunYubh9EiY3bJIqXiXrT+re3KqWypYK3NCo=";
   };
 in
 stdenv.mkDerivation {
@@ -28,7 +29,7 @@ stdenv.mkDerivation {
     url = "https://git.taler.net/merchant.git";
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-WY5Fk5HcVjxsnqt69m8E9ikW+nQDkCuKtT1CTsupz5c=";
+    hash = "sha256-Rak6p8cuCHPZxrXqrv3YUU3pFFw4GWf8bcd3Ur+o7Wg=";
   };
 
   postUnpack = ''
diff --git a/pkgs/by-name/ta/tangerine/package.nix b/pkgs/by-name/ta/tangerine/package.nix
index 1521536c4c375..5615d441b80b4 100644
--- a/pkgs/by-name/ta/tangerine/package.nix
+++ b/pkgs/by-name/ta/tangerine/package.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation {
   buildInputs = [ ncurses SDL2 ];
 
   meta = with lib; {
-    description = "A system for creating 3D models procedurally from a set of Signed Distance Function (SDF) primitive shapes and combining operators";
+    description = "System for creating 3D models procedurally from a set of Signed Distance Function (SDF) primitive shapes and combining operators";
     homepage = "https://github.com/Aeva/tangerine";
     license = licenses.asl20;
     maintainers = [ maintainers.viraptor ];
diff --git a/pkgs/by-name/ta/taschenrechner/package.nix b/pkgs/by-name/ta/taschenrechner/package.nix
index 1b45c783830d4..391226b72b154 100644
--- a/pkgs/by-name/ta/taschenrechner/package.nix
+++ b/pkgs/by-name/ta/taschenrechner/package.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-BZGkdHR66O3GjKl9yM/bKxdGdvWFB/YO2Egg6V/wuB8=";
 
   meta = with lib; {
-    description = "A cli-calculator written in Rust";
+    description = "Cli-calculator written in Rust";
     homepage = "https://gitlab.fem-net.de/mabl/taschenrechner";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ netali ];
diff --git a/pkgs/by-name/tb/tbump/package.nix b/pkgs/by-name/tb/tbump/package.nix
new file mode 100644
index 0000000000000..2812dd2f05d0c
--- /dev/null
+++ b/pkgs/by-name/tb/tbump/package.nix
@@ -0,0 +1,41 @@
+{
+  lib,
+  fetchPypi,
+  python3Packages,
+}:
+python3Packages.buildPythonApplication rec {
+  pname = "tbump";
+  version = "6.11.0";
+  pyproject = true;
+
+  disabled = python3Packages.pythonOlder "3.8";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "tbump";
+    hash = "sha256-OF5xDu3wqKb/lZzx6fPP0XyHNhcTL8DsX2Ka8MNVyHA=";
+  };
+
+  pythonRelaxDeps = [ "tomlkit" ];
+
+  nativeBuildInputs = with python3Packages; [ pythonRelaxDepsHook ];
+
+  build-system = with python3Packages; [ poetry-core ];
+
+  dependencies = with python3Packages; [
+    docopt
+    schema
+    packaging
+    poetry-core
+    tomlkit
+    cli-ui
+  ];
+
+  meta = {
+    description = "Bump software releases";
+    homepage = "https://github.com/your-tools/tbump";
+    license = lib.licenses.bsd3;
+    mainProgram = "tbump";
+    maintainers = with lib.maintainers; [ slashformotion ];
+  };
+}
diff --git a/pkgs/by-name/tc/tcsh/package.nix b/pkgs/by-name/tc/tcsh/package.nix
index 4c48292514fed..1db0fb69e7e8c 100644
--- a/pkgs/by-name/tc/tcsh/package.nix
+++ b/pkgs/by-name/tc/tcsh/package.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "tcsh";
-  version = "6.24.12";
+  version = "6.24.13";
 
   src = fetchurl {
     url = "mirror://tcsh/tcsh-${finalAttrs.version}.tar.gz";
-    hash = "sha256-4ycM6WZ/1b0qBGaHZZ/PX9ameBMm+Abr1yTx4cnNQYU=";
+    hash = "sha256-HpJ9UunIXRYr+YXyTRPGzO3pvriA2G/sSS7RVIClxxo=";
   };
 
   strictDeps = true;
@@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://www.tcsh.org/";
-    description = "An enhanced version of the Berkeley UNIX C shell (csh)";
+    description = "Enhanced version of the Berkeley UNIX C shell (csh)";
     mainProgram = "tcsh";
     longDescription = ''
       tcsh is an enhanced but completely compatible version of the Berkeley UNIX
diff --git a/pkgs/by-name/td/tdf/Cargo.lock b/pkgs/by-name/td/tdf/Cargo.lock
new file mode 100644
index 0000000000000..4b9426c379445
--- /dev/null
+++ b/pkgs/by-name/td/tdf/Cargo.lock
@@ -0,0 +1,1511 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "addr2line"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "ahash"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+ "version_check",
+ "zerocopy",
+]
+
+[[package]]
+name = "allocator-api2"
+version = "0.2.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"
+
+[[package]]
+name = "autocfg"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
+
+[[package]]
+name = "backtrace"
+version = "0.3.72"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17c6a35df3749d2e8bb1b7b21a976d82b15548788d2735b9d82f329268f71a11"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "base64"
+version = "0.22.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
+
+[[package]]
+name = "bytemuck"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5"
+
+[[package]]
+name = "byteorder"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+
+[[package]]
+name = "cairo-rs"
+version = "0.19.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2ac2a4d0e69036cf0062976f6efcba1aaee3e448594e6514bb2ddf87acce562"
+dependencies = [
+ "bitflags 2.5.0",
+ "cairo-sys-rs",
+ "glib",
+ "libc",
+ "thiserror",
+]
+
+[[package]]
+name = "cairo-sys-rs"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd3bb3119664efbd78b5e6c93957447944f16bdbced84c17a9f41c7829b81e64"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "cassowary"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53"
+
+[[package]]
+name = "castaway"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a17ed5635fc8536268e5d4de1e22e81ac34419e5f052d4d51f4e01dcc263fcc"
+dependencies = [
+ "rustversion",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.98"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
+
+[[package]]
+name = "cfg-expr"
+version = "0.15.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02"
+dependencies = [
+ "smallvec",
+ "target-lexicon",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "compact_str"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f86b9c4c00838774a6d902ef931eff7470720c51d90c2e32cfe15dc304737b3f"
+dependencies = [
+ "castaway",
+ "cfg-if",
+ "itoa",
+ "ryu",
+ "static_assertions",
+]
+
+[[package]]
+name = "crc32fast"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
+dependencies = [
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
+
+[[package]]
+name = "crossterm"
+version = "0.27.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df"
+dependencies = [
+ "bitflags 2.5.0",
+ "crossterm_winapi",
+ "futures-core",
+ "libc",
+ "mio",
+ "parking_lot",
+ "signal-hook",
+ "signal-hook-mio",
+ "winapi",
+]
+
+[[package]]
+name = "crossterm_winapi"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "dyn-clone"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125"
+
+[[package]]
+name = "either"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b"
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "fdeflate"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
+dependencies = [
+ "simd-adler32",
+]
+
+[[package]]
+name = "filetime"
+version = "0.2.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall 0.4.1",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "flate2"
+version = "1.0.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae"
+dependencies = [
+ "crc32fast",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "fsevent-sys"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+dependencies = [
+ "futures-core",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "futures-task"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+
+[[package]]
+name = "futures-util"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+dependencies = [
+ "futures-core",
+ "futures-macro",
+ "futures-task",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "gimli"
+version = "0.29.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
+
+[[package]]
+name = "gio"
+version = "0.19.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be548be810e45dd31d3bbb89c6210980bb7af9bca3ea1292b5f16b75f8e394a7"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-util",
+ "gio-sys",
+ "glib",
+ "libc",
+ "pin-project-lite",
+ "smallvec",
+ "thiserror",
+]
+
+[[package]]
+name = "gio-sys"
+version = "0.19.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4bdbef451b0f0361e7f762987cc6bebd5facab1d535e85a3cf1115dfb08db40"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "glib"
+version = "0.19.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e52355166df21c7ed16b6a01f615669c7911ed74e27ef60eba339c0d2da12490"
+dependencies = [
+ "bitflags 2.5.0",
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-task",
+ "futures-util",
+ "gio-sys",
+ "glib-macros",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "memchr",
+ "smallvec",
+ "thiserror",
+]
+
+[[package]]
+name = "glib-macros"
+version = "0.19.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70025dbfa1275cf7d0531c3317ba6270dae15d87e63342229d638246ff45202e"
+dependencies = [
+ "heck 0.5.0",
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "glib-sys"
+version = "0.19.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "767d23ead9bbdfcbb1c2242c155c8128a7d13dde7bf69c176f809546135e2282"
+dependencies = [
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "gobject-sys"
+version = "0.19.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3787b0bfacca12bb25f8f822b0dbee9f7e4a86e6469a29976d332d2c14c945b"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.14.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
+dependencies = [
+ "ahash",
+ "allocator-api2",
+]
+
+[[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+
+[[package]]
+name = "icy_sixel"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86858ae800284d596cfdefcb0ad435c3493c12f35367431bbe9b2b3858c1155b"
+
+[[package]]
+name = "image"
+version = "0.25.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd54d660e773627692c524beaad361aca785a4f9f5730ce91f42aabe5bce3d11"
+dependencies = [
+ "bytemuck",
+ "byteorder",
+ "num-traits",
+ "png",
+ "rayon",
+ "zune-core",
+ "zune-jpeg",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
+dependencies = [
+ "equivalent",
+ "hashbrown",
+]
+
+[[package]]
+name = "inotify"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff"
+dependencies = [
+ "bitflags 1.3.2",
+ "inotify-sys",
+ "libc",
+]
+
+[[package]]
+name = "inotify-sys"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "itertools"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itertools"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
+
+[[package]]
+name = "kqueue"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c"
+dependencies = [
+ "kqueue-sys",
+ "libc",
+]
+
+[[package]]
+name = "kqueue-sys"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b"
+dependencies = [
+ "bitflags 1.3.2",
+ "libc",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.155"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
+
+[[package]]
+name = "lock_api"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
+
+[[package]]
+name = "lru"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc"
+dependencies = [
+ "hashbrown",
+]
+
+[[package]]
+name = "memchr"
+version = "2.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
+
+[[package]]
+name = "miniz_oxide"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae"
+dependencies = [
+ "adler",
+ "simd-adler32",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
+dependencies = [
+ "libc",
+ "log",
+ "wasi",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "notify"
+version = "6.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
+dependencies = [
+ "bitflags 2.5.0",
+ "crossbeam-channel",
+ "filetime",
+ "fsevent-sys",
+ "inotify",
+ "kqueue",
+ "libc",
+ "log",
+ "mio",
+ "walkdir",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "object"
+version = "0.35.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8ec7ab813848ba4522158d5517a6093db1ded27575b070f4177b8d12b41db5e"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "parking_lot"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall 0.5.1",
+ "smallvec",
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "paste"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+
+[[package]]
+name = "png"
+version = "0.17.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
+dependencies = [
+ "bitflags 1.3.2",
+ "crc32fast",
+ "fdeflate",
+ "flate2",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "poppler-rs"
+version = "0.23.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9421853a6cc8dfaea2e31bd751fb037abdc3a727f04d0eb10fcf7061f6eff562"
+dependencies = [
+ "cairo-rs",
+ "gio",
+ "glib",
+ "libc",
+ "poppler-sys-rs",
+]
+
+[[package]]
+name = "poppler-sys-rs"
+version = "0.23.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10f6737da38a7bb0126931c4a7b23b7bea517410bd48676f18af6b38c5f88d51"
+dependencies = [
+ "cairo-sys-rs",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "proc-macro-crate"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
+dependencies = [
+ "toml_edit 0.21.1",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec96c6a92621310b51366f1e28d05ef11489516e93be030060e5fc12024a49d6"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "ratatui"
+version = "0.26.3"
+source = "git+https://github.com/itsjunetime/ratatui.git#0e185042b728b3bc8baff245154e6d200bb64f3b"
+dependencies = [
+ "bitflags 2.5.0",
+ "cassowary",
+ "compact_str",
+ "crossterm",
+ "itertools 0.13.0",
+ "lru",
+ "paste",
+ "stability",
+ "strum",
+ "unicode-segmentation",
+ "unicode-truncate",
+ "unicode-width",
+]
+
+[[package]]
+name = "ratatui-image"
+version = "1.0.0"
+source = "git+https://github.com/itsjunetime/ratatui-image.git?branch=vb64_on_personal#e5c13ed29c9decdff093c2be5d673d84fb3589a9"
+dependencies = [
+ "base64",
+ "dyn-clone",
+ "icy_sixel",
+ "image",
+ "rand",
+ "ratatui",
+ "rustix",
+ "vb64",
+]
+
+[[package]]
+name = "rayon"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e"
+dependencies = [
+ "bitflags 2.5.0",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
+
+[[package]]
+name = "rustix"
+version = "0.38.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
+dependencies = [
+ "bitflags 2.5.0",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
+
+[[package]]
+name = "ryu"
+version = "1.0.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
+
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "serde"
+version = "1.0.203"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.203"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "signal-hook"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
+dependencies = [
+ "libc",
+ "signal-hook-registry",
+]
+
+[[package]]
+name = "signal-hook-mio"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af"
+dependencies = [
+ "libc",
+ "mio",
+ "signal-hook",
+]
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "simd-adler32"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
+
+[[package]]
+name = "stability"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ff9eaf853dec4c8802325d8b6d3dffa86cc707fd7a1a4cdbf416e13b061787a"
+dependencies = [
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
+name = "strum"
+version = "0.26.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29"
+dependencies = [
+ "strum_macros",
+]
+
+[[package]]
+name = "strum_macros"
+version = "0.26.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2",
+ "quote",
+ "rustversion",
+ "syn",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.66"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "system-deps"
+version = "6.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349"
+dependencies = [
+ "cfg-expr",
+ "heck 0.5.0",
+ "pkg-config",
+ "toml",
+ "version-compare",
+]
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
+
+[[package]]
+name = "tdf"
+version = "0.1.0"
+dependencies = [
+ "cairo-rs",
+ "crossterm",
+ "futures-util",
+ "glib",
+ "image",
+ "itertools 0.13.0",
+ "notify",
+ "poppler-rs",
+ "ratatui",
+ "ratatui-image",
+ "tokio",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "tokio"
+version = "1.37.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787"
+dependencies = [
+ "backtrace",
+ "num_cpus",
+ "pin-project-lite",
+ "tokio-macros",
+]
+
+[[package]]
+name = "tokio-macros"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "toml"
+version = "0.8.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit 0.22.13",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow 0.5.40",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c"
+dependencies = [
+ "indexmap",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow 0.6.9",
+]
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
+
+[[package]]
+name = "unicode-truncate"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a5fbabedabe362c618c714dbefda9927b5afc8e2a8102f47f081089a9019226"
+dependencies = [
+ "itertools 0.12.1",
+ "unicode-width",
+]
+
+[[package]]
+name = "unicode-width"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6"
+
+[[package]]
+name = "vb64"
+version = "0.1.2"
+source = "git+https://github.com/lukaslihotzki/vb64?branch=update#01e791186f57982511a3bcfb0d2316010c1adef0"
+
+[[package]]
+name = "version-compare"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "walkdir"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
+dependencies = [
+ "same-file",
+ "winapi-util",
+]
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
+
+[[package]]
+name = "winnow"
+version = "0.5.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winnow"
+version = "0.6.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86c949fede1d13936a99f14fafd3e76fd642b556dd2ce96287fbe2e0151bfac6"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "zerocopy"
+version = "0.7.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "zune-core"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a"
+
+[[package]]
+name = "zune-jpeg"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec866b44a2a1fd6133d363f073ca1b179f438f99e7e5bfb1e33f7181facfe448"
+dependencies = [
+ "zune-core",
+]
diff --git a/pkgs/by-name/td/tdf/package.nix b/pkgs/by-name/td/tdf/package.nix
new file mode 100644
index 0000000000000..5d5a39058cc9d
--- /dev/null
+++ b/pkgs/by-name/td/tdf/package.nix
@@ -0,0 +1,55 @@
+{
+  lib,
+  fetchFromGitHub,
+  rustPlatform,
+  pkg-config,
+  cairo,
+  glib,
+  poppler,
+}:
+
+rustPlatform.buildRustPackage {
+  pname = "tdf";
+  version = "0-unstable-2024-05-29";
+
+  src = fetchFromGitHub {
+    owner = "itsjunetime";
+    repo = "tdf";
+    fetchSubmodules = true;
+    rev = "017596a8b0745a6da7c3c75a5f55073b82202a5c";
+    hash = "sha256-H0xdDvWDSkvIy4vFWKiVFP03CogswIZMQ393BeEy2BQ=";
+  };
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "ratatui-0.26.3" = "sha256-lRQQJqt9UKZ2OzvrNzq/FqDvU6CgPPDAB2QDB7TR1V4=";
+      "ratatui-image-1.0.0" = "sha256-0lrFmXPljKKNIbLNhQsuCv7HhJOJ234HSfUPj4XSeXY=";
+      "vb64-0.1.2" = "sha256-VvObgaJhHNah3exVQInFa5mhHjzEg0MaFqQdnCE5Pp8=";
+    };
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [
+    cairo
+    glib
+    poppler
+  ];
+
+  strictDeps = true;
+
+  # No tests are currently present
+  doCheck = false;
+
+  # requires nightly features (feature(portable_simd))
+  RUSTC_BOOTSTRAP = true;
+
+  meta = {
+    description = "Tui-based PDF viewer";
+    homepage = "https://github.com/itsjunetime/tdf";
+    license = lib.licenses.mpl20;
+    maintainers = with lib.maintainers; [ luftmensch-luftmensch ];
+    mainProgram = "tdf";
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/td/tdl/package.nix b/pkgs/by-name/td/tdl/package.nix
index 5b82f368df6b7..69e11b61d5b00 100644
--- a/pkgs/by-name/td/tdl/package.nix
+++ b/pkgs/by-name/td/tdl/package.nix
@@ -4,16 +4,16 @@
 }:
 buildGoModule rec {
   pname = "tdl";
-  version = "0.17.0";
+  version = "0.17.1";
 
   src = fetchFromGitHub {
     owner = "iyear";
     repo = "tdl";
     rev = "v${version}";
-    hash = "sha256-bIDgxCv9jSN3OxS0FydFwfJYr8BUQ+8U/0s2BkM4M70=";
+    hash = "sha256-qyoZqd6VLiq8L4p4ubKIM6HWJdn7SaQDQN9kIArbnls=";
   };
 
-  vendorHash = "sha256-uCQ5HixoChppLO9kJvMWVENhHDnQsEe/qiJnbwUjE70=";
+  vendorHash = "sha256-Xfd98qce/xThwF+dssNznny8FgrORGsAhDALfW9bWEQ=";
 
   ldflags = [
     "-s"
@@ -25,7 +25,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Telegram downloader/tools written in Golang";
+    description = "Telegram downloader/tools written in Golang";
     homepage = "https://github.com/iyear/tdl";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ Ligthiago ];
diff --git a/pkgs/by-name/te/techmino/Cargo.lock b/pkgs/by-name/te/techmino/Cargo.lock
new file mode 100644
index 0000000000000..e45a14b3660f5
--- /dev/null
+++ b/pkgs/by-name/te/techmino/Cargo.lock
@@ -0,0 +1,897 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "Inflector"
+version = "0.11.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
+
+[[package]]
+name = "aliasable"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd"
+
+[[package]]
+name = "array-macro"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06e97b4e522f9e55523001238ac59d13a8603af57f69980de5d8de4bbbe8ada6"
+
+[[package]]
+name = "arrayvec"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "bincode"
+version = "1.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
+
+[[package]]
+name = "byteorder"
+version = "1.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+
+[[package]]
+name = "c-api"
+version = "0.1.0"
+dependencies = [
+ "cold-clear",
+ "enumset",
+ "libtetris",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+dependencies = [
+ "jobserver",
+]
+
+[[package]]
+name = "cfg-if"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "cold-clear"
+version = "0.1.0"
+dependencies = [
+ "arrayvec",
+ "bumpalo",
+ "console_error_panic_hook",
+ "crossbeam-channel 0.4.4",
+ "enum-map",
+ "enumset",
+ "futures-util",
+ "getrandom",
+ "libtetris",
+ "odds",
+ "opening-book",
+ "ouroboros",
+ "pcf",
+ "rand",
+ "rayon",
+ "serde",
+ "serde-big-array",
+ "smallvec",
+ "webutil",
+]
+
+[[package]]
+name = "console_error_panic_hook"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc"
+dependencies = [
+ "cfg-if 1.0.0",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87"
+dependencies = [
+ "crossbeam-utils 0.7.2",
+ "maybe-uninit",
+]
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
+dependencies = [
+ "cfg-if 1.0.0",
+ "crossbeam-utils 0.8.15",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+dependencies = [
+ "cfg-if 1.0.0",
+ "crossbeam-epoch",
+ "crossbeam-utils 0.8.15",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695"
+dependencies = [
+ "autocfg",
+ "cfg-if 1.0.0",
+ "crossbeam-utils 0.8.15",
+ "memoffset",
+ "scopeguard",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
+dependencies = [
+ "autocfg",
+ "cfg-if 0.1.10",
+ "lazy_static",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b"
+dependencies = [
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "darling"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e"
+dependencies = [
+ "darling_core",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "either"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+
+[[package]]
+name = "enum-map"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23595c55d463536d70a0cc71a521d4c1040a2e03816e455c38e8bb1f0981de98"
+dependencies = [
+ "array-macro",
+ "enum-map-derive",
+ "serde",
+]
+
+[[package]]
+name = "enum-map-derive"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5c450cf304c9e18d45db562025a14fb1ca0f5c769b6f609309f81d4c31de455"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "enumset"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19be8061a06ab6f3a6cf21106c873578bf01bd42ad15e0311a9c76161cb1c753"
+dependencies = [
+ "enumset_derive",
+ "serde",
+]
+
+[[package]]
+name = "enumset_derive"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "03e7b551eba279bf0fa88b83a46330168c1560a52a94f5126f892f0b364ab3e0"
+dependencies = [
+ "darling",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "futures-core"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.13",
+]
+
+[[package]]
+name = "futures-task"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+
+[[package]]
+name = "futures-util"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+dependencies = [
+ "futures-core",
+ "futures-macro",
+ "futures-task",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+dependencies = [
+ "cfg-if 1.0.0",
+ "js-sys",
+ "libc",
+ "wasi",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "ident_case"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
+[[package]]
+name = "itoa"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+
+[[package]]
+name = "jobserver"
+version = "0.1.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "js-sys"
+version = "0.3.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libc"
+version = "0.2.141"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5"
+
+[[package]]
+name = "libtetris"
+version = "0.1.0"
+dependencies = [
+ "arrayvec",
+ "enum-map",
+ "enumset",
+ "pcf",
+ "rand",
+ "serde",
+]
+
+[[package]]
+name = "log"
+version = "0.4.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+dependencies = [
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "maybe-uninit"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
+
+[[package]]
+name = "memoffset"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "odds"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9a18d7081eb052145753e982d7b8de495f15f74636d0d963f09116581eab665"
+dependencies = [
+ "rawpointer 0.1.0",
+ "rawslice",
+ "unchecked-index",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.17.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+
+[[package]]
+name = "opening-book"
+version = "0.1.0"
+dependencies = [
+ "arrayvec",
+ "bincode",
+ "enumset",
+ "lazy_static",
+ "libtetris",
+ "num_cpus",
+ "ruzstd",
+ "serde",
+ "zstd",
+]
+
+[[package]]
+name = "ouroboros"
+version = "0.14.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "71643f290d126e18ac2598876d01e1d57aed164afc78fdb6e2a0c6589a1f6662"
+dependencies = [
+ "aliasable",
+ "ouroboros_macro",
+ "stable_deref_trait",
+]
+
+[[package]]
+name = "ouroboros_macro"
+version = "0.14.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed9a247206016d424fe8497bc611e510887af5c261fbbf977877c4bb55ca4d82"
+dependencies = [
+ "Inflector",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "pcf"
+version = "0.1.0"
+dependencies = [
+ "arrayvec",
+ "rayon",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.56"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom",
+ "libc",
+ "rand_chacha",
+ "rand_core",
+ "rand_hc",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "rawpointer"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ebac11a9d2e11f2af219b8b8d833b76b1ea0e054aa0e8d8e9e4cbde353bdf019"
+
+[[package]]
+name = "rawpointer"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
+
+[[package]]
+name = "rawslice"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e23c908b26a742e5e3768ea42f19225ef809d3c9e3071bfe3e01c7e9b6fd1cd"
+dependencies = [
+ "rawpointer 0.2.1",
+]
+
+[[package]]
+name = "rayon"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
+dependencies = [
+ "crossbeam-channel 0.5.8",
+ "crossbeam-deque",
+ "crossbeam-utils 0.8.15",
+ "num_cpus",
+]
+
+[[package]]
+name = "ruzstd"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8cada0ef59efa6a5f4dc5e491f93d9f31e3fc7758df421ff1de8a706338e1100"
+dependencies = [
+ "byteorder",
+ "twox-hash",
+]
+
+[[package]]
+name = "ryu"
+version = "1.0.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
+
+[[package]]
+name = "scopeguard"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+
+[[package]]
+name = "serde"
+version = "1.0.159"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c04e8343c3daeec41f58990b9d77068df31209f2af111e059e9fe9646693065"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde-big-array"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "883eee5198ea51720eab8be52a36cf6c0164ac90eea0ed95b649d5e35382404e"
+dependencies = [
+ "serde",
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.159"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c614d17805b093df4b147b51339e7e44bf05ef59fba1e45d83500bcfb4d8585"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.13",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.95"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d721eca97ac802aa7777b701877c8004d950fc142651367300d21c1cc0194744"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "slab"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+
+[[package]]
+name = "stable_deref_trait"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+
+[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c9da457c5285ac1f936ebd076af6dac17a61cfe7826f2076b4d015cf47bc8ec"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "twox-hash"
+version = "1.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675"
+dependencies = [
+ "cfg-if 1.0.0",
+ "static_assertions",
+]
+
+[[package]]
+name = "unchecked-index"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eeba86d422ce181a719445e51872fa30f1f7413b62becb52e95ec91aa262d85c"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "wasi"
+version = "0.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
+dependencies = [
+ "cfg-if 1.0.0",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454"
+dependencies = [
+ "cfg-if 1.0.0",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
+
+[[package]]
+name = "web-sys"
+version = "0.3.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "webutil"
+version = "0.1.0"
+source = "git+https://github.com/MinusKelvin/webutil?rev=5a54126#5a54126f6c4931df016511f605bbf4aa43c422e5"
+dependencies = [
+ "bincode",
+ "console_error_panic_hook",
+ "js-sys",
+ "serde",
+ "serde_json",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
+name = "zstd"
+version = "0.7.0+zstd.1.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9428752481d8372e15b1bf779ea518a179ad6c771cca2d2c60e4fbff3cc2cd52"
+dependencies = [
+ "zstd-safe",
+]
+
+[[package]]
+name = "zstd-safe"
+version = "3.1.0+zstd.1.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5aa1926623ad7fe406e090555387daf73db555b948134b4d73eac5eb08fb666d"
+dependencies = [
+ "libc",
+ "zstd-sys",
+]
+
+[[package]]
+name = "zstd-sys"
+version = "1.5.0+zstd.1.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e6c094340240369025fc6b731b054ee2a834328fa584310ac96aa4baebdc465"
+dependencies = [
+ "cc",
+ "libc",
+]
diff --git a/pkgs/by-name/te/techmino/ccloader.nix b/pkgs/by-name/te/techmino/ccloader.nix
new file mode 100644
index 0000000000000..3fe632a93785e
--- /dev/null
+++ b/pkgs/by-name/te/techmino/ccloader.nix
@@ -0,0 +1,44 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, libcoldclear
+, luajit
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ccloader";
+  version = "11.4.2";
+
+  src = fetchFromGitHub {
+    owner = "26F-Studio";
+    repo = "cold_clear_ai_love2d_wrapper";
+    rev = version;
+    hash = "sha256-zfTSMWqjFrAKW5m+9q3K2Je8bbSyhC6pC/vPAWDGCNg=";
+  };
+
+  buildInputs = [ libcoldclear luajit ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    gcc -shared cold_clear_wrapper.c -lcold_clear -lluajit-${luajit.luaversion} -o CCLoader.so
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/lib/lua/${luajit.luaversion}
+    mv CCLoader.so $out/lib/lua/${luajit.luaversion}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Luajit wrapper for Cold Clear, a Tetris AI";
+    homepage = "https://github.com/26F-Studio/cold_clear_ai_love2d_wrapper";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ chayleaf ];
+  };
+}
diff --git a/pkgs/by-name/te/techmino/libcoldclear.nix b/pkgs/by-name/te/techmino/libcoldclear.nix
new file mode 100644
index 0000000000000..4160e0bdcb87f
--- /dev/null
+++ b/pkgs/by-name/te/techmino/libcoldclear.nix
@@ -0,0 +1,54 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+let
+  # for whatever reason, rustPlatform fetches it the wrong way, so do it manually
+  pcf = fetchFromGitHub {
+    owner = "MinusKelvin";
+    repo = "pcf";
+    rev = "64cd95557f3cf56e11e4c91a963fce9700d85325";
+    hash = "sha256-2/Y5thDN5fwthk+I/D7pORe7yQ1H0UpNjVvAeSYpD5Q=";
+  };
+in
+
+rustPlatform.buildRustPackage {
+  pname = "libcoldclear";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "26F-Studio";
+    repo = "cold-clear";
+    rev = "1564ce9ad14aa60f32bf9a5120594933b3501548";
+    hash = "sha256-6fZpKHEJ0dsOTp755GLnxa/befCUJhjqA3Zna5UkKVo=";
+  };
+
+  # remove workspace cargo.toml so we don't load all of workspace's deps
+  postPatch = ''
+    rm Cargo.toml
+    sed -i 's%git = "https://github.com/MinusKelvin/pcf", rev = "64cd955"%path = "../pcf"%g' */Cargo.toml
+    ln -s ${pcf} pcf
+    cd c-api
+    ln -s ${./Cargo.lock} Cargo.lock
+  '';
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "webutil-0.1.0" = "sha256-Zg98VmCUd/ZTlRTfTfkPJh4xX0QrepGxICbszebQw0I=";
+    };
+  };
+
+  postInstall = ''
+    mkdir -p $out/include
+    cp coldclear.h $out/include
+  '';
+
+  meta = with lib; {
+    description = "Tetris AI";
+    homepage = "https://github.com/26F-Studio/cold-clear";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ chayleaf ];
+  };
+}
diff --git a/pkgs/by-name/te/techmino/package.nix b/pkgs/by-name/te/techmino/package.nix
new file mode 100644
index 0000000000000..c0467e0e50095
--- /dev/null
+++ b/pkgs/by-name/te/techmino/package.nix
@@ -0,0 +1,75 @@
+{ lib
+, stdenv
+, fetchurl
+, callPackage
+, makeWrapper
+, makeDesktopItem
+, love
+, luajit
+, libcoldclear ? callPackage ./libcoldclear.nix { }
+, ccloader ? callPackage ./ccloader.nix { inherit libcoldclear luajit; }
+}:
+
+let
+  pname = "techmino";
+  description = "A modern Tetris clone with many features";
+
+  desktopItem = makeDesktopItem {
+    name = pname;
+    exec = "techmino";
+    icon = fetchurl {
+      name = "techmino.png";
+      url = "https://github.com/26F-Studio/Techmino/assets/9590981/95981af1-f39a-47d9-bd99-a78ab767c08f";
+      hash = "sha256-+j+8m2vwaWgHYSFL6urvTcB0vA+PCZ+FYJ22CNXfcSc=";
+    };
+    comment = description;
+    desktopName = "Techmino";
+    genericName = "Tetris Clone";
+    categories = [ "Game" ];
+  };
+in
+
+stdenv.mkDerivation rec {
+  inherit pname;
+  version = "0.17.16";
+
+  src = fetchurl {
+    url = "https://github.com/26F-Studio/Techmino/releases/download/v${version}/Techmino_Bare.love";
+    hash = "sha256-IgeVsVS5FLBgoZkJiyMFC1t24HZ/fukE5R0p2YbETTA=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ love ccloader ];
+
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/games/lovegames
+    cp $src $out/share/games/lovegames/techmino.love
+
+    mkdir -p $out/bin
+    makeWrapper ${love}/bin/love $out/bin/techmino \
+      --add-flags $out/share/games/lovegames/techmino.love \
+      --suffix LUA_CPATH : ${ccloader}/lib/lua/${luajit.luaversion}/CCLoader.so
+
+    mkdir -p $out/share/applications
+    ln -s ${desktopItem}/share/applications/* $out/share/applications/
+
+    runHook postInstall
+  '';
+
+  passthru = {
+    inherit ccloader libcoldclear;
+  };
+
+  meta = with lib; {
+    inherit description;
+    downloadPage = "https://github.com/26F-Studio/Techmino/releases";
+    homepage = "https://github.com/26F-Studio/Techmino/";
+    license = licenses.lgpl3;
+    mainProgram = "techmino";
+    maintainers = with maintainers; [ chayleaf ];
+  };
+}
diff --git a/pkgs/by-name/te/tecoc/package.nix b/pkgs/by-name/te/tecoc/package.nix
index a28e814c904b8..8bb5d0b0aa108 100644
--- a/pkgs/by-name/te/tecoc/package.nix
+++ b/pkgs/by-name/te/tecoc/package.nix
@@ -56,7 +56,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/blakemcbride/TECOC";
-    description = "A clone of the good old TECO editor";
+    description = "Clone of the good old TECO editor";
     longDescription = ''
       For those who don't know: TECO is the acronym of Tape Editor and COrrector
       (because it was a paper tape edition tool in its debut days). Now the
diff --git a/pkgs/by-name/te/telescope/package.nix b/pkgs/by-name/te/telescope/package.nix
index 610a93ce84cc1..368c15d7e6368 100644
--- a/pkgs/by-name/te/telescope/package.nix
+++ b/pkgs/by-name/te/telescope/package.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "telescope";
-  version = "0.9";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "omar-polo";
     repo = pname;
     rev = version;
-    hash = "sha256-eGntAAaKSwusm3e0zDXZmV9D5uX/uThPvQ5OjPNsxZ8=";
+    hash = "sha256-OAqXYmlehL9AjZ7V0U0h7RCm/hn77Sf0Wp6R/GRaGY8=";
   };
 
   postPatch = ''
diff --git a/pkgs/by-name/te/televido/package.nix b/pkgs/by-name/te/televido/package.nix
new file mode 100644
index 0000000000000..2b495600613b6
--- /dev/null
+++ b/pkgs/by-name/te/televido/package.nix
@@ -0,0 +1,59 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, rustPlatform
+, rustc
+, cargo
+, wrapGAppsHook4
+, blueprint-compiler
+, libadwaita
+, desktop-file-utils
+, openssl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "televido";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "d-k-bo";
+    repo = "televido";
+    rev = "v${version}";
+    hash = "sha256-qfUwPyutBNEnplD3kmTJXffzcWkEcR6FTLnT5YDSysU=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-CmQQH6a5xMq+v+P4/sbpQ7iDaGKtzV39FgufD5uxz4Y=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    rustPlatform.cargoSetupHook
+    rustc
+    cargo
+    wrapGAppsHook4
+    blueprint-compiler
+    openssl
+  ];
+
+  buildInputs = [
+    libadwaita
+    desktop-file-utils
+  ];
+
+  meta = with lib; {
+    description = "Viewer for German-language public broadcasting live streams and archives";
+    homepage = "https://github.com/d-k-bo/televido";
+    license = licenses.gpl3;
+    mainProgram = "televido";
+    maintainers = with maintainers; [ seineeloquenz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/te/templ/package.nix b/pkgs/by-name/te/templ/package.nix
index 53fc9775300e1..31effdf8334b4 100644
--- a/pkgs/by-name/te/templ/package.nix
+++ b/pkgs/by-name/te/templ/package.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "templ";
-  version = "0.2.697";
+  version = "0.2.707";
 
   src = fetchFromGitHub {
     owner = "a-h";
     repo = "templ";
     rev = "v${version}";
-    hash = "sha256-z/sb4AlFOU20sBEAu12VSXqhHQuqvj3mUu7JTvyc1pI=";
+    hash = "sha256-4TkK8zeoWWGmcBg8YwALo2EyKfOyq5ut/3TjG81a+8M=";
   };
 
   vendorHash = "sha256-Fa6bmG0yfbICMfHlM52V+obxoVsQa4VNydIHXS+lGxw=";
@@ -27,7 +27,7 @@ buildGoModule rec {
   ];
 
   meta = {
-    description = "A language for writing HTML user interfaces in Go";
+    description = "Language for writing HTML user interfaces in Go";
     homepage = "https://github.com/a-h/templ";
     license = lib.licenses.mit;
     mainProgram = "templ";
diff --git a/pkgs/by-name/te/tenv/package.nix b/pkgs/by-name/te/tenv/package.nix
index 494495c95a695..042c389ac42e3 100644
--- a/pkgs/by-name/te/tenv/package.nix
+++ b/pkgs/by-name/te/tenv/package.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "tenv";
-  version = "1.11.2";
+  version = "2.0.7";
 
   src = fetchFromGitHub {
     owner = "tofuutils";
     repo = "tenv";
     rev = "v${version}";
-    hash = "sha256-HlAnCmkMLtQWv63BW0pUns76AylZ1RcKN3D6qpMRo5w=";
+    hash = "sha256-654ZaQ7KzAWEXwN9Xwzdmg4KsCCLCm+i2M0730gP/zM=";
   };
 
-  vendorHash = "sha256-teog4VJGDOYsABuE2/fvOtcWvC8mM36rJQI6KZb3eS8=";
+  vendorHash = "sha256-OrMCzqqOFQkI8IwcfO/JVPyd/sw+Ud0VySV7UPiucwc=";
 
   # Tests disabled for requiring network access to release.hashicorp.com
   doCheck = false;
diff --git a/pkgs/by-name/te/tera-cli/package.nix b/pkgs/by-name/te/tera-cli/package.nix
index 1f0e421013c93..bafe597a24f5c 100644
--- a/pkgs/by-name/te/tera-cli/package.nix
+++ b/pkgs/by-name/te/tera-cli/package.nix
@@ -5,19 +5,19 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "tera-cli";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "chevdor";
     repo = "tera-cli";
     rev = "v${version}";
-    hash = "sha256-Fzrlt6p4bVtJvGg8SaMdS/+2wzABtBkj9ERcg3/bwcQ=";
+    hash = "sha256-mYFvqzSnTljzRbb9W4/hY7fOO35UF31P5M49JkM58R8=";
   };
 
-  cargoHash = "sha256-aPN7rbU/BSgNAoq0g8JrzsXk3pbenrJZxqrm5f4zYn8=";
+  cargoHash = "sha256-aG0J9hnkGvz42gOczU3uF3GsmKZWgrLtx8lXOkDwt0c=";
 
   meta = with lib; {
-    description = "A command line utility to render templates from json|toml|yaml and ENV, using the tera templating engine";
+    description = "Command line utility to render templates from json|toml|yaml and ENV, using the tera templating engine";
     homepage = "https://github.com/chevdor/tera-cli";
     license = licenses.mit;
     maintainers = with maintainers; [_365tuwe];
diff --git a/pkgs/by-name/te/termsonic/package.nix b/pkgs/by-name/te/termsonic/package.nix
index 2dfb146775008..dda1c016fa319 100644
--- a/pkgs/by-name/te/termsonic/package.nix
+++ b/pkgs/by-name/te/termsonic/package.nix
@@ -24,7 +24,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://git.sixfoisneuf.fr/termsonic";
-    description = "A Subsonic client running in your terminal";
+    description = "Subsonic client running in your terminal";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
     mainProgram = "termsonic";
diff --git a/pkgs/by-name/te/terraform-plugin-docs/package.nix b/pkgs/by-name/te/terraform-plugin-docs/package.nix
index 5e893a6e6e2d5..01e53dd08f2b1 100644
--- a/pkgs/by-name/te/terraform-plugin-docs/package.nix
+++ b/pkgs/by-name/te/terraform-plugin-docs/package.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "terraform-plugin-docs";
-  version = "0.19.2";
+  version = "0.19.4";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "terraform-plugin-docs";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-1ZJPy/kRYKcwr/k/u8ux5Eo1LIkrNpVyXrd9ff+Na6I=";
+    sha256 = "sha256-UEF+CsY302AJApDhnrPoTo09EcR/VOo10bXSf0XgtZk=";
   };
 
-  vendorHash = "sha256-dBDvh3aIHu8iGwFt+29SdCl1gICwO7LnxQ7Wux+2tOk=";
+  vendorHash = "sha256-ZSHCP0eZWCvSObbUOSl0ohiiX79MyGC2ALowzvMXMv4=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/by-name/te/terragrunt/package.nix b/pkgs/by-name/te/terragrunt/package.nix
index 36ed4f13f8cc6..fffb4221ef0d2 100644
--- a/pkgs/by-name/te/terragrunt/package.nix
+++ b/pkgs/by-name/te/terragrunt/package.nix
@@ -36,7 +36,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://terragrunt.gruntwork.io";
     changelog = "https://github.com/gruntwork-io/terragrunt/releases/tag/v${version}";
-    description = "A thin wrapper for Terraform that supports locking for Terraform state and enforces best practices";
+    description = "Thin wrapper for Terraform that supports locking for Terraform state and enforces best practices";
     mainProgram = "terragrunt";
     license = licenses.mit;
     maintainers = with maintainers; [ jk qjoly kashw2 ];
diff --git a/pkgs/by-name/te/tetrio-desktop/tetrio-plus.nix b/pkgs/by-name/te/tetrio-desktop/tetrio-plus.nix
index a9c6f6080b03a..c01bc623c9d9d 100644
--- a/pkgs/by-name/te/tetrio-desktop/tetrio-plus.nix
+++ b/pkgs/by-name/te/tetrio-desktop/tetrio-plus.nix
@@ -63,7 +63,7 @@ let
     ];
 
     buildPhase = ''
-      HOME=$(mktemp -d) RUSTFLAGS="-C linker=lld" wasm-pack build --target web --release
+      HOME=$(mktemp -d) wasm-pack build --target web --release
     '';
 
     installPhase = ''
@@ -73,11 +73,14 @@ let
     doCheck = false;
 
     meta = {
-      description = "A self contained toolkit for creating, editing, and previewing TPSE files";
+      description = "Self contained toolkit for creating, editing, and previewing TPSE files";
       homepage = "https://gitlab.com/UniQMG/tpsecore";
       license = lib.licenses.mit;
       maintainers = with lib.maintainers; [ huantian wackbyte ];
       platforms = lib.platforms.linux;
+      # See comment about wasm32-unknown-unknown in rustc.nix.
+      broken = lib.any (a: lib.hasAttr a stdenv.hostPlatform.gcc) [ "cpu" "float-abi" "fpu" ] ||
+        !stdenv.hostPlatform.gcc.thumb or true;
     };
   };
 
diff --git a/pkgs/by-name/te/textlint-plugin-latex2e/package.nix b/pkgs/by-name/te/textlint-plugin-latex2e/package.nix
new file mode 100644
index 0000000000000..5325d880a6386
--- /dev/null
+++ b/pkgs/by-name/te/textlint-plugin-latex2e/package.nix
@@ -0,0 +1,37 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildNpmPackage,
+  textlint,
+  textlint-plugin-latex2e,
+  textlint-rule-max-comma,
+}:
+
+buildNpmPackage rec {
+  pname = "textlint-plugin-latex2e";
+  version = "1.2.1-unstable-2024-02-05";
+
+  src = fetchFromGitHub {
+    owner = "textlint";
+    repo = "textlint-plugin-latex2e";
+    rev = "d3ba1be14543aaaf8e52f87d103fafb3ebb7c4b0";
+    hash = "sha256-sCDpyhnznMAkIPWK0BawWZwuR9UO/ipIG2o5hyBkJQ0=";
+  };
+
+  npmDepsHash = "sha256-u2cMZC3s4iGCWG6iVMDYfb6XbxfjCdwpzl7opkwtrU8=";
+
+  passthru.tests = textlint.testPackages {
+    inherit (textlint-plugin-latex2e) pname;
+    rule = textlint-rule-max-comma;
+    plugin = textlint-plugin-latex2e;
+    testFile = ./test.tex;
+  };
+
+  meta = {
+    description = "Textlint Plugin LaTeX2ε";
+    homepage = "https://github.com/textlint/textlint-plugin-latex2e";
+    changelog = "https://github.com/textlint/textlint-plugin-latex2e/blob/${src.rev}/CHANGELOG.md";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+  };
+}
diff --git a/pkgs/by-name/te/textlint-plugin-latex2e/test.tex b/pkgs/by-name/te/textlint-plugin-latex2e/test.tex
new file mode 100644
index 0000000000000..98ec66816b6d5
--- /dev/null
+++ b/pkgs/by-name/te/textlint-plugin-latex2e/test.tex
@@ -0,0 +1,4 @@
+\documentclass{article}
+\begin{document}
+Nix, is a tool, that takes a unique approach to package management and system configuration, Learn how to make reproducible, declarative, and reliable systems.
+\end{document}
diff --git a/pkgs/by-name/te/textlint-rule-abbr-within-parentheses/package.nix b/pkgs/by-name/te/textlint-rule-abbr-within-parentheses/package.nix
new file mode 100644
index 0000000000000..96e3906930e26
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-abbr-within-parentheses/package.nix
@@ -0,0 +1,79 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchYarnDeps,
+  fixup-yarn-lock,
+  nodejs,
+  yarn,
+  textlint,
+  textlint-rule-abbr-within-parentheses,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "textlint-rule-abbr-within-parentheses";
+  version = "1.0.2";
+
+  src = fetchFromGitHub {
+    owner = "azu";
+    repo = "textlint-rule-abbr-within-parentheses";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-CBrf7WtvywDmtuSyxkDtAyjmrj7KS3TQLSsNfMxeWXw=";
+  };
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${finalAttrs.src}/yarn.lock";
+    hash = "sha256-N4tnja6qTo7jtn7Dh4TwBUCUKfbIbHvdZ7aeJcE+NlU=";
+  };
+
+  nativeBuildInputs = [
+    fixup-yarn-lock
+    nodejs
+    yarn
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror "$offlineCache"
+    fixup-yarn-lock yarn.lock
+    yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+    patchShebangs node_modules
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    yarn --offline build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    yarn --offline --production install
+    rm -r test
+    mkdir -p $out/lib/node_modules/textlint-rule-abbr-within-parentheses
+    cp -r . $out/lib/node_modules/textlint-rule-abbr-within-parentheses/
+
+    runHook postInstall
+  '';
+
+  passthru.tests = textlint.testPackages {
+    rule = textlint-rule-abbr-within-parentheses;
+    testFile = ./test.md;
+  };
+
+  meta = {
+    description = "Textlint rule check if write abbreviations within parentheses";
+    homepage = "https://github.com/azu/textlint-rule-abbr-within-parentheses";
+    changelog = "https://github.com/azu/textlint-rule-abbr-within-parentheses/releases/tag/${finalAttrs.src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+    platforms = textlint.meta.platforms;
+  };
+})
diff --git a/pkgs/by-name/te/textlint-rule-abbr-within-parentheses/test.md b/pkgs/by-name/te/textlint-rule-abbr-within-parentheses/test.md
new file mode 100644
index 0000000000000..224b1703098b7
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-abbr-within-parentheses/test.md
@@ -0,0 +1 @@
+Passing an expression `expr` that evaluates to a store path to any built-in function which reads from the filesystem constitutes IFD(Import From Derivation).
diff --git a/pkgs/by-name/te/textlint-rule-alex/package.nix b/pkgs/by-name/te/textlint-rule-alex/package.nix
new file mode 100644
index 0000000000000..343cd6da82179
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-alex/package.nix
@@ -0,0 +1,34 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildNpmPackage,
+  textlint,
+  textlint-rule-alex,
+}:
+
+buildNpmPackage rec {
+  pname = "textlint-rule-alex";
+  version = "5.0.0";
+
+  src = fetchFromGitHub {
+    owner = "textlint-rule";
+    repo = "textlint-rule-alex";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-1JoiUhiRXZWIyLAJXp5ZzFAa/NBCN79jYh5kMNbO0jI=";
+  };
+
+  npmDepsHash = "sha256-ovDDiOZ415ubyDqbLNggzoVuqUWsRlG3zlhRW6xU3SQ=";
+
+  passthru.tests = textlint.testPackages {
+    rule = textlint-rule-alex;
+    testFile = ./test.md;
+  };
+
+  meta = {
+    description = "Textlint rule for alex";
+    homepage = "https://github.com/textlint-rule/textlint-rule-alex";
+    changelog = "https://github.com/textlint-rule/textlint-rule-alex/releases/tag/${src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+  };
+}
diff --git a/pkgs/by-name/te/textlint-rule-alex/test.md b/pkgs/by-name/te/textlint-rule-alex/test.md
new file mode 100644
index 0000000000000..1e9915c7abde8
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-alex/test.md
@@ -0,0 +1 @@
+A message for this sentence will pop up.
diff --git a/pkgs/by-name/te/textlint-rule-common-misspellings/package.nix b/pkgs/by-name/te/textlint-rule-common-misspellings/package.nix
new file mode 100644
index 0000000000000..ad17e2a91092e
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-common-misspellings/package.nix
@@ -0,0 +1,135 @@
+{
+  lib,
+  stdenvNoCC,
+  fetchurl,
+  fetchFromGitHub,
+  fetchYarnDeps,
+  fixup-yarn-lock,
+  nodejs,
+  yarn,
+  textlint,
+  textlint-rule-common-misspellings,
+}:
+
+# there is no lock file in this package, but it is old and stable enough
+# so that we handle dependencies manually
+let
+  misspellings = stdenvNoCC.mkDerivation (finalAttrs: {
+    pname = "misspellings";
+    version = "1.1.0";
+
+    src = fetchurl {
+      url = "https://registry.npmjs.org/misspellings/-/misspellings-${finalAttrs.version}.tgz";
+      hash = "sha256-+4QxmGjoF0mBldN4XQMvoK8YDS4PBV9/c+/BPf4FbkM=";
+    };
+
+    dontBuild = true;
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out/lib/node_modules/misspellings
+      cp -r . $out/lib/node_modules/misspellings/
+
+      runHook postInstall
+    '';
+  });
+
+  textlint-rule-helper = stdenvNoCC.mkDerivation (finalAttrs: {
+    pname = "textlint-rule-helper";
+    version = "2.3.1";
+
+    src = fetchFromGitHub {
+      owner = "textlint";
+      repo = "textlint-rule-helper";
+      rev = "refs/tags/v${finalAttrs.version}";
+      hash = "sha256-SVeL/3KC/yazSGsmn5We8fJAuVqfcspzN7i2a4+EOlI=";
+    };
+
+    offlineCache = fetchYarnDeps {
+      yarnLock = "${finalAttrs.src}/yarn.lock";
+      hash = "sha256-UN56VuUHl7aS+QLON8ZROTSCGKKCn/8xuIkR46LyY+U=";
+    };
+
+    nativeBuildInputs = [
+      fixup-yarn-lock
+      nodejs
+      yarn
+    ];
+
+    configurePhase = ''
+      runHook preConfigure
+
+      export HOME=$(mktemp -d)
+      yarn config --offline set yarn-offline-mirror "$offlineCache"
+      fixup-yarn-lock yarn.lock
+      yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+      patchShebangs node_modules
+
+      runHook postConfigure
+    '';
+
+    buildPhase = ''
+      runHook preBuild
+
+      yarn --offline build
+
+      runHook postBuild
+    '';
+
+    installPhase = ''
+      runHook preInstall
+
+      yarn --offline --production install
+      rm -r test
+      mkdir -p $out/lib/node_modules/textlint-rule-helper
+      cp -r . $out/lib/node_modules/textlint-rule-helper/
+
+      runHook postInstall
+    '';
+  });
+in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "textlint-rule-common-misspellings";
+  version = "1.0.1";
+
+  src = fetchurl {
+    url = "https://registry.npmjs.org/textlint-rule-common-misspellings/-/textlint-rule-common-misspellings-${finalAttrs.version}.tgz";
+    hash = "sha256-5QVb5T2yGuunNhRQG5brJQyicRRbO8XewzjO2RzN0bI=";
+  };
+
+  dontBuild = true;
+
+  buildInputs = [
+    misspellings
+    textlint-rule-helper
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/lib/node_modules/textlint-rule-common-misspellings/node_modules/textlint-rule-helper
+    cp -r ${misspellings}/lib/node_modules/misspellings $out/lib/node_modules/textlint-rule-common-misspellings/node_modules/misspellings
+    cp -r ${textlint-rule-helper}/lib/node_modules/textlint-rule-helper/node_modules/* $out/lib/node_modules/textlint-rule-common-misspellings/node_modules
+    cp -r ${textlint-rule-helper}/lib/node_modules/textlint-rule-helper/lib $out/lib/node_modules/textlint-rule-common-misspellings/node_modules/textlint-rule-helper/lib
+    cp -r ${textlint-rule-helper}/lib/node_modules/textlint-rule-helper/package.json $out/lib/node_modules/textlint-rule-common-misspellings/node_modules/textlint-rule-helper/package.json
+
+    cp -r . $out/lib/node_modules/textlint-rule-common-misspellings/
+
+    runHook postInstall
+  '';
+
+  passthru.tests = textlint.testPackages {
+    rule = textlint-rule-common-misspellings;
+    testFile = ./test.md;
+  };
+
+  meta = {
+    description = "Textlint rule to check common misspellings";
+    homepage = "https://github.com/io-monad/textlint-rule-common-misspellings";
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ natsukium ];
+    mainProgram = "textlint-rule-common-misspellings";
+    platforms = textlint.meta.platforms;
+  };
+})
diff --git a/pkgs/by-name/te/textlint-rule-common-misspellings/test.md b/pkgs/by-name/te/textlint-rule-common-misspellings/test.md
new file mode 100644
index 0000000000000..b0e84d77f2bdc
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-common-misspellings/test.md
@@ -0,0 +1 @@
+`textlint-rule-common-misspellings` is an old and mature libary.
diff --git a/pkgs/by-name/te/textlint-rule-diacritics/package.nix b/pkgs/by-name/te/textlint-rule-diacritics/package.nix
new file mode 100644
index 0000000000000..95c11c40c30ce
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-diacritics/package.nix
@@ -0,0 +1,36 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildNpmPackage,
+  textlint,
+  textlint-rule-diacritics,
+}:
+
+buildNpmPackage rec {
+  pname = "textlint-rule-diacritics";
+  version = "1.0.0-unstable-2023-01-05";
+
+  src = fetchFromGitHub {
+    owner = "sapegin";
+    repo = "textlint-rule-diacritics";
+    rev = "07977d866aa6ce514bc6ed3a1087b2bb5869bfb4";
+    hash = "sha256-Zr+qWvgpLq3pzO4A7c+x4rTKkaSNO4t1gCiyJL3lkws=";
+  };
+
+  npmDepsHash = "sha256-bKA8aPVBYdzRPwCyFdEs3eWStJwswCZPVpsqGWwc42E=";
+
+  dontNpmBuild = true;
+
+  passthru.tests = textlint.testPackages {
+    rule = textlint-rule-diacritics;
+    testFile = ./test.md;
+  };
+
+  meta = {
+    description = "Textlint rule to check correct usage of diacritics";
+    homepage = "https://github.com/sapegin/textlint-rule-diacritics?tab=readme-ov-file";
+    changelog = "https://github.com/sapegin/textlint-rule-diacritics/releases/tag/${src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+  };
+}
diff --git a/pkgs/by-name/te/textlint-rule-diacritics/test.md b/pkgs/by-name/te/textlint-rule-diacritics/test.md
new file mode 100644
index 0000000000000..84e58d5457415
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-diacritics/test.md
@@ -0,0 +1 @@
+creme brulee
diff --git a/pkgs/by-name/te/textlint-rule-en-max-word-count/package.nix b/pkgs/by-name/te/textlint-rule-en-max-word-count/package.nix
new file mode 100644
index 0000000000000..893ed385dabb2
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-en-max-word-count/package.nix
@@ -0,0 +1,79 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchYarnDeps,
+  fixup-yarn-lock,
+  nodejs,
+  yarn,
+  textlint,
+  textlint-rule-en-max-word-count,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "textlint-rule-en-max-word-count";
+  version = "2.0.1";
+
+  src = fetchFromGitHub {
+    owner = "textlint-rule";
+    repo = "textlint-rule-en-max-word-count";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-ZZWN0PVHQBHcvJ53jDtD/6wLxBYmSHO7OXb5UQQAmyc=";
+  };
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${finalAttrs.src}/yarn.lock";
+    hash = "sha256-3sEbvIfSaMz9pJalEKs7y05OVh+cKDg9jfLYmVyS53M=";
+  };
+
+  nativeBuildInputs = [
+    fixup-yarn-lock
+    nodejs
+    yarn
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror "$offlineCache"
+    fixup-yarn-lock yarn.lock
+    yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+    patchShebangs node_modules
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    yarn --offline build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    yarn --offline --production install
+    rm -r test
+    mkdir -p $out/lib/node_modules/textlint-rule-en-max-word-count
+    cp -r . $out/lib/node_modules/textlint-rule-en-max-word-count/
+
+    runHook postInstall
+  '';
+
+  passthru.tests = textlint.testPackages {
+    rule = textlint-rule-en-max-word-count;
+    testFile = ./test.md;
+  };
+
+  meta = {
+    description = "Textlint rule that specify the maximum word count of a sentence";
+    homepage = "https://github.com/textlint-rule/textlint-rule-en-max-word-count";
+    changelog = "https://github.com/textlint-rule/textlint-rule-en-max-word-count/releases/tag/${finalAttrs.src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+    platforms = textlint.meta.platforms;
+  };
+})
diff --git a/pkgs/by-name/te/textlint-rule-en-max-word-count/test.md b/pkgs/by-name/te/textlint-rule-en-max-word-count/test.md
new file mode 100644
index 0000000000000..717096b6f3335
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-en-max-word-count/test.md
@@ -0,0 +1 @@
+Nix is a tool that takes a unique approach to package management and system configuration, learn how to make reproducible declarative and reliable systems, Nix builds packages in isolation from each other, this ensures that they are reproducible and don’t have undeclared dependencies, so if a package works on one machine, it will also work on another.
diff --git a/pkgs/by-name/te/textlint-rule-max-comma/package.nix b/pkgs/by-name/te/textlint-rule-max-comma/package.nix
new file mode 100644
index 0000000000000..5afea41bd8c76
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-max-comma/package.nix
@@ -0,0 +1,79 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchYarnDeps,
+  fixup-yarn-lock,
+  nodejs,
+  yarn,
+  textlint,
+  textlint-rule-max-comma,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "textlint-rule-max-comma";
+  version = "4.0.0";
+
+  src = fetchFromGitHub {
+    owner = "textlint-rule";
+    repo = "textlint-rule-max-comma";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-Sf7ehhEOcy1HdgnIra8darkucF6RebQQV/NfJtft/DA=";
+  };
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${finalAttrs.src}/yarn.lock";
+    hash = "sha256-jSsVQhvmc5mJ1gh6I5UaLvdz+HpaXI0fXFX0KCh01/c=";
+  };
+
+  nativeBuildInputs = [
+    fixup-yarn-lock
+    nodejs
+    yarn
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror "$offlineCache"
+    fixup-yarn-lock yarn.lock
+    yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+    patchShebangs node_modules
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    yarn --offline build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    yarn --offline --production install
+    rm -r test
+    mkdir -p $out/lib/node_modules/textlint-rule-max-comma
+    cp -r . $out/lib/node_modules/textlint-rule-max-comma/
+
+    runHook postInstall
+  '';
+
+  passthru.tests = textlint.testPackages {
+    rule = textlint-rule-max-comma;
+    testFile = ./test.md;
+  };
+
+  meta = {
+    description = "Textlint rule is that limit maximum comma(,) count of sentence";
+    homepage = "https://github.com/textlint-rule/textlint-rule-max-comma";
+    changelog = "https://github.com/textlint-rule/textlint-rule-max-comma/releases/tag/${finalAttrs.src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+    platforms = textlint.meta.platforms;
+  };
+})
diff --git a/pkgs/by-name/te/textlint-rule-max-comma/test.md b/pkgs/by-name/te/textlint-rule-max-comma/test.md
new file mode 100644
index 0000000000000..9223245ad977f
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-max-comma/test.md
@@ -0,0 +1 @@
+Nix, is a tool, that takes a unique approach to package management and system configuration, Learn how to make reproducible, declarative, and reliable systems.
diff --git a/pkgs/by-name/te/textlint-rule-no-start-duplicated-conjunction/package.nix b/pkgs/by-name/te/textlint-rule-no-start-duplicated-conjunction/package.nix
new file mode 100644
index 0000000000000..1390e9ac54b12
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-no-start-duplicated-conjunction/package.nix
@@ -0,0 +1,79 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchYarnDeps,
+  fixup-yarn-lock,
+  nodejs,
+  yarn,
+  textlint,
+  textlint-rule-no-start-duplicated-conjunction,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "textlint-rule-no-start-duplicated-conjunction";
+  version = "2.0.2";
+
+  src = fetchFromGitHub {
+    owner = "textlint-rule";
+    repo = "textlint-rule-no-start-duplicated-conjunction";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-DtuCkHy440j2VI/JDJGrW2M8alQ8pxllfIZfB4+9z3U=";
+  };
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${finalAttrs.src}/yarn.lock";
+    hash = "sha256-+3SJQgOG5bYSmNWbxsFNEEtKtCg8V04MIk6FhHwOZMo=";
+  };
+
+  nativeBuildInputs = [
+    fixup-yarn-lock
+    nodejs
+    yarn
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror "$offlineCache"
+    fixup-yarn-lock yarn.lock
+    yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+    patchShebangs node_modules
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    yarn --offline build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    yarn --offline --production install
+    rm -r test
+    mkdir -p $out/lib/node_modules/textlint-rule-no-start-duplicated-conjunction
+    cp -r . $out/lib/node_modules/textlint-rule-no-start-duplicated-conjunction/
+
+    runHook postInstall
+  '';
+
+  passthru.tests = textlint.testPackages {
+    rule = textlint-rule-no-start-duplicated-conjunction;
+    testFile = ./test.md;
+  };
+
+  meta = {
+    description = "Textlint rule that check no start with duplicated conjunction";
+    homepage = "https://github.com/textlint-rule/textlint-rule-no-start-duplicated-conjunction";
+    changelog = "https://github.com/textlint-rule/textlint-rule-no-start-duplicated-conjunction/releases/tag/${finalAttrs.src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+    platforms = textlint.meta.platforms;
+  };
+})
diff --git a/pkgs/by-name/te/textlint-rule-no-start-duplicated-conjunction/test.md b/pkgs/by-name/te/textlint-rule-no-start-duplicated-conjunction/test.md
new file mode 100644
index 0000000000000..41c8f499942e2
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-no-start-duplicated-conjunction/test.md
@@ -0,0 +1,3 @@
+But, A is ~.
+So, A is ~.
+But, A is ~.
diff --git a/pkgs/by-name/te/textlint-rule-period-in-list-item/package.nix b/pkgs/by-name/te/textlint-rule-period-in-list-item/package.nix
new file mode 100644
index 0000000000000..22397ccc42ff3
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-period-in-list-item/package.nix
@@ -0,0 +1,79 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchYarnDeps,
+  fixup-yarn-lock,
+  nodejs,
+  yarn,
+  textlint,
+  textlint-rule-period-in-list-item,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "textlint-rule-period-in-list-item";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "textlint-rule";
+    repo = "textlint-rule-period-in-list-item";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-hAkueH5q5s0kmvKZiOrCxtfmoHtHH0U8cVLhQ7eoqT0=";
+  };
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${finalAttrs.src}/yarn.lock";
+    hash = "sha256-4tVTR/Wpcr/nJrBhqV3AowwcUiFNiuohyKn6yQvorvc=";
+  };
+
+  nativeBuildInputs = [
+    fixup-yarn-lock
+    nodejs
+    yarn
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror "$offlineCache"
+    fixup-yarn-lock yarn.lock
+    yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+    patchShebangs node_modules
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    yarn --offline build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    yarn --offline --production install
+    rm -r test
+    mkdir -p $out/lib/node_modules/textlint-rule-period-in-list-item
+    cp -r . $out/lib/node_modules/textlint-rule-period-in-list-item/
+
+    runHook postInstall
+  '';
+
+  passthru.tests = textlint.testPackages {
+    rule = textlint-rule-period-in-list-item;
+    testFile = ./test.md;
+  };
+
+  meta = {
+    description = "Textlint rule that check with or without period in list item";
+    homepage = "https://github.com/textlint-rule/textlint-rule-period-in-list-item";
+    changelog = "https://github.com/textlint-rule/textlint-rule-period-in-list-item/releases/tag/${finalAttrs.src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+    platforms = textlint.meta.platforms;
+  };
+})
diff --git a/pkgs/by-name/te/textlint-rule-period-in-list-item/test.md b/pkgs/by-name/te/textlint-rule-period-in-list-item/test.md
new file mode 100644
index 0000000000000..69e2e71328746
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-period-in-list-item/test.md
@@ -0,0 +1 @@
+- item.
diff --git a/pkgs/by-name/te/textlint-rule-preset-ja-technical-writing/package.nix b/pkgs/by-name/te/textlint-rule-preset-ja-technical-writing/package.nix
new file mode 100644
index 0000000000000..2123a088feb63
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-preset-ja-technical-writing/package.nix
@@ -0,0 +1,72 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchYarnDeps,
+  fixup-yarn-lock,
+  nodejs,
+  yarn,
+  textlint,
+  textlint-rule-preset-ja-technical-writing,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "textlint-rule-preset-ja-technical-writing";
+  version = "10.0.1";
+
+  src = fetchFromGitHub {
+    owner = "textlint-ja";
+    repo = "textlint-rule-preset-ja-technical-writing";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-8KoP/JagMf2kFxz8hr9e0hJH7yPukRURb48v0nPkC/8=";
+  };
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${finalAttrs.src}/yarn.lock";
+    hash = "sha256-jm+8XK1E60D1AgYBnlKL0fkAWnn68z2PhCK7T/XbUgk=";
+  };
+
+  nativeBuildInputs = [
+    nodejs
+    fixup-yarn-lock
+    yarn
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror "$offlineCache"
+    fixup-yarn-lock yarn.lock
+    yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+    patchShebangs node_modules
+
+    runHook postConfigure
+  '';
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    yarn --offline --production install
+    mkdir -p $out/lib/node_modules/textlint-rule-preset-ja-technical-writing
+    cp -r . $out/lib/node_modules/textlint-rule-preset-ja-technical-writing
+
+    runHook postInstall
+  '';
+
+  passthru.tests = textlint.testPackages {
+    rule = textlint-rule-preset-ja-technical-writing;
+    testFile = ./test.md;
+  };
+
+  meta = {
+    description = "技術文書向けのtextlintルールプリセット";
+    homepage = "https://github.com/textlint-ja/textlint-rule-preset-ja-technical-writing";
+    changelog = "https://github.com/textlint-ja/textlint-rule-preset-ja-technical-writing/blob/${finalAttrs.src.rev}/CHANGELOG.md";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+    platforms = textlint.meta.platforms;
+  };
+})
diff --git a/pkgs/by-name/te/textlint-rule-preset-ja-technical-writing/test.md b/pkgs/by-name/te/textlint-rule-preset-ja-technical-writing/test.md
new file mode 100644
index 0000000000000..880cf56c5dd2d
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-preset-ja-technical-writing/test.md
@@ -0,0 +1 @@
+ニックスはいいぞ
diff --git a/pkgs/by-name/te/textlint-rule-stop-words/package.nix b/pkgs/by-name/te/textlint-rule-stop-words/package.nix
new file mode 100644
index 0000000000000..f2fa8ca901cc2
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-stop-words/package.nix
@@ -0,0 +1,36 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildNpmPackage,
+  textlint,
+  textlint-rule-stop-words,
+}:
+
+buildNpmPackage rec {
+  pname = "textlint-rule-stop-words";
+  version = "5.0.0";
+
+  src = fetchFromGitHub {
+    owner = "sapegin";
+    repo = "textlint-rule-stop-words";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-e9jTbDULOs0DwtT9UZp7k5+RR5Ab/x/sizIvs1MrmZs=";
+  };
+
+  npmDepsHash = "sha256-t9PPHFIiY4vw0ocw6nMuaeYuYWxbc1Pzo0R6bqIsHeI=";
+
+  dontNpmBuild = true;
+
+  passthru.tests = textlint.testPackages {
+    rule = textlint-rule-stop-words;
+    testFile = ./test.md;
+  };
+
+  meta = {
+    description = "Textlint rule to find filler words, buzzwords and clichés";
+    homepage = "https://github.com/sapegin/textlint-rule-stop-words";
+    changelog = "https://github.com/sapegin/textlint-rule-stop-words/releases/tag/${src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+  };
+}
diff --git a/pkgs/by-name/te/textlint-rule-stop-words/test.md b/pkgs/by-name/te/textlint-rule-stop-words/test.md
new file mode 100644
index 0000000000000..7cd8fc64f6259
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-stop-words/test.md
@@ -0,0 +1 @@
+and etc.
diff --git a/pkgs/by-name/te/textlint-rule-terminology/package.nix b/pkgs/by-name/te/textlint-rule-terminology/package.nix
new file mode 100644
index 0000000000000..ac6ab2dd8ff06
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-terminology/package.nix
@@ -0,0 +1,36 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildNpmPackage,
+  textlint,
+  textlint-rule-terminology,
+}:
+
+buildNpmPackage rec {
+  pname = "textlint-rule-terminology";
+  version = "5.0.0";
+
+  src = fetchFromGitHub {
+    owner = "sapegin";
+    repo = "textlint-rule-terminology";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-/NuKZSugizP4b2LFNqPrTvoXNE4D1sytU2B7T40ZASQ=";
+  };
+
+  npmDepsHash = "sha256-FQr7E6ZSJxj/ide+3JJwc27x15L1bAIAlPnMl8hdQ8w=";
+
+  dontNpmBuild = true;
+
+  passthru.tests = textlint.testPackages {
+    rule = textlint-rule-terminology;
+    testFile = ./test.md;
+  };
+
+  meta = {
+    description = "Textlint rule to check correct terms spelling";
+    homepage = "https://github.com/sapegin/textlint-rule-terminology";
+    changelog = "https://github.com/sapegin/textlint-rule-terminology/releases/tag/${src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+  };
+}
diff --git a/pkgs/by-name/te/textlint-rule-terminology/test.md b/pkgs/by-name/te/textlint-rule-terminology/test.md
new file mode 100644
index 0000000000000..7c64883b9352d
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-terminology/test.md
@@ -0,0 +1 @@
+Javascript
diff --git a/pkgs/by-name/te/textlint-rule-unexpanded-acronym/package.nix b/pkgs/by-name/te/textlint-rule-unexpanded-acronym/package.nix
new file mode 100644
index 0000000000000..a0a7cc87bff04
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-unexpanded-acronym/package.nix
@@ -0,0 +1,79 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchYarnDeps,
+  fixup-yarn-lock,
+  nodejs,
+  yarn,
+  textlint,
+  textlint-rule-unexpanded-acronym,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "textlint-rule-unexpanded-acronym";
+  version = "1.2.4";
+
+  src = fetchFromGitHub {
+    owner = "textlint-rule";
+    repo = "textlint-rule-unexpanded-acronym";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-oUOofYfdENRQnwmBDADQgA1uGtRirqqGg8T+QA0LCXY=";
+  };
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${finalAttrs.src}/yarn.lock";
+    hash = "sha256-90ZONfn7CnrCsYGliF+c7Ss+SgVmaCYnaVdq3s1HdJU=";
+  };
+
+  nativeBuildInputs = [
+    fixup-yarn-lock
+    nodejs
+    yarn
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror "$offlineCache"
+    fixup-yarn-lock yarn.lock
+    yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+    patchShebangs node_modules
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    yarn --offline build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    yarn --offline --production install
+    rm -r test
+    mkdir -p $out/lib/node_modules/textlint-rule-unexpanded-acronym
+    cp -r . $out/lib/node_modules/textlint-rule-unexpanded-acronym/
+
+    runHook postInstall
+  '';
+
+  passthru.tests = textlint.testPackages {
+    rule = textlint-rule-unexpanded-acronym;
+    testFile = ./test.md;
+  };
+
+  meta = {
+    description = "Textlint rule that check unexpanded acronym";
+    homepage = "https://github.com/textlint-rule/textlint-rule-unexpanded-acronym";
+    changelog = "https://github.com/textlint-rule/textlint-rule-unexpanded-acronym/releases/tag/${finalAttrs.src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+    platforms = textlint.meta.platforms;
+  };
+})
diff --git a/pkgs/by-name/te/textlint-rule-unexpanded-acronym/test.md b/pkgs/by-name/te/textlint-rule-unexpanded-acronym/test.md
new file mode 100644
index 0000000000000..06b7ca62cea5e
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-unexpanded-acronym/test.md
@@ -0,0 +1 @@
+Passing an expression `expr` that evaluates to a store path to any built-in function which reads from the filesystem constitutes IFD.
diff --git a/pkgs/by-name/te/textlint-rule-write-good/package.nix b/pkgs/by-name/te/textlint-rule-write-good/package.nix
new file mode 100644
index 0000000000000..feec3ced6ea9f
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-write-good/package.nix
@@ -0,0 +1,79 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchYarnDeps,
+  fixup-yarn-lock,
+  nodejs,
+  yarn,
+  textlint,
+  textlint-rule-write-good,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "textlint-rule-write-good";
+  version = "2.0.0-unstable-2024-05-02";
+
+  src = fetchFromGitHub {
+    owner = "textlint-rule";
+    repo = "textlint-rule-write-good";
+    rev = "586afa0989ae9ac8a93436f58a24d99afe1cac21";
+    hash = "sha256-ghEmWkwGVvLMy6Gf7IrariDRNfuNBc9EVOQz5w38g0I=";
+  };
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${finalAttrs.src}/yarn.lock";
+    hash = "sha256-J02MoKPEYtehQMSaOR1Ytfme1ffgHbQcNnEENeTaxaA=";
+  };
+
+  nativeBuildInputs = [
+    fixup-yarn-lock
+    nodejs
+    yarn
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror "$offlineCache"
+    fixup-yarn-lock yarn.lock
+    yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+    patchShebangs node_modules
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    yarn --offline build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    yarn --offline --production install
+    rm -r test
+    mkdir -p $out/lib/node_modules/textlint-rule-write-good
+    cp -r . $out/lib/node_modules/textlint-rule-write-good/
+
+    runHook postInstall
+  '';
+
+  passthru.tests = textlint.testPackages {
+    rule = textlint-rule-write-good;
+    testFile = ./test.md;
+  };
+
+  meta = {
+    description = "Textlint rule to check your English styles with write-good";
+    homepage = "https://github.com/textlint-rule/textlint-rule-write-good";
+    changelog = "https://github.com/textlint-rule/textlint-rule-write-good/releases/tag/${finalAttrs.src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+    platforms = textlint.meta.platforms;
+  };
+})
diff --git a/pkgs/by-name/te/textlint-rule-write-good/test.md b/pkgs/by-name/te/textlint-rule-write-good/test.md
new file mode 100644
index 0000000000000..6615a6f67a8fe
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-write-good/test.md
@@ -0,0 +1 @@
+So the cat was stolen.
diff --git a/pkgs/by-name/te/textlint/package.nix b/pkgs/by-name/te/textlint/package.nix
new file mode 100644
index 0000000000000..4a4eb75c50554
--- /dev/null
+++ b/pkgs/by-name/te/textlint/package.nix
@@ -0,0 +1,136 @@
+{
+  lib,
+  buildNpmPackage,
+  fetchFromGitHub,
+  autoconf,
+  automake,
+  makeWrapper,
+  runCommand,
+  textlint,
+  textlint-plugin-latex2e,
+  textlint-rule-abbr-within-parentheses,
+  textlint-rule-alex,
+  textlint-rule-common-misspellings,
+  textlint-rule-diacritics,
+  textlint-rule-en-max-word-count,
+  textlint-rule-max-comma,
+  textlint-rule-no-start-duplicated-conjunction,
+  textlint-rule-period-in-list-item,
+  textlint-rule-preset-ja-technical-writing,
+  textlint-rule-stop-words,
+  textlint-rule-terminology,
+  textlint-rule-unexpanded-acronym,
+  textlint-rule-write-good,
+}:
+
+buildNpmPackage rec {
+  pname = "textlint";
+  version = "14.0.4";
+
+  src = fetchFromGitHub {
+    owner = "textlint";
+    repo = "textlint";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-u8BRzfvpZ8xggJwH8lsu+hqsql6s4SZVlkFzLBe6zvE=";
+  };
+
+  patches = [
+    # this package uses lerna and requires building many workspaces.
+    # this patch removes unnecessary workspaces,
+    # reducing package size and build time.
+    ./remove-workspaces.patch
+  ];
+
+  npmDepsHash = "sha256-rmRtCP51rt/wd/ef0iwMMI6eCGF1KNN7kJqomitMJ+w=";
+
+  nativeBuildInputs = [
+    autoconf
+    automake
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{bin,lib}
+
+    npm prune --omit=dev --no-save
+    rm -r node_modules/.cache
+    rm -r packages/textlint-{scripts,tester}
+    rm -r packages/@textlint/*/test
+
+    cp -r node_modules $out/lib
+    cp -r packages $out/lib
+    ln -s $out/lib/node_modules/textlint/bin/textlint.js $out/bin/textlint
+
+    runHook postInstall
+  '';
+
+  passthru = {
+    withPackages =
+      ps:
+      runCommand "textlint-with-packages" { nativeBuildInputs = [ makeWrapper ]; } ''
+        makeWrapper ${textlint}/bin/textlint $out/bin/textlint \
+          --set NODE_PATH ${lib.makeSearchPath "lib/node_modules" ps}
+      '';
+
+    testPackages =
+      {
+        rule,
+        testFile,
+        pname ? rule.pname,
+        plugin ? null,
+      }:
+      let
+        ruleName = lib.removePrefix "textlint-rule-" rule.pname;
+        isPreset = lib.hasPrefix "preset-" ruleName;
+        ruleName' = lib.removePrefix "preset-" ruleName;
+        pluginName = lib.removePrefix "textlint-plugin-" plugin.pname;
+        args =
+          "${testFile} ${if isPreset then "--preset" else "--rule"} ${ruleName'}"
+          + lib.optionalString (plugin != null) " --plugin ${pluginName}";
+      in
+      {
+        "${pname}-test" =
+          runCommand "${pname}-test"
+            {
+              nativeBuildInputs = [
+                (textlint.withPackages [
+                  rule
+                  plugin
+                ])
+              ];
+            }
+            ''
+              grep ${ruleName'} <(textlint ${args}) > $out
+            '';
+      };
+
+    tests = lib.mergeAttrsList (
+      map (package: package.tests) [
+        textlint-plugin-latex2e
+        textlint-rule-abbr-within-parentheses
+        textlint-rule-alex
+        textlint-rule-common-misspellings
+        textlint-rule-diacritics
+        textlint-rule-en-max-word-count
+        textlint-rule-max-comma
+        textlint-rule-no-start-duplicated-conjunction
+        textlint-rule-period-in-list-item
+        textlint-rule-preset-ja-technical-writing
+        textlint-rule-stop-words
+        textlint-rule-terminology
+        textlint-rule-unexpanded-acronym
+        textlint-rule-write-good
+      ]
+    );
+  };
+
+  meta = {
+    description = "Pluggable natural language linter for text and markdown";
+    homepage = "https://github.com/textlint/textlint";
+    changelog = "https://github.com/textlint/textlint/blob/${src.rev}/CHANGELOG.md";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+    mainProgram = "textlint";
+  };
+}
diff --git a/pkgs/by-name/te/textlint/remove-workspaces.patch b/pkgs/by-name/te/textlint/remove-workspaces.patch
new file mode 100644
index 0000000000000..3e949e7906dee
--- /dev/null
+++ b/pkgs/by-name/te/textlint/remove-workspaces.patch
@@ -0,0 +1,19 @@
+diff --git a/package.json b/package.json
+index 9dd7fdc6..c5e74f88 100644
+--- a/package.json
++++ b/package.json
+@@ -56,12 +56,8 @@
+     "trailingComma": "none"
+   },
+   "workspaces": [
+-    "packages/*",
+-    "examples/*",
+-    "packages/@textlint/*",
+-    "packages/textlint-scripts/examples/*",
+-    "test/*",
+-    "website"
++    "packages/textlint",
++    "packages/@textlint/*"
+   ],
+   "packageManager": "npm@9.9.2"
+ }
diff --git a/pkgs/by-name/te/textpieces/Cargo.lock b/pkgs/by-name/te/textpieces/Cargo.lock
new file mode 100644
index 0000000000000..8a78acf69098a
--- /dev/null
+++ b/pkgs/by-name/te/textpieces/Cargo.lock
@@ -0,0 +1,2512 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "addr2line"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.85"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "27a4bd113ab6da4cd0f521068a6e2ee1065eab54107266a11835d02c8ec86a37"
+
+[[package]]
+name = "arrayvec"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
+
+[[package]]
+name = "async-channel"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a"
+dependencies = [
+ "concurrent-queue",
+ "event-listener-strategy 0.5.2",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-executor"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b10202063978b3351199d68f8b22c4e47e4b1b822f8d43fd862d5ea8c006b29a"
+dependencies = [
+ "async-task",
+ "concurrent-queue",
+ "fastrand",
+ "futures-lite",
+ "slab",
+]
+
+[[package]]
+name = "async-fs"
+version = "2.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a"
+dependencies = [
+ "async-lock",
+ "blocking",
+ "futures-lite",
+]
+
+[[package]]
+name = "async-io"
+version = "2.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884"
+dependencies = [
+ "async-lock",
+ "cfg-if 1.0.0",
+ "concurrent-queue",
+ "futures-io",
+ "futures-lite",
+ "parking",
+ "polling",
+ "rustix",
+ "slab",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "async-lock"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
+dependencies = [
+ "event-listener 4.0.3",
+ "event-listener-strategy 0.4.0",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-net"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b948000fad4873c1c9339d60f2623323a0cfd3816e5181033c6a5cb68b2accf7"
+dependencies = [
+ "async-io",
+ "blocking",
+ "futures-lite",
+]
+
+[[package]]
+name = "async-process"
+version = "2.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a53fc6301894e04a92cb2584fedde80cb25ba8e02d9dc39d4a87d036e22f397d"
+dependencies = [
+ "async-channel",
+ "async-io",
+ "async-lock",
+ "async-signal",
+ "async-task",
+ "blocking",
+ "cfg-if 1.0.0",
+ "event-listener 5.3.0",
+ "futures-lite",
+ "rustix",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "async-signal"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "afe66191c335039c7bb78f99dc7520b0cbb166b3a1cb33a03f53d8a1c6f2afda"
+dependencies = [
+ "async-io",
+ "async-lock",
+ "atomic-waker",
+ "cfg-if 1.0.0",
+ "futures-core",
+ "futures-io",
+ "rustix",
+ "signal-hook-registry",
+ "slab",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "async-task"
+version = "4.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
+
+[[package]]
+name = "atomic-waker"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
+
+[[package]]
+name = "autocfg"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
+
+[[package]]
+name = "backtrace"
+version = "0.3.71"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if 1.0.0",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+ "serde",
+]
+
+[[package]]
+name = "base64"
+version = "0.22.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
+
+[[package]]
+name = "bincode"
+version = "1.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "bit-set"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
+dependencies = [
+ "bit-vec",
+]
+
+[[package]]
+name = "bit-vec"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
+
+[[package]]
+name = "block"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
+
+[[package]]
+name = "block-buffer"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "blocking"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "495f7104e962b7356f0aeb34247aca1fe7d2e783b346582db7f2904cb5717e88"
+dependencies = [
+ "async-channel",
+ "async-lock",
+ "async-task",
+ "futures-io",
+ "futures-lite",
+ "piper",
+]
+
+[[package]]
+name = "cairo-rs"
+version = "0.19.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2ac2a4d0e69036cf0062976f6efcba1aaee3e448594e6514bb2ddf87acce562"
+dependencies = [
+ "bitflags 2.5.0",
+ "cairo-sys-rs",
+ "glib",
+ "libc",
+ "thiserror",
+]
+
+[[package]]
+name = "cairo-sys-rs"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd3bb3119664efbd78b5e6c93957447944f16bdbced84c17a9f41c7829b81e64"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.97"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "099a5357d84c4c61eb35fc8eafa9a79a902c2f76911e5747ced4e032edd8d9b4"
+
+[[package]]
+name = "cfg-expr"
+version = "0.15.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02"
+dependencies = [
+ "smallvec",
+ "target-lexicon",
+]
+
+[[package]]
+name = "cfg-if"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "concurrent-queue"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+
+[[package]]
+name = "crossmist"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f69c418587209b3bbd1baa976310e92522482d7f11d45f08c2dce683e01275a"
+dependencies = [
+ "async-fs",
+ "async-io",
+ "crossmist-derive",
+ "futures-lite",
+ "lazy_static",
+ "nix",
+ "paste",
+ "windows",
+]
+
+[[package]]
+name = "crossmist-derive"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b9f4ece97914c30564a7ae10f9adf1cb74ac77d3ae83a6b677a4a1d2c3ffa8c"
+dependencies = [
+ "darling",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "crypto-common"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+dependencies = [
+ "generic-array",
+ "typenum",
+]
+
+[[package]]
+name = "ctor"
+version = "0.1.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096"
+dependencies = [
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "darling"
+version = "0.13.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.13.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.13.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835"
+dependencies = [
+ "darling_core",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "deluxe"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ed332aaf752b459088acf3dd4eca323e3ef4b83c70a84ca48fb0ec5305f1488"
+dependencies = [
+ "deluxe-core",
+ "deluxe-macros",
+ "once_cell",
+ "proc-macro2",
+ "syn 2.0.64",
+]
+
+[[package]]
+name = "deluxe-core"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eddada51c8576df9d6a8450c351ff63042b092c9458b8ac7d20f89cbd0ffd313"
+dependencies = [
+ "arrayvec",
+ "proc-macro2",
+ "quote",
+ "strsim",
+ "syn 2.0.64",
+]
+
+[[package]]
+name = "deluxe-macros"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f87546d9c837f0b7557e47b8bd6eae52c3c223141b76aa233c345c9ab41d9117"
+dependencies = [
+ "deluxe-core",
+ "heck 0.4.1",
+ "if_chain",
+ "proc-macro-crate 1.3.1",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.64",
+]
+
+[[package]]
+name = "derive-debug"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e53ef7e1cf756fd5a8e74b9a0a9504ec446eddde86c3063a76ff26a13b7773b1"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "digest"
+version = "0.10.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+dependencies = [
+ "block-buffer",
+ "crypto-common",
+]
+
+[[package]]
+name = "dirs"
+version = "5.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
+dependencies = [
+ "dirs-sys",
+]
+
+[[package]]
+name = "dirs-sys"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
+dependencies = [
+ "libc",
+ "option-ext",
+ "redox_users",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "either"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b"
+
+[[package]]
+name = "enum-iterator"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c280b9e6b3ae19e152d8e31cf47f18389781e119d4013a2a2bb0180e5facc635"
+dependencies = [
+ "enum-iterator-derive",
+]
+
+[[package]]
+name = "enum-iterator-derive"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1ab991c1362ac86c61ab6f556cff143daa22e5a15e4e189df818b2fd19fe65b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.64",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "event-listener"
+version = "4.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener"
+version = "5.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d9944b8ca13534cdfb2800775f8dd4902ff3fc75a50101466decadfdf322a24"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
+dependencies = [
+ "event-listener 4.0.3",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1"
+dependencies = [
+ "event-listener 5.3.0",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "fancy-regex"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "531e46835a22af56d1e3b66f04844bed63158bc094a628bec1d321d9b4c44bf2"
+dependencies = [
+ "bit-set",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
+
+[[package]]
+name = "field-offset"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f"
+dependencies = [
+ "memoffset",
+ "rustc_version",
+]
+
+[[package]]
+name = "findshlibs"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "40b9e59cd0f7e0806cca4be089683ecb6434e602038df21fe6bf6711b2f07f64"
+dependencies = [
+ "cc",
+ "lazy_static",
+ "libc",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "fuchsia-zircon"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
+dependencies = [
+ "bitflags 1.3.2",
+ "fuchsia-zircon-sys",
+]
+
+[[package]]
+name = "fuchsia-zircon-sys"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
+
+[[package]]
+name = "futures"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+
+[[package]]
+name = "futures-lite"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
+dependencies = [
+ "fastrand",
+ "futures-core",
+ "futures-io",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "futures-macro"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.64",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
+
+[[package]]
+name = "futures-task"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+
+[[package]]
+name = "futures-util"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "gdk-pixbuf"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6a23f8a0b5090494fd04924662d463f8386cc678dd3915015a838c1a3679b92"
+dependencies = [
+ "gdk-pixbuf-sys",
+ "gio",
+ "glib",
+ "libc",
+]
+
+[[package]]
+name = "gdk-pixbuf-sys"
+version = "0.19.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fdbf021f8b9d19e30fb9ea6d6e5f2b6a712fe4645417c69f86f6ff1e1444a8f"
+dependencies = [
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "gdk4"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db265c9dd42d6a371e09e52deab3a84808427198b86ac792d75fd35c07990a07"
+dependencies = [
+ "cairo-rs",
+ "gdk-pixbuf",
+ "gdk4-sys",
+ "gio",
+ "glib",
+ "libc",
+ "pango",
+]
+
+[[package]]
+name = "gdk4-sys"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9418fb4e8a67074919fe7604429c45aa74eb9df82e7ca529767c6d4e9dc66dd"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "pkg-config",
+ "system-deps",
+]
+
+[[package]]
+name = "generic-array"
+version = "0.14.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+dependencies = [
+ "typenum",
+ "version_check",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+ "wasi 0.9.0+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
+dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "gettext-rs"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e49ea8a8fad198aaa1f9655a2524b64b70eb06b2f3ff37da407566c93054f364"
+dependencies = [
+ "gettext-sys",
+ "locale_config",
+]
+
+[[package]]
+name = "gettext-sys"
+version = "0.21.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c63ce2e00f56a206778276704bbe38564c8695249fdc8f354b4ef71c57c3839d"
+dependencies = [
+ "cc",
+ "temp-dir",
+]
+
+[[package]]
+name = "gimli"
+version = "0.28.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
+
+[[package]]
+name = "gio"
+version = "0.19.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be548be810e45dd31d3bbb89c6210980bb7af9bca3ea1292b5f16b75f8e394a7"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-util",
+ "gio-sys",
+ "glib",
+ "libc",
+ "pin-project-lite",
+ "smallvec",
+ "thiserror",
+]
+
+[[package]]
+name = "gio-sys"
+version = "0.19.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4bdbef451b0f0361e7f762987cc6bebd5facab1d535e85a3cf1115dfb08db40"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "glib"
+version = "0.19.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0116c428e4841cab183a32a71b900fd6712194c20f9c424f01d2c016c96bd23"
+dependencies = [
+ "bitflags 2.5.0",
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-task",
+ "futures-util",
+ "gio-sys",
+ "glib-macros",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "memchr",
+ "smallvec",
+ "thiserror",
+]
+
+[[package]]
+name = "glib-macros"
+version = "0.19.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ed782fa3e949c31146671da6e7a227a5e7d354660df1db6d0aac4974dc82a3c"
+dependencies = [
+ "heck 0.5.0",
+ "proc-macro-crate 3.1.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.64",
+]
+
+[[package]]
+name = "glib-sys"
+version = "0.19.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "767d23ead9bbdfcbb1c2242c155c8128a7d13dde7bf69c176f809546135e2282"
+dependencies = [
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "gobject-sys"
+version = "0.19.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3787b0bfacca12bb25f8f822b0dbee9f7e4a86e6469a29976d332d2c14c945b"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "graphene-rs"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99e4d388e96c5f29e2b2f67045d229ddf826d0a8d6d282f94ed3b34452222c91"
+dependencies = [
+ "glib",
+ "graphene-sys",
+ "libc",
+]
+
+[[package]]
+name = "graphene-sys"
+version = "0.19.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a60e7381afdd7be43bd10a89d3b6741d162aabbca3a8db73505afb6a3aea59d"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "pkg-config",
+ "system-deps",
+]
+
+[[package]]
+name = "gsettings-macro"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2f4ea0f496faeabbfdd1f5d9c39d9b9f7cff83f52d2cbbdec3c94b0e51b3f2f3"
+dependencies = [
+ "deluxe",
+ "heck 0.4.1",
+ "proc-macro-error",
+ "proc-macro2",
+ "quick-xml",
+ "quote",
+ "serde",
+ "syn 2.0.64",
+]
+
+[[package]]
+name = "gsk4"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7563884bf6939f4468e5d94654945bdd9afcaf8c3ba4c5dd17b5342b747221be"
+dependencies = [
+ "cairo-rs",
+ "gdk4",
+ "glib",
+ "graphene-rs",
+ "gsk4-sys",
+ "libc",
+ "pango",
+]
+
+[[package]]
+name = "gsk4-sys"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23024bf2636c38bbd1f822f58acc9d1c25b28da896ff0f291a1a232d4272b3dc"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk4-sys",
+ "glib-sys",
+ "gobject-sys",
+ "graphene-sys",
+ "libc",
+ "pango-sys",
+ "system-deps",
+]
+
+[[package]]
+name = "gtk4"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b04e11319b08af11358ab543105a9e49b0c491faca35e2b8e7e36bfba8b671ab"
+dependencies = [
+ "cairo-rs",
+ "field-offset",
+ "futures-channel",
+ "gdk-pixbuf",
+ "gdk4",
+ "gio",
+ "glib",
+ "graphene-rs",
+ "gsk4",
+ "gtk4-macros",
+ "gtk4-sys",
+ "libc",
+ "pango",
+]
+
+[[package]]
+name = "gtk4-macros"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec655a7ef88d8ce9592899deb8b2d0fa50bab1e6dd69182deb764e643c522408"
+dependencies = [
+ "proc-macro-crate 3.1.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.64",
+]
+
+[[package]]
+name = "gtk4-sys"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c8aa86b7f85ea71d66ea88c1d4bae1cfacf51ca4856274565133838d77e57b5"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gdk4-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "graphene-sys",
+ "gsk4-sys",
+ "libc",
+ "pango-sys",
+ "system-deps",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.14.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
+
+[[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+
+[[package]]
+name = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
+[[package]]
+name = "html-escape"
+version = "0.2.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d1ad449764d627e22bfd7cd5e8868264fc9236e07c752972b4080cd351cb476"
+dependencies = [
+ "utf8-width",
+]
+
+[[package]]
+name = "ident_case"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
+[[package]]
+name = "if_chain"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed"
+
+[[package]]
+name = "indexmap"
+version = "2.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
+dependencies = [
+ "equivalent",
+ "hashbrown",
+]
+
+[[package]]
+name = "iovec"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "ipc-channel"
+version = "0.16.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "342d636452fbc2895574e0b319b23c014fd01c9ed71dcd87f6a4a8e2f948db4b"
+dependencies = [
+ "bincode",
+ "crossbeam-channel",
+ "fnv",
+ "lazy_static",
+ "libc",
+ "mio",
+ "rand",
+ "serde",
+ "tempfile",
+ "uuid",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "itertools"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
+
+[[package]]
+name = "kernel32-sys"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
+dependencies = [
+ "winapi 0.2.8",
+ "winapi-build",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libadwaita"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91b4990248b9e1ec5e72094a2ccaea70ec3809f88f6fd52192f2af306b87c5d9"
+dependencies = [
+ "gdk-pixbuf",
+ "gdk4",
+ "gio",
+ "glib",
+ "gtk4",
+ "libadwaita-sys",
+ "libc",
+ "pango",
+]
+
+[[package]]
+name = "libadwaita-sys"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23a748e4e92be1265cd9e93d569c0b5dfc7814107985aa6743d670ab281ea1a8"
+dependencies = [
+ "gdk4-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "gtk4-sys",
+ "libc",
+ "pango-sys",
+ "system-deps",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.155"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
+
+[[package]]
+name = "libredox"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
+dependencies = [
+ "bitflags 2.5.0",
+ "libc",
+]
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
+
+[[package]]
+name = "locale_config"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934"
+dependencies = [
+ "lazy_static",
+ "objc",
+ "objc-foundation",
+ "regex",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "log"
+version = "0.4.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
+
+[[package]]
+name = "malloc_buf"
+version = "0.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "md5"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
+
+[[package]]
+name = "memchr"
+version = "2.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
+
+[[package]]
+name = "memoffset"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "miniz_oxide"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae"
+dependencies = [
+ "adler",
+]
+
+[[package]]
+name = "mio"
+version = "0.6.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4"
+dependencies = [
+ "cfg-if 0.1.10",
+ "fuchsia-zircon",
+ "fuchsia-zircon-sys",
+ "iovec",
+ "kernel32-sys",
+ "libc",
+ "log",
+ "miow",
+ "net2",
+ "slab",
+ "winapi 0.2.8",
+]
+
+[[package]]
+name = "miow"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d"
+dependencies = [
+ "kernel32-sys",
+ "net2",
+ "winapi 0.2.8",
+ "ws2_32-sys",
+]
+
+[[package]]
+name = "net2"
+version = "0.2.39"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b13b648036a2339d06de780866fbdfda0dde886de7b3af2ddeba8b14f4ee34ac"
+dependencies = [
+ "cfg-if 0.1.10",
+ "libc",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "nix"
+version = "0.27.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
+dependencies = [
+ "bitflags 2.5.0",
+ "cfg-if 1.0.0",
+ "libc",
+ "memoffset",
+]
+
+[[package]]
+name = "nu-ansi-term"
+version = "0.46.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
+dependencies = [
+ "overload",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "objc"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
+dependencies = [
+ "malloc_buf",
+]
+
+[[package]]
+name = "objc-foundation"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
+dependencies = [
+ "block",
+ "objc",
+ "objc_id",
+]
+
+[[package]]
+name = "objc_id"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
+dependencies = [
+ "objc",
+]
+
+[[package]]
+name = "object"
+version = "0.32.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "option-ext"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
+
+[[package]]
+name = "overload"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
+[[package]]
+name = "pango"
+version = "0.19.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "504ce6e805439ea2c6791168fe7ef8e3da0c1b2ef82c44bc450dbc330592920d"
+dependencies = [
+ "gio",
+ "glib",
+ "libc",
+ "pango-sys",
+]
+
+[[package]]
+name = "pango-sys"
+version = "0.19.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4829555bdbb83692ddeaf5a6927fb2d025c8131e5ecaa4f7619fff6985d3505"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "parking"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
+
+[[package]]
+name = "paste"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "piper"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "464db0c665917b13ebb5d453ccdec4add5658ee1adc7affc7677615356a8afaf"
+dependencies = [
+ "atomic-waker",
+ "fastrand",
+ "futures-io",
+]
+
+[[package]]
+name = "pkg-config"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+
+[[package]]
+name = "polling"
+version = "3.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "645493cf344456ef24219d02a768cf1fb92ddf8c92161679ae3d91b91a637be3"
+dependencies = [
+ "cfg-if 1.0.0",
+ "concurrent-queue",
+ "hermit-abi",
+ "pin-project-lite",
+ "rustix",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "pollster"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22686f4785f02a4fcc856d3b3bb19bf6c8160d103f7a99cc258bddd0251dc7f2"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "proc-macro-crate"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
+dependencies = [
+ "once_cell",
+ "toml_edit 0.19.15",
+]
+
+[[package]]
+name = "proc-macro-crate"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
+dependencies = [
+ "toml_edit 0.21.1",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.82"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "procspawn"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d59f115c63b1eed96002d9df8dfe022ba07e0d70b42890d34bc34f4342bae6b"
+dependencies = [
+ "backtrace",
+ "ctor",
+ "findshlibs",
+ "ipc-channel",
+ "libc",
+ "serde",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "quick-xml"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
+dependencies = [
+ "memchr",
+ "serde",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom 0.1.16",
+ "libc",
+ "rand_chacha",
+ "rand_core",
+ "rand_hc",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+dependencies = [
+ "getrandom 0.1.16",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891"
+dependencies = [
+ "getrandom 0.2.15",
+ "libredox",
+ "thiserror",
+]
+
+[[package]]
+name = "regex"
+version = "1.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "rustix"
+version = "0.38.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
+dependencies = [
+ "bitflags 2.5.0",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "ryu"
+version = "1.0.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "semver"
+version = "1.0.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
+
+[[package]]
+name = "serde"
+version = "1.0.202"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.202"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.64",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.117"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_yaml"
+version = "0.9.34+deprecated"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47"
+dependencies = [
+ "indexmap",
+ "itoa",
+ "ryu",
+ "serde",
+ "unsafe-libyaml",
+]
+
+[[package]]
+name = "sha1"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
+dependencies = [
+ "cfg-if 1.0.0",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sha2"
+version = "0.10.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+dependencies = [
+ "cfg-if 1.0.0",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sharded-slab"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
+
+[[package]]
+name = "smol"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e635339259e51ef85ac7aa29a1cd991b957047507288697a690e80ab97d07cad"
+dependencies = [
+ "async-channel",
+ "async-executor",
+ "async-fs",
+ "async-io",
+ "async-lock",
+ "async-net",
+ "async-process",
+ "blocking",
+ "futures-lite",
+]
+
+[[package]]
+name = "sourceview5"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f0bf70f2f1ac4624af22056f9c4cf58dccff73dafc7207b46fbd3df7b57410f"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "gdk-pixbuf",
+ "gdk4",
+ "gio",
+ "glib",
+ "gtk4",
+ "libc",
+ "pango",
+ "sourceview5-sys",
+]
+
+[[package]]
+name = "sourceview5-sys"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eac236ad7ce6dad2b819ced8b68b5a1cf4d968aa301cb9a7692470eb21f657be"
+dependencies = [
+ "gdk-pixbuf-sys",
+ "gdk4-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "gtk4-sys",
+ "libc",
+ "pango-sys",
+ "system-deps",
+]
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.64"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ad3dee41f36859875573074334c200d1add8e4a87bb37113ebd31d926b7b11f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "system-deps"
+version = "6.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349"
+dependencies = [
+ "cfg-expr",
+ "heck 0.5.0",
+ "pkg-config",
+ "toml",
+ "version-compare",
+]
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
+
+[[package]]
+name = "temp-dir"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f227968ec00f0e5322f9b8173c7a0cbcff6181a0a5b28e9892491c286277231"
+
+[[package]]
+name = "tempfile"
+version = "3.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
+dependencies = [
+ "cfg-if 1.0.0",
+ "fastrand",
+ "rustix",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "textpieces"
+version = "4.0.6"
+dependencies = [
+ "anyhow",
+ "cairo-rs",
+ "derive-debug",
+ "dirs",
+ "futures",
+ "gettext-rs",
+ "gsettings-macro",
+ "gtk4",
+ "libadwaita",
+ "once_cell",
+ "pollster",
+ "serde",
+ "serde_json",
+ "smol",
+ "sourceview5",
+ "textpieces-core",
+ "tracing",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "textpieces-core"
+version = "1.0.0"
+source = "git+https://gitlab.com/liferooter/textpieces-core#668e783856073ece22b059f2b5cddaec0f38dd5c"
+dependencies = [
+ "base64",
+ "digest",
+ "fancy-regex",
+ "hex",
+ "html-escape",
+ "itertools",
+ "md5",
+ "serde",
+ "serde_json",
+ "serde_yaml",
+ "sha1",
+ "sha2",
+ "textpieces-foundations",
+ "textpieces-function-actions",
+ "textpieces-script-actions",
+ "urlencoding",
+ "xml-rs",
+]
+
+[[package]]
+name = "textpieces-foundations"
+version = "1.0.0"
+source = "git+https://gitlab.com/liferooter/textpieces-core#668e783856073ece22b059f2b5cddaec0f38dd5c"
+dependencies = [
+ "crossmist",
+ "enum-iterator",
+ "glib",
+ "serde",
+ "thiserror",
+]
+
+[[package]]
+name = "textpieces-function-actions"
+version = "1.0.0"
+source = "git+https://gitlab.com/liferooter/textpieces-core#668e783856073ece22b059f2b5cddaec0f38dd5c"
+dependencies = [
+ "anyhow",
+ "crossmist",
+ "derive-debug",
+ "procspawn",
+ "scopeguard",
+ "smol",
+ "textpieces-foundations",
+]
+
+[[package]]
+name = "textpieces-script-actions"
+version = "1.0.0"
+source = "git+https://gitlab.com/liferooter/textpieces-core#668e783856073ece22b059f2b5cddaec0f38dd5c"
+dependencies = [
+ "anyhow",
+ "rustix",
+ "serde",
+ "serde_json",
+ "smol",
+ "textpieces-foundations",
+ "thiserror",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.64",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
+dependencies = [
+ "cfg-if 1.0.0",
+ "once_cell",
+]
+
+[[package]]
+name = "toml"
+version = "0.8.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit 0.22.13",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.19.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow 0.5.40",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow 0.5.40",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c"
+dependencies = [
+ "indexmap",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow 0.6.8",
+]
+
+[[package]]
+name = "tracing"
+version = "0.1.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+dependencies = [
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.64",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+dependencies = [
+ "once_cell",
+ "valuable",
+]
+
+[[package]]
+name = "tracing-log"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
+dependencies = [
+ "log",
+ "once_cell",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-subscriber"
+version = "0.3.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
+dependencies = [
+ "nu-ansi-term",
+ "sharded-slab",
+ "smallvec",
+ "thread_local",
+ "tracing-core",
+ "tracing-log",
+]
+
+[[package]]
+name = "typenum"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "unsafe-libyaml"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861"
+
+[[package]]
+name = "urlencoding"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
+
+[[package]]
+name = "utf8-width"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3"
+
+[[package]]
+name = "uuid"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
+dependencies = [
+ "getrandom 0.2.15",
+]
+
+[[package]]
+name = "valuable"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+
+[[package]]
+name = "version-compare"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "wasi"
+version = "0.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "winapi"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-build"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1c4bd0a50ac6020f65184721f758dba47bb9fbc2133df715ec74a237b26794a"
+dependencies = [
+ "windows_aarch64_msvc 0.39.0",
+ "windows_i686_gnu 0.39.0",
+ "windows_i686_msvc 0.39.0",
+ "windows_x86_64_gnu 0.39.0",
+ "windows_x86_64_msvc 0.39.0",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
+
+[[package]]
+name = "winnow"
+version = "0.5.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winnow"
+version = "0.6.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3c52e9c97a68071b23e836c9380edae937f17b9c4667bd021973efc689f618d"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "ws2_32-sys"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
+dependencies = [
+ "winapi 0.2.8",
+ "winapi-build",
+]
+
+[[package]]
+name = "xml-rs"
+version = "0.8.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193"
diff --git a/pkgs/by-name/te/textpieces/package.nix b/pkgs/by-name/te/textpieces/package.nix
new file mode 100644
index 0000000000000..c049c07da5163
--- /dev/null
+++ b/pkgs/by-name/te/textpieces/package.nix
@@ -0,0 +1,65 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, meson
+, ninja
+, pkg-config
+, cargo
+, rustc
+, rustPlatform
+, blueprint-compiler
+, glib
+, gtk4
+, libadwaita
+, gtksourceview5
+, wrapGAppsHook4
+, desktop-file-utils
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "textpieces";
+  version = "4.0.6";
+
+  src = fetchFromGitLab {
+    owner = "liferooter";
+    repo = "textpieces";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-6kbGvCiaoOY+pwSmaDn1N/rbTBzEehNi/j+RI05nn6o=";
+  };
+
+  cargoDeps = rustPlatform.importCargoLock {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "textpieces-core-1.0.0" = "sha256-HaLkL2HhH1khwsSdH64pZYtJ/WG+MLiEQPScDte/PAg=";
+    };
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    cargo
+    rustc
+    rustPlatform.cargoSetupHook
+    blueprint-compiler
+    wrapGAppsHook4
+    desktop-file-utils
+  ];
+
+  buildInputs = [
+    glib
+    gtk4
+    libadwaita
+    gtksourceview5
+  ];
+
+  meta = {
+    description = "Swiss knife of text processing";
+    longDescription = "A small tool for quick text transformations such as checksums, encoding, decoding and so on.";
+    homepage = "https://gitlab.com/liferooter/textpieces";
+    mainProgram = "textpieces";
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ zendo ];
+  };
+})
diff --git a/pkgs/by-name/th/thcrap-steam-proton-wrapper/package.nix b/pkgs/by-name/th/thcrap-steam-proton-wrapper/package.nix
index 56a6029847d45..00a5458c08821 100644
--- a/pkgs/by-name/th/thcrap-steam-proton-wrapper/package.nix
+++ b/pkgs/by-name/th/thcrap-steam-proton-wrapper/package.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "A wrapper script for launching the official Touhou games on Steam with patches through Proton on GNU/Linux";
+    description = "Wrapper script for launching the official Touhou games on Steam with patches through Proton on GNU/Linux";
     homepage = "https://github.com/tactikauan/thcrap-steam-proton-wrapper";
     license = lib.licenses.unlicense;
     maintainers = with lib.maintainers; [ ashuramaruzxc ];
diff --git a/pkgs/by-name/th/the-legend-of-edgar/package.nix b/pkgs/by-name/th/the-legend-of-edgar/package.nix
index eab0b772336bb..509c6e65524b3 100644
--- a/pkgs/by-name/th/the-legend-of-edgar/package.nix
+++ b/pkgs/by-name/th/the-legend-of-edgar/package.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://www.parallelrealities.co.uk/games/edgar";
-    description = "A 2D platform game with a persistent world";
+    description = "2D platform game with a persistent world";
     longDescription = ''
       When Edgar's father fails to return home after venturing out one dark and
       stormy night, Edgar fears the worst: he has been captured by the evil
diff --git a/pkgs/by-name/th/the-powder-toy/package.nix b/pkgs/by-name/th/the-powder-toy/package.nix
index ee3265ccd30e2..25da4e5d88183 100644
--- a/pkgs/by-name/th/the-powder-toy/package.nix
+++ b/pkgs/by-name/th/the-powder-toy/package.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
   desktopItems = [ "resources/powder.desktop" ];
 
   meta = with lib; {
-    description = "A free 2D physics sandbox game";
+    description = "Free 2D physics sandbox game";
     homepage = "https://powdertoy.co.uk/";
     platforms = platforms.unix;
     license = licenses.gpl3Plus;
diff --git a/pkgs/by-name/ti/tigerbeetle/package.nix b/pkgs/by-name/ti/tigerbeetle/package.nix
index 80bc951233626..0d5bfea5f77bb 100644
--- a/pkgs/by-name/ti/tigerbeetle/package.nix
+++ b/pkgs/by-name/ti/tigerbeetle/package.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://tigerbeetle.com/";
-    description = "A financial accounting database designed to be distributed and fast";
+    description = "Financial accounting database designed to be distributed and fast";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ danielsidhion ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/by-name/ti/tilda/package.nix b/pkgs/by-name/ti/tilda/package.nix
index cda946d04ecf3..500d9269e0161 100644
--- a/pkgs/by-name/ti/tilda/package.nix
+++ b/pkgs/by-name/ti/tilda/package.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/lanoxx/tilda/";
-    description = "A Gtk based drop down terminal for Linux and Unix";
+    description = "Gtk based drop down terminal for Linux and Unix";
     mainProgram = "tilda";
     license = lib.licenses.gpl3Plus;
     maintainers = [ lib.maintainers.AndersonTorres ];
diff --git a/pkgs/servers/geospatial/tile38/default.nix b/pkgs/by-name/ti/tile38/package.nix
index 705fa6b9e726f..53f9baafc0828 100644
--- a/pkgs/servers/geospatial/tile38/default.nix
+++ b/pkgs/by-name/ti/tile38/package.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "tile38";
-  version = "1.32.2";
+  version = "1.33.0";
 
   src = fetchFromGitHub {
     owner = "tidwall";
     repo = pname;
     rev = version;
-    sha256 = "sha256-caOdcPVp1WonAK7QIvG34BxhOH7OGprWQmXEo+nsGKQ=";
+    sha256 = "sha256-07Yp64JaIyKD4WrwUKOIupin8tdN2iL72Yf6l5PSIg0=";
   };
 
-  vendorHash = "sha256-20zN5ts1jsCDyAolwuygHvkXJdbqGYwSdXh2CY6T1mk=";
+  vendorHash = "sha256-nnamNwowRPWQBKUMg800bFgijv8iHbdh/wUwTfX0NcY=";
 
   subPackages = [ "cmd/tile38-cli" "cmd/tile38-server" ];
 
diff --git a/pkgs/by-name/ti/tiny-dfr/package.nix b/pkgs/by-name/ti/tiny-dfr/package.nix
index ab1d5298ec8ae..d7a0c08af3e77 100644
--- a/pkgs/by-name/ti/tiny-dfr/package.nix
+++ b/pkgs/by-name/ti/tiny-dfr/package.nix
@@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/WhatAmISupposedToPutHere/tiny-dfr";
-    description = "The most basic dynamic function row daemon possible";
+    description = "Most basic dynamic function row daemon possible";
     license = [ licenses.asl20 licenses.mit ];
     mainProgram = "tiny-dfr";
     maintainers = [ maintainers.qyliss ];
diff --git a/pkgs/by-name/ti/tinycompress/package.nix b/pkgs/by-name/ti/tinycompress/package.nix
index b6002c0205b07..c58ef57fbd7c6 100644
--- a/pkgs/by-name/ti/tinycompress/package.nix
+++ b/pkgs/by-name/ti/tinycompress/package.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.alsa-project.org/";
-    description = "a userspace library for anyone who wants to use the ALSA compressed APIs";
+    description = "Userspace library for anyone who wants to use the ALSA compressed APIs";
     license = licenses.bsd3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ k900 ];
diff --git a/pkgs/by-name/ti/tinymist/Cargo.lock b/pkgs/by-name/ti/tinymist/Cargo.lock
index ee6705a0f5119..ae658912bf603 100644
--- a/pkgs/by-name/ti/tinymist/Cargo.lock
+++ b/pkgs/by-name/ti/tinymist/Cargo.lock
@@ -3743,7 +3743,7 @@ dependencies = [
 
 [[package]]
 name = "tests"
-version = "0.11.9"
+version = "0.11.11"
 dependencies = [
  "insta",
  "lsp-server",
@@ -3840,7 +3840,7 @@ dependencies = [
 
 [[package]]
 name = "tinymist"
-version = "0.11.9"
+version = "0.11.11"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -3891,7 +3891,7 @@ dependencies = [
 
 [[package]]
 name = "tinymist-query"
-version = "0.11.9"
+version = "0.11.11"
 dependencies = [
  "anyhow",
  "biblatex",
@@ -3935,7 +3935,7 @@ dependencies = [
 
 [[package]]
 name = "tinymist-render"
-version = "0.11.9"
+version = "0.11.11"
 dependencies = [
  "base64 0.22.1",
  "log",
@@ -4530,9 +4530,9 @@ dependencies = [
 
 [[package]]
 name = "typstyle"
-version = "0.11.21"
+version = "0.11.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af9697d141856bfe6c865c9ef74d04c62dd6cd1b3b63c1e284b96974871a2fc7"
+checksum = "b08c00b01698330e3c46dd9454c3472e4107866de14fc52aeb1a55aa260bfc7b"
 dependencies = [
  "anyhow",
  "clap",
diff --git a/pkgs/by-name/ti/tinymist/package.nix b/pkgs/by-name/ti/tinymist/package.nix
index a9b79e071459b..7d1397d91ea9e 100644
--- a/pkgs/by-name/ti/tinymist/package.nix
+++ b/pkgs/by-name/ti/tinymist/package.nix
@@ -13,13 +13,13 @@ rustPlatform.buildRustPackage rec {
   pname = "tinymist";
   # Please update the corresponding vscode extension when updating
   # this derivation.
-  version = "0.11.9";
+  version = "0.11.11";
 
   src = fetchFromGitHub {
     owner = "Myriad-Dreamin";
     repo = "tinymist";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Oa88WBkV9q17KNJuc/sGSQS39yVyqme66SfB0ZZw7b8=";
+    hash = "sha256-uXrV3tvv9fXoEdFH+ajHECfNy4uTvUZBkhkfzGzj3HE=";
   };
 
   cargoLock = {
@@ -50,12 +50,12 @@ rustPlatform.buildRustPackage rec {
     "--skip=e2e"
   ];
 
-  meta = with lib; {
+  meta = {
     changelog = "https://github.com/Myriad-Dreamin/tinymist/blob/${src.rev}/CHANGELOG.md";
     description = "Tinymist is an integrated language service for Typst";
     homepage = "https://github.com/Myriad-Dreamin/tinymist";
-    license = licenses.asl20;
+    license = lib.licenses.asl20;
     mainProgram = "tinymist";
-    maintainers = with maintainers; [ lampros ];
+    maintainers = with lib.maintainers; [ lampros ];
   };
 }
diff --git a/pkgs/by-name/ti/tinywm/package.nix b/pkgs/by-name/ti/tinywm/package.nix
index 03b6db11c5653..32c0e2df49c25 100644
--- a/pkgs/by-name/ti/tinywm/package.nix
+++ b/pkgs/by-name/ti/tinywm/package.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "http://incise.org/tinywm.html";
-    description = "A tiny window manager for X11";
+    description = "Tiny window manager for X11";
     longDescription = ''
       TinyWM is a tiny window manager that I created as an exercise in
       minimalism. It is also maybe helpful in learning some of the very basics
diff --git a/pkgs/by-name/ti/tinyxml-2/package.nix b/pkgs/by-name/ti/tinyxml-2/package.nix
index 33ec1340528e1..c814cdf570e20 100644
--- a/pkgs/by-name/ti/tinyxml-2/package.nix
+++ b/pkgs/by-name/ti/tinyxml-2/package.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = {
-    description = "A simple, small, efficient, C++ XML parser";
+    description = "Simple, small, efficient, C++ XML parser";
     homepage = "https://github.com/leethomason/tinyxml2";
     changelog = "https://github.com/leethomason/tinyxml2/releases/tag/${finalAttrs.src.rev}";
     license = with lib.licenses; [ zlib ];
diff --git a/pkgs/by-name/ti/tippecanoe/package.nix b/pkgs/by-name/ti/tippecanoe/package.nix
index 89740de334fa6..05d19692f375c 100644
--- a/pkgs/by-name/ti/tippecanoe/package.nix
+++ b/pkgs/by-name/ti/tippecanoe/package.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "tippecanoe";
-  version = "2.53.0";
+  version = "2.55.0";
 
   src = fetchFromGitHub {
     owner = "felt";
     repo = "tippecanoe";
     rev = finalAttrs.version;
-    hash = "sha256-0GBrGLE0owhGTc/+D1W6X+hkpuX2GPu6gXQ7J2pHK9o=";
+    hash = "sha256-hF1tiI5M8BdJoJEZDqC6BkzndmYRQU4jHhjUvYowBTU=";
   };
 
   buildInputs = [ sqlite zlib ];
diff --git a/pkgs/by-name/tk/tkdiff/package.nix b/pkgs/by-name/tk/tkdiff/package.nix
index 8cf0e575f8dbc..3e6fe807b611e 100644
--- a/pkgs/by-name/tk/tkdiff/package.nix
+++ b/pkgs/by-name/tk/tkdiff/package.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A graphical front end to the diff program";
+    description = "Graphical front end to the diff program";
     homepage = "https://tkdiff.sourceforge.io/";
     license = lib.licenses.gpl2Plus;
     longDescription = ''
diff --git a/pkgs/by-name/tm/tmsu/package.nix b/pkgs/by-name/tm/tmsu/package.nix
new file mode 100644
index 0000000000000..9434f433a2c79
--- /dev/null
+++ b/pkgs/by-name/tm/tmsu/package.nix
@@ -0,0 +1,44 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+  installShellFiles,
+}:
+
+buildGoModule {
+  pname = "tmsu";
+  version = "0.7.5-unstable-2024-06-08";
+
+  src = fetchFromGitHub {
+    owner = "oniony";
+    repo = "tmsu";
+    rev = "0bf4b8031cbeffc0347007d85647062953e90571";
+    sha256 = "sha256-5Rmelgiqs7YkdDBZNXZW4sBf0l/bwiq0xxB2tWpm1s8=";
+  };
+
+  vendorHash = "sha256-r2wzVkPTsxWdVPFLO84tJgl3VJonoU7kNKLOBgHHdF8=";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    # can't do "mv TMSU tmsu" on case-insensitive filesystems
+    mv $out/bin/{TMSU,tmsu.tmp}
+    mv $out/bin/{tmsu.tmp,tmsu}
+
+    installManPage misc/man/tmsu.1
+    installShellCompletion --bash misc/bash/tmsu
+    installShellCompletion --zsh misc/zsh/_tmsu
+  '';
+
+  meta = {
+    homepage = "https://www.tmsu.org";
+    description = "Tool for tagging your files using a virtual filesystem";
+    maintainers = with lib.maintainers; [
+      luftmensch-luftmensch
+      pSub
+    ];
+    mainProgram = "tmsu";
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/pkgs/by-name/to/toml-cli/package.nix b/pkgs/by-name/to/toml-cli/package.nix
index 42c9ca639337f..738e6deba1412 100644
--- a/pkgs/by-name/to/toml-cli/package.nix
+++ b/pkgs/by-name/to/toml-cli/package.nix
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = {
-    description = "A simple CLI for editing and querying TOML files";
+    description = "Simple CLI for editing and querying TOML files";
     homepage = "https://github.com/gnprice/toml-cli";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ phlip9 ];
diff --git a/pkgs/by-name/to/tootik/package.nix b/pkgs/by-name/to/tootik/package.nix
index c3b81e1722823..268bc20488b00 100644
--- a/pkgs/by-name/to/tootik/package.nix
+++ b/pkgs/by-name/to/tootik/package.nix
@@ -26,7 +26,7 @@ buildGoModule rec {
   doCheck = !(stdenv.isDarwin && stdenv.isAarch64);
 
   meta = {
-    description = "A federated nanoblogging service with a Gemini frontend";
+    description = "Federated nanoblogging service with a Gemini frontend";
     homepage = "https://github.com/dimkr/tootik";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ sikmir ];
diff --git a/pkgs/by-name/tp/tparse/package.nix b/pkgs/by-name/tp/tparse/package.nix
new file mode 100644
index 0000000000000..981f536a16c63
--- /dev/null
+++ b/pkgs/by-name/tp/tparse/package.nix
@@ -0,0 +1,29 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+}:
+let
+  pname = "tparse";
+  version = "0.13.3";
+in
+buildGoModule {
+  inherit pname version;
+
+  src = fetchFromGitHub {
+    owner = "mfridman";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-MTaxEWRNAXem/DIirrd53YEHA/A5S4wNX4osuMV3gtc=";
+  };
+
+  vendorHash = "sha256-j+1B2zWONjFEGoyesX0EW964kD33Jy3O1aB1WEwlESA=";
+
+  meta = {
+    description = "CLI tool for summarizing go test output. Pipe friendly. CI/CD friendly";
+    mainProgram = "tparse";
+    homepage = "https://github.com/mfridman/tparse";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ obreitwi ];
+  };
+}
diff --git a/pkgs/by-name/tp/tpnote/package.nix b/pkgs/by-name/tp/tpnote/package.nix
index eec1f68f5f442..1f3410a9e14a6 100644
--- a/pkgs/by-name/tp/tpnote/package.nix
+++ b/pkgs/by-name/tp/tpnote/package.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , rustPlatform
 , cmake
 , pkg-config
@@ -40,6 +39,10 @@ rustPlatform.buildRustPackage rec {
      SystemConfiguration
   ]);
 
+  postInstall = ''
+    installManPage docs/build/man/man1/tpnote.1
+  '';
+
   RUSTONIG_SYSTEM_LIBONIG = true;
 
   passthru.tests.version = testers.testVersion { package = tpnote; };
diff --git a/pkgs/by-name/tr/tracexec/package.nix b/pkgs/by-name/tr/tracexec/package.nix
index c64094e852237..7063ceb4f6c31 100644
--- a/pkgs/by-name/tr/tracexec/package.nix
+++ b/pkgs/by-name/tr/tracexec/package.nix
@@ -8,7 +8,7 @@
 }:
 let
   pname = "tracexec";
-  version = "0.2.2";
+  version = "0.4.0";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -17,10 +17,10 @@ rustPlatform.buildRustPackage {
     owner = "kxxt";
     repo = "tracexec";
     rev = "refs/tags/v${version}";
-    hash = "sha256-X2hLaBndeYLBMnDe2MT4pgZiPj0COHG2uTvAbW+JVd4=";
+    hash = "sha256-Rhxg3VmdMSo1xlazvToIdvkBvuFUKTq82U3PnedGHHs=";
   };
 
-  cargoHash = "sha256-3xANOv+A4soDcKMINy+RnI8l6uS3koZpw3CMIUCmK5A=";
+  cargoHash = "sha256-rioZfUJD4ZOpXGCWsBDQkYwW9XtTjFnGgMKl0mPF5XM=";
 
   nativeBuildInputs = [
     cargo-about
@@ -58,7 +58,7 @@ rustPlatform.buildRustPackage {
 
   meta = {
     changelog = "https://github.com/kxxt/tracexec/blob/v${version}/CHANGELOG.md";
-    description = "A small utility for tracing execve{,at} and pre-exec behavior";
+    description = "Small utility for tracing execve{,at} and pre-exec behavior";
     homepage = "https://github.com/kxxt/tracexec";
     license = lib.licenses.gpl2Plus;
     mainProgram = "tracexec";
diff --git a/pkgs/development/tools/tracy/0001-remove-unifiedtypeidentifiers-framework b/pkgs/by-name/tr/tracy/0001-remove-unifiedtypeidentifiers-framework
index 0dc5a7eb68f16..0dc5a7eb68f16 100644
--- a/pkgs/development/tools/tracy/0001-remove-unifiedtypeidentifiers-framework
+++ b/pkgs/by-name/tr/tracy/0001-remove-unifiedtypeidentifiers-framework
diff --git a/pkgs/development/tools/tracy/default.nix b/pkgs/by-name/tr/tracy/package.nix
index 4c86ea2fb9cbe..82d4b9c285b82 100644
--- a/pkgs/development/tools/tracy/default.nix
+++ b/pkgs/by-name/tr/tracy/package.nix
@@ -10,6 +10,10 @@
 , hicolor-icon-theme
 , pkg-config
 , tbb
+
+, withWayland ? stdenv.isLinux
+, libxkbcommon
+, wayland
 }:
 
 stdenv.mkDerivation rec {
@@ -33,6 +37,9 @@ stdenv.mkDerivation rec {
     capstone
     freetype
     glfw
+  ] ++ lib.optionals (stdenv.isLinux && withWayland) [
+    libxkbcommon
+    wayland
   ] ++ lib.optionals stdenv.isLinux [
     dbus
     hicolor-icon-theme
@@ -60,7 +67,8 @@ stdenv.mkDerivation rec {
     make -j $NIX_BUILD_CORES -C csvexport/build/unix release
     make -j $NIX_BUILD_CORES -C import-chrome/build/unix release
     make -j $NIX_BUILD_CORES -C library/unix release
-    make -j $NIX_BUILD_CORES -C profiler/build/unix release LEGACY=1
+    make -j $NIX_BUILD_CORES -C profiler/build/unix release \
+      ${lib.optionalString (stdenv.isLinux && !withWayland) "LEGACY=1"}
     make -j $NIX_BUILD_CORES -C update/build/unix release
 
     runHook postBuild
@@ -101,7 +109,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A real time, nanosecond resolution, remote telemetry frame profiler for games and other applications";
+    description = "Real time, nanosecond resolution, remote telemetry frame profiler for games and other applications";
     homepage = "https://github.com/wolfpld/tracy";
     platforms = platforms.linux ++ platforms.darwin;
     license = licenses.bsd3;
diff --git a/pkgs/by-name/tr/tradingview/package.nix b/pkgs/by-name/tr/tradingview/package.nix
index d72e950052062..be05e2f5e8d39 100644
--- a/pkgs/by-name/tr/tradingview/package.nix
+++ b/pkgs/by-name/tr/tradingview/package.nix
@@ -22,12 +22,12 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "tradingview";
-  version = "2.7.2";
-  revision = "49";
+  version = "2.7.7";
+  revision = "53";
 
   src = fetchurl {
     url = "https://api.snapcraft.io/api/v1/snaps/download/nJdITJ6ZJxdvfu8Ch7n5kH5P99ClzBYV_${finalAttrs.revision}.snap";
-    hash = "sha256-GU5vWjZz8FBMtYawfP8cVmKp8X7bhJnLa0ft7Ku8czw=";
+    hash = "sha256-izASQXx/wTPKvPxWRh0csKsXoQlsFaOsLsNthepwW64=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/tr/trealla/package.nix b/pkgs/by-name/tr/trealla/package.nix
index e125ec2b1583b..7183280a01b07 100644
--- a/pkgs/by-name/tr/trealla/package.nix
+++ b/pkgs/by-name/tr/trealla/package.nix
@@ -1,29 +1,35 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, libffi
-, openssl
-, readline
-, valgrind
-, xxd
-, gitUpdater
-, checkLeaks ? false
-, enableFFI ? true
-, enableSSL ? true
-, enableThreads ? true
-, lineEditingLibrary ? "isocline"
+{
+  lib,
+  fetchFromGitHub,
+  libffi,
+  openssl,
+  readline,
+  stdenv,
+  testers,
+  valgrind,
+  xxd,
+  # Boolean flags
+  checkLeaks ? false,
+  enableFFI ? true,
+  enableSSL ? true,
+  enableThreads ? true,
+  # Configurable inputs
+  lineEditingLibrary ? "isocline",
 }:
 
-assert lib.elem lineEditingLibrary [ "isocline" "readline" ];
+assert lib.elem lineEditingLibrary [
+  "isocline"
+  "readline"
+];
 stdenv.mkDerivation (finalAttrs: {
   pname = "trealla";
-  version = "2.34.0";
+  version = "2.52.18";
 
   src = fetchFromGitHub {
     owner = "trealla-prolog";
     repo = "trealla";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-cqIiPeQO/M8MtpHRomN/fzxIq7TgUwZSvL3PFCVsEnY=";
+    hash = "sha256-ai1z/Y3KuQUnRhWduuZfnPdz+vc1VS24Wih/CFnuCtk=";
   };
 
   postPatch = ''
@@ -33,9 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
       --replace 'GIT_VERSION :=' 'GIT_VERSION ?='
   '';
 
-  nativeBuildInputs = [
-    xxd
-  ];
+  nativeBuildInputs = [ xxd ];
 
   buildInputs =
     lib.optionals enableFFI [ libffi ]
@@ -46,13 +50,12 @@ stdenv.mkDerivation (finalAttrs: {
 
   strictDeps = true;
 
-  makeFlags = [
-    "GIT_VERSION=\"v${finalAttrs.version}\""
-  ]
-  ++ lib.optionals (lineEditingLibrary == "isocline") [ "ISOCLINE=1" ]
-  ++ lib.optionals (!enableFFI) [ "NOFFI=1" ]
-  ++ lib.optionals (!enableSSL) [ "NOSSL=1" ]
-  ++ lib.optionals enableThreads [ "THREADS=1" ];
+  makeFlags =
+    [ "GIT_VERSION=\"v${finalAttrs.version}\"" ]
+    ++ lib.optionals (lineEditingLibrary == "isocline") [ "ISOCLINE=1" ]
+    ++ lib.optionals (!enableFFI) [ "NOFFI=1" ]
+    ++ lib.optionals (!enableSSL) [ "NOSSL=1" ]
+    ++ lib.optionals enableThreads [ "THREADS=1" ];
 
   enableParallelBuilding = true;
 
@@ -64,17 +67,20 @@ stdenv.mkDerivation (finalAttrs: {
 
   doCheck = !valgrind.meta.broken;
 
-  checkFlags = [
-    "test"
-  ] ++ lib.optionals checkLeaks [ "leaks" ];
+  checkFlags = [ "test" ] ++ lib.optionals checkLeaks [ "leaks" ];
 
-  passthru.updateScript = gitUpdater {
-    rev-prefix = "v";
+  passthru = {
+    tests = {
+      version = testers.testVersion {
+        package = finalAttrs.finalPackage;
+        version = "v${finalAttrs.version}";
+      };
+    };
   };
 
   meta = {
     homepage = "https://trealla-prolog.github.io/trealla/";
-    description = "A compact, efficient Prolog interpreter written in ANSI C";
+    description = "Compact, efficient Prolog interpreter written in ANSI C";
     longDescription = ''
       Trealla is a compact, efficient Prolog interpreter with ISO Prolog
       aspirations.
@@ -88,7 +94,10 @@ stdenv.mkDerivation (finalAttrs: {
     '';
     changelog = "https://github.com/trealla-prolog/trealla/releases/tag/v${finalAttrs.version}";
     license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ siraben AndersonTorres ];
+    maintainers = with lib.maintainers; [
+      siraben
+      AndersonTorres
+    ];
     mainProgram = "tpl";
     platforms = lib.platforms.all;
     broken = stdenv.isDarwin && stdenv.isx86_64;
diff --git a/pkgs/by-name/tr/treecat/package.nix b/pkgs/by-name/tr/treecat/package.nix
index df184b9d10626..338e27af67d7b 100644
--- a/pkgs/by-name/tr/treecat/package.nix
+++ b/pkgs/by-name/tr/treecat/package.nix
@@ -1,15 +1,19 @@
-{ stdenv
-, fetchFromSourcehut
-, hare
-, haredo
-, lib
-, scdoc
+{
+  stdenv,
+  fetchFromSourcehut,
+  hareHook,
+  haredo,
+  lib,
+  scdoc,
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "treecat";
   version = "1.0.2-unstable-2023-11-28";
 
-  outputs = [ "out" "man" ];
+  outputs = [
+    "out"
+    "man"
+  ];
 
   src = fetchFromSourcehut {
     owner = "~autumnull";
@@ -19,18 +23,14 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   nativeBuildInputs = [
-    hare
+    hareHook
     haredo
     scdoc
   ];
 
-  dontConfigure = true;
+  env.PREFIX = builtins.placeholder "out";
 
-  preBuild = ''
-    HARECACHE="$(mktemp -d)"
-    export HARECACHE
-    export PREFIX="${builtins.placeholder "out"}"
-  '';
+  dontConfigure = true;
 
   meta = {
     description = "Serialize a directory to a tree diagram, and vice versa";
@@ -42,6 +42,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.wtfpl;
     maintainers = with lib.maintainers; [ onemoresuza ];
     mainProgram = "treecat";
-    inherit (hare.meta) platforms badPlatforms;
+    inherit (hareHook.meta) platforms badPlatforms;
   };
 })
diff --git a/pkgs/by-name/tr/treedome/package.nix b/pkgs/by-name/tr/treedome/package.nix
index 07efeebccb3f6..ca92f33ed5dd1 100644
--- a/pkgs/by-name/tr/treedome/package.nix
+++ b/pkgs/by-name/tr/treedome/package.nix
@@ -139,7 +139,7 @@ rustPlatform.buildRustPackage {
   '';
 
   meta = with lib; {
-    description = "A local-first, encrypted, note taking application organized in tree-like structures";
+    description = "Local-first, encrypted, note taking application organized in tree-like structures";
     homepage = " https://codeberg.org/solver-orgz/treedome";
     license = licenses.agpl3Only;
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/by-name/tr/treefmt2/package.nix b/pkgs/by-name/tr/treefmt2/package.nix
index e6919ad15ad47..ab61349bcf7f2 100644
--- a/pkgs/by-name/tr/treefmt2/package.nix
+++ b/pkgs/by-name/tr/treefmt2/package.nix
@@ -1,13 +1,13 @@
 { lib, buildGoModule, fetchFromGitHub }:
 buildGoModule rec {
   pname = "treefmt";
-  version = "2.0.0-rc2";
+  version = "2.0.0-rc5";
 
   src = fetchFromGitHub {
     owner = "numtide";
     repo = "treefmt";
     rev = "v${version}";
-    hash = "sha256-qFSZLndhxC/RJdlA5fzgDxx/onFEy0wEz7XJLnmKmDo=";
+    hash = "sha256-Ckvpb2at7lg7AB0XNtIxeo8lWXX+04MVHHKoUs876dg=";
   };
 
   vendorHash = "sha256-rjdGNfR2DpLZCzL/+3xiZ7gGDd4bPyBT5qMCO+NyWbg=";
diff --git a/pkgs/by-name/tr/troubadix/package.nix b/pkgs/by-name/tr/troubadix/package.nix
index d70553604bc38..0906dd4becb23 100644
--- a/pkgs/by-name/tr/troubadix/package.nix
+++ b/pkgs/by-name/tr/troubadix/package.nix
@@ -7,14 +7,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "troubadix";
-  version = "24.5.1";
+  version = "24.6.5";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "greenbone";
     repo = "troubadix";
     rev = "refs/tags/v${version}";
-    hash = "sha256-kA+9zcP3unNb2tE3OU8J/3xHX+pRZ/06lEQtH/0QEk4=";
+    hash = "sha256-W6RC0JKTBLlPSgWlAggU8HRNY+nRAYtLlG0cnnYMaFM=";
   };
 
   pythonRelaxDeps = [ "validators" ];
@@ -52,7 +52,7 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   meta = with lib; {
-    description = "A linting tool for NASL files";
+    description = "Linting tool for NASL files";
     homepage = "https://github.com/greenbone/troubadix";
     changelog = "https://github.com/greenbone/troubadix/releases/tag/v${version}";
     license = licenses.gpl3Only;
diff --git a/pkgs/by-name/tr/trunk-ng/package.nix b/pkgs/by-name/tr/trunk-ng/package.nix
index 2759b8f4f9218..3a7f9bd5ba05a 100644
--- a/pkgs/by-name/tr/trunk-ng/package.nix
+++ b/pkgs/by-name/tr/trunk-ng/package.nix
@@ -1,26 +1,29 @@
 { lib, stdenv, rustPlatform, fetchFromGitHub, pkg-config
-, openssl, libiconv, CoreServices, Security }:
+, openssl, libiconv, CoreServices, Security, SystemConfiguration }:
 
 rustPlatform.buildRustPackage rec {
   pname = "trunk-ng";
-  version = "0.17.11";
+  version = "0.17.16";
 
   src = fetchFromGitHub {
     owner = "ctron";
     repo = "trunk";
     rev = "v${version}";
-    hash = "sha256-ZaSWfuz0w9bkilpDv4EAt6gn6ZdKOLTYJlJMQqtZAwY=";
+    hash = "sha256-SnE0z9Wa4gtX/ts0vG9pYnnxumILHTSV9/tVYkCHFck=";
   };
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = if stdenv.isDarwin
-    then [ libiconv CoreServices Security ]
+    then [ libiconv CoreServices Security SystemConfiguration ]
     else [ openssl ];
 
   # requires network
   checkFlags = [ "--skip=tools::tests::download_and_install_binaries" ];
 
-  cargoHash = "sha256-O3e8v0r76VeMYODah2RYTmwr9WNAX+HPhYVmDuP2gfg=";
+  cargoHash = {
+    darwin = "sha256-TwpGw3LH3TmZSbC4DkoOYpQdOpksXXoAoiacyZAefTU=";
+    linux = "sha256-AivISmT/r8xa/vSXUN8sU7z67t1hcyMQM+t6oXmIOhU=";
+  }.${stdenv.hostPlatform.parsed.kernel.name} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
   meta = with lib; {
     homepage = "https://github.com/ctron/trunk";
diff --git a/pkgs/by-name/tu/tuifimanager/package.nix b/pkgs/by-name/tu/tuifimanager/package.nix
index 7d54de40be3b0..c2b214ce55b15 100644
--- a/pkgs/by-name/tu/tuifimanager/package.nix
+++ b/pkgs/by-name/tu/tuifimanager/package.nix
@@ -63,7 +63,7 @@ python3.pkgs.buildPythonApplication rec {
   pythonImportsCheck = [ "TUIFIManager" ];
 
   meta = with lib; {
-    description = "A cross-platform terminal-based termux-oriented file manager";
+    description = "Cross-platform terminal-based termux-oriented file manager";
     longDescription = ''
       A cross-platform terminal-based termux-oriented file manager (and component),
       meant to be used with a Uni-Curses project or as is. This project is mainly an
diff --git a/pkgs/by-name/tu/tup/package.nix b/pkgs/by-name/tu/tup/package.nix
index f4a13551e4453..c6614db17832a 100644
--- a/pkgs/by-name/tu/tup/package.nix
+++ b/pkgs/by-name/tu/tup/package.nix
@@ -51,7 +51,7 @@ in stdenv.mkDerivation rec {
   setupHook = ./setup-hook.sh;
 
   meta = with lib; {
-    description = "A fast, file-based build system";
+    description = "Fast, file-based build system";
     mainProgram = "tup";
     longDescription = ''
       Tup is a file-based build system for Linux, OSX, and Windows. It inputs a list
diff --git a/pkgs/by-name/tu/turtle/package.nix b/pkgs/by-name/tu/turtle/package.nix
new file mode 100644
index 0000000000000..2db5440055b7a
--- /dev/null
+++ b/pkgs/by-name/tu/turtle/package.nix
@@ -0,0 +1,78 @@
+{
+  lib,
+  python3Packages,
+  fetchFromGitLab,
+  gobject-introspection,
+  wrapGAppsHook4,
+  libadwaita,
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "turtle";
+  version = "0.8";
+  pyproject = true;
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "philippun1";
+    repo = "turtle";
+    rev = version;
+    hash = "sha256-YacuT5S6WrhSz031XXCQTo++r+DBozrIIXrn9BwmrR0=";
+  };
+
+  postPatch = ''
+    substituteInPlace ./install.py \
+      --replace-fail "/usr" "$out" \
+      --replace-fail "gtk-update-icon-cache" "gtk4-update-icon-cache"
+  '';
+
+  nativeBuildInputs = [
+    gobject-introspection
+    wrapGAppsHook4
+  ];
+
+  buildInputs = [ libadwaita ];
+
+  build-system = with python3Packages; [ setuptools ];
+
+  dependencies = with python3Packages; [
+    pygobject3
+    pygit2
+  ];
+
+  postInstall = ''
+    python ./install.py install
+  '';
+
+  # Avoid wrapping two times
+  dontWrapGApps = true;
+
+  # Make sure we patch other scripts after wrapper is generated
+  # to get $program_PYTHONPATH
+  dontWrapPythonPrograms = true;
+
+  postFixup =
+    ''
+      makeWrapperArgs+=(''${gappsWrapperArgs[@]})
+      wrapPythonPrograms
+    ''
+    # Dialogs are not imported, but executed. The same does
+    # nautilus-python plugins. So we need to patch them as well.
+    + ''
+      for dialog_scripts in $out/lib/python*/site-packages/turtlevcs/dialogs/*.py; do
+        patchPythonScript $dialog_scripts
+      done
+      for nautilus_extensions in $out/share/nautilus-python/extensions/*.py; do
+        patchPythonScript $nautilus_extensions
+      done
+    '';
+
+  meta = {
+    description = "Graphical interface for version control intended to run on gnome and nautilus";
+    homepage = "https://gitlab.gnome.org/philippun1/turtle";
+    license = lib.licenses.gpl3Plus;
+    mainProgram = "turtle_cli";
+    maintainers = with lib.maintainers; [ aleksana ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/pkgs/by-name/tu/tuxmux/package.nix b/pkgs/by-name/tu/tuxmux/package.nix
index 871a3b7c4bf2f..e3ed1eb1de2e4 100644
--- a/pkgs/by-name/tu/tuxmux/package.nix
+++ b/pkgs/by-name/tu/tuxmux/package.nix
@@ -9,23 +9,23 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tuxmux";
-  version = "0.1.1";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "edeneast";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-BZ1Vo1NIpzUBGyvd/UbxLaFbrLzoaP8kn/8GoAYBmlo=";
+    hash = "sha256-HujdIT55NmXpHDa0a4EmB30va8bNdZ/MHu7+SwF9Nvc=";
   };
 
-  cargoHash = "sha256-HIYQPHLMhQtpCIkl5EzjJGHXzBtw7mY85l5bqapw3rg=";
+  cargoHash = "sha256-ceXeYa8MGGc0I8Q/r4GVsR71St/hlNc75a20BN0Haas=";
 
   buildInputs = [ libiconv ];
   nativeBuildInputs = [ pkg-config installShellFiles ];
 
   postInstall = ''
-    installShellCompletion $releaseDir/../completions/tm.{bash,fish}
-    installShellCompletion --zsh $releaseDir/../completions/_tm
+    installShellCompletion $releaseDir/../completions/tux.{bash,fish}
+    installShellCompletion --zsh $releaseDir/../completions/_tux
 
     installManPage $releaseDir/../man/*
   '';
@@ -35,6 +35,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/edeneast/tuxmux";
     license = licenses.asl20;
     maintainers = with maintainers; [ edeneast ];
-    mainProgram = "tm";
+    mainProgram = "tux";
   };
 }
diff --git a/pkgs/by-name/tw/twiggy/package.nix b/pkgs/by-name/tw/twiggy/package.nix
index 25d8ab244d9ef..29e99a6841ed2 100644
--- a/pkgs/by-name/tw/twiggy/package.nix
+++ b/pkgs/by-name/tw/twiggy/package.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://rustwasm.github.io/twiggy/";
-    description = "A code size profiler for Wasm";
+    description = "Code size profiler for Wasm";
     mainProgram = "twiggy";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ lucperkins ];
diff --git a/pkgs/by-name/tx/txr/package.nix b/pkgs/by-name/tx/txr/package.nix
index c4ef407a975c0..0b40b8e77a596 100644
--- a/pkgs/by-name/tx/txr/package.nix
+++ b/pkgs/by-name/tx/txr/package.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://nongnu.org/txr";
-    description = "An Original, New Programming Language for Convenient Data Munging";
+    description = "Original, New Programming Language for Convenient Data Munging";
     longDescription = ''
       TXR is a general-purpose, multi-paradigm programming language. It
       comprises two languages integrated into a single tool: a text scanning and
diff --git a/pkgs/by-name/ty/typos-lsp/package.nix b/pkgs/by-name/ty/typos-lsp/package.nix
index 0c69a0cf1a4ce..46e370cfa291c 100644
--- a/pkgs/by-name/ty/typos-lsp/package.nix
+++ b/pkgs/by-name/ty/typos-lsp/package.nix
@@ -6,16 +6,16 @@ rustPlatform.buildRustPackage rec {
   pname = "typos-lsp";
   # Please update the corresponding VSCode extension too.
   # See pkgs/applications/editors/vscode/extensions/tekumara.typos-vscode/default.nix
-  version = "0.1.18";
+  version = "0.1.19";
 
   src = fetchFromGitHub {
     owner = "tekumara";
     repo = "typos-lsp";
     rev = "refs/tags/v${version}";
-    hash = "sha256-6ELn2Q7pAUgnwe8+vAUbuRjaKFWvbGZ1SMfXQ1qKp5c=";
+    hash = "sha256-3bXOMW6aU4ryJqrUmpCIbBqRWrh4R6tlkEHPqpPSsVI=";
   };
 
-  cargoHash = "sha256-UDID+dI8ETP084WR482uWli2++bI4mRiMvpFpWUlvZE=";
+  cargoHash = "sha256-3GHVGjn4upI7U8GyxwlrLpchWALGFuMSektCrwLiIIM=";
 
   # fix for compilation on aarch64
   # see https://github.com/NixOS/nixpkgs/issues/145726
diff --git a/pkgs/by-name/ty/typst-preview/package.nix b/pkgs/by-name/ty/typst-preview/package.nix
index deb0981ca0385..b0e6c780e5d67 100644
--- a/pkgs/by-name/ty/typst-preview/package.nix
+++ b/pkgs/by-name/ty/typst-preview/package.nix
@@ -14,13 +14,13 @@
 let
   # Keep the vscode "mgt19937.typst-preview" extension in sync when updating
   # this package at pkgs/applications/editors/vscode/extensions/default.nix
-  version = "0.11.6";
+  version = "0.11.7";
 
   src = fetchFromGitHub {
     owner = "Enter-tainer";
     repo = "typst-preview";
     rev = "v${version}";
-    hash = "sha256-z01Xm2NLWGn0/jEiVmoJKqcEXT5gqLs3H805LPUMDJw=";
+    hash = "sha256-N4PK9RucuOwminikayXq9aqK9l6T6v9a6tcksMllKdM=";
     fetchSubmodules = true;
 
     postFetch = ''
@@ -92,7 +92,7 @@ rustPlatform.buildRustPackage {
   pname = "typst-preview";
   inherit version src;
 
-  cargoHash = "sha256-Ay9YKTLks3ly0hftP7jHr7C1L5vuj1aK5lFWZiWlzNc=";
+  cargoHash = "sha256-JDUHESH0aFIlXX61IxOXNSaTlFCgo3hFRbfoQWWq6e0=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/by-name/ty/typst/package.nix b/pkgs/by-name/ty/typst/package.nix
index 32c962e96e732..11e5b9f5870b1 100644
--- a/pkgs/by-name/ty/typst/package.nix
+++ b/pkgs/by-name/ty/typst/package.nix
@@ -66,7 +66,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = {
     changelog = "https://github.com/typst/typst/releases/tag/${src.rev}";
-    description = "A new markup-based typesetting system that is powerful and easy to learn";
+    description = "New markup-based typesetting system that is powerful and easy to learn";
     homepage = "https://github.com/typst/typst";
     license = lib.licenses.asl20;
     mainProgram = "typst";
diff --git a/pkgs/by-name/ty/typstfmt/package.nix b/pkgs/by-name/ty/typstfmt/package.nix
index 25816151d5838..f3cd8fc62e88e 100644
--- a/pkgs/by-name/ty/typstfmt/package.nix
+++ b/pkgs/by-name/ty/typstfmt/package.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = {
     changelog = "https://github.com/astrale-sharp/typstfmt/blob/${src.rev}/CHANGELOG.md";
-    description = "A formatter for the Typst language";
+    description = "Formatter for the Typst language";
     homepage = "https://github.com/astrale-sharp/typstfmt";
     license = lib.licenses.mit;
     mainProgram = "typstfmt";
diff --git a/pkgs/by-name/ty/typstyle/package.nix b/pkgs/by-name/ty/typstyle/package.nix
index bccbccfba9a7e..c6640cc6dd626 100644
--- a/pkgs/by-name/ty/typstyle/package.nix
+++ b/pkgs/by-name/ty/typstyle/package.nix
@@ -6,20 +6,23 @@
 , zlib
 , stdenv
 , darwin
+, nix-update-script
+, testers
+, typstyle
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "typstyle";
-  version = "0.11.22";
+  version = "0.11.26";
 
   src = fetchFromGitHub {
     owner = "Enter-tainer";
     repo = "typstyle";
-    rev = "v${version}";
-    hash = "sha256-DyYx//KubbRN1zyBoBoL4MRuHZBDngXazC7HiuA+4Sk=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-zuMsYSiGHJkvI1y+vH77FHzCZFPkYqVoeve2kXwKVDI=";
   };
 
-  cargoHash = "sha256-+Hd1u9mUJ2SPfx0mOYT2KiDY7+/Q3EjkVyS++jgUtFs=";
+  cargoHash = "sha256-PVve8zJvMQuMw4k2fEnjA2viv+f3dNgQ6xmPjbx7EgY=";
 
   nativeBuildInputs = [
     pkg-config
@@ -40,6 +43,11 @@ rustPlatform.buildRustPackage rec {
     "--skip=e2e"
   ];
 
+  passthru = {
+    updateScript = nix-update-script { };
+    tests.version = testers.testVersion { package = typstyle; };
+  };
+
   meta = {
     changelog = "https://github.com/Enter-tainer/typstyle/blob/${src.rev}/CHANGELOG.md";
     description = "Format your typst source code";
diff --git a/pkgs/by-name/uc/uchecker/package.nix b/pkgs/by-name/uc/uchecker/package.nix
index a4746a1e0dfda..e3729be50ece7 100644
--- a/pkgs/by-name/uc/uchecker/package.nix
+++ b/pkgs/by-name/uc/uchecker/package.nix
@@ -39,7 +39,7 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   meta = with lib; {
-    description = "A simple tool to detect outdated shared libraries";
+    description = "Simple tool to detect outdated shared libraries";
     homepage = "https://github.com/cloudlinux/kcare-uchecker";
     changelog = "https://github.com/cloudlinux/kcare-uchecker/releases/tag/v${version}";
     license = licenses.gpl2Only;
diff --git a/pkgs/by-name/uc/uclibc-ng/package.nix b/pkgs/by-name/uc/uclibc-ng/package.nix
index aee6f6f015f18..fb3e76c58b98c 100644
--- a/pkgs/by-name/uc/uclibc-ng/package.nix
+++ b/pkgs/by-name/uc/uclibc-ng/package.nix
@@ -1,5 +1,5 @@
 { lib
-, stdenv
+, stdenvNoLibc
 , buildPackages
 , fetchurl
 , gitUpdater
@@ -9,6 +9,7 @@
 }:
 
 let
+  stdenv = stdenvNoLibc;
   isCross = (stdenv.buildPlatform != stdenv.hostPlatform);
   configParser = ''
     function parseconfig {
diff --git a/pkgs/by-name/ud/udev-gothic-nf/package.nix b/pkgs/by-name/ud/udev-gothic-nf/package.nix
index 5a993276cad17..14f66f5e4f7f5 100644
--- a/pkgs/by-name/ud/udev-gothic-nf/package.nix
+++ b/pkgs/by-name/ud/udev-gothic-nf/package.nix
@@ -16,7 +16,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A programming font that combines BIZ UD Gothic, JetBrains Mono and nerd-fonts";
+    description = "Programming font that combines BIZ UD Gothic, JetBrains Mono and nerd-fonts";
     homepage = "https://github.com/yuru7/udev-gothic";
     license = licenses.ofl;
     maintainers = with maintainers; [ haruki7049 ];
diff --git a/pkgs/by-name/ud/udev-gothic/package.nix b/pkgs/by-name/ud/udev-gothic/package.nix
index ef50de5d6000d..4acb50ee342a4 100644
--- a/pkgs/by-name/ud/udev-gothic/package.nix
+++ b/pkgs/by-name/ud/udev-gothic/package.nix
@@ -16,7 +16,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A programming font that combines BIZ UD Gothic and JetBrains Mono";
+    description = "Programming font that combines BIZ UD Gothic and JetBrains Mono";
     homepage = "https://github.com/yuru7/udev-gothic";
     license = licenses.ofl;
     maintainers = with maintainers; [ haruki7049 ];
diff --git a/pkgs/by-name/ue/ueberzugpp/package.nix b/pkgs/by-name/ue/ueberzugpp/package.nix
index cc0e0cd795358..b41f7693c5171 100644
--- a/pkgs/by-name/ue/ueberzugpp/package.nix
+++ b/pkgs/by-name/ue/ueberzugpp/package.nix
@@ -30,13 +30,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ueberzugpp";
-  version = "2.9.5";
+  version = "2.9.6";
 
   src = fetchFromGitHub {
     owner = "jstkdng";
     repo = "ueberzugpp";
     rev = "v${version}";
-    hash = "sha256-BuVInCYpogkn1CnQ2hqLaTi1KJ0mHEEfRIOrTIg9duY=";
+    hash = "sha256-qo9Rwnx6Oh8DRcCBUMS3JVdNyx1iZSB2Z1qfptUoPFQ=";
   };
 
   strictDeps = true;
diff --git a/pkgs/by-name/ue/uefisettings/package.nix b/pkgs/by-name/ue/uefisettings/package.nix
index f23f5d472a198..3315a5da78882 100644
--- a/pkgs/by-name/ue/uefisettings/package.nix
+++ b/pkgs/by-name/ue/uefisettings/package.nix
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage {
   ];
 
   meta = with lib; {
-    description = "CLI tool to read/get/extract and write/change/modify BIOS/UEFI settings.";
+    description = "CLI tool to read/get/extract and write/change/modify BIOS/UEFI settings";
     homepage = "https://github.com/linuxboot/uefisettings";
     license = with licenses; [ bsd3 ];
     mainProgram = "uefisettings";
diff --git a/pkgs/by-name/ug/ugm/package.nix b/pkgs/by-name/ug/ugm/package.nix
index cccaf83848b40..4a5825219b96f 100644
--- a/pkgs/by-name/ug/ugm/package.nix
+++ b/pkgs/by-name/ug/ugm/package.nix
@@ -29,7 +29,7 @@ buildGoModule rec {
   passthru.updateScript = nix-update-script {};
 
   meta = with lib; {
-    description = "A terminal based UNIX user and group browser";
+    description = "Terminal based UNIX user and group browser";
     homepage = "https://github.com/ariasmn/ugm";
     changelog = "https://github.com/ariasmn/ugm/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/by-name/ui/uiua/package.nix b/pkgs/by-name/ui/uiua/package.nix
index e6f518fc09583..d2552459474f0 100644
--- a/pkgs/by-name/ui/uiua/package.nix
+++ b/pkgs/by-name/ui/uiua/package.nix
@@ -18,16 +18,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "uiua";
-  version = "0.10.3";
+  version = "0.11.1";
 
   src = fetchFromGitHub {
     owner = "uiua-lang";
     repo = "uiua";
     rev = version;
-    hash = "sha256-lqFDzM6EscC8cFPGq/JnEybctaurNRoEQi0zxFaKgwI=";
+    hash = "sha256-bK5Z6aoyZti46GLulpdxGPxHM+EfEVQgeAUY6fRc7YY=";
   };
 
-  cargoHash = "sha256-R97KO3MYmtO9C1Hi9kU+1FDdbOCVQk+gwVXTTvbeok4=";
+  cargoHash = "sha256-iq5V+FGOcK2opmA4ot0KF9ZToYWC82gRsRyVqftuFPA=";
 
   nativeBuildInputs =
     lib.optionals stdenv.isDarwin [ rustPlatform.bindgenHook ]
@@ -52,7 +52,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = {
     changelog = "https://github.com/uiua-lang/uiua/blob/${src.rev}/changelog.md";
-    description = "A stack-oriented array programming language with a focus on simplicity, beauty, and tacit code";
+    description = "Stack-oriented array programming language with a focus on simplicity, beauty, and tacit code";
     longDescription = ''
       Uiua combines the stack-oriented and array-oriented paradigms in a single
       language. Combining these already terse paradigms results in code with a very
diff --git a/pkgs/by-name/ui/uiua386/package.nix b/pkgs/by-name/ui/uiua386/package.nix
index aa659df3b4dee..6b37680ba2323 100644
--- a/pkgs/by-name/ui/uiua386/package.nix
+++ b/pkgs/by-name/ui/uiua386/package.nix
@@ -14,7 +14,7 @@ stdenvNoCC.mkDerivation {
   '';
 
   meta = {
-    description = "A Uiua font";
+    description = "Uiua font";
     homepage = "https://uiua.org/";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ skykanin ];
diff --git a/pkgs/by-name/un/unbook/package.nix b/pkgs/by-name/un/unbook/package.nix
index 91b7d66008303..28c73451a18d0 100644
--- a/pkgs/by-name/un/unbook/package.nix
+++ b/pkgs/by-name/un/unbook/package.nix
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "An ebook to self-contained-HTML converter";
+    description = "Ebook to self-contained-HTML converter";
     homepage = "https://unbook.ludios.org";
     license = licenses.cc0;
     maintainers = with maintainers; [ jmbaur ];
diff --git a/pkgs/by-name/un/unciv/package.nix b/pkgs/by-name/un/unciv/package.nix
index 7331b78366e76..2f41aa57ecbac 100644
--- a/pkgs/by-name/un/unciv/package.nix
+++ b/pkgs/by-name/un/unciv/package.nix
@@ -15,9 +15,15 @@ let
     exec = "unciv";
     comment = "An open-source Android/Desktop remake of Civ V";
     desktopName = "Unciv";
+    icon = "unciv";
     categories = [ "Game" ];
   };
 
+  desktopIcon = fetchurl {
+    url = "https://github.com/yairm210/Unciv/blob/4.11.16/extraImages/Icons/Unciv%20icon%20v6.png?raw=true";
+    hash = "sha256-Zuz+HGfxjGviGBKTiHdIFXF8UMRLEIfM8f+LIB/xonk=";
+  };
+
   envLibPath = lib.makeLibraryPath (lib.optionals stdenv.isLinux [
     libGL
     libpulseaudio
@@ -27,11 +33,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "unciv";
-  version = "4.11.13";
+  version = "4.11.16";
 
   src = fetchurl {
     url = "https://github.com/yairm210/Unciv/releases/download/${version}/Unciv.jar";
-    hash = "sha256-8XuwG64YUcUOblOdrKI4FxSFzn9xjZPAEz05+7rR1Pk=";
+    hash = "sha256-hvWXqPT+GeMaBa7so0S1KjsH5fpnbcbEIWsq6KUbFTk=";
   };
 
   dontUnpack = true;
@@ -46,13 +52,15 @@ stdenv.mkDerivation rec {
       --prefix PATH : ${lib.makeBinPath [ jre ]} \
       --add-flags "-jar ${src}"
 
+    install -Dm444 ${desktopIcon} $out/share/icons/hicolor/512x512/apps/unciv.png
+
     runHook postInstall
   '';
 
   desktopItems = [ desktopItem ];
 
   meta = with lib; {
-    description = "An open-source Android/Desktop remake of Civ V";
+    description = "Open-source Android/Desktop remake of Civ V";
     mainProgram = "unciv";
     homepage = "https://github.com/yairm210/Unciv";
     maintainers = with maintainers; [ tex ];
diff --git a/pkgs/by-name/un/undbx/package.nix b/pkgs/by-name/un/undbx/package.nix
index 69db03479e995..269abccdbdf21 100644
--- a/pkgs/by-name/un/undbx/package.nix
+++ b/pkgs/by-name/un/undbx/package.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , autoreconfHook
 }:
 
diff --git a/pkgs/by-name/un/undertime/package.nix b/pkgs/by-name/un/undertime/package.nix
new file mode 100644
index 0000000000000..a754229f4d171
--- /dev/null
+++ b/pkgs/by-name/un/undertime/package.nix
@@ -0,0 +1,47 @@
+{ lib
+, python3Packages
+, fetchFromGitLab
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "undertime";
+  version = "4.0.0";
+  pyproject = true;
+
+  src = fetchFromGitLab {
+    owner = "anarcat";
+    repo = pname;
+    rev = version;
+    hash = "sha256-BshgSnYaeX01KQ1fggB+yXEfg3Trhpcf/k4AmBDPxy8=";
+  };
+
+  nativeBuildInputs = with python3Packages; [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
+    dateparser
+    ephem
+    pytz
+    pyyaml
+    termcolor
+    tabulate
+    tzlocal
+  ];
+
+  meta = {
+    changelog = "https://gitlab.com/anarcat/undertime/-/raw/${version}/debian/changelog";
+    description = "pick a meeting time across timezones from the commandline";
+    homepage = "https://gitlab.com/anarcat/undertime";
+    longDescription = ''
+      Undertime draws a simple 24 hour table of matching times across
+      different timezones or cities, outlining waking hours. This allows
+      picking an ideal meeting date across multiple locations for teams
+      working internationally.
+    '';
+    license = lib.licenses.agpl3Only;
+    mainProgram = "undertime";
+    maintainers = with lib.maintainers; [ dvn0 ];
+  };
+}
diff --git a/pkgs/by-name/un/uni-sync/package.nix b/pkgs/by-name/un/uni-sync/package.nix
index 6124e621dfb9e..de58c54deb4b7 100644
--- a/pkgs/by-name/un/uni-sync/package.nix
+++ b/pkgs/by-name/un/uni-sync/package.nix
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-DdmjP0h15cXkHJZxvOcINgoZ/EhTgu/7iYb+bgsIXxU=";
 
   meta = with lib; {
-    description = "A synchronization tool for Lian Li Uni Controllers";
+    description = "Synchronization tool for Lian Li Uni Controllers";
     homepage = "https://github.com/EightB1ts/uni-sync";
     license = licenses.mit;
     maintainers = with maintainers; [ yunfachi ];
diff --git a/pkgs/by-name/un/unipicker/package.nix b/pkgs/by-name/un/unipicker/package.nix
index 5f0bca5ef9629..9549c30f78150 100644
--- a/pkgs/by-name/un/unipicker/package.nix
+++ b/pkgs/by-name/un/unipicker/package.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = {
-    description = "A CLI utility for searching unicode characters by description and optionally copying them to clipboard";
+    description = "CLI utility for searching unicode characters by description and optionally copying them to clipboard";
     homepage = "https://github.com/jeremija/unipicker";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ sigmanificient ];
diff --git a/pkgs/by-name/un/unison-fsmonitor/package.nix b/pkgs/by-name/un/unison-fsmonitor/package.nix
index 6cc8913d3982a..b351071b6d307 100644
--- a/pkgs/by-name/un/unison-fsmonitor/package.nix
+++ b/pkgs/by-name/un/unison-fsmonitor/package.nix
@@ -7,15 +7,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "unison-fsmonitor";
-  version = "0.3.3";
+  version = "0.3.4";
 
   src = fetchFromGitHub {
     owner = "autozimu";
     repo = "unison-fsmonitor";
     rev = "v${version}";
-    hash = "sha256-JA0WcHHDNuQOal/Zy3yDb+O3acZN3rVX1hh0rOtRR+8=";
+    hash = "sha256-U/KMKYqYVSeYBmW+PnXtvjnyUTjTJgtpwy1GPefqJOk=";
   };
-  cargoHash = "sha256-aqAa0F1NSJI1nckTjG5C7VLxaLjJgD+9yK/IpclSMqs=";
+  cargoHash = "sha256-eKRayFU3xq2uo6YeFqcTPLInZYlympH6Z01vOCVsVqQ=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.CoreServices
diff --git a/pkgs/by-name/un/universal-android-debloater/package.nix b/pkgs/by-name/un/universal-android-debloater/package.nix
index f48cfebe0ecdd..30803b31de5fd 100644
--- a/pkgs/by-name/un/universal-android-debloater/package.nix
+++ b/pkgs/by-name/un/universal-android-debloater/package.nix
@@ -54,7 +54,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A tool to debloat non-rooted Android devices";
+    description = "Tool to debloat non-rooted Android devices";
     changelog = "https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation/blob/${src.rev}/CHANGELOG.md";
     homepage = "https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation";
     license = licenses.gpl3Only;
diff --git a/pkgs/by-name/up/upbound/package.nix b/pkgs/by-name/up/upbound/package.nix
index 421be958b1687..8fb31b33df332 100644
--- a/pkgs/by-name/up/upbound/package.nix
+++ b/pkgs/by-name/up/upbound/package.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "upbound";
-  version = "0.30.0";
+  version = "0.31.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "up";
     rev = "v${version}";
-    sha256 = "sha256-KAWyHlqgj4xz3abSSa1cezpeDTmJbGSZAMffq3p/CyI=";
+    sha256 = "sha256-nXP97J0DdcXPAD/gB3py5UXhe48Kaec7CRTHmalo+RQ=";
   };
 
-  vendorHash = "sha256-4o1WJHGHiO9r8RC8hr4KWZBiC8h52la1gKdYaYxEjbk=";
+  vendorHash = "sha256-9HnKpofJPxCieG5thNcLC7diA51ohzy7xgtniL7FEgo=";
 
   subPackages = [ "cmd/docker-credential-up" "cmd/up" ];
 
diff --git a/pkgs/by-name/up/updatecli/package.nix b/pkgs/by-name/up/updatecli/package.nix
index c3999383ba9ea..2b509597d2d51 100644
--- a/pkgs/by-name/up/updatecli/package.nix
+++ b/pkgs/by-name/up/updatecli/package.nix
@@ -1,23 +1,26 @@
-{ lib
-, go
-, buildGoModule
-, fetchFromGitHub
-, nix-update-script
-, installShellFiles
+{
+  lib,
+  go,
+  buildGoModule,
+  fetchFromGitHub,
+  nix-update-script,
+  installShellFiles,
+  testers,
+  updatecli,
 }:
 
 buildGoModule rec {
   pname = "updatecli";
-  version = "0.77.0";
+  version = "0.78.0";
 
   src = fetchFromGitHub {
     owner = "updatecli";
-    repo = pname;
+    repo = "updatecli";
     rev = "v${version}";
-    hash = "sha256-sBkTdr4/DqNrCxtaM1tVTx+rQ1dvJ1KwlFvAJHIZCuw=";
+    hash = "sha256-VpMi+r7QUSD99PRzbTeIxXn1O9GdfHNJM1F0OBzvNmc=";
   };
 
-  vendorHash = "sha256-xY2nNDMnUyV2sOMOJfSHbXaEU/gOKfZkA77d0lhDlgg=";
+  vendorHash = "sha256-Ji8r5c8LP7StGp/ve9RkQDeL21HBoK3Fln8LGBeqBpw=";
 
   # tests require network access
   doCheck = false;
@@ -32,7 +35,13 @@ buildGoModule rec {
     "-X github.com/updatecli/updatecli/pkg/core/version.Version=${version}"
   ];
 
-  passthru.updateScript = nix-update-script { };
+  passthru = {
+    updateScript = nix-update-script { };
+    tests.version = testers.testVersion {
+      package = updatecli;
+      command = "updatecli version";
+    };
+  };
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -47,12 +56,12 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A Declarative Dependency Management tool";
+    description = "Declarative Dependency Management tool";
     longDescription = ''
       Updatecli is a command-line tool used to define and apply update strategies.
     '';
     homepage = "https://www.updatecli.io";
-    changelog = "https://github.com/updatecli/updatecli/releases/tag/v${version}";
+    changelog = "https://github.com/updatecli/updatecli/releases/tag/${src.rev}";
     license = licenses.asl20;
     mainProgram = "updatecli";
     maintainers = with maintainers; [ croissong ];
diff --git a/pkgs/by-name/up/upiano/package.nix b/pkgs/by-name/up/upiano/package.nix
index 351e80f0b6d09..46224f45a9bb3 100644
--- a/pkgs/by-name/up/upiano/package.nix
+++ b/pkgs/by-name/up/upiano/package.nix
@@ -36,7 +36,7 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   meta = with lib; {
-    description = "A Piano in your terminal";
+    description = "Piano in your terminal";
     homepage = "https://github.com/eliasdorneles/upiano";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/pkgs/by-name/up/upsun/package.nix b/pkgs/by-name/up/upsun/package.nix
index 97b32c03fe951..b81390ffc9c18 100644
--- a/pkgs/by-name/up/upsun/package.nix
+++ b/pkgs/by-name/up/upsun/package.nix
@@ -52,7 +52,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   };
 
   meta = {
-    description = "The unified tool for managing your Upsun services from the command line";
+    description = "Unified tool for managing your Upsun services from the command line";
     homepage = "https://github.com/platformsh/cli";
     license = lib.licenses.mit;
     mainProgram = "upsun";
diff --git a/pkgs/by-name/us/usql/package.nix b/pkgs/by-name/us/usql/package.nix
index 1297da876c318..3206f6216f207 100644
--- a/pkgs/by-name/us/usql/package.nix
+++ b/pkgs/by-name/us/usql/package.nix
@@ -11,18 +11,18 @@
 
 buildGoModule rec {
   pname = "usql";
-  version = "0.19.1";
+  version = "0.19.3";
 
   src = fetchFromGitHub {
     owner = "xo";
     repo = "usql";
     rev = "v${version}";
-    hash = "sha256-O0NsxOPp09W6FFdVjoCBUDSEkMct/MX/sLWDpoCmwwM=";
+    hash = "sha256-VenqDYkBJ4XJ2zV7kaVvwlgDyCaTY77zQ5hPq5cOZKg=";
   };
 
   buildInputs = [ unixODBC icu ];
 
-  vendorHash = "sha256-4WGxstIwjq7u+4UZ03IAONi58Vlg3p82fEOkfPS3eT4=";
+  vendorHash = "sha256-KdLUxgNGMkkWBhUpXSecu0m3fsKl7Qj8Aw3z8WcdnSs=";
   proxyVendor = true;
 
   # Exclude drivers from the bad group
diff --git a/pkgs/by-name/ut/ut1999/package.nix b/pkgs/by-name/ut/ut1999/package.nix
index acc719a42cfd6..2e2652f411781 100644
--- a/pkgs/by-name/ut/ut1999/package.nix
+++ b/pkgs/by-name/ut/ut1999/package.nix
@@ -119,7 +119,7 @@ in stdenv.mkDerivation {
   ];
 
   meta = with lib; {
-    description = "Unreal Tournament GOTY (1999) with the OldUnreal patch.";
+    description = "Unreal Tournament GOTY (1999) with the OldUnreal patch";
     license = licenses.unfree;
     platforms = attrNames srcs;
     maintainers = with maintainers; [ eliandoran ];
diff --git a/pkgs/by-name/uu/uuu/package.nix b/pkgs/by-name/uu/uuu/package.nix
index d0fa46bb6a406..c3cfef25fa6ee 100755
--- a/pkgs/by-name/uu/uuu/package.nix
+++ b/pkgs/by-name/uu/uuu/package.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "uuu";
-  version = "1.5.181";
+  version = "1.5.182";
 
   src = fetchFromGitHub {
     owner = "nxp-imx";
     repo = "mfgtools";
     rev = "uuu_${finalAttrs.version}";
-    hash = "sha256-HMpirdXpcBFTkO7anGDIjsBJKjQ+kIN4kDhPlcqIDqY=";
+    hash = "sha256-I0EX+vsaOwz+HJUWFC5Z/xRu6xegzEfmuAlBd/OSAp4=";
   };
 
   passthru.updateScript = nix-update-script {
diff --git a/pkgs/by-name/uv/uv/Cargo.lock b/pkgs/by-name/uv/uv/Cargo.lock
index 7dad90cf952ac..174a1d9d682cd 100644
--- a/pkgs/by-name/uv/uv/Cargo.lock
+++ b/pkgs/by-name/uv/uv/Cargo.lock
@@ -4,9 +4,9 @@ version = 3
 
 [[package]]
 name = "addr2line"
-version = "0.21.0"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678"
 dependencies = [
  "gimli",
 ]
@@ -200,9 +200,9 @@ dependencies = [
 
 [[package]]
 name = "async-compression"
-version = "0.4.10"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c90a406b4495d129f00461241616194cb8a032c8d1c53c657f0961d5f8e0498"
+checksum = "cd066d0b4ef8ecb03a55319dc13aa6910616d0f44008a045bb1835af830abff5"
 dependencies = [
  "brotli",
  "bzip2",
@@ -224,7 +224,7 @@ checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.64",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -275,9 +275,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
 
 [[package]]
 name = "axoasset"
-version = "0.9.3"
+version = "0.9.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d492e2a60fbacf2154ee58fd4bc3dd7385a5febf10fef6145924fd3117cd920"
+checksum = "83394fb98d130ef5a4713d26dccc1bb25c66e1d58f351fed710af62c57abb8fa"
 dependencies = [
  "camino",
  "miette",
@@ -313,9 +313,9 @@ dependencies = [
 
 [[package]]
 name = "axoupdater"
-version = "0.6.4"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d6bf8aaa32e7d33071ed9a339fc34ac30b0a5190f82069fbd12a1266bda9068"
+checksum = "8cc5997cf9d00fa790ba6f19688d93b89760bd641d1c2482bcfbc2bf56988576"
 dependencies = [
  "axoasset",
  "axoprocess",
@@ -325,7 +325,7 @@ dependencies = [
  "miette",
  "reqwest",
  "serde",
- "temp-dir",
+ "tempfile",
  "thiserror",
  "tokio",
 ]
@@ -346,9 +346,9 @@ dependencies = [
 
 [[package]]
 name = "backtrace"
-version = "0.3.71"
+version = "0.3.72"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d"
+checksum = "17c6a35df3749d2e8bb1b7b21a976d82b15548788d2735b9d82f329268f71a11"
 dependencies = [
  "addr2line",
  "cc",
@@ -395,16 +395,20 @@ dependencies = [
  "criterion",
  "distribution-filename",
  "distribution-types",
+ "install-wheel-rs",
  "once_cell",
  "pep508_rs",
  "platform-tags",
+ "pypi-types",
  "tokio",
  "uv-cache",
  "uv-client",
  "uv-configuration",
+ "uv-dispatch",
  "uv-distribution",
- "uv-interpreter",
+ "uv-git",
  "uv-resolver",
+ "uv-toolchain",
  "uv-types",
 ]
 
@@ -460,9 +464,9 @@ dependencies = [
 
 [[package]]
 name = "brotli-decompressor"
-version = "4.0.0"
+version = "4.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6221fe77a248b9117d431ad93761222e1cf8ff282d9d1d5d9f53d6299a1cf76"
+checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362"
 dependencies = [
  "alloc-no-stdlib",
  "alloc-stdlib",
@@ -604,9 +608,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
 
 [[package]]
 name = "cc"
-version = "1.0.97"
+version = "1.0.98"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "099a5357d84c4c61eb35fc8eafa9a79a902c2f76911e5747ced4e032edd8d9b4"
+checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
 dependencies = [
  "jobserver",
  "libc",
@@ -679,9 +683,9 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.5.4"
+version = "4.5.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0"
+checksum = "5db83dced34638ad474f39f250d7fea9598bdd239eaced1bdf45d597da0f433f"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -689,9 +693,9 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.5.2"
+version = "4.5.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
+checksum = "f7e204572485eb3fbf28f871612191521df159bc3e15a9f5064c66dba3a8c05f"
 dependencies = [
  "anstream",
  "anstyle",
@@ -743,14 +747,14 @@ dependencies = [
 
 [[package]]
 name = "clap_derive"
-version = "4.5.4"
+version = "4.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64"
+checksum = "c780290ccf4fb26629baa7a1081e68ced113f1d3ec302fa5948f1c381ebf06c6"
 dependencies = [
  "heck 0.5.0",
  "proc-macro2",
  "quote",
- "syn 2.0.64",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -823,9 +827,9 @@ dependencies = [
 
 [[package]]
 name = "configparser"
-version = "3.0.4"
+version = "3.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ec6d3da8e550377a85339063af6e3735f4b1d9392108da4e083a1b3b9820288"
+checksum = "e57e3272f0190c3f1584272d613719ba5fc7df7f4942fe542e63d949cf3a649b"
 
 [[package]]
 name = "console"
@@ -867,9 +871,9 @@ dependencies = [
 
 [[package]]
 name = "crc32fast"
-version = "1.4.0"
+version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
+checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
 dependencies = [
  "cfg-if",
 ]
@@ -931,9 +935,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.19"
+version = "0.8.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
 
 [[package]]
 name = "crunchy"
@@ -1056,7 +1060,6 @@ checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
 dependencies = [
  "block-buffer",
  "crypto-common",
- "subtle",
 ]
 
 [[package]]
@@ -1102,8 +1105,6 @@ dependencies = [
  "cache-key",
  "distribution-filename",
  "fs-err",
- "git2",
- "indexmap",
  "itertools 0.13.0",
  "once_cell",
  "pep440_rs",
@@ -1111,7 +1112,6 @@ dependencies = [
  "platform-tags",
  "pypi-types",
  "rkyv",
- "rustc-hash",
  "schemars",
  "serde",
  "serde_json",
@@ -1190,9 +1190,9 @@ dependencies = [
 
 [[package]]
 name = "event-listener"
-version = "5.3.0"
+version = "5.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d9944b8ca13534cdfb2800775f8dd4902ff3fc75a50101466decadfdf322a24"
+checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba"
 dependencies = [
  "concurrent-queue",
  "parking",
@@ -1393,7 +1393,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.64",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -1438,9 +1438,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.14"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c"
+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -1461,24 +1461,9 @@ dependencies = [
 
 [[package]]
 name = "gimli"
-version = "0.28.1"
+version = "0.29.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
-
-[[package]]
-name = "git2"
-version = "0.18.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "232e6a7bfe35766bf715e55a88b39a700596c0ccfd88cd3680b4cdb40d66ef70"
-dependencies = [
- "bitflags 2.5.0",
- "libc",
- "libgit2-sys",
- "log",
- "openssl-probe",
- "openssl-sys",
- "url",
-]
+checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
 
 [[package]]
 name = "glob"
@@ -1579,15 +1564,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
 
 [[package]]
-name = "hmac"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
-dependencies = [
- "digest",
-]
-
-[[package]]
 name = "home"
 version = "0.5.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1642,12 +1618,12 @@ dependencies = [
 
 [[package]]
 name = "http-body-util"
-version = "0.1.1"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d"
+checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f"
 dependencies = [
  "bytes",
- "futures-core",
+ "futures-util",
  "http",
  "http-body",
  "pin-project-lite",
@@ -1694,26 +1670,28 @@ dependencies = [
 
 [[package]]
 name = "hyper-rustls"
-version = "0.26.0"
+version = "0.27.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c"
+checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155"
 dependencies = [
  "futures-util",
  "http",
  "hyper",
  "hyper-util",
  "rustls",
+ "rustls-native-certs",
  "rustls-pki-types",
  "tokio",
  "tokio-rustls",
  "tower-service",
+ "webpki-roots",
 ]
 
 [[package]]
 name = "hyper-util"
-version = "0.1.3"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa"
+checksum = "7b875924a60b96e5d7b9ae7b066540b1dd1cbd90d1828f54c92e02a283351c56"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -1806,7 +1784,6 @@ dependencies = [
  "number_prefix",
  "portable-atomic",
  "unicode-width",
- "vt100",
 ]
 
 [[package]]
@@ -1867,9 +1844,9 @@ dependencies = [
 
 [[package]]
 name = "instant"
-version = "0.1.12"
+version = "0.1.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -1999,29 +1976,15 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.153"
+version = "0.2.155"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
-
-[[package]]
-name = "libgit2-sys"
-version = "0.16.2+1.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee4126d8b4ee5c9d9ea891dd875cfdc1e9d0950437179104b183d7d8a74d24e8"
-dependencies = [
- "cc",
- "libc",
- "libssh2-sys",
- "libz-sys",
- "openssl-sys",
- "pkg-config",
-]
+checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
 
 [[package]]
 name = "libmimalloc-sys"
-version = "0.1.37"
+version = "0.1.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81eb4061c0582dedea1cbc7aff2240300dd6982e0239d1c99e65c1dbf4a30ba7"
+checksum = "0e7bb23d733dfcc8af652a78b7bf232f0e967710d044732185e561e47c0336b6"
 dependencies = [
  "cc",
  "libc",
@@ -2038,20 +2001,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "libssh2-sys"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee"
-dependencies = [
- "cc",
- "libc",
- "libz-sys",
- "openssl-sys",
- "pkg-config",
- "vcpkg",
-]
-
-[[package]]
 name = "libz-ng-sys"
 version = "1.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2062,18 +2011,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "libz-sys"
-version = "1.1.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9"
-dependencies = [
- "cc",
- "libc",
- "pkg-config",
- "vcpkg",
-]
-
-[[package]]
 name = "linked-hash-map"
 version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2201,14 +2138,14 @@ checksum = "dcf09caffaac8068c346b6df2a7fc27a177fd20b39421a39ce0a211bde679a6c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.64",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "mimalloc"
-version = "0.1.41"
+version = "0.1.42"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f41a2280ded0da56c8cf898babb86e8f10651a34adcfff190ae9a1159c6908d"
+checksum = "e9186d86b79b52f4a77af65604b51225e8db1d6ee7e3f41aec1e40829c71a176"
 dependencies = [
  "libmimalloc-sys",
 ]
@@ -2221,9 +2158,9 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
+checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae"
 dependencies = [
  "adler",
  "simd-adler32",
@@ -2301,9 +2238,9 @@ dependencies = [
 
 [[package]]
 name = "nu-ansi-term"
-version = "0.49.0"
+version = "0.50.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c073d3c1930d0751774acf49e66653acecb416c3a54c6ec095a9b11caddb5a68"
+checksum = "dd2800e1520bdc966782168a627aa5d1ad92e33b984bf7c7615d31280c83ff14"
 dependencies = [
  "windows-sys 0.48.0",
 ]
@@ -2335,9 +2272,9 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
 
 [[package]]
 name = "object"
-version = "0.32.2"
+version = "0.35.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
+checksum = "b8ec7ab813848ba4522158d5517a6093db1ded27575b070f4177b8d12b41db5e"
 dependencies = [
  "memchr",
 ]
@@ -2370,28 +2307,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
-name = "openssl-src"
-version = "300.2.3+3.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "openssl-sys"
-version = "0.9.102"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2"
-dependencies = [
- "cc",
- "libc",
- "openssl-src",
- "pkg-config",
- "vcpkg",
-]
-
-[[package]]
 name = "option-ext"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2428,9 +2343,9 @@ dependencies = [
 
 [[package]]
 name = "parking_lot"
-version = "0.12.2"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb"
+checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
 dependencies = [
  "lock_api",
  "parking_lot_core 0.9.10",
@@ -2488,6 +2403,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "path-slash"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42"
+
+[[package]]
 name = "pathdiff"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2495,7 +2416,7 @@ checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
 
 [[package]]
 name = "pep440_rs"
-version = "0.5.0"
+version = "0.6.0"
 dependencies = [
  "indoc",
  "once_cell",
@@ -2509,7 +2430,7 @@ dependencies = [
 
 [[package]]
 name = "pep508_rs"
-version = "0.4.2"
+version = "0.6.0"
 dependencies = [
  "derivative",
  "insta",
@@ -2567,7 +2488,7 @@ dependencies = [
  "pest_meta",
  "proc-macro2",
  "quote",
- "syn 2.0.64",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -2614,7 +2535,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.64",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -2731,9 +2652,9 @@ dependencies = [
 
 [[package]]
 name = "priority-queue"
-version = "2.0.2"
+version = "2.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "509354d8a769e8d0b567d6821b84495c60213162761a732d68ce87c964bd347f"
+checksum = "70c501afe3a2e25c9bd219aa56ec1e04cdb3fcdd763055be268778c13fa82c1f"
 dependencies = [
  "autocfg",
  "equivalent",
@@ -2742,9 +2663,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.82"
+version = "1.0.85"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b"
+checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23"
 dependencies = [
  "unicode-ident",
 ]
@@ -2772,7 +2693,7 @@ dependencies = [
 [[package]]
 name = "pubgrub"
 version = "0.2.1"
-source = "git+https://github.com/astral-sh/pubgrub?rev=0e684a874c9fb8f74738cd8875524c80e3d4820b#0e684a874c9fb8f74738cd8875524c80e3d4820b"
+source = "git+https://github.com/astral-sh/pubgrub?rev=a68cbd1a26e43986a31563e1d127e83bafca3a0c#a68cbd1a26e43986a31563e1d127e83bafca3a0c"
 dependencies = [
  "indexmap",
  "log",
@@ -2791,7 +2712,7 @@ dependencies = [
  "indoc",
  "libc",
  "memoffset 0.9.1",
- "parking_lot 0.12.2",
+ "parking_lot 0.11.2",
  "portable-atomic",
  "pyo3-build-config",
  "pyo3-ffi",
@@ -2839,7 +2760,7 @@ dependencies = [
  "proc-macro2",
  "pyo3-macros-backend",
  "quote",
- "syn 2.0.64",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -2852,15 +2773,17 @@ dependencies = [
  "proc-macro2",
  "pyo3-build-config",
  "quote",
- "syn 2.0.64",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "pypi-types"
 version = "0.0.1"
 dependencies = [
+ "anyhow",
  "chrono",
  "indexmap",
+ "itertools 0.13.0",
  "mailparse",
  "once_cell",
  "pep440_rs",
@@ -2872,10 +2795,58 @@ dependencies = [
  "toml",
  "tracing",
  "url",
+ "uv-git",
  "uv-normalize",
 ]
 
 [[package]]
+name = "quinn"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4ceeeeabace7857413798eb1ffa1e9c905a9946a57d81fb69b4b71c4d8eb3ad"
+dependencies = [
+ "bytes",
+ "pin-project-lite",
+ "quinn-proto",
+ "quinn-udp",
+ "rustc-hash",
+ "rustls",
+ "thiserror",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "quinn-proto"
+version = "0.11.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ddf517c03a109db8100448a4be38d498df8a210a99fe0e1b9eaf39e78c640efe"
+dependencies = [
+ "bytes",
+ "rand",
+ "ring",
+ "rustc-hash",
+ "rustls",
+ "slab",
+ "thiserror",
+ "tinyvec",
+ "tracing",
+]
+
+[[package]]
+name = "quinn-udp"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9096629c45860fc7fb143e125eb826b5e721e10be3263160c7d60ca832cf8c46"
+dependencies = [
+ "libc",
+ "once_cell",
+ "socket2",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "quote"
 version = "1.0.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3001,20 +2972,20 @@ dependencies = [
 
 [[package]]
 name = "reflink-copy"
-version = "0.1.17"
+version = "0.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c3138c30c59ed9b8572f82bed97ea591ecd7e45012566046cc39e72679cff22"
+checksum = "6d731e7e3ebfcf422d96b8473e507d5b64790900dd5464772d38d1da9da24d3a"
 dependencies = [
  "cfg-if",
  "rustix",
- "windows 0.56.0",
+ "windows 0.57.0",
 ]
 
 [[package]]
 name = "regex"
-version = "1.10.4"
+version = "1.10.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -3075,6 +3046,7 @@ dependencies = [
  "insta",
  "itertools 0.13.0",
  "pep508_rs",
+ "pypi-types",
  "regex",
  "reqwest",
  "reqwest-middleware",
@@ -3094,9 +3066,9 @@ dependencies = [
 
 [[package]]
 name = "reqwest"
-version = "0.12.4"
+version = "0.12.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10"
+checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37"
 dependencies = [
  "async-compression",
  "base64 0.22.1",
@@ -3117,6 +3089,7 @@ dependencies = [
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
+ "quinn",
  "rustls",
  "rustls-native-certs",
  "rustls-pemfile",
@@ -3344,11 +3317,11 @@ dependencies = [
 
 [[package]]
 name = "rustls"
-version = "0.22.4"
+version = "0.23.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432"
+checksum = "05cff451f60db80f490f3c182b77c35260baace73209e9cdbbe526bfe3a4d402"
 dependencies = [
- "log",
+ "once_cell",
  "ring",
  "rustls-pki-types",
  "rustls-webpki",
@@ -3438,9 +3411,9 @@ dependencies = [
 
 [[package]]
 name = "schemars"
-version = "0.8.20"
+version = "0.8.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0218ceea14babe24a4a5836f86ade86c1effbc198164e619194cb5069187e29"
+checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92"
 dependencies = [
  "dyn-clone",
  "schemars_derive",
@@ -3451,14 +3424,14 @@ dependencies = [
 
 [[package]]
 name = "schemars_derive"
-version = "0.8.20"
+version = "0.8.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ed5a1ccce8ff962e31a165d41f6e2a2dd1245099dc4d594f5574a86cd90f4d3"
+checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e"
 dependencies = [
  "proc-macro2",
  "quote",
  "serde_derive_internals",
- "syn 2.0.64",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -3504,22 +3477,22 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
 
 [[package]]
 name = "serde"
-version = "1.0.202"
+version = "1.0.203"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395"
+checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.202"
+version = "1.0.203"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838"
+checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.64",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -3530,7 +3503,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.64",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -3566,17 +3539,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "sha1"
-version = "0.10.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
-dependencies = [
- "cfg-if",
- "cpufeatures",
- "digest",
-]
-
-[[package]]
 name = "sha2"
 version = "0.10.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3772,9 +3734,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.64"
+version = "2.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ad3dee41f36859875573074334c200d1add8e4a87bb37113ebd31d926b7b11f"
+checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -3783,9 +3745,9 @@ dependencies = [
 
 [[package]]
 name = "sync_wrapper"
-version = "0.1.2"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
+checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394"
 
 [[package]]
 name = "sys-info"
@@ -3816,10 +3778,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
 
 [[package]]
-name = "temp-dir"
-version = "0.1.13"
+name = "temp-env"
+version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f227968ec00f0e5322f9b8173c7a0cbcff6181a0a5b28e9892491c286277231"
+checksum = "96374855068f47402c3121c6eed88d29cb1de8f3ab27090e273e420bdabcf050"
+dependencies = [
+ "parking_lot 0.12.3",
+]
 
 [[package]]
 name = "tempfile"
@@ -3867,7 +3832,7 @@ dependencies = [
  "cfg-if",
  "proc-macro2",
  "quote",
- "syn 2.0.64",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -3878,7 +3843,7 @@ checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.64",
+ "syn 2.0.66",
  "test-case-core",
 ]
 
@@ -3900,7 +3865,7 @@ checksum = "5999e24eaa32083191ba4e425deb75cdf25efefabe5aaccb7446dd0d4122a3f5"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.64",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -3940,7 +3905,7 @@ checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.64",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -4031,16 +3996,16 @@ checksum = "b130bd8a58c163224b44e217b4239ca7b927d82bf6cc2fea1fc561d15056e3f7"
 
 [[package]]
 name = "tokio"
-version = "1.37.0"
+version = "1.38.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787"
+checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a"
 dependencies = [
  "backtrace",
  "bytes",
  "libc",
  "mio",
  "num_cpus",
- "parking_lot 0.12.2",
+ "parking_lot 0.12.3",
  "pin-project-lite",
  "signal-hook-registry",
  "socket2",
@@ -4050,20 +4015,20 @@ dependencies = [
 
 [[package]]
 name = "tokio-macros"
-version = "2.2.0"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
+checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.64",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "tokio-rustls"
-version = "0.25.0"
+version = "0.26.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
+checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4"
 dependencies = [
  "rustls",
  "rustls-pki-types",
@@ -4113,9 +4078,9 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.8.13"
+version = "0.8.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba"
+checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335"
 dependencies = [
  "serde",
  "serde_spanned",
@@ -4134,9 +4099,9 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.22.13"
+version = "0.22.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c"
+checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38"
 dependencies = [
  "indexmap",
  "serde",
@@ -4158,7 +4123,6 @@ dependencies = [
  "tokio",
  "tower-layer",
  "tower-service",
- "tracing",
 ]
 
 [[package]]
@@ -4193,7 +4157,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.64",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -4225,18 +4189,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "tracing-indicatif"
-version = "0.3.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "069580424efe11d97c3fef4197fa98c004fa26672cc71ad8770d224e23b1951d"
-dependencies = [
- "indicatif",
- "tracing",
- "tracing-core",
- "tracing-subscriber",
-]
-
-[[package]]
 name = "tracing-log"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4280,11 +4232,11 @@ dependencies = [
 
 [[package]]
 name = "tracing-tree"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "65139ecd2c3f6484c3b99bc01c77afe21e95473630747c7aca525e78b0666675"
+checksum = "b56c62d2c80033cb36fae448730a2f2ef99410fe3ecbffc916681a32f6807dbe"
 dependencies = [
- "nu-ansi-term 0.49.0",
+ "nu-ansi-term 0.50.0",
  "tracing-core",
  "tracing-log",
  "tracing-subscriber",
@@ -4373,9 +4325,9 @@ checksum = "b1d386ff53b415b7fe27b50bb44679e2cc4660272694b7b6f3326d8480823a94"
 
 [[package]]
 name = "unicode-width"
-version = "0.1.12"
+version = "0.1.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6"
+checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d"
 
 [[package]]
 name = "unindent"
@@ -4466,7 +4418,7 @@ checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
 
 [[package]]
 name = "uv"
-version = "0.1.45"
+version = "0.2.13"
 dependencies = [
  "anstream",
  "anyhow",
@@ -4482,7 +4434,8 @@ dependencies = [
  "filetime",
  "flate2",
  "fs-err",
- "indexmap",
+ "futures",
+ "ignore",
  "indicatif",
  "indoc",
  "insta",
@@ -4498,12 +4451,10 @@ dependencies = [
  "pypi-types",
  "rayon",
  "regex",
- "requirements-txt",
  "reqwest",
  "rustc-hash",
  "serde",
  "serde_json",
- "tempfile",
  "textwrap",
  "thiserror",
  "tikv-jemallocator",
@@ -4522,15 +4473,16 @@ dependencies = [
  "uv-dispatch",
  "uv-distribution",
  "uv-fs",
+ "uv-git",
  "uv-installer",
- "uv-interpreter",
  "uv-normalize",
  "uv-requirements",
  "uv-resolver",
+ "uv-settings",
+ "uv-toolchain",
  "uv-types",
  "uv-virtualenv",
  "uv-warnings",
- "uv-workspace",
 ]
 
 [[package]]
@@ -4570,6 +4522,7 @@ dependencies = [
  "once_cell",
  "pep440_rs",
  "pep508_rs",
+ "pypi-types",
  "regex",
  "rustc-hash",
  "serde",
@@ -4581,7 +4534,7 @@ dependencies = [
  "tracing",
  "uv-configuration",
  "uv-fs",
- "uv-interpreter",
+ "uv-toolchain",
  "uv-types",
  "uv-virtualenv",
 ]
@@ -4629,6 +4582,7 @@ dependencies = [
  "hyper-util",
  "insta",
  "install-wheel-rs",
+ "itertools 0.13.0",
  "pep440_rs",
  "pep508_rs",
  "platform-tags",
@@ -4641,7 +4595,6 @@ dependencies = [
  "serde",
  "serde_json",
  "sys-info",
- "tempfile",
  "thiserror",
  "tl",
  "tokio",
@@ -4664,10 +4617,10 @@ version = "0.0.1"
 dependencies = [
  "anyhow",
  "clap",
- "distribution-types",
- "itertools 0.13.0",
+ "either",
  "pep508_rs",
  "platform-tags",
+ "pypi-types",
  "rustc-hash",
  "schemars",
  "serde",
@@ -4687,14 +4640,13 @@ dependencies = [
  "distribution-filename",
  "distribution-types",
  "fs-err",
- "futures",
  "install-wheel-rs",
- "itertools 0.13.0",
  "mimalloc",
  "owo-colors",
  "pep508_rs",
  "poloto",
  "pretty_assertions",
+ "pypi-types",
  "resvg",
  "rustc-hash",
  "schemars",
@@ -4705,20 +4657,19 @@ dependencies = [
  "tokio",
  "tracing",
  "tracing-durations-export",
- "tracing-indicatif",
  "tracing-subscriber",
  "uv-build",
  "uv-cache",
  "uv-client",
  "uv-configuration",
  "uv-dispatch",
- "uv-fs",
+ "uv-distribution",
+ "uv-git",
  "uv-installer",
- "uv-interpreter",
- "uv-requirements",
  "uv-resolver",
+ "uv-settings",
+ "uv-toolchain",
  "uv-types",
- "uv-workspace",
  "walkdir",
 ]
 
@@ -4731,6 +4682,7 @@ dependencies = [
  "futures",
  "install-wheel-rs",
  "itertools 0.13.0",
+ "pypi-types",
  "rustc-hash",
  "tracing",
  "uv-build",
@@ -4738,9 +4690,10 @@ dependencies = [
  "uv-client",
  "uv-configuration",
  "uv-distribution",
+ "uv-git",
  "uv-installer",
- "uv-interpreter",
  "uv-resolver",
+ "uv-toolchain",
  "uv-types",
 ]
 
@@ -4749,27 +4702,34 @@ name = "uv-distribution"
 version = "0.0.1"
 dependencies = [
  "anyhow",
- "cache-key",
  "distribution-filename",
  "distribution-types",
  "fs-err",
  "futures",
+ "glob",
+ "indoc",
+ "insta",
  "install-wheel-rs",
  "nanoid",
  "once_cell",
+ "path-absolutize",
  "pep440_rs",
  "pep508_rs",
  "platform-tags",
  "pypi-types",
+ "regex",
  "reqwest",
  "reqwest-middleware",
  "rmp-serde",
  "rustc-hash",
+ "schemars",
  "serde",
  "tempfile",
  "thiserror",
  "tokio",
  "tokio-util",
+ "toml",
+ "toml_edit",
  "tracing",
  "url",
  "uv-cache",
@@ -4780,6 +4740,7 @@ dependencies = [
  "uv-git",
  "uv-normalize",
  "uv-types",
+ "uv-warnings",
  "zip",
 ]
 
@@ -4811,12 +4772,14 @@ dependencies = [
  "backoff",
  "cachedir",
  "dunce",
+ "either",
  "encoding_rs_io",
  "fs-err",
  "fs2",
  "junction",
  "once_cell",
  "path-absolutize",
+ "path-slash",
  "tempfile",
  "tracing",
  "urlencoding",
@@ -4828,17 +4791,12 @@ name = "uv-git"
 version = "0.0.1"
 dependencies = [
  "anyhow",
- "base64 0.22.1",
  "cache-key",
  "cargo-util",
+ "dashmap",
  "fs-err",
- "git2",
- "glob",
- "hmac",
- "home",
- "rand",
  "reqwest",
- "sha1",
+ "thiserror",
  "tokio",
  "tracing",
  "url",
@@ -4862,8 +4820,8 @@ dependencies = [
  "platform-tags",
  "pypi-types",
  "rayon",
- "requirements-txt",
  "rustc-hash",
+ "same-file",
  "serde",
  "tempfile",
  "thiserror",
@@ -4877,51 +4835,19 @@ dependencies = [
  "uv-extract",
  "uv-fs",
  "uv-git",
- "uv-interpreter",
  "uv-normalize",
+ "uv-toolchain",
  "uv-types",
  "uv-warnings",
  "walkdir",
 ]
 
 [[package]]
-name = "uv-interpreter"
+name = "uv-macros"
 version = "0.0.1"
 dependencies = [
- "anyhow",
- "cache-key",
- "configparser",
- "fs-err",
- "futures",
- "indoc",
- "insta",
- "install-wheel-rs",
- "itertools 0.13.0",
- "once_cell",
- "pep440_rs",
- "pep508_rs",
- "platform-tags",
- "pypi-types",
- "regex",
- "reqwest",
- "reqwest-middleware",
- "rmp-serde",
- "same-file",
- "schemars",
- "serde",
- "serde_json",
- "tempfile",
- "thiserror",
- "tokio-util",
- "tracing",
- "url",
- "uv-cache",
- "uv-client",
- "uv-extract",
- "uv-fs",
- "uv-warnings",
- "which",
- "winapi",
+ "quote",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -4937,6 +4863,7 @@ dependencies = [
 name = "uv-requirements"
 version = "0.1.0"
 dependencies = [
+ "anstream",
  "anyhow",
  "cache-key",
  "configparser",
@@ -4946,18 +4873,10 @@ dependencies = [
  "distribution-types",
  "fs-err",
  "futures",
- "glob",
- "indexmap",
- "indoc",
- "insta",
- "itertools 0.13.0",
- "path-absolutize",
- "pep440_rs",
  "pep508_rs",
  "pypi-types",
  "requirements-txt",
  "rustc-hash",
- "schemars",
  "serde",
  "thiserror",
  "toml",
@@ -4978,7 +4897,6 @@ dependencies = [
 name = "uv-resolver"
 version = "0.0.1"
 dependencies = [
- "anstream",
  "anyhow",
  "cache-key",
  "chrono",
@@ -4994,8 +4912,8 @@ dependencies = [
  "install-wheel-rs",
  "itertools 0.13.0",
  "once-map",
- "once_cell",
  "owo-colors",
+ "path-slash",
  "pep440_rs",
  "pep508_rs",
  "petgraph",
@@ -5005,6 +4923,7 @@ dependencies = [
  "requirements-txt",
  "rkyv",
  "rustc-hash",
+ "same-file",
  "schemars",
  "serde",
  "textwrap",
@@ -5012,20 +4931,97 @@ dependencies = [
  "tokio",
  "tokio-stream",
  "toml",
+ "toml_edit",
  "tracing",
  "url",
- "uv-cache",
  "uv-client",
  "uv-configuration",
  "uv-distribution",
  "uv-git",
- "uv-interpreter",
  "uv-normalize",
+ "uv-toolchain",
  "uv-types",
  "uv-warnings",
 ]
 
 [[package]]
+name = "uv-settings"
+version = "0.0.1"
+dependencies = [
+ "dirs-sys",
+ "distribution-types",
+ "fs-err",
+ "install-wheel-rs",
+ "pep508_rs",
+ "pypi-types",
+ "schemars",
+ "serde",
+ "thiserror",
+ "toml",
+ "tracing",
+ "uv-configuration",
+ "uv-fs",
+ "uv-macros",
+ "uv-normalize",
+ "uv-resolver",
+ "uv-toolchain",
+]
+
+[[package]]
+name = "uv-state"
+version = "0.0.1"
+dependencies = [
+ "directories",
+ "fs-err",
+ "tempfile",
+]
+
+[[package]]
+name = "uv-toolchain"
+version = "0.0.1"
+dependencies = [
+ "anyhow",
+ "assert_fs",
+ "cache-key",
+ "configparser",
+ "fs-err",
+ "futures",
+ "indoc",
+ "install-wheel-rs",
+ "itertools 0.13.0",
+ "once_cell",
+ "pep440_rs",
+ "pep508_rs",
+ "platform-tags",
+ "pypi-types",
+ "regex",
+ "reqwest",
+ "reqwest-middleware",
+ "rmp-serde",
+ "same-file",
+ "schemars",
+ "serde",
+ "serde_json",
+ "target-lexicon",
+ "temp-env",
+ "tempfile",
+ "test-log",
+ "thiserror",
+ "tokio-util",
+ "tracing",
+ "url",
+ "uv-cache",
+ "uv-client",
+ "uv-configuration",
+ "uv-extract",
+ "uv-fs",
+ "uv-state",
+ "uv-warnings",
+ "which",
+ "winapi",
+]
+
+[[package]]
 name = "uv-types"
 version = "0.0.1"
 dependencies = [
@@ -5040,13 +5036,14 @@ dependencies = [
  "url",
  "uv-cache",
  "uv-configuration",
- "uv-interpreter",
+ "uv-git",
  "uv-normalize",
+ "uv-toolchain",
 ]
 
 [[package]]
 name = "uv-version"
-version = "0.1.45"
+version = "0.2.13"
 
 [[package]]
 name = "uv-virtualenv"
@@ -5060,7 +5057,7 @@ dependencies = [
  "thiserror",
  "tracing",
  "uv-fs",
- "uv-interpreter",
+ "uv-toolchain",
  "uv-version",
 ]
 
@@ -5075,78 +5072,18 @@ dependencies = [
 ]
 
 [[package]]
-name = "uv-workspace"
-version = "0.0.1"
-dependencies = [
- "dirs-sys",
- "distribution-types",
- "fs-err",
- "install-wheel-rs",
- "schemars",
- "serde",
- "thiserror",
- "toml",
- "tracing",
- "uv-configuration",
- "uv-fs",
- "uv-interpreter",
- "uv-normalize",
- "uv-resolver",
- "uv-warnings",
-]
-
-[[package]]
 name = "valuable"
 version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
 
 [[package]]
-name = "vcpkg"
-version = "0.2.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
-
-[[package]]
 name = "version_check"
 version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[package]]
-name = "vt100"
-version = "0.15.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84cd863bf0db7e392ba3bd04994be3473491b31e66340672af5d11943c6274de"
-dependencies = [
- "itoa",
- "log",
- "unicode-width",
- "vte",
-]
-
-[[package]]
-name = "vte"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5022b5fbf9407086c180e9557be968742d839e68346af7792b8592489732197"
-dependencies = [
- "arrayvec",
- "utf8parse",
- "vte_generate_state_changes",
-]
-
-[[package]]
-name = "vte_generate_state_changes"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff"
-dependencies = [
- "proc-macro2",
- "quote",
-]
-
-[[package]]
 name = "wait-timeout"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5201,7 +5138,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.64",
+ "syn 2.0.66",
  "wasm-bindgen-shared",
 ]
 
@@ -5235,7 +5172,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.64",
+ "syn 2.0.66",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -5362,11 +5299,11 @@ dependencies = [
 
 [[package]]
 name = "windows"
-version = "0.56.0"
+version = "0.57.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1de69df01bdf1ead2f4ac895dc77c9351aefff65b2f3db429a343f9cbf05e132"
+checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143"
 dependencies = [
- "windows-core 0.56.0",
+ "windows-core 0.57.0",
  "windows-targets 0.52.5",
 ]
 
@@ -5381,12 +5318,12 @@ dependencies = [
 
 [[package]]
 name = "windows-core"
-version = "0.56.0"
+version = "0.57.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4698e52ed2d08f8658ab0c39512a7c00ee5fe2688c65f8c0a4f06750d729f2a6"
+checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d"
 dependencies = [
- "windows-implement 0.56.0",
- "windows-interface 0.56.0",
+ "windows-implement 0.57.0",
+ "windows-interface 0.57.0",
  "windows-result",
  "windows-targets 0.52.5",
 ]
@@ -5399,18 +5336,18 @@ checksum = "12168c33176773b86799be25e2a2ba07c7aab9968b37541f1094dbd7a60c8946"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.64",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "windows-implement"
-version = "0.56.0"
+version = "0.57.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b"
+checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.64",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -5421,18 +5358,18 @@ checksum = "9d8dc32e0095a7eeccebd0e3f09e9509365ecb3fc6ac4d6f5f14a3f6392942d1"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.64",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "windows-interface"
-version = "0.56.0"
+version = "0.57.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc"
+checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.64",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -5585,9 +5522,9 @@ checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
 
 [[package]]
 name = "winnow"
-version = "0.6.8"
+version = "0.6.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3c52e9c97a68071b23e836c9380edae937f17b9c4667bd021973efc689f618d"
+checksum = "56c52728401e1dc672a56e81e593e912aa54c78f40246869f78359a2bf24d29d"
 dependencies = [
  "memchr",
 ]
@@ -5680,9 +5617,9 @@ checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
 
 [[package]]
 name = "zeroize"
-version = "1.7.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
+checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde"
 
 [[package]]
 name = "zip"
diff --git a/pkgs/by-name/uv/uv/package.nix b/pkgs/by-name/uv/uv/package.nix
index 7b2b589ac5db2..5329a60df8b1c 100644
--- a/pkgs/by-name/uv/uv/package.nix
+++ b/pkgs/by-name/uv/uv/package.nix
@@ -3,29 +3,34 @@
 , darwin
 , fetchFromGitHub
 , installShellFiles
+, libiconv
 , openssl
 , pkg-config
+, python3Packages
 , rustPlatform
 , stdenv
+, testers
+, uv
 , nix-update-script
 }:
 
-rustPlatform.buildRustPackage rec {
+python3Packages.buildPythonApplication rec {
   pname = "uv";
-  version = "0.1.45";
+  version = "0.2.13";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "astral-sh";
     repo = "uv";
-    rev = version;
-    hash = "sha256-PJeUndpD7jHcpM66dMIyXpDx95Boc01rzovS0Y7io7w=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-/YRmaPNTw3RsaB4bTb5UO0qXtRe2h1oD4Bav6VQ4W04=";
   };
 
-  cargoLock = {
+  cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
     outputHashes = {
       "async_zip-0.0.17" = "sha256-Q5fMDJrQtob54CTII3+SXHeozy5S5s3iLOzntevdGOs=";
-      "pubgrub-0.2.1" = "sha256-mAPyo2R996ymzCt6TAX2G7xU1C3vDGjYF0z7R8lI1yg=";
+      "pubgrub-0.2.1" = "sha256-i1Eaip4J5VXb66p1w0sRjP655AngBLEym70ChbAFFIc=";
     };
   };
 
@@ -33,18 +38,20 @@ rustPlatform.buildRustPackage rec {
     cmake
     installShellFiles
     pkg-config
+    rustPlatform.cargoSetupHook
+    rustPlatform.maturinBuildHook
   ];
 
   buildInputs = [
+    libiconv
     openssl
   ] ++ lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.SystemConfiguration
   ];
 
-  cargoBuildFlags = [ "--package" "uv" ];
+  dontUseCmakeConfigure = true;
 
-  # Tests require network access
-  doCheck = false;
+  cargoBuildFlags = [ "--package" "uv" ];
 
   env = {
     OPENSSL_NO_VENDOR = true;
@@ -58,14 +65,23 @@ rustPlatform.buildRustPackage rec {
       --zsh <($out/bin/uv --generate-shell-completion zsh)
   '';
 
-  passthru.updateScript = nix-update-script { };
+  pythonImportsCheck = [
+    "uv"
+  ];
+
+  passthru = {
+    tests.version = testers.testVersion {
+      package = uv;
+    };
+    updateScript = nix-update-script { };
+  };
 
-  meta = with lib; {
-    description = "An extremely fast Python package installer and resolver, written in Rust";
+  meta = {
+    description = "Extremely fast Python package installer and resolver, written in Rust";
     homepage = "https://github.com/astral-sh/uv";
     changelog = "https://github.com/astral-sh/uv/blob/${src.rev}/CHANGELOG.md";
-    license = with licenses; [ asl20 mit ];
-    maintainers = with maintainers; [ GaetanLepage ];
+    license = with lib.licenses; [ asl20 mit ];
+    maintainers = with lib.maintainers; [ GaetanLepage ];
     mainProgram = "uv";
   };
 }
diff --git a/pkgs/by-name/ux/uxn/package.nix b/pkgs/by-name/ux/uxn/package.nix
index 17a85dddce52a..098c8c4f96d5b 100644
--- a/pkgs/by-name/ux/uxn/package.nix
+++ b/pkgs/by-name/ux/uxn/package.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "uxn";
-  version = "1.0-unstable-2024-05-10";
+  version = "1.0-unstable-2024-06-14";
 
   src = fetchFromSourcehut {
     owner = "~rabbits";
     repo = "uxn";
-    rev = "bb57b85f5724ccabdb081ff83080c2e3e0e122f7";
-    hash = "sha256-S/lTa6nQ7qIIibYaLfaS4l2dEKgOwXuMryvK9j7FD9Y=";
+    rev = "07112d8f264ecb423a9cadf403c224a8a0eac3cb";
+    hash = "sha256-AMqMeiJsRsoZKOEZVLojgeaaUiyulacwiNFIKUCwhFk=";
   };
 
   outputs = [ "out" "projects" ];
@@ -59,7 +59,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://wiki.xxiivv.com/site/uxn.html";
-    description = "An assembler and emulator for the Uxn stack machine";
+    description = "Assembler and emulator for the Uxn stack machine";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ AndersonTorres ];
     mainProgram = "uxnemu";
diff --git a/pkgs/by-name/va/vacuum-go/package.nix b/pkgs/by-name/va/vacuum-go/package.nix
new file mode 100644
index 0000000000000..3f5d41a9a3c51
--- /dev/null
+++ b/pkgs/by-name/va/vacuum-go/package.nix
@@ -0,0 +1,42 @@
+{ lib, buildGoModule, fetchFromGitHub, testers, vacuum-go }:
+
+buildGoModule rec {
+  pname = "vacuum-go";
+  version = "0.10.0";
+
+  src = fetchFromGitHub {
+    owner = "daveshanley";
+    repo = "vacuum";
+    # using refs/tags because simple version gives: 'the given path has multiple possibilities' error
+    rev = "refs/tags/v${version}";
+    hash = "sha256-YQJKmLhxBnU6gKbhnzVAF53N1qS0/DQjjuOj8g6y+vo=";
+  };
+
+  vendorHash = "sha256-OhdN4/fNbXa5ZMakdf370rqyDlCVYjJ1IfeV6hEwcv4=";
+
+  CGO_ENABLED = 0;
+  ldflags = [
+    "-s"
+    "-w"
+    "-X main.version=v${version}"
+  ];
+
+  subPackages = [ "./vacuum.go" ];
+
+  passthru = {
+    tests.version = testers.testVersion {
+      package = vacuum-go;
+      command = "vacuum version";
+      version = "v${version}";
+    };
+  };
+
+  meta = {
+    description = "The world's fastest OpenAPI & Swagger linter";
+    homepage = "https://quobix.com/vacuum";
+    changelog = "https://github.com/daveshanley/vacuum/releases/tag/v${version}";
+    license = lib.licenses.mit;
+    mainProgram = "vacuum";
+    maintainers = with lib.maintainers; [ konradmalik ];
+  };
+}
diff --git a/pkgs/by-name/va/valkey/package.nix b/pkgs/by-name/va/valkey/package.nix
index 60c866992659c..4a8b427ece982 100644
--- a/pkgs/by-name/va/valkey/package.nix
+++ b/pkgs/by-name/va/valkey/package.nix
@@ -75,7 +75,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://valkey.io/";
-    description = "A high-performance data structure server that primarily serves key/value workloads";
+    description = "High-performance data structure server that primarily serves key/value workloads";
     license = licenses.bsd3;
     platforms = platforms.all;
     maintainers = with maintainers; [ rucadi ];
diff --git a/pkgs/by-name/va/valuta/package.nix b/pkgs/by-name/va/valuta/package.nix
index cabd2edc289db..3c59df5164c3a 100644
--- a/pkgs/by-name/va/valuta/package.nix
+++ b/pkgs/by-name/va/valuta/package.nix
@@ -55,7 +55,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A simple application for converting currencies, with support for various APIs";
+    description = "Simple application for converting currencies, with support for various APIs";
     homepage = "https://github.com/ideveCore/Valuta";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ arthsmn ];
diff --git a/pkgs/by-name/va/varia/package.nix b/pkgs/by-name/va/varia/package.nix
index d638671a27cab..fc12da2f8282e 100644
--- a/pkgs/by-name/va/varia/package.nix
+++ b/pkgs/by-name/va/varia/package.nix
@@ -58,7 +58,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A simple download manager based on aria2 and libadwaita";
+    description = "Simple download manager based on aria2 and libadwaita";
     homepage = "https://giantpinkrobots.github.io/varia";
     license = licenses.mpl20;
     mainProgram = "varia";
diff --git a/pkgs/by-name/vc/vcpkg-tool/package.nix b/pkgs/by-name/vc/vcpkg-tool/package.nix
index 327366ddd8bb5..c9b7aafc2ee50 100644
--- a/pkgs/by-name/vc/vcpkg-tool/package.nix
+++ b/pkgs/by-name/vc/vcpkg-tool/package.nix
@@ -18,13 +18,13 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "vcpkg-tool";
-  version = "2024-04-23";
+  version = "2024-06-10";
 
   src = fetchFromGitHub {
     owner = "microsoft";
     repo = "vcpkg-tool";
     rev = finalAttrs.version;
-    hash = "sha256-PqmkQcpxuYJGZJs2qemv0hshvO4KTiKc1ZY0//Gq0pY=";
+    hash = "sha256-TGRTzUd1FtErD+h/ksUsUm1Rhank9/yVy06JbAgEEw0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/vc/vcpkg/package.nix b/pkgs/by-name/vc/vcpkg/package.nix
index 8e2753617ab9b..4a4aa3f3a11e4 100644
--- a/pkgs/by-name/vc/vcpkg/package.nix
+++ b/pkgs/by-name/vc/vcpkg/package.nix
@@ -7,13 +7,13 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "vcpkg";
-  version = "2024.04.26";
+  version = "2024.05.24";
 
   src = fetchFromGitHub {
     owner = "microsoft";
     repo = "vcpkg";
     rev = finalAttrs.version;
-    hash = "sha256-Bu1sZhk8fqG5D7m/0QK3uI97stXx8l8y30lnffTr9h0=";
+    hash = "sha256-R9iQIEmraXOzPi6rOd7wVV9BMC/wDDEveLIRJmAVISI=";
   };
 
   installPhase = let
diff --git a/pkgs/by-name/ve/vencord/package-lock.json b/pkgs/by-name/ve/vencord/package-lock.json
index a5c9f7b543972..df5bb7242cb07 100644
--- a/pkgs/by-name/ve/vencord/package-lock.json
+++ b/pkgs/by-name/ve/vencord/package-lock.json
@@ -1,12 +1,12 @@
 {
     "name": "vencord",
-    "version": "1.8.2",
+    "version": "1.8.9",
     "lockfileVersion": 3,
     "requires": true,
     "packages": {
         "": {
             "name": "vencord",
-            "version": "1.8.2",
+            "version": "1.8.9",
             "license": "GPL-3.0-or-later",
             "dependencies": {
                 "@sapphi-red/web-noise-suppressor": "0.3.3",
@@ -38,29 +38,31 @@
                 "eslint-plugin-simple-import-sort": "^10.0.0",
                 "eslint-plugin-unused-imports": "^2.0.0",
                 "highlight.js": "10.6.0",
+                "html-minifier-terser": "^7.2.0",
                 "moment": "^2.29.4",
                 "puppeteer-core": "^19.11.1",
                 "standalone-electron-types": "^1.0.0",
                 "stylelint": "^15.6.0",
                 "stylelint-config-standard": "^33.0.0",
+                "ts-patch": "^3.1.2",
                 "tsx": "^3.12.7",
                 "type-fest": "^3.9.0",
-                "typescript": "^5.0.4",
-                "zip-local": "^0.3.5",
-                "zustand": "^3.7.2"
+                "typescript": "^5.4.5",
+                "typescript-transform-paths": "^3.4.7",
+                "zip-local": "^0.3.5"
             },
             "engines": {
                 "node": ">=18",
-                "pnpm": ">=8"
+                "pnpm": ">=9"
             }
         },
         "node_modules/@babel/code-frame": {
-            "version": "7.24.2",
-            "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz",
-            "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==",
+            "version": "7.24.7",
+            "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz",
+            "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
             "dev": true,
             "dependencies": {
-                "@babel/highlight": "^7.24.2",
+                "@babel/highlight": "^7.24.7",
                 "picocolors": "^1.0.0"
             },
             "engines": {
@@ -68,21 +70,21 @@
             }
         },
         "node_modules/@babel/helper-validator-identifier": {
-            "version": "7.24.5",
-            "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz",
-            "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==",
+            "version": "7.24.7",
+            "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
+            "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
             "dev": true,
             "engines": {
                 "node": ">=6.9.0"
             }
         },
         "node_modules/@babel/highlight": {
-            "version": "7.24.5",
-            "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz",
-            "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==",
+            "version": "7.24.7",
+            "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
+            "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
             "dev": true,
             "dependencies": {
-                "@babel/helper-validator-identifier": "^7.24.5",
+                "@babel/helper-validator-identifier": "^7.24.7",
                 "chalk": "^2.4.2",
                 "js-tokens": "^4.0.0",
                 "picocolors": "^1.0.0"
@@ -227,9 +229,9 @@
             }
         },
         "node_modules/@csstools/selector-specificity": {
-            "version": "3.0.3",
-            "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.3.tgz",
-            "integrity": "sha512-KEPNw4+WW5AVEIyzC80rTbWEUatTW2lXpN8+8ILC8PiPeWPjwUzrPZDIOZ2wwqDmeqOYTdSGyL3+vE5GC3FB3Q==",
+            "version": "3.1.1",
+            "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.1.1.tgz",
+            "integrity": "sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==",
             "dev": true,
             "funding": [
                 {
@@ -616,9 +618,9 @@
             }
         },
         "node_modules/@eslint-community/regexpp": {
-            "version": "4.10.0",
-            "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
-            "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
+            "version": "4.10.1",
+            "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.1.tgz",
+            "integrity": "sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==",
             "dev": true,
             "engines": {
                 "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
@@ -660,6 +662,7 @@
             "version": "0.11.14",
             "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
             "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
+            "deprecated": "Use @eslint/config-array instead",
             "dev": true,
             "dependencies": {
                 "@humanwhocodes/object-schema": "^2.0.2",
@@ -687,8 +690,67 @@
             "version": "2.0.3",
             "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
             "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
+            "deprecated": "Use @eslint/object-schema instead",
+            "dev": true
+        },
+        "node_modules/@jridgewell/gen-mapping": {
+            "version": "0.3.5",
+            "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+            "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
+            "dev": true,
+            "dependencies": {
+                "@jridgewell/set-array": "^1.2.1",
+                "@jridgewell/sourcemap-codec": "^1.4.10",
+                "@jridgewell/trace-mapping": "^0.3.24"
+            },
+            "engines": {
+                "node": ">=6.0.0"
+            }
+        },
+        "node_modules/@jridgewell/resolve-uri": {
+            "version": "3.1.2",
+            "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+            "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+            "dev": true,
+            "engines": {
+                "node": ">=6.0.0"
+            }
+        },
+        "node_modules/@jridgewell/set-array": {
+            "version": "1.2.1",
+            "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+            "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
+            "dev": true,
+            "engines": {
+                "node": ">=6.0.0"
+            }
+        },
+        "node_modules/@jridgewell/source-map": {
+            "version": "0.3.6",
+            "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
+            "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
+            "dev": true,
+            "dependencies": {
+                "@jridgewell/gen-mapping": "^0.3.5",
+                "@jridgewell/trace-mapping": "^0.3.25"
+            }
+        },
+        "node_modules/@jridgewell/sourcemap-codec": {
+            "version": "1.4.15",
+            "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+            "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
             "dev": true
         },
+        "node_modules/@jridgewell/trace-mapping": {
+            "version": "0.3.25",
+            "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+            "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+            "dev": true,
+            "dependencies": {
+                "@jridgewell/resolve-uri": "^3.1.0",
+                "@jridgewell/sourcemap-codec": "^1.4.14"
+            }
+        },
         "node_modules/@nodelib/fs.scandir": {
             "version": "2.1.5",
             "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -754,6 +816,23 @@
                 }
             }
         },
+        "node_modules/@puppeteer/browsers/node_modules/debug": {
+            "version": "4.3.4",
+            "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+            "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+            "dev": true,
+            "dependencies": {
+                "ms": "2.1.2"
+            },
+            "engines": {
+                "node": ">=6.0"
+            },
+            "peerDependenciesMeta": {
+                "supports-color": {
+                    "optional": true
+                }
+            }
+        },
         "node_modules/@sapphi-red/web-noise-suppressor": {
             "version": "0.3.3",
             "resolved": "https://registry.npmjs.org/@sapphi-red/web-noise-suppressor/-/web-noise-suppressor-0.3.3.tgz",
@@ -803,9 +882,9 @@
             "dev": true
         },
         "node_modules/@types/lodash": {
-            "version": "4.17.1",
-            "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.1.tgz",
-            "integrity": "sha512-X+2qazGS3jxLAIz5JDXDzglAF3KpijdhFxlf/V1+hEsOUc+HnWi81L/uv/EvGuV90WY+7mPGFCUDGfQC3Gj95Q==",
+            "version": "4.17.5",
+            "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.5.tgz",
+            "integrity": "sha512-MBIOHVZqVqgfro1euRDWX7OO0fBVUUMrN6Pwm8LQsz8cWhEpihlvR70ENj3f40j58TNxZaWv2ndSkInykNBBJw==",
             "dev": true
         },
         "node_modules/@types/minimist": {
@@ -815,9 +894,9 @@
             "dev": true
         },
         "node_modules/@types/node": {
-            "version": "18.19.33",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.33.tgz",
-            "integrity": "sha512-NR9+KrpSajr2qBVp/Yt5TU/rp+b5Mayi3+OlMlcg2cVCfRmcG5PWZ7S4+MG9PZ5gWBoc9Pd0BKSRViuBCRPu0A==",
+            "version": "18.19.34",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.34.tgz",
+            "integrity": "sha512-eXF4pfBNV5DAMKGbI02NnDtWrQ40hAN558/2vvS4gMpMIxaf6JmD7YjnZbq0Q9TDSSkKBamime8ewRoomHdt4g==",
             "dev": true,
             "dependencies": {
                 "undici-types": "~5.26.4"
@@ -836,9 +915,9 @@
             "dev": true
         },
         "node_modules/@types/react": {
-            "version": "18.3.1",
-            "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.1.tgz",
-            "integrity": "sha512-V0kuGBX3+prX+DQ/7r2qsv1NsdfnCLnTgnRJ1pYnxykBhGMz+qj+box5lq7XsO5mtZsBqpjwwTu/7wszPfMBcw==",
+            "version": "18.3.3",
+            "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz",
+            "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==",
             "dev": true,
             "dependencies": {
                 "@types/prop-types": "*",
@@ -1329,12 +1408,12 @@
             }
         },
         "node_modules/braces": {
-            "version": "3.0.2",
-            "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
-            "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+            "version": "3.0.3",
+            "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+            "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
             "dev": true,
             "dependencies": {
-                "fill-range": "^7.0.1"
+                "fill-range": "^7.1.1"
             },
             "engines": {
                 "node": ">=8"
@@ -1408,6 +1487,16 @@
                 "node": ">=6"
             }
         },
+        "node_modules/camel-case": {
+            "version": "4.1.2",
+            "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
+            "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
+            "dev": true,
+            "dependencies": {
+                "pascal-case": "^3.1.2",
+                "tslib": "^2.0.3"
+            }
+        },
         "node_modules/camelcase": {
             "version": "6.3.0",
             "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
@@ -1524,6 +1613,18 @@
                 "node": ">= 0.4"
             }
         },
+        "node_modules/clean-css": {
+            "version": "5.3.3",
+            "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz",
+            "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==",
+            "dev": true,
+            "dependencies": {
+                "source-map": "~0.6.0"
+            },
+            "engines": {
+                "node": ">= 10.0"
+            }
+        },
         "node_modules/cliui": {
             "version": "8.0.1",
             "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
@@ -1575,6 +1676,15 @@
             "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==",
             "dev": true
         },
+        "node_modules/commander": {
+            "version": "10.0.1",
+            "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
+            "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
+            "dev": true,
+            "engines": {
+                "node": ">=14"
+            }
+        },
         "node_modules/component-emitter": {
             "version": "1.3.1",
             "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz",
@@ -1689,9 +1799,9 @@
             "dev": true
         },
         "node_modules/debug": {
-            "version": "4.3.4",
-            "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
-            "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+            "version": "4.3.5",
+            "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz",
+            "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
             "dev": true,
             "dependencies": {
                 "ms": "2.1.2"
@@ -1838,6 +1948,16 @@
                 "node": ">=6.0.0"
             }
         },
+        "node_modules/dot-case": {
+            "version": "3.0.4",
+            "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz",
+            "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==",
+            "dev": true,
+            "dependencies": {
+                "no-case": "^3.0.4",
+                "tslib": "^2.0.3"
+            }
+        },
         "node_modules/emoji-regex": {
             "version": "8.0.0",
             "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -1853,6 +1973,18 @@
                 "once": "^1.4.0"
             }
         },
+        "node_modules/entities": {
+            "version": "4.5.0",
+            "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+            "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+            "dev": true,
+            "engines": {
+                "node": ">=0.12"
+            },
+            "funding": {
+                "url": "https://github.com/fb55/entities?sponsor=1"
+            }
+        },
         "node_modules/error-ex": {
             "version": "1.3.2",
             "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
@@ -2308,9 +2440,9 @@
             }
         },
         "node_modules/eslint-plugin-path-alias": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-path-alias/-/eslint-plugin-path-alias-1.0.0.tgz",
-            "integrity": "sha512-FXus57yC+Zd3sMv46pbloXYwFeNVNHJqlACr9V68FG/IzGFBBokGJpmjDbEjpt8ZCeVSndUubeDWWl2A8sCNVQ==",
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-path-alias/-/eslint-plugin-path-alias-1.1.0.tgz",
+            "integrity": "sha512-fDsuIsB11cvZ+5LDaOMEn1CkLFeOLXdvp9Mqi/9ZL2sAnVlRPKlMH3UPT7onFTWcFrNllYwrQ/+7LbzagGOA9A==",
             "dev": true,
             "dependencies": {
                 "nanomatch": "^1.2.13"
@@ -2619,9 +2751,9 @@
             }
         },
         "node_modules/fill-range": {
-            "version": "7.0.1",
-            "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
-            "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+            "version": "7.1.1",
+            "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+            "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
             "dev": true,
             "dependencies": {
                 "to-regex-range": "^5.0.1"
@@ -2776,6 +2908,7 @@
             "version": "7.2.3",
             "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
             "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+            "deprecated": "Glob versions prior to v9 are no longer supported",
             "dev": true,
             "dependencies": {
                 "fs.realpath": "^1.0.0",
@@ -2997,6 +3130,27 @@
                 "node": ">=10"
             }
         },
+        "node_modules/html-minifier-terser": {
+            "version": "7.2.0",
+            "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz",
+            "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==",
+            "dev": true,
+            "dependencies": {
+                "camel-case": "^4.1.2",
+                "clean-css": "~5.3.2",
+                "commander": "^10.0.0",
+                "entities": "^4.4.0",
+                "param-case": "^3.0.4",
+                "relateurl": "^0.2.7",
+                "terser": "^5.15.1"
+            },
+            "bin": {
+                "html-minifier-terser": "cli.js"
+            },
+            "engines": {
+                "node": "^14.13.1 || >=16.0.0"
+            }
+        },
         "node_modules/html-tags": {
             "version": "3.3.1",
             "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz",
@@ -3101,6 +3255,7 @@
             "version": "1.0.6",
             "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
             "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+            "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
             "dev": true,
             "dependencies": {
                 "once": "^1.3.0",
@@ -3432,6 +3587,15 @@
             "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==",
             "dev": true
         },
+        "node_modules/lower-case": {
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+            "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+            "dev": true,
+            "dependencies": {
+                "tslib": "^2.0.3"
+            }
+        },
         "node_modules/lru-cache": {
             "version": "6.0.0",
             "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
@@ -3541,12 +3705,12 @@
             }
         },
         "node_modules/micromatch": {
-            "version": "4.0.5",
-            "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
-            "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+            "version": "4.0.7",
+            "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
+            "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
             "dev": true,
             "dependencies": {
-                "braces": "^3.0.2",
+                "braces": "^3.0.3",
                 "picomatch": "^2.3.1"
             },
             "engines": {
@@ -3574,6 +3738,15 @@
                 "node": "*"
             }
         },
+        "node_modules/minimist": {
+            "version": "1.2.8",
+            "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+            "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+            "dev": true,
+            "funding": {
+                "url": "https://github.com/sponsors/ljharb"
+            }
+        },
         "node_modules/minimist-options": {
             "version": "4.1.0",
             "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
@@ -3684,6 +3857,16 @@
             "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
             "dev": true
         },
+        "node_modules/no-case": {
+            "version": "3.0.4",
+            "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+            "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+            "dev": true,
+            "dependencies": {
+                "lower-case": "^2.0.2",
+                "tslib": "^2.0.3"
+            }
+        },
         "node_modules/node-fetch": {
             "version": "2.6.7",
             "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
@@ -3865,6 +4048,16 @@
             "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
             "dev": true
         },
+        "node_modules/param-case": {
+            "version": "3.0.4",
+            "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz",
+            "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==",
+            "dev": true,
+            "dependencies": {
+                "dot-case": "^3.0.4",
+                "tslib": "^2.0.3"
+            }
+        },
         "node_modules/parent-module": {
             "version": "1.0.1",
             "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -3895,6 +4088,16 @@
                 "url": "https://github.com/sponsors/sindresorhus"
             }
         },
+        "node_modules/pascal-case": {
+            "version": "3.1.2",
+            "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+            "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+            "dev": true,
+            "dependencies": {
+                "no-case": "^3.0.4",
+                "tslib": "^2.0.3"
+            }
+        },
         "node_modules/pascalcase": {
             "version": "0.1.1",
             "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
@@ -3931,6 +4134,12 @@
                 "node": ">=8"
             }
         },
+        "node_modules/path-parse": {
+            "version": "1.0.7",
+            "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+            "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+            "dev": true
+        },
         "node_modules/path-type": {
             "version": "4.0.0",
             "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
@@ -3947,9 +4156,9 @@
             "dev": true
         },
         "node_modules/picocolors": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
-            "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
+            "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==",
             "dev": true
         },
         "node_modules/picomatch": {
@@ -4015,9 +4224,9 @@
             }
         },
         "node_modules/postcss-selector-parser": {
-            "version": "6.0.16",
-            "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz",
-            "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==",
+            "version": "6.1.0",
+            "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz",
+            "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==",
             "dev": true,
             "dependencies": {
                 "cssesc": "^3.0.0",
@@ -4124,10 +4333,28 @@
                 }
             }
         },
+        "node_modules/puppeteer-core/node_modules/debug": {
+            "version": "4.3.4",
+            "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+            "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+            "dev": true,
+            "dependencies": {
+                "ms": "2.1.2"
+            },
+            "engines": {
+                "node": ">=6.0"
+            },
+            "peerDependenciesMeta": {
+                "supports-color": {
+                    "optional": true
+                }
+            }
+        },
         "node_modules/q": {
             "version": "1.5.1",
             "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
             "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==",
+            "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)",
             "dev": true,
             "engines": {
                 "node": ">=0.6.0",
@@ -4268,6 +4495,15 @@
                 "node": ">=0.10.0"
             }
         },
+        "node_modules/relateurl": {
+            "version": "0.2.7",
+            "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
+            "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==",
+            "dev": true,
+            "engines": {
+                "node": ">= 0.10"
+            }
+        },
         "node_modules/require-directory": {
             "version": "2.1.1",
             "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -4286,6 +4522,23 @@
                 "node": ">=0.10.0"
             }
         },
+        "node_modules/resolve": {
+            "version": "1.22.8",
+            "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+            "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+            "dev": true,
+            "dependencies": {
+                "is-core-module": "^2.13.0",
+                "path-parse": "^1.0.7",
+                "supports-preserve-symlinks-flag": "^1.0.0"
+            },
+            "bin": {
+                "resolve": "bin/resolve"
+            },
+            "funding": {
+                "url": "https://github.com/sponsors/ljharb"
+            }
+        },
         "node_modules/resolve-from": {
             "version": "4.0.0",
             "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
@@ -4334,6 +4587,7 @@
             "version": "3.0.2",
             "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
             "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+            "deprecated": "Rimraf versions prior to v4 are no longer supported",
             "dev": true,
             "dependencies": {
                 "glob": "^7.1.3"
@@ -4584,7 +4838,7 @@
             "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
             "dev": true
         },
-        "node_modules/source-map": {
+        "node_modules/snapdragon/node_modules/source-map": {
             "version": "0.5.7",
             "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
             "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
@@ -4593,6 +4847,15 @@
                 "node": ">=0.10.0"
             }
         },
+        "node_modules/source-map": {
+            "version": "0.6.1",
+            "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+            "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+            "dev": true,
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
         "node_modules/source-map-js": {
             "version": "1.2.0",
             "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
@@ -4626,15 +4889,6 @@
                 "source-map": "^0.6.0"
             }
         },
-        "node_modules/source-map-support/node_modules/source-map": {
-            "version": "0.6.1",
-            "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-            "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-            "dev": true,
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
         "node_modules/source-map-url": {
             "version": "0.4.1",
             "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz",
@@ -4669,9 +4923,9 @@
             }
         },
         "node_modules/spdx-license-ids": {
-            "version": "3.0.17",
-            "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz",
-            "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==",
+            "version": "3.0.18",
+            "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz",
+            "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==",
             "dev": true
         },
         "node_modules/split-string": {
@@ -4941,6 +5195,18 @@
                 "node": ">=14.18"
             }
         },
+        "node_modules/supports-preserve-symlinks-flag": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+            "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+            "dev": true,
+            "engines": {
+                "node": ">= 0.4"
+            },
+            "funding": {
+                "url": "https://github.com/sponsors/ljharb"
+            }
+        },
         "node_modules/svg-tags": {
             "version": "1.0.0",
             "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz",
@@ -4964,9 +5230,9 @@
             }
         },
         "node_modules/table/node_modules/ajv": {
-            "version": "8.13.0",
-            "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz",
-            "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==",
+            "version": "8.16.0",
+            "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz",
+            "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==",
             "dev": true,
             "dependencies": {
                 "fast-deep-equal": "^3.1.3",
@@ -5013,6 +5279,30 @@
                 "node": ">=6"
             }
         },
+        "node_modules/terser": {
+            "version": "5.31.1",
+            "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.1.tgz",
+            "integrity": "sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==",
+            "dev": true,
+            "dependencies": {
+                "@jridgewell/source-map": "^0.3.3",
+                "acorn": "^8.8.2",
+                "commander": "^2.20.0",
+                "source-map-support": "~0.5.20"
+            },
+            "bin": {
+                "terser": "bin/terser"
+            },
+            "engines": {
+                "node": ">=10"
+            }
+        },
+        "node_modules/terser/node_modules/commander": {
+            "version": "2.20.3",
+            "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+            "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+            "dev": true
+        },
         "node_modules/text-table": {
             "version": "0.2.0",
             "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
@@ -5103,10 +5393,28 @@
                 "url": "https://github.com/sponsors/sindresorhus"
             }
         },
+        "node_modules/ts-patch": {
+            "version": "3.2.0",
+            "resolved": "https://registry.npmjs.org/ts-patch/-/ts-patch-3.2.0.tgz",
+            "integrity": "sha512-fUGMkjGIlD4BFibDM+6pLYLXRguzCUY6fhP1KQzSnFJfAtTDT7DKyX0yHn3CJqfBv4mia/o3ZRte31UVf9Dl1A==",
+            "dev": true,
+            "dependencies": {
+                "chalk": "^4.1.2",
+                "global-prefix": "^3.0.0",
+                "minimist": "^1.2.8",
+                "resolve": "^1.22.2",
+                "semver": "^7.5.4",
+                "strip-ansi": "^6.0.1"
+            },
+            "bin": {
+                "ts-patch": "bin/ts-patch.js",
+                "tspc": "bin/tspc.js"
+            }
+        },
         "node_modules/tslib": {
-            "version": "1.14.1",
-            "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
-            "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+            "version": "2.6.3",
+            "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
+            "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==",
             "dev": true
         },
         "node_modules/tsutils": {
@@ -5124,6 +5432,12 @@
                 "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
             }
         },
+        "node_modules/tsutils/node_modules/tslib": {
+            "version": "1.14.1",
+            "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+            "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+            "dev": true
+        },
         "node_modules/tsx": {
             "version": "3.14.0",
             "resolved": "https://registry.npmjs.org/tsx/-/tsx-3.14.0.tgz",
@@ -5247,6 +5561,18 @@
                 "node": ">=14.17"
             }
         },
+        "node_modules/typescript-transform-paths": {
+            "version": "3.4.7",
+            "resolved": "https://registry.npmjs.org/typescript-transform-paths/-/typescript-transform-paths-3.4.7.tgz",
+            "integrity": "sha512-1Us1kdkdfKd2unbkBAOV2HHRmbRBYpSuk9nJ7cLD2hP4QmfToiM/VpxNlhJc1eezVwVqSKSBjNSzZsK/fWR/9A==",
+            "dev": true,
+            "dependencies": {
+                "minimatch": "^3.0.4"
+            },
+            "peerDependencies": {
+                "typescript": ">=3.6.5"
+            }
+        },
         "node_modules/unbzip2-stream": {
             "version": "1.4.3",
             "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
@@ -5572,23 +5898,6 @@
                 "jszip": "^2.6.1",
                 "q": "^1.4.1"
             }
-        },
-        "node_modules/zustand": {
-            "version": "3.7.2",
-            "resolved": "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz",
-            "integrity": "sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==",
-            "dev": true,
-            "engines": {
-                "node": ">=12.7.0"
-            },
-            "peerDependencies": {
-                "react": ">=16.8"
-            },
-            "peerDependenciesMeta": {
-                "react": {
-                    "optional": true
-                }
-            }
         }
     }
 }
diff --git a/pkgs/by-name/ve/vencord/package.nix b/pkgs/by-name/ve/vencord/package.nix
index 5d8074d70cb26..ae0127e0d555d 100644
--- a/pkgs/by-name/ve/vencord/package.nix
+++ b/pkgs/by-name/ve/vencord/package.nix
@@ -5,8 +5,8 @@
 , buildWebExtension ? false
 }:
 let
-  version = "1.8.4";
-  gitHash = "a5eb55e";
+  version = "1.8.9";
+  gitHash = "008227c";
 in
 buildNpmPackage rec {
   pname = "vencord";
@@ -16,7 +16,7 @@ buildNpmPackage rec {
     owner = "Vendicated";
     repo = "Vencord";
     rev = "v${version}";
-    hash = "sha256-FbU1Zsz/84oSOCOSWunA5nn5qFGLQ4W3uqsbYytF/7c=";
+    hash = "sha256-ASIb7iNtbdx9zAe9o/73M1hF9uBvXid63Vlx7wLpV5U=";
   };
 
   ESBUILD_BINARY_PATH = lib.getExe (esbuild.overrideAttrs (final: _: {
@@ -34,7 +34,7 @@ buildNpmPackage rec {
   npmRebuildFlags = [ "|| true" ];
 
   makeCacheWritable = true;
-  npmDepsHash = "sha256-yb9Dbu9Rb1+xV/XiDP49uaQdBP9uM+oimzkeznpGrKw=";
+  npmDepsHash = "sha256-4yC//tdUiEDoAV1lGYdFLW/bO69IMvG4SQV7bDotfyk=";
   npmFlags = [ "--legacy-peer-deps" ];
   npmBuildScript = if buildWebExtension then "buildWeb" else "build";
   npmBuildFlags = [ "--" "--standalone" "--disable-updater" ];
diff --git a/pkgs/by-name/ve/ventoy/package.nix b/pkgs/by-name/ve/ventoy/package.nix
index 639db05249892..b13902fc80c11 100644
--- a/pkgs/by-name/ve/ventoy/package.nix
+++ b/pkgs/by-name/ve/ventoy/package.nix
@@ -50,11 +50,11 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "ventoy";
-  version = "1.0.98";
+  version = "1.0.99";
 
   src = fetchurl {
     url = "https://github.com/ventoy/Ventoy/releases/download/v${finalAttrs.version}/ventoy-${finalAttrs.version}-linux.tar.gz";
-    hash = "sha256-JjBB9vG7CNs4Fbp6IIBkIpZg7l9g0e58tjhznc7OsLw=";
+    hash = "sha256-RnzdGIp/c5vHBq28HWlfYf/e/JWRatsBWUfYCCnwCj0=";
   };
 
   patches = [
@@ -185,7 +185,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://www.ventoy.net";
-    description = "A New Bootable USB Solution";
+    description = "New Bootable USB Solution";
     longDescription = ''
       Ventoy is an open source tool to create bootable USB drive for
       ISO/WIM/IMG/VHD(x)/EFI files.  With ventoy, you don't need to format the
diff --git a/pkgs/by-name/ve/vesktop/package.nix b/pkgs/by-name/ve/vesktop/package.nix
index 9e45802d392eb..2c60537b0cb44 100644
--- a/pkgs/by-name/ve/vesktop/package.nix
+++ b/pkgs/by-name/ve/vesktop/package.nix
@@ -1,22 +1,20 @@
 {
   lib,
   stdenv,
-  stdenvNoCC,
   fetchFromGitHub,
   substituteAll,
+  makeBinaryWrapper,
   makeWrapper,
   makeDesktopItem,
   copyDesktopItems,
   vencord,
   electron,
   libicns,
-  jq,
-  moreutils,
-  cacert,
-  nodePackages,
   pipewire,
   libpulseaudio,
   autoPatchelfHook,
+  pnpm,
+  nodejs,
   withTTS ? true,
   # Enables the use of vencord from nixpkgs instead of
   # letting vesktop manage it's own version
@@ -33,69 +31,36 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-cZOyydwpIW9Xq716KVi1RGtSlgVnOP3w8vXDwouS70E=";
   };
 
-  # NOTE: This requires pnpm 8.10.0 or newer
-  # https://github.com/pnpm/pnpm/pull/7214
-  pnpmDeps =
-    assert lib.versionAtLeast nodePackages.pnpm.version "8.10.0";
-    stdenvNoCC.mkDerivation {
-      pname = "${finalAttrs.pname}-pnpm-deps";
-      inherit (finalAttrs)
-        src
-        version
-        patches
-        ELECTRON_SKIP_BINARY_DOWNLOAD
-        ;
-
-      nativeBuildInputs = [
-        cacert
-        jq
-        moreutils
-        nodePackages.pnpm
-      ];
-
-      # inspired by https://github.com/NixOS/nixpkgs/blob/763e59ffedb5c25774387bf99bc725df5df82d10/pkgs/applications/misc/pot/default.nix#L56
-      # and based on https://github.com/NixOS/nixpkgs/pull/290715
-      installPhase = ''
-        runHook preInstall
-
-        export HOME=$(mktemp -d)
-        pnpm config set store-dir $out
-        # Some packages produce platform dependent outputs. We do not want to cache those in the global store
-        pnpm config set side-effects-cache false
-        # pnpm is going to warn us about using --force
-        # --force allows us to fetch all dependencies including ones that aren't meant for our host platform
-        pnpm install --force --frozen-lockfile --ignore-script
-
-      '';
-
-      fixupPhase = ''
-        runHook preFixup
-
-        # Remove timestamp and sort the json files
-        rm -rf $out/v3/tmp
-        for f in $(find $out -name "*.json"); do
-          sed -i -E -e 's/"checkedAt":[0-9]+,//g' $f
-          jq --sort-keys . $f | sponge $f
-        done
-
-        runHook postFixup
-      '';
-
-      dontConfigure = true;
-      dontBuild = true;
-      outputHashMode = "recursive";
-      outputHash = "sha256-PogE8uf3W5cKSCqFHMz7FOvT7ONUP4FiFWGBgtk3UC8=";
-    };
-
-  nativeBuildInputs = [
-    autoPatchelfHook
-    copyDesktopItems
-    makeWrapper
-    nodePackages.pnpm
-    nodePackages.nodejs
-  ];
+  pnpmDeps = pnpm.fetchDeps {
+    inherit (finalAttrs)
+      pname
+      version
+      src
+      patches
+      ;
+    hash = "sha256-PogE8uf3W5cKSCqFHMz7FOvT7ONUP4FiFWGBgtk3UC8=";
+  };
 
-  buildInputs = [
+  nativeBuildInputs =
+    [
+      nodejs
+      pnpm.configHook
+    ]
+    ++ lib.optionals stdenv.isLinux [
+      # vesktop uses venmic, which is a shipped as a prebuilt node module
+      # and needs to be patched
+      autoPatchelfHook
+      copyDesktopItems
+      # we use a script wrapper here for environment variable expansion at runtime
+      # https://github.com/NixOS/nixpkgs/issues/172583
+      makeWrapper
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # on macos we don't need to expand variables, so we can use the faster binary wrapper
+      makeBinaryWrapper
+    ];
+
+  buildInputs = lib.optionals stdenv.isLinux [
     libpulseaudio
     pipewire
     stdenv.cc.cc.lib
@@ -108,88 +73,99 @@ stdenv.mkDerivation (finalAttrs: {
       src = ./use_system_vencord.patch;
     });
 
-  ELECTRON_SKIP_BINARY_DOWNLOAD = 1;
-
-  configurePhase = ''
-    runHook preConfigure
-
-    export HOME=$(mktemp -d)
-    export STORE_PATH=$(mktemp -d)
-
-    cp -Tr "$pnpmDeps" "$STORE_PATH"
-    chmod -R +w "$STORE_PATH"
+  env = {
+    ELECTRON_SKIP_BINARY_DOWNLOAD = 1;
+  };
 
-    pnpm config set store-dir "$STORE_PATH"
-    pnpm install --frozen-lockfile --ignore-script --offline
-    patchShebangs node_modules/{*,.*}
+  # disable code signing on macos
+  # https://github.com/electron-userland/electron-builder/blob/77f977435c99247d5db395895618b150f5006e8f/docs/code-signing.md#how-to-disable-code-signing-during-the-build-process-on-macos
+  postConfigure = lib.optionalString stdenv.isDarwin ''
+    export CSC_IDENTITY_AUTO_DISCOVERY=false
+  '';
 
-    runHook postConfigure
+  # electron builds must be writable on darwin
+  preBuild = lib.optionalString stdenv.isDarwin ''
+    cp -r ${electron}/Applications/Electron.app .
+    chmod -R u+w Electron.app
   '';
 
   buildPhase = ''
     runHook preBuild
 
     pnpm build
-    # using `pnpm exec` here apparently makes it ignore ELECTRON_SKIP_BINARY_DOWNLOAD
-    ./node_modules/.bin/electron-builder \
+    pnpm exec electron-builder \
       --dir \
       -c.asarUnpack="**/*.node" \
-      -c.electronDist=${electron}/libexec/electron \
+      -c.electronDist=${if stdenv.isDarwin then "." else "${electron}/libexec/electron"} \
       -c.electronVersion=${electron.version}
 
     runHook postBuild
   '';
 
-  # this is consistent with other nixpkgs electron packages and upstream, as far as I am aware
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/opt/Vesktop
-    cp -r dist/linux-*unpacked/resources $out/opt/Vesktop/
-
+  postBuild = lib.optionalString stdenv.isLinux ''
     pushd build
     ${libicns}/bin/icns2png -x icon.icns
-    for file in icon_*x32.png; do
-      file_suffix=''${file//icon_}
-      install -Dm0644 $file $out/share/icons/hicolor/''${file_suffix//x32.png}/apps/vesktop.png
-    done
-
-    makeWrapper ${electron}/bin/electron $out/bin/vesktop \
-      --add-flags $out/opt/Vesktop/resources/app.asar \
-      ${lib.optionalString withTTS "--add-flags \"--enable-speech-dispatcher\""} \
-      --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime}}"
-
-    runHook postInstall
+    popd
   '';
 
-  desktopItems = [
-    (makeDesktopItem {
-      name = "vesktop";
-      desktopName = "Vesktop";
-      exec = "vesktop %U";
-      icon = "vesktop";
-      startupWMClass = "Vesktop";
-      genericName = "Internet Messenger";
-      keywords = [
-        "discord"
-        "vencord"
-        "electron"
-        "chat"
-      ];
-      categories = [
-        "Network"
-        "InstantMessaging"
-        "Chat"
-      ];
-    })
-  ];
+  installPhase =
+    ''
+      runHook preInstall
+    ''
+    + lib.optionalString stdenv.isLinux ''
+      mkdir -p $out/opt/Vesktop
+      cp -r dist/*unpacked/resources $out/opt/Vesktop/
+
+      for file in build/icon_*x32.png; do
+        file_suffix=''${file//build\/icon_}
+        install -Dm0644 $file $out/share/icons/hicolor/''${file_suffix//x32.png}/apps/vesktop.png
+      done
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      mkdir -p $out/{Applications,bin}
+      mv dist/mac*/Vesktop.App $out/Applications
+    ''
+    + ''
+      runHook postInstall
+    '';
+
+  postFixup =
+    lib.optionalString stdenv.isLinux ''
+      makeWrapper ${electron}/bin/electron $out/bin/vesktop \
+        --add-flags $out/opt/Vesktop/resources/app.asar \
+        ${lib.optionalString withTTS "--add-flags \"--enable-speech-dispatcher\""} \
+        --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime}}"
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      makeWrapper $out/Applications/Vesktop.app/Contents/MacOS/Vesktop $out/bin/vesktop
+    '';
+
+  desktopItems = lib.optional stdenv.isLinux (makeDesktopItem {
+    name = "vesktop";
+    desktopName = "Vesktop";
+    exec = "vesktop %U";
+    icon = "vesktop";
+    startupWMClass = "Vesktop";
+    genericName = "Internet Messenger";
+    keywords = [
+      "discord"
+      "vencord"
+      "electron"
+      "chat"
+    ];
+    categories = [
+      "Network"
+      "InstantMessaging"
+      "Chat"
+    ];
+  });
 
   passthru = {
     inherit (finalAttrs) pnpmDeps;
   };
 
   meta = {
-    description = "An alternate client for Discord with Vencord built-in";
+    description = "Alternate client for Discord with Vencord built-in";
     homepage = "https://github.com/Vencord/Vesktop";
     changelog = "https://github.com/Vencord/Vesktop/releases/tag/${finalAttrs.src.rev}";
     license = lib.licenses.gpl3Only;
@@ -199,10 +175,12 @@ stdenv.mkDerivation (finalAttrs: {
       vgskye
       pluiedev
     ];
+    mainProgram = "vesktop";
     platforms = [
       "x86_64-linux"
       "aarch64-linux"
+      "x86_64-darwin"
+      "aarch64-darwin"
     ];
-    mainProgram = "vesktop";
   };
 })
diff --git a/pkgs/by-name/vi/vibrantlinux/package.nix b/pkgs/by-name/vi/vibrantlinux/package.nix
index 362999ad10964..f28b246afdfd0 100644
--- a/pkgs/by-name/vi/vibrantlinux/package.nix
+++ b/pkgs/by-name/vi/vibrantlinux/package.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A tool to automate managing your screen's saturation depending on what programs are running";
+    description = "Tool to automate managing your screen's saturation depending on what programs are running";
     homepage = "https://github.com/libvibrant/vibrantLinux";
     license = licenses.mit;
     maintainers = with maintainers; [ unclamped ];
diff --git a/pkgs/by-name/vi/vikunja/package.nix b/pkgs/by-name/vi/vikunja/package.nix
index cc9891f3ccd15..36a443f3625b5 100644
--- a/pkgs/by-name/vi/vikunja/package.nix
+++ b/pkgs/by-name/vi/vikunja/package.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, stdenv, stdenvNoCC,  nodePackages, buildGoModule, jq, mage, writeShellScriptBin, nixosTests, buildNpmPackage, moreutils, cacert }:
+{ lib, fetchFromGitHub, stdenv, nodejs, pnpm, buildGoModule, mage, writeShellScriptBin, nixosTests }:
 
 let
   version = "0.23.0";
@@ -13,72 +13,20 @@ let
     pname = "vikunja-frontend";
     inherit version src;
 
-    postPatch = ''
-      cd frontend
-    '';
-
-    pnpmDeps = stdenvNoCC.mkDerivation {
-      pname = "${finalAttrs.pname}-pnpm-deps";
-      inherit (finalAttrs) src version;
-
-      nativeBuildInputs = [
-        jq
-        nodePackages.pnpm
-        moreutils
-        cacert
-      ];
-
-      pnpmPatch = builtins.toJSON {
-        pnpm.supportedArchitectures = {
-          os = [ "linux" ];
-          cpu = [ "x64" "arm64" ];
-        };
-      };
-
-      postPatch = ''
-        cd frontend
-        mv package.json package.json.orig
-        jq --raw-output ". * $pnpmPatch" package.json.orig > package.json
-      '';
+    sourceRoot = "${finalAttrs.src.name}/frontend";
 
-      # https://github.com/NixOS/nixpkgs/blob/763e59ffedb5c25774387bf99bc725df5df82d10/pkgs/applications/misc/pot/default.nix#L56
-      installPhase = ''
-        export HOME=$(mktemp -d)
-
-        pnpm config set store-dir $out
-        pnpm install --frozen-lockfile --ignore-script
-
-        rm -rf $out/v3/tmp
-        for f in $(find $out -name "*.json"); do
-          sed -i -E -e 's/"checkedAt":[0-9]+,//g' $f
-          jq --sort-keys . $f | sponge $f
-        done
-      '';
-
-      dontBuild = true;
-      dontFixup = true;
-      outputHashMode = "recursive";
-      outputHash = {
-        x86_64-linux = "sha256-ybAkXe2/VhGZhr59ZQOcQ+SI2a204e8uPjyE40xUVwU=";
-        aarch64-linux = "sha256-2iURs6JtI/b2+CnLwhog1X5hSFFO6OmmgFRuTbMjH+k=";
-      }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
+    pnpmDeps = pnpm.fetchDeps {
+      inherit (finalAttrs) pname version src sourceRoot;
+      hash = "sha256-awQgOLkb46v2aWfw6yv+zGPoOnczalkzg02tBgMTyMY=";
     };
 
     nativeBuildInputs = [
-      nodePackages.pnpm
-      nodePackages.nodejs
+      nodejs
+      pnpm.configHook
     ];
 
     doCheck = true;
 
-    preBuild = ''
-      export HOME=$(mktemp -d)
-
-      pnpm config set store-dir ${finalAttrs.pnpmDeps}
-      pnpm install --offline --frozen-lockfile --ignore-script
-      patchShebangs node_modules/{*,.*}
-    '';
-
     postBuild = ''
       pnpm run build
     '';
@@ -121,8 +69,10 @@ buildGoModule {
 
   vendorHash = "sha256-d4AeQEAtPqMDe5a5aKhCe3i3pDXAMZJkJXxfcAFTx7A=";
 
+  inherit frontend;
+
   prePatch = ''
-    cp -r ${frontend} frontend/dist
+    cp -r $frontend frontend/dist
   '';
 
   postConfigure = ''
@@ -156,7 +106,7 @@ buildGoModule {
 
   meta = {
     changelog = "https://kolaente.dev/vikunja/api/src/tag/v${version}/CHANGELOG.md";
-    description = "The Todo-app to organize your life.";
+    description = "Todo-app to organize your life";
     homepage = "https://vikunja.io/";
     license = lib.licenses.agpl3Plus;
     maintainers = with lib.maintainers; [ leona ];
diff --git a/pkgs/by-name/vi/vim-startuptime/package.nix b/pkgs/by-name/vi/vim-startuptime/package.nix
new file mode 100644
index 0000000000000..545cb27e43e2c
--- /dev/null
+++ b/pkgs/by-name/vi/vim-startuptime/package.nix
@@ -0,0 +1,39 @@
+{
+  pkgs,
+  lib,
+  buildGoModule,
+  fetchFromGitHub
+}:
+let
+  pname = "vim-startuptime";
+  version = "1.3.2";
+in
+buildGoModule {
+  inherit pname version;
+  ldflags = [
+    "-s"
+    "-w"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "rhysd";
+    repo = "vim-startuptime";
+    rev = "v${version}";
+    hash = "sha256-d6AXTWTUawkBCXCvMs3C937qoRUZmy0qCFdSLcWh0BE=";
+  };
+
+  nativeCheckInputs = with pkgs; [
+    vim
+    neovim
+  ];
+
+  vendorHash = null;
+
+  meta = with lib; {
+    homepage = "https://github.com/rhysd/vim-startuptime";
+    description = "Small Go program for better `vim --startuptime` alternative";
+    maintainers = with maintainers; [ _9yokuro ];
+    license = licenses.mit;
+    mainProgram = "vim-startuptime";
+  };
+}
diff --git a/pkgs/by-name/vi/vimix-cursors/package.nix b/pkgs/by-name/vi/vimix-cursors/package.nix
index 33de66e19e548..b42d053be6ae3 100644
--- a/pkgs/by-name/vi/vimix-cursors/package.nix
+++ b/pkgs/by-name/vi/vimix-cursors/package.nix
@@ -46,7 +46,7 @@ stdenvNoCC.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "An X cursor theme inspired by Materia design";
+    description = "X cursor theme inspired by Materia design";
     homepage = "https://github.com/vinceliuice/Vimix-cursors";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ambroisie ];
diff --git a/pkgs/by-name/vi/vinegar/package.nix b/pkgs/by-name/vi/vinegar/package.nix
index 19dd302094435..f192e13cc4891 100644
--- a/pkgs/by-name/vi/vinegar/package.nix
+++ b/pkgs/by-name/vi/vinegar/package.nix
@@ -10,40 +10,66 @@
 , vulkan-headers
 , wine64Packages
 , fetchpatch
+, fetchFromGitLab
+, fetchurl
+,
 }:
 let
-  # wine-staging doesn't support overrideAttrs for now
+  stagingPatch = fetchFromGitLab {
+    sha256 = "sha256-VQ4j4PuXRoXbCUZ16snVO+jRvuKD4Rjn14R7bhwdAco=";
+    domain = "gitlab.winehq.org";
+    owner = "wine";
+    repo = "wine-staging";
+    rev = "v9.2";
+  };
+
   wine = wine64Packages.staging.overrideDerivation (oldAttrs: {
-    patches =
-      (oldAttrs.patches or [])
+    prePatch = ''
+      patchShebangs tools
+      cp -r ${stagingPatch}/patches ${stagingPatch}/staging .
+      chmod +w patches
+      patchShebangs ./patches/gitapply.sh
+      python3 ./staging/patchinstall.py --destdir="$PWD" --all
+    '';
+    patches = (oldAttrs.patches or [ ])
       ++ [
-        # upstream issue: https://bugs.winehq.org/show_bug.cgi?id=55604
-        # Here are the currently applied patches for Roblox to run under WINE:
-        (fetchpatch {
-          name = "vinegar-wine-segregrevert.patch";
-          url = "https://raw.githubusercontent.com/flathub/org.vinegarhq.Vinegar/e24cb9dfa996bcfeaa46504c0375660fe271148d/patches/wine/segregrevert.patch";
-          hash = "sha256-+3Nld81nG3GufI4jAF6yrWfkJmsSCOku39rx0Hov29c=";
-        })
-        (fetchpatch {
-          name = "vinegar-wine-mouselock.patch";
-          url = "https://raw.githubusercontent.com/flathub/org.vinegarhq.Vinegar/e24cb9dfa996bcfeaa46504c0375660fe271148d/patches/wine/mouselock.patch";
-          hash = "sha256-0AGA4AQbxTL5BGVbm072moav7xVA3zpotYqM8pcEDa4=";
-        })
-      ];
+      (fetchurl {
+        name = "childwindow.patch";
+        hash = "sha256-u3mDvlbhQnfh2tUKb8jNJA0tTcLIaKVLfY8ktJmeRns=";
+        url = "https://raw.githubusercontent.com/flathub/org.vinegarhq.Vinegar/9f43ce33a691afb50562d95adfc6719a3b58ddb7/patches/wine/childwindow.patch";
+      })
+      (fetchpatch {
+        name = "mouselock.patch";
+        hash = "sha256-0AGA4AQbxTL5BGVbm072moav7xVA3zpotYqM8pcEDa4=";
+        url = "https://raw.githubusercontent.com/flathub/org.vinegarhq.Vinegar/9f43ce33a691afb50562d95adfc6719a3b58ddb7/patches/wine/mouselock.patch";
+      })
+      (fetchpatch {
+        name = "segregrevert.patch";
+        hash = "sha256-+3Nld81nG3GufI4jAF6yrWfkJmsSCOku39rx0Hov29c=";
+        url = "https://raw.githubusercontent.com/flathub/org.vinegarhq.Vinegar/9f43ce33a691afb50562d95adfc6719a3b58ddb7/patches/wine/segregrevert.patch";
+      })
+    ];
+    src = fetchFromGitLab rec {
+      sha256 = "sha256-GlPH34dr9aHx7xvlcbtDMn/wrY//DP58ilXjhQXgihQ=";
+      domain = "gitlab.winehq.org";
+      owner = "wine";
+      repo = "wine";
+      rev = "wine-9.2";
+    };
   });
 in
 buildGoModule rec {
   pname = "vinegar";
-  version = "1.7.3";
+  version = "1.7.4";
 
   src = fetchFromGitHub {
     owner = "vinegarhq";
     repo = "vinegar";
     rev = "v${version}";
-    hash = "sha256-aKL+4jw/uMbbvLRCBHstCTrcQ1PTYSCwMNgXTvSvMeY=";
+    hash = "sha256-4tkcrUzW8la5WiDtGUvvsRzFqZM1gqnWWAzXc82hirM=";
   };
 
-  vendorHash = "sha256-OaMfWecOPQh6quXjYkZLyBDHZ9TINSA7Ue/Y0sz5ZYY=";
+  vendorHash = "sha256-pi9FjKYXH8cqTx2rTRCyT4+pOM5HnIKosEcmcpbuywQ=";
 
   nativeBuildInputs = [ pkg-config makeBinaryWrapper ];
   buildInputs = [ libGL libxkbcommon xorg.libX11 xorg.libXcursor xorg.libXfixes wayland vulkan-headers wine ];
@@ -66,7 +92,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "An open-source, minimal, configurable, fast bootstrapper for running Roblox on Linux";
+    description = "Open-source, minimal, configurable, fast bootstrapper for running Roblox on Linux";
     homepage = "https://github.com/vinegarhq/vinegar";
     changelog = "https://github.com/vinegarhq/vinegar/releases/tag/v${version}";
     mainProgram = "vinegar";
diff --git a/pkgs/by-name/vi/violet/package.nix b/pkgs/by-name/vi/violet/package.nix
new file mode 100644
index 0000000000000..35e13eea544f8
--- /dev/null
+++ b/pkgs/by-name/vi/violet/package.nix
@@ -0,0 +1,38 @@
+{
+  lib,
+  cmake,
+  fetchFromGitHub,
+  nix-update-script,
+  stdenv,
+  violet,
+  testers,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "violet";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "paullouisageneau";
+    repo = "violet";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-+cAgcGOMlhDdep8VuqP8DeELbMRXydRsD0xTyHqOuYM=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  passthru = {
+    updateScript = nix-update-script { };
+    tests = testers.testVersion { package = violet; };
+  };
+
+  meta = {
+    description = "Lightweight STUN/TURN server";
+    homepage = "https://github.com/paullouisageneau/violet";
+    license = lib.licenses.gpl2Only;
+    mainProgram = "violet";
+    maintainers = with lib.maintainers; [ oluceps ];
+    platforms = lib.platforms.all;
+  };
+})
diff --git a/pkgs/by-name/vk/vkd3d/package.nix b/pkgs/by-name/vk/vkd3d/package.nix
new file mode 100644
index 0000000000000..eba5b7014300a
--- /dev/null
+++ b/pkgs/by-name/vk/vkd3d/package.nix
@@ -0,0 +1,63 @@
+{
+  lib,
+  autoreconfHook,
+  bison,
+  fetchFromGitLab,
+  flex,
+  pkg-config,
+  spirv-headers,
+  stdenv,
+  vulkan-headers,
+  vulkan-loader,
+  wine,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "vkd3d";
+  version = "1.12";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.winehq.org";
+    owner = "wine";
+    repo = "vkd3d";
+    rev = "vkd3d-${finalAttrs.version}";
+    hash = "sha256-9FNuWtfJJqkSZ3O11G22aNp8PfseLHH4oyL6MulNwMY=";
+  };
+
+  outputs = [ "out" "dev" "lib" ];
+
+  nativeBuildInputs = [
+    autoreconfHook
+    bison
+    flex
+    pkg-config
+    wine
+  ];
+
+  buildInputs = [
+    spirv-headers
+    vulkan-headers
+    vulkan-loader
+  ];
+
+  strictDeps = true;
+
+  meta = {
+    homepage = "https://gitlab.winehq.org/wine/vkd3d";
+    description = "Direct3D to Vulkan translation library";
+    longDescription = ''
+      Vkd3d is a 3D graphics library built on top of Vulkan. It has an API very
+      similar, but not identical, to Direct3D 12.
+
+      Vkd3d can be used by projects that target Direct3D 12 as a drop-in
+      replacement at build-time with some modest source modifications.
+
+      If vkd3d is available when building Wine, then Wine will use it to support
+      Direct3D 12 applications.
+    '';
+    license = with lib.licenses; [ lgpl21Plus ];
+    mainProgram = "vkd3d-compiler";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    inherit (wine.meta) platforms;
+  };
+})
diff --git a/pkgs/by-name/vl/vlc-bittorrent/package.nix b/pkgs/by-name/vl/vlc-bittorrent/package.nix
index d4107d59cd3ab..d6c0efa2c750e 100644
--- a/pkgs/by-name/vl/vlc-bittorrent/package.nix
+++ b/pkgs/by-name/vl/vlc-bittorrent/package.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A bittorrent plugin for VLC";
+    description = "Bittorrent plugin for VLC";
     homepage = "https://github.com/johang/vlc-bittorrent";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/by-name/vl/vlc/package.nix b/pkgs/by-name/vl/vlc/package.nix
index 86406bdba034c..7c8b1e6469856 100644
--- a/pkgs/by-name/vl/vlc/package.nix
+++ b/pkgs/by-name/vl/vlc/package.nix
@@ -5,6 +5,7 @@
 , alsa-lib
 , autoreconfHook
 , avahi
+, curl
 , dbus
 , faad2
 , fetchpatch
@@ -15,6 +16,7 @@
 , freefont_ttf
 , freetype
 , fribidi
+, genericUpdater
 , gnutls
 , libSM
 , libXext
@@ -78,6 +80,7 @@
 , wayland
 , wayland-protocols
 , wrapGAppsHook3
+, writeShellScript
 , xcbutilkeysyms
 , zlib
 
@@ -98,11 +101,11 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "${optionalString onlyLibVLC "lib"}vlc";
-  version = "3.0.20";
+  version = "3.0.21";
 
   src = fetchurl {
     url = "https://get.videolan.org/vlc/${finalAttrs.version}/vlc-${finalAttrs.version}.tar.xz";
-    hash = "sha256-rccoW00nIc3fQOtScMraKqoQozTLVG/VWgY1NEe6KbU=";
+    hash = "sha256-JNu+HX367qCZTV3vC73iABdzRxNtv+Vz9bakzuJa+7A=";
   };
 
   nativeBuildInputs = [
@@ -289,11 +292,17 @@ stdenv.mkDerivation (finalAttrs: {
     remove-references-to -t "${libsForQt5.qtbase.dev}" $out/lib/vlc/plugins/gui/libqt_plugin.so
   '';
 
+  passthru.updateScript = genericUpdater {
+    versionLister = writeShellScript "vlc-versionLister" ''
+      ${curl}/bin/curl -s https://get.videolan.org/vlc/ | sed -En 's/^.*href="([0-9]+(\.[0-9]+)+)\/".*$/\1/p'
+    '';
+  };
+
   meta = {
     description = "Cross-platform media player and streaming server";
     homepage = "https://www.videolan.org/vlc/";
     license = lib.licenses.lgpl21Plus;
-    maintainers = with lib.maintainers; [ AndersonTorres ];
+    maintainers = with lib.maintainers; [ AndersonTorres alois31 ];
     platforms = lib.platforms.linux;
   };
 })
diff --git a/pkgs/games/vms-empire/default.nix b/pkgs/by-name/vm/vms-empire/package.nix
index 9da37789f7cd4..a43c61e30a26b 100644
--- a/pkgs/games/vms-empire/default.nix
+++ b/pkgs/by-name/vm/vms-empire/package.nix
@@ -8,23 +8,34 @@
 , installShellFiles
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "vms-empire";
-  version = "1.16";
+  version = "1.17";
 
   src = fetchurl{
-    url = "http://www.catb.org/~esr/${pname}/${pname}-${version}.tar.gz";
-    hash = "sha256-XETIbt/qVU+TpamPc2WQynqqUuZqkTUnItBprjg+gPk=";
+    url = "http://www.catb.org/~esr/vms-empire/vms-empire-${finalAttrs.version}.tar.gz";
+    hash = "sha256-AmHs6ojVcfglvvFvC9JzNWVS2t4Coqg8WwyNCM+sEno=";
   };
 
-  nativeBuildInputs = [ installShellFiles ];
-  buildInputs = [
-    ncurses
+  nativeBuildInputs = [
+    installShellFiles
     xmlto
     docbook_xml_dtd_44
     docbook_xsl
   ];
 
+  buildInputs = [
+    ncurses
+  ];
+
+  outputs = [
+    "out"
+    "doc"
+    "man"
+  ];
+
+  strictDeps = true;
+
   postBuild = ''
     xmlto man vms-empire.xml
     xmlto html-nochunks vms-empire.xml
@@ -33,7 +44,7 @@ stdenv.mkDerivation rec {
   installPhase = ''
     runHook preInstall
     install -D vms-empire -t ${placeholder "out"}/bin/
-    install -D vms-empire.html -t ${placeholder "out"}/share/doc/${pname}/
+    install -D vms-empire.html -t ${placeholder "doc"}/share/doc/vms-empire/
     install -D vms-empire.desktop -t ${placeholder "out"}/share/applications/
     install -D vms-empire.png -t ${placeholder "out"}/share/icons/hicolor/48x48/apps/
     install -D vms-empire.xml -t ${placeholder "out"}/share/appdata/
@@ -41,12 +52,9 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  hardeningDisable = [ "format" ];
-
-  meta = with lib; {
+  meta = {
     homepage = "http://catb.org/~esr/vms-empire/";
-    description = "The ancestor of all expand/explore/exploit/exterminate games";
-    mainProgram = "vms-empire";
+    description = "Ancestor of all expand/explore/exploit/exterminate games";
     longDescription = ''
       Empire is a simulation of a full-scale war between two emperors, the
       computer and you. Naturally, there is only room for one, so the object of
@@ -55,8 +63,9 @@ stdenv.mkDerivation rec {
       expand/explore/exploit/exterminate games, including Civilization and
       Master of Orion.
     '';
-    license = licenses.gpl2Only;
-    maintainers = [ maintainers.AndersonTorres ];
-    platforms = platforms.unix;
+    license = lib.licenses.gpl2Only;
+    mainProgram = "vms-empire";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.unix;
   };
-}
+})
diff --git a/pkgs/by-name/vo/voidmap/package.nix b/pkgs/by-name/vo/voidmap/package.nix
index 680f464231d02..e3f538220dd12 100644
--- a/pkgs/by-name/vo/voidmap/package.nix
+++ b/pkgs/by-name/vo/voidmap/package.nix
@@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = {
-    description = "A terminal-based personal organizer";
+    description = "Terminal-based personal organizer";
     homepage = "https://github.com/void-rs/void";
     license = lib.licenses.gpl3Only;
     mainProgram = "void";
diff --git a/pkgs/by-name/vp/vp/package.nix b/pkgs/by-name/vp/vp/package.nix
new file mode 100644
index 0000000000000..0676ef14f2aa1
--- /dev/null
+++ b/pkgs/by-name/vp/vp/package.nix
@@ -0,0 +1,48 @@
+{
+  lib,
+  SDL,
+  SDL_image,
+  autoreconfHook,
+  fetchFromGitHub,
+  stdenv,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "vp";
+  version = "1.8-unstable-2017-03-22";
+
+  src = fetchFromGitHub {
+    owner = "erikg";
+    repo = "vp";
+    rev = "52bae15955dbd7270cc906af59bb0fe821a01f27";
+    hash = "sha256-AWRJ//0z97EwvQ00qWDjVeZrPrKnRMOXn4RagdVrcFc=";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    SDL
+  ];
+
+  buildInputs = [
+    SDL
+    SDL_image
+  ];
+
+  outputs = [ "out" "man" ];
+
+  strictDeps = true;
+
+  env.NIX_CFLAGS_COMPILE = toString [
+    "-I${lib.getDev SDL}/include/SDL"
+    "-I${lib.getDev SDL_image}/include/SDL"
+  ];
+
+  meta = {
+    homepage = "https://github.com/erikg/vp";
+    description = "SDL based picture viewer/slideshow";
+    license  = lib.licenses.gpl3Plus;
+    mainProgram = "vp";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    inherit (SDL.meta) platforms;
+  };
+})
diff --git a/pkgs/by-name/on/onevpl-intel-gpu/package.nix b/pkgs/by-name/vp/vpl-gpu-rt/package.nix
index da1e611e8d5cd..8c46715b023a5 100644
--- a/pkgs/by-name/on/onevpl-intel-gpu/package.nix
+++ b/pkgs/by-name/vp/vpl-gpu-rt/package.nix
@@ -8,16 +8,16 @@
 }:
 
 stdenv.mkDerivation rec {
-  pname = "onevpl-intel-gpu";
-  version = "24.2.2";
+  pname = "vpl-gpu-rt";
+  version = "24.2.3";
 
   outputs = [ "out" "dev" ];
 
   src = fetchFromGitHub {
-    owner = "oneapi-src";
-    repo = "oneVPL-intel-gpu";
+    owner = "intel";
+    repo = "vpl-gpu-rt";
     rev = "intel-onevpl-${version}";
-    sha256 = "sha256-JtvRh4p4wPRnqFfE86tJW+yS9AKMoi3TPZO+LZ2Q7Mo=";
+    sha256 = "sha256-n2lkt7zRlpbPedNxa21EQvFdYyOAPF//TsY4srbGHQE=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
@@ -26,13 +26,13 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "oneAPI Video Processing Library Intel GPU implementation";
-    homepage = "https://github.com/oneapi-src/oneVPL-intel-gpu";
-    changelog = "https://github.com/oneapi-src/oneVPL-intel-gpu/releases/tag/${src.rev}";
+    homepage = "https://github.com/intel/vpl-gpu-rt";
+    changelog = "https://github.com/intel/vpl-gpu-rt/releases/tag/${src.rev}";
     license = [ lib.licenses.mit ];
     platforms = lib.platforms.linux;
     # CMake adds x86 specific compiler flags in <source>/builder/FindGlobals.cmake
     # NOTE: https://github.com/oneapi-src/oneVPL-intel-gpu/issues/303
     broken = !stdenv.hostPlatform.isx86;
-    maintainers = [ lib.maintainers.evanrichter ];
+    maintainers = with lib.maintainers; [ evanrichter pjungkamp ];
   };
 }
diff --git a/pkgs/by-name/vs/vscode-js-debug/package.nix b/pkgs/by-name/vs/vscode-js-debug/package.nix
new file mode 100644
index 0000000000000..542b5cbfc8111
--- /dev/null
+++ b/pkgs/by-name/vs/vscode-js-debug/package.nix
@@ -0,0 +1,82 @@
+{ lib
+, buildNpmPackage
+, fetchFromGitHub
+, buildPackages
+, libsecret
+, pkg-config
+, nodePackages
+, runCommand
+, vscode-js-debug
+, nix-update-script
+}:
+
+buildNpmPackage rec {
+  pname = "vscode-js-debug";
+  version = "1.90.0";
+
+  src = fetchFromGitHub {
+    owner = "microsoft";
+    repo = "vscode-js-debug";
+    rev = "v${version}";
+    hash = "sha256-SmWPKO7CEXaOIkuf9Y+825EfGsIz+rWlnCsh1T2UEF0=";
+  };
+
+  npmDepsHash = "sha256-DfeaiqKadTnGzOObK01ctlavwqTMa0tqn59sLZMPvUM=";
+
+  nativeBuildInputs = [ pkg-config nodePackages.node-gyp ];
+
+  buildInputs = [ libsecret ];
+
+  postPatch = ''
+    ${lib.getExe buildPackages.jq} '
+      .scripts.postinstall |= empty |             # tries to install playwright, not necessary for build
+      .scripts.build |= "gulp dapDebugServer" |   # there is no build script defined
+      .bin |= "./dist/src/dapDebugServer.js"      # there is no bin output defined
+    ' ${src}/package.json > package.json
+  '';
+
+  makeCacheWritable = true;
+
+  npmInstallFlags = [ "--include=dev" ];
+
+  preBuild = ''
+    export PATH="node_modules/.bin:$PATH"
+  '';
+
+  passthru.updateScript = nix-update-script {
+    extraArgs = [ "--version-regex" "v((?!\d{4}\.\d\.\d{3}).*)" ];
+  };
+
+  passthru.tests.test = runCommand "${pname}-test"
+    {
+      nativeBuildInputs = [ vscode-js-debug ];
+      meta.timeout = 60;
+    } ''
+    output=$(js-debug --help 2>&1)
+    if grep -Fw -- "Usage: dapDebugServer.js [port|socket path=8123] [host=localhost]" - <<< "$output"; then
+      touch $out
+    else
+      echo "Expected help output was not found!" >&2
+      echo "The output was:" >&2
+      echo "$output" >&2
+      exit 1
+    fi
+  '';
+
+  meta = with lib; {
+    description = "A DAP-compatible JavaScript debugger";
+    longDescription = ''
+      This is a [DAP](https://microsoft.github.io/debug-adapter-protocol/)-based
+      JavaScript debugger. It debugs Node.js, Chrome, Edge, WebView2, VS Code
+      extensions, and more. It has been the default JavaScript debugger in
+      Visual Studio Code since 1.46, and is gradually rolling out in Visual
+      Studio proper.
+    '';
+    homepage = "https://github.com/microsoft/vscode-js-debug";
+    changelog =
+      "https://github.com/microsoft/vscode-js-debug/blob/v${version}/CHANGELOG.md";
+    mainProgram = "js-debug";
+    license = licenses.mit;
+    maintainers = with maintainers; [ zeorin ];
+  };
+}
diff --git a/pkgs/by-name/vu/vunnel/package.nix b/pkgs/by-name/vu/vunnel/package.nix
index df8787c52b811..9ca3f5d42c334 100644
--- a/pkgs/by-name/vu/vunnel/package.nix
+++ b/pkgs/by-name/vu/vunnel/package.nix
@@ -7,14 +7,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "vunnel";
-  version = "0.23.0";
+  version = "0.23.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "anchore";
     repo = "vunnel";
     rev = "refs/tags/v${version}";
-    hash = "sha256-pfR3LxC1sSvLKIwq0P/9DcNkGVIIDfwMiSOpwJ7km9Y=";
+    hash = "sha256-wXBfrlb4i4G3Sm0SopvDVGcQ0/hRGtUdzUQYyUj8/Ps=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/by-name/vz/vzic/package.nix b/pkgs/by-name/vz/vzic/package.nix
new file mode 100644
index 0000000000000..4e645e096bbf5
--- /dev/null
+++ b/pkgs/by-name/vz/vzic/package.nix
@@ -0,0 +1,60 @@
+{
+  stdenv,
+  lib,
+  buildPackages,
+  fetchFromGitHub,
+  pkg-config,
+  glib,
+  libical,
+}:
+stdenv.mkDerivation rec {
+  pname = "vzic";
+  version = "0-unstable-2024-06-04";
+
+  src = fetchFromGitHub {
+    owner = "libical";
+    repo = "vzic";
+    rev = "354296149e65ca31932c514fddb7435cb47671e9";
+    hash = "sha256-L6BIHr3tfw51AoSvZMlP3HWEWXfEaPa8nq1aJOqcNkE=";
+  };
+
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace-fail 'pkg-config' "$PKG_CONFIG"
+  '';
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [
+    glib
+    libical
+  ];
+
+  env = {
+    OLSON_DIR = "tzdata2024a";
+    PRODUCT_ID = "-//NixOS//NONSGML Citadel calendar//EN";
+    TZID_PREFIX = "/NixOS/Olson_%D_1/";
+  };
+
+  # no install rule in Makefile
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/vtimezone
+    ${stdenv.hostPlatform.emulator buildPackages} ./vzic --output-dir $out/share/vtimezone
+    install -Dm744 vzic $out/bin/vzic
+
+    runHook postInstall
+  '';
+
+  meta = {
+    homepage = "https://github.com/libical/vzic";
+    description = "A program to convert the IANA timezone database files into VTIMEZONE files compatible with the iCalendar specification";
+    changelog = "https://github.com/libical/vzic/blob/${src.rev}/ChangeLog";
+    mainProgram = "vzic";
+    license = with lib.licenses; [ gpl2Plus ];
+    maintainers = with lib.maintainers; [ moraxyc ];
+    broken = !stdenv.hostPlatform.emulatorAvailable buildPackages;
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/pkgs/by-name/wa/waf/hook.nix b/pkgs/by-name/wa/waf/hook.nix
index ac497d2278314..c53af17321c3e 100644
--- a/pkgs/by-name/wa/waf/hook.nix
+++ b/pkgs/by-name/wa/waf/hook.nix
@@ -13,12 +13,10 @@ makeSetupHook {
     # waf is not inserted into propagatedBuildInputs, rather it is inserted
     # directly
     inherit waf;
-    wafCrossFlags = lib.optionalString (stdenv.hostPlatform.system != stdenv.targetPlatform.system)
-      ''--cross-compile "--cross-execute=${stdenv.targetPlatform.emulator pkgs}"'';
   };
 
   meta = {
-    description = "A setup hook for using Waf in Nixpkgs";
+    description = "Setup hook for using Waf in Nixpkgs";
     inherit (waf.meta) maintainers platforms broken;
   };
 } ./setup-hook.sh
diff --git a/pkgs/by-name/wa/waf/package.nix b/pkgs/by-name/wa/waf/package.nix
index 9dd0e9339d873..812c6dd9b8d73 100644
--- a/pkgs/by-name/wa/waf/package.nix
+++ b/pkgs/by-name/wa/waf/package.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://waf.io";
-    description = "The meta build system";
+    description = "Meta build system";
     changelog  = "https://gitlab.com/ita1024/waf/blob/${finalAttrs.version}/ChangeLog";
     license = lib.licenses.bsd3;
     mainProgram = "waf";
diff --git a/pkgs/by-name/wa/waf/setup-hook.sh b/pkgs/by-name/wa/waf/setup-hook.sh
index d3e2bf97e6823..a154ae378a07c 100644
--- a/pkgs/by-name/wa/waf/setup-hook.sh
+++ b/pkgs/by-name/wa/waf/setup-hook.sh
@@ -22,10 +22,6 @@ wafConfigurePhase() {
         ${wafConfigureTargets:-configure}
     )
 
-    if [ -z "${dontAddWafCrossFlags:-}" ]; then
-        flagsArray+=(@wafCrossFlags@)
-    fi
-
     echoCmd 'waf configure flags' "${flagsArray[@]}"
     python "$wafPath" "${flagsArray[@]}"
 
diff --git a/pkgs/by-name/wa/wait4x/package.nix b/pkgs/by-name/wa/wait4x/package.nix
index 1255e772b056f..a5b804e3c9074 100644
--- a/pkgs/by-name/wa/wait4x/package.nix
+++ b/pkgs/by-name/wa/wait4x/package.nix
@@ -4,7 +4,7 @@
 }:
 let
   pname = "wait4x";
-  version = "2.14.0";
+  version = "2.14.1";
 in
 buildGoModule {
   inherit pname version;
@@ -13,10 +13,10 @@ buildGoModule {
     owner = "atkrad";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-4lv6nYeyjjGGQksi2Ffx+Yu0OazNsJ0QEZG5BfuyrJ8=";
+    hash = "sha256-7dm1KERBYkASuRWlCbpbLuHVc4uCMPWbSwegjZ8LwVU=";
   };
 
-  vendorHash = "sha256-D8s42YArp0IGi7I6qB9eQEh1ZQptSrKLLVIIdqk5Kq0=";
+  vendorHash = "sha256-CYE5wvBgNLYzCiibd9SWubIQ+22nffr4jpwgwSxhtGo=";
 
   # Tests make network access
   doCheck = false;
diff --git a/pkgs/by-name/wa/wakatime/package.nix b/pkgs/by-name/wa/wakatime-cli/package.nix
index eb62951df2106..dcec3c2b314b1 100644
--- a/pkgs/by-name/wa/wakatime/package.nix
+++ b/pkgs/by-name/wa/wakatime-cli/package.nix
@@ -3,11 +3,11 @@
   buildGo122Module,
   fetchFromGitHub,
   testers,
-  wakatime,
+  wakatime-cli,
 }:
 
 buildGo122Module rec {
-  pname = "wakatime";
+  pname = "wakatime-cli";
   version = "1.90.0";
 
   src = fetchFromGitHub {
@@ -43,7 +43,7 @@ buildGo122Module rec {
     [ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ];
 
   passthru.tests.version = testers.testVersion {
-    package = wakatime;
+    package = wakatime-cli;
     command = "HOME=$(mktemp -d) wakatime-cli --version";
   };
 
diff --git a/pkgs/by-name/wa/walker/package.nix b/pkgs/by-name/wa/walker/package.nix
index 3bf6aca4f288f..8404948b03144 100644
--- a/pkgs/by-name/wa/walker/package.nix
+++ b/pkgs/by-name/wa/walker/package.nix
@@ -11,13 +11,13 @@
 
 buildGoModule rec {
   pname = "walker";
-  version = "0.0.70";
+  version = "0.0.71";
 
   src = fetchFromGitHub {
     owner = "abenz1267";
     repo = "walker";
     rev = "v${version}";
-    hash = "sha256-stwM8L9aX7HAghjtGf/807+YCORg9BqibI4iINcqjH8=";
+    hash = "sha256-ShLwQBWhaoeHijiQCMO3n0DnhNaEd8GOrYMcli5EIZs=";
   };
 
   vendorHash = "sha256-zDntJ695k8dbwyFXbg9PapWD335MHrWbep1xxzXNIL4=";
diff --git a/pkgs/by-name/wa/wapm/package.nix b/pkgs/by-name/wa/wapm/package.nix
index 658aa93ce758e..f93867c59d82f 100644
--- a/pkgs/by-name/wa/wapm/package.nix
+++ b/pkgs/by-name/wa/wapm/package.nix
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A package manager for WebAssembly modules";
+    description = "Package manager for WebAssembly modules";
     mainProgram = "wapm";
     homepage = "https://docs.wasmer.io/ecosystem/wapm";
     license = with licenses; [ mit ];
diff --git a/pkgs/by-name/wa/warp-terminal/versions.json b/pkgs/by-name/wa/warp-terminal/versions.json
index 9940ba44c08d3..ed1b85f3755ac 100644
--- a/pkgs/by-name/wa/warp-terminal/versions.json
+++ b/pkgs/by-name/wa/warp-terminal/versions.json
@@ -1,10 +1,10 @@
 {
   "darwin": {
-    "hash": "sha256-XRwnT73kCv4mO2DKkuFQ8qwpIIH9iyRTrJEZUi6tscU=",
-    "version": "0.2024.05.14.08.01.stable_04"
+    "hash": "sha256-ZfW4pTFmEEA/IRBfEMfnVDOxWm3SxGqUCec2nC6MADA=",
+    "version": "0.2024.06.11.08.02.stable_03"
   },
   "linux": {
-    "hash": "sha256-16ZMzvdkAAf9xSiL7TCaiJwEMd+jbOYIL/xiF2Todbw=",
-    "version": "0.2024.05.14.08.01.stable_04"
+    "hash": "sha256-xyE/Rc23+ael2oy0Hdq+kGzPYuq5+V8G3jAu3waA1Tk=",
+    "version": "0.2024.06.11.08.02.stable_03"
   }
 }
diff --git a/pkgs/by-name/wa/waybar-mpris/package.nix b/pkgs/by-name/wa/waybar-mpris/package.nix
index 56cee21271607..adbe513b9b440 100644
--- a/pkgs/by-name/wa/waybar-mpris/package.nix
+++ b/pkgs/by-name/wa/waybar-mpris/package.nix
@@ -24,7 +24,7 @@ buildGoModule {
   passthru.updateScript = unstableGitUpdater { };
 
   meta = with lib; {
-    description = "A waybar component/utility for displaying and controlling MPRIS2 compliant media players individually";
+    description = "Waybar component/utility for displaying and controlling MPRIS2 compliant media players individually";
     homepage = "https://git.hrfee.pw/hrfee/waybar-mpris";
     license = licenses.mit;
     mainProgram = "waybar-mpris";
diff --git a/pkgs/by-name/wa/waybar/package.nix b/pkgs/by-name/wa/waybar/package.nix
index cf8eb3b9b350e..134742caa2c86 100644
--- a/pkgs/by-name/wa/waybar/package.nix
+++ b/pkgs/by-name/wa/waybar/package.nix
@@ -150,9 +150,10 @@ stdenv.mkDerivation (finalAttrs: {
 
   mesonFlags =
     (lib.mapAttrsToList lib.mesonEnable {
-      "cava" = cavaSupport;
+      "cava" = cavaSupport && lib.asserts.assertMsg sndioSupport "Sndio support is required for Cava";
       "dbusmenu-gtk" = traySupport;
       "jack" = jackSupport;
+      "libevdev" = evdevSupport;
       "libinput" = inputSupport;
       "libnl" = nlSupport;
       "libudev" = udevSupport;
diff --git a/pkgs/by-name/wa/waybox/package.nix b/pkgs/by-name/wa/waybox/package.nix
index 70ec30f50db29..28b055546ca7c 100644
--- a/pkgs/by-name/wa/waybox/package.nix
+++ b/pkgs/by-name/wa/waybox/package.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/wizbright/waybox";
-    description = "An openbox clone on Wayland";
+    description = "Openbox clone on Wayland";
     license = lib.licenses.mit;
     mainProgram = "waybox";
     maintainers = with lib.maintainers; [ AndersonTorres ];
diff --git a/pkgs/by-name/wa/wayfreeze/package.nix b/pkgs/by-name/wa/wayfreeze/package.nix
new file mode 100644
index 0000000000000..b679bc6f1fde3
--- /dev/null
+++ b/pkgs/by-name/wa/wayfreeze/package.nix
@@ -0,0 +1,33 @@
+{
+  lib,
+  fetchFromGitHub,
+  rustPlatform,
+  libxkbcommon
+}:
+
+rustPlatform.buildRustPackage {
+  pname = "wayfreeze";
+  version = "0-unstable-2024-05-23";
+
+  src = fetchFromGitHub {
+    owner = "Jappie3";
+    repo = "wayfreeze";
+    rev = "069dea0b832bd5b7a7872a57bd53f51cd377f206";
+    hash = "sha256-3btFzZbkHT6kBBA3M7OwFsD710VpMiHSXIpHmvCD/es=";
+  };
+
+  cargoHash = "sha256-3OjZhWAgfmMZ0OGeRawk3KZpPqz1QCVkwsyGM+E7o88=";
+
+  buildInputs = [
+    libxkbcommon
+  ];
+
+  meta = with lib; {
+    description = "Tool to freeze the screen of a Wayland compositor";
+    homepage = "https://github.com/Jappie3/wayfreeze";
+    license = licenses.agpl3Only;
+    maintainers = with lib.maintainers; [ purrpurrn ];
+    mainProgram = "wayfreeze";
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/wa/wayland-pipewire-idle-inhibit/package.nix b/pkgs/by-name/wa/wayland-pipewire-idle-inhibit/package.nix
index a71dbbd6fb5ec..3ada850b803dd 100644
--- a/pkgs/by-name/wa/wayland-pipewire-idle-inhibit/package.nix
+++ b/pkgs/by-name/wa/wayland-pipewire-idle-inhibit/package.nix
@@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "Suspends automatic idling of Wayland compositors when media is being played through Pipewire.";
+    description = "Suspends automatic idling of Wayland compositors when media is being played through Pipewire";
     homepage = "https://github.com/rafaelrc7/wayland-pipewire-idle-inhibit/";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
diff --git a/pkgs/by-name/wa/waylock/build.zig.zon.nix b/pkgs/by-name/wa/waylock/build.zig.zon.nix
new file mode 100644
index 0000000000000..a0d4d9ac09712
--- /dev/null
+++ b/pkgs/by-name/wa/waylock/build.zig.zon.nix
@@ -0,0 +1,20 @@
+# generated by zon2nix (https://github.com/nix-community/zon2nix)
+
+{ linkFarm, fetchzip }:
+
+linkFarm "zig-packages" [
+  {
+    name = "1220840390382c88caf9b0887f6cebbba3a7d05960b8b2ee6d80567b2950b71e5017";
+    path = fetchzip {
+      url = "https://codeberg.org/ifreund/zig-xkbcommon/archive/v0.1.0.tar.gz";
+      hash = "sha256-xilmsDGWlkfpTiGff+/nb76jx87ANdr4zqYy6rKOBMg=";
+    };
+  }
+  {
+    name = "1220b0f8f822c1625af7aae4cb3ab2c4ec1a4c0e99ef32867b2a8d88bb070b3e7f6d";
+    path = fetchzip {
+      url = "https://codeberg.org/ifreund/zig-wayland/archive/v0.1.0.tar.gz";
+      hash = "sha256-VLEx8nRgmJZWgLNBRqrR7bZEkW0m5HTRv984HKwoIfA=";
+    };
+  }
+]
diff --git a/pkgs/applications/misc/waylock/default.nix b/pkgs/by-name/wa/waylock/package.nix
index 9ed2cc12131e9..c6c6c0b0cfd35 100644
--- a/pkgs/applications/misc/waylock/default.nix
+++ b/pkgs/by-name/wa/waylock/package.nix
@@ -1,18 +1,20 @@
-{ lib
-, stdenv
-, fetchFromGitea
-, libxkbcommon
-, pam
-, pkg-config
-, scdoc
-, wayland
-, wayland-protocols
-, zig_0_11
+{
+  lib,
+  stdenv,
+  callPackage,
+  fetchFromGitea,
+  libxkbcommon,
+  pam,
+  pkg-config,
+  scdoc,
+  wayland,
+  wayland-protocols,
+  zig_0_12,
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "waylock";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchFromGitea {
     domain = "codeberg.org";
@@ -20,14 +22,16 @@ stdenv.mkDerivation (finalAttrs: {
     repo = "waylock";
     rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-Z5YNaR+jocJ4hS7NT8oAlrMnqNfD8KRzOyyqdVGDSl0=";
+    hash = "sha256-U8xJucLpmeLdmSUc+AVSH/mlv6UOXsxotJPTMK7lnkA=";
   };
 
+  deps = callPackage ./build.zig.zon.nix { };
+
   nativeBuildInputs = [
     pkg-config
     scdoc
     wayland
-    zig_0_11.hook
+    zig_0_12.hook
   ];
 
   buildInputs = [
@@ -36,16 +40,27 @@ stdenv.mkDerivation (finalAttrs: {
     pam
   ];
 
-  zigBuildFlags = [ "-Dman-pages" ];
+  zigBuildFlags = [
+    "-Dman-pages"
+    "--system"
+    "${finalAttrs.deps}"
+  ];
+
+  preBuild = ''
+    substituteInPlace pam.d/waylock --replace-fail "system-auth" "login"
+  '';
 
   passthru.updateScript = ./update.nu;
 
   meta = {
     homepage = "https://codeberg.org/ifreund/waylock";
     changelog = "https://codeberg.org/ifreund/waylock/releases/tag/v${finalAttrs.version}";
-    description = "A small screenlocker for Wayland compositors";
+    description = "Small screenlocker for Wayland compositors";
     license = lib.licenses.isc;
-    maintainers = with lib.maintainers; [ adamcstephens jordanisaacs ];
+    maintainers = with lib.maintainers; [
+      adamcstephens
+      jordanisaacs
+    ];
     mainProgram = "waylock";
     platforms = lib.platforms.linux;
   };
diff --git a/pkgs/by-name/wa/waylock/update.nu b/pkgs/by-name/wa/waylock/update.nu
new file mode 100755
index 0000000000000..e227fb646517d
--- /dev/null
+++ b/pkgs/by-name/wa/waylock/update.nu
@@ -0,0 +1,8 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i nu -p nushell common-updater-scripts zon2nix
+
+let latest_tag = list-git-tags --url=https://codeberg.org/ifreund/waylock | lines | sort --natural | str replace v '' | last
+update-source-version waylock $latest_tag
+
+http get $"https://codeberg.org/ifreund/waylock/raw/tag/v($latest_tag)/build.zig.zon" | save build.zig.zon
+zon2nix > pkgs/by-name/wa/waylock/build.zig.zon.nix
diff --git a/pkgs/by-name/wb/wb32-dfu-updater/package.nix b/pkgs/by-name/wb/wb32-dfu-updater/package.nix
index fb144b7d6e2b7..02498c4e520a1 100644
--- a/pkgs/by-name/wb/wb32-dfu-updater/package.nix
+++ b/pkgs/by-name/wb/wb32-dfu-updater/package.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation (finalAttrs: {
   buildInputs = [ libusb1 ];
 
   meta = with lib; {
-    description = "USB programmer for downloading and uploading firmware to/from USB devices.";
+    description = "USB programmer for downloading and uploading firmware to/from USB devices";
     longDescription = ''
       wb32-dfu-updater is a host tool used to download and upload firmware to/from WB32 MCU via USB. (wb32-dfu-updater_cli is the command line version).
     '';
diff --git a/pkgs/by-name/we/webcord-vencord/package.nix b/pkgs/by-name/we/webcord-vencord/package.nix
index 352e372d00adc..2ac078def4eed 100644
--- a/pkgs/by-name/we/webcord-vencord/package.nix
+++ b/pkgs/by-name/we/webcord-vencord/package.nix
@@ -1,4 +1,6 @@
 {
+  # allow overriding electron
+  electron,
   webcord,
   substituteAll,
   lib,
@@ -6,7 +8,7 @@
 }:
 
 # nixpkgs-update: no auto update
-webcord.overrideAttrs (old: {
+(webcord.override { inherit electron; }).overrideAttrs (old: {
   pname = "webcord-vencord";
 
   patches = (old.patches or [ ]) ++ [
diff --git a/pkgs/by-name/we/websploit/package.nix b/pkgs/by-name/we/websploit/package.nix
index 71bde35175b20..34b8ab8ff2574 100644
--- a/pkgs/by-name/we/websploit/package.nix
+++ b/pkgs/by-name/we/websploit/package.nix
@@ -32,7 +32,7 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   meta = with lib; {
-    description = "A high level MITM framework";
+    description = "High level MITM framework";
     homepage = "https://github.com/f4rih/websploit";
     changelog = "https://github.com/f4rih/websploit/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/by-name/we/werf/package.nix b/pkgs/by-name/we/werf/package.nix
new file mode 100644
index 0000000000000..0e9e45603f70f
--- /dev/null
+++ b/pkgs/by-name/we/werf/package.nix
@@ -0,0 +1,105 @@
+{
+  lib,
+  stdenv,
+  buildGoModule,
+  fetchFromGitHub,
+  installShellFiles,
+  btrfs-progs,
+  testers,
+  werf,
+}:
+
+buildGoModule rec {
+  pname = "werf";
+  version = "2.6.1";
+
+  src = fetchFromGitHub {
+    owner = "werf";
+    repo = "werf";
+    rev = "v${version}";
+    hash = "sha256-10RyCVF1w5xj/qhFXQTlyrt9HG/4di2fUwUtDHU6t44=";
+  };
+
+  vendorHash = "sha256-d1Dn+JN8tiBVx7YDbtvLW0YgIW2ENrEdx4gKatYy1hw=";
+
+  proxyVendor = true;
+
+  subPackages = [ "cmd/werf" ];
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  buildInputs =
+    lib.optionals stdenv.isLinux [ btrfs-progs ]
+    ++ lib.optionals stdenv.hostPlatform.isGnu [ stdenv.cc.libc.static ];
+
+  CGO_ENABLED = if stdenv.isLinux then 1 else 0;
+
+  ldflags =
+    [
+      "-s"
+      "-w"
+      "-X github.com/werf/werf/v2/pkg/werf.Version=v${version}"
+    ]
+    ++ lib.optionals (CGO_ENABLED == 1) [
+      "-extldflags=-static"
+      "-linkmode external"
+    ];
+
+  tags =
+    [
+      "containers_image_openpgp"
+      "dfrunmount"
+      "dfrunnetwork"
+      "dfrunsecurity"
+      "dfssh"
+    ]
+    ++ lib.optionals (CGO_ENABLED == 1) [
+      "cni"
+      "exclude_graphdriver_devicemapper"
+      "netgo"
+      "no_devmapper"
+      "osusergo"
+      "static_build"
+    ];
+
+  preCheck =
+    ''
+      # Test all targets.
+      unset subPackages
+
+      # Remove tests that require external services.
+      rm -rf \
+        integration/suites \
+        pkg/true_git/*test.go \
+        test/e2e
+    ''
+    + lib.optionalString (CGO_ENABLED == 0) ''
+      # A workaround for osusergo.
+      export USER=nixbld
+    '';
+
+  postInstall = ''
+    installShellCompletion --cmd werf \
+      --bash <($out/bin/werf completion --shell=bash) \
+      --zsh <($out/bin/werf completion --shell=zsh)
+  '';
+
+  passthru.tests.version = testers.testVersion {
+    package = werf;
+    command = "werf version";
+    version = src.rev;
+  };
+
+  meta = with lib; {
+    description = "GitOps delivery tool";
+    mainProgram = "werf";
+    longDescription = ''
+      The CLI tool gluing Git, Docker, Helm & Kubernetes with any CI system to
+      implement CI/CD and Giterminism.
+    '';
+    homepage = "https://werf.io";
+    changelog = "https://github.com/werf/werf/releases/tag/${src.rev}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ azahi ];
+  };
+}
diff --git a/pkgs/by-name/wh/when/package.nix b/pkgs/by-name/wh/when/package.nix
index 65fe306f447f5..91f480255d6c7 100644
--- a/pkgs/by-name/wh/when/package.nix
+++ b/pkgs/by-name/wh/when/package.nix
@@ -34,7 +34,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "An extremely simple personal calendar program";
+    description = "Extremely simple personal calendar program";
     homepage    = "https://www.lightandmatter.com/when/when.html";
     license     = licenses.gpl2Only;
     mainProgram = "when";
diff --git a/pkgs/by-name/wh/where-is-my-sddm-theme/package.nix b/pkgs/by-name/wh/where-is-my-sddm-theme/package.nix
index d5de0f41141a7..7ef69e5b1342f 100644
--- a/pkgs/by-name/wh/where-is-my-sddm-theme/package.nix
+++ b/pkgs/by-name/wh/where-is-my-sddm-theme/package.nix
@@ -31,51 +31,52 @@ in
 
 lib.checkListOfEnum "where-is-my-sddm-theme: variant" validVariants variants
 
-stdenvNoCC.mkDerivation rec {
-  pname = "where-is-my-sddm-theme";
-  version = "1.9.1";
+  stdenvNoCC.mkDerivation
+  (finalAttrs: {
+    pname = "where-is-my-sddm-theme";
+    version = "1.9.2";
 
-  src = fetchFromGitHub {
-    owner = "stepanzubkov";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-o9SpzSmHygHix3BUaMQRwLvgy2BdDsBXmiLDU+9u/6Q=";
-  };
+    src = fetchFromGitHub {
+      owner = "stepanzubkov";
+      repo = "where-is-my-sddm-theme";
+      rev = "refs/tags/v${finalAttrs.version}";
+      hash = "sha256-7I8ucPuPPpUH/KyJoiwlfS7r4Bsh8ZnkHdOEED12TOQ=";
+    };
 
-  propagatedUserEnvPkgs =
-    [ ]
-    ++ lib.optional (lib.elem "qt5" variants) [ libsForQt5.qtgraphicaleffects ]
-    ++ lib.optional (lib.elem "qt6" variants) [
-      qt6.qt5compat
-      qt6.qtsvg
-    ];
+    propagatedUserEnvPkgs =
+      [ ]
+      ++ lib.optionals (lib.elem "qt5" variants) [ libsForQt5.qtgraphicaleffects ]
+      ++ lib.optionals (lib.elem "qt6" variants) [
+        qt6.qt5compat
+        qt6.qtsvg
+      ];
 
-  installPhase =
-    ''
-      mkdir -p $out/share/sddm/themes/
-    ''
-    + lib.optionalString (lib.elem "qt6" variants) (
-      ''
-        cp -r where_is_my_sddm_theme/ $out/share/sddm/themes/
-      ''
-      + lib.optionalString (lib.isAttrs themeConfig) ''
-        ln -sf ${user-cfg} $out/share/sddm/themes/where_is_my_sddm_theme/theme.conf.user
-      ''
-    )
-    + lib.optionalString (lib.elem "qt5" variants) (
-      ''
-        cp -r where_is_my_sddm_theme_qt5/ $out/share/sddm/themes/
+    installPhase =
       ''
-      + lib.optionalString (lib.isAttrs themeConfig) ''
-        ln -sf ${user-cfg} $out/share/sddm/themes/where_is_my_sddm_theme_qt5/theme.conf.user
+        mkdir -p $out/share/sddm/themes/
       ''
-    );
+      + lib.optionalString (lib.elem "qt6" variants) (
+        ''
+          cp -r where_is_my_sddm_theme/ $out/share/sddm/themes/
+        ''
+        + lib.optionalString (lib.isAttrs themeConfig) ''
+          ln -sf ${user-cfg} $out/share/sddm/themes/where_is_my_sddm_theme/theme.conf.user
+        ''
+      )
+      + lib.optionalString (lib.elem "qt5" variants) (
+        ''
+          cp -r where_is_my_sddm_theme_qt5/ $out/share/sddm/themes/
+        ''
+        + lib.optionalString (lib.isAttrs themeConfig) ''
+          ln -sf ${user-cfg} $out/share/sddm/themes/where_is_my_sddm_theme_qt5/theme.conf.user
+        ''
+      );
 
-  meta = with lib; {
-    description = "The most minimalistic SDDM theme among all themes";
-    homepage = "https://github.com/stepanzubkov/where-is-my-sddm-theme";
-    license = licenses.mit;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ name-snrl ];
-  };
-}
+    meta = {
+      description = "Most minimalistic SDDM theme among all themes";
+      homepage = "https://github.com/stepanzubkov/where-is-my-sddm-theme";
+      license = lib.licenses.mit;
+      platforms = lib.platforms.linux;
+      maintainers = with lib.maintainers; [ name-snrl ];
+    };
+  })
diff --git a/pkgs/by-name/wh/whistle/package.nix b/pkgs/by-name/wh/whistle/package.nix
index 1196a9d6591ec..041442cff9255 100644
--- a/pkgs/by-name/wh/whistle/package.nix
+++ b/pkgs/by-name/wh/whistle/package.nix
@@ -2,16 +2,16 @@
 
 buildNpmPackage rec {
   pname = "whistle";
-  version = "2.9.70";
+  version = "2.9.73";
 
   src = fetchFromGitHub {
     owner = "avwo";
     repo = "whistle";
     rev = "v${version}";
-    hash = "sha256-KtZZa/t/WqMSjEAET8wutIhu7sp55/CtaBnNDThkEUI=";
+    hash = "sha256-KDw6axnjwMnXeTKaG2GIF2C4dKiZ/MW2q0SlZGlBIoI=";
   };
 
-  npmDepsHash = "sha256-0XDfi23BktYDH58sDjaBtt6x2ZZDFqtBBL9agnHwgeo=";
+  npmDepsHash = "sha256-U7gZNKUIU3wS8DaVdxi1/Ik+dzwPfyoI3m//2MgPvt4=";
 
   dontNpmBuild = true;
 
diff --git a/pkgs/by-name/wi/wildcard/package.nix b/pkgs/by-name/wi/wildcard/package.nix
new file mode 100644
index 0000000000000..e263cb7215562
--- /dev/null
+++ b/pkgs/by-name/wi/wildcard/package.nix
@@ -0,0 +1,64 @@
+{ lib
+, blueprint-compiler
+, cargo
+, desktop-file-utils
+, fetchFromGitLab
+, libadwaita
+, meson
+, ninja
+, pkg-config
+, rustPlatform
+, rustc
+, stdenv
+, wrapGAppsHook4
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "wildcard";
+  version = "0.3.3";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "World";
+    repo = "Wildcard";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-jOv0l1vnfDePWF7SAbsBFipPAONliPdc47xj79BJ+rc=";
+  };
+
+  strictDeps = true;
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit (finalAttrs) src;
+    hash = "sha256-8jNNCcZRoLyOHdaWmYTOGD7Nf7NkmJ1MIxBXLJGrm5Y=";
+    name = "wildcard-${finalAttrs.version}";
+  };
+
+  nativeBuildInputs = [
+    blueprint-compiler
+    cargo
+    desktop-file-utils
+    meson
+    ninja
+    pkg-config
+    rustPlatform.cargoSetupHook
+    rustc
+    wrapGAppsHook4
+  ];
+
+  buildInputs = [
+    libadwaita
+  ];
+
+  meta = {
+    description = "Test your regular expressions";
+    longDescription = ''
+      Wildcard gives you a nice and simple to use interface to test/practice regular expressions.
+    '';
+    homepage = "https://gitlab.gnome.org/World/Wildcard";
+    downloadPage = "https://gitlab.gnome.org/World/Wildcard/-/releases/v${finalAttrs.version}";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ aleksana ];
+    mainProgram = "wildcard";
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/wi/win-disk-writer/package.nix b/pkgs/by-name/wi/win-disk-writer/package.nix
new file mode 100644
index 0000000000000..667a91968a057
--- /dev/null
+++ b/pkgs/by-name/wi/win-disk-writer/package.nix
@@ -0,0 +1,36 @@
+{
+  lib,
+  stdenvNoCC,
+  fetchzip,
+  nix-update-script,
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "win-disk-writer";
+  version = "1.3";
+
+  src = fetchzip {
+    url = "https://github.com/TechUnRestricted/WinDiskWriter/releases/download/v${finalAttrs.version}/WinDiskWriter.${finalAttrs.version}.zip";
+    hash = "sha256-3+Pjp1T0u6G64W8dm4pWRiznDWNW4cMxTkoAIQgvtQY=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p "$out/Applications/WinDiskWriter.app"
+    cp -R . "$out/Applications/WinDiskWriter.app/"
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "Windows Bootable USB creator for macOS";
+    homepage = "https://github.com/TechUnRestricted/WinDiskWriter";
+    license = lib.licenses.gpl3;
+    maintainers = with lib.maintainers; [ donteatoreo ];
+    platforms = lib.platforms.darwin;
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+  };
+})
diff --git a/pkgs/by-name/wi/windmill/package.nix b/pkgs/by-name/wi/windmill/package.nix
index 6cb030cbb6614..d576f2699bf66 100644
--- a/pkgs/by-name/wi/windmill/package.nix
+++ b/pkgs/by-name/wi/windmill/package.nix
@@ -74,7 +74,10 @@ rustPlatform.buildRustPackage {
             name = "librusty_v8-${args.version}";
             url = "https://github.com/denoland/rusty_v8/releases/download/v${args.version}/librusty_v8_release_${stdenv.hostPlatform.rust.rustcTarget}.a";
             sha256 = args.shas.${stdenv.hostPlatform.system} or (throw "Unsupported platform ${stdenv.hostPlatform.system}");
-            meta = { inherit (args) version; };
+            meta = {
+              inherit (args) version;
+              sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+            };
           };
       in
       fetch_librusty_v8 {
diff --git a/pkgs/by-name/wi/windowmaker/dockapps/cputnik.nix b/pkgs/by-name/wi/windowmaker/dockapps/cputnik.nix
index 6ac10e374e0fd..0c969bf1c1052 100644
--- a/pkgs/by-name/wi/windowmaker/dockapps/cputnik.nix
+++ b/pkgs/by-name/wi/windowmaker/dockapps/cputnik.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A Calendar clock with antialiased text";
+    description = "Calendar clock with antialiased text";
     homepage = "https://www.dockapps.net/wmcalclock";
     license = lib.licenses.gpl2Plus;
     maintainers = [ ];
diff --git a/pkgs/by-name/wi/windowmaker/dockapps/libdockapp.nix b/pkgs/by-name/wi/windowmaker/dockapps/libdockapp.nix
index 12446bfc7262f..73c1571ff9584 100644
--- a/pkgs/by-name/wi/windowmaker/dockapps/libdockapp.nix
+++ b/pkgs/by-name/wi/windowmaker/dockapps/libdockapp.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = {
-    description = "A library providing a framework for dockapps";
+    description = "Library providing a framework for dockapps";
     homepage = "https://www.dockapps.net/libdockapp";
     license = lib.licenses.gpl2Plus;
     maintainers = [ ];
diff --git a/pkgs/by-name/wi/windowmaker/dockapps/wmCalClock.nix b/pkgs/by-name/wi/windowmaker/dockapps/wmCalClock.nix
index 1dc130971ded4..fd46af14acc75 100644
--- a/pkgs/by-name/wi/windowmaker/dockapps/wmCalClock.nix
+++ b/pkgs/by-name/wi/windowmaker/dockapps/wmCalClock.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
   installFlags = [ "DESTDIR=${placeholder "out"}" ];
 
   meta = {
-    description = "A Calendar clock with antialiased text";
+    description = "Calendar clock with antialiased text";
     homepage = "https://www.dockapps.net/wmcalclock";
     license = lib.licenses.gpl2Plus;
     maintainers = [ ];
diff --git a/pkgs/by-name/wi/windowmaker/dockapps/wmsystemtray.nix b/pkgs/by-name/wi/windowmaker/dockapps/wmsystemtray.nix
index 52ba4dacd0c23..440c35ce6449f 100644
--- a/pkgs/by-name/wi/windowmaker/dockapps/wmsystemtray.nix
+++ b/pkgs/by-name/wi/windowmaker/dockapps/wmsystemtray.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = {
-    description = "A system tray for Windowmaker";
+    description = "System tray for Windowmaker";
     homepage = "http://wmsystemtray.sourceforge.net";
     license = lib.licenses.gpl2Only;
     maintainers = [ ];
diff --git a/pkgs/by-name/wi/wiper/package.nix b/pkgs/by-name/wi/wiper/package.nix
new file mode 100644
index 0000000000000..3eb069de236a1
--- /dev/null
+++ b/pkgs/by-name/wi/wiper/package.nix
@@ -0,0 +1,34 @@
+{
+  lib,
+  stdenv,
+  darwin,
+  rustPlatform,
+  fetchFromGitHub,
+}:
+let
+  version = "0.2.1";
+in
+rustPlatform.buildRustPackage {
+  pname = "wiper";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "ikebastuz";
+    repo = "wiper";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-IheSAPk1l6wJ2v4RLPIPvY/5XMfh+vJLyQ/Lc7RrCJQ=";
+  };
+
+  cargoHash = "sha256-gYWTv0AXOmpx9Nc8akBMVWkESI0AtnGgvfH9hQZ0peo=";
+
+  buildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Foundation ];
+
+  meta = {
+    description = "Disk analyser and cleanup tool";
+    changelog = "https://github.com/ikebastuz/wiper/releases/tag/v${version}";
+    homepage = "https://github.com/ikebastuz/wiper";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ isabelroses ];
+    mainProgram = "wiper";
+  };
+}
diff --git a/pkgs/by-name/wi/wireguard-vanity-keygen/package.nix b/pkgs/by-name/wi/wireguard-vanity-keygen/package.nix
index a38699cf0ddc3..3f9d5054ed6b0 100644
--- a/pkgs/by-name/wi/wireguard-vanity-keygen/package.nix
+++ b/pkgs/by-name/wi/wireguard-vanity-keygen/package.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "wireguard-vanity-keygen";
-  version = "0.0.9";
+  version = "0.1.0";
 
   src = fetchFromGitHub {
     owner = "axllent";
     repo = "wireguard-vanity-keygen";
     rev = version;
-    hash = "sha256-K5lJSDRBf3NCs6v+HmjYJiHjfKt/6djvM847/C4qfeI=";
+    hash = "sha256-L+YssChpGNQs2MLGXul1sxVmROOWfT0aaZMepGuKmEQ=";
   };
 
   vendorHash = "sha256-kAPw5M9o99NijCC9BzYhIpzHK/8fSAJxvckaj8iRby0=";
diff --git a/pkgs/by-name/wi/wiremock/package.nix b/pkgs/by-name/wi/wiremock/package.nix
index 4478fed50dde1..2c6e389cc87bd 100644
--- a/pkgs/by-name/wi/wiremock/package.nix
+++ b/pkgs/by-name/wi/wiremock/package.nix
@@ -10,11 +10,11 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "wiremock";
-  version = "3.5.4";
+  version = "3.6.0";
 
   src = fetchurl {
     url = "mirror://maven/org/wiremock/wiremock-standalone/${finalAttrs.version}/wiremock-standalone-${finalAttrs.version}.jar";
-    hash = "sha256-BljkiUs5POPY2e+bmB8E6z+BWJME6ENP9NDc0XR5Vl0=";
+    hash = "sha256-tLOiGl5/HuDbhrRyu+xZ6lL408n85MXl63lecGgok9w=";
   };
 
   dontUnpack = true;
@@ -41,7 +41,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   };
 
   meta = {
-    description = "A flexible tool for building mock APIs";
+    description = "Flexible tool for building mock APIs";
     homepage = "https://wiremock.org/";
     changelog = "https://github.com/wiremock/wiremock/releases/tag/${finalAttrs.version}";
     maintainers = with lib.maintainers; [ bobvanderlinden anthonyroussel ];
diff --git a/pkgs/by-name/wi/wit-bindgen/package.nix b/pkgs/by-name/wi/wit-bindgen/package.nix
index b1a7229d74d0b..a0672ab00ba12 100644
--- a/pkgs/by-name/wi/wit-bindgen/package.nix
+++ b/pkgs/by-name/wi/wit-bindgen/package.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wit-bindgen";
-  version = "0.25.0";
+  version = "0.26.0";
 
   src = fetchFromGitHub {
     owner = "bytecodealliance";
     repo = "wit-bindgen";
     rev = "v${version}";
-    hash = "sha256-ckzS3hMdBHllpbzPq4MZ3K6L1fKEgcgI2nnpzSI1ky4=";
+    hash = "sha256-A73ONUSW5pDoDB7+U3kOcLWnYxco9brhhL1cRLh2wug=";
   };
 
-  cargoHash = "sha256-BKNgPr5Yj+B0nAQEJdh6gat91WZ73sDSBgKDPrhn6bo=";
+  cargoHash = "sha256-L15XhJ1h9jmIBmtIob5X3EXkVDCqaBCrtI9sojtRUTQ=";
 
   # Some tests fail because they need network access to install the `wasm32-unknown-unknown` target.
   # However, GitHub Actions ensures a proper build.
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A language binding generator for WebAssembly interface types";
+    description = "Language binding generator for WebAssembly interface types";
     homepage = "https://github.com/bytecodealliance/wit-bindgen";
     license = licenses.asl20;
     maintainers = with maintainers; [ xrelkd ];
diff --git a/pkgs/by-name/wi/wizer/package.nix b/pkgs/by-name/wi/wizer/package.nix
index 7a46d673af9c9..7ef6a9790600e 100644
--- a/pkgs/by-name/wi/wizer/package.nix
+++ b/pkgs/by-name/wi/wizer/package.nix
@@ -36,7 +36,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "The WebAssembly pre-initializer";
+    description = "WebAssembly pre-initializer";
     mainProgram = "wizer";
     homepage = "https://github.com/bytecodealliance/wizer";
     license = licenses.asl20;
diff --git a/pkgs/by-name/wl/wl-clipboard-rs/package.nix b/pkgs/by-name/wl/wl-clipboard-rs/package.nix
index 509845a637ee2..2b881a35d2568 100644
--- a/pkgs/by-name/wl/wl-clipboard-rs/package.nix
+++ b/pkgs/by-name/wl/wl-clipboard-rs/package.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wl-clipboard-rs";
-  version = "0.8.1";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "YaLTeR";
     repo = "wl-clipboard-rs";
     rev = "v${version}";
-    hash = "sha256-tNmpGBg21IuhKEzY15O2MKVpMB+eCjvRVwVUahADuJU=";
+    hash = "sha256-qwlR/PJivCgQTXe027zuQxq0iVJ3/BLg6LAD3w5tb9Y=";
   };
 
-  cargoHash = "sha256-0Ix+fF1QO1KU8FIOb8EV4iYXe4S69sZOxCdxYccL8m0=";
+  cargoHash = "sha256-C3vhZq5IHtbfg2mYYdQRqaLSA0iSER8zRaKi72FCd+E=";
 
   cargoBuildFlags = [
     "--package=wl-clipboard-rs"
diff --git a/pkgs/by-name/wl/wl-gammarelay-rs/package.nix b/pkgs/by-name/wl/wl-gammarelay-rs/package.nix
index 4edc2506a08e5..202fcf7c7da1c 100644
--- a/pkgs/by-name/wl/wl-gammarelay-rs/package.nix
+++ b/pkgs/by-name/wl/wl-gammarelay-rs/package.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = {
-    description = "A simple program that provides DBus interface to control display temperature and brightness under wayland without flickering";
+    description = "Simple program that provides DBus interface to control display temperature and brightness under wayland without flickering";
     homepage = "https://github.com/MaxVerevkin/wl-gammarelay-rs";
     license = lib.licenses.gpl3Plus;
     mainProgram = "wl-gammarelay-rs";
diff --git a/pkgs/by-name/wl/wldash/0001-Update-Cargo.lock.patch b/pkgs/by-name/wl/wldash/0001-Update-Cargo.lock.patch
new file mode 100644
index 0000000000000..a699d19c1398a
--- /dev/null
+++ b/pkgs/by-name/wl/wldash/0001-Update-Cargo.lock.patch
@@ -0,0 +1,25 @@
+From 2538e41f001fa363d3459efe3b8102a354b06dd0 Mon Sep 17 00:00:00 2001
+From: Kenny Levinsen <kl@kl.wtf>
+Date: Sun, 16 Jan 2022 23:16:30 +0100
+Subject: [PATCH 1/2] Update Cargo.lock
+
+---
+ Cargo.lock | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Cargo.lock b/Cargo.lock
+index 3da9a07..1ad4a86 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -796,7 +796,7 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+ 
+ [[package]]
+ name = "wldash"
+-version = "0.2.0"
++version = "0.3.0"
+ dependencies = [
+  "alsa",
+  "bitflags",
+-- 
+2.44.0
+
diff --git a/pkgs/by-name/wl/wldash/0002-Update-fontconfig.patch b/pkgs/by-name/wl/wldash/0002-Update-fontconfig.patch
new file mode 100644
index 0000000000000..b4bc177249665
--- /dev/null
+++ b/pkgs/by-name/wl/wldash/0002-Update-fontconfig.patch
@@ -0,0 +1,112 @@
+From b2ae30bab412472f1d2ff90439134a8a465fdf9a Mon Sep 17 00:00:00 2001
+From: Kenny Levinsen <kl@kl.wtf>
+Date: Mon, 2 May 2022 11:21:47 +0200
+Subject: [PATCH 2/2] Update fontconfig
+
+---
+ Cargo.lock | 38 +++++++++++++++++++++++++++++---------
+ Cargo.toml |  2 +-
+ 2 files changed, 30 insertions(+), 10 deletions(-)
+
+diff --git a/Cargo.lock b/Cargo.lock
+index 1ad4a86..6821181 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -137,7 +137,16 @@ version = "0.4.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "b11f15d1e3268f140f68d390637d5e76d849782d971ae7063e0da69fe9709a76"
+ dependencies = [
+- "libloading",
++ "libloading 0.6.7",
++]
++
++[[package]]
++name = "dlib"
++version = "0.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794"
++dependencies = [
++ "libloading 0.7.3",
+ ]
+ 
+ [[package]]
+@@ -166,9 +175,9 @@ checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
+ 
+ [[package]]
+ name = "fontconfig"
+-version = "0.2.0"
++version = "0.5.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a5570e7ce35ffb621b31934530c4b3b8ce9fdd8bf8436e98f9c7ebadff2ef259"
++checksum = "a25320ad784a9578ada0b395dd7dcd2321109404bbb341ec27e64b01a1e49b47"
+ dependencies = [
+  "yeslogic-fontconfig-sys",
+ ]
+@@ -237,6 +246,16 @@ dependencies = [
+  "winapi",
+ ]
+ 
++[[package]]
++name = "libloading"
++version = "0.7.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd"
++dependencies = [
++ "cfg-if 1.0.0",
++ "winapi",
++]
++
+ [[package]]
+ name = "libpulse-binding"
+ version = "2.23.0"
+@@ -398,9 +417,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "once_cell"
+-version = "1.5.2"
++version = "1.10.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0"
++checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9"
+ 
+ [[package]]
+ name = "opaque-debug"
+@@ -803,7 +822,7 @@ dependencies = [
+  "byteorder",
+  "chrono",
+  "dbus",
+- "dlib",
++ "dlib 0.4.2",
+  "fontconfig",
+  "fuzzy-matcher",
+  "itertools",
+@@ -843,11 +862,12 @@ dependencies = [
+ 
+ [[package]]
+ name = "yeslogic-fontconfig-sys"
+-version = "2.11.1"
++version = "3.0.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e194a0c5cd1b5c87215eed9d26aca9799fa1b599fe2e178977d6f8ccc812e3d3"
++checksum = "cb3f5a91c31bef6650d3a1b69192b4217fd88e4cfedc8101813e4dc3394ecbb8"
+ dependencies = [
+  "const-cstr",
+- "libc",
++ "dlib 0.5.0",
++ "once_cell",
+  "pkg-config",
+ ]
+diff --git a/Cargo.toml b/Cargo.toml
+index abb3807..691daa7 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -46,5 +46,5 @@ serde_yaml = { version = "0.8", optional = true }
+ 
+ libpulse-binding = { version = "2.22", optional = true }
+ alsa = { version = "0.4.0", optional = true }
+-fontconfig = "0.2.0"
++fontconfig = "0.5.0"
+ unicode-segmentation = "1.6.0"
+-- 
+2.44.0
+
diff --git a/pkgs/by-name/wl/wldash/package.nix b/pkgs/by-name/wl/wldash/package.nix
new file mode 100644
index 0000000000000..ab45f201e8e63
--- /dev/null
+++ b/pkgs/by-name/wl/wldash/package.nix
@@ -0,0 +1,77 @@
+{
+  lib,
+  alsa-lib,
+  dbus,
+  fetchFromGitHub,
+  fontconfig,
+  libffi,
+  libpulseaudio,
+  libxkbcommon,
+  pkg-config,
+  rustPlatform,
+  wayland,
+  enableAlsaWidget ? true,
+  enablePulseaudioWidget ? true,
+}:
+
+let
+  pname = "wldash";
+  version = "0.3.0";
+  libraryPath = lib.makeLibraryPath [
+    wayland
+    libxkbcommon
+  ];
+in
+rustPlatform.buildRustPackage {
+  inherit pname version;
+
+  buildNoDefaultFeatures = true;
+  buildFeatures =
+    [
+      "yaml-cfg"
+      "json-cfg"
+    ]
+    ++ lib.optionals enableAlsaWidget [ "alsa-widget" ]
+    ++ lib.optionals enablePulseaudioWidget [ "pulseaudio-widget" ];
+
+  src = fetchFromGitHub {
+    owner = "kennylevinsen";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-ZzsBD3KKTT+JGiFCpdumPyVAE2gEJvzCq+nRnK3RdxI=";
+  };
+
+  strictDeps = true;
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs =
+    [
+      dbus
+      fontconfig
+    ]
+    ++ lib.optionals enableAlsaWidget [ alsa-lib ]
+    ++ lib.optionals enablePulseaudioWidget [ libpulseaudio ];
+
+  cargoPatches = [
+    ./0001-Update-Cargo.lock.patch
+    ./0002-Update-fontconfig.patch
+  ];
+
+  cargoSha256 = "sha256-Y7nhj8VpO6sEzVkM3uPv8Tlk2jPn3c/uPJqFc/HjHI0=";
+
+  dontPatchELF = true;
+
+  postInstall = ''
+    patchelf --set-rpath ${libraryPath}:$(patchelf --print-rpath $out/bin/wldash) $out/bin/wldash
+  '';
+
+  meta = {
+    description = "Wayland launcher/dashboard";
+    homepage = "https://github.com/kennylevinsen/wldash";
+    license = lib.licenses.gpl3;
+    maintainers = with lib.maintainers; [ bbenno ];
+    mainProgram = "wldash";
+    platforms = lib.platforms.linux;
+    sourceProvenance = with lib.sourceTypes; [ fromSource ];
+  };
+}
diff --git a/pkgs/by-name/wl/wlinhibit/package.nix b/pkgs/by-name/wl/wlinhibit/package.nix
new file mode 100644
index 0000000000000..b134786a5f385
--- /dev/null
+++ b/pkgs/by-name/wl/wlinhibit/package.nix
@@ -0,0 +1,42 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  meson,
+  ninja,
+  pkg-config,
+  wayland,
+  wayland-protocols,
+}:
+stdenv.mkDerivation rec {
+  pname = "wlinhibit";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "0x5a4";
+    repo = "wlinhibit";
+    rev = "v0.1.1";
+    hash = "sha256-YQHJ9sLHSV8GJP7IpRzmtDbeB86y/a48mLcYy4iDciw=";
+  };
+
+
+  buildInputs = [
+    wayland
+    wayland-protocols
+  ];
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+  ];
+
+  meta = {
+    description = "simple, stupid idle inhibitor for wayland";
+    license = lib.licenses.mit;
+    homepage = "https://github.com/0x5a4/wlinhibit";
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/wl/wlogout/package.nix b/pkgs/by-name/wl/wlogout/package.nix
index 4f328cb9f53cf..63a537f6e3e2d 100644
--- a/pkgs/by-name/wl/wlogout/package.nix
+++ b/pkgs/by-name/wl/wlogout/package.nix
@@ -72,7 +72,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/ArtsyMacaw/wlogout";
-    description = "A wayland based logout menu";
+    description = "Wayland based logout menu";
     changelog = "https://github.com/ArtsyMacaw/wlogout/releases/tag/${finalAttrs.src.rev}";
     license = with lib.licenses; [ mit ];
     mainProgram = "wlogout";
diff --git a/pkgs/by-name/wl/wlr-layout-ui/package.nix b/pkgs/by-name/wl/wlr-layout-ui/package.nix
index efa72ee133d91..3f7f3cae30031 100644
--- a/pkgs/by-name/wl/wlr-layout-ui/package.nix
+++ b/pkgs/by-name/wl/wlr-layout-ui/package.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "wlr-layout-ui";
-  version = "1.6.10";
+  version = "1.6.11";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "fdev31";
     repo = "wlr-layout-ui";
     rev = "refs/tags/${version}";
-    hash = "sha256-UM1p5b5+xJY6BgPUMXjluIC9zQxe388+gBWTbNQPWYQ=";
+    hash = "sha256-aM8KV3jzim14lBVvn/AqUsfoRWrnKtRJeFSX1Thrq3M=";
   };
 
   postPatch = ''
@@ -38,7 +38,7 @@ python3.pkgs.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A simple GUI to setup the screens layout on wlroots based systems";
+    description = "Simple GUI to setup the screens layout on wlroots based systems";
     homepage = "https://github.com/fdev31/wlr-layout-ui/";
     maintainers = with maintainers; [ bnlrnz ];
     license = licenses.mit;
diff --git a/pkgs/by-name/wl/wlvncc/package.nix b/pkgs/by-name/wl/wlvncc/package.nix
index 24ec18ff4b16e..dcb19ccad5192 100644
--- a/pkgs/by-name/wl/wlvncc/package.nix
+++ b/pkgs/by-name/wl/wlvncc/package.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation {
   ];
 
   meta = with lib; {
-    description = "A Wayland Native VNC Client";
+    description = "Wayland Native VNC Client";
     homepage = "https://github.com/any1/wlvncc";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ teutat3s ];
diff --git a/pkgs/by-name/wl/wlx-overlay-s/Cargo.lock b/pkgs/by-name/wl/wlx-overlay-s/Cargo.lock
index d7a620223f382..e819514493489 100644
--- a/pkgs/by-name/wl/wlx-overlay-s/Cargo.lock
+++ b/pkgs/by-name/wl/wlx-overlay-s/Cargo.lock
@@ -3,6 +3,37 @@
 version = 3
 
 [[package]]
+name = "ab_glyph"
+version = "0.2.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e53b0a3d5760cd2ba9b787ae0c6440ad18ee294ff71b05e3381c900a7d16cfd"
+dependencies = [
+ "ab_glyph_rasterizer",
+ "owned_ttf_parser",
+]
+
+[[package]]
+name = "ab_glyph_rasterizer"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046"
+
+[[package]]
+name = "addr2line"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
 name = "ahash"
 version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -17,9 +48,9 @@ dependencies = [
 
 [[package]]
 name = "aho-corasick"
-version = "1.1.2"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
 dependencies = [
  "memchr",
 ]
@@ -31,7 +62,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "37fe60779335388a88c01ac6c3be40304d1e349de3ada3b15f7808bb90fa9dce"
 dependencies = [
  "alsa-sys",
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "libc",
 ]
 
@@ -46,6 +77,33 @@ dependencies = [
 ]
 
 [[package]]
+name = "android-activity"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee91c0c2905bae44f84bfa4e044536541df26b7703fd0888deeb9060fcc44289"
+dependencies = [
+ "android-properties",
+ "bitflags 2.5.0",
+ "cc",
+ "cesu8",
+ "jni 0.21.1",
+ "jni-sys",
+ "libc",
+ "log",
+ "ndk",
+ "ndk-context",
+ "ndk-sys",
+ "num_enum",
+ "thiserror",
+]
+
+[[package]]
+name = "android-properties"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04"
+
+[[package]]
 name = "android-tzdata"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -72,47 +130,48 @@ dependencies = [
 
 [[package]]
 name = "anstream"
-version = "0.6.13"
+version = "0.6.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
+checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b"
 dependencies = [
  "anstyle",
  "anstyle-parse",
  "anstyle-query",
  "anstyle-wincon",
  "colorchoice",
+ "is_terminal_polyfill",
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle"
-version = "1.0.6"
+version = "1.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
+checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.3"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
+checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4"
 dependencies = [
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle-query"
-version = "1.0.2"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
+checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5"
 dependencies = [
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "anstyle-wincon"
-version = "3.0.2"
+version = "3.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
+checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19"
 dependencies = [
  "anstyle",
  "windows-sys 0.52.0",
@@ -120,9 +179,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.81"
+version = "1.0.86"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
+checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
 
 [[package]]
 name = "approx"
@@ -147,6 +206,24 @@ dependencies = [
 ]
 
 [[package]]
+name = "arrayref"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545"
+
+[[package]]
+name = "arrayvec"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
+
+[[package]]
+name = "as-raw-xcb-connection"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b"
+
+[[package]]
 name = "ash"
 version = "0.37.3+1.3.251"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -175,36 +252,34 @@ dependencies = [
 
 [[package]]
 name = "async-broadcast"
-version = "0.7.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "258b52a1aa741b9f09783b2d86cf0aeeb617bbf847f6933340a39644227acbdb"
+checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e"
 dependencies = [
- "event-listener 5.2.0",
- "event-listener-strategy 0.5.0",
+ "event-listener",
+ "event-listener-strategy",
  "futures-core",
  "pin-project-lite",
 ]
 
 [[package]]
 name = "async-channel"
-version = "2.2.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
+checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a"
 dependencies = [
  "concurrent-queue",
- "event-listener 5.2.0",
- "event-listener-strategy 0.5.0",
+ "event-listener-strategy",
  "futures-core",
  "pin-project-lite",
 ]
 
 [[package]]
 name = "async-executor"
-version = "1.8.0"
+version = "1.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c"
+checksum = "c8828ec6e544c02b0d6691d21ed9f9218d0384a82542855073c2a3f58304aaf0"
 dependencies = [
- "async-lock 3.3.0",
  "async-task",
  "concurrent-queue",
  "fastrand",
@@ -214,22 +289,22 @@ dependencies = [
 
 [[package]]
 name = "async-fs"
-version = "2.1.1"
+version = "2.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc19683171f287921f2405677dd2ed2549c3b3bda697a563ebc3a121ace2aba1"
+checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a"
 dependencies = [
- "async-lock 3.3.0",
+ "async-lock",
  "blocking",
  "futures-lite",
 ]
 
 [[package]]
 name = "async-io"
-version = "2.3.2"
+version = "2.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884"
+checksum = "0d6baa8f0178795da0e71bc42c9e5d13261aac7ee549853162e66a241ba17964"
 dependencies = [
- "async-lock 3.3.0",
+ "async-lock",
  "cfg-if",
  "concurrent-queue",
  "futures-io",
@@ -244,21 +319,12 @@ dependencies = [
 
 [[package]]
 name = "async-lock"
-version = "2.8.0"
+version = "3.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
+checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18"
 dependencies = [
- "event-listener 2.5.3",
-]
-
-[[package]]
-name = "async-lock"
-version = "3.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
-dependencies = [
- "event-listener 4.0.3",
- "event-listener-strategy 0.4.0",
+ "event-listener",
+ "event-listener-strategy",
  "pin-project-lite",
 ]
 
@@ -275,41 +341,43 @@ dependencies = [
 
 [[package]]
 name = "async-process"
-version = "2.1.0"
+version = "2.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "451e3cf68011bd56771c79db04a9e333095ab6349f7e47592b788e9b98720cc8"
+checksum = "f7eda79bbd84e29c2b308d1dc099d7de8dcc7035e48f4bf5dc4a531a44ff5e2a"
 dependencies = [
  "async-channel",
  "async-io",
- "async-lock 3.3.0",
+ "async-lock",
  "async-signal",
+ "async-task",
  "blocking",
  "cfg-if",
- "event-listener 5.2.0",
+ "event-listener",
  "futures-lite",
  "rustix",
+ "tracing",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "async-recursion"
-version = "1.0.5"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
+checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.53",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "async-signal"
-version = "0.2.5"
+version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
+checksum = "329972aa325176e89114919f2a80fdae4f4c040f66a370b1a1159c6c0f94e7aa"
 dependencies = [
  "async-io",
- "async-lock 2.8.0",
+ "async-lock",
  "atomic-waker",
  "cfg-if",
  "futures-core",
@@ -317,24 +385,24 @@ dependencies = [
  "rustix",
  "signal-hook-registry",
  "slab",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "async-task"
-version = "4.7.0"
+version = "4.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
+checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
 
 [[package]]
 name = "async-trait"
-version = "0.1.78"
+version = "0.1.80"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "461abc97219de0eaaf81fe3ef974a540158f3d079c2ab200f891f1a2ef201e85"
+checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.53",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -356,9 +424,9 @@ dependencies = [
 
 [[package]]
 name = "autocfg"
-version = "1.1.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
 
 [[package]]
 name = "autocxx"
@@ -392,7 +460,7 @@ dependencies = [
  "regex",
  "rustc-hash",
  "shlex",
- "syn 2.0.53",
+ "syn 2.0.66",
  "which",
 ]
 
@@ -405,7 +473,7 @@ dependencies = [
  "autocxx-engine",
  "env_logger",
  "indexmap 1.9.3",
- "syn 2.0.53",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -432,7 +500,7 @@ dependencies = [
  "rustversion",
  "serde_json",
  "strum_macros 0.24.3",
- "syn 2.0.53",
+ "syn 2.0.66",
  "tempfile",
  "thiserror",
  "version_check",
@@ -448,7 +516,7 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.53",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -465,18 +533,39 @@ dependencies = [
  "quote",
  "serde",
  "serde_json",
- "syn 2.0.53",
+ "syn 2.0.66",
  "thiserror",
 ]
 
 [[package]]
+name = "backtrace"
+version = "0.3.72"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17c6a35df3749d2e8bb1b7b21a976d82b15548788d2735b9d82f329268f71a11"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "base64"
+version = "0.21.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+
+[[package]]
 name = "bindgen"
 version = "0.69.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0"
 dependencies = [
  "annotate-snippets",
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "cexpr",
  "clang-sys",
  "itertools 0.12.1",
@@ -487,7 +576,7 @@ dependencies = [
  "regex",
  "rustc-hash",
  "shlex",
- "syn 2.0.53",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -498,9 +587,12 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.2"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
+dependencies = [
+ "serde",
+]
 
 [[package]]
 name = "block-buffer"
@@ -512,45 +604,61 @@ dependencies = [
 ]
 
 [[package]]
+name = "block-sys"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae85a0696e7ea3b835a453750bf002770776609115e6d25c6d2ff28a8200f7e7"
+dependencies = [
+ "objc-sys",
+]
+
+[[package]]
+name = "block2"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15b55663a85f33501257357e6421bb33e769d5c9ffb5ba0921c975a123e35e68"
+dependencies = [
+ "block-sys",
+ "objc2",
+]
+
+[[package]]
 name = "blocking"
-version = "1.5.1"
+version = "1.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
+checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea"
 dependencies = [
  "async-channel",
- "async-lock 3.3.0",
  "async-task",
- "fastrand",
  "futures-io",
  "futures-lite",
  "piper",
- "tracing",
 ]
 
 [[package]]
 name = "bumpalo"
-version = "3.15.4"
+version = "3.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
 
 [[package]]
 name = "bytemuck"
-version = "1.15.0"
+version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15"
+checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5"
 dependencies = [
  "bytemuck_derive",
 ]
 
 [[package]]
 name = "bytemuck_derive"
-version = "1.6.0"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60"
+checksum = "1ee891b04274a59bd38b412188e24b849617b2e45a0fd8d057deb63e7403761b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.53",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -561,9 +669,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
-version = "1.5.0"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
 
 [[package]]
 name = "calloop"
@@ -571,7 +679,7 @@ version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "log",
  "polling",
  "rustix",
@@ -593,12 +701,13 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.90"
+version = "1.0.98"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
+checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
 dependencies = [
  "jobserver",
  "libc",
+ "once_cell",
 ]
 
 [[package]]
@@ -618,9 +727,9 @@ dependencies = [
 
 [[package]]
 name = "cfg-expr"
-version = "0.15.7"
+version = "0.15.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d"
+checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02"
 dependencies = [
  "smallvec",
  "target-lexicon",
@@ -640,23 +749,23 @@ checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
 
 [[package]]
 name = "chrono"
-version = "0.4.35"
+version = "0.4.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "js-sys",
  "num-traits",
  "wasm-bindgen",
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
 name = "chrono-tz"
-version = "0.8.6"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d59ae0466b83e838b81a54256c39d5d7c20b9d7daa10510a242d9b75abd5936e"
+checksum = "93698b29de5e97ad0ae26447b344c482a7284c737d9ddc5f9e52b74a336671bb"
 dependencies = [
  "chrono",
  "chrono-tz-build",
@@ -665,9 +774,9 @@ dependencies = [
 
 [[package]]
 name = "chrono-tz-build"
-version = "0.2.1"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "433e39f13c9a060046954e0592a8d0a4bcb1040125cbf91cb8ee58964cfb350f"
+checksum = "0c088aee841df9c3041febbb73934cfc39708749bf96dc827e3359cd39ef11b1"
 dependencies = [
  "parse-zoneinfo",
  "phf",
@@ -676,9 +785,9 @@ dependencies = [
 
 [[package]]
 name = "clang-sys"
-version = "1.7.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1"
+checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4"
 dependencies = [
  "glob",
  "libc",
@@ -687,9 +796,9 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.5.3"
+version = "4.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "949626d00e063efc93b6dca932419ceb5432f99769911c0b995f7e884c778813"
+checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -709,14 +818,14 @@ dependencies = [
 
 [[package]]
 name = "clap_derive"
-version = "4.5.3"
+version = "4.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90239a040c80f5e14809ca132ddc4176ab33d5e17e49691793296e3fcb34d72f"
+checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64"
 dependencies = [
  "heck 0.5.0",
  "proc-macro2",
  "quote",
- "syn 2.0.53",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -746,15 +855,15 @@ dependencies = [
 
 [[package]]
 name = "colorchoice"
-version = "1.0.0"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422"
 
 [[package]]
 name = "combine"
-version = "4.6.6"
+version = "4.6.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4"
+checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd"
 dependencies = [
  "bytes",
  "memchr",
@@ -762,20 +871,60 @@ dependencies = [
 
 [[package]]
 name = "concurrent-queue"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
+checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
 dependencies = [
  "crossbeam-utils",
 ]
 
 [[package]]
+name = "config"
+version = "0.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7328b20597b53c2454f0b1919720c25c7339051c02b72b7e05409e00b14132be"
+dependencies = [
+ "async-trait",
+ "convert_case 0.6.0",
+ "json5",
+ "lazy_static",
+ "nom",
+ "pathdiff",
+ "ron",
+ "rust-ini",
+ "serde",
+ "serde_json",
+ "toml",
+ "yaml-rust",
+]
+
+[[package]]
 name = "const-cstr"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ed3d0b5ff30645a68f35ece8cea4556ca14ef8a1651455f789a099a0513532a6"
 
 [[package]]
+name = "const-random"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359"
+dependencies = [
+ "const-random-macro",
+]
+
+[[package]]
+name = "const-random-macro"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e"
+dependencies = [
+ "getrandom",
+ "once_cell",
+ "tiny-keccak",
+]
+
+[[package]]
 name = "convert_case"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -792,9 +941,12 @@ dependencies = [
 
 [[package]]
 name = "cookie-factory"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "396de984970346b0d9e93d1415082923c679e5ae5c3ee3dcbd104f5610af126b"
+checksum = "9885fa71e26b8ab7855e2ec7cae6e9b380edff76cd052e07c683a0319d51b3a2"
+dependencies = [
+ "futures",
+]
 
 [[package]]
 name = "core-foundation"
@@ -813,6 +965,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
+name = "core-graphics"
+version = "0.23.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "core-graphics-types",
+ "foreign-types",
+ "libc",
+]
+
+[[package]]
 name = "core-graphics-types"
 version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -863,7 +1028,7 @@ dependencies = [
  "wasm-bindgen",
  "wasm-bindgen-futures",
  "web-sys",
- "windows",
+ "windows 0.54.0",
 ]
 
 [[package]]
@@ -876,6 +1041,25 @@ dependencies = [
 ]
 
 [[package]]
+name = "crossbeam-deque"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
+dependencies = [
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
 name = "crossbeam-queue"
 version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -886,9 +1070,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.19"
+version = "0.8.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
 
 [[package]]
 name = "crunchy"
@@ -908,9 +1092,9 @@ dependencies = [
 
 [[package]]
 name = "cstr"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8aa998c33a6d3271e3678950a22134cd7dd27cef86dee1b611b5b14207d1d90b"
+checksum = "68523903c8ae5aacfa32a0d9ae60cadeb764e1da14ee0d26b1f3089f13a54636"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -934,9 +1118,9 @@ checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991"
 
 [[package]]
 name = "cxx"
-version = "1.0.119"
+version = "1.0.122"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "635179be18797d7e10edb9cd06c859580237750c7351f39ed9b298bfc17544ad"
+checksum = "bb497fad022245b29c2a0351df572e2d67c1046bcef2260ebc022aec81efea82"
 dependencies = [
  "cc",
  "cxxbridge-flags",
@@ -946,38 +1130,38 @@ dependencies = [
 
 [[package]]
 name = "cxx-gen"
-version = "0.7.119"
+version = "0.7.122"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5797d553b95704a6a49394acfdb93e2332b8aaa146713a1e8ebe362e86d9fa68"
+checksum = "a476ac5d29b1957ad93669eef9a030e9fc139103f9bb1ff9f15504c3f21236b0"
 dependencies = [
  "codespan-reporting",
  "proc-macro2",
  "quote",
- "syn 2.0.53",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "cxxbridge-flags"
-version = "1.0.119"
+version = "1.0.122"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a87ff7342ffaa54b7c61618e0ce2bbcf827eba6d55b923b83d82551acbbecfe5"
+checksum = "688c799a4a846f1c0acb9f36bb9c6272d9b3d9457f3633c7753c6057270df13c"
 
 [[package]]
 name = "cxxbridge-macro"
-version = "1.0.119"
+version = "1.0.122"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70b5b86cf65fa0626d85720619d80b288013477a91a0389fa8bc716bf4903ad1"
+checksum = "928bc249a7e3cd554fd2e8e08a426e9670c50bbfc9a621653cfa9accc9641783"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.53",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "darling"
-version = "0.20.8"
+version = "0.20.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391"
+checksum = "83b2eb4d90d12bdda5ed17de686c2acb4c57914f8f921b8da7e112b5a36f3fe1"
 dependencies = [
  "darling_core",
  "darling_macro",
@@ -985,26 +1169,26 @@ dependencies = [
 
 [[package]]
 name = "darling_core"
-version = "0.20.8"
+version = "0.20.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f"
+checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120"
 dependencies = [
  "fnv",
  "ident_case",
  "proc-macro2",
  "quote",
- "syn 2.0.53",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "darling_macro"
-version = "0.20.8"
+version = "0.20.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
+checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178"
 dependencies = [
  "darling_core",
  "quote",
- "syn 2.0.53",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -1059,6 +1243,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "dispatch"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
+
+[[package]]
 name = "dlib"
 version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1068,10 +1258,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "dlv-list"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f"
+dependencies = [
+ "const-random",
+]
+
+[[package]]
 name = "downcast-rs"
-version = "1.2.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
+checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2"
 
 [[package]]
 name = "drm-fourcc"
@@ -1081,9 +1280,9 @@ checksum = "0aafbcdb8afc29c1a7ee5fbe53b5d62f4565b35a042a662ca9fecd0b54dae6f4"
 
 [[package]]
 name = "either"
-version = "1.10.0"
+version = "1.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
+checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b"
 
 [[package]]
 name = "endi"
@@ -1109,7 +1308,7 @@ checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.53",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -1130,7 +1329,7 @@ dependencies = [
  "darling",
  "proc-macro2",
  "quote",
- "syn 2.0.53",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -1154,9 +1353,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "errno"
-version = "0.3.8"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
 dependencies = [
  "libc",
  "windows-sys 0.52.0",
@@ -1164,26 +1363,9 @@ dependencies = [
 
 [[package]]
 name = "event-listener"
-version = "2.5.3"
+version = "5.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
-
-[[package]]
-name = "event-listener"
-version = "4.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
-dependencies = [
- "concurrent-queue",
- "parking",
- "pin-project-lite",
-]
-
-[[package]]
-name = "event-listener"
-version = "5.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91"
+checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba"
 dependencies = [
  "concurrent-queue",
  "parking",
@@ -1192,29 +1374,19 @@ dependencies = [
 
 [[package]]
 name = "event-listener-strategy"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
-dependencies = [
- "event-listener 4.0.3",
- "pin-project-lite",
-]
-
-[[package]]
-name = "event-listener-strategy"
-version = "0.5.0"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
+checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1"
 dependencies = [
- "event-listener 5.2.0",
+ "event-listener",
  "pin-project-lite",
 ]
 
 [[package]]
 name = "fastrand"
-version = "2.0.1"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
 
 [[package]]
 name = "fixedbitset"
@@ -1224,14 +1396,13 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
 
 [[package]]
 name = "flexi_logger"
-version = "0.27.4"
+version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "469e584c031833564840fb0cdbce99bdfe946fd45480a188545e73a76f45461c"
+checksum = "419c99d8fc346ea0eaeaac2cc3945024d8fe82aa435aefc2fb9fcda1065f8774"
 dependencies = [
  "chrono",
  "glob",
  "is-terminal",
- "lazy_static",
  "log",
  "nu-ansi-term",
  "regex",
@@ -1257,6 +1428,33 @@ dependencies = [
 ]
 
 [[package]]
+name = "foreign-types"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
+dependencies = [
+ "foreign-types-macros",
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-macros"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
+
+[[package]]
 name = "form_urlencoded"
 version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1267,23 +1465,24 @@ dependencies = [
 
 [[package]]
 name = "freetype-rs"
-version = "0.32.0"
+version = "0.36.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d59c337e64822dd56a3a83ed75a662a470736bdb3a9fabfb588dff276b94a4e0"
+checksum = "5442dee36ca09604133580dc0553780e867936bb3cbef3275859e889026d2b17"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.5.0",
  "freetype-sys",
  "libc",
 ]
 
 [[package]]
 name = "freetype-sys"
-version = "0.17.0"
+version = "0.20.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "643148ca6cbad6bec384b52fbe1968547d578c4efe83109e035c43a71734ff88"
+checksum = "0e7edc5b9669349acfda99533e9e0bcf26a51862ab43b08ee7745c55d28eb134"
 dependencies = [
  "cc",
  "libc",
+ "pkg-config",
 ]
 
 [[package]]
@@ -1336,9 +1535,9 @@ checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
 name = "futures-lite"
-version = "2.2.0"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba"
+checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
 dependencies = [
  "fastrand",
  "futures-core",
@@ -1355,7 +1554,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.53",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -1399,10 +1598,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "gethostname"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818"
+dependencies = [
+ "libc",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
 name = "getrandom"
-version = "0.2.12"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
 dependencies = [
  "cfg-if",
  "libc",
@@ -1410,12 +1619,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "gimli"
+version = "0.29.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
+
+[[package]]
 name = "glam"
-version = "0.24.2"
+version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945"
+checksum = "9e05e7e6723e3455f4818c7b26e855439f7546cf617ef669d1adedb8669e5cb9"
 dependencies = [
  "approx",
+ "serde",
 ]
 
 [[package]]
@@ -1426,9 +1642,9 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
 name = "half"
-version = "2.4.0"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e"
+checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888"
 dependencies = [
  "bytemuck",
  "cfg-if",
@@ -1443,9 +1659,15 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
 
 [[package]]
 name = "hashbrown"
-version = "0.14.3"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
+
+[[package]]
+name = "hashbrown"
+version = "0.14.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
 
 [[package]]
 name = "heck"
@@ -1525,6 +1747,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "icrate"
+version = "0.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99d3aaff8a54577104bafdf686ff18565c3b6903ca5782a2026ef06e2c7aa319"
+dependencies = [
+ "block2",
+ "dispatch",
+ "objc2",
+]
+
+[[package]]
 name = "ident_case"
 version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1537,6 +1770,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dba885f996064df334b1639785897d1c58c0646750101b839b8359664cb26c0e"
 dependencies = [
  "fixedbitset",
+ "serde",
 ]
 
 [[package]]
@@ -1573,12 +1807,12 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.2.5"
+version = "2.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.3",
+ "hashbrown 0.14.5",
 ]
 
 [[package]]
@@ -1619,6 +1853,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "is_terminal_polyfill"
+version = "1.70.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800"
+
+[[package]]
 name = "itertools"
 version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1647,9 +1887,9 @@ dependencies = [
 
 [[package]]
 name = "itoa"
-version = "1.0.10"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
 
 [[package]]
 name = "jni"
@@ -1689,9 +1929,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
 
 [[package]]
 name = "jobserver"
-version = "0.1.28"
+version = "0.1.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
+checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e"
 dependencies = [
  "libc",
 ]
@@ -1712,6 +1952,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "078e285eafdfb6c4b434e0d31e8cfcb5115b651496faca5749b88fafd4f23bfd"
 
 [[package]]
+name = "json5"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96b0db21af676c1ce64250b5f40f3ce2cf27e4e47cb91ed91eb6fe9350b430c1"
+dependencies = [
+ "pest",
+ "pest_derive",
+ "serde",
+]
+
+[[package]]
 name = "lazy_static"
 version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1725,9 +1976,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 [[package]]
 name = "libc"
-version = "0.2.153"
+version = "0.2.155"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
 
 [[package]]
 name = "libdbus-sys"
@@ -1755,7 +2006,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
 dependencies = [
  "cfg-if",
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "libredox"
+version = "0.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607"
+dependencies = [
+ "bitflags 2.5.0",
+ "libc",
+ "redox_syscall 0.4.1",
 ]
 
 [[package]]
@@ -1764,7 +2026,7 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "65f3a4b81b2a2d8c7f300643676202debd1b7c929dbf5c9bb89402ea11d19810"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "cc",
  "convert_case 0.6.0",
  "cookie-factory",
@@ -1796,16 +2058,22 @@ dependencies = [
 ]
 
 [[package]]
+name = "linked-hash-map"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
+
+[[package]]
 name = "linux-raw-sys"
-version = "0.4.13"
+version = "0.4.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
 
 [[package]]
 name = "lock_api"
-version = "0.4.11"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -1818,6 +2086,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
 
 [[package]]
+name = "log-panics"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68f9dd8546191c1850ecf67d22f5ff00a935b890d0e84713159a55495cc2ac5f"
+dependencies = [
+ "backtrace",
+ "log",
+]
+
+[[package]]
 name = "mach2"
 version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1837,9 +2115,9 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.7.1"
+version = "2.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
 
 [[package]]
 name = "memmap2"
@@ -1870,9 +2148,9 @@ dependencies = [
 
 [[package]]
 name = "memoffset"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
 dependencies = [
  "autocfg",
 ]
@@ -1897,7 +2175,7 @@ checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.53",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -1907,6 +2185,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
+name = "miniz_oxide"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae"
+dependencies = [
+ "adler",
+]
+
+[[package]]
 name = "moveit"
 version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1921,11 +2208,12 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "jni-sys",
  "log",
  "ndk-sys",
  "num_enum",
+ "raw-window-handle",
  "thiserror",
 ]
 
@@ -1963,10 +2251,10 @@ version = "0.27.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "cfg-if",
  "libc",
- "memoffset 0.9.0",
+ "memoffset 0.9.1",
 ]
 
 [[package]]
@@ -1975,7 +2263,7 @@ version = "0.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "cfg-if",
  "cfg_aliases",
  "libc",
@@ -2001,10 +2289,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "ntapi"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
 name = "nu-ansi-term"
-version = "0.49.0"
+version = "0.50.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c073d3c1930d0751774acf49e66653acecb416c3a54c6ec095a9b11caddb5a68"
+checksum = "dd2800e1520bdc966782168a627aa5d1ad92e33b984bf7c7615d31280c83ff14"
 dependencies = [
  "windows-sys 0.48.0",
 ]
@@ -2017,14 +2314,14 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.53",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "num-traits"
-version = "0.2.18"
+version = "0.2.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
 dependencies = [
  "autocfg",
 ]
@@ -2047,7 +2344,7 @@ dependencies = [
  "proc-macro-crate 2.0.2",
  "proc-macro2",
  "quote",
- "syn 2.0.53",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -2060,6 +2357,37 @@ dependencies = [
 ]
 
 [[package]]
+name = "objc-sys"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310"
+
+[[package]]
+name = "objc2"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "559c5a40fdd30eb5e344fbceacf7595a81e242529fb4e21cf5f43fb4f11ff98d"
+dependencies = [
+ "objc-sys",
+ "objc2-encode",
+]
+
+[[package]]
+name = "objc2-encode"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d079845b37af429bfe5dfa76e6d087d788031045b25cfc6fd898486fd9847666"
+
+[[package]]
+name = "object"
+version = "0.35.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8ec7ab813848ba4522158d5517a6093db1ded27575b070f4177b8d12b41db5e"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
 name = "oboe"
 version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2111,6 +2439,25 @@ dependencies = [
 ]
 
 [[package]]
+name = "orbclient"
+version = "0.3.47"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52f0d54bde9774d3a51dcf281a5def240c71996bc6ca05d2c847ec8b2b216166"
+dependencies = [
+ "libredox",
+]
+
+[[package]]
+name = "ordered-multimap"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ed8acf08e98e744e5384c8bc63ceb0364e68a6854187221c18df61c4797690e"
+dependencies = [
+ "dlv-list",
+ "hashbrown 0.13.2",
+]
+
+[[package]]
 name = "ordered-stream"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2123,7 +2470,7 @@ dependencies = [
 [[package]]
 name = "ovr_overlay"
 version = "0.0.0"
-source = "git+https://github.com/galister/ovr_overlay_oyasumi#61e0e77770212d64a76775a8c76637d1ca935942"
+source = "git+https://github.com/galister/ovr_overlay_oyasumi#e8ac3d9dd6577b3c896f9288eab4887e84e780a1"
 dependencies = [
  "byteorder",
  "derive_more",
@@ -2138,7 +2485,7 @@ dependencies = [
 [[package]]
 name = "ovr_overlay_sys"
 version = "0.0.0"
-source = "git+https://github.com/galister/ovr_overlay_oyasumi#61e0e77770212d64a76775a8c76637d1ca935942"
+source = "git+https://github.com/galister/ovr_overlay_oyasumi#e8ac3d9dd6577b3c896f9288eab4887e84e780a1"
 dependencies = [
  "autocxx",
  "autocxx-build",
@@ -2147,6 +2494,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "owned_ttf_parser"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b41438d2fc63c46c74a2203bf5ccd82c41ba04347b2fcf5754f230b167067d5"
+dependencies = [
+ "ttf-parser",
+]
+
+[[package]]
 name = "parking"
 version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2154,9 +2510,9 @@ checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
 
 [[package]]
 name = "parking_lot"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
 dependencies = [
  "lock_api",
  "parking_lot_core",
@@ -2164,27 +2520,33 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.9"
+version = "0.9.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall",
+ "redox_syscall 0.5.1",
  "smallvec",
- "windows-targets 0.48.5",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
 name = "parse-zoneinfo"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c705f256449c60da65e11ff6626e0c16a0a0b96aaa348de61376b249bc340f41"
+checksum = "1f2a05b18d44e2957b88f96ba460715e295bc1d7510468a2f3d3b44535d26c24"
 dependencies = [
  "regex",
 ]
 
 [[package]]
+name = "pathdiff"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
+
+[[package]]
 name = "peeking_take_while"
 version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2197,6 +2559,51 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
+name = "pest"
+version = "2.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8"
+dependencies = [
+ "memchr",
+ "thiserror",
+ "ucd-trie",
+]
+
+[[package]]
+name = "pest_derive"
+version = "2.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459"
+dependencies = [
+ "pest",
+ "pest_generator",
+]
+
+[[package]]
+name = "pest_generator"
+version = "2.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687"
+dependencies = [
+ "pest",
+ "pest_meta",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "pest_meta"
+version = "2.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd"
+dependencies = [
+ "once_cell",
+ "pest",
+ "sha2",
+]
+
+[[package]]
 name = "phf"
 version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2236,9 +2643,9 @@ dependencies = [
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.13"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
 
 [[package]]
 name = "pin-utils"
@@ -2248,9 +2655,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
 name = "piper"
-version = "0.2.1"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4"
+checksum = "ae1d5c74c9876f070d3e8fd503d748c7d974c3e48da8f41350fa5222ef9b4391"
 dependencies = [
  "atomic-waker",
  "fastrand",
@@ -2264,7 +2671,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "08e645ba5c45109106d56610b3ee60eb13a6f2beb8b74f8dc8186cf261788dda"
 dependencies = [
  "anyhow",
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "libc",
  "libspa",
  "libspa-sys",
@@ -2293,12 +2700,13 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
 name = "polling"
-version = "3.5.0"
+version = "3.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24f040dee2588b4963afb4e420540439d126f73fdacf4a9c486a96d840bac3c9"
+checksum = "5e6a007746f34ed64099e88783b0ae369eaa3da6392868ba262e2af9b8fbaea1"
 dependencies = [
  "cfg-if",
  "concurrent-queue",
+ "hermit-abi 0.3.9",
  "pin-project-lite",
  "rustix",
  "tracing",
@@ -2313,12 +2721,12 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[package]]
 name = "prettyplease"
-version = "0.2.16"
+version = "0.2.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5"
+checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e"
 dependencies = [
  "proc-macro2",
- "syn 2.0.53",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -2367,9 +2775,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.79"
+version = "1.0.85"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
+checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23"
 dependencies = [
  "unicode-ident",
 ]
@@ -2394,9 +2802,9 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "1.0.35"
+version = "1.0.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
 dependencies = [
  "proc-macro2",
 ]
@@ -2433,9 +2841,38 @@ dependencies = [
 
 [[package]]
 name = "raw-window-handle"
-version = "0.6.0"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539"
+
+[[package]]
+name = "rayon"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42a9830a0e1b9fb145ebb365b8bc4ccd75f290f98c0247deafbbe2c75cefb544"
+checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+dependencies = [
+ "bitflags 1.3.2",
+]
 
 [[package]]
 name = "redox_syscall"
@@ -2447,10 +2884,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "redox_syscall"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e"
+dependencies = [
+ "bitflags 2.5.0",
+]
+
+[[package]]
 name = "regex"
-version = "1.10.3"
+version = "1.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -2471,9 +2917,9 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
 
 [[package]]
 name = "rodio"
@@ -2486,6 +2932,18 @@ dependencies = [
 ]
 
 [[package]]
+name = "ron"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94"
+dependencies = [
+ "base64",
+ "bitflags 2.5.0",
+ "serde",
+ "serde_derive",
+]
+
+[[package]]
 name = "rosc"
 version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2505,6 +2963,22 @@ dependencies = [
 ]
 
 [[package]]
+name = "rust-ini"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e2a3bcec1f113553ef1c88aae6c020a369d03d55b58de9869a0908930385091"
+dependencies = [
+ "cfg-if",
+ "ordered-multimap",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
+
+[[package]]
 name = "rustc-hash"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2521,11 +2995,11 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.31"
+version = "0.38.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
+checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "errno",
  "libc",
  "linux-raw-sys",
@@ -2534,9 +3008,9 @@ dependencies = [
 
 [[package]]
 name = "rustversion"
-version = "1.0.14"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
 
 [[package]]
 name = "rxscreen"
@@ -2549,9 +3023,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.17"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
 
 [[package]]
 name = "same-file"
@@ -2575,36 +3049,49 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
+name = "sctk-adwaita"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82b2eaf3a5b264a521b988b2e73042e742df700c4f962cde845d1541adb46550"
+dependencies = [
+ "ab_glyph",
+ "log",
+ "memmap2 0.9.4",
+ "smithay-client-toolkit",
+ "tiny-skia",
+]
+
+[[package]]
 name = "semver"
-version = "1.0.22"
+version = "1.0.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
+checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
 
 [[package]]
 name = "serde"
-version = "1.0.197"
+version = "1.0.203"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
+checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.197"
+version = "1.0.203"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
+checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.53",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.114"
+version = "1.0.117"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
+checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
 dependencies = [
  "itoa",
  "ryu",
@@ -2612,32 +3099,43 @@ dependencies = [
 ]
 
 [[package]]
+name = "serde_json5"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32a6b754515e1a7bd79fc2edeaecee526fc80cb3a918607e5ca149225a3a9586"
+dependencies = [
+ "pest",
+ "pest_derive",
+ "serde",
+]
+
+[[package]]
 name = "serde_repr"
-version = "0.1.18"
+version = "0.1.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
+checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.53",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.5"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "serde_yaml"
-version = "0.9.33"
+version = "0.9.34+deprecated"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0623d197252096520c6f2a5e1171ee436e5af99a5d7caa2891e55e61950e6d9"
+checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47"
 dependencies = [
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
  "itoa",
  "ryu",
  "serde",
@@ -2656,6 +3154,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "sha2"
+version = "0.10.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
 name = "shaderc"
 version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2684,9 +3193,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
 
 [[package]]
 name = "signal-hook-registry"
-version = "1.4.1"
+version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
 dependencies = [
  "libc",
 ]
@@ -2714,9 +3223,9 @@ checksum = "a4f120bb98cb4cb0dab21c882968c3cbff79dd23b46f07b1cf5c25044945ce84"
 
 [[package]]
 name = "smallvec"
-version = "1.13.1"
+version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "smithay-client-toolkit"
@@ -2724,7 +3233,7 @@ version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "922fd3eeab3bd820d76537ce8f582b1cf951eceb5475c28500c7457d9d17f53a"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "bytemuck",
  "calloop",
  "calloop-wayland-source",
@@ -2747,24 +3256,39 @@ dependencies = [
 ]
 
 [[package]]
+name = "smol_str"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead"
+dependencies = [
+ "serde",
+]
+
+[[package]]
 name = "static_assertions"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
 
 [[package]]
+name = "strict-num"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731"
+
+[[package]]
 name = "strsim"
-version = "0.11.0"
+version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
 
 [[package]]
 name = "strum"
-version = "0.25.0"
+version = "0.26.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
+checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29"
 dependencies = [
- "strum_macros 0.25.3",
+ "strum_macros 0.26.3",
 ]
 
 [[package]]
@@ -2782,15 +3306,15 @@ dependencies = [
 
 [[package]]
 name = "strum_macros"
-version = "0.25.3"
+version = "0.26.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
+checksum = "f7993a8e3a9e88a00351486baae9522c91b123a088f76469e5bd5cc17198ea87"
 dependencies = [
- "heck 0.4.1",
+ "heck 0.5.0",
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.53",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -2806,9 +3330,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.53"
+version = "2.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032"
+checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2816,13 +3340,28 @@ dependencies = [
 ]
 
 [[package]]
+name = "sysinfo"
+version = "0.30.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "732ffa00f53e6b2af46208fba5718d9662a421049204e156328b66791ffa15ae"
+dependencies = [
+ "cfg-if",
+ "core-foundation-sys",
+ "libc",
+ "ntapi",
+ "once_cell",
+ "rayon",
+ "windows 0.52.0",
+]
+
+[[package]]
 name = "system-deps"
-version = "6.2.1"
+version = "6.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8e9199467bcbc77c6a13cc6e32a6af21721ab8c96aa0261856c4fda5a4433f0"
+checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349"
 dependencies = [
  "cfg-expr",
- "heck 0.4.1",
+ "heck 0.5.0",
  "pkg-config",
  "toml",
  "version-compare",
@@ -2857,22 +3396,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.58"
+version = "1.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
+checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.58"
+version = "1.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
+checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.53",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -2886,6 +3425,40 @@ dependencies = [
 ]
 
 [[package]]
+name = "tiny-keccak"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
+dependencies = [
+ "crunchy",
+]
+
+[[package]]
+name = "tiny-skia"
+version = "0.11.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab"
+dependencies = [
+ "arrayref",
+ "arrayvec",
+ "bytemuck",
+ "cfg-if",
+ "log",
+ "tiny-skia-path",
+]
+
+[[package]]
+name = "tiny-skia-path"
+version = "0.11.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93"
+dependencies = [
+ "arrayref",
+ "bytemuck",
+ "strict-num",
+]
+
+[[package]]
 name = "tinyvec"
 version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2927,7 +3500,7 @@ version = "0.19.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
  "toml_datetime",
  "winnow",
 ]
@@ -2938,7 +3511,7 @@ version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
 dependencies = [
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
  "serde",
  "serde_spanned",
  "toml_datetime",
@@ -2964,7 +3537,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.53",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -2977,18 +3550,30 @@ dependencies = [
 ]
 
 [[package]]
+name = "ttf-parser"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c591d83f69777866b9126b24c6dd9a18351f177e49d625920d19f989fd31cf8"
+
+[[package]]
 name = "typenum"
 version = "1.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 
 [[package]]
+name = "ucd-trie"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
+
+[[package]]
 name = "uds_windows"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
 dependencies = [
- "memoffset 0.9.0",
+ "memoffset 0.9.1",
  "tempfile",
  "winapi",
 ]
@@ -3022,9 +3607,9 @@ checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
 
 [[package]]
 name = "unicode-width"
-version = "0.1.11"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
+checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6"
 
 [[package]]
 name = "unsafe-libyaml"
@@ -3052,9 +3637,9 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
 name = "version-compare"
-version = "0.1.1"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
+checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b"
 
 [[package]]
 name = "version_check"
@@ -3083,7 +3668,7 @@ dependencies = [
  "crossbeam-queue",
  "half",
  "heck 0.4.1",
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
  "libloading 0.8.3",
  "objc",
  "once_cell",
@@ -3108,7 +3693,7 @@ dependencies = [
  "proc-macro-crate 2.0.2",
  "proc-macro2",
  "quote",
- "syn 2.0.53",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -3121,7 +3706,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "shaderc",
- "syn 2.0.53",
+ "syn 2.0.66",
  "vulkano",
 ]
 
@@ -3162,7 +3747,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.53",
+ "syn 2.0.66",
  "wasm-bindgen-shared",
 ]
 
@@ -3196,7 +3781,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.53",
+ "syn 2.0.66",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -3209,9 +3794,9 @@ checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
 name = "wayland-backend"
-version = "0.3.3"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d50fa61ce90d76474c87f5fc002828d81b32677340112b4ef08079a9d459a40"
+checksum = "34e9e6b6d4a2bb4e7e69433e0b35c7923b95d4dc8503a84d25ec917a4bbfdf07"
 dependencies = [
  "cc",
  "downcast-rs",
@@ -3223,11 +3808,11 @@ dependencies = [
 
 [[package]]
 name = "wayland-client"
-version = "0.31.2"
+version = "0.31.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f"
+checksum = "1e63801c85358a431f986cffa74ba9599ff571fc5774ac113ed3b490c19a1133"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "rustix",
  "wayland-backend",
  "wayland-scanner",
@@ -3239,16 +3824,16 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "cursor-icon",
  "wayland-backend",
 ]
 
 [[package]]
 name = "wayland-cursor"
-version = "0.31.1"
+version = "0.31.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71ce5fa868dd13d11a0d04c5e2e65726d0897be8de247c0c5a65886e283231ba"
+checksum = "a206e8b2b53b1d3fcb9428fec72bc278ce539e2fa81fe2bfc1ab27703d5187b9"
 dependencies = [
  "rustix",
  "wayland-client",
@@ -3261,19 +3846,32 @@ version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "wayland-backend",
  "wayland-client",
  "wayland-scanner",
 ]
 
 [[package]]
+name = "wayland-protocols-plasma"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23803551115ff9ea9bce586860c5c5a971e360825a0309264102a9495a5ff479"
+dependencies = [
+ "bitflags 2.5.0",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-protocols",
+ "wayland-scanner",
+]
+
+[[package]]
 name = "wayland-protocols-wlr"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "wayland-backend",
  "wayland-client",
  "wayland-protocols",
@@ -3282,9 +3880,9 @@ dependencies = [
 
 [[package]]
 name = "wayland-scanner"
-version = "0.31.1"
+version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63b3a62929287001986fb58c789dce9b67604a397c15c611ad9f747300b6c283"
+checksum = "67da50b9f80159dec0ea4c11c13e24ef9e7574bd6ce24b01860a175010cea565"
 dependencies = [
  "proc-macro2",
  "quick-xml 0.31.0",
@@ -3293,12 +3891,13 @@ dependencies = [
 
 [[package]]
 name = "wayland-sys"
-version = "0.31.1"
+version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15a0c8eaff5216d07f226cb7a549159267f3467b289d9a2e52fd3ef5aae2b7af"
+checksum = "105b1842da6554f91526c14a2a2172897b7f745a805d62af4ce698706be79c12"
 dependencies = [
  "dlib",
  "log",
+ "once_cell",
  "pkg-config",
 ]
 
@@ -3313,6 +3912,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "web-time"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
 name = "which"
 version = "4.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3342,11 +3951,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.6"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
+checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b"
 dependencies = [
- "winapi",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -3357,12 +3966,22 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
+dependencies = [
+ "windows-core 0.52.0",
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "windows"
 version = "0.54.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49"
 dependencies = [
  "windows-core 0.54.0",
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -3371,7 +3990,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -3381,16 +4000,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65"
 dependencies = [
  "windows-result",
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
 name = "windows-result"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd19df78e5168dfb0aedc343d1d1b8d422ab2db6756d2dc3fef75035402a3f64"
+checksum = "749f0da9cc72d82e600d8d2e44cadd0b9eedb9038f71a1c58556ac1c5791813b"
 dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -3417,7 +4036,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -3452,17 +4071,18 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.4",
- "windows_aarch64_msvc 0.52.4",
- "windows_i686_gnu 0.52.4",
- "windows_i686_msvc 0.52.4",
- "windows_x86_64_gnu 0.52.4",
- "windows_x86_64_gnullvm 0.52.4",
- "windows_x86_64_msvc 0.52.4",
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
 ]
 
 [[package]]
@@ -3479,9 +4099,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -3497,9 +4117,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -3515,9 +4135,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.4"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -3533,9 +4159,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -3551,9 +4177,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -3569,9 +4195,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -3587,9 +4213,57 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
+
+[[package]]
+name = "winit"
+version = "0.29.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d59ad965a635657faf09c8f062badd885748428933dad8e8bdd64064d92e5ca"
+dependencies = [
+ "ahash",
+ "android-activity",
+ "atomic-waker",
+ "bitflags 2.5.0",
+ "bytemuck",
+ "calloop",
+ "cfg_aliases",
+ "core-foundation",
+ "core-graphics",
+ "cursor-icon",
+ "icrate",
+ "js-sys",
+ "libc",
+ "log",
+ "memmap2 0.9.4",
+ "ndk",
+ "ndk-sys",
+ "objc2",
+ "once_cell",
+ "orbclient",
+ "percent-encoding",
+ "raw-window-handle",
+ "redox_syscall 0.3.5",
+ "rustix",
+ "sctk-adwaita",
+ "smithay-client-toolkit",
+ "smol_str",
+ "unicode-segmentation",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-protocols",
+ "wayland-protocols-plasma",
+ "web-sys",
+ "web-time",
+ "windows-sys 0.48.0",
+ "x11-dl",
+ "x11rb",
+ "xkbcommon-dl",
+]
 
 [[package]]
 name = "winnow"
@@ -3602,8 +4276,8 @@ dependencies = [
 
 [[package]]
 name = "wlx-capture"
-version = "0.3.1"
-source = "git+https://github.com/galister/wlx-capture?tag=v0.3.1#f9c9c98e0752bfbdaa2af69b59376c697c223915"
+version = "0.3.11"
+source = "git+https://github.com/galister/wlx-capture?tag=v0.3.11#9595185a29202d947b4420310f99a9dc2747b2e9"
 dependencies = [
  "ashpd",
  "drm-fourcc",
@@ -3621,13 +4295,14 @@ dependencies = [
 
 [[package]]
 name = "wlx-overlay-s"
-version = "0.3.2"
+version = "0.4.1"
 dependencies = [
  "anyhow",
  "ash",
  "chrono",
  "chrono-tz",
  "clap",
+ "config",
  "cstr",
  "ctrlc",
  "dbus",
@@ -3640,8 +4315,11 @@ dependencies = [
  "idmap-derive",
  "input-linux",
  "json",
+ "json5",
  "libc",
+ "libloading 0.8.3",
  "log",
+ "log-panics",
  "once_cell",
  "openxr",
  "ovr_overlay",
@@ -3650,22 +4328,60 @@ dependencies = [
  "rosc",
  "serde",
  "serde_json",
+ "serde_json5",
  "serde_yaml",
  "smallvec",
  "strum",
+ "sysinfo",
  "thiserror",
  "vulkano",
  "vulkano-shaders",
+ "winit",
  "wlx-capture",
+ "xcb",
  "xdg",
+ "xkbcommon",
+]
+
+[[package]]
+name = "x11-dl"
+version = "2.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f"
+dependencies = [
+ "libc",
+ "once_cell",
+ "pkg-config",
 ]
 
 [[package]]
+name = "x11rb"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12"
+dependencies = [
+ "as-raw-xcb-connection",
+ "gethostname",
+ "libc",
+ "libloading 0.8.3",
+ "once_cell",
+ "rustix",
+ "x11rb-protocol",
+]
+
+[[package]]
+name = "x11rb-protocol"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d"
+
+[[package]]
 name = "xcb"
-version = "1.3.0"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d27b37e69b8c05bfadcd968eb1a4fe27c9c52565b727f88512f43b89567e262"
+checksum = "02e75181b5a62b6eeaa72f303d3cef7dbb841e22885bf6d3e66fe23e88c55dc6"
 dependencies = [
+ "as-raw-xcb-connection",
  "bitflags 1.3.2",
  "libc",
  "quick-xml 0.30.0",
@@ -3699,12 +4415,26 @@ version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "13867d259930edc7091a6c41b4ce6eee464328c6ff9659b7e4c668ca20d4c91e"
 dependencies = [
+ "as-raw-xcb-connection",
  "libc",
  "memmap2 0.8.0",
  "xkeysym",
 ]
 
 [[package]]
+name = "xkbcommon-dl"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5"
+dependencies = [
+ "bitflags 2.5.0",
+ "dlib",
+ "log",
+ "once_cell",
+ "xkeysym",
+]
+
+[[package]]
 name = "xkeysym"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3715,9 +4445,9 @@ dependencies = [
 
 [[package]]
 name = "xml-rs"
-version = "0.8.19"
+version = "0.8.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a"
+checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193"
 
 [[package]]
 name = "xmlparser"
@@ -3726,6 +4456,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4"
 
 [[package]]
+name = "yaml-rust"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
+dependencies = [
+ "linked-hash-map",
+]
+
+[[package]]
 name = "yansi-term"
 version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3756,7 +4495,7 @@ dependencies = [
  "async-executor",
  "async-fs",
  "async-io",
- "async-lock 3.3.0",
+ "async-lock",
  "async-process",
  "async-recursion",
  "async-task",
@@ -3764,7 +4503,7 @@ dependencies = [
  "blocking",
  "derivative",
  "enumflags2",
- "event-listener 5.2.0",
+ "event-listener",
  "futures-core",
  "futures-sink",
  "futures-util",
@@ -3812,22 +4551,22 @@ dependencies = [
 
 [[package]]
 name = "zerocopy"
-version = "0.7.32"
+version = "0.7.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
+checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087"
 dependencies = [
  "zerocopy-derive",
 ]
 
 [[package]]
 name = "zerocopy-derive"
-version = "0.7.32"
+version = "0.7.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
+checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.53",
+ "syn 2.0.66",
 ]
 
 [[package]]
diff --git a/pkgs/by-name/wl/wlx-overlay-s/package.nix b/pkgs/by-name/wl/wlx-overlay-s/package.nix
index 698404a514f5f..6f614edc6c613 100644
--- a/pkgs/by-name/wl/wlx-overlay-s/package.nix
+++ b/pkgs/by-name/wl/wlx-overlay-s/package.nix
@@ -7,33 +7,36 @@
 , fontconfig
 , libxkbcommon
 , makeWrapper
+, nix-update-script
 , openvr
 , openxr-loader
 , pipewire
 , pkg-config
 , pulseaudio
 , shaderc
+, testers
 , wayland
+, wlx-overlay-s
 , xorg
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "wlx-overlay-s";
-  version = "0.3.2";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "galister";
     repo = "wlx-overlay-s";
     rev = "v${version}";
-    hash = "sha256-5uvdLBUnc8ba6b/dJNWsuqjnbbidaCcqgvSafFEXaMU=";
+    hash = "sha256-9ess8/H7cByNYFNHvCi0124xCBwXk+PTNhAZKBcS08A=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "ovr_overlay-0.0.0" = "sha256-b2sGzBOB2aNNJ0dsDBjgV2jH3ROO/Cdu8AIHPSXMCPg=";
       "vulkano-0.34.0" = "sha256-0ZIxU2oItT35IFnS0YTVNmM775x21gXOvaahg/B9sj8=";
-      "wlx-capture-0.3.1" = "sha256-kK3OQMdIqCLZlgZuevNtfMDmpR8J2DFFD8jRHHWAvSA=";
+      "ovr_overlay-0.0.0" = "sha256-d38LqhKOp9tHbiK4eU7OPdFvkExqaJN1tB6y2qqPm9U=";
+      "wlx-capture-0.3.11" = "sha256-CmFnVfA3MAYXSejn9GpuaNCRu4HiX0CN0j3aN4Pxvjw=";
     };
   };
 
@@ -71,12 +74,18 @@ rustPlatform.buildRustPackage rec {
       --add-needed ${lib.getLib libxkbcommon}/lib/libxkbcommon.so.0
   '';
 
-  meta = with lib; {
+  passthru = {
+    tests.testVersion = testers.testVersion { package = wlx-overlay-s; };
+
+    updateScript = nix-update-script { };
+  };
+
+  meta = {
     description = "Wayland/X11 desktop overlay for SteamVR and OpenXR, Vulkan edition";
     homepage = "https://github.com/galister/wlx-overlay-s";
-    license = licenses.gpl3Only;
-    maintainers = with maintainers; [ Scrumplex ];
-    platforms = platforms.linux;
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ Scrumplex ];
+    platforms = lib.platforms.linux;
     broken = stdenv.isAarch64;
     mainProgram = "wlx-overlay-s";
   };
diff --git a/pkgs/by-name/wo/wonderdraft/package.nix b/pkgs/by-name/wo/wonderdraft/package.nix
index 96bb4afc79d08..ee49c10a70077 100644
--- a/pkgs/by-name/wo/wonderdraft/package.nix
+++ b/pkgs/by-name/wo/wonderdraft/package.nix
@@ -10,12 +10,12 @@
 
 stdenv.mkDerivation rec {
   pname = "wonderdraft";
-  version = "1.1.7.3";
+  version = "1.1.8.2b";
 
   src = requireFile {
     name = "Wonderdraft-${version}-Linux64.deb";
     url = "https://wonderdraft.net/";
-    hash = "sha256-i8YZF5w1dIWUyk99SUhHU7eJRjPXJDPbYUzGC1uN8JQ=";
+    hash = "sha256-3eYnEH6P94z9axFsrkJA4QMcHyg/gNRczqL3h5Sc2Tg=";
   };
   sourceRoot = ".";
   unpackCmd = "${dpkg}/bin/dpkg-deb -x $curSrc .";
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://wonderdraft.net/";
-    description = "A mapmaking tool for Tabletop Roleplaying Games, designed for city, region, or world scale";
+    description = "Mapmaking tool for Tabletop Roleplaying Games, designed for city, region, or world scale";
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ jsusk ];
diff --git a/pkgs/by-name/wo/woodpecker-pipeline-transform/package.nix b/pkgs/by-name/wo/woodpecker-pipeline-transform/package.nix
new file mode 100644
index 0000000000000..eee03a11d9231
--- /dev/null
+++ b/pkgs/by-name/wo/woodpecker-pipeline-transform/package.nix
@@ -0,0 +1,31 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitea,
+}:
+buildGoModule rec {
+  pname = "woodpecker-pipeline-transform";
+  version = "0.2.0";
+
+  src = fetchFromGitea {
+    domain = "codeberg.org";
+    owner = "lafriks";
+    repo = "woodpecker-pipeline-transform";
+    rev = "v${version}";
+    sha256 = "sha256-ngtpWjbL/ccmKTNQdL3osduELYSxcOu5z5UtqclNNSY=";
+  };
+
+  vendorHash = "sha256-SZxFsn187UWZqaxwMDdzAmfpRLZSCIpbsAI1mAu7Z6w=";
+
+  meta = {
+    description = "Utility to convert different pipelines to Woodpecker CI pipelines";
+    changelog = "https://codeberg.org/lafriks/woodpecker-pipeline-transform/src/tag/v${version}";
+    homepage = "https://codeberg.org/lafriks/woodpecker-pipeline-transform";
+    license = lib.licenses.mit;
+    mainProgram = "pipeline-convert";
+    maintainers = with lib.maintainers; [
+      ambroisie
+      luftmensch-luftmensch
+    ];
+  };
+}
diff --git a/pkgs/by-name/wo/woof-doom/package.nix b/pkgs/by-name/wo/woof-doom/package.nix
new file mode 100644
index 0000000000000..06d51d2cd1cec
--- /dev/null
+++ b/pkgs/by-name/wo/woof-doom/package.nix
@@ -0,0 +1,51 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  cmake,
+  SDL2,
+  SDL2_net,
+  openal,
+  libsndfile,
+  fluidsynth,
+  alsa-lib,
+  libxmp,
+  python3,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "woof-doom";
+  version = "14.5.0";
+
+  src = fetchFromGitHub {
+    owner = "fabiangreffrath";
+    repo = "woof";
+    rev = "woof_${finalAttrs.version}";
+    hash = "sha256-LA4blTlee0+nRK066hj19Zm/FL2qhaZ9Y5JMfMj3IRU=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    python3
+  ];
+
+  buildInputs = [
+    SDL2
+    SDL2_net
+    alsa-lib
+    fluidsynth
+    libsndfile
+    libxmp
+    openal
+  ];
+
+  meta = {
+    description = "Woof! is a continuation of the Boom/MBF bloodline of Doom source ports";
+    homepage = "https://github.com/fabiangreffrath/woof";
+    changelog = "https://github.com/fabiangreffrath/woof/blob/${finalAttrs.src.rev}/CHANGELOG.md";
+    license = lib.licenses.gpl2Only;
+    maintainers = with lib.maintainers; [ keenanweaver ];
+    mainProgram = "woof";
+    platforms = with lib.platforms; darwin ++ linux ++ windows;
+  };
+})
diff --git a/pkgs/by-name/wo/wordlists/package.nix b/pkgs/by-name/wo/wordlists/package.nix
index 5edd1f5ece4e5..0b1b7cc616220 100644
--- a/pkgs/by-name/wo/wordlists/package.nix
+++ b/pkgs/by-name/wo/wordlists/package.nix
@@ -45,7 +45,7 @@ in symlinkJoin {
   ];
 
   meta = with lib; {
-    description = "A collection of wordlists useful for security testing";
+    description = "Collection of wordlists useful for security testing";
     longDescription = ''
       The `wordlists` package provides two scripts. One is called {command}`wordlists`,
       and it will list a tree of all the wordlists installed. The other one is
diff --git a/pkgs/by-name/wo/workout-tracker/package.nix b/pkgs/by-name/wo/workout-tracker/package.nix
index ab15fced522c5..ad5cb683c4ce7 100644
--- a/pkgs/by-name/wo/workout-tracker/package.nix
+++ b/pkgs/by-name/wo/workout-tracker/package.nix
@@ -8,13 +8,13 @@
 
 buildGoModule rec {
   pname = "workout-tracker";
-  version = "0.14.3";
+  version = "1.15.2";
 
   src = fetchFromGitHub {
     owner = "jovandeginste";
     repo = "workout-tracker";
     rev = "refs/tags/v${version}";
-    hash = "sha256-NGj3W6SYZauaAhMinPzsSXM8Dqy+B+am985JJjh6xTs=";
+    hash = "sha256-NYRoIfhdOjyC9WPp3hsHFZWpAsDjbMk2vLn79PixhvE=";
   };
 
   vendorHash = null;
@@ -23,7 +23,7 @@ buildGoModule rec {
 
   meta = {
     changelog = "https://github.com/jovandeginste/workout-tracker/releases/tag/v${version}";
-    description = "A workout tracking web application for personal use";
+    description = "Workout tracking web application for personal use";
     homepage = "https://github.com/jovandeginste/workout-tracker";
     license = lib.licenses.mit;
     mainProgram = "workout-tracker";
diff --git a/pkgs/by-name/wo/workshop-runner/package.nix b/pkgs/by-name/wo/workshop-runner/package.nix
index ff325cee7054a..82f2eccb50534 100644
--- a/pkgs/by-name/wo/workshop-runner/package.nix
+++ b/pkgs/by-name/wo/workshop-runner/package.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-VoIAwPrkhrRl48czXtKWmLTktsZ/U4TVV924wx0DL+A=";
 
   meta = {
-    description = "A CLI tool to drive test-driven Rust workshops";
+    description = "CLI tool to drive test-driven Rust workshops";
     homepage = "https://github.com/mainmatter/rust-workshop-runner";
     license = with lib.licenses; [
       mit
diff --git a/pkgs/by-name/wp/wp-cli/package.nix b/pkgs/by-name/wp/wp-cli/package.nix
index e9653a3b8abf9..40b16ff607638 100644
--- a/pkgs/by-name/wp/wp-cli/package.nix
+++ b/pkgs/by-name/wp/wp-cli/package.nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A command line interface for WordPress";
+    description = "Command line interface for WordPress";
     homepage = "https://wp-cli.org";
     changelog = "https://github.com/wp-cli/wp-cli/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/by-name/wp/wpaperd/package.nix b/pkgs/by-name/wp/wpaperd/package.nix
index f059b22640a7c..fce9bc27cd857 100644
--- a/pkgs/by-name/wp/wpaperd/package.nix
+++ b/pkgs/by-name/wp/wpaperd/package.nix
@@ -33,7 +33,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/danyspin97/wpaperd";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ DPDmancul nu-nu-ko ];
+    maintainers = with maintainers; [ DPDmancul fsnkty ];
     mainProgram = "wpaperd";
   };
 }
diff --git a/pkgs/by-name/ws/wslay/package.nix b/pkgs/by-name/ws/wslay/package.nix
index 294a98f9d6a08..45054f8130f15 100644
--- a/pkgs/by-name/ws/wslay/package.nix
+++ b/pkgs/by-name/ws/wslay/package.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://tatsuhiro-t.github.io/wslay/";
-    description = "The WebSocket library in C";
+    description = "WebSocket library in C";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ pingiun ];
     platforms = platforms.unix;
diff --git a/pkgs/by-name/ws/wslu/package.nix b/pkgs/by-name/ws/wslu/package.nix
index 015d0350af925..3ef601b0e123c 100644
--- a/pkgs/by-name/ws/wslu/package.nix
+++ b/pkgs/by-name/ws/wslu/package.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   desktopItems = [ "src/etc/wslview.desktop" ];
 
   meta = with lib; {
-    description = "A collection of utilities for Windows Subsystem for Linux";
+    description = "Collection of utilities for Windows Subsystem for Linux";
     homepage = "https://github.com/wslutilities/wslu";
     changelog = "https://github.com/wslutilities/wslu/releases/tag/v${version}";
     license = licenses.gpl3Plus;
diff --git a/pkgs/by-name/ws/wstunnel/package.nix b/pkgs/by-name/ws/wstunnel/package.nix
new file mode 100644
index 0000000000000..9e172a08f3757
--- /dev/null
+++ b/pkgs/by-name/ws/wstunnel/package.nix
@@ -0,0 +1,32 @@
+{ fetchFromGitHub
+, rustPlatform
+, lib
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "wstunnel";
+  version = "9.6.2";
+
+  src = fetchFromGitHub {
+    owner = "erebe";
+    repo  = "wstunnel";
+    rev = "v${version}";
+    hash = "sha256-0r+8C8Gf3/s3opzplzc22d9VVp39FtBq1bYkxlmtqjg=";
+  };
+
+  cargoHash = "sha256-hHVxa7Ihmuuf26ZSzGmrHA2RczhzXtse3h1M4cNCvhw=";
+
+  checkFlags = [
+    # make use of network connection
+    "--skip=tcp::tests::test_proxy_connection"
+  ];
+
+  meta = {
+    description = "Tunneling program over websocket protocol";
+    mainProgram = "wstunnel";
+    homepage    = "https://github.com/erebe/wstunnel";
+    license     = with lib.licenses; [ bsd3 ];
+    maintainers = with lib.maintainers; [ neverbehave ];
+    platforms   = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/wt/wtfis/package.nix b/pkgs/by-name/wt/wtfis/package.nix
index 4163a31ac9887..ad710bf8f2291 100644
--- a/pkgs/by-name/wt/wtfis/package.nix
+++ b/pkgs/by-name/wt/wtfis/package.nix
@@ -5,12 +5,12 @@
 
 let
   pname = "wtfis";
-  version = "0.9.1";
+  version = "0.10.0";
   src = fetchFromGitHub {
     owner = "pirxthepilot";
     repo = "wtfis";
     rev = "refs/tags/v${version}";
-    hash = "sha256-nVcF7mPoWL5PNLh0W4FBPE7WVU72FidHpBZqMNl+Fd4=";
+    hash = "sha256-5mvbwIKnCk8mbjVJAmUwV1zKzGk8HVVZLiUVQXRvczA=";
   };
 in python3.pkgs.buildPythonApplication {
   inherit pname version src;
diff --git a/pkgs/by-name/wt/wttrbar/package.nix b/pkgs/by-name/wt/wttrbar/package.nix
index 0d3fce04d1c1c..41ecd4eb53d8c 100644
--- a/pkgs/by-name/wt/wttrbar/package.nix
+++ b/pkgs/by-name/wt/wttrbar/package.nix
@@ -8,23 +8,23 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wttrbar";
-  version = "0.10.1";
+  version = "0.10.2";
 
   src = fetchFromGitHub {
     owner = "bjesus";
     repo = "wttrbar";
     rev = version;
-    hash = "sha256-rUiLB0M/dzNxzBPAqlGy5m/gOTGYw4GRzb+ud0l/1+8=";
+    hash = "sha256-lwlfarnu2PC5toAf6FAefnpxDlzzwphrP+zXRQ2DQeQ=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin (with darwin.apple_sdk_11_0.frameworks; [ Security SystemConfiguration ]);
 
-  cargoHash = "sha256-v415OJ6dmWSLUDeFUtd27mBaQlB3x1vC37sjpMhKyYY=";
+  cargoHash = "sha256-H3UpBRf97JsHudq6naZxMnpIzda0v7teDjgDdgluul0=";
 
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "A simple but detailed weather indicator for Waybar using wttr.in";
+    description = "Simple but detailed weather indicator for Waybar using wttr.in";
     homepage = "https://github.com/bjesus/wttrbar";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ khaneliman ];
diff --git a/pkgs/by-name/wx/wxc/package.nix b/pkgs/by-name/wx/wxc/package.nix
new file mode 100644
index 0000000000000..42de45ecfcf17
--- /dev/null
+++ b/pkgs/by-name/wx/wxc/package.nix
@@ -0,0 +1,43 @@
+{ lib
+, stdenv
+, fetchFromGitea
+, cmake
+, libGL
+, wxGTK32
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "wxc";
+  version = "1.0.0.2";
+
+  src = fetchFromGitea {
+    domain = "codeberg.org";
+    owner = "wxHaskell";
+    repo = "wxHaskell";
+    rev = "wxc-${finalAttrs.version}";
+    hash = "sha256-wjby7F+Xi+H4avLGZxKJ7/LY2CJAGMIwBM7mfVzI1Bg=";
+  };
+
+  sourceRoot = finalAttrs.src.name + "/wxc";
+
+  nativeBuildInputs = [
+    cmake
+    wxGTK32 # in nativeBuildInputs because of wx-config
+  ];
+
+  buildInputs = [
+    libGL
+  ];
+
+  preConfigure = ''
+    bash generate-version-header.sh
+  '';
+
+  meta = {
+    description = "C language binding for wxWidgets";
+    homepage = "https://wiki.haskell.org/WxHaskell";
+    license = lib.licenses.wxWindows;
+    maintainers = with lib.maintainers; [ fgaz ];
+    platforms = wxGTK32.meta.platforms;
+  };
+})
diff --git a/pkgs/by-name/wy/wyoming-satellite/package.nix b/pkgs/by-name/wy/wyoming-satellite/package.nix
index 45c0ff03eeb1f..cb34afc5b2f1a 100644
--- a/pkgs/by-name/wy/wyoming-satellite/package.nix
+++ b/pkgs/by-name/wy/wyoming-satellite/package.nix
@@ -21,6 +21,7 @@ python3Packages.buildPythonApplication rec {
   ];
 
   pythonRelaxDeps = [
+    "wyoming"
     "zeroconf"
   ];
 
diff --git a/pkgs/by-name/x1/x16/package.nix b/pkgs/by-name/x1/x16/package.nix
index c6e0183a196bf..5f53898b338cb 100644
--- a/pkgs/by-name/x1/x16/package.nix
+++ b/pkgs/by-name/x1/x16/package.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://cx16forum.com/";
-    description = "The official emulator of CommanderX16 8-bit computer";
+    description = "Official emulator of CommanderX16 8-bit computer";
     changelog = "https://github.com/X16Community/x16-emulator/blob/r${finalAttrs.version}/RELEASES.md";
     license = lib.licenses.bsd2;
     maintainers = with lib.maintainers; [ AndersonTorres ];
diff --git a/pkgs/by-name/x5/x509-limbo/package.nix b/pkgs/by-name/x5/x509-limbo/package.nix
index 2cb4625e04fa9..239f1c85e3000 100644
--- a/pkgs/by-name/x5/x509-limbo/package.nix
+++ b/pkgs/by-name/x5/x509-limbo/package.nix
@@ -39,7 +39,7 @@ python3.pkgs.buildPythonPackage {
 
   meta = with lib; {
     homepage = "https://x509-limbo.com/";
-    description = "A suite of testvectors for X.509 certificate path validation and tools for building them ";
+    description = "Suite of testvectors for X.509 certificate path validation and tools for building them ";
     mainProgram = "limbo";
 
     license = licenses.asl20;
diff --git a/pkgs/by-name/xc/xcaddy/package.nix b/pkgs/by-name/xc/xcaddy/package.nix
index 69a531c70767a..11faf60e34471 100644
--- a/pkgs/by-name/xc/xcaddy/package.nix
+++ b/pkgs/by-name/xc/xcaddy/package.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "xcaddy";
-  version = "0.4.1";
+  version = "0.4.2";
 
   subPackages = [ "cmd/xcaddy" ];
 
@@ -10,7 +10,7 @@ buildGoModule rec {
     owner = "caddyserver";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-xEPSRKrQC9hb+G9/rV9/k4btvZxXZkcsxmaxWcgl2fk=";
+    hash = "sha256-4evqpkDb6/sduPuqRlnvvi/kS4H2zpYB8LB2PXmoopA=";
   };
 
   patches = [
@@ -24,7 +24,7 @@ buildGoModule rec {
     "-X github.com/caddyserver/xcaddy/cmd.customVersion=v${version}"
   ];
 
-  vendorHash = "sha256-7yd/6h1DKw7X/1NbHtr2vbpyapF81HPmDm7O4oV5nlc=";
+  vendorHash = "sha256-NoOEvvaD3oUejlFIe1s95SjL/YRsuCSHFElnxaweA/s=";
 
   meta = with lib; {
     homepage = "https://github.com/caddyserver/xcaddy";
diff --git a/pkgs/by-name/xd/xdg-desktop-portal-shana/package.nix b/pkgs/by-name/xd/xdg-desktop-portal-shana/package.nix
index a70ad34963644..e02d1fbedf40d 100644
--- a/pkgs/by-name/xd/xdg-desktop-portal-shana/package.nix
+++ b/pkgs/by-name/xd/xdg-desktop-portal-shana/package.nix
@@ -34,7 +34,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-FzEdQePDnSCuMDqbz0ZUywDzNfbiOwottSrE+eWL9to=";
 
   meta = with lib; {
-    description = "A filechooser portal backend for any desktop environment";
+    description = "Filechooser portal backend for any desktop environment";
     homepage = "https://github.com/Decodetalkers/xdg-desktop-portal-shana";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/by-name/xd/xdg-terminal-exec/package.nix b/pkgs/by-name/xd/xdg-terminal-exec/package.nix
index 679c43238237a..c9fb7203282ee 100644
--- a/pkgs/by-name/xd/xdg-terminal-exec/package.nix
+++ b/pkgs/by-name/xd/xdg-terminal-exec/package.nix
@@ -6,13 +6,13 @@
 }:
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "xdg-terminal-exec";
-  version = "0.9.3";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "Vladimir-csp";
     repo = "xdg-terminal-exec";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-zFclT+WooEpwO8zXBXpeh4bbKvQwvm4HxNKYXdNRzSA=";
+    hash = "sha256-u/BYhae6xf5rVhYi8uPxZeQTN7skjLbmOC8xoDcUDQk=";
   };
 
   dontBuild = true;
diff --git a/pkgs/by-name/xd/xdg-user-dirs/package.nix b/pkgs/by-name/xd/xdg-user-dirs/package.nix
index f1d4e97bc7daf..5d141eb8049c3 100644
--- a/pkgs/by-name/xd/xdg-user-dirs/package.nix
+++ b/pkgs/by-name/xd/xdg-user-dirs/package.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "http://freedesktop.org/wiki/Software/xdg-user-dirs";
-    description = "A tool to help manage well known user directories like the desktop folder and the music folder";
+    description = "Tool to help manage well known user directories like the desktop folder and the music folder";
     license = licenses.gpl2;
     maintainers = with maintainers; [ donovanglover ];
     platforms = platforms.unix;
diff --git a/pkgs/by-name/xe/xemu/package.nix b/pkgs/by-name/xe/xemu/package.nix
index 9d9500d507d0e..ee14a60ab4429 100644
--- a/pkgs/by-name/xe/xemu/package.nix
+++ b/pkgs/by-name/xe/xemu/package.nix
@@ -27,14 +27,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "xemu";
-  version = "0.7.122";
+  version = "0.7.123";
 
   src = fetchFromGitHub {
     owner = "xemu-project";
     repo = "xemu";
     rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-TxtkLdUSIbDu9uqPq4s64HtXFyT3ntN8Su9bEGPS3f0=";
+    hash = "sha256-8Nfy6x3+8n1AlXnZmbISZrncnU04iaQPx69e46XgxUU=";
   };
 
   nativeBuildInputs =
diff --git a/pkgs/by-name/xe/xenon/package.nix b/pkgs/by-name/xe/xenon/package.nix
new file mode 100644
index 0000000000000..f3b3f3f50320d
--- /dev/null
+++ b/pkgs/by-name/xe/xenon/package.nix
@@ -0,0 +1,31 @@
+{ lib
+, fetchPypi
+, python3
+}:
+
+let
+  pname = "xenon";
+  version = "0.9.1";
+in
+python3.pkgs.buildPythonApplication {
+
+  inherit pname version;
+  format = "setuptools";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-1nRREcPiWLdJpP1CSxuJnZnqGDzqIyNl7i+I/n2AwDs=";
+  };
+
+  doCheck = false;
+
+  propagatedBuildInputs = with python3.pkgs; [ requests radon pyaml ];
+
+  meta = with lib; {
+    description = "Monitoring tool based on radon";
+    homepage = "https://github.com/rubik/xenon";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jfvillablanca ];
+    mainProgram = "xenon";
+  };
+}
diff --git a/pkgs/by-name/xe/xevd/package.nix b/pkgs/by-name/xe/xevd/package.nix
index 8cf6d20fbfe8d..df6566dff5140 100644
--- a/pkgs/by-name/xe/xevd/package.nix
+++ b/pkgs/by-name/xe/xevd/package.nix
@@ -1,36 +1,23 @@
 {
   lib,
   fetchFromGitHub,
-  fetchpatch2,
   stdenv,
   gitUpdater,
+  testers,
   cmake,
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "xevd";
-  version = "0.4.1";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "mpeg5";
     repo = "xevd";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-+qC/BnP8o/kfl5ax+g1PohvXIJBL2gin/QZ9Gkvi0WU=";
+    hash = "sha256-Dc2V77t+DrZo9252FAL0eczrmikrseU02ob2RLBdVvU=";
   };
 
-  patches = [
-    (fetchpatch2 {
-      name = "fix dangling pointer error";
-      url = "https://github.com/mpeg5/xevd/commit/13b86a74e26df979dd1cc3a1cb19bf1ac828e197.patch";
-      sha256 = "sha256-CeSfhN78ldooyZ9H4F2ex9wTBFXuNZdBcnLdk7GqDXI=";
-    })
-    (fetchpatch2 {
-      name = "fix invalid comparison of c_buf in write_y4m_header ";
-      url = "https://github.com/mpeg5/xevd/commit/e4ae0c567a6ec5e10c9f5ed44c61e4e3b6816c16.patch";
-      sha256 = "sha256-9bG6hyIV/AZ0mRbd3Fc/c137Xm1i6NJ1IfuGadG0vUU=";
-    })
-  ];
-
   postPatch = ''
     echo v$version > version.txt
   '';
@@ -41,23 +28,25 @@ stdenv.mkDerivation (finalAttrs: {
     ln $dev/include/xevd/* $dev/include/
   '';
 
-  env.NIX_CFLAGS_COMPILE = toString [ "-lm" ];
-
   outputs = [
     "out"
     "lib"
     "dev"
   ];
 
+  env.NIX_CFLAGS_COMPILE = toString [ "-lm" ];
+
   passthru.updateScript = gitUpdater { rev-prefix = "v"; };
+  passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
 
   meta = {
     homepage = "https://github.com/mpeg5/xevd";
     description = "eXtra-fast Essential Video Decoder, MPEG-5 EVC";
     license = lib.licenses.bsd3;
     mainProgram = "xevd_app";
+    pkgConfigModules = [ "xevd" ];
     maintainers = with lib.maintainers; [ jopejoe1 ];
     platforms = lib.platforms.all;
-    broken = !stdenv.hostPlatform.isx86;
+    broken = !stdenv.hostPlatform.isx86 || stdenv.hostPlatform.isDarwin;
   };
 })
diff --git a/pkgs/by-name/xf/xfs-undelete/package.nix b/pkgs/by-name/xf/xfs-undelete/package.nix
index cc333fb3ec2bf..e702280b78d93 100644
--- a/pkgs/by-name/xf/xfs-undelete/package.nix
+++ b/pkgs/by-name/xf/xfs-undelete/package.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "An undelete tool for the XFS filesystem";
+    description = "Undelete tool for the XFS filesystem";
     mainProgram = "xfs_undelete";
     homepage = "https://github.com/ianka/xfs_undelete";
     license = licenses.gpl3;
diff --git a/pkgs/by-name/xi/xiu/package.nix b/pkgs/by-name/xi/xiu/package.nix
index 369432312f04a..2b2445169e182 100644
--- a/pkgs/by-name/xi/xiu/package.nix
+++ b/pkgs/by-name/xi/xiu/package.nix
@@ -38,7 +38,7 @@ rustPlatform.buildRustPackage rec {
   OPENSSL_NO_VENDOR = 1;
 
   meta = with lib; {
-    description = "A simple, high performance and secure live media server in pure Rust (RTMP[cluster]/RTSP/WebRTC[whip/whep]/HTTP-FLV/HLS";
+    description = "Simple, high performance and secure live media server in pure Rust (RTMP[cluster]/RTSP/WebRTC[whip/whep]/HTTP-FLV/HLS";
     homepage = "https://github.com/harlanc/xiu";
     changelog = "https://github.com/harlanc/xiu/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/by-name/xm/xml-tooling-c/package.nix b/pkgs/by-name/xm/xml-tooling-c/package.nix
index 439f7e64899b4..1da208f9bc3d5 100644
--- a/pkgs/by-name/xm/xml-tooling-c/package.nix
+++ b/pkgs/by-name/xm/xml-tooling-c/package.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = {
-    description = "A low-level library that provides a high level interface to XML processing for OpenSAML 2";
+    description = "Low-level library that provides a high level interface to XML processing for OpenSAML 2";
     platforms = lib.platforms.unix;
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.sigmanificient ];
diff --git a/pkgs/by-name/xm/xmldiff/package.nix b/pkgs/by-name/xm/xmldiff/package.nix
index 05911ad2acd15..1cacb6ac278cd 100644
--- a/pkgs/by-name/xm/xmldiff/package.nix
+++ b/pkgs/by-name/xm/xmldiff/package.nix
@@ -23,7 +23,7 @@ python3.pkgs.buildPythonApplication {
 
   meta = {
     homepage = "https://xmldiff.readthedocs.io/en/stable/";
-    description = "A library and command line utility for diffing xml";
+    description = "Library and command line utility for diffing xml";
     longDescription = ''
       xmldiff is a library and a command-line utility for making diffs out of
       XML. This may seem like something that doesn't need a dedicated utility,
diff --git a/pkgs/by-name/xm/xmltoman/package.nix b/pkgs/by-name/xm/xmltoman/package.nix
new file mode 100644
index 0000000000000..d62238c717804
--- /dev/null
+++ b/pkgs/by-name/xm/xmltoman/package.nix
@@ -0,0 +1,54 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, perlPackages
+, perl
+, installShellFiles
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "xmltoman";
+  version = "0.6";
+
+  src = fetchFromGitHub {
+    owner = "atsb";
+    repo = "xmltoman";
+    rev = version;
+    hash = "sha256-EmFdGIeBEcTY0Pqp7BJded9WB/DaXWcMNWh6aTsZlLg=";
+  };
+
+  nativeBuildInputs = [
+    perl
+    installShellFiles
+  ];
+
+  buildInputs = [
+    perlPackages.XMLTokeParser
+  ];
+
+  dontBuild = true;
+
+  # File installation and setup similar to Makefile commands below.
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out
+    perl xmltoman xml/xmltoman.1.xml > xmltoman.1
+    perl xmltoman xml/xmlmantohtml.1.xml > xmlmantohtml.1
+    install -d $out/bin $out/share/xmltoman
+    install -m 0755 xmltoman xmlmantohtml $out/bin
+    install -m 0644 xmltoman.dtd xmltoman.css xmltoman.xsl $out/share/xmltoman
+    installManPage *.1
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Two very simple scripts for converting xml to groff or html";
+    homepage = "https://github.com/atsb/xmltoman";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ tochiaha ];
+    mainProgram = "xmltoman";
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/tools/misc/xmonad-log/default.nix b/pkgs/by-name/xm/xmonad-log/package.nix
index 9ba7941b45f79..385d5edf90cfd 100644
--- a/pkgs/tools/misc/xmonad-log/default.nix
+++ b/pkgs/by-name/xm/xmonad-log/package.nix
@@ -1,19 +1,18 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule {
   pname = "xmonad-log";
-  version = "0.1.0";
-
-  goPackagePath = "github.com/xintron/xmonad-log";
+  version = "0.1.0-unstable-2024-06-14";
 
   src = fetchFromGitHub {
     owner = "xintron";
     repo = "xmonad-log";
-    rev = version;
-    sha256 = "1il6v0zcjw0pfb1hjj198y94jmlcx255h422ph0f1zr7afqkzmaw";
+    rev = "70c76d59c22cf5f412467cd42fa9ff34eeb2bd1b";
+    sha256 = "sha256-hDYb3mSX2+FX/2uazCKPXmNj0avDlutwSMjST7wLBVY=";
   };
 
-  goDeps = ./deps.nix;
+  vendorHash = "sha256-58zK6t3rb+19ilaQaNgsMVFQBYKPIV40ww8klrGbpnw=";
+  proxyVendor = true;
 
   meta = with lib; {
     description = "xmonad DBus monitoring solution";
diff --git a/pkgs/by-name/xo/xonsh/package.nix b/pkgs/by-name/xo/xonsh/package.nix
index 1882a30966359..de199ff4bc05c 100644
--- a/pkgs/by-name/xo/xonsh/package.nix
+++ b/pkgs/by-name/xo/xonsh/package.nix
@@ -14,7 +14,8 @@ let
 in
 runCommand "xonsh-${xonsh-unwrapped.version}"
 {
-  inherit (xonsh-unwrapped) pname version meta passthru;
+  inherit (xonsh-unwrapped) pname version meta;
+  passthru = xonsh-unwrapped.passthru // { unwrapped = xonsh-unwrapped; };
 } ''
   mkdir -p $out/bin
   for bin in ${lib.getBin xonsh-unwrapped}/bin/*; do
diff --git a/pkgs/by-name/xo/xonsh/unwrapped.nix b/pkgs/by-name/xo/xonsh/unwrapped.nix
index b0115dc247c41..28d98911f49f5 100644
--- a/pkgs/by-name/xo/xonsh/unwrapped.nix
+++ b/pkgs/by-name/xo/xonsh/unwrapped.nix
@@ -100,7 +100,7 @@ python3.pkgs.buildPythonApplication {
 
   meta =  {
     homepage = "https://xon.sh/";
-    description = "A Python-ish, BASHwards-compatible shell";
+    description = "Python-ish, BASHwards-compatible shell";
     changelog = "https://github.com/xonsh/xonsh/raw/${version}/CHANGELOG.rst";
     license = with lib.licenses; [ bsd3 ];
     maintainers = with lib.maintainers; [ AndersonTorres ];
diff --git a/pkgs/by-name/xo/xosview/package.nix b/pkgs/by-name/xo/xosview/package.nix
index e18ef0ac3cdda..2cf1a76029a51 100644
--- a/pkgs/by-name/xo/xosview/package.nix
+++ b/pkgs/by-name/xo/xosview/package.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "http://www.pogo.org.uk/~mark/xosview/";
-    description = "A classic system monitoring tool";
+    description = "Classic system monitoring tool";
     license = lib.licenses.gpl2Plus;
     mainProgram = "xosview";
     maintainers = with lib.maintainers; [ AndersonTorres ];
diff --git a/pkgs/by-name/xp/xplr/package.nix b/pkgs/by-name/xp/xplr/package.nix
index 920ddb872032f..b03cec6e5effa 100644
--- a/pkgs/by-name/xp/xplr/package.nix
+++ b/pkgs/by-name/xp/xplr/package.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "xplr";
-  version = "0.21.8";
+  version = "0.21.9";
 
   src = fetchFromGitHub {
     owner = "sayanarijit";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-GpGYCGXSCQhFEPDUnHaOdz0LZ0jjRcCRnRCyOrulDVs=";
+    sha256 = "sha256-0c2QJUEQwKEzzDBDP5XdX7xe1rivazsoZtepB4Dxp/c=";
   };
 
-  cargoHash = "sha256-eCIoUUWHpFk+O5ipswwiQxf1H1ygkj07Sjyj4L8Ui6I=";
+  cargoHash = "sha256-RZgdWhVBZozYxbbNslCBLhN6EnogpyVXvht6GbzLnPs=";
 
   # fixes `thread 'main' panicked at 'cannot find strip'` on x86_64-darwin
   env = lib.optionalAttrs (stdenv.isx86_64 && stdenv.isDarwin) {
@@ -38,7 +38,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A hackable, minimal, fast TUI file explorer";
+    description = "Hackable, minimal, fast TUI file explorer";
     mainProgram = "xplr";
     homepage = "https://xplr.dev";
     changelog = "https://github.com/sayanarijit/xplr/releases/tag/${src.rev}";
diff --git a/pkgs/by-name/xs/xscreensaver/package.nix b/pkgs/by-name/xs/xscreensaver/package.nix
index 54129c938e5e4..3820409511e10 100644
--- a/pkgs/by-name/xs/xscreensaver/package.nix
+++ b/pkgs/by-name/xs/xscreensaver/package.nix
@@ -34,11 +34,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "xscreensaver";
-  version = "6.08";
+  version = "6.09";
 
   src = fetchurl {
     url = "https://www.jwz.org/xscreensaver/xscreensaver-${finalAttrs.version}.tar.gz";
-    hash = "sha256-XPUrpSXO7PlLLyvWNIXr3zGOEvzA8q2tfUwQbYVedqM=";
+    hash = "sha256-9GZ3Ba24zEP9LzlzqIobVLFvIBkK/pOyHiIfL1cyCwU=";
   };
 
   outputs = [ "out" "man" ];
@@ -122,7 +122,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://www.jwz.org/xscreensaver/";
-    description = "A set of screensavers";
+    description = "Set of screensavers";
     downloadPage = "https://www.jwz.org/xscreensaver/download.html";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ raskin AndersonTorres ];
diff --git a/pkgs/by-name/xu/xunit-viewer/package.nix b/pkgs/by-name/xu/xunit-viewer/package.nix
new file mode 100644
index 0000000000000..7c31b82aac7b3
--- /dev/null
+++ b/pkgs/by-name/xu/xunit-viewer/package.nix
@@ -0,0 +1,42 @@
+{
+  lib,
+  buildNpmPackage,
+  fetchFromGitHub,
+  nix-update-script,
+  callPackage,
+  testers, xunit-viewer,
+}:
+let
+  version = "10.6.1";
+in
+buildNpmPackage {
+  pname = "xunit-viewer";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "lukejpreston";
+    repo = "xunit-viewer";
+    rev = "v${version}";
+    hash = "sha256-n9k1Z/wofExG6k/BxtkU8M+Lo3XdCgCh8VFj9jcwL1Q=";
+  };
+
+  npmDepsHash = "sha256-6PV0+G1gzUWUjOfwRtVeALVFFiwkCAB33yB9W0PCGfc=";
+
+  passthru.updateScript = nix-update-script { };
+
+  passthru.tests = {
+    version = testers.testVersion {
+      package = xunit-viewer;
+      version = "unknown"; # broken, but at least it runs
+    };
+    example = callPackage ./test/example.nix { };
+  };
+
+  meta = {
+    description = "View your xunit results using JavaScript";
+    homepage = "https://lukejpreston.github.io/xunit-viewer";
+    license = with lib.licenses; [ mit ];
+    maintainers = with lib.maintainers; [ pluiedev ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/by-name/xu/xunit-viewer/test/example.junit.xml b/pkgs/by-name/xu/xunit-viewer/test/example.junit.xml
new file mode 100644
index 0000000000000..a87b270fe2f3f
--- /dev/null
+++ b/pkgs/by-name/xu/xunit-viewer/test/example.junit.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- taken from the nix test suite and then stripped down -->
+<testsuites tests="280" failures="0" disabled="2" errors="0" time="0.2" timestamp="2024-06-16T13:50:02.511" name="AllTests">
+  <testsuite name="parseShebangContent" tests="14" failures="0" disabled="0" skipped="0" errors="0" time="0.001" timestamp="2024-06-16T13:50:02.511">
+    <testcase name="basic" file="tests/unit/libutil/args.cc" line="10" status="run" result="completed" time="0." timestamp="2024-06-16T13:50:02.511" classname="parseShebangContent" />
+    <testcase name="empty" file="tests/unit/libutil/args.cc" line="18" status="run" result="completed" time="0." timestamp="2024-06-16T13:50:02.511" classname="parseShebangContent" />
+  </testsuite>
+</testsuites>
diff --git a/pkgs/by-name/xu/xunit-viewer/test/example.nix b/pkgs/by-name/xu/xunit-viewer/test/example.nix
new file mode 100644
index 0000000000000..574b9d784951e
--- /dev/null
+++ b/pkgs/by-name/xu/xunit-viewer/test/example.nix
@@ -0,0 +1,16 @@
+{ xunit-viewer, runCommand, ... }:
+
+runCommand "test-xunit-viewer" {
+  nativeBuildInputs = [ xunit-viewer ];
+} ''
+  mkdir $out
+  xunit-viewer -r ${./example.junit.xml} -o $out/index.html
+  ( set -x
+    grep '<body' $out/index.html
+    # Can't easily grep for parts of the original data, because it ends up
+    # embedded as base64 encoded data (and slightly modified?).
+    # We'd have to really dissect it or render it with a browser.
+    # Fortunately, we've already caught the most severe packaging problems
+    # with just this.
+  )
+''
diff --git a/pkgs/by-name/xw/xwayland-run/package.nix b/pkgs/by-name/xw/xwayland-run/package.nix
index 9d4e558723449..f15812d9c5f12 100644
--- a/pkgs/by-name/xw/xwayland-run/package.nix
+++ b/pkgs/by-name/xw/xwayland-run/package.nix
@@ -49,7 +49,7 @@ python3.pkgs.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A set of small utilities revolving around running Xwayland and various Wayland compositor headless";
+    description = "Set of small utilities revolving around running Xwayland and various Wayland compositor headless";
     homepage = "https://gitlab.freedesktop.org/ofourdan/xwayland-run";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ arthsmn ];
diff --git a/pkgs/by-name/ya/yabai/package.nix b/pkgs/by-name/ya/yabai/package.nix
index 6bdf50c25a9b2..d9833e251a08d 100644
--- a/pkgs/by-name/ya/yabai/package.nix
+++ b/pkgs/by-name/ya/yabai/package.nix
@@ -121,14 +121,13 @@ stdenv'.mkDerivation (finalAttrs: {
           exit 0
       fi
       for platform in ${lib.escapeShellArgs finalAttrs.meta.platforms}; do
-        update-source-version "yabai" "0" "${lib.fakeHash}" --source-key="sources.$platform"
-        update-source-version "yabai" "$NEW_VERSION" --source-key="sources.$platform"
+        update-source-version "yabai" "$NEW_VERSION" --ignore-same-version --source-key="sources.$platform"
       done
     '';
   };
 
   meta = {
-    description = "A tiling window manager for macOS based on binary space partitioning";
+    description = "Tiling window manager for macOS based on binary space partitioning";
     longDescription = ''
       yabai is a window management utility that is designed to work as an extension to the built-in
       window manager of macOS. yabai allows you to control your windows, spaces and displays freely
diff --git a/pkgs/by-name/ya/yamlscript/package.nix b/pkgs/by-name/ya/yamlscript/package.nix
index eb67d09dbb850..1ae39b8e636cb 100644
--- a/pkgs/by-name/ya/yamlscript/package.nix
+++ b/pkgs/by-name/ya/yamlscript/package.nix
@@ -2,11 +2,11 @@
 
 buildGraalvmNativeImage rec {
   pname = "yamlscript";
-  version = "0.1.58";
+  version = "0.1.61";
 
   src = fetchurl {
     url = "https://github.com/yaml/yamlscript/releases/download/${version}/yamlscript.cli-${version}-standalone.jar";
-    hash = "sha256-rARUkbVq77uPrQZwfQ0NNM4XwYaVhSinLi0sCoVR63E=";
+    hash = "sha256-NuZxIuj7N7zKBOaBPn8g/cKoRmNMkpH75YMHBjFFM8g=";
   };
 
   executable = "ys";
diff --git a/pkgs/by-name/ya/yanic/package.nix b/pkgs/by-name/ya/yanic/package.nix
index f2cbbaa739012..33384aa727d77 100644
--- a/pkgs/by-name/ya/yanic/package.nix
+++ b/pkgs/by-name/ya/yanic/package.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "yanic";
-  version = "1.5.0";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     owner = "FreifunkBremen";
     repo = "yanic";
     rev = "v${version}";
-    sha256 = "sha256-++tF6nTFIDeqWSqlBDXw/zEfl5YYa4ufzVZaUG2c8Zo=";
+    sha256 = "sha256-UxTlo8HkC5iTfcfTAlhSkRQo8QJhI03JDSSItuE7BCE=";
   };
 
   vendorHash = "sha256-D9V53/+C/+iv1U4kVrYWzJ8iD0MA1QcR8f5ifejFhLo=";
@@ -29,7 +29,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A tool to collect and aggregate respondd data";
+    description = "Tool to collect and aggregate respondd data";
     homepage = "https://github.com/FreifunkBremen/yanic";
     changelog = "https://github.com/FreifunkBremen/yanic/releases/tag/${src.rev}";
     license = licenses.agpl3Only;
diff --git a/pkgs/by-name/ya/yara-x/package.nix b/pkgs/by-name/ya/yara-x/package.nix
index 80789fa99123b..4e831ec920e4c 100644
--- a/pkgs/by-name/ya/yara-x/package.nix
+++ b/pkgs/by-name/ya/yara-x/package.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "yara-x";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "VirusTotal";
     repo = "yara-x";
     rev = "refs/tags/v${version}";
-    hash = "sha256-AFRKsBNDgjIsLnr61ME4WvDj+DsvIhFUnDmOGn3So8o=";
+    hash = "sha256-N82s6SEQerAVjtOL4o/AmT184fWKTETmZEpKYt7Piv0=";
   };
 
-  cargoHash = "sha256-cZ/bWaTNnX9+o8D5lMu72snc4CLpjqcwjintbw59OXA=";
+  cargoHash = "sha256-1lfkG9SsnnUzEZaIxeMxhaRmLAGLB3J0UMfWXHJcmUo=";
 
   nativeBuildInputs = [ cmake installShellFiles ];
 
diff --git a/pkgs/by-name/ya/yazi/package.nix b/pkgs/by-name/ya/yazi/package.nix
index ee807645c3fd4..276d0251710b5 100644
--- a/pkgs/by-name/ya/yazi/package.nix
+++ b/pkgs/by-name/ya/yazi/package.nix
@@ -58,14 +58,14 @@ let
 
     mkdir $out/plugins
     ${lib.optionalString (plugins != { }) ''
-        ${lib.concatMapStringsSep
+        ${lib.concatStringsSep
         "\n"
         (lib.mapAttrsToList (name: value: "ln -s ${value} $out/plugins/${name}") plugins)}
     ''}
 
     mkdir $out/flavors
     ${lib.optionalString (flavors != { }) ''
-        ${lib.concatMapStringsSep
+        ${lib.concatStringsSep
         "\n"
         (lib.mapAttrsToList (name: value: "ln -s ${value} $out/flavors/${name}") flavors)}
     ''}
diff --git a/pkgs/by-name/yc/ycmd/package.nix b/pkgs/by-name/yc/ycmd/package.nix
index 986390a19dae6..325a8d95e6bcb 100644
--- a/pkgs/by-name/yc/ycmd/package.nix
+++ b/pkgs/by-name/yc/ycmd/package.nix
@@ -95,7 +95,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A code-completion and comprehension server";
+    description = "Code-completion and comprehension server";
     mainProgram = "ycmd";
     homepage = "https://github.com/ycm-core/ycmd";
     license = licenses.gpl3;
diff --git a/pkgs/by-name/ye/yeahwm/package.nix b/pkgs/by-name/ye/yeahwm/package.nix
index 975c9e0b139d5..7198447f40c7e 100644
--- a/pkgs/by-name/ye/yeahwm/package.nix
+++ b/pkgs/by-name/ye/yeahwm/package.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "http://phrat.de/index.html";
-    description = "An X window manager based on evilwm and aewm";
+    description = "X window manager based on evilwm and aewm";
     longDescription = ''
       YeahWM is a h* window manager for X based on evilwm and aewm.
 
diff --git a/pkgs/by-name/ye/yesplaymusic/package.nix b/pkgs/by-name/ye/yesplaymusic/package.nix
index 576547669f8cd..9a20e9ecf3129 100644
--- a/pkgs/by-name/ye/yesplaymusic/package.nix
+++ b/pkgs/by-name/ye/yesplaymusic/package.nix
@@ -66,7 +66,7 @@ let
   ];
 
   meta = with lib; {
-    description = "A good-looking third-party netease cloud music player";
+    description = "Good-looking third-party netease cloud music player";
     mainProgram = "yesplaymusic";
     homepage = "https://github.com/qier222/YesPlayMusic/";
     license = licenses.mit;
diff --git a/pkgs/by-name/yg/yggdrasil/package.nix b/pkgs/by-name/yg/yggdrasil/package.nix
index 70e352e730920..7473281706222 100644
--- a/pkgs/by-name/yg/yggdrasil/package.nix
+++ b/pkgs/by-name/yg/yggdrasil/package.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "yggdrasil";
-  version = "0.5.5";
+  version = "0.5.6";
 
   src = fetchFromGitHub {
     owner = "yggdrasil-network";
     repo = "yggdrasil-go";
     rev = "v${version}";
-    sha256 = "sha256-ZInSgHjur2C+G6h/VcYtlCt0YLWwMIrz84UkDBbR73s=";
+    sha256 = "sha256-LiQKAkFN9JRdl7P3TMIzEeRxKBysidFWMWGGW8jEm/E=";
   };
 
-  vendorHash = "sha256-Ar0mWVFgLP1eYeKalaazZLKaLMXoe2bOGYkruzaKW88=";
+  vendorHash = "sha256-Bfq8AjOljSg/mWHUwTSKwslukW3aZXOFi4KigUsIogc=";
 
   subPackages = [ "cmd/genkeys" "cmd/yggdrasil" "cmd/yggdrasilctl" ];
 
diff --git a/pkgs/by-name/yo/yofi/package.nix b/pkgs/by-name/yo/yofi/package.nix
index 5227efa6fe7ed..5fa38d280aef0 100644
--- a/pkgs/by-name/yo/yofi/package.nix
+++ b/pkgs/by-name/yo/yofi/package.nix
@@ -40,7 +40,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = {
-    description = "A minimalist app launcher in Rust";
+    description = "Minimalist app launcher in Rust";
     homepage = "https://github.com/l4l/yofi";
     license = lib.licenses.mit;
     platforms = lib.platforms.linux;
diff --git a/pkgs/by-name/yo/yoink/package.nix b/pkgs/by-name/yo/yoink/package.nix
new file mode 100644
index 0000000000000..83c767fe0c174
--- /dev/null
+++ b/pkgs/by-name/yo/yoink/package.nix
@@ -0,0 +1,28 @@
+{ lib
+, fetchFromGitHub
+, buildGoModule
+}:
+
+let
+  version = "0.5.0";
+in
+buildGoModule {
+  pname = "yoink";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "MrMarble";
+    repo = "yoink";
+    rev = "v${version}";
+    hash = "sha256-9ftlAECywF4khH279h2qcSvKRDQX2I7GDQ7EYcEybL0=";
+  };
+
+  vendorHash = "sha256-cnfh2D/k4JP9BNlI+6FVLBFyk5XMIYG/DotUdAZaY0Q=";
+
+  meta = {
+    homepage = "https://github.com/MrMarble/yoink";
+    description = "Automatically download freeleech torrents";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ hogcycle ];
+  };
+}
diff --git a/pkgs/by-name/yo/youplot/package.nix b/pkgs/by-name/yo/youplot/package.nix
index d858c8764e835..b1fcb76795ad4 100644
--- a/pkgs/by-name/yo/youplot/package.nix
+++ b/pkgs/by-name/yo/youplot/package.nix
@@ -9,7 +9,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "youplot";
 
   meta = with lib; {
-    description = "A command line tool that draws plots on the terminal";
+    description = "Command line tool that draws plots on the terminal";
     homepage    = "https://github.com/red-data-tools/YouPlot";
     mainProgram = "uplot";
     license     = licenses.mit;
diff --git a/pkgs/by-name/yo/youtrack/package.nix b/pkgs/by-name/yo/youtrack/package.nix
index 5dbe8b9710ba7..9695dd3e0a8fb 100644
--- a/pkgs/by-name/yo/youtrack/package.nix
+++ b/pkgs/by-name/yo/youtrack/package.nix
@@ -1,12 +1,12 @@
-{ lib, stdenvNoCC, fetchzip, makeBinaryWrapper, jdk17_headless, gawk, statePath ? "/var/lib/youtrack" }:
+{ lib, stdenvNoCC, fetchzip, makeBinaryWrapper, jdk21_headless, gawk, statePath ? "/var/lib/youtrack" }:
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "youtrack";
-  version = "2024.1.29548";
+  version = "2024.2.34646";
 
   src = fetchzip {
     url = "https://download.jetbrains.com/charisma/youtrack-${finalAttrs.version}.zip";
-    hash = "sha256-01av1leVJz+QbnFNYyxEeL1zd6I25VNt45YFgV25n+0=";
+    hash = "sha256-9htjtB1TC+p+eETsXH5B36NKnZsFA/Og/PIW9gHQefc=";
   };
 
   nativeBuildInputs = [ makeBinaryWrapper ];
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
     cp -r * $out
     makeWrapper $out/bin/youtrack.sh $out/bin/youtrack \
       --prefix PATH : "${lib.makeBinPath [ gawk ]}" \
-      --set JRE_HOME ${jdk17_headless}
+      --set JRE_HOME ${jdk21_headless}
     rm -rf $out/internal/java
     mv $out/conf $out/conf.orig
     ln -s ${statePath}/backups $out/backups
diff --git a/pkgs/by-name/yt/yt-dlg/package.nix b/pkgs/by-name/yt/yt-dlg/package.nix
index c24df3604ddc2..8cc4d65b2a914 100644
--- a/pkgs/by-name/yt/yt-dlg/package.nix
+++ b/pkgs/by-name/yt/yt-dlg/package.nix
@@ -40,8 +40,13 @@ python3Packages.buildPythonApplication rec {
     wxpython
   ];
 
+  postInstall = ''
+    install -Dm444 yt-dlg.desktop -t $out/share/applications
+    cp -r youtube_dl_gui/data/* $out/share
+  '';
+
   meta = {
-    description = "A cross platform front-end GUI of the popular youtube-dl written in wxPython.";
+    description = "Cross platform front-end GUI of the popular youtube-dl written in wxPython";
     homepage = "https://oleksis.github.io/youtube-dl-gui";
     license = lib.licenses.unlicense;
     mainProgram = "yt-dlg";
diff --git a/pkgs/by-name/yt/ytdownloader/package.nix b/pkgs/by-name/yt/ytdownloader/package.nix
index b471ec8193298..01351c615d232 100644
--- a/pkgs/by-name/yt/ytdownloader/package.nix
+++ b/pkgs/by-name/yt/ytdownloader/package.nix
@@ -1,38 +1,48 @@
-{ lib
-, buildNpmPackage
-, fetchFromGitHub
-, makeWrapper
-, ffmpeg
-, yt-dlp
-, makeDesktopItem
-, electron
+{
+  lib,
+  buildNpmPackage,
+  fetchFromGitHub,
+  copyDesktopItems,
+  makeWrapper,
+  ffmpeg,
+  yt-dlp,
+  makeDesktopItem,
+  electron,
 }:
 
 buildNpmPackage rec {
   pname = "ytDownloader";
-  version = "3.17.4";
+  version = "3.18.0";
 
   src = fetchFromGitHub {
     owner = "aandrew-me";
     repo = "ytDownloader";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GW+17DfPiFxw2QyJ5KTMZLDWmqXfnHfkg+QpM5XOP0M=";
+    hash = "sha256-/3VlBxT06/jnBwk07zoUs1yb9MUB9U+oJtXBGoKH6Dg=";
   };
 
-  npmDepsHash = "sha256-lhFyiWy9dgnxxaElavzqA4YpRm7cVC23pvL5Kwve58E=";
+  npmDepsHash = "sha256-dAd9O3iOELBRRzQV/+DSQXHS5PLjDZvsF2D1vwT9dw8=";
 
-  nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ ffmpeg yt-dlp ];
+  nativeBuildInputs = [
+    copyDesktopItems
+    makeWrapper
+  ];
+  buildInputs = [
+    ffmpeg
+    yt-dlp
+  ];
 
-  desktopItem = makeDesktopItem {
-    name = "ytDownloader";
-    exec = "ytdownloader %U";
-    icon = "ytdownloader";
-    desktopName = "ytDownloader";
-    comment = "A modern GUI video and audio downloader";
-    categories = [ "Utility" ];
-    startupWMClass = "ytDownloader";
-  };
+  desktopItems = [
+    (makeDesktopItem {
+      name = "ytDownloader";
+      exec = "ytdownloader %U";
+      icon = "ytdownloader";
+      desktopName = "ytDownloader";
+      comment = "A modern GUI video and audio downloader";
+      categories = [ "Utility" ];
+      startupWMClass = "ytDownloader";
+    })
+  ];
 
   ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
 
@@ -49,6 +59,9 @@ buildNpmPackage rec {
       --replace-fail $\{__dirname}/../ffmpeg '${lib.getExe ffmpeg}' \
       --replace-fail 'path.join(os.homedir(), ".ytDownloader", "ytdlp")' '`${lib.getExe yt-dlp}`' \
       --replace-fail '!!localStorage.getItem("fullYtdlpBinPresent")' 'true'
+    # Disable auto-updates
+    substituteInPlace src/preferences.js \
+      --replace-warn 'const autoUpdateDisabled = getId("autoUpdateDisabled");' 'const autoUpdateDisabled = "true";'
   '';
 
   postInstall = ''
@@ -56,11 +69,10 @@ buildNpmPackage rec {
         --add-flags $out/lib/node_modules/ytdownloader/main.js
 
     install -Dm444 assets/images/icon.png $out/share/pixmaps/ytdownloader.png
-    install -Dm444 "${desktopItem}/share/applications/"* -t $out/share/applications
   '';
 
   meta = {
-    description = "A modern GUI video and audio downloader";
+    description = "Modern GUI video and audio downloader";
     homepage = "https://github.com/aandrew-me/ytDownloader";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ chewblacka ];
diff --git a/pkgs/by-name/yt/ytree/package.nix b/pkgs/by-name/yt/ytree/package.nix
index 6307d39b6629d..e61a5f2b971d4 100644
--- a/pkgs/by-name/yt/ytree/package.nix
+++ b/pkgs/by-name/yt/ytree/package.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://www.han.de/~werner/ytree.html";
-    description = "A curses-based file manager similar to DOS Xtree(TM)";
+    description = "Curses-based file manager similar to DOS Xtree(TM)";
     license = with lib.licenses; [ gpl2Plus ];
     mainProgram = "ytree";
     maintainers = with lib.maintainers; [ AndersonTorres ];
diff --git a/pkgs/by-name/yu/yutto/package.nix b/pkgs/by-name/yu/yutto/package.nix
index 2d1e7a7d3a705..b225dbf803ba5 100644
--- a/pkgs/by-name/yu/yutto/package.nix
+++ b/pkgs/by-name/yu/yutto/package.nix
@@ -43,7 +43,7 @@ python3Packages.buildPythonApplication rec {
   };
 
   meta = with lib; {
-    description = "A Bilibili downloader";
+    description = "Bilibili downloader";
     homepage = "https://github.com/yutto-dev/yutto";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ linsui ];
diff --git a/pkgs/by-name/za/zabbix-agent2-plugin-postgresql/package.nix b/pkgs/by-name/za/zabbix-agent2-plugin-postgresql/package.nix
index 951d26fa9642a..f8bf2cfc6cf73 100644
--- a/pkgs/by-name/za/zabbix-agent2-plugin-postgresql/package.nix
+++ b/pkgs/by-name/za/zabbix-agent2-plugin-postgresql/package.nix
@@ -2,11 +2,11 @@
 
 buildGoModule rec {
   pname = "zabbix-agent2-plugin-postgresql";
-  version = "6.4.12";
+  version = "6.4.15";
 
   src = fetchurl {
     url = "https://cdn.zabbix.com/zabbix-agent2-plugins/sources/postgresql/zabbix-agent2-plugin-postgresql-${version}.tar.gz";
-    hash = "sha256-fsWjgTUygO6P5bCJYa8i8IlJYs+KdFtKkEeEPjnd4R0=";
+    hash = "sha256-9N2xN7ckfBiwWcI+C4VeHDQVrWEaeKUcjfIw7GU7K9E=";
   };
 
   vendorHash = null;
diff --git a/pkgs/by-name/zc/zcfan/package.nix b/pkgs/by-name/zc/zcfan/package.nix
index 7fd6eea7a5b29..430026d16f12c 100644
--- a/pkgs/by-name/zc/zcfan/package.nix
+++ b/pkgs/by-name/zc/zcfan/package.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A zero-configuration fan daemon for ThinkPads";
+    description = "Zero-configuration fan daemon for ThinkPads";
     mainProgram = "zcfan";
     homepage = "https://github.com/cdown/zcfan";
     changelog = "https://github.com/cdown/zcfan/tags/${finalAttrs.version}";
diff --git a/pkgs/by-name/ze/zed-editor/Cargo.lock b/pkgs/by-name/ze/zed-editor/Cargo.lock
index 707a06a3bb611..c47b14abbd997 100644
--- a/pkgs/by-name/ze/zed-editor/Cargo.lock
+++ b/pkgs/by-name/ze/zed-editor/Cargo.lock
@@ -70,6 +70,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "42cd52102d3df161c77a887b608d7a4897d7cc112886a9537b738a887a03aaff"
 dependencies = [
  "cfg-if",
+ "const-random",
  "getrandom 0.2.10",
  "once_cell",
  "version_check",
@@ -224,10 +225,12 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "futures 0.3.28",
+ "http 0.1.0",
+ "isahc",
+ "schemars",
  "serde",
  "serde_json",
  "tokio",
- "util",
 ]
 
 [[package]]
@@ -238,9 +241,9 @@ checksum = "e78f17bacc1bc7b91fef7b1885c10772eb2b9e4e989356f6f0f6a972240f97cd"
 
 [[package]]
 name = "anyhow"
-version = "1.0.75"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+checksum = "25bdb32cbbdce2b519a9cd7df3a678443100e265d5e25ca763b7572a5104f5f3"
 
 [[package]]
 name = "approx"
@@ -332,7 +335,9 @@ dependencies = [
 name = "assistant"
 version = "0.1.0"
 dependencies = [
+ "anthropic",
  "anyhow",
+ "cargo_toml",
  "chrono",
  "client",
  "collections",
@@ -340,10 +345,12 @@ dependencies = [
  "ctor",
  "editor",
  "env_logger",
+ "feature_flags",
  "file_icons",
  "fs",
  "futures 0.3.28",
  "gpui",
+ "http 0.1.0",
  "indoc",
  "language",
  "log",
@@ -355,16 +362,20 @@ dependencies = [
  "project",
  "rand 0.8.5",
  "regex",
+ "rope",
  "schemars",
  "search",
  "serde",
  "serde_json",
  "settings",
  "smol",
+ "strsim 0.11.1",
  "telemetry_events",
  "theme",
  "tiktoken-rs",
+ "toml 0.8.10",
  "ui",
+ "unindent",
  "util",
  "uuid",
  "workspace",
@@ -377,26 +388,29 @@ dependencies = [
  "anyhow",
  "assets",
  "assistant_tooling",
+ "chrono",
  "client",
  "collections",
  "editor",
  "env_logger",
  "feature_flags",
+ "file_icons",
  "fs",
  "futures 0.3.28",
  "fuzzy",
  "gpui",
+ "http 0.1.0",
  "language",
  "languages",
  "log",
- "nanoid",
+ "markdown",
  "node_runtime",
  "open_ai",
  "picker",
  "project",
  "rand 0.8.5",
+ "regex",
  "release_channel",
- "rich_text",
  "schemars",
  "semantic_index",
  "serde",
@@ -405,6 +419,7 @@ dependencies = [
  "story",
  "theme",
  "ui",
+ "unindent",
  "util",
  "workspace",
 ]
@@ -417,12 +432,15 @@ dependencies = [
  "collections",
  "futures 0.3.28",
  "gpui",
+ "log",
  "project",
+ "repair_json",
  "schemars",
  "serde",
  "serde_json",
  "settings",
  "sum_tree",
+ "ui",
  "unindent",
  "util",
 ]
@@ -482,6 +500,7 @@ version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a116f46a969224200a0a97f29cfd4c50e7534e4b4826bd23ea2c3c533039c82c"
 dependencies = [
+ "deflate64",
  "flate2",
  "futures-core",
  "futures-io",
@@ -613,6 +632,18 @@ dependencies = [
 ]
 
 [[package]]
+name = "async-native-tls"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9343dc5acf07e79ff82d0c37899f079db3534d99f189a1837c8e549c99405bec"
+dependencies = [
+ "futures-util",
+ "native-tls",
+ "thiserror",
+ "url",
+]
+
+[[package]]
 name = "async-net"
 version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -806,7 +837,7 @@ version = "0.16.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5682ea0913e5c20780fe5785abacb85a411e7437bf52a1bedb93ddb3972cb8dd"
 dependencies = [
- "async-native-tls",
+ "async-native-tls 0.3.3",
  "async-std",
  "futures-io",
  "futures-util",
@@ -816,6 +847,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "async_zip"
+version = "0.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b9f7252833d5ed4b00aa9604b563529dd5e11de9c23615de2dcdf91eb87b52"
+dependencies = [
+ "async-compression",
+ "crc32fast",
+ "futures-lite 2.2.0",
+ "pin-project",
+ "thiserror",
+]
+
+[[package]]
 name = "atoi"
 version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -869,6 +913,7 @@ dependencies = [
  "db",
  "editor",
  "gpui",
+ "http 0.1.0",
  "isahc",
  "log",
  "markdown_preview",
@@ -914,7 +959,7 @@ dependencies = [
  "hex",
  "http 0.2.9",
  "hyper",
- "ring 0.17.7",
+ "ring",
  "time",
  "tokio",
  "tracing",
@@ -1074,7 +1119,7 @@ dependencies = [
  "once_cell",
  "p256",
  "percent-encoding",
- "ring 0.17.7",
+ "ring",
  "sha2 0.10.7",
  "subtle",
  "time",
@@ -1261,7 +1306,7 @@ checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf"
 dependencies = [
  "async-trait",
  "axum-core",
- "base64 0.21.4",
+ "base64 0.21.7",
  "bitflags 1.3.2",
  "bytes 1.5.0",
  "futures-util",
@@ -1356,9 +1401,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
 
 [[package]]
 name = "base64"
-version = "0.21.4"
+version = "0.21.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
 name = "base64"
@@ -1490,7 +1535,7 @@ dependencies = [
 [[package]]
 name = "blade-graphics"
 version = "0.4.0"
-source = "git+https://github.com/kvark/blade?rev=f5766863de9dcc092e90fdbbc5e0007a99e7f9bf#f5766863de9dcc092e90fdbbc5e0007a99e7f9bf"
+source = "git+https://github.com/kvark/blade?rev=e35b2d41f221a48b75f7cf2e78a81e7ecb7a383c#e35b2d41f221a48b75f7cf2e78a81e7ecb7a383c"
 dependencies = [
  "ash",
  "ash-window",
@@ -1520,7 +1565,7 @@ dependencies = [
 [[package]]
 name = "blade-macros"
 version = "0.2.1"
-source = "git+https://github.com/kvark/blade?rev=f5766863de9dcc092e90fdbbc5e0007a99e7f9bf#f5766863de9dcc092e90fdbbc5e0007a99e7f9bf"
+source = "git+https://github.com/kvark/blade?rev=e35b2d41f221a48b75f7cf2e78a81e7ecb7a383c#e35b2d41f221a48b75f7cf2e78a81e7ecb7a383c"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1641,7 +1686,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4c2f7349907b712260e64b0afe2f84692af14a454be26187d9df565c7f69266a"
 dependencies = [
  "memchr",
- "regex-automata 0.3.8",
+ "regex-automata 0.3.9",
  "serde",
 ]
 
@@ -1736,6 +1781,7 @@ dependencies = [
  "fs",
  "futures 0.3.28",
  "gpui",
+ "http 0.1.0",
  "language",
  "live_kit_client",
  "log",
@@ -1852,6 +1898,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "cargo_toml"
+version = "0.20.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8cb1d556b8b8f36e5ca74938008be3ac102f5dcb5b68a0477e4249ae2291cd3"
+dependencies = [
+ "serde",
+ "toml 0.8.10",
+]
+
+[[package]]
 name = "cast"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1938,6 +1994,7 @@ dependencies = [
  "collections",
  "futures 0.3.28",
  "gpui",
+ "http 0.1.0",
  "language",
  "log",
  "rand 0.8.5",
@@ -2039,7 +2096,7 @@ dependencies = [
  "bitflags 1.3.2",
  "clap_lex 0.2.4",
  "indexmap 1.9.3",
- "strsim",
+ "strsim 0.10.0",
  "termcolor",
  "textwrap",
 ]
@@ -2063,7 +2120,7 @@ dependencies = [
  "anstream",
  "anstyle",
  "clap_lex 0.5.1",
- "strsim",
+ "strsim 0.10.0",
 ]
 
 [[package]]
@@ -2101,7 +2158,11 @@ dependencies = [
  "clap 4.4.4",
  "core-foundation",
  "core-services",
+ "exec",
+ "fork",
  "ipc-channel",
+ "libc",
+ "once_cell",
  "plist",
  "release_channel",
  "serde",
@@ -2156,6 +2217,7 @@ name = "client"
 version = "0.1.0"
 dependencies = [
  "anyhow",
+ "async-native-tls 0.5.0",
  "async-recursion 0.3.2",
  "async-tungstenite",
  "chrono",
@@ -2164,6 +2226,7 @@ dependencies = [
  "feature_flags",
  "futures 0.3.28",
  "gpui",
+ "http 0.1.0",
  "lazy_static",
  "log",
  "once_cell",
@@ -2294,6 +2357,7 @@ dependencies = [
  "gpui",
  "headless",
  "hex",
+ "http 0.1.0",
  "indoc",
  "language",
  "live_kit_client",
@@ -2301,6 +2365,7 @@ dependencies = [
  "log",
  "lsp",
  "menu",
+ "multi_buffer",
  "nanoid",
  "node_runtime",
  "notifications",
@@ -2352,7 +2417,6 @@ dependencies = [
  "call",
  "channel",
  "client",
- "clock",
  "collections",
  "db",
  "dev_server_projects",
@@ -2362,6 +2426,7 @@ dependencies = [
  "futures 0.3.28",
  "fuzzy",
  "gpui",
+ "http 0.1.0",
  "language",
  "lazy_static",
  "menu",
@@ -2501,6 +2566,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f"
 
 [[package]]
+name = "const-random"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359"
+dependencies = [
+ "const-random-macro",
+]
+
+[[package]]
+name = "const-random-macro"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e"
+dependencies = [
+ "getrandom 0.2.10",
+ "once_cell",
+ "tiny-keccak",
+]
+
+[[package]]
 name = "convert_case"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2531,6 +2616,7 @@ dependencies = [
  "fs",
  "futures 0.3.28",
  "gpui",
+ "http 0.1.0",
  "indoc",
  "language",
  "lsp",
@@ -3111,6 +3197,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "deflate64"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83ace6c86376be0b6cdcf3fb41882e81d94b31587573d1cfa9d01cd06bba210d"
+
+[[package]]
 name = "der"
 version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3383,6 +3475,7 @@ dependencies = [
  "fuzzy",
  "git",
  "gpui",
+ "http 0.1.0",
  "indoc",
  "itertools 0.11.0",
  "language",
@@ -3553,6 +3646,17 @@ dependencies = [
 
 [[package]]
 name = "errno"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
+dependencies = [
+ "errno-dragonfly",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "errno"
 version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
@@ -3562,6 +3666,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "errno-dragonfly"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
 name = "etagere"
 version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3640,6 +3754,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "exec"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "886b70328cba8871bfc025858e1de4be16b1d5088f2ba50b57816f4210672615"
+dependencies = [
+ "errno 0.2.8",
+ "libc",
+]
+
+[[package]]
 name = "extension"
 version = "0.1.0"
 dependencies = [
@@ -3655,6 +3779,7 @@ dependencies = [
  "fs",
  "futures 0.3.28",
  "gpui",
+ "http 0.1.0",
  "isahc",
  "language",
  "log",
@@ -3735,9 +3860,9 @@ checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"
 
 [[package]]
 name = "fancy-regex"
-version = "0.11.0"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2"
+checksum = "7493d4c459da9f84325ad297371a6b2b8a162800873a22e3b6b6512e61d18c05"
 dependencies = [
  "bit-set",
  "regex",
@@ -3802,6 +3927,7 @@ dependencies = [
  "editor",
  "futures 0.3.28",
  "gpui",
+ "http 0.1.0",
  "human_bytes",
  "isahc",
  "language",
@@ -3848,6 +3974,7 @@ dependencies = [
  "menu",
  "picker",
  "project",
+ "serde",
  "serde_json",
  "settings",
  "text",
@@ -4040,6 +4167,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
 
 [[package]]
+name = "fork"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60e74d3423998a57e9d906e49252fb79eb4a04d5cdfe188fb1b7ff9fc076a8ed"
+dependencies = [
+ "libc",
+]
+
+[[package]]
 name = "form_urlencoded"
 version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4096,7 +4232,7 @@ dependencies = [
  "text",
  "time",
  "util",
- "windows 0.53.0",
+ "windows 0.56.0",
 ]
 
 [[package]]
@@ -4401,6 +4537,7 @@ dependencies = [
  "derive_more",
  "git2",
  "gpui",
+ "http 0.1.0",
  "lazy_static",
  "log",
  "parking_lot",
@@ -4415,7 +4552,7 @@ dependencies = [
  "unindent",
  "url",
  "util",
- "windows 0.53.0",
+ "windows 0.56.0",
 ]
 
 [[package]]
@@ -4440,6 +4577,7 @@ dependencies = [
  "futures 0.3.28",
  "git",
  "gpui",
+ "http 0.1.0",
  "isahc",
  "pretty_assertions",
  "regex",
@@ -4447,7 +4585,6 @@ dependencies = [
  "serde_json",
  "unindent",
  "url",
- "util",
 ]
 
 [[package]]
@@ -4498,7 +4635,6 @@ name = "go_to_line"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "collections",
  "editor",
  "gpui",
  "indoc",
@@ -4525,9 +4661,9 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "futures 0.3.28",
+ "http 0.1.0",
  "serde",
  "serde_json",
- "util",
 ]
 
 [[package]]
@@ -4595,6 +4731,7 @@ dependencies = [
  "foreign-types 0.5.0",
  "futures 0.3.28",
  "gpui_macros",
+ "http 0.1.0",
  "image",
  "itertools 0.11.0",
  "lazy_static",
@@ -4637,8 +4774,10 @@ dependencies = [
  "wayland-cursor",
  "wayland-protocols",
  "wayland-protocols-plasma",
- "windows 0.53.0",
+ "windows 0.56.0",
+ "windows-core 0.56.0",
  "x11rb",
+ "xim",
  "xkbcommon",
 ]
 
@@ -4653,9 +4792,9 @@ dependencies = [
 
 [[package]]
 name = "grid"
-version = "0.11.0"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1df00eed8d1f0db937f6be10e46e8072b0671accb504cf0f959c5c52c679f5b9"
+checksum = "d196ffc1627db18a531359249b2bf8416178d84b729f3cebeb278f285fb9b58c"
 
 [[package]]
 name = "group"
@@ -4740,7 +4879,7 @@ version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270"
 dependencies = [
- "base64 0.21.4",
+ "base64 0.21.7",
  "bytes 1.5.0",
  "headers-core",
  "http 0.2.9",
@@ -4764,7 +4903,6 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "client",
- "ctrlc",
  "fs",
  "futures 0.3.28",
  "gpui",
@@ -4776,6 +4914,7 @@ dependencies = [
  "rpc",
  "settings",
  "shellexpand",
+ "signal-hook",
  "util",
 ]
 
@@ -4915,6 +5054,20 @@ checksum = "4d13cdbd5dbb29f9c88095bbdc2590c9cba0d0a1269b983fef6b2cdd7e9f4db1"
 
 [[package]]
 name = "http"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "futures 0.3.28",
+ "futures-lite 1.13.0",
+ "isahc",
+ "log",
+ "serde",
+ "serde_json",
+ "url",
+]
+
+[[package]]
+name = "http"
 version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
@@ -5530,6 +5683,7 @@ dependencies = [
  "git",
  "globset",
  "gpui",
+ "http 0.1.0",
  "indoc",
  "itertools 0.11.0",
  "lazy_static",
@@ -5620,6 +5774,7 @@ dependencies = [
  "feature_flags",
  "futures 0.3.28",
  "gpui",
+ "http 0.1.0",
  "language",
  "lazy_static",
  "log",
@@ -5642,7 +5797,6 @@ dependencies = [
  "tree-sitter-c",
  "tree-sitter-cpp",
  "tree-sitter-css",
- "tree-sitter-embedded-template",
  "tree-sitter-go",
  "tree-sitter-gomod",
  "tree-sitter-gowork",
@@ -5652,7 +5806,6 @@ dependencies = [
  "tree-sitter-proto",
  "tree-sitter-python",
  "tree-sitter-regex",
- "tree-sitter-ruby",
  "tree-sitter-rust",
  "tree-sitter-typescript",
  "tree-sitter-yaml",
@@ -5905,13 +6058,13 @@ dependencies = [
  "serde_json",
  "smol",
  "util",
- "windows 0.53.0",
+ "windows 0.56.0",
 ]
 
 [[package]]
 name = "lsp-types"
-version = "0.94.1"
-source = "git+https://github.com/zed-industries/lsp-types?branch=updated-completion-list-item-defaults#90a040a1d195687bd19e1df47463320a44e93d7a"
+version = "0.95.1"
+source = "git+https://github.com/zed-industries/lsp-types?branch=apply-snippet-edit#853c7881d200777e20799026651ca36727144646"
 dependencies = [
  "bitflags 1.3.2",
  "serde",
@@ -5974,6 +6127,27 @@ dependencies = [
 ]
 
 [[package]]
+name = "markdown"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "assets",
+ "env_logger",
+ "futures 0.3.28",
+ "gpui",
+ "language",
+ "languages",
+ "linkify",
+ "log",
+ "node_runtime",
+ "pulldown-cmark",
+ "settings",
+ "theme",
+ "ui",
+ "util",
+]
+
+[[package]]
 name = "markdown_preview"
 version = "0.1.0"
 dependencies = [
@@ -6193,6 +6367,7 @@ dependencies = [
  "log",
  "parking_lot",
  "rand 0.8.5",
+ "serde",
  "settings",
  "smallvec",
  "sum_tree",
@@ -6339,15 +6514,21 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "async-compression",
+ "async-std",
  "async-tar",
  "async-trait",
+ "async_zip",
  "futures 0.3.28",
+ "http 0.1.0",
  "log",
  "semver",
  "serde",
  "serde_json",
  "smol",
+ "tempfile",
  "util",
+ "walkdir",
+ "windows 0.56.0",
 ]
 
 [[package]]
@@ -6733,10 +6914,11 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "futures 0.3.28",
+ "http 0.1.0",
+ "isahc",
  "schemars",
  "serde",
  "serde_json",
- "util",
 ]
 
 [[package]]
@@ -6772,6 +6954,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
+name = "openssl-src"
+version = "300.2.3+3.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843"
+dependencies = [
+ "cc",
+]
+
+[[package]]
 name = "openssl-sys"
 version = "0.9.93"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6779,6 +6970,7 @@ checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d"
 dependencies = [
  "cc",
  "libc",
+ "openssl-src",
  "pkg-config",
  "vcpkg",
 ]
@@ -6845,7 +7037,6 @@ dependencies = [
 name = "outline"
 version = "0.1.0"
 dependencies = [
- "collections",
  "editor",
  "fuzzy",
  "gpui",
@@ -7217,7 +7408,7 @@ version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9a4a0cfc5fb21a09dc6af4bf834cf10d4a32fccd9e2ea468c4b1751a097487aa"
 dependencies = [
- "base64 0.21.4",
+ "base64 0.21.7",
  "indexmap 1.9.3",
  "line-wrap",
  "quick-xml 0.30.0",
@@ -7465,6 +7656,7 @@ dependencies = [
  "client",
  "clock",
  "collections",
+ "dev_server_projects",
  "env_logger",
  "fs",
  "futures 0.3.28",
@@ -7473,6 +7665,7 @@ dependencies = [
  "git2",
  "globset",
  "gpui",
+ "http 0.1.0",
  "itertools 0.11.0",
  "language",
  "log",
@@ -7491,9 +7684,12 @@ dependencies = [
  "serde_json",
  "settings",
  "sha2 0.10.7",
+ "shlex",
  "similar",
  "smol",
+ "snippet",
  "task",
+ "tempfile",
  "terminal",
  "text",
  "unindent",
@@ -7848,12 +8044,14 @@ name = "recent_projects"
 version = "0.1.0"
 dependencies = [
  "anyhow",
+ "client",
  "dev_server_projects",
  "editor",
  "feature_flags",
  "fuzzy",
  "gpui",
  "language",
+ "markdown",
  "menu",
  "ordered-float 2.10.0",
  "picker",
@@ -7861,9 +8059,9 @@ dependencies = [
  "rpc",
  "serde",
  "serde_json",
- "settings",
  "smol",
- "theme",
+ "task",
+ "terminal_view",
  "ui",
  "ui_text_field",
  "util",
@@ -7951,9 +8149,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.3.8"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795"
+checksum = "59b23e92ee4318893fa3fe3e6fb365258efbfe6ac6ab30f090cdcbb7aa37efa9"
 
 [[package]]
 name = "regex-automata"
@@ -8002,12 +8200,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "repair_json"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ee191e184125fe72cb59b74160e25584e3908f2aaa84cbda1e161347102aa15"
+dependencies = [
+ "thiserror",
+]
+
+[[package]]
 name = "reqwest"
 version = "0.11.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1"
 dependencies = [
- "base64 0.21.4",
+ "base64 0.21.7",
  "bytes 1.5.0",
  "encoding_rs",
  "futures-core",
@@ -8088,21 +8295,6 @@ dependencies = [
 
 [[package]]
 name = "ring"
-version = "0.16.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
-dependencies = [
- "cc",
- "libc",
- "once_cell",
- "spin 0.5.2",
- "untrusted 0.7.1",
- "web-sys",
- "winapi",
-]
-
-[[package]]
-name = "ring"
 version = "0.17.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
@@ -8111,7 +8303,7 @@ dependencies = [
  "getrandom 0.2.10",
  "libc",
  "spin 0.9.8",
- "untrusted 0.9.0",
+ "untrusted",
  "windows-sys 0.48.0",
 ]
 
@@ -8264,9 +8456,9 @@ dependencies = [
 
 [[package]]
 name = "rust-embed"
-version = "8.2.0"
+version = "8.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a82c0bbc10308ed323529fd3c1dce8badda635aa319a5ff0e6466f33b8101e3f"
+checksum = "19549741604902eb99a7ed0ee177a0663ee1eda51a29f71401f166e47e77806a"
 dependencies = [
  "rust-embed-impl",
  "rust-embed-utils",
@@ -8275,9 +8467,9 @@ dependencies = [
 
 [[package]]
 name = "rust-embed-impl"
-version = "8.2.0"
+version = "8.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6227c01b1783cdfee1bcf844eb44594cd16ec71c35305bf1c9fb5aade2735e16"
+checksum = "cb9f96e283ec64401f30d3df8ee2aaeb2561f34c824381efa24a35f79bf40ee4"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -8288,9 +8480,9 @@ dependencies = [
 
 [[package]]
 name = "rust-embed-utils"
-version = "8.2.0"
+version = "8.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cb0a25bfbb2d4b4402179c2cf030387d9990857ce08a32592c6238db9fa8665"
+checksum = "38c74a686185620830701348de757fd36bef4aa9680fd23c49fc539ddcc1af32"
 dependencies = [
  "globset",
  "sha2 0.10.7",
@@ -8341,7 +8533,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
 dependencies = [
  "bitflags 1.3.2",
- "errno",
+ "errno 0.3.8",
  "io-lifetimes 1.0.11",
  "libc",
  "linux-raw-sys 0.3.8",
@@ -8355,7 +8547,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
 dependencies = [
  "bitflags 2.4.2",
- "errno",
+ "errno 0.3.8",
  "itoa",
  "libc",
  "linux-raw-sys 0.4.12",
@@ -8369,19 +8561,19 @@ version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a25c3aad9fc1424eb82c88087789a7d938e1829724f3e4043163baf0d13cfc12"
 dependencies = [
- "errno",
+ "errno 0.3.8",
  "libc",
  "rustix 0.38.32",
 ]
 
 [[package]]
 name = "rustls"
-version = "0.21.10"
+version = "0.21.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
+checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e"
 dependencies = [
  "log",
- "ring 0.17.7",
+ "ring",
  "rustls-webpki",
  "sct",
 ]
@@ -8404,7 +8596,7 @@ version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
 dependencies = [
- "base64 0.21.4",
+ "base64 0.21.7",
 ]
 
 [[package]]
@@ -8413,8 +8605,8 @@ version = "0.101.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
 dependencies = [
- "ring 0.17.7",
- "untrusted 0.9.0",
+ "ring",
+ "untrusted",
 ]
 
 [[package]]
@@ -8538,12 +8730,12 @@ dependencies = [
 
 [[package]]
 name = "sct"
-version = "0.7.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
+checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
 dependencies = [
- "ring 0.16.20",
- "untrusted 0.7.1",
+ "ring",
+ "untrusted",
 ]
 
 [[package]]
@@ -8735,6 +8927,7 @@ dependencies = [
  "futures-batch",
  "gpui",
  "heed",
+ "http 0.1.0",
  "language",
  "languages",
  "log",
@@ -9414,7 +9607,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "864b869fdf56263f4c95c45483191ea0af340f9f3e3e7b4d57a61c7c87a970db"
 dependencies = [
  "atoi",
- "base64 0.21.4",
+ "base64 0.21.7",
  "bigdecimal",
  "bitflags 2.4.2",
  "byteorder",
@@ -9461,7 +9654,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "eb7ae0e6a97fb3ba33b23ac2671a5ce6e3cabe003f451abd5a56e7951d975624"
 dependencies = [
  "atoi",
- "base64 0.21.4",
+ "base64 0.21.7",
  "bigdecimal",
  "bitflags 2.4.2",
  "byteorder",
@@ -9550,7 +9743,6 @@ name = "storybook"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "assistant2",
  "clap 4.4.4",
  "collab_ui",
  "ctrlc",
@@ -9600,6 +9792,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
+name = "strsim"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
+
+[[package]]
 name = "strum"
 version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -9650,6 +9848,7 @@ dependencies = [
  "env_logger",
  "futures 0.3.28",
  "gpui",
+ "http 0.1.0",
  "language",
  "log",
  "postage",
@@ -9670,6 +9869,7 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "futures 0.3.28",
+ "http 0.1.0",
  "serde",
  "serde_json",
  "smol",
@@ -9873,12 +10073,14 @@ dependencies = [
 
 [[package]]
 name = "taffy"
-version = "0.3.11"
-source = "git+https://github.com/DioxusLabs/taffy?rev=1876f72bee5e376023eaa518aa7b8a34c769bd1b#1876f72bee5e376023eaa518aa7b8a34c769bd1b"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b2e140b328c6cb5e744bb2c65910b47df86b239afc793ee2c52262569cf9225"
 dependencies = [
  "arrayvec",
  "grid",
  "num-traits",
+ "serde",
  "slotmap",
 ]
 
@@ -9927,6 +10129,7 @@ dependencies = [
  "fuzzy",
  "gpui",
  "language",
+ "menu",
  "picker",
  "project",
  "schemars",
@@ -10005,7 +10208,7 @@ dependencies = [
  "theme",
  "thiserror",
  "util",
- "windows 0.53.0",
+ "windows 0.56.0",
 ]
 
 [[package]]
@@ -10049,6 +10252,7 @@ dependencies = [
  "ctor",
  "env_logger",
  "gpui",
+ "http 0.1.0",
  "lazy_static",
  "log",
  "parking_lot",
@@ -10136,18 +10340,18 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.48"
+version = "1.0.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7"
+checksum = "579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.48"
+version = "1.0.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35"
+checksum = "e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -10177,12 +10381,12 @@ dependencies = [
 
 [[package]]
 name = "tiktoken-rs"
-version = "0.5.7"
+version = "0.5.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4427b6b1c6b38215b92dd47a83a0ecc6735573d0a5a4c14acc0ac5b33b28adb"
+checksum = "c314e7ce51440f9e8f5a497394682a57b7c323d0f4d0a6b1b13c429056e0e234"
 dependencies = [
  "anyhow",
- "base64 0.21.4",
+ "base64 0.21.7",
  "bstr",
  "fancy-regex",
  "lazy_static",
@@ -10229,6 +10433,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "tiny-keccak"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
+dependencies = [
+ "crunchy",
+]
+
+[[package]]
 name = "tiny-skia"
 version = "0.11.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -10688,8 +10901,8 @@ dependencies = [
 
 [[package]]
 name = "tree-sitter-go"
-version = "0.19.1"
-source = "git+https://github.com/tree-sitter/tree-sitter-go?rev=aeb2f33b366fd78d5789ff104956ce23508b85db#aeb2f33b366fd78d5789ff104956ce23508b85db"
+version = "0.20.0"
+source = "git+https://github.com/tree-sitter/tree-sitter-go?rev=b82ab803d887002a0af11f6ce63d72884580bf33#b82ab803d887002a0af11f6ce63d72884580bf33"
 dependencies = [
  "cc",
  "tree-sitter",
@@ -10917,7 +11130,7 @@ dependencies = [
  "story",
  "strum",
  "theme",
- "windows 0.53.0",
+ "windows 0.56.0",
 ]
 
 [[package]]
@@ -11023,12 +11236,6 @@ checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c"
 
 [[package]]
 name = "untrusted"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
-
-[[package]]
-name = "untrusted"
 version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
@@ -11097,7 +11304,6 @@ dependencies = [
  "futures-lite 1.13.0",
  "git2",
  "globset",
- "isahc",
  "lazy_static",
  "log",
  "rand 0.8.5",
@@ -11109,7 +11315,6 @@ dependencies = [
  "tempfile",
  "tendril",
  "unicase",
- "url",
 ]
 
 [[package]]
@@ -11209,6 +11414,7 @@ dependencies = [
  "language",
  "log",
  "lsp",
+ "multi_buffer",
  "nvim-rs",
  "parking_lot",
  "regex",
@@ -11293,9 +11499,9 @@ checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
 
 [[package]]
 name = "walkdir"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
 dependencies = [
  "same-file",
  "winapi-util",
@@ -12057,19 +12263,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
 dependencies = [
  "windows-core 0.52.0",
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
 name = "windows"
-version = "0.53.0"
+version = "0.56.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efc5cf48f83140dcaab716eeaea345f9e93d0018fb81162753a3f76c3397b538"
+checksum = "1de69df01bdf1ead2f4ac895dc77c9351aefff65b2f3db429a343f9cbf05e132"
 dependencies = [
- "windows-core 0.53.0",
- "windows-implement",
- "windows-interface",
- "windows-targets 0.52.4",
+ "windows-core 0.56.0",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -12078,24 +12282,26 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
 name = "windows-core"
-version = "0.53.0"
+version = "0.56.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9dcc5b895a6377f1ab9fa55acedab1fd5ac0db66ad1e6c7f47e28a22e446a5dd"
+checksum = "4698e52ed2d08f8658ab0c39512a7c00ee5fe2688c65f8c0a4f06750d729f2a6"
 dependencies = [
+ "windows-implement",
+ "windows-interface",
  "windows-result",
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
 name = "windows-implement"
-version = "0.53.0"
+version = "0.56.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "942ac266be9249c84ca862f0a164a39533dc2f6f33dc98ec89c8da99b82ea0bd"
+checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -12104,9 +12310,9 @@ dependencies = [
 
 [[package]]
 name = "windows-interface"
-version = "0.53.0"
+version = "0.56.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da33557140a288fae4e1d5f8873aaf9eb6613a9cf82c3e070223ff177f598b60"
+checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -12115,11 +12321,11 @@ dependencies = [
 
 [[package]]
 name = "windows-result"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd19df78e5168dfb0aedc343d1d1b8d422ab2db6756d2dc3fef75035402a3f64"
+checksum = "749f0da9cc72d82e600d8d2e44cadd0b9eedb9038f71a1c58556ac1c5791813b"
 dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -12146,7 +12352,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -12181,17 +12387,18 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.4",
- "windows_aarch64_msvc 0.52.4",
- "windows_i686_gnu 0.52.4",
- "windows_i686_msvc 0.52.4",
- "windows_x86_64_gnu 0.52.4",
- "windows_x86_64_gnullvm 0.52.4",
- "windows_x86_64_msvc 0.52.4",
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
 ]
 
 [[package]]
@@ -12208,9 +12415,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -12226,9 +12433,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -12244,9 +12451,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -12262,9 +12475,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -12280,9 +12493,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -12298,9 +12511,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -12316,9 +12529,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
 
 [[package]]
 name = "winnow"
@@ -12510,6 +12723,7 @@ dependencies = [
  "fs",
  "futures 0.3.28",
  "gpui",
+ "http 0.1.0",
  "itertools 0.11.0",
  "language",
  "lazy_static",
@@ -12545,6 +12759,7 @@ dependencies = [
  "git",
  "git2",
  "gpui",
+ "http 0.1.0",
  "ignore",
  "itertools 0.11.0",
  "language",
@@ -12629,6 +12844,35 @@ dependencies = [
 ]
 
 [[package]]
+name = "xim"
+version = "0.4.0"
+source = "git+https://github.com/npmania/xim-rs?rev=27132caffc5b9bc9c432ca4afad184ab6e7c16af#27132caffc5b9bc9c432ca4afad184ab6e7c16af"
+dependencies = [
+ "ahash 0.8.8",
+ "hashbrown 0.14.0",
+ "log",
+ "x11rb",
+ "xim-ctext",
+ "xim-parser",
+]
+
+[[package]]
+name = "xim-ctext"
+version = "0.3.0"
+source = "git+https://github.com/npmania/xim-rs?rev=27132caffc5b9bc9c432ca4afad184ab6e7c16af#27132caffc5b9bc9c432ca4afad184ab6e7c16af"
+dependencies = [
+ "encoding_rs",
+]
+
+[[package]]
+name = "xim-parser"
+version = "0.2.1"
+source = "git+https://github.com/npmania/xim-rs?rev=27132caffc5b9bc9c432ca4afad184ab6e7c16af#27132caffc5b9bc9c432ca4afad184ab6e7c16af"
+dependencies = [
+ "bitflags 2.4.2",
+]
+
+[[package]]
 name = "xkbcommon"
 version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -12663,7 +12907,9 @@ name = "xtask"
 version = "0.1.0"
 dependencies = [
  "anyhow",
+ "cargo_toml",
  "clap 4.4.4",
+ "toml 0.8.10",
 ]
 
 [[package]]
@@ -12756,13 +13002,12 @@ dependencies = [
 
 [[package]]
 name = "zed"
-version = "0.135.2"
+version = "0.137.6"
 dependencies = [
  "activity_indicator",
  "anyhow",
  "assets",
  "assistant",
- "assistant2",
  "audio",
  "auto_update",
  "backtrace",
@@ -12773,7 +13018,6 @@ dependencies = [
  "clap 4.4.4",
  "cli",
  "client",
- "clock",
  "collab_ui",
  "collections",
  "command_palette",
@@ -12795,6 +13039,7 @@ dependencies = [
  "go_to_line",
  "gpui",
  "headless",
+ "http 0.1.0",
  "image_viewer",
  "inline_completion_button",
  "install_cli",
@@ -12804,6 +13049,7 @@ dependencies = [
  "language_selector",
  "language_tools",
  "languages",
+ "libc",
  "log",
  "markdown_preview",
  "menu",
@@ -12856,7 +13102,7 @@ dependencies = [
 
 [[package]]
 name = "zed_astro"
-version = "0.0.1"
+version = "0.0.2"
 dependencies = [
  "zed_extension_api 0.0.4",
 ]
@@ -12905,7 +13151,7 @@ dependencies = [
 
 [[package]]
 name = "zed_emmet"
-version = "0.0.2"
+version = "0.0.3"
 dependencies = [
  "zed_extension_api 0.0.4",
 ]
@@ -12948,7 +13194,7 @@ dependencies = [
 
 [[package]]
 name = "zed_gleam"
-version = "0.1.1"
+version = "0.1.3"
 dependencies = [
  "zed_extension_api 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
@@ -12969,9 +13215,9 @@ dependencies = [
 
 [[package]]
 name = "zed_html"
-version = "0.0.1"
+version = "0.1.1"
 dependencies = [
- "zed_extension_api 0.0.4",
+ "zed_extension_api 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -12990,7 +13236,7 @@ dependencies = [
 
 [[package]]
 name = "zed_php"
-version = "0.0.2"
+version = "0.0.3"
 dependencies = [
  "zed_extension_api 0.0.4",
 ]
@@ -13010,6 +13256,13 @@ dependencies = [
 ]
 
 [[package]]
+name = "zed_ruby"
+version = "0.0.4"
+dependencies = [
+ "zed_extension_api 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
 name = "zed_svelte"
 version = "0.0.1"
 dependencies = [
@@ -13039,7 +13292,7 @@ dependencies = [
 
 [[package]]
 name = "zed_vue"
-version = "0.0.1"
+version = "0.0.2"
 dependencies = [
  "zed_extension_api 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
diff --git a/pkgs/by-name/ze/zed-editor/package.nix b/pkgs/by-name/ze/zed-editor/package.nix
index 5b0e8f746e612..71482e5540f23 100644
--- a/pkgs/by-name/ze/zed-editor/package.nix
+++ b/pkgs/by-name/ze/zed-editor/package.nix
@@ -4,6 +4,7 @@
   fetchFromGitHub,
   copyDesktopItems,
   curl,
+  perl,
   pkg-config,
   protobuf,
   xcbuild,
@@ -26,13 +27,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "zed";
-  version = "0.135.2";
+  version = "0.137.6";
 
   src = fetchFromGitHub {
     owner = "zed-industries";
     repo = "zed";
     rev = "refs/tags/v${version}";
-    hash = "sha256-XnfTrcLKjJH42l9L9KxogMhNQ2u/8G4fyd6i/0dO5S0=";
+    hash = "sha256-1shK+Q8LTRaIXDqDLdJVsB4sAg2u5Kz0NXKf5jCniOU=";
     fetchSubmodules = true;
   };
 
@@ -40,19 +41,18 @@ rustPlatform.buildRustPackage rec {
     lockFile = ./Cargo.lock;
     outputHashes = {
       "async-pipe-0.1.3" = "sha256-g120X88HGT8P6GNCrzpS5SutALx5H+45Sf4iSSxzctE=";
-      "blade-graphics-0.4.0" = "sha256-U8278YkskWE1E60JVTx4hRv4322EV9jz8fzJkBTG3R8=";
+      "blade-graphics-0.4.0" = "sha256-w5BTv/40Zy94dmoZUpVVWrhzR2IaGAIJ0Ftsw1v/R9Y=";
       "font-kit-0.11.0" = "sha256-+4zMzjFyMS60HfLMEXGfXqKn6P+pOngLA45udV09DM8=";
       "heed-0.20.0-alpha.9" = "sha256-8bzoMmfKS+6AmeTzh0/F7WM9OBdIex+NYFER28bpA/s=";
-      "lsp-types-0.94.1" = "sha256-kplgPsafrgZFMI1D9pQCwmg+FKMn5HNWLbcgdXHUFVU=";
+      "lsp-types-0.95.1" = "sha256-ZWgQH7sUkP51oni2rqYX8Fsme/bGQV1TL5SbmEAhATU=";
       "nvim-rs-0.6.0-pre" = "sha256-bdWWuCsBv01mnPA5e5zRpq48BgOqaqIcAu+b7y1NnM8=";
       "pathfinder_simd-0.5.3" = "sha256-bakBcAQZJdHQPXybe0zoMzE49aOHENQY7/ZWZUMt+pM=";
-      "taffy-0.3.11" = "sha256-0hXOEj6IjSW8e1t+rvxBFX6V9XRum3QO2Des1XlHJEw=";
       "tree-sitter-0.20.100" = "sha256-xZDWAjNIhWC2n39H7jJdKDgyE/J6+MAVSa8dHtZ6CLE=";
       "tree-sitter-bash-0.20.4" = "sha256-VP7rJfE/k8KV1XN1w5f0YKjCnDMYU1go/up0zj1mabM=";
       "tree-sitter-cpp-0.20.0" = "sha256-2QYEFkpwcRmh2kf4qEAL2a5lGSa316CetOhF73e7rEM=";
       "tree-sitter-css-0.19.0" = "sha256-5Qti/bFac2A1PJxqZEOuSLK3GGKYwPDKAp3OOassBxU=";
       "tree-sitter-elixir-0.1.0" = "sha256-hBHqQ3eBjknRPJjP+lQJU6NPFhUMtiv4FbKsTw28Bog=";
-      "tree-sitter-go-0.19.1" = "sha256-5+L5QqVjZyeh+sKfxKZWrjIBFE5xM9KZlHcLiHzJCIA=";
+      "tree-sitter-go-0.20.0" = "sha256-/mE21JSa3LWEiOgYPJcq0FYzTbBuNwp9JdZTZqmDIUU=";
       "tree-sitter-gomod-1.0.2" = "sha256-OPtqXe6OMC9c5dgFH8Msj+6DU01LvLKVbCzGLj0PnLI=";
       "tree-sitter-gowork-0.0.1" = "sha256-lM4L4Ap/c8uCr4xUw9+l/vaGb3FxxnuZI0+xKYFDPVg=";
       "tree-sitter-heex-0.0.1" = "sha256-6LREyZhdTDt3YHVRPDyqCaDXqcsPlHOoMFDb2B3+3xM=";
@@ -62,12 +62,14 @@ rustPlatform.buildRustPackage rec {
       "tree-sitter-proto-0.0.2" = "sha256-W0diP2ByAXYrc7Mu/sbqST6lgVIyHeSBmH7/y/X3NhU=";
       "tree-sitter-typescript-0.20.2" = "sha256-cpOAtfvlffS57BrXaoa2xa9NUYw0AsHxVI8PrcpgZCQ=";
       "tree-sitter-yaml-0.0.1" = "sha256-S59jLlipBI2kwFuZDMmpv0TOZpGyXpbAizN3yC6wJ5I=";
+      "xim-0.4.0" = "sha256-vxu3tjkzGeoRUj7vyP0vDGI7fweX8Drgy9hwOUOEQIA=";
     };
   };
 
   nativeBuildInputs = [
     copyDesktopItems
     curl
+    perl
     pkg-config
     protobuf
     rustPlatform.bindgenHook
@@ -127,11 +129,8 @@ rustPlatform.buildRustPackage rec {
   '';
 
   checkFlags = lib.optionals stdenv.hostPlatform.isLinux [
-    # Fails with "On 2823 Failed to find test1:A"
-    "--skip=test_base_keymap"
-    # Fails with "called `Result::unwrap()` on an `Err` value: Invalid keystroke `cmd-k`"
-    # https://github.com/zed-industries/zed/issues/10427
-    "--skip=test_disabled_keymap_binding"
+    # Fails on certain hosts (including Hydra) for unclear reason
+    "--skip=test_open_paths_action"
   ];
 
   postInstall = ''
diff --git a/pkgs/by-name/ze/zesarux/package.nix b/pkgs/by-name/ze/zesarux/package.nix
index 096f4bf2b0ec9..b75e4ade88ebf 100644
--- a/pkgs/by-name/ze/zesarux/package.nix
+++ b/pkgs/by-name/ze/zesarux/package.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , SDL2
 , aalib
 , alsa-lib
diff --git a/pkgs/by-name/zf/zfind/package.nix b/pkgs/by-name/zf/zfind/package.nix
new file mode 100644
index 0000000000000..8cf9697ce1070
--- /dev/null
+++ b/pkgs/by-name/zf/zfind/package.nix
@@ -0,0 +1,37 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+}:
+
+buildGoModule rec {
+  pname = "zfind";
+  version = "0.4.3";
+
+  src = fetchFromGitHub {
+    owner = "laktak";
+    repo = "zfind";
+    rev = "v${version}";
+    hash = "sha256-Nc7C0aauv/SChChAtyA089y6qTuaC9ClVz/u5QgJLPk=";
+  };
+
+  vendorHash = "sha256-WF5jeTeTK99MRNrIW80jYuyH60Rc/EVBW6owUCIyosE=";
+
+  ldflags = [
+    "-X"
+    "main.appVersion=${version}"
+  ];
+
+  meta = with lib; {
+    description = "CLI for file search with SQL like syntax.";
+    longDescription = ''
+      zfind allows you to search for files, including inside tar, zip, 7z and rar archives.
+      It makes finding files easy with a filter syntax that is similar to an SQL-WHERE clause.
+    '';
+    homepage = "https://github.com/laktak/zfind";
+    changelog = "https://github.com/laktak/zfind/releases/tag/v${version}";
+    license = licenses.mit;
+    mainProgram = "zfind";
+    maintainers = with maintainers; [ eeedean ];
+  };
+}
diff --git a/pkgs/development/compilers/zig/shell-completions.nix b/pkgs/by-name/zi/zig-shell-completions/package.nix
index 44773cf9a553e..f9ba4d0886ba2 100644
--- a/pkgs/development/compilers/zig/shell-completions.nix
+++ b/pkgs/by-name/zi/zig-shell-completions/package.nix
@@ -1,8 +1,9 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, installShellFiles
-, unstableGitUpdater
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  installShellFiles,
+  unstableGitUpdater,
 }:
 
 stdenv.mkDerivation (finalAttrs: {
diff --git a/pkgs/by-name/zm/zmkBATx/package.nix b/pkgs/by-name/zm/zmkBATx/package.nix
new file mode 100644
index 0000000000000..82e49e99c95ee
--- /dev/null
+++ b/pkgs/by-name/zm/zmkBATx/package.nix
@@ -0,0 +1,51 @@
+{
+  stdenv,
+  fetchFromGitHub,
+  lib,
+  qt6,
+  pkg-config,
+  dbus,
+  simpleBluez,
+  simpleDBus,
+}:
+stdenv.mkDerivation (finalAttrs: {
+  pname = "zmkBATx";
+
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "mh4x0f";
+    repo = "zmkBATx";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-xbiwRHVTuaZDH3RZlMK2CpKBThtS8g6q5r3C+OccDZg=";
+  };
+
+  nativeBuildInputs = [
+    qt6.wrapQtAppsHook
+    pkg-config
+    qt6.qmake
+  ];
+
+  buildInputs = [
+    qt6.qtbase
+    qt6.qtconnectivity
+    dbus.lib
+    simpleBluez
+    simpleDBus
+  ];
+
+  postPatch = ''
+    substituteInPlace zmkBATx.pro --replace-fail "/usr/include/dbus-1.0" "${dbus.dev}/include/dbus-1.0"
+    substituteInPlace zmkBATx.pro --replace-fail "/usr/lib/x86_64-linux-gnu/dbus-1.0/include" "${dbus.lib}/lib/dbus-1.0/include"
+  '';
+
+  meta = with lib; {
+    description = "Battery monitoring for ZMK split keyboards";
+    longDescription = "Opensource tool for peripheral battery monitoring zmk split keyboard over BLE for linux.";
+    homepage = "https://github.com/mh4x0f/zmkBATx";
+    license = licenses.mit;
+    mainProgram = "zmkbatx";
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ aciceri ];
+  };
+})
diff --git a/pkgs/by-name/zo/zola/package.nix b/pkgs/by-name/zo/zola/package.nix
index 8d0cb6722ef8a..2b25b1fd346b8 100644
--- a/pkgs/by-name/zo/zola/package.nix
+++ b/pkgs/by-name/zo/zola/package.nix
@@ -46,7 +46,7 @@ rustPlatform.buildRustPackage rec {
   passthru.tests.version = testers.testVersion { package = zola; };
 
   meta = with lib; {
-    description = "A fast static site generator with everything built-in";
+    description = "Fast static site generator with everything built-in";
     mainProgram = "zola";
     homepage = "https://www.getzola.org/";
     changelog = "https://github.com/getzola/zola/raw/v${version}/CHANGELOG.md";
diff --git a/pkgs/by-name/zo/zoraxy/package.nix b/pkgs/by-name/zo/zoraxy/package.nix
new file mode 100644
index 0000000000000..5feddb6072a51
--- /dev/null
+++ b/pkgs/by-name/zo/zoraxy/package.nix
@@ -0,0 +1,42 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+}:
+
+buildGoModule rec {
+  pname = "zoraxy";
+  version = "3.0.6";
+  src = fetchFromGitHub {
+    owner = "tobychui";
+    repo = "zoraxy";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-Pv7Ey3d07+gJfMyQxC5Do0g5HZGcPXttpvmN0YNjXvY=";
+  };
+
+  sourceRoot = "${src.name}/src";
+
+  vendorHash = "sha256-YI6LSccPDnVhGyPIEFIF41ex0WJlHtb3nP+8+1G/LA0=";
+
+  checkFlags =
+    let
+      # Skip tests that require network access
+      skippedTests = [
+        "TestExtractIssuerNameFromPEM"
+        "TestReplaceLocationHost"
+        "TestReplaceLocationHostRelative"
+        "TestHandleTraceRoute"
+        "TestHandlePing"
+      ];
+    in
+    [ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ];
+
+  meta = {
+    description = "General purpose HTTP reverse proxy and forwarding tool written in Go";
+    homepage = "https://zoraxy.arozos.com/";
+    changelog = "https://github.com/tobychui/zoraxy/blob/v${version}/CHANGELOG.md";
+    license = lib.licenses.agpl3Only;
+    maintainers = [ lib.maintainers.luftmensch-luftmensch ];
+    mainProgram = "zoraxy";
+  };
+}
diff --git a/pkgs/applications/office/zotero/zotero_7.nix b/pkgs/by-name/zo/zotero-beta/package.nix
index ae8cc9e9fa6f6..2aca01589119e 100644
--- a/pkgs/applications/office/zotero/zotero_7.nix
+++ b/pkgs/by-name/zo/zotero-beta/package.nix
@@ -2,104 +2,60 @@
 , stdenv
 , fetchurl
 , wrapGAppsHook3
-, autoPatchelfHook
 , makeDesktopItem
+, alsa-lib
 , atk
 , cairo
-, coreutils
-, curl
-, cups
 , dbus-glib
-, dbus
-, dconf
-, fontconfig
-, freetype
 , gdk-pixbuf
 , glib
-, glibc
 , gtk3
-, libX11
-, libXScrnSaver
-, libxcb
-, libXcomposite
-, libXcursor
-, libXdamage
-, libXext
-, libXfixes
-, libXi
-, libXinerama
-, libXrender
-, libXt
-, libnotify
-, gnome
-, libGLU
 , libGL
-, nspr
-, nss
+, xorg
+, mesa
 , pango
-, gsettings-desktop-schemas
-, alsa-lib
-, libXtst
+, pciutils
 }:
 
 stdenv.mkDerivation rec {
   pname = "zotero";
-  version = "7.0.0-beta";
+  version = "7.0.0-beta.83+066eda731";
 
-  src = fetchurl {
-    url = "https://download.zotero.org/client/beta/${version}.65%2Bb047f3d90/Zotero-${version}.65%2Bb047f3d90_linux-x86_64.tar.bz2";
-    hash = "sha256-e7T/hvb8bFb4hkouihBkgqUu4ugYoUMHNVKxh0r/WUM=";
-  };
+  src =
+    let
+      escapedVersion = lib.replaceStrings ["+"] ["%2B"] version;
+    in
+    fetchurl {
+      url = "https://download.zotero.org/client/beta/${escapedVersion}/Zotero-${escapedVersion}_linux-x86_64.tar.bz2";
+      hash = "sha256-wqew12/Icv4XS+IJRVcf1Rh/ipqBhe8QGkP8ErfS4J0=";
+    };
 
-  nativeBuildInputs = [
-    wrapGAppsHook3
-    autoPatchelfHook
-  ];
-  buildInputs = [
-    gsettings-desktop-schemas
-    glib
-    gtk3
-    gnome.adwaita-icon-theme
-    dconf
-    libXtst
+  dontPatchELF = true;
+  nativeBuildInputs = [ wrapGAppsHook3 ];
+
+  libPath = lib.makeLibraryPath [
     alsa-lib
-    stdenv.cc.cc
     atk
     cairo
-    curl
-    cups
     dbus-glib
-    dbus
-    fontconfig
-    freetype
     gdk-pixbuf
     glib
-    glibc
     gtk3
-    libX11
-    libXScrnSaver
-    libXcomposite
-    libXcursor
-    libxcb
-    libXdamage
-    libXext
-    libXfixes
-    libXi
-    libXinerama
-    libXrender
-    libXt
-    libnotify
-    libGLU
     libGL
-    nspr
-    nss
+    xorg.libX11
+    xorg.libXcomposite
+    xorg.libXcursor
+    xorg.libXdamage
+    xorg.libXext
+    xorg.libXfixes
+    xorg.libXi
+    xorg.libXrandr
+    xorg.libXtst
+    xorg.libxcb
+    mesa
     pango
-  ];
-
-  dontConfigure = true;
-  dontBuild = true;
-  dontStrip = true;
-
+    pciutils
+  ] + ":" + lib.makeSearchPathOutput "lib" "lib64" [ stdenv.cc.cc ];
 
   desktopItem = makeDesktopItem {
     name = "zotero";
@@ -113,32 +69,41 @@ stdenv.mkDerivation rec {
     mimeTypes = [ "x-scheme-handler/zotero" "text/plain" ];
   };
 
-
   installPhase = ''
     runHook preInstall
 
+    # Copy package contents to the output directory
     mkdir -p "$prefix/usr/lib/zotero-bin-${version}"
     cp -r * "$prefix/usr/lib/zotero-bin-${version}"
     mkdir -p "$out/bin"
     ln -s "$prefix/usr/lib/zotero-bin-${version}/zotero" "$out/bin/"
 
-    # install desktop file and icons.
+    # Install desktop file and icons
     mkdir -p $out/share/applications
     cp ${desktopItem}/share/applications/* $out/share/applications/
     for size in 32 64 128; do
-      install -Dm444 icons/icon$size.png \
+      install -Dm444 icons/icon''${size}.png \
         $out/share/icons/hicolor/''${size}x''${size}/apps/zotero.png
     done
     install -Dm444 icons/symbolic.svg \
-        $out/share/icons/hicolor/symbolic/apps/zotero-symbolic.svg
+      $out/share/icons/hicolor/symbolic/apps/zotero-symbolic.svg
 
     runHook postInstall
   '';
 
-  preFixup = ''
-    gappsWrapperArgs+=(
-      --prefix PATH : ${lib.makeBinPath [ coreutils ]}
-    )
+  postFixup = ''
+    for executable in \
+      zotero-bin plugin-container updater vaapitest \
+      minidump-analyzer glxtest
+    do
+      if [ -e "$out/usr/lib/zotero-bin-${version}/$executable" ]; then
+        patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+          "$out/usr/lib/zotero-bin-${version}/$executable"
+      fi
+    done
+    find . -executable -type f -exec \
+      patchelf --set-rpath "$libPath" \
+        "$out/usr/lib/zotero-bin-${version}/{}" \;
   '';
 
   meta = with lib; {
@@ -148,6 +113,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.agpl3Only;
     platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ atila ];
+    maintainers = with maintainers; [ atila justanotherariel ];
   };
 }
diff --git a/pkgs/by-name/zp/zpaqfranz/package.nix b/pkgs/by-name/zp/zpaqfranz/package.nix
index f0c3f8721a6a2..e951b59eb4679 100644
--- a/pkgs/by-name/zp/zpaqfranz/package.nix
+++ b/pkgs/by-name/zp/zpaqfranz/package.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "zpaqfranz";
-  version = "59.6";
+  version = "59.8";
 
   src = fetchFromGitHub {
     owner = "fcorbelli";
     repo = "zpaqfranz";
     rev = finalAttrs.version;
-    hash = "sha256-qDiFYVIaMEETYPDX+zIix+Si4RHsEveBhZXeAEALO2I=";
+    hash = "sha256-N3R/M0TS8XzRilQT4NFqIlfo2NqfunA38IrQBz5uaPg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/zp/zpix-pixel-font/package.nix b/pkgs/by-name/zp/zpix-pixel-font/package.nix
index 6a785c9d8fac4..50f3dd352ca13 100644
--- a/pkgs/by-name/zp/zpix-pixel-font/package.nix
+++ b/pkgs/by-name/zp/zpix-pixel-font/package.nix
@@ -30,7 +30,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A pixel font supporting multiple languages like English, Chinese and Japanese";
+    description = "Pixel font supporting multiple languages like English, Chinese and Japanese";
     homepage = "https://github.com/SolidZORO/zpix-pixel-font/";
     changelog = "https://github.com/SolidZORO/zpix-pixel-font/blob/master/CHANGELOG.md";
     license = licenses.unfree;
diff --git a/pkgs/by-name/zs/zs/package.nix b/pkgs/by-name/zs/zs/package.nix
index cb487888b5246..7aec860bafa0f 100644
--- a/pkgs/by-name/zs/zs/package.nix
+++ b/pkgs/by-name/zs/zs/package.nix
@@ -31,7 +31,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "An extremely minimal static site generator written in Go";
+    description = "Extremely minimal static site generator written in Go";
     homepage = "https://git.mills.io/prologic/zs";
     changelog = "https://git.mills.io/prologic/zs/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/by-name/zs/zsh-wd/package.nix b/pkgs/by-name/zs/zsh-wd/package.nix
new file mode 100644
index 0000000000000..dec73b7227656
--- /dev/null
+++ b/pkgs/by-name/zs/zsh-wd/package.nix
@@ -0,0 +1,37 @@
+{ lib, stdenvNoCC, fetchFromGitHub, installShellFiles }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "wd";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    owner = "mfaerevaag";
+    repo = "wd";
+    rev = "v${version}";
+    sha256 = "sha256-Zc49X/8T66xnDkfotf0p6AVyHHd4P3eNDMOsO1sUryY=";
+  };
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  installPhase = ''
+    install -Dm755 wd.plugin.zsh $out/share/wd/wd.plugin.zsh
+    install -Dm755 wd.sh $out/share/wd/wd.sh
+    installManPage wd.1
+    installShellCompletion --zsh _wd.sh
+  '';
+
+  meta = with lib; {
+    description = "Jump to custom directories in zsh";
+    longDescription = ''
+      `wd` (warp directory) lets you jump to custom directories in zsh, without
+      using `cd`. Why? Because `cd` seems inefficient when the folder is
+      frequently visited or has a long path.
+    '';
+    homepage = "https://github.com/mfaerevaag/wd";
+    changelog = "https://github.com/mfaerevaag/wd/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = [ maintainers.zimeg ];
+    mainProgram = "wd";
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/by-name/zx/zxtune/package.nix b/pkgs/by-name/zx/zxtune/package.nix
index e406afbb681bd..11a283a4eb2ba 100644
--- a/pkgs/by-name/zx/zxtune/package.nix
+++ b/pkgs/by-name/zx/zxtune/package.nix
@@ -25,6 +25,8 @@
 , withQt ? true
 , qt5
 , zip
+, makeDesktopItem
+, copyDesktopItems
 }:
 let
   dlopenBuildInputs = []
@@ -58,7 +60,11 @@ in stdenv.mkDerivation rec {
 
   strictDeps = true;
 
-  nativeBuildInputs = lib.optionals withQt [ zip qt5.wrapQtAppsHook ];
+  nativeBuildInputs = lib.optionals withQt [
+    zip
+    qt5.wrapQtAppsHook
+    copyDesktopItems
+  ];
 
   buildInputs = staticBuildInputs ++ dlopenBuildInputs;
 
@@ -118,6 +124,7 @@ in stdenv.mkDerivation rec {
     install -Dm755 bin/linux/release/zxtune123 -t $out/bin
   '' + lib.optionalString withQt ''
     install -Dm755 bin/linux/release/zxtune-qt -t $out/bin
+    install -Dm755 apps/zxtune-qt/res/theme_default/zxtune.png -t $out/share/icons/hicolor/48x48/apps
   '' + ''
     runHook postInstall
   '';
@@ -128,6 +135,17 @@ in stdenv.mkDerivation rec {
     wrapQtApp "$out/bin/zxtune-qt"
   '';
 
+  desktopItems = lib.optionals withQt [(makeDesktopItem {
+    name = "ZXTune";
+    exec = "zxtune-qt";
+    icon = "zxtune";
+    desktopName = "ZXTune";
+    genericName = "ZXTune";
+    comment = meta.description;
+    categories = [ "Audio" ];
+    type = "Application";
+  })];
+
   meta = with lib; {
     description = "Crossplatform chiptunes player";
     longDescription = ''
diff --git a/pkgs/common-updater/scripts/update-source-version b/pkgs/common-updater/scripts/update-source-version
index 75ad6e7a5cf55..8196c81054e2a 100755
--- a/pkgs/common-updater/scripts/update-source-version
+++ b/pkgs/common-updater/scripts/update-source-version
@@ -12,9 +12,12 @@ usage() {
     echo "Usage: $scriptName <attr> <version> [<new-source-hash>] [<new-source-url>]"
     echo "                              [--version-key=<version-key>] [--source-key=<source-key>]"
     echo "                              [--system=<system>] [--file=<file-to-update>] [--rev=<revision>]"
-    echo "                              [--ignore-same-hash] [--print-changes]"
+    echo "                              [--ignore-same-hash] [--ignore-same-version] [--print-changes]"
+    echo ""
+    echo "The <version> positional argument is also optional when passing --ignore-same-version."
 }
 
+ignoreSameVersion=
 args=()
 
 for arg in "$@"; do
@@ -41,6 +44,9 @@ for arg in "$@"; do
         --ignore-same-hash)
             ignoreSameHash="true"
         ;;
+        --ignore-same-version)
+            ignoreSameVersion="true"
+        ;;
         --print-changes)
             printChanges="true"
         ;;
@@ -67,7 +73,13 @@ newUrl=${args[3]}
 # Third-party repositories might not accept arguments in their default.nix.
 importTree="(let tree = import ./.; in if builtins.isFunction tree then tree {} else tree)"
 
-if (( "${#args[*]}" < 2 )); then
+if [[ -z "$ignoreSameVersion" ]]; then
+    requiredArgs=2
+else
+    requiredArgs=1
+fi
+
+if (( "${#args[*]}" < $requiredArgs )); then
     echo "$scriptName: Too few arguments"
     usage
     exit 1
@@ -139,7 +151,11 @@ if [[ -z "$oldVersion" ]]; then
     die "Couldn't find out the old version of '$attr'!"
 fi
 
-if [[ "$oldVersion" = "$newVersion" ]]; then
+if [[ -n "$ignoreSameVersion" && -z "$newVersion" ]]; then
+    newVersion="$oldVersion"
+fi
+
+if [[ -z "$ignoreSameVersion" && "$oldVersion" = "$newVersion" ]]; then
     echo "$scriptName: New version same as old version, nothing to do." >&2
     if [ -n "$printChanges" ]; then
         printf '[]\n'
@@ -198,10 +214,12 @@ fi
 oldHashEscaped=$(echo "$oldHash" | sed -re 's|[+]|\\&|g')
 tempHashEscaped=$(echo "$tempHash" | sed -re 's|[+]|\\&|g')
 
-# Replace new version
-sed -i.cmp "$nixFile" -re "$pattern"
-if cmp -s "$nixFile" "$nixFile.cmp"; then
-    die "Failed to replace version '$oldVersion' to '$newVersion' in '$attr'!"
+if [[ "$oldVersion" != "$newVersion" ]]; then
+    # Replace new version
+    sed -i.cmp "$nixFile" -re "$pattern"
+    if cmp -s "$nixFile" "$nixFile.cmp"; then
+        die "Failed to replace version '$oldVersion' to '$newVersion' in '$attr'!"
+    fi
 fi
 
 # Replace new URL
diff --git a/pkgs/common-updater/unstable-updater.nix b/pkgs/common-updater/unstable-updater.nix
index d7a9c73fbc2d6..e6981f633534b 100644
--- a/pkgs/common-updater/unstable-updater.nix
+++ b/pkgs/common-updater/unstable-updater.nix
@@ -14,7 +14,7 @@
 
 { url ? null # The git url, if empty it will be set to src.gitRepoUrl
 , branch ? null
-, hardcodeZeroVersion ? false # Use a made-up version "0" instead of latest tag. Use when there is no previous release, or the project's tagging system is incompatible with what we expect from versions
+, hardcodeZeroVersion ? false # Use a made-up version "0" instead of latest tag. Use when the project's tagging system is incompatible with what we expect from versions
 , tagFormat ? "*" # A `git describe --tags --match '<format>'` pattern that tags must match to be considered
 , tagPrefix ? null # strip this prefix from a tag name
 , tagConverter ? null # A command to convert more complex tag formats. It receives the git tag via stdin and should convert it into x.y.z format to stdout
diff --git a/pkgs/data/documentation/man-pages/default.nix b/pkgs/data/documentation/man-pages/default.nix
index 3ea67ac4501dd..1a58c4380a767 100644
--- a/pkgs/data/documentation/man-pages/default.nix
+++ b/pkgs/data/documentation/man-pages/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "man-pages";
-  version = "6.8";
+  version = "6.9";
 
   src = fetchurl {
     url = "mirror://kernel/linux/docs/man-pages/${pname}-${version}.tar.xz";
-    hash = "sha256-ucawpCD4ORSL4EsvwTqFaSMTco1U1HxpyKE4N5Zl0iY=";
+    hash = "sha256-0Uyv9UzGYvNLG3C89i1OJ+TC/SYGcqNbbnSvcbP3H4g=";
   };
 
   makeFlags = [
diff --git a/pkgs/data/documentation/nginx-doc/default.nix b/pkgs/data/documentation/nginx-doc/default.nix
index c367912d6f982..4c0409e2e19c9 100644
--- a/pkgs/data/documentation/nginx-doc/default.nix
+++ b/pkgs/data/documentation/nginx-doc/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A reverse proxy and lightweight webserver (documentation)";
+    description = "Reverse proxy and lightweight webserver (documentation)";
     homepage    = "https://nginx.org/";
     license     = licenses.bsd2;
     platforms   = platforms.all;
diff --git a/pkgs/data/documentation/zeal/default.nix b/pkgs/data/documentation/zeal/default.nix
index 3dd2f1c02c94a..dc05465e0a1c3 100644
--- a/pkgs/data/documentation/zeal/default.nix
+++ b/pkgs/data/documentation/zeal/default.nix
@@ -65,7 +65,7 @@ stdenv.mkDerivation (finalAttrs: {
   ++ lib.optionals isQt5 [ qtx11extras ];
 
   meta = {
-    description = "A simple offline API documentation browser";
+    description = "Simple offline API documentation browser";
     longDescription = ''
       Zeal is a simple offline API documentation browser inspired by Dash (macOS
       app), available for Linux and Windows.
diff --git a/pkgs/data/fonts/0xproto/default.nix b/pkgs/data/fonts/0xproto/default.nix
index 6a0cf9b5f11e3..9b7fd3959362e 100644
--- a/pkgs/data/fonts/0xproto/default.nix
+++ b/pkgs/data/fonts/0xproto/default.nix
@@ -4,14 +4,14 @@
 }:
 stdenvNoCC.mkDerivation rec {
   pname = "0xproto";
-  version = "2.000";
+  version = "2.100";
 
   src = let
     underscoreVersion = builtins.replaceStrings ["."] ["_"] version;
   in
     fetchzip {
       url = "https://github.com/0xType/0xProto/releases/download/${version}/0xProto_${underscoreVersion}.zip";
-      hash = "sha256-ekoCvN3A0mrYUwIG61508bRAvLdOa+MQ4IXPWE5zKHw=";
+      hash = "sha256-hUQGCsktnun9924+k6ECQuQ1Ddl/qGmtuLWERh/vDpc=";
     };
 
   installPhase = ''
diff --git a/pkgs/data/fonts/aileron/default.nix b/pkgs/data/fonts/aileron/default.nix
index c52824dbe1208..fa92d92960692 100644
--- a/pkgs/data/fonts/aileron/default.nix
+++ b/pkgs/data/fonts/aileron/default.nix
@@ -24,7 +24,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
-    description = "A helvetica font in nine weights";
+    description = "Helvetica font in nine weights";
     platforms = platforms.all;
     maintainers = with maintainers; [ leenaars minijackson ];
     license = licenses.cc0;
diff --git a/pkgs/data/fonts/alegreya/default.nix b/pkgs/data/fonts/alegreya/default.nix
index b2ec1de0cc898..03efbff4ebf5b 100644
--- a/pkgs/data/fonts/alegreya/default.nix
+++ b/pkgs/data/fonts/alegreya/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An elegant and versatile font family for comfortable reading";
+    description = "Elegant and versatile font family for comfortable reading";
     longDescription = ''
 Alegreya is a typeface originally intended for literature. Among its crowning characteristics, it conveys a dynamic and varied rhythm which facilitates the reading of long texts. Also, it provides freshness to the page while referring to the calligraphic letter, not as a literal interpretation, but rather in a contemporary typographic language.
 
diff --git a/pkgs/data/fonts/alkalami/default.nix b/pkgs/data/fonts/alkalami/default.nix
index eb0c3ed79262e..b9dfd27e57968 100644
--- a/pkgs/data/fonts/alkalami/default.nix
+++ b/pkgs/data/fonts/alkalami/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://software.sil.org/alkalami/";
-    description = "A font for Arabic-based writing systems in the Kano region of Nigeria and in Niger";
+    description = "Font for Arabic-based writing systems in the Kano region of Nigeria and in Niger";
     license = licenses.ofl;
     maintainers = [ maintainers.vbgl ];
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/amiri/default.nix b/pkgs/data/fonts/amiri/default.nix
index bfd7c60bf5310..de65e7fb18b73 100644
--- a/pkgs/data/fonts/amiri/default.nix
+++ b/pkgs/data/fonts/amiri/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A classical Arabic typeface in Naskh style";
+    description = "Classical Arabic typeface in Naskh style";
     homepage = "https://www.amirifont.org/";
     license = licenses.ofl;
     maintainers = [ maintainers.vbgl ];
diff --git a/pkgs/data/fonts/andika/default.nix b/pkgs/data/fonts/andika/default.nix
index 22900b4b7fcd5..897c4ab3c5d1b 100644
--- a/pkgs/data/fonts/andika/default.nix
+++ b/pkgs/data/fonts/andika/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://software.sil.org/andika";
-    description = "A family designed especially for literacy use taking into account the needs of beginning readers";
+    description = "Family designed especially for literacy use taking into account the needs of beginning readers";
     longDescription = ''
       Andika is a sans serif, Unicode-compliant font designed especially for literacy use, taking into account the needs of beginning readers. The focus is on clear, easy-to-perceive letterforms that will not be readily confused with one another.
 
diff --git a/pkgs/data/fonts/barlow/default.nix b/pkgs/data/fonts/barlow/default.nix
index ad1d985c31e67..ebdebb8253846 100644
--- a/pkgs/data/fonts/barlow/default.nix
+++ b/pkgs/data/fonts/barlow/default.nix
@@ -23,7 +23,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A grotesk variable font superfamily";
+    description = "Grotesk variable font superfamily";
     homepage = "https://tribby.com/fonts/barlow/";
     license = licenses.ofl;
     maintainers = [ ];
diff --git a/pkgs/data/fonts/behdad-fonts/default.nix b/pkgs/data/fonts/behdad-fonts/default.nix
index 143975f28db79..f7305e9de9872 100644
--- a/pkgs/data/fonts/behdad-fonts/default.nix
+++ b/pkgs/data/fonts/behdad-fonts/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/font-store/BehdadFont";
-    description = "A Persian/Arabic Open Source Font";
+    description = "Persian/Arabic Open Source Font";
     license = licenses.ofl;
     platforms = platforms.all;
     maintainers = [ ];
diff --git a/pkgs/data/fonts/blackout/default.nix b/pkgs/data/fonts/blackout/default.nix
index 44cb10b408e9c..2a69a5e2dbf91 100644
--- a/pkgs/data/fonts/blackout/default.nix
+++ b/pkgs/data/fonts/blackout/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A bad-ass, unholy-mother-shut-your-mouth stencil sans-serif";
+    description = "Bad-ass, unholy-mother-shut-your-mouth stencil sans-serif";
     longDescription = ''
       Eats holes for breakfast lunch and dinner. Inspired by filling in
       sans-serif newspaper headlines. Continually updated with coffee and
diff --git a/pkgs/data/fonts/bqn386/default.nix b/pkgs/data/fonts/bqn386/default.nix
index de1be0cc6f55e..35c59a39f37ce 100644
--- a/pkgs/data/fonts/bqn386/default.nix
+++ b/pkgs/data/fonts/bqn386/default.nix
@@ -23,7 +23,7 @@ stdenvNoCC.mkDerivation {
   '';
 
   meta = {
-    description = "An APL and BQN font extending on APL386";
+    description = "APL and BQN font extending on APL386";
     homepage = "https://dzaima.github.io/BQN386/";
     license = lib.licenses.unlicense;
     maintainers = with lib.maintainers; [ skykanin ];
diff --git a/pkgs/data/fonts/cabin/default.nix b/pkgs/data/fonts/cabin/default.nix
index 186a5359c44fd..0c6327d1e542d 100644
--- a/pkgs/data/fonts/cabin/default.nix
+++ b/pkgs/data/fonts/cabin/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A humanist sans with 4 weights and true italics";
+    description = "Humanist sans with 4 weights and true italics";
     longDescription = ''
       The Cabin font family is a humanist sans with 4 weights and true italics,
       inspired by Edward Johnston’s and Eric Gill’s typefaces, with a touch of
diff --git a/pkgs/data/fonts/caladea/default.nix b/pkgs/data/fonts/caladea/default.nix
index bd00e807309a5..b97dae690d9c7 100644
--- a/pkgs/data/fonts/caladea/default.nix
+++ b/pkgs/data/fonts/caladea/default.nix
@@ -24,7 +24,7 @@ stdenvNoCC.mkDerivation rec {
     # This font doesn't appear to have any official web site but this
     # one provides some good information and samples.
     homepage = "http://openfontlibrary.org/en/font/caladea";
-    description = "A serif font metric-compatible with Microsoft Cambria";
+    description = "Serif font metric-compatible with Microsoft Cambria";
     longDescription = ''
       Caladea is a free font that is metric-compatible with the
       Microsoft Cambria font. Developed by Carolina Giovagnoli and
diff --git a/pkgs/data/fonts/camingo-code/default.nix b/pkgs/data/fonts/camingo-code/default.nix
index c852303021d09..6bb3f02d7b1fa 100644
--- a/pkgs/data/fonts/camingo-code/default.nix
+++ b/pkgs/data/fonts/camingo-code/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.myfonts.com/fonts/jan-fromm/camingo-code/";
-    description = "A monospaced typeface designed for source-code editors";
+    description = "Monospaced typeface designed for source-code editors";
     platforms = platforms.all;
     license = licenses.cc-by-nd-30;
   };
diff --git a/pkgs/data/fonts/carlito/default.nix b/pkgs/data/fonts/carlito/default.nix
index a8b77e7d91cac..a83d8a547a15c 100644
--- a/pkgs/data/fonts/carlito/default.nix
+++ b/pkgs/data/fonts/carlito/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation rec {
     # This font doesn't appear to have any official web site but this
     # one provides some good information and samples.
     homepage = "http://openfontlibrary.org/en/font/carlito";
-    description = "A sans-serif font metric-compatible with Microsoft Calibri";
+    description = "Sans-serif font metric-compatible with Microsoft Calibri";
     longDescription = ''
       Carlito is a free font that is metric-compatible with the
       Microsoft Calibri font. The font is designed by Łukasz Dziedzic
diff --git a/pkgs/data/fonts/catamaran/default.nix b/pkgs/data/fonts/catamaran/default.nix
new file mode 100644
index 0000000000000..253f458bc4b60
--- /dev/null
+++ b/pkgs/data/fonts/catamaran/default.nix
@@ -0,0 +1,43 @@
+{
+  stdenvNoCC,
+  lib,
+  fetchzip,
+}:
+stdenvNoCC.mkDerivation rec {
+  pname = "catamaran";
+  version = "0-unstable-2024-03-02";
+
+  src = fetchzip {
+    url = "https://www.1001fonts.com/download/catamaran.zip";
+    stripRoot = false;
+    hash = "sha256-9s11lZSS4pYJZwl8Uk7qtdwfZ2bkoZkSIf1MkQlv7H4=";
+  };
+
+  stripRoot = false;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    mv *.ttf $out/share/fonts/truetype/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://fonts.google.com/specimen/Catamaran";
+    description = "A stylish sans-serif Tamil and Latin typeface";
+    longDescription = ''
+      Catamaran is a Unicode-compliant Latin and Tamil text type family designed for the digital age.
+      The Tamil is monolinear and was designed alongside the sans serif Latin and Devanagari family Palanquin.
+
+      It currently comprises of 9 text weights, making it a versatile family that strikes a balance between typographic conventions and that bit of sparkle.
+      (A catamaran is a multihulled vessel consisting of two parallel hulls of equal size.
+      The catamaran concept is a relative newcomer for Western boat designers, been used since time immemorial among the Dravidian people, in South India.)
+    '';
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [wyred50];
+  };
+}
+
diff --git a/pkgs/data/fonts/charis-sil/default.nix b/pkgs/data/fonts/charis-sil/default.nix
index b4880fd218dec..a75fabb9ae354 100644
--- a/pkgs/data/fonts/charis-sil/default.nix
+++ b/pkgs/data/fonts/charis-sil/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://software.sil.org/charis";
-    description = "A family of highly readable fonts for broad multilingual use";
+    description = "Family of highly readable fonts for broad multilingual use";
     longDescription = ''
       This Charis SIL font is essentially the same design as the SIL Charis font first released by SIL in 1997. Charis is similar to Bitstream Charter, one of the first fonts designed specifically for laser printers. It is highly readable and holds up well in less-than-ideal reproduction environments. It also has a full set of styles – regular, italic, bold, bold italic. Charis is a serif, proportionally-spaced font optimized for readability in long printed documents.
 
diff --git a/pkgs/data/fonts/chonburi/default.nix b/pkgs/data/fonts/chonburi/default.nix
index 4a14368f1f5f6..e3c4cddd7cae9 100644
--- a/pkgs/data/fonts/chonburi/default.nix
+++ b/pkgs/data/fonts/chonburi/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://cadsondemak.github.io/chonburi/";
-    description = "A Didonic Thai and Latin display typeface";
+    description = "Didonic Thai and Latin display typeface";
     longDescription = ''
       The objective of this project is to create a Thai and Latin Display
       typeface. Chonburi is a display typeface with high contrast in a Didone
diff --git a/pkgs/data/fonts/chunk/default.nix b/pkgs/data/fonts/chunk/default.nix
index fec1c043bfa19..5e92ae35b0a29 100644
--- a/pkgs/data/fonts/chunk/default.nix
+++ b/pkgs/data/fonts/chunk/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "An ultra-bold, ultra-awesome slab serif typeface";
+    description = "Ultra-bold, ultra-awesome slab serif typeface";
     longDescription = ''
       Chunk is an ultra-bold slab serif typeface that is reminiscent of old
       American Western woodcuts, broadsides, and newspaper headlines. Used
diff --git a/pkgs/data/fonts/clearlyU/default.nix b/pkgs/data/fonts/clearlyU/default.nix
index 9799955d05f38..c0824cf7d40e7 100644
--- a/pkgs/data/fonts/clearlyU/default.nix
+++ b/pkgs/data/fonts/clearlyU/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Unicode font";
+    description = "Unicode font";
     license = licenses.mit;
     maintainers = [ maintainers.raskin ];
   };
diff --git a/pkgs/data/fonts/comfortaa/default.nix b/pkgs/data/fonts/comfortaa/default.nix
index f47da9fc5306a..defdd9b86bba1 100644
--- a/pkgs/data/fonts/comfortaa/default.nix
+++ b/pkgs/data/fonts/comfortaa/default.nix
@@ -29,7 +29,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://aajohan.deviantart.com/art/Comfortaa-font-105395949";
-    description = "A clean and modern font suitable for headings and logos";
+    description = "Clean and modern font suitable for headings and logos";
     license = licenses.ofl;
     platforms = platforms.all;
     maintainers = [ maintainers.rycee ];
diff --git a/pkgs/data/fonts/comic-mono/default.nix b/pkgs/data/fonts/comic-mono/default.nix
index fc3b8d6085be9..b635c1379489d 100644
--- a/pkgs/data/fonts/comic-mono/default.nix
+++ b/pkgs/data/fonts/comic-mono/default.nix
@@ -24,7 +24,7 @@ stdenvNoCC.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A legible monospace font that looks like Comic Sans";
+    description = "Legible monospace font that looks like Comic Sans";
     longDescription = ''
       A legible monospace font... the very typeface you’ve been trained to
       recognize since childhood. This font is a fork of Shannon Miwa’s Comic
diff --git a/pkgs/data/fonts/comic-neue/default.nix b/pkgs/data/fonts/comic-neue/default.nix
index 7485d435cb23a..66eb4087efaa7 100644
--- a/pkgs/data/fonts/comic-neue/default.nix
+++ b/pkgs/data/fonts/comic-neue/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://comicneue.com/";
-    description = "A casual type face: Make your lemonade stand look like a fortune 500 company";
+    description = "Casual type face: Make your lemonade stand look like a fortune 500 company";
     longDescription = ''
       ComicNeue is inspired by Comic Sans but more regular. It was
       designed by Craig Rozynski. It is available in two variants:
diff --git a/pkgs/data/fonts/comic-relief/default.nix b/pkgs/data/fonts/comic-relief/default.nix
index c4c7648acd294..fe1c1b5128123 100644
--- a/pkgs/data/fonts/comic-relief/default.nix
+++ b/pkgs/data/fonts/comic-relief/default.nix
@@ -25,7 +25,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://fontlibrary.org/en/font/comic-relief";
-    description = "A font metric-compatible with Microsoft Comic Sans";
+    description = "Font metric-compatible with Microsoft Comic Sans";
     longDescription = ''
       Comic Relief is a typeface designed to be metrically equivalent
       to the popular Comic Sans MS. Comic Relief can be used in place
diff --git a/pkgs/data/fonts/commit-mono/default.nix b/pkgs/data/fonts/commit-mono/default.nix
index ea358bba2b556..0d952d17cbaf3 100644
--- a/pkgs/data/fonts/commit-mono/default.nix
+++ b/pkgs/data/fonts/commit-mono/default.nix
@@ -26,7 +26,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An anonymous and neutral programming typeface focused on creating a better reading experience";
+    description = "Anonymous and neutral programming typeface focused on creating a better reading experience";
     homepage = "https://commitmono.com/";
     license = licenses.ofl;
     maintainers = [ maintainers.yoavlavi ];
diff --git a/pkgs/data/fonts/cooper-hewitt/default.nix b/pkgs/data/fonts/cooper-hewitt/default.nix
index 843fb851c140f..743c1ed8a6b86 100644
--- a/pkgs/data/fonts/cooper-hewitt/default.nix
+++ b/pkgs/data/fonts/cooper-hewitt/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.cooperhewitt.org/open-source-at-cooper-hewitt/cooper-hewitt-the-typeface-by-chester-jenkins/";
-    description = "A contemporary sans serif, with characters composed of modified-geometric curves and arches";
+    description = "Contemporary sans serif, with characters composed of modified-geometric curves and arches";
     license = licenses.ofl;
     platforms = platforms.all;
     maintainers = [ ];
diff --git a/pkgs/data/fonts/cozette/default.nix b/pkgs/data/fonts/cozette/default.nix
index caf7790cab836..8150247787725 100644
--- a/pkgs/data/fonts/cozette/default.nix
+++ b/pkgs/data/fonts/cozette/default.nix
@@ -23,7 +23,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A bitmap programming font optimized for coziness";
+    description = "Bitmap programming font optimized for coziness";
     homepage = "https://github.com/slavfox/cozette";
     changelog = "https://github.com/slavfox/Cozette/blob/v.${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/data/fonts/creep/default.nix b/pkgs/data/fonts/creep/default.nix
index d25464da813fa..1c3f6ab491418 100644
--- a/pkgs/data/fonts/creep/default.nix
+++ b/pkgs/data/fonts/creep/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A pretty sweet 4px wide pixel font";
+    description = "Pretty sweet 4px wide pixel font";
     homepage = "https://github.com/romeovs/creep";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/crimson-pro/default.nix b/pkgs/data/fonts/crimson-pro/default.nix
index 29066b5ec3c33..7b302b61eb915 100644
--- a/pkgs/data/fonts/crimson-pro/default.nix
+++ b/pkgs/data/fonts/crimson-pro/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/Fonthausen/CrimsonPro";
-    description = "A professionally produced redesign of Crimson by Jacques Le Bailly";
+    description = "Professionally produced redesign of Crimson by Jacques Le Bailly";
     license = licenses.ofl;
     platforms = platforms.all;
     maintainers = with maintainers; [ ncfavier ];
diff --git a/pkgs/data/fonts/crimson/default.nix b/pkgs/data/fonts/crimson/default.nix
index 1868c897bd53b..82c9c9ace6c70 100644
--- a/pkgs/data/fonts/crimson/default.nix
+++ b/pkgs/data/fonts/crimson/default.nix
@@ -22,7 +22,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/skosch/Crimson";
-    description = "A font family inspired by beautiful oldstyle typefaces";
+    description = "Font family inspired by beautiful oldstyle typefaces";
     license = licenses.ofl;
     platforms = platforms.all;
     maintainers = [ maintainers.rycee ];
diff --git a/pkgs/data/fonts/curie/default.nix b/pkgs/data/fonts/curie/default.nix
index 5e8195211b05c..ba7d43055f95b 100644
--- a/pkgs/data/fonts/curie/default.nix
+++ b/pkgs/data/fonts/curie/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An upscaled version of scientifica";
+    description = "Upscaled version of scientifica";
     homepage = "https://github.com/NerdyPepper/curie";
     license = licenses.ofl;
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/dejavu-fonts/default.nix b/pkgs/data/fonts/dejavu-fonts/default.nix
index ba9fed1be282e..1fdb20ff3ced5 100644
--- a/pkgs/data/fonts/dejavu-fonts/default.nix
+++ b/pkgs/data/fonts/dejavu-fonts/default.nix
@@ -4,7 +4,7 @@ let
   version = "2.37";
 
   meta = {
-    description = "A typeface family based on the Bitstream Vera fonts";
+    description = "Typeface family based on the Bitstream Vera fonts";
     longDescription = ''
       The DejaVu fonts are TrueType fonts based on the BitStream Vera fonts,
       providing more styles and with greater coverage of Unicode.
diff --git a/pkgs/data/fonts/dina/default.nix b/pkgs/data/fonts/dina/default.nix
index 4a0612efd3e56..37bf08611f351 100644
--- a/pkgs/data/fonts/dina/default.nix
+++ b/pkgs/data/fonts/dina/default.nix
@@ -65,7 +65,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A monospace bitmap font aimed at programmers";
+    description = "Monospace bitmap font aimed at programmers";
     longDescription = ''
       Dina is a monospace bitmap font, primarily aimed at programmers. It is
       relatively compact to allow a lot of code on screen, while (hopefully)
diff --git a/pkgs/data/fonts/dm-sans/default.nix b/pkgs/data/fonts/dm-sans/default.nix
index c2d8f33eff69f..e8d51945254d2 100644
--- a/pkgs/data/fonts/dm-sans/default.nix
+++ b/pkgs/data/fonts/dm-sans/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = {
-    description = "A geometric sans-serif typeface";
+    description = "Geometric sans-serif typeface";
     homepage = "https://github.com/googlefonts/dm-fonts";
     license = lib.licenses.ofl;
     maintainers = with lib.maintainers; [ gilice ];
diff --git a/pkgs/data/fonts/dosis/default.nix b/pkgs/data/fonts/dosis/default.nix
index a33f086c9bbe3..5a9470a43ec8e 100644
--- a/pkgs/data/fonts/dosis/default.nix
+++ b/pkgs/data/fonts/dosis/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A very simple, rounded, sans serif family";
+    description = "Very simple, rounded, sans serif family";
     longDescription = ''
       Dosis is a very simple, rounded, sans serif family.
 
diff --git a/pkgs/data/fonts/doulos-sil/default.nix b/pkgs/data/fonts/doulos-sil/default.nix
index 5db5e942f6ef0..d4a21382bbfaa 100644
--- a/pkgs/data/fonts/doulos-sil/default.nix
+++ b/pkgs/data/fonts/doulos-sil/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://software.sil.org/doulos";
-    description = "A font that provides complete support for the International Phonetic Alphabet";
+    description = "Font that provides complete support for the International Phonetic Alphabet";
     longDescription = ''
       This Doulos SIL font is essentially the same design as the SIL Doulos font first released by SIL in 1992. The design has been changed from the original in that it has been scaled down to be a better match with contemporary digital fonts, such as Times New Roman®. This current release is a regular typeface, with no bold or italic version available or planned. It is intended for use alongside other Times-like fonts where a range of styles (italic, bold) are not needed. Therefore, just one font is included in the Doulos SIL release: Doulos SIL Regular.
 
diff --git a/pkgs/data/fonts/edwin/default.nix b/pkgs/data/fonts/edwin/default.nix
index 2ccb44d45d2ea..58a2ed3e3ec68 100644
--- a/pkgs/data/fonts/edwin/default.nix
+++ b/pkgs/data/fonts/edwin/default.nix
@@ -19,7 +19,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A text font for musical scores";
+    description = "Text font for musical scores";
     homepage = "https://github.com/MuseScoreFonts/Edwin";
     license = licenses.ofl;
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/efont-unicode/default.nix b/pkgs/data/fonts/efont-unicode/default.nix
index e45bdab7a4d8e..cc41646a1263f 100644
--- a/pkgs/data/fonts/efont-unicode/default.nix
+++ b/pkgs/data/fonts/efont-unicode/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "bdf" ];
 
   meta = with lib; {
-    description = "The /efont/ Unicode bitmap font";
+    description = "/efont/ Unicode bitmap font";
     homepage = "http://openlab.ring.gr.jp/efont/unicode/";
     license = licenses.bsd3;
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/encode-sans/default.nix b/pkgs/data/fonts/encode-sans/default.nix
index 1c9fc453c7d3d..ec48dc9ee009f 100644
--- a/pkgs/data/fonts/encode-sans/default.nix
+++ b/pkgs/data/fonts/encode-sans/default.nix
@@ -19,7 +19,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A versatile sans serif font family";
+    description = "Versatile sans serif font family";
     longDescription = ''
       The Encode Sans family is a versatile workhorse. Featuring a huge range of
       weights and widths, it's ready for all kind of typographic challenges. It
diff --git a/pkgs/data/fonts/et-book/default.nix b/pkgs/data/fonts/et-book/default.nix
index d1b59e2cdc0f6..6dfa369d606df 100644
--- a/pkgs/data/fonts/et-book/default.nix
+++ b/pkgs/data/fonts/et-book/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The typeface used in Edward Tufte’s books.";
+    description = "Typeface used in Edward Tufte’s books";
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ jethro ];
diff --git a/pkgs/data/fonts/eunomia/default.nix b/pkgs/data/fonts/eunomia/default.nix
index ea3613b5f81f9..d51c797d2800d 100644
--- a/pkgs/data/fonts/eunomia/default.nix
+++ b/pkgs/data/fonts/eunomia/default.nix
@@ -24,7 +24,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "http://dotcolon.net/font/eunomia/";
-    description = "A futuristic decorative font";
+    description = "Futuristic decorative font";
     platforms = platforms.all;
     maintainers = with maintainers; [ leenaars minijackson ];
     license = licenses.ofl;
diff --git a/pkgs/data/fonts/f1_8/default.nix b/pkgs/data/fonts/f1_8/default.nix
index 93e44be17cdac..7020e43f1035d 100644
--- a/pkgs/data/fonts/f1_8/default.nix
+++ b/pkgs/data/fonts/f1_8/default.nix
@@ -25,7 +25,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
-    description = "A weighted decorative font";
+    description = "Weighted decorative font";
     platforms = platforms.all;
     maintainers = with maintainers; [ minijackson ];
     license = licenses.ofl;
diff --git a/pkgs/data/fonts/f5_6/default.nix b/pkgs/data/fonts/f5_6/default.nix
index f1e8e7698f27a..9ba404f4b38fe 100644
--- a/pkgs/data/fonts/f5_6/default.nix
+++ b/pkgs/data/fonts/f5_6/default.nix
@@ -24,7 +24,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
-    description = "A weighted decorative font";
+    description = "Weighted decorative font";
     platforms = platforms.all;
     maintainers = with maintainers; [ leenaars minijackson ];
     license = licenses.ofl;
diff --git a/pkgs/data/fonts/fa_1/default.nix b/pkgs/data/fonts/fa_1/default.nix
index 1c21bb279be6e..11302b9c6f6ef 100644
--- a/pkgs/data/fonts/fa_1/default.nix
+++ b/pkgs/data/fonts/fa_1/default.nix
@@ -24,7 +24,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
-    description = "A weighted decorative font";
+    description = "Weighted decorative font";
     platforms = platforms.all;
     maintainers = with maintainers; [ minijackson ];
     license = licenses.ofl;
diff --git a/pkgs/data/fonts/fantasque-sans-mono/default.nix b/pkgs/data/fonts/fantasque-sans-mono/default.nix
index d4d60d95bc946..9d594a7f7580c 100644
--- a/pkgs/data/fonts/fantasque-sans-mono/default.nix
+++ b/pkgs/data/fonts/fantasque-sans-mono/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/belluzj/fantasque-sans";
-    description = "A font family with a great monospaced variant for programmers";
+    description = "Font family with a great monospaced variant for programmers";
     license = licenses.ofl;
     platforms = platforms.all;
     maintainers = [ maintainers.rycee ];
diff --git a/pkgs/data/fonts/fanwood/default.nix b/pkgs/data/fonts/fanwood/default.nix
index 669ee6ac206e2..01e2e7da79f19 100644
--- a/pkgs/data/fonts/fanwood/default.nix
+++ b/pkgs/data/fonts/fanwood/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A serif based on the work of a famous Czech-American type designer of yesteryear";
+    description = "Serif based on the work of a famous Czech-American type designer of yesteryear";
     longDescription = ''
       Based on work of a famous Czech-American type designer of yesteryear. The
       package includes roman and italic.
diff --git a/pkgs/data/fonts/ferrum/default.nix b/pkgs/data/fonts/ferrum/default.nix
index 5f6459a1f6bf5..8d90a9328f24f 100644
--- a/pkgs/data/fonts/ferrum/default.nix
+++ b/pkgs/data/fonts/ferrum/default.nix
@@ -24,7 +24,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
-    description = "A decorative font";
+    description = "Decorative font";
     platforms = platforms.all;
     maintainers = with maintainers; [ leenaars minijackson ];
     license = licenses.cc0;
diff --git a/pkgs/data/fonts/fg-virgil/default.nix b/pkgs/data/fonts/fg-virgil/default.nix
index da9ecb235005b..d7c04d9b9e883 100644
--- a/pkgs/data/fonts/fg-virgil/default.nix
+++ b/pkgs/data/fonts/fg-virgil/default.nix
@@ -23,7 +23,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/excalidraw/virgil";
-    description = "The font that powers Excalidraw";
+    description = "Font that powers Excalidraw";
     platforms = lib.platforms.all;
     maintainers = with lib.maintainers; [ drupol ];
     license = lib.licenses.ofl;
diff --git a/pkgs/data/fonts/fraunces/default.nix b/pkgs/data/fonts/fraunces/default.nix
index b41dc1ea80995..d74e84a570d33 100644
--- a/pkgs/data/fonts/fraunces/default.nix
+++ b/pkgs/data/fonts/fraunces/default.nix
@@ -19,7 +19,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A display, “Old Style” soft-serif typeface inspired by early 20th century typefaces";
+    description = "Display, “Old Style” soft-serif typeface inspired by early 20th century typefaces";
     homepage = "https://github.com/undercasetype/Fraunces";
     license = licenses.ofl;
     maintainers = [ ];
diff --git a/pkgs/data/fonts/gandom-fonts/default.nix b/pkgs/data/fonts/gandom-fonts/default.nix
index 53ea5558c1f1a..5d128448f1c79 100644
--- a/pkgs/data/fonts/gandom-fonts/default.nix
+++ b/pkgs/data/fonts/gandom-fonts/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/rastikerdar/gandom-font";
-    description = "A Persian (Farsi) Font - فونت (قلم) فارسی گندم";
+    description = "Persian (Farsi) Font - فونت (قلم) فارسی گندم";
     license = licenses.ofl;
     platforms = platforms.all;
     maintainers = [ ];
diff --git a/pkgs/data/fonts/gelasio/default.nix b/pkgs/data/fonts/gelasio/default.nix
index cea8e439d36bf..9f62d7464185c 100644
--- a/pkgs/data/fonts/gelasio/default.nix
+++ b/pkgs/data/fonts/gelasio/default.nix
@@ -23,7 +23,7 @@ stdenvNoCC.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "a font which is metric-compatible with Microsoft's Georgia";
+    description = "Font which is metric-compatible with Microsoft's Georgia";
     longDescription = ''
       Gelasio is an original typeface which is metrics compatible with Microsoft's
       Georgia in its Regular, Bold, Italic and Bold Italic weights. Interpolated
diff --git a/pkgs/data/fonts/gentium-book-basic/default.nix b/pkgs/data/fonts/gentium-book-basic/default.nix
index 5cbc31accf076..c9541b307ff08 100644
--- a/pkgs/data/fonts/gentium-book-basic/default.nix
+++ b/pkgs/data/fonts/gentium-book-basic/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://software.sil.org/gentium/";
-    description = "A high-quality typeface family for Latin, Cyrillic, and Greek";
+    description = "High-quality typeface family for Latin, Cyrillic, and Greek";
     maintainers = with maintainers; [ ];
     license = licenses.ofl;
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/gentium/default.nix b/pkgs/data/fonts/gentium/default.nix
index ae454ef42232f..e9d8435db26df 100644
--- a/pkgs/data/fonts/gentium/default.nix
+++ b/pkgs/data/fonts/gentium/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://software.sil.org/gentium/";
-    description = "A high-quality typeface family for Latin, Cyrillic, and Greek";
+    description = "High-quality typeface family for Latin, Cyrillic, and Greek";
     longDescription = ''
       Gentium is a typeface family designed to enable the diverse ethnic groups
       around the world who use the Latin, Cyrillic and Greek scripts to produce
diff --git a/pkgs/data/fonts/go-font/default.nix b/pkgs/data/fonts/go-font/default.nix
index 63d62ec2e82e3..db96e3183e262 100644
--- a/pkgs/data/fonts/go-font/default.nix
+++ b/pkgs/data/fonts/go-font/default.nix
@@ -23,7 +23,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://blog.golang.org/go-fonts";
-    description = "The Go font family";
+    description = "Go font family";
     changelog = "https://go.googlesource.com/image/+log/refs/heads/master/font/gofont";
     license = licenses.bsd3;
     maintainers = with maintainers; [ sternenseemann ];
diff --git a/pkgs/data/fonts/goudy-bookletter-1911/default.nix b/pkgs/data/fonts/goudy-bookletter-1911/default.nix
index 14997cd62b6e0..5f0880ca036f8 100644
--- a/pkgs/data/fonts/goudy-bookletter-1911/default.nix
+++ b/pkgs/data/fonts/goudy-bookletter-1911/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A public domain font based on Frederic Goudy’s Kennerley Oldstyle";
+    description = "Public domain font based on Frederic Goudy’s Kennerley Oldstyle";
     homepage = "https://www.theleagueofmoveabletype.com/goudy-bookletter-1911";
     license = lib.licenses.ofl;
     maintainers = with lib.maintainers; [ minijackson ];
diff --git a/pkgs/data/fonts/gubbi/default.nix b/pkgs/data/fonts/gubbi/default.nix
index 9ae46d0899254..0b6b42493fe35 100644
--- a/pkgs/data/fonts/gubbi/default.nix
+++ b/pkgs/data/fonts/gubbi/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "A Kannada font";
+    description = "Kannada font";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ ehmry ];
diff --git a/pkgs/data/fonts/hack/default.nix b/pkgs/data/fonts/hack/default.nix
index e39815a2e1538..a503ade5d2395 100644
--- a/pkgs/data/fonts/hack/default.nix
+++ b/pkgs/data/fonts/hack/default.nix
@@ -18,7 +18,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A typeface designed for source code";
+    description = "Typeface designed for source code";
     longDescription = ''
       Hack is hand groomed and optically balanced to be a workhorse face for
       code. It has deep roots in the libre, open source typeface community and
diff --git a/pkgs/data/fonts/hackgen/default.nix b/pkgs/data/fonts/hackgen/default.nix
index 6ea5312a98aa0..d3f83f5800fd7 100644
--- a/pkgs/data/fonts/hackgen/default.nix
+++ b/pkgs/data/fonts/hackgen/default.nix
@@ -18,7 +18,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A composite font of Hack and GenJyuu-Goghic";
+    description = "Composite font of Hack and GenJyuu-Goghic";
     homepage = "https://github.com/yuru7/HackGen";
     license = licenses.ofl;
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/hackgen/nerdfont.nix b/pkgs/data/fonts/hackgen/nerdfont.nix
index c75e1d3060842..9e06496163aa8 100644
--- a/pkgs/data/fonts/hackgen/nerdfont.nix
+++ b/pkgs/data/fonts/hackgen/nerdfont.nix
@@ -18,7 +18,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A composite font of Hack, GenJyuu-Gothic and nerd-fonts";
+    description = "Composite font of Hack, GenJyuu-Gothic and nerd-fonts";
     homepage = "https://github.com/yuru7/HackGen";
     license = licenses.ofl;
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/hasklig/default.nix b/pkgs/data/fonts/hasklig/default.nix
index b0d37aca9e128..5868452c5793b 100644
--- a/pkgs/data/fonts/hasklig/default.nix
+++ b/pkgs/data/fonts/hasklig/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/i-tu/Hasklig";
-    description = "A font with ligatures for Haskell code based off Source Code Pro";
+    description = "Font with ligatures for Haskell code based off Source Code Pro";
     license = licenses.ofl;
     platforms = platforms.all;
     maintainers = with maintainers; [ davidrusu ];
diff --git a/pkgs/data/fonts/hubot-sans/default.nix b/pkgs/data/fonts/hubot-sans/default.nix
index 5db592ae8b4fb..3711aeb028d17 100644
--- a/pkgs/data/fonts/hubot-sans/default.nix
+++ b/pkgs/data/fonts/hubot-sans/default.nix
@@ -23,7 +23,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A variable font from GitHub";
+    description = "Variable font from GitHub";
     homepage = "https://github.com/github/hubot-sans";
     changelog = "https://github.com/github/hubot-sans/releases/tag/v${finalAttrs.version}";
     license = lib.licenses.ofl;
diff --git a/pkgs/data/fonts/hyperscrypt/default.nix b/pkgs/data/fonts/hyperscrypt/default.nix
index c72e4b9e19a09..a55702fbf2e5b 100644
--- a/pkgs/data/fonts/hyperscrypt/default.nix
+++ b/pkgs/data/fonts/hyperscrypt/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://velvetyne.fr/fonts/hyper-scrypt/";
-    description = "A modern stencil typeface inspired by stained glass technique";
+    description = "Modern stencil typeface inspired by stained glass technique";
     longDescription = ''
       The Hyper Scrypt typeface was designed for the Hyper Chapelle
       exhibition. It was commissioned by AAAAA Atelier to Studio
diff --git a/pkgs/data/fonts/i-dot-ming/default.nix b/pkgs/data/fonts/i-dot-ming/default.nix
index fb2679b2eba26..bd09d6efaeb7a 100644
--- a/pkgs/data/fonts/i-dot-ming/default.nix
+++ b/pkgs/data/fonts/i-dot-ming/default.nix
@@ -40,7 +40,7 @@ stdenvNoCC.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "An open source Pan-CJK serif typeface";
+    description = "Open source Pan-CJK serif typeface";
     homepage = "https://github.com/ichitenfont/I.Ming";
     license = licenses.ipa;
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/inconsolata/default.nix b/pkgs/data/fonts/inconsolata/default.nix
index 180fa12b10664..79431995a496c 100644
--- a/pkgs/data/fonts/inconsolata/default.nix
+++ b/pkgs/data/fonts/inconsolata/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://www.levien.com/type/myfonts/inconsolata.html";
-    description = "A monospace font for both screen and print";
+    description = "Monospace font for both screen and print";
     maintainers = with maintainers; [ appsforartists mikoim raskin ];
     license = licenses.ofl;
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/inter/default.nix b/pkgs/data/fonts/inter/default.nix
index 0cbf67902f1c1..2bed6db734bb9 100644
--- a/pkgs/data/fonts/inter/default.nix
+++ b/pkgs/data/fonts/inter/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://rsms.me/inter/";
-    description = "A typeface specially designed for user interfaces";
+    description = "Typeface specially designed for user interfaces";
     license = licenses.ofl;
     platforms = platforms.all;
     maintainers = with maintainers; [ demize dtzWill ];
diff --git a/pkgs/data/fonts/iosevka/bin.nix b/pkgs/data/fonts/iosevka/bin.nix
index 0f6d46546ded6..6e12c918cfb94 100644
--- a/pkgs/data/fonts/iosevka/bin.nix
+++ b/pkgs/data/fonts/iosevka/bin.nix
@@ -17,7 +17,7 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "${name}-bin";
-  version = "30.0.1";
+  version = "30.1.1";
 
   src = fetchurl {
     url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/PkgTTC-${name}-${version}.zip";
diff --git a/pkgs/data/fonts/iosevka/default.nix b/pkgs/data/fonts/iosevka/default.nix
index 5628df5393cfe..2377636d77417 100644
--- a/pkgs/data/fonts/iosevka/default.nix
+++ b/pkgs/data/fonts/iosevka/default.nix
@@ -55,16 +55,16 @@ assert (extraParameters != null) -> set != null;
 
 buildNpmPackage rec {
   pname = "Iosevka${toString set}";
-  version = "30.0.1";
+  version = "30.2.0";
 
   src = fetchFromGitHub {
     owner = "be5invis";
     repo = "iosevka";
     rev = "v${version}";
-    hash = "sha256-THs6kN5VZpTvzTK7w/sGQbxoEyyPwzl93JDOvwucgeo=";
+    hash = "sha256-L08xBKZHFFByemEa4GgwQRr+wRCocuT/RO+hV/S+hFA=";
   };
 
-  npmDepsHash = "sha256-maDIkbe4BKY7XYOQNGdOalyTGdBXgIU5t0QjVJW6lvQ=";
+  npmDepsHash = "sha256-oRV6QVcJiVKvUtfrewTtnmlIMDaGknn0lEHdcNM3V2g=";
 
   nativeBuildInputs = [
     remarshal
@@ -127,7 +127,7 @@ buildNpmPackage rec {
   meta = with lib; {
     homepage = "https://typeof.net/Iosevka/";
     downloadPage = "https://github.com/be5invis/Iosevka/releases";
-    description = "Versatile typeface for code, from code.";
+    description = "Versatile typeface for code, from code";
     longDescription = ''
       Iosevka is an open-source, sans-serif + slab-serif, monospace +
       quasi‑proportional typeface family, designed for writing code, using in
@@ -137,7 +137,6 @@ buildNpmPackage rec {
     platforms = platforms.all;
     maintainers = with maintainers; [
       ttuegel
-      babariviere
       rileyinman
       AluisioASG
       lunik1
diff --git a/pkgs/data/fonts/iosevka/variants.nix b/pkgs/data/fonts/iosevka/variants.nix
index 0bf703f6955cc..a3933935ad07f 100644
--- a/pkgs/data/fonts/iosevka/variants.nix
+++ b/pkgs/data/fonts/iosevka/variants.nix
@@ -1,93 +1,93 @@
 # This file was autogenerated. DO NOT EDIT!
 {
-  Iosevka = "1p805i26vf0979k9rgf31634ll6sbyj9xp5mws1gpdpb9xainrzm";
-  IosevkaAile = "1qxayq5cs0rf35k3gr8vilpcnnjq41dmldxb3nib178hi1kcagv2";
-  IosevkaCurly = "1gbsm9x02mjl61l1xc5jbmqkhj7wgqs5mai9czrs0cqvcxgj2cp1";
-  IosevkaCurlySlab = "14fcfspcgf0y7z4bbwvs54s6k82c4bcpj9fyj87ljmsxw2h325rx";
-  IosevkaEtoile = "0qkq357kg1a4clbjgr8k2miainrl594jd054wv9igxb0iwjcqj49";
-  IosevkaSlab = "1ygw3dn4zz62333bxd1k2zvyh8zmv2lrqybsbnidd654ikq0y2ly";
-  IosevkaSS01 = "15j85zp1jqhb07fgl90qnidz8da64nq2r3dw4a337kwqzmgfrbl1";
-  IosevkaSS02 = "0snia7xjh6d72ddz6yrzzx2pfx46c7kg2163qsp2b78p046s93ww";
-  IosevkaSS03 = "1qg3vwp4ybih6vvbb6qpzh8qvqhc8z985k934vkirk41hp5p9564";
-  IosevkaSS04 = "098pncahmhgvfh88m3mfrw7frjslrqly50p2x7qwv9lpz76n18xq";
-  IosevkaSS05 = "1grdfghfh1plbcxqfx49vm3c7vkrlafss40cjf7f7j7ykkyx540z";
-  IosevkaSS06 = "02qqffsyp2bgf6p4jp1ww1d9c7nj4hzs52psgvh5nnn0kvsxbjnn";
-  IosevkaSS07 = "1avb06xsv1mp6lrrdawh6xnwiykh75vhb0364203mzjjj7gir7rw";
-  IosevkaSS08 = "024qrzj8rkgwp71dpx7p424kgid1mzb0sbwfrg83i5v158slh65y";
-  IosevkaSS09 = "178yc58lq1j42pmyap210cjk2qnqcsvhfdry56p7nd5l8gxik1v1";
-  IosevkaSS10 = "0fhz69dhn7g64zyq947m85d73kn0qr2c751aqzrq1rlnbfm4cncs";
-  IosevkaSS11 = "0zvf5a9k1mv1mgybqjqx4xcnpq7fni6vgwmr0hnmzcnxzxapmgqk";
-  IosevkaSS12 = "1vjx11aalwbsm2vnqn9m695h943h3gln8bdayvv687x4bxj8dnfi";
-  IosevkaSS13 = "165ikcmdsjfj30cs6ggsgfl9q0rpl1m4n57c75x8qq1p103yivia";
-  IosevkaSS14 = "1iy95jyh7lsvwyc48rqasm9w9wr3rp0w8xvg8jqw3abnqyj30kxs";
-  IosevkaSS15 = "0kws1bsyzij6mzf8wl80257an071l6r925mxcdh327scg8hdgq54";
-  IosevkaSS16 = "06akd1mgdi9psf6j8ib97k617jilzs1likb3gbx57iqfnxyjfqkj";
-  IosevkaSS17 = "08jvlgia29bd5q77j664hfcdd3y29iwy6gnxnxsq6i2ipgwszpr1";
-  IosevkaSS18 = "01bp1zlfxrnz4b63d0j0zvdyilwxzb8b7m75yy5a73g7ghpjhf7w";
-  SGr-Iosevka = "03zpmihwj1jcvc0q97bhyw8qgccpg8vqbiqw9rf1aaav3rix7jpl";
-  SGr-IosevkaCurly = "1zkvih3ifkxf4ijbf9510b55xnp5rh488vqw899aw42sagdakqi3";
-  SGr-IosevkaCurlySlab = "019hsqhghyw5njqrm2h20yyrrj8md6aqkfsi2nqdq83q8bs6qvq0";
-  SGr-IosevkaFixed = "04g5l10ayvwwa0dhsaccxw2qbxbfyac5gnmlyly52lx126ifnhva";
-  SGr-IosevkaFixedCurly = "0cygz3kz0cbjdx1pdig9qgm9z6kclrx96d9g7wiain4xn4i7dayg";
-  SGr-IosevkaFixedCurlySlab = "1vdsrkbvdsqls344knqq0carcs3vc1ghhliipr44m7bpcnndavf4";
-  SGr-IosevkaFixedSlab = "0hs88kng52iqicdjga0dkvn1b5ih3jsqz6lh7gxwh6qww4crrb84";
-  SGr-IosevkaFixedSS01 = "1hllm1bxrdb8l796kkvd6mhr9fnf90qvxrcb815a6q4x1bxmcb47";
-  SGr-IosevkaFixedSS02 = "0322ky5cwyk95c1xvgv0ny5jmxbsxzznynmq70p827m16mzakvcv";
-  SGr-IosevkaFixedSS03 = "0041lnmv6vycfh7xbi6smr1csywha0ypbyxjk9j9727l16vvy3qp";
-  SGr-IosevkaFixedSS04 = "0ybby2x08zzjgnczair43p3ixbk6igi0pfryjqryz9ziyw7ijx1n";
-  SGr-IosevkaFixedSS05 = "1zf7q3m7pzf8cy28s4bijipxg9f6yl9dnd18syp2gibbzpvsyi9k";
-  SGr-IosevkaFixedSS06 = "0d5gcfydin1a7a4xhsjpqrxk93j5pxc7x8myg0ci36zfcvsy4dg5";
-  SGr-IosevkaFixedSS07 = "0lk43klql6046i9clk14fcqr6cn04dvadg8sv2cwr1130b5iz2b3";
-  SGr-IosevkaFixedSS08 = "1b10x2fzx0clyflid8sz4lcr8is7rbqlk3jyy201sw0p7bfh9bhz";
-  SGr-IosevkaFixedSS09 = "18dkkc4xsnxg0f6zj7hrpp8bybhpvzd0ls7rwyx06v7hcg1nnc7l";
-  SGr-IosevkaFixedSS10 = "03s66zgpn7x1y09qymw9pnridcn7gd7mz0m5b2ccdhc1wmb6vihs";
-  SGr-IosevkaFixedSS11 = "1xbal92f1wbkj1p3097z1cn5vffgdm2n7aa3ljgmrm5x2612whhj";
-  SGr-IosevkaFixedSS12 = "0v34py726vfnrd85bqjr2y61f5rgl4w8w98m0fq18dd9ywjxi83c";
-  SGr-IosevkaFixedSS13 = "1zm815hlff4kys0rg2qi5l8ilpqwmiwvy65qfw3rip1gqv04a3pj";
-  SGr-IosevkaFixedSS14 = "0bvzsyrazd5cx5gi4i590nr0swwsm26647asxmwcfv0pcafnklqw";
-  SGr-IosevkaFixedSS15 = "11cycsdda0dd1vlc5aqsgcpidppgy3fk6dycqxwc7p1cgbdnna60";
-  SGr-IosevkaFixedSS16 = "0asqky6by2i102sapdfw8f91k0pbhlfnr150v0vy3181lryqabay";
-  SGr-IosevkaFixedSS17 = "0yd58bci0f4sarzs2dshdawq4ki3zrdxghh98l6zzi3dnfwajmnq";
-  SGr-IosevkaFixedSS18 = "1r672zk7np5fh934749n86xsxi9vc65bmznqjvhjsrjav3pnzsz1";
-  SGr-IosevkaSlab = "061k6bld4jlylgad19xl8fcqh0yh95yi6hd8gmg4m3kpij64rbas";
-  SGr-IosevkaSS01 = "195jg3wrcqkx98fjx252r6p3xq9gwhr6pzlp3riwvjpbx3avqmvb";
-  SGr-IosevkaSS02 = "0mqhvkhyj9jrx80yh2lrkzpwz15008zs5rkzsimv89jxq0gn3a22";
-  SGr-IosevkaSS03 = "0p92824nrkhn64hrc71b3xwl0pfk5h8nchr2kry3h14hgyq29pkf";
-  SGr-IosevkaSS04 = "1c310vzl8cjjr1367x84vvp5vf6hn3q67qdaxa0hzsdn0w73w46j";
-  SGr-IosevkaSS05 = "08fpvik3pf8zbx4lp3s4dv0w85nwdxfbdh83nh0kznhkpinbmpyn";
-  SGr-IosevkaSS06 = "0dzcgn861lbsxcy7z584r6vpyi4y6hm16dm18k9nwgh21z7pr8n8";
-  SGr-IosevkaSS07 = "038ldpln3yv5icgk5kd2i2ydw22f18y6qzkff968v1azjkmv60n0";
-  SGr-IosevkaSS08 = "0qvj3rkhmpzcfgc26zjgcb36d6c427zgnr8lhwswd10a8dy1632a";
-  SGr-IosevkaSS09 = "0c8m8ly03xgwpcyb9mvrjck7xih8qil9pzcrvg6vv4ssvrvr90lw";
-  SGr-IosevkaSS10 = "1i168k7qgiawnxly129n6y7idjc14dj9iblgkiq60zy99n0q1b4j";
-  SGr-IosevkaSS11 = "1fjxvg3jcx5qphr2ywkly3zdf2vsdjn2macfzkngbhlml79jz9y3";
-  SGr-IosevkaSS12 = "1vbwinqpj5ahxgxd5r6rbzhlvx5q3v32bxmwxzw9krd517ra22kw";
-  SGr-IosevkaSS13 = "1zzj3nb8739xq4bb7i02r0zlfcyczkq9c7rgxih6hdd4nch75pvi";
-  SGr-IosevkaSS14 = "1bvn26mssy61nz1n3g76hbd0amq7cifh2rmdcxzs261wkiym01lw";
-  SGr-IosevkaSS15 = "0r6ggg2w1y4l23k8z2dqbv8g3pzikmyi18bfpgnc3k1mbqaaxf76";
-  SGr-IosevkaSS16 = "1nn8nk5rl1khw4ximl916ai49d1pa3b3wrsfb1qa51p5swsikf60";
-  SGr-IosevkaSS17 = "1vn7s3i6jsv0b8y07ay0sbna7wrwxsk1dyw2h42jswzzv28m0p4c";
-  SGr-IosevkaSS18 = "12zm8s4i8fzhfw63bc9smyj38mva8a69qj69sfkac5z81zrmxa8m";
-  SGr-IosevkaTerm = "0rawxyhfjdd1xhgwf9f7adm2jqdh81ycc792kfi8vhn7piq1g109";
-  SGr-IosevkaTermCurly = "1vrdx9kgy22blcm1ps0lv5snhxc39p6pd70ry6sa4np8swx6h7s3";
-  SGr-IosevkaTermCurlySlab = "00hnq7s9bva1kq921gy410z8ld9mzpr09bifimmpm0kf6dr7q8ll";
-  SGr-IosevkaTermSlab = "1sgvybj60qvh3wyxi11f6mjvik9d7pc517s387k2vfb66j5q3vvq";
-  SGr-IosevkaTermSS01 = "1fg8vslmp3kp7yfr6kwkybmgd5nbyjyhpa6c8h7d5yrl8sghh1jq";
-  SGr-IosevkaTermSS02 = "1qgsyh0jh8ik715n880gkfv3k7j2id06wrqbqkwdhlnljybzzvpv";
-  SGr-IosevkaTermSS03 = "03ahlzgs0sjbvc9nc53fsavdi3j3ym0pj55d3xqyi3wvn0y6g172";
-  SGr-IosevkaTermSS04 = "1b9bhvda2kzwpmsc0k8w44cm18sab3drxpskvb6rc252igd3fzzm";
-  SGr-IosevkaTermSS05 = "0gz35z4zvh7afcppkmdc79x534qkpb3wg60gvnsj86v01xhw1whk";
-  SGr-IosevkaTermSS06 = "07kg4137y3rzsk5pn1i8qcrr9nw5aqs3xhmikbysp28mlyd93xyr";
-  SGr-IosevkaTermSS07 = "047af1c93vm3g3j0nqbav11za143xb638z3sh4hzcngr5jz3avk4";
-  SGr-IosevkaTermSS08 = "0qzzxfkhzykmsn6dxf2h0yl1wgfar5i0dhgvdnibp9b54szxk0pk";
-  SGr-IosevkaTermSS09 = "1fc0cfrpv6mly75jfzwvdga5rb4y3w088lhiy8wac8a9dq928dpk";
-  SGr-IosevkaTermSS10 = "1k3paidjv8213gql5haismbyqsjv41zbflgxp5dk3599raimv8fd";
-  SGr-IosevkaTermSS11 = "06nh95dri3y080rc1pvxcli11a1xq15mnpxzlqk9zs9bgx8aw41d";
-  SGr-IosevkaTermSS12 = "1wisinglhrqfhpswvyhqfzdmx64mzli7ja96cj2bq0r9ksik09bx";
-  SGr-IosevkaTermSS13 = "1xcn4b3cspjqmrpckwi355xhxh2vx7vmiyzvhpjal04zkfv2lqlx";
-  SGr-IosevkaTermSS14 = "13s06y17vj1fp07h83d982l684jpg58ln1airxkvf6xb7dgh57yl";
-  SGr-IosevkaTermSS15 = "0qwkdsc51ssm0y8qbi9m3m3x0adrlf82h36x77xrap29qkz5liwq";
-  SGr-IosevkaTermSS16 = "00py2l35w9kaggrg7xhj333rc3li2lwkl5sblrpjkq98hdwc3m53";
-  SGr-IosevkaTermSS17 = "0afa65dq97mq4c2p7vyhpjzbch0ab0sy12qy0a6krrr1q4abbl1b";
-  SGr-IosevkaTermSS18 = "1ixy8nxm3n7pgswg5dfsy01fmzq5vg1g4r401f30zyri9f21010k";
+  Iosevka = "0ymq4p5chaczhns24n4xal44ppay566pg95zkkkq51ck52f3zf44";
+  IosevkaAile = "1v35phx8ki3yjg43s0fk8snpyc59pa8kg26q56hayxsfrj1dsmck";
+  IosevkaCurly = "0d7sp0w7ryh8wwz4hxyhwimhw3ly668ygm4jcwf2amd3r4xxis5k";
+  IosevkaCurlySlab = "1lajfma7jdwi453jgd3pq1vdgz5zn3f01j502dfiaskqzfan89cb";
+  IosevkaEtoile = "0agg1gg3ymljln8msfask398w58p1wyy5bnzxc0pmmc7ivdajmh4";
+  IosevkaSlab = "1rfzij1p3rybxrq461h3ykpq41hqrgaiwjd7x36dzm4bcm7mga9q";
+  IosevkaSS01 = "0qhzmk8c0npisxqwn2qicxlad2awmnnvik91daidnndwhw4ylq8y";
+  IosevkaSS02 = "15ipbca4c15vs7n62463asl58xshwsrqirhbp23gpr4ixmx2vrmy";
+  IosevkaSS03 = "0nw7jx2smkn8aihcmwkmcqlzs0dhm54qmxrm9102vlsf61dawkpj";
+  IosevkaSS04 = "1bk18a712xjngmv28fzkw6fs560k928b3ahp9w7cvq1xvji5g3qb";
+  IosevkaSS05 = "1xgrbfg1am48j3ps7bnjryyy0pjnx6ahz75zaqwf35cwjb3f5wvf";
+  IosevkaSS06 = "1wk1scyz34dc3dcq1af2c3nla1lh56zbgzx1xinf8qwypb6m01dw";
+  IosevkaSS07 = "1z8gg8h2kbgq7d4lglfl4awbkmzxpjwcqa1xrxxpcpmxa04ppcfq";
+  IosevkaSS08 = "1wid8y6wavxff7b62cxm00y93mjfc3zzjd76g4vgrb7r7ql9kd06";
+  IosevkaSS09 = "06hwzhg4qb8cha7zl32pwzbcnzg1dv8432aq7hzfa0jq2jmvpxax";
+  IosevkaSS10 = "1p8s2lfvr50pacs941gwxp211j4fn9rzxxvprz03swqklvwadir7";
+  IosevkaSS11 = "15izq605ggr2lnc8lljk6lvwkdc87ilx53zw5j7cfdfq8bc6fv6k";
+  IosevkaSS12 = "1xnbap1cm125pdg9x8dbc5lm691fr244k5vblj9mqhaqvbq9pqjs";
+  IosevkaSS13 = "1l98yjgq4zbxnq5xwhlql9m864n2ha0d46xk0b5w32srnaq09ipb";
+  IosevkaSS14 = "0rmd6gc624k3kls98wlz3v407xdq7cynjb06p9zhwxwfy3l9wpwl";
+  IosevkaSS15 = "04qnx6lgp1g3vnwsgbxibjjia2fip1vhf5854kp9dx37qi8qzf7g";
+  IosevkaSS16 = "13xx1s5gv1gly3pnc5rq6zx93rhllmga3k9ik3p86h3kd1valsvb";
+  IosevkaSS17 = "00rc87a09j2v7f1s4spisqgrmlhf67gvvjy14dbmlv7s434z7ap2";
+  IosevkaSS18 = "1fdpsqya1gn939v6b7iwj1sjpskbbxr5ypf0l5rvldxfqisx7zj4";
+  SGr-Iosevka = "0raiapwifmf02560ibic8g47mal8w91wfdcivh8yh7g2ldf5hchr";
+  SGr-IosevkaCurly = "1sg9prv501sa9iy9j4664qsp99d47lmfwn5hqms51kijliplfyfy";
+  SGr-IosevkaCurlySlab = "1g216l92khl22w7833pmwaphvr94zjing3sx8ldnj4py26nvvfqp";
+  SGr-IosevkaFixed = "0f0jk2fhqb4ch5gm6ndip04brchrz20kvs9ja4yarkmild3j1vmg";
+  SGr-IosevkaFixedCurly = "10ayxf5v2yyclpb2gnd06jgkbqvqy0sq5n8vmkjmjb6fx5v0yl7f";
+  SGr-IosevkaFixedCurlySlab = "14iyjj2i29bp084yi7ja1xxh3cl95xiyj29jcwgd6ndzv3xf8ir8";
+  SGr-IosevkaFixedSlab = "0zvm0qy7bjlj9c3gqzip3ldg9lnm3003fdd1s4ks2zvaz6xwk9sy";
+  SGr-IosevkaFixedSS01 = "09npaina3c9rsg84rlm1hadqd64v8i1rjcgbi6d8y5xs01dwn6jg";
+  SGr-IosevkaFixedSS02 = "0r67l52pk1wlqdmfn2wbjkcd4szmpj4d24jcgy5b83gjr3hgmcr4";
+  SGr-IosevkaFixedSS03 = "1dpj0hv1qghwhxqsymvk0xjhjnwxd9av23hr90bi5h10k7rx3nqy";
+  SGr-IosevkaFixedSS04 = "1ffpj0g0jh72x12ibw6mrfkgh87jzhbz4ak15c0yh21rz3bya71a";
+  SGr-IosevkaFixedSS05 = "1q6gw659p5fwgbqb20lzw89px8b0k2p65iasway0a4rihb7am18x";
+  SGr-IosevkaFixedSS06 = "0axqqhlk0811yxnk34kq8a1ayl4cpykjqd7ma9z52y8a1kgdilx2";
+  SGr-IosevkaFixedSS07 = "1jcwwp3w2j1chnn92r2whrq15ka3hfzw96w4ffppwk715s1kc63h";
+  SGr-IosevkaFixedSS08 = "0f5xyr8dgbmgw21z9g12admbj4037lgid9agl6djiavljdn3xwlz";
+  SGr-IosevkaFixedSS09 = "09xi1rrddivsqr2ddw3g10v2y4ybvbwa7p05jl7hz6kwgr1qrqwd";
+  SGr-IosevkaFixedSS10 = "0m6qwkb7svjgskc391dri8vciydzjgx1s91bbsax8gy18mqh3vd7";
+  SGr-IosevkaFixedSS11 = "1l04gmzdpccz1xmjqgn0jhpwxvq1axyqnrmkyafd116q4qszbayf";
+  SGr-IosevkaFixedSS12 = "1i5jx8cffsl1zpjxvyb3m73r82vfh71z4s4dzg55svzh4lkkdfyc";
+  SGr-IosevkaFixedSS13 = "013d0a2kli353vxlrrs5mgwdf1fipv3vsv626izp6whfxfg6pk6h";
+  SGr-IosevkaFixedSS14 = "07n4hkrayr5chy46pa0d86srfaprm8kw56x86wndqj2blk5ydvh6";
+  SGr-IosevkaFixedSS15 = "16lglz0ri7ww68whf8q009qq6kzaygy6lhbps5lmags34jhc9fa5";
+  SGr-IosevkaFixedSS16 = "15j5b2w54bsq8mbi6swq6vd2xvvnnd0j0c3d4dcp4kbhr766841q";
+  SGr-IosevkaFixedSS17 = "14j3miv97mk6hg3q7mafqc57m7z5sg6k7gap53v367793gkz6096";
+  SGr-IosevkaFixedSS18 = "1iylhw0c05gdp48rx8417khs0yih0q917xx8k81bh5xdg0idyjim";
+  SGr-IosevkaSlab = "1wyasyf0ydvh2q0akqvn7bzl66m7kyf2v9p3ry0lgcwv0flrwrpi";
+  SGr-IosevkaSS01 = "1hs0pvamx149l2drvciqnwry75165sq2nvl7g0f4jazclfb4af3c";
+  SGr-IosevkaSS02 = "05pl8asc5zqm1x4lcj00al27da1m301g96zyijsfxx2vybpw53jd";
+  SGr-IosevkaSS03 = "0c60585ss53mzb0swf08r54673a426wq8mamxgnc733yinbsffwx";
+  SGr-IosevkaSS04 = "0yml0y535kl2bid1qflkx3rrq2rq81nxpba18kk7xpscsg04ghjn";
+  SGr-IosevkaSS05 = "03hxlchn96m0ll47rn8lg092c776b1v99pcrsmrlx3x8gslpdlka";
+  SGr-IosevkaSS06 = "04cnymhvm5wi0hb956afi7029acqfqr0djhc1blhpkmldz8pzsn6";
+  SGr-IosevkaSS07 = "1v4khps1z16k59snwxffwwn1y1yj2mp8k4fjkrxli7lb5mrn8lwl";
+  SGr-IosevkaSS08 = "0pvy39fs5carcb0mh3ak8f5hkfjyk2pkmj7nfcaxdgkcgkys2ixn";
+  SGr-IosevkaSS09 = "0cibn02752b2nfjgg12lb10hgigz3a4zcrsc76bh0r9dsgjphscn";
+  SGr-IosevkaSS10 = "165snqk5livrkhpwcssb5b221f6gwwirm5rlsmx8d72y7rlc2vb0";
+  SGr-IosevkaSS11 = "0czb0gxd2cq329123zcmz9axkfpza43kqhn6bi1rq8dgjh4qn0fx";
+  SGr-IosevkaSS12 = "1ycqxpjm5k421a9iwiziab3j69frdgjiz7cwx1k7djqyshqn98k0";
+  SGr-IosevkaSS13 = "18wiv124c868h7qaw6qvdy8xhgh4grfhqri8q2mi8zj5gadkh5yb";
+  SGr-IosevkaSS14 = "1y2cfivf1zg03c2dn9xg5i29zmi4j3mj5diz3kyd68ih4csrzyla";
+  SGr-IosevkaSS15 = "0ghg5f2ay6i2fzbw4xq28hcpbvwjzqvi1pz2nfvd2i2n61960xpr";
+  SGr-IosevkaSS16 = "1132nf2xlsab8mhl5k1fvg8j9j6s1iy1avh5mj7jjb1z2i03z3fb";
+  SGr-IosevkaSS17 = "155vfg5p114vdl722mqdfap3cm25wxydmhldd88n488yr3yviicv";
+  SGr-IosevkaSS18 = "1y76pzsz5gfm0jjw8fa11aajf3zk188xr5fvsf3v89zdzk1ixzgj";
+  SGr-IosevkaTerm = "0rkyy77cdcpf74kw59kbz3l7fs0xl2l0m2zwv8nl4i1x4dbxjj9x";
+  SGr-IosevkaTermCurly = "09r4ag6madsc8889y1r12wk2763pjginrrykrj7w41j11bcvra39";
+  SGr-IosevkaTermCurlySlab = "0bjm43znavfjni7bmi48g4j90v6fp7fg62h32wjvfcpldhycqw8m";
+  SGr-IosevkaTermSlab = "0p4wvgp0nw70gdjn00dqh6vwwsl2fxcl11hf41s0hzr6cj8j0s93";
+  SGr-IosevkaTermSS01 = "1m8n32qs5jlcbfvzjnhm9lafdc1vg2cjya3hb7sphgiiqqjdgkf1";
+  SGr-IosevkaTermSS02 = "14fznvapw4pi3djhfr512pmmlb2air03jkik7d8rw8h69nnragb7";
+  SGr-IosevkaTermSS03 = "14386dbd8yah6j74cp4pddp9cjwi175wg4mq62mi0pxkm1fla578";
+  SGr-IosevkaTermSS04 = "038c4bkcfn8pd18dikipfbv7mqvils3v4fdrhyfmf83770qvkrf0";
+  SGr-IosevkaTermSS05 = "10k49rgwiymbzys8sswfr5ryn1547i1hrg8phb71lbzwxhc4z5m3";
+  SGr-IosevkaTermSS06 = "1pxyydwqbv1f51pdg36pvz5pj45nw28yc0vadj2q3617f2jb2n2h";
+  SGr-IosevkaTermSS07 = "1p1aqqa5h4m6r97q00qf32myfli2fm7lg692aqw45baxxw8sn52l";
+  SGr-IosevkaTermSS08 = "0r7hxaigz66cfgvci88hl0g55177kz3sbb8lji47h1v5r4xhzfl3";
+  SGr-IosevkaTermSS09 = "1ah9kbw9zc0nzfnsyxkbv7wnlaaywyvlkmdv5bfi3ds06w2kjphk";
+  SGr-IosevkaTermSS10 = "08b1l13g4j55sh10pfa6p7z72cvk4r694lml1m9vl4h4ail8w1ml";
+  SGr-IosevkaTermSS11 = "1bqa6d95ga9309m2vr3xzyrhf92dhw3hd3n5awpxip2mfr2k1fbp";
+  SGr-IosevkaTermSS12 = "00949ajl9xzpq7q045wb4hm8hfl94zpyp3fdjx0im7v4k2akzkjp";
+  SGr-IosevkaTermSS13 = "1cdwxb3bykxkr3ifprmh4pwc33cbyrn26d2h1hix9xsjw5nw99c6";
+  SGr-IosevkaTermSS14 = "1k0gwla5xkn8z70m36mhlhs7zm1sj7q33j68mb2wm783lapbll7v";
+  SGr-IosevkaTermSS15 = "1gjac767vi97qs8hqdklzqqb75dz0yx0z9pjr2lribfv0dvxvhss";
+  SGr-IosevkaTermSS16 = "0f738zydh51gvs68f0csax36bf2pi94pqbp0yjjqyrpx5c9m4pq0";
+  SGr-IosevkaTermSS17 = "1rmdb0nbdy47q8v3b7mpb1df5x9yfv7ijs26xwv64aas75hjf8vk";
+  SGr-IosevkaTermSS18 = "0jyidsr9aaccrc9bs7k8m5rj11p6vsxdrl2mslgc2bfwcarg89cm";
 }
diff --git a/pkgs/data/fonts/iwona/default.nix b/pkgs/data/fonts/iwona/default.nix
index df5569f53797a..6a40b20b28e00 100644
--- a/pkgs/data/fonts/iwona/default.nix
+++ b/pkgs/data/fonts/iwona/default.nix
@@ -14,7 +14,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A two-element sans-serif typeface, created by Małgorzata Budyta";
+    description = "Two-element sans-serif typeface, created by Małgorzata Budyta";
     homepage = "https://jmn.pl/en/kurier-i-iwona/";
     # "[...] GUST Font License (GFL), which is a free license, legally
     # equivalent to the LaTeX Project Public # License (LPPL), version 1.3c or
diff --git a/pkgs/data/fonts/jetbrains-mono/default.nix b/pkgs/data/fonts/jetbrains-mono/default.nix
index c13f42abe6e14..326659519862f 100644
--- a/pkgs/data/fonts/jetbrains-mono/default.nix
+++ b/pkgs/data/fonts/jetbrains-mono/default.nix
@@ -24,7 +24,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A typeface made for developers";
+    description = "Typeface made for developers";
     homepage = "https://jetbrains.com/mono/";
     changelog = "https://github.com/JetBrains/JetBrainsMono/blob/v${version}/Changelog.md";
     license = licenses.ofl;
diff --git a/pkgs/data/fonts/jost/default.nix b/pkgs/data/fonts/jost/default.nix
index f5d3a1e48b5a1..c8577e5e171e5 100644
--- a/pkgs/data/fonts/jost/default.nix
+++ b/pkgs/data/fonts/jost/default.nix
@@ -19,7 +19,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/indestructible-type/Jost";
-    description = "A sans serif font by Indestructible Type";
+    description = "Sans serif font by Indestructible Type";
     license = licenses.ofl;
     maintainers = [ maintainers.ar1a ];
   };
diff --git a/pkgs/data/fonts/joypixels/default.nix b/pkgs/data/fonts/joypixels/default.nix
index 5938172756697..29e4eb118888f 100644
--- a/pkgs/data/fonts/joypixels/default.nix
+++ b/pkgs/data/fonts/joypixels/default.nix
@@ -20,9 +20,9 @@ let
   };
 
   joypixels-free-license = with systemSpecific; {
-    spdxId = "LicenseRef-JoyPixels-Free-6.0";
-    fullName = "JoyPixels Free License Agreement 6.0";
-    url = "https://cdn.joypixels.com/distributions/${systemTag}/license/free-license.pdf";
+    spdxId = "LicenseRef-JoyPixels-Free";
+    fullName = "JoyPixels Free License Agreement";
+    url = "https://cdn.joypixels.com/free-license.pdf";
     free = false;
   };
 
@@ -43,11 +43,16 @@ let
     unfree licenses.
 
     configuration.nix:
-      nixpkgs.config.allowUnfree = true;
+      nixpkgs.config.allowUnfreePredicate = pkg:
+        builtins.elem (lib.getName pkg) [
+          "joypixels"
+        ];
       nixpkgs.config.joypixels.acceptLicense = true;
 
     config.nix:
-      allowUnfree = true;
+      allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
+        "joypixels"
+      ];
       joypixels.acceptLicense = true;
 
     [1]: ${joypixels-free-license.url}
@@ -58,15 +63,15 @@ in
 
 stdenv.mkDerivation rec {
   pname = "joypixels";
-  version = "6.6.0";
+  version = "8.0.0";
 
   src = assert !acceptLicense -> throwLicense;
     with systemSpecific; fetchurl {
       name = fontFile;
       url = "https://cdn.joypixels.com/distributions/${systemTag}/font/${version}/${fontFile}";
       sha256 = {
-        darwin = "0qcmb2vn2nykyikzgnlma627zhks7ksy1vkgvpcmqwyxq4bd38d7";
-      }.${kernel.name} or "17gjaz7353zyprmds64p01qivy2r8pwf88nvvhi57idas2qd604n";
+        darwin = "0kj4nck6k91avhan9iy3n8hhk47xr44rd1lzljjx3w2yzw1w9zvv";
+      }.${kernel.name} or "1bkyclgmvl6ppbdvidc5xr1g6f215slf0glnh5p6fsfbxc5h95bw";
     };
 
   dontUnpack = true;
@@ -80,24 +85,29 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The finest emoji you can use legally (formerly EmojiOne)";
+    description = "Finest emoji you can use legally (formerly EmojiOne)";
     longDescription = ''
-      Updated for 2021! JoyPixels 6.6 includes 3,559 originally crafted icon
-      designs and is 100% Unicode 13.1 compatible. We offer the largest
-      selection of files ranging from png, svg, iconjar, sprites, and fonts.
+      Updated for 2023! JoyPixels 8.0 includes 3,702 originally crafted icon
+      designs and is 100% Unicode 15.0 compatible. We offer the largest
+      selection of files ranging from png, svg, iconjar, and fonts (sprites
+      available upon request).
     '';
     homepage = "https://www.joypixels.com/fonts";
+    hydraPlatforms = []; # Just a binary file download, nothing to cache.
     license =
       let
         free-license = joypixels-free-license;
         appendix = joypixels-license-appendix;
       in with systemSpecific; {
-        spdxId = "LicenseRef-JoyPixels-Free-6.0-with-${capitalized}-Appendix";
+        spdxId = "LicenseRef-JoyPixels-Free-with-${capitalized}-Appendix";
         fullName = "${free-license.fullName} with ${appendix.fullName}";
         url = free-license.url;
         appendixUrl = appendix.url;
         free = false;
       };
     maintainers = with maintainers; [ toonn jtojnar ];
+    # Not quite accurate since it's a font, not a program, but clearly
+    # indicates we're not actually building it from source.
+    sourceProvenance = [ sourceTypes.binaryNativeCode ];
   };
 }
diff --git a/pkgs/data/fonts/julia-mono/default.nix b/pkgs/data/fonts/julia-mono/default.nix
index 50172de67f4ba..748c043ad62fa 100644
--- a/pkgs/data/fonts/julia-mono/default.nix
+++ b/pkgs/data/fonts/julia-mono/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A monospaced font for scientific and technical computing";
+    description = "Monospaced font for scientific and technical computing";
     longDescription = ''
       JuliaMono is a monospaced typeface designed for use in text editing
       environments that require a wide range of specialist and technical Unicode
diff --git a/pkgs/data/fonts/junicode/default.nix b/pkgs/data/fonts/junicode/default.nix
index 1bc12ad70abbd..c3d5fffb5a8e8 100644
--- a/pkgs/data/fonts/junicode/default.nix
+++ b/pkgs/data/fonts/junicode/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "junicode";
-  version = "2.206";
+  version = "2.208";
 
   src = fetchzip {
     url = "https://github.com/psb1558/Junicode-font/releases/download/v${version}/Junicode_${version}.zip";
-    hash = "sha256-oOKg85Yz5/2/pvwjVqeQXE8xE7X+QJvPYwYN+E18oEc=";
+    hash = "sha256-uzPzZ6b/CxdcoXSsxf2Cfs9/MpcGn7pQfdwL37pbvXg=";
   };
 
   outputs = [ "out" "doc" "tex" ];
@@ -44,7 +44,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = {
     homepage = "https://github.com/psb1558/Junicode-font";
-    description = "A Unicode font for medievalists";
+    description = "Unicode font for medievalists";
     maintainers = with lib.maintainers; [ ivan-timokhin ];
     license = lib.licenses.ofl;
   };
diff --git a/pkgs/data/fonts/kanit/default.nix b/pkgs/data/fonts/kanit/default.nix
index 8875704ba6b63..88eb8740ee19e 100644
--- a/pkgs/data/fonts/kanit/default.nix
+++ b/pkgs/data/fonts/kanit/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://cadsondemak.github.io/kanit/";
-    description = "A loopless Thai and sans serif Latin typeface for contemporary and futuristic uses";
+    description = "Loopless Thai and sans serif Latin typeface for contemporary and futuristic uses";
     longDescription = ''
       Kanit means mathematics in Thai, and the Kanit typeface family is a formal
       Loopless Thai and Sans Latin design. It is a combination of concepts,
diff --git a/pkgs/data/fonts/kawkab-mono/default.nix b/pkgs/data/fonts/kawkab-mono/default.nix
index 1a2f51a6d625f..60e455dae6ca1 100644
--- a/pkgs/data/fonts/kawkab-mono/default.nix
+++ b/pkgs/data/fonts/kawkab-mono/default.nix
@@ -19,7 +19,7 @@ stdenvNoCC.mkDerivation {
   '';
 
   meta = {
-    description = "An arab fixed-width font";
+    description = "Arab fixed-width font";
     homepage = "https://makkuk.com/kawkab-mono/";
     license = lib.licenses.ofl;
   };
diff --git a/pkgs/data/fonts/kode-mono/default.nix b/pkgs/data/fonts/kode-mono/default.nix
index c4cd9f2de3613..3b1563c196571 100644
--- a/pkgs/data/fonts/kode-mono/default.nix
+++ b/pkgs/data/fonts/kode-mono/default.nix
@@ -18,7 +18,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A custom-designed typeface explicitly created for the developer community";
+    description = "Custom-designed typeface explicitly created for the developer community";
     homepage = "https://kodemono.com/";
     changelog = "https://github.com/isaozler/kode-mono/blob/main/CHANGELOG.md";
     license = licenses.ofl;
diff --git a/pkgs/data/fonts/lalezar-fonts/default.nix b/pkgs/data/fonts/lalezar-fonts/default.nix
index f54c17b51f3db..e08f638eed38e 100644
--- a/pkgs/data/fonts/lalezar-fonts/default.nix
+++ b/pkgs/data/fonts/lalezar-fonts/default.nix
@@ -22,7 +22,7 @@ stdenvNoCC.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/BornaIz/Lalezar";
-    description = "A multi-script display typeface for popular culture";
+    description = "Multi-script display typeface for popular culture";
     license = licenses.ofl;
     platforms = platforms.all;
     maintainers = [ ];
diff --git a/pkgs/data/fonts/league-gothic/default.nix b/pkgs/data/fonts/league-gothic/default.nix
index fd12e0a86591e..c119dc3f562f7 100644
--- a/pkgs/data/fonts/league-gothic/default.nix
+++ b/pkgs/data/fonts/league-gothic/default.nix
@@ -19,7 +19,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A revival of an old classic, Alternate Gothic #1";
+    description = "Revival of an old classic, Alternate Gothic #1";
     longDescription = ''
       League Gothic is a revival of an old classic, and one of our favorite
       typefaces, Alternate Gothic #1. It was originally designed by Morris
diff --git a/pkgs/data/fonts/league-script-number-one/default.nix b/pkgs/data/fonts/league-script-number-one/default.nix
index bc847f4f81c84..19f44bfd5b4a1 100644
--- a/pkgs/data/fonts/league-script-number-one/default.nix
+++ b/pkgs/data/fonts/league-script-number-one/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A modern, coquettish script font";
+    description = "Modern, coquettish script font";
     longDescription = ''
       This ain’t no Lucinda. League Script #1 is a modern, coquettish script
       font that sits somewhere between your high school girlfriend’s love notes
diff --git a/pkgs/data/fonts/league-spartan/default.nix b/pkgs/data/fonts/league-spartan/default.nix
index d0e36e591491e..10691f10c8e03 100644
--- a/pkgs/data/fonts/league-spartan/default.nix
+++ b/pkgs/data/fonts/league-spartan/default.nix
@@ -19,7 +19,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A fantastic new revival of ATF's classic Spartan, a geometric sans-serif that has no problem kicking its enemies in the chest.";
+    description = "Fantastic new revival of ATF's classic Spartan, a geometric sans-serif that has no problem kicking its enemies in the chest";
     longDescription = ''
       A new classic, this is a bold, modern, geometric sans-serif that has no
       problem kicking its enemies in the chest.
diff --git a/pkgs/data/fonts/lexend/default.nix b/pkgs/data/fonts/lexend/default.nix
index 9bb00bf105955..91eb497e901bf 100644
--- a/pkgs/data/fonts/lexend/default.nix
+++ b/pkgs/data/fonts/lexend/default.nix
@@ -28,7 +28,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.lexend.com";
-    description = "A variable font family designed to aid in reading proficiency";
+    description = "Variable font family designed to aid in reading proficiency";
     license = licenses.ofl;
     platforms = platforms.all;
     maintainers = with maintainers; [ fufexan ];
diff --git a/pkgs/data/fonts/libertinus/default.nix b/pkgs/data/fonts/libertinus/default.nix
index cc60f80965319..4d942c7e2b97d 100644
--- a/pkgs/data/fonts/libertinus/default.nix
+++ b/pkgs/data/fonts/libertinus/default.nix
@@ -18,7 +18,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The Libertinus font family";
+    description = "Libertinus font family";
     longDescription = ''
       The Libertinus font project began as a fork of the Linux Libertine and
       Linux Biolinum fonts. The original impetus was to add an OpenType math
diff --git a/pkgs/data/fonts/libre-baskerville/default.nix b/pkgs/data/fonts/libre-baskerville/default.nix
index 56d83554e9ca9..0be599e281e95 100644
--- a/pkgs/data/fonts/libre-baskerville/default.nix
+++ b/pkgs/data/fonts/libre-baskerville/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A webfont family optimized for body text";
+    description = "Webfont family optimized for body text";
     longDescription = ''
       Libre Baskerville is a webfont family optimized for body text. It's Based
       on 1941 ATF Baskerville Specimens but it has a taller x-height, wider
diff --git a/pkgs/data/fonts/libre-franklin/default.nix b/pkgs/data/fonts/libre-franklin/default.nix
index f6fe791743cdf..c9b0088816002 100644
--- a/pkgs/data/fonts/libre-franklin/default.nix
+++ b/pkgs/data/fonts/libre-franklin/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A reinterpretation and expansion based on the 1912 Morris Fuller Benton’s classic.";
+    description = "Reinterpretation and expansion based on the 1912 Morris Fuller Benton’s classic";
     homepage = "https://github.com/impallari/Libre-Franklin";
     license = licenses.ofl;
     maintainers = with maintainers; [ cmfwyp ];
diff --git a/pkgs/data/fonts/linden-hill/default.nix b/pkgs/data/fonts/linden-hill/default.nix
index 9e452d34b99ac..60f59ac678979 100644
--- a/pkgs/data/fonts/linden-hill/default.nix
+++ b/pkgs/data/fonts/linden-hill/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A digital version of Frederic Goudy’s Deepdene";
+    description = "Digital version of Frederic Goudy’s Deepdene";
     longDescription = ''
       Linden Hill is a digital version of Frederic Goudy’s Deepdene. The
       package includes roman and italic.
diff --git a/pkgs/data/fonts/linja-pi-pu-lukin/default.nix b/pkgs/data/fonts/linja-pi-pu-lukin/default.nix
index 40f330cec7c4c..3f320a6123354 100644
--- a/pkgs/data/fonts/linja-pi-pu-lukin/default.nix
+++ b/pkgs/data/fonts/linja-pi-pu-lukin/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A sitelen pona font resembling the style found in Toki Pona: The Language of Good (lipu pu), by jan Sa.";
+    description = "Sitelen pona font resembling the style found in Toki Pona: The Language of Good (lipu pu), by jan Sa";
     homepage = "https://jansa-tp.github.io/linja-pi-pu-lukin/";
     license = licenses.unfree; # license is unspecified in repository
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/linja-sike/default.nix b/pkgs/data/fonts/linja-sike/default.nix
index 88c723bff22b7..c5fed186c67c9 100644
--- a/pkgs/data/fonts/linja-sike/default.nix
+++ b/pkgs/data/fonts/linja-sike/default.nix
@@ -15,7 +15,7 @@ fetchurl {
   sha256 = "sha256-LkjG1Oao/LqKwI+eRZPzShTh7lz5DkooltXm7vxZC9w=";
 
   meta = with lib; {
-    description = "An extensive sitelen pona font by lipamanka";
+    description = "Extensive sitelen pona font by lipamanka";
     homepage = "https://docs.google.com/document/d/1d8kUIAVlB-JNgK3LWr_zVCuUOZTh2hF7CfC6xQgxsBs/edit?usp=sharing";
     downloadPage = "https://wyub.github.io/tokipona/linjasike";
     license = licenses.ofl;
diff --git a/pkgs/data/fonts/lmmath/default.nix b/pkgs/data/fonts/lmmath/default.nix
index 3881f0f0f4e76..b2b468e2bb413 100644
--- a/pkgs/data/fonts/lmmath/default.nix
+++ b/pkgs/data/fonts/lmmath/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The Latin Modern Math (LM Math) font completes the modernization of the Computer Modern family of typefaces designed and programmed by Donald E. Knuth";
+    description = "Latin Modern Math (LM Math) font completes the modernization of the Computer Modern family of typefaces designed and programmed by Donald E. Knuth";
     homepage = "http://www.gust.org.pl/projects/e-foundry/lm-math";
     # "The Latin Modern Math font is licensed under the GUST Font License (GFL),
     # which is a free license, legally equivalent to the LaTeX Project Public
diff --git a/pkgs/data/fonts/lxgw-wenkai/default.nix b/pkgs/data/fonts/lxgw-wenkai/default.nix
index e5d8094e39140..8c18f3ed1bba1 100644
--- a/pkgs/data/fonts/lxgw-wenkai/default.nix
+++ b/pkgs/data/fonts/lxgw-wenkai/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://lxgw.github.io/";
-    description = "An open-source Chinese font derived from Fontworks' Klee One";
+    description = "Open-source Chinese font derived from Fontworks' Klee One";
     license = licenses.ofl;
     platforms = platforms.all;
     maintainers = with maintainers; [ elliot ];
diff --git a/pkgs/data/fonts/melete/default.nix b/pkgs/data/fonts/melete/default.nix
index 3d3e24ac81daa..480ed2a468c16 100644
--- a/pkgs/data/fonts/melete/default.nix
+++ b/pkgs/data/fonts/melete/default.nix
@@ -24,7 +24,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
-    description = "A headline typeface that could be used as a movie title";
+    description = "Headline typeface that could be used as a movie title";
     platforms = platforms.all;
     maintainers = with maintainers; [ minijackson ];
     license = licenses.ofl;
diff --git a/pkgs/data/fonts/merriweather/default.nix b/pkgs/data/fonts/merriweather/default.nix
index d1b3359df26ef..f658f7943eb29 100644
--- a/pkgs/data/fonts/merriweather/default.nix
+++ b/pkgs/data/fonts/merriweather/default.nix
@@ -27,7 +27,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/SorkinType/Merriweather";
-    description = "A text face designed to be pleasant to read on screens";
+    description = "Text face designed to be pleasant to read on screens";
     license = licenses.ofl;
     platforms = platforms.all;
     maintainers = with maintainers; [ emily ];
diff --git a/pkgs/data/fonts/meslo-lg/default.nix b/pkgs/data/fonts/meslo-lg/default.nix
index be638a03229f8..0712248dc5aca 100644
--- a/pkgs/data/fonts/meslo-lg/default.nix
+++ b/pkgs/data/fonts/meslo-lg/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   outputHash = "1cppf8sk6r5wjnnas9n6iyag6pj9jvaic66lvwpqg3742s5akx6x";
 
   meta = {
-    description = "A customized version of Apple’s Menlo-Regular font";
+    description = "Customized version of Apple’s Menlo-Regular font";
     homepage = "https://github.com/andreberg/Meslo-Font/";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ ];
diff --git a/pkgs/data/fonts/migmix/default.nix b/pkgs/data/fonts/migmix/default.nix
index bcc0666f035d1..5c5212189e207 100644
--- a/pkgs/data/fonts/migmix/default.nix
+++ b/pkgs/data/fonts/migmix/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   outputHash = "1fhh8wg6lxwrnsg9rl4ihffl0bsp1wqa5gps9fx60kr6j9wpvmbg";
 
   meta = with lib; {
-    description = "A high-quality Japanese font based on M+ fonts and IPA fonts";
+    description = "High-quality Japanese font based on M+ fonts and IPA fonts";
     homepage = "http://mix-mplus-ipa.osdn.jp/migmix";
     license = licenses.ipa;
     maintainers = [ maintainers.mikoim ];
diff --git a/pkgs/data/fonts/migu/default.nix b/pkgs/data/fonts/migu/default.nix
index 09992ef5ec8c5..76c4afc706e66 100644
--- a/pkgs/data/fonts/migu/default.nix
+++ b/pkgs/data/fonts/migu/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   outputHash = "0nbpn21cxdd6gsgr3fadzjsnz84f2swpf81wmscmjgvd56ngndzh";
 
   meta = with lib; {
-    description = "A high-quality Japanese font based on modified M+ fonts and IPA fonts";
+    description = "High-quality Japanese font based on modified M+ fonts and IPA fonts";
     homepage = "http://mix-mplus-ipa.osdn.jp/migu/";
     license = licenses.ipa;
     maintainers = [ maintainers.mikoim ];
diff --git a/pkgs/data/fonts/mona-sans/default.nix b/pkgs/data/fonts/mona-sans/default.nix
index c73653c76ec3b..c8be0b40a041f 100644
--- a/pkgs/data/fonts/mona-sans/default.nix
+++ b/pkgs/data/fonts/mona-sans/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A variable font from GitHub";
+    description = "Variable font from GitHub";
     homepage = "https://github.com/mona-sans";
     changelog = "https://github.com/github/mona-sans/releases/tag/v${finalAttrs.version}";
     license = lib.licenses.ofl;
diff --git a/pkgs/data/fonts/monocraft/default.nix b/pkgs/data/fonts/monocraft/default.nix
index c1e4be656ce15..88680682a7c92 100644
--- a/pkgs/data/fonts/monocraft/default.nix
+++ b/pkgs/data/fonts/monocraft/default.nix
@@ -1,13 +1,13 @@
-{ stdenv, lib, fetchurl }:
+{ stdenvNoCC, lib, fetchurl }:
 
 let
-  version = "2.4";
+  version = "3.0";
   relArtifact = name: hash: fetchurl {
     inherit name hash;
     url = "https://github.com/IdreesInc/Monocraft/releases/download/v${version}/${name}";
   };
 in
-stdenv.mkDerivation {
+stdenvNoCC.mkDerivation {
   pname = "monocraft";
   inherit version;
 
@@ -18,21 +18,19 @@ stdenv.mkDerivation {
     (relArtifact "Monocraft-nerd-fonts-patched.ttf" "sha256-QxMp8UwcRjWySNHWoNeX2sX9teZ4+tCFj+DG41azsXw=")
   ];
 
-  sourceRoot = ".";
-  unpackCmd = ''cp "$curSrc" $(basename $curSrc)'';
-
+  dontUnpack = true;
   dontConfigure = true;
   dontBuild = true;
 
   installPhase = ''
     runHook preInstall
-    install -Dm644 -t $out/share/fonts/opentype *.otf
-    install -Dm644 -t $out/share/fonts/truetype *.ttf
+    find $srcs -name '*.otf' -exec install -Dm644 --target $out/share/fonts/opentype {} +
+    find $srcs -name '*.ttf' -exec install -Dm644 --target $out/share/fonts/truetype {} +
     runHook postInstall
   '';
 
   meta = with lib; {
-    description = "A programming font based on the typeface used in Minecraft";
+    description = "Programming font based on the typeface used in Minecraft";
     homepage = "https://github.com/IdreesInc/Monocraft";
     license = licenses.ofl;
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/mononoki/default.nix b/pkgs/data/fonts/mononoki/default.nix
index d943d42be7ace..5c4d3c79adcbc 100644
--- a/pkgs/data/fonts/mononoki/default.nix
+++ b/pkgs/data/fonts/mononoki/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/madmalik/mononoki";
-    description = "A font for programming and code review";
+    description = "Font for programming and code review";
     license = licenses.ofl;
     platforms = platforms.all;
   };
diff --git a/pkgs/data/fonts/montserrat/default.nix b/pkgs/data/fonts/montserrat/default.nix
index 6074018f55459..60ee2ee97f675 100644
--- a/pkgs/data/fonts/montserrat/default.nix
+++ b/pkgs/data/fonts/montserrat/default.nix
@@ -25,7 +25,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A geometric sans serif font with extended latin support (Regular, Alternates, Subrayada)";
+    description = "Geometric sans serif font with extended latin support (Regular, Alternates, Subrayada)";
     homepage = "https://www.fontspace.com/julieta-ulanovsky/montserrat";
     license = licenses.ofl;
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/nacelle/default.nix b/pkgs/data/fonts/nacelle/default.nix
index 2d670cdc229d9..c1ae48dc54a5e 100644
--- a/pkgs/data/fonts/nacelle/default.nix
+++ b/pkgs/data/fonts/nacelle/default.nix
@@ -24,7 +24,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
-    description = "A improved version of the Aileron font";
+    description = "Improved version of the Aileron font";
     platforms = platforms.all;
     maintainers = with maintainers; [ minijackson ];
     license = licenses.ofl;
diff --git a/pkgs/data/fonts/nahid-fonts/default.nix b/pkgs/data/fonts/nahid-fonts/default.nix
index d036eed35c966..069bf877bf742 100644
--- a/pkgs/data/fonts/nahid-fonts/default.nix
+++ b/pkgs/data/fonts/nahid-fonts/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/rastikerdar/nahid-font";
-    description = "A Persian (Farsi) Font - قلم (فونت) فارسی ناهید";
+    description = "Persian (Farsi) Font - قلم (فونت) فارسی ناهید";
     license = licenses.free;
     platforms = platforms.all;
     maintainers = [ ];
diff --git a/pkgs/data/fonts/nanum-gothic-coding/default.nix b/pkgs/data/fonts/nanum-gothic-coding/default.nix
index 3798a33b66c67..74741f6a7d2dc 100644
--- a/pkgs/data/fonts/nanum-gothic-coding/default.nix
+++ b/pkgs/data/fonts/nanum-gothic-coding/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A contemporary monospaced sans-serif typeface with a warm touch";
+    description = "Contemporary monospaced sans-serif typeface with a warm touch";
     homepage = "https://github.com/naver/nanumfont";
     license = licenses.ofl;
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/navilu/default.nix b/pkgs/data/fonts/navilu/default.nix
index afd9f85741c3b..8aaf36e60ed11 100644
--- a/pkgs/data/fonts/navilu/default.nix
+++ b/pkgs/data/fonts/navilu/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   installPhase = "install -Dm444 -t $out/share/fonts/truetype/ Navilu.ttf";
 
   meta = with lib; src.meta // {
-    description = "A Kannada handwriting font";
+    description = "Kannada handwriting font";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ ehmry ];
diff --git a/pkgs/data/fonts/norwester/default.nix b/pkgs/data/fonts/norwester/default.nix
index f1236d5c05c10..2efbf45fd3d13 100644
--- a/pkgs/data/fonts/norwester/default.nix
+++ b/pkgs/data/fonts/norwester/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://jamiewilson.io/norwester";
-    description = "A condensed geometric sans serif by Jamie Wilson";
+    description = "Condensed geometric sans serif by Jamie Wilson";
     maintainers = with maintainers; [ leenaars ];
     license = licenses.ofl;
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/office-code-pro/default.nix b/pkgs/data/fonts/office-code-pro/default.nix
index f05a7ddd319c8..5a7d744045440 100644
--- a/pkgs/data/fonts/office-code-pro/default.nix
+++ b/pkgs/data/fonts/office-code-pro/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A customized version of Source Code Pro";
+    description = "Customized version of Source Code Pro";
     longDescription = ''
       Office Code Pro is a customized version of Source Code Pro, the monospaced
       sans serif originally created by Paul D. Hunt for Adobe Systems
diff --git a/pkgs/data/fonts/oldstandard/default.nix b/pkgs/data/fonts/oldstandard/default.nix
index 33bf37c18baef..b85d9694613fe 100644
--- a/pkgs/data/fonts/oldstandard/default.nix
+++ b/pkgs/data/fonts/oldstandard/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/akryukov/oldstand";
-    description = "An attempt to revive a specific type of Modern style of serif typefaces";
+    description = "Attempt to revive a specific type of Modern style of serif typefaces";
     maintainers = with maintainers; [ raskin ];
     license = licenses.ofl;
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/open-fonts/default.nix b/pkgs/data/fonts/open-fonts/default.nix
index 3f76820979422..a6f2db7542dc6 100644
--- a/pkgs/data/fonts/open-fonts/default.nix
+++ b/pkgs/data/fonts/open-fonts/default.nix
@@ -19,7 +19,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A collection of beautiful free and open source fonts";
+    description = "Collection of beautiful free and open source fonts";
     homepage = "https://github.com/kiwi0fruit/open-fonts";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/ostrich-sans/default.nix b/pkgs/data/fonts/ostrich-sans/default.nix
index 67ca4b72823c8..e4f6c3bae2f6b 100644
--- a/pkgs/data/fonts/ostrich-sans/default.nix
+++ b/pkgs/data/fonts/ostrich-sans/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A gorgeous modern sans-serif with a very long neck";
+    description = "Gorgeous modern sans-serif with a very long neck";
     longDescription = ''
       A gorgeous modern sans-serif with a very long neck. With a whole slew of
       styles & weights.
diff --git a/pkgs/data/fonts/parastoo-fonts/default.nix b/pkgs/data/fonts/parastoo-fonts/default.nix
index a91596a66e513..214a9ca58d773 100644
--- a/pkgs/data/fonts/parastoo-fonts/default.nix
+++ b/pkgs/data/fonts/parastoo-fonts/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/rastikerdar/parastoo-font";
-    description = "A Persian (Farsi) Font - فونت ( قلم ) فارسی پرستو";
+    description = "Persian (Farsi) Font - فونت ( قلم ) فارسی پرستو";
     license = licenses.ofl;
     platforms = platforms.all;
     maintainers = [ ];
diff --git a/pkgs/data/fonts/paratype-pt/mono.nix b/pkgs/data/fonts/paratype-pt/mono.nix
index 86646ae0ac5de..91132642b2a7d 100644
--- a/pkgs/data/fonts/paratype-pt/mono.nix
+++ b/pkgs/data/fonts/paratype-pt/mono.nix
@@ -24,7 +24,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.paratype.ru/public/";
-    description = "An open Paratype font";
+    description = "Open Paratype font";
 
     license = "Open Paratype license";
     # no commercial distribution of the font on its own
diff --git a/pkgs/data/fonts/paratype-pt/sans.nix b/pkgs/data/fonts/paratype-pt/sans.nix
index dffd25c23aa59..90d90a56d454d 100644
--- a/pkgs/data/fonts/paratype-pt/sans.nix
+++ b/pkgs/data/fonts/paratype-pt/sans.nix
@@ -24,7 +24,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.paratype.ru/public/";
-    description = "An open Paratype font";
+    description = "Open Paratype font";
 
     license = "Open Paratype license";
     # no commercial distribution of the font on its own
diff --git a/pkgs/data/fonts/paratype-pt/serif.nix b/pkgs/data/fonts/paratype-pt/serif.nix
index f346382d1f738..4430d94cd7f15 100644
--- a/pkgs/data/fonts/paratype-pt/serif.nix
+++ b/pkgs/data/fonts/paratype-pt/serif.nix
@@ -24,7 +24,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.paratype.ru/public/";
-    description = "An open Paratype font";
+    description = "Open Paratype font";
 
     license = "Open Paratype license";
     # no commercial distribution of the font on its own
diff --git a/pkgs/data/fonts/pretendard/default.nix b/pkgs/data/fonts/pretendard/default.nix
index 9f62ad8dd4e5b..b01b298879cf3 100644
--- a/pkgs/data/fonts/pretendard/default.nix
+++ b/pkgs/data/fonts/pretendard/default.nix
@@ -23,7 +23,7 @@ let
 
       meta = with lib; {
         homepage = "https://github.com/orioncactus/pretendard";
-        description = "An alternative font to system-ui for all platforms";
+        description = "Alternative font to system-ui for all platforms";
         license = licenses.ofl;
         platforms = platforms.all;
         maintainers = with maintainers; [ sudosubin ];
diff --git a/pkgs/data/fonts/prociono/default.nix b/pkgs/data/fonts/prociono/default.nix
index 8749c9d0736e8..5d6ef71821e8f 100644
--- a/pkgs/data/fonts/prociono/default.nix
+++ b/pkgs/data/fonts/prociono/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A roman serif with blackletter elements";
+    description = "Roman serif with blackletter elements";
     longDescription = ''
       "Prociono" (pro-tsee-O-no) is an Esperanto word meaning either the star
       Procyon or the animal species known as the raccoon. It is a roman serif
diff --git a/pkgs/data/fonts/profont/default.nix b/pkgs/data/fonts/profont/default.nix
index e201d643afac2..a617d61cc98fa 100644
--- a/pkgs/data/fonts/profont/default.nix
+++ b/pkgs/data/fonts/profont/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://tobiasjung.name/profont/";
-    description = "A monospaced font created to be a most readable font for programming";
+    description = "Monospaced font created to be a most readable font for programming";
     maintainers = with maintainers; [ myrl ];
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/proggyfonts/default.nix b/pkgs/data/fonts/proggyfonts/default.nix
index 195b6ed1d39ad..919cdf2a3dce3 100644
--- a/pkgs/data/fonts/proggyfonts/default.nix
+++ b/pkgs/data/fonts/proggyfonts/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.upperbounds.net";
-    description = "A set of fixed-width screen fonts that are designed for code listings";
+    description = "Set of fixed-width screen fonts that are designed for code listings";
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = [ maintainers.myrl ];
diff --git a/pkgs/data/fonts/public-sans/default.nix b/pkgs/data/fonts/public-sans/default.nix
index 0682388978316..18e1b66e0ec56 100644
--- a/pkgs/data/fonts/public-sans/default.nix
+++ b/pkgs/data/fonts/public-sans/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A strong, neutral, principles-driven, open source typeface for text or display";
+    description = "Strong, neutral, principles-driven, open source typeface for text or display";
     homepage = "https://public-sans.digital.gov/";
     changelog = "https://github.com/uswds/public-sans/raw/v${version}/FONTLOG.txt";
     license = licenses.ofl;
diff --git a/pkgs/data/fonts/quattrocento-sans/default.nix b/pkgs/data/fonts/quattrocento-sans/default.nix
index 7659598842324..ce702c1c59930 100644
--- a/pkgs/data/fonts/quattrocento-sans/default.nix
+++ b/pkgs/data/fonts/quattrocento-sans/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.impallari.com/quattrocentosans/";
-    description = "A classic, elegant and sober sans-serif typeface";
+    description = "Classic, elegant and sober sans-serif typeface";
     license = licenses.ofl;
     platforms = platforms.all;
     maintainers = [ maintainers.rycee ];
diff --git a/pkgs/data/fonts/quattrocento/default.nix b/pkgs/data/fonts/quattrocento/default.nix
index a70396437ec1b..14618cb2ef399 100644
--- a/pkgs/data/fonts/quattrocento/default.nix
+++ b/pkgs/data/fonts/quattrocento/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.impallari.com/quattrocento/";
-    description = "A classic, elegant, sober and strong serif typeface";
+    description = "Classic, elegant, sober and strong serif typeface";
     license = licenses.ofl;
     platforms = platforms.all;
     maintainers = [ maintainers.rycee ];
diff --git a/pkgs/data/fonts/quivira/default.nix b/pkgs/data/fonts/quivira/default.nix
index 8affc4f6c729b..db01e2b7d1508 100644
--- a/pkgs/data/fonts/quivira/default.nix
+++ b/pkgs/data/fonts/quivira/default.nix
@@ -17,7 +17,7 @@ in fetchurl {
 
   sha256 = "Hhl+0Oc5DDohOpBbEARMunMYCpr6nn4X6RgpQeEksNo=";
   meta = {
-    description = "a free Unicode font in the OpenType format which is supported by every usual office program or printer";
+    description = "Free Unicode font in the OpenType format which is supported by every usual office program or printer";
     homepage = "http://www.quivira-font.com/";
     license = lib.licenses.publicDomain;
     maintainers = [ lib.maintainers.nosewings ];
diff --git a/pkgs/data/fonts/recursive/default.nix b/pkgs/data/fonts/recursive/default.nix
index f634a8c5343af..c01bd294ea374 100644
--- a/pkgs/data/fonts/recursive/default.nix
+++ b/pkgs/data/fonts/recursive/default.nix
@@ -17,7 +17,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://recursive.design/";
-    description = "A variable font family for code & UI";
+    description = "Variable font family for code & UI";
     license = licenses.ofl;
     maintainers = [ maintainers.eadwu ];
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/ricty/default.nix b/pkgs/data/fonts/ricty/default.nix
index 6bdd331c72c4b..7c1c6d3587360 100644
--- a/pkgs/data/fonts/ricty/default.nix
+++ b/pkgs/data/fonts/ricty/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A high-quality Japanese font based on Inconsolata and Migu 1M";
+    description = "High-quality Japanese font based on Inconsolata and Migu 1M";
     homepage = "https://rictyfonts.github.io";
     license = licenses.unfree;
     maintainers = [ maintainers.mikoim ];
diff --git a/pkgs/data/fonts/rictydiminished-with-firacode/default.nix b/pkgs/data/fonts/rictydiminished-with-firacode/default.nix
index c8d8ca42f9e46..ad1b450618801 100644
--- a/pkgs/data/fonts/rictydiminished-with-firacode/default.nix
+++ b/pkgs/data/fonts/rictydiminished-with-firacode/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/hakatashi/RictyDiminished-with-FiraCode";
-    description = "The best Japanese programming font meets the awesome ligatures of Firacode";
+    description = "Best Japanese programming font meets the awesome ligatures of Firacode";
     license = licenses.ofl;
     platforms = platforms.all;
     maintainers = with maintainers; [ mt-caret ];
diff --git a/pkgs/data/fonts/roboto-serif/default.nix b/pkgs/data/fonts/roboto-serif/default.nix
index 99e8ea58b4e4b..ba8aa7a831e09 100644
--- a/pkgs/data/fonts/roboto-serif/default.nix
+++ b/pkgs/data/fonts/roboto-serif/default.nix
@@ -28,7 +28,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The Roboto family of fonts";
+    description = "Roboto family of fonts";
     longDescription = ''
       Google’s signature family of fonts, the default font on Android and
       Chrome OS, and the recommended font for Google’s visual language,
diff --git a/pkgs/data/fonts/roboto/default.nix b/pkgs/data/fonts/roboto/default.nix
index 02ca82edf10f0..b9e287945a4c2 100644
--- a/pkgs/data/fonts/roboto/default.nix
+++ b/pkgs/data/fonts/roboto/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = {
     homepage = "https://github.com/google/roboto";
-    description = "The Roboto family of fonts";
+    description = "Roboto family of fonts";
     longDescription = ''
       Google’s signature family of fonts, the default font on Android and
       Chrome OS, and the recommended font for Google’s visual language,
diff --git a/pkgs/data/fonts/rounded-mgenplus/default.nix b/pkgs/data/fonts/rounded-mgenplus/default.nix
index 688518150fc7c..b314fd45eef89 100644
--- a/pkgs/data/fonts/rounded-mgenplus/default.nix
+++ b/pkgs/data/fonts/rounded-mgenplus/default.nix
@@ -22,7 +22,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Japanese font based on Rounded M+ and Noto Sans Japanese";
+    description = "Japanese font based on Rounded M+ and Noto Sans Japanese";
     homepage = "http://jikasei.me/font/rounded-mgenplus/";
     license = licenses.ofl;
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/route159/default.nix b/pkgs/data/fonts/route159/default.nix
index e19d25d61d0f2..efaf1d6ff2427 100644
--- a/pkgs/data/fonts/route159/default.nix
+++ b/pkgs/data/fonts/route159/default.nix
@@ -24,7 +24,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
-    description = "A weighted sans serif font";
+    description = "Weighted sans serif font";
     platforms = platforms.all;
     maintainers = with maintainers; [ leenaars minijackson ];
     license = licenses.ofl;
diff --git a/pkgs/data/fonts/rubik/default.nix b/pkgs/data/fonts/rubik/default.nix
index c9e20fa6351a1..d77753f515de1 100644
--- a/pkgs/data/fonts/rubik/default.nix
+++ b/pkgs/data/fonts/rubik/default.nix
@@ -80,7 +80,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://fonts.google.com/specimen/Rubik";
-    description = "Rubik Font - is a 5 weight Roman + Italic family.";
+    description = "Rubik Font - is a 5 weight Roman + Italic family";
     longDescription = ''
       The Rubik Fonts project was initiated as part of the Chrome CubeLab
       project.
diff --git a/pkgs/data/fonts/sahel-fonts/default.nix b/pkgs/data/fonts/sahel-fonts/default.nix
index 860a0066270d1..7fc48704e798a 100644
--- a/pkgs/data/fonts/sahel-fonts/default.nix
+++ b/pkgs/data/fonts/sahel-fonts/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/rastikerdar/sahel-font";
-    description = "A Persian (farsi) Font - فونت (قلم) فارسی ساحل";
+    description = "Persian (farsi) Font - فونت (قلم) فارسی ساحل";
     license = licenses.ofl;
     platforms = platforms.all;
     maintainers = [ ];
diff --git a/pkgs/data/fonts/samim-fonts/default.nix b/pkgs/data/fonts/samim-fonts/default.nix
index a1785e1b93739..2f36075bad93e 100644
--- a/pkgs/data/fonts/samim-fonts/default.nix
+++ b/pkgs/data/fonts/samim-fonts/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/rastikerdar/samim-font";
-    description = "A Persian (Farsi) Font - فونت (قلم) فارسی صمیم";
+    description = "Persian (Farsi) Font - فونت (قلم) فارسی صمیم";
     license = licenses.ofl;
     platforms = platforms.all;
     maintainers = [ ];
diff --git a/pkgs/data/fonts/sarabun/default.nix b/pkgs/data/fonts/sarabun/default.nix
index 42bc349effe27..3e4fa018e7125 100644
--- a/pkgs/data/fonts/sarabun/default.nix
+++ b/pkgs/data/fonts/sarabun/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://cadsondemak.github.io/${pname}/";
-    description = "A slightly-condensed looped Thai and sans serif Latin typeface for communications";
+    description = "Slightly-condensed looped Thai and sans serif Latin typeface for communications";
     longDescription = ''
       The most popular typeface from the 13 fonts from SIPA Thailand’s National
       fonts project. Sarabun was designed by Suppakit Chalermlarp to be a
diff --git a/pkgs/data/fonts/scheherazade/default.nix b/pkgs/data/fonts/scheherazade/default.nix
index ffaf8aeb7824a..81adc546e4447 100644
--- a/pkgs/data/fonts/scheherazade/default.nix
+++ b/pkgs/data/fonts/scheherazade/default.nix
@@ -29,7 +29,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://software.sil.org/scheherazade/";
-    description = "A font designed in a similar style to traditional Naskh typefaces";
+    description = "Font designed in a similar style to traditional Naskh typefaces";
     longDescription = ''
 
       Scheherazade${lib.optionalString new " New"}, named after the heroine of
diff --git a/pkgs/data/fonts/shabnam-fonts/default.nix b/pkgs/data/fonts/shabnam-fonts/default.nix
index c5f5e00e023a4..fd8f146eb3558 100644
--- a/pkgs/data/fonts/shabnam-fonts/default.nix
+++ b/pkgs/data/fonts/shabnam-fonts/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/rastikerdar/shabnam-font";
-    description = "A Persian (Farsi) Font - فونت (قلم) فارسی شبنم";
+    description = "Persian (Farsi) Font - فونت (قلم) فارسی شبنم";
     license = licenses.ofl;
     platforms = platforms.all;
     maintainers = [ ];
diff --git a/pkgs/data/fonts/shrikhand/default.nix b/pkgs/data/fonts/shrikhand/default.nix
index 0db94ebd4ecba..ce3423003dbd5 100644
--- a/pkgs/data/fonts/shrikhand/default.nix
+++ b/pkgs/data/fonts/shrikhand/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation {
 
   meta = with lib; {
     homepage = "https://jonpinhorn.github.io/shrikhand/";
-    description = "A vibrant and playful typeface for both Latin and Gujarati writing systems";
+    description = "Vibrant and playful typeface for both Latin and Gujarati writing systems";
     maintainers = with maintainers; [ sternenseemann ];
     platforms = platforms.all;
     license = licenses.ofl;
diff --git a/pkgs/data/fonts/siji/default.nix b/pkgs/data/fonts/siji/default.nix
index 4429729f7a5c2..0ae5914eb1318 100644
--- a/pkgs/data/fonts/siji/default.nix
+++ b/pkgs/data/fonts/siji/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/stark/siji";
-    description = "An iconic bitmap font based on Stlarch with additional glyphs";
+    description = "Iconic bitmap font based on Stlarch with additional glyphs";
     license = licenses.gpl2;
     platforms = platforms.all;
     maintainers = [ maintainers.asymmetric ];
diff --git a/pkgs/data/fonts/sil-padauk/default.nix b/pkgs/data/fonts/sil-padauk/default.nix
index fe45da1317383..f3df1d1febe28 100644
--- a/pkgs/data/fonts/sil-padauk/default.nix
+++ b/pkgs/data/fonts/sil-padauk/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Unicode-based font family with broad support for writing systems that use the Myanmar script";
+    description = "Unicode-based font family with broad support for writing systems that use the Myanmar script";
     homepage = "https://software.sil.org/padauk";
     license = licenses.ofl;
     maintainers = with maintainers; [ serge ];
diff --git a/pkgs/data/fonts/sitelen-seli-kiwen/default.nix b/pkgs/data/fonts/sitelen-seli-kiwen/default.nix
index de0fec7b6f3eb..363ce2da59611 100644
--- a/pkgs/data/fonts/sitelen-seli-kiwen/default.nix
+++ b/pkgs/data/fonts/sitelen-seli-kiwen/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A handwritten sitelen pona font supporting UCSUR";
+    description = "Handwritten sitelen pona font supporting UCSUR";
     homepage = "https://www.kreativekorp.com/software/fonts/sitelenselikiwen/";
     license = licenses.ofl;
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/smc-chilanka/default.nix b/pkgs/data/fonts/smc-chilanka/default.nix
new file mode 100644
index 0000000000000..f5e5ee2cb5d87
--- /dev/null
+++ b/pkgs/data/fonts/smc-chilanka/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenvNoCC, fetchFromGitLab, python3Packages, gnumake, truetype ? false }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "chilanka";
+  version = "1.7";
+
+  src = fetchFromGitLab {
+    group = "smc";
+    owner = "fonts";
+    repo = "chilanka";
+    rev = "Version${version}";
+    hash = "sha256-VvotRUQks8vUqJOcYHqy6cuwaAKYg4OqtiAjaBIdBRk=";
+  };
+
+  nativeBuildInputs = [ gnumake python3Packages.fontmake ];
+
+  buildFlags = [ "otf" ] ++ lib.optional truetype "ttf";
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm444 -t $out/share/fonts/opentype build/*.otf
+    ${lib.optionalString truetype "install -Dm444 -t $out/share/fonts/truetype build/*.ttf"}
+
+    install -Dm444 -t $out/etc/fonts/conf.d *.conf
+
+    install -Dm644 -t $out/share/doc/${pname}-${version} OFL.txt FONTLOG.md
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://smc.org.in/fonts/chilanka";
+    description = "Chilanka Malayalam Typeface";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ adtya ];
+  };
+}
diff --git a/pkgs/data/fonts/smiley-sans/default.nix b/pkgs/data/fonts/smiley-sans/default.nix
index 62d65aa5b0105..7a863c3d10d74 100644
--- a/pkgs/data/fonts/smiley-sans/default.nix
+++ b/pkgs/data/fonts/smiley-sans/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A condensed and oblique Chinese typeface seeking a visual balance between the humanist and the geometric";
+    description = "Condensed and oblique Chinese typeface seeking a visual balance between the humanist and the geometric";
     homepage = "https://atelier-anchor.com/typefaces/smiley-sans/";
     changelog = "https://github.com/atelier-anchor/smiley-sans/blob/main/CHANGELOG.md";
     license = licenses.ofl;
diff --git a/pkgs/data/fonts/sniglet/default.nix b/pkgs/data/fonts/sniglet/default.nix
index ab60e9c56f7cb..70cfd227d0458 100644
--- a/pkgs/data/fonts/sniglet/default.nix
+++ b/pkgs/data/fonts/sniglet/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A fun rounded display face that’s great for headlines";
+    description = "Fun rounded display face that’s great for headlines";
     longDescription = ''
       A rounded display face that’s great for headlines. It comes with a full
       character set, so you can type in Icelandic or even French!
diff --git a/pkgs/data/fonts/sorts-mill-goudy/default.nix b/pkgs/data/fonts/sorts-mill-goudy/default.nix
index 1edbbd9787ed3..55acaafb43af9 100644
--- a/pkgs/data/fonts/sorts-mill-goudy/default.nix
+++ b/pkgs/data/fonts/sorts-mill-goudy/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A ‘revival’ of Goudy Oldstyle and Italic";
+    description = "‘revival’ of Goudy Oldstyle and Italic";
     longDescription = ''
       A 'revival' of Goudy Oldstyle and Italic, with features including small
       capitals (in the roman only), oldstyle and lining figures, superscripts
diff --git a/pkgs/data/fonts/source-han-code-jp/default.nix b/pkgs/data/fonts/source-han-code-jp/default.nix
index 2a64680ee19bc..5c00f564320b3 100644
--- a/pkgs/data/fonts/source-han-code-jp/default.nix
+++ b/pkgs/data/fonts/source-han-code-jp/default.nix
@@ -18,7 +18,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = {
-    description = "A monospaced Latin font suitable for coding";
+    description = "Monospaced Latin font suitable for coding";
     maintainers = with lib.maintainers; [ mt-caret ];
     platforms = with lib.platforms; all;
     homepage = "https://blogs.adobe.com/CCJKType/2015/06/source-han-code-jp.html";
diff --git a/pkgs/data/fonts/source-han/default.nix b/pkgs/data/fonts/source-han/default.nix
index 573cfd6c5b94f..2f177160da991 100644
--- a/pkgs/data/fonts/source-han/default.nix
+++ b/pkgs/data/fonts/source-han/default.nix
@@ -44,7 +44,7 @@ let
       '';
 
       meta = {
-        description = "An open source Pan-CJK ${description} typeface";
+        description = "Open source Pan-CJK ${description} typeface";
         homepage = "https://github.com/adobe-fonts/source-han-${family}";
         license = lib.licenses.ofl;
         maintainers = with lib.maintainers; [ taku0 emily ];
@@ -71,7 +71,7 @@ let
       postFetch = "install -Dm444 $downloadedFile $out/share/fonts/variable/SourceHan${Family}-VF.${format}.ttc";
 
       meta = {
-        description = "An open source Pan-CJK ${Family} typeface";
+        description = "Open source Pan-CJK ${Family} typeface";
         homepage = "https://github.com/adobe-fonts/source-han-${family}";
         license = lib.licenses.ofl;
         maintainers = with lib.maintainers; [ taku0 emily ];
diff --git a/pkgs/data/fonts/tamsyn/default.nix b/pkgs/data/fonts/tamsyn/default.nix
index 64955efd62e82..f99624f4a483c 100644
--- a/pkgs/data/fonts/tamsyn/default.nix
+++ b/pkgs/data/fonts/tamsyn/default.nix
@@ -35,7 +35,7 @@ in stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A monospace bitmap font aimed at programmers";
+    description = "Monospace bitmap font aimed at programmers";
     longDescription = ''Tamsyn is a monospace bitmap font, primarily aimed at
     programmers. It was derived from Gilles Boccon-Gibod's MonteCarlo. Tamsyn
     font was further inspired by Gohufont, Terminus, Dina, Proggy, Fixedsys, and
diff --git a/pkgs/data/fonts/terminus-font-ttf/default.nix b/pkgs/data/fonts/terminus-font-ttf/default.nix
index 2cd5da73d84d9..eb6d139b33a9c 100644
--- a/pkgs/data/fonts/terminus-font-ttf/default.nix
+++ b/pkgs/data/fonts/terminus-font-ttf/default.nix
@@ -23,7 +23,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A clean fixed width TTF font";
+    description = "Clean fixed width TTF font";
     longDescription = ''
       Monospaced bitmap font designed for long work with computers
       (TTF version, mainly for Java applications)
diff --git a/pkgs/data/fonts/terminus-font/default.nix b/pkgs/data/fonts/terminus-font/default.nix
index 5b405c12405f3..760993dcd8cf2 100644
--- a/pkgs/data/fonts/terminus-font/default.nix
+++ b/pkgs/data/fonts/terminus-font/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   enableParallelInstalling = false;
 
   meta = with lib; {
-    description = "A clean fixed width font";
+    description = "Clean fixed width font";
     longDescription = ''
       Terminus Font is designed for long (8 and more hours per day) work
       with computers. Version 4.30 contains 850 characters, covers about
diff --git a/pkgs/data/fonts/tewi/default.nix b/pkgs/data/fonts/tewi/default.nix
index 3e68042631c70..d8906a2284dae 100644
--- a/pkgs/data/fonts/tewi/default.nix
+++ b/pkgs/data/fonts/tewi/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A nice bitmap font, readable even at small sizes";
+    description = "Nice bitmap font, readable even at small sizes";
     longDescription = ''
       Tewi is a bitmap font, readable even at very small font sizes. This is
       particularily useful while programming, to fit a lot of code on your
diff --git a/pkgs/data/fonts/theano/default.nix b/pkgs/data/fonts/theano/default.nix
index 3a3107e136666..08f7c805eda4a 100644
--- a/pkgs/data/fonts/theano/default.nix
+++ b/pkgs/data/fonts/theano/default.nix
@@ -23,7 +23,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/akryukov/theano";
-    description = "An old-style font designed from historic samples";
+    description = "Old-style font designed from historic samples";
     maintainers = with maintainers; [ raskin rycee ];
     license = licenses.ofl;
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/times-newer-roman/default.nix b/pkgs/data/fonts/times-newer-roman/default.nix
index 840e75c710b30..6f856558cb4ab 100644
--- a/pkgs/data/fonts/times-newer-roman/default.nix
+++ b/pkgs/data/fonts/times-newer-roman/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A font that looks just like Times New Roman, except each character is 5-10% wider";
+    description = "Font that looks just like Times New Roman, except each character is 5-10% wider";
     homepage = "https://timesnewerroman.com/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/data/fonts/tlwg/default.nix b/pkgs/data/fonts/tlwg/default.nix
index 4b0f780a38b56..a9216ad0d356c 100644
--- a/pkgs/data/fonts/tlwg/default.nix
+++ b/pkgs/data/fonts/tlwg/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ fontforge ];
 
   meta = with lib; {
-    description = "A collection of Thai scalable fonts available under free licenses";
+    description = "Collection of Thai scalable fonts available under free licenses";
     homepage = "https://linux.thai.net/projects/fonts-tlwg";
     license = with licenses; [ gpl2 publicDomain lppl13c free ];
     maintainers = [ maintainers.yrashk ];
diff --git a/pkgs/data/fonts/tt2020/default.nix b/pkgs/data/fonts/tt2020/default.nix
index 63b4e1834a3b0..a427c4cf14b8c 100644
--- a/pkgs/data/fonts/tt2020/default.nix
+++ b/pkgs/data/fonts/tt2020/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An advanced, open source, hyperrealistic, multilingual typewriter font for a new decade";
+    description = "Advanced, open source, hyperrealistic, multilingual typewriter font for a new decade";
     homepage = "https://ctrlcctrlv.github.io/TT2020";
     license = licenses.ofl;
     maintainers = with maintainers; [ sikmir ];
diff --git a/pkgs/data/fonts/u001/default.nix b/pkgs/data/fonts/u001/default.nix
index b0359ac1e55e8..0a1a552ed9cd3 100644
--- a/pkgs/data/fonts/u001/default.nix
+++ b/pkgs/data/fonts/u001/default.nix
@@ -34,7 +34,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Univers-like typeface that comes with GhostPDL made by URW++";
+    description = "Univers-like typeface that comes with GhostPDL made by URW++";
     homepage = "https://fontlibrary.org/en/font/u001";
     license = licenses.aladdin;
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix b/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
index 27933b5b139d4..4a1dfa00916a2 100644
--- a/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
+++ b/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The Ultimate Oldschool PC Font Pack (TTF Fonts)";
+    description = "Ultimate Oldschool PC Font Pack (TTF Fonts)";
     homepage = "https://int10h.org/oldschool-pc-fonts/";
     changelog = "https://int10h.org/oldschool-pc-fonts/readme/#history";
     license = licenses.cc-by-sa-40;
diff --git a/pkgs/data/fonts/undefined-medium/default.nix b/pkgs/data/fonts/undefined-medium/default.nix
index f981b9f85e29b..8dd3cc71ac27d 100644
--- a/pkgs/data/fonts/undefined-medium/default.nix
+++ b/pkgs/data/fonts/undefined-medium/default.nix
@@ -19,7 +19,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://undefined-medium.com/";
-    description = "A pixel grid-based monospace typeface";
+    description = "Pixel grid-based monospace typeface";
     longDescription = ''
       undefined medium is a free and open-source pixel grid-based
       monospace typeface suitable for programming, writing, and
diff --git a/pkgs/data/fonts/vazir-code-font/default.nix b/pkgs/data/fonts/vazir-code-font/default.nix
index 6ba69b57feafc..6c76f4c6d5030 100644
--- a/pkgs/data/fonts/vazir-code-font/default.nix
+++ b/pkgs/data/fonts/vazir-code-font/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/rastikerdar/vazir-code-font";
-    description = "A Persian (farsi) Monospaced Font for coding";
+    description = "Persian (farsi) Monospaced Font for coding";
     license = licenses.publicDomain;
     platforms = platforms.all;
     maintainers = [ maintainers.dearrude ];
diff --git a/pkgs/data/fonts/vazir-fonts/default.nix b/pkgs/data/fonts/vazir-fonts/default.nix
index d65b270c881f0..11b991306a0a8 100644
--- a/pkgs/data/fonts/vazir-fonts/default.nix
+++ b/pkgs/data/fonts/vazir-fonts/default.nix
@@ -23,7 +23,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/rastikerdar/vazir-font";
-    description = "A Persian (Farsi) Font - قلم (فونت) فارسی وزیر";
+    description = "Persian (Farsi) Font - قلم (فونت) فارسی وزیر";
     license = licenses.ofl;
     platforms = platforms.all;
     maintainers = [ ];
diff --git a/pkgs/data/fonts/vegur/default.nix b/pkgs/data/fonts/vegur/default.nix
index e03f25951b544..b161ad4e3e352 100644
--- a/pkgs/data/fonts/vegur/default.nix
+++ b/pkgs/data/fonts/vegur/default.nix
@@ -24,7 +24,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "http://dotcolon.net/font/vegur/";
-    description = "A humanist sans serif font";
+    description = "Humanist sans serif font";
     platforms = platforms.all;
     maintainers = with maintainers; [ minijackson samueldr ];
     license = licenses.cc0;
diff --git a/pkgs/data/fonts/vollkorn/default.nix b/pkgs/data/fonts/vollkorn/default.nix
index deeeac19c9394..466d16b086a42 100644
--- a/pkgs/data/fonts/vollkorn/default.nix
+++ b/pkgs/data/fonts/vollkorn/default.nix
@@ -25,7 +25,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://vollkorn-typeface.com/";
-    description = "The free and healthy typeface for bread and butter use";
+    description = "Free and healthy typeface for bread and butter use";
     license = licenses.ofl;
     platforms = platforms.all;
     maintainers = [ maintainers.schmittlauch ];
diff --git a/pkgs/data/fonts/work-sans/default.nix b/pkgs/data/fonts/work-sans/default.nix
index c46b101328178..071c6bafb1828 100644
--- a/pkgs/data/fonts/work-sans/default.nix
+++ b/pkgs/data/fonts/work-sans/default.nix
@@ -18,7 +18,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A grotesque sans";
+    description = "Grotesque sans";
     homepage = "https://weiweihuanghuang.github.io/Work-Sans/";
     license = licenses.ofl;
     maintainers = [ ];
diff --git a/pkgs/data/fonts/wqy-microhei/default.nix b/pkgs/data/fonts/wqy-microhei/default.nix
index 7c410e7d00e7d..ced2c4a3a41d6 100644
--- a/pkgs/data/fonts/wqy-microhei/default.nix
+++ b/pkgs/data/fonts/wqy-microhei/default.nix
@@ -18,7 +18,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = {
-    description = "A (mainly) Chinese Unicode font";
+    description = "(mainly) Chinese Unicode font";
     homepage = "http://wenq.org";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.pkmx ];
diff --git a/pkgs/data/fonts/wqy-zenhei/default.nix b/pkgs/data/fonts/wqy-zenhei/default.nix
index c59f74d45474c..50ab5d81a305d 100644
--- a/pkgs/data/fonts/wqy-zenhei/default.nix
+++ b/pkgs/data/fonts/wqy-zenhei/default.nix
@@ -18,7 +18,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = {
-    description = "A (mainly) Chinese Unicode font";
+    description = "(mainly) Chinese Unicode font";
     homepage = "http://wenq.org";
     license = lib.licenses.gpl2; # with font embedding exceptions
     maintainers = [ lib.maintainers.pkmx ];
diff --git a/pkgs/data/fonts/xkcd-font/default.nix b/pkgs/data/fonts/xkcd-font/default.nix
index b9ef9f0cda07d..003ddcc7da90f 100644
--- a/pkgs/data/fonts/xkcd-font/default.nix
+++ b/pkgs/data/fonts/xkcd-font/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The xkcd font";
+    description = "Xkcd font";
     homepage = "https://github.com/ipython/xkcd-font";
     license = licenses.cc-by-nc-30;
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/yanone-kaffeesatz/default.nix b/pkgs/data/fonts/yanone-kaffeesatz/default.nix
index 99cd30f3dfa73..8fced0b73a63d 100644
--- a/pkgs/data/fonts/yanone-kaffeesatz/default.nix
+++ b/pkgs/data/fonts/yanone-kaffeesatz/default.nix
@@ -19,7 +19,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = {
-    description = "The free font classic";
+    description = "Free font classic";
     maintainers = with lib.maintainers; [ mt-caret ];
     platforms = with lib.platforms; all;
     homepage = "https://yanone.de/fonts/kaffeesatz/";
diff --git a/pkgs/data/icons/apple-cursor/default.nix b/pkgs/data/icons/apple-cursor/default.nix
index 46b4b37f78df9..5db50d0fbbe8a 100644
--- a/pkgs/data/icons/apple-cursor/default.nix
+++ b/pkgs/data/icons/apple-cursor/default.nix
@@ -34,7 +34,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "Opensource macOS Cursors.";
+    description = "Opensource macOS Cursors";
     homepage = "https://github.com/ful1e5/apple_cursor";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/pkgs/data/icons/arc-icon-theme/default.nix b/pkgs/data/icons/arc-icon-theme/default.nix
index 2950f929912a6..a185160d4a3e9 100644
--- a/pkgs/data/icons/arc-icon-theme/default.nix
+++ b/pkgs/data/icons/arc-icon-theme/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "arc-icon-theme";
-  version = "2016-11-22";
+  version = "20161122";
 
   src = fetchFromGitHub {
     owner = "horst3180";
-    repo = pname;
-    rev = "55a575386a412544c3ed2b5617a61f842ee4ec15";
-    sha256 = "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd";
+    repo = "arc-icon-theme";
+    rev = version;
+    hash = "sha256-TfYtzwo69AC5hHbzEqB4r5Muqvn/eghCGSlmjMCFA7I=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/icons/capitaine-cursors-themed/default.nix b/pkgs/data/icons/capitaine-cursors-themed/default.nix
index bd0147fecde31..e29c38dc5df6b 100644
--- a/pkgs/data/icons/capitaine-cursors-themed/default.nix
+++ b/pkgs/data/icons/capitaine-cursors-themed/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A fork of the capitaine cursor theme, with some additional variants (Gruvbox, Nord, Palenight) and support for HiDPI";
+    description = "Fork of the capitaine cursor theme, with some additional variants (Gruvbox, Nord, Palenight) and support for HiDPI";
     homepage = "https://github.com/sainnhe/capitaine-cursors";
     license = licenses.lgpl3Only;
     platforms = platforms.unix;
diff --git a/pkgs/data/icons/capitaine-cursors/default.nix b/pkgs/data/icons/capitaine-cursors/default.nix
index 47fbeda109425..1bb855790055d 100644
--- a/pkgs/data/icons/capitaine-cursors/default.nix
+++ b/pkgs/data/icons/capitaine-cursors/default.nix
@@ -48,7 +48,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An x-cursor theme inspired by macOS and based on KDE Breeze";
+    description = "X-cursor theme inspired by macOS and based on KDE Breeze";
     homepage = "https://github.com/keeferrourke/capitaine-cursors";
     license = licenses.lgpl3;
     platforms = platforms.linux;
diff --git a/pkgs/data/icons/comixcursors/default.nix b/pkgs/data/icons/comixcursors/default.nix
index 735ff686b49cf..be1fa347535b9 100644
--- a/pkgs/data/icons/comixcursors/default.nix
+++ b/pkgs/data/icons/comixcursors/default.nix
@@ -83,7 +83,7 @@ stdenvNoCC.mkDerivation rec {
   outputsToInstall = [];
 
   meta = with lib; {
-    description = "The Comix Cursors mouse themes";
+    description = "Comix Cursors mouse themes";
     longDescription = ''
       There are many (${toString ((length outputs) - 1)}) variants of color,
       opacity, edge thickness, and right- or left-handedness, for this cursor
diff --git a/pkgs/data/icons/faba-icon-theme/default.nix b/pkgs/data/icons/faba-icon-theme/default.nix
index 921c87774c31d..4fc2068f870cc 100644
--- a/pkgs/data/icons/faba-icon-theme/default.nix
+++ b/pkgs/data/icons/faba-icon-theme/default.nix
@@ -31,7 +31,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A sexy and modern icon theme with Tango influences";
+    description = "Sexy and modern icon theme with Tango influences";
     homepage = "https://snwh.org/moka";
     license = with licenses; [ cc-by-sa-40 gpl3 ];
     platforms = platforms.all;
diff --git a/pkgs/data/icons/faba-mono-icons/default.nix b/pkgs/data/icons/faba-mono-icons/default.nix
index 47eeab40acb78..efd91a5f53fda 100644
--- a/pkgs/data/icons/faba-mono-icons/default.nix
+++ b/pkgs/data/icons/faba-mono-icons/default.nix
@@ -32,7 +32,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The full set of Faba monochrome panel icons";
+    description = "Full set of Faba monochrome panel icons";
     homepage = "https://snwh.org/moka";
     license = licenses.gpl3;
     # moka-icon-theme dependency is restricted to linux
diff --git a/pkgs/data/icons/flat-remix-icon-theme/default.nix b/pkgs/data/icons/flat-remix-icon-theme/default.nix
index c19f413ad7d09..9907b18203d7a 100644
--- a/pkgs/data/icons/flat-remix-icon-theme/default.nix
+++ b/pkgs/data/icons/flat-remix-icon-theme/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec  {
   pname = "flat-remix-icon-theme";
-  version = "20220525";
+  version = "20240201";
 
   src = fetchFromGitHub {
     owner = "daniruiz";
     repo = "flat-remix";
     rev = version;
-    sha256 = "sha256-JpUa2nxZxrLTd80qdiGpob4Trq41ONthsPA4zFj/6nk=";
+    sha256 = "sha256-3TkBRgoT2AW0Sb0CrXdxh53/jYARAMFC/TIj/r/zruo=";
   };
 
   nativeBuildInputs = [
@@ -22,6 +22,7 @@ stdenvNoCC.mkDerivation rec  {
     hicolor-icon-theme
   ];
 
+  dontFixup = true;
   dontDropIconThemeCache = true;
 
   installPhase = ''
@@ -31,6 +32,8 @@ stdenvNoCC.mkDerivation rec  {
     for theme in $out/share/icons/*; do
       gtk-update-icon-cache $theme
     done
+    symlinkParentIconThemes
+    recordPropagatedDependencies
   '';
 
   meta = with lib; {
diff --git a/pkgs/data/icons/google-cursor/default.nix b/pkgs/data/icons/google-cursor/default.nix
index c3fb5aad29a30..0000d55ab0b51 100644
--- a/pkgs/data/icons/google-cursor/default.nix
+++ b/pkgs/data/icons/google-cursor/default.nix
@@ -42,7 +42,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "An opensource cursor theme inspired by Google";
+    description = "Opensource cursor theme inspired by Google";
     homepage = "https://github.com/ful1e5/Google_Cursor";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
diff --git a/pkgs/data/icons/hackneyed/default.nix b/pkgs/data/icons/hackneyed/default.nix
index e26a32b159ecf..e1934337e0a34 100644
--- a/pkgs/data/icons/hackneyed/default.nix
+++ b/pkgs/data/icons/hackneyed/default.nix
@@ -38,7 +38,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.com/Enthymeme/hackneyed-x11-cursors";
-    description = "A scalable cursor theme that resembles Windows 3.x/NT 3.x cursors";
+    description = "Scalable cursor theme that resembles Windows 3.x/NT 3.x cursors";
     platforms = platforms.all;
     license = licenses.mit;
     maintainers = with maintainers; [ somasis ];
diff --git a/pkgs/data/icons/kora-icon-theme/default.nix b/pkgs/data/icons/kora-icon-theme/default.nix
index 6ff07f749e543..15132fac785e3 100644
--- a/pkgs/data/icons/kora-icon-theme/default.nix
+++ b/pkgs/data/icons/kora-icon-theme/default.nix
@@ -50,7 +50,7 @@ stdenvNoCC.mkDerivation rec  {
   };
 
   meta = with lib; {
-    description = "An SVG icon theme in four variants";
+    description = "SVG icon theme in four variants";
     homepage = "https://github.com/bikass/kora";
     license = with licenses; [ gpl3Only ];
     platforms = platforms.linux;
diff --git a/pkgs/data/icons/phinger-cursors/default.nix b/pkgs/data/icons/phinger-cursors/default.nix
index 26b729b268c93..8baec5add0350 100644
--- a/pkgs/data/icons/phinger-cursors/default.nix
+++ b/pkgs/data/icons/phinger-cursors/default.nix
@@ -19,7 +19,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The most over-engineered cursor theme";
+    description = "Most over-engineered cursor theme";
     homepage = "https://github.com/phisch/phinger-cursors";
     platforms = platforms.unix;
     license = licenses.cc-by-sa-40;
diff --git a/pkgs/data/icons/quintom-cursor-theme/default.nix b/pkgs/data/icons/quintom-cursor-theme/default.nix
index 645b2ac54734b..3267d619b7a5e 100644
--- a/pkgs/data/icons/quintom-cursor-theme/default.nix
+++ b/pkgs/data/icons/quintom-cursor-theme/default.nix
@@ -19,7 +19,7 @@ stdenvNoCC.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A cursor theme designed to look decent";
+    description = "Cursor theme designed to look decent";
     homepage = "https://gitlab.com/Burning_Cube/quintom-cursor-theme";
     platforms = platforms.unix;
     license = with licenses; [ cc-by-sa-40 gpl3Only ];
diff --git a/pkgs/data/icons/reversal-icon-theme/default.nix b/pkgs/data/icons/reversal-icon-theme/default.nix
index b636bba4a3012..a9e4dcba89b90 100644
--- a/pkgs/data/icons/reversal-icon-theme/default.nix
+++ b/pkgs/data/icons/reversal-icon-theme/default.nix
@@ -68,7 +68,7 @@ stdenvNoCC.mkDerivation rec {
   passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
-    description = "A colorful Design Rectangle icon theme";
+    description = "Colorful Design Rectangle icon theme";
     homepage = "https://github.com/yeyushengfan258/Reversal-icon-theme";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
diff --git a/pkgs/data/icons/simp1e-cursors/default.nix b/pkgs/data/icons/simp1e-cursors/default.nix
index 962f4ea2618ab..6e20c13465d1d 100644
--- a/pkgs/data/icons/simp1e-cursors/default.nix
+++ b/pkgs/data/icons/simp1e-cursors/default.nix
@@ -33,7 +33,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An aesthetic cursor theme for Linux desktops";
+    description = "Aesthetic cursor theme for Linux desktops";
     homepage = "https://gitlab.com/cursors/simp1e";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/pkgs/data/icons/tango-icon-theme/default.nix b/pkgs/data/icons/tango-icon-theme/default.nix
index a607748c7c38b..cd981421396f7 100644
--- a/pkgs/data/icons/tango-icon-theme/default.nix
+++ b/pkgs/data/icons/tango-icon-theme/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   postInstall = '''${gtk.out}/bin/gtk-update-icon-cache' "$out/share/icons/Tango" '';
 
   meta = with lib; {
-    description = "A basic set of icons";
+    description = "Basic set of icons";
     homepage = "http://tango.freedesktop.org/Tango_Icon_Library";
     platforms = platforms.linux;
     license = licenses.publicDomain;
diff --git a/pkgs/data/icons/tau-hydrogen/default.nix b/pkgs/data/icons/tau-hydrogen/default.nix
index 026120634702e..cbd9bf1f663cb 100644
--- a/pkgs/data/icons/tau-hydrogen/default.nix
+++ b/pkgs/data/icons/tau-hydrogen/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "The GTK icon theme for tauOS";
+    description = "GTK icon theme for tauOS";
     homepage = "https://github.com/tau-OS/tau-hydrogen";
     license = licenses.gpl3Only;
     platforms = platforms.unix;
diff --git a/pkgs/data/icons/tela-icon-theme/default.nix b/pkgs/data/icons/tela-icon-theme/default.nix
index d49e77fd0d2e5..8b51526e1e71b 100644
--- a/pkgs/data/icons/tela-icon-theme/default.nix
+++ b/pkgs/data/icons/tela-icon-theme/default.nix
@@ -33,7 +33,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A flat colorful Design icon theme";
+    description = "Flat colorful Design icon theme";
     homepage = "https://github.com/vinceliuice/tela-icon-theme";
     changelog = "https://github.com/vinceliuice/Tela-icon-theme/releases/tag/${src.rev}";
     license = licenses.gpl3Only;
diff --git a/pkgs/data/icons/vanilla-dmz/default.nix b/pkgs/data/icons/vanilla-dmz/default.nix
index 6e391aa19ef01..bcfbc579da25d 100644
--- a/pkgs/data/icons/vanilla-dmz/default.nix
+++ b/pkgs/data/icons/vanilla-dmz/default.nix
@@ -53,7 +53,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://jimmac.musichall.cz";
-    description = "A style neutral scalable cursor theme";
+    description = "Style neutral scalable cursor theme";
     platforms = platforms.all;
     license = licenses.cc-by-sa-30;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/data/icons/vimix-cursor-theme/default.nix b/pkgs/data/icons/vimix-cursor-theme/default.nix
index 4d20acca83b05..a276ae1ea2453 100644
--- a/pkgs/data/icons/vimix-cursor-theme/default.nix
+++ b/pkgs/data/icons/vimix-cursor-theme/default.nix
@@ -24,7 +24,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An x-cursor theme inspired by Materia design and based on capitaine-cursors";
+    description = "X-cursor theme inspired by Materia design and based on capitaine-cursors";
     homepage = "https://github.com/vinceliuice/Vimix-cursors";
     license = licenses.gpl3Only;
     platforms = platforms.all;
diff --git a/pkgs/data/icons/vimix-icon-theme/default.nix b/pkgs/data/icons/vimix-icon-theme/default.nix
index 45ac27b496504..822b710e32b00 100644
--- a/pkgs/data/icons/vimix-icon-theme/default.nix
+++ b/pkgs/data/icons/vimix-icon-theme/default.nix
@@ -60,7 +60,7 @@ stdenvNoCC.mkDerivation rec {
   passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
-    description = "A Material Design icon theme based on Paper icon theme";
+    description = "Material Design icon theme based on Paper icon theme";
     homepage = "https://github.com/vinceliuice/vimix-icon-theme";
     license = with licenses; [ cc-by-sa-40 ];
     platforms = platforms.linux;
diff --git a/pkgs/data/icons/whitesur-cursors/default.nix b/pkgs/data/icons/whitesur-cursors/default.nix
index 167c2b3578b7b..a6d522dadee3c 100644
--- a/pkgs/data/icons/whitesur-cursors/default.nix
+++ b/pkgs/data/icons/whitesur-cursors/default.nix
@@ -23,7 +23,7 @@ stdenvNoCC.mkDerivation {
   '';
 
   meta = {
-    description = "An x-cursor theme inspired by macOS and based on capitaine-cursors";
+    description = "X-cursor theme inspired by macOS and based on capitaine-cursors";
     homepage = "https://github.com/vinceliuice/WhiteSur-cursors";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ tomasajt ];
diff --git a/pkgs/data/icons/whitesur-icon-theme/default.nix b/pkgs/data/icons/whitesur-icon-theme/default.nix
index 70f5357a89f84..588389f856ed2 100644
--- a/pkgs/data/icons/whitesur-icon-theme/default.nix
+++ b/pkgs/data/icons/whitesur-icon-theme/default.nix
@@ -27,13 +27,13 @@ lib.checkListOfEnum "${pname}: theme variants" [
 
 stdenvNoCC.mkDerivation rec {
   inherit pname;
-  version = "2024-04-22";
+  version = "2024-05-28";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    hash = "sha256-CnAnD5ky+LNcyE59O/iGeoe+1JyhtPM/XUHwU5d8FA4=";
+    hash = "sha256-60pz/ET3jorEui31Aq6I3LMTz0djwWUv7poEI0USzJw=";
   };
 
   nativeBuildInputs = [ gtk3 jdupes ];
diff --git a/pkgs/data/machine-learning/mnist/default.nix b/pkgs/data/machine-learning/mnist/default.nix
index b4c4d43e99ae3..3df5001e70ef1 100644
--- a/pkgs/data/machine-learning/mnist/default.nix
+++ b/pkgs/data/machine-learning/mnist/default.nix
@@ -31,7 +31,7 @@ in
     '';
     dontUnpack = true;
     meta = with lib; {
-      description = "A large database of handwritten digits";
+      description = "Large database of handwritten digits";
       longDescription = ''
         The MNIST database (Modified National Institute of Standards and
         Technology database) is a large database of handwritten digits that is
diff --git a/pkgs/data/misc/cacert/default.nix b/pkgs/data/misc/cacert/default.nix
index 7dc047bb1c88b..b8b239e4fc589 100644
--- a/pkgs/data/misc/cacert/default.nix
+++ b/pkgs/data/misc/cacert/default.nix
@@ -24,7 +24,7 @@ let
   version = if nssOverride != null then nssOverride.version else srcVersion;
   meta = with lib; {
     homepage = "https://curl.haxx.se/docs/caextract.html";
-    description = "A bundle of X.509 certificates of public Certificate Authorities (CA)";
+    description = "Bundle of X.509 certificates of public Certificate Authorities (CA)";
     platforms = platforms.all;
     maintainers = with maintainers; [ fpletz lukegb ];
     license = licenses.mpl20;
diff --git a/pkgs/data/misc/clash-geoip/default.nix b/pkgs/data/misc/clash-geoip/default.nix
index bf43ce2a63f2b..8be4f99748eba 100644
--- a/pkgs/data/misc/clash-geoip/default.nix
+++ b/pkgs/data/misc/clash-geoip/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "clash-geoip";
-  version = "20240512";
+  version = "20240612";
 
   src = fetchurl {
     url = "https://github.com/Dreamacro/maxmind-geoip/releases/download/${version}/Country.mmdb";
-    sha256 = "sha256-vWtiTcuTcAL6E083rHPVhqduIs6tuAOph/EdwLFXHek=";
+    sha256 = "sha256-uLXdQUrhBZC7av5MWvlVC0W8UQBWDsYhdmKwKEfOQfk=";
   };
 
   dontUnpack = true;
@@ -23,7 +23,7 @@ stdenvNoCC.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A GeoLite2 data created by MaxMind";
+    description = "GeoLite2 data created by MaxMind";
     homepage = "https://github.com/Dreamacro/maxmind-geoip";
     license = licenses.unfree;
     maintainers = [];
diff --git a/pkgs/data/misc/colemak-dh/default.nix b/pkgs/data/misc/colemak-dh/default.nix
index 0ce188bdc9067..e37878888592e 100644
--- a/pkgs/data/misc/colemak-dh/default.nix
+++ b/pkgs/data/misc/colemak-dh/default.nix
@@ -27,7 +27,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://colemakmods.github.io/mod-dh";
-    description = "A Colemak mod for more comfortable typing";
+    description = "Colemak mod for more comfortable typing";
     license = licenses.publicDomain;
     platforms = platforms.linux;
     maintainers = with maintainers; [ monaaraj ];
diff --git a/pkgs/data/misc/dbip-country-lite/default.nix b/pkgs/data/misc/dbip-country-lite/default.nix
index 9bf3cbdf4cf37..861a00f3a63bc 100644
--- a/pkgs/data/misc/dbip-country-lite/default.nix
+++ b/pkgs/data/misc/dbip-country-lite/default.nix
@@ -5,11 +5,11 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "dbip-country-lite";
-  version = "2024-05";
+  version = "2024-06";
 
   src = fetchurl {
     url = "https://download.db-ip.com/free/dbip-country-lite-${finalAttrs.version}.mmdb.gz";
-    hash = "sha256-MFhBCnYOJOVQl+xJ4wxi10nyb5MfRHnNVlba9LV1nsY=";
+    hash = "sha256-utCjcaJ05Wo2KgEccGbvLYSGc3eW1n2S4qrgWd6rERM=";
   };
 
   dontUnpack = true;
@@ -26,7 +26,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   passthru.mmdb = "${finalAttrs.finalPackage}/share/dbip/dbip-country-lite.mmdb";
 
   meta = with lib; {
-    description = "The free IP to Country Lite database by DB-IP";
+    description = "Free IP to Country Lite database by DB-IP";
     homepage = "https://db-ip.com/db/download/ip-to-country-lite";
     license = licenses.cc-by-40;
     maintainers = with maintainers; [ nickcao ];
diff --git a/pkgs/data/misc/fedora-backgrounds/generic.nix b/pkgs/data/misc/fedora-backgrounds/generic.nix
index aa6e4137f521f..954328c8d49db 100644
--- a/pkgs/data/misc/fedora-backgrounds/generic.nix
+++ b/pkgs/data/misc/fedora-backgrounds/generic.nix
@@ -40,7 +40,7 @@ stdenvNoCC.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/fedoradesign/backgrounds";
-    description = "A set of default and supplemental wallpapers for Fedora";
+    description = "Set of default and supplemental wallpapers for Fedora";
     license = licenses.cc-by-sa-40;
     platforms = platforms.unix;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/data/misc/graphs/default.nix b/pkgs/data/misc/graphs/default.nix
index 93a0d75aaf692..3244e46d580ea 100644
--- a/pkgs/data/misc/graphs/default.nix
+++ b/pkgs/data/misc/graphs/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A database of graphs";
+    description = "Database of graphs";
     license = licenses.gpl2;
     platforms = platforms.all;
     maintainers = teams.sage.members;
diff --git a/pkgs/data/misc/hackage/pin.json b/pkgs/data/misc/hackage/pin.json
index fd08de133198d..e263b38146cd2 100644
--- a/pkgs/data/misc/hackage/pin.json
+++ b/pkgs/data/misc/hackage/pin.json
@@ -1,6 +1,6 @@
 {
-  "commit": "88d42dc0129b0e3f4f702149a58667c66add9262",
-  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/88d42dc0129b0e3f4f702149a58667c66add9262.tar.gz",
-  "sha256": "0imff76qbg1hsvsdds6dc2wfip0prdsa0bixd5b575jr6yjlkirh",
-  "msg": "Update from Hackage at 2024-05-15T11:29:34Z"
+  "commit": "a71af8d538cda614baa0bcb3e44600061f815d57",
+  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/a71af8d538cda614baa0bcb3e44600061f815d57.tar.gz",
+  "sha256": "0hsqzdfb89rqmplipz39x7m80czcvrmk42y05ifnqjhxn6q4v91l",
+  "msg": "Update from Hackage at 2024-05-20T16:06:03Z"
 }
diff --git a/pkgs/data/misc/media-player-info/default.nix b/pkgs/data/misc/media-player-info/default.nix
index 652298d1656dd..74fb444152968 100644
--- a/pkgs/data/misc/media-player-info/default.nix
+++ b/pkgs/data/misc/media-player-info/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--with-udevdir=${placeholder "out"}/lib/udev" ];
 
   meta = with lib; {
-    description = "A repository of data files describing media player capabilities";
+    description = "Repository of data files describing media player capabilities";
     homepage = "https://www.freedesktop.org/wiki/Software/media-player-info/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ttuegel ];
diff --git a/pkgs/data/misc/mobile-broadband-provider-info/default.nix b/pkgs/data/misc/mobile-broadband-provider-info/default.nix
index 66e66e18527ce..816bb25b1be4d 100644
--- a/pkgs/data/misc/mobile-broadband-provider-info/default.nix
+++ b/pkgs/data/misc/mobile-broadband-provider-info/default.nix
@@ -1,23 +1,32 @@
-{ lib, stdenv, fetchurl, gnome, libxslt }:
+{
+  lib,
+  stdenv,
+  fetchurl,
+  gnome,
+  libxslt,
+  libxml2,
+  meson,
+  ninja,
+}:
 
 stdenv.mkDerivation rec {
   pname = "mobile-broadband-provider-info";
-  version = "20230416";
+  version = "20240407";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-4+FAqi23abKZ0d+GqJDpSKuZ1NOIMTAsRS0ft/hWiuw=";
+    hash = "sha256-ib/v8hX0v/jpw/8uwlJQ/bCA0R6b+lnG/HGYKsAcgUo=";
   };
 
   nativeBuildInputs = [
-    # fixes configure: error: xsltproc not found
-    libxslt
+    libxslt # for xsltproc
+    libxml2 # for xmllint
+    meson
+    ninja
   ];
 
   passthru = {
-    updateScript = gnome.updateScript {
-      packageName = pname;
-    };
+    updateScript = gnome.updateScript { packageName = pname; };
   };
 
   meta = with lib; {
diff --git a/pkgs/data/misc/nixos-artwork/wallpapers.nix b/pkgs/data/misc/nixos-artwork/wallpapers.nix
index 4d5f30e94b915..4cc128c15f155 100644
--- a/pkgs/data/misc/nixos-artwork/wallpapers.nix
+++ b/pkgs/data/misc/nixos-artwork/wallpapers.nix
@@ -1,7 +1,12 @@
 { lib, stdenv, fetchurl }:
 
 let
-  mkNixBackground = { name, src, description }:
+  mkNixBackground = {
+    name,
+    src,
+    description,
+    license ? lib.licenses.free
+  }:
 
   let
     pkg = stdenv.mkDerivation {
@@ -10,6 +15,8 @@ let
       dontUnpack = true;
 
       installPhase = ''
+        runHook preInstall
+
         # GNOME
         mkdir -p $out/share/backgrounds/nixos
         ln -s $src $out/share/backgrounds/nixos/${src.name}
@@ -42,6 +49,8 @@ EOF
 Name=${name}
 X-KDE-PluginInfo-Name=${name}
 _EOF
+
+        runHook postInstall
       '';
 
       passthru = {
@@ -50,9 +59,8 @@ _EOF
       };
 
       meta = with lib; {
-        inherit description;
+        inherit description license;
         homepage = "https://github.com/NixOS/nixos-artwork";
-        license = licenses.free;
         platforms = platforms.all;
       };
     };
@@ -62,24 +70,136 @@ in
 
 rec {
 
+  binary-black = mkNixBackground {
+    name = "binary-black-2024-02-15";
+    description = "Black binary wallpaper for Nix";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/8957e93c95867faafec7f9988cedddd6837859fa/wallpapers/nix-wallpaper-binary-black.png";
+      hash = "sha256-mhSh0wz2ntH/kri3PF5ZrFykjjdQLhmlIlDDGFQIYWw=";
+    };
+    license = lib.licenses.cc-by-sa-40;
+  };
+
+  binary-blue = mkNixBackground {
+    name = "binary-blue-2024-02-15";
+    description = "Blue binary wallpaper for Nix";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/8957e93c95867faafec7f9988cedddd6837859fa/wallpapers/nix-wallpaper-binary-blue.png";
+      hash = "sha256-oVIRSgool/CsduGingDr0FuJJIkGtfQHXYn0JBI2eho=";
+    };
+    license = lib.licenses.cc-by-sa-40;
+  };
+
+  binary-red = mkNixBackground {
+    name = "binary-red-2024-02-15";
+    description = "Red binary wallpaper for Nix";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/8957e93c95867faafec7f9988cedddd6837859fa/wallpapers/nix-wallpaper-binary-red.png";
+      hash = "sha256-18UvtroyuAnluJ3EoLJWJAwN8T83s/ImPtsr5QTqvAA=";
+    };
+    license = lib.licenses.cc-by-sa-40;
+  };
+
+  binary-white = mkNixBackground {
+    name = "binary-white-2024-02-15";
+    description = "White binary wallpaper for Nix";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/8957e93c95867faafec7f9988cedddd6837859fa/wallpapers/nix-wallpaper-binary-white.png";
+      hash = "sha256-imj+OmuhTNxRtE54715wWQUA7pe1f32+q3qi2V37i8U=";
+    };
+    license = lib.licenses.cc-by-sa-40;
+  };
+
+  catppuccin-frappe = mkNixBackground {
+    name = "catppuccin-frappe-2024-02-15";
+    description = "Catppuccin Frappé colorscheme wallpaper for NixOS";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/97444e18b7fe97705e8caedd29ae05e62cb5d4b7/wallpapers/nixos-wallpaper-catppuccin-frappe.png";
+      hash = "sha256-wtBffKK9rqSJo8+7Wo8OMruRlg091vdroyUZj5mDPfI=";
+    };
+    license = lib.licenses.cc-by-sa-40;
+  };
+
+  catppuccin-latte = mkNixBackground {
+    name = "catppuccin-latte-2024-02-15";
+    description = "Catppuccin Latte colorscheme wallpaper for NixOS";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/97444e18b7fe97705e8caedd29ae05e62cb5d4b7/wallpapers/nixos-wallpaper-catppuccin-latte.png";
+      hash = "sha256-Y6WCwmHOLBStj1D9mcU2082y1fhAFHna01ajfUHxehk=";
+    };
+    license = lib.licenses.cc-by-sa-40;
+  };
+
+  catppuccin-macchiato = mkNixBackground {
+    name = "catppuccin-macchiato-2024-02-15";
+    description = "Catppuccin Macchiato colorscheme wallpaper for NixOS";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/97444e18b7fe97705e8caedd29ae05e62cb5d4b7/wallpapers/nixos-wallpaper-catppuccin-macchiato.png";
+      hash = "sha256-SkXrLbHvBOItJ7+8vW+6iXV+2g0f8bUJf9KcCXYOZF0=";
+    };
+    license = lib.licenses.cc-by-sa-40;
+  };
+
+  catppuccin-mocha = mkNixBackground {
+    name = "catppuccin-mocha-2024-02-15";
+    description = "Catppuccin Mochacolorscheme wallpaper for NixOS";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/97444e18b7fe97705e8caedd29ae05e62cb5d4b7/wallpapers/nixos-wallpaper-catppuccin-mocha.png";
+      hash = "sha256-fmKFYw2gYAYFjOv4lr8IkXPtZfE1+88yKQ4vjEcax1s=";
+    };
+    license = lib.licenses.cc-by-sa-40;
+  };
+
   dracula = mkNixBackground {
     name = "dracula-2020-07-02";
     description = "Nix background based on the Dracula color palette";
     src = fetchurl {
       url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/03c6c20be96c38827037d2238357f2c777ec4aa5/wallpapers/nix-wallpaper-dracula.png";
-      sha256 = "07ly21bhs6cgfl7pv4xlqzdqm44h22frwfhdqyd4gkn2jla1waab";
+      hash = "sha256-SykeFJXCzkeaxw06np0QkJCK28e0k30PdY8ZDVcQnh4=";
+    };
+    license = lib.licenses.cc-by-sa-40;
+  };
+
+  gear = mkNixBackground {
+    name = "gear-2022-04-19";
+    description = "3D wallpaper for Nix";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/bcdd2770f5f4839fddc9b503e68db2bc3a87ca4d/wallpapers/nix-wallpaper-gear.png";
+      hash = "sha256-2sT6b49/iClTs9QuUvpmZ5gcIeXI9kebs5IqgQN1RL8=";
     };
+    license = lib.licenses.cc-by-sa-40;
   };
 
   gnome-dark = simple-dark-gray-bottom;
 
+  gradient-grey = mkNixBackground {
+    name = "gradient-grey-2018-10-20";
+    description = "Simple grey gradient background for NixOS";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/3f7695afe75239720a32d6c38df7c9888b5ed581/wallpapers/NixOS-Gradient-grey.png";
+      hash = "sha256-Tf4Xruf608hpl7YwL4Mq9l9egBOCN+W4KFKnqrgosLE=";
+    };
+    # license not clarified
+  };
+
+  moonscape = mkNixBackground {
+    name = "moonscape-2022-04-19";
+    description = "3D wallpaper for Nix";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/bcdd2770f5f4839fddc9b503e68db2bc3a87ca4d/wallpapers/nix-wallpaper-moonscape.png";
+      hash = "sha256-AR3W8avHzQLxMNLfD/A1efyZH+vAdTLKllEhJwBl0xc=";
+    };
+    license = lib.licenses.cc-by-sa-40;
+  };
+
   mosaic-blue = mkNixBackground {
     name = "mosaic-blue-2016-02-19";
     description = "Mosaic blue background for Nix";
     src = fetchurl {
       url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-mosaic-blue.png";
-      sha256 = "1cbcssa8qi0giza0k240w5yy4yb2bhc1p1r7pw8qmziprcmwv5n5";
+      hash = "sha256-xZbNK8s3/ooRvyeHGxhcYnnifeGAiAnUjw9EjJTWbLE=";
     };
+    license = lib.licenses.cc0;
   };
 
   nineish = mkNixBackground {
@@ -87,8 +207,9 @@ rec {
     description = "Nix background inspired by simpler times";
     src = fetchurl {
       url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/da01f68d21ddfdc9f1c6e520c2170871c81f1cf5/wallpapers/nix-wallpaper-nineish.png";
-      sha256 = "1mwvnmflp0z1biyyhfz7mjn7i1nna94n7jyns3na2shbfkaq7i0h";
+      hash = "sha256-EMSD1XQLaqHs0NbLY0lS1oZ4rKznO+h9XOGDS121m9c=";
     };
+    license = lib.licenses.cc-by-sa-40;
   };
 
   nineish-dark-gray = mkNixBackground {
@@ -96,8 +217,39 @@ rec {
     description = "Dark gray Nix background inspired by simpler times";
     src = fetchurl {
       url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/f07707cecfd89bc1459d5dad76a3a4c5315efba1/wallpapers/nix-wallpaper-nineish-dark-gray.png";
-      sha256 = "07zl1dlxqh9dav9pibnhr2x1llywwnyphmzcdqaby7dz5js184ly";
+      hash = "sha256-nhIUtCy/Hb8UbuxXeL3l3FMausjQrnjTVi1B3GkL9B8=";
+    };
+    license = lib.licenses.cc-by-sa-40;
+  };
+
+  nineish-solarized-dark = mkNixBackground {
+    name = "nineish-dark-gray-2021-07-20";
+    description = "Solarized dark Nix background inspired by simpler times";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/f99638d8d1a11d97a99ff7e0e1e7df58c28643ff/wallpapers/nix-wallpaper-nineish-solarized-dark.png";
+      hash = "sha256-ZBrk9izKvsY4Hzsr7YovocCbkRVgUN9i/y1B5IzOOKo=";
     };
+    license = lib.licenses.cc-by-sa-40;
+  };
+
+  nineish-solarized-light = mkNixBackground {
+    name = "nineish-dark-light-2021-07-20";
+    description = "Solarized light Nix background inspired by simpler times";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/f99638d8d1a11d97a99ff7e0e1e7df58c28643ff/wallpapers/nix-wallpaper-nineish-solarized-light.png";
+      hash = "sha256-gb5s5ePdw7kuIL3SI8VVhOcLcHu0cHMJJ623vg1kz40=";
+    };
+    license = lib.licenses.cc-by-sa-40;
+  };
+
+  recursive = mkNixBackground {
+    name = "recursive-2022-04-19";
+    description = "3D wallpaper for Nix";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/bcdd2770f5f4839fddc9b503e68db2bc3a87ca4d/wallpapers/nix-wallpaper-recursive.png";
+      hash = "sha256-YvFrlysNGMwJ7eMFOoz0KI8AjoPN3ao+AVOgnVZzkFE=";
+    };
+    license = lib.licenses.cc-by-sa-40;
   };
 
   simple-blue = mkNixBackground {
@@ -105,8 +257,9 @@ rec {
     description = "Simple blue background for Nix";
     src = fetchurl {
       url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-simple-blue.png";
-      sha256 = "1llr175m454aqixxwbp3kb5qml2hi1kn7ia6lm7829ny6y7xrnms";
+      hash = "sha256-utrcjzfeJoFOpUbFY2eIUNCKy5rjLt57xIoUUssJmdI=";
     };
+    license = lib.licenses.cc0;
   };
 
   simple-dark-gray = mkNixBackground {
@@ -114,26 +267,29 @@ rec {
     description = "Simple dark gray background for Nix";
     src = fetchurl {
       url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-simple-dark-gray.png";
-      sha256 = "1282cnqc5qynp0q9gdll7bgpw23yp5bhvaqpar59ibkh3iscg8i5";
+      hash = "sha256-JaLHdBxwrphKVherDVe5fgh+3zqUtpcwuNbjwrBlAok=";
     };
+    license = lib.licenses.cc0;
   };
 
   simple-dark-gray-bootloader = mkNixBackground {
     name = "simple-dark-gray-bootloader-2018-08-28";
-    description = "Simple dark gray background for NixOS, specifically bootloaders.";
+    description = "Simple dark gray background for NixOS, specifically bootloaders";
     src = fetchurl {
       url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/9d1f11f652ed5ffe460b6c602fbfe2e7e9a08dff/bootloader/nix-wallpaper-simple-dark-gray_bootloader.png";
-      sha256 = "0v26kfydn7alr81f2qpgsqdiq2zk7yrwlgibx2j7k91z9h47dpj9";
+      hash = "sha256-Sd52CEw/pHmk6Cs+yrM/8wscG9bvYuECylQd27ybRmw=";
     };
+    # license not clarified
   };
 
   simple-dark-gray-bottom = mkNixBackground {
     name = "simple-dark-gray-2018-08-28";
-    description = "Simple dark gray background for NixOS, specifically bootloaders and graphical login.";
+    description = "Simple dark gray background for NixOS, specifically bootloaders and graphical login";
     src = fetchurl {
       url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/783c38b22de09f6ee33aacc817470a4513392d83/wallpapers/nix-wallpaper-simple-dark-gray_bottom.png";
-      sha256 = "13hi4jwp5ga06dpdw5l03b4znwn58fdjlkqjkg824isqsxzv6k15";
+      hash = "sha256-JUyzf9dYRyLQmxJPKptDxXL7yRqAFt5uM0C9crkkEY4=";
     };
+    # license not clarified
   };
 
   simple-light-gray = mkNixBackground {
@@ -141,8 +297,9 @@ rec {
     description = "Simple light gray background for Nix";
     src = fetchurl {
       url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-simple-light-gray.png";
-      sha256 = "0i6d0xv1nzrv7na9hjrgzl3jrwn81vnprnq2pxyznlxbjcgkjnk2";
+      hash = "sha256-Ylo5H5OrU/t9vwLbfO0OyPIsB/0vS5iUPTt/G3YHzUQ=";
     };
+    license = lib.licenses.cc0;
   };
 
   simple-red = mkNixBackground {
@@ -150,8 +307,9 @@ rec {
     description = "Simple red background for Nix";
     src = fetchurl {
       url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-simple-red.png";
-      sha256 = "16drprsi3q8xbxx3bxp54yld04c4lq6jankw8ww1irg7z61a6wjs";
+      hash = "sha256-WnKjgvnn5Rg4R3xaJQ2mhBHQqCfl9jV6Xx3hEXW+uZk=";
     };
+    license = lib.licenses.cc0;
   };
 
   stripes-logo = mkNixBackground {
@@ -159,8 +317,9 @@ rec {
     description = "Stripes logo background for Nix";
     src = fetchurl {
       url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-stripes-logo.png";
-      sha256 = "0cqjkgp30428c1yy8s4418k4qz0ycr6fzcg4rdi41wkh5g1hzjnl";
+      hash = "sha256-1MoPwytw8kBiy+Sx70xmHnxMJgqEaOR9YEgQMO6bEjM=";
     };
+    license = lib.licenses.cc0;
   };
 
   stripes = mkNixBackground {
@@ -168,8 +327,29 @@ rec {
     description = "Stripes background for Nix";
     src = fetchurl {
       url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-stripes.png";
-      sha256 = "116337wv81xfg0g0bsylzzq2b7nbj6hjyh795jfc9mvzarnalwd3";
+      hash = "sha256-o3GqbFZ/18ScLOlAL6GRy54l8P/U6wUeeK4HtPkZw4Q=";
+    };
+    license = lib.licenses.cc0;
+  };
+
+  waterfall = mkNixBackground {
+    name = "waterfall-2022-04-19";
+    description = "3D wallpaper for Nix";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/bcdd2770f5f4839fddc9b503e68db2bc3a87ca4d/wallpapers/nix-wallpaper-waterfall.png";
+      hash = "sha256-ULFNUZPU9khDG6rtkMskLe5sYpUcrJVvcFvEkpvXjMM=";
+    };
+    license = lib.licenses.cc-by-sa-40;
+  };
+
+  watersplash = mkNixBackground {
+    name = "watersplash-2022-04-19";
+    description = "3D wallpaper for Nix";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/bcdd2770f5f4839fddc9b503e68db2bc3a87ca4d/wallpapers/nix-wallpaper-watersplash.png";
+      hash = "sha256-6Gdjzq3hTvUH7GeZmZnf+aOQruFxReUNEryAvJSgycQ=";
     };
+    license = lib.licenses.cc-by-sa-40;
   };
 
 }
diff --git a/pkgs/data/misc/osinfo-db/default.nix b/pkgs/data/misc/osinfo-db/default.nix
index 6689902ed56f2..c8fb95c87720a 100644
--- a/pkgs/data/misc/osinfo-db/default.nix
+++ b/pkgs/data/misc/osinfo-db/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "osinfo-db";
-  version = "20231215";
+  version = "20240523";
 
   src = fetchurl {
     url = "https://releases.pagure.org/libosinfo/${pname}-${version}.tar.xz";
-    hash = "sha256-37fFl1zk7//ZKq3QAJSg98WTtBmI/aU5kV9kWfcWRVQ=";
+    hash = "sha256-ne/y39KUskzsnw1iBC8EQ62P3GYG+L6pUePlMXCpBsU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/misc/papirus-folders/default.nix b/pkgs/data/misc/papirus-folders/default.nix
index b701742a9f460..7abcd038bac0c 100644
--- a/pkgs/data/misc/papirus-folders/default.nix
+++ b/pkgs/data/misc/papirus-folders/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A tool to change papirus icon theme color";
+    description = "Tool to change papirus icon theme color";
     mainProgram = "papirus-folders";
     longDescription = ''
       papirus-folders is a bash script that allows changing the color of
diff --git a/pkgs/data/misc/shared-mime-info/default.nix b/pkgs/data/misc/shared-mime-info/default.nix
index 6bad73e683927..9e034d68241df 100644
--- a/pkgs/data/misc/shared-mime-info/default.nix
+++ b/pkgs/data/misc/shared-mime-info/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A database of common MIME types";
+    description = "Database of common MIME types";
     homepage = "http://freedesktop.org/wiki/Software/shared-mime-info";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/data/misc/spdx-license-list-data/default.nix b/pkgs/data/misc/spdx-license-list-data/default.nix
index ac66df4246364..134a2581bd206 100644
--- a/pkgs/data/misc/spdx-license-list-data/default.nix
+++ b/pkgs/data/misc/spdx-license-list-data/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "spdx-license-list-data";
-  version = "3.23";
+  version = "3.24.0";
 
   src = fetchFromGitHub {
     owner = "spdx";
     repo = "license-list-data";
     rev = "v${version}";
-    hash = "sha256-mxTEEkmLB/bh+7r2idKrP3IjT00UBlhI0HnR5bMfu+E=";
+    hash = "sha256-G7xRxHakkDphzMydxqfKEDLUp5ay2JwAtWhTTYiK+IM=";
   };
 
   # List of file formats to package.
diff --git a/pkgs/data/misc/v2ray-domain-list-community/default.nix b/pkgs/data/misc/v2ray-domain-list-community/default.nix
index 8e18822299fd9..d603364335f56 100644
--- a/pkgs/data/misc/v2ray-domain-list-community/default.nix
+++ b/pkgs/data/misc/v2ray-domain-list-community/default.nix
@@ -3,12 +3,12 @@
 let
   generator = pkgsBuildBuild.buildGoModule rec {
     pname = "v2ray-domain-list-community";
-    version = "20240508170917";
+    version = "20240614093027";
     src = fetchFromGitHub {
       owner = "v2fly";
       repo = "domain-list-community";
       rev = version;
-      hash = "sha256-fxiKd4bnEqUsqiBkU6EiMe8dd1uaopqU52CgclDFiuI=";
+      hash = "sha256-IWBih6SyS9rpf6qiQmQSXKsiQeVoBMO9PfB0ZT1FV9c=";
     };
     vendorHash = "sha256-NLh14rXRci4hgDkBJVJDIDvobndB7KYRKAX7UjyqSsg=";
     meta = with lib; {
diff --git a/pkgs/data/misc/v2ray-geoip/default.nix b/pkgs/data/misc/v2ray-geoip/default.nix
index 94631881fb075..f250040167957 100644
--- a/pkgs/data/misc/v2ray-geoip/default.nix
+++ b/pkgs/data/misc/v2ray-geoip/default.nix
@@ -1,6 +1,5 @@
 { lib
 , stdenvNoCC
-, fetchpatch
 , fetchFromGitHub
 , pkgsBuildBuild
 , jq
diff --git a/pkgs/data/soundfonts/generaluser/default.nix b/pkgs/data/soundfonts/generaluser/default.nix
index abe1ea4ceac6c..87753d61ac0e9 100644
--- a/pkgs/data/soundfonts/generaluser/default.nix
+++ b/pkgs/data/soundfonts/generaluser/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "a SoundFont bank featuring 259 instrument presets and 11 drum kits";
+    description = "SoundFont bank featuring 259 instrument presets and 11 drum kits";
     homepage = "https://www.schristiancollins.com/generaluser.php";
     license = licenses.generaluser;
     platforms = platforms.all;
diff --git a/pkgs/data/themes/adapta-kde/default.nix b/pkgs/data/themes/adapta-kde/default.nix
index be9367106d4d3..42d29f8127ed9 100644
--- a/pkgs/data/themes/adapta-kde/default.nix
+++ b/pkgs/data/themes/adapta-kde/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = {
-    description = "A port of the Adapta theme for Plasma";
+    description = "Port of the Adapta theme for Plasma";
     homepage = "https://github.com/PapirusDevelopmentTeam/adapta-kde";
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.tadfisher ];
diff --git a/pkgs/data/themes/adapta/default.nix b/pkgs/data/themes/adapta/default.nix
index fc6e5b8c35534..6f32b2b727e2c 100644
--- a/pkgs/data/themes/adapta/default.nix
+++ b/pkgs/data/themes/adapta/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An adaptive GTK theme based on Material Design Guidelines";
+    description = "Adaptive GTK theme based on Material Design Guidelines";
     homepage = "https://github.com/adapta-project/adapta-gtk-theme";
     license = with licenses; [ gpl2 cc-by-sa-30 ];
     platforms = platforms.linux;
diff --git a/pkgs/data/themes/adw-gtk3/default.nix b/pkgs/data/themes/adw-gtk3/default.nix
index b00e71a5f16cc..fd73f1cf4d4d9 100644
--- a/pkgs/data/themes/adw-gtk3/default.nix
+++ b/pkgs/data/themes/adw-gtk3/default.nix
@@ -34,7 +34,7 @@ stdenvNoCC.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "The theme from libadwaita ported to GTK-3";
+    description = "Theme from libadwaita ported to GTK-3";
     homepage = "https://github.com/lassekongo83/adw-gtk3";
     license = licenses.lgpl21Only;
     platforms = platforms.unix;
diff --git a/pkgs/data/themes/adwaita-qt/default.nix b/pkgs/data/themes/adwaita-qt/default.nix
index 314ad37bc4d8f..5e2f5e2592a41 100644
--- a/pkgs/data/themes/adwaita-qt/default.nix
+++ b/pkgs/data/themes/adwaita-qt/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A style to bend Qt applications to look like they belong into GNOME Shell";
+    description = "Style to bend Qt applications to look like they belong into GNOME Shell";
     homepage = "https://github.com/FedoraQt/adwaita-qt";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/data/themes/albatross/default.nix b/pkgs/data/themes/albatross/default.nix
index b53dd553ca2df..04b06ef0684a0 100644
--- a/pkgs/data/themes/albatross/default.nix
+++ b/pkgs/data/themes/albatross/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A desktop Suite for Xfce";
+    description = "Desktop Suite for Xfce";
     homepage = "https://github.com/shimmerproject/Albatross";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.unix;
diff --git a/pkgs/data/themes/andromeda-gtk-theme/default.nix b/pkgs/data/themes/andromeda-gtk-theme/default.nix
index 9372d611c57f7..479a0c29b5e5b 100644
--- a/pkgs/data/themes/andromeda-gtk-theme/default.nix
+++ b/pkgs/data/themes/andromeda-gtk-theme/default.nix
@@ -2,22 +2,22 @@
 
 stdenvNoCC.mkDerivation {
   pname = "andromeda-gtk-theme";
-  version = "0-unstable-2024-03-04";
+  version = "0-unstable-2024-06-08";
 
   srcs = [
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = "Andromeda-gtk";
-      rev = "250751a546dd0fa2e67eef86d957fbf993b61dfe";
-      hash = "sha256-exr9j/jW2P9cBhKUPQy3AtK5Vgav5vOyWInXUyVhBk0=";
+      rev = "8efb8ffef7118adf7a22d34a287594499d62b9b8";
+      hash = "sha256-AlPSD6tPNYY8iqPFS5IVOO5Zd3UqR3uS5h4l48UZ+dw=";
       name = "Andromeda";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = "Andromeda-gtk";
-      rev = "11a6194d19cb846447db048455a5e782ec830ae1";
-      hash = "sha256-Yy3mih0nyA+ahLqj2D99EKqtmWYJRsvQMkmlLfUPcqQ=";
+      rev = "b8c1a8bd0ba8d3e35dcd43f3fc3c177844b02c9c";
+      hash = "sha256-51IWJtbAHA8jNbrGbudiwqQ9SC4dpj9CTHqovNWOtc8=";
       name = "Andromeda-standard-buttons";
     })
   ];
@@ -52,7 +52,7 @@ stdenvNoCC.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "An elegant dark theme for gnome, mate, budgie, cinnamon, xfce";
+    description = "Elegant dark theme for gnome, mate, budgie, cinnamon, xfce";
     homepage = "https://github.com/EliverLara/Andromeda-gtk";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
diff --git a/pkgs/data/themes/ant-theme/ant.nix b/pkgs/data/themes/ant-theme/ant.nix
index 250b77a66e8f8..2cb6961de1f73 100644
--- a/pkgs/data/themes/ant-theme/ant.nix
+++ b/pkgs/data/themes/ant-theme/ant.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A flat and light theme with a modern look";
+    description = "Flat and light theme with a modern look";
     homepage = "https://github.com/EliverLara/${themeName}";
     license = licenses.gpl3;
     platforms = platforms.all;
diff --git a/pkgs/data/themes/arc-kde/default.nix b/pkgs/data/themes/arc-kde/default.nix
index 79467e1743ef8..3e0ac2b530c17 100644
--- a/pkgs/data/themes/arc-kde/default.nix
+++ b/pkgs/data/themes/arc-kde/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = {
-    description = "A port of the arc theme for Plasma";
+    description = "Port of the arc theme for Plasma";
     homepage = "https://github.com/PapirusDevelopmentTeam/arc-kde";
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.nixy ];
diff --git a/pkgs/data/themes/catppuccin-gtk/colloid-src-git-reset.patch b/pkgs/data/themes/catppuccin-gtk/colloid-src-git-reset.patch
deleted file mode 100644
index 7ee1f4bd9b6f7..0000000000000
--- a/pkgs/data/themes/catppuccin-gtk/colloid-src-git-reset.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff --git a/scripts/create_theme.py b/scripts/create_theme.py
-index 074dc43..7e7a8eb 100644
---- a/scripts/create_theme.py
-+++ b/scripts/create_theme.py
-@@ -34,7 +34,11 @@ def create_theme(types: List[str], accents: List[str], dest: str, link: bool = F
-             os.chdir(work_dir)
-             subprocess.call("./build.sh", shell=True) # Rebuild all scss
-             subprocess.call(install_cmd, shell=True) # Install the theme globally for you
--            subprocess.call("git reset --hard HEAD", shell=True)  # reset colloid repo to original state
-+            # subprocess.call("git reset --hard HEAD", shell=True)  # reset colloid repo to original state
-+            # recreate git reset
-+            os.chdir(repo_dir)
-+            shutil.rmtree("colloid")
-+            shutil.copytree("colloid-base", "colloid")
- 
-             try:
-                 # Rename colloid generated files as per catppuccin
diff --git a/pkgs/data/themes/catppuccin-plymouth/default.nix b/pkgs/data/themes/catppuccin-plymouth/default.nix
deleted file mode 100644
index 994c5ed0df2ca..0000000000000
--- a/pkgs/data/themes/catppuccin-plymouth/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ stdenvNoCC
-, lib
-, fetchFromGitHub
-, variant ? "macchiato"
-}:
-
-let
-  pname = "catppuccin-plymouth";
-  validVariants = [ "latte" "frappe" "macchiato" "mocha" ];
-in
-lib.checkListOfEnum "${pname}: color variant" validVariants [ variant ]
-
-stdenvNoCC.mkDerivation rec {
-  inherit pname;
-  version = "unstable-2022-12-10";
-
-  src = fetchFromGitHub {
-    owner = "catppuccin";
-    repo = "plymouth";
-    rev = "d4105cf336599653783c34c4a2d6ca8c93f9281c";
-    hash = "sha256-quBSH8hx3gD7y1JNWAKQdTk3CmO4t1kVo4cOGbeWlNE=";
-  };
-
-  sourceRoot = "${src.name}/themes/catppuccin-${variant}";
-
-  installPhase = ''
-    runHook preInstall
-
-    sed -i 's:\(^ImageDir=\)/usr:\1'"$out"':' catppuccin-${variant}.plymouth
-    mkdir -p $out/share/plymouth/themes/catppuccin-${variant}
-    cp * $out/share/plymouth/themes/catppuccin-${variant}
-
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    description = "Soothing pastel theme for Plymouth";
-    homepage = "https://github.com/catppuccin/plymouth";
-    license = licenses.mit;
-    platforms = platforms.linux;
-    maintainers = [ maintainers.spectre256 ];
-  };
-}
diff --git a/pkgs/data/themes/chili-sddm/default.nix b/pkgs/data/themes/chili-sddm/default.nix
index a1b26248b8dba..ccbbbfba5bf51 100644
--- a/pkgs/data/themes/chili-sddm/default.nix
+++ b/pkgs/data/themes/chili-sddm/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation {
     license = licenses.gpl3;
     maintainers = with lib.maintainers; [ sents ];
     homepage = "https://github.com/MarianArlt/sddm-chili";
-    description = "The chili login theme for SDDM";
+    description = "Chili login theme for SDDM";
     longDescription = ''
       Chili is hot, just like a real chili!
       Spice up the login experience for your users, your family and yourself.
diff --git a/pkgs/data/themes/colloid-gtk-theme/default.nix b/pkgs/data/themes/colloid-gtk-theme/default.nix
index 60849a407d866..978500ef6a213 100644
--- a/pkgs/data/themes/colloid-gtk-theme/default.nix
+++ b/pkgs/data/themes/colloid-gtk-theme/default.nix
@@ -18,17 +18,17 @@ in
 lib.checkListOfEnum "${pname}: theme variants" [ "default" "purple" "pink" "red" "orange" "yellow" "green" "teal" "grey" "all" ] themeVariants
 lib.checkListOfEnum "${pname}: color variants" [ "standard" "light" "dark" ] colorVariants
 lib.checkListOfEnum "${pname}: size variants" [ "standard" "compact" ] sizeVariants
-lib.checkListOfEnum "${pname}: tweaks" [ "nord" "dracula" "gruvbox" "everforest" "all" "black" "rimless" "normal" "float" ] tweaks
+lib.checkListOfEnum "${pname}: tweaks" [ "nord" "dracula" "gruvbox" "everforest" "catppuccin" "all" "black" "rimless" "normal" "float" ] tweaks
 
 stdenvNoCC.mkDerivation rec {
   inherit pname;
-  version = "2024-05-13";
+  version = "2024-06-18";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    hash = "sha256-24U1iMByy+cFQuLUWYPBSuvJwYzwS0rCr7L6OWyMUz0=";
+    hash = "sha256-2saj/QfiYCxthGHauaSvRv9VVptlKbXoRTMYs3FWZsc=";
   };
 
   nativeBuildInputs = [
@@ -64,7 +64,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A modern and clean Gtk theme";
+    description = "Modern and clean Gtk theme";
     homepage = "https://github.com/vinceliuice/Colloid-gtk-theme";
     license = licenses.gpl3Only;
     platforms = platforms.unix;
diff --git a/pkgs/data/themes/colloid-kde/default.nix b/pkgs/data/themes/colloid-kde/default.nix
index 5393c54f7c335..4e1e05f359d70 100644
--- a/pkgs/data/themes/colloid-kde/default.nix
+++ b/pkgs/data/themes/colloid-kde/default.nix
@@ -64,7 +64,7 @@ stdenvNoCC.mkDerivation rec {
   passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
-    description = "A clean and concise theme for KDE Plasma desktop";
+    description = "Clean and concise theme for KDE Plasma desktop";
     homepage = "https://github.com/vinceliuice/Colloid-kde-theme";
     license = licenses.gpl3Only;
     platforms = platforms.all;
diff --git a/pkgs/data/themes/dracula-theme/default.nix b/pkgs/data/themes/dracula-theme/default.nix
index d21264f4e075c..85a7d205a9189 100644
--- a/pkgs/data/themes/dracula-theme/default.nix
+++ b/pkgs/data/themes/dracula-theme/default.nix
@@ -2,7 +2,7 @@
 
 let
   themeName = "Dracula";
-  version = "4.0.0-unstable-2024-05-12";
+  version = "4.0.0-unstable-2024-06-11";
 in
 stdenvNoCC.mkDerivation {
   pname = "dracula-theme";
@@ -11,8 +11,8 @@ stdenvNoCC.mkDerivation {
   src = fetchFromGitHub {
     owner = "dracula";
     repo = "gtk";
-    rev = "98ad13fb6efbdcbf944b3c5507de01cf94338c0c";
-    hash = "sha256-qF35jUvoDw3xMGGscET18sKqqQ0+oZJYNnSXbvy7ayM=";
+    rev = "4a5fe924a2b17f82a617f79ef661f1783cacc988";
+    hash = "sha256-azwkng3JTTBlSaisbJUdh9NlMZfDbD3OvTQP++J0oO8=";
   };
 
   propagatedUserEnvPkgs = [
diff --git a/pkgs/data/themes/e17gtk/default.nix b/pkgs/data/themes/e17gtk/default.nix
index b6cc44aa0d543..46a1f926402f0 100644
--- a/pkgs/data/themes/e17gtk/default.nix
+++ b/pkgs/data/themes/e17gtk/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "An Enlightenment-like GTK theme with sharp corners";
+    description = "Enlightenment-like GTK theme with sharp corners";
     homepage = "https://github.com/tsujan/E17gtk";
     license = lib.licenses.gpl3;
     platforms = lib.platforms.unix;
diff --git a/pkgs/data/themes/equilux-theme/default.nix b/pkgs/data/themes/equilux-theme/default.nix
index 067c2b88a0990..c4773803e41c6 100644
--- a/pkgs/data/themes/equilux-theme/default.nix
+++ b/pkgs/data/themes/equilux-theme/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "A Material Design theme for GNOME/GTK based desktop environments";
+    description = "Material Design theme for GNOME/GTK based desktop environments";
     license = licenses.gpl2;
     platforms = platforms.all;
     maintainers = [ maintainers.fpletz ];
diff --git a/pkgs/data/themes/flat-remix-gnome/default.nix b/pkgs/data/themes/flat-remix-gnome/default.nix
index 3cd6710e5b932..f0cf85783245d 100644
--- a/pkgs/data/themes/flat-remix-gnome/default.nix
+++ b/pkgs/data/themes/flat-remix-gnome/default.nix
@@ -7,25 +7,25 @@
 let
   # make install will use dconf to find desktop background file uri.
   # consider adding an args to allow specify pictures manually.
-  # https://github.com/daniruiz/flat-remix-gnome/blob/20240503/Makefile#L38
+  # https://github.com/daniruiz/flat-remix-gnome/blob/20240526/Makefile#L38
   fake-dconf = writeScriptBin "dconf" "echo -n";
 in
 stdenv.mkDerivation rec {
   pname = "flat-remix-gnome";
-  version = "20240503";
+  version = "20240526";
 
   src = fetchFromGitHub {
     owner = "daniruiz";
     repo = pname;
     rev = version;
-    hash = "sha256-02hYxgq8Go++oYT8r86wA7HVXQJeUZ0JpwIu3VWfjQE=";
+    hash = "sha256-Z4ba+DB4a9cHT+r+UbsGKG46hcqbM8CZHiI36D60/aY=";
   };
 
   nativeBuildInputs = [ glib fake-dconf ];
   makeFlags = [ "PREFIX=$(out)" ];
 
   # make install will back up this file, it will fail if the file doesn't exist.
-  # https://github.com/daniruiz/flat-remix-gnome/blob/20240503/Makefile#L56
+  # https://github.com/daniruiz/flat-remix-gnome/blob/20240526/Makefile#L56
   preInstall = ''
     mkdir -p $out/share/gnome-shell/
     touch $out/share/gnome-shell/gnome-shell-theme.gresource
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "GNOME Shell theme inspired by material design.";
+    description = "GNOME Shell theme inspired by material design";
     homepage = "https://drasite.com/flat-remix-gnome";
     license = licenses.cc-by-sa-40;
     platforms = platforms.linux;
diff --git a/pkgs/data/themes/fluent-gtk-theme/default.nix b/pkgs/data/themes/fluent-gtk-theme/default.nix
deleted file mode 100644
index 9efa36aa88b71..0000000000000
--- a/pkgs/data/themes/fluent-gtk-theme/default.nix
+++ /dev/null
@@ -1,77 +0,0 @@
-{ lib
-, stdenvNoCC
-, fetchFromGitHub
-, gitUpdater
-, gnome-themes-extra
-, gtk-engine-murrine
-, jdupes
-, sassc
-, themeVariants ? [] # default: blue
-, colorVariants ? [] # default: all
-, sizeVariants ? [] # default: standard
-, tweaks ? []
-}:
-
-let
-  pname = "fluent-gtk-theme";
-
-in
-lib.checkListOfEnum "${pname}: theme variants" [ "default" "purple" "pink" "red" "orange" "yellow" "green" "teal" "grey" "all" ] themeVariants
-lib.checkListOfEnum "${pname}: color variants" [ "standard" "light" "dark" ] colorVariants
-lib.checkListOfEnum "${pname}: size variants" [ "standard" "compact" ] sizeVariants
-lib.checkListOfEnum "${pname}: tweaks" [ "solid" "float" "round" "blur" "noborder" "square" ] tweaks
-
-stdenvNoCC.mkDerivation (finalAttrs: {
-  inherit pname;
-  version = "2024-04-28";
-
-  src = fetchFromGitHub {
-    owner = "vinceliuice";
-    repo = "fluent-gtk-theme";
-    rev = finalAttrs.version;
-    hash = "sha256-0zf3fHtWcrbT26jgwgsPEDDhBWErOkgXyvGwSWV8rGs=";
-  };
-
-  nativeBuildInputs = [
-    jdupes
-    sassc
-  ];
-
-  buildInputs = [
-    gnome-themes-extra
-  ];
-
-  propagatedUserEnvPkgs = [
-    gtk-engine-murrine
-  ];
-
-  postPatch = ''
-    patchShebangs install.sh
-  '';
-
-  installPhase = ''
-    runHook preInstall
-
-    name= HOME="$TMPDIR" ./install.sh \
-      ${lib.optionalString (themeVariants != []) "--theme " + builtins.toString themeVariants} \
-      ${lib.optionalString (colorVariants != []) "--color " + builtins.toString colorVariants} \
-      ${lib.optionalString (sizeVariants != []) "--size " + builtins.toString sizeVariants} \
-      ${lib.optionalString (tweaks != []) "--tweaks " + builtins.toString tweaks} \
-      --icon nixos \
-      --dest $out/share/themes
-
-    jdupes --quiet --link-soft --recurse $out/share
-
-    runHook postInstall
-  '';
-
-  passthru.updateScript = gitUpdater { };
-
-  meta = {
-    description = "Fluent design gtk theme";
-    homepage = "https://github.com/vinceliuice/Fluent-gtk-theme";
-    license = lib.licenses.gpl3Only;
-    platforms = lib.platforms.unix;
-    maintainers = with lib.maintainers; [ romildo ];
-  };
-})
diff --git a/pkgs/data/themes/graphite-kde-theme/default.nix b/pkgs/data/themes/graphite-kde-theme/default.nix
index d098cf6aab452..8cf3d065666f1 100644
--- a/pkgs/data/themes/graphite-kde-theme/default.nix
+++ b/pkgs/data/themes/graphite-kde-theme/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
-    description = "A flat Design theme for KDE Plasma desktop";
+    description = "Flat Design theme for KDE Plasma desktop";
     homepage = "https://github.com/vinceliuice/Graphite-kde-theme";
     license = licenses.gpl3Only;
     platforms = platforms.all;
diff --git a/pkgs/data/themes/kde-gruvbox/default.nix b/pkgs/data/themes/kde-gruvbox/default.nix
index e0f478a53cbe5..3f75952f8a98e 100644
--- a/pkgs/data/themes/kde-gruvbox/default.nix
+++ b/pkgs/data/themes/kde-gruvbox/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A suite of themes for KDE applications that match the retro gruvbox colorscheme";
+    description = "Suite of themes for KDE applications that match the retro gruvbox colorscheme";
     homepage = "https://github.com/printesoi/kde-gruvbox";
     license = licenses.mit;
     maintainers = [ maintainers.ymarkus ];
diff --git a/pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix b/pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix
index e7b5f13e6a7a6..59ba5a80b3db6 100644
--- a/pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix
+++ b/pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "kde-rounded-corners";
-  version = "0.6.5";
+  version = "0.6.6";
 
   src = fetchFromGitHub {
     owner = "matinlotfali";
     repo = "KDE-Rounded-Corners";
     rev = "v${version}";
-    hash = "sha256-g7gNFv4/ighfxYz/VXF5KvcoT6t4lT5soDLlV3oAKvc=";
+    hash = "sha256-pmUuYD0RPyF5I2p5MBErziehBrfc5MswQVvfwl4ozg8=";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules wrapQtAppsHook ];
diff --git a/pkgs/data/themes/layan-gtk-theme/default.nix b/pkgs/data/themes/layan-gtk-theme/default.nix
index 597734ae9aef1..b72f3d2ffe8d0 100644
--- a/pkgs/data/themes/layan-gtk-theme/default.nix
+++ b/pkgs/data/themes/layan-gtk-theme/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A flat Material Design theme for GTK 3, GTK 2 and Gnome-Shell.";
+    description = "Flat Material Design theme for GTK 3, GTK 2 and Gnome-Shell";
     homepage = "https://github.com/vinceliuice/Layan-gtk-theme";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
diff --git a/pkgs/data/themes/layan-kde/default.nix b/pkgs/data/themes/layan-kde/default.nix
index 7ca55d1dc74f4..a0cf318d33bdc 100644
--- a/pkgs/data/themes/layan-kde/default.nix
+++ b/pkgs/data/themes/layan-kde/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
-    description = "A flat Design theme for KDE Plasma desktop";
+    description = "Flat Design theme for KDE Plasma desktop";
     homepage = "https://github.com/vinceliuice/Layan-kde";
     license = licenses.gpl3Only;
     platforms = platforms.all;
diff --git a/pkgs/data/themes/lightly-boehs/default.nix b/pkgs/data/themes/lightly-boehs/default.nix
index c8a1b010fc226..e226fd31a3d88 100644
--- a/pkgs/data/themes/lightly-boehs/default.nix
+++ b/pkgs/data/themes/lightly-boehs/default.nix
@@ -33,7 +33,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A fork of the Lightly breeze theme style that aims to be visually modern and minimalistic";
+    description = "Fork of the Lightly breeze theme style that aims to be visually modern and minimalistic";
     mainProgram = "lightly-settings5";
     homepage = "https://github.com/boehs/Lightly";
     license = licenses.gpl2Plus;
diff --git a/pkgs/data/themes/lightly-qt/default.nix b/pkgs/data/themes/lightly-qt/default.nix
index 99e7e4eb59ef1..cb238a3f745ec 100644
--- a/pkgs/data/themes/lightly-qt/default.nix
+++ b/pkgs/data/themes/lightly-qt/default.nix
@@ -33,7 +33,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A fork of breeze theme style that aims to be visually modern and minimalistic";
+    description = "Fork of breeze theme style that aims to be visually modern and minimalistic";
     mainProgram = "lightly-settings5";
     homepage = "https://github.com/Luwx/Lightly";
     license = licenses.gpl2Plus;
diff --git a/pkgs/data/themes/matcha/default.nix b/pkgs/data/themes/matcha/default.nix
index 94408f67227a6..f7c7960fe86e5 100644
--- a/pkgs/data/themes/matcha/default.nix
+++ b/pkgs/data/themes/matcha/default.nix
@@ -66,7 +66,7 @@ stdenvNoCC.mkDerivation rec {
   passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
-    description = "A stylish flat Design theme for GTK based desktop environments";
+    description = "Stylish flat Design theme for GTK based desktop environments";
     homepage = "https://vinceliuice.github.io/theme-matcha";
     license = licenses.gpl3Only;
     platforms = platforms.unix;
diff --git a/pkgs/data/themes/materia-kde/default.nix b/pkgs/data/themes/materia-kde/default.nix
index 1a3f6dc36ef27..160c0593a07f7 100644
--- a/pkgs/data/themes/materia-kde/default.nix
+++ b/pkgs/data/themes/materia-kde/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "A port of the materia theme for Plasma";
+    description = "Port of the materia theme for Plasma";
     homepage = "https://github.com/PapirusDevelopmentTeam/materia-kde";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.diffumist ];
diff --git a/pkgs/data/themes/nordic/default.nix b/pkgs/data/themes/nordic/default.nix
index ce17fd9ffd8da..13d352c6b3e16 100644
--- a/pkgs/data/themes/nordic/default.nix
+++ b/pkgs/data/themes/nordic/default.nix
@@ -10,70 +10,70 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "nordic";
-  version = "2.2.0-unstable-2024-02-20";
+  version = "2.2.0-unstable-2024-05-24";
 
   srcs = [
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "58d5a8e10ae068b98a63e6de2791e289f417842d";
-      hash = "sha256-Z3e7DoakK6f+UMBr78gZ+NJPb5vuJCfDgPRYywFDYeg=";
+      rev = "2f6b72b7b6d7112bb147a5adeca307631dd698cb";
+      hash = "sha256-4GNEJTAS6EAPYyaNOZS1lGu67nobGmMOHoq8I5WaPcA=";
       name = "Nordic";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "cb7d95bd5438728f30f361a888dfb33b7f6ad28c";
-      hash = "sha256-ZWGmDiXjEt0UuALyw7cjTYgdw9kdJJKc0vkclbZkBvo=";
+      rev = "d92b503cdabb4cf263de4c3fd9afba889c65aad1";
+      hash = "sha256-foCWcKNdk9S1MijJOuw8jFV4gnDSNWmTjgSCU9GefzE=";
       name = "Nordic-standard-buttons";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "37b86a30ad3e048f87a689f2813aa28644035fa8";
-      hash = "sha256-+O8+30H6humVQTwgFL3uQkeo5gPYrokpAKbT56PX6YQ=";
+      rev = "b76c48252c9dc6171cccf63c0c412b9afe7fa89c";
+      hash = "sha256-q/duyEin377J1cxD5+uXlEbPN/S27ht2es/02wKoiEY=";
       name = "Nordic-darker";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "926b215d14394ff043f2d2969e730759af7acd86";
-      hash = "sha256-yR0DfmUW1rr38Zbwtr7TUYL6z8vTNyoj0vEhphbZieU=";
+      rev = "b8b16b451bf5fcfada98a92682a6ff97d93fc36f";
+      hash = "sha256-959P2xdpCLhNRedoakMiHXzj+H4SWX1Lb9w6yYRzGds=";
       name = "Nordic-darker-standard-buttons";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "1ae59d40ba8342fc14f3a55a2fb37446a8d10880";
-      hash = "sha256-tFIXPP5Ohw8atNIqvMtB7sLka+/tw+aSbjMdzKfI9r0=";
+      rev = "c45681eca7fce4c129063a0aae727d42b570fcfd";
+      hash = "sha256-8a4pMkyGt+WIVXLSsLKbxCP9i4RdZKX5lvwZB+BemSY=";
       name = "Nordic-bluish-accent";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "aaaa5dab0517f182a85a75d457da70d22e577b26";
-      hash = "sha256-J/nti2jxQ0VfTbp5WfrE0CN6Pvfg1edplL6/QPKUBzc=";
+      rev = "b07b6450ff2389f88ef5ad980a1ead47071b1d63";
+      hash = "sha256-+o46apK051UH6GbG/ugSgxI212MWEnYaVlDK9rWqPMU=";
       name = "Nordic-bluish-accent-standard-buttons";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = "${pname}-polar";
-      rev = "733d5ea57c6ecd8209ec0a928029e28b3f54f83d";
-      hash = "sha256-y3ge0DF0SdKFjH+mZdHDpK3YG7Ng3rN0y0Er2WBC6Sc=";
+      rev = "bc3e7554ab8e8d94e978691054b1b062696eb688";
+      hash = "sha256-tJX/oTEp/9pmzrINBWrnhS9n8JR40T1C0A4LhRLWU9A=";
       name = "Nordic-Polar";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = "${pname}-polar";
-      rev = "667dfe4f6e8157f30a4e0ea5dc1d17438520d6cf";
-      hash = "sha256-p7bY1r8Ik+jsIyjR75UFHw8XuiGz5LmT09txBLyZpx4=";
+      rev = "26b44080c2dbd1a9b576a24d1b14ae01b98519d0";
+      hash = "sha256-5gGiBL7ZKFSPZtnikfrdvrWKG9RkIHdPyWdHYnmSTvg=";
       name = "Nordic-Polar-standard-buttons";
     })
   ];
diff --git a/pkgs/data/themes/orchis-theme/default.nix b/pkgs/data/themes/orchis-theme/default.nix
index e1dd0a2565942..e093eed713251 100644
--- a/pkgs/data/themes/orchis-theme/default.nix
+++ b/pkgs/data/themes/orchis-theme/default.nix
@@ -26,13 +26,13 @@ lib.checkListOfEnum "${pname}: theme tweaks" validTweaks tweaks
 stdenvNoCC.mkDerivation
 rec {
   inherit pname;
-  version = "2024-05-01";
+  version = "2024-05-30";
 
   src = fetchFromGitHub {
     repo = "Orchis-theme";
     owner = "vinceliuice";
     rev = version;
-    hash = "sha256-xi4kYT566bQqQEY4CByTrpwMfC1uhzeIqpprpe59oIM=";
+    hash = "sha256-Dpdt7acRodtR4EE4STIiYHidehZwFGoYS8Oh6DgpXOI=";
   };
 
   nativeBuildInputs = [ gtk3 sassc ];
@@ -58,7 +58,7 @@ rec {
   '';
 
   meta = with lib; {
-    description = "A Material Design theme for GNOME/GTK based desktop environments.";
+    description = "Material Design theme for GNOME/GTK based desktop environments";
     homepage = "https://github.com/vinceliuice/Orchis-theme";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/data/themes/paper-gtk/default.nix b/pkgs/data/themes/paper-gtk/default.nix
index e7c9179678f02..8285284303812 100644
--- a/pkgs/data/themes/paper-gtk/default.nix
+++ b/pkgs/data/themes/paper-gtk/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
   preferLocalBuild = true;
 
   meta = with lib; {
-    description = "A modern desktop theme suite featuring a mostly flat with a minimal use of shadows for depth";
+    description = "Modern desktop theme suite featuring a mostly flat with a minimal use of shadows for depth";
     homepage = "https://snwh.org/paper";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/pkgs/data/themes/pitch-black/default.nix b/pkgs/data/themes/pitch-black/default.nix
index 95037f90239e0..092208f4f417d 100644
--- a/pkgs/data/themes/pitch-black/default.nix
+++ b/pkgs/data/themes/pitch-black/default.nix
@@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec{
   '';
 
   meta = with lib; {
-    description = "A dark plasma theme built with usability in mind";
+    description = "Dark plasma theme built with usability in mind";
     homepage = "https://github.com/freefreeno/Pitch-Black";
     license = licenses.gpl3Only;
     platforms = platforms.unix;
diff --git a/pkgs/data/themes/plata/default.nix b/pkgs/data/themes/plata/default.nix
index 0e7d88a7883c5..0400ba5b3c354 100644
--- a/pkgs/data/themes/plata/default.nix
+++ b/pkgs/data/themes/plata/default.nix
@@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A GTK theme based on Material Design Refresh";
+    description = "GTK theme based on Material Design Refresh";
     homepage = "https://gitlab.com/tista500/plata-theme";
     license = with licenses; [ gpl2 cc-by-sa-40 ];
     platforms = platforms.linux;
diff --git a/pkgs/data/themes/qogir-kde/default.nix b/pkgs/data/themes/qogir-kde/default.nix
index 1dd3deba8dff7..b3f914ae975b3 100644
--- a/pkgs/data/themes/qogir-kde/default.nix
+++ b/pkgs/data/themes/qogir-kde/default.nix
@@ -53,7 +53,7 @@ stdenvNoCC.mkDerivation rec {
   passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
-    description = "A flat Design theme for KDE Plasma desktop";
+    description = "Flat Design theme for KDE Plasma desktop";
     homepage = "https://github.com/vinceliuice/Qogir-kde";
     license = licenses.gpl3Only;
     platforms = platforms.all;
diff --git a/pkgs/data/themes/qogir/default.nix b/pkgs/data/themes/qogir/default.nix
index e435ce549450d..223e077bfe476 100644
--- a/pkgs/data/themes/qogir/default.nix
+++ b/pkgs/data/themes/qogir/default.nix
@@ -24,13 +24,13 @@ lib.checkListOfEnum "${pname}: tweaks" [ "image" "square" "round" ] tweaks
 
 stdenv.mkDerivation rec {
   inherit pname;
-  version = "2023-05-24";
+  version = "2024-05-22";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "L19pbmJJFr1xi4ZTp0ocxmdMvWmtkK2zquOFfbV+P5Q=";
+    sha256 = "Q9DWBzaLZjwXsYRa/oDIrccypO3TCbSRXTkbXWRmm70=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/themes/sierra/default.nix b/pkgs/data/themes/sierra/default.nix
index e87f64661419c..41c27b2482b92 100644
--- a/pkgs/data/themes/sierra/default.nix
+++ b/pkgs/data/themes/sierra/default.nix
@@ -65,7 +65,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A Mac OSX like theme for GTK based desktop environments";
+    description = "Mac OSX like theme for GTK based desktop environments";
     homepage = "https://github.com/vinceliuice/Sierra-gtk-theme";
     license = licenses.gpl3;
     platforms = platforms.unix;
diff --git a/pkgs/data/themes/sweet-nova/default.nix b/pkgs/data/themes/sweet-nova/default.nix
index 22a16fa9284dc..15d393bcab76d 100644
--- a/pkgs/data/themes/sweet-nova/default.nix
+++ b/pkgs/data/themes/sweet-nova/default.nix
@@ -42,7 +42,7 @@ stdenvNoCC.mkDerivation {
   passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
-    description = "A dark and colorful, blurry theme for the KDE Plasma desktop";
+    description = "Dark and colorful, blurry theme for the KDE Plasma desktop";
     homepage = "https://github.com/EliverLara/Sweet";
     license = licenses.gpl3Only;
     maintainers = [ maintainers.dr460nf1r3 ];
diff --git a/pkgs/data/themes/tokyonight-gtk-theme/generic.nix b/pkgs/data/themes/tokyonight-gtk-theme/generic.nix
index e575d13c436b8..1adbf674a5864 100644
--- a/pkgs/data/themes/tokyonight-gtk-theme/generic.nix
+++ b/pkgs/data/themes/tokyonight-gtk-theme/generic.nix
@@ -68,7 +68,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A GTK theme based on the Tokyo Night colour palette";
+    description = "GTK theme based on the Tokyo Night colour palette";
     homepage = "https://www.pling.com/p/1681315";
     license = licenses.gpl3Only;
     platforms = platforms.unix;
diff --git a/pkgs/data/themes/ubuntu-themes/default.nix b/pkgs/data/themes/ubuntu-themes/default.nix
index fb23141a64eb9..ea6a9abcb7790 100644
--- a/pkgs/data/themes/ubuntu-themes/default.nix
+++ b/pkgs/data/themes/ubuntu-themes/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchurl
-, fetchpatch
 , gnome-icon-theme
 , gnome
 , gtk-engine-murrine
diff --git a/pkgs/data/themes/utterly-nord-plasma/default.nix b/pkgs/data/themes/utterly-nord-plasma/default.nix
index 4fbb0f5b8a837..c35f919aedd46 100644
--- a/pkgs/data/themes/utterly-nord-plasma/default.nix
+++ b/pkgs/data/themes/utterly-nord-plasma/default.nix
@@ -3,27 +3,27 @@
 , fetchFromGitHub
 , breeze-icons
 , kdeclarative
-, kirigami2
+, kirigami
 , plasma-framework
 , plasma-workspace
 }:
 
 stdenv.mkDerivation rec {
   pname = "utterly-nord-plasma";
-  version = "2.1";
+  version = "3.2";
 
   src = fetchFromGitHub {
     owner = "HimDek";
     repo = pname;
-    rev = "6d9ffe008f0bee47c8346c9a7ec71f206d999fd0";
-    hash = "sha256-B5pIwV0BHxDluKWKTy+xuBPaE3N6UOHXip1SIAm2kM8=";
+    rev = "e513b4dfeddd587a34bfdd9ba6b1d1eac8ecadf5";
+    hash = "sha256-moLgBFR+BgoiEBzV3y/LA6JZfLHrG1weL1+h8LN9ztA=";
   };
 
   propagatedUserEnvPkgs = [
     breeze-icons
-    kdeclarative.bin
-    kirigami2
-    plasma-framework.bin
+    kdeclarative
+    kirigami
+    plasma-framework
     plasma-workspace
   ];
 
@@ -33,9 +33,9 @@ stdenv.mkDerivation rec {
     mkdir -p $out/share/{color-schemes,Kvantum,plasma/look-and-feel,sddm/themes,wallpapers,konsole}
 
     cp -a look-and-feel $out/share/plasma/look-and-feel/Utterly-Nord
-    cp -a look-and-feel-solid $out/share/plasma/look-and-feel/Utterly-Nord-solid
-    cp -a look-and-feel-light $out/share/plasma/look-and-feel/Utterly-Nord-light
-    cp -a look-and-feel-light-solid $out/share/plasma/look-and-feel/Utterly-Nord-light-solid
+    cp -a look-and-feel-solid $out/share/plasma/look-and-feel/Utterly-Nord-Solid
+    cp -a look-and-feel-light $out/share/plasma/look-and-feel/Utterly-Nord-Light
+    cp -a look-and-feel-light-solid $out/share/plasma/look-and-feel/Utterly-Nord-Light-Solid
 
     cp -a *.colors $out/share/color-schemes/
 
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Plasma theme with Nordic Colors, transparency, blur and round edges for UI elements";
+    description = "Plasma theme with Nordic Colors, transparency, blur and round edges for UI elements";
     homepage = "https://himdek.com/Utterly-Nord-Plasma/";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
diff --git a/pkgs/data/themes/utterly-round-plasma-style/default.nix b/pkgs/data/themes/utterly-round-plasma-style/default.nix
index 40bdb2f71d887..7510183b10f35 100644
--- a/pkgs/data/themes/utterly-round-plasma-style/default.nix
+++ b/pkgs/data/themes/utterly-round-plasma-style/default.nix
@@ -10,8 +10,8 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "HimDek";
     repo = pname;
-    rev = "c3677d5223286f69871f6745cdb3b71367229d40";
-    hash = "sha256-mlqRMz0cAZnnM4xE6p7fMzhGlqCQcM4FxmDlVnbGUgQ=";
+    rev = "6280f69781b7fa9613b7a9c502d8d61e11fefca5";
+    hash = "sha256-b0vah/rkcJH01bnDOGXQ04vrRR1c1Ijgc2HPBmToLuc=";
   };
 
   installPhase = ''
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A rounded desktop theme and window borders for Plasma 5 that follows any color scheme";
+    description = "Rounded desktop theme and window borders for Plasma 5 that follows any color scheme";
     homepage = "https://himdek.com/Utterly-Round-Plasma-Style/";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
diff --git a/pkgs/data/themes/whitesur-kde/default.nix b/pkgs/data/themes/whitesur-kde/default.nix
index 20dc5a66fe5e9..16e4cc79b478c 100644
--- a/pkgs/data/themes/whitesur-kde/default.nix
+++ b/pkgs/data/themes/whitesur-kde/default.nix
@@ -54,7 +54,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
-    description = "A MacOS big sur like theme for KDE Plasma desktop";
+    description = "MacOS big sur like theme for KDE Plasma desktop";
     homepage = "https://github.com/vinceliuice/WhiteSur-kde";
     license = licenses.gpl3Only;
     platforms = platforms.all;
diff --git a/pkgs/data/themes/yaru/default.nix b/pkgs/data/themes/yaru/default.nix
index d22064014ebaf..c49a35e85dab4 100644
--- a/pkgs/data/themes/yaru/default.nix
+++ b/pkgs/data/themes/yaru/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "yaru";
-  version = "24.04.2";
+  version = "24.04.3";
 
   src = fetchFromGitHub {
     owner = "ubuntu";
     repo = "yaru";
     rev = version;
-    hash = "sha256-nvNJ0ppx3oete+CsklJtpDOLyUA0Oj/oUmcLjsR54MU=";
+    hash = "sha256-Z0qW3hW5Sije5Hn6OB9f5M6xnmMmRnP76p0kjiQZznw=";
   };
 
   nativeBuildInputs = [ meson sassc pkg-config glib ninja python3 ];
diff --git a/pkgs/desktops/budgie/budgie-backgrounds/default.nix b/pkgs/desktops/budgie/budgie-backgrounds/default.nix
index 230e4fd97e989..f46a330247d6f 100644
--- a/pkgs/desktops/budgie/budgie-backgrounds/default.nix
+++ b/pkgs/desktops/budgie/budgie-backgrounds/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = {
-    description = "The default background set for the Budgie Desktop";
+    description = "Default background set for the Budgie Desktop";
     homepage = "https://github.com/BuddiesOfBudgie/budgie-backgrounds";
     platforms = lib.platforms.linux;
     maintainers = lib.teams.budgie.members;
diff --git a/pkgs/desktops/budgie/budgie-control-center/default.nix b/pkgs/desktops/budgie/budgie-control-center/default.nix
index 25b8b66f6082a..1fb8d86d410e0 100644
--- a/pkgs/desktops/budgie/budgie-control-center/default.nix
+++ b/pkgs/desktops/budgie/budgie-control-center/default.nix
@@ -168,7 +168,7 @@ stdenv.mkDerivation (finalAttrs: {
   separateDebugInfo = true;
 
   meta = {
-    description = "A fork of GNOME Control Center for the Budgie 10 Series";
+    description = "Fork of GNOME Control Center for the Budgie 10 Series";
     homepage = "https://github.com/BuddiesOfBudgie/budgie-control-center";
     mainProgram = "budgie-control-center";
     platforms = lib.platforms.linux;
diff --git a/pkgs/desktops/budgie/budgie-desktop-view/default.nix b/pkgs/desktops/budgie/budgie-desktop-view/default.nix
index b7be5ff42c16d..d2653e775d6c3 100644
--- a/pkgs/desktops/budgie/budgie-desktop-view/default.nix
+++ b/pkgs/desktops/budgie/budgie-desktop-view/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
   mesonFlags = [ (lib.mesonBool "werror" false) ];
 
   meta = {
-    description = "The official Budgie desktop icons application/implementation";
+    description = "Official Budgie desktop icons application/implementation";
     homepage = "https://github.com/BuddiesOfBudgie/budgie-desktop-view";
     mainProgram = "org.buddiesofbudgie.budgie-desktop-view";
     license = lib.licenses.asl20;
diff --git a/pkgs/desktops/budgie/budgie-desktop/default.nix b/pkgs/desktops/budgie/budgie-desktop/default.nix
index 0a15124121796..004f2b1ad7efa 100644
--- a/pkgs/desktops/budgie/budgie-desktop/default.nix
+++ b/pkgs/desktops/budgie/budgie-desktop/default.nix
@@ -123,7 +123,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = {
-    description = "A feature-rich, modern desktop designed to keep out the way of the user";
+    description = "Feature-rich, modern desktop designed to keep out the way of the user";
     homepage = "https://github.com/BuddiesOfBudgie/budgie-desktop";
     license = with lib.licenses; [ gpl2Plus lgpl21Plus cc-by-sa-30 ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/desktops/budgie/budgie-screensaver/default.nix b/pkgs/desktops/budgie/budgie-screensaver/default.nix
index d0c4964a04002..55b4be851642c 100644
--- a/pkgs/desktops/budgie/budgie-screensaver/default.nix
+++ b/pkgs/desktops/budgie/budgie-screensaver/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation (finalAttrs: {
   env.NIX_CFLAGS_COMPILE = "-D_POSIX_C_SOURCE";
 
   meta = {
-    description = "A fork of old GNOME Screensaver for purposes of providing an authentication prompt on wake";
+    description = "Fork of old GNOME Screensaver for purposes of providing an authentication prompt on wake";
     homepage = "https://github.com/BuddiesOfBudgie/budgie-screensaver";
     mainProgram = "budgie-screensaver";
     platforms = lib.platforms.linux;
diff --git a/pkgs/desktops/cinnamon/bulky/default.nix b/pkgs/desktops/cinnamon/bulky/default.nix
index c3927ece25485..587018695d59b 100644
--- a/pkgs/desktops/cinnamon/bulky/default.nix
+++ b/pkgs/desktops/cinnamon/bulky/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bulky";
-  version = "3.2";
+  version = "3.3";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "bulky";
     rev = version;
-    hash = "sha256-Zt5J8+CYiPxp/e1wDaJp7R91vYJmGNqPQs39J/OIwiQ=";
+    hash = "sha256-S4wAcwlJnXHYQEnP9WApCTjvVHKMrAt7gQ2l8zvFrs0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/cinnamon/cinnamon-common/default.nix b/pkgs/desktops/cinnamon/cinnamon-common/default.nix
index 957af3062422d..35a7a2247f5a1 100644
--- a/pkgs/desktops/cinnamon/cinnamon-common/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-common/default.nix
@@ -214,7 +214,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/linuxmint/cinnamon";
-    description = "The Cinnamon desktop environment";
+    description = "Cinnamon desktop environment";
     license = [ licenses.gpl2 ];
     platforms = platforms.linux;
     maintainers = teams.cinnamon.members;
diff --git a/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix b/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
index c09bf55a3e413..55ca24d57de0e 100644
--- a/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
@@ -98,7 +98,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/linuxmint/cinnamon-control-center";
-    description = "A collection of configuration plugins used in cinnamon-settings";
+    description = "Collection of configuration plugins used in cinnamon-settings";
     mainProgram = "cinnamon-control-center";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/cinnamon/cinnamon-menus/default.nix b/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
index 693495591178a..e184e64a889e9 100644
--- a/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/linuxmint/cinnamon-menus";
-    description = "A menu system for the Cinnamon project";
+    description = "Menu system for the Cinnamon project";
     license = [ licenses.gpl2 licenses.lgpl2 ];
     platforms = platforms.linux;
     maintainers = teams.cinnamon.members;
diff --git a/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix b/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
index 6ed8c0247ba25..f08a242d4665c 100644
--- a/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
@@ -98,7 +98,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/linuxmint/cinnamon-screensaver";
-    description = "The Cinnamon screen locker and screensaver program";
+    description = "Cinnamon screen locker and screensaver program";
     license = [ licenses.gpl2 licenses.lgpl2 ];
     platforms = platforms.linux;
     maintainers = teams.cinnamon.members;
diff --git a/pkgs/desktops/cinnamon/cinnamon-session/default.nix b/pkgs/desktops/cinnamon/cinnamon-session/default.nix
index bb8a4f192cf93..47cedfa0a6f5c 100644
--- a/pkgs/desktops/cinnamon/cinnamon-session/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-session/default.nix
@@ -104,7 +104,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/linuxmint/cinnamon-session";
-    description = "The Cinnamon session manager";
+    description = "Cinnamon session manager";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = teams.cinnamon.members;
diff --git a/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix b/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
index 1c948d6224303..115ffcdece190 100644
--- a/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
@@ -98,7 +98,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/linuxmint/cinnamon-settings-daemon";
-    description = "The settings daemon for the Cinnamon desktop";
+    description = "Settings daemon for the Cinnamon desktop";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = teams.cinnamon.members;
diff --git a/pkgs/desktops/cinnamon/mint-x-icons/default.nix b/pkgs/desktops/cinnamon/mint-x-icons/default.nix
index 50819783db57f..8b045980c44a1 100644
--- a/pkgs/desktops/cinnamon/mint-x-icons/default.nix
+++ b/pkgs/desktops/cinnamon/mint-x-icons/default.nix
@@ -11,13 +11,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "mint-x-icons";
-  version = "1.6.8";
+  version = "1.6.9";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-cxBZsAcGgoIY9KhjR/BWnMcttrywN6qap4lu5b2hauo=";
+    hash = "sha256-J5Osy+VosyBhwiiwELMtjDTf3/J6DpuQ4c9DO06fo+4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/desktops/cinnamon/mint-y-icons/default.nix b/pkgs/desktops/cinnamon/mint-y-icons/default.nix
index 3ac2792546cf5..f12800e384b43 100644
--- a/pkgs/desktops/cinnamon/mint-y-icons/default.nix
+++ b/pkgs/desktops/cinnamon/mint-y-icons/default.nix
@@ -9,13 +9,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "mint-y-icons";
-  version = "1.7.5";
+  version = "1.7.6";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-ZStRvT0qP8W1RCSJoXZHMrECp6k8dh/18UvgmV87oNQ=";
+    hash = "sha256-baBacAatUP/jtU/SEVRa6HceGooMwI9N9arDWqPHR2Y=";
   };
 
   propagatedBuildInputs = [
@@ -45,7 +45,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/linuxmint/mint-y-icons";
-    description = "The Mint-Y icon theme";
+    description = "Mint-Y icon theme";
     license = licenses.gpl3; # from debian/copyright
     platforms = platforms.linux;
     maintainers = teams.cinnamon.members;
diff --git a/pkgs/desktops/cinnamon/muffin/default.nix b/pkgs/desktops/cinnamon/muffin/default.nix
index fa054f1eaeec7..08a9d3bf91b6b 100644
--- a/pkgs/desktops/cinnamon/muffin/default.nix
+++ b/pkgs/desktops/cinnamon/muffin/default.nix
@@ -114,7 +114,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/linuxmint/muffin";
-    description = "The window management library for the Cinnamon desktop (libmuffin) and its sample WM binary (muffin)";
+    description = "Window management library for the Cinnamon desktop (libmuffin) and its sample WM binary (muffin)";
     mainProgram = "muffin";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/cinnamon/nemo/default.nix b/pkgs/desktops/cinnamon/nemo/default.nix
index 482c9b6b4193a..fbc12c13dce01 100644
--- a/pkgs/desktops/cinnamon/nemo/default.nix
+++ b/pkgs/desktops/cinnamon/nemo/default.nix
@@ -1,5 +1,4 @@
 { fetchFromGitHub
-, fetchpatch
 , glib
 , gobject-introspection
 , meson
diff --git a/pkgs/desktops/cinnamon/pix/default.nix b/pkgs/desktops/cinnamon/pix/default.nix
index 45b8da1760ba8..8d74bdbe7122e 100644
--- a/pkgs/desktops/cinnamon/pix/default.nix
+++ b/pkgs/desktops/cinnamon/pix/default.nix
@@ -7,6 +7,7 @@
 , exiv2
 , libheif
 , libjpeg
+, libjxl
 , libtiff
 , gst_all_1
 , libraw
@@ -30,13 +31,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pix";
-  version = "3.2.2";
+  version = "3.4.1";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "sha256-tRndJjUw/k5mJPFTBMfW88Mvp2wZtC3RUzyS8bBO1jc=";
+    sha256 = "sha256-QkgjUzoBOXE3mxXy/Lq3YkHq7f9oE97FeP7PHIBDHvc=";
   };
 
   nativeBuildInputs = [
@@ -65,6 +66,7 @@ stdenv.mkDerivation rec {
     lcms2
     libheif
     libjpeg
+    libjxl
     libraw
     librsvg
     libsecret
@@ -92,7 +94,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A generic image viewer from Linux Mint";
+    description = "Generic image viewer from Linux Mint";
     mainProgram = "pix";
     homepage = "https://github.com/linuxmint/pix";
     license = licenses.gpl2Only;
diff --git a/pkgs/desktops/cinnamon/warpinator/default.nix b/pkgs/desktops/cinnamon/warpinator/default.nix
index 6f9a7e5a24d38..ca93799f58008 100644
--- a/pkgs/desktops/cinnamon/warpinator/default.nix
+++ b/pkgs/desktops/cinnamon/warpinator/default.nix
@@ -36,13 +36,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "warpinator";
-  version = "1.8.3";
+  version = "1.8.4";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-qtz8/vO6LJ19NcuFf9p3DWNy41kkoBWlgZGChlnTOvI=";
+    hash = "sha256-T1boMqzAGMjUD62ZAlWNOe3xUx5H5ZwpR7MNipy/LKA=";
   };
 
   nativeBuildInputs = [
@@ -78,9 +78,9 @@ stdenv.mkDerivation rec {
     # We make bubblewrap mode always available since
     # landlock mode is not supported in old kernels.
     substituteInPlace src/warpinator-launch.py \
-      --replace '"/bin/python3"' '"${pythonEnv.interpreter}"' \
-      --replace "/bin/bwrap" "${bubblewrap}/bin/bwrap" \
-      --replace 'GLib.find_program_in_path("bwrap")' "True"
+      --replace-fail '"/usr/bin/python3"' '"${pythonEnv.interpreter}"' \
+      --replace-fail "/usr/bin/bwrap" "${bubblewrap}/bin/bwrap" \
+      --replace-fail 'GLib.find_program_in_path("bwrap")' "True"
   '';
 
   passthru.updateScript = gitUpdater {
diff --git a/pkgs/desktops/cinnamon/xapp/default.nix b/pkgs/desktops/cinnamon/xapp/default.nix
index 14b706fbd4c37..d6f4536eef8b3 100644
--- a/pkgs/desktops/cinnamon/xapp/default.nix
+++ b/pkgs/desktops/cinnamon/xapp/default.nix
@@ -22,7 +22,7 @@
 
 stdenv.mkDerivation rec {
   pname = "xapp";
-  version = "2.8.2";
+  version = "2.8.4";
 
   outputs = [ "out" "dev" ];
 
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-n600mc8/4+bYUtYaHUnmr90ThVkngcu8Ft02iuSrWWQ=";
+    hash = "sha256-Q82UI2GEv2g01pcrvn8JBOf9FgjbG0c1qfSINx0CouQ=";
   };
 
   # Recommended by upstream, which enables the build of xapp-debug.
diff --git a/pkgs/desktops/cinnamon/xreader/default.nix b/pkgs/desktops/cinnamon/xreader/default.nix
index 05a4aedfb6ed6..f38392bd42126 100644
--- a/pkgs/desktops/cinnamon/xreader/default.nix
+++ b/pkgs/desktops/cinnamon/xreader/default.nix
@@ -27,13 +27,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xreader";
-  version = "4.0.2";
+  version = "4.2.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "sha256-X5XMkO2JFceLyH7KEp8mnDltdjGpCT4kVGdcpGRpUJI=";
+    sha256 = "sha256-MWSAyXQcE8cDdzJISFV7UHheHX+7zF1Ula+LGicvUPM=";
   };
 
   nativeBuildInputs = [
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A document viewer capable of displaying multiple and single page
+    description = "Document viewer capable of displaying multiple and single page
 document formats like PDF and Postscript";
     homepage = "https://github.com/linuxmint/xreader";
     license = licenses.gpl2Plus;
diff --git a/pkgs/desktops/cinnamon/xviewer/default.nix b/pkgs/desktops/cinnamon/xviewer/default.nix
index e0ff80b74ffc3..5f45ed4f6bfa3 100644
--- a/pkgs/desktops/cinnamon/xviewer/default.nix
+++ b/pkgs/desktops/cinnamon/xviewer/default.nix
@@ -27,13 +27,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xviewer";
-  version = "3.4.4";
+  version = "3.4.5";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Kr3GoroQUzOePJiYeJYE9wrqWKcfX7ncu3tZSxOdnvU=";
+    sha256 = "sha256-J6KDkGPbcRBofsJVmd+1IEapSfSd3ftjz0AggvBI8ck=";
   };
 
   nativeBuildInputs = [
@@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A generic image viewer from Linux Mint";
+    description = "Generic image viewer from Linux Mint";
     mainProgram = "xviewer";
     homepage = "https://github.com/linuxmint/xviewer";
     license = licenses.gpl2Only;
diff --git a/pkgs/desktops/deepin/apps/deepin-album/default.nix b/pkgs/desktops/deepin/apps/deepin-album/default.nix
index 0e53897b47731..4cca3377492c7 100644
--- a/pkgs/desktops/deepin/apps/deepin-album/default.nix
+++ b/pkgs/desktops/deepin/apps/deepin-album/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ "-DVERSION=${version}" ];
 
   meta = with lib; {
-    description = "A fashion photo manager for viewing and organizing pictures";
+    description = "Fashion photo manager for viewing and organizing pictures";
     homepage = "https://github.com/linuxdeepin/deepin-album";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/apps/deepin-calculator/default.nix b/pkgs/desktops/deepin/apps/deepin-calculator/default.nix
index fa5c80d4a0719..6565e99401ce8 100644
--- a/pkgs/desktops/deepin/apps/deepin-calculator/default.nix
+++ b/pkgs/desktops/deepin/apps/deepin-calculator/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ "-DVERSION=${version}" ];
 
   meta = with lib; {
-    description = "An easy to use calculator for ordinary users";
+    description = "Easy to use calculator for ordinary users";
     mainProgram = "deepin-calculator";
     homepage = "https://github.com/linuxdeepin/deepin-calculator";
     license = licenses.gpl3Plus;
diff --git a/pkgs/desktops/deepin/apps/deepin-compressor/default.nix b/pkgs/desktops/deepin/apps/deepin-compressor/default.nix
index 8943b84231744..07a92200cb21a 100644
--- a/pkgs/desktops/deepin/apps/deepin-compressor/default.nix
+++ b/pkgs/desktops/deepin/apps/deepin-compressor/default.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
   strictDeps = true;
 
   meta = with lib; {
-    description = "A fast and lightweight application for creating and extracting archives";
+    description = "Fast and lightweight application for creating and extracting archives";
     mainProgram = "deepin-compressor";
     homepage = "https://github.com/linuxdeepin/deepin-compressor";
     license = licenses.gpl3Plus;
diff --git a/pkgs/desktops/deepin/apps/deepin-editor/default.nix b/pkgs/desktops/deepin/apps/deepin-editor/default.nix
index c0cfc4465e1a8..7987c814b7aa8 100644
--- a/pkgs/desktops/deepin/apps/deepin-editor/default.nix
+++ b/pkgs/desktops/deepin/apps/deepin-editor/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
-    description = "A desktop text editor that supports common text editing features";
+    description = "Desktop text editor that supports common text editing features";
     homepage = "https://github.com/linuxdeepin/deepin-editor";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/apps/deepin-image-viewer/default.nix b/pkgs/desktops/deepin/apps/deepin-image-viewer/default.nix
index 7d7df4494a3a2..8cb889b05f448 100644
--- a/pkgs/desktops/deepin/apps/deepin-image-viewer/default.nix
+++ b/pkgs/desktops/deepin/apps/deepin-image-viewer/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ "-DVERSION=${version}" ];
 
   meta = with lib; {
-    description = "An image viewing tool with fashion interface and smooth performance";
+    description = "Image viewing tool with fashion interface and smooth performance";
     homepage = "https://github.com/linuxdeepin/deepin-image-viewer";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/apps/deepin-movie-reborn/default.nix b/pkgs/desktops/deepin/apps/deepin-movie-reborn/default.nix
index d9f810c951846..003e46a3817b0 100644
--- a/pkgs/desktops/deepin/apps/deepin-movie-reborn/default.nix
+++ b/pkgs/desktops/deepin/apps/deepin-movie-reborn/default.nix
@@ -1,11 +1,9 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , pkg-config
 , wrapQtAppsHook
-, qtbase
 , qttools
 , qtx11extras
 , qtmultimedia
@@ -30,7 +28,6 @@
 , gst_all_1
 , gtest
 , libpulseaudio
-, runtimeShell
 }:
 
 stdenv.mkDerivation rec {
diff --git a/pkgs/desktops/deepin/apps/deepin-reader/default.nix b/pkgs/desktops/deepin/apps/deepin-reader/default.nix
index 39045e0e2a614..d730114af4fcf 100644
--- a/pkgs/desktops/deepin/apps/deepin-reader/default.nix
+++ b/pkgs/desktops/deepin/apps/deepin-reader/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A simple memo software with texts and voice recordings";
+    description = "Simple memo software with texts and voice recordings";
     mainProgram = "deepin-reader";
     homepage = "https://github.com/linuxdeepin/deepin-reader";
     license = licenses.gpl3Plus;
diff --git a/pkgs/desktops/deepin/apps/deepin-screensaver/default.nix b/pkgs/desktops/deepin/apps/deepin-screensaver/default.nix
index daadb5a863d35..5de3bb6f845e5 100644
--- a/pkgs/desktops/deepin/apps/deepin-screensaver/default.nix
+++ b/pkgs/desktops/deepin/apps/deepin-screensaver/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A screensaver service developed by deepin";
+    description = "Screensaver service developed by deepin";
     mainProgram = "deepin-screensaver";
     homepage = "https://github.com/linuxdeepin/deepin-screensaver";
     license = licenses.gpl3Plus;
diff --git a/pkgs/desktops/deepin/apps/deepin-system-monitor/default.nix b/pkgs/desktops/deepin/apps/deepin-system-monitor/default.nix
index 52492275e98cd..d4aebc807fb41 100644
--- a/pkgs/desktops/deepin/apps/deepin-system-monitor/default.nix
+++ b/pkgs/desktops/deepin/apps/deepin-system-monitor/default.nix
@@ -87,7 +87,7 @@ stdenv.mkDerivation rec {
   strictDeps = true;
 
   meta = with lib; {
-    description = "A more user-friendly system monitor";
+    description = "More user-friendly system monitor";
     homepage = "https://github.com/linuxdeepin/deepin-system-monitor";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/artwork/deepin-sound-theme/default.nix b/pkgs/desktops/deepin/artwork/deepin-sound-theme/default.nix
index f311339b6be01..f779a77c3234d 100644
--- a/pkgs/desktops/deepin/artwork/deepin-sound-theme/default.nix
+++ b/pkgs/desktops/deepin/artwork/deepin-sound-theme/default.nix
@@ -17,7 +17,7 @@ stdenvNoCC.mkDerivation rec {
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
   meta = with lib; {
-    description = "The freedesktop sound theme for Deepin";
+    description = "Freedesktop sound theme for Deepin";
     homepage = "https://github.com/linuxdeepin/deepin-sound-theme";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/core/dde-appearance/default.nix b/pkgs/desktops/deepin/core/dde-appearance/default.nix
index 01fd610099c7f..74f6ba76e848c 100644
--- a/pkgs/desktops/deepin/core/dde-appearance/default.nix
+++ b/pkgs/desktops/deepin/core/dde-appearance/default.nix
@@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A program used to set the theme and appearance of deepin desktop";
+    description = "Program used to set the theme and appearance of deepin desktop";
     homepage = "https://github.com/linuxdeepin/dde-appearance";
     license = licenses.lgpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/core/dde-dock/default.nix b/pkgs/desktops/deepin/core/dde-dock/default.nix
index 275d8e5894927..7e05e41315ba5 100644
--- a/pkgs/desktops/deepin/core/dde-dock/default.nix
+++ b/pkgs/desktops/deepin/core/dde-dock/default.nix
@@ -1,6 +1,5 @@
 { stdenv
 , lib
-, fetchpatch
 , fetchFromGitHub
 , cmake
 , extra-cmake-modules
diff --git a/pkgs/desktops/deepin/core/dde-launchpad/default.nix b/pkgs/desktops/deepin/core/dde-launchpad/default.nix
index 3e3b15f3a250f..f531418750d4b 100644
--- a/pkgs/desktops/deepin/core/dde-launchpad/default.nix
+++ b/pkgs/desktops/deepin/core/dde-launchpad/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "The 'launcher' or 'start menu' component for DDE";
+    description = "'launcher' or 'start menu' component for DDE";
     mainProgram = "dde-launchpad";
     homepage = "https://github.com/linuxdeepin/dde-launchpad";
     license = licenses.gpl3Plus;
diff --git a/pkgs/desktops/deepin/go-package/dde-daemon/default.nix b/pkgs/desktops/deepin/go-package/dde-daemon/default.nix
index 4a63b779c4c5d..14fe7c03c3e38 100644
--- a/pkgs/desktops/deepin/go-package/dde-daemon/default.nix
+++ b/pkgs/desktops/deepin/go-package/dde-daemon/default.nix
@@ -64,23 +64,26 @@ buildGoModule rec {
 
   postPatch = ''
     substituteInPlace session/eventlog/{app_event.go,login_event.go} \
-      --replace "/bin/bash" "${runtimeShell}"
+      --replace-fail "/bin/bash" "${runtimeShell}"
 
     substituteInPlace inputdevices/layout_list.go \
-      --replace "/usr/share/X11/xkb" "${xkeyboard_config}/share/X11/xkb"
+      --replace-fail "/usr/share/X11/xkb" "${xkeyboard_config}/share/X11/xkb"
 
-    substituteInPlace bin/dde-system-daemon/wallpaper.go accounts1/user.go \
-      --replace "/usr/share/wallpapers" "/run/current-system/sw/share/wallpapers"
+    substituteInPlace accounts1/user.go \
+      --replace-fail "/usr/share/wallpapers" "/run/current-system/sw/share/wallpapers"
 
     substituteInPlace timedate1/zoneinfo/zone.go \
-      --replace "/usr/share/dde" "$out/share/dde" \
-      --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
+      --replace-fail "/usr/share/dde" "$out/share/dde" \
+      --replace-fail "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
 
     substituteInPlace accounts1/image_blur.go grub2/modify_manger.go \
-      --replace "/usr/lib/deepin-api" "/run/current-system/sw/lib/deepin-api"
+      --replace-fail "/usr/lib/deepin-api" "/run/current-system/sw/lib/deepin-api"
 
     substituteInPlace accounts1/user_chpwd_union_id.go \
-      --replace "/usr/lib/dde-control-center" "/run/current-system/sw/lib/dde-control-center"
+      --replace-fail "/usr/lib/dde-control-center" "/run/current-system/sw/lib/dde-control-center"
+
+    substituteInPlace system/uadp1/crypto.go \
+      --replace-fail "/usr/share/uadp" "/var/lib/dde-daemon/uadp"
 
     for file in $(grep "/usr/lib/deepin-daemon" * -nR |awk -F: '{print $1}')
     do
diff --git a/pkgs/desktops/deepin/go-package/deepin-pw-check/default.nix b/pkgs/desktops/deepin/go-package/deepin-pw-check/default.nix
index d01c45c654d21..fd50f71ac2013 100644
--- a/pkgs/desktops/deepin/go-package/deepin-pw-check/default.nix
+++ b/pkgs/desktops/deepin/go-package/deepin-pw-check/default.nix
@@ -41,9 +41,9 @@ buildGoModule rec {
   ];
 
   postPatch = ''
-    sed -i 's|iniparser/||' */*.c
+    sed -i '1i#include <stdlib.h>\n#include <string.h>' tool/pwd_conf_update.c
     substituteInPlace misc/{pkgconfig/libdeepin_pw_check.pc,system-services/org.deepin.dde.PasswdConf1.service} \
-      --replace "/usr" "$out"
+      --replace-fail "/usr" "$out"
   '';
 
   buildPhase = ''
diff --git a/pkgs/desktops/deepin/library/disomaster/default.nix b/pkgs/desktops/deepin/library/disomaster/default.nix
index 3f65505e0af55..908f328db9ff1 100644
--- a/pkgs/desktops/deepin/library/disomaster/default.nix
+++ b/pkgs/desktops/deepin/library/disomaster/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   qmakeFlags = [ "VERSION=${version}" ];
 
   meta = with lib; {
-    description = "A libisoburn wrapper class for Qt";
+    description = "Libisoburn wrapper class for Qt";
     homepage = "https://github.com/linuxdeepin/disomaster";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/library/docparser/default.nix b/pkgs/desktops/deepin/library/docparser/default.nix
index 8605a0d214b74..41b9a8ee7ce39 100644
--- a/pkgs/desktops/deepin/library/docparser/default.nix
+++ b/pkgs/desktops/deepin/library/docparser/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   qmakeFlags = [ "VERSION=${version}" ];
 
   meta = with lib; {
-    description = "A document parser library ported from document2html";
+    description = "Document parser library ported from document2html";
     homepage = "https://github.com/linuxdeepin/docparser";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/library/dtk6core/default.nix b/pkgs/desktops/deepin/library/dtk6core/default.nix
index d86bebdea1d83..8acd1aa986868 100644
--- a/pkgs/desktops/deepin/library/dtk6core/default.nix
+++ b/pkgs/desktops/deepin/library/dtk6core/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , lib
 , fetchFromGitHub
+, fetchpatch
 , cmake
 , pkg-config
 , doxygen
@@ -27,6 +28,11 @@ stdenv.mkDerivation (finalAttrs: {
   patches = [
     ./fix-pkgconfig-path.patch
     ./fix-pri-path.patch
+    (fetchpatch {
+      name = "fix-build-on-qt-6_7_1.patch";
+      url = "https://github.com/linuxdeepin/dtkcore/commit/10bd3842bbde41fbc61c35b81d280075d053119b.patch";
+      hash = "sha256-xZ3BhiMB6S5NJtPUEjtChCB9Jr1BI0mu7AMjyNMqt9w=";
+    })
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/deepin/library/dtk6declarative/default.nix b/pkgs/desktops/deepin/library/dtk6declarative/default.nix
index ecafebf66b71d..c3ae917a66254 100644
--- a/pkgs/desktops/deepin/library/dtk6declarative/default.nix
+++ b/pkgs/desktops/deepin/library/dtk6declarative/default.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation (finalAttrs: {
   outputs = [ "out" "dev" "doc" ];
 
   meta = {
-    description = "A widget development toolkit based on QtQuick/QtQml";
+    description = "Widget development toolkit based on QtQuick/QtQml";
     mainProgram = "dtk-exhibition";
     homepage = "https://github.com/linuxdeepin/dtk6declarative";
     license = lib.licenses.lgpl3Plus;
diff --git a/pkgs/desktops/deepin/library/dtk6systemsettings/default.nix b/pkgs/desktops/deepin/library/dtk6systemsettings/default.nix
index d9f400ce979fb..f6b185582031b 100644
--- a/pkgs/desktops/deepin/library/dtk6systemsettings/default.nix
+++ b/pkgs/desktops/deepin/library/dtk6systemsettings/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , pkg-config
 , doxygen
diff --git a/pkgs/desktops/deepin/library/dtkcommon/default.nix b/pkgs/desktops/deepin/library/dtkcommon/default.nix
index 1a55d6855ec93..a2abd17c98274 100644
--- a/pkgs/desktops/deepin/library/dtkcommon/default.nix
+++ b/pkgs/desktops/deepin/library/dtkcommon/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   dontWrapQtApps = true;
 
   meta = with lib; {
-    description = "A public project for building DTK Library";
+    description = "Public project for building DTK Library";
     homepage = "https://github.com/linuxdeepin/dtkcommon";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/library/dtkdeclarative/default.nix b/pkgs/desktops/deepin/library/dtkdeclarative/default.nix
index 32e499ad242ac..00c884e6468b0 100644
--- a/pkgs/desktops/deepin/library/dtkdeclarative/default.nix
+++ b/pkgs/desktops/deepin/library/dtkdeclarative/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" "doc" ];
 
   meta = with lib; {
-    description = "A widget development toolkit based on QtQuick/QtQml";
+    description = "Widget development toolkit based on QtQuick/QtQml";
     mainProgram = "dtk-exhibition";
     homepage = "https://github.com/linuxdeepin/dtkdeclarative";
     license = licenses.lgpl3Plus;
diff --git a/pkgs/desktops/deepin/library/dtkwidget/default.nix b/pkgs/desktops/deepin/library/dtkwidget/default.nix
index 59c1ae7be8560..51130710af466 100644
--- a/pkgs/desktops/deepin/library/dtkwidget/default.nix
+++ b/pkgs/desktops/deepin/library/dtkwidget/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , pkg-config
 , qttools
diff --git a/pkgs/desktops/deepin/library/util-dfm/default.nix b/pkgs/desktops/deepin/library/util-dfm/default.nix
index e7576f7169f86..e726b0af73b6d 100644
--- a/pkgs/desktops/deepin/library/util-dfm/default.nix
+++ b/pkgs/desktops/deepin/library/util-dfm/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A Toolkits of libdfm-io,libdfm-mount and libdfm-burn";
+    description = "Toolkits of libdfm-io,libdfm-mount and libdfm-burn";
     homepage = "https://github.com/linuxdeepin/util-dfm";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/misc/deepin-turbo/default.nix b/pkgs/desktops/deepin/misc/deepin-turbo/default.nix
index 7eaca5768607a..2d3c5a020884f 100644
--- a/pkgs/desktops/deepin/misc/deepin-turbo/default.nix
+++ b/pkgs/desktops/deepin/misc/deepin-turbo/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A daemon that helps to launch dtk applications faster";
+    description = "Daemon that helps to launch dtk applications faster";
     homepage = "https://github.com/linuxdeepin/deepin-turbo";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/tools/dde-device-formatter/default.nix b/pkgs/desktops/deepin/tools/dde-device-formatter/default.nix
index f090c6feefa84..730d17404f3f6 100644
--- a/pkgs/desktops/deepin/tools/dde-device-formatter/default.nix
+++ b/pkgs/desktops/deepin/tools/dde-device-formatter/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A simple graphical interface for creating file system in a block device";
+    description = "Simple graphical interface for creating file system in a block device";
     mainProgram = "dde-device-formatter";
     homepage = "https://github.com/linuxdeepin/dde-device-formatter";
     license = licenses.gpl3Plus;
diff --git a/pkgs/desktops/enlightenment/econnman/default.nix b/pkgs/desktops/enlightenment/econnman/default.nix
index c71f28576055f..b7f3f926d7f69 100644
--- a/pkgs/desktops/enlightenment/econnman/default.nix
+++ b/pkgs/desktops/enlightenment/econnman/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = directoryListingUpdater { };
 
   meta = with lib; {
-    description = "A user interface for the connman network connection manager";
+    description = "User interface for the connman network connection manager";
     mainProgram = "econnman-bin";
     homepage = "https://enlightenment.org/";
     license = licenses.lgpl3;
diff --git a/pkgs/desktops/enlightenment/enlightenment/default.nix b/pkgs/desktops/enlightenment/enlightenment/default.nix
index 9b5abbd8a564c..25faa26687ae4 100644
--- a/pkgs/desktops/enlightenment/enlightenment/default.nix
+++ b/pkgs/desktops/enlightenment/enlightenment/default.nix
@@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = directoryListingUpdater { };
 
   meta = with lib; {
-    description = "The Compositing Window Manager and Desktop Shell";
+    description = "Compositing Window Manager and Desktop Shell";
     homepage = "https://www.enlightenment.org";
     license = licenses.bsd2;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome-2/platform/ORBit2/default.nix b/pkgs/desktops/gnome-2/platform/ORBit2/default.nix
index 28bc04697b878..67208b6d2cdef 100644
--- a/pkgs/desktops/gnome-2/platform/ORBit2/default.nix
+++ b/pkgs/desktops/gnome-2/platform/ORBit2/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage    = "https://developer-old.gnome.org/ORBit2/";
-    description = "A CORBA 2.4-compliant Object Request Broker";
+    description = "CORBA 2.4-compliant Object Request Broker";
     platforms   = platforms.unix;
     maintainers = with maintainers; [ lovek323 ];
 
diff --git a/pkgs/desktops/gnome/apps/file-roller/default.nix b/pkgs/desktops/gnome/apps/file-roller/default.nix
index 27c189af64cb6..d1af3b91db88c 100644
--- a/pkgs/desktops/gnome/apps/file-roller/default.nix
+++ b/pkgs/desktops/gnome/apps/file-roller/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
 , desktop-file-utils
 , gettext
 , glibcLocales
@@ -26,11 +25,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "file-roller";
-  version = "44.2";
+  version = "44.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/file-roller/${lib.versions.major finalAttrs.version}/file-roller-${finalAttrs.version}.tar.xz";
-    hash = "sha256-LFcXzn8F+6sTyEe2zjGxsCSIYfp6uPD/Hx4dRdHizfk=";
+    hash = "sha256-BMinRiX+yEJn/exAMGr7QQS9My2FBh4NNtSrBTOt+ko=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/apps/gnome-connections/default.nix b/pkgs/desktops/gnome/apps/gnome-connections/default.nix
index bd501c1be9b96..2b7993a01583c 100644
--- a/pkgs/desktops/gnome/apps/gnome-connections/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-connections/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/connections";
-    description = "A remote desktop client for the GNOME desktop environment";
+    description = "Remote desktop client for the GNOME desktop environment";
     mainProgram = "gnome-connections";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
diff --git a/pkgs/desktops/gnome/apps/gnome-logs/default.nix b/pkgs/desktops/gnome/apps/gnome-logs/default.nix
index 77a9ba3332603..05c6c6a149400 100644
--- a/pkgs/desktops/gnome/apps/gnome-logs/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-logs/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://apps.gnome.org/Logs/";
-    description = "A log viewer for the systemd journal";
+    description = "Log viewer for the systemd journal";
     mainProgram = "gnome-logs";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
diff --git a/pkgs/desktops/gnome/apps/gnome-maps/default.nix b/pkgs/desktops/gnome/apps/gnome-maps/default.nix
index 99815109624c8..7bc6880496c45 100644
--- a/pkgs/desktops/gnome/apps/gnome-maps/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-maps/default.nix
@@ -29,11 +29,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-maps";
-  version = "46.10";
+  version = "46.11";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-maps/${lib.versions.major finalAttrs.version}/gnome-maps-${finalAttrs.version}.tar.xz";
-    hash = "sha256-XyXul6DC/t+E8M8DkrTvi+GT4/bOJfl1RntvzsBUIa8=";
+    hash = "sha256-lAtBuXQLCBMyXjkWdYcWz4+g7k4MkZHyYM7AbZITWDU=";
   };
 
   doCheck = !stdenv.isDarwin;
@@ -105,7 +105,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://apps.gnome.org/Maps/";
-    description = "A map application for GNOME 3";
+    description = "Map application for GNOME 3";
     mainProgram = "gnome-maps";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
diff --git a/pkgs/desktops/gnome/apps/gnome-nettool/default.nix b/pkgs/desktops/gnome/apps/gnome-nettool/default.nix
index bf377b288aa04..0ee7286e23149 100644
--- a/pkgs/desktops/gnome/apps/gnome-nettool/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-nettool/default.nix
@@ -78,7 +78,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/gnome-nettool";
-    description = "A collection of networking tools";
+    description = "Collection of networking tools";
     mainProgram = "gnome-nettool";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
diff --git a/pkgs/desktops/gnome/apps/gnome-sound-recorder/default.nix b/pkgs/desktops/gnome/apps/gnome-sound-recorder/default.nix
index d112de9784b0a..994dcf78854a9 100644
--- a/pkgs/desktops/gnome/apps/gnome-sound-recorder/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-sound-recorder/default.nix
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A simple and modern sound recorder";
+    description = "Simple and modern sound recorder";
     mainProgram = "gnome-sound-recorder";
     homepage = "https://gitlab.gnome.org/World/vocalis";
     license = licenses.gpl2Plus;
diff --git a/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix b/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix
index deb3e011c1cda..0ea81c6d103fd 100644
--- a/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/gnome-text-editor";
-    description = "A Text Editor for GNOME";
+    description = "Text Editor for GNOME";
     mainProgram = "gnome-text-editor";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
diff --git a/pkgs/desktops/gnome/core/caribou/default.nix b/pkgs/desktops/gnome/core/caribou/default.nix
index 5f853efdab83b..b0a74450e81c7 100644
--- a/pkgs/desktops/gnome/core/caribou/default.nix
+++ b/pkgs/desktops/gnome/core/caribou/default.nix
@@ -60,7 +60,7 @@ in stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "An input assistive technology intended for switch and pointer users";
+    description = "Input assistive technology intended for switch and pointer users";
     mainProgram = "caribou-preferences";
     homepage = "https://gitlab.gnome.org/Archive/caribou";
     license = licenses.lgpl21;
diff --git a/pkgs/desktops/gnome/core/epiphany/default.nix b/pkgs/desktops/gnome/core/epiphany/default.nix
index ab1c4d6b10516..c4edd298aff75 100644
--- a/pkgs/desktops/gnome/core/epiphany/default.nix
+++ b/pkgs/desktops/gnome/core/epiphany/default.nix
@@ -34,13 +34,13 @@
 , pantheon
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "epiphany";
-  version = "46.0";
+  version = "46.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-9DSPLPUcB8DBBtEwFy1NI/LNQGh3Hh3gB7dYyireVmA=";
+    url = "mirror://gnome/sources/epiphany/${lib.versions.major finalAttrs.version}/epiphany-${finalAttrs.version}.tar.xz";
+    hash = "sha256-Jg+BRp7WR0bCsRQ/Lzi+3NloR3hlZ7CX2fcv072dsUI=";
   };
 
   nativeBuildInputs = [
@@ -94,7 +94,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = "epiphany";
     };
   };
 
@@ -106,4 +106,4 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/desktops/gnome/core/evince/default.nix b/pkgs/desktops/gnome/core/evince/default.nix
index daf912e2a7c1f..a9192f33d000a 100644
--- a/pkgs/desktops/gnome/core/evince/default.nix
+++ b/pkgs/desktops/gnome/core/evince/default.nix
@@ -40,15 +40,15 @@
 , withLibsecret ? true
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "evince";
-  version = "46.1";
+  version = "46.3";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/evince/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-lLtSU2WwYKKML2AX0iy/KvURVQclSqQum/wAC7wYq2I=";
+    url = "mirror://gnome/sources/evince/${lib.versions.major finalAttrs.version}/evince-${finalAttrs.version}.tar.xz";
+    hash = "sha256-vA0dQbnX/8di6Z0qv6+sv3RRgvCzHYbbXuyMZ/XzAGs=";
   };
 
   depsBuildBuild = [
@@ -121,7 +121,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = "evince";
     };
   };
 
@@ -141,4 +141,4 @@ stdenv.mkDerivation rec {
     mainProgram = "evince";
     maintainers = teams.gnome.members ++ teams.pantheon.members;
   };
-}
+})
diff --git a/pkgs/desktops/gnome/core/evolution-data-server/default.nix b/pkgs/desktops/gnome/core/evolution-data-server/default.nix
index b5326c4e7f814..d774ea2f26853 100644
--- a/pkgs/desktops/gnome/core/evolution-data-server/default.nix
+++ b/pkgs/desktops/gnome/core/evolution-data-server/default.nix
@@ -50,13 +50,13 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution-data-server";
-  version = "3.52.1";
+  version = "3.52.2";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution-data-server/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-gls9fVRoRApn0R3SojkzlgwHue7MeXuxJYQ8sshwo0g=";
+    hash = "sha256-oAakTtyzjSb/scYuHV0KMdHy5ZB1Vl4mx5ou4BxFp+U=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch b/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch
index de8186d01c5e4..140e124fe4bbb 100644
--- a/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch
+++ b/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch
@@ -242,7 +242,7 @@ index 44ba49c..dfac2a2 100644
  		g_signal_connect_object (
  			watcher->priv->desktop_settings,
 diff --git a/src/calendar/libedata-cal/e-cal-meta-backend.c b/src/calendar/libedata-cal/e-cal-meta-backend.c
-index b9145af..350fcd3 100644
+index e0e9169..a44f52c 100644
 --- a/src/calendar/libedata-cal/e-cal-meta-backend.c
 +++ b/src/calendar/libedata-cal/e-cal-meta-backend.c
 @@ -156,7 +156,18 @@ ecmb_is_power_saver_enabled (void)
@@ -265,7 +265,7 @@ index b9145af..350fcd3 100644
  
  	if (g_settings_get_boolean (settings, "limit-operations-in-power-saver-mode")) {
  		GPowerProfileMonitor *power_monitor;
-@@ -2632,7 +2643,20 @@ ecmb_receive_object_sync (ECalMetaBackend *meta_backend,
+@@ -2627,7 +2638,20 @@ ecmb_receive_object_sync (ECalMetaBackend *meta_backend,
  			if (is_declined) {
  				GSettings *settings;
  
@@ -312,7 +312,7 @@ index d5a0823..2ae03f8 100644
  	g_clear_object (&settings);
  
 diff --git a/src/camel/camel-gpg-context.c b/src/camel/camel-gpg-context.c
-index cecd740..9a15180 100644
+index cceba4a..d3c4da6 100644
 --- a/src/camel/camel-gpg-context.c
 +++ b/src/camel/camel-gpg-context.c
 @@ -747,7 +747,18 @@ gpg_ctx_get_executable_name (void)
@@ -361,10 +361,10 @@ index e61160c..b6553a4 100644
  		G_CALLBACK (mi_user_headers_settings_changed_cb), NULL);
  	G_UNLOCK (mi_user_headers);
 diff --git a/src/camel/providers/imapx/camel-imapx-server.c b/src/camel/providers/imapx/camel-imapx-server.c
-index bbf214b..bed39d2 100644
+index 56429a9..a9cc62c 100644
 --- a/src/camel/providers/imapx/camel-imapx-server.c
 +++ b/src/camel/providers/imapx/camel-imapx-server.c
-@@ -5661,7 +5661,18 @@ camel_imapx_server_do_old_flags_update (CamelFolder *folder)
+@@ -5682,7 +5682,18 @@ camel_imapx_server_do_old_flags_update (CamelFolder *folder)
  	if (do_old_flags_update) {
  		GSettings *eds_settings;
  
@@ -457,10 +457,10 @@ index 1453410..a3f06b0 100644
  		g_object_unref (settings);
  
 diff --git a/src/libedataserver/e-oauth2-service-outlook.c b/src/libedataserver/e-oauth2-service-outlook.c
-index 7633e93..2328048 100644
+index 734f194..5b05077 100644
 --- a/src/libedataserver/e-oauth2-service-outlook.c
 +++ b/src/libedataserver/e-oauth2-service-outlook.c
-@@ -71,7 +71,18 @@ eos_outlook_read_settings (EOAuth2Service *service,
+@@ -75,7 +75,18 @@ eos_outlook_read_settings (EOAuth2Service *service,
  	if (!value) {
  		GSettings *settings;
  
@@ -481,7 +481,7 @@ index 7633e93..2328048 100644
  		g_object_unref (settings);
  
 diff --git a/src/libedataserver/e-oauth2-service-yahoo.c b/src/libedataserver/e-oauth2-service-yahoo.c
-index 3bb1071..199e822 100644
+index c8bbd3a..e71e36a 100644
 --- a/src/libedataserver/e-oauth2-service-yahoo.c
 +++ b/src/libedataserver/e-oauth2-service-yahoo.c
 @@ -67,7 +67,18 @@ eos_yahoo_read_settings (EOAuth2Service *service,
diff --git a/pkgs/desktops/gnome/core/gdm/default.nix b/pkgs/desktops/gnome/core/gdm/default.nix
index bbbe4fbb25b31..d7f5e94519c2d 100644
--- a/pkgs/desktops/gnome/core/gdm/default.nix
+++ b/pkgs/desktops/gnome/core/gdm/default.nix
@@ -43,13 +43,13 @@ in
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gdm";
-  version = "46.0";
+  version = "46.2";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gdm/${lib.versions.major finalAttrs.version}/${finalAttrs.pname}-${finalAttrs.version}.tar.xz";
-    hash = "sha256-jWy1IXbspItrvxz+L9rgjZZ3taDyvKYA3uRgTeDdHvw=";
+    hash = "sha256-TuNFQioWU3FQzYQkUM2lKyyoaYS8Ue4gzcAl3PS9Jos=";
   };
 
   mesonFlags = [
@@ -188,7 +188,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A program that manages graphical display servers and handles graphical user logins";
+    description = "Program that manages graphical display servers and handles graphical user logins";
     homepage = "https://gitlab.gnome.org/GNOME/gdm";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/desktops/gnome/core/gnome-color-manager/default.nix b/pkgs/desktops/gnome/core/gnome-color-manager/default.nix
index 786e19277e8de..81681925b4cdf 100644
--- a/pkgs/desktops/gnome/core/gnome-color-manager/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-color-manager/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
     ninja
     pkg-config
     gettext
+    glib
     itstool
     desktop-file-utils
   ];
@@ -54,6 +55,8 @@ stdenv.mkDerivation rec {
     exiv2
   ];
 
+  strictDeps = true;
+
   passthru = {
     updateScript = gnome.updateScript {
       packageName = pname;
@@ -63,7 +66,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A set of graphical utilities for color management to be used in the GNOME desktop";
+    description = "Set of graphical utilities for color management to be used in the GNOME desktop";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/core/gnome-control-center/default.nix b/pkgs/desktops/gnome/core/gnome-control-center/default.nix
index b3b5d2594d219..6602a3795834c 100644
--- a/pkgs/desktops/gnome/core/gnome-control-center/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-control-center/default.nix
@@ -28,6 +28,7 @@
 , gst_all_1
 , gtk4
 , ibus
+, json-glib
 , libgtop
 , libgudev
 , libadwaita
@@ -72,11 +73,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-control-center";
-  version = "46.1";
+  version = "46.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-control-center/${lib.versions.major finalAttrs.version}/gnome-control-center-${finalAttrs.version}.tar.xz";
-    hash = "sha256-gXkkIwGd7aHSoHTB7Pan5u8xcsCcvm9NeZWktd6igxI=";
+    hash = "sha256-YzXGy4Fk5XTbUh//Yc+j36pV8dtmrjvKAnUKGT4cTz0=";
   };
 
   patches = [
@@ -122,6 +123,7 @@ stdenv.mkDerivation (finalAttrs: {
     gsound
     gtk4
     ibus
+    json-glib
     libepoxy
     libgtop
     libgudev
diff --git a/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix b/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
index dcd376fda1856..536e71f630ee9 100644
--- a/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
@@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://apps.gnome.org/DiskUtility/";
-    description = "A udisks graphical front-end";
+    description = "Udisks graphical front-end";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix b/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
index 055c811263dbe..19280b1bff927 100644
--- a/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
@@ -34,13 +34,13 @@
 , gsettings-desktop-schemas
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-initial-setup";
-  version = "46.0";
+  version = "46.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-+O6dzqfjXnNeqjvI0QQdBrtk6/HhBG5ejkjx+0QVGEc=";
+    url = "mirror://gnome/sources/gnome-initial-setup/${lib.versions.major finalAttrs.version}/gnome-initial-setup-${finalAttrs.version}.tar.xz";
+    hash = "sha256-bHktiSrbYLDeC33oglwUlD0c0nmvT5x2So9UEbYKjyc=";
   };
 
   patches = [
@@ -94,8 +94,8 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
-      attrPath = "gnome.${pname}";
+      packageName = "gnome-initial-setup";
+      attrPath = "gnome.gnome-initial-setup";
     };
   };
 
@@ -106,4 +106,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = teams.gnome.members;
   };
-}
+})
diff --git a/pkgs/desktops/gnome/core/gnome-keyring/default.nix b/pkgs/desktops/gnome/core/gnome-keyring/default.nix
index 472d9a413513c..d8a455b0b9faa 100644
--- a/pkgs/desktops/gnome/core/gnome-keyring/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-keyring/default.nix
@@ -10,7 +10,6 @@
 , libxslt
 , gettext
 , gcr
-, autoreconfHook
 , libcap_ng
 , libselinux
 , p11-kit
@@ -37,8 +36,6 @@ stdenv.mkDerivation rec {
     pkg-config
     gettext
     libxslt
-    # Upstream uses ancient autotools to pre-generate the scripts.
-    autoreconfHook
     docbook-xsl-nons
     docbook_xml_dtd_43
     wrapGAppsHook3
@@ -63,6 +60,10 @@ stdenv.mkDerivation rec {
     # gnome-keyring doesn't build with ssh-agent by default anymore, we need to
     # switch to using gcr https://github.com/NixOS/nixpkgs/issues/140824
     "--enable-ssh-agent"
+    # cross compilation requires these paths to be explicitly declared:
+    "LIBGCRYPT_CONFIG=${lib.getExe' (lib.getDev libgcrypt) "libgcrypt-config"}"
+    "SSH_ADD=${lib.getExe' openssh "ssh-add"}"
+    "SSH_AGENT=${lib.getExe' openssh "ssh-agent"}"
   ];
 
   # Tends to fail non-deterministically.
diff --git a/pkgs/desktops/gnome/core/gnome-online-miners/default.nix b/pkgs/desktops/gnome/core/gnome-online-miners/default.nix
index 8cc2689f29448..29f602898db3c 100644
--- a/pkgs/desktops/gnome/core/gnome-online-miners/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-online-miners/default.nix
@@ -108,7 +108,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/Archive/gnome-online-miners";
-    description = "A set of crawlers that go through your online content and index them locally in Tracker";
+    description = "Set of crawlers that go through your online content and index them locally in Tracker";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix b/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
index abd6d2102679a..e7a70f2369e41 100644
--- a/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
@@ -30,11 +30,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-remote-desktop";
-  version = "46.1";
+  version = "46.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-fGKkKB/fqVIhEK/7910JlzA18q3H+kV3UR1zMYa+to8=";
+    hash = "sha256-l0Q+r/5LGmliaIakHSXL6ywUjT/tQ9khFcG30g1SOKs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix b/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
index 2fd711266938b..cb5feb26e4080 100644
--- a/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
@@ -1,23 +1,25 @@
-{ lib
-, stdenv
-, fetchurl
-, meson
-, ninja
-, gettext
-, pkg-config
-, glib
-, gnome
-, gnome-menus
-, substituteAll
+{
+  lib,
+  stdenv,
+  fetchurl,
+  meson,
+  ninja,
+  gettext,
+  pkg-config,
+  libgtop,
+  glib,
+  gnome,
+  gnome-menus,
+  substituteAll,
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-shell-extensions";
-  version = "46.1";
+  version = "46.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-shell-extensions/${lib.versions.major finalAttrs.version}/gnome-shell-extensions-${finalAttrs.version}.tar.xz";
-    hash = "sha256-xbpQcA2nephvAGC+7az8AX5+yCKD8qY4SEKggHvEVT8=";
+    hash = "sha256-1ELp0mklEl/yFaXBNCkElWVTgHQdqvuzejqZ1vDH2G8=";
   };
 
   patches = [
@@ -25,6 +27,10 @@ stdenv.mkDerivation (finalAttrs: {
       src = ./fix_gmenu.patch;
       gmenu_path = "${gnome-menus}/lib/girepository-1.0";
     })
+    (substituteAll {
+      src = ./fix_gtop.patch;
+      gtop_path = "${libgtop}/lib/girepository-1.0";
+    })
   ];
 
   nativeBuildInputs = [
@@ -35,9 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
     glib
   ];
 
-  mesonFlags = [
-    "-Dextension_set=all"
-  ];
+  mesonFlags = [ "-Dextension_set=all" ];
 
   preFixup = ''
     # Since we do not install the schemas to central location,
diff --git a/pkgs/desktops/gnome/core/gnome-shell-extensions/fix_gtop.patch b/pkgs/desktops/gnome/core/gnome-shell-extensions/fix_gtop.patch
new file mode 100644
index 0000000000000..61c90f184d1ec
--- /dev/null
+++ b/pkgs/desktops/gnome/core/gnome-shell-extensions/fix_gtop.patch
@@ -0,0 +1,25 @@
+diff --git a/extensions/system-monitor/extension.js b/extensions/system-monitor/extension.js
+index 37d2eb1..232d0d5 100644
+--- a/extensions/system-monitor/extension.js
++++ b/extensions/system-monitor/extension.js
+@@ -6,9 +6,9 @@
+ 
+ import Clutter from 'gi://Clutter';
+ import Gio from 'gi://Gio';
++import GIRepository from "gi://GIRepository";
+ import GLib from 'gi://GLib';
+ import GObject from 'gi://GObject';
+-import GTop from 'gi://GTop';
+ import Pango from 'gi://Pango';
+ import Shell from 'gi://Shell';
+ import St from 'gi://St';
+@@ -19,6 +19,9 @@ import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
+ 
+ import * as Main from 'resource:///org/gnome/shell/ui/main.js';
+ 
++GIRepository.Repository.prepend_search_path('@gtop_path@');
++const GTop = (await import("gi://GTop")).default;
++
+ const THRESHOLD_HIGH = 0.80;
+ 
+ // adapted from load-graph.cpp in gnome-system-monitor
diff --git a/pkgs/desktops/gnome/core/gnome-shell/default.nix b/pkgs/desktops/gnome/core/gnome-shell/default.nix
index 7b94533f7b602..3f91cddc20525 100644
--- a/pkgs/desktops/gnome/core/gnome-shell/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-shell/default.nix
@@ -66,13 +66,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-shell";
-  version = "46.1";
+  version = "46.2";
 
   outputs = [ "out" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-shell/${lib.versions.major finalAttrs.version}/gnome-shell-${finalAttrs.version}.tar.xz";
-    hash = "sha256-ZPmZhEwQHmO/KU1FsTjeVjGa0vMmKCchqtD6hgZTs2k=";
+    hash = "sha256-a1hxAcBL+zZKsJzTi12T6+60JUdUyAfPcS+8juP94jg=";
   };
 
   patches = [
@@ -102,13 +102,6 @@ stdenv.mkDerivation (finalAttrs: {
       url = "https://src.fedoraproject.org/rpms/gnome-shell/raw/dcd112d9708954187e7490564c2229d82ba5326f/f/0001-gdm-Work-around-failing-fingerprint-auth.patch";
       hash = "sha256-mgXty5HhiwUO1UV3/eDgWtauQKM0cRFQ0U7uocST25s=";
     })
-
-    # screencast: Correct expected bus name for streams
-    # https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3303
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-shell/-/commit/50a011a19dcc6997ea6173c07bb80b2d9888d363.patch";
-      hash = "sha256-ccEpdWgDxwnj7ouzFekpoln5Y2PtgRikWetwK+0U9Fg=";
-    })
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/gnome-software/default.nix b/pkgs/desktops/gnome/core/gnome-software/default.nix
index 43adcd092ffb1..bca1ea13b5e3e 100644
--- a/pkgs/desktops/gnome/core/gnome-software/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-software/default.nix
@@ -43,13 +43,13 @@ let
   withFwupd = stdenv.hostPlatform.isx86;
 in
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-software";
-  version = "46.1";
+  version = "46.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-software/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-tu63iRAN6UtQ6+Lnfxaya+TC2xVImQXxmNBgxCXhkHY=";
+    url = "mirror://gnome/sources/gnome-software/${lib.versions.major finalAttrs.version}/gnome-software-${finalAttrs.version}.tar.xz";
+    hash = "sha256-5wDLood2T14iVVFOMS4WBVD9v3pdP+FjWLtve2cyuXQ=";
   };
 
   patches = [
@@ -110,7 +110,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = "gnome-software";
       attrPath = "gnome.gnome-software";
     };
   };
@@ -123,4 +123,4 @@ stdenv.mkDerivation rec {
     maintainers = teams.gnome.members;
     platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/desktops/gnome/core/gnome-terminal/default.nix b/pkgs/desktops/gnome/core/gnome-terminal/default.nix
index 7b3306df57193..7cfde6e911ae2 100644
--- a/pkgs/desktops/gnome/core/gnome-terminal/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-terminal/default.nix
@@ -27,16 +27,16 @@
 , nixosTests
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-terminal";
-  version = "3.52.1";
+  version = "3.52.2";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
     repo = "gnome-terminal";
-    rev = version;
-    hash = "sha256-npoQfe5+HTn7CsrW6MuOoiYBc3rYMAMv4apC6dFR8O4=";
+    rev = finalAttrs.version;
+    hash = "sha256-c6xMUyhQnJiIrFnnUEx6vGVvFghGvLjTxiAFq+nSj2A=";
   };
 
   nativeBuildInputs = [
@@ -87,11 +87,11 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "The GNOME Terminal Emulator";
+    description = "GNOME Terminal Emulator";
     mainProgram = "gnome-terminal";
     homepage = "https://gitlab.gnome.org/GNOME/gnome-terminal";
     platforms = platforms.linux;
     license = licenses.gpl3Plus;
     maintainers = teams.gnome.members;
   };
-}
+})
diff --git a/pkgs/desktops/gnome/core/gucharmap/default.nix b/pkgs/desktops/gnome/core/gucharmap/default.nix
index 2d0dd7553965f..17f8465f380bf 100644
--- a/pkgs/desktops/gnome/core/gucharmap/default.nix
+++ b/pkgs/desktops/gnome/core/gucharmap/default.nix
@@ -43,9 +43,9 @@ let
       unicode-character-database
     ];
   };
-in stdenv.mkDerivation rec {
+in stdenv.mkDerivation (finalAttrs: {
   pname = "gucharmap";
-  version = "15.1.2";
+  version = "15.1.5";
 
   outputs = [ "out" "lib" "dev" "devdoc" ];
 
@@ -53,8 +53,8 @@ in stdenv.mkDerivation rec {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
     repo = "gucharmap";
-    rev = version;
-    sha256 = "sha256-tvFw2k5xCl+QE6cHvLj5KKdYFSghN7PVgHPmd27wh7k=";
+    rev = finalAttrs.version;
+    sha256 = "sha256-PG86D8QvqHdmo3aJseCerngmuWUqtSMdWzbixWE2HOQ=";
   };
 
   strictDeps = true;
@@ -107,8 +107,8 @@ in stdenv.mkDerivation rec {
     description = "GNOME Character Map, based on the Unicode Character Database";
     mainProgram = "gucharmap";
     homepage = "https://gitlab.gnome.org/GNOME/gucharmap";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = teams.gnome.members;
     platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/desktops/gnome/core/mutter/43/default.nix b/pkgs/desktops/gnome/core/mutter/43/default.nix
index 9d40303fad2eb..1bff840c6d73f 100644
--- a/pkgs/desktops/gnome/core/mutter/43/default.nix
+++ b/pkgs/desktops/gnome/core/mutter/43/default.nix
@@ -184,7 +184,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A window manager for GNOME";
+    description = "Window manager for GNOME";
     mainProgram = "mutter";
     homepage = "https://gitlab.gnome.org/GNOME/mutter";
     license = licenses.gpl2Plus;
diff --git a/pkgs/desktops/gnome/core/mutter/default.nix b/pkgs/desktops/gnome/core/mutter/default.nix
index 0efd14124a371..a53eb5b7cfe3a 100644
--- a/pkgs/desktops/gnome/core/mutter/default.nix
+++ b/pkgs/desktops/gnome/core/mutter/default.nix
@@ -10,7 +10,6 @@
 , colord
 , lcms2
 , pango
-, json-glib
 , libstartup_notification
 , libcanberra
 , ninja
@@ -59,7 +58,6 @@
 , sysprof
 , libsysprof-capture
 , desktop-file-utils
-, libcap_ng
 , egl-wayland
 , graphene
 , wayland
@@ -68,13 +66,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "mutter";
-  version = "46.1";
+  version = "46.2";
 
   outputs = [ "out" "dev" "man" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/mutter/${lib.versions.major finalAttrs.version}/mutter-${finalAttrs.version}.tar.xz";
-    hash = "sha256-Y7JmDdD6GT+mYsgO4S64sW8rjDvDiWNmIAx5lDgk1R0=";
+    hash = "sha256-AJuqd/g2JhLKouGMM4obPIqtO1/ilkwv73gk0yEiiYM=";
   };
 
   mesonFlags = [
@@ -91,9 +89,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   propagatedBuildInputs = [
-    # required for pkg-config to detect mutter-clutter
-    json-glib
-    libcap_ng
+    # required for pkg-config to detect mutter-mtk
     graphene
   ];
 
@@ -202,7 +198,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A window manager for GNOME";
+    description = "Window manager for GNOME";
     mainProgram = "mutter";
     homepage = "https://gitlab.gnome.org/GNOME/mutter";
     license = licenses.gpl2Plus;
diff --git a/pkgs/desktops/gnome/core/nautilus/default.nix b/pkgs/desktops/gnome/core/nautilus/default.nix
index 063914060dfee..f8d650b4648a2 100644
--- a/pkgs/desktops/gnome/core/nautilus/default.nix
+++ b/pkgs/desktops/gnome/core/nautilus/default.nix
@@ -38,13 +38,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "nautilus";
-  version = "46.1";
+  version = "46.2";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/nautilus/${lib.versions.major finalAttrs.version}/nautilus-${finalAttrs.version}.tar.xz";
-    hash = "sha256-zBpf3x3XL5Lp4/PHrSY3CaDeU5Golb6TRPamf0OIe9c=";
+    hash = "sha256-bujJkBm540R/aRjWgjKiDeyonlUlwFgFQyt9iEDKcfo=";
   };
 
   patches = [
@@ -125,7 +125,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "The file manager for GNOME";
+    description = "File manager for GNOME";
     homepage = "https://apps.gnome.org/Nautilus/";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/core/rygel/default.nix b/pkgs/desktops/gnome/core/rygel/default.nix
index 9cc4e1ee8d71a..7c93bc8668e4d 100644
--- a/pkgs/desktops/gnome/core/rygel/default.nix
+++ b/pkgs/desktops/gnome/core/rygel/default.nix
@@ -26,16 +26,16 @@
 , gnome
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "rygel";
-  version = "0.42.5";
+  version = "0.42.6";
 
   # TODO: split out lib
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "ETNgLS5nEKreayKqmNkzhMjVY5bzRHY0E+luARC32J8=";
+    url = "mirror://gnome/sources/rygel/${lib.versions.majorMinor finalAttrs.version}/rygel-${finalAttrs.version}.tar.xz";
+    sha256 = "R9JXBLYQiDdeJqq6Vr5HwXGJRy5vgMdSq+hvAu9OMwQ=";
   };
 
   patches = [
@@ -92,17 +92,17 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
-      attrPath = "gnome.${pname}";
+      packageName = "rygel";
+      attrPath = "gnome.rygel";
       versionPolicy = "odd-unstable";
     };
   };
 
   meta = with lib; {
-    description = "A home media solution (UPnP AV MediaServer) that allows you to easily share audio, video and pictures to other devices";
+    description = "Home media solution (UPnP AV MediaServer) that allows you to easily share audio, video and pictures to other devices";
     homepage = "https://gitlab.gnome.org/GNOME/rygel";
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members;
     platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/desktops/gnome/core/sushi/default.nix b/pkgs/desktops/gnome/core/sushi/default.nix
index c6165869a34e0..18f6b382737df 100644
--- a/pkgs/desktops/gnome/core/sushi/default.nix
+++ b/pkgs/desktops/gnome/core/sushi/default.nix
@@ -77,7 +77,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://en.wikipedia.org/wiki/Sushi_(software)";
-    description = "A quick previewer for Nautilus";
+    description = "Quick previewer for Nautilus";
     mainProgram = "sushi";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
diff --git a/pkgs/desktops/gnome/core/yelp/default.nix b/pkgs/desktops/gnome/core/yelp/default.nix
index 217c6afab05f3..c5bb44b46f015 100644
--- a/pkgs/desktops/gnome/core/yelp/default.nix
+++ b/pkgs/desktops/gnome/core/yelp/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://apps.gnome.org/Yelp/";
-    description = "The help viewer in Gnome";
+    description = "Help viewer in Gnome";
     maintainers = teams.gnome.members;
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix b/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix
index e6bcc1b411d5c..ea371ae6efd8f 100644
--- a/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix
+++ b/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-shell-extension-EasyScreenCast";
-  version = "1.7.1";
+  version = "1.9.0";
 
   src = fetchFromGitHub {
     owner = "EasyScreenCast";
     repo = "EasyScreenCast";
     rev = finalAttrs.version;
-    hash = "sha256-G7wdRFA0qL+6inVRLAmKoP0E0IOyvlmQIUwbDv/DbLI=";
+    hash = "sha256-rRRMFAdWseTxW6W194TE3yNlnpPX7gLViLPLQW6zuSI=";
   };
 
   patches = [
@@ -32,6 +32,5 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ doronbehar ];
     platforms = platforms.linux;
-    broken = true;
   };
 })
diff --git a/pkgs/desktops/gnome/extensions/EasyScreenCast/fix-gi-path.patch b/pkgs/desktops/gnome/extensions/EasyScreenCast/fix-gi-path.patch
index 4ea048ba79bf2..b47d2b52a7d78 100644
--- a/pkgs/desktops/gnome/extensions/EasyScreenCast/fix-gi-path.patch
+++ b/pkgs/desktops/gnome/extensions/EasyScreenCast/fix-gi-path.patch
@@ -1,19 +1,32 @@
-diff --git a/prefs.js b/prefs.js
-index 97b85a3..2fc6539 100644
---- a/prefs.js
-+++ b/prefs.js
-@@ -14,8 +14,8 @@
+diff --git i/extension.js w/extension.js
+index c151057..1b6dfc3 100644
+--- i/extension.js
++++ w/extension.js
+@@ -717,7 +717,7 @@ const EasyScreenCastIndicator = GObject.registerClass({
+             Lib.TalkativeLog('-*-execute post command');
+ 
+             // launch cmd after registration
+-            const tmpCmd = `/usr/bin/sh -c "${this._settings.getOption('s', Settings.POST_CMD_SETTING_KEY)}"`;
++            const tmpCmd = `/bin/sh -c "${this._settings.getOption('s', Settings.POST_CMD_SETTING_KEY)}"`;
+ 
+             const mapObj = {
+                 _fpath: pathFile,
+diff --git i/prefs.js w/prefs.js
+index e0dd1a2..9dcb87a 100644
+--- i/prefs.js
++++ w/prefs.js
+@@ -13,8 +13,8 @@
  'use strict';
  
- const GIRepository = imports.gi.GIRepository;
+ import GIRepository from 'gi://GIRepository';
 -GIRepository.Repository.prepend_search_path('/usr/lib64/gnome-shell');
 -GIRepository.Repository.prepend_library_path('/usr/lib64/gnome-shell');
 +GIRepository.Repository.prepend_search_path('@gnomeShell@/lib/gnome-shell');
 +GIRepository.Repository.prepend_library_path('@gnomeShell@/lib/gnome-shell');
  
- const GObject = imports.gi.GObject;
- const Gio = imports.gi.Gio;
-@@ -746,7 +746,7 @@ const EasyScreenCastSettingsWidget = GObject.registerClass({
+ import Adw from 'gi://Adw';
+ import GObject from 'gi://GObject';
+@@ -713,7 +713,7 @@ const EasyScreenCastSettingsWidget = GObject.registerClass({
                  Lib.TalkativeLog('-^-NOT SET xdg-user video');
  
                  ctx.CtrlExe.Execute(
@@ -22,19 +35,29 @@ index 97b85a3..2fc6539 100644
                      true,
                      (success, out) => {
                          Lib.TalkativeLog(`-^-CALLBACK sync S: ${success} out: ${out}`);
-diff --git a/utilaudio.js b/utilaudio.js
-index 957eda2..84af241 100644
---- a/utilaudio.js
-+++ b/utilaudio.js
-@@ -15,10 +15,7 @@
- 
- const GObject = imports.gi.GObject;
- const GIRepository = imports.gi.GIRepository;
+@@ -883,7 +883,7 @@ const EasyScreenCastSettingsWidget = GObject.registerClass({
+                 );
+ 
+                 ctx.CtrlExe.Execute(
+-                    'journalctl /usr/bin/gnome-shell --since "15 min ago" --output=cat --no-pager',
++                    'journalctl @gnomeShell@/bin/.gnome-shell-wrapped --since "15 min ago" --output=cat --no-pager',
+                     false,
+                     success => {
+                         Lib.TalkativeLog(`-^-CALLBACK async S= ${success}`);
+diff --git i/utilaudio.js w/utilaudio.js
+index b07e181..ed7d3ba 100644
+--- i/utilaudio.js
++++ w/utilaudio.js
+@@ -14,10 +14,8 @@
+ 
+ import GObject from 'gi://GObject';
+ import GIRepository from 'gi://GIRepository';
 -GIRepository.Repository.prepend_search_path('/usr/lib/gnome-shell');
 -GIRepository.Repository.prepend_library_path('/usr/lib/gnome-shell');
 -GIRepository.Repository.prepend_search_path('/usr/lib64/gnome-shell');
 -GIRepository.Repository.prepend_library_path('/usr/lib64/gnome-shell');
-+GIRepository.Repository.prepend_search_path("@gnomeShell@/lib/gnome-shell");
- const Gvc = imports.gi.Gvc;
++GIRepository.Repository.prepend_search_path('@gnomeShell@/lib/gnome-shell');
++GIRepository.Repository.prepend_library_path('@gnomeShell@/lib/gnome-shell');
+ import Gvc from 'gi://Gvc';
  
- const ExtensionUtils = imports.misc.extensionUtils;
+ import * as Lib from './convenience.js';
diff --git a/pkgs/desktops/gnome/extensions/buildGnomeExtension.nix b/pkgs/desktops/gnome/extensions/buildGnomeExtension.nix
index 48a42fb3a040d..6826e6116e615 100644
--- a/pkgs/desktops/gnome/extensions/buildGnomeExtension.nix
+++ b/pkgs/desktops/gnome/extensions/buildGnomeExtension.nix
@@ -56,7 +56,7 @@ let
       homepage = link;
       license = lib.licenses.gpl2Plus; # https://gjs.guide/extensions/review-guidelines/review-guidelines.html#licensing
       platforms = lib.platforms.linux;
-      maintainers = with lib.maintainers; [ ];
+      maintainers = [ lib.maintainers.honnip ];
     };
     passthru = {
       extensionPortalSlug = pname;
diff --git a/pkgs/desktops/gnome/extensions/collisions.json b/pkgs/desktops/gnome/extensions/collisions.json
index 1ecf8d1b34e9c..983940b88b278 100644
--- a/pkgs/desktops/gnome/extensions/collisions.json
+++ b/pkgs/desktops/gnome/extensions/collisions.json
@@ -1,371 +1,50 @@
 {
-  "38": {
-    "applications-menu": [
-      "apps-menu@gnome-shell-extensions.gcampax.github.com",
-      "Applications_Menu@rmy.pobox.com"
-    ],
-    "workspace-indicator": [
-      "workspace-indicator@gnome-shell-extensions.gcampax.github.com",
-      "horizontal-workspace-indicator@tty2.io"
-    ],
-    "lock-keys": [
-      "lockkeys@vaina.lt",
-      "lockkeys@fawtytoo"
-    ],
-    "fuzzy-clock": [
-      "Fuzzy_Clock@dallagi",
-      "fuzzy-clock@keepawayfromfire.co.uk"
-    ],
-    "hide-activities-button": [
-      "Hide_Activities@shay.shayel.org",
-      "hide-activities-button@nmingori.gnome-shell-extensions.org"
-    ],
-    "shutdowntimer": [
-      "ShutdownTimer@neumann",
-      "ShutdownTimer@deminder"
-    ],
-    "bottompanel": [
-      "bottompanel@tmoer93",
-      "bottom-panel@sulincix"
-    ],
-    "noannoyance": [
-      "noannoyance@sindex.com",
-      "noannoyance@daase.net"
-    ],
-    "virtualbox-applet": [
-      "vbox-applet@gs.eros2.info",
-      "vbox-applet@buba98"
-    ],
-    "transparent-window": [
-      "transparent-window@pbxqdown.github.com",
-      "transparentwindows.mdirshad07"
-    ],
-    "azan-islamic-prayer-times": [
-      "azan@faissal.bensefia.id",
-      "azan@hatem.masmoudi.org"
-    ],
-    "floating-dock": [
-      "floatingDock@sun.wxg@gmail.com",
-      "floating-dock@nandoferreira_prof@hotmail.com"
-    ],
-    "gnome-trash": [
-      "gnome-trash@gnome-trash.b00f.gitlab.com",
-      "gnome-trash@b00f.github.io"
-    ],
-    "true-color-invert": [
-      "true-color-invert@jackkenney",
-      "true-color-window-invert@lynet101"
-    ],
-    "volume-scroller": [
-      "volume_scroller@trflynn89.pm.me",
-      "volume_scroller@francislavoie.github.io"
-    ]
-  },
-  "40": {
-    "applications-menu": [
-      "apps-menu@gnome-shell-extensions.gcampax.github.com",
-      "Applications_Menu@rmy.pobox.com"
-    ],
-    "workspace-indicator": [
-      "workspace-indicator@gnome-shell-extensions.gcampax.github.com",
-      "horizontal-workspace-indicator@tty2.io"
-    ],
-    "lock-keys": [
-      "lockkeys@vaina.lt",
-      "lockkeys@fawtytoo"
-    ],
-    "system-monitor": [
-      "system-monitor@paradoxxx.zero.gmail.com",
-      "System_Monitor@bghome.gmail.com"
-    ],
-    "hide-activities-button": [
-      "Hide_Activities@shay.shayel.org",
-      "hide-activities-button@nmingori.gnome-shell-extensions.org"
-    ],
-    "clipboard-indicator": [
-      "clipboard-indicator@tudmotu.com",
-      "clipboard-indicator@Dieg0Js.github.io"
-    ],
-    "shutdowntimer": [
-      "ShutdownTimer@neumann",
-      "shutdown-timer-gnome-shell-extension",
-      "ShutdownTimer@deminder"
-    ],
-    "noannoyance": [
-      "noannoyance@sindex.com",
-      "noannoyance@daase.net"
-    ],
-    "fuzzy-clock": [
-      "fuzzy-clock@keepawayfromfire.co.uk",
-      "FuzzyClock@johngoetz"
-    ],
-    "virtualbox-applet": [
-      "vbox-applet@gs.eros2.info",
-      "vbox-applet@buba98"
-    ],
-    "panel-date-format": [
-      "panel-date-format@keiii.github.com",
-      "panel-date-format@atareao.es"
-    ],
-    "disable-unredirect-fullscreen-windows": [
-      "unredirect@vaina.lt",
-      "unredirect@aunetx"
-    ],
-    "floating-dock": [
-      "floatingDock@sun.wxg@gmail.com",
-      "floating-dock@nandoferreira_prof@hotmail.com"
-    ],
-    "extension-list": [
-      "extension-list@tu.berry",
-      "screen-lock@garciabaameiro.com"
-    ],
-    "wireguard-indicator": [
-      "wireguard-indicator@gregos.me",
-      "wireguard-indicator@atareao.es"
-    ],
-    "true-color-invert": [
-      "true-color-invert@jackkenney",
-      "true-color-window-invert@lynet101"
-    ],
-    "volume-scroller": [
-      "volume_scroller@trflynn89.pm.me",
-      "volume_scroller@francislavoie.github.io"
-    ],
-    "floating-panel": [
-      "floating-panel@aylur",
-      "floating-panel-usedbymyself@wpism"
-    ]
-  },
-  "41": {
-    "applications-menu": [
-      "apps-menu@gnome-shell-extensions.gcampax.github.com",
-      "Applications_Menu@rmy.pobox.com"
-    ],
-    "workspace-indicator": [
-      "workspace-indicator@gnome-shell-extensions.gcampax.github.com",
-      "horizontal-workspace-indicator@tty2.io"
-    ],
-    "lock-keys": [
-      "lockkeys@vaina.lt",
-      "lockkeys@fawtytoo"
-    ],
-    "shutdowntimer": [
-      "ShutdownTimer@neumann",
-      "ShutdownTimer@deminder"
-    ],
-    "noannoyance": [
-      "noannoyance@sindex.com",
-      "noannoyance@daase.net"
-    ],
-    "fuzzy-clock": [
-      "fuzzy-clock@keepawayfromfire.co.uk",
-      "FuzzyClock@johngoetz"
-    ],
-    "virtualbox-applet": [
-      "vbox-applet@gs.eros2.info",
-      "vbox-applet@buba98"
-    ],
-    "panel-date-format": [
-      "panel-date-format@keiii.github.com",
-      "panel-date-format@atareao.es"
-    ],
-    "disable-unredirect-fullscreen-windows": [
-      "unredirect@vaina.lt",
-      "unredirect@aunetx"
-    ],
-    "floating-dock": [
-      "floatingDock@sun.wxg@gmail.com",
-      "floating-dock@nandoferreira_prof@hotmail.com"
-    ],
-    "wireguard-indicator": [
-      "wireguard-indicator@gregos.me",
-      "wireguard-indicator@atareao.es"
-    ],
-    "true-color-invert": [
-      "true-color-invert@jackkenney",
-      "true-color-window-invert@lynet101"
-    ],
-    "volume-scroller": [
-      "volume_scroller@trflynn89.pm.me",
-      "volume_scroller@francislavoie.github.io"
-    ],
-    "floating-panel": [
-      "floating-panel@aylur",
-      "floating-panel-usedbymyself@wpism"
-    ]
-  },
-  "42": {
-    "applications-menu": [
-      "apps-menu@gnome-shell-extensions.gcampax.github.com",
-      "Applications_Menu@rmy.pobox.com"
-    ],
-    "workspace-indicator": [
-      "workspace-indicator@gnome-shell-extensions.gcampax.github.com",
-      "horizontal-workspace-indicator@tty2.io"
-    ],
-    "lock-keys": [
-      "lockkeys@vaina.lt",
-      "lockkeys@fawtytoo"
-    ],
-    "persian-calendar": [
-      "PersianCalendar@oxygenws.com",
-      "persian-calendar@iamrezamousavi.gmail.com"
-    ],
-    "clipboard-indicator": [
-      "clipboard-indicator@tudmotu.com",
-      "clipboard-indicator@Dieg0Js.github.io"
-    ],
-    "noannoyance": [
-      "noannoyance@sindex.com",
-      "noannoyance@daase.net"
-    ],
-    "fuzzy-clock": [
-      "fuzzy-clock@keepawayfromfire.co.uk",
-      "FuzzyClock@johngoetz"
-    ],
-    "virtualbox-applet": [
-      "vbox-applet@gs.eros2.info",
-      "vbox-applet@buba98"
-    ],
-    "panel-date-format": [
-      "panel-date-format@keiii.github.com",
-      "panel-date-format@atareao.es"
-    ],
-    "wireguard-indicator": [
-      "wireguard-indicator@gregos.me",
-      "wireguard-indicator@atareao.es"
-    ],
-    "true-color-invert": [
-      "true-color-invert@jackkenney",
-      "true-color-window-invert@lynet101"
-    ],
-    "volume-scroller": [
-      "volume_scroller@trflynn89.pm.me",
-      "volume_scroller@francislavoie.github.io"
-    ],
-    "auto-activities": [
-      "auto-activities@acedron.github.io",
-      "auto-activities@CleoMenezesJr.github.io"
-    ],
-    "floating-panel": [
-      "floating-panel@aylur",
-      "floating-panel-usedbymyself@wpism"
-    ]
-  },
-  "43": {
-    "applications-menu": [
-      "apps-menu@gnome-shell-extensions.gcampax.github.com",
-      "Applications_Menu@rmy.pobox.com"
-    ],
-    "workspace-indicator": [
-      "workspace-indicator@gnome-shell-extensions.gcampax.github.com",
-      "horizontal-workspace-indicator@tty2.io"
-    ],
-    "lock-keys": [
-      "lockkeys@vaina.lt",
-      "lockkeys@fawtytoo"
-    ],
-    "persian-calendar": [
-      "PersianCalendar@oxygenws.com",
-      "persian-calendar@iamrezamousavi.gmail.com"
-    ],
-    "clipboard-indicator": [
-      "clipboard-indicator@tudmotu.com",
-      "clipboard-indicator@Dieg0Js.github.io"
-    ],
-    "keep-awake": [
-      "KeepAwake@jepfa.de",
-      "awake@vixalien.com"
-    ],
-    "noannoyance": [
-      "noannoyance@sindex.com",
-      "noannoyance@daase.net"
-    ],
-    "fuzzy-clock": [
-      "fuzzy-clock@keepawayfromfire.co.uk",
-      "FuzzyClock@johngoetz"
-    ],
-    "virtualbox-applet": [
-      "vbox-applet@gs.eros2.info",
-      "vbox-applet@buba98"
-    ],
-    "panel-date-format": [
-      "panel-date-format@keiii.github.com",
-      "panel-date-format@atareao.es"
-    ],
-    "battery-time": [
-      "batime@martin.zurowietz.de",
-      "batterytime@typeof.pw"
-    ],
-    "volume-scroller": [
-      "volume_scroller@trflynn89.pm.me",
-      "volume_scroller@francislavoie.github.io"
-    ],
-    "floating-panel": [
-      "floating-panel@aylur",
-      "floating-panel-usedbymyself@wpism"
-    ]
-  },
-  "44": {
-    "applications-menu": [
-      "apps-menu@gnome-shell-extensions.gcampax.github.com",
-      "Applications_Menu@rmy.pobox.com"
-    ],
-    "workspace-indicator": [
-      "workspace-indicator@gnome-shell-extensions.gcampax.github.com",
-      "horizontal-workspace-indicator@tty2.io"
-    ],
-    "persian-calendar": [
-      "PersianCalendar@oxygenws.com",
-      "persian-calendar@iamrezamousavi.gmail.com"
-    ],
-    "clipboard-indicator": [
-      "clipboard-indicator@tudmotu.com",
-      "clipboard-indicator@Dieg0Js.github.io"
-    ],
-    "virtualbox-applet": [
-      "vbox-applet@gs.eros2.info",
-      "vbox-applet@buba98"
-    ],
-    "panel-date-format": [
-      "panel-date-format@keiii.github.com",
-      "panel-date-format@atareao.es"
-    ],
-    "battery-time": [
-      "batime@martin.zurowietz.de",
-      "batterytime@typeof.pw"
-    ]
-  },
-  "45": {
-    "applications-menu": [
-      "apps-menu@gnome-shell-extensions.gcampax.github.com",
-      "Applications_Menu@rmy.pobox.com"
-    ],
-    "persian-calendar": [
-      "PersianCalendar@oxygenws.com",
-      "persian-calendar@iamrezamousavi.gmail.com"
-    ],
-    "battery-time": [
-      "batime@martin.zurowietz.de",
-      "batterytime@typeof.pw"
-    ],
-    "power-profile-indicator": [
-      "power-profile-indicator@laux.wtf",
-      "power-profile@fthx"
-    ]
-  },
-  "46": {
-    "applications-menu": [
-      "apps-menu@gnome-shell-extensions.gcampax.github.com",
-      "Applications_Menu@rmy.pobox.com"
-    ],
-    "persian-calendar": [
-      "PersianCalendar@oxygenws.com",
-      "persian-calendar@iamrezamousavi.gmail.com"
-    ],
-    "power-profile-indicator": [
-      "power-profile-indicator@laux.wtf",
-      "power-profile@fthx"
-    ]
-  }
+  "applications-menu": [
+    "Applications_Menu@rmy.pobox.com",
+    "apps-menu@gnome-shell-extensions.gcampax.github.com"
+  ],
+  "workspace-indicator": [
+    "horizontal-workspace-indicator@tty2.io",
+    "workspace-indicator@gnome-shell-extensions.gcampax.github.com"
+  ],
+  "persian-calendar": [
+    "persian-calendar@iamrezamousavi.gmail.com",
+    "PersianCalendar@oxygenws.com"
+  ],
+  "openweather": [
+    "openweather-extension@jenslody.de",
+    "openweather-extension@penguin-teal.github.io"
+  ],
+  "clipboard-indicator": [
+    "clipboard-indicator@tudmotu.com",
+    "clipboard-indicator@Dieg0Js.github.io"
+  ],
+  "system-monitor": [
+    "system-monitor@gnome-shell-extensions.gcampax.github.com",
+    "System_Monitor@bghome.gmail.com"
+  ],
+  "virtualbox-applet": [
+    "vbox-applet@gs.eros2.info",
+    "vbox-applet@buba98"
+  ],
+  "panel-date-format": [
+    "panel-date-format@atareao.es",
+    "panel-date-format@keiii.github.com"
+  ],
+  "battery-time": [
+    "batterytime@typeof.pw",
+    "batime@martin.zurowietz.de"
+  ],
+  "kernel-indicator": [
+    "kernel-indicator@elboulangero.gitlab.com",
+    "kernel-indicator@pvizc.gitlab.com"
+  ],
+  "fuzzy-clock": [
+    "fuzzy-clock@keepawayfromfire.co.uk",
+    "FuzzyClock@johngoetz"
+  ],
+  "power-profile-indicator": [
+    "power-profile-indicator@laux.wtf",
+    "power-profile@fthx"
+  ]
 }
diff --git a/pkgs/desktops/gnome/extensions/extensionOverrides.nix b/pkgs/desktops/gnome/extensions/extensionOverrides.nix
index 373715d357ed0..52b038ccda919 100644
--- a/pkgs/desktops/gnome/extensions/extensionOverrides.nix
+++ b/pkgs/desktops/gnome/extensions/extensionOverrides.nix
@@ -9,13 +9,12 @@
 , hddtemp
 , libgda
 , libgtop
+, libhandy
 , liquidctl
 , lm_sensors
 , netcat-gnu
 , nvme-cli
 , procps
-, pulseaudio
-, python3
 , smartmontools
 , substituteAll
 , touchegg
@@ -47,18 +46,25 @@ super: lib.trivial.pipe super [
 
   (patchExtension "ddterm@amezin.github.com" (old: {
     nativeBuildInputs = [ gobject-introspection wrapGAppsHook3 ];
-    buildInputs = [ vte ];
+    buildInputs = [ vte libhandy gjs ];
     postFixup = ''
-      substituteInPlace "$out/share/gnome-shell/extensions/ddterm@amezin.github.com/bin/com.github.amezin.ddterm" --replace "gjs" "${gjs}/bin/gjs"
+      patchShebangs "$out/share/gnome-shell/extensions/ddterm@amezin.github.com/bin/com.github.amezin.ddterm"
       wrapGApp "$out/share/gnome-shell/extensions/ddterm@amezin.github.com/bin/com.github.amezin.ddterm"
     '';
   }))
 
   (patchExtension "display-brightness-ddcutil@themightydeity.github.com" (old: {
+    # Make glib-compile-schemas available
+    nativeBuildInputs = [ glib ];
     # Has a hard-coded path to a run-time dependency
     # https://github.com/NixOS/nixpkgs/issues/136111
     postPatch = ''
-      substituteInPlace "extension.js" --replace "/usr/bin/ddcutil" "${ddcutil}/bin/ddcutil"
+      substituteInPlace "schemas/org.gnome.shell.extensions.display-brightness-ddcutil.gschema.xml" \
+        --replace-fail "/usr/bin/ddcutil" ${lib.getExe ddcutil}
+    '';
+    postFixup = ''
+      rm "$out/share/gnome-shell/extensions/display-brightness-ddcutil@themightydeity.github.com/schemas/gschemas.compiled"
+      glib-compile-schemas "$out/share/gnome-shell/extensions/display-brightness-ddcutil@themightydeity.github.com/schemas"
     '';
   }))
 
@@ -106,19 +112,20 @@ super: lib.trivial.pipe super [
     ];
   }))
 
-  (patchExtension "mullvadindicator@pobega.github.com" (old: {
+  (patchExtension "pano@elhan.io" (old: {
     patches = [
-      # Patch from https://github.com/Pobega/gnome-shell-extension-mullvad-indicator/pull/36
-      # tweaked to drop the Makefile changes to fix application
-      ./extensionOverridesPatches/mullvadindicator_at_pobega.github.com.patch
+      (substituteAll {
+        src = ./extensionOverridesPatches/pano_at_elhan.io.patch;
+        inherit gsound libgda;
+      })
     ];
   }))
 
-  (patchExtension "pano@elhan.io" (old: {
+  (patchExtension "system-monitor@gnome-shell-extensions.gcampax.github.com" (old: {
     patches = [
       (substituteAll {
-        src = ./extensionOverridesPatches/pano_at_elhan.io.patch;
-        inherit gsound libgda;
+        src = ./extensionOverridesPatches/system-monitor_at_gnome-shell-extensions.gcampax.github.com.patch;
+        gtop_path = "${libgtop}/lib/girepository-1.0";
       })
     ];
   }))
diff --git a/pkgs/desktops/gnome/extensions/extensionOverridesPatches/mullvadindicator_at_pobega.github.com.patch b/pkgs/desktops/gnome/extensions/extensionOverridesPatches/mullvadindicator_at_pobega.github.com.patch
deleted file mode 100644
index 772da94271103..0000000000000
--- a/pkgs/desktops/gnome/extensions/extensionOverridesPatches/mullvadindicator_at_pobega.github.com.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From ea472538fc73e9ab81e50183444dbb256d32ecc0 Mon Sep 17 00:00:00 2001
-From: Sergio Rubio <rubiojr@rbel.co>
-Date: Wed, 27 Mar 2024 20:43:38 +0100
-Subject: [PATCH] Bump GNOME desktop version
-
-The extension is 46 compatible.
-
----
- metadata.json | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/metadata.json b/metadata.json
-index bc0e272..e647258 100644
---- a/metadata.json
-+++ b/metadata.json
-@@ -3,7 +3,8 @@
-   "description": "Mullvad connection status indicator",
-   "uuid": "mullvadindicator@pobega.github.com",
-   "shell-version": [
--    "45"
-+    "45",
-+    "46"
-   ],
-   "url": "https://github.com/Pobega/gnome-shell-extension-mullvad-indicator",
-   "settings-schema": "org.gnome.shell.extensions.MullvadIndicator",
diff --git a/pkgs/desktops/gnome/extensions/extensionOverridesPatches/system-monitor_at_gnome-shell-extensions.gcampax.github.com.patch b/pkgs/desktops/gnome/extensions/extensionOverridesPatches/system-monitor_at_gnome-shell-extensions.gcampax.github.com.patch
new file mode 100644
index 0000000000000..eb8fc58169fae
--- /dev/null
+++ b/pkgs/desktops/gnome/extensions/extensionOverridesPatches/system-monitor_at_gnome-shell-extensions.gcampax.github.com.patch
@@ -0,0 +1,25 @@
+diff --git a/extension.js b/extension.js
+index 37d2eb1..232d0d5 100644
+--- a/extension.js
++++ b/extension.js
+@@ -6,9 +6,9 @@
+ 
+ import Clutter from 'gi://Clutter';
+ import Gio from 'gi://Gio';
++import GIRepository from "gi://GIRepository";
+ import GLib from 'gi://GLib';
+ import GObject from 'gi://GObject';
+-import GTop from 'gi://GTop';
+ import Pango from 'gi://Pango';
+ import Shell from 'gi://Shell';
+ import St from 'gi://St';
+@@ -19,6 +19,9 @@ import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
+ 
+ import * as Main from 'resource:///org/gnome/shell/ui/main.js';
+ 
++GIRepository.Repository.prepend_search_path('@gtop_path@');
++const GTop = (await import("gi://GTop")).default;
++
+ const THRESHOLD_HIGH = 0.80;
+ 
+ // adapted from load-graph.cpp in gnome-system-monitor
diff --git a/pkgs/desktops/gnome/extensions/extensionRenames.nix b/pkgs/desktops/gnome/extensions/extensionRenames.nix
index 6d43b575c7930..b23252b678795 100644
--- a/pkgs/desktops/gnome/extensions/extensionRenames.nix
+++ b/pkgs/desktops/gnome/extensions/extensionRenames.nix
@@ -3,111 +3,49 @@
 # - Every item from ./collisions.json (for the respective Shell version) should have an entry in here
 # - Set the value to `null` for filtering (duplicate or unmaintained extensions)
 # - Sort the entries in order of appearance in the collisions.json
-# - Make a separate section for each GNOME version. Collisions will come back eventually
-#   as the extensions are updated.
 {
-  # ####### GNOME 45 #######
-
-  "apps-menu@gnome-shell-extensions.gcampax.github.com" = "applications-menu";
   "Applications_Menu@rmy.pobox.com" = "frippery-applications-menu";
+  "apps-menu@gnome-shell-extensions.gcampax.github.com" = "applications-menu";
 
-  "PersianCalendar@oxygenws.com" = "persian-calendar";
-  "persian-calendar@iamrezamousavi.gmail.com" = "persian-calendar-2";
-
-  "batime@martin.zurowietz.de" = "battery-time";
-  "batterytime@typeof.pw" = "battery-time-2";
-
-  "power-profile-indicator@laux.wtf" = "power-profile-indicator";
-  "power-profile@fthx" = "power-profile-indicator-2";
-
-  # ############################################################################
-  # These are conflicts for older extensions (i.e. they don't support the latest GNOME version).
-  # Make sure to move them up once they are updated
+  "horizontal-workspace-indicator@tty2.io" = "workspace-indicator-2";
+  "workspace-indicator@gnome-shell-extensions.gcampax.github.com" = "workspace-indicator";
 
-  # ####### GNOME 44 #######
+  "persian-calendar@iamrezamousavi.gmail.com" = "persian-calendar-2";
+  "PersianCalendar@oxygenws.com" = "persian-calendar";
 
-  "workspace-indicator@gnome-shell-extensions.gcampax.github.com" = "workspace-indicator";
-  "horizontal-workspace-indicator@tty2.io" = "workspace-indicator-2";
+  "openweather-extension@jenslody.de" = "openweather";
+  "openweather-extension@penguin-teal.github.io" = "openweather-refined";
 
   "clipboard-indicator@tudmotu.com" = "clipboard-indicator";
   "clipboard-indicator@Dieg0Js.github.io" = "clipboard-indicator-2";
 
+  "system-monitor@gnome-shell-extensions.gcampax.github.com" = "system-monitor";
+  "System_Monitor@bghome.gmail.com" = "system-monitor-2";
+
   "vbox-applet@gs.eros2.info" = "virtualbox-applet";
   "vbox-applet@buba98" = "virtualbox-applet-2";
 
-  "panel-date-format@keiii.github.com" = "panel-date-format";
   "panel-date-format@atareao.es" = "panel-date-format-2";
+  "panel-date-format@keiii.github.com" = "panel-date-format";
 
-  # ####### GNOME 43 #######
-
-  "lockkeys@vaina.lt" = "lock-keys";
-  "lockkeys@fawtytoo" = "lock-keys-2";
-
-  # DEPRECATED: Use "Caffeine" instead
-  "KeepAwake@jepfa.de" = "keep-awake";
-  "awake@vixalien.com" = null;
+  "batterytime@typeof.pw" = "battery-time-2";
+  "batime@martin.zurowietz.de" = "battery-time";
 
-  "noannoyance@sindex.com" = "noannoyance";
-  "noannoyance@daase.net" = "noannoyance-2";
+  # No longer maintained: https://gitlab.com/arnaudr/gnome-shell-extension-kernel-indicator
+  "kernel-indicator@elboulangero.gitlab.com" = null;
+  "kernel-indicator@pvizc.gitlab.com" = "kernel-indicator";
 
   "fuzzy-clock@keepawayfromfire.co.uk" = "fuzzy-clock-2";
   "FuzzyClock@johngoetz" = "fuzzy-clock";
 
-  "volume_scroller@trflynn89.pm.me" = "volume-scroller";
-  "volume_scroller@francislavoie.github.io" = "volume-scroller-2";
-
-  # no source repository can be found for this extension
-  "floating-panel@aylur" = "floating-panel";
-  "floating-panel-usedbymyself@wpism" = null;
-
-  # ####### GNOME 42 #######
-
-  "wireguard-indicator@gregos.me" = "wireguard-indicator-2";
-  "wireguard-indicator@atareao.es" = "wireguard-indicator";
-
-  "auto-activities@acedron.github.io" = "auto-activities-2";
-  "auto-activities@CleoMenezesJr.github.io" = "auto-activities";
-
-  "true-color-invert@jackkenney" = "true-color-invert";
-  "true-color-window-invert@lynet101" = "true-color-window-invert";
-
-  # ####### GNOME 41 #######
+  "power-profile-indicator@laux.wtf" = "power-profile-indicator";
+  "power-profile@fthx" = "power-profile-indicator-2";
 
+  # ############################################################################
+  # These extensions no longer collide. We preserve the old attribute name for backwards compatibility.
   "floatingDock@sun.wxg@gmail.com" = "floating-dock-2";
-  "floating-dock@nandoferreira_prof@hotmail.com" = "floating-dock";
-
-  "unredirect@vaina.lt" = "disable-unredirect-fullscreen-windows";
-  "unredirect@aunetx" = "disable-unredirect-fullscreen-windows-2";
-
-  # At the moment, ShutdownTimer@deminder is a fork of ShutdownTimer@neumann which adds new features
-  # there seem to be upstream plans, so this should be checked periodically:
-  # https://github.com/Deminder/ShutdownTimer https://github.com/neumann-d/ShutdownTimer/pull/46
-  "ShutdownTimer@neumann" = null;
-  "shutdown-timer-gnome-shell-extension" = "shutdowntimer-2";
-  "ShutdownTimer@deminder" = "shutdowntimer";
-
-  # ####### GNOME 40 #######
-
-  "System_Monitor@bghome.gmail.com" = "system-monitor-2";
-
-  "Hide_Activities@shay.shayel.org" = "hide-activities-button";
-  "hide-activities-button@nmingori.gnome-shell-extensions.org" = "hide-activities-button-2";
-
-  "extension-list@tu.berry" = "extension-list";
-  "screen-lock@garciabaameiro.com" = "screen-lock"; # Don't know why they got 'extension-list' as slug
-
-  # ####### GNOME 3.38 #######
-
-  "bottompanel@tmoer93" = "bottompanel";
-  "bottom-panel@sulincix" = "bottompanel-2";
-
-  # See https://github.com/pbxqdown/gnome-shell-extension-transparent-window/issues/12#issuecomment-800765381
-  "transparent-window@pbxqdown.github.com" = "transparent-window";
-  "transparentwindows.mdirshad07" = null;
-
-  # Forks of each other, azan@faissal.bensefia.id is more recent
-  "azan@faissal.bensefia.id" = "azan-islamic-prayer-times";
-  "azan@hatem.masmoudi.org" = null;
+  "true-color-window-invert@lynet101" = "true-color-window-invert";
+  "volume_scroller@francislavoie.github.io" = "volume-scroller-2";
 
   # ############################################################################
   # Overrides for extensions that were manually packaged in the past but are gradually
diff --git a/pkgs/desktops/gnome/extensions/extensions.json b/pkgs/desktops/gnome/extensions/extensions.json
index 7ce60200a4241..2864464301c60 100644
--- a/pkgs/desktops/gnome/extensions/extensions.json
+++ b/pkgs/desktops/gnome/extensions/extensions.json
@@ -36,7 +36,7 @@
     "43": {"version": "52", "sha256": "0h9b0kw919sfcx4l4ffi96fgvhgqnvssgwkbf3qh4lyqs4avb2xy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNhdGVnb3J5LWJhc2VkIG1lbnUgZm9yIGFwcGxpY2F0aW9ucy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImFwcHMtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1hcHBzLW1lbnUiLAogICJuYW1lIjogIkFwcGxpY2F0aW9ucyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlMjAwMkBiay5ydSIsCiAgICAiZGViYXJzaGlyQGdub21lLm9yZyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwcy1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImFwcHMtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Mgp9"},
     "44": {"version": "53", "sha256": "18wh0z8pq991i2kcp4a5dpx6m05qansm357k98n258j1q3jxac5m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNhdGVnb3J5LWJhc2VkIG1lbnUgZm9yIGFwcGxpY2F0aW9ucy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImFwcHMtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1hcHBzLW1lbnUiLAogICJuYW1lIjogIkFwcGxpY2F0aW9ucyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlMjAwMkBiay5ydSIsCiAgICAiZGViYXJzaGlyQGdub21lLm9yZyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwcy1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImFwcHMtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Mwp9"},
     "45": {"version": "56", "sha256": "1k8048dmqyyh3vzamafj90qsn4m98kj7gz5f4hj7z9bqdi38nn6d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNhdGVnb3J5LWJhc2VkIG1lbnUgZm9yIGFwcGxpY2F0aW9ucy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImFwcHMtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1hcHBzLW1lbnUiLAogICJuYW1lIjogIkFwcGxpY2F0aW9ucyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlMjAwMkBiay5ydSIsCiAgICAiZGViYXJzaGlyQGdub21lLm9yZyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwcy1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImFwcHMtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Ngp9"},
-    "46": {"version": "58", "sha256": "0dbadbx7mww4i6jj4a08khvg6d2njaksrqhly78fk99yjz19sg0y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNhdGVnb3J5LWJhc2VkIG1lbnUgZm9yIGFwcHMuXG5UaGlzIGV4dGVuc2lvbiBpcyBwYXJ0IG9mIENsYXNzaWMgTW9kZSBhbmQgaXMgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgYnkgR05PTUUuIFBsZWFzZSBkbyBub3QgcmVwb3J0IGJ1Z3MgdXNpbmcgdGhlIGZvcm0gYmVsb3csIHVzZSBHTk9NRSdzIEdpdExhYiBpbnN0YW5jZSBpbnN0ZWFkLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhcHBzLW1lbnUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tYXBwcy1tZW51IiwKICAibmFtZSI6ICJBcHBzIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImUyMDAyQGJrLnJ1IiwKICAgICJkZWJhcnNoaXJAZ25vbWUub3JnIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcHBzLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiYXBwcy1tZW51QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU4Cn0="}
+    "46": {"version": "59", "sha256": "17d0jpqim13130f7205jpsa88j3azqc281a8877nbhlbha44ilcb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNhdGVnb3J5LWJhc2VkIG1lbnUgZm9yIGFwcHMuXG5UaGlzIGV4dGVuc2lvbiBpcyBwYXJ0IG9mIENsYXNzaWMgTW9kZSBhbmQgaXMgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgYnkgR05PTUUuIFBsZWFzZSBkbyBub3QgcmVwb3J0IGJ1Z3MgdXNpbmcgdGhlIGZvcm0gYmVsb3csIHVzZSBHTk9NRSdzIEdpdExhYiBpbnN0YW5jZSBpbnN0ZWFkLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhcHBzLW1lbnUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tYXBwcy1tZW51IiwKICAibmFtZSI6ICJBcHBzIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImUyMDAyQGJrLnJ1IiwKICAgICJkZWJhcnNoaXJAZ25vbWUub3JnIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcHBzLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiYXBwcy1tZW51QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU5Cn0="}
   }}
 , {"uuid": "drive-menu@gnome-shell-extensions.gcampax.github.com", "name": "Removable Drive Menu", "pname": "removable-drive-menu", "description": "A status menu for accessing and unmounting removable devices.", "link": "https://extensions.gnome.org/extension/7/removable-drive-menu/", "shell_version_map": {
     "38": {"version": "45", "sha256": "1f5a9md2gxbl65shbdm498y5dwhhqdpj96gvf2m81ad7gsgxzliv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIG1lbnUgZm9yIGFjY2Vzc2luZyBhbmQgdW5tb3VudGluZyByZW1vdmFibGUgZGV2aWNlcy4iLAogICJleHRlbnNpb24taWQiOiAiZHJpdmUtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlJlbW92YWJsZSBEcml2ZSBNZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRyaXZlLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJkcml2ZS1tZW51QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="},
@@ -46,7 +46,7 @@
     "43": {"version": "52", "sha256": "0zn9xkw5r0j1kwbs78j7chp4l2404d177w3a4shjd765hvjy6wam", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIG1lbnUgZm9yIGFjY2Vzc2luZyBhbmQgdW5tb3VudGluZyByZW1vdmFibGUgZGV2aWNlcy4iLAogICJleHRlbnNpb24taWQiOiAiZHJpdmUtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1kcml2ZS1tZW51IiwKICAibmFtZSI6ICJSZW1vdmFibGUgRHJpdmUgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kcml2ZS1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImRyaXZlLW1lbnVAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTIKfQ=="},
     "44": {"version": "53", "sha256": "01wn2icq1cnly9xg7pr2pzk4vqw4l5fhasy5hvq3pq8mbidmdm5s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIG1lbnUgZm9yIGFjY2Vzc2luZyBhbmQgdW5tb3VudGluZyByZW1vdmFibGUgZGV2aWNlcy4iLAogICJleHRlbnNpb24taWQiOiAiZHJpdmUtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1kcml2ZS1tZW51IiwKICAibmFtZSI6ICJSZW1vdmFibGUgRHJpdmUgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kcml2ZS1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImRyaXZlLW1lbnVAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTMKfQ=="},
     "45": {"version": "57", "sha256": "1a2j8l2wmxx97snqrj5hs9y0qcjwkv9g00bgr0968h8rpy4fl56y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIG1lbnUgZm9yIGFjY2Vzc2luZyBhbmQgdW5tb3VudGluZyByZW1vdmFibGUgZGV2aWNlcy4iLAogICJleHRlbnNpb24taWQiOiAiZHJpdmUtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1kcml2ZS1tZW51IiwKICAibmFtZSI6ICJSZW1vdmFibGUgRHJpdmUgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kcml2ZS1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImRyaXZlLW1lbnVAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTcKfQ=="},
-    "46": {"version": "59", "sha256": "07kcjsg0njir7692zgji91izbbynw5m7snpm4f129gwk51fjn5xs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIG1lbnUgZm9yIGFjY2Vzc2luZyBhbmQgdW5tb3VudGluZyByZW1vdmFibGUgZGV2aWNlcy4iLAogICJleHRlbnNpb24taWQiOiAiZHJpdmUtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1kcml2ZS1tZW51IiwKICAibmFtZSI6ICJSZW1vdmFibGUgRHJpdmUgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kcml2ZS1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImRyaXZlLW1lbnVAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTkKfQ=="}
+    "46": {"version": "61", "sha256": "0qjg90axaivcsnw94xam8r39734y3pj1315lj2xqv0fjq6163h3v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIG1lbnUgZm9yIGFjY2Vzc2luZyBhbmQgdW5tb3VudGluZyByZW1vdmFibGUgZGV2aWNlcy4iLAogICJleHRlbnNpb24taWQiOiAiZHJpdmUtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1kcml2ZS1tZW51IiwKICAibmFtZSI6ICJSZW1vdmFibGUgRHJpdmUgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kcml2ZS1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImRyaXZlLW1lbnVAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNjEKfQ=="}
   }}
 , {"uuid": "places-menu@gnome-shell-extensions.gcampax.github.com", "name": "Places Status Indicator", "pname": "places-status-indicator", "description": "Add a menu for quickly navigating places in the system.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.", "link": "https://extensions.gnome.org/extension/8/places-status-indicator/", "shell_version_map": {
     "38": {"version": "48", "sha256": "05m8nkg2km72iwnmadx6f4br8qnzqagp78mlhz8r2z6hp19nqsh5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIG1lbnUgZm9yIHF1aWNrbHkgbmF2aWdhdGluZyBwbGFjZXMgaW4gdGhlIHN5c3RlbS5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBsYWNlcy1tZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiUGxhY2VzIFN0YXR1cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGxhY2VzLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJwbGFjZXMtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0OAp9"},
@@ -56,7 +56,7 @@
     "43": {"version": "55", "sha256": "19pw472bjz3j9z1s23q4rxsjmz0x54fcpi968yw7k8ivd1cihfx5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIG1lbnUgZm9yIHF1aWNrbHkgbmF2aWdhdGluZyBwbGFjZXMgaW4gdGhlIHN5c3RlbS5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBsYWNlcy1tZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXBsYWNlcy1tZW51IiwKICAibmFtZSI6ICJQbGFjZXMgU3RhdHVzIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wbGFjZXMtbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJwbGFjZXMtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1NQp9"},
     "44": {"version": "56", "sha256": "0fc52km2aj7c4n1q6y4yf2l4nzzwawyizi8d6d0b1wrcqa8n64n6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIG1lbnUgZm9yIHF1aWNrbHkgbmF2aWdhdGluZyBwbGFjZXMgaW4gdGhlIHN5c3RlbS5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBsYWNlcy1tZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXBsYWNlcy1tZW51IiwKICAibmFtZSI6ICJQbGFjZXMgU3RhdHVzIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wbGFjZXMtbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJwbGFjZXMtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Ngp9"},
     "45": {"version": "59", "sha256": "1sai071js4l70mm8cfnr8yavisiy5wbdifkhc9wl4pqj12g33x31", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIG1lbnUgZm9yIHF1aWNrbHkgbmF2aWdhdGluZyBwbGFjZXMgaW4gdGhlIHN5c3RlbS5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBsYWNlcy1tZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXBsYWNlcy1tZW51IiwKICAibmFtZSI6ICJQbGFjZXMgU3RhdHVzIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wbGFjZXMtbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJwbGFjZXMtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1OQp9"},
-    "46": {"version": "61", "sha256": "1y4q3z5hgmhrlj0b9k99h782phsjimbifsdphf1pg6n2fp31apah", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIG1lbnUgZm9yIHF1aWNrbHkgbmF2aWdhdGluZyBwbGFjZXMgaW4gdGhlIHN5c3RlbS5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBsYWNlcy1tZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXBsYWNlcy1tZW51IiwKICAibmFtZSI6ICJQbGFjZXMgU3RhdHVzIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wbGFjZXMtbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJwbGFjZXMtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2MQp9"}
+    "46": {"version": "62", "sha256": "0c2yh37sxrbvlcijamyy7pwi2qfmks0jvj3kw0ih581sjsbigmgn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIG1lbnUgZm9yIHF1aWNrbHkgbmF2aWdhdGluZyBwbGFjZXMgaW4gdGhlIHN5c3RlbS5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBsYWNlcy1tZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXBsYWNlcy1tZW51IiwKICAibmFtZSI6ICJQbGFjZXMgU3RhdHVzIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wbGFjZXMtbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJwbGFjZXMtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2Mgp9"}
   }}
 , {"uuid": "windowsNavigator@gnome-shell-extensions.gcampax.github.com", "name": "windowNavigator", "pname": "windownavigator", "description": "Allow keyboard selection of windows and workspaces in overlay mode. <Ctrl>number selects a workspace, and <Alt>number selects a window.", "link": "https://extensions.gnome.org/extension/10/windownavigator/", "shell_version_map": {
     "38": {"version": "49", "sha256": "1rzfnssk0iw1ysaya79ksghikkr1rpm41h2w39cz142fby6kip2d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IGtleWJvYXJkIHNlbGVjdGlvbiBvZiB3aW5kb3dzIGFuZCB3b3Jrc3BhY2VzIGluIG92ZXJsYXkgbW9kZS4gPEN0cmw+bnVtYmVyIHNlbGVjdHMgYSB3b3Jrc3BhY2UsIGFuZCA8QWx0Pm51bWJlciBzZWxlY3RzIGEgd2luZG93LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3dzTmF2aWdhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAid2luZG93TmF2aWdhdG9yIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInphc3BpcmVAcmFtYmxlci5ydSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53aW5kb3dzTmF2aWdhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid2luZG93c05hdmlnYXRvckBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0OQp9"},
@@ -66,7 +66,7 @@
     "43": {"version": "58", "sha256": "1l5fiajbv9484ln7kkq5nm4ph71ir9fnav6gqhyzbfhbx94qh9gd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IGtleWJvYXJkIHNlbGVjdGlvbiBvZiB3aW5kb3dzIGFuZCB3b3Jrc3BhY2VzIGluIG92ZXJsYXkgbW9kZS4gPEN0cmw+bnVtYmVyIHNlbGVjdHMgYSB3b3Jrc3BhY2UsIGFuZCA8QWx0Pm51bWJlciBzZWxlY3RzIGEgd2luZG93LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3dzTmF2aWdhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpbmRvd3NOYXZpZ2F0b3IiLAogICJuYW1lIjogIndpbmRvd05hdmlnYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJ6YXNwaXJlQHJhbWJsZXIucnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2luZG93c05hdmlnYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJ3aW5kb3dzTmF2aWdhdG9yQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU4Cn0="},
     "44": {"version": "59", "sha256": "1pa1i7scsjj91dql0v6zajyx30w446r1cxknl0dp1fpmydqwxjpl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IGtleWJvYXJkIHNlbGVjdGlvbiBvZiB3aW5kb3dzIGFuZCB3b3Jrc3BhY2VzIGluIG92ZXJsYXkgbW9kZS4gPEN0cmw+bnVtYmVyIHNlbGVjdHMgYSB3b3Jrc3BhY2UsIGFuZCA8QWx0Pm51bWJlciBzZWxlY3RzIGEgd2luZG93LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3dzTmF2aWdhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpbmRvd3NOYXZpZ2F0b3IiLAogICJuYW1lIjogIndpbmRvd05hdmlnYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJ6YXNwaXJlQHJhbWJsZXIucnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2luZG93c05hdmlnYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJ3aW5kb3dzTmF2aWdhdG9yQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU5Cn0="},
     "45": {"version": "62", "sha256": "10d6hj0nbnfq55lqjjmilb8f6v2cv70kk6bnzyj3cn832hrz959a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IGtleWJvYXJkIHNlbGVjdGlvbiBvZiB3aW5kb3dzIGFuZCB3b3Jrc3BhY2VzIGluIG92ZXJsYXkgbW9kZS4gPEN0cmw+bnVtYmVyIHNlbGVjdHMgYSB3b3Jrc3BhY2UsIGFuZCA8QWx0Pm51bWJlciBzZWxlY3RzIGEgd2luZG93LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3dzTmF2aWdhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpbmRvd3NOYXZpZ2F0b3IiLAogICJuYW1lIjogIndpbmRvd05hdmlnYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJ6YXNwaXJlQHJhbWJsZXIucnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2luZG93c05hdmlnYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJ3aW5kb3dzTmF2aWdhdG9yQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYyCn0="},
-    "46": {"version": "64", "sha256": "1gk9sh02g825nwf2kii66n3vpkgi8wsvsj3mbh124rhsl5a7ps6k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IGtleWJvYXJkIHNlbGVjdGlvbiBvZiB3aW5kb3dzIGFuZCB3b3Jrc3BhY2VzIGluIG92ZXJsYXkgbW9kZS4gPEN0cmw+bnVtYmVyIHNlbGVjdHMgYSB3b3Jrc3BhY2UsIGFuZCA8QWx0Pm51bWJlciBzZWxlY3RzIGEgd2luZG93LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3dzTmF2aWdhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpbmRvd3NOYXZpZ2F0b3IiLAogICJuYW1lIjogIndpbmRvd05hdmlnYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJ6YXNwaXJlQHJhbWJsZXIucnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2luZG93c05hdmlnYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJ3aW5kb3dzTmF2aWdhdG9yQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDY0Cn0="}
+    "46": {"version": "65", "sha256": "1npjmmzfvcmhvjzyr7fhslznmsc7cvwavfp5v8idydqrvx4lz6md", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IGtleWJvYXJkIHNlbGVjdGlvbiBvZiB3aW5kb3dzIGFuZCB3b3Jrc3BhY2VzIGluIG92ZXJsYXkgbW9kZS4gPEN0cmw+bnVtYmVyIHNlbGVjdHMgYSB3b3Jrc3BhY2UsIGFuZCA8QWx0Pm51bWJlciBzZWxlY3RzIGEgd2luZG93LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3dzTmF2aWdhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpbmRvd3NOYXZpZ2F0b3IiLAogICJuYW1lIjogIndpbmRvd05hdmlnYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJ6YXNwaXJlQHJhbWJsZXIucnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2luZG93c05hdmlnYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJ3aW5kb3dzTmF2aWdhdG9yQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDY1Cn0="}
   }}
 , {"uuid": "Applications_Menu@rmy.pobox.com", "name": "Frippery Applications Menu", "pname": "applications-menu", "description": "Replace Activities button with an Applications menu", "link": "https://extensions.gnome.org/extension/13/applications-menu/", "shell_version_map": {
     "38": {"version": "45", "sha256": "0kg9dq1ssa11xizb31kcq3p724qzm1cmf30wriqffj043n5nd125", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgQWN0aXZpdGllcyBidXR0b24gd2l0aCBhbiBBcHBsaWNhdGlvbnMgbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImZyaXBwZXJ5LWFwcGxpY2F0aW9ucy1tZW51IiwKICAibmFtZSI6ICJGcmlwcGVyeSBBcHBsaWNhdGlvbnMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYXBwbGljYXRpb25zLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiQXBwbGljYXRpb25zX01lbnVAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiA0NQp9"},
@@ -86,7 +86,7 @@
     "43": {"version": "50", "sha256": "0s0ky7sslyf2cy68xlqrrz01py82wi861gpcfqj97qdwdf9hzq2g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgYXBwbGljYXRpb25zIHRvIHNwZWNpZmljIHdvcmtzcGFjZXMgd2hlbiB0aGV5IGNyZWF0ZSB3aW5kb3dzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhdXRvLW1vdmUtd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1hdXRvLW1vdmUtd2luZG93cyIsCiAgIm5hbWUiOiAiQXV0byBNb3ZlIFdpbmRvd3MiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImFsZXNzYW5kcm8uY3Jpc21hbmlAZ21haWwuY29tIiwKICAgICJ0aG9tYXMuYm91ZmZvbkBnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmF1dG8tbW92ZS13aW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImF1dG8tbW92ZS13aW5kb3dzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUwCn0="},
     "44": {"version": "51", "sha256": "1j9nba9r5a56c2ks61jbrr6n8gc470g4c0lig9r4angqhc6sn7bl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgYXBwbGljYXRpb25zIHRvIHNwZWNpZmljIHdvcmtzcGFjZXMgd2hlbiB0aGV5IGNyZWF0ZSB3aW5kb3dzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhdXRvLW1vdmUtd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1hdXRvLW1vdmUtd2luZG93cyIsCiAgIm5hbWUiOiAiQXV0byBNb3ZlIFdpbmRvd3MiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImFsZXNzYW5kcm8uY3Jpc21hbmlAZ21haWwuY29tIiwKICAgICJ0aG9tYXMuYm91ZmZvbkBnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmF1dG8tbW92ZS13aW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImF1dG8tbW92ZS13aW5kb3dzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUxCn0="},
     "45": {"version": "54", "sha256": "11gxlyp83096ky0iqd8svn802ih7knvhn3qml6532c1h2xv8krlp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgYXBwbGljYXRpb25zIHRvIHNwZWNpZmljIHdvcmtzcGFjZXMgd2hlbiB0aGV5IGNyZWF0ZSB3aW5kb3dzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhdXRvLW1vdmUtd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1hdXRvLW1vdmUtd2luZG93cyIsCiAgIm5hbWUiOiAiQXV0byBNb3ZlIFdpbmRvd3MiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImFsZXNzYW5kcm8uY3Jpc21hbmlAZ21haWwuY29tIiwKICAgICJ0aG9tYXMuYm91ZmZvbkBnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmF1dG8tbW92ZS13aW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImF1dG8tbW92ZS13aW5kb3dzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU0Cn0="},
-    "46": {"version": "56", "sha256": "00snc3q2102c19m2jzinlca4id66qk40wadr2dq2ipn1qndf4pi8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgYXBwbGljYXRpb25zIHRvIHNwZWNpZmljIHdvcmtzcGFjZXMgd2hlbiB0aGV5IGNyZWF0ZSB3aW5kb3dzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhdXRvLW1vdmUtd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1hdXRvLW1vdmUtd2luZG93cyIsCiAgIm5hbWUiOiAiQXV0byBNb3ZlIFdpbmRvd3MiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImFsZXNzYW5kcm8uY3Jpc21hbmlAZ21haWwuY29tIiwKICAgICJ0aG9tYXMuYm91ZmZvbkBnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmF1dG8tbW92ZS13aW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImF1dG8tbW92ZS13aW5kb3dzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU2Cn0="}
+    "46": {"version": "57", "sha256": "1h5fcmik8cr8hq4kxnabi9wrgqg13i81d3xgh1b9hlnf2aah091y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgYXBwbGljYXRpb25zIHRvIHNwZWNpZmljIHdvcmtzcGFjZXMgd2hlbiB0aGV5IGNyZWF0ZSB3aW5kb3dzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhdXRvLW1vdmUtd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1hdXRvLW1vdmUtd2luZG93cyIsCiAgIm5hbWUiOiAiQXV0byBNb3ZlIFdpbmRvd3MiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImFsZXNzYW5kcm8uY3Jpc21hbmlAZ21haWwuY29tIiwKICAgICJ0aG9tYXMuYm91ZmZvbkBnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmF1dG8tbW92ZS13aW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImF1dG8tbW92ZS13aW5kb3dzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU3Cn0="}
   }}
 , {"uuid": "native-window-placement@gnome-shell-extensions.gcampax.github.com", "name": "Native Window Placement", "pname": "native-window-placement", "description": "Arrange windows in overview in a more compact way.", "link": "https://extensions.gnome.org/extension/18/native-window-placement/", "shell_version_map": {
     "38": {"version": "45", "sha256": "15vhdcfrfbsinp0m1jfygjl4djccafhvgwc1rsi321jvykqhajmm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBpbiBvdmVydmlldyBpbiBhIG1vcmUgY29tcGFjdCB3YXkuIiwKICAiZXh0ZW5zaW9uLWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTmF0aXZlIFdpbmRvdyBQbGFjZW1lbnQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIndlcG1hc2NoZGFAZ214LmRlIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXRpdmUtd2luZG93LXBsYWNlbWVudCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="},
@@ -96,7 +96,7 @@
     "43": {"version": "52", "sha256": "09660cb8y0549py4d4wrl2fhg7grl0c1fnakzznvfwzh0cdr3f8r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBpbiBvdmVydmlldyBpbiBhIG1vcmUgY29tcGFjdCB3YXkuIiwKICAiZXh0ZW5zaW9uLWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAibmFtZSI6ICJOYXRpdmUgV2luZG93IFBsYWNlbWVudCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAid2VwbWFzY2hkYUBnbXguZGUiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUyCn0="},
     "44": {"version": "53", "sha256": "18k0b7vsjmvbvnzb5b5qa3jk0i14ah93cwi1399m6ma9llhyhwjw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBpbiBvdmVydmlldyBpbiBhIG1vcmUgY29tcGFjdCB3YXkuIiwKICAiZXh0ZW5zaW9uLWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAibmFtZSI6ICJOYXRpdmUgV2luZG93IFBsYWNlbWVudCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAid2VwbWFzY2hkYUBnbXguZGUiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUzCn0="},
     "45": {"version": "56", "sha256": "0g864ji4bazc7x25qqjrcayhpq8sqrabxdwfl7iviz7s0yc40iz0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBpbiBvdmVydmlldyBpbiBhIG1vcmUgY29tcGFjdCB3YXkuIiwKICAiZXh0ZW5zaW9uLWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAibmFtZSI6ICJOYXRpdmUgV2luZG93IFBsYWNlbWVudCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAid2VwbWFzY2hkYUBnbXguZGUiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU2Cn0="},
-    "46": {"version": "58", "sha256": "14774qxsir8dr7nknmfp08iddl50rsdwr50lrslcvbpn0w0byjkx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBpbiBvdmVydmlldyBpbiBhIG1vcmUgY29tcGFjdCB3YXkuIiwKICAiZXh0ZW5zaW9uLWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAibmFtZSI6ICJOYXRpdmUgV2luZG93IFBsYWNlbWVudCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAid2VwbWFzY2hkYUBnbXguZGUiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU4Cn0="}
+    "46": {"version": "59", "sha256": "09fccn043bgxv1idh1y2siimgdbrkwxsdn6zqx93wbrw10i2b355", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBpbiBvdmVydmlldyBpbiBhIG1vcmUgY29tcGFjdCB3YXkuIiwKICAiZXh0ZW5zaW9uLWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAibmFtZSI6ICJOYXRpdmUgV2luZG93IFBsYWNlbWVudCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAid2VwbWFzY2hkYUBnbXguZGUiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU5Cn0="}
   }}
 , {"uuid": "user-theme@gnome-shell-extensions.gcampax.github.com", "name": "User Themes", "pname": "user-themes", "description": "Load shell themes from user directory.", "link": "https://extensions.gnome.org/extension/19/user-themes/", "shell_version_map": {
     "38": {"version": "42", "sha256": "0jykwcd8pmvr03dm2vala6nzzhi9i83c11svgx8wymfvxr5qrya8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgc2hlbGwgdGhlbWVzIGZyb20gdXNlciBkaXJlY3RvcnkuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJVc2VyIFRoZW1lcyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiam9obi5zdG93ZXJzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogInVzZXItdGhlbWVAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDIKfQ=="},
@@ -106,7 +106,7 @@
     "43": {"version": "50", "sha256": "0jyd2rn2nlvcmx8xn2azhbaqf5k0kgyx8ciy6bj1iq35s7k5sp7h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgc2hlbGwgdGhlbWVzIGZyb20gdXNlciBkaXJlY3RvcnkuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdXNlci10aGVtZSIsCiAgIm5hbWUiOiAiVXNlciBUaGVtZXMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZXItdGhlbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAidXNlci10aGVtZUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MAp9"},
     "44": {"version": "51", "sha256": "0m7gw3lcds1r6d8q5962bjxb4b2hqy633c73axxc5gvyr9i0bjf2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgc2hlbGwgdGhlbWVzIGZyb20gdXNlciBkaXJlY3RvcnkuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdXNlci10aGVtZSIsCiAgIm5hbWUiOiAiVXNlciBUaGVtZXMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZXItdGhlbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAidXNlci10aGVtZUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MQp9"},
     "45": {"version": "54", "sha256": "0gpkxmjaaq9rmh16wf5cf24q2w2wb0z0z8v7mcg7wrwsjszg7xhb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgc2hlbGwgdGhlbWVzIGZyb20gdXNlciBkaXJlY3RvcnkuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdXNlci10aGVtZSIsCiAgIm5hbWUiOiAiVXNlciBUaGVtZXMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZXItdGhlbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAidXNlci10aGVtZUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1NAp9"},
-    "46": {"version": "57", "sha256": "17wnlzbqdqc1j0cz61422601pngwxvvch2zw5462k4916kxjbf2s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgc2hlbGwgdGhlbWVzIGZyb20gdXNlciBkaXJlY3RvcnkuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdXNlci10aGVtZSIsCiAgIm5hbWUiOiAiVXNlciBUaGVtZXMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZXItdGhlbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAidXNlci10aGVtZUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Nwp9"}
+    "46": {"version": "58", "sha256": "15qrirgx7ikjxz0jzlxf7k8b41j3crlvzcm952h6ajmg6smbbf7f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgc2hlbGwgdGhlbWVzIGZyb20gdXNlciBkaXJlY3RvcnkuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdXNlci10aGVtZSIsCiAgIm5hbWUiOiAiVXNlciBUaGVtZXMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZXItdGhlbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAidXNlci10aGVtZUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1OAp9"}
   }}
 , {"uuid": "workspace-indicator@gnome-shell-extensions.gcampax.github.com", "name": "Workspace Indicator", "pname": "workspace-indicator", "description": "Put an indicator on the panel signaling in which workspace you are, and give you the possibility of switching to another one.", "link": "https://extensions.gnome.org/extension/21/workspace-indicator/", "shell_version_map": {
     "38": {"version": "45", "sha256": "16y7zhlsj0qjwwj78fvcr81m7081i2y30gwjm35qahr3j0gfrk16", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhbiBpbmRpY2F0b3Igb24gdGhlIHBhbmVsIHNpZ25hbGluZyBpbiB3aGljaCB3b3Jrc3BhY2UgeW91IGFyZSwgYW5kIGdpdmUgeW91IHRoZSBwb3NzaWJpbGl0eSBvZiBzd2l0Y2hpbmcgdG8gYW5vdGhlciBvbmUuIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgSW5kaWNhdG9yIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlcmljay5yZWRAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid29ya3NwYWNlLWluZGljYXRvckBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0NQp9"},
@@ -116,7 +116,7 @@
     "43": {"version": "53", "sha256": "0idl8n6205ymh1z3w15sxv98940q8qch2pp5wk9gzd594i2aya2p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhbiBpbmRpY2F0b3Igb24gdGhlIHBhbmVsIHNpZ25hbGluZyBpbiB3aGljaCB3b3Jrc3BhY2UgeW91IGFyZSwgYW5kIGdpdmUgeW91IHRoZSBwb3NzaWJpbGl0eSBvZiBzd2l0Y2hpbmcgdG8gYW5vdGhlciBvbmUuIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24td29ya3NwYWNlLWluZGljYXRvciIsCiAgIm5hbWUiOiAiV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiZXJpY2sucmVkQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2UtaW5kaWNhdG9yQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUzCn0="},
     "44": {"version": "54", "sha256": "03jq25xa3z0b32vczqv12gkfdmw4ll56zb0walm5gfmmmzivsn1i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhbiBpbmRpY2F0b3Igb24gdGhlIHBhbmVsIHNpZ25hbGluZyBpbiB3aGljaCB3b3Jrc3BhY2UgeW91IGFyZSwgYW5kIGdpdmUgeW91IHRoZSBwb3NzaWJpbGl0eSBvZiBzd2l0Y2hpbmcgdG8gYW5vdGhlciBvbmUuIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24td29ya3NwYWNlLWluZGljYXRvciIsCiAgIm5hbWUiOiAiV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiZXJpY2sucmVkQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2UtaW5kaWNhdG9yQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU0Cn0="},
     "45": {"version": "57", "sha256": "0qpzc1njng95ck1svw9nig2j9i5p7nqbgaxm1x7gg3i9jn8rgwqh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhbiBpbmRpY2F0b3Igb24gdGhlIHBhbmVsIHNpZ25hbGluZyBpbiB3aGljaCB3b3Jrc3BhY2UgeW91IGFyZSwgYW5kIGdpdmUgeW91IHRoZSBwb3NzaWJpbGl0eSBvZiBzd2l0Y2hpbmcgdG8gYW5vdGhlciBvbmUuIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24td29ya3NwYWNlLWluZGljYXRvciIsCiAgIm5hbWUiOiAiV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiZXJpY2sucmVkQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2UtaW5kaWNhdG9yQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU3Cn0="},
-    "46": {"version": "59", "sha256": "0fq3rjch1ciqk0xpr8zkmsvmbd7jsch10mg0jdchjmscim14cvii", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhbiBpbmRpY2F0b3Igb24gdGhlIHBhbmVsIHNpZ25hbGluZyBpbiB3aGljaCB3b3Jrc3BhY2UgeW91IGFyZSwgYW5kIGdpdmUgeW91IHRoZSBwb3NzaWJpbGl0eSBvZiBzd2l0Y2hpbmcgdG8gYW5vdGhlciBvbmUuIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24td29ya3NwYWNlLWluZGljYXRvciIsCiAgIm5hbWUiOiAiV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiZXJpY2sucmVkQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2UtaW5kaWNhdG9yQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU5Cn0="}
+    "46": {"version": "60", "sha256": "19kqy6xfl8kxc4h1nn1gl979m6jk3c2s91hbrxjd2lvak3sap0wa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhbiBpbmRpY2F0b3Igb24gdGhlIHBhbmVsIHNpZ25hbGluZyBpbiB3aGljaCB3b3Jrc3BhY2UgeW91IGFyZSwgYW5kIGdpdmUgeW91IHRoZSBwb3NzaWJpbGl0eSBvZiBzd2l0Y2hpbmcgdG8gYW5vdGhlciBvbmUuIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24td29ya3NwYWNlLWluZGljYXRvciIsCiAgIm5hbWUiOiAiV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiZXJpY2sucmVkQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2UtaW5kaWNhdG9yQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYwCn0="}
   }}
 , {"uuid": "gTile@vibou", "name": "gTile", "pname": "gtile", "description": "Tile windows on a grid", "link": "https://extensions.gnome.org/extension/28/gtile/", "shell_version_map": {
     "38": {"version": "52", "sha256": "0j3mva9qzsz3nvww9d99ig5z4nr9g339lirmavfzry9yf8l29cwz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGdyaWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RpbGVAdmlib3UiLAogICJuYW1lIjogImdUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0aWxlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nVGlsZS9nVGlsZSIsCiAgInV1aWQiOiAiZ1RpbGVAdmlib3UiLAogICJ2ZXJzaW9uIjogNTIKfQ=="},
@@ -159,12 +159,14 @@
     "43": {"version": "23", "sha256": "13qk1s17b6gx9sqk85xp1mshnbqv9ch1v4im46cmcgp280r3ba3x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgVHJhc2ggYnV0dG9uIGZvciB0aGUgR05PTUUgc2hlbGwgcGFuZWwiLAogICJsb2NhbGVkaXIiOiAibG9jYWxlIiwKICAibmFtZSI6ICJUcmFzaCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiQXhlbCB2b24gQmVydG9sZGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYmVydG9sZGlhL2dub21lLXNoZWxsLXRyYXNoLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZ25vbWUtc2hlbGwtdHJhc2gtZXh0ZW5zaW9uIiwKICAidmVyc2lvbiI6IDIzCn0="},
     "44": {"version": "23", "sha256": "13qk1s17b6gx9sqk85xp1mshnbqv9ch1v4im46cmcgp280r3ba3x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgVHJhc2ggYnV0dG9uIGZvciB0aGUgR05PTUUgc2hlbGwgcGFuZWwiLAogICJsb2NhbGVkaXIiOiAibG9jYWxlIiwKICAibmFtZSI6ICJUcmFzaCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiQXhlbCB2b24gQmVydG9sZGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYmVydG9sZGlhL2dub21lLXNoZWxsLXRyYXNoLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZ25vbWUtc2hlbGwtdHJhc2gtZXh0ZW5zaW9uIiwKICAidmVyc2lvbiI6IDIzCn0="}
   }}
-, {"uuid": "RecentItems@bananenfisch.net", "name": "Recent Items", "pname": "recent-items", "description": "Adds an icon for recently used items at the top panel; clear list by click; left click: open file, right click: open containing folder; Settings for: number of items, number of items under \"more\" and blacklisting options are defined at the top of extension.js (see https://github.com/bananenfisch/RecentItems for more infos).", "link": "https://extensions.gnome.org/extension/72/recent-items/", "shell_version_map": {
+, {"uuid": "RecentItems@bananenfisch.net", "name": "Recent Items", "pname": "recent-items", "description": "Adds an icon for recently used items at the top panel\n(for now, there are no updates to extensions.gnome.org. see https://github.com/bananenfisch/RecentItems for details. to get the latest (working) version, you need to install it manually (until there is no better solution))", "link": "https://extensions.gnome.org/extension/72/recent-items/", "shell_version_map": {
     "40": {"version": "22", "sha256": "17xgw3iqcznlsfqjfs99bb5s1h7wlg37xjn9rar1hqpl7dsy84nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JhbmFuZW5maXNjaC9SZWNlbnRJdGVtcyIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMgp9"},
     "41": {"version": "22", "sha256": "17xgw3iqcznlsfqjfs99bb5s1h7wlg37xjn9rar1hqpl7dsy84nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JhbmFuZW5maXNjaC9SZWNlbnRJdGVtcyIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMgp9"},
     "42": {"version": "22", "sha256": "17xgw3iqcznlsfqjfs99bb5s1h7wlg37xjn9rar1hqpl7dsy84nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JhbmFuZW5maXNjaC9SZWNlbnRJdGVtcyIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMgp9"},
     "43": {"version": "22", "sha256": "17xgw3iqcznlsfqjfs99bb5s1h7wlg37xjn9rar1hqpl7dsy84nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JhbmFuZW5maXNjaC9SZWNlbnRJdGVtcyIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMgp9"},
-    "44": {"version": "23", "sha256": "0lmr3mwz5056s9fqhdphfyzv82liz28qimzb3wk9djp0s4xbd5f8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JhbmFuZW5maXNjaC9SZWNlbnRJdGVtcyIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMwp9"}
+    "44": {"version": "23", "sha256": "0lmr3mwz5056s9fqhdphfyzv82liz28qimzb3wk9djp0s4xbd5f8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JhbmFuZW5maXNjaC9SZWNlbnRJdGVtcyIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMwp9"},
+    "45": {"version": "26", "sha256": "077fkzly63x2cky0a19iq3qnwm095lgppvsxrd8lm96knyqaxygy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsIiwKICAibmFtZSI6ICJSZWNlbnQgSXRlbXMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucmVjZW50LWl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JhbmFuZW5maXNjaC9SZWNlbnRJdGVtcyIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyNgp9"},
+    "46": {"version": "27", "sha256": "0ldgkjwqmwagwljy6fl7c3j4krfqadg8pda8hi81z3q3lxmlk3q2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsIiwKICAibmFtZSI6ICJSZWNlbnQgSXRlbXMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucmVjZW50LWl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JhbmFuZW5maXNjaC9SZWNlbnRJdGVtcyIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyNwp9"}
   }}
 , {"uuid": "lockscreen@sri.ramkrishna.me", "name": "Lock Screen", "pname": "lock-screen", "description": "Add lock icon to the panel and lock the screen instead of using ctrl-alt-l", "link": "https://extensions.gnome.org/extension/83/lock-screen/", "shell_version_map": {
     "40": {"version": "14", "sha256": "1dh02rbq7pfvpjpgjq7rlx7lld2qhq602apn1g17hbxbcpdzz004", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsb2NrIGljb24gdG8gdGhlIHBhbmVsIGFuZCBsb2NrIHRoZSBzY3JlZW4gaW5zdGVhZCBvZiB1c2luZyBjdHJsLWFsdC1sIiwKICAibmFtZSI6ICJMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiNDAuMCIsCiAgICAiNDIuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NyYW1rcmlzaG5hL2dub21lMy1leHRlbnNpb25zIiwKICAidXVpZCI6ICJsb2Nrc2NyZWVuQHNyaS5yYW1rcmlzaG5hLm1lIiwKICAidmVyc2lvbiI6IDE0Cn0="},
@@ -178,7 +180,7 @@
     "43": {"version": "61", "sha256": "0bnwwvq73hn0p5qy2h9n7zq8wpna7wf3mx94i1p2mxkl4l2mv6f9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VtZW50IG9mIEFsdC1UYWIsIGl0ZXJhdGVzIHRocm91Z2ggd2luZG93cyBpbiBhIGNvdmVyLWZsb3cgbWFubmVyLiIsCiAgIm5hbWUiOiAiQ292ZXJmbG93IEFsdC1UYWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RtbzYwL0NvdmVyZmxvd0FsdFRhYiIsCiAgInV1aWQiOiAiQ292ZXJmbG93QWx0VGFiQHBhbGF0aXMuYmxvZ3Nwb3QuY29tIiwKICAidmVyc2lvbiI6IDYxCn0="},
     "44": {"version": "65", "sha256": "04ydnd74kyc38l0k4sc20g42c17p0k79gd5iknivwz7i6xx6hbx2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VtZW50IG9mIEFsdC1UYWIsIGl0ZXJhdGVzIHRocm91Z2ggd2luZG93cyBpbiBhIGNvdmVyLWZsb3cgbWFubmVyLiIsCiAgIm5hbWUiOiAiQ292ZXJmbG93IEFsdC1UYWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZG1vNjAvQ292ZXJmbG93QWx0VGFiIiwKICAidXVpZCI6ICJDb3ZlcmZsb3dBbHRUYWJAcGFsYXRpcy5ibG9nc3BvdC5jb20iLAogICJ2ZXJzaW9uIjogNjUKfQ=="},
     "45": {"version": "71", "sha256": "0agf21qyk576aa212w42hcn9vhpbsrjisrby0mfnw22giah9sf28", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VtZW50IG9mIEFsdC1UYWIsIGl0ZXJhdGVzIHRocm91Z2ggd2luZG93cyBpbiBhIGNvdmVyLWZsb3cgbWFubmVyLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiZHNoZWVsZXIiLAogICAgImxpYmVyYXBheSI6ICJkc2hlZWxlciIsCiAgICAicGF5cGFsIjogIkRhbmllbFNoZWVsZXIiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiQ292ZXJmbG93QWx0VGFiQHBhbGF0aXMuYmxvZ3Nwb3QuY29tIiwKICAibmFtZSI6ICJDb3ZlcmZsb3cgQWx0LVRhYiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb3ZlcmZsb3dhbHR0YWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZG1vNjAvQ292ZXJmbG93QWx0VGFiIiwKICAidXVpZCI6ICJDb3ZlcmZsb3dBbHRUYWJAcGFsYXRpcy5ibG9nc3BvdC5jb20iLAogICJ2ZXJzaW9uIjogNzEKfQ=="},
-    "46": {"version": "72", "sha256": "1pk29n3hx59lg8gcmv36xylqpqjrhdxmjzcl9f1ipbm2hkdczsic", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VtZW50IG9mIEFsdC1UYWIsIGl0ZXJhdGVzIHRocm91Z2ggd2luZG93cyBpbiBhIGNvdmVyLWZsb3cgbWFubmVyLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiZHNoZWVsZXIiLAogICAgImxpYmVyYXBheSI6ICJkc2hlZWxlciIsCiAgICAicGF5cGFsIjogIkRhbmllbFNoZWVsZXIiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiQ292ZXJmbG93QWx0VGFiQHBhbGF0aXMuYmxvZ3Nwb3QuY29tIiwKICAibmFtZSI6ICJDb3ZlcmZsb3cgQWx0LVRhYiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb3ZlcmZsb3dhbHR0YWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZG1vNjAvQ292ZXJmbG93QWx0VGFiIiwKICAidXVpZCI6ICJDb3ZlcmZsb3dBbHRUYWJAcGFsYXRpcy5ibG9nc3BvdC5jb20iLAogICJ2ZXJzaW9uIjogNzIKfQ=="}
+    "46": {"version": "73", "sha256": "1xxi587gla0cr5ry76m8a0iqprgy5kaf6njq7w5zgbgb7hj50vpy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VtZW50IG9mIEFsdC1UYWIsIGl0ZXJhdGVzIHRocm91Z2ggd2luZG93cyBpbiBhIGNvdmVyLWZsb3cgbWFubmVyLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiZHNoZWVsZXIiLAogICAgImxpYmVyYXBheSI6ICJkc2hlZWxlciIsCiAgICAicGF5cGFsIjogIkRhbmllbFNoZWVsZXIiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiQ292ZXJmbG93QWx0VGFiQHBhbGF0aXMuYmxvZ3Nwb3QuY29tIiwKICAibmFtZSI6ICJDb3ZlcmZsb3cgQWx0LVRhYiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb3ZlcmZsb3dhbHR0YWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZHNoZWVsZXIvQ292ZXJmbG93QWx0VGFiIiwKICAidXVpZCI6ICJDb3ZlcmZsb3dBbHRUYWJAcGFsYXRpcy5ibG9nc3BvdC5jb20iLAogICJ2ZXJzaW9uIjogNzMKfQ=="}
   }}
 , {"uuid": "netspeed@hedayaty.gmail.com", "name": "NetSpeed", "pname": "netspeed", "description": "Displays Internet Speed", "link": "https://extensions.gnome.org/extension/104/netspeed/", "shell_version_map": {
     "40": {"version": "34", "sha256": "04137rwnnf2mbp228wl9qjcix6i7757cqsdamabdrjwclg147vql", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIEludGVybmV0IFNwZWVkIiwKICAibmFtZSI6ICJOZXRTcGVlZCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJoZWRheWF0eUBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlZGF5YXR5L05ldFNwZWVkIiwKICAidXVpZCI6ICJuZXRzcGVlZEBoZWRheWF0eS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzQKfQ=="},
@@ -210,7 +212,7 @@
     "43": {"version": "104", "sha256": "1qsdr2jr0474z9hzcz1hk1hz10cq0v71f9p4zd4maxy0fqnsw84r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIFBlcnNpYW4gZGF0ZSBpbiB0aGUgdG9wIHBhbmVsLlxuXG5JdCBzaG93czpcbjEuIFBlcnNpYW4gY2FsZW5kYXJcbjIuIEl0IGNhbiBzaG93LCB0b2RheSBpcyBhIGhvbGlkYXkgb3Igbm90IVxuMy4gU2hvdyBub3RpZmljYXRpb24gb25EYXlDaGFuZ2VkIVxuNC4gRGF0ZSBjb252ZXJ0ZXIgYmV0d2VlbiBQZXJzaWFuLCBHcmVnb3JpYW4gYW5kIEx1bmFyIEhpanJpXG41LiBFdmVudHM6XG41LjEuIE9mZmljaWFsIHNvbGFyIGV2ZW50cy5cbjUuMi4gT2ZmaWNpYWwgbHVuYXIgZXZlbnRzLlxuNS4zLiBPZmZpY2lhbCBpbnRlcm5hdGlvbmFsIGV2ZW50cy5cbjUuNC4gVHJhZGl0aW9uYWwgUGVyc2lhbiBldmVudHMuXG41LjUuIFBlcnNpYW4gcGVyc29uYWdlcy5cblxuUGxlYXNlIFx1MjAxY3JhdGVcdTIwMWQgaGVyZSBhbmQgXHUyMDFjc3Rhclx1MjAxZCB0aGUgcHJvamVjdCBvbiBHaXRIdWIuXG5QbGVhc2Ugb3BlbiBhbiBpc3N1ZSBvbiBHaXRIdWIgaWYgeW91IGZvdW5kIHNvbWV0aGluZyBvciBoYXZlIGFuIGlkZWEhIiwKICAibmFtZSI6ICJQZXJzaWFuIENhbGVuZGFyIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJPbWlkIE1vdHRhZ2hpIFJhZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wZXJzaWFuLWNhbGVuZGFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb21pZC9QZXJzaWFuLUNhbGVuZGFyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiUGVyc2lhbkNhbGVuZGFyQG94eWdlbndzLmNvbSIsCiAgInZlcnNpb24iOiAxMDQKfQ=="},
     "44": {"version": "104", "sha256": "1qsdr2jr0474z9hzcz1hk1hz10cq0v71f9p4zd4maxy0fqnsw84r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIFBlcnNpYW4gZGF0ZSBpbiB0aGUgdG9wIHBhbmVsLlxuXG5JdCBzaG93czpcbjEuIFBlcnNpYW4gY2FsZW5kYXJcbjIuIEl0IGNhbiBzaG93LCB0b2RheSBpcyBhIGhvbGlkYXkgb3Igbm90IVxuMy4gU2hvdyBub3RpZmljYXRpb24gb25EYXlDaGFuZ2VkIVxuNC4gRGF0ZSBjb252ZXJ0ZXIgYmV0d2VlbiBQZXJzaWFuLCBHcmVnb3JpYW4gYW5kIEx1bmFyIEhpanJpXG41LiBFdmVudHM6XG41LjEuIE9mZmljaWFsIHNvbGFyIGV2ZW50cy5cbjUuMi4gT2ZmaWNpYWwgbHVuYXIgZXZlbnRzLlxuNS4zLiBPZmZpY2lhbCBpbnRlcm5hdGlvbmFsIGV2ZW50cy5cbjUuNC4gVHJhZGl0aW9uYWwgUGVyc2lhbiBldmVudHMuXG41LjUuIFBlcnNpYW4gcGVyc29uYWdlcy5cblxuUGxlYXNlIFx1MjAxY3JhdGVcdTIwMWQgaGVyZSBhbmQgXHUyMDFjc3Rhclx1MjAxZCB0aGUgcHJvamVjdCBvbiBHaXRIdWIuXG5QbGVhc2Ugb3BlbiBhbiBpc3N1ZSBvbiBHaXRIdWIgaWYgeW91IGZvdW5kIHNvbWV0aGluZyBvciBoYXZlIGFuIGlkZWEhIiwKICAibmFtZSI6ICJQZXJzaWFuIENhbGVuZGFyIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJPbWlkIE1vdHRhZ2hpIFJhZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wZXJzaWFuLWNhbGVuZGFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb21pZC9QZXJzaWFuLUNhbGVuZGFyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiUGVyc2lhbkNhbGVuZGFyQG94eWdlbndzLmNvbSIsCiAgInZlcnNpb24iOiAxMDQKfQ=="},
     "45": {"version": "107", "sha256": "1nkqfk7r6rvagfr5wvg5adxm5p70c0v61n8hc63cq8yrg4432jcl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIFBlcnNpYW4gZGF0ZSBpbiB0aGUgdG9wIHBhbmVsLlxuXG5JdCBzaG93czpcbjEuIFBlcnNpYW4gY2FsZW5kYXJcbjIuIEl0IGNhbiBzaG93LCB0b2RheSBpcyBhIGhvbGlkYXkgb3Igbm90IVxuMy4gU2hvdyBub3RpZmljYXRpb24gb25EYXlDaGFuZ2VkIVxuNC4gRGF0ZSBjb252ZXJ0ZXIgYmV0d2VlbiBQZXJzaWFuLCBHcmVnb3JpYW4gYW5kIEx1bmFyIEhpanJpXG41LiBFdmVudHM6XG41LjEuIE9mZmljaWFsIHNvbGFyIGV2ZW50cy5cbjUuMi4gT2ZmaWNpYWwgbHVuYXIgZXZlbnRzLlxuNS4zLiBPZmZpY2lhbCBpbnRlcm5hdGlvbmFsIGV2ZW50cy5cbjUuNC4gVHJhZGl0aW9uYWwgUGVyc2lhbiBldmVudHMuXG41LjUuIFBlcnNpYW4gcGVyc29uYWdlcy5cblxuUGxlYXNlIFx1MjAxY3JhdGVcdTIwMWQgaGVyZSBhbmQgXHUyMDFjc3Rhclx1MjAxZCB0aGUgcHJvamVjdCBvbiBHaXRIdWIuXG5QbGVhc2Ugb3BlbiBhbiBpc3N1ZSBvbiBHaXRIdWIgaWYgeW91IGZvdW5kIHNvbWV0aGluZyBvciBoYXZlIGFuIGlkZWEhIiwKICAibmFtZSI6ICJQZXJzaWFuIENhbGVuZGFyIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJPbWlkIE1vdHRhZ2hpIFJhZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wZXJzaWFuLWNhbGVuZGFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29taWQvUGVyc2lhbi1DYWxlbmRhci1mb3ItR25vbWUtU2hlbGwiLAogICJ1dWlkIjogIlBlcnNpYW5DYWxlbmRhckBveHlnZW53cy5jb20iLAogICJ2ZXJzaW9uIjogMTA3Cn0="},
-    "46": {"version": "110", "sha256": "0vgnnxng5983s0qz7v2g1mh25qy6ydvr8yc9jrsm11bz9ckysp52", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIFBlcnNpYW4gZGF0ZSBpbiB0aGUgdG9wIHBhbmVsLlxuXG5JdCBzaG93czpcbjEuIFBlcnNpYW4gY2FsZW5kYXJcbjIuIEl0IGNhbiBzaG93LCB0b2RheSBpcyBhIGhvbGlkYXkgb3Igbm90IVxuMy4gU2hvdyBub3RpZmljYXRpb24gb25EYXlDaGFuZ2VkIVxuNC4gRGF0ZSBjb252ZXJ0ZXIgYmV0d2VlbiBQZXJzaWFuLCBHcmVnb3JpYW4gYW5kIEx1bmFyIEhpanJpXG41LiBFdmVudHM6XG41LjEuIE9mZmljaWFsIHNvbGFyIGV2ZW50cy5cbjUuMi4gT2ZmaWNpYWwgbHVuYXIgZXZlbnRzLlxuNS4zLiBPZmZpY2lhbCBpbnRlcm5hdGlvbmFsIGV2ZW50cy5cbjUuNC4gVHJhZGl0aW9uYWwgUGVyc2lhbiBldmVudHMuXG41LjUuIFBlcnNpYW4gcGVyc29uYWdlcy5cblxuUGxlYXNlIFx1MjAxY3JhdGVcdTIwMWQgaGVyZSBhbmQgXHUyMDFjc3Rhclx1MjAxZCB0aGUgcHJvamVjdCBvbiBHaXRIdWIuXG5QbGVhc2Ugb3BlbiBhbiBpc3N1ZSBvbiBHaXRIdWIgaWYgeW91IGZvdW5kIHNvbWV0aGluZyBvciBoYXZlIGFuIGlkZWEhIiwKICAibmFtZSI6ICJQZXJzaWFuIENhbGVuZGFyIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJPbWlkIE1vdHRhZ2hpIFJhZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wZXJzaWFuLWNhbGVuZGFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29taWQvUGVyc2lhbi1DYWxlbmRhci1mb3ItR25vbWUtU2hlbGwiLAogICJ1dWlkIjogIlBlcnNpYW5DYWxlbmRhckBveHlnZW53cy5jb20iLAogICJ2ZXJzaW9uIjogMTEwCn0="}
+    "46": {"version": "112", "sha256": "12bd58qw950ajj2a5vj7zrjzlcnqw7jz0frna71b43qhcayvqql9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIFBlcnNpYW4gZGF0ZSBpbiB0aGUgdG9wIHBhbmVsLlxuXG5JdCBzaG93czpcbjEuIFBlcnNpYW4gY2FsZW5kYXJcbjIuIEl0IGNhbiBzaG93LCB0b2RheSBpcyBhIGhvbGlkYXkgb3Igbm90IVxuMy4gU2hvdyBub3RpZmljYXRpb24gb25EYXlDaGFuZ2VkIVxuNC4gRGF0ZSBjb252ZXJ0ZXIgYmV0d2VlbiBQZXJzaWFuLCBHcmVnb3JpYW4gYW5kIEx1bmFyIEhpanJpXG41LiBFdmVudHM6XG41LjEuIE9mZmljaWFsIHNvbGFyIGV2ZW50cy5cbjUuMi4gT2ZmaWNpYWwgbHVuYXIgZXZlbnRzLlxuNS4zLiBPZmZpY2lhbCBpbnRlcm5hdGlvbmFsIGV2ZW50cy5cbjUuNC4gVHJhZGl0aW9uYWwgUGVyc2lhbiBldmVudHMuXG41LjUuIFBlcnNpYW4gcGVyc29uYWdlcy5cblxuUGxlYXNlIFx1MjAxY3JhdGVcdTIwMWQgaGVyZSBhbmQgXHUyMDFjc3Rhclx1MjAxZCB0aGUgcHJvamVjdCBvbiBHaXRIdWIuXG5QbGVhc2Ugb3BlbiBhbiBpc3N1ZSBvbiBHaXRIdWIgaWYgeW91IGZvdW5kIHNvbWV0aGluZyBvciBoYXZlIGFuIGlkZWEhIiwKICAibmFtZSI6ICJQZXJzaWFuIENhbGVuZGFyIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJPbWlkIE1vdHRhZ2hpIFJhZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wZXJzaWFuLWNhbGVuZGFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29taWQvUGVyc2lhbi1DYWxlbmRhci1mb3ItR25vbWUtU2hlbGwiLAogICJ1dWlkIjogIlBlcnNpYW5DYWxlbmRhckBveHlnZW53cy5jb20iLAogICJ2ZXJzaW9uIjogMTEyCn0="}
   }}
 , {"uuid": "notifications-alert-on-user-menu@hackedbellini.gmail.com", "name": "Notifications Alert", "pname": "notifications-alert-on-user-menu", "description": "Changes the color of the time and date indicator in the top bar when there are unread notifications. Colors and blinking are customizable.\n\nIf you have questions, please take a look at the FAQ:\nhttp://goo.gl/lmwtW\n\nCredits: The idea of painting the message on user's menu was borrowed from 'Pidgin Persistent Notification' extension by nemo. The code itself has some parts forked from 'Message Notifier' extension by barisione, 'Media player indicator' extension by eon and convenience.js from git.gnome.org/gnome-shell-extensions. The blink idea and it's initial code was written by hossman. The initial gnome 3.10 support was done by Anthony25. The filtering support was done by ilgarmehmetali", "link": "https://extensions.gnome.org/extension/258/notifications-alert-on-user-menu/", "shell_version_map": {
     "40": {"version": "47", "sha256": "0pvm01r7x8cl8dww1bm491znlcrymcnq4ndrbfxjlvigdnk46pz8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW5ldmVyIHRoZXJlIGlzIGFuIHVucmVhZCBub3RpZmljYXRpb24gKGUuZy4gY2hhdCBtZXNzYWdlcyksIGJsaW5rcyB0aGUgbWVzc2FnZSBpbiB0aGUgdXNlcidzIG1lbnUgd2l0aCBhIGNvbG9yIGNob3NlbiBieSB0aGUgdXNlci5cblxuTm93IGNvbmZpZ3VyYWJsZSAoMy40KyBvbmx5KSEhIEFsZXJ0IGNvbG9yIGFuZCBibGluayByYXRlIGNhbiBiZSBjaGFuZ2VkIG9uIHNldHRpbmdzIDspXG5cbklmIHlvdSBoYXZlIGFueSBxdWVzdGlvbiwgYmUgc3VyZSB0byB0YWtlIGEgbG9vayBhdCB0aGUgRkFROlxuaHR0cDovL2dvby5nbC9sbXd0VyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLW5vdGlmaWNhdGlvbnMtYWxlcnQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbnMgQWxlcnQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIlRoaWFnbyBCZWxsaW5pIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3RpZmljYXRpb25zLWFsZXJ0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iZWxsaW5pNjY2L2dub21lLXNoZWxsLW5vdGlmaWNhdGlvbnMtYWxlcnQiLAogICJ1dWlkIjogIm5vdGlmaWNhdGlvbnMtYWxlcnQtb24tdXNlci1tZW51QGhhY2tlZGJlbGxpbmkuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQ3Cn0="},
@@ -227,8 +229,8 @@
     "42": {"version": "76", "sha256": "0p615amdp1fh6k7ci7m2j4fr3z3fc94jpm0nqwwp6m51phbi386n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbmd4dC9nbm9tZS1zaGVsbC1leHRlbnNpb24ta2ltcGFuZWwiLAogICJ1dWlkIjogImtpbXBhbmVsQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogNzYKfQ=="},
     "43": {"version": "76", "sha256": "0p615amdp1fh6k7ci7m2j4fr3z3fc94jpm0nqwwp6m51phbi386n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbmd4dC9nbm9tZS1zaGVsbC1leHRlbnNpb24ta2ltcGFuZWwiLAogICJ1dWlkIjogImtpbXBhbmVsQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogNzYKfQ=="},
     "44": {"version": "76", "sha256": "0p615amdp1fh6k7ci7m2j4fr3z3fc94jpm0nqwwp6m51phbi386n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbmd4dC9nbm9tZS1zaGVsbC1leHRlbnNpb24ta2ltcGFuZWwiLAogICJ1dWlkIjogImtpbXBhbmVsQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogNzYKfQ=="},
-    "45": {"version": "80", "sha256": "04lcvlhvip4144mb9zwzipd475rqff79faqx363jmmrbb9pra0c3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbmd4dC9nbm9tZS1zaGVsbC1leHRlbnNpb24ta2ltcGFuZWwiLAogICJ1dWlkIjogImtpbXBhbmVsQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogODAKfQ=="},
-    "46": {"version": "80", "sha256": "04lcvlhvip4144mb9zwzipd475rqff79faqx363jmmrbb9pra0c3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbmd4dC9nbm9tZS1zaGVsbC1leHRlbnNpb24ta2ltcGFuZWwiLAogICJ1dWlkIjogImtpbXBhbmVsQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogODAKfQ=="}
+    "45": {"version": "82", "sha256": "100rmmp53r2lbwpgyj8giyx5l2i7yl2hfs5qpcrs4m5a56s74wjs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbmd4dC9nbm9tZS1zaGVsbC1leHRlbnNpb24ta2ltcGFuZWwiLAogICJ1dWlkIjogImtpbXBhbmVsQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogODIKfQ=="},
+    "46": {"version": "82", "sha256": "100rmmp53r2lbwpgyj8giyx5l2i7yl2hfs5qpcrs4m5a56s74wjs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbmd4dC9nbm9tZS1zaGVsbC1leHRlbnNpb24ta2ltcGFuZWwiLAogICJ1dWlkIjogImtpbXBhbmVsQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogODIKfQ=="}
   }}
 , {"uuid": "impatience@gfxmonk.net", "name": "Impatience", "pname": "impatience", "description": "Speed up the gnome-shell animation speed", "link": "https://extensions.gnome.org/extension/277/impatience/", "shell_version_map": {
     "40": {"version": "22", "sha256": "1npc0y8bf5rrwl1v55hlf213pd5vp8wrj6qyhp2yhvz6km1ib6q2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNwZWVkIHVwIHRoZSBnbm9tZS1zaGVsbCBhbmltYXRpb24gc3BlZWQiLAogICJuYW1lIjogIkltcGF0aWVuY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dmeG1vbmsubmV0L2Rpc3QvMGluc3RhbGwvZ25vbWUtc2hlbGwtaW1wYXRpZW5jZS54bWwiLAogICJ1dWlkIjogImltcGF0aWVuY2VAZ2Z4bW9uay5uZXQiLAogICJ2ZXJzaW9uIjogMjIKfQ=="},
@@ -249,8 +251,8 @@
     "42": {"version": "84", "sha256": "0a62pmg5jwp812nxb4gsxw2m0jn7p5l3y9m7a57zxzk6cy831asi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9taWNoZWxlZy5naXRodWIuaW8vZGFzaC10by1kb2NrLyIsCiAgInV1aWQiOiAiZGFzaC10by1kb2NrQG1pY3hneC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogODQKfQ=="},
     "43": {"version": "84", "sha256": "0a62pmg5jwp812nxb4gsxw2m0jn7p5l3y9m7a57zxzk6cy831asi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9taWNoZWxlZy5naXRodWIuaW8vZGFzaC10by1kb2NrLyIsCiAgInV1aWQiOiAiZGFzaC10by1kb2NrQG1pY3hneC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogODQKfQ=="},
     "44": {"version": "84", "sha256": "0a62pmg5jwp812nxb4gsxw2m0jn7p5l3y9m7a57zxzk6cy831asi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9taWNoZWxlZy5naXRodWIuaW8vZGFzaC10by1kb2NrLyIsCiAgInV1aWQiOiAiZGFzaC10by1kb2NrQG1pY3hneC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogODQKfQ=="},
-    "45": {"version": "91", "sha256": "1knv9lcyc4cym9iphhijdm4ldnwly7kzdj3wywpkhnb0hn3ng95d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9taWNoZWxlZy5naXRodWIuaW8vZGFzaC10by1kb2NrLyIsCiAgInV1aWQiOiAiZGFzaC10by1kb2NrQG1pY3hneC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOTEKfQ=="},
-    "46": {"version": "91", "sha256": "1knv9lcyc4cym9iphhijdm4ldnwly7kzdj3wywpkhnb0hn3ng95d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9taWNoZWxlZy5naXRodWIuaW8vZGFzaC10by1kb2NrLyIsCiAgInV1aWQiOiAiZGFzaC10by1kb2NrQG1pY3hneC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOTEKfQ=="}
+    "45": {"version": "92", "sha256": "0d0xv1q4b75f2ry6hfrzpb1wmbxcpzcr39q4qm9qx3qp0i2b3ix3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9taWNoZWxlZy5naXRodWIuaW8vZGFzaC10by1kb2NrLyIsCiAgInV1aWQiOiAiZGFzaC10by1kb2NrQG1pY3hneC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOTIKfQ=="},
+    "46": {"version": "92", "sha256": "0d0xv1q4b75f2ry6hfrzpb1wmbxcpzcr39q4qm9qx3qp0i2b3ix3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9taWNoZWxlZy5naXRodWIuaW8vZGFzaC10by1kb2NrLyIsCiAgInV1aWQiOiAiZGFzaC10by1kb2NrQG1pY3hneC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOTIKfQ=="}
   }}
 , {"uuid": "mythtv-fnx@fnxweb.com", "name": "MythTV", "pname": "mythtv", "description": "Displays MythTV status (free space and upcoming recordings)", "link": "https://extensions.gnome.org/extension/321/mythtv/", "shell_version_map": {
     "38": {"version": "10", "sha256": "070h11gk5zpxn5xbc71skdz174hbb72l0isia2vp7d9wy4ackl0k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIE15dGhUViBzdGF0dXMgKGZyZWUgc3BhY2UgYW5kIHVwY29taW5nIHJlY29yZGluZ3MpIiwKICAibmFtZSI6ICJNeXRoVFYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mbnh3ZWIvZ25vbWUtc2hlbGwtbXl0aHR2IiwKICAidXVpZCI6ICJteXRodHYtZm54QGZueHdlYi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
@@ -326,7 +328,8 @@
     "41": {"version": "24", "sha256": "0zg9gwk93a7vxsh2ybbw550id9brcaxhcjzy5knj0h0rz7i1k2ik", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcDkxcGF1bC9CYWNrU2xpZGUiLAogICJ1dWlkIjogImJhY2tzbGlkZUBjb2RlaXNsYW5kLm9yZyIsCiAgInZlcnNpb24iOiAyNAp9"},
     "42": {"version": "26", "sha256": "09qd7az18fr9l67v00fxgpnzfwwn7qlz1r274rgsnsi6wjxd50qv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9wOTFwYXVsL0JhY2tTbGlkZSIsCiAgInV1aWQiOiAiYmFja3NsaWRlQGNvZGVpc2xhbmQub3JnIiwKICAidmVyc2lvbiI6IDI2Cn0="},
     "43": {"version": "28", "sha256": "0436dfcm4j7kgiz83hkkwg1p0mcq5x5if5xvbx693lm9qvisw09k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcDkxcGF1bC9CYWNrU2xpZGUiLAogICJ1dWlkIjogImJhY2tzbGlkZUBjb2RlaXNsYW5kLm9yZyIsCiAgInZlcnNpb24iOiAyOAp9"},
-    "44": {"version": "28", "sha256": "0436dfcm4j7kgiz83hkkwg1p0mcq5x5if5xvbx693lm9qvisw09k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcDkxcGF1bC9CYWNrU2xpZGUiLAogICJ1dWlkIjogImJhY2tzbGlkZUBjb2RlaXNsYW5kLm9yZyIsCiAgInZlcnNpb24iOiAyOAp9"}
+    "44": {"version": "28", "sha256": "0436dfcm4j7kgiz83hkkwg1p0mcq5x5if5xvbx693lm9qvisw09k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcDkxcGF1bC9CYWNrU2xpZGUiLAogICJ1dWlkIjogImJhY2tzbGlkZUBjb2RlaXNsYW5kLm9yZyIsCiAgInZlcnNpb24iOiAyOAp9"},
+    "46": {"version": "32", "sha256": "1kab8y5q3x9vqi3ih4i1h17c5y3pkyvyb6w6x8ckfjnhb8bwpbdf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYWNrc2xpZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcDkxcGF1bC9CYWNrU2xpZGUiLAogICJ1dWlkIjogImJhY2tzbGlkZUBjb2RlaXNsYW5kLm9yZyIsCiAgInZlcnNpb24iOiAzMgp9"}
   }}
 , {"uuid": "historymanager-prefix-search@sustmidown.centrum.cz", "name": "History Manager Prefix Search", "pname": "historymanager-prefix-search", "description": "Use PageUp and PageDown to move in HistoryManager (eg. Run Command, Looking Glass) according to prefix", "link": "https://extensions.gnome.org/extension/544/historymanager-prefix-search/", "shell_version_map": {
     "40": {"version": "18", "sha256": "0qhwdpdnxs3drda29zdb3vy8d7djb55i9a0d9a9rar3wqlncpbny", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBQYWdlVXAgYW5kIFBhZ2VEb3duIHRvIG1vdmUgaW4gSGlzdG9yeU1hbmFnZXIgKGVnLiBSdW4gQ29tbWFuZCwgTG9va2luZyBHbGFzcykgYWNjb3JkaW5nIHRvIHByZWZpeCIsCiAgImdldHRleHQtZG9tYWluIjogImhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJuYW1lIjogIkhpc3RvcnkgTWFuYWdlciBQcmVmaXggU2VhcmNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1c3RtaS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaCIsCiAgInV1aWQiOiAiaGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaEBzdXN0bWlkb3duLmNlbnRydW0uY3oiLAogICJ2ZXJzaW9uIjogMTgKfQ=="},
@@ -334,7 +337,8 @@
     "42": {"version": "18", "sha256": "0qhwdpdnxs3drda29zdb3vy8d7djb55i9a0d9a9rar3wqlncpbny", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBQYWdlVXAgYW5kIFBhZ2VEb3duIHRvIG1vdmUgaW4gSGlzdG9yeU1hbmFnZXIgKGVnLiBSdW4gQ29tbWFuZCwgTG9va2luZyBHbGFzcykgYWNjb3JkaW5nIHRvIHByZWZpeCIsCiAgImdldHRleHQtZG9tYWluIjogImhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJuYW1lIjogIkhpc3RvcnkgTWFuYWdlciBQcmVmaXggU2VhcmNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1c3RtaS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaCIsCiAgInV1aWQiOiAiaGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaEBzdXN0bWlkb3duLmNlbnRydW0uY3oiLAogICJ2ZXJzaW9uIjogMTgKfQ=="},
     "43": {"version": "18", "sha256": "0qhwdpdnxs3drda29zdb3vy8d7djb55i9a0d9a9rar3wqlncpbny", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBQYWdlVXAgYW5kIFBhZ2VEb3duIHRvIG1vdmUgaW4gSGlzdG9yeU1hbmFnZXIgKGVnLiBSdW4gQ29tbWFuZCwgTG9va2luZyBHbGFzcykgYWNjb3JkaW5nIHRvIHByZWZpeCIsCiAgImdldHRleHQtZG9tYWluIjogImhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJuYW1lIjogIkhpc3RvcnkgTWFuYWdlciBQcmVmaXggU2VhcmNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1c3RtaS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaCIsCiAgInV1aWQiOiAiaGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaEBzdXN0bWlkb3duLmNlbnRydW0uY3oiLAogICJ2ZXJzaW9uIjogMTgKfQ=="},
     "44": {"version": "18", "sha256": "0qhwdpdnxs3drda29zdb3vy8d7djb55i9a0d9a9rar3wqlncpbny", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBQYWdlVXAgYW5kIFBhZ2VEb3duIHRvIG1vdmUgaW4gSGlzdG9yeU1hbmFnZXIgKGVnLiBSdW4gQ29tbWFuZCwgTG9va2luZyBHbGFzcykgYWNjb3JkaW5nIHRvIHByZWZpeCIsCiAgImdldHRleHQtZG9tYWluIjogImhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJuYW1lIjogIkhpc3RvcnkgTWFuYWdlciBQcmVmaXggU2VhcmNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1c3RtaS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaCIsCiAgInV1aWQiOiAiaGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaEBzdXN0bWlkb3duLmNlbnRydW0uY3oiLAogICJ2ZXJzaW9uIjogMTgKfQ=="},
-    "45": {"version": "20", "sha256": "03bph5g6wzb0ln0ligbv40v35gqjyvy2ikn08dlx0m6yhwfxcibp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBQYWdlVXAgYW5kIFBhZ2VEb3duIHRvIG1vdmUgaW4gSGlzdG9yeU1hbmFnZXIgKGVnLiBSdW4gQ29tbWFuZCwgTG9va2luZyBHbGFzcykgYWNjb3JkaW5nIHRvIHByZWZpeCIsCiAgImdldHRleHQtZG9tYWluIjogImhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJuYW1lIjogIkhpc3RvcnkgTWFuYWdlciBQcmVmaXggU2VhcmNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3VzdG1pL2dub21lLXNoZWxsLWV4dGVuc2lvbi1oaXN0b3J5bWFuYWdlci1wcmVmaXgtc2VhcmNoIiwKICAidXVpZCI6ICJoaXN0b3J5bWFuYWdlci1wcmVmaXgtc2VhcmNoQHN1c3RtaWRvd24uY2VudHJ1bS5jeiIsCiAgInZlcnNpb24iOiAyMAp9"}
+    "45": {"version": "21", "sha256": "17wy4g7sa2j1bf85n1bnk1v6jwns4iv4y8b5vlb59ldm57i54h3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBQYWdlVXAgYW5kIFBhZ2VEb3duIHRvIG1vdmUgaW4gSGlzdG9yeU1hbmFnZXIgKGVnLiBSdW4gQ29tbWFuZCwgTG9va2luZyBHbGFzcykgYWNjb3JkaW5nIHRvIHByZWZpeCIsCiAgImdldHRleHQtZG9tYWluIjogImhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJuYW1lIjogIkhpc3RvcnkgTWFuYWdlciBQcmVmaXggU2VhcmNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1c3RtaS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaCIsCiAgInV1aWQiOiAiaGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaEBzdXN0bWlkb3duLmNlbnRydW0uY3oiLAogICJ2ZXJzaW9uIjogMjEKfQ=="},
+    "46": {"version": "21", "sha256": "17wy4g7sa2j1bf85n1bnk1v6jwns4iv4y8b5vlb59ldm57i54h3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBQYWdlVXAgYW5kIFBhZ2VEb3duIHRvIG1vdmUgaW4gSGlzdG9yeU1hbmFnZXIgKGVnLiBSdW4gQ29tbWFuZCwgTG9va2luZyBHbGFzcykgYWNjb3JkaW5nIHRvIHByZWZpeCIsCiAgImdldHRleHQtZG9tYWluIjogImhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJuYW1lIjogIkhpc3RvcnkgTWFuYWdlciBQcmVmaXggU2VhcmNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1c3RtaS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaCIsCiAgInV1aWQiOiAiaGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaEBzdXN0bWlkb3duLmNlbnRydW0uY3oiLAogICJ2ZXJzaW9uIjogMjEKfQ=="}
   }}
 , {"uuid": "hidetopbar@mathieu.bidon.ca", "name": "Hide Top Bar", "pname": "hide-top-bar", "description": "Hides the top bar, except in overview. However, there is an option to show the panel whenever the mouse pointer approaches the edge of the screen. And if \"intellihide\" is enabled, the panel only hides when a window takes the space.\n\n- Press backspace to remove keyboard shortcut.\n- Log off and on again when there is an error after upgrading.", "link": "https://extensions.gnome.org/extension/545/hide-top-bar/", "shell_version_map": {
     "38": {"version": "114", "sha256": "07mqqya5vpfs3bf7823ir3c23rjpn81l58m8r5nas3i2ggxsgfln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvdHV4b3IxMzM3L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiAxMTQKfQ=="},
@@ -343,7 +347,8 @@
     "42": {"version": "114", "sha256": "07mqqya5vpfs3bf7823ir3c23rjpn81l58m8r5nas3i2ggxsgfln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvdHV4b3IxMzM3L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiAxMTQKfQ=="},
     "43": {"version": "114", "sha256": "07mqqya5vpfs3bf7823ir3c23rjpn81l58m8r5nas3i2ggxsgfln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvdHV4b3IxMzM3L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiAxMTQKfQ=="},
     "44": {"version": "114", "sha256": "07mqqya5vpfs3bf7823ir3c23rjpn81l58m8r5nas3i2ggxsgfln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvdHV4b3IxMzM3L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiAxMTQKfQ=="},
-    "45": {"version": "116", "sha256": "0ymr8lrlxsv25b7c9wskkjqd8girkbwfvl3p9kwq4vklrphz1kr8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGlkZXRvcGJhckBtYXRoaWV1LmJpZG9uLmNhIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy90dXhvcjEzMzcvaGlkZXRvcGJhciIsCiAgInV1aWQiOiAiaGlkZXRvcGJhckBtYXRoaWV1LmJpZG9uLmNhIiwKICAidmVyc2lvbiI6IDExNgp9"}
+    "45": {"version": "117", "sha256": "1hb3g8r0hwrmymni2klzmb3chc9z9vddiqkavlc10hcrbhi8qs60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGlkZXRvcGJhckBtYXRoaWV1LmJpZG9uLmNhIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvdHV4b3IxMzM3L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiAxMTcKfQ=="},
+    "46": {"version": "117", "sha256": "1hb3g8r0hwrmymni2klzmb3chc9z9vddiqkavlc10hcrbhi8qs60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGlkZXRvcGJhckBtYXRoaWV1LmJpZG9uLmNhIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvdHV4b3IxMzM3L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiAxMTcKfQ=="}
   }}
 , {"uuid": "hdate@hatul.info", "name": "Gnome HDate", "pname": "gnome-hdate", "description": "Show Hebrew Date in the Panel.\nRequires libhdate-glib", "link": "https://extensions.gnome.org/extension/554/gnome-hdate/", "shell_version_map": {
     "40": {"version": "25", "sha256": "0nxn93jxagzld6x0rxi56q1y8lcjzh2p82jhxli90cg940w38jj9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSGVicmV3IERhdGUgaW4gdGhlIFBhbmVsLlxuUmVxdWlyZXMgbGliaGRhdGUtZ2xpYiIsCiAgIm5hbWUiOiAiR25vbWUgSERhdGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWlhZC9nbm9tZS1oZGF0ZSIsCiAgInV1aWQiOiAiaGRhdGVAaGF0dWwuaW5mbyIsCiAgInZlcnNpb24iOiAyNQp9"},
@@ -359,7 +364,8 @@
     "42": {"version": "37", "sha256": "19n83bachj4b6lvfsp6j4gpgm9wahxlz1is2954hw4d45m5yzfbn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vdG9kby50eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi8tL2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5tZCIsCiAgIm5hbWUiOiAiVG9kby50eHQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3RvZG8udHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi90b2RvLXR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInRvZG8udHh0QGJhcnQubGliZXJ0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzNwp9"},
     "43": {"version": "40", "sha256": "0ly27qxr126ffhpx8hvvyz6q2179kpq1q7hjy1wja6zflwcc94jf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vdG9kby50eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi8tL2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5tZCIsCiAgImdldHRleHQtZG9tYWluIjogInRvZG90eHQiLAogICJuYW1lIjogIlRvZG8udHh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS90b2RvLnR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24vdG9kby10eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0b2RvLnR4dEBiYXJ0LmxpYmVydC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDAKfQ=="},
     "44": {"version": "40", "sha256": "0ly27qxr126ffhpx8hvvyz6q2179kpq1q7hjy1wja6zflwcc94jf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vdG9kby50eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi8tL2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5tZCIsCiAgImdldHRleHQtZG9tYWluIjogInRvZG90eHQiLAogICJuYW1lIjogIlRvZG8udHh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS90b2RvLnR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24vdG9kby10eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0b2RvLnR4dEBiYXJ0LmxpYmVydC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDAKfQ=="},
-    "45": {"version": "43", "sha256": "1xmsvsi23gl44nz6ldgyfp086711m155vz69md3dch1d3ilfhq1h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vdG9kby50eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi8tL2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5tZCIsCiAgImdldHRleHQtZG9tYWluIjogInRvZG90eHQiLAogICJuYW1lIjogIlRvZG8udHh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3RvZG8udHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi90b2RvLXR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInRvZG8udHh0QGJhcnQubGliZXJ0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0Mwp9"}
+    "45": {"version": "43", "sha256": "1xmsvsi23gl44nz6ldgyfp086711m155vz69md3dch1d3ilfhq1h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vdG9kby50eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi8tL2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5tZCIsCiAgImdldHRleHQtZG9tYWluIjogInRvZG90eHQiLAogICJuYW1lIjogIlRvZG8udHh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3RvZG8udHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi90b2RvLXR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInRvZG8udHh0QGJhcnQubGliZXJ0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0Mwp9"},
+    "46": {"version": "44", "sha256": "0yzzvw9xlqmwh543j5g9v1g3avbpsz5kngfdnrg70yyxslr6ahm1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vdG9kby50eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi8tL2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5tZCIsCiAgImdldHRleHQtZG9tYWluIjogInRvZG90eHQiLAogICJuYW1lIjogIlRvZG8udHh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3RvZG8udHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi90b2RvLXR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInRvZG8udHh0QGJhcnQubGliZXJ0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0NAp9"}
   }}
 , {"uuid": "text_translator@awamper.gmail.com", "name": "Text Translator", "pname": "text-translator", "description": "** Needs the package translate-shell **\nTranslation of the text by different translators (currently Google.Translate, Yandex.Translate).\nShortcuts:\nSuper+T - open translator dialog.\nSuper+Shift+T - open translator dialog and translate text from clipboard.\nSuper+Alt+T - open translator dialog and translate from primary selection.\nCtrl+Enter+ - Translate text.\nCtrl+Shift+C - copy translated text to clipboard.\nCtrl+S - swap languages.\nCtrl+D - reset languages to default\nTab+ - toggle transliteration of result text.", "link": "https://extensions.gnome.org/extension/593/text-translator/", "shell_version_map": {
     "38": {"version": "36", "sha256": "1idzgg4vb791k5dryjvznr6mfwfx59vlgabw2n3spysbwvjv2a48", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIioqIE5lZWRzIHRoZSBwYWNrYWdlIHRyYW5zbGF0ZS1zaGVsbCAqKlxuVHJhbnNsYXRpb24gb2YgdGhlIHRleHQgYnkgZGlmZmVyZW50IHRyYW5zbGF0b3JzIChjdXJyZW50bHkgR29vZ2xlLlRyYW5zbGF0ZSwgWWFuZGV4LlRyYW5zbGF0ZSkuXG5TaG9ydGN1dHM6XG5TdXBlcitUIC0gb3BlbiB0cmFuc2xhdG9yIGRpYWxvZy5cblN1cGVyK1NoaWZ0K1QgLSBvcGVuIHRyYW5zbGF0b3IgZGlhbG9nIGFuZCB0cmFuc2xhdGUgdGV4dCBmcm9tIGNsaXBib2FyZC5cblN1cGVyK0FsdCtUIC0gb3BlbiB0cmFuc2xhdG9yIGRpYWxvZyBhbmQgdHJhbnNsYXRlIGZyb20gcHJpbWFyeSBzZWxlY3Rpb24uXG5DdHJsK0VudGVyKyAtIFRyYW5zbGF0ZSB0ZXh0LlxuQ3RybCtTaGlmdCtDIC0gY29weSB0cmFuc2xhdGVkIHRleHQgdG8gY2xpcGJvYXJkLlxuQ3RybCtTIC0gc3dhcCBsYW5ndWFnZXMuXG5DdHJsK0QgLSByZXNldCBsYW5ndWFnZXMgdG8gZGVmYXVsdFxuVGFiKyAtIHRvZ2dsZSB0cmFuc2xpdGVyYXRpb24gb2YgcmVzdWx0IHRleHQuIiwKICAibmFtZSI6ICJUZXh0IFRyYW5zbGF0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGV4dC10cmFuc2xhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ3Vmb2UvdGV4dC10cmFuc2xhdG9yIiwKICAidXVpZCI6ICJ0ZXh0X3RyYW5zbGF0b3JAYXdhbXBlci5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzYKfQ=="}
@@ -370,8 +376,8 @@
     "42": {"version": "41", "sha256": "071m9z08bipyjfbvzyd00cdd0qrjz8ix6p2rjkqcjqgv102hldb7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYmF0dGVyeSBpY29uIGluIHRvcCBwYW5lbCwgaWYgYmF0dGVyeSBpcyBmdWxseSBjaGFyZ2VkIGFuZCBBQyBpcyBjb25uZWN0ZWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhdXRvaGlkZS1iYXR0ZXJ5IiwKICAibmFtZSI6ICJBdXRvaGlkZSBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9haS9hdXRvaGlkZS1iYXR0ZXJ5IiwKICAidXVpZCI6ICJhdXRvaGlkZS1iYXR0ZXJ5QHNpdG5pay5ydSIsCiAgInZlcnNpb24iOiA0MQp9"},
     "43": {"version": "41", "sha256": "071m9z08bipyjfbvzyd00cdd0qrjz8ix6p2rjkqcjqgv102hldb7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYmF0dGVyeSBpY29uIGluIHRvcCBwYW5lbCwgaWYgYmF0dGVyeSBpcyBmdWxseSBjaGFyZ2VkIGFuZCBBQyBpcyBjb25uZWN0ZWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhdXRvaGlkZS1iYXR0ZXJ5IiwKICAibmFtZSI6ICJBdXRvaGlkZSBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9haS9hdXRvaGlkZS1iYXR0ZXJ5IiwKICAidXVpZCI6ICJhdXRvaGlkZS1iYXR0ZXJ5QHNpdG5pay5ydSIsCiAgInZlcnNpb24iOiA0MQp9"},
     "44": {"version": "41", "sha256": "071m9z08bipyjfbvzyd00cdd0qrjz8ix6p2rjkqcjqgv102hldb7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYmF0dGVyeSBpY29uIGluIHRvcCBwYW5lbCwgaWYgYmF0dGVyeSBpcyBmdWxseSBjaGFyZ2VkIGFuZCBBQyBpcyBjb25uZWN0ZWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhdXRvaGlkZS1iYXR0ZXJ5IiwKICAibmFtZSI6ICJBdXRvaGlkZSBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9haS9hdXRvaGlkZS1iYXR0ZXJ5IiwKICAidXVpZCI6ICJhdXRvaGlkZS1iYXR0ZXJ5QHNpdG5pay5ydSIsCiAgInZlcnNpb24iOiA0MQp9"},
-    "45": {"version": "48", "sha256": "0rg6i3xav0sb3j6ihqc6v0kchhsy1r7vr3ipp8cphrmif2brn0dp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYmF0dGVyeSBpY29uIGluIHRvcCBwYW5lbCwgaWYgYmF0dGVyeSBpcyBmdWxseSBjaGFyZ2VkIGFuZCBBQyBpcyBjb25uZWN0ZWQiLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImFpIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImF1dG9oaWRlLWJhdHRlcnkiLAogICJuYW1lIjogIkF1dG9oaWRlIEJhdHRlcnkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXV0b2hpZGUtYmF0dGVyeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWkvYXV0b2hpZGUtYmF0dGVyeSIsCiAgInV1aWQiOiAiYXV0b2hpZGUtYmF0dGVyeUBzaXRuaWsucnUiLAogICJ2ZXJzaW9uIjogNDgKfQ=="},
-    "46": {"version": "48", "sha256": "0rg6i3xav0sb3j6ihqc6v0kchhsy1r7vr3ipp8cphrmif2brn0dp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYmF0dGVyeSBpY29uIGluIHRvcCBwYW5lbCwgaWYgYmF0dGVyeSBpcyBmdWxseSBjaGFyZ2VkIGFuZCBBQyBpcyBjb25uZWN0ZWQiLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImFpIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImF1dG9oaWRlLWJhdHRlcnkiLAogICJuYW1lIjogIkF1dG9oaWRlIEJhdHRlcnkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXV0b2hpZGUtYmF0dGVyeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWkvYXV0b2hpZGUtYmF0dGVyeSIsCiAgInV1aWQiOiAiYXV0b2hpZGUtYmF0dGVyeUBzaXRuaWsucnUiLAogICJ2ZXJzaW9uIjogNDgKfQ=="}
+    "45": {"version": "51", "sha256": "1hw26s9az5njfdzj6dmjrmbf4h7da3hgsacsb3jyin9id7pznpmc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYmF0dGVyeSBpY29uIGluIHRvcCBwYW5lbCwgaWYgYmF0dGVyeSBpcyBmdWxseSBjaGFyZ2VkIGFuZCBBQyBpcyBjb25uZWN0ZWQiLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImFpIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImF1dG9oaWRlLWJhdHRlcnkiLAogICJuYW1lIjogIkF1dG9oaWRlIEJhdHRlcnkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXV0b2hpZGUtYmF0dGVyeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWkvYXV0b2hpZGUtYmF0dGVyeSIsCiAgInV1aWQiOiAiYXV0b2hpZGUtYmF0dGVyeUBzaXRuaWsucnUiLAogICJ2ZXJzaW9uIjogNTEKfQ=="},
+    "46": {"version": "51", "sha256": "1hw26s9az5njfdzj6dmjrmbf4h7da3hgsacsb3jyin9id7pznpmc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYmF0dGVyeSBpY29uIGluIHRvcCBwYW5lbCwgaWYgYmF0dGVyeSBpcyBmdWxseSBjaGFyZ2VkIGFuZCBBQyBpcyBjb25uZWN0ZWQiLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImFpIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImF1dG9oaWRlLWJhdHRlcnkiLAogICJuYW1lIjogIkF1dG9oaWRlIEJhdHRlcnkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXV0b2hpZGUtYmF0dGVyeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWkvYXV0b2hpZGUtYmF0dGVyeSIsCiAgInV1aWQiOiAiYXV0b2hpZGUtYmF0dGVyeUBzaXRuaWsucnUiLAogICJ2ZXJzaW9uIjogNTEKfQ=="}
   }}
 , {"uuid": "launch-new-instance@gnome-shell-extensions.gcampax.github.com", "name": "Launch new instance", "pname": "launch-new-instance", "description": "Always launch a new instance when clicking in the dash or the application view.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.", "link": "https://extensions.gnome.org/extension/600/launch-new-instance/", "shell_version_map": {
     "38": {"version": "29", "sha256": "0qb1ajjwm076zxsd314n7f5vl72ih7j4h9y84bqwb9cxa53mp4g4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBsYXVuY2ggYSBuZXcgaW5zdGFuY2Ugd2hlbiBjbGlja2luZyBpbiB0aGUgZGFzaCBvciB0aGUgYXBwbGljYXRpb24gdmlldy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImxhdW5jaC1uZXctaW5zdGFuY2UiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJMYXVuY2ggbmV3IGluc3RhbmNlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxhdW5jaC1uZXctaW5zdGFuY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJsYXVuY2gtbmV3LWluc3RhbmNlQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI5Cn0="},
@@ -381,7 +387,7 @@
     "43": {"version": "35", "sha256": "1i96p4jzi3yfkccbzv7r7x059xr834wispzg1n2888im51zz6x4h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBsYXVuY2ggYSBuZXcgaW5zdGFuY2Ugd2hlbiBjbGlja2luZyBpbiB0aGUgZGFzaCBvciB0aGUgYXBwbGljYXRpb24gdmlldy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImxhdW5jaC1uZXctaW5zdGFuY2UiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGF1bmNoLW5ldy1pbnN0YW5jZSIsCiAgIm5hbWUiOiAiTGF1bmNoIG5ldyBpbnN0YW5jZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sYXVuY2gtbmV3LWluc3RhbmNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImxhdW5jaC1uZXctaW5zdGFuY2VAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzUKfQ=="},
     "44": {"version": "36", "sha256": "06rhp1difpb7j1l49lay3h5wscf8nv2p0xqs70rss6yvjywsgi34", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBsYXVuY2ggYSBuZXcgaW5zdGFuY2Ugd2hlbiBjbGlja2luZyBpbiB0aGUgZGFzaCBvciB0aGUgYXBwbGljYXRpb24gdmlldy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImxhdW5jaC1uZXctaW5zdGFuY2UiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGF1bmNoLW5ldy1pbnN0YW5jZSIsCiAgIm5hbWUiOiAiTGF1bmNoIG5ldyBpbnN0YW5jZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sYXVuY2gtbmV3LWluc3RhbmNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImxhdW5jaC1uZXctaW5zdGFuY2VAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzYKfQ=="},
     "45": {"version": "39", "sha256": "0ap68r89z2z95vvmr6k009gczijanlkp002dbvkr5dpvzknzzc09", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBsYXVuY2ggYSBuZXcgaW5zdGFuY2Ugd2hlbiBjbGlja2luZyBpbiB0aGUgZGFzaCBvciB0aGUgYXBwbGljYXRpb24gdmlldy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImxhdW5jaC1uZXctaW5zdGFuY2UiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGF1bmNoLW5ldy1pbnN0YW5jZSIsCiAgIm5hbWUiOiAiTGF1bmNoIG5ldyBpbnN0YW5jZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sYXVuY2gtbmV3LWluc3RhbmNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImxhdW5jaC1uZXctaW5zdGFuY2VAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzkKfQ=="},
-    "46": {"version": "41", "sha256": "1yfdrnnxm1f1pmqqgrjb9k4rcq2nbj2wv94ljbw4g8wgmkh2ddfy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBsYXVuY2ggYSBuZXcgaW5zdGFuY2Ugd2hlbiBjbGlja2luZyBpbiB0aGUgZGFzaCBvciB0aGUgYXBwbGljYXRpb24gdmlldy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImxhdW5jaC1uZXctaW5zdGFuY2UiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGF1bmNoLW5ldy1pbnN0YW5jZSIsCiAgIm5hbWUiOiAiTGF1bmNoIG5ldyBpbnN0YW5jZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sYXVuY2gtbmV3LWluc3RhbmNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImxhdW5jaC1uZXctaW5zdGFuY2VAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDEKfQ=="}
+    "46": {"version": "42", "sha256": "0gn1wj1z104k6xwk04bgd04ipjmqw1mfpv0rsm14byv7mga9b6fb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBsYXVuY2ggYSBuZXcgaW5zdGFuY2Ugd2hlbiBjbGlja2luZyBpbiB0aGUgZGFzaCBvciB0aGUgYXBwbGljYXRpb24gdmlldy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImxhdW5jaC1uZXctaW5zdGFuY2UiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGF1bmNoLW5ldy1pbnN0YW5jZSIsCiAgIm5hbWUiOiAiTGF1bmNoIG5ldyBpbnN0YW5jZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sYXVuY2gtbmV3LWluc3RhbmNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImxhdW5jaC1uZXctaW5zdGFuY2VAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDIKfQ=="}
   }}
 , {"uuid": "window-list@gnome-shell-extensions.gcampax.github.com", "name": "Window List", "pname": "window-list", "description": "Display a window list at the bottom of the screen.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.", "link": "https://extensions.gnome.org/extension/602/window-list/", "shell_version_map": {
     "38": {"version": "34", "sha256": "06jww5sv3a32plbvnl1xch10y19q807dx6zn6z5gwpvq8n0nvnx3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSB3aW5kb3cgbGlzdCBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uXG5UaGlzIGV4dGVuc2lvbiBpcyBwYXJ0IG9mIENsYXNzaWMgTW9kZSBhbmQgaXMgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgYnkgR05PTUUuIFBsZWFzZSBkbyBub3QgcmVwb3J0IGJ1Z3MgdXNpbmcgdGhlIGZvcm0gYmVsb3csIHVzZSBHTk9NRSdzIEdpdExhYiBpbnN0YW5jZSBpbnN0ZWFkLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3ctbGlzdCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIldpbmRvdyBMaXN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvdy1saXN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid2luZG93LWxpc3RAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzQKfQ=="},
@@ -391,7 +397,7 @@
     "43": {"version": "47", "sha256": "1nzdl0zb8i7wipsnnrixkpj6rrsv3vz4c1snqspb23h494232wmz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSB3aW5kb3cgbGlzdCBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uXG5UaGlzIGV4dGVuc2lvbiBpcyBwYXJ0IG9mIENsYXNzaWMgTW9kZSBhbmQgaXMgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgYnkgR05PTUUuIFBsZWFzZSBkbyBub3QgcmVwb3J0IGJ1Z3MgdXNpbmcgdGhlIGZvcm0gYmVsb3csIHVzZSBHTk9NRSdzIEdpdExhYiBpbnN0YW5jZSBpbnN0ZWFkLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3ctbGlzdCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aW5kb3ctbGlzdCIsCiAgIm5hbWUiOiAiV2luZG93IExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2luZG93LWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid2luZG93LWxpc3RAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDcKfQ=="},
     "44": {"version": "48", "sha256": "121n3vcy1kk3vj7say292synnl5ig3kl94i039d2b40pslh4zlq9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSB3aW5kb3cgbGlzdCBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uXG5UaGlzIGV4dGVuc2lvbiBpcyBwYXJ0IG9mIENsYXNzaWMgTW9kZSBhbmQgaXMgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgYnkgR05PTUUuIFBsZWFzZSBkbyBub3QgcmVwb3J0IGJ1Z3MgdXNpbmcgdGhlIGZvcm0gYmVsb3csIHVzZSBHTk9NRSdzIEdpdExhYiBpbnN0YW5jZSBpbnN0ZWFkLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3ctbGlzdCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aW5kb3ctbGlzdCIsCiAgIm5hbWUiOiAiV2luZG93IExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2luZG93LWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid2luZG93LWxpc3RAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDgKfQ=="},
     "45": {"version": "51", "sha256": "1nb3iwyhn08m9ylyb8jn9lncqmj08vrldvjvn642wkibi0vg1dwf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSB3aW5kb3cgbGlzdCBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uXG5UaGlzIGV4dGVuc2lvbiBpcyBwYXJ0IG9mIENsYXNzaWMgTW9kZSBhbmQgaXMgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgYnkgR05PTUUuIFBsZWFzZSBkbyBub3QgcmVwb3J0IGJ1Z3MgdXNpbmcgdGhlIGZvcm0gYmVsb3csIHVzZSBHTk9NRSdzIEdpdExhYiBpbnN0YW5jZSBpbnN0ZWFkLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3ctbGlzdCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aW5kb3ctbGlzdCIsCiAgIm5hbWUiOiAiV2luZG93IExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2luZG93LWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid2luZG93LWxpc3RAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTEKfQ=="},
-    "46": {"version": "53", "sha256": "0x3bb1615z1cbacawgr5d82993kwi7qapm453ncsj82nibmp578y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSB3aW5kb3cgbGlzdCBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uXG5UaGlzIGV4dGVuc2lvbiBpcyBwYXJ0IG9mIENsYXNzaWMgTW9kZSBhbmQgaXMgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgYnkgR05PTUUuIFBsZWFzZSBkbyBub3QgcmVwb3J0IGJ1Z3MgdXNpbmcgdGhlIGZvcm0gYmVsb3csIHVzZSBHTk9NRSdzIEdpdExhYiBpbnN0YW5jZSBpbnN0ZWFkLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3ctbGlzdCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aW5kb3ctbGlzdCIsCiAgIm5hbWUiOiAiV2luZG93IExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2luZG93LWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid2luZG93LWxpc3RAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTMKfQ=="}
+    "46": {"version": "54", "sha256": "1944z394b9sfll8jmyc8p5q9nl69xxvkk1626gykaaavywn9y7y9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSB3aW5kb3cgbGlzdCBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uXG5UaGlzIGV4dGVuc2lvbiBpcyBwYXJ0IG9mIENsYXNzaWMgTW9kZSBhbmQgaXMgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgYnkgR05PTUUuIFBsZWFzZSBkbyBub3QgcmVwb3J0IGJ1Z3MgdXNpbmcgdGhlIGZvcm0gYmVsb3csIHVzZSBHTk9NRSdzIEdpdExhYiBpbnN0YW5jZSBpbnN0ZWFkLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3ctbGlzdCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aW5kb3ctbGlzdCIsCiAgIm5hbWUiOiAiV2luZG93IExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2luZG93LWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid2luZG93LWxpc3RAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTQKfQ=="}
   }}
 , {"uuid": "MultiClock@mibus.org", "name": "MultiClock", "pname": "multiclock", "description": "A clock for showing a second timezone in the panel.", "link": "https://extensions.gnome.org/extension/605/multiclock/", "shell_version_map": {
     "40": {"version": "8", "sha256": "1pp1cnmpix668mrywpv6mkyb45lw7f6cwibjl6bc7cgb01hkzd53", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgY2xvY2sgZm9yIHNob3dpbmcgYSBzZWNvbmQgdGltZXpvbmUgaW4gdGhlIHBhbmVsLiIsCiAgIm5hbWUiOiAiTXVsdGlDbG9jayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5taWJ1c011bHRpQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9taWJ1cy9NdWx0aUNsb2NrIiwKICAidXVpZCI6ICJNdWx0aUNsb2NrQG1pYnVzLm9yZyIsCiAgInZlcnNpb24iOiA4Cn0="}
@@ -530,7 +536,7 @@
     "43": {"version": "18", "sha256": "1bd2zjmb5h4iw9z9k07x92fmxgbj8psz44p4fa64k0kzxka10mzp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAibmFtZSI6ICJQcm94eSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21mbGFubmFnaGFuL3Byb3h5LXN3aXRjaGVyIiwKICAidXVpZCI6ICJQcm94eVN3aXRjaGVyQGZsYW5uYWdoYW4uY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="},
     "44": {"version": "19", "sha256": "0y7qx8kjwgpghl9w30xwmaxv9bafb26fhyx4lr52p4i1q2fi7y65", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAibmFtZSI6ICJQcm94eSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21mbGFubmFnaGFuL3Byb3h5LXN3aXRjaGVyIiwKICAidXVpZCI6ICJQcm94eVN3aXRjaGVyQGZsYW5uYWdoYW4uY29tIiwKICAidmVyc2lvbiI6IDE5Cn0="},
     "45": {"version": "20", "sha256": "1d2zkxpg3fidr1q0v1dzxw3y0c24ixv712s3vzrylzn761jllcmd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiUHJveHlTd2l0Y2hlckBmbGFubmFnaGFuLmNvbSIsCiAgIm5hbWUiOiAiUHJveHkgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdG9tZmxhbm5hZ2hhbi9wcm94eS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiUHJveHlTd2l0Y2hlckBmbGFubmFnaGFuLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"},
-    "46": {"version": "21", "sha256": "04xrx55qfkwa6p40r8dyvk72ac9wg6cw54gafmghrxaf2r6syxy2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiUHJveHlTd2l0Y2hlckBmbGFubmFnaGFuLmNvbSIsCiAgIm5hbWUiOiAiUHJveHkgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdG9tZmxhbm5hZ2hhbi9wcm94eS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiUHJveHlTd2l0Y2hlckBmbGFubmFnaGFuLmNvbSIsCiAgInZlcnNpb24iOiAyMQp9"}
+    "46": {"version": "23", "sha256": "089vs06s6m9q0g9mw3jg8h0x6qgxr66xhjj6h2vhs01bvfdv6dr3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiUHJveHlTd2l0Y2hlckBmbGFubmFnaGFuLmNvbSIsCiAgIm5hbWUiOiAiUHJveHkgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY29tLWZsYW5uYWdoYW4tUHJveHlTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21mbGFubmFnaGFuL3Byb3h5LXN3aXRjaGVyIiwKICAidXVpZCI6ICJQcm94eVN3aXRjaGVyQGZsYW5uYWdoYW4uY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}
   }}
 , {"uuid": "clipboard-indicator@tudmotu.com", "name": "Clipboard Indicator", "pname": "clipboard-indicator", "description": "The most popular clipboard manager for GNOME, with over 1M downloads", "link": "https://extensions.gnome.org/extension/779/clipboard-indicator/", "shell_version_map": {
     "38": {"version": "37", "sha256": "1nd6ydp5wmd56zf3vwrsi2wflrw15krdbvqv2fkmla8rndallp1i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsaXBib2FyZCBNYW5hZ2VyIGV4dGVuc2lvbiBmb3IgR25vbWUtU2hlbGwgLSBBZGRzIGEgY2xpcGJvYXJkIGluZGljYXRvciB0byB0aGUgdG9wIHBhbmVsLCBhbmQgY2FjaGVzIGNsaXBib2FyZCBoaXN0b3J5LiIsCiAgIm5hbWUiOiAiQ2xpcGJvYXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1R1ZG1vdHUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsaXBib2FyZC1pbmRpY2F0b3IiLAogICJ1dWlkIjogImNsaXBib2FyZC1pbmRpY2F0b3JAdHVkbW90dS5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="},
@@ -622,7 +628,7 @@
     "43": {"version": "30", "sha256": "036h42fs0yjgfjncvv97wpb2y860rhncfhz0znw4npj0gab5pn42", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvdCBXaW5kb3cgU2l6ZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2NyZWVuc2hvdC13aW5kb3ctc2l6ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC13aW5kb3ctc2l6ZXJAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzAKfQ=="},
     "44": {"version": "32", "sha256": "1km4mvmv9350172fjihzmjd18l6ypm8hb22vz1k09xpcas01p448", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvdCBXaW5kb3cgU2l6ZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2NyZWVuc2hvdC13aW5kb3ctc2l6ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC13aW5kb3ctc2l6ZXJAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
     "45": {"version": "35", "sha256": "0id9z143wm1xqb4ppvvwrfqrjm9qwaqgxz6hb37s0h2gvr5lamw2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvdCBXaW5kb3cgU2l6ZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2NyZWVuc2hvdC13aW5kb3ctc2l6ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC13aW5kb3ctc2l6ZXJAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzUKfQ=="},
-    "46": {"version": "37", "sha256": "0k0j0f3dm4brwngw8nv1svxhc23sw4n8w1vfax27gcmj8nga7jfm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvdCBXaW5kb3cgU2l6ZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2NyZWVuc2hvdC13aW5kb3ctc2l6ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC13aW5kb3ctc2l6ZXJAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="}
+    "46": {"version": "38", "sha256": "0a3vxfywsqmjr2pfm27aic4hvv4sx00crkgi4lrhl8nrivh5gj4a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvdCBXaW5kb3cgU2l6ZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2NyZWVuc2hvdC13aW5kb3ctc2l6ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC13aW5kb3ctc2l6ZXJAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzgKfQ=="}
   }}
 , {"uuid": "mailnag@pulb.github.com", "name": "Mailnag", "pname": "mailnag", "description": "Mail indicator (GMail, IMAP, POP) for GNOME.\n\nPlease note that this extension requires the mailnag daemon.\nInstall it from your distros package repositories or get it here:\nhttps://github.com/pulb/mailnag\n\nPlease also note that this version of the extension does not support avatars (as shown in the screenshot).\nIf you like to have avatar support install this extension from your distros package repositories or get a package from here:\nhttps://github.com/pulb/mailnag-gnome-shell\n\nIMPORTANT:\nI do not get notifications for user comments. Please always report bugs here:\nhttps://github.com/pulb/mailnag-gnome-shell/issues", "link": "https://extensions.gnome.org/extension/886/mailnag/", "shell_version_map": {
     "38": {"version": "20", "sha256": "15n816y34qlc7va72q75ngzw1my3n5j7xhg9a6dc0g8q4dd0g2r9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1haWwgaW5kaWNhdG9yIChHTWFpbCwgSU1BUCwgUE9QKSBmb3IgR05PTUUuXG5cblBsZWFzZSBub3RlIHRoYXQgdGhpcyBleHRlbnNpb24gcmVxdWlyZXMgdGhlIG1haWxuYWcgZGFlbW9uLlxuSW5zdGFsbCBpdCBmcm9tIHlvdXIgZGlzdHJvcyBwYWNrYWdlIHJlcG9zaXRvcmllcyBvciBnZXQgaXQgaGVyZTpcbmh0dHBzOi8vZ2l0aHViLmNvbS9wdWxiL21haWxuYWdcblxuUGxlYXNlIGFsc28gbm90ZSB0aGF0IHRoaXMgdmVyc2lvbiBvZiB0aGUgZXh0ZW5zaW9uIGRvZXMgbm90IHN1cHBvcnQgYXZhdGFycyAoYXMgc2hvd24gaW4gdGhlIHNjcmVlbnNob3QpLlxuSWYgeW91IGxpa2UgdG8gaGF2ZSBhdmF0YXIgc3VwcG9ydCBpbnN0YWxsIHRoaXMgZXh0ZW5zaW9uIGZyb20geW91ciBkaXN0cm9zIHBhY2thZ2UgcmVwb3NpdG9yaWVzIG9yIGdldCBhIHBhY2thZ2UgZnJvbSBoZXJlOlxuaHR0cHM6Ly9naXRodWIuY29tL3B1bGIvbWFpbG5hZy1nbm9tZS1zaGVsbFxuXG5JTVBPUlRBTlQ6XG5JIGRvIG5vdCBnZXQgbm90aWZpY2F0aW9ucyBmb3IgdXNlciBjb21tZW50cy4gUGxlYXNlIGFsd2F5cyByZXBvcnQgYnVncyBoZXJlOlxuaHR0cHM6Ly9naXRodWIuY29tL3B1bGIvbWFpbG5hZy1nbm9tZS1zaGVsbC9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJtYWlsbmFnLWdub21lLXNoZWxsIiwKICAibmFtZSI6ICJNYWlsbmFnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1haWxuYWciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibWFpbG5hZ0BwdWxiLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="},
@@ -731,8 +737,9 @@
     "41": {"version": "34", "sha256": "1bgj8w7qlz4kv70k6rjmm5f5rygn2n5fp0rd29jj1wfm50hfvzg1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIGxhdW5jaCBhcHBsaWNhdGlvbnMgcXVpY2tseSBieSB0eXBpbmdcblxuVXNlIHRoZSBjb25maWd1cmVkIGdsb2JhbCBob3RrZXkgKFN1cGVyK3cgYnkgZGVmYXVsdCkgdG8gb3BlbiBhIGxpc3Qgb2YgY3VycmVudCB3aW5kb3dzLiBUeXBlIGEgcGFydCBvZiB0aGUgbmFtZSBvciB0aXRsZSBvZiB0aGUgYXBwbGljYXRpb24gd2luZG93IHlvdSB3YW50IHRvIGFjdGl2YXRlIGFuZCBoaXQgZW50ZXIgb3IgY2xpY2sgb24gdGhlIGl0ZW0geW91IHdpc2ggdG8gYWN0aXZhdGUuIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGFtb25nIHRoZSBmaWx0ZXJlZCBzZWxlY3Rpb24gYW5kIHR5cGUgc2V2ZXJhbCBzcGFjZSBzZXBhcmF0ZWQgc2VhcmNoIHRlcm1zIHRvIGZpbHRlciBmdXJ0aGVyLiBJZiB5b3VyIHNlYXJjaCBtYXRjaGVzIGxhdW5jaGFibGUgYXBwcywgdGhvc2UgYXJlIHNob3duIGluIHRoZSBsaXN0IHRvby4gVXNlIEVzYyBvciBjbGljayBhbnl3aGVyZSBvdXRzaWRlIHRoZSBzd2l0Y2hlciB0byBjYW5jZWwuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIGFuZCBmdW5jdGlvbmFsaXR5IGluIHRoZSBwcmVmZXJlbmNlcy4iLAogICJuYW1lIjogIlN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbGxhbmRhdS9zd2l0Y2hlciIsCiAgInV1aWQiOiAic3dpdGNoZXJAbGFuZGF1LmZpIiwKICAidmVyc2lvbiI6IDM0Cn0="},
     "42": {"version": "36", "sha256": "06ayifrf49bdf61y9502fcwf9937py3zlmcf1idlp1f3y18s5i8c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIGxhdW5jaCBhcHBsaWNhdGlvbnMgcXVpY2tseSBieSB0eXBpbmdcblxuVXNlIHRoZSBjb25maWd1cmVkIGdsb2JhbCBob3RrZXkgKFN1cGVyK3cgYnkgZGVmYXVsdCkgdG8gb3BlbiBhIGxpc3Qgb2YgY3VycmVudCB3aW5kb3dzLiBUeXBlIGEgcGFydCBvZiB0aGUgbmFtZSBvciB0aXRsZSBvZiB0aGUgYXBwbGljYXRpb24gd2luZG93IHlvdSB3YW50IHRvIGFjdGl2YXRlIGFuZCBoaXQgZW50ZXIgb3IgY2xpY2sgb24gdGhlIGl0ZW0geW91IHdpc2ggdG8gYWN0aXZhdGUuIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGFtb25nIHRoZSBmaWx0ZXJlZCBzZWxlY3Rpb24gYW5kIHR5cGUgc2V2ZXJhbCBzcGFjZSBzZXBhcmF0ZWQgc2VhcmNoIHRlcm1zIHRvIGZpbHRlciBmdXJ0aGVyLiBJZiB5b3VyIHNlYXJjaCBtYXRjaGVzIGxhdW5jaGFibGUgYXBwcywgdGhvc2UgYXJlIHNob3duIGluIHRoZSBsaXN0IHRvby4gVXNlIEVzYyBvciBjbGljayBhbnl3aGVyZSBvdXRzaWRlIHRoZSBzd2l0Y2hlciB0byBjYW5jZWwuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIGFuZCBmdW5jdGlvbmFsaXR5IGluIHRoZSBwcmVmZXJlbmNlcy4iLAogICJuYW1lIjogIlN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbGxhbmRhdS9zd2l0Y2hlciIsCiAgInV1aWQiOiAic3dpdGNoZXJAbGFuZGF1LmZpIiwKICAidmVyc2lvbiI6IDM2Cn0="},
     "43": {"version": "37", "sha256": "19yrdy58hx1zwl0a7wjd0fwnfwsgsyqv9m1va8x5niynblajcs8g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIGxhdW5jaCBhcHBsaWNhdGlvbnMgcXVpY2tseSBieSB0eXBpbmdcblxuVXNlIHRoZSBjb25maWd1cmVkIGdsb2JhbCBob3RrZXkgKFN1cGVyK3cgYnkgZGVmYXVsdCkgdG8gb3BlbiBhIGxpc3Qgb2YgY3VycmVudCB3aW5kb3dzLiBUeXBlIGEgcGFydCBvZiB0aGUgbmFtZSBvciB0aXRsZSBvZiB0aGUgYXBwbGljYXRpb24gd2luZG93IHlvdSB3YW50IHRvIGFjdGl2YXRlIGFuZCBoaXQgZW50ZXIgb3IgY2xpY2sgb24gdGhlIGl0ZW0geW91IHdpc2ggdG8gYWN0aXZhdGUuIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGFtb25nIHRoZSBmaWx0ZXJlZCBzZWxlY3Rpb24gYW5kIHR5cGUgc2V2ZXJhbCBzcGFjZSBzZXBhcmF0ZWQgc2VhcmNoIHRlcm1zIHRvIGZpbHRlciBmdXJ0aGVyLiBJZiB5b3VyIHNlYXJjaCBtYXRjaGVzIGxhdW5jaGFibGUgYXBwcywgdGhvc2UgYXJlIHNob3duIGluIHRoZSBsaXN0IHRvby4gVXNlIEVzYyBvciBjbGljayBhbnl3aGVyZSBvdXRzaWRlIHRoZSBzd2l0Y2hlciB0byBjYW5jZWwuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIGFuZCBmdW5jdGlvbmFsaXR5IGluIHRoZSBwcmVmZXJlbmNlcy4iLAogICJuYW1lIjogIlN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbGxhbmRhdS9zd2l0Y2hlciIsCiAgInV1aWQiOiAic3dpdGNoZXJAbGFuZGF1LmZpIiwKICAidmVyc2lvbiI6IDM3Cn0="},
-    "44": {"version": "40", "sha256": "1nl4i9i064dch7mwn8xnmhh69ji7r6vl4zhmyxw4pk5ihrgcwkcj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIGxhdW5jaCBhcHBsaWNhdGlvbnMgcXVpY2tseSBieSB0eXBpbmdcblxuVXNlIHRoZSBjb25maWd1cmVkIGdsb2JhbCBob3RrZXkgKFN1cGVyK3cgYnkgZGVmYXVsdCkgdG8gb3BlbiBhIGxpc3Qgb2YgY3VycmVudCB3aW5kb3dzLiBUeXBlIGEgcGFydCBvZiB0aGUgbmFtZSBvciB0aXRsZSBvZiB0aGUgYXBwbGljYXRpb24gd2luZG93IHlvdSB3YW50IHRvIGFjdGl2YXRlIGFuZCBoaXQgZW50ZXIgb3IgY2xpY2sgb24gdGhlIGl0ZW0geW91IHdpc2ggdG8gYWN0aXZhdGUuIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGFtb25nIHRoZSBmaWx0ZXJlZCBzZWxlY3Rpb24gYW5kIHR5cGUgc2V2ZXJhbCBzcGFjZSBzZXBhcmF0ZWQgc2VhcmNoIHRlcm1zIHRvIGZpbHRlciBmdXJ0aGVyLiBJZiB5b3VyIHNlYXJjaCBtYXRjaGVzIGxhdW5jaGFibGUgYXBwcywgdGhvc2UgYXJlIHNob3duIGluIHRoZSBsaXN0IHRvby4gVXNlIEVzYyBvciBjbGljayBhbnl3aGVyZSBvdXRzaWRlIHRoZSBzd2l0Y2hlciB0byBjYW5jZWwuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIGFuZCBmdW5jdGlvbmFsaXR5IGluIHRoZSBwcmVmZXJlbmNlcy4iLAogICJuYW1lIjogIlN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbGxhbmRhdS9zd2l0Y2hlciIsCiAgInV1aWQiOiAic3dpdGNoZXJAbGFuZGF1LmZpIiwKICAidmVyc2lvbiI6IDQwCn0="},
-    "45": {"version": "39", "sha256": "150j5d9pk20rbhwsmdbn382973w2v6hc9j017b9crxam70rww3qk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIGxhdW5jaCBhcHBsaWNhdGlvbnMgcXVpY2tseSBieSB0eXBpbmdcblxuVXNlIHRoZSBjb25maWd1cmVkIGdsb2JhbCBob3RrZXkgKFN1cGVyK3cgYnkgZGVmYXVsdCkgdG8gb3BlbiBhIGxpc3Qgb2YgY3VycmVudCB3aW5kb3dzLiBUeXBlIGEgcGFydCBvZiB0aGUgbmFtZSBvciB0aXRsZSBvZiB0aGUgYXBwbGljYXRpb24gd2luZG93IHlvdSB3YW50IHRvIGFjdGl2YXRlIGFuZCBoaXQgZW50ZXIgb3IgY2xpY2sgb24gdGhlIGl0ZW0geW91IHdpc2ggdG8gYWN0aXZhdGUuIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGFtb25nIHRoZSBmaWx0ZXJlZCBzZWxlY3Rpb24gYW5kIHR5cGUgc2V2ZXJhbCBzcGFjZSBzZXBhcmF0ZWQgc2VhcmNoIHRlcm1zIHRvIGZpbHRlciBmdXJ0aGVyLiBJZiB5b3VyIHNlYXJjaCBtYXRjaGVzIGxhdW5jaGFibGUgYXBwcywgdGhvc2UgYXJlIHNob3duIGluIHRoZSBsaXN0IHRvby4gVXNlIEVzYyBvciBjbGljayBhbnl3aGVyZSBvdXRzaWRlIHRoZSBzd2l0Y2hlciB0byBjYW5jZWwuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIGFuZCBmdW5jdGlvbmFsaXR5IGluIHRoZSBwcmVmZXJlbmNlcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzd2l0Y2hlciIsCiAgIm5hbWUiOiAiU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGFuaWVsbGFuZGF1L3N3aXRjaGVyIiwKICAidXVpZCI6ICJzd2l0Y2hlckBsYW5kYXUuZmkiLAogICJ2ZXJzaW9uIjogMzkKfQ=="}
+    "44": {"version": "38", "sha256": "0hyrhxnfrn58c8y7f181amjwaracgp4a512p2ccpjrksw6n4vgzc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIGxhdW5jaCBhcHBsaWNhdGlvbnMgcXVpY2tseSBieSB0eXBpbmdcblxuVXNlIHRoZSBjb25maWd1cmVkIGdsb2JhbCBob3RrZXkgKFN1cGVyK3cgYnkgZGVmYXVsdCkgdG8gb3BlbiBhIGxpc3Qgb2YgY3VycmVudCB3aW5kb3dzLiBUeXBlIGEgcGFydCBvZiB0aGUgbmFtZSBvciB0aXRsZSBvZiB0aGUgYXBwbGljYXRpb24gd2luZG93IHlvdSB3YW50IHRvIGFjdGl2YXRlIGFuZCBoaXQgZW50ZXIgb3IgY2xpY2sgb24gdGhlIGl0ZW0geW91IHdpc2ggdG8gYWN0aXZhdGUuIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGFtb25nIHRoZSBmaWx0ZXJlZCBzZWxlY3Rpb24gYW5kIHR5cGUgc2V2ZXJhbCBzcGFjZSBzZXBhcmF0ZWQgc2VhcmNoIHRlcm1zIHRvIGZpbHRlciBmdXJ0aGVyLiBJZiB5b3VyIHNlYXJjaCBtYXRjaGVzIGxhdW5jaGFibGUgYXBwcywgdGhvc2UgYXJlIHNob3duIGluIHRoZSBsaXN0IHRvby4gVXNlIEVzYyBvciBjbGljayBhbnl3aGVyZSBvdXRzaWRlIHRoZSBzd2l0Y2hlciB0byBjYW5jZWwuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIGFuZCBmdW5jdGlvbmFsaXR5IGluIHRoZSBwcmVmZXJlbmNlcy4iLAogICJuYW1lIjogIlN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbGxhbmRhdS9zd2l0Y2hlciIsCiAgInV1aWQiOiAic3dpdGNoZXJAbGFuZGF1LmZpIiwKICAidmVyc2lvbiI6IDM4Cn0="},
+    "45": {"version": "39", "sha256": "150j5d9pk20rbhwsmdbn382973w2v6hc9j017b9crxam70rww3qk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIGxhdW5jaCBhcHBsaWNhdGlvbnMgcXVpY2tseSBieSB0eXBpbmdcblxuVXNlIHRoZSBjb25maWd1cmVkIGdsb2JhbCBob3RrZXkgKFN1cGVyK3cgYnkgZGVmYXVsdCkgdG8gb3BlbiBhIGxpc3Qgb2YgY3VycmVudCB3aW5kb3dzLiBUeXBlIGEgcGFydCBvZiB0aGUgbmFtZSBvciB0aXRsZSBvZiB0aGUgYXBwbGljYXRpb24gd2luZG93IHlvdSB3YW50IHRvIGFjdGl2YXRlIGFuZCBoaXQgZW50ZXIgb3IgY2xpY2sgb24gdGhlIGl0ZW0geW91IHdpc2ggdG8gYWN0aXZhdGUuIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGFtb25nIHRoZSBmaWx0ZXJlZCBzZWxlY3Rpb24gYW5kIHR5cGUgc2V2ZXJhbCBzcGFjZSBzZXBhcmF0ZWQgc2VhcmNoIHRlcm1zIHRvIGZpbHRlciBmdXJ0aGVyLiBJZiB5b3VyIHNlYXJjaCBtYXRjaGVzIGxhdW5jaGFibGUgYXBwcywgdGhvc2UgYXJlIHNob3duIGluIHRoZSBsaXN0IHRvby4gVXNlIEVzYyBvciBjbGljayBhbnl3aGVyZSBvdXRzaWRlIHRoZSBzd2l0Y2hlciB0byBjYW5jZWwuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIGFuZCBmdW5jdGlvbmFsaXR5IGluIHRoZSBwcmVmZXJlbmNlcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzd2l0Y2hlciIsCiAgIm5hbWUiOiAiU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGFuaWVsbGFuZGF1L3N3aXRjaGVyIiwKICAidXVpZCI6ICJzd2l0Y2hlckBsYW5kYXUuZmkiLAogICJ2ZXJzaW9uIjogMzkKfQ=="},
+    "46": {"version": "41", "sha256": "1akpiy0mnnkxysjl5ww003vggw8dqmjkgnyxjl2afpsjfkcv7m2p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIGxhdW5jaCBhcHBsaWNhdGlvbnMgcXVpY2tseSBieSB0eXBpbmdcblxuVXNlIHRoZSBjb25maWd1cmVkIGdsb2JhbCBob3RrZXkgKFN1cGVyK3cgYnkgZGVmYXVsdCkgdG8gb3BlbiBhIGxpc3Qgb2YgY3VycmVudCB3aW5kb3dzLiBUeXBlIGEgcGFydCBvZiB0aGUgbmFtZSBvciB0aXRsZSBvZiB0aGUgYXBwbGljYXRpb24gd2luZG93IHlvdSB3YW50IHRvIGFjdGl2YXRlIGFuZCBoaXQgZW50ZXIgb3IgY2xpY2sgb24gdGhlIGl0ZW0geW91IHdpc2ggdG8gYWN0aXZhdGUuIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGFtb25nIHRoZSBmaWx0ZXJlZCBzZWxlY3Rpb24gYW5kIHR5cGUgc2V2ZXJhbCBzcGFjZSBzZXBhcmF0ZWQgc2VhcmNoIHRlcm1zIHRvIGZpbHRlciBmdXJ0aGVyLiBJZiB5b3VyIHNlYXJjaCBtYXRjaGVzIGxhdW5jaGFibGUgYXBwcywgdGhvc2UgYXJlIHNob3duIGluIHRoZSBsaXN0IHRvby4gVXNlIEVzYyBvciBjbGljayBhbnl3aGVyZSBvdXRzaWRlIHRoZSBzd2l0Y2hlciB0byBjYW5jZWwuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIGFuZCBmdW5jdGlvbmFsaXR5IGluIHRoZSBwcmVmZXJlbmNlcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzd2l0Y2hlciIsCiAgIm5hbWUiOiAiU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGFuaWVsbGFuZGF1L3N3aXRjaGVyIiwKICAidXVpZCI6ICJzd2l0Y2hlckBsYW5kYXUuZmkiLAogICJ2ZXJzaW9uIjogNDEKfQ=="}
   }}
 , {"uuid": "keyboard_modifiers_status@sneetsher", "name": "Keyboard Modifiers Status", "pname": "keyboard-modifiers-status", "description": "Shows keyboard modifiers status. It's useful when sticky keys are active.", "link": "https://extensions.gnome.org/extension/975/keyboard-modifiers-status/", "shell_version_map": {
     "38": {"version": "17", "sha256": "18dx4zwj3ldcwqw3z1f8x4z2q9g7vp53cl7v6lw4dvz9kv47swbi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGtleWJvYXJkIG1vZGlmaWVycyBzdGF0dXMuIEl0J3MgdXNlZnVsIHdoZW4gc3RpY2t5IGtleXMgYXJlIGFjdGl2ZS4iLAogICJuYW1lIjogIktleWJvYXJkIE1vZGlmaWVycyBTdGF0dXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic25lZXRzaGVyQGxvY2FsaG9zdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc25lZXRzaGVyL0tleWJvYXJkLU1vZGlmaWVycy1TdGF0dXMiLAogICJ1dWlkIjogImtleWJvYXJkX21vZGlmaWVyc19zdGF0dXNAc25lZXRzaGVyIiwKICAidmVyc2lvbiI6IDE3Cn0="},
@@ -758,7 +765,8 @@
     "42": {"version": "34", "sha256": "039bkjfr4ga2n3cj8pqpkvqpbspyk23f1dnv15sbq1il2zjqnm4i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL2hhcmRkaXNrbGVkIiwKICAidXVpZCI6ICJoYXJkZGlza2xlZEBiaWppZHJvaWQuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM0Cn0="},
     "43": {"version": "34", "sha256": "039bkjfr4ga2n3cj8pqpkvqpbspyk23f1dnv15sbq1il2zjqnm4i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL2hhcmRkaXNrbGVkIiwKICAidXVpZCI6ICJoYXJkZGlza2xlZEBiaWppZHJvaWQuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM0Cn0="},
     "44": {"version": "34", "sha256": "039bkjfr4ga2n3cj8pqpkvqpbspyk23f1dnv15sbq1il2zjqnm4i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL2hhcmRkaXNrbGVkIiwKICAidXVpZCI6ICJoYXJkZGlza2xlZEBiaWppZHJvaWQuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM0Cn0="},
-    "45": {"version": "37", "sha256": "0h6j301fafjx73ywc5xl05c2arfaj1kvwxaah8a448qfqrldxvgm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhhcmRkaXNrbGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JpamkvaGFyZGRpc2tsZWQiLAogICJ1dWlkIjogImhhcmRkaXNrbGVkQGJpamlkcm9pZC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="}
+    "45": {"version": "37", "sha256": "0h6j301fafjx73ywc5xl05c2arfaj1kvwxaah8a448qfqrldxvgm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhhcmRkaXNrbGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JpamkvaGFyZGRpc2tsZWQiLAogICJ1dWlkIjogImhhcmRkaXNrbGVkQGJpamlkcm9pZC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="},
+    "46": {"version": "39", "sha256": "1ndw6c5i8j52i43wr0awf4bhq5z6rh01ai3kv8y7l8anfi8ic4rj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhhcmRkaXNrbGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JpamkvaGFyZGRpc2tsZWQiLAogICJ1dWlkIjogImhhcmRkaXNrbGVkQGJpamlkcm9pZC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzkKfQ=="}
   }}
 , {"uuid": "syncthingicon@jay.strict@posteo.de", "name": "Syncthing Icon", "pname": "syncthing-icon", "description": "Display Syncthing Icon in Top Bar", "link": "https://extensions.gnome.org/extension/989/syncthing-icon/", "shell_version_map": {
     "40": {"version": "34", "sha256": "1pca7xk11bh46a1y1dhxmw6rlmmf5dpp0jamwn17xxxsp35fz5qk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgU3luY3RoaW5nIEljb24gaW4gVG9wIEJhciIsCiAgIm5hbWUiOiAiU3luY3RoaW5nIEljb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3luY3RoaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamF5c3RyaWN0b3IvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5bmN0aGluZyIsCiAgInV1aWQiOiAic3luY3RoaW5naWNvbkBqYXkuc3RyaWN0QHBvc3Rlby5kZSIsCiAgInZlcnNpb24iOiAzNAp9"},
@@ -776,7 +784,8 @@
     "42": {"version": "20", "sha256": "0ymrcci3pn62x80kazp2rn3yb52pz885w99djl25s8x764nzksjd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"},
     "43": {"version": "20", "sha256": "0ymrcci3pn62x80kazp2rn3yb52pz885w99djl25s8x764nzksjd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"},
     "44": {"version": "20", "sha256": "0ymrcci3pn62x80kazp2rn3yb52pz885w99djl25s8x764nzksjd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"},
-    "45": {"version": "22", "sha256": "0dm711ds72xgkim2jq3g6yjv253ryh3gzmbsxgqvj0ja5wzpks5v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbnVub2ZhcnJ1Y2EvV2luZG93SXNSZWFkeV9SZW1vdmVyIiwKICAidXVpZCI6ICJ3aW5kb3dJc1JlYWR5X1JlbW92ZXJAbnVub2ZhcnJ1Y2FAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}
+    "45": {"version": "23", "sha256": "1fkk6v623p0vka9g1rw0h98g9zb7kxh6ds71synp5fg3mw87nvs5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"},
+    "46": {"version": "23", "sha256": "1fkk6v623p0vka9g1rw0h98g9zb7kxh6ds71synp5fg3mw87nvs5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"}
   }}
 , {"uuid": "arch-update@RaphaelRochet", "name": "Arch Linux Updates Indicator", "pname": "archlinux-updates-indicator", "description": "Update indicator for Arch Linux and GNOME Shell.\n** Note : you now need to install the package pacman-contrib to use the checkupdates script. **\n  Can support AUR or other distros by changing command used to check for and apply updates. There are examples in the wiki page on GitHub.\n See README about Gnome Console", "link": "https://extensions.gnome.org/extension/1010/archlinux-updates-indicator/", "shell_version_map": {
     "38": {"version": "39", "sha256": "1wcyjy9idj674s7pyz0210pb6kzb3jmj1fv08cm93frdl9g61dn3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEFyY2ggTGludXggYW5kIEdOT01FIFNoZWxsLlxuKiogTm90ZSA6IHlvdSBub3cgbmVlZCB0byBpbnN0YWxsIHRoZSBwYWNrYWdlIHBhY21hbi1jb250cmliIHRvIHVzZSB0aGUgY2hlY2t1cGRhdGVzIHNjcmlwdC4gKipcbiAgQ2FuIHN1cHBvcnQgQVVSIG9yIG90aGVyIGRpc3Ryb3MgYnkgY2hhbmdpbmcgY29tbWFuZCB1c2VkIHRvIGNoZWNrIGZvciBhbmQgYXBwbHkgdXBkYXRlcy5cbiBTZWUgUkVBRE1FIGFib3V0IEdub21lIENvbnNvbGUiLAogICJuYW1lIjogIkFyY2ggTGludXggVXBkYXRlcyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMSIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhcGhhZWxSb2NoZXQvYXJjaC11cGRhdGUiLAogICJ1dWlkIjogImFyY2gtdXBkYXRlQFJhcGhhZWxSb2NoZXQiLAogICJ2ZXJzaW9uIjogMzkKfQ=="},
@@ -820,14 +829,23 @@
     "43": {"version": "26", "sha256": "0qvhpajqnq7cbpkiwlaxp16r1amfv0kk4l98gcj5082vjpp2w9g7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2t3aGlzcGVyZXIgaXMgYSBleHRlbnNpb24gZm9yIFRhc2tXYXJyaW9yIEFwcGxpY2F0aW9uIGh0dHBzOi8vdGFza3dhcnJpb3Iub3JnLiBJdCBpcyB0byBkaXNwbGF5IHVwY29taW5nIHRhc2tzIGFuZCB0YXNrIGRldGFpbHMgYXMgd2VsbCBhcyB0byBjcmVhdGUgYW5kIG1vZGlmeSB0aGVtLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2t3aGlzcGVyZXIiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9sb2NhbC9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlRhc2tXaGlzcGVyZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFza3doaXNwZXJlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2luYXRpYy90YXNrd2hpc3BlcmVyIiwKICAidXVpZCI6ICJ0YXNrd2hpc3BlcmVyLWV4dGVuc2lvbkBpbmZpbmljb2RlLmRlIiwKICAidmVyc2lvbiI6IDI2Cn0="},
     "44": {"version": "26", "sha256": "0qvhpajqnq7cbpkiwlaxp16r1amfv0kk4l98gcj5082vjpp2w9g7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2t3aGlzcGVyZXIgaXMgYSBleHRlbnNpb24gZm9yIFRhc2tXYXJyaW9yIEFwcGxpY2F0aW9uIGh0dHBzOi8vdGFza3dhcnJpb3Iub3JnLiBJdCBpcyB0byBkaXNwbGF5IHVwY29taW5nIHRhc2tzIGFuZCB0YXNrIGRldGFpbHMgYXMgd2VsbCBhcyB0byBjcmVhdGUgYW5kIG1vZGlmeSB0aGVtLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2t3aGlzcGVyZXIiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9sb2NhbC9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlRhc2tXaGlzcGVyZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFza3doaXNwZXJlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2luYXRpYy90YXNrd2hpc3BlcmVyIiwKICAidXVpZCI6ICJ0YXNrd2hpc3BlcmVyLWV4dGVuc2lvbkBpbmZpbmljb2RlLmRlIiwKICAidmVyc2lvbiI6IDI2Cn0="}
   }}
-, {"uuid": "randomwallpaper@iflow.space", "name": "Random Wallpaper", "pname": "random-wallpaper", "description": "Load new desktop wallpapers from various online sources with ease!\n\nFeatures:\nVarious configurable wallpaper sources\n--> Unsplash\n--> Wallhaven\n--> Reddit\n--> Basically any JSON API/File (Examples)\n----> Chromecast Images\n----> NASA Picture of the day\n----> Bing Picture of the day\n----> Google Earth View\n--> Local folders\n--> Static URLs\nMultiple sources to create a pool of sources\nHistory of previous images\n--> Save your favourite wallpaper\n--> Add images to a block list\nSet the lock screen background\nTimer based renewal (Auto-Fetching)\n--> Load a new wallpaper on startup\n--> Pause the timer when desired\nSupport for multiple monitors using third party tools\n--> Hydra Paper\n--> Superpaper\nExecute a custom command after every new wallpaper\n", "link": "https://extensions.gnome.org/extension/1040/random-wallpaper/", "shell_version_map": {
+, {"uuid": "randomwallpaper@iflow.space", "name": "Random Wallpaper", "pname": "random-wallpaper", "description": "Load new desktop wallpapers from various online sources with ease!\n\nFeatures:\nVarious configurable wallpaper sources\n-- Unsplash\n-- Wallhaven\n-- Reddit\n-- Basically any JSON API/File (Examples)\n---- Chromecast Images\n---- NASA Picture of the day\n---- Bing Picture of the day\n---- Google Earth View\n-- Local folders\n-- Static URLs\nMultiple sources to create a pool of sources\nHistory of previous images\n-- Save your favourite wallpaper\n-- Add images to a block list\nSet the lock screen background\nTimer based renewal (Auto-Fetching)\n-- Load a new wallpaper on startup\n-- Pause the timer when desired\nSupport for multiple monitors using third party tools\n-- Hydra Paper\n-- Superpaper\nExecute a custom command after every new wallpaper\n", "link": "https://extensions.gnome.org/extension/1040/random-wallpaper/", "shell_version_map": {
     "38": {"version": "22", "sha256": "1mnc7k1816r0q8c95y36ryzl9cni6zms5xm587wmdmy4xi92i8ic", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNC41IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2lmbDB3L1JhbmRvbVdhbGxwYXBlckdub21lMyIsCiAgInV1aWQiOiAicmFuZG9td2FsbHBhcGVyQGlmbG93LnNwYWNlIiwKICAidmVyc2lvbiI6IDIyCn0="},
     "40": {"version": "32", "sha256": "1l4s37rp1bx20r7pg906yqsvl9s6a18y0mcx08xkc11jn68d1g4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy40IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
     "41": {"version": "32", "sha256": "1l4s37rp1bx20r7pg906yqsvl9s6a18y0mcx08xkc11jn68d1g4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy40IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
     "42": {"version": "32", "sha256": "1l4s37rp1bx20r7pg906yqsvl9s6a18y0mcx08xkc11jn68d1g4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy40IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
     "43": {"version": "32", "sha256": "1l4s37rp1bx20r7pg906yqsvl9s6a18y0mcx08xkc11jn68d1g4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy40IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
     "44": {"version": "32", "sha256": "1l4s37rp1bx20r7pg906yqsvl9s6a18y0mcx08xkc11jn68d1g4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy40IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
-    "45": {"version": "34", "sha256": "1k0g1yyw0vk5n6c9qfa955bv1s9zlvca013i1p6iq9xn7y5alkjl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgbmV3IGRlc2t0b3Agd2FsbHBhcGVycyBmcm9tIHZhcmlvdXMgb25saW5lIHNvdXJjZXMgd2l0aCBlYXNlISIsCiAgImlzc3VlLXVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzL2lzc3VlcyIsCiAgIm5hbWUiOiAiUmFuZG9tIFdhbGxwYXBlciIsCiAgInNlbWFudGljLXZlcnNpb24iOiAiMy4wLjEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3BhY2UuaWZsb3cucmFuZG9td2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2lmbDB3L1JhbmRvbVdhbGxwYXBlckdub21lMyIsCiAgInV1aWQiOiAicmFuZG9td2FsbHBhcGVyQGlmbG93LnNwYWNlIiwKICAidmVyc2lvbiI6IDM0Cn0="}
+    "45": {"version": "35", "sha256": "16hqgsxafiqbrnnpmflslqyc0yklsdvn7kw8pnrnnh57b7fzn265", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgbmV3IGRlc2t0b3Agd2FsbHBhcGVycyBmcm9tIHZhcmlvdXMgb25saW5lIHNvdXJjZXMgd2l0aCBlYXNlISIsCiAgImlzc3VlLXVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzL2lzc3VlcyIsCiAgIm5hbWUiOiAiUmFuZG9tIFdhbGxwYXBlciIsCiAgInNlbWFudGljLXZlcnNpb24iOiAiMy4wLjIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3BhY2UuaWZsb3cucmFuZG9td2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pZmwwdy9SYW5kb21XYWxscGFwZXJHbm9tZTMiLAogICJ1dWlkIjogInJhbmRvbXdhbGxwYXBlckBpZmxvdy5zcGFjZSIsCiAgInZlcnNpb24iOiAzNQp9"},
+    "46": {"version": "35", "sha256": "16hqgsxafiqbrnnpmflslqyc0yklsdvn7kw8pnrnnh57b7fzn265", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgbmV3IGRlc2t0b3Agd2FsbHBhcGVycyBmcm9tIHZhcmlvdXMgb25saW5lIHNvdXJjZXMgd2l0aCBlYXNlISIsCiAgImlzc3VlLXVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzL2lzc3VlcyIsCiAgIm5hbWUiOiAiUmFuZG9tIFdhbGxwYXBlciIsCiAgInNlbWFudGljLXZlcnNpb24iOiAiMy4wLjIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3BhY2UuaWZsb3cucmFuZG9td2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pZmwwdy9SYW5kb21XYWxscGFwZXJHbm9tZTMiLAogICJ1dWlkIjogInJhbmRvbXdhbGxwYXBlckBpZmxvdy5zcGFjZSIsCiAgInZlcnNpb24iOiAzNQp9"}
+  }}
+, {"uuid": "gnome-stats-pro@thrallingpenguin.com", "name": "GnomeStatsPro", "pname": "gnomestatspro", "description": "System monitor showing CPU and memory usage.", "link": "https://extensions.gnome.org/extension/1043/gnomestatspro/", "shell_version_map": {
+    "38": {"version": "12", "sha256": "08czzpkxf468fhg4v3fnai01dagkcdc2xwgivlp4yc00xwn0mdnj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBtb25pdG9yIHNob3dpbmcgQ1BVIGFuZCBtZW1vcnkgdXNhZ2UuIiwKICAiZXh0ZW5zaW9uLWlkIjogImdub21lLXN0YXRzLXBybyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkdub21lU3RhdHNQcm8iLAogICJvcmlnaW5hbC1hdXRob3IiOiAiam9lQHRocmFsbGluZ3Blbmd1aW4uY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdub21lLXN0YXRzLXBybyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IiwKICAgICI0MC40IgogIF0sCiAgInVybCI6ICJodHRwOi8vVGhyYWxsaW5nUGVuZ3Vpbi5jb20vcHJvZHVjdHMvZ25vbWUtc3RhdHMtcHJvIiwKICAidXVpZCI6ICJnbm9tZS1zdGF0cy1wcm9AdGhyYWxsaW5ncGVuZ3Vpbi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "40": {"version": "12", "sha256": "08czzpkxf468fhg4v3fnai01dagkcdc2xwgivlp4yc00xwn0mdnj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBtb25pdG9yIHNob3dpbmcgQ1BVIGFuZCBtZW1vcnkgdXNhZ2UuIiwKICAiZXh0ZW5zaW9uLWlkIjogImdub21lLXN0YXRzLXBybyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkdub21lU3RhdHNQcm8iLAogICJvcmlnaW5hbC1hdXRob3IiOiAiam9lQHRocmFsbGluZ3Blbmd1aW4uY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdub21lLXN0YXRzLXBybyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IiwKICAgICI0MC40IgogIF0sCiAgInVybCI6ICJodHRwOi8vVGhyYWxsaW5nUGVuZ3Vpbi5jb20vcHJvZHVjdHMvZ25vbWUtc3RhdHMtcHJvIiwKICAidXVpZCI6ICJnbm9tZS1zdGF0cy1wcm9AdGhyYWxsaW5ncGVuZ3Vpbi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "41": {"version": "12", "sha256": "08czzpkxf468fhg4v3fnai01dagkcdc2xwgivlp4yc00xwn0mdnj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBtb25pdG9yIHNob3dpbmcgQ1BVIGFuZCBtZW1vcnkgdXNhZ2UuIiwKICAiZXh0ZW5zaW9uLWlkIjogImdub21lLXN0YXRzLXBybyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkdub21lU3RhdHNQcm8iLAogICJvcmlnaW5hbC1hdXRob3IiOiAiam9lQHRocmFsbGluZ3Blbmd1aW4uY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdub21lLXN0YXRzLXBybyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IiwKICAgICI0MC40IgogIF0sCiAgInVybCI6ICJodHRwOi8vVGhyYWxsaW5nUGVuZ3Vpbi5jb20vcHJvZHVjdHMvZ25vbWUtc3RhdHMtcHJvIiwKICAidXVpZCI6ICJnbm9tZS1zdGF0cy1wcm9AdGhyYWxsaW5ncGVuZ3Vpbi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "42": {"version": "12", "sha256": "08czzpkxf468fhg4v3fnai01dagkcdc2xwgivlp4yc00xwn0mdnj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBtb25pdG9yIHNob3dpbmcgQ1BVIGFuZCBtZW1vcnkgdXNhZ2UuIiwKICAiZXh0ZW5zaW9uLWlkIjogImdub21lLXN0YXRzLXBybyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkdub21lU3RhdHNQcm8iLAogICJvcmlnaW5hbC1hdXRob3IiOiAiam9lQHRocmFsbGluZ3Blbmd1aW4uY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdub21lLXN0YXRzLXBybyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IiwKICAgICI0MC40IgogIF0sCiAgInVybCI6ICJodHRwOi8vVGhyYWxsaW5nUGVuZ3Vpbi5jb20vcHJvZHVjdHMvZ25vbWUtc3RhdHMtcHJvIiwKICAidXVpZCI6ICJnbm9tZS1zdGF0cy1wcm9AdGhyYWxsaW5ncGVuZ3Vpbi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "43": {"version": "12", "sha256": "08czzpkxf468fhg4v3fnai01dagkcdc2xwgivlp4yc00xwn0mdnj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBtb25pdG9yIHNob3dpbmcgQ1BVIGFuZCBtZW1vcnkgdXNhZ2UuIiwKICAiZXh0ZW5zaW9uLWlkIjogImdub21lLXN0YXRzLXBybyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkdub21lU3RhdHNQcm8iLAogICJvcmlnaW5hbC1hdXRob3IiOiAiam9lQHRocmFsbGluZ3Blbmd1aW4uY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdub21lLXN0YXRzLXBybyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IiwKICAgICI0MC40IgogIF0sCiAgInVybCI6ICJodHRwOi8vVGhyYWxsaW5nUGVuZ3Vpbi5jb20vcHJvZHVjdHMvZ25vbWUtc3RhdHMtcHJvIiwKICAidXVpZCI6ICJnbm9tZS1zdGF0cy1wcm9AdGhyYWxsaW5ncGVuZ3Vpbi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "44": {"version": "12", "sha256": "08czzpkxf468fhg4v3fnai01dagkcdc2xwgivlp4yc00xwn0mdnj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBtb25pdG9yIHNob3dpbmcgQ1BVIGFuZCBtZW1vcnkgdXNhZ2UuIiwKICAiZXh0ZW5zaW9uLWlkIjogImdub21lLXN0YXRzLXBybyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkdub21lU3RhdHNQcm8iLAogICJvcmlnaW5hbC1hdXRob3IiOiAiam9lQHRocmFsbGluZ3Blbmd1aW4uY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdub21lLXN0YXRzLXBybyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IiwKICAgICI0MC40IgogIF0sCiAgInVybCI6ICJodHRwOi8vVGhyYWxsaW5nUGVuZ3Vpbi5jb20vcHJvZHVjdHMvZ25vbWUtc3RhdHMtcHJvIiwKICAidXVpZCI6ICJnbm9tZS1zdGF0cy1wcm9AdGhyYWxsaW5ncGVuZ3Vpbi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}
   }}
 , {"uuid": "gse-haguichi-indicator@ztefn.github.com", "name": "Haguichi Indicator", "pname": "haguichi-indicator", "description": "Lets you control Haguichi directly from the system status area in GNOME Shell.", "link": "https://extensions.gnome.org/extension/1045/haguichi-indicator/", "shell_version_map": {
     "38": {"version": "23", "sha256": "0gffarks0z70gdiz8jlgivv2lzxbr0hwbljjhs1xbffx45rla3g5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldHMgeW91IGNvbnRyb2wgSGFndWljaGkgZGlyZWN0bHkgZnJvbSB0aGUgc3lzdGVtIHN0YXR1cyBhcmVhIGluIEdOT01FIFNoZWxsLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAienRlZm4iCiAgfSwKICAibmFtZSI6ICJIYWd1aWNoaSBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3p0ZWZuL2dzZS1oYWd1aWNoaS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImdzZS1oYWd1aWNoaS1pbmRpY2F0b3JAenRlZm4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"},
@@ -861,7 +879,8 @@
     "42": {"version": "28", "sha256": "0kv6s72wg5ws02ixy6nddwdlinipqkr7wv549rgm4cgb73qb2mvn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJTeXN0ZW0gTW9uaXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbHZldGVtZWR2ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3lzdGVtLW1vbml0b3IiLAogICJ1dWlkIjogIlN5c3RlbV9Nb25pdG9yQGJnaG9tZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjgKfQ=="},
     "43": {"version": "28", "sha256": "0kv6s72wg5ws02ixy6nddwdlinipqkr7wv549rgm4cgb73qb2mvn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJTeXN0ZW0gTW9uaXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbHZldGVtZWR2ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3lzdGVtLW1vbml0b3IiLAogICJ1dWlkIjogIlN5c3RlbV9Nb25pdG9yQGJnaG9tZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjgKfQ=="},
     "44": {"version": "28", "sha256": "0kv6s72wg5ws02ixy6nddwdlinipqkr7wv549rgm4cgb73qb2mvn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJTeXN0ZW0gTW9uaXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbHZldGVtZWR2ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3lzdGVtLW1vbml0b3IiLAogICJ1dWlkIjogIlN5c3RlbV9Nb25pdG9yQGJnaG9tZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjgKfQ=="},
-    "45": {"version": "34", "sha256": "1w4hfv8fcyc9yrr0rc8ffw8mnhmk2dig5881ggw9bqfg9s5p6byx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJTeXN0ZW0gTW9uaXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbHZldGVtZWR2ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3lzdGVtLW1vbml0b3IiLAogICJ1dWlkIjogIlN5c3RlbV9Nb25pdG9yQGJnaG9tZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzQKfQ=="}
+    "45": {"version": "36", "sha256": "09cl6f9m126mcq0gh5h5q1jcimqgk8fwc6b7wg1xl2h0bs6kk5v0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJTeXN0ZW0gTW9uaXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yIiwKICAidXVpZCI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM2Cn0="},
+    "46": {"version": "36", "sha256": "09cl6f9m126mcq0gh5h5q1jcimqgk8fwc6b7wg1xl2h0bs6kk5v0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJTeXN0ZW0gTW9uaXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yIiwKICAidXVpZCI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM2Cn0="}
   }}
 , {"uuid": "syncthing@gnome.2nv2u.com", "name": "Syncthing Indicator", "pname": "syncthing-indicator", "description": "Shell indicator for starting, monitoring and controlling the Syncthing daemon using SystemD", "link": "https://extensions.gnome.org/extension/1070/syncthing-indicator/", "shell_version_map": {
     "38": {"version": "27", "sha256": "08l9xsbndgi7v863x76q4br89gjysaxwx8rhfkcp2nwqw247wfa2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS8ybnYydS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3luY3RoaW5nLWluZGljYXRvciIsCiAgInV1aWQiOiAic3luY3RoaW5nQGdub21lLjJudjJ1LmNvbSIsCiAgInZlcnNpb24iOiAyNwp9"},
@@ -926,7 +945,8 @@
     "42": {"version": "11", "sha256": "0v16xkjry4anjk12iy5p1ny5mh3ckbf4s4h9qmbfljfhmzsfkm09", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgeW91ciBjb21wdXRlciBhd2FrZSEgUHJldmVudHMgdGhhdCB5b3VyIGNvbXB1dGVyIGFjdGl2YXRlcyBzY2VlbnNhdmVyLCB0dXJucyBvZmYgaXRzIHNjcmVlbihzKSBvciBnb2VzIHRvIGhpYmVybmF0ZSB3aGVuIG5vdCBhY3RpdmVseSB1c2VkIGZvciBhIHdoaWxlLiBDbGljayB0aGUgaW5kaWNhdG9yIGljb24gb25jZSB0byBrZWVwIHlvdXIgY29tcHV0ZXIgYXdha2UgZm9yIHRoZSBjdXJyZW50IHNlc3Npb24uIENsaWNrIGFnYWluIHRvIGtlZXAgaXQgYXdha2UgYWxzbyBiZXR3ZWVuIHJlc3RhcnRzIChpbmRpY2F0ZWQgYnkgYSBzbWFsbCBsb2NrIGljb24gb24gdGhlIGluZGljYXRvcikuIENsaWNraW5nIGFnYWluIHRvIG5vdCBrZWVwIGF3YWtlLiIsCiAgIm5hbWUiOiAiS2VlcCBhd2FrZSEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuS2VlcEF3YWtlQGplcGZhLmRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZW5zcGZhaGwvS2VlcEF3YWtlIiwKICAidXVpZCI6ICJLZWVwQXdha2VAamVwZmEuZGUiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
     "43": {"version": "11", "sha256": "0v16xkjry4anjk12iy5p1ny5mh3ckbf4s4h9qmbfljfhmzsfkm09", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgeW91ciBjb21wdXRlciBhd2FrZSEgUHJldmVudHMgdGhhdCB5b3VyIGNvbXB1dGVyIGFjdGl2YXRlcyBzY2VlbnNhdmVyLCB0dXJucyBvZmYgaXRzIHNjcmVlbihzKSBvciBnb2VzIHRvIGhpYmVybmF0ZSB3aGVuIG5vdCBhY3RpdmVseSB1c2VkIGZvciBhIHdoaWxlLiBDbGljayB0aGUgaW5kaWNhdG9yIGljb24gb25jZSB0byBrZWVwIHlvdXIgY29tcHV0ZXIgYXdha2UgZm9yIHRoZSBjdXJyZW50IHNlc3Npb24uIENsaWNrIGFnYWluIHRvIGtlZXAgaXQgYXdha2UgYWxzbyBiZXR3ZWVuIHJlc3RhcnRzIChpbmRpY2F0ZWQgYnkgYSBzbWFsbCBsb2NrIGljb24gb24gdGhlIGluZGljYXRvcikuIENsaWNraW5nIGFnYWluIHRvIG5vdCBrZWVwIGF3YWtlLiIsCiAgIm5hbWUiOiAiS2VlcCBhd2FrZSEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuS2VlcEF3YWtlQGplcGZhLmRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZW5zcGZhaGwvS2VlcEF3YWtlIiwKICAidXVpZCI6ICJLZWVwQXdha2VAamVwZmEuZGUiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
     "44": {"version": "11", "sha256": "0v16xkjry4anjk12iy5p1ny5mh3ckbf4s4h9qmbfljfhmzsfkm09", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgeW91ciBjb21wdXRlciBhd2FrZSEgUHJldmVudHMgdGhhdCB5b3VyIGNvbXB1dGVyIGFjdGl2YXRlcyBzY2VlbnNhdmVyLCB0dXJucyBvZmYgaXRzIHNjcmVlbihzKSBvciBnb2VzIHRvIGhpYmVybmF0ZSB3aGVuIG5vdCBhY3RpdmVseSB1c2VkIGZvciBhIHdoaWxlLiBDbGljayB0aGUgaW5kaWNhdG9yIGljb24gb25jZSB0byBrZWVwIHlvdXIgY29tcHV0ZXIgYXdha2UgZm9yIHRoZSBjdXJyZW50IHNlc3Npb24uIENsaWNrIGFnYWluIHRvIGtlZXAgaXQgYXdha2UgYWxzbyBiZXR3ZWVuIHJlc3RhcnRzIChpbmRpY2F0ZWQgYnkgYSBzbWFsbCBsb2NrIGljb24gb24gdGhlIGluZGljYXRvcikuIENsaWNraW5nIGFnYWluIHRvIG5vdCBrZWVwIGF3YWtlLiIsCiAgIm5hbWUiOiAiS2VlcCBhd2FrZSEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuS2VlcEF3YWtlQGplcGZhLmRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZW5zcGZhaGwvS2VlcEF3YWtlIiwKICAidXVpZCI6ICJLZWVwQXdha2VAamVwZmEuZGUiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
-    "45": {"version": "13", "sha256": "16s99397wrxnjsj92jc0d061clbhx3m38x400rqg8s0lspnmaj13", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgeW91ciBjb21wdXRlciBhd2FrZSEgUHJldmVudHMgdGhhdCB5b3VyIGNvbXB1dGVyIGFjdGl2YXRlcyBzY2VlbnNhdmVyLCB0dXJucyBvZmYgc2NyZWVuKHMpIG9yIGdvZXMgdG8gaGliZXJuYXRlIHdoZW4gbm90IGFjdGl2ZWx5IHVzZWQgZm9yIGEgd2hpbGUuIENsaWNrIHRoZSBpbmRpY2F0b3IgaWNvbiBvbmNlIHRvIGtlZXAgeW91ciBjb21wdXRlciBhd2FrZSBmb3IgdGhlIGN1cnJlbnQgc2Vzc2lvbi4gQ2xpY2sgYWdhaW4gdG8ga2VlcCBpdCBhd2FrZSBhbHNvIGJldHdlZW4gcmVzdGFydHMgKGluZGljYXRlZCBieSBhIHNtYWxsIGxvY2sgaWNvbiBvbiB0aGUgaW5kaWNhdG9yKS4gQ2xpY2tpbmcgYWdhaW4gdG8gbm90IGtlZXAgYXdha2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiS2VlcEF3YWtlIiwKICAibmFtZSI6ICJLZWVwIGF3YWtlISIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5LZWVwQXdha2VAamVwZmEuZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamVuc3BmYWhsL0tlZXBBd2FrZSIsCiAgInV1aWQiOiAiS2VlcEF3YWtlQGplcGZhLmRlIiwKICAidmVyc2lvbiI6IDEzCn0="}
+    "45": {"version": "14", "sha256": "177l0kcffdbm823dz1lsq0ga7mdn4dw76qzahy52bb170vmj9547", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgeW91ciBjb21wdXRlciBhd2FrZSEgUHJldmVudHMgdGhhdCB5b3VyIGNvbXB1dGVyIGFjdGl2YXRlcyBzY2VlbnNhdmVyLCB0dXJucyBvZmYgc2NyZWVuKHMpIG9yIGdvZXMgdG8gaGliZXJuYXRlIHdoZW4gbm90IGFjdGl2ZWx5IHVzZWQgZm9yIGEgd2hpbGUuIENsaWNrIHRoZSBpbmRpY2F0b3IgaWNvbiBvbmNlIHRvIGtlZXAgeW91ciBjb21wdXRlciBhd2FrZSBmb3IgdGhlIGN1cnJlbnQgc2Vzc2lvbi4gQ2xpY2sgYWdhaW4gdG8ga2VlcCBpdCBhd2FrZSBhbHNvIGJldHdlZW4gcmVzdGFydHMgKGluZGljYXRlZCBieSBhIHNtYWxsIGxvY2sgaWNvbiBvbiB0aGUgaW5kaWNhdG9yKS4gQ2xpY2tpbmcgYWdhaW4gdG8gbm90IGtlZXAgYXdha2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiS2VlcEF3YWtlIiwKICAibmFtZSI6ICJLZWVwIGF3YWtlISIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5LZWVwQXdha2VAamVwZmEuZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plbnNwZmFobC9LZWVwQXdha2UiLAogICJ1dWlkIjogIktlZXBBd2FrZUBqZXBmYS5kZSIsCiAgInZlcnNpb24iOiAxNAp9"},
+    "46": {"version": "14", "sha256": "177l0kcffdbm823dz1lsq0ga7mdn4dw76qzahy52bb170vmj9547", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgeW91ciBjb21wdXRlciBhd2FrZSEgUHJldmVudHMgdGhhdCB5b3VyIGNvbXB1dGVyIGFjdGl2YXRlcyBzY2VlbnNhdmVyLCB0dXJucyBvZmYgc2NyZWVuKHMpIG9yIGdvZXMgdG8gaGliZXJuYXRlIHdoZW4gbm90IGFjdGl2ZWx5IHVzZWQgZm9yIGEgd2hpbGUuIENsaWNrIHRoZSBpbmRpY2F0b3IgaWNvbiBvbmNlIHRvIGtlZXAgeW91ciBjb21wdXRlciBhd2FrZSBmb3IgdGhlIGN1cnJlbnQgc2Vzc2lvbi4gQ2xpY2sgYWdhaW4gdG8ga2VlcCBpdCBhd2FrZSBhbHNvIGJldHdlZW4gcmVzdGFydHMgKGluZGljYXRlZCBieSBhIHNtYWxsIGxvY2sgaWNvbiBvbiB0aGUgaW5kaWNhdG9yKS4gQ2xpY2tpbmcgYWdhaW4gdG8gbm90IGtlZXAgYXdha2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiS2VlcEF3YWtlIiwKICAibmFtZSI6ICJLZWVwIGF3YWtlISIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5LZWVwQXdha2VAamVwZmEuZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plbnNwZmFobC9LZWVwQXdha2UiLAogICJ1dWlkIjogIktlZXBBd2FrZUBqZXBmYS5kZSIsCiAgInZlcnNpb24iOiAxNAp9"}
   }}
 , {"uuid": "todolist@tomMoral.org", "name": "Section Todo List", "pname": "section-todo-list", "description": "Manage todo list with an applet\n\n* Add and remove task on your list in different sections.\n* Click an item to rename it.\n* Access the extension using Hot-Key (default: Ctrl+Space)\n\n**Note:** I don't come on this page often so if you need any help, please refer to the github repo and open an issue :) ", "link": "https://extensions.gnome.org/extension/1104/section-todo-list/", "shell_version_map": {
     "38": {"version": "13", "sha256": "0q2sl28w2dmcdxvhvwvldmm89qh3m83678nww0v6varbmf99vj1b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB0b2RvIGxpc3Qgd2l0aCBhbiBhcHBsZXRcblxuKiBBZGQgYW5kIHJlbW92ZSB0YXNrIG9uIHlvdXIgbGlzdCBpbiBkaWZmZXJlbnQgc2VjdGlvbnMuXG4qIENsaWNrIGFuIGl0ZW0gdG8gcmVuYW1lIGl0LlxuKiBBY2Nlc3MgdGhlIGV4dGVuc2lvbiB1c2luZyBIb3QtS2V5IChkZWZhdWx0OiBDdHJsK1NwYWNlKVxuXG4qKk5vdGU6KiogSSBkb24ndCBjb21lIG9uIHRoaXMgcGFnZSBvZnRlbiBzbyBpZiB5b3UgbmVlZCBhbnkgaGVscCwgcGxlYXNlIHJlZmVyIHRvIHRoZSBnaXRodWIgcmVwbyBhbmQgb3BlbiBhbiBpc3N1ZSA6KSAiLAogICJuYW1lIjogIlNlY3Rpb24gVG9kbyBMaXN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdG9tTW9yYWwvVG9Eb0xpc3QiLAogICJ1dWlkIjogInRvZG9saXN0QHRvbU1vcmFsLm9yZyIsCiAgInZlcnNpb24iOiAxMwp9"},
@@ -1024,7 +1044,8 @@
     "42": {"version": "37", "sha256": "1v0qjzyqylhhdqybm6p2lhiwp3cz1mnx7lq7gbpznf4k2w44mi8f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiQWN0aXZpdHkgQXBwIExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2FjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJ1dWlkIjogImFjdGl2aXR5QXBwTGF1bmNoZXJAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="},
     "43": {"version": "37", "sha256": "1v0qjzyqylhhdqybm6p2lhiwp3cz1mnx7lq7gbpznf4k2w44mi8f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiQWN0aXZpdHkgQXBwIExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2FjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJ1dWlkIjogImFjdGl2aXR5QXBwTGF1bmNoZXJAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="},
     "44": {"version": "37", "sha256": "1v0qjzyqylhhdqybm6p2lhiwp3cz1mnx7lq7gbpznf4k2w44mi8f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiQWN0aXZpdHkgQXBwIExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2FjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJ1dWlkIjogImFjdGl2aXR5QXBwTGF1bmNoZXJAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="},
-    "45": {"version": "39", "sha256": "0khrd333k5sch7q31f375kzim25fa8pwa9s0gawr151n8bmsxqds", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgImdldHRleHQtZG9tYWluIjogImFjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJuYW1lIjogIkFjdGl2aXR5IEFwcCBMYXVuY2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hY3Rpdml0eUFwcExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3Jhc3RlcnNvZnQvYWN0aXZpdHlBcHBMYXVuY2hlciIsCiAgInV1aWQiOiAiYWN0aXZpdHlBcHBMYXVuY2hlckByYXN0ZXJzb2Z0LmNvbSIsCiAgInZlcnNpb24iOiAzOQp9"}
+    "45": {"version": "41", "sha256": "1j9k0qf19pj60749fwy9907cxxl8sy4qxbw722is2qddqphxz171", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgImdldHRleHQtZG9tYWluIjogImFjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJuYW1lIjogIkFjdGl2aXR5IEFwcCBMYXVuY2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hY3Rpdml0eUFwcExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2FjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJ1dWlkIjogImFjdGl2aXR5QXBwTGF1bmNoZXJAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogNDEKfQ=="},
+    "46": {"version": "41", "sha256": "1j9k0qf19pj60749fwy9907cxxl8sy4qxbw722is2qddqphxz171", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgImdldHRleHQtZG9tYWluIjogImFjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJuYW1lIjogIkFjdGl2aXR5IEFwcCBMYXVuY2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hY3Rpdml0eUFwcExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2FjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJ1dWlkIjogImFjdGl2aXR5QXBwTGF1bmNoZXJAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogNDEKfQ=="}
   }}
 , {"uuid": "shutdown-timer-gnome-shell-extension", "name": "ShutdownTimer", "pname": "shutdowntimer", "description": "Allows to shutdown, restart and suspend computer after selected amount of time or in selected time.", "link": "https://extensions.gnome.org/extension/1152/shutdowntimer/", "shell_version_map": {
     "40": {"version": "9", "sha256": "1y69lv3mq66xxfxabngnbb104d26i05cyhmx3dqf4kyf1kd6jqvx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0byBzaHV0ZG93biwgcmVzdGFydCBhbmQgc3VzcGVuZCBjb21wdXRlciBhZnRlciBzZWxlY3RlZCBhbW91bnQgb2YgdGltZSBvciBpbiBzZWxlY3RlZCB0aW1lLiIsCiAgImdldHRleHQtZG9tYWluIjogIkF1dG9tYXRpY1NodXRkb3duVGltZXIiLAogICJuYW1lIjogIlNodXRkb3duVGltZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXV0b21hdGljLXNodXRkb3duLXRpbWVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21rcmFqbmFrL3NodXRkb3duLXRpbWVyLWdub21lLXNoZWxsLWV4dGVuc2lvbi8iLAogICJ1dWlkIjogInNodXRkb3duLXRpbWVyLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInZlcnNpb24iOiA5Cn0="}
@@ -1076,7 +1097,8 @@
     "42": {"version": "32", "sha256": "0kpg34m9n4m6cm262gz20akrjlpd7mhfgqsbrjs9wr9xv16wzw95", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLlxuXG5OT1RFOiBJIGlnbm9yZSBidWcgcmVwb3J0cyBzZW50IGhlcmUuIFBsZWFzZSB1c2UgZ2l0aHViLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWl2YWxlby9TaG93LURlc2t0b3AtQnV0dG9uIiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uQGFtaXZhbGVvIiwKICAidmVyc2lvbiI6IDMyCn0="},
     "43": {"version": "32", "sha256": "0kpg34m9n4m6cm262gz20akrjlpd7mhfgqsbrjs9wr9xv16wzw95", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLlxuXG5OT1RFOiBJIGlnbm9yZSBidWcgcmVwb3J0cyBzZW50IGhlcmUuIFBsZWFzZSB1c2UgZ2l0aHViLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWl2YWxlby9TaG93LURlc2t0b3AtQnV0dG9uIiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uQGFtaXZhbGVvIiwKICAidmVyc2lvbiI6IDMyCn0="},
     "44": {"version": "32", "sha256": "0kpg34m9n4m6cm262gz20akrjlpd7mhfgqsbrjs9wr9xv16wzw95", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLlxuXG5OT1RFOiBJIGlnbm9yZSBidWcgcmVwb3J0cyBzZW50IGhlcmUuIFBsZWFzZSB1c2UgZ2l0aHViLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWl2YWxlby9TaG93LURlc2t0b3AtQnV0dG9uIiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uQGFtaXZhbGVvIiwKICAidmVyc2lvbiI6IDMyCn0="},
-    "45": {"version": "34", "sha256": "0xdk1prwhkp7vm3a7p011kh984rhb443caa3jc09vjzzvl07v52z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtaXZhbGVvL1Nob3ctRGVza3RvcC1CdXR0b24iLAogICJ1dWlkIjogInNob3ctZGVza3RvcC1idXR0b25AYW1pdmFsZW8iLAogICJ2ZXJzaW9uIjogMzQKfQ=="}
+    "45": {"version": "35", "sha256": "0izyic6a5laajgnm29cw3r6f6m7q96530j1k6wvsanb8r1j21v01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWl2YWxlby9TaG93LURlc2t0b3AtQnV0dG9uIiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uQGFtaXZhbGVvIiwKICAidmVyc2lvbiI6IDM1Cn0="},
+    "46": {"version": "35", "sha256": "0izyic6a5laajgnm29cw3r6f6m7q96530j1k6wvsanb8r1j21v01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWl2YWxlby9TaG93LURlc2t0b3AtQnV0dG9uIiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uQGFtaXZhbGVvIiwKICAidmVyc2lvbiI6IDM1Cn0="}
   }}
 , {"uuid": "walkpaper@walkpaper.blinkbp.github.com", "name": "Walkpaper", "pname": "walkpaper", "description": "Set different wallpaper for each workspace by having the wallpaper switch on workspace change.", "link": "https://extensions.gnome.org/extension/1200/walkpaper/", "shell_version_map": {
     "40": {"version": "9", "sha256": "1ckrf3y20wp3dv4aig44rycj7kbrxj14gh3rzs17vcqma3aw76bq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBkaWZmZXJlbnQgd2FsbHBhcGVyIGZvciBlYWNoIHdvcmtzcGFjZSBieSBoYXZpbmcgdGhlIHdhbGxwYXBlciBzd2l0Y2ggb24gd29ya3NwYWNlIGNoYW5nZS4iLAogICJleHRlbnNpb24taWQiOiAid2Fsa3BhcGVyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZW5nbGlzaCIsCiAgIm5hbWUiOiAiV2Fsa3BhcGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndhbGtwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmxpbmtCUC93YWxrcGFwZXIiLAogICJ1dWlkIjogIndhbGtwYXBlckB3YWxrcGFwZXIuYmxpbmticC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="},
@@ -1114,7 +1136,8 @@
     "42": {"version": "21", "sha256": "0iz189f0wjz1m57g48hj6zpg5ix0hghr8qlybxsfqd4kyh5ls6an", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBKb2JzIGFuZCBQcmludGVycy4gUmVxdWlyZWQgcGFja2FnZTogY3Vwcy1ic2QiLAogICJleHRlbnNpb24taWQiOiAicHJpbnRlcnMiLAogICJuYW1lIjogIlByaW50ZXJzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJqb2FvLmNhbGRhcy5sb3Blc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnByaW50ZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9saW51eC1tYW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXByaW50ZXJzIiwKICAidXVpZCI6ICJwcmludGVyc0BsaW51eC1tYW4ub3JnIiwKICAidmVyc2lvbiI6IDIxCn0="},
     "43": {"version": "21", "sha256": "0iz189f0wjz1m57g48hj6zpg5ix0hghr8qlybxsfqd4kyh5ls6an", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBKb2JzIGFuZCBQcmludGVycy4gUmVxdWlyZWQgcGFja2FnZTogY3Vwcy1ic2QiLAogICJleHRlbnNpb24taWQiOiAicHJpbnRlcnMiLAogICJuYW1lIjogIlByaW50ZXJzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJqb2FvLmNhbGRhcy5sb3Blc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnByaW50ZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9saW51eC1tYW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXByaW50ZXJzIiwKICAidXVpZCI6ICJwcmludGVyc0BsaW51eC1tYW4ub3JnIiwKICAidmVyc2lvbiI6IDIxCn0="},
     "44": {"version": "21", "sha256": "0iz189f0wjz1m57g48hj6zpg5ix0hghr8qlybxsfqd4kyh5ls6an", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBKb2JzIGFuZCBQcmludGVycy4gUmVxdWlyZWQgcGFja2FnZTogY3Vwcy1ic2QiLAogICJleHRlbnNpb24taWQiOiAicHJpbnRlcnMiLAogICJuYW1lIjogIlByaW50ZXJzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJqb2FvLmNhbGRhcy5sb3Blc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnByaW50ZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9saW51eC1tYW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXByaW50ZXJzIiwKICAidXVpZCI6ICJwcmludGVyc0BsaW51eC1tYW4ub3JnIiwKICAidmVyc2lvbiI6IDIxCn0="},
-    "45": {"version": "24", "sha256": "1jwnzqlr5nhjg9sj9wmwipm7gxq9d6cvqq4b6is8fsz7icxax85x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBKb2JzIGFuZCBQcmludGVycy4gUmVxdWlyZWQgcGFja2FnZTogY3Vwcy1ic2QiLAogICJleHRlbnNpb24taWQiOiAicHJpbnRlcnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwcmludGVycyIsCiAgIm5hbWUiOiAiUHJpbnRlcnMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvYW8uY2FsZGFzLmxvcGVzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucHJpbnRlcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGludXgtbWFuL2dub21lLXNoZWxsLWV4dGVuc2lvbi1wcmludGVycyIsCiAgInV1aWQiOiAicHJpbnRlcnNAbGludXgtbWFuLm9yZyIsCiAgInZlcnNpb24iOiAyNAp9"}
+    "45": {"version": "24", "sha256": "1jwnzqlr5nhjg9sj9wmwipm7gxq9d6cvqq4b6is8fsz7icxax85x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBKb2JzIGFuZCBQcmludGVycy4gUmVxdWlyZWQgcGFja2FnZTogY3Vwcy1ic2QiLAogICJleHRlbnNpb24taWQiOiAicHJpbnRlcnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwcmludGVycyIsCiAgIm5hbWUiOiAiUHJpbnRlcnMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvYW8uY2FsZGFzLmxvcGVzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucHJpbnRlcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGludXgtbWFuL2dub21lLXNoZWxsLWV4dGVuc2lvbi1wcmludGVycyIsCiAgInV1aWQiOiAicHJpbnRlcnNAbGludXgtbWFuLm9yZyIsCiAgInZlcnNpb24iOiAyNAp9"},
+    "46": {"version": "25", "sha256": "13g5913d5dm45iq1wcbrg6pp61d0pxi4y0j2k6qbfb8wzwc8dv2c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBKb2JzIGFuZCBQcmludGVycy4gUmVxdWlyZWQgcGFja2FnZTogY3Vwcy1ic2QiLAogICJleHRlbnNpb24taWQiOiAicHJpbnRlcnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwcmludGVycyIsCiAgIm5hbWUiOiAiUHJpbnRlcnMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvYW8uY2FsZGFzLmxvcGVzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucHJpbnRlcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGludXgtbWFuL2dub21lLXNoZWxsLWV4dGVuc2lvbi1wcmludGVycyIsCiAgInV1aWQiOiAicHJpbnRlcnNAbGludXgtbWFuLm9yZyIsCiAgInZlcnNpb24iOiAyNQp9"}
   }}
 , {"uuid": "move-osd-windows@maestroschan.fr", "name": "Move OSD Windows", "pname": "move-osd-windows", "description": "Change the position of OSD windows (sound & luminosity popups).", "link": "https://extensions.gnome.org/extension/1220/move-osd-windows/", "shell_version_map": {
     "38": {"version": "3", "sha256": "1nmvbx7qbr9a9al5wirnsfwn4qb1qbql2w9f7fpajipasill9hkd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgcG9zaXRpb24gb2YgT1NEIHdpbmRvd3MgKHNvdW5kICYgbHVtaW5vc2l0eSBwb3B1cHMpLiIsCiAgImdldHRleHQtZG9tYWluIjogIm1vdmUtb3NkLXdpbmRvd3MiLAogICJuYW1lIjogIk1vdmUgT1NEIFdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NYWVzdHJvc2NoYW4vTW92ZS1PU0QtV2luZG93cy1HTk9NRS1FeHRlbnNpb24iLAogICJ1dWlkIjogIm1vdmUtb3NkLXdpbmRvd3NAbWFlc3Ryb3NjaGFuLmZyIiwKICAidmVyc2lvbiI6IDMKfQ=="}
@@ -1153,8 +1176,8 @@
     "42": {"version": "31", "sha256": "0f6wsvdfqzf7fpsk0rgp7rjm267xsy64ksq504krdlg9wpgammhj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBTb21hRm0gZnJlZSBpbnRlcm5ldCByYWRpbyBpbiB5b3VyIEdOT01FIGRlc2t0b3BcblxuKiBGZWF0dWVzOlxuLSAzMisgQ2hhbm5lbHNcbi0gVm9sdW1lIHNsaWRlclxuLSBGYXZvcml0ZXMgbWVudVxuLSBHb29kIHNvdW5kIHF1YWxpdHlcbi0gU3VwcG9ydHMgbW9zdCBnbm9tZS1zaGVsbCB2ZXJzaW9uc1xuLSBDaGFubmVsIGxvZ29zXG5cbiogUmVxdWlyZW1lbnRzOlxuLSBHc3RyZWFtZXIgYW5kIHBsdWdpbnM6XG5Zb3UgbmVlZCB0byBpbnN0YWxsICdnc3RyZWFtZXInIGFuZCBtdWx0aW1lZGlhIGNvZGVjcy9wbHVnaW5zIGZvciB5b3VyIGRpc3Ryby4iLAogICJuYW1lIjogIlNvbWFGTSBpbnRlcm5ldCByYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwOi8vZ2l0aHViLmNvbS9UaGVXZWlyZERldi9zb21hZm0tcmFkaW8tZ25vbWUtZXh0IiwKICAidXVpZCI6ICJTb21hRm0tUmFkaW9AYWxpcmV6YTY2NzcuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMxCn0="},
     "43": {"version": "31", "sha256": "0f6wsvdfqzf7fpsk0rgp7rjm267xsy64ksq504krdlg9wpgammhj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBTb21hRm0gZnJlZSBpbnRlcm5ldCByYWRpbyBpbiB5b3VyIEdOT01FIGRlc2t0b3BcblxuKiBGZWF0dWVzOlxuLSAzMisgQ2hhbm5lbHNcbi0gVm9sdW1lIHNsaWRlclxuLSBGYXZvcml0ZXMgbWVudVxuLSBHb29kIHNvdW5kIHF1YWxpdHlcbi0gU3VwcG9ydHMgbW9zdCBnbm9tZS1zaGVsbCB2ZXJzaW9uc1xuLSBDaGFubmVsIGxvZ29zXG5cbiogUmVxdWlyZW1lbnRzOlxuLSBHc3RyZWFtZXIgYW5kIHBsdWdpbnM6XG5Zb3UgbmVlZCB0byBpbnN0YWxsICdnc3RyZWFtZXInIGFuZCBtdWx0aW1lZGlhIGNvZGVjcy9wbHVnaW5zIGZvciB5b3VyIGRpc3Ryby4iLAogICJuYW1lIjogIlNvbWFGTSBpbnRlcm5ldCByYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwOi8vZ2l0aHViLmNvbS9UaGVXZWlyZERldi9zb21hZm0tcmFkaW8tZ25vbWUtZXh0IiwKICAidXVpZCI6ICJTb21hRm0tUmFkaW9AYWxpcmV6YTY2NzcuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMxCn0="},
     "44": {"version": "31", "sha256": "0f6wsvdfqzf7fpsk0rgp7rjm267xsy64ksq504krdlg9wpgammhj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBTb21hRm0gZnJlZSBpbnRlcm5ldCByYWRpbyBpbiB5b3VyIEdOT01FIGRlc2t0b3BcblxuKiBGZWF0dWVzOlxuLSAzMisgQ2hhbm5lbHNcbi0gVm9sdW1lIHNsaWRlclxuLSBGYXZvcml0ZXMgbWVudVxuLSBHb29kIHNvdW5kIHF1YWxpdHlcbi0gU3VwcG9ydHMgbW9zdCBnbm9tZS1zaGVsbCB2ZXJzaW9uc1xuLSBDaGFubmVsIGxvZ29zXG5cbiogUmVxdWlyZW1lbnRzOlxuLSBHc3RyZWFtZXIgYW5kIHBsdWdpbnM6XG5Zb3UgbmVlZCB0byBpbnN0YWxsICdnc3RyZWFtZXInIGFuZCBtdWx0aW1lZGlhIGNvZGVjcy9wbHVnaW5zIGZvciB5b3VyIGRpc3Ryby4iLAogICJuYW1lIjogIlNvbWFGTSBpbnRlcm5ldCByYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwOi8vZ2l0aHViLmNvbS9UaGVXZWlyZERldi9zb21hZm0tcmFkaW8tZ25vbWUtZXh0IiwKICAidXVpZCI6ICJTb21hRm0tUmFkaW9AYWxpcmV6YTY2NzcuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMxCn0="},
-    "45": {"version": "39", "sha256": "0havccc37vgkqyf5fl00wxyzw56gdx75bb175i3zwxzck6cajj2v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBTb21hRm0gZnJlZSBpbnRlcm5ldCByYWRpbyBpbiB5b3VyIEdOT01FIGRlc2t0b3BcblxuKiBGZWF0dWVzOlxuLSAzMisgQ2hhbm5lbHNcbi0gVm9sdW1lIHNsaWRlclxuLSBGYXZvcml0ZXMgbWVudVxuLSBHb29kIHNvdW5kIHF1YWxpdHlcbi0gU3VwcG9ydHMgbW9zdCBnbm9tZS1zaGVsbCB2ZXJzaW9uc1xuLSBDaGFubmVsIGxvZ29zXG4tIEhvbGlkYXkgY2hhbm5lbHMgKG9ubHkgaW4gRGVjZW1iZXIpXG5cbiogUmVxdWlyZW1lbnRzOlxuLSBHc3RyZWFtZXIgYW5kIHBsdWdpbnM6XG5Zb3UgbmVlZCB0byBpbnN0YWxsICdnc3RyZWFtZXInIGFuZCBtdWx0aW1lZGlhIGNvZGVjcy9wbHVnaW5zIGZvciB5b3VyIGRpc3Ryby4iLAogICJuYW1lIjogIlNvbWFGTSBpbnRlcm5ldCByYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwOi8vZ2l0aHViLmNvbS9UaGVXZWlyZERldi9zb21hZm0tcmFkaW8tZ25vbWUtZXh0IiwKICAidXVpZCI6ICJTb21hRm0tUmFkaW9AYWxpcmV6YTY2NzcuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM5Cn0="},
-    "46": {"version": "39", "sha256": "0havccc37vgkqyf5fl00wxyzw56gdx75bb175i3zwxzck6cajj2v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBTb21hRm0gZnJlZSBpbnRlcm5ldCByYWRpbyBpbiB5b3VyIEdOT01FIGRlc2t0b3BcblxuKiBGZWF0dWVzOlxuLSAzMisgQ2hhbm5lbHNcbi0gVm9sdW1lIHNsaWRlclxuLSBGYXZvcml0ZXMgbWVudVxuLSBHb29kIHNvdW5kIHF1YWxpdHlcbi0gU3VwcG9ydHMgbW9zdCBnbm9tZS1zaGVsbCB2ZXJzaW9uc1xuLSBDaGFubmVsIGxvZ29zXG4tIEhvbGlkYXkgY2hhbm5lbHMgKG9ubHkgaW4gRGVjZW1iZXIpXG5cbiogUmVxdWlyZW1lbnRzOlxuLSBHc3RyZWFtZXIgYW5kIHBsdWdpbnM6XG5Zb3UgbmVlZCB0byBpbnN0YWxsICdnc3RyZWFtZXInIGFuZCBtdWx0aW1lZGlhIGNvZGVjcy9wbHVnaW5zIGZvciB5b3VyIGRpc3Ryby4iLAogICJuYW1lIjogIlNvbWFGTSBpbnRlcm5ldCByYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwOi8vZ2l0aHViLmNvbS9UaGVXZWlyZERldi9zb21hZm0tcmFkaW8tZ25vbWUtZXh0IiwKICAidXVpZCI6ICJTb21hRm0tUmFkaW9AYWxpcmV6YTY2NzcuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM5Cn0="}
+    "45": {"version": "40", "sha256": "03151gwjrr5b8jb73fgpx1n6180xs9f956cd25ybmcwszh0372ph", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBTb21hRm0gZnJlZSBpbnRlcm5ldCByYWRpbyBpbiB5b3VyIEdOT01FIGRlc2t0b3BcblxuKiBGZWF0dWVzOlxuLSAzMisgQ2hhbm5lbHNcbi0gVm9sdW1lIHNsaWRlclxuLSBGYXZvcml0ZXMgbWVudVxuLSBHb29kIHNvdW5kIHF1YWxpdHlcbi0gU3VwcG9ydHMgbW9zdCBnbm9tZS1zaGVsbCB2ZXJzaW9uc1xuLSBDaGFubmVsIGxvZ29zXG4tIEhvbGlkYXkgY2hhbm5lbHMgKG9ubHkgaW4gRGVjZW1iZXIpXG5cbiogUmVxdWlyZW1lbnRzOlxuLSBHc3RyZWFtZXIgYW5kIHBsdWdpbnM6XG5Zb3UgbmVlZCB0byBpbnN0YWxsICdnc3RyZWFtZXInIGFuZCBtdWx0aW1lZGlhIGNvZGVjcy9wbHVnaW5zIGZvciB5b3VyIGRpc3Ryby4iLAogICJuYW1lIjogIlNvbWFGTSBpbnRlcm5ldCByYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwOi8vZ2l0aHViLmNvbS9UaGVXZWlyZERldi9zb21hZm0tcmFkaW8tZ25vbWUtZXh0IiwKICAidXVpZCI6ICJTb21hRm0tUmFkaW9AYWxpcmV6YTY2NzcuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQwCn0="},
+    "46": {"version": "40", "sha256": "03151gwjrr5b8jb73fgpx1n6180xs9f956cd25ybmcwszh0372ph", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBTb21hRm0gZnJlZSBpbnRlcm5ldCByYWRpbyBpbiB5b3VyIEdOT01FIGRlc2t0b3BcblxuKiBGZWF0dWVzOlxuLSAzMisgQ2hhbm5lbHNcbi0gVm9sdW1lIHNsaWRlclxuLSBGYXZvcml0ZXMgbWVudVxuLSBHb29kIHNvdW5kIHF1YWxpdHlcbi0gU3VwcG9ydHMgbW9zdCBnbm9tZS1zaGVsbCB2ZXJzaW9uc1xuLSBDaGFubmVsIGxvZ29zXG4tIEhvbGlkYXkgY2hhbm5lbHMgKG9ubHkgaW4gRGVjZW1iZXIpXG5cbiogUmVxdWlyZW1lbnRzOlxuLSBHc3RyZWFtZXIgYW5kIHBsdWdpbnM6XG5Zb3UgbmVlZCB0byBpbnN0YWxsICdnc3RyZWFtZXInIGFuZCBtdWx0aW1lZGlhIGNvZGVjcy9wbHVnaW5zIGZvciB5b3VyIGRpc3Ryby4iLAogICJuYW1lIjogIlNvbWFGTSBpbnRlcm5ldCByYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwOi8vZ2l0aHViLmNvbS9UaGVXZWlyZERldi9zb21hZm0tcmFkaW8tZ25vbWUtZXh0IiwKICAidXVpZCI6ICJTb21hRm0tUmFkaW9AYWxpcmV6YTY2NzcuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQwCn0="}
   }}
 , {"uuid": "timepp@zagortenay333", "name": "Time++", "pname": "time", "description": "All-in-one timer, stopwatch, pomodoro, alarm, todo and time tracker\n\nThis extension has been renamed and is available at:\n\nhttps://extensions.gnome.org/extension/6003/cronomix/\n", "link": "https://extensions.gnome.org/extension/1238/time/", "shell_version_map": {
     "38": {"version": "155", "sha256": "0q3612mlccfzma6i9vs3g42xg71axach3gi7llajrlx59y5jjgb5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNhY2hlLWZpbGUtZm9ybWF0LXZlcnNpb24iOiB7CiAgICAiYWxhcm1zIjogMywKICAgICJwb21vZG9ybyI6IDMsCiAgICAic3RvcHdhdGNoIjogNCwKICAgICJ0aW1lciI6IDMsCiAgICAidG9kbyI6IDEwCiAgfSwKICAiZGVzY3JpcHRpb24iOiAiQWxsLWluLW9uZSB0aW1lciwgc3RvcHdhdGNoLCBwb21vZG9ybywgYWxhcm0sIHRvZG8gYW5kIHRpbWUgdHJhY2tlclxuXG5UaGlzIGV4dGVuc2lvbiBoYXMgYmVlbiByZW5hbWVkIGFuZCBpcyBhdmFpbGFibGUgYXQ6XG5cbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzYwMDMvY3Jvbm9taXgvXG4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0aW1lcHAiLAogICJpc3N1ZXNfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUvaXNzdWVzIiwKICAibmFtZSI6ICJUaW1lKysiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiaHR0cHM6Ly9naXRodWIuY29tL3phZ29ydGVuYXkzMzMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidHJhbnNsYXRpb25zX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemFnb3J0ZW5heTMzMy90aW1lcHBfX2dub21lL3RyZWUvbWFzdGVyL2RhdGEvcG9fZmlsZXMiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3phZ29ydGVuYXkzMzMvY3Jvbm9taXgiLAogICJ1dWlkIjogInRpbWVwcEB6YWdvcnRlbmF5MzMzIiwKICAidmVyc2lvbiI6IDE1NQp9"},
@@ -1251,9 +1274,11 @@
   }}
 , {"uuid": "nvidiautil@ethanwharris", "name": "NVIDIA GPU Stats Tool", "pname": "nvidia-gpu-stats-tool", "description": "Shows NVIDIA GPU stats in the toolbar. Requires nvidia-settings or nvidia-smi. Includes Bumblebee support.", "link": "https://extensions.gnome.org/extension/1320/nvidia-gpu-stats-tool/", "shell_version_map": {
     "38": {"version": "8", "sha256": "12yi2kcq2rm1ddb8djjlffvk6dhpfd996wjhwdf4jch1r85r8a30", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXRoYW53aGFycmlzL2dub21lLW52aWRpYS1leHRlbnNpb24iLAogICJ1dWlkIjogIm52aWRpYXV0aWxAZXRoYW53aGFycmlzIiwKICAidmVyc2lvbiI6IDgKfQ=="},
-    "40": {"version": "10", "sha256": "1x6ifcdmvfvp1y5xj2fmb50gw9m9jrhxrq9jpqjgx7y4mbp6xazb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXRoYW53aGFycmlzL2dub21lLW52aWRpYS1leHRlbnNpb24iLAogICJ1dWlkIjogIm52aWRpYXV0aWxAZXRoYW53aGFycmlzIiwKICAidmVyc2lvbiI6IDEwCn0="},
-    "41": {"version": "10", "sha256": "1x6ifcdmvfvp1y5xj2fmb50gw9m9jrhxrq9jpqjgx7y4mbp6xazb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXRoYW53aGFycmlzL2dub21lLW52aWRpYS1leHRlbnNpb24iLAogICJ1dWlkIjogIm52aWRpYXV0aWxAZXRoYW53aGFycmlzIiwKICAidmVyc2lvbiI6IDEwCn0="},
-    "42": {"version": "10", "sha256": "1x6ifcdmvfvp1y5xj2fmb50gw9m9jrhxrq9jpqjgx7y4mbp6xazb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXRoYW53aGFycmlzL2dub21lLW52aWRpYS1leHRlbnNpb24iLAogICJ1dWlkIjogIm52aWRpYXV0aWxAZXRoYW53aGFycmlzIiwKICAidmVyc2lvbiI6IDEwCn0="}
+    "40": {"version": "12", "sha256": "1vjdm6nrh3z9g4z340w3n72cnv14rhmi9dzck6j7c4c5zy03m44m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldGhhbndoYXJyaXMvZ25vbWUtbnZpZGlhLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibnZpZGlhdXRpbEBldGhhbndoYXJyaXMiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "41": {"version": "12", "sha256": "1vjdm6nrh3z9g4z340w3n72cnv14rhmi9dzck6j7c4c5zy03m44m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldGhhbndoYXJyaXMvZ25vbWUtbnZpZGlhLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibnZpZGlhdXRpbEBldGhhbndoYXJyaXMiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "42": {"version": "12", "sha256": "1vjdm6nrh3z9g4z340w3n72cnv14rhmi9dzck6j7c4c5zy03m44m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldGhhbndoYXJyaXMvZ25vbWUtbnZpZGlhLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibnZpZGlhdXRpbEBldGhhbndoYXJyaXMiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "43": {"version": "12", "sha256": "1vjdm6nrh3z9g4z340w3n72cnv14rhmi9dzck6j7c4c5zy03m44m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldGhhbndoYXJyaXMvZ25vbWUtbnZpZGlhLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibnZpZGlhdXRpbEBldGhhbndoYXJyaXMiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "44": {"version": "12", "sha256": "1vjdm6nrh3z9g4z340w3n72cnv14rhmi9dzck6j7c4c5zy03m44m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldGhhbndoYXJyaXMvZ25vbWUtbnZpZGlhLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibnZpZGlhdXRpbEBldGhhbndoYXJyaXMiLAogICJ2ZXJzaW9uIjogMTIKfQ=="}
   }}
 , {"uuid": "pause-night-light@tijnschuurmans.nl", "name": "Pause Night Light", "pname": "pause-night-light", "description": "Disable Night Light for 10 seconds. This short interruption allows you to scan a colour code (e.g. Crontosign) from your screen.", "link": "https://extensions.gnome.org/extension/1327/pause-night-light/", "shell_version_map": {
     "40": {"version": "8", "sha256": "1j4yywvmwplbyjjwp79rxmfgsf7kv67v0d9rhbg6bnqw04bq91ki", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgTmlnaHQgTGlnaHQgZm9yIDEwIHNlY29uZHMuIFRoaXMgc2hvcnQgaW50ZXJydXB0aW9uIGFsbG93cyB5b3UgdG8gc2NhbiBhIGNvbG91ciBjb2RlIChlLmcuIENyb250b3NpZ24pIGZyb20geW91ciBzY3JlZW4uIiwKICAibmFtZSI6ICJQYXVzZSBOaWdodCBMaWdodCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Rpam4vcGF1c2UtbmlnaHQtbGlnaHQiLAogICJ1dWlkIjogInBhdXNlLW5pZ2h0LWxpZ2h0QHRpam5zY2h1dXJtYW5zLm5sIiwKICAidmVyc2lvbiI6IDgKfQ=="}
@@ -1328,7 +1353,8 @@
     "42": {"version": "7", "sha256": "0fq8gwppj21r1082ga6yyhfjlhqgxs6fjychrksvin2wkqkavw46", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG51bWJlciBvZiBub3RpZmljYXRpb25zIGluIHF1ZXVlLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIENvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmtyaXphbi9Ob3RpZmljYXRpb25Db3VudGVyIiwKICAidXVpZCI6ICJOb3RpZmljYXRpb25Db3VudGVyQGNvb2xsbHNrIiwKICAidmVyc2lvbiI6IDcKfQ=="},
     "43": {"version": "7", "sha256": "0fq8gwppj21r1082ga6yyhfjlhqgxs6fjychrksvin2wkqkavw46", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG51bWJlciBvZiBub3RpZmljYXRpb25zIGluIHF1ZXVlLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIENvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmtyaXphbi9Ob3RpZmljYXRpb25Db3VudGVyIiwKICAidXVpZCI6ICJOb3RpZmljYXRpb25Db3VudGVyQGNvb2xsbHNrIiwKICAidmVyc2lvbiI6IDcKfQ=="},
     "44": {"version": "7", "sha256": "0fq8gwppj21r1082ga6yyhfjlhqgxs6fjychrksvin2wkqkavw46", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG51bWJlciBvZiBub3RpZmljYXRpb25zIGluIHF1ZXVlLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIENvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmtyaXphbi9Ob3RpZmljYXRpb25Db3VudGVyIiwKICAidXVpZCI6ICJOb3RpZmljYXRpb25Db3VudGVyQGNvb2xsbHNrIiwKICAidmVyc2lvbiI6IDcKfQ=="},
-    "45": {"version": "8", "sha256": "1p170hsn3fi9ncj2h22kmcg4k1mhx6ng07567ffbsgv3c5cykjj1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG51bWJlciBvZiBub3RpZmljYXRpb25zIGluIHF1ZXVlLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIENvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmtyaXphbi9Ob3RpZmljYXRpb25Db3VudGVyIiwKICAidXVpZCI6ICJOb3RpZmljYXRpb25Db3VudGVyQGNvb2xsbHNrIiwKICAidmVyc2lvbiI6IDgKfQ=="}
+    "45": {"version": "8", "sha256": "1p170hsn3fi9ncj2h22kmcg4k1mhx6ng07567ffbsgv3c5cykjj1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG51bWJlciBvZiBub3RpZmljYXRpb25zIGluIHF1ZXVlLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIENvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmtyaXphbi9Ob3RpZmljYXRpb25Db3VudGVyIiwKICAidXVpZCI6ICJOb3RpZmljYXRpb25Db3VudGVyQGNvb2xsbHNrIiwKICAidmVyc2lvbiI6IDgKfQ=="},
+    "46": {"version": "9", "sha256": "1qv1vdiq1p7pxi2ajyr4xyr8dj531yx1ylqdy7v2vrwnv3dchq0a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG51bWJlciBvZiBub3RpZmljYXRpb25zIGluIHF1ZXVlLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIENvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmtyaXphbi9Ob3RpZmljYXRpb25Db3VudGVyIiwKICAidXVpZCI6ICJOb3RpZmljYXRpb25Db3VudGVyQGNvb2xsbHNrIiwKICAidmVyc2lvbiI6IDkKfQ=="}
   }}
 , {"uuid": "you2ber@konkor", "name": "you2ber", "pname": "you2ber", "description": "Gnome Youtube Downloader\n\n Simple helper for youtube-dl project. It allows you to save locally desired media content without any browser extensions. Just copy URL address of a media content to the clipboard and select desired quality profile or custom format for the item in the extension menu to store it.\n * Required the installation of ffmpeg (youtube-dl dependency for media manipulation)\n\nFor more information and how-to see README.md", "link": "https://extensions.gnome.org/extension/1392/you2ber/", "shell_version_map": {
     "40": {"version": "10", "sha256": "0dx5x22imwagx2j07xnayvd7zgsk7cyby7gh4jl935ndxmdp05fc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFlvdXR1YmUgRG93bmxvYWRlclxuXG4gU2ltcGxlIGhlbHBlciBmb3IgeW91dHViZS1kbCBwcm9qZWN0LiBJdCBhbGxvd3MgeW91IHRvIHNhdmUgbG9jYWxseSBkZXNpcmVkIG1lZGlhIGNvbnRlbnQgd2l0aG91dCBhbnkgYnJvd3NlciBleHRlbnNpb25zLiBKdXN0IGNvcHkgVVJMIGFkZHJlc3Mgb2YgYSBtZWRpYSBjb250ZW50IHRvIHRoZSBjbGlwYm9hcmQgYW5kIHNlbGVjdCBkZXNpcmVkIHF1YWxpdHkgcHJvZmlsZSBvciBjdXN0b20gZm9ybWF0IGZvciB0aGUgaXRlbSBpbiB0aGUgZXh0ZW5zaW9uIG1lbnUgdG8gc3RvcmUgaXQuXG4gKiBSZXF1aXJlZCB0aGUgaW5zdGFsbGF0aW9uIG9mIGZmbXBlZyAoeW91dHViZS1kbCBkZXBlbmRlbmN5IGZvciBtZWRpYSBtYW5pcHVsYXRpb24pXG5cbkZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBob3ctdG8gc2VlIFJFQURNRS5tZCIsCiAgIm5hbWUiOiAieW91MmJlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcua29ua29yLnlvdTJiZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va29ua29yL3lvdTJiZXIiLAogICJ1dWlkIjogInlvdTJiZXJAa29ua29yIiwKICAidmVyc2lvbiI6IDEwCn0="}
@@ -1416,7 +1442,8 @@
     "42": {"version": "23", "sha256": "08pl7m0z4mpsg3556r282wyld61h3bzilfakzbmnqv18zf4xlfwz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92dmJvZ2Rhbm92ODcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWt1YmVjb25maWciLAogICJ1dWlkIjogImt1YmVfY29uZmlnQHZ2Ym9nZGFub3Y4Ny5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="},
     "43": {"version": "23", "sha256": "08pl7m0z4mpsg3556r282wyld61h3bzilfakzbmnqv18zf4xlfwz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92dmJvZ2Rhbm92ODcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWt1YmVjb25maWciLAogICJ1dWlkIjogImt1YmVfY29uZmlnQHZ2Ym9nZGFub3Y4Ny5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="},
     "44": {"version": "23", "sha256": "08pl7m0z4mpsg3556r282wyld61h3bzilfakzbmnqv18zf4xlfwz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92dmJvZ2Rhbm92ODcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWt1YmVjb25maWciLAogICJ1dWlkIjogImt1YmVfY29uZmlnQHZ2Ym9nZGFub3Y4Ny5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="},
-    "45": {"version": "26", "sha256": "182vyrmn0l46g0m3gx0rv1ki19birsabng4chvv8ma1j0rnr1phi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Z2Ym9nZGFub3Y4Ny9nbm9tZS1zaGVsbC1leHRlbnNpb24ta3ViZWNvbmZpZyIsCiAgInV1aWQiOiAia3ViZV9jb25maWdAdnZib2dkYW5vdjg3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNgp9"}
+    "45": {"version": "26", "sha256": "182vyrmn0l46g0m3gx0rv1ki19birsabng4chvv8ma1j0rnr1phi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Z2Ym9nZGFub3Y4Ny9nbm9tZS1zaGVsbC1leHRlbnNpb24ta3ViZWNvbmZpZyIsCiAgInV1aWQiOiAia3ViZV9jb25maWdAdnZib2dkYW5vdjg3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNgp9"},
+    "46": {"version": "27", "sha256": "00dx4zs62fsg71h72gb2zmw7km24rngb5sd8l5yv00fxm76ayyrh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Z2Ym9nZGFub3Y4Ny9nbm9tZS1zaGVsbC1leHRlbnNpb24ta3ViZWNvbmZpZyIsCiAgInV1aWQiOiAia3ViZV9jb25maWdAdnZib2dkYW5vdjg3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNwp9"}
   }}
 , {"uuid": "microphone-loopback@atareao.es", "name": "Microphone Loopback", "pname": "microphone-loopback", "description": "This extension enables hear microphone on headphones or speakers", "link": "https://extensions.gnome.org/extension/1443/microphone-loopback/", "shell_version_map": {
     "40": {"version": "5", "sha256": "1s9sh3afa3d7vbjlna6c7yls7kglwrxy6j5hns1ql4nprkdx8nb1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGVuYWJsZXMgaGVhciBtaWNyb3Bob25lIG9uIGhlYWRwaG9uZXMgb3Igc3BlYWtlcnMiLAogICJleHRlbnNpb24taWQiOiAibWljcm9waG9uZS1sb29wYmFja0BhdGFyZWFvLmVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibWljcm9waG9uZS1sb29wYmFja0BhdGFyZWFvLmVzIiwKICAiaWNvbiI6ICJtaWNyb3Bob25lLWxvb3BiYWNrIiwKICAibmFtZSI6ICJNaWNyb3Bob25lIExvb3BiYWNrIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1pY3JvcGhvbmUtbG9vcGJhY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hdGFyZWFvL21pY3JvcGhvbmUtbG9vcGJhY2siLAogICJ1dWlkIjogIm1pY3JvcGhvbmUtbG9vcGJhY2tAYXRhcmVhby5lcyIsCiAgInZlcnNpb24iOiA1Cn0="},
@@ -1611,7 +1638,8 @@
     "42": {"version": "60", "sha256": "1f79yi0g8pdnxpbfq098xi52shg5qn1s8gy5yi83i38brz3dv4bp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIENob29zZSBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBZb3VyIGRhc2ggd2lsbCBoYXZlIHVuaXF1ZSBmYXZvdXJpdGUgYXBwbGljYXRpb25zIG9uIGVhY2ggd29ya3NwYWNlXG4qIE9wdGlvbmFsbHkgaXNvbGF0ZSBydW5uaW5nIGFwcGxpY2F0aW9ucyB0byBvbmx5IGFwcGVhciBvbiB0aGUgZGFzaCBpbiB0aGVpciByZXNwZWN0aXZlIHdvcmtzcGFjZVxuKiBPcHRpb25hbGx5IHNob3cgd29ya3NwYWNlIGluZm9ybWF0aW9uIGFuZCBhY3Rpb25zIGluIHRoZSBvdmVydmlld1xuKiBTZXQgZWFjaCBjdXN0b21pc2VkIHdvcmtzcGFjZSB0byBhdXRvbG9hZCBvbiBzcGVjaWZpYyB3b3Jrc3BhY2VzXG4qIEhpZGUgdGhlIGV4dGVuc2lvbiBvbmNlIHlvdSd2ZSBjb25maWd1cmVkIHlvdXIgcHJlZmVyZW5jZXMgdG8gZW5qb3kgc2VhbWxlc3NseSB1cGdyYWRlZCB3b3Jrc3BhY2VzIGluIGdub21lIHNoZWxsXG5cblBsZWFzZSBkbyBub3QgbGVhdmUgYSBjb21tZW50IGZvciBpc3N1ZXMgYW5kIGluc3RlYWQgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9DdXN0b21pc2VkLVdvcmtzcGFjZXMvaXNzdWVzIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzZXRzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid29ya3NldHMiLAogICJuYW1lIjogIkN1c3RvbWlzZWQgV29ya3NwYWNlcyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJibGlwayIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvQ3VzdG9taXNlZC1Xb3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ3b3Jrc2V0c0BibGlway54eXoiLAogICJ2ZXJzaW9uIjogNjAKfQ=="},
     "43": {"version": "60", "sha256": "1f79yi0g8pdnxpbfq098xi52shg5qn1s8gy5yi83i38brz3dv4bp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIENob29zZSBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBZb3VyIGRhc2ggd2lsbCBoYXZlIHVuaXF1ZSBmYXZvdXJpdGUgYXBwbGljYXRpb25zIG9uIGVhY2ggd29ya3NwYWNlXG4qIE9wdGlvbmFsbHkgaXNvbGF0ZSBydW5uaW5nIGFwcGxpY2F0aW9ucyB0byBvbmx5IGFwcGVhciBvbiB0aGUgZGFzaCBpbiB0aGVpciByZXNwZWN0aXZlIHdvcmtzcGFjZVxuKiBPcHRpb25hbGx5IHNob3cgd29ya3NwYWNlIGluZm9ybWF0aW9uIGFuZCBhY3Rpb25zIGluIHRoZSBvdmVydmlld1xuKiBTZXQgZWFjaCBjdXN0b21pc2VkIHdvcmtzcGFjZSB0byBhdXRvbG9hZCBvbiBzcGVjaWZpYyB3b3Jrc3BhY2VzXG4qIEhpZGUgdGhlIGV4dGVuc2lvbiBvbmNlIHlvdSd2ZSBjb25maWd1cmVkIHlvdXIgcHJlZmVyZW5jZXMgdG8gZW5qb3kgc2VhbWxlc3NseSB1cGdyYWRlZCB3b3Jrc3BhY2VzIGluIGdub21lIHNoZWxsXG5cblBsZWFzZSBkbyBub3QgbGVhdmUgYSBjb21tZW50IGZvciBpc3N1ZXMgYW5kIGluc3RlYWQgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9DdXN0b21pc2VkLVdvcmtzcGFjZXMvaXNzdWVzIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzZXRzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid29ya3NldHMiLAogICJuYW1lIjogIkN1c3RvbWlzZWQgV29ya3NwYWNlcyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJibGlwayIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvQ3VzdG9taXNlZC1Xb3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ3b3Jrc2V0c0BibGlway54eXoiLAogICJ2ZXJzaW9uIjogNjAKfQ=="},
     "44": {"version": "60", "sha256": "1f79yi0g8pdnxpbfq098xi52shg5qn1s8gy5yi83i38brz3dv4bp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIENob29zZSBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBZb3VyIGRhc2ggd2lsbCBoYXZlIHVuaXF1ZSBmYXZvdXJpdGUgYXBwbGljYXRpb25zIG9uIGVhY2ggd29ya3NwYWNlXG4qIE9wdGlvbmFsbHkgaXNvbGF0ZSBydW5uaW5nIGFwcGxpY2F0aW9ucyB0byBvbmx5IGFwcGVhciBvbiB0aGUgZGFzaCBpbiB0aGVpciByZXNwZWN0aXZlIHdvcmtzcGFjZVxuKiBPcHRpb25hbGx5IHNob3cgd29ya3NwYWNlIGluZm9ybWF0aW9uIGFuZCBhY3Rpb25zIGluIHRoZSBvdmVydmlld1xuKiBTZXQgZWFjaCBjdXN0b21pc2VkIHdvcmtzcGFjZSB0byBhdXRvbG9hZCBvbiBzcGVjaWZpYyB3b3Jrc3BhY2VzXG4qIEhpZGUgdGhlIGV4dGVuc2lvbiBvbmNlIHlvdSd2ZSBjb25maWd1cmVkIHlvdXIgcHJlZmVyZW5jZXMgdG8gZW5qb3kgc2VhbWxlc3NseSB1cGdyYWRlZCB3b3Jrc3BhY2VzIGluIGdub21lIHNoZWxsXG5cblBsZWFzZSBkbyBub3QgbGVhdmUgYSBjb21tZW50IGZvciBpc3N1ZXMgYW5kIGluc3RlYWQgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9DdXN0b21pc2VkLVdvcmtzcGFjZXMvaXNzdWVzIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzZXRzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid29ya3NldHMiLAogICJuYW1lIjogIkN1c3RvbWlzZWQgV29ya3NwYWNlcyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJibGlwayIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvQ3VzdG9taXNlZC1Xb3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ3b3Jrc2V0c0BibGlway54eXoiLAogICJ2ZXJzaW9uIjogNjAKfQ=="},
-    "45": {"version": "65", "sha256": "0mrbflk2pwlwinm2xn3zgs6afs0rp0i3vqkl3fh19i4m0dxjm815", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIENob29zZSBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBZb3VyIGRhc2ggd2lsbCBoYXZlIHVuaXF1ZSBmYXZvdXJpdGUgYXBwbGljYXRpb25zIG9uIGVhY2ggd29ya3NwYWNlXG4qIE9wdGlvbmFsbHkgaXNvbGF0ZSBydW5uaW5nIGFwcGxpY2F0aW9ucyB0byBvbmx5IGFwcGVhciBvbiB0aGUgZGFzaCBpbiB0aGVpciByZXNwZWN0aXZlIHdvcmtzcGFjZVxuKiBPcHRpb25hbGx5IHNob3cgd29ya3NwYWNlIGluZm9ybWF0aW9uIGFuZCBhY3Rpb25zIGluIHRoZSBvdmVydmlld1xuKiBTZXQgZWFjaCBjdXN0b21pc2VkIHdvcmtzcGFjZSB0byBhdXRvbG9hZCBvbiBzcGVjaWZpYyB3b3Jrc3BhY2VzXG4qIEhpZGUgdGhlIGV4dGVuc2lvbiBvbmNlIHlvdSd2ZSBjb25maWd1cmVkIHlvdXIgcHJlZmVyZW5jZXMgdG8gZW5qb3kgc2VhbWxlc3NseSB1cGdyYWRlZCB3b3Jrc3BhY2VzIGluIGdub21lIHNoZWxsXG5cblBsZWFzZSBkbyBub3QgbGVhdmUgYSBjb21tZW50IGZvciBpc3N1ZXMgYW5kIGluc3RlYWQgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9DdXN0b21pc2VkLVdvcmtzcGFjZXMvaXNzdWVzIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzZXRzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid29ya3NldHMiLAogICJuYW1lIjogIkN1c3RvbWlzZWQgV29ya3NwYWNlcyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJibGlwayIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsaXBrL0N1c3RvbWlzZWQtV29ya3NwYWNlcyIsCiAgInV1aWQiOiAid29ya3NldHNAYmxpcGsueHl6IiwKICAidmVyc2lvbiI6IDY1Cn0="}
+    "45": {"version": "66", "sha256": "10dbblq7x9fwmxk66m9bv3g79nr78jv5by21nkaiph4xwj0kblqq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIENob29zZSBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBZb3VyIGRhc2ggd2lsbCBoYXZlIHVuaXF1ZSBmYXZvdXJpdGUgYXBwbGljYXRpb25zIG9uIGVhY2ggd29ya3NwYWNlXG4qIE9wdGlvbmFsbHkgaXNvbGF0ZSBydW5uaW5nIGFwcGxpY2F0aW9ucyB0byBvbmx5IGFwcGVhciBvbiB0aGUgZGFzaCBpbiB0aGVpciByZXNwZWN0aXZlIHdvcmtzcGFjZVxuKiBPcHRpb25hbGx5IHNob3cgd29ya3NwYWNlIGluZm9ybWF0aW9uIGFuZCBhY3Rpb25zIGluIHRoZSBvdmVydmlld1xuKiBTZXQgZWFjaCBjdXN0b21pc2VkIHdvcmtzcGFjZSB0byBhdXRvbG9hZCBvbiBzcGVjaWZpYyB3b3Jrc3BhY2VzXG4qIEhpZGUgdGhlIGV4dGVuc2lvbiBvbmNlIHlvdSd2ZSBjb25maWd1cmVkIHlvdXIgcHJlZmVyZW5jZXMgdG8gZW5qb3kgc2VhbWxlc3NseSB1cGdyYWRlZCB3b3Jrc3BhY2VzIGluIGdub21lIHNoZWxsXG5cblBsZWFzZSBkbyBub3QgbGVhdmUgYSBjb21tZW50IGZvciBpc3N1ZXMgYW5kIGluc3RlYWQgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9DdXN0b21pc2VkLVdvcmtzcGFjZXMvaXNzdWVzIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzZXRzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid29ya3NldHMiLAogICJuYW1lIjogIkN1c3RvbWlzZWQgV29ya3NwYWNlcyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJibGlwayIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsaXBrL0N1c3RvbWlzZWQtV29ya3NwYWNlcyIsCiAgInV1aWQiOiAid29ya3NldHNAYmxpcGsueHl6IiwKICAidmVyc2lvbiI6IDY2Cn0="},
+    "46": {"version": "68", "sha256": "129d2bwkq48pmm8vja9ywi2nsydvsqs60kc67zm1ffwakyny2c7a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIENob29zZSBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBZb3VyIGRhc2ggd2lsbCBoYXZlIHVuaXF1ZSBmYXZvdXJpdGUgYXBwbGljYXRpb25zIG9uIGVhY2ggd29ya3NwYWNlXG4qIE9wdGlvbmFsbHkgaXNvbGF0ZSBydW5uaW5nIGFwcGxpY2F0aW9ucyB0byBvbmx5IGFwcGVhciBvbiB0aGUgZGFzaCBpbiB0aGVpciByZXNwZWN0aXZlIHdvcmtzcGFjZVxuKiBPcHRpb25hbGx5IHNob3cgd29ya3NwYWNlIGluZm9ybWF0aW9uIGFuZCBhY3Rpb25zIGluIHRoZSBvdmVydmlld1xuKiBTZXQgZWFjaCBjdXN0b21pc2VkIHdvcmtzcGFjZSB0byBhdXRvbG9hZCBvbiBzcGVjaWZpYyB3b3Jrc3BhY2VzXG4qIEhpZGUgdGhlIGV4dGVuc2lvbiBvbmNlIHlvdSd2ZSBjb25maWd1cmVkIHlvdXIgcHJlZmVyZW5jZXMgdG8gZW5qb3kgc2VhbWxlc3NseSB1cGdyYWRlZCB3b3Jrc3BhY2VzIGluIGdub21lIHNoZWxsXG5cblBsZWFzZSBkbyBub3QgbGVhdmUgYSBjb21tZW50IGZvciBpc3N1ZXMgYW5kIGluc3RlYWQgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9DdXN0b21pc2VkLVdvcmtzcGFjZXMvaXNzdWVzIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzZXRzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid29ya3NldHMiLAogICJuYW1lIjogIkN1c3RvbWlzZWQgV29ya3NwYWNlcyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJibGlwayIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsaXBrL0N1c3RvbWlzZWQtV29ya3NwYWNlcyIsCiAgInV1aWQiOiAid29ya3NldHNAYmxpcGsueHl6IiwKICAidmVyc2lvbiI6IDY4Cn0="}
   }}
 , {"uuid": "NordVPN_Connect@poilrouge.fr", "name": "NordVPN Connect", "pname": "nordvpn-connect", "description": "Unofficial Gnome-Shell Extension to provide a GUI for the official NordVPN CLI Tool.", "link": "https://extensions.gnome.org/extension/1595/nordvpn-connect/", "shell_version_map": {
     "38": {"version": "15", "sha256": "0xccvy3kqgglhcjhixlxi65sa49lbm896lra2sks65arkx3fh63k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVub2ZmaWNpYWwgR25vbWUtU2hlbGwgRXh0ZW5zaW9uIHRvIHByb3ZpZGUgYSBHVUkgZm9yIHRoZSBvZmZpY2lhbCBOb3JkVlBOIENMSSBUb29sLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMtbnZwbmNvbm5lY3QiLAogICJuYW1lIjogIk5vcmRWUE4gQ29ubmVjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udnBuY29ubmVjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FsZXhQb2lscm91Z2UvTm9yZFZQTi1jb25uZWN0IiwKICAidXVpZCI6ICJOb3JkVlBOX0Nvbm5lY3RAcG9pbHJvdWdlLmZyIiwKICAidmVyc2lvbiI6IDE1Cn0="},
@@ -1661,13 +1689,16 @@
     "42": {"version": "19", "sha256": "0aznblvswlnxbykwb0p1yn4mzasa7bmqz1f45ka0j06kj4747ns5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJHaXVzZXBwZSBTaWx2ZXN0cm8iLAogICJkZXNjcmlwdGlvbiI6ICJNb25pdG9yIHRoZSB1c2Ugb2Ygc3lzdGVtIHJlc291cmNlcyBsaWtlIGNwdSwgcmFtLCBkaXNrLCBuZXR3b3JrIGFuZCBkaXNwbGF5IHRoZW0gaW4gZ25vbWUgc2hlbGwgdG9wIGJhci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjb20tZ2l0aHViLU9yeTBuLVJlc291cmNlX01vbml0b3IiLAogICJuYW1lIjogIlJlc291cmNlIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5Pcnkwbi5SZXNvdXJjZV9Nb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS8wcnkwbi9SZXNvdXJjZV9Nb25pdG9yLyIsCiAgInV1aWQiOiAiUmVzb3VyY2VfTW9uaXRvckBPcnkwbiIsCiAgInZlcnNpb24iOiAxOQp9"},
     "43": {"version": "19", "sha256": "0aznblvswlnxbykwb0p1yn4mzasa7bmqz1f45ka0j06kj4747ns5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJHaXVzZXBwZSBTaWx2ZXN0cm8iLAogICJkZXNjcmlwdGlvbiI6ICJNb25pdG9yIHRoZSB1c2Ugb2Ygc3lzdGVtIHJlc291cmNlcyBsaWtlIGNwdSwgcmFtLCBkaXNrLCBuZXR3b3JrIGFuZCBkaXNwbGF5IHRoZW0gaW4gZ25vbWUgc2hlbGwgdG9wIGJhci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjb20tZ2l0aHViLU9yeTBuLVJlc291cmNlX01vbml0b3IiLAogICJuYW1lIjogIlJlc291cmNlIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5Pcnkwbi5SZXNvdXJjZV9Nb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS8wcnkwbi9SZXNvdXJjZV9Nb25pdG9yLyIsCiAgInV1aWQiOiAiUmVzb3VyY2VfTW9uaXRvckBPcnkwbiIsCiAgInZlcnNpb24iOiAxOQp9"},
     "44": {"version": "19", "sha256": "0aznblvswlnxbykwb0p1yn4mzasa7bmqz1f45ka0j06kj4747ns5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJHaXVzZXBwZSBTaWx2ZXN0cm8iLAogICJkZXNjcmlwdGlvbiI6ICJNb25pdG9yIHRoZSB1c2Ugb2Ygc3lzdGVtIHJlc291cmNlcyBsaWtlIGNwdSwgcmFtLCBkaXNrLCBuZXR3b3JrIGFuZCBkaXNwbGF5IHRoZW0gaW4gZ25vbWUgc2hlbGwgdG9wIGJhci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjb20tZ2l0aHViLU9yeTBuLVJlc291cmNlX01vbml0b3IiLAogICJuYW1lIjogIlJlc291cmNlIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5Pcnkwbi5SZXNvdXJjZV9Nb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS8wcnkwbi9SZXNvdXJjZV9Nb25pdG9yLyIsCiAgInV1aWQiOiAiUmVzb3VyY2VfTW9uaXRvckBPcnkwbiIsCiAgInZlcnNpb24iOiAxOQp9"},
-    "45": {"version": "21", "sha256": "1mrprqbxrxky06rad99ichlvz5479w518r33y1xw5qkw3k38hy43", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vbml0b3IgdGhlIHVzZSBvZiBzeXN0ZW0gcmVzb3VyY2VzIGxpa2UgY3B1LCByYW0sIGRpc2ssIG5ldHdvcmsgYW5kIGRpc3BsYXkgdGhlbSBpbiBnbm9tZSBzaGVsbCB0b3AgYmFyLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiMHJ5MG4iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiY29tLWdpdGh1Yi1Pcnkwbi1SZXNvdXJjZV9Nb25pdG9yIiwKICAibmFtZSI6ICJSZXNvdXJjZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuT3J5MG4uUmVzb3VyY2VfTW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS8wcnkwbi9SZXNvdXJjZV9Nb25pdG9yLyIsCiAgInV1aWQiOiAiUmVzb3VyY2VfTW9uaXRvckBPcnkwbiIsCiAgInZlcnNpb24iOiAyMQp9"}
+    "45": {"version": "22", "sha256": "0aw867izp6ibi1vwhpw8hk75i1phrx0m18al6vggvjy9bidlcqbw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vbml0b3IgdGhlIHVzZSBvZiBzeXN0ZW0gcmVzb3VyY2VzIGxpa2UgY3B1LCByYW0sIGRpc2ssIG5ldHdvcmsgYW5kIGRpc3BsYXkgdGhlbSBpbiBnbm9tZSBzaGVsbCB0b3AgYmFyLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiMHJ5MG4iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiY29tLWdpdGh1Yi1Pcnkwbi1SZXNvdXJjZV9Nb25pdG9yIiwKICAibmFtZSI6ICJSZXNvdXJjZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuT3J5MG4uUmVzb3VyY2VfTW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMHJ5MG4vUmVzb3VyY2VfTW9uaXRvci8iLAogICJ1dWlkIjogIlJlc291cmNlX01vbml0b3JAT3J5MG4iLAogICJ2ZXJzaW9uIjogMjIKfQ=="},
+    "46": {"version": "22", "sha256": "0aw867izp6ibi1vwhpw8hk75i1phrx0m18al6vggvjy9bidlcqbw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vbml0b3IgdGhlIHVzZSBvZiBzeXN0ZW0gcmVzb3VyY2VzIGxpa2UgY3B1LCByYW0sIGRpc2ssIG5ldHdvcmsgYW5kIGRpc3BsYXkgdGhlbSBpbiBnbm9tZSBzaGVsbCB0b3AgYmFyLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiMHJ5MG4iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiY29tLWdpdGh1Yi1Pcnkwbi1SZXNvdXJjZV9Nb25pdG9yIiwKICAibmFtZSI6ICJSZXNvdXJjZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuT3J5MG4uUmVzb3VyY2VfTW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMHJ5MG4vUmVzb3VyY2VfTW9uaXRvci8iLAogICJ1dWlkIjogIlJlc291cmNlX01vbml0b3JAT3J5MG4iLAogICJ2ZXJzaW9uIjogMjIKfQ=="}
   }}
-, {"uuid": "tweaks-system-menu@extensions.gnome-shell.fifi.org", "name": "Tweaks & Extensions in System Menu", "pname": "tweaks-in-system-menu", "description": "Put Gnome Tweaks and Extensions (on Shell 40 and later) in the System menu.", "link": "https://extensions.gnome.org/extension/1653/tweaks-in-system-menu/", "shell_version_map": {
+, {"uuid": "tweaks-system-menu@extensions.gnome-shell.fifi.org", "name": "Tweaks & Extensions in System Menu", "pname": "tweaks-in-system-menu", "description": "Put Gnome Tweaks, Extensions, Extension Manager and any other application in the System menu.", "link": "https://extensions.gnome.org/extension/1653/tweaks-in-system-menu/", "shell_version_map": {
     "38": {"version": "18", "sha256": "0wzpzn3pq05p9qqibb0436kckgh4y16xcm3wgr7xmxx68zpd87p4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBHbm9tZSBUd2Vha3MgYW5kIEV4dGVuc2lvbnMgKG9uIFNoZWxsIDQwIGFuZCBsYXRlcikgaW4gdGhlIFN5c3RlbSBtZW51LiIsCiAgImdldHRleHQtZG9tYWluIjogInR3ZWFrcy1zeXN0ZW0tbWVudSIsCiAgIm5hbWUiOiAiVHdlYWtzICYgRXh0ZW5zaW9ucyBpbiBTeXN0ZW0gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzUuOTIiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GLWktZi90d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJ1dWlkIjogInR3ZWFrcy1zeXN0ZW0tbWVudUBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxOC0wLWczMTE4ZmI4IiwKICAidmVyc2lvbiI6IDE4Cn0="},
     "40": {"version": "18", "sha256": "0wzpzn3pq05p9qqibb0436kckgh4y16xcm3wgr7xmxx68zpd87p4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBHbm9tZSBUd2Vha3MgYW5kIEV4dGVuc2lvbnMgKG9uIFNoZWxsIDQwIGFuZCBsYXRlcikgaW4gdGhlIFN5c3RlbSBtZW51LiIsCiAgImdldHRleHQtZG9tYWluIjogInR3ZWFrcy1zeXN0ZW0tbWVudSIsCiAgIm5hbWUiOiAiVHdlYWtzICYgRXh0ZW5zaW9ucyBpbiBTeXN0ZW0gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzUuOTIiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GLWktZi90d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJ1dWlkIjogInR3ZWFrcy1zeXN0ZW0tbWVudUBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxOC0wLWczMTE4ZmI4IiwKICAidmVyc2lvbiI6IDE4Cn0="},
     "41": {"version": "18", "sha256": "0wzpzn3pq05p9qqibb0436kckgh4y16xcm3wgr7xmxx68zpd87p4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBHbm9tZSBUd2Vha3MgYW5kIEV4dGVuc2lvbnMgKG9uIFNoZWxsIDQwIGFuZCBsYXRlcikgaW4gdGhlIFN5c3RlbSBtZW51LiIsCiAgImdldHRleHQtZG9tYWluIjogInR3ZWFrcy1zeXN0ZW0tbWVudSIsCiAgIm5hbWUiOiAiVHdlYWtzICYgRXh0ZW5zaW9ucyBpbiBTeXN0ZW0gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzUuOTIiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GLWktZi90d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJ1dWlkIjogInR3ZWFrcy1zeXN0ZW0tbWVudUBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxOC0wLWczMTE4ZmI4IiwKICAidmVyc2lvbiI6IDE4Cn0="},
-    "42": {"version": "18", "sha256": "0wzpzn3pq05p9qqibb0436kckgh4y16xcm3wgr7xmxx68zpd87p4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBHbm9tZSBUd2Vha3MgYW5kIEV4dGVuc2lvbnMgKG9uIFNoZWxsIDQwIGFuZCBsYXRlcikgaW4gdGhlIFN5c3RlbSBtZW51LiIsCiAgImdldHRleHQtZG9tYWluIjogInR3ZWFrcy1zeXN0ZW0tbWVudSIsCiAgIm5hbWUiOiAiVHdlYWtzICYgRXh0ZW5zaW9ucyBpbiBTeXN0ZW0gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzUuOTIiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GLWktZi90d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJ1dWlkIjogInR3ZWFrcy1zeXN0ZW0tbWVudUBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxOC0wLWczMTE4ZmI4IiwKICAidmVyc2lvbiI6IDE4Cn0="}
+    "42": {"version": "18", "sha256": "0wzpzn3pq05p9qqibb0436kckgh4y16xcm3wgr7xmxx68zpd87p4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBHbm9tZSBUd2Vha3MgYW5kIEV4dGVuc2lvbnMgKG9uIFNoZWxsIDQwIGFuZCBsYXRlcikgaW4gdGhlIFN5c3RlbSBtZW51LiIsCiAgImdldHRleHQtZG9tYWluIjogInR3ZWFrcy1zeXN0ZW0tbWVudSIsCiAgIm5hbWUiOiAiVHdlYWtzICYgRXh0ZW5zaW9ucyBpbiBTeXN0ZW0gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzUuOTIiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GLWktZi90d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJ1dWlkIjogInR3ZWFrcy1zeXN0ZW0tbWVudUBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxOC0wLWczMTE4ZmI4IiwKICAidmVyc2lvbiI6IDE4Cn0="},
+    "45": {"version": "22", "sha256": "0l5qnwwi4b166c6m4h4adcc8mh252ippc3y5p8c3cfxkbzd6fc3j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBHbm9tZSBUd2Vha3MsIEV4dGVuc2lvbnMsIEV4dGVuc2lvbiBNYW5hZ2VyIGFuZCBhbnkgb3RoZXIgYXBwbGljYXRpb24gaW4gdGhlIFN5c3RlbSBtZW51LiIsCiAgImdldHRleHQtZG9tYWluIjogInR3ZWFrcy1zeXN0ZW0tbWVudSIsCiAgIm5hbWUiOiAiVHdlYWtzICYgRXh0ZW5zaW9ucyBpbiBTeXN0ZW0gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0YtaS1mL3R3ZWFrcy1zeXN0ZW0tbWVudSIsCiAgInV1aWQiOiAidHdlYWtzLXN5c3RlbS1tZW51QGV4dGVuc2lvbnMuZ25vbWUtc2hlbGwuZmlmaS5vcmciLAogICJ2Y3NfcmV2aXNpb24iOiAidjIyLTAtZ2MxMDU2NGEiLAogICJ2ZXJzaW9uIjogMjIKfQ=="},
+    "46": {"version": "22", "sha256": "0l5qnwwi4b166c6m4h4adcc8mh252ippc3y5p8c3cfxkbzd6fc3j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBHbm9tZSBUd2Vha3MsIEV4dGVuc2lvbnMsIEV4dGVuc2lvbiBNYW5hZ2VyIGFuZCBhbnkgb3RoZXIgYXBwbGljYXRpb24gaW4gdGhlIFN5c3RlbSBtZW51LiIsCiAgImdldHRleHQtZG9tYWluIjogInR3ZWFrcy1zeXN0ZW0tbWVudSIsCiAgIm5hbWUiOiAiVHdlYWtzICYgRXh0ZW5zaW9ucyBpbiBTeXN0ZW0gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0YtaS1mL3R3ZWFrcy1zeXN0ZW0tbWVudSIsCiAgInV1aWQiOiAidHdlYWtzLXN5c3RlbS1tZW51QGV4dGVuc2lvbnMuZ25vbWUtc2hlbGwuZmlmaS5vcmciLAogICJ2Y3NfcmV2aXNpb24iOiAidjIyLTAtZ2MxMDU2NGEiLAogICJ2ZXJzaW9uIjogMjIKfQ=="}
   }}
 , {"uuid": "topiconsfix@aleskva@devnullmail.com", "name": "TopIconsFix", "pname": "topiconsfix", "description": "Shows legacy tray icons on top – the fixed version of https://extensions.gnome.org/extension/495/topicons/", "link": "https://extensions.gnome.org/extension/1674/topiconsfix/", "shell_version_map": {
     "38": {"version": "13", "sha256": "1q9zzjcy8pyifqm51p51wb290casl3464k1w1p5ijgwf492va6gf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidG9waWNvbnNmaXhAYWxlc2t2YUBkZXZudWxsbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTMKfQ=="},
@@ -1694,7 +1725,8 @@
     "42": {"version": "23", "sha256": "1r5q5fx4px07m1mlqifaygcvn1jahcdni6v42qlmvpdk6iaxd66h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSBHbm9tZSAzIG92ZXJ2aWV3LlxuXG4tIEFsd2F5cyBzaG93IHRpdGxlcyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gQWx3YXlzIHNob3cgY2xvc2UgYnV0dG9ucyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gV2luZG93IHRpdGxlcyBwb3NpdGlvbiAoQm90dG9tLCBDZW50ZXIpXG4tIE1vdmUgd2luZG93IHRpdGxlcyB0byB0aGUgYm90dG9tIHdoZW4gZnVsbHNjcmVlblxuLSBNb3ZlIHdpbmRvdyB0aXRsZXMgdG8gdGhlIGJvdHRvbSBmb3IgdmlkZW8vVFYgcGxheWVycywgbGlrZSBTTVBsYXllclxuLSBTaG93L2hpZGUgYXBwIGljb25zXG4tIEFwcCBpY29uIHBvc2l0aW9uOiBCb3R0b20sIENlbnRlclxuLSBTaG93L2hpZGUgdGhlIGFwcCBpY29uIHdoZW4gYSB3aW5kb3cgaXMgaW4gZnVsbHNjcmVlbiBtb2RlXG4tIFNob3cvaGlkZSB0aGUgYmFja2dyb3VuZFxuLSBIaWRlL3Nob3cgaWNvbnMgZm9yIFZpZGVvL1RWIHBsYXllcnMsIGxpa2UgU01QbGF5ZXJcbi0gVHdlYWsgdGhlIHdpbmRvdyB0aHVtYm5haWwgYWN0aXZlIHNpemUgaW5jcmVtZW50IChmcm9tIDUgdG8gNjAsIHRoZSBkZWZhdWx0IGlzIDE1KVxuLSBIaWRlIHRoZSBiYWNrZ3JvdW5kIFxuXG4iLAogICJuYW1lIjogIkFsd2F5cyBTaG93IFRpdGxlcyBJbiBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmxwc3VnZS9BbHdheXMtU2hvdy1UaXRsZXMtSW4tT3ZlcnZpZXciLAogICJ1dWlkIjogIkFsd2F5cy1TaG93LVRpdGxlcy1Jbi1PdmVydmlld0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="},
     "43": {"version": "23", "sha256": "1r5q5fx4px07m1mlqifaygcvn1jahcdni6v42qlmvpdk6iaxd66h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSBHbm9tZSAzIG92ZXJ2aWV3LlxuXG4tIEFsd2F5cyBzaG93IHRpdGxlcyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gQWx3YXlzIHNob3cgY2xvc2UgYnV0dG9ucyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gV2luZG93IHRpdGxlcyBwb3NpdGlvbiAoQm90dG9tLCBDZW50ZXIpXG4tIE1vdmUgd2luZG93IHRpdGxlcyB0byB0aGUgYm90dG9tIHdoZW4gZnVsbHNjcmVlblxuLSBNb3ZlIHdpbmRvdyB0aXRsZXMgdG8gdGhlIGJvdHRvbSBmb3IgdmlkZW8vVFYgcGxheWVycywgbGlrZSBTTVBsYXllclxuLSBTaG93L2hpZGUgYXBwIGljb25zXG4tIEFwcCBpY29uIHBvc2l0aW9uOiBCb3R0b20sIENlbnRlclxuLSBTaG93L2hpZGUgdGhlIGFwcCBpY29uIHdoZW4gYSB3aW5kb3cgaXMgaW4gZnVsbHNjcmVlbiBtb2RlXG4tIFNob3cvaGlkZSB0aGUgYmFja2dyb3VuZFxuLSBIaWRlL3Nob3cgaWNvbnMgZm9yIFZpZGVvL1RWIHBsYXllcnMsIGxpa2UgU01QbGF5ZXJcbi0gVHdlYWsgdGhlIHdpbmRvdyB0aHVtYm5haWwgYWN0aXZlIHNpemUgaW5jcmVtZW50IChmcm9tIDUgdG8gNjAsIHRoZSBkZWZhdWx0IGlzIDE1KVxuLSBIaWRlIHRoZSBiYWNrZ3JvdW5kIFxuXG4iLAogICJuYW1lIjogIkFsd2F5cyBTaG93IFRpdGxlcyBJbiBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmxwc3VnZS9BbHdheXMtU2hvdy1UaXRsZXMtSW4tT3ZlcnZpZXciLAogICJ1dWlkIjogIkFsd2F5cy1TaG93LVRpdGxlcy1Jbi1PdmVydmlld0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="},
     "44": {"version": "23", "sha256": "1r5q5fx4px07m1mlqifaygcvn1jahcdni6v42qlmvpdk6iaxd66h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSBHbm9tZSAzIG92ZXJ2aWV3LlxuXG4tIEFsd2F5cyBzaG93IHRpdGxlcyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gQWx3YXlzIHNob3cgY2xvc2UgYnV0dG9ucyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gV2luZG93IHRpdGxlcyBwb3NpdGlvbiAoQm90dG9tLCBDZW50ZXIpXG4tIE1vdmUgd2luZG93IHRpdGxlcyB0byB0aGUgYm90dG9tIHdoZW4gZnVsbHNjcmVlblxuLSBNb3ZlIHdpbmRvdyB0aXRsZXMgdG8gdGhlIGJvdHRvbSBmb3IgdmlkZW8vVFYgcGxheWVycywgbGlrZSBTTVBsYXllclxuLSBTaG93L2hpZGUgYXBwIGljb25zXG4tIEFwcCBpY29uIHBvc2l0aW9uOiBCb3R0b20sIENlbnRlclxuLSBTaG93L2hpZGUgdGhlIGFwcCBpY29uIHdoZW4gYSB3aW5kb3cgaXMgaW4gZnVsbHNjcmVlbiBtb2RlXG4tIFNob3cvaGlkZSB0aGUgYmFja2dyb3VuZFxuLSBIaWRlL3Nob3cgaWNvbnMgZm9yIFZpZGVvL1RWIHBsYXllcnMsIGxpa2UgU01QbGF5ZXJcbi0gVHdlYWsgdGhlIHdpbmRvdyB0aHVtYm5haWwgYWN0aXZlIHNpemUgaW5jcmVtZW50IChmcm9tIDUgdG8gNjAsIHRoZSBkZWZhdWx0IGlzIDE1KVxuLSBIaWRlIHRoZSBiYWNrZ3JvdW5kIFxuXG4iLAogICJuYW1lIjogIkFsd2F5cyBTaG93IFRpdGxlcyBJbiBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmxwc3VnZS9BbHdheXMtU2hvdy1UaXRsZXMtSW4tT3ZlcnZpZXciLAogICJ1dWlkIjogIkFsd2F5cy1TaG93LVRpdGxlcy1Jbi1PdmVydmlld0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="},
-    "45": {"version": "25", "sha256": "0z1l6l3gl9g8y19c51gm9p68bzgkh65g0fgbhzgkzqlwac87jwm1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSBHbm9tZSAzIG92ZXJ2aWV3LlxuXG4tIEFsd2F5cyBzaG93IHRpdGxlcyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gQWx3YXlzIHNob3cgY2xvc2UgYnV0dG9ucyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gV2luZG93IHRpdGxlcyBwb3NpdGlvbiAoQm90dG9tLCBDZW50ZXIpXG4tIE1vdmUgd2luZG93IHRpdGxlcyB0byB0aGUgYm90dG9tIHdoZW4gZnVsbHNjcmVlblxuLSBNb3ZlIHdpbmRvdyB0aXRsZXMgdG8gdGhlIGJvdHRvbSBmb3IgdmlkZW8vVFYgcGxheWVycywgbGlrZSBTTVBsYXllclxuLSBTaG93L2hpZGUgYXBwIGljb25zXG4tIEFwcCBpY29uIHBvc2l0aW9uOiBCb3R0b20sIENlbnRlclxuLSBTaG93L2hpZGUgdGhlIGFwcCBpY29uIHdoZW4gYSB3aW5kb3cgaXMgaW4gZnVsbHNjcmVlbiBtb2RlXG4tIFNob3cvaGlkZSB0aGUgYmFja2dyb3VuZFxuLSBIaWRlL3Nob3cgaWNvbnMgZm9yIFZpZGVvL1RWIHBsYXllcnMsIGxpa2UgU01QbGF5ZXJcbi0gVHdlYWsgdGhlIHdpbmRvdyB0aHVtYm5haWwgYWN0aXZlIHNpemUgaW5jcmVtZW50IChmcm9tIDUgdG8gNjAsIHRoZSBkZWZhdWx0IGlzIDE1KVxuLSBIaWRlIHRoZSBiYWNrZ3JvdW5kIFxuXG4iLAogICJuYW1lIjogIkFsd2F5cyBTaG93IFRpdGxlcyBJbiBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ubHBzdWdlL0Fsd2F5cy1TaG93LVRpdGxlcy1Jbi1PdmVydmlldyIsCiAgInV1aWQiOiAiQWx3YXlzLVNob3ctVGl0bGVzLUluLU92ZXJ2aWV3QGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"}
+    "45": {"version": "26", "sha256": "0g2a2d1d4j8j4ly00zf3m5qs5advf10wh3jkhs2rrrrv29pihx0y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSBHbm9tZSAzIG92ZXJ2aWV3LlxuXG4tIEFsd2F5cyBzaG93IHRpdGxlcyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gQWx3YXlzIHNob3cgY2xvc2UgYnV0dG9ucyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gV2luZG93IHRpdGxlcyBwb3NpdGlvbiAoQm90dG9tLCBDZW50ZXIpXG4tIE1vdmUgd2luZG93IHRpdGxlcyB0byB0aGUgYm90dG9tIHdoZW4gZnVsbHNjcmVlblxuLSBNb3ZlIHdpbmRvdyB0aXRsZXMgdG8gdGhlIGJvdHRvbSBmb3IgdmlkZW8vVFYgcGxheWVycywgbGlrZSBTTVBsYXllclxuLSBTaG93L2hpZGUgYXBwIGljb25zXG4tIEFwcCBpY29uIHBvc2l0aW9uOiBCb3R0b20sIENlbnRlclxuLSBTaG93L2hpZGUgdGhlIGFwcCBpY29uIHdoZW4gYSB3aW5kb3cgaXMgaW4gZnVsbHNjcmVlbiBtb2RlXG4tIFNob3cvaGlkZSB0aGUgYmFja2dyb3VuZFxuLSBIaWRlL3Nob3cgaWNvbnMgZm9yIFZpZGVvL1RWIHBsYXllcnMsIGxpa2UgU01QbGF5ZXJcbi0gVHdlYWsgdGhlIHdpbmRvdyB0aHVtYm5haWwgYWN0aXZlIHNpemUgaW5jcmVtZW50IChmcm9tIDUgdG8gNjAsIHRoZSBkZWZhdWx0IGlzIDE1KVxuLSBIaWRlIHRoZSBiYWNrZ3JvdW5kIFxuXG4iLAogICJuYW1lIjogIkFsd2F5cyBTaG93IFRpdGxlcyBJbiBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmxwc3VnZS9BbHdheXMtU2hvdy1UaXRsZXMtSW4tT3ZlcnZpZXciLAogICJ1dWlkIjogIkFsd2F5cy1TaG93LVRpdGxlcy1Jbi1PdmVydmlld0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjYKfQ=="},
+    "46": {"version": "26", "sha256": "0g2a2d1d4j8j4ly00zf3m5qs5advf10wh3jkhs2rrrrv29pihx0y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSBHbm9tZSAzIG92ZXJ2aWV3LlxuXG4tIEFsd2F5cyBzaG93IHRpdGxlcyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gQWx3YXlzIHNob3cgY2xvc2UgYnV0dG9ucyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gV2luZG93IHRpdGxlcyBwb3NpdGlvbiAoQm90dG9tLCBDZW50ZXIpXG4tIE1vdmUgd2luZG93IHRpdGxlcyB0byB0aGUgYm90dG9tIHdoZW4gZnVsbHNjcmVlblxuLSBNb3ZlIHdpbmRvdyB0aXRsZXMgdG8gdGhlIGJvdHRvbSBmb3IgdmlkZW8vVFYgcGxheWVycywgbGlrZSBTTVBsYXllclxuLSBTaG93L2hpZGUgYXBwIGljb25zXG4tIEFwcCBpY29uIHBvc2l0aW9uOiBCb3R0b20sIENlbnRlclxuLSBTaG93L2hpZGUgdGhlIGFwcCBpY29uIHdoZW4gYSB3aW5kb3cgaXMgaW4gZnVsbHNjcmVlbiBtb2RlXG4tIFNob3cvaGlkZSB0aGUgYmFja2dyb3VuZFxuLSBIaWRlL3Nob3cgaWNvbnMgZm9yIFZpZGVvL1RWIHBsYXllcnMsIGxpa2UgU01QbGF5ZXJcbi0gVHdlYWsgdGhlIHdpbmRvdyB0aHVtYm5haWwgYWN0aXZlIHNpemUgaW5jcmVtZW50IChmcm9tIDUgdG8gNjAsIHRoZSBkZWZhdWx0IGlzIDE1KVxuLSBIaWRlIHRoZSBiYWNrZ3JvdW5kIFxuXG4iLAogICJuYW1lIjogIkFsd2F5cyBTaG93IFRpdGxlcyBJbiBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmxwc3VnZS9BbHdheXMtU2hvdy1UaXRsZXMtSW4tT3ZlcnZpZXciLAogICJ1dWlkIjogIkFsd2F5cy1TaG93LVRpdGxlcy1Jbi1PdmVydmlld0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjYKfQ=="}
   }}
 , {"uuid": "overview-navigation@nathanielsimard.github.com", "name": "Overview Navigation", "pname": "overview-navigation", "description": "This extension aims to make Gnome Shell easier to navigate using only the keyboard. It is inspired by the vim plugins of Firefox and Chrome.", "link": "https://extensions.gnome.org/extension/1702/overview-navigation/", "shell_version_map": {
     "38": {"version": "14", "sha256": "10i2j0klcyi22qakmw1f338ldc87w54a0jlg1bwq84ifflmnm8nq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFpbXMgdG8gbWFrZSBHbm9tZSBTaGVsbCBlYXNpZXIgdG8gbmF2aWdhdGUgdXNpbmcgb25seSB0aGUga2V5Ym9hcmQuIEl0IGlzIGluc3BpcmVkIGJ5IHRoZSB2aW0gcGx1Z2lucyBvZiBGaXJlZm94IGFuZCBDaHJvbWUuIiwKICAibmFtZSI6ICJPdmVydmlldyBOYXZpZ2F0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm92ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uYXRoYW5pZWxzaW1hcmQvb3ZlcnZpZXctbmF2aWdhdGlvbiIsCiAgInV1aWQiOiAib3ZlcnZpZXctbmF2aWdhdGlvbkBuYXRoYW5pZWxzaW1hcmQuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"},
@@ -1788,7 +1820,8 @@
     "42": {"version": "28", "sha256": "0vxvd4q5bysqmrbw6d169l3ww37j6cdk70n1gk4m35ydvq7cpp6k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI4Cn0="},
     "43": {"version": "28", "sha256": "0vxvd4q5bysqmrbw6d169l3ww37j6cdk70n1gk4m35ydvq7cpp6k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI4Cn0="},
     "44": {"version": "28", "sha256": "0vxvd4q5bysqmrbw6d169l3ww37j6cdk70n1gk4m35ydvq7cpp6k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI4Cn0="},
-    "45": {"version": "30", "sha256": "1mpizw5zl851k5zx6k5azrdfi9knpha3vin3l3szmzkmj9wzwjsw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yb3ZlbGxpcGFvbG8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNlcm1vbiIsCiAgInV1aWQiOiAic2VybW9uQHJvdmVsbGlwYW9sby1nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzAKfQ=="}
+    "45": {"version": "31", "sha256": "1x2gy4nvcz313nzb069g0im4b7alwgvxdfi45b4x5zfsn6w7qc07", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMxCn0="},
+    "46": {"version": "31", "sha256": "1x2gy4nvcz313nzb069g0im4b7alwgvxdfi45b4x5zfsn6w7qc07", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMxCn0="}
   }}
 , {"uuid": "dict@sun.wxg@gmail.com", "name": "Screen word translate", "pname": "screen-word-translate", "description": "Translate word on the screen.\nDefault web address is translate.google.com, you can add the web address for your own language. Also you can contribute your web address to my github repo.\nUse hotkey Ctrl+Alt+j to toggle the function.\nUse hotkey Ctrl+Alt+o to show popup window", "link": "https://extensions.gnome.org/extension/1849/screen-word-translate/", "shell_version_map": {
     "38": {"version": "32", "sha256": "0wh9d0siggr49bfcx1308xx8rxc58nadnhp3mjj53i6fvja3cx62", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSB3b3JkIG9uIHRoZSBzY3JlZW4uXG5EZWZhdWx0IHdlYiBhZGRyZXNzIGlzIHRyYW5zbGF0ZS5nb29nbGUuY29tLCB5b3UgY2FuIGFkZCB0aGUgd2ViIGFkZHJlc3MgZm9yIHlvdXIgb3duIGxhbmd1YWdlLiBBbHNvIHlvdSBjYW4gY29udHJpYnV0ZSB5b3VyIHdlYiBhZGRyZXNzIHRvIG15IGdpdGh1YiByZXBvLlxuVXNlIGhvdGtleSBDdHJsK0FsdCtqIHRvIHRvZ2dsZSB0aGUgZnVuY3Rpb24uXG5Vc2UgaG90a2V5IEN0cmwrQWx0K28gdG8gc2hvdyBwb3B1cCB3aW5kb3ciLAogICJuYW1lIjogIlNjcmVlbiB3b3JkIHRyYW5zbGF0ZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAic3VuLnd4Z0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRpY3QiLAogICJ1dWlkIjogImRpY3RAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
@@ -1818,13 +1851,13 @@
   }}
 , {"uuid": "krypto@sereneblue", "name": "krypto", "pname": "krypto", "description": "GNOME extension to display cryptocurrency prices", "link": "https://extensions.gnome.org/extension/1913/krypto/", "shell_version_map": {
     "38": {"version": "5", "sha256": "1rpp22asfnhi11lprl70lr9dh2cw7w23yqf4hi629357592px2sv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2VyZW5lYmx1ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24ta3J5cHRvIiwKICAidXVpZCI6ICJrcnlwdG9Ac2VyZW5lYmx1ZSIsCiAgInZlcnNpb24iOiA1Cn0="},
-    "40": {"version": "30", "sha256": "059x418ra9l1rcgfwy9zqm4gci7rbl7var99bnvzyvg0vhqfhdr7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMwCn0="},
-    "41": {"version": "30", "sha256": "059x418ra9l1rcgfwy9zqm4gci7rbl7var99bnvzyvg0vhqfhdr7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMwCn0="},
-    "42": {"version": "30", "sha256": "059x418ra9l1rcgfwy9zqm4gci7rbl7var99bnvzyvg0vhqfhdr7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMwCn0="},
-    "43": {"version": "30", "sha256": "059x418ra9l1rcgfwy9zqm4gci7rbl7var99bnvzyvg0vhqfhdr7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMwCn0="},
-    "44": {"version": "30", "sha256": "059x418ra9l1rcgfwy9zqm4gci7rbl7var99bnvzyvg0vhqfhdr7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMwCn0="},
-    "45": {"version": "32", "sha256": "1vwwaxx663gk0q22jcz48dv0fwd0a14xij9i71hgji5afihdhx26", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMyCn0="},
-    "46": {"version": "32", "sha256": "1vwwaxx663gk0q22jcz48dv0fwd0a14xij9i71hgji5afihdhx26", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMyCn0="}
+    "40": {"version": "33", "sha256": "0qmwzrhgjl012ahxmck937wibz7r3k1fr4rxb27b2frr5hmccry2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMzCn0="},
+    "41": {"version": "33", "sha256": "0qmwzrhgjl012ahxmck937wibz7r3k1fr4rxb27b2frr5hmccry2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMzCn0="},
+    "42": {"version": "33", "sha256": "0qmwzrhgjl012ahxmck937wibz7r3k1fr4rxb27b2frr5hmccry2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMzCn0="},
+    "43": {"version": "33", "sha256": "0qmwzrhgjl012ahxmck937wibz7r3k1fr4rxb27b2frr5hmccry2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMzCn0="},
+    "44": {"version": "33", "sha256": "0qmwzrhgjl012ahxmck937wibz7r3k1fr4rxb27b2frr5hmccry2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMzCn0="},
+    "45": {"version": "34", "sha256": "0011szahh84x4fh7mi9qzr3d8bdxn6bp82zicaqpx01ybqnaqisk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDM0Cn0="},
+    "46": {"version": "34", "sha256": "0011szahh84x4fh7mi9qzr3d8bdxn6bp82zicaqpx01ybqnaqisk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDM0Cn0="}
   }}
 , {"uuid": "cmus-status@yagreg7.gmail.com", "name": "cmus status", "pname": "cmus-status", "description": "Shows cmus status", "link": "https://extensions.gnome.org/extension/1934/cmus-status/", "shell_version_map": {
     "38": {"version": "8", "sha256": "1a6b10kirzbjlllcnffznjlljicah172kpvs0p8rmwhcpn88i8hx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGNtdXMgc3RhdHVzIiwKICAibmFtZSI6ICJjbXVzIHN0YXR1cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jbXVzLXN0YXR1cy5nc2NoZW1hLnhtbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0dyZWdUaGVNYWRNb25rL2dub21lLWNtdXMtc3RhdHVzIiwKICAidXVpZCI6ICJjbXVzLXN0YXR1c0B5YWdyZWc3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="},
@@ -1864,14 +1897,15 @@
     "45": {"version": "68", "sha256": "1i2f7qc48ggs9byr2j5jhhrh3g63q2ad63hsbvj3k79aavvhc4ry", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogNjgKfQ=="},
     "46": {"version": "68", "sha256": "1i2f7qc48ggs9byr2j5jhhrh3g63q2ad63hsbvj3k79aavvhc4ry", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogNjgKfQ=="}
   }}
-, {"uuid": "order-extensions@wa4557.github.com", "name": "Order Gnome Shell extensions", "pname": "order-gnome-shell-extensions", "description": "Fixes order of gnome-shell extensions", "link": "https://extensions.gnome.org/extension/2114/order-gnome-shell-extensions/", "shell_version_map": {
+, {"uuid": "order-extensions@wa4557.github.com", "name": "Order Gnome Shell extensions", "pname": "order-gnome-shell-extensions", "description": "Orders icons from extensions in the top bar", "link": "https://extensions.gnome.org/extension/2114/order-gnome-shell-extensions/", "shell_version_map": {
     "38": {"version": "6", "sha256": "0hcbjrhrg11f5p23bhss75nhc9sqlh6p1bmfq7p7m7d276ckdmkk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICIzLjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm9yZGVyLWV4dGVuc2lvbnNAd2E0NTU3LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"},
     "40": {"version": "15", "sha256": "0rnq57z5czbjxdnpxlgffz79pwzpsy2vglz0pjd2vx205a1p0sb4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAib3JkZXItZXh0ZW5zaW9uc0B3YTQ1NTcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"},
     "41": {"version": "15", "sha256": "0rnq57z5czbjxdnpxlgffz79pwzpsy2vglz0pjd2vx205a1p0sb4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAib3JkZXItZXh0ZW5zaW9uc0B3YTQ1NTcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"},
     "42": {"version": "15", "sha256": "0rnq57z5czbjxdnpxlgffz79pwzpsy2vglz0pjd2vx205a1p0sb4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAib3JkZXItZXh0ZW5zaW9uc0B3YTQ1NTcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"},
     "43": {"version": "15", "sha256": "0rnq57z5czbjxdnpxlgffz79pwzpsy2vglz0pjd2vx205a1p0sb4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAib3JkZXItZXh0ZW5zaW9uc0B3YTQ1NTcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"},
     "44": {"version": "15", "sha256": "0rnq57z5czbjxdnpxlgffz79pwzpsy2vglz0pjd2vx205a1p0sb4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAib3JkZXItZXh0ZW5zaW9uc0B3YTQ1NTcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"},
-    "45": {"version": "20", "sha256": "0kmm197znfdpsyw9nb82yznq9r6yjn5mwsa407ih8zv9c6zczzc4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9yZGVyLWljb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FuZGlhODkvb3JkZXItaWNvbnMiLAogICJ1dWlkIjogIm9yZGVyLWV4dGVuc2lvbnNAd2E0NTU3LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}
+    "45": {"version": "22", "sha256": "1jsv3qy7wq8q30ppwyszc7f3jf9r4d9vrhqz4iyk18588llz88n1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJPcmRlcnMgaWNvbnMgZnJvbSBleHRlbnNpb25zIGluIHRoZSB0b3AgYmFyIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9yZGVyLWljb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbmRpYTg5L29yZGVyLWljb25zIiwKICAidXVpZCI6ICJvcmRlci1leHRlbnNpb25zQHdhNDU1Ny5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="},
+    "46": {"version": "22", "sha256": "1jsv3qy7wq8q30ppwyszc7f3jf9r4d9vrhqz4iyk18588llz88n1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJPcmRlcnMgaWNvbnMgZnJvbSBleHRlbnNpb25zIGluIHRoZSB0b3AgYmFyIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9yZGVyLWljb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbmRpYTg5L29yZGVyLWljb25zIiwKICAidXVpZCI6ICJvcmRlci1leHRlbnNpb25zQHdhNDU1Ny5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}
   }}
 , {"uuid": "sound-percentage@maestroschan.fr", "name": "Sound percentage", "pname": "sound-percentage", "description": "Display the current sound percentage in the system tray", "link": "https://extensions.gnome.org/extension/2120/sound-percentage/", "shell_version_map": {
     "38": {"version": "3", "sha256": "140a83mqwja4vkk83ajmknginh0izli65b8x7nab32sif99z7nya", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIGN1cnJlbnQgc291bmQgcGVyY2VudGFnZSBpbiB0aGUgc3lzdGVtIHRyYXkiLAogICJuYW1lIjogIlNvdW5kIHBlcmNlbnRhZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYW9zY2hhbnovc291bmQtcGVyY2VudGFnZS1ncy1leHRlbnNpb24iLAogICJ1dWlkIjogInNvdW5kLXBlcmNlbnRhZ2VAbWFlc3Ryb3NjaGFuLmZyIiwKICAidmVyc2lvbiI6IDMKfQ=="},
@@ -1909,7 +1943,8 @@
     "42": {"version": "8", "sha256": "02m37kg428knfsli8gj6vbj1lqmy1lklsgfapp1hiabbmmn0mjlf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB0aGUgYWJpbGl0eSB0byBzd2l0Y2ggYmV0d2VlbiB3aW5kb3dzIGFuZCBhcHBsaWNhdGlvbnMgdXNpbmcgdmltLWxpa2Uga2V5cHJlc3NlcyAoaCwgaiwgaywgbCkiLAogICJleHRlbnNpb24taWQiOiAidmltLWFsdHRhYiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlZJTSBBbHQtVGFiIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJqd0BiYXJnc3Rlbi5vcmciLAogICAgInRob21hcy5ib3VmZm9uQGdtYWlsLmNvbSIsCiAgICAia29rb0Brb2tvbmcuaW5mbyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudmltLWFsdHRhYiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va29rby1uZy92aW0tYWx0VGFiIiwKICAidXVpZCI6ICJ2aW0tYWx0VGFiQGtva29uZy5pbmZvIiwKICAidmVyc2lvbiI6IDgKfQ=="},
     "43": {"version": "8", "sha256": "02m37kg428knfsli8gj6vbj1lqmy1lklsgfapp1hiabbmmn0mjlf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB0aGUgYWJpbGl0eSB0byBzd2l0Y2ggYmV0d2VlbiB3aW5kb3dzIGFuZCBhcHBsaWNhdGlvbnMgdXNpbmcgdmltLWxpa2Uga2V5cHJlc3NlcyAoaCwgaiwgaywgbCkiLAogICJleHRlbnNpb24taWQiOiAidmltLWFsdHRhYiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlZJTSBBbHQtVGFiIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJqd0BiYXJnc3Rlbi5vcmciLAogICAgInRob21hcy5ib3VmZm9uQGdtYWlsLmNvbSIsCiAgICAia29rb0Brb2tvbmcuaW5mbyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudmltLWFsdHRhYiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va29rby1uZy92aW0tYWx0VGFiIiwKICAidXVpZCI6ICJ2aW0tYWx0VGFiQGtva29uZy5pbmZvIiwKICAidmVyc2lvbiI6IDgKfQ=="},
     "44": {"version": "8", "sha256": "02m37kg428knfsli8gj6vbj1lqmy1lklsgfapp1hiabbmmn0mjlf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB0aGUgYWJpbGl0eSB0byBzd2l0Y2ggYmV0d2VlbiB3aW5kb3dzIGFuZCBhcHBsaWNhdGlvbnMgdXNpbmcgdmltLWxpa2Uga2V5cHJlc3NlcyAoaCwgaiwgaywgbCkiLAogICJleHRlbnNpb24taWQiOiAidmltLWFsdHRhYiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlZJTSBBbHQtVGFiIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJqd0BiYXJnc3Rlbi5vcmciLAogICAgInRob21hcy5ib3VmZm9uQGdtYWlsLmNvbSIsCiAgICAia29rb0Brb2tvbmcuaW5mbyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudmltLWFsdHRhYiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va29rby1uZy92aW0tYWx0VGFiIiwKICAidXVpZCI6ICJ2aW0tYWx0VGFiQGtva29uZy5pbmZvIiwKICAidmVyc2lvbiI6IDgKfQ=="},
-    "45": {"version": "9", "sha256": "0y9b5znddndqdaskq0nxpdxl2xn4wqhql0vz4b04mc5algnjlx6s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB0aGUgYWJpbGl0eSB0byBzd2l0Y2ggYmV0d2VlbiB3aW5kb3dzIGFuZCBhcHBsaWNhdGlvbnMgdXNpbmcgdmltLWxpa2Uga2V5cHJlc3NlcyAoaCwgaiwgaywgbCkiLAogICJleHRlbnNpb24taWQiOiAidmltLWFsdHRhYiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlZJTSBBbHQtVGFiIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJrb2tvQGtva29uZy5pbmZvIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52aW0tYWx0dGFiIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2tva28tbmcvdmltLWFsdFRhYiIsCiAgInV1aWQiOiAidmltLWFsdFRhYkBrb2tvbmcuaW5mbyIsCiAgInZlcnNpb24iOiA5Cn0="}
+    "45": {"version": "10", "sha256": "0mfhmvj44x9ffdi4fvz8xjqwlfv5046bw99m4xcv4m6pq5kz30zs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB0aGUgYWJpbGl0eSB0byBzd2l0Y2ggYmV0d2VlbiB3aW5kb3dzIGFuZCBhcHBsaWNhdGlvbnMgdXNpbmcgdmltLWxpa2Uga2V5cHJlc3NlcyAoaCwgaiwgaywgbCkiLAogICJleHRlbnNpb24taWQiOiAidmltLWFsdHRhYiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlZJTSBBbHQtVGFiIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJrb2tvQGtva29uZy5pbmZvIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52aW0tYWx0dGFiIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rb2tvLW5nL3ZpbS1hbHRUYWIiLAogICJ1dWlkIjogInZpbS1hbHRUYWJAa29rb25nLmluZm8iLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
+    "46": {"version": "10", "sha256": "0mfhmvj44x9ffdi4fvz8xjqwlfv5046bw99m4xcv4m6pq5kz30zs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB0aGUgYWJpbGl0eSB0byBzd2l0Y2ggYmV0d2VlbiB3aW5kb3dzIGFuZCBhcHBsaWNhdGlvbnMgdXNpbmcgdmltLWxpa2Uga2V5cHJlc3NlcyAoaCwgaiwgaywgbCkiLAogICJleHRlbnNpb24taWQiOiAidmltLWFsdHRhYiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlZJTSBBbHQtVGFiIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJrb2tvQGtva29uZy5pbmZvIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52aW0tYWx0dGFiIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rb2tvLW5nL3ZpbS1hbHRUYWIiLAogICJ1dWlkIjogInZpbS1hbHRUYWJAa29rb25nLmluZm8iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}
   }}
 , {"uuid": "easy_docker_containers@red.software.systems", "name": "Easy Docker Containers", "pname": "easy-docker-containers", "description": "A GNOME Shell extension (GNOME Panel applet) to be able to generally control your available Docker containers.", "link": "https://extensions.gnome.org/extension/2224/easy-docker-containers/", "shell_version_map": {
     "38": {"version": "20", "sha256": "0dh3km7fnl2wg5p13knp3kzwfm5sfx2rlw4hcmpplqarwc3xxfp9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SZWRTb2Z0d2FyZVN5c3RlbXMvZWFzeV9kb2NrZXJfY29udGFpbmVycyIsCiAgInV1aWQiOiAiZWFzeV9kb2NrZXJfY29udGFpbmVyc0ByZWQuc29mdHdhcmUuc3lzdGVtcyIsCiAgInZlcnNpb24iOiAyMAp9"},
@@ -1918,8 +1953,8 @@
     "42": {"version": "20", "sha256": "0dh3km7fnl2wg5p13knp3kzwfm5sfx2rlw4hcmpplqarwc3xxfp9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SZWRTb2Z0d2FyZVN5c3RlbXMvZWFzeV9kb2NrZXJfY29udGFpbmVycyIsCiAgInV1aWQiOiAiZWFzeV9kb2NrZXJfY29udGFpbmVyc0ByZWQuc29mdHdhcmUuc3lzdGVtcyIsCiAgInZlcnNpb24iOiAyMAp9"},
     "43": {"version": "20", "sha256": "0dh3km7fnl2wg5p13knp3kzwfm5sfx2rlw4hcmpplqarwc3xxfp9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SZWRTb2Z0d2FyZVN5c3RlbXMvZWFzeV9kb2NrZXJfY29udGFpbmVycyIsCiAgInV1aWQiOiAiZWFzeV9kb2NrZXJfY29udGFpbmVyc0ByZWQuc29mdHdhcmUuc3lzdGVtcyIsCiAgInZlcnNpb24iOiAyMAp9"},
     "44": {"version": "20", "sha256": "0dh3km7fnl2wg5p13knp3kzwfm5sfx2rlw4hcmpplqarwc3xxfp9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SZWRTb2Z0d2FyZVN5c3RlbXMvZWFzeV9kb2NrZXJfY29udGFpbmVycyIsCiAgInV1aWQiOiAiZWFzeV9kb2NrZXJfY29udGFpbmVyc0ByZWQuc29mdHdhcmUuc3lzdGVtcyIsCiAgInZlcnNpb24iOiAyMAp9"},
-    "45": {"version": "23", "sha256": "06a4s1njlg1lkapgr5lh0vsw3c7ny63c24386ysz3rk9c3517gzv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogInJlZC5zb2Z0d2FyZS5zeXN0ZW1zLmVhc3lfZG9ja2VyX2NvbnRhaW5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JlZFNvZnR3YXJlU3lzdGVtcy9lYXN5X2RvY2tlcl9jb250YWluZXJzIiwKICAidXVpZCI6ICJlYXN5X2RvY2tlcl9jb250YWluZXJzQHJlZC5zb2Z0d2FyZS5zeXN0ZW1zIiwKICAidmVyc2lvbiI6IDIzCn0="},
-    "46": {"version": "23", "sha256": "06a4s1njlg1lkapgr5lh0vsw3c7ny63c24386ysz3rk9c3517gzv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogInJlZC5zb2Z0d2FyZS5zeXN0ZW1zLmVhc3lfZG9ja2VyX2NvbnRhaW5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JlZFNvZnR3YXJlU3lzdGVtcy9lYXN5X2RvY2tlcl9jb250YWluZXJzIiwKICAidXVpZCI6ICJlYXN5X2RvY2tlcl9jb250YWluZXJzQHJlZC5zb2Z0d2FyZS5zeXN0ZW1zIiwKICAidmVyc2lvbiI6IDIzCn0="}
+    "45": {"version": "25", "sha256": "1n10k147k1lv30h20vmf9rfxzr58f9qxxc1f054s51gsqblwyvkm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogInJlZC5zb2Z0d2FyZS5zeXN0ZW1zLmVhc3lfZG9ja2VyX2NvbnRhaW5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JlZFNvZnR3YXJlU3lzdGVtcy9lYXN5X2RvY2tlcl9jb250YWluZXJzIiwKICAidXVpZCI6ICJlYXN5X2RvY2tlcl9jb250YWluZXJzQHJlZC5zb2Z0d2FyZS5zeXN0ZW1zIiwKICAidmVyc2lvbiI6IDI1Cn0="},
+    "46": {"version": "25", "sha256": "1n10k147k1lv30h20vmf9rfxzr58f9qxxc1f054s51gsqblwyvkm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogInJlZC5zb2Z0d2FyZS5zeXN0ZW1zLmVhc3lfZG9ja2VyX2NvbnRhaW5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JlZFNvZnR3YXJlU3lzdGVtcy9lYXN5X2RvY2tlcl9jb250YWluZXJzIiwKICAidXVpZCI6ICJlYXN5X2RvY2tlcl9jb250YWluZXJzQHJlZC5zb2Z0d2FyZS5zeXN0ZW1zIiwKICAidmVyc2lvbiI6IDI1Cn0="}
   }}
 , {"uuid": "nightthemeswitcher@romainvigier.fr", "name": "Night Theme Switcher", "pname": "night-theme-switcher", "description": "Automatically toggle your desktop’s color scheme between light and dark, switch backgrounds and run custom commands at sunset and sunrise.\n\n⚠️ Ubuntu is not supported due to their heavily patched GNOME components that conflict with the extension ⚠️", "link": "https://extensions.gnome.org/extension/2236/night-theme-switcher/", "shell_version_map": {
     "38": {"version": "46", "sha256": "1mqan95pv7fjgr3bis9f1262i6nwwmp15lalh6c3aspn17pncp7w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgdG9nZ2xlIHlvdXIgZGVza3RvcFx1MjAxOXMgY29sb3Igc2NoZW1lIGJldHdlZW4gbGlnaHQgYW5kIGRhcmssIHN3aXRjaCBiYWNrZ3JvdW5kcyBhbmQgcnVuIGN1c3RvbSBjb21tYW5kcyBhdCBzdW5zZXQgYW5kIHN1bnJpc2UuXG5cblx1MjZhMFx1ZmUwZiBVYnVudHUgaXMgbm90IHN1cHBvcnRlZCBkdWUgdG8gdGhlaXIgaGVhdmlseSBwYXRjaGVkIEdOT01FIGNvbXBvbmVudHMgdGhhdCBjb25mbGljdCB3aXRoIHRoZSBleHRlbnNpb24gXHUyNmEwXHVmZTBmIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibmlnaHR0aGVtZXN3aXRjaGVyQHJvbWFpbnZpZ2llci5mciIsCiAgIm5hbWUiOiAiTmlnaHQgVGhlbWUgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmlnaHR0aGVtZXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL25pZ2h0dGhlbWVzd2l0Y2hlci5yb21haW52aWdpZXIuZnIiLAogICJ1dWlkIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJ2ZXJzaW9uIjogNDYKfQ=="},
@@ -1989,7 +2024,8 @@
     "42": {"version": "46", "sha256": "0z3anwi0kbsn9adbsmczcbywnasqq3xvkq190jbxmvbh9bxaawrz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSByZW1pbmRlciBhbGFybSBjbG9jayB3aWxsIHJlbWluZCB5b3Ugb2YgYW4gaW1wb3J0YW50IGV2ZW50IGF0IHRoZSBhcHBvaW50ZWQgdGltZS4iLAogICJuYW1lIjogIlJlbWluZGVyIEFsYXJtIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90cmlmb25vdmt2L1JlbWluZGVyQWxhcm1DbG9jayIsCiAgInV1aWQiOiAicmVtaW5kZXJfYWxhcm1fY2xvY2tAdHJpZm9ub3Zrdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDYKfQ=="},
     "43": {"version": "46", "sha256": "0z3anwi0kbsn9adbsmczcbywnasqq3xvkq190jbxmvbh9bxaawrz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSByZW1pbmRlciBhbGFybSBjbG9jayB3aWxsIHJlbWluZCB5b3Ugb2YgYW4gaW1wb3J0YW50IGV2ZW50IGF0IHRoZSBhcHBvaW50ZWQgdGltZS4iLAogICJuYW1lIjogIlJlbWluZGVyIEFsYXJtIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90cmlmb25vdmt2L1JlbWluZGVyQWxhcm1DbG9jayIsCiAgInV1aWQiOiAicmVtaW5kZXJfYWxhcm1fY2xvY2tAdHJpZm9ub3Zrdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDYKfQ=="},
     "44": {"version": "46", "sha256": "0z3anwi0kbsn9adbsmczcbywnasqq3xvkq190jbxmvbh9bxaawrz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSByZW1pbmRlciBhbGFybSBjbG9jayB3aWxsIHJlbWluZCB5b3Ugb2YgYW4gaW1wb3J0YW50IGV2ZW50IGF0IHRoZSBhcHBvaW50ZWQgdGltZS4iLAogICJuYW1lIjogIlJlbWluZGVyIEFsYXJtIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90cmlmb25vdmt2L1JlbWluZGVyQWxhcm1DbG9jayIsCiAgInV1aWQiOiAicmVtaW5kZXJfYWxhcm1fY2xvY2tAdHJpZm9ub3Zrdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDYKfQ=="},
-    "45": {"version": "48", "sha256": "0mgqiw41rfcaadba02rcnldkqdmsn28lwvisdxyyd2ly2yh3cbkb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSByZW1pbmRlciBhbGFybSBjbG9jayB3aWxsIHJlbWluZCB5b3Ugb2YgYW4gaW1wb3J0YW50IGV2ZW50IGF0IHRoZSBhcHBvaW50ZWQgdGltZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJyZW1pbmRlckFsYXJtQ2xvY2siLAogICJuYW1lIjogIlJlbWluZGVyIEFsYXJtIENsb2NrIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnJlbWluZGVyYWxhcm1jbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90cmlmb25vdmt2L1JlbWluZGVyQWxhcm1DbG9jayIsCiAgInV1aWQiOiAicmVtaW5kZXJfYWxhcm1fY2xvY2tAdHJpZm9ub3Zrdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDgKfQ=="}
+    "45": {"version": "50", "sha256": "0anyjj3qfrgv1igvnsy7sypp2zc4ibhws0a4h97fl80l8f5a0x9s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSByZW1pbmRlciBhbGFybSBjbG9jayB3aWxsIHJlbWluZCB5b3Ugb2YgYW4gaW1wb3J0YW50IGV2ZW50IGF0IHRoZSBhcHBvaW50ZWQgdGltZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJyZW1pbmRlckFsYXJtQ2xvY2siLAogICJuYW1lIjogIlJlbWluZGVyIEFsYXJtIENsb2NrIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnJlbWluZGVyYWxhcm1jbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHJpZm9ub3Zrdi9SZW1pbmRlckFsYXJtQ2xvY2siLAogICJ1dWlkIjogInJlbWluZGVyX2FsYXJtX2Nsb2NrQHRyaWZvbm92a3YuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDUwCn0="},
+    "46": {"version": "51", "sha256": "0y5ypxm6idc7k0mrnikl69fkcihz3ab80mrns5clgdj540kvfq4z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSByZW1pbmRlciBhbGFybSBjbG9jayB3aWxsIHJlbWluZCB5b3Ugb2YgYW4gaW1wb3J0YW50IGV2ZW50IGF0IHRoZSBhcHBvaW50ZWQgdGltZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJyZW1pbmRlckFsYXJtQ2xvY2siLAogICJuYW1lIjogIlJlbWluZGVyIEFsYXJtIENsb2NrIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnJlbWluZGVyYWxhcm1jbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uRTBzSWdoVC9SZW1pbmRlckFsYXJtQ2xvY2siLAogICJ1dWlkIjogInJlbWluZGVyX2FsYXJtX2Nsb2NrQHRyaWZvbm92a3YuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDUxCn0="}
   }}
 , {"uuid": "TaskBar@c0ldplasma", "name": "TaskBar 2020", "pname": "taskbar-updated", "description": "!!! Development stopped !!!!  Look at Dash to Panel as an alternative: https://extensions.gnome.org/extension/1160/dash-to-panel/\n\n----------------------------------------------------------------------\n\nTaskBar 2020 displays icons of running applications and favorites on the top panel or alternatively on a new bottom panel. Activate, minimize or close tasks with a simple click. \n\nTaskBar 2020 is a dock-like windows list on the top/bottom bar. \n\nFork of zpydr/gnome-shell-extension-taskbar to support newer versions of GNOME", "link": "https://extensions.gnome.org/extension/2506/taskbar-updated/", "shell_version_map": {
     "38": {"version": "5", "sha256": "09yn1p0vmq70ll7vi3jdjvj479cm38r4am0mw08nca8hl4zdiamj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiEhISBEZXZlbG9wbWVudCBzdG9wcGVkICEhISEgIExvb2sgYXQgRGFzaCB0byBQYW5lbCBhcyBhbiBhbHRlcm5hdGl2ZTogaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTE2MC9kYXNoLXRvLXBhbmVsL1xuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblRhc2tCYXIgMjAyMCBkaXNwbGF5cyBpY29ucyBvZiBydW5uaW5nIGFwcGxpY2F0aW9ucyBhbmQgZmF2b3JpdGVzIG9uIHRoZSB0b3AgcGFuZWwgb3IgYWx0ZXJuYXRpdmVseSBvbiBhIG5ldyBib3R0b20gcGFuZWwuIEFjdGl2YXRlLCBtaW5pbWl6ZSBvciBjbG9zZSB0YXNrcyB3aXRoIGEgc2ltcGxlIGNsaWNrLiBcblxuVGFza0JhciAyMDIwIGlzIGEgZG9jay1saWtlIHdpbmRvd3MgbGlzdCBvbiB0aGUgdG9wL2JvdHRvbSBiYXIuIFxuXG5Gb3JrIG9mIHpweWRyL2dub21lLXNoZWxsLWV4dGVuc2lvbi10YXNrYmFyIHRvIHN1cHBvcnQgbmV3ZXIgdmVyc2lvbnMgb2YgR05PTUUiLAogICJuYW1lIjogIlRhc2tCYXIgMjAyMCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2MwbGRwbGFzbWEvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2tiYXIiLAogICJ1dWlkIjogIlRhc2tCYXJAYzBsZHBsYXNtYSIsCiAgInZlcnNpb24iOiA1Cn0="},
@@ -2034,7 +2070,8 @@
     "42": {"version": "12", "sha256": "13pzx9h8685pk3wv5mndwdnsfd1zjywxxrc5z7759kd8hgvwqp9h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6XG4xKSBOZXcgbWVzc2FnZSBpbmRpY2F0b3IgaXMgYWx3YXlzIHNob3duIGlmIHRoZXJlIGFyZSBub3RpZmljYXRpb25zLlxuMikgVGhlIGNvbG9yIG9mIHRoZSBpbmRpY2F0b3IgY2FuIGJlIGN1c3RvbWl6ZWQuXG4zKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuXG5cbklmIHlvdSBhcHByZWNpYXRlIHRoaXMgZXh0ZW5zaW9uIHBsZWFzZSBjb25zaWRlciB0byBkb25hdGUgJDEuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJtenVyIiwKICAgICJwYXlwYWwiOiAiZHJtenVyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFsd2F5cy1pbmRpY2F0b3IiLAogICJuYW1lIjogIkFsd2F5cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx3YXlzLWluZGljYXRvci1zZXR0aW5ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXp1ci9nbm9tZS1zaGVsbC1hbHdheXMtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJhbHdheXMtaW5kaWNhdG9yQG1hcnRpbi56dXJvd2lldHouZGUiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
     "43": {"version": "12", "sha256": "13pzx9h8685pk3wv5mndwdnsfd1zjywxxrc5z7759kd8hgvwqp9h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6XG4xKSBOZXcgbWVzc2FnZSBpbmRpY2F0b3IgaXMgYWx3YXlzIHNob3duIGlmIHRoZXJlIGFyZSBub3RpZmljYXRpb25zLlxuMikgVGhlIGNvbG9yIG9mIHRoZSBpbmRpY2F0b3IgY2FuIGJlIGN1c3RvbWl6ZWQuXG4zKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuXG5cbklmIHlvdSBhcHByZWNpYXRlIHRoaXMgZXh0ZW5zaW9uIHBsZWFzZSBjb25zaWRlciB0byBkb25hdGUgJDEuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJtenVyIiwKICAgICJwYXlwYWwiOiAiZHJtenVyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFsd2F5cy1pbmRpY2F0b3IiLAogICJuYW1lIjogIkFsd2F5cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx3YXlzLWluZGljYXRvci1zZXR0aW5ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXp1ci9nbm9tZS1zaGVsbC1hbHdheXMtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJhbHdheXMtaW5kaWNhdG9yQG1hcnRpbi56dXJvd2lldHouZGUiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
     "44": {"version": "12", "sha256": "13pzx9h8685pk3wv5mndwdnsfd1zjywxxrc5z7759kd8hgvwqp9h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6XG4xKSBOZXcgbWVzc2FnZSBpbmRpY2F0b3IgaXMgYWx3YXlzIHNob3duIGlmIHRoZXJlIGFyZSBub3RpZmljYXRpb25zLlxuMikgVGhlIGNvbG9yIG9mIHRoZSBpbmRpY2F0b3IgY2FuIGJlIGN1c3RvbWl6ZWQuXG4zKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuXG5cbklmIHlvdSBhcHByZWNpYXRlIHRoaXMgZXh0ZW5zaW9uIHBsZWFzZSBjb25zaWRlciB0byBkb25hdGUgJDEuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJtenVyIiwKICAgICJwYXlwYWwiOiAiZHJtenVyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFsd2F5cy1pbmRpY2F0b3IiLAogICJuYW1lIjogIkFsd2F5cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx3YXlzLWluZGljYXRvci1zZXR0aW5ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXp1ci9nbm9tZS1zaGVsbC1hbHdheXMtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJhbHdheXMtaW5kaWNhdG9yQG1hcnRpbi56dXJvd2lldHouZGUiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
-    "45": {"version": "15", "sha256": "1clhhrfsd1z2dxp6l0pvr9bzbnq38a6lg03hz5cynf0v6dlglqwd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6XG4xKSBOZXcgbWVzc2FnZSBpbmRpY2F0b3IgaXMgYWx3YXlzIHNob3duIGlmIHRoZXJlIGFyZSBub3RpZmljYXRpb25zLlxuMikgVGhlIGNvbG9yIG9mIHRoZSBpbmRpY2F0b3IgY2FuIGJlIGN1c3RvbWl6ZWQuXG4zKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuXG5cbklmIHlvdSBhcHByZWNpYXRlIHRoaXMgZXh0ZW5zaW9uIHBsZWFzZSBjb25zaWRlciB0byBkb25hdGUgJDEuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJtenVyIiwKICAgICJwYXlwYWwiOiAiZHJtenVyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFsd2F5cy1pbmRpY2F0b3IiLAogICJuYW1lIjogIkFsd2F5cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx3YXlzLWluZGljYXRvci1zZXR0aW5ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tenVyL2dub21lLXNoZWxsLWFsd2F5cy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImFsd2F5cy1pbmRpY2F0b3JAbWFydGluLnp1cm93aWV0ei5kZSIsCiAgInZlcnNpb24iOiAxNQp9"}
+    "45": {"version": "16", "sha256": "0si884yba6844x8nn4dy43y64h4lks9n648xqqhwalj10qxganr3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6XG4xKSBOZXcgbWVzc2FnZSBpbmRpY2F0b3IgaXMgYWx3YXlzIHNob3duIGlmIHRoZXJlIGFyZSBub3RpZmljYXRpb25zLlxuMikgVGhlIGNvbG9yIG9mIHRoZSBpbmRpY2F0b3IgY2FuIGJlIGN1c3RvbWl6ZWQuXG4zKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuXG5cbklmIHlvdSBhcHByZWNpYXRlIHRoaXMgZXh0ZW5zaW9uIHBsZWFzZSBjb25zaWRlciB0byBkb25hdGUgJDEuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJtenVyIiwKICAgICJwYXlwYWwiOiAiZHJtenVyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFsd2F5cy1pbmRpY2F0b3IiLAogICJuYW1lIjogIkFsd2F5cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx3YXlzLWluZGljYXRvci1zZXR0aW5ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXp1ci9nbm9tZS1zaGVsbC1hbHdheXMtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJhbHdheXMtaW5kaWNhdG9yQG1hcnRpbi56dXJvd2lldHouZGUiLAogICJ2ZXJzaW9uIjogMTYKfQ=="},
+    "46": {"version": "16", "sha256": "0si884yba6844x8nn4dy43y64h4lks9n648xqqhwalj10qxganr3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6XG4xKSBOZXcgbWVzc2FnZSBpbmRpY2F0b3IgaXMgYWx3YXlzIHNob3duIGlmIHRoZXJlIGFyZSBub3RpZmljYXRpb25zLlxuMikgVGhlIGNvbG9yIG9mIHRoZSBpbmRpY2F0b3IgY2FuIGJlIGN1c3RvbWl6ZWQuXG4zKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuXG5cbklmIHlvdSBhcHByZWNpYXRlIHRoaXMgZXh0ZW5zaW9uIHBsZWFzZSBjb25zaWRlciB0byBkb25hdGUgJDEuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJtenVyIiwKICAgICJwYXlwYWwiOiAiZHJtenVyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFsd2F5cy1pbmRpY2F0b3IiLAogICJuYW1lIjogIkFsd2F5cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx3YXlzLWluZGljYXRvci1zZXR0aW5ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXp1ci9nbm9tZS1zaGVsbC1hbHdheXMtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJhbHdheXMtaW5kaWNhdG9yQG1hcnRpbi56dXJvd2lldHouZGUiLAogICJ2ZXJzaW9uIjogMTYKfQ=="}
   }}
 , {"uuid": "eruption-profile-switcher@x3n0m0rph59.org", "name": "Eruption Profile Switcher", "pname": "eruption-profile-switcher", "description": "Runtime Profile switcher for the Eruption Realtime RGB LED Driver for Linux", "link": "https://extensions.gnome.org/extension/2621/eruption-profile-switcher/", "shell_version_map": {
     "38": {"version": "15", "sha256": "14zgczf2z7jv707whimggl3h31c44m1qdzncin38vdcdzhm2g7hv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJ1bnRpbWUgUHJvZmlsZSBzd2l0Y2hlciBmb3IgdGhlIEVydXB0aW9uIFJlYWx0aW1lIFJHQiBMRUQgRHJpdmVyIGZvciBMaW51eCIsCiAgIm5hbWUiOiAiRXJ1cHRpb24gUHJvZmlsZSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuYmV0YSIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9YM24wbTBycGg1OS9lcnVwdGlvbi1wcm9maWxlLXN3aXRjaGVyIiwKICAidXVpZCI6ICJlcnVwdGlvbi1wcm9maWxlLXN3aXRjaGVyQHgzbjBtMHJwaDU5Lm9yZyIsCiAgInZlcnNpb24iOiAxNQp9"},
@@ -2137,7 +2174,8 @@
     "42": {"version": "41", "sha256": "0irsbwxbh9xvb76j4nfiy508kir72x11h9bbmwhsyd531d0jmyjm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gdHJhY2sgcHJpY2Ugb2YgQ3J5cHRvIEN1cnJlbmNpZXNcbkxpa2U6IEJUQywgRVRILCBCTkIsIERPR0UgYW5kIGV0Yy4uXG5cblNvdXJjZXM6IEJpbmFuY2UsIENyeXB0bywgQ29pbmdlY2tvLCBPS1hcblxuQWRkIGNvaW5zIGJ5IHN5bWJvbHMsIGZvciBleGFtcGxlOlxuKiBCaW5hbmNlIHBhaXJzOiBcIkJUQy9VU0RUXCJcbiogT0tYIHBhaXJzOiBcIkxUQy9VU0RUXCJcbiogQ29pbmdlY2tvIHBhaXJzOiBcIkJUQy9VU0RcIlxuXG5Vc2luZyBhcGkuY29pbmdlY2tvLmNvbSwgb2t4LmNvbSwgYmluYW5jZS5jb20sIGNyeXB0by5jb21cbkNvbXBsZXRlIGxpc3Qgb2YgcGFpcnM6IGh0dHBzOi8vd3d3LmJpbmFuY2UuY29tL2luZGV4U3BhLmh0bWxcbkNvbXBsZXRlIGd1aWRlOiBodHRwczovL2dpdGh1Yi5jb20vYWxpcGlycGlyYW4vQ3J5cHRvLVByaWNlLVRyYWNrZXItZm9yLUdub21lLVNoZWxsI3JlYWRtZVxuXG4qKiBpZiBpdCBmYWNlZCBlcnJvciBhZnRlciB1cGRhdGU6XG4qKlJlc3RhcnQgR25vbWUtc2hlbGwuIChBTFQrRjIsIHIsIEVudGVyKSIsCiAgIm5hbWUiOiAiQ3J5cHRvIFByaWNlIFRyYWNrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3J5cHRvLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsaXBpcnBpcmFuL0NyeXB0by1QcmljZS1UcmFja2VyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiY3J5cHRvQGFsaXBpcnBpcmFuLmdpdGh1YiIsCiAgInZlcnNpb24iOiA0MQp9"},
     "43": {"version": "41", "sha256": "0irsbwxbh9xvb76j4nfiy508kir72x11h9bbmwhsyd531d0jmyjm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gdHJhY2sgcHJpY2Ugb2YgQ3J5cHRvIEN1cnJlbmNpZXNcbkxpa2U6IEJUQywgRVRILCBCTkIsIERPR0UgYW5kIGV0Yy4uXG5cblNvdXJjZXM6IEJpbmFuY2UsIENyeXB0bywgQ29pbmdlY2tvLCBPS1hcblxuQWRkIGNvaW5zIGJ5IHN5bWJvbHMsIGZvciBleGFtcGxlOlxuKiBCaW5hbmNlIHBhaXJzOiBcIkJUQy9VU0RUXCJcbiogT0tYIHBhaXJzOiBcIkxUQy9VU0RUXCJcbiogQ29pbmdlY2tvIHBhaXJzOiBcIkJUQy9VU0RcIlxuXG5Vc2luZyBhcGkuY29pbmdlY2tvLmNvbSwgb2t4LmNvbSwgYmluYW5jZS5jb20sIGNyeXB0by5jb21cbkNvbXBsZXRlIGxpc3Qgb2YgcGFpcnM6IGh0dHBzOi8vd3d3LmJpbmFuY2UuY29tL2luZGV4U3BhLmh0bWxcbkNvbXBsZXRlIGd1aWRlOiBodHRwczovL2dpdGh1Yi5jb20vYWxpcGlycGlyYW4vQ3J5cHRvLVByaWNlLVRyYWNrZXItZm9yLUdub21lLVNoZWxsI3JlYWRtZVxuXG4qKiBpZiBpdCBmYWNlZCBlcnJvciBhZnRlciB1cGRhdGU6XG4qKlJlc3RhcnQgR25vbWUtc2hlbGwuIChBTFQrRjIsIHIsIEVudGVyKSIsCiAgIm5hbWUiOiAiQ3J5cHRvIFByaWNlIFRyYWNrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3J5cHRvLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsaXBpcnBpcmFuL0NyeXB0by1QcmljZS1UcmFja2VyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiY3J5cHRvQGFsaXBpcnBpcmFuLmdpdGh1YiIsCiAgInZlcnNpb24iOiA0MQp9"},
     "44": {"version": "41", "sha256": "0irsbwxbh9xvb76j4nfiy508kir72x11h9bbmwhsyd531d0jmyjm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gdHJhY2sgcHJpY2Ugb2YgQ3J5cHRvIEN1cnJlbmNpZXNcbkxpa2U6IEJUQywgRVRILCBCTkIsIERPR0UgYW5kIGV0Yy4uXG5cblNvdXJjZXM6IEJpbmFuY2UsIENyeXB0bywgQ29pbmdlY2tvLCBPS1hcblxuQWRkIGNvaW5zIGJ5IHN5bWJvbHMsIGZvciBleGFtcGxlOlxuKiBCaW5hbmNlIHBhaXJzOiBcIkJUQy9VU0RUXCJcbiogT0tYIHBhaXJzOiBcIkxUQy9VU0RUXCJcbiogQ29pbmdlY2tvIHBhaXJzOiBcIkJUQy9VU0RcIlxuXG5Vc2luZyBhcGkuY29pbmdlY2tvLmNvbSwgb2t4LmNvbSwgYmluYW5jZS5jb20sIGNyeXB0by5jb21cbkNvbXBsZXRlIGxpc3Qgb2YgcGFpcnM6IGh0dHBzOi8vd3d3LmJpbmFuY2UuY29tL2luZGV4U3BhLmh0bWxcbkNvbXBsZXRlIGd1aWRlOiBodHRwczovL2dpdGh1Yi5jb20vYWxpcGlycGlyYW4vQ3J5cHRvLVByaWNlLVRyYWNrZXItZm9yLUdub21lLVNoZWxsI3JlYWRtZVxuXG4qKiBpZiBpdCBmYWNlZCBlcnJvciBhZnRlciB1cGRhdGU6XG4qKlJlc3RhcnQgR25vbWUtc2hlbGwuIChBTFQrRjIsIHIsIEVudGVyKSIsCiAgIm5hbWUiOiAiQ3J5cHRvIFByaWNlIFRyYWNrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3J5cHRvLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsaXBpcnBpcmFuL0NyeXB0by1QcmljZS1UcmFja2VyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiY3J5cHRvQGFsaXBpcnBpcmFuLmdpdGh1YiIsCiAgInZlcnNpb24iOiA0MQp9"},
-    "45": {"version": "45", "sha256": "0bbjng2cms58hbhy80ildzfq9vjcqp88mw0jqf4igp1b38zl0bck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gdHJhY2sgcHJpY2Ugb2YgQ3J5cHRvIEN1cnJlbmNpZXNcbkxpa2U6IEJUQywgRVRILCBCTkIsIERPR0UgYW5kIGV0Yy4uXG5cblNvdXJjZXM6IEJpbmFuY2UsIENyeXB0bywgQ29pbmdlY2tvLCBPS1hcblxuQWRkIGNvaW5zIGJ5IHN5bWJvbHMsIGZvciBleGFtcGxlOlxuKiBCaW5hbmNlIHBhaXJzOiBcIkJUQy9VU0RUXCJcbiogT0tYIHBhaXJzOiBcIkxUQy9VU0RUXCJcbiogQ29pbmdlY2tvIHBhaXJzOiBcIkJUQy9VU0RcIlxuXG5Vc2luZyBhcGkuY29pbmdlY2tvLmNvbSwgb2t4LmNvbSwgYmluYW5jZS5jb20sIGNyeXB0by5jb21cbkNvbXBsZXRlIGxpc3Qgb2YgcGFpcnM6IGh0dHBzOi8vd3d3LmJpbmFuY2UuY29tL2luZGV4U3BhLmh0bWxcbkNvbXBsZXRlIGd1aWRlOiBodHRwczovL2dpdGh1Yi5jb20vYWxpcGlycGlyYW4vQ3J5cHRvLVByaWNlLVRyYWNrZXItZm9yLUdub21lLVNoZWxsI3JlYWRtZVxuXG4qKiBpZiBpdCBmYWNlZCBlcnJvciBhZnRlciB1cGRhdGU6XG4qKlJlc3RhcnQgR25vbWUtc2hlbGwuIChBTFQrRjIsIHIsIEVudGVyKSIsCiAgIm5hbWUiOiAiQ3J5cHRvIFByaWNlIFRyYWNrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3J5cHRvLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxpcGlycGlyYW4vQ3J5cHRvLVByaWNlLVRyYWNrZXItZm9yLUdub21lLVNoZWxsIiwKICAidXVpZCI6ICJjcnlwdG9AYWxpcGlycGlyYW4uZ2l0aHViIiwKICAidmVyc2lvbiI6IDQ1Cn0="}
+    "45": {"version": "46", "sha256": "0b9a6ngj9w83gqasg0b3h8iy4abl0ysrj9jpkqwj8xq0xr9b0g3v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gdHJhY2sgcHJpY2Ugb2YgQ3J5cHRvIEN1cnJlbmNpZXNcbkxpa2U6IEJUQywgRVRILCBCTkIsIERPR0UgYW5kIGV0Yy4uXG5cblNvdXJjZXM6IEJpbmFuY2UsIENyeXB0bywgQ29pbmdlY2tvLCBPS1hcblxuQWRkIGNvaW5zIGJ5IHN5bWJvbHMsIGZvciBleGFtcGxlOlxuKiBCaW5hbmNlIHBhaXJzOiBcIkJUQy9VU0RUXCJcbiogT0tYIHBhaXJzOiBcIkxUQy9VU0RUXCJcbiogQ29pbmdlY2tvIHBhaXJzOiBcIkJUQy9VU0RcIlxuXG5Vc2luZyBhcGkuY29pbmdlY2tvLmNvbSwgb2t4LmNvbSwgYmluYW5jZS5jb20sIGNyeXB0by5jb21cbkNvbXBsZXRlIGxpc3Qgb2YgcGFpcnM6IGh0dHBzOi8vd3d3LmJpbmFuY2UuY29tL2luZGV4U3BhLmh0bWxcbkNvbXBsZXRlIGd1aWRlOiBodHRwczovL2dpdGh1Yi5jb20vYWxpcGlycGlyYW4vQ3J5cHRvLVByaWNlLVRyYWNrZXItZm9yLUdub21lLVNoZWxsI3JlYWRtZVxuXG4qKiBpZiBpdCBmYWNlZCBlcnJvciBhZnRlciB1cGRhdGU6XG4qKlJlc3RhcnQgR25vbWUtc2hlbGwuIChBTFQrRjIsIHIsIEVudGVyKSIsCiAgIm5hbWUiOiAiQ3J5cHRvIFByaWNlIFRyYWNrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3J5cHRvLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsaXBpcnBpcmFuL0NyeXB0by1QcmljZS1UcmFja2VyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiY3J5cHRvQGFsaXBpcnBpcmFuLmdpdGh1YiIsCiAgInZlcnNpb24iOiA0Ngp9"},
+    "46": {"version": "47", "sha256": "0pmhl80q5d4h39kb9bb6abnr75hvliin0c7h9m66z3giqxq7nss0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gdHJhY2sgcHJpY2Ugb2YgQ3J5cHRvIEN1cnJlbmNpZXNcbkxpa2U6IEJUQywgRVRILCBCTkIsIERPR0UgYW5kIGV0Yy4uXG5cblNvdXJjZXM6IEJpbmFuY2UsIENyeXB0bywgQ29pbmdlY2tvLCBPS1hcblxuQWRkIGNvaW5zIGJ5IHN5bWJvbHMsIGZvciBleGFtcGxlOlxuKiBCaW5hbmNlIHBhaXJzOiBcIkJUQy9VU0RUXCJcbiogT0tYIHBhaXJzOiBcIkxUQy9VU0RUXCJcbiogQ29pbmdlY2tvIHBhaXJzOiBcIkJUQy9VU0RcIlxuXG5Vc2luZyBhcGkuY29pbmdlY2tvLmNvbSwgb2t4LmNvbSwgYmluYW5jZS5jb20sIGNyeXB0by5jb21cbkNvbXBsZXRlIGxpc3Qgb2YgcGFpcnM6IGh0dHBzOi8vd3d3LmJpbmFuY2UuY29tL2luZGV4U3BhLmh0bWxcbkNvbXBsZXRlIGd1aWRlOiBodHRwczovL2dpdGh1Yi5jb20vYWxpcGlycGlyYW4vQ3J5cHRvLVByaWNlLVRyYWNrZXItZm9yLUdub21lLVNoZWxsI3JlYWRtZVxuXG4qKiBpZiBpdCBmYWNlZCBlcnJvciBhZnRlciB1cGRhdGU6XG4qKlJlc3RhcnQgR25vbWUtc2hlbGwuIChBTFQrRjIsIHIsIEVudGVyKSIsCiAgIm5hbWUiOiAiQ3J5cHRvIFByaWNlIFRyYWNrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3J5cHRvLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxpcGlycGlyYW4vQ3J5cHRvLVByaWNlLVRyYWNrZXItZm9yLUdub21lLVNoZWxsIiwKICAidXVpZCI6ICJjcnlwdG9AYWxpcGlycGlyYW4uZ2l0aHViIiwKICAidmVyc2lvbiI6IDQ3Cn0="}
   }}
 , {"uuid": "ibus-tweaker@tuberry.github.com", "name": "IBus Tweaker", "pname": "ibus-tweaker", "description": "Tweaker of IBus for orientation, theme, font, input mode and clipboard history\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/2820/ibus-tweaker/", "shell_version_map": {
     "38": {"version": "28", "sha256": "1ahhcq8hpxkdvq1fp8gd8qp1cfsgqsm9swn4ph9kyrzr7j8jvc3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250LCBpbnB1dCBtb2RlIGFuZCBjbGlwYm9hcmQgaGlzdG9yeVxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpYnVzLXR3ZWFrZXIiLAogICJuYW1lIjogIklCdXMgVHdlYWtlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pYnVzLXR3ZWFrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2lidXMtdHdlYWtlciIsCiAgInV1aWQiOiAiaWJ1cy10d2Vha2VyQHR1YmVycnkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyOAp9"},
@@ -2146,7 +2184,7 @@
     "42": {"version": "38", "sha256": "0crdw1z2yan0mbc36v8vw0iinqbv4lyqzsvdyhz8zsi9q4asrlg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250LCBpbnB1dCBtb2RlIGFuZCBjbGlwYm9hcmQgaGlzdG9yeVxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24taWJ1cy10d2Vha2VyIiwKICAibmFtZSI6ICJJQnVzIFR3ZWFrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaWJ1cy10d2Vha2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvaWJ1cy10d2Vha2VyIiwKICAidXVpZCI6ICJpYnVzLXR3ZWFrZXJAdHViZXJyeS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM4Cn0="},
     "43": {"version": "40", "sha256": "0b807s4bfxmxf6131749gi3nil42dabmz2ndwwsblcpbj0cas7mv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250LCBpbnB1dCBtb2RlIGFuZCBjbGlwYm9hcmQgaGlzdG9yeVxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24taWJ1cy10d2Vha2VyIiwKICAibmFtZSI6ICJJQnVzIFR3ZWFrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaWJ1cy10d2Vha2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvaWJ1cy10d2Vha2VyIiwKICAidXVpZCI6ICJpYnVzLXR3ZWFrZXJAdHViZXJyeS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQwCn0="},
     "45": {"version": "44", "sha256": "1fk1mbsms1y4h08vrgaq4iqi995q849891n15j9a34xd31a3qcmk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250LCBpbnB1dCBtb2RlIGFuZCBjbGlwYm9hcmQgaGlzdG9yeVxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24taWJ1cy10d2Vha2VyIiwKICAibmFtZSI6ICJJQnVzIFR3ZWFrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaWJ1cy10d2Vha2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvaWJ1cy10d2Vha2VyIiwKICAidXVpZCI6ICJpYnVzLXR3ZWFrZXJAdHViZXJyeS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ0Cn0="},
-    "46": {"version": "45", "sha256": "1kjfn9ar07ir1nfqziwwkqid7fwrdhjrzbz282b09gq586s8bbhi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250LCBpbnB1dCBtb2RlIGFuZCBjbGlwYm9hcmQgaGlzdG9yeVxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24taWJ1cy10d2Vha2VyIiwKICAibmFtZSI6ICJJQnVzIFR3ZWFrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaWJ1cy10d2Vha2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvaWJ1cy10d2Vha2VyIiwKICAidXVpZCI6ICJpYnVzLXR3ZWFrZXJAdHViZXJyeS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="}
+    "46": {"version": "46", "sha256": "1dgswxn9p66svnw1l6c6p0zv9dbgirx03hjxjhn8w1dbb54sryy3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250LCBpbnB1dCBtb2RlIGFuZCBjbGlwYm9hcmQgaGlzdG9yeVxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24taWJ1cy10d2Vha2VyIiwKICAibmFtZSI6ICJJQnVzIFR3ZWFrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaWJ1cy10d2Vha2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvaWJ1cy10d2Vha2VyIiwKICAidXVpZCI6ICJpYnVzLXR3ZWFrZXJAdHViZXJyeS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ2Cn0="}
   }}
 , {"uuid": "generic-monitor@gnome-shell-extensions", "name": "Generic Monitor", "pname": "generic-monitor", "description": "Display text & icon on systray using DBUS", "link": "https://extensions.gnome.org/extension/2826/generic-monitor/", "shell_version_map": {
     "38": {"version": "10", "sha256": "0kvniacvxv57f6jfcrlrd7ggwj4h0bfs60r59p150m6nldm9zf23", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGV4dCAmIGljb24gb24gc3lzdHJheSB1c2luZyBEQlVTIiwKICAibmFtZSI6ICJHZW5lcmljIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9pbmRlZmVyby5zb3V0YWRlLmZyL3AvZ2VuZXJpY21vbml0b3IiLAogICJ1dWlkIjogImdlbmVyaWMtbW9uaXRvckBnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidmVyc2lvbiI6IDEwCn0="},
@@ -2212,8 +2250,8 @@
     "42": {"version": "27", "sha256": "1bssg2w71qinr2hhsyv0rpps7876y91azpqcl3dhdgipki4n7yvq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibWVzc2FnaW5nbWVudSIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9tZXNzYWdpbmdtZW51IiwKICAidXVpZCI6ICJtZXNzYWdpbmdtZW51QGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMjcKfQ=="},
     "43": {"version": "27", "sha256": "1bssg2w71qinr2hhsyv0rpps7876y91azpqcl3dhdgipki4n7yvq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibWVzc2FnaW5nbWVudSIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9tZXNzYWdpbmdtZW51IiwKICAidXVpZCI6ICJtZXNzYWdpbmdtZW51QGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMjcKfQ=="},
     "44": {"version": "27", "sha256": "1bssg2w71qinr2hhsyv0rpps7876y91azpqcl3dhdgipki4n7yvq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibWVzc2FnaW5nbWVudSIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9tZXNzYWdpbmdtZW51IiwKICAidXVpZCI6ICJtZXNzYWdpbmdtZW51QGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMjcKfQ=="},
-    "45": {"version": "33", "sha256": "05dx5x60cryyfffmpc1s4gcf5nqjf8r9sx9qrjlvsmr8gp878aa6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm1lc3NhZ2luZ21lbnUiLAogICJuYW1lIjogIk1lc3NhZ2luZyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInNpbmlzdGVyc3R1ZiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tZXNzYWdpbmdtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1lc3NhZ2luZ21lbnUiLAogICJ1dWlkIjogIm1lc3NhZ2luZ21lbnVAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAzMywKICAidmVyc2lvbi1uYW1lIjogIjQ2LjEiCn0="},
-    "46": {"version": "33", "sha256": "05dx5x60cryyfffmpc1s4gcf5nqjf8r9sx9qrjlvsmr8gp878aa6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm1lc3NhZ2luZ21lbnUiLAogICJuYW1lIjogIk1lc3NhZ2luZyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInNpbmlzdGVyc3R1ZiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tZXNzYWdpbmdtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1lc3NhZ2luZ21lbnUiLAogICJ1dWlkIjogIm1lc3NhZ2luZ21lbnVAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAzMywKICAidmVyc2lvbi1uYW1lIjogIjQ2LjEiCn0="}
+    "45": {"version": "34", "sha256": "1lj314mf4zvp36sfzxm7jqwk17qvbd73jrbji8jd52b3l3svigjl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm1lc3NhZ2luZ21lbnUiLAogICJuYW1lIjogIk1lc3NhZ2luZyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInNpbmlzdGVyc3R1ZiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tZXNzYWdpbmdtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1lc3NhZ2luZ21lbnUiLAogICJ1dWlkIjogIm1lc3NhZ2luZ21lbnVAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAzNCwKICAidmVyc2lvbi1uYW1lIjogIjQ2LjIiCn0="},
+    "46": {"version": "34", "sha256": "1lj314mf4zvp36sfzxm7jqwk17qvbd73jrbji8jd52b3l3svigjl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm1lc3NhZ2luZ21lbnUiLAogICJuYW1lIjogIk1lc3NhZ2luZyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInNpbmlzdGVyc3R1ZiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tZXNzYWdpbmdtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1lc3NhZ2luZ21lbnUiLAogICJ1dWlkIjogIm1lc3NhZ2luZ21lbnVAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAzNCwKICAidmVyc2lvbi1uYW1lIjogIjQ2LjIiCn0="}
   }}
 , {"uuid": "SettingsCenter@lauinger-clan.de", "name": "SettingsCenter", "pname": "settingscenter", "description": "Settings Center is a customizable drop-down menu for quickly launching frequently used apps in Gnome:Shell via the quicksettings. Originally created by XES.\n\nSettings shortcuts : gnome-tweak-tool, dconf-editor, gconf-editor, gnome-session-properties, gnome-shell-extension-prefs, seahorse and nvidia-settings. You can add your own\n\nOriginal source : http://svn.xesnet.fr/gnomeextensions", "link": "https://extensions.gnome.org/extension/2899/settingscenter/", "shell_version_map": {
     "38": {"version": "2", "sha256": "0sywdlmfgy4k5bkxmawcb7b8100g8wnpndmwvdzjq51xv5605gcs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSBxdWlja3NldHRpbmdzLiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyIsCiAgImxvY2FsZSI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2V0dGluZ3NDZW50ZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiWGVzLCBsMzAwbHZsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjQiLAogICAgIjMuNiIsCiAgICAiMy41LjQiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9YRVMtU2V0dGluZ3MtQ2VudGVyLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiU2V0dGluZ3NDZW50ZXJAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAyCn0="},
@@ -2277,7 +2315,7 @@
     "42": {"version": "67", "sha256": "0405yz8w5a1h56csh2xl9kn7bbxr7r8vmsslh9y4l16gxs2nmkrh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzIG9yIHRyYW5zbGF0aW9uc1xuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGlnaHQtZGljdCIsCiAgIm5hbWUiOiAiTGlnaHQgRGljdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5saWdodC1kaWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvbGlnaHQtZGljdCIsCiAgInV1aWQiOiAibGlnaHQtZGljdEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2Nwp9"},
     "43": {"version": "71", "sha256": "01hmh278h8kjym6zvvqglfdg8qkfrz364p3srci137vwkc2rpd9x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzIG9yIHRyYW5zbGF0aW9uc1xuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGlnaHQtZGljdCIsCiAgIm5hbWUiOiAiTGlnaHQgRGljdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5saWdodC1kaWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvbGlnaHQtZGljdCIsCiAgInV1aWQiOiAibGlnaHQtZGljdEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3MQp9"},
     "45": {"version": "76", "sha256": "1m4k6gkda7axddm6y16z6d10sv0awxp6vsa23sw10djzk211bgf0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1saWdodC1kaWN0IiwKICAibmFtZSI6ICJMaWdodCBEaWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxpZ2h0LWRpY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9saWdodC1kaWN0IiwKICAidXVpZCI6ICJsaWdodC1kaWN0QHR1YmVycnkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDc2Cn0="},
-    "46": {"version": "78", "sha256": "1nwra9gakrr5h77z62kfn917186z5f01066rzi97c5lzqxza70zy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1saWdodC1kaWN0IiwKICAibmFtZSI6ICJMaWdodCBEaWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxpZ2h0LWRpY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9saWdodC1kaWN0IiwKICAidXVpZCI6ICJsaWdodC1kaWN0QHR1YmVycnkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDc4Cn0="}
+    "46": {"version": "80", "sha256": "016x7ihcahs19gbihdrlhrgrpmw04cnjcmhgkv5q1hvkzgq12wza", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1saWdodC1kaWN0IiwKICAibmFtZSI6ICJMaWdodCBEaWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxpZ2h0LWRpY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9saWdodC1kaWN0IiwKICAidXVpZCI6ICJsaWdodC1kaWN0QHR1YmVycnkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDgwCn0="}
   }}
 , {"uuid": "InternetSpeedMeter@alshakib.dev", "name": "Internet Speed Meter", "pname": "internet-speed-meter", "description": "Simple and minimal internet speed meter extension for the Gnome Shell", "link": "https://extensions.gnome.org/extension/2980/internet-speed-meter/", "shell_version_map": {
     "38": {"version": "11", "sha256": "1y33l24q441nc147njjp4ylygmfr73br8adc8yfbp9p8dzh084f0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIHRoZSBHbm9tZSBTaGVsbCIsCiAgIm5hbWUiOiAiSW50ZXJuZXQgU3BlZWQgTWV0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWxTaGFraWIvSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAidXVpZCI6ICJJbnRlcm5ldFNwZWVkTWV0ZXJAYWxzaGFraWIuZGV2IiwKICAidmVyc2lvbiI6IDExCn0="},
@@ -2286,7 +2324,8 @@
     "42": {"version": "16", "sha256": "0zjrnixd5cld46vj1ibl70gn5223rp9kllsq6wy53cqhxmrizskg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIHRoZSBHbm9tZSBTaGVsbCIsCiAgIm5hbWUiOiAiSW50ZXJuZXQgU3BlZWQgTWV0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FsU2hha2liL0ludGVybmV0U3BlZWRNZXRlciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1ldGVyQGFsc2hha2liLmRldiIsCiAgInZlcnNpb24iOiAxNgp9"},
     "43": {"version": "16", "sha256": "0zjrnixd5cld46vj1ibl70gn5223rp9kllsq6wy53cqhxmrizskg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIHRoZSBHbm9tZSBTaGVsbCIsCiAgIm5hbWUiOiAiSW50ZXJuZXQgU3BlZWQgTWV0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FsU2hha2liL0ludGVybmV0U3BlZWRNZXRlciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1ldGVyQGFsc2hha2liLmRldiIsCiAgInZlcnNpb24iOiAxNgp9"},
     "44": {"version": "16", "sha256": "0zjrnixd5cld46vj1ibl70gn5223rp9kllsq6wy53cqhxmrizskg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIHRoZSBHbm9tZSBTaGVsbCIsCiAgIm5hbWUiOiAiSW50ZXJuZXQgU3BlZWQgTWV0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FsU2hha2liL0ludGVybmV0U3BlZWRNZXRlciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1ldGVyQGFsc2hha2liLmRldiIsCiAgInZlcnNpb24iOiAxNgp9"},
-    "45": {"version": "17", "sha256": "1mvxlnfi4zj18zf742naxnnswpcvz11dn99nfr7a3h3dpclqgcd8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIHRoZSBHbm9tZSBTaGVsbCIsCiAgIm5hbWUiOiAiSW50ZXJuZXQgU3BlZWQgTWV0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWxTaGFraWIvSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAidXVpZCI6ICJJbnRlcm5ldFNwZWVkTWV0ZXJAYWxzaGFraWIuZGV2IiwKICAidmVyc2lvbiI6IDE3Cn0="}
+    "45": {"version": "18", "sha256": "165410zy48ar7fhwfqzi07i585krpcs05819k1x5kqclngvy0g9q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIHRoZSBHbm9tZSBTaGVsbCIsCiAgIm5hbWUiOiAiSW50ZXJuZXQgU3BlZWQgTWV0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FsU2hha2liL0ludGVybmV0U3BlZWRNZXRlciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1ldGVyQGFsc2hha2liLmRldiIsCiAgInZlcnNpb24iOiAxOAp9"},
+    "46": {"version": "18", "sha256": "165410zy48ar7fhwfqzi07i585krpcs05819k1x5kqclngvy0g9q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIHRoZSBHbm9tZSBTaGVsbCIsCiAgIm5hbWUiOiAiSW50ZXJuZXQgU3BlZWQgTWV0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FsU2hha2liL0ludGVybmV0U3BlZWRNZXRlciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1ldGVyQGFsc2hha2liLmRldiIsCiAgInZlcnNpb24iOiAxOAp9"}
   }}
 , {"uuid": "IP-Finder@linxgem33.com", "name": "IP Finder", "pname": "ip-finder", "description": "Displays useful information about your public IP Address and VPN status.\n\nIP Finder displays information about your public IP address, hostname, country, AS Block, as well as  a map tile of your Geolocation and country flag,  this extension is Also Useful for informational purposes to monitor VPN changes and public network IP Addresses.\n\nIP Finder can monitor in real time\n\n*Wireguard connections\n*OpenVPN connections\n*IPV4/6 connections\n*Proxy connections\n*VPN vendor applications\n*Manual static IP changes\n*Manually added connections", "link": "https://extensions.gnome.org/extension/2983/ip-finder/", "shell_version_map": {
     "38": {"version": "7", "sha256": "1g6xady411kx81crwnbgqh1afxlfjakgwdhbwznqvrjnbb98dh1r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHVzZWZ1bCBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBBZGRyZXNzIGFuZCBWUE4gc3RhdHVzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJpcC1maW5kZXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpcC1maW5kZXIiLAogICJuYW1lIjogIklQIEZpbmRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wdWJsaWMtaXAtYWRkcmVzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0xpbnhHZW0zMy9JUC1GaW5kZXIiLAogICJ1dWlkIjogIklQLUZpbmRlckBsaW54Z2VtMzMuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
@@ -2313,7 +2352,9 @@
     "40": {"version": "13", "sha256": "1qh02pk4s8lni7rgsbbdv1hb1brh4sfqkr82f4a9lcll2s486hfr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwuQm93c2VyIiwKICAiZGVzY3JpcHRpb24iOiAiQ3JlYXRlIHJ1bGVzIHRvIG9wZW4gc3BlY2lmaWMgd2Vic2l0ZXMgaW4gc3BlY2lmaWMgd2ViIGJyb3dzZXJzIGZvciBsaW5rcyBjbGlja2VkIGluIGFueSBhcHBsaWNhdGlvbiBvbiB5b3VyIGNvbXB1dGVyLiAoZW1haWxzLCBjaGF0IGV0YykiLAogICJleHRlbnNpb24taWQiOiAiYm93c2VyLWdub21lIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYm93c2VyLWdub21lIiwKICAibmFtZSI6ICJCb3dzZXIgR25vbWUgRXh0ZW5zaW9uIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImFkbWluQGtyb25vc291bC54eXoiLAogICJyZXNvdXJjZS1wYXRoIjogIi9vcmcva3Jvbm9zb3VsL0Jvd3Nlci8iLAogICJzZXR0aW5ncy1wYXRoIjogIi9vcmcvZ25vbWUvc2hlbGwvZXh0ZW5zaW9ucy9Cb3dzZXIvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkJvd3NlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9ib3dzZXItZ25vbWUiLAogICJ1dWlkIjogImJvd3Nlci1nbm9tZUBrcm9ub3NvdWwueHl6IiwKICAidmVyc2lvbiI6IDEzCn0="},
     "41": {"version": "13", "sha256": "1qh02pk4s8lni7rgsbbdv1hb1brh4sfqkr82f4a9lcll2s486hfr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwuQm93c2VyIiwKICAiZGVzY3JpcHRpb24iOiAiQ3JlYXRlIHJ1bGVzIHRvIG9wZW4gc3BlY2lmaWMgd2Vic2l0ZXMgaW4gc3BlY2lmaWMgd2ViIGJyb3dzZXJzIGZvciBsaW5rcyBjbGlja2VkIGluIGFueSBhcHBsaWNhdGlvbiBvbiB5b3VyIGNvbXB1dGVyLiAoZW1haWxzLCBjaGF0IGV0YykiLAogICJleHRlbnNpb24taWQiOiAiYm93c2VyLWdub21lIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYm93c2VyLWdub21lIiwKICAibmFtZSI6ICJCb3dzZXIgR25vbWUgRXh0ZW5zaW9uIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImFkbWluQGtyb25vc291bC54eXoiLAogICJyZXNvdXJjZS1wYXRoIjogIi9vcmcva3Jvbm9zb3VsL0Jvd3Nlci8iLAogICJzZXR0aW5ncy1wYXRoIjogIi9vcmcvZ25vbWUvc2hlbGwvZXh0ZW5zaW9ucy9Cb3dzZXIvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkJvd3NlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9ib3dzZXItZ25vbWUiLAogICJ1dWlkIjogImJvd3Nlci1nbm9tZUBrcm9ub3NvdWwueHl6IiwKICAidmVyc2lvbiI6IDEzCn0="},
     "42": {"version": "13", "sha256": "1qh02pk4s8lni7rgsbbdv1hb1brh4sfqkr82f4a9lcll2s486hfr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwuQm93c2VyIiwKICAiZGVzY3JpcHRpb24iOiAiQ3JlYXRlIHJ1bGVzIHRvIG9wZW4gc3BlY2lmaWMgd2Vic2l0ZXMgaW4gc3BlY2lmaWMgd2ViIGJyb3dzZXJzIGZvciBsaW5rcyBjbGlja2VkIGluIGFueSBhcHBsaWNhdGlvbiBvbiB5b3VyIGNvbXB1dGVyLiAoZW1haWxzLCBjaGF0IGV0YykiLAogICJleHRlbnNpb24taWQiOiAiYm93c2VyLWdub21lIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYm93c2VyLWdub21lIiwKICAibmFtZSI6ICJCb3dzZXIgR25vbWUgRXh0ZW5zaW9uIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImFkbWluQGtyb25vc291bC54eXoiLAogICJyZXNvdXJjZS1wYXRoIjogIi9vcmcva3Jvbm9zb3VsL0Jvd3Nlci8iLAogICJzZXR0aW5ncy1wYXRoIjogIi9vcmcvZ25vbWUvc2hlbGwvZXh0ZW5zaW9ucy9Cb3dzZXIvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkJvd3NlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9ib3dzZXItZ25vbWUiLAogICJ1dWlkIjogImJvd3Nlci1nbm9tZUBrcm9ub3NvdWwueHl6IiwKICAidmVyc2lvbiI6IDEzCn0="},
-    "43": {"version": "13", "sha256": "1qh02pk4s8lni7rgsbbdv1hb1brh4sfqkr82f4a9lcll2s486hfr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwuQm93c2VyIiwKICAiZGVzY3JpcHRpb24iOiAiQ3JlYXRlIHJ1bGVzIHRvIG9wZW4gc3BlY2lmaWMgd2Vic2l0ZXMgaW4gc3BlY2lmaWMgd2ViIGJyb3dzZXJzIGZvciBsaW5rcyBjbGlja2VkIGluIGFueSBhcHBsaWNhdGlvbiBvbiB5b3VyIGNvbXB1dGVyLiAoZW1haWxzLCBjaGF0IGV0YykiLAogICJleHRlbnNpb24taWQiOiAiYm93c2VyLWdub21lIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYm93c2VyLWdub21lIiwKICAibmFtZSI6ICJCb3dzZXIgR25vbWUgRXh0ZW5zaW9uIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImFkbWluQGtyb25vc291bC54eXoiLAogICJyZXNvdXJjZS1wYXRoIjogIi9vcmcva3Jvbm9zb3VsL0Jvd3Nlci8iLAogICJzZXR0aW5ncy1wYXRoIjogIi9vcmcvZ25vbWUvc2hlbGwvZXh0ZW5zaW9ucy9Cb3dzZXIvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkJvd3NlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9ib3dzZXItZ25vbWUiLAogICJ1dWlkIjogImJvd3Nlci1nbm9tZUBrcm9ub3NvdWwueHl6IiwKICAidmVyc2lvbiI6IDEzCn0="}
+    "43": {"version": "13", "sha256": "1qh02pk4s8lni7rgsbbdv1hb1brh4sfqkr82f4a9lcll2s486hfr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwuQm93c2VyIiwKICAiZGVzY3JpcHRpb24iOiAiQ3JlYXRlIHJ1bGVzIHRvIG9wZW4gc3BlY2lmaWMgd2Vic2l0ZXMgaW4gc3BlY2lmaWMgd2ViIGJyb3dzZXJzIGZvciBsaW5rcyBjbGlja2VkIGluIGFueSBhcHBsaWNhdGlvbiBvbiB5b3VyIGNvbXB1dGVyLiAoZW1haWxzLCBjaGF0IGV0YykiLAogICJleHRlbnNpb24taWQiOiAiYm93c2VyLWdub21lIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYm93c2VyLWdub21lIiwKICAibmFtZSI6ICJCb3dzZXIgR25vbWUgRXh0ZW5zaW9uIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImFkbWluQGtyb25vc291bC54eXoiLAogICJyZXNvdXJjZS1wYXRoIjogIi9vcmcva3Jvbm9zb3VsL0Jvd3Nlci8iLAogICJzZXR0aW5ncy1wYXRoIjogIi9vcmcvZ25vbWUvc2hlbGwvZXh0ZW5zaW9ucy9Cb3dzZXIvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkJvd3NlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9ib3dzZXItZ25vbWUiLAogICJ1dWlkIjogImJvd3Nlci1nbm9tZUBrcm9ub3NvdWwueHl6IiwKICAidmVyc2lvbiI6IDEzCn0="},
+    "45": {"version": "17", "sha256": "1hgn216nvlx5z8q0x6fvwgall1s47p6125c9k6zm5708rv49z6c4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwuQm93c2VyIiwKICAiZGVzY3JpcHRpb24iOiAiQ3JlYXRlIHJ1bGVzIHRvIG9wZW4gc3BlY2lmaWMgd2Vic2l0ZXMgaW4gc3BlY2lmaWMgd2ViIGJyb3dzZXJzIGZvciBsaW5rcyBjbGlja2VkIGluIGFueSBhcHBsaWNhdGlvbiBvbiB5b3VyIGNvbXB1dGVyLiAoZW1haWxzLCBjaGF0IGV0YykiLAogICJleHRlbnNpb24taWQiOiAiYm93c2VyLWdub21lIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYm93c2VyLWdub21lIiwKICAibmFtZSI6ICJCb3dzZXIgR25vbWUgRXh0ZW5zaW9uIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImFkbWluQGtyb25vc291bC54eXoiLAogICJyZXNvdXJjZS1wYXRoIjogIi9vcmcva3Jvbm9zb3VsL0Jvd3Nlci8iLAogICJzZXR0aW5ncy1wYXRoIjogIi9vcmcvZ25vbWUvc2hlbGwvZXh0ZW5zaW9ucy9Cb3dzZXIvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkJvd3NlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvYm93c2VyLWdub21lIiwKICAidXVpZCI6ICJib3dzZXItZ25vbWVAa3Jvbm9zb3VsLnh5eiIsCiAgInZlcnNpb24iOiAxNwp9"},
+    "46": {"version": "17", "sha256": "1hgn216nvlx5z8q0x6fvwgall1s47p6125c9k6zm5708rv49z6c4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwuQm93c2VyIiwKICAiZGVzY3JpcHRpb24iOiAiQ3JlYXRlIHJ1bGVzIHRvIG9wZW4gc3BlY2lmaWMgd2Vic2l0ZXMgaW4gc3BlY2lmaWMgd2ViIGJyb3dzZXJzIGZvciBsaW5rcyBjbGlja2VkIGluIGFueSBhcHBsaWNhdGlvbiBvbiB5b3VyIGNvbXB1dGVyLiAoZW1haWxzLCBjaGF0IGV0YykiLAogICJleHRlbnNpb24taWQiOiAiYm93c2VyLWdub21lIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYm93c2VyLWdub21lIiwKICAibmFtZSI6ICJCb3dzZXIgR25vbWUgRXh0ZW5zaW9uIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImFkbWluQGtyb25vc291bC54eXoiLAogICJyZXNvdXJjZS1wYXRoIjogIi9vcmcva3Jvbm9zb3VsL0Jvd3Nlci8iLAogICJzZXR0aW5ncy1wYXRoIjogIi9vcmcvZ25vbWUvc2hlbGwvZXh0ZW5zaW9ucy9Cb3dzZXIvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkJvd3NlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvYm93c2VyLWdub21lIiwKICAidXVpZCI6ICJib3dzZXItZ25vbWVAa3Jvbm9zb3VsLnh5eiIsCiAgInZlcnNpb24iOiAxNwp9"}
   }}
 , {"uuid": "ideapad@laurento.frittella", "name": "IdeaPad", "pname": "ideapad", "description": "Lenovo IdeaPad goodies for Gnome Shell\n\nAt the moment the extension only provides an easy and user-friendly way to toggle battery conservation mode available on Levono Ideapad laptops and visually get its current state.\n\nConfiguration needed! Please check the instruction on the homepage.", "link": "https://extensions.gnome.org/extension/2992/ideapad/", "shell_version_map": {
     "38": {"version": "11", "sha256": "0p0crv91n0lals20hkrvivj00yhsadkwy9s2bfdyzmk6slwa35rb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxlbm92byBJZGVhUGFkIGdvb2RpZXMgZm9yIEdub21lIFNoZWxsXG5cbkF0IHRoZSBtb21lbnQgdGhlIGV4dGVuc2lvbiBvbmx5IHByb3ZpZGVzIGFuIGVhc3kgYW5kIHVzZXItZnJpZW5kbHkgd2F5IHRvIHRvZ2dsZSBiYXR0ZXJ5IGNvbnNlcnZhdGlvbiBtb2RlIGF2YWlsYWJsZSBvbiBMZXZvbm8gSWRlYXBhZCBsYXB0b3BzIGFuZCB2aXN1YWxseSBnZXQgaXRzIGN1cnJlbnQgc3RhdGUuXG5cbkNvbmZpZ3VyYXRpb24gbmVlZGVkISBQbGVhc2UgY2hlY2sgdGhlIGluc3RydWN0aW9uIG9uIHRoZSBob21lcGFnZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpZGVhcGFkIiwKICAibmFtZSI6ICJJZGVhUGFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGF1cmVudG8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWlkZWFwYWQiLAogICJ1dWlkIjogImlkZWFwYWRAbGF1cmVudG8uZnJpdHRlbGxhIiwKICAidmVyc2lvbiI6IDExCn0="},
@@ -2331,8 +2372,8 @@
     "42": {"version": "55", "sha256": "0fwxj41ka95mxrjy3xbywqxm0fp00irypkwcg316pyy9cva4rk01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgZm9yayBvZiBwYXJhZG94eHh6ZXJvL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCBpcyBmb3IgcGFja2FnaW5nIHB1cnBvc2VzIG9ubHkuIFRoaXMgZXh0ZW5zaW9uIGlzIGJ1aWx0IGFuZCB1cGRhdGVkIGNvbnRpbnVvdXNseSB3aXRoIHRoZSB1cHN0cmVhbSBtYXN0ZXIgYnJhbmNoLCBvY2Nhc2lvbmFsbHkgaW5jbHVkaW5nIHBhdGNoZXMgdGhhdCBoYXZlbid0IHlldCBtZXJnZWQgdXBzdHJlYW0uXG5cblRoaXMgaXMgcHJlZmVyYWJsZSBmb3IgdXNlcnMgb24gYmxlZWRpbmcgZWRnZSBkaXN0cmlidXRpb25zIHRoYXQgcHJlZmVyIG5vdCB0byB3YWl0IGZvciBhIHN0YWJsZSByZWxlYXNlIGZyb20gdGhlIG1haW4gcmVwby4gT2YgY291cnNlLCBzaW5jZSB3ZSdyZSByZWxlYXNpbmcgZGlyZWN0bHkgZnJvbSBtYXN0ZXIgc29tZSBpbnN0YWJpbGl0eSBpcyBpbmV2aXRhYmxlLlxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgcmVzdGFydGluZyBHbm9tZSBTaGVsbCB3aXRoIEFsdC1GMiB0aGVuICdyJy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWdhbGdzL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCIsCiAgInV1aWQiOiAic3lzdGVtLW1vbml0b3ItbmV4dEBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNTUKfQ=="},
     "43": {"version": "55", "sha256": "0fwxj41ka95mxrjy3xbywqxm0fp00irypkwcg316pyy9cva4rk01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgZm9yayBvZiBwYXJhZG94eHh6ZXJvL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCBpcyBmb3IgcGFja2FnaW5nIHB1cnBvc2VzIG9ubHkuIFRoaXMgZXh0ZW5zaW9uIGlzIGJ1aWx0IGFuZCB1cGRhdGVkIGNvbnRpbnVvdXNseSB3aXRoIHRoZSB1cHN0cmVhbSBtYXN0ZXIgYnJhbmNoLCBvY2Nhc2lvbmFsbHkgaW5jbHVkaW5nIHBhdGNoZXMgdGhhdCBoYXZlbid0IHlldCBtZXJnZWQgdXBzdHJlYW0uXG5cblRoaXMgaXMgcHJlZmVyYWJsZSBmb3IgdXNlcnMgb24gYmxlZWRpbmcgZWRnZSBkaXN0cmlidXRpb25zIHRoYXQgcHJlZmVyIG5vdCB0byB3YWl0IGZvciBhIHN0YWJsZSByZWxlYXNlIGZyb20gdGhlIG1haW4gcmVwby4gT2YgY291cnNlLCBzaW5jZSB3ZSdyZSByZWxlYXNpbmcgZGlyZWN0bHkgZnJvbSBtYXN0ZXIgc29tZSBpbnN0YWJpbGl0eSBpcyBpbmV2aXRhYmxlLlxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgcmVzdGFydGluZyBHbm9tZSBTaGVsbCB3aXRoIEFsdC1GMiB0aGVuICdyJy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWdhbGdzL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCIsCiAgInV1aWQiOiAic3lzdGVtLW1vbml0b3ItbmV4dEBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNTUKfQ=="},
     "44": {"version": "55", "sha256": "0fwxj41ka95mxrjy3xbywqxm0fp00irypkwcg316pyy9cva4rk01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgZm9yayBvZiBwYXJhZG94eHh6ZXJvL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCBpcyBmb3IgcGFja2FnaW5nIHB1cnBvc2VzIG9ubHkuIFRoaXMgZXh0ZW5zaW9uIGlzIGJ1aWx0IGFuZCB1cGRhdGVkIGNvbnRpbnVvdXNseSB3aXRoIHRoZSB1cHN0cmVhbSBtYXN0ZXIgYnJhbmNoLCBvY2Nhc2lvbmFsbHkgaW5jbHVkaW5nIHBhdGNoZXMgdGhhdCBoYXZlbid0IHlldCBtZXJnZWQgdXBzdHJlYW0uXG5cblRoaXMgaXMgcHJlZmVyYWJsZSBmb3IgdXNlcnMgb24gYmxlZWRpbmcgZWRnZSBkaXN0cmlidXRpb25zIHRoYXQgcHJlZmVyIG5vdCB0byB3YWl0IGZvciBhIHN0YWJsZSByZWxlYXNlIGZyb20gdGhlIG1haW4gcmVwby4gT2YgY291cnNlLCBzaW5jZSB3ZSdyZSByZWxlYXNpbmcgZGlyZWN0bHkgZnJvbSBtYXN0ZXIgc29tZSBpbnN0YWJpbGl0eSBpcyBpbmV2aXRhYmxlLlxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgcmVzdGFydGluZyBHbm9tZSBTaGVsbCB3aXRoIEFsdC1GMiB0aGVuICdyJy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWdhbGdzL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCIsCiAgInV1aWQiOiAic3lzdGVtLW1vbml0b3ItbmV4dEBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNTUKfQ=="},
-    "45": {"version": "66", "sha256": "0b7pyj9hqilpvdcnkx6d05836322gnw1r4rkaggngbbhmgvazffx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgaXMgYSBmb3JrIG9mIHRoZSBzZWVtaW5nbHkgYWJhbmRvbmVkIHBhcmFkb3h4eHplcm8vZ25vbWUtc2hlbGwtc3lzdGVtLW1vbml0b3ItYXBwbGV0LlxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgbG9nZ2luZyBvdXQgYW5kIGxvZ2dpbmcgYmFjayBpbiAodGhpcyBpcyBhIGtub3duIGlzc3VlIHRoYXQgaXMgYmVpbmcgd29ya2VkIG9uKS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWdhbGdzL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCIsCiAgInV1aWQiOiAic3lzdGVtLW1vbml0b3ItbmV4dEBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNjYKfQ=="},
-    "46": {"version": "66", "sha256": "0b7pyj9hqilpvdcnkx6d05836322gnw1r4rkaggngbbhmgvazffx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgaXMgYSBmb3JrIG9mIHRoZSBzZWVtaW5nbHkgYWJhbmRvbmVkIHBhcmFkb3h4eHplcm8vZ25vbWUtc2hlbGwtc3lzdGVtLW1vbml0b3ItYXBwbGV0LlxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgbG9nZ2luZyBvdXQgYW5kIGxvZ2dpbmcgYmFjayBpbiAodGhpcyBpcyBhIGtub3duIGlzc3VlIHRoYXQgaXMgYmVpbmcgd29ya2VkIG9uKS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWdhbGdzL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCIsCiAgInV1aWQiOiAic3lzdGVtLW1vbml0b3ItbmV4dEBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNjYKfQ=="}
+    "45": {"version": "69", "sha256": "098bhziypfd6vmn61lxp25wwb0n3mv9shan0idkpl8q330ripawv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgaXMgYSBmb3JrIG9mIHRoZSBzZWVtaW5nbHkgYWJhbmRvbmVkIHBhcmFkb3h4eHplcm8vZ25vbWUtc2hlbGwtc3lzdGVtLW1vbml0b3ItYXBwbGV0LlxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgbG9nZ2luZyBvdXQgYW5kIGxvZ2dpbmcgYmFjayBpbiAodGhpcyBpcyBhIGtub3duIGlzc3VlIHRoYXQgaXMgYmVpbmcgd29ya2VkIG9uKS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWdhbGdzL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCIsCiAgInV1aWQiOiAic3lzdGVtLW1vbml0b3ItbmV4dEBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNjkKfQ=="},
+    "46": {"version": "69", "sha256": "098bhziypfd6vmn61lxp25wwb0n3mv9shan0idkpl8q330ripawv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgaXMgYSBmb3JrIG9mIHRoZSBzZWVtaW5nbHkgYWJhbmRvbmVkIHBhcmFkb3h4eHplcm8vZ25vbWUtc2hlbGwtc3lzdGVtLW1vbml0b3ItYXBwbGV0LlxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgbG9nZ2luZyBvdXQgYW5kIGxvZ2dpbmcgYmFjayBpbiAodGhpcyBpcyBhIGtub3duIGlzc3VlIHRoYXQgaXMgYmVpbmcgd29ya2VkIG9uKS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWdhbGdzL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCIsCiAgInV1aWQiOiAic3lzdGVtLW1vbml0b3ItbmV4dEBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNjkKfQ=="}
   }}
 , {"uuid": "user-theme-x@tuberry.github.io", "name": "User Theme X", "pname": "user-themes-x", "description": "Customizable user-theme with user stylesheet and dark theme auto-switch based on the Night Light\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3019/user-themes-x/", "shell_version_map": {
     "38": {"version": "21", "sha256": "0qiahmg2nmrnlyablyava1488rvy0r2rq8pyv932lsx6vrn9gh6m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIGJhc2VkIG9uIHRoZSBOaWdodCBMaWdodFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJleHRlbnNpb24taWQiOiAidXNlci10aGVtZS14IiwKICAiZ2V0dGV4dC1kb21haW4iOiAidXNlci10aGVtZS14IiwKICAibmFtZSI6ICJVc2VyIFRoZW1lIFgiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZXItdGhlbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L3VzZXItdGhlbWUteCIsCiAgInV1aWQiOiAidXNlci10aGVtZS14QHR1YmVycnkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDIxCn0="},
@@ -2342,7 +2383,7 @@
     "43": {"version": "31", "sha256": "1aqni9lybrws04mz4k9ygpv2yqg0vs6867ga7k3ah6f92j8bin74", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIGJhc2VkIG9uIHRoZSBOaWdodCBMaWdodFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJleHRlbnNpb24taWQiOiAidXNlci10aGVtZS14IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVzZXItdGhlbWUteCIsCiAgIm5hbWUiOiAiVXNlciBUaGVtZSBYIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJqb2huLnN0b3dlcnNAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51c2VyLXRoZW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvdXNlci10aGVtZS14IiwKICAidXVpZCI6ICJ1c2VyLXRoZW1lLXhAdHViZXJyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMzEKfQ=="},
     "44": {"version": "32", "sha256": "1i36lgx76p2fxa7kn0zaisc5jz6a2ky3dckxx2x3j3s91q5pn5ch", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIGJhc2VkIG9uIHRoZSBOaWdodCBMaWdodFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdXNlci10aGVtZS14IiwKICAibmFtZSI6ICJVc2VyIFRoZW1lIFgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZS14IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvdXNlci10aGVtZS14IiwKICAidXVpZCI6ICJ1c2VyLXRoZW1lLXhAdHViZXJyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
     "45": {"version": "34", "sha256": "1hs8jdzal7jpw03fl3qppcvrdalhsy32hl2vchd5x92rfwamrm3q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIGJhc2VkIG9uIHRoZSBOaWdodCBMaWdodFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdXNlci10aGVtZS14IiwKICAibmFtZSI6ICJVc2VyIFRoZW1lIFgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZS14IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvdXNlci10aGVtZS14IiwKICAidXVpZCI6ICJ1c2VyLXRoZW1lLXhAdHViZXJyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMzQKfQ=="},
-    "46": {"version": "35", "sha256": "1fr7fzi57clvdm6cdb6wa9pdn8g88v979v3hmki8nvspwbqawyh1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIGJhc2VkIG9uIHRoZSBOaWdodCBMaWdodFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdXNlci10aGVtZS14IiwKICAibmFtZSI6ICJVc2VyIFRoZW1lIFgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZS14IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvdXNlci10aGVtZS14IiwKICAidXVpZCI6ICJ1c2VyLXRoZW1lLXhAdHViZXJyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMzUKfQ=="}
+    "46": {"version": "40", "sha256": "0y8djs3h92jgv70zl7d63khm1w8zpjvq02q5pv80pm3gj6ldmmgv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIGJhc2VkIG9uIHRoZSBOaWdodCBMaWdodFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdXNlci10aGVtZS14IiwKICAibmFtZSI6ICJVc2VyIFRoZW1lIFgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZS14IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvdXNlci10aGVtZS14IiwKICAidXVpZCI6ICJ1c2VyLXRoZW1lLXhAdHViZXJyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNDAKfQ=="}
   }}
 , {"uuid": "app_view_text@fawtytoo", "name": "Application View Text", "pname": "application-view-text", "description": "The text in the Application view can be hard to read on a light coloured background. This extension makes the text bolder with a drop shadow.\nAlso improves the visibility of the app running dot.", "link": "https://extensions.gnome.org/extension/3028/application-view-text/", "shell_version_map": {
     "38": {"version": "7", "sha256": "1dnf1rqg27y1c50sfmqcnswac93lkgml1hdaalq6lfzm8pbnpx0d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSB0ZXh0IGluIHRoZSBBcHBsaWNhdGlvbiB2aWV3IGNhbiBiZSBoYXJkIHRvIHJlYWQgb24gYSBsaWdodCBjb2xvdXJlZCBiYWNrZ3JvdW5kLiBUaGlzIGV4dGVuc2lvbiBtYWtlcyB0aGUgdGV4dCBib2xkZXIgd2l0aCBhIGRyb3Agc2hhZG93LlxuQWxzbyBpbXByb3ZlcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgYXBwIHJ1bm5pbmcgZG90LiIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb24gVmlldyBUZXh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYXBwX3ZpZXdfdGV4dEBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiA3Cn0="},
@@ -2374,7 +2415,7 @@
     "43": {"version": "34", "sha256": "0jq0c80y20d8rljn1478v537lch6klwir0gkzp35y03s1wj0ma36", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1leHRlbnNpb24tbGlzdCIsCiAgIm5hbWUiOiAiRXh0ZW5zaW9uIExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9uLWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9leHRlbnNpb24tbGlzdCIsCiAgInV1aWQiOiAiZXh0ZW5zaW9uLWxpc3RAdHUuYmVycnkiLAogICJ2ZXJzaW9uIjogMzQKfQ=="},
     "44": {"version": "35", "sha256": "1py1lbb00f9kcylc96kk2lr9r8ka9liyxhxxz1nzggz3jzxphw06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1leHRlbnNpb24tbGlzdCIsCiAgIm5hbWUiOiAiRXh0ZW5zaW9uIExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9uLWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9leHRlbnNpb24tbGlzdCIsCiAgInV1aWQiOiAiZXh0ZW5zaW9uLWxpc3RAdHUuYmVycnkiLAogICJ2ZXJzaW9uIjogMzUKfQ=="},
     "45": {"version": "37", "sha256": "0algkzsdha6996w760nnqmm70n96aymr6ipinq9h95pzf208qy20", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1leHRlbnNpb24tbGlzdCIsCiAgIm5hbWUiOiAiRXh0ZW5zaW9uIExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9uLWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9leHRlbnNpb24tbGlzdCIsCiAgInV1aWQiOiAiZXh0ZW5zaW9uLWxpc3RAdHUuYmVycnkiLAogICJ2ZXJzaW9uIjogMzcKfQ=="},
-    "46": {"version": "38", "sha256": "1z4fscfzg06ddaczc88rw2ymjzv8mf0drbca6aqcpdxivsjkgqhy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1leHRlbnNpb24tbGlzdCIsCiAgIm5hbWUiOiAiRXh0ZW5zaW9uIExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9uLWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9leHRlbnNpb24tbGlzdCIsCiAgInV1aWQiOiAiZXh0ZW5zaW9uLWxpc3RAdHUuYmVycnkiLAogICJ2ZXJzaW9uIjogMzgKfQ=="}
+    "46": {"version": "40", "sha256": "0xw4qv6990z2icpxkipzh57xanxgpalhh43dvphnbg8by1r6b6bj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1leHRlbnNpb24tbGlzdCIsCiAgIm5hbWUiOiAiRXh0ZW5zaW9uIExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9uLWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9leHRlbnNpb24tbGlzdCIsCiAgInV1aWQiOiAiZXh0ZW5zaW9uLWxpc3RAdHUuYmVycnkiLAogICJ2ZXJzaW9uIjogNDAKfQ=="}
   }}
 , {"uuid": "MaximizeToEmptyWorkspace-extension@kaisersite.de", "name": "Maximize To Empty Workspace", "pname": "maximize-to-empty-workspace", "description": "New and maximized windows will be moved to empty workspaces.\nSupports multiple monitors.", "link": "https://extensions.gnome.org/extension/3100/maximize-to-empty-workspace/", "shell_version_map": {
     "38": {"version": "13", "sha256": "0bxanhx2ylpw0rh69lfdhkixsfggkp7b119ah3rrslx7w71qki6m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlIiwKICAidXVpZCI6ICJNYXhpbWl6ZVRvRW1wdHlXb3Jrc3BhY2UtZXh0ZW5zaW9uQGthaXNlcnNpdGUuZGUiLAogICJ2ZXJzaW9uIjogMTMKfQ=="},
@@ -2408,7 +2449,7 @@
     "42": {"version": "4", "sha256": "1759h1yp2hndbksaqm2zid2lsca9zmxwfb5n8jrlx7rjfgr7cb11", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGhlIGFjdGl2aXRpZXMgYnV0dG9uIiwKICAibmFtZSI6ICJObyBhY3Rpdml0aWVzIGJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibm9fYWN0aXZpdGllc0B5YXlhLmNvdXQiLAogICJ2ZXJzaW9uIjogNAp9"},
     "43": {"version": "4", "sha256": "1759h1yp2hndbksaqm2zid2lsca9zmxwfb5n8jrlx7rjfgr7cb11", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGhlIGFjdGl2aXRpZXMgYnV0dG9uIiwKICAibmFtZSI6ICJObyBhY3Rpdml0aWVzIGJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibm9fYWN0aXZpdGllc0B5YXlhLmNvdXQiLAogICJ2ZXJzaW9uIjogNAp9"}
   }}
-, {"uuid": "blur-my-shell@aunetx", "name": "Blur my Shell", "pname": "blur-my-shell", "description": "Adds a blur look to different parts of the GNOME Shell, including the top panel, dash and overview.\n\nYou can support my work by sponsoring me on:\n- github: https://github.com/sponsors/aunetx\n- ko-fi: https://ko-fi.com/aunetx\n\nNote: if the extension shows an error after updating, please make sure to restart your session to see if it persists. This is due to a bug in gnome shell, which I can't fix by myself.", "link": "https://extensions.gnome.org/extension/3193/blur-my-shell/", "shell_version_map": {
+, {"uuid": "blur-my-shell@aunetx", "name": "Blur my Shell", "pname": "blur-my-shell", "description": "Adds a blur look to different parts of the GNOME Shell, including the top panel, dash and overview.\n\nYou can support my work by sponsoring me on:\n- github: https://github.com/sponsors/aunetx\n- ko-fi: https://ko-fi.com/aunetx\n\nIf you use Ubuntu, you may want to change the radius of the corner effect for Dash-to-Dock in preferences, else you may see unpleasantly mixed radii in your dock.\n\nNote: if the extension shows an error after updating, please make sure to restart your session to see if it persists. This is due to a bug in gnome shell, which I can't fix by myself.", "link": "https://extensions.gnome.org/extension/3193/blur-my-shell/", "shell_version_map": {
     "38": {"version": "22", "sha256": "1ss5vhzjkp2bpllxpjlk1l2i8n7p4xjpzkn0q6jg3gd472kkanfx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJuYW1lIjogIkJsdXIgbXkgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hdW5ldHgvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWJsdXItbXktc2hlbGwiLAogICJ1dWlkIjogImJsdXItbXktc2hlbGxAYXVuZXR4IiwKICAidmVyc2lvbiI6IDIyCn0="},
     "40": {"version": "29", "sha256": "09zflyqk5mlybc4avm812hqr32q0yzrkkw0qy5q4lbkdid7cpqpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJuYW1lIjogIkJsdXIgbXkgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F1bmV0eC9nbm9tZS1zaGVsbC1leHRlbnNpb24tYmx1ci1teS1zaGVsbCIsCiAgInV1aWQiOiAiYmx1ci1teS1zaGVsbEBhdW5ldHgiLAogICJ2ZXJzaW9uIjogMjkKfQ=="},
     "41": {"version": "29", "sha256": "09zflyqk5mlybc4avm812hqr32q0yzrkkw0qy5q4lbkdid7cpqpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJuYW1lIjogIkJsdXIgbXkgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F1bmV0eC9nbm9tZS1zaGVsbC1leHRlbnNpb24tYmx1ci1teS1zaGVsbCIsCiAgInV1aWQiOiAiYmx1ci1teS1zaGVsbEBhdW5ldHgiLAogICJ2ZXJzaW9uIjogMjkKfQ=="},
@@ -2416,7 +2457,7 @@
     "43": {"version": "47", "sha256": "04h957nzzvblk8zxiyanzyw02czdk459ljq1kkkhgk929cqsc0b3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImF1bmV0eCIsCiAgICAia29maSI6ICJhdW5ldHgiCiAgfSwKICAibmFtZSI6ICJCbHVyIG15IFNoZWxsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJtZUBhdW5ldHguZGV2IgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ibHVyLW15LXNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1ibHVyLW15LXNoZWxsIiwKICAidXVpZCI6ICJibHVyLW15LXNoZWxsQGF1bmV0eCIsCiAgInZlcnNpb24iOiA0Nwp9"},
     "44": {"version": "47", "sha256": "04h957nzzvblk8zxiyanzyw02czdk459ljq1kkkhgk929cqsc0b3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImF1bmV0eCIsCiAgICAia29maSI6ICJhdW5ldHgiCiAgfSwKICAibmFtZSI6ICJCbHVyIG15IFNoZWxsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJtZUBhdW5ldHguZGV2IgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ibHVyLW15LXNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1ibHVyLW15LXNoZWxsIiwKICAidXVpZCI6ICJibHVyLW15LXNoZWxsQGF1bmV0eCIsCiAgInZlcnNpb24iOiA0Nwp9"},
     "45": {"version": "58", "sha256": "05f2v981nfmnrddb2pd0zdncyj5p76z4sz96xy8hyp9brskwv4wf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImF1bmV0eCIsCiAgICAia29maSI6ICJhdW5ldHgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ci1teS1zaGVsbEBhdW5ldHgiLAogICJuYW1lIjogIkJsdXIgbXkgU2hlbGwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIm1lQGF1bmV0eC5kZXYiCiAgXSwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ibHVyLW15LXNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F1bmV0eC9nbm9tZS1zaGVsbC1leHRlbnNpb24tYmx1ci1teS1zaGVsbCIsCiAgInV1aWQiOiAiYmx1ci1teS1zaGVsbEBhdW5ldHgiLAogICJ2ZXJzaW9uIjogNTgKfQ=="},
-    "46": {"version": "61", "sha256": "13lrdj4wnwqgxkpgn8aa9jngyw61ayfjp40wbys2rxz3ww09jp3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImF1bmV0eCIsCiAgICAia29maSI6ICJhdW5ldHgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ci1teS1zaGVsbEBhdW5ldHgiLAogICJuYW1lIjogIkJsdXIgbXkgU2hlbGwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIm1lQGF1bmV0eC5kZXYiCiAgXSwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ibHVyLW15LXNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F1bmV0eC9ibHVyLW15LXNoZWxsIiwKICAidXVpZCI6ICJibHVyLW15LXNoZWxsQGF1bmV0eCIsCiAgInZlcnNpb24iOiA2MQp9"}
+    "46": {"version": "62", "sha256": "02s3ly9zq8nwzdvziimbb4qjbfv2i2bwr0bs1f8z3kn81ga3p02d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5JZiB5b3UgdXNlIFVidW50dSwgeW91IG1heSB3YW50IHRvIGNoYW5nZSB0aGUgcmFkaXVzIG9mIHRoZSBjb3JuZXIgZWZmZWN0IGZvciBEYXNoLXRvLURvY2sgaW4gcHJlZmVyZW5jZXMsIGVsc2UgeW91IG1heSBzZWUgdW5wbGVhc2FudGx5IG1peGVkIHJhZGlpIGluIHlvdXIgZG9jay5cblxuTm90ZTogaWYgdGhlIGV4dGVuc2lvbiBzaG93cyBhbiBlcnJvciBhZnRlciB1cGRhdGluZywgcGxlYXNlIG1ha2Ugc3VyZSB0byByZXN0YXJ0IHlvdXIgc2Vzc2lvbiB0byBzZWUgaWYgaXQgcGVyc2lzdHMuIFRoaXMgaXMgZHVlIHRvIGEgYnVnIGluIGdub21lIHNoZWxsLCB3aGljaCBJIGNhbid0IGZpeCBieSBteXNlbGYuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJhdW5ldHgiLAogICAgImtvZmkiOiAiYXVuZXR4IgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImJsdXItbXktc2hlbGxAYXVuZXR4IiwKICAibmFtZSI6ICJCbHVyIG15IFNoZWxsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJtZUBhdW5ldHguZGV2IgogIF0sCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidW5sb2NrLWRpYWxvZyIsCiAgICAidXNlciIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmx1ci1teS1zaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hdW5ldHgvYmx1ci1teS1zaGVsbCIsCiAgInV1aWQiOiAiYmx1ci1teS1zaGVsbEBhdW5ldHgiLAogICJ2ZXJzaW9uIjogNjIKfQ=="}
   }}
 , {"uuid": "escape-overview@raelgc", "name": "ESCape Overview", "pname": "escape-overview", "description": "Close the Overview with a single ESC press when searchbox is empty.\n\nThe default gnome-shell behaviour is, during first ESC press, clean the searchbox, then second ESC press get back to Activities overview and then third ESC press will finally close the overview.", "link": "https://extensions.gnome.org/extension/3204/escape-overview/", "shell_version_map": {
     "38": {"version": "5", "sha256": "12jycfdlywlc2gf7hcpa1draqsy8jgb2dgr8sihh2f97b31dk1nh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBPdmVydmlldyB3aXRoIGEgc2luZ2xlIEVTQyBwcmVzcyB3aGVuIHNlYXJjaGJveCBpcyBlbXB0eS5cblxuVGhlIGRlZmF1bHQgZ25vbWUtc2hlbGwgYmVoYXZpb3VyIGlzLCBkdXJpbmcgZmlyc3QgRVNDIHByZXNzLCBjbGVhbiB0aGUgc2VhcmNoYm94LCB0aGVuIHNlY29uZCBFU0MgcHJlc3MgZ2V0IGJhY2sgdG8gQWN0aXZpdGllcyBvdmVydmlldyBhbmQgdGhlbiB0aGlyZCBFU0MgcHJlc3Mgd2lsbCBmaW5hbGx5IGNsb3NlIHRoZSBvdmVydmlldy4iLAogICJuYW1lIjogIkVTQ2FwZSBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JhZWxnYy9lc2NhcGUtb3ZlcnZpZXciLAogICJ1dWlkIjogImVzY2FwZS1vdmVydmlld0ByYWVsZ2MiLAogICJ2ZXJzaW9uIjogNQp9"},
@@ -2488,11 +2529,12 @@
     "38": {"version": "8", "sha256": "1x016p30z0pci3qlhpmfqrsgy0vwcfxqladny66ppbb32qisbkac", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIjMgZmluZ2VycyB3aW5kb3cgc3dpdGNoZXIuIFRvIG1ha2UgaXQgd29yayBvbiBYb3JnIGNoZWNrIHRoZSBzZXJ2aWNlIG9uIGdpdGh1Yi5cblxuVXAgLSBkb3duOiB0b2dnbGUgYmV0d2VlbiBvdmVydmlldyBhbmQgc2hvdyBkZXNrdG9wIChOZWVkcyBTdXBlcitEIHNob3JjdXQgdG8gYmUgc2V0IG9uIFhvcmcuIFNldCBpdCB3aXRoIGBnc2V0dGluZ3Mgc2V0IG9yZy5nbm9tZS5kZXNrdG9wLndtLmtleWJpbmRpbmdzIHNob3ctZGVza3RvcCAnPFN1cGVyPmQnYCkuXG5cbllvdSBjYW4gYWxzbyBjaGFuZ2Ugd2luZG93cyBieSBnb2luZyB0byB0aGUgb3ZlcnZpZXcgKHVwKSBhbmQgbW92aW5nIHRvIHRoZSBsZWZ0IGFuZCByaWdodCwgYW5kIGNob29zaW5nIHRoZSB3aW5kb3cgd2l0aCBkb3duLiBUaGUgb3ZlcnZpZXcgaXMgbW9kaWZpZWQgc28gaXRcdTIwMTlzIHNob3duIGluIGNocm9ub2xvZ2ljYWwgb3JkZXIuXG4iLAogICJuYW1lIjogIlRvdWNocGFkIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbnphYXJjci90b3VjaHBhZC13aW5kb3ctc3dpdGNoZXItZ25vbWUtZXh0IiwKICAidXVpZCI6ICJ0b3VjaHBhZF93aW5kb3dfc3dpdGNoZXJAZ29uemEuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}
   }}
 , {"uuid": "gnome-shell-duckduckgo-search-provider@keithcirkel.co.uk", "name": "DuckDuckGo Search Provider", "pname": "duckduckgo-search-provider", "description": "Add DuckDuckGo search suggestions to Gnome Shell Search", "link": "https://extensions.gnome.org/extension/3306/duckduckgo-search-provider/", "shell_version_map": {
-    "38": {"version": "5", "sha256": "0d4y9rzq0v9iwph408mf0d9zfx2g5fyrbbk63dn61ri525v0qlzl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBEdWNrRHVja0dvIHNlYXJjaCBzdWdnZXN0aW9ucyB0byBHbm9tZSBTaGVsbCBTZWFyY2giLAogICJuYW1lIjogIkR1Y2tEdWNrR28gU2VhcmNoIFByb3ZpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MS4wIiwKICAgICI0Mi4wIiwKICAgICI0Mi41IiwKICAgICI0NC4yIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2VpdGhhbXVzL2dub21lLXNoZWxsLWR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1kdWNrZHVja2dvLXNlYXJjaC1wcm92aWRlckBrZWl0aGNpcmtlbC5jby51ayIsCiAgInZlcnNpb24iOiA1Cn0="},
-    "40": {"version": "5", "sha256": "0d4y9rzq0v9iwph408mf0d9zfx2g5fyrbbk63dn61ri525v0qlzl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBEdWNrRHVja0dvIHNlYXJjaCBzdWdnZXN0aW9ucyB0byBHbm9tZSBTaGVsbCBTZWFyY2giLAogICJuYW1lIjogIkR1Y2tEdWNrR28gU2VhcmNoIFByb3ZpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MS4wIiwKICAgICI0Mi4wIiwKICAgICI0Mi41IiwKICAgICI0NC4yIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2VpdGhhbXVzL2dub21lLXNoZWxsLWR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1kdWNrZHVja2dvLXNlYXJjaC1wcm92aWRlckBrZWl0aGNpcmtlbC5jby51ayIsCiAgInZlcnNpb24iOiA1Cn0="},
-    "41": {"version": "5", "sha256": "0d4y9rzq0v9iwph408mf0d9zfx2g5fyrbbk63dn61ri525v0qlzl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBEdWNrRHVja0dvIHNlYXJjaCBzdWdnZXN0aW9ucyB0byBHbm9tZSBTaGVsbCBTZWFyY2giLAogICJuYW1lIjogIkR1Y2tEdWNrR28gU2VhcmNoIFByb3ZpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MS4wIiwKICAgICI0Mi4wIiwKICAgICI0Mi41IiwKICAgICI0NC4yIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2VpdGhhbXVzL2dub21lLXNoZWxsLWR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1kdWNrZHVja2dvLXNlYXJjaC1wcm92aWRlckBrZWl0aGNpcmtlbC5jby51ayIsCiAgInZlcnNpb24iOiA1Cn0="},
-    "42": {"version": "5", "sha256": "0d4y9rzq0v9iwph408mf0d9zfx2g5fyrbbk63dn61ri525v0qlzl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBEdWNrRHVja0dvIHNlYXJjaCBzdWdnZXN0aW9ucyB0byBHbm9tZSBTaGVsbCBTZWFyY2giLAogICJuYW1lIjogIkR1Y2tEdWNrR28gU2VhcmNoIFByb3ZpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MS4wIiwKICAgICI0Mi4wIiwKICAgICI0Mi41IiwKICAgICI0NC4yIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2VpdGhhbXVzL2dub21lLXNoZWxsLWR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1kdWNrZHVja2dvLXNlYXJjaC1wcm92aWRlckBrZWl0aGNpcmtlbC5jby51ayIsCiAgInZlcnNpb24iOiA1Cn0="},
-    "44": {"version": "5", "sha256": "0d4y9rzq0v9iwph408mf0d9zfx2g5fyrbbk63dn61ri525v0qlzl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBEdWNrRHVja0dvIHNlYXJjaCBzdWdnZXN0aW9ucyB0byBHbm9tZSBTaGVsbCBTZWFyY2giLAogICJuYW1lIjogIkR1Y2tEdWNrR28gU2VhcmNoIFByb3ZpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MS4wIiwKICAgICI0Mi4wIiwKICAgICI0Mi41IiwKICAgICI0NC4yIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2VpdGhhbXVzL2dub21lLXNoZWxsLWR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1kdWNrZHVja2dvLXNlYXJjaC1wcm92aWRlckBrZWl0aGNpcmtlbC5jby51ayIsCiAgInZlcnNpb24iOiA1Cn0="}
+    "38": {"version": "8", "sha256": "15jsbkkkx80fad5qy3fyf3c23fjf4p5x2qnvzgfi98w96w8d9875", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBEdWNrRHVja0dvIHNlYXJjaCBzdWdnZXN0aW9ucyB0byBHbm9tZSBTaGVsbCBTZWFyY2giLAogICJuYW1lIjogIkR1Y2tEdWNrR28gU2VhcmNoIFByb3ZpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MS4wIiwKICAgICI0Mi4wIiwKICAgICI0Ni4wIiwKICAgICI0Mi41IiwKICAgICI0NC4yIiwKICAgICI0Ni4xIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2VpdGhhbXVzL2dub21lLXNoZWxsLWR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1kdWNrZHVja2dvLXNlYXJjaC1wcm92aWRlckBrZWl0aGNpcmtlbC5jby51ayIsCiAgInZlcnNpb24iOiA4Cn0="},
+    "40": {"version": "8", "sha256": "15jsbkkkx80fad5qy3fyf3c23fjf4p5x2qnvzgfi98w96w8d9875", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBEdWNrRHVja0dvIHNlYXJjaCBzdWdnZXN0aW9ucyB0byBHbm9tZSBTaGVsbCBTZWFyY2giLAogICJuYW1lIjogIkR1Y2tEdWNrR28gU2VhcmNoIFByb3ZpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MS4wIiwKICAgICI0Mi4wIiwKICAgICI0Ni4wIiwKICAgICI0Mi41IiwKICAgICI0NC4yIiwKICAgICI0Ni4xIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2VpdGhhbXVzL2dub21lLXNoZWxsLWR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1kdWNrZHVja2dvLXNlYXJjaC1wcm92aWRlckBrZWl0aGNpcmtlbC5jby51ayIsCiAgInZlcnNpb24iOiA4Cn0="},
+    "41": {"version": "8", "sha256": "15jsbkkkx80fad5qy3fyf3c23fjf4p5x2qnvzgfi98w96w8d9875", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBEdWNrRHVja0dvIHNlYXJjaCBzdWdnZXN0aW9ucyB0byBHbm9tZSBTaGVsbCBTZWFyY2giLAogICJuYW1lIjogIkR1Y2tEdWNrR28gU2VhcmNoIFByb3ZpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MS4wIiwKICAgICI0Mi4wIiwKICAgICI0Ni4wIiwKICAgICI0Mi41IiwKICAgICI0NC4yIiwKICAgICI0Ni4xIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2VpdGhhbXVzL2dub21lLXNoZWxsLWR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1kdWNrZHVja2dvLXNlYXJjaC1wcm92aWRlckBrZWl0aGNpcmtlbC5jby51ayIsCiAgInZlcnNpb24iOiA4Cn0="},
+    "42": {"version": "8", "sha256": "15jsbkkkx80fad5qy3fyf3c23fjf4p5x2qnvzgfi98w96w8d9875", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBEdWNrRHVja0dvIHNlYXJjaCBzdWdnZXN0aW9ucyB0byBHbm9tZSBTaGVsbCBTZWFyY2giLAogICJuYW1lIjogIkR1Y2tEdWNrR28gU2VhcmNoIFByb3ZpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MS4wIiwKICAgICI0Mi4wIiwKICAgICI0Ni4wIiwKICAgICI0Mi41IiwKICAgICI0NC4yIiwKICAgICI0Ni4xIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2VpdGhhbXVzL2dub21lLXNoZWxsLWR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1kdWNrZHVja2dvLXNlYXJjaC1wcm92aWRlckBrZWl0aGNpcmtlbC5jby51ayIsCiAgInZlcnNpb24iOiA4Cn0="},
+    "44": {"version": "8", "sha256": "15jsbkkkx80fad5qy3fyf3c23fjf4p5x2qnvzgfi98w96w8d9875", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBEdWNrRHVja0dvIHNlYXJjaCBzdWdnZXN0aW9ucyB0byBHbm9tZSBTaGVsbCBTZWFyY2giLAogICJuYW1lIjogIkR1Y2tEdWNrR28gU2VhcmNoIFByb3ZpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MS4wIiwKICAgICI0Mi4wIiwKICAgICI0Ni4wIiwKICAgICI0Mi41IiwKICAgICI0NC4yIiwKICAgICI0Ni4xIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2VpdGhhbXVzL2dub21lLXNoZWxsLWR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1kdWNrZHVja2dvLXNlYXJjaC1wcm92aWRlckBrZWl0aGNpcmtlbC5jby51ayIsCiAgInZlcnNpb24iOiA4Cn0="},
+    "46": {"version": "8", "sha256": "15jsbkkkx80fad5qy3fyf3c23fjf4p5x2qnvzgfi98w96w8d9875", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBEdWNrRHVja0dvIHNlYXJjaCBzdWdnZXN0aW9ucyB0byBHbm9tZSBTaGVsbCBTZWFyY2giLAogICJuYW1lIjogIkR1Y2tEdWNrR28gU2VhcmNoIFByb3ZpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MS4wIiwKICAgICI0Mi4wIiwKICAgICI0Ni4wIiwKICAgICI0Mi41IiwKICAgICI0NC4yIiwKICAgICI0Ni4xIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2VpdGhhbXVzL2dub21lLXNoZWxsLWR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1kdWNrZHVja2dvLXNlYXJjaC1wcm92aWRlckBrZWl0aGNpcmtlbC5jby51ayIsCiAgInZlcnNpb24iOiA4Cn0="}
   }}
 , {"uuid": "translate-indicator@athenstaedt.net", "name": "Translate Indicator", "pname": "translate-indicator", "description": "Translate extension for Gnome-Shell - based on translate-shell, inspired by Tudmotu's clipboard-indicator and gufoe's text-translator\n\nMenu to translate everything on your desktop.\n\nSuper + T to toggle menu. Cntl + Alt + T to use notification translation.\n\nShortcuts can be changed in the settings.\n\nOn X.org, you can translate selected text. This can be enabled in the settings. This is not supported on wayland. There, you have to copy to the clipboard for translation.\n\nBy default, this extension uses the included translate-shell version, which is probably not the newest. You can change this in the settings.\n\nIf you use the the included trans file, make sure that it is executable. You find the source of the extension usually here:\n\n~/.local/share/gnome-shell/extensions/translate-indicator@athenstaedt.net", "link": "https://extensions.gnome.org/extension/3318/translate-indicator/", "shell_version_map": {
     "38": {"version": "3", "sha256": "04c3hjbcbn8y9d94swmc3qiv63sjynn71jnwp08sgqa79nrn4cyg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBleHRlbnNpb24gZm9yIEdub21lLVNoZWxsIC0gYmFzZWQgb24gdHJhbnNsYXRlLXNoZWxsLCBpbnNwaXJlZCBieSBUdWRtb3R1J3MgY2xpcGJvYXJkLWluZGljYXRvciBhbmQgZ3Vmb2UncyB0ZXh0LXRyYW5zbGF0b3IiLAogICJuYW1lIjogIlRyYW5zbGF0ZSBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXZlbnV6L2dub21lLXRyYW5zbGF0ZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1pbmRpY2F0b3JAYXRoZW5zdGFlZHQubmV0IiwKICAidmVyc2lvbiI6IDMKfQ=="},
@@ -2522,7 +2564,7 @@
     "43": {"version": "34", "sha256": "00mpmx7yfzy9wram6abwm8m7dklk84m3z38r0p8zxp20p3rik660", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvci1waWNrZXIiLAogICJuYW1lIjogIkNvbG9yIFBpY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb2xvci1waWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9jb2xvci1waWNrZXIiLAogICJ1dWlkIjogImNvbG9yLXBpY2tlckB0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDM0Cn0="},
     "44": {"version": "36", "sha256": "0mc7lbw6rsb65i1ha7js1syhk0k5z0kg3l4gzhxprlv2h4dnchaz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvci1waWNrZXIiLAogICJuYW1lIjogIkNvbG9yIFBpY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb2xvci1waWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9jb2xvci1waWNrZXIiLAogICJ1dWlkIjogImNvbG9yLXBpY2tlckB0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDM2Cn0="},
     "45": {"version": "40", "sha256": "0cpav8qrj8jj7zd1v1s4h7p5429gk8njr74zh0v7fk05ygb7skbg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvci1waWNrZXIiLAogICJuYW1lIjogIkNvbG9yIFBpY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb2xvci1waWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9jb2xvci1waWNrZXIiLAogICJ1dWlkIjogImNvbG9yLXBpY2tlckB0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDQwCn0="},
-    "46": {"version": "41", "sha256": "15ibiiy6lzw4cv3xph50cbbizghxgivh3m4icwf8mqli39r747af", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIEdOT01FIFNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvci1waWNrZXIiLAogICJuYW1lIjogIkNvbG9yIFBpY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb2xvci1waWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9jb2xvci1waWNrZXIiLAogICJ1dWlkIjogImNvbG9yLXBpY2tlckB0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDQxCn0="}
+    "46": {"version": "44", "sha256": "1sx95qb5bc6adk8524wblxbcqhdhsj17m4scsvipk1biyh0n0nsi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIEdOT01FIFNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvci1waWNrZXIiLAogICJuYW1lIjogIkNvbG9yIFBpY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb2xvci1waWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9jb2xvci1waWNrZXIiLAogICJ1dWlkIjogImNvbG9yLXBpY2tlckB0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDQ0Cn0="}
   }}
 , {"uuid": "yaru-remix-theme-toggle@muqtxdir.me", "name": "Yaru remix theme toggle", "pname": "yaru-remix-theme-toggle", "description": "Switches GTK3, Gnome-shell, cursor and icon themes to Yaru-remix variants", "link": "https://extensions.gnome.org/extension/3402/yaru-remix-theme-toggle/", "shell_version_map": {
     "38": {"version": "2", "sha256": "04dh163dshjnq3fa1y5kbkgl94q4cifvffq6i2pr4zd1v7d4zrf6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvcnMiOiBbCiAgICAibXVxdGFkaXI1NTU1QGdtYWlsLmNvbSIKICBdLAogICJkZXNjcmlwdGlvbiI6ICJTd2l0Y2hlcyBHVEszLCBHbm9tZS1zaGVsbCwgY3Vyc29yIGFuZCBpY29uIHRoZW1lcyB0byBZYXJ1LXJlbWl4IHZhcmlhbnRzIiwKICAibmFtZSI6ICJZYXJ1IHJlbWl4IHRoZW1lIHRvZ2dsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL011cXR4ZGlyL3lhcnUtcmVtaXgtdGhlbWUtdG9nZ2xlIiwKICAidXVpZCI6ICJ5YXJ1LXJlbWl4LXRoZW1lLXRvZ2dsZUBtdXF0eGRpci5tZSIsCiAgInZlcnNpb24iOiAyCn0="}
@@ -2644,7 +2686,8 @@
     "42": {"version": "5", "sha256": "0xzb1bc8y0chkg6pkg2ax11g2xfrxqd9cjnmxhrahmabh30db451", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAibmFtZSI6ICJNdWxsdmFkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BvYmVnYS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXVsbHZhZC1pbmRpY2F0b3IiLAogICJ1dWlkIjogIm11bGx2YWRpbmRpY2F0b3JAcG9iZWdhLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"},
     "43": {"version": "11", "sha256": "1wz1wfvbbjhy763jw5r530f0sglms38an443s34vwrivhiqvy0sq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAibmFtZSI6ICJNdWxsdmFkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Qb2JlZ2EvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bGx2YWQtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJtdWxsdmFkaW5kaWNhdG9yQHBvYmVnYS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="},
     "44": {"version": "14", "sha256": "1972fqsfl5p9cj633xb3m0155lj0lv74yvvmfadhaipgkpg1gs9s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAibmFtZSI6ICJNdWxsdmFkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Qb2JlZ2EvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bGx2YWQtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJtdWxsdmFkaW5kaWNhdG9yQHBvYmVnYS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE0Cn0="},
-    "45": {"version": "18", "sha256": "0jza6bl6vq8grdr6n33gg3c09grayskmbsrrhcdabp85b216lprh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibXVsbHZhZGluZGljYXRvckBwb2JlZ2EuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiTXVsbHZhZCBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuTXVsbHZhZEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Qb2JlZ2EvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bGx2YWQtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJtdWxsdmFkaW5kaWNhdG9yQHBvYmVnYS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="}
+    "45": {"version": "18", "sha256": "0jza6bl6vq8grdr6n33gg3c09grayskmbsrrhcdabp85b216lprh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibXVsbHZhZGluZGljYXRvckBwb2JlZ2EuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiTXVsbHZhZCBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuTXVsbHZhZEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Qb2JlZ2EvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bGx2YWQtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJtdWxsdmFkaW5kaWNhdG9yQHBvYmVnYS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="},
+    "46": {"version": "19", "sha256": "12fpan25j0qig3zhpnyg1wrsfxsx52msy4i9dn02gg089lkxp326", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibXVsbHZhZGluZGljYXRvckBwb2JlZ2EuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiTXVsbHZhZCBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuTXVsbHZhZEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Qb2JlZ2EvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bGx2YWQtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJtdWxsdmFkaW5kaWNhdG9yQHBvYmVnYS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE5Cn0="}
   }}
 , {"uuid": "task-widget@juozasmiskinis.gitlab.io", "name": "Task Widget", "pname": "task-widget", "description": "Display tasks next to the calendar widget.\n\nVisit our Wiki page for more information and troubleshooting.", "link": "https://extensions.gnome.org/extension/3569/task-widget/", "shell_version_map": {
     "38": {"version": "16", "sha256": "1i0gzrlqcjqgv0vmynxbkj84gsaacfrzgm0vzf26qgcjlblhz5lk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJhc2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQiLAogICJjb2ZmZWUiOiAiaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9uYnh3ZnBtIiwKICAiZGVwZW5kZW5jaWVzIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzL0luc3RhbGxhdGlvbiIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGFza3MgbmV4dCB0byB0aGUgY2FsZW5kYXIgd2lkZ2V0LlxuXG5WaXNpdCBvdXIgV2lraSBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCB0cm91Ymxlc2hvb3RpbmcuIiwKICAiZXBhdGgiOiAiL29yZy9nbm9tZS9zaGVsbC9leHRlbnNpb25zL3Rhc2std2lkZ2V0IiwKICAiZ3Jlc291cmNlIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhc2std2lkZ2V0LmdyZXNvdXJjZSIsCiAgImxpYmVyYXBheSI6ICJodHRwczovL2xpYmVyYXBheS5jb20vam9hc2lzLyIsCiAgImxvY2FsZSI6ICJ1c2VyLXNwZWNpZmljIiwKICAibmFtZSI6ICJUYXNrIFdpZGdldCIsCiAgInBheXBhbCI6ICJodHRwczovL3BheXBhbC5tZS9qbWlza2luaXMiLAogICJzY2hlbWFzIjogInVzZXItc3BlY2lmaWMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQiLAogICJ1dWlkIjogInRhc2std2lkZ2V0QGp1b3phc21pc2tpbmlzLmdpdGxhYi5pbyIsCiAgInZlcnNpb24iOiAxNiwKICAid2lraSI6ICJodHRwczovL2dpdGxhYi5jb20vam1pc2tpbmlzL2dub21lLXNoZWxsLWV4dGVuc2lvbi10YXNrLXdpZGdldC93aWtpcyIKfQ=="},
@@ -2695,8 +2738,8 @@
     "42": {"version": "48", "sha256": "0y7pbng3jvvpwnjbajh4qs5n9rlb42w5q4cm2is7s9znwc4n73zj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgRXh0ZW5zaW9uIGZvciBHTk9NRSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgInV1aWQiOiAiYXJjbWVudUBhcmNtZW51LmNvbSIsCiAgInZlcnNpb24iOiA0OAp9"},
     "43": {"version": "48", "sha256": "0y7pbng3jvvpwnjbajh4qs5n9rlb42w5q4cm2is7s9znwc4n73zj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgRXh0ZW5zaW9uIGZvciBHTk9NRSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgInV1aWQiOiAiYXJjbWVudUBhcmNtZW51LmNvbSIsCiAgInZlcnNpb24iOiA0OAp9"},
     "44": {"version": "48", "sha256": "0y7pbng3jvvpwnjbajh4qs5n9rlb42w5q4cm2is7s9znwc4n73zj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgRXh0ZW5zaW9uIGZvciBHTk9NRSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgInV1aWQiOiAiYXJjbWVudUBhcmNtZW51LmNvbSIsCiAgInZlcnNpb24iOiA0OAp9"},
-    "45": {"version": "55", "sha256": "0ggjf5avagpcrgljjkna2l662j78gfjh4maqkmfq4z1kj0vawliq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgRXh0ZW5zaW9uIGZvciBHTk9NRSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51IiwKICAidXVpZCI6ICJhcmNtZW51QGFyY21lbnUuY29tIiwKICAidmVyc2lvbiI6IDU1LAogICJ2ZXJzaW9uLW5hbWUiOiAiNTUiCn0="},
-    "46": {"version": "55", "sha256": "0ggjf5avagpcrgljjkna2l662j78gfjh4maqkmfq4z1kj0vawliq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgRXh0ZW5zaW9uIGZvciBHTk9NRSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51IiwKICAidXVpZCI6ICJhcmNtZW51QGFyY21lbnUuY29tIiwKICAidmVyc2lvbiI6IDU1LAogICJ2ZXJzaW9uLW5hbWUiOiAiNTUiCn0="}
+    "45": {"version": "56", "sha256": "1m6sjq8z0dsxnmywwh6axyfqspkgn4zrkx8fsgqk62bxpimx705x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgRXh0ZW5zaW9uIGZvciBHTk9NRSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51IiwKICAidXVpZCI6ICJhcmNtZW51QGFyY21lbnUuY29tIiwKICAidmVyc2lvbiI6IDU2LAogICJ2ZXJzaW9uLW5hbWUiOiAiNTYiCn0="},
+    "46": {"version": "56", "sha256": "1m6sjq8z0dsxnmywwh6axyfqspkgn4zrkx8fsgqk62bxpimx705x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgRXh0ZW5zaW9uIGZvciBHTk9NRSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51IiwKICAidXVpZCI6ICJhcmNtZW51QGFyY21lbnUuY29tIiwKICAidmVyc2lvbiI6IDU2LAogICJ2ZXJzaW9uLW5hbWUiOiAiNTYiCn0="}
   }}
 , {"uuid": "fixedimelist@alynx.one", "name": "Fixed IME List", "pname": "fixed-ime-list", "description": "Prevent MRU re-sorting of IME list on switching input method so it will always be the same sequence as you set in Settings.", "link": "https://extensions.gnome.org/extension/3663/fixed-ime-list/", "shell_version_map": {
     "38": {"version": "7", "sha256": "18z9h0fcq6w3kmcc5v8swjn18nc9hkck54jfzyv2697py6cd83kf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIElNRSBsaXN0IGluIGZpeGVkIHNlcXVlbmNlIGluc3RlYWQgb2YgTVJVLiIsCiAgIm5hbWUiOiAiRml4ZWQgSU1FIExpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWx5bnhaaG91L2dub21lLXNoZWxsLWV4dGVuc2lvbi1maXhlZC1pbWUtbGlzdC8iLAogICJ1dWlkIjogImZpeGVkaW1lbGlzdEBhbHlueC5vbmUiLAogICJ2ZXJzaW9uIjogNwp9"},
@@ -2937,7 +2980,9 @@
     "40": {"version": "10", "sha256": "0y5myj24bkci6y944dnl9p52jz87fiqjxq5x3xcm8s4lc7zgzkfs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NjYXJ5cmF3ci9nbm9tZS1mb2N1cyIsCiAgInV1aWQiOiAiZm9jdXNAc2NhcnlyYXdyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMAp9"},
     "41": {"version": "10", "sha256": "0y5myj24bkci6y944dnl9p52jz87fiqjxq5x3xcm8s4lc7zgzkfs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NjYXJ5cmF3ci9nbm9tZS1mb2N1cyIsCiAgInV1aWQiOiAiZm9jdXNAc2NhcnlyYXdyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMAp9"},
     "42": {"version": "10", "sha256": "0y5myj24bkci6y944dnl9p52jz87fiqjxq5x3xcm8s4lc7zgzkfs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NjYXJ5cmF3ci9nbm9tZS1mb2N1cyIsCiAgInV1aWQiOiAiZm9jdXNAc2NhcnlyYXdyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMAp9"},
-    "43": {"version": "10", "sha256": "0y5myj24bkci6y944dnl9p52jz87fiqjxq5x3xcm8s4lc7zgzkfs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NjYXJ5cmF3ci9nbm9tZS1mb2N1cyIsCiAgInV1aWQiOiAiZm9jdXNAc2NhcnlyYXdyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMAp9"}
+    "43": {"version": "10", "sha256": "0y5myj24bkci6y944dnl9p52jz87fiqjxq5x3xcm8s4lc7zgzkfs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NjYXJ5cmF3ci9nbm9tZS1mb2N1cyIsCiAgInV1aWQiOiAiZm9jdXNAc2NhcnlyYXdyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMAp9"},
+    "45": {"version": "13", "sha256": "07mvx2b8zfj9j5ry2d0cw1rw1gm5j78nah3ffb84zpj6w8xv4n9k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zY2FyeXJhd3IvZ25vbWUtZm9jdXMiLAogICJ1dWlkIjogImZvY3VzQHNjYXJ5cmF3ci5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTMKfQ=="},
+    "46": {"version": "13", "sha256": "07mvx2b8zfj9j5ry2d0cw1rw1gm5j78nah3ffb84zpj6w8xv4n9k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zY2FyeXJhd3IvZ25vbWUtZm9jdXMiLAogICJ1dWlkIjogImZvY3VzQHNjYXJ5cmF3ci5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}
   }}
 , {"uuid": "autoselectheadset@josephlbarnett.github.com", "name": "Auto select headset", "pname": "auto-select-headset", "description": "Auto selects headsets when possible instead of showing a dialog", "link": "https://extensions.gnome.org/extension/3928/auto-select-headset/", "shell_version_map": {
     "38": {"version": "7", "sha256": "1mi1yrlqc0bqih6zsbqcznnjfxjq3j5s64819wxwxg5m9ligi61h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam9zZXBobGJhcm5ldHQvYXV0b3NlbGVjdGhlYWRzZXQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhdXRvc2VsZWN0aGVhZHNldEBqb3NlcGhsYmFybmV0dC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
@@ -2946,7 +2991,8 @@
     "42": {"version": "7", "sha256": "1mi1yrlqc0bqih6zsbqcznnjfxjq3j5s64819wxwxg5m9ligi61h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam9zZXBobGJhcm5ldHQvYXV0b3NlbGVjdGhlYWRzZXQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhdXRvc2VsZWN0aGVhZHNldEBqb3NlcGhsYmFybmV0dC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
     "43": {"version": "7", "sha256": "1mi1yrlqc0bqih6zsbqcznnjfxjq3j5s64819wxwxg5m9ligi61h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam9zZXBobGJhcm5ldHQvYXV0b3NlbGVjdGhlYWRzZXQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhdXRvc2VsZWN0aGVhZHNldEBqb3NlcGhsYmFybmV0dC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
     "44": {"version": "7", "sha256": "1mi1yrlqc0bqih6zsbqcznnjfxjq3j5s64819wxwxg5m9ligi61h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam9zZXBobGJhcm5ldHQvYXV0b3NlbGVjdGhlYWRzZXQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhdXRvc2VsZWN0aGVhZHNldEBqb3NlcGhsYmFybmV0dC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
-    "45": {"version": "9", "sha256": "0q6p0vjd062wl7gpg3g91pr5f09hhhlm1az9hj2bqrlnd7irw7kj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qb3NlcGhsYmFybmV0dC9hdXRvc2VsZWN0aGVhZHNldC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogImF1dG9zZWxlY3RoZWFkc2V0QGpvc2VwaGxiYXJuZXR0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}
+    "45": {"version": "10", "sha256": "0dxj0hk7ara5aih61vfpqqkv6jk2mg3r5rkpdpy15kwwikw28f60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam9zZXBobGJhcm5ldHQvYXV0b3NlbGVjdGhlYWRzZXQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhdXRvc2VsZWN0aGVhZHNldEBqb3NlcGhsYmFybmV0dC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="},
+    "46": {"version": "10", "sha256": "0dxj0hk7ara5aih61vfpqqkv6jk2mg3r5rkpdpy15kwwikw28f60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam9zZXBobGJhcm5ldHQvYXV0b3NlbGVjdGhlYWRzZXQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhdXRvc2VsZWN0aGVhZHNldEBqb3NlcGhsYmFybmV0dC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}
   }}
 , {"uuid": "toggle-night-light@cansozbir.github.io", "name": "Toggle Night Light", "pname": "toggle-night-light", "description": "This extension lets you toggle night-light from the top-bar by clicking it.", "link": "https://extensions.gnome.org/extension/3933/toggle-night-light/", "shell_version_map": {
     "38": {"version": "7", "sha256": "13s25az5g1n500jih7n1n7mprm70c2mg4r9cfdrxvivvmy080s5b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IHRvZ2dsZSBuaWdodC1saWdodCBmcm9tIHRoZSB0b3AtYmFyIGJ5IGNsaWNraW5nIGl0LiIsCiAgIm5hbWUiOiAiVG9nZ2xlIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2Fuc296YmlyL2dub21lLXNoZWxsLXRvZ2dsZS1uaWdodC1saWdodC1leHRlbnNpb24iLAogICJ1dWlkIjogInRvZ2dsZS1uaWdodC1saWdodEBjYW5zb3piaXIuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDcKfQ=="},
@@ -2959,14 +3005,15 @@
     "40": {"version": "4", "sha256": "1n2fnqv9mhgz9i32vbplamp8vfridh9hc2maxdl8y7nlhvjrk992", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5PVCBNQUlOVEFJTkVEIEFOWU1PUkVcblxuQnV0dG9uIGluIHBhbmVsOiBzd2l0Y2ggYmV0d2VlbiBBZHdhaXRhIGRhcmsgYW5kIGxpZ2h0IHRoZW1lcy4iLAogICJuYW1lIjogIkFkd2FpdGEgVGhlbWUgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYWR3YWl0YS10aGVtZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR3YWl0YS10aGVtZS1zd2l0Y2hlckBmdGh4IiwKICAidmVyc2lvbiI6IDQKfQ=="},
     "41": {"version": "4", "sha256": "1n2fnqv9mhgz9i32vbplamp8vfridh9hc2maxdl8y7nlhvjrk992", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5PVCBNQUlOVEFJTkVEIEFOWU1PUkVcblxuQnV0dG9uIGluIHBhbmVsOiBzd2l0Y2ggYmV0d2VlbiBBZHdhaXRhIGRhcmsgYW5kIGxpZ2h0IHRoZW1lcy4iLAogICJuYW1lIjogIkFkd2FpdGEgVGhlbWUgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYWR3YWl0YS10aGVtZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR3YWl0YS10aGVtZS1zd2l0Y2hlckBmdGh4IiwKICAidmVyc2lvbiI6IDQKfQ=="}
   }}
-, {"uuid": "fnlock-switch-tp-comp-usb-kb@goloshubov.github.io", "name": "FnLock switch (ThinkPad Compact USB Keyboard) ", "pname": "fnlock-switch-thinkpad-compact-usb-keyboard", "description": "FnLock switch for Lenovo ThinkPad Compact USB Keyboard", "link": "https://extensions.gnome.org/extension/3939/fnlock-switch-thinkpad-compact-usb-keyboard/", "shell_version_map": {
+, {"uuid": "fnlock-switch-tp-comp-usb-kb@goloshubov.github.io", "name": "FnLock switch (ThinkPad Compact USB Keyboard) ", "pname": "fnlock-switch-thinkpad-compact-usb-keyboard", "description": "FnLock switch for Lenovo ThinkPad Compact USB Keyboard ", "link": "https://extensions.gnome.org/extension/3939/fnlock-switch-thinkpad-compact-usb-keyboard/", "shell_version_map": {
     "38": {"version": "8", "sha256": "0qw46d3nibpfx0n1584xlw0lkxspvvl5dl2k4x3nbp87wm9gs8vw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="},
     "40": {"version": "8", "sha256": "0qw46d3nibpfx0n1584xlw0lkxspvvl5dl2k4x3nbp87wm9gs8vw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="},
     "41": {"version": "8", "sha256": "0qw46d3nibpfx0n1584xlw0lkxspvvl5dl2k4x3nbp87wm9gs8vw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="},
     "42": {"version": "8", "sha256": "0qw46d3nibpfx0n1584xlw0lkxspvvl5dl2k4x3nbp87wm9gs8vw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="},
     "43": {"version": "8", "sha256": "0qw46d3nibpfx0n1584xlw0lkxspvvl5dl2k4x3nbp87wm9gs8vw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="},
     "44": {"version": "8", "sha256": "0qw46d3nibpfx0n1584xlw0lkxspvvl5dl2k4x3nbp87wm9gs8vw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="},
-    "45": {"version": "10", "sha256": "0fl6dr0c5g8vf19ywq5lzdsk121dsh4ls9a54x89mc10i5s9rj38", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29sb3NodWJvdi9mbmxvY2stc3dpdGNoLXRwLWNvbXAtdXNiLWtiIiwKICAidXVpZCI6ICJmbmxvY2stc3dpdGNoLXRwLWNvbXAtdXNiLWtiQGdvbG9zaHVib3YuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEwCn0="}
+    "45": {"version": "11", "sha256": "0scc8z918g0ww5ljdzkwfkv52ff4gma8bj5isb9gid62lb6idiq8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMQp9"},
+    "46": {"version": "11", "sha256": "0scc8z918g0ww5ljdzkwfkv52ff4gma8bj5isb9gid62lb6idiq8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMQp9"}
   }}
 , {"uuid": "toggle-alacritty@itstime.tech", "name": "Toggle Alacritty", "pname": "toggle-alacritty", "description": "Toggles Alacritty window via hotkey: Alt+z\n\nIf Alacritty is not launched, attempts to start it (/usr/bin/alacritty)\n\nWorks under both Wayland and X11\n\nTo change hotkey please follow instruction in the README.md:", "link": "https://extensions.gnome.org/extension/3942/toggle-alacritty/", "shell_version_map": {
     "38": {"version": "6", "sha256": "03hz84zr05sjw20jvvhmawgi2acimlqzh3vrsp184j6d671yfv7m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgQWxhY3JpdHR5IHdpbmRvdyB2aWEgaG90a2V5OiBBbHQrelxuXG5JZiBBbGFjcml0dHkgaXMgbm90IGxhdW5jaGVkLCBhdHRlbXB0cyB0byBzdGFydCBpdCAoL3Vzci9iaW4vYWxhY3JpdHR5KVxuXG5Xb3JrcyB1bmRlciBib3RoIFdheWxhbmQgYW5kIFgxMVxuXG5UbyBjaGFuZ2UgaG90a2V5IHBsZWFzZSBmb2xsb3cgaW5zdHJ1Y3Rpb24gaW4gdGhlIFJFQURNRS5tZDoiLAogICJuYW1lIjogIlRvZ2dsZSBBbGFjcml0dHkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudG9nZ2xlLWFsYWNyaXR0eSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXh4YXB5L2dub21lLWFsYWNyaXR0eS10b2dnbGUiLAogICJ1dWlkIjogInRvZ2dsZS1hbGFjcml0dHlAaXRzdGltZS50ZWNoIiwKICAidmVyc2lvbiI6IDYKfQ=="},
@@ -3005,7 +3052,8 @@
     "42": {"version": "19", "sha256": "0h7iarczbkv24kbydrids0wdaymlrilib0jhqdmm9k11hriyg1jh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9DemFybGllL2dub21lLWZ1enp5LWFwcC1zZWFyY2giLAogICJ1dWlkIjogImdub21lLWZ1enp5LWFwcC1zZWFyY2hAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5DemFybGllLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogMTkKfQ=="},
     "43": {"version": "19", "sha256": "0h7iarczbkv24kbydrids0wdaymlrilib0jhqdmm9k11hriyg1jh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9DemFybGllL2dub21lLWZ1enp5LWFwcC1zZWFyY2giLAogICJ1dWlkIjogImdub21lLWZ1enp5LWFwcC1zZWFyY2hAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5DemFybGllLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogMTkKfQ=="},
     "44": {"version": "19", "sha256": "0h7iarczbkv24kbydrids0wdaymlrilib0jhqdmm9k11hriyg1jh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9DemFybGllL2dub21lLWZ1enp5LWFwcC1zZWFyY2giLAogICJ1dWlkIjogImdub21lLWZ1enp5LWFwcC1zZWFyY2hAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5DemFybGllLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogMTkKfQ=="},
-    "45": {"version": "20", "sha256": "1bmgxpxg1jra337rdqchcgij5f78d3krqkr9s7v05sxpqx51jwpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDaGFybG90dGUgPGdmYXNAY3phLmxpPiIsCiAgImF1dGhvci1odG1sIjogIkNoYXJsb3R0ZSAmbHQ7PGEgaHJlZj1cIm1haWx0bzpnZmFzQGN6YS5saVwiPmdmYXNAY3phLmxpPC9hPiZndDsiLAogICJkZXNjcmlwdGlvbiI6ICJGdXp6eSBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgR25vbWUgU2VhcmNoIiwKICAiZGVzY3JpcHRpb24taHRtbCI6ICI8YSBocmVmPVwiaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQXBwcm94aW1hdGVfc3RyaW5nX21hdGNoaW5nXCI+RnV6enk8L2E+IGFwcGxpY2F0aW9uIHNlYXJjaCByZXN1bHRzIGZvciA8YSBocmVmPVwiaHR0cHM6Ly9kZXZlbG9wZXIuZ25vbWUub3JnL1NlYXJjaFByb3ZpZGVyL1wiPkdub21lIFNlYXJjaDwvYT4uIiwKICAiZW1haWwiOiAiZ2Zhc0BjemEubGkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAibGljZW5zZSI6ICJHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wIiwKICAibGljZW5zZS1odG1sIjogIlRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuXG5TZWUgdGhlIDxhIGhyZWY9XCJodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAuaHRtbFwiPkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHYzLjA8L2E+IGZvciBkZXRhaWxzLiIsCiAgIm5hbWUiOiAiR05PTUUgRnV6enkgQXBwIFNlYXJjaCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJGcmFuam8gRmlsbyA8ZmZmaWxvNjY2QGdtYWlsLmNvbT4iLAogICJvcmlnaW5hbC1hdXRob3ItaHRtbCI6ICJGcmFuam8gRmlsbyAmbHQ7PGEgaHJlZj1cIm1haWx0bzpmZmZpbG82NjZAZ21haWwuY29tXCI+ZmZmaWxvNjY2QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2N6YXJsaWUvZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgInV1aWQiOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaEBnbm9tZS1zaGVsbC1leHRlbnNpb25zLkN6YXJsaWUuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"}
+    "45": {"version": "24", "sha256": "14p08lcnv240bk9ibgchb74xjnsnfh4868w2qlgqpsn0fl1ba906", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDaGFybG90dGUgPGdmYXNAY3phLmxpPiIsCiAgImF1dGhvci1odG1sIjogIkNoYXJsb3R0ZSAmbHQ7PGEgaHJlZj1cIm1haWx0bzpnZmFzQGN6YS5saVwiPmdmYXNAY3phLmxpPC9hPiZndDsiLAogICJkZXNjcmlwdGlvbiI6ICJGdXp6eSBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgR25vbWUgU2VhcmNoIiwKICAiZGVzY3JpcHRpb24taHRtbCI6ICI8YSBocmVmPVwiaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQXBwcm94aW1hdGVfc3RyaW5nX21hdGNoaW5nXCI+RnV6enk8L2E+IGFwcGxpY2F0aW9uIHNlYXJjaCByZXN1bHRzIGZvciA8YSBocmVmPVwiaHR0cHM6Ly9kZXZlbG9wZXIuZ25vbWUub3JnL1NlYXJjaFByb3ZpZGVyL1wiPkdub21lIFNlYXJjaDwvYT4uIiwKICAiZW1haWwiOiAiZ2Zhc0BjemEubGkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAibGljZW5zZSI6ICJHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wIiwKICAibGljZW5zZS1odG1sIjogIlRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuXG5TZWUgdGhlIDxhIGhyZWY9XCJodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAuaHRtbFwiPkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHYzLjA8L2E+IGZvciBkZXRhaWxzLiIsCiAgIm5hbWUiOiAiR05PTUUgRnV6enkgQXBwIFNlYXJjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vY3phcmxpZS9nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAidXVpZCI6ICJnbm9tZS1mdXp6eS1hcHAtc2VhcmNoQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuQ3phcmxpZS5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="},
+    "46": {"version": "24", "sha256": "14p08lcnv240bk9ibgchb74xjnsnfh4868w2qlgqpsn0fl1ba906", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDaGFybG90dGUgPGdmYXNAY3phLmxpPiIsCiAgImF1dGhvci1odG1sIjogIkNoYXJsb3R0ZSAmbHQ7PGEgaHJlZj1cIm1haWx0bzpnZmFzQGN6YS5saVwiPmdmYXNAY3phLmxpPC9hPiZndDsiLAogICJkZXNjcmlwdGlvbiI6ICJGdXp6eSBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgR25vbWUgU2VhcmNoIiwKICAiZGVzY3JpcHRpb24taHRtbCI6ICI8YSBocmVmPVwiaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQXBwcm94aW1hdGVfc3RyaW5nX21hdGNoaW5nXCI+RnV6enk8L2E+IGFwcGxpY2F0aW9uIHNlYXJjaCByZXN1bHRzIGZvciA8YSBocmVmPVwiaHR0cHM6Ly9kZXZlbG9wZXIuZ25vbWUub3JnL1NlYXJjaFByb3ZpZGVyL1wiPkdub21lIFNlYXJjaDwvYT4uIiwKICAiZW1haWwiOiAiZ2Zhc0BjemEubGkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAibGljZW5zZSI6ICJHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wIiwKICAibGljZW5zZS1odG1sIjogIlRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuXG5TZWUgdGhlIDxhIGhyZWY9XCJodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAuaHRtbFwiPkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHYzLjA8L2E+IGZvciBkZXRhaWxzLiIsCiAgIm5hbWUiOiAiR05PTUUgRnV6enkgQXBwIFNlYXJjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vY3phcmxpZS9nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAidXVpZCI6ICJnbm9tZS1mdXp6eS1hcHAtc2VhcmNoQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuQ3phcmxpZS5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="}
   }}
 , {"uuid": "e-ink-mode@fujimo-t.github.io", "name": "E Ink Mode", "pname": "e-ink-mode", "description": "Make desktop suitable for E Ink monitors.\n\nUnmaintenanced.\nPlease migrate to theme:\nhttps://github.com/fujimo-t/gnome-shell-theme-e-ink\nSee below to detail:\nhttps://github.com/fujimo-t/gnome-shell-extension-e-ink-mode/issues/3#issuecomment-1019159171", "link": "https://extensions.gnome.org/extension/3957/e-ink-mode/", "shell_version_map": {
     "40": {"version": "3", "sha256": "0khqna60a0vblygriiky0jzg92ib8i44i6wkr8s3vxi0bcfa2zhm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgZGVza3RvcCBzdWl0YWJsZSBmb3IgRSBJbmsgbW9uaXRvcnMuXG5cblVubWFpbnRlbmFuY2VkLlxuUGxlYXNlIG1pZ3JhdGUgdG8gdGhlbWU6XG5odHRwczovL2dpdGh1Yi5jb20vZnVqaW1vLXQvZ25vbWUtc2hlbGwtdGhlbWUtZS1pbmtcblNlZSBiZWxvdyB0byBkZXRhaWw6XG5odHRwczovL2dpdGh1Yi5jb20vZnVqaW1vLXQvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWUtaW5rLW1vZGUvaXNzdWVzLzMjaXNzdWVjb21tZW50LTEwMTkxNTkxNzEiLAogICJuYW1lIjogIkUgSW5rIE1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnVqaW1vLXQvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWUtaW5rLW1vZGUiLAogICJ1dWlkIjogImUtaW5rLW1vZGVAZnVqaW1vLXQuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDMKfQ=="}
@@ -3046,7 +3094,7 @@
     "42": {"version": "21", "sha256": "1pbldn51jjfq45d3bl7nfciff1mn3krl7dhiwp9hqrp3hchlassd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IEppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zaHV6aGkiLAogICJuYW1lIjogIlNodSBaaGkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1emhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiAyMQp9"},
     "43": {"version": "23", "sha256": "1nsjpjjsllrdh2k6v9h06xm656b5dbq2vpxs7kqn4p7l8b0ycav4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IEppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zaHV6aGkiLAogICJuYW1lIjogIlNodSBaaGkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1emhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiAyMwp9"},
     "45": {"version": "30", "sha256": "0bswnas2jr58f995sd6317wvy14vq0w5y8fcmrn8n36jgpf3ik5v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IEppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zaHV6aGkiLAogICJuYW1lIjogIlNodSBaaGkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1emhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiAzMAp9"},
-    "46": {"version": "31", "sha256": "06q32s44nf9y61hph8vkmxxpwfzfi58r32py67mxca9xmswc3g03", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IGppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zaHV6aGkiLAogICJuYW1lIjogIlNodSBaaGkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1emhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiAzMQp9"}
+    "46": {"version": "32", "sha256": "035pgwb3dsdw75figyw0r82d2bfadd3sq780mmfvjfkfvb6zjaf9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IGppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zaHV6aGkiLAogICJuYW1lIjogIlNodSBaaGkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1emhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiAzMgp9"}
   }}
 , {"uuid": "zilence@apankowski.github.com", "name": "Zilence", "pname": "zilence", "description": "Turns off notifications while sharing screen during a Zoom call", "link": "https://extensions.gnome.org/extension/3988/zilence/", "shell_version_map": {
     "38": {"version": "4", "sha256": "18iy39i5i8ii2salpxnyin0bwfckl6kp2fzkkij3fqd0pga1frix", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1pdCI6ICIyNTU1ZGNhYjYxZTZiODBhZGFiYjM2NDM5MzEwMmY5MGU3MzhiOTRmIiwKICAiZGVzY3JpcHRpb24iOiAiVHVybnMgb2ZmIG5vdGlmaWNhdGlvbnMgd2hpbGUgc2hhcmluZyBzY3JlZW4gZHVyaW5nIGEgWm9vbSBjYWxsIiwKICAibmFtZSI6ICJaaWxlbmNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcGFua293c2tpL3ppbGVuY2UiLAogICJ1dWlkIjogInppbGVuY2VAYXBhbmtvd3NraS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="},
@@ -3098,7 +3146,7 @@
     "42": {"version": "13", "sha256": "0j23i2gl956r2wffqky5vg6ca24gn3hkibhrhsvkqd87g90cjdq6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlc2t0b3AtbHlyaWMiLAogICJuYW1lIjogIkRlc2t0b3AgTHlyaWMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVza3RvcC1seXJpYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2Rlc2t0b3AtbHlyaWMiLAogICJ1dWlkIjogImRlc2t0b3AtbHlyaWNAdHViZXJyeSIsCiAgInZlcnNpb24iOiAxMwp9"},
     "43": {"version": "16", "sha256": "1frahic00q1dqi27vbxw8y0dz1qcfd99m1kzha1r8pyfgwd22fqv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlc2t0b3AtbHlyaWMiLAogICJuYW1lIjogIkRlc2t0b3AgTHlyaWMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVza3RvcC1seXJpYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2Rlc2t0b3AtbHlyaWMiLAogICJ1dWlkIjogImRlc2t0b3AtbHlyaWNAdHViZXJyeSIsCiAgInZlcnNpb24iOiAxNgp9"},
     "45": {"version": "19", "sha256": "0p8rfw2yvx7cdm43wgjgml5hisijxwjsl8d6cg1aad9m3lc8d0pl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlc2t0b3AtbHlyaWMiLAogICJuYW1lIjogIkRlc2t0b3AgTHlyaWMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVza3RvcC1seXJpYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2Rlc2t0b3AtbHlyaWMiLAogICJ1dWlkIjogImRlc2t0b3AtbHlyaWNAdHViZXJyeSIsCiAgInZlcnNpb24iOiAxOQp9"},
-    "46": {"version": "20", "sha256": "0g4a3mfnmj81qhb90hyp9hrzr5vr4r8dr458nkvk28qh9l9vbzb3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlc2t0b3AtbHlyaWMiLAogICJuYW1lIjogIkRlc2t0b3AgTHlyaWMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVza3RvcC1seXJpYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2Rlc2t0b3AtbHlyaWMiLAogICJ1dWlkIjogImRlc2t0b3AtbHlyaWNAdHViZXJyeSIsCiAgInZlcnNpb24iOiAyMAp9"}
+    "46": {"version": "22", "sha256": "1yvix045i0664jvkdh1zc3fgr5xwc4xipvk0n57vq0zc7sv8wwcp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlc2t0b3AtbHlyaWMiLAogICJuYW1lIjogIkRlc2t0b3AgTHlyaWMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVza3RvcC1seXJpYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2Rlc2t0b3AtbHlyaWMiLAogICJ1dWlkIjogImRlc2t0b3AtbHlyaWNAdHViZXJyeSIsCiAgInZlcnNpb24iOiAyMgp9"}
   }}
 , {"uuid": "alttab-mod@leleat-on-github", "name": "AltTab Mod", "pname": "alttab-mod", "description": "Add some QoL changes to the App Switcher (Alt/Super+Tab)...\n- use `WASD`, `hjkl` or the arrow keys for navigation\n- `Q` only closes the selected window instead of the entire app\n- only raise the first window instead of every instance\n- optionally: only show windows from the current workspace\n- optionally: only show windows from the current monitor\n- optionally: remove the App Switcher's delayed appearance", "link": "https://extensions.gnome.org/extension/4007/alttab-mod/", "shell_version_map": {
     "38": {"version": "6", "sha256": "1010nmdyga6lqk78vlc9r02h3kcgimlvamb7xhp5vw7i71gay4jv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBzb21lIFFvTCBjaGFuZ2VzIHRvIHRoZSBBcHAgU3dpdGNoZXIgKEFsdC9TdXBlcitUYWIpLi4uXG4tIHVzZSBgV0FTRGAsIGBoamtsYCBvciB0aGUgYXJyb3cga2V5cyBmb3IgbmF2aWdhdGlvblxuLSBgUWAgb25seSBjbG9zZXMgdGhlIHNlbGVjdGVkIHdpbmRvdyBpbnN0ZWFkIG9mIHRoZSBlbnRpcmUgYXBwXG4tIG9ubHkgcmFpc2UgdGhlIGZpcnN0IHdpbmRvdyBpbnN0ZWFkIG9mIGV2ZXJ5IGluc3RhbmNlXG4tIG9wdGlvbmFsbHk6IG9ubHkgc2hvdyB3aW5kb3dzIGZyb20gdGhlIGN1cnJlbnQgd29ya3NwYWNlXG4tIG9wdGlvbmFsbHk6IG9ubHkgc2hvdyB3aW5kb3dzIGZyb20gdGhlIGN1cnJlbnQgbW9uaXRvclxuLSBvcHRpb25hbGx5OiByZW1vdmUgdGhlIEFwcCBTd2l0Y2hlcidzIGRlbGF5ZWQgYXBwZWFyYW5jZSIsCiAgIm5hbWUiOiAiQWx0VGFiIE1vZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTGVsZWF0L0FsdFRhYi1Nb2QiLAogICJ1dWlkIjogImFsdHRhYi1tb2RAbGVsZWF0LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiA2Cn0="},
@@ -3270,9 +3318,13 @@
   }}
 , {"uuid": "translate-clipboard@lsnow.github.io", "name": "Translate clipboard", "pname": "translate-clipboard", "description": "Translate clipboard text", "link": "https://extensions.gnome.org/extension/4097/translate-clipboard/", "shell_version_map": {
     "38": {"version": "1", "sha256": "071x3q6y7s8qx4i3lis79g5nc68ld8ln5q8qgc713nvjgfsg05hs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEKfQ=="},
-    "40": {"version": "16", "sha256": "11r7r4azaf94f453ima2sms0ycaygh0l3k30dm5zpbkdp4pbczbh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDEuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE2Cn0="},
-    "41": {"version": "16", "sha256": "11r7r4azaf94f453ima2sms0ycaygh0l3k30dm5zpbkdp4pbczbh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDEuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE2Cn0="},
-    "42": {"version": "17", "sha256": "0rq6fc479x0hjkbam37pcnax909bssybz1ibnn7a0nx1ai9zkxr7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sc25vdy90cmFuc2xhdGUtY2xpcGJvYXJkIiwKICAidXVpZCI6ICJ0cmFuc2xhdGUtY2xpcGJvYXJkQGxzbm93LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxNwp9"}
+    "40": {"version": "19", "sha256": "0zh3vmyag819qjl2f1gnsa3aaa67z2ga10l18r9phdrvg9fh2q28", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="},
+    "41": {"version": "19", "sha256": "0zh3vmyag819qjl2f1gnsa3aaa67z2ga10l18r9phdrvg9fh2q28", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="},
+    "42": {"version": "19", "sha256": "0zh3vmyag819qjl2f1gnsa3aaa67z2ga10l18r9phdrvg9fh2q28", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="},
+    "43": {"version": "19", "sha256": "0zh3vmyag819qjl2f1gnsa3aaa67z2ga10l18r9phdrvg9fh2q28", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="},
+    "44": {"version": "19", "sha256": "0zh3vmyag819qjl2f1gnsa3aaa67z2ga10l18r9phdrvg9fh2q28", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="},
+    "45": {"version": "23", "sha256": "0zbamf5a18zcs3akc4xlplzid8kbps3dnklfr4a7xwqym4s0nq89", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0cmFuc2xhdGUtY2xpcGJvYXJkIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiVHJhbnNsYXRlQ2xpcGJvYXJkIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJUcmFuc2xhdGUgY2xpcGJvYXJkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDIzCn0="},
+    "46": {"version": "23", "sha256": "0zbamf5a18zcs3akc4xlplzid8kbps3dnklfr4a7xwqym4s0nq89", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0cmFuc2xhdGUtY2xpcGJvYXJkIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiVHJhbnNsYXRlQ2xpcGJvYXJkIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJUcmFuc2xhdGUgY2xpcGJvYXJkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDIzCn0="}
   }}
 , {"uuid": "no-overview@fthx", "name": "No overview at start-up", "pname": "no-overview", "description": "No overview at start-up. Nothing more.", "link": "https://extensions.gnome.org/extension/4099/no-overview/", "shell_version_map": {
     "40": {"version": "13", "sha256": "18v54y1a4qrpq2gm65z0l13p02grjzcqa1xskn1bhwdy35pdal3n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIG92ZXJ2aWV3IGF0IHN0YXJ0LXVwLiBGb3IgR05PTUUgU2hlbGwgNDArLiIsCiAgIm5hbWUiOiAiTm8gb3ZlcnZpZXcgYXQgc3RhcnQtdXAiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImZ0aHgiCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L25vLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJuby1vdmVydmlld0BmdGh4IiwKICAidmVyc2lvbiI6IDEzCn0="},
@@ -3290,7 +3342,8 @@
     "42": {"version": "10", "sha256": "1z2pk42hr8p1n4949rw4avf319df4215c22rr7nqrm0cf0sa3iwx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgcG9zaXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgZnJvbSB0aGUgZGVmYXVsdCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc2NyZWVuLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnJ1bm9kcnVnb3dpY2svbm90aWZpY2F0aW9uLXBvc2l0aW9uLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLXBvc2l0aW9uQGRydWdvLmRldiIsCiAgInZlcnNpb24iOiAxMAp9"},
     "43": {"version": "10", "sha256": "1z2pk42hr8p1n4949rw4avf319df4215c22rr7nqrm0cf0sa3iwx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgcG9zaXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgZnJvbSB0aGUgZGVmYXVsdCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc2NyZWVuLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnJ1bm9kcnVnb3dpY2svbm90aWZpY2F0aW9uLXBvc2l0aW9uLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLXBvc2l0aW9uQGRydWdvLmRldiIsCiAgInZlcnNpb24iOiAxMAp9"},
     "44": {"version": "10", "sha256": "1z2pk42hr8p1n4949rw4avf319df4215c22rr7nqrm0cf0sa3iwx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgcG9zaXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgZnJvbSB0aGUgZGVmYXVsdCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc2NyZWVuLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnJ1bm9kcnVnb3dpY2svbm90aWZpY2F0aW9uLXBvc2l0aW9uLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLXBvc2l0aW9uQGRydWdvLmRldiIsCiAgInZlcnNpb24iOiAxMAp9"},
-    "45": {"version": "13", "sha256": "0412irpcs65y9pjl0b47hqa7j2g4dvkkz0356vr0666blsj2vvqh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgcG9zaXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgZnJvbSB0aGUgZGVmYXVsdCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc2NyZWVuLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9icnVub2RydWdvd2ljay9ub3RpZmljYXRpb24tcG9zaXRpb24tZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tcG9zaXRpb25AZHJ1Z28uZGV2IiwKICAidmVyc2lvbiI6IDEzCn0="}
+    "45": {"version": "14", "sha256": "00kp68a5n8z92wxlsf08k69wxh3bjhd6xpivn5k4zwsinv3lmqxc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgcG9zaXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgZnJvbSB0aGUgZGVmYXVsdCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc2NyZWVuLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnJ1bm9kcnVnb3dpY2svbm90aWZpY2F0aW9uLXBvc2l0aW9uLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLXBvc2l0aW9uQGRydWdvLmRldiIsCiAgInZlcnNpb24iOiAxNAp9"},
+    "46": {"version": "14", "sha256": "00kp68a5n8z92wxlsf08k69wxh3bjhd6xpivn5k4zwsinv3lmqxc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgcG9zaXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgZnJvbSB0aGUgZGVmYXVsdCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc2NyZWVuLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnJ1bm9kcnVnb3dpY2svbm90aWZpY2F0aW9uLXBvc2l0aW9uLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLXBvc2l0aW9uQGRydWdvLmRldiIsCiAgInZlcnNpb24iOiAxNAp9"}
   }}
 , {"uuid": "volume_scroller@trflynn89.pm.me", "name": "Volume Scroller", "pname": "volume-scroller", "description": "Scroll up or down in the Top Bar to adjust volume.", "link": "https://extensions.gnome.org/extension/4109/volume-scroller/", "shell_version_map": {
     "38": {"version": "7", "sha256": "13ha95kxcp018p390d49qcakfy91y23lf80wvfdvzilcbficpjk3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNjcm9sbCB1cCBvciBkb3duIGluIHRoZSBUb3AgQmFyIHRvIGFkanVzdCB2b2x1bWUuIiwKICAibmFtZSI6ICJWb2x1bWUgU2Nyb2xsZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAidHJmbHlubjg5QHBtLm1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RyZmx5bm44OS9nbm9tZS1zaGVsbC12b2x1bWUtc2Nyb2xsZXIiLAogICJ1dWlkIjogInZvbHVtZV9zY3JvbGxlckB0cmZseW5uODkucG0ubWUiLAogICJ2ZXJzaW9uIjogNwp9"},
@@ -3347,7 +3400,8 @@
     "42": {"version": "8", "sha256": "1c21nzky2sfrq8wkz26rn2gcyr81y1zb3r14pflwhl56f9bgbh0c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVzcHJlc3NvIGRpc2FibGVzIHRoZSB1c3VhbCBhdXRvIHN1c3BlbmQgYW5kIHNjcmVlbnNhdmVyIGZ1bmN0aW9uYWxpdHkgYW5kIG9wdGlvbmFsbHkgTmlnaHQgTGlnaHQgd2l0aCBvcHRpb25zIHRvIHNob3cgYW4gRXNwcmVzc28gaWNvbiBpbiB0aGUgdG9wIHBhbmVsLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBhIGZ1bGxzY3JlZW4gYXBwbGljYXRpb24gaXMgcnVubmluZywgdG8gcmVzdG9yZSBzdGF0ZSBhY3Jvc3MgcmVib290cywgdG8gcHJvdmlkZSBub3RpZmljYXRpb25zLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBzcGVjaWZpYyBhcHBsaWNhdGlvbnMgYXJlIHJ1bm5pbmcsIG9yIHRvIHBhdXNlIE5pZ2h0IExpZ2h0IHdoZW4gRXNwcmVzc28gaXMgZW5hYmxlZCBvciBvbmx5IHdoZW4gc3BlY2lmaWMgYXBwbGljYXRpb25zIGFyZSBydW5uaW5nLiBFc3ByZXNzbyBhbHNvIHByb3ZpZGVzIHNvbWUgc3VwcG9ydCBmb3IgZG9ja2luZyBzdGF0aW9ucyBpbmNsdWRpbmcgb3B0aW9ucyB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBjaGFyZ2luZyBhbmQvb3Igd2hlbiBkb2NrZWQgdG8gZXh0ZXJuYWwgbW9uaXRvcnMgYW5kIHRvIGFsbG93IHRlbXBvcmFyaWx5IG92ZXJyaWRpbmcgdGhlIGRvY2tpbmcgc3VwcG9ydCB3aXRob3V0IGFmZmVjdGluZyB0aGUgc3RvcmVkIHN0YXRlLlxuXG5Fc3ByZXNzbyBpcyBhIGZvcmsgb2YgdGhlIENhZmZlaW5lIGV4dGVuc2lvbi5cblxuUGxlYXNlIGxlYXZlIGZlZWRiYWNrIG9yIHJlcG9ydCBpc3N1ZXMgdGhyb3VnaCB0aGUgRXh0ZW5zaW9uIEhvbWVwYWdlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAibmFtZSI6ICJFc3ByZXNzbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lc3ByZXNzbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29hZG11bmtlZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tZXNwcmVzc28iLAogICJ1dWlkIjogImVzcHJlc3NvQGNvYWRtdW5rZWUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="},
     "43": {"version": "8", "sha256": "1c21nzky2sfrq8wkz26rn2gcyr81y1zb3r14pflwhl56f9bgbh0c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVzcHJlc3NvIGRpc2FibGVzIHRoZSB1c3VhbCBhdXRvIHN1c3BlbmQgYW5kIHNjcmVlbnNhdmVyIGZ1bmN0aW9uYWxpdHkgYW5kIG9wdGlvbmFsbHkgTmlnaHQgTGlnaHQgd2l0aCBvcHRpb25zIHRvIHNob3cgYW4gRXNwcmVzc28gaWNvbiBpbiB0aGUgdG9wIHBhbmVsLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBhIGZ1bGxzY3JlZW4gYXBwbGljYXRpb24gaXMgcnVubmluZywgdG8gcmVzdG9yZSBzdGF0ZSBhY3Jvc3MgcmVib290cywgdG8gcHJvdmlkZSBub3RpZmljYXRpb25zLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBzcGVjaWZpYyBhcHBsaWNhdGlvbnMgYXJlIHJ1bm5pbmcsIG9yIHRvIHBhdXNlIE5pZ2h0IExpZ2h0IHdoZW4gRXNwcmVzc28gaXMgZW5hYmxlZCBvciBvbmx5IHdoZW4gc3BlY2lmaWMgYXBwbGljYXRpb25zIGFyZSBydW5uaW5nLiBFc3ByZXNzbyBhbHNvIHByb3ZpZGVzIHNvbWUgc3VwcG9ydCBmb3IgZG9ja2luZyBzdGF0aW9ucyBpbmNsdWRpbmcgb3B0aW9ucyB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBjaGFyZ2luZyBhbmQvb3Igd2hlbiBkb2NrZWQgdG8gZXh0ZXJuYWwgbW9uaXRvcnMgYW5kIHRvIGFsbG93IHRlbXBvcmFyaWx5IG92ZXJyaWRpbmcgdGhlIGRvY2tpbmcgc3VwcG9ydCB3aXRob3V0IGFmZmVjdGluZyB0aGUgc3RvcmVkIHN0YXRlLlxuXG5Fc3ByZXNzbyBpcyBhIGZvcmsgb2YgdGhlIENhZmZlaW5lIGV4dGVuc2lvbi5cblxuUGxlYXNlIGxlYXZlIGZlZWRiYWNrIG9yIHJlcG9ydCBpc3N1ZXMgdGhyb3VnaCB0aGUgRXh0ZW5zaW9uIEhvbWVwYWdlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAibmFtZSI6ICJFc3ByZXNzbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lc3ByZXNzbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29hZG11bmtlZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tZXNwcmVzc28iLAogICJ1dWlkIjogImVzcHJlc3NvQGNvYWRtdW5rZWUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="},
     "44": {"version": "8", "sha256": "1c21nzky2sfrq8wkz26rn2gcyr81y1zb3r14pflwhl56f9bgbh0c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVzcHJlc3NvIGRpc2FibGVzIHRoZSB1c3VhbCBhdXRvIHN1c3BlbmQgYW5kIHNjcmVlbnNhdmVyIGZ1bmN0aW9uYWxpdHkgYW5kIG9wdGlvbmFsbHkgTmlnaHQgTGlnaHQgd2l0aCBvcHRpb25zIHRvIHNob3cgYW4gRXNwcmVzc28gaWNvbiBpbiB0aGUgdG9wIHBhbmVsLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBhIGZ1bGxzY3JlZW4gYXBwbGljYXRpb24gaXMgcnVubmluZywgdG8gcmVzdG9yZSBzdGF0ZSBhY3Jvc3MgcmVib290cywgdG8gcHJvdmlkZSBub3RpZmljYXRpb25zLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBzcGVjaWZpYyBhcHBsaWNhdGlvbnMgYXJlIHJ1bm5pbmcsIG9yIHRvIHBhdXNlIE5pZ2h0IExpZ2h0IHdoZW4gRXNwcmVzc28gaXMgZW5hYmxlZCBvciBvbmx5IHdoZW4gc3BlY2lmaWMgYXBwbGljYXRpb25zIGFyZSBydW5uaW5nLiBFc3ByZXNzbyBhbHNvIHByb3ZpZGVzIHNvbWUgc3VwcG9ydCBmb3IgZG9ja2luZyBzdGF0aW9ucyBpbmNsdWRpbmcgb3B0aW9ucyB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBjaGFyZ2luZyBhbmQvb3Igd2hlbiBkb2NrZWQgdG8gZXh0ZXJuYWwgbW9uaXRvcnMgYW5kIHRvIGFsbG93IHRlbXBvcmFyaWx5IG92ZXJyaWRpbmcgdGhlIGRvY2tpbmcgc3VwcG9ydCB3aXRob3V0IGFmZmVjdGluZyB0aGUgc3RvcmVkIHN0YXRlLlxuXG5Fc3ByZXNzbyBpcyBhIGZvcmsgb2YgdGhlIENhZmZlaW5lIGV4dGVuc2lvbi5cblxuUGxlYXNlIGxlYXZlIGZlZWRiYWNrIG9yIHJlcG9ydCBpc3N1ZXMgdGhyb3VnaCB0aGUgRXh0ZW5zaW9uIEhvbWVwYWdlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAibmFtZSI6ICJFc3ByZXNzbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lc3ByZXNzbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29hZG11bmtlZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tZXNwcmVzc28iLAogICJ1dWlkIjogImVzcHJlc3NvQGNvYWRtdW5rZWUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="},
-    "45": {"version": "9", "sha256": "11xhng0wczh5518yqnzqkkf3n1v84r7f9dgjpgmd1hvccnbsmjl3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVzcHJlc3NvIGRpc2FibGVzIHRoZSB1c3VhbCBhdXRvIHN1c3BlbmQgYW5kIHNjcmVlbnNhdmVyIGZ1bmN0aW9uYWxpdHkgYW5kIG9wdGlvbmFsbHkgTmlnaHQgTGlnaHQgd2l0aCBvcHRpb25zIHRvIHNob3cgYW4gRXNwcmVzc28gaWNvbiBpbiB0aGUgdG9wIHBhbmVsLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBhIGZ1bGxzY3JlZW4gYXBwbGljYXRpb24gaXMgcnVubmluZywgdG8gcmVzdG9yZSBzdGF0ZSBhY3Jvc3MgcmVib290cywgdG8gcHJvdmlkZSBub3RpZmljYXRpb25zLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBzcGVjaWZpYyBhcHBsaWNhdGlvbnMgYXJlIHJ1bm5pbmcsIG9yIHRvIHBhdXNlIE5pZ2h0IExpZ2h0IHdoZW4gRXNwcmVzc28gaXMgZW5hYmxlZCBvciBvbmx5IHdoZW4gc3BlY2lmaWMgYXBwbGljYXRpb25zIGFyZSBydW5uaW5nLiBFc3ByZXNzbyBhbHNvIHByb3ZpZGVzIHNvbWUgc3VwcG9ydCBmb3IgZG9ja2luZyBzdGF0aW9ucyBpbmNsdWRpbmcgb3B0aW9ucyB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBjaGFyZ2luZyBhbmQvb3Igd2hlbiBkb2NrZWQgdG8gZXh0ZXJuYWwgbW9uaXRvcnMgYW5kIHRvIGFsbG93IHRlbXBvcmFyaWx5IG92ZXJyaWRpbmcgdGhlIGRvY2tpbmcgc3VwcG9ydCB3aXRob3V0IGFmZmVjdGluZyB0aGUgc3RvcmVkIHN0YXRlLlxuXG5Fc3ByZXNzbyBpcyBhIGZvcmsgb2YgdGhlIENhZmZlaW5lIGV4dGVuc2lvbi5cblxuUGxlYXNlIGxlYXZlIGZlZWRiYWNrIG9yIHJlcG9ydCBpc3N1ZXMgdGhyb3VnaCB0aGUgRXh0ZW5zaW9uIEhvbWVwYWdlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAibmFtZSI6ICJFc3ByZXNzbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lc3ByZXNzbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2FkbXVua2VlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1lc3ByZXNzbyIsCiAgInV1aWQiOiAiZXNwcmVzc29AY29hZG11bmtlZS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="}
+    "45": {"version": "9", "sha256": "11xhng0wczh5518yqnzqkkf3n1v84r7f9dgjpgmd1hvccnbsmjl3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVzcHJlc3NvIGRpc2FibGVzIHRoZSB1c3VhbCBhdXRvIHN1c3BlbmQgYW5kIHNjcmVlbnNhdmVyIGZ1bmN0aW9uYWxpdHkgYW5kIG9wdGlvbmFsbHkgTmlnaHQgTGlnaHQgd2l0aCBvcHRpb25zIHRvIHNob3cgYW4gRXNwcmVzc28gaWNvbiBpbiB0aGUgdG9wIHBhbmVsLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBhIGZ1bGxzY3JlZW4gYXBwbGljYXRpb24gaXMgcnVubmluZywgdG8gcmVzdG9yZSBzdGF0ZSBhY3Jvc3MgcmVib290cywgdG8gcHJvdmlkZSBub3RpZmljYXRpb25zLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBzcGVjaWZpYyBhcHBsaWNhdGlvbnMgYXJlIHJ1bm5pbmcsIG9yIHRvIHBhdXNlIE5pZ2h0IExpZ2h0IHdoZW4gRXNwcmVzc28gaXMgZW5hYmxlZCBvciBvbmx5IHdoZW4gc3BlY2lmaWMgYXBwbGljYXRpb25zIGFyZSBydW5uaW5nLiBFc3ByZXNzbyBhbHNvIHByb3ZpZGVzIHNvbWUgc3VwcG9ydCBmb3IgZG9ja2luZyBzdGF0aW9ucyBpbmNsdWRpbmcgb3B0aW9ucyB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBjaGFyZ2luZyBhbmQvb3Igd2hlbiBkb2NrZWQgdG8gZXh0ZXJuYWwgbW9uaXRvcnMgYW5kIHRvIGFsbG93IHRlbXBvcmFyaWx5IG92ZXJyaWRpbmcgdGhlIGRvY2tpbmcgc3VwcG9ydCB3aXRob3V0IGFmZmVjdGluZyB0aGUgc3RvcmVkIHN0YXRlLlxuXG5Fc3ByZXNzbyBpcyBhIGZvcmsgb2YgdGhlIENhZmZlaW5lIGV4dGVuc2lvbi5cblxuUGxlYXNlIGxlYXZlIGZlZWRiYWNrIG9yIHJlcG9ydCBpc3N1ZXMgdGhyb3VnaCB0aGUgRXh0ZW5zaW9uIEhvbWVwYWdlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAibmFtZSI6ICJFc3ByZXNzbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lc3ByZXNzbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2FkbXVua2VlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1lc3ByZXNzbyIsCiAgInV1aWQiOiAiZXNwcmVzc29AY29hZG11bmtlZS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="},
+    "46": {"version": "10", "sha256": "0yd24zg16z9hwbsnfamq32qwr2drx8d2pp2d44m0xfhwrvkghxsm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVzcHJlc3NvIGRpc2FibGVzIHRoZSB1c3VhbCBhdXRvIHN1c3BlbmQgYW5kIHNjcmVlbnNhdmVyIGZ1bmN0aW9uYWxpdHkgYW5kIG9wdGlvbmFsbHkgTmlnaHQgTGlnaHQgd2l0aCBvcHRpb25zIHRvIHNob3cgYW4gRXNwcmVzc28gaWNvbiBpbiB0aGUgdG9wIHBhbmVsLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBhIGZ1bGxzY3JlZW4gYXBwbGljYXRpb24gaXMgcnVubmluZywgdG8gcmVzdG9yZSBzdGF0ZSBhY3Jvc3MgcmVib290cywgdG8gcHJvdmlkZSBub3RpZmljYXRpb25zLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBzcGVjaWZpYyBhcHBsaWNhdGlvbnMgYXJlIHJ1bm5pbmcsIG9yIHRvIHBhdXNlIE5pZ2h0IExpZ2h0IHdoZW4gRXNwcmVzc28gaXMgZW5hYmxlZCBvciBvbmx5IHdoZW4gc3BlY2lmaWMgYXBwbGljYXRpb25zIGFyZSBydW5uaW5nLiBFc3ByZXNzbyBhbHNvIHByb3ZpZGVzIHNvbWUgc3VwcG9ydCBmb3IgZG9ja2luZyBzdGF0aW9ucyBpbmNsdWRpbmcgb3B0aW9ucyB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBjaGFyZ2luZyBhbmQvb3Igd2hlbiBkb2NrZWQgdG8gZXh0ZXJuYWwgbW9uaXRvcnMgYW5kIHRvIGFsbG93IHRlbXBvcmFyaWx5IG92ZXJyaWRpbmcgdGhlIGRvY2tpbmcgc3VwcG9ydCB3aXRob3V0IGFmZmVjdGluZyB0aGUgc3RvcmVkIHN0YXRlLlxuXG5Fc3ByZXNzbyBpcyBhIGZvcmsgb2YgdGhlIENhZmZlaW5lIGV4dGVuc2lvbi5cblxuUGxlYXNlIGxlYXZlIGZlZWRiYWNrIG9yIHJlcG9ydCBpc3N1ZXMgdGhyb3VnaCB0aGUgRXh0ZW5zaW9uIEhvbWVwYWdlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAibmFtZSI6ICJFc3ByZXNzbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lc3ByZXNzbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2FkbXVua2VlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1lc3ByZXNzbyIsCiAgInV1aWQiOiAiZXNwcmVzc29AY29hZG11bmtlZS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}
   }}
 , {"uuid": "salat-dz@salat-dz.com", "name": "Salat Dz", "pname": "salat-dz", "description": "Show next salat using Salat Dz API", "link": "https://extensions.gnome.org/extension/4136/salat-dz/", "shell_version_map": {
     "38": {"version": "1", "sha256": "1kga5w2yp375h6lj3fmzr1agg43phyj5f45d7hjv04c405d32p8s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbmV4dCBzYWxhdCB1c2luZyBTYWxhdCBEeiBBUEkiLAogICJuYW1lIjogIlNhbGF0IER6IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL3NhbGF0LnB5dGhvbmFueXdoZXJlLmNvbSIsCiAgInV1aWQiOiAic2FsYXQtZHpAc2FsYXQtZHouY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}
@@ -3400,7 +3454,7 @@
     "40": {"version": "6", "sha256": "0pazjbi0aikpnvnfxyamqy70xi1xclydyxdkf908c6ybwnc5956z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmVzIHRoZSB3aW5kb3cgc3dpdGNoZXIgb24gZHVhbCAob3IgbW9yZSkgbW9uaXRvciBzZXR1cHMiLAogICJuYW1lIjogIk1vbml0b3Igd2luZG93IHN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZWR6ZXBwZWxpbi9tb25pdG9yLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAibW9uaXRvci13aW5kb3ctc3dpdGNoZXJAdGhlZnVuZ3Vzcm9ja2V0LmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="},
     "41": {"version": "6", "sha256": "0pazjbi0aikpnvnfxyamqy70xi1xclydyxdkf908c6ybwnc5956z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmVzIHRoZSB3aW5kb3cgc3dpdGNoZXIgb24gZHVhbCAob3IgbW9yZSkgbW9uaXRvciBzZXR1cHMiLAogICJuYW1lIjogIk1vbml0b3Igd2luZG93IHN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZWR6ZXBwZWxpbi9tb25pdG9yLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAibW9uaXRvci13aW5kb3ctc3dpdGNoZXJAdGhlZnVuZ3Vzcm9ja2V0LmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}
   }}
-, {"uuid": "custom-hot-corners-extended@G-dH.github.com", "name": "Custom Hot Corners - Extended", "pname": "custom-hot-corners-extended", "description": "Give a function to any corner or edge of your monitors and enhance your keyboard capabilities\n\nMouse pointer pressure, clicks, and scrolls over the monitor corners/edges, or custom keyboard shortcuts can trigger dozens of built-in actions that help you navigate and control your desktop environment or execute your own shell commands.\n\nA significant portion of available actions includes visual adjustments (contrast, brightness, opacity) and color filters (red, green, desaturation, lightness, color inversions) and also accessibility features.\n\nDo not update extensions from this site, GNOME Shell will do it automatically on the next session start.\n\nPlease report bugs on GitHub page linked below as Extension Homepage.\n\nkeywords: keyboard shortcut, switch windows, overview, app grid, command, brightness, contrast, transparent, opacity, color effect, invert lightness, color tint, color blind filter, simulation, desaturate, night lights, dark theme, volume, mute, magnifier, zoom, screen keyboard, reader, large text, force close, kill -9, show desktop, reorder workspace, window thumbnail, preview, looking glass, custom menu, window, workspace, switcher, hide panel", "link": "https://extensions.gnome.org/extension/4167/custom-hot-corners-extended/", "shell_version_map": {
+, {"uuid": "custom-hot-corners-extended@G-dH.github.com", "name": "CHC-E (Custom Hot Corners - Extended)", "pname": "custom-hot-corners-extended", "description": "Give a function to any corner or edge of your monitors and enhance your keyboard capabilities\n\nMouse pointer pressure, clicks, and scrolls over the monitor corners/edges, or custom keyboard shortcuts can trigger dozens of built-in actions that help you navigate and control your desktop environment or execute your own shell commands.\n\nA significant portion of available actions includes visual adjustments (contrast, brightness, opacity) and color filters (red, green, desaturation, lightness, color inversions) and also accessibility features.\n\nDo not update extensions from this site, GNOME Shell will do it automatically on the next session start.\n\nPlease report bugs on GitHub page linked below as Extension Homepage.\n\nkeywords: keyboard shortcut, switch windows, overview, app grid, command, brightness, contrast, transparent, opacity, color effect, invert lightness, color tint, color blind filter, simulation, desaturate, night lights, dark theme, volume, mute, magnifier, zoom, screen keyboard, reader, large text, force close, kill -9, show desktop, reorder workspace, window thumbnail, preview, looking glass, custom menu, window, workspace, switcher, hide panel", "link": "https://extensions.gnome.org/extension/4167/custom-hot-corners-extended/", "shell_version_map": {
     "38": {"version": "37", "sha256": "0jsnvrics52wq50y4bslix8kbpiwbkj56mjqh6mvqxfpk2a4mx94", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQgY2FwYWJpbGl0aWVzLlxuTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIG1vbml0b3IgY29ybmVycy9lZGdlcyBvciBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXRzIGNhbiB0cmlnZ2VyIGFueSBvZiBkb3plbnMgYnVpbHQtaW4gYWN0aW9ucyB0aGF0IGhlbHBzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB5b3VyIGRlc2t0b3AgZW52aXJvbm1lbnQsIG9yIHlvdXIgb3duIHNoZWxsIGNvbW1hbmRzLlxuXG5TaWduaWZpY2FudCBwYXJ0IG9mIGF2YWlsYWJsZSBhY3Rpb25zIGFyZSB2aXN1YWwgYWRqdXN0bWVudHMgKGNvbnRyYXN0LCBicmlnaHRuZXNzLCBvcGFjaXR5KSBhbmQgY29sb3IgZmlsdGVycyAocmVkLCBncmVlbiwgZGVzYXR1cmF0ZSwgbGlnaHRuZXNzIGFuZCBjb2xvciBpbnZlcnNpb25zKSAsIGluY2x1ZGluZyBjb3JyZWN0aW9uIGZpbHRlcnMgZm9yIGNvbG9yYmxpbmQgdXNlcnMgYW5kIGNiIHNpbXVsYXRpb24gZmlsdGVycyBmb3IgZGV2ZWxvcGVycy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM3LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMiIKfQ=="},
     "40": {"version": "37", "sha256": "0jsnvrics52wq50y4bslix8kbpiwbkj56mjqh6mvqxfpk2a4mx94", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQgY2FwYWJpbGl0aWVzLlxuTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIG1vbml0b3IgY29ybmVycy9lZGdlcyBvciBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXRzIGNhbiB0cmlnZ2VyIGFueSBvZiBkb3plbnMgYnVpbHQtaW4gYWN0aW9ucyB0aGF0IGhlbHBzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB5b3VyIGRlc2t0b3AgZW52aXJvbm1lbnQsIG9yIHlvdXIgb3duIHNoZWxsIGNvbW1hbmRzLlxuXG5TaWduaWZpY2FudCBwYXJ0IG9mIGF2YWlsYWJsZSBhY3Rpb25zIGFyZSB2aXN1YWwgYWRqdXN0bWVudHMgKGNvbnRyYXN0LCBicmlnaHRuZXNzLCBvcGFjaXR5KSBhbmQgY29sb3IgZmlsdGVycyAocmVkLCBncmVlbiwgZGVzYXR1cmF0ZSwgbGlnaHRuZXNzIGFuZCBjb2xvciBpbnZlcnNpb25zKSAsIGluY2x1ZGluZyBjb3JyZWN0aW9uIGZpbHRlcnMgZm9yIGNvbG9yYmxpbmQgdXNlcnMgYW5kIGNiIHNpbXVsYXRpb24gZmlsdGVycyBmb3IgZGV2ZWxvcGVycy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM3LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMiIKfQ=="},
     "41": {"version": "37", "sha256": "0jsnvrics52wq50y4bslix8kbpiwbkj56mjqh6mvqxfpk2a4mx94", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQgY2FwYWJpbGl0aWVzLlxuTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIG1vbml0b3IgY29ybmVycy9lZGdlcyBvciBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXRzIGNhbiB0cmlnZ2VyIGFueSBvZiBkb3plbnMgYnVpbHQtaW4gYWN0aW9ucyB0aGF0IGhlbHBzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB5b3VyIGRlc2t0b3AgZW52aXJvbm1lbnQsIG9yIHlvdXIgb3duIHNoZWxsIGNvbW1hbmRzLlxuXG5TaWduaWZpY2FudCBwYXJ0IG9mIGF2YWlsYWJsZSBhY3Rpb25zIGFyZSB2aXN1YWwgYWRqdXN0bWVudHMgKGNvbnRyYXN0LCBicmlnaHRuZXNzLCBvcGFjaXR5KSBhbmQgY29sb3IgZmlsdGVycyAocmVkLCBncmVlbiwgZGVzYXR1cmF0ZSwgbGlnaHRuZXNzIGFuZCBjb2xvciBpbnZlcnNpb25zKSAsIGluY2x1ZGluZyBjb3JyZWN0aW9uIGZpbHRlcnMgZm9yIGNvbG9yYmxpbmQgdXNlcnMgYW5kIGNiIHNpbXVsYXRpb24gZmlsdGVycyBmb3IgZGV2ZWxvcGVycy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM3LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMiIKfQ=="},
@@ -3468,7 +3522,7 @@
     "38": {"version": "1", "sha256": "1awjnic8zca2f6viah2l4ai0pyfdyisxna9ys1zzpya11rwj6jk7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdGhhdCBhbGxvd3MgeW91IGRvIGhhdmUgaW5kZXBlbmRlbnQgYXBwIHN3aXRjaGVyIChhbHQtdGFiKSBmb3IgZWFjaCB3b3Jrc3BhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHJpdmF0ZS1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiUHJpdmF0ZSBTd2l0Y2hlciIsCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wcml2YXRlLXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tIiwKICAidXVpZCI6ICJwcml2YXRlLXN3aXRjaGVyQGR6aWJhbi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"},
     "40": {"version": "1", "sha256": "1awjnic8zca2f6viah2l4ai0pyfdyisxna9ys1zzpya11rwj6jk7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdGhhdCBhbGxvd3MgeW91IGRvIGhhdmUgaW5kZXBlbmRlbnQgYXBwIHN3aXRjaGVyIChhbHQtdGFiKSBmb3IgZWFjaCB3b3Jrc3BhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHJpdmF0ZS1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiUHJpdmF0ZSBTd2l0Y2hlciIsCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wcml2YXRlLXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tIiwKICAidXVpZCI6ICJwcml2YXRlLXN3aXRjaGVyQGR6aWJhbi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}
   }}
-, {"uuid": "colosseum@sereneblue", "name": "Colosseum", "pname": "colosseum", "description": "View live scores for your favorite sports teams.", "link": "https://extensions.gnome.org/extension/4207/colosseum/", "shell_version_map": {
+, {"uuid": "colosseum@sereneblue", "name": "Colosseum", "pname": "colosseum", "description": "View live scores for your favorite sports teams", "link": "https://extensions.gnome.org/extension/4207/colosseum/", "shell_version_map": {
     "40": {"version": "31", "sha256": "1c7753fyqqh8x3hnfahpqjwiqil8kirxcfkmm7z39pl7iairs0zs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvc3NldW0iLAogICJ1dWlkIjogImNvbG9zc2V1bUBzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMxCn0="},
     "41": {"version": "31", "sha256": "1c7753fyqqh8x3hnfahpqjwiqil8kirxcfkmm7z39pl7iairs0zs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvc3NldW0iLAogICJ1dWlkIjogImNvbG9zc2V1bUBzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMxCn0="},
     "42": {"version": "31", "sha256": "1c7753fyqqh8x3hnfahpqjwiqil8kirxcfkmm7z39pl7iairs0zs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvc3NldW0iLAogICJ1dWlkIjogImNvbG9zc2V1bUBzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMxCn0="},
@@ -3480,14 +3534,14 @@
 , {"uuid": "gnome-plat-workspace@stonegate.me", "name": "Gnome 40 Flat Workspace", "pname": "gnome-40-plat-workspace", "description": "Remove shadow for workspace background in gnome 40.\nSource code https://github.com/stonega/gnome-extension-flat-workspace", "link": "https://extensions.gnome.org/extension/4215/gnome-40-plat-workspace/", "shell_version_map": {
     "40": {"version": "3", "sha256": "0ly2dab9c0l7w1axnqs7xk2szd5jm2ifgniz2snw5mwkr5pw76nb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBzaGFkb3cgZm9yIHdvcmtzcGFjZSBiYWNrZ3JvdW5kIGluIGdub21lIDQwLlxuU291cmNlIGNvZGUgaHR0cHM6Ly9naXRodWIuY29tL3N0b25lZ2EvZ25vbWUtZXh0ZW5zaW9uLWZsYXQtd29ya3NwYWNlIiwKICAibmFtZSI6ICJHbm9tZSA0MCBGbGF0IFdvcmtzcGFjZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1wbGF0LXdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZ25vbWUtcGxhdC13b3Jrc3BhY2VAc3RvbmVnYXRlLm1lIiwKICAidmVyc2lvbiI6IDMKfQ=="}
   }}
-, {"uuid": "hotedge@jonathan.jdoda.ca", "name": "Hot Edge", "pname": "hot-edge", "description": "Add a hot edge that activates the overview to the bottom of the screen. This minimizes the pointer travel required to access the dash when using the new GNOME Shell 40 overview layout.\n\nNow with preference dialog!\n\nYou can find more documentation at https://github.com/jdoda/hotedge/blob/main/README.md and report issues at https://github.com/jdoda/hotedge/issues .", "link": "https://extensions.gnome.org/extension/4222/hot-edge/", "shell_version_map": {
+, {"uuid": "hotedge@jonathan.jdoda.ca", "name": "Hot Edge", "pname": "hot-edge", "description": "Add a hot edge that activates the overview to the bottom of the screen. This provides a better mouse-driven workflow and can serve as an alternative to a dock.", "link": "https://extensions.gnome.org/extension/4222/hot-edge/", "shell_version_map": {
     "40": {"version": "17", "sha256": "1k1yr4i438afqrm9m94a7y6qnxf38jcbjiq2m15v82ynrcknlzwv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGhvdCBlZGdlIHRoYXQgYWN0aXZhdGVzIHRoZSBvdmVydmlldyB0byB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uIFRoaXMgbWluaW1pemVzIHRoZSBwb2ludGVyIHRyYXZlbCByZXF1aXJlZCB0byBhY2Nlc3MgdGhlIGRhc2ggd2hlbiB1c2luZyB0aGUgbmV3IEdOT01FIFNoZWxsIDQwIG92ZXJ2aWV3IGxheW91dC5cblxuTm93IHdpdGggcHJlZmVyZW5jZSBkaWFsb2chXG5cbllvdSBjYW4gZmluZCBtb3JlIGRvY3VtZW50YXRpb24gYXQgaHR0cHM6Ly9naXRodWIuY29tL2pkb2RhL2hvdGVkZ2UvYmxvYi9tYWluL1JFQURNRS5tZCBhbmQgcmVwb3J0IGlzc3VlcyBhdCBodHRwczovL2dpdGh1Yi5jb20vamRvZGEvaG90ZWRnZS9pc3N1ZXMgLiIsCiAgIm5hbWUiOiAiSG90IEVkZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pkb2RhL2hvdGVkZ2UiLAogICJ1dWlkIjogImhvdGVkZ2VAam9uYXRoYW4uamRvZGEuY2EiLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
     "41": {"version": "17", "sha256": "1k1yr4i438afqrm9m94a7y6qnxf38jcbjiq2m15v82ynrcknlzwv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGhvdCBlZGdlIHRoYXQgYWN0aXZhdGVzIHRoZSBvdmVydmlldyB0byB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uIFRoaXMgbWluaW1pemVzIHRoZSBwb2ludGVyIHRyYXZlbCByZXF1aXJlZCB0byBhY2Nlc3MgdGhlIGRhc2ggd2hlbiB1c2luZyB0aGUgbmV3IEdOT01FIFNoZWxsIDQwIG92ZXJ2aWV3IGxheW91dC5cblxuTm93IHdpdGggcHJlZmVyZW5jZSBkaWFsb2chXG5cbllvdSBjYW4gZmluZCBtb3JlIGRvY3VtZW50YXRpb24gYXQgaHR0cHM6Ly9naXRodWIuY29tL2pkb2RhL2hvdGVkZ2UvYmxvYi9tYWluL1JFQURNRS5tZCBhbmQgcmVwb3J0IGlzc3VlcyBhdCBodHRwczovL2dpdGh1Yi5jb20vamRvZGEvaG90ZWRnZS9pc3N1ZXMgLiIsCiAgIm5hbWUiOiAiSG90IEVkZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pkb2RhL2hvdGVkZ2UiLAogICJ1dWlkIjogImhvdGVkZ2VAam9uYXRoYW4uamRvZGEuY2EiLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
     "42": {"version": "17", "sha256": "1k1yr4i438afqrm9m94a7y6qnxf38jcbjiq2m15v82ynrcknlzwv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGhvdCBlZGdlIHRoYXQgYWN0aXZhdGVzIHRoZSBvdmVydmlldyB0byB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uIFRoaXMgbWluaW1pemVzIHRoZSBwb2ludGVyIHRyYXZlbCByZXF1aXJlZCB0byBhY2Nlc3MgdGhlIGRhc2ggd2hlbiB1c2luZyB0aGUgbmV3IEdOT01FIFNoZWxsIDQwIG92ZXJ2aWV3IGxheW91dC5cblxuTm93IHdpdGggcHJlZmVyZW5jZSBkaWFsb2chXG5cbllvdSBjYW4gZmluZCBtb3JlIGRvY3VtZW50YXRpb24gYXQgaHR0cHM6Ly9naXRodWIuY29tL2pkb2RhL2hvdGVkZ2UvYmxvYi9tYWluL1JFQURNRS5tZCBhbmQgcmVwb3J0IGlzc3VlcyBhdCBodHRwczovL2dpdGh1Yi5jb20vamRvZGEvaG90ZWRnZS9pc3N1ZXMgLiIsCiAgIm5hbWUiOiAiSG90IEVkZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pkb2RhL2hvdGVkZ2UiLAogICJ1dWlkIjogImhvdGVkZ2VAam9uYXRoYW4uamRvZGEuY2EiLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
     "43": {"version": "17", "sha256": "1k1yr4i438afqrm9m94a7y6qnxf38jcbjiq2m15v82ynrcknlzwv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGhvdCBlZGdlIHRoYXQgYWN0aXZhdGVzIHRoZSBvdmVydmlldyB0byB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uIFRoaXMgbWluaW1pemVzIHRoZSBwb2ludGVyIHRyYXZlbCByZXF1aXJlZCB0byBhY2Nlc3MgdGhlIGRhc2ggd2hlbiB1c2luZyB0aGUgbmV3IEdOT01FIFNoZWxsIDQwIG92ZXJ2aWV3IGxheW91dC5cblxuTm93IHdpdGggcHJlZmVyZW5jZSBkaWFsb2chXG5cbllvdSBjYW4gZmluZCBtb3JlIGRvY3VtZW50YXRpb24gYXQgaHR0cHM6Ly9naXRodWIuY29tL2pkb2RhL2hvdGVkZ2UvYmxvYi9tYWluL1JFQURNRS5tZCBhbmQgcmVwb3J0IGlzc3VlcyBhdCBodHRwczovL2dpdGh1Yi5jb20vamRvZGEvaG90ZWRnZS9pc3N1ZXMgLiIsCiAgIm5hbWUiOiAiSG90IEVkZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pkb2RhL2hvdGVkZ2UiLAogICJ1dWlkIjogImhvdGVkZ2VAam9uYXRoYW4uamRvZGEuY2EiLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
     "44": {"version": "17", "sha256": "1k1yr4i438afqrm9m94a7y6qnxf38jcbjiq2m15v82ynrcknlzwv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGhvdCBlZGdlIHRoYXQgYWN0aXZhdGVzIHRoZSBvdmVydmlldyB0byB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uIFRoaXMgbWluaW1pemVzIHRoZSBwb2ludGVyIHRyYXZlbCByZXF1aXJlZCB0byBhY2Nlc3MgdGhlIGRhc2ggd2hlbiB1c2luZyB0aGUgbmV3IEdOT01FIFNoZWxsIDQwIG92ZXJ2aWV3IGxheW91dC5cblxuTm93IHdpdGggcHJlZmVyZW5jZSBkaWFsb2chXG5cbllvdSBjYW4gZmluZCBtb3JlIGRvY3VtZW50YXRpb24gYXQgaHR0cHM6Ly9naXRodWIuY29tL2pkb2RhL2hvdGVkZ2UvYmxvYi9tYWluL1JFQURNRS5tZCBhbmQgcmVwb3J0IGlzc3VlcyBhdCBodHRwczovL2dpdGh1Yi5jb20vamRvZGEvaG90ZWRnZS9pc3N1ZXMgLiIsCiAgIm5hbWUiOiAiSG90IEVkZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pkb2RhL2hvdGVkZ2UiLAogICJ1dWlkIjogImhvdGVkZ2VAam9uYXRoYW4uamRvZGEuY2EiLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
-    "45": {"version": "23", "sha256": "0s2f2a8slwl8w9387w1hq19fj19mjbb752nrwylfcg947afsv96g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGhvdCBlZGdlIHRoYXQgYWN0aXZhdGVzIHRoZSBvdmVydmlldyB0byB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uIFRoaXMgbWluaW1pemVzIHRoZSBwb2ludGVyIHRyYXZlbCByZXF1aXJlZCB0byBhY2Nlc3MgdGhlIGRhc2ggd2hlbiB1c2luZyB0aGUgbmV3IEdOT01FIFNoZWxsIDQwIG92ZXJ2aWV3IGxheW91dC5cblxuTm93IHdpdGggcHJlZmVyZW5jZSBkaWFsb2chXG5cbllvdSBjYW4gZmluZCBtb3JlIGRvY3VtZW50YXRpb24gYXQgaHR0cHM6Ly9naXRodWIuY29tL2pkb2RhL2hvdGVkZ2UvYmxvYi9tYWluL1JFQURNRS5tZCBhbmQgcmVwb3J0IGlzc3VlcyBhdCBodHRwczovL2dpdGh1Yi5jb20vamRvZGEvaG90ZWRnZS9pc3N1ZXMgLiIsCiAgIm5hbWUiOiAiSG90IEVkZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaG90ZWRnZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamRvZGEvaG90ZWRnZSIsCiAgInV1aWQiOiAiaG90ZWRnZUBqb25hdGhhbi5qZG9kYS5jYSIsCiAgInZlcnNpb24iOiAyMwp9"},
-    "46": {"version": "23", "sha256": "0s2f2a8slwl8w9387w1hq19fj19mjbb752nrwylfcg947afsv96g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGhvdCBlZGdlIHRoYXQgYWN0aXZhdGVzIHRoZSBvdmVydmlldyB0byB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uIFRoaXMgbWluaW1pemVzIHRoZSBwb2ludGVyIHRyYXZlbCByZXF1aXJlZCB0byBhY2Nlc3MgdGhlIGRhc2ggd2hlbiB1c2luZyB0aGUgbmV3IEdOT01FIFNoZWxsIDQwIG92ZXJ2aWV3IGxheW91dC5cblxuTm93IHdpdGggcHJlZmVyZW5jZSBkaWFsb2chXG5cbllvdSBjYW4gZmluZCBtb3JlIGRvY3VtZW50YXRpb24gYXQgaHR0cHM6Ly9naXRodWIuY29tL2pkb2RhL2hvdGVkZ2UvYmxvYi9tYWluL1JFQURNRS5tZCBhbmQgcmVwb3J0IGlzc3VlcyBhdCBodHRwczovL2dpdGh1Yi5jb20vamRvZGEvaG90ZWRnZS9pc3N1ZXMgLiIsCiAgIm5hbWUiOiAiSG90IEVkZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaG90ZWRnZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamRvZGEvaG90ZWRnZSIsCiAgInV1aWQiOiAiaG90ZWRnZUBqb25hdGhhbi5qZG9kYS5jYSIsCiAgInZlcnNpb24iOiAyMwp9"}
+    "45": {"version": "24", "sha256": "00pih39sjkk0qhp32znsh2nmm2samvpic4bz9ljdqnvnjsl1hvap", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGhvdCBlZGdlIHRoYXQgYWN0aXZhdGVzIHRoZSBvdmVydmlldyB0byB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uIiwKICAibmFtZSI6ICJIb3QgRWRnZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ob3RlZGdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZG9kYS9ob3RlZGdlIiwKICAidXVpZCI6ICJob3RlZGdlQGpvbmF0aGFuLmpkb2RhLmNhIiwKICAidmVyc2lvbiI6IDI0Cn0="},
+    "46": {"version": "24", "sha256": "00pih39sjkk0qhp32znsh2nmm2samvpic4bz9ljdqnvnjsl1hvap", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGhvdCBlZGdlIHRoYXQgYWN0aXZhdGVzIHRoZSBvdmVydmlldyB0byB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uIiwKICAibmFtZSI6ICJIb3QgRWRnZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ob3RlZGdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZG9kYS9ob3RlZGdlIiwKICAidXVpZCI6ICJob3RlZGdlQGpvbmF0aGFuLmpkb2RhLmNhIiwKICAidmVyc2lvbiI6IDI0Cn0="}
   }}
 , {"uuid": "gnome-citeurl-search-provider@raindrum.github.io", "name": "Legal Citation Search", "pname": "gnome-citeurl-search-provider", "description": "This extension lets you look up U.S. state and federal laws and court cases by typing citations (like \"42 USC 1983\" or \"U.S. Constitution Art. I, Sec. 3\") into the search bar.\nBy default, the search supports the U.S. Code and federal constitution, as well as nearly all codified state laws and constitutions, among other sources of law. You can also add more types of citation by following the instructions on the GitHub page.", "link": "https://extensions.gnome.org/extension/4225/gnome-citeurl-search-provider/", "shell_version_map": {
     "38": {"version": "6", "sha256": "024d98642smciv5n2vc4l2f8rglfrv180paj1g2rrq9k4pvg6yym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IGxvb2sgdXAgVS5TLiBzdGF0ZSBhbmQgZmVkZXJhbCBsYXdzIGFuZCBjb3VydCBjYXNlcyBieSB0eXBpbmcgY2l0YXRpb25zIChsaWtlIFwiNDIgVVNDIDE5ODNcIiBvciBcIlUuUy4gQ29uc3RpdHV0aW9uIEFydC4gSSwgU2VjLiAzXCIpIGludG8gdGhlIHNlYXJjaCBiYXIuXG5CeSBkZWZhdWx0LCB0aGUgc2VhcmNoIHN1cHBvcnRzIHRoZSBVLlMuIENvZGUgYW5kIGZlZGVyYWwgY29uc3RpdHV0aW9uLCBhcyB3ZWxsIGFzIG5lYXJseSBhbGwgY29kaWZpZWQgc3RhdGUgbGF3cyBhbmQgY29uc3RpdHV0aW9ucywgYW1vbmcgb3RoZXIgc291cmNlcyBvZiBsYXcuIFlvdSBjYW4gYWxzbyBhZGQgbW9yZSB0eXBlcyBvZiBjaXRhdGlvbiBieSBmb2xsb3dpbmcgdGhlIGluc3RydWN0aW9ucyBvbiB0aGUgR2l0SHViIHBhZ2UuIiwKICAibmFtZSI6ICJMZWdhbCBDaXRhdGlvbiBTZWFyY2giLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY2l0ZXVybC1zZWFyY2gtcHJvdmlkZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmFpbmRydW0vZ25vbWUtY2l0ZXVybC1zZWFyY2gtcHJvdmlkZXIiLAogICJ1dWlkIjogImdub21lLWNpdGV1cmwtc2VhcmNoLXByb3ZpZGVyQHJhaW5kcnVtLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2Cn0="},
@@ -3622,10 +3676,11 @@
     "43": {"version": "6", "sha256": "0f2lj11bk2qc5zr4jy4szsnhd6lrm06z4mm297k5wx2k8pxcfrjw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIG9uLXNjcmVlbiBrZXlib2FyZCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHRvdWNoIG1vZGUgaXMgZW5hYmxlZCIsCiAgIm5hbWUiOiAiKFVOTUFJTlRBSU5FRCkgRm9yY2UgU2hvdyBPU0siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vd2FybmluZ25vbnBvdGFibGV3YXRlci9mb3JjZS1zaG93LW9zayIsCiAgInV1aWQiOiAiZm9yY2Utc2hvdy1vc2tAYnJ1aC5sdGQiLAogICJ2ZXJzaW9uIjogNgp9"}
   }}
 , {"uuid": "alt-tab-active-windows@github.com", "name": "Alt-Tab Active Windows", "pname": "alt-tab-active-windows", "description": "Only show active(not minimized) windows on Alt-Tab", "link": "https://extensions.gnome.org/extension/4322/alt-tab-active-windows/", "shell_version_map": {
-    "40": {"version": "2", "sha256": "1as10k3m66kalwskr3awq0zila7j2n0xyn7nfill2in8kl82nxms", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9ubHkgc2hvdyBhY3RpdmUobm90IG1pbmltaXplZCkgd2luZG93cyBvbiBBbHQtVGFiIiwKICAibmFtZSI6ICJBbHQtVGFiIEFjdGl2ZSBXaW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbnRlaGVtZXJzb24vYWx0LXRhYi1hY3RpdmUtd2luZG93cyIsCiAgInV1aWQiOiAiYWx0LXRhYi1hY3RpdmUtd2luZG93c0BnaXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
-    "41": {"version": "2", "sha256": "1as10k3m66kalwskr3awq0zila7j2n0xyn7nfill2in8kl82nxms", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9ubHkgc2hvdyBhY3RpdmUobm90IG1pbmltaXplZCkgd2luZG93cyBvbiBBbHQtVGFiIiwKICAibmFtZSI6ICJBbHQtVGFiIEFjdGl2ZSBXaW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbnRlaGVtZXJzb24vYWx0LXRhYi1hY3RpdmUtd2luZG93cyIsCiAgInV1aWQiOiAiYWx0LXRhYi1hY3RpdmUtd2luZG93c0BnaXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
-    "42": {"version": "2", "sha256": "1as10k3m66kalwskr3awq0zila7j2n0xyn7nfill2in8kl82nxms", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9ubHkgc2hvdyBhY3RpdmUobm90IG1pbmltaXplZCkgd2luZG93cyBvbiBBbHQtVGFiIiwKICAibmFtZSI6ICJBbHQtVGFiIEFjdGl2ZSBXaW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbnRlaGVtZXJzb24vYWx0LXRhYi1hY3RpdmUtd2luZG93cyIsCiAgInV1aWQiOiAiYWx0LXRhYi1hY3RpdmUtd2luZG93c0BnaXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
-    "43": {"version": "2", "sha256": "1as10k3m66kalwskr3awq0zila7j2n0xyn7nfill2in8kl82nxms", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9ubHkgc2hvdyBhY3RpdmUobm90IG1pbmltaXplZCkgd2luZG93cyBvbiBBbHQtVGFiIiwKICAibmFtZSI6ICJBbHQtVGFiIEFjdGl2ZSBXaW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbnRlaGVtZXJzb24vYWx0LXRhYi1hY3RpdmUtd2luZG93cyIsCiAgInV1aWQiOiAiYWx0LXRhYi1hY3RpdmUtd2luZG93c0BnaXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}
+    "40": {"version": "3", "sha256": "1803ywl8xwb1ksmb7j5ija37gc3msp8y0gdis44zpapjgrczxbwm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9ubHkgc2hvdyBhY3RpdmUobm90IG1pbmltaXplZCkgd2luZG93cyBvbiBBbHQtVGFiIiwKICAibmFtZSI6ICJBbHQtVGFiIEFjdGl2ZSBXaW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW50ZWhlbWVyc29uL2FsdC10YWItYWN0aXZlLXdpbmRvd3MiLAogICJ1dWlkIjogImFsdC10YWItYWN0aXZlLXdpbmRvd3NAZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="},
+    "41": {"version": "3", "sha256": "1803ywl8xwb1ksmb7j5ija37gc3msp8y0gdis44zpapjgrczxbwm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9ubHkgc2hvdyBhY3RpdmUobm90IG1pbmltaXplZCkgd2luZG93cyBvbiBBbHQtVGFiIiwKICAibmFtZSI6ICJBbHQtVGFiIEFjdGl2ZSBXaW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW50ZWhlbWVyc29uL2FsdC10YWItYWN0aXZlLXdpbmRvd3MiLAogICJ1dWlkIjogImFsdC10YWItYWN0aXZlLXdpbmRvd3NAZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="},
+    "42": {"version": "3", "sha256": "1803ywl8xwb1ksmb7j5ija37gc3msp8y0gdis44zpapjgrczxbwm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9ubHkgc2hvdyBhY3RpdmUobm90IG1pbmltaXplZCkgd2luZG93cyBvbiBBbHQtVGFiIiwKICAibmFtZSI6ICJBbHQtVGFiIEFjdGl2ZSBXaW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW50ZWhlbWVyc29uL2FsdC10YWItYWN0aXZlLXdpbmRvd3MiLAogICJ1dWlkIjogImFsdC10YWItYWN0aXZlLXdpbmRvd3NAZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="},
+    "43": {"version": "3", "sha256": "1803ywl8xwb1ksmb7j5ija37gc3msp8y0gdis44zpapjgrczxbwm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9ubHkgc2hvdyBhY3RpdmUobm90IG1pbmltaXplZCkgd2luZG93cyBvbiBBbHQtVGFiIiwKICAibmFtZSI6ICJBbHQtVGFiIEFjdGl2ZSBXaW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW50ZWhlbWVyc29uL2FsdC10YWItYWN0aXZlLXdpbmRvd3MiLAogICJ1dWlkIjogImFsdC10YWItYWN0aXZlLXdpbmRvd3NAZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="},
+    "44": {"version": "3", "sha256": "1803ywl8xwb1ksmb7j5ija37gc3msp8y0gdis44zpapjgrczxbwm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9ubHkgc2hvdyBhY3RpdmUobm90IG1pbmltaXplZCkgd2luZG93cyBvbiBBbHQtVGFiIiwKICAibmFtZSI6ICJBbHQtVGFiIEFjdGl2ZSBXaW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW50ZWhlbWVyc29uL2FsdC10YWItYWN0aXZlLXdpbmRvd3MiLAogICJ1dWlkIjogImFsdC10YWItYWN0aXZlLXdpbmRvd3NAZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}
   }}
 , {"uuid": "hide-activities-button@nmingori.gnome-shell-extensions.org", "name": "Hide Activities Button", "pname": "hide-activities-button", "description": "Hide Activities Button on the top panel. For Gnome 40 or 3.6+", "link": "https://extensions.gnome.org/extension/4325/hide-activities-button/", "shell_version_map": {
     "38": {"version": "1", "sha256": "0644h9cqy07h1fgr9wcjp4agvszrcpk6f0yr725hxfil600k5m9b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgQWN0aXZpdGllcyBCdXR0b24gb24gdGhlIHRvcCBwYW5lbC4gRm9yIEdub21lIDQwIG9yIDMuNisiLAogICJuYW1lIjogIkhpZGUgQWN0aXZpdGllcyBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuNiIsCiAgICAiMy44IiwKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25taW5nb3JpL2dub21lLWhpZGUtYWN0aXRpdmllcy1idXR0b24iLAogICJ1dWlkIjogImhpZGUtYWN0aXZpdGllcy1idXR0b25Abm1pbmdvcmkuZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5vcmciLAogICJ2ZXJzaW9uIjogMQp9"},
@@ -3667,7 +3722,8 @@
     "42": {"version": "5", "sha256": "0hp3c7sq1kaxagiw88gm4rsqvi9mw83r3584sh8i7chrchjzdxxg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdlaWwvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bWJsZS1waW5nIiwKICAidXVpZCI6ICJtdW1ibGUtcGluZ0BtYXdlaWwuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="},
     "43": {"version": "5", "sha256": "0hp3c7sq1kaxagiw88gm4rsqvi9mw83r3584sh8i7chrchjzdxxg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdlaWwvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bWJsZS1waW5nIiwKICAidXVpZCI6ICJtdW1ibGUtcGluZ0BtYXdlaWwuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="},
     "44": {"version": "5", "sha256": "0hp3c7sq1kaxagiw88gm4rsqvi9mw83r3584sh8i7chrchjzdxxg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdlaWwvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bWJsZS1waW5nIiwKICAidXVpZCI6ICJtdW1ibGUtcGluZ0BtYXdlaWwuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="},
-    "45": {"version": "7", "sha256": "1fk0nrf7d95jrhav8dj54rnb845ynyqg2mry8vpiyfcwb3mgfl12", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hd2VpbC9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXVtYmxlLXBpbmciLAogICJ1dWlkIjogIm11bWJsZS1waW5nQG1hd2VpbC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}
+    "45": {"version": "7", "sha256": "1fk0nrf7d95jrhav8dj54rnb845ynyqg2mry8vpiyfcwb3mgfl12", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hd2VpbC9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXVtYmxlLXBpbmciLAogICJ1dWlkIjogIm11bWJsZS1waW5nQG1hd2VpbC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
+    "46": {"version": "9", "sha256": "1rcp6nrfqk4di4m7angbh36pr6as57d8wkrq5c7av04s6aml9lhc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hd2VpbC9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXVtYmxlLXBpbmciLAogICJ1dWlkIjogIm11bWJsZS1waW5nQG1hd2VpbC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="}
   }}
 , {"uuid": "simply.workspaces@andyrichardson.dev", "name": "Simply Workspaces", "pname": "simply-workspaces", "description": "Workspace indication with an i3/polybar style.", "link": "https://extensions.gnome.org/extension/4343/simply-workspaces/", "shell_version_map": {
     "40": {"version": "7", "sha256": "0s3a4pzmq6wycnwv0gn8sjiwqxa3csssb136c8srghdraicvq3f0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0aW9uIHdpdGggYW4gaTMvcG9seWJhciBzdHlsZS4iLAogICJuYW1lIjogIlNpbXBseSBXb3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FuZHlyaWNoYXJkc29uL3NpbXBseS13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJzaW1wbHkud29ya3NwYWNlc0BhbmR5cmljaGFyZHNvbi5kZXYiLAogICJ2ZXJzaW9uIjogNwp9"},
@@ -3722,10 +3778,10 @@
     "40": {"version": "19", "sha256": "1jagvd6a4xw0vm18qi6czfglp16bywms1y55vii2dwvb1xlm4sjz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV0ZG93bnRpbWVyLWRlbWluZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9EZW1pbmRlci9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQGRlbWluZGVyIiwKICAidmVyc2lvbiI6IDE5Cn0="},
     "41": {"version": "19", "sha256": "1jagvd6a4xw0vm18qi6czfglp16bywms1y55vii2dwvb1xlm4sjz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV0ZG93bnRpbWVyLWRlbWluZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9EZW1pbmRlci9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQGRlbWluZGVyIiwKICAidmVyc2lvbiI6IDE5Cn0="},
     "42": {"version": "31", "sha256": "1w0l81g1l21f9f6ga53dlp7y1wg5s1nxz67y990ywh9sp0n4dkac", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidXNlciIsCiAgICAidW5sb2NrLWRpYWxvZyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1dGRvd250aW1lci1kZW1pbmRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9EZW1pbmRlci9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQGRlbWluZGVyIiwKICAidmVyc2lvbiI6IDMxCn0="},
-    "43": {"version": "36", "sha256": "0f71payq0dvyyprrpl7yfzd5zq48kw26fd2vr36cjzcwrp9v6viz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidXNlciIsCiAgICAidW5sb2NrLWRpYWxvZyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1dGRvd250aW1lci1kZW1pbmRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRGVtaW5kZXIvU2h1dGRvd25UaW1lciIsCiAgInV1aWQiOiAiU2h1dGRvd25UaW1lckBkZW1pbmRlciIsCiAgInZlcnNpb24iOiAzNgp9"},
-    "44": {"version": "36", "sha256": "0f71payq0dvyyprrpl7yfzd5zq48kw26fd2vr36cjzcwrp9v6viz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidXNlciIsCiAgICAidW5sb2NrLWRpYWxvZyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1dGRvd250aW1lci1kZW1pbmRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRGVtaW5kZXIvU2h1dGRvd25UaW1lciIsCiAgInV1aWQiOiAiU2h1dGRvd25UaW1lckBkZW1pbmRlciIsCiAgInZlcnNpb24iOiAzNgp9"},
-    "45": {"version": "43", "sha256": "1yaj9rbkg4ijp4ki0x4qycfd28lmp4hjiyvgl71ldfsqqqaaqdbs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiU2h1dGRvd25UaW1lciIsCiAgIm5hbWUiOiAiU2h1dGRvd24gVGltZXIiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNodXRkb3dudGltZXItZGVtaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0RlbWluZGVyL1NodXRkb3duVGltZXIiLAogICJ1dWlkIjogIlNodXRkb3duVGltZXJAZGVtaW5kZXIiLAogICJ2ZXJzaW9uIjogNDMKfQ=="},
-    "46": {"version": "43", "sha256": "1yaj9rbkg4ijp4ki0x4qycfd28lmp4hjiyvgl71ldfsqqqaaqdbs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiU2h1dGRvd25UaW1lciIsCiAgIm5hbWUiOiAiU2h1dGRvd24gVGltZXIiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNodXRkb3dudGltZXItZGVtaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0RlbWluZGVyL1NodXRkb3duVGltZXIiLAogICJ1dWlkIjogIlNodXRkb3duVGltZXJAZGVtaW5kZXIiLAogICJ2ZXJzaW9uIjogNDMKfQ=="}
+    "43": {"version": "44", "sha256": "1r3c87nrpbf93b5clwm54f85hnp3xpbyi9faliq7p4l69w6hfkpk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidW5sb2NrLWRpYWxvZyIsCiAgICAidXNlciIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1dGRvd250aW1lci1kZW1pbmRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRGVtaW5kZXIvU2h1dGRvd25UaW1lciIsCiAgInV1aWQiOiAiU2h1dGRvd25UaW1lckBkZW1pbmRlciIsCiAgInZlcnNpb24iOiA0NAp9"},
+    "44": {"version": "44", "sha256": "1r3c87nrpbf93b5clwm54f85hnp3xpbyi9faliq7p4l69w6hfkpk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidW5sb2NrLWRpYWxvZyIsCiAgICAidXNlciIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1dGRvd250aW1lci1kZW1pbmRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRGVtaW5kZXIvU2h1dGRvd25UaW1lciIsCiAgInV1aWQiOiAiU2h1dGRvd25UaW1lckBkZW1pbmRlciIsCiAgInZlcnNpb24iOiA0NAp9"},
+    "45": {"version": "45", "sha256": "19s34qsbvynd6g0p917gnlabi45vy3an093lb7mnw658v9grskql", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiU2h1dGRvd25UaW1lciIsCiAgIm5hbWUiOiAiU2h1dGRvd24gVGltZXIiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNodXRkb3dudGltZXItZGVtaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0RlbWluZGVyL1NodXRkb3duVGltZXIiLAogICJ1dWlkIjogIlNodXRkb3duVGltZXJAZGVtaW5kZXIiLAogICJ2ZXJzaW9uIjogNDUKfQ=="},
+    "46": {"version": "45", "sha256": "19s34qsbvynd6g0p917gnlabi45vy3an093lb7mnw658v9grskql", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiU2h1dGRvd25UaW1lciIsCiAgIm5hbWUiOiAiU2h1dGRvd24gVGltZXIiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNodXRkb3dudGltZXItZGVtaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0RlbWluZGVyL1NodXRkb3duVGltZXIiLAogICJ1dWlkIjogIlNodXRkb3duVGltZXJAZGVtaW5kZXIiLAogICJ2ZXJzaW9uIjogNDUKfQ=="}
   }}
 , {"uuid": "docker_status2@gpouilloux", "name": "Docker Integration", "pname": "docker-integration", "description": "A status menu for managing docker containers.", "link": "https://extensions.gnome.org/extension/4374/docker-integration/", "shell_version_map": {
     "40": {"version": "1", "sha256": "1ia763h3wbc3d3p9ddb1b9rg5f486y5x3m2k4pblq9f9ca9cjrdy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIG1lbnUgZm9yIG1hbmFnaW5nIGRvY2tlciBjb250YWluZXJzLiIsCiAgIm5hbWUiOiAiRG9ja2VyIEludGVncmF0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ3BvdWlsbG91eC9nbm9tZS1zaGVsbC1leHRlbnNpb24tZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJfc3RhdHVzMkBncG91aWxsb3V4IiwKICAidmVyc2lvbiI6IDEKfQ=="}
@@ -3785,15 +3841,15 @@
     "41": {"version": "11", "sha256": "18x42bx758gpxq8w72yjajg05wmj8fc57qgrk2zl9hppvp5h321r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIG1hbmFnZSB5b3VyIGhvbWUgdHJhc2guIFlvdSBjYW4gbWFuYWdlIHRyYXNoIGl0ZW1zIGZyb20gdGhlIHBhbmVsIGFuZCBvcGVuIG9yIGVtcHR5IHRoZSB0cmFzaC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS10cmFzaCIsCiAgIm5hbWUiOiAiR25vbWUgVHJhc2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iMDBmL2dub21lLXRyYXNoIiwKICAidXVpZCI6ICJnbm9tZS10cmFzaEBiMDBmLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMQp9"},
     "42": {"version": "11", "sha256": "18x42bx758gpxq8w72yjajg05wmj8fc57qgrk2zl9hppvp5h321r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIG1hbmFnZSB5b3VyIGhvbWUgdHJhc2guIFlvdSBjYW4gbWFuYWdlIHRyYXNoIGl0ZW1zIGZyb20gdGhlIHBhbmVsIGFuZCBvcGVuIG9yIGVtcHR5IHRoZSB0cmFzaC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS10cmFzaCIsCiAgIm5hbWUiOiAiR25vbWUgVHJhc2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iMDBmL2dub21lLXRyYXNoIiwKICAidXVpZCI6ICJnbm9tZS10cmFzaEBiMDBmLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMQp9"}
   }}
-, {"uuid": "advanced-alt-tab@G-dH.github.com", "name": "AATWS (Advanced Alt-Tab Window Switcher)", "pname": "advanced-alttab-window-switcher", "description": "A highly customizable replacement for Alt/Super+Tab window/app switchers that offers a 'type to search' mode, various filtering and sorting options, workspace and monitor navigation, configurable hotkeys for navigation and window/app control, and an app launcher.\n\nAATWS allows configuring any mouse button and scroll wheel and can be used as a mouse-controlled 'dock'.\n\nPlease note that GNOME has three built-in window switcher popups, and this extension replaces all of them. The first one groups windows by applications and is used as the default in vanilla GNOME distributions. The second one offers a window list, and the third one displays windows of the currently focused application. You can set keyboard shortcuts for all the switchers in GNOME Settings application.\n\nFor more information and bug reports, please follow the link below.\n\nKeywords: alttab, search, find, window search, popup delay, applications, apps, dock, monitor, thumbnail, preview, move windows, launch app, switch, VIM.", "link": "https://extensions.gnome.org/extension/4412/advanced-alttab-window-switcher/", "shell_version_map": {
+, {"uuid": "advanced-alt-tab@G-dH.github.com", "name": "AATWS (Advanced Alt-Tab Window Switcher)", "pname": "advanced-alttab-window-switcher", "description": "A highly customizable replacement for Alt/Super+Tab window/app switchers that offers a 'type to search' mode, various filtering and sorting options, workspace and monitor navigation, configurable hotkeys for navigation and window/app control, and an app launcher.\n\nAATWS also provides mouse control  and can be used as a replacement for dock extensions in auto-hide configuration.\n\nPlease note that GNOME has three built-in window switcher popups, and this extension replaces all of them. The first one groups windows by applications and is used as the default in vanilla GNOME distributions. The second one offers a window list, and the third one displays windows of the currently focused application. You can set keyboard shortcuts for all the switchers in GNOME Settings application.\n\nFor more information and bug reports, please follow the link below.\n\nKeywords: alttab, search, find, window search, popup delay, applications, apps, dock, monitor, thumbnail, preview, move windows, launch app, switch, VIM.", "link": "https://extensions.gnome.org/extension/4412/advanced-alttab-window-switcher/", "shell_version_map": {
     "38": {"version": "52", "sha256": "1dc9rn040l1hxs9ihb5644cfajan6ksadrl713yfxk4cvjal74hm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93IHNlYXJjaCwgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCwgVklNLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZ2VvcmdkaCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MiwKICAidmVyc2lvbi1uYW1lIjogIjQ0LjkiCn0="},
     "40": {"version": "52", "sha256": "1dc9rn040l1hxs9ihb5644cfajan6ksadrl713yfxk4cvjal74hm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93IHNlYXJjaCwgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCwgVklNLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZ2VvcmdkaCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MiwKICAidmVyc2lvbi1uYW1lIjogIjQ0LjkiCn0="},
     "41": {"version": "52", "sha256": "1dc9rn040l1hxs9ihb5644cfajan6ksadrl713yfxk4cvjal74hm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93IHNlYXJjaCwgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCwgVklNLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZ2VvcmdkaCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MiwKICAidmVyc2lvbi1uYW1lIjogIjQ0LjkiCn0="},
     "42": {"version": "52", "sha256": "1dc9rn040l1hxs9ihb5644cfajan6ksadrl713yfxk4cvjal74hm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93IHNlYXJjaCwgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCwgVklNLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZ2VvcmdkaCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MiwKICAidmVyc2lvbi1uYW1lIjogIjQ0LjkiCn0="},
     "43": {"version": "52", "sha256": "1dc9rn040l1hxs9ihb5644cfajan6ksadrl713yfxk4cvjal74hm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93IHNlYXJjaCwgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCwgVklNLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZ2VvcmdkaCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MiwKICAidmVyc2lvbi1uYW1lIjogIjQ0LjkiCn0="},
     "44": {"version": "52", "sha256": "1dc9rn040l1hxs9ihb5644cfajan6ksadrl713yfxk4cvjal74hm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93IHNlYXJjaCwgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCwgVklNLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZ2VvcmdkaCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MiwKICAidmVyc2lvbi1uYW1lIjogIjQ0LjkiCn0="},
-    "45": {"version": "54", "sha256": "1n5qkfw1xp2gxq0x21869405wm619nl9w7dd6p24hjnl6szgx6vg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAibmFtZSI6ICJBQVRXUyAoQWR2YW5jZWQgQWx0LVRhYiBXaW5kb3cgU3dpdGNoZXIpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL2FkdmFuY2VkLWFsdHRhYi13aW5kb3ctc3dpdGNoZXIiLAogICJ1dWlkIjogImFkdmFuY2VkLWFsdC10YWJARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU0LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuMSIKfQ=="},
-    "46": {"version": "54", "sha256": "1n5qkfw1xp2gxq0x21869405wm619nl9w7dd6p24hjnl6szgx6vg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAibmFtZSI6ICJBQVRXUyAoQWR2YW5jZWQgQWx0LVRhYiBXaW5kb3cgU3dpdGNoZXIpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL2FkdmFuY2VkLWFsdHRhYi13aW5kb3ctc3dpdGNoZXIiLAogICJ1dWlkIjogImFkdmFuY2VkLWFsdC10YWJARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU0LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuMSIKfQ=="}
+    "45": {"version": "55", "sha256": "0kn5ix2xr5wyv0lqvrpvdjkvnkq9kvl883mss7cpna6k02fvrqpj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAibmFtZSI6ICJBQVRXUyAoQWR2YW5jZWQgQWx0LVRhYiBXaW5kb3cgU3dpdGNoZXIpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL2FkdmFuY2VkLWFsdHRhYi13aW5kb3ctc3dpdGNoZXIiLAogICJ1dWlkIjogImFkdmFuY2VkLWFsdC10YWJARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU1LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuMiIKfQ=="},
+    "46": {"version": "55", "sha256": "0kn5ix2xr5wyv0lqvrpvdjkvnkq9kvl883mss7cpna6k02fvrqpj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAibmFtZSI6ICJBQVRXUyAoQWR2YW5jZWQgQWx0LVRhYiBXaW5kb3cgU3dpdGNoZXIpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL2FkdmFuY2VkLWFsdHRhYi13aW5kb3ctc3dpdGNoZXIiLAogICJ1dWlkIjogImFkdmFuY2VkLWFsdC10YWJARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU1LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuMiIKfQ=="}
   }}
 , {"uuid": "improvedosk@nick-shmyrev.dev", "name": "Improved OSK", "pname": "improved-osk", "description": "Makes Gnome's OnScreen Keyboard more usable.\n\nFeatures:\n* Includes additional buttons: Arrow keys, Esc, Tab, Ctrl, Alt, Super, F1-12\n* Supports key combinations like `Ctrl + C`, `Alt + Tab`, `Ctrl + Shift + C`, `Super + A` etc.\n* Configurable keyboard size (landscape/portrait)\n* Statusbar indicator to toggle keyboard\n* Works in Gnome password modals\n* Works on Lock screen (see README for instructions)\n* Works on Login screen (see README for instructions)\n\nThis extension is a fork of https://extensions.gnome.org/extension/3330/improved-onscreen-keyboard/ by SebastianLuebke.", "link": "https://extensions.gnome.org/extension/4413/improved-osk/", "shell_version_map": {
     "38": {"version": "9", "sha256": "15wr4p47fyp5940zwk8mzxks76z56ykyzm6zrhd2pyhkxynl9cid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3MgT25TY3JlZW4gS2V5Ym9hcmQgbW9yZSB1c2FibGUuXG5cbkZlYXR1cmVzOlxuKiBJbmNsdWRlcyBhZGRpdGlvbmFsIGJ1dHRvbnM6IEFycm93IGtleXMsIEVzYywgVGFiLCBDdHJsLCBBbHQsIFN1cGVyLCBGMS0xMlxuKiBTdXBwb3J0cyBrZXkgY29tYmluYXRpb25zIGxpa2UgYEN0cmwgKyBDYCwgYEFsdCArIFRhYmAsIGBDdHJsICsgU2hpZnQgKyBDYCwgYFN1cGVyICsgQWAgZXRjLlxuKiBDb25maWd1cmFibGUga2V5Ym9hcmQgc2l6ZSAobGFuZHNjYXBlL3BvcnRyYWl0KVxuKiBTdGF0dXNiYXIgaW5kaWNhdG9yIHRvIHRvZ2dsZSBrZXlib2FyZFxuKiBXb3JrcyBpbiBHbm9tZSBwYXNzd29yZCBtb2RhbHNcbiogV29ya3Mgb24gTG9jayBzY3JlZW4gKHNlZSBSRUFETUUgZm9yIGluc3RydWN0aW9ucylcbiogV29ya3Mgb24gTG9naW4gc2NyZWVuIChzZWUgUkVBRE1FIGZvciBpbnN0cnVjdGlvbnMpXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGEgZm9yayBvZiBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8zMzMwL2ltcHJvdmVkLW9uc2NyZWVuLWtleWJvYXJkLyBieSBTZWJhc3RpYW5MdWVia2UuIiwKICAibmFtZSI6ICJJbXByb3ZlZCBPU0siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrLXNobXlyZXYvaW1wcm92ZWQtb3NrLWdub21lLWV4dCIsCiAgInV1aWQiOiAiaW1wcm92ZWRvc2tAbmljay1zaG15cmV2LmRldiIsCiAgInZlcnNpb24iOiA5Cn0="},
@@ -3847,7 +3903,8 @@
     "42": {"version": "16", "sha256": "0w34bvz909s3sdwk1wlpzdyn0l0a1i7ifbd6r75mm2bf4ypg905k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9yZ2FuaXplIHdpbmRvd3MgaW4gY3VzdG9taXphYmxlIHNuYXAgem9uZXMgbGlrZSBGYW5jeVpvbmVzIG9uIFdpbmRvd3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3NuYXBAbWljYWhvc2Jvcm5lIiwKICAibmFtZSI6ICJnU25hcCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nc25hcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vR25vbWVTbmFwRXh0ZW5zaW9ucy9nU25hcCIsCiAgInV1aWQiOiAiZ1NuYXBAbWljYWhvc2Jvcm5lIiwKICAidmVyc2lvbiI6IDE2Cn0="},
     "43": {"version": "16", "sha256": "0w34bvz909s3sdwk1wlpzdyn0l0a1i7ifbd6r75mm2bf4ypg905k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9yZ2FuaXplIHdpbmRvd3MgaW4gY3VzdG9taXphYmxlIHNuYXAgem9uZXMgbGlrZSBGYW5jeVpvbmVzIG9uIFdpbmRvd3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3NuYXBAbWljYWhvc2Jvcm5lIiwKICAibmFtZSI6ICJnU25hcCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nc25hcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vR25vbWVTbmFwRXh0ZW5zaW9ucy9nU25hcCIsCiAgInV1aWQiOiAiZ1NuYXBAbWljYWhvc2Jvcm5lIiwKICAidmVyc2lvbiI6IDE2Cn0="},
     "44": {"version": "16", "sha256": "0w34bvz909s3sdwk1wlpzdyn0l0a1i7ifbd6r75mm2bf4ypg905k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9yZ2FuaXplIHdpbmRvd3MgaW4gY3VzdG9taXphYmxlIHNuYXAgem9uZXMgbGlrZSBGYW5jeVpvbmVzIG9uIFdpbmRvd3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3NuYXBAbWljYWhvc2Jvcm5lIiwKICAibmFtZSI6ICJnU25hcCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nc25hcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vR25vbWVTbmFwRXh0ZW5zaW9ucy9nU25hcCIsCiAgInV1aWQiOiAiZ1NuYXBAbWljYWhvc2Jvcm5lIiwKICAidmVyc2lvbiI6IDE2Cn0="},
-    "45": {"version": "19", "sha256": "17ph6zd5kbfiyrd4fggs5fvpjpbd7983hm7glm3kv1hjsk6h4dsm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9yZ2FuaXplIHdpbmRvd3MgaW4gY3VzdG9taXphYmxlIHNuYXAgem9uZXMgbGlrZSBGYW5jeVpvbmVzIG9uIFdpbmRvd3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3NuYXBAbWljYWhvc2Jvcm5lIiwKICAibmFtZSI6ICJnU25hcCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nc25hcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Hbm9tZVNuYXBFeHRlbnNpb25zL2dTbmFwIiwKICAidXVpZCI6ICJnU25hcEBtaWNhaG9zYm9ybmUiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}
+    "45": {"version": "23", "sha256": "1apyx83isg9zlj1fa7xn22hslzszk6hqlb9hd3v64j9iag6nhwvw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9yZ2FuaXplIHdpbmRvd3MgaW4gY3VzdG9taXphYmxlIHNuYXAgem9uZXMgbGlrZSBGYW5jeVpvbmVzIG9uIFdpbmRvd3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3NuYXBAbWljYWhvc2Jvcm5lIiwKICAibmFtZSI6ICJnU25hcCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nc25hcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vR25vbWVTbmFwRXh0ZW5zaW9ucy9nU25hcCIsCiAgInV1aWQiOiAiZ1NuYXBAbWljYWhvc2Jvcm5lIiwKICAidmVyc2lvbiI6IDIzCn0="},
+    "46": {"version": "23", "sha256": "1apyx83isg9zlj1fa7xn22hslzszk6hqlb9hd3v64j9iag6nhwvw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9yZ2FuaXplIHdpbmRvd3MgaW4gY3VzdG9taXphYmxlIHNuYXAgem9uZXMgbGlrZSBGYW5jeVpvbmVzIG9uIFdpbmRvd3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3NuYXBAbWljYWhvc2Jvcm5lIiwKICAibmFtZSI6ICJnU25hcCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nc25hcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vR25vbWVTbmFwRXh0ZW5zaW9ucy9nU25hcCIsCiAgInV1aWQiOiAiZ1NuYXBAbWljYWhvc2Jvcm5lIiwKICAidmVyc2lvbiI6IDIzCn0="}
   }}
 , {"uuid": "appswitcheronlyoncurrentworkspace@ermesonsampaio.com", "name": "Alt + Tab only on current workspace", "pname": "alt-tab-only-on-current-workspace", "description": "Force alt + tab to switch only in the current workspace.", "link": "https://extensions.gnome.org/extension/4443/alt-tab-only-on-current-workspace/", "shell_version_map": {
     "40": {"version": "3", "sha256": "1jl7gi45gz9fliggkwdg44rdqcirh6qxfkvc639vbw2sgmpbmcvw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmNlIGFsdCArIHRhYiB0byBzd2l0Y2ggb25seSBpbiB0aGUgY3VycmVudCB3b3Jrc3BhY2UuIiwKICAibmFtZSI6ICJBbHQgKyBUYWIgb25seSBvbiBjdXJyZW50IHdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lcm1lc29uc2FtcGFpby9hcHAtc3dpdGNoZXItb25seS1vbi1jdXJyZW50LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiYXBwc3dpdGNoZXJvbmx5b25jdXJyZW50d29ya3NwYWNlQGVybWVzb25zYW1wYWlvLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}
@@ -3859,8 +3916,8 @@
     "42": {"version": "24", "sha256": "007yp741jl5n6bf1zi4h5w9zhbbm1gavzdgklmrwjj114r49dx2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXplZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuZm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlIGRlZmF1bHQgVGVybWluYWwgYW5kIFNvZnR3YXJlIGNlbnRlciBjYW4gYWxzbyBiZSBjaGFuZ2VkLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgLSBodHRwczovL2dpdGh1Yi5jb20vdG9mdXRlY2gvdG9mdW1lbnVcblxuVGhlIG9yaWdpbmFsIHByb2plY3QgaXMgbm8gbW9yZSBzdXBwb3J0ZWQgdGh1cyBJIG1hZGUgdGhpcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMjQsCiAgInZlcnNpb24tbmFtZSI6ICIyMC5sZWdhY3kiCn0="},
     "43": {"version": "24", "sha256": "007yp741jl5n6bf1zi4h5w9zhbbm1gavzdgklmrwjj114r49dx2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXplZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuZm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlIGRlZmF1bHQgVGVybWluYWwgYW5kIFNvZnR3YXJlIGNlbnRlciBjYW4gYWxzbyBiZSBjaGFuZ2VkLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgLSBodHRwczovL2dpdGh1Yi5jb20vdG9mdXRlY2gvdG9mdW1lbnVcblxuVGhlIG9yaWdpbmFsIHByb2plY3QgaXMgbm8gbW9yZSBzdXBwb3J0ZWQgdGh1cyBJIG1hZGUgdGhpcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMjQsCiAgInZlcnNpb24tbmFtZSI6ICIyMC5sZWdhY3kiCn0="},
     "44": {"version": "24", "sha256": "007yp741jl5n6bf1zi4h5w9zhbbm1gavzdgklmrwjj114r49dx2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXplZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuZm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlIGRlZmF1bHQgVGVybWluYWwgYW5kIFNvZnR3YXJlIGNlbnRlciBjYW4gYWxzbyBiZSBjaGFuZ2VkLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgLSBodHRwczovL2dpdGh1Yi5jb20vdG9mdXRlY2gvdG9mdW1lbnVcblxuVGhlIG9yaWdpbmFsIHByb2plY3QgaXMgbm8gbW9yZSBzdXBwb3J0ZWQgdGh1cyBJIG1hZGUgdGhpcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMjQsCiAgInZlcnNpb24tbmFtZSI6ICIyMC5sZWdhY3kiCn0="},
-    "45": {"version": "29", "sha256": "06ws3pv2yw9vb2qc97b7pd622a7dvamflvd19pr5633wsagd8sza", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXNlZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuRm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlICdBY3Rpdml0aWVzJyBpbmRpY2F0b3IgaXMgaGlkZGVuIGJ5IGRlZmF1bHQgYnV0IGNhbiBiZSBlbmFibGVkIHRocm91Z2ggc2V0dGluZ3MuXG5cblRoZSBkZWZhdWx0IFRlcm1pbmFsIGFuZCBTb2Z0d2FyZSBjZW50cmUgY2FuIGFsc28gYmUgY2hhbmdlZC5cblxuIEZvcmNlIFF1aXQgd29ya3Mgb24gV2F5bGFuZCBhbmQgWG9yZyIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiYXJ5YW4yMCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMjksCiAgInZlcnNpb24tbmFtZSI6ICIyMi40Igp9"},
-    "46": {"version": "29", "sha256": "06ws3pv2yw9vb2qc97b7pd622a7dvamflvd19pr5633wsagd8sza", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXNlZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuRm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlICdBY3Rpdml0aWVzJyBpbmRpY2F0b3IgaXMgaGlkZGVuIGJ5IGRlZmF1bHQgYnV0IGNhbiBiZSBlbmFibGVkIHRocm91Z2ggc2V0dGluZ3MuXG5cblRoZSBkZWZhdWx0IFRlcm1pbmFsIGFuZCBTb2Z0d2FyZSBjZW50cmUgY2FuIGFsc28gYmUgY2hhbmdlZC5cblxuIEZvcmNlIFF1aXQgd29ya3Mgb24gV2F5bGFuZCBhbmQgWG9yZyIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiYXJ5YW4yMCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMjksCiAgInZlcnNpb24tbmFtZSI6ICIyMi40Igp9"}
+    "45": {"version": "30", "sha256": "0jg3c8xi4vnwx7gwzmvjz4hly7b6gdgqy2r5ln40gng55yxf2sbx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXNlZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuRm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlICdBY3Rpdml0aWVzJyBpbmRpY2F0b3IgaXMgaGlkZGVuIGJ5IGRlZmF1bHQgYnV0IGNhbiBiZSBlbmFibGVkIHRocm91Z2ggc2V0dGluZ3MuXG5cblRoZSBkZWZhdWx0IFRlcm1pbmFsIGFuZCBTb2Z0d2FyZSBjZW50cmUgY2FuIGFsc28gYmUgY2hhbmdlZC5cblxuIEZvcmNlIFF1aXQgd29ya3Mgb24gV2F5bGFuZCBhbmQgWG9yZyIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiYXJ5YW4yMCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMzAsCiAgInZlcnNpb24tbmFtZSI6ICIyMi42Igp9"},
+    "46": {"version": "30", "sha256": "0jg3c8xi4vnwx7gwzmvjz4hly7b6gdgqy2r5ln40gng55yxf2sbx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXNlZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuRm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlICdBY3Rpdml0aWVzJyBpbmRpY2F0b3IgaXMgaGlkZGVuIGJ5IGRlZmF1bHQgYnV0IGNhbiBiZSBlbmFibGVkIHRocm91Z2ggc2V0dGluZ3MuXG5cblRoZSBkZWZhdWx0IFRlcm1pbmFsIGFuZCBTb2Z0d2FyZSBjZW50cmUgY2FuIGFsc28gYmUgY2hhbmdlZC5cblxuIEZvcmNlIFF1aXQgd29ya3Mgb24gV2F5bGFuZCBhbmQgWG9yZyIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiYXJ5YW4yMCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMzAsCiAgInZlcnNpb24tbmFtZSI6ICIyMi42Igp9"}
   }}
 , {"uuid": "rog-manager@rog", "name": "Rog Asus Manager", "pname": "rog-asus-manager", "description": "Asus ROG manager", "link": "https://extensions.gnome.org/extension/4452/rog-asus-manager/", "shell_version_map": {
     "38": {"version": "4", "sha256": "194k3qzjd05rki20ww0nv8001aiyp4ih9abv82g64058x8rmnff5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFzdXMgUk9HIG1hbmFnZXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJyb2ctbWFuYWdlciIsCiAgIm5hbWUiOiAiUm9nIEFzdXMgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yb2dtYW5hZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxlamFuZHJvLW1vdXJhcy9yb2ctbWFuYWdlciIsCiAgInV1aWQiOiAicm9nLW1hbmFnZXJAcm9nIiwKICAidmVyc2lvbiI6IDQKfQ=="}
@@ -3925,8 +3982,8 @@
     "42": {"version": "68", "sha256": "19rv67nmhbx58n38srmns34hsbjm7kb47kri7lv17c3ik9h0r3zm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FXG5cblBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gaHR0cHM6Ly9naXRodWIuY29tL2ZvcmdlLWV4dC9mb3JnZS9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmb3JnZSIsCiAgIm5hbWUiOiAiRm9yZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZm9yZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZvcmdlLWV4dC9mb3JnZSIsCiAgInV1aWQiOiAiZm9yZ2VAam1tYXJhbmFuLmNvbSIsCiAgInZlcnNpb24iOiA2OAp9"},
     "43": {"version": "72", "sha256": "00v2bclgr8fg8x8fz3pbdlwrdm2nfd403qvclk1px22gqf3527xy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FXG5cblBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gaHR0cHM6Ly9naXRodWIuY29tL2ZvcmdlLWV4dC9mb3JnZS9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmb3JnZSIsCiAgIm5hbWUiOiAiRm9yZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZm9yZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZvcmdlLWV4dC9mb3JnZSIsCiAgInV1aWQiOiAiZm9yZ2VAam1tYXJhbmFuLmNvbSIsCiAgInZlcnNpb24iOiA3Mgp9"},
     "44": {"version": "72", "sha256": "00v2bclgr8fg8x8fz3pbdlwrdm2nfd403qvclk1px22gqf3527xy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FXG5cblBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gaHR0cHM6Ly9naXRodWIuY29tL2ZvcmdlLWV4dC9mb3JnZS9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmb3JnZSIsCiAgIm5hbWUiOiAiRm9yZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZm9yZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZvcmdlLWV4dC9mb3JnZSIsCiAgInV1aWQiOiAiZm9yZ2VAam1tYXJhbmFuLmNvbSIsCiAgInZlcnNpb24iOiA3Mgp9"},
-    "45": {"version": "78", "sha256": "0biz3iw2a030l5ngnsg4w65i0zgmj3djh0ns85q6kz8ic3y2q65h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FXG5cblBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gaHR0cHM6Ly9naXRodWIuY29tL2ZvcmdlLWV4dC9mb3JnZS9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmb3JnZSIsCiAgIm5hbWUiOiAiRm9yZ2UiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZvcmdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mb3JnZS1leHQvZm9yZ2UiLAogICJ1dWlkIjogImZvcmdlQGptbWFyYW5hbi5jb20iLAogICJ2ZXJzaW9uIjogNzgKfQ=="},
-    "46": {"version": "78", "sha256": "0biz3iw2a030l5ngnsg4w65i0zgmj3djh0ns85q6kz8ic3y2q65h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FXG5cblBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gaHR0cHM6Ly9naXRodWIuY29tL2ZvcmdlLWV4dC9mb3JnZS9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmb3JnZSIsCiAgIm5hbWUiOiAiRm9yZ2UiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZvcmdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mb3JnZS1leHQvZm9yZ2UiLAogICJ1dWlkIjogImZvcmdlQGptbWFyYW5hbi5jb20iLAogICJ2ZXJzaW9uIjogNzgKfQ=="}
+    "45": {"version": "80", "sha256": "0kdbwm0cq4nvmw1mskmj4398a52sk9vkwpc0y05v8fvxyd63mny2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FXG5cblBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gaHR0cHM6Ly9naXRodWIuY29tL2ZvcmdlLWV4dC9mb3JnZS9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmb3JnZSIsCiAgIm5hbWUiOiAiRm9yZ2UiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZvcmdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mb3JnZS1leHQvZm9yZ2UiLAogICJ1dWlkIjogImZvcmdlQGptbWFyYW5hbi5jb20iLAogICJ2ZXJzaW9uIjogODAKfQ=="},
+    "46": {"version": "80", "sha256": "0kdbwm0cq4nvmw1mskmj4398a52sk9vkwpc0y05v8fvxyd63mny2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FXG5cblBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gaHR0cHM6Ly9naXRodWIuY29tL2ZvcmdlLWV4dC9mb3JnZS9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmb3JnZSIsCiAgIm5hbWUiOiAiRm9yZ2UiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZvcmdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mb3JnZS1leHQvZm9yZ2UiLAogICJ1dWlkIjogImZvcmdlQGptbWFyYW5hbi5jb20iLAogICJ2ZXJzaW9uIjogODAKfQ=="}
   }}
 , {"uuid": "autonightlight@zefty.github.io", "name": "Auto Night Light", "pname": "auto-night-light", "description": "Automatically adjust night light", "link": "https://extensions.gnome.org/extension/4482/auto-night-light/", "shell_version_map": {
     "38": {"version": "7", "sha256": "0v76v4z82agn1ay8c0mb2jgnzjf1h9kcp13jhvypcigalfq9qp4n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgYWRqdXN0IG5pZ2h0IGxpZ2h0IiwKICAibmFtZSI6ICJBdXRvIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9aZWZ0eS9BdXRvTmlnaHRMaWdodCIsCiAgInV1aWQiOiAiYXV0b25pZ2h0bGlnaHRAemVmdHkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDcKfQ=="},
@@ -3977,14 +4034,14 @@
     "40": {"version": "3", "sha256": "1mgvpzzfdzn5qsxwz5911a8qgq0r34az6xpmqr72ksx6yf13l85z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIHRvIHByZXZlbnQgYXJ0aWZhY3RzIHdoZW4gaW4gZnVsbHNjcmVlbi5cblxuVGhpcyB2ZXJzaW9uIG1ha2VzIHN1cmUgdGhlIHVucmVkaXJlY3Qgb3B0aW9uIGlzIG5vdCByZS1lbmFibGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIHNoZWxsLiIsCiAgIm5hbWUiOiAiRGlzYWJsZSB1bnJlZGlyZWN0IGZ1bGxzY3JlZW4gd2luZG93cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiS2F6aW1pZXJhcyBWYWluYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAYXVuZXR4IiwKICAidmVyc2lvbiI6IDMKfQ=="},
     "41": {"version": "3", "sha256": "1mgvpzzfdzn5qsxwz5911a8qgq0r34az6xpmqr72ksx6yf13l85z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIHRvIHByZXZlbnQgYXJ0aWZhY3RzIHdoZW4gaW4gZnVsbHNjcmVlbi5cblxuVGhpcyB2ZXJzaW9uIG1ha2VzIHN1cmUgdGhlIHVucmVkaXJlY3Qgb3B0aW9uIGlzIG5vdCByZS1lbmFibGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIHNoZWxsLiIsCiAgIm5hbWUiOiAiRGlzYWJsZSB1bnJlZGlyZWN0IGZ1bGxzY3JlZW4gd2luZG93cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiS2F6aW1pZXJhcyBWYWluYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAYXVuZXR4IiwKICAidmVyc2lvbiI6IDMKfQ=="}
   }}
-, {"uuid": "nepali-date@biplab", "name": "Nepali Date", "pname": "nepali-calendar", "description": "Shows nepali date on the panel.", "link": "https://extensions.gnome.org/extension/4518/nepali-calendar/", "shell_version_map": {
+, {"uuid": "nepali-date@biplab", "name": "Nepali Date", "pname": "nepali-calendar", "description": "Shows nepali date on the top status area.", "link": "https://extensions.gnome.org/extension/4518/nepali-calendar/", "shell_version_map": {
     "40": {"version": "18", "sha256": "13pg4lzqpa7m7qhdrqw5vlnjaqc843cxyinygg197lafgx10ya1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAxOAp9"},
     "41": {"version": "18", "sha256": "13pg4lzqpa7m7qhdrqw5vlnjaqc843cxyinygg197lafgx10ya1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAxOAp9"},
     "42": {"version": "18", "sha256": "13pg4lzqpa7m7qhdrqw5vlnjaqc843cxyinygg197lafgx10ya1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAxOAp9"},
     "43": {"version": "18", "sha256": "13pg4lzqpa7m7qhdrqw5vlnjaqc843cxyinygg197lafgx10ya1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAxOAp9"},
     "44": {"version": "18", "sha256": "13pg4lzqpa7m7qhdrqw5vlnjaqc843cxyinygg197lafgx10ya1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAxOAp9"},
-    "45": {"version": "30", "sha256": "0mjy8fjnj4faazawwg9ckl16fl6xs98m4vl22panjajsh9fqqsck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAzMAp9"},
-    "46": {"version": "30", "sha256": "0mjy8fjnj4faazawwg9ckl16fl6xs98m4vl22panjajsh9fqqsck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAzMAp9"}
+    "45": {"version": "31", "sha256": "1phng3s99zh2ykk78qfl936sin5v7y5dzghrpq7q3bqxnyf6xias", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSB0b3Agc3RhdHVzIGFyZWEuIiwKICAibmFtZSI6ICJOZXBhbGkgRGF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmlwbGFiLUR1dHRhL05lcGFsaV9EYXRlIiwKICAidXVpZCI6ICJuZXBhbGktZGF0ZUBiaXBsYWIiLAogICJ2ZXJzaW9uIjogMzEKfQ=="},
+    "46": {"version": "31", "sha256": "1phng3s99zh2ykk78qfl936sin5v7y5dzghrpq7q3bqxnyf6xias", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSB0b3Agc3RhdHVzIGFyZWEuIiwKICAibmFtZSI6ICJOZXBhbGkgRGF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmlwbGFiLUR1dHRhL05lcGFsaV9EYXRlIiwKICAidXVpZCI6ICJuZXBhbGktZGF0ZUBiaXBsYWIiLAogICJ2ZXJzaW9uIjogMzEKfQ=="}
   }}
 , {"uuid": "clock-left@mapuut", "name": "Clock Left", "pname": "clock-left", "description": "Moves clock to left.\n\nAlso this one might suit you better: extensions.gnome.org/extension/4667/left-clock/", "link": "https://extensions.gnome.org/extension/4526/clock-left/", "shell_version_map": {
     "38": {"version": "4", "sha256": "0hvr7nmbrn7nqn3nk9p1a659yhkgja3gy9kbw18yykyqf0lbssqn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIGNsb2NrIHRvIGxlZnQuXG5cbkFsc28gdGhpcyBvbmUgbWlnaHQgc3VpdCB5b3UgYmV0dGVyOiBleHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDY2Ny9sZWZ0LWNsb2NrLyIsCiAgIm5hbWUiOiAiQ2xvY2sgTGVmdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJjbG9jay1sZWZ0QG1hcHV1dCIsCiAgInZlcnNpb24iOiA0Cn0="},
@@ -4011,7 +4068,8 @@
     "42": {"version": "4", "sha256": "01ia6ycy4crmc7b9ckwbaqlz4kl3adj1is9036n1y1676696slhb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9oaWRlIHZvbHVtZSBpbmRpY2F0b3Igd2hlbiBtdXRlZCIsCiAgIm5hbWUiOiAiQXV0b2hpZGUgVm9sdW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vdDE4NDI1Ni9nbm9tZS1zaGVsbC1leHRlbnNpb24tYXV0b2hpZGUtdm9sdW1lIiwKICAidXVpZCI6ICJhdXRvaGlkZS12b2x1bWVAdW5ib2lsZWQuaW5mbyIsCiAgInZlcnNpb24iOiA0Cn0="},
     "43": {"version": "4", "sha256": "01ia6ycy4crmc7b9ckwbaqlz4kl3adj1is9036n1y1676696slhb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9oaWRlIHZvbHVtZSBpbmRpY2F0b3Igd2hlbiBtdXRlZCIsCiAgIm5hbWUiOiAiQXV0b2hpZGUgVm9sdW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vdDE4NDI1Ni9nbm9tZS1zaGVsbC1leHRlbnNpb24tYXV0b2hpZGUtdm9sdW1lIiwKICAidXVpZCI6ICJhdXRvaGlkZS12b2x1bWVAdW5ib2lsZWQuaW5mbyIsCiAgInZlcnNpb24iOiA0Cn0="},
     "44": {"version": "4", "sha256": "01ia6ycy4crmc7b9ckwbaqlz4kl3adj1is9036n1y1676696slhb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9oaWRlIHZvbHVtZSBpbmRpY2F0b3Igd2hlbiBtdXRlZCIsCiAgIm5hbWUiOiAiQXV0b2hpZGUgVm9sdW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vdDE4NDI1Ni9nbm9tZS1zaGVsbC1leHRlbnNpb24tYXV0b2hpZGUtdm9sdW1lIiwKICAidXVpZCI6ICJhdXRvaGlkZS12b2x1bWVAdW5ib2lsZWQuaW5mbyIsCiAgInZlcnNpb24iOiA0Cn0="},
-    "45": {"version": "7", "sha256": "07z3mi3h0azivfhmkl1d92swg66pi8k8mwab1gli96c679zpjbd9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9oaWRlIHZvbHVtZSBpbmRpY2F0b3Igd2hlbiBtdXRlZCIsCiAgIm5hbWUiOiAiQXV0b2hpZGUgVm9sdW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vdDE4NDI1Ni9nbm9tZS1zaGVsbC1leHRlbnNpb24tYXV0b2hpZGUtdm9sdW1lIiwKICAidXVpZCI6ICJhdXRvaGlkZS12b2x1bWVAdW5ib2lsZWQuaW5mbyIsCiAgInZlcnNpb24iOiA3Cn0="}
+    "45": {"version": "8", "sha256": "0bilgzcx86id89glf0jrk232jfmv3vxgh9la62r65l0c79ixngda", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9oaWRlIHZvbHVtZSBpbmRpY2F0b3Igd2hlbiBtdXRlZCIsCiAgIm5hbWUiOiAiQXV0b2hpZGUgVm9sdW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHA6Ly9naXRodWIuY29tL3QxODQyNTYvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWF1dG9oaWRlLXZvbHVtZSIsCiAgInV1aWQiOiAiYXV0b2hpZGUtdm9sdW1lQHVuYm9pbGVkLmluZm8iLAogICJ2ZXJzaW9uIjogOAp9"},
+    "46": {"version": "8", "sha256": "0bilgzcx86id89glf0jrk232jfmv3vxgh9la62r65l0c79ixngda", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9oaWRlIHZvbHVtZSBpbmRpY2F0b3Igd2hlbiBtdXRlZCIsCiAgIm5hbWUiOiAiQXV0b2hpZGUgVm9sdW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHA6Ly9naXRodWIuY29tL3QxODQyNTYvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWF1dG9oaWRlLXZvbHVtZSIsCiAgInV1aWQiOiAiYXV0b2hpZGUtdm9sdW1lQHVuYm9pbGVkLmluZm8iLAogICJ2ZXJzaW9uIjogOAp9"}
   }}
 , {"uuid": "cloudflare@adam.gadmz", "name": "Cloudflare", "pname": "cloudflare", "description": "Warp Connect", "link": "https://extensions.gnome.org/extension/4542/cloudflare/", "shell_version_map": {
     "38": {"version": "10", "sha256": "0lr2g0hmaw7v4h538rg3mxmnds8nnmbs0h0k816s4dkwmx45pyb5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBZGFtIiwKICAiZGVzY3JpcHRpb24iOiAiV2FycCBDb25uZWN0IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsb3VkZmxhcmUiLAogICJuYW1lIjogIkNsb3VkZmxhcmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kdW9uZ2dpYWtoYW5oYi9DbG91ZGZsYXJlX0dOT01FX0V4dGVuc2lvbiIsCiAgInV1aWQiOiAiY2xvdWRmbGFyZUBhZGFtLmdhZG16IiwKICAidmVyc2lvbiI6IDEwCn0="},
@@ -4170,7 +4228,8 @@
     "42": {"version": "7", "sha256": "16kkw81xll71lyy10dd2sh9r5dziymc0z2g3y9awndkdqvm0mzz6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFydGlmaWNpYWxseSByZWR1Y2UgYnJpZ2h0bmVzcyBvZiB5b3VyIGRpc3BsYXlzIChpbmNsdWRpbmcgZXh0ZXJuYWwgbW9uaXRvcnMpLlxuXG5JdCBpcyBhIGZvcmsgb2YgQ29sb3JUaW50IG1vZGlmaWVkIHRvIHJlZHVjZSBicmlnaHRuZXNzIHdpdGhvdXQgYW4gYWxwaGEgY2hhbm5lbC4iLAogICJuYW1lIjogIkFscGhhVGludCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2FpZnVsYmtoYW4vYWxwaGEtdGludCIsCiAgInV1aWQiOiAiYWxwaGF0aW50QHNhaWZ1bGJraGFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"},
     "43": {"version": "7", "sha256": "16kkw81xll71lyy10dd2sh9r5dziymc0z2g3y9awndkdqvm0mzz6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFydGlmaWNpYWxseSByZWR1Y2UgYnJpZ2h0bmVzcyBvZiB5b3VyIGRpc3BsYXlzIChpbmNsdWRpbmcgZXh0ZXJuYWwgbW9uaXRvcnMpLlxuXG5JdCBpcyBhIGZvcmsgb2YgQ29sb3JUaW50IG1vZGlmaWVkIHRvIHJlZHVjZSBicmlnaHRuZXNzIHdpdGhvdXQgYW4gYWxwaGEgY2hhbm5lbC4iLAogICJuYW1lIjogIkFscGhhVGludCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2FpZnVsYmtoYW4vYWxwaGEtdGludCIsCiAgInV1aWQiOiAiYWxwaGF0aW50QHNhaWZ1bGJraGFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"},
     "44": {"version": "7", "sha256": "16kkw81xll71lyy10dd2sh9r5dziymc0z2g3y9awndkdqvm0mzz6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFydGlmaWNpYWxseSByZWR1Y2UgYnJpZ2h0bmVzcyBvZiB5b3VyIGRpc3BsYXlzIChpbmNsdWRpbmcgZXh0ZXJuYWwgbW9uaXRvcnMpLlxuXG5JdCBpcyBhIGZvcmsgb2YgQ29sb3JUaW50IG1vZGlmaWVkIHRvIHJlZHVjZSBicmlnaHRuZXNzIHdpdGhvdXQgYW4gYWxwaGEgY2hhbm5lbC4iLAogICJuYW1lIjogIkFscGhhVGludCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2FpZnVsYmtoYW4vYWxwaGEtdGludCIsCiAgInV1aWQiOiAiYWxwaGF0aW50QHNhaWZ1bGJraGFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"},
-    "45": {"version": "9", "sha256": "1h72lsnjidq4a2ychv3lh5fbrn44dsx5nxyb71qgbv4k9q3qxs66", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFydGlmaWNpYWxseSByZWR1Y2UgYnJpZ2h0bmVzcyBvZiB5b3VyIGRpc3BsYXlzIChpbmNsdWRpbmcgZXh0ZXJuYWwgbW9uaXRvcnMpLlxuXG5JdCBpcyBhIGZvcmsgb2YgQ29sb3JUaW50IG1vZGlmaWVkIHRvIHJlZHVjZSBicmlnaHRuZXNzIHdpdGhvdXQgYW4gYWxwaGEgY2hhbm5lbC4iLAogICJuYW1lIjogIkFscGhhVGludCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zYWlmdWxia2hhbi9hbHBoYS10aW50IiwKICAidXVpZCI6ICJhbHBoYXRpbnRAc2FpZnVsYmtoYW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}
+    "45": {"version": "10", "sha256": "1s2jpl23q4myli4c5cc7f947hycfkmx4l4wapvc6mp3mg4qs85yy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFydGlmaWNpYWxseSByZWR1Y2UgYnJpZ2h0bmVzcyBvZiB5b3VyIGRpc3BsYXlzIChpbmNsdWRpbmcgZXh0ZXJuYWwgbW9uaXRvcnMpLlxuXG5JdCBpcyBhIGZvcmsgb2YgQ29sb3JUaW50IG1vZGlmaWVkIHRvIHJlZHVjZSBicmlnaHRuZXNzIHdpdGhvdXQgYW4gYWxwaGEgY2hhbm5lbC4iLAogICJuYW1lIjogIkFscGhhVGludCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2FpZnVsYmtoYW4vYWxwaGEtdGludCIsCiAgInV1aWQiOiAiYWxwaGF0aW50QHNhaWZ1bGJraGFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
+    "46": {"version": "10", "sha256": "1s2jpl23q4myli4c5cc7f947hycfkmx4l4wapvc6mp3mg4qs85yy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFydGlmaWNpYWxseSByZWR1Y2UgYnJpZ2h0bmVzcyBvZiB5b3VyIGRpc3BsYXlzIChpbmNsdWRpbmcgZXh0ZXJuYWwgbW9uaXRvcnMpLlxuXG5JdCBpcyBhIGZvcmsgb2YgQ29sb3JUaW50IG1vZGlmaWVkIHRvIHJlZHVjZSBicmlnaHRuZXNzIHdpdGhvdXQgYW4gYWxwaGEgY2hhbm5lbC4iLAogICJuYW1lIjogIkFscGhhVGludCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2FpZnVsYmtoYW4vYWxwaGEtdGludCIsCiAgInV1aWQiOiAiYWxwaGF0aW50QHNhaWZ1bGJraGFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}
   }}
 , {"uuid": "focus-changer@heartmire", "name": "Focus changer", "pname": "focus-changer", "description": "Change focus between windows in all directions.\n\nThe extension will first try to find a suitable window within the same monitor. If there is none, it will try to find one on the next monitor in that direction (in a multi-monitor setup).\n\nDefault shortcuts (can be changed in preferences):\n<Super>+h = Focus left\n<Super>+j = Focus down\n<Super>+k = Focus up\n<Super>+l = Focus right", "link": "https://extensions.gnome.org/extension/4627/focus-changer/", "shell_version_map": {
     "38": {"version": "9", "sha256": "0ngn0bw0f2fpp0vv4hq7gb0vx2xq2gk3nkkb6p393i9qbr42l3y1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcnRpbmhqYXJ0bXlyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mb2N1cy1jaGFuZ2VyIiwKICAidXVpZCI6ICJmb2N1cy1jaGFuZ2VyQGhlYXJ0bWlyZSIsCiAgInZlcnNpb24iOiA5Cn0="},
@@ -4179,8 +4238,8 @@
     "42": {"version": "14", "sha256": "1f9qpw8hy5lppnm15jga5ka5qb4a175aqq6a5n5jm0fwn6w2v84m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFydGluaGphcnRteXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZvY3VzLWNoYW5nZXIiLAogICJ1dWlkIjogImZvY3VzLWNoYW5nZXJAaGVhcnRtaXJlIiwKICAidmVyc2lvbiI6IDE0Cn0="},
     "43": {"version": "14", "sha256": "1f9qpw8hy5lppnm15jga5ka5qb4a175aqq6a5n5jm0fwn6w2v84m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFydGluaGphcnRteXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZvY3VzLWNoYW5nZXIiLAogICJ1dWlkIjogImZvY3VzLWNoYW5nZXJAaGVhcnRtaXJlIiwKICAidmVyc2lvbiI6IDE0Cn0="},
     "44": {"version": "14", "sha256": "1f9qpw8hy5lppnm15jga5ka5qb4a175aqq6a5n5jm0fwn6w2v84m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFydGluaGphcnRteXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZvY3VzLWNoYW5nZXIiLAogICJ1dWlkIjogImZvY3VzLWNoYW5nZXJAaGVhcnRtaXJlIiwKICAidmVyc2lvbiI6IDE0Cn0="},
-    "45": {"version": "19", "sha256": "1d6p10cgvn7afc7cg1g2bfhw2n9gjirjfddk04nc6s47wj557rwl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImhlYXJ0bWlyZSIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmb2N1cy1jaGFuZ2VyQGhlYXJ0bWlyZSIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mb2N1cy1jaGFuZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXJ0aW5oamFydG15ci9nbm9tZS1zaGVsbC1leHRlbnNpb24tZm9jdXMtY2hhbmdlciIsCiAgInV1aWQiOiAiZm9jdXMtY2hhbmdlckBoZWFydG1pcmUiLAogICJ2ZXJzaW9uIjogMTkKfQ=="},
-    "46": {"version": "19", "sha256": "1d6p10cgvn7afc7cg1g2bfhw2n9gjirjfddk04nc6s47wj557rwl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImhlYXJ0bWlyZSIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmb2N1cy1jaGFuZ2VyQGhlYXJ0bWlyZSIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mb2N1cy1jaGFuZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXJ0aW5oamFydG15ci9nbm9tZS1zaGVsbC1leHRlbnNpb24tZm9jdXMtY2hhbmdlciIsCiAgInV1aWQiOiAiZm9jdXMtY2hhbmdlckBoZWFydG1pcmUiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}
+    "45": {"version": "20", "sha256": "0hpd0qrnv30z1c7qp6wzgry14wn6rzwdabwjq6ll9hwgn27f6vqi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImhlYXJ0bWlyZSIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmb2N1cy1jaGFuZ2VyQGhlYXJ0bWlyZSIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mb2N1cy1jaGFuZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXJ0aW5oamFydG15ci9nbm9tZS1zaGVsbC1leHRlbnNpb24tZm9jdXMtY2hhbmdlciIsCiAgInV1aWQiOiAiZm9jdXMtY2hhbmdlckBoZWFydG1pcmUiLAogICJ2ZXJzaW9uIjogMjAKfQ=="},
+    "46": {"version": "20", "sha256": "0hpd0qrnv30z1c7qp6wzgry14wn6rzwdabwjq6ll9hwgn27f6vqi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImhlYXJ0bWlyZSIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmb2N1cy1jaGFuZ2VyQGhlYXJ0bWlyZSIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mb2N1cy1jaGFuZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXJ0aW5oamFydG15ci9nbm9tZS1zaGVsbC1leHRlbnNpb24tZm9jdXMtY2hhbmdlciIsCiAgInV1aWQiOiAiZm9jdXMtY2hhbmdlckBoZWFydG1pcmUiLAogICJ2ZXJzaW9uIjogMjAKfQ=="}
   }}
 , {"uuid": "no-titlebar-when-maximized@alec.ninja", "name": "No Titlebar When Maximized", "pname": "no-titlebar-when-maximized", "description": "Hides the classic title bar of maximized X.Org windows", "link": "https://extensions.gnome.org/extension/4630/no-titlebar-when-maximized/", "shell_version_map": {
     "41": {"version": "11", "sha256": "0ai3fz37ij5k6s5mjhh9934bmwxs2m3fnir26sjrdsk5b3pgrygz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBjbGFzc2ljIHRpdGxlIGJhciBvZiBtYXhpbWl6ZWQgWC5Pcmcgd2luZG93cyIsCiAgIm5hbWUiOiAiTm8gVGl0bGViYXIgV2hlbiBNYXhpbWl6ZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxlY2RvdG5pbmphL25vLXRpdGxlYmFyLXdoZW4tbWF4aW1pemVkIiwKICAidXVpZCI6ICJuby10aXRsZWJhci13aGVuLW1heGltaXplZEBhbGVjLm5pbmphIiwKICAidmVyc2lvbiI6IDExCn0="},
@@ -4212,8 +4271,8 @@
     "42": {"version": "23", "sha256": "02kgp6ihg8gkkhxprxd7m9i186i0l3sy954lp6s3aq23v2ya0yn0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZHVsZ2UgaW4gbm9zdGFsZ2lhIHdpdGggdXNlbGVzcyAzRCBlZmZlY3RzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAic2NobmVlZ2FucyIsCiAgICAia29maSI6ICJzY2huZWVnYW5zIiwKICAgICJwYXlwYWwiOiAic2ltb25zY2huZWVnYW5zIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRlc2t0b3AtY3ViZSIsCiAgIm5hbWUiOiAiRGVza3RvcCBDdWJlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtY3ViZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRGVza3RvcC1DdWJlIiwKICAidXVpZCI6ICJkZXNrdG9wLWN1YmVAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="},
     "43": {"version": "23", "sha256": "02kgp6ihg8gkkhxprxd7m9i186i0l3sy954lp6s3aq23v2ya0yn0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZHVsZ2UgaW4gbm9zdGFsZ2lhIHdpdGggdXNlbGVzcyAzRCBlZmZlY3RzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAic2NobmVlZ2FucyIsCiAgICAia29maSI6ICJzY2huZWVnYW5zIiwKICAgICJwYXlwYWwiOiAic2ltb25zY2huZWVnYW5zIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRlc2t0b3AtY3ViZSIsCiAgIm5hbWUiOiAiRGVza3RvcCBDdWJlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtY3ViZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRGVza3RvcC1DdWJlIiwKICAidXVpZCI6ICJkZXNrdG9wLWN1YmVAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="},
     "44": {"version": "23", "sha256": "02kgp6ihg8gkkhxprxd7m9i186i0l3sy954lp6s3aq23v2ya0yn0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZHVsZ2UgaW4gbm9zdGFsZ2lhIHdpdGggdXNlbGVzcyAzRCBlZmZlY3RzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAic2NobmVlZ2FucyIsCiAgICAia29maSI6ICJzY2huZWVnYW5zIiwKICAgICJwYXlwYWwiOiAic2ltb25zY2huZWVnYW5zIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRlc2t0b3AtY3ViZSIsCiAgIm5hbWUiOiAiRGVza3RvcCBDdWJlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtY3ViZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRGVza3RvcC1DdWJlIiwKICAidXVpZCI6ICJkZXNrdG9wLWN1YmVAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="},
-    "45": {"version": "24", "sha256": "1aixlp25w5ch4g00c2rx6231ba6d385y3h9776s1cx0ykqpm1rzb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZHVsZ2UgaW4gbm9zdGFsZ2lhIHdpdGggdXNlbGVzcyAzRCBlZmZlY3RzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAic2NobmVlZ2FucyIsCiAgICAia29maSI6ICJzY2huZWVnYW5zIiwKICAgICJwYXlwYWwiOiAic2ltb25zY2huZWVnYW5zIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRlc2t0b3AtY3ViZSIsCiAgIm5hbWUiOiAiRGVza3RvcCBDdWJlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtY3ViZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2NobmVlZ2Fucy9EZXNrdG9wLUN1YmUiLAogICJ1dWlkIjogImRlc2t0b3AtY3ViZUBzY2huZWVnYW5zLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjQKfQ=="},
-    "46": {"version": "24", "sha256": "1aixlp25w5ch4g00c2rx6231ba6d385y3h9776s1cx0ykqpm1rzb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZHVsZ2UgaW4gbm9zdGFsZ2lhIHdpdGggdXNlbGVzcyAzRCBlZmZlY3RzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAic2NobmVlZ2FucyIsCiAgICAia29maSI6ICJzY2huZWVnYW5zIiwKICAgICJwYXlwYWwiOiAic2ltb25zY2huZWVnYW5zIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRlc2t0b3AtY3ViZSIsCiAgIm5hbWUiOiAiRGVza3RvcCBDdWJlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtY3ViZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2NobmVlZ2Fucy9EZXNrdG9wLUN1YmUiLAogICJ1dWlkIjogImRlc2t0b3AtY3ViZUBzY2huZWVnYW5zLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjQKfQ=="}
+    "45": {"version": "25", "sha256": "1wiaxyaa8gmd4lpd92cx7rfkln1l97cmj7500sz68xqlax4cylr0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZHVsZ2UgaW4gbm9zdGFsZ2lhIHdpdGggdXNlbGVzcyAzRCBlZmZlY3RzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAic2NobmVlZ2FucyIsCiAgICAia29maSI6ICJzY2huZWVnYW5zIiwKICAgICJwYXlwYWwiOiAic2ltb25zY2huZWVnYW5zIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRlc2t0b3AtY3ViZSIsCiAgIm5hbWUiOiAiRGVza3RvcCBDdWJlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtY3ViZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2NobmVlZ2Fucy9EZXNrdG9wLUN1YmUiLAogICJ1dWlkIjogImRlc2t0b3AtY3ViZUBzY2huZWVnYW5zLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjUKfQ=="},
+    "46": {"version": "25", "sha256": "1wiaxyaa8gmd4lpd92cx7rfkln1l97cmj7500sz68xqlax4cylr0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZHVsZ2UgaW4gbm9zdGFsZ2lhIHdpdGggdXNlbGVzcyAzRCBlZmZlY3RzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAic2NobmVlZ2FucyIsCiAgICAia29maSI6ICJzY2huZWVnYW5zIiwKICAgICJwYXlwYWwiOiAic2ltb25zY2huZWVnYW5zIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRlc2t0b3AtY3ViZSIsCiAgIm5hbWUiOiAiRGVza3RvcCBDdWJlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtY3ViZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2NobmVlZ2Fucy9EZXNrdG9wLUN1YmUiLAogICJ1dWlkIjogImRlc2t0b3AtY3ViZUBzY2huZWVnYW5zLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjUKfQ=="}
   }}
 , {"uuid": "notification-banner-reloaded@marcinjakubowski.github.com", "name": "Notification Banner Reloaded", "pname": "notification-banner-reloaded", "description": "Configure notification banner position and animation to your liking.\nVersion 9: Gnome 45 changes by mannjani@github\nVersion 10: mannjani@github added a test button inside prefs", "link": "https://extensions.gnome.org/extension/4651/notification-banner-reloaded/", "shell_version_map": {
     "40": {"version": "8", "sha256": "1g0aa6xclyfbcaa4rccv5cgqmc6jr41yz821wvpa2rww64djl0jb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmZpZ3VyZSBub3RpZmljYXRpb24gYmFubmVyIHBvc2l0aW9uIGFuZCBhbmltYXRpb24gdG8geW91ciBsaWtpbmciLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBCYW5uZXIgUmVsb2FkZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm90aWZpY2F0aW9uLWJhbm5lci1yZWxvYWRlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFyY2luamFrdWJvd3NraS9ub3RpZmljYXRpb24tcG9zaXRpb24tcmVsb2FkZWQiLAogICJ1dWlkIjogIm5vdGlmaWNhdGlvbi1iYW5uZXItcmVsb2FkZWRAbWFyY2luamFrdWJvd3NraS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="},
@@ -4324,14 +4383,15 @@
     "44": {"version": "7", "sha256": "0bi73fpvkfj3y6f440fw5xv1294szhisa2qyzz4rwh7n4n49xhqf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvY3VzIHRoZSBwcmltYXJ5IG1vbml0b3IgYWZ0ZXIgc3dpdGNoaW5nIHdvcmtzcGFjZXMgdmlhIGtleWJvYXJkIiwKICAibmFtZSI6ICJGb2N1cyBGb2xsb3dzIFdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RvcGhlci1sL2ZvY3VzLWZvbGxvd3Mtd29ya3NwYWNlIiwKICAidXVpZCI6ICJmb2N1cy1mb2xsb3dzLXdvcmtzcGFjZUBjaHJpc3RvcGhlci5sdWViYmVtZWllci5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNwp9"},
     "45": {"version": "9", "sha256": "0g9jylkxx2wwknbh38ir7hfx440b5jm2lgxip0xl878flgi2wffj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvY3VzIHRoZSBwcmltYXJ5IG1vbml0b3IgYWZ0ZXIgc3dpdGNoaW5nIHdvcmtzcGFjZXMgdmlhIGtleWJvYXJkIiwKICAibmFtZSI6ICJGb2N1cyBGb2xsb3dzIFdvcmtzcGFjZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mb2N1cy1mb2xsb3dzLXdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RvcGhlci1sL2ZvY3VzLWZvbGxvd3Mtd29ya3NwYWNlIiwKICAidXVpZCI6ICJmb2N1cy1mb2xsb3dzLXdvcmtzcGFjZUBjaHJpc3RvcGhlci5sdWViYmVtZWllci5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}
   }}
-, {"uuid": "pip-on-top@rafostar.github.com", "name": "PiP on top", "pname": "pip-on-top", "description": "Makes \"Picture-in-Picture\" windows stay on top (even on Wayland session). Compatible with Firefox and Clapper media player.", "link": "https://extensions.gnome.org/extension/4691/pip-on-top/", "shell_version_map": {
+, {"uuid": "pip-on-top@rafostar.github.com", "name": "PiP on top", "pname": "pip-on-top", "description": "Makes \"Picture-in-Picture\" windows stay on top (even on Wayland session). Compatible with Firefox, but may work with few other browsers too.", "link": "https://extensions.gnome.org/extension/4691/pip-on-top/", "shell_version_map": {
     "38": {"version": "2", "sha256": "1920nd7dr2159606mlv3c4fkambw1yx0a65rr961qx3w6jwd1pym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYWZvc3Rhci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGlwLW9uLXRvcCIsCiAgInV1aWQiOiAicGlwLW9uLXRvcEByYWZvc3Rhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
     "40": {"version": "2", "sha256": "1920nd7dr2159606mlv3c4fkambw1yx0a65rr961qx3w6jwd1pym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYWZvc3Rhci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGlwLW9uLXRvcCIsCiAgInV1aWQiOiAicGlwLW9uLXRvcEByYWZvc3Rhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
     "41": {"version": "2", "sha256": "1920nd7dr2159606mlv3c4fkambw1yx0a65rr961qx3w6jwd1pym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYWZvc3Rhci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGlwLW9uLXRvcCIsCiAgInV1aWQiOiAicGlwLW9uLXRvcEByYWZvc3Rhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
     "42": {"version": "6", "sha256": "1112q0wmsk142n1nq9id0hah3y3dfq9y2p65ggagyxl52yk34l6b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYWZvc3Rhci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGlwLW9uLXRvcCIsCiAgInV1aWQiOiAicGlwLW9uLXRvcEByYWZvc3Rhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="},
     "43": {"version": "6", "sha256": "1112q0wmsk142n1nq9id0hah3y3dfq9y2p65ggagyxl52yk34l6b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYWZvc3Rhci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGlwLW9uLXRvcCIsCiAgInV1aWQiOiAicGlwLW9uLXRvcEByYWZvc3Rhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="},
     "44": {"version": "6", "sha256": "1112q0wmsk142n1nq9id0hah3y3dfq9y2p65ggagyxl52yk34l6b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYWZvc3Rhci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGlwLW9uLXRvcCIsCiAgInV1aWQiOiAicGlwLW9uLXRvcEByYWZvc3Rhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="},
-    "45": {"version": "7", "sha256": "17clr1f3zwc0wz5y7536d5j39wbxfbqzd4cy2jyjyx9lm4cmpb8x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmFmb3N0YXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXBpcC1vbi10b3AiLAogICJ1dWlkIjogInBpcC1vbi10b3BAcmFmb3N0YXIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}
+    "45": {"version": "8", "sha256": "1gwn5wgqhz2nh8icj1byv7kgs8sk16mkzmj2zf7y0svprbl5vf7n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCwgYnV0IG1heSB3b3JrIHdpdGggZmV3IG90aGVyIGJyb3dzZXJzIHRvby4iLAogICJleHRlbnNpb24taWQiOiAicGlwLW9uLXRvcCIsCiAgImdldHRleHQtZG9tYWluIjogInBpcC1vbi10b3AiLAogICJuYW1lIjogIlBpUCBvbiB0b3AiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGlwLW9uLXRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmFmb3N0YXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXBpcC1vbi10b3AiLAogICJ1dWlkIjogInBpcC1vbi10b3BAcmFmb3N0YXIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="},
+    "46": {"version": "8", "sha256": "1gwn5wgqhz2nh8icj1byv7kgs8sk16mkzmj2zf7y0svprbl5vf7n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCwgYnV0IG1heSB3b3JrIHdpdGggZmV3IG90aGVyIGJyb3dzZXJzIHRvby4iLAogICJleHRlbnNpb24taWQiOiAicGlwLW9uLXRvcCIsCiAgImdldHRleHQtZG9tYWluIjogInBpcC1vbi10b3AiLAogICJuYW1lIjogIlBpUCBvbiB0b3AiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGlwLW9uLXRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmFmb3N0YXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXBpcC1vbi10b3AiLAogICJ1dWlkIjogInBpcC1vbi10b3BAcmFmb3N0YXIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}
   }}
 , {"uuid": "roundedSystemMenuButtons@pratap.fastmail.fm", "name": "Rounded System Menu Buttons", "pname": "rounded-system-menu-buttons", "description": "Rounded System Menu Buttons", "link": "https://extensions.gnome.org/extension/4693/rounded-system-menu-buttons/", "shell_version_map": {
     "38": {"version": "17", "sha256": "1cwjyw4sc4i4vdm458qdnjzvmiqyz9vscicwarsd9cvik57p44f5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJvdW5kZWQgU3lzdGVtIE1lbnUgQnV0dG9ucyIsCiAgIm5hbWUiOiAiUm91bmRlZCBTeXN0ZW0gTWVudSBCdXR0b25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnJvdW5kLXN5c3RlbS1tZW51LWJ1dHRvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9yb3VuZGVkLXN5c3RlbS1tZW51LWJ1dHRvbnMiLAogICJ1dWlkIjogInJvdW5kZWRTeXN0ZW1NZW51QnV0dG9uc0BwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
@@ -4377,7 +4437,8 @@
     "42": {"version": "41", "sha256": "09pvlskx2z4dh7wnyf934dyfs8vkp6qfyshqi5j03i7nmfxipwkl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIG9wZW4gd2luZG93cyBncmFjZWZ1bGx5IGFuZCBzYXZlIHRoZW0gYXMgYSBzZXNzaW9uLiBBbmQgeW91IGNhbiByZXN0b3JlIHRoZW0gd2hlbiBuZWNlc3NhcnkgbWFudWFsbHkgb3IgYXV0b21hdGljYWxseSBhdCBzdGFydHVwLiBNb3N0IGltcG9ydGFudGx5LCBpdCBzdXBwb3J0cyBib3RoIFgxMSBhbmQgV2F5bGFuZCFcblxuTWFpbiBmZWF0dXJlczpcbi0gUmVzdG9yZSB0aGUgcHJldmlvdXMgc2Vzc2lvbiBhdCBzdGFydHVwLiBkaXNhYmxlZCBieSBkZWZhdWx0LlxuLSBTYXZlIHJ1bm5pbmcgYXBwcyBhbmQgd2luZG93cyBhdXRvbWF0aWNhbGx5IHdoZW4gbmVjZXNzYXJ5LCB0aGlzIHdpbGwgYmUgdXNlZCB0byByZXN0b3JlIHRoZSBwcmV2aW91cyBzZXNzaW9uIGF0IHN0YXJ0dXAuXG4tIENsb3NlIHJ1bm5pbmcgYXBwcyBhbmQgd2luZG93cyBhdXRvbWF0aWNhbGx5IGJlZm9yZSBMb2cgT3V0LCBSZXN0YXJ0LCBQb3dlciBPZmYuIGRpc2FibGVkIGJ5IGRlZmF1bHQuXG4tIENsb3NlIHJ1bm5pbmcgd2luZG93cyBncmFjZWZ1bGx5XG4tIENsb3NlIGFwcHMgd2l0aCBtdWx0aXBsZSB3aW5kb3dzIGdyYWNlZnVsbHkgdmlhIHlkb3Rvb2wgc28geW91IGRvbid0IGxvc2Ugc2Vzc2lvbnMgb2YgdGhpcyBhcHAgKFNlZSBhbHNvOiBIb3cgdG8gbWFrZSBDbG9zZSBieSBydWxlcyB3b3JrKVxuLSBTYXZlIHJ1bm5pbmcgYXBwcyBhbmQgd2luZG93cyBtYW51YWxseVxuLSBSZXN0b3JlIGEgc2VsZWN0ZWQgc2Vzc2lvbiBhdCBzdGFydHVwIChTZWUgYWxzbzogIzkpLiBkaXNhYmxlZCBieSBkZWZhdWx0LlxuLSBSZXN0b3JlIGEgc2F2ZWQgc2Vzc2lvbiBtYW51YWxseVxuLSBSZXN0b3JlIHdpbmRvdyBzdGF0ZSwgaW5jbHVkaW5nIEFsd2F5cyBvbiBUb3AsIEFsd2F5cyBvbiBWaXNpYmxlIFdvcmtzcGFjZSBhbmQgbWF4aW1pemF0aW9uXG4tIFJlc3RvcmUgd2luZG93IHdvcmtzcGFjZSwgc2l6ZSBhbmQgcG9zaXRpb25cbi0gUmVzdG9yZSAyIGNvbHVtbiB3aW5kb3cgdGlsaW5nXG4tIFN0YXNoIGFsbCBzdXBwb3J0ZWQgd2luZG93IHN0YXRlcyBzbyB0aGF0IHRob3NlIHN0YXRlcyB3aWxsIGJlIHJlc3RvcmVkIGFmdGVyIGdub21lIHNoZWxsIHJlc3RhcnRzIHZpYSBBbHQrRjIgLT4gciBvciBraWxsYWxsIC0zIGdub21lLXNoZWxsLlxuLSBNb3ZlIHdpbmRvd3MgdG8gdGhlaXIgb3duIHdvcmtzcGFjZSBhY2NvcmRpbmcgdG8gYSBzYXZlZCBzZXNzaW9uXG4tIFN1cHBvcnQgbXVsdGktbW9uaXRvclxuLSBSZW1vdmUgc2F2ZWQgc2Vzc2lvbiB0byB0cmFzaFxuLSBTZWFyY2ggc2F2ZWQgc2Vzc2lvbiBieSB0aGUgc2Vzc2lvbiBuYW1lIGZ1enppbHlcblxuRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSB2aXNpdCBodHRwczovL2dpdGh1Yi5jb20vbmxwc3VnZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tYW5vdGhlci13aW5kb3ctc2Vzc2lvbi1tYW5hZ2VyL2Jsb2IvZmVhdHVyZS1jbG9zZS1zYXZlLXNlc3Npb24td2hpbGUtbG9nb3V0L1JFQURNRS5tZC5cblxuUGxlYXNlIHJlcG9ydCBpc3N1ZXMgb24gR2l0aHViLiIsCiAgIm5hbWUiOiAiQW5vdGhlciBXaW5kb3cgU2Vzc2lvbiBNYW5hZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ubHBzdWdlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1hbm90aGVyLXdpbmRvdy1zZXNzaW9uLW1hbmFnZXIiLAogICJ1dWlkIjogImFub3RoZXItd2luZG93LXNlc3Npb24tbWFuYWdlckBnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDEKfQ=="},
     "43": {"version": "41", "sha256": "09pvlskx2z4dh7wnyf934dyfs8vkp6qfyshqi5j03i7nmfxipwkl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIG9wZW4gd2luZG93cyBncmFjZWZ1bGx5IGFuZCBzYXZlIHRoZW0gYXMgYSBzZXNzaW9uLiBBbmQgeW91IGNhbiByZXN0b3JlIHRoZW0gd2hlbiBuZWNlc3NhcnkgbWFudWFsbHkgb3IgYXV0b21hdGljYWxseSBhdCBzdGFydHVwLiBNb3N0IGltcG9ydGFudGx5LCBpdCBzdXBwb3J0cyBib3RoIFgxMSBhbmQgV2F5bGFuZCFcblxuTWFpbiBmZWF0dXJlczpcbi0gUmVzdG9yZSB0aGUgcHJldmlvdXMgc2Vzc2lvbiBhdCBzdGFydHVwLiBkaXNhYmxlZCBieSBkZWZhdWx0LlxuLSBTYXZlIHJ1bm5pbmcgYXBwcyBhbmQgd2luZG93cyBhdXRvbWF0aWNhbGx5IHdoZW4gbmVjZXNzYXJ5LCB0aGlzIHdpbGwgYmUgdXNlZCB0byByZXN0b3JlIHRoZSBwcmV2aW91cyBzZXNzaW9uIGF0IHN0YXJ0dXAuXG4tIENsb3NlIHJ1bm5pbmcgYXBwcyBhbmQgd2luZG93cyBhdXRvbWF0aWNhbGx5IGJlZm9yZSBMb2cgT3V0LCBSZXN0YXJ0LCBQb3dlciBPZmYuIGRpc2FibGVkIGJ5IGRlZmF1bHQuXG4tIENsb3NlIHJ1bm5pbmcgd2luZG93cyBncmFjZWZ1bGx5XG4tIENsb3NlIGFwcHMgd2l0aCBtdWx0aXBsZSB3aW5kb3dzIGdyYWNlZnVsbHkgdmlhIHlkb3Rvb2wgc28geW91IGRvbid0IGxvc2Ugc2Vzc2lvbnMgb2YgdGhpcyBhcHAgKFNlZSBhbHNvOiBIb3cgdG8gbWFrZSBDbG9zZSBieSBydWxlcyB3b3JrKVxuLSBTYXZlIHJ1bm5pbmcgYXBwcyBhbmQgd2luZG93cyBtYW51YWxseVxuLSBSZXN0b3JlIGEgc2VsZWN0ZWQgc2Vzc2lvbiBhdCBzdGFydHVwIChTZWUgYWxzbzogIzkpLiBkaXNhYmxlZCBieSBkZWZhdWx0LlxuLSBSZXN0b3JlIGEgc2F2ZWQgc2Vzc2lvbiBtYW51YWxseVxuLSBSZXN0b3JlIHdpbmRvdyBzdGF0ZSwgaW5jbHVkaW5nIEFsd2F5cyBvbiBUb3AsIEFsd2F5cyBvbiBWaXNpYmxlIFdvcmtzcGFjZSBhbmQgbWF4aW1pemF0aW9uXG4tIFJlc3RvcmUgd2luZG93IHdvcmtzcGFjZSwgc2l6ZSBhbmQgcG9zaXRpb25cbi0gUmVzdG9yZSAyIGNvbHVtbiB3aW5kb3cgdGlsaW5nXG4tIFN0YXNoIGFsbCBzdXBwb3J0ZWQgd2luZG93IHN0YXRlcyBzbyB0aGF0IHRob3NlIHN0YXRlcyB3aWxsIGJlIHJlc3RvcmVkIGFmdGVyIGdub21lIHNoZWxsIHJlc3RhcnRzIHZpYSBBbHQrRjIgLT4gciBvciBraWxsYWxsIC0zIGdub21lLXNoZWxsLlxuLSBNb3ZlIHdpbmRvd3MgdG8gdGhlaXIgb3duIHdvcmtzcGFjZSBhY2NvcmRpbmcgdG8gYSBzYXZlZCBzZXNzaW9uXG4tIFN1cHBvcnQgbXVsdGktbW9uaXRvclxuLSBSZW1vdmUgc2F2ZWQgc2Vzc2lvbiB0byB0cmFzaFxuLSBTZWFyY2ggc2F2ZWQgc2Vzc2lvbiBieSB0aGUgc2Vzc2lvbiBuYW1lIGZ1enppbHlcblxuRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSB2aXNpdCBodHRwczovL2dpdGh1Yi5jb20vbmxwc3VnZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tYW5vdGhlci13aW5kb3ctc2Vzc2lvbi1tYW5hZ2VyL2Jsb2IvZmVhdHVyZS1jbG9zZS1zYXZlLXNlc3Npb24td2hpbGUtbG9nb3V0L1JFQURNRS5tZC5cblxuUGxlYXNlIHJlcG9ydCBpc3N1ZXMgb24gR2l0aHViLiIsCiAgIm5hbWUiOiAiQW5vdGhlciBXaW5kb3cgU2Vzc2lvbiBNYW5hZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ubHBzdWdlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1hbm90aGVyLXdpbmRvdy1zZXNzaW9uLW1hbmFnZXIiLAogICJ1dWlkIjogImFub3RoZXItd2luZG93LXNlc3Npb24tbWFuYWdlckBnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDEKfQ=="},
     "44": {"version": "41", "sha256": "09pvlskx2z4dh7wnyf934dyfs8vkp6qfyshqi5j03i7nmfxipwkl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIG9wZW4gd2luZG93cyBncmFjZWZ1bGx5IGFuZCBzYXZlIHRoZW0gYXMgYSBzZXNzaW9uLiBBbmQgeW91IGNhbiByZXN0b3JlIHRoZW0gd2hlbiBuZWNlc3NhcnkgbWFudWFsbHkgb3IgYXV0b21hdGljYWxseSBhdCBzdGFydHVwLiBNb3N0IGltcG9ydGFudGx5LCBpdCBzdXBwb3J0cyBib3RoIFgxMSBhbmQgV2F5bGFuZCFcblxuTWFpbiBmZWF0dXJlczpcbi0gUmVzdG9yZSB0aGUgcHJldmlvdXMgc2Vzc2lvbiBhdCBzdGFydHVwLiBkaXNhYmxlZCBieSBkZWZhdWx0LlxuLSBTYXZlIHJ1bm5pbmcgYXBwcyBhbmQgd2luZG93cyBhdXRvbWF0aWNhbGx5IHdoZW4gbmVjZXNzYXJ5LCB0aGlzIHdpbGwgYmUgdXNlZCB0byByZXN0b3JlIHRoZSBwcmV2aW91cyBzZXNzaW9uIGF0IHN0YXJ0dXAuXG4tIENsb3NlIHJ1bm5pbmcgYXBwcyBhbmQgd2luZG93cyBhdXRvbWF0aWNhbGx5IGJlZm9yZSBMb2cgT3V0LCBSZXN0YXJ0LCBQb3dlciBPZmYuIGRpc2FibGVkIGJ5IGRlZmF1bHQuXG4tIENsb3NlIHJ1bm5pbmcgd2luZG93cyBncmFjZWZ1bGx5XG4tIENsb3NlIGFwcHMgd2l0aCBtdWx0aXBsZSB3aW5kb3dzIGdyYWNlZnVsbHkgdmlhIHlkb3Rvb2wgc28geW91IGRvbid0IGxvc2Ugc2Vzc2lvbnMgb2YgdGhpcyBhcHAgKFNlZSBhbHNvOiBIb3cgdG8gbWFrZSBDbG9zZSBieSBydWxlcyB3b3JrKVxuLSBTYXZlIHJ1bm5pbmcgYXBwcyBhbmQgd2luZG93cyBtYW51YWxseVxuLSBSZXN0b3JlIGEgc2VsZWN0ZWQgc2Vzc2lvbiBhdCBzdGFydHVwIChTZWUgYWxzbzogIzkpLiBkaXNhYmxlZCBieSBkZWZhdWx0LlxuLSBSZXN0b3JlIGEgc2F2ZWQgc2Vzc2lvbiBtYW51YWxseVxuLSBSZXN0b3JlIHdpbmRvdyBzdGF0ZSwgaW5jbHVkaW5nIEFsd2F5cyBvbiBUb3AsIEFsd2F5cyBvbiBWaXNpYmxlIFdvcmtzcGFjZSBhbmQgbWF4aW1pemF0aW9uXG4tIFJlc3RvcmUgd2luZG93IHdvcmtzcGFjZSwgc2l6ZSBhbmQgcG9zaXRpb25cbi0gUmVzdG9yZSAyIGNvbHVtbiB3aW5kb3cgdGlsaW5nXG4tIFN0YXNoIGFsbCBzdXBwb3J0ZWQgd2luZG93IHN0YXRlcyBzbyB0aGF0IHRob3NlIHN0YXRlcyB3aWxsIGJlIHJlc3RvcmVkIGFmdGVyIGdub21lIHNoZWxsIHJlc3RhcnRzIHZpYSBBbHQrRjIgLT4gciBvciBraWxsYWxsIC0zIGdub21lLXNoZWxsLlxuLSBNb3ZlIHdpbmRvd3MgdG8gdGhlaXIgb3duIHdvcmtzcGFjZSBhY2NvcmRpbmcgdG8gYSBzYXZlZCBzZXNzaW9uXG4tIFN1cHBvcnQgbXVsdGktbW9uaXRvclxuLSBSZW1vdmUgc2F2ZWQgc2Vzc2lvbiB0byB0cmFzaFxuLSBTZWFyY2ggc2F2ZWQgc2Vzc2lvbiBieSB0aGUgc2Vzc2lvbiBuYW1lIGZ1enppbHlcblxuRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSB2aXNpdCBodHRwczovL2dpdGh1Yi5jb20vbmxwc3VnZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tYW5vdGhlci13aW5kb3ctc2Vzc2lvbi1tYW5hZ2VyL2Jsb2IvZmVhdHVyZS1jbG9zZS1zYXZlLXNlc3Npb24td2hpbGUtbG9nb3V0L1JFQURNRS5tZC5cblxuUGxlYXNlIHJlcG9ydCBpc3N1ZXMgb24gR2l0aHViLiIsCiAgIm5hbWUiOiAiQW5vdGhlciBXaW5kb3cgU2Vzc2lvbiBNYW5hZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ubHBzdWdlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1hbm90aGVyLXdpbmRvdy1zZXNzaW9uLW1hbmFnZXIiLAogICJ1dWlkIjogImFub3RoZXItd2luZG93LXNlc3Npb24tbWFuYWdlckBnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDEKfQ=="},
-    "45": {"version": "46", "sha256": "1gpww5ysrnm48jhq5wp6qw3fh17n98g7wngygm400iqzv1jr4xf9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIG9wZW4gd2luZG93cyBncmFjZWZ1bGx5IGFuZCBzYXZlIHRoZW0gYXMgYSBzZXNzaW9uLiBBbmQgeW91IGNhbiByZXN0b3JlIHRoZW0gd2hlbiBuZWNlc3NhcnkgbWFudWFsbHkgb3IgYXV0b21hdGljYWxseSBhdCBzdGFydHVwLiBNb3N0IGltcG9ydGFudGx5LCBpdCBzdXBwb3J0cyBib3RoIFgxMSBhbmQgV2F5bGFuZCFcblxuTWFpbiBmZWF0dXJlczpcbi0gUmVzdG9yZSB0aGUgcHJldmlvdXMgc2Vzc2lvbiBhdCBzdGFydHVwLiBkaXNhYmxlZCBieSBkZWZhdWx0LlxuLSBTYXZlIHJ1bm5pbmcgYXBwcyBhbmQgd2luZG93cyBhdXRvbWF0aWNhbGx5IHdoZW4gbmVjZXNzYXJ5LCB0aGlzIHdpbGwgYmUgdXNlZCB0byByZXN0b3JlIHRoZSBwcmV2aW91cyBzZXNzaW9uIGF0IHN0YXJ0dXAuXG4tIENsb3NlIHJ1bm5pbmcgYXBwcyBhbmQgd2luZG93cyBhdXRvbWF0aWNhbGx5IGJlZm9yZSBMb2cgT3V0LCBSZXN0YXJ0LCBQb3dlciBPZmYuIGRpc2FibGVkIGJ5IGRlZmF1bHQuXG4tIENsb3NlIHJ1bm5pbmcgd2luZG93cyBncmFjZWZ1bGx5XG4tIENsb3NlIGFwcHMgd2l0aCBtdWx0aXBsZSB3aW5kb3dzIGdyYWNlZnVsbHkgdmlhIHlkb3Rvb2wgc28geW91IGRvbid0IGxvc2Ugc2Vzc2lvbnMgb2YgdGhpcyBhcHAgKFNlZSBhbHNvOiBIb3cgdG8gbWFrZSBDbG9zZSBieSBydWxlcyB3b3JrKVxuLSBTYXZlIHJ1bm5pbmcgYXBwcyBhbmQgd2luZG93cyBtYW51YWxseVxuLSBSZXN0b3JlIGEgc2VsZWN0ZWQgc2Vzc2lvbiBhdCBzdGFydHVwIChTZWUgYWxzbzogIzkpLiBkaXNhYmxlZCBieSBkZWZhdWx0LlxuLSBSZXN0b3JlIGEgc2F2ZWQgc2Vzc2lvbiBtYW51YWxseVxuLSBSZXN0b3JlIHdpbmRvdyBzdGF0ZSwgaW5jbHVkaW5nIEFsd2F5cyBvbiBUb3AsIEFsd2F5cyBvbiBWaXNpYmxlIFdvcmtzcGFjZSBhbmQgbWF4aW1pemF0aW9uXG4tIFJlc3RvcmUgd2luZG93IHdvcmtzcGFjZSwgc2l6ZSBhbmQgcG9zaXRpb25cbi0gUmVzdG9yZSAyIGNvbHVtbiB3aW5kb3cgdGlsaW5nXG4tIFN0YXNoIGFsbCBzdXBwb3J0ZWQgd2luZG93IHN0YXRlcyBzbyB0aGF0IHRob3NlIHN0YXRlcyB3aWxsIGJlIHJlc3RvcmVkIGFmdGVyIGdub21lIHNoZWxsIHJlc3RhcnRzIHZpYSBBbHQrRjIgLT4gciBvciBraWxsYWxsIC0zIGdub21lLXNoZWxsLlxuLSBNb3ZlIHdpbmRvd3MgdG8gdGhlaXIgb3duIHdvcmtzcGFjZSBhY2NvcmRpbmcgdG8gYSBzYXZlZCBzZXNzaW9uXG4tIFN1cHBvcnQgbXVsdGktbW9uaXRvclxuLSBSZW1vdmUgc2F2ZWQgc2Vzc2lvbiB0byB0cmFzaFxuLSBTZWFyY2ggc2F2ZWQgc2Vzc2lvbiBieSB0aGUgc2Vzc2lvbiBuYW1lIGZ1enppbHlcblxuRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSB2aXNpdCBodHRwczovL2dpdGh1Yi5jb20vbmxwc3VnZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tYW5vdGhlci13aW5kb3ctc2Vzc2lvbi1tYW5hZ2VyL2Jsb2IvZmVhdHVyZS1jbG9zZS1zYXZlLXNlc3Npb24td2hpbGUtbG9nb3V0L1JFQURNRS5tZC5cblxuUGxlYXNlIHJlcG9ydCBpc3N1ZXMgb24gR2l0aHViLiIsCiAgIm5hbWUiOiAiQW5vdGhlciBXaW5kb3cgU2Vzc2lvbiBNYW5hZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25scHN1Z2UvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFub3RoZXItd2luZG93LXNlc3Npb24tbWFuYWdlciIsCiAgInV1aWQiOiAiYW5vdGhlci13aW5kb3ctc2Vzc2lvbi1tYW5hZ2VyQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0Ngp9"}
+    "45": {"version": "48", "sha256": "18pci2hhrdsk34hzij2lhs8n6rvzq6w5if8lj8hgcfr8gvlhh0vs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIG9wZW4gd2luZG93cyBncmFjZWZ1bGx5IGFuZCBzYXZlIHRoZW0gYXMgYSBzZXNzaW9uLiBBbmQgeW91IGNhbiByZXN0b3JlIHRoZW0gd2hlbiBuZWNlc3NhcnkgbWFudWFsbHkgb3IgYXV0b21hdGljYWxseSBhdCBzdGFydHVwLiBNb3N0IGltcG9ydGFudGx5LCBpdCBzdXBwb3J0cyBib3RoIFgxMSBhbmQgV2F5bGFuZCFcblxuTWFpbiBmZWF0dXJlczpcbi0gUmVzdG9yZSB0aGUgcHJldmlvdXMgc2Vzc2lvbiBhdCBzdGFydHVwLiBkaXNhYmxlZCBieSBkZWZhdWx0LlxuLSBTYXZlIHJ1bm5pbmcgYXBwcyBhbmQgd2luZG93cyBhdXRvbWF0aWNhbGx5IHdoZW4gbmVjZXNzYXJ5LCB0aGlzIHdpbGwgYmUgdXNlZCB0byByZXN0b3JlIHRoZSBwcmV2aW91cyBzZXNzaW9uIGF0IHN0YXJ0dXAuXG4tIENsb3NlIHJ1bm5pbmcgYXBwcyBhbmQgd2luZG93cyBhdXRvbWF0aWNhbGx5IGJlZm9yZSBMb2cgT3V0LCBSZXN0YXJ0LCBQb3dlciBPZmYuIGRpc2FibGVkIGJ5IGRlZmF1bHQuXG4tIENsb3NlIHJ1bm5pbmcgd2luZG93cyBncmFjZWZ1bGx5XG4tIENsb3NlIGFwcHMgd2l0aCBtdWx0aXBsZSB3aW5kb3dzIGdyYWNlZnVsbHkgdmlhIHlkb3Rvb2wgc28geW91IGRvbid0IGxvc2Ugc2Vzc2lvbnMgb2YgdGhpcyBhcHAgKFNlZSBhbHNvOiBIb3cgdG8gbWFrZSBDbG9zZSBieSBydWxlcyB3b3JrKVxuLSBTYXZlIHJ1bm5pbmcgYXBwcyBhbmQgd2luZG93cyBtYW51YWxseVxuLSBSZXN0b3JlIGEgc2VsZWN0ZWQgc2Vzc2lvbiBhdCBzdGFydHVwIChTZWUgYWxzbzogIzkpLiBkaXNhYmxlZCBieSBkZWZhdWx0LlxuLSBSZXN0b3JlIGEgc2F2ZWQgc2Vzc2lvbiBtYW51YWxseVxuLSBSZXN0b3JlIHdpbmRvdyBzdGF0ZSwgaW5jbHVkaW5nIEFsd2F5cyBvbiBUb3AsIEFsd2F5cyBvbiBWaXNpYmxlIFdvcmtzcGFjZSBhbmQgbWF4aW1pemF0aW9uXG4tIFJlc3RvcmUgd2luZG93IHdvcmtzcGFjZSwgc2l6ZSBhbmQgcG9zaXRpb25cbi0gUmVzdG9yZSAyIGNvbHVtbiB3aW5kb3cgdGlsaW5nXG4tIFN0YXNoIGFsbCBzdXBwb3J0ZWQgd2luZG93IHN0YXRlcyBzbyB0aGF0IHRob3NlIHN0YXRlcyB3aWxsIGJlIHJlc3RvcmVkIGFmdGVyIGdub21lIHNoZWxsIHJlc3RhcnRzIHZpYSBBbHQrRjIgLT4gciBvciBraWxsYWxsIC0zIGdub21lLXNoZWxsLlxuLSBNb3ZlIHdpbmRvd3MgdG8gdGhlaXIgb3duIHdvcmtzcGFjZSBhY2NvcmRpbmcgdG8gYSBzYXZlZCBzZXNzaW9uXG4tIFN1cHBvcnQgbXVsdGktbW9uaXRvclxuLSBSZW1vdmUgc2F2ZWQgc2Vzc2lvbiB0byB0cmFzaFxuLSBTZWFyY2ggc2F2ZWQgc2Vzc2lvbiBieSB0aGUgc2Vzc2lvbiBuYW1lIGZ1enppbHlcblxuRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSB2aXNpdCBodHRwczovL2dpdGh1Yi5jb20vbmxwc3VnZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tYW5vdGhlci13aW5kb3ctc2Vzc2lvbi1tYW5hZ2VyL2Jsb2IvZmVhdHVyZS1jbG9zZS1zYXZlLXNlc3Npb24td2hpbGUtbG9nb3V0L1JFQURNRS5tZC5cblxuUGxlYXNlIHJlcG9ydCBpc3N1ZXMgb24gR2l0aHViLiIsCiAgIm5hbWUiOiAiQW5vdGhlciBXaW5kb3cgU2Vzc2lvbiBNYW5hZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ubHBzdWdlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1hbm90aGVyLXdpbmRvdy1zZXNzaW9uLW1hbmFnZXIiLAogICJ1dWlkIjogImFub3RoZXItd2luZG93LXNlc3Npb24tbWFuYWdlckBnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDgKfQ=="},
+    "46": {"version": "48", "sha256": "18pci2hhrdsk34hzij2lhs8n6rvzq6w5if8lj8hgcfr8gvlhh0vs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIG9wZW4gd2luZG93cyBncmFjZWZ1bGx5IGFuZCBzYXZlIHRoZW0gYXMgYSBzZXNzaW9uLiBBbmQgeW91IGNhbiByZXN0b3JlIHRoZW0gd2hlbiBuZWNlc3NhcnkgbWFudWFsbHkgb3IgYXV0b21hdGljYWxseSBhdCBzdGFydHVwLiBNb3N0IGltcG9ydGFudGx5LCBpdCBzdXBwb3J0cyBib3RoIFgxMSBhbmQgV2F5bGFuZCFcblxuTWFpbiBmZWF0dXJlczpcbi0gUmVzdG9yZSB0aGUgcHJldmlvdXMgc2Vzc2lvbiBhdCBzdGFydHVwLiBkaXNhYmxlZCBieSBkZWZhdWx0LlxuLSBTYXZlIHJ1bm5pbmcgYXBwcyBhbmQgd2luZG93cyBhdXRvbWF0aWNhbGx5IHdoZW4gbmVjZXNzYXJ5LCB0aGlzIHdpbGwgYmUgdXNlZCB0byByZXN0b3JlIHRoZSBwcmV2aW91cyBzZXNzaW9uIGF0IHN0YXJ0dXAuXG4tIENsb3NlIHJ1bm5pbmcgYXBwcyBhbmQgd2luZG93cyBhdXRvbWF0aWNhbGx5IGJlZm9yZSBMb2cgT3V0LCBSZXN0YXJ0LCBQb3dlciBPZmYuIGRpc2FibGVkIGJ5IGRlZmF1bHQuXG4tIENsb3NlIHJ1bm5pbmcgd2luZG93cyBncmFjZWZ1bGx5XG4tIENsb3NlIGFwcHMgd2l0aCBtdWx0aXBsZSB3aW5kb3dzIGdyYWNlZnVsbHkgdmlhIHlkb3Rvb2wgc28geW91IGRvbid0IGxvc2Ugc2Vzc2lvbnMgb2YgdGhpcyBhcHAgKFNlZSBhbHNvOiBIb3cgdG8gbWFrZSBDbG9zZSBieSBydWxlcyB3b3JrKVxuLSBTYXZlIHJ1bm5pbmcgYXBwcyBhbmQgd2luZG93cyBtYW51YWxseVxuLSBSZXN0b3JlIGEgc2VsZWN0ZWQgc2Vzc2lvbiBhdCBzdGFydHVwIChTZWUgYWxzbzogIzkpLiBkaXNhYmxlZCBieSBkZWZhdWx0LlxuLSBSZXN0b3JlIGEgc2F2ZWQgc2Vzc2lvbiBtYW51YWxseVxuLSBSZXN0b3JlIHdpbmRvdyBzdGF0ZSwgaW5jbHVkaW5nIEFsd2F5cyBvbiBUb3AsIEFsd2F5cyBvbiBWaXNpYmxlIFdvcmtzcGFjZSBhbmQgbWF4aW1pemF0aW9uXG4tIFJlc3RvcmUgd2luZG93IHdvcmtzcGFjZSwgc2l6ZSBhbmQgcG9zaXRpb25cbi0gUmVzdG9yZSAyIGNvbHVtbiB3aW5kb3cgdGlsaW5nXG4tIFN0YXNoIGFsbCBzdXBwb3J0ZWQgd2luZG93IHN0YXRlcyBzbyB0aGF0IHRob3NlIHN0YXRlcyB3aWxsIGJlIHJlc3RvcmVkIGFmdGVyIGdub21lIHNoZWxsIHJlc3RhcnRzIHZpYSBBbHQrRjIgLT4gciBvciBraWxsYWxsIC0zIGdub21lLXNoZWxsLlxuLSBNb3ZlIHdpbmRvd3MgdG8gdGhlaXIgb3duIHdvcmtzcGFjZSBhY2NvcmRpbmcgdG8gYSBzYXZlZCBzZXNzaW9uXG4tIFN1cHBvcnQgbXVsdGktbW9uaXRvclxuLSBSZW1vdmUgc2F2ZWQgc2Vzc2lvbiB0byB0cmFzaFxuLSBTZWFyY2ggc2F2ZWQgc2Vzc2lvbiBieSB0aGUgc2Vzc2lvbiBuYW1lIGZ1enppbHlcblxuRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSB2aXNpdCBodHRwczovL2dpdGh1Yi5jb20vbmxwc3VnZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tYW5vdGhlci13aW5kb3ctc2Vzc2lvbi1tYW5hZ2VyL2Jsb2IvZmVhdHVyZS1jbG9zZS1zYXZlLXNlc3Npb24td2hpbGUtbG9nb3V0L1JFQURNRS5tZC5cblxuUGxlYXNlIHJlcG9ydCBpc3N1ZXMgb24gR2l0aHViLiIsCiAgIm5hbWUiOiAiQW5vdGhlciBXaW5kb3cgU2Vzc2lvbiBNYW5hZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ubHBzdWdlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1hbm90aGVyLXdpbmRvdy1zZXNzaW9uLW1hbmFnZXIiLAogICJ1dWlkIjogImFub3RoZXItd2luZG93LXNlc3Npb24tbWFuYWdlckBnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDgKfQ=="}
   }}
 , {"uuid": "prevent-double-empty-window@silliewous.nl", "name": "Prevent double empty window", "pname": "prevent-double-empty-window", "description": "Set MIN_NUMBER_WORKSPACES to 1 so there is only one empty workspace when there are no windows open.\n\nhttps://gitlab.com/g3786/prevent-double-empty-window", "link": "https://extensions.gnome.org/extension/4711/prevent-double-empty-window/", "shell_version_map": {
     "40": {"version": "4", "sha256": "1argllv64lxwr4p85gxzckl5zq9bwp1n07y9acw3zk43b1l3yn9j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBNSU5fTlVNQkVSX1dPUktTUEFDRVMgdG8gMSBzbyB0aGVyZSBpcyBvbmx5IG9uZSBlbXB0eSB3b3Jrc3BhY2Ugd2hlbiB0aGVyZSBhcmUgbm8gd2luZG93cyBvcGVuLlxuXG5odHRwczovL2dpdGxhYi5jb20vZzM3ODYvcHJldmVudC1kb3VibGUtZW1wdHktd2luZG93IiwKICAibmFtZSI6ICJQcmV2ZW50IGRvdWJsZSBlbXB0eSB3aW5kb3ciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJwcmV2ZW50LWRvdWJsZS1lbXB0eS13aW5kb3dAc2lsbGlld291cy5ubCIsCiAgInZlcnNpb24iOiA0Cn0="},
@@ -4441,14 +4502,14 @@
     "45": {"version": "26", "sha256": "050inkl5y31xgl5lgw03yd8gi7sdcclk53g64dckrmr289zl6khp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNtYXJ0IEF1dG8gTW92ZSBsZWFybnMgdGhlIHBvc2l0aW9uLCBzaXplLCBhbmQgd29ya3NwYWNlIG9mIHlvdXIgYXBwbGljYXRpb24gd2luZG93cyBhbmQgcmVzdG9yZXMgdGhlbSBvbiBzdWJzZXF1ZW50IGxhdW5jaGVzLiBTdXBwb3J0cyBXYXlsYW5kLlxuXG5OT1RFOiBPcHRpbWl6ZWQgZm9yIHVzZSB3aXRoIHN0YXRpYyB3b3Jrc3BhY2VzLiBGb3IgbW9yZSBjb250cm9sLCBzZXQgdGhlIGRlZmF1bHQgYmVoYXZpb3IgdG8gSUdOT1JFIGFuZCB0aGVuIHNlbGVjdGl2ZWx5IFJFU1RPUkUgb25seSBkZXNpcmVkIGFwcHMuXG5cbktOT1dOIElTU1VFUzogTXVsdGktbW9uaXRvciAgaXMgbm90IHlldCB3ZWxsIHN1cHBvcnRlZC4gWW91IG1heSBuZWVkIHRvIG1hbnVhbGx5IGRlbGV0ZSBTYXZlZCBXaW5kb3dzIGluIHByZWZlcmVuY2VzIGFmdGVyIGFkZGluZyBvciByZW1vdmluZyBhIGRpc3BsYXkuIiwKICAibmFtZSI6ICJTbWFydCBBdXRvIE1vdmUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAia2hpbWFyb3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc21hcnQtYXV0by1tb3ZlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9raGltYXJvcy9zbWFydC1hdXRvLW1vdmUiLAogICJ1dWlkIjogInNtYXJ0LWF1dG8tbW92ZUBraGltYXJvcy5jb20iLAogICJ2ZXJzaW9uIjogMjYKfQ=="},
     "46": {"version": "26", "sha256": "050inkl5y31xgl5lgw03yd8gi7sdcclk53g64dckrmr289zl6khp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNtYXJ0IEF1dG8gTW92ZSBsZWFybnMgdGhlIHBvc2l0aW9uLCBzaXplLCBhbmQgd29ya3NwYWNlIG9mIHlvdXIgYXBwbGljYXRpb24gd2luZG93cyBhbmQgcmVzdG9yZXMgdGhlbSBvbiBzdWJzZXF1ZW50IGxhdW5jaGVzLiBTdXBwb3J0cyBXYXlsYW5kLlxuXG5OT1RFOiBPcHRpbWl6ZWQgZm9yIHVzZSB3aXRoIHN0YXRpYyB3b3Jrc3BhY2VzLiBGb3IgbW9yZSBjb250cm9sLCBzZXQgdGhlIGRlZmF1bHQgYmVoYXZpb3IgdG8gSUdOT1JFIGFuZCB0aGVuIHNlbGVjdGl2ZWx5IFJFU1RPUkUgb25seSBkZXNpcmVkIGFwcHMuXG5cbktOT1dOIElTU1VFUzogTXVsdGktbW9uaXRvciAgaXMgbm90IHlldCB3ZWxsIHN1cHBvcnRlZC4gWW91IG1heSBuZWVkIHRvIG1hbnVhbGx5IGRlbGV0ZSBTYXZlZCBXaW5kb3dzIGluIHByZWZlcmVuY2VzIGFmdGVyIGFkZGluZyBvciByZW1vdmluZyBhIGRpc3BsYXkuIiwKICAibmFtZSI6ICJTbWFydCBBdXRvIE1vdmUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAia2hpbWFyb3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc21hcnQtYXV0by1tb3ZlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9raGltYXJvcy9zbWFydC1hdXRvLW1vdmUiLAogICJ1dWlkIjogInNtYXJ0LWF1dG8tbW92ZUBraGltYXJvcy5jb20iLAogICJ2ZXJzaW9uIjogMjYKfQ=="}
   }}
-, {"uuid": "hplip-menu2@grizzlysmit.smit.id.au", "name": "Alternate Menu for Hplip2", "pname": "alternate-menu-for-hplip2", "description": "control your hp printers by calling the device manager hp-toolbox, also some useful links\nMotivation: the hp-systray doesn't work reliably under gnome shell\nyou need to have installed hplip in order to use this\nChoice of using a printer icon or a hp_logo.png if it's installed in the same place as mine on Ubuntu\nyou could use symbolic links to fake the path.\nThis is a replacement for the old \"Alternate Menu for Hplip\" which doesn't work under the new Gome-Shell I have cleaned it up a bit and it has a few new menu's but it is still basically the same thing.\n Added even more menus all most all system settings ones.\n\nNote: the menu will be too big if your resolution is way too low like 800x600 I have no soln for this just now.\n\nDutch language support added by Vistaus (Heimen Stoffels) https://github.com/Vistaus\n\nyou'll need to restart gnome-shell after upgrades so either reboot,\nlog out and back in again, or if your using X11 then alt+F2 then run r", "link": "https://extensions.gnome.org/extension/4739/alternate-menu-for-hplip2/", "shell_version_map": {
+, {"uuid": "hplip-menu2@grizzlysmit.smit.id.au", "name": "Alternate Menu for Hplip2", "pname": "alternate-menu-for-hplip2", "description": "control your hp printers by calling the device manager hp-toolbox, also some useful links\nMotivation: the hp-systray doesn't work reliably under gnome shell\nyou need to have installed hplip in order to use this\nChoice of using a printer icon or a hp_logo.png if it's installed in the same place as mine on Ubuntu\nyou could use symbolic links to fake the path.\nThis is a replacement for the old \"Alternate Menu for Hplip\" which doesn't work under the new Gome-Shell I have cleaned it up a bit and it has a few new menu's but it is still basically the same thing.\n Added even more menus all most all system settings ones.\n\nNew: the menu will be too big if your resolution is way too low like 800x600 I have implemented a compact option in the settings, if you use it the menu will become a two colomn compact format and will fit even on such a low resolution.\n\nDutch language support added by Vistaus (Heimen Stoffels) https://github.com/Vistaus\n\nyou'll need to restart gnome-shell after upgrades so either reboot,\nlog out and back in again, or if your using X11 then alt+F2 then run r", "link": "https://extensions.gnome.org/extension/4739/alternate-menu-for-hplip2/", "shell_version_map": {
     "40": {"version": "11", "sha256": "19h44pn5afqc89vn5xjrhmd375651zhf2w78cs8fgazp7pc0hsr6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy5cblxuRHV0Y2ggbGFuZ3VhZ2Ugc3VwcG9ydCBhZGRlZCBieSBWaXN0YXVzIChIZWltZW4gU3RvZmZlbHMpIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXN0YXVzXG5cbnlvdSdsbCBuZWVkIHRvIHJlc3RhcnQgZ25vbWUtc2hlbGwgYWZ0ZXIgdXBncmFkZXMgc28gZWl0aGVyIHJlYm9vdCxcbmxvZyBvdXQgYW5kIGJhY2sgaW4gYWdhaW4sIG9yIGlmIHlvdXIgdXNpbmcgWDExIHRoZW4gYWx0K0YyIHRoZW4gcnVuIHIiLAogICJuYW1lIjogIkFsdGVybmF0ZSBNZW51IGZvciBIcGxpcDIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaHBsaXAtbWVudTIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dyaXp6bHlzbWl0L2hwbGlwLW1lbnUyLWdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ1dWlkIjogImhwbGlwLW1lbnUyQGdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
     "41": {"version": "11", "sha256": "19h44pn5afqc89vn5xjrhmd375651zhf2w78cs8fgazp7pc0hsr6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy5cblxuRHV0Y2ggbGFuZ3VhZ2Ugc3VwcG9ydCBhZGRlZCBieSBWaXN0YXVzIChIZWltZW4gU3RvZmZlbHMpIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXN0YXVzXG5cbnlvdSdsbCBuZWVkIHRvIHJlc3RhcnQgZ25vbWUtc2hlbGwgYWZ0ZXIgdXBncmFkZXMgc28gZWl0aGVyIHJlYm9vdCxcbmxvZyBvdXQgYW5kIGJhY2sgaW4gYWdhaW4sIG9yIGlmIHlvdXIgdXNpbmcgWDExIHRoZW4gYWx0K0YyIHRoZW4gcnVuIHIiLAogICJuYW1lIjogIkFsdGVybmF0ZSBNZW51IGZvciBIcGxpcDIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaHBsaXAtbWVudTIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dyaXp6bHlzbWl0L2hwbGlwLW1lbnUyLWdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ1dWlkIjogImhwbGlwLW1lbnUyQGdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
     "42": {"version": "11", "sha256": "19h44pn5afqc89vn5xjrhmd375651zhf2w78cs8fgazp7pc0hsr6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy5cblxuRHV0Y2ggbGFuZ3VhZ2Ugc3VwcG9ydCBhZGRlZCBieSBWaXN0YXVzIChIZWltZW4gU3RvZmZlbHMpIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXN0YXVzXG5cbnlvdSdsbCBuZWVkIHRvIHJlc3RhcnQgZ25vbWUtc2hlbGwgYWZ0ZXIgdXBncmFkZXMgc28gZWl0aGVyIHJlYm9vdCxcbmxvZyBvdXQgYW5kIGJhY2sgaW4gYWdhaW4sIG9yIGlmIHlvdXIgdXNpbmcgWDExIHRoZW4gYWx0K0YyIHRoZW4gcnVuIHIiLAogICJuYW1lIjogIkFsdGVybmF0ZSBNZW51IGZvciBIcGxpcDIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaHBsaXAtbWVudTIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dyaXp6bHlzbWl0L2hwbGlwLW1lbnUyLWdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ1dWlkIjogImhwbGlwLW1lbnUyQGdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
     "43": {"version": "11", "sha256": "19h44pn5afqc89vn5xjrhmd375651zhf2w78cs8fgazp7pc0hsr6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy5cblxuRHV0Y2ggbGFuZ3VhZ2Ugc3VwcG9ydCBhZGRlZCBieSBWaXN0YXVzIChIZWltZW4gU3RvZmZlbHMpIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXN0YXVzXG5cbnlvdSdsbCBuZWVkIHRvIHJlc3RhcnQgZ25vbWUtc2hlbGwgYWZ0ZXIgdXBncmFkZXMgc28gZWl0aGVyIHJlYm9vdCxcbmxvZyBvdXQgYW5kIGJhY2sgaW4gYWdhaW4sIG9yIGlmIHlvdXIgdXNpbmcgWDExIHRoZW4gYWx0K0YyIHRoZW4gcnVuIHIiLAogICJuYW1lIjogIkFsdGVybmF0ZSBNZW51IGZvciBIcGxpcDIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaHBsaXAtbWVudTIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dyaXp6bHlzbWl0L2hwbGlwLW1lbnUyLWdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ1dWlkIjogImhwbGlwLW1lbnUyQGdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
     "44": {"version": "11", "sha256": "19h44pn5afqc89vn5xjrhmd375651zhf2w78cs8fgazp7pc0hsr6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy5cblxuRHV0Y2ggbGFuZ3VhZ2Ugc3VwcG9ydCBhZGRlZCBieSBWaXN0YXVzIChIZWltZW4gU3RvZmZlbHMpIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXN0YXVzXG5cbnlvdSdsbCBuZWVkIHRvIHJlc3RhcnQgZ25vbWUtc2hlbGwgYWZ0ZXIgdXBncmFkZXMgc28gZWl0aGVyIHJlYm9vdCxcbmxvZyBvdXQgYW5kIGJhY2sgaW4gYWdhaW4sIG9yIGlmIHlvdXIgdXNpbmcgWDExIHRoZW4gYWx0K0YyIHRoZW4gcnVuIHIiLAogICJuYW1lIjogIkFsdGVybmF0ZSBNZW51IGZvciBIcGxpcDIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaHBsaXAtbWVudTIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dyaXp6bHlzbWl0L2hwbGlwLW1lbnUyLWdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ1dWlkIjogImhwbGlwLW1lbnUyQGdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
-    "45": {"version": "22", "sha256": "1smy8rmi6vxwgkdk3h9mffx9lkv2v5yn8hgn66wlm989bndyvxrw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy5cblxuRHV0Y2ggbGFuZ3VhZ2Ugc3VwcG9ydCBhZGRlZCBieSBWaXN0YXVzIChIZWltZW4gU3RvZmZlbHMpIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXN0YXVzXG5cbnlvdSdsbCBuZWVkIHRvIHJlc3RhcnQgZ25vbWUtc2hlbGwgYWZ0ZXIgdXBncmFkZXMgc28gZWl0aGVyIHJlYm9vdCxcbmxvZyBvdXQgYW5kIGJhY2sgaW4gYWdhaW4sIG9yIGlmIHlvdXIgdXNpbmcgWDExIHRoZW4gYWx0K0YyIHRoZW4gcnVuIHIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJocGxpcC1tZW51MiIsCiAgIm5hbWUiOiAiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwMiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ocGxpcC1tZW51MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ3JpenpseXNtaXQvaHBsaXAtbWVudTItZ3JpenpseXNtaXQuc21pdC5pZC5hdSIsCiAgInV1aWQiOiAiaHBsaXAtbWVudTJAZ3JpenpseXNtaXQuc21pdC5pZC5hdSIsCiAgInZlcnNpb24iOiAyMgp9"},
-    "46": {"version": "22", "sha256": "1smy8rmi6vxwgkdk3h9mffx9lkv2v5yn8hgn66wlm989bndyvxrw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy5cblxuRHV0Y2ggbGFuZ3VhZ2Ugc3VwcG9ydCBhZGRlZCBieSBWaXN0YXVzIChIZWltZW4gU3RvZmZlbHMpIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXN0YXVzXG5cbnlvdSdsbCBuZWVkIHRvIHJlc3RhcnQgZ25vbWUtc2hlbGwgYWZ0ZXIgdXBncmFkZXMgc28gZWl0aGVyIHJlYm9vdCxcbmxvZyBvdXQgYW5kIGJhY2sgaW4gYWdhaW4sIG9yIGlmIHlvdXIgdXNpbmcgWDExIHRoZW4gYWx0K0YyIHRoZW4gcnVuIHIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJocGxpcC1tZW51MiIsCiAgIm5hbWUiOiAiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwMiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ocGxpcC1tZW51MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ3JpenpseXNtaXQvaHBsaXAtbWVudTItZ3JpenpseXNtaXQuc21pdC5pZC5hdSIsCiAgInV1aWQiOiAiaHBsaXAtbWVudTJAZ3JpenpseXNtaXQuc21pdC5pZC5hdSIsCiAgInZlcnNpb24iOiAyMgp9"}
+    "45": {"version": "23", "sha256": "128c5qbm3sirk3slaxqallij1zr13jf9mfc50pr7dlv42bbgh864", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy5cblxuRHV0Y2ggbGFuZ3VhZ2Ugc3VwcG9ydCBhZGRlZCBieSBWaXN0YXVzIChIZWltZW4gU3RvZmZlbHMpIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXN0YXVzXG5cbnlvdSdsbCBuZWVkIHRvIHJlc3RhcnQgZ25vbWUtc2hlbGwgYWZ0ZXIgdXBncmFkZXMgc28gZWl0aGVyIHJlYm9vdCxcbmxvZyBvdXQgYW5kIGJhY2sgaW4gYWdhaW4sIG9yIGlmIHlvdXIgdXNpbmcgWDExIHRoZW4gYWx0K0YyIHRoZW4gcnVuIHIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJocGxpcC1tZW51MiIsCiAgIm5hbWUiOiAiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwMiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ocGxpcC1tZW51MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ3JpenpseXNtaXQvaHBsaXAtbWVudTItZ3JpenpseXNtaXQuc21pdC5pZC5hdSIsCiAgInV1aWQiOiAiaHBsaXAtbWVudTJAZ3JpenpseXNtaXQuc21pdC5pZC5hdSIsCiAgInZlcnNpb24iOiAyMwp9"},
+    "46": {"version": "35", "sha256": "08g1l2w8pkcay7bqbkl3a99yncvmnlxhx9m5cvqndqn44m6a9wxz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cblRoZSBjb21tcGFjdCBtb2RlIHVzZXMgY29kZSBmcm9tIHRoZSBBcHBzIE1lbnUgYnkgZm11ZWxsbmVyXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5OZXc6IHRoZSBtZW51IHdpbGwgYmUgdG9vIGJpZyBpZiB5b3VyIHJlc29sdXRpb24gaXMgd2F5IHRvbyBsb3cgbGlrZSA4MDB4NjAwIEkgaGF2ZSBpbXBsZW1lbnRlZCBhIGNvbXBhY3Qgb3B0aW9uIGluIHRoZSBzZXR0aW5ncywgaWYgeW91IHVzZSBpdCB0aGUgbWVudSB3aWxsIGJlY29tZSBhIHR3byBjb2xvbW4gY29tcGFjdCBmb3JtYXQgYW5kIHdpbGwgZml0IGV2ZW4gb24gc3VjaCBhIGxvdyByZXNvbHV0aW9uLlxuXG5EdXRjaCBsYW5ndWFnZSBzdXBwb3J0IGFkZGVkIGJ5IFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxueW91J2xsIG5lZWQgdG8gcmVzdGFydCBnbm9tZS1zaGVsbCBhZnRlciB1cGdyYWRlcyBzbyBlaXRoZXIgcmVib290LFxubG9nIG91dCBhbmQgYmFjayBpbiBhZ2Fpbiwgb3IgaWYgeW91ciB1c2luZyBYMTEgdGhlbiBhbHQrRjIgdGhlbiBydW4gciIsCiAgImdldHRleHQtZG9tYWluIjogImhwbGlwLW1lbnUyIiwKICAibmFtZSI6ICJBbHRlcm5hdGUgTWVudSBmb3IgSHBsaXAyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhwbGlwLW1lbnUyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dyaXp6bHlzbWl0L2hwbGlwLW1lbnUyLWdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ1dWlkIjogImhwbGlwLW1lbnUyQGdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ2ZXJzaW9uIjogMzUKfQ=="}
   }}
 , {"uuid": "dash-from-panel@fthx", "name": "Dash from Panel", "pname": "dash-from-panel", "description": "NOT MAINTAINED ANYMORE\n\nTop dock for GNOME 40+. Hover top panel and GNOME Shell dash appears without overview.\n\n Scroll on dock or panel changes workspace. Preferences UI.\n\n Does use native GNOME Shell Dash. Very light extension.\n\n Please report bugs through GitHub.", "link": "https://extensions.gnome.org/extension/4741/dash-from-panel/", "shell_version_map": {
     "40": {"version": "3", "sha256": "18ikbd1hxlc6rd28dnif2x74g3q9gdkgxc6jpag6qh7c51qd5klz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5PVCBNQUlOVEFJTkVEIEFOWU1PUkVcblxuVG9wIGRvY2sgZm9yIEdOT01FIDQwKy4gSG92ZXIgdG9wIHBhbmVsIGFuZCBHTk9NRSBTaGVsbCBkYXNoIGFwcGVhcnMgd2l0aG91dCBvdmVydmlldy5cblxuIFNjcm9sbCBvbiBkb2NrIG9yIHBhbmVsIGNoYW5nZXMgd29ya3NwYWNlLiBQcmVmZXJlbmNlcyBVSS5cblxuIERvZXMgdXNlIG5hdGl2ZSBHTk9NRSBTaGVsbCBEYXNoLiBWZXJ5IGxpZ2h0IGV4dGVuc2lvbi5cblxuIFBsZWFzZSByZXBvcnQgYnVncyB0aHJvdWdoIEdpdEh1Yi4iLAogICJuYW1lIjogIkRhc2ggZnJvbSBQYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvZGFzaC1mcm9tLXBhbmVsIiwKICAidXVpZCI6ICJkYXNoLWZyb20tcGFuZWxAZnRoeCIsCiAgInZlcnNpb24iOiAzCn0="},
@@ -4477,7 +4538,8 @@
     "42": {"version": "9", "sha256": "00k8nh5dwvdgbax9051yn8462axpsixfa45hw77j2gnlxfkx5577", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIHVzZSBZYWt1YWtlIG9uIEdub21lLiBBZGRzIGEgZ2xvYmFsIHNob3J0Y3V0IHRvIHNob3cvaGlkZSB5YWt1YWtlIGFuZCBtYWtlcyB0aGUgY29uc29sZSBhcHBlYXIgZm9jdXNzZWQuIiwKICAibmFtZSI6ICJZYWt1YWtlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGJlcnR2YWthL3lha3Vha2UtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ5YWt1YWtlLWV4dGVuc2lvbkBrZGUub3JnIiwKICAidmVyc2lvbiI6IDkKfQ=="},
     "43": {"version": "9", "sha256": "00k8nh5dwvdgbax9051yn8462axpsixfa45hw77j2gnlxfkx5577", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIHVzZSBZYWt1YWtlIG9uIEdub21lLiBBZGRzIGEgZ2xvYmFsIHNob3J0Y3V0IHRvIHNob3cvaGlkZSB5YWt1YWtlIGFuZCBtYWtlcyB0aGUgY29uc29sZSBhcHBlYXIgZm9jdXNzZWQuIiwKICAibmFtZSI6ICJZYWt1YWtlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGJlcnR2YWthL3lha3Vha2UtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ5YWt1YWtlLWV4dGVuc2lvbkBrZGUub3JnIiwKICAidmVyc2lvbiI6IDkKfQ=="},
     "44": {"version": "9", "sha256": "00k8nh5dwvdgbax9051yn8462axpsixfa45hw77j2gnlxfkx5577", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIHVzZSBZYWt1YWtlIG9uIEdub21lLiBBZGRzIGEgZ2xvYmFsIHNob3J0Y3V0IHRvIHNob3cvaGlkZSB5YWt1YWtlIGFuZCBtYWtlcyB0aGUgY29uc29sZSBhcHBlYXIgZm9jdXNzZWQuIiwKICAibmFtZSI6ICJZYWt1YWtlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGJlcnR2YWthL3lha3Vha2UtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ5YWt1YWtlLWV4dGVuc2lvbkBrZGUub3JnIiwKICAidmVyc2lvbiI6IDkKfQ=="},
-    "45": {"version": "11", "sha256": "0259dg2950qa88asd23zqdsyf926kyyzmg14rv6cbz0vzq5mspb1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIHVzZSBZYWt1YWtlIG9uIEdub21lLiBBZGRzIGEgZ2xvYmFsIHNob3J0Y3V0IHRvIHNob3cvaGlkZSB5YWt1YWtlIGFuZCBtYWtlcyB0aGUgY29uc29sZSBhcHBlYXIgZm9jdXNzZWQuIiwKICAibmFtZSI6ICJZYWt1YWtlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnlha3Vha2UtZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsYmVydHZha2EveWFrdWFrZS1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInlha3Vha2UtZXh0ZW5zaW9uQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogMTEKfQ=="}
+    "45": {"version": "12", "sha256": "0s1gfa4a2dc658cd5j7j8d77id3cwxxk87n6rvhkprrdgz98rwfa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIHVzZSBZYWt1YWtlIG9uIEdub21lLiBBZGRzIGEgZ2xvYmFsIHNob3J0Y3V0IHRvIHNob3cvaGlkZSB5YWt1YWtlIGFuZCBtYWtlcyB0aGUgY29uc29sZSBhcHBlYXIgZm9jdXNzZWQuIiwKICAibmFtZSI6ICJZYWt1YWtlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnlha3Vha2UtZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGJlcnR2YWthL3lha3Vha2UtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ5YWt1YWtlLWV4dGVuc2lvbkBrZGUub3JnIiwKICAidmVyc2lvbiI6IDEyCn0="},
+    "46": {"version": "12", "sha256": "0s1gfa4a2dc658cd5j7j8d77id3cwxxk87n6rvhkprrdgz98rwfa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIHVzZSBZYWt1YWtlIG9uIEdub21lLiBBZGRzIGEgZ2xvYmFsIHNob3J0Y3V0IHRvIHNob3cvaGlkZSB5YWt1YWtlIGFuZCBtYWtlcyB0aGUgY29uc29sZSBhcHBlYXIgZm9jdXNzZWQuIiwKICAibmFtZSI6ICJZYWt1YWtlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnlha3Vha2UtZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGJlcnR2YWthL3lha3Vha2UtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ5YWt1YWtlLWV4dGVuc2lvbkBrZGUub3JnIiwKICAidmVyc2lvbiI6IDEyCn0="}
   }}
 , {"uuid": "dnf-shotcuts@rx1310", "name": "Shortcuts for DNF", "pname": "shortcuts-for-dnf", "description": "A small extension that adds buttons to the panel to check for DNF updates through the terminal without entering commands.", "link": "https://extensions.gnome.org/extension/4758/shortcuts-for-dnf/", "shell_version_map": {
     "38": {"version": "4", "sha256": "0hknf92ijxg6xcadk7sac3qvlc8lpyf80013vkmzai7bbbbcypsm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc21hbGwgZXh0ZW5zaW9uIHRoYXQgYWRkcyBidXR0b25zIHRvIHRoZSBwYW5lbCB0byBjaGVjayBmb3IgRE5GIHVwZGF0ZXMgdGhyb3VnaCB0aGUgdGVybWluYWwgd2l0aG91dCBlbnRlcmluZyBjb21tYW5kcy4iLAogICJuYW1lIjogIlNob3J0Y3V0cyBmb3IgRE5GIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcngxMzEwL2dub21lLWV4dGVuc2lvbl9hcHR1cGRhdGUiLAogICJ1dWlkIjogImRuZi1zaG90Y3V0c0ByeDEzMTAiLAogICJ2ZXJzaW9uIjogNAp9"},
@@ -4533,8 +4595,8 @@
     "42": {"version": "4", "sha256": "07pycv9wkri4qk1nkrqrxykrcjfd0pqj525z74kcjy8ji85n63vn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIHRvIHRoZSBzcGVjaWZpZWQgd29ya3NwYWNlIG9uIGxvZ2luLlxuVXNlZnVsIGZvciBmaXhlZCBudW1iZXIgb2Ygd29ya3NwYWNlIHNldHVwcyB3aGVyZSB0aGUgZmlyc3Qgd29ya3NwYWNlIGlzbid0IHRoZSBtYWluIG9uZS4iLAogICJuYW1lIjogIkRlZmF1bHQgV29ya3NwYWNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NYXRldXNSb2RDb3N0YS9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGVmYXVsdC13b3Jrc3BhY2UiLAogICJ1dWlkIjogImRlZmF1bHQtd29ya3NwYWNlQG1hdGV1c3JvZGNvc3RhLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="},
     "43": {"version": "4", "sha256": "07pycv9wkri4qk1nkrqrxykrcjfd0pqj525z74kcjy8ji85n63vn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIHRvIHRoZSBzcGVjaWZpZWQgd29ya3NwYWNlIG9uIGxvZ2luLlxuVXNlZnVsIGZvciBmaXhlZCBudW1iZXIgb2Ygd29ya3NwYWNlIHNldHVwcyB3aGVyZSB0aGUgZmlyc3Qgd29ya3NwYWNlIGlzbid0IHRoZSBtYWluIG9uZS4iLAogICJuYW1lIjogIkRlZmF1bHQgV29ya3NwYWNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NYXRldXNSb2RDb3N0YS9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGVmYXVsdC13b3Jrc3BhY2UiLAogICJ1dWlkIjogImRlZmF1bHQtd29ya3NwYWNlQG1hdGV1c3JvZGNvc3RhLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="},
     "44": {"version": "4", "sha256": "07pycv9wkri4qk1nkrqrxykrcjfd0pqj525z74kcjy8ji85n63vn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIHRvIHRoZSBzcGVjaWZpZWQgd29ya3NwYWNlIG9uIGxvZ2luLlxuVXNlZnVsIGZvciBmaXhlZCBudW1iZXIgb2Ygd29ya3NwYWNlIHNldHVwcyB3aGVyZSB0aGUgZmlyc3Qgd29ya3NwYWNlIGlzbid0IHRoZSBtYWluIG9uZS4iLAogICJuYW1lIjogIkRlZmF1bHQgV29ya3NwYWNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NYXRldXNSb2RDb3N0YS9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGVmYXVsdC13b3Jrc3BhY2UiLAogICJ1dWlkIjogImRlZmF1bHQtd29ya3NwYWNlQG1hdGV1c3JvZGNvc3RhLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="},
-    "45": {"version": "7", "sha256": "0f6fy2zwcz8i19bpmswy09ajs30m5cg17q8s78qr879g4184x3za", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIHRvIHRoZSBzcGVjaWZpZWQgd29ya3NwYWNlIG9uIGxvZ2luLlxuVXNlZnVsIGZvciBmaXhlZCBudW1iZXIgb2Ygd29ya3NwYWNlIHNldHVwcyB3aGVyZSB0aGUgZmlyc3Qgd29ya3NwYWNlIGlzbid0IHRoZSBtYWluIG9uZS4iLAogICJuYW1lIjogIkRlZmF1bHQgV29ya3NwYWNlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlZmF1bHQtd29ya3NwYWNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NYXRldXNSb2RDb3N0YS9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGVmYXVsdC13b3Jrc3BhY2UiLAogICJ1dWlkIjogImRlZmF1bHQtd29ya3NwYWNlQG1hdGV1c3JvZGNvc3RhLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="},
-    "46": {"version": "7", "sha256": "0f6fy2zwcz8i19bpmswy09ajs30m5cg17q8s78qr879g4184x3za", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIHRvIHRoZSBzcGVjaWZpZWQgd29ya3NwYWNlIG9uIGxvZ2luLlxuVXNlZnVsIGZvciBmaXhlZCBudW1iZXIgb2Ygd29ya3NwYWNlIHNldHVwcyB3aGVyZSB0aGUgZmlyc3Qgd29ya3NwYWNlIGlzbid0IHRoZSBtYWluIG9uZS4iLAogICJuYW1lIjogIkRlZmF1bHQgV29ya3NwYWNlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlZmF1bHQtd29ya3NwYWNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NYXRldXNSb2RDb3N0YS9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGVmYXVsdC13b3Jrc3BhY2UiLAogICJ1dWlkIjogImRlZmF1bHQtd29ya3NwYWNlQG1hdGV1c3JvZGNvc3RhLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}
+    "45": {"version": "8", "sha256": "0xnzwymyvks9xwzwn3b6pm5p0ks5i6iyqw03kljqqy0g4dkjwks4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIHRvIHRoZSBzcGVjaWZpZWQgd29ya3NwYWNlIG9uIGxvZ2luLlxuVXNlZnVsIGZvciBmaXhlZCBudW1iZXIgb2Ygd29ya3NwYWNlIHNldHVwcyB3aGVyZSB0aGUgZmlyc3Qgd29ya3NwYWNlIGlzbid0IHRoZSBtYWluIG9uZS4iLAogICJuYW1lIjogIkRlZmF1bHQgV29ya3NwYWNlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlZmF1bHQtd29ya3NwYWNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NYXRldXNSb2RDb3N0YS9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGVmYXVsdC13b3Jrc3BhY2UiLAogICJ1dWlkIjogImRlZmF1bHQtd29ya3NwYWNlQG1hdGV1c3JvZGNvc3RhLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="},
+    "46": {"version": "8", "sha256": "0xnzwymyvks9xwzwn3b6pm5p0ks5i6iyqw03kljqqy0g4dkjwks4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIHRvIHRoZSBzcGVjaWZpZWQgd29ya3NwYWNlIG9uIGxvZ2luLlxuVXNlZnVsIGZvciBmaXhlZCBudW1iZXIgb2Ygd29ya3NwYWNlIHNldHVwcyB3aGVyZSB0aGUgZmlyc3Qgd29ya3NwYWNlIGlzbid0IHRoZSBtYWluIG9uZS4iLAogICJuYW1lIjogIkRlZmF1bHQgV29ya3NwYWNlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlZmF1bHQtd29ya3NwYWNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NYXRldXNSb2RDb3N0YS9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGVmYXVsdC13b3Jrc3BhY2UiLAogICJ1dWlkIjogImRlZmF1bHQtd29ya3NwYWNlQG1hdGV1c3JvZGNvc3RhLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}
   }}
 , {"uuid": "alt-mouse@eexpss.gmail.com", "name": "Alt Mouse", "pname": "alt-mouse", "description": "* Alt + Mouse control window\nDetailed instructions are on the home page and in config interface. \nDisable desktop BackgroundMenu, Disable Panel dragMode. \nAdd a gap at right screen edge. \nAdd Top-Left and Top-Right corner as hot coner.", "link": "https://extensions.gnome.org/extension/4786/alt-mouse/", "shell_version_map": {
     "40": {"version": "12", "sha256": "1kcsbvvm6wigw0h2d23rx4vsqdawa7m5gfynjdc9xzxn3q8sxx0b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQWx0ICsgTW91c2UgY29udHJvbCB3aW5kb3dcbkRldGFpbGVkIGluc3RydWN0aW9ucyBhcmUgb24gdGhlIGhvbWUgcGFnZSBhbmQgaW4gY29uZmlnIGludGVyZmFjZS4gXG5EaXNhYmxlIGRlc2t0b3AgQmFja2dyb3VuZE1lbnUsIERpc2FibGUgUGFuZWwgZHJhZ01vZGUuIFxuQWRkIGEgZ2FwIGF0IHJpZ2h0IHNjcmVlbiBlZGdlLiBcbkFkZCBUb3AtTGVmdCBhbmQgVG9wLVJpZ2h0IGNvcm5lciBhcyBob3QgY29uZXIuIiwKICAibmFtZSI6ICJBbHQgTW91c2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lZXhwcmVzcy9ncy1hbHQtbW91c2UiLAogICJ1dWlkIjogImFsdC1tb3VzZUBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDEyCn0="},
@@ -4579,8 +4641,8 @@
     "42": {"version": "13", "sha256": "07l1vgv9zhyh8q2h0gnn69x7h8gfn8x9q34p9lab7w08s4zn2rnb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZS9EaXNhYmxlIGJhdHRlcnkgdGhyZXNob2xkIG9uIExlbm92byBUaGlua3BhZCBsYXB0b3BzLlxuXG5JZiB5b3UgbWFpbmx5IHVzZSB0aGUgc3lzdGVtIHdpdGggdGhlIEFDIHBvd2VyIGFkYXB0ZXIgY29ubmVjdGVkIGFuZCBvbmx5IHVzZSB0aGUgYmF0dGVyeSBzcG9yYWRpY2FsbHksIHlvdSBjYW4gaW5jcmVhc2UgYmF0dGVyeSBsaWZlIGJ5IHNldHRpbmcgdGhlIG1heGltdW0gY2hhcmdlIHZhbHVlIHRvIGxlc3MgdGhhbiAxMDAlLiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNlIGJhdHRlcmllcyB0aGF0IGFyZSB1c2VkIHNwb3JhZGljYWxseSBoYXZlIGEgbG9uZ2VyIGxpZmVzcGFuIHdoZW4ga2VwdCBhdCBsZXNzIHRoYW4gZnVsbCBjaGFyZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGRAbWFyY29zZGFsdmFyZXoub3JnIiwKICAibmFtZSI6ICJUaGlua3BhZCBCYXR0ZXJ5IFRocmVzaG9sZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL21hcmNvc2RhbHZhcmV6L3RoaW5rcGFkLWJhdHRlcnktdGhyZXNob2xkLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGRAbWFyY29zZGFsdmFyZXoub3JnIiwKICAidmVyc2lvbiI6IDEzCn0="},
     "43": {"version": "34", "sha256": "0ii1pxbnfjjli8jj0fq1g1rlhzpbn1j9088jp0sjrxvdlrmksdzv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZS9EaXNhYmxlIGJhdHRlcnkgdGhyZXNob2xkIG9uIExlbm92byBUaGlua3BhZCBsYXB0b3BzLlxuXG5JZiB5b3UgbWFpbmx5IHVzZSB0aGUgc3lzdGVtIHdpdGggdGhlIEFDIHBvd2VyIGFkYXB0ZXIgY29ubmVjdGVkIGFuZCBvbmx5IHVzZSB0aGUgYmF0dGVyeSBzcG9yYWRpY2FsbHksIHlvdSBjYW4gaW5jcmVhc2UgYmF0dGVyeSBsaWZlIGJ5IHNldHRpbmcgdGhlIG1heGltdW0gY2hhcmdlIHZhbHVlIHRvIGxlc3MgdGhhbiAxMDAlLiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNlIGJhdHRlcmllcyB0aGF0IGFyZSB1c2VkIHNwb3JhZGljYWxseSBoYXZlIGEgbG9uZ2VyIGxpZmVzcGFuIHdoZW4ga2VwdCBhdCBsZXNzIHRoYW4gZnVsbCBjaGFyZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGRAbWFyY29zZGFsdmFyZXoub3JnIiwKICAibmFtZSI6ICJUaGlua3BhZCBCYXR0ZXJ5IFRocmVzaG9sZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbWFyY29zZGFsdmFyZXovdGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZEBtYXJjb3NkYWx2YXJlei5vcmciLAogICJ2ZXJzaW9uIjogMzQKfQ=="},
     "44": {"version": "34", "sha256": "0ii1pxbnfjjli8jj0fq1g1rlhzpbn1j9088jp0sjrxvdlrmksdzv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZS9EaXNhYmxlIGJhdHRlcnkgdGhyZXNob2xkIG9uIExlbm92byBUaGlua3BhZCBsYXB0b3BzLlxuXG5JZiB5b3UgbWFpbmx5IHVzZSB0aGUgc3lzdGVtIHdpdGggdGhlIEFDIHBvd2VyIGFkYXB0ZXIgY29ubmVjdGVkIGFuZCBvbmx5IHVzZSB0aGUgYmF0dGVyeSBzcG9yYWRpY2FsbHksIHlvdSBjYW4gaW5jcmVhc2UgYmF0dGVyeSBsaWZlIGJ5IHNldHRpbmcgdGhlIG1heGltdW0gY2hhcmdlIHZhbHVlIHRvIGxlc3MgdGhhbiAxMDAlLiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNlIGJhdHRlcmllcyB0aGF0IGFyZSB1c2VkIHNwb3JhZGljYWxseSBoYXZlIGEgbG9uZ2VyIGxpZmVzcGFuIHdoZW4ga2VwdCBhdCBsZXNzIHRoYW4gZnVsbCBjaGFyZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGRAbWFyY29zZGFsdmFyZXoub3JnIiwKICAibmFtZSI6ICJUaGlua3BhZCBCYXR0ZXJ5IFRocmVzaG9sZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbWFyY29zZGFsdmFyZXovdGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZEBtYXJjb3NkYWx2YXJlei5vcmciLAogICJ2ZXJzaW9uIjogMzQKfQ=="},
-    "45": {"version": "44", "sha256": "16dmvzvvhf0yi20bi9a82q3nhmpnzv1qzi8hlk0v76zjn2q4fvs8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZS9EaXNhYmxlIGJhdHRlcnkgdGhyZXNob2xkIG9uIExlbm92byBUaGlua3BhZCBsYXB0b3BzLlxuXG5JZiB5b3UgbWFpbmx5IHVzZSB0aGUgc3lzdGVtIHdpdGggdGhlIEFDIHBvd2VyIGFkYXB0ZXIgY29ubmVjdGVkIGFuZCBvbmx5IHVzZSB0aGUgYmF0dGVyeSBzcG9yYWRpY2FsbHksIHlvdSBjYW4gaW5jcmVhc2UgYmF0dGVyeSBsaWZlIGJ5IHNldHRpbmcgdGhlIG1heGltdW0gY2hhcmdlIHZhbHVlIHRvIGxlc3MgdGhhbiAxMDAlLiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNlIGJhdHRlcmllcyB0aGF0IGFyZSB1c2VkIHNwb3JhZGljYWxseSBoYXZlIGEgbG9uZ2VyIGxpZmVzcGFuIHdoZW4ga2VwdCBhdCBsZXNzIHRoYW4gZnVsbCBjaGFyZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGRAbWFyY29zZGFsdmFyZXoub3JnIiwKICAibmFtZSI6ICJUaGlua3BhZCBCYXR0ZXJ5IFRocmVzaG9sZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbWFyY29zZGFsdmFyZXovdGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZEBtYXJjb3NkYWx2YXJlei5vcmciLAogICJ2ZXJzaW9uIjogNDQKfQ=="},
-    "46": {"version": "44", "sha256": "16dmvzvvhf0yi20bi9a82q3nhmpnzv1qzi8hlk0v76zjn2q4fvs8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZS9EaXNhYmxlIGJhdHRlcnkgdGhyZXNob2xkIG9uIExlbm92byBUaGlua3BhZCBsYXB0b3BzLlxuXG5JZiB5b3UgbWFpbmx5IHVzZSB0aGUgc3lzdGVtIHdpdGggdGhlIEFDIHBvd2VyIGFkYXB0ZXIgY29ubmVjdGVkIGFuZCBvbmx5IHVzZSB0aGUgYmF0dGVyeSBzcG9yYWRpY2FsbHksIHlvdSBjYW4gaW5jcmVhc2UgYmF0dGVyeSBsaWZlIGJ5IHNldHRpbmcgdGhlIG1heGltdW0gY2hhcmdlIHZhbHVlIHRvIGxlc3MgdGhhbiAxMDAlLiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNlIGJhdHRlcmllcyB0aGF0IGFyZSB1c2VkIHNwb3JhZGljYWxseSBoYXZlIGEgbG9uZ2VyIGxpZmVzcGFuIHdoZW4ga2VwdCBhdCBsZXNzIHRoYW4gZnVsbCBjaGFyZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGRAbWFyY29zZGFsdmFyZXoub3JnIiwKICAibmFtZSI6ICJUaGlua3BhZCBCYXR0ZXJ5IFRocmVzaG9sZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbWFyY29zZGFsdmFyZXovdGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZEBtYXJjb3NkYWx2YXJlei5vcmciLAogICJ2ZXJzaW9uIjogNDQKfQ=="}
+    "45": {"version": "45", "sha256": "0l7b2g7yn0cngvf0jb5qbxkr04vb7i6bc3x0cwgggamnpcqjkbs0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZS9EaXNhYmxlIGJhdHRlcnkgdGhyZXNob2xkIG9uIExlbm92byBUaGlua3BhZCBsYXB0b3BzLlxuXG5JZiB5b3UgbWFpbmx5IHVzZSB0aGUgc3lzdGVtIHdpdGggdGhlIEFDIHBvd2VyIGFkYXB0ZXIgY29ubmVjdGVkIGFuZCBvbmx5IHVzZSB0aGUgYmF0dGVyeSBzcG9yYWRpY2FsbHksIHlvdSBjYW4gaW5jcmVhc2UgYmF0dGVyeSBsaWZlIGJ5IHNldHRpbmcgdGhlIG1heGltdW0gY2hhcmdlIHZhbHVlIHRvIGxlc3MgdGhhbiAxMDAlLiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNlIGJhdHRlcmllcyB0aGF0IGFyZSB1c2VkIHNwb3JhZGljYWxseSBoYXZlIGEgbG9uZ2VyIGxpZmVzcGFuIHdoZW4ga2VwdCBhdCBsZXNzIHRoYW4gZnVsbCBjaGFyZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGRAbWFyY29zZGFsdmFyZXoub3JnIiwKICAibmFtZSI6ICJUaGlua3BhZCBCYXR0ZXJ5IFRocmVzaG9sZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbWFyY29zZGFsdmFyZXovdGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZEBtYXJjb3NkYWx2YXJlei5vcmciLAogICJ2ZXJzaW9uIjogNDUKfQ=="},
+    "46": {"version": "45", "sha256": "0l7b2g7yn0cngvf0jb5qbxkr04vb7i6bc3x0cwgggamnpcqjkbs0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZS9EaXNhYmxlIGJhdHRlcnkgdGhyZXNob2xkIG9uIExlbm92byBUaGlua3BhZCBsYXB0b3BzLlxuXG5JZiB5b3UgbWFpbmx5IHVzZSB0aGUgc3lzdGVtIHdpdGggdGhlIEFDIHBvd2VyIGFkYXB0ZXIgY29ubmVjdGVkIGFuZCBvbmx5IHVzZSB0aGUgYmF0dGVyeSBzcG9yYWRpY2FsbHksIHlvdSBjYW4gaW5jcmVhc2UgYmF0dGVyeSBsaWZlIGJ5IHNldHRpbmcgdGhlIG1heGltdW0gY2hhcmdlIHZhbHVlIHRvIGxlc3MgdGhhbiAxMDAlLiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNlIGJhdHRlcmllcyB0aGF0IGFyZSB1c2VkIHNwb3JhZGljYWxseSBoYXZlIGEgbG9uZ2VyIGxpZmVzcGFuIHdoZW4ga2VwdCBhdCBsZXNzIHRoYW4gZnVsbCBjaGFyZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGRAbWFyY29zZGFsdmFyZXoub3JnIiwKICAibmFtZSI6ICJUaGlua3BhZCBCYXR0ZXJ5IFRocmVzaG9sZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbWFyY29zZGFsdmFyZXovdGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZEBtYXJjb3NkYWx2YXJlei5vcmciLAogICJ2ZXJzaW9uIjogNDUKfQ=="}
   }}
 , {"uuid": "lock-screen-message@advendradeswanta.gitlab.com", "name": "Lock Screen Message", "pname": "lock-screen-message", "description": "Simple extension that let's you add your message to the lock screen (unlockDialog)", "link": "https://extensions.gnome.org/extension/4801/lock-screen-message/", "shell_version_map": {
     "40": {"version": "3", "sha256": "0hkr6gm7kr69fc4zjb8rddwj75jpbpvqz4wpkfl659wjn4980s3c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdGhhdCBsZXQncyB5b3UgYWRkIHlvdXIgbWVzc2FnZSB0byB0aGUgbG9jayBzY3JlZW4gKHVubG9ja0RpYWxvZykiLAogICJuYW1lIjogIkxvY2sgU2NyZWVuIE1lc3NhZ2UiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVzZXIiLAogICAgInVubG9jay1kaWFsb2ciCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxvY2stc2NyZWVuLW1lc3NhZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9BZHZlbmRyYURlc3dhbnRhL2xvY2stc2NyZWVuLW1lc3NhZ2UiLAogICJ1dWlkIjogImxvY2stc2NyZWVuLW1lc3NhZ2VAYWR2ZW5kcmFkZXN3YW50YS5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="},
@@ -4667,7 +4729,7 @@
     "43": {"version": "41", "sha256": "1kpwdir0rs086iky86c2gdfk3n9aja4xcg8s46kd7f2gv12l1sl7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIENsaXBib2FyZCBIaXN0b3J5IGlzIGEgY2xpcGJvYXJkIG1hbmFnZXIgR05PTUUgZXh0ZW5zaW9uIHRoYXQgc2F2ZXMgaXRlbXMgeW91J3ZlIGNvcGllZCBpbnRvIGFuIGVhc2lseSBhY2Nlc3NpYmxlLCBzZWFyY2hhYmxlIGhpc3RvcnkgcGFuZWwuIiwKICAibmFtZSI6ICJDbGlwYm9hcmQgSGlzdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU1VQRVJDSUxFWC9nbm9tZS1jbGlwYm9hcmQtaGlzdG9yeSIsCiAgInV1aWQiOiAiY2xpcGJvYXJkLWhpc3RvcnlAYWxleHNhdmVhdS5kZXYiLAogICJ2ZXJzaW9uIjogNDEKfQ=="},
     "44": {"version": "41", "sha256": "1kpwdir0rs086iky86c2gdfk3n9aja4xcg8s46kd7f2gv12l1sl7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIENsaXBib2FyZCBIaXN0b3J5IGlzIGEgY2xpcGJvYXJkIG1hbmFnZXIgR05PTUUgZXh0ZW5zaW9uIHRoYXQgc2F2ZXMgaXRlbXMgeW91J3ZlIGNvcGllZCBpbnRvIGFuIGVhc2lseSBhY2Nlc3NpYmxlLCBzZWFyY2hhYmxlIGhpc3RvcnkgcGFuZWwuIiwKICAibmFtZSI6ICJDbGlwYm9hcmQgSGlzdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU1VQRVJDSUxFWC9nbm9tZS1jbGlwYm9hcmQtaGlzdG9yeSIsCiAgInV1aWQiOiAiY2xpcGJvYXJkLWhpc3RvcnlAYWxleHNhdmVhdS5kZXYiLAogICJ2ZXJzaW9uIjogNDEKfQ=="},
     "45": {"version": "40", "sha256": "0yjm2py35rlsrdcpayaak0jqdnnpmdg6jp44fklg1ds06mnn7q4s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIENsaXBib2FyZCBIaXN0b3J5IGlzIGEgY2xpcGJvYXJkIG1hbmFnZXIgR05PTUUgZXh0ZW5zaW9uIHRoYXQgc2F2ZXMgaXRlbXMgeW91J3ZlIGNvcGllZCBpbnRvIGFuIGVhc2lseSBhY2Nlc3NpYmxlLCBzZWFyY2hhYmxlIGhpc3RvcnkgcGFuZWwuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY2xpcGJvYXJkLWhpc3RvcnlAYWxleHNhdmVhdS5kZXYiLAogICJuYW1lIjogIkNsaXBib2FyZCBIaXN0b3J5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNsaXBib2FyZC1oaXN0b3J5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NVUEVSQ0lMRVgvZ25vbWUtY2xpcGJvYXJkLWhpc3RvcnkiLAogICJ1dWlkIjogImNsaXBib2FyZC1oaXN0b3J5QGFsZXhzYXZlYXUuZGV2IiwKICAidmVyc2lvbiI6IDQwCn0="},
-    "46": {"version": "39", "sha256": "1b6y8yda9sibjgyz2vm2v23d8fk6rdnk7mdsgl098sqklfy683v9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIENsaXBib2FyZCBIaXN0b3J5IGlzIGEgY2xpcGJvYXJkIG1hbmFnZXIgR05PTUUgZXh0ZW5zaW9uIHRoYXQgc2F2ZXMgaXRlbXMgeW91J3ZlIGNvcGllZCBpbnRvIGFuIGVhc2lseSBhY2Nlc3NpYmxlLCBzZWFyY2hhYmxlIGhpc3RvcnkgcGFuZWwuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY2xpcGJvYXJkLWhpc3RvcnlAYWxleHNhdmVhdS5kZXYiLAogICJuYW1lIjogIkNsaXBib2FyZCBIaXN0b3J5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNsaXBib2FyZC1oaXN0b3J5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NVUEVSQ0lMRVgvZ25vbWUtY2xpcGJvYXJkLWhpc3RvcnkiLAogICJ1dWlkIjogImNsaXBib2FyZC1oaXN0b3J5QGFsZXhzYXZlYXUuZGV2IiwKICAidmVyc2lvbiI6IDM5Cn0="}
+    "46": {"version": "42", "sha256": "1bp8xzwkszkr1qpd7dig7bmlckc6p65z72xr345la0kh370by4jn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIENsaXBib2FyZCBIaXN0b3J5IGlzIGEgY2xpcGJvYXJkIG1hbmFnZXIgR05PTUUgZXh0ZW5zaW9uIHRoYXQgc2F2ZXMgaXRlbXMgeW91J3ZlIGNvcGllZCBpbnRvIGFuIGVhc2lseSBhY2Nlc3NpYmxlLCBzZWFyY2hhYmxlIGhpc3RvcnkgcGFuZWwuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY2xpcGJvYXJkLWhpc3RvcnlAYWxleHNhdmVhdS5kZXYiLAogICJuYW1lIjogIkNsaXBib2FyZCBIaXN0b3J5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNsaXBib2FyZC1oaXN0b3J5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NVUEVSQ0lMRVgvZ25vbWUtY2xpcGJvYXJkLWhpc3RvcnkiLAogICJ1dWlkIjogImNsaXBib2FyZC1oaXN0b3J5QGFsZXhzYXZlYXUuZGV2IiwKICAidmVyc2lvbiI6IDQyCn0="}
   }}
 , {"uuid": "strongdm@andybrown668.github.com", "name": "StrongDM", "pname": "strongdm", "description": "Access StrongDM resources", "link": "https://extensions.gnome.org/extension/4841/strongdm/", "shell_version_map": {
     "40": {"version": "3", "sha256": "02dfs597cs8zz7wwl3kqb8i9kxdi9p7ywvk22kvmy5p4gkc181j7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyBTdHJvbmdETSByZXNvdXJjZXMiLAogICJuYW1lIjogIlN0cm9uZ0RNIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbmR5YnJvd242Njgvc3Ryb25nZG0tZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLmdpdCIsCiAgInV1aWQiOiAic3Ryb25nZG1AYW5keWJyb3duNjY4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"},
@@ -4708,7 +4770,8 @@
     "42": {"version": "9", "sha256": "0p7jci2rbkypspb8ywdmfxcnmvza3anhbsi372qvsv90ai9aqxv6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhZGRpdGlvbmFsIHdpbmRvdyBtYW5hZ2VtZW50IHNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiUXVhcnRlciBXaW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Ryb3lyZWFkeS9xdWFydGVyd2luZG93cyIsCiAgInV1aWQiOiAicXVhcnRlcndpbmRvd3NAdHJveXJlYWR5LmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="},
     "43": {"version": "9", "sha256": "0p7jci2rbkypspb8ywdmfxcnmvza3anhbsi372qvsv90ai9aqxv6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhZGRpdGlvbmFsIHdpbmRvdyBtYW5hZ2VtZW50IHNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiUXVhcnRlciBXaW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Ryb3lyZWFkeS9xdWFydGVyd2luZG93cyIsCiAgInV1aWQiOiAicXVhcnRlcndpbmRvd3NAdHJveXJlYWR5LmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="},
     "44": {"version": "9", "sha256": "0p7jci2rbkypspb8ywdmfxcnmvza3anhbsi372qvsv90ai9aqxv6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhZGRpdGlvbmFsIHdpbmRvdyBtYW5hZ2VtZW50IHNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiUXVhcnRlciBXaW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Ryb3lyZWFkeS9xdWFydGVyd2luZG93cyIsCiAgInV1aWQiOiAicXVhcnRlcndpbmRvd3NAdHJveXJlYWR5LmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="},
-    "45": {"version": "10", "sha256": "0a0zkyxi4gizsrp24qcxidn5z7y0xk8z6gwrcqyc5yan2ai8cgd3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhZGRpdGlvbmFsIHdpbmRvdyBtYW5hZ2VtZW50IHNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiUXVhcnRlciBXaW5kb3dzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbS10cm95cmVhZHktcXVhcnRlcndpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHJveXJlYWR5L3F1YXJ0ZXJ3aW5kb3dzIiwKICAidXVpZCI6ICJxdWFydGVyd2luZG93c0B0cm95cmVhZHkuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}
+    "45": {"version": "11", "sha256": "05jlynl1098ha06gnkw96ilmrwj50266v7p66cs7rz8kbz2idx40", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhZGRpdGlvbmFsIHdpbmRvdyBtYW5hZ2VtZW50IHNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiUXVhcnRlciBXaW5kb3dzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbS10cm95cmVhZHktcXVhcnRlcndpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Ryb3lyZWFkeS9xdWFydGVyd2luZG93cyIsCiAgInV1aWQiOiAicXVhcnRlcndpbmRvd3NAdHJveXJlYWR5LmNvbSIsCiAgInZlcnNpb24iOiAxMQp9"},
+    "46": {"version": "11", "sha256": "05jlynl1098ha06gnkw96ilmrwj50266v7p66cs7rz8kbz2idx40", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhZGRpdGlvbmFsIHdpbmRvdyBtYW5hZ2VtZW50IHNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiUXVhcnRlciBXaW5kb3dzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbS10cm95cmVhZHktcXVhcnRlcndpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Ryb3lyZWFkeS9xdWFydGVyd2luZG93cyIsCiAgInV1aWQiOiAicXVhcnRlcndpbmRvd3NAdHJveXJlYWR5LmNvbSIsCiAgInZlcnNpb24iOiAxMQp9"}
   }}
 , {"uuid": "batt_consumption_wattmetter@wennaspeedy", "name": "Power battery Consumption Watt Meter", "pname": "bat_consumption_wattmeter", "description": "Shows actual charging/discharging consumption (+/-) in Watt next to battery percentage level.\nEnable percentage label when disabled.\nDefault sync reload set to 4 seconds.\nNo consumption info when battery is full.\nSettings: interval, percentage label (also when full), battery selection", "link": "https://extensions.gnome.org/extension/4862/bat_consumption_wattmeter/", "shell_version_map": {
     "40": {"version": "10", "sha256": "1qidycwl16b2x4x6chzzkyvpawwpkfy0rhp0lq2szbkmv3k4glin", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGFjdHVhbCBjaGFyZ2luZy9kaXNjaGFyZ2luZyBjb25zdW1wdGlvbiAoKy8tKSBpbiBXYXR0IG5leHQgdG8gYmF0dGVyeSBwZXJjZW50YWdlIGxldmVsLlxuRW5hYmxlIHBlcmNlbnRhZ2UgbGFiZWwgd2hlbiBkaXNhYmxlZC5cbkRlZmF1bHQgc3luYyByZWxvYWQgc2V0IHRvIDQgc2Vjb25kcy5cbk5vIGNvbnN1bXB0aW9uIGluZm8gd2hlbiBiYXR0ZXJ5IGlzIGZ1bGwuXG5TZXR0aW5nczogaW50ZXJ2YWwsIHBlcmNlbnRhZ2UgbGFiZWwgKGFsc28gd2hlbiBmdWxsKSwgYmF0dGVyeSBzZWxlY3Rpb24iLAogICJuYW1lIjogIlBvd2VyIGJhdHRlcnkgQ29uc3VtcHRpb24gV2F0dCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbm5hc3BlZWR5L2JhdHRfY29uc3VtcHRpb25fd2F0dG1ldHRlciIsCiAgInV1aWQiOiAiYmF0dF9jb25zdW1wdGlvbl93YXR0bWV0dGVyQHdlbm5hc3BlZWR5IiwKICAidmVyc2lvbiI6IDEwCn0="},
@@ -4830,8 +4893,8 @@
     "42": {"version": "18", "sha256": "0mklxqybxnlw8jpfljyg2hapw8zgi732162ris96li0440a8h616", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9BbmRyZXdaYWVjaC9henRhc2tiYXIiLAogICJ1dWlkIjogImF6dGFza2JhckBhenRhc2tiYXIuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAxOAp9"},
     "43": {"version": "18", "sha256": "0mklxqybxnlw8jpfljyg2hapw8zgi732162ris96li0440a8h616", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9BbmRyZXdaYWVjaC9henRhc2tiYXIiLAogICJ1dWlkIjogImF6dGFza2JhckBhenRhc2tiYXIuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAxOAp9"},
     "44": {"version": "18", "sha256": "0mklxqybxnlw8jpfljyg2hapw8zgi732162ris96li0440a8h616", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9BbmRyZXdaYWVjaC9henRhc2tiYXIiLAogICJ1dWlkIjogImF6dGFza2JhckBhenRhc2tiYXIuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAxOAp9"},
-    "45": {"version": "22", "sha256": "1zcb26wb96xif8swywgb9f9nkvbgmgl2hiy0bbj19xwfdbvjdvp2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0FuZHJld1phZWNoL2F6dGFza2JhciIsCiAgInV1aWQiOiAiYXp0YXNrYmFyQGF6dGFza2Jhci5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="},
-    "46": {"version": "22", "sha256": "1zcb26wb96xif8swywgb9f9nkvbgmgl2hiy0bbj19xwfdbvjdvp2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0FuZHJld1phZWNoL2F6dGFza2JhciIsCiAgInV1aWQiOiAiYXp0YXNrYmFyQGF6dGFza2Jhci5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}
+    "45": {"version": "23", "sha256": "13cppvvwc77h5w5vixa23vn8k02yb19mj90h2dj02lg5xa6zpj55", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0FuZHJld1phZWNoL2F6dGFza2JhciIsCiAgInV1aWQiOiAiYXp0YXNrYmFyQGF6dGFza2Jhci5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="},
+    "46": {"version": "23", "sha256": "13cppvvwc77h5w5vixa23vn8k02yb19mj90h2dj02lg5xa6zpj55", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0FuZHJld1phZWNoL2F6dGFza2JhciIsCiAgInV1aWQiOiAiYXp0YXNrYmFyQGF6dGFza2Jhci5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}
   }}
 , {"uuid": "netSpeedMonitor@nidyran.github.io", "name": "Network Speed Tracker", "pname": "net-speed-monitor", "description": "Network Speed Tracker \nUsage instructions:\n1 - Right-click to easily switch between available network sources.\n2 - Left-click to toggle display modes.\n3 - Middle-click to adjust the refresh rate.", "link": "https://extensions.gnome.org/extension/4947/net-speed-monitor/", "shell_version_map": {
     "38": {"version": "5", "sha256": "1zvp8zx82kqbf9ck55csgcysld3z1gr3cigkl5y73s5rvqj3ks5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHRyYWNraW5nIGFuZCBtb25pdG9yaW5nIG5ldHdvcmsgc3BlZWQuIFxuVGhlcmUgYXJlIGZpdmUgbW9kZXM6IFxuMSAtIGRvd25sb2FkIHNwZWVkIG9ubHkuIFxuMiAtIHVwbG9hZCBzcGVlZCBvbmx5LiBcbjMgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHRvZ2V0aGVyLiBcbjQgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHN1bW1lZC4gXG41IC0gdG90YWwgZGF0YSB1c2FnZSBcblRvIHN3aXRjaCBiZXR3ZWVuIG1vZGVzLCB1c2UgbGVmdCBtb3VzZSBjbGljay4gXG5UbyBzd2l0Y2ggYmV0d2VlbiBhdmFpbGFibGUgc291cmNlcywgdXNlIHJpZ2h0IG1vdXNlIGNsaWNrLiBcblRvIGNoYW5nZSByZWZyZXNoIHRpbWUgMjAwIC0gMTAwMCB1c2UgbWlkZGxlIG1vdXNlIGNsaWNrLiBcblRoZSBmaXJzdCBzb3VyY2Ugd2l0aCB1c2FnZSBoaWdoZXIgdGhhbiB6ZXJvIHdpbGwgYmUgcGlja2VkIGJ5IGRlZmF1bHQuIFxuVGhlIGV4dGVuc2lvbiB3aWxsIHBpY2sgdGhlIGZpcnN0IHNvdXJjZSBieSBkZWZhdWx0LCBhbmQgaWYgbm8gdHJhZmZpYyBpcyBlc3RhYmxpc2hlZCBpdCB3aWxsIHN3aXRjaCB0byB0aGUgbmV4dCBvbmUgYW5kIHNvIG9uXG5UaGUgc291cmNlIGNvZGUgaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rIGJlbG93LCB1cGRhdGUgcmVxdWVzdHMgYXJlIHdlbGNvbWUuIiwKICAibmFtZSI6ICJuZXQgc3BlZWQgbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmlkeXJhbi9uZXRTcGVlZE1vbml0b3IvIiwKICAidXVpZCI6ICJuZXRTcGVlZE1vbml0b3JAbmlkeXJhbi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"},
@@ -4894,7 +4957,8 @@
     "42": {"version": "5", "sha256": "0693zz7rdmxwf2gg5hwlylby5ik9mg2da4k1qxanms9wncfiwf06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgUEhQIExhcmF2ZWwgVmFsZXQgc3RhdHVzIGluZGljYXRvciBhbmQgbWFuYWdlci4iLAogICJuYW1lIjogIlBIUCBMYXJhdmVsIFZhbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYWh1bGhhcXVlL3BocC1sYXJhdmVsLXZhbGV0LWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAicGhwLWxhcmF2ZWwtdmFsZXRAcmFodWxoYXF1ZSIsCiAgInZlcnNpb24iOiA1Cn0="},
     "43": {"version": "5", "sha256": "0693zz7rdmxwf2gg5hwlylby5ik9mg2da4k1qxanms9wncfiwf06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgUEhQIExhcmF2ZWwgVmFsZXQgc3RhdHVzIGluZGljYXRvciBhbmQgbWFuYWdlci4iLAogICJuYW1lIjogIlBIUCBMYXJhdmVsIFZhbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYWh1bGhhcXVlL3BocC1sYXJhdmVsLXZhbGV0LWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAicGhwLWxhcmF2ZWwtdmFsZXRAcmFodWxoYXF1ZSIsCiAgInZlcnNpb24iOiA1Cn0="},
     "44": {"version": "5", "sha256": "0693zz7rdmxwf2gg5hwlylby5ik9mg2da4k1qxanms9wncfiwf06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgUEhQIExhcmF2ZWwgVmFsZXQgc3RhdHVzIGluZGljYXRvciBhbmQgbWFuYWdlci4iLAogICJuYW1lIjogIlBIUCBMYXJhdmVsIFZhbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYWh1bGhhcXVlL3BocC1sYXJhdmVsLXZhbGV0LWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAicGhwLWxhcmF2ZWwtdmFsZXRAcmFodWxoYXF1ZSIsCiAgInZlcnNpb24iOiA1Cn0="},
-    "45": {"version": "7", "sha256": "1bfzmjqyj6823mq79vjaikhfy0jqyxhkwi0m7xgc13rfjfclkd8l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgUEhQIExhcmF2ZWwgVmFsZXQgc3RhdHVzIGluZGljYXRvciBhbmQgbWFuYWdlci4iLAogICJuYW1lIjogIlBIUCBMYXJhdmVsIFZhbGV0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBocC1sYXJhdmVsLXZhbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JhaHVsaGFxdWUvcGhwLWxhcmF2ZWwtdmFsZXQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJwaHAtbGFyYXZlbC12YWxldEByYWh1bGhhcXVlIiwKICAidmVyc2lvbiI6IDcKfQ=="}
+    "45": {"version": "7", "sha256": "1bfzmjqyj6823mq79vjaikhfy0jqyxhkwi0m7xgc13rfjfclkd8l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgUEhQIExhcmF2ZWwgVmFsZXQgc3RhdHVzIGluZGljYXRvciBhbmQgbWFuYWdlci4iLAogICJuYW1lIjogIlBIUCBMYXJhdmVsIFZhbGV0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBocC1sYXJhdmVsLXZhbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JhaHVsaGFxdWUvcGhwLWxhcmF2ZWwtdmFsZXQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJwaHAtbGFyYXZlbC12YWxldEByYWh1bGhhcXVlIiwKICAidmVyc2lvbiI6IDcKfQ=="},
+    "46": {"version": "8", "sha256": "0yidm549axmi8ik4rjn8p1agymmk2zfkxv8yi99xgy3kmxbl0bn6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgUEhQIExhcmF2ZWwgVmFsZXQgc3RhdHVzIGluZGljYXRvciBhbmQgbWFuYWdlci4iLAogICJuYW1lIjogIlBIUCBMYXJhdmVsIFZhbGV0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBocC1sYXJhdmVsLXZhbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JhaHVsaGFxdWUvcGhwLWxhcmF2ZWwtdmFsZXQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJwaHAtbGFyYXZlbC12YWxldEByYWh1bGhhcXVlIiwKICAidmVyc2lvbiI6IDgKfQ=="}
   }}
 , {"uuid": "Home-Server@sven.kramer", "name": "Home-Server", "pname": "home-server", "description": "A simple Indicator that shows my home-server status (online / offline) on the main panel. Furthermore a wake on lan can be triggered. For WOL functionality, its necessary that you have 'wakeonlan' installed.", "link": "https://extensions.gnome.org/extension/4989/home-server/", "shell_version_map": {
     "38": {"version": "1", "sha256": "05cwv23w1438pg38ixhrvm360g3s11vrl8wqk84ai2xgydy94z2f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIEluZGljYXRvciB0aGF0IHNob3dzIG15IGhvbWUtc2VydmVyIHN0YXR1cyAob25saW5lIC8gb2ZmbGluZSkgb24gdGhlIG1haW4gcGFuZWwuIEZ1cnRoZXJtb3JlIGEgd2FrZSBvbiBsYW4gY2FuIGJlIHRyaWdnZXJlZC4gRm9yIFdPTCBmdW5jdGlvbmFsaXR5LCBpdHMgbmVjZXNzYXJ5IHRoYXQgeW91IGhhdmUgJ3dha2VvbmxhbicgaW5zdGFsbGVkLiIsCiAgIm1pbm9yIjogMSwKICAibmFtZSI6ICJIb21lLVNlcnZlciIsCiAgInJldmlzaW9uIjogMSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhvbWUtU2VydmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL3d3dy5zdmVuLWtyYW1lci5ldS9saW51eC9nbm9tZS1zaGVsbC1leHRlbnNpb24vaG9tZS1zZXJ2ZXIvIiwKICAidXVpZCI6ICJIb21lLVNlcnZlckBzdmVuLmtyYW1lciIsCiAgInZlcnNpb24iOiAxCn0="},
@@ -4905,11 +4969,11 @@
 , {"uuid": "dash2dock-lite@icedman.github.com", "name": "Dash2Dock Animated", "pname": "dash2dock-lite", "description": "The Animated & Effectful Dock", "link": "https://extensions.gnome.org/extension/4994/dash2dock-lite/", "shell_version_map": {
     "40": {"version": "28", "sha256": "00c5fjb6s40y7fzndvmxb8ni0hlbd3gmypx262jjk7gwa0yvq99d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaDJkb2NrLWxpdGUiLAogICJuYW1lIjogIkRhc2gyRG9jayBMaXRlIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJpY2VkbWFuIgogIF0sCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoMmRvY2stbGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9kYXNoMmRvY2stbGl0ZSIsCiAgInV1aWQiOiAiZGFzaDJkb2NrLWxpdGVAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI4Cn0="},
     "41": {"version": "28", "sha256": "00c5fjb6s40y7fzndvmxb8ni0hlbd3gmypx262jjk7gwa0yvq99d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaDJkb2NrLWxpdGUiLAogICJuYW1lIjogIkRhc2gyRG9jayBMaXRlIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJpY2VkbWFuIgogIF0sCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoMmRvY2stbGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9kYXNoMmRvY2stbGl0ZSIsCiAgInV1aWQiOiAiZGFzaDJkb2NrLWxpdGVAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI4Cn0="},
-    "42": {"version": "57", "sha256": "0z4mkp2hxy9ihzdnj42b8hqkc7l322a847v2l1ac4dvz11x38cwp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9kYXNoMmRvY2stbGl0ZSIsCiAgInV1aWQiOiAiZGFzaDJkb2NrLWxpdGVAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU3Cn0="},
-    "43": {"version": "57", "sha256": "0z4mkp2hxy9ihzdnj42b8hqkc7l322a847v2l1ac4dvz11x38cwp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9kYXNoMmRvY2stbGl0ZSIsCiAgInV1aWQiOiAiZGFzaDJkb2NrLWxpdGVAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU3Cn0="},
-    "44": {"version": "57", "sha256": "0z4mkp2hxy9ihzdnj42b8hqkc7l322a847v2l1ac4dvz11x38cwp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9kYXNoMmRvY2stbGl0ZSIsCiAgInV1aWQiOiAiZGFzaDJkb2NrLWxpdGVAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU3Cn0="},
-    "45": {"version": "54", "sha256": "10wlbfpay3aj8g2rqf06b8igphmk89avdjqw0vxz08ngc8r150wb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pY2VkbWFuL2Rhc2gyZG9jay1saXRlIiwKICAidXVpZCI6ICJkYXNoMmRvY2stbGl0ZUBpY2VkbWFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTQKfQ=="},
-    "46": {"version": "54", "sha256": "10wlbfpay3aj8g2rqf06b8igphmk89avdjqw0vxz08ngc8r150wb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pY2VkbWFuL2Rhc2gyZG9jay1saXRlIiwKICAidXVpZCI6ICJkYXNoMmRvY2stbGl0ZUBpY2VkbWFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTQKfQ=="}
+    "42": {"version": "68", "sha256": "0i2p5jvs9jlpy1gzc6g3zgbjjyi41v7bahzkz6lg2bw1hpv7a363", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9kYXNoMmRvY2stbGl0ZSIsCiAgInV1aWQiOiAiZGFzaDJkb2NrLWxpdGVAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDY4Cn0="},
+    "43": {"version": "68", "sha256": "0i2p5jvs9jlpy1gzc6g3zgbjjyi41v7bahzkz6lg2bw1hpv7a363", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9kYXNoMmRvY2stbGl0ZSIsCiAgInV1aWQiOiAiZGFzaDJkb2NrLWxpdGVAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDY4Cn0="},
+    "44": {"version": "68", "sha256": "0i2p5jvs9jlpy1gzc6g3zgbjjyi41v7bahzkz6lg2bw1hpv7a363", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9kYXNoMmRvY2stbGl0ZSIsCiAgInV1aWQiOiAiZGFzaDJkb2NrLWxpdGVAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDY4Cn0="},
+    "45": {"version": "66", "sha256": "0cjgrs83ak9dpzm8h3lm471xwik020abpm18v97z5467bswjmdqy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pY2VkbWFuL2Rhc2gyZG9jay1saXRlIiwKICAidXVpZCI6ICJkYXNoMmRvY2stbGl0ZUBpY2VkbWFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNjYKfQ=="},
+    "46": {"version": "66", "sha256": "0cjgrs83ak9dpzm8h3lm471xwik020abpm18v97z5467bswjmdqy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pY2VkbWFuL2Rhc2gyZG9jay1saXRlIiwKICAidXVpZCI6ICJkYXNoMmRvY2stbGl0ZUBpY2VkbWFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNjYKfQ=="}
   }}
 , {"uuid": "animate@eexpss.gmail.com", "name": "animate", "pname": "animate", "description": "Animated small man run through the screen. Scroll mouse can change deferent character. You can use your PNG characters instead of the original ones.", "link": "https://extensions.gnome.org/extension/4995/animate/", "shell_version_map": {
     "40": {"version": "4", "sha256": "1p110wz7wdr51z2fsn6z72lcnln13h8lfbw9a00hs9qb0y71qf5q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuaW1hdGVkIHNtYWxsIG1hbiBydW4gdGhyb3VnaCB0aGUgc2NyZWVuLiBTY3JvbGwgbW91c2UgY2FuIGNoYW5nZSBkZWZlcmVudCBjaGFyYWN0ZXIuIFlvdSBjYW4gdXNlIHlvdXIgUE5HIGNoYXJhY3RlcnMgaW5zdGVhZCBvZiB0aGUgb3JpZ2luYWwgb25lcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhbmltYXRlIiwKICAibmFtZSI6ICJhbmltYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ3MtYW5pbWF0ZSIsCiAgInV1aWQiOiAiYW5pbWF0ZUBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="},
@@ -4934,7 +4998,8 @@
     "42": {"version": "10", "sha256": "1kvi1g03nd5m4d7wnkrnhms9l7pxag4n462g5qxl2q9pvn1d1v96", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzIGxpa2UgRHJvcGJveCBzeW5jIGNsaWVudCBidXQgZm9yIG1vcmUgdGhhbiAzMCBzZXJ2aWNlcywgYWRkcyBhbiBpbmRpY2F0b3IgdG8gdGhlIHRvcCBwYW5lbCBzbyB5b3UgY2FuIG1hbmFnZSB0aGUgcmNsb25lIHByb2ZpbGVzIGNvbmZpZ3VyZWQgaW4geW91ciBzeXN0ZW0sIHBlcmZvcm0gb3BlcmF0aW9ucyBzdWNoIGFzIG1vdW50IGFzIHJlbW90ZSwgd2F0Y2ggZm9yIGZpbGUgbW9kaWZpY2F0aW9ucywgc3luYyB3aXRoIHJlbW90ZSBzdG9yYWdlLCBuYXZpZ2F0ZSBpdCdzIG1haW4gZm9sZGVyLiBBbHNvLCBpdCBzaG93cyB0aGUgc3RhdHVzIG9mIGVhY2ggcHJvZmlsZSBzbyB5b3UgY2FuIHN1cGVydmlzZSB0aGUgb3BlcmF0aW9ucywgYW5kIHByb3ZpZGVzIGFuIGVhc3kgYWNjZXNzIGxvZyBvZiBldmVudHMuIEJhY2t1cCBhbmQgcmVzdG9yZSB0aGUgcmNsb25lIGNvbmZpZ3VyYXRpb24gZmlsZSwgc28geW91IHdvbid0IGhhdmUgdG8gY29uZmlndXJlIGFsbCB5b3VyIGRldmljZXMgb25lIGJ5IG9uZSIsCiAgIm5hbWUiOiAicmNsb25lLW1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2VybWFuenR6L2dub21lLXNoZWxsLWV4dGVuc2lvbi1yY2xvbmUtbWFuYWdlciIsCiAgInV1aWQiOiAicmNsb25lLW1hbmFnZXJAZ2VybWFuenR6LmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"},
     "43": {"version": "10", "sha256": "1kvi1g03nd5m4d7wnkrnhms9l7pxag4n462g5qxl2q9pvn1d1v96", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzIGxpa2UgRHJvcGJveCBzeW5jIGNsaWVudCBidXQgZm9yIG1vcmUgdGhhbiAzMCBzZXJ2aWNlcywgYWRkcyBhbiBpbmRpY2F0b3IgdG8gdGhlIHRvcCBwYW5lbCBzbyB5b3UgY2FuIG1hbmFnZSB0aGUgcmNsb25lIHByb2ZpbGVzIGNvbmZpZ3VyZWQgaW4geW91ciBzeXN0ZW0sIHBlcmZvcm0gb3BlcmF0aW9ucyBzdWNoIGFzIG1vdW50IGFzIHJlbW90ZSwgd2F0Y2ggZm9yIGZpbGUgbW9kaWZpY2F0aW9ucywgc3luYyB3aXRoIHJlbW90ZSBzdG9yYWdlLCBuYXZpZ2F0ZSBpdCdzIG1haW4gZm9sZGVyLiBBbHNvLCBpdCBzaG93cyB0aGUgc3RhdHVzIG9mIGVhY2ggcHJvZmlsZSBzbyB5b3UgY2FuIHN1cGVydmlzZSB0aGUgb3BlcmF0aW9ucywgYW5kIHByb3ZpZGVzIGFuIGVhc3kgYWNjZXNzIGxvZyBvZiBldmVudHMuIEJhY2t1cCBhbmQgcmVzdG9yZSB0aGUgcmNsb25lIGNvbmZpZ3VyYXRpb24gZmlsZSwgc28geW91IHdvbid0IGhhdmUgdG8gY29uZmlndXJlIGFsbCB5b3VyIGRldmljZXMgb25lIGJ5IG9uZSIsCiAgIm5hbWUiOiAicmNsb25lLW1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2VybWFuenR6L2dub21lLXNoZWxsLWV4dGVuc2lvbi1yY2xvbmUtbWFuYWdlciIsCiAgInV1aWQiOiAicmNsb25lLW1hbmFnZXJAZ2VybWFuenR6LmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"},
     "44": {"version": "10", "sha256": "1kvi1g03nd5m4d7wnkrnhms9l7pxag4n462g5qxl2q9pvn1d1v96", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzIGxpa2UgRHJvcGJveCBzeW5jIGNsaWVudCBidXQgZm9yIG1vcmUgdGhhbiAzMCBzZXJ2aWNlcywgYWRkcyBhbiBpbmRpY2F0b3IgdG8gdGhlIHRvcCBwYW5lbCBzbyB5b3UgY2FuIG1hbmFnZSB0aGUgcmNsb25lIHByb2ZpbGVzIGNvbmZpZ3VyZWQgaW4geW91ciBzeXN0ZW0sIHBlcmZvcm0gb3BlcmF0aW9ucyBzdWNoIGFzIG1vdW50IGFzIHJlbW90ZSwgd2F0Y2ggZm9yIGZpbGUgbW9kaWZpY2F0aW9ucywgc3luYyB3aXRoIHJlbW90ZSBzdG9yYWdlLCBuYXZpZ2F0ZSBpdCdzIG1haW4gZm9sZGVyLiBBbHNvLCBpdCBzaG93cyB0aGUgc3RhdHVzIG9mIGVhY2ggcHJvZmlsZSBzbyB5b3UgY2FuIHN1cGVydmlzZSB0aGUgb3BlcmF0aW9ucywgYW5kIHByb3ZpZGVzIGFuIGVhc3kgYWNjZXNzIGxvZyBvZiBldmVudHMuIEJhY2t1cCBhbmQgcmVzdG9yZSB0aGUgcmNsb25lIGNvbmZpZ3VyYXRpb24gZmlsZSwgc28geW91IHdvbid0IGhhdmUgdG8gY29uZmlndXJlIGFsbCB5b3VyIGRldmljZXMgb25lIGJ5IG9uZSIsCiAgIm5hbWUiOiAicmNsb25lLW1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2VybWFuenR6L2dub21lLXNoZWxsLWV4dGVuc2lvbi1yY2xvbmUtbWFuYWdlciIsCiAgInV1aWQiOiAicmNsb25lLW1hbmFnZXJAZ2VybWFuenR6LmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"},
-    "45": {"version": "13", "sha256": "19r6mly10kzym1pwvynfn8cfj5xgjaima9ns7w9h8zldrfhk3fkr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzIGxpa2UgRHJvcGJveCBzeW5jIGNsaWVudCBidXQgZm9yIG1vcmUgdGhhbiAzMCBzZXJ2aWNlcywgYWRkcyBhbiBpbmRpY2F0b3IgdG8gdGhlIHRvcCBwYW5lbCBzbyB5b3UgY2FuIG1hbmFnZSB0aGUgcmNsb25lIHByb2ZpbGVzIGNvbmZpZ3VyZWQgaW4geW91ciBzeXN0ZW0sIHBlcmZvcm0gb3BlcmF0aW9ucyBzdWNoIGFzIG1vdW50IGFzIHJlbW90ZSwgd2F0Y2ggZm9yIGZpbGUgbW9kaWZpY2F0aW9ucywgc3luYyB3aXRoIHJlbW90ZSBzdG9yYWdlLCBuYXZpZ2F0ZSBpdCdzIG1haW4gZm9sZGVyLiBBbHNvLCBpdCBzaG93cyB0aGUgc3RhdHVzIG9mIGVhY2ggcHJvZmlsZSBzbyB5b3UgY2FuIHN1cGVydmlzZSB0aGUgb3BlcmF0aW9ucywgYW5kIHByb3ZpZGVzIGFuIGVhc3kgYWNjZXNzIGxvZyBvZiBldmVudHMuIEJhY2t1cCBhbmQgcmVzdG9yZSB0aGUgcmNsb25lIGNvbmZpZ3VyYXRpb24gZmlsZSwgc28geW91IHdvbid0IGhhdmUgdG8gY29uZmlndXJlIGFsbCB5b3VyIGRldmljZXMgb25lIGJ5IG9uZSIsCiAgImdldHRleHQtZG9tYWluIjogInJjbG9uZS1tYW5hZ2VyIiwKICAibmFtZSI6ICJyY2xvbmUtbWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yY2xvbmUtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZXJtYW56dHovZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXJjbG9uZS1tYW5hZ2VyIiwKICAidXVpZCI6ICJyY2xvbmUtbWFuYWdlckBnZXJtYW56dHouY29tIiwKICAidmVyc2lvbiI6IDEzCn0="}
+    "45": {"version": "13", "sha256": "19r6mly10kzym1pwvynfn8cfj5xgjaima9ns7w9h8zldrfhk3fkr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzIGxpa2UgRHJvcGJveCBzeW5jIGNsaWVudCBidXQgZm9yIG1vcmUgdGhhbiAzMCBzZXJ2aWNlcywgYWRkcyBhbiBpbmRpY2F0b3IgdG8gdGhlIHRvcCBwYW5lbCBzbyB5b3UgY2FuIG1hbmFnZSB0aGUgcmNsb25lIHByb2ZpbGVzIGNvbmZpZ3VyZWQgaW4geW91ciBzeXN0ZW0sIHBlcmZvcm0gb3BlcmF0aW9ucyBzdWNoIGFzIG1vdW50IGFzIHJlbW90ZSwgd2F0Y2ggZm9yIGZpbGUgbW9kaWZpY2F0aW9ucywgc3luYyB3aXRoIHJlbW90ZSBzdG9yYWdlLCBuYXZpZ2F0ZSBpdCdzIG1haW4gZm9sZGVyLiBBbHNvLCBpdCBzaG93cyB0aGUgc3RhdHVzIG9mIGVhY2ggcHJvZmlsZSBzbyB5b3UgY2FuIHN1cGVydmlzZSB0aGUgb3BlcmF0aW9ucywgYW5kIHByb3ZpZGVzIGFuIGVhc3kgYWNjZXNzIGxvZyBvZiBldmVudHMuIEJhY2t1cCBhbmQgcmVzdG9yZSB0aGUgcmNsb25lIGNvbmZpZ3VyYXRpb24gZmlsZSwgc28geW91IHdvbid0IGhhdmUgdG8gY29uZmlndXJlIGFsbCB5b3VyIGRldmljZXMgb25lIGJ5IG9uZSIsCiAgImdldHRleHQtZG9tYWluIjogInJjbG9uZS1tYW5hZ2VyIiwKICAibmFtZSI6ICJyY2xvbmUtbWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yY2xvbmUtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZXJtYW56dHovZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXJjbG9uZS1tYW5hZ2VyIiwKICAidXVpZCI6ICJyY2xvbmUtbWFuYWdlckBnZXJtYW56dHouY29tIiwKICAidmVyc2lvbiI6IDEzCn0="},
+    "46": {"version": "15", "sha256": "1916ry64p55gc78bblvkmxgcbzxvgpp7vgsvv0kscpc3z4z8hwyz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzIGxpa2UgRHJvcGJveCBzeW5jIGNsaWVudCBidXQgZm9yIG1vcmUgdGhhbiAzMCBzZXJ2aWNlcywgYWRkcyBhbiBpbmRpY2F0b3IgdG8gdGhlIHRvcCBwYW5lbCBzbyB5b3UgY2FuIG1hbmFnZSB0aGUgcmNsb25lIHByb2ZpbGVzIGNvbmZpZ3VyZWQgaW4geW91ciBzeXN0ZW0sIHBlcmZvcm0gb3BlcmF0aW9ucyBzdWNoIGFzIG1vdW50IGFzIHJlbW90ZSwgd2F0Y2ggZm9yIGZpbGUgbW9kaWZpY2F0aW9ucywgc3luYyB3aXRoIHJlbW90ZSBzdG9yYWdlLCBuYXZpZ2F0ZSBpdCdzIG1haW4gZm9sZGVyLiBBbHNvLCBpdCBzaG93cyB0aGUgc3RhdHVzIG9mIGVhY2ggcHJvZmlsZSBzbyB5b3UgY2FuIHN1cGVydmlzZSB0aGUgb3BlcmF0aW9ucywgYW5kIHByb3ZpZGVzIGFuIGVhc3kgYWNjZXNzIGxvZyBvZiBldmVudHMuIEJhY2t1cCBhbmQgcmVzdG9yZSB0aGUgcmNsb25lIGNvbmZpZ3VyYXRpb24gZmlsZSwgc28geW91IHdvbid0IGhhdmUgdG8gY29uZmlndXJlIGFsbCB5b3VyIGRldmljZXMgb25lIGJ5IG9uZSIsCiAgImdldHRleHQtZG9tYWluIjogInJjbG9uZS1tYW5hZ2VyIiwKICAibmFtZSI6ICJyY2xvbmUtbWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yY2xvbmUtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZXJtYW56dHovZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXJjbG9uZS1tYW5hZ2VyIiwKICAidXVpZCI6ICJyY2xvbmUtbWFuYWdlckBnZXJtYW56dHouY29tIiwKICAidmVyc2lvbiI6IDE1Cn0="}
   }}
 , {"uuid": "GPU_profile_selector@lorenzo9904.gmail.com", "name": "GPU profile selector", "pname": "gpu-profile-selector", "description": "You need to install envycontrol(https://github.com/geminis3/envycontrol) to make this extension work. This is a simple gnome-shell extension which provides a simple way to switch between GPU profiles on Nvidia Optimus systems (i.e laptops with Intel + Nvidia or AMD + Nvidia configurations) in a few clicks.", "link": "https://extensions.gnome.org/extension/5009/gpu-profile-selector/", "shell_version_map": {
     "38": {"version": "11", "sha256": "0bid6qwwxfw862sb4qw027017c9ya3p26cg10kjx7p3dwc54ccwf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIllvdSBuZWVkIHRvIGluc3RhbGwgZW52eWNvbnRyb2woaHR0cHM6Ly9naXRodWIuY29tL2dlbWluaXMzL2Vudnljb250cm9sKSBmb3IgbWFraW5nIHRoaXMgZXh0ZW5zaW9uIHdvcmtpbmcuIFRoaXMgaXMgYSBzaW1wbGUgZ25vbWUtc2hlbGwgZXh0ZW5zaW9uIHdoaWNoIHByb3ZpZGVzIGEgc2ltcGxlIHdheSB0byBzd2l0Y2ggYmV0d2VlbiBHUFUgcHJvZmlsZXMgb24gTnZpZGlhIE9wdGltdXMgc3lzdGVtcyAoaS5lIGxhcHRvcHMgd2l0aCBJbnRlbCArIE52aWRpYSBvciBBTUQgKyBOdmlkaWEgY29uZmlndXJhdGlvbnMpIGluIGEgZmV3IGNsaWNrcy4iLAogICJuYW1lIjogIkdQVSBwcm9maWxlIHNlbGVjdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTG9yZW56b01vcmVsbGkvR1BVX3Byb2ZpbGVfc2VsZWN0b3IiLAogICJ1dWlkIjogIkdQVV9wcm9maWxlX3NlbGVjdG9yQGxvcmVuem85OTA0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMQp9"},
@@ -4963,7 +5028,8 @@
     "42": {"version": "14", "sha256": "11v848619bj8dk29rz6468cc2mfkggqqz83gfqdngaksd996nxr0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSBtZXNzYWdlIHdyaXR0ZW4gYnkgdGhlIHVzZXIgb24gdGhlIHRvcCBiYXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2ltcGxlLW1lc3NhZ2UiLAogICJuYW1lIjogIlNpbXBsZSBNZXNzYWdlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXBsZS1tZXNzYWdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnJlZGRlei9nbm9tZS1zaGVsbC1zaW1wbGUtbWVzc2FnZSIsCiAgInV1aWQiOiAic2ltcGxlLW1lc3NhZ2VAZnJlZGRleiIsCiAgInZlcnNpb24iOiAxNAp9"},
     "43": {"version": "14", "sha256": "11v848619bj8dk29rz6468cc2mfkggqqz83gfqdngaksd996nxr0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSBtZXNzYWdlIHdyaXR0ZW4gYnkgdGhlIHVzZXIgb24gdGhlIHRvcCBiYXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2ltcGxlLW1lc3NhZ2UiLAogICJuYW1lIjogIlNpbXBsZSBNZXNzYWdlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXBsZS1tZXNzYWdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnJlZGRlei9nbm9tZS1zaGVsbC1zaW1wbGUtbWVzc2FnZSIsCiAgInV1aWQiOiAic2ltcGxlLW1lc3NhZ2VAZnJlZGRleiIsCiAgInZlcnNpb24iOiAxNAp9"},
     "44": {"version": "14", "sha256": "11v848619bj8dk29rz6468cc2mfkggqqz83gfqdngaksd996nxr0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSBtZXNzYWdlIHdyaXR0ZW4gYnkgdGhlIHVzZXIgb24gdGhlIHRvcCBiYXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2ltcGxlLW1lc3NhZ2UiLAogICJuYW1lIjogIlNpbXBsZSBNZXNzYWdlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXBsZS1tZXNzYWdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnJlZGRlei9nbm9tZS1zaGVsbC1zaW1wbGUtbWVzc2FnZSIsCiAgInV1aWQiOiAic2ltcGxlLW1lc3NhZ2VAZnJlZGRleiIsCiAgInZlcnNpb24iOiAxNAp9"},
-    "45": {"version": "15", "sha256": "1yzbnazv4ww8ja4imkac0b0fd4vdg3fniaqpgyskga00bnks0qrs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSBtZXNzYWdlIHdyaXR0ZW4gYnkgdGhlIHVzZXIgb24gdGhlIHRvcCBiYXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2ltcGxlLW1lc3NhZ2UiLAogICJuYW1lIjogIlNpbXBsZSBNZXNzYWdlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXBsZS1tZXNzYWdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZyZWRkZXovZ25vbWUtc2hlbGwtc2ltcGxlLW1lc3NhZ2UiLAogICJ1dWlkIjogInNpbXBsZS1tZXNzYWdlQGZyZWRkZXoiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}
+    "45": {"version": "17", "sha256": "10q9k44i65lmix5g54l2a2gcacj7hfc4ibnxb5dppjrcmfgi6krd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSBtZXNzYWdlIHdyaXR0ZW4gYnkgdGhlIHVzZXIgb24gdGhlIHRvcCBiYXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2ltcGxlLW1lc3NhZ2UiLAogICJuYW1lIjogIlNpbXBsZSBNZXNzYWdlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXBsZS1tZXNzYWdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mcmVkZGV6L2dub21lLXNoZWxsLXNpbXBsZS1tZXNzYWdlIiwKICAidXVpZCI6ICJzaW1wbGUtbWVzc2FnZUBmcmVkZGV6IiwKICAidmVyc2lvbiI6IDE3Cn0="},
+    "46": {"version": "17", "sha256": "10q9k44i65lmix5g54l2a2gcacj7hfc4ibnxb5dppjrcmfgi6krd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSBtZXNzYWdlIHdyaXR0ZW4gYnkgdGhlIHVzZXIgb24gdGhlIHRvcCBiYXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2ltcGxlLW1lc3NhZ2UiLAogICJuYW1lIjogIlNpbXBsZSBNZXNzYWdlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXBsZS1tZXNzYWdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mcmVkZGV6L2dub21lLXNoZWxsLXNpbXBsZS1tZXNzYWdlIiwKICAidXVpZCI6ICJzaW1wbGUtbWVzc2FnZUBmcmVkZGV6IiwKICAidmVyc2lvbiI6IDE3Cn0="}
   }}
 , {"uuid": "activate-window-by-title@lucaswerkmeister.de", "name": "Activate Window By Title", "pname": "activate-window-by-title", "description": "Expose a D-Bus interface to activate a window by its title or WM_CLASS", "link": "https://extensions.gnome.org/extension/5021/activate-window-by-title/", "shell_version_map": {
     "42": {"version": "5", "sha256": "1hqm9znczhw9iq4zx8nzy5cm8wr8lwsryk4l6g634fxqs1bxny5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4cG9zZSBhIEQtQnVzIGludGVyZmFjZSB0byBhY3RpdmF0ZSBhIHdpbmRvdyBieSBpdHMgdGl0bGUgb3IgV01fQ0xBU1MiLAogICJuYW1lIjogIkFjdGl2YXRlIFdpbmRvdyBCeSBUaXRsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1Y2Fzd2Vya21laXN0ZXIvYWN0aXZhdGUtd2luZG93LWJ5LXRpdGxlIiwKICAidXVpZCI6ICJhY3RpdmF0ZS13aW5kb3ctYnktdGl0bGVAbHVjYXN3ZXJrbWVpc3Rlci5kZSIsCiAgInZlcnNpb24iOiA1Cn0="},
@@ -4984,7 +5050,8 @@
     "42": {"version": "5", "sha256": "0yc5yal54vcmzc2iqr950ays12338h5b2fhzjfyl5bkvm8a08sml", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gYWN0aXZhdGluZyBvdmVydmlldyAoU3VwZXIgYnV0dG9uKSwgdGhlIGFwcGxpY2F0aW9uIHZpZXcgaXMgc2hvd24gaW5zdGVhZCBvZiB0aGUgdmlldyB3aXRoIHRoZSB3aW5kb3dzLiIsCiAgIm5hbWUiOiAiU3RhcnQgT3ZlcmxheSBpbiBBcHBsaWNhdGlvbiBWaWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9IZXhjei9TdGFydC1PdmVybGF5LWluLUFwcGxpY2F0aW9uLVZpZXctZm9yLUdub21lLTQwLSIsCiAgInV1aWQiOiAic3RhcnQtb3ZlcmxheS1pbi1hcHBsaWNhdGlvbi12aWV3QEhleF9jeiIsCiAgInZlcnNpb24iOiA1Cn0="},
     "43": {"version": "5", "sha256": "0yc5yal54vcmzc2iqr950ays12338h5b2fhzjfyl5bkvm8a08sml", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gYWN0aXZhdGluZyBvdmVydmlldyAoU3VwZXIgYnV0dG9uKSwgdGhlIGFwcGxpY2F0aW9uIHZpZXcgaXMgc2hvd24gaW5zdGVhZCBvZiB0aGUgdmlldyB3aXRoIHRoZSB3aW5kb3dzLiIsCiAgIm5hbWUiOiAiU3RhcnQgT3ZlcmxheSBpbiBBcHBsaWNhdGlvbiBWaWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9IZXhjei9TdGFydC1PdmVybGF5LWluLUFwcGxpY2F0aW9uLVZpZXctZm9yLUdub21lLTQwLSIsCiAgInV1aWQiOiAic3RhcnQtb3ZlcmxheS1pbi1hcHBsaWNhdGlvbi12aWV3QEhleF9jeiIsCiAgInZlcnNpb24iOiA1Cn0="},
     "44": {"version": "5", "sha256": "0yc5yal54vcmzc2iqr950ays12338h5b2fhzjfyl5bkvm8a08sml", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gYWN0aXZhdGluZyBvdmVydmlldyAoU3VwZXIgYnV0dG9uKSwgdGhlIGFwcGxpY2F0aW9uIHZpZXcgaXMgc2hvd24gaW5zdGVhZCBvZiB0aGUgdmlldyB3aXRoIHRoZSB3aW5kb3dzLiIsCiAgIm5hbWUiOiAiU3RhcnQgT3ZlcmxheSBpbiBBcHBsaWNhdGlvbiBWaWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9IZXhjei9TdGFydC1PdmVybGF5LWluLUFwcGxpY2F0aW9uLVZpZXctZm9yLUdub21lLTQwLSIsCiAgInV1aWQiOiAic3RhcnQtb3ZlcmxheS1pbi1hcHBsaWNhdGlvbi12aWV3QEhleF9jeiIsCiAgInZlcnNpb24iOiA1Cn0="},
-    "45": {"version": "6", "sha256": "1xcb1j8gk3bq8ib5jy6xlfzncvrjfj8k2vf5hcrb7k1djb2sna4h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gYWN0aXZhdGluZyBvdmVydmlldyAoU3VwZXIgYnV0dG9uKSwgdGhlIGFwcGxpY2F0aW9uIHZpZXcgaXMgc2hvd24gaW5zdGVhZCBvZiB0aGUgdmlldyB3aXRoIHRoZSB3aW5kb3dzLiIsCiAgIm5hbWUiOiAiU3RhcnQgT3ZlcmxheSBpbiBBcHBsaWNhdGlvbiBWaWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0hleGN6L1N0YXJ0LU92ZXJsYXktaW4tQXBwbGljYXRpb24tVmlldy1mb3ItR25vbWUtNDAtIiwKICAidXVpZCI6ICJzdGFydC1vdmVybGF5LWluLWFwcGxpY2F0aW9uLXZpZXdASGV4X2N6IiwKICAidmVyc2lvbiI6IDYKfQ=="}
+    "45": {"version": "7", "sha256": "0w9fmlsnkbyhfff6ac4jn2fvqh8m1kaamasligcmghhcm9p39wd0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gYWN0aXZhdGluZyBvdmVydmlldyAoU3VwZXIgYnV0dG9uKSwgdGhlIGFwcGxpY2F0aW9uIHZpZXcgaXMgc2hvd24gaW5zdGVhZCBvZiB0aGUgdmlldyB3aXRoIHRoZSB3aW5kb3dzLiIsCiAgIm5hbWUiOiAiU3RhcnQgT3ZlcmxheSBpbiBBcHBsaWNhdGlvbiBWaWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9IZXhjei9TdGFydC1PdmVybGF5LWluLUFwcGxpY2F0aW9uLVZpZXctZm9yLUdub21lLTQwLSIsCiAgInV1aWQiOiAic3RhcnQtb3ZlcmxheS1pbi1hcHBsaWNhdGlvbi12aWV3QEhleF9jeiIsCiAgInZlcnNpb24iOiA3Cn0="},
+    "46": {"version": "7", "sha256": "0w9fmlsnkbyhfff6ac4jn2fvqh8m1kaamasligcmghhcm9p39wd0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gYWN0aXZhdGluZyBvdmVydmlldyAoU3VwZXIgYnV0dG9uKSwgdGhlIGFwcGxpY2F0aW9uIHZpZXcgaXMgc2hvd24gaW5zdGVhZCBvZiB0aGUgdmlldyB3aXRoIHRoZSB3aW5kb3dzLiIsCiAgIm5hbWUiOiAiU3RhcnQgT3ZlcmxheSBpbiBBcHBsaWNhdGlvbiBWaWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9IZXhjei9TdGFydC1PdmVybGF5LWluLUFwcGxpY2F0aW9uLVZpZXctZm9yLUdub21lLTQwLSIsCiAgInV1aWQiOiAic3RhcnQtb3ZlcmxheS1pbi1hcHBsaWNhdGlvbi12aWV3QEhleF9jeiIsCiAgInZlcnNpb24iOiA3Cn0="}
   }}
 , {"uuid": "eortologio@danchris.github.io", "name": "Eortologio", "pname": "eortologio-extension", "description": "Simple gnome extension to display the greek namedays", "link": "https://extensions.gnome.org/extension/5046/eortologio-extension/", "shell_version_map": {
     "41": {"version": "6", "sha256": "0s5wgccri95gsv6alvd7cd2hsprmdap3sfpcaxa3s3apl0c0p9xf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBnbm9tZSBleHRlbnNpb24gdG8gZGlzcGxheSB0aGUgZ3JlZWsgbmFtZWRheXMiLAogICJuYW1lIjogIkVvcnRvbG9naW8iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGFuY2hyaXMvZW9ydG9sb2dpby1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogImVvcnRvbG9naW9AZGFuY2hyaXMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="},
@@ -5027,7 +5094,8 @@
     "42": {"version": "11", "sha256": "0vcg42shlmm9v59qqyy5i8nqsh8gfasc67156k92f619yhav298y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhIHNpbmdsZSB0YXNrIG9yIGdvYWwgaW4geW91ciBtZW51IGJhciIsCiAgIm5hbWUiOiAiT25lIFRoaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW50ZWhlbWVyc29uL29uZS10aGluZyIsCiAgInV1aWQiOiAib25lLXRoaW5nQGdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
     "43": {"version": "11", "sha256": "0vcg42shlmm9v59qqyy5i8nqsh8gfasc67156k92f619yhav298y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhIHNpbmdsZSB0YXNrIG9yIGdvYWwgaW4geW91ciBtZW51IGJhciIsCiAgIm5hbWUiOiAiT25lIFRoaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW50ZWhlbWVyc29uL29uZS10aGluZyIsCiAgInV1aWQiOiAib25lLXRoaW5nQGdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
     "44": {"version": "11", "sha256": "0vcg42shlmm9v59qqyy5i8nqsh8gfasc67156k92f619yhav298y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhIHNpbmdsZSB0YXNrIG9yIGdvYWwgaW4geW91ciBtZW51IGJhciIsCiAgIm5hbWUiOiAiT25lIFRoaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW50ZWhlbWVyc29uL29uZS10aGluZyIsCiAgInV1aWQiOiAib25lLXRoaW5nQGdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
-    "45": {"version": "16", "sha256": "1jl74kymqhx691zayc0jqnaka0z99d5sfrrpggygp09cqf5yl8qr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhIHNpbmdsZSB0YXNrIG9yIGdvYWwgaW4geW91ciBtZW51IGJhciIsCiAgIm5hbWUiOiAiT25lIFRoaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9uZS10aGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW50ZWhlbWVyc29uL29uZS10aGluZyIsCiAgInV1aWQiOiAib25lLXRoaW5nQGdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}
+    "45": {"version": "18", "sha256": "1q7qqsngib718vlb5j4wzv6jfiwg1651ivwq1r5wkz35zfylz4xb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhIHNpbmdsZSB0YXNrIG9yIGdvYWwgaW4geW91ciBtZW51IGJhciIsCiAgIm5hbWUiOiAiT25lIFRoaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9uZS10aGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGFudGVoZW1lcnNvbi9vbmUtdGhpbmciLAogICJ1dWlkIjogIm9uZS10aGluZ0BnaXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="},
+    "46": {"version": "18", "sha256": "1q7qqsngib718vlb5j4wzv6jfiwg1651ivwq1r5wkz35zfylz4xb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhIHNpbmdsZSB0YXNrIG9yIGdvYWwgaW4geW91ciBtZW51IGJhciIsCiAgIm5hbWUiOiAiT25lIFRoaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9uZS10aGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGFudGVoZW1lcnNvbi9vbmUtdGhpbmciLAogICJ1dWlkIjogIm9uZS10aGluZ0BnaXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="}
   }}
 , {"uuid": "vpn-toggler@rheddes.nl", "name": "VPN Toggler", "pname": "vpn-toggler", "description": "A forked version of (https://extensions.gnome.org/extension/4061/custom-vpn-toggler/).\n VPN Toggler (and indicator) allows to see the status of a VPN (with its icon), see IP address associated and permit to start and stop VPN (from a menu).\n\nThis plugin required an additional script to interact with VPN. \nAn example for Open VPN is available on extension repository. \nFollow the link to Extension Web Site and see README.", "link": "https://extensions.gnome.org/extension/5075/vpn-toggler/", "shell_version_map": {
     "42": {"version": "5", "sha256": "0z1jfgkhw6b20s3zmq2iydbs8a4cigbn8qw2kwxwplapg176lrlj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZm9ya2VkIHZlcnNpb24gb2YgKGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzQwNjEvY3VzdG9tLXZwbi10b2dnbGVyLykuXG4gVlBOIFRvZ2dsZXIgKGFuZCBpbmRpY2F0b3IpIGFsbG93cyB0byBzZWUgdGhlIHN0YXR1cyBvZiBhIFZQTiAod2l0aCBpdHMgaWNvbiksIHNlZSBJUCBhZGRyZXNzIGFzc29jaWF0ZWQgYW5kIHBlcm1pdCB0byBzdGFydCBhbmQgc3RvcCBWUE4gKGZyb20gYSBtZW51KS5cblxuVGhpcyBwbHVnaW4gcmVxdWlyZWQgYW4gYWRkaXRpb25hbCBzY3JpcHQgdG8gaW50ZXJhY3Qgd2l0aCBWUE4uIFxuQW4gZXhhbXBsZSBmb3IgT3BlbiBWUE4gaXMgYXZhaWxhYmxlIG9uIGV4dGVuc2lvbiByZXBvc2l0b3J5LiBcbkZvbGxvdyB0aGUgbGluayB0byBFeHRlbnNpb24gV2ViIFNpdGUgYW5kIHNlZSBSRUFETUUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidnBuLXRvZ2dsZXJAcmhlZGRlcy5ubCIsCiAgIm5hbWUiOiAiVlBOIFRvZ2dsZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudnBuLXRvZ2dsZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SaGVkZGVzL3Zwbi10b2dnbGVyIiwKICAidXVpZCI6ICJ2cG4tdG9nZ2xlckByaGVkZGVzLm5sIiwKICAidmVyc2lvbiI6IDUKfQ=="},
@@ -5068,7 +5136,7 @@
     "43": {"version": "22", "sha256": "16bsn3mpd66p3p7yz56zr0ghglj8y8cmlrvn8q8fdvvrj2srkjvf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSAnQWN0aXZpdGllcycgYnV0dG9uIHdpdGggYW4gaTMtbGlrZSB3b3Jrc3BhY2VzIGJhci5cblxuT3JpZ2luYWxseSBhIGZvcmsgb2YgdGhlIGV4dGVuc2lvbiBXb3Jrc3BhY2VzIEJhciBieSBmdGh4LCB0aGlzIGV4dGVuc2lvbiBncmV3IGludG8gYSBtb3JlIGNvbXByZWhlbnNpdmUgc2V0IG9mIGZlYXR1cmVzIHRvIHN1cHBvcnQgYSB3b3Jrc3BhY2UtYmFzZWQgd29ya2Zsb3cuXG5cbkZlYXR1cmVzOlxuLSAgIEZpcnN0IGNsYXNzIHN1cHBvcnQgZm9yIHN0YXRpYyBhbmQgZHluYW1pYyB3b3Jrc3BhY2VzIGFzIHdlbGwgYXMgbXVsdGktbW9uaXRvciBzZXR1cHNcbi0gICBBZGQsIHJlbW92ZSwgYW5kIHJlbmFtZSB3b3Jrc3BhY2VzXG4tICAgUmVhcnJhbmdlIHdvcmtzcGFjZXMgdmlhIGRyYWcgYW5kIGRyb3Bcbi0gICBBdXRvbWF0aWNhbGx5IGFzc2lnbiB3b3Jrc3BhY2UgbmFtZXMgYmFzZWQgb24gc3RhcnRlZCBhcHBsaWNhdGlvbnNcbi0gICBLZXlib2FyZCBzaG9ydGN1dHMgZXh0ZW5kIGFuZCByZWZpbmUgc3lzdGVtIHNob3J0Y3V0c1xuLSAgIFNjcm9sbCB0aHJvdWdoIHdvcmtzcGFjZXMgYnkgbW91c2Ugd2hlZWwgb3ZlciB0aGUgcGFuZWxcbi0gICBDdXN0b21pemUgdGhlIGFwcGVhcmFuY2UiLAogICJuYW1lIjogIlNwYWNlIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcGFjZS1iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RvcGhlci1sL3NwYWNlLWJhciIsCiAgInV1aWQiOiAic3BhY2UtYmFyQGx1Y2hyaW9oIiwKICAidmVyc2lvbiI6IDIyCn0="},
     "44": {"version": "22", "sha256": "16bsn3mpd66p3p7yz56zr0ghglj8y8cmlrvn8q8fdvvrj2srkjvf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSAnQWN0aXZpdGllcycgYnV0dG9uIHdpdGggYW4gaTMtbGlrZSB3b3Jrc3BhY2VzIGJhci5cblxuT3JpZ2luYWxseSBhIGZvcmsgb2YgdGhlIGV4dGVuc2lvbiBXb3Jrc3BhY2VzIEJhciBieSBmdGh4LCB0aGlzIGV4dGVuc2lvbiBncmV3IGludG8gYSBtb3JlIGNvbXByZWhlbnNpdmUgc2V0IG9mIGZlYXR1cmVzIHRvIHN1cHBvcnQgYSB3b3Jrc3BhY2UtYmFzZWQgd29ya2Zsb3cuXG5cbkZlYXR1cmVzOlxuLSAgIEZpcnN0IGNsYXNzIHN1cHBvcnQgZm9yIHN0YXRpYyBhbmQgZHluYW1pYyB3b3Jrc3BhY2VzIGFzIHdlbGwgYXMgbXVsdGktbW9uaXRvciBzZXR1cHNcbi0gICBBZGQsIHJlbW92ZSwgYW5kIHJlbmFtZSB3b3Jrc3BhY2VzXG4tICAgUmVhcnJhbmdlIHdvcmtzcGFjZXMgdmlhIGRyYWcgYW5kIGRyb3Bcbi0gICBBdXRvbWF0aWNhbGx5IGFzc2lnbiB3b3Jrc3BhY2UgbmFtZXMgYmFzZWQgb24gc3RhcnRlZCBhcHBsaWNhdGlvbnNcbi0gICBLZXlib2FyZCBzaG9ydGN1dHMgZXh0ZW5kIGFuZCByZWZpbmUgc3lzdGVtIHNob3J0Y3V0c1xuLSAgIFNjcm9sbCB0aHJvdWdoIHdvcmtzcGFjZXMgYnkgbW91c2Ugd2hlZWwgb3ZlciB0aGUgcGFuZWxcbi0gICBDdXN0b21pemUgdGhlIGFwcGVhcmFuY2UiLAogICJuYW1lIjogIlNwYWNlIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcGFjZS1iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RvcGhlci1sL3NwYWNlLWJhciIsCiAgInV1aWQiOiAic3BhY2UtYmFyQGx1Y2hyaW9oIiwKICAidmVyc2lvbiI6IDIyCn0="},
     "45": {"version": "24", "sha256": "1xmcp6292vadgwn90j4c21gid8vzq1s5h1lvspr4a78b2bb73q93", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSB0b3AtcGFuZWwgd29ya3NwYWNlIGluZGljYXRvciB3aXRoIGFuIGkzLWxpa2Ugd29ya3NwYWNlcyBiYXIuXG5cbk9yaWdpbmFsbHkgYSBmb3JrIG9mIHRoZSBleHRlbnNpb24gV29ya3NwYWNlcyBCYXIgYnkgZnRoeCwgdGhpcyBleHRlbnNpb24gZ3JldyBpbnRvIGEgbW9yZSBjb21wcmVoZW5zaXZlIHNldCBvZiBmZWF0dXJlcyB0byBzdXBwb3J0IGEgd29ya3NwYWNlLWJhc2VkIHdvcmtmbG93LlxuXG5GZWF0dXJlczpcbi0gICBGaXJzdCBjbGFzcyBzdXBwb3J0IGZvciBzdGF0aWMgYW5kIGR5bmFtaWMgd29ya3NwYWNlcyBhcyB3ZWxsIGFzIG11bHRpLW1vbml0b3Igc2V0dXBzXG4tICAgQWRkLCByZW1vdmUsIGFuZCByZW5hbWUgd29ya3NwYWNlc1xuLSAgIFJlYXJyYW5nZSB3b3Jrc3BhY2VzIHZpYSBkcmFnIGFuZCBkcm9wXG4tICAgQXV0b21hdGljYWxseSBhc3NpZ24gd29ya3NwYWNlIG5hbWVzIGJhc2VkIG9uIHN0YXJ0ZWQgYXBwbGljYXRpb25zXG4tICAgS2V5Ym9hcmQgc2hvcnRjdXRzIGV4dGVuZCBhbmQgcmVmaW5lIHN5c3RlbSBzaG9ydGN1dHNcbi0gICBTY3JvbGwgdGhyb3VnaCB3b3Jrc3BhY2VzIGJ5IG1vdXNlIHdoZWVsIG92ZXIgdGhlIHBhbmVsXG4tICAgQ3VzdG9taXplIHRoZSBhcHBlYXJhbmNlIiwKICAibmFtZSI6ICJTcGFjZSBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3BhY2UtYmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdG9waGVyLWwvc3BhY2UtYmFyIiwKICAidXVpZCI6ICJzcGFjZS1iYXJAbHVjaHJpb2giLAogICJ2ZXJzaW9uIjogMjQKfQ=="},
-    "46": {"version": "25", "sha256": "03gh9r9nakdc8zdmdhn0dq8c46qfi0hhmbnf1wj0r0dr3csp8v1f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSB0b3AtcGFuZWwgd29ya3NwYWNlIGluZGljYXRvciB3aXRoIGFuIGkzLWxpa2Ugd29ya3NwYWNlcyBiYXIuXG5cbk9yaWdpbmFsbHkgYSBmb3JrIG9mIHRoZSBleHRlbnNpb24gV29ya3NwYWNlcyBCYXIgYnkgZnRoeCwgdGhpcyBleHRlbnNpb24gZ3JldyBpbnRvIGEgbW9yZSBjb21wcmVoZW5zaXZlIHNldCBvZiBmZWF0dXJlcyB0byBzdXBwb3J0IGEgd29ya3NwYWNlLWJhc2VkIHdvcmtmbG93LlxuXG5GZWF0dXJlczpcbi0gICBGaXJzdCBjbGFzcyBzdXBwb3J0IGZvciBzdGF0aWMgYW5kIGR5bmFtaWMgd29ya3NwYWNlcyBhcyB3ZWxsIGFzIG11bHRpLW1vbml0b3Igc2V0dXBzXG4tICAgQWRkLCByZW1vdmUsIGFuZCByZW5hbWUgd29ya3NwYWNlc1xuLSAgIFJlYXJyYW5nZSB3b3Jrc3BhY2VzIHZpYSBkcmFnIGFuZCBkcm9wXG4tICAgQXV0b21hdGljYWxseSBhc3NpZ24gd29ya3NwYWNlIG5hbWVzIGJhc2VkIG9uIHN0YXJ0ZWQgYXBwbGljYXRpb25zXG4tICAgS2V5Ym9hcmQgc2hvcnRjdXRzIGV4dGVuZCBhbmQgcmVmaW5lIHN5c3RlbSBzaG9ydGN1dHNcbi0gICBTY3JvbGwgdGhyb3VnaCB3b3Jrc3BhY2VzIGJ5IG1vdXNlIHdoZWVsIG92ZXIgdGhlIHBhbmVsXG4tICAgQ3VzdG9taXplIHRoZSBhcHBlYXJhbmNlIiwKICAibmFtZSI6ICJTcGFjZSBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3BhY2UtYmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdG9waGVyLWwvc3BhY2UtYmFyIiwKICAidXVpZCI6ICJzcGFjZS1iYXJAbHVjaHJpb2giLAogICJ2ZXJzaW9uIjogMjUKfQ=="}
+    "46": {"version": "27", "sha256": "1x294z9zfmi6hr2zqw94bhpih4qilr368xjvjq5x2lhkimvmxk17", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSB0b3AtcGFuZWwgd29ya3NwYWNlIGluZGljYXRvciB3aXRoIGFuIGkzLWxpa2Ugd29ya3NwYWNlcyBiYXIuXG5cbk9yaWdpbmFsbHkgYSBmb3JrIG9mIHRoZSBleHRlbnNpb24gV29ya3NwYWNlcyBCYXIgYnkgZnRoeCwgdGhpcyBleHRlbnNpb24gZ3JldyBpbnRvIGEgbW9yZSBjb21wcmVoZW5zaXZlIHNldCBvZiBmZWF0dXJlcyB0byBzdXBwb3J0IGEgd29ya3NwYWNlLWJhc2VkIHdvcmtmbG93LlxuXG5GZWF0dXJlczpcbi0gICBGaXJzdCBjbGFzcyBzdXBwb3J0IGZvciBzdGF0aWMgYW5kIGR5bmFtaWMgd29ya3NwYWNlcyBhcyB3ZWxsIGFzIG11bHRpLW1vbml0b3Igc2V0dXBzXG4tICAgQWRkLCByZW1vdmUsIGFuZCByZW5hbWUgd29ya3NwYWNlc1xuLSAgIFJlYXJyYW5nZSB3b3Jrc3BhY2VzIHZpYSBkcmFnIGFuZCBkcm9wXG4tICAgQXV0b21hdGljYWxseSBhc3NpZ24gd29ya3NwYWNlIG5hbWVzIGJhc2VkIG9uIHN0YXJ0ZWQgYXBwbGljYXRpb25zXG4tICAgS2V5Ym9hcmQgc2hvcnRjdXRzIGV4dGVuZCBhbmQgcmVmaW5lIHN5c3RlbSBzaG9ydGN1dHNcbi0gICBTY3JvbGwgdGhyb3VnaCB3b3Jrc3BhY2VzIGJ5IG1vdXNlIHdoZWVsIG92ZXIgdGhlIHBhbmVsXG4tICAgQ3VzdG9taXplIHRoZSBhcHBlYXJhbmNlIiwKICAibmFtZSI6ICJTcGFjZSBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3BhY2UtYmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdG9waGVyLWwvc3BhY2UtYmFyIiwKICAidXVpZCI6ICJzcGFjZS1iYXJAbHVjaHJpb2giLAogICJ2ZXJzaW9uIjogMjcKfQ=="}
   }}
 , {"uuid": "gnome-shellext-hide-lock@adyrosebrigg", "name": "Hide Lock item in System Menu", "pname": "hide-lock-item-in-system-menu", "description": "Hides the \"Lock\" option from the system menu dropdown in the top right.", "link": "https://extensions.gnome.org/extension/5091/hide-lock-item-in-system-menu/", "shell_version_map": {
     "42": {"version": "2", "sha256": "0ab3yc5z9yhvp21145cfgh88sby4x464argy12c80anyhf55zm79", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBcIkxvY2tcIiBvcHRpb24gZnJvbSB0aGUgc3lzdGVtIG1lbnUgZHJvcGRvd24gaW4gdGhlIHRvcCByaWdodC4iLAogICJuYW1lIjogIkhpZGUgTG9jayBpdGVtIGluIFN5c3RlbSBNZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FkeXJvc2VicmlnZy9nbm9tZS1zaGVsbGV4dC1oaWRlLWxvY2siLAogICJ1dWlkIjogImdub21lLXNoZWxsZXh0LWhpZGUtbG9ja0BhZHlyb3NlYnJpZ2ciLAogICJ2ZXJzaW9uIjogMgp9"}
@@ -5087,15 +5155,15 @@
     "42": {"version": "21", "sha256": "06hfl07q9v6r6igys09c2bk7r1jdv588nl6m1br382fl8b6g5bgg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBEb2NrZXIgYW5kIERvY2tlciBDb21wb3NlLiIsCiAgIm5hbWUiOiAiRG9ja2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogMjEKfQ=="},
     "43": {"version": "21", "sha256": "06hfl07q9v6r6igys09c2bk7r1jdv588nl6m1br382fl8b6g5bgg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBEb2NrZXIgYW5kIERvY2tlciBDb21wb3NlLiIsCiAgIm5hbWUiOiAiRG9ja2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogMjEKfQ=="},
     "44": {"version": "21", "sha256": "06hfl07q9v6r6igys09c2bk7r1jdv588nl6m1br382fl8b6g5bgg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBEb2NrZXIgYW5kIERvY2tlciBDb21wb3NlLiIsCiAgIm5hbWUiOiAiRG9ja2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogMjEKfQ=="},
-    "45": {"version": "31", "sha256": "02vkhxs5nm0jap716gbqzyyznmldy87lfgbn512x448y5h8v9fgd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBEb2NrZXIgYW5kIERvY2tlciBDb21wb3NlLiIsCiAgImdldHRleHQtZG9tYWluIjogImRvY2tlckBzdGlja21hbl8weDAwLmNvbSIsCiAgIm5hbWUiOiAiRG9ja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRvY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogMzEKfQ=="},
-    "46": {"version": "31", "sha256": "02vkhxs5nm0jap716gbqzyyznmldy87lfgbn512x448y5h8v9fgd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBEb2NrZXIgYW5kIERvY2tlciBDb21wb3NlLiIsCiAgImdldHRleHQtZG9tYWluIjogImRvY2tlckBzdGlja21hbl8weDAwLmNvbSIsCiAgIm5hbWUiOiAiRG9ja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRvY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogMzEKfQ=="}
+    "45": {"version": "33", "sha256": "019j0gskzfdh1snbhyqxhiskyqaqhszsw5flapmx6ndwcn5fjybs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBEb2NrZXIgYW5kIERvY2tlciBDb21wb3NlLiIsCiAgImdldHRleHQtZG9tYWluIjogImRvY2tlckBzdGlja21hbl8weDAwLmNvbSIsCiAgIm5hbWUiOiAiRG9ja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRvY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogMzMKfQ=="},
+    "46": {"version": "33", "sha256": "019j0gskzfdh1snbhyqxhiskyqaqhszsw5flapmx6ndwcn5fjybs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBEb2NrZXIgYW5kIERvY2tlciBDb21wb3NlLiIsCiAgImdldHRleHQtZG9tYWluIjogImRvY2tlckBzdGlja21hbl8weDAwLmNvbSIsCiAgIm5hbWUiOiAiRG9ja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRvY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}
   }}
 , {"uuid": "reboottouefi@ubaygd.com", "name": "RebootToUEFI", "pname": "reboottouefi", "description": "Reboot system into UEFI", "link": "https://extensions.gnome.org/extension/5105/reboottouefi/", "shell_version_map": {
     "42": {"version": "14", "sha256": "1yqp2hhmcymzjyq3shwh1cld423iah9s8s3caqmjrln7vjh4syrw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBzeXN0ZW0gaW50byBVRUZJIiwKICAibGljZW5zZSI6ICJHUEx2MyIsCiAgIm5hbWUiOiAiUmVib290VG9VRUZJIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVWJheUdEL3JlYm9vdHRvdWVmaSIsCiAgInV1aWQiOiAicmVib290dG91ZWZpQHViYXlnZC5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="},
     "43": {"version": "14", "sha256": "1yqp2hhmcymzjyq3shwh1cld423iah9s8s3caqmjrln7vjh4syrw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBzeXN0ZW0gaW50byBVRUZJIiwKICAibGljZW5zZSI6ICJHUEx2MyIsCiAgIm5hbWUiOiAiUmVib290VG9VRUZJIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVWJheUdEL3JlYm9vdHRvdWVmaSIsCiAgInV1aWQiOiAicmVib290dG91ZWZpQHViYXlnZC5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="},
     "44": {"version": "14", "sha256": "1yqp2hhmcymzjyq3shwh1cld423iah9s8s3caqmjrln7vjh4syrw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBzeXN0ZW0gaW50byBVRUZJIiwKICAibGljZW5zZSI6ICJHUEx2MyIsCiAgIm5hbWUiOiAiUmVib290VG9VRUZJIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVWJheUdEL3JlYm9vdHRvdWVmaSIsCiAgInV1aWQiOiAicmVib290dG91ZWZpQHViYXlnZC5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="},
-    "45": {"version": "21", "sha256": "18c7ib0cmpf1ac3x1b3p91ydf4c3f08vp3zzivmx1qgj2b4595a1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBzeXN0ZW0gaW50byBVRUZJIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicmVib290dG91ZWZpQHViYXlnZC5jb20iLAogICJsaWNlbnNlIjogIkdQTHYzIiwKICAibmFtZSI6ICJSZWJvb3RUb1VFRkkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1ViYXlHRC9yZWJvb3R0b3VlZmkiLAogICJ1dWlkIjogInJlYm9vdHRvdWVmaUB1YmF5Z2QuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="},
-    "46": {"version": "21", "sha256": "18c7ib0cmpf1ac3x1b3p91ydf4c3f08vp3zzivmx1qgj2b4595a1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBzeXN0ZW0gaW50byBVRUZJIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicmVib290dG91ZWZpQHViYXlnZC5jb20iLAogICJsaWNlbnNlIjogIkdQTHYzIiwKICAibmFtZSI6ICJSZWJvb3RUb1VFRkkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1ViYXlHRC9yZWJvb3R0b3VlZmkiLAogICJ1dWlkIjogInJlYm9vdHRvdWVmaUB1YmF5Z2QuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}
+    "45": {"version": "22", "sha256": "167i8z1i04b9q5isbrwd8a7n6rw6w23qc7nvck8w7qrls83cc280", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBzeXN0ZW0gaW50byBVRUZJIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicmVib290dG91ZWZpQHViYXlnZC5jb20iLAogICJsaWNlbnNlIjogIkdQTHYzIiwKICAibmFtZSI6ICJSZWJvb3RUb1VFRkkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1ViYXlHRC9yZWJvb3R0b3VlZmkiLAogICJ1dWlkIjogInJlYm9vdHRvdWVmaUB1YmF5Z2QuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="},
+    "46": {"version": "22", "sha256": "167i8z1i04b9q5isbrwd8a7n6rw6w23qc7nvck8w7qrls83cc280", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBzeXN0ZW0gaW50byBVRUZJIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicmVib290dG91ZWZpQHViYXlnZC5jb20iLAogICJsaWNlbnNlIjogIkdQTHYzIiwKICAibmFtZSI6ICJSZWJvb3RUb1VFRkkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1ViYXlHRC9yZWJvb3R0b3VlZmkiLAogICJ1dWlkIjogInJlYm9vdHRvdWVmaUB1YmF5Z2QuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}
   }}
 , {"uuid": "touch-ux@dblandford.com", "name": "Touch-UX", "pname": "touch-ux", "description": "Provides a swipe up gesture bar and a status bar shortcut to force the on screen keyboard to show in scenarios that it does not automatically show when expected.", "link": "https://extensions.gnome.org/extension/5108/touch-ux/", "shell_version_map": {
     "42": {"version": "3", "sha256": "1vjchsz0jml0qaj2mz0khsagacxz1m60ypcjnymh3swrx9lj765m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGVzIGEgc3dpcGUgdXAgZ2VzdHVyZSBiYXIgYW5kIGEgc3RhdHVzIGJhciBzaG9ydGN1dCB0byBmb3JjZSB0aGUgb24gc2NyZWVuIGtleWJvYXJkIHRvIHNob3cgaW4gc2NlbmFyaW9zIHRoYXQgaXQgZG9lcyBub3QgYXV0b21hdGljYWxseSBzaG93IHdoZW4gZXhwZWN0ZWQuIiwKICAibmFtZSI6ICJUb3VjaC1VWCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9EYW5pZWwtQmxhbmRmb3JkL1RvdWNoLVVYIiwKICAidXVpZCI6ICJ0b3VjaC11eEBkYmxhbmRmb3JkLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}
@@ -5186,16 +5254,17 @@
     "42": {"version": "10", "sha256": "0ca4nlss4j5rmq8xaqvjxxacdhb1vlmydqp4cal77mgzk79q63nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29kaWxpYS91cG93ZXItYmF0dGVyeSIsCiAgInV1aWQiOiAidXBvd2VyLWJhdHRlcnlAY29kaWxpYS5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
     "43": {"version": "10", "sha256": "0ca4nlss4j5rmq8xaqvjxxacdhb1vlmydqp4cal77mgzk79q63nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29kaWxpYS91cG93ZXItYmF0dGVyeSIsCiAgInV1aWQiOiAidXBvd2VyLWJhdHRlcnlAY29kaWxpYS5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
     "44": {"version": "10", "sha256": "0ca4nlss4j5rmq8xaqvjxxacdhb1vlmydqp4cal77mgzk79q63nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29kaWxpYS91cG93ZXItYmF0dGVyeSIsCiAgInV1aWQiOiAidXBvd2VyLWJhdHRlcnlAY29kaWxpYS5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
-    "45": {"version": "16", "sha256": "09hxl6scc3jslfjxl4dsy76fkj8sjb0rhbs4y3d9id6n3gszgqny", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NvZGlsaWEvdXBvd2VyLWJhdHRlcnkiLAogICJ1dWlkIjogInVwb3dlci1iYXR0ZXJ5QGNvZGlsaWEuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}
+    "45": {"version": "20", "sha256": "1nbhhj7gc4r9584rm66lqfgb9saqsgvip7ki4mdmcp6204yf49qd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2RpbGlhL3Vwb3dlci1iYXR0ZXJ5IiwKICAidXVpZCI6ICJ1cG93ZXItYmF0dGVyeUBjb2RpbGlhLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"},
+    "46": {"version": "20", "sha256": "1nbhhj7gc4r9584rm66lqfgb9saqsgvip7ki4mdmcp6204yf49qd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2RpbGlhL3Vwb3dlci1iYXR0ZXJ5IiwKICAidXVpZCI6ICJ1cG93ZXItYmF0dGVyeUBjb2RpbGlhLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"}
   }}
-, {"uuid": "vertical-workspaces@G-dH.github.com", "name": "V-Shell (Vertical Workspaces)", "pname": "vertical-workspaces", "description": "Customize your GNOME Shell UX to fit your workflow, whether you like horizontally or vertically stacked workspaces. Originally Vertical Workspaces.\n\nDear users, the reliability and stability of this extension is my priority, but V-Shell is an extension to default GNOME Shell and cannot be compatible with all available extensions. If you encounter any problem, first check for conflicts with other extensions and then open an issue on the Github page linked below.\n\nV-Shell includes many workarounds to survive conflicts and work with Dash to Dock / Ubuntu Dock extensions and other popular extensions, but issues may occur. The patched Dash to Dock for V-Shell is already available in my GitHub repository.\n\nAny feedback is greatly appreciated!\n\nV-Shell features:\n- vertical or horizontal orientation of workspaces\n- customize the overview layout, dimensions and contents\n- alternative overview modes with static workspace preview that reduces unnecessary movement on the screen\n- 4 predefined profiles with different layout and behavior that can be overwritten by your settings\n- wallpaper background with adjustable blur effect in the overview\n- dash icon size, content, icon click and scroll behavior\n- app grid dimensions, icon size, contents and behavior\n- active icons in the folder preview\n- close workspace button on workspace thumbnail\n- main panel position and visibility\n- hot corner/edge position and behavior\n- notifications, OSD and workspace switcher popup position\n- custom window attention handler behavior\n- improved app search provider with custom icon size\n- static background in the workspace switcher animation outside of the overview\n- independent workspace switching for each monitor (workaround)\n- workspace switcher popup appears even when switching workspace with a gesture\n- workspace isolated Dash\n- fixes (works around) several upstream bugs (known and reported)\n- modular structure of the V-Shell allows you to disable modules that you don't need or conflict with other extension that you like better for the task", "link": "https://extensions.gnome.org/extension/5177/vertical-workspaces/", "shell_version_map": {
+, {"uuid": "vertical-workspaces@G-dH.github.com", "name": "V-Shell (Vertical Workspaces)", "pname": "vertical-workspaces", "description": "Customize your GNOME Shell UX to fit your workflow, whether you like horizontally or vertically stacked workspaces.\n\nDear users, the reliability and stability of this extension is my priority, however, V-Shell is an extension to the default GNOME Shell and cannot be compatible with all available extensions. If you encounter any problem, first check for conflicts with other extensions and then open an issue on the Github page linked below.\n\nV-Shell includes many workarounds to survive conflicts and work with Dash to Dock / Ubuntu Dock extensions and other popular extensions, but issues may occur.\n\nAny feedback is greatly appreciated!\n\nV-Shell features:\n- vertical or horizontal orientation of workspaces\n- customize the overview layout, dimensions and contents\n- alternative overview modes with static workspace preview that reduces unnecessary movement on the screen\n- 4 predefined, fully customizable profiles with different layout and behavior\n- wallpaper background with adjustable brightness and blur effect in the overview\n- dash icon size, content, icon click and scroll behavior\n- app grid dimensions (columns, rows), icon size, contents and behavior\n- active icons in the folder preview\n- close workspace button on workspace thumbnail\n- main panel position and visibility\n- hot corner/edge position and behavior\n- notifications, OSD and workspace switcher popup position\n- custom window attention handler behavior\n- improved app search provider with custom icon size\n- static background in the workspace switcher animation outside of the overview\n- independent workspace switching for each monitor (workaround)\n- workspace switcher popup appears even when switching workspace with a gesture\n- workspace isolated Dash\n- fixes (works around) several upstream bugs (known and reported)\n- modular structure of the V-Shell allows you to disable modules that you don't need or conflict with other extension that you like better for the task", "link": "https://extensions.gnome.org/extension/5177/vertical-workspaces/", "shell_version_map": {
     "40": {"version": "23", "sha256": "0dp7qbbcs46w1lc2v46cvhfx7r8h1jrp95mhd8wip8c7npmnr66q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuXG5cbkRlYXIgdXNlcnMsIHRoZSByZWxpYWJpbGl0eSBhbmQgc3RhYmlsaXR5IG9mIHRoaXMgZXh0ZW5zaW9uIGlzIG15IHByaW9yaXR5LCBpZiB5b3UgZW5jb3VudGVyIGFueSBwcm9ibGVtLCBmaXJzdCBjaGVjayBmb3IgY29uZmxpY3RzIHdpdGggb3RoZXIgZXh0ZW5zaW9ucyBhbmQgdGhlbiBvcGVuIGFuIGlzc3VlIG9uIHRoZSBHaXRodWIgcGFnZSBsaW5rZWQgYmVsb3cuXG5cblYtU2hlbGwgaW5jbHVkZXMgbWFueSB3b3JrYXJvdW5kcyB0byBzdXJ2aXZlIGNvbmZsaWN0cyBhbmQgd29yayB3aXRoIERhc2ggdG8gRG9jayAvIFVidW50dSBEb2NrIGV4dGVuc2lvbnMsIGJ1dCBpc3N1ZXMgbWF5IG9jY3VyLiBJbiBhbnkgY2FzZSwgVi1TaGVsbCB3b3JrcyBiZXR0ZXIgd2l0aG91dCBEYXNoIHRvIERvY2suXG5cbkFueSBmZWVkYmFjayBpcyBncmVhdGx5IGFwcHJlY2lhdGVkLCBidXQgZG9uJ3QgZm9yZ2V0IC0gaWYgeW91IHdhbnQgbWUgdG8gd29yayBmb3IgeW91LCBiZSBuaWNlIDspXG5cblYtU2hlbGwgZmVhdHVyZXM6XG4tIHZlcnRpY2FsIG9yIGhvcml6b250YWwgb3JpZW50YXRpb24gb2Ygd29ya3NwYWNlc1xuLSBjdXN0b21pemUgdGhlIG92ZXJ2aWV3IGxheW91dCwgZGltZW5zaW9ucyBhbmQgY29udGVudHNcbi0gYWx0ZXJuYXRpdmUgb3ZlcnZpZXcgbW9kZXMgd2l0aCBzdGF0aWMgd29ya3NwYWNlIHByZXZpZXcgdGhhdCByZWR1Y2VzIHVubmVjZXNzYXJ5IG1vdmVtZW50IG9uIHRoZSBzY3JlZW5cbi0gd2FsbHBhcGVyIGJhY2tncm91bmQgd2l0aCBhZGp1c3RhYmxlIGJsdXIgZWZmZWN0IGluIHRoZSBvdmVydmlld1xuLSBkYXNoIGljb24gc2l6ZSwgY29udGVudCwgaWNvbiBjbGljayBhbmQgc2Nyb2xsIGJlaGF2aW9yXG4tIGFwcCBncmlkIGRpbWVuc2lvbnMsIGljb25zIHNpemUsIGNvbnRlbnRzIGFuZCBiZWhhdmlvclxuLSBhY3RpdmUgaWNvbnMgaW4gdGhlIGZvbGRlciBwcmV2aWV3XG4tIGNsb3NlIHdvcmtzcGFjZSBidXR0b24gb24gd29ya3NwYWNlIHRodW1ibmFpbFxuLSBtYWluIHBhbmVsIHBvc2l0aW9uIGFuZCB2aXNpYmlsaXR5XG4tIGhvdCBjb3JuZXIvZWRnZSBwb3NpdGlvbiBhbmQgYmVoYXZpb3Jcbi0gbm90aWZpY2F0aW9ucywgT1NEIGFuZCB3b3Jrc3BhY2Ugc3dpdGNoZXIgcG9wdXAgcG9zaXRpb25cbi0gY3VzdG9tIHdpbmRvdyBhdHRlbnRpb24gaGFuZGxlciBiZWhhdmlvclxuLSBpbXByb3ZlZCBhcHAgc2VhcmNoIHByb3ZpZGVyIHdpdGggY3VzdG9tIGljb24gc2l6ZVxuLSB3aW5kb3cgc2VhcmNoIHByb3ZpZGVyIGZvciBxdWljayBuYXZpZ2F0aW9uIGJldHdlZW4gd2luZG93c1xuLSByZWNlbnQgZmlsZXMgc2VhcmNoIHByb3ZpZGVyXG4tIHN0YXRpYyBiYWNrZ3JvdW5kIGluIHRoZSB3b3Jrc3BhY2Ugc3dpdGNoZXIgYW5pbWF0aW9uIG91dHNpZGUgb2YgdGhlIG92ZXJ2aWV3XG4tIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCBhcHBlYXJzIGV2ZW4gd2hlbiBzd2l0Y2hpbmcgd29ya3NwYWNlIHdpdGggYSBnZXN0dXJlXG4tIDQgcHJlZGVmaW5lZCBwcm9maWxlcyB3aXRoIGRpZmZlcmVudCBsYXlvdXQgYW5kIGJlaGF2aW9yIHRoYXQgY2FuIGJlIG92ZXJ3cml0dGVuIGJ5IHlvdXIgc2V0dGluZ3Ncbi0gZml4ZXMgKHdvcmtzIGFyb3VuZCkgc2V2ZXJhbCB1cHN0cmVhbSBidWdzIChrbm93biBhbmQgcmVwb3J0ZWQpXG4tIG1vZHVsYXIgc3RydWN0dXJlIG9mIHRoZSBWLVNoZWxsIGFsbG93cyB5b3UgdG8gZGlzYWJsZSBtb2R1bGVzIHRoYXQgeW91IGRvbid0IG5lZWQgb3IgY29uZmxpY3RzIHdpdGggb3RoZXIgZXh0ZW5zaW9uIHRoYXQgeW91IGxpa2UgYmV0dGVyIGZvciB0aGUgdGFzayIsCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"},
     "41": {"version": "23", "sha256": "0dp7qbbcs46w1lc2v46cvhfx7r8h1jrp95mhd8wip8c7npmnr66q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuXG5cbkRlYXIgdXNlcnMsIHRoZSByZWxpYWJpbGl0eSBhbmQgc3RhYmlsaXR5IG9mIHRoaXMgZXh0ZW5zaW9uIGlzIG15IHByaW9yaXR5LCBpZiB5b3UgZW5jb3VudGVyIGFueSBwcm9ibGVtLCBmaXJzdCBjaGVjayBmb3IgY29uZmxpY3RzIHdpdGggb3RoZXIgZXh0ZW5zaW9ucyBhbmQgdGhlbiBvcGVuIGFuIGlzc3VlIG9uIHRoZSBHaXRodWIgcGFnZSBsaW5rZWQgYmVsb3cuXG5cblYtU2hlbGwgaW5jbHVkZXMgbWFueSB3b3JrYXJvdW5kcyB0byBzdXJ2aXZlIGNvbmZsaWN0cyBhbmQgd29yayB3aXRoIERhc2ggdG8gRG9jayAvIFVidW50dSBEb2NrIGV4dGVuc2lvbnMsIGJ1dCBpc3N1ZXMgbWF5IG9jY3VyLiBJbiBhbnkgY2FzZSwgVi1TaGVsbCB3b3JrcyBiZXR0ZXIgd2l0aG91dCBEYXNoIHRvIERvY2suXG5cbkFueSBmZWVkYmFjayBpcyBncmVhdGx5IGFwcHJlY2lhdGVkLCBidXQgZG9uJ3QgZm9yZ2V0IC0gaWYgeW91IHdhbnQgbWUgdG8gd29yayBmb3IgeW91LCBiZSBuaWNlIDspXG5cblYtU2hlbGwgZmVhdHVyZXM6XG4tIHZlcnRpY2FsIG9yIGhvcml6b250YWwgb3JpZW50YXRpb24gb2Ygd29ya3NwYWNlc1xuLSBjdXN0b21pemUgdGhlIG92ZXJ2aWV3IGxheW91dCwgZGltZW5zaW9ucyBhbmQgY29udGVudHNcbi0gYWx0ZXJuYXRpdmUgb3ZlcnZpZXcgbW9kZXMgd2l0aCBzdGF0aWMgd29ya3NwYWNlIHByZXZpZXcgdGhhdCByZWR1Y2VzIHVubmVjZXNzYXJ5IG1vdmVtZW50IG9uIHRoZSBzY3JlZW5cbi0gd2FsbHBhcGVyIGJhY2tncm91bmQgd2l0aCBhZGp1c3RhYmxlIGJsdXIgZWZmZWN0IGluIHRoZSBvdmVydmlld1xuLSBkYXNoIGljb24gc2l6ZSwgY29udGVudCwgaWNvbiBjbGljayBhbmQgc2Nyb2xsIGJlaGF2aW9yXG4tIGFwcCBncmlkIGRpbWVuc2lvbnMsIGljb25zIHNpemUsIGNvbnRlbnRzIGFuZCBiZWhhdmlvclxuLSBhY3RpdmUgaWNvbnMgaW4gdGhlIGZvbGRlciBwcmV2aWV3XG4tIGNsb3NlIHdvcmtzcGFjZSBidXR0b24gb24gd29ya3NwYWNlIHRodW1ibmFpbFxuLSBtYWluIHBhbmVsIHBvc2l0aW9uIGFuZCB2aXNpYmlsaXR5XG4tIGhvdCBjb3JuZXIvZWRnZSBwb3NpdGlvbiBhbmQgYmVoYXZpb3Jcbi0gbm90aWZpY2F0aW9ucywgT1NEIGFuZCB3b3Jrc3BhY2Ugc3dpdGNoZXIgcG9wdXAgcG9zaXRpb25cbi0gY3VzdG9tIHdpbmRvdyBhdHRlbnRpb24gaGFuZGxlciBiZWhhdmlvclxuLSBpbXByb3ZlZCBhcHAgc2VhcmNoIHByb3ZpZGVyIHdpdGggY3VzdG9tIGljb24gc2l6ZVxuLSB3aW5kb3cgc2VhcmNoIHByb3ZpZGVyIGZvciBxdWljayBuYXZpZ2F0aW9uIGJldHdlZW4gd2luZG93c1xuLSByZWNlbnQgZmlsZXMgc2VhcmNoIHByb3ZpZGVyXG4tIHN0YXRpYyBiYWNrZ3JvdW5kIGluIHRoZSB3b3Jrc3BhY2Ugc3dpdGNoZXIgYW5pbWF0aW9uIG91dHNpZGUgb2YgdGhlIG92ZXJ2aWV3XG4tIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCBhcHBlYXJzIGV2ZW4gd2hlbiBzd2l0Y2hpbmcgd29ya3NwYWNlIHdpdGggYSBnZXN0dXJlXG4tIDQgcHJlZGVmaW5lZCBwcm9maWxlcyB3aXRoIGRpZmZlcmVudCBsYXlvdXQgYW5kIGJlaGF2aW9yIHRoYXQgY2FuIGJlIG92ZXJ3cml0dGVuIGJ5IHlvdXIgc2V0dGluZ3Ncbi0gZml4ZXMgKHdvcmtzIGFyb3VuZCkgc2V2ZXJhbCB1cHN0cmVhbSBidWdzIChrbm93biBhbmQgcmVwb3J0ZWQpXG4tIG1vZHVsYXIgc3RydWN0dXJlIG9mIHRoZSBWLVNoZWxsIGFsbG93cyB5b3UgdG8gZGlzYWJsZSBtb2R1bGVzIHRoYXQgeW91IGRvbid0IG5lZWQgb3IgY29uZmxpY3RzIHdpdGggb3RoZXIgZXh0ZW5zaW9uIHRoYXQgeW91IGxpa2UgYmV0dGVyIGZvciB0aGUgdGFzayIsCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"},
-    "42": {"version": "53", "sha256": "14jva97bd3shc3skz348pw41h9slxrkz6zd7s3x9snf4rv5xj59r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MywKICAidmVyc2lvbi1uYW1lIjogIjQ0LjExIgp9"},
-    "43": {"version": "53", "sha256": "14jva97bd3shc3skz348pw41h9slxrkz6zd7s3x9snf4rv5xj59r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MywKICAidmVyc2lvbi1uYW1lIjogIjQ0LjExIgp9"},
-    "44": {"version": "53", "sha256": "14jva97bd3shc3skz348pw41h9slxrkz6zd7s3x9snf4rv5xj59r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MywKICAidmVyc2lvbi1uYW1lIjogIjQ0LjExIgp9"},
-    "45": {"version": "52", "sha256": "172b9qzq2a6gp0qi1fv3nvnv4i3cvfwbklaa5z7n6gkx71nib400", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvdmVydGljYWwtd29ya3NwYWNlcyIsCiAgInV1aWQiOiAidmVydGljYWwtd29ya3NwYWNlc0BHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTIsCiAgInZlcnNpb24tbmFtZSI6ICI0NS4zIgp9"},
-    "46": {"version": "57", "sha256": "04vrcx2bg68cnpv93k8f3k5fp4lrm53p362jjppa2gg9hjgkjys5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvdmVydGljYWwtd29ya3NwYWNlcyIsCiAgInV1aWQiOiAidmVydGljYWwtd29ya3NwYWNlc0BHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTcsCiAgInZlcnNpb24tbmFtZSI6ICI0Ni4wLjEiCn0="}
+    "42": {"version": "63", "sha256": "00ywnw9q435g0ycg5x6lkgq8k888sqsrynp17jhiwz7dmx2xr3b9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2MywKICAidmVyc2lvbi1uYW1lIjogIjQ0LjEzIgp9"},
+    "43": {"version": "63", "sha256": "00ywnw9q435g0ycg5x6lkgq8k888sqsrynp17jhiwz7dmx2xr3b9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2MywKICAidmVyc2lvbi1uYW1lIjogIjQ0LjEzIgp9"},
+    "44": {"version": "63", "sha256": "00ywnw9q435g0ycg5x6lkgq8k888sqsrynp17jhiwz7dmx2xr3b9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2MywKICAidmVyc2lvbi1uYW1lIjogIjQ0LjEzIgp9"},
+    "45": {"version": "62", "sha256": "1ilazclbs65knmgxl3llw5zvrxq1xllwnh2sv1mr1sdl99wvi74n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL3ZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJ1dWlkIjogInZlcnRpY2FsLXdvcmtzcGFjZXNARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYyLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuMiIKfQ=="},
+    "46": {"version": "62", "sha256": "1ilazclbs65knmgxl3llw5zvrxq1xllwnh2sv1mr1sdl99wvi74n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL3ZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJ1dWlkIjogInZlcnRpY2FsLXdvcmtzcGFjZXNARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYyLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuMiIKfQ=="}
   }}
 , {"uuid": "rocketbar@chepkun.github.com", "name": "Rocketbar", "pname": "rocketbar", "description": "Taskbar and misc additions for the GNOME Shell.", "link": "https://extensions.gnome.org/extension/5180/rocketbar/", "shell_version_map": {
     "42": {"version": "8", "sha256": "0p8msiyqpic8d0cv65j97gqp03vgi935rqgs2gjrffq3cg7wy2iq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2tiYXIgYW5kIG1pc2MgYWRkaXRpb25zIGZvciB0aGUgR05PTUUgU2hlbGwuXG5cbkEgbmV3IG1ham9yIHJlbGVhc2Ugd2lsbCBiZSBvdXQgbGF0ZXIgdGhpcyB5ZWFyLi4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicm9ja2V0YmFyIiwKICAibmFtZSI6ICJSb2NrZXRiYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucm9ja2V0YmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGludXgtaXMtYXdlc29tZS9nbm9tZV9leHRlbnNpb25fcm9ja2V0YmFyIiwKICAidXVpZCI6ICJyb2NrZXRiYXJAY2hlcGt1bi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="},
@@ -5233,7 +5302,8 @@
     "42": {"version": "4", "sha256": "09jcgvhlhx4hp0rj6adb0qpc6kajch8gyjfdk1vdnwxkysvr8241", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJlZXIgdGltZXIgdW50aWwgbmV4dCB3ZWVrLWVuZCAoYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjY3L3dlZWtlbmQtby1tZXRlci8pIiwKICAibmFtZSI6ICJXZWVrZW5kLU8tTWV0ZXIgUmV2aXZlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2ZmZXZlcnRvbi93ZWVrZW5kLW8tbWV0ZXIiLAogICJ1dWlkIjogIndlZWtlbmQtby1tZXRlckBjb2ZmZXZlcnRvbi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
     "43": {"version": "4", "sha256": "09jcgvhlhx4hp0rj6adb0qpc6kajch8gyjfdk1vdnwxkysvr8241", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJlZXIgdGltZXIgdW50aWwgbmV4dCB3ZWVrLWVuZCAoYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjY3L3dlZWtlbmQtby1tZXRlci8pIiwKICAibmFtZSI6ICJXZWVrZW5kLU8tTWV0ZXIgUmV2aXZlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2ZmZXZlcnRvbi93ZWVrZW5kLW8tbWV0ZXIiLAogICJ1dWlkIjogIndlZWtlbmQtby1tZXRlckBjb2ZmZXZlcnRvbi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
     "44": {"version": "4", "sha256": "09jcgvhlhx4hp0rj6adb0qpc6kajch8gyjfdk1vdnwxkysvr8241", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJlZXIgdGltZXIgdW50aWwgbmV4dCB3ZWVrLWVuZCAoYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjY3L3dlZWtlbmQtby1tZXRlci8pIiwKICAibmFtZSI6ICJXZWVrZW5kLU8tTWV0ZXIgUmV2aXZlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2ZmZXZlcnRvbi93ZWVrZW5kLW8tbWV0ZXIiLAogICJ1dWlkIjogIndlZWtlbmQtby1tZXRlckBjb2ZmZXZlcnRvbi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
-    "45": {"version": "5", "sha256": "1w0q1s4bb0jjmrkqw44ng4iaq9k3azxqchpxm6wzzc1vzxvjzl7c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJlZXIgdGltZXIgdW50aWwgbmV4dCB3ZWVrLWVuZCAoYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjY3L3dlZWtlbmQtby1tZXRlci8pIiwKICAibmFtZSI6ICJXZWVrZW5kLU8tTWV0ZXIgUmV2aXZlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2ZmZXZlcnRvbi93ZWVrZW5kLW8tbWV0ZXIiLAogICJ1dWlkIjogIndlZWtlbmQtby1tZXRlckBjb2ZmZXZlcnRvbi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}
+    "45": {"version": "6", "sha256": "0gmr2gl14h7rqwsg8d9kfdhkc48860g7g3fvr54y4sq3mp39ksdg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJlZXIgdGltZXIgdW50aWwgbmV4dCB3ZWVrLWVuZCAoYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjY3L3dlZWtlbmQtby1tZXRlci8pIiwKICAibmFtZSI6ICJXZWVrZW5kLU8tTWV0ZXIgUmV2aXZlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29mZmV2ZXJ0b24vd2Vla2VuZC1vLW1ldGVyIiwKICAidXVpZCI6ICJ3ZWVrZW5kLW8tbWV0ZXJAY29mZmV2ZXJ0b24uZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="},
+    "46": {"version": "6", "sha256": "0gmr2gl14h7rqwsg8d9kfdhkc48860g7g3fvr54y4sq3mp39ksdg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJlZXIgdGltZXIgdW50aWwgbmV4dCB3ZWVrLWVuZCAoYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjY3L3dlZWtlbmQtby1tZXRlci8pIiwKICAibmFtZSI6ICJXZWVrZW5kLU8tTWV0ZXIgUmV2aXZlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29mZmV2ZXJ0b24vd2Vla2VuZC1vLW1ldGVyIiwKICAidXVpZCI6ICJ3ZWVrZW5kLW8tbWV0ZXJAY29mZmV2ZXJ0b24uZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}
   }}
 , {"uuid": "time-in-date-menu@knedme", "name": "Time in date menu", "pname": "time-in-date-menu", "description": "Adds current time to date menu.", "link": "https://extensions.gnome.org/extension/5204/time-in-date-menu/", "shell_version_map": {
     "38": {"version": "6", "sha256": "0psshnjpqnaia7a4x2yf9k8p0vjnv01qpq5l6s7fs7d3fccl26lx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgY3VycmVudCB0aW1lIHRvIGRhdGUgbWVudS4iLAogICJuYW1lIjogIlRpbWUgaW4gZGF0ZSBtZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRpbWUtaW4tZGF0ZS1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9LbmVkbWUvVGltZS1pbi1kYXRlLW1lbnUiLAogICJ1dWlkIjogInRpbWUtaW4tZGF0ZS1tZW51QGtuZWRtZSIsCiAgInZlcnNpb24iOiA2Cn0="},
@@ -5295,8 +5365,8 @@
     "42": {"version": "60", "sha256": "0gxn065ls150nj88zslng8lkhqfzba8lkhxyi74rpqn477ss6y9q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgR3RrNCBpY29ucyB0byB0aGUgR25vbWUgZGVza3RvcC4gR3RrNCBGb3JrIG9mIHRoZSBvcmlnaW5hbCBEZXNrdG9wIEljb25zIGV4dGVuc2lvbiwgd2l0aCBzZXZlcmFsIGVuaGFuY2VtZW50cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAibmFtZSI6ICJHdGs0IERlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndGs0LWRpbmciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9zbWVkaXVzL2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImd0azQtZGluZ0BzbWVkaXVzLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogNjAKfQ=="},
     "43": {"version": "60", "sha256": "0gxn065ls150nj88zslng8lkhqfzba8lkhxyi74rpqn477ss6y9q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgR3RrNCBpY29ucyB0byB0aGUgR25vbWUgZGVza3RvcC4gR3RrNCBGb3JrIG9mIHRoZSBvcmlnaW5hbCBEZXNrdG9wIEljb25zIGV4dGVuc2lvbiwgd2l0aCBzZXZlcmFsIGVuaGFuY2VtZW50cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAibmFtZSI6ICJHdGs0IERlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndGs0LWRpbmciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9zbWVkaXVzL2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImd0azQtZGluZ0BzbWVkaXVzLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogNjAKfQ=="},
     "44": {"version": "67", "sha256": "1bz5bs2llbklzn0wvqn300gd1g39qgdsgl5hwi1ndwd2wdl1mdbq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgR3RrNCBpY29ucyB0byB0aGUgR25vbWUgZGVza3RvcC4gR3RrNCBGb3JrIG9mIHRoZSBvcmlnaW5hbCBEZXNrdG9wIEljb25zIGV4dGVuc2lvbiwgd2l0aCBzZXZlcmFsIGVuaGFuY2VtZW50cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAibmFtZSI6ICJHdGs0IERlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndGs0LWRpbmciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc21lZGl1cy9kZXNrdG9wLWljb25zLW5nIiwKICAidXVpZCI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDY3Cn0="},
-    "45": {"version": "78", "sha256": "0xf2wwx7srrmyjss4gb5mkr6rjaax8zyilbhs92jigvi2qz8ryz8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgR3RrNCBpY29ucyB0byB0aGUgR25vbWUgZGVza3RvcC4gR3RrNCBGb3JrIG9mIHRoZSBvcmlnaW5hbCBEZXNrdG9wIEljb25zIGV4dGVuc2lvbiwgd2l0aCBzZXZlcmFsIGVuaGFuY2VtZW50cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJndGs0LWRpbmciLAogICJuYW1lIjogIkd0azQgRGVza3RvcCBJY29ucyBORyAoRElORykiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0azQtZGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc21lZGl1cy9kZXNrdG9wLWljb25zLW5nIiwKICAidXVpZCI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDc4LAogICJ2ZXJzaW9uLW5hbWUiOiAiNzUiCn0="},
-    "46": {"version": "78", "sha256": "0xf2wwx7srrmyjss4gb5mkr6rjaax8zyilbhs92jigvi2qz8ryz8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgR3RrNCBpY29ucyB0byB0aGUgR25vbWUgZGVza3RvcC4gR3RrNCBGb3JrIG9mIHRoZSBvcmlnaW5hbCBEZXNrdG9wIEljb25zIGV4dGVuc2lvbiwgd2l0aCBzZXZlcmFsIGVuaGFuY2VtZW50cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJndGs0LWRpbmciLAogICJuYW1lIjogIkd0azQgRGVza3RvcCBJY29ucyBORyAoRElORykiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0azQtZGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc21lZGl1cy9kZXNrdG9wLWljb25zLW5nIiwKICAidXVpZCI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDc4LAogICJ2ZXJzaW9uLW5hbWUiOiAiNzUiCn0="}
+    "45": {"version": "79", "sha256": "08m66dmy4d018qv9n4b4akx15kwcmbi1r8v88lygwhmxcw7bilrg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgR3RrNCBpY29ucyB0byB0aGUgR25vbWUgZGVza3RvcC4gR3RrNCBGb3JrIG9mIHRoZSBvcmlnaW5hbCBEZXNrdG9wIEljb25zIGV4dGVuc2lvbiwgd2l0aCBzZXZlcmFsIGVuaGFuY2VtZW50cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJndGs0LWRpbmciLAogICJuYW1lIjogIkd0azQgRGVza3RvcCBJY29ucyBORyAoRElORykiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0azQtZGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc21lZGl1cy9kZXNrdG9wLWljb25zLW5nIiwKICAidXVpZCI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDc5LAogICJ2ZXJzaW9uLW5hbWUiOiAiNzYiCn0="},
+    "46": {"version": "79", "sha256": "08m66dmy4d018qv9n4b4akx15kwcmbi1r8v88lygwhmxcw7bilrg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgR3RrNCBpY29ucyB0byB0aGUgR25vbWUgZGVza3RvcC4gR3RrNCBGb3JrIG9mIHRoZSBvcmlnaW5hbCBEZXNrdG9wIEljb25zIGV4dGVuc2lvbiwgd2l0aCBzZXZlcmFsIGVuaGFuY2VtZW50cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJndGs0LWRpbmciLAogICJuYW1lIjogIkd0azQgRGVza3RvcCBJY29ucyBORyAoRElORykiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0azQtZGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc21lZGl1cy9kZXNrdG9wLWljb25zLW5nIiwKICAidXVpZCI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDc5LAogICJ2ZXJzaW9uLW5hbWUiOiAiNzYiCn0="}
   }}
 , {"uuid": "fig-gnome-integration@fig.io", "name": "Fig GNOME Integration", "pname": "fig-gnome-integration", "description": "Tightly integrates Fig with GNOME shell", "link": "https://extensions.gnome.org/extension/5266/fig-gnome-integration/", "shell_version_map": {
     "41": {"version": "6", "sha256": "1j5wy8zb5jnm4gh0y3brr6663ykjh56ximygkchns8ahyjmba85p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpZ2h0bHkgaW50ZWdyYXRlcyBGaWcgd2l0aCBHTk9NRSBzaGVsbCIsCiAgImdldHRleHQtZG9tYWluIjogImZpZy1nbm9tZS1pbnRlZ3JhdGlvbiIsCiAgIm5hbWUiOiAiRmlnIEdOT01FIEludGVncmF0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZpZy1nbm9tZS1pbnRlZ3JhdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dpdGhmaWcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJmaWctZ25vbWUtaW50ZWdyYXRpb25AZmlnLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="},
@@ -5349,7 +5419,8 @@
     "42": {"version": "4", "sha256": "1qdd9dhfzmipdlxrpzx6kj6ykp9b8g5aj96dshjlvicqkx50qscb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGZpeCB0byB0aGUgYnVnIHdoZXJlIHNjcm9sbGluZyBpbiBvbmUgYXBwbGljYXRpb24gaXMgcmVwZWF0ZWQgaW4gYW5vdGhlciB3aGVuIHN3aXRjaGluZyBiZXR3ZWVuIHRoZW0gdXNpbmcgQWx0K1RhYiAoZS5nLiwgVlMgQ29kZSBhbmQgQ2hyb21lKSIsCiAgIm5hbWUiOiAiQWx0K1RhYiBTY3JvbGwgV29ya2Fyb3VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1Y2FzcmVzY2svZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFsdC10YWItc2Nyb2xsLXdvcmthcm91bmQiLAogICJ1dWlkIjogImFsdC10YWItc2Nyb2xsLXdvcmthcm91bmRAbHVjYXNyZXNjay5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNAp9"},
     "43": {"version": "4", "sha256": "1qdd9dhfzmipdlxrpzx6kj6ykp9b8g5aj96dshjlvicqkx50qscb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGZpeCB0byB0aGUgYnVnIHdoZXJlIHNjcm9sbGluZyBpbiBvbmUgYXBwbGljYXRpb24gaXMgcmVwZWF0ZWQgaW4gYW5vdGhlciB3aGVuIHN3aXRjaGluZyBiZXR3ZWVuIHRoZW0gdXNpbmcgQWx0K1RhYiAoZS5nLiwgVlMgQ29kZSBhbmQgQ2hyb21lKSIsCiAgIm5hbWUiOiAiQWx0K1RhYiBTY3JvbGwgV29ya2Fyb3VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1Y2FzcmVzY2svZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFsdC10YWItc2Nyb2xsLXdvcmthcm91bmQiLAogICJ1dWlkIjogImFsdC10YWItc2Nyb2xsLXdvcmthcm91bmRAbHVjYXNyZXNjay5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNAp9"},
     "44": {"version": "4", "sha256": "1qdd9dhfzmipdlxrpzx6kj6ykp9b8g5aj96dshjlvicqkx50qscb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGZpeCB0byB0aGUgYnVnIHdoZXJlIHNjcm9sbGluZyBpbiBvbmUgYXBwbGljYXRpb24gaXMgcmVwZWF0ZWQgaW4gYW5vdGhlciB3aGVuIHN3aXRjaGluZyBiZXR3ZWVuIHRoZW0gdXNpbmcgQWx0K1RhYiAoZS5nLiwgVlMgQ29kZSBhbmQgQ2hyb21lKSIsCiAgIm5hbWUiOiAiQWx0K1RhYiBTY3JvbGwgV29ya2Fyb3VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1Y2FzcmVzY2svZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFsdC10YWItc2Nyb2xsLXdvcmthcm91bmQiLAogICJ1dWlkIjogImFsdC10YWItc2Nyb2xsLXdvcmthcm91bmRAbHVjYXNyZXNjay5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNAp9"},
-    "45": {"version": "6", "sha256": "075mr56in53slb0miq7i5rvrfvx49mmjnz144kw9jlr0lgh3s2c1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGZpeCB0byB0aGUgYnVnIHdoZXJlIHNjcm9sbGluZyBpbiBvbmUgYXBwbGljYXRpb24gaXMgcmVwZWF0ZWQgaW4gYW5vdGhlciB3aGVuIHN3aXRjaGluZyBiZXR3ZWVuIHRoZW0gdXNpbmcgQWx0K1RhYiAoZS5nLiwgVlMgQ29kZSBhbmQgQ2hyb21lKS4iLAogICJuYW1lIjogIkFsdCtUYWIgU2Nyb2xsIFdvcmthcm91bmQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHVjYXNyZXNjay9nbm9tZS1zaGVsbC1leHRlbnNpb24tYWx0LXRhYi1zY3JvbGwtd29ya2Fyb3VuZCIsCiAgInV1aWQiOiAiYWx0LXRhYi1zY3JvbGwtd29ya2Fyb3VuZEBsdWNhc3Jlc2NrLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2Cn0="}
+    "45": {"version": "7", "sha256": "09fral39a62vy9q7qb39nssi12hw3d8pr1qfjqa1kdwdnxladp70", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGZpeCB0byB0aGUgYnVnIHdoZXJlIHNjcm9sbGluZyBpbiBvbmUgYXBwbGljYXRpb24gaXMgcmVwZWF0ZWQgaW4gYW5vdGhlciB3aGVuIHN3aXRjaGluZyBiZXR3ZWVuIHRoZW0gdXNpbmcgQWx0K1RhYiAoZS5nLiwgVlMgQ29kZSBhbmQgQ2hyb21lKS4iLAogICJuYW1lIjogIkFsdCtUYWIgU2Nyb2xsIFdvcmthcm91bmQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1Y2FzcmVzY2svZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFsdC10YWItc2Nyb2xsLXdvcmthcm91bmQiLAogICJ1dWlkIjogImFsdC10YWItc2Nyb2xsLXdvcmthcm91bmRAbHVjYXNyZXNjay5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNwp9"},
+    "46": {"version": "7", "sha256": "09fral39a62vy9q7qb39nssi12hw3d8pr1qfjqa1kdwdnxladp70", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGZpeCB0byB0aGUgYnVnIHdoZXJlIHNjcm9sbGluZyBpbiBvbmUgYXBwbGljYXRpb24gaXMgcmVwZWF0ZWQgaW4gYW5vdGhlciB3aGVuIHN3aXRjaGluZyBiZXR3ZWVuIHRoZW0gdXNpbmcgQWx0K1RhYiAoZS5nLiwgVlMgQ29kZSBhbmQgQ2hyb21lKS4iLAogICJuYW1lIjogIkFsdCtUYWIgU2Nyb2xsIFdvcmthcm91bmQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1Y2FzcmVzY2svZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFsdC10YWItc2Nyb2xsLXdvcmthcm91bmQiLAogICJ1dWlkIjogImFsdC10YWItc2Nyb2xsLXdvcmthcm91bmRAbHVjYXNyZXNjay5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNwp9"}
   }}
 , {"uuid": "projectmanagerforvscode@ahmafi.ir", "name": "Project Manager for VSCode", "pname": "project-manager-for-vscode", "description": "Easily open your Visual Studio Code projects from GNOME shell\n\nDisclaimer:This extension is an independent project and is not affiliated with, authorized by, sponsored by, or in any way associated with Microsoft corporation, Visual Studio Code software and GNOME Foundation.", "link": "https://extensions.gnome.org/extension/5289/project-manager-for-vscode/", "shell_version_map": {
     "42": {"version": "2", "sha256": "102iykjh5pd0qsj1m9p4nnvh20li732xbmk3jvgfl1f8dhb121x6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVhc2lseSBvcGVuIHlvdXIgVmlzdWFsIFN0dWRpbyBDb2RlIHByb2plY3RzIGZyb20gR05PTUUgc2hlbGxcblxuRGlzY2xhaW1lcjpUaGlzIGV4dGVuc2lvbiBpcyBhbiBpbmRlcGVuZGVudCBwcm9qZWN0IGFuZCBpcyBub3QgYWZmaWxpYXRlZCB3aXRoLCBhdXRob3JpemVkIGJ5LCBzcG9uc29yZWQgYnksIG9yIGluIGFueSB3YXkgYXNzb2NpYXRlZCB3aXRoIE1pY3Jvc29mdCBjb3Jwb3JhdGlvbiwgVmlzdWFsIFN0dWRpbyBDb2RlIHNvZnR3YXJlIGFuZCBHTk9NRSBGb3VuZGF0aW9uLiIsCiAgIm5hbWUiOiAiUHJvamVjdCBNYW5hZ2VyIGZvciBWU0NvZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWhtYWZpL2dub21lLXZzY29kZS1wcm9qZWN0cyIsCiAgInV1aWQiOiAicHJvamVjdG1hbmFnZXJmb3J2c2NvZGVAYWhtYWZpLmlyIiwKICAidmVyc2lvbiI6IDIKfQ=="}
@@ -5480,11 +5551,12 @@
     "45": {"version": "20", "sha256": "0rspavp64lvr51hjgf7gw51zcwvpp7v2k9mp3sg4bcmaqjmp96b1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBzY3JlZW4gcm90YXRpb24gcmVnYXJkbGVzcyBvZiB0b3VjaCBtb2RlLiBGb3JrIG9mIFNjcmVlbiBBdXRvcm90YXRlIGJ5IEtvc21vc3ByZWRhbmllLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zY3JlZW4tcm90YXRlIiwKICAibmFtZSI6ICJTY3JlZW4gUm90YXRlIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zY3JlZW4tcm90YXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaHl6dXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNjcmVlbi1hdXRvcm90YXRlIiwKICAidXVpZCI6ICJzY3JlZW4tcm90YXRlQHNoeXp1cy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMjAKfQ=="},
     "46": {"version": "20", "sha256": "0rspavp64lvr51hjgf7gw51zcwvpp7v2k9mp3sg4bcmaqjmp96b1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBzY3JlZW4gcm90YXRpb24gcmVnYXJkbGVzcyBvZiB0b3VjaCBtb2RlLiBGb3JrIG9mIFNjcmVlbiBBdXRvcm90YXRlIGJ5IEtvc21vc3ByZWRhbmllLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zY3JlZW4tcm90YXRlIiwKICAibmFtZSI6ICJTY3JlZW4gUm90YXRlIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zY3JlZW4tcm90YXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaHl6dXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNjcmVlbi1hdXRvcm90YXRlIiwKICAidXVpZCI6ICJzY3JlZW4tcm90YXRlQHNoeXp1cy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}
   }}
-, {"uuid": "devtools@romix.ch", "name": "Dev Tools", "pname": "dev-tools", "description": "Generate random UUID and some timestamp and base64 conversions.", "link": "https://extensions.gnome.org/extension/5393/dev-tools/", "shell_version_map": {
+, {"uuid": "devtools@romix.ch", "name": "Dev Tools", "pname": "dev-tools", "description": "Generate random UUID and current time in milliseconds as a shell extension.", "link": "https://extensions.gnome.org/extension/5393/dev-tools/", "shell_version_map": {
     "42": {"version": "11", "sha256": "10w3yl0x69nxp0ad4wkfniqav2k005sfmf6c9v87ys7qad8gp1zm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdlbmVyYXRlIHJhbmRvbSBVVUlEIGFuZCBjdXJyZW50IHRpbWUgaW4gbWlsbGlzZWNvbmRzIGFzIGEgc2hlbGwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiRGV2IFRvb2xzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm9taXhjaC9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGV2LXRvb2xzIiwKICAidXVpZCI6ICJkZXZ0b29sc0Byb21peC5jaCIsCiAgInZlcnNpb24iOiAxMQp9"},
     "43": {"version": "11", "sha256": "10w3yl0x69nxp0ad4wkfniqav2k005sfmf6c9v87ys7qad8gp1zm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdlbmVyYXRlIHJhbmRvbSBVVUlEIGFuZCBjdXJyZW50IHRpbWUgaW4gbWlsbGlzZWNvbmRzIGFzIGEgc2hlbGwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiRGV2IFRvb2xzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm9taXhjaC9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGV2LXRvb2xzIiwKICAidXVpZCI6ICJkZXZ0b29sc0Byb21peC5jaCIsCiAgInZlcnNpb24iOiAxMQp9"},
     "44": {"version": "11", "sha256": "10w3yl0x69nxp0ad4wkfniqav2k005sfmf6c9v87ys7qad8gp1zm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdlbmVyYXRlIHJhbmRvbSBVVUlEIGFuZCBjdXJyZW50IHRpbWUgaW4gbWlsbGlzZWNvbmRzIGFzIGEgc2hlbGwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiRGV2IFRvb2xzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm9taXhjaC9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGV2LXRvb2xzIiwKICAidXVpZCI6ICJkZXZ0b29sc0Byb21peC5jaCIsCiAgInZlcnNpb24iOiAxMQp9"},
-    "45": {"version": "12", "sha256": "1i2fvia0d9akhqh0l78byiqkifyd6xkzf3dcb7igmclbzcx0pn2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdlbmVyYXRlIHJhbmRvbSBVVUlEIGFuZCBjdXJyZW50IHRpbWUgaW4gbWlsbGlzZWNvbmRzIGFzIGEgc2hlbGwgZXh0ZW5zaW9uLiIsCiAgImdldHRleHQtZG9tYWluIjogImRldnRvb2xzQHJvbWl4LmNoIiwKICAibmFtZSI6ICJEZXYgVG9vbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm9taXhjaC9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGV2LXRvb2xzIiwKICAidXVpZCI6ICJkZXZ0b29sc0Byb21peC5jaCIsCiAgInZlcnNpb24iOiAxMgp9"}
+    "45": {"version": "14", "sha256": "05da1ypz3nj1gyhyly09xhvyspnngxh5wi585157g9988g646i1h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdlbmVyYXRlIHJhbmRvbSBVVUlEIGFuZCBjdXJyZW50IHRpbWUgaW4gbWlsbGlzZWNvbmRzIGFzIGEgc2hlbGwgZXh0ZW5zaW9uLiIsCiAgImdldHRleHQtZG9tYWluIjogImRldnRvb2xzQHJvbWl4LmNoIiwKICAibmFtZSI6ICJEZXYgVG9vbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JvbWl4Y2gvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRldi10b29scyIsCiAgInV1aWQiOiAiZGV2dG9vbHNAcm9taXguY2giLAogICJ2ZXJzaW9uIjogMTQKfQ=="},
+    "46": {"version": "14", "sha256": "05da1ypz3nj1gyhyly09xhvyspnngxh5wi585157g9988g646i1h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdlbmVyYXRlIHJhbmRvbSBVVUlEIGFuZCBjdXJyZW50IHRpbWUgaW4gbWlsbGlzZWNvbmRzIGFzIGEgc2hlbGwgZXh0ZW5zaW9uLiIsCiAgImdldHRleHQtZG9tYWluIjogImRldnRvb2xzQHJvbWl4LmNoIiwKICAibmFtZSI6ICJEZXYgVG9vbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JvbWl4Y2gvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRldi10b29scyIsCiAgInV1aWQiOiAiZGV2dG9vbHNAcm9taXguY2giLAogICJ2ZXJzaW9uIjogMTQKfQ=="}
   }}
 , {"uuid": "inhibit-suspend@charlieqle", "name": "Inhibit Suspend", "pname": "inhibit-suspend", "description": "Inhibit autosuspend at the press of a button", "link": "https://extensions.gnome.org/extension/5397/inhibit-suspend/", "shell_version_map": {
     "43": {"version": "3", "sha256": "0xp3b7i46lsvxkgsk3z3lx1k1zymnwm8hnsl1v39j01zsxyh2fnj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluaGliaXQgYXV0b3N1c3BlbmQgYXQgdGhlIHByZXNzIG9mIGEgYnV0dG9uIiwKICAibmFtZSI6ICJJbmhpYml0IFN1c3BlbmQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW5oaWJpdC1zdXNwZW5kIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NoYXJsaWVRTGUvZ25vbWUtZXh0ZW5zaW9uLWluaGliaXQtc3VzcGVuZCIsCiAgInV1aWQiOiAiaW5oaWJpdC1zdXNwZW5kQGNoYXJsaWVxbGUiLAogICJ2ZXJzaW9uIjogMwp9"}
@@ -5509,8 +5581,8 @@
     "42": {"version": "10", "sha256": "0sga40ixfj8wcxm66wm2rvcyzgbdfzl7ji8hjwqa0hx1s125nv60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZCBhIHN3aXRjaCB0byB0aGUgV2lGaSBtZW51LCBpbiB0aGUgR05PTUUgc3lzdGVtIG1lbnUsIHRoYXQgc2hvdyBhIFFSIENvZGUgb2YgdGhlIGFjdGl2ZSBjb25uZWN0aW9uLlxuXG5UaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHF1aWNrbHkgY29ubmVjdGluZyBkZXZpY2VzIGNhcGFibGUgb2YgcmVhZGluZyBRUiBDb2RlIGFuZCBhcHBseWluZyB0aGUgc2V0dGluZ3MgdG8gdGhlIHN5c3RlbSwgd2l0aG91dCBoYXZpbmcgdG8gdHlwZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHBhc3N3b3JkIG9mIHRoZSBXaUZpLiAoZS5nLiBBbmRyb2lkIFNtYXJ0cGhvbmUpLiBcblxuRnJvbSB2ZXJzaW9uIDQgYWRkZWQgYSBmdW5jdGlvbmFsaXR5IHRvIGNvcHkgdGhlIFFSIENvZGUgdG8gY2xpcGJvYXJkIHdpdGggcmlnaHQgY2xpY2sgb24gaXQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpZmlxcmNvZGUiLAogICJuYW1lIjogIldpZmkgUVIgQ29kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAidXVpZCI6ICJ3aWZpcXJjb2RlQGdsZXJyby5wbS5tZSIsCiAgInZlcnNpb24iOiAxMAp9"},
     "43": {"version": "10", "sha256": "0sga40ixfj8wcxm66wm2rvcyzgbdfzl7ji8hjwqa0hx1s125nv60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZCBhIHN3aXRjaCB0byB0aGUgV2lGaSBtZW51LCBpbiB0aGUgR05PTUUgc3lzdGVtIG1lbnUsIHRoYXQgc2hvdyBhIFFSIENvZGUgb2YgdGhlIGFjdGl2ZSBjb25uZWN0aW9uLlxuXG5UaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHF1aWNrbHkgY29ubmVjdGluZyBkZXZpY2VzIGNhcGFibGUgb2YgcmVhZGluZyBRUiBDb2RlIGFuZCBhcHBseWluZyB0aGUgc2V0dGluZ3MgdG8gdGhlIHN5c3RlbSwgd2l0aG91dCBoYXZpbmcgdG8gdHlwZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHBhc3N3b3JkIG9mIHRoZSBXaUZpLiAoZS5nLiBBbmRyb2lkIFNtYXJ0cGhvbmUpLiBcblxuRnJvbSB2ZXJzaW9uIDQgYWRkZWQgYSBmdW5jdGlvbmFsaXR5IHRvIGNvcHkgdGhlIFFSIENvZGUgdG8gY2xpcGJvYXJkIHdpdGggcmlnaHQgY2xpY2sgb24gaXQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpZmlxcmNvZGUiLAogICJuYW1lIjogIldpZmkgUVIgQ29kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAidXVpZCI6ICJ3aWZpcXJjb2RlQGdsZXJyby5wbS5tZSIsCiAgInZlcnNpb24iOiAxMAp9"},
     "44": {"version": "10", "sha256": "0sga40ixfj8wcxm66wm2rvcyzgbdfzl7ji8hjwqa0hx1s125nv60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZCBhIHN3aXRjaCB0byB0aGUgV2lGaSBtZW51LCBpbiB0aGUgR05PTUUgc3lzdGVtIG1lbnUsIHRoYXQgc2hvdyBhIFFSIENvZGUgb2YgdGhlIGFjdGl2ZSBjb25uZWN0aW9uLlxuXG5UaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHF1aWNrbHkgY29ubmVjdGluZyBkZXZpY2VzIGNhcGFibGUgb2YgcmVhZGluZyBRUiBDb2RlIGFuZCBhcHBseWluZyB0aGUgc2V0dGluZ3MgdG8gdGhlIHN5c3RlbSwgd2l0aG91dCBoYXZpbmcgdG8gdHlwZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHBhc3N3b3JkIG9mIHRoZSBXaUZpLiAoZS5nLiBBbmRyb2lkIFNtYXJ0cGhvbmUpLiBcblxuRnJvbSB2ZXJzaW9uIDQgYWRkZWQgYSBmdW5jdGlvbmFsaXR5IHRvIGNvcHkgdGhlIFFSIENvZGUgdG8gY2xpcGJvYXJkIHdpdGggcmlnaHQgY2xpY2sgb24gaXQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpZmlxcmNvZGUiLAogICJuYW1lIjogIldpZmkgUVIgQ29kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAidXVpZCI6ICJ3aWZpcXJjb2RlQGdsZXJyby5wbS5tZSIsCiAgInZlcnNpb24iOiAxMAp9"},
-    "45": {"version": "14", "sha256": "167lllr4fy8xl8fdc3sn3b2gl66n4qmmxdd5wj6ra061cp1kz3ky", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZCBhIHN3aXRjaCB0byB0aGUgV2lGaSBtZW51LCBpbiB0aGUgR05PTUUgc3lzdGVtIG1lbnUsIHRoYXQgc2hvdyBhIFFSIENvZGUgb2YgdGhlIGFjdGl2ZSBjb25uZWN0aW9uLlxuXG5UaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHF1aWNrbHkgY29ubmVjdGluZyBkZXZpY2VzIGNhcGFibGUgb2YgcmVhZGluZyBRUiBDb2RlIGFuZCBhcHBseWluZyB0aGUgc2V0dGluZ3MgdG8gdGhlIHN5c3RlbSwgd2l0aG91dCBoYXZpbmcgdG8gdHlwZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHBhc3N3b3JkIG9mIHRoZSBXaUZpLiAoZS5nLiBBbmRyb2lkIFNtYXJ0cGhvbmUpLiBcblxuRnJvbSB2ZXJzaW9uIDQgYWRkZWQgYSBmdW5jdGlvbmFsaXR5IHRvIGNvcHkgdGhlIFFSIENvZGUgdG8gY2xpcGJvYXJkIHdpdGggcmlnaHQgY2xpY2sgb24gaXQuIiwKICAiZG9uYXRpb25zIjogewogICAgImtvZmkiOiAiZ2xlcnJvIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAibmFtZSI6ICJXaWZpIFFSIENvZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2dsZXJyby9nbm9tZS1zaGVsbC1leHRlbnNpb24td2lmaXFyY29kZSIsCiAgInV1aWQiOiAid2lmaXFyY29kZUBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTQKfQ=="},
-    "46": {"version": "14", "sha256": "167lllr4fy8xl8fdc3sn3b2gl66n4qmmxdd5wj6ra061cp1kz3ky", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZCBhIHN3aXRjaCB0byB0aGUgV2lGaSBtZW51LCBpbiB0aGUgR05PTUUgc3lzdGVtIG1lbnUsIHRoYXQgc2hvdyBhIFFSIENvZGUgb2YgdGhlIGFjdGl2ZSBjb25uZWN0aW9uLlxuXG5UaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHF1aWNrbHkgY29ubmVjdGluZyBkZXZpY2VzIGNhcGFibGUgb2YgcmVhZGluZyBRUiBDb2RlIGFuZCBhcHBseWluZyB0aGUgc2V0dGluZ3MgdG8gdGhlIHN5c3RlbSwgd2l0aG91dCBoYXZpbmcgdG8gdHlwZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHBhc3N3b3JkIG9mIHRoZSBXaUZpLiAoZS5nLiBBbmRyb2lkIFNtYXJ0cGhvbmUpLiBcblxuRnJvbSB2ZXJzaW9uIDQgYWRkZWQgYSBmdW5jdGlvbmFsaXR5IHRvIGNvcHkgdGhlIFFSIENvZGUgdG8gY2xpcGJvYXJkIHdpdGggcmlnaHQgY2xpY2sgb24gaXQuIiwKICAiZG9uYXRpb25zIjogewogICAgImtvZmkiOiAiZ2xlcnJvIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAibmFtZSI6ICJXaWZpIFFSIENvZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2dsZXJyby9nbm9tZS1zaGVsbC1leHRlbnNpb24td2lmaXFyY29kZSIsCiAgInV1aWQiOiAid2lmaXFyY29kZUBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}
+    "45": {"version": "15", "sha256": "17ilw08bwr8wdhybcvbjvyy41iaqcdqmwl18kld37dzhp1ninp8q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZCBhIHN3aXRjaCB0byB0aGUgV2lGaSBtZW51LCBpbiB0aGUgR05PTUUgc3lzdGVtIG1lbnUsIHRoYXQgc2hvdyBhIFFSIENvZGUgb2YgdGhlIGFjdGl2ZSBjb25uZWN0aW9uLlxuXG5UaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHF1aWNrbHkgY29ubmVjdGluZyBkZXZpY2VzIGNhcGFibGUgb2YgcmVhZGluZyBRUiBDb2RlIGFuZCBhcHBseWluZyB0aGUgc2V0dGluZ3MgdG8gdGhlIHN5c3RlbSwgd2l0aG91dCBoYXZpbmcgdG8gdHlwZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHBhc3N3b3JkIG9mIHRoZSBXaUZpLiAoZS5nLiBBbmRyb2lkIFNtYXJ0cGhvbmUpLiBcblxuRnJvbSB2ZXJzaW9uIDQgYWRkZWQgYSBmdW5jdGlvbmFsaXR5IHRvIGNvcHkgdGhlIFFSIENvZGUgdG8gY2xpcGJvYXJkIHdpdGggcmlnaHQgY2xpY2sgb24gaXQuIiwKICAiZG9uYXRpb25zIjogewogICAgImtvZmkiOiAiZ2xlcnJvIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAibmFtZSI6ICJXaWZpIFFSIENvZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2dsZXJyby9nbm9tZS1zaGVsbC1leHRlbnNpb24td2lmaXFyY29kZSIsCiAgInV1aWQiOiAid2lmaXFyY29kZUBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTUsCiAgInZlcnNpb24tbmFtZSI6ICIyLjIuMCIKfQ=="},
+    "46": {"version": "15", "sha256": "17ilw08bwr8wdhybcvbjvyy41iaqcdqmwl18kld37dzhp1ninp8q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZCBhIHN3aXRjaCB0byB0aGUgV2lGaSBtZW51LCBpbiB0aGUgR05PTUUgc3lzdGVtIG1lbnUsIHRoYXQgc2hvdyBhIFFSIENvZGUgb2YgdGhlIGFjdGl2ZSBjb25uZWN0aW9uLlxuXG5UaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHF1aWNrbHkgY29ubmVjdGluZyBkZXZpY2VzIGNhcGFibGUgb2YgcmVhZGluZyBRUiBDb2RlIGFuZCBhcHBseWluZyB0aGUgc2V0dGluZ3MgdG8gdGhlIHN5c3RlbSwgd2l0aG91dCBoYXZpbmcgdG8gdHlwZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHBhc3N3b3JkIG9mIHRoZSBXaUZpLiAoZS5nLiBBbmRyb2lkIFNtYXJ0cGhvbmUpLiBcblxuRnJvbSB2ZXJzaW9uIDQgYWRkZWQgYSBmdW5jdGlvbmFsaXR5IHRvIGNvcHkgdGhlIFFSIENvZGUgdG8gY2xpcGJvYXJkIHdpdGggcmlnaHQgY2xpY2sgb24gaXQuIiwKICAiZG9uYXRpb25zIjogewogICAgImtvZmkiOiAiZ2xlcnJvIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAibmFtZSI6ICJXaWZpIFFSIENvZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2dsZXJyby9nbm9tZS1zaGVsbC1leHRlbnNpb24td2lmaXFyY29kZSIsCiAgInV1aWQiOiAid2lmaXFyY29kZUBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTUsCiAgInZlcnNpb24tbmFtZSI6ICIyLjIuMCIKfQ=="}
   }}
 , {"uuid": "eos-desktop@endlessm.com", "name": "Endless Desktop", "pname": "endless-desktop", "description": "Endless OS signature desktop", "link": "https://extensions.gnome.org/extension/5419/endless-desktop/", "shell_version_map": {
     "41": {"version": "2", "sha256": "07wg7nab34bvhqnlfdni622c5r3pvlq04dly8spk53nxdwvisckr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuZGxlc3MgT1Mgc2lnbmF0dXJlIGRlc2t0b3AiLAogICJuYW1lIjogIkVuZGxlc3MgRGVza3RvcCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJjb20uZW5kbGVzc20uZGVza3RvcC1leHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VuZGxlc3NtL2Vvcy1kZXNrdG9wLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZW9zLWRlc2t0b3BAZW5kbGVzc20uY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
@@ -5536,7 +5608,8 @@
 , {"uuid": "quick-settings-tweaks@qwreey", "name": "[QSTweak] Quick Setting Tweaker", "pname": "quick-settings-tweaker", "description": "Let's tweak gnome 43's quick settings! You can add Media Controls, Notifications, Volume Mixer on quick settings and remove useless buttons!", "link": "https://extensions.gnome.org/extension/5446/quick-settings-tweaker/", "shell_version_map": {
     "43": {"version": "19", "sha256": "0rgjkang4c392pvyxbjypy0q7q7fkz4y8a0565brwcm8afjcaf8p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldCdzIHR3ZWFrIGdub21lIDQzJ3MgcXVpY2sgc2V0dGluZ3MhIFlvdSBjYW4gYWRkIE1lZGlhIENvbnRyb2xzLCBOb3RpZmljYXRpb25zLCBWb2x1bWUgTWl4ZXIgb24gcXVpY2sgc2V0dGluZ3MgYW5kIHJlbW92ZSB1c2VsZXNzIGJ1dHRvbnMhIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtdHdlYWtzIiwKICAibmFtZSI6ICJbUVNUd2Vha10gUXVpY2sgU2V0dGluZyBUd2Vha2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnF1aWNrLXNldHRpbmdzLXR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcXdyZWV5NzUvcXVpY2stc2V0dGluZ3MtdHdlYWtzIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy10d2Vha3NAcXdyZWV5IiwKICAidmVyc2lvbiI6IDE5Cn0="},
     "44": {"version": "19", "sha256": "0rgjkang4c392pvyxbjypy0q7q7fkz4y8a0565brwcm8afjcaf8p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldCdzIHR3ZWFrIGdub21lIDQzJ3MgcXVpY2sgc2V0dGluZ3MhIFlvdSBjYW4gYWRkIE1lZGlhIENvbnRyb2xzLCBOb3RpZmljYXRpb25zLCBWb2x1bWUgTWl4ZXIgb24gcXVpY2sgc2V0dGluZ3MgYW5kIHJlbW92ZSB1c2VsZXNzIGJ1dHRvbnMhIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtdHdlYWtzIiwKICAibmFtZSI6ICJbUVNUd2Vha10gUXVpY2sgU2V0dGluZyBUd2Vha2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnF1aWNrLXNldHRpbmdzLXR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcXdyZWV5NzUvcXVpY2stc2V0dGluZ3MtdHdlYWtzIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy10d2Vha3NAcXdyZWV5IiwKICAidmVyc2lvbiI6IDE5Cn0="},
-    "45": {"version": "25", "sha256": "082ahc3zcnv6vbc5y9c06mvy0xc0jq3r9f1js659a4sz2zw6y8bn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldCdzIHR3ZWFrIGdub21lIDQzJ3MgcXVpY2sgc2V0dGluZ3MhIFlvdSBjYW4gYWRkIE1lZGlhIENvbnRyb2xzLCBOb3RpZmljYXRpb25zLCBWb2x1bWUgTWl4ZXIgb24gcXVpY2sgc2V0dGluZ3MgYW5kIHJlbW92ZSB1c2VsZXNzIGJ1dHRvbnMhIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtdHdlYWtzIiwKICAibmFtZSI6ICJbUVNUd2Vha10gUXVpY2sgU2V0dGluZyBUd2Vha2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnF1aWNrLXNldHRpbmdzLXR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9xd3JlZXk3NS9xdWljay1zZXR0aW5ncy10d2Vha3MiLAogICJ1dWlkIjogInF1aWNrLXNldHRpbmdzLXR3ZWFrc0Bxd3JlZXkiLAogICJ2ZXJzaW9uIjogMjUKfQ=="}
+    "45": {"version": "25", "sha256": "082ahc3zcnv6vbc5y9c06mvy0xc0jq3r9f1js659a4sz2zw6y8bn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldCdzIHR3ZWFrIGdub21lIDQzJ3MgcXVpY2sgc2V0dGluZ3MhIFlvdSBjYW4gYWRkIE1lZGlhIENvbnRyb2xzLCBOb3RpZmljYXRpb25zLCBWb2x1bWUgTWl4ZXIgb24gcXVpY2sgc2V0dGluZ3MgYW5kIHJlbW92ZSB1c2VsZXNzIGJ1dHRvbnMhIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtdHdlYWtzIiwKICAibmFtZSI6ICJbUVNUd2Vha10gUXVpY2sgU2V0dGluZyBUd2Vha2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnF1aWNrLXNldHRpbmdzLXR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9xd3JlZXk3NS9xdWljay1zZXR0aW5ncy10d2Vha3MiLAogICJ1dWlkIjogInF1aWNrLXNldHRpbmdzLXR3ZWFrc0Bxd3JlZXkiLAogICJ2ZXJzaW9uIjogMjUKfQ=="},
+    "46": {"version": "27", "sha256": "0fhzxqnzjzv3yv51p8v3kipkpk6ih96nc69ya5vwz4p79nkrksgr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldCdzIHR3ZWFrIGdub21lIDQzJ3MgcXVpY2sgc2V0dGluZ3MhIFlvdSBjYW4gYWRkIE1lZGlhIENvbnRyb2xzLCBOb3RpZmljYXRpb25zLCBWb2x1bWUgTWl4ZXIgb24gcXVpY2sgc2V0dGluZ3MgYW5kIHJlbW92ZSB1c2VsZXNzIGJ1dHRvbnMhIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtdHdlYWtzIiwKICAibmFtZSI6ICJbUVNUd2Vha10gUXVpY2sgU2V0dGluZyBUd2Vha2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnF1aWNrLXNldHRpbmdzLXR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9xd3JlZXk3NS9xdWljay1zZXR0aW5ncy10d2Vha3MiLAogICJ1dWlkIjogInF1aWNrLXNldHRpbmdzLXR3ZWFrc0Bxd3JlZXkiLAogICJ2ZXJzaW9uIjogMjcKfQ=="}
   }}
 , {"uuid": "osd-volume-number@deminder", "name": "OSD Volume Number", "pname": "osd-volume-number", "description": "Replace the on-screen-display volume level icon with a number.", "link": "https://extensions.gnome.org/extension/5461/osd-volume-number/", "shell_version_map": {
     "42": {"version": "6", "sha256": "0c3l0j88bmc5lhif0jwxy0mch1wafmbk6hysyxdnf2qlkiha50ds", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgdGhlIG9uLXNjcmVlbi1kaXNwbGF5IHZvbHVtZSBsZXZlbCBpY29uIHdpdGggYSBudW1iZXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAib3NkLXZvbHVtZS1udW1iZXIiLAogICJuYW1lIjogIk9TRCBWb2x1bWUgTnVtYmVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9zZC12b2x1bWUtbnVtYmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRGVtaW5kZXIvb3NkLXZvbHVtZS1udW1iZXIiLAogICJ1dWlkIjogIm9zZC12b2x1bWUtbnVtYmVyQGRlbWluZGVyIiwKICAidmVyc2lvbiI6IDYKfQ=="},
@@ -5548,7 +5621,9 @@
 , {"uuid": "next-up@artisticat1.github.com", "name": "Next Up", "pname": "next-up", "description": "Show your next calendar event in the status bar", "link": "https://extensions.gnome.org/extension/5465/next-up/", "shell_version_map": {
     "42": {"version": "5", "sha256": "1wcz3n15gzd9dqjv85q46r1zls87sc9sscq83qaswl7h9hxa1dq9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgeW91ciBuZXh0IGNhbGVuZGFyIGV2ZW50IGluIHRoZSBzdGF0dXMgYmFyIiwKICAibmFtZSI6ICJOZXh0IFVwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJ0aXN0aWNhdDEvZ25vbWUtbmV4dC11cCIsCiAgInV1aWQiOiAibmV4dC11cEBhcnRpc3RpY2F0MS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="},
     "43": {"version": "5", "sha256": "1wcz3n15gzd9dqjv85q46r1zls87sc9sscq83qaswl7h9hxa1dq9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgeW91ciBuZXh0IGNhbGVuZGFyIGV2ZW50IGluIHRoZSBzdGF0dXMgYmFyIiwKICAibmFtZSI6ICJOZXh0IFVwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJ0aXN0aWNhdDEvZ25vbWUtbmV4dC11cCIsCiAgInV1aWQiOiAibmV4dC11cEBhcnRpc3RpY2F0MS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="},
-    "44": {"version": "5", "sha256": "1wcz3n15gzd9dqjv85q46r1zls87sc9sscq83qaswl7h9hxa1dq9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgeW91ciBuZXh0IGNhbGVuZGFyIGV2ZW50IGluIHRoZSBzdGF0dXMgYmFyIiwKICAibmFtZSI6ICJOZXh0IFVwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJ0aXN0aWNhdDEvZ25vbWUtbmV4dC11cCIsCiAgInV1aWQiOiAibmV4dC11cEBhcnRpc3RpY2F0MS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}
+    "44": {"version": "5", "sha256": "1wcz3n15gzd9dqjv85q46r1zls87sc9sscq83qaswl7h9hxa1dq9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgeW91ciBuZXh0IGNhbGVuZGFyIGV2ZW50IGluIHRoZSBzdGF0dXMgYmFyIiwKICAibmFtZSI6ICJOZXh0IFVwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJ0aXN0aWNhdDEvZ25vbWUtbmV4dC11cCIsCiAgInV1aWQiOiAibmV4dC11cEBhcnRpc3RpY2F0MS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="},
+    "45": {"version": "7", "sha256": "03dhisyv1pcii7wr151wwpwxaafibafbgn7sglmzy1picv57gxpa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgeW91ciBuZXh0IGNhbGVuZGFyIGV2ZW50IGluIHRoZSBzdGF0dXMgYmFyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibmV4dC11cC1pbmRpY2F0b3ItZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJOZXh0IFVwIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5leHQtdXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FydGlzdGljYXQxL2dub21lLW5leHQtdXAiLAogICJ1dWlkIjogIm5leHQtdXBAYXJ0aXN0aWNhdDEuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="},
+    "46": {"version": "7", "sha256": "03dhisyv1pcii7wr151wwpwxaafibafbgn7sglmzy1picv57gxpa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgeW91ciBuZXh0IGNhbGVuZGFyIGV2ZW50IGluIHRoZSBzdGF0dXMgYmFyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibmV4dC11cC1pbmRpY2F0b3ItZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJOZXh0IFVwIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5leHQtdXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FydGlzdGljYXQxL2dub21lLW5leHQtdXAiLAogICJ1dWlkIjogIm5leHQtdXBAYXJ0aXN0aWNhdDEuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}
   }}
 , {"uuid": "weatheroclock@CleoMenezesJr.github.io", "name": "Weather O'Clock", "pname": "weather-oclock", "description": "Display the current weather inside the pill next to the clock. GNOME Weather is required for this extension to work.", "link": "https://extensions.gnome.org/extension/5470/weather-oclock/", "shell_version_map": {
     "42": {"version": "8", "sha256": "0fs7kdffbvip03k6xqhw8y7jdqxlg6rs30zx915rr83hdkx5df37", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIGN1cnJlbnQgd2VhdGhlciBpbnNpZGUgdGhlIHBpbGwgbmV4dCB0byB0aGUgY2xvY2suIEdOT01FIFdlYXRoZXIgaXMgcmVxdWlyZWQgZm9yIHRoaXMgZXh0ZW5zaW9uIHRvIHdvcmsuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDbGVvTWVuZXplc0pyIiwKICAgICJrb2ZpIjogImNsZW9tZW5lemVzanIiLAogICAgInBheXBhbCI6ICJDbGVvTWVuZXplc0pyIgogIH0sCiAgIm5hbWUiOiAiV2VhdGhlciBPJ0Nsb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkphc29uTEcxOTc5QGdpdGh1Yi5pbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NsZW9NZW5lemVzSnIvd2VhdGhlci1vY2xvY2siLAogICJ1dWlkIjogIndlYXRoZXJvY2xvY2tAQ2xlb01lbmV6ZXNKci5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogOAp9"},
@@ -5571,12 +5646,12 @@
     "45": {"version": "5", "sha256": "14v0q6msfpkl3aqspwzjrczjc9ja6d969xrlmql00c29cczmsxzx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB3b3Jrc3BhY2VzIHNwYW5uaW5nIGRpc3BsYXlzLiIsCiAgIm5hbWUiOiAiVG9nZ2xlIHdvcmtzcGFjZSBzcGFuIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRvZ2dsZS13b3Jrc3BhY2Utc3BhbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJuZ28vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRvZ2dsZS13b3Jrc3BhY2Utc3BhbiIsCiAgInV1aWQiOiAidG9nZ2xlLXdvcmtzcGFjZS1zcGFuQGFybmdvLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"},
     "46": {"version": "5", "sha256": "14v0q6msfpkl3aqspwzjrczjc9ja6d969xrlmql00c29cczmsxzx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB3b3Jrc3BhY2VzIHNwYW5uaW5nIGRpc3BsYXlzLiIsCiAgIm5hbWUiOiAiVG9nZ2xlIHdvcmtzcGFjZSBzcGFuIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRvZ2dsZS13b3Jrc3BhY2Utc3BhbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJuZ28vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRvZ2dsZS13b3Jrc3BhY2Utc3BhbiIsCiAgInV1aWQiOiAidG9nZ2xlLXdvcmtzcGFjZS1zcGFuQGFybmdvLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}
   }}
-, {"uuid": "search-light@icedman.github.com", "name": "Search Light", "pname": "search-light", "description": "Take the apps search out of overview", "link": "https://extensions.gnome.org/extension/5489/search-light/", "shell_version_map": {
+, {"uuid": "search-light@icedman.github.com", "name": "Search Light", "pname": "search-light", "description": "Take the apps search out of overview.", "link": "https://extensions.gnome.org/extension/5489/search-light/", "shell_version_map": {
     "42": {"version": "17", "sha256": "054k5q694ssm937qfxximg2qh5zx4m2qzcffdxjm4xd39qn4bi85", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2UgdGhlIGFwcHMgc2VhcmNoIG91dCBvZiBvdmVydmlldyIsCiAgImdldHRleHQtZG9tYWluIjogInNlYXJjaC1saWdodCIsCiAgIm5hbWUiOiAiU2VhcmNoIExpZ2h0IiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlYXJjaC1saWdodCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ljZWRtYW4vc2VhcmNoLWxpZ2h0IiwKICAidXVpZCI6ICJzZWFyY2gtbGlnaHRAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE3Cn0="},
     "43": {"version": "17", "sha256": "054k5q694ssm937qfxximg2qh5zx4m2qzcffdxjm4xd39qn4bi85", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2UgdGhlIGFwcHMgc2VhcmNoIG91dCBvZiBvdmVydmlldyIsCiAgImdldHRleHQtZG9tYWluIjogInNlYXJjaC1saWdodCIsCiAgIm5hbWUiOiAiU2VhcmNoIExpZ2h0IiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlYXJjaC1saWdodCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ljZWRtYW4vc2VhcmNoLWxpZ2h0IiwKICAidXVpZCI6ICJzZWFyY2gtbGlnaHRAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE3Cn0="},
     "44": {"version": "17", "sha256": "054k5q694ssm937qfxximg2qh5zx4m2qzcffdxjm4xd39qn4bi85", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2UgdGhlIGFwcHMgc2VhcmNoIG91dCBvZiBvdmVydmlldyIsCiAgImdldHRleHQtZG9tYWluIjogInNlYXJjaC1saWdodCIsCiAgIm5hbWUiOiAiU2VhcmNoIExpZ2h0IiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlYXJjaC1saWdodCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ljZWRtYW4vc2VhcmNoLWxpZ2h0IiwKICAidXVpZCI6ICJzZWFyY2gtbGlnaHRAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE3Cn0="},
-    "45": {"version": "22", "sha256": "0qjlaka6p38jsrif8v52b8cb1hiw97a9ipx3dssw87i1jzhwcc2z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2UgdGhlIGFwcHMgc2VhcmNoIG91dCBvZiBvdmVydmlldyIsCiAgImdldHRleHQtZG9tYWluIjogInNlYXJjaC1saWdodCIsCiAgIm5hbWUiOiAiU2VhcmNoIExpZ2h0IiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlYXJjaC1saWdodCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9zZWFyY2gtbGlnaHQiLAogICJ1dWlkIjogInNlYXJjaC1saWdodEBpY2VkbWFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjIKfQ=="},
-    "46": {"version": "22", "sha256": "0qjlaka6p38jsrif8v52b8cb1hiw97a9ipx3dssw87i1jzhwcc2z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2UgdGhlIGFwcHMgc2VhcmNoIG91dCBvZiBvdmVydmlldyIsCiAgImdldHRleHQtZG9tYWluIjogInNlYXJjaC1saWdodCIsCiAgIm5hbWUiOiAiU2VhcmNoIExpZ2h0IiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlYXJjaC1saWdodCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9zZWFyY2gtbGlnaHQiLAogICJ1dWlkIjogInNlYXJjaC1saWdodEBpY2VkbWFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjIKfQ=="}
+    "45": {"version": "27", "sha256": "142v05d9mnmphsvvf8qjcsbzcb668dh4ylymz0n5m2s5bxdzpvc4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2UgdGhlIGFwcHMgc2VhcmNoIG91dCBvZiBvdmVydmlldy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzZWFyY2gtbGlnaHQiLAogICJuYW1lIjogIlNlYXJjaCBMaWdodCIsCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zZWFyY2gtbGlnaHQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ljZWRtYW4vc2VhcmNoLWxpZ2h0IiwKICAidXVpZCI6ICJzZWFyY2gtbGlnaHRAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI3Cn0="},
+    "46": {"version": "27", "sha256": "142v05d9mnmphsvvf8qjcsbzcb668dh4ylymz0n5m2s5bxdzpvc4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2UgdGhlIGFwcHMgc2VhcmNoIG91dCBvZiBvdmVydmlldy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzZWFyY2gtbGlnaHQiLAogICJuYW1lIjogIlNlYXJjaCBMaWdodCIsCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zZWFyY2gtbGlnaHQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ljZWRtYW4vc2VhcmNoLWxpZ2h0IiwKICAidXVpZCI6ICJzZWFyY2gtbGlnaHRAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI3Cn0="}
   }}
 , {"uuid": "ibus-switcher@kevinhwang91.github.com", "name": "IBus Switcher", "pname": "ibus-switcher", "description": "Use d-bus to switch ibus source", "link": "https://extensions.gnome.org/extension/5497/ibus-switcher/", "shell_version_map": {
     "45": {"version": "4", "sha256": "1na3cncy9kkdqbvhwzckbf3axrcpz1apidxvsv4s5qmg2vrjccgv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBkLWJ1cyB0byBzd2l0Y2ggaWJ1cyBzb3VyY2UiLAogICJuYW1lIjogIklCdXMgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2tldmluaHdhbmc5MS9nbm9tZS1zaGVsbC1pYnVzLXN3aXRjaGVyIiwKICAidXVpZCI6ICJpYnVzLXN3aXRjaGVyQGtldmluaHdhbmc5MS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="},
@@ -5604,12 +5679,6 @@
     "42": {"version": "4", "sha256": "0jih9lhy9pywilqnkz4cliyg3i2jm4w36kmna67hrx5wqvga6s69", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZsb2F0cyB0aGUgcGFuZWwsIGlmIHRoZXJlIGlzIGEgd2luZG93IG5lYXJieSBvciBtYXhpbWlzZWQsIGl0IGRlZmxvYXRzLiIsCiAgIm5hbWUiOiAiRmxvYXRpbmcgUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQXlsdXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZsb2F0aW5nLXBhbmVsIiwKICAidXVpZCI6ICJmbG9hdGluZy1wYW5lbEBheWx1ciIsCiAgInZlcnNpb24iOiA0Cn0="},
     "43": {"version": "4", "sha256": "0jih9lhy9pywilqnkz4cliyg3i2jm4w36kmna67hrx5wqvga6s69", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZsb2F0cyB0aGUgcGFuZWwsIGlmIHRoZXJlIGlzIGEgd2luZG93IG5lYXJieSBvciBtYXhpbWlzZWQsIGl0IGRlZmxvYXRzLiIsCiAgIm5hbWUiOiAiRmxvYXRpbmcgUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQXlsdXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZsb2F0aW5nLXBhbmVsIiwKICAidXVpZCI6ICJmbG9hdGluZy1wYW5lbEBheWx1ciIsCiAgInZlcnNpb24iOiA0Cn0="}
   }}
-, {"uuid": "tun0-ip-address@adamantisspinae.github.com", "name": "tun0 IP Address", "pname": "tun0-ip-address", "description": "Show tun0 IP address on GNOME panel. Do not show loopback addresses (127.0.0.0/8) or other network interface IP addresses. Please install moreutils package as a depedency", "link": "https://extensions.gnome.org/extension/5518/tun0-ip-address/", "shell_version_map": {
-    "40": {"version": "7", "sha256": "08zfm6g38g54km5ks83i78b019v6cihqz0qp636iislhpz6gzylp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdHVuMCBJUCBhZGRyZXNzIG9uIEdOT01FIHBhbmVsLiBEbyBub3Qgc2hvdyBsb29wYmFjayBhZGRyZXNzZXMgKDEyNy4wLjAuMC84KSBvciBvdGhlciBuZXR3b3JrIGludGVyZmFjZSBJUCBhZGRyZXNzZXMuIFBsZWFzZSBpbnN0YWxsIG1vcmV1dGlscyBwYWNrYWdlIGFzIGEgZGVwZWRlbmN5IiwKICAibmFtZSI6ICJ0dW4wIElQIEFkZHJlc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWRhbWFudGlzU3BpbmFlL2dub21lLWV4dGVuc2lvbi10dW4wLWlwLWFkZHJlc3MiLAogICJ1dWlkIjogInR1bjAtaXAtYWRkcmVzc0BhZGFtYW50aXNzcGluYWUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="},
-    "41": {"version": "7", "sha256": "08zfm6g38g54km5ks83i78b019v6cihqz0qp636iislhpz6gzylp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdHVuMCBJUCBhZGRyZXNzIG9uIEdOT01FIHBhbmVsLiBEbyBub3Qgc2hvdyBsb29wYmFjayBhZGRyZXNzZXMgKDEyNy4wLjAuMC84KSBvciBvdGhlciBuZXR3b3JrIGludGVyZmFjZSBJUCBhZGRyZXNzZXMuIFBsZWFzZSBpbnN0YWxsIG1vcmV1dGlscyBwYWNrYWdlIGFzIGEgZGVwZWRlbmN5IiwKICAibmFtZSI6ICJ0dW4wIElQIEFkZHJlc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWRhbWFudGlzU3BpbmFlL2dub21lLWV4dGVuc2lvbi10dW4wLWlwLWFkZHJlc3MiLAogICJ1dWlkIjogInR1bjAtaXAtYWRkcmVzc0BhZGFtYW50aXNzcGluYWUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="},
-    "42": {"version": "7", "sha256": "08zfm6g38g54km5ks83i78b019v6cihqz0qp636iislhpz6gzylp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdHVuMCBJUCBhZGRyZXNzIG9uIEdOT01FIHBhbmVsLiBEbyBub3Qgc2hvdyBsb29wYmFjayBhZGRyZXNzZXMgKDEyNy4wLjAuMC84KSBvciBvdGhlciBuZXR3b3JrIGludGVyZmFjZSBJUCBhZGRyZXNzZXMuIFBsZWFzZSBpbnN0YWxsIG1vcmV1dGlscyBwYWNrYWdlIGFzIGEgZGVwZWRlbmN5IiwKICAibmFtZSI6ICJ0dW4wIElQIEFkZHJlc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWRhbWFudGlzU3BpbmFlL2dub21lLWV4dGVuc2lvbi10dW4wLWlwLWFkZHJlc3MiLAogICJ1dWlkIjogInR1bjAtaXAtYWRkcmVzc0BhZGFtYW50aXNzcGluYWUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="},
-    "43": {"version": "7", "sha256": "08zfm6g38g54km5ks83i78b019v6cihqz0qp636iislhpz6gzylp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdHVuMCBJUCBhZGRyZXNzIG9uIEdOT01FIHBhbmVsLiBEbyBub3Qgc2hvdyBsb29wYmFjayBhZGRyZXNzZXMgKDEyNy4wLjAuMC84KSBvciBvdGhlciBuZXR3b3JrIGludGVyZmFjZSBJUCBhZGRyZXNzZXMuIFBsZWFzZSBpbnN0YWxsIG1vcmV1dGlscyBwYWNrYWdlIGFzIGEgZGVwZWRlbmN5IiwKICAibmFtZSI6ICJ0dW4wIElQIEFkZHJlc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWRhbWFudGlzU3BpbmFlL2dub21lLWV4dGVuc2lvbi10dW4wLWlwLWFkZHJlc3MiLAogICJ1dWlkIjogInR1bjAtaXAtYWRkcmVzc0BhZGFtYW50aXNzcGluYWUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}
-  }}
 , {"uuid": "nano-lights@chlumskyvaclav.gmail.com", "name": "Nano Lights", "pname": "nano-lights", "description": "This extension controls Nanoleaf shapes and possibly others Nanoleaf devices on your local (wifi) network. If you are experiencing an error on the upgrade, please log out and log in again.", "link": "https://extensions.gnome.org/extension/5519/nano-lights/", "shell_version_map": {
     "43": {"version": "4", "sha256": "0w0092hhra27d59842xgc6r01v4sfbl5p1ipvf3gbq6pam9955b0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIE5hbm9sZWFmIHNoYXBlcyBhbmQgcG9zc2libHkgb3RoZXJzIE5hbm9sZWFmIGRldmljZXMgb24geW91ciBsb2NhbCAod2lmaSkgbmV0d29yay4gSWYgeW91IGFyZSBleHBlcmllbmNpbmcgYW4gZXJyb3Igb24gdGhlIHVwZ3JhZGUsIHBsZWFzZSBsb2cgb3V0IGFuZCBsb2cgaW4gYWdhaW4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibmFuby1saWdodHMiLAogICJuYW1lIjogIk5hbm8gTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL25hbm8tbGlnaHRzIiwKICAidXVpZCI6ICJuYW5vLWxpZ2h0c0BjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
     "44": {"version": "4", "sha256": "0w0092hhra27d59842xgc6r01v4sfbl5p1ipvf3gbq6pam9955b0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIE5hbm9sZWFmIHNoYXBlcyBhbmQgcG9zc2libHkgb3RoZXJzIE5hbm9sZWFmIGRldmljZXMgb24geW91ciBsb2NhbCAod2lmaSkgbmV0d29yay4gSWYgeW91IGFyZSBleHBlcmllbmNpbmcgYW4gZXJyb3Igb24gdGhlIHVwZ3JhZGUsIHBsZWFzZSBsb2cgb3V0IGFuZCBsb2cgaW4gYWdhaW4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibmFuby1saWdodHMiLAogICJuYW1lIjogIk5hbm8gTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL25hbm8tbGlnaHRzIiwKICAidXVpZCI6ICJuYW5vLWxpZ2h0c0BjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
@@ -5617,15 +5686,21 @@
     "46": {"version": "7", "sha256": "1ayij5spshhnj711dhppv4ql2gzpck5f9dsq9y8qybz7h15r0nj9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIE5hbm9sZWFmIHNoYXBlcyBhbmQgcG9zc2libHkgb3RoZXJzIE5hbm9sZWFmIGRldmljZXMgb24geW91ciBsb2NhbCAod2lmaSkgbmV0d29yay4gSWYgeW91IGFyZSBleHBlcmllbmNpbmcgYW4gZXJyb3Igb24gdGhlIHVwZ3JhZGUsIHBsZWFzZSBsb2cgb3V0IGFuZCBsb2cgaW4gYWdhaW4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibmFuby1saWdodHMiLAogICJuYW1lIjogIk5hbm8gTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYW5vLWxpZ2h0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL25hbm8tbGlnaHRzIiwKICAidXVpZCI6ICJuYW5vLWxpZ2h0c0BjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}
   }}
 , {"uuid": "just-another-search-bar@xelad0m", "name": "Just Another Search Bar", "pname": "just-another-search-bar", "description": "Simple GNOME Shell extension for performing search queries\nfrom desktop. Some search engines are added as examples, you can add your own,\nincluding local search tools with suitable CLI", "link": "https://extensions.gnome.org/extension/5522/just-another-search-bar/", "shell_version_map": {
+    "42": {"version": "13", "sha256": "1qij3yfrhqsm23lsi9p646r25w6x6vlcfimsqkbrvbvisncqi65n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gZm9yIHBlcmZvcm1pbmcgc2VhcmNoIHF1ZXJpZXNcbmZyb20gZGVza3RvcC4gU29tZSBzZWFyY2ggZW5naW5lcyBhcmUgYWRkZWQgYXMgZXhhbXBsZXMsIHlvdSBjYW4gYWRkIHlvdXIgb3duLFxuaW5jbHVkaW5nIGxvY2FsIHNlYXJjaCB0b29scyB3aXRoIHN1aXRhYmxlIENMSSIsCiAgIm5hbWUiOiAiSnVzdCBBbm90aGVyIFNlYXJjaCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLXNoZWxsLmV4dGVuc2lvbnMuanVzdC1hbm90aGVyLXNlYXJjaC1iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVsYWQwbS9qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInV1aWQiOiAianVzdC1hbm90aGVyLXNlYXJjaC1iYXJAeGVsYWQwbSIsCiAgInZlcnNpb24iOiAxMwp9"},
     "43": {"version": "9", "sha256": "1p934bgds2d5sg4a7hqrdlm9l9psrg2bjfasv0h1k46nj0dpryzs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gZm9yIHBlcmZvcm1pbmcgc2VhcmNoIHF1ZXJpZXNcbmZyb20gZGVza3RvcC4gU29tZSBzZWFyY2ggZW5naW5lcyBhcmUgYWRkZWQgYXMgZXhhbXBsZXMsIHlvdSBjYW4gYWRkIHlvdXIgb3duLFxuaW5jbHVkaW5nIGxvY2FsIHNlYXJjaCB0b29scyB3aXRoIHN1aXRhYmxlIENMSSIsCiAgIm5hbWUiOiAiSnVzdCBBbm90aGVyIFNlYXJjaCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLXNoZWxsLmV4dGVuc2lvbnMuanVzdC1hbm90aGVyLXNlYXJjaC1iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3hlbGFkMG0vanVzdC1hbm90aGVyLXNlYXJjaC1iYXIiLAogICJ1dWlkIjogImp1c3QtYW5vdGhlci1zZWFyY2gtYmFyQHhlbGFkMG0iLAogICJ2ZXJzaW9uIjogOQp9"},
     "44": {"version": "9", "sha256": "1p934bgds2d5sg4a7hqrdlm9l9psrg2bjfasv0h1k46nj0dpryzs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gZm9yIHBlcmZvcm1pbmcgc2VhcmNoIHF1ZXJpZXNcbmZyb20gZGVza3RvcC4gU29tZSBzZWFyY2ggZW5naW5lcyBhcmUgYWRkZWQgYXMgZXhhbXBsZXMsIHlvdSBjYW4gYWRkIHlvdXIgb3duLFxuaW5jbHVkaW5nIGxvY2FsIHNlYXJjaCB0b29scyB3aXRoIHN1aXRhYmxlIENMSSIsCiAgIm5hbWUiOiAiSnVzdCBBbm90aGVyIFNlYXJjaCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLXNoZWxsLmV4dGVuc2lvbnMuanVzdC1hbm90aGVyLXNlYXJjaC1iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3hlbGFkMG0vanVzdC1hbm90aGVyLXNlYXJjaC1iYXIiLAogICJ1dWlkIjogImp1c3QtYW5vdGhlci1zZWFyY2gtYmFyQHhlbGFkMG0iLAogICJ2ZXJzaW9uIjogOQp9"},
-    "45": {"version": "11", "sha256": "0xxdahjl56jkdx40s5imd6v3hvcshpayy7qk5vr0ha79vqmxg888", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gZm9yIHBlcmZvcm1pbmcgc2VhcmNoIHF1ZXJpZXNcbmZyb20gZGVza3RvcC4gU29tZSBzZWFyY2ggZW5naW5lcyBhcmUgYWRkZWQgYXMgZXhhbXBsZXMsIHlvdSBjYW4gYWRkIHlvdXIgb3duLFxuaW5jbHVkaW5nIGxvY2FsIHNlYXJjaCB0b29scyB3aXRoIHN1aXRhYmxlIENMSSIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtYW5vdGhlci1zZWFyY2gtYmFyIiwKICAibmFtZSI6ICJKdXN0IEFub3RoZXIgU2VhcmNoIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVsYWQwbS9qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInV1aWQiOiAianVzdC1hbm90aGVyLXNlYXJjaC1iYXJAeGVsYWQwbSIsCiAgInZlcnNpb24iOiAxMQp9"},
-    "46": {"version": "11", "sha256": "0xxdahjl56jkdx40s5imd6v3hvcshpayy7qk5vr0ha79vqmxg888", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gZm9yIHBlcmZvcm1pbmcgc2VhcmNoIHF1ZXJpZXNcbmZyb20gZGVza3RvcC4gU29tZSBzZWFyY2ggZW5naW5lcyBhcmUgYWRkZWQgYXMgZXhhbXBsZXMsIHlvdSBjYW4gYWRkIHlvdXIgb3duLFxuaW5jbHVkaW5nIGxvY2FsIHNlYXJjaCB0b29scyB3aXRoIHN1aXRhYmxlIENMSSIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtYW5vdGhlci1zZWFyY2gtYmFyIiwKICAibmFtZSI6ICJKdXN0IEFub3RoZXIgU2VhcmNoIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVsYWQwbS9qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInV1aWQiOiAianVzdC1hbm90aGVyLXNlYXJjaC1iYXJAeGVsYWQwbSIsCiAgInZlcnNpb24iOiAxMQp9"}
+    "45": {"version": "12", "sha256": "02nial4ns2bwlahqvln85a3bsk6hjd54asdxyn6vfi4fgr95cx4y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gZm9yIHBlcmZvcm1pbmcgc2VhcmNoIHF1ZXJpZXNcbmZyb20gZGVza3RvcC4gU29tZSBzZWFyY2ggZW5naW5lcyBhcmUgYWRkZWQgYXMgZXhhbXBsZXMsIHlvdSBjYW4gYWRkIHlvdXIgb3duLFxuaW5jbHVkaW5nIGxvY2FsIHNlYXJjaCB0b29scyB3aXRoIHN1aXRhYmxlIENMSSIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtYW5vdGhlci1zZWFyY2gtYmFyIiwKICAibmFtZSI6ICJKdXN0IEFub3RoZXIgU2VhcmNoIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVsYWQwbS9qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInV1aWQiOiAianVzdC1hbm90aGVyLXNlYXJjaC1iYXJAeGVsYWQwbSIsCiAgInZlcnNpb24iOiAxMgp9"},
+    "46": {"version": "12", "sha256": "02nial4ns2bwlahqvln85a3bsk6hjd54asdxyn6vfi4fgr95cx4y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gZm9yIHBlcmZvcm1pbmcgc2VhcmNoIHF1ZXJpZXNcbmZyb20gZGVza3RvcC4gU29tZSBzZWFyY2ggZW5naW5lcyBhcmUgYWRkZWQgYXMgZXhhbXBsZXMsIHlvdSBjYW4gYWRkIHlvdXIgb3duLFxuaW5jbHVkaW5nIGxvY2FsIHNlYXJjaCB0b29scyB3aXRoIHN1aXRhYmxlIENMSSIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtYW5vdGhlci1zZWFyY2gtYmFyIiwKICAibmFtZSI6ICJKdXN0IEFub3RoZXIgU2VhcmNoIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVsYWQwbS9qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInV1aWQiOiAianVzdC1hbm90aGVyLXNlYXJjaC1iYXJAeGVsYWQwbSIsCiAgInZlcnNpb24iOiAxMgp9"}
+  }}
+, {"uuid": "Noiseclapper@JordanViknar", "name": "Noiseclapper (Soundcore Life for GNOME)", "pname": "noiseclapper", "description": "Noiseclapper is a GNOME Shell extension that allows you to control the Noise Cancelling mode and the Equalizer settings of your Soundcore Life headphones right from the panel. It works as a simple, easy-to-use, desktop-compatible alternative to the official mobile application.\n\nThe following headphones are currently supported by this extension :\n- Soundcore Life P3 (Tested)\n- Soundcore Life Q35\n- Soundcore Life Q30 (Tested)\n- Soundcore Life Q20+\n- Soundcore Life Q20\n- Soundcore Life Q10\n- Soundcore Life Q10\nOthers may be supported by adding them to the extension's internal model list through a pull request.\n\nThis project is not affiliated, associated, authorized, endorsed by, or in any way officially connected with Anker, or any of its subsidiaries or its affiliates.", "link": "https://extensions.gnome.org/extension/5526/noiseclapper/", "shell_version_map": {
+    "45": {"version": "3", "sha256": "04ryxnplygm0v3m3fljx4k9g386zkm3cicj1xlqii9fwbdqpyxnp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGVzIGNvbnRyb2wgb2YgU291bmRjb3JlIExpZmUgUTMwIEhlYWRwaG9uZXMgKGFuZCBvdGhlcnMpIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiTm9pc2VjbGFwcGVyIiwKICAibmFtZSI6ICJOb2lzZWNsYXBwZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm9pc2VjbGFwcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Kb3JkYW5WaWtuYXIvTm9pc2VjbGFwcGVyIiwKICAidXVpZCI6ICJOb2lzZWNsYXBwZXJASm9yZGFuVmlrbmFyIiwKICAidmVyc2lvbiI6IDMKfQ=="},
+    "46": {"version": "3", "sha256": "04ryxnplygm0v3m3fljx4k9g386zkm3cicj1xlqii9fwbdqpyxnp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGVzIGNvbnRyb2wgb2YgU291bmRjb3JlIExpZmUgUTMwIEhlYWRwaG9uZXMgKGFuZCBvdGhlcnMpIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiTm9pc2VjbGFwcGVyIiwKICAibmFtZSI6ICJOb2lzZWNsYXBwZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm9pc2VjbGFwcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Kb3JkYW5WaWtuYXIvTm9pc2VjbGFwcGVyIiwKICAidXVpZCI6ICJOb2lzZWNsYXBwZXJASm9yZGFuVmlrbmFyIiwKICAidmVyc2lvbiI6IDMKfQ=="}
   }}
 , {"uuid": "compact-quick-settings@gnome-shell-extensions.mariospr.org", "name": "Compact Quick Settings", "pname": "compact-quick-settings", "description": "Compact quick settings menu for GNOME 43 and newer", "link": "https://extensions.gnome.org/extension/5527/compact-quick-settings/", "shell_version_map": {
     "43": {"version": "3", "sha256": "04ffksmfc27gya24x2fj0zpax3yj1kwjdwn33a99rxpypmicvpwf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBhY3QgcXVpY2sgc2V0dGluZ3MgbWVudSBmb3IgR05PTUUgNDMgYW5kIG5ld2VyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiIiwKICAibmFtZSI6ICJDb21wYWN0IFF1aWNrIFNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmlvc3ByL2NvbXBhY3QtcXVpY2stc2V0dGluZ3MtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJjb21wYWN0LXF1aWNrLXNldHRpbmdzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMubWFyaW9zcHIub3JnIiwKICAidmVyc2lvbiI6IDMKfQ=="},
     "44": {"version": "4", "sha256": "05cssrkk4kk9vix98abvy3i6ms3495sz5jpi496srnnbxs500y4v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBhY3QgcXVpY2sgc2V0dGluZ3MgbWVudSBmb3IgR05PTUUgNDMgYW5kIG5ld2VyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiIiwKICAibmFtZSI6ICJDb21wYWN0IFF1aWNrIFNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmlvc3ByL2NvbXBhY3QtcXVpY2stc2V0dGluZ3MtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJjb21wYWN0LXF1aWNrLXNldHRpbmdzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMubWFyaW9zcHIub3JnIiwKICAidmVyc2lvbiI6IDQKfQ=="},
-    "45": {"version": "7", "sha256": "1ir3wqcg9cdy1hs8icvkv7rv5hr47s1lrdz04y75vviwv406r6jm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBhY3QgcXVpY2sgc2V0dGluZ3MgbWVudSBmb3IgR05PTUUgNDMgYW5kIG5ld2VyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiIiwKICAibmFtZSI6ICJDb21wYWN0IFF1aWNrIFNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmlvc3ByL2NvbXBhY3QtcXVpY2stc2V0dGluZ3MtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJjb21wYWN0LXF1aWNrLXNldHRpbmdzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMubWFyaW9zcHIub3JnIiwKICAidmVyc2lvbiI6IDcKfQ=="}
+    "45": {"version": "8", "sha256": "15f2nn5lvyfya33ih8mxdjx4vwjp5fn61d47g3bf27gp84vhp300", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBhY3QgcXVpY2sgc2V0dGluZ3MgbWVudSBmb3IgR05PTUUgNDMgYW5kIG5ld2VyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiIiwKICAibmFtZSI6ICJDb21wYWN0IFF1aWNrIFNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXJpb3Nwci9jb21wYWN0LXF1aWNrLXNldHRpbmdzLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiY29tcGFjdC1xdWljay1zZXR0aW5nc0Bnbm9tZS1zaGVsbC1leHRlbnNpb25zLm1hcmlvc3ByLm9yZyIsCiAgInZlcnNpb24iOiA4Cn0="},
+    "46": {"version": "8", "sha256": "15f2nn5lvyfya33ih8mxdjx4vwjp5fn61d47g3bf27gp84vhp300", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBhY3QgcXVpY2sgc2V0dGluZ3MgbWVudSBmb3IgR05PTUUgNDMgYW5kIG5ld2VyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiIiwKICAibmFtZSI6ICJDb21wYWN0IFF1aWNrIFNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXJpb3Nwci9jb21wYWN0LXF1aWNrLXNldHRpbmdzLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiY29tcGFjdC1xdWljay1zZXR0aW5nc0Bnbm9tZS1zaGVsbC1leHRlbnNpb25zLm1hcmlvc3ByLm9yZyIsCiAgInZlcnNpb24iOiA4Cn0="}
   }}
 , {"uuid": "circular@widgets.io", "name": "Circular Widgets", "pname": "circular-widgets", "description": "Conky Like widgets but with few customisation options\n- Drag and Drop Support\n- Added Non customisable Calendar\n- Added Net Speed Widget\n- Highly Customisable Ram, Cpu, Clock and Net Speed Widget\nFor any issues,bugs and suggestions plz open an issue on Github", "link": "https://extensions.gnome.org/extension/5530/circular-widgets/", "shell_version_map": {
     "43": {"version": "6", "sha256": "1cbgjlyfh8y741aswps61qyi3cz6vlv6wn1isbv47x7p40rhfxy3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmt5IExpa2Ugd2lkZ2V0cyBidXQgd2l0aCBmZXcgY3VzdG9taXNhdGlvbiBvcHRpb25zXG4tIERyYWcgYW5kIERyb3AgU3VwcG9ydFxuLSBBZGRlZCBOb24gY3VzdG9taXNhYmxlIENhbGVuZGFyXG4tIEFkZGVkIE5ldCBTcGVlZCBXaWRnZXRcbi0gSGlnaGx5IEN1c3RvbWlzYWJsZSBSYW0sIENwdSwgQ2xvY2sgYW5kIE5ldCBTcGVlZCBXaWRnZXRcbkZvciBhbnkgaXNzdWVzLGJ1Z3MgYW5kIHN1Z2dlc3Rpb25zIHBseiBvcGVuIGFuIGlzc3VlIG9uIEdpdGh1YiIsCiAgIm5hbWUiOiAiQ2lyY3VsYXIgV2lkZ2V0cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jaXJjdWxhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYWloYW4yMDAwL2NpcmN1bGFyLXdpZGdldHMiLAogICJ1dWlkIjogImNpcmN1bGFyQHdpZGdldHMuaW8iLAogICJ2ZXJzaW9uIjogNgp9"}
@@ -5645,7 +5720,7 @@
     "43": {"version": "6", "sha256": "1cfmqp524m3zkw5vj6msr9pjjwwwys3mcvjipfdl875lkwdb3xg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0aGUgdXNlciB0byBjaG9vc2UgYmV0d2VlbiA5IEN1c3RvbSBBY2NlbnQgQ29sb3JzLiBUaGUgQWNjZW50IENvbG9yIGNhbiBiZSBhcHBsaWVkIHRvIEdUSzQvR1RLMyBhcHBzIGFuZCB0aGUgR25vbWUgU2hlbGwuIiwKICAibmFtZSI6ICJDdXN0b20gQWNjZW50IENvbG9ycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVtaXNrcC9jdXN0b20tYWNjZW50LWNvbG9ycyIsCiAgInV1aWQiOiAiY3VzdG9tLWFjY2VudC1jb2xvcnNAZGVtaXNrcCIsCiAgInZlcnNpb24iOiA2Cn0="},
     "44": {"version": "6", "sha256": "1cfmqp524m3zkw5vj6msr9pjjwwwys3mcvjipfdl875lkwdb3xg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0aGUgdXNlciB0byBjaG9vc2UgYmV0d2VlbiA5IEN1c3RvbSBBY2NlbnQgQ29sb3JzLiBUaGUgQWNjZW50IENvbG9yIGNhbiBiZSBhcHBsaWVkIHRvIEdUSzQvR1RLMyBhcHBzIGFuZCB0aGUgR25vbWUgU2hlbGwuIiwKICAibmFtZSI6ICJDdXN0b20gQWNjZW50IENvbG9ycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVtaXNrcC9jdXN0b20tYWNjZW50LWNvbG9ycyIsCiAgInV1aWQiOiAiY3VzdG9tLWFjY2VudC1jb2xvcnNAZGVtaXNrcCIsCiAgInZlcnNpb24iOiA2Cn0="},
     "45": {"version": "9", "sha256": "1bwz5bib4ancd0pq1vf8qbwm04p9n61lznp51izfcnf8nag5s0fv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0aGUgdXNlciB0byBjaG9vc2UgYmV0d2VlbiA5IEN1c3RvbSBBY2NlbnQgQ29sb3JzLiBUaGUgQWNjZW50IENvbG9yIGNhbiBiZSBhcHBsaWVkIHRvIEdUSzQvR1RLMyBhcHBzIGFuZCB0aGUgR25vbWUgU2hlbGwuIiwKICAibmFtZSI6ICJDdXN0b20gQWNjZW50IENvbG9ycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kZW1pc2twL2N1c3RvbS1hY2NlbnQtY29sb3JzIiwKICAidXVpZCI6ICJjdXN0b20tYWNjZW50LWNvbG9yc0BkZW1pc2twIiwKICAidmVyc2lvbiI6IDkKfQ=="},
-    "46": {"version": "10", "sha256": "0wbsqffa4v0pfrw5qw3aanrhqqv8a2sjnq364ch6p5j728nxq60s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgRXh0ZW5zaW9uIHRoYXQgcHJvdmlkZXMgNyBDdXN0b20gQWNjZW50IENvbG9ycy4gVGhlIHNlbGVjdGVkIEFjY2VudCBDb2xvciBjYW4gYmUgYXBwbGllZCB0byBHVEs0L0dUSzMgYXBwcyBhbmQgdGhlIEdub21lIFNoZWxsLiIsCiAgIm5hbWUiOiAiQ3VzdG9tIEFjY2VudCBDb2xvcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVtaXNrcC9jdXN0b20tYWNjZW50LWNvbG9ycyIsCiAgInV1aWQiOiAiY3VzdG9tLWFjY2VudC1jb2xvcnNAZGVtaXNrcCIsCiAgInZlcnNpb24iOiAxMAp9"}
+    "46": {"version": "11", "sha256": "1b165f64j6hwz33dypfy47niyzs5mjmlsf5zkh78h5zh21pa35br", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgRXh0ZW5zaW9uIHRoYXQgcHJvdmlkZXMgNyBDdXN0b20gQWNjZW50IENvbG9ycy4gVGhlIHNlbGVjdGVkIEFjY2VudCBDb2xvciBjYW4gYmUgYXBwbGllZCB0byBHVEs0L0dUSzMgYXBwcyBhbmQgdGhlIEdub21lIFNoZWxsLiIsCiAgIm5hbWUiOiAiQ3VzdG9tIEFjY2VudCBDb2xvcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVtaXNrcC9jdXN0b20tYWNjZW50LWNvbG9ycyIsCiAgInV1aWQiOiAiY3VzdG9tLWFjY2VudC1jb2xvcnNAZGVtaXNrcCIsCiAgInZlcnNpb24iOiAxMQp9"}
   }}
 , {"uuid": "dynamic-calendar-and-clocks-icons@fcusr.github.com", "name": "Dynamic Calendar, Clocks and Weather Icons", "pname": "dynamic-calendar-and-clocks-icons", "description": "Let Calendar, Clocks and Weather icons show current date, time and weather.", "link": "https://extensions.gnome.org/extension/5550/dynamic-calendar-and-clocks-icons/", "shell_version_map": {
     "43": {"version": "7", "sha256": "06z2r443n2c17s6xc4aahchyqvw765gi19pl8v9pb0w1gyywnlhz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldCBDYWxlbmRhciwgQ2xvY2tzIGFuZCBXZWF0aGVyIGljb25zIHNob3cgY3VycmVudCBkYXRlLCB0aW1lIGFuZCB3ZWF0aGVyLiIsCiAgIm5hbWUiOiAiRHluYW1pYyBDYWxlbmRhciwgQ2xvY2tzIGFuZCBXZWF0aGVyIEljb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mY3Vzci9keW5hbWljLWNhbGVuZGFyLWFuZC1jbG9ja3MtaWNvbnMiLAogICJ1dWlkIjogImR5bmFtaWMtY2FsZW5kYXItYW5kLWNsb2Nrcy1pY29uc0BmY3Vzci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
@@ -5682,7 +5757,7 @@
     "45": {"version": "19", "sha256": "0r9yg02rzfgbhm7mgahpdi7x28lix59d5kyd65ibmydyl94chb5p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgc3dpdGNoIGJldHdlZW4gcG93ZXIgcHJvZmlsZXMgYmFzZWQgb24gcG93ZXIgc3VwcGx5IGFuZCBwZXJjZW50YWdlLiIsCiAgImdldHRleHQtZG9tYWluIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBvd2VyLXByb2ZpbGUtc3dpdGNoZXIiLAogICJuYW1lIjogIlBvd2VyIFByb2ZpbGUgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucG93ZXItcHJvZmlsZS1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWxpYXBhc3F1YWxpL3Bvd2VyLXByb2ZpbGUtc3dpdGNoZXIiLAogICJ1dWlkIjogInBvd2VyLXByb2ZpbGUtc3dpdGNoZXJAZWxpYXBhc3F1YWxpLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxOQp9"},
     "46": {"version": "19", "sha256": "0r9yg02rzfgbhm7mgahpdi7x28lix59d5kyd65ibmydyl94chb5p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgc3dpdGNoIGJldHdlZW4gcG93ZXIgcHJvZmlsZXMgYmFzZWQgb24gcG93ZXIgc3VwcGx5IGFuZCBwZXJjZW50YWdlLiIsCiAgImdldHRleHQtZG9tYWluIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBvd2VyLXByb2ZpbGUtc3dpdGNoZXIiLAogICJuYW1lIjogIlBvd2VyIFByb2ZpbGUgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucG93ZXItcHJvZmlsZS1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWxpYXBhc3F1YWxpL3Bvd2VyLXByb2ZpbGUtc3dpdGNoZXIiLAogICJ1dWlkIjogInBvd2VyLXByb2ZpbGUtc3dpdGNoZXJAZWxpYXBhc3F1YWxpLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxOQp9"}
   }}
-, {"uuid": "colorblind-filters@G-dH.github.com", "name": "Colorblind Filters", "pname": "colorblind-filters", "description": "Color filters are designed to assist both color-blind users and developers. The menu offers correction filters as well as simulation filters that demonstrate how color-blind individuals perceive colors. Included are filters for Protanopia, Deuteranopia, and Tritanopia, with adjustable strength. Additionally, filters for desaturation, channel mix, and lightness and color inversions are available.\n\nPrimary mouse button click on the panel button toggles active filter, secondary click opens configuration menu, middle click toggles high-contrast correction if available and scroll switches filters.\n\nDiscussions and bug reports on the GitHub page linked below, please.", "link": "https://extensions.gnome.org/extension/5589/colorblind-filters/", "shell_version_map": {
+, {"uuid": "colorblind-filters@G-dH.github.com", "name": "Colorblind Filters", "pname": "colorblind-filters", "description": "Color filters are designed to assist both color-blind users and developers.\n\nThe menu offers correction filters as well as simulation filters that demonstrate how color-blind individuals perceive colors. Included are filters for Protanopia, Deuteranopia, and Tritanopia, with adjustable strength. Additionally, filters for desaturation, channel mix, and lightness and color inversions are available.\n\nPrimary mouse button click on the panel button toggles active filter, secondary click opens configuration menu, middle click toggles high-contrast correction if available and scroll switches filters.\n\nDiscussions and bug reports on the GitHub page linked below, please.", "link": "https://extensions.gnome.org/extension/5589/colorblind-filters/", "shell_version_map": {
     "38": {"version": "17", "sha256": "0lgdx717xzm8fhszfvx9hqjx1kjkzlx8hs5jwrzrslif32vwjsbr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbG9yIGZpbHRlcnMgdGhhdCBzaG91bGQgaGVscCBjb2xvci1ibGluZCB1c2VycyBhbmQgYWxzbyBkZXZlbG9wZXJzLlxuVGhlIG1lbnUgaW5jbHVkZXMgY29ycmVjdGlvbiBmaWx0ZXJzIGFuZCBhbHNvIHNpbXVsYXRpb24gZmlsdGVycyB0aGF0IGNhbiBzaG93IHlvdSB3aGF0IGNvbG9yLWJsaW5kIHBlb3BsZSBzZWUuIEluY2x1ZGVkIGFyZSBmaWx0ZXJzIGZvciBQcm90YW5vcGlhLCBEZXV0ZXJhbm9waWEgYW5kIFRyaXRhbm9waWEsIGZpbHRlciBzdHJlbmd0aCBpcyBhZGp1c3RhYmxlLiBBdmFpbGFibGUgYXJlIGFsc28gZmlsdGVycyBmb3IgZGVzYXR1cmF0aW9uLCBjaGFubmVsIG1peCwgYW5kIGxpZ2h0bmVzcyBhbmQgY29sb3IgaW52ZXJzaW9ucy5cblxuUHJpbWFyeSBtb3VzZSBidXR0b24gY2xpY2sgb24gdGhlIHBhbmVsIGJ1dHRvbiB0b2dnbGVzIGFjdGl2ZSBmaWx0ZXIsIHNlY29uZGFyeSBjbGljayBvcGVucyBjb25maWd1cmF0aW9uIG1lbnUsIG1pZGRsZSBjbGljayB0b2dnbGVzIGhpZ2gtY29udHJhc3QgY29ycmVjdGlvbiBpZiBhdmFpbGFibGUgYW5kIHNjcm9sbCBzd2l0Y2hlcyBmaWx0ZXJzLlxuXG5EaXNjdXNzaW9ucyBhbmQgYnVnIHJlcG9ydHMgb24gdGhlIEdpdEh1YiBwYWdlIGxpbmtlZCBiZWxvdywgcGxlYXNlLiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbG9yYmxpbmQtZmlsdGVycyIsCiAgIm5hbWUiOiAiQ29sb3JibGluZCBGaWx0ZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbG9yYmxpbmQtZmlsdGVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9nbm9tZS1jb2xvcmJsaW5kLWZpbHRlcnMiLAogICJ1dWlkIjogImNvbG9yYmxpbmQtZmlsdGVyc0BHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
     "40": {"version": "17", "sha256": "0lgdx717xzm8fhszfvx9hqjx1kjkzlx8hs5jwrzrslif32vwjsbr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbG9yIGZpbHRlcnMgdGhhdCBzaG91bGQgaGVscCBjb2xvci1ibGluZCB1c2VycyBhbmQgYWxzbyBkZXZlbG9wZXJzLlxuVGhlIG1lbnUgaW5jbHVkZXMgY29ycmVjdGlvbiBmaWx0ZXJzIGFuZCBhbHNvIHNpbXVsYXRpb24gZmlsdGVycyB0aGF0IGNhbiBzaG93IHlvdSB3aGF0IGNvbG9yLWJsaW5kIHBlb3BsZSBzZWUuIEluY2x1ZGVkIGFyZSBmaWx0ZXJzIGZvciBQcm90YW5vcGlhLCBEZXV0ZXJhbm9waWEgYW5kIFRyaXRhbm9waWEsIGZpbHRlciBzdHJlbmd0aCBpcyBhZGp1c3RhYmxlLiBBdmFpbGFibGUgYXJlIGFsc28gZmlsdGVycyBmb3IgZGVzYXR1cmF0aW9uLCBjaGFubmVsIG1peCwgYW5kIGxpZ2h0bmVzcyBhbmQgY29sb3IgaW52ZXJzaW9ucy5cblxuUHJpbWFyeSBtb3VzZSBidXR0b24gY2xpY2sgb24gdGhlIHBhbmVsIGJ1dHRvbiB0b2dnbGVzIGFjdGl2ZSBmaWx0ZXIsIHNlY29uZGFyeSBjbGljayBvcGVucyBjb25maWd1cmF0aW9uIG1lbnUsIG1pZGRsZSBjbGljayB0b2dnbGVzIGhpZ2gtY29udHJhc3QgY29ycmVjdGlvbiBpZiBhdmFpbGFibGUgYW5kIHNjcm9sbCBzd2l0Y2hlcyBmaWx0ZXJzLlxuXG5EaXNjdXNzaW9ucyBhbmQgYnVnIHJlcG9ydHMgb24gdGhlIEdpdEh1YiBwYWdlIGxpbmtlZCBiZWxvdywgcGxlYXNlLiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbG9yYmxpbmQtZmlsdGVycyIsCiAgIm5hbWUiOiAiQ29sb3JibGluZCBGaWx0ZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbG9yYmxpbmQtZmlsdGVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9nbm9tZS1jb2xvcmJsaW5kLWZpbHRlcnMiLAogICJ1dWlkIjogImNvbG9yYmxpbmQtZmlsdGVyc0BHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
     "41": {"version": "17", "sha256": "0lgdx717xzm8fhszfvx9hqjx1kjkzlx8hs5jwrzrslif32vwjsbr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbG9yIGZpbHRlcnMgdGhhdCBzaG91bGQgaGVscCBjb2xvci1ibGluZCB1c2VycyBhbmQgYWxzbyBkZXZlbG9wZXJzLlxuVGhlIG1lbnUgaW5jbHVkZXMgY29ycmVjdGlvbiBmaWx0ZXJzIGFuZCBhbHNvIHNpbXVsYXRpb24gZmlsdGVycyB0aGF0IGNhbiBzaG93IHlvdSB3aGF0IGNvbG9yLWJsaW5kIHBlb3BsZSBzZWUuIEluY2x1ZGVkIGFyZSBmaWx0ZXJzIGZvciBQcm90YW5vcGlhLCBEZXV0ZXJhbm9waWEgYW5kIFRyaXRhbm9waWEsIGZpbHRlciBzdHJlbmd0aCBpcyBhZGp1c3RhYmxlLiBBdmFpbGFibGUgYXJlIGFsc28gZmlsdGVycyBmb3IgZGVzYXR1cmF0aW9uLCBjaGFubmVsIG1peCwgYW5kIGxpZ2h0bmVzcyBhbmQgY29sb3IgaW52ZXJzaW9ucy5cblxuUHJpbWFyeSBtb3VzZSBidXR0b24gY2xpY2sgb24gdGhlIHBhbmVsIGJ1dHRvbiB0b2dnbGVzIGFjdGl2ZSBmaWx0ZXIsIHNlY29uZGFyeSBjbGljayBvcGVucyBjb25maWd1cmF0aW9uIG1lbnUsIG1pZGRsZSBjbGljayB0b2dnbGVzIGhpZ2gtY29udHJhc3QgY29ycmVjdGlvbiBpZiBhdmFpbGFibGUgYW5kIHNjcm9sbCBzd2l0Y2hlcyBmaWx0ZXJzLlxuXG5EaXNjdXNzaW9ucyBhbmQgYnVnIHJlcG9ydHMgb24gdGhlIEdpdEh1YiBwYWdlIGxpbmtlZCBiZWxvdywgcGxlYXNlLiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbG9yYmxpbmQtZmlsdGVycyIsCiAgIm5hbWUiOiAiQ29sb3JibGluZCBGaWx0ZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbG9yYmxpbmQtZmlsdGVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9nbm9tZS1jb2xvcmJsaW5kLWZpbHRlcnMiLAogICJ1dWlkIjogImNvbG9yYmxpbmQtZmlsdGVyc0BHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
@@ -5766,7 +5841,8 @@
     "42": {"version": "3", "sha256": "06641gq1ci4mmnsnrps1bb3372hhq6bhg4sjh31pcpdlla17dg01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdHJhbnNwYXJlbmN5IGVmZmVjdHMgKGluY2x1ZGluZyBub3RpZmljYXRpb24gdHJheSkgYW5kIHNsaW1zIHRoZSB0b3AgYmFyIGZvciBtb3JlIHNwYWNlLiBTZWUgZ2l0aHViIHBhZ2UgZm9yIG1vcmUgc2NyZWVuc2hvdHMuIiwKICAibmFtZSI6ICJDb21wYWN0IFRvcCBCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21ldGVoYW4tYXJzbGFuL2dub21lLWNvbXBhY3QtdG9wLWJhciIsCiAgInV1aWQiOiAiZ25vbWUtY29tcGFjdC10b3AtYmFyQG1ldGVoYW4tYXJzbGFuLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="},
     "43": {"version": "3", "sha256": "06641gq1ci4mmnsnrps1bb3372hhq6bhg4sjh31pcpdlla17dg01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdHJhbnNwYXJlbmN5IGVmZmVjdHMgKGluY2x1ZGluZyBub3RpZmljYXRpb24gdHJheSkgYW5kIHNsaW1zIHRoZSB0b3AgYmFyIGZvciBtb3JlIHNwYWNlLiBTZWUgZ2l0aHViIHBhZ2UgZm9yIG1vcmUgc2NyZWVuc2hvdHMuIiwKICAibmFtZSI6ICJDb21wYWN0IFRvcCBCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21ldGVoYW4tYXJzbGFuL2dub21lLWNvbXBhY3QtdG9wLWJhciIsCiAgInV1aWQiOiAiZ25vbWUtY29tcGFjdC10b3AtYmFyQG1ldGVoYW4tYXJzbGFuLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="},
     "44": {"version": "3", "sha256": "06641gq1ci4mmnsnrps1bb3372hhq6bhg4sjh31pcpdlla17dg01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdHJhbnNwYXJlbmN5IGVmZmVjdHMgKGluY2x1ZGluZyBub3RpZmljYXRpb24gdHJheSkgYW5kIHNsaW1zIHRoZSB0b3AgYmFyIGZvciBtb3JlIHNwYWNlLiBTZWUgZ2l0aHViIHBhZ2UgZm9yIG1vcmUgc2NyZWVuc2hvdHMuIiwKICAibmFtZSI6ICJDb21wYWN0IFRvcCBCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21ldGVoYW4tYXJzbGFuL2dub21lLWNvbXBhY3QtdG9wLWJhciIsCiAgInV1aWQiOiAiZ25vbWUtY29tcGFjdC10b3AtYmFyQG1ldGVoYW4tYXJzbGFuLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="},
-    "45": {"version": "6", "sha256": "1hzr99sagcpyaawwwy1rsjn7qywrxl3a6w4vjr5vdqpdvrv0plkc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdHJhbnNwYXJlbmN5IGVmZmVjdHMgKGluY2x1ZGluZyBub3RpZmljYXRpb24gdHJheSkgYW5kIHNsaW1zIHRoZSB0b3AgYmFyIGZvciBtb3JlIHNwYWNlLiBTZWUgZ2l0aHViIHBhZ2UgZm9yIG1vcmUgc2NyZWVuc2hvdHMuIiwKICAibmFtZSI6ICJDb21wYWN0IFRvcCBCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWV0ZWhhbi1hcnNsYW4vZ25vbWUtY29tcGFjdC10b3AtYmFyIiwKICAidXVpZCI6ICJnbm9tZS1jb21wYWN0LXRvcC1iYXJAbWV0ZWhhbi1hcnNsYW4uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}
+    "45": {"version": "6", "sha256": "1hzr99sagcpyaawwwy1rsjn7qywrxl3a6w4vjr5vdqpdvrv0plkc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdHJhbnNwYXJlbmN5IGVmZmVjdHMgKGluY2x1ZGluZyBub3RpZmljYXRpb24gdHJheSkgYW5kIHNsaW1zIHRoZSB0b3AgYmFyIGZvciBtb3JlIHNwYWNlLiBTZWUgZ2l0aHViIHBhZ2UgZm9yIG1vcmUgc2NyZWVuc2hvdHMuIiwKICAibmFtZSI6ICJDb21wYWN0IFRvcCBCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWV0ZWhhbi1hcnNsYW4vZ25vbWUtY29tcGFjdC10b3AtYmFyIiwKICAidXVpZCI6ICJnbm9tZS1jb21wYWN0LXRvcC1iYXJAbWV0ZWhhbi1hcnNsYW4uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="},
+    "46": {"version": "7", "sha256": "0k6i6al2nbm9zv2sbmggamkg7lkalpjd76wskzfq8gyx6ah08xnq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdHJhbnNwYXJlbmN5IGVmZmVjdHMgKGluY2x1ZGluZyBub3RpZmljYXRpb24gdHJheSkgYW5kIHNsaW1zIHRoZSB0b3AgYmFyIGZvciBtb3JlIHNwYWNlLiBTZWUgZ2l0aHViIHBhZ2UgZm9yIG1vcmUgc2NyZWVuc2hvdHMuIiwKICAibmFtZSI6ICJDb21wYWN0IFRvcCBCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWV0ZWhhbi1hcnNsYW4vZ25vbWUtY29tcGFjdC10b3AtYmFyIiwKICAidXVpZCI6ICJnbm9tZS1jb21wYWN0LXRvcC1iYXJAbWV0ZWhhbi1hcnNsYW4uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDcKfQ=="}
   }}
 , {"uuid": "persistent-notifications@AlexeyReshetnyak", "name": "Persistent Notifications", "pname": "persistent-notifications", "description": "Never hide a new notification, except if you close it.", "link": "https://extensions.gnome.org/extension/5672/persistent-notifications/", "shell_version_map": {
     "40": {"version": "1", "sha256": "0y0vk8dva14yfbgdss00sl42wdwbf5mhpc9vhapbl773fdr5l2c7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldmVyIGhpZGUgYSBuZXcgbm90aWZpY2F0aW9uLCBleGNlcHQgaWYgeW91IGNsb3NlIGl0LiIsCiAgIm5hbWUiOiAiUGVyc2lzdGVudCBOb3RpZmljYXRpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWxleGV5UmVzaGV0bnlhay9wZXJzaXN0ZW50LW5vdGlmaWNhdGlvbnMiLAogICJ1dWlkIjogInBlcnNpc3RlbnQtbm90aWZpY2F0aW9uc0BBbGV4ZXlSZXNoZXRueWFrIiwKICAidmVyc2lvbiI6IDEKfQ=="},
@@ -5830,7 +5906,9 @@
     "43": {"version": "5", "sha256": "07r9vspq35s632j0pzywrhb8islb9fq49dv0a1s6yvp23d7bzni7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RhcnQgaW50byBmaXJtd2FyZSBzZXR0aW5ncyBkaXJlY3RseSBmcm9tIE9TXG5cbkhvbGQgU2hpZnQgYW5kIGNsaWNrIHRoZSBwb3dlciBtZW51IGJ1dHRvbiB0byB0cmlnZ2VyIHJlc3RhcnQgaW50byBmaXJtd2FyZSBzZXR0aW5ncy5cblxuQW55IHN1Z2dlc3Rpb24gaXMgYXBwcmVjaWF0ZWQgb24gR2l0SHViISIsCiAgIm5hbWUiOiAiT25lLUNsaWNrIEJJT1MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbTFuaWNydXNoZXIvb25lLWNsaWNrLWJpb3MiLAogICJ1dWlkIjogIm9uZWNsaWNrYmlvc0BzYW8uc3R1ZGlvIiwKICAidmVyc2lvbiI6IDUKfQ=="}
   }}
 , {"uuid": "auto-brightness-toggle@sao.studio", "name": "Auto Brightness Toggle", "pname": "auto-brightness-toggle", "description": "Toggle auto brightness in quick settings", "link": "https://extensions.gnome.org/extension/5736/auto-brightness-toggle/", "shell_version_map": {
-    "43": {"version": "2", "sha256": "143v91wf8ymcnmibg36m3zn08h2asmyks9s5gws7hlvmamfmlx33", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBhdXRvIGJyaWdodG5lc3MgaW4gcXVpY2sgc2V0dGluZ3MiLAogICJuYW1lIjogIkF1dG8gQnJpZ2h0bmVzcyBUb2dnbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbTFuaWNydXNoZXIvYXV0by1icmlnaHRuZXNzLXRvZ2dsZSIsCiAgInV1aWQiOiAiYXV0by1icmlnaHRuZXNzLXRvZ2dsZUBzYW8uc3R1ZGlvIiwKICAidmVyc2lvbiI6IDIKfQ=="}
+    "43": {"version": "2", "sha256": "143v91wf8ymcnmibg36m3zn08h2asmyks9s5gws7hlvmamfmlx33", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBhdXRvIGJyaWdodG5lc3MgaW4gcXVpY2sgc2V0dGluZ3MiLAogICJuYW1lIjogIkF1dG8gQnJpZ2h0bmVzcyBUb2dnbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbTFuaWNydXNoZXIvYXV0by1icmlnaHRuZXNzLXRvZ2dsZSIsCiAgInV1aWQiOiAiYXV0by1icmlnaHRuZXNzLXRvZ2dsZUBzYW8uc3R1ZGlvIiwKICAidmVyc2lvbiI6IDIKfQ=="},
+    "45": {"version": "4", "sha256": "1zqjdyqjdhf4pqpr11x6il63ly02558949gvqszbs217m2hnrb4d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBhdXRvIGJyaWdodG5lc3MgaW4gcXVpY2sgc2V0dGluZ3MiLAogICJuYW1lIjogIkF1dG8gQnJpZ2h0bmVzcyBUb2dnbGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXV0by1icmlnaHRuZXNzLXRvZ2dsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbTFuaWNydXNoZXIvYXV0by1icmlnaHRuZXNzLXRvZ2dsZSIsCiAgInV1aWQiOiAiYXV0by1icmlnaHRuZXNzLXRvZ2dsZUBzYW8uc3R1ZGlvIiwKICAidmVyc2lvbiI6IDQKfQ=="},
+    "46": {"version": "4", "sha256": "1zqjdyqjdhf4pqpr11x6il63ly02558949gvqszbs217m2hnrb4d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBhdXRvIGJyaWdodG5lc3MgaW4gcXVpY2sgc2V0dGluZ3MiLAogICJuYW1lIjogIkF1dG8gQnJpZ2h0bmVzcyBUb2dnbGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXV0by1icmlnaHRuZXNzLXRvZ2dsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbTFuaWNydXNoZXIvYXV0by1icmlnaHRuZXNzLXRvZ2dsZSIsCiAgInV1aWQiOiAiYXV0by1icmlnaHRuZXNzLXRvZ2dsZUBzYW8uc3R1ZGlvIiwKICAidmVyc2lvbiI6IDQKfQ=="}
   }}
 , {"uuid": "Finans_Monitor@taylantatli_github", "name": "Finans Monitörü", "pname": "finans-monitoru", "description": "An Extension to track gold and foreign exchange prices in Turkey in real time with finans.truncgil.com API.", "link": "https://extensions.gnome.org/extension/5739/finans-monitoru/", "shell_version_map": {
     "43": {"version": "2", "sha256": "1mn38k1wqdp21l2x0aipjc9s4dx8gkkx693n2kshn2gxn0w4nair", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRhbmdlcm91cyI6IGZhbHNlLAogICJkZXNjcmlwdGlvbiI6ICJBbiBFeHRlbnNpb24gdG8gdHJhY2sgZ29sZCBhbmQgZm9yZWlnbiBleGNoYW5nZSBwcmljZXMgaW4gVHVya2V5IGluIHJlYWwgdGltZSB3aXRoIGZpbmFucy50cnVuY2dpbC5jb20gQVBJLiIsCiAgIm5hbWUiOiAiRmluYW5zIE1vbml0XHUwMGY2clx1MDBmYyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5maW5hbnMtbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9UYXlsYW5UYXRsaS9maW5hbnNtb25pdG9ydSIsCiAgInV1aWQiOiAiRmluYW5zX01vbml0b3JAdGF5bGFudGF0bGlfZ2l0aHViIiwKICAidmVyc2lvbiI6IDIKfQ=="}
@@ -5869,7 +5947,8 @@
   }}
 , {"uuid": "desaturated-tray-icons@cr1337.github.com", "name": "Desaturated Tray Icons", "pname": "desaturated-tray-icons", "description": "Display all tray icons in grayscale", "link": "https://extensions.gnome.org/extension/5766/desaturated-tray-icons/", "shell_version_map": {
     "42": {"version": "2", "sha256": "1v27biy9psxiv9fkgp83p9rqbwid2rqdwdc6f5rl4mnhj0fn8p8k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYWxsIHRyYXkgaWNvbnMgaW4gZ3JheXNjYWxlIiwKICAibmFtZSI6ICJEZXNhdHVyYXRlZCBUcmF5IEljb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NSMTMzNy9kZXNhdHVyYXRlZC10cmF5LWljb25zIiwKICAidXVpZCI6ICJkZXNhdHVyYXRlZC10cmF5LWljb25zQGNyMTMzNy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
-    "45": {"version": "3", "sha256": "1p7737pmrlvj7wnw0w798s92s8m8g4l1ljqlyvsj60nxyb39rmqv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYWxsIHRyYXkgaWNvbnMgaW4gZ3JheXNjYWxlIiwKICAibmFtZSI6ICJEZXNhdHVyYXRlZCBUcmF5IEljb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NSMTMzNy9kZXNhdHVyYXRlZC10cmF5LWljb25zIiwKICAidXVpZCI6ICJkZXNhdHVyYXRlZC10cmF5LWljb25zQGNyMTMzNy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}
+    "45": {"version": "3", "sha256": "1p7737pmrlvj7wnw0w798s92s8m8g4l1ljqlyvsj60nxyb39rmqv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYWxsIHRyYXkgaWNvbnMgaW4gZ3JheXNjYWxlIiwKICAibmFtZSI6ICJEZXNhdHVyYXRlZCBUcmF5IEljb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NSMTMzNy9kZXNhdHVyYXRlZC10cmF5LWljb25zIiwKICAidXVpZCI6ICJkZXNhdHVyYXRlZC10cmF5LWljb25zQGNyMTMzNy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="},
+    "46": {"version": "4", "sha256": "0sl8rdkrzgp680wdiydng3lrvh6x78qxn0nwq3pbaq6qnkwmgj08", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYWxsIHRyYXkgaWNvbnMgaW4gZ3JheXNjYWxlIiwKICAibmFtZSI6ICJEZXNhdHVyYXRlZCBUcmF5IEljb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NSMTMzNy9kZXNhdHVyYXRlZC10cmF5LWljb25zIiwKICAidXVpZCI6ICJkZXNhdHVyYXRlZC10cmF5LWljb25zQGNyMTMzNy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}
   }}
 , {"uuid": "hassleless-overview-search@mechtifs", "name": "Hassleless Overview Search", "pname": "hassleless-overview-search", "description": "This extension reverts the ibus input source to default when entering the overview, and restores it after exiting, which solves the conflict between the ibus popup and the \"Type to search\" feature.", "link": "https://extensions.gnome.org/extension/5769/hassleless-overview-search/", "shell_version_map": {
     "42": {"version": "3", "sha256": "1m1lhgyf70vidzrrcn3nyiis6dd3gb3hr6n578hbqr81kzc1hvmq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHJldmVydHMgdGhlIGlidXMgaW5wdXQgc291cmNlIHRvIGRlZmF1bHQgd2hlbiBlbnRlcmluZyB0aGUgb3ZlcnZpZXcsIGFuZCByZXN0b3JlcyBpdCBhZnRlciBleGl0aW5nLCB3aGljaCBzb2x2ZXMgdGhlIGNvbmZsaWN0IGJldHdlZW4gdGhlIGlidXMgcG9wdXAgYW5kIHRoZSBcIlR5cGUgdG8gc2VhcmNoXCIgZmVhdHVyZS4iLAogICJuYW1lIjogIkhhc3NsZWxlc3MgT3ZlcnZpZXcgU2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVjaHRpZnMvaGFzc2xlbGVzcy1vdmVydmlldy1zZWFyY2giLAogICJ1dWlkIjogImhhc3NsZWxlc3Mtb3ZlcnZpZXctc2VhcmNoQG1lY2h0aWZzIiwKICAidmVyc2lvbiI6IDMKfQ=="},
@@ -5898,8 +5977,8 @@
     "42": {"version": "4", "sha256": "0p6n5rmvd4iibzqrak1azq60yf708i1dh4db0r3a5br22gzkvbaf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gbWVhc3VyZSB0aW1lLiBQcmltYXJ5IGJ1dHRvbiBjbGljayBzdGFydHMvcGF1c2VzIHRoZSB3YXRjaCwgc2Vjb25kYXJ5IGJ1dHRvbiByZXNldHMgaXQuXG5BdXRvbWF0aWNhbGx5IHBhdXNlcyB3aGVuIHRoZSBzY3JlZW4gaXMgbG9ja2VkLiIsCiAgIm5hbWUiOiAiU3RvcHdhdGNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGlha3NlaXovc3RvcHdhdGNoIiwKICAidXVpZCI6ICJzdG9wd2F0Y2hAYWxpYWtzZWl6LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
     "43": {"version": "4", "sha256": "0p6n5rmvd4iibzqrak1azq60yf708i1dh4db0r3a5br22gzkvbaf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gbWVhc3VyZSB0aW1lLiBQcmltYXJ5IGJ1dHRvbiBjbGljayBzdGFydHMvcGF1c2VzIHRoZSB3YXRjaCwgc2Vjb25kYXJ5IGJ1dHRvbiByZXNldHMgaXQuXG5BdXRvbWF0aWNhbGx5IHBhdXNlcyB3aGVuIHRoZSBzY3JlZW4gaXMgbG9ja2VkLiIsCiAgIm5hbWUiOiAiU3RvcHdhdGNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGlha3NlaXovc3RvcHdhdGNoIiwKICAidXVpZCI6ICJzdG9wd2F0Y2hAYWxpYWtzZWl6LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
     "44": {"version": "4", "sha256": "0p6n5rmvd4iibzqrak1azq60yf708i1dh4db0r3a5br22gzkvbaf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gbWVhc3VyZSB0aW1lLiBQcmltYXJ5IGJ1dHRvbiBjbGljayBzdGFydHMvcGF1c2VzIHRoZSB3YXRjaCwgc2Vjb25kYXJ5IGJ1dHRvbiByZXNldHMgaXQuXG5BdXRvbWF0aWNhbGx5IHBhdXNlcyB3aGVuIHRoZSBzY3JlZW4gaXMgbG9ja2VkLiIsCiAgIm5hbWUiOiAiU3RvcHdhdGNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGlha3NlaXovc3RvcHdhdGNoIiwKICAidXVpZCI6ICJzdG9wd2F0Y2hAYWxpYWtzZWl6LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
-    "45": {"version": "8", "sha256": "0dqqkiqzhy1463vwg46a98fl9q32994rl892533x5kh7cxz6irly", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gbWVhc3VyZSB0aW1lLiBQcmltYXJ5IGJ1dHRvbiBjbGljayBzdGFydHMvcGF1c2VzIHRoZSB3YXRjaCwgc2Vjb25kYXJ5IGJ1dHRvbiByZXNldHMgaXQuIiwKICAibmFtZSI6ICJTdG9wd2F0Y2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsaWFrc2Vpei9zdG9wd2F0Y2giLAogICJ1dWlkIjogInN0b3B3YXRjaEBhbGlha3NlaXouZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="},
-    "46": {"version": "8", "sha256": "0dqqkiqzhy1463vwg46a98fl9q32994rl892533x5kh7cxz6irly", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gbWVhc3VyZSB0aW1lLiBQcmltYXJ5IGJ1dHRvbiBjbGljayBzdGFydHMvcGF1c2VzIHRoZSB3YXRjaCwgc2Vjb25kYXJ5IGJ1dHRvbiByZXNldHMgaXQuIiwKICAibmFtZSI6ICJTdG9wd2F0Y2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsaWFrc2Vpei9zdG9wd2F0Y2giLAogICJ1dWlkIjogInN0b3B3YXRjaEBhbGlha3NlaXouZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}
+    "45": {"version": "9", "sha256": "1fv38k6rh6xvhdrydaif9pybnxidgjhakvwdnxgdsyg5jiwb0f7m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gbWVhc3VyZSB0aW1lLiBQcmltYXJ5IGJ1dHRvbiBjbGljayBzdGFydHMvcGF1c2VzIHRoZSB3YXRjaCwgc2Vjb25kYXJ5IGJ1dHRvbiByZXNldHMgaXQuIiwKICAibmFtZSI6ICJTdG9wd2F0Y2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsaWFrc2Vpei9zdG9wd2F0Y2giLAogICJ1dWlkIjogInN0b3B3YXRjaEBhbGlha3NlaXouZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="},
+    "46": {"version": "9", "sha256": "1fv38k6rh6xvhdrydaif9pybnxidgjhakvwdnxgdsyg5jiwb0f7m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gbWVhc3VyZSB0aW1lLiBQcmltYXJ5IGJ1dHRvbiBjbGljayBzdGFydHMvcGF1c2VzIHRoZSB3YXRjaCwgc2Vjb25kYXJ5IGJ1dHRvbiByZXNldHMgaXQuIiwKICAibmFtZSI6ICJTdG9wd2F0Y2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsaWFrc2Vpei9zdG9wd2F0Y2giLAogICJ1dWlkIjogInN0b3B3YXRjaEBhbGlha3NlaXouZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}
   }}
 , {"uuid": "vbox-applet@buba98", "name": "VirtualBox applet", "pname": "virtualbox-applet", "description": "Provide menu to run VirtualBox machines and switch between running VMs.\nIt provides options for detachable head and headless mode.\nThis is a fork of https://extensions.gnome.org/extension/1415/virtualbox-applet/ extension.", "link": "https://extensions.gnome.org/extension/5799/virtualbox-applet/", "shell_version_map": {
     "38": {"version": "4", "sha256": "0a7gmvn7lp1k89ylk1s5sl4pkzsyjkk99fm5r8khckgrxancsbdf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgbWVudSB0byBydW4gVmlydHVhbEJveCBtYWNoaW5lcyBhbmQgc3dpdGNoIGJldHdlZW4gcnVubmluZyBWTXMuXG5JdCBwcm92aWRlcyBvcHRpb25zIGZvciBkZXRhY2hhYmxlIGhlYWQgYW5kIGhlYWRsZXNzIG1vZGUuXG5UaGlzIGlzIGEgZm9yayBvZiBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xNDE1L3ZpcnR1YWxib3gtYXBwbGV0LyBleHRlbnNpb24uIiwKICAibmFtZSI6ICJWaXJ0dWFsQm94IGFwcGxldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52Ym94LWFwcGxldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQnViYTk4L3Zib3gtYXBwbGV0IiwKICAidXVpZCI6ICJ2Ym94LWFwcGxldEBidWJhOTgiLAogICJ2ZXJzaW9uIjogNAp9"},
@@ -5937,8 +6016,8 @@
     "42": {"version": "6", "sha256": "1mdyigd5dn324ivb5bgypiq4gibjsbzm0rkcml9hi699a609736k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiSGVhZHNldENvbnRyb2wiLAogICJuYW1lIjogIkhlYWRzZXRDb250cm9sIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhlYWRzZXRDb250cm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L2dub21lLXNoZWxsLWV4dGVuc2lvbi1IZWFkc2V0Q29udHJvbCIsCiAgInV1aWQiOiAiSGVhZHNldENvbnRyb2xAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiA2Cn0="},
     "43": {"version": "15", "sha256": "04as61msjqq359r1qm0d7dw7df2bcngx67pmwva8flyvzi62iavi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiSGVhZHNldENvbnRyb2wiLAogICJuYW1lIjogIkhlYWRzZXRDb250cm9sIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhlYWRzZXRDb250cm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLUhlYWRzZXRDb250cm9sIiwKICAidXVpZCI6ICJIZWFkc2V0Q29udHJvbEBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDE1Cn0="},
     "44": {"version": "23", "sha256": "00clk8w8p1sxsqpmwsmlgki2vvx9cjlvnzsrn9j69n1img4vbiwh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiSGVhZHNldENvbnRyb2wiLAogICJuYW1lIjogIkhlYWRzZXRDb250cm9sIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhlYWRzZXRDb250cm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9nbm9tZS1zaGVsbC1leHRlbnNpb24tSGVhZHNldENvbnRyb2wiLAogICJ1dWlkIjogIkhlYWRzZXRDb250cm9sQGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMjMKfQ=="},
-    "45": {"version": "28", "sha256": "0pb004pskirvndwmlhvaz7zv6n32q0fflq47fgill3f48vn57xh8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIkhlYWRzZXRDb250cm9sIiwKICAibmFtZSI6ICJIZWFkc2V0Q29udHJvbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5IZWFkc2V0Q29udHJvbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L2dub21lLXNoZWxsLWV4dGVuc2lvbi1IZWFkc2V0Q29udHJvbCIsCiAgInV1aWQiOiAiSGVhZHNldENvbnRyb2xAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAyOCwKICAidmVyc2lvbi1uYW1lIjogIjQ2LjIiCn0="},
-    "46": {"version": "28", "sha256": "0pb004pskirvndwmlhvaz7zv6n32q0fflq47fgill3f48vn57xh8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIkhlYWRzZXRDb250cm9sIiwKICAibmFtZSI6ICJIZWFkc2V0Q29udHJvbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5IZWFkc2V0Q29udHJvbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L2dub21lLXNoZWxsLWV4dGVuc2lvbi1IZWFkc2V0Q29udHJvbCIsCiAgInV1aWQiOiAiSGVhZHNldENvbnRyb2xAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAyOCwKICAidmVyc2lvbi1uYW1lIjogIjQ2LjIiCn0="}
+    "45": {"version": "30", "sha256": "1d0v1k0g9mizc3k2qyxgl8xmq9w4rzk124vbjq2ifzircbsb6qb2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIkhlYWRzZXRDb250cm9sIiwKICAibmFtZSI6ICJIZWFkc2V0Q29udHJvbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5IZWFkc2V0Q29udHJvbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L2dub21lLXNoZWxsLWV4dGVuc2lvbi1IZWFkc2V0Q29udHJvbCIsCiAgInV1aWQiOiAiSGVhZHNldENvbnRyb2xAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAzMCwKICAidmVyc2lvbi1uYW1lIjogIjQ2LjQiCn0="},
+    "46": {"version": "30", "sha256": "1d0v1k0g9mizc3k2qyxgl8xmq9w4rzk124vbjq2ifzircbsb6qb2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIkhlYWRzZXRDb250cm9sIiwKICAibmFtZSI6ICJIZWFkc2V0Q29udHJvbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5IZWFkc2V0Q29udHJvbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L2dub21lLXNoZWxsLWV4dGVuc2lvbi1IZWFkc2V0Q29udHJvbCIsCiAgInV1aWQiOiAiSGVhZHNldENvbnRyb2xAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAzMCwKICAidmVyc2lvbi1uYW1lIjogIjQ2LjQiCn0="}
   }}
 , {"uuid": "true-color-window-invert@lynet101", "name": "True Color Window Invert", "pname": "true-color-invert", "description": "Inverts the color of individual windows so they are hue-preserved.\nDefault shortcut is Super+I (Fork from JackKenney, due to 2+ years of inactivity)\n\n!!!IMPORTANT!!!\nDue to changes in personal and professional life, developer lynet_101 will no longer be able to maintain this project, and the extension, as a result, is from December the 5th 2023 orphaned\n\npatch notes v3:\nFixed an issue where windows would occasionally disappear upon inversion\n\nAbout Gnome 45:\nThere will be made an effort to port this extension to gnome 45, but gnome has decided to revamp large parts of the framework used for these sorts of extensions, and as I'm a solo developer, don't expect it to be ported immediately .\n\nI apologize for any inconvenience this may cause ;(", "link": "https://extensions.gnome.org/extension/5829/true-color-invert/", "shell_version_map": {
     "38": {"version": "3", "sha256": "01hsx7mrd0z8fy797x3xn8jqjjw8a34dxj4vvf9w43zdixj5i6z4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludmVydHMgdGhlIGNvbG9yIG9mIGluZGl2aWR1YWwgd2luZG93cyBzbyB0aGV5IGFyZSBodWUtcHJlc2VydmVkLlxuRGVmYXVsdCBzaG9ydGN1dCBpcyBTdXBlcitJIChGb3JrIGZyb20gSmFja0tlbm5leSwgZHVlIHRvIDIrIHllYXJzIG9mIGluYWN0aXZpdHlcblxucGF0Y2ggbm90ZXMgdjM6XG5GaXhlZCBhbiBpc3N1ZSB3aGVyZSB3aW5kb3dzIHdvdWxkIG9jY2FzaW9uYWxseSBkaXNhcHBlYXIgdXBvbiBpbnZlcnNpb25cblxuTm90ZXM6XG5BcyB0aGlzIGlzIGEgZmFpcmx5IG5ldyBhZG9wdGlvbiwgb2YgYSBmYWlybHkgb2xkIHByb2plY3QsIGV4cGVjdCBmcmVxdWVudCB1cGRhdGVzIGFuZCBidWcgcGF0Y2hlcyBpbiB0aGUgYmVnaW5uaW5nLiB0aGFuayB5b3UgZm9yIHVuZGVyc3RhbmRpbmciLAogICJuYW1lIjogIlRydWUgQ29sb3IgV2luZG93IEludmVydCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cnVlLWNvbG9yLXdpbmRvdy1pbnZlcnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0x5bmV0MTAxL2dub21lLXRydWUtY29sb3ItaW52ZXJ0IiwKICAidXVpZCI6ICJ0cnVlLWNvbG9yLXdpbmRvdy1pbnZlcnRAbHluZXQxMDEiLAogICJ2ZXJzaW9uIjogMwp9"},
@@ -5986,7 +6065,8 @@
     "42": {"version": "4", "sha256": "0h1dglr1zc4rn75hklf4h4r808683dqpwl6zp7rrg52xrb3cp1bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBzaG93IGFwcHMgaWNvbiBhdCB0b3Agb2YgZGFzaCIsCiAgIm5hbWUiOiAiU2hvdyBBcHBzIGF0IFRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3JiaXRjb3JyZWN0b24vc2hvdy1hcHBzLWF0LXRvcCIsCiAgInV1aWQiOiAic2hvd2FwcHNhdHRvcEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiA0Cn0="},
     "43": {"version": "4", "sha256": "0h1dglr1zc4rn75hklf4h4r808683dqpwl6zp7rrg52xrb3cp1bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBzaG93IGFwcHMgaWNvbiBhdCB0b3Agb2YgZGFzaCIsCiAgIm5hbWUiOiAiU2hvdyBBcHBzIGF0IFRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3JiaXRjb3JyZWN0b24vc2hvdy1hcHBzLWF0LXRvcCIsCiAgInV1aWQiOiAic2hvd2FwcHNhdHRvcEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiA0Cn0="},
     "44": {"version": "4", "sha256": "0h1dglr1zc4rn75hklf4h4r808683dqpwl6zp7rrg52xrb3cp1bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBzaG93IGFwcHMgaWNvbiBhdCB0b3Agb2YgZGFzaCIsCiAgIm5hbWUiOiAiU2hvdyBBcHBzIGF0IFRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3JiaXRjb3JyZWN0b24vc2hvdy1hcHBzLWF0LXRvcCIsCiAgInV1aWQiOiAic2hvd2FwcHNhdHRvcEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiA0Cn0="},
-    "45": {"version": "9", "sha256": "04ppx5k7hkabk8ndj7yqz40m3qmidvvpkbkpzrb7c2p8p9kfb32m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBzaG93IGFwcHMgaWNvbiBhdCB0b3AgaW4gR25vbWUgZGVmYXVsdCBkYXNoIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJob3diZWEiCiAgfSwKICAibmFtZSI6ICJBcHBzIGF0IFRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvc2hvdy1hcHBzLWF0LXRvcCIsCiAgInV1aWQiOiAic2hvd2FwcHNhdHRvcEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiA5Cn0="}
+    "45": {"version": "10", "sha256": "1gx1k0qchvbv6jlja304xswg9j4ijh4xx5gkip7qip3cada3msfz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBzaG93IGFwcHMgaWNvbiBhdCB0b3AgaW4gR25vbWUgZGVmYXVsdCBkYXNoIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJob3diZWEiCiAgfSwKICAibmFtZSI6ICJBcHBzIGF0IFRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL3Nob3ctYXBwcy1hdC10b3AiLAogICJ1dWlkIjogInNob3dhcHBzYXR0b3BAZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
+    "46": {"version": "10", "sha256": "1gx1k0qchvbv6jlja304xswg9j4ijh4xx5gkip7qip3cada3msfz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBzaG93IGFwcHMgaWNvbiBhdCB0b3AgaW4gR25vbWUgZGVmYXVsdCBkYXNoIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJob3diZWEiCiAgfSwKICAibmFtZSI6ICJBcHBzIGF0IFRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL3Nob3ctYXBwcy1hdC10b3AiLAogICJ1dWlkIjogInNob3dhcHBzYXR0b3BAZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}
   }}
 , {"uuid": "overviewbackground@github.com.orbitcorrection", "name": "Overview Background", "pname": "overview-background", "description": "Add background in overview", "link": "https://extensions.gnome.org/extension/5856/overview-background/", "shell_version_map": {
     "40": {"version": "7", "sha256": "0asaxvjc17x5vg55di2pcd6vwczbgzvw91bi9s6957f45d04n1y8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vcmJpdGNvcnJlY3Rvbi9vdmVydmlldy1iYWNrZ3JvdW5kIiwKICAidXVpZCI6ICJvdmVydmlld2JhY2tncm91bmRAZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogNwp9"},
@@ -5994,7 +6074,8 @@
     "42": {"version": "15", "sha256": "06zs5qhn63d481clvf7fjdwzwkz893h3hf257q3wikipa6mqqgk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL292ZXJ2aWV3LWJhY2tncm91bmQiLAogICJ1dWlkIjogIm92ZXJ2aWV3YmFja2dyb3VuZEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiAxNQp9"},
     "43": {"version": "15", "sha256": "06zs5qhn63d481clvf7fjdwzwkz893h3hf257q3wikipa6mqqgk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL292ZXJ2aWV3LWJhY2tncm91bmQiLAogICJ1dWlkIjogIm92ZXJ2aWV3YmFja2dyb3VuZEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiAxNQp9"},
     "44": {"version": "15", "sha256": "06zs5qhn63d481clvf7fjdwzwkz893h3hf257q3wikipa6mqqgk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL292ZXJ2aWV3LWJhY2tncm91bmQiLAogICJ1dWlkIjogIm92ZXJ2aWV3YmFja2dyb3VuZEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiAxNQp9"},
-    "45": {"version": "16", "sha256": "1i3az4y3ac9sxc0fbhn6ivms32yyl239f00aqlbml9kpp1liv9wa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJob3diZWEiCiAgfSwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hvd2JlYS9vdmVydmlldy1iYWNrZ3JvdW5kIiwKICAidXVpZCI6ICJvdmVydmlld2JhY2tncm91bmRAZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}
+    "45": {"version": "16", "sha256": "1i3az4y3ac9sxc0fbhn6ivms32yyl239f00aqlbml9kpp1liv9wa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJob3diZWEiCiAgfSwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hvd2JlYS9vdmVydmlldy1iYWNrZ3JvdW5kIiwKICAidXVpZCI6ICJvdmVydmlld2JhY2tncm91bmRAZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTYKfQ=="},
+    "46": {"version": "17", "sha256": "1a262j68k2vrr5yjk63gqlc0gvcv61wja28m4wkmxmw2l2www3d6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJob3diZWEiCiAgfSwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hvd2JlYS9vdmVydmlldy1iYWNrZ3JvdW5kIiwKICAidXVpZCI6ICJvdmVydmlld2JhY2tncm91bmRAZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}
   }}
 , {"uuid": "logout-button@0ct0puce.com", "name": "Logout Button", "pname": "logout-button", "description": "Logout button easily accessible in the top panel. It could be useful as it restart gnome everytime you click it.", "link": "https://extensions.gnome.org/extension/5865/logout-button/", "shell_version_map": {
     "43": {"version": "1", "sha256": "15v4d6kxnlnbayqryliy67s35zbvr6j8g1w2x6wm0w909gcwi0px", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ291dCBidXR0b24gZWFzaWx5IGFjY2Vzc2libGUgaW4gdGhlIHRvcCBwYW5lbC4gSXQgY291bGQgYmUgdXNlZnVsIGFzIGl0IHJlc3RhcnQgZ25vbWUgZXZlcnl0aW1lIHlvdSBjbGljayBpdC4iLAogICJuYW1lIjogIkxvZ291dCBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMENUMFBVQ0UtTE9HL2dub21lLXNoZWxsLWV4dGVuc2lvbi1sb2dvdXQtYnV0dG9uIiwKICAidXVpZCI6ICJsb2dvdXQtYnV0dG9uQDBjdDBwdWNlLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}
@@ -6020,7 +6101,7 @@
 , {"uuid": "quicktext@brainstormtrooper.github.io", "name": "Quick Text", "pname": "quick-text", "description": "Quickly capture text snippets and ideas, then convert them to tasks or events", "link": "https://extensions.gnome.org/extension/5892/quick-text/", "shell_version_map": {
     "44": {"version": "8", "sha256": "09ybjnfgf4pnyj4q9xck5cs5yi0mwin47d3mbq55m25mk8sd8grm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgY2FwdHVyZSB0ZXh0IHNuaXBwZXRzIGFuZCBpZGVhcywgdGhlbiBjb252ZXJ0IHRoZW0gdG8gdGFza3Mgb3IgZXZlbnRzIiwKICAibmFtZSI6ICJRdWljayBUZXh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JyYWluc3Rvcm10cm9vcGVyL3F1aWNrdGV4dCIsCiAgInV1aWQiOiAicXVpY2t0ZXh0QGJyYWluc3Rvcm10cm9vcGVyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="},
     "45": {"version": "12", "sha256": "0g9vyxvjsn0wbkmwdnj1dx1qja6ny98hq6yc05yj3kr13nh3ynx3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgY2FwdHVyZSB0ZXh0IHNuaXBwZXRzIGFuZCBpZGVhcywgdGhlbiBjb252ZXJ0IHRoZW0gdG8gdGFza3Mgb3IgZXZlbnRzIiwKICAibmFtZSI6ICJRdWljayBUZXh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JyYWluc3Rvcm10cm9vcGVyL3F1aWNrdGV4dCIsCiAgInV1aWQiOiAicXVpY2t0ZXh0QGJyYWluc3Rvcm10cm9vcGVyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMgp9"},
-    "46": {"version": "13", "sha256": "0vsx3ha17hzc67z1jif1xw275gv461lmvyi2z5hkcsgikrqafksc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgY2FwdHVyZSB0ZXh0IHNuaXBwZXRzIGFuZCBpZGVhcywgdGhlbiBjb252ZXJ0IHRoZW0gdG8gdGFza3Mgb3IgZXZlbnRzIiwKICAibmFtZSI6ICJRdWljayBUZXh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JyYWluc3Rvcm10cm9vcGVyL3F1aWNrdGV4dCIsCiAgInV1aWQiOiAicXVpY2t0ZXh0QGJyYWluc3Rvcm10cm9vcGVyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMwp9"}
+    "46": {"version": "14", "sha256": "0nijbl26lp9j0jqx365h6wr107jwg6amc9rncn5k2bzjgmvwkilv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgY2FwdHVyZSB0ZXh0IHNuaXBwZXRzIGFuZCBpZGVhcywgdGhlbiBjb252ZXJ0IHRoZW0gdG8gdGFza3Mgb3IgZXZlbnRzIiwKICAibmFtZSI6ICJRdWljayBUZXh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JyYWluc3Rvcm10cm9vcGVyL3F1aWNrdGV4dCIsCiAgInV1aWQiOiAicXVpY2t0ZXh0QGJyYWluc3Rvcm10cm9vcGVyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxNAp9"}
   }}
 , {"uuid": "app-hider@lynith.dev", "name": "App Hider", "pname": "app-hider", "description": "Hide apps in GNOME's app menu", "link": "https://extensions.gnome.org/extension/5895/app-hider/", "shell_version_map": {
     "42": {"version": "18", "sha256": "1cqwwynvnqpgzip4v1r52yl66x8rqd15xyjabplb9i19dibwh67a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYXBwcyBpbiBHTk9NRSdzIGFwcCBtZW51IiwKICAiZG9uYXRpb25zIjogewogICAgImtvZmkiOiAibHluaXRoIgogIH0sCiAgIm5hbWUiOiAiQXBwIEhpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFwcC1oaWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0x5bml0aERldi9nbm9tZS1hcHAtaGlkZXIiLAogICJ1dWlkIjogImFwcC1oaWRlckBseW5pdGguZGV2IiwKICAidmVyc2lvbiI6IDE4Cn0="},
@@ -6079,8 +6160,8 @@
 , {"uuid": "quick-settings-audio-panel@rayzeq.github.io", "name": "Quick Settings Audio Panel", "pname": "quick-settings-audio-panel", "description": "Create a new panel containing volumes and media control in the quick settings", "link": "https://extensions.gnome.org/extension/5940/quick-settings-audio-panel/", "shell_version_map": {
     "43": {"version": "45", "sha256": "00d8j387483znvsigd0cjm8kgzb7z4paipavpdilmdv5k14iv0wn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAibmFtZSI6ICJRdWljayBTZXR0aW5ncyBBdWRpbyBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5xdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQ1Cn0="},
     "44": {"version": "45", "sha256": "00d8j387483znvsigd0cjm8kgzb7z4paipavpdilmdv5k14iv0wn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAibmFtZSI6ICJRdWljayBTZXR0aW5ncyBBdWRpbyBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5xdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQ1Cn0="},
-    "45": {"version": "44", "sha256": "0xkwz2mkchvy2mym5a05p4b3wdzpv14kvcgwyywzxwmlmxxcxg74", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWxAcmF5emVxLmdpdGh1Yi5pbyIsCiAgIm5hbWUiOiAiUXVpY2sgU2V0dGluZ3MgQXVkaW8gUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQ0Cn0="},
-    "46": {"version": "46", "sha256": "1rh86y2yk2da8avknc08y2bsn3k1dr65dfc928n55ywx4gaqlr7j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWxAcmF5emVxLmdpdGh1Yi5pbyIsCiAgIm5hbWUiOiAiUXVpY2sgU2V0dGluZ3MgQXVkaW8gUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQ2Cn0="}
+    "45": {"version": "48", "sha256": "0nckxx53fxyzxqhp68vdx66yrdw8z3flbd4yhrnp5hpqzkfwhakv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWxAcmF5emVxLmdpdGh1Yi5pbyIsCiAgIm5hbWUiOiAiUXVpY2sgU2V0dGluZ3MgQXVkaW8gUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQ4Cn0="},
+    "46": {"version": "53", "sha256": "1f78lyvz8dx5avrma4f0wxbrpvcrhz597jqvblsp1ik31balk01a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWxAcmF5emVxLmdpdGh1Yi5pbyIsCiAgIm5hbWUiOiAiUXVpY2sgU2V0dGluZ3MgQXVkaW8gUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUzCn0="}
   }}
 , {"uuid": "soft-brightness-plus@joelkitching.com", "name": "Soft Brightness Plus", "pname": "soft-brightness-plus", "description": "Add or override the brightness slider to change the brightness via an alpha layer (and optionally stop using or cooperate with the exising backlight, if present).\nEither internal, external or all monitors can be dimmed.\nSee the GitHub page for details.\n\nNote that this extension will keep running on the lock screen, as you'd also want the brightness setting to apply to the lock screen as well. Please report on GitHub if this gives you any trouble.\n\nThis extension is a fork of the original 'Soft brightness' extension, and maintains support for new GNOME releases.", "link": "https://extensions.gnome.org/extension/5943/soft-brightness-plus/", "shell_version_map": {
     "38": {"version": "5", "sha256": "08i7qzs1c9ifpa9z5xdiif31jp10g4jxr0ijnn18vmcgv2pkfyln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBpbmNsdWRlcyBzdXBwb3J0IGZvciBHTk9NRSA0MysuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJuYW1lIjogIlNvZnQgQnJpZ2h0bmVzcyBQbHVzIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1c2VyIiwKICAgICJ1bmxvY2stZGlhbG9nIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamtpdGNoaW5nL3NvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAidXVpZCI6ICJzb2Z0LWJyaWdodG5lc3MtcGx1c0Bqb2Vsa2l0Y2hpbmcuY29tIiwKICAidmNzX3JldmlzaW9uIjogIjc3YjVmOTIiLAogICJ2ZXJzaW9uIjogNQp9"},
@@ -6089,8 +6170,8 @@
     "42": {"version": "5", "sha256": "08i7qzs1c9ifpa9z5xdiif31jp10g4jxr0ijnn18vmcgv2pkfyln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBpbmNsdWRlcyBzdXBwb3J0IGZvciBHTk9NRSA0MysuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJuYW1lIjogIlNvZnQgQnJpZ2h0bmVzcyBQbHVzIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1c2VyIiwKICAgICJ1bmxvY2stZGlhbG9nIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamtpdGNoaW5nL3NvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAidXVpZCI6ICJzb2Z0LWJyaWdodG5lc3MtcGx1c0Bqb2Vsa2l0Y2hpbmcuY29tIiwKICAidmNzX3JldmlzaW9uIjogIjc3YjVmOTIiLAogICJ2ZXJzaW9uIjogNQp9"},
     "43": {"version": "5", "sha256": "08i7qzs1c9ifpa9z5xdiif31jp10g4jxr0ijnn18vmcgv2pkfyln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBpbmNsdWRlcyBzdXBwb3J0IGZvciBHTk9NRSA0MysuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJuYW1lIjogIlNvZnQgQnJpZ2h0bmVzcyBQbHVzIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1c2VyIiwKICAgICJ1bmxvY2stZGlhbG9nIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamtpdGNoaW5nL3NvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAidXVpZCI6ICJzb2Z0LWJyaWdodG5lc3MtcGx1c0Bqb2Vsa2l0Y2hpbmcuY29tIiwKICAidmNzX3JldmlzaW9uIjogIjc3YjVmOTIiLAogICJ2ZXJzaW9uIjogNQp9"},
     "44": {"version": "5", "sha256": "08i7qzs1c9ifpa9z5xdiif31jp10g4jxr0ijnn18vmcgv2pkfyln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBpbmNsdWRlcyBzdXBwb3J0IGZvciBHTk9NRSA0MysuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJuYW1lIjogIlNvZnQgQnJpZ2h0bmVzcyBQbHVzIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1c2VyIiwKICAgICJ1bmxvY2stZGlhbG9nIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamtpdGNoaW5nL3NvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAidXVpZCI6ICJzb2Z0LWJyaWdodG5lc3MtcGx1c0Bqb2Vsa2l0Y2hpbmcuY29tIiwKICAidmNzX3JldmlzaW9uIjogIjc3YjVmOTIiLAogICJ2ZXJzaW9uIjogNQp9"},
-    "45": {"version": "18", "sha256": "0x7378p3srqwria4b8qwag7lqvdjvxyd3q8m67b8285ndspc9y8s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBtYWludGFpbnMgc3VwcG9ydCBmb3IgbmV3IEdOT01FIHJlbGVhc2VzLiIsCiAgImdldHRleHQtZG9tYWluIjogInNvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAibmFtZSI6ICJTb2Z0IEJyaWdodG5lc3MgUGx1cyIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidW5sb2NrLWRpYWxvZyIsCiAgICAidXNlciIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2praXRjaGluZy9zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInV1aWQiOiAic29mdC1icmlnaHRuZXNzLXBsdXNAam9lbGtpdGNoaW5nLmNvbSIsCiAgInZjc19yZXZpc2lvbiI6ICI3YzRhOWM5IiwKICAidmVyc2lvbiI6IDE4Cn0="},
-    "46": {"version": "18", "sha256": "0x7378p3srqwria4b8qwag7lqvdjvxyd3q8m67b8285ndspc9y8s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBtYWludGFpbnMgc3VwcG9ydCBmb3IgbmV3IEdOT01FIHJlbGVhc2VzLiIsCiAgImdldHRleHQtZG9tYWluIjogInNvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAibmFtZSI6ICJTb2Z0IEJyaWdodG5lc3MgUGx1cyIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidW5sb2NrLWRpYWxvZyIsCiAgICAidXNlciIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2praXRjaGluZy9zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInV1aWQiOiAic29mdC1icmlnaHRuZXNzLXBsdXNAam9lbGtpdGNoaW5nLmNvbSIsCiAgInZjc19yZXZpc2lvbiI6ICI3YzRhOWM5IiwKICAidmVyc2lvbiI6IDE4Cn0="}
+    "45": {"version": "19", "sha256": "18bc53i0p9ncqrvxbkrlqisf9p19bphf5l9ii8zj923siikzivvk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBtYWludGFpbnMgc3VwcG9ydCBmb3IgbmV3IEdOT01FIHJlbGVhc2VzLiIsCiAgImdldHRleHQtZG9tYWluIjogInNvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAibmFtZSI6ICJTb2Z0IEJyaWdodG5lc3MgUGx1cyIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidW5sb2NrLWRpYWxvZyIsCiAgICAidXNlciIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2praXRjaGluZy9zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInV1aWQiOiAic29mdC1icmlnaHRuZXNzLXBsdXNAam9lbGtpdGNoaW5nLmNvbSIsCiAgInZjc19yZXZpc2lvbiI6ICJ2MzktNC1nNzY4ZjZiNSIsCiAgInZlcnNpb24iOiAxOQp9"},
+    "46": {"version": "19", "sha256": "18bc53i0p9ncqrvxbkrlqisf9p19bphf5l9ii8zj923siikzivvk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBtYWludGFpbnMgc3VwcG9ydCBmb3IgbmV3IEdOT01FIHJlbGVhc2VzLiIsCiAgImdldHRleHQtZG9tYWluIjogInNvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAibmFtZSI6ICJTb2Z0IEJyaWdodG5lc3MgUGx1cyIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidW5sb2NrLWRpYWxvZyIsCiAgICAidXNlciIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2praXRjaGluZy9zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInV1aWQiOiAic29mdC1icmlnaHRuZXNzLXBsdXNAam9lbGtpdGNoaW5nLmNvbSIsCiAgInZjc19yZXZpc2lvbiI6ICJ2MzktNC1nNzY4ZjZiNSIsCiAgInZlcnNpb24iOiAxOQp9"}
   }}
 , {"uuid": "swatch-clock@okatotf.github.io", "name": "Swatch Clock", "pname": "swatch-clock", "description": "An extension which displays the Swatch Internet Time on the panel.", "link": "https://extensions.gnome.org/extension/5946/swatch-clock/", "shell_version_map": {
     "44": {"version": "2", "sha256": "131rlf6q1w6jxz95j8yf3vpi40y80p1rjax5b2mapm6ppasdlkl2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGV4dGVuc2lvbiB3aGljaCBkaXNwbGF5cyB0aGUgU3dhdGNoIEludGVybmV0IFRpbWUgb24gdGhlIHBhbmVsLiIsCiAgIm5hbWUiOiAiU3dhdGNoIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29rYXRvdGYvc3dhdGNoLWNsb2NrIiwKICAidXVpZCI6ICJzd2F0Y2gtY2xvY2tAb2thdG90Zi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMgp9"}
@@ -6116,14 +6197,14 @@
     "45": {"version": "12", "sha256": "13pjpn6kvz4ml07j7b0029kx6jaqd62qsyaywk4p69y2xakx279k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgU2hlbGwgZXh0ZW5zaW9uIHRoYXQgYWxsb3dzIHlvdSB0byBoaWRlIHNlbGVjdGVkIG91dHB1dC9pbnB1dCBkZXZpY2VzIGZyb20gdGhlIFF1aWNrIFNldHRpbmdzIGF1ZGlvIGRldmljZXMgcGFuZWwuXG5UaGFua3MgdG8gaXQsIHlvdXIgUXVpY2sgU2V0dGluZ3MgcGFuZWwgd2lsbCBsaXN0IG9ubHkgdGhvc2UgZGV2aWNlcyB0aGF0IHlvdSBhY3R1YWxseSB1c2UgbWFraW5nIGl0IGVhc2llciB0byBxdWlja2x5IHN3aXRjaCBiZXR3ZWVuIHRoZW0uXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiBkb2VzIG5vdCBwbGF5IHdlbGwgd2l0aCB0aGUgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNTk0MC9xdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbC8gZXh0ZW5zaW9uLiBJdHMgb3B0aW9uIHRvXCJBbHdheXMgc2hvdyBtaWNyb3Bob25lIHZvbHVtZSBzbGlkZXJcIiBtaWdodCBub3Qgd29yayB3aGVuIFF1aWNrIFNldHRpbmdzIEF1ZGlvIERldmljZXMgSGlkZXIgaXMgZW5hYmxlZC4gQSB3b3JrYXJvdW5kIGNvdWxkIGJlIHRvIGluc3RhbGwgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNTQ0Ni9xdWljay1zZXR0aW5ncy10d2Vha2VyLywgd2hpY2ggaGFzIGEgc2ltaWxhciBmdW5jdGluYWxpdHkgdW5kZXIgdGhlIHRvZ2dsZSBcIkFsd2F5cyBzaG93IGlucHV0XCIgdW5kZXIgXCJJbnB1dC9PdXRwdXRcIiB0YWIuXG5cbkNoZWNrIG91dCB0aGUgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjAwMC9xdWljay1zZXR0aW5ncy1hdWRpby1kZXZpY2VzLXJlbmFtZXIvIGlmIHlvdSdkIHJhdGhlciB3YW50IHRvIHJlbmFtZSBzb21lIGRldmljZSB0aGFuIGhpZGUgaXQuIiwKICAibmFtZSI6ICJRdWljayBTZXR0aW5ncyBBdWRpbyBEZXZpY2VzIEhpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmNpbmphaG4vZ25vbWUtcXVpY2tzZXR0aW5ncy1hdWRpby1kZXZpY2VzLWhpZGVyLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAicXVpY2tzZXR0aW5ncy1hdWRpby1kZXZpY2VzLWhpZGVyQG1hcmNpbmphaG4uY29tIiwKICAidmVyc2lvbiI6IDEyCn0="},
     "46": {"version": "13", "sha256": "1zl8bg98v1ll88fv7sv8gicryhzg2pgfylba3z9gsllwh4dcb565", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgU2hlbGwgZXh0ZW5zaW9uIHRoYXQgYWxsb3dzIHlvdSB0byBoaWRlIHNlbGVjdGVkIG91dHB1dC9pbnB1dCBkZXZpY2VzIGZyb20gdGhlIFF1aWNrIFNldHRpbmdzIGF1ZGlvIGRldmljZXMgcGFuZWwuXG5UaGFua3MgdG8gaXQsIHlvdXIgUXVpY2sgU2V0dGluZ3MgcGFuZWwgd2lsbCBsaXN0IG9ubHkgdGhvc2UgZGV2aWNlcyB0aGF0IHlvdSBhY3R1YWxseSB1c2UgbWFraW5nIGl0IGVhc2llciB0byBxdWlja2x5IHN3aXRjaCBiZXR3ZWVuIHRoZW0uXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiBkb2VzIG5vdCBwbGF5IHdlbGwgd2l0aCB0aGUgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNTk0MC9xdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbC8gZXh0ZW5zaW9uLiBJdHMgb3B0aW9uIHRvXCJBbHdheXMgc2hvdyBtaWNyb3Bob25lIHZvbHVtZSBzbGlkZXJcIiBtaWdodCBub3Qgd29yayB3aGVuIFF1aWNrIFNldHRpbmdzIEF1ZGlvIERldmljZXMgSGlkZXIgaXMgZW5hYmxlZC4gQSB3b3JrYXJvdW5kIGNvdWxkIGJlIHRvIGluc3RhbGwgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNTQ0Ni9xdWljay1zZXR0aW5ncy10d2Vha2VyLywgd2hpY2ggaGFzIGEgc2ltaWxhciBmdW5jdGluYWxpdHkgdW5kZXIgdGhlIHRvZ2dsZSBcIkFsd2F5cyBzaG93IGlucHV0XCIgdW5kZXIgXCJJbnB1dC9PdXRwdXRcIiB0YWIuXG5cbkNoZWNrIG91dCB0aGUgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjAwMC9xdWljay1zZXR0aW5ncy1hdWRpby1kZXZpY2VzLXJlbmFtZXIvIGlmIHlvdSdkIHJhdGhlciB3YW50IHRvIHJlbmFtZSBzb21lIGRldmljZSB0aGFuIGhpZGUgaXQuIiwKICAibmFtZSI6ICJRdWljayBTZXR0aW5ncyBBdWRpbyBEZXZpY2VzIEhpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmNpbmphaG4vZ25vbWUtcXVpY2tzZXR0aW5ncy1hdWRpby1kZXZpY2VzLWhpZGVyLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAicXVpY2tzZXR0aW5ncy1hdWRpby1kZXZpY2VzLWhpZGVyQG1hcmNpbmphaG4uY29tIiwKICAidmVyc2lvbiI6IDEzCn0="}
   }}
-, {"uuid": "workspaces-by-open-apps@favo02.github.com", "name": "Workspaces indicator by open apps", "pname": "workspaces-indicator-by-open-apps", "description": "Display a simple workspace indicator showing icons of apps open in it.\n\nFeatures:\n\n- Show a simple indicator to display workspaces and apps open in it\n- Support for drag and drop: change an application workspace just dragging its icon\n- Right/Left click to focus/minimize application, Middle click to close\n- Workspaces scrolling: change active workspace scrolling hover the indicator\n- Support for multiple monitor (for both static and dynamic workspaces)\n- Rename workspaces directly from the extension (activate in settings)\n- Hide/show GNOME default workspace indicator (former activities button)\n\nCustomization:\n\n- Indicator position\n- Mouse scroll direction (normal or inverse)\n- Activate/deactivate 'middle click to close app'\n- Activate/deactivate 'click on active workspace to overview'\n- Activate/deactivate 'click on focused application to minimize'\n- Activate/deactivate 'workspace indicator'\n- Activate/deactivate 'app indicator'\n- Customize indicator color\n- Activate/deactivate 'round borders'\n- Show/Hide workspaces names\n- Show/Hide empty workspaces\n- Customize apps on all workspaces text indicator\n- Desaturate all icons\n- No effect/Reduce opacity/Desaturate for both minimized and inactive apps\n- Limit icons per workspace\n- Group icons of same application\n- Ignore applications (with regex)", "link": "https://extensions.gnome.org/extension/5967/workspaces-indicator-by-open-apps/", "shell_version_map": {
+, {"uuid": "workspaces-by-open-apps@favo02.github.com", "name": "Workspaces indicator by open apps", "pname": "workspaces-indicator-by-open-apps", "description": "Display a simple workspace indicator showing icons of apps open in it.\n\nFeatures:\n\n- Show a simple indicator to display workspaces and apps open in it\n- Support for drag and drop: change an application workspace just dragging its icon\n- Right/Left click to focus/minimize application, Middle click to close\n- Workspaces scrolling: change active workspace scrolling hover the indicator\n- Support for multiple monitor (for both static and dynamic workspaces)\n- Rename workspaces directly from the extension (activate in settings)\n- Hide/show GNOME default workspace indicator (former activities button)\n\nCustomization:\n\n- Indicator position\n- Mouse scroll direction (normal or inverse)\n- Activate/deactivate 'middle click to close app'\n- Activate/deactivate 'click on active workspace to overview'\n- Activate/deactivate 'click on focused application to minimize'\n- Activate/deactivate 'workspace indicator'\n- Activate/deactivate 'app indicator'\n- Customize indicator color\n- Activate/deactivate 'round borders'\n- Show/Hide workspaces names\n- Show/Hide empty workspaces\n- Customize apps on all workspaces text indicator\n- Desaturate all icons\n- No effect/Reduce opacity/Desaturate for both minimized and inactive apps\n- Limit icons per workspace\n- Group icons of same application\n- Ignore applications (with regex)\n- Spacing and Size of applications icons and labels", "link": "https://extensions.gnome.org/extension/5967/workspaces-indicator-by-open-apps/", "shell_version_map": {
     "40": {"version": "8", "sha256": "1iimby4wglgyrfx20la0kp9wdnfz3y6868n2044qvda2fbwxdx5c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuVXNhZ2UgYW5kIGN1c3RvbWl6YXRpb246XG4tIFN1cHBvcnQgZm9yIGRyYWcgYW5kIGRyb3A6IGNoYW5nZSBhbiBhcHBsaWNhdGlvbiB3b3Jrc3BhY2UganVzdCBkcmFnZ2luZyBpdHMgaWNvblxuLSBSaWdodC9MZWZ0IGNsaWNrIHRvIGZvY3VzIGFwcGxpY2F0aW9uLCBNaWRkbGUgY2xpY2sgdG8gY2xvc2Vcbi0gV29ya3NwYWNlcyBzY3JvbGxpbmc6IGNoYW5nZSBhY3RpdmUgd29ya3NwYWNlIHNjcm9sbGluZyBob3ZlciB0aGUgaW5kaWNhdG9yXG4tIFRvZ2dsZSBhcHBsaWNhdGlvbiBpY29ucyBkZXNhdHVyYXRpb25cbi0gU2hvdy9IaWRlIHdvcmtzcGFjZXMgaW5kZXggbGFiZWxcbi0gU2hvdy9IaWRlIGFjdGl2ZSB3b3Jrc3BhY2UgYW5kIGZvY3VzZWQgYXBwIGluZGljYXRvclxuLSBDaGFuZ2UgaW5kaWNhdG9yIHN0eWxlIGFuZCBjb2xvclxuLSBTdXBwb3J0IGZvciBtdWx0aXBsZSBtb25pdG9yIChmb3IgYm90aCBzdGF0aWMgYW5kIGR5bmFtaWMgd29ya3NwYWNlcylcbi0gW05FVyFdIEhpZGUgZW1wdHkgd29ya3NwYWNlc1xuLSBbTkVXIV0gUmVuYW1lIHdvcmtzcGFjZXMgZGlyZWN0bHkgZnJvbSB0aGUgZXh0ZW5zaW9uIChzd2l0Y2ggd29ya3NwYWNlIHRvIGFwcGx5IG5ldyBuYW1lKVxuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIGluZGljYXRvciBieSBvcGVuIGFwcHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Zhdm8wMi93b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwcyIsCiAgInV1aWQiOiAid29ya3NwYWNlcy1ieS1vcGVuLWFwcHNAZmF2bzAyLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOAp9"},
     "41": {"version": "8", "sha256": "1iimby4wglgyrfx20la0kp9wdnfz3y6868n2044qvda2fbwxdx5c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuVXNhZ2UgYW5kIGN1c3RvbWl6YXRpb246XG4tIFN1cHBvcnQgZm9yIGRyYWcgYW5kIGRyb3A6IGNoYW5nZSBhbiBhcHBsaWNhdGlvbiB3b3Jrc3BhY2UganVzdCBkcmFnZ2luZyBpdHMgaWNvblxuLSBSaWdodC9MZWZ0IGNsaWNrIHRvIGZvY3VzIGFwcGxpY2F0aW9uLCBNaWRkbGUgY2xpY2sgdG8gY2xvc2Vcbi0gV29ya3NwYWNlcyBzY3JvbGxpbmc6IGNoYW5nZSBhY3RpdmUgd29ya3NwYWNlIHNjcm9sbGluZyBob3ZlciB0aGUgaW5kaWNhdG9yXG4tIFRvZ2dsZSBhcHBsaWNhdGlvbiBpY29ucyBkZXNhdHVyYXRpb25cbi0gU2hvdy9IaWRlIHdvcmtzcGFjZXMgaW5kZXggbGFiZWxcbi0gU2hvdy9IaWRlIGFjdGl2ZSB3b3Jrc3BhY2UgYW5kIGZvY3VzZWQgYXBwIGluZGljYXRvclxuLSBDaGFuZ2UgaW5kaWNhdG9yIHN0eWxlIGFuZCBjb2xvclxuLSBTdXBwb3J0IGZvciBtdWx0aXBsZSBtb25pdG9yIChmb3IgYm90aCBzdGF0aWMgYW5kIGR5bmFtaWMgd29ya3NwYWNlcylcbi0gW05FVyFdIEhpZGUgZW1wdHkgd29ya3NwYWNlc1xuLSBbTkVXIV0gUmVuYW1lIHdvcmtzcGFjZXMgZGlyZWN0bHkgZnJvbSB0aGUgZXh0ZW5zaW9uIChzd2l0Y2ggd29ya3NwYWNlIHRvIGFwcGx5IG5ldyBuYW1lKVxuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIGluZGljYXRvciBieSBvcGVuIGFwcHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Zhdm8wMi93b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwcyIsCiAgInV1aWQiOiAid29ya3NwYWNlcy1ieS1vcGVuLWFwcHNAZmF2bzAyLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOAp9"},
     "42": {"version": "13", "sha256": "1qmwvsv7g5lh7yri6m8c3r18zhvr6bh2wcchlgydyzfdkdsvjpid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG5cbkN1c3RvbWl6YXRpb246XG5cbi0gSW5kaWNhdG9yIHBvc2l0aW9uXG4tIFNjcm9sbCBkaXJlY3Rpb24gKG5vcm1hbCBvciBpbnZlcnNlKVxuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdtaWRkbGUgY2xpY2sgdG8gY2xvc2UgYXBwJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICd3b3Jrc3BhY2UgaW5kaWNhdG9yJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdhcHAgaW5kaWNhdG9yJ1xuLSBDdXN0b21pemUgaW5kaWNhdG9yIGNvbG9yXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3JvdW5kIGJvcmRlcnMnXG4tIFNob3cvSGlkZSB3b3Jrc3BhY2VzIG5hbWVzXG4tIFNob3cvSGlkZSBlbXB0eSB3b3Jrc3BhY2VzXG4tIEN1c3RvbWl6ZSBhcHBzIG9uIGFsbCB3b3Jrc3BhY2VzIHRleHQgaW5kaWNhdG9yXG4tIERlc2F0dXJhdGUgYWxsIGljb25zXG4tIE5vIGVmZmVjdC9SZWR1Y2Ugb3BhY2l0eS9EZXNhdHVyYXRlIGZvciBib3RoIG1pbmltaXplZCBhbmQgaW5hY3RpdmUgYXBwc1xuLSBMaW1pdCBpY29ucyBwZXIgd29ya3NwYWNlXG4tIEdyb3VwIGljb25zIG9mIHNhbWUgYXBwbGljYXRpb25cbiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRmF2bzAyL3dvcmtzcGFjZXMtYnktb3Blbi1hcHBzIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwc0BmYXZvMDIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"},
     "43": {"version": "13", "sha256": "1qmwvsv7g5lh7yri6m8c3r18zhvr6bh2wcchlgydyzfdkdsvjpid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG5cbkN1c3RvbWl6YXRpb246XG5cbi0gSW5kaWNhdG9yIHBvc2l0aW9uXG4tIFNjcm9sbCBkaXJlY3Rpb24gKG5vcm1hbCBvciBpbnZlcnNlKVxuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdtaWRkbGUgY2xpY2sgdG8gY2xvc2UgYXBwJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICd3b3Jrc3BhY2UgaW5kaWNhdG9yJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdhcHAgaW5kaWNhdG9yJ1xuLSBDdXN0b21pemUgaW5kaWNhdG9yIGNvbG9yXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3JvdW5kIGJvcmRlcnMnXG4tIFNob3cvSGlkZSB3b3Jrc3BhY2VzIG5hbWVzXG4tIFNob3cvSGlkZSBlbXB0eSB3b3Jrc3BhY2VzXG4tIEN1c3RvbWl6ZSBhcHBzIG9uIGFsbCB3b3Jrc3BhY2VzIHRleHQgaW5kaWNhdG9yXG4tIERlc2F0dXJhdGUgYWxsIGljb25zXG4tIE5vIGVmZmVjdC9SZWR1Y2Ugb3BhY2l0eS9EZXNhdHVyYXRlIGZvciBib3RoIG1pbmltaXplZCBhbmQgaW5hY3RpdmUgYXBwc1xuLSBMaW1pdCBpY29ucyBwZXIgd29ya3NwYWNlXG4tIEdyb3VwIGljb25zIG9mIHNhbWUgYXBwbGljYXRpb25cbiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRmF2bzAyL3dvcmtzcGFjZXMtYnktb3Blbi1hcHBzIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwc0BmYXZvMDIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"},
     "44": {"version": "13", "sha256": "1qmwvsv7g5lh7yri6m8c3r18zhvr6bh2wcchlgydyzfdkdsvjpid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG5cbkN1c3RvbWl6YXRpb246XG5cbi0gSW5kaWNhdG9yIHBvc2l0aW9uXG4tIFNjcm9sbCBkaXJlY3Rpb24gKG5vcm1hbCBvciBpbnZlcnNlKVxuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdtaWRkbGUgY2xpY2sgdG8gY2xvc2UgYXBwJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICd3b3Jrc3BhY2UgaW5kaWNhdG9yJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdhcHAgaW5kaWNhdG9yJ1xuLSBDdXN0b21pemUgaW5kaWNhdG9yIGNvbG9yXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3JvdW5kIGJvcmRlcnMnXG4tIFNob3cvSGlkZSB3b3Jrc3BhY2VzIG5hbWVzXG4tIFNob3cvSGlkZSBlbXB0eSB3b3Jrc3BhY2VzXG4tIEN1c3RvbWl6ZSBhcHBzIG9uIGFsbCB3b3Jrc3BhY2VzIHRleHQgaW5kaWNhdG9yXG4tIERlc2F0dXJhdGUgYWxsIGljb25zXG4tIE5vIGVmZmVjdC9SZWR1Y2Ugb3BhY2l0eS9EZXNhdHVyYXRlIGZvciBib3RoIG1pbmltaXplZCBhbmQgaW5hY3RpdmUgYXBwc1xuLSBMaW1pdCBpY29ucyBwZXIgd29ya3NwYWNlXG4tIEdyb3VwIGljb25zIG9mIHNhbWUgYXBwbGljYXRpb25cbiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRmF2bzAyL3dvcmtzcGFjZXMtYnktb3Blbi1hcHBzIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwc0BmYXZvMDIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"},
-    "45": {"version": "15", "sha256": "1z248a0rd5zj623brc1lb3c9al3yp7ph9yzx091pcgq6hs0by49x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMvbWluaW1pemUgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG4tIEhpZGUvc2hvdyBHTk9NRSBkZWZhdWx0IHdvcmtzcGFjZSBpbmRpY2F0b3IgKGZvcm1lciBhY3Rpdml0aWVzIGJ1dHRvbilcblxuQ3VzdG9taXphdGlvbjpcblxuLSBJbmRpY2F0b3IgcG9zaXRpb25cbi0gTW91c2Ugc2Nyb2xsIGRpcmVjdGlvbiAobm9ybWFsIG9yIGludmVyc2UpXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ21pZGRsZSBjbGljayB0byBjbG9zZSBhcHAnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2NsaWNrIG9uIGFjdGl2ZSB3b3Jrc3BhY2UgdG8gb3ZlcnZpZXcnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2NsaWNrIG9uIGZvY3VzZWQgYXBwbGljYXRpb24gdG8gbWluaW1pemUnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3dvcmtzcGFjZSBpbmRpY2F0b3InXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2FwcCBpbmRpY2F0b3InXG4tIEN1c3RvbWl6ZSBpbmRpY2F0b3IgY29sb3Jcbi0gQWN0aXZhdGUvZGVhY3RpdmF0ZSAncm91bmQgYm9yZGVycydcbi0gU2hvdy9IaWRlIHdvcmtzcGFjZXMgbmFtZXNcbi0gU2hvdy9IaWRlIGVtcHR5IHdvcmtzcGFjZXNcbi0gQ3VzdG9taXplIGFwcHMgb24gYWxsIHdvcmtzcGFjZXMgdGV4dCBpbmRpY2F0b3Jcbi0gRGVzYXR1cmF0ZSBhbGwgaWNvbnNcbi0gTm8gZWZmZWN0L1JlZHVjZSBvcGFjaXR5L0Rlc2F0dXJhdGUgZm9yIGJvdGggbWluaW1pemVkIGFuZCBpbmFjdGl2ZSBhcHBzXG4tIExpbWl0IGljb25zIHBlciB3b3Jrc3BhY2Vcbi0gR3JvdXAgaWNvbnMgb2Ygc2FtZSBhcHBsaWNhdGlvblxuLSBJZ25vcmUgYXBwbGljYXRpb25zICh3aXRoIHJlZ2V4KSIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzcGFjZXMtaW5kaWNhdG9yLWJ5LW9wZW4tYXBwcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRmF2bzAyL3dvcmtzcGFjZXMtYnktb3Blbi1hcHBzIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwc0BmYXZvMDIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"},
-    "46": {"version": "15", "sha256": "1z248a0rd5zj623brc1lb3c9al3yp7ph9yzx091pcgq6hs0by49x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMvbWluaW1pemUgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG4tIEhpZGUvc2hvdyBHTk9NRSBkZWZhdWx0IHdvcmtzcGFjZSBpbmRpY2F0b3IgKGZvcm1lciBhY3Rpdml0aWVzIGJ1dHRvbilcblxuQ3VzdG9taXphdGlvbjpcblxuLSBJbmRpY2F0b3IgcG9zaXRpb25cbi0gTW91c2Ugc2Nyb2xsIGRpcmVjdGlvbiAobm9ybWFsIG9yIGludmVyc2UpXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ21pZGRsZSBjbGljayB0byBjbG9zZSBhcHAnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2NsaWNrIG9uIGFjdGl2ZSB3b3Jrc3BhY2UgdG8gb3ZlcnZpZXcnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2NsaWNrIG9uIGZvY3VzZWQgYXBwbGljYXRpb24gdG8gbWluaW1pemUnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3dvcmtzcGFjZSBpbmRpY2F0b3InXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2FwcCBpbmRpY2F0b3InXG4tIEN1c3RvbWl6ZSBpbmRpY2F0b3IgY29sb3Jcbi0gQWN0aXZhdGUvZGVhY3RpdmF0ZSAncm91bmQgYm9yZGVycydcbi0gU2hvdy9IaWRlIHdvcmtzcGFjZXMgbmFtZXNcbi0gU2hvdy9IaWRlIGVtcHR5IHdvcmtzcGFjZXNcbi0gQ3VzdG9taXplIGFwcHMgb24gYWxsIHdvcmtzcGFjZXMgdGV4dCBpbmRpY2F0b3Jcbi0gRGVzYXR1cmF0ZSBhbGwgaWNvbnNcbi0gTm8gZWZmZWN0L1JlZHVjZSBvcGFjaXR5L0Rlc2F0dXJhdGUgZm9yIGJvdGggbWluaW1pemVkIGFuZCBpbmFjdGl2ZSBhcHBzXG4tIExpbWl0IGljb25zIHBlciB3b3Jrc3BhY2Vcbi0gR3JvdXAgaWNvbnMgb2Ygc2FtZSBhcHBsaWNhdGlvblxuLSBJZ25vcmUgYXBwbGljYXRpb25zICh3aXRoIHJlZ2V4KSIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzcGFjZXMtaW5kaWNhdG9yLWJ5LW9wZW4tYXBwcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRmF2bzAyL3dvcmtzcGFjZXMtYnktb3Blbi1hcHBzIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwc0BmYXZvMDIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}
+    "45": {"version": "19", "sha256": "1c140xhvh8c6smm0kfrfq2gglxc5nx4h0k88lakhidl7kikfls1f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMvbWluaW1pemUgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG4tIEhpZGUvc2hvdyBHTk9NRSBkZWZhdWx0IHdvcmtzcGFjZSBpbmRpY2F0b3IgKGZvcm1lciBhY3Rpdml0aWVzIGJ1dHRvbilcblxuQ3VzdG9taXphdGlvbjpcblxuLSBJbmRpY2F0b3IgcG9zaXRpb25cbi0gTW91c2Ugc2Nyb2xsIGRpcmVjdGlvbiAobm9ybWFsIG9yIGludmVyc2UpXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ21pZGRsZSBjbGljayB0byBjbG9zZSBhcHAnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2NsaWNrIG9uIGFjdGl2ZSB3b3Jrc3BhY2UgdG8gb3ZlcnZpZXcnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2NsaWNrIG9uIGZvY3VzZWQgYXBwbGljYXRpb24gdG8gbWluaW1pemUnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3dvcmtzcGFjZSBpbmRpY2F0b3InXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2FwcCBpbmRpY2F0b3InXG4tIEN1c3RvbWl6ZSBpbmRpY2F0b3IgY29sb3Jcbi0gQWN0aXZhdGUvZGVhY3RpdmF0ZSAncm91bmQgYm9yZGVycydcbi0gU2hvdy9IaWRlIHdvcmtzcGFjZXMgbmFtZXNcbi0gU2hvdy9IaWRlIGVtcHR5IHdvcmtzcGFjZXNcbi0gQ3VzdG9taXplIGFwcHMgb24gYWxsIHdvcmtzcGFjZXMgdGV4dCBpbmRpY2F0b3Jcbi0gRGVzYXR1cmF0ZSBhbGwgaWNvbnNcbi0gTm8gZWZmZWN0L1JlZHVjZSBvcGFjaXR5L0Rlc2F0dXJhdGUgZm9yIGJvdGggbWluaW1pemVkIGFuZCBpbmFjdGl2ZSBhcHBzXG4tIExpbWl0IGljb25zIHBlciB3b3Jrc3BhY2Vcbi0gR3JvdXAgaWNvbnMgb2Ygc2FtZSBhcHBsaWNhdGlvblxuLSBJZ25vcmUgYXBwbGljYXRpb25zICh3aXRoIHJlZ2V4KVxuLSBTcGFjaW5nIGFuZCBTaXplIG9mIGFwcGxpY2F0aW9ucyBpY29ucyBhbmQgbGFiZWxzIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIGluZGljYXRvciBieSBvcGVuIGFwcHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud29ya3NwYWNlcy1pbmRpY2F0b3ItYnktb3Blbi1hcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GYXZvMDIvd29ya3NwYWNlcy1ieS1vcGVuLWFwcHMiLAogICJ1dWlkIjogIndvcmtzcGFjZXMtYnktb3Blbi1hcHBzQGZhdm8wMi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE5Cn0="},
+    "46": {"version": "19", "sha256": "1c140xhvh8c6smm0kfrfq2gglxc5nx4h0k88lakhidl7kikfls1f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMvbWluaW1pemUgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG4tIEhpZGUvc2hvdyBHTk9NRSBkZWZhdWx0IHdvcmtzcGFjZSBpbmRpY2F0b3IgKGZvcm1lciBhY3Rpdml0aWVzIGJ1dHRvbilcblxuQ3VzdG9taXphdGlvbjpcblxuLSBJbmRpY2F0b3IgcG9zaXRpb25cbi0gTW91c2Ugc2Nyb2xsIGRpcmVjdGlvbiAobm9ybWFsIG9yIGludmVyc2UpXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ21pZGRsZSBjbGljayB0byBjbG9zZSBhcHAnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2NsaWNrIG9uIGFjdGl2ZSB3b3Jrc3BhY2UgdG8gb3ZlcnZpZXcnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2NsaWNrIG9uIGZvY3VzZWQgYXBwbGljYXRpb24gdG8gbWluaW1pemUnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3dvcmtzcGFjZSBpbmRpY2F0b3InXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2FwcCBpbmRpY2F0b3InXG4tIEN1c3RvbWl6ZSBpbmRpY2F0b3IgY29sb3Jcbi0gQWN0aXZhdGUvZGVhY3RpdmF0ZSAncm91bmQgYm9yZGVycydcbi0gU2hvdy9IaWRlIHdvcmtzcGFjZXMgbmFtZXNcbi0gU2hvdy9IaWRlIGVtcHR5IHdvcmtzcGFjZXNcbi0gQ3VzdG9taXplIGFwcHMgb24gYWxsIHdvcmtzcGFjZXMgdGV4dCBpbmRpY2F0b3Jcbi0gRGVzYXR1cmF0ZSBhbGwgaWNvbnNcbi0gTm8gZWZmZWN0L1JlZHVjZSBvcGFjaXR5L0Rlc2F0dXJhdGUgZm9yIGJvdGggbWluaW1pemVkIGFuZCBpbmFjdGl2ZSBhcHBzXG4tIExpbWl0IGljb25zIHBlciB3b3Jrc3BhY2Vcbi0gR3JvdXAgaWNvbnMgb2Ygc2FtZSBhcHBsaWNhdGlvblxuLSBJZ25vcmUgYXBwbGljYXRpb25zICh3aXRoIHJlZ2V4KVxuLSBTcGFjaW5nIGFuZCBTaXplIG9mIGFwcGxpY2F0aW9ucyBpY29ucyBhbmQgbGFiZWxzIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIGluZGljYXRvciBieSBvcGVuIGFwcHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud29ya3NwYWNlcy1pbmRpY2F0b3ItYnktb3Blbi1hcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GYXZvMDIvd29ya3NwYWNlcy1ieS1vcGVuLWFwcHMiLAogICJ1dWlkIjogIndvcmtzcGFjZXMtYnktb3Blbi1hcHBzQGZhdm8wMi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE5Cn0="}
   }}
 , {"uuid": "fshyperlinks@nuclear.polygon", "name": "FS Hyperlinks", "pname": "fs-hyperlinks", "description": "Select a path to jump there (When Ctrl is down)\nAlt+J to open file or directory with default app (when its path is in clipboard)", "link": "https://extensions.gnome.org/extension/5970/fs-hyperlinks/", "shell_version_map": {
     "38": {"version": "5", "sha256": "0q6gsl75vivslv9yw8ik5pfapdz4ivvr9bmai2pjy2ls7cw9zf9k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlbGVjdCBhIHBhdGggdG8ganVtcCB0aGVyZSAoV2hlbiBDdHJsIGlzIGRvd24pXG5BbHQrSiB0byBvcGVuIGZpbGUgb3IgZGlyZWN0b3J5IHdpdGggZGVmYXVsdCBhcHAgKHdoZW4gaXRzIHBhdGggaXMgaW4gY2xpcGJvYXJkKSIsCiAgIm5hbWUiOiAiRlMgSHlwZXJsaW5rcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbnVjbGVhcnBvbHlnb24vZnNfaHlwZXJsaW5rc19nbm9tZV9leHRlbnNpb24iLAogICJ1dWlkIjogImZzaHlwZXJsaW5rc0BudWNsZWFyLnBvbHlnb24iLAogICJ2ZXJzaW9uIjogNQp9"},
@@ -6139,8 +6220,8 @@
     "42": {"version": "95", "sha256": "0myj4g5351fi04w3iwpshjhy9a5vgq85nwd186ymlvnjby12d6fh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi4iLAogICJuYW1lIjogIkdpdGh1YiBBY3Rpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhcm9ub25ha0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdpdGh1Yi1hY3Rpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcm9ub25hay9naXRodWItYWN0aW9ucy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdpdGh1Yi1hY3Rpb25zQGFyb25vbmFrLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA5NQp9"},
     "43": {"version": "95", "sha256": "0myj4g5351fi04w3iwpshjhy9a5vgq85nwd186ymlvnjby12d6fh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi4iLAogICJuYW1lIjogIkdpdGh1YiBBY3Rpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhcm9ub25ha0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdpdGh1Yi1hY3Rpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcm9ub25hay9naXRodWItYWN0aW9ucy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdpdGh1Yi1hY3Rpb25zQGFyb25vbmFrLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA5NQp9"},
     "44": {"version": "95", "sha256": "0myj4g5351fi04w3iwpshjhy9a5vgq85nwd186ymlvnjby12d6fh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi4iLAogICJuYW1lIjogIkdpdGh1YiBBY3Rpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhcm9ub25ha0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdpdGh1Yi1hY3Rpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcm9ub25hay9naXRodWItYWN0aW9ucy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdpdGh1Yi1hY3Rpb25zQGFyb25vbmFrLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA5NQp9"},
-    "45": {"version": "135", "sha256": "1mas611qax46pyn9r953z3b1jp1n7r9wd7z7s3ifqq4038ihywck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi5cblxuVmVyc2lvbnMgYmVsb3cgZ25vbWUgNDUgd2lsbCBubyBsb25nZXIgYmUgc3VwcG9ydGVkIDovIiwKICAibmFtZSI6ICJHaXRodWIgQWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiYXJvbm9uYWtAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5naXRodWItYWN0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJvbm9uYWsvZ2l0aHViLWFjdGlvbnMtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnaXRodWItYWN0aW9uc0Bhcm9ub25hay5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTM1Cn0="},
-    "46": {"version": "135", "sha256": "1mas611qax46pyn9r953z3b1jp1n7r9wd7z7s3ifqq4038ihywck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi5cblxuVmVyc2lvbnMgYmVsb3cgZ25vbWUgNDUgd2lsbCBubyBsb25nZXIgYmUgc3VwcG9ydGVkIDovIiwKICAibmFtZSI6ICJHaXRodWIgQWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiYXJvbm9uYWtAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5naXRodWItYWN0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJvbm9uYWsvZ2l0aHViLWFjdGlvbnMtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnaXRodWItYWN0aW9uc0Bhcm9ub25hay5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTM1Cn0="}
+    "45": {"version": "142", "sha256": "0171gmpv7drr5d4mbk3y9vbf1438g2cajfg5g25v9k0fc1q8pwc6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi5cblxuVmVyc2lvbnMgYmVsb3cgZ25vbWUgNDUgd2lsbCBubyBsb25nZXIgYmUgc3VwcG9ydGVkIDovIiwKICAibmFtZSI6ICJHaXRodWIgQWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiYXJvbm9uYWtAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5naXRodWItYWN0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJvbm9uYWsvZ2l0aHViLWFjdGlvbnMtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnaXRodWItYWN0aW9uc0Bhcm9ub25hay5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTQyCn0="},
+    "46": {"version": "142", "sha256": "0171gmpv7drr5d4mbk3y9vbf1438g2cajfg5g25v9k0fc1q8pwc6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi5cblxuVmVyc2lvbnMgYmVsb3cgZ25vbWUgNDUgd2lsbCBubyBsb25nZXIgYmUgc3VwcG9ydGVkIDovIiwKICAibmFtZSI6ICJHaXRodWIgQWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiYXJvbm9uYWtAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5naXRodWItYWN0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJvbm9uYWsvZ2l0aHViLWFjdGlvbnMtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnaXRodWItYWN0aW9uc0Bhcm9ub25hay5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTQyCn0="}
   }}
 , {"uuid": "dim-completed-calendar-events@marcinjahn.com", "name": "Dim Completed Calendar Events", "pname": "dim-completed-calendar-events", "description": "Dim completed events in the top panel menu to easily distinguish between upcoming and past events. You can also highlight events that are ongoing.", "link": "https://extensions.gnome.org/extension/5979/dim-completed-calendar-events/", "shell_version_map": {
     "44": {"version": "3", "sha256": "0dpyrhdc70f77wv8hx7d6xnpxx13c2qfp7dbx716mqq90raij39f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSBjb21wbGV0ZWQgZXZlbnRzIGluIHRoZSB0b3AgcGFuZWwgbWVudSB0byBlYXNpbHkgZGlzdGluZ3Vpc2ggYmV0d2VlbiB1cGNvbWluZyBhbmQgcGFzdCBldmVudHMuIFlvdSBjYW4gYWxzbyBoaWdobGlnaHQgZXZlbnRzIHRoYXQgYXJlIG9uZ29pbmcuIiwKICAibmFtZSI6ICJEaW0gQ29tcGxldGVkIENhbGVuZGFyIEV2ZW50cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXJjaW5qYWhuL2dub21lLWRpbS1jb21wbGV0ZWQtY2FsZW5kYXItZXZlbnRzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZGltLWNvbXBsZXRlZC1jYWxlbmRhci1ldmVudHNAbWFyY2luamFobi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"},
@@ -6165,10 +6246,11 @@
     "42": {"version": "3", "sha256": "1s9ril86dbbf296zi2ayflvzgvvz6r8xgj6j2k0wfmi4v2g09607", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ25pZmllciBjdXJzb3Igc2hpZnQgZml4LiIsCiAgIm5hbWUiOiAiTWFnZml4IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhbmRyZWouZ3JpY2Vua29AZ21haWwuY29tIgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjMuMzguNiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FuZHJlamdyaWNlbmtvL21hZ2ZpeCIsCiAgInV1aWQiOiAibWFnZml4QGFuZHJlai5ncmljZW5rbyIsCiAgInZlcnNpb24iOiAzCn0="},
     "43": {"version": "3", "sha256": "1s9ril86dbbf296zi2ayflvzgvvz6r8xgj6j2k0wfmi4v2g09607", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ25pZmllciBjdXJzb3Igc2hpZnQgZml4LiIsCiAgIm5hbWUiOiAiTWFnZml4IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhbmRyZWouZ3JpY2Vua29AZ21haWwuY29tIgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjMuMzguNiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FuZHJlamdyaWNlbmtvL21hZ2ZpeCIsCiAgInV1aWQiOiAibWFnZml4QGFuZHJlai5ncmljZW5rbyIsCiAgInZlcnNpb24iOiAzCn0="}
   }}
-, {"uuid": "uppercase-language-indicator@buffersolve", "name": "Uppercase Language Indicator", "pname": "uppercase-language-indicator", "description": "Sets the Keyboard Language indicator in the status area to uppercase.", "link": "https://extensions.gnome.org/extension/5993/uppercase-language-indicator/", "shell_version_map": {
+, {"uuid": "uppercase-language-indicator@buffersolve", "name": "Uppercase Language Indicator", "pname": "uppercase-language-indicator", "description": "Sets the Language indicator in the status area to uppercase.", "link": "https://extensions.gnome.org/extension/5993/uppercase-language-indicator/", "shell_version_map": {
     "43": {"version": "1", "sha256": "0prm3afmr0jfixycfldc4xy0pgqsa0ybxm68nwhmn7dpj77yivcz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHMgdGhlIExhbmd1YWdlIGluZGljYXRvciBpbiB0aGUgc3RhdHVzIGFyZWEgdG8gdXBwZXJjYXNlLiIsCiAgIm5hbWUiOiAiVXBwZXJjYXNlIExhbmd1YWdlIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQnVmZmVyc29sdmUvVXBwZXJjYXNlLUxhbmd1YWdlLUluZGljYXRvciIsCiAgInV1aWQiOiAidXBwZXJjYXNlLWxhbmd1YWdlLWluZGljYXRvckBidWZmZXJzb2x2ZSIsCiAgInZlcnNpb24iOiAxCn0="},
     "44": {"version": "1", "sha256": "0prm3afmr0jfixycfldc4xy0pgqsa0ybxm68nwhmn7dpj77yivcz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHMgdGhlIExhbmd1YWdlIGluZGljYXRvciBpbiB0aGUgc3RhdHVzIGFyZWEgdG8gdXBwZXJjYXNlLiIsCiAgIm5hbWUiOiAiVXBwZXJjYXNlIExhbmd1YWdlIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQnVmZmVyc29sdmUvVXBwZXJjYXNlLUxhbmd1YWdlLUluZGljYXRvciIsCiAgInV1aWQiOiAidXBwZXJjYXNlLWxhbmd1YWdlLWluZGljYXRvckBidWZmZXJzb2x2ZSIsCiAgInZlcnNpb24iOiAxCn0="},
-    "45": {"version": "2", "sha256": "0iwxqjmbacf8xhhz0ijcpfg9d7cg78s77q6rh1lgp38nswnkz6hj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHMgdGhlIExhbmd1YWdlIGluZGljYXRvciBpbiB0aGUgc3RhdHVzIGFyZWEgdG8gdXBwZXJjYXNlLiIsCiAgIm5hbWUiOiAiVXBwZXJjYXNlIExhbmd1YWdlIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CdWZmZXJzb2x2ZS9VcHBlcmNhc2UtTGFuZ3VhZ2UtSW5kaWNhdG9yIiwKICAidXVpZCI6ICJ1cHBlcmNhc2UtbGFuZ3VhZ2UtaW5kaWNhdG9yQGJ1ZmZlcnNvbHZlIiwKICAidmVyc2lvbiI6IDIKfQ=="}
+    "45": {"version": "3", "sha256": "1njbsi7ch1lh54fddm94c6ywyacvsy1pgdj38km3p5w8gg2mssf6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHMgdGhlIExhbmd1YWdlIGluZGljYXRvciBpbiB0aGUgc3RhdHVzIGFyZWEgdG8gdXBwZXJjYXNlLiIsCiAgIm5hbWUiOiAiVXBwZXJjYXNlIExhbmd1YWdlIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQnVmZmVyc29sdmUvVXBwZXJjYXNlLUxhbmd1YWdlLUluZGljYXRvciIsCiAgInV1aWQiOiAidXBwZXJjYXNlLWxhbmd1YWdlLWluZGljYXRvckBidWZmZXJzb2x2ZSIsCiAgInZlcnNpb24iOiAzCn0="},
+    "46": {"version": "3", "sha256": "1njbsi7ch1lh54fddm94c6ywyacvsy1pgdj38km3p5w8gg2mssf6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHMgdGhlIExhbmd1YWdlIGluZGljYXRvciBpbiB0aGUgc3RhdHVzIGFyZWEgdG8gdXBwZXJjYXNlLiIsCiAgIm5hbWUiOiAiVXBwZXJjYXNlIExhbmd1YWdlIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQnVmZmVyc29sdmUvVXBwZXJjYXNlLUxhbmd1YWdlLUluZGljYXRvciIsCiAgInV1aWQiOiAidXBwZXJjYXNlLWxhbmd1YWdlLWluZGljYXRvckBidWZmZXJzb2x2ZSIsCiAgInZlcnNpb24iOiAzCn0="}
   }}
 , {"uuid": "my-hijri-date-extension@ameen-sha", "name": "Hijri Date Extension", "pname": "hijri-date-extension", "description": "Display the Hijri date in the top panel.", "link": "https://extensions.gnome.org/extension/5995/hijri-date-extension/", "shell_version_map": {
     "38": {"version": "5", "sha256": "1zzw95f1643y5g0xfcip0d7kpgpjkdm1dz2ai3k3y1qlg3jjgl4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIEhpanJpIGRhdGUgaW4gdGhlIHRvcCBwYW5lbC4iLAogICJuYW1lIjogIkhpanJpIERhdGUgRXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9BbWVlbi1TaGEtQ2hlZXJhbmdhbi9IaWpyaS1EYXRlLUdub21lLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAibXktaGlqcmktZGF0ZS1leHRlbnNpb25AYW1lZW4tc2hhIiwKICAidmVyc2lvbiI6IDUKfQ=="},
@@ -6184,7 +6266,8 @@
     "42": {"version": "6", "sha256": "10izaph3dg2dcqrzk4ffw10fdv41gvrggidnb236zc89437pp91j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbC1pbi1vbmUgdGltZXIsIHN0b3B3YXRjaCwgcG9tb2Rvcm8sIGFsYXJtcyBhbmQgdG9kb3MiLAogICJuYW1lIjogIkNyb25vbWl4IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemFnb3J0ZW5heTMzMy9jcm9ub21peCIsCiAgInV1aWQiOiAiY3Jvbm9taXhAemFnb3J0ZW5heTMzMyIsCiAgInZlcnNpb24iOiA2Cn0="},
     "43": {"version": "6", "sha256": "10izaph3dg2dcqrzk4ffw10fdv41gvrggidnb236zc89437pp91j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbC1pbi1vbmUgdGltZXIsIHN0b3B3YXRjaCwgcG9tb2Rvcm8sIGFsYXJtcyBhbmQgdG9kb3MiLAogICJuYW1lIjogIkNyb25vbWl4IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemFnb3J0ZW5heTMzMy9jcm9ub21peCIsCiAgInV1aWQiOiAiY3Jvbm9taXhAemFnb3J0ZW5heTMzMyIsCiAgInZlcnNpb24iOiA2Cn0="},
     "44": {"version": "6", "sha256": "10izaph3dg2dcqrzk4ffw10fdv41gvrggidnb236zc89437pp91j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbC1pbi1vbmUgdGltZXIsIHN0b3B3YXRjaCwgcG9tb2Rvcm8sIGFsYXJtcyBhbmQgdG9kb3MiLAogICJuYW1lIjogIkNyb25vbWl4IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemFnb3J0ZW5heTMzMy9jcm9ub21peCIsCiAgInV1aWQiOiAiY3Jvbm9taXhAemFnb3J0ZW5heTMzMyIsCiAgInZlcnNpb24iOiA2Cn0="},
-    "45": {"version": "8", "sha256": "1ki0m31jm9j642nrz7njkhqr1bv8yrqgi6nbfql0zxphdrbsa8mc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbC1pbi1vbmUgdGltZXIsIHN0b3B3YXRjaCwgcG9tb2Rvcm8sIGFsYXJtcyBhbmQgdG9kb3MiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjcm9ub21peCIsCiAgIm5hbWUiOiAiQ3Jvbm9taXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemFnb3J0ZW5heTMzMy9jcm9ub21peCIsCiAgInV1aWQiOiAiY3Jvbm9taXhAemFnb3J0ZW5heTMzMyIsCiAgInZlcnNpb24iOiA4Cn0="}
+    "45": {"version": "8", "sha256": "1ki0m31jm9j642nrz7njkhqr1bv8yrqgi6nbfql0zxphdrbsa8mc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbC1pbi1vbmUgdGltZXIsIHN0b3B3YXRjaCwgcG9tb2Rvcm8sIGFsYXJtcyBhbmQgdG9kb3MiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjcm9ub21peCIsCiAgIm5hbWUiOiAiQ3Jvbm9taXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemFnb3J0ZW5heTMzMy9jcm9ub21peCIsCiAgInV1aWQiOiAiY3Jvbm9taXhAemFnb3J0ZW5heTMzMyIsCiAgInZlcnNpb24iOiA4Cn0="},
+    "46": {"version": "10", "sha256": "01pw3r4lhsbiz5dn1crbdrzlph0jmm0xrw6a7m4qzp717iy3algk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbC1pbi1vbmUgdGltZXIsIHN0b3B3YXRjaCwgcG9tb2Rvcm8sIGFsYXJtcyBhbmQgdG9kb3MiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjcm9ub21peCIsCiAgIm5hbWUiOiAiQ3Jvbm9taXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemFnb3J0ZW5heTMzMy9jcm9ub21peCIsCiAgInV1aWQiOiAiY3Jvbm9taXhAemFnb3J0ZW5heTMzMyIsCiAgInZlcnNpb24iOiAxMAp9"}
   }}
 , {"uuid": "switchlayoutaltshift@seriyyy95.com", "name": "SwitchLayoutAltShift", "pname": "switchlayoutaltshift", "description": "Allows to switch input source using Alt+Shift", "link": "https://extensions.gnome.org/extension/6006/switchlayoutaltshift/", "shell_version_map": {
     "42": {"version": "2", "sha256": "0c1v3kw5kg7gk81hr1xjpj9h4xk0yz02b35dfd906ap0x62sq4wa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0byBzd2l0Y2ggaW5wdXQgc291cmNlIHVzaW5nIEFsdCtTaGlmdCIsCiAgIm5hbWUiOiAiU3dpdGNoTGF5b3V0QWx0U2hpZnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3dpdGNobGF5b3V0YWx0c2hpZnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZXJpeXl5OTUvc3dpdGNobGF5b3V0YWx0c2hpZnQuZ2l0IiwKICAidXVpZCI6ICJzd2l0Y2hsYXlvdXRhbHRzaGlmdEBzZXJpeXl5OTUuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
@@ -6200,7 +6283,8 @@
   }}
 , {"uuid": "notch-clock-offset@christophbrill.de", "name": "Notch Clock Offset", "pname": "notch-clock-offset", "description": "Moves the display of the clock to the left or right of the notch for the webcam when using apple_dcp.show_notch=1", "link": "https://extensions.gnome.org/extension/6018/notch-clock-offset/", "shell_version_map": {
     "44": {"version": "3", "sha256": "0crxx2qryx5g5zpaqwvcr5yw1k4282dh2v637hikz127vvj5l8zj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSBkaXNwbGF5IG9mIHRoZSBjbG9jayB0byB0aGUgbGVmdCBvciByaWdodCBvZiB0aGUgbm90Y2ggZm9yIHRoZSB3ZWJjYW0gd2hlbiB1c2luZyBhcHBsZV9kY3Auc2hvd19ub3RjaD0xIiwKICAibmFtZSI6ICJOb3RjaCBDbG9jayBPZmZzZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm90Y2gtY2xvY2stb2Zmc2V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2Vnb3JlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1ub3RjaC1jbG9jay1vZmZzZXQiLAogICJ1dWlkIjogIm5vdGNoLWNsb2NrLW9mZnNldEBjaHJpc3RvcGhicmlsbC5kZSIsCiAgInZlcnNpb24iOiAzCn0="},
-    "45": {"version": "4", "sha256": "14s096c24ppb5kix6759khcpf7w61v0dvh9d3fiba0r0bs8v2ar3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSBkaXNwbGF5IG9mIHRoZSBjbG9jayB0byB0aGUgbGVmdCBvciByaWdodCBvZiB0aGUgbm90Y2ggZm9yIHRoZSB3ZWJjYW0gd2hlbiB1c2luZyBhcHBsZV9kY3Auc2hvd19ub3RjaD0xIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90Y2gtY2xvY2stb2Zmc2V0IiwKICAibmFtZSI6ICJOb3RjaCBDbG9jayBPZmZzZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm90Y2gtY2xvY2stb2Zmc2V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2Vnb3JlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1ub3RjaC1jbG9jay1vZmZzZXQiLAogICJ1dWlkIjogIm5vdGNoLWNsb2NrLW9mZnNldEBjaHJpc3RvcGhicmlsbC5kZSIsCiAgInZlcnNpb24iOiA0Cn0="}
+    "45": {"version": "5", "sha256": "0jq33rqyhkndpnd4islmg230fc00f5mqdsvmg6858j2fmzdvllc1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSBkaXNwbGF5IG9mIHRoZSBjbG9jayB0byB0aGUgbGVmdCBvciByaWdodCBvZiB0aGUgbm90Y2ggZm9yIHRoZSB3ZWJjYW0gd2hlbiB1c2luZyBhcHBsZV9kY3Auc2hvd19ub3RjaD0xIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90Y2gtY2xvY2stb2Zmc2V0IiwKICAibmFtZSI6ICJOb3RjaCBDbG9jayBPZmZzZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm90Y2gtY2xvY2stb2Zmc2V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9lZ29yZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbm90Y2gtY2xvY2stb2Zmc2V0IiwKICAidXVpZCI6ICJub3RjaC1jbG9jay1vZmZzZXRAY2hyaXN0b3BoYnJpbGwuZGUiLAogICJ2ZXJzaW9uIjogNQp9"},
+    "46": {"version": "5", "sha256": "0jq33rqyhkndpnd4islmg230fc00f5mqdsvmg6858j2fmzdvllc1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSBkaXNwbGF5IG9mIHRoZSBjbG9jayB0byB0aGUgbGVmdCBvciByaWdodCBvZiB0aGUgbm90Y2ggZm9yIHRoZSB3ZWJjYW0gd2hlbiB1c2luZyBhcHBsZV9kY3Auc2hvd19ub3RjaD0xIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90Y2gtY2xvY2stb2Zmc2V0IiwKICAibmFtZSI6ICJOb3RjaCBDbG9jayBPZmZzZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm90Y2gtY2xvY2stb2Zmc2V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9lZ29yZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbm90Y2gtY2xvY2stb2Zmc2V0IiwKICAidXVpZCI6ICJub3RjaC1jbG9jay1vZmZzZXRAY2hyaXN0b3BoYnJpbGwuZGUiLAogICJ2ZXJzaW9uIjogNQp9"}
   }}
 , {"uuid": "maccymenu@dgvai.com", "name": "Maccy Menu", "pname": "maccy-menu", "description": "Menu Item like MacOS", "link": "https://extensions.gnome.org/extension/6021/maccy-menu/", "shell_version_map": {
     "42": {"version": "9", "sha256": "1nrw6lk4h8zxxjl3mx8zwqs4rnpmbyqk8kq07y8mqjngdzvjz7v2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1lbnUgSXRlbSBsaWtlIE1hY09TIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1hY2N5bWVudSIsCiAgIm5hbWUiOiAiTWFjY3kgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYWNjeW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kZ3ZhaS9tYWNjeW1lbnUtZ25vbWUtc2hlbGwtZXh0IiwKICAidXVpZCI6ICJtYWNjeW1lbnVAZGd2YWkuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="},
@@ -6219,12 +6303,14 @@
 , {"uuid": "systemd-status@ne0sight.github.io", "name": "Systemd Status", "pname": "systemd-status", "description": "Show systemd system state", "link": "https://extensions.gnome.org/extension/6045/systemd-status/", "shell_version_map": {
     "43": {"version": "5", "sha256": "103f6rn0py6ivrxhgmr11bxqj7lnd15w8f4pl1k88a11r2gkpqb8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc3lzdGVtZCBzeXN0ZW0gc3RhdGUiLAogICJuYW1lIjogIlN5c3RlbWQgU3RhdHVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uRTBzSWdoVC9zeXN0ZW1kLXN0YXR1cy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInN5c3RlbWQtc3RhdHVzQG5lMHNpZ2h0LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1Cn0="},
     "44": {"version": "5", "sha256": "103f6rn0py6ivrxhgmr11bxqj7lnd15w8f4pl1k88a11r2gkpqb8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc3lzdGVtZCBzeXN0ZW0gc3RhdGUiLAogICJuYW1lIjogIlN5c3RlbWQgU3RhdHVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uRTBzSWdoVC9zeXN0ZW1kLXN0YXR1cy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInN5c3RlbWQtc3RhdHVzQG5lMHNpZ2h0LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1Cn0="},
-    "45": {"version": "6", "sha256": "0mwsyg2df835cww9hmp86mz5ncxlggiw746r0kyl3xa6pqyxpfrx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc3lzdGVtZCBzeXN0ZW0gc3RhdGUiLAogICJuYW1lIjogIlN5c3RlbWQgU3RhdHVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25FMHNJZ2hUL3N5c3RlbWQtc3RhdHVzLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic3lzdGVtZC1zdGF0dXNAbmUwc2lnaHQuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}
+    "45": {"version": "7", "sha256": "09i43vmzrrkm1iv7jwfw497q02rx1swcwsacq77qj2nwwlbnjwwb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc3lzdGVtZCBzeXN0ZW0gc3RhdGUiLAogICJuYW1lIjogIlN5c3RlbWQgU3RhdHVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uRTBzSWdoVC9zeXN0ZW1kLXN0YXR1cy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInN5c3RlbWQtc3RhdHVzQG5lMHNpZ2h0LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3Cn0="},
+    "46": {"version": "7", "sha256": "09i43vmzrrkm1iv7jwfw497q02rx1swcwsacq77qj2nwwlbnjwwb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc3lzdGVtZCBzeXN0ZW0gc3RhdGUiLAogICJuYW1lIjogIlN5c3RlbWQgU3RhdHVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uRTBzSWdoVC9zeXN0ZW1kLXN0YXR1cy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInN5c3RlbWQtc3RhdHVzQG5lMHNpZ2h0LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3Cn0="}
   }}
-, {"uuid": "peek-top-bar-on-fullscreen@marcinjahn.com", "name": "Peek Top Bar on Fullscreen", "pname": "peek-top-bar-on-fullscreen", "description": "Show the top bar (panel) on demand while having full screen content on (like a YouTube video). Just hover the mouse cursor to the top of the screen, and the panel will show up. This way, you can quickly check the time, or swich some toggles. This is similar to what macOS offers for full screen apps.\n\nOn Wayland, to hide the top bar, you need to click the primary mouse button somewhere outside of the bar. On X11, just take the cursor away from the bar.\nThis extension is incompatible with Blur My Shell extension.", "link": "https://extensions.gnome.org/extension/6048/peek-top-bar-on-fullscreen/", "shell_version_map": {
+, {"uuid": "peek-top-bar-on-fullscreen@marcinjahn.com", "name": "Peek Top Bar on Fullscreen", "pname": "peek-top-bar-on-fullscreen", "description": "Show the top bar (panel) on demand while having full screen content on (like a YouTube video). Just hover the mouse cursor to the top of the screen, and the panel will show up. This way, you can quickly check the time, or swich some toggles. This is similar to what macOS offers for full screen apps.\n\nThis extension is incompatible with Blur My Shell extension.", "link": "https://extensions.gnome.org/extension/6048/peek-top-bar-on-fullscreen/", "shell_version_map": {
     "43": {"version": "8", "sha256": "1p196by16zmgsy5af1jsgrm38p6vrrzh1pn2nbar6zw25pldsn8p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHRvcCBiYXIgKHBhbmVsKSBvbiBkZW1hbmQgd2hpbGUgaGF2aW5nIGZ1bGwgc2NyZWVuIGNvbnRlbnQgb24gKGxpa2UgYSBZb3VUdWJlIHZpZGVvKS4gSnVzdCBob3ZlciB0aGUgbW91c2UgY3Vyc29yIHRvIHRoZSB0b3Agb2YgdGhlIHNjcmVlbiwgYW5kIHRoZSBwYW5lbCB3aWxsIHNob3cgdXAuIFRoaXMgd2F5LCB5b3UgY2FuIHF1aWNrbHkgY2hlY2sgdGhlIHRpbWUsIG9yIHN3aWNoIHNvbWUgdG9nZ2xlcy4gVGhpcyBpcyBzaW1pbGFyIHRvIHdoYXQgbWFjT1Mgb2ZmZXJzIGZvciBmdWxsIHNjcmVlbiBhcHBzLlxuXG5PbiBXYXlsYW5kLCB0byBoaWRlIHRoZSB0b3AgYmFyLCB5b3UgbmVlZCB0byBjbGljayB0aGUgcHJpbWFyeSBtb3VzZSBidXR0b24gc29tZXdoZXJlIG91dHNpZGUgb2YgdGhlIGJhci4gT24gWDExLCBqdXN0IHRha2UgdGhlIGN1cnNvciBhd2F5IGZyb20gdGhlIGJhci5cblRoaXMgZXh0ZW5zaW9uIGlzIGluY29tcGF0aWJsZSB3aXRoIEJsdXIgTXkgU2hlbGwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiUGVlayBUb3AgQmFyIG9uIEZ1bGxzY3JlZW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmNpbmphaG4vZ25vbWUtcGVlay10b3AtYmFyLW9uLWZ1bGxzY3JlZW4tZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJwZWVrLXRvcC1iYXItb24tZnVsbHNjcmVlbkBtYXJjaW5qYWhuLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="},
     "44": {"version": "8", "sha256": "1p196by16zmgsy5af1jsgrm38p6vrrzh1pn2nbar6zw25pldsn8p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHRvcCBiYXIgKHBhbmVsKSBvbiBkZW1hbmQgd2hpbGUgaGF2aW5nIGZ1bGwgc2NyZWVuIGNvbnRlbnQgb24gKGxpa2UgYSBZb3VUdWJlIHZpZGVvKS4gSnVzdCBob3ZlciB0aGUgbW91c2UgY3Vyc29yIHRvIHRoZSB0b3Agb2YgdGhlIHNjcmVlbiwgYW5kIHRoZSBwYW5lbCB3aWxsIHNob3cgdXAuIFRoaXMgd2F5LCB5b3UgY2FuIHF1aWNrbHkgY2hlY2sgdGhlIHRpbWUsIG9yIHN3aWNoIHNvbWUgdG9nZ2xlcy4gVGhpcyBpcyBzaW1pbGFyIHRvIHdoYXQgbWFjT1Mgb2ZmZXJzIGZvciBmdWxsIHNjcmVlbiBhcHBzLlxuXG5PbiBXYXlsYW5kLCB0byBoaWRlIHRoZSB0b3AgYmFyLCB5b3UgbmVlZCB0byBjbGljayB0aGUgcHJpbWFyeSBtb3VzZSBidXR0b24gc29tZXdoZXJlIG91dHNpZGUgb2YgdGhlIGJhci4gT24gWDExLCBqdXN0IHRha2UgdGhlIGN1cnNvciBhd2F5IGZyb20gdGhlIGJhci5cblRoaXMgZXh0ZW5zaW9uIGlzIGluY29tcGF0aWJsZSB3aXRoIEJsdXIgTXkgU2hlbGwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiUGVlayBUb3AgQmFyIG9uIEZ1bGxzY3JlZW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmNpbmphaG4vZ25vbWUtcGVlay10b3AtYmFyLW9uLWZ1bGxzY3JlZW4tZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJwZWVrLXRvcC1iYXItb24tZnVsbHNjcmVlbkBtYXJjaW5qYWhuLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="},
-    "45": {"version": "10", "sha256": "0b9d87yizkm67clk2pk5hzsmzgm7wjjzahq11z4pcmgbsl1iw418", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHRvcCBiYXIgKHBhbmVsKSBvbiBkZW1hbmQgd2hpbGUgaGF2aW5nIGZ1bGwgc2NyZWVuIGNvbnRlbnQgb24gKGxpa2UgYSBZb3VUdWJlIHZpZGVvKS4gSnVzdCBob3ZlciB0aGUgbW91c2UgY3Vyc29yIHRvIHRoZSB0b3Agb2YgdGhlIHNjcmVlbiwgYW5kIHRoZSBwYW5lbCB3aWxsIHNob3cgdXAuIFRoaXMgd2F5LCB5b3UgY2FuIHF1aWNrbHkgY2hlY2sgdGhlIHRpbWUsIG9yIHN3aWNoIHNvbWUgdG9nZ2xlcy4gVGhpcyBpcyBzaW1pbGFyIHRvIHdoYXQgbWFjT1Mgb2ZmZXJzIGZvciBmdWxsIHNjcmVlbiBhcHBzLlxuXG5PbiBXYXlsYW5kLCB0byBoaWRlIHRoZSB0b3AgYmFyLCB5b3UgbmVlZCB0byBjbGljayB0aGUgcHJpbWFyeSBtb3VzZSBidXR0b24gc29tZXdoZXJlIG91dHNpZGUgb2YgdGhlIGJhci4gT24gWDExLCBqdXN0IHRha2UgdGhlIGN1cnNvciBhd2F5IGZyb20gdGhlIGJhci5cblRoaXMgZXh0ZW5zaW9uIGlzIGluY29tcGF0aWJsZSB3aXRoIEJsdXIgTXkgU2hlbGwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiUGVlayBUb3AgQmFyIG9uIEZ1bGxzY3JlZW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFyY2luamFobi9nbm9tZS1wZWVrLXRvcC1iYXItb24tZnVsbHNjcmVlbi1leHRlbnNpb24iLAogICJ1dWlkIjogInBlZWstdG9wLWJhci1vbi1mdWxsc2NyZWVuQG1hcmNpbmphaG4uY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}
+    "45": {"version": "10", "sha256": "0b9d87yizkm67clk2pk5hzsmzgm7wjjzahq11z4pcmgbsl1iw418", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHRvcCBiYXIgKHBhbmVsKSBvbiBkZW1hbmQgd2hpbGUgaGF2aW5nIGZ1bGwgc2NyZWVuIGNvbnRlbnQgb24gKGxpa2UgYSBZb3VUdWJlIHZpZGVvKS4gSnVzdCBob3ZlciB0aGUgbW91c2UgY3Vyc29yIHRvIHRoZSB0b3Agb2YgdGhlIHNjcmVlbiwgYW5kIHRoZSBwYW5lbCB3aWxsIHNob3cgdXAuIFRoaXMgd2F5LCB5b3UgY2FuIHF1aWNrbHkgY2hlY2sgdGhlIHRpbWUsIG9yIHN3aWNoIHNvbWUgdG9nZ2xlcy4gVGhpcyBpcyBzaW1pbGFyIHRvIHdoYXQgbWFjT1Mgb2ZmZXJzIGZvciBmdWxsIHNjcmVlbiBhcHBzLlxuXG5PbiBXYXlsYW5kLCB0byBoaWRlIHRoZSB0b3AgYmFyLCB5b3UgbmVlZCB0byBjbGljayB0aGUgcHJpbWFyeSBtb3VzZSBidXR0b24gc29tZXdoZXJlIG91dHNpZGUgb2YgdGhlIGJhci4gT24gWDExLCBqdXN0IHRha2UgdGhlIGN1cnNvciBhd2F5IGZyb20gdGhlIGJhci5cblRoaXMgZXh0ZW5zaW9uIGlzIGluY29tcGF0aWJsZSB3aXRoIEJsdXIgTXkgU2hlbGwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiUGVlayBUb3AgQmFyIG9uIEZ1bGxzY3JlZW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFyY2luamFobi9nbm9tZS1wZWVrLXRvcC1iYXItb24tZnVsbHNjcmVlbi1leHRlbnNpb24iLAogICJ1dWlkIjogInBlZWstdG9wLWJhci1vbi1mdWxsc2NyZWVuQG1hcmNpbmphaG4uY29tIiwKICAidmVyc2lvbiI6IDEwCn0="},
+    "46": {"version": "14", "sha256": "1cbcgh457k1ir370k0hvzxkns4h476v2smx10jq7z35rs91ahpd5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHRvcCBiYXIgKHBhbmVsKSBvbiBkZW1hbmQgd2hpbGUgaGF2aW5nIGZ1bGwgc2NyZWVuIGNvbnRlbnQgb24gKGxpa2UgYSBZb3VUdWJlIHZpZGVvKS4gSnVzdCBob3ZlciB0aGUgbW91c2UgY3Vyc29yIHRvIHRoZSB0b3Agb2YgdGhlIHNjcmVlbiwgYW5kIHRoZSBwYW5lbCB3aWxsIHNob3cgdXAuIFRoaXMgd2F5LCB5b3UgY2FuIHF1aWNrbHkgY2hlY2sgdGhlIHRpbWUsIG9yIHN3aWNoIHNvbWUgdG9nZ2xlcy4gVGhpcyBpcyBzaW1pbGFyIHRvIHdoYXQgbWFjT1Mgb2ZmZXJzIGZvciBmdWxsIHNjcmVlbiBhcHBzLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBpbmNvbXBhdGlibGUgd2l0aCBCbHVyIE15IFNoZWxsIGV4dGVuc2lvbi4iLAogICJuYW1lIjogIlBlZWsgVG9wIEJhciBvbiBGdWxsc2NyZWVuIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmNpbmphaG4vZ25vbWUtcGVlay10b3AtYmFyLW9uLWZ1bGxzY3JlZW4tZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJwZWVrLXRvcC1iYXItb24tZnVsbHNjcmVlbkBtYXJjaW5qYWhuLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"}
   }}
 , {"uuid": "quick@web.search", "name": "Quick Web Search", "pname": "quick-web-search", "description": "Use Super key for quick web search", "link": "https://extensions.gnome.org/extension/6051/quick-web-search/", "shell_version_map": {
     "42": {"version": "7", "sha256": "0w4irhmgdjr60lxs832a6pq3ywz6l9gd9yq5az6szqb9mv0jln5k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBTdXBlciBrZXkgZm9yIHF1aWNrIHdlYiBzZWFyY2giLAogICJuYW1lIjogIlF1aWNrIFdlYiBTZWFyY2giLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucXVpY2t3ZWJzZWFyY2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vY2hldC1idWRkeS9xdWljay13ZWItc2VhcmNoIiwKICAidXVpZCI6ICJxdWlja0B3ZWIuc2VhcmNoIiwKICAidmVyc2lvbiI6IDcKfQ=="},
@@ -6269,7 +6355,8 @@
     "42": {"version": "5", "sha256": "0bsl6iwrjkf0jn4j6y7m7jprxrjmr60alwj613nzxdnqqpawiq3i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldywgbWF4aW1pemVkIGFuZCBmdWxsc2NyZWVuIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuRm9ya2VkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlLiIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiB0byBFbXB0eSBXb3Jrc3BhY2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29uc2FoL2Z1bGxzY3JlZW4tdG8tbmV3LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2VAYWlvbm8uZGV2IiwKICAidmVyc2lvbiI6IDUKfQ=="},
     "43": {"version": "5", "sha256": "0bsl6iwrjkf0jn4j6y7m7jprxrjmr60alwj613nzxdnqqpawiq3i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldywgbWF4aW1pemVkIGFuZCBmdWxsc2NyZWVuIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuRm9ya2VkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlLiIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiB0byBFbXB0eSBXb3Jrc3BhY2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29uc2FoL2Z1bGxzY3JlZW4tdG8tbmV3LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2VAYWlvbm8uZGV2IiwKICAidmVyc2lvbiI6IDUKfQ=="},
     "44": {"version": "5", "sha256": "0bsl6iwrjkf0jn4j6y7m7jprxrjmr60alwj613nzxdnqqpawiq3i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldywgbWF4aW1pemVkIGFuZCBmdWxsc2NyZWVuIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuRm9ya2VkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlLiIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiB0byBFbXB0eSBXb3Jrc3BhY2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29uc2FoL2Z1bGxzY3JlZW4tdG8tbmV3LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2VAYWlvbm8uZGV2IiwKICAidmVyc2lvbiI6IDUKfQ=="},
-    "45": {"version": "6", "sha256": "0jsns698ap00iqgjrbx88f547j828813b2xdqlwjc8w115a1mayz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldywgbWF4aW1pemVkIGFuZCBmdWxsc2NyZWVuIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuRm9ya2VkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlLiIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiB0byBFbXB0eSBXb3Jrc3BhY2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb25zYWgvZnVsbHNjcmVlbi10by1uZXctd29ya3NwYWNlIiwKICAidXVpZCI6ICJmdWxsc2NyZWVuLXRvLWVtcHR5LXdvcmtzcGFjZUBhaW9uby5kZXYiLAogICJ2ZXJzaW9uIjogNgp9"}
+    "45": {"version": "6", "sha256": "0jsns698ap00iqgjrbx88f547j828813b2xdqlwjc8w115a1mayz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldywgbWF4aW1pemVkIGFuZCBmdWxsc2NyZWVuIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuRm9ya2VkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlLiIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiB0byBFbXB0eSBXb3Jrc3BhY2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb25zYWgvZnVsbHNjcmVlbi10by1uZXctd29ya3NwYWNlIiwKICAidXVpZCI6ICJmdWxsc2NyZWVuLXRvLWVtcHR5LXdvcmtzcGFjZUBhaW9uby5kZXYiLAogICJ2ZXJzaW9uIjogNgp9"},
+    "46": {"version": "7", "sha256": "1zhc78kwbh4yjfqmqsrxg5f7m8jf7adnid42rayyqgvhcgggf5dv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldywgbWF4aW1pemVkIGFuZCBmdWxsc2NyZWVuIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuRm9ya2VkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlLiIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiB0byBFbXB0eSBXb3Jrc3BhY2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb25zYWgvZnVsbHNjcmVlbi10by1uZXctd29ya3NwYWNlIiwKICAidXVpZCI6ICJmdWxsc2NyZWVuLXRvLWVtcHR5LXdvcmtzcGFjZUBhaW9uby5kZXYiLAogICJ2ZXJzaW9uIjogNwp9"}
   }}
 , {"uuid": "fix-focus-on-workspace-switch@hiddn.github.com", "name": "Fix focus on workspace switch", "pname": "fix-focus-on-workspace-switch", "description": "When a workspace switch occurs, this extension ensures the focus is on a window located in the new workspace.\n\nThis extension is essential for a multi-monitor setup using multiple workspaces.", "link": "https://extensions.gnome.org/extension/6084/fix-focus-on-workspace-switch/", "shell_version_map": {
     "40": {"version": "7", "sha256": "1xbyn41h7kynm0ydj6qsh05rzd11n0zclwvmh5ypzzk5h6lml99s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gYSB3b3Jrc3BhY2Ugc3dpdGNoIG9jY3VycywgdGhpcyBleHRlbnNpb24gZW5zdXJlcyB0aGUgZm9jdXMgaXMgb24gYSB3aW5kb3cgbG9jYXRlZCBpbiB0aGUgbmV3IHdvcmtzcGFjZS5cblxuVGhpcyBleHRlbnNpb24gaXMgZXNzZW50aWFsIGZvciBhIG11bHRpLW1vbml0b3Igc2V0dXAgdXNpbmcgbXVsdGlwbGUgd29ya3NwYWNlcy4iLAogICJuYW1lIjogIkZpeCBmb2N1cyBvbiB3b3Jrc3BhY2Ugc3dpdGNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oaWRkbi9maXgtZm9jdXMtb24td29ya3NwYWNlLXN3aXRjaCIsCiAgInV1aWQiOiAiZml4LWZvY3VzLW9uLXdvcmtzcGFjZS1zd2l0Y2hAaGlkZG4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="},
@@ -6287,7 +6374,7 @@
     "43": {"version": "13", "sha256": "0wb5blp4kx1wasfqlwb8nh0kpcc14azm9rr5xqr4cw3wm3z2n29q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBFeHRlbnNpb24gdGhhdCBzaG93cyB5b3VyIGN1cnJlbnQgcHVibGljIElQIGFkZHJlc3MuIEl0J3MgcmV0cmlldmVkIGJ5IGEgY3VybCBjb21tYW5kIHRvIGlwLmxhY29kaWZpY2Fkb3JhLmNvbSIsCiAgIm5hbWUiOiAiU2hvdyBQdWJsaWMgSVAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VsY2FtaWxldC9zaG93LWlwLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic2hvd2lwQGxhY29kaWZpY2Fkb3JhLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"},
     "44": {"version": "13", "sha256": "0wb5blp4kx1wasfqlwb8nh0kpcc14azm9rr5xqr4cw3wm3z2n29q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBFeHRlbnNpb24gdGhhdCBzaG93cyB5b3VyIGN1cnJlbnQgcHVibGljIElQIGFkZHJlc3MuIEl0J3MgcmV0cmlldmVkIGJ5IGEgY3VybCBjb21tYW5kIHRvIGlwLmxhY29kaWZpY2Fkb3JhLmNvbSIsCiAgIm5hbWUiOiAiU2hvdyBQdWJsaWMgSVAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VsY2FtaWxldC9zaG93LWlwLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic2hvd2lwQGxhY29kaWZpY2Fkb3JhLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}
   }}
-, {"uuid": "smile-extension@mijorus.it", "name": "Smile - complementary extension", "pname": "smile-complementary-extension", "description": "Automatically paste Emojis from the Smile emoji picker", "link": "https://extensions.gnome.org/extension/6096/smile-complementary-extension/", "shell_version_map": {
+, {"uuid": "smile-extension@mijorus.it", "name": "Smile - complementary extension", "pname": "smile-complementary-extension", "description": "Automatically paste Emojis from the Smile emoji picker.", "link": "https://extensions.gnome.org/extension/6096/smile-complementary-extension/", "shell_version_map": {
     "42": {"version": "4", "sha256": "1nzzsm6ai8b0l8c5xvx83cspm4gzx1n6wfdrbik3g7xam06hr861", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgcGFzdGUgRW1vamlzIGZyb20gdGhlIFNtaWxlIGVtb2ppIHBpY2tlciIsCiAgIm5hbWUiOiAiU21pbGUgLSBjb21wbGVtZW50YXJ5IGV4dGVuc2lvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pam9ydXMvc21pbGUtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJzbWlsZS1leHRlbnNpb25AbWlqb3J1cy5pdCIsCiAgInZlcnNpb24iOiA0Cn0="},
     "43": {"version": "4", "sha256": "1nzzsm6ai8b0l8c5xvx83cspm4gzx1n6wfdrbik3g7xam06hr861", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgcGFzdGUgRW1vamlzIGZyb20gdGhlIFNtaWxlIGVtb2ppIHBpY2tlciIsCiAgIm5hbWUiOiAiU21pbGUgLSBjb21wbGVtZW50YXJ5IGV4dGVuc2lvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pam9ydXMvc21pbGUtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJzbWlsZS1leHRlbnNpb25AbWlqb3J1cy5pdCIsCiAgInZlcnNpb24iOiA0Cn0="},
     "44": {"version": "4", "sha256": "1nzzsm6ai8b0l8c5xvx83cspm4gzx1n6wfdrbik3g7xam06hr861", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgcGFzdGUgRW1vamlzIGZyb20gdGhlIFNtaWxlIGVtb2ppIHBpY2tlciIsCiAgIm5hbWUiOiAiU21pbGUgLSBjb21wbGVtZW50YXJ5IGV4dGVuc2lvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pam9ydXMvc21pbGUtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJzbWlsZS1leHRlbnNpb25AbWlqb3J1cy5pdCIsCiAgInZlcnNpb24iOiA0Cn0="},
@@ -6295,11 +6382,11 @@
     "46": {"version": "8", "sha256": "1r2w9hdzp1d0x55wf6w1dwwn80cda9fg0y0adxk37qx083hkmj0g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgcGFzdGUgRW1vamlzIGZyb20gdGhlIFNtaWxlIGVtb2ppIHBpY2tlciIsCiAgIm5hbWUiOiAiU21pbGUgLSBjb21wbGVtZW50YXJ5IGV4dGVuc2lvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWlqb3J1cy9zbWlsZS1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInNtaWxlLWV4dGVuc2lvbkBtaWpvcnVzLml0IiwKICAidmVyc2lvbiI6IDgKfQ=="}
   }}
 , {"uuid": "paperwm@paperwm.github.com", "name": "PaperWM", "pname": "paperwm", "description": "Tiling window manager with a twist!\n\n PaperWM is a Gnome Shell extension which provides scrollable tiling of windows and per monitor workspaces. It's inspired by paper notebooks and tiling window managers.\n\nPlease see our github page to report issues, understand features, and learn how to configure PaperWM to your liking.", "link": "https://extensions.gnome.org/extension/6099/paperwm/", "shell_version_map": {
-    "42": {"version": "71", "sha256": "1w626hadaskid3dn39ab4nm9d3sky852rjng4vy4l62a46xvrn7k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNzEsCiAgInZlcnNpb24tbmFtZSI6ICI0NC4xNy4wIgp9"},
-    "43": {"version": "71", "sha256": "1w626hadaskid3dn39ab4nm9d3sky852rjng4vy4l62a46xvrn7k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNzEsCiAgInZlcnNpb24tbmFtZSI6ICI0NC4xNy4wIgp9"},
-    "44": {"version": "71", "sha256": "1w626hadaskid3dn39ab4nm9d3sky852rjng4vy4l62a46xvrn7k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNzEsCiAgInZlcnNpb24tbmFtZSI6ICI0NC4xNy4wIgp9"},
-    "45": {"version": "100", "sha256": "0b6sl818smh6l5jdmcr4qq9jxn0111rrk2zsl0r9zfdxsd12g05n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImpheXRhYWxhIiwKICAgICJwYXRyZW9uIjogInZhbHBhY2tldHQiCiAgfSwKICAibmFtZSI6ICJQYXBlcldNIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBhcGVyd20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAwLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuNi40Igp9"},
-    "46": {"version": "100", "sha256": "0b6sl818smh6l5jdmcr4qq9jxn0111rrk2zsl0r9zfdxsd12g05n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImpheXRhYWxhIiwKICAgICJwYXRyZW9uIjogInZhbHBhY2tldHQiCiAgfSwKICAibmFtZSI6ICJQYXBlcldNIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBhcGVyd20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAwLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuNi40Igp9"}
+    "42": {"version": "101", "sha256": "1f88bvkwdvvp35ih4spxkff11n30blh043dr1xnihw8hh78bwphi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAxLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMTguMCIKfQ=="},
+    "43": {"version": "101", "sha256": "1f88bvkwdvvp35ih4spxkff11n30blh043dr1xnihw8hh78bwphi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAxLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMTguMCIKfQ=="},
+    "44": {"version": "101", "sha256": "1f88bvkwdvvp35ih4spxkff11n30blh043dr1xnihw8hh78bwphi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAxLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMTguMCIKfQ=="},
+    "45": {"version": "112", "sha256": "1fa5w7374xlxl1xcp2p8dr7jrs671bwz28x8hp9k6wxc9cqapxkl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImpheXRhYWxhIiwKICAgICJwYXRyZW9uIjogInZhbHBhY2tldHQiCiAgfSwKICAibmFtZSI6ICJQYXBlcldNIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBhcGVyd20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTEyLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuMTAuMiIKfQ=="},
+    "46": {"version": "112", "sha256": "1fa5w7374xlxl1xcp2p8dr7jrs671bwz28x8hp9k6wxc9cqapxkl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImpheXRhYWxhIiwKICAgICJwYXRyZW9uIjogInZhbHBhY2tldHQiCiAgfSwKICAibmFtZSI6ICJQYXBlcldNIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBhcGVyd20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTEyLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuMTAuMiIKfQ=="}
   }}
 , {"uuid": "lightshell@dikasp.gitlab", "name": "Light Shell", "pname": "light-shell", "description": "the missing full light style gnome shell theme you had been looking for :D\n\nNOTE: later release are merged and continue within Luminus extension. brings various improvement and dark mode integration.", "link": "https://extensions.gnome.org/extension/6102/light-shell/", "shell_version_map": {
     "42": {"version": "11", "sha256": "0fqshl06w2amy8d3gw2car4rab6zqpi79dg5dr05d5swggq1vm8n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGx5IGZ1bGwgbGlnaHQgdGhlbWUgaW50byBkZWZhdWx0IGdub21lIHNoZWxsLCBpbmNsdWRpbmcgbGlnaHQgb3ZlcnZpZXcuIiwKICAibmFtZSI6ICJMaWdodCBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9kaWthc2V0eWFwcmF5b2dpL2xpZ2h0LXNoZWxsIiwKICAidXVpZCI6ICJsaWdodHNoZWxsQGRpa2FzcC5naXRsYWIiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
@@ -6308,7 +6395,9 @@
     "45": {"version": "24", "sha256": "1kg12n5gaxgdypv13dv6l7h0na72n0myc46c3yzzs9wsfyrhcfpg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5PVEU6IGxhdGVyIHJlbGVhc2UgYXJlIG1lcmdlZCBhbmQgY29udGludWUgd2l0aGluIEx1bWludXMgZXh0ZW5zaW9uLiBicmluZ3MgdmFyaW91cyBpbXByb3ZlbWVudCBhbmQgZGFyayBtb2RlIGludGVncmF0aW9uLiIsCiAgIm5hbWUiOiAiTGlnaHQgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZGlrYXNldHlhcHJheW9naS9saWdodC1zaGVsbCIsCiAgInV1aWQiOiAibGlnaHRzaGVsbEBkaWthc3AuZ2l0bGFiIiwKICAidmVyc2lvbiI6IDI0Cn0="}
   }}
 , {"uuid": "input-source-binder@mifishe.github.com", "name": "Input Source Binder", "pname": "input-source-binder", "description": "Binds shortcuts to input sources (up to 5). Alt+Shift+1 - the first input source, Alt+Shift+2 - the second one and etc.", "link": "https://extensions.gnome.org/extension/6105/input-source-binder/", "shell_version_map": {
-    "44": {"version": "3", "sha256": "1gfbwy1nhmk311n5s7464sv0p1lb71wpbx8fp9jb0rarmw2vrshl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJpbmRzIHNob3J0Y3V0cyB0byBpbnB1dCBzb3VyY2VzICh1cCB0byA1KS4gQWx0K1NoaWZ0KzEgLSB0aGUgZmlyc3QgaW5wdXQgc291cmNlLCBBbHQrU2hpZnQrMiAtIHRoZSBzZWNvbmQgb25lIGFuZCBldGMuIiwKICAibmFtZSI6ICJJbnB1dCBTb3VyY2UgQmluZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmlucHV0LXNvdXJjZS1iaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWlmaXNoZS9nbm9tZS1pbnB1dC1zb3VyY2UtYmluZGVyIiwKICAidXVpZCI6ICJpbnB1dC1zb3VyY2UtYmluZGVyQG1pZmlzaGUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}
+    "44": {"version": "3", "sha256": "1gfbwy1nhmk311n5s7464sv0p1lb71wpbx8fp9jb0rarmw2vrshl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJpbmRzIHNob3J0Y3V0cyB0byBpbnB1dCBzb3VyY2VzICh1cCB0byA1KS4gQWx0K1NoaWZ0KzEgLSB0aGUgZmlyc3QgaW5wdXQgc291cmNlLCBBbHQrU2hpZnQrMiAtIHRoZSBzZWNvbmQgb25lIGFuZCBldGMuIiwKICAibmFtZSI6ICJJbnB1dCBTb3VyY2UgQmluZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmlucHV0LXNvdXJjZS1iaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWlmaXNoZS9nbm9tZS1pbnB1dC1zb3VyY2UtYmluZGVyIiwKICAidXVpZCI6ICJpbnB1dC1zb3VyY2UtYmluZGVyQG1pZmlzaGUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="},
+    "45": {"version": "6", "sha256": "01i2liqavxdp9hc41rryd5lx3ldbvx9xraaf2al81r5wqzcfnv7h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJpbmRzIHNob3J0Y3V0cyB0byBpbnB1dCBzb3VyY2VzICh1cCB0byA1KS4gQWx0K1NoaWZ0KzEgLSB0aGUgZmlyc3QgaW5wdXQgc291cmNlLCBBbHQrU2hpZnQrMiAtIHRoZSBzZWNvbmQgb25lIGFuZCBldGMuIiwKICAibmFtZSI6ICJJbnB1dCBTb3VyY2UgQmluZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmlucHV0LXNvdXJjZS1iaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pZmlzaGUvZ25vbWUtaW5wdXQtc291cmNlLWJpbmRlciIsCiAgInV1aWQiOiAiaW5wdXQtc291cmNlLWJpbmRlckBtaWZpc2hlLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"},
+    "46": {"version": "6", "sha256": "01i2liqavxdp9hc41rryd5lx3ldbvx9xraaf2al81r5wqzcfnv7h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJpbmRzIHNob3J0Y3V0cyB0byBpbnB1dCBzb3VyY2VzICh1cCB0byA1KS4gQWx0K1NoaWZ0KzEgLSB0aGUgZmlyc3QgaW5wdXQgc291cmNlLCBBbHQrU2hpZnQrMiAtIHRoZSBzZWNvbmQgb25lIGFuZCBldGMuIiwKICAibmFtZSI6ICJJbnB1dCBTb3VyY2UgQmluZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmlucHV0LXNvdXJjZS1iaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pZmlzaGUvZ25vbWUtaW5wdXQtc291cmNlLWJpbmRlciIsCiAgInV1aWQiOiAiaW5wdXQtc291cmNlLWJpbmRlckBtaWZpc2hlLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}
   }}
 , {"uuid": "noannoyance-fork@vrba.dev", "name": "NoAnnoyance (fork)", "pname": "noannoyance-fork", "description": "Another extension, that removes the 'Window is ready' notification and puts the window into focus. In contrast to all the other extensions, this uses ES6 syntax and is actively maintained. This extension is a fork of the original with support for GNOME 45.", "link": "https://extensions.gnome.org/extension/6109/noannoyance-fork/", "shell_version_map": {
     "40": {"version": "1", "sha256": "1194s4jh78appiqqyiyh3vilw21f5c0pyl1v9vsfsi5lhgv63h88", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uLCB0aGF0IHJlbW92ZXMgdGhlICdXaW5kb3cgaXMgcmVhZHknIG5vdGlmaWNhdGlvbiBhbmQgcHV0cyB0aGUgd2luZG93IGludG8gZm9jdXMuIEluIGNvbnRyYXN0IHRvIGFsbCB0aGUgb3RoZXIgZXh0ZW5zaW9ucywgdGhpcyB1c2VzIEVTNiBzeW50YXggYW5kIGlzIGFjdGl2ZWx5IG1haW50YWluZWQuIFRoaXMgZXh0ZW5zaW9uIGlzIGEgZm9yayBvZiB0aGUgb3JpZ2luYWwgd2l0aCBzdXBwb3J0IGZvciBHTk9NRSA0NC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbm9hbm5veWFuY2UtZm9yayIsCiAgIm5hbWUiOiAiTm9Bbm5veWFuY2UgKGZvcmspIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vYW5ub3lhbmNlLWZvcmsiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIsCiAgICAiNDQuMiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ppcmthdnJiYS9ub2Fubm95YW5jZSIsCiAgInV1aWQiOiAibm9hbm5veWFuY2UtZm9ya0B2cmJhLmRldiIsCiAgInZlcnNpb24iOiAxCn0="},
@@ -6373,7 +6462,8 @@
     "42": {"version": "1", "sha256": "1jwz2aw34j29fsj2cppfwcaarw60ggpmmj6xl36xqz6j3cnz0in6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IFNvbGFhciB0byBzdXBwb3J0IGNlcnRhaW4gZmVhdHVyZXMgb24gbm9uIFgxMSBzeXN0ZW1zIiwKICAibmFtZSI6ICJTb2xhYXIgZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaWRldmVzaC9zb2xhYXItZXh0ZW5zaW9uLWZvci1nbm9tZSIsCiAgInV1aWQiOiAic29sYWFyLWV4dGVuc2lvbkBzaWRldmVzaCIsCiAgInZlcnNpb24iOiAxCn0="},
     "43": {"version": "1", "sha256": "1jwz2aw34j29fsj2cppfwcaarw60ggpmmj6xl36xqz6j3cnz0in6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IFNvbGFhciB0byBzdXBwb3J0IGNlcnRhaW4gZmVhdHVyZXMgb24gbm9uIFgxMSBzeXN0ZW1zIiwKICAibmFtZSI6ICJTb2xhYXIgZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaWRldmVzaC9zb2xhYXItZXh0ZW5zaW9uLWZvci1nbm9tZSIsCiAgInV1aWQiOiAic29sYWFyLWV4dGVuc2lvbkBzaWRldmVzaCIsCiAgInZlcnNpb24iOiAxCn0="},
     "44": {"version": "1", "sha256": "1jwz2aw34j29fsj2cppfwcaarw60ggpmmj6xl36xqz6j3cnz0in6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IFNvbGFhciB0byBzdXBwb3J0IGNlcnRhaW4gZmVhdHVyZXMgb24gbm9uIFgxMSBzeXN0ZW1zIiwKICAibmFtZSI6ICJTb2xhYXIgZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaWRldmVzaC9zb2xhYXItZXh0ZW5zaW9uLWZvci1nbm9tZSIsCiAgInV1aWQiOiAic29sYWFyLWV4dGVuc2lvbkBzaWRldmVzaCIsCiAgInZlcnNpb24iOiAxCn0="},
-    "45": {"version": "3", "sha256": "18gh802q0psx049d4zdak0p7g9x6cf281pb3d3rgmx38n0074w3l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IFNvbGFhciB0byBzdXBwb3J0IGNlcnRhaW4gZmVhdHVyZXMgb24gbm9uIFgxMSBzeXN0ZW1zIiwKICAibmFtZSI6ICJTb2xhYXIgZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NpZGV2ZXNoL3NvbGFhci1leHRlbnNpb24tZm9yLWdub21lIiwKICAidXVpZCI6ICJzb2xhYXItZXh0ZW5zaW9uQHNpZGV2ZXNoIiwKICAidmVyc2lvbiI6IDMKfQ=="}
+    "45": {"version": "4", "sha256": "129kgg2bngdak23jn8kjy9vl5393pazjir27fzq6039iyil68adb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IFNvbGFhciB0byBzdXBwb3J0IGNlcnRhaW4gZmVhdHVyZXMgb24gbm9uIFgxMSBzeXN0ZW1zIiwKICAibmFtZSI6ICJTb2xhYXIgZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaWRldmVzaC9zb2xhYXItZXh0ZW5zaW9uLWZvci1nbm9tZSIsCiAgInV1aWQiOiAic29sYWFyLWV4dGVuc2lvbkBzaWRldmVzaCIsCiAgInZlcnNpb24iOiA0Cn0="},
+    "46": {"version": "4", "sha256": "129kgg2bngdak23jn8kjy9vl5393pazjir27fzq6039iyil68adb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IFNvbGFhciB0byBzdXBwb3J0IGNlcnRhaW4gZmVhdHVyZXMgb24gbm9uIFgxMSBzeXN0ZW1zIiwKICAibmFtZSI6ICJTb2xhYXIgZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaWRldmVzaC9zb2xhYXItZXh0ZW5zaW9uLWZvci1nbm9tZSIsCiAgInV1aWQiOiAic29sYWFyLWV4dGVuc2lvbkBzaWRldmVzaCIsCiAgInZlcnNpb24iOiA0Cn0="}
   }}
 , {"uuid": "custommagnifier@simonallen.org", "name": "Custom Magnifier", "pname": "custom-magnifier", "description": "Change GNOME magnification using <Alt>KP_Subtract and <Alt>KP_Add.", "link": "https://extensions.gnome.org/extension/6180/custom-magnifier/", "shell_version_map": {
     "45": {"version": "3", "sha256": "1bb0il0fibs3yz09zlwxpz6i96vz3y1cpgzrkwkzhvjw511g2zv6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBHTk9NRSBtYWduaWZpY2F0aW9uIHVzaW5nIDxBbHQ+S1BfU3VidHJhY3QgYW5kIDxBbHQ+S1BfQWRkLiIsCiAgIm5hbWUiOiAiQ3VzdG9tIE1hZ25pZmllciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21tYWduaWZpZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2FyZnVua2VsL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jdXN0b20tbWFnbmlmaWVyIiwKICAidXVpZCI6ICJjdXN0b21tYWduaWZpZXJAc2ltb25hbGxlbi5vcmciLAogICJ2ZXJzaW9uIjogMwp9"}
@@ -6399,16 +6489,18 @@
     "42": {"version": "8", "sha256": "0g1bcs897k5qyw5qpxmd0w7kb64jqkddk70xqznlvbcycy7x59nh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVTRCAoVVMgRG9sbGFyKSBjb252ZXJ0ZWQgdG8gVFJZIChUdXJraXNoIExpcmEpLiBVcGRhdGVzIGFyZSByZWNlaXZlZCBldmVyeSAzMCBzZWNvbmRzLlxuXG5JdCBpcyBhIGZvcmsgb2YgRG9sbGFyLVBLUi4gVGhpcyBleHRlbnNpb24gdXNlcyBlY29ub21pYS5hd2Vzb21lYXBpLmNvbS5iciIsCiAgIm5hbWUiOiAiVVNELVRSWSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FyaWZlc2F0L1VTRC1UUlktR1NoZWxsIiwKICAidXVpZCI6ICJ1c2QtdHJ5LWdzaGVsbEBhcmlmZXNhdC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="},
     "43": {"version": "4", "sha256": "03dajywpcvvhxcwz8jv1yq230iznh30i2lbxs01gpijl4gir7rhy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVTRCAoVVMgRG9sbGFyKSBjb252ZXJ0ZWQgdG8gVFJZIChUdXJraXNoIExpcmEpLiBVcGRhdGVzIGFyZSByZWNlaXZlZCBldmVyeSAzMCBzZWNvbmRzLlxuXG5JdCBpcyBhIGZvcmsgb2YgRG9sbGFyLVBLUi4gVGhpcyBleHRlbnNpb24gdXNlcyBlY29ub21pYS5hd2Vzb21lYXBpLmNvbS5iciIsCiAgIm5hbWUiOiAiVVNELVRSWSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJpZmVzYXQvVVNELVRSWS1HU2hlbGwiLAogICJ1dWlkIjogInVzZC10cnktZ3NoZWxsQGFyaWZlc2F0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
     "44": {"version": "4", "sha256": "03dajywpcvvhxcwz8jv1yq230iznh30i2lbxs01gpijl4gir7rhy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVTRCAoVVMgRG9sbGFyKSBjb252ZXJ0ZWQgdG8gVFJZIChUdXJraXNoIExpcmEpLiBVcGRhdGVzIGFyZSByZWNlaXZlZCBldmVyeSAzMCBzZWNvbmRzLlxuXG5JdCBpcyBhIGZvcmsgb2YgRG9sbGFyLVBLUi4gVGhpcyBleHRlbnNpb24gdXNlcyBlY29ub21pYS5hd2Vzb21lYXBpLmNvbS5iciIsCiAgIm5hbWUiOiAiVVNELVRSWSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJpZmVzYXQvVVNELVRSWS1HU2hlbGwiLAogICJ1dWlkIjogInVzZC10cnktZ3NoZWxsQGFyaWZlc2F0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
-    "45": {"version": "7", "sha256": "0045lld30k30425scg2f686isnh2sqvwq41n62p9jc2lx4kvh5kg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVTRCAoVVMgRG9sbGFyKSBjb252ZXJ0ZWQgdG8gVFJZIChUdXJraXNoIExpcmEpLiBVcGRhdGVzIGFyZSByZWNlaXZlZCBldmVyeSAzMCBzZWNvbmRzLlxuXG5JdCBpcyBhIGZvcmsgb2YgRG9sbGFyLVBLUi4gVGhpcyBleHRlbnNpb24gdXNlcyBlY29ub21pYS5hd2Vzb21lYXBpLmNvbS5iciIsCiAgIm5hbWUiOiAiVVNELVRSWSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcmlmZXNhdC9VU0QtVFJZLUdTaGVsbCIsCiAgInV1aWQiOiAidXNkLXRyeS1nc2hlbGxAYXJpZmVzYXQuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}
+    "45": {"version": "7", "sha256": "0045lld30k30425scg2f686isnh2sqvwq41n62p9jc2lx4kvh5kg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVTRCAoVVMgRG9sbGFyKSBjb252ZXJ0ZWQgdG8gVFJZIChUdXJraXNoIExpcmEpLiBVcGRhdGVzIGFyZSByZWNlaXZlZCBldmVyeSAzMCBzZWNvbmRzLlxuXG5JdCBpcyBhIGZvcmsgb2YgRG9sbGFyLVBLUi4gVGhpcyBleHRlbnNpb24gdXNlcyBlY29ub21pYS5hd2Vzb21lYXBpLmNvbS5iciIsCiAgIm5hbWUiOiAiVVNELVRSWSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcmlmZXNhdC9VU0QtVFJZLUdTaGVsbCIsCiAgInV1aWQiOiAidXNkLXRyeS1nc2hlbGxAYXJpZmVzYXQuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="},
+    "46": {"version": "9", "sha256": "0inpjrk1vg12i82y4xzb4zipc8xssxg62da96b5xddw9ld9qbl67", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVTRCAoVVMgRG9sbGFyKSBjb252ZXJ0ZWQgdG8gVFJZIChUdXJraXNoIExpcmEpLiBVcGRhdGVzIGFyZSByZWNlaXZlZCBldmVyeSAzMCBzZWNvbmRzLlxuXG5JdCBpcyBhIGZvcmsgb2YgRG9sbGFyLVBLUi4gVGhpcyBleHRlbnNpb24gdXNlcyBlY29ub21pYS5hd2Vzb21lYXBpLmNvbS5iciIsCiAgIm5hbWUiOiAiVVNELVRSWSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcmlmZXNhdC9VU0QtVFJZLUdTaGVsbCIsCiAgInV1aWQiOiAidXNkLXRyeS1nc2hlbGxAYXJpZmVzYXQuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}
   }}
 , {"uuid": "hide-dock-in-overview@roslax", "name": "Hide the dock in overview", "pname": "hide-the-dock-in-overview", "description": "hides the dock in overview mode", "link": "https://extensions.gnome.org/extension/6195/hide-the-dock-in-overview/", "shell_version_map": {
     "43": {"version": "16", "sha256": "1gbwm8gwcrk2qslxgcb65jqgbcnlpsp4wbl655dg7wj8fa88l6ns", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImhpZGVzIHRoZSBkb2NrIGluIG92ZXJ2aWV3IG1vZGUiLAogICJuYW1lIjogIkhpZGUgdGhlIGRvY2sgaW4gb3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm9zR3RIdWIvSGlkZS1kb2NrLWluLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJoaWRlLWRvY2staW4tb3ZlcnZpZXdAcm9zbGF4IiwKICAidmVyc2lvbiI6IDE2Cn0="},
     "44": {"version": "15", "sha256": "1b998f73j74q48fwmih5cl8g7kf0015vgnns265yadws96cz2pk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImhpZGVzIHRoZSBkb2NrIGluIG92ZXJ2aWV3IG1vZGUiLAogICJuYW1lIjogIkhpZGUgdGhlIGRvY2sgaW4gb3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm9zR3RIdWIvSGlkZS1kb2NrLWluLW92ZXJ2aWV3L3RyZWUvbWFpbiIsCiAgInV1aWQiOiAiaGlkZS1kb2NrLWluLW92ZXJ2aWV3QHJvc2xheCIsCiAgInZlcnNpb24iOiAxNQp9"},
-    "45": {"version": "14", "sha256": "13kcvmnq41f0i8kxm8kpd3w880hq84w0ixza1sj1fv6vc8k80rhn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImhpZGVzIHRoZSBkb2NrIGluIG92ZXJ2aWV3IG1vZGUiLAogICJuYW1lIjogIkhpZGUgdGhlIGRvY2sgaW4gb3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm9zR3RIdWIvSGlkZS1kb2NrLWluLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJoaWRlLWRvY2staW4tb3ZlcnZpZXdAcm9zbGF4IiwKICAidmVyc2lvbiI6IDE0Cn0="}
+    "45": {"version": "14", "sha256": "13kcvmnq41f0i8kxm8kpd3w880hq84w0ixza1sj1fv6vc8k80rhn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImhpZGVzIHRoZSBkb2NrIGluIG92ZXJ2aWV3IG1vZGUiLAogICJuYW1lIjogIkhpZGUgdGhlIGRvY2sgaW4gb3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm9zR3RIdWIvSGlkZS1kb2NrLWluLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJoaWRlLWRvY2staW4tb3ZlcnZpZXdAcm9zbGF4IiwKICAidmVyc2lvbiI6IDE0Cn0="},
+    "46": {"version": "17", "sha256": "0fz98084c0vgk1mj0vlw1y8j75iws0jx4vi1v351kls5z96jq3vi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImhpZGVzIHRoZSBkb2NrIGluIG92ZXJ2aWV3IG1vZGUiLAogICJuYW1lIjogIkhpZGUgdGhlIGRvY2sgaW4gb3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm9zR3RIdWIvSGlkZS1kb2NrLWluLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJoaWRlLWRvY2staW4tb3ZlcnZpZXdAcm9zbGF4IiwKICAidmVyc2lvbiI6IDE3Cn0="}
   }}
 , {"uuid": "light-style@gnome-shell-extensions.gcampax.github.com", "name": "Light Style", "pname": "light-style", "description": "Switch default to light style", "link": "https://extensions.gnome.org/extension/6198/light-style/", "shell_version_map": {
     "45": {"version": "3", "sha256": "1x846d9s4knv36g0wh3zmkmpkvv14jbb15qh9pa5xwmysbpbawh7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCBkZWZhdWx0IHRvIGxpZ2h0IHN0eWxlIiwKICAiZXh0ZW5zaW9uLWlkIjogImxpZ2h0LXN0eWxlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxpZ2h0LXN0eWxlIiwKICAibmFtZSI6ICJMaWdodCBTdHlsZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5saWdodC1zdHlsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJsaWdodC1zdHlsZUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="},
-    "46": {"version": "5", "sha256": "1ms18x61w2vx2yl399871haav4iklyxlv91xfljanlkig6mmbq0g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCBkZWZhdWx0IHRvIGxpZ2h0IHN0eWxlIiwKICAiZXh0ZW5zaW9uLWlkIjogImxpZ2h0LXN0eWxlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxpZ2h0LXN0eWxlIiwKICAibmFtZSI6ICJMaWdodCBTdHlsZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5saWdodC1zdHlsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJsaWdodC1zdHlsZUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}
+    "46": {"version": "6", "sha256": "0pcqcf6lypm6hlcj73436y0bp5jl9h4syppc34bidjczq4hza1ij", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCBkZWZhdWx0IHRvIGxpZ2h0IHN0eWxlIiwKICAiZXh0ZW5zaW9uLWlkIjogImxpZ2h0LXN0eWxlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxpZ2h0LXN0eWxlIiwKICAibmFtZSI6ICJMaWdodCBTdHlsZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5saWdodC1zdHlsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJsaWdodC1zdHlsZUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}
   }}
 , {"uuid": "transmission-daemon-ng@glerro.pm.me", "name": "Transmission Daemon Indicator NG", "pname": "transmission-daemon-indicator-ng", "description": "Monitor and control transmission-daemon or transmission-gtk.\nThe extension use the Transmission RPC protocol for interacting with it.\n\nFragments 2.0 user also can use this extension because it is a frontend for transmission-daemon.\n\nThis extension is only for Gnome Shell version major or equal to 43 because it use libsoup3.", "link": "https://extensions.gnome.org/extension/6204/transmission-daemon-indicator-ng/", "shell_version_map": {
     "43": {"version": "5", "sha256": "1g4dxrw7d9yik2y86l66nm50p7glyym6x0ff005kxmd42cl7dv9y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vbml0b3IgYW5kIGNvbnRyb2wgdHJhbnNtaXNzaW9uLWRhZW1vbiBvciB0cmFuc21pc3Npb24tZ3RrLlxuVGhlIGV4dGVuc2lvbiB1c2UgdGhlIFRyYW5zbWlzc2lvbiBSUEMgcHJvdG9jb2wgZm9yIGludGVyYWN0aW5nIHdpdGggaXQuXG5cbkZyYWdtZW50cyAyLjAgdXNlciBhbHNvIGNhbiB1c2UgdGhpcyBleHRlbnNpb24gYmVjYXVzZSBpdCBpcyBhIGZyb250ZW5kIGZvciB0cmFuc21pc3Npb24tZGFlbW9uLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBvbmx5IGZvciBHbm9tZSBTaGVsbCB2ZXJzaW9uIG1ham9yIG9yIGVxdWFsIHRvIDQzIGJlY2F1c2UgaXQgdXNlIGxpYnNvdXAzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImdsZXJybyIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNtaXNzaW9uLWRhZW1vbi1uZyIsCiAgIm5hbWUiOiAiVHJhbnNtaXNzaW9uIERhZW1vbiBJbmRpY2F0b3IgTkciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudHJhbnNtaXNzaW9uLWRhZW1vbi1uZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc21pc3Npb24tZGFlbW9uLW5nIiwKICAidXVpZCI6ICJ0cmFuc21pc3Npb24tZGFlbW9uLW5nQGdsZXJyby5wbS5tZSIsCiAgInZlcnNpb24iOiA1Cn0="},
@@ -6435,7 +6527,7 @@
   }}
 , {"uuid": "bottom-overview@fthx", "name": "Bottom Overview", "pname": "bottom-overview", "description": "Overview appears when hovering the bottom of your screen.\n\n Adapted from @jdoda's Hot Edge extension.", "link": "https://extensions.gnome.org/extension/6230/bottom-overview/", "shell_version_map": {
     "45": {"version": "3", "sha256": "0fw2qw65ax44yi73mvy1qkpphiarp9rnxs3ix49mlfgyk7yamc4s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk92ZXJ2aWV3IGFwcGVhcnMgd2hlbiBob3ZlcmluZyB0aGUgYm90dG9tIG9mIHlvdXIgc2NyZWVuLlxuXG4gQWRhcHRlZCBmcm9tIEBqZG9kYSdzIEhvdCBFZGdlIGV4dGVuc2lvbi4iLAogICJuYW1lIjogIkJvdHRvbSBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JvdHRvbS1vdmVydmlldyIsCiAgInV1aWQiOiAiYm90dG9tLW92ZXJ2aWV3QGZ0aHgiLAogICJ2ZXJzaW9uIjogMwp9"},
-    "46": {"version": "5", "sha256": "1f5jsl0cm2z54lkp56m3p6fxrkryybrifdwr7fssdszg5slsbf5y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk92ZXJ2aWV3IGFwcGVhcnMgd2hlbiBob3ZlcmluZyB0aGUgYm90dG9tIG9mIHlvdXIgc2NyZWVuLlxuXG4gQWRhcHRlZCBmcm9tIEBqZG9kYSdzIEhvdCBFZGdlIGV4dGVuc2lvbi4iLAogICJuYW1lIjogIkJvdHRvbSBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JvdHRvbS1vdmVydmlldyIsCiAgInV1aWQiOiAiYm90dG9tLW92ZXJ2aWV3QGZ0aHgiLAogICJ2ZXJzaW9uIjogNQp9"}
+    "46": {"version": "6", "sha256": "05hk29jyca3f3kx3p3zvf5716qfv5v7dd53yalx5sa2shd17wsv3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk92ZXJ2aWV3IGFwcGVhcnMgd2hlbiBob3ZlcmluZyB0aGUgYm90dG9tIG9mIHlvdXIgc2NyZWVuLlxuXG4gQWRhcHRlZCBmcm9tIEBqZG9kYSdzIEhvdCBFZGdlIGV4dGVuc2lvbi4iLAogICJuYW1lIjogIkJvdHRvbSBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JvdHRvbS1vdmVydmlldyIsCiAgInV1aWQiOiAiYm90dG9tLW92ZXJ2aWV3QGZ0aHgiLAogICJ2ZXJzaW9uIjogNgp9"}
   }}
 , {"uuid": "autolock-keyring@jerome-boillot.com", "name": "Auto-Lock Keyring", "pname": "auto-lock-keyring", "description": "Automatically locks the keyring following period of inactivity", "link": "https://extensions.gnome.org/extension/6236/auto-lock-keyring/", "shell_version_map": {
     "42": {"version": "1", "sha256": "1cy7l0ywap11ykqaj0pys7ghdw99ignk8xid00ljmsmfiivhc92a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgbG9ja3MgdGhlIGtleXJpbmcgZm9sbG93aW5nIHBlcmlvZCBvZiBpbmFjdGl2aXR5IiwKICAibmFtZSI6ICJBdXRvLUxvY2sgS2V5cmluZyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hdXRvbG9jay1rZXlyaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamJvaWxsb3QvYXV0b2xvY2sta2V5cmluZyIsCiAgInV1aWQiOiAiYXV0b2xvY2sta2V5cmluZ0BqZXJvbWUtYm9pbGxvdC5jb20iLAogICJ2ZXJzaW9uIjogMQp9"},
@@ -6465,7 +6557,8 @@
     "45": {"version": "14", "sha256": "0jc3sfwhb8l3gk1nf06ryqzahsjidjzw486cmzbbzdxnbqnn210f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBhbmVsIHdpbGwgaW5jbHVkZSBhIGRpZmZlcmVudCB3aW5kb3cgdGFiIGZvciB0aGUgc2FtZSBhcHBsaWNhdGlvbiB0aGF0IGlzIGN1cnJlbnRseSBsYXVuY2hlZC5cbjEuIFlvdSBjYW4gc2VlIHRoZSBhcHBsaWNhdGlvbiB3aW5kb3cgaW50dWl0aXZlbHlcbjIuIENsaWNrIHRhYiB0byBqdW1wIHRvIHRoZSBjb3JyZXNwb25kaW5nIHdpbmRvdyBpbW1lZGlhdGVseVxuMy4gQ2xpY2sgdGhlIENsb3NlIGJ1dHRvbiB0byBjbG9zZSB0aGUgd2luZG93IiwKICAibmFtZSI6ICJBcHBsaWNhdGlvbiBUYWJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFwcF90YWJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hob2FvL2FwcF90YWJzIiwKICAidXVpZCI6ICJodWFuZ2hhb2hob2FAMTYzLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"}
   }}
 , {"uuid": "ping@prasanthc41m.github.com", "name": "Ping", "pname": "ping", "description": "A Ping Extension", "link": "https://extensions.gnome.org/extension/6260/ping/", "shell_version_map": {
-    "44": {"version": "1", "sha256": "10s0hsrgs8p0xc1iwcjhg7x690si8pw9q5n8c881pf5lz6cs23gi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgUGluZyBFeHRlbnNpb24iLAogICJuYW1lIjogIlBpbmciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wcmFzYW50aGM0MW0vcGluZy1leHRlbnNpb24iLAogICJ1dWlkIjogInBpbmdAcHJhc2FudGhjNDFtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}
+    "44": {"version": "1", "sha256": "10s0hsrgs8p0xc1iwcjhg7x690si8pw9q5n8c881pf5lz6cs23gi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgUGluZyBFeHRlbnNpb24iLAogICJuYW1lIjogIlBpbmciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wcmFzYW50aGM0MW0vcGluZy1leHRlbnNpb24iLAogICJ1dWlkIjogInBpbmdAcHJhc2FudGhjNDFtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"},
+    "45": {"version": "3", "sha256": "19hl1w7w2zjjisq1hjdqp5kj6kcacz0fcrngmbv41b4179qvbsrn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgUGluZyBFeHRlbnNpb24iLAogICJuYW1lIjogIlBpbmciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcHJhc2FudGhjNDFtL3BpbmctZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJwaW5nQHByYXNhbnRoYzQxbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}
   }}
 , {"uuid": "zen@le0.gs", "name": "Zen", "pname": "zen", "description": "Various tweaks for a more predictable Gnome shell experience", "link": "https://extensions.gnome.org/extension/6263/zen/", "shell_version_map": {
     "44": {"version": "4", "sha256": "052lyqk5zgyp4pnsljl0p8rjamz3h3vwczxdsggqnli6l1c7jw4c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZhcmlvdXMgdHdlYWtzIGZvciBhIG1vcmUgcHJlZGljdGFibGUgR25vbWUgc2hlbGwgZXhwZXJpZW5jZSIsCiAgImdldHRleHQtZG9tYWluIjogInplbkBsZTAuZ3MiLAogICJuYW1lIjogIlplbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy56ZW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGVvdGFrdS96ZW4iLAogICJ1dWlkIjogInplbkBsZTAuZ3MiLAogICJ2ZXJzaW9uIjogNAp9"},
@@ -6482,8 +6575,9 @@
     "45": {"version": "13", "sha256": "09q3av0magrm4b6xzcsmhmxi24v6h4wc9xcgfc2qjzkbr3w4v42f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBjdXN0b20gdGV4dCB0byB3b3Jrc3BhY2UgaW5kaWNhdG9ycyIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAicHJhdGFwcGFuYWJha2EiCiAgfSwKICAibmFtZSI6ICJBZGQgQ3VzdG9tIFRleHQgdG8gV29ya3NwYWNlIEluZGljYXRvcnMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWRkLWN1c3RvbS10ZXh0LXRvLXdvcmtzcGFjZS1pbmRpY2F0b3JzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9QUkFUQVAtS1VNQVIvYWRkLWN1c3RvbS10ZXh0LXRvLXdvcmtzcGFjZS1pbmRpY2F0b3JzIiwKICAidXVpZCI6ICJBZGRDdXN0b21UZXh0VG9Xb3JrU3BhY2VJbmRpY2F0b3JzQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAxMwp9"},
     "46": {"version": "13", "sha256": "09q3av0magrm4b6xzcsmhmxi24v6h4wc9xcgfc2qjzkbr3w4v42f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBjdXN0b20gdGV4dCB0byB3b3Jrc3BhY2UgaW5kaWNhdG9ycyIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAicHJhdGFwcGFuYWJha2EiCiAgfSwKICAibmFtZSI6ICJBZGQgQ3VzdG9tIFRleHQgdG8gV29ya3NwYWNlIEluZGljYXRvcnMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWRkLWN1c3RvbS10ZXh0LXRvLXdvcmtzcGFjZS1pbmRpY2F0b3JzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9QUkFUQVAtS1VNQVIvYWRkLWN1c3RvbS10ZXh0LXRvLXdvcmtzcGFjZS1pbmRpY2F0b3JzIiwKICAidXVpZCI6ICJBZGRDdXN0b21UZXh0VG9Xb3JrU3BhY2VJbmRpY2F0b3JzQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAxMwp9"}
   }}
-, {"uuid": "strings@lobau.io", "name": "Strings", "pname": "strings", "description": "Copy all kind of useful strings like dates, lorem ipsum, random colors, etc.", "link": "https://extensions.gnome.org/extension/6275/strings/", "shell_version_map": {
-    "45": {"version": "2", "sha256": "17hi757widdxfnq6b5iaddv4w03bj4ly4wvd289wbm7lbphfrk70", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvcHkgYWxsIGtpbmQgb2YgdXNlZnVsIHN0cmluZ3MgbGlrZSBkYXRlcywgbG9yZW0gaXBzdW0sIHJhbmRvbSBjb2xvcnMsIGV0Yy4iLAogICJuYW1lIjogIlN0cmluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbG9iYXUvc3RyaW5ncy1leHRlbnNpb24iLAogICJ1dWlkIjogInN0cmluZ3NAbG9iYXUuaW8iLAogICJ2ZXJzaW9uIjogMgp9"}
+, {"uuid": "strings@lobau.io", "name": "Strings", "pname": "strings", "description": "Quickly copy to your clipboard all kind of useful strings.\n\nDates (example)\n- Full (Thursday, May 16, 2024)\n- Short (2024-05-16)\n- ISO 8601 (2024-05-16T21:49:10.881Z)\n- Epoch (1715896175628)\n\nRandom strings (example)\n- UUID (f5195029-0fee-465b-9bda-71429f258914)\n- Hash (huWH4lzEuOlYOYbq)\n- Lorem ipsum (Tortor enim enim consectetur dui tristique.)\n- HEX Color (#E34658)\n\nNOTE: UUID and Hash are NOT cryptographic, as they rely on Math.random(). If there is a better way to do in the confine of an extension, please leave a note on the repo!", "link": "https://extensions.gnome.org/extension/6275/strings/", "shell_version_map": {
+    "45": {"version": "2", "sha256": "17hi757widdxfnq6b5iaddv4w03bj4ly4wvd289wbm7lbphfrk70", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvcHkgYWxsIGtpbmQgb2YgdXNlZnVsIHN0cmluZ3MgbGlrZSBkYXRlcywgbG9yZW0gaXBzdW0sIHJhbmRvbSBjb2xvcnMsIGV0Yy4iLAogICJuYW1lIjogIlN0cmluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbG9iYXUvc3RyaW5ncy1leHRlbnNpb24iLAogICJ1dWlkIjogInN0cmluZ3NAbG9iYXUuaW8iLAogICJ2ZXJzaW9uIjogMgp9"},
+    "46": {"version": "3", "sha256": "1f9304ly54nqdm13pqi7b8y24n2yqnf4vsnvd5v1yz42rrjkn0ni", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvcHkgYWxsIGtpbmQgb2YgdXNlZnVsIHN0cmluZ3MgbGlrZSBkYXRlcywgbG9yZW0gaXBzdW0sIHJhbmRvbSBjb2xvcnMsIGV0Yy4iLAogICJuYW1lIjogIlN0cmluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbG9iYXUvc3RyaW5ncy1leHRlbnNpb24iLAogICJ1dWlkIjogInN0cmluZ3NAbG9iYXUuaW8iLAogICJ2ZXJzaW9uIjogMwp9"}
   }}
 , {"uuid": "battery-usage-wattmeter@halfmexicanhalfamazing.gmail.com", "name": "Battery Usage Wattmeter", "pname": "battery-usage-wattmeter", "description": " Shows charging/discharging consumption (+/-) in Watt next to battery percentage level.\nDefault sync reload set to 4 seconds.\nNo consumption info when battery is full.\nFork of https://github.com/wennaspeedy/batt_consumption_wattmetter", "link": "https://extensions.gnome.org/extension/6278/battery-usage-wattmeter/", "shell_version_map": {
     "43": {"version": "2", "sha256": "06kg17qp07wlpsa5gcl5ah8av6dx8cp2df87xkm39rkj58whf2fp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiBTaG93cyBjaGFyZ2luZy9kaXNjaGFyZ2luZyBjb25zdW1wdGlvbiAoKy8tKSBpbiBXYXR0IG5leHQgdG8gYmF0dGVyeSBwZXJjZW50YWdlIGxldmVsLlxuRGVmYXVsdCBzeW5jIHJlbG9hZCBzZXQgdG8gNCBzZWNvbmRzLlxuTm8gY29uc3VtcHRpb24gaW5mbyB3aGVuIGJhdHRlcnkgaXMgZnVsbC5cbkZvcmsgb2YgaHR0cHM6Ly9naXRodWIuY29tL3dlbm5hc3BlZWR5L2JhdHRfY29uc3VtcHRpb25fd2F0dG1ldHRlciIsCiAgIm5hbWUiOiAiQmF0dGVyeSBVc2FnZSBXYXR0bWV0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhbGZtZXhpY2FuL2JhdHRlcnktdXNhZ2Utd2F0dG1ldGVyLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYmF0dGVyeS11c2FnZS13YXR0bWV0ZXJAaGFsZm1leGljYW5oYWxmYW1hemluZy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMgp9"},
@@ -6508,7 +6602,8 @@
     "45": {"version": "1", "sha256": "1cx0gwbc020jwdpjysm1kabhdnip16kzsgz5l9sf8pv9lrrdmj06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCBTaGVsbC1vbmx5IGRlZmF1bHQgdG8gZGFyayBzdHlsZS4gVXNlZnVsIGZvciBVYnVudHUuIiwKICAiZXh0ZW5zaW9uLWlkIjogImRhcmstc3R5bGUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJEYXJrIFN0eWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhcmstc3R5bGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9kYXJrLXN0eWxlIiwKICAidXVpZCI6ICJkYXJrLXN0eWxlQGZ0aHgiLAogICJ2ZXJzaW9uIjogMQp9"}
   }}
 , {"uuid": "custom-window-controls@icedman.github.com", "name": "Custom Window Controls", "pname": "custom-window-controls", "description": "Theme the window control buttons. (Warning: Highly Experimental)", "link": "https://extensions.gnome.org/extension/6300/custom-window-controls/", "shell_version_map": {
-    "45": {"version": "6", "sha256": "0h9v42f42i4g2in5xxpf216x1r91p507himpz2d5dz2jwm2q9kmi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZW1lIHRoZSB3aW5kb3cgY29udHJvbCBidXR0b25zLiAoV2FybmluZzogSGlnaGx5IEV4cGVyaW1lbnRhbCkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjdXN0b20td2luZG93LWNvbnRyb2xzIiwKICAibmFtZSI6ICJDdXN0b20gV2luZG93IENvbnRyb2xzIiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmN1c3RvbS13aW5kb3ctY29udHJvbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9jdXN0b20td2luZG93LWNvbnRyb2xzIiwKICAidXVpZCI6ICJjdXN0b20td2luZG93LWNvbnRyb2xzQGljZWRtYW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}
+    "45": {"version": "8", "sha256": "00sw6xn7kr12hqzyxkpc4b0c1ahy4717in1zixb24ny1n21736r7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZW1lIHRoZSB3aW5kb3cgY29udHJvbCBidXR0b25zLiAoV2FybmluZzogSGlnaGx5IEV4cGVyaW1lbnRhbCkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjdXN0b20td2luZG93LWNvbnRyb2xzIiwKICAibmFtZSI6ICJDdXN0b20gV2luZG93IENvbnRyb2xzIiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmN1c3RvbS13aW5kb3ctY29udHJvbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ljZWRtYW4vY3VzdG9tLXdpbmRvdy1jb250cm9scyIsCiAgInV1aWQiOiAiY3VzdG9tLXdpbmRvdy1jb250cm9sc0BpY2VkbWFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOAp9"},
+    "46": {"version": "8", "sha256": "00sw6xn7kr12hqzyxkpc4b0c1ahy4717in1zixb24ny1n21736r7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZW1lIHRoZSB3aW5kb3cgY29udHJvbCBidXR0b25zLiAoV2FybmluZzogSGlnaGx5IEV4cGVyaW1lbnRhbCkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjdXN0b20td2luZG93LWNvbnRyb2xzIiwKICAibmFtZSI6ICJDdXN0b20gV2luZG93IENvbnRyb2xzIiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmN1c3RvbS13aW5kb3ctY29udHJvbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ljZWRtYW4vY3VzdG9tLXdpbmRvdy1jb250cm9scyIsCiAgInV1aWQiOiAiY3VzdG9tLXdpbmRvdy1jb250cm9sc0BpY2VkbWFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOAp9"}
   }}
 , {"uuid": "workspace-indicator-left@gmtborges.com", "name": "Workspace Indicator Left", "pname": "workspace-indicator-left", "description": "The same as Workspace Indicator, but on the left like swaywm.\n\nIt is a fork of Workspace Indicator by fmuellner.", "link": "https://extensions.gnome.org/extension/6303/workspace-indicator-left/", "shell_version_map": {
     "44": {"version": "2", "sha256": "0yhczb1cbh39ryrk2zw5nqmda819h748pdslpm0rxn4jy3dzpn4i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBzYW1lIGFzIFdvcmtzcGFjZSBJbmRpY2F0b3IsIGJ1dCBvbiB0aGUgbGVmdCBsaWtlIHN3YXl3bS5cblxuSXQgaXMgYSBmb3JrIG9mIFdvcmtzcGFjZSBJbmRpY2F0b3IgYnkgZm11ZWxsbmVyLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3b3Jrc3BhY2UtaW5kaWNhdG9yLWxlZnQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24td29ya3NwYWNlLWluZGljYXRvci1sZWZ0IiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgSW5kaWNhdG9yIExlZnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ3VzdGF2b210Ym9yZ2VzL2dub21lLXdvcmtzcGFjZS1pbmRpY2F0b3ItbGVmdC5naXQiLAogICJ1dWlkIjogIndvcmtzcGFjZS1pbmRpY2F0b3ItbGVmdEBnbXRib3JnZXMuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}
@@ -6522,22 +6617,23 @@
     "46": {"version": "29", "sha256": "10ikj5nlgf18rsjn5zl0i28b2vazvzp773i90b68hf4pqizh02f2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvY3VzZWQgd2luZG93IGljb24gKyBhcHAgbmFtZSArIHRpdGxlICsgbWVudSBpbiB0aGUgdG9wIGJhci5cblxuIE9wdGlvbnMgaW4gcHJlZmVyZW5jZXMgVUk6IHRvZ2dsZSBpdGVtcywgY29sb3JlZCBpY29uLCBpY29uIHNpemUuIiwKICAibmFtZSI6ICJXaW5kb3cgdGl0bGUgaXMgYmFjayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53aW5kb3ctdGl0bGUtaXMtYmFjayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3dpbmRvdy10aXRsZS1pcy1iYWNrIiwKICAidXVpZCI6ICJ3aW5kb3ctdGl0bGUtaXMtYmFja0BmdGh4IiwKICAidmVyc2lvbiI6IDI5Cn0="}
   }}
 , {"uuid": "dim-background-windows@stephane-13.github.com", "name": "Dim Background Windows", "pname": "dim-background-windows", "description": "Dim windows without focus", "link": "https://extensions.gnome.org/extension/6313/dim-background-windows/", "shell_version_map": {
-    "42": {"version": "12", "sha256": "0nczzyvwpaaxfwvi6nn8vgy6csl30d2j81ilwnirsngblps22s1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
-    "43": {"version": "12", "sha256": "0nczzyvwpaaxfwvi6nn8vgy6csl30d2j81ilwnirsngblps22s1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
-    "44": {"version": "12", "sha256": "0nczzyvwpaaxfwvi6nn8vgy6csl30d2j81ilwnirsngblps22s1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
-    "45": {"version": "13", "sha256": "1379nq1hpzzqcw5gzcbzkg73r2g7kr389bwpd3ka1q3bxs64y7ha", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdGVwaGFuZS0xMy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInV1aWQiOiAiZGltLWJhY2tncm91bmQtd2luZG93c0BzdGVwaGFuZS0xMy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEzCn0="}
+    "42": {"version": "14", "sha256": "1in13131acn4gwbirc2xpzadwdkfjcfpsbp4jrgd4jzl24sp3qn8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="},
+    "43": {"version": "14", "sha256": "1in13131acn4gwbirc2xpzadwdkfjcfpsbp4jrgd4jzl24sp3qn8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="},
+    "44": {"version": "14", "sha256": "1in13131acn4gwbirc2xpzadwdkfjcfpsbp4jrgd4jzl24sp3qn8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="},
+    "45": {"version": "15", "sha256": "0wxq8rzdwr6g0k73p605h75gbhxa1sis21mc1g7axcja4f3hqr0r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3RlcGhhbmUtMTMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRpbS1iYWNrZ3JvdW5kLXdpbmRvd3MiLAogICJ1dWlkIjogImRpbS1iYWNrZ3JvdW5kLXdpbmRvd3NAc3RlcGhhbmUtMTMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"},
+    "46": {"version": "15", "sha256": "0wxq8rzdwr6g0k73p605h75gbhxa1sis21mc1g7axcja4f3hqr0r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3RlcGhhbmUtMTMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRpbS1iYWNrZ3JvdW5kLXdpbmRvd3MiLAogICJ1dWlkIjogImRpbS1iYWNrZ3JvdW5kLXdpbmRvd3NAc3RlcGhhbmUtMTMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}
   }}
 , {"uuid": "hide-gnome-power-icon@siren15.github.com", "name": "Hide power button icon", "pname": "hide-power-button-icon", "description": "Hide the power icon in the quick settings area of the Gnome panel.", "link": "https://extensions.gnome.org/extension/6319/hide-power-button-icon/", "shell_version_map": {
     "44": {"version": "2", "sha256": "05x5rz1485fw6id3s18hman0clw7j5q8ff5w71ca49lkcwr5y323", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGhlIHBvd2VyIGljb24gaW4gdGhlIHF1aWNrIHNldHRpbmdzIGFyZWEgb2YgdGhlIEdub21lIHBhbmVsLiIsCiAgIm5hbWUiOiAiSGlkZSBwb3dlciBidXR0b24gaWNvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaXJlbjE1L2hpZGUtZ25vbWUtcG93ZXItaWNvbiIsCiAgInV1aWQiOiAiaGlkZS1nbm9tZS1wb3dlci1pY29uQHNpcmVuMTUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}
   }}
 , {"uuid": "debian-updates-indicator@glerro.pm.me", "name": "Debian Linux Updates Indicator", "pname": "debian-linux-updates-indicator", "description": "Updates indicator for Debian Linux based distributions.\n\nCheck for updates and shows also the following packages status (as in Synaptic):\n⚫ Available updates.\n⚫ New packages in repository.\n⚫ Local/Obsolete packages.\n⚫ Residual config files.\n⚫ Autoremovable packages.", "link": "https://extensions.gnome.org/extension/6322/debian-linux-updates-indicator/", "shell_version_map": {
-    "40": {"version": "3", "sha256": "1jh39196758jn7yffb1dlzg4w49rn9934vdmbnh3bvw5a5q88abv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMwp9"},
-    "41": {"version": "3", "sha256": "1jh39196758jn7yffb1dlzg4w49rn9934vdmbnh3bvw5a5q88abv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMwp9"},
-    "42": {"version": "3", "sha256": "1jh39196758jn7yffb1dlzg4w49rn9934vdmbnh3bvw5a5q88abv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMwp9"},
-    "43": {"version": "3", "sha256": "1jh39196758jn7yffb1dlzg4w49rn9934vdmbnh3bvw5a5q88abv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMwp9"},
-    "44": {"version": "3", "sha256": "1jh39196758jn7yffb1dlzg4w49rn9934vdmbnh3bvw5a5q88abv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMwp9"},
-    "45": {"version": "9", "sha256": "0mbm5r45pwpmqphy6kyzlrg52yw1fqzgisp7pklg895x4wqvw8sp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogOQp9"},
-    "46": {"version": "9", "sha256": "0mbm5r45pwpmqphy6kyzlrg52yw1fqzgisp7pklg895x4wqvw8sp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogOQp9"}
+    "40": {"version": "11", "sha256": "07x2fwnba1iq75khr05i8783npg3h6bx6j4bdggc2636m8ibpcpx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTEsCiAgInZlcnNpb24tbmFtZSI6ICIxLjIuMSIKfQ=="},
+    "41": {"version": "11", "sha256": "07x2fwnba1iq75khr05i8783npg3h6bx6j4bdggc2636m8ibpcpx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTEsCiAgInZlcnNpb24tbmFtZSI6ICIxLjIuMSIKfQ=="},
+    "42": {"version": "11", "sha256": "07x2fwnba1iq75khr05i8783npg3h6bx6j4bdggc2636m8ibpcpx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTEsCiAgInZlcnNpb24tbmFtZSI6ICIxLjIuMSIKfQ=="},
+    "43": {"version": "11", "sha256": "07x2fwnba1iq75khr05i8783npg3h6bx6j4bdggc2636m8ibpcpx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTEsCiAgInZlcnNpb24tbmFtZSI6ICIxLjIuMSIKfQ=="},
+    "44": {"version": "11", "sha256": "07x2fwnba1iq75khr05i8783npg3h6bx6j4bdggc2636m8ibpcpx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTEsCiAgInZlcnNpb24tbmFtZSI6ICIxLjIuMSIKfQ=="},
+    "45": {"version": "12", "sha256": "1ikqi7llg71qxp1h9y33l4mzc7pilizcna2zypbz0ql2ymn9d8yg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTIsCiAgInZlcnNpb24tbmFtZSI6ICIyLjMuMCIKfQ=="},
+    "46": {"version": "12", "sha256": "1ikqi7llg71qxp1h9y33l4mzc7pilizcna2zypbz0ql2ymn9d8yg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTIsCiAgInZlcnNpb24tbmFtZSI6ICIyLjMuMCIKfQ=="}
   }}
 , {"uuid": "monitor-brightness-volume@ailin.nemui", "name": "Control monitor brightness and volume with ddcutil", "pname": "control-monitor-brightness-and-volume-with-ddcutil", "description": "Brightness and volume control for monitors. Requires setting up the external ddcutil program for your user.\n\nNote: ensure that ddcutil works properly on the command line before attempting this extension.", "link": "https://extensions.gnome.org/extension/6325/control-monitor-brightness-and-volume-with-ddcutil/", "shell_version_map": {
     "45": {"version": "5", "sha256": "06mllpwvrwzjbdia339dn5p5bzngvrl3yiflr14180mlcg1yfx69", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiQnJpZ2h0bmVzcyBhbmQgdm9sdW1lIGNvbnRyb2wgZm9yIG1vbml0b3JzLiBSZXF1aXJlcyBzZXR0aW5nIHVwIHRoZSBleHRlcm5hbCBkZGN1dGlsIHByb2dyYW0gZm9yIHlvdXIgdXNlci5cblxuTm90ZTogZW5zdXJlIHRoYXQgZGRjdXRpbCB3b3JrcyBwcm9wZXJseSBvbiB0aGUgY29tbWFuZCBsaW5lIGJlZm9yZSBhdHRlbXB0aW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImFpbGluIgogIH0sCiAgIm5hbWUiOiAiQ29udHJvbCBtb25pdG9yIGJyaWdodG5lc3MgYW5kIHZvbHVtZSB3aXRoIGRkY3V0aWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubW9uaXRvci1icmlnaHRuZXNzLXZvbHVtZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvTmVpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1tb25pdG9yLWJyaWdodG5lc3Mtdm9sdW1lLy0vaXNzdWVzIiwKICAidXVpZCI6ICJtb25pdG9yLWJyaWdodG5lc3Mtdm9sdW1lQGFpbGluLm5lbXVpIiwKICAidmVyc2lvbiI6IDUKfQ=="},
@@ -6556,8 +6652,9 @@
 , {"uuid": "gmind@tungstnballon.gitlab.com", "name": "GameMode Indicator in System-Settings", "pname": "gamemode-indicator-in-system-settings", "description": "While gamemode is active, an icon will appear in the System-Settings", "link": "https://extensions.gnome.org/extension/6340/gamemode-indicator-in-system-settings/", "shell_version_map": {
     "45": {"version": "1", "sha256": "1jml9vangin17b2qdax5x45zb5mdgkq1xzk977qmpyppxd621m38", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoaWxlIGdhbWVtb2RlIGlzIGFjdGl2ZSwgYW4gaWNvbiB3aWxsIGFwcGVhciBpbiB0aGUgU3lzdGVtLVNldHRpbmdzIiwKICAibmFtZSI6ICJHYW1lTW9kZSBJbmRpY2F0b3IgaW4gU3lzdGVtLVNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL1R1bmdzdG5CYWxsb24vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWdhbWVtb2RlLWluZGljYXRvciIsCiAgInV1aWQiOiAiZ21pbmRAdHVuZ3N0bmJhbGxvbi5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}
   }}
-, {"uuid": "windowgestures@extension.amarullz.com", "name": "Window Gestures", "pname": "window-gestures", "description": "Managing window with touchpad gestures. (It's not Gesture Improvements) Currently Wayland only.\n\n- Customizable actions for gestures\n- Support 3 or 4 fingers swipe, pinch, and tap+hold\n- Swappable 3 / 4 fingers\n- Enable/disable functions in settings\n- With kinetic gesture\n- With adaptive transition interpolable with gesture state\n\nWindow Gesture:\n- Swipe 4 Fingers Up: Maximize, fullscreen, restore\n- Swipe 4 Fingers Up+Left/Right: Snap window left/right\n- If Tap and Hold disabled, Swipe 4 Fingers Down: Move window\n\nConfigurable Gestures:\n- Swipe 4 Fingers Left, Right, Down\n- Swipe 3 Fingers Down, Down+Left, Down+Right, Down+Up\n- Pinch In/Out 3/4 Fingers\n- Tap and Hold to move/resize window\n\nActions:\n- Minimize window\n- Close window\n- Show desktop\n- Next window\n- Previous window\n- Send window left\n- Send window right\n- Back\n- Forward\n- Brightness up\n- Brightness down\n- Volume up\n- Volume down\n- Mute\n- Media play\n- Media next\n- Media previous\n- Alt+Tab switch\n- Overview\n- Application Grid\n- Quick settings\n- Notification\n- Run (Alt+F2)", "link": "https://extensions.gnome.org/extension/6343/window-gestures/", "shell_version_map": {
-    "45": {"version": "6", "sha256": "1kymv3v4svdfaicaplc3b7pkmfjg3r3gp03av5yawn62zbmqrs1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB3aW5kb3cgd2l0aCB0b3VjaHBhZCBnZXN0dXJlcyIsCiAgIm5hbWUiOiAiV2luZG93IEdlc3R1cmVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvd2dlc3R1cmVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtYXJ1bGx6L3dpbmRvd2dlc3R1cmVzIiwKICAidXVpZCI6ICJ3aW5kb3dnZXN0dXJlc0BleHRlbnNpb24uYW1hcnVsbHouY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}
+, {"uuid": "windowgestures@extension.amarullz.com", "name": "Window Gestures", "pname": "window-gestures", "description": "Manage window with touchpad gestures", "link": "https://extensions.gnome.org/extension/6343/window-gestures/", "shell_version_map": {
+    "45": {"version": "7", "sha256": "0lm4fpqwf8kwllw803rgswaal19vkby6p6pbkm3b2jfimyfb4cn9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB3aW5kb3cgd2l0aCB0b3VjaHBhZCBnZXN0dXJlcyIsCiAgIm5hbWUiOiAiV2luZG93IEdlc3R1cmVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvd2dlc3R1cmVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWFydWxsei93aW5kb3dnZXN0dXJlcyIsCiAgInV1aWQiOiAid2luZG93Z2VzdHVyZXNAZXh0ZW5zaW9uLmFtYXJ1bGx6LmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="},
+    "46": {"version": "7", "sha256": "0lm4fpqwf8kwllw803rgswaal19vkby6p6pbkm3b2jfimyfb4cn9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB3aW5kb3cgd2l0aCB0b3VjaHBhZCBnZXN0dXJlcyIsCiAgIm5hbWUiOiAiV2luZG93IEdlc3R1cmVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvd2dlc3R1cmVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWFydWxsei93aW5kb3dnZXN0dXJlcyIsCiAgInV1aWQiOiAid2luZG93Z2VzdHVyZXNAZXh0ZW5zaW9uLmFtYXJ1bGx6LmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}
   }}
 , {"uuid": "transcode-greek@pavlidic", "name": "Transcode Greek", "pname": "transcode-greek", "description": "Searching apps both direct and transcoded name (English, Greek langs)", "link": "https://extensions.gnome.org/extension/6346/transcode-greek/", "shell_version_map": {
     "38": {"version": "1", "sha256": "0ryfi2xmdqs0r7c3jmqpsqbgszsqzsc2m6n01xs1zrai7pbxlb1h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaGluZyBhcHBzIGJvdGggZGlyZWN0IGFuZCB0cmFuc2NvZGVkIG5hbWUgKEVuZ2xpc2gsIEdyZWVrIGxhbmdzKSIsCiAgIm5hbWUiOiAiVHJhbnNjb2RlIEdyZWVrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXZsaWRpYy9nbm9tZS1leHRlbnNpb24tdHJhbnNjb2RlLXNlYXJjaGFwcC1ncmVlayIsCiAgInV1aWQiOiAidHJhbnNjb2RlLWdyZWVrQHBhdmxpZGljIiwKICAidmVyc2lvbiI6IDEKfQ=="},
@@ -6581,7 +6678,8 @@
   }}
 , {"uuid": "multicore-system-monitor@igrek.dev", "name": "multicore-system-monitor", "pname": "multicore-system-monitor", "description": "Show consumption of each CPU core and memory", "link": "https://extensions.gnome.org/extension/6364/multicore-system-monitor/", "shell_version_map": {
     "44": {"version": "2", "sha256": "1c7pa2afmimljxvlg93gmlvc9wj48wh8dni4kra48wh73ishv0d9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29uc3VtcHRpb24gb2YgZWFjaCBDUFUgY29yZSBhbmQgbWVtb3J5IiwKICAibmFtZSI6ICJtdWx0aWNvcmUtc3lzdGVtLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWdyZWs1MS9tdWx0aWNvcmUtbW9uaXRvciIsCiAgInV1aWQiOiAibXVsdGljb3JlLXN5c3RlbS1tb25pdG9yQGlncmVrLmRldiIsCiAgInZlcnNpb24iOiAyCn0="},
-    "45": {"version": "4", "sha256": "1rcw2i1dfg998vhwpvycchx3mqp8zv64rcm0s1fv8hbjfnf6r9xj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29uc3VtcHRpb24gb2YgZWFjaCBDUFUgY29yZSBhbmQgbWVtb3J5IiwKICAibmFtZSI6ICJtdWx0aWNvcmUtc3lzdGVtLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWdyZWs1MS9tdWx0aWNvcmUtbW9uaXRvciIsCiAgInV1aWQiOiAibXVsdGljb3JlLXN5c3RlbS1tb25pdG9yQGlncmVrLmRldiIsCiAgInZlcnNpb24iOiA0Cn0="}
+    "45": {"version": "4", "sha256": "1rcw2i1dfg998vhwpvycchx3mqp8zv64rcm0s1fv8hbjfnf6r9xj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29uc3VtcHRpb24gb2YgZWFjaCBDUFUgY29yZSBhbmQgbWVtb3J5IiwKICAibmFtZSI6ICJtdWx0aWNvcmUtc3lzdGVtLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWdyZWs1MS9tdWx0aWNvcmUtbW9uaXRvciIsCiAgInV1aWQiOiAibXVsdGljb3JlLXN5c3RlbS1tb25pdG9yQGlncmVrLmRldiIsCiAgInZlcnNpb24iOiA0Cn0="},
+    "46": {"version": "5", "sha256": "04vkw2lg2wz038mqaa5599grsrh0k5lw4rh2y8jdyc8cvimqy5dk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29uc3VtcHRpb24gb2YgZWFjaCBDUFUgY29yZSBhbmQgbWVtb3J5IiwKICAibmFtZSI6ICJtdWx0aWNvcmUtc3lzdGVtLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWdyZWs1MS9tdWx0aWNvcmUtbW9uaXRvciIsCiAgInV1aWQiOiAibXVsdGljb3JlLXN5c3RlbS1tb25pdG9yQGlncmVrLmRldiIsCiAgInZlcnNpb24iOiA1Cn0="}
   }}
 , {"uuid": "pinguXnetLabel@pinguX.aTa", "name": "pinguXnetLabel", "pname": "pinguxnetlabel", "description": "Shows current download upload speed on panel \nThis extension is a Gnome 45 adaption of Net Speed by AlynxZhou", "link": "https://extensions.gnome.org/extension/6367/pinguxnetlabel/", "shell_version_map": {
     "45": {"version": "2", "sha256": "1g3mvwlg1v6g4whrnb0radqmj6vq1799z9llsv64zbldwk4w5wag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGN1cnJlbnQgZG93bmxvYWQgdXBsb2FkIHNwZWVkIG9uIHBhbmVsIFxuVGhpcyBleHRlbnNpb24gaXMgYSBHbm9tZSA0NSBhZGFwdGlvbiBvZiBOZXQgU3BlZWQgYnkgQWx5bnhaaG91IiwKICAibmFtZSI6ICJwaW5ndVhuZXRMYWJlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9fcGluZ3VYL3Bpbmd1eG5ldGxhYmVsIiwKICAidXVpZCI6ICJwaW5ndVhuZXRMYWJlbEBwaW5ndVguYVRhIiwKICAidmVyc2lvbiI6IDIKfQ=="}
@@ -6605,9 +6703,10 @@
     "45": {"version": "5", "sha256": "1y16y9lbns8qzmqydd6c0c0dsj1h9996j3j2r7h33i1wwjz9asj3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIHNwZWVkIG9mIGdub21lLXNoZWxsIGFuaW1hdGlvbnMiLAogICJuYW1lIjogIlNwZWVkaW5hdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1vZS5saWFtLnNwZWVkaW5hdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90ZWhzcXVpZGdlL3NwZWVkaW5hdG9yIiwKICAidXVpZCI6ICJzcGVlZGluYXRvckBsaWFtLm1vZSIsCiAgInZlcnNpb24iOiA1Cn0="},
     "46": {"version": "5", "sha256": "1y16y9lbns8qzmqydd6c0c0dsj1h9996j3j2r7h33i1wwjz9asj3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIHNwZWVkIG9mIGdub21lLXNoZWxsIGFuaW1hdGlvbnMiLAogICJuYW1lIjogIlNwZWVkaW5hdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1vZS5saWFtLnNwZWVkaW5hdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90ZWhzcXVpZGdlL3NwZWVkaW5hdG9yIiwKICAidXVpZCI6ICJzcGVlZGluYXRvckBsaWFtLm1vZSIsCiAgInZlcnNpb24iOiA1Cn0="}
   }}
-, {"uuid": "phi@ziyagenc.github.com", "name": "Phi: Pi-hole Indicator", "pname": "phi-pi-hole-indicator", "description": "Quickly access your beloved Pi-hole from GNOME Shell.\n\nPhi provides the following features:\n- Monitor single or multiple Pi-hole instances,\n- Enable/disable blocking,\n- Display status and main statistics,\n- Show version information of Pi-hole, and notify when there is an update.\n\nYou can configure Phi to specifically search for Pi-hole within a designated network. This prevents any queries from being sent if your computer is connected to a different network, such as a school, workplace, or public Wi-Fi, instead of the network where your Pi-hole is located", "link": "https://extensions.gnome.org/extension/6400/phi-pi-hole-indicator/", "shell_version_map": {
+, {"uuid": "phi@ziyagenc.github.com", "name": "Phi: Pi-hole Indicator", "pname": "phi-pi-hole-indicator", "description": "Quickly access your beloved Pi-hole from GNOME Shell.\n\nPhi provides the following features:\n- Monitor single or multiple Pi-hole instances,\n- Enable/disable blocking,\n- Display status and main statistics,\n- Show version information of Pi-hole, and notify when there is an update.\n\nYou can also configure Phi to look for Pi-hole only in a certain network. This might be useful if your computer connects to school, work or public Wi-Fi.", "link": "https://extensions.gnome.org/extension/6400/phi-pi-hole-indicator/", "shell_version_map": {
     "44": {"version": "6", "sha256": "0mdqa357d2px0ssdwxngdvdvabvvd7hg3j8c03jwfgqp36s4mn0p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpLWhvbGUgaW5kaWNhdG9yIGZvciBHTk9NRSBTaGVsbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaGlAeml5YWdlbmMuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiUGhpOiBQaS1ob2xlIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5waGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veml5YWdlbmMvcGhpIiwKICAidXVpZCI6ICJwaGlAeml5YWdlbmMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="},
-    "45": {"version": "10", "sha256": "1kgk6zgjbmm9s6065ygcxvp8mdsnirwb31q419kfnrhfbw1kd6vc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpLWhvbGUgaW5kaWNhdG9yIGZvciBHTk9NRSBTaGVsbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaGlAeml5YWdlbmMuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiUGhpOiBQaS1ob2xlIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5waGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veml5YWdlbmMvcGhpIiwKICAidXVpZCI6ICJwaGlAeml5YWdlbmMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMCwKICAidmVyc2lvbi1uYW1lIjogIjEuMyIKfQ=="}
+    "45": {"version": "12", "sha256": "0zvymwqqni4rsl5fcalc1bicy76mwpwd7www4f5r35ny8n9nwdqn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpLWhvbGUgaW5kaWNhdG9yIGZvciBHTk9NRSBTaGVsbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaGlAeml5YWdlbmMuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiUGhpOiBQaS1ob2xlIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5waGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ppeWFnZW5jL3BoaSIsCiAgInV1aWQiOiAicGhpQHppeWFnZW5jLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIsCiAgInZlcnNpb24tbmFtZSI6ICIxLjUiCn0="},
+    "46": {"version": "12", "sha256": "0zvymwqqni4rsl5fcalc1bicy76mwpwd7www4f5r35ny8n9nwdqn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpLWhvbGUgaW5kaWNhdG9yIGZvciBHTk9NRSBTaGVsbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaGlAeml5YWdlbmMuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiUGhpOiBQaS1ob2xlIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5waGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ppeWFnZW5jL3BoaSIsCiAgInV1aWQiOiAicGhpQHppeWFnZW5jLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIsCiAgInZlcnNpb24tbmFtZSI6ICIxLjUiCn0="}
   }}
 , {"uuid": "net-label@slimani.dev", "name": "NetLabel", "pname": "netlabel", "description": "Shows current download upload speed on panel \nThis extension is a Gnome 45 adaption of Net Speed by AlynxZhou", "link": "https://extensions.gnome.org/extension/6403/netlabel/", "shell_version_map": {
     "45": {"version": "1", "sha256": "0jc219z5jmx9p5gasp25fzbhnyyl1gchq0nyxn20zp70kmzg2f7f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGN1cnJlbnQgZG93bmxvYWQgdXBsb2FkIHNwZWVkIG9uIHBhbmVsIFxuVGhpcyBleHRlbnNpb24gaXMgYSBHbm9tZSA0NSBhZGFwdGlvbiBvZiBOZXQgU3BlZWQgYnkgQWx5bnhaaG91IiwKICAibmFtZSI6ICJOZXRMYWJlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tb2gtc2xpbWFuaS9uZXQtbGFiZWwiLAogICJ1dWlkIjogIm5ldC1sYWJlbEBzbGltYW5pLmRldiIsCiAgInZlcnNpb24iOiAxCn0="}
@@ -6615,7 +6714,7 @@
 , {"uuid": "update-extension@purejava.org", "name": "Fedora Linux Update Indicator", "pname": "fedora-linux-update-indicator", "description": "GNOME Shell update indicator for Fedora Linux.\n  This is based on Arch Linux Updates Indicator by Raphaël Rochet.\n  This extension is not affiliated, funded, or in any way associated with Fedora brand and Red Hat Software.", "link": "https://extensions.gnome.org/extension/6406/fedora-linux-update-indicator/", "shell_version_map": {
     "44": {"version": "8", "sha256": "1rc6431z90k7ad2bqrkqsxjwh1dwf0swkbj0r8c3df084cs62fln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIHVwZGF0ZSBpbmRpY2F0b3IgZm9yIEZlZG9yYSBMaW51eC5cbiAgVGhpcyBpcyBiYXNlZCBvbiBBcmNoIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIGJ5IFJhcGhhXHUwMGVibCBSb2NoZXQuXG4gIFRoaXMgZXh0ZW5zaW9uIGlzIG5vdCBhZmZpbGlhdGVkLCBmdW5kZWQsIG9yIGluIGFueSB3YXkgYXNzb2NpYXRlZCB3aXRoIEZlZG9yYSBicmFuZCBhbmQgUmVkIEhhdCBTb2Z0d2FyZS5cbiAgU2VlIFJFQURNRSBhYm91dCBHbm9tZSBDb25zb2xlIiwKICAibmFtZSI6ICJGZWRvcmEgTGludXggVXBkYXRlIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wdXJlamF2YS9mZWRvcmEtdXBkYXRlIiwKICAidXVpZCI6ICJ1cGRhdGUtZXh0ZW5zaW9uQHB1cmVqYXZhLm9yZyIsCiAgInZlcnNpb24iOiA4Cn0="},
     "45": {"version": "10", "sha256": "0ww9j0ijqpa69nggq7kjkcx19qkk5cmkv2axrjk45p1c9h3jidkg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIHVwZGF0ZSBpbmRpY2F0b3IgZm9yIEZlZG9yYSBMaW51eC5cbiAgVGhpcyBpcyBiYXNlZCBvbiBBcmNoIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIGJ5IFJhcGhhXHUwMGVibCBSb2NoZXQuXG4gIFRoaXMgZXh0ZW5zaW9uIGlzIG5vdCBhZmZpbGlhdGVkLCBmdW5kZWQsIG9yIGluIGFueSB3YXkgYXNzb2NpYXRlZCB3aXRoIEZlZG9yYSBicmFuZCBhbmQgUmVkIEhhdCBTb2Z0d2FyZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cGRhdGUtZXh0ZW5zaW9uQHB1cmVqYXZhLm9yZyIsCiAgIm5hbWUiOiAiRmVkb3JhIExpbnV4IFVwZGF0ZSBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZmVkb3JhLXVwZGF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wdXJlamF2YS9mZWRvcmEtdXBkYXRlIiwKICAidXVpZCI6ICJ1cGRhdGUtZXh0ZW5zaW9uQHB1cmVqYXZhLm9yZyIsCiAgInZlcnNpb24iOiAxMAp9"},
-    "46": {"version": "12", "sha256": "10rnx3z3xwx0kk20fq5i2gbdhn55ybia8av2g8z7y3ybcw810pls", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIHVwZGF0ZSBpbmRpY2F0b3IgZm9yIEZlZG9yYSBMaW51eC5cbiAgVGhpcyBpcyBiYXNlZCBvbiBBcmNoIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIGJ5IFJhcGhhXHUwMGVibCBSb2NoZXQuXG4gIFRoaXMgZXh0ZW5zaW9uIGlzIG5vdCBhZmZpbGlhdGVkLCBmdW5kZWQsIG9yIGluIGFueSB3YXkgYXNzb2NpYXRlZCB3aXRoIEZlZG9yYSBicmFuZCBhbmQgUmVkIEhhdCBTb2Z0d2FyZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cGRhdGUtZXh0ZW5zaW9uQHB1cmVqYXZhLm9yZyIsCiAgIm5hbWUiOiAiRmVkb3JhIExpbnV4IFVwZGF0ZSBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZmVkb3JhLXVwZGF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wdXJlamF2YS9mZWRvcmEtdXBkYXRlIiwKICAidXVpZCI6ICJ1cGRhdGUtZXh0ZW5zaW9uQHB1cmVqYXZhLm9yZyIsCiAgInZlcnNpb24iOiAxMgp9"}
+    "46": {"version": "13", "sha256": "1913s6r0pskc3qjkfndiwjyd8vr8c26pdimlzf43zi4jpqq3m3yw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIHVwZGF0ZSBpbmRpY2F0b3IgZm9yIEZlZG9yYSBMaW51eC5cbiAgVGhpcyBpcyBiYXNlZCBvbiBBcmNoIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIGJ5IFJhcGhhXHUwMGVibCBSb2NoZXQuXG4gIFRoaXMgZXh0ZW5zaW9uIGlzIG5vdCBhZmZpbGlhdGVkLCBmdW5kZWQsIG9yIGluIGFueSB3YXkgYXNzb2NpYXRlZCB3aXRoIEZlZG9yYSBicmFuZCBhbmQgUmVkIEhhdCBTb2Z0d2FyZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cGRhdGUtZXh0ZW5zaW9uQHB1cmVqYXZhLm9yZyIsCiAgIm5hbWUiOiAiRmVkb3JhIExpbnV4IFVwZGF0ZSBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZmVkb3JhLXVwZGF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wdXJlamF2YS9mZWRvcmEtdXBkYXRlIiwKICAidXVpZCI6ICJ1cGRhdGUtZXh0ZW5zaW9uQHB1cmVqYXZhLm9yZyIsCiAgInZlcnNpb24iOiAxMwp9"}
   }}
 , {"uuid": "utc-clock@swsnr.de", "name": "UTC clock", "pname": "utc-clock", "description": "A customizable UTC clock.\n\nAdd a second clock to the bar which shows the current UTC time, in a completely customizable format.", "link": "https://extensions.gnome.org/extension/6409/utc-clock/", "shell_version_map": {
     "45": {"version": "16", "sha256": "0iyy0fyf9ry5mj7jmqpmcs9rp74hhzmdwsipzh7bwnspxsb3ldf4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgY3VzdG9taXphYmxlIFVUQyBjbG9jay5cblxuQWRkIGEgc2Vjb25kIGNsb2NrIHRvIHRoZSBiYXIgd2hpY2ggc2hvd3MgdGhlIGN1cnJlbnQgVVRDIHRpbWUsIGluIGEgY29tcGxldGVseSBjdXN0b21pemFibGUgZm9ybWF0LiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAic3dzbnIiCiAgfSwKICAibmFtZSI6ICJVVEMgY2xvY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3dzbnItdXRjLWNsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N3c25yL2dub21lLXNoZWxsLWV4dGVuc2lvbi11dGMtY2xvY2sjcmVhZG1lIiwKICAidXVpZCI6ICJ1dGMtY2xvY2tAc3dzbnIuZGUiLAogICJ2ZXJzaW9uIjogMTYsCiAgInZlcnNpb24tbmFtZSI6ICI0NS41Igp9"},
@@ -6663,11 +6762,13 @@
 , {"uuid": "lockscreen@lfarkas.org", "name": "Lock Screen Button on Panel", "pname": "lock-screen", "description": "Add lock icon to the panel and lock the screen instead of using ctrl-alt-l (fork of https://github.com/sramkrishna/gnome3-extensions)", "link": "https://extensions.gnome.org/extension/6487/lock-screen/", "shell_version_map": {
     "45": {"version": "4", "sha256": "1nbq5rsg854d9ivi9j8ngcf91skblj7p8p4i955bv3kmxixxiwyc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsb2NrIGljb24gdG8gdGhlIHBhbmVsIGFuZCBsb2NrIHRoZSBzY3JlZW4gaW5zdGVhZCBvZiB1c2luZyBjdHJsLWFsdC1sIChmb3JrIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9zcmFta3Jpc2huYS9nbm9tZTMtZXh0ZW5zaW9ucykiLAogICJuYW1lIjogIkxvY2sgU2NyZWVuIEJ1dHRvbiBvbiBQYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sZmFya2FzL2dub21lMy1leHRlbnNpb25zIiwKICAidXVpZCI6ICJsb2Nrc2NyZWVuQGxmYXJrYXMub3JnIiwKICAidmVyc2lvbiI6IDQKfQ=="}
   }}
-, {"uuid": "overviewhover@mattdavis90", "name": "Overview Hover", "pname": "overview-hover", "description": "An extension that aims to simulate the MacOS Mission Control experience.\n\nMain Features\n* Hover a window preview in Gnome Shell's overview to bring that window into focus\n* Window focus won't change until you move your mouse\n* Window focus will revert if your mouse leaves a preview\n* Window focus doesn't change until you begin leaving overview\n\nPlease report issue on Github. Thanks", "link": "https://extensions.gnome.org/extension/6490/overview-hover/", "shell_version_map": {
-    "45": {"version": "3", "sha256": "1mkpwzykp0gc9za22bbs1k16nr0k83wj44hwzsgfjcm37smh96k1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvdmVyIG92ZXIgYSB3aW5kb3cgaW4gb3ZlcnZpZXcgbW9kZSB0byBtYWtlIGl0IGFjdGl2ZSIsCiAgIm5hbWUiOiAiT3ZlcnZpZXcgSG92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWF0dGRhdmlzOTAvb3ZlcnZpZXctaG92ZXIiLAogICJ1dWlkIjogIm92ZXJ2aWV3aG92ZXJAbWF0dGRhdmlzOTAiLAogICJ2ZXJzaW9uIjogMwp9"}
+, {"uuid": "overviewhover@mattdavis90", "name": "Overview Hover", "pname": "overview-hover", "description": "Hover over a window in overview mode to make it active", "link": "https://extensions.gnome.org/extension/6490/overview-hover/", "shell_version_map": {
+    "45": {"version": "4", "sha256": "1xrxxpmrxyyz5c5ryvvsmqw5rq9izdbk5svbg1941mlx041d9n05", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvdmVyIG92ZXIgYSB3aW5kb3cgaW4gb3ZlcnZpZXcgbW9kZSB0byBtYWtlIGl0IGFjdGl2ZSIsCiAgIm5hbWUiOiAiT3ZlcnZpZXcgSG92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hdHRkYXZpczkwL292ZXJ2aWV3LWhvdmVyIiwKICAidXVpZCI6ICJvdmVydmlld2hvdmVyQG1hdHRkYXZpczkwIiwKICAidmVyc2lvbiI6IDQKfQ=="},
+    "46": {"version": "4", "sha256": "1xrxxpmrxyyz5c5ryvvsmqw5rq9izdbk5svbg1941mlx041d9n05", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvdmVyIG92ZXIgYSB3aW5kb3cgaW4gb3ZlcnZpZXcgbW9kZSB0byBtYWtlIGl0IGFjdGl2ZSIsCiAgIm5hbWUiOiAiT3ZlcnZpZXcgSG92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hdHRkYXZpczkwL292ZXJ2aWV3LWhvdmVyIiwKICAidXVpZCI6ICJvdmVydmlld2hvdmVyQG1hdHRkYXZpczkwIiwKICAidmVyc2lvbiI6IDQKfQ=="}
   }}
 , {"uuid": "onedrive@client.onedrive.com", "name": "Onedrive Client", "pname": "onedrive", "description": "Show and Control Onedrive Client", "link": "https://extensions.gnome.org/extension/6493/onedrive/", "shell_version_map": {
-    "45": {"version": "5", "sha256": "1pjlj22hrr1aks3wy9sxm4lpd7lk38f0jhzdz5vxsb0gg8707925", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW5kIENvbnRyb2wgT25lZHJpdmUgQ2xpZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAib25lZHJpdmVAY2xpZW50Lm9uZWRyaXZlLmNvbSIsCiAgIm5hbWUiOiAiT25lZHJpdmUgQ2xpZW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2R2bWFzdGVyZngvT25lZHJpdmUtR25vbWUtU2hlbGwtNDUiLAogICJ1dWlkIjogIm9uZWRyaXZlQGNsaWVudC5vbmVkcml2ZS5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}
+    "45": {"version": "5", "sha256": "1pjlj22hrr1aks3wy9sxm4lpd7lk38f0jhzdz5vxsb0gg8707925", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW5kIENvbnRyb2wgT25lZHJpdmUgQ2xpZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAib25lZHJpdmVAY2xpZW50Lm9uZWRyaXZlLmNvbSIsCiAgIm5hbWUiOiAiT25lZHJpdmUgQ2xpZW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2R2bWFzdGVyZngvT25lZHJpdmUtR25vbWUtU2hlbGwtNDUiLAogICJ1dWlkIjogIm9uZWRyaXZlQGNsaWVudC5vbmVkcml2ZS5jb20iLAogICJ2ZXJzaW9uIjogNQp9"},
+    "46": {"version": "8", "sha256": "102i0fcnjpkvqxibl029smvn63593ijqs1qp8nznv5ygsa75r9bj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW5kIENvbnRyb2wgT25lZHJpdmUgQ2xpZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAib25lZHJpdmVAY2xpZW50Lm9uZWRyaXZlLmNvbSIsCiAgIm5hbWUiOiAiT25lZHJpdmUgQ2xpZW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2R2bWFzdGVyZngvT25lZHJpdmUtR25vbWUtU2hlbGwtNDUiLAogICJ1dWlkIjogIm9uZWRyaXZlQGNsaWVudC5vbmVkcml2ZS5jb20iLAogICJ2ZXJzaW9uIjogOAp9"}
   }}
 , {"uuid": "system-stats-plus@remulo.costa.gmail.com", "name": "SystemStatsPlus", "pname": "systemstatsplus", "description": "SystemStatsPlus is ease user-friendly GNOME extension that provides real-time visualization of key system resources.\nThis extension is an essential tool for anyone looking to keep a close eye on their system's performance.\n\nKey Features:\n\n- Per CPU core/processor utilization\n- RAM utilization\n- Swap memory utilization\n- Network utilization\n\nIn addition to utilization displayed in the tray, it offers drop down display of historical utilizations.\n\nTo display the usage history, just position the mouse cursor over the item.\n\nIt's a refined fork of the original, but now seemingly inactive, gnome-stats-pro https://github.com/tpenguin/gnome-stats-pro\n\nIf you get an error after updating, try restarting Gnome Shell with Alt-F2 then 'r' (or logout/login under Wayland).", "link": "https://extensions.gnome.org/extension/6502/systemstatsplus/", "shell_version_map": {
     "45": {"version": "2", "sha256": "1dfjz3spbbk18wr1jsp6xbky3mc7d64zbpxpxg4bgvv39j1gz337", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJSZW11bG8gQ29zdGEgPHJlbXVsby5jb3N0YUBnbWFpbC5jb20+IiwKICAiZGVzY3JpcHRpb24iOiAiU3lzdGVtU3RhdHNQbHVzIGEgcm9idXN0IGFuZCB1c2VyLWZyaWVuZGx5IEdOT01FIGV4dGVuc2lvbiB0aGF0IHByb3ZpZGVzIHJlYWwtdGltZSB2aXN1YWxpemF0aW9uIG9mIGtleSBzeXN0ZW0gcmVzb3VyY2VzLlxuXG5JdCdzIGEgcmVmaW5lZCBmb3JrIG9mIHRoZSBvcmlnaW5hbCwgYnV0IG5vdyBzZWVtaW5nbHkgaW5hY3RpdmUsIGdub21lLXN0YXRzLXBybyBodHRwczovL2dpdGh1Yi5jb20vdHBlbmd1aW4vZ25vbWUtc3RhdHMtcHJvXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGFuIGVzc2VudGlhbCB0b29sIGZvciBhbnlvbmUgbG9va2luZyB0byBrZWVwIGEgY2xvc2UgZXllIG9uIHRoZWlyIHN5c3RlbSdzIHBlcmZvcm1hbmNlLlxuXG5LZXkgRmVhdHVyZXM6XG5cbi0gUGVyIENQVSBjb3JlL3Byb2Nlc3NvciB1dGlsaXphdGlvblxuLSBSQU0gdXRpbGl6YXRpb25cbi0gU3dhcCBtZW1vcnkgdXRpbGl6YXRpb25cbi0gTmV0d29yayB1dGlsaXphdGlvblxuXG5JbiBhZGRpdGlvbiB0byB1dGlsaXphdGlvbiBkaXNwbGF5ZWQgaW4gdGhlIHRyYXksIGl0IG9mZmVycyBkcm9wIGRvd24gZGlzcGxheSBvZiBoaXN0b3JpY2FsIHV0aWxpemF0aW9ucy5cblxuSWYgeW91IGdldCBhbiBlcnJvciBhZnRlciB1cGRhdGluZywgdHJ5IHJlc3RhcnRpbmcgR25vbWUgU2hlbGwgd2l0aCBBbHQtRjIgdGhlbiAncicgKG9yIGxvZ291dC9sb2dpbiB1bmRlciBXYXlsYW5kKS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tc3RhdHMtcGx1cyIsCiAgIm5hbWUiOiAiU3lzdGVtU3RhdHNQbHVzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImpvZUB0aHJhbGxpbmdwZW5ndWluLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yZW11bG9jb3N0YS9zeXN0ZW0tc3RhdHMtcGx1cyIsCiAgInV1aWQiOiAic3lzdGVtLXN0YXRzLXBsdXNAcmVtdWxvLmNvc3RhLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyLAogICJ2ZXJzaW9uLW5hbWUiOiAiMC4xLjAiCn0="}
@@ -6691,13 +6792,14 @@
 , {"uuid": "todo-list@speedflyer689.github.com", "name": "Todo list", "pname": "todo-list", "description": "Adds a todo list to the notification panel", "link": "https://extensions.gnome.org/extension/6526/todo-list/", "shell_version_map": {
     "38": {"version": "3", "sha256": "06hqbrk894bi0acilq4vg5a3h3gjmkmi1jv7vmaws0bn7gzqafjx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSB0b2RvIGxpc3QgdG8gdGhlIG5vdGlmaWNhdGlvbiBwYW5lbCIsCiAgIm5hbWUiOiAiVG9kbyBsaXN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU3BlZWRmbHllcjY4OS9Hbm9tZS1Ub2RvLUxpc3QiLAogICJ1dWlkIjogInRvZG8tbGlzdEBzcGVlZGZseWVyNjg5LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}
   }}
-, {"uuid": "logowidget@github.com.howbea", "name": "Logo Widget", "pname": "logo-widget", "description": "Add a logo to the desktop. This is a fork of Background Logo extension \n https://extensions.gnome.org/extension/889/background-logo/ \n https://pagure.io/background-logo-extension", "link": "https://extensions.gnome.org/extension/6529/logo-widget/", "shell_version_map": {
+, {"uuid": "logowidget@github.com.howbea", "name": "Desktop Logo", "pname": "logo-widget", "description": "Add a logo to the desktop. \n This is a fork of Background Logo extension \n https://extensions.gnome.org/extension/889/background-logo/", "link": "https://extensions.gnome.org/extension/6529/logo-widget/", "shell_version_map": {
     "42": {"version": "10", "sha256": "05xba9h9d1939fgc05xizc0ds0c014ycmwg2ax461pgjy218xfkb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8gXG4gaHR0cHM6Ly9wYWd1cmUuaW8vYmFja2dyb3VuZC1sb2dvLWV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiTG9nbyBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubG9nby13aWRnZXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
     "43": {"version": "10", "sha256": "05xba9h9d1939fgc05xizc0ds0c014ycmwg2ax461pgjy218xfkb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8gXG4gaHR0cHM6Ly9wYWd1cmUuaW8vYmFja2dyb3VuZC1sb2dvLWV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiTG9nbyBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubG9nby13aWRnZXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
     "44": {"version": "13", "sha256": "0qzqk7rfcgyi9hx1yjpmx05bgb9x7bscmbw5r31119pl4q7syn9p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8gXG4gaHR0cHM6Ly9wYWd1cmUuaW8vYmFja2dyb3VuZC1sb2dvLWV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiTG9nbyBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubG9nby13aWRnZXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL2xvZ28td2lkZ2V0IiwKICAidXVpZCI6ICJsb2dvd2lkZ2V0QGdpdGh1Yi5jb20uaG93YmVhIiwKICAidmVyc2lvbiI6IDEzCn0="},
-    "45": {"version": "12", "sha256": "1zykpyzm7s19db4g2kl3p9nlywzag3rg1331mjq6vscsky2y5iy9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFxuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImhvd2JlYSIKICB9LAogICJuYW1lIjogIkRlc2t0b3AgTG9nbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLXdpZGdldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogMTIKfQ=="}
+    "45": {"version": "12", "sha256": "1zykpyzm7s19db4g2kl3p9nlywzag3rg1331mjq6vscsky2y5iy9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFxuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImhvd2JlYSIKICB9LAogICJuYW1lIjogIkRlc2t0b3AgTG9nbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLXdpZGdldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "46": {"version": "14", "sha256": "1nx75ykn5c0b191k9rsr151m0jj5pllhpa4pp0ap39979ny1c3zg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFxuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImhvd2JlYSIKICB9LAogICJuYW1lIjogIkRlc2t0b3AgTG9nbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLXdpZGdldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}
   }}
-, {"uuid": "azan@a7medkhalaf", "name": "xAzanTimes", "pname": "xazantimes", "description": "Azan is an Islamic prayer times extension for Gnome Shell.\nIt's a fork of the extension by faissaloo.\n\nFeatures\n- List compulsory prayer times\n- Optionally display Imsak, Sunrise, Sunset and Midnight\n- Show remaining time for the upcoming prayer.\n- Show current date in Hijri calendar.\n- Display a notification when it's time for prayer.\n- Automatic Geoclue2 location detection\n- Show times in 24 hour and 12 hour formats\n- Hijri date adjusment\n- Iqamah option", "link": "https://extensions.gnome.org/extension/6538/xazantimes/", "shell_version_map": {
+, {"uuid": "azan@a7medkhalaf", "name": "xAzanTimes", "pname": "xazantimes", "description": "Azan is an Islamic prayer times extension for Gnome Shell.\nIt's a fork of the extension by faissaloo.\nFor Gnome 46 check: https://extensions.gnome.org/extension/6997/athantimes/\n\nFeatures\n- List compulsory prayer times\n- Optionally display Imsak, Sunrise, Sunset and Midnight\n- Show remaining time for the upcoming prayer.\n- Show current date in Hijri calendar.\n- Display a notification when it's time for prayer.\n- Automatic Geoclue2 location detection\n- Show times in 24 hour and 12 hour formats\n- Hijri date adjusment\n- Iqamah option", "link": "https://extensions.gnome.org/extension/6538/xazantimes/", "shell_version_map": {
     "45": {"version": "7", "sha256": "1h23vjk96fyyx11zvyp22b0iwjy531mn4c4jm53y0fq88g76s0jb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF6YW4gaXMgYW4gSXNsYW1pYyBwcmF5ZXIgdGltZXMgZXh0ZW5zaW9uIGZvciBHbm9tZSBTaGVsbC5cbkl0J3MgYSBmb3JrIG9mIHRoZSBleHRlbnNpb24gYnkgZmFpc3NhbG9vLlxuXG5GZWF0dXJlc1xuLSBMaXN0IGNvbXB1bHNvcnkgcHJheWVyIHRpbWVzXG4tIE9wdGlvbmFsbHkgZGlzcGxheSBJbXNhaywgU3VucmlzZSwgU3Vuc2V0IGFuZCBNaWRuaWdodFxuLSBTaG93IHJlbWFpbmluZyB0aW1lIGZvciB0aGUgdXBjb21pbmcgcHJheWVyLlxuLSBTaG93IGN1cnJlbnQgZGF0ZSBpbiBIaWpyaSBjYWxlbmRhci5cbi0gRGlzcGxheSBhIG5vdGlmaWNhdGlvbiB3aGVuIGl0J3MgdGltZSBmb3IgcHJheWVyLlxuLSBBdXRvbWF0aWMgR2VvY2x1ZTIgbG9jYXRpb24gZGV0ZWN0aW9uXG4tIFNob3cgdGltZXMgaW4gMjQgaG91ciBhbmQgMTIgaG91ciBmb3JtYXRzXG4tIEhpanJpIGRhdGUgYWRqdXNtZW50XG4tIElxYW1haCBvcHRpb24iLAogICJuYW1lIjogInhBemFuVGltZXMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXphbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hN21lZGtoYWxhZi9hemFuLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYXphbkBhN21lZGtoYWxhZiIsCiAgInZlcnNpb24iOiA3Cn0="}
   }}
 , {"uuid": "restartinto@bgreco.net", "name": "Restart Into...", "pname": "restart-into", "description": "Adds a button in the Restart dialog to select a secondary operating system", "link": "https://extensions.gnome.org/extension/6541/restart-into/", "shell_version_map": {
@@ -6737,14 +6839,14 @@
     "45": {"version": "2", "sha256": "056x6bg3z8vqrknyqgr8hfgd8x04nj626jxw30p3qszvazajr8bj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgUmVnaW9uL0xhbmd1YWdlIFRyYXkgVG8gUXVpY2sgU2V0dGluZ3MiLAogICJuYW1lIjogInhMYW5ndWFnZVRyYXkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYTdtZWRraGFsYWYvTGFuZ1RyYXkiLAogICJ1dWlkIjogImxhbmdUcmF5QGE3bWVka2hhbGFmIiwKICAidmVyc2lvbiI6IDIKfQ=="}
   }}
 , {"uuid": "simplebreakreminder@castillodel.com", "name": "Simple Break Reminder", "pname": "simple-break-reminder", "description": "It's important to remember to take a break", "link": "https://extensions.gnome.org/extension/6568/simple-break-reminder/", "shell_version_map": {
-    "45": {"version": "7", "sha256": "01ad805ram91yrrgix5pha5gfa03vjmhq0iikb7pjvqy8l3q6b19", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkl0J3MgaW1wb3J0YW50IHRvIHJlbWVtYmVyIHRvIHRha2UgYSBicmVhayIsCiAgIm5hbWUiOiAiU2ltcGxlIEJyZWFrIFJlbWluZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXBsZWJyZWFrcmVtaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Nhc3RpbGxvRGVsL3NpbXBsZWJyZWFrcmVtaW5kZXIiLAogICJ1dWlkIjogInNpbXBsZWJyZWFrcmVtaW5kZXJAY2FzdGlsbG9kZWwuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
-    "46": {"version": "7", "sha256": "01ad805ram91yrrgix5pha5gfa03vjmhq0iikb7pjvqy8l3q6b19", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkl0J3MgaW1wb3J0YW50IHRvIHJlbWVtYmVyIHRvIHRha2UgYSBicmVhayIsCiAgIm5hbWUiOiAiU2ltcGxlIEJyZWFrIFJlbWluZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXBsZWJyZWFrcmVtaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Nhc3RpbGxvRGVsL3NpbXBsZWJyZWFrcmVtaW5kZXIiLAogICJ1dWlkIjogInNpbXBsZWJyZWFrcmVtaW5kZXJAY2FzdGlsbG9kZWwuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}
+    "45": {"version": "8", "sha256": "1yb861grg83vgys8s77pwiwp47xgq6qk8igcc6apm8r9hr3mfwqn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkl0J3MgaW1wb3J0YW50IHRvIHJlbWVtYmVyIHRvIHRha2UgYSBicmVhayIsCiAgIm5hbWUiOiAiU2ltcGxlIEJyZWFrIFJlbWluZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXBsZWJyZWFrcmVtaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Nhc3RpbGxvRGVsL3NpbXBsZWJyZWFrcmVtaW5kZXIiLAogICJ1dWlkIjogInNpbXBsZWJyZWFrcmVtaW5kZXJAY2FzdGlsbG9kZWwuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="},
+    "46": {"version": "8", "sha256": "1yb861grg83vgys8s77pwiwp47xgq6qk8igcc6apm8r9hr3mfwqn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkl0J3MgaW1wb3J0YW50IHRvIHJlbWVtYmVyIHRvIHRha2UgYSBicmVhayIsCiAgIm5hbWUiOiAiU2ltcGxlIEJyZWFrIFJlbWluZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXBsZWJyZWFrcmVtaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Nhc3RpbGxvRGVsL3NpbXBsZWJyZWFrcmVtaW5kZXIiLAogICJ1dWlkIjogInNpbXBsZWJyZWFrcmVtaW5kZXJAY2FzdGlsbG9kZWwuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}
   }}
 , {"uuid": "OnTheTop@fablevi.github.io", "name": "On The Top", "pname": "on-the-top", "description": "Always on top button in the top bar", "link": "https://extensions.gnome.org/extension/6571/on-the-top/", "shell_version_map": {
     "45": {"version": "15", "sha256": "19d723mjg08yg1n9dlas0qv03gsqvsmjy5cmq3cl05l5r0jixf77", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBvbiB0b3AgYnV0dG9uIGluIHRoZSB0b3AgYmFyIiwKICAiZXh0ZW5zaW9uLWlkIjogIk9uVGhlVG9wIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiT25UaGVUb3AiLAogICJuYW1lIjogIk9uIFRoZSBUb3AiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub24tdGhlLXRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmFibGV2aS9PblRoZVRvcCIsCiAgInV1aWQiOiAiT25UaGVUb3BAZmFibGV2aS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTUKfQ=="},
     "46": {"version": "15", "sha256": "19d723mjg08yg1n9dlas0qv03gsqvsmjy5cmq3cl05l5r0jixf77", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBvbiB0b3AgYnV0dG9uIGluIHRoZSB0b3AgYmFyIiwKICAiZXh0ZW5zaW9uLWlkIjogIk9uVGhlVG9wIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiT25UaGVUb3AiLAogICJuYW1lIjogIk9uIFRoZSBUb3AiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub24tdGhlLXRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmFibGV2aS9PblRoZVRvcCIsCiAgInV1aWQiOiAiT25UaGVUb3BAZmFibGV2aS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}
   }}
-, {"uuid": "openbar@neuromorph", "name": "Open Bar", "pname": "open-bar", "description": "Top Bar ( Top Panel ) customization / styling. Open the Top Bar and let the colors 🍹 flow.\n\n**Please report on GitHub if something is broken due to an update or if you have any suggestions.\n\nUpdate (v29/v30): Bug Fix for extension disable, introduced by v27/v28\nUpdate ( v27/v28 ): \n- Compatibility with more extensions: Fullscreen Avoider,  Lunar Calendar, Dash-to-Panel* and others**.\n- New option to apply the panel menu styles to all the shell pop-ups\n- Calendar day with event - dot indicator fix and toggle switch update fix\n* Dash-to-Panel: You may have to turn on 'Apply menu styles to shell' under 'Beyond Bar' in settings. Also , in case of a crash, check issue #26 in Github.\n** Others: Some extensions do not use standard widget and API (e.g. PanelMenu Button and main.addToStatusArea) when adding indicator to Panel and fixing that makes them work correctly with Open Bar or user themes.\n\nFeatures from recent updates:\n- Auto FG option to automatically switch (black/white) FG color based on widget background\n- Option to set Panel Box / Margins BG color\n- Light-Gradient option for Menu background\n- More tweaks for Border width and radius to change the way the Bar/Buttons look\n-  Auto-theming options \n-  Import, export theme settings to file.\n-  Window-Max Bar: Change Bar props when a window is maximized\n-  More settings in Menus: Menu panel and buttons radius, slider tweaks\n\nAuto Theming:\n- Note: If you want to save your current settings, please use Export Settings option before applying Auto-theme. You can import it back whenever needed.\n- Please select Bar properties esp. type of bar before applying a theme. If you change Bar type later, apply theme again.\n- There are three theme options: 'Color', 'Dark', 'Light' and two variations for each: 'Default', 'Alt'.  Try all combinations to see what you prefer for your desktop background. (Default and Alt maybe very similar or distinct depending on the background palette).\n- There are more settings in Auto-Theme. You can select if you want the secondary menu BG color to be derived from BG or auto-selected from palette. Also, you can specify any preferred accent color or let the theme choose from the background. \n- Since it is one size fit all solution, 'No Free Lunch' theorem applies. Not all options will work for all backgrounds, so the additional knobs above will help you select the desired one. One of the combinations should work for you at least with little bit tweaking if needed.\n- Once theme is applied, you can further tweak any of the manual settings, as usual, to finetune the theme. \n- There is an option for Auto-refreshing theme when background changes. This will overwrite current theme with newly generated one when background is changed.  \n\nCustomize:\n- Bar Type: Fixed, Floating or Islands / Trilands\n- Bar position, height, margin, paddings\n- Bar foreground color, font\n- Bar background color, transparency, gradient, shadow, highlights, candybar \n- Shape rectangular to pill, border width, color, neon glow\n- Menu customizations: foreground, background colors, transparency, border, shadow,  active/selection, hover colors\netc.\n- Apply to notification popups\n- Includes a custom color palette, under the default palette, in each color button popup. The palette is auto-generated from the desktop background.\n\n\nIf the panel/menu isn't looking right, you need to tweak some settings. There are a lot of knobs to allow for different setups/tastes. It can also make it a bit overwhelming if you are not familiar with css styles but with some experimentation it will become a lot easier. Here are brief notes:\n- BG/FG color: Background or Foreground colors. Foreground is typically text and icons.\n- Alpha: Transparency for the color. 0 is transparent while 1 is opaque.\n- Panel BG will affect the bar while Tri/Islands BG will affect the individual indicator buttons/combos (in Trilands/Islands mode).\n- Gradient goes from Start color to End color. If you want a single color fading, select same color for both with different Alphas. e.g. Setting end color alpha to 0 will form a gradient from Start color to transparent.\n- Highlight color: It is the background color upon hover or focus. You can choose to highlight with border instead.\n- Vertical padding: Controls size of highlights in Mainland/Floating. Also controls size of Islands/Trilands. Increase height if padding squeezes the text.\n- Panel Shadow: a downward shadow for the panel bar. Shadow Spread controls both shadow transparency and spread together.\n- Border: \n    = Width controls thickness (grows inwards for Islands). Adjust bar height accordingly, after setting border width.  \n    = Radius will control the shape from rectangle at radius 0 to Pill at radius close to bar height. \n    = Neon glow: adds a neon-light like glow to the border. You need dark, relatively opaque background with bright/neon colored, relatively opaque border. Neon will override Panel shadow in Mainland and Floating mode.\n - Menus: \n    = FG/BG, border, highlight are similar to above but for menus.\n    = Selected/active color is for menu items that are active e.g. Today's day in Calendar or WiFi in Quick Settings or even an active menu item with opened submenu. \n    = Shadow applies to the panel menu. Use white/bright color in dark theme and black/dark color in light theme for the effect to show and help with contrast. Using same color as menu border is also a good idea. Use the Alphas for both border and shadow to increase or reduce their effect.\n    = Once enabled, menu settings now also apply as soon as changed. You need to press 'Apply Menu Styles' button to enable the menu style. 'Reset Menu Styles' button will remove all menu styles and revert to your default theme.\n\nLastly, be a tiny bit gentler with the sliders in the settings as they modify the stylesheet behind the scene for every update.", "link": "https://extensions.gnome.org/extension/6580/open-bar/", "shell_version_map": {
+, {"uuid": "openbar@neuromorph", "name": "Open Bar", "pname": "open-bar", "description": "Top Bar ( Top Panel ) customization / styling. Open the Top Bar and let the colors 🍹 flow.\n\n**Please report on GitHub if something is broken due to an update or if you have any suggestions.\n\nUPCOMING:\nOpen Bar 2.0: \n(Available for test in GitHub under branch \"openbar2.0\")\n- Auto-theming completely renewed\n- Apply styles to Bar, Menu, Dash/Dock and rest of the shell\n- Apply accent color to Gtk/Flatpak apps\n\nUpdate (v29/v30): \n- Compatibility with more extensions: Fullscreen Avoider,  Lunar Calendar, Dash-to-Panel* and others**.\n- New option to apply the panel menu styles to all the shell pop-ups\n- Calendar day with event - dot indicator fix and toggle switch update fix\n* Dash-to-Panel: You may have to turn on 'Apply menu styles to shell' under 'Beyond Bar' in settings. Also , in case of a crash, check issue #26 in Github.\n** Others: Some extensions do not use standard widget and API (e.g. PanelMenu Button and main.addToStatusArea) when adding indicator to Panel and fixing that makes them work correctly with Open Bar or user themes.\n\nFeatures from recent updates:\n- Auto FG option to automatically switch (black/white) FG color based on widget background\n- Option to set Panel Box / Margins BG color\n- Light-Gradient option for Menu background\n- More tweaks for Border width and radius to change the way the Bar/Buttons look\n-  Auto-theming options \n-  Import, export theme settings to file.\n-  Window-Max Bar: Change Bar props when a window is maximized\n-  More settings in Menus: Menu panel and buttons radius, slider tweaks\n\nAuto Theming:\n- Note: If you want to save your current settings, please use Export Settings option before applying Auto-theme. You can import it back whenever needed.\n- Please select Bar properties esp. type of bar before applying a theme. If you change Bar type later, apply theme again.\n- There are three theme options: 'Color', 'Dark', 'Light' and two variations for each: 'Default', 'Alt'.  Try all combinations to see what you prefer for your desktop background. (Default and Alt maybe very similar or distinct depending on the background palette).\n- There are more settings in Auto-Theme. You can select if you want the secondary menu BG color to be derived from BG or auto-selected from palette. Also, you can specify any preferred accent color or let the theme choose from the background. \n- Since it is one size fit all solution, 'No Free Lunch' theorem applies. Not all options will work for all backgrounds, so the additional knobs above will help you select the desired one. One of the combinations should work for you at least with little bit tweaking if needed.\n- Once theme is applied, you can further tweak any of the manual settings, as usual, to finetune the theme. \n- There is an option for Auto-refreshing theme when background changes. This will overwrite current theme with newly generated one when background is changed.  \n\nCustomize:\n- Bar Type: Fixed, Floating or Islands / Trilands\n- Bar position, height, margin, paddings\n- Bar foreground color, font\n- Bar background color, transparency, gradient, shadow, highlights, candybar \n- Shape rectangular to pill, border width, color, neon glow\n- Menu customizations: foreground, background colors, transparency, border, shadow,  active/selection, hover colors\netc.\n- Apply to notification popups\n- Includes a custom color palette, under the default palette, in each color button popup. The palette is auto-generated from the desktop background.\n\n\nIf the panel/menu isn't looking right, you need to tweak some settings. There are a lot of knobs to allow for different setups/tastes. It can also make it a bit overwhelming if you are not familiar with css styles but with some experimentation it will become a lot easier. Here are brief notes:\n- BG/FG color: Background or Foreground colors. Foreground is typically text and icons.\n- Alpha: Transparency for the color. 0 is transparent while 1 is opaque.\n- Panel BG will affect the bar while Tri/Islands BG will affect the individual indicator buttons/combos (in Trilands/Islands mode).\n- Gradient goes from Start color to End color. If you want a single color fading, select same color for both with different Alphas. e.g. Setting end color alpha to 0 will form a gradient from Start color to transparent.\n- Highlight color: It is the background color upon hover or focus. You can choose to highlight with border instead.\n- Vertical padding: Controls size of highlights in Mainland/Floating. Also controls size of Islands/Trilands. Increase height if padding squeezes the text.\n- Panel Shadow: a downward shadow for the panel bar. Shadow Spread controls both shadow transparency and spread together.\n- Border: \n    = Width controls thickness (grows inwards for Islands). Adjust bar height accordingly, after setting border width.  \n    = Radius will control the shape from rectangle at radius 0 to Pill at radius close to bar height. \n    = Neon glow: adds a neon-light like glow to the border. You need dark, relatively opaque background with bright/neon colored, relatively opaque border. Neon will override Panel shadow in Mainland and Floating mode.\n - Menus: \n    = FG/BG, border, highlight are similar to above but for menus.\n    = Selected/active color is for menu items that are active e.g. Today's day in Calendar or WiFi in Quick Settings or even an active menu item with opened submenu. \n    = Shadow applies to the panel menu. Use white/bright color in dark theme and black/dark color in light theme for the effect to show and help with contrast. Using same color as menu border is also a good idea. Use the Alphas for both border and shadow to increase or reduce their effect.\n    = Once enabled, menu settings now also apply as soon as changed. You need to press 'Apply Menu Styles' button to enable the menu style. 'Reset Menu Styles' button will remove all menu styles and revert to your default theme.\n\nLastly, be a tiny bit gentler with the sliders in the settings as they modify the stylesheet behind the scene for every update.", "link": "https://extensions.gnome.org/extension/6580/open-bar/", "shell_version_map": {
     "42": {"version": "29", "sha256": "070jphah7b34hf7mrq0gcz2bm30ydrgpy0c7rngn9nl2vdhbxkcn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBCYXIgKCBUb3AgUGFuZWwgKSBjdXN0b21pemF0aW9uIC8gc3R5bGluZy4gT3BlbiB0aGUgVG9wIEJhciBhbmQgbGV0IHRoZSBjb2xvcnMgXHVkODNjXHVkZjc5IGZsb3cuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJuZXVyb21vcnBoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm9wZW5iYXIiLAogICJuYW1lIjogIk9wZW4gQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9wZW5iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZXVyb21vcnBoL29wZW5iYXIiLAogICJ1dWlkIjogIm9wZW5iYXJAbmV1cm9tb3JwaCIsCiAgInZlcnNpb24iOiAyOQp9"},
     "43": {"version": "29", "sha256": "070jphah7b34hf7mrq0gcz2bm30ydrgpy0c7rngn9nl2vdhbxkcn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBCYXIgKCBUb3AgUGFuZWwgKSBjdXN0b21pemF0aW9uIC8gc3R5bGluZy4gT3BlbiB0aGUgVG9wIEJhciBhbmQgbGV0IHRoZSBjb2xvcnMgXHVkODNjXHVkZjc5IGZsb3cuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJuZXVyb21vcnBoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm9wZW5iYXIiLAogICJuYW1lIjogIk9wZW4gQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9wZW5iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZXVyb21vcnBoL29wZW5iYXIiLAogICJ1dWlkIjogIm9wZW5iYXJAbmV1cm9tb3JwaCIsCiAgInZlcnNpb24iOiAyOQp9"},
     "44": {"version": "29", "sha256": "070jphah7b34hf7mrq0gcz2bm30ydrgpy0c7rngn9nl2vdhbxkcn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBCYXIgKCBUb3AgUGFuZWwgKSBjdXN0b21pemF0aW9uIC8gc3R5bGluZy4gT3BlbiB0aGUgVG9wIEJhciBhbmQgbGV0IHRoZSBjb2xvcnMgXHVkODNjXHVkZjc5IGZsb3cuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJuZXVyb21vcnBoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm9wZW5iYXIiLAogICJuYW1lIjogIk9wZW4gQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9wZW5iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZXVyb21vcnBoL29wZW5iYXIiLAogICJ1dWlkIjogIm9wZW5iYXJAbmV1cm9tb3JwaCIsCiAgInZlcnNpb24iOiAyOQp9"},
@@ -6769,13 +6871,15 @@
     "45": {"version": "3", "sha256": "0d3rk4ygvabw865frf4pv687fmdsshd7287w8k2klcwgszj04v43", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBhbGxvdyB0aGUgdXNlIG9mIHRoZSBvbnNjcmVlbiBrZXlib2FyZCAob3NrKSwgcmVnYXJkbGVzcyBvZiB0b3VjaC90YWJsZXQgbW9kZS4iLAogICJuYW1lIjogIkFsd2F5cyBhbGxvdyBvbnNjcmVlbiBrZXlib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kdmR6bXIvYWx3YXlzLXNob3ctb25zY3JlZW4ta2V5Ym9hcmQiLAogICJ1dWlkIjogImFsd2F5cy1hbGxvdy1vbnNjcmVlbi1rZXlib2FyZEBkdmR6bXIuZXh0ZW5zaW9uIiwKICAidmVyc2lvbiI6IDMKfQ=="}
   }}
 , {"uuid": "dev-container-manager@devopsnextgenx", "name": "docker podman kind kubernetes cluster container manager", "pname": "dev-container-manager", "description": "Gnome Extension to enable cicd/container/kubernetes and cloud resource handling. you can use docker, podman and use kubernetes clusters with kind. Added resize, delete container and filter active containers.", "link": "https://extensions.gnome.org/extension/6601/dev-container-manager/", "shell_version_map": {
-    "45": {"version": "21", "sha256": "1pakhrkhfmjxmry6n2v8dbciq1mpcdclyhvn4cin84gwsdhalfcc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIEV4dGVuc2lvbiB0byBlbmFibGUgY2ljZC9jb250YWluZXIva3ViZXJuZXRlcyBhbmQgY2xvdWQgcmVzb3VyY2UgaGFuZGxpbmcuIHlvdSBjYW4gdXNlIGRvY2tlciwgcG9kbWFuIGFuZCB1c2Uga3ViZXJuZXRlcyBjbHVzdGVycyB3aXRoIGtpbmQuIEFkZGVkIHJlc2l6ZSwgZGVsZXRlIGNvbnRhaW5lciBhbmQgZmlsdGVyIGFjdGl2ZSBjb250YWluZXJzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImRldm9wc25leHRnZW54IgogIH0sCiAgIm5hbWUiOiAiZG9ja2VyIHBvZG1hbiBraW5kIGt1YmVybmV0ZXMgY2x1c3RlciBjb250YWluZXIgbWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kZXYtY29udGFpbmVyLW1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGV2b3BzbmV4dGdlbngvZ25vbWUtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiZGV2LWNvbnRhaW5lci1tYW5hZ2VyQGRldm9wc25leHRnZW54IiwKICAidmVyc2lvbiI6IDIxLAogICJ2ZXJzaW9uLW5hbWUiOiAiMC4wLjgiCn0="}
+    "45": {"version": "23", "sha256": "05vdng19gl3rrrjmzsfbhgfwnsgd7y1l9njsvqsbibrflxc24cpz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIEV4dGVuc2lvbiB0byBlbmFibGUgY2ljZC9jb250YWluZXIva3ViZXJuZXRlcyBhbmQgY2xvdWQgcmVzb3VyY2UgaGFuZGxpbmcuIHlvdSBjYW4gdXNlIGRvY2tlciwgcG9kbWFuIGFuZCB1c2Uga3ViZXJuZXRlcyBjbHVzdGVycyB3aXRoIGtpbmQuIEFkZGVkIHJlc2l6ZSwgZGVsZXRlIGNvbnRhaW5lciBhbmQgZmlsdGVyIGFjdGl2ZSBjb250YWluZXJzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImRldm9wc25leHRnZW54IgogIH0sCiAgIm5hbWUiOiAiZG9ja2VyIHBvZG1hbiBraW5kIGt1YmVybmV0ZXMgY2x1c3RlciBjb250YWluZXIgbWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kZXYtY29udGFpbmVyLW1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Rldm9wc25leHRnZW54L2dub21lLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImRldi1jb250YWluZXItbWFuYWdlckBkZXZvcHNuZXh0Z2VueCIsCiAgInZlcnNpb24iOiAyMywKICAidmVyc2lvbi1uYW1lIjogIjAuMC44Igp9"},
+    "46": {"version": "23", "sha256": "05vdng19gl3rrrjmzsfbhgfwnsgd7y1l9njsvqsbibrflxc24cpz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIEV4dGVuc2lvbiB0byBlbmFibGUgY2ljZC9jb250YWluZXIva3ViZXJuZXRlcyBhbmQgY2xvdWQgcmVzb3VyY2UgaGFuZGxpbmcuIHlvdSBjYW4gdXNlIGRvY2tlciwgcG9kbWFuIGFuZCB1c2Uga3ViZXJuZXRlcyBjbHVzdGVycyB3aXRoIGtpbmQuIEFkZGVkIHJlc2l6ZSwgZGVsZXRlIGNvbnRhaW5lciBhbmQgZmlsdGVyIGFjdGl2ZSBjb250YWluZXJzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImRldm9wc25leHRnZW54IgogIH0sCiAgIm5hbWUiOiAiZG9ja2VyIHBvZG1hbiBraW5kIGt1YmVybmV0ZXMgY2x1c3RlciBjb250YWluZXIgbWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kZXYtY29udGFpbmVyLW1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Rldm9wc25leHRnZW54L2dub21lLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImRldi1jb250YWluZXItbWFuYWdlckBkZXZvcHNuZXh0Z2VueCIsCiAgInZlcnNpb24iOiAyMywKICAidmVyc2lvbi1uYW1lIjogIjAuMC44Igp9"}
   }}
 , {"uuid": "move-to-next-screen@wosar.me", "name": "Move To Next Screen", "pname": "move-to-next-screen", "description": "Adds a keyboard shortcut (CTRL+SHIFT+PAGEUP) to move the current window to the next screen.", "link": "https://extensions.gnome.org/extension/6610/move-to-next-screen/", "shell_version_map": {
     "45": {"version": "1", "sha256": "0n28xnphka81ajypqwnbjpm24zwa8sdan3wzsan68f4raz9bf5xy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBrZXlib2FyZCBzaG9ydGN1dCB0byBtb3ZlIHRoZSBjdXJyZW50IHdpbmRvdyB0byB0aGUgbmV4dCBzY3JlZW4iLAogICJuYW1lIjogIk1vdmUgVG8gTmV4dCBTY3JlZW4iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubW92ZS10by1uZXh0LXNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9md29zYXIvbW92ZS10by1uZXh0LXNjcmVlbiIsCiAgInV1aWQiOiAibW92ZS10by1uZXh0LXNjcmVlbkB3b3Nhci5tZSIsCiAgInZlcnNpb24iOiAxCn0="}
   }}
-, {"uuid": "window-on-top@yousafesaeed.github.io", "name": "Window on Top", "pname": "window-on-top", "description": "Simple top panel button for toggling Always on Top for windows.", "link": "https://extensions.gnome.org/extension/6619/window-on-top/", "shell_version_map": {
-    "45": {"version": "3", "sha256": "0v1xzh8i4j3j4gf1mhc3kgfd812kwnm41m15pxcy7fryapy97mdl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSB0b3AgcGFuZWwgdG9nZ2xlIGZvciBhY3RpdmF0aW5nIEFsd2F5cyBvbiBUb3AgZm9yIHdpbmRvd3MuIiwKICAibmFtZSI6ICJXaW5kb3cgb24gVG9wIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3lvdXNhZmVzYWVlZC93aW5kb3ctb24tdG9wIiwKICAidXVpZCI6ICJ3aW5kb3ctb24tdG9wQHlvdXNhZmVzYWVlZC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMwp9"}
+, {"uuid": "window-on-top@yousafesaeed.github.io", "name": "Window on Top", "pname": "window-on-top", "description": "Simple top panel toggle for activating Always on Top for windows.", "link": "https://extensions.gnome.org/extension/6619/window-on-top/", "shell_version_map": {
+    "45": {"version": "4", "sha256": "0zdpycnv7pk8hic84ih3nh1gb1871bv4s33x9dnl2468sv4j07k8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSB0b3AgcGFuZWwgdG9nZ2xlIGZvciBhY3RpdmF0aW5nIEFsd2F5cyBvbiBUb3AgZm9yIHdpbmRvd3MuIiwKICAibmFtZSI6ICJXaW5kb3cgb24gVG9wIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS95b3VzYWZlc2FlZWQvd2luZG93LW9uLXRvcCIsCiAgInV1aWQiOiAid2luZG93LW9uLXRvcEB5b3VzYWZlc2FlZWQuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQKfQ=="},
+    "46": {"version": "4", "sha256": "0zdpycnv7pk8hic84ih3nh1gb1871bv4s33x9dnl2468sv4j07k8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSB0b3AgcGFuZWwgdG9nZ2xlIGZvciBhY3RpdmF0aW5nIEFsd2F5cyBvbiBUb3AgZm9yIHdpbmRvd3MuIiwKICAibmFtZSI6ICJXaW5kb3cgb24gVG9wIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS95b3VzYWZlc2FlZWQvd2luZG93LW9uLXRvcCIsCiAgInV1aWQiOiAid2luZG93LW9uLXRvcEB5b3VzYWZlc2FlZWQuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQKfQ=="}
   }}
 , {"uuid": "gmeet@pabmartine.com", "name": "GMeet", "pname": "gmeet", "description": "GNOME Shell Extension for Quick Access to Google Meet.\n\nWith this extension, you can quickly access your Google Meet bookmarks directly from the Gnome Shell panel. You can add new bookmarks, manage existing ones, and directly open Meet sessions in your browser.\n\nFeatures:\n- 'New Meet': Opens a new Google Meet session in your default browser.\n- 'Add': Allows you to add a new bookmark to your Google Meet sessions. Simply provide a name and a unique code.\n\nTo delete a bookmark, simply click on the trash icon next to each bookmark in the menu.\n\nThis extension is not affiliated, funded, or in any way associated with Google and GMeet.\n\nFor additional support, please contact the extension developer.", "link": "https://extensions.gnome.org/extension/6622/gmeet/", "shell_version_map": {
     "45": {"version": "10", "sha256": "09vacf98md7y3az904amkjqgq5dhvfvcbz4wrfhb1rnp4grzbr3y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIEV4dGVuc2lvbiBmb3IgUXVpY2sgQWNjZXNzIHRvIEdvb2dsZSBNZWV0LlxuXG5XaXRoIHRoaXMgZXh0ZW5zaW9uLCB5b3UgY2FuIHF1aWNrbHkgYWNjZXNzIHlvdXIgR29vZ2xlIE1lZXQgYm9va21hcmtzIGRpcmVjdGx5IGZyb20gdGhlIEdub21lIFNoZWxsIHBhbmVsLiBZb3UgY2FuIGFkZCBuZXcgYm9va21hcmtzLCBtYW5hZ2UgZXhpc3Rpbmcgb25lcywgYW5kIGRpcmVjdGx5IG9wZW4gTWVldCBzZXNzaW9ucyBpbiB5b3VyIGJyb3dzZXIuXG5cbkZlYXR1cmVzOlxuLSAnTmV3IE1lZXQnOiBPcGVucyBhIG5ldyBHb29nbGUgTWVldCBzZXNzaW9uIGluIHlvdXIgZGVmYXVsdCBicm93c2VyLlxuLSAnQWRkJzogQWxsb3dzIHlvdSB0byBhZGQgYSBuZXcgYm9va21hcmsgdG8geW91ciBHb29nbGUgTWVldCBzZXNzaW9ucy4gU2ltcGx5IHByb3ZpZGUgYSBuYW1lIGFuZCBhIHVuaXF1ZSBjb2RlLlxuXG5UbyBkZWxldGUgYSBib29rbWFyaywgc2ltcGx5IGNsaWNrIG9uIHRoZSB0cmFzaCBpY29uIG5leHQgdG8gZWFjaCBib29rbWFyayBpbiB0aGUgbWVudS5cblxuVGhpcyBleHRlbnNpb24gaXMgbm90IGFmZmlsaWF0ZWQsIGZ1bmRlZCwgb3IgaW4gYW55IHdheSBhc3NvY2lhdGVkIHdpdGggR29vZ2xlIGFuZCBHTWVldC5cblxuRm9yIGFkZGl0aW9uYWwgc3VwcG9ydCwgcGxlYXNlIGNvbnRhY3QgdGhlIGV4dGVuc2lvbiBkZXZlbG9wZXIuIiwKICAibmFtZSI6ICJHTWVldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYWJtYXJ0aW5lL2dtZWV0IiwKICAidXVpZCI6ICJnbWVldEBwYWJtYXJ0aW5lLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"}
@@ -6808,8 +6912,8 @@
     "44": {"version": "9", "sha256": "10i3chc6vzsw04a5jm8p39rlkj7klz96g4979gvia7j6xfpcs1bc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgJiBIaWRlIGljb25zIGZyb20gdGhlIHRvcCBwYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1pY29uaGlkZXJ1cGRhdGVkIiwKICAibmFtZSI6ICJJY29uIEhpZGVyIFVwZGF0ZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaWNvbi1oaWRlci11cGRhdGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9seDM1OGhjbC9saW51eGljb25oaWRlcnVwZGF0ZWQiLAogICJ1dWlkIjogImljb24taGlkZXItdXBkYXRlZEBseDM1OGhjbC5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}
   }}
 , {"uuid": "openweather-extension@penguin-teal.github.io", "name": "OpenWeather Refined", "pname": "openweather", "description": "Display weather for the current or a specified location. Fork of OpenWeather.\nWeather data is provided by OpenWeatherMap.org or WeatherAPI.com.\nIf location is set to \"My Location,\" which is the case by default on laptops, this extension will use location services and Nominatim (from openstreetmap.org), or infoip.io if that failed.", "link": "https://extensions.gnome.org/extension/6655/openweather/", "shell_version_map": {
-    "45": {"version": "13", "sha256": "05cdybcfbzv15k3dk6fqckp9s3z7n5wcfsgv2zvrjlvp78yj3q6c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgd2VhdGhlciBmb3IgdGhlIGN1cnJlbnQgb3IgYSBzcGVjaWZpZWQgbG9jYXRpb24uIEZvcmsgb2YgT3BlbldlYXRoZXIuXG5XZWF0aGVyIGRhdGEgaXMgcHJvdmlkZWQgYnkgT3BlbldlYXRoZXJNYXAub3JnIG9yIFdlYXRoZXJBUEkuY29tLlxuSWYgbG9jYXRpb24gaXMgc2V0IHRvIFwiTXkgTG9jYXRpb24sXCIgd2hpY2ggaXMgdGhlIGNhc2UgYnkgZGVmYXVsdCBvbiBsYXB0b3BzLCB0aGlzIGV4dGVuc2lvbiB3aWxsIHVzZSBsb2NhdGlvbiBzZXJ2aWNlcyBhbmQgTm9taW5hdGltIChmcm9tIG9wZW5zdHJlZXRtYXAub3JnKSwgb3IgaW5mb2lwLmlvIGlmIHRoYXQgZmFpbGVkLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1vcGVud2VhdGhlcnJlZmluZWQiLAogICJnaXQtdmVyc2lvbiI6ICIxMzQucjAuZ2YyZDczOWUiLAogICJuYW1lIjogIk9wZW5XZWF0aGVyIFJlZmluZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub3BlbndlYXRoZXJyZWZpbmVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wZW5ndWluLXRlYWwvZ25vbWUtb3BlbndlYXRoZXIiLAogICJ1dWlkIjogIm9wZW53ZWF0aGVyLWV4dGVuc2lvbkBwZW5ndWluLXRlYWwuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEzLAogICJ2ZXJzaW9uLW5hbWUiOiAiMTM0Igp9"},
-    "46": {"version": "13", "sha256": "05cdybcfbzv15k3dk6fqckp9s3z7n5wcfsgv2zvrjlvp78yj3q6c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgd2VhdGhlciBmb3IgdGhlIGN1cnJlbnQgb3IgYSBzcGVjaWZpZWQgbG9jYXRpb24uIEZvcmsgb2YgT3BlbldlYXRoZXIuXG5XZWF0aGVyIGRhdGEgaXMgcHJvdmlkZWQgYnkgT3BlbldlYXRoZXJNYXAub3JnIG9yIFdlYXRoZXJBUEkuY29tLlxuSWYgbG9jYXRpb24gaXMgc2V0IHRvIFwiTXkgTG9jYXRpb24sXCIgd2hpY2ggaXMgdGhlIGNhc2UgYnkgZGVmYXVsdCBvbiBsYXB0b3BzLCB0aGlzIGV4dGVuc2lvbiB3aWxsIHVzZSBsb2NhdGlvbiBzZXJ2aWNlcyBhbmQgTm9taW5hdGltIChmcm9tIG9wZW5zdHJlZXRtYXAub3JnKSwgb3IgaW5mb2lwLmlvIGlmIHRoYXQgZmFpbGVkLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1vcGVud2VhdGhlcnJlZmluZWQiLAogICJnaXQtdmVyc2lvbiI6ICIxMzQucjAuZ2YyZDczOWUiLAogICJuYW1lIjogIk9wZW5XZWF0aGVyIFJlZmluZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub3BlbndlYXRoZXJyZWZpbmVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wZW5ndWluLXRlYWwvZ25vbWUtb3BlbndlYXRoZXIiLAogICJ1dWlkIjogIm9wZW53ZWF0aGVyLWV4dGVuc2lvbkBwZW5ndWluLXRlYWwuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEzLAogICJ2ZXJzaW9uLW5hbWUiOiAiMTM0Igp9"}
+    "45": {"version": "14", "sha256": "0bimv6p1y6pwy1qvnjhlnzq2dp24lmqlrbd1s8zgv4la29hn1zw2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgd2VhdGhlciBmb3IgdGhlIGN1cnJlbnQgb3IgYSBzcGVjaWZpZWQgbG9jYXRpb24uIEZvcmsgb2YgT3BlbldlYXRoZXIuXG5XZWF0aGVyIGRhdGEgaXMgcHJvdmlkZWQgYnkgT3BlbldlYXRoZXJNYXAub3JnIG9yIFdlYXRoZXJBUEkuY29tLlxuSWYgbG9jYXRpb24gaXMgc2V0IHRvIFwiTXkgTG9jYXRpb24sXCIgd2hpY2ggaXMgdGhlIGNhc2UgYnkgZGVmYXVsdCBvbiBsYXB0b3BzLCB0aGlzIGV4dGVuc2lvbiB3aWxsIHVzZSBsb2NhdGlvbiBzZXJ2aWNlcyBhbmQgTm9taW5hdGltIChmcm9tIG9wZW5zdHJlZXRtYXAub3JnKSwgb3IgaW5mb2lwLmlvIGlmIHRoYXQgZmFpbGVkLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1vcGVud2VhdGhlcnJlZmluZWQiLAogICJnaXQtdmVyc2lvbiI6ICIxMzUucjAuZ2U5OTRhZWIiLAogICJuYW1lIjogIk9wZW5XZWF0aGVyIFJlZmluZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub3BlbndlYXRoZXJyZWZpbmVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wZW5ndWluLXRlYWwvZ25vbWUtb3BlbndlYXRoZXIiLAogICJ1dWlkIjogIm9wZW53ZWF0aGVyLWV4dGVuc2lvbkBwZW5ndWluLXRlYWwuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE0LAogICJ2ZXJzaW9uLW5hbWUiOiAiMTM1Igp9"},
+    "46": {"version": "14", "sha256": "0bimv6p1y6pwy1qvnjhlnzq2dp24lmqlrbd1s8zgv4la29hn1zw2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgd2VhdGhlciBmb3IgdGhlIGN1cnJlbnQgb3IgYSBzcGVjaWZpZWQgbG9jYXRpb24uIEZvcmsgb2YgT3BlbldlYXRoZXIuXG5XZWF0aGVyIGRhdGEgaXMgcHJvdmlkZWQgYnkgT3BlbldlYXRoZXJNYXAub3JnIG9yIFdlYXRoZXJBUEkuY29tLlxuSWYgbG9jYXRpb24gaXMgc2V0IHRvIFwiTXkgTG9jYXRpb24sXCIgd2hpY2ggaXMgdGhlIGNhc2UgYnkgZGVmYXVsdCBvbiBsYXB0b3BzLCB0aGlzIGV4dGVuc2lvbiB3aWxsIHVzZSBsb2NhdGlvbiBzZXJ2aWNlcyBhbmQgTm9taW5hdGltIChmcm9tIG9wZW5zdHJlZXRtYXAub3JnKSwgb3IgaW5mb2lwLmlvIGlmIHRoYXQgZmFpbGVkLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1vcGVud2VhdGhlcnJlZmluZWQiLAogICJnaXQtdmVyc2lvbiI6ICIxMzUucjAuZ2U5OTRhZWIiLAogICJuYW1lIjogIk9wZW5XZWF0aGVyIFJlZmluZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub3BlbndlYXRoZXJyZWZpbmVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wZW5ndWluLXRlYWwvZ25vbWUtb3BlbndlYXRoZXIiLAogICJ1dWlkIjogIm9wZW53ZWF0aGVyLWV4dGVuc2lvbkBwZW5ndWluLXRlYWwuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE0LAogICJ2ZXJzaW9uLW5hbWUiOiAiMTM1Igp9"}
   }}
 , {"uuid": "wallhub@sakithb.github.io", "name": "Wallhub", "pname": "wallhub", "description": "Manage wallpapers with ease", "link": "https://extensions.gnome.org/extension/6661/wallhub/", "shell_version_map": {
     "45": {"version": "6", "sha256": "1nqjab3hji06046x2ihg8i2izcpgxy9l7pwv4w21aq04fb2742hp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB3YWxscGFwZXJzIHdpdGggZWFzZSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAic2FraXRoYiIsCiAgICAia29maSI6ICJzYWtpdGhiIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIndhbGxodWJAc2FraXRoYi5naXRodWIuaW8iLAogICJuYW1lIjogIldhbGxodWIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2FsbGh1YiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2FraXRoYi93YWxsaHViIiwKICAidXVpZCI6ICJ3YWxsaHViQHNha2l0aGIuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYsCiAgInZlcnNpb24tbmFtZSI6ICIxLjEuMyIKfQ=="},
@@ -6834,8 +6938,8 @@
     "46": {"version": "5", "sha256": "1fmz31bm2kf6rbzkib1756sg25chyxs5vbllqjzc49dalm0cla2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBjdXJyZW50IHBvd2VyIHByb2ZpbGUgaW4gcGFuZWwncyBzeXN0ZW0gaWNvbnMuIFZlcnkgbGlnaHQgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiUG93ZXIgcHJvZmlsZSBpbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvcG93ZXItcHJvZmlsZSIsCiAgInV1aWQiOiAicG93ZXItcHJvZmlsZUBmdGh4IiwKICAidmVyc2lvbiI6IDUKfQ=="}
   }}
 , {"uuid": "monitor@astraext.github.io", "name": "Astra Monitor", "pname": "astra-monitor", "description": "Astra Monitor is a cutting-edge, fully customizable, and performance-focused system monitoring extension for GNOME's top bar. It's an all-in-one solution for those seeking to keep a close eye on their system's performance metrics like CPU, GPU, RAM, disk usage, network statistics, and sensor readings.", "link": "https://extensions.gnome.org/extension/6682/astra-monitor/", "shell_version_map": {
-    "45": {"version": "35", "sha256": "1n2x6qhnm3xm4md5r8g8gzj5zs3894iy2hzlv31p4wrq7b7xvx5l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFzdHJhIE1vbml0b3IgaXMgYSBjdXR0aW5nLWVkZ2UsIGZ1bGx5IGN1c3RvbWl6YWJsZSwgYW5kIHBlcmZvcm1hbmNlLWZvY3VzZWQgc3lzdGVtIG1vbml0b3JpbmcgZXh0ZW5zaW9uIGZvciBHTk9NRSdzIHRvcCBiYXIuIEl0J3MgYW4gYWxsLWluLW9uZSBzb2x1dGlvbiBmb3IgdGhvc2Ugc2Vla2luZyB0byBrZWVwIGEgY2xvc2UgZXllIG9uIHRoZWlyIHN5c3RlbSdzIHBlcmZvcm1hbmNlIG1ldHJpY3MgbGlrZSBDUFUsIEdQVSwgUkFNLCBkaXNrIHVzYWdlLCBuZXR3b3JrIHN0YXRpc3RpY3MsIGFuZCBzZW5zb3IgcmVhZGluZ3MuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJhc3RyYS5leHQiLAogICAgInBhdHJlb24iOiAiQXN0cmFFeHQiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAibW9uaXRvckBhc3RyYWV4dC5naXRodWIuaW8iLAogICJsaWNlbnNlIjogIkdQTC0zLjAtb3ItbGF0ZXIiLAogICJuYW1lIjogIkFzdHJhIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXN0cmEtbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQXN0cmFFeHQvYXN0cmEtbW9uaXRvciIsCiAgInV1aWQiOiAibW9uaXRvckBhc3RyYWV4dC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMzUsCiAgInZlcnNpb24tbmFtZSI6ICIyMSIKfQ=="},
-    "46": {"version": "35", "sha256": "1n2x6qhnm3xm4md5r8g8gzj5zs3894iy2hzlv31p4wrq7b7xvx5l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFzdHJhIE1vbml0b3IgaXMgYSBjdXR0aW5nLWVkZ2UsIGZ1bGx5IGN1c3RvbWl6YWJsZSwgYW5kIHBlcmZvcm1hbmNlLWZvY3VzZWQgc3lzdGVtIG1vbml0b3JpbmcgZXh0ZW5zaW9uIGZvciBHTk9NRSdzIHRvcCBiYXIuIEl0J3MgYW4gYWxsLWluLW9uZSBzb2x1dGlvbiBmb3IgdGhvc2Ugc2Vla2luZyB0byBrZWVwIGEgY2xvc2UgZXllIG9uIHRoZWlyIHN5c3RlbSdzIHBlcmZvcm1hbmNlIG1ldHJpY3MgbGlrZSBDUFUsIEdQVSwgUkFNLCBkaXNrIHVzYWdlLCBuZXR3b3JrIHN0YXRpc3RpY3MsIGFuZCBzZW5zb3IgcmVhZGluZ3MuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJhc3RyYS5leHQiLAogICAgInBhdHJlb24iOiAiQXN0cmFFeHQiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAibW9uaXRvckBhc3RyYWV4dC5naXRodWIuaW8iLAogICJsaWNlbnNlIjogIkdQTC0zLjAtb3ItbGF0ZXIiLAogICJuYW1lIjogIkFzdHJhIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXN0cmEtbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQXN0cmFFeHQvYXN0cmEtbW9uaXRvciIsCiAgInV1aWQiOiAibW9uaXRvckBhc3RyYWV4dC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMzUsCiAgInZlcnNpb24tbmFtZSI6ICIyMSIKfQ=="}
+    "45": {"version": "42", "sha256": "0hyas31bv2k8dplxlv6r5a421v69qyxjf1a6zkal5i5p7ifl470z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFzdHJhIE1vbml0b3IgaXMgYSBjdXR0aW5nLWVkZ2UsIGZ1bGx5IGN1c3RvbWl6YWJsZSwgYW5kIHBlcmZvcm1hbmNlLWZvY3VzZWQgc3lzdGVtIG1vbml0b3JpbmcgZXh0ZW5zaW9uIGZvciBHTk9NRSdzIHRvcCBiYXIuIEl0J3MgYW4gYWxsLWluLW9uZSBzb2x1dGlvbiBmb3IgdGhvc2Ugc2Vla2luZyB0byBrZWVwIGEgY2xvc2UgZXllIG9uIHRoZWlyIHN5c3RlbSdzIHBlcmZvcm1hbmNlIG1ldHJpY3MgbGlrZSBDUFUsIEdQVSwgUkFNLCBkaXNrIHVzYWdlLCBuZXR3b3JrIHN0YXRpc3RpY3MsIGFuZCBzZW5zb3IgcmVhZGluZ3MuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJhc3RyYS5leHQiLAogICAgInBhdHJlb24iOiAiQXN0cmFFeHQiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAibW9uaXRvckBhc3RyYWV4dC5naXRodWIuaW8iLAogICJsaWNlbnNlIjogIkdQTC0zLjAtb3ItbGF0ZXIiLAogICJuYW1lIjogIkFzdHJhIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXN0cmEtbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQXN0cmFFeHQvYXN0cmEtbW9uaXRvciIsCiAgInV1aWQiOiAibW9uaXRvckBhc3RyYWV4dC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNDIsCiAgInZlcnNpb24tbmFtZSI6ICIyNSIKfQ=="},
+    "46": {"version": "42", "sha256": "0hyas31bv2k8dplxlv6r5a421v69qyxjf1a6zkal5i5p7ifl470z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFzdHJhIE1vbml0b3IgaXMgYSBjdXR0aW5nLWVkZ2UsIGZ1bGx5IGN1c3RvbWl6YWJsZSwgYW5kIHBlcmZvcm1hbmNlLWZvY3VzZWQgc3lzdGVtIG1vbml0b3JpbmcgZXh0ZW5zaW9uIGZvciBHTk9NRSdzIHRvcCBiYXIuIEl0J3MgYW4gYWxsLWluLW9uZSBzb2x1dGlvbiBmb3IgdGhvc2Ugc2Vla2luZyB0byBrZWVwIGEgY2xvc2UgZXllIG9uIHRoZWlyIHN5c3RlbSdzIHBlcmZvcm1hbmNlIG1ldHJpY3MgbGlrZSBDUFUsIEdQVSwgUkFNLCBkaXNrIHVzYWdlLCBuZXR3b3JrIHN0YXRpc3RpY3MsIGFuZCBzZW5zb3IgcmVhZGluZ3MuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJhc3RyYS5leHQiLAogICAgInBhdHJlb24iOiAiQXN0cmFFeHQiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAibW9uaXRvckBhc3RyYWV4dC5naXRodWIuaW8iLAogICJsaWNlbnNlIjogIkdQTC0zLjAtb3ItbGF0ZXIiLAogICJuYW1lIjogIkFzdHJhIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXN0cmEtbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQXN0cmFFeHQvYXN0cmEtbW9uaXRvciIsCiAgInV1aWQiOiAibW9uaXRvckBhc3RyYWV4dC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNDIsCiAgInZlcnNpb24tbmFtZSI6ICIyNSIKfQ=="}
   }}
 , {"uuid": "collector-pip@mijorus.it", "name": "Collector - complementary extension", "pname": "collector-complementary-extension", "description": "Allows the Collector window to stay always on top", "link": "https://extensions.gnome.org/extension/6685/collector-complementary-extension/", "shell_version_map": {
     "45": {"version": "1", "sha256": "0ndzxkw8rxjb3nxwyi4znhyq7j2p4yb6vj9gxfdz9hl2kcbsn1k7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0aGUgQ29sbGVjdG9yIHdpbmRvdyB0byBzdGF5IGFsd2F5cyBvbiB0b3AiLAogICJuYW1lIjogIkNvbGxlY3RvciAtIGNvbXBsZW1lbnRhcnkgZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pam9ydXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNvbGxlY3RvciIsCiAgInV1aWQiOiAiY29sbGVjdG9yLXBpcEBtaWpvcnVzLml0IiwKICAidmVyc2lvbiI6IDEKfQ=="}
@@ -6849,9 +6953,10 @@
     "46": {"version": "5", "sha256": "0awrld49kqm9avm1vsb39nmw11wfa69k4x51pij40bfchwd2l34s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIDQ2IGV4dGVuc2lvbiB0aGF0IGRpc2FibGVzIHRoZSB3b3Jrc3BhY2UgYW5pbWF0aW9uIHdoZW4gc3dpdGNoaW5nIGJldHdlZW4gd29ya3NwYWNlcyIsCiAgIm5hbWUiOiAiRGlzYWJsZSBXb3Jrc3BhY2UgQW5pbWF0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldGhuYXJxdWUvZ25vbWUtZGlzYWJsZS13b3Jrc3BhY2UtYW5pbWF0aW9uIiwKICAidXVpZCI6ICJkaXNhYmxlLXdvcmtzcGFjZS1hbmltYXRpb25AZXRobmFycXVlIiwKICAidmVyc2lvbiI6IDUKfQ=="}
   }}
 , {"uuid": "clipqr@drien.com", "name": "ClipQR", "pname": "clipqr", "description": "This simply adds a pop-out QR Code containing whatever text is currently in your clipboard. It's an easy way to share a link to your phone without any additional software.", "link": "https://extensions.gnome.org/extension/6697/clipqr/", "shell_version_map": {
-    "45": {"version": "2", "sha256": "1sflkyja7c2f6v56m1d4xki2hjwpnxq88mp5940d0gvr682phr1h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgc2ltcGx5IGFkZHMgYSBwb3Atb3V0IFFSIENvZGUgY29udGFpbmluZyB3aGF0ZXZlciB0ZXh0IGlzIGN1cnJlbnRseSBpbiB5b3VyIGNsaXBib2FyZC4gSXQncyBhbiBlYXN5IHdheSB0byBzaGFyZSBhIGxpbmsgdG8geW91ciBwaG9uZSB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHNvZnR3YXJlLiIsCiAgIm5hbWUiOiAiQ2xpcFFSIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RyaWVuL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jbGlwcXIiLAogICJ1dWlkIjogImNsaXBxckBkcmllbi5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}
+    "45": {"version": "3", "sha256": "0x1qbnym7j8hfgd0whnzm1chypkpxl70jfr5mx6nhnpyzrmlphm6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgc2ltcGx5IGFkZHMgYSBwb3Atb3V0IFFSIENvZGUgY29udGFpbmluZyB3aGF0ZXZlciB0ZXh0IGlzIGN1cnJlbnRseSBpbiB5b3VyIGNsaXBib2FyZC4gSXQncyBhbiBlYXN5IHdheSB0byBzaGFyZSBhIGxpbmsgdG8geW91ciBwaG9uZSB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHNvZnR3YXJlLiIsCiAgIm5hbWUiOiAiQ2xpcFFSIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kcmllbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2xpcHFyIiwKICAidXVpZCI6ICJjbGlwcXJAZHJpZW4uY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="},
+    "46": {"version": "3", "sha256": "0x1qbnym7j8hfgd0whnzm1chypkpxl70jfr5mx6nhnpyzrmlphm6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgc2ltcGx5IGFkZHMgYSBwb3Atb3V0IFFSIENvZGUgY29udGFpbmluZyB3aGF0ZXZlciB0ZXh0IGlzIGN1cnJlbnRseSBpbiB5b3VyIGNsaXBib2FyZC4gSXQncyBhbiBlYXN5IHdheSB0byBzaGFyZSBhIGxpbmsgdG8geW91ciBwaG9uZSB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHNvZnR3YXJlLiIsCiAgIm5hbWUiOiAiQ2xpcFFSIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kcmllbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2xpcHFyIiwKICAidXVpZCI6ICJjbGlwcXJAZHJpZW4uY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}
   }}
-, {"uuid": "debuglogging@jonathan.jdoda.ca", "name": "Enable Debug Logs", "pname": "enable-debug-logs", "description": "Turns on GNOME Shell debug logging.", "link": "https://extensions.gnome.org/extension/6706/enable-debug-logs/", "shell_version_map": {
+, {"uuid": "debuglogging@jonathan.jdoda.ca", "name": "Enable Debug Logs", "pname": "enable-debug-logs", "description": "Turns on GNOME Shell debug logging. As an extension developer, this allows you to log as much as you like using console.debug calls.", "link": "https://extensions.gnome.org/extension/6706/enable-debug-logs/", "shell_version_map": {
     "45": {"version": "3", "sha256": "1zlb0l0kj8nm4q0izs1jhyry3ld36wq2qnrn64jljf0690v0lnlf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR1cm5zIG9uIEdOT01FIFNoZWxsIGRlYnVnIGxvZ2dpbmcuIiwKICAibmFtZSI6ICJFbmFibGUgRGVidWcgTG9ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamRvZGEvZGVidWdsb2dnaW5nIiwKICAidXVpZCI6ICJkZWJ1Z2xvZ2dpbmdAam9uYXRoYW4uamRvZGEuY2EiLAogICJ2ZXJzaW9uIjogMwp9"},
     "46": {"version": "3", "sha256": "1zlb0l0kj8nm4q0izs1jhyry3ld36wq2qnrn64jljf0690v0lnlf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR1cm5zIG9uIEdOT01FIFNoZWxsIGRlYnVnIGxvZ2dpbmcuIiwKICAibmFtZSI6ICJFbmFibGUgRGVidWcgTG9ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamRvZGEvZGVidWdsb2dnaW5nIiwKICAidXVpZCI6ICJkZWJ1Z2xvZ2dpbmdAam9uYXRoYW4uamRvZGEuY2EiLAogICJ2ZXJzaW9uIjogMwp9"}
   }}
@@ -6897,20 +7002,17 @@
     "44": {"version": "6", "sha256": "0vlkg847fsqpfgkgz47w0cf9hmj6bhgb1pv7f7kgq7ahyrarg949", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IHRleHQgYW55d2hlcmUgZnJvbSBzcGVlY2ggd2l0aCB0aGUgbWlkZGxlIG1vdXNlIGJ1dHRvbiIsCiAgIm5hbWUiOiAiQmx1cnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmx1cnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9RdWFudGl1c0JlbmlnbnVzL2JsdXJ0IiwKICAidXVpZCI6ICJibHVydEBxdWFudGl1c2JlbmlnbnVzLmxvY2FsIiwKICAidmVyc2lvbiI6IDYKfQ=="},
     "45": {"version": "5", "sha256": "10ajsindzad9azjfipnq2hzm2s5xliivkvxc9xckxv4hwhi4haks", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IHRleHQgZnJvbSBzcGVlY2ggYW55d2hlcmUgd2l0aCB0aGUgbWlkZGxlIG1vdXNlIGJ1dHRvbiIsCiAgIm5hbWUiOiAiQmx1cnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmx1cnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUXVhbnRpdXNCZW5pZ251cy9ibHVydCIsCiAgInV1aWQiOiAiYmx1cnRAcXVhbnRpdXNiZW5pZ251cy5sb2NhbCIsCiAgInZlcnNpb24iOiA1Cn0="}
   }}
-, {"uuid": "luminus-shell@dikasp.gitlab", "name": "Luminus Shell", "pname": "luminus-shell", "description": "Brings light style integration into default gnome shell (shell only).", "link": "https://extensions.gnome.org/extension/6744/luminus-shell/", "shell_version_map": {
+, {"uuid": "luminus-shell@dikasp.gitlab", "name": "Luminus Shell", "pname": "luminus-shell", "description": "Light style integration for default gnome-shell.", "link": "https://extensions.gnome.org/extension/6744/luminus-shell/", "shell_version_map": {
     "45": {"version": "2", "sha256": "05qkb9ycrgbcf5iy71x6n3zf56wmx1iib101f5h307ig3a4mnlc1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5ncyBmdWxsIGxpZ2h0IHN0eWxlIGludGVncmF0aW9uIGludG8gZGVmYXVsdCBnbm9tZS1zaGVsbC4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImRpa2FzcCIKICB9LAogICJuYW1lIjogIkx1bWludXMgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZGlrYXNldHlhcHJheW9naS9sdW1pbnVzLXByb2plY3QiLAogICJ1dWlkIjogImx1bWludXMtc2hlbGxAZGlrYXNwLmdpdGxhYiIsCiAgInZlcnNpb24iOiAyLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDUuMiIKfQ=="},
-    "46": {"version": "4", "sha256": "0yip0kbhqg41r9k514imfmqhlzhfx1fxsq65wz3p9i0gy6rwypfg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5ncyBsaWdodCBzdHlsZSBpbnRlZ3JhdGlvbiBpbnRvIGRlZmF1bHQgZ25vbWUgc2hlbGwgKHNoZWxsIG9ubHkpLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZGlrYXNwIgogIH0sCiAgIm5hbWUiOiAiTHVtaW51cyBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9kaWthc2V0eWFwcmF5b2dpL2x1bWludXMtcHJvamVjdCIsCiAgInV1aWQiOiAibHVtaW51cy1zaGVsbEBkaWthc3AuZ2l0bGFiIiwKICAidmVyc2lvbiI6IDQsCiAgInZlcnNpb24tbmFtZSI6ICI0Ni4yIgp9"}
+    "46": {"version": "6", "sha256": "0fga6yradg8dnp9l59c8cdy6hpjpqam0p3p7a2ld4phas7mpncah", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0IHN0eWxlIGludGVncmF0aW9uIGZvciBkZWZhdWx0IEdOT01FIHNoZWxsLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZGlrYXNwIgogIH0sCiAgIm5hbWUiOiAiTHVtaW51cyBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9kaWthc2V0eWFwcmF5b2dpL2x1bWludXMtcHJvamVjdCIsCiAgInV1aWQiOiAibHVtaW51cy1zaGVsbEBkaWthc3AuZ2l0bGFiIiwKICAidmVyc2lvbiI6IDYsCiAgInZlcnNpb24tbmFtZSI6ICI0Ni40Igp9"}
   }}
-, {"uuid": "luminus-shell-y@dikasp.gitlab", "name": "Luminus Shell Y", "pname": "luminus-shell-y", "description": "Brings light style integration into Blur my Shell extension (shell only).", "link": "https://extensions.gnome.org/extension/6747/luminus-shell-y/", "shell_version_map": {
+, {"uuid": "luminus-shell-y@dikasp.gitlab", "name": "Luminus Shell Y", "pname": "luminus-shell-y", "description": "Light style integration for Blur my Shell and other transparent theming extension.", "link": "https://extensions.gnome.org/extension/6747/luminus-shell-y/", "shell_version_map": {
     "45": {"version": "2", "sha256": "16wgh92pn6i94hcxykyy09km75xk6mmnsvbr0c571mhad928a5b2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5ncyBmdWxsIGxpZ2h0IHN0eWxlIGludGVncmF0aW9uIGludG8gQmx1ciBteSBTaGVsbCBleHRlbnNpb24uIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJkaWthc3AiCiAgfSwKICAibmFtZSI6ICJMdW1pbnVzIFNoZWxsIFkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZGlrYXNldHlhcHJheW9naS9sdW1pbnVzLXByb2plY3QiLAogICJ1dWlkIjogImx1bWludXMtc2hlbGwteUBkaWthc3AuZ2l0bGFiIiwKICAidmVyc2lvbiI6IDIsCiAgInZlcnNpb24tbmFtZSI6ICI0NS4yIgp9"},
-    "46": {"version": "3", "sha256": "09l7sflp40q67ms9x57g230mjy9ndqbkbmd4bb2iybk5r0ii2h2d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5ncyBsaWdodCBzdHlsZSBpbnRlZ3JhdGlvbiBpbnRvIEJsdXIgbXkgU2hlbGwgZXh0ZW5zaW9uIChzaGVsbCBvbmx5KS4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImRpa2FzcCIKICB9LAogICJuYW1lIjogIkx1bWludXMgU2hlbGwgWSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9kaWthc2V0eWFwcmF5b2dpL2x1bWludXMtcHJvamVjdCIsCiAgInV1aWQiOiAibHVtaW51cy1zaGVsbC15QGRpa2FzcC5naXRsYWIiLAogICJ2ZXJzaW9uIjogMywKICAidmVyc2lvbi1uYW1lIjogIjQ2LjIiCn0="}
+    "46": {"version": "6", "sha256": "1q4nf12sdyvjqz0px9snw2wj8v6hildyfxdf830n609lndf7qhcz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0IHN0eWxlIGludGVncmF0aW9uIGZvciBCbHVyIG15IFNoZWxsIGFuZCBvdGhlciB0cmFuc3BhcmVudCB0aGVtaW5nIGV4dGVuc2lvbnMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJkaWthc3AiCiAgfSwKICAibmFtZSI6ICJMdW1pbnVzIFNoZWxsIFkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZGlrYXNldHlhcHJheW9naS9sdW1pbnVzLXByb2plY3QiLAogICJ1dWlkIjogImx1bWludXMtc2hlbGwteUBkaWthc3AuZ2l0bGFiIiwKICAidmVyc2lvbiI6IDYsCiAgInZlcnNpb24tbmFtZSI6ICI0Ni40Igp9"}
   }}
-, {"uuid": "luminus-desktop@dikasp.gitlab", "name": "Luminus Desktop", "pname": "luminus-desktop", "description": "Brings global light style integration into gnome shell and GTK apps.", "link": "https://extensions.gnome.org/extension/6750/luminus-desktop/", "shell_version_map": {
+, {"uuid": "luminus-desktop@dikasp.gitlab", "name": "Luminus Desktop", "pname": "luminus-desktop", "description": "Global light style integration for gnome-shell and libadwaita apps.", "link": "https://extensions.gnome.org/extension/6750/luminus-desktop/", "shell_version_map": {
     "45": {"version": "3", "sha256": "1ai9rzr0lx8myy6cqfsm4cck5l1v5yq8fwfil0rawpnzlbr6rmgk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5ncyBnbG9iYWwgZnVsbCBsaWdodCBzdHlsZSBpbnRlZ3JhdGlvbiBpbnRvIGdub21lLXNoZWxsIGFuZCBHVEsgYXBwcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImRpa2FzcCIKICB9LAogICJuYW1lIjogIkx1bWludXMgRGVza3RvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9kaWthc2V0eWFwcmF5b2dpL2x1bWludXMtcHJvamVjdCIsCiAgInV1aWQiOiAibHVtaW51cy1kZXNrdG9wQGRpa2FzcC5naXRsYWIiLAogICJ2ZXJzaW9uIjogMywKICAidmVyc2lvbi1uYW1lIjogIjQ1LjIiCn0="},
-    "46": {"version": "5", "sha256": "1v4kb8qrrjf4ganp698wc2pd03n8gy4mpccy8443icnl93xi4qb5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5ncyBnbG9iYWwgbGlnaHQgc3R5bGUgaW50ZWdyYXRpb24gaW50byBnbm9tZSBzaGVsbCBhbmQgR1RLIGFwcHMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJkaWthc3AiCiAgfSwKICAibmFtZSI6ICJMdW1pbnVzIERlc2t0b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZGlrYXNldHlhcHJheW9naS9sdW1pbnVzLXByb2plY3QiLAogICJ1dWlkIjogImx1bWludXMtZGVza3RvcEBkaWthc3AuZ2l0bGFiIiwKICAidmVyc2lvbiI6IDUsCiAgInZlcnNpb24tbmFtZSI6ICI0Ni4yIgp9"}
-  }}
-, {"uuid": "slacker@hedgie.tech", "name": "Slacker", "pname": "slacker", "description": "Improve Slack web or pwa notifications", "link": "https://extensions.gnome.org/extension/6756/slacker/", "shell_version_map": {
-    "45": {"version": "1", "sha256": "1kyfdrxfiwnqjvjjsvyvpsd64dlcqvl685add8zawb46xmmbigz0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmUgU2xhY2sgd2ViIG9yIHB3YSBub3RpZmljYXRpb25zIiwKICAibmFtZSI6ICJTbGFja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNsYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGVkZ2llaW5zb2Nrcy9nbm9tZS1leHRlbnNpb24tc2xhY2tlciIsCiAgInV1aWQiOiAic2xhY2tlckBoZWRnaWUudGVjaCIsCiAgInZlcnNpb24iOiAxCn0="}
+    "46": {"version": "7", "sha256": "0a0xbrjg2fn1879cagnlnmlz3jiybg39ymrchm1f90n31sfw0rfs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdsb2JhbCBsaWdodCBzdHlsZSBpbnRlZ3JhdGlvbiBmb3IgR05PTUUgc2hlbGwgYW5kIEdUSyBhcHBzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZGlrYXNwIgogIH0sCiAgIm5hbWUiOiAiTHVtaW51cyBEZXNrdG9wIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2Rpa2FzZXR5YXByYXlvZ2kvbHVtaW51cy1wcm9qZWN0IiwKICAidXVpZCI6ICJsdW1pbnVzLWRlc2t0b3BAZGlrYXNwLmdpdGxhYiIsCiAgInZlcnNpb24iOiA3LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuNCIKfQ=="}
   }}
 , {"uuid": "mypubip@snirt", "name": "MyPubIP", "pname": "mypubip", "description": "A simple extension that let the user to view and copy the public IPv4 and IPv6 address, by using ipify.org services.", "link": "https://extensions.gnome.org/extension/6765/mypubip/", "shell_version_map": {
     "45": {"version": "6", "sha256": "153q4y47xkxga06qx9lx06nknbc8d3ylr7dkywwx3062gqn6zjfy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGV4dGVuc2lvbiB0aGF0IGxldCB0aGUgdXNlciB0byB2aWV3IGFuZCBjb3B5IHRoZSBwdWJsaWMgSVB2NCBhbmQgSVB2NiBhZGRyZXNzLCBieSB1c2luZyBpcGlmeS5vcmcgc2VydmljZXMuIiwKICAibmFtZSI6ICJNeVB1YklQIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zbmlydC9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXlwdWJpcCIsCiAgInV1aWQiOiAibXlwdWJpcEBzbmlydCIsCiAgInZlcnNpb24iOiA2Cn0="},
@@ -6924,12 +7026,12 @@
     "45": {"version": "7", "sha256": "1rb2h4lnanv5rvxp3kagn6x5zsqd13mifmvravhhzcmzflph6lrl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgZXZlcnl0aGluZyBvbiB0aGUgcmlnaHQgYm94IGV4ZXB0IHRoaXMgYnV0dG9uIGFuZCBTZXR0aW5ncyB3aW5kb3ciLAogICJleHRlbnNpb24taWQiOiAiSGlkZUl0ZW1zIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiSGlkZUl0ZW1zIiwKICAibmFtZSI6ICJIaWRlIEl0ZW1zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhpZGVJdGVtcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmFibGV2aS9IaWRlSXRlbXMiLAogICJ1dWlkIjogIkhpZGVJdGVtc0BmYWJsZXZpLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3Cn0="},
     "46": {"version": "7", "sha256": "1rb2h4lnanv5rvxp3kagn6x5zsqd13mifmvravhhzcmzflph6lrl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgZXZlcnl0aGluZyBvbiB0aGUgcmlnaHQgYm94IGV4ZXB0IHRoaXMgYnV0dG9uIGFuZCBTZXR0aW5ncyB3aW5kb3ciLAogICJleHRlbnNpb24taWQiOiAiSGlkZUl0ZW1zIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiSGlkZUl0ZW1zIiwKICAibmFtZSI6ICJIaWRlIEl0ZW1zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhpZGVJdGVtcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmFibGV2aS9IaWRlSXRlbXMiLAogICJ1dWlkIjogIkhpZGVJdGVtc0BmYWJsZXZpLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3Cn0="}
   }}
-, {"uuid": "signalshell@github.com.howbea", "name": "Signal Shell", "pname": "signal-shell", "description": "Load -dark, -light and -high-contrast stylesheets from ~/.config/gnome-shell", "link": "https://extensions.gnome.org/extension/6774/signal-shell/", "shell_version_map": {
+, {"uuid": "signalshell@github.com.howbea", "name": "Signal Shell", "pname": "signal-shell", "description": "Load shell themes from user directory.", "link": "https://extensions.gnome.org/extension/6774/signal-shell/", "shell_version_map": {
     "40": {"version": "4", "sha256": "1pf770s5zvkr2fzq4jc45rlixbxqnf6gmxfpnd0dfwlssckhlnag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgLWRhcmssIC1saWdodCBhbmQgLWhpZ2gtY29udHJhc3Qgc3R5bGVzaGVldHMgZnJvbSB+Ly5jb25maWcvZ25vbWUtc2hlbGwiLAogICJuYW1lIjogIlNpZ25hbCBTaGVsbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaWduYWxzaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL1NpZ25hbC1TaGVsbCIsCiAgInV1aWQiOiAic2lnbmFsc2hlbGxAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogNAp9"},
     "41": {"version": "4", "sha256": "1pf770s5zvkr2fzq4jc45rlixbxqnf6gmxfpnd0dfwlssckhlnag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgLWRhcmssIC1saWdodCBhbmQgLWhpZ2gtY29udHJhc3Qgc3R5bGVzaGVldHMgZnJvbSB+Ly5jb25maWcvZ25vbWUtc2hlbGwiLAogICJuYW1lIjogIlNpZ25hbCBTaGVsbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaWduYWxzaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL1NpZ25hbC1TaGVsbCIsCiAgInV1aWQiOiAic2lnbmFsc2hlbGxAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogNAp9"},
     "42": {"version": "4", "sha256": "1pf770s5zvkr2fzq4jc45rlixbxqnf6gmxfpnd0dfwlssckhlnag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgLWRhcmssIC1saWdodCBhbmQgLWhpZ2gtY29udHJhc3Qgc3R5bGVzaGVldHMgZnJvbSB+Ly5jb25maWcvZ25vbWUtc2hlbGwiLAogICJuYW1lIjogIlNpZ25hbCBTaGVsbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaWduYWxzaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL1NpZ25hbC1TaGVsbCIsCiAgInV1aWQiOiAic2lnbmFsc2hlbGxAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogNAp9"},
-    "43": {"version": "4", "sha256": "1pf770s5zvkr2fzq4jc45rlixbxqnf6gmxfpnd0dfwlssckhlnag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgLWRhcmssIC1saWdodCBhbmQgLWhpZ2gtY29udHJhc3Qgc3R5bGVzaGVldHMgZnJvbSB+Ly5jb25maWcvZ25vbWUtc2hlbGwiLAogICJuYW1lIjogIlNpZ25hbCBTaGVsbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaWduYWxzaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL1NpZ25hbC1TaGVsbCIsCiAgInV1aWQiOiAic2lnbmFsc2hlbGxAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogNAp9"},
-    "44": {"version": "4", "sha256": "1pf770s5zvkr2fzq4jc45rlixbxqnf6gmxfpnd0dfwlssckhlnag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgLWRhcmssIC1saWdodCBhbmQgLWhpZ2gtY29udHJhc3Qgc3R5bGVzaGVldHMgZnJvbSB+Ly5jb25maWcvZ25vbWUtc2hlbGwiLAogICJuYW1lIjogIlNpZ25hbCBTaGVsbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaWduYWxzaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL1NpZ25hbC1TaGVsbCIsCiAgInV1aWQiOiAic2lnbmFsc2hlbGxAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogNAp9"}
+    "43": {"version": "7", "sha256": "18vj96mvq9iwpb7n8jv0z0d7dgb0lfbgxfdy055izi1llkcvpbhr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgc2hlbGwgdGhlbWVzIGZyb20gdXNlciBkaXJlY3RvcnkuIiwKICAibmFtZSI6ICJTaWduYWwgU2hlbGwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpZ25hbHNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvU2lnbmFsLVNoZWxsIiwKICAidXVpZCI6ICJzaWduYWxzaGVsbEBnaXRodWIuY29tLmhvd2JlYSIsCiAgInZlcnNpb24iOiA3Cn0="},
+    "44": {"version": "7", "sha256": "18vj96mvq9iwpb7n8jv0z0d7dgb0lfbgxfdy055izi1llkcvpbhr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgc2hlbGwgdGhlbWVzIGZyb20gdXNlciBkaXJlY3RvcnkuIiwKICAibmFtZSI6ICJTaWduYWwgU2hlbGwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpZ25hbHNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvU2lnbmFsLVNoZWxsIiwKICAidXVpZCI6ICJzaWduYWxzaGVsbEBnaXRodWIuY29tLmhvd2JlYSIsCiAgInZlcnNpb24iOiA3Cn0="}
   }}
 , {"uuid": "crypto-tracker@gongorgojo.com", "name": "Simple Crypto Tracker", "pname": "crypto-trackergongorgojocom", "description": "This is a simple Gnome-Shell extension designed to track cryptocurrency prices.\n\nSupported pairs include:\n- BTC/USD\n- BTC/EUR\n- ETH/USD\n- ETH/EUR  \n\nThe extension refreshes prices every 5 minutes using the CoinGecko API to retrieve data.", "link": "https://extensions.gnome.org/extension/6777/crypto-trackergongorgojocom/", "shell_version_map": {
     "42": {"version": "3", "sha256": "1hbgfnflra98l31rm0vb6x6h69x6621nyyfdr653kp8f4gi4711z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgYSBzaW1wbGUgR25vbWUtU2hlbGwgZXh0ZW5zaW9uIGRlc2lnbmVkIHRvIHRyYWNrIGNyeXB0b2N1cnJlbmN5IHByaWNlcy5cblxuU3VwcG9ydGVkIHBhaXJzIGluY2x1ZGU6XG4tIEJUQy9VU0Rcbi0gQlRDL0VVUlxuLSBFVEgvVVNEXG4tIEVUSC9FVVIgIFxuXG5UaGUgZXh0ZW5zaW9uIHJlZnJlc2hlcyBwcmljZXMgZXZlcnkgNSBtaW51dGVzIHVzaW5nIHRoZSBDb2luR2Vja28gQVBJIHRvIHJldHJpZXZlIGRhdGEuIiwKICAibmFtZSI6ICJTaW1wbGUgQ3J5cHRvIFRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Hb256YWxvR29yZ29qby9Hbm9tZS1TaGVsbC1DcnlwdG8tVHJhY2tlciIsCiAgInV1aWQiOiAiY3J5cHRvLXRyYWNrZXJAZ29uZ29yZ29qby5jb20iLAogICJ2ZXJzaW9uIjogMwp9"},
@@ -6943,16 +7045,16 @@
     "46": {"version": "10", "sha256": "04bfpwhvkz55yilaw96dbkppn4i0h08x7v3wa4wplmhdlpslrah1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGJhdHRlcnkgbGV2ZWwgb2YgQWlyUG9kcyBhbmQgQmVhdHMgQmx1ZXRvb3RoIGhlYWRzZXRcblxuTm90ZTogVGhpcyBleHRlbnNpb24gaXMgbm90IGNvbXBhdGlibGUgd2l0aCBCbHVldG9vdGggY29uZmlndXJhdGlvbnMgaW4gQlIvRURSLW9ubHkgbW9kZS4gRHVhbCBtb2RlIGlzIHJlcXVpcmVkLiBQbGVhc2UgcmVmZXIgdG8gdGhlIFJlYWRtZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuXG5odHRwczovL21hbmlhY3guZ2l0aHViLmlvL0FpcnBvZC1CYXR0ZXJ5LU1vbml0b3IvIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiQWlycG9kLUJhdHRlcnktTW9uaXRvckBtYW5pYWN4LmdpdGh1Yi5jb20iLAogICJuYW1lIjogIkFpcnBvZCBCYXR0ZXJ5IE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuQWlycG9kLUJhdHRlcnktTW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFuaWFjeC9BaXJwb2QtQmF0dGVyeS1Nb25pdG9yIiwKICAidXVpZCI6ICJBaXJwb2QtQmF0dGVyeS1Nb25pdG9yQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"}
   }}
 , {"uuid": "night-light-slider-updated@vilsbeg.codeberg.org", "name": "Night Light Slider Updated", "pname": "night-light-slider-updated", "description": "Kiyui's Night Light Slider updated for GNOME 45. Provides a slider in the quick settings menu to control the night light temperature. Some nice options can be set in the extension preferences menu. Original implementation: https://codeberg.org/kiyui/gnome-shell-night-light-slider-extension/", "link": "https://extensions.gnome.org/extension/6781/night-light-slider-updated/", "shell_version_map": {
-    "45": {"version": "9", "sha256": "1c88dzp9k5krd5b4569s9c4aas86djzqwahdif5kaymi7x8cp9rs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktpeXVpJ3MgTmlnaHQgTGlnaHQgU2xpZGVyIHVwZGF0ZWQgZm9yIEdOT01FIDQ1LiBBIEdOT01FIGV4dGVuc2lvbiB0byBtYW5hZ2UgdGhlIGJ1aWx0LWluIG5pZ2h0IGxpZ2h0IHRlbXBlcmF0dXJlLiBPcmlnaW5hbCBpbXBsZW1lbnRhdGlvbjogaHR0cHM6Ly9jb2RlYmVyZy5vcmcvdmlsc2JlZy9uaWdodC1saWdodC1zbGlkZXItdXBkYXRlZC8iLAogICJuYW1lIjogIk5pZ2h0IExpZ2h0IFNsaWRlciBVcGRhdGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5pZ2h0bGlnaHRzbGlkZXJ1cGRhdGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vY29kZWJlcmcub3JnL3ZpbHNiZWcvbmlnaHQtbGlnaHQtc2xpZGVyLXVwZGF0ZWQiLAogICJ1dWlkIjogIm5pZ2h0LWxpZ2h0LXNsaWRlci11cGRhdGVkQHZpbHNiZWcuY29kZWJlcmcub3JnIiwKICAidmVyc2lvbiI6IDkKfQ=="},
-    "46": {"version": "9", "sha256": "1c88dzp9k5krd5b4569s9c4aas86djzqwahdif5kaymi7x8cp9rs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktpeXVpJ3MgTmlnaHQgTGlnaHQgU2xpZGVyIHVwZGF0ZWQgZm9yIEdOT01FIDQ1LiBBIEdOT01FIGV4dGVuc2lvbiB0byBtYW5hZ2UgdGhlIGJ1aWx0LWluIG5pZ2h0IGxpZ2h0IHRlbXBlcmF0dXJlLiBPcmlnaW5hbCBpbXBsZW1lbnRhdGlvbjogaHR0cHM6Ly9jb2RlYmVyZy5vcmcvdmlsc2JlZy9uaWdodC1saWdodC1zbGlkZXItdXBkYXRlZC8iLAogICJuYW1lIjogIk5pZ2h0IExpZ2h0IFNsaWRlciBVcGRhdGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5pZ2h0bGlnaHRzbGlkZXJ1cGRhdGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vY29kZWJlcmcub3JnL3ZpbHNiZWcvbmlnaHQtbGlnaHQtc2xpZGVyLXVwZGF0ZWQiLAogICJ1dWlkIjogIm5pZ2h0LWxpZ2h0LXNsaWRlci11cGRhdGVkQHZpbHNiZWcuY29kZWJlcmcub3JnIiwKICAidmVyc2lvbiI6IDkKfQ=="}
+    "45": {"version": "10", "sha256": "02pdykqq1zvf674qdkzrpmxvqdi3zxppxky4n6pdndmywqdxs63x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktpeXVpJ3MgTmlnaHQgTGlnaHQgU2xpZGVyIHVwZGF0ZWQgZm9yIEdOT01FIDQ1LiBQcm92aWRlcyBhIHNsaWRlciBpbiB0aGUgcXVpY2sgc2V0dGluZ3MgbWVudSB0byBjb250cm9sIHRoZSBuaWdodCBsaWdodCB0ZW1wZXJhdHVyZS4gU29tZSBuaWNlIG9wdGlvbnMgY2FuIGJlIHNldCBpbiB0aGUgZXh0ZW5zaW9uIHByZWZlcmVuY2VzIG1lbnUuIE9yaWdpbmFsIGltcGxlbWVudGF0aW9uOiBodHRwczovL2NvZGViZXJnLm9yZy9raXl1aS9nbm9tZS1zaGVsbC1uaWdodC1saWdodC1zbGlkZXItZXh0ZW5zaW9uLyIsCiAgIm5hbWUiOiAiTmlnaHQgTGlnaHQgU2xpZGVyIFVwZGF0ZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmlnaHRsaWdodHNsaWRlcnVwZGF0ZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9jb2RlYmVyZy5vcmcvdmlsc2JlZy9uaWdodC1saWdodC1zbGlkZXItdXBkYXRlZCIsCiAgInV1aWQiOiAibmlnaHQtbGlnaHQtc2xpZGVyLXVwZGF0ZWRAdmlsc2JlZy5jb2RlYmVyZy5vcmciLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
+    "46": {"version": "10", "sha256": "02pdykqq1zvf674qdkzrpmxvqdi3zxppxky4n6pdndmywqdxs63x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktpeXVpJ3MgTmlnaHQgTGlnaHQgU2xpZGVyIHVwZGF0ZWQgZm9yIEdOT01FIDQ1LiBQcm92aWRlcyBhIHNsaWRlciBpbiB0aGUgcXVpY2sgc2V0dGluZ3MgbWVudSB0byBjb250cm9sIHRoZSBuaWdodCBsaWdodCB0ZW1wZXJhdHVyZS4gU29tZSBuaWNlIG9wdGlvbnMgY2FuIGJlIHNldCBpbiB0aGUgZXh0ZW5zaW9uIHByZWZlcmVuY2VzIG1lbnUuIE9yaWdpbmFsIGltcGxlbWVudGF0aW9uOiBodHRwczovL2NvZGViZXJnLm9yZy9raXl1aS9nbm9tZS1zaGVsbC1uaWdodC1saWdodC1zbGlkZXItZXh0ZW5zaW9uLyIsCiAgIm5hbWUiOiAiTmlnaHQgTGlnaHQgU2xpZGVyIFVwZGF0ZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmlnaHRsaWdodHNsaWRlcnVwZGF0ZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9jb2RlYmVyZy5vcmcvdmlsc2JlZy9uaWdodC1saWdodC1zbGlkZXItdXBkYXRlZCIsCiAgInV1aWQiOiAibmlnaHQtbGlnaHQtc2xpZGVyLXVwZGF0ZWRAdmlsc2JlZy5jb2RlYmVyZy5vcmciLAogICJ2ZXJzaW9uIjogMTAKfQ=="}
   }}
 , {"uuid": "wiggle@mechtifs", "name": "Wiggle", "pname": "wiggle", "description": "Wiggle is a GNOME 45+ port/fix for the scaling effect from Jiggle with better performance. Wiggle magnifies your cursor when the mouse is moved rapidly.", "link": "https://extensions.gnome.org/extension/6784/wiggle/", "shell_version_map": {
     "45": {"version": "2", "sha256": "14vi9cd9qm6f6z1krhh6s4l8z0121aayf1jmkgaj6i52i7559cmw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldpZ2dsZSBpcyBhIEdOT01FIFNoZWxsIGV4dGVuc2lvbiB0aGF0IG1hZ25pZmllcyB0aGUgY3Vyc29yIHdoZW4gdGhlIG1vdXNlIGlzIG1vdmVkIHJhcGlkbHkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpZ2dsZSIsCiAgIm5hbWUiOiAiV2lnZ2xlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpZ2dsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZWNodGlmcy93aWdnbGUiLAogICJ1dWlkIjogIndpZ2dsZUBtZWNodGlmcyIsCiAgInZlcnNpb24iOiAyCn0="},
     "46": {"version": "3", "sha256": "14gwkx6z9v7ca13qdy1jad64bahqhs7dkrl1c7v4r49qvhkqg5ka", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldpZ2dsZSBpcyBhIEdOT01FIFNoZWxsIGV4dGVuc2lvbiB0aGF0IG1hZ25pZmllcyB0aGUgY3Vyc29yIHdoZW4gdGhlIG1vdXNlIGlzIG1vdmVkIHJhcGlkbHkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpZ2dsZSIsCiAgIm5hbWUiOiAiV2lnZ2xlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpZ2dsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZWNodGlmcy93aWdnbGUiLAogICJ1dWlkIjogIndpZ2dsZUBtZWNodGlmcyIsCiAgInZlcnNpb24iOiAzCn0="}
   }}
-, {"uuid": "favorite-apps@venovar.tr", "name": "Favorite Apps Menu", "pname": "show-favorite-apps", "description": "This extension adds a favorite applications menu to top panel.\n\n\nGnome Shell 46:\nDrag drop to reorder favorites.\nMiddle click menu icon to open Gnome apps menu.\nRight click menu icon to open Gnome activities window.", "link": "https://extensions.gnome.org/extension/6787/show-favorite-apps/", "shell_version_map": {
+, {"uuid": "favorite-apps@venovar.tr", "name": "Favorite Apps Menu", "pname": "show-favorite-apps", "description": "This extension adds a favorite applications menu to top panel", "link": "https://extensions.gnome.org/extension/6787/show-favorite-apps/", "shell_version_map": {
     "45": {"version": "7", "sha256": "1jcqmijfzfqhvrkv5agf3hq05kri1nfh1zri0278nmwmk1b9xfhh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZHMgYSBmYXZvcml0ZSBhcHBsaWNhdGlvbnMgbWVudSBwYW5lbCB0byB0b3AgYmFyIiwKICAibmFtZSI6ICJGYXZvcml0ZSBBcHBzIE1lbnUgb24gVG9wIEJhciBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZW5mYXZhcHAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnIiwKICAidXVpZCI6ICJmYXZvcml0ZS1hcHBzQHZlbm92YXIudHIiLAogICJ2ZXJzaW9uIjogNwp9"},
-    "46": {"version": "8", "sha256": "1jfnrjd3jihaj0jnggm23a5rny6i8p97w9cccwm7x75xy1mvc231", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZHMgYSBmYXZvcml0ZSBhcHBsaWNhdGlvbnMgbWVudSB0byB0b3AgcGFuZWwiLAogICJuYW1lIjogIkZhdm9yaXRlIEFwcHMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZW5mYXZhcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZyIsCiAgInV1aWQiOiAiZmF2b3JpdGUtYXBwc0B2ZW5vdmFyLnRyIiwKICAidmVyc2lvbiI6IDgKfQ=="}
+    "46": {"version": "9", "sha256": "1m71hxk2fisrpv2bvmkzrpmbsyaynvhksqi6k6gngvycpvdmz85k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZHMgYSBmYXZvcml0ZSBhcHBsaWNhdGlvbnMgbWVudSB0byB0b3AgcGFuZWwiLAogICJuYW1lIjogIkZhdm9yaXRlIEFwcHMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZW5mYXZhcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZyIsCiAgInV1aWQiOiAiZmF2b3JpdGUtYXBwc0B2ZW5vdmFyLnRyIiwKICAidmVyc2lvbiI6IDkKfQ=="}
   }}
 , {"uuid": "totp@dkosmari.github.com", "name": "TOTP", "pname": "totp", "description": "Generate Time-based One-Time Passwords (TOTP aka OTP) for websites that use Two-Factor Authentication (2FA) like Google, Facebook, Discord, Amazon, Steam, etc.", "link": "https://extensions.gnome.org/extension/6793/totp/", "shell_version_map": {
     "42": {"version": "36", "sha256": "16isyi8r64nbzddy9pfhzkmwklvk0x9rxhiyry7arc2gvd7c09zh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdlbmVyYXRlIFRpbWUtYmFzZWQgT25lLVRpbWUgUGFzc3dvcmRzIChUT1RQIGFrYSBPVFApIGZvciB3ZWJzaXRlcyB0aGF0IHVzZSBUd28tRmFjdG9yIEF1dGhlbnRpY2F0aW9uICgyRkEpIGxpa2UgR29vZ2xlLCBGYWNlYm9vaywgRGlzY29yZCwgQW1hem9uLCBTdGVhbSwgZXRjLiIsCiAgImdldHRleHQtZG9tYWluIjogInRvdHBAZGtvc21hcmkuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiVE9UUCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50b3RwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGtvc21hcmkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRvdHAiLAogICJ1dWlkIjogInRvdHBAZGtvc21hcmkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzNgp9"},
@@ -6962,18 +7064,18 @@
     "46": {"version": "37", "sha256": "01a51cffdqpzzpfdag7av5z11hsdjja21qkbsl0fsjcslxwad4fs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdlbmVyYXRlIFRpbWUtYmFzZWQgT25lLVRpbWUgUGFzc3dvcmRzIChUT1RQIGFrYSBPVFApIGZvciB3ZWJzaXRlcyB0aGF0IHVzZSBUd28tRmFjdG9yIEF1dGhlbnRpY2F0aW9uICgyRkEpIGxpa2UgR29vZ2xlLCBGYWNlYm9vaywgRGlzY29yZCwgQW1hem9uLCBTdGVhbSwgZXRjLiIsCiAgImdldHRleHQtZG9tYWluIjogInRvdHBAZGtvc21hcmkuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiVE9UUCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50b3RwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ka29zbWFyaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdG90cCIsCiAgInV1aWQiOiAidG90cEBka29zbWFyaS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM3Cn0="}
   }}
 , {"uuid": "better-end-session-dialog@popov895.ukr.net", "name": "Better End Session Dialog", "pname": "better-end-session-dialog", "description": "Show logout/reboot/shutdown together in the end session dialog", "link": "https://extensions.gnome.org/extension/6796/better-end-session-dialog/", "shell_version_map": {
-    "42": {"version": "10", "sha256": "040aji5xnq66mlf3hwabngwzhgmbw1vd4z6agp6r4d55y9ydblcg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbG9nb3V0L3JlYm9vdC9zaHV0ZG93biB0b2dldGhlciBpbiB0aGUgZW5kIHNlc3Npb24gZGlhbG9nIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJwb3Bvdjg5NWEiCiAgfSwKICAibmFtZSI6ICJCZXR0ZXIgRW5kIFNlc3Npb24gRGlhbG9nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcG9wb3Y4OTUvYmV0dGVyLWVuZC1zZXNzaW9uLWRpYWxvZyIsCiAgInV1aWQiOiAiYmV0dGVyLWVuZC1zZXNzaW9uLWRpYWxvZ0Bwb3Bvdjg5NS51a3IubmV0IiwKICAidmVyc2lvbiI6IDEwCn0="},
-    "43": {"version": "10", "sha256": "040aji5xnq66mlf3hwabngwzhgmbw1vd4z6agp6r4d55y9ydblcg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbG9nb3V0L3JlYm9vdC9zaHV0ZG93biB0b2dldGhlciBpbiB0aGUgZW5kIHNlc3Npb24gZGlhbG9nIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJwb3Bvdjg5NWEiCiAgfSwKICAibmFtZSI6ICJCZXR0ZXIgRW5kIFNlc3Npb24gRGlhbG9nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcG9wb3Y4OTUvYmV0dGVyLWVuZC1zZXNzaW9uLWRpYWxvZyIsCiAgInV1aWQiOiAiYmV0dGVyLWVuZC1zZXNzaW9uLWRpYWxvZ0Bwb3Bvdjg5NS51a3IubmV0IiwKICAidmVyc2lvbiI6IDEwCn0="},
-    "44": {"version": "10", "sha256": "040aji5xnq66mlf3hwabngwzhgmbw1vd4z6agp6r4d55y9ydblcg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbG9nb3V0L3JlYm9vdC9zaHV0ZG93biB0b2dldGhlciBpbiB0aGUgZW5kIHNlc3Npb24gZGlhbG9nIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJwb3Bvdjg5NWEiCiAgfSwKICAibmFtZSI6ICJCZXR0ZXIgRW5kIFNlc3Npb24gRGlhbG9nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcG9wb3Y4OTUvYmV0dGVyLWVuZC1zZXNzaW9uLWRpYWxvZyIsCiAgInV1aWQiOiAiYmV0dGVyLWVuZC1zZXNzaW9uLWRpYWxvZ0Bwb3Bvdjg5NS51a3IubmV0IiwKICAidmVyc2lvbiI6IDEwCn0="},
-    "45": {"version": "11", "sha256": "1p6yjm5cq8q85m0bsj64xiqwpnn9wp0h5yhanbxrsp0pfsgl691q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbG9nb3V0L3JlYm9vdC9zaHV0ZG93biB0b2dldGhlciBpbiB0aGUgZW5kIHNlc3Npb24gZGlhbG9nIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJwb3Bvdjg5NWEiCiAgfSwKICAibmFtZSI6ICJCZXR0ZXIgRW5kIFNlc3Npb24gRGlhbG9nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wb3Bvdjg5NS9iZXR0ZXItZW5kLXNlc3Npb24tZGlhbG9nIiwKICAidXVpZCI6ICJiZXR0ZXItZW5kLXNlc3Npb24tZGlhbG9nQHBvcG92ODk1LnVrci5uZXQiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
-    "46": {"version": "11", "sha256": "1p6yjm5cq8q85m0bsj64xiqwpnn9wp0h5yhanbxrsp0pfsgl691q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbG9nb3V0L3JlYm9vdC9zaHV0ZG93biB0b2dldGhlciBpbiB0aGUgZW5kIHNlc3Npb24gZGlhbG9nIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJwb3Bvdjg5NWEiCiAgfSwKICAibmFtZSI6ICJCZXR0ZXIgRW5kIFNlc3Npb24gRGlhbG9nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wb3Bvdjg5NS9iZXR0ZXItZW5kLXNlc3Npb24tZGlhbG9nIiwKICAidXVpZCI6ICJiZXR0ZXItZW5kLXNlc3Npb24tZGlhbG9nQHBvcG92ODk1LnVrci5uZXQiLAogICJ2ZXJzaW9uIjogMTEKfQ=="}
+    "42": {"version": "12", "sha256": "08ah8w609asl8k8r00f2b3i9qbiahnggya0yh8r3iipkn6b8x8zh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbG9nb3V0L3JlYm9vdC9zaHV0ZG93biB0b2dldGhlciBpbiB0aGUgZW5kIHNlc3Npb24gZGlhbG9nIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJwb3Bvdjg5NWEiCiAgfSwKICAibmFtZSI6ICJCZXR0ZXIgRW5kIFNlc3Npb24gRGlhbG9nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcG9wb3Y4OTUvYmV0dGVyLWVuZC1zZXNzaW9uLWRpYWxvZyIsCiAgInV1aWQiOiAiYmV0dGVyLWVuZC1zZXNzaW9uLWRpYWxvZ0Bwb3Bvdjg5NS51a3IubmV0IiwKICAidmVyc2lvbiI6IDEyCn0="},
+    "43": {"version": "12", "sha256": "08ah8w609asl8k8r00f2b3i9qbiahnggya0yh8r3iipkn6b8x8zh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbG9nb3V0L3JlYm9vdC9zaHV0ZG93biB0b2dldGhlciBpbiB0aGUgZW5kIHNlc3Npb24gZGlhbG9nIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJwb3Bvdjg5NWEiCiAgfSwKICAibmFtZSI6ICJCZXR0ZXIgRW5kIFNlc3Npb24gRGlhbG9nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcG9wb3Y4OTUvYmV0dGVyLWVuZC1zZXNzaW9uLWRpYWxvZyIsCiAgInV1aWQiOiAiYmV0dGVyLWVuZC1zZXNzaW9uLWRpYWxvZ0Bwb3Bvdjg5NS51a3IubmV0IiwKICAidmVyc2lvbiI6IDEyCn0="},
+    "44": {"version": "12", "sha256": "08ah8w609asl8k8r00f2b3i9qbiahnggya0yh8r3iipkn6b8x8zh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbG9nb3V0L3JlYm9vdC9zaHV0ZG93biB0b2dldGhlciBpbiB0aGUgZW5kIHNlc3Npb24gZGlhbG9nIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJwb3Bvdjg5NWEiCiAgfSwKICAibmFtZSI6ICJCZXR0ZXIgRW5kIFNlc3Npb24gRGlhbG9nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcG9wb3Y4OTUvYmV0dGVyLWVuZC1zZXNzaW9uLWRpYWxvZyIsCiAgInV1aWQiOiAiYmV0dGVyLWVuZC1zZXNzaW9uLWRpYWxvZ0Bwb3Bvdjg5NS51a3IubmV0IiwKICAidmVyc2lvbiI6IDEyCn0="},
+    "45": {"version": "13", "sha256": "0xyyychdfxfg3d26cxva72s7ffrng1phdjvlnh1khddnhlzszf5k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbG9nb3V0L3JlYm9vdC9zaHV0ZG93biB0b2dldGhlciBpbiB0aGUgZW5kIHNlc3Npb24gZGlhbG9nIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJwb3Bvdjg5NWEiCiAgfSwKICAibmFtZSI6ICJCZXR0ZXIgRW5kIFNlc3Npb24gRGlhbG9nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wb3Bvdjg5NS9iZXR0ZXItZW5kLXNlc3Npb24tZGlhbG9nIiwKICAidXVpZCI6ICJiZXR0ZXItZW5kLXNlc3Npb24tZGlhbG9nQHBvcG92ODk1LnVrci5uZXQiLAogICJ2ZXJzaW9uIjogMTMKfQ=="},
+    "46": {"version": "13", "sha256": "0xyyychdfxfg3d26cxva72s7ffrng1phdjvlnh1khddnhlzszf5k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbG9nb3V0L3JlYm9vdC9zaHV0ZG93biB0b2dldGhlciBpbiB0aGUgZW5kIHNlc3Npb24gZGlhbG9nIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJwb3Bvdjg5NWEiCiAgfSwKICAibmFtZSI6ICJCZXR0ZXIgRW5kIFNlc3Npb24gRGlhbG9nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wb3Bvdjg5NS9iZXR0ZXItZW5kLXNlc3Npb24tZGlhbG9nIiwKICAidXVpZCI6ICJiZXR0ZXItZW5kLXNlc3Npb24tZGlhbG9nQHBvcG92ODk1LnVrci5uZXQiLAogICJ2ZXJzaW9uIjogMTMKfQ=="}
   }}
 , {"uuid": "layout-hotkeys@max.post.space.gmail.com", "name": "Layout Hotkeys", "pname": "layout-hotkeys", "description": "Add hotkeys to switch keyboard layout directly via Shift + Alt + [1-9].", "link": "https://extensions.gnome.org/extension/6804/layout-hotkeys/", "shell_version_map": {
     "45": {"version": "1", "sha256": "1w85nx17ggalvjd1lrj2dkhc1xkmvc1jv45vb2cvxvxpb7c4ji3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBob3RrZXlzIHRvIHN3aXRjaCBsYXlvdXRzIGRpcmVjdGx5IHZpYSBTaGlmdCArIEFsdCArIFsxLTldLiIsCiAgIm5hbWUiOiAiTGF5b3V0IEhvdGtleXMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubGF5b3V0LWhvdGtleXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTXJEdm9yYWsvbGF5b3V0LWhvdGtleXMiLAogICJ1dWlkIjogImxheW91dC1ob3RrZXlzQG1heC5wb3N0LnNwYWNlLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="},
     "46": {"version": "2", "sha256": "0g40vq4r0p6qkx34nkhixg154rwcjkbdfqcsgcmhb730kdyypbmf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBob3RrZXlzIHRvIHN3aXRjaCBrZXlib2FyZCBsYXlvdXQgZGlyZWN0bHkgdmlhIFNoaWZ0ICsgQWx0ICsgWzEtOV0uIiwKICAibmFtZSI6ICJMYXlvdXQgSG90a2V5cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sYXlvdXQtaG90a2V5cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NckR2b3Jhay9sYXlvdXQtaG90a2V5cyIsCiAgInV1aWQiOiAibGF5b3V0LWhvdGtleXNAbWF4LnBvc3Quc3BhY2UuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIsCiAgInZlcnNpb24tbmFtZSI6ICIyLjAiCn0="}
   }}
 , {"uuid": "system-monitor@gnome-shell-extensions.gcampax.github.com", "name": "System Monitor", "pname": "system-monitor", "description": "Monitor system from the top bar", "link": "https://extensions.gnome.org/extension/6807/system-monitor/", "shell_version_map": {
-    "46": {"version": "2", "sha256": "1dmyisjjmipa5ickr422gk1hbn21b8cilcbabmv9q4pc9d85hc1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vbml0b3Igc3lzdGVtIGZyb20gdGhlIHRvcCBiYXIiLAogICJleHRlbnNpb24taWQiOiAic3lzdGVtLW1vbml0b3IiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tc3lzdGVtLW1vbml0b3IiLAogICJuYW1lIjogIlN5c3RlbSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogInN5c3RlbS1tb25pdG9yQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}
+    "46": {"version": "3", "sha256": "0d4zncm3namqaa1clq7khi0p8s59laxk63nj9394ljcaxpwgw3sc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vbml0b3Igc3lzdGVtIGZyb20gdGhlIHRvcCBiYXIiLAogICJleHRlbnNpb24taWQiOiAic3lzdGVtLW1vbml0b3IiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tc3lzdGVtLW1vbml0b3IiLAogICJuYW1lIjogIlN5c3RlbSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogInN5c3RlbS1tb25pdG9yQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}
   }}
 , {"uuid": "window-thumbnails@G-dH.github.com", "name": "WTMB (Window Thumbnails)", "pname": "wtmb-window-thumbnails", "description": "Allows the creation of window clones for use as Picture-in-Picture (PIP) live thumbnails", "link": "https://extensions.gnome.org/extension/6816/wtmb-window-thumbnails/", "shell_version_map": {
     "42": {"version": "9", "sha256": "07byw17537lmy073c3vq4pzafbflnd5mm45i5sy82mh61j9i1zsl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0aGUgY3JlYXRpb24gb2Ygd2luZG93IGNsb25lcyBmb3IgdXNlIGFzIFBpY3R1cmUtaW4tUGljdHVyZSAoUElQKSBsaXZlIHRodW1ibmFpbHMiLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAid2luZG93LXRodW1ibmFpbHMiLAogICJuYW1lIjogIldUTUIgKFdpbmRvdyBUaHVtYm5haWxzKSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53aW5kb3ctdGh1bWJuYWlscyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvd2luZG93LXRodW1ibmFpbHMiLAogICJ1dWlkIjogIndpbmRvdy10aHVtYm5haWxzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMyIKfQ=="},
@@ -6993,12 +7095,12 @@
     "43": {"version": "4", "sha256": "0h8lb37ic08727vw0lwk2hwxjnyk93y3l1w1q5i040da180hmpgr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgZXh0ZW5zaW9uIHRpbWVyIHRvIHJlbWluZCB1c2VycyB0byB0YWtlIGJyZWFrcyBhbmQgcmVkdWNlIGV5ZSBzdHJhaW4gYnkgZm9sbG93aW5nIHRoZSAyMCcyMCcyMCBydWxlLiIsCiAgImdldHRleHQtZG9tYWluIjogIjIwMjAyMHJ1bGV0aW1lciIsCiAgIm5hbWUiOiAiMjAgMjAgMjAgUnVsZSBUaW1lciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmlsaXBwb2JlcnRpMjAyMC8yMC0yMC0yMC1ydWxlLXRpbWVyIiwKICAidXVpZCI6ICIyMDIwMjBydWxldGltZXJAMjAyMDIwcnVsZXRpbWVyLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}
   }}
 , {"uuid": "geminiaiubuntu@arda.com", "name": "Gemini AI ChatBot", "pname": "gemini-ai", "description": "This Add-on is using gemini ai 1.0 pro model for chatting. \n This extensions using thisipcan.cyou for location detection and googleapis.com for gemini model \n also if you are planing to use Vertex api you should install `gcloud` as dependency (optional) \n NOTE: This extension is not affiliated, funded, or in any way associated with Google and Gemini.", "link": "https://extensions.gnome.org/extension/6834/gemini-ai/", "shell_version_map": {
-    "40": {"version": "17", "sha256": "1qnjvlp1z96xg1whzjlmnkvhxzmn49zpv8zk4w2kghcr8xav2dzz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgQWRkLW9uIGlzIHVzaW5nIGdlbWluaSBhaSAxLjAgcHJvIG1vZGVsIGZvciBjaGF0dGluZy4gXG4gVGhpcyBleHRlbnNpb25zIHVzaW5nIHRoaXNpcGNhbi5jeW91IGZvciBsb2NhdGlvbiBkZXRlY3Rpb24gYW5kIGdvb2dsZWFwaXMuY29tIGZvciBnZW1pbmkgbW9kZWwgXG4gYWxzbyBpZiB5b3UgYXJlIHBsYW5pbmcgdG8gdXNlIFZlcnRleCBhcGkgeW91IHNob3VsZCBpbnN0YWxsIGBnY2xvdWRgIGFzIGRlcGVuZGVuY3kgKG9wdGlvbmFsKSBcbiBOT1RFOiBUaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBHb29nbGUgYW5kIEdlbWluaS4iLAogICJuYW1lIjogIkdlbWluaSBBSSBDaGF0Qm90IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdlbWluaWFpdWJ1bnR1IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3d3YXJkYXd3L2dub21lLWdlbWluaS1haSIsCiAgInV1aWQiOiAiZ2VtaW5pYWl1YnVudHVAYXJkYS5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
-    "42": {"version": "17", "sha256": "1qnjvlp1z96xg1whzjlmnkvhxzmn49zpv8zk4w2kghcr8xav2dzz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgQWRkLW9uIGlzIHVzaW5nIGdlbWluaSBhaSAxLjAgcHJvIG1vZGVsIGZvciBjaGF0dGluZy4gXG4gVGhpcyBleHRlbnNpb25zIHVzaW5nIHRoaXNpcGNhbi5jeW91IGZvciBsb2NhdGlvbiBkZXRlY3Rpb24gYW5kIGdvb2dsZWFwaXMuY29tIGZvciBnZW1pbmkgbW9kZWwgXG4gYWxzbyBpZiB5b3UgYXJlIHBsYW5pbmcgdG8gdXNlIFZlcnRleCBhcGkgeW91IHNob3VsZCBpbnN0YWxsIGBnY2xvdWRgIGFzIGRlcGVuZGVuY3kgKG9wdGlvbmFsKSBcbiBOT1RFOiBUaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBHb29nbGUgYW5kIEdlbWluaS4iLAogICJuYW1lIjogIkdlbWluaSBBSSBDaGF0Qm90IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdlbWluaWFpdWJ1bnR1IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3d3YXJkYXd3L2dub21lLWdlbWluaS1haSIsCiAgInV1aWQiOiAiZ2VtaW5pYWl1YnVudHVAYXJkYS5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
-    "43": {"version": "17", "sha256": "1qnjvlp1z96xg1whzjlmnkvhxzmn49zpv8zk4w2kghcr8xav2dzz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgQWRkLW9uIGlzIHVzaW5nIGdlbWluaSBhaSAxLjAgcHJvIG1vZGVsIGZvciBjaGF0dGluZy4gXG4gVGhpcyBleHRlbnNpb25zIHVzaW5nIHRoaXNpcGNhbi5jeW91IGZvciBsb2NhdGlvbiBkZXRlY3Rpb24gYW5kIGdvb2dsZWFwaXMuY29tIGZvciBnZW1pbmkgbW9kZWwgXG4gYWxzbyBpZiB5b3UgYXJlIHBsYW5pbmcgdG8gdXNlIFZlcnRleCBhcGkgeW91IHNob3VsZCBpbnN0YWxsIGBnY2xvdWRgIGFzIGRlcGVuZGVuY3kgKG9wdGlvbmFsKSBcbiBOT1RFOiBUaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBHb29nbGUgYW5kIEdlbWluaS4iLAogICJuYW1lIjogIkdlbWluaSBBSSBDaGF0Qm90IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdlbWluaWFpdWJ1bnR1IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3d3YXJkYXd3L2dub21lLWdlbWluaS1haSIsCiAgInV1aWQiOiAiZ2VtaW5pYWl1YnVudHVAYXJkYS5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
-    "44": {"version": "17", "sha256": "1qnjvlp1z96xg1whzjlmnkvhxzmn49zpv8zk4w2kghcr8xav2dzz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgQWRkLW9uIGlzIHVzaW5nIGdlbWluaSBhaSAxLjAgcHJvIG1vZGVsIGZvciBjaGF0dGluZy4gXG4gVGhpcyBleHRlbnNpb25zIHVzaW5nIHRoaXNpcGNhbi5jeW91IGZvciBsb2NhdGlvbiBkZXRlY3Rpb24gYW5kIGdvb2dsZWFwaXMuY29tIGZvciBnZW1pbmkgbW9kZWwgXG4gYWxzbyBpZiB5b3UgYXJlIHBsYW5pbmcgdG8gdXNlIFZlcnRleCBhcGkgeW91IHNob3VsZCBpbnN0YWxsIGBnY2xvdWRgIGFzIGRlcGVuZGVuY3kgKG9wdGlvbmFsKSBcbiBOT1RFOiBUaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBHb29nbGUgYW5kIEdlbWluaS4iLAogICJuYW1lIjogIkdlbWluaSBBSSBDaGF0Qm90IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdlbWluaWFpdWJ1bnR1IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3d3YXJkYXd3L2dub21lLWdlbWluaS1haSIsCiAgInV1aWQiOiAiZ2VtaW5pYWl1YnVudHVAYXJkYS5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
-    "45": {"version": "13", "sha256": "09n18gb9wxwabjy37qiaanv719simfir1bfyjyz1gf08zng9p0km", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgQWRkLW9uIGlzIHVzaW5nIGdlbWluaSAxLjAgcHJvIG1vZGVsIGZvciBjaGF0dGluZy4gXG4gVGhpcyBleHRlbnNpb25zIHVzaW5nIHRoaXNpcGNhbi5jeW91IGZvciBsb2NhdGlvbiBkZXRlY3Rpb24gYW5kIGdvb2dsZWFwaXMuY29tIGZvciBnZW1pbmkgbW9kZWwgXG4gYWxzbyBpZiB5b3UgYXJlIHBsYW5pbmcgdG8gdXNlIFZlcnRleCBhcGkgeW91IHNob3VsZCBpbnN0YWxsIGBnY2xvdWRgIGFzIGRlcGVuZGVuY3kgKG9wdGlvbmFsKSBcbiBOT1RFOiBUaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBHb29nbGUgYW5kIEdlbWluaS4iLAogICJuYW1lIjogIkdlbWluaSBBSSBmb3IgR25vbWUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ2VtaW5pYWl1YnVudHUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd3dhcmRhd3cvZ25vbWUtZ2VtaW5pLWFpIiwKICAidXVpZCI6ICJnZW1pbmlhaXVidW50dUBhcmRhLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"},
-    "46": {"version": "12", "sha256": "033g213z068qakd26ymwx3vzmjzp9c8q4crs9h7i08qhs6l4xys5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgQWRkLW9uIGlzIHVzaW5nIGdlbWluaSAxLjAgcHJvIG1vZGVsIGZvciBjaGF0dGluZy4gXG4gVGhpcyBleHRlbnNpb25zIHVzaW5nIHRoaXNpcGNhbi5jeW91IGZvciBsb2NhdGlvbiBkZXRlY3Rpb24gYW5kIGdvb2dsZWFwaXMuY29tIGZvciBnZW1pbmkgbW9kZWwgXG4gYWxzbyBpZiB5b3UgYXJlIHBsYW5pbmcgdG8gdXNlIFZlcnRleCBhcGkgeW91IHNob3VsZCBpbnN0YWxsIGBnY2xvdWRgIGFzIGRlcGVuZGVuY3kgKG9wdGlvbmFsKSBcbiBOT1RFOiBUaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBHb29nbGUgYW5kIEdlbWluaS4iLAogICJuYW1lIjogIkdlbWluaSBBSSBmb3IgR25vbWUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ2VtaW5pYWl1YnVudHUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd3dhcmRhd3cvZ25vbWUtZ2VtaW5pLWFpIiwKICAidXVpZCI6ICJnZW1pbmlhaXVidW50dUBhcmRhLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}
+    "40": {"version": "22", "sha256": "1wjyzaim8wdsw18934fa81qm6lcqcvv87sfz8p65chrczzgpm4qd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgQWRkLW9uIGlzIHVzaW5nIGdlbWluaSBhaSAxLjAgcHJvIG1vZGVsIGZvciBjaGF0dGluZy4gXG4gVGhpcyBleHRlbnNpb25zIHVzaW5nIHRoaXNpcGNhbi5jeW91IGZvciBsb2NhdGlvbiBkZXRlY3Rpb24gYW5kIGdvb2dsZWFwaXMuY29tIGZvciBnZW1pbmkgbW9kZWwgXG4gYWxzbyBpZiB5b3UgYXJlIHBsYW5pbmcgdG8gdXNlIFZlcnRleCBhcGkgeW91IHNob3VsZCBpbnN0YWxsIGBnY2xvdWRgIGFzIGRlcGVuZGVuY3kgKG9wdGlvbmFsKSBcbiBOT1RFOiBUaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBHb29nbGUgYW5kIEdlbWluaS4iLAogICJuYW1lIjogIkdlbWluaSBBSSBDaGF0Qm90IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdlbWluaWFpdWJ1bnR1IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3d3YXJkYXd3L2dub21lLWdlbWluaS1haS9ibG9iL21haW4vQ0hBTkdFUy5tZCIsCiAgInV1aWQiOiAiZ2VtaW5pYWl1YnVudHVAYXJkYS5jb20iLAogICJ2ZXJzaW9uIjogMjIKfQ=="},
+    "42": {"version": "22", "sha256": "1wjyzaim8wdsw18934fa81qm6lcqcvv87sfz8p65chrczzgpm4qd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgQWRkLW9uIGlzIHVzaW5nIGdlbWluaSBhaSAxLjAgcHJvIG1vZGVsIGZvciBjaGF0dGluZy4gXG4gVGhpcyBleHRlbnNpb25zIHVzaW5nIHRoaXNpcGNhbi5jeW91IGZvciBsb2NhdGlvbiBkZXRlY3Rpb24gYW5kIGdvb2dsZWFwaXMuY29tIGZvciBnZW1pbmkgbW9kZWwgXG4gYWxzbyBpZiB5b3UgYXJlIHBsYW5pbmcgdG8gdXNlIFZlcnRleCBhcGkgeW91IHNob3VsZCBpbnN0YWxsIGBnY2xvdWRgIGFzIGRlcGVuZGVuY3kgKG9wdGlvbmFsKSBcbiBOT1RFOiBUaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBHb29nbGUgYW5kIEdlbWluaS4iLAogICJuYW1lIjogIkdlbWluaSBBSSBDaGF0Qm90IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdlbWluaWFpdWJ1bnR1IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3d3YXJkYXd3L2dub21lLWdlbWluaS1haS9ibG9iL21haW4vQ0hBTkdFUy5tZCIsCiAgInV1aWQiOiAiZ2VtaW5pYWl1YnVudHVAYXJkYS5jb20iLAogICJ2ZXJzaW9uIjogMjIKfQ=="},
+    "43": {"version": "22", "sha256": "1wjyzaim8wdsw18934fa81qm6lcqcvv87sfz8p65chrczzgpm4qd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgQWRkLW9uIGlzIHVzaW5nIGdlbWluaSBhaSAxLjAgcHJvIG1vZGVsIGZvciBjaGF0dGluZy4gXG4gVGhpcyBleHRlbnNpb25zIHVzaW5nIHRoaXNpcGNhbi5jeW91IGZvciBsb2NhdGlvbiBkZXRlY3Rpb24gYW5kIGdvb2dsZWFwaXMuY29tIGZvciBnZW1pbmkgbW9kZWwgXG4gYWxzbyBpZiB5b3UgYXJlIHBsYW5pbmcgdG8gdXNlIFZlcnRleCBhcGkgeW91IHNob3VsZCBpbnN0YWxsIGBnY2xvdWRgIGFzIGRlcGVuZGVuY3kgKG9wdGlvbmFsKSBcbiBOT1RFOiBUaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBHb29nbGUgYW5kIEdlbWluaS4iLAogICJuYW1lIjogIkdlbWluaSBBSSBDaGF0Qm90IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdlbWluaWFpdWJ1bnR1IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3d3YXJkYXd3L2dub21lLWdlbWluaS1haS9ibG9iL21haW4vQ0hBTkdFUy5tZCIsCiAgInV1aWQiOiAiZ2VtaW5pYWl1YnVudHVAYXJkYS5jb20iLAogICJ2ZXJzaW9uIjogMjIKfQ=="},
+    "44": {"version": "22", "sha256": "1wjyzaim8wdsw18934fa81qm6lcqcvv87sfz8p65chrczzgpm4qd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgQWRkLW9uIGlzIHVzaW5nIGdlbWluaSBhaSAxLjAgcHJvIG1vZGVsIGZvciBjaGF0dGluZy4gXG4gVGhpcyBleHRlbnNpb25zIHVzaW5nIHRoaXNpcGNhbi5jeW91IGZvciBsb2NhdGlvbiBkZXRlY3Rpb24gYW5kIGdvb2dsZWFwaXMuY29tIGZvciBnZW1pbmkgbW9kZWwgXG4gYWxzbyBpZiB5b3UgYXJlIHBsYW5pbmcgdG8gdXNlIFZlcnRleCBhcGkgeW91IHNob3VsZCBpbnN0YWxsIGBnY2xvdWRgIGFzIGRlcGVuZGVuY3kgKG9wdGlvbmFsKSBcbiBOT1RFOiBUaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBHb29nbGUgYW5kIEdlbWluaS4iLAogICJuYW1lIjogIkdlbWluaSBBSSBDaGF0Qm90IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdlbWluaWFpdWJ1bnR1IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3d3YXJkYXd3L2dub21lLWdlbWluaS1haS9ibG9iL21haW4vQ0hBTkdFUy5tZCIsCiAgInV1aWQiOiAiZ2VtaW5pYWl1YnVudHVAYXJkYS5jb20iLAogICJ2ZXJzaW9uIjogMjIKfQ=="},
+    "45": {"version": "23", "sha256": "1zhqrvjyrnhp4zx0idc66xp0zj3308s9v5y7g2h9lmg0rzzah6i4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgQWRkLW9uIGlzIHVzaW5nIGdlbWluaSBhaSAxLjAgcHJvIG1vZGVsIGZvciBjaGF0dGluZy4gXG4gVGhpcyBleHRlbnNpb25zIHVzaW5nIHRoaXNpcGNhbi5jeW91IGZvciBsb2NhdGlvbiBkZXRlY3Rpb24gYW5kIGdvb2dsZWFwaXMuY29tIGZvciBnZW1pbmkgbW9kZWwgXG4gYWxzbyBpZiB5b3UgYXJlIHBsYW5pbmcgdG8gdXNlIFZlcnRleCBhcGkgeW91IHNob3VsZCBpbnN0YWxsIGBnY2xvdWRgIGFzIGRlcGVuZGVuY3kgKG9wdGlvbmFsKSBcbiBOT1RFOiBUaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBHb29nbGUgYW5kIEdlbWluaS4iLAogICJuYW1lIjogIkdlbWluaSBBSSBDaGF0Qm90IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdlbWluaWFpdWJ1bnR1IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3d3YXJkYXd3L2dub21lLWdlbWluaS1haS9ibG9iL21haW4vQ0hBTkdFUy5tZCIsCiAgInV1aWQiOiAiZ2VtaW5pYWl1YnVudHVAYXJkYS5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="},
+    "46": {"version": "24", "sha256": "1zyga97yfldqpg4p9rfqk00vdra0f6nwv6l9j7zvw971ifq6h9ma", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgQWRkLW9uIGlzIHVzaW5nIGdlbWluaSBhaSAxLjAgcHJvIG1vZGVsIGZvciBjaGF0dGluZy4gXG4gVGhpcyBleHRlbnNpb25zIHVzaW5nIHRoaXNpcGNhbi5jeW91IGZvciBsb2NhdGlvbiBkZXRlY3Rpb24gYW5kIGdvb2dsZWFwaXMuY29tIGZvciBnZW1pbmkgbW9kZWwgXG4gYWxzbyBpZiB5b3UgYXJlIHBsYW5pbmcgdG8gdXNlIFZlcnRleCBhcGkgeW91IHNob3VsZCBpbnN0YWxsIGBnY2xvdWRgIGFzIGRlcGVuZGVuY3kgKG9wdGlvbmFsKSBcbiBOT1RFOiBUaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBHb29nbGUgYW5kIEdlbWluaS4iLAogICJuYW1lIjogIkdlbWluaSBBSSBDaGF0Qm90IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdlbWluaWFpdWJ1bnR1IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3d3YXJkYXd3L2dub21lLWdlbWluaS1haS9ibG9iL21haW4vQ0hBTkdFUy5tZCIsCiAgInV1aWQiOiAiZ2VtaW5pYWl1YnVudHVAYXJkYS5jb20iLAogICJ2ZXJzaW9uIjogMjQKfQ=="}
   }}
 , {"uuid": "tailscale-connect@itsib.github.com", "name": "Tailscale Connect", "pname": "tailscale-connect", "description": "Graphical interface for the Tailscale desktop client. Simple, faster, configurable.", "link": "https://extensions.gnome.org/extension/6843/tailscale-connect/", "shell_version_map": {
     "42": {"version": "1", "sha256": "057gcg5vjc2k6905mr2b2dcdzk1q9mpjp8p2yinxz37xg981n7gf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdyYXBoaWNhbCBpbnRlcmZhY2UgZm9yIHRoZSBUYWlsc2NhbGUgZGVza3RvcCBjbGllbnQuIFNpbXBsZSwgZmFzdGVyLCBjb25maWd1cmFibGUuIiwKICAiZG9uYXRpb24iOiB7CiAgICAiZ2l0aHViIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pdHNpYiIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0YWlsc2NhbGUtY29ubmVjdCIsCiAgIm5hbWUiOiAiVGFpbHNjYWxlIENvbm5lY3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFpbHNjYWxlLWNvbm5lY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2l0c2liL3RhaWxzY2FsZS1jb25uZWN0IiwKICAidXVpZCI6ICJ0YWlsc2NhbGUtY29ubmVjdEBpdHNpYi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="},
@@ -7016,13 +7118,16 @@
     "43": {"version": "4", "sha256": "1j6hip0gck8p4f101fx2snpxggsvvs10cb11n1v6lixv98bysz2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBsZWFzYW50LXNvdW5kaW5nLCB0YWxrYXRpdmUgYW5ub3VuY2VyIG9mIHN5c3RlbSBvciB1c2VyIG5vdGlmaWNhdGlvbnMuIEdpdmUgYSByZWFsIHZvaWNlIHRvIEdOT01FLiIsCiAgIm5hbWUiOiAiVm9sdWJsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1F1YW50aXVzQmVuaWdudXMvdm9sdWJsZSIsCiAgInV1aWQiOiAidm9sdWJsZUBxdWFudGl1c2JlbmlnbnVzLmxvY2FsIiwKICAidmVyc2lvbiI6IDQKfQ=="},
     "44": {"version": "4", "sha256": "1j6hip0gck8p4f101fx2snpxggsvvs10cb11n1v6lixv98bysz2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBsZWFzYW50LXNvdW5kaW5nLCB0YWxrYXRpdmUgYW5ub3VuY2VyIG9mIHN5c3RlbSBvciB1c2VyIG5vdGlmaWNhdGlvbnMuIEdpdmUgYSByZWFsIHZvaWNlIHRvIEdOT01FLiIsCiAgIm5hbWUiOiAiVm9sdWJsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1F1YW50aXVzQmVuaWdudXMvdm9sdWJsZSIsCiAgInV1aWQiOiAidm9sdWJsZUBxdWFudGl1c2JlbmlnbnVzLmxvY2FsIiwKICAidmVyc2lvbiI6IDQKfQ=="}
   }}
-, {"uuid": "chronos@time-tracker.com", "name": "Chronos Time Tracker", "pname": "chronos-time-tracker", "description": "Time tracker tool", "link": "https://extensions.gnome.org/extension/6856/chronos-time-tracker/", "shell_version_map": {
-    "45": {"version": "6", "sha256": "0004lrh6irwibm7sgqmg8cz6lrv5j24m1s7rbz5pm2bk91c7jfyb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbWUgdHJhY2tlciB0b29sIiwKICAibmFtZSI6ICJDaHJvbm9zIFRpbWUgVHJhY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jaHJvbm9zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tLzB2dmxhbmQvY2hyb25vcyIsCiAgInV1aWQiOiAiY2hyb25vc0B0aW1lLXRyYWNrZXIuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}
+, {"uuid": "chronos@time-tracker.com", "name": "Chronos Time Tracker", "pname": "chronos-time-tracker", "description": "Time tracker tool\nMange and track your time. Features:\n- tracking time\n- display customisation\n- log to file pause/resume\n- optional pause of tracking on screen lock (hibernate/shutdown)\n- reset to particular time value", "link": "https://extensions.gnome.org/extension/6856/chronos-time-tracker/", "shell_version_map": {
+    "45": {"version": "8", "sha256": "0p6kkmlvpdpckn93ghw5jmdiv9pivb478gh0ff2psn0glshmw69x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbWUgdHJhY2tlciB0b29sXG5NYW5nZSBhbmQgdHJhY2sgeW91ciB0aW1lLiBGZWF0dXJlczpcbi0gdHJhY2tpbmcgdGltZVxuLSBkaXNwbGF5IGN1c3RvbWlzYXRpb25cbi0gbG9nIHRvIGZpbGUgcGF1c2UvcmVzdW1lXG4tIG9wdGlvbmFsIHBhdXNlIG9mIHRyYWNraW5nIG9uIHNjcmVlbiBsb2NrIChoaWJlcm5hdGUvc2h1dGRvd24pXG4tIHJlc2V0IHRvIHBhcnRpY3VsYXIgdGltZSB2YWx1ZSIsCiAgIm5hbWUiOiAiQ2hyb25vcyBUaW1lIFRyYWNrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY2hyb25vcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMHZ2bGFuZC9jaHJvbm9zIiwKICAidXVpZCI6ICJjaHJvbm9zQHRpbWUtdHJhY2tlci5jb20iLAogICJ2ZXJzaW9uIjogOAp9"},
+    "46": {"version": "8", "sha256": "0p6kkmlvpdpckn93ghw5jmdiv9pivb478gh0ff2psn0glshmw69x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbWUgdHJhY2tlciB0b29sXG5NYW5nZSBhbmQgdHJhY2sgeW91ciB0aW1lLiBGZWF0dXJlczpcbi0gdHJhY2tpbmcgdGltZVxuLSBkaXNwbGF5IGN1c3RvbWlzYXRpb25cbi0gbG9nIHRvIGZpbGUgcGF1c2UvcmVzdW1lXG4tIG9wdGlvbmFsIHBhdXNlIG9mIHRyYWNraW5nIG9uIHNjcmVlbiBsb2NrIChoaWJlcm5hdGUvc2h1dGRvd24pXG4tIHJlc2V0IHRvIHBhcnRpY3VsYXIgdGltZSB2YWx1ZSIsCiAgIm5hbWUiOiAiQ2hyb25vcyBUaW1lIFRyYWNrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY2hyb25vcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMHZ2bGFuZC9jaHJvbm9zIiwKICAidXVpZCI6ICJjaHJvbm9zQHRpbWUtdHJhY2tlci5jb20iLAogICJ2ZXJzaW9uIjogOAp9"}
   }}
 , {"uuid": "screenshort-cut@pauloimon", "name": "Screenshort-cut", "pname": "screenshort-cut", "description": "A simple shortcut to take screenshots directly on your top bar!", "link": "https://extensions.gnome.org/extension/6868/screenshort-cut/", "shell_version_map": {
-    "42": {"version": "1", "sha256": "0axs01gjw5nwzgq7k3dlxfzazkq76ym9iaazqpsyn39dhdn1z75p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIHNob3J0Y3V0IHRvIHRha2Ugc2NyZWVuc2hvdHMgZGlyZWN0bHkgb24geW91ciB0b3AgYmFyISIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvcnQtY3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGF1bG9pbW9uL3NjcmVlbnNob3J0LWN1dC1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInNjcmVlbnNob3J0LWN1dEBwYXVsb2ltb24iLAogICJ2ZXJzaW9uIjogMQp9"},
-    "43": {"version": "1", "sha256": "0axs01gjw5nwzgq7k3dlxfzazkq76ym9iaazqpsyn39dhdn1z75p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIHNob3J0Y3V0IHRvIHRha2Ugc2NyZWVuc2hvdHMgZGlyZWN0bHkgb24geW91ciB0b3AgYmFyISIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvcnQtY3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGF1bG9pbW9uL3NjcmVlbnNob3J0LWN1dC1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInNjcmVlbnNob3J0LWN1dEBwYXVsb2ltb24iLAogICJ2ZXJzaW9uIjogMQp9"},
-    "44": {"version": "1", "sha256": "0axs01gjw5nwzgq7k3dlxfzazkq76ym9iaazqpsyn39dhdn1z75p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIHNob3J0Y3V0IHRvIHRha2Ugc2NyZWVuc2hvdHMgZGlyZWN0bHkgb24geW91ciB0b3AgYmFyISIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvcnQtY3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGF1bG9pbW9uL3NjcmVlbnNob3J0LWN1dC1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInNjcmVlbnNob3J0LWN1dEBwYXVsb2ltb24iLAogICJ2ZXJzaW9uIjogMQp9"}
+    "42": {"version": "2", "sha256": "0jz2knz5rxmx7dhxbrfgwagx6p47bs0wlr9s0ml32j27d7p61kax", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIHNob3J0Y3V0IHRvIHRha2Ugc2NyZWVuc2hvdHMgZGlyZWN0bHkgb24geW91ciB0b3AgYmFyISIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvcnQtY3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGF1bG9pbW9uL2dub21lLXNjcmVlbnNob3J0LWN1dC1leHRlbnNpb24iLAogICJ1dWlkIjogInNjcmVlbnNob3J0LWN1dEBwYXVsb2ltb24iLAogICJ2ZXJzaW9uIjogMgp9"},
+    "43": {"version": "2", "sha256": "0jz2knz5rxmx7dhxbrfgwagx6p47bs0wlr9s0ml32j27d7p61kax", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIHNob3J0Y3V0IHRvIHRha2Ugc2NyZWVuc2hvdHMgZGlyZWN0bHkgb24geW91ciB0b3AgYmFyISIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvcnQtY3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGF1bG9pbW9uL2dub21lLXNjcmVlbnNob3J0LWN1dC1leHRlbnNpb24iLAogICJ1dWlkIjogInNjcmVlbnNob3J0LWN1dEBwYXVsb2ltb24iLAogICJ2ZXJzaW9uIjogMgp9"},
+    "44": {"version": "2", "sha256": "0jz2knz5rxmx7dhxbrfgwagx6p47bs0wlr9s0ml32j27d7p61kax", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIHNob3J0Y3V0IHRvIHRha2Ugc2NyZWVuc2hvdHMgZGlyZWN0bHkgb24geW91ciB0b3AgYmFyISIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvcnQtY3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGF1bG9pbW9uL2dub21lLXNjcmVlbnNob3J0LWN1dC1leHRlbnNpb24iLAogICJ1dWlkIjogInNjcmVlbnNob3J0LWN1dEBwYXVsb2ltb24iLAogICJ2ZXJzaW9uIjogMgp9"},
+    "45": {"version": "3", "sha256": "1567484xc4dmihk49ms5d74pvfkmq1f7x2c84q23lp3crpj22l5d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIHNob3J0Y3V0IHRvIHRha2Ugc2NyZWVuc2hvdHMgZGlyZWN0bHkgb24geW91ciB0b3AgYmFyISIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvcnQtY3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXVsb2ltb24vZ25vbWUtc2NyZWVuc2hvcnQtY3V0LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic2NyZWVuc2hvcnQtY3V0QHBhdWxvaW1vbiIsCiAgInZlcnNpb24iOiAzCn0="},
+    "46": {"version": "3", "sha256": "1567484xc4dmihk49ms5d74pvfkmq1f7x2c84q23lp3crpj22l5d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIHNob3J0Y3V0IHRvIHRha2Ugc2NyZWVuc2hvdHMgZGlyZWN0bHkgb24geW91ciB0b3AgYmFyISIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvcnQtY3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXVsb2ltb24vZ25vbWUtc2NyZWVuc2hvcnQtY3V0LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic2NyZWVuc2hvcnQtY3V0QHBhdWxvaW1vbiIsCiAgInZlcnNpb24iOiAzCn0="}
   }}
 , {"uuid": "streamcontroller@core447.com", "name": "StreamController Integration", "pname": "streamcontroller-integration", "description": "Allow automatic page switching in StreamController by adding a dbus interface to fetch info about the current window.", "link": "https://extensions.gnome.org/extension/6871/streamcontroller-integration/", "shell_version_map": {
     "45": {"version": "2", "sha256": "1jiyxya2nfvi647xracbfxm2il508whvrz8fhzmph7pzh86by6rw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IGF1dG9tYXRpYyBwYWdlIHN3aXRjaGluZyBpbiBTdHJlYW1Db250cm9sbGVyIGJ5IGFkZGluZyBhIGRidXMgaW50ZXJmYWNlIHRvIGZldGNoIGluZm8gYWJvdXQgdGhlIGN1cnJlbnQgd2luZG93LiIsCiAgIm5hbWUiOiAiU3RyZWFtQ29udHJvbGxlciBJbnRlZ3JhdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU3RyZWFtQ29udHJvbGxlci9zdHJlYW1jb250cm9sbGVyLWNvcmU0NDcuY29tIiwKICAidXVpZCI6ICJzdHJlYW1jb250cm9sbGVyQGNvcmU0NDcuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
@@ -7039,10 +7144,13 @@
 , {"uuid": "arch-update-security-news@slaclau.github.io", "name": "Arch Linux Updates and Security Indicator", "pname": "arch-linux-updates-and-security-indicator", "description": "Update indicator for Arch Linux and GNOME Shell.\n** Note : you now need to install the package pacman-contrib to use the checkupdates script and arch-audit for security functionality. **\n  Can support AUR or other distros by changing command used to check for and apply updates.\n See README about Gnome Console. \n This extension was modified from https://extensions.gnome.org/extension/1010/archlinux-updates-indicator/", "link": "https://extensions.gnome.org/extension/6883/arch-linux-updates-and-security-indicator/", "shell_version_map": {
     "46": {"version": "2", "sha256": "0mg83jb6llcqq8k7bijvj1vj135by7d0n5lv16j90c5m04wb4q3m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEFyY2ggTGludXggYW5kIEdOT01FIFNoZWxsLlxuKiogTm90ZSA6IHlvdSBub3cgbmVlZCB0byBpbnN0YWxsIHRoZSBwYWNrYWdlIHBhY21hbi1jb250cmliIHRvIHVzZSB0aGUgY2hlY2t1cGRhdGVzIHNjcmlwdCBhbmQgYXJjaC1hdWRpdCBmb3Igc2VjdXJpdHkgZnVuY3Rpb25hbGl0eS4gKipcbiAgQ2FuIHN1cHBvcnQgQVVSIG9yIG90aGVyIGRpc3Ryb3MgYnkgY2hhbmdpbmcgY29tbWFuZCB1c2VkIHRvIGNoZWNrIGZvciBhbmQgYXBwbHkgdXBkYXRlcy5cbiBTZWUgUkVBRE1FIGFib3V0IEdub21lIENvbnNvbGUuIFxuIFRoaXMgZXh0ZW5zaW9uIHdhcyBtb2RpZmllZCBmcm9tIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEwMTAvYXJjaGxpbnV4LXVwZGF0ZXMtaW5kaWNhdG9yLyIsCiAgImdldHRleHQtZG9tYWluIjogImFyY2gtdXBkYXRlIiwKICAibmFtZSI6ICJBcmNoIExpbnV4IFVwZGF0ZXMgYW5kIFNlY3VyaXR5IEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcmNoLXVwZGF0ZS1zZWN1cml0eS1uZXdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NsYWNsYXUvYXJjaC11cGRhdGUtc2VjdXJpdHktbmV3cyIsCiAgInV1aWQiOiAiYXJjaC11cGRhdGUtc2VjdXJpdHktbmV3c0BzbGFjbGF1LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAyCn0="}
   }}
-, {"uuid": "counter@anubhab", "name": "Counter", "pname": "counter", "description": "Adds a counter to the top bar. Left click increases counter by 1, right click decreases counter by 1, and middle click resets counter to 0.", "link": "https://extensions.gnome.org/extension/6889/counter/", "shell_version_map": {
-    "38": {"version": "4", "sha256": "08liwzpd91bwh1hil4b9r5wxm8g1l1csa4rx5y1jiqfsjdcawri4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBjb3VudGVyIHRvIHRoZSB0b3AgYmFyLiBMZWZ0IGNsaWNrIGluY3JlYXNlcyBjb3VudGVyIGJ5IDEsIHJpZ2h0IGNsaWNrIGRlY3JlYXNlcyBjb3VudGVyIGJ5IDEsIGFuZCBtaWRkbGUgY2xpY2sgcmVzZXRzIGNvdW50ZXIgdG8gMC4iLAogICJuYW1lIjogIkNvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FudWJoYWItbWFuZGFsL3RhcC1jb3VudGVyLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiY291bnRlckBhbnViaGFiIiwKICAidmVyc2lvbiI6IDQKfQ=="},
-    "40": {"version": "4", "sha256": "08liwzpd91bwh1hil4b9r5wxm8g1l1csa4rx5y1jiqfsjdcawri4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBjb3VudGVyIHRvIHRoZSB0b3AgYmFyLiBMZWZ0IGNsaWNrIGluY3JlYXNlcyBjb3VudGVyIGJ5IDEsIHJpZ2h0IGNsaWNrIGRlY3JlYXNlcyBjb3VudGVyIGJ5IDEsIGFuZCBtaWRkbGUgY2xpY2sgcmVzZXRzIGNvdW50ZXIgdG8gMC4iLAogICJuYW1lIjogIkNvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FudWJoYWItbWFuZGFsL3RhcC1jb3VudGVyLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiY291bnRlckBhbnViaGFiIiwKICAidmVyc2lvbiI6IDQKfQ=="},
-    "43": {"version": "4", "sha256": "08liwzpd91bwh1hil4b9r5wxm8g1l1csa4rx5y1jiqfsjdcawri4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBjb3VudGVyIHRvIHRoZSB0b3AgYmFyLiBMZWZ0IGNsaWNrIGluY3JlYXNlcyBjb3VudGVyIGJ5IDEsIHJpZ2h0IGNsaWNrIGRlY3JlYXNlcyBjb3VudGVyIGJ5IDEsIGFuZCBtaWRkbGUgY2xpY2sgcmVzZXRzIGNvdW50ZXIgdG8gMC4iLAogICJuYW1lIjogIkNvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FudWJoYWItbWFuZGFsL3RhcC1jb3VudGVyLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiY291bnRlckBhbnViaGFiIiwKICAidmVyc2lvbiI6IDQKfQ=="}
+, {"uuid": "counter@anubhab", "name": "Counter", "pname": "counter", "description": "Adds persistent counter to top bar. Left click counter +1, right click counter -1, and middle click resets counter to 0. Change name, alignment and index and remember TO RESTART THE EXTENSION to view your changes.", "link": "https://extensions.gnome.org/extension/6889/counter/", "shell_version_map": {
+    "38": {"version": "7", "sha256": "1czx2pk4gin5vi4l3ncw3313y79y90cw8wlpzw5nqsv9jj58k333", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgcGVyc2lzdGVudCBjb3VudGVyIHRvIHRvcCBiYXIuIExlZnQgY2xpY2sgY291bnRlciArMSwgcmlnaHQgY2xpY2sgY291bnRlciAtMSwgYW5kIG1pZGRsZSBjbGljayByZXNldHMgY291bnRlciB0byAwLiBDaGFuZ2UgbmFtZSwgYWxpZ25tZW50IGFuZCBpbmRleCBhbmQgcmVtZW1iZXIgVE8gUkVTVEFSVCBUSEUgRVhURU5TSU9OIHRvIHZpZXcgeW91ciBjaGFuZ2VzLiIsCiAgIm5hbWUiOiAiQ291bnRlciIsCiAgInByZWZzIjogInByZWZzLmpzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FudWJoYWItbWFuZGFsL3RhcC1jb3VudGVyLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiY291bnRlckBhbnViaGFiIiwKICAidmVyc2lvbiI6IDcKfQ=="},
+    "40": {"version": "7", "sha256": "1czx2pk4gin5vi4l3ncw3313y79y90cw8wlpzw5nqsv9jj58k333", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgcGVyc2lzdGVudCBjb3VudGVyIHRvIHRvcCBiYXIuIExlZnQgY2xpY2sgY291bnRlciArMSwgcmlnaHQgY2xpY2sgY291bnRlciAtMSwgYW5kIG1pZGRsZSBjbGljayByZXNldHMgY291bnRlciB0byAwLiBDaGFuZ2UgbmFtZSwgYWxpZ25tZW50IGFuZCBpbmRleCBhbmQgcmVtZW1iZXIgVE8gUkVTVEFSVCBUSEUgRVhURU5TSU9OIHRvIHZpZXcgeW91ciBjaGFuZ2VzLiIsCiAgIm5hbWUiOiAiQ291bnRlciIsCiAgInByZWZzIjogInByZWZzLmpzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FudWJoYWItbWFuZGFsL3RhcC1jb3VudGVyLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiY291bnRlckBhbnViaGFiIiwKICAidmVyc2lvbiI6IDcKfQ=="},
+    "41": {"version": "7", "sha256": "1czx2pk4gin5vi4l3ncw3313y79y90cw8wlpzw5nqsv9jj58k333", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgcGVyc2lzdGVudCBjb3VudGVyIHRvIHRvcCBiYXIuIExlZnQgY2xpY2sgY291bnRlciArMSwgcmlnaHQgY2xpY2sgY291bnRlciAtMSwgYW5kIG1pZGRsZSBjbGljayByZXNldHMgY291bnRlciB0byAwLiBDaGFuZ2UgbmFtZSwgYWxpZ25tZW50IGFuZCBpbmRleCBhbmQgcmVtZW1iZXIgVE8gUkVTVEFSVCBUSEUgRVhURU5TSU9OIHRvIHZpZXcgeW91ciBjaGFuZ2VzLiIsCiAgIm5hbWUiOiAiQ291bnRlciIsCiAgInByZWZzIjogInByZWZzLmpzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FudWJoYWItbWFuZGFsL3RhcC1jb3VudGVyLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiY291bnRlckBhbnViaGFiIiwKICAidmVyc2lvbiI6IDcKfQ=="},
+    "42": {"version": "7", "sha256": "1czx2pk4gin5vi4l3ncw3313y79y90cw8wlpzw5nqsv9jj58k333", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgcGVyc2lzdGVudCBjb3VudGVyIHRvIHRvcCBiYXIuIExlZnQgY2xpY2sgY291bnRlciArMSwgcmlnaHQgY2xpY2sgY291bnRlciAtMSwgYW5kIG1pZGRsZSBjbGljayByZXNldHMgY291bnRlciB0byAwLiBDaGFuZ2UgbmFtZSwgYWxpZ25tZW50IGFuZCBpbmRleCBhbmQgcmVtZW1iZXIgVE8gUkVTVEFSVCBUSEUgRVhURU5TSU9OIHRvIHZpZXcgeW91ciBjaGFuZ2VzLiIsCiAgIm5hbWUiOiAiQ291bnRlciIsCiAgInByZWZzIjogInByZWZzLmpzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FudWJoYWItbWFuZGFsL3RhcC1jb3VudGVyLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiY291bnRlckBhbnViaGFiIiwKICAidmVyc2lvbiI6IDcKfQ=="},
+    "43": {"version": "7", "sha256": "1czx2pk4gin5vi4l3ncw3313y79y90cw8wlpzw5nqsv9jj58k333", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgcGVyc2lzdGVudCBjb3VudGVyIHRvIHRvcCBiYXIuIExlZnQgY2xpY2sgY291bnRlciArMSwgcmlnaHQgY2xpY2sgY291bnRlciAtMSwgYW5kIG1pZGRsZSBjbGljayByZXNldHMgY291bnRlciB0byAwLiBDaGFuZ2UgbmFtZSwgYWxpZ25tZW50IGFuZCBpbmRleCBhbmQgcmVtZW1iZXIgVE8gUkVTVEFSVCBUSEUgRVhURU5TSU9OIHRvIHZpZXcgeW91ciBjaGFuZ2VzLiIsCiAgIm5hbWUiOiAiQ291bnRlciIsCiAgInByZWZzIjogInByZWZzLmpzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FudWJoYWItbWFuZGFsL3RhcC1jb3VudGVyLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiY291bnRlckBhbnViaGFiIiwKICAidmVyc2lvbiI6IDcKfQ=="},
+    "44": {"version": "7", "sha256": "1czx2pk4gin5vi4l3ncw3313y79y90cw8wlpzw5nqsv9jj58k333", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgcGVyc2lzdGVudCBjb3VudGVyIHRvIHRvcCBiYXIuIExlZnQgY2xpY2sgY291bnRlciArMSwgcmlnaHQgY2xpY2sgY291bnRlciAtMSwgYW5kIG1pZGRsZSBjbGljayByZXNldHMgY291bnRlciB0byAwLiBDaGFuZ2UgbmFtZSwgYWxpZ25tZW50IGFuZCBpbmRleCBhbmQgcmVtZW1iZXIgVE8gUkVTVEFSVCBUSEUgRVhURU5TSU9OIHRvIHZpZXcgeW91ciBjaGFuZ2VzLiIsCiAgIm5hbWUiOiAiQ291bnRlciIsCiAgInByZWZzIjogInByZWZzLmpzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FudWJoYWItbWFuZGFsL3RhcC1jb3VudGVyLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiY291bnRlckBhbnViaGFiIiwKICAidmVyc2lvbiI6IDcKfQ=="}
   }}
 , {"uuid": "sleep-through-notifications@rhendric.gitlab.the_name_of_this_desktop_environment.org", "name": "Sleep Through Notifications", "pname": "sleep-through-notifications", "description": "Disable the screen-waking behavior of lock screen notifications", "link": "https://extensions.gnome.org/extension/6892/sleep-through-notifications/", "shell_version_map": {
     "45": {"version": "1", "sha256": "1zsx2q845ng31nn3qavhf2wd3n7qhghr5w1kz6wvvq3i92zf8alk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIHNjcmVlbi13YWtpbmcgYmVoYXZpb3Igb2YgbG9jayBzY3JlZW4gbm90aWZpY2F0aW9ucyIsCiAgIm5hbWUiOiAiU2xlZXAgVGhyb3VnaCBOb3RpZmljYXRpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9yaGVuZHJpYy9zbGVlcC10aHJvdWdoLW5vdGlmaWNhdGlvbnMiLAogICJ1dWlkIjogInNsZWVwLXRocm91Z2gtbm90aWZpY2F0aW9uc0ByaGVuZHJpYy5naXRsYWIudGhlX25hbWVfb2ZfdGhpc19kZXNrdG9wX2Vudmlyb25tZW50Lm9yZyIsCiAgInZlcnNpb24iOiAxCn0="},
@@ -7053,8 +7161,11 @@
     "46": {"version": "5", "sha256": "0zg6g9yrhmabz74gdsh1qw7p69garmxn22pi6w8zqhggh6i9m4zy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJwb2thIiwKICAiZGVzY3JpcHRpb24iOiAiRWFzaWx5IGVuYWJsZSBvciBkaXNhYmxlIHlvdXIgc2Vjb25kYXJ5IG1vbml0b3Igd2l0aCBhIHNpbmdsZSBjbGljay4gVGhpcyBleHRlbnNpb24gYWRkcyBhIHRvZ2dsZSBidXR0b24gdG8gdGhlIHN5c3RlbSBtZW51LCBhbGxvd2luZyB5b3UgdG8gcXVpY2tseSBzd2l0Y2ggeW91ciBzZWNvbmQgc2NyZWVuIG9uIG9yIG9mZiB3aXRob3V0IG5lZWRpbmcgdG8gbmF2aWdhdGUgdGhyb3VnaCBzZXR0aW5ncy4gSXQgYXV0b21hdGljYWxseSBkZXRlY3RzIHlvdXIgY29ubmVjdGVkIG1vbml0b3JzIGFuZCB0aGVpciBjb25maWd1cmF0aW9ucywgbWFraW5nIGl0IHNpbXBsZSB0byBtYW5hZ2UgeW91ciBtdWx0aS1tb25pdG9yIHNldHVwLiIsCiAgImxpY2Vuc2UiOiAiR1BMLTMuMCIsCiAgIm5hbWUiOiAiRHVhbCBNb25pdG9yIFRvZ2dsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcG9rYS1JVC9nbm9tZS1kdWFsLW1vbml0b3ItdG9nZ2xlIiwKICAidXVpZCI6ICJkdWFsLW1vbml0b3ItdG9nZ2xlQHBva2EiLAogICJ2ZXJzaW9uIjogNQp9"}
   }}
 , {"uuid": "gbinaryclock@isopolito", "name": "gBinaryClock", "pname": "gbinaryclock", "description": "Adds a binary clock to the gnome top bar", "link": "https://extensions.gnome.org/extension/6901/gbinaryclock/", "shell_version_map": {
-    "45": {"version": "3", "sha256": "1g4qw6cvwxh90y2rdv37vl868yb4766fc7k8frwwrgp9k7mx62jk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBiaW5hcnkgY2xvY2sgdG8gdGhlIGdub21lIHRvcCBiYXIiLAogICJuYW1lIjogImdCaW5hcnlDbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSXNvcG9saXRvL2dCaW5hcnlDbG9jayIsCiAgInV1aWQiOiAiZ2JpbmFyeWNsb2NrQGlzb3BvbGl0byIsCiAgInZlcnNpb24iOiAzCn0="},
-    "46": {"version": "3", "sha256": "1g4qw6cvwxh90y2rdv37vl868yb4766fc7k8frwwrgp9k7mx62jk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBiaW5hcnkgY2xvY2sgdG8gdGhlIGdub21lIHRvcCBiYXIiLAogICJuYW1lIjogImdCaW5hcnlDbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSXNvcG9saXRvL2dCaW5hcnlDbG9jayIsCiAgInV1aWQiOiAiZ2JpbmFyeWNsb2NrQGlzb3BvbGl0byIsCiAgInZlcnNpb24iOiAzCn0="}
+    "45": {"version": "4", "sha256": "0j4rhb1qvisw146qf97k6z19m76ks1nb6av4kqann88kk78hinaf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBiaW5hcnkgY2xvY2sgdG8gdGhlIGdub21lIHRvcCBiYXIiLAogICJuYW1lIjogImdCaW5hcnlDbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSXNvcG9saXRvL2dCaW5hcnlDbG9jayIsCiAgInV1aWQiOiAiZ2JpbmFyeWNsb2NrQGlzb3BvbGl0byIsCiAgInZlcnNpb24iOiA0Cn0="},
+    "46": {"version": "4", "sha256": "0j4rhb1qvisw146qf97k6z19m76ks1nb6av4kqann88kk78hinaf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBiaW5hcnkgY2xvY2sgdG8gdGhlIGdub21lIHRvcCBiYXIiLAogICJuYW1lIjogImdCaW5hcnlDbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSXNvcG9saXRvL2dCaW5hcnlDbG9jayIsCiAgInV1aWQiOiAiZ2JpbmFyeWNsb2NrQGlzb3BvbGl0byIsCiAgInZlcnNpb24iOiA0Cn0="}
+  }}
+, {"uuid": "quick-lofi@eucaue", "name": "Quick Lofi", "pname": "quick-lofi", "description": "Relax to lo-fi tunes with just a click.\n\nYou need MPV and socat for this extension to work.\n\nFedora: sudo dnf install mpv socat\nUbuntu: sudo apt install mpv socat\nArch Linux: sudo pacman -S mpv socat", "link": "https://extensions.gnome.org/extension/6904/quick-lofi/", "shell_version_map": {
+    "46": {"version": "3", "sha256": "0la8s8rpfvnabp599wdrsdkzlyjw1sjvbr0jdf1ldp260famsk77", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbGF4IHRvIGxvLWZpIHR1bmVzIHdpdGgganVzdCBhIGNsaWNrLlxuXG5Zb3UgbmVlZCBNUFYgYW5kIHNvY2F0IGZvciB0aGlzIGV4dGVuc2lvbiB0byB3b3JrLlxuXG5GZWRvcmE6IHN1ZG8gZG5mIGluc3RhbGwgbXB2IHNvY2F0XG5VYnVudHU6IHN1ZG8gYXB0IGluc3RhbGwgbXB2IHNvY2F0XG5BcmNoIExpbnV4OiBzdWRvIHBhY21hbiAtUyBtcHYgc29jYXQiLAogICJuYW1lIjogIlF1aWNrIExvZmkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucXVpY2stbG9maSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldWNhdWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXF1aWNrLWxvZmkiLAogICJ1dWlkIjogInF1aWNrLWxvZmlAZXVjYXVlIiwKICAidmVyc2lvbiI6IDMKfQ=="}
   }}
 , {"uuid": "mock-tray@kramo.page", "name": "Mock Tray", "pname": "mock-tray", "description": "Creates an invisible system tray (TopIcons) for apps (like MEGAsync) that won't run properly without one.", "link": "https://extensions.gnome.org/extension/6913/mock-tray/", "shell_version_map": {
     "45": {"version": "2", "sha256": "0vp951zha0d6glda9f7b7yp8cradssj477lymmspx19p0iwz7zcg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgYW4gaW52aXNpYmxlIHN5c3RlbSB0cmF5IChUb3BJY29ucykgZm9yIGFwcHMgKGxpa2UgTUVHQXN5bmMpIHRoYXQgd29uJ3QgcnVuIHByb3Blcmx5IHdpdGhvdXQgb25lLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAia3JhLW1vIgogIH0sCiAgIm5hbWUiOiAiTW9jayBUcmF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rcmEtbW8vbW9jay10cmF5LyIsCiAgInV1aWQiOiAibW9jay10cmF5QGtyYW1vLnBhZ2UiLAogICJ2ZXJzaW9uIjogMgp9"},
@@ -7064,10 +7175,116 @@
     "45": {"version": "1", "sha256": "1xzj9nj12zzc34qdskrpimlcrq37nmhh7wrwvcv05x2s8slr9rjj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBlbmFibGUgcG9ydCBmb3J3YXJkaW5nIHZpYSBTU0ggIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicG9ydGZvcndhcmRpbmctZXh0ZW5zaW9uQFNKQkVSVFJBTkQuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiUG9ydCBGb3J3YXJkaW5nIEV4dGVuc2lvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wb3J0Zm9yd2FyZGluZy1leHRlbnNpb25AU0pCRVJUUkFORC5naXRodWIuY29tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TSkJFUlRSQU5EL3BvcnRmb3J3YXJkaW5nLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAicG9ydGZvcndhcmRpbmctZXh0ZW5zaW9uQFNKQkVSVFJBTkQuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="},
     "46": {"version": "1", "sha256": "1xzj9nj12zzc34qdskrpimlcrq37nmhh7wrwvcv05x2s8slr9rjj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBlbmFibGUgcG9ydCBmb3J3YXJkaW5nIHZpYSBTU0ggIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicG9ydGZvcndhcmRpbmctZXh0ZW5zaW9uQFNKQkVSVFJBTkQuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiUG9ydCBGb3J3YXJkaW5nIEV4dGVuc2lvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wb3J0Zm9yd2FyZGluZy1leHRlbnNpb25AU0pCRVJUUkFORC5naXRodWIuY29tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TSkJFUlRSQU5EL3BvcnRmb3J3YXJkaW5nLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAicG9ydGZvcndhcmRpbmctZXh0ZW5zaW9uQFNKQkVSVFJBTkQuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}
   }}
-, {"uuid": "gravatar@dsheeler.net", "name": "Gravatar", "pname": "gravatar", "description": "Synchronize GNOME Shell user icon with Gravatar. This extension is not affiliated, funded, or in any way associated with Automattic and Gravatar.", "link": "https://extensions.gnome.org/extension/6922/gravatar/", "shell_version_map": {
-    "46": {"version": "2", "sha256": "1hxv64cbh3jqxirzpshj35nq4hz1pam86q1n5592yw9h9kfdal6b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmNocm9uaXplIEdOT01FIFNoZWxsIHVzZXIgaWNvbiB3aXRoIEdyYXZhdGFyLiBUaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBBdXRvbWF0dGljIGFuZCBHcmF2YXRhci4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImRzaGVlbGVyIiwKICAgICJsaWJlcmFwYXkiOiAiZHNoZWVsZXIiLAogICAgInBheXBhbCI6ICJEYW5pZWxTaGVlbGVyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMtZ3JhdmF0YXIiLAogICJuYW1lIjogIkdyYXZhdGFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdyYXZhdGFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RzaGVlbGVyL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtZ3JhdmF0YXIiLAogICJ1dWlkIjogImdyYXZhdGFyQGRzaGVlbGVyLm5ldCIsCiAgInZlcnNpb24iOiAyCn0="}
+, {"uuid": "gravatar@dsheeler.net", "name": "Gravatar", "pname": "gravatar", "description": "Synchronize GNOME Shell user icon with Gravatar.\nThis extension is not affiliated, funded, or in any way associated with Automattic and Gravatar.", "link": "https://extensions.gnome.org/extension/6922/gravatar/", "shell_version_map": {
+    "46": {"version": "4", "sha256": "0f633fqlav4c8gadfw6bn0j8m51r80pgiykrzyzrrp7xxb190vbz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmNocm9uaXplIEdOT01FIFNoZWxsIHVzZXIgaWNvbiB3aXRoIEdyYXZhdGFyLlxuVGhpcyBleHRlbnNpb24gaXMgbm90IGFmZmlsaWF0ZWQsIGZ1bmRlZCwgb3IgaW4gYW55IHdheSBhc3NvY2lhdGVkIHdpdGggQXV0b21hdHRpYyBhbmQgR3JhdmF0YXIuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJkc2hlZWxlciIsCiAgICAibGliZXJhcGF5IjogImRzaGVlbGVyIiwKICAgICJwYXlwYWwiOiAiRGFuaWVsU2hlZWxlciIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWdyYXZhdGFyIiwKICAibmFtZSI6ICJHcmF2YXRhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ncmF2YXRhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kc2hlZWxlci9nbm9tZS1zaGVsbC1leHRlbnNpb25zLWdyYXZhdGFyIiwKICAidXVpZCI6ICJncmF2YXRhckBkc2hlZWxlci5uZXQiLAogICJ2ZXJzaW9uIjogNAp9"}
+  }}
+, {"uuid": "wechsel@transistor.local", "name": "Wechsel", "pname": "wechsel", "description": "Organise your computer by replacing user folders with symlinks to project folders.\nThis extension is the user interface for the wechsel cli tool.\n\nWechsel is a simple tool that helps you by creating individual Download, Desktop, ... folders for each project.\nIt replaces the original folders with symlinks to the folders of the current active project.\nLike this the random files you download, will be placed in the Download folder they belong to.\n\nThis Extension depends on the wechsel cli tool, which you can find here: https://github.com/JustSomeRandomUsername/wechsel", "link": "https://extensions.gnome.org/extension/6925/wechsel/", "shell_version_map": {
+    "44": {"version": "5", "sha256": "1212kva3sj9cwiq6nligk62r1am200413lhp2szw6ydj8mj8mnfi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9yZ2FuaXNlIHlvdXIgY29tcHV0ZXIgYnkgcmVwbGFjaW5nIHVzZXIgZm9sZGVycyB3aXRoIHN5bWxpbmtzIHRvIHByb2plY3QgZm9sZGVycy5cblRoaXMgZXh0ZW5zaW9uIGlzIHRoZSB1c2VyIGludGVyZmFjZSBmb3IgdGhlIHdlY2hzZWwgY2xpIHRvb2wuXG5cbldlY2hzZWwgaXMgYSBzaW1wbGUgdG9vbCB0aGF0IGhlbHBzIHlvdSBieSBjcmVhdGluZyBpbmRpdmlkdWFsIERvd25sb2FkLCBEZXNrdG9wLCAuLi4gZm9sZGVycyBmb3IgZWFjaCBwcm9qZWN0LlxuSXQgcmVwbGFjZXMgdGhlIG9yaWdpbmFsIGZvbGRlcnMgd2l0aCBzeW1saW5rcyB0byB0aGUgZm9sZGVycyBvZiB0aGUgY3VycmVudCBhY3RpdmUgcHJvamVjdC5cbkxpa2UgdGhpcyB0aGUgcmFuZG9tIGZpbGVzIHlvdSBkb3dubG9hZCwgd2lsbCBiZSBwbGFjZWQgaW4gdGhlIERvd25sb2FkIGZvbGRlciB0aGV5IGJlbG9uZyB0by5cblxuVGhpcyBFeHRlbnNpb24gZGVwZW5kcyBvbiB0aGUgd2VjaHNlbCBjbGkgdG9vbCwgd2hpY2ggeW91IGNhbiBmaW5kIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9KdXN0U29tZVJhbmRvbVVzZXJuYW1lL3dlY2hzZWwiLAogICJuYW1lIjogIldlY2hzZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2VjaHNlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiLAogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0p1c3RTb21lUmFuZG9tVXNlcm5hbWUvd2VjaHNlbC1leHRlbnNpb24iLAogICJ1dWlkIjogIndlY2hzZWxAdHJhbnNpc3Rvci5sb2NhbCIsCiAgInZlcnNpb24iOiA1Cn0="},
+    "45": {"version": "5", "sha256": "1212kva3sj9cwiq6nligk62r1am200413lhp2szw6ydj8mj8mnfi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9yZ2FuaXNlIHlvdXIgY29tcHV0ZXIgYnkgcmVwbGFjaW5nIHVzZXIgZm9sZGVycyB3aXRoIHN5bWxpbmtzIHRvIHByb2plY3QgZm9sZGVycy5cblRoaXMgZXh0ZW5zaW9uIGlzIHRoZSB1c2VyIGludGVyZmFjZSBmb3IgdGhlIHdlY2hzZWwgY2xpIHRvb2wuXG5cbldlY2hzZWwgaXMgYSBzaW1wbGUgdG9vbCB0aGF0IGhlbHBzIHlvdSBieSBjcmVhdGluZyBpbmRpdmlkdWFsIERvd25sb2FkLCBEZXNrdG9wLCAuLi4gZm9sZGVycyBmb3IgZWFjaCBwcm9qZWN0LlxuSXQgcmVwbGFjZXMgdGhlIG9yaWdpbmFsIGZvbGRlcnMgd2l0aCBzeW1saW5rcyB0byB0aGUgZm9sZGVycyBvZiB0aGUgY3VycmVudCBhY3RpdmUgcHJvamVjdC5cbkxpa2UgdGhpcyB0aGUgcmFuZG9tIGZpbGVzIHlvdSBkb3dubG9hZCwgd2lsbCBiZSBwbGFjZWQgaW4gdGhlIERvd25sb2FkIGZvbGRlciB0aGV5IGJlbG9uZyB0by5cblxuVGhpcyBFeHRlbnNpb24gZGVwZW5kcyBvbiB0aGUgd2VjaHNlbCBjbGkgdG9vbCwgd2hpY2ggeW91IGNhbiBmaW5kIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9KdXN0U29tZVJhbmRvbVVzZXJuYW1lL3dlY2hzZWwiLAogICJuYW1lIjogIldlY2hzZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2VjaHNlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiLAogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0p1c3RTb21lUmFuZG9tVXNlcm5hbWUvd2VjaHNlbC1leHRlbnNpb24iLAogICJ1dWlkIjogIndlY2hzZWxAdHJhbnNpc3Rvci5sb2NhbCIsCiAgInZlcnNpb24iOiA1Cn0="},
+    "46": {"version": "5", "sha256": "1212kva3sj9cwiq6nligk62r1am200413lhp2szw6ydj8mj8mnfi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9yZ2FuaXNlIHlvdXIgY29tcHV0ZXIgYnkgcmVwbGFjaW5nIHVzZXIgZm9sZGVycyB3aXRoIHN5bWxpbmtzIHRvIHByb2plY3QgZm9sZGVycy5cblRoaXMgZXh0ZW5zaW9uIGlzIHRoZSB1c2VyIGludGVyZmFjZSBmb3IgdGhlIHdlY2hzZWwgY2xpIHRvb2wuXG5cbldlY2hzZWwgaXMgYSBzaW1wbGUgdG9vbCB0aGF0IGhlbHBzIHlvdSBieSBjcmVhdGluZyBpbmRpdmlkdWFsIERvd25sb2FkLCBEZXNrdG9wLCAuLi4gZm9sZGVycyBmb3IgZWFjaCBwcm9qZWN0LlxuSXQgcmVwbGFjZXMgdGhlIG9yaWdpbmFsIGZvbGRlcnMgd2l0aCBzeW1saW5rcyB0byB0aGUgZm9sZGVycyBvZiB0aGUgY3VycmVudCBhY3RpdmUgcHJvamVjdC5cbkxpa2UgdGhpcyB0aGUgcmFuZG9tIGZpbGVzIHlvdSBkb3dubG9hZCwgd2lsbCBiZSBwbGFjZWQgaW4gdGhlIERvd25sb2FkIGZvbGRlciB0aGV5IGJlbG9uZyB0by5cblxuVGhpcyBFeHRlbnNpb24gZGVwZW5kcyBvbiB0aGUgd2VjaHNlbCBjbGkgdG9vbCwgd2hpY2ggeW91IGNhbiBmaW5kIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9KdXN0U29tZVJhbmRvbVVzZXJuYW1lL3dlY2hzZWwiLAogICJuYW1lIjogIldlY2hzZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2VjaHNlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiLAogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0p1c3RTb21lUmFuZG9tVXNlcm5hbWUvd2VjaHNlbC1leHRlbnNpb24iLAogICJ1dWlkIjogIndlY2hzZWxAdHJhbnNpc3Rvci5sb2NhbCIsCiAgInZlcnNpb24iOiA1Cn0="}
+  }}
+, {"uuid": "boostvolume@shaquib.dev", "name": "Boost Volume", "pname": "boost-volume", "description": "Boosts volume above limits", "link": "https://extensions.gnome.org/extension/6928/boost-volume/", "shell_version_map": {
+    "46": {"version": "7", "sha256": "1zi0bgkvj99x5w1pgfinp83i4cr0hqf7x2wfjafdck6jzbn1qchn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJvb3N0cyB2b2x1bWUgYWJvdmUgbGltaXRzIiwKICAibmFtZSI6ICJCb29zdCBWb2x1bWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2hhcXVpYmltZGFkL2dub21lX2V4dF92b2x1bWVfYm9vc3QiLAogICJ1dWlkIjogImJvb3N0dm9sdW1lQHNoYXF1aWIuZGV2IiwKICAidmVyc2lvbiI6IDcKfQ=="}
+  }}
+, {"uuid": "media-progress@krypion17", "name": "Media Progress", "pname": "media-progress", "description": "Progress Bar for the GNOME Media Notification", "link": "https://extensions.gnome.org/extension/6940/media-progress/", "shell_version_map": {
+    "46": {"version": "15", "sha256": "1f76xwqga9zcarq8s538aywnmaqfjbykvr2hj5f2d3zcwv6jzizf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb2dyZXNzIEJhciBmb3IgdGhlIEdOT01FIE1lZGlhIE5vdGlmaWNhdGlvbiIsCiAgIm5hbWUiOiAiTWVkaWEgUHJvZ3Jlc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vS3J5cGlvbjE3L21lZGlhLXByb2dyZXNzIiwKICAidXVpZCI6ICJtZWRpYS1wcm9ncmVzc0BrcnlwaW9uMTciLAogICJ2ZXJzaW9uIjogMTUKfQ=="}
+  }}
+, {"uuid": "autohide-battery-percentage@rukins.github.io", "name": "Autohide Battery Percentage", "pname": "autohide-battery-percentage", "description": "GNOME Shell extension to hide the battery percentage in the top panel, if the computer is plugged in or power saving is disabled", "link": "https://extensions.gnome.org/extension/6943/autohide-battery-percentage/", "shell_version_map": {
+    "45": {"version": "7", "sha256": "0v8vlkz67hshcb6c5j192xal47f5vd30l05czygngwq5gzsg0n2g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIGV4dGVuc2lvbiB0byBoaWRlIHRoZSBiYXR0ZXJ5IHBlcmNlbnRhZ2UgaW4gdGhlIHRvcCBwYW5lbCwgaWYgdGhlIGNvbXB1dGVyIGlzIHBsdWdnZWQgaW4gb3IgcG93ZXIgc2F2aW5nIGlzIGRpc2FibGVkIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJydWtpbnMiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXV0b2hpZGUtYmF0dGVyeS1wZXJjZW50YWdlQHJ1a2lucy5naXRodWIuaW8iLAogICJuYW1lIjogIkF1dG9oaWRlIEJhdHRlcnkgUGVyY2VudGFnZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hdXRvaGlkZS1iYXR0ZXJ5LXBlcmNlbnRhZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3J1a2lucy9hdXRvaGlkZS1iYXR0ZXJ5LXBlcmNlbnRhZ2UiLAogICJ1dWlkIjogImF1dG9oaWRlLWJhdHRlcnktcGVyY2VudGFnZUBydWtpbnMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDcKfQ=="},
+    "46": {"version": "7", "sha256": "0v8vlkz67hshcb6c5j192xal47f5vd30l05czygngwq5gzsg0n2g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIGV4dGVuc2lvbiB0byBoaWRlIHRoZSBiYXR0ZXJ5IHBlcmNlbnRhZ2UgaW4gdGhlIHRvcCBwYW5lbCwgaWYgdGhlIGNvbXB1dGVyIGlzIHBsdWdnZWQgaW4gb3IgcG93ZXIgc2F2aW5nIGlzIGRpc2FibGVkIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJydWtpbnMiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXV0b2hpZGUtYmF0dGVyeS1wZXJjZW50YWdlQHJ1a2lucy5naXRodWIuaW8iLAogICJuYW1lIjogIkF1dG9oaWRlIEJhdHRlcnkgUGVyY2VudGFnZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hdXRvaGlkZS1iYXR0ZXJ5LXBlcmNlbnRhZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3J1a2lucy9hdXRvaGlkZS1iYXR0ZXJ5LXBlcmNlbnRhZ2UiLAogICJ1dWlkIjogImF1dG9oaWRlLWJhdHRlcnktcGVyY2VudGFnZUBydWtpbnMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDcKfQ=="}
+  }}
+, {"uuid": "moveclock@kuvaus.org", "name": "moveclock", "pname": "moveclock", "description": "Move the clock to right side of the panel", "link": "https://extensions.gnome.org/extension/6949/moveclock/", "shell_version_map": {
+    "46": {"version": "5", "sha256": "0lmvnrms8kg0cir6wkaj7sicn5ms9lx9mqh4z7pbh8gfr135n5v9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIGNsb2NrIHRvIHJpZ2h0IHNpZGUgb2YgdGhlIHBhbmVsIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibW92ZWNsb2NrIiwKICAibmFtZSI6ICJtb3ZlY2xvY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubW92ZWNsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2t1dmF1cy9tb3ZlY2xvY2siLAogICJ1dWlkIjogIm1vdmVjbG9ja0BrdXZhdXMub3JnIiwKICAidmVyc2lvbiI6IDUKfQ=="}
+  }}
+, {"uuid": "rezmon@azz.lol", "name": "Resource Monitor", "pname": "rezmon", "description": "Shows info about: CPU(usage, clock, temp), RAM(free, used) and NET (download, upload) on GNOME SHELL System Tray (Top Bar)\n\nTested on GNOME Shell 46\nMay Work on GNOME Shell 45", "link": "https://extensions.gnome.org/extension/6952/rezmon/", "shell_version_map": {
+    "45": {"version": "11", "sha256": "1hcvng6194m3xyyg5pcrrqj42q86gf34r57rcfyv8183vxk71cp8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGluZm8gYWJvdXQ6IENQVSh1c2FnZSwgY2xvY2ssIHRlbXApLCBSQU0oZnJlZSwgdXNlZCkgYW5kIE5FVCAoZG93bmxvYWQsIHVwbG9hZCkgb24gR05PTUUgU0hFTEwgU3lzdGVtIFRyYXkgKFRvcCBCYXIpXG5cblRlc3RlZCBvbiBHTk9NRSBTaGVsbCA0NlxuTWF5IFdvcmsgb24gR05PTUUgU2hlbGwgNDUiLAogICJuYW1lIjogIlJlc291cmNlIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2V6eXdheS9SZXpNb24iLAogICJ1dWlkIjogInJlem1vbkBhenoubG9sIiwKICAidmVyc2lvbiI6IDExCn0="},
+    "46": {"version": "11", "sha256": "1hcvng6194m3xyyg5pcrrqj42q86gf34r57rcfyv8183vxk71cp8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGluZm8gYWJvdXQ6IENQVSh1c2FnZSwgY2xvY2ssIHRlbXApLCBSQU0oZnJlZSwgdXNlZCkgYW5kIE5FVCAoZG93bmxvYWQsIHVwbG9hZCkgb24gR05PTUUgU0hFTEwgU3lzdGVtIFRyYXkgKFRvcCBCYXIpXG5cblRlc3RlZCBvbiBHTk9NRSBTaGVsbCA0NlxuTWF5IFdvcmsgb24gR05PTUUgU2hlbGwgNDUiLAogICJuYW1lIjogIlJlc291cmNlIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2V6eXdheS9SZXpNb24iLAogICJ1dWlkIjogInJlem1vbkBhenoubG9sIiwKICAidmVyc2lvbiI6IDExCn0="}
+  }}
+, {"uuid": "drive-activity-indicator@marcosdalvarez.org", "name": "Drive Activity Indicator", "pname": "drive-activity-indicator", "description": "Visualize the activity of storage drives (disk activity LED simulator).", "link": "https://extensions.gnome.org/extension/6955/drive-activity-indicator/", "shell_version_map": {
+    "46": {"version": "2", "sha256": "1p2csc5jdk37qwiqb2ylkqzz3fmbmw9vqik9yv109yqk0zpzbz2y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpc3VhbGl6ZSB0aGUgYWN0aXZpdHkgb2Ygc3RvcmFnZSBkcml2ZXMgKGRpc2sgYWN0aXZpdHkgTEVEIHNpbXVsYXRvcikuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZHJpdmUtYWN0aXZpdHktaW5kaWNhdG9yQG1hcmNvc2RhbHZhcmV6Lm9yZyIsCiAgIm5hbWUiOiAiRHJpdmUgQWN0aXZpdHkgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRyaXZlLWFjdGl2aXR5LWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9tYXJjb3NkYWx2YXJlei9kcml2ZS1hY3Rpdml0eS1pbmRpY2F0b3ItZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJkcml2ZS1hY3Rpdml0eS1pbmRpY2F0b3JAbWFyY29zZGFsdmFyZXoub3JnIiwKICAidmVyc2lvbiI6IDIKfQ=="}
+  }}
+, {"uuid": "usd-rub-er-gse@c0mr8.github.com", "name": "USD to RUB viewer", "pname": "usd-to-rub-viewer", "description": "That simple extension shows USD to Russian RUB exchange rate on the left center part of Gnome top panel. Exchange rate updates every 30 seconds. Compatible with Gnome 45-46. This extension is using economia.awesomeapi.com.br. It is a fork of usd-try.", "link": "https://extensions.gnome.org/extension/6958/usd-to-rub-viewer/", "shell_version_map": {
+    "45": {"version": "4", "sha256": "1c5jdfyz2m7vn6h82qbdbc6bmi86yzxcdqa1rq55kh124cjx88kq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoYXQgc2ltcGxlIGV4dGVuc2lvbiBzaG93cyBVU0QgdG8gUnVzc2lhbiBSVUIgZXhjaGFuZ2UgcmF0ZSBvbiB0aGUgbGVmdCBjZW50ZXIgcGFydCBvZiBHbm9tZSB0b3AgcGFuZWwuIEV4Y2hhbmdlIHJhdGUgdXBkYXRlcyBldmVyeSAzMCBzZWNvbmRzLiBDb21wYXRpYmxlIHdpdGggR25vbWUgNDUtNDYuIFRoaXMgZXh0ZW5zaW9uIGlzIHVzaW5nIGVjb25vbWlhLmF3ZXNvbWVhcGkuY29tLmJyLiBJdCBpcyBhIGZvcmsgb2YgdXNkLXRyeS4iLAogICJuYW1lIjogIlVTRCB0byBSVUIgdmlld2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb21yOC9VU0QtUlVCLUVSLUdTRSIsCiAgInV1aWQiOiAidXNkLXJ1Yi1lci1nc2VAYzBtcjguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="},
+    "46": {"version": "4", "sha256": "1c5jdfyz2m7vn6h82qbdbc6bmi86yzxcdqa1rq55kh124cjx88kq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoYXQgc2ltcGxlIGV4dGVuc2lvbiBzaG93cyBVU0QgdG8gUnVzc2lhbiBSVUIgZXhjaGFuZ2UgcmF0ZSBvbiB0aGUgbGVmdCBjZW50ZXIgcGFydCBvZiBHbm9tZSB0b3AgcGFuZWwuIEV4Y2hhbmdlIHJhdGUgdXBkYXRlcyBldmVyeSAzMCBzZWNvbmRzLiBDb21wYXRpYmxlIHdpdGggR25vbWUgNDUtNDYuIFRoaXMgZXh0ZW5zaW9uIGlzIHVzaW5nIGVjb25vbWlhLmF3ZXNvbWVhcGkuY29tLmJyLiBJdCBpcyBhIGZvcmsgb2YgdXNkLXRyeS4iLAogICJuYW1lIjogIlVTRCB0byBSVUIgdmlld2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb21yOC9VU0QtUlVCLUVSLUdTRSIsCiAgInV1aWQiOiAidXNkLXJ1Yi1lci1nc2VAYzBtcjguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}
+  }}
+, {"uuid": "tomato-c-to-panel@thomas-philippot.dev", "name": "tomato.C to panel", "pname": "tomatoc-to-panel", "description": "Add tomato.c pomodoro timer to the gnome panel, requires tomato.c : https://github.com/gabrielzschmitz/Tomato.C", "link": "https://extensions.gnome.org/extension/6961/tomatoc-to-panel/", "shell_version_map": {
+    "46": {"version": "3", "sha256": "1m6b84pskdk216kagqnx3wxjlvnx3qpw274qqvkrzk0pmbk2sxsa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB0b21hdG8uYyBwb21vZG9ybyB0aW1lciB0byB0aGUgZ25vbWUgcGFuZWwsIHJlcXVpcmVzIHRvbWF0by5jIDogaHR0cHM6Ly9naXRodWIuY29tL2dhYnJpZWx6c2NobWl0ei9Ub21hdG8uQyIsCiAgIm5hbWUiOiAidG9tYXRvLkMgdG8gcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVGhvbWFzLVBoaWxpcHBvdC90b21hdG8uYy10by1wYW5lbCIsCiAgInV1aWQiOiAidG9tYXRvLWMtdG8tcGFuZWxAdGhvbWFzLXBoaWxpcHBvdC5kZXYiLAogICJ2ZXJzaW9uIjogMwp9"}
+  }}
+, {"uuid": "removeclock@sudfish.com", "name": "Remove Clock", "pname": "remove-clock", "description": "Remove or hide clock from top panel. For GNOME Shell 45 and later.", "link": "https://extensions.gnome.org/extension/6967/remove-clock/", "shell_version_map": {
+    "45": {"version": "1", "sha256": "1i7ig9jpcdd7nmk5l7zvk7y5bx7yk1m7679x0awzbr84yxchyrly", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBvciBoaWRlIGNsb2NrIGZyb20gdG9wIHBhbmVsLiIsCiAgIm5hbWUiOiAiUmVtb3ZlIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdWRmaXNoL0hpZGUtQ2xvY2stRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJyZW1vdmVjbG9ja0BzdWRmaXNoLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="},
+    "46": {"version": "1", "sha256": "1i7ig9jpcdd7nmk5l7zvk7y5bx7yk1m7679x0awzbr84yxchyrly", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBvciBoaWRlIGNsb2NrIGZyb20gdG9wIHBhbmVsLiIsCiAgIm5hbWUiOiAiUmVtb3ZlIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdWRmaXNoL0hpZGUtQ2xvY2stRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJyZW1vdmVjbG9ja0BzdWRmaXNoLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}
+  }}
+, {"uuid": "wintile-beyond@GrylledCheez.xyz", "name": "WinTile-Beyond", "pname": "wintile-beyond", "description": "This is a continuation of Wintile by @FmStrat.  The original version was abandoned after Gnome 44. This version works on Gnome 45 and 46.\n\nWinTile-Beyond is a hotkey driven window tiling system for GNOME that imitates the standard Win-Arrow keys of Windows 10, allowing you to maximize, maximize to sides, or 1/4 sized to corner across a single or multiple monitors using just Super+Arrow.\n\nWinTile-Beyond also supports:\n- 1-5 columns and 1-5 rows for standard or ultrawide monitors\n- Top/bottom half support\n- Mouse preview and snapping for placing windows\n- 'Maximize' mode, which adds/removes GNOME animations\n- 'Ultrawide-only' mode, to allow standard screens to have different cols/row than ultrawides\n- Portrait screens will automatically swap columns and rows\n- Add gaps around tiles to avoid the 'crowded elevator' feeling'\n- Ctrl+Super+Arrow to grow a tile in that direction if space is available\n- Ctrl+drag to drop a tile in a specific spot\n- Ctrl+Super+drag to draw a grid for the new tile", "link": "https://extensions.gnome.org/extension/6970/wintile-beyond/", "shell_version_map": {
+    "45": {"version": "2", "sha256": "1zld2ry18md7yjjiqmcrqw8ygy4r50lrc50cx8qga3wjcj68zpfm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldpblRpbGUtQmV5b25kIGlzIGEgaG90a2V5IGRyaXZlbiB3aW5kb3cgdGlsaW5nIHN5c3RlbSBmb3IgR05PTUUgdGhhdCBpbWl0YXRlcyB0aGUgc3RhbmRhcmQgV2luLUFycm93IGtleXMgb2YgV2luZG93cyAxMCwgYWxsb3dpbmcgeW91IHRvIG1heGltaXplLCBtYXhpbWl6ZSB0byBzaWRlcywgb3IgMS80IHNpemVkIHRvIGNvcm5lciBhY3Jvc3MgYSBzaW5nbGUgb3IgbXVsdGlwbGUgbW9uaXRvcnMgdXNpbmcganVzdCBTdXBlcitBcnJvdy5cblxuQXMgb2YgdjE3LCBXaW5UaWxlLUJleW9uZCBhbHNvIHN1cHBvcnRzOlxuLSAxLTUgY29sdW1ucyBhbmQgMS01IHJvd3MgZm9yIHN0YW5kYXJkIG9yIHVsdHJhd2lkZSBtb25pdG9yc1xuLSBUb3AvYm90dG9tIGhhbGYgc3VwcG9ydFxuLSBNb3VzZSBwcmV2aWV3IGFuZCBzbmFwcGluZyBmb3IgcGxhY2luZyB3aW5kb3dzXG4tICdNYXhpbWl6ZScgbW9kZSwgd2hpY2ggYWRkcy9yZW1vdmVzIEdOT01FIGFuaW1hdGlvbnNcbi0gJ1VsdHJhd2lkZS1vbmx5JyBtb2RlLCB0byBhbGxvdyBzdGFuZGFyZCBzY3JlZW5zIHRvIGhhdmUgZGlmZmVyZW50IGNvbHMvcm93IHRoYW4gdWx0cmF3aWRlc1xuLSBQb3J0cmFpdCBzY3JlZW5zIHdpbGwgYXV0b21hdGljYWxseSBzd2FwIGNvbHVtbnMgYW5kIHJvd3Ncbi0gQWRkIGdhcHMgYXJvdW5kIHRpbGVzIHRvIGF2b2lkIHRoZSAnY3Jvd2RlZCBlbGV2YXRvcicgZmVlbGluZydcbi0gQ3RybCtTdXBlcitBcnJvdyB0byBncm93IGEgdGlsZSBpbiB0aGF0IGRpcmVjdGlvbiBpZiBzcGFjZSBpcyBhdmFpbGFibGVcbi0gQ3RybCtkcmFnIHRvIGRyb3AgYSB0aWxlIGluIGEgc3BlY2lmaWMgc3BvdFxuLSBDdHJsK1N1cGVyK2RyYWcgdG8gZHJhdyBhIGdyaWQgZm9yIHRoZSBuZXcgdGlsZSIsCiAgIm5hbWUiOiAiV2luVGlsZS1CZXlvbmQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2ludGlsZS1iZXlvbmQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0dyeWxsZWRDaGVlei93aW50aWxlLWJleW9uZCIsCiAgInV1aWQiOiAid2ludGlsZS1iZXlvbmRAR3J5bGxlZENoZWV6Lnh5eiIsCiAgInZlcnNpb24iOiAyCn0="},
+    "46": {"version": "2", "sha256": "1zld2ry18md7yjjiqmcrqw8ygy4r50lrc50cx8qga3wjcj68zpfm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldpblRpbGUtQmV5b25kIGlzIGEgaG90a2V5IGRyaXZlbiB3aW5kb3cgdGlsaW5nIHN5c3RlbSBmb3IgR05PTUUgdGhhdCBpbWl0YXRlcyB0aGUgc3RhbmRhcmQgV2luLUFycm93IGtleXMgb2YgV2luZG93cyAxMCwgYWxsb3dpbmcgeW91IHRvIG1heGltaXplLCBtYXhpbWl6ZSB0byBzaWRlcywgb3IgMS80IHNpemVkIHRvIGNvcm5lciBhY3Jvc3MgYSBzaW5nbGUgb3IgbXVsdGlwbGUgbW9uaXRvcnMgdXNpbmcganVzdCBTdXBlcitBcnJvdy5cblxuQXMgb2YgdjE3LCBXaW5UaWxlLUJleW9uZCBhbHNvIHN1cHBvcnRzOlxuLSAxLTUgY29sdW1ucyBhbmQgMS01IHJvd3MgZm9yIHN0YW5kYXJkIG9yIHVsdHJhd2lkZSBtb25pdG9yc1xuLSBUb3AvYm90dG9tIGhhbGYgc3VwcG9ydFxuLSBNb3VzZSBwcmV2aWV3IGFuZCBzbmFwcGluZyBmb3IgcGxhY2luZyB3aW5kb3dzXG4tICdNYXhpbWl6ZScgbW9kZSwgd2hpY2ggYWRkcy9yZW1vdmVzIEdOT01FIGFuaW1hdGlvbnNcbi0gJ1VsdHJhd2lkZS1vbmx5JyBtb2RlLCB0byBhbGxvdyBzdGFuZGFyZCBzY3JlZW5zIHRvIGhhdmUgZGlmZmVyZW50IGNvbHMvcm93IHRoYW4gdWx0cmF3aWRlc1xuLSBQb3J0cmFpdCBzY3JlZW5zIHdpbGwgYXV0b21hdGljYWxseSBzd2FwIGNvbHVtbnMgYW5kIHJvd3Ncbi0gQWRkIGdhcHMgYXJvdW5kIHRpbGVzIHRvIGF2b2lkIHRoZSAnY3Jvd2RlZCBlbGV2YXRvcicgZmVlbGluZydcbi0gQ3RybCtTdXBlcitBcnJvdyB0byBncm93IGEgdGlsZSBpbiB0aGF0IGRpcmVjdGlvbiBpZiBzcGFjZSBpcyBhdmFpbGFibGVcbi0gQ3RybCtkcmFnIHRvIGRyb3AgYSB0aWxlIGluIGEgc3BlY2lmaWMgc3BvdFxuLSBDdHJsK1N1cGVyK2RyYWcgdG8gZHJhdyBhIGdyaWQgZm9yIHRoZSBuZXcgdGlsZSIsCiAgIm5hbWUiOiAiV2luVGlsZS1CZXlvbmQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2ludGlsZS1iZXlvbmQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0dyeWxsZWRDaGVlei93aW50aWxlLWJleW9uZCIsCiAgInV1aWQiOiAid2ludGlsZS1iZXlvbmRAR3J5bGxlZENoZWV6Lnh5eiIsCiAgInZlcnNpb24iOiAyCn0="}
+  }}
+, {"uuid": "remove-world-clocks@codemacabre.com", "name": "Remove World Clocks", "pname": "remove-world-clocks", "description": "GNOME shell extension to remove world clocks from the date menu", "link": "https://extensions.gnome.org/extension/6973/remove-world-clocks/", "shell_version_map": {
+    "45": {"version": "1", "sha256": "1xn0n8mckv2nr37m4rr4ml5spaq5iq7adq2vzszksc4flcblmgbg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byByZW1vdmUgd29ybGQgY2xvY2tzIGZyb20gdGhlIGRhdGUgbWVudSIsCiAgIm5hbWUiOiAiUmVtb3ZlIFdvcmxkIENsb2NrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29kZW1hY2FicmUvcmVtb3ZlLXdvcmxkLWNsb2NrcyIsCiAgInV1aWQiOiAicmVtb3ZlLXdvcmxkLWNsb2Nrc0Bjb2RlbWFjYWJyZS5jb20iLAogICJ2ZXJzaW9uIjogMQp9"},
+    "46": {"version": "1", "sha256": "1xn0n8mckv2nr37m4rr4ml5spaq5iq7adq2vzszksc4flcblmgbg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byByZW1vdmUgd29ybGQgY2xvY2tzIGZyb20gdGhlIGRhdGUgbWVudSIsCiAgIm5hbWUiOiAiUmVtb3ZlIFdvcmxkIENsb2NrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29kZW1hY2FicmUvcmVtb3ZlLXdvcmxkLWNsb2NrcyIsCiAgInV1aWQiOiAicmVtb3ZlLXdvcmxkLWNsb2Nrc0Bjb2RlbWFjYWJyZS5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}
+  }}
+, {"uuid": "vscode-search-provider@mrmarble.github.com", "name": "VSCode Search Provider", "pname": "vscode-search-provider", "description": "Search for your vscode workspaces easily. Supports insiders and vscodium. This extension is not affiliated, funded, or in any way associated with Microsoft and vscode software.", "link": "https://extensions.gnome.org/extension/6976/vscode-search-provider/", "shell_version_map": {
+    "45": {"version": "7", "sha256": "1ij3wa1qgdshq4ck6a3fzh7cwnq27f3mi2z71ivasc786bm6zvxz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBmb3IgeW91ciB2c2NvZGUgd29ya3NwYWNlcyBlYXNpbHkuIFN1cHBvcnRzIGluc2lkZXJzIGFuZCB2c2NvZGl1bS4gVGhpcyBleHRlbnNpb24gaXMgbm90IGFmZmlsaWF0ZWQsIGZ1bmRlZCwgb3IgaW4gYW55IHdheSBhc3NvY2lhdGVkIHdpdGggTWljcm9zb2Z0IGFuZCB2c2NvZGUgc29mdHdhcmUuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJtcm1hcmJsZSIKICB9LAogICJuYW1lIjogIlZTQ29kZSBTZWFyY2ggUHJvdmlkZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21ybWFyYmxlL3ZzY29kZS1zZWFyY2gtcHJvdmlkZXIiLAogICJ1dWlkIjogInZzY29kZS1zZWFyY2gtcHJvdmlkZXJAbXJtYXJibGUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="},
+    "46": {"version": "7", "sha256": "1ij3wa1qgdshq4ck6a3fzh7cwnq27f3mi2z71ivasc786bm6zvxz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBmb3IgeW91ciB2c2NvZGUgd29ya3NwYWNlcyBlYXNpbHkuIFN1cHBvcnRzIGluc2lkZXJzIGFuZCB2c2NvZGl1bS4gVGhpcyBleHRlbnNpb24gaXMgbm90IGFmZmlsaWF0ZWQsIGZ1bmRlZCwgb3IgaW4gYW55IHdheSBhc3NvY2lhdGVkIHdpdGggTWljcm9zb2Z0IGFuZCB2c2NvZGUgc29mdHdhcmUuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJtcm1hcmJsZSIKICB9LAogICJuYW1lIjogIlZTQ29kZSBTZWFyY2ggUHJvdmlkZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21ybWFyYmxlL3ZzY29kZS1zZWFyY2gtcHJvdmlkZXIiLAogICJ1dWlkIjogInZzY29kZS1zZWFyY2gtcHJvdmlkZXJAbXJtYXJibGUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}
+  }}
+, {"uuid": "ddc-brightness-contrast-extra-dimming@tzawezin.github.io", "name": "Monitor DDC Brightness/Contrast + Extra Dimming", "pname": "set-monitor-ddc-brightnesscontrast-extra-dimming", "description": "Control brightness and contrast with ddc and extra screen dimming with black overlay, It requires ddcutil to be installed, i2c permissions for non-root users configured.", "link": "https://extensions.gnome.org/extension/6985/set-monitor-ddc-brightnesscontrast-extra-dimming/", "shell_version_map": {
+    "40": {"version": "7", "sha256": "10zfsqssng040k2fmigib0rz7rfwr0qp5x0a66afz4sxnvzd89ii", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgYnJpZ2h0bmVzcyBhbmQgY29udHJhc3Qgd2l0aCBkZGMgYW5kIGV4dHJhIHNjcmVlbiBkaW1taW5nIHdpdGggYmxhY2sgb3ZlcmxheSwgSXQgcmVxdWlyZXMgZGRjdXRpbCB0byBiZSBpbnN0YWxsZWQsIGkyYyBwZXJtaXNzaW9ucyBmb3Igbm9uLXJvb3QgdXNlcnMgY29uZmlndXJlZC4iLAogICJuYW1lIjogIk1vbml0b3IgRERDIEJyaWdodG5lc3MvQ29udHJhc3QgKyBFeHRyYSBEaW1taW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90emF3ZXppbi9nbm9tZS1kZGMtYnJpZ2h0bmVzcy1jb250cmFzdC1leHRyYS1kaW1taW5nIiwKICAidXVpZCI6ICJkZGMtYnJpZ2h0bmVzcy1jb250cmFzdC1leHRyYS1kaW1taW5nQHR6YXdlemluLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3Cn0="},
+    "41": {"version": "7", "sha256": "10zfsqssng040k2fmigib0rz7rfwr0qp5x0a66afz4sxnvzd89ii", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgYnJpZ2h0bmVzcyBhbmQgY29udHJhc3Qgd2l0aCBkZGMgYW5kIGV4dHJhIHNjcmVlbiBkaW1taW5nIHdpdGggYmxhY2sgb3ZlcmxheSwgSXQgcmVxdWlyZXMgZGRjdXRpbCB0byBiZSBpbnN0YWxsZWQsIGkyYyBwZXJtaXNzaW9ucyBmb3Igbm9uLXJvb3QgdXNlcnMgY29uZmlndXJlZC4iLAogICJuYW1lIjogIk1vbml0b3IgRERDIEJyaWdodG5lc3MvQ29udHJhc3QgKyBFeHRyYSBEaW1taW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90emF3ZXppbi9nbm9tZS1kZGMtYnJpZ2h0bmVzcy1jb250cmFzdC1leHRyYS1kaW1taW5nIiwKICAidXVpZCI6ICJkZGMtYnJpZ2h0bmVzcy1jb250cmFzdC1leHRyYS1kaW1taW5nQHR6YXdlemluLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3Cn0="},
+    "42": {"version": "7", "sha256": "10zfsqssng040k2fmigib0rz7rfwr0qp5x0a66afz4sxnvzd89ii", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgYnJpZ2h0bmVzcyBhbmQgY29udHJhc3Qgd2l0aCBkZGMgYW5kIGV4dHJhIHNjcmVlbiBkaW1taW5nIHdpdGggYmxhY2sgb3ZlcmxheSwgSXQgcmVxdWlyZXMgZGRjdXRpbCB0byBiZSBpbnN0YWxsZWQsIGkyYyBwZXJtaXNzaW9ucyBmb3Igbm9uLXJvb3QgdXNlcnMgY29uZmlndXJlZC4iLAogICJuYW1lIjogIk1vbml0b3IgRERDIEJyaWdodG5lc3MvQ29udHJhc3QgKyBFeHRyYSBEaW1taW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90emF3ZXppbi9nbm9tZS1kZGMtYnJpZ2h0bmVzcy1jb250cmFzdC1leHRyYS1kaW1taW5nIiwKICAidXVpZCI6ICJkZGMtYnJpZ2h0bmVzcy1jb250cmFzdC1leHRyYS1kaW1taW5nQHR6YXdlemluLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3Cn0="},
+    "43": {"version": "7", "sha256": "10zfsqssng040k2fmigib0rz7rfwr0qp5x0a66afz4sxnvzd89ii", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgYnJpZ2h0bmVzcyBhbmQgY29udHJhc3Qgd2l0aCBkZGMgYW5kIGV4dHJhIHNjcmVlbiBkaW1taW5nIHdpdGggYmxhY2sgb3ZlcmxheSwgSXQgcmVxdWlyZXMgZGRjdXRpbCB0byBiZSBpbnN0YWxsZWQsIGkyYyBwZXJtaXNzaW9ucyBmb3Igbm9uLXJvb3QgdXNlcnMgY29uZmlndXJlZC4iLAogICJuYW1lIjogIk1vbml0b3IgRERDIEJyaWdodG5lc3MvQ29udHJhc3QgKyBFeHRyYSBEaW1taW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90emF3ZXppbi9nbm9tZS1kZGMtYnJpZ2h0bmVzcy1jb250cmFzdC1leHRyYS1kaW1taW5nIiwKICAidXVpZCI6ICJkZGMtYnJpZ2h0bmVzcy1jb250cmFzdC1leHRyYS1kaW1taW5nQHR6YXdlemluLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3Cn0="},
+    "44": {"version": "7", "sha256": "10zfsqssng040k2fmigib0rz7rfwr0qp5x0a66afz4sxnvzd89ii", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgYnJpZ2h0bmVzcyBhbmQgY29udHJhc3Qgd2l0aCBkZGMgYW5kIGV4dHJhIHNjcmVlbiBkaW1taW5nIHdpdGggYmxhY2sgb3ZlcmxheSwgSXQgcmVxdWlyZXMgZGRjdXRpbCB0byBiZSBpbnN0YWxsZWQsIGkyYyBwZXJtaXNzaW9ucyBmb3Igbm9uLXJvb3QgdXNlcnMgY29uZmlndXJlZC4iLAogICJuYW1lIjogIk1vbml0b3IgRERDIEJyaWdodG5lc3MvQ29udHJhc3QgKyBFeHRyYSBEaW1taW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90emF3ZXppbi9nbm9tZS1kZGMtYnJpZ2h0bmVzcy1jb250cmFzdC1leHRyYS1kaW1taW5nIiwKICAidXVpZCI6ICJkZGMtYnJpZ2h0bmVzcy1jb250cmFzdC1leHRyYS1kaW1taW5nQHR6YXdlemluLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3Cn0="}
+  }}
+, {"uuid": "keyboard-reset@galets", "name": "Keyboard Reset", "pname": "keyboard-reset", "description": "Reset keyboard to default layout on screensaver activation", "link": "https://extensions.gnome.org/extension/6994/keyboard-reset/", "shell_version_map": {
+    "41": {"version": "4", "sha256": "0x99yzhqggzwknj1qlml3hgk6wnxw5m1i0zp7fa0gfiw6id09bc6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2V0IGtleWJvYXJkIHRvIGRlZmF1bHQgbGF5b3V0IG9uIHNjcmVlbnNhdmVyIGFjdGl2YXRpb24iLAogICJuYW1lIjogIktleWJvYXJkIFJlc2V0IiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nYWxldHMvZ25vbWUta2V5Ym9hcmQtcmVzZXQiLAogICJ1dWlkIjogImtleWJvYXJkLXJlc2V0QGdhbGV0cyIsCiAgInZlcnNpb24iOiA0Cn0="},
+    "42": {"version": "4", "sha256": "0x99yzhqggzwknj1qlml3hgk6wnxw5m1i0zp7fa0gfiw6id09bc6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2V0IGtleWJvYXJkIHRvIGRlZmF1bHQgbGF5b3V0IG9uIHNjcmVlbnNhdmVyIGFjdGl2YXRpb24iLAogICJuYW1lIjogIktleWJvYXJkIFJlc2V0IiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nYWxldHMvZ25vbWUta2V5Ym9hcmQtcmVzZXQiLAogICJ1dWlkIjogImtleWJvYXJkLXJlc2V0QGdhbGV0cyIsCiAgInZlcnNpb24iOiA0Cn0="},
+    "43": {"version": "4", "sha256": "0x99yzhqggzwknj1qlml3hgk6wnxw5m1i0zp7fa0gfiw6id09bc6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2V0IGtleWJvYXJkIHRvIGRlZmF1bHQgbGF5b3V0IG9uIHNjcmVlbnNhdmVyIGFjdGl2YXRpb24iLAogICJuYW1lIjogIktleWJvYXJkIFJlc2V0IiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nYWxldHMvZ25vbWUta2V5Ym9hcmQtcmVzZXQiLAogICJ1dWlkIjogImtleWJvYXJkLXJlc2V0QGdhbGV0cyIsCiAgInZlcnNpb24iOiA0Cn0="},
+    "44": {"version": "4", "sha256": "0x99yzhqggzwknj1qlml3hgk6wnxw5m1i0zp7fa0gfiw6id09bc6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2V0IGtleWJvYXJkIHRvIGRlZmF1bHQgbGF5b3V0IG9uIHNjcmVlbnNhdmVyIGFjdGl2YXRpb24iLAogICJuYW1lIjogIktleWJvYXJkIFJlc2V0IiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nYWxldHMvZ25vbWUta2V5Ym9hcmQtcmVzZXQiLAogICJ1dWlkIjogImtleWJvYXJkLXJlc2V0QGdhbGV0cyIsCiAgInZlcnNpb24iOiA0Cn0="},
+    "45": {"version": "5", "sha256": "0d8ribxhaijvh4m6bzwn657h2hp2xslfyyc998d4y1anviaav5lj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2V0IGtleWJvYXJkIHRvIGRlZmF1bHQgbGF5b3V0IG9uIHNjcmVlbnNhdmVyIGFjdGl2YXRpb24iLAogICJuYW1lIjogIktleWJvYXJkIFJlc2V0IiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2FsZXRzL2dub21lLWtleWJvYXJkLXJlc2V0IiwKICAidXVpZCI6ICJrZXlib2FyZC1yZXNldEBnYWxldHMiLAogICJ2ZXJzaW9uIjogNQp9"},
+    "46": {"version": "5", "sha256": "0d8ribxhaijvh4m6bzwn657h2hp2xslfyyc998d4y1anviaav5lj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2V0IGtleWJvYXJkIHRvIGRlZmF1bHQgbGF5b3V0IG9uIHNjcmVlbnNhdmVyIGFjdGl2YXRpb24iLAogICJuYW1lIjogIktleWJvYXJkIFJlc2V0IiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2FsZXRzL2dub21lLWtleWJvYXJkLXJlc2V0IiwKICAidXVpZCI6ICJrZXlib2FyZC1yZXNldEBnYWxldHMiLAogICJ2ZXJzaW9uIjogNQp9"}
+  }}
+, {"uuid": "athan@goodm4ven", "name": "AthanTimes", "pname": "athantimes", "description": "Athan is a prayer time notification in Islam. And this is a notifier Gnome extension for Linux, plus a quick reminder for the Islamic Hijri date.\n\nIt's just another fork of the original (Azan) extension by [fahrinh]; for Shell 46.\n\nImportant Changes:\n- Position is hard-coded to 'center' for a status-indicator issue. (check the repo for details)", "link": "https://extensions.gnome.org/extension/6997/athantimes/", "shell_version_map": {
+    "46": {"version": "8", "sha256": "0g7km2xm8rzp1ilchcx6i0xn27hlqmz8z20ywfk2mps8pnn73i6c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkl0J3MganVzdCBhbm90aGVyIGZvcmsgb2YgdGhlIG9yaWdpbmFsIGV4dGVuc2lvbiBieSBbZmFocmluaF07IGZvciBzaGVsbCA0Ni5cblxuSW1wb3J0YW50IENoYW5nZXM6XG4tIFBvc2l0aW9uIGlzIGhhcmQtY29kZWQgdG8gJ2NlbnRlcicgZm9yIGEgc3RhdHVzLWluZGljYXRvciBpc3N1ZS4gKGNoZWNrIHRoZSByZXBvIGZvciBkZXRhaWxzKSIsCiAgIm5hbWUiOiAiQXRoYW5UaW1lcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hdGhhbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nb29kbTR2ZW4vYXRoYW4tZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhdGhhbkBnb29kbTR2ZW4iLAogICJ2ZXJzaW9uIjogOAp9"}
+  }}
+, {"uuid": "qs-touchpad-toggle@crystal", "name": "Quick Settings Touchpad Toggle", "pname": "quick-settings-touchpad-toggle", "description": "Completely disable the touchpad from the quick settings menu.", "link": "https://extensions.gnome.org/extension/7000/quick-settings-touchpad-toggle/", "shell_version_map": {
+    "43": {"version": "2", "sha256": "050299qjgfmc8dpr5mny8lfyr2vmli3rwm8kjfbi4dbmj5z66bh7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBsZXRlbHkgZGlzYWJsZSB0aGUgdG91Y2hwYWQgZnJvbSB0aGUgcXVpY2sgc2V0dGluZ3MgbWVudS4iLAogICJuYW1lIjogIlF1aWNrIFNldHRpbmdzIFRvdWNocGFkIFRvZ2dsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vY29kZWJlcmcub3JnL2NyeXN0YWwvZ25vbWUtcXMtdG91Y2hwYWQtdG9nZ2xlIiwKICAidXVpZCI6ICJxcy10b3VjaHBhZC10b2dnbGVAY3J5c3RhbCIsCiAgInZlcnNpb24iOiAyCn0="}
+  }}
+, {"uuid": "customisablebutton@devauxcedric.ext", "name": "Customisable Button", "pname": "customisable-button", "description": "A simple customisable button allowing to start, stop and monitor a command.", "link": "https://extensions.gnome.org/extension/7003/customisable-button/", "shell_version_map": {
+    "42": {"version": "2", "sha256": "0qvssgkzgbkri147lqzi6znlxrc2w350vwi8i899q2v43j2rglih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGN1c3RvbWlzYWJsZSBidXR0b24gYWxsb3dpbmcgdG8gc3RhcnQsIHN0b3AgYW5kIG1vbml0b3IgYSBjb21tYW5kLiIsCiAgIm5hbWUiOiAiQ3VzdG9taXNhYmxlIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9kZXZhdXhjZWRyaWMvY3VzdG9taXNhYmxlLWJ1dHRvbiIsCiAgInV1aWQiOiAiY3VzdG9taXNhYmxlYnV0dG9uQGRldmF1eGNlZHJpYy5leHQiLAogICJ2ZXJzaW9uIjogMgp9"}
+  }}
+, {"uuid": "custom-command-toggle@storageb.github.com", "name": "Custom Command Toggle", "pname": "custom-command-toggle", "description": "Run user defined terminal/shell commands and launch custom scripts using a customizable quick toggle button.", "link": "https://extensions.gnome.org/extension/7012/custom-command-toggle/", "shell_version_map": {
+    "45": {"version": "2", "sha256": "01j7z4y513hanv1615njwgg5xzb8j63wkbgldjl1lpqj0qpyr7wg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJ1biB1c2VyIGRlZmluZWQgdGVybWluYWwvc2hlbGwgY29tbWFuZHMgYW5kIGxhdW5jaCBjdXN0b20gc2NyaXB0cyB1c2luZyBhIGN1c3RvbWl6YWJsZSBxdWljayB0b2dnbGUgYnV0dG9uLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiU3RvcmFnZUIiCiAgfSwKICAibmFtZSI6ICJDdXN0b20gQ29tbWFuZCBUb2dnbGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3VzdG9tLWNvbW1hbmQtdG9nZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TdG9yYWdlQi9jdXN0b20tY29tbWFuZC10b2dnbGUiLAogICJ1dWlkIjogImN1c3RvbS1jb21tYW5kLXRvZ2dsZUBzdG9yYWdlYi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
+    "46": {"version": "3", "sha256": "0yi1cpcqmx46nylv1cl3vqzzdraszra53zgggi3mbnrl00azrx3p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJ1biB1c2VyIGRlZmluZWQgdGVybWluYWwvc2hlbGwgY29tbWFuZHMgYW5kIGxhdW5jaCBjdXN0b20gc2NyaXB0cyB1c2luZyBhIGN1c3RvbWl6YWJsZSBxdWljayB0b2dnbGUgYnV0dG9uLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiU3RvcmFnZUIiCiAgfSwKICAibmFtZSI6ICJDdXN0b20gQ29tbWFuZCBUb2dnbGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3VzdG9tLWNvbW1hbmQtdG9nZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1N0b3JhZ2VCL2N1c3RvbS1jb21tYW5kLXRvZ2dsZSIsCiAgInV1aWQiOiAiY3VzdG9tLWNvbW1hbmQtdG9nZ2xlQHN0b3JhZ2ViLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}
+  }}
+, {"uuid": "fullscreen-button@domgregori.github.com", "name": "Fullscreen Button", "pname": "fullscreen-button", "description": "A button in the status bar to expand current window to fullscreen. Useful for tablets.", "link": "https://extensions.gnome.org/extension/7015/fullscreen-button/", "shell_version_map": {
+    "41": {"version": "5", "sha256": "00nr3s40zvywi6vhk5hrc0pdmqw51bf77bax7mg2jrl6al37i89j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYnV0dG9uIGluIHRoZSBzdGF0dXMgYmFyIHRvIGV4cGFuZCBjdXJyZW50IHdpbmRvdyB0byBmdWxsc2NyZWVuLiBVc2VmdWwgZm9yIHRhYmxldHMuIiwKICAibmFtZSI6ICJGdWxsc2NyZWVuIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kb21ncmVnb3JpL2Z1bGxzY3JlZW4tYnV0dG9uIiwKICAidXVpZCI6ICJmdWxsc2NyZWVuLWJ1dHRvbkBkb21ncmVnb3JpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"},
+    "42": {"version": "5", "sha256": "00nr3s40zvywi6vhk5hrc0pdmqw51bf77bax7mg2jrl6al37i89j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYnV0dG9uIGluIHRoZSBzdGF0dXMgYmFyIHRvIGV4cGFuZCBjdXJyZW50IHdpbmRvdyB0byBmdWxsc2NyZWVuLiBVc2VmdWwgZm9yIHRhYmxldHMuIiwKICAibmFtZSI6ICJGdWxsc2NyZWVuIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kb21ncmVnb3JpL2Z1bGxzY3JlZW4tYnV0dG9uIiwKICAidXVpZCI6ICJmdWxsc2NyZWVuLWJ1dHRvbkBkb21ncmVnb3JpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"},
+    "43": {"version": "5", "sha256": "00nr3s40zvywi6vhk5hrc0pdmqw51bf77bax7mg2jrl6al37i89j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYnV0dG9uIGluIHRoZSBzdGF0dXMgYmFyIHRvIGV4cGFuZCBjdXJyZW50IHdpbmRvdyB0byBmdWxsc2NyZWVuLiBVc2VmdWwgZm9yIHRhYmxldHMuIiwKICAibmFtZSI6ICJGdWxsc2NyZWVuIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kb21ncmVnb3JpL2Z1bGxzY3JlZW4tYnV0dG9uIiwKICAidXVpZCI6ICJmdWxsc2NyZWVuLWJ1dHRvbkBkb21ncmVnb3JpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"},
+    "44": {"version": "5", "sha256": "00nr3s40zvywi6vhk5hrc0pdmqw51bf77bax7mg2jrl6al37i89j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYnV0dG9uIGluIHRoZSBzdGF0dXMgYmFyIHRvIGV4cGFuZCBjdXJyZW50IHdpbmRvdyB0byBmdWxsc2NyZWVuLiBVc2VmdWwgZm9yIHRhYmxldHMuIiwKICAibmFtZSI6ICJGdWxsc2NyZWVuIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kb21ncmVnb3JpL2Z1bGxzY3JlZW4tYnV0dG9uIiwKICAidXVpZCI6ICJmdWxsc2NyZWVuLWJ1dHRvbkBkb21ncmVnb3JpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"},
+    "45": {"version": "6", "sha256": "1b29wjwligs2gsdqwf4g3lx51gr3nzs84jz9l4a8hw19wkx9qqrc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYnV0dG9uIGluIHRoZSBzdGF0dXMgYmFyIHRvIGV4cGFuZCBjdXJyZW50IHdpbmRvdyB0byBmdWxsc2NyZWVuLiBVc2VmdWwgZm9yIHRhYmxldHMuIiwKICAibmFtZSI6ICJGdWxsc2NyZWVuIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZG9tZ3JlZ29yaS9mdWxsc2NyZWVuLWJ1dHRvbiIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbi1idXR0b25AZG9tZ3JlZ29yaS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="},
+    "46": {"version": "6", "sha256": "1b29wjwligs2gsdqwf4g3lx51gr3nzs84jz9l4a8hw19wkx9qqrc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYnV0dG9uIGluIHRoZSBzdGF0dXMgYmFyIHRvIGV4cGFuZCBjdXJyZW50IHdpbmRvdyB0byBmdWxsc2NyZWVuLiBVc2VmdWwgZm9yIHRhYmxldHMuIiwKICAibmFtZSI6ICJGdWxsc2NyZWVuIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZG9tZ3JlZ29yaS9mdWxsc2NyZWVuLWJ1dHRvbiIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbi1idXR0b25AZG9tZ3JlZ29yaS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}
+  }}
+, {"uuid": "gpu-switcher-supergfxctl@chikobara.github.io", "name": "GPU Supergfxctl Switch", "pname": "gpu-supergfxctl-switch", "description": "Simple GPU Profile switcher Gnome-Shell-Extension for ASUS laptops using Supergfxctl", "link": "https://extensions.gnome.org/extension/7018/gpu-supergfxctl-switch/", "shell_version_map": {
+    "46": {"version": "3", "sha256": "0sbpa2avmc21b8k0g29nb9vf4lxm1wkph82g9r9q3lx6vmrpcagl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHUFUgUHJvZmlsZSBzd2l0Y2hlciBHbm9tZS1TaGVsbC1FeHRlbnNpb24gZm9yIEFTVVMgbGFwdG9wcyB1c2luZyBTdXBlcmdmeGN0bCIsCiAgIm5hbWUiOiAiR1BVIFN1cGVyZ2Z4Y3RsIFN3aXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jaGlrb2JhcmEvR1BVLVN3aXRjaGVyLVN1cGVyZ2Z4Y3RsIiwKICAidXVpZCI6ICJncHUtc3dpdGNoZXItc3VwZXJnZnhjdGxAY2hpa29iYXJhLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="}
+  }}
+, {"uuid": "custom-command-list@storageb.github.com", "name": "Custom Command Menu", "pname": "custom-command-list", "description": "Run user defined terminal/shell commands by selecting them from a customizable drop-down menu at the top bar.", "link": "https://extensions.gnome.org/extension/7024/custom-command-list/", "shell_version_map": {
+    "45": {"version": "1", "sha256": "1wab274i0s3wzzhm17harzz9yb1wfzyyx40ar6m0fndn62bdd22x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJ1biB1c2VyIGRlZmluZWQgdGVybWluYWwvc2hlbGwgY29tbWFuZHMgYnkgc2VsZWN0aW5nIHRoZW0gZnJvbSBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBhdCB0aGUgdG9wIGJhci4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogIlN0b3JhZ2VCIgogIH0sCiAgIm5hbWUiOiAiQ3VzdG9tIENvbW1hbmQgTGlzdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20tY29tbWFuZC1saXN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TdG9yYWdlQi9jdXN0b20tY29tbWFuZC1saXN0IiwKICAidXVpZCI6ICJjdXN0b20tY29tbWFuZC1saXN0QHN0b3JhZ2ViLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"},
+    "46": {"version": "1", "sha256": "1wab274i0s3wzzhm17harzz9yb1wfzyyx40ar6m0fndn62bdd22x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJ1biB1c2VyIGRlZmluZWQgdGVybWluYWwvc2hlbGwgY29tbWFuZHMgYnkgc2VsZWN0aW5nIHRoZW0gZnJvbSBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBhdCB0aGUgdG9wIGJhci4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogIlN0b3JhZ2VCIgogIH0sCiAgIm5hbWUiOiAiQ3VzdG9tIENvbW1hbmQgTGlzdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20tY29tbWFuZC1saXN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TdG9yYWdlQi9jdXN0b20tY29tbWFuZC1saXN0IiwKICAidXVpZCI6ICJjdXN0b20tY29tbWFuZC1saXN0QHN0b3JhZ2ViLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}
+  }}
+, {"uuid": "eye-on-cursor@djinnalexio.github.io", "name": "Eye on Cursor", "pname": "eye-on-cursor", "description": "Let your desktop \"keep an eye\" on your mouse! And with the included cursor indicator, keep track of your pointer's every action!\n\nTry Eye on Cursor, a fun and practical extension that gives your panel eyes that constantly follow your mouse. This quirky feature, combined with a highly customizable mouse tracker that highlights clicks, makes it easier than ever to monitor your mouse movements, ensuring your pointer gets all the attention it needs.\n\nThis extension is the latest version of 'Eye and Mouse Extended' by Alexey Lovchikov.", "link": "https://extensions.gnome.org/extension/7036/eye-on-cursor/", "shell_version_map": {
+    "45": {"version": "4", "sha256": "0854q4z1mfrrjg6cgziq8qwykgmm41wjrh7q5ckjggyvzpxrjlj2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldCB5b3VyIGRlc2t0b3AgXCJrZWVwIGFuIGV5ZVwiIG9uIHlvdXIgbW91c2UhIEFuZCB3aXRoIHRoZSBpbmNsdWRlZCBjdXJzb3IgaW5kaWNhdG9yLCBrZWVwIHRyYWNrIG9mIHlvdXIgcG9pbnRlcidzIGV2ZXJ5IGFjdGlvbiFcblxuVHJ5IEV5ZSBvbiBDdXJzb3IsIGEgZnVuIGFuZCBwcmFjdGljYWwgZXh0ZW5zaW9uIHRoYXQgZ2l2ZXMgeW91ciBwYW5lbCBleWVzIHRoYXQgY29uc3RhbnRseSBmb2xsb3cgeW91ciBtb3VzZS4gVGhpcyBxdWlya3kgZmVhdHVyZSwgY29tYmluZWQgd2l0aCBhIGhpZ2hseSBjdXN0b21pemFibGUgbW91c2UgdHJhY2tlciB0aGF0IGhpZ2hsaWdodHMgY2xpY2tzLCBtYWtlcyBpdCBlYXNpZXIgdGhhbiBldmVyIHRvIG1vbml0b3IgeW91ciBtb3VzZSBtb3ZlbWVudHMsIGVuc3VyaW5nIHlvdXIgcG9pbnRlciBnZXRzIGFsbCB0aGUgYXR0ZW50aW9uIGl0IG5lZWRzLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgJ0V5ZSBhbmQgTW91c2UgRXh0ZW5kZWQnIGJ5IEFsZXhleSBMb3ZjaGlrb3YuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZXllLW9uLWN1cnNvciIsCiAgIm5hbWUiOiAiRXllIG9uIEN1cnNvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5leWUtb24tY3Vyc29yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kamlubmFsZXhpby9leWUtb24tY3Vyc29yLyIsCiAgInV1aWQiOiAiZXllLW9uLWN1cnNvckBkamlubmFsZXhpby5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNCwKICAidmVyc2lvbi1uYW1lIjogIjEuMS4xIgp9"},
+    "46": {"version": "4", "sha256": "0854q4z1mfrrjg6cgziq8qwykgmm41wjrh7q5ckjggyvzpxrjlj2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldCB5b3VyIGRlc2t0b3AgXCJrZWVwIGFuIGV5ZVwiIG9uIHlvdXIgbW91c2UhIEFuZCB3aXRoIHRoZSBpbmNsdWRlZCBjdXJzb3IgaW5kaWNhdG9yLCBrZWVwIHRyYWNrIG9mIHlvdXIgcG9pbnRlcidzIGV2ZXJ5IGFjdGlvbiFcblxuVHJ5IEV5ZSBvbiBDdXJzb3IsIGEgZnVuIGFuZCBwcmFjdGljYWwgZXh0ZW5zaW9uIHRoYXQgZ2l2ZXMgeW91ciBwYW5lbCBleWVzIHRoYXQgY29uc3RhbnRseSBmb2xsb3cgeW91ciBtb3VzZS4gVGhpcyBxdWlya3kgZmVhdHVyZSwgY29tYmluZWQgd2l0aCBhIGhpZ2hseSBjdXN0b21pemFibGUgbW91c2UgdHJhY2tlciB0aGF0IGhpZ2hsaWdodHMgY2xpY2tzLCBtYWtlcyBpdCBlYXNpZXIgdGhhbiBldmVyIHRvIG1vbml0b3IgeW91ciBtb3VzZSBtb3ZlbWVudHMsIGVuc3VyaW5nIHlvdXIgcG9pbnRlciBnZXRzIGFsbCB0aGUgYXR0ZW50aW9uIGl0IG5lZWRzLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgJ0V5ZSBhbmQgTW91c2UgRXh0ZW5kZWQnIGJ5IEFsZXhleSBMb3ZjaGlrb3YuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZXllLW9uLWN1cnNvciIsCiAgIm5hbWUiOiAiRXllIG9uIEN1cnNvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5leWUtb24tY3Vyc29yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kamlubmFsZXhpby9leWUtb24tY3Vyc29yLyIsCiAgInV1aWQiOiAiZXllLW9uLWN1cnNvckBkamlubmFsZXhpby5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNCwKICAidmVyc2lvbi1uYW1lIjogIjEuMS4xIgp9"}
+  }}
+, {"uuid": "day-progress@arcaege.github.io", "name": "Day Progress", "pname": "day-progress", "description": "Displays a (somewhat) customisable progress bar of your day in the top panel to help you track your time.", "link": "https://extensions.gnome.org/extension/7042/day-progress/", "shell_version_map": {
+    "46": {"version": "9", "sha256": "1adm4ikn9ra81cix83n8krhyaa6axfa900mvcajkqxi05w0v6vj0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGEgKHNvbWV3aGF0KSBjdXN0b21pc2FibGUgcHJvZ3Jlc3MgYmFyIG9mIHlvdXIgZGF5IGluIHRoZSB0b3AgcGFuZWwgdG8gaGVscCB5b3UgdHJhY2sgeW91ciB0aW1lLiIsCiAgIm5hbWUiOiAiRGF5IFByb2dyZXNzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRheS1wcm9ncmVzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9BcmNhRWdlL2RheS1wcm9ncmVzcyIsCiAgInV1aWQiOiAiZGF5LXByb2dyZXNzQGFyY2FlZ2UuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDkKfQ=="}
+  }}
+, {"uuid": "runandroidemulators@mateusz1913.dev", "name": "Run Android Emulators", "pname": "run-android-emulators", "description": "Run android emulators from Quick Settings", "link": "https://extensions.gnome.org/extension/7051/run-android-emulators/", "shell_version_map": {
+    "45": {"version": "2", "sha256": "1jw9w7nqv4z8aclrqsz7pn49p0ibh8ngxdhcjlcx8m68y1cyqbq1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJ1biBhbmRyb2lkIGVtdWxhdG9ycyBmcm9tIFF1aWNrIFNldHRpbmdzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXJ1bmFuZHJvaWRlbXVsYXRvcnMiLAogICJuYW1lIjogIlJ1biBBbmRyb2lkIEVtdWxhdG9ycyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ydW5hbmRyb2lkZW11bGF0b3JzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9NYXRldXN6X01lZHJlay9ydW5hbmRyb2lkZW11bGF0b3JzIiwKICAidXVpZCI6ICJydW5hbmRyb2lkZW11bGF0b3JzQG1hdGV1c3oxOTEzLmRldiIsCiAgInZlcnNpb24iOiAyCn0="},
+    "46": {"version": "2", "sha256": "1jw9w7nqv4z8aclrqsz7pn49p0ibh8ngxdhcjlcx8m68y1cyqbq1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJ1biBhbmRyb2lkIGVtdWxhdG9ycyBmcm9tIFF1aWNrIFNldHRpbmdzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXJ1bmFuZHJvaWRlbXVsYXRvcnMiLAogICJuYW1lIjogIlJ1biBBbmRyb2lkIEVtdWxhdG9ycyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ydW5hbmRyb2lkZW11bGF0b3JzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9NYXRldXN6X01lZHJlay9ydW5hbmRyb2lkZW11bGF0b3JzIiwKICAidXVpZCI6ICJydW5hbmRyb2lkZW11bGF0b3JzQG1hdGV1c3oxOTEzLmRldiIsCiAgInZlcnNpb24iOiAyCn0="}
+  }}
+, {"uuid": "fw-fanctrl@ayuso.me", "name": "fw-fanctrl", "pname": "fw-fanctrl", "description": "Fan Control for Framework. \n\nThis extension is not affiliated, funded, or in any way associated with Framework Computer.", "link": "https://extensions.gnome.org/extension/7053/fw-fanctrl/", "shell_version_map": {
+    "46": {"version": "4", "sha256": "1dhg1vrjvi47ls9z2afbpk6jvrvn85d00idmvxgbbf1ys632yh4y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZhbiBDb250cm9sIGZvciBGcmFtZXdvcmsuIFRoaXMgZXh0ZW5zaW9uIGlzIG5vdCBhZmZpbGlhdGVkLCBmdW5kZWQsIG9yIGluIGFueSB3YXkgYXNzb2NpYXRlZCB3aXRoIEZyYW1ld29yayBDb21wdXRlci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmdy1mYW5jdHJsQGF5dXNvLm1lIiwKICAibmFtZSI6ICJmdy1mYW5jdHJsIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ3LWZhbmN0cmwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam9heC9mdy1mYW5jdHJsLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZnctZmFuY3RybEBheXVzby5tZSIsCiAgInZlcnNpb24iOiA0Cn0="}
   }}
-, {"uuid": "boostvolume@shaquib.dev", "name": "Volume Booster", "pname": "boost-volume", "description": "Boosts volume above limits", "link": "https://extensions.gnome.org/extension/6928/boost-volume/", "shell_version_map": {
-    "46": {"version": "6", "sha256": "1z4baifmz6q3h1vkm2196z08nh8z3pp2w8rxcgy7xbsmbppr9i23", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJvb3N0cyB2b2x1bWUgYWJvdmUgbGltaXRzIiwKICAibmFtZSI6ICJCb29zdCBWb2x1bWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2hhcXVpYmltZGFkL2dub21lX2V4dF92b2x1bWVfYm9vc3QiLAogICJ1dWlkIjogImJvb3N0dm9sdW1lQHNoYXF1aWIuZGV2IiwKICAidmVyc2lvbiI6IDYKfQ=="}
+, {"uuid": "kando-integration@kando-menu.github.io", "name": "Kando Integration", "pname": "kando-integration", "description": "This extension is required for Kando to work on Wayland. It allows Kando to bind global shortcuts, and provides information about your currently focused application window and the position of your mouse pointer.", "link": "https://extensions.gnome.org/extension/7068/kando-integration/", "shell_version_map": {
+    "45": {"version": "4", "sha256": "08dnql29rzsn8cl531xmz88mw2q29g581lhmv1i6743y2iq9b2mx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGlzIHJlcXVpcmVkIGZvciBLYW5kbyB0byB3b3JrIG9uIFdheWxhbmQuIEl0IGFsbG93cyBLYW5kbyB0byBiaW5kIGdsb2JhbCBzaG9ydGN1dHMsIGFuZCBwcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIGN1cnJlbnRseSBmb2N1c2VkIGFwcGxpY2F0aW9uIHdpbmRvdyBhbmQgdGhlIHBvc2l0aW9uIG9mIHlvdXIgbW91c2UgcG9pbnRlci4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInNjaG5lZWdhbnMiLAogICAgImtvZmkiOiAic2NobmVlZ2FucyIsCiAgICAicGF5cGFsIjogInNpbW9uc2NobmVlZ2FucyIKICB9LAogICJuYW1lIjogIkthbmRvIEludGVncmF0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmthbmRvLWludGVncmF0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYW5kby1tZW51IiwKICAidXVpZCI6ICJrYW5kby1pbnRlZ3JhdGlvbkBrYW5kby1tZW51LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA0LAogICJ2ZXJzaW9uLW5hbWUiOiAidjAuMy4xIgp9"},
+    "46": {"version": "4", "sha256": "08dnql29rzsn8cl531xmz88mw2q29g581lhmv1i6743y2iq9b2mx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGlzIHJlcXVpcmVkIGZvciBLYW5kbyB0byB3b3JrIG9uIFdheWxhbmQuIEl0IGFsbG93cyBLYW5kbyB0byBiaW5kIGdsb2JhbCBzaG9ydGN1dHMsIGFuZCBwcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIGN1cnJlbnRseSBmb2N1c2VkIGFwcGxpY2F0aW9uIHdpbmRvdyBhbmQgdGhlIHBvc2l0aW9uIG9mIHlvdXIgbW91c2UgcG9pbnRlci4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInNjaG5lZWdhbnMiLAogICAgImtvZmkiOiAic2NobmVlZ2FucyIsCiAgICAicGF5cGFsIjogInNpbW9uc2NobmVlZ2FucyIKICB9LAogICJuYW1lIjogIkthbmRvIEludGVncmF0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmthbmRvLWludGVncmF0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYW5kby1tZW51IiwKICAidXVpZCI6ICJrYW5kby1pbnRlZ3JhdGlvbkBrYW5kby1tZW51LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA0LAogICJ2ZXJzaW9uLW5hbWUiOiAidjAuMy4xIgp9"}
   }}
 ]
diff --git a/pkgs/desktops/gnome/extensions/gsconnect/default.nix b/pkgs/desktops/gnome/extensions/gsconnect/default.nix
index 3401db037edaa..ca5c939de2638 100644
--- a/pkgs/desktops/gnome/extensions/gsconnect/default.nix
+++ b/pkgs/desktops/gnome/extensions/gsconnect/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , substituteAll
 , openssl
 , gsound
diff --git a/pkgs/desktops/gnome/extensions/sound-output-device-chooser/default.nix b/pkgs/desktops/gnome/extensions/sound-output-device-chooser/default.nix
index 71deb73c2990b..4ec00ee9f149e 100644
--- a/pkgs/desktops/gnome/extensions/sound-output-device-chooser/default.nix
+++ b/pkgs/desktops/gnome/extensions/sound-output-device-chooser/default.nix
@@ -1,7 +1,6 @@
 { lib, stdenv
 , substituteAll
 , fetchFromGitHub
-, fetchpatch
 , libpulseaudio
 , python3
 }:
diff --git a/pkgs/desktops/gnome/extensions/update-extensions.py b/pkgs/desktops/gnome/extensions/update-extensions.py
index 35e0c47d60488..ef6687a06f736 100755
--- a/pkgs/desktops/gnome/extensions/update-extensions.py
+++ b/pkgs/desktops/gnome/extensions/update-extensions.py
@@ -9,7 +9,7 @@ import urllib.error
 import urllib.request
 from operator import itemgetter
 from pathlib import Path
-from typing import List, Dict, Optional, Any, Tuple
+from typing import List, Dict, Optional, Any, Tuple, Set
 
 # We don't want all those deprecated legacy extensions
 # Group extensions by GNOME "major" version for compatibility reasons
@@ -302,15 +302,21 @@ if __name__ == "__main__":
         json.load(out)
 
     with open(updater_dir_path / "collisions.json", "w") as out:
+        # Find the name collisions only for the last 3 shell versions
+        last_3_versions = sorted(supported_versions.keys(), key=lambda v: float(v), reverse=True)[:3]
+        package_name_registry_for_versions = [v for k, v in package_name_registry.items() if k in last_3_versions]
+        # Merge all package names into a single dictionary
+        package_name_registry_filtered: Dict[PackageName, Set[Uuid]] = {}
+        for pkgs in package_name_registry_for_versions:
+            for pname, uuids in pkgs.items():
+                if pname not in package_name_registry_filtered:
+                    package_name_registry_filtered[pname] = set()
+                package_name_registry_filtered[pname].update(uuids)
         # Filter out those that are not duplicates
-        package_name_registry_filtered: Dict[ShellVersion, Dict[PackageName, List[Uuid]]] = {
-            # The outer level keys are shell versions
-            shell_version: {
-                # The inner keys are extension names, with a list of all extensions with that name as value.
-                pname: extensions for pname, extensions in collisions.items() if len(extensions) > 1
-            } for shell_version, collisions in package_name_registry.items()
-        }
-        json.dump(package_name_registry_filtered, out, indent=2, ensure_ascii=False)
+        package_name_registry_filtered = {k: v for k, v in package_name_registry_filtered.items() if len(v) > 1}
+        # Convert set to list
+        collisions: Dict[PackageName, List[Uuid]] = {k: list(v) for k, v in package_name_registry_filtered.items()}
+        json.dump(collisions, out, indent=2, ensure_ascii=False)
         out.write("\n")
 
     logging.info(
diff --git a/pkgs/desktops/gnome/games/aisleriot/default.nix b/pkgs/desktops/gnome/games/aisleriot/default.nix
index dfba82308d1ac..4e995a5098d17 100644
--- a/pkgs/desktops/gnome/games/aisleriot/default.nix
+++ b/pkgs/desktops/gnome/games/aisleriot/default.nix
@@ -16,16 +16,16 @@
 , yelp-tools
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "aisleriot";
-  version = "3.22.32";
+  version = "3.22.33";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
     repo = "aisleriot";
-    rev = version;
-    sha256 = "sha256-+U/EsKTZjWa05DbILWAxqIpMcZ0DP0l4LIYxM2wCFdM=";
+    rev = finalAttrs.version;
+    sha256 = "sha256-HylhDBgkAJrrs/r42v3aDNR8mBJaqnJHyY7T3QW1eWg=";
   };
 
   nativeBuildInputs = [
@@ -64,10 +64,10 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/aisleriot";
-    description = "A collection of patience games written in guile scheme";
+    description = "Collection of patience games written in guile scheme";
     mainProgram = "sol";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/desktops/gnome/misc/geary/default.nix b/pkgs/desktops/gnome/misc/geary/default.nix
index e2cbaaa6da89b..461402dda8b3d 100644
--- a/pkgs/desktops/gnome/misc/geary/default.nix
+++ b/pkgs/desktops/gnome/misc/geary/default.nix
@@ -47,11 +47,11 @@
 
 stdenv.mkDerivation rec {
   pname = "geary";
-  version = "44.1";
+  version = "46.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "fRHLbhxQThCMLckaoiVqRATcq+fRyHPY1glOLfM1onc=";
+    sha256 = "r60VEwKBfd8Ji15BbnrH8tXupWejuAu5C9PGKv0TuaE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/misc/gnome-tweaks/default.nix b/pkgs/desktops/gnome/misc/gnome-tweaks/default.nix
index a5254d1bbcf66..a145e9e2d8e3b 100644
--- a/pkgs/desktops/gnome/misc/gnome-tweaks/default.nix
+++ b/pkgs/desktops/gnome/misc/gnome-tweaks/default.nix
@@ -86,7 +86,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/gnome-tweaks";
-    description = "A tool to customize advanced GNOME 3 options";
+    description = "Tool to customize advanced GNOME 3 options";
     mainProgram = "gnome-tweaks";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
diff --git a/pkgs/desktops/gnustep/back/default.nix b/pkgs/desktops/gnustep/back/default.nix
index fc3bc9bed928e..247c20ed69f08 100644
--- a/pkgs/desktops/gnustep/back/default.nix
+++ b/pkgs/desktops/gnustep/back/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation (finalAttrs: {
   buildInputs = [ cairo base gui fontconfig freetype libXft libXmu ];
 
   meta = {
-    description = "A generic backend for GNUstep";
+    description = "Generic backend for GNUstep";
     mainProgram = "gpbs";
     homepage = "https://gnustep.github.io/";
     license = lib.licenses.lgpl2Plus;
diff --git a/pkgs/desktops/gnustep/base/default.nix b/pkgs/desktops/gnustep/base/default.nix
index acda20c817d63..9d47bb7ee9546 100644
--- a/pkgs/desktops/gnustep/base/default.nix
+++ b/pkgs/desktops/gnustep/base/default.nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     changelog = "https://github.com/gnustep/libs-base/releases/tag/base-${builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version}";
-    description = "An implementation of AppKit and Foundation libraries of OPENSTEP and Cocoa";
+    description = "Implementation of AppKit and Foundation libraries of OPENSTEP and Cocoa";
     homepage = "https://gnustep.github.io/";
     license = lib.licenses.lgpl2Plus;
     maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
diff --git a/pkgs/desktops/gnustep/gui/default.nix b/pkgs/desktops/gnustep/gui/default.nix
index 448f4c60136ad..c1e01f6f37059 100644
--- a/pkgs/desktops/gnustep/gui/default.nix
+++ b/pkgs/desktops/gnustep/gui/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
   meta = {
     changelog = "https://github.com/gnustep/libs-gui/releases/tag/gui-${builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version}";
-    description = "A GUI class library of GNUstep";
+    description = "GUI class library of GNUstep";
     homepage = "https://gnustep.github.io/";
     license = lib.licenses.lgpl2Plus;
     maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
diff --git a/pkgs/desktops/gnustep/gworkspace/default.nix b/pkgs/desktops/gnustep/gworkspace/default.nix
index d2343dfb0113b..5e4877706ec8a 100644
--- a/pkgs/desktops/gnustep/gworkspace/default.nix
+++ b/pkgs/desktops/gnustep/gworkspace/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation (finalAttrs: {
   configureFlags = [ "--with-inotify" ];
 
   meta = {
-    description = "A workspace manager for GNUstep";
+    description = "Workspace manager for GNUstep";
     homepage = "https://gnustep.github.io/";
     license = lib.licenses.lgpl2Plus;
     mainProgram = "GWorkspace";
diff --git a/pkgs/desktops/gnustep/make/default.nix b/pkgs/desktops/gnustep/make/default.nix
index 290e3004497fd..32dda5f648389 100644
--- a/pkgs/desktops/gnustep/make/default.nix
+++ b/pkgs/desktops/gnustep/make/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnustep-make";
-  version = "2.9.1";
+  version = "2.9.2";
 
   src = fetchurl {
     url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-make-${finalAttrs.version}.tar.gz";
-    sha256 = "sha256-w9bnDPFWsn59HtJQHFffP5bidIjOLzUbk+R5xYwB6uc=";
+    sha256 = "sha256-9UDfnw4drrPSOwjhSyBLKkbx0KQAXLFxyVMjQTgG5OE=";
   };
 
   configureFlags = [
@@ -36,7 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     changelog = "https://github.com/gnustep/tools-make/releases/tag/make-${builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version}";
-    description = "A build manager for GNUstep";
+    description = "Build manager for GNUstep";
     homepage = "https://gnustep.github.io/";
     license = lib.licenses.lgpl2Plus;
     maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
diff --git a/pkgs/desktops/gnustep/systempreferences/default.nix b/pkgs/desktops/gnustep/systempreferences/default.nix
index c08ad0fc8dbc2..079653c1983b2 100644
--- a/pkgs/desktops/gnustep/systempreferences/default.nix
+++ b/pkgs/desktops/gnustep/systempreferences/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation (finalAttrs: {
   buildInputs = [ back base gui ];
 
   meta = {
-    description = "The settings manager for the GNUstep environment and its applications";
+    description = "Settings manager for the GNUstep environment and its applications";
     homepage = "https://gnustep.github.io/";
     license = lib.licenses.lgpl2Plus;
     mainProgram = "SystemPreferences";
diff --git a/pkgs/desktops/lomiri/applications/lomiri-filemanager-app/default.nix b/pkgs/desktops/lomiri/applications/lomiri-filemanager-app/default.nix
new file mode 100644
index 0000000000000..fa91e1531bf21
--- /dev/null
+++ b/pkgs/desktops/lomiri/applications/lomiri-filemanager-app/default.nix
@@ -0,0 +1,142 @@
+{
+  stdenv,
+  lib,
+  fetchFromGitLab,
+  fetchpatch,
+  gitUpdater,
+  nixosTests,
+  biometryd,
+  cmake,
+  content-hub,
+  gettext,
+  lomiri-thumbnailer,
+  lomiri-ui-extras,
+  lomiri-ui-toolkit,
+  pkg-config,
+  python3,
+  qtbase,
+  qtdeclarative,
+  samba,
+  wrapQtAppsHook,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "lomiri-filemanager-app";
+  version = "1.0.4";
+
+  src = fetchFromGitLab {
+    owner = "ubports";
+    repo = "development/apps/lomiri-filemanager-app";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-vjGCTfXoqul1S7KUJXG6JwgZOc2etXWsdKbyQ/V3abA=";
+  };
+
+  patches = [
+    # This sets the *wrong* domain, but at least it sets *some* domain.
+    # Remove when version > 1.0.4
+    (fetchpatch {
+      name = "0001-lomiri-filemanager-app-Set-a-gettext-domain.patch";
+      url = "https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/commit/b310434d2c25a3b446d3d975f3755eb473a833e8.patch";
+      hash = "sha256-gzFFzZCIxedMGW4fp6sonnHj/HmwqdqU5fvGhXUsSOI=";
+    })
+
+    # Set the *correct* domain.
+    # Remove when version > 1.0.4
+    (fetchpatch {
+      name = "0002-lomiri-filemanager-app-Fix-gettext-domain.patch";
+      url = "https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/commit/2bb19aeef2baba8d12df1e4976becc08d7cf341d.patch";
+      hash = "sha256-wreOMMvBjf316N/XJv3VfI5f5N/VFiEraeadtgRStjA=";
+    })
+
+    # Bind domain to locale dir
+    # Remove when https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/merge_requests/112 merged & in release
+    (fetchpatch {
+      name = "0003-lomiri-filemanager-app-Call-i18n.bindtextdomain.patch";
+      url = "https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/commit/ac0ab681c52c691d464cf94707b013b39675ad2d.patch";
+      hash = "sha256-mwpcHwMT2FcNC6KIZNuSWU/bA8XP8rEQKHn7t5m6npM=";
+    })
+
+    # Stop using deprecated qt5_use_modules
+    # Remove when https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/merge_requests/113 merged & in release
+    (fetchpatch {
+      name = "0004-lomiri-filemanager-app-Stop-using-qt5_use_modules.patch";
+      url = "https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/commit/c2bfe927b16e660bf4730371b1e61e442e034780.patch";
+      hash = "sha256-wPOZP2FOaacEGj4SMS5Q/TO+/L11Qz7NTux4kA86Bcs=";
+    })
+
+    # Use pkg-config for smbclient flags
+    # Remove when https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/merge_requests/115 merged & in release
+    (fetchpatch {
+      name = "0005-lomiri-filemanager-app-Get-smbclient-flags-via-pkg-config.patch";
+      url = "https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/commit/aa791da5999719724e0b0592765e8fa2962305c6.patch";
+      hash = "sha256-fFAYKBR28ym/n7fhP9O6VE2owarLxK8cN9QeExHFbtU=";
+    })
+  ];
+
+  postPatch = ''
+    # Use correct QML install path, don't pull in autopilot test code (we can't run that system)
+    # Remove absolute paths from desktop file, https://github.com/NixOS/nixpkgs/issues/308324
+    substituteInPlace CMakeLists.txt \
+      --replace-fail 'qmake -query QT_INSTALL_QML' 'echo ${placeholder "out"}/${qtbase.qtQmlPrefix}' \
+      --replace-fail 'add_subdirectory(tests)' '#add_subdirectory(tests)' \
+      --replace-fail 'ICON ''${CMAKE_INSTALL_PREFIX}/''${DATA_DIR}/''${ICON_FILE}' 'ICON lomiri-filemanager-app' \
+      --replace-fail 'SPLASH ''${CMAKE_INSTALL_PREFIX}/''${DATA_DIR}/''${SPLASH_FILE}' 'SPLASH lomiri-app-launch/splash/lomiri-filemanager-app.svg'
+
+    # In case this ever gets run, at least point it to a correct-ish path
+    substituteInPlace tests/autopilot/CMakeLists.txt \
+      --replace-fail 'python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"' 'echo "${placeholder "out"}/${python3.sitePackages}/lomiri_filemanager_app"'
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    cmake
+    gettext
+    pkg-config
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    qtbase
+    qtdeclarative
+    samba
+
+    # QML
+    biometryd
+    content-hub
+    lomiri-thumbnailer
+    lomiri-ui-extras
+    lomiri-ui-toolkit
+  ];
+
+  cmakeFlags = [
+    (lib.cmakeBool "INSTALL_TESTS" false)
+    (lib.cmakeBool "CLICK_MODE" false)
+  ];
+
+  # No tests we can actually run (just autopilot)
+  doCheck = false;
+
+  postInstall = ''
+    # Some misc files don't get installed to the correct paths for us
+    mkdir -p $out/share/{content-hub/peers,icons/hicolor/scalable/apps,lomiri-app-launch/splash}
+    ln -s $out/share/lomiri-filemanager-app/content-hub.json $out/share/content-hub/peers/lomiri-filemanager-app
+    ln -s $out/share/lomiri-filemanager-app/filemanager.svg $out/share/icons/hicolor/scalable/apps/lomiri-filemanager-app.svg
+    ln -s $out/share/lomiri-filemanager-app/splash.svg $out/share/lomiri-app-launch/splash/lomiri-filemanager-app.svg
+  '';
+
+  passthru = {
+    tests.vm = nixosTests.lomiri-filemanager-app;
+    updateScript = gitUpdater { rev-prefix = "v"; };
+  };
+
+  meta = {
+    description = "File Manager application for Ubuntu Touch devices";
+    homepage = "https://gitlab.com/ubports/development/apps/lomiri-filemanager-app";
+    changelog = "https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/blob/v${finalAttrs.version}/ChangeLog";
+    license = lib.licenses.gpl3Only;
+    mainProgram = "lomiri-filemanager-app";
+    maintainers = lib.teams.lomiri.members;
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/pkgs/desktops/lomiri/applications/lomiri-terminal-app/default.nix b/pkgs/desktops/lomiri/applications/lomiri-terminal-app/default.nix
index 31ef9ed8838cb..0b2b6f6e57980 100644
--- a/pkgs/desktops/lomiri/applications/lomiri-terminal-app/default.nix
+++ b/pkgs/desktops/lomiri/applications/lomiri-terminal-app/default.nix
@@ -94,7 +94,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A terminal app for desktop and mobile devices";
+    description = "Terminal app for desktop and mobile devices";
     homepage = "https://gitlab.com/ubports/development/apps/lomiri-terminal-app";
     license = licenses.gpl3Only;
     mainProgram = "lomiri-terminal-app";
diff --git a/pkgs/desktops/lomiri/applications/lomiri/9902-lomiri-Check-NIXOS_XKB_LAYOUTS.patch b/pkgs/desktops/lomiri/applications/lomiri/9902-lomiri-Check-NIXOS_XKB_LAYOUTS.patch
new file mode 100644
index 0000000000000..0563aab5dda85
--- /dev/null
+++ b/pkgs/desktops/lomiri/applications/lomiri/9902-lomiri-Check-NIXOS_XKB_LAYOUTS.patch
@@ -0,0 +1,29 @@
+From 640cab41986fac83742af39dd19877041a2ab8dc Mon Sep 17 00:00:00 2001
+From: OPNA2608 <opna2608@protonmail.com>
+Date: Sat, 1 Jun 2024 00:22:27 +0200
+Subject: [PATCH] Check NIXOS_XKB_LAYOUTS for layouts before falling back to
+ "us"
+
+---
+ plugins/AccountsService/AccountsService.cpp | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/plugins/AccountsService/AccountsService.cpp b/plugins/AccountsService/AccountsService.cpp
+index bcf18246c..f4a7dfaa1 100644
+--- a/plugins/AccountsService/AccountsService.cpp
++++ b/plugins/AccountsService/AccountsService.cpp
+@@ -295,6 +295,11 @@ QStringList AccountsService::keymaps() const
+         return simplifiedMaps;
+     }
+ 
++    char* fallbackNixosLayouts = getenv("NIXOS_XKB_LAYOUTS");
++    if (fallbackNixosLayouts != NULL && fallbackNixosLayouts[0] != '\0') {
++        return QString(fallbackNixosLayouts).split(QLatin1Char(','), Qt::SkipEmptyParts);
++    }
++
+     return {QStringLiteral("us")};
+ }
+ 
+-- 
+2.42.0
+
diff --git a/pkgs/desktops/lomiri/applications/lomiri/default.nix b/pkgs/desktops/lomiri/applications/lomiri/default.nix
index f9eead00dafb9..d628da0746fa5 100644
--- a/pkgs/desktops/lomiri/applications/lomiri/default.nix
+++ b/pkgs/desktops/lomiri/applications/lomiri/default.nix
@@ -40,7 +40,7 @@
 , lomiri-notifications
 , lomiri-thumbnailer
 , maliit-keyboard
-, mir
+, mir_2_15
 , nixos-icons
 , pam
 , pkg-config
@@ -117,6 +117,7 @@ stdenv.mkDerivation (finalAttrs: {
     })
 
     ./9901-lomiri-Disable-Wizard.patch
+    ./9902-lomiri-Check-NIXOS_XKB_LAYOUTS.patch
   ];
 
   postPatch = ''
@@ -190,7 +191,7 @@ stdenv.mkDerivation (finalAttrs: {
     lomiri-system-settings-unwrapped
     lomiri-ui-toolkit
     maliit-keyboard
-    mir
+    mir_2_15
     pam
     properties-cpp
     protobuf
@@ -207,7 +208,7 @@ stdenv.mkDerivation (finalAttrs: {
     lomiri-settings-components
     lomiri-thumbnailer
     qtmultimedia
-    telephony-service
+    # telephony-service # currently broken: https://github.com/NixOS/nixpkgs/pull/314043
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/desktops/lomiri/data/lomiri-session/1001-Unset-QT_QPA_PLATFORMTHEME.patch b/pkgs/desktops/lomiri/data/lomiri-session/1001-Unset-QT_QPA_PLATFORMTHEME.patch
new file mode 100644
index 0000000000000..8edf093d4ed34
--- /dev/null
+++ b/pkgs/desktops/lomiri/data/lomiri-session/1001-Unset-QT_QPA_PLATFORMTHEME.patch
@@ -0,0 +1,33 @@
+From 30b5391c3f20180fe7427fe179ba26f846200d96 Mon Sep 17 00:00:00 2001
+From: OPNA2608 <opna2608@protonmail.com>
+Date: Mon, 3 Jun 2024 20:50:03 +0200
+Subject: [PATCH] Unset QT_QPA_PLATFORMTHEME
+
+gtk3 value breaks Lomiri startup
+---
+ lomiri-session | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/lomiri-session b/lomiri-session
+index 9d68249..b103840 100755
+--- a/lomiri-session
++++ b/lomiri-session
+@@ -47,6 +47,7 @@ fi
+ 
+ # Set some envs
+ export QT_QPA_PLATFORM=wayland
++export QT_QPA_PLATFORMTHEME=
+ export QT_IM_MODULE=maliit
+ export MALIIT_FORCE_DBUS_CONNECTION=1
+ export UITK_ICON_THEME=suru
+@@ -55,6 +56,7 @@ dbus-update-activation-environment --systemd MALIIT_FORCE_DBUS_CONNECTION=1
+ dbus-update-activation-environment --systemd QT_IM_MODULE=maliit
+ dbus-update-activation-environment --systemd GTK_IM_MODULE=maliit
+ dbus-update-activation-environment --systemd QT_QPA_PLATFORM=wayland
++dbus-update-activation-environment --systemd QT_QPA_PLATFORMTHEME=
+ dbus-update-activation-environment --systemd SDL_VIDEODRIVER=wayland
+ dbus-update-activation-environment --systemd QT_WAYLAND_DISABLE_WINDOWDECORATION=1
+ dbus-update-activation-environment --systemd QT_ACCESSIBILITY=1
+-- 
+2.44.1
+
diff --git a/pkgs/desktops/lomiri/data/lomiri-session/default.nix b/pkgs/desktops/lomiri/data/lomiri-session/default.nix
index c62e4ab572bd8..351aed9de8241 100644
--- a/pkgs/desktops/lomiri/data/lomiri-session/default.nix
+++ b/pkgs/desktops/lomiri/data/lomiri-session/default.nix
@@ -135,6 +135,8 @@ stdenvNoCC.mkDerivation (finalAttrs: {
       excludes = [ "systemd/lomiri.service" ];
       hash = "sha256-BICb6ZwU/sUBzmM4udsOndIgw1A03I/UEG000YvMZ9Y=";
     })
+
+    ./1001-Unset-QT_QPA_PLATFORMTHEME.patch
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/lomiri/default.nix b/pkgs/desktops/lomiri/default.nix
index 76e0351e5a07a..03d8e9451bbb0 100644
--- a/pkgs/desktops/lomiri/default.nix
+++ b/pkgs/desktops/lomiri/default.nix
@@ -9,6 +9,7 @@ let
   in {
     #### Core Apps
     lomiri = callPackage ./applications/lomiri { };
+    lomiri-filemanager-app = callPackage ./applications/lomiri-filemanager-app { };
     lomiri-system-settings-unwrapped = callPackage ./applications/lomiri-system-settings { };
     lomiri-system-settings-security-privacy = callPackage ./applications/lomiri-system-settings/plugins/lomiri-system-settings-security-privacy.nix { };
     lomiri-system-settings = callPackage ./applications/lomiri-system-settings/wrapper.nix { };
diff --git a/pkgs/desktops/lomiri/development/cmake-extras/default.nix b/pkgs/desktops/lomiri/development/cmake-extras/default.nix
index fcad286f4daf7..7c0a1cbc0d5b9 100644
--- a/pkgs/desktops/lomiri/development/cmake-extras/default.nix
+++ b/pkgs/desktops/lomiri/development/cmake-extras/default.nix
@@ -40,7 +40,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A collection of add-ons for the CMake build tool";
+    description = "Collection of add-ons for the CMake build tool";
     homepage = "https://gitlab.com/ubports/development/core/cmake-extras/";
     license = licenses.gpl3Only;
     maintainers = teams.lomiri.members;
diff --git a/pkgs/desktops/lomiri/development/lomiri-app-launch/2001-Inject-current-system-PATH.patch b/pkgs/desktops/lomiri/development/lomiri-app-launch/2001-Inject-current-system-PATH.patch
new file mode 100644
index 0000000000000..86bf90085d7a0
--- /dev/null
+++ b/pkgs/desktops/lomiri/development/lomiri-app-launch/2001-Inject-current-system-PATH.patch
@@ -0,0 +1,59 @@
+From e4fe87427f24aa9b506c15c0f73f298e8909aabe Mon Sep 17 00:00:00 2001
+From: OPNA2608 <opna2608@protonmail.com>
+Date: Fri, 31 May 2024 21:31:46 +0200
+Subject: [PATCH] Inject current-system PATH
+
+---
+ liblomiri-app-launch/jobs-systemd.cpp | 16 ++++++++++++++++
+ liblomiri-app-launch/jobs-systemd.h   |  1 +
+ 2 files changed, 17 insertions(+)
+
+diff --git a/liblomiri-app-launch/jobs-systemd.cpp b/liblomiri-app-launch/jobs-systemd.cpp
+index e9be801..246bea8 100644
+--- a/liblomiri-app-launch/jobs-systemd.cpp
++++ b/liblomiri-app-launch/jobs-systemd.cpp
+@@ -574,6 +574,20 @@ void SystemD::copyEnvByPrefix(const std::string& prefix, std::list<std::pair<std
+     }
+ }
+ 
++/* We don't have a normal PATH, so we need to inject our special one as a fallback & propagate it */
++void SystemD::setupNixosPath(std::list<std::pair<std::string, std::string>>& env)
++{
++        std::string newPath { "/run/current-system/sw/bin" };
++        char* oldPath = getenv("PATH");
++        if (oldPath != NULL && oldPath[0] != '\0')
++        {
++            newPath.insert(0, 1, ':');
++            newPath.insert(0, oldPath);
++        }
++        setenv("PATH", newPath.c_str(), true);
++        copyEnv("PATH", env);
++}
++
+ std::shared_ptr<Application::Instance> SystemD::launch(
+     const AppID& appId,
+     const std::string& job,
+@@ -625,6 +639,8 @@ std::shared_ptr<Application::Instance> SystemD::launch(
+ 
+         copyEnv("DISPLAY", env);
+ 
++        setupNixosPath(env);
++
+         for (const auto& prefix : {"DBUS_", "MIR_", "LOMIRI_APP_LAUNCH_"})
+         {
+             copyEnvByPrefix(prefix, env);
+diff --git a/liblomiri-app-launch/jobs-systemd.h b/liblomiri-app-launch/jobs-systemd.h
+index fe35932..19bf44e 100644
+--- a/liblomiri-app-launch/jobs-systemd.h
++++ b/liblomiri-app-launch/jobs-systemd.h
+@@ -136,6 +136,7 @@ private:
+     static void copyEnv(const std::string& envname, std::list<std::pair<std::string, std::string>>& env);
+     static void copyEnvByPrefix(const std::string& prefix, std::list<std::pair<std::string, std::string>>& env);
+     static int envSize(std::list<std::pair<std::string, std::string>>& env);
++    static void setupNixosPath(std::list<std::pair<std::string, std::string>>& env);
+ 
+     static std::vector<std::string> parseExec(std::list<std::pair<std::string, std::string>>& env);
+     static void application_start_cb(GObject* obj, GAsyncResult* res, gpointer user_data);
+-- 
+2.42.0
+
diff --git a/pkgs/desktops/lomiri/development/lomiri-app-launch/default.nix b/pkgs/desktops/lomiri/development/lomiri-app-launch/default.nix
index 381a89fe10ff6..ea44e6babb64c 100644
--- a/pkgs/desktops/lomiri/development/lomiri-app-launch/default.nix
+++ b/pkgs/desktops/lomiri/development/lomiri-app-launch/default.nix
@@ -48,12 +48,15 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   patches = [
-    # Remove when https://gitlab.com/ubports/development/core/lomiri-app-launch/-/merge_requests/57 merged & in release
+    # Remove when version > 0.1.9
     (fetchpatch {
       name = "0001-lomiri-app-launch-Fix-typelib-gir-dependency.patch";
-      url = "https://gitlab.com/ubports/development/core/lomiri-app-launch/-/commit/0419b2592284f43ee5e76060948ea3d5f1c991fd.patch";
+      url = "https://gitlab.com/ubports/development/core/lomiri-app-launch/-/commit/8466e77914e73801499df224fcd4a53c4a0eab25.patch";
       hash = "sha256-11pEhFi39Cvqb9Hg47kT8+5hq+bz6WmySqaIdwt1MVk=";
     })
+
+    # Use /run/current-system/sw/bin fallback for desktop file Exec= lookups, propagate to launched applications
+    ./2001-Inject-current-system-PATH.patch
   ];
 
   postPatch = ''
@@ -61,10 +64,10 @@ stdenv.mkDerivation (finalAttrs: {
 
     # used pkg_get_variable, cannot replace prefix
     substituteInPlace data/CMakeLists.txt \
-      --replace 'pkg_get_variable(SYSTEMD_USER_UNIT_DIR systemd systemduserunitdir)' 'set(SYSTEMD_USER_UNIT_DIR "''${CMAKE_INSTALL_PREFIX}/lib/systemd/user")'
+      --replace-fail 'pkg_get_variable(SYSTEMD_USER_UNIT_DIR systemd systemduserunitdir)' 'pkg_get_variable(SYSTEMD_USER_UNIT_DIR systemd systemduserunitdir DEFINE_VARIABLES prefix=''${CMAKE_INSTALL_PREFIX})'
 
     substituteInPlace tests/jobs-systemd.cpp \
-      --replace '^(/usr)?' '^(/nix/store/\\w+-bash-.+)?'
+      --replace-fail '^(/usr)?' '^(/nix/store/\\w+-bash-.+)?'
   '';
 
   strictDeps = true;
@@ -136,13 +139,13 @@ stdenv.mkDerivation (finalAttrs: {
     updateScript = gitUpdater { };
   };
 
-  meta = with lib; {
+  meta = {
     description = "System and associated utilities to launch applications in a standard and confined way";
     homepage = "https://gitlab.com/ubports/development/core/lomiri-app-launch";
     changelog = "https://gitlab.com/ubports/development/core/lomiri-app-launch/-/blob/${finalAttrs.version}/ChangeLog";
-    license = licenses.gpl3Only;
-    maintainers = teams.lomiri.members;
-    platforms = platforms.linux;
+    license = lib.licenses.gpl3Only;
+    maintainers = lib.teams.lomiri.members;
+    platforms = lib.platforms.linux;
     pkgConfigModules = [
       "lomiri-app-launch-0"
     ];
diff --git a/pkgs/desktops/lomiri/development/qtmir/default.nix b/pkgs/desktops/lomiri/development/qtmir/default.nix
index ba49507f3d36d..88ac0b69de9c3 100644
--- a/pkgs/desktops/lomiri/development/qtmir/default.nix
+++ b/pkgs/desktops/lomiri/development/qtmir/default.nix
@@ -1,48 +1,49 @@
-{ stdenv
-, lib
-, fetchFromGitLab
-, fetchpatch
-, testers
-, cmake
-, cmake-extras
-, pkg-config
-, wrapQtAppsHook
-, gsettings-qt
-, gtest
-, libqtdbustest
-, libqtdbusmock
-, libuuid
-, lomiri-api
-, lomiri-app-launch
-, lomiri-url-dispatcher
-, lttng-ust
-, mir
-, process-cpp
-, qtbase
-, qtdeclarative
-, qtsensors
-, valgrind
-, protobuf
-, glm
-, boost
-, properties-cpp
-, glib
-, validatePkgConfig
-, wayland
-, xwayland
+{
+  stdenv,
+  lib,
+  fetchFromGitLab,
+  fetchpatch,
+  testers,
+  cmake,
+  cmake-extras,
+  pkg-config,
+  wrapQtAppsHook,
+  gsettings-qt,
+  gtest,
+  libqtdbustest,
+  libqtdbusmock,
+  libuuid,
+  lomiri-api,
+  lomiri-app-launch,
+  lomiri-url-dispatcher,
+  lttng-ust,
+  mir_2_15,
+  process-cpp,
+  qtbase,
+  qtdeclarative,
+  qtsensors,
+  valgrind,
+  protobuf,
+  glm,
+  boost,
+  properties-cpp,
+  glib,
+  validatePkgConfig,
+  wayland,
+  xwayland,
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   # Not regular qtmir, experimental support for Mir 2.x
-  # Currently following https://gitlab.com/ubports/development/core/qtmir/-/tree/personal/mariogrip/desktop-development
-  pname = "qtmir-mir2";
-  version = "0.7.2-unstable-2024-01-08";
+  # Currently following https://gitlab.com/ubports/development/core/qtmir/-/tree/personal/sunweaver/debian-upstream
+  pname = "qtmir-debian-upstream";
+  version = "0.8.0-unstable-2024-03-06";
 
   src = fetchFromGitLab {
     owner = "ubports";
     repo = "development/core/qtmir";
-    rev = "ae0d87415d5c9ed2c4fd2284ba0807d23d564bb0";
-    hash = "sha256-fE8ttCC0FNavs91pASGGG7k7nKVg2lD3JK0WTmCA3gM=";
+    rev = "de639c3a482ac6c59b9be02abb839a8c96158041";
+    hash = "sha256-AKSzkGl6bAoR4I2lolNRUp67VS/PiZnrPpCYtTlKWKc=";
   };
 
   outputs = [
@@ -83,11 +84,11 @@ stdenv.mkDerivation (finalAttrs: {
 
   postPatch = ''
     substituteInPlace CMakeLists.txt \
-      --replace "\''${CMAKE_INSTALL_FULL_LIBDIR}/qt5/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}" \
-      --replace "\''${CMAKE_INSTALL_FULL_LIBDIR}/qt5/plugins/platforms" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtPluginPrefix}/platforms" \
+      --replace-fail "\''${CMAKE_INSTALL_FULL_LIBDIR}/qt5/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}" \
+      --replace-fail "\''${CMAKE_INSTALL_FULL_LIBDIR}/qt5/plugins/platforms" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtPluginPrefix}/platforms" \
 
     substituteInPlace data/xwayland.qtmir.desktop \
-      --replace '/usr/bin/Xwayland' 'Xwayland'
+      --replace-fail '/usr/bin/Xwayland' 'Xwayland'
   '';
 
   strictDeps = true;
@@ -109,7 +110,7 @@ stdenv.mkDerivation (finalAttrs: {
     lomiri-app-launch
     lomiri-url-dispatcher
     lttng-ust
-    mir
+    mir_2_15
     process-cpp
     protobuf
     qtbase
@@ -153,8 +154,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.lgpl3Only;
     maintainers = teams.lomiri.members;
     platforms = platforms.linux;
-    pkgConfigModules = [
-      "qtmirserver"
-    ];
+    pkgConfigModules = [ "qtmirserver" ];
   };
 })
diff --git a/pkgs/desktops/lomiri/services/biometryd/default.nix b/pkgs/desktops/lomiri/services/biometryd/default.nix
index d06ecf16942ef..6ae46fbc158bf 100644
--- a/pkgs/desktops/lomiri/services/biometryd/default.nix
+++ b/pkgs/desktops/lomiri/services/biometryd/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitLab
-, fetchpatch
 , gitUpdater
 , testers
 , boost
diff --git a/pkgs/desktops/lomiri/services/content-hub/default.nix b/pkgs/desktops/lomiri/services/content-hub/default.nix
index 3df927d3ed2dc..a1fd997578442 100644
--- a/pkgs/desktops/lomiri/services/content-hub/default.nix
+++ b/pkgs/desktops/lomiri/services/content-hub/default.nix
@@ -47,11 +47,11 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   patches = [
-    # Remove when https://gitlab.com/ubports/development/core/content-hub/-/merge_requests/33 merged & in release
+    # Remove when version > 1.1.1
     (fetchpatch {
       name = "0001-content-hub-Migrate-to-GetConnectionCredentials.patch";
-      url = "https://gitlab.com/ubports/development/core/content-hub/-/commit/9c0eae42d856b4b6e24fa609ade0e674c7a84cfe.patch";
-      hash = "sha256-IWoCQKSCCk26n7133oG0Ht+iEjavn/IiOVUM+tCLX2U=";
+      url = "https://gitlab.com/ubports/development/core/content-hub/-/commit/9ec9df32f77383eec7994d8e3e6961531bc8464d.patch";
+      hash = "sha256-14dZosMTMa1FDGEMuil0r1Hz6vn+L9XC83NMAqC7Ol8=";
     })
 
     # Remove when https://gitlab.com/ubports/development/core/content-hub/-/merge_requests/34 merged & in release
@@ -61,7 +61,7 @@ stdenv.mkDerivation (finalAttrs: {
       hash = "sha256-T+6T9lXne6AhDFv9d7L8JNwdl8f0wjDmvSoNVPkHza4=";
     })
 
-    # Remove when https://gitlab.com/ubports/development/core/content-hub/-/merge_requests/35 merged & in release
+    # Remove when version > 1.1.1
     # fetchpatch2 due to renames, https://github.com/NixOS/nixpkgs/issues/32084
     (fetchpatch2 {
       name = "0003-content-hub-Add-more-better-GNUInstallDirs-variables-usage.patch";
@@ -69,16 +69,18 @@ stdenv.mkDerivation (finalAttrs: {
       hash = "sha256-kYN0eLwMyM/9yK+zboyEsoPKZMZ4SCXodVYsvkQr2F8=";
     })
 
-    # Remove when https://gitlab.com/ubports/development/core/content-hub/-/merge_requests/37 merged & in release
+    # Remove when version > 1.1.1
     (fetchpatch {
-      name = "0004-content-hub-Fix-generation-of-transfer_files.patch";
-      url = "https://gitlab.com/ubports/development/core/content-hub/-/commit/7ab3a4421356f83515f0deffb5f97a5b38601c13.patch";
-      hash = "sha256-MJZm3ny5t0/GX0bd5hGQbPM2k7M4KUvKqce/0cYYgvM=";
+      name = "0004-content-hub-Fix-generation-of-transfer_files-and-moc_test_harness.patch";
+      url = "https://gitlab.com/ubports/development/core/content-hub/-/commit/68899c75e77e1f34176b8a550d52794413e5070f.patch";
+      hash = "sha256-HAxePnzY/cL2c+o+Aw2N1pdr8rsbHGmRsH2EQkrBcHg=";
     })
+
+    # Remove when https://gitlab.com/ubports/development/core/lomiri-content-hub/-/merge_requests/40 merged & in release
     (fetchpatch {
-      name = "0005-content-hub-Fix-generation-of-moc_test_harness.patch";
-      url = "https://gitlab.com/ubports/development/core/content-hub/-/commit/6e30f4f10ef90e817ca01d32959b6c782de48955.patch";
-      hash = "sha256-TAbYn265RpHpulaRVaHy9XqNF+qoDE7YQIfFMPfqEhw=";
+      name = "0006-content-hub-Fix-AppArmor-less-transfer.patch";
+      url = "https://gitlab.com/ubports/development/core/content-hub/-/commit/b58e5c8babf00ad7c402555c96254ce0165adb9e.patch";
+      hash = "sha256-a7x/0NiUBmmFlq96jkHyLCL0f5NIFh5JR/H+FQ/2GqI=";
     })
   ];
 
@@ -175,7 +177,7 @@ stdenv.mkDerivation (finalAttrs: {
     updateScript = gitUpdater { };
   };
 
-  meta = with lib; {
+  meta = {
     description = "Content sharing/picking service";
     longDescription = ''
       content-hub is a mediation service to let applications share content between them,
@@ -183,10 +185,10 @@ stdenv.mkDerivation (finalAttrs: {
     '';
     homepage = "https://gitlab.com/ubports/development/core/content-hub";
     changelog = "https://gitlab.com/ubports/development/core/content-hub/-/blob/${finalAttrs.version}/ChangeLog";
-    license = with licenses; [ gpl3Only lgpl3Only ];
+    license = with lib.licenses; [ gpl3Only lgpl3Only ];
     mainProgram = "content-hub-service";
-    maintainers = teams.lomiri.members;
-    platforms = platforms.linux;
+    maintainers = lib.teams.lomiri.members;
+    platforms = lib.platforms.linux;
     pkgConfigModules = [
       "libcontent-hub"
       "libcontent-hub-glib"
diff --git a/pkgs/desktops/lomiri/services/lomiri-indicator-network/default.nix b/pkgs/desktops/lomiri/services/lomiri-indicator-network/default.nix
index fc552881f4696..6566ec4601d39 100644
--- a/pkgs/desktops/lomiri/services/lomiri-indicator-network/default.nix
+++ b/pkgs/desktops/lomiri/services/lomiri-indicator-network/default.nix
@@ -101,7 +101,8 @@ stdenv.mkDerivation (finalAttrs: {
     (lib.cmakeBool "BUILD_DOC" true) # lacks QML docs, needs qdoc: https://github.com/NixOS/nixpkgs/pull/245379
   ];
 
-  doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
+  # Currently broken: https://github.com/NixOS/nixpkgs/pull/314043
+  doCheck = false;
 
   postInstall = ''
     substituteInPlace $out/etc/dbus-1/services/com.lomiri.connectivity1.service \
diff --git a/pkgs/desktops/lomiri/services/telephony-service/default.nix b/pkgs/desktops/lomiri/services/telephony-service/default.nix
index 975f96bce9923..15f6ab1679722 100644
--- a/pkgs/desktops/lomiri/services/telephony-service/default.nix
+++ b/pkgs/desktops/lomiri/services/telephony-service/default.nix
@@ -2,7 +2,6 @@
 , lib
 , fetchFromGitLab
 , fetchpatch
-, fetchpatch2
 , gitUpdater
 , nixosTests
 , ayatana-indicator-messages
@@ -20,7 +19,6 @@
 , libphonenumber
 , libpulseaudio
 , libusermetrics
-, lomiri-ui-toolkit
 , lomiri-url-dispatcher
 , makeWrapper
 , pkg-config
@@ -197,5 +195,7 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl3Only;
     maintainers = teams.lomiri.members;
     platforms = platforms.linux;
+    # Completely broken until https://github.com/NixOS/nixpkgs/pull/314043 is merged
+    broken = true;
   };
 })
diff --git a/pkgs/desktops/lumina/lumina/default.nix b/pkgs/desktops/lumina/lumina/default.nix
index 74de1fbeedfb0..de3d17571d641 100644
--- a/pkgs/desktops/lumina/lumina/default.nix
+++ b/pkgs/desktops/lumina/lumina/default.nix
@@ -99,7 +99,7 @@ mkDerivation rec {
   passthru.providedSessions = [ "Lumina-DE" ];
 
   meta = with lib; {
-    description = "A lightweight, portable desktop environment";
+    description = "Lightweight, portable desktop environment";
     longDescription = ''
       The Lumina Desktop Environment is a lightweight system interface
       that is designed for use on any Unix-like operating system. It
diff --git a/pkgs/desktops/lxqt/default.nix b/pkgs/desktops/lxqt/default.nix
index 8418652dbc38a..3efd526cb6bd0 100644
--- a/pkgs/desktops/lxqt/default.nix
+++ b/pkgs/desktops/lxqt/default.nix
@@ -75,6 +75,11 @@ let
       libfm-qt = libfm-qt_1_4;
       inherit (pkgs.libsForQt5) qtbase qtsvg qttools libdbusmenu;
     };
+    qtermwidget_1_4 = callPackage ./qtermwidget {
+      version = "1.4.0";
+      lxqt-build-tools = lxqt-build-tools_0_13;
+      inherit (pkgs.libsForQt5) qtbase qttools;
+    };
 
     preRequisitePackages = [
       kdePackages.kwindowsystem # provides some QT plugins needed by lxqt-panel
diff --git a/pkgs/desktops/lxqt/libdbusmenu-lxqt/default.nix b/pkgs/desktops/lxqt/libdbusmenu-lxqt/default.nix
index ca7910668ca27..9a49c10a1be9b 100644
--- a/pkgs/desktops/lxqt/libdbusmenu-lxqt/default.nix
+++ b/pkgs/desktops/lxqt/libdbusmenu-lxqt/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A Qt implementation of the DBusMenu protocol";
+    description = "Qt implementation of the DBusMenu protocol";
     homepage = "https://github.com/lxqt/libdbusmenu-lxqt";
     license = licenses.lgpl21Plus;
     platforms = with platforms; unix;
diff --git a/pkgs/desktops/lxqt/lximage-qt/default.nix b/pkgs/desktops/lxqt/lximage-qt/default.nix
index e5972344abcba..6d0248e3e5944 100644
--- a/pkgs/desktops/lxqt/lximage-qt/default.nix
+++ b/pkgs/desktops/lxqt/lximage-qt/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/lxqt/lximage-qt";
-    description = "The image viewer and screenshot tool for lxqt";
+    description = "Image viewer and screenshot tool for lxqt";
     mainProgram = "lximage-qt";
     license = licenses.gpl2Plus;
     platforms = with platforms; unix;
diff --git a/pkgs/desktops/lxqt/lxqt-notificationd/default.nix b/pkgs/desktops/lxqt/lxqt-notificationd/default.nix
index df5f6ed911ca7..70cb087fcc15e 100644
--- a/pkgs/desktops/lxqt/lxqt-notificationd/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-notificationd/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/lxqt/lxqt-notificationd";
-    description = "The LXQt notification daemon";
+    description = "LXQt notification daemon";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
     maintainers = teams.lxqt.members;
diff --git a/pkgs/desktops/lxqt/lxqt-panel/default.nix b/pkgs/desktops/lxqt/lxqt-panel/default.nix
index a2072702ad7c1..7d6da7e65f9fd 100644
--- a/pkgs/desktops/lxqt/lxqt-panel/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-panel/default.nix
@@ -83,7 +83,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/lxqt/lxqt-panel";
-    description = "The LXQt desktop panel";
+    description = "LXQt desktop panel";
     mainProgram = "lxqt-panel";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/lxqt/lxqt-policykit/default.nix b/pkgs/desktops/lxqt/lxqt-policykit/default.nix
index 601987b93ee80..9484a8e4b16dd 100644
--- a/pkgs/desktops/lxqt/lxqt-policykit/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-policykit/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/lxqt/lxqt-policykit";
-    description = "The LXQt PolicyKit agent";
+    description = "LXQt PolicyKit agent";
     mainProgram = "lxqt-policykit-agent";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/lxqt/lxqt-session/default.nix b/pkgs/desktops/lxqt/lxqt-session/default.nix
index 2fe8de9eef548..cdfd234a14d77 100644
--- a/pkgs/desktops/lxqt/lxqt-session/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-session/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/lxqt/lxqt-session";
-    description = "An alternative session manager ported from the original razor-session";
+    description = "Alternative session manager ported from the original razor-session";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
     maintainers = teams.lxqt.members;
diff --git a/pkgs/desktops/lxqt/obconf-qt/default.nix b/pkgs/desktops/lxqt/obconf-qt/default.nix
index bf4d89a1e020f..3b7c5f55f5483 100644
--- a/pkgs/desktops/lxqt/obconf-qt/default.nix
+++ b/pkgs/desktops/lxqt/obconf-qt/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/lxqt/obconf-qt";
-    description = "The Qt port of obconf, the Openbox configuration tool";
+    description = "Qt port of obconf, the Openbox configuration tool";
     mainProgram = "obconf-qt";
     license = licenses.gpl2Plus;
     platforms = with platforms; unix;
diff --git a/pkgs/desktops/lxqt/pavucontrol-qt/default.nix b/pkgs/desktops/lxqt/pavucontrol-qt/default.nix
index 1ddb787309eee..ace3003e7b663 100644
--- a/pkgs/desktops/lxqt/pavucontrol-qt/default.nix
+++ b/pkgs/desktops/lxqt/pavucontrol-qt/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/lxqt/pavucontrol-qt";
-    description = "A Pulseaudio mixer in Qt (port of pavucontrol)";
+    description = "Pulseaudio mixer in Qt (port of pavucontrol)";
     mainProgram = "pavucontrol-qt";
     license = licenses.gpl2Plus;
     platforms = with platforms; linux;
diff --git a/pkgs/desktops/lxqt/qterminal/default.nix b/pkgs/desktops/lxqt/qterminal/default.nix
index bb019eeae7e41..3505897fcfd07 100644
--- a/pkgs/desktops/lxqt/qterminal/default.nix
+++ b/pkgs/desktops/lxqt/qterminal/default.nix
@@ -6,6 +6,7 @@
 , qtbase
 , qtermwidget
 , qttools
+, qtwayland
 , wrapQtAppsHook
 , gitUpdater
 , nixosTests
@@ -32,6 +33,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     qtbase
     qtermwidget
+    qtwayland
   ];
 
   passthru.updateScript = gitUpdater { };
@@ -40,7 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/lxqt/qterminal";
-    description = "A lightweight Qt-based terminal emulator";
+    description = "Lightweight Qt-based terminal emulator";
     mainProgram = "qterminal";
     license = licenses.gpl2Plus;
     platforms = with platforms; unix;
diff --git a/pkgs/desktops/lxqt/qtermwidget/default.nix b/pkgs/desktops/lxqt/qtermwidget/default.nix
index 35c5b2c3f6415..12640bb740d57 100644
--- a/pkgs/desktops/lxqt/qtermwidget/default.nix
+++ b/pkgs/desktops/lxqt/qtermwidget/default.nix
@@ -7,17 +7,21 @@
 , lxqt-build-tools
 , wrapQtAppsHook
 , gitUpdater
+, version ? "2.0.0"
 }:
 
 stdenv.mkDerivation rec {
   pname = "qtermwidget";
-  version = "2.0.0";
+  inherit version;
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    hash = "sha256-kZS6D/wSJFRt/+Afq0zCCmNnJPpFT+1hd4zVPc+rJsE=";
+    hash = {
+      "1.4.0" = "sha256-wYUOqAiBjnupX1ITbFMw7sAk42V37yDz9SrjVhE4FgU=";
+      "2.0.0" = "sha256-kZS6D/wSJFRt/+Afq0zCCmNnJPpFT+1hd4zVPc+rJsE=";
+    }."${version}";
   };
 
   nativeBuildInputs = [
@@ -36,7 +40,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     homepage = "https://github.com/lxqt/qtermwidget";
-    description = "A terminal emulator widget for Qt, used by QTerminal";
+    description = "Terminal emulator widget for Qt, used by QTerminal";
     license = licenses.gpl2Plus;
     platforms = with platforms; unix;
     maintainers = teams.lxqt.members;
diff --git a/pkgs/desktops/mate/atril/default.nix b/pkgs/desktops/mate/atril/default.nix
index 130bba9182f49..a46a8faa5207c 100644
--- a/pkgs/desktops/mate/atril/default.nix
+++ b/pkgs/desktops/mate/atril/default.nix
@@ -77,7 +77,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = mateUpdateScript { inherit pname; };
 
   meta = with lib; {
-    description = "A simple multi-page document viewer for the MATE desktop";
+    description = "Simple multi-page document viewer for the MATE desktop";
     homepage = "https://mate-desktop.org";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/mate/eom/default.nix b/pkgs/desktops/mate/eom/default.nix
index 792c24c5b327b..197a6aee9e021 100644
--- a/pkgs/desktops/mate/eom/default.nix
+++ b/pkgs/desktops/mate/eom/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = mateUpdateScript { inherit pname; };
 
   meta = with lib; {
-    description = "An image viewing and cataloging program for the MATE desktop";
+    description = "Image viewing and cataloging program for the MATE desktop";
     mainProgram = "eom";
     homepage = "https://mate-desktop.org";
     license = licenses.gpl2Plus;
diff --git a/pkgs/desktops/mate/mate-panel/default.nix b/pkgs/desktops/mate/mate-panel/default.nix
index 6ddd142a3fa54..2762c0ce36057 100644
--- a/pkgs/desktops/mate/mate-panel/default.nix
+++ b/pkgs/desktops/mate/mate-panel/default.nix
@@ -25,11 +25,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-panel";
-  version = "1.28.1";
+  version = "1.28.2";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "UTPGT1lpro7uvm6LukUN6nkssL4G2a4cNuhWnS+FJLo=";
+    sha256 = "Z4pD6DeqJxhJQgT93xm7kGzwfl2A/S4d3nRfJtKtujM=";
   };
 
   nativeBuildInputs = [
@@ -83,7 +83,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = mateUpdateScript { inherit pname; };
 
   meta = with lib; {
-    description = "The MATE panel";
+    description = "MATE panel";
     homepage = "https://github.com/mate-desktop/mate-panel";
     license = with licenses; [ gpl2Plus lgpl2Plus fdl11Plus ];
     platforms = platforms.unix;
diff --git a/pkgs/desktops/mate/mate-power-manager/default.nix b/pkgs/desktops/mate/mate-power-manager/default.nix
index 42a782f9e8418..e4f59428f400c 100644
--- a/pkgs/desktops/mate/mate-power-manager/default.nix
+++ b/pkgs/desktops/mate/mate-power-manager/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = mateUpdateScript { inherit pname; };
 
   meta = with lib; {
-    description = "The MATE Power Manager";
+    description = "MATE Power Manager";
     homepage = "https://mate-desktop.org";
     license = with licenses; [ gpl2Plus fdl11Plus ];
     platforms = platforms.unix;
diff --git a/pkgs/desktops/mate/mate-themes/default.nix b/pkgs/desktops/mate/mate-themes/default.nix
index 259b29c6c9b49..3ca512dfb53c8 100644
--- a/pkgs/desktops/mate/mate-themes/default.nix
+++ b/pkgs/desktops/mate/mate-themes/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = mateUpdateScript { inherit pname; };
 
   meta = with lib; {
-    description = "A set of themes from MATE";
+    description = "Set of themes from MATE";
     homepage = "https://mate-desktop.org";
     license = with licenses; [ lgpl21Plus lgpl3Only gpl3Plus ];
     platforms = platforms.unix;
diff --git a/pkgs/desktops/pantheon/apps/appcenter/default.nix b/pkgs/desktops/pantheon/apps/appcenter/default.nix
index 2744d925ef0b5..053a8ff4ae3bb 100644
--- a/pkgs/desktops/pantheon/apps/appcenter/default.nix
+++ b/pkgs/desktops/pantheon/apps/appcenter/default.nix
@@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/elementary/appcenter";
-    description = "An open, pay-what-you-want app store for indie developers, designed for elementary OS";
+    description = "Open, pay-what-you-want app store for indie developers, designed for elementary OS";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = teams.pantheon.members;
diff --git a/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix b/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
index dda264380dbc8..12857b8946a7a 100644
--- a/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-calculator";
-  version = "2.0.3";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "calculator";
     rev = version;
-    sha256 = "sha256-VPxCW2lVA/nS2aJsjLgkuEM9wnAzyEr864XY8tfLQAY=";
+    sha256 = "sha256-QEs83hSv9Kupj2p/OTnuPZsC8tdm+IqgpeObBVrPRas=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/apps/elementary-mail/default.nix b/pkgs/desktops/pantheon/apps/elementary-mail/default.nix
index 8f7a89ea23feb..ee4d259d18e1b 100644
--- a/pkgs/desktops/pantheon/apps/elementary-mail/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-mail/default.nix
@@ -5,7 +5,6 @@
 , pkg-config
 , meson
 , ninja
-, python3
 , vala
 , gtk3
 , libxml2
@@ -24,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-mail";
-  version = "7.2.0";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "mail";
     rev = version;
-    sha256 = "sha256-hBOogZ9ZNS9KnuNn+jNhTtlupBxZL2DG/CiuBR1kFu0=";
+    sha256 = "sha256-6T/OTiuDVAPBqp8BPawf/MVEuWTPrLa3/N1Blvt/7Q8=";
   };
 
   nativeBuildInputs = [
@@ -38,7 +37,6 @@ stdenv.mkDerivation rec {
     meson
     ninja
     pkg-config
-    python3
     vala
     wrapGAppsHook3
   ];
@@ -56,11 +54,6 @@ stdenv.mkDerivation rec {
     webkitgtk_4_1
   ];
 
-  postPatch = ''
-    chmod +x meson/post_install.py
-    patchShebangs meson/post_install.py
-  '';
-
   preFixup = ''
     gappsWrapperArgs+=(
       # The GTK theme is hardcoded.
diff --git a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
index 4534a8af27ee1..8d7a4afb69de2 100644
--- a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
@@ -1,17 +1,16 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , nix-update-script
 , meson
 , ninja
 , pkg-config
 , vala
-, desktop-file-utils
 , gtk3
 , libexif
 , libgee
 , libhandy
+, libportal-gtk3
 , geocode-glib_2
 , gexiv2
 , libgphoto2
@@ -22,50 +21,21 @@
 , sqlite
 , python3
 , libwebp
-, appstream
 , wrapGAppsHook3
 }:
 
 stdenv.mkDerivation rec {
   pname = "elementary-photos";
-  version = "2.8.0";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "photos";
     rev = version;
-    sha256 = "sha256-VhJggQMy1vk21zNA5pR4uAPGCwnIxLUHVO58AZs+h6s=";
+    sha256 = "sha256-EULNLtoZ8M68cp1DT11G6O2TONH/0DXWNX0k4AUqa/w=";
   };
 
-  patches = [
-    # The following 5 patches allow building this without webkit2gtk-4.0.
-    # https://github.com/elementary/photos/pull/743, https://github.com/elementary/photos/pull/746
-    (fetchpatch {
-      url = "https://github.com/elementary/photos/commit/c48f49869bbf44aa37e64c0c1e25aff887783a02.patch";
-      hash = "sha256-CeKRONVevJqVEIchgxyPqnM16Y2zUJ1+wnL2jLdJqec=";
-    })
-    (fetchpatch {
-      url = "https://github.com/elementary/photos/commit/d7a8265ecb562e439d003b61b0823de8348fb10d.patch";
-      hash = "sha256-6M3t0l8BUhoaowUSfaiz6xjQBHliO13i+qi5cgfEY04=";
-    })
-    (fetchpatch {
-      url = "https://github.com/elementary/photos/commit/d8e13e8e803ed7ab1bd23527866567d998744f57.patch";
-      hash = "sha256-BGBDIHR5iYtd+rJG9sur1oWa4FK/lF0vLdjyPbyNbdU=";
-    })
-    (fetchpatch {
-      url = "https://github.com/elementary/photos/commit/075f983a65e9c6d4e80ee07f0c05309badef526a.patch";
-      excludes = [ ".github/workflows/ci.yml" ];
-      hash = "sha256-QOtssVwwHxFdtfhcVyaN33LMZdOkg/DoAC+UAbrkmDk=";
-    })
-    (fetchpatch {
-      url = "https://github.com/elementary/photos/commit/ea11cf23db6945df6cc3495fd698456054389371.patch";
-      hash = "sha256-4a/CRx7Dmyyda6SUr0QF++R73v7FBzjXfyxvspynnG0=";
-    })
-  ];
-
   nativeBuildInputs = [
-    appstream
-    desktop-file-utils
     meson
     ninja
     pkg-config
@@ -84,6 +54,7 @@ stdenv.mkDerivation rec {
     libgphoto2
     libgudev
     libhandy
+    libportal-gtk3
     libraw
     libwebp
     sqlite
diff --git a/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
index f2946f4992028..dbc6b6d060c80 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
@@ -11,13 +11,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "elementary-gtk-theme";
-  version = "7.3.0";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "stylesheet";
     rev = version;
-    sha256 = "sha256-KrpeDQH43n7seeSPVYKETxy1g0JuUowZerjgktLQg/4=";
+    sha256 = "sha256-O0Zu/ZxVANfWKcCkOF7jeJa3oG1ut56px7jeFK7LdKA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
index ff93bb62379d9..8f875620141f4 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
@@ -3,7 +3,6 @@
 , fetchFromGitHub
 , nix-update-script
 , meson
-, python3
 , ninja
 , hicolor-icon-theme
 , gtk3
@@ -13,13 +12,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "elementary-icon-theme";
-  version = "7.3.1";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "icons";
     rev = version;
-    sha256 = "sha256-3qvbpY1O8E3sX+66yBoZXEOeWQrgyNu2rOT6PPbli58=";
+    sha256 = "sha256-EPmQgE33+HBI78SlCBV3WlyLCP6AggvqsQa7gZuOMRM=";
   };
 
   nativeBuildInputs = [
@@ -27,7 +26,6 @@ stdenvNoCC.mkDerivation rec {
     librsvg
     meson
     ninja
-    python3
     xcursorgen
   ];
 
@@ -42,11 +40,6 @@ stdenvNoCC.mkDerivation rec {
     "-Dpalettes=false" # Don't install gimp and inkscape palette files
   ];
 
-  postPatch = ''
-    chmod +x meson/symlink.py
-    patchShebangs meson/symlink.py
-  '';
-
   postFixup = "gtk-update-icon-cache $out/share/icons/elementary";
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix
index 69d391f679cf3..7f7279a9df1f0 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A set of system sounds for elementary";
+    description = "Set of system sounds for elementary";
     homepage = "https://github.com/elementary/sound-theme";
     license = licenses.unlicense;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/pantheon/default.nix b/pkgs/desktops/pantheon/default.nix
index d7bd9c926edea..58a4ba65f1acf 100644
--- a/pkgs/desktops/pantheon/default.nix
+++ b/pkgs/desktops/pantheon/default.nix
@@ -221,10 +221,8 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   ### THIRD-PARTY
 
-  # Put packages that ONLY works with Pantheon in pkgs/desktops/pantheon/third-party,
-  # specifically third party switchboard plugins and wingpanel indicators.
-  # Please call these packages in pkgs/top-level/all-packages.nix instead of this file.
-  # https://github.com/NixOS/nixpkgs/issues/115222#issuecomment-906868654
+  # As suggested in https://github.com/NixOS/nixpkgs/issues/115222#issuecomment-906868654
+  # please avoid putting third-party packages in the `pantheon` scope.
 
 }) // lib.optionalAttrs config.allowAliases {
 
diff --git a/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix b/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
index f249a091572b6..5d6e43bf12fb6 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
@@ -7,22 +7,26 @@
 , ninja
 , vala
 , desktop-file-utils
+, gala
+, gsettings-desktop-schemas
 , gtk4
 , glib
+, gnome-settings-daemon
 , granite7
 , libgee
+, mutter
 , wrapGAppsHook4
 }:
 
 stdenv.mkDerivation rec {
   pname = "elementary-shortcut-overlay";
-  version = "2.0.1";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "shortcut-overlay";
     rev = version;
-    sha256 = "sha256-YVeCO7mZmf+FEY4d8tvC76lW/HkOwQ6kw7nvmzAFEtw=";
+    sha256 = "sha256-HqF2eSNwAzgzwyfNQIeumaGkPYiSc+2OfaD3JRQp4/4=";
   };
 
   nativeBuildInputs = [
@@ -35,10 +39,14 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    gala # org.pantheon.desktop.gala.keybindings
+    gsettings-desktop-schemas # org.gnome.desktop.wm.keybindings
     glib
+    gnome-settings-daemon # org.gnome.settings-daemon.plugins.media-keys
     granite7
     gtk4
     libgee
+    mutter # org.gnome.mutter.keybindings
   ];
 
   passthru = {
@@ -46,7 +54,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A native OS-wide shortcut overlay to be launched by Gala";
+    description = "Native OS-wide shortcut overlay to be launched by Gala";
     homepage = "https://github.com/elementary/shortcut-overlay";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/pantheon/desktop/gala/default.nix b/pkgs/desktops/pantheon/desktop/gala/default.nix
index ec3541b7c83b7..3864fa39ed494 100644
--- a/pkgs/desktops/pantheon/desktop/gala/default.nix
+++ b/pkgs/desktops/pantheon/desktop/gala/default.nix
@@ -47,6 +47,13 @@ stdenv.mkDerivation rec {
       url = "https://github.com/elementary/gala/commit/351722c5a4fded46992b725e03dc94971c5bd31f.patch";
       hash = "sha256-RvdVHQjCUNmLrROBZTF+m1vE2XudtQZjk/YW28P/vKc=";
     })
+
+    # InternalUtils: Fix window placement
+    # https://github.com/elementary/gala/pull/1913
+    (fetchpatch {
+      url = "https://github.com/elementary/gala/commit/2d30bee678788c5a853721d16b5b39c997b23c02.patch";
+      hash = "sha256-vhGFaLpJZFx1VTfjY1BahQiOUvBPi0dBSXLGhYc7r8A=";
+    })
   ];
 
   nativeBuildInputs = [
@@ -85,7 +92,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A window & compositing manager based on mutter and designed by elementary for use with Pantheon";
+    description = "Window & compositing manager based on mutter and designed by elementary for use with Pantheon";
     homepage = "https://github.com/elementary/gala";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
index 7c4d8d93b6316..3734a0dcc07f9 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "The extensible top panel for Pantheon";
+    description = "Extensible top panel for Pantheon";
     longDescription = ''
       Wingpanel is an empty container that accepts indicators as extensions,
       including the applications menu.
diff --git a/pkgs/desktops/pantheon/granite/7/default.nix b/pkgs/desktops/pantheon/granite/7/default.nix
index 747e24a705ac0..2c266b8ab152f 100644
--- a/pkgs/desktops/pantheon/granite/7/default.nix
+++ b/pkgs/desktops/pantheon/granite/7/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "An extension to GTK used by elementary OS";
+    description = "Extension to GTK used by elementary OS";
     longDescription = ''
       Granite is a companion library for GTK and GLib. Among other things, it provides complex widgets and convenience functions
       designed for use in apps built for elementary OS.
diff --git a/pkgs/desktops/pantheon/granite/default.nix b/pkgs/desktops/pantheon/granite/default.nix
index a16045889b9f5..52eb6602efff3 100644
--- a/pkgs/desktops/pantheon/granite/default.nix
+++ b/pkgs/desktops/pantheon/granite/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An extension to GTK used by elementary OS";
+    description = "Extension to GTK used by elementary OS";
     longDescription = ''
       Granite is a companion library for GTK and GLib. Among other things, it provides complex widgets and convenience functions
       designed for use in apps built for elementary OS.
diff --git a/pkgs/desktops/pantheon/services/contractor/default.nix b/pkgs/desktops/pantheon/services/contractor/default.nix
index 26b4e1c28e205..eed8755143c6c 100644
--- a/pkgs/desktops/pantheon/services/contractor/default.nix
+++ b/pkgs/desktops/pantheon/services/contractor/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A desktop-wide extension service used by elementary OS";
+    description = "Desktop-wide extension service used by elementary OS";
     homepage = "https://github.com/elementary/contractor";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix b/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
index 18448fd0b4f04..62bf5c5b8dee6 100644
--- a/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
+++ b/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
@@ -4,60 +4,51 @@
 , nix-update-script
 , pkg-config
 , meson
-, python3
 , ninja
 , vala
-, desktop-file-utils
-, gtk3
-, granite
+, gtk4
+, granite7
+, libadwaita
 , libgee
-, libhandy
-, gcr
-, webkitgtk_4_1
-, wrapGAppsHook3
+, gcr_4
+, webkitgtk_6_0
+, wrapGAppsHook4
 }:
 
 stdenv.mkDerivation rec {
   pname = "elementary-capnet-assist";
-  version = "2.4.4";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "capnet-assist";
     rev = version;
-    sha256 = "sha256-vnFrGHt/rtrDmXokYRoebVpNLfkZPe5IShRsXCWWsXs=";
+    sha256 = "sha256-xYywiI8hFjS7ODEhLGVwrlAY8I0pvUHfg6UkDhUsglU=";
   };
 
   nativeBuildInputs = [
-    desktop-file-utils
     meson
     ninja
     pkg-config
-    python3
     vala
-    wrapGAppsHook3
+    wrapGAppsHook4
   ];
 
   buildInputs = [
-    gcr
-    granite
-    gtk3
+    gcr_4
+    granite7
+    gtk4
+    libadwaita
     libgee
-    libhandy
-    webkitgtk_4_1
+    webkitgtk_6_0
   ];
 
-  postPatch = ''
-    chmod +x meson/post_install.py
-    patchShebangs meson/post_install.py
-  '';
-
   passthru = {
     updateScript = nix-update-script { };
   };
 
   meta = with lib; {
-    description = "A small WebKit app that assists a user with login when a captive portal is detected";
+    description = "Small WebKit app that assists a user with login when a captive portal is detected";
     homepage = "https://github.com/elementary/capnet-assist";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix b/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
index 172554fa37ac1..e427bfc2fea54 100644
--- a/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
+++ b/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
@@ -6,22 +6,23 @@
 , meson
 , ninja
 , vala
-, gtk3
+, gtk4
+, libadwaita
 , libgee
-, granite
+, granite7
 , polkit
-, wrapGAppsHook3
+, wrapGAppsHook4
 }:
 
 stdenv.mkDerivation rec {
   pname = "pantheon-agent-polkit";
-  version = "1.0.5";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-sC+Ec8a/17EfHsSRKQflBlzv9XAFjUVhjX691gIVa2A=";
+    hash = "sha256-Hm4vEubj2VjObD2t7wBHGrjnp6Nza6Ze7AOcJ0n5Dmc=";
   };
 
   nativeBuildInputs = [
@@ -29,12 +30,13 @@ stdenv.mkDerivation rec {
     ninja
     pkg-config
     vala
-    wrapGAppsHook3
+    wrapGAppsHook4
   ];
 
   buildInputs = [
-    granite
-    gtk3
+    granite7
+    gtk4
+    libadwaita
     libgee
     polkit
   ];
diff --git a/pkgs/desktops/pantheon/third-party/pantheon-tweaks/fix-paths.patch b/pkgs/desktops/pantheon/third-party/pantheon-tweaks/fix-paths.patch
deleted file mode 100644
index b2e0e0a7b4c8b..0000000000000
--- a/pkgs/desktops/pantheon/third-party/pantheon-tweaks/fix-paths.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/Settings/ThemeSettings.vala b/src/Settings/ThemeSettings.vala
-index 589121b..8e9c81e 100644
---- a/src/Settings/ThemeSettings.vala
-+++ b/src/Settings/ThemeSettings.vala
-@@ -29,7 +29,7 @@ public class PantheonTweaks.ThemeSettings {
-         var themes = new Gee.ArrayList<string> ();
- 
-         string[] dirs = {
--            "/usr/share/" + path + "/",
-+            "/run/current-system/sw/share/" + path + "/",
-             Environment.get_home_dir () + "/." + path + "/",
-             Environment.get_home_dir () + "/.local/share/" + path + "/"};
- 
diff --git a/pkgs/desktops/plasma-5/3rdparty/addons/bismuth/default.nix b/pkgs/desktops/plasma-5/3rdparty/addons/bismuth/default.nix
index ca54ff8887804..bd41ce7987342 100644
--- a/pkgs/desktops/plasma-5/3rdparty/addons/bismuth/default.nix
+++ b/pkgs/desktops/plasma-5/3rdparty/addons/bismuth/default.nix
@@ -44,7 +44,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A dynamic tiling extension for KWin";
+    description = "Dynamic tiling extension for KWin";
     license = licenses.mit;
     maintainers = with maintainers; [ pasqui23 ];
     homepage = "https://bismuth-forge.github.io/bismuth/";
diff --git a/pkgs/desktops/plasma-5/3rdparty/addons/krunner-ssh.nix b/pkgs/desktops/plasma-5/3rdparty/addons/krunner-ssh.nix
index caf3819a3611a..b24798589cda9 100644
--- a/pkgs/desktops/plasma-5/3rdparty/addons/krunner-ssh.nix
+++ b/pkgs/desktops/plasma-5/3rdparty/addons/krunner-ssh.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple backend for KRunner providing SSH hosts from your .ssh/known_hosts file as search results";
+    description = "Simple backend for KRunner providing SSH hosts from your .ssh/known_hosts file as search results";
     homepage = "https://selfcoders.com/projects/krunner-ssh";
     license = licenses.mit;
     maintainers = with maintainers; [ aanderse ];
diff --git a/pkgs/desktops/plasma-5/3rdparty/addons/krunner-symbols.nix b/pkgs/desktops/plasma-5/3rdparty/addons/krunner-symbols.nix
index 3ac49717390e7..620d56f8e2c10 100644
--- a/pkgs/desktops/plasma-5/3rdparty/addons/krunner-symbols.nix
+++ b/pkgs/desktops/plasma-5/3rdparty/addons/krunner-symbols.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ "-DLOCATION_CONFIG=share/config" ];
 
   meta = with lib; {
-    description = "A little krunner plugin (Plasma 5) to retrieve unicode symbols, or any other string, based on a corresponding keyword";
+    description = "Little krunner plugin (Plasma 5) to retrieve unicode symbols, or any other string, based on a corresponding keyword";
     homepage = "https://github.com/domschrei/krunner-symbols";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ hqurve ];
diff --git a/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/krohnkite.nix b/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/krohnkite.nix
index b6025c5bdf107..b55c34c4d248e 100644
--- a/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/krohnkite.nix
+++ b/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/krohnkite.nix
@@ -39,7 +39,7 @@ mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A dynamic tiling extension for KWin";
+    description = "Dynamic tiling extension for KWin";
     license = licenses.mit;
     maintainers = with maintainers; [ seqizz ];
     inherit (src.meta) homepage;
diff --git a/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/parachute.nix b/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/parachute.nix
index 8d38583e1d511..c50a21f202ded 100644
--- a/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/parachute.nix
+++ b/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/parachute.nix
@@ -37,7 +37,7 @@ mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "Look at your windows and desktops from above.";
+    description = "Look at your windows and desktops from above";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ];
     inherit (src.meta) homepage;
diff --git a/pkgs/desktops/plasma-5/3rdparty/lightly/default.nix b/pkgs/desktops/plasma-5/3rdparty/lightly/default.nix
index c4ae4d75d2010..b3830d06d1efc 100644
--- a/pkgs/desktops/plasma-5/3rdparty/lightly/default.nix
+++ b/pkgs/desktops/plasma-5/3rdparty/lightly/default.nix
@@ -37,7 +37,7 @@ mkDerivation rec{
   ];
 
   meta = with lib; {
-    description = "A modern style for qt applications";
+    description = "Modern style for qt applications";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ pasqui23 ];
     homepage = "https://github.com/Luwx/Lightly/";
diff --git a/pkgs/desktops/plasma-5/default.nix b/pkgs/desktops/plasma-5/default.nix
index 781bf16067096..46b9e0c3a65e0 100644
--- a/pkgs/desktops/plasma-5/default.nix
+++ b/pkgs/desktops/plasma-5/default.nix
@@ -151,6 +151,7 @@ let
       plasma-browser-integration = callPackage ./plasma-browser-integration.nix { };
       plasma-desktop = callPackage ./plasma-desktop { };
       plasma-disks = callPackage ./plasma-disks.nix { };
+      plasma-firewall = callPackage ./plasma-firewall.nix { };
       plasma-integration = callPackage ./plasma-integration { };
       plasma-mobile = callPackage ./plasma-mobile { };
       plasma-nano = callPackage ./plasma-nano { };
diff --git a/pkgs/desktops/plasma-5/plasma-firewall.nix b/pkgs/desktops/plasma-5/plasma-firewall.nix
new file mode 100644
index 0000000000000..e290b5ed0dc12
--- /dev/null
+++ b/pkgs/desktops/plasma-5/plasma-firewall.nix
@@ -0,0 +1,21 @@
+{ mkDerivation
+, extra-cmake-modules
+, python3
+, plasma-framework
+, kcmutils
+}:
+mkDerivation {
+  pname = "plasma-firewall";
+
+  outputs = [ "out" ];
+
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+
+  buildInputs = [
+    kcmutils
+    plasma-framework
+    python3
+  ];
+}
diff --git a/pkgs/desktops/plasma-5/plasma-integration/default.nix b/pkgs/desktops/plasma-5/plasma-integration/default.nix
index cf900af71438e..45e3a6012bd84 100644
--- a/pkgs/desktops/plasma-5/plasma-integration/default.nix
+++ b/pkgs/desktops/plasma-5/plasma-integration/default.nix
@@ -35,7 +35,7 @@ mkDerivation {
   ];
 
   meta = {
-    description = "A set of plugins responsible for better integration of Qt applications when running on a KDE Plasma workspace";
+    description = "Set of plugins responsible for better integration of Qt applications when running on a KDE Plasma workspace";
     homepage = "https://invent.kde.org/plasma/plasma-integration";
   };
 }
diff --git a/pkgs/desktops/plasma-5/srcs.nix b/pkgs/desktops/plasma-5/srcs.nix
index 07e6b4b15b088..be39fe59556ed 100644
--- a/pkgs/desktops/plasma-5/srcs.nix
+++ b/pkgs/desktops/plasma-5/srcs.nix
@@ -412,11 +412,11 @@
     };
   };
   plasma-workspace = {
-    version = "5.27.11";
+    version = "5.27.11.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.27.11/plasma-workspace-5.27.11.tar.xz";
-      sha256 = "1pbsxssa8jgpy2kkhf43ck6gdkjr216b7ashy8sm7v306v29pmh7";
-      name = "plasma-workspace-5.27.11.tar.xz";
+      url = "${mirror}/stable/plasma/5.27.11/plasma-workspace-5.27.11.1.tar.xz";
+      sha256 = "1bib8z7pmb5mscw2p07mbfsphzpvwsiib84s0g25fz4mma6l4hn7";
+      name = "plasma-workspace-5.27.11.1.tar.xz";
     };
   };
   plasma-workspace-wallpapers = {
diff --git a/pkgs/desktops/xfce/applications/gigolo/default.nix b/pkgs/desktops/xfce/applications/gigolo/default.nix
index e63053deedf66..cb885ad3fde48 100644
--- a/pkgs/desktops/xfce/applications/gigolo/default.nix
+++ b/pkgs/desktops/xfce/applications/gigolo/default.nix
@@ -11,7 +11,7 @@ mkXfceDerivation {
   buildInputs = [ gtk3 glib ];
 
   meta = with lib; {
-    description = "A frontend to easily manage connections to remote filesystems";
+    description = "Frontend to easily manage connections to remote filesystems";
     mainProgram = "gigolo";
     license = with licenses; [ gpl2Only ];
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
diff --git a/pkgs/desktops/xfce/applications/ristretto/default.nix b/pkgs/desktops/xfce/applications/ristretto/default.nix
index e5ee18d85da0c..93941346dcc75 100644
--- a/pkgs/desktops/xfce/applications/ristretto/default.nix
+++ b/pkgs/desktops/xfce/applications/ristretto/default.nix
@@ -28,7 +28,7 @@ mkXfceDerivation {
   env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
 
   meta = with lib; {
-    description = "A fast and lightweight picture-viewer for the Xfce desktop environment";
+    description = "Fast and lightweight picture-viewer for the Xfce desktop environment";
     mainProgram = "ristretto";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
diff --git a/pkgs/desktops/xfce/applications/xfce4-dict/default.nix b/pkgs/desktops/xfce/applications/xfce4-dict/default.nix
index 58141262409da..8910985473bf8 100644
--- a/pkgs/desktops/xfce/applications/xfce4-dict/default.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-dict/default.nix
@@ -23,7 +23,7 @@ mkXfceDerivation {
   ];
 
   meta = with lib; {
-    description = "A Dictionary Client for the Xfce desktop environment";
+    description = "Dictionary Client for the Xfce desktop environment";
     mainProgram = "xfce4-dict";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
diff --git a/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix b/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix
index 4a3f85ea0ce32..f609bf6cc060c 100644
--- a/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix
@@ -1,10 +1,18 @@
 { lib
 , mkXfceDerivation
+, wayland-scanner
 , exo
+, gtk3
+, libX11
+, libXext
+, libXfixes
+, libXtst
 , libxml2
 , libsoup_3
 , libxfce4ui
 , libxfce4util
+, wayland
+, wlr-protocols
 , xfce4-panel
 , xfconf
 , curl
@@ -16,17 +24,28 @@
 mkXfceDerivation {
   category = "apps";
   pname = "xfce4-screenshooter";
-  version = "1.10.5";
+  version = "1.10.6";
   odd-unstable = false;
 
-  sha256 = "sha256-x1uQIfiUNMYowrCLpwdt1IsHfJLn81f8I/4NBwX/z9k=";
+  sha256 = "sha256-g3wYIyJEnYCFhCs6YXzfEe5lnvIY8ACN/m7He+ww3mA=";
+
+  nativeBuildInputs = [
+    wayland-scanner
+  ];
 
   buildInputs = [
     exo
+    gtk3
+    libX11
+    libXext
+    libXfixes
+    libXtst
     libxml2
     libsoup_3
     libxfce4ui
     libxfce4util
+    wayland
+    wlr-protocols
     xfce4-panel
     xfconf
   ];
diff --git a/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix b/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix
index a9d87d4f68471..d20bfd4c28e1e 100644
--- a/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix
@@ -42,7 +42,7 @@ mkXfceDerivation {
   passthru.tests.test = nixosTests.terminal-emulators.xfce4-terminal;
 
   meta = with lib; {
-    description = "A modern terminal emulator";
+    description = "Modern terminal emulator";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
     mainProgram = "xfce4-terminal";
   };
diff --git a/pkgs/desktops/xfce/applications/xfce4-volumed-pulse/default.nix b/pkgs/desktops/xfce/applications/xfce4-volumed-pulse/default.nix
index 878975cebb1c6..3ae96bed983f5 100644
--- a/pkgs/desktops/xfce/applications/xfce4-volumed-pulse/default.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-volumed-pulse/default.nix
@@ -10,7 +10,7 @@ mkXfceDerivation {
   buildInputs = [ gtk3 libnotify libpulseaudio keybinder3 xfconf ];
 
   meta = with lib; {
-    description = "A volume keys control daemon for Xfce using pulseaudio";
+    description = "Volume keys control daemon for Xfce using pulseaudio";
     mainProgram = "xfce4-volumed-pulse";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ abbradar ] ++ teams.xfce.members;
diff --git a/pkgs/desktops/xfce/applications/xfmpc/default.nix b/pkgs/desktops/xfce/applications/xfmpc/default.nix
new file mode 100644
index 0000000000000..a8322c7e51bf1
--- /dev/null
+++ b/pkgs/desktops/xfce/applications/xfmpc/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, mkXfceDerivation
+, vala
+, libxfce4util
+, libxfce4ui
+, gtk3
+, glib
+, libmpd
+}:
+
+mkXfceDerivation rec {
+  category = "apps";
+  pname = "xfmpc";
+  # Last release is too old
+  version = "0.3.1-2024-05-29";
+  rev = "cf40dffec6e9b80abb1f1aa6d7dceef4790173dc";
+  sha256 = "sha256-moCWSLGBJuWM4/lRJi6D3w38iJeCntLo3Vl/eVfu7lw=";
+
+  nativeBuildInputs = [
+    vala
+    libxfce4util
+    # Needed both here and in buildInputs for cross compilation to work
+    libxfce4ui
+  ];
+  buildInputs = [
+    gtk3
+    glib
+    libxfce4ui
+    libmpd
+  ];
+
+  meta = with lib; {
+    description = "MPD client written in GTK";
+    homepage = "https://docs.xfce.org/apps/xfmpc/start";
+    changelog = "https://gitlab.xfce.org/apps/xfmpc/-/blob/${rev}/NEWS";
+    maintainers = with maintainers; [ doronbehar ] ++ teams.xfce.members;
+    mainProgram = "xfmpc";
+  };
+}
diff --git a/pkgs/desktops/xfce/core/tumbler/default.nix b/pkgs/desktops/xfce/core/tumbler/default.nix
index e8c7ac2b49489..f43a465ed98b0 100644
--- a/pkgs/desktops/xfce/core/tumbler/default.nix
+++ b/pkgs/desktops/xfce/core/tumbler/default.nix
@@ -38,7 +38,7 @@ mkXfceDerivation {
   '';
 
   meta = with lib; {
-    description = "A D-Bus thumbnailer service";
+    description = "D-Bus thumbnailer service";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix b/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix
index c483c58c81728..7c6d58d84bff6 100644
--- a/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix
+++ b/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix
@@ -12,9 +12,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "xfce4-power-manager";
-  version = "4.18.3";
+  version = "4.18.4";
 
-  sha256 = "sha256-CuW2siApho7u8P01t15dAiqNAiwQzAMZsEugYuKN4kM=";
+  sha256 = "sha256-aybY+B8VC/XS6FO3XRpYuJd9Atr9Tc/Uo45q9fh3YLE=";
 
   buildInputs = [
     gtk3
@@ -29,13 +29,13 @@ mkXfceDerivation {
   # using /run/current-system/sw/bin instead of nix store path prevents polkit permission errors on
   # rebuild.  See https://github.com/NixOS/nixpkgs/issues/77485
   postPatch = ''
-    substituteInPlace src/org.xfce.power.policy.in2 --replace "@sbindir@" "/run/current-system/sw/bin"
-    substituteInPlace common/xfpm-brightness.c --replace "SBINDIR" "\"/run/current-system/sw/bin\""
-    substituteInPlace src/xfpm-suspend.c --replace "SBINDIR" "\"/run/current-system/sw/bin\""
+    substituteInPlace src/org.xfce.power.policy.in2 --replace-fail "@sbindir@" "/run/current-system/sw/bin"
+    substituteInPlace common/xfpm-brightness.c --replace-fail "SBINDIR" "\"/run/current-system/sw/bin\""
+    substituteInPlace src/xfpm-suspend.c --replace-fail "SBINDIR" "\"/run/current-system/sw/bin\""
   '';
 
   meta = with lib; {
-    description = "A power manager for the Xfce Desktop Environment";
+    description = "Power manager for the Xfce Desktop Environment";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/core/xfce4-session/default.nix b/pkgs/desktops/xfce/core/xfce4-session/default.nix
index 73ce969d05f7a..5d2e21598d4f5 100644
--- a/pkgs/desktops/xfce/core/xfce4-session/default.nix
+++ b/pkgs/desktops/xfce/core/xfce4-session/default.nix
@@ -1,6 +1,5 @@
 { lib
 , mkXfceDerivation
-, fetchpatch
 , polkit
 , exo
 , libxfce4util
@@ -16,18 +15,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "xfce4-session";
-  version = "4.18.3";
+  version = "4.18.4";
 
-  sha256 = "sha256-qCkE3aVYVwphoO1ZAyzpL1ZtsLaP6XT1H1rlFoBI3yg=";
-
-  patches = [
-    # Add minimal xdg-desktop-portal conf file
-    # https://gitlab.xfce.org/xfce/xfce4-session/-/issues/181
-    (fetchpatch {
-      url = "https://gitlab.xfce.org/xfce/xfce4-session/-/commit/6451c8b21085631d8861e07ff4e1b2ef64a64ad3.patch";
-      sha256 = "sha256-t3opom0iv7QsKoivzk+nXbxI5uFhNmB8/Qwb4QHvcCQ=";
-    })
-  ];
+  sha256 = "sha256-YxIHxb8mRggHLJ9TQ+KGb9qjt+DMZrxMn+oFuFRL8GI=";
 
   buildInputs = [
     exo
@@ -43,9 +33,6 @@ mkXfceDerivation {
 
   configureFlags = [ "--with-xsession-prefix=${placeholder "out"}" ];
 
-  # See https://github.com/NixOS/nixpkgs/issues/36468
-  env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
-
   passthru.xinitrc = "${xfce4-session}/etc/xdg/xfce4/xinitrc";
 
   meta = with lib; {
diff --git a/pkgs/desktops/xfce/core/xfce4-settings/default.nix b/pkgs/desktops/xfce/core/xfce4-settings/default.nix
index 31aa4bc2e98a7..2979824f12b2b 100644
--- a/pkgs/desktops/xfce/core/xfce4-settings/default.nix
+++ b/pkgs/desktops/xfce/core/xfce4-settings/default.nix
@@ -16,15 +16,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "xfce4-settings";
-  version = "4.18.4";
+  version = "4.18.6";
 
-  sha256 = "sha256-f6ldTmTSvfRjn6j/LKIoFI3cbYZFtNdnAq3dQewc948=";
-
-  postPatch = ''
-    for f in xfsettingsd/pointers.c dialogs/mouse-settings/main.c; do
-      substituteInPlace $f --replace \"libinput-properties.h\" '<xorg/libinput-properties.h>'
-    done
-  '';
+  sha256 = "sha256-xiu26B3dbWu+/AtF/iUC6Wo2U5ZZyzN9RfdbBaQRJ1M=";
 
   buildInputs = [
     exo
diff --git a/pkgs/desktops/xfce/default.nix b/pkgs/desktops/xfce/default.nix
index 77d783cd9039d..0de704176ec99 100644
--- a/pkgs/desktops/xfce/default.nix
+++ b/pkgs/desktops/xfce/default.nix
@@ -1,5 +1,6 @@
 { config
 , lib
+, linuxPackages
 , pkgs
 , generateSplicesForMkScope
 , makeScopeWithSplicing'
@@ -80,6 +81,8 @@ makeScopeWithSplicing' {
 
       ristretto = callPackage ./applications/ristretto { };
 
+      xfmpc = callPackage ./applications/xfmpc { };
+
       xfce4-taskmanager = callPackage ./applications/xfce4-taskmanager { };
 
       xfce4-dict = callPackage ./applications/xfce4-dict { };
@@ -140,7 +143,9 @@ makeScopeWithSplicing' {
 
       xfce4-mpc-plugin = callPackage ./panel-plugins/xfce4-mpc-plugin { };
 
-      xfce4-sensors-plugin = callPackage ./panel-plugins/xfce4-sensors-plugin { };
+      xfce4-sensors-plugin = callPackage ./panel-plugins/xfce4-sensors-plugin {
+        libXNVCtrl = linuxPackages.nvidia_x11.settings.libXNVCtrl;
+      };
 
       xfce4-systemload-plugin = callPackage ./panel-plugins/xfce4-systemload-plugin { };
 
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-docklike-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-docklike-plugin/default.nix
index 0451afc54b22f..3f9b414e7713d 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-docklike-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-docklike-plugin/default.nix
@@ -31,7 +31,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     homepage = "https://docs.xfce.org/panel-plugins/xfce4-docklike-plugin/start";
-    description = "A modern, minimalist taskbar for Xfce";
+    description = "Modern, minimalist taskbar for Xfce";
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix
index 4a3148962efde..dbc96665344f8 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix
@@ -1,5 +1,20 @@
-{ lib, stdenv, fetchurl, pkg-config, intltool, gtk3, libxfce4ui,
-  libxfce4util, xfce4-panel, libnotify, lm_sensors, hddtemp, netcat-gnu, gitUpdater
+{
+  stdenv,
+  lib,
+  fetchurl,
+  pkg-config,
+  intltool,
+  gtk3,
+  libxfce4ui,
+  libxfce4util,
+  xfce4-panel,
+  libnotify,
+  lm_sensors,
+  hddtemp,
+  netcat-gnu,
+  libXNVCtrl,
+  nvidiaSupport ? lib.meta.availableOn stdenv.hostPlatform libXNVCtrl,
+  gitUpdater,
 }:
 
 let
@@ -7,7 +22,7 @@ let
 in
 
 stdenv.mkDerivation rec {
-  pname  = "xfce4-sensors-plugin";
+  pname = "xfce4-sensors-plugin";
   version = "1.4.4";
 
   src = fetchurl {
@@ -29,14 +44,20 @@ stdenv.mkDerivation rec {
     lm_sensors
     hddtemp
     netcat-gnu
-   ];
+  ] ++ lib.optionals nvidiaSupport [ libXNVCtrl ];
 
   enableParallelBuilding = true;
 
-  configureFlags = [
-    "--with-pathhddtemp=${hddtemp}/bin/hddtemp"
-    "--with-pathnetcat=${netcat-gnu}/bin/netcat"
-  ];
+  configureFlags =
+    [
+      "--with-pathhddtemp=${hddtemp}/bin/hddtemp"
+      "--with-pathnetcat=${netcat-gnu}/bin/netcat"
+    ]
+    ++ lib.optionals nvidiaSupport [
+      # Have to be explicitly enabled since this tries to figure out the default
+      # based on the existence of a hardcoded `/usr/include/NVCtrl` path.
+      "--enable-xnvctrl"
+    ];
 
   passthru.updateScript = gitUpdater {
     url = "https://gitlab.xfce.org/panel-plugins/${pname}";
@@ -45,7 +66,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://docs.xfce.org/panel-plugins/xfce4-sensors-plugin";
-    description = "A panel plug-in for different sensors using acpi, lm_sensors and hddtemp";
+    description = "Panel plug-in for different sensors using acpi, lm_sensors and hddtemp";
     mainProgram = "xfce4-sensors";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-verve-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-verve-plugin/default.nix
index a76d3cdb53440..8683c8cb20918 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-verve-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-verve-plugin/default.nix
@@ -24,7 +24,7 @@ mkXfceDerivation {
   ];
 
   meta = with lib; {
-    description = "A command-line plugin";
+    description = "Command-line plugin";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix b/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix
index 5449eadc6d37f..150db52bb5b26 100644
--- a/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix
+++ b/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/Jeinzi/thunar-dropbox";
-    description = "A plugin that adds context-menu items for Dropbox to Thunar";
+    description = "Plugin that adds context-menu items for Dropbox to Thunar";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
diff --git a/pkgs/development/ada-modules/gnatprove/default.nix b/pkgs/development/ada-modules/gnatprove/default.nix
index 884406d3342e2..319b295d58fdc 100644
--- a/pkgs/development/ada-modules/gnatprove/default.nix
+++ b/pkgs/development/ada-modules/gnatprove/default.nix
@@ -86,7 +86,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "a software development technology specifically designed for engineering high-reliability applications";
+    description = "Software development technology specifically designed for engineering high-reliability applications";
     homepage = "https://github.com/AdaCore/spark2014";
     maintainers = [ maintainers.jiegec ];
     license = licenses.gpl3;
diff --git a/pkgs/development/ada-modules/gprbuild/default.nix b/pkgs/development/ada-modules/gprbuild/default.nix
index 00eaa72097673..f1cf28f00af3b 100644
--- a/pkgs/development/ada-modules/gprbuild/default.nix
+++ b/pkgs/development/ada-modules/gprbuild/default.nix
@@ -1,7 +1,5 @@
 { lib
 , stdenv
-, fetchFromGitHub
-, fetchpatch
 , gprbuild-boot
 , which
 , gnat
diff --git a/pkgs/development/beam-modules/default.nix b/pkgs/development/beam-modules/default.nix
index d94bdf2b2d8ea..8b93f09dd92d5 100644
--- a/pkgs/development/beam-modules/default.nix
+++ b/pkgs/development/beam-modules/default.nix
@@ -45,6 +45,11 @@ let
       # BEAM-based languages.
       elixir = elixir_1_16;
 
+      elixir_1_17 = lib'.callElixir ../interpreters/elixir/1.17.nix {
+        inherit erlang;
+        debugInfo = true;
+      };
+
       elixir_1_16 = lib'.callElixir ../interpreters/elixir/1.16.nix {
         inherit erlang;
         debugInfo = true;
diff --git a/pkgs/development/beam-modules/elixir-ls/default.nix b/pkgs/development/beam-modules/elixir-ls/default.nix
index f918916a3a67d..144ffb55e95ea 100644
--- a/pkgs/development/beam-modules/elixir-ls/default.nix
+++ b/pkgs/development/beam-modules/elixir-ls/default.nix
@@ -4,13 +4,12 @@
 
 let
   pname = "elixir-ls";
-  version = "0.21.1";
+  version = "0.21.3";
   src = fetchFromGitHub {
     owner = "elixir-lsp";
     repo = "elixir-ls";
     rev = "v${version}";
-    hash = "sha256-OBLSj1nqv/p1FYg7DapCnr4EU2EW51MQM+YnZqDkcB4=";
-    fetchSubmodules = true;
+    hash = "sha256-IzHvJQ7UdGXFeSyNYKeHlDuY/o1y/E4fM+lG3t9J2HM=";
   };
 in
 mixRelease {
diff --git a/pkgs/development/beam-modules/elvis-erlang/default.nix b/pkgs/development/beam-modules/elvis-erlang/default.nix
index ee850580a53c5..4dff6a21ed84c 100644
--- a/pkgs/development/beam-modules/elvis-erlang/default.nix
+++ b/pkgs/development/beam-modules/elvis-erlang/default.nix
@@ -8,10 +8,10 @@ in rebar3Relx rec {
   releaseType = "escript";
   # The package name "elvis" is already taken
   pname = "elvis-erlang";
-  version = "3.0.1";
+  version = "3.1.0";
   src = fetchFromGitHub {
     inherit owner repo;
-    sha256 = "vXCsGLTpqoKBAN2K35Zl9W82uKbZAFFFzpXh+HTEAwA=";
+    sha256 = "u1KDoLLFQ+HdrLqUAbAFYOZhfpO0j/DfEQ7/ZD5RBDM=";
     rev = version;
   };
   beamDeps = builtins.attrValues (import ./rebar-deps.nix {
diff --git a/pkgs/development/beam-modules/elvis-erlang/rebar-deps.nix b/pkgs/development/beam-modules/elvis-erlang/rebar-deps.nix
index 708fd6c156456..c8d6edcac4a92 100644
--- a/pkgs/development/beam-modules/elvis-erlang/rebar-deps.nix
+++ b/pkgs/development/beam-modules/elvis-erlang/rebar-deps.nix
@@ -1,6 +1,6 @@
 # Generated by rebar3_nix
 let fetchOnly = { src, ... }: src;
-in { builder ? fetchOnly, fetchHex, fetchgit, fetchFromGitHub, overrides ? (x: y: { }) }:
+in { builder ? fetchOnly, fetchHex, fetchgit, overrides ? (x: y: { }), ... }:
 let
   self = packages // (overrides self packages);
   packages = with self; {
@@ -26,21 +26,21 @@ let
     };
     parse_trans = builder {
       name = "parse_trans";
-      version = "3.4.1";
+      version = "3.4.2";
       src = fetchHex {
         pkg = "parse_trans";
-        version = "3.4.1";
-        sha256 = "sha256-YgpAbOddragnuC5FPBnPBndr4mb1pnz/NOHvLLtg5Jo=";
+        version = "3.4.2";
+        sha256 = "sha256-TCU0feO3w1cy0y5pq0PRzu4L6uPzs63htZy9PdIk2co=";
       };
       beamDeps = [ ];
     };
     mimerl = builder {
       name = "mimerl";
-      version = "1.2.0";
+      version = "1.3.0";
       src = fetchHex {
         pkg = "mimerl";
-        version = "1.2.0";
-        sha256 = "sha256-8nhYVlCqWBmGJkY46/aY+LsZ3yl/Zq2RsYkQ38bhkyM=";
+        version = "1.3.0";
+        sha256 = "sha256-oeFaUNGIchfelfC5sHk+MoU/fCWKXNInZQiJs4g5/p0=";
       };
       beamDeps = [ ];
     };
@@ -66,11 +66,11 @@ let
     };
     certifi = builder {
       name = "certifi";
-      version = "2.11.0";
+      version = "2.13.0";
       src = fetchHex {
         pkg = "certifi";
-        version = "2.11.0";
-        sha256 = "sha256-njfgVC7D+rqhmgc0s5ANwJV5f6xIxAoql0HYrV48m7c=";
+        version = "2.13.0";
+        sha256 = "sha256-jz2VM6DwYHCv39XVlrMuIcZYBmekkokYUbDic3vFB6E=";
       };
       beamDeps = [ ];
     };
@@ -96,11 +96,11 @@ let
     };
     katana_code = builder {
       name = "katana_code";
-      version = "2.0.2";
+      version = "2.1.0";
       src = fetchHex {
         pkg = "katana_code";
-        version = "2.0.2";
-        sha256 = "sha256-Plf+1jXgsWpfvazNyHLsU96yHtn8bn65tkFf8Zm3sTg=";
+        version = "2.1.0";
+        sha256 = "sha256-rju6yhh1EViPaWlan/IiUcssxnL9zMGAKJd5vdJRde8=";
       };
       beamDeps = [ ];
     };
@@ -146,11 +146,11 @@ let
     };
     elvis_core = builder {
       name = "elvis_core";
-      version = "3.0.1";
+      version = "3.2.3";
       src = fetchHex {
         pkg = "elvis_core";
-        version = "3.0.1";
-        sha256 = "sha256-TPc1QB50ZcEIUcYkXB4+jnZJhNjAtZSdVpexS1+urUk=";
+        version = "3.2.3";
+        sha256 = "sha256-oPDWgczZNVoWXDWXNnVVHxAhaHz5kvFcW/9mtmZO3gQ=";
       };
       beamDeps = [ katana_code zipper ];
     };
diff --git a/pkgs/development/beam-modules/erlang-ls/default.nix b/pkgs/development/beam-modules/erlang-ls/default.nix
index ea8ab0c5ecfdb..95b991cc7d822 100644
--- a/pkgs/development/beam-modules/erlang-ls/default.nix
+++ b/pkgs/development/beam-modules/erlang-ls/default.nix
@@ -49,7 +49,7 @@ rebar3Relx {
   installFlags = [ "PREFIX=$(out)" ];
   meta = with lib; {
     homepage = "https://github.com/erlang-ls/erlang_ls";
-    description = "The Erlang Language Server";
+    description = "Erlang Language Server";
     platforms = platforms.unix;
     license = licenses.asl20;
     mainProgram = "erlang_ls";
diff --git a/pkgs/development/beam-modules/erlfmt/default.nix b/pkgs/development/beam-modules/erlfmt/default.nix
index 4cf139845a209..f7db8a7816a9a 100644
--- a/pkgs/development/beam-modules/erlfmt/default.nix
+++ b/pkgs/development/beam-modules/erlfmt/default.nix
@@ -12,7 +12,7 @@ rebar3Relx rec {
   };
   meta = with lib; {
     homepage = "https://github.com/WhatsApp/erlfmt";
-    description = "An automated code formatter for Erlang";
+    description = "Automated code formatter for Erlang";
     mainProgram = "erlfmt";
     platforms = platforms.unix;
     license = licenses.asl20;
diff --git a/pkgs/development/beam-modules/hex/default.nix b/pkgs/development/beam-modules/hex/default.nix
index 32628886f11f6..66462f639f1ef 100644
--- a/pkgs/development/beam-modules/hex/default.nix
+++ b/pkgs/development/beam-modules/hex/default.nix
@@ -8,13 +8,13 @@ let
 
   pkg = self: stdenv.mkDerivation rec {
     pname = "hex";
-    version = "2.0.6";
+    version = "2.1.1";
 
     src = fetchFromGitHub {
       owner = "hexpm";
       repo = "hex";
       rev = "v${version}";
-      sha256 = "sha256-fSADQDrqh5U/TdhaHXsMiLMk1wtQ0gEiTqEclJ2w2nY=";
+      sha256 = "sha256-pEfd2BqkVwZVbnka98MafJ/NRn94BHh+wM0i2Q5duTo=";
     };
 
     setupHook = writeText "setupHook.sh" ''
diff --git a/pkgs/development/beam-modules/pc/default.nix b/pkgs/development/beam-modules/pc/default.nix
index 2896a325e0e14..9e03cb08ed288 100644
--- a/pkgs/development/beam-modules/pc/default.nix
+++ b/pkgs/development/beam-modules/pc/default.nix
@@ -6,7 +6,7 @@ buildHex {
   sha256 = "1gdvixy4j560qjdiv5qjgnl5wl3rrn231dv1m4vdq4b9l4g4p27x";
 
   meta = {
-    description = "a rebar3 port compiler for native code";
+    description = "Rebar3 port compiler for native code";
     license = lib.licenses.mit;
     homepage = "https://github.com/blt/port_compiler";
   };
diff --git a/pkgs/development/compilers/abcl/default.nix b/pkgs/development/compilers/abcl/default.nix
index 317d0d92266d4..f02e77753bc52 100644
--- a/pkgs/development/compilers/abcl/default.nix
+++ b/pkgs/development/compilers/abcl/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.updateScript = ./update.sh;
 
   meta = {
-    description = "A JVM-based Common Lisp implementation";
+    description = "JVM-based Common Lisp implementation";
     homepage = "https://common-lisp.net/project/armedbear/";
     license = lib.licenses.gpl2Classpath;
     mainProgram = "abcl";
diff --git a/pkgs/development/compilers/acme/default.nix b/pkgs/development/compilers/acme/default.nix
index cc6426a309a55..855abe1844d6e 100644
--- a/pkgs/development/compilers/acme/default.nix
+++ b/pkgs/development/compilers/acme/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "BINDIR=$(out)/bin" ];
 
   meta = with lib; {
-    description = "A multi-platform cross assembler for 6502/6510/65816 CPUs";
+    description = "Multi-platform cross assembler for 6502/6510/65816 CPUs";
     mainProgram = "acme";
     homepage = "https://sourceforge.net/projects/acme-crossass/";
     license = licenses.gpl2Plus;
diff --git a/pkgs/development/compilers/adoptopenjdk-bin/jdk15-darwin.nix b/pkgs/development/compilers/adoptopenjdk-bin/jdk15-darwin.nix
index b9d706653065b..369822fa1ef74 100644
--- a/pkgs/development/compilers/adoptopenjdk-bin/jdk15-darwin.nix
+++ b/pkgs/development/compilers/adoptopenjdk-bin/jdk15-darwin.nix
@@ -4,8 +4,8 @@ let
   sources = lib.importJSON ./sources.json;
 in
 {
-  jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk15.mac.jdk.hotspot; };
-  jre-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk15.mac.jre.hotspot; };
-  jdk-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk15.mac.jdk.openj9; };
-  jre-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk15.mac.jre.openj9; };
+  jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk15.mac.jdk.hotspot; knownVulnerabilities = [ "Support ended" ]; };
+  jre-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk15.mac.jre.hotspot; knownVulnerabilities = [ "Support ended" ]; };
+  jdk-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk15.mac.jdk.openj9; knownVulnerabilities = [ "Support ended" ]; };
+  jre-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk15.mac.jre.openj9; knownVulnerabilities = [ "Support ended" ]; };
 }
diff --git a/pkgs/development/compilers/adoptopenjdk-bin/jdk15-linux.nix b/pkgs/development/compilers/adoptopenjdk-bin/jdk15-linux.nix
index 7c6d1d36021e4..52641c690bf03 100644
--- a/pkgs/development/compilers/adoptopenjdk-bin/jdk15-linux.nix
+++ b/pkgs/development/compilers/adoptopenjdk-bin/jdk15-linux.nix
@@ -5,8 +5,8 @@ let
   sources = lib.importJSON ./sources.json;
 in
 {
-  jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk15.${variant}.jdk.hotspot; };
-  jre-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk15.${variant}.jre.hotspot; };
-  jdk-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk15.${variant}.jdk.openj9; };
-  jre-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk15.${variant}.jre.openj9; };
+  jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk15.${variant}.jdk.hotspot; knownVulnerabilities = [ "Support ended" ]; };
+  jre-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk15.${variant}.jre.hotspot; knownVulnerabilities = [ "Support ended" ]; };
+  jdk-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk15.${variant}.jdk.openj9; knownVulnerabilities = [ "Support ended" ]; };
+  jre-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk15.${variant}.jre.openj9; knownVulnerabilities = [ "Support ended" ]; };
 }
diff --git a/pkgs/development/compilers/adoptopenjdk-bin/jdk16-darwin.nix b/pkgs/development/compilers/adoptopenjdk-bin/jdk16-darwin.nix
index a7473710d14ba..454e92834bb0a 100644
--- a/pkgs/development/compilers/adoptopenjdk-bin/jdk16-darwin.nix
+++ b/pkgs/development/compilers/adoptopenjdk-bin/jdk16-darwin.nix
@@ -4,8 +4,8 @@ let
   sources = lib.importJSON ./sources.json;
 in
 {
-  jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk16.mac.jdk.hotspot; };
-  jre-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk16.mac.jre.hotspot; };
-  jdk-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk16.mac.jdk.openj9; };
-  jre-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk16.mac.jre.openj9; };
+  jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk16.mac.jdk.hotspot; knownVulnerabilities = [ "Support ended" ]; };
+  jre-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk16.mac.jre.hotspot; knownVulnerabilities = [ "Support ended" ]; };
+  jdk-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk16.mac.jdk.openj9; knownVulnerabilities = [ "Support ended" ]; };
+  jre-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk16.mac.jre.openj9; knownVulnerabilities = [ "Support ended" ]; };
 }
diff --git a/pkgs/development/compilers/adoptopenjdk-bin/jdk16-linux.nix b/pkgs/development/compilers/adoptopenjdk-bin/jdk16-linux.nix
index 3d803901d3414..3a50ad669c2e7 100644
--- a/pkgs/development/compilers/adoptopenjdk-bin/jdk16-linux.nix
+++ b/pkgs/development/compilers/adoptopenjdk-bin/jdk16-linux.nix
@@ -5,8 +5,8 @@ let
   sources = lib.importJSON ./sources.json;
 in
 {
-  jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk16.${variant}.jdk.hotspot; };
-  jre-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk16.${variant}.jre.hotspot; };
-  jdk-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk16.${variant}.jdk.openj9; };
-  jre-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk16.${variant}.jre.openj9; };
+  jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk16.${variant}.jdk.hotspot; knownVulnerabilities = [ "Support ended" ]; };
+  jre-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk16.${variant}.jre.hotspot; knownVulnerabilities = [ "Support ended" ]; };
+  jdk-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk16.${variant}.jdk.openj9; knownVulnerabilities = [ "Support ended" ]; };
+  jre-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk16.${variant}.jre.openj9; knownVulnerabilities = [ "Support ended" ]; };
 }
diff --git a/pkgs/development/compilers/alan/2.nix b/pkgs/development/compilers/alan/2.nix
index a80b6ab35cb0a..ce175dba687a3 100644
--- a/pkgs/development/compilers/alan/2.nix
+++ b/pkgs/development/compilers/alan/2.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.alanif.se/";
-    description = "The Alan interactive fiction language (legacy version)";
+    description = "Alan interactive fiction language (legacy version)";
     license = licenses.artistic2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ neilmayhew ];
diff --git a/pkgs/development/compilers/alan/default.nix b/pkgs/development/compilers/alan/default.nix
index 61f7b1c0f7b81..296f9331c8152 100644
--- a/pkgs/development/compilers/alan/default.nix
+++ b/pkgs/development/compilers/alan/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.alanif.se/";
-    description = "The Alan interactive fiction language";
+    description = "Alan interactive fiction language";
     license = licenses.artistic2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ neilmayhew ];
diff --git a/pkgs/development/compilers/ante/default.nix b/pkgs/development/compilers/ante/default.nix
index 906ee0f16c2aa..e3b4738b7b215 100644
--- a/pkgs/development/compilers/ante/default.nix
+++ b/pkgs/development/compilers/ante/default.nix
@@ -51,7 +51,7 @@ rustPlatform.buildRustPackage {
 
   meta = with lib; {
     homepage = "https://antelang.org/";
-    description = "A low-level functional language for exploring refinement types, lifetime inference, and algebraic effects";
+    description = "Low-level functional language for exploring refinement types, lifetime inference, and algebraic effects";
     mainProgram = "ante";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ ehllie ];
diff --git a/pkgs/development/compilers/armips/default.nix b/pkgs/development/compilers/armips/default.nix
index 6e3a3ef4d964b..1f0094a203cf9 100644
--- a/pkgs/development/compilers/armips/default.nix
+++ b/pkgs/development/compilers/armips/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/Kingcom/armips";
-    description = "Assembler for various ARM and MIPS platforms.";
+    description = "Assembler for various ARM and MIPS platforms";
     mainProgram = "armips";
     license = licenses.mit;
     maintainers = with maintainers; [ marius851000 ];
diff --git a/pkgs/development/compilers/as31/default.nix b/pkgs/development/compilers/as31/default.nix
index 9cff12dd306d9..3f7cc35e6d97a 100644
--- a/pkgs/development/compilers/as31/default.nix
+++ b/pkgs/development/compilers/as31/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://wiki.erazor-zone.de/wiki:projects:linux:as31";
-    description = "An 8031/8051 assembler";
+    description = "8031/8051 assembler";
     mainProgram = "as31";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ AndersonTorres ];
diff --git a/pkgs/development/compilers/aspectj/default.nix b/pkgs/development/compilers/aspectj/default.nix
index 2b7ac53401117..55b9cf5af86c4 100644
--- a/pkgs/development/compilers/aspectj/default.nix
+++ b/pkgs/development/compilers/aspectj/default.nix
@@ -6,7 +6,7 @@
 }:
 
 let
-  version = "1.9.22";
+  version = "1.9.22.1";
   versionSnakeCase = builtins.replaceStrings [ "." ] [ "_" ] version;
 in
 stdenvNoCC.mkDerivation {
@@ -17,7 +17,7 @@ stdenvNoCC.mkDerivation {
 
   src = fetchurl {
     url = "https://github.com/eclipse/org.aspectj/releases/download/V${versionSnakeCase}/aspectj-${version}.jar";
-    hash = "sha256-kQsWu/rS7Qf7Fcg5VZ+QhggvK69aUVD3HCh0aJ2qhfw=";
+    hash = "sha256-NIyYVhJIGXz+vNVoAQzYsDfmOYc4QrRzJGWeQjS4X0U=";
   };
 
   dontUnpack = true;
@@ -48,7 +48,7 @@ stdenvNoCC.mkDerivation {
 
   meta = {
     homepage = "https://www.eclipse.org/aspectj/";
-    description = "A seamless aspect-oriented extension to the Java programming language";
+    description = "Seamless aspect-oriented extension to the Java programming language";
     license = lib.licenses.epl10;
     platforms = lib.platforms.unix;
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
diff --git a/pkgs/development/compilers/atasm/default.nix b/pkgs/development/compilers/atasm/default.nix
index d79fc686b2692..4e73fa6d4ecde 100644
--- a/pkgs/development/compilers/atasm/default.nix
+++ b/pkgs/development/compilers/atasm/default.nix
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/CycoPH/atasm";
-    description = "A commandline 6502 assembler compatible with Mac/65";
+    description = "Commandline 6502 assembler compatible with Mac/65";
     license = licenses.gpl2Plus;
     changelog = "https://github.com/CycoPH/atasm/releases/tag/V${version}";
     maintainers = with maintainers; [ AndersonTorres ];
diff --git a/pkgs/development/compilers/august/default.nix b/pkgs/development/compilers/august/default.nix
index 4dcb9038f0787..2e8aec11763c0 100644
--- a/pkgs/development/compilers/august/default.nix
+++ b/pkgs/development/compilers/august/default.nix
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage {
   '';
 
   meta = with lib; {
-    description = "An Emmet-like language that produces JSON, TOML, or YAML";
+    description = "Emmet-like language that produces JSON, TOML, or YAML";
     homepage = "https://github.com/yoav-lavi/august";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ figsoda ];
diff --git a/pkgs/development/compilers/ballerina/default.nix b/pkgs/development/compilers/ballerina/default.nix
index 2c64bb7b54f3f..f32cc203b67d4 100644
--- a/pkgs/development/compilers/ballerina/default.nix
+++ b/pkgs/development/compilers/ballerina/default.nix
@@ -1,6 +1,6 @@
 { ballerina, lib, writeText, runCommand, makeWrapper, fetchzip, stdenv, openjdk }:
 let
-  version = "2201.9.0";
+  version = "2201.9.1";
   codeName = "swan-lake";
 in stdenv.mkDerivation {
   pname = "ballerina";
@@ -8,7 +8,7 @@ in stdenv.mkDerivation {
 
   src = fetchzip {
     url = "https://dist.ballerina.io/downloads/${version}/ballerina-${version}-${codeName}.zip";
-    hash = "sha256-HLZqhVHBghVd52rbbsEoM4FxoEslxPSJ/oimBPNnmMM=";
+    hash = "sha256-5ATrR2TZHu4xr+XuGaiSZpIKTDQt6MTxg2DdU1qVjMI=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -36,7 +36,7 @@ in stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "An open-source programming language for the cloud";
+    description = "Open-source programming language for the cloud";
     mainProgram = "bal";
     license = licenses.asl20;
     platforms = openjdk.meta.platforms;
diff --git a/pkgs/development/compilers/bfc/default.nix b/pkgs/development/compilers/bfc/default.nix
index c6d351e4c1913..83710df4c13b5 100644
--- a/pkgs/development/compilers/bfc/default.nix
+++ b/pkgs/development/compilers/bfc/default.nix
@@ -33,7 +33,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "An industrial-grade brainfuck compiler";
+    description = "Industrial-grade brainfuck compiler";
     mainProgram = "bfc";
     homepage = "https://bfc.wilfred.me.uk";
     license = licenses.gpl2Plus;
diff --git a/pkgs/development/compilers/blueprint/default.nix b/pkgs/development/compilers/blueprint/default.nix
index c37d5c91c2760..5c1aa1b2a2cd6 100644
--- a/pkgs/development/compilers/blueprint/default.nix
+++ b/pkgs/development/compilers/blueprint/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A markup language for GTK user interface files";
+    description = "Markup language for GTK user interface files";
     mainProgram = "blueprint-compiler";
     homepage = "https://gitlab.gnome.org/jwestman/blueprint-compiler";
     license = licenses.lgpl3Plus;
diff --git a/pkgs/development/compilers/bs-platform/build-bs-platform.nix b/pkgs/development/compilers/bs-platform/build-bs-platform.nix
index c73bb72b9d0f8..1097e7d3f81fb 100644
--- a/pkgs/development/compilers/bs-platform/build-bs-platform.nix
+++ b/pkgs/development/compilers/bs-platform/build-bs-platform.nix
@@ -1,7 +1,7 @@
 # This file is based on https://github.com/turboMaCk/bs-platform.nix/blob/master/build-bs-platform.nix
 # to make potential future updates simpler
 
-{ lib, stdenv, fetchFromGitHub, ninja, runCommand, nodejs, python3,
+{ lib, stdenv, ninja, runCommand, nodejs, python3,
   ocaml-version, version, src,
   patches ? [],
   ocaml ? (import ./ocaml.nix {
@@ -15,7 +15,8 @@
       tar zxvf ${src}/vendor/ninja.tar.gz -C $out
     '';
     patches = [];
-  }))
+  })),
+  ...
 }:
 
 let
diff --git a/pkgs/development/compilers/bs-platform/default.nix b/pkgs/development/compilers/bs-platform/default.nix
index ea56b85dec9ee..a1b8ad550ac36 100644
--- a/pkgs/development/compilers/bs-platform/default.nix
+++ b/pkgs/development/compilers/bs-platform/default.nix
@@ -18,7 +18,7 @@ in
   };
 }).overrideAttrs (attrs: {
   meta = with lib; {
-    description = "A JavaScript backend for OCaml focused on smooth integration and clean generated code";
+    description = "JavaScript backend for OCaml focused on smooth integration and clean generated code";
     homepage = "https://bucklescript.github.io";
     license = licenses.lgpl3;
     maintainers = with maintainers; [ turbomack gamb ];
diff --git a/pkgs/development/compilers/bupc/default.nix b/pkgs/development/compilers/bupc/default.nix
index 947a154a3d3c7..ddec40e49cb9c 100644
--- a/pkgs/development/compilers/bupc/default.nix
+++ b/pkgs/development/compilers/bupc/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ perl ];
 
   meta = with lib; {
-    description = "A compiler for the Berkely Unified Parallel C language";
+    description = "Compiler for the Berkely Unified Parallel C language";
     longDescription = ''
       Unified Parallel C (UPC) is an extension of the C programming language
       designed for high performance computing on large-scale parallel
diff --git a/pkgs/development/compilers/c0/default.nix b/pkgs/development/compilers/c0/default.nix
index 15b83980b9c67..4c3f5ba201dea 100644
--- a/pkgs/development/compilers/c0/default.nix
+++ b/pkgs/development/compilers/c0/default.nix
@@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A small safe subset of the C programming language, augmented with contracts";
+    description = "Small safe subset of the C programming language, augmented with contracts";
     homepage = "https://c0.cs.cmu.edu/";
     license = licenses.mit;
     maintainers = [ ];
diff --git a/pkgs/development/compilers/c3c/default.nix b/pkgs/development/compilers/c3c/default.nix
index 4310ad931792e..2577f1321d749 100644
--- a/pkgs/development/compilers/c3c/default.nix
+++ b/pkgs/development/compilers/c3c/default.nix
@@ -7,16 +7,17 @@
 , libxml2
 , libffi
 , xar
+, testers
 }:
 
-llvmPackages.stdenv.mkDerivation rec {
+llvmPackages.stdenv.mkDerivation (finalAttrs: {
   pname = "c3c";
   version = "0.5.5";
 
   src = fetchFromGitHub {
     owner = "c3lang";
-    repo = pname;
-    rev = "refs/tags/${version}";
+    repo = "c3c";
+    rev = "refs/tags/${finalAttrs.version}";
     hash = "sha256-iOljE1BRVc92NJZj+nr1G6KkBTCwJEUOadXHUDNoPGk=";
   };
 
@@ -50,11 +51,18 @@ llvmPackages.stdenv.mkDerivation rec {
     runHook postCheck
   '';
 
+  passthru.tests = {
+    version = testers.testVersion {
+      package = finalAttrs.finalPackage;
+    };
+  };
+
   meta = with lib; {
     description = "Compiler for the C3 language";
     homepage = "https://github.com/c3lang/c3c";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ luc65r ];
     platforms = platforms.all;
+    mainProgram = "c3c";
   };
-}
+})
diff --git a/pkgs/development/compilers/cakelisp/default.nix b/pkgs/development/compilers/cakelisp/default.nix
index 4c5af8d26b454..c52c93c5e6c7e 100644
--- a/pkgs/development/compilers/cakelisp/default.nix
+++ b/pkgs/development/compilers/cakelisp/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation {
   };
 
   meta = with lib; {
-    description = "A performance-oriented Lisp-like language";
+    description = "Performance-oriented Lisp-like language";
     mainProgram = "cakelisp";
     homepage = "https://macoy.me/code/macoy/cakelisp";
     license = licenses.gpl3Plus;
diff --git a/pkgs/development/compilers/carp/default.nix b/pkgs/development/compilers/carp/default.nix
index 69ca47571ecc7..9e54e19ba699e 100644
--- a/pkgs/development/compilers/carp/default.nix
+++ b/pkgs/development/compilers/carp/default.nix
@@ -52,7 +52,7 @@ haskellPackages.mkDerivation rec {
       --prefix PATH : ${clang}/bin
   '';
 
-  description = "A statically typed lisp, without a GC, for real-time applications";
+  description = "Statically typed lisp, without a GC, for real-time applications";
   homepage    = "https://github.com/carp-lang/Carp";
   license     = lib.licenses.asl20;
   maintainers = with lib.maintainers; [ jluttine ];
diff --git a/pkgs/development/compilers/ccl/default.nix b/pkgs/development/compilers/ccl/default.nix
index 332e0b1bccf4a..9fe1a8aa8e564 100644
--- a/pkgs/development/compilers/ccl/default.nix
+++ b/pkgs/development/compilers/ccl/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, runCommand, bootstrap_cmds, coreutils, glibc, m4, runtimeShell }:
+{ lib, stdenv, fetchurl, bootstrap_cmds, coreutils, glibc, m4, runtimeShell }:
 
 let
   options = rec {
diff --git a/pkgs/development/compilers/chez/default.nix b/pkgs/development/compilers/chez/default.nix
index ee137a1dfb267..9002db42abc28 100644
--- a/pkgs/development/compilers/chez/default.nix
+++ b/pkgs/development/compilers/chez/default.nix
@@ -66,7 +66,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = {
-    description  = "A powerful and incredibly fast R6RS Scheme compiler";
+    description  = "Powerful and incredibly fast R6RS Scheme compiler";
     homepage     = "https://cisco.github.io/ChezScheme/";
     license      = lib.licenses.asl20;
     maintainers  = with lib.maintainers; [ thoughtpolice ];
diff --git a/pkgs/development/compilers/chicken/4/chicken.nix b/pkgs/development/compilers/chicken/4/chicken.nix
index 29cf5b115b300..b96a1d459d712 100644
--- a/pkgs/development/compilers/chicken/4/chicken.nix
+++ b/pkgs/development/compilers/chicken/4/chicken.nix
@@ -84,7 +84,7 @@ stdenv.mkDerivation {
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ corngood ];
     platforms = lib.platforms.linux ++ lib.platforms.darwin; # Maybe other Unix
-    description = "A portable compiler for the Scheme programming language";
+    description = "Portable compiler for the Scheme programming language";
     longDescription = ''
       CHICKEN is a compiler for the Scheme programming language.
       CHICKEN produces portable and efficient C, supports almost all
diff --git a/pkgs/development/compilers/chicken/5/chicken.nix b/pkgs/development/compilers/chicken/5/chicken.nix
index 11ae3e521093a..dd15b5394bc9c 100644
--- a/pkgs/development/compilers/chicken/5/chicken.nix
+++ b/pkgs/development/compilers/chicken/5/chicken.nix
@@ -71,7 +71,7 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ corngood nagy konst-aa ];
     platforms = lib.platforms.unix;
-    description = "A portable compiler for the Scheme programming language";
+    description = "Portable compiler for the Scheme programming language";
     longDescription = ''
       CHICKEN is a compiler for the Scheme programming language.
       CHICKEN produces portable and efficient C, supports almost all
diff --git a/pkgs/development/compilers/ciao/default.nix b/pkgs/development/compilers/ciao/default.nix
index 98c26b3e9a08e..29e1032260224 100644
--- a/pkgs/development/compilers/ciao/default.nix
+++ b/pkgs/development/compilers/ciao/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://ciao-lang.org/";
-    description = "A general purpose, multi-paradigm programming language in the Prolog family";
+    description = "General purpose, multi-paradigm programming language in the Prolog family";
     license = licenses.lgpl21;
     maintainers = with maintainers; [ suhr ];
     platforms = platforms.unix;
diff --git a/pkgs/development/compilers/circt/default.nix b/pkgs/development/compilers/circt/default.nix
index 7b04a23a98c41..a893166082d5f 100644
--- a/pkgs/development/compilers/circt/default.nix
+++ b/pkgs/development/compilers/circt/default.nix
@@ -18,12 +18,12 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "circt";
-  version = "1.75.0";
+  version = "1.76.0";
   src = fetchFromGitHub {
     owner = "llvm";
     repo = "circt";
     rev = "firtool-${version}";
-    hash = "sha256-jacmj383n0crEwkgkr2qN8n0PWfCnDxzaRaMGVuyrMg=";
+    hash = "sha256-L8ELchwUzweS1gzZ8EfnddZu5xMJIVURViwwtPpxylo=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/compilers/clasp/clasp-pin-repos-commits.patch b/pkgs/development/compilers/clasp/clasp-pin-repos-commits.patch
deleted file mode 100644
index 203ad59514119..0000000000000
--- a/pkgs/development/compilers/clasp/clasp-pin-repos-commits.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-diff --git a/repos.sexp b/repos.sexp
-index d31d4d62d..cd3238585 100644
---- a/repos.sexp
-+++ b/repos.sexp
-@@ -5,17 +5,17 @@
- ;;;;   4. src/ - C/C++ dependencies for iclasp
- ;;;;   5. extensions/ - extensions and their dependencies
- ((:name :ansi-test
--  :repository "https://gitlab.common-lisp.net/yitzchak/ansi-test"
-+  :repository "https://github.com/clasp-developers/ansi-test.git"
-   :directory "dependencies/ansi-test/"
--  :branch "add-expected-failures")
-+  :commit "33ae7c1ddd3e814bbe6f55b9e7a6a92b39404664")
-  (:name :cl-bench
--  :repository "https://gitlab.common-lisp.net/ansi-test/cl-bench.git"
-+  :repository "https://github.com/clasp-developers/cl-bench.git"
-   :directory "dependencies/cl-bench/"
--  :branch "master")
-+  :commit "7d184b4ef2a6272f0e3de88f6c243edb20f7071a")
-  (:name :cl-who
-   :repository "https://github.com/edicl/cl-who.git"
-   :directory "dependencies/cl-who/"
--  :branch "master")
-+  :commit "07dafe9b351c32326ce20b5804e798f10d4f273d")
-  (:name :quicklisp-client
-   :repository "https://github.com/quicklisp/quicklisp-client.git"
-   :directory "dependencies/quicklisp-client/"
-@@ -23,21 +23,21 @@
-  (:name :shasht
-   :repository "https://github.com/yitzchak/shasht.git"
-   :directory "dependencies/shasht/"
--  :branch "master")
-+  :commit "f38e866990c6b5381a854d63f7ea0227c87c2f6d")
-  (:name :trivial-do
-   :repository "https://github.com/yitzchak/trivial-do.git"
-   :directory "dependencies/trivial-do/"
--  :branch "master")
-+  :commit "a19f93227cb80a6bec8846655ebcc7998020bd7e")
-  (:name :trivial-gray-streams
-   :repository "https://github.com/trivial-gray-streams/trivial-gray-streams.git"
-   :directory "dependencies/trivial-gray-streams/"
--  :branch "master")
-+  :commit "2b3823edbc78a450db4891fd2b566ca0316a7876")
-  (:name :acclimation
-   :repository "https://github.com/robert-strandh/Acclimation.git"
-   :directory "src/lisp/kernel/contrib/Acclimation/"
-   :commit "dd15c86b0866fc5d8b474be0da15c58a3c04c45c")
-  (:name :alexandria
--  :repository "https://gitlab.common-lisp.net/alexandria/alexandria.git"
-+  :repository "https://github.com/clasp-developers/alexandria.git"
-   :directory "src/lisp/kernel/contrib/alexandria/"
-   :commit "v1.4")
-  (:name :anaphora
-@@ -128,7 +128,7 @@
-  (:name :lparallel
-   :repository "https://github.com/yitzchak/lparallel.git"
-   :directory "src/lisp/kernel/contrib/lparallel/"
--  :branch "fix-asdf-feature"
-+  :commit "9c98bf629328b27a5a3fbb7a637afd1db439c00f"
-   :extension :cando)
-  (:name :parser.common-rules
-   :repository "https://github.com/scymtym/parser.common-rules.git"
-@@ -150,9 +150,9 @@
-   :commit "87a447a8eaef9cf4fd1c16d407a49f9adaf8adad"
-   :extension :cando)
-  (:name :trivial-features ; Needed both by the host and eclasp
--  :repository "https://github.com/yitzchak/trivial-features.git"
-+  :repository "https://github.com/trivial-features/trivial-features.git"
-   :directory "src/lisp/kernel/contrib/trivial-features/"
--  :branch "asdf-feature")
-+  :commit "d249a62aaf022902398a7141ae17217251fc61db")
-  (:name :trivial-garbage
-   :repository "https://github.com/trivial-garbage/trivial-garbage.git"
-   :directory "src/lisp/kernel/contrib/trivial-garbage/"
-@@ -176,7 +176,7 @@
-   :directory "src/lisp/kernel/contrib/usocket/"
-   :commit "7ad6582cc1ce9e7fa5931a10e73b7d2f2688fa81")
-  (:name :asdf
--  :repository "https://gitlab.common-lisp.net/asdf/asdf.git"
-+  :repository "https://github.com/clasp-developers/asdf.git"
-   :directory "src/lisp/modules/asdf/"
-   :commit "3.3.5")
-  (:name :mps
-@@ -205,4 +205,4 @@
-   :repository "https://github.com/seqan/seqan.git"
-   :directory "extensions/seqan-clasp/seqan/"
-   :commit "f5f658343c366c9c3d44ba358ffc9317e78a09ed"
--  :extension :seqan-clasp))
-\ No newline at end of file
-+  :extension :seqan-clasp))
diff --git a/pkgs/development/compilers/clasp/default.nix b/pkgs/development/compilers/clasp/default.nix
index 64617d01f156e..0d27b9f62c8ae 100644
--- a/pkgs/development/compilers/clasp/default.nix
+++ b/pkgs/development/compilers/clasp/default.nix
@@ -1,8 +1,7 @@
 { lib
 , llvmPackages_15
-, fetchFromGitHub
+, fetchzip
 , sbcl
-, git
 , pkg-config
 , fmt_9
 , gmpxx
@@ -15,39 +14,28 @@
 
 let
   inherit (llvmPackages_15) stdenv llvm libclang;
-
-  # Gathered from https://github.com/clasp-developers/clasp/raw/2.2.0/repos.sexp
-  dependencies = import ./dependencies.nix {
-    inherit fetchFromGitHub;
-  };
-
-  # Shortened version of `_defaultUnpack`
-  unpackDependency = elem: ''
-    mkdir -p "source/${elem.directory}"
-    cp -pr --reflink=auto -- ${elem.src}/* "source/${elem.directory}"
-    chmod -R u+w -- "source/${elem.directory}"
-  '';
 in
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "clasp";
-  version = "2.2.0";
+  version = "2.6.0";
 
-  src = fetchFromGitHub {
-    owner = "clasp-developers";
-    repo = "clasp";
-    rev = "2.2.0";
-    hash = "sha256-gvUqUb0dftW1miiBcAPJur0wOunox4y2SUYeeJpR9R4=";
+  src = fetchzip {
+    url = "https://github.com/clasp-developers/clasp/releases/download/${version}/clasp-${version}.tar.gz";
+    hash = "sha256-SiQ4RMha6dMV7V2fh+UxtAIgEEH/6/hF9fe+bPtoGIw=";
   };
 
   patches = [
-    ./clasp-pin-repos-commits.patch
     ./remove-unused-command-line-argument.patch
   ];
 
+  # Workaround for https://github.com/clasp-developers/clasp/issues/1590
+  postPatch = ''
+    echo '(defmethod configure-unit (c (u (eql :git))))' >> src/koga/units.lisp
+  '';
+
   nativeBuildInputs = [
     sbcl
-    git
     pkg-config
     fmt_9
     gmpxx
@@ -61,13 +49,12 @@ stdenv.mkDerivation {
 
   ninjaFlags = [ "-C" "build" ];
 
-  postUnpack = lib.concatStringsSep "\n" (builtins.map unpackDependency dependencies);
-
   configurePhase = ''
     export SOURCE_DATE_EPOCH=1
     export ASDF_OUTPUT_TRANSLATIONS=$(pwd):$(pwd)/__fasls
     sbcl --script koga \
       --skip-sync \
+      --build-mode=bytecode-faso \
       --cc=$NIX_CC/bin/cc \
       --cxx=$NIX_CC/bin/c++ \
       --reproducible-build \
@@ -78,7 +65,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "A Common Lisp implementation based on LLVM with C++ integration";
+    description = "Common Lisp implementation based on LLVM with C++ integration";
     license = lib.licenses.lgpl21Plus ;
     maintainers = lib.teams.lisp.members;
     platforms = ["x86_64-linux" "x86_64-darwin"];
@@ -86,5 +73,6 @@ stdenv.mkDerivation {
     # error: use of undeclared identifier 'aligned_alloc'
     broken = stdenv.isDarwin;
     homepage = "https://github.com/clasp-developers/clasp";
+    mainProgram = "clasp";
   };
 }
diff --git a/pkgs/development/compilers/clasp/dependencies.nix b/pkgs/development/compilers/clasp/dependencies.nix
deleted file mode 100644
index abcd0f17747de..0000000000000
--- a/pkgs/development/compilers/clasp/dependencies.nix
+++ /dev/null
@@ -1,457 +0,0 @@
-# Gathered from https://github.com/clasp-developers/clasp/raw/2.2.0/repos.sexp
-# Generated using https://gist.github.com/philiptaron/8ea1394b049c2ca975e4b03965d9ac00
-# and then light editing using Vim
-
-{ fetchFromGitHub }:
-
-[
-  {
-    directory = "dependencies/ansi-test/";
-    src = fetchFromGitHub {
-      owner = "clasp-developers";
-      repo = "ansi-test";
-      rev = "33ae7c1ddd3e814bbe6f55b9e7a6a92b39404664";
-      hash = "sha256-dGF7CScvfPNMRxQXJM4v6Vfc/VjdUXNz0yCjUOsYM3I=";
-    };
-  }
-
-  {
-    directory = "dependencies/cl-bench/";
-    src = fetchFromGitHub {
-      owner = "clasp-developers";
-      repo = "cl-bench";
-      rev = "7d184b4ef2a6272f0e3de88f6c243edb20f7071a";
-      hash = "sha256-7ZEIWNEj7gzYFMTqW7nnZgjNE1zoTAMeJHj547gRtPs=";
-    };
-  }
-
-  {
-    directory = "dependencies/cl-who/";
-    src = fetchFromGitHub {
-      owner = "edicl";
-      repo = "cl-who";
-      rev = "07dafe9b351c32326ce20b5804e798f10d4f273d";
-      hash = "sha256-5T762W3qetAjXtHP77ko6YZR6w5bQ04XM6QZPELQu+U=";
-    };
-  }
-
-  {
-    directory = "dependencies/quicklisp-client/";
-    src = fetchFromGitHub {
-      owner = "quicklisp";
-      repo = "quicklisp-client";
-      rev = "8b63e00b3a2b3f96e24c113d7601dd03a128ce94";
-      hash = "sha256-1HLVPhl8aBaeG8dRLxBh0j0X/0wqFeNYK1CEfiELToA=";
-    };
-  }
-
-  {
-    directory = "dependencies/shasht/";
-    src = fetchFromGitHub {
-      owner = "yitzchak";
-      repo = "shasht";
-      rev = "f38e866990c6b5381a854d63f7ea0227c87c2f6d";
-      hash = "sha256-Ki5JNevMvVZoUz3tP6cv7qA4xDLzjd2MXmf4x9ew5bw=";
-    };
-  }
-
-  {
-    directory = "dependencies/trivial-do/";
-    src = fetchFromGitHub {
-      owner = "yitzchak";
-      repo = "trivial-do";
-      rev = "a19f93227cb80a6bec8846655ebcc7998020bd7e";
-      hash = "sha256-Tjd9VJan6pQpur292xtklvb28MDGGjq2+ub5T6o6FG8=";
-    };
-  }
-
-  {
-    directory = "dependencies/trivial-gray-streams/";
-    src = fetchFromGitHub {
-      owner = "trivial-gray-streams";
-      repo = "trivial-gray-streams";
-      rev = "2b3823edbc78a450db4891fd2b566ca0316a7876";
-      hash = "sha256-9vN74Gum7ihKSrCygC3hRLczNd15nNCWn5r60jjHN8I=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/Acclimation/";
-    src = fetchFromGitHub {
-      owner = "robert-strandh";
-      repo = "Acclimation";
-      rev = "dd15c86b0866fc5d8b474be0da15c58a3c04c45c";
-      hash = "sha256-AuoVdv/MU73A8X+GsxyG0K+xgzCKLQfbpu79oTERgmI=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/alexandria/";
-    src = fetchFromGitHub {
-      owner = "clasp-developers";
-      repo = "alexandria";
-      rev = "49e82add16cb9f1ffa72c77cd687271247181ff3";
-      hash = "sha256-1Hzxt65dZvgOFIljjjlSGgKYkj+YBLwJCACi5DZsKmQ=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/anaphora/";
-    src = fetchFromGitHub {
-      owner = "spwhitton";
-      repo = "anaphora";
-      rev = "bcf0f7485eec39415be1b2ec6ca31cf04a8ab5c5";
-      hash = "sha256-CzApbUmdDmD+BWPcFGJN0rdZu991354EdTDPn8FSRbc=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/architecture.builder-protocol/";
-    src = fetchFromGitHub {
-      owner = "scymtym";
-      repo = "architecture.builder-protocol";
-      rev = "0c1a9ebf9ab14e699c2b9c85fc20265b8c5364dd";
-      hash = "sha256-AdZeI4UCMnmuYpmSaWqIt+egdkNN3kzEn/zOqIBTnww=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/array-utils/";
-    src = fetchFromGitHub {
-      owner = "Shinmera";
-      repo = "array-utils";
-      rev = "5acd90fa3d9703cea33e3825334b256d7947632f";
-      hash = "sha256-Br3H39F+hqYnTgYtVezuRhwRQJwJlxohu+M033sYPOI=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/babel/";
-    src = fetchFromGitHub {
-      owner = "cl-babel";
-      repo = "babel";
-      rev = "f892d0587c7f3a1e6c0899425921b48008c29ee3";
-      hash = "sha256-U2E8u3ZWgH9eG4SV/t9CE1dUpcthuQMXgno/W1Ow2RE=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/bordeaux-threads/";
-    src = fetchFromGitHub {
-      owner = "sionescu";
-      repo = "bordeaux-threads";
-      rev = "3d25cd01176f7c9215ebc792c78313cb99ff02f9";
-      hash = "sha256-KoOaIKQZaZgEbtM6PGVwQn/xg+/slt+uloR4EaMlBeg=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/cffi/";
-    src = fetchFromGitHub {
-      owner = "cffi";
-      repo = "cffi";
-      rev = "9c912e7b89eb09dd347d3ebae16e4dc5f53e5717";
-      hash = "sha256-umt0HmX7M3SZM2VSrxqxUmNt9heTG/Ulwzphs2NRYTs=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/cl-markup/";
-    src = fetchFromGitHub {
-      owner = "arielnetworks";
-      repo = "cl-markup";
-      rev = "e0eb7debf4bdff98d1f49d0f811321a6a637b390";
-      hash = "sha256-50LZDaNfXhOZ6KoTmXClo5Bo2D9q1zbdCLSFkwqZhoI=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/cl-ppcre/";
-    src = fetchFromGitHub {
-      owner = "edicl";
-      repo = "cl-ppcre";
-      rev = "b4056c5aecd9304e80abced0ef9c89cd66ecfb5e";
-      hash = "sha256-6xeiSeYVwzAaisLQP/Bjqlc/Rhw8JMy0FT93hDQi5Y8=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/cl-svg/";
-    src = fetchFromGitHub {
-      owner = "wmannis";
-      repo = "cl-svg";
-      rev = "1e988ebd2d6e2ee7be4744208828ef1b59e5dcdc";
-      hash = "sha256-nwOvHGK0wIOZxAnZ68xyOhchAp8CBl/wsfRI42v8NYc=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/Cleavir/";
-    src = fetchFromGitHub {
-      owner = "s-expressionists";
-      repo = "Cleavir";
-      rev = "a73d313735447c63b4b11b6f8984f9b1e3e74ec9";
-      hash = "sha256-VQ8sB5W7JYnVsvfx2j7d2LQcECst79MCIW9QSuwm8GA=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/closer-mop/";
-    src = fetchFromGitHub {
-      owner = "pcostanza";
-      repo = "closer-mop";
-      rev = "d4d1c7aa6aba9b4ac8b7bb78ff4902a52126633f";
-      hash = "sha256-bHBYMBz45EOY727d4BWP75gRV4nzRAWxAlivPRzYrKo=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/Concrete-Syntax-Tree/";
-    src = fetchFromGitHub {
-      owner = "s-expressionists";
-      repo = "Concrete-Syntax-Tree";
-      rev = "4f01430c34f163356f3a2cfbf0a8a6963ff0e5ac";
-      hash = "sha256-0XfLkihztWUhqu7DrFiuwcEx/x+EILEivPfsHb5aMZk=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/documentation-utils/";
-    src = fetchFromGitHub {
-      owner = "Shinmera";
-      repo = "documentation-utils";
-      rev = "98630dd5f7e36ae057fa09da3523f42ccb5d1f55";
-      hash = "sha256-uMUyzymyS19ODiUjQbE/iJV7HFeVjB45gbnWqfGEGCU=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/Eclector/";
-    src = fetchFromGitHub {
-      owner = "s-expressionists";
-      repo = "Eclector";
-      rev = "dddb4d8af3eae78017baae7fb9b99e73d2a56e6b";
-      hash = "sha256-OrkWEI5HGlmejH9gg7OwJz2QXgAgE3kDHwen5yzhKgM=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/esrap/";
-    src = fetchFromGitHub {
-      owner = "scymtym";
-      repo = "esrap";
-      rev = "7588b430ad7c52f91a119b4b1c9a549d584b7064";
-      hash = "sha256-C0GiTyRna9BMIMy1/XdMZAkhjpLaoAEF1+ps97xQyMY=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/global-vars/";
-    src = fetchFromGitHub {
-      owner = "lmj";
-      repo = "global-vars";
-      rev = "c749f32c9b606a1457daa47d59630708ac0c266e";
-      hash = "sha256-bXxeNNnFsGbgP/any8rR3xBvHE9Rb4foVfrdQRHroxo=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/let-plus/";
-    src = fetchFromGitHub {
-      owner = "sharplispers";
-      repo = "let-plus";
-      rev = "455e657e077235829b197f7ccafd596fcda69e30";
-      hash = "sha256-SyZRx9cyuEN/h4t877TOWw35caQqMf2zSGZ9Qg22gAE=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/cl-netcdf/";
-    src = fetchFromGitHub {
-      owner = "clasp-developers";
-      repo = "cl-netcdf";
-      rev = "593c6c47b784ec02e67580aa12a7775ed6260200";
-      hash = "sha256-3VCTSsIbk0GovCM+rWPZj2QJdYq+UZksjfRd18UYY5s=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/lparallel/";
-    src = fetchFromGitHub {
-      owner = "yitzchak";
-      repo = "lparallel";
-      rev = "9c98bf629328b27a5a3fbb7a637afd1db439c00f";
-      hash = "sha256-sUM1WKXxZk7un64N66feXh21m7yzJsdcaWC3jIOd2W4=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/parser.common-rules/";
-    src = fetchFromGitHub {
-      owner = "scymtym";
-      repo = "parser.common-rules";
-      rev = "b7652db5e3f98440dce2226d67a50e8febdf7433";
-      hash = "sha256-ik+bteIjBN6MfMFiRBjn/nP7RBzv63QgoRKVi4F8Ho0=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/plump/";
-    src = fetchFromGitHub {
-      owner = "Shinmera";
-      repo = "plump";
-      rev = "d8ddda7514e12f35510a32399f18e2b26ec69ddc";
-      hash = "sha256-FjeZAWD81137lXWyN/RIr+L+anvwh/Glze497fcpHUY=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/split-sequence/";
-    src = fetchFromGitHub {
-      owner = "sharplispers";
-      repo = "split-sequence";
-      rev = "89a10b4d697f03eb32ade3c373c4fd69800a841a";
-      hash = "sha256-faF2EiQ+xXWHX9JlZ187xR2mWhdOYCpb4EZCPNoZ9uQ=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/static-vectors/";
-    src = fetchFromGitHub {
-      owner = "sionescu";
-      repo = "static-vectors";
-      rev = "87a447a8eaef9cf4fd1c16d407a49f9adaf8adad";
-      hash = "sha256-q4E+VPX/pOyuCdzJZ6CFEIiR58E6JIxJySROl/WcMyI=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/trivial-features/";
-    src = fetchFromGitHub {
-      owner = "trivial-features";
-      repo = "trivial-features";
-      rev = "d249a62aaf022902398a7141ae17217251fc61db";
-      hash = "sha256-g50OSfrMRH5hTRy077C1kCln2vz0Qeb1oq9qHh7zY2Q=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/trivial-garbage/";
-    src = fetchFromGitHub {
-      owner = "trivial-garbage";
-      repo = "trivial-garbage";
-      rev = "b3af9c0c25d4d4c271545f1420e5ea5d1c892427";
-      hash = "sha256-CCLZHHW3/0Id0uHxrbjf/WM3yC8netkcQ8p9Qtssvc4=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/trivial-http/";
-    src = fetchFromGitHub {
-      owner = "gwkkwg";
-      repo = "trivial-http";
-      rev = "ca45656587f36378305de1a4499c308acc7a03af";
-      hash = "sha256-0VKWHJYn1XcXVNHduxKiABe7xFUxj8M4/u92Usvq54o=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/trivial-indent/";
-    src = fetchFromGitHub {
-      owner = "Shinmera";
-      repo = "trivial-indent";
-      rev = "8d92e94756475d67fa1db2a9b5be77bc9c64d96c";
-      hash = "sha256-G+YCIB3bKN4RotJUjT/6bnivSBalseFRhIlwsEm5EUk=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/trivial-with-current-source-form/";
-    src = fetchFromGitHub {
-      owner = "scymtym";
-      repo = "trivial-with-current-source-form";
-      rev = "3898e09f8047ef89113df265574ae8de8afa31ac";
-      hash = "sha256-IKJOyJYqGBx0b6Oomddvb+2K6q4W508s3xnplleMJIQ=";
-    };
-  }
-
-  {
-    directory = "src/lisp/kernel/contrib/usocket/";
-    src = fetchFromGitHub {
-      owner = "usocket";
-      repo = "usocket";
-      rev = "7ad6582cc1ce9e7fa5931a10e73b7d2f2688fa81";
-      hash = "sha256-0HiItuc6fV70Rpk/5VevI1I0mGnY1JJvhnyPpx6r0uo=";
-    };
-  }
-
-  {
-    directory = "src/lisp/modules/asdf/";
-    src = fetchFromGitHub {
-      owner = "clasp-developers";
-      repo = "asdf";
-      rev = "97b279faf3cc11a5cfdd19b5325025cc8ec1e7bd";
-      hash = "sha256-4LhF+abor5NK4HgbGCYM5kSaH7TLISW5w5HXYOm4wqw=";
-    };
-  }
-
-  {
-    directory = "src/mps/";
-    src = fetchFromGitHub {
-      owner = "Ravenbrook";
-      repo = "mps";
-      rev = "b8a05a3846430bc36c8200f24d248c8293801503";
-      hash = "sha256-Zuc77cdap0xNYEqM8IkMQMUMY0f5QZ84uFmKgXjDXeA=";
-    };
-  }
-
-  {
-    directory = "src/bdwgc/";
-    src = fetchFromGitHub {
-      owner = "ivmai";
-      repo = "bdwgc";
-      rev = "036becee374b84fed5d56a6df3ae097b7cc0ff73";
-      hash = "sha256-WB1sFfVL6lWL+DEypg3chCJS/w0J4tPGi5tL1o3W73U=";
-    };
-  }
-
-  {
-    directory = "src/libatomic_ops/";
-    src = fetchFromGitHub {
-      owner = "ivmai";
-      repo = "libatomic_ops";
-      rev = "4b7d0b9036f9a645b03010dad1c7b7f86ea75772";
-      hash = "sha256-zThdbX2/l5/ZZVYobJf9KAd+IjIDIrk+08SUhTQs2gE=";
-    };
-  }
-
-  {
-    directory = "extensions/cando/";
-    src = fetchFromGitHub {
-      owner = "cando-developers";
-      repo = "cando";
-      rev = "a6934eddfce2ff1cb7131affce427ce652392f08";
-      hash = "sha256-AUmBLrk7lofJNagvI3KhPebvV8GkrDbBXrsAa3a1Bwo=";
-    };
-  }
-
-  {
-    directory = "extensions/seqan-clasp/";
-    src = fetchFromGitHub {
-      owner = "clasp-developers";
-      repo = "seqan-clasp";
-      rev = "5caa2e1e6028525276a6b6ba770fa6e334563d58";
-      hash = "sha256-xAvAd/kBr8n9SSw/trgWTqDWQLmpOp8+JX5L+JO2+Ls=";
-    };
-  }
-
-  {
-    directory = "extensions/seqan-clasp/seqan/";
-    src = fetchFromGitHub {
-      owner = "seqan";
-      repo = "seqan";
-      rev = "f5f658343c366c9c3d44ba358ffc9317e78a09ed";
-      hash = "sha256-AzZlONf7SNxCa9+SKQFC/rA6fx6rhWH96caZSmKnlsU=";
-    };
-  }
-]
diff --git a/pkgs/development/compilers/closure/default.nix b/pkgs/development/compilers/closure/default.nix
index ee560d8763014..125324c96dac8 100644
--- a/pkgs/development/compilers/closure/default.nix
+++ b/pkgs/development/compilers/closure/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A tool for making JavaScript download and run faster";
+    description = "Tool for making JavaScript download and run faster";
     mainProgram = "closure-compiler";
     homepage = "https://developers.google.com/closure/compiler/";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
diff --git a/pkgs/development/compilers/cmdstan/default.nix b/pkgs/development/compilers/cmdstan/default.nix
index 817234f799915..a6b6833289b7c 100644
--- a/pkgs/development/compilers/cmdstan/default.nix
+++ b/pkgs/development/compilers/cmdstan/default.nix
@@ -11,14 +11,14 @@
 
 stdenv.mkDerivation rec {
   pname = "cmdstan";
-  version = "2.34.1";
+  version = "2.35.0";
 
   src = fetchFromGitHub {
     owner = "stan-dev";
     repo = pname;
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-gze8kd5zSs9nUlSY7AJwpx+jnc9Y21ahzDJmynlqm1Y=";
+    hash = "sha256-bmzkXbR4KSnpfXjs2MAx8mbNSbNrIWDP/O8S+JGWrcg=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/compilers/cmucl/binary.nix b/pkgs/development/compilers/cmucl/binary.nix
index 7ad50a369c62e..130b757856a09 100644
--- a/pkgs/development/compilers/cmucl/binary.nix
+++ b/pkgs/development/compilers/cmucl/binary.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "http://www.cons.org/cmucl/";
-    description = "The CMU implementation of Common Lisp";
+    description = "CMU implementation of Common Lisp";
     longDescription = ''
       CMUCL is a free implementation of the Common Lisp programming language
       which runs on most major Unix platforms.  It mainly conforms to the
diff --git a/pkgs/development/compilers/codon/default.nix b/pkgs/development/compilers/codon/default.nix
index e9393956e4737..520c6386490bf 100644
--- a/pkgs/development/compilers/codon/default.nix
+++ b/pkgs/development/compilers/codon/default.nix
@@ -132,7 +132,7 @@ stdenv.mkDerivation {
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "A high-performance, zero-overhead, extensible Python compiler using LLVM";
+    description = "High-performance, zero-overhead, extensible Python compiler using LLVM";
     homepage = "https://docs.exaloop.io/codon";
     maintainers = [ ];
     license = lib.licenses.bsl11;
diff --git a/pkgs/development/compilers/coffeescript/default.nix b/pkgs/development/compilers/coffeescript/default.nix
index 5245a25bba880..a5ef29967e075 100644
--- a/pkgs/development/compilers/coffeescript/default.nix
+++ b/pkgs/development/compilers/coffeescript/default.nix
@@ -23,7 +23,7 @@ buildNpmPackage rec {
   dontNpmBuild = true;
 
   meta = {
-    description = "A little language that compiles into JavaScript";
+    description = "Little language that compiles into JavaScript";
     homepage = "https://github.com/jashkenas/coffeescript";
     license = lib.licenses.mit;
     mainProgram = "coffee";
diff --git a/pkgs/development/compilers/colm/default.nix b/pkgs/development/compilers/colm/default.nix
index b1540ff630729..6ec15a0ebdf9a 100644
--- a/pkgs/development/compilers/colm/default.nix
+++ b/pkgs/development/compilers/colm/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A programming language for the analysis and transformation of computer languages";
+    description = "Programming language for the analysis and transformation of computer languages";
     mainProgram = "colm";
     homepage = "http://www.colm.net/open-source/colm";
     license = licenses.gpl2;
diff --git a/pkgs/development/compilers/corretto/11.nix b/pkgs/development/compilers/corretto/11.nix
index 06de7a7bbdf87..b7bd676143c00 100644
--- a/pkgs/development/compilers/corretto/11.nix
+++ b/pkgs/development/compilers/corretto/11.nix
@@ -1,5 +1,4 @@
-{ corretto11
-, fetchFromGitHub
+{ fetchFromGitHub
 , gradle_7
 , jdk11
 , lib
@@ -10,7 +9,7 @@
 }:
 
 let
-  corretto = import ./mk-corretto.nix {
+  corretto = import ./mk-corretto.nix rec {
     inherit lib stdenv rsync runCommand testers;
     jdk = jdk11;
     gradle = gradle_7;
@@ -20,12 +19,12 @@ let
       # Corretto, too.
       "--disable-warnings-as-errors"
     ];
-    version = "11.0.20.9.1";
+    version = "11.0.23.9.1";
     src = fetchFromGitHub {
       owner = "corretto";
       repo = "corretto-11";
-      rev = "b880bdc8397ec3dd6b7cd4b837ce846c9e902783";
-      sha256 = "sha256-IomJHQn0ZgqsBZ5BrRqVrEOhTq7wjLiIKMQlz53JxsU=";
+      rev = version;
+      sha256 = "sha256-qSx0kgXTgvsvBaEqgy7Jrp/c1Imoi5/IOqEWoLenJYI=";
     };
   };
 in
diff --git a/pkgs/development/compilers/corretto/17.nix b/pkgs/development/compilers/corretto/17.nix
index 308750356c2a8..c557012e8cdb8 100644
--- a/pkgs/development/compilers/corretto/17.nix
+++ b/pkgs/development/compilers/corretto/17.nix
@@ -1,5 +1,5 @@
-{ corretto17
-, fetchFromGitHub
+{ fetchFromGitHub
+, fetchurl
 , gradle_7
 , jdk17
 , lib
@@ -10,17 +10,25 @@
 }:
 
 let
-  corretto = import ./mk-corretto.nix {
+  corretto = import ./mk-corretto.nix rec {
     inherit lib stdenv rsync runCommand testers;
     jdk = jdk17;
     gradle = gradle_7;
-    version = "17.0.8.8.1";
+    version = "17.0.11.9.1";
     src = fetchFromGitHub {
       owner = "corretto";
       repo = "corretto-17";
-      rev = "9a3cc984f76cb5f90598bdb43215bad20e0f7319";
-      sha256 = "sha256-/VuB3ocD5VvDqCU7BoTG+fQ0aKvK1TejegRYmswInqQ=";
+      rev = version;
+      sha256 = "sha256-LxZSFILFfyh8oBiYEnuBQ0Og2i713qdK2jIiCBnrlj0=";
     };
   };
 in
-corretto
+corretto.overrideAttrs (final: prev: {
+  # HACK: Removes the FixNullPtrCast patch, as it fails to apply. Need to figure out what causes it to fail to apply.
+  patches = lib.remove
+    (fetchurl {
+      url = "https://git.alpinelinux.org/aports/plain/community/openjdk17/FixNullPtrCast.patch?id=41e78a067953e0b13d062d632bae6c4f8028d91c";
+      sha256 = "sha256-LzmSew51+DyqqGyyMw2fbXeBluCiCYsS1nCjt9hX6zo=";
+    })
+    (prev.patches or [ ]);
+})
diff --git a/pkgs/development/compilers/corretto/19.nix b/pkgs/development/compilers/corretto/19.nix
index ea1fcc1aee1bd..0674b63f21dfa 100644
--- a/pkgs/development/compilers/corretto/19.nix
+++ b/pkgs/development/compilers/corretto/19.nix
@@ -1,5 +1,4 @@
-{ corretto19
-, fetchFromGitHub
+{ fetchFromGitHub
 , gradle_7
 , jdk19
 , lib
@@ -10,7 +9,7 @@
 }:
 
 let
-  corretto = import ./mk-corretto.nix {
+  corretto = import ./mk-corretto.nix rec {
     inherit lib stdenv rsync runCommand testers;
     jdk = jdk19;
     gradle = gradle_7;
@@ -18,7 +17,7 @@ let
     src = fetchFromGitHub {
       owner = "corretto";
       repo = "corretto-19";
-      rev = "72f064a1d716272bd17d4e425d4a264b2c2c7d36";
+      rev = version;
       sha256 = "sha256-mEj/MIbdXU0+fF5RhqjPuSeyclstesGaXB0e48YlKuw=";
     };
   };
diff --git a/pkgs/development/compilers/corretto/21.nix b/pkgs/development/compilers/corretto/21.nix
index fed3aa05f7a04..9656ace73cef5 100644
--- a/pkgs/development/compilers/corretto/21.nix
+++ b/pkgs/development/compilers/corretto/21.nix
@@ -10,7 +10,7 @@
 }:
 
 let
-  corretto = import ./mk-corretto.nix {
+  corretto = import ./mk-corretto.nix rec {
     inherit lib stdenv rsync runCommand testers;
     jdk = jdk21;
     gradle = gradle_7;
@@ -18,7 +18,7 @@ let
     src = fetchFromGitHub {
       owner = "corretto";
       repo = "corretto-21";
-      rev = "97b366227b4dc8f5a89bbedea88b0b18c9e21886";
+      rev = version;
       sha256 = "sha256-V8UDyukDCQVTWUg4IpSKoY0qnnQ5fePbm3rxcw06Vr0=";
     };
   };
diff --git a/pkgs/development/compilers/crystal/default.nix b/pkgs/development/compilers/crystal/default.nix
index f36ce4c258536..c95298cbfe2a9 100644
--- a/pkgs/development/compilers/crystal/default.nix
+++ b/pkgs/development/compilers/crystal/default.nix
@@ -249,7 +249,7 @@ let
 
       meta = with lib; {
         inherit (binary.meta) platforms;
-        description = "A compiled language with Ruby like syntax and type inference";
+        description = "Compiled language with Ruby like syntax and type inference";
         mainProgram = "crystal";
         homepage = "https://crystal-lang.org/";
         license = licenses.asl20;
diff --git a/pkgs/development/compilers/dart/sources.nix b/pkgs/development/compilers/dart/sources.nix
index f4cce2eb2f938..b9b7d689116a3 100644
--- a/pkgs/development/compilers/dart/sources.nix
+++ b/pkgs/development/compilers/dart/sources.nix
@@ -1,24 +1,24 @@
-let version = "3.3.4"; in
+let version = "3.4.2"; in
 { fetchurl }: {
   versionUsed = version;
   "${version}-x86_64-darwin" = fetchurl {
     url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-macos-x64-release.zip";
-    sha256 = "0jicbpdhwlag51wgjbaxicj3mpvjnxx35g10ji1v8vxzas8msa32";
+    sha256 = "1xg2pqmn268yi3b1hc6qky0fzhx38785x70v77px5x3fhzjvh5rs";
   };
   "${version}-aarch64-darwin" = fetchurl {
     url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-macos-arm64-release.zip";
-    sha256 = "0l8bsrhk7ycb7q2b3w4j76qkab4py2m535qa466xj6nwlyi99i81";
+    sha256 = "1ybbxg6hkwdqva2xjl9srifrfryy6vacgv20lvmkhrqn59yl7m66";
   };
   "${version}-aarch64-linux" = fetchurl {
     url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-linux-arm64-release.zip";
-    sha256 = "1jdx0sk3356rn3ik9pfx19fc8ppjivcsnk1c44s72wg83ml3yiy3";
+    sha256 = "1pnh2jm29n0hvsj1gp4abm3dcq2mqagcf489ghbx6my1mhif232f";
   };
   "${version}-x86_64-linux" = fetchurl {
     url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-linux-x64-release.zip";
-    sha256 = "1cm710bifr2g04h520a8r8jz75ndy4apr1y4kljknvyfc0m94wv7";
+    sha256 = "0hsrzgl3xn3lmps5cnp1yr8fvzzy19gj7pgdn22dabx52lx0x9j3";
   };
   "${version}-i686-linux" = fetchurl {
     url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-linux-ia32-release.zip";
-    sha256 = "0j5j582lvlwdaqznb8bi96x3sck13l82l0p627bqpn6nm5qv21sj";
+    sha256 = "05ldjy3vhl8bhkyjmyq6yxwd503i0jk4vzkd2jk201yzwzwkjpvf";
   };
 }
diff --git a/pkgs/development/compilers/djgpp/default.nix b/pkgs/development/compilers/djgpp/default.nix
index 1dabc225d9a42..f212e419840ea 100644
--- a/pkgs/development/compilers/djgpp/default.nix
+++ b/pkgs/development/compilers/djgpp/default.nix
@@ -92,7 +92,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A complete 32-bit GNU-based development system for Intel x86 PCs running DOS";
+    description = "Complete 32-bit GNU-based development system for Intel x86 PCs running DOS";
     homepage = "https://www.delorie.com/djgpp/";
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ hughobrien ];
diff --git a/pkgs/development/compilers/dotnet/8/release-info.json b/pkgs/development/compilers/dotnet/8/release-info.json
index 6b829ab659038..cc1ea74ed3549 100644
--- a/pkgs/development/compilers/dotnet/8/release-info.json
+++ b/pkgs/development/compilers/dotnet/8/release-info.json
@@ -1,5 +1,5 @@
 {
-  "tarballHash": "sha256-Hu3mq+cJpbS6Qzvt3PmRe4iRbWJDuMUaNmRlS6tuphw=",
+  "tarballHash": "sha256-BC1K5hjTdhdEYGkC32gXDfdR6A3WVBVvTKqbslE40fc=",
   "artifactsUrl": "https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.Artifacts.8.0.104-servicing.24171.1.centos.8-x64.tar.gz",
   "artifactsHash": "sha256-+ft4PIFOwfv5Z8VqW6bt71LP/HuvTWRTDYnB71Ti0O8="
 }
diff --git a/pkgs/development/compilers/dotnet/8/release.json b/pkgs/development/compilers/dotnet/8/release.json
index b1ea86dba79ac..9aa1bd7305be7 100644
--- a/pkgs/development/compilers/dotnet/8/release.json
+++ b/pkgs/development/compilers/dotnet/8/release.json
@@ -1,10 +1,10 @@
 {
-  "release": "8.0.5",
+  "release": "8.0.6",
   "channel": "8.0",
-  "tag": "v8.0.5",
-  "sdkVersion": "8.0.105",
-  "runtimeVersion": "8.0.5",
-  "aspNetCoreVersion": "8.0.5",
+  "tag": "v8.0.6",
+  "sdkVersion": "8.0.106",
+  "runtimeVersion": "8.0.6",
+  "aspNetCoreVersion": "8.0.6",
   "sourceRepository": "https://github.com/dotnet/dotnet",
-  "sourceVersion": "181780576f29353fd077b649e7624cf806e882e7"
+  "sourceVersion": "64c5c1aee8dc1faa16021350fcdd0bba15004160"
 }
diff --git a/pkgs/development/compilers/dotnet/9/deps.nix b/pkgs/development/compilers/dotnet/9/deps.nix
index d1dcc2bf54dde..969b92810ebf2 100644
--- a/pkgs/development/compilers/dotnet/9/deps.nix
+++ b/pkgs/development/compilers/dotnet/9/deps.nix
@@ -1,10 +1,10 @@
 { fetchNuGet }: [
-  (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.ILAsm"; sha256 = "83ea1b2eaf1035365d25ed1119e7c69f72893b9ece82a0771b1f2e342a23bdf3"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a54510f9-4b2c-4e69-b96a-6096683aaa1f/nuget/v3/flat2/runtime.linux-arm64.microsoft.netcore.ilasm/9.0.0-preview.2.24080.1/runtime.linux-arm64.microsoft.netcore.ilasm.9.0.0-preview.2.24080.1.nupkg"; version = "9.0.0-preview.2.24080.1"; })
-  (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.ILDAsm"; sha256 = "96166f18c89084cd4b11dd2cd5cb949d088dd33f1c3446ba95c74b2c88273a22"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a54510f9-4b2c-4e69-b96a-6096683aaa1f/nuget/v3/flat2/runtime.linux-arm64.microsoft.netcore.ildasm/9.0.0-preview.2.24080.1/runtime.linux-arm64.microsoft.netcore.ildasm.9.0.0-preview.2.24080.1.nupkg"; version = "9.0.0-preview.2.24080.1"; })
-  (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.ILAsm"; sha256 = "09nd4ymm06cqia4r5laikgfffjhjk5m4c1snlz6sbpa29nhh5smr"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a54510f9-4b2c-4e69-b96a-6096683aaa1f/nuget/v3/flat2/runtime.linux-x64.microsoft.netcore.ilasm/9.0.0-preview.2.24080.1/runtime.linux-x64.microsoft.netcore.ilasm.9.0.0-preview.2.24080.1.nupkg"; version = "9.0.0-preview.2.24080.1"; })
-  (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.ILDAsm"; sha256 = "0iarbcblf33lcx19xgaa40bjgfsrskfp1205kpl4pv1jw3l4hgkd"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a54510f9-4b2c-4e69-b96a-6096683aaa1f/nuget/v3/flat2/runtime.linux-x64.microsoft.netcore.ildasm/9.0.0-preview.2.24080.1/runtime.linux-x64.microsoft.netcore.ildasm.9.0.0-preview.2.24080.1.nupkg"; version = "9.0.0-preview.2.24080.1"; })
-  (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.ILAsm"; sha256 = "5ff20db7bef1c0adb9473a71b95dcfc02034fa40295fdf6bcbd826027d51d47d"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a54510f9-4b2c-4e69-b96a-6096683aaa1f/nuget/v3/flat2/runtime.osx-arm64.microsoft.netcore.ilasm/9.0.0-preview.2.24080.1/runtime.osx-arm64.microsoft.netcore.ilasm.9.0.0-preview.2.24080.1.nupkg"; version = "9.0.0-preview.2.24080.1"; })
-  (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.ILDAsm"; sha256 = "7e91613aeda779d2722f818ce137f5c969b7b05888db204d50c32e403ec4729b"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a54510f9-4b2c-4e69-b96a-6096683aaa1f/nuget/v3/flat2/runtime.osx-arm64.microsoft.netcore.ildasm/9.0.0-preview.2.24080.1/runtime.osx-arm64.microsoft.netcore.ildasm.9.0.0-preview.2.24080.1.nupkg"; version = "9.0.0-preview.2.24080.1"; })
-  (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.ILAsm"; sha256 = "d38c42cd85d1491a6db85e2800c5a4c19d14580968074a1ff2248b3ea3a0b57a"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a54510f9-4b2c-4e69-b96a-6096683aaa1f/nuget/v3/flat2/runtime.osx-x64.microsoft.netcore.ilasm/9.0.0-preview.2.24080.1/runtime.osx-x64.microsoft.netcore.ilasm.9.0.0-preview.2.24080.1.nupkg"; version = "9.0.0-preview.2.24080.1"; })
-  (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.ILDAsm"; sha256 = "0d4879e7d02cdd818ff97f1cb1400ef00ad253691d561a354d34606e818e9c21"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a54510f9-4b2c-4e69-b96a-6096683aaa1f/nuget/v3/flat2/runtime.osx-x64.microsoft.netcore.ildasm/9.0.0-preview.2.24080.1/runtime.osx-x64.microsoft.netcore.ildasm.9.0.0-preview.2.24080.1.nupkg"; version = "9.0.0-preview.2.24080.1"; })
+  (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.ILAsm"; sha256 = "5f3c7c39b0cc257afdf7a72e4ce8def0467bb7a857cb255dda34adc58c3b76e8"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a54510f9-4b2c-4e69-b96a-6096683aaa1f/nuget/v3/flat2/runtime.linux-arm64.microsoft.netcore.ilasm/9.0.0-preview.5.24256.1/runtime.linux-arm64.microsoft.netcore.ilasm.9.0.0-preview.5.24256.1.nupkg"; version = "9.0.0-preview.5.24256.1"; })
+  (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.ILDAsm"; sha256 = "0ab21ff07d4321d9c4d0de0371d85265adbd8854d3d467ab8be92baf48be295a"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a54510f9-4b2c-4e69-b96a-6096683aaa1f/nuget/v3/flat2/runtime.linux-arm64.microsoft.netcore.ildasm/9.0.0-preview.5.24256.1/runtime.linux-arm64.microsoft.netcore.ildasm.9.0.0-preview.5.24256.1.nupkg"; version = "9.0.0-preview.5.24256.1"; })
+  (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.ILAsm"; sha256 = "1f65al2nk2qzip1k8hjx6i9ls4sbx86qv0pbvaswambxqd4rc7dj"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a54510f9-4b2c-4e69-b96a-6096683aaa1f/nuget/v3/flat2/runtime.linux-x64.microsoft.netcore.ilasm/9.0.0-preview.5.24256.1/runtime.linux-x64.microsoft.netcore.ilasm.9.0.0-preview.5.24256.1.nupkg"; version = "9.0.0-preview.5.24256.1"; })
+  (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.ILDAsm"; sha256 = "1dlhchclghq19ryb0sz6md77y1hbkhd9p1wig8fg57im04w62s1n"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a54510f9-4b2c-4e69-b96a-6096683aaa1f/nuget/v3/flat2/runtime.linux-x64.microsoft.netcore.ildasm/9.0.0-preview.5.24256.1/runtime.linux-x64.microsoft.netcore.ildasm.9.0.0-preview.5.24256.1.nupkg"; version = "9.0.0-preview.5.24256.1"; })
+  (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.ILAsm"; sha256 = "83af33efeb28280b2af68fea1dd84c087095420a2c21a1f439bc0cdeef9b8c47"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a54510f9-4b2c-4e69-b96a-6096683aaa1f/nuget/v3/flat2/runtime.osx-arm64.microsoft.netcore.ilasm/9.0.0-preview.5.24256.1/runtime.osx-arm64.microsoft.netcore.ilasm.9.0.0-preview.5.24256.1.nupkg"; version = "9.0.0-preview.5.24256.1"; })
+  (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.ILDAsm"; sha256 = "b77560cd71f013fe211aaf1f3c300a53a123b1e1d852059675b5aa5d7e20ac94"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a54510f9-4b2c-4e69-b96a-6096683aaa1f/nuget/v3/flat2/runtime.osx-arm64.microsoft.netcore.ildasm/9.0.0-preview.5.24256.1/runtime.osx-arm64.microsoft.netcore.ildasm.9.0.0-preview.5.24256.1.nupkg"; version = "9.0.0-preview.5.24256.1"; })
+  (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.ILAsm"; sha256 = "0f85a64c48baa58f6ef66bffba85689c5c698d390092ab5d0a71ce02d65a37be"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a54510f9-4b2c-4e69-b96a-6096683aaa1f/nuget/v3/flat2/runtime.osx-x64.microsoft.netcore.ilasm/9.0.0-preview.5.24256.1/runtime.osx-x64.microsoft.netcore.ilasm.9.0.0-preview.5.24256.1.nupkg"; version = "9.0.0-preview.5.24256.1"; })
+  (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.ILDAsm"; sha256 = "077f88a286227e1bef45ccb166fe3ffcb7bbcb8dc8d56956e0ffe775e45f49ad"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a54510f9-4b2c-4e69-b96a-6096683aaa1f/nuget/v3/flat2/runtime.osx-x64.microsoft.netcore.ildasm/9.0.0-preview.5.24256.1/runtime.osx-x64.microsoft.netcore.ildasm.9.0.0-preview.5.24256.1.nupkg"; version = "9.0.0-preview.5.24256.1"; })
 ]
diff --git a/pkgs/development/compilers/dotnet/9/release-info.json b/pkgs/development/compilers/dotnet/9/release-info.json
index 584fa364f8c75..2722b9bc079d8 100644
--- a/pkgs/development/compilers/dotnet/9/release-info.json
+++ b/pkgs/development/compilers/dotnet/9/release-info.json
@@ -1,5 +1,5 @@
 {
-  "tarballHash": "sha256-RbKpnIwSVPhOFCMGtm+Q6p1m0tiAEAV8YwAdIobzMXA=",
-  "artifactsUrl": "https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.Artifacts.9.0.100-preview.2.24104.1.centos.8-x64.tar.gz",
-  "artifactsHash": "sha256-Ou1Efq+iWhsqsIDNPZeceoyxGhBST7MOQNpSrWUUKRI="
+  "tarballHash": "sha256-RD63MT28wOY+EjN8mlGrhKenAdvoSnzHYqzqyvWmZSI=",
+  "artifactsUrl": "https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.Artifacts.9.0.100-preview.5.24257.1.centos.9-x64.tar.gz",
+  "artifactsHash": "sha256-SHhAFlSlRRoUIR/qCox71t5d1PaqSPcfiCSvRiSpDMw="
 }
diff --git a/pkgs/development/compilers/dotnet/9/release.json b/pkgs/development/compilers/dotnet/9/release.json
index 3e600587f0747..8777362f335c1 100644
--- a/pkgs/development/compilers/dotnet/9/release.json
+++ b/pkgs/development/compilers/dotnet/9/release.json
@@ -1,10 +1,10 @@
 {
-  "release": "9.0.0-preview.2",
+  "release": "9.0.0-preview.5",
   "channel": "9.0",
-  "tag": "v9.0.0-preview.2.24128.5",
-  "sdkVersion": "9.0.100-preview.2.24158.1",
-  "runtimeVersion": "9.0.0-preview.2.24128.5",
-  "aspnetcoreRuntimeVersion": "9.0.0-preview.2.24128.4",
+  "tag": "v9.0.0-preview.5.24306.7",
+  "sdkVersion": "9.0.100-preview.5.24307.1",
+  "runtimeVersion": "9.0.0-preview.5.24306.7",
+  "aspNetCoreVersion": "9.0.0-preview.5.24306.11",
   "sourceRepository": "https://github.com/dotnet/dotnet",
-  "sourceVersion": "14eb446d301de0fa50afd32daf0dcbf1b3716ae5"
+  "sourceVersion": "78f4e02d8b749da1168368a232b858448545928f"
 }
diff --git a/pkgs/development/compilers/dotnet/packages.nix b/pkgs/development/compilers/dotnet/packages.nix
index c7a8e048121e0..4ce789e00b912 100644
--- a/pkgs/development/compilers/dotnet/packages.nix
+++ b/pkgs/development/compilers/dotnet/packages.nix
@@ -71,7 +71,7 @@ in {
 
   aspnetcore = mkCommon "aspnetcore" rec {
     pname = "dotnet-aspnetcore-runtime";
-    version = releaseManifest.aspnetcoreRuntimeVersion or releaseManifest.runtimeVersion;
+    version = releaseManifest.aspNetCoreVersion or releaseManifest.runtimeVersion;
 
     src = vmr;
     dontUnpack = true;
diff --git a/pkgs/development/compilers/dotnet/patch-restored-packages.proj b/pkgs/development/compilers/dotnet/patch-restored-packages.proj
index bef12d6308f94..17afb946565f1 100644
--- a/pkgs/development/compilers/dotnet/patch-restored-packages.proj
+++ b/pkgs/development/compilers/dotnet/patch-restored-packages.proj
@@ -1,8 +1,8 @@
 <Project>
   <Target Name="PatchIlasm" AfterTargets="ResolveIlToolPaths">
-    <Exec Command="patch-nupkgs $(NUGET_PACKAGES) 2>&amp;1"/>
+    <Exec Command="patch-nupkgs '$(NUGET_PACKAGES)' 2>&amp;1"/>
   </Target>
   <Target Name="PatchCrossgen" AfterTargets="Restore;_PrepareForReadyToRunCompilation;PrepareForCrossGen">
-    <Exec Command="patch-nupkgs $(NUGET_PACKAGES) 2>&amp;1"/>
+    <Exec Command="patch-nupkgs '$(NUGET_PACKAGES)' 2>&amp;1"/>
   </Target>
 </Project>
diff --git a/pkgs/development/compilers/dotnet/update.nix b/pkgs/development/compilers/dotnet/update.nix
index 29206ecbe7682..58304188afa8d 100644
--- a/pkgs/development/compilers/dotnet/update.nix
+++ b/pkgs/development/compilers/dotnet/update.nix
@@ -101,7 +101,7 @@ in writeScript "update-dotnet-vmr.sh" ''
           | .[] | .PrivateSourceBuiltArtifactsVersion' eng/Versions.props)
 
       if [[ "$artifactsVersion" != "" ]]; then
-          artifactsUrl=https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.Artifacts.$artifactsVersion.centos.8-x64.tar.gz
+          artifactsUrl=https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.Artifacts.$artifactsVersion.centos.9-x64.tar.gz
       else
           artifactsUrl=$(xq -r '.Project.PropertyGroup |
               map(select(.PrivateSourceBuiltArtifactsUrl))
diff --git a/pkgs/development/compilers/dotnet/versions/6.0.nix b/pkgs/development/compilers/dotnet/versions/6.0.nix
index 3e0694666f08b..56320767e7c74 100644
--- a/pkgs/development/compilers/dotnet/versions/6.0.nix
+++ b/pkgs/development/compilers/dotnet/versions/6.0.nix
@@ -4,202 +4,202 @@
 
 let
   packages = { fetchNuGet }: [
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "6.0.30"; sha256 = "00h28rynbg62abjgknxlq79b48qnjjjclib638wpxjaz96wih96n"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "6.0.30"; sha256 = "1n4v5przbrjhzj01b6qijpdc2jbsxr66ijvd0483qxh4s0b4jppr"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "6.0.30"; sha256 = "13cyagv2gxzdssy4kch80jalax0d905sqglibnp9ncswv5yv7af5"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "6.0.30"; sha256 = "01n58418vmvz3bxm3b175irfidp42vg71m5b7v0bf5mhifi40ji8"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.30"; sha256 = "18v0l07q74m5xxaf6y6dkmr6and8ivya0nslffnr4djrxcbiygdr"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.30"; sha256 = "009srl8vazkjnd93xr6k1m353spbki9gn1yzp4zgazgbrini6rqc"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "6.0.30"; sha256 = "105zskdc8d7papsi5b8pf76335j4slkm77jd6k5ha0mp6n39a1m2"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "6.0.30"; sha256 = "1ppl5zc8j6z3yfhq9wkcmjaa0yajjy4d4iiykh8yqsjypxg5pq95"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "6.0.30"; sha256 = "07yaxq68gjnc512nwvzj3h6xk3w1bj9gl25k0qpljnxfv1nmba8y"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm"; version = "6.0.30"; sha256 = "07jhykr9q5akxy2vcsp6w8646j78p636cn13qcbybcxapz7s0iji"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "6.0.30"; sha256 = "17k3l8xd5bsyk69bm5q4nxbpb4i0izw1kzmzi7j3p8pmm9prgrpy"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm"; version = "6.0.30"; sha256 = "05ffs63h5f8qhxzrkhq0fwy40q88nf6672xgx5q1zm3pa0a4zpdz"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "6.0.30"; sha256 = "0p53lyqmr5n2ym202pbgmsd9b9aa6jar7ic04dcq86h2g77r5jqk"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "6.0.30"; sha256 = "0nzgcfvzxkkf9qgy18svjgwsfhhpv9zz44kcyv5qqv3hjnn59n77"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "6.0.30"; sha256 = "0l3gjhmnjd5n67w83smqyhmfcwzszafjgcbq8kdwxiwwh2m6nh2i"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "6.0.30"; sha256 = "08xwqfqhazjy1gwj2j060vcn1x429b37db1h20mjcszmr6j55bb8"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "6.0.30"; sha256 = "0kgpximwlw0ypjnpdvnrvgi3k72r032c44ik1vamka6ilir5gcsj"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "6.0.30"; sha256 = "0ss3108c2h7afypvliyqixv4dll60sq9iwqy90k1p132znpszrmb"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "6.0.30"; sha256 = "02x38c68xan8hlr59mindcl4rcx49bbh4bibh6fw1l4rrijb38lw"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "6.0.30"; sha256 = "0qmma776whn57fnjqkpacj03vx6brcx6j51mh200v9gx8hm9h1gz"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "6.0.30"; sha256 = "1000y4ap0k0iaidl8bqdais3dpcnccd7f4mp219qfcsbn7ma1g5m"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "6.0.30"; sha256 = "0dcmanh6bpkiix9nm516ybfd3jijr5f4m4pj2b0f4lzdhgnrg5bj"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "6.0.30"; sha256 = "1aj6dljgqh7ivbbzzqisycklc3ffy5hav6rr78pi20kqr60hgv2d"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "6.0.30"; sha256 = "0xfhcig3gj3986rxp3dhnd8hvnj4nvyhz1fz7kpx342d3g53wb37"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "6.0.30"; sha256 = "11c5cirdzcmv1h88frjpdzknsafmpzxz6k3k5viqs8dj0pkrx9w4"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "6.0.30"; sha256 = "0yc0kx6nlfq2hj6392m8jq0gkkc8ayp6pndidwpdyrgxr6dcgx5p"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.30"; sha256 = "1s81sj8lnb8szqawxh3vc8wi815ln12cyhrl3f7hwcpay57xgswx"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "6.0.30"; sha256 = "0xybqg2wd240r1nm2vrbn2qbfqfnqsmxn1012zzwjn17wa2si9a1"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "6.0.30"; sha256 = "1f8jid6hzbgc69i3mrhr75g4yb8mxky1xddzsq6vm5bhzdi9x9dq"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "6.0.30"; sha256 = "1iv7mxzyma90s2w6pgcr9gb4b0yab0qgd43ljbr776r45jfmhfgy"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "6.0.30"; sha256 = "0h63xlks92kmgmzi5vcciw46h9i982shqjsy5w64hxb2m28rrali"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "6.0.30"; sha256 = "1nmcfcrhlvyyxgsiaa91ssp691yl3y4p87azsnmvy3p97xppn89w"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHost"; version = "6.0.30"; sha256 = "1dl58ci5xl0np15mbya16zaipscmvhm3914l2f0pfv1k530c9j7m"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.30"; sha256 = "1ik2aarvg0r7k5mm47y7z9lq1csx84k5sd55nrkl2bil0x2pwbzq"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostResolver"; version = "6.0.30"; sha256 = "1n711qbd40468l74fr5yjl92n38fsvcdxcl5i3vrqxxqw24rk2v6"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.30"; sha256 = "141ik8krp675ra085b7w4kwslwxdfhpbgkwjwix0l3idkbbqx61x"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.30"; sha256 = "1xj1g4j7khd54lk04wdii1mam6iwa61aijr43bwfrl3cwjlyk0s4"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.30"; sha256 = "0h419n0wzpl7g19g4vwf9s3c3n7vpshyqzfb28w7hy9jk7svvhs1"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.30"; sha256 = "0d9g5yimjmvqgfm5ndyzb7v5xwi0ix0dq6wxinlfcv9jk933bxis"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "6.0.30"; sha256 = "0v059yadlahda6ifb84rhpdf5lwd27pkgwfyqdgmqbvc55mvxbpj"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHost"; version = "6.0.30"; sha256 = "048nxp4xckb367b016r0avzwkfc6acvw1y454466p9ib29kahc9i"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.30"; sha256 = "0ah5lzn0al0p73mv2ifaqfal38pq7v7cgjsh2byqpylg4fj00lgw"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.30"; sha256 = "1d7vxq3cbqv36mpl1lv9xj6v6gg5x1brr2z0v16zb1sgc20c1py0"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.30"; sha256 = "0im0444rnfdjb088mkgj5nwmlh4qqi7cg29dp7c7490h9b4si6sc"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.30"; sha256 = "0zl6h8nq6c5jnm2a4sn39wsqy05iv1s8cwwxck1xxhc6xhvm7ssz"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.30"; sha256 = "1b8h3clg8fhx2lg1znlidawlr6y230rh7fswz459p3y9a5m2g5rv"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.30"; sha256 = "00zc5ym89ps8f000j3h7d7fqcsk8bs30hx91yd3q8aqcacwp5qwf"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.30"; sha256 = "068y16a9966g5r6syznpi445z753h15dngw9dr5z8dr2rpzvjmdm"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.30"; sha256 = "04i97cy9x3z0cs738li44s7zf73vspjmqiw70vi7bi6lsnf1n393"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.30"; sha256 = "0ra00mpz0m4wchxxay0mzk0r4dslkkjbkxfwv3agfldyl20hdh8v"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.30"; sha256 = "1dmqagg5ygg6w2lmg5rh165chb06q5lalyz0aggd7d10dqyjqdys"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.30"; sha256 = "01naz5yn790qd96pq00pb17s0cgl82ai9l4p0psgcj9hdazhh5d9"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.30"; sha256 = "1pfl0sc6z14imjlxdmacs6yb9mfgf2pb0jqxiwsdxrc9yhvkcy4x"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.30"; sha256 = "08vdq131yc70hb72dh9ira28c894b0fwg71ap8bkdwv3nlj92xcp"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.30"; sha256 = "1b2nwjw1q8696j63rfr6b9v3czprj3vnydw5sb1c4dy8rmi037g1"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.30"; sha256 = "1v4rc0zxiznmg3xzk0f9v780nzrycp7gcj10jpc5f1w7rw9007ch"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.30"; sha256 = "01r6w4j991lzirvb9nznsjq0825j5pa6mfjvacy6izjqbivwcf53"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.30"; sha256 = "060xdk3fazza196zgg5q3r10p7h9nna90zc0kffdabg6j2msr8rm"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.30"; sha256 = "0z350zy4c4xz42ysac40sacvky7lp0n7lyl1kh393v0bnzqad5zm"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.30"; sha256 = "0h7c58nx1l77n1s28ysqbsij9408g2vmyacxryp56k1l30aspnri"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.30"; sha256 = "1nf8p7a8qghpgpyh5hq8f75w78vqy9airb3nkhp600ln0h3rzwsp"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.30"; sha256 = "0579hnk8xiclfzkfdb64628h0r49l8sac3mnv5yrq8sp3kkf8f4d"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.30"; sha256 = "0flcc2vmy9sj40cc6igmb26zflsabp6vx9gzabhyns1lwnkwbljw"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.30"; sha256 = "0zcsj0zqr2mf5134v74xwvsikxsr4g44qkh16qxkhdai1fi9z78n"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.30"; sha256 = "0zwqi277hfiqj0yinmvakw6dvb4njj35yi618s96h94c4dz5f64y"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.30"; sha256 = "0bifshrxl0g2q3xby4vy4bfgjbhy28r1jcvfr7y2vl1ci0a7l7q6"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.30"; sha256 = "17nj6zp7z65p1gbd0rpz0fgiwgh3sikd1b0lvj006gz9njldbkki"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "6.0.30"; sha256 = "0yzrn1261ypm7y8l3klpyswkav8qxhnlxsv083nrw1z83sbs6a5f"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHost"; version = "6.0.30"; sha256 = "0q5i9nzwjdl733vqx3rp5k9favjz83yrvpwr953wm0jmcddk8gz4"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.30"; sha256 = "1dhd1zczam6s5r0lwdanm3mvvjrwi6l81izb5v2aq4h28g67ciz6"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.30"; sha256 = "11lqxmcmlhxgj1d4ki1rng3ivs2fx8ny984vwzlmcyhc2y5rz63w"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm"; version = "6.0.30"; sha256 = "0ljzirp7nx1xmglz9arfggjaxysg0iaqajck045z31s5dr7p70a5"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "6.0.30"; sha256 = "08k5v35mvcs712kb0vcfjd1dsas5rgwrmv8rn87mzjb2p6ajl3n3"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm"; version = "6.0.30"; sha256 = "0p9qybbi7m797svki92ahsyxchd3ic6xw5dbd6h7j2zacgwwkdr7"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "6.0.30"; sha256 = "0s71k92daakzwish65gmn4nniy6bf2hv34c0sb6m1hv3criqxmp4"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "6.0.30"; sha256 = "1wqqjhhlqz4dmijcx3kg3hnwq0s0jzqsddaksskzhq8avr4ziy18"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm"; version = "6.0.30"; sha256 = "1zgspjf5qsl6nki9flfm5askgs2ryz6n3b5vz0sh0cygjk93mifr"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm64"; version = "6.0.30"; sha256 = "03gi4ckn2926am1m5i4pimxlwzb47s5bvqcarw8gchiw6ids27a8"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64"; version = "6.0.30"; sha256 = "1vp1r5jsphj322dh441fs0723riijdqcai595xf7fgdlhr8kqgqj"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-x64"; version = "6.0.30"; sha256 = "1snjxdqm7bn9p87m8hbv125qbz2sgdy59cz5icld9qgyvx6c65p2"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"; version = "6.0.30"; sha256 = "1pdwyi7p71h8418qcjypl5fzvdj22grxiq9yjpnw1qma7d1251ny"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-x64"; version = "6.0.30"; sha256 = "125qdpv0j0my2m47cdhqacdx3jnpm0f7xgyi60x539iadg9w5n17"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x64"; version = "6.0.30"; sha256 = "187nbyjgpj64ap3kql0msynrfrjkfxi7flap67nn3ly844l08h1x"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x86"; version = "6.0.30"; sha256 = "0j8rqm3rfl3x7azpkp3l651v4hdd3rchfm40vd291pcc90qicqd8"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost"; version = "6.0.30"; sha256 = "0c3iglyq21mwwlwjd942z2jxaxgh39lxnqkyna0wf4a895g2v4ia"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost"; version = "6.0.30"; sha256 = "0frimj5r3c2dzk3a0z8h80jlsyvckw57nzm2rj85x8c3ym7cfp7g"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.30"; sha256 = "1viylidv5j5h6acikm02v3zrbjbqy78f5a9b5rm5hc74q9hajngw"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.30"; sha256 = "1929s1w81h0y51r2qcywbm4zp700l75yswp5ii68k401861b8pmb"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.30"; sha256 = "13kgffl4jhbq0dn7lx3hhd36r0vi0s3s8dhjq85lq3hrm8454p8r"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.30"; sha256 = "10lny4j9yyla16bwpzvnr15gkf5d4n4la5smk4v8ncfxbj7lgbrm"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.30"; sha256 = "0kmxfvb10gfp4870mcrzgvymgzyb3l4yljnj105y8hr80jya2z2l"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.30"; sha256 = "0passlm8ajlarnvvrczgxp0brgnbk4n8fig9xmangzsz43bys5dc"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm"; version = "6.0.30"; sha256 = "1cxd3hshcb5m5651324svwqxfsimkz35kr9lx0m9s0h7r7hnrcck"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm64"; version = "6.0.30"; sha256 = "1adhb5qj1rz68l4dg87d2j1mbl263lvfry200fag6sfydb305kqh"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-x64"; version = "6.0.30"; sha256 = "0f8w8fjaigd2pj0gzc0h5qqm3j24mibprirx0iqaj1l7shgpi40n"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm"; version = "6.0.30"; sha256 = "0iirjhd26am5kczss9z1jv0v9qjafassvqdm19jdlwrbfn3nzqvf"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm64"; version = "6.0.30"; sha256 = "0pvwpdjf5vnyx3kjq9p67hyzqbfq3yri2alxh2i93xjmdc8rmryv"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-x64"; version = "6.0.30"; sha256 = "0bkh3haf5ll5l0iiafv9ihzxqh2jqsqqi5325mkzq192lfkh3nrl"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-x64"; version = "6.0.30"; sha256 = "1dfc7zdjb8m2ziy8rxwismfp6wjs32m4piqxw5w65sc2ryaf2gvq"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-arm64"; version = "6.0.30"; sha256 = "0f01cs742z821m1jds7p05jc085aryj7mjpdd04pwv1ql8axmyhw"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm"; version = "6.0.30"; sha256 = "0ns1zscka2fs0zdizir5malhxhgqryd5id87gjqa6y9k8vc6d0h3"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm"; version = "6.0.30"; sha256 = "0pd1bwq2nzd705c65ckwxnayjlj7ahj2n5hwfnglmjvhi8dyzr15"; })
-      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetAppHost"; version = "6.0.30"; sha256 = "06nrnbbaykg2w35bldyzyp9qxs8y7aa1mp4j3lswdjcly06rgvbm"; })
-      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHost"; version = "6.0.30"; sha256 = "1h05dhpvycxjs17y3r7y929r07dswv7iq9lmwas1kjxhnzhbs6x2"; })
-      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.30"; sha256 = "0jj3nxpbyb3vxh2jsa3qwwy46l6yls1z2n93mq2kyr3yi7lnghmg"; })
-      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.30"; sha256 = "0sbi0b0kck61fq99ipw6jrjrj378kzmk30z0czkj5cn3m59v3dgj"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Composite"; version = "6.0.30"; sha256 = "166xfyap4mgv5y6qa5bzq1r7rd8n2fy1f3gcy16i1fhlf52db5v8"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "6.0.31"; sha256 = "16xd2i3rzvvkdqswmr4i132s7a71m0i2iml8zbxb81vj0qj99nmi"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "6.0.31"; sha256 = "0blf8hl2irl9r9x6f7cih87ps21rcs3b8r09z5wp7jcb5j1cv8fg"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "6.0.31"; sha256 = "13765sv4fi9sr0cq4d1lif461xmaxdm4rlnk9gg01g1wgfjaci9v"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "6.0.31"; sha256 = "1nyk0bggmwggw06dm5py4qz2f8b4mzc1c0zvqb3zigsrn37mp44s"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.31"; sha256 = "050dzfy49c4jwcm8dfrz2lqbbyhmgnq485zdhpcnc3w08z0ppbs6"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.31"; sha256 = "13kww7x35926wik32z8cnvzhpqp3dwhazkzb569v87x8yww56n3k"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "6.0.31"; sha256 = "07hjgb341356qz440i7agz0zmy0267s1ab09n26nmmclmwi33b6c"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "6.0.31"; sha256 = "15zi7yfc862ckv67w69linqnnckb57v2c8xfkd8sc583b55wj65c"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "6.0.31"; sha256 = "0b7k2rhhffg36bsqwdbz4sqfn5frahclfhl4g67f8kdz3xjqnv6s"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm"; version = "6.0.31"; sha256 = "1wablrn1g5z4b995zan397iayxilriapcycmd7fd2rlqamay639p"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "6.0.31"; sha256 = "0hki4z9x60vzcg53s8cxnig4g1xnpqcj629r2cg5q1xw0sknfp5d"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm"; version = "6.0.31"; sha256 = "1yf6wkmf0dvifphgai72ik09mxvzqdmwg9bgw76d7lwrjq1i0ij8"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "6.0.31"; sha256 = "0w4sab66rjjyar9z139ls6rx29gvgj3rp3cbrsc8z00y9mw2sl22"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "6.0.31"; sha256 = "0g76dzpmpffgv2a10znz0fcqkbms2l3br49f45fa72l6ap4dsm0i"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "6.0.31"; sha256 = "05s1c6bd4592xhy0y3w0cjckg11hb4pci729v59k3i3hl0hbad4s"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "6.0.31"; sha256 = "10cjff8ddjykawlacjv5zqgdax8vc6g8kdqz9xyk557xi1p1bai9"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "6.0.31"; sha256 = "1cqkvmasyh53nlj9vciyfpvv2mhv9jnvnfh5w5sm98cqc49dkmkm"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "6.0.31"; sha256 = "10s0p30qzfn9zibp1ldnqar87hqs47ni3rwqpvwx4jn3589cl9sn"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "6.0.31"; sha256 = "0k16h1fwnvhw1gcx8ib01bidhrls5m56fiy6wldk3ajgs5dif8i6"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "6.0.31"; sha256 = "1rrgp98ssg6xvq4m12hk4wzdrcrc9ks1pbjdvacv7a68zhq9c2ds"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "6.0.31"; sha256 = "0d9lbwlq4xf31lfrkmyv4wsdz39fhha8ink02hkah2yawr4pfbza"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "6.0.31"; sha256 = "127jg9md1xriaj00bh0vqx426y0kiq5l2r9vkd78cihzyfv0asd2"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "6.0.31"; sha256 = "0p9z0mx8fmj908nn4ckj78phdwjlwlkd3fy8g04nsgds54wzznnm"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "6.0.31"; sha256 = "1wmlwzy9bc1fs38r0vpn3ragp8pkimcq6sicj978yhk7brn52z1p"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "6.0.31"; sha256 = "0jr9llhmdjzv4z813m8g1carsj7fqbsjc2r2315qkicvisjf82yg"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "6.0.31"; sha256 = "13wfhnjqvk6h9d6s8jvm81fscsc6am3vixpqags8fc38449852v7"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.31"; sha256 = "0pw2n3j6vbmbghda1cvkhi3c39a49xk0a4w059mfya017adl6kac"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "6.0.31"; sha256 = "1cl561dgdk4mj48zw5xwg7a0cafkx8j2wjd4nlv0x3di300k75k5"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "6.0.31"; sha256 = "14pbbp2mmnrx42a3zzwavbfshpp4hp04lmpayw3d2fm9nbrzjzlf"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "6.0.31"; sha256 = "105f5iq1r1j7fb1nkvls7hdm864pk7l04w0drqj1msml7ja4fdw5"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "6.0.31"; sha256 = "0ln0hj3xgr4xlghfna43rr68gclhp6dnqnhn4sfwh82z9i2593nr"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "6.0.31"; sha256 = "0cwzp2ym7d6kyp3sf21v7ixfdjcprpw27qv6x1j7h7bp9jfk8cj2"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHost"; version = "6.0.31"; sha256 = "1dcj6cclv3j3xmhhvk46kak1afp04mamli0j0n9c4pf3ri4p02h0"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.31"; sha256 = "1ld8jxpiapa3zmvikd0r200nx1cwlmm50rl4dyxm3m1xn6hvxkaa"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostResolver"; version = "6.0.31"; sha256 = "0mr4x1x42srl363f7v5zdn1l973rfw247vf20i5wrv5hv0qci2pa"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.31"; sha256 = "0i2q45z8qkp0pz44rcsljzxrk25xq62z7i4rnq16mcpiq4ycacd8"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.31"; sha256 = "16z8z85bn2zd5r4jjbz5f1sjadj8s3fv3l42xfqka9wj3362rrsr"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.31"; sha256 = "0svd4zv4ah95n5cw7z2p8ndfvvvk29qyyd1cpw2qkkghj21lqzk5"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.31"; sha256 = "0sr995kaxlnzzgdlgdfnw0zf6qi06f54xga6a80sr69qxacg1n7f"; })
+      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "6.0.31"; sha256 = "0ds6i8lcswa8fgbljs1hx3fq0x1h8h9ahb190y751kx53gda4q7j"; })
+      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHost"; version = "6.0.31"; sha256 = "0v3wc81wlsp97a0ab3kqbf2la8j5d66sdzhjs5fagcmlzhgjybvb"; })
+      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.31"; sha256 = "06a8zdvyr004lhs0pdsin3v8ylmlyqapa5wvyh7q0l4ds9f13h9l"; })
+      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.31"; sha256 = "0k1zsaaj5r91n9iqfdwww0s3kq5ak254brfyhq018jzfgsmwsv1r"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.31"; sha256 = "1smij7fblrcbdn6960snvb5yz0ylk31ixha26bx4pw1qzdq25dda"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.31"; sha256 = "17fb7lnzcna3vjmkkf64l6x67vsc9lkk318bydn0rd8xmsvcarlh"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.31"; sha256 = "0z94wlfc7y356m6xbh4yn4f7349dxv3340mmiz3k9m39mcibvh5c"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.31"; sha256 = "0d7fpy0ycqigdr79p4ii8hd2d0pgc70rmn67h6y3hvcqxn4569x8"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.31"; sha256 = "0vx2caca3rs34hhbci4m8sdrapbph1ry6mj5mjymzqgdvl21zgxl"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.31"; sha256 = "0hhflm634mqdr3q9qjc701yjfammc10hch334zs42758nzbpi4f7"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.31"; sha256 = "0l5861rmfqqsqr53d2jnal7nggc6mlvy7hj9ln4b5nbk8w2qmsfs"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.31"; sha256 = "12dj9crj57k905q2i0r6ragmf6n85q4p1ayf00vfjr5wqylfmm18"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.31"; sha256 = "0aslfapafa9mp3k09yjy6ay4lclb5kmkiic660xqjqw0gk851skb"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.31"; sha256 = "12w425dbggb34knqxqfqrp6hzyi2d427anmrjqmipsi8hnivnrpd"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.31"; sha256 = "0zqfg5g06aqyypk0ka21jzsrb1v38yrgqcsll3ps7xsjd3swx8pp"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.31"; sha256 = "07wpsqknjimf0k9gxz49n69jhybj6h1yap4lsyhaclw4nxmhi2vc"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.31"; sha256 = "0akikavmdma4p2fh96i91xfxk8a3dmcm6j0pc0az321fi22g9k1m"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.31"; sha256 = "11knfd86jpmpnhn2vkqn0rkl7yg8ndfva07j90lm27zznz0fzhbd"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.31"; sha256 = "0qg7qi7x98szsi1n0gmjv5nplpnkwhli3jrf64wc9jpf3mv2wd6n"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.31"; sha256 = "0rv4fwgqr26s1n1qqkzsp1ghn5m5zimllfh5ydn2rd4z9gvg0ivy"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.31"; sha256 = "1w71y8yffaljg96sy7lqfjpxk0mxbh5k1m9mik2nps1cs4f71l5g"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.31"; sha256 = "19xb50y6jcn9yj1yblyd5c7gdcj09xvz0lna329a3gm55144pfgq"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.31"; sha256 = "1qgfxnvlhbr1y9r89srljdmgnyvjqh8knyhcgpakh3g4bi6j61s3"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.31"; sha256 = "1141m8s0q7d73hicr9fgrgc4623rvz6a8mcf70zdq5hrf718nim5"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.31"; sha256 = "1691jld833fyjyy3ahw4hq6k7rlwx6nzz74qf97s5nadbzdqa6b7"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHost"; version = "6.0.31"; sha256 = "0b1i3mgnnp3h13p94n14xfvz28lsqmadqiyc5ib44yb28w72zwrm"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.31"; sha256 = "0clgs6fs1gz2rld92hcmf4dksw62xb948l1a8zrsdyir40j0l33s"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.31"; sha256 = "1p0cnnvb9i9x2yivvzj3lawy2fdrx2lw934q309anipfsxdzgx13"; })
+      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "6.0.31"; sha256 = "1qy3bgvr9bqi35ncq6f11ihdrbv63vzhs72pl1s56f7wsqx7wpba"; })
+      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHost"; version = "6.0.31"; sha256 = "06bjzlw0gskrgzrp344nq5qz95rkmqf56zcj1dip1107pzhiz4x7"; })
+      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.31"; sha256 = "0d6cdb1nsiqidwy5sgwq5iznb75cqkjffvyqlw9r7i9knj24yp30"; })
+      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.31"; sha256 = "0srvnrvgn48jjwmxrsqqafz9xvvgc3vc24yfibjcj0aa20mr0zjp"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm"; version = "6.0.31"; sha256 = "1dmadshsp686r44sm1l72jkjlym0hbvpycv1vvaivrgrkjsy22yv"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "6.0.31"; sha256 = "0sah1gf2lccc93n3lmkgiahlz4jwr02cw20bvcwqyikpldy2awds"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm"; version = "6.0.31"; sha256 = "1rinf7daaphinmjfcp1v28gm88wcpjvi59a3an76vvjjgpwcms23"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "6.0.31"; sha256 = "115c220p0mbk30biaw0sfqprnaghks7lcvvz6n5rsg0kn4fvy7qs"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "6.0.31"; sha256 = "19a4ainxj8jxij7ckglbmlnvrjxp72xfgx0r6lbglzh9dhsakwm7"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm"; version = "6.0.31"; sha256 = "1y1sdabrcxswlwwlh5a493chxfsfpxrhvs2bkhqpw6bm712df6y4"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm64"; version = "6.0.31"; sha256 = "06hcajknx5f3q4hl4950p3wpqylwkrbkady2qyrjil9d9i2nh7dr"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64"; version = "6.0.31"; sha256 = "1ybchvd2n4n57sn0ycd4rw5fhlhyc9w66anffdzmzxk0m2nj1ll4"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-x64"; version = "6.0.31"; sha256 = "1glgiqxkppk99h5q7hii1d0zx160qxmmna3qjfvk0yp62cx51nam"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"; version = "6.0.31"; sha256 = "07wdnlh41x3mblxi8wr5f6n0p9m7j76a6zda5snq25lfsvv75qr7"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-x64"; version = "6.0.31"; sha256 = "1q56hjpxpda23qn678cm11s0klf7259wbiw4js0yrjhzv0bwy2gf"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x64"; version = "6.0.31"; sha256 = "17yzgzbadg8cxrfp9y9lil346jj6lk1ba96pmwcglprmqlf2747s"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x86"; version = "6.0.31"; sha256 = "0j2bachvygz0cnyx1gdj64czsbxypzqhfm3x302jq1lq5mc7g94h"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost"; version = "6.0.31"; sha256 = "0ypldja725nxa9h3ddn352lm2c6f07vs1485mqgh10ymnv6a4m65"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost"; version = "6.0.31"; sha256 = "0my18xrinvnb66vm3ni1l6d18l381fd8rpxbjwmcsdznv8p8brg7"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.31"; sha256 = "1i2dyhifzawlsyygykl1rw9y0ybkn8jagklvnvk94mswh55df8k9"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.31"; sha256 = "0lr7qhhgdn20xap6jrsqm444vycmhyjway0g417wk2bp9v22wgf4"; })
+      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost"; version = "6.0.31"; sha256 = "0gscb2py8shgnsqk4rm1wr29b0g9bk2sxfwlva2vy82i3msx9zcm"; })
+      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHost"; version = "6.0.31"; sha256 = "0rwg0dbd9bfyhs5n2bwr6pz1ygklhgsx1kfjinyl6prgpz8sghgb"; })
+      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.31"; sha256 = "0wwkhq5lahhxz24ihh16ybzkajgzbncfl8mykndphlgq2y0qznay"; })
+      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.31"; sha256 = "1hdz6j2i206gshm01zrijsgflgab937h8b5idxamdk4rnq9jzhg2"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm"; version = "6.0.31"; sha256 = "03q5qamv7yw6gc975i8fccms5d9wlq8zn7kzaimnzykh470adnz7"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm64"; version = "6.0.31"; sha256 = "0zp62hsaf6nfg28wc6inraqwihbbcd2mcjjkl5g8dfhfd62wqryq"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-x64"; version = "6.0.31"; sha256 = "08dydwm0sq3hr6bak3p11c9i66jg1prcb75nvdrrx01jsv9gcmab"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm"; version = "6.0.31"; sha256 = "16xjxz2y3s6lagfmyhzqwwddbs678nfrwz6ja56sxjkwicisq5qm"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm64"; version = "6.0.31"; sha256 = "1kqqij06k5mcjphcnwikyjs02b2z0fdccsmbfa7diw5wmci4hr9n"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-x64"; version = "6.0.31"; sha256 = "0n7cddp4pq5dr7b38mar64cnb3apf6ib9p9wi506shisy8xh7fni"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-x64"; version = "6.0.31"; sha256 = "02x1i47syzjm6j7wi1ldzgh4gpz866qcygr4z0b16qsl36qvzb55"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-arm64"; version = "6.0.31"; sha256 = "1xab7dmxks7kqqnraivgwg4qyvcp11zz7vj1qbryxj6qv7wkv0bg"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm"; version = "6.0.31"; sha256 = "0z0isj1zsknp81wdf09qf1f1p1vk3v92f9jbkzx9pnqvfdk3s4wb"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm"; version = "6.0.31"; sha256 = "02bi7qlc5d9iz82ld6z6ycczlj3s6c2fy7zi9f917z7v6b278n76"; })
+      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetAppHost"; version = "6.0.31"; sha256 = "1s889d0rri4xjjk1w47f04jnn1awyxgwa9j01dn0n98qhhl8h8jm"; })
+      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHost"; version = "6.0.31"; sha256 = "0c9rx3g3j7jrcbly8482xvjhyf16vns95zs466yj17jm9wnq0gcb"; })
+      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "6.0.31"; sha256 = "0szi3vbsj7gnbf3nq5q0xbf5p4581bglcz3mclwi8z0x2d607c23"; })
+      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostResolver"; version = "6.0.31"; sha256 = "07nxbwjjdzxviyrr4f13bfrbs33kz3bf53lk470r5jchi7msv8l2"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Composite"; version = "6.0.31"; sha256 = "17zn4r2nqkqb4cl0mn1mkd0v11j1j4gwxzcas38ss0snidqddkqj"; })
   ];
 in rec {
-  release_6_0 = "6.0.30";
+  release_6_0 = "6.0.31";
 
   aspnetcore_6_0 = buildAspNetCore {
-    version = "6.0.30";
+    version = "6.0.31";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/03d1bc71-2ad1-41b4-aa2f-9e4ef6d5c6ed/29b655655d626c590cb216e0c30bccb3/aspnetcore-runtime-6.0.30-linux-x64.tar.gz";
-        sha512  = "757d017db28b8e34c4b242c082aa51eb85bce8fca16af37a0beabedb271c9bd13e1631868faa131745d7784db48974567f82275da09041ba434dcb7abe821a2d";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/c8c7ccb6-b0f8-4448-a542-ed153838cac3/f104b5cc6c11109c0b48e2bb8f5b6cef/aspnetcore-runtime-6.0.31-linux-x64.tar.gz";
+        sha512  = "ebb20a3461bf9d1e3a5c91761452f5ef2e60873826ad3158493768a18d207319bccc40d6c1a64fd61dd8c22bad51c26689394b0e6a40c4bfe4cca00ce4c00db1";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/a4c8e994-c595-4698-8cfc-cf3ac166bbbf/9e6b514da011de5191d148d95601a7ec/aspnetcore-runtime-6.0.30-linux-arm64.tar.gz";
-        sha512  = "de0921903ba55e21195107b126e271457550543fd6a9698ab3c2b1e2b95f7fe2d6fb2f067e08ed10c9e56940c247733dd9a2f9775e7993e033a945899461e130";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/088b0ba5-2eaa-4815-a5c2-3517b99d059c/f6d18014064903be5fa2f654f51f5ce0/aspnetcore-runtime-6.0.31-linux-arm64.tar.gz";
+        sha512  = "5d395554520a62c81e01f045245749d771d728a353631879462ac499e78658377e475bca756668eeafdd65ac55ad55f244f778809c127a553c5c330b76ef9dd8";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/15ab71c2-9230-4afb-87c5-36328af745ed/b859c077ed4d8c00985a2ee87009b6f1/aspnetcore-runtime-6.0.30-osx-x64.tar.gz";
-        sha512  = "0a0c4c9255ed29db1c1911fa0fc6c8a9083f777c04a3939b2087d80bba21fbd864e6c92c62aa566a930a2b30024b1fdbfdcf34d034e2734c0a9b3d45f7c63445";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/9b9addf2-5f49-4d1d-8272-bc348c9d93e4/a4dc2cdc0dcf8215a1c7e436a4c854cc/aspnetcore-runtime-6.0.31-osx-x64.tar.gz";
+        sha512  = "79ced204af5aff757fc7680298121269bdc770b62411750f913d3129dad79c8b2eabd54b2986073c219b3aaa4b49f7188ab7694b99361fb725bff8e32db07dc3";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/0a61c065-2196-4a9f-a34a-9517b3ec9336/538e1624926840a66ef6963f57d44aa0/aspnetcore-runtime-6.0.30-osx-arm64.tar.gz";
-        sha512  = "a74d44c399e06c9ce19ec10d4be53444bf18d981fe7ede62a69efc24a5af5898d4ee63542ffbedc3b906cf1ac3f7101ecdb69e45dc0fbb1336bf151940fc2204";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/299cb3a7-badd-474f-9906-33d744bd77e7/cfb103fc34184ce82a012c5a1046292a/aspnetcore-runtime-6.0.31-osx-arm64.tar.gz";
+        sha512  = "f19e54b4a4e42db7aae880b86a6dde57dc988aebf852008b70ae56f89ad130e0aba73903357f4e97ead10d013ae3fa7fd28d197ef88f0742391f601ff136951b";
       };
     };
   };
 
   runtime_6_0 = buildNetRuntime {
-    version = "6.0.30";
+    version = "6.0.31";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/a80ab89d-9f64-47b9-bba5-907a4cdaf457/c5714a6e605ef86293a5145d8ea72f39/dotnet-runtime-6.0.30-linux-x64.tar.gz";
-        sha512  = "b43200ec3a8c74475f396becd21d22c6a78a6713585837707c2a84bbb869c7e551a05c4c1c1cdba8083baebdd09bc356de5d5a833b8bc84b83421d3ecfac71ca";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/d67d6174-70c0-4256-b4f3-1f06cb5e8499/4bb51048eee17bda6b0ab7887c227206/dotnet-runtime-6.0.31-linux-x64.tar.gz";
+        sha512  = "8df8d8bfe24104f41cc9715bb04fdc1811426c4d16f29336607c68a30d245fb8f36577d639e7da4865204fa85280fb5cdcf47e93183afe6b9e946e0c53df32c8";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/27a21bdd-cad5-4f5a-b7a3-86942632a745/3d7aba7c0cfe0c28342a8f83b65e72b9/dotnet-runtime-6.0.30-linux-arm64.tar.gz";
-        sha512  = "75fa6de07e5d8e5485af910de522c1d0afed0532008ded1e80ec3f576c9a78c6e5759dd4d1331159263c02121a4d8f1e532f0533c11524c2d782cf861be13c09";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/34215580-c4c9-49ee-a9a1-e9cb1a25646b/9ac060d3bd7eaf550d11acd60bd2841a/dotnet-runtime-6.0.31-linux-arm64.tar.gz";
+        sha512  = "022c7fc8878544f8abde8cf13ef661327238381c8f4731b4975be294616fda00a4b093036a896baef99eb58b881890d3fa951cc51b0212e766a8a7ce95d2c440";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/aee516fe-b6d8-40db-b284-1a287f7cd5ce/c217b7cdbcac883886169b82bcc2b7d8/dotnet-runtime-6.0.30-osx-x64.tar.gz";
-        sha512  = "8cffba5feca56bf11b38318564c45ae18a58ec48223963ee46105f71bc07661457e562d51ea0e8b626eb69b7635565244a5cd1575b6fbac52b776145c533e784";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/e06ea94c-e84e-48c3-9bcb-5fc65db7701b/22612902257c79e6483990c0d9bf02b5/dotnet-runtime-6.0.31-osx-x64.tar.gz";
+        sha512  = "fb6ae3a5f5f31078cbc98d06101ed53b6a23e9a5582c3d660850e7315fe21d776ad2c3ec716ce27cc0ac87c37d99c6dd9bc864d9410917aa4c73cd885010980a";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/e78e6379-e47a-4e24-ac6b-1c3182f1d664/b8f47b2f04b15c78ac24a8bc88000131/dotnet-runtime-6.0.30-osx-arm64.tar.gz";
-        sha512  = "b33a38f4e41455cd88e23f6c0fa76797e05af25bcd94d500557fdd5ce10071ac16789ddef98ec9abef113f2aa487fc7d5c22f329b8a7941a79d7768ca176975d";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/d82928b9-3ce6-4060-bdd5-159afb165b37/002421f6104e66b92b7abb31abe7ffed/dotnet-runtime-6.0.31-osx-arm64.tar.gz";
+        sha512  = "57d89d189fd7c33ae9627a06dd543d4783c1e04376173e4a2868a342ca864323e41d5a4050dd82fbd9d7947ca1ea12185e80294c70857b97e3d32eace15940cc";
       };
     };
   };
 
   sdk_6_0_4xx = buildNetSdk {
-    version = "6.0.422";
+    version = "6.0.423";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/316ad9ae-22cb-478b-b51e-47667f1e7027/7a13422c0951e9235b7692c610b83442/dotnet-sdk-6.0.422-linux-x64.tar.gz";
-        sha512  = "e0e6ea234a5aef29c2571784c22396115db292fae8f859f4642f80f873807140bb7bbc009be568e8e34288b46b2e3e7732115b5f02bbc8ca0aa723e183bc084a";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/111a63f5-e1d4-4d07-b8b2-98642b5fcc59/389661b982fa5b83b09a1f50b9da247a/dotnet-sdk-6.0.423-linux-x64.tar.gz";
+        sha512  = "4b4a0e66634211ae04fa030e18ae9e22640f5828307ba85c4bae596ab2d31260519197828dae3b2ec73d6772635e0b375536ea6591b03c67c2b7a5566f016952";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/9f8f2c2c-e531-4a5d-b7ed-1e7e4b8bbc29/12e87ade15ce29558b40099d6c152b10/dotnet-sdk-6.0.422-linux-arm64.tar.gz";
-        sha512  = "c03c3708061f266a3d7fb5bf2240f5bdd00be4d877dc3dc62b95a857f2ad62c80dd4c54f5257737ef7bad3cb458685d7f2bcfe71c3562075ac3aed660df8ae41";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/f60a9d6c-1df8-4b84-af48-1961ed476a38/32f60a0f291dce64fb33a502e69e78bf/dotnet-sdk-6.0.423-linux-arm64.tar.gz";
+        sha512  = "42f5e89d6d9a9923bbc20398a6272290b5f693cc767aa540233630f849779daa8cc7d8ac87655f6b2c8e0250bf5be986a8e8ae502b6f33c0b3e474d041b77625";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/818b0c97-95cc-4da8-b5af-05f6854c5e89/200ee246643a1d6a0436ad967ae705f1/dotnet-sdk-6.0.422-osx-x64.tar.gz";
-        sha512  = "a301982e64a18cf06577463fc3e2e179c06a31597b1b32127b1196dba755bcc3323edb618f6000c9f4f9ed902c671377a459e9ac90da2c761744fc1d57e220cf";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/8e5dec4f-d683-4ffa-9704-f4af023d5383/483bb54f830379d5eedd21c47ccaf47b/dotnet-sdk-6.0.423-osx-x64.tar.gz";
+        sha512  = "31d8f5aa5b0fc5de1c6f809920cc8ffa0415059daa12ed21888795e600b528376d7b14da5b946ae5493af7214543e6494d9afc8ca017d05ee56dbfd10e2fade0";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/2f0c0bae-a26c-44c1-bd9e-9fcd42548066/c88dc835e8ac824d992696122c10d959/dotnet-sdk-6.0.422-osx-arm64.tar.gz";
-        sha512  = "7bb885b605f51cffcb235a6bb6f0eccef7a211e67480fa6243b0cb8899dfd60c4c0501579c0c1dc7fb267aea5db5a6d35cf9e2a35903772797a66360fa171b3b";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/c53f9a57-8f7c-4d78-a2a5-32ddcf142cbb/312e8c418f6dd2372dd0e9174b10e6dc/dotnet-sdk-6.0.423-osx-arm64.tar.gz";
+        sha512  = "fb31894ae43764c518d7909859a2b598134bc03bbb7996ad0badc1088cfcf4d666f25746f77cfef1aa042c2f9fdb348e6975e1c4a98ff93c1b206a4a0429f995";
       };
     };
     inherit packages;
   };
 
   sdk_6_0_1xx = buildNetSdk {
-    version = "6.0.130";
+    version = "6.0.131";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/3d0d3892-fec9-4764-8638-b579b1b9e222/dd4c14a3c27929671362c89fe3378677/dotnet-sdk-6.0.130-linux-x64.tar.gz";
-        sha512  = "dd4e3e5e24c0bc387dc6ed3fa833236d3f444efc0b12a256dcd73f5f4431488b516143d63019c6e9430173adebb07406b52e78a102f9e143a7e3f16361228b32";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/439c6d52-892d-4aa6-a6c8-e2f9bcda7121/1fab8b4544b64a5c74fd0277d9115292/dotnet-sdk-6.0.131-linux-x64.tar.gz";
+        sha512  = "3df39fbce2d549a258163588a7205bed73dd39a69c6ba7fee785bd8a663e679a4194cb7e20a2e0c289539e1e412ab3a7ac019cd92cac13d219dfb50cd25740a4";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/b7e1a062-bd07-4aab-90c8-0d91994ce0c5/1d399c3f9cc73c767e6927ad4f60c5c5/dotnet-sdk-6.0.130-linux-arm64.tar.gz";
-        sha512  = "95767eb4da8e3fb50992ec48df178fba9e2a7beaae26c5fdd8ecd4dae605ec048b83180a2bcb72c836468a99607179f9193ce0e1980bc95484865f559cc91789";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/9402bde0-16de-4696-973f-2a9667ce34a9/81b5e2ffa23e29e10a473cdff7dc7c7e/dotnet-sdk-6.0.131-linux-arm64.tar.gz";
+        sha512  = "5815bc11dbab9c8be4c9b0d20903d3b6df2e825bbb2789f2d90d1b7d7fc3f4de28a450f5906d82675e8f67d34da8b28526bfbd5dfefa109bd895d2ac03f08cd3";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/fa013cb2-8b3c-4986-8863-dd526d13503e/ac0c886e8c9837784ff02db082ac4a53/dotnet-sdk-6.0.130-osx-x64.tar.gz";
-        sha512  = "8102f1432343538f45d0d49e518edb7ba0000d1ae7f7306611d2e17a205baa4215281250b45cf11900f45db0622fd190bf7d57f2b63cc8b1b4bd106128564522";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/6667b054-8dd2-42bd-b769-521b5e3c95b7/f8a8a2c8c5f57f81e2b3b1581faaf84d/dotnet-sdk-6.0.131-osx-x64.tar.gz";
+        sha512  = "eaf8323e2ebadbeb30bf610700b46814bb42efe17cbf7d0ee7322e7cf089a41cbf87e184226536ac580dd60f04009e3dda5878427df788727d065ae3e9f908ff";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/8c72ae1a-38b3-4a30-81d5-408073f96d64/2e3493ea5498d598193746232d4be684/dotnet-sdk-6.0.130-osx-arm64.tar.gz";
-        sha512  = "9d8273f73e842a3a1a71a2ba5c2f0dce74821e1302ef34843817a3f5c49df83d662bf6c7031dba7a8362903a870f759c7976176209781a3c4ade6c66e6824c41";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/512b8abb-992c-4af5-b308-9733d072c2d1/ce40f01dea24d4fd4849bb952c9fdb32/dotnet-sdk-6.0.131-osx-arm64.tar.gz";
+        sha512  = "ad4563ada153b3d9f11bec8514f97999b31772089150856e46278638caebcf84b51f1413e49cce2c1e4aff266b91a72c1685b6df6546b9a8a2a415e78046587c";
       };
     };
     inherit packages;
diff --git a/pkgs/development/compilers/dotnet/versions/7.0.nix b/pkgs/development/compilers/dotnet/versions/7.0.nix
index dc2e5d704a332..fac65c6b2dd05 100644
--- a/pkgs/development/compilers/dotnet/versions/7.0.nix
+++ b/pkgs/development/compilers/dotnet/versions/7.0.nix
@@ -1,235 +1,235 @@
 { buildAspNetCore, buildNetRuntime, buildNetSdk }:
 
-# v7.0 (maintenance)
+# v7.0 (eol)
 
 let
   packages = { fetchNuGet }: [
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "7.0.19"; sha256 = "0da47yabymn7q9viymv9g3apmmaibfddnlix67qpxwn9cikbq459"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "7.0.19"; sha256 = "0i8mhcy09lmjqhzqmwvp0n5qkizdqin3vap206b2ad28yl6963wz"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "7.0.19"; sha256 = "0gqwm6as0lyjawwvq7cgks0ji7cfld495h7hcl553f1vpy3wsn2q"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "7.0.19"; sha256 = "099yl2cpqmajdlax174z4bxzw2m4ry5abfx8s10q7h6d95fcnmrp"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "7.0.19"; sha256 = "1zypq8jgk9z3kn3mmkdijvc9h65iyy7gaif9p0vhnylmvvm89jzp"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "7.0.19"; sha256 = "1jmg7sxjnsmaa7ag6bgyhndlhvibswcmnrw0n6sr6crw2y0in2a3"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "7.0.19"; sha256 = "0dyk2x5jc3vdpfyl8q6q6wqz8hwzsgvyrjd3956mvs3mrp00brp6"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "7.0.19"; sha256 = "1g941bzffbdlqlxpgq356mv6n6g72d2yn0rhv0ix53834369367i"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "7.0.19"; sha256 = "0xz2lacyda09kxs2d7hasvh51dw6pa6xs7k0q809ni247v7bnab0"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm"; version = "7.0.19"; sha256 = "1kkkajxxdbcy1kgh80183l8v00fv1l81kx5wmxgypz15lqnpmv2l"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "7.0.19"; sha256 = "19pjhnx49srxp1qwknc390gapc44019wy4adz9caxpryw0ch4l1x"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm"; version = "7.0.19"; sha256 = "184fjnln6bzg55xz1xc3bmgaanlrh7jxn48fccks163gnir0frjc"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "7.0.19"; sha256 = "1dqilsqwwymy7fq2pnvjggn5mfvizqsisla0c36w53mg6xx7vn78"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "7.0.19"; sha256 = "1pld28mqy2gy5rsy688y0n5lhzrqzhv1pszqq4bx2ki2rcqka4y6"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "7.0.19"; sha256 = "1dv4vk07a7kj53sk1nf63h51swzk9yl4j7jdvkc5w2v0z5a186hm"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "7.0.19"; sha256 = "03766ks38fir978qm6s958zzywvqlnfqsj4mq14ifq36dphmkp4a"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "7.0.19"; sha256 = "034v4p5w946yvfialqszaywjncqixv9bpc3x8v87wyr95pa3b7bv"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "7.0.19"; sha256 = "0jcfmaq4ckcpywwxm1ack9xa001aic8pn85ggglidxgcfdr6mpzd"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "7.0.19"; sha256 = "1srx048x6nv88s308bfn2vsg9gyqvzmgn4xlzknm9yr89c5pm96q"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "7.0.19"; sha256 = "14l69l4fnvykmyq48i60xaipc7n72l5acjwvbvm2hg5sx848mnsv"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "7.0.19"; sha256 = "0zs1jpj64wrjwkw3yqs3ryl08m9qlk3ksv74cy21g6bgx3xaq05y"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "7.0.19"; sha256 = "05x34bg48y4aas3yv88ksd84vjz2jj1y7hjkwddmcpd4ni90ixmh"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "7.0.19"; sha256 = "1d84xdva4av8mv2msbi759fb13sxig0qzdr6a9pmlq8gb8hf7zma"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "7.0.19"; sha256 = "0m30aykrzl48i8589qn8z89hm9p1yl71cdigv1f09fmwb7c6jfm3"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "7.0.19"; sha256 = "0akwsg0q1498ribamba3qkabp0rgn941dsrswb29sbpwfyyqmmgg"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "7.0.19"; sha256 = "06xcc29albls44invg5dfyjf3qzcn991h7sdlbhvc5v0xyk72fhx"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "7.0.19"; sha256 = "12zgh8pvbdl99zs0rq5ajbl91r976i47hdrrvxl2hbsxl2ws3brs"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "7.0.19"; sha256 = "1lwnwxscza5m7pk83fwjz5r9kms3ybag2rl07f3gqp3b203iyyxx"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "7.0.19"; sha256 = "1kgz4594742cd72vh23ra5gr4b9sgxfim2b608z9bmp0slnr08k1"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "7.0.19"; sha256 = "0njfv091dlc7aff6nj0v7g2b583ns14lkmjf93z184sgav37ynvp"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "7.0.19"; sha256 = "0hssqp21mjsacxf53g7jjc6ss3689199rxymlzp1sswjhhz8w9ci"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "7.0.19"; sha256 = "1pja0r3p7n41hm0bjcdvmi4ymsd2jr7m2pcky4107dz8lf2l0axb"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHost"; version = "7.0.19"; sha256 = "1yfy711lpgngy8qmzywjmc7bv0q9j1dz4c6g23vd7q25nw05jrr4"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.19"; sha256 = "0ab5phjb7vs9rc2cynsn5wgxfdh4lnz97whw9n63dyqmi1zp6y7w"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostResolver"; version = "7.0.19"; sha256 = "01v9j3j54m2ff7qdfvm5gk77vggjyfy42fjn8lcgz38gi6z57742"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.19"; sha256 = "059qxvvyyqihxfmg21c3v6ykb0yf6ay88pc9r1dv27say4glr28q"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.19"; sha256 = "09ra2dm7zqjm000rpz2l6jqsf05f97kkkd754djf337h0kskwfkg"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.19"; sha256 = "1dbzmscgp2drqijl1rl8jkyn1bawfyzq0xlndk1knh7lwq1qhrwz"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.19"; sha256 = "0w2gvwg8mipvvp9q88asvpaxg96v7k52c535sd70b2lxmwgaf5aw"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "7.0.19"; sha256 = "10xjjhbivxb37yq7a417r3hmp5vvk75800jwlysfa241yq2x3ysk"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHost"; version = "7.0.19"; sha256 = "0frf9xf70fh595m6hg9h5wivhvm229dd9w1zij4jwsl532n9s80i"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.19"; sha256 = "1agbxkypvhcdwf2w3zfnsx7ncfi5nzhnays7b8ciawnjr3jp10gh"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.19"; sha256 = "056v3fyc0bqad3kixcggzvjrvflxhiiivy90s1rd9gbcm79zyg0x"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.19"; sha256 = "1zya7f9gp3rr31kshw3c53wmqz5f8qdr511wf2vyi2854b1gm96v"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.19"; sha256 = "156zby9bxx1mcfnxjvgbcmlxx5zi5l3dys8kgb1wfy9ipbhcjh16"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.19"; sha256 = "03z39bbpq5h9rvs9ixcrhvf18s3hsfap5zsi0j3yrkf8v5zqziil"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.19"; sha256 = "0agdz3g1v33d8bxm7fk1c0mvlkyh5hvr17f0d5g3yzrzlnrxlc8s"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.19"; sha256 = "0nkmj3hl0w5b8ndx0yb86dddq6w5qcknw0xvr40d6rlafsgbfdq2"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.19"; sha256 = "0fkkcm9bd7kv87bwfi434ikh0an2n6g340vr3pdz8f292r9kq4d7"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.19"; sha256 = "11sa38y72qi8v5pncw8j2ql89q3rl27nvmh1bpq4rbvnspl4pvqs"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.19"; sha256 = "1hrd03lbk63p91fn0rf0fybqwqk2mv57q2g82qns0991cl61fvi8"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.19"; sha256 = "0b4kq7c2rcngksq0xf12ijhjx9hch90hwrzw5icffqzhqys40v4f"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.19"; sha256 = "0j1giclx2kn3mjwm8kbw1jsv0vhnd65jk692y1y1xvzz9jbqfs5b"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.19"; sha256 = "143j9g5k661dqx9lwsgia215lr7rqz04xk2rk8g3vxckbnk7rzx5"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.19"; sha256 = "0lf7i88b9mdb72dgzc9zk478gwws4saij721v2n6z5xx9ggn5hyp"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.19"; sha256 = "012h4pb369y2wrb8rmvvklndsgphh6a6gd1gxqzl6bqfpl716njz"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.19"; sha256 = "01d9xrh0wczpdyzm6zqym9w73his56lq455hc8nkz9ga5a2s058h"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.19"; sha256 = "02wvkzmmnfj55vzanll95hl2pgg1ihfzarcwkhgnrxyx4j6qrh40"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.19"; sha256 = "0kgd9xl4r39pr4kcpfxgc8s13gpjjzamrkiwhnsj5mqyphslgfp5"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.19"; sha256 = "066wx7m5vj841xqqbdw4qshsjxzf0g6n7msgxjyqn2aw58w7kk9b"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.19"; sha256 = "08h5fybyn1dfpsr5gqz7xkafavgaacbf6cijq1hiynvjw89cm7ch"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.19"; sha256 = "1wvp2xlzh4arsnj7fz7p4714af8j19h7b847kzvafg31ns02ws5h"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.19"; sha256 = "17dr9r8j5kqgkbpnj5j4s2hikk0aiv61xvqchr3vp1pjrpzfi231"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.19"; sha256 = "14q5q312nz1i8q8ffiz4v0rp9fd52n3pv2p4vn71lavcplh3sfq1"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.19"; sha256 = "1hfb76mkxkqc88km752irifbxjd745lncvy0a0zxxahq0hacj425"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.19"; sha256 = "143abqzcq2s22gz32lj6z363fw6hll6mgm6kh530qr437rb8fvqh"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.19"; sha256 = "01pxl7n3iygdnzj1b08vz87d43ysc5yqzy8yifriy96yf7c9syb2"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "7.0.19"; sha256 = "15gr2dknc4g0dcg6zkml0f87i4hx7hjz7glmknkpy3bsbadlc075"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHost"; version = "7.0.19"; sha256 = "1mfk457maqrmxi0rwj4fhchbj0yj65zsr072374idf61q9fp01wc"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.19"; sha256 = "0qcsddvh4cjn8fkk8d8ndlxhlx7xs1799kqap192m5diip4ik0j0"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.19"; sha256 = "1wkvap3pm7fa02agg9dbnr4xq60rd5hrcjizr4acn8xrljyxbli7"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm"; version = "7.0.19"; sha256 = "0afrmsv8qk0p8b5964fz38m07v0h89j16x5mlll3pm0a1ih3cshz"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "7.0.19"; sha256 = "0xyc0mdd7nnmc9wjzq8nxwrqagmiqxds8qwghr2rgxw55b9slc33"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm"; version = "7.0.19"; sha256 = "1ssgnfhgkly0h8dc5h9c8iyb3n75d7dgc4cxgxnslydwv3ygyh32"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "7.0.19"; sha256 = "08gs703rz3agmisy3vsdnyv5lyc32qb8kvfljzszbyqlaf5cxhd1"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "7.0.19"; sha256 = "1z9zfzccqn6yh9mcqrkiidjagzmnk4blrralzb8q0b7mnf1b1ww9"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm"; version = "7.0.19"; sha256 = "10i3rr8hig3cnnd1wf9isxgmbj6hn59ndsywbif5yhyflgw3fvqm"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm64"; version = "7.0.19"; sha256 = "1rby657hwrw4a26fljbxq7lanl4rhv7sijxcw746lifxx7mzfj6a"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64"; version = "7.0.19"; sha256 = "0gg1rj848cfiyx9cvvddangww9h37586dr15d7l1c2zmk9nlisd7"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-x64"; version = "7.0.19"; sha256 = "1gvbnqayjc2nkb42f35d5gxc6ffszwg698z4dy8b75838jjqnwdl"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"; version = "7.0.19"; sha256 = "0xm8l6wbyx55p75wgpckmsn9brrymslgsr7rm2q1a8z003m86kx7"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-x64"; version = "7.0.19"; sha256 = "061lhndg6m4infwhnrb243sz3a8hvwvck6hpl106annxms760mq7"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x64"; version = "7.0.19"; sha256 = "1cm56g54fa18p9hvbmnkiwn7jf4f6bbcny3zd4vsqm9y348dag1i"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x86"; version = "7.0.19"; sha256 = "01391xxjmgcfgflc4fvrx74a8nr3y48db5m3r9qnj0m49rh60rxs"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost"; version = "7.0.19"; sha256 = "0my6x223z6mpwvw6614xzly6haxamnhn9w4a3q91l3ayq4q9crgg"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost"; version = "7.0.19"; sha256 = "1cklsjdk7rvnc2h9pfyq04asjpair2nsnbb002flwyq4nhh35af5"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.19"; sha256 = "1awcriq95alz79xzd3g669l1wf23bs362z23xkyxmafiyn0h9jvj"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.19"; sha256 = "1xbwsxaxq55azpj49jal50w8a2awd6aa5q5qbxhwv84rqlv8ixd0"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.19"; sha256 = "1xb37xfkblby3gi0rg0hhmy66pcvsm9q0x6ypi0z9lbl64h7r919"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.19"; sha256 = "0270v287dq263a4p34qxk8g09af4nr9sxn8m4jd192zfm9cggvw6"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.19"; sha256 = "12wkp5y27ih8d5k4xrlbi4jd8wg7si9lw03bp2bvmp7grslqdnfp"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.19"; sha256 = "1mz2y7s9gxj0jkrf8xyi9q2h5xaqily3vzd9b5bpmx69nbi1adip"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm"; version = "7.0.19"; sha256 = "0anfp4mdsnkkjj398vnqjs5k07z6niriyqz10ccxjzzmkxaq5kb0"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm64"; version = "7.0.19"; sha256 = "0wj5p8hi9jqr9qn4gl0v367kv43vdh21p1kxsja49vvq98y6c7h9"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-x64"; version = "7.0.19"; sha256 = "0izy5gvkwa5a71aq8q9nsbwmy22sghk9x1b42lw97vn4h5ghwcnr"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm"; version = "7.0.19"; sha256 = "1dsj2nhd8wa8m3w69cs4i89kd1b5812qbdjx14nagwgdazvvakbf"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm64"; version = "7.0.19"; sha256 = "1c9rzh8va957xvfb4w07409ncv8zps8692yp5dl7xh643djsgpwv"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-x64"; version = "7.0.19"; sha256 = "01slq8bk8mk0a59abf6mcs4m39mqzvhb003w4abvqr9vghq8fzbr"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-x64"; version = "7.0.19"; sha256 = "088yv3n9qghnw8fgbrkc90xnb0dlrr13j60wj6qhd8rsk53cvxig"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-arm64"; version = "7.0.19"; sha256 = "158pibija2rfnmxsrynypslknlr76h2vgpq4p0n9bfy79pb7krda"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm"; version = "7.0.19"; sha256 = "0qldfcpjid7a05b0sk7zznfz6xvpaz74hkyqs6ybs7ac1mkb5d3m"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm"; version = "7.0.19"; sha256 = "01rbx0phr7apkdkflsmbbzjzfzxl2ls3q6a00bqijabzb9brmfaf"; })
-      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetAppHost"; version = "7.0.19"; sha256 = "1s1x47nkaxk4mg2k4a81g6c3i2lf6lzzqn5rhs67fsp2p7gam03x"; })
-      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHost"; version = "7.0.19"; sha256 = "0m9s3fgmlcy1r5knfgm1qm4s9gskjvnpnscsv88hkczw8m4v8if2"; })
-      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.19"; sha256 = "02sq95zkgqlksa47n7mgqkrbk44v20fc8k7slsyk3faplg0bzf60"; })
-      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.19"; sha256 = "1pk7afp09ilzlinpbqjnbjnww6i7iykrhg822x8ggrmqm0bmxvyn"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Composite"; version = "7.0.19"; sha256 = "0mar4ls20prrj2b8vb2yaqgfz46gqsjll5amyacv92vgnyixhv9n"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.DotNet.ILCompiler"; version = "7.0.19"; sha256 = "1934pv8q3jdnsj94lid10wc6xmicmqvg82cv480898hfcvwp25zb"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.DotNet.ILCompiler"; version = "7.0.19"; sha256 = "0w0j7pmdm0x49yv4z96d6phmwqfj2sjm3aaa5k856g08b38kviyi"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.19"; sha256 = "116yy1k23jhaibhqr2jjjxd0pbw3n6ps3y8mx6i7s6k2mdglys5y"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.19"; sha256 = "14p7d7gb4bxi7vdzs0jajcblb3zbp8bg2168yl09jmqwyp3qwrrb"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.19"; sha256 = "15k2sn69mph4cfrr90rpa803z1jx9bzjccn5z5q5cc7ywnrm8xcr"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.DotNet.ILCompiler"; version = "7.0.19"; sha256 = "1gzmw2mp0pb9jj81784xfazxk6i4l9mgffd5k1ljbq4kp8i40wiq"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.19"; sha256 = "1lx6qydgvip8i7f3v93yn9ibdyl384hblbsk0hc384jai62hs444"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "7.0.20"; sha256 = "0ab1l6r77a11sk450jhhi9flvsn8gp4fz2il2a0vk1lw5rw23047"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "7.0.20"; sha256 = "050wdpwp7hjk5c9xyx0vj1cmslcdl9acldhxs6al3nx83vssa1kv"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "7.0.20"; sha256 = "0wi679cxlfx8s5nl3iqgma9nmxzbi73wamxshgpaaj2dg3z5xrqz"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "7.0.20"; sha256 = "0bgi8rx7dam9727v936h5ap81fx4k9n708002raw9v69p8yva5v6"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "7.0.20"; sha256 = "0h6f18k05w66797yyj7yqbf6jv5k3c5r089mkw43y4gbqz27vbmy"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "7.0.20"; sha256 = "1xlqjar4j0g1a7wf8ixjpnn6i19zxr3c7pwr6jdn06yzbi20ri7q"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "7.0.20"; sha256 = "0l2md2g657arlf703vf9y8x1k0zx50zf4wy4f96m6qgs9jx8s6py"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "7.0.20"; sha256 = "1r2nxc0nm2n5dc7laf65yqbjv23g9fzwcvv8vhrnvir6j3lgxfcl"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "7.0.20"; sha256 = "1n0dz6k338wmadkgb7x0jywz2qxf3427wkjw8xn2zdz4m1fcj58c"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm"; version = "7.0.20"; sha256 = "05srdy7bvgasr0yx1mxkilbkls14k0dmp4mzc7jiqv7xspc4jwwn"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "7.0.20"; sha256 = "00npza90sgnvls4k1k95mhgiw5fpxcrxf60fi17k871m6igdfh1q"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm"; version = "7.0.20"; sha256 = "1q86xz3v8p24728bl7sw0flhzk042ygxa23k0qyhxdn0qwzzq6bw"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "7.0.20"; sha256 = "1jjb4jsnm0f1q0s8199nympm9vifaa129l0bj4j1z94i1g85nw1w"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "7.0.20"; sha256 = "0cn8j76jbbp6vpf00kr1wwr4z1ij0sgdymawff32qvj44wfmhpnl"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "7.0.20"; sha256 = "0cbk7shnry75p95zyg14pszf396pgpyjwzhraqbds5mmncqisvgz"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "7.0.20"; sha256 = "02fz22di6ax1819spb4v22nb89glp3h08kk88am6rx3vgb440sbm"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "7.0.20"; sha256 = "0wvg2rfp4v8cnqkfjv4ifj9q0bd3vljqnbnf719nf1h0ilmcxcjx"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "7.0.20"; sha256 = "1mq59gpd6p46zl2nl5ijjncghx6fms9nig9zqhxazjd15bqy0l33"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "7.0.20"; sha256 = "01xpgbphknkjqgsbcngvckg3a8q0y74g409v7hmxsh7rjcradnqd"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "7.0.20"; sha256 = "155z494bpri732h1yba6ggmalgwxw68qjpyrbzfj9mi4whwy6p47"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "7.0.20"; sha256 = "021mg80b9x25jpdm2rc6m91wib15bb5arkxjjfa0cp509i5hnshi"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "7.0.20"; sha256 = "0jpxs82ndrbs3r28951v0p31ngfkhcs0k7plgywyvd1lpkvdm2nh"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "7.0.20"; sha256 = "0bcnw653m7w7if6z84rf4k3mr7hdmvnlv4icflk0kc5jd98bkvhc"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "7.0.20"; sha256 = "03107bdy4i9sckpwnk9s497sfq1prl4mccbc3mak43vbnfyqrsad"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "7.0.20"; sha256 = "1lhlaj2ra25jjr6f6rq5rw4wg981h9js7amld10ccyg2vfrswv9d"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "7.0.20"; sha256 = "1w5r2nv27h3csd5qd3sx2zmf5drrp3ygb519m4hvn5lazyfah5p6"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "7.0.20"; sha256 = "0r002hclq07y275qwj5pq0nxmb6k8h8yglcynpvw8m0pz8d9mr9g"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "7.0.20"; sha256 = "0msncsn0lz0dvc6clvc4blq8a1bv5qap7qx27fdibdx24i5lsjya"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "7.0.20"; sha256 = "13x37m9mdg8pvq1rzcrr4bp5yqaayz7173p39s623n8zjxrh60ww"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "7.0.20"; sha256 = "1cv1zmkiz114vk0b0spnnczagbcks5k1fb198lc88pi3c9dpfm0d"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "7.0.20"; sha256 = "0wpf2p1476ns8xd5qvih5llswag133q4s6mj62yzbba890lg5y78"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "7.0.20"; sha256 = "02iri99mhfq9awdymsqhg86pg6qfgfig2r2w96jm9lbx4gkg1rgm"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHost"; version = "7.0.20"; sha256 = "0g24nr6v86nikikfvg2b3d8im9cp1hib3xiccklbhkpbym3y98dj"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.20"; sha256 = "1dldykby8yfvq7r7kmlg5wi6spy1ngsxbs18ng34lcqjfxjjdnpb"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostResolver"; version = "7.0.20"; sha256 = "07ip7aflkg89gsbfm1w7sgidn4lvc3csrirzkbdv2jhm876bxz2y"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.20"; sha256 = "13pvjwqlacls6hz719lwc6rz0ghs29gxywisldwnwwbm9i6wdnga"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.20"; sha256 = "15qwwdf3c03gs916r3k49wwg411cmrf5xldydkxjjab8pavdlq0s"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.20"; sha256 = "1mjwlxy5gy7k2iil1jcrssqspn3hrpm2dqwghzx9dr61wvpl6sq6"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.20"; sha256 = "0dwpzaasn5044aqm2xix3czfgrwx0y0jwis6p0x8n8jdqyskpim2"; })
+      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "7.0.20"; sha256 = "0ai75b700v76rmqlblxpkwsd97jidfd5kn3jl0y52yq0ylvc4zyf"; })
+      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHost"; version = "7.0.20"; sha256 = "1jkh7kjhaghslhlx6x7w03kdxi1xbrgxwdj9qav0ci7nvf5j00v6"; })
+      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.20"; sha256 = "0k5skgnss5hknr4r15gxph54zhk65cnglp117gih8qxyzn0245m7"; })
+      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.20"; sha256 = "1kllpbyldix05ab1pb775ykxwh9lrcji9vqbyp964b8m68r9yf1h"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.20"; sha256 = "0a5gajmkchf2ad3zwmjaa6mw72snf6hrf3xz581mn8qnjjv68whj"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.20"; sha256 = "0xsyd8jvj39z99ga9x26g1fi4zi39pf3ym87fr9102bg5rllj8m6"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.20"; sha256 = "18jp8cykpj40r61ji5fpvfj7yw6cw041l6r4q30am9sj80sgq73m"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.20"; sha256 = "086cn7jilskr7q2hfy810f4hshzhm9r6kvd2kjzvjwf93s0qfgya"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.20"; sha256 = "11y8c16m63kb1masa0x7ympwjg93ffyp4yfycd0fcf0zhzyw00bx"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.20"; sha256 = "175qh1czpm8vs0ifbg3iwgz2cn3v0rvd51g1k81k6j00z9gmhrsm"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.20"; sha256 = "098177bqda2viwzcabsxrpj1p45jqi5fnyfg9xnnw198gh0iskvj"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.20"; sha256 = "180bkmdr4h14a8l2gs9khm835037pw8aqgjz4snx6wxhq7jbdypr"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.20"; sha256 = "0jdvi1pcb3fxqa01633asixs93rg1lfq98vnba018nbqdifqyvf1"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.20"; sha256 = "09can99m6psr9v93awwkahyxq899sg1l6p8gpp4qscqwpil22r4c"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.20"; sha256 = "0idzsi16ny8bjhii6fwjwqn8wmy8x4q2y0zx4d1vmxfx51ym634f"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.20"; sha256 = "1k5yigh196dn961bbvbyy8jfvw8ghmk4da313a304b4m9rf6q5c6"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.20"; sha256 = "1rnpmqmgdw2y9snjj3kp2irg1aggkq2lccd7v4q53ghnl55jdil8"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.20"; sha256 = "0xibpawi6nahdbrdcb71panhx4w5zlmbfxspwmljn2a77sy9caw7"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.20"; sha256 = "07qrpww6nd67xjj3jin97jwiymyxgpm9mdg4raxs9ss0pc05l5xv"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.20"; sha256 = "0dskgn19yhsq28hvzqs422bq64y5gx5cx33m1m3zq8mfycvscnsv"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.20"; sha256 = "0k70cb1lh6j9qg4pjy6r58z0n5xip3l6i6vkgrdx2rqqvpmq2ky8"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.20"; sha256 = "1qr458jrmsb9nijll88hp56msjmvnk20q73x7qypvqlydsn2ap3y"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.20"; sha256 = "1503pddh5klr3z9kpmbxnr4w472v1w8ggh37iqi79z3b0x72zzi6"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.20"; sha256 = "09ddji35a92iq9f4rm5xmz1vi3bki75xskq3iypjbc52ar7wkfl1"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.20"; sha256 = "03338hfl2sb8ca9v3a42b4fgr7qyv3r2khc0ydhif45r0xjx6zrx"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHost"; version = "7.0.20"; sha256 = "0lnm29n2z4r7kjwyfa5gbl8qc5nbbc5qkl9kg8vj2xb9mlk5zsmz"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.20"; sha256 = "15ah793265ikivb5iqblcl4x86g4bqgwmhdlhikgv6a18bq32sjz"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.20"; sha256 = "1jnz72f7m292863wvpmm12gwdnqwbvm45br1958f0gkgp0zmhyjs"; })
+      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "7.0.20"; sha256 = "18k3qs54a4x342ypc0p54ch6xwx9wpfgb5f6iyw0i0f8jjxspbay"; })
+      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHost"; version = "7.0.20"; sha256 = "0nyk8x3myh6b0jfka8mvxbhlzl38qiljky8acfkyvw4dzw0y63rb"; })
+      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.20"; sha256 = "0541ykf9hhc56jin59lg5iw96apcg740wg1hrj0m8dagjll2c599"; })
+      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.20"; sha256 = "09dlmiqcscdrvjrg9w5mjlz59ly0la4as4hkadz6j4mqvv2k7j6y"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm"; version = "7.0.20"; sha256 = "11bcpf986m4wzrln9v4frh63arrg9r3vmv2lq7x338xnrwxadz8q"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "7.0.20"; sha256 = "0i07x8kwsifhzkbx1j8argx31g9dxppqwaysn21cd623d16r2g1i"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm"; version = "7.0.20"; sha256 = "0aq01ld9k4064bgki4q4g4fl08i82pnh5xgxaqk3k48nbsbrzvwc"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "7.0.20"; sha256 = "18an54s6jldf330ckigig6s1xnadm7zygrlb35qrhawvygbqayal"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "7.0.20"; sha256 = "1fv6p9idx6g58y0khw7jl23lkwj01l8246mv045i9q6sp3fm9m2v"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm"; version = "7.0.20"; sha256 = "0qfv5w1s5pj3c46jx2g75parx12p40rywacvb7v0fbllj2nvm89r"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm64"; version = "7.0.20"; sha256 = "10d13b4vl5nhk3iqcpbhdhqgwmymzx875w4yq3pwjkcc2vyhg3j5"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64"; version = "7.0.20"; sha256 = "1rbl46pfwh1hkbf5djy1khqyiv2fivkgxs0gcnpx0kpx4lncf73a"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-x64"; version = "7.0.20"; sha256 = "03760jw9bbhcg5gmx5z5xjyccl0sv1lzznk3hx2ynwrwg6dhbkyi"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"; version = "7.0.20"; sha256 = "1gw4wlraqbr5m5w62wyfx7gsvyj92a8h7i04n9jgc6sfs4yfrsz4"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-x64"; version = "7.0.20"; sha256 = "0fcph5pd0myyzzl3ihnvp6wii4vl09ayri5ba12xgixb3qidskgp"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x64"; version = "7.0.20"; sha256 = "1zxpbwc52xsylc6kwk0sqf24cgyv9b2cz9l3icpl1hnkqims9xy4"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x86"; version = "7.0.20"; sha256 = "1jhw9f2mzx8a1bqdiq7ylk8nccwcqa57sd31ykd7lzq1wbhy2r45"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost"; version = "7.0.20"; sha256 = "11l84kx7v6y10kzlsr74kwvvz44wzj476m5mkm2xv2b8pv1z0i7z"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost"; version = "7.0.20"; sha256 = "11xxvyals3q16bzjd7a4gg0nzidsm822aa92yd752jzcxchdn6z0"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.20"; sha256 = "0dg1m80mxvabdkqjgynnws6vlzj9469d5nrjnk5x2zqcsw9kjj08"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.20"; sha256 = "0rdq3z66azlwsak8n8j9jz8pj0lwsvz9f7n6k7x6mlz20wcw4qs6"; })
+      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost"; version = "7.0.20"; sha256 = "02ymh38rj3pwak3g9qhviv64kqpclcp40paijg7m184y5bli68b3"; })
+      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHost"; version = "7.0.20"; sha256 = "0s9bca6p8j96as25r22vbcmyyhbavkczdk68ypd7qn4g1s44l34w"; })
+      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.20"; sha256 = "1mi25ilkzw9375lybrmi78g24xzmcz7mnqgjf8y9qvivwsf7ysgn"; })
+      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.20"; sha256 = "15jfwa5fva8qz6g2gnbxnppd9cfs7r8fspc9xb7n9zgxl7w5n6gd"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm"; version = "7.0.20"; sha256 = "1xvhyafgxaraf97s364a3jk5dad4hsssqqvzx4i8qwg36fdijcq2"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm64"; version = "7.0.20"; sha256 = "1r27bm12x9gwzv0cid1fdzx9hv9bdy6p6a65lypjzvgwfdgnyksv"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-x64"; version = "7.0.20"; sha256 = "039l3qdsz3ima2jgvp8nqby68cr9mvj8q2xd0lmx37drxvck7bx4"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm"; version = "7.0.20"; sha256 = "05zybhb8dc22f934gj3f55xvsfvqizq0nf4d29ns3z9d370jklp3"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm64"; version = "7.0.20"; sha256 = "01rrnbwjpy138pra53ypixk3cr528fazjsl3vsrvf6jnymgxlb4y"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-x64"; version = "7.0.20"; sha256 = "0g09yyi0a00q9xa51p1k9hvdj20jmy1ss2r2l28zk9s7lwyih7kl"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-x64"; version = "7.0.20"; sha256 = "09kb949p1qc6rz6mf736id8qfsj6dq8azbrpzx19xzpnylqjch47"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-arm64"; version = "7.0.20"; sha256 = "0l76v2w34igvh6i2hgvhfwmkcch1574ylwl1159649pg7c95kj7c"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm"; version = "7.0.20"; sha256 = "1jj2mzcn1dd66fic37wnyrvd07fplrsdj4azrvi0qz3qyykc8wmj"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm"; version = "7.0.20"; sha256 = "0q8i69qc58kyxzxfz0cqjlbjcz1n3p130nz2q852rvvcxa4644zc"; })
+      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetAppHost"; version = "7.0.20"; sha256 = "09xk16nb9wrsgjr531dhd7mvpqa7b50akmkqrlndyspma7cbvrzn"; })
+      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHost"; version = "7.0.20"; sha256 = "0l82bqvqw5qqhkgrxfscc4dw197b5sh7ic63pymdhixvx0d3fi1h"; })
+      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "7.0.20"; sha256 = "18sarln3kbkqc1ab9jnadcqqxs8iicf7jqldxzbjzhdpmf96vwna"; })
+      (fetchNuGet { pname = "runtime.win-arm.Microsoft.NETCore.DotNetHostResolver"; version = "7.0.20"; sha256 = "1vh3ymhv33qysc4vj4gb3g1rgajy4jr4kxfjcsq2myn96aan84i1"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Composite"; version = "7.0.20"; sha256 = "12w9hlq70ynkrgqbr555lnqmbf67iz3kaci2vi07zsn3mmak3z6j"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.DotNet.ILCompiler"; version = "7.0.20"; sha256 = "11c31fzq4qfxcsz3p6vzdfnaqs29saf1dnmzq7l90p6ylwsblc7f"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.DotNet.ILCompiler"; version = "7.0.20"; sha256 = "087q3p57snmvvzzqpxp3vwvi2q21kzlk8qh1w6axrcjdci31xmji"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.20"; sha256 = "1nc8m38jsqai934nn26f6dkl3c0r4sabssjiizcixdyypzlv3hcf"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.20"; sha256 = "0iyn0rkf9vf7vbd58xs24209557dzq1dppjb5d35g39z2kh06k1c"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.20"; sha256 = "1b0ys3g3bg9kxxvs1h1kj79b9n9nl2g6hjhmb3c2cpp4slzlsd3d"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.DotNet.ILCompiler"; version = "7.0.20"; sha256 = "14nq8b869k43chsn4ba3b3ww9w25fip39ik8rfxa1z8l5k4k6xb0"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.DotNet.ILCompiler"; version = "7.0.20"; sha256 = "1gajqvzf18p0jppvcwky0shkmw4nzwz8hzx4kwblrs41d8xmw39a"; })
   ];
 in rec {
-  release_7_0 = "7.0.19";
+  release_7_0 = "7.0.20";
 
   aspnetcore_7_0 = buildAspNetCore {
-    version = "7.0.19";
+    version = "7.0.20";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/d3d6c11a-a7d6-4be4-8b2b-11154b846100/69bd5fbe2621600e84bb191d0b13abdd/aspnetcore-runtime-7.0.19-linux-x64.tar.gz";
-        sha512  = "569fcc25f0c32df3b28c4569bbeabb6c20afc8865088f14a405d3847bbfd159cf291d2dc4810140b8f436f06c95ebb09214ac837b5ade6bd8121e9c0204eb217";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/09e67261-215a-4003-bcf8-f90d67dcd02b/b32cf12a5c10b1f74e21c8cb03880891/aspnetcore-runtime-7.0.20-linux-x64.tar.gz";
+        sha512  = "62ed9743972043a72e48d5aa2f7fdf3483cf684a32b051315004d1c778e9712bf66e5e7a97a5a53993fa8e92daf5bacaf2cdb3eae44bb9a9e25532b9a80f4f70";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/78d9729a-9f05-49a6-81b7-b041452a2828/73214343fb60deddb7faf355ecbbaca3/aspnetcore-runtime-7.0.19-linux-arm64.tar.gz";
-        sha512  = "c71e6a756bdac7f68289fb6c67fcb8c347586e421cbf4345fb510686ff5948e25898759dc7ab30904ac07a7d595508e59d66b5b6dc88d30b54c141c82bd590cf";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/ae3027ce-cadf-4510-a1aa-125958cf0432/c3d958ba80ec21e9d75ca5e8f43ec2d3/aspnetcore-runtime-7.0.20-linux-arm64.tar.gz";
+        sha512  = "dfb1c1bef4d826defd3d995599a5c03e1bf1a64c65d98b675d6c05dbb7380d98233953e68d53fc5ebec60ad4ef75417073fb1fb3256a0176bb964f0e01161f6c";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/e2bed645-39cb-4ea7-ba7c-503741d8d9e6/07bc37ec71cfe01a4187d94275580b3c/aspnetcore-runtime-7.0.19-osx-x64.tar.gz";
-        sha512  = "5f16d0cea6b637ad9835dabf23b37f47d8fe92fbd4cfb1ac046fb607beb380255759f14f3e80f9a49c3545afc47000c770394d4dacc5b7444ab0b6d87a5336b5";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/65fff3f3-1b87-42aa-b1f9-04e7e318c1af/4bfbb002455b9a037e75791e99a18c19/aspnetcore-runtime-7.0.20-osx-x64.tar.gz";
+        sha512  = "00677819450d14d9adc2b65f25b9a069bc2b43f72e4db651e77fe0e48320be8eb7c555277281de968e75d0fb19bef960d4dcb27161b8c57bce076ee18bb5ca98";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/879c8cbe-37bd-4fc9-b8db-857a3fe09144/231cf7ae2bca959750144d08ad08d057/aspnetcore-runtime-7.0.19-osx-arm64.tar.gz";
-        sha512  = "10fdc9868efdd8cf25dbe10843ea17075747cc1bee52e495af7e1858ff556dac2802bfcc85fd474527f142672b45e7a1c5b63a927529036923671f6cb9092431";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/2833b957-8fb7-45fa-bf85-4960260ae344/fa4678e8c3ceba67771b5195a2343049/aspnetcore-runtime-7.0.20-osx-arm64.tar.gz";
+        sha512  = "7de161ea45faef7693d78ca44b585ab73fc183232d3f8d229fde3d05d696818d8d6402ac7ac86ce239a0a6cdae8fc2eafbb445e99443d0c7a4aab3781df35be6";
       };
     };
   };
 
   runtime_7_0 = buildNetRuntime {
-    version = "7.0.19";
+    version = "7.0.20";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/09ab2389-5bab-4d45-9a91-a56ff322e83c/2f8192a98b6887c7f12b0d2dc4a06247/dotnet-runtime-7.0.19-linux-x64.tar.gz";
-        sha512  = "4e556c1437a58d2325e3eeb5a5c4b718599dff206af957a80490ef2945b1a2f5114d25b808b4c9ea233cc4eb2e5ce40932bb249e198319e97f3b5cc443612e6f";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/2c5981ff-0f0c-47ab-bff4-0ea4919b395b/cbfdfa7f35d133b0bdef87fa3830bfa0/dotnet-runtime-7.0.20-linux-x64.tar.gz";
+        sha512  = "87855297338555a7b577d7e314e5dbf2c2350f8c867a489cd1e535634bad5c123a1871464d37fc9421837ff5d426c2eadecbe0f60bbf3fd32bc2461f47790a40";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/81616b49-6c82-4778-884d-caeca4c195a9/51a0a0bcdd17fdb77be7f1c5db52165e/dotnet-runtime-7.0.19-linux-arm64.tar.gz";
-        sha512  = "fde0a0190c77cd361722d2ce449b207b6a26c7f6462dcc9a2debfa1b0e670f7df0b538758ea5eb865f156df17a98722ed7e8f7a2bfceb0a486d1b06a2d436240";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/af6e12de-a63c-449f-b35b-b72ec6ee3da5/ae129eca3d734117d14cd5965dca93a3/dotnet-runtime-7.0.20-linux-arm64.tar.gz";
+        sha512  = "c245125ee2708252119a1544556e1aa9e00aa18b2303de69877da10c6c17e3f25024b749ca93b53be76ee0e8e4a75d403f7019b8bc2e50ed1278f656cb2f7e06";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/92c2b6d8-783f-4a48-8575-e001296d4a54/c11d13f994d5016fc13d5c9a81e394f0/dotnet-runtime-7.0.19-osx-x64.tar.gz";
-        sha512  = "005828f1138cfce1f04741a478595186a1098185747ed0872099d7541d2bed16416f36d1214f6289f6ed1d3543e119733e4bba6dddf42db43150bc7bf2e980df";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/cbade9d9-be1e-46c0-9f90-13ba882965dc/31c86e8f4beaf0e5ad9ad35a408be7de/dotnet-runtime-7.0.20-osx-x64.tar.gz";
+        sha512  = "acdcde92f2f2e43584ee59be447f778f4a152c308975c7bdc5c2372b5bbd3092eb9d2233aec3b82756ba1e352a0877ffc17e4c8cfb20a9de91ca6db54d79b591";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/4b8da067-3b82-4636-8e0d-18583857e64b/fba7ceea0e014535a695ceb9259886c6/dotnet-runtime-7.0.19-osx-arm64.tar.gz";
-        sha512  = "394f0f068b1dcd8f116c41391baccb46fd1112578281b0d11edd6dc194b767850c8a2bb9e2bc041b1e872872afb130fa10f7c98fbac988dd80c0d788a0f23e7f";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/50dbf5c1-942d-4fd8-b646-1f024326ec1c/5fb99e9dae294298a8131757b3ea829e/dotnet-runtime-7.0.20-osx-arm64.tar.gz";
+        sha512  = "af1cb62e29c69648ebe334e651c2703cd5e87fa0bb28c670bacb3b3dd1608aeae35ae53402c5eb4ed8bf34abd831a08ccb5ef84e5ec70617d9f8d9969fe7b8fa";
       };
     };
   };
 
   sdk_7_0_4xx = buildNetSdk {
-    version = "7.0.409";
+    version = "7.0.410";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/03e24745-90c7-4661-8ffe-e5a857b6e6a3/99038e4e48e403a17bcbe509bfe8d6b8/dotnet-sdk-7.0.409-linux-x64.tar.gz";
-        sha512  = "0b67d04621d7c2a1856fdb0cf6e081090b4e1df1075d2f881fb33655422f2f59f63f8324559dc207510485f77781cc20c7a407e3c04dc0b53246987164427671";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/0ddc1522-2361-4394-97e9-52318bf51951/c5aef30601a86810f1f8ea89d42c26a0/dotnet-sdk-7.0.410-linux-x64.tar.gz";
+        sha512  = "20b8e02979328e4c4a14493f7791ed419aabd0175233db80cd60e2c004b829b3e8301281ea86b27ba818372473accf5a6d553e5354c54917c8e84d25f5855caa";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/f065c679-7039-4968-9a2f-dda7cda72f5f/702eb11e596f498a1cb23b636e1d83be/dotnet-sdk-7.0.409-linux-arm64.tar.gz";
-        sha512  = "ebf98115e3ef9a5388394443b8cec8aa104c2468fbcb6c964661115665645326abb0bce42786a98eef4ebffe42dedd36de8608e15538d191e934dc83fcd8b2f5";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/3e408891-74af-4ccb-9ce8-895f6806a97d/3a589bbf6e264059544cef47be672540/dotnet-sdk-7.0.410-linux-arm64.tar.gz";
+        sha512  = "2db6a3b9a532d2f59a2b459e634206913a9585c821f3f578a421e3bae346a92dd9b85b76ebde343ca3057275f7ec4d0bca71cbb7f2badb6dcdb516244e84da46";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/feee7b85-ddb2-4ff5-8927-5656ea1e0a6f/ecdfb330298d11e0d49c3b595ddea452/dotnet-sdk-7.0.409-osx-x64.tar.gz";
-        sha512  = "70efa550d6d78e17db0368e8500ddfd9a6343707e009247d00062613e8052463d3d83779af619128233e78a29f5b5a5f71f0eaba740c3c3f74be0c76145c892b";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/fc8614cd-f333-4adb-815a-9bbd07e02b16/0ccf5e50cf8fa5c600716395e240aff1/dotnet-sdk-7.0.410-osx-x64.tar.gz";
+        sha512  = "782e15c19ce20aa8333566f23c2d3cdb8e89c7626de6330ddf670c4426e30cc854e44ff3341578622aecf210fa66ddcb63a7d2ad629ed92cb5582ab670f953d2";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/0025e3a3-0221-493e-90cf-a5baaedc3cfa/716e07c6342d6625dd9a04f632ca8d50/dotnet-sdk-7.0.409-osx-arm64.tar.gz";
-        sha512  = "bf234cc2c6e90abb891cbefc3eed35e63fae07d312f01193d8890dce03edbaa3fe5a095cc695bb03ef35fcfd1c2e45e7b9d54c3b483761d7b1653a019c55b53f";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/bfba06ea-d182-4a12-8066-fd78413e6cc3/f7940d1e8d8ae641a3a3d65b6bfa1071/dotnet-sdk-7.0.410-osx-arm64.tar.gz";
+        sha512  = "c0ef1914f2b298504433bca9cdab02dcf324421ece39657b66523f13b7a7166e726783673a602fb462f3db5c53f59a89381b918e7658d49a57763b43cf75cedc";
       };
     };
     inherit packages;
   };
 
   sdk_7_0_3xx = buildNetSdk {
-    version = "7.0.316";
+    version = "7.0.317";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/28d800b7-e6c4-42a2-a27b-ff9de8979025/ef5dd5c9329e1789ab1dfd3a82e88677/dotnet-sdk-7.0.316-linux-x64.tar.gz";
-        sha512  = "1489f33f3314b93ac7b9411e4c884fb630622336bee6765b7f193aecda8798cfa201ae0b32d82ec401d5839601d79d6a854832502b08f6eea860fc47fc1da6f2";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/3207f51e-26ad-4d43-9249-5e03e93e5895/af409554ce918557a05f8e8102f199ea/dotnet-sdk-7.0.317-linux-x64.tar.gz";
+        sha512  = "906ecbfa31b10ae5e2a8ba713d113ccd83e3a9b9e4d3e322482692891542959e76c51db5dd3825fb4a2cf1e951737006a99be7290f309d6822567d3a533a7a9e";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/09e91afb-d0a7-4468-9aba-70484bd8cfe2/8ef2416d952b14ec9e00380025960b36/dotnet-sdk-7.0.316-linux-arm64.tar.gz";
-        sha512  = "c6c7d57f6ddcb26fae6cef846745bb151296d0f359526161a0e700d9b54ccaef6a24acf2485f2abae1b7305608bfe9204ab89842a712f2913caa092efb756833";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/e08e38c2-46b5-45ba-b318-6b0949b3cc2b/1780549adba82e521439b7a0511229ef/dotnet-sdk-7.0.317-linux-arm64.tar.gz";
+        sha512  = "22badcdb2cba0f1bedb1fcbdc99269a66a01a232193e00b42823806cee5d46194b8dd008a53e17455072a410f77bd351676f351670be96c13572d8e30cfad180";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/9a092178-2aa4-4c06-b73d-144327a4992d/4709a913d89feda462d9cccd508b4a5f/dotnet-sdk-7.0.316-osx-x64.tar.gz";
-        sha512  = "52a96edba93029283d555c13abd1c1b016870bcdbf10db4caaea6f4b18c46aff3b49355f8bf7b8b2548287c1bc31dbe38c6b7a27e40c1129c2eb010c697c002c";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/c03db249-372d-404f-8767-dc7e4a104ade/49d2336dc14b70dc937d8f91716e4fba/dotnet-sdk-7.0.317-osx-x64.tar.gz";
+        sha512  = "d3dbd0fe7cbc62388f150adba5d818abee3986863d757ce63088f4feabf801052c08a608acd5036f97191435fe99224acb12c7365be7f77def28553a231ac3c9";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/8e2764ac-debb-4e46-a6f2-637f7c7d8e70/d3da856e4a7d4b45581ff405aee923fb/dotnet-sdk-7.0.316-osx-arm64.tar.gz";
-        sha512  = "7f59874fb1638f6f09a5538483ed1b39e482a90bc11555b07cac8fc8ea941dbd9419f57fec252810bb324b89d8647b6bf32d1bd4e6b720c568929d82297d260a";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/697b6485-989f-48d7-86ac-320529a85b35/5b5ed55e7e4e2c0a1ba2c3e0cceefe95/dotnet-sdk-7.0.317-osx-arm64.tar.gz";
+        sha512  = "b5f367e1e20d728d7167c81e4146358e760f136b9ee0fc410d813c14366e38b09a069031aa8ca6d8df438435b6ab4e2e989be309e097169459365d4befaf9f5a";
       };
     };
     inherit packages;
   };
 
   sdk_7_0_1xx = buildNetSdk {
-    version = "7.0.119";
+    version = "7.0.120";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/03102e44-64d0-414c-9cfa-e212d0160ce8/aad0796ede4708933a4cd75bebd878dc/dotnet-sdk-7.0.119-linux-x64.tar.gz";
-        sha512  = "6be08bbbb9d961879b63943413b70e0ceff413e68af59c5c5f01120b02c605e83145a5a9f3417563f9b39159cc5ee149219e99e48ebc92ca2b25c2c0554dd5d6";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/8b678e05-b3c7-43ae-a31a-c007a901d939/934ec0853faa6404aa924c99e019f788/dotnet-sdk-7.0.120-linux-x64.tar.gz";
+        sha512  = "cb9faba83ab276c935ef35b31f016ca4617f0d967c5b4bf1e993c2159992fb59d1dd25dce09928915b9ff586ead7acf92ec1dd96937c93317a99ca0c92b616c9";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/c0dd267e-4f6a-4a36-9f7d-19813033cb60/69a960be31caa92da70e68c9529ceeab/dotnet-sdk-7.0.119-linux-arm64.tar.gz";
-        sha512  = "187b1422f0ce4eb59c3f894cacb074abe285ad0346ce6cd95a240506167932f08c90ef2529492a8fe6a9abf8bd7cf3dd4c7258cc5972ee4fa630d75f03b42ccd";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/17a7bef9-4696-4b93-a3cb-f4bb9aaf2985/3e19b62d05b8e85b0a46d5dfd99196a5/dotnet-sdk-7.0.120-linux-arm64.tar.gz";
+        sha512  = "f530f794afe3c3b9bd87b8ed509a1a13b1c8fe6f2bc6e6cce3e8cd6b56327c0ff27fc138122c2dad68770cc5015737e007ef5706599c189ef0cc7521cbf0b654";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/aea7635c-c965-4ee1-9f2d-496873e2c308/e9a800bff17679887458ec75e988fe82/dotnet-sdk-7.0.119-osx-x64.tar.gz";
-        sha512  = "dd70345a9093abfd0a839394e425c7b9907afc5884828127ee503ead5395338c1f1b013a481eabff6f1ea1e9e57ce76ef0875d5feb1540f3b05539e9afd129ff";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/b1da5ec0-e336-4716-b9ff-77f8160e7878/5c40db0a17dc493eb0be8d047d0c6885/dotnet-sdk-7.0.120-osx-x64.tar.gz";
+        sha512  = "94deb9988509fcbfffc357114d0f5645fc6b6f6156664040cd5643a191bef10ae2fba4168aa689ff7da1a1b6fa779eb4e53a77a7847beceb7f0ba451d2c20d57";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/06970037-ff94-42b5-a640-16cc25e0ca30/628233310199d362e7af0fb25825f8ad/dotnet-sdk-7.0.119-osx-arm64.tar.gz";
-        sha512  = "c411bae746be15f270513412a38e8fde5a72795f876f26b7e5452eaecd3b4fb0e979f9391e0f5f652c692a4516741f2165d77afd5ef264bb24b8bda9cc1e4bf4";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/3d081107-64cb-46ef-ab37-41560d585efb/5aa6a70b37790bbea98d7b8c380eacaa/dotnet-sdk-7.0.120-osx-arm64.tar.gz";
+        sha512  = "dc06801d8de34df698f93e3aa872d57131dd3e33ac4f7cddbc96223911e0ff32fdcea78332da7be0013362c90cd24db2d86c1e275297be6dd162948f2bd38cbc";
       };
     };
     inherit packages;
diff --git a/pkgs/development/compilers/dotnet/versions/8.0.nix b/pkgs/development/compilers/dotnet/versions/8.0.nix
index a6468f685cf05..e88c122e3a8dd 100644
--- a/pkgs/development/compilers/dotnet/versions/8.0.nix
+++ b/pkgs/development/compilers/dotnet/versions/8.0.nix
@@ -4,225 +4,225 @@
 
 let
   packages = { fetchNuGet }: [
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "8.0.5"; sha256 = "0zfpmawx2pc1mjdjkadch2ycqfsvjxz6zr4r5lb2s9w8ywafyqcf"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "8.0.5"; sha256 = "0vn6kq3svv9kbgwdfa3lswc4pwsqxplg7kc3srd1a07k4jkz9qn5"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "8.0.5"; sha256 = "0cvzrnqizdccrajfznjgwj6qra8kbqqln5z6x2l9gqklawk4ncdl"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "8.0.5"; sha256 = "0phhkwilyhh764m8pf403d3qv072ld0z7jg6x9sywqlb4q6za443"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "8.0.5"; sha256 = "1m9gp68z0wyv0xxr4aqc1c2v6v8grml3jxkiqabddn46d6gsisqh"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "8.0.5"; sha256 = "0mdcrzpj17g8xkk5j3flk5xkgp2dx44gamyfn9x5lf9siyi4812p"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "8.0.5"; sha256 = "1r2hcmi5l05n1s84gdpiqys0bc4lik1fmp8085dlqz5pc5kg0ibh"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "8.0.5"; sha256 = "1118p6981b74zzm3p1nr2kwd5db35y21z3xif940xahh52zc887n"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "8.0.5"; sha256 = "1bd0spskxlc4kwqd260ycxxvysxq19hrz6z0chlbc8kxfwf3kf9z"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "8.0.5"; sha256 = "0s62x5cv1bw6g4jmmg7vyfpj4nha3bpsanhwpbk1vwgkridwxfgi"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm"; version = "8.0.5"; sha256 = "0b50abmhp8l8qjiwqxd1i1zw1kfddpr25nxl061kxb319zp5qslb"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "8.0.5"; sha256 = "1m29wm2i6666cl6jlv5r5y75v98qidqjsc74sl2xazxsd105p7iw"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "8.0.5"; sha256 = "1f37i0f227lns4x2zxw670f7lj8lkxhpn805dk07xd2a70w3h54p"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "8.0.5"; sha256 = "1b4js7g35nq5kx50cjbncrpychrhxqysic46x082g50kvkn877zy"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "8.0.5"; sha256 = "18ln96i7md0b3p00gyaka8jr9hly47gkbyqsmyzvvp4b98z5lda9"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "8.0.5"; sha256 = "14mipnqvw6h7pw58sqjjc7013znz9wgcdklfcj6nbpr3cvb297xm"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "8.0.5"; sha256 = "1004mzihgamdrv66nd9bv44kk0qxbmzbqgjlrq54k8fxwy1602ps"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "8.0.5"; sha256 = "1wv6sqhf77x5iac6h64sr1ip8qyz9w79wlvs82h5wxn84hjrb97h"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "8.0.5"; sha256 = "0vz07rfkl7jday1qgjrgvqf47pgzqajx75fz9v3z55n94wdrsrk3"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "8.0.5"; sha256 = "0176paxswr5phr8x29xir3sd4rxygp4w107anpwx14a2fbm01wmc"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "8.0.5"; sha256 = "1rl8f4bgx6hmh4q7lgr4nvx6fb044rg96ja128m22v925wx3wq9q"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "8.0.5"; sha256 = "0j09zajb36z3gyv6f7gw9d80kvcjc8z9qw52x4cs5bynakx97563"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "8.0.5"; sha256 = "00m2f6fi9nagcv9s0f9nd0wkcq9qs6dmwchdp0khfsl3xj1hv99g"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "8.0.5"; sha256 = "0jn3rpk6xcndrlkjvr0s8wlk4vgakvc18js0psmlrswrq9crq4ix"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "8.0.5"; sha256 = "0l1shrv0rshx527dy90wq1w5x3rvx3kzqj1mslx4ysjzf8841q6r"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "8.0.5"; sha256 = "15vadqfi0w7sdq0rh35rb9ph4h4qbal2i5m5ifabbfwjp7348z9c"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "8.0.5"; sha256 = "0f5ya9gb16wi6jff586g67icwshsca22afx4k6vnssr2p38xvh7v"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "8.0.5"; sha256 = "09wjap5ykxsyyxfplhjn7jpxbx8qnks6cbc0200nfx3xqi5hyj6c"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "8.0.5"; sha256 = "03nin18sqjc79b4dwwfzd620vr0ph1jnj462sfaszhyrcxs41vz1"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "8.0.5"; sha256 = "0f9pw81cc2z6jir7nfr0nn211857ac9ix0dq7rpib0ld0bzf9naz"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "8.0.5"; sha256 = "0b8bdyckb4l2z4byxlw84pz4nfahp8kfx5valbll8sj0f9357apn"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHost"; version = "8.0.5"; sha256 = "0wv2c8cf1fi7pm42by9dhyrld48cl5mssm70aq7fwa2hgnvy5kaz"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.5"; sha256 = "1yg53pnw2an4vmw9aqmhdnrk54ir16i3q95lv44p3vfdx8az582b"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostResolver"; version = "8.0.5"; sha256 = "0zjh0ang18sxayr3imidda99bbcna3iwml77f77fyw7cq5xm57xd"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.5"; sha256 = "0bvnc073s7g9pap6cl0v18xp7shpmck6mfmcwryjzpj98za8fiz3"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.5"; sha256 = "1lnxgpd66psjciafhgwm37lzd8a5n980m77bbmaclcmx1jf5knv6"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.5"; sha256 = "1r753a0bhlz9iiw1k47drjmwckwjzzixzgggji8glp3a22p2d8bp"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.5"; sha256 = "08wcywhnjl2pw5w2ybswnwwzgmyanxm4bma80rbz86xchlqakk5z"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "8.0.5"; sha256 = "12r3is7ddra45yvkwqcrm63lhpya5l9g912xw4rqbnfz4pbmr8dz"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHost"; version = "8.0.5"; sha256 = "1m3vglk8q3bycg6k5x3v29ylrb62kih56hn63dfzb7f20qb8xv8z"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.5"; sha256 = "1pxw3wxak4x2pm2mqsz9fipzx98d3blma8y0cz03nqqcmxfq2lnr"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.5"; sha256 = "1m60wsv54czd55qw770mcnv8m7lnn5s99dya38is7szvgjgq0zx1"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.5"; sha256 = "1xdpipcybj54phsm1xn8ycfrwd6xaa8d67jxdakfiyzdwgbdqnam"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.5"; sha256 = "17xj4qrmmb6yxd3w0xi5x9la1ywrzczbmyx975p0z97yx5js719d"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.5"; sha256 = "01wq0zf646c87yz1zgf1vzvwd5kxjv8dfd0vvqq2w6af8670vxwa"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.5"; sha256 = "1s85bhrhyq7sjks0frj4mkh8g1pd0j0bifd0wj3qnlagrbxmq33b"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.5"; sha256 = "1qcnnshmqj6i6xf34pfi6ampvgcissclfs547yxjzgjizxgkkhy4"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.5"; sha256 = "1ar9jssv4njgk6gy3nh81d0p81as8ff5vmgzranshyr6djrmshna"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.5"; sha256 = "0d0yl060my0f9z3qbkzbks9jhw3zsms5issfa94rnkpgw9is40fh"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.5"; sha256 = "11v1bk0wsdx87rdk32cx63118bqmrvl054ai6h231yqw75q680sv"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.5"; sha256 = "0j4g9n88vdss1qzslr11pf49jxdv6pkbchdmsnis4nypp4nc4vk9"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.5"; sha256 = "1gmgj6h9nhzdcmn4mq2vfv8a69ncwcaix0vyyk8rrzzcrypvizpy"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.5"; sha256 = "04ihcgls7w20g8v3s47fyxc6cxx554mcmmfynkwp0206l6mfka78"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.5"; sha256 = "1lr79q6bpmggmm1kpgr195662r47mnl4infva84w51daw6hkdkq2"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.5"; sha256 = "0rz6d960kxc4c1nc31w46l76lkpzmrh74qf0l4qy1cmsdylkbsby"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.5"; sha256 = "1cczas7zmdc8wal2n9axgz5kb5ccmh4i94k94jfma3p0c7s69msy"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.5"; sha256 = "1p9hi32ibv12dyiwgysj60as2g53an0dqidgxl93pazmmg1v25fd"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.5"; sha256 = "1l4cbxlw33grx3pyf08079c8f2cmwnvdxkqpnw0072sb50s8yqk3"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.5"; sha256 = "1bzw2w73glg96mnf9cjjdk1bwz4z5rf8pgn1rmnpb3ldlawhz4g1"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.5"; sha256 = "02jz8kvs30d9vnxnv20dc3w8q9vhzff6n6r1qcyym3zfalmc4maz"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.5"; sha256 = "1hwfn3yy9iprikfvc0wz99fvb000w5nya2hmkix2fx3nydxd1gl3"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.5"; sha256 = "18havx9c3m2py0zzccxh1jmj8wb2hq28vqixib0kcicgvdl3rwis"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.5"; sha256 = "1lvp94im006cgi17mj26c9yhhzz6js0lxmdpqas9vh7qxlikj7nx"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.5"; sha256 = "12bc6r867izzb6s092wwj1cfmi09qmyy7q6l1d8r48jq3p14v0np"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.5"; sha256 = "1x6xwq8n9y0n2sj5rfh4pqzhkz62qxaa2g6y4s089f4bcg721l3d"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.5"; sha256 = "06a37cr1pg1nmzw07nbxsvfs3q8wn5p4xiglzg1b4fdpcwr0xpl6"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "8.0.5"; sha256 = "1wlrapi8928jd9yfck7kfjdzgrzkylw8d7k4faaxrkbxpzn687br"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHost"; version = "8.0.5"; sha256 = "1q4wbircp3dcbhgc7vdxm2m81ywpw3ls44jv6i3j7hkvh83v7kms"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.5"; sha256 = "1rrrfig168zv5hznv19b1pb8k5r6j9smfxg4jn4vcr8qmy0vnfi1"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.5"; sha256 = "118558hm53ix8fr7lib2h4vgp6vmf1gmaxph75220c3v966wbbz6"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm"; version = "8.0.5"; sha256 = "1sjyap9avwq1p5gk2iw11zmqlh3bh1ch02phvmqp0s9pawwa6mvs"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "8.0.5"; sha256 = "1s2n57qjggyznf23gf9gk7dzsr8nr8ypsv3gyacn8fvy42fvq9v2"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm"; version = "8.0.5"; sha256 = "04g6vriblgzhaf960pfjbxhql9xdqkwx778pklim0kck4prn39f6"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "8.0.5"; sha256 = "18fxpdzlb9kqq754hs67aabklq7k13b1gxyjmbi7mldcn7yjw0wg"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "8.0.5"; sha256 = "0mjwyl4ywakvzqgiy5gm0rld8fwxw7gp81qa1cn8ns2yn7ll2zhl"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm"; version = "8.0.5"; sha256 = "0805yfy47fz5348ydi54546g43qr7fp4wpb2xzry5nfh0sn0693s"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm64"; version = "8.0.5"; sha256 = "0rwjw6ahinci3bajky0m421cg7a0h6rjdnx389cd3wan3ij5l8bk"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64"; version = "8.0.5"; sha256 = "08j0xrfp7b2vj9hxrjf8zdp0agj2jvwyr5xii9wbkhnq4cwikjgn"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-x64"; version = "8.0.5"; sha256 = "0vag2bgllay20fmyvvjbckjircry690sr2fykf010kzb4zmywiaz"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"; version = "8.0.5"; sha256 = "1pf1m7miy6r430z5fbja0p38ixr4pj9jbh7mzqj6fqm4vqxbfiqg"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-x64"; version = "8.0.5"; sha256 = "186q4jy948hy128271rhsjy1z8isc45snvss37pnz5r0wq68vy3b"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x64"; version = "8.0.5"; sha256 = "0njzarmfay3jhqmjr1qmhgsldsff0rhb5lnl6zp0c337i85yd7xh"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x86"; version = "8.0.5"; sha256 = "0fwpmdw5d89mkmzfq16659mlswjp9fnd0cqdyfy5frgb3mi3g10a"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost"; version = "8.0.5"; sha256 = "0j68y9gp3ci4982imhdri513in9sldicx8xn6kvg3czqanc34n9j"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost"; version = "8.0.5"; sha256 = "1frixdwdpxjzkzlwrfkxrx6qnf4vpb7flhl7r1z2wi8m2x8xyami"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.5"; sha256 = "1wmf8b422s3l6rld07zr5qyg43wp6cd3xnz80j45zmny6sl1ksd9"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.5"; sha256 = "1yp69lwz1yj89258sq0pznr037ihng9444d06893vajyn86x2ys3"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.5"; sha256 = "1r1bzbisjxqkl310yfqjrsivjg55l61rlw60xm77nr4iww4av6l9"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.5"; sha256 = "0gc6kmqvqmgzf22fgsimfybdj7yp889nc50jnlskm20hp6mia4wi"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.5"; sha256 = "0ymnh483ds18699mvcg0k2j1an8xrknsb4zb3nxj97246wgdh9hp"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.5"; sha256 = "1r3cn282p3qv4fzsq5cwd5lkjjrv5dfqp54ffgh6yi9j9s2h0j99"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm"; version = "8.0.5"; sha256 = "1xkzzn8vg4h4nf63nbzvd5pk19y5cg3k0ljzkblva4knppaxx6k5"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm64"; version = "8.0.5"; sha256 = "00dbmjlcfckpgbl4f44p8vfr5aqabx21jllsqkqcy1qnp8a504h0"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-x64"; version = "8.0.5"; sha256 = "1syiaqw9dmqm5n5fvwhaycip1d7mj14dcivjwbhyf5nyd67zy8bp"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm"; version = "8.0.5"; sha256 = "0jpf2axjfv8nwd4yiib25agfx2y1mmksxz8laf6akac33gf6swgh"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm64"; version = "8.0.5"; sha256 = "02mpnyyklhwyysjz8rhk42cnl5v1gb64la8zm95nldrsgv1viw70"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-x64"; version = "8.0.5"; sha256 = "1ky9whq5k3a1x0amailp1kd5926lx3kpir2ji68wj80w7c4kpr72"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-x64"; version = "8.0.5"; sha256 = "1jaw4mgzsf7jjkqlzkxjbpj3jszpg86fgjjvkc2vyk91p15dsgll"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-arm64"; version = "8.0.5"; sha256 = "1jw06my5ds295lap3q35pg4hqcqmrx2bjqjaxgxhm6vyaif756nx"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.DotNet.ILCompiler"; version = "8.0.5"; sha256 = "1iq19frhagk99a9wjgb10059mh0k5wp28inwy7diivj4lpi7wr24"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.DotNet.ILCompiler"; version = "8.0.5"; sha256 = "1qrmwr0vvl49slnjf5r63lyyl7zlli98lbn0g44n6ra8drbhdyp6"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.5"; sha256 = "17i0cgs6w8vlr7fnypj4c6188rpc3sgkr80ly453nb2qrmkyhzh4"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.5"; sha256 = "1x80i4rbkdanana8hhbhkw47410bpryinry2axxwaw6yyk5gyr3g"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.5"; sha256 = "1psh3vxfp37xx6bdhgj7l7d9r6p0kkxwfi98i89l1s407nj6cwvc"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.DotNet.ILCompiler"; version = "8.0.5"; sha256 = "0msnc3iqrlslipar5zbjhz7v4f27lc7rkyy1fv18rqv787a87bbx"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.5"; sha256 = "1q6vx9d2z57idkickjfxf9jf90x9x7jmxz7lrhyxcrprnf7sscgw"; })
-      (fetchNuGet { pname = "Microsoft.NET.ILLink.Tasks"; version = "8.0.5"; sha256 = "06siqqihzhmxbkryrw3x3xvmv5fr6gw5qdyb6y8z3l9bzd5qdf7r"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "8.0.6"; sha256 = "1wgxqrnwhxrss67qm72zwgvf0wzskfpq6jmsj7qrl5z035v6wqsk"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "8.0.6"; sha256 = "16m3qvial8wm0p56wf1135fl1v71fv4lmxqgfp79nrs0p5hrvyy2"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "8.0.6"; sha256 = "0qaq8wv1xhr3wm03qiagwyrks18xg81m23q3fw2i1wq61pb3r7b5"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "8.0.6"; sha256 = "1834b3cxmjpxw9q9b6i7a3rkjy1rmcxv3kvnwzbyszn9k41bfcd0"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "8.0.6"; sha256 = "1cx96knhh3nkjd0qasw8z89c9f9y7agazdf8ba61r8ir3k9nmh9q"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "8.0.6"; sha256 = "1a7l158y6g2dmrviiisf8qzmnmv5zn5r2cdmrdfwmcsqg9n3dcxx"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "8.0.6"; sha256 = "1m71clfwd7gcgpqblp2q8f4m3a72a90jfv6iif7j3v2wjhmg6ckc"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "8.0.6"; sha256 = "16ln87byqnf7bd8jp5p8lr9blzcwpnrxgsznpv3j4kf7a48q3cip"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "8.0.6"; sha256 = "10dk5lwimgbj436asx89wnghlr2x0lm09yc9c642f6dy58g2fgyl"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "8.0.6"; sha256 = "18y39dkflh9xyga94nhm1xvz9jpz06nd1189k92mp410zv940561"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm"; version = "8.0.6"; sha256 = "10h4v3a847h0chxs6q88133x8kbx3g74s8zvb5p0p0akkmljyx69"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "8.0.6"; sha256 = "11d6by5vd18vri4cfwfx1yv62dh8bh5q8s63ngrmx84f7vdis30n"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "8.0.6"; sha256 = "07ghgyk9j3bhjw5ik8dv57r4yvri3652yzshvbvh6rh6l0b10ylv"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "8.0.6"; sha256 = "0i13a09hrglpfzh130q7cdys49s27k1kafhqkd7d524irnid6hpf"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "8.0.6"; sha256 = "1p3h4mhcx1f6m667771blxm13dprrxq3kgpwmxpmiv2qkgqgy63g"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "8.0.6"; sha256 = "0asaa081vq2m7zcawld8r2zhf1i1ch4sj0qj5c4w2d2wynrc3yl8"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "8.0.6"; sha256 = "1npwnm05kz368fyx2fli6k74zxlmbkmnpzs0bavcjdqw91m72rn6"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "8.0.6"; sha256 = "1qhn6d2nax5pak9nw0ly09lkjgx26ir06a9kbqsrd5al2if7vxmm"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "8.0.6"; sha256 = "1102pac84v6740nwnh7w40lkdjq1qq0v1f1d93zbml52w1k31hcf"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "8.0.6"; sha256 = "098x9l0adam6nfqjs8lisdjv3zlmic9jvf0qf7b7j0cazpsck437"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "8.0.6"; sha256 = "169drx723b5hgy4jav2pj25hfxjj3vzs0aj86ck7wwiwkzjnn714"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "8.0.6"; sha256 = "1slpg1gjhmwr1a2yvbxn1qqjpsrzww6552fbqq6gvghdkbjfis0l"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "8.0.6"; sha256 = "06d6jn7fn61iynhqbykdpy37mdi0l46cidlz2s2gn6vlwpz0h150"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "8.0.6"; sha256 = "14zjhrb208zxa0xc2k9lm7s9507rvap9fhwsdrdkf6nd3gvdfmyz"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "8.0.6"; sha256 = "1dh3nynradl8gnilx02zv4qgqjq81cmszrqx3kamki05dbga4v6q"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "8.0.6"; sha256 = "0ngsjx4pxwig87y9n9z538y9kh5kwkff3x7f2kkmi5h19kwdkwk8"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "8.0.6"; sha256 = "0qgcmxhyhbxyrs74l7700psxpfyj17q4mbsrvd7112h8yyvxvspn"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "8.0.6"; sha256 = "0q3nyjdh4n5kgsxqkq6sj5kngra40lhq4ms3p097m0aj2225zvfh"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "8.0.6"; sha256 = "10ihdkap0l8dvixp9qwc54n9397smfnivqhcv56vgzva1ys4fp4z"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "8.0.6"; sha256 = "01r85dmhca8k8791l0p8frw94bnaxm5x3imcmpb9nyflw5cqvalc"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "8.0.6"; sha256 = "0izgwc1qv5dfimxnl7aq13qbviyf462cw7igbgzzn1jqrc8j77fx"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHost"; version = "8.0.6"; sha256 = "1dv5xf8bmh4q14s8vnjpz8xvv76f1hxpl2w485v37a6znd7jcbjn"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.6"; sha256 = "0isvgn41x6x9wdnf8phn84b3w5ir9r6drpawrrbbx099gwzzay4a"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostResolver"; version = "8.0.6"; sha256 = "18gi6vrqamlcv6js0bggjj0gf7q9qzj9hfgps480b5qj7a4lsw6z"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.6"; sha256 = "16swhnl9zyf0bijhwy6gixp4brf7nc0avlhh0rh3q3zknfa32mls"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.6"; sha256 = "07p4s12pkyb7w60g2h18155lida80xwycbyp2c98ak8zrk58j9hi"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.6"; sha256 = "09yz8isiaka54h5pgp7d2llzl11262xwmv02q20bla1rmax8d0qj"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.6"; sha256 = "17q5gzg4r9ljflahnp8rip66bm34sbj33hm0a32m3hlkpjjs302h"; })
+      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "8.0.6"; sha256 = "1kynfwp6aqxiazqy970r8dbpwdl88s1acfwinj8wq6dj125brhyc"; })
+      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHost"; version = "8.0.6"; sha256 = "1xhi7nakjskr3cnsdg5cx0b6ijmmzj4kaawcqwbph06gfbf9s07m"; })
+      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.6"; sha256 = "1sfn8mrfy5w6piirgqrla99v70g6csxc7sibj52r9iyw9x1hwm1z"; })
+      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.6"; sha256 = "122h4b1ndpphcap2xigv4l28a4wyhpv4kj9q4zjsliz4dc6bfmnx"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.6"; sha256 = "1825wj7ijw7r9552lq1wppcaqhp1ncigaw8wn1yg82invmshflf8"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.6"; sha256 = "1gc39h7lna08dgrp1gxrzh6m4wqlyp12vbsyh7mzlpbiqdi9bbvp"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.6"; sha256 = "02gc74yx87riml3aadsm9yv7y6ylamicc0mpd5wg91b9vzsj236j"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.6"; sha256 = "0vgh3fpgagkbv0ff6r4fczhg2lq44zshf6sja96ja8wafsjby17s"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.6"; sha256 = "012fl9873nb71v2fgfzg7d35zac7hn13qfqm7201sl0fqs42iyn9"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.6"; sha256 = "0ajr9bwa9jlcf2rwpd7h06q457jhfm01hlzsp6yz3ix8ilbghlv5"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.6"; sha256 = "19zqzlq1fbri10xis3q8h2l8fcjmgllsxyp84yz93kwxh82yakl1"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.6"; sha256 = "1yg9zrji6dqhi9nv89bznbqm7rr167axx5s1rnc1p6g8snpy67yz"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.6"; sha256 = "0hn0kyry6hhrilj957qaa7nxb34ix3hsj8293vlnqrsdfcn3r3v2"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.6"; sha256 = "0jlpz6xpidhj42rnirl5mn8agxxy6nlym0a79nqblznc6nfsk3mp"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.6"; sha256 = "1z6n3gfmmpb291r4ns84lz9l7gcjyfbbqwidc7cfidlf0g87j6kn"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.6"; sha256 = "1s4wpsywinfp59nbpc66l8h4f6r3w2abjdfz0pbw4inqqxdf16qr"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.6"; sha256 = "1vd3la5sl9az2kh5g3i4f3sh6gjwqnq9lijj9d2rzq6wlbg0ygi8"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.6"; sha256 = "0hrwgjz94swf1zdsplbdddzj5afnchzsrd8wf5h25x6blq0sk8hj"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.6"; sha256 = "1yh21ypyzjlzz1r9b1f987pqnhsy1hlb1zw1v4q4zf52v7ja03kn"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.6"; sha256 = "0k2g7vi1d2d4wddyccxhzbj1zrj50819227lggmd8hmfz50qdm4h"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.6"; sha256 = "1yk87srq1i7n7wihzadsb6yqgi74aybk4n0n8vbgqfgfk19aipif"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.6"; sha256 = "1j5b7kb0lj0nqp632plpv4hz9blfwvslx82l4nk58lfk9n37dlsk"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.6"; sha256 = "0qlk7cdkplc30isb4ljk26x7pnbiad6lfnjj4h4m9l5lz1pfl1fs"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.6"; sha256 = "072bm84fw6q8q1a2dvwn6m176l4vj8kjkzwjgd78ihg34gdiz125"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.6"; sha256 = "131gcwp0nisfil3cf9is09cc9dbrv6kisk2llzfyq7m1wcy3ixqz"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHost"; version = "8.0.6"; sha256 = "0vwfl048xgv2fwhym10b2hg8lmviamaxs7qkf96pn8s67b2h39ks"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.6"; sha256 = "0flfn8zkq1ds72wf66f0sqahm6ab4ajc28dcanrpadyc1vxyqm34"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.6"; sha256 = "02xsrxwag62fnmg490l920c6nnyjvxxashjikf58ysfmvlsxvpbw"; })
+      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "8.0.6"; sha256 = "0mvgb6fjia8ajds872g5ycwb8885d0fhgx9wjp3r9rcxb1cgkl44"; })
+      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHost"; version = "8.0.6"; sha256 = "1mwiis128nmljsim4phf1ms9r9ww9wg950fr3k0y89j9abdfbdmd"; })
+      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.6"; sha256 = "0kmvd79gf3gax266f8gh41px181anh6mpdj6ys2634f55syfyvb4"; })
+      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.6"; sha256 = "0gg64xa48wg9vz4r896grd0xqdv4l8kcqlv0pccfaslmlja6f9dc"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm"; version = "8.0.6"; sha256 = "009ych2a5swg9cbbzhyy23rjisa5hcm683hwd4f9sjg9j6yxdyzw"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "8.0.6"; sha256 = "1gnky9ippjpdbrksbvff13xyjxyzw8k2bapqiw3mnivy4a4h4zcf"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm"; version = "8.0.6"; sha256 = "0miwpwm3y97jz7345c6fknhgrwr8gacrgs5bbb638vfp6vw2jb7h"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "8.0.6"; sha256 = "1j9hfqiz5gqsz91q5snywzrql6bvxczj9yk4jmnp47kp9n9fwi2m"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "8.0.6"; sha256 = "11lg910fgdnh79lmpc0v501a3ykvk99c015w3nsf87pb2hsfgmi8"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm"; version = "8.0.6"; sha256 = "0w885xnxlyvrlyvddvlzry3jscy16dg6mxk585fzw046yww60318"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm64"; version = "8.0.6"; sha256 = "0sz8pl62mfjr65jca4j15277a48ly943l0agwpg87l61pybxlqny"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64"; version = "8.0.6"; sha256 = "0mi44y7nz4n3h70v6v0x4ldfg3ma9wp7yys6l5rm551dbsmfrpbz"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-x64"; version = "8.0.6"; sha256 = "14hhibn8swy9d0n1jz7sbdc8z0qahn40m10ras18yl2cy717bdvw"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"; version = "8.0.6"; sha256 = "1gapc36yd1a9q12av0hz9jqjlilmqp07zbwpzjdh7pvsp5vygf0x"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-x64"; version = "8.0.6"; sha256 = "0vbhpg42sgjppqskz065z5h6bz4rn5xizffg7znw95vbxwclqmn1"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x64"; version = "8.0.6"; sha256 = "14h3qfwp27zzi6l1rh98z47yja5l7aa8pvc0cx6fcvqrlrpz5c5g"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x86"; version = "8.0.6"; sha256 = "01ss9lni310cjb5d8ifrq5arq83mhvxa6dnisk7rgh0y3qc635nl"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost"; version = "8.0.6"; sha256 = "0rcvc38vmr58mwyc0fqbdlgh3iaq41y9djlswniplc4m3m0llq4v"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost"; version = "8.0.6"; sha256 = "1lmngy0101diwbb84f80q71qg10whm38mqfaa8n63qa42q7niski"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.6"; sha256 = "0s2ihbzjvq53npkjp40mzknm1q6s5bv4wpznqa8y2s29f1am8p8s"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.6"; sha256 = "0l7ysphsimif6l19z1awvqmpkm6a16d4ymxn08qhqf9yl8ywr341"; })
+      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost"; version = "8.0.6"; sha256 = "1qir2zm02wf133ak5pw8fs7gzmixz1hh867zczclf6l2swnxhb6q"; })
+      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHost"; version = "8.0.6"; sha256 = "1gci3c46m16yf045w4vsgi8fjvsmqblzkjj2fd4d03h789spqyf6"; })
+      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy"; version = "8.0.6"; sha256 = "0kjqc9x3vna55prp0gc29ndzysdrvzm8lq7fk907xhs1655xly0d"; })
+      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver"; version = "8.0.6"; sha256 = "0gqbcgakcimdmdhyif036r00wk1mfbqir5k513nzv4vi2gbxiypj"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm"; version = "8.0.6"; sha256 = "1b5155pcj5j3y7irdjn8ba7rhcfm9vd8cwmybdn470r89frq7qf4"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm64"; version = "8.0.6"; sha256 = "1hwrgwil7na9my78wgphx9hjd4qjj5ayr1hx73bglf058mi9kgsb"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-x64"; version = "8.0.6"; sha256 = "0f9z837gbyi4179xgrrfmvhach8iq4inknihfwpvrz5jlmg48f3k"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm"; version = "8.0.6"; sha256 = "1jzr4zj9wa68rn8zcb6wk4sy8fiih8sibsdvy89029x9f3qgchjr"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm64"; version = "8.0.6"; sha256 = "0aigvzg1ppjpr4mgg56hmkfrqg89zn3vyrpwz8cfysjbqz356xx9"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-x64"; version = "8.0.6"; sha256 = "1628i25saxmny4k8zzhh6nkz0njlvmi05f1m2sx976flqd3kxr78"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-x64"; version = "8.0.6"; sha256 = "0fz0a4hm8lf56r5hff4vcz6pfmwfqygddm6cyxj04x63wqd16sl8"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-arm64"; version = "8.0.6"; sha256 = "1bg9d8fcwr7808vbakkgrzry4wf0l7r28xn9hsnh14awsqprngid"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.DotNet.ILCompiler"; version = "8.0.6"; sha256 = "0l3pibk6q4hhinf2ki42vcc6kvvi5x4icm8bpcnm9iss6kafchry"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.DotNet.ILCompiler"; version = "8.0.6"; sha256 = "19wwim19f1aqscvya85chbycj30ns5cxr2ga5jfrkxbyni9q557m"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.6"; sha256 = "1bggciasdgh7yr9vjkfq8fjxzg8lbcj4cd16slcr8kkpqy1lj79s"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.6"; sha256 = "1zz8d3dq0n58qnxb4y1njbgls5nfaaqibgxq4k3s5wnclxp8fmys"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.6"; sha256 = "0l6rsnf39m6fp4p8bs0rl98k36bj4yg2q49hgg89yf7q3r5xka91"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.DotNet.ILCompiler"; version = "8.0.6"; sha256 = "0cqm5183as2m3nsl9as00qm9928bani6gflndg0fv73r799k5raz"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.DotNet.ILCompiler"; version = "8.0.6"; sha256 = "0yjji845ngsaqxyg2cmngj3vba8v4wyriv0qz4hgn1wbrramml6b"; })
+      (fetchNuGet { pname = "Microsoft.NET.ILLink.Tasks"; version = "8.0.6"; sha256 = "0slfrm65izibsxg505vr8m4k6n2a2kl4iqyyr9xkgr8541g7rrs5"; })
   ];
 in rec {
-  release_8_0 = "8.0.5";
+  release_8_0 = "8.0.6";
 
   aspnetcore_8_0 = buildAspNetCore {
-    version = "8.0.5";
+    version = "8.0.6";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/ccccfeb7-0af4-4713-b4f1-cf49b5c8bd6c/5b04c0188dfcf78b70da78ae3bd7f3ab/aspnetcore-runtime-8.0.5-linux-x64.tar.gz";
-        sha512  = "ffe6a534ed7dffe031e7d687b153f09a743792fad6ddcdf70fcbdbe4564462d5db71a8c9eb52036b817192386ef6a8fc574d995e0cdf572226302e797a6581c4";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/ce31d92b-b514-4f9c-843b-29c466871369/b332eba5641cbc6eed1e3a98480972d2/aspnetcore-runtime-8.0.6-linux-x64.tar.gz";
+        sha512  = "16cd54c431d80710a06037f8ea593e04764a80cbaad75e1db4225fbe3e7fce4c4d279f40757b9811e1c092436d2a1ca3be64c74cb190ebf78418a9865992ad12";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/208a57a8-fcc0-4801-a337-79095304d2af/d1ffa79af24735af4bd748229778c1a9/aspnetcore-runtime-8.0.5-linux-arm64.tar.gz";
-        sha512  = "54ad859a3307a4ccce6aa794df20dab3fc38cb4a8fc9f1c2cb41636d6d19fed1e82f88a0099bdc9f30e08c919ae5653da828ae54b0299291dafcc755575f02db";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/ccdcbb70-a5e9-4753-b6e3-4461ce56a69d/240803fc1ffba38ab3603778c03e9b87/aspnetcore-runtime-8.0.6-linux-arm64.tar.gz";
+        sha512  = "9ed12847e404a0a4fdd8fca33a9a787c5ac2e6745d23821c7890f731f2f8f5682e7f9166b2764b13b612b08e091c71e13359b68acc11bcf990afdef1d42f6473";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/77cd03cb-5575-48c9-8714-6498ee88694b/8bfba2913a4db23e3dffdff779fb7866/aspnetcore-runtime-8.0.5-osx-x64.tar.gz";
-        sha512  = "d214a8b6a60547acb1a7f879e7a82348585b699f714b73b168918ebc60ee580ca5ff973f64e7738063f79dd04f0807bef0d73e90ce42c3b4464b87b768ccd789";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/ccd03400-c514-4956-9e9d-ad1bd67d1338/436b9590788dd3df98e73d4c5379c711/aspnetcore-runtime-8.0.6-osx-x64.tar.gz";
+        sha512  = "61786ecd784b83eacfe4dd901bdd55474e52d9da85806b3d52184e8e35a3065b476e574c939f3af491a925bf7f04fdf376c53a25c103a187a7939f4736158297";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/c264657c-7a93-4ba5-b6e0-91bf41341e1e/90fb45ed7d2f92c374899b1c7a5254b2/aspnetcore-runtime-8.0.5-osx-arm64.tar.gz";
-        sha512  = "b1a47d2ae3b528f5c32b57e3a03b46d12a14126b9768f9dd5dd979d49dc6543c6aafe55684eae3890ffe6b867aa664805b920ae1514f67cc841b882d5da7c091";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/b90758d2-834d-4fe7-b97f-e8294b68d07c/71d63df9474999f831811dd6989d9ba7/aspnetcore-runtime-8.0.6-osx-arm64.tar.gz";
+        sha512  = "85d82e90182375ca21326e3d57be0dc5a39d7e64f1a4005950fe21c720f1d1e1615f64030c950fa7a49f6a104f029b9845648cebeb98d48d892aad3309c583c8";
       };
     };
   };
 
   runtime_8_0 = buildNetRuntime {
-    version = "8.0.5";
+    version = "8.0.6";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/baeb5da3-4b77-465b-8816-b29f0bc3e1a9/b04b17a2aae79e5f5635a3ceffbd4645/dotnet-runtime-8.0.5-linux-x64.tar.gz";
-        sha512  = "3efff49feb2e11cb5ec08dcee4e1e8ad92a4d2516b721a98b55ef2ada231cad0c91fd20b71ab5e340047fc837bd02d143449dd32f4f95288f6f659fa6c790eaa";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/021c3de8-14d5-493f-92dc-2c8f8be76961/6ee3407acebf74631bfc01f14301afa6/dotnet-runtime-8.0.6-linux-x64.tar.gz";
+        sha512  = "c0c5e93d4e68e2075c4c63336dc74246efb704ac9663411351efdefc4cc7da5a7750f44b8a23aebe959bb4308575bead443a41b2524ae03b29ac41929d27e0e0";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/00ca4d7a-e529-4384-8ad4-acb8237d540f/a7df4c26e3c0e1dcf8e17d2abb79aad5/dotnet-runtime-8.0.5-linux-arm64.tar.gz";
-        sha512  = "cd6c0ac051c3a8b6f3452a5a93600e664e30b9ba14c33948fbbfc21482fe55a8b16268035dd0725c85189d18c83860ea7a7bc96c87d6a4ee6a6083130c5586c3";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/0039e2c5-d78d-45fb-94c0-e258ff0335fe/c3bff45767f679bbab149398e9ee2c6b/dotnet-runtime-8.0.6-linux-arm64.tar.gz";
+        sha512  = "428c5a81938273c5e63b04858dbf2f4e82c9bcfa3bd33f954081238be2fb52aadce99296698eabac72e4be55c61e6c1ff06d2d8d1fd5d6a2d0c7a2917cd50739";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/0dabe69f-fa99-4b53-96d1-9f9791bb0b6b/f72acbfd3b0e60528d9494b43bcf21ca/dotnet-runtime-8.0.5-osx-x64.tar.gz";
-        sha512  = "29a8be6dd738d634cc33857dc1f1f6cc2c263177d78eb1c4585c96b5bf568f8f2689f1a30eec728ccb96a2d005049936abbfd44daca1962caf4f6d53325ba42f";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/20271d05-67e0-4356-87a9-0ce5102b5007/b7c91c6470e1c2ffbb493a35dd6883c0/dotnet-runtime-8.0.6-osx-x64.tar.gz";
+        sha512  = "44c0ad9fc613975fa0c12b12b91ff8cd8ba0be5e8ed59510e7a5ab22e55267a468b321ce34515daf070ffc8d557c09d7ea3ed3c3407887f706553b5d378e3232";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/fac90ccb-5864-4d4a-a116-67387aaee61e/df82eea80efffad3c9ec8b0522847e68/dotnet-runtime-8.0.5-osx-arm64.tar.gz";
-        sha512  = "5401135b8871d85ca6f774958e6a644ef2bf85a88d2358f15c3bdc928b21a700be428efede677d83640085461d000e55a28bfbacdc9f01af0334a6e8b257efbd";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/6f090da0-5f55-44f1-ac17-9bd001b33d66/eae314b23ab350b375e794e136a2ca9e/dotnet-runtime-8.0.6-osx-arm64.tar.gz";
+        sha512  = "21ae6420914e45be9fe17bfb0c89948eead27756dedb13fc2c6b9b08d78aee80daa2b8cda358268c819f00ba7ca33ed75e21bed387045b3a62160fea159eaa3c";
       };
     };
   };
 
   sdk_8_0_3xx = buildNetSdk {
-    version = "8.0.300";
+    version = "8.0.301";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/4a252cd9-d7b7-41bf-a7f0-b2b10b45c068/1aff08f401d0e3980ac29ccba44efb29/dotnet-sdk-8.0.300-linux-x64.tar.gz";
-        sha512  = "6ba966801ad3869275469b0f7ee7af0b88b659d018a37b241962335bd95ef6e55cb6741ab77d96a93c68174d30d0c270b48b3cda21b493270b0d6038ee3fe79e";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/86497c4f-3dc8-4ee7-9f6a-9e0464059427/293d074c28bbfd9410f4db8e021fa290/dotnet-sdk-8.0.301-linux-x64.tar.gz";
+        sha512  = "6e2e1ad5fe3f00e6974ad3eac9c5b74cd09521f19e06eb9aff45a44d6c55e4a2c1cd489364735215d2ea53cec2a7d45892a5ede344a8421be9ad15872c3496a2";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/54e5bb2e-bdd6-496d-8aba-4ed14658ee91/34fd7327eadad7611bded51dcda44c35/dotnet-sdk-8.0.300-linux-arm64.tar.gz";
-        sha512  = "b38d34afe6d92f63a0e5b6fc37c88fbb5a1c73fba7d8df41d25432b64b2fbc31017198a02209b3d4343d384bc352834b9ee68306307a3f0fe486591dd2f70efd";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/cd9decc0-f3ef-46d6-b7d1-348b757781ad/9ad92a8f4b805feb3d017731e78eca15/dotnet-sdk-8.0.301-linux-arm64.tar.gz";
+        sha512  = "cb904a625d5e4ef4db995225d6705b84201dc7d7d09a0b1669baccc86e05419472719025036dd78983b21850f7663d159ae41926364d1d3ca0eab62862f75d29";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/e05a3055-c987-4127-a315-51d6b982fd67/fbda30d8e461b2c5098f3c405378b559/dotnet-sdk-8.0.300-osx-x64.tar.gz";
-        sha512  = "12ed6044dad31c65d6894d7e1cf861a6c330c23761fed90ca2fe0c7d2700433fb8b8541c35bb235b044762f5fd33496cd6e92dbd70deeeb7b9e59423d9d49f5e";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/6ef47a54-b1c6-4000-8df4-486f64464c2b/ae87b597b19312fa9f73b9f2f8c687bd/dotnet-sdk-8.0.301-osx-x64.tar.gz";
+        sha512  = "5d91fbc584f32f4d48dee303c7eb16b38b2e2fab9549bd54293bac28508a6d53f93782ff102266010f8cd8c15c6436a807a7e6efede2e1051fe206957ba73071";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/4d7af168-9a20-40a3-8744-b2f1c10c0227/3d6d8d16545d6c05125c51ef8142296f/dotnet-sdk-8.0.300-osx-arm64.tar.gz";
-        sha512  = "98a9b56b2795bf6faa848062ed34d917b187eda220db50c8e73de1bfa37244dd68d8c3cbc598b5fc5be4620a2b92724f95d7c13299f8b873fdefe880890a1bbb";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/c503e53c-0567-4604-b7a8-1d6e7a1357f5/53e78f56b01147a092c0cc273b443550/dotnet-sdk-8.0.301-osx-arm64.tar.gz";
+        sha512  = "8d56980b6a6ffd78618a6e9833126d7e67052ca6041bd5f167a32e277aac7094a5cd37b9e7e145d5c9b74da95561535189a077d074ddb0fe710a76c2a2c9b1eb";
       };
     };
     inherit packages;
   };
 
   sdk_8_0_2xx = buildNetSdk {
-    version = "8.0.205";
+    version = "8.0.206";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/7cdbcd68-c4e8-4212-b4a2-f30ae2ffdb19/48a359550fd7eab1f03ea18eb2689eb3/dotnet-sdk-8.0.205-linux-x64.tar.gz";
-        sha512  = "2ec774350ca3192e1c68c9c8ee62d0c089f9bd03fe1aaebb118fbe7625f2e0960f5dbd800ea3f974cc7ac7fba32830f41faec9ee1bae736497ba05d9c7addb59";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/5fd599e9-4bf8-4603-8a14-87777293837d/1d5f0729055901dce471570bb82a441f/dotnet-sdk-8.0.206-linux-x64.tar.gz";
+        sha512  = "d03cbb5ea44a6f4957d7c1fa0f7c19e3df2efcbf569b071082e37ac86776af0729540c3bbddc44668ae2eedcfcb4b098883bb560d26418f1583a558d60c99ef5";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/96b5cb76-37e3-4514-a8c5-bb4834e275d3/b541205fa6efc3bd223b3201dcb7735c/dotnet-sdk-8.0.205-linux-arm64.tar.gz";
-        sha512  = "092ce55cc45ab5109c9d991382e7ed7f40bc0281e94766738dbf179d618f03dbf8ba38e43c418a3d5cac0377afc5e5b82a969e36832e386b851f3679a2e988e3";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/f25f9e53-deba-4c1c-b9d2-5e026e5a4d92/c291c78eb71c30b1c66745dec87936ce/dotnet-sdk-8.0.206-linux-arm64.tar.gz";
+        sha512  = "eb0489785dc5bf824bc3fc1014815ebd371fbc73eb02b63e5a1650bcadb158cab7e909904889f6e198a180a1742976351208a57796ef38a4205c52fb945b7d09";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/0dcb3b2f-6bbe-4dc0-a42a-283826d8b9ce/16767a67d602bd267122a26f4c4c2935/dotnet-sdk-8.0.205-osx-x64.tar.gz";
-        sha512  = "15f410ae81027f4537a03a00114873fe9bacf799d5ddc24663fefc3b1d977d237269fef48c80334bcaf7230495f304bb123f310692f880fea8cb8e0072abb4a3";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/ea0371ce-1119-416c-bab1-578cb8c1fa77/71cb9d66778c8e2a65ca40d8456300ef/dotnet-sdk-8.0.206-osx-x64.tar.gz";
+        sha512  = "d7742a0b00c4df835639eeb18f2ae4888ac33d7d7c25d097a8868c5172c878d7df8c5bbd54de9b34f877f07a2dc6c748ea510f783e1842058e8cfd0ad2cda83f";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/c8126855-4f38-4d01-8e22-b7f93452a9d7/725dda9ebd1ae3486febf496217ba0b9/dotnet-sdk-8.0.205-osx-arm64.tar.gz";
-        sha512  = "2792e9b0cd4fd69373022c5e4c17bd128dd8e31db773f51b39c8696f37e72af8c4b67d0c017ee068587c0f664efa8bbd9a0bc4472b072a7897d2ff4ef8fafa58";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/bca24333-c463-4f90-8085-f856962fac39/ef02fb556ff3d92938a2c11e408c7d71/dotnet-sdk-8.0.206-osx-arm64.tar.gz";
+        sha512  = "c4a17c17b02d9559e0029328179d22617321e439e9360175f25385d60789f91582a4024ce41690439d85852e4c85f0d0ae20fe818c0f4acf0d7d48ffac2d2b5c";
       };
     };
     inherit packages;
   };
 
   sdk_8_0_1xx = buildNetSdk {
-    version = "8.0.105";
+    version = "8.0.106";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/e898e5ae-041a-4e64-95c7-751479f40df5/9e36a84d3e1283e1932d7f82f6980cd8/dotnet-sdk-8.0.105-linux-x64.tar.gz";
-        sha512  = "60ff271ee7851ff9ab851f9dc3e3d0abc87ac9b982959abfc8f0a3b58301fb6a0ff7b9f07f8df18668e1e8182c688d0d661bb9cb1771a2d40a0015d02009fce8";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/0fe59d31-bc28-4f57-8d1a-285f47b5a0ec/e4c5def191daf9f999efc5812b085924/dotnet-sdk-8.0.106-linux-x64.tar.gz";
+        sha512  = "06eecc146b16eef0654fb4fd17faec06c6dc1b7236acc7e4a33e4b13cbea1d725faeb9eda41a0c12e65ec4c89d6624971429ca223638387c66f1d3e4dcd1407b";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/ffadc6b9-6f16-4671-866d-4c150f2888d1/256d5909ff60dae42cbd251347cc14df/dotnet-sdk-8.0.105-linux-arm64.tar.gz";
-        sha512  = "8f04afa385676d2ec879ad22734a4c869d931ba4bc7507d0aa5889561d0230e382598057bdf75792048b28bd9a1c8eb187e80691f603309a46d6c50d71373381";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/34676827-2699-4f0d-81e3-347939a91b7e/6f2f3851e005f57f8b6c132ead1952e5/dotnet-sdk-8.0.106-linux-arm64.tar.gz";
+        sha512  = "e8f735d20d79b20d24ce5b2f7c25c60604cb6b694b6572488c654cbf14a4d99c269f64f4ca23ab78aefaedf14f35a0ae1f33adf6afac5556e2ebd22ec73e04eb";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/54b48c6e-1a50-4dd5-9592-8ae5dfbe9d2f/913341d866eaf3149a6158cabf9ce2ad/dotnet-sdk-8.0.105-osx-x64.tar.gz";
-        sha512  = "052fd0783bd0901876a29b57a0f15e9f9cf859373bf4f3867a8f3e00b4edac5f3814b066be81c76d6bc74a20bd696e4ec65db48dc19703bbb4ee56d60aedd96d";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/8380cce5-930a-43ff-8a27-981e175d9881/4ddeae425c3c344f4afd8adddb03af5b/dotnet-sdk-8.0.106-osx-x64.tar.gz";
+        sha512  = "4e6d45b7b1618bdb528a865d1c89e7ec7750f8a73ae7e805675dd9d7d3974f0b19785e743298f0c468144cd7fe9e20e521f65e9fc081b89d8bd9e187b5783c2c";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/8d741dd4-ab83-4bd8-8667-998cc1c6d345/c7ac6cf87561262db36b18e505150e89/dotnet-sdk-8.0.105-osx-arm64.tar.gz";
-        sha512  = "f910adb274065fef581728e7d043bc3f0c105a939f659865753c11a0dd0b550bdc4c0bc01e2ce6f710efcdebb3966ef138986113f595af4d6a9be8b15008abc6";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/d595db17-776d-4b09-aefe-44777823a4de/55867e85ac1b03cd5609a936055c8ee1/dotnet-sdk-8.0.106-osx-arm64.tar.gz";
+        sha512  = "490c20abc3cf52f76fecf422a6fcc66c98b7500a56986f84e617860a2758f43ddc4b235647837fae69e4c46a9d1ab9177d4bbfe134258797599b69178f6b91f8";
       };
     };
     inherit packages;
diff --git a/pkgs/development/compilers/dotnet/versions/9.0.nix b/pkgs/development/compilers/dotnet/versions/9.0.nix
index 1295f9b35c017..2cf73e2a4a7a1 100644
--- a/pkgs/development/compilers/dotnet/versions/9.0.nix
+++ b/pkgs/development/compilers/dotnet/versions/9.0.nix
@@ -4,144 +4,143 @@
 
 let
   packages = { fetchNuGet }: [
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "9.0.0-preview.2.24128.4"; sha256 = "0sxv7581axjyc9d8q2ij0rizbf24d7lrfqphnihxbf2gnphbixqa"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "9.0.0-preview.2.24128.4"; sha256 = "03zyr7dn151hlzgjkks4vixh5air3h4d2ml188521p3sv5kkhr63"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "9.0.0-preview.2.24128.4"; sha256 = "054qw93b9gw6fm9iaiki8msjglpw5nhchh96v42hfpggdk84ki1x"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "9.0.0-preview.2.24128.4"; sha256 = "11f8hmw1rxqcf3qsan6mjd7vrq442hsh90fpmx1gkfflibj8psjz"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "9.0.0-preview.2.24128.4"; sha256 = "1bpa4l0n3ahyk5s62ns35pr13idjnvbmahnpvjg2ay2n8fhr4wrh"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "9.0.0-preview.2.24128.4"; sha256 = "1z6gwynwfndhkv3gkqqaxbahx48ajx5ir2dfm8rfxg7hrc3x8sdx"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "9.0.0-preview.2.24128.4"; sha256 = "0vs4n68qlmqgizbn2i4h1wascx416slw0dmdib3dzxcivzfrv51j"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "9.0.0-preview.2.24128.4"; sha256 = "0cjhbli0p8b0nxvrp75dzk4pm112pwqy9cl1ajgr6ra6g3n9jypf"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "9.0.0-preview.2.24128.4"; sha256 = "0152n8y2gx8jcws6hrqfb91bsd3bfrk89hvls7rw8mazg5hac3yd"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "9.0.0-preview.2.24128.4"; sha256 = "1m7ynhxz62msv3fzaxpnb1lq5369wn8bwfbk70bxr32fz5smnar0"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm"; version = "9.0.0-preview.2.24128.4"; sha256 = "11dg6qs92lc9n1n3h6jmi8iz62na9l3xhk8h7x0k92pcwax8dcwb"; })
-      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "9.0.0-preview.2.24128.4"; sha256 = "1rq42nly7hq6bng7x39sh6zgklfsk44mhzxf91nb0nna5rvqy2v5"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "9.0.0-preview.2.24128.5"; sha256 = "0plcb424mj45pwd3lwsshrqqsmfcxfhzv9gwcsx4vmhk4p0lgynd"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "9.0.0-preview.2.24128.5"; sha256 = "1h3hq06csy8nn1ms39gi4gpz1vs4rci09w602pal9cdn3qr946yl"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "9.0.0-preview.2.24128.5"; sha256 = "1a1h62xisa7jy0ac0mj5kyqnhs4mrhnr2mnj56i3savyhj0n53gb"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "9.0.0-preview.2.24128.5"; sha256 = "0bz3ckck2ixyk8brjl5si6d161ml4kdzm4qk85ghvglc6ac192hx"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "9.0.0-preview.2.24128.5"; sha256 = "06jfjb853z5jxwxw107xbii7xlj9ardhh4k59bnck79vplh7abqd"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "9.0.0-preview.2.24128.5"; sha256 = "0521d38bwh94lzv3fkj6yir8v4zx1riiaiwk860303ljp79iyxdp"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "9.0.0-preview.2.24128.5"; sha256 = "1wjybjhalhdbxndyalgy3alkr8ra8yj88g7h7ysjlsfxp4gx3xha"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "9.0.0-preview.2.24128.5"; sha256 = "0xgfbi9r6hnmqh18z2smfp04693fy3l66y30v7337jlvamxmz0hi"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "9.0.0-preview.2.24128.5"; sha256 = "0mjgb3vnkx845lrx7w99q62c5s12n924pi5fh37c52jn1mvaj1za"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "9.0.0-preview.2.24128.5"; sha256 = "1adjb3wp3zxjj3vgyf7xk34sqv3zxavss9v2d1zr4hdvrbwsv2hp"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "9.0.0-preview.2.24128.5"; sha256 = "1w00m6hnalndscssc6prsm4dhbn43fclm20h39icll2z4p2jyly2"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "9.0.0-preview.2.24128.5"; sha256 = "16087b037vlrra853ls9iardxl1g14zm57q3flrylmd8wdhm7caj"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "9.0.0-preview.2.24128.5"; sha256 = "0p5kq3ccrc5v5cfj7fvqliyh9k0vrgxmw11mcmlv0s2m1ziikvgf"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "9.0.0-preview.2.24128.5"; sha256 = "0f9g2vj3vb9q3ryqywn76604ah276whpkn93r876sxqkvgsdbnvq"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "9.0.0-preview.2.24128.5"; sha256 = "0jdq6s36y9733sqsq9ppr08642sv3dgmjg2c36wf0ag1v3vlz2ab"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "9.0.0-preview.2.24128.5"; sha256 = "0lc5d6jkcz31znv9bi0li4xy1j3kji48xww8v2df3dsjgq62bbjj"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "9.0.0-preview.2.24128.5"; sha256 = "11h38px2i2hw0g1y5annpffn0xlq26m29xm5mvnjdjsz05khnwhb"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "9.0.0-preview.2.24128.5"; sha256 = "0a7jr03d66jzzzyajs552i1qn0jgzq1rlzpqch30k51ssnrbljpg"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.2.24128.5"; sha256 = "1a4han0cbhwj63ja5lnkjbaa012769j69hir21nc4k706hyf09pk"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.2.24128.5"; sha256 = "09s4mdzbgmrm5v3a4d9zdw918cwpsg9r84ywla1na6dh6i0400w5"; })
-      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.2.24128.5"; sha256 = "0c46wbnn1jh6k05khjysmmn0x69p0nh6b17lszvbr2p6v7nbfa78"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.2.24128.5"; sha256 = "1izlvyk9xl0s888byw2c1n4jpvd6hh1yqx53z5mh0zi9jmc430mi"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.2.24128.5"; sha256 = "1sr07f4zyyllmkzkqs0lqa4b01ig4bcpxghhn37nys7ab2f15619"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.2.24128.5"; sha256 = "1l12jxmlvy116a9dzfqn28ain7c4nwk3fawiw54qiaikc1dbz8zc"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.2.24128.5"; sha256 = "0bcr4zbl1kpnbk34m2i221rb6bl1jiyylak0hvs790bldj47c6lk"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.2.24128.5"; sha256 = "089dll9w3mgf9xx22gk5z2wgw01ydwvw5snn3ij2jwrjakz611hc"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.2.24128.5"; sha256 = "09adk3i17biq3sjzx4amnxjvp6viwch3p6nklb3ybknsncn9ix5v"; })
-      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.2.24128.5"; sha256 = "1jfi2wzl5lrij3h4v0ix38vs3g57wg2nmv8c7iwmf2k4i8nf523y"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm"; version = "9.0.0-preview.2.24128.5"; sha256 = "1030gjhrwqwc01sqdi88ynz1phh4ccpjqfnbs0i3kwjb3sg3iy3k"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "9.0.0-preview.2.24128.5"; sha256 = "12136vhid3aj3gn40vfrilcypr9n9izhx110q65c57m0kgg41k13"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm"; version = "9.0.0-preview.2.24128.5"; sha256 = "0nnsfxbrf8m6zn0s021c6dvq4kif1b2cv2l6rlw4986y92g6147p"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "9.0.0-preview.2.24128.5"; sha256 = "1fhfsjp1caxnn73is92zrrmpinyr5hkzd7mcp1dnrsqllx6v1w52"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "9.0.0-preview.2.24128.5"; sha256 = "0syi6dlgmvpnfcgkvnwyf1i7gnn1k71nd6rc6fc9b0jwi4ys5y3n"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm"; version = "9.0.0-preview.2.24128.5"; sha256 = "08ran7vyfn2f4hhj1hc1hfdw1c2k6whbjyvkj8p78f66zqkh11ic"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm64"; version = "9.0.0-preview.2.24128.5"; sha256 = "02pk28mghl4jqzyv10ab92iidg581lnpsj49pfw818w324dk2hpp"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64"; version = "9.0.0-preview.2.24128.5"; sha256 = "01yagr5c4d3347a3ljbsjz27420igvzf856275nj7yn6psini72p"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-x64"; version = "9.0.0-preview.2.24128.5"; sha256 = "1wa54f15xp32277h85hxamxdyj62yldi7vpmldsqds3n7r2wg3q2"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"; version = "9.0.0-preview.2.24128.5"; sha256 = "1a138w5bh1d5ilq4ynpxcawfj6n1dl1jqa5z1a7p7fgry2362pp7"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-x64"; version = "9.0.0-preview.2.24128.5"; sha256 = "0nwkqpn1qsk45nqxc4ih3bi4ik13a0hck0jbkc5jrl9301839l15"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x64"; version = "9.0.0-preview.2.24128.5"; sha256 = "1a1iw32fmhapsr0r7mm6iz69clwvnhqg6q4jqbdlp12id2v9r3l6"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x86"; version = "9.0.0-preview.2.24128.5"; sha256 = "06j1scfv8vb3b9n3jpa0nsx6rxk413xsjr7fpxgsiraqfi9cl4ch"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.2.24128.5"; sha256 = "15v4idsw83bfypqv17r8a8vwvpsf3fa30gvja9zzbj4v639s2n28"; })
-      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.2.24128.5"; sha256 = "1nqjazr7dwsahy6qix5fa1bby8qhcxqwpvpp7aj3slpgp88ag795"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm"; version = "9.0.0-preview.2.24128.5"; sha256 = "0i2plc6nr1fsx0wa6ff2fda3xig6aaxcnb7v9l1w1da2qw767f23"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm64"; version = "9.0.0-preview.2.24128.5"; sha256 = "1h2sd4pcsh1p1fim0jydl8i70pj54lxywwqdz31b3x7x7r05hjgw"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-x64"; version = "9.0.0-preview.2.24128.5"; sha256 = "1f30y1hwcprm1j549v00kq9w5a3jxls7z6pryyjx379axaspd805"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm"; version = "9.0.0-preview.2.24128.5"; sha256 = "1b09s5v153wxv0mqr5nvhym5dvavc7jilmflzs6wh7jjn1gq06q8"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm64"; version = "9.0.0-preview.2.24128.5"; sha256 = "1z0s40i0nnxxwhgh85aacfh6qd1sygwz1z94hppnmaamdhqmf6wg"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-x64"; version = "9.0.0-preview.2.24128.5"; sha256 = "13w3kpyilk1n2vy6lnm5h44zskblfnrhdnbjx4f13hwzc1127a2b"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-x64"; version = "9.0.0-preview.2.24128.5"; sha256 = "0r79zrqxvvkg1f4vb8yqaa22fb7ix93fkkwsmqpj8f43z71aizjh"; })
-      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-arm64"; version = "9.0.0-preview.2.24128.5"; sha256 = "1l3k9sgiqjvxaagvbfza9q136p36kixl434xg9qhzr8rl6m2g2ih"; })
-      (fetchNuGet { pname = "Microsoft.DotNet.ILCompiler"; version = "9.0.0-preview.2.24128.5"; sha256 = "1dq6mir5n319a7pjzgvhxlm90py4wslx6y4n68x1g8ifd97cxnhy"; })
-      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.DotNet.ILCompiler"; version = "9.0.0-preview.2.24128.5"; sha256 = "07y3hhf3h4p59wyv25wmb58wzayhrqp4wawb777k8x6r448c5xaz"; })
-      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.DotNet.ILCompiler"; version = "9.0.0-preview.2.24128.5"; sha256 = "1kyigz0zzlbl22cr31na8lzf7595zvysnck44xlay1if99crkndg"; })
-      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.DotNet.ILCompiler"; version = "9.0.0-preview.2.24128.5"; sha256 = "0rr2ka6ivsx54p9c2k4gp4aligkw605j2z1wkviq0aa7mrn2vjiw"; })
-      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.DotNet.ILCompiler"; version = "9.0.0-preview.2.24128.5"; sha256 = "1cmjncpcyiyn3mpzlhh5iya2b8pjl37mpssr8wbvhlzi86f6sh1n"; })
-      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.DotNet.ILCompiler"; version = "9.0.0-preview.2.24128.5"; sha256 = "11nl8nqkhx012nw1wgjss05sdxkz4j5k5frzbpj19n46pxh3mx9v"; })
-      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.DotNet.ILCompiler"; version = "9.0.0-preview.2.24128.5"; sha256 = "0lcrwv09qp47vli4xa6nsjvgglbz9add3pqa6282pl5b221q83rc"; })
-      (fetchNuGet { pname = "runtime.win-x64.Microsoft.DotNet.ILCompiler"; version = "9.0.0-preview.2.24128.5"; sha256 = "1i83fpfx50z1yadrfg40m91r2qmji6v1vyipaqp6863646z2fa4z"; })
-      (fetchNuGet { pname = "Microsoft.NET.ILLink.Tasks"; version = "9.0.0-preview.2.24128.5"; sha256 = "11n78chcg40lj7cjadsmaynczbviqmw1kp1araixnrkmy2xpdzqd"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "9.0.0-preview.5.24306.11"; sha256 = "12mq2k54nijycjmgb9c299bcad7iwgc5prff3cv4ilc8zf0db058"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "9.0.0-preview.5.24306.11"; sha256 = "0z0nby81zf1gzvwkm9hk6xxhbxgjxbcqbfw1k6f6dkhq4r52b19m"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "9.0.0-preview.5.24306.11"; sha256 = "0aa2i7kdq2czz8j4r3qf3qkq7kzi07ga19bm5kj35das4v66srn4"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "9.0.0-preview.5.24306.11"; sha256 = "1inc6v7kk43yy68gwa0vg04j9jr71rbzdpi486xvv4zf29d3nnyc"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "9.0.0-preview.5.24306.11"; sha256 = "0a4bmfdl3paqb8sh3w5pbahsfifdvdx48m52vsi4qjpbaz37jqqm"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "9.0.0-preview.5.24306.11"; sha256 = "0man1h54lwqid1rpaxr7v811alm1cn6hdyamw5h9sy5k43d6q4jc"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "9.0.0-preview.5.24306.11"; sha256 = "1kn4ghd0rcik6zncqj7a8yx4hldc8ms5dz40zcyz8zpnjr0jalgy"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "9.0.0-preview.5.24306.11"; sha256 = "1vvm6fjnb4b07a6s78qrpc0h2xgzkc5n7xd0n8pl8vf221i36cjz"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "9.0.0-preview.5.24306.11"; sha256 = "1ixzkjrrp63dzgx4bpdphcxmwb4bkvpghn2xblsq55lnqgsqrk1c"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "9.0.0-preview.5.24306.11"; sha256 = "12ly0aq7w3ysaz1lgafsj8b3xz60h1sx80112h016cm9x8qaj60s"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm"; version = "9.0.0-preview.5.24306.11"; sha256 = "1jar76bi0apskqva4xvb21mpkm2spar8zg6dijsb1sfckhvprwg5"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "9.0.0-preview.5.24306.11"; sha256 = "16igqkvzbmiz18y2pxbxjdbn55505i38ci4dlxk2gc90q9ly9hmp"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "9.0.0-preview.5.24306.7"; sha256 = "0yjhaflyvwla7bfc5r0f241lpdgs8f07idgw17c27py3jak4z7nc"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "9.0.0-preview.5.24306.7"; sha256 = "0xqpixi7klisihnnx0nxadxskryh1fk7p998sib3yvp9r02jnqvn"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "9.0.0-preview.5.24306.7"; sha256 = "0wjdwmqkphrz421mvqmv30nkpji6zkyv53n0n58s7cg1xhrysgn5"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "9.0.0-preview.5.24306.7"; sha256 = "17xmgdysdsf9x1b5bbyk92fb0m49q2qxqsabdn0dj7apbnappflv"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "9.0.0-preview.5.24306.7"; sha256 = "05l7iccmn56hfjfdzw6g2xyhwqn86pmfi0bhxs8zkvfmcxff01km"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "9.0.0-preview.5.24306.7"; sha256 = "0f8ifac136v8lrqg6p49c6v1fbzs7066d2x1gf70wxr5572s53zz"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "9.0.0-preview.5.24306.7"; sha256 = "1i02qz80mk278wyj19m6s05xzzyz11q2yrbanark541b5nvp7f74"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "9.0.0-preview.5.24306.7"; sha256 = "02bk2wwlm262v6mz3k2dx1pj02sdmdmmic79bbkjksfpw1pbg4rm"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "9.0.0-preview.5.24306.7"; sha256 = "03f18kc1kdm6aglcwc60757prmcb8csw5gvl594kgpgmsh819vdf"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "9.0.0-preview.5.24306.7"; sha256 = "04yw10x9lkma4jkhaylwi8scxpifvhyq47mv316m49fas2r7xl96"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "9.0.0-preview.5.24306.7"; sha256 = "01jwa6idxn9jv5vp7am34gzf984jvd72cyns1w367p0v3c6yragl"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "9.0.0-preview.5.24306.7"; sha256 = "19bgk42zkrb6q0nss1c4fxs5ii7pwjb85zrzsscgsvy3hjqqwzrk"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "9.0.0-preview.5.24306.7"; sha256 = "10xdihmr8nd1jyqwrfsrym8285ngg5z2apbawy92s14bwjy51cj9"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "9.0.0-preview.5.24306.7"; sha256 = "10bxll4zphrd2bvyp38z55rcl1fbdd64s53bv7hsjkcfsv26c4wc"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "9.0.0-preview.5.24306.7"; sha256 = "0a530mpk29cl8iz1k6rwhgrspa5ssjkqnky5ivbx5hz9iq541bq4"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "9.0.0-preview.5.24306.7"; sha256 = "1l2ak1kiq2515x16wdijk2rrjrzxc9jkbwd0ip7j3fqkm0wj62b2"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "9.0.0-preview.5.24306.7"; sha256 = "065lhbwjmzf8gcqll5f2lbvgkiiqfjliypvgi4sab0r0m3gjchdb"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "9.0.0-preview.5.24306.7"; sha256 = "02yli22m04wyr418na5mjs2ln6zawva8i8ixcij5bynqdfw2rakv"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.5.24306.7"; sha256 = "1ix5nw7z8ymnxk1vj101namd4r18bqx6dkzv0zrqj4dx2zpadhd4"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.5.24306.7"; sha256 = "1janx1brnv64cfjvjmdk4zinqbkmmx525l04fmy7pi6c3hq93fr5"; })
+      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.5.24306.7"; sha256 = "1m8cml0zk772i5a5yy909sb5089h7afphmcn95hm03i6f52kmmf3"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.5.24306.7"; sha256 = "0n04zf1xhdqm0nia3ja3kjz0aq2kasghqw6gamfpd68ln9yimi9q"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.5.24306.7"; sha256 = "0h29s18r4n09l8f2znpd2s9p12f8s2winnqqgn80nynsja5zb34q"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.5.24306.7"; sha256 = "05cf012c37q9vlq7fd2n76gps9dg20lk88dama26jlbpczj7gv81"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.5.24306.7"; sha256 = "0lgfnh0w31afi7ijsbjc305yxp7klxhz61pxcf27pxh7y9vcrvnn"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.5.24306.7"; sha256 = "1h12scdq455rb1ffy339a1fmjkgpp7hp4bjhr2fb7lp8kmsppwxl"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.5.24306.7"; sha256 = "1z1csk8z1yh4w697ghzk73vm4ry2a0d2sy4b5sk34r0bpxw5lbhh"; })
+      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.5.24306.7"; sha256 = "13p6vi44agpzjq0qghjc4xydy1xy2985v4b0dl5v9j3pgrd1s8qk"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm"; version = "9.0.0-preview.5.24306.7"; sha256 = "0dakyl9dl1609jpwc5h6rkbl5s1s2fcfn3isf69z8m5n36vlz2xl"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "9.0.0-preview.5.24306.7"; sha256 = "0nc6xh9xcqg64xf14f95mwxqki4ing5hpwwyd30d1j0ndbdf4xyc"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm"; version = "9.0.0-preview.5.24306.7"; sha256 = "1rjqx0mdf4jd5g613mxmjzjjyzl7gj6wnixhz8x6k21fwmsrn496"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "9.0.0-preview.5.24306.7"; sha256 = "059s063nfxn98cgym7zfn18icd2f7bky1n1b3pbz2d8bc2y6b6qd"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "9.0.0-preview.5.24306.7"; sha256 = "1584xdik4q3bdgsnshmwxsy7sx9zjh112m1nvrc8sjm3vy4hpl5c"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm"; version = "9.0.0-preview.5.24306.7"; sha256 = "0l5n8k8zzw3wjgp0mf85jv470cmvp5cs4m7azf4x2x8p4q5j3pzf"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm64"; version = "9.0.0-preview.5.24306.7"; sha256 = "0mryfw8svnmzxnvwkd2vs9f1mxdyami5dlcnibvjgylj0ggi8l53"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64"; version = "9.0.0-preview.5.24306.7"; sha256 = "04zy5396cm98h5gf9rdar7mx6c96fx3lh3k6vm86bcs6y4pvmib8"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-x64"; version = "9.0.0-preview.5.24306.7"; sha256 = "00np825qdxnqq6vwazs66afdyvz668lyhsyl1hsflwg312h26kfx"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"; version = "9.0.0-preview.5.24306.7"; sha256 = "1b8m4r2xzlsrja4w12np2wi71bwh38crvjy80md1gc5g67qkh0nc"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-x64"; version = "9.0.0-preview.5.24306.7"; sha256 = "1j5qpqy7fsg7m637i5p0mfaar6jrfcnwl8kz4virby6an3kgn2fs"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x64"; version = "9.0.0-preview.5.24306.7"; sha256 = "1n9m33v04hbbvg7cac5s31sc6733amsafg8kv39b1v5bmfid6m7w"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x86"; version = "9.0.0-preview.5.24306.7"; sha256 = "0lz2z4gx54zy8sffwbys1ls1qh03xjgzxzkmsngjdhpzbipyslng"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.5.24306.7"; sha256 = "0faq6h29s4l9lgjkhp82wygxjhjmqpigpc2rzhkw519vkc9a38jp"; })
+      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.5.24306.7"; sha256 = "19al895aca67a681zm4ppznpdrf4mcs3qqkpwngmcv13jx9mydzf"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm"; version = "9.0.0-preview.5.24306.7"; sha256 = "1ds8w00nxq9i06xklh9klv47q79c0b9blzafkvbay9gclxib310k"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm64"; version = "9.0.0-preview.5.24306.7"; sha256 = "19xabxhnb22g6pj8c7bx2zv9ys6qca561fmxq2ac8jl8bdwjzw20"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-x64"; version = "9.0.0-preview.5.24306.7"; sha256 = "0g57liiiavqg3s1j4ra0ppd21ldfwihahqd69mai5h37yr7wggn2"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm"; version = "9.0.0-preview.5.24306.7"; sha256 = "15vv4bhdvki49y4zhqpvz1vr8d1iznrbbxk5hypq13k6aypsb3nr"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm64"; version = "9.0.0-preview.5.24306.7"; sha256 = "0q5ircv3lrcrjdvkv50gknaix55l9z24rr8x8cb54zcq3fjfn2li"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-x64"; version = "9.0.0-preview.5.24306.7"; sha256 = "0hxf3xk6yn8n04fwj9j7c6a70y9apf31aafn2nhd3yykvvf7618d"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-x64"; version = "9.0.0-preview.5.24306.7"; sha256 = "1pw27c0czrrgp0vqnlcz6zhyrhbjbqh14wbcknrcn1smlm6fl77x"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-arm64"; version = "9.0.0-preview.5.24306.7"; sha256 = "14k0sd0b6rpngw8s1gz833kq89qghnhszgvk9v2rabncb1qlhanv"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.DotNet.ILCompiler"; version = "9.0.0-preview.5.24306.7"; sha256 = "0c2spsh6m236cmpf6c2hafcrr4w2ks433g024cmpa93a3s6dfvcp"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.DotNet.ILCompiler"; version = "9.0.0-preview.5.24306.7"; sha256 = "0wla1jr95b7hm6wa2yx080wgy8iaqr7r3q83jp3qdnp3k2y0rgpk"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.DotNet.ILCompiler"; version = "9.0.0-preview.5.24306.7"; sha256 = "00mkrwlx48dis7fg73gxj1c99zs1na4k6y11q1908a674hni8qlx"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.DotNet.ILCompiler"; version = "9.0.0-preview.5.24306.7"; sha256 = "02aqy5fjy8r8n1acvmixmlwif5jg6fhaygnk5ishlmw18yvhzp7m"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.DotNet.ILCompiler"; version = "9.0.0-preview.5.24306.7"; sha256 = "1qbjvdmlg3hj1p9v8nzgcpp5cr7nakn14nksighqc8ck4nf9i68g"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.DotNet.ILCompiler"; version = "9.0.0-preview.5.24306.7"; sha256 = "1s8m140xbwc2pmyhrrmgfd4r2lppld26m6x3k1kz9gfn7kk4ayjx"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.DotNet.ILCompiler"; version = "9.0.0-preview.5.24306.7"; sha256 = "1f9hn43fs25fbzzhrawfjgz56mknsnmhmdgf1f1pqlpfzwb2bvvn"; })
+      (fetchNuGet { pname = "Microsoft.NET.ILLink.Tasks"; version = "9.0.0-preview.5.24306.7"; sha256 = "0ck2agia8lmhvwvzh73yh2ydkqfz4g21404cv4qxjj28l618cjl5"; })
   ];
 in rec {
-  release_9_0 = "9.0.0-preview.2";
+  release_9_0 = "9.0.0-preview.5";
 
   aspnetcore_9_0 = buildAspNetCore {
-    version = "9.0.0-preview.2.24128.4";
+    version = "9.0.0-preview.5.24306.11";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/e3e81a61-4493-433a-ac40-ce2bceb3370d/ce1c59a7054d200dd24a7e4987666b8c/aspnetcore-runtime-9.0.0-preview.2.24128.4-linux-x64.tar.gz";
-        sha512  = "9d836edc539ace64ef8fa883bdfc881d89f4cf30d048640246dae9d54e46e79f2e82ebcdf366c1b69017d86d1bf1496acef5d56c3133297ea0bddb2df2eb4523";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/f43de71b-3bf6-49ae-99ec-66499bfa6990/438e1533bbb47d3d7e1f58983677a4f6/aspnetcore-runtime-9.0.0-preview.5.24306.11-linux-x64.tar.gz";
+        sha512  = "b4358041bfc42bf614644e7f3c38a4fb73185a8d3541065bfd6758622860b0d0addff6a7ab6e7439d029b0b54238864279d19f1b5096b5d7c0fd10c0435e652e";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/cb8d7d43-e403-44b3-9ee8-477a947f3e6b/3e38a543b6b9144e0fed12cf18eae7f9/aspnetcore-runtime-9.0.0-preview.2.24128.4-linux-arm64.tar.gz";
-        sha512  = "6f7a5575d02197f1908c56d580f0a9049f393ae68a4ad4b73935e981d9c6766e028463d2828d3ba0aeb4049237516fee2e116196e790948fefd65436ea804f35";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/e8849fb4-309b-4008-b697-4b5af127cc8e/285762b4db9cfb18abad4e005b37f2cb/aspnetcore-runtime-9.0.0-preview.5.24306.11-linux-arm64.tar.gz";
+        sha512  = "6e6198d26b16ebae7bf7f7a428b0026d3c7edb20fa0acf844670a98cdb78a8b0d37cad5df22f35dc3379de8069fdc95318f5eeebcd5b03ad99cf595699116abb";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/dbbdbf43-8860-4aae-b1aa-57d44f976cc8/f4f6c6c4a740de95a332ed2c693d1d6f/aspnetcore-runtime-9.0.0-preview.2.24128.4-osx-x64.tar.gz";
-        sha512  = "c0c37a504f8c3113c90b8108f1f784fbb61387475e3eab37d303c49f627e06034ef6e917ee9c780e910cbf565c20050173f240f215fdead4fabb1f3795f3ac08";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/f07ad200-6654-4341-a594-9a1eb1ca66f9/929c2533f6fe9c402fcb5fee99ee1103/aspnetcore-runtime-9.0.0-preview.5.24306.11-osx-x64.tar.gz";
+        sha512  = "104b0b8f216bd36710ee912c92c89c4a5be97774eb21cf090c5c12acbe3ff8a8ec22a2b2bca56feda8aa21690c734d5a4b8293569cbf45172ead6b587d3858fd";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/9f27cd5d-334b-4dfe-8876-33186210815a/2752edc7662b603b734219e4fee20ba0/aspnetcore-runtime-9.0.0-preview.2.24128.4-osx-arm64.tar.gz";
-        sha512  = "81b5860e68e9e660a535568f96d8058ab6f98dd6b0a8305e3e3358ee721da610c08baf0b59a52d7e30184c39784ab18544f9328a55d8490d400d07be734059a4";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/b4c5eec1-4026-4e58-adfd-64dbf4426b1e/1f05059da0484ade0ba1ce6a3e8f6bd5/aspnetcore-runtime-9.0.0-preview.5.24306.11-osx-arm64.tar.gz";
+        sha512  = "f6ed6cc22e20e986cf54ddd0c8868b524efcf84ccbcd5335bdb4ac44fbb08641850448aed5d85bcfd2d403b3a89a73cb932d73db1b590cfc704a58aa8ec79d5f";
       };
     };
   };
 
   runtime_9_0 = buildNetRuntime {
-    version = "9.0.0-preview.2.24128.5";
+    version = "9.0.0-preview.5.24306.7";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/3d7900df-fefb-4aba-8dbc-e3d755111a85/c849ddf0290aeae485414ba46ad961c3/dotnet-runtime-9.0.0-preview.2.24128.5-linux-x64.tar.gz";
-        sha512  = "6433959a75103f2f1108bbc16cfe348f9ba04fec1c8f9b6895019241bfcb7b21fab675cc13971f2c1a66b46b044a95f91e1e2b46e6e8bdd893d277906f82545a";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/acc83ac1-a75a-453d-beb1-ab0eef7544b6/fc1c9260c812441c5c51370aa57ea1f9/dotnet-runtime-9.0.0-preview.5.24306.7-linux-x64.tar.gz";
+        sha512  = "6d5a313eb3213bca2ac209021218d978a7d8291041f4572780dfb48b5ccb7efe9ace509c75dad1db8e6a427c0bd5e4b2596c3e9f66eec5df4e717a66f8c3d7fa";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/ab7bbaf3-c61e-481d-8dbf-b0dc2bcc80f6/0467f280265fe3b33ddcd345b04cdfa1/dotnet-runtime-9.0.0-preview.2.24128.5-linux-arm64.tar.gz";
-        sha512  = "5ae4c5f4acf1465c8aba29a90aa3ee99ab47ffece9f932e9fb4de8937d05feace4c5d3b53d4b8bf226eb99de16a0aad0e71f091827651f0722261513c8a8a2e7";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/7ac3c308-bdeb-4fff-98b8-b22ff6c479aa/31e3d32e7732b17506d41cb6cd7a51b2/dotnet-runtime-9.0.0-preview.5.24306.7-linux-arm64.tar.gz";
+        sha512  = "8e49eb2e279684c665031e04c915d63c19e617bf44194655374c957bb13d7f22c8c0e233196711c029653958f98788732e1bbf200d22fad27f76523d7506a91e";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/8ccc8b00-80b0-48c4-9948-9adfa67f42e3/b93918f628eee154b3400fe05774d1be/dotnet-runtime-9.0.0-preview.2.24128.5-osx-x64.tar.gz";
-        sha512  = "9f83d1d7dbfb8c8df1c7530fed3ddbb1571e60100954051bf07b8ee758edc600d1d988819c91711cd8b4baa05dd97f9900d1edf2ae5035ac74930a920951f380";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/4a7db5f1-a6b4-4232-ba81-f848a8f6dde7/20b9502eb9b73e2f7ae047ae53cd1f21/dotnet-runtime-9.0.0-preview.5.24306.7-osx-x64.tar.gz";
+        sha512  = "617847ec35016e4c51359fb8585563a432b8a9ff2c6656d6c10f2e3db70c20dada36509a73b31622c91ccfd5246f51c1c0df79852035f65521ac3f78943f37ca";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/6401083b-8213-431e-94b3-bb1bba37d792/551aca92ab4da13513ead1e7865d57e2/dotnet-runtime-9.0.0-preview.2.24128.5-osx-arm64.tar.gz";
-        sha512  = "cc7b8626cdec48427ef79f14c0919a09a3500bdc1c2933c6b5cf80886cc590ab20ccbd07bdb3a6081e47b80f372db3b4887b5276a12252887b7360a7f23e9901";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/42df8bc2-3414-4253-99f0-50d52d4b0c36/a9b0b1664e2dcba0622b9dc6c6a8a8e8/dotnet-runtime-9.0.0-preview.5.24306.7-osx-arm64.tar.gz";
+        sha512  = "7c61293b719016dc8212e5564a80a3686a6947d220e2243438616559995c2d415629bf583148513d0691325ebdac91b6a13cbf4d37d7328426b73989edd8ef7c";
       };
     };
   };
 
   sdk_9_0_1xx = buildNetSdk {
-    version = "9.0.100-preview.2.24157.14";
+    version = "9.0.100-preview.5.24307.3";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/911f82cf-0f87-46c2-8d70-44fab9a0f3c9/137ec23686722b8119bd62def8d7b117/dotnet-sdk-9.0.100-preview.2.24157.14-linux-x64.tar.gz";
-        sha512  = "c44df5e11791e4b22720834ed7f28102e33ab475670fa8e132d73d5dd03d8f4ed3f4a548deac67a79e06db6f776c9f632eda4503b6fdc9eef7ffb001cc9963c0";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/96e19e8f-579e-4a1d-a18e-6773a44d7cd1/092cfc588686cc698c449998b7d5ae35/dotnet-sdk-9.0.100-preview.5.24307.3-linux-x64.tar.gz";
+        sha512  = "13b9934b3e7b736ab802a8c580aad95ed4dff6b8f31047c71ce9ffcf4d07e55105d4b0170d309551707b9d232d297cb305c67ed5b5f7026f47ec072ee1bbc121";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/b64ba1b3-ad10-40a2-b588-73db9ed9d99d/f772743c20f55a5a8aea3da2e1480676/dotnet-sdk-9.0.100-preview.2.24157.14-linux-arm64.tar.gz";
-        sha512  = "1d591e504352f765a35092394719451c024a628c69efb6a10d0a5d57947c466a004243e799b46147fdf6316a23b4335b1e8fb1fc5513def1dec9f96c6c845dc7";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/25f41d0d-d27c-4dc5-8884-6c49897d89d1/c51387b8bde1d278a0982b03c3e8c1b1/dotnet-sdk-9.0.100-preview.5.24307.3-linux-arm64.tar.gz";
+        sha512  = "3c6f7e6f2f56e86bc8a9633f50129cfa992c52c287dc89551b23cd62fa471199e90392eba7414659c8ff8eecf1dad04016615a98cf85f6c2045d61f6f14c9e73";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/5d2259a0-cb6e-4079-96fa-e0de6f0448c5/9b299e3cc15adf6153c28c24cba35fef/dotnet-sdk-9.0.100-preview.2.24157.14-osx-x64.tar.gz";
-        sha512  = "a5a02f596e3976e65650d6a780903a755d4d700491c670b4f3c2f167224da632b98ad03ab7a087dc18561c5cc3ae6a3be78d5c6ca2f7312c7d7c417d909a481a";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/a6731f1c-ffd0-4cca-a309-89576e55552c/3000f43ca4b3b51bb034bd7daa514841/dotnet-sdk-9.0.100-preview.5.24307.3-osx-x64.tar.gz";
+        sha512  = "ebb84f920a7bb663238a10007d784a7c90f66d073089371fc2c9d5556cba945918fd8b193e02eb3d889676952b79616398aa2555d7d46d080088f01f67ede43e";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/30628efc-01f0-468d-baf1-fc487e55093a/4c2bf86dbebb6c522d4d667516dc5930/dotnet-sdk-9.0.100-preview.2.24157.14-osx-arm64.tar.gz";
-        sha512  = "1c7166a594ba6c07d0233aac44428e561e2131f1f1812cdfee75807d19f1fe53f40f9d93e88d4a478c885993424ec2ec7b9aaf8f174332f587e6ff10813680ec";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/090175ff-fe42-4064-98fe-b6d90e08162d/bc72a57ada79f0ee7b71d74f5deb66a0/dotnet-sdk-9.0.100-preview.5.24307.3-osx-arm64.tar.gz";
+        sha512  = "8c1a13d14f2502d3897871f82abd2c2df8cb41ff9d754e79693b99d0780deb910dad7486e05ec065c4a38490de00d251c64b0b2a734863e0a452f0ed23b1e1a0";
       };
     };
     inherit packages;
diff --git a/pkgs/development/compilers/dotnet/vmr.nix b/pkgs/development/compilers/dotnet/vmr.nix
index 3638da1117e9b..32e10419d0b8b 100644
--- a/pkgs/development/compilers/dotnet/vmr.nix
+++ b/pkgs/development/compilers/dotnet/vmr.nix
@@ -2,7 +2,6 @@
 , stdenvNoCC
 , lib
 , fetchurl
-, fetchFromGitHub
 , dotnetCorePackages
 , jq
 , curl
@@ -225,7 +224,7 @@ in stdenv.mkDerivation rec {
       --inplace \
       -s //Project -t elem -n Import \
       -i \$prev -t attr -n Project -v "${./patch-npm-packages.proj}" \
-      src/aspnetcore/eng/SourceBuild.props
+      src/aspnetcore/eng/DotNetBuild.props
   ''
   + lib.optionalString (lib.versionAtLeast version "9") ''
     # https://github.com/dotnet/source-build/issues/3131#issuecomment-2030215805
@@ -234,8 +233,34 @@ in stdenv.mkDerivation rec {
       --replace-fail \
       "'\$(DotNetBuildSourceOnly)' == 'true'" \
       "'\$(DotNetBuildSourceOnly)' == 'true' and \$(PortableBuild) == 'false'"
+
+    # https://github.com/dotnet/source-build/issues/4325
+    xmlstarlet ed \
+      --inplace \
+      -r '//Target[@Name="UnpackTarballs"]/Move' -v Copy \
+      eng/init-source-only.proj
+
+    # AOT is currently broken in binary SDKs, and the resulting executable is
+    # unable to find ICU
+    xmlstarlet ed \
+      --inplace \
+      -s //Project -t elem -n PropertyGroup \
+      -s \$prev -t elem -n NativeAotSupported -v false \
+      src/runtime/src/coreclr/tools/aot/ILCompiler/ILCompiler.props
+
+    # error: _FORTIFY_SOURCE requires compiling with optimization (-O) [-Werror,-W#warnings]
+    substituteInPlace \
+      src/runtime/src/coreclr/ilasm/CMakeLists.txt \
+      --replace-fail 'set_source_files_properties( prebuilt/asmparse.cpp PROPERTIES COMPILE_FLAGS "-O0" )' ""
+
+    # https://github.com/dotnet/source-build/issues/4444
+    xmlstarlet ed \
+      --inplace \
+      -s '//Project/Target/MSBuild[@Targets="Restore"]' \
+      -t attr -n Properties -v "NUGET_PACKAGES='\$(CurrentRepoSourceBuildPackageCache)'" \
+      src/aspnetcore/eng/Tools.props
   ''
-  + lib.optionalString isLinux ''
+  + lib.optionalString isLinux (''
     substituteInPlace \
       src/runtime/src/native/libs/System.Security.Cryptography.Native/opensslshim.c \
       --replace-fail '"libssl.so"' '"${openssl.out}/lib/libssl.so"'
@@ -248,18 +273,20 @@ in stdenv.mkDerivation rec {
       src/runtime/src/native/libs/System.Globalization.Native/pal_icushim.c \
       --replace-fail '"libicui18n.so"' '"${icu}/lib/libicui18n.so"' \
       --replace-fail '"libicuuc.so"' '"${icu}/lib/libicuuc.so"'
-
-    # TODO: we should really make sure the first one (9.0) or the rest (8.0)
-    # works, but --replace-fail results in an empty file
+  ''
+  + lib.optionalString (lib.versionAtLeast version "9") ''
+    substituteInPlace \
+      src/runtime/src/native/libs/System.Globalization.Native/pal_icushim.c \
+      --replace-fail '#define VERSIONED_LIB_NAME_LEN 64' '#define VERSIONED_LIB_NAME_LEN 256'
+  ''
+  + lib.optionalString (lib.versionOlder version "9") ''
     substituteInPlace \
       src/runtime/src/native/libs/System.Globalization.Native/pal_icushim.c \
-      --replace-warn '#define VERSIONED_LIB_NAME_LEN 64' '#define VERSIONED_LIB_NAME_LEN 256' \
       --replace-warn 'libicuucName[64]' 'libicuucName[256]' \
       --replace-warn 'libicui18nName[64]' 'libicui18nName[256]'
-  ''
+  '')
   + lib.optionalString isDarwin (''
     substituteInPlace \
-      src/runtime/src/mono/CMakeLists.txt \
       src/runtime/src/native/libs/System.Globalization.Native/CMakeLists.txt \
       --replace-fail '/usr/lib/libicucore.dylib' '${darwin.ICU}/lib/libicucore.dylib'
 
@@ -285,6 +312,12 @@ in stdenv.mkDerivation rec {
     substituteInPlace \
       src/runtime/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.targets \
       --replace-fail ' -no_code_signature_warning' ""
+
+    # ld: library not found for -ld_classic
+    substituteInPlace \
+      src/runtime/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Unix.targets \
+      src/runtime/src/coreclr/tools/aot/ILCompiler/ILCompiler.csproj \
+      --replace-fail 'Include="-ld_classic"' ""
   ''
   + lib.optionalString (lib.versionOlder version "9") ''
     # [...]/build.proj(123,5): error : Did not find PDBs for the following SDK files:
@@ -295,14 +328,24 @@ in stdenv.mkDerivation rec {
     substituteInPlace \
       build.proj \
       --replace-fail 'FailOnMissingPDBs="true"' 'FailOnMissingPDBs="false"'
+
+    substituteInPlace \
+      src/runtime/src/mono/CMakeLists.txt \
+      --replace-fail '/usr/lib/libicucore.dylib' '${darwin.ICU}/lib/libicucore.dylib'
   '');
 
   prepFlags = [
     "--no-artifacts"
     "--no-prebuilts"
+    "--with-packages" dotnetSdk.artifacts
   ];
 
-  configurePhase = ''
+  configurePhase = let
+    prepScript =
+      if (lib.versionAtLeast version "9")
+      then "./prep-source-build.sh"
+      else "./prep.sh";
+  in ''
     runHook preConfigure
 
     # The build process tries to overwrite some things in the sdk (e.g.
@@ -310,7 +353,7 @@ in stdenv.mkDerivation rec {
     cp -Tr ${dotnetSdk} .dotnet
     chmod -R +w .dotnet
 
-    ./prep.sh $prepFlags
+    ${prepScript} $prepFlags
 
     runHook postConfigure
   '';
@@ -368,8 +411,10 @@ in stdenv.mkDerivation rec {
     mkdir "$out"
 
     pushd "artifacts/${assets}/Release"
-    for archive in *.tar.gz; do
-      target=$out/''${archive%.tar.gz}
+    find . -name \*.tar.gz | while read archive; do
+      target=$out/$(basename "$archive" .tar.gz)
+      # dotnet 9 currently has two copies of the sdk tarball
+      [[ ! -e "$target" ]] || continue
       mkdir "$target"
       tar -C "$target" -xzf "$PWD/$archive"
     done
diff --git a/pkgs/development/compilers/edk2/default.nix b/pkgs/development/compilers/edk2/default.nix
index 17151cf9f9477..cd15f29e370c9 100644
--- a/pkgs/development/compilers/edk2/default.nix
+++ b/pkgs/development/compilers/edk2/default.nix
@@ -41,6 +41,11 @@ edk2 = stdenv.mkDerivation rec {
       url = "https://src.fedoraproject.org/rpms/edk2/raw/08f2354cd280b4ce5a7888aa85cf520e042955c3/f/0021-Tweak-the-tools_def-to-support-cross-compiling.patch";
       hash = "sha256-E1/fiFNVx0aB1kOej2DJ2DlBIs9tAAcxoedym2Zhjxw=";
     })
+    # https://github.com/tianocore/edk2/pull/5658
+    (fetchpatch {
+      url = "https://github.com/tianocore/edk2/commit/a34ff4a8f69a7b8a52b9b299153a8fac702c7df1.patch";
+      hash = "sha256-u+niqwjuLV5tNPykW4xhb7PW2XvUmXhx5uvftG1UIbU=";
+    })
   ];
 
   srcWithVendoring = fetchFromGitHub {
@@ -88,8 +93,8 @@ edk2 = stdenv.mkDerivation rec {
     mv -v edksetup.sh $out
     # patchShebangs fails to see these when cross compiling
     for i in $out/BaseTools/BinWrappers/PosixLike/*; do
-      substituteInPlace $i --replace '/usr/bin/env bash' ${buildPackages.bash}/bin/bash
       chmod +x "$i"
+      patchShebangs --build "$i"
     done
   '';
 
@@ -118,13 +123,13 @@ edk2 = stdenv.mkDerivation rec {
 
       prePatch = ''
         rm -rf BaseTools
-        ln -sv ${edk2}/BaseTools BaseTools
+        ln -sv ${buildPackages.edk2}/BaseTools BaseTools
       '';
 
       configurePhase = ''
         runHook preConfigure
         export WORKSPACE="$PWD"
-        . ${edk2}/edksetup.sh BaseTools
+        . ${buildPackages.edk2}/edksetup.sh BaseTools
         runHook postConfigure
       '';
 
diff --git a/pkgs/development/compilers/elm/packages/ghc9_2/elm-format/elm-format.nix b/pkgs/development/compilers/elm/packages/ghc9_2/elm-format/elm-format.nix
index 82ec995e1ecc2..9389a4cbb6402 100644
--- a/pkgs/development/compilers/elm/packages/ghc9_2/elm-format/elm-format.nix
+++ b/pkgs/development/compilers/elm/packages/ghc9_2/elm-format/elm-format.nix
@@ -25,7 +25,7 @@ mkDerivation {
     text
   ];
   homepage = "https://elm-lang.org";
-  description = "A source code formatter for Elm";
+  description = "Source code formatter for Elm";
   license = lib.licenses.bsd3;
   mainProgram = "elm-format";
 }
diff --git a/pkgs/development/compilers/elm/packages/ghc9_6/ansi-wl-pprint/default.nix b/pkgs/development/compilers/elm/packages/ghc9_6/ansi-wl-pprint/default.nix
index 392ca5ab31b1b..272f0c520e526 100644
--- a/pkgs/development/compilers/elm/packages/ghc9_6/ansi-wl-pprint/default.nix
+++ b/pkgs/development/compilers/elm/packages/ghc9_6/ansi-wl-pprint/default.nix
@@ -12,6 +12,6 @@ mkDerivation {
   isExecutable = true;
   libraryHaskellDepends = [ ansi-terminal base ];
   homepage = "http://github.com/ekmett/ansi-wl-pprint";
-  description = "The Wadler/Leijen Pretty Printer for colored ANSI terminal output";
+  description = "Wadler/Leijen Pretty Printer for colored ANSI terminal output";
   license = lib.licenses.bsd3;
 }
diff --git a/pkgs/development/compilers/elm/packages/ghc9_6/default.nix b/pkgs/development/compilers/elm/packages/ghc9_6/default.nix
index 13ba7faa03088..0c30c9bea7285 100644
--- a/pkgs/development/compilers/elm/packages/ghc9_6/default.nix
+++ b/pkgs/development/compilers/elm/packages/ghc9_6/default.nix
@@ -19,7 +19,7 @@ self: pkgs.haskell.packages.ghc96.override {
                 --prefix PATH ':' ${lib.makeBinPath [ nodejs ]}
             '';
 
-            description = "A delightful language for reliable webapps";
+            description = "Delightful language for reliable webapps";
             homepage = "https://elm-lang.org/";
             license = licenses.bsd3;
             maintainers = with maintainers; [ domenkozar turbomack ];
diff --git a/pkgs/development/compilers/elm/packages/ghc9_6/elm/default.nix b/pkgs/development/compilers/elm/packages/ghc9_6/elm/default.nix
index 1071d50a84c95..65f9ffe40bda4 100644
--- a/pkgs/development/compilers/elm/packages/ghc9_6/elm/default.nix
+++ b/pkgs/development/compilers/elm/packages/ghc9_6/elm/default.nix
@@ -26,7 +26,7 @@ mkDerivation {
     vector zip-archive
   ];
   homepage = "https://elm-lang.org";
-  description = "The `elm` command line interface";
+  description = "`elm` command line interface";
   license = lib.licenses.bsd3;
   mainProgram = "elm";
 }
diff --git a/pkgs/development/compilers/elm/packages/lamdera/default.nix b/pkgs/development/compilers/elm/packages/lamdera/default.nix
index c92d2d144d4b8..79101092e7885 100644
--- a/pkgs/development/compilers/elm/packages/lamdera/default.nix
+++ b/pkgs/development/compilers/elm/packages/lamdera/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://lamdera.com";
     license = licenses.unfree;
-    description = "A delightful platform for full-stack web apps";
+    description = "Delightful platform for full-stack web apps";
     platforms = [ "aarch64-linux" "x86_64-linux" "aarch64-darwin" "x86_64-darwin" ];
     maintainers = with maintainers; [ Zimmi48 ];
   };
diff --git a/pkgs/development/compilers/elm/packages/node/default.nix b/pkgs/development/compilers/elm/packages/node/default.nix
index 6d4d38a6d199c..bb58c212649b2 100644
--- a/pkgs/development/compilers/elm/packages/node/default.nix
+++ b/pkgs/development/compilers/elm/packages/node/default.nix
@@ -70,7 +70,7 @@ with self; with elmLib; {
   elm-graphql =
     nodePkgs."@dillonkearns/elm-graphql" // {
       meta = with lib; nodePkgs."@dillonkearns/elm-graphql".meta // {
-        description = " Autogenerate type-safe GraphQL queries in Elm.";
+        description = " Autogenerate type-safe GraphQL queries in Elm";
         license = licenses.bsd3;
         maintainers = [ maintainers.pedrohlc ];
       };
@@ -100,7 +100,7 @@ with self; with elmLib; {
       nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ makeWrapper old.nodejs.pkgs.node-gyp-build ];
 
       meta = with lib; nodePkgs."elm-spa".meta // {
-        description = "A tool for building single page apps in Elm";
+        description = "Tool for building single page apps in Elm";
         homepage = "https://www.elm-spa.dev/";
         license = licenses.bsd3;
         maintainers = [ maintainers.ilyakooo0 ];
@@ -110,7 +110,7 @@ with self; with elmLib; {
 
   elm-optimize-level-2 = nodePkgs."elm-optimize-level-2" // {
     meta = with lib; nodePkgs."elm-optimize-level-2".meta // {
-      description = "A second level of optimization for the Javascript that the Elm Compiler produces";
+      description = "Second level of optimization for the Javascript that the Elm Compiler produces";
       homepage = "https://github.com/mdgriffith/elm-optimize-level-2";
       license = licenses.bsd3;
       maintainers = [ maintainers.turbomack ];
@@ -125,7 +125,7 @@ with self; with elmLib; {
     in
     patched.override (old: {
       meta = with lib; nodePkgs."elm-land".meta // {
-        description = "A production-ready framework for building Elm applications.";
+        description = "Production-ready framework for building Elm applications";
         homepage = "https://elm.land/";
         license = licenses.bsd3;
         maintainers = [ maintainers.zupo ];
diff --git a/pkgs/development/compilers/elm/packages/node/elm-pages/default.nix b/pkgs/development/compilers/elm/packages/node/elm-pages/default.nix
index 5502e26b415dd..4f057be3a3040 100644
--- a/pkgs/development/compilers/elm/packages/node/elm-pages/default.nix
+++ b/pkgs/development/compilers/elm/packages/node/elm-pages/default.nix
@@ -19,7 +19,7 @@ nodePkgs."elm-pages".overrideAttrs (
     '';
 
     meta = with lib; nodePkgs."elm-pages".meta // {
-      description = "A statically typed site generator for Elm.";
+      description = "Statically typed site generator for Elm";
       homepage = "https://github.com/dillonkearns/elm-pages";
       license = licenses.bsd3;
       maintainers = [ maintainers.turbomack maintainers.jali-clarke ];
diff --git a/pkgs/development/compilers/elm/packages/node/node-packages.nix b/pkgs/development/compilers/elm/packages/node/node-packages.nix
index 0efccbb5ff90a..3c7d770bdf482 100644
--- a/pkgs/development/compilers/elm/packages/node/node-packages.nix
+++ b/pkgs/development/compilers/elm/packages/node/node-packages.nix
@@ -9283,13 +9283,13 @@ let
         sha512 = "y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==";
       };
     };
-    "node-watch-0.5.5" = {
+    "node-watch-0.7.4" = {
       name = "node-watch";
       packageName = "node-watch";
-      version = "0.5.5";
+      version = "0.7.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-watch/-/node-watch-0.5.5.tgz";
-        sha512 = "z9xN2ibI6P0UylFadN7oMcIMsoTeCENC0rZyRM5MVK9AqzSPx+uGqKG6KMPeC/laOV4wOGZq/GH0PTstRNSqOA==";
+        url = "https://registry.npmjs.org/node-watch/-/node-watch-0.7.4.tgz";
+        sha512 = "RinNxoz4W1cep1b928fuFhvAQ5ag/+1UlMDV7rbyGthBIgsiEouS4kvRayvvboxii4m8eolKOIBo3OjDqbc+uQ==";
       };
     };
     "nopt-1.0.10" = {
@@ -14795,7 +14795,7 @@ in
       sources."minimist-1.2.0"
       sources."ms-2.0.0"
       sources."negotiator-0.6.3"
-      sources."node-watch-0.5.5"
+      sources."node-watch-0.7.4"
       sources."oauth-sign-0.9.0"
       sources."on-finished-2.3.0"
       sources."opn-5.4.0"
diff --git a/pkgs/development/compilers/emscripten/default.nix b/pkgs/development/compilers/emscripten/default.nix
index c31f109f89086..9824f1246f34e 100644
--- a/pkgs/development/compilers/emscripten/default.nix
+++ b/pkgs/development/compilers/emscripten/default.nix
@@ -136,7 +136,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/emscripten-core/emscripten";
-    description = "An LLVM-to-JavaScript Compiler";
+    description = "LLVM-to-JavaScript Compiler";
     platforms = platforms.all;
     maintainers = with maintainers; [ qknight matthewbauer raitobezarius willcohen ];
     license = licenses.ncsa;
diff --git a/pkgs/development/compilers/erg/default.nix b/pkgs/development/compilers/erg/default.nix
index 6a8741be05818..3cf038159b323 100644
--- a/pkgs/development/compilers/erg/default.nix
+++ b/pkgs/development/compilers/erg/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "erg";
-  version = "0.6.36";
+  version = "0.6.38";
 
   src = fetchFromGitHub {
     owner = "erg-lang";
     repo = "erg";
     rev = "v${version}";
-    hash = "sha256-fwuAlIUPEzc2ZjKJ+4gdzXM679MAAJpg9Mh0d7LAt5s=";
+    hash = "sha256-byoOvJ4SsRxFSbF4SwdDPlXNdMhypOgktnj4CkmAZuU=";
   };
 
-  cargoHash = "sha256-MfetCaYK5bBsV6EszNkwqlBFMykmLW7jX4gZWuIbHek=";
+  cargoHash = "sha256-QNykB9tXXlEyJupO5hkSN2ZqBZDwi0kl6IPHxkkaUxo=";
 
   nativeBuildInputs = [
     makeWrapper
@@ -56,7 +56,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A statically typed language that can deeply improve the Python ecosystem";
+    description = "Statically typed language that can deeply improve the Python ecosystem";
     mainProgram = "erg";
     homepage = "https://github.com/erg-lang/erg";
     changelog = "https://github.com/erg-lang/erg/releases/tag/${src.rev}";
diff --git a/pkgs/development/compilers/factor-lang/factor99.nix b/pkgs/development/compilers/factor-lang/factor99.nix
index 59595210dd1a9..168cf3ea34993 100644
--- a/pkgs/development/compilers/factor-lang/factor99.nix
+++ b/pkgs/development/compilers/factor-lang/factor99.nix
@@ -202,7 +202,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://factorcode.org/";
-    description = "A concatenative, stack-based programming language";
+    description = "Concatenative, stack-based programming language";
     longDescription = ''
       The Factor programming language is a concatenative, stack-based
       programming language with high-level features including dynamic types,
diff --git a/pkgs/development/compilers/fbc/default.nix b/pkgs/development/compilers/fbc/default.nix
index f2a223fb6b8a3..7f9c519703923 100644
--- a/pkgs/development/compilers/fbc/default.nix
+++ b/pkgs/development/compilers/fbc/default.nix
@@ -122,7 +122,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.freebasic.net/";
-    description = "A multi-platform BASIC Compiler";
+    description = "Multi-platform BASIC Compiler";
     mainProgram = "fbc";
     longDescription = ''
       FreeBASIC is a completely free, open-source, multi-platform BASIC compiler (fbc),
diff --git a/pkgs/development/compilers/flix/default.nix b/pkgs/development/compilers/flix/default.nix
index 3499b7390f699..37aade7464c93 100644
--- a/pkgs/development/compilers/flix/default.nix
+++ b/pkgs/development/compilers/flix/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "flix";
-  version = "0.47.0";
+  version = "0.48.0";
 
   src = fetchurl {
     url = "https://github.com/flix/flix/releases/download/v${version}/flix.jar";
-    sha256 = "sha256-HlVJR8SPwhOFn3yuxJzUWSS+xascf4pGsoKCqzBDG6Y=";
+    sha256 = "sha256-piwCEqUt4inhn4Ju2FaRjYtvkrNszCaTRE34eXERFLU=";
   };
 
   dontUnpack = true;
@@ -25,7 +25,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The Flix Programming Language";
+    description = "Flix Programming Language";
     mainProgram = "flix";
     homepage = "https://github.com/flix/flix";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
diff --git a/pkgs/development/compilers/flutter/default.nix b/pkgs/development/compilers/flutter/default.nix
index 6d2d904660338..3f2bb2e5cec83 100644
--- a/pkgs/development/compilers/flutter/default.nix
+++ b/pkgs/development/compilers/flutter/default.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchzip, fetchFromGitHub, dart, lib, stdenv }:
+{ useNixpkgsEngine ? false, callPackage, fetchzip, fetchFromGitHub, dart, lib, stdenv }@args:
 let
   mkCustomFlutter = args: callPackage ./flutter.nix args;
   wrapFlutter = flutter: callPackage ./wrapper.nix { inherit flutter; };
@@ -8,34 +8,37 @@ let
   mkFlutter =
     { version
     , engineVersion
+    , engineHashes
+    , enginePatches
     , dartVersion
     , flutterHash
     , dartHash
     , patches
     , pubspecLock
     , artifactHashes
-    }:
+    , channel
+    }@fargs:
     let
       args = {
-        inherit version engineVersion patches pubspecLock artifactHashes;
+        inherit version engineVersion engineHashes enginePatches patches pubspecLock artifactHashes useNixpkgsEngine channel;
 
         dart = dart.override {
           version = dartVersion;
           sources = {
             "${dartVersion}-x86_64-linux" = fetchzip {
-              url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-linux-x64-release.zip";
+              url = "https://storage.googleapis.com/dart-archive/channels/${channel}/release/${dartVersion}/sdk/dartsdk-linux-x64-release.zip";
               sha256 = dartHash.x86_64-linux;
             };
             "${dartVersion}-aarch64-linux" = fetchzip {
-              url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-linux-arm64-release.zip";
+              url = "https://storage.googleapis.com/dart-archive/channels/${channel}/release/${dartVersion}/sdk/dartsdk-linux-arm64-release.zip";
               sha256 = dartHash.aarch64-linux;
             };
             "${dartVersion}-x86_64-darwin" = fetchzip {
-              url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-macos-x64-release.zip";
+              url = "https://storage.googleapis.com/dart-archive/channels/${channel}/release/${dartVersion}/sdk/dartsdk-macos-x64-release.zip";
               sha256 = dartHash.x86_64-darwin;
             };
             "${dartVersion}-aarch64-darwin" = fetchzip {
-              url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-macos-arm64-release.zip";
+              url = "https://storage.googleapis.com/dart-archive/channels/${channel}/release/${dartVersion}/sdk/dartsdk-macos-arm64-release.zip";
               sha256 = dartHash.aarch64-darwin;
             };
           };
@@ -63,10 +66,15 @@ let
       in
       lib.nameValuePair "v${version}" (wrapFlutter (mkFlutter ({
         patches = (getPatches ./patches) ++ (getPatches (versionDir + "/patches"));
+        enginePatches = (getPatches ./engine/patches) ++ (getPatches (versionDir + "/engine/patches"));
       } // data))))
     (builtins.readDir ./versions);
+
+  stableFlutterVersions = lib.attrsets.filterAttrs (_: v: v.channel == "stable") flutterVersions;
+  betaFlutterVersions = lib.attrsets.filterAttrs (_: v: v.channel == "beta") flutterVersions;
 in
 flutterVersions // {
-  stable = flutterVersions.${lib.last (lib.naturalSort (builtins.attrNames flutterVersions))};
+  beta = flutterVersions.${lib.last (lib.naturalSort (builtins.attrNames betaFlutterVersions))};
+  stable = flutterVersions.${lib.last (lib.naturalSort (builtins.attrNames stableFlutterVersions))};
   inherit wrapFlutter mkFlutter;
 }
diff --git a/pkgs/development/compilers/flutter/engine/constants.nix b/pkgs/development/compilers/flutter/engine/constants.nix
new file mode 100644
index 0000000000000..9b7907fc337f7
--- /dev/null
+++ b/pkgs/development/compilers/flutter/engine/constants.nix
@@ -0,0 +1,41 @@
+{ lib, targetPlatform }:
+rec {
+  os =
+    if targetPlatform.isLinux then
+      "linux"
+    else if targetPlatform.isDarwin then
+      "macos"
+    else if targetPlatform.isWindows then
+      "windows"
+    else
+      throw "Unsupported OS \"${targetPlatform.parsed.kernel.name}\"";
+
+  arch =
+    if targetPlatform.isx86_64 then
+      "amd64"
+    else if targetPlatform.isx86 && targetPlatform.is32bit then
+      "386"
+    else if targetPlatform.isAarch64 then
+      "arm64"
+    else if targetPlatform.isMips && targetPlatform.parsed.cpu.significantByte == "littleEndian" then
+      "mipsle"
+    else if targetPlatform.isMips64 then
+      "mips64${lib.optionalString (targetPlatform.parsed.cpu.significantByte == "littleEndian") "le"}"
+    else if targetPlatform.isPower64 then
+      "ppc64${lib.optionalString (targetPlatform.parsed.cpu.significantByte == "littleEndian") "le"}"
+    else if targetPlatform.isS390x then
+      "s390x"
+    else
+      throw "Unsupported CPU \"${targetPlatform.parsed.cpu.name}\"";
+
+  alt-arch =
+    if targetPlatform.isx86_64 then
+      "x64"
+    else if targetPlatform.isAarch64 then
+      "arm64"
+    else
+      targetPlatform.parsed.cpu.name;
+
+  platform = "${os}-${arch}";
+  alt-platform = "${os}-${alt-arch}";
+}
diff --git a/pkgs/development/compilers/flutter/engine/default.nix b/pkgs/development/compilers/flutter/engine/default.nix
new file mode 100644
index 0000000000000..cea41933e4343
--- /dev/null
+++ b/pkgs/development/compilers/flutter/engine/default.nix
@@ -0,0 +1,74 @@
+{
+  callPackage,
+  dartSdkVersion,
+  flutterVersion,
+  version,
+  hashes,
+  url,
+  patches,
+  runtimeModes,
+  isOptimized ? true,
+  lib,
+  stdenv,
+}:
+let
+  mainRuntimeMode = builtins.elemAt runtimeModes 0;
+  altRuntimeMode = builtins.elemAt runtimeModes 1;
+
+  runtimeModesBuilds = lib.genAttrs runtimeModes (
+    runtimeMode:
+    callPackage ./package.nix {
+      inherit
+        dartSdkVersion
+        flutterVersion
+        version
+        hashes
+        url
+        patches
+        runtimeMode
+        isOptimized
+        ;
+    }
+  );
+in
+stdenv.mkDerivation (
+  {
+    pname = "flutter-engine";
+    inherit url runtimeModes;
+    inherit (runtimeModesBuilds.${mainRuntimeMode})
+      meta
+      src
+      version
+      dartSdkVersion
+      isOptimized
+      runtimeMode
+      ;
+    inherit altRuntimeMode;
+
+    dontUnpack = true;
+    dontBuild = true;
+
+    installPhase =
+      ''
+        mkdir -p $out/out
+
+        for dir in $(find $src/src -mindepth 1 -maxdepth 1); do
+          ln -sf $dir $out/$(basename $dir)
+        done
+
+      ''
+      + lib.concatMapStrings (
+        runtimeMode:
+        let
+          runtimeModeBuild = runtimeModesBuilds.${runtimeMode};
+          runtimeModeOut = "host_${runtimeMode}${
+            lib.optionalString (!runtimeModeBuild.isOptimized) "_unopt"
+          }";
+        in
+        ''
+          ln -sf ${runtimeModeBuild}/out/${runtimeModeOut} $out/out/${runtimeModeOut}
+        ''
+      ) runtimeModes;
+  }
+  // runtimeModesBuilds
+)
diff --git a/pkgs/development/compilers/flutter/engine/package.nix b/pkgs/development/compilers/flutter/engine/package.nix
new file mode 100644
index 0000000000000..6f87b28f19098
--- /dev/null
+++ b/pkgs/development/compilers/flutter/engine/package.nix
@@ -0,0 +1,311 @@
+{
+  lib,
+  callPackage,
+  writeText,
+  symlinkJoin,
+  targetPlatform,
+  hostPlatform,
+  darwin,
+  clang,
+  llvm,
+  tools ? callPackage ./tools.nix { inherit hostPlatform; },
+  stdenv,
+  stdenvNoCC,
+  runCommand,
+  patchelf,
+  xorg,
+  libglvnd,
+  libepoxy,
+  wayland,
+  freetype,
+  pango,
+  glib,
+  harfbuzz,
+  cairo,
+  gdk-pixbuf,
+  at-spi2-atk,
+  zlib,
+  gtk3,
+  pkg-config,
+  ninja,
+  python3,
+  git,
+  version,
+  flutterVersion,
+  dartSdkVersion,
+  hashes,
+  patches,
+  url,
+  runtimeMode ? "release",
+  isOptimized ? true,
+}:
+with lib;
+let
+  expandSingleDep =
+    dep: lib.optionals (lib.isDerivation dep) ([ dep ] ++ map (output: dep.${output}) dep.outputs);
+
+  expandDeps = deps: flatten (map expandSingleDep deps);
+
+  constants = callPackage ./constants.nix { inherit targetPlatform; };
+
+  src = callPackage ./source.nix {
+    inherit
+      tools
+      version
+      hashes
+      url
+      ;
+  };
+in
+stdenv.mkDerivation {
+  pname = "flutter-engine-${runtimeMode}${lib.optionalString (!isOptimized) "-unopt"}";
+  inherit
+    version
+    runtimeMode
+    patches
+    isOptimized
+    dartSdkVersion
+    src;
+
+  toolchain = symlinkJoin {
+    name = "flutter-engine-toolchain-${version}";
+
+    paths =
+      expandDeps (
+        optionals (stdenv.isLinux) [
+          gtk3
+          wayland
+          libepoxy
+          libglvnd
+          freetype
+          at-spi2-atk
+          glib
+          gdk-pixbuf
+          harfbuzz
+          pango
+          cairo
+          xorg.libxcb
+          xorg.libX11
+          xorg.libXcursor
+          xorg.libXrandr
+          xorg.libXrender
+          xorg.libXinerama
+          xorg.libXi
+          xorg.libXext
+          xorg.libXfixes
+          xorg.libXxf86vm
+          xorg.xorgproto
+          zlib
+        ]
+        ++ optionals (stdenv.isDarwin) [
+          clang
+          llvm
+        ]
+      )
+      ++ [
+        stdenv.cc.libc_dev
+        stdenv.cc.libc_lib
+      ];
+
+    postBuild = ''
+      ln -s /nix $out/nix
+    '';
+  };
+
+  nativeBuildInputs =
+    [
+      python3
+      (tools.vpython python3)
+      git
+      pkg-config
+      ninja
+    ]
+    ++ lib.optionals (stdenv.isLinux) [ patchelf ]
+    ++ optionals (stdenv.isDarwin) [
+      darwin.system_cmds
+      darwin.xcode
+      tools.xcode-select
+    ]
+    ++ lib.optionals (stdenv.cc.libc ? bin) [ stdenv.cc.libc.bin ];
+
+  buildInputs = [ gtk3 ];
+
+  patchtools =
+    let
+      buildtoolsPath =
+        if lib.versionAtLeast flutterVersion "3.21" then "flutter/buildtools" else "buildtools";
+    in
+    [
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/clang-apply-replacements"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/clang-doc"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/clang-format"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/clang-include-fixer"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/clang-refactor"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/clang-scan-deps"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/clang-tidy"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/clangd"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/dsymutil"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/find-all-symbols"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/lld"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-ar"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-bolt"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-cov"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-cxxfilt"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-debuginfod-find"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-dwarfdump"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-dwp"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-gsymutil"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-ifs"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-libtool-darwin"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-lipo"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-ml"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-mt"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-nm"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-objcopy"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-objdump"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-pdbutil"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-profdata"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-rc"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-readobj"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-size"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-symbolizer"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-undname"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm-xray"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/llvm"
+      "${buildtoolsPath}/${constants.alt-platform}/clang/bin/sancov"
+      "flutter/prebuilts/${constants.alt-platform}/dart-sdk/bin/dartaotruntime"
+      "flutter/prebuilts/${constants.alt-platform}/dart-sdk/bin/dart"
+      "flutter/third_party/gn/gn"
+      "third_party/dart/tools/sdks/dart-sdk/bin/dart"
+    ];
+
+  dontPatch = true;
+
+  patchgit = [
+    "third_party/dart"
+    "flutter"
+    "."
+  ] ++ lib.optional (lib.versionAtLeast flutterVersion "3.21") "flutter/third_party/skia";
+
+  postUnpack = ''
+    pushd ${src.name}
+    ${lib.optionalString (stdenv.isLinux) ''
+      for patchtool in ''${patchtools[@]}; do
+        patchelf src/$patchtool --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker)
+      done
+    ''}
+
+    for dir in ''${patchgit[@]}; do
+      pushd src/$dir
+      rev=$(cat .git/HEAD)
+      rm -rf .git
+      git init
+      git add .
+      git config user.name "nobody"
+      git config user.email "nobody@local.host"
+      git commit -a -m "$rev"
+      popd
+    done
+
+    src/flutter/prebuilts/${constants.alt-platform}/dart-sdk/bin/dart src/third_party/dart/tools/generate_package_config.dart
+    cp ${./pkg-config.py} src/build/config/linux/pkg-config.py
+    echo "${dartSdkVersion}" >src/third_party/dart/sdk/version
+
+    rm -rf src/third_party/angle/.git
+    python3 src/flutter/tools/pub_get_offline.py
+
+    pushd src/flutter
+
+    for p in ''${patches[@]}; do
+      patch -p1 -i $p
+    done
+
+    popd
+    popd
+  '';
+
+  configureFlags =
+    [
+      "--no-prebuilt-dart-sdk"
+      "--embedder-for-target"
+      "--no-goma"
+    ]
+    ++ optionals (targetPlatform.isx86_64 == false) [
+      "--linux"
+      "--linux-cpu ${constants.alt-arch}"
+    ];
+
+  # NOTE: Once https://github.com/flutter/flutter/issues/127606 is fixed, use "--no-prebuilt-dart-sdk"
+  configurePhase =
+    ''
+      runHook preConfigure
+
+      export PYTHONPATH=$src/src/build
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      export PATH=${darwin.xcode}/Contents/Developer/usr/bin/:$PATH
+    ''
+    + ''
+      python3 ./src/flutter/tools/gn $configureFlags \
+        --runtime-mode $runtimeMode \
+        --out-dir $out \
+        --target-sysroot $toolchain \
+        --target-dir host_$runtimeMode${lib.optionalString (!isOptimized) "_unopt --unoptimized"} \
+        --verbose
+
+      runHook postConfigure
+    '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    export TERM=dumb
+    for tool in flatc scenec gen_snapshot dart impellerc shader_archiver gen_snapshot_product; do
+      ninja -C $out/out/host_$runtimeMode${
+        lib.optionalString (!isOptimized) "_unopt"
+      } -j$NIX_BUILD_CORES $tool
+      ${lib.optionalString (stdenv.isLinux) ''
+        patchelf $out/out/host_$runtimeMode${
+          lib.optionalString (!isOptimized) "_unopt"
+        }/$tool --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker)
+      ''}
+    done
+
+    ninja -C $out/out/host_$runtimeMode${lib.optionalString (!isOptimized) "_unopt"} -j$NIX_BUILD_CORES
+
+    ${lib.optionalString (stdenv.isLinux) ''
+      patchelf $out/out/host_$runtimeMode${
+        lib.optionalString (!isOptimized) "_unopt"
+      }/dart-sdk/bin/dartaotruntime \
+        --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker)
+    ''}
+
+    runHook postBuild
+  '';
+
+  # Link sources so we can set $FLUTTER_ENGINE to this derivation
+  installPhase = ''
+    runHook preInstall
+
+    for dir in $(find $src/src -mindepth 1 -maxdepth 1); do
+      ln -sf $dir $out/$(basename $dir)
+    done
+
+    runHook postInstall
+  '';
+
+  meta = {
+    # Very broken on Darwin
+    broken = stdenv.isDarwin;
+    description = "The Flutter engine";
+    homepage = "https://flutter.dev";
+    maintainers = with maintainers; [ RossComputerGuy ];
+    license = licenses.bsd3;
+    platforms = [
+      "x86_64-linux"
+      "aarch64-linux"
+      "x86_64-darwin"
+      "aarch64-darwin"
+    ];
+  };
+}
diff --git a/pkgs/development/compilers/flutter/engine/pkg-config.py b/pkgs/development/compilers/flutter/engine/pkg-config.py
new file mode 100644
index 0000000000000..1df08211e570d
--- /dev/null
+++ b/pkgs/development/compilers/flutter/engine/pkg-config.py
@@ -0,0 +1,247 @@
+#!/usr/bin/env python3
+#
+# Copyright (c) 2013 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+
+
+import json
+import os
+import subprocess
+import sys
+import re
+from optparse import OptionParser
+
+# This script runs pkg-config, optionally filtering out some results, and
+# returns the result.
+#
+# The result will be [ <includes>, <cflags>, <libs>, <lib_dirs>, <ldflags> ]
+# where each member is itself a list of strings.
+#
+# You can filter out matches using "-v <regexp>" where all results from
+# pkgconfig matching the given regular expression will be ignored. You can
+# specify more than one regular expression my specifying "-v" more than once.
+#
+# You can specify a sysroot using "-s <sysroot>" where sysroot is the absolute
+# system path to the sysroot used for compiling. This script will attempt to
+# generate correct paths for the sysroot.
+#
+# When using a sysroot, you must also specify the architecture via
+# "-a <arch>" where arch is either "x86" or "x64".
+#
+# CrOS systemroots place pkgconfig files at <systemroot>/usr/share/pkgconfig
+# and one of <systemroot>/usr/lib/pkgconfig or <systemroot>/usr/lib64/pkgconfig
+# depending on whether the systemroot is for a 32 or 64 bit architecture. They
+# specify the 'lib' or 'lib64' of the pkgconfig path by defining the
+# 'system_libdir' variable in the args.gn file. pkg_config.gni communicates this
+# variable to this script with the "--system_libdir <system_libdir>" flag. If no
+# flag is provided, then pkgconfig files are assumed to come from
+# <systemroot>/usr/lib/pkgconfig.
+#
+# Additionally, you can specify the option --atleast-version. This will skip
+# the normal outputting of a dictionary and instead print true or false,
+# depending on the return value of pkg-config for the given package.
+
+
+def SetConfigPath(options):
+  """Set the PKG_CONFIG_LIBDIR environment variable.
+
+  This takes into account any sysroot and architecture specification from the
+  options on the given command line.
+  """
+
+  sysroot = options.sysroot
+  assert sysroot
+
+  # Compute the library path name based on the architecture.
+  arch = options.arch
+  if sysroot and not arch:
+    print("You must specify an architecture via -a if using a sysroot.")
+    sys.exit(1)
+
+  libdir = sysroot + '/' + options.system_libdir + '/pkgconfig'
+  libdir += ':' + sysroot + '/share/pkgconfig'
+  os.environ['PKG_CONFIG_LIBDIR'] = libdir
+  return libdir
+
+
+def GetPkgConfigPrefixToStrip(options, args):
+  """Returns the prefix from pkg-config where packages are installed.
+
+  This returned prefix is the one that should be stripped from the beginning of
+  directory names to take into account sysroots.
+  """
+  # Some sysroots, like the Chromium OS ones, may generate paths that are not
+  # relative to the sysroot. For example,
+  # /path/to/chroot/build/x86-generic/usr/lib/pkgconfig/pkg.pc may have all
+  # paths relative to /path/to/chroot (i.e. prefix=/build/x86-generic/usr)
+  # instead of relative to /path/to/chroot/build/x86-generic (i.e prefix=/usr).
+  # To support this correctly, it's necessary to extract the prefix to strip
+  # from pkg-config's |prefix| variable.
+  prefix = subprocess.check_output([options.pkg_config,
+      "--variable=prefix"] + args, env=os.environ).decode('utf-8')
+  return prefix
+
+
+def MatchesAnyRegexp(flag, list_of_regexps):
+  """Returns true if the first argument matches any regular expression in the
+  given list."""
+  for regexp in list_of_regexps:
+    if regexp.search(flag) != None:
+      return True
+  return False
+
+
+def RewritePath(path, strip_prefix, sysroot):
+  """Rewrites a path by stripping the prefix and prepending the sysroot."""
+  if os.path.isabs(path) and not path.startswith(sysroot):
+    if path.startswith(strip_prefix):
+      path = path[len(strip_prefix):]
+    path = path.lstrip('/')
+    return os.path.join(sysroot, path)
+  else:
+    return path
+
+
+def main():
+  # If this is run on non-Linux platforms, just return nothing and indicate
+  # success. This allows us to "kind of emulate" a Linux build from other
+  # platforms.
+  if "linux" not in sys.platform:
+    print("[[],[],[],[],[]]")
+    return 0
+
+  parser = OptionParser()
+  parser.add_option('-d', '--debug', action='store_true')
+  parser.add_option('-p', action='store', dest='pkg_config', type='string',
+                    default='pkg-config')
+  parser.add_option('-v', action='append', dest='strip_out', type='string')
+  parser.add_option('-s', action='store', dest='sysroot', type='string')
+  parser.add_option('-a', action='store', dest='arch', type='string')
+  parser.add_option('--system_libdir', action='store', dest='system_libdir',
+                    type='string', default='lib')
+  parser.add_option('--atleast-version', action='store',
+                    dest='atleast_version', type='string')
+  parser.add_option('--libdir', action='store_true', dest='libdir')
+  parser.add_option('--dridriverdir', action='store_true', dest='dridriverdir')
+  parser.add_option('--version-as-components', action='store_true',
+                    dest='version_as_components')
+  (options, args) = parser.parse_args()
+
+  # Make a list of regular expressions to strip out.
+  strip_out = []
+  if options.strip_out != None:
+    for regexp in options.strip_out:
+      strip_out.append(re.compile(regexp))
+
+  if options.sysroot:
+    libdir = SetConfigPath(options)
+    if options.debug:
+      sys.stderr.write('PKG_CONFIG_LIBDIR=%s\n' % libdir)
+    prefix = GetPkgConfigPrefixToStrip(options, args)
+  else:
+    prefix = ''
+
+  if options.atleast_version:
+    # When asking for the return value, just run pkg-config and print the return
+    # value, no need to do other work.
+    if not subprocess.call([options.pkg_config,
+                            "--atleast-version=" + options.atleast_version] +
+                            args):
+      print("true")
+    else:
+      print("false")
+    return 0
+
+  if options.version_as_components:
+    cmd = [options.pkg_config, "--modversion"] + args
+    try:
+      version_string = subprocess.check_output(cmd).decode('utf-8')
+    except:
+      sys.stderr.write('Error from pkg-config.\n')
+      return 1
+    print(json.dumps(list(map(int, version_string.strip().split(".")))))
+    return 0
+
+
+  if options.libdir:
+    cmd = [options.pkg_config, "--variable=libdir"] + args
+    if options.debug:
+      sys.stderr.write('Running: %s\n' % cmd)
+    try:
+      libdir = subprocess.check_output(cmd).decode('utf-8')
+    except:
+      print("Error from pkg-config.")
+      return 1
+    sys.stdout.write(libdir.strip())
+    return 0
+
+  if options.dridriverdir:
+    cmd = [options.pkg_config, "--variable=dridriverdir"] + args
+    if options.debug:
+      sys.stderr.write('Running: %s\n' % cmd)
+    try:
+      dridriverdir = subprocess.check_output(cmd).decode('utf-8')
+    except:
+      print("Error from pkg-config.")
+      return 1
+    sys.stdout.write(dridriverdir.strip())
+    return
+
+  cmd = [options.pkg_config, "--cflags", "--libs"] + args
+  if options.debug:
+    sys.stderr.write('Running: %s\n' % ' '.join(cmd))
+
+  try:
+    flag_string = subprocess.check_output(cmd).decode('utf-8')
+  except:
+    sys.stderr.write('Could not run pkg-config.\n')
+    return 1
+
+  # For now just split on spaces to get the args out. This will break if
+  # pkgconfig returns quoted things with spaces in them, but that doesn't seem
+  # to happen in practice.
+  all_flags = flag_string.strip().split(' ')
+
+
+  sysroot = options.sysroot
+  if not sysroot:
+    sysroot = ''
+
+  includes = []
+  cflags = []
+  libs = []
+  lib_dirs = []
+
+  for flag in all_flags[:]:
+    if len(flag) == 0 or MatchesAnyRegexp(flag, strip_out):
+      continue;
+
+    if flag[:2] == '-l':
+      libs.append(RewritePath(flag[2:], prefix, sysroot))
+    elif flag[:2] == '-L':
+      lib_dirs.append(RewritePath(flag[2:], prefix, sysroot))
+    elif flag[:2] == '-I':
+      includes.append(RewritePath(flag[2:], prefix, sysroot))
+    elif flag[:3] == '-Wl':
+      # Don't allow libraries to control ld flags.  These should be specified
+      # only in build files.
+      pass
+    elif flag == '-pthread':
+      # Many libs specify "-pthread" which we don't need since we always include
+      # this anyway. Removing it here prevents a bunch of duplicate inclusions
+      # on the command line.
+      pass
+    else:
+      cflags.append(flag)
+
+  # Output a GN array, the first one is the cflags, the second are the libs. The
+  # JSON formatter prints GN compatible lists when everything is a list of
+  # strings.
+  print(json.dumps([includes, cflags, libs, lib_dirs]))
+  return 0
+
+
+if __name__ == '__main__':
+  sys.exit(main())
diff --git a/pkgs/development/compilers/flutter/engine/source.nix b/pkgs/development/compilers/flutter/engine/source.nix
new file mode 100644
index 0000000000000..4b9b5aaa5adb2
--- /dev/null
+++ b/pkgs/development/compilers/flutter/engine/source.nix
@@ -0,0 +1,78 @@
+{
+  callPackage,
+  hostPlatform,
+  targetPlatform,
+  tools ? callPackage ./tools.nix { inherit hostPlatform; },
+  curl,
+  pkg-config,
+  git,
+  python3,
+  runCommand,
+  writeText,
+  cacert,
+  version,
+  hashes,
+  url,
+}:
+let
+  constants = callPackage ./constants.nix { inherit targetPlatform; };
+in
+runCommand "flutter-engine-source-${version}-${targetPlatform.system}"
+  {
+    pname = "flutter-engine-source";
+    inherit version;
+
+    inherit (tools) depot_tools;
+
+    nativeBuildInputs = [
+      curl
+      pkg-config
+      git
+      tools.cipd
+      (python3.withPackages (
+        ps: with ps; [
+          httplib2
+          six
+        ]
+      ))
+    ];
+
+    gclient = writeText "flutter-engine-${version}.gclient" ''
+      solutions = [{
+        "managed": False,
+        "name": "src/flutter",
+        "url": "${url}",
+      }]
+    '';
+
+    NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
+    GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
+    SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
+    DEPOT_TOOLS_UPDATE = "0";
+    DEPOT_TOOLS_COLLECT_METRICS = "0";
+    PYTHONDONTWRITEBYTECODE = "1";
+
+    outputHashAlgo = "sha256";
+    outputHashMode = "recursive";
+    outputHash = hashes.${targetPlatform.system} or (throw "Hash not set for ${targetPlatform.system}");
+  }
+  ''
+    source ${../../../../build-support/fetchgit/deterministic-git}
+    export -f clean_git
+    export -f make_deterministic_repo
+
+    mkdir -p $out
+    cp $gclient $out/.gclient
+    cd $out
+
+    export PATH=$PATH:$depot_tools
+    python3 $depot_tools/gclient.py sync --no-history --shallow --nohooks >/dev/null
+    find $out -name '.git' -exec dirname {} \; | xargs bash -c 'make_deterministic_repo $@' _
+    find $out -path '*/.git/*' ! -name 'HEAD' -prune -exec rm -rf {} \;
+    find $out -name '.git' -exec mkdir {}/logs \;
+    find $out -name '.git' -exec cp {}/HEAD {}/logs/HEAD \;
+
+    python3 src/build/linux/sysroot_scripts/install-sysroot.py --arch=${constants.arch} >/dev/null
+
+    rm -rf $out/.cipd $out/.gclient $out/.gclient_entries $out/.gclient_previous_custom_vars $out/.gclient_previous_sync_commits
+  ''
diff --git a/pkgs/development/compilers/flutter/engine/tools.nix b/pkgs/development/compilers/flutter/engine/tools.nix
new file mode 100644
index 0000000000000..a35398058181b
--- /dev/null
+++ b/pkgs/development/compilers/flutter/engine/tools.nix
@@ -0,0 +1,62 @@
+{
+  callPackage,
+  fetchgit,
+  fetchurl,
+  writeText,
+  runCommand,
+  hostPlatform,
+  darwin,
+  writeShellScriptBin,
+  depot_toolsCommit ? "7d95eb2eb054447592585c73a8ff7adad97ecba1",
+  depot_toolsHash ? "sha256-F7KDuVg11qLKkohIjuXpNdxpnSsT6Z3hE9+wFIG2sSk=",
+  cipdCommit ? "89ada246fcbf10f330011e4991d017332af2365b",
+  cipdHashes ? {
+    "linux-386" = "7f264198598af2ef9d8878349d33c1940f1f3739e46d986962c352ec4cce2690";
+    "linux-amd64" = "2ada6b46ad1cd1350522c5c05899d273f5c894c7665e30104e7f57084a5aeeb9";
+    "linux-arm64" = "96eca7e49f6732c50122b94b793c3a5e62ed77bce1686787a8334906791b4168";
+    "linux-armv6l" = "06394601130652c5e1b055a7e4605c21fc7c6643af0b3b3cac8d2691491afa81";
+    "linux-mips64" = "f3eda6542b381b7aa8f582698498b0e197972c894590ec35f18faa467c868f5c";
+    "linux-mips64le" = "74229ada8e2afd9c8e7c58991126869b2880547780d4a197a27c1dfa96851622";
+    "linux-mipsle" = "2f3c18ec0ad48cd44a9ff39bb60e9afded83ca43fb9c7a5ea9949f6fdd4e1394";
+    "linux-ppc64" = "79425c0795fb8ba12b39a8856bf7ccb853e85def4317aa6413222f307d4c2dbd";
+    "linux-ppc64le" = "f9b3d85dde70f1b78cd7a41d2477834c15ac713a59317490a4cdac9f8f092325";
+    "linux-riscv64" = "bd695164563a66e8d3799e8835f90a398fbae9a4eec24e876c92d5f213943482";
+    "linux-s390x" = "6f501af80541e733fda23b4208a21ea05919c95d236036a2121e6b6334a2792c";
+    "macos-amd64" = "41d05580c0014912d6c32619c720646fd136e4557c9c7d7571ecc8c0462733a1";
+    "macos-arm64" = "dc672bd16d9faf277dd562f1dc00644b10c03c5d838d3cc3d3ea29925d76d931";
+    "windows-386" = "fa6ed0022a38ffc51ff8a927e3947fe7e59a64b2019dcddca9d3afacf7630444";
+    "windows-amd64" = "b5423e4b4429837f7fe4d571ce99c068aa0ccb37ddbebc1978a423fd2b0086df";
+  },
+}:
+let
+  constants = callPackage ./constants.nix { targetPlatform = hostPlatform; };
+in
+{
+  depot_tools = fetchgit {
+    url = "https://chromium.googlesource.com/chromium/tools/depot_tools.git";
+    rev = depot_toolsCommit;
+    hash = depot_toolsHash;
+  };
+
+  cipd =
+    runCommand "cipd-${cipdCommit}"
+      {
+        unwrapped = fetchurl {
+          name = "cipd-${cipdCommit}-unwrapped";
+          url = "https://chrome-infra-packages.appspot.com/client?platform=${constants.platform}&version=git_revision:${cipdCommit}";
+          sha256 = cipdHashes.${constants.platform};
+        };
+      }
+      ''
+        mkdir -p $out/bin
+        install -m755 $unwrapped $out/bin/cipd
+      '';
+
+  vpython =
+    pythonPkg:
+    runCommand "vpython3" { } "mkdir -p $out/bin && ln -s ${pythonPkg}/bin/python $out/bin/vpython3";
+
+  xcode-select = writeShellScriptBin "xcode-select" ''
+    echo ${darwin.xcode}/Contents/Developer
+  '';
+}
diff --git a/pkgs/development/compilers/flutter/flutter-tools.nix b/pkgs/development/compilers/flutter/flutter-tools.nix
index cf35ed8cbc455..306765cd0a42a 100644
--- a/pkgs/development/compilers/flutter/flutter-tools.nix
+++ b/pkgs/development/compilers/flutter/flutter-tools.nix
@@ -2,6 +2,7 @@
 , stdenv
 , systemPlatform
 , buildDartApplication
+, runCommand
 , git
 , which
 , dart
@@ -54,5 +55,22 @@ buildDartApplication.override { inherit dart; } rec {
     popd
   '';
 
+  sdkSourceBuilders = {
+    # https://github.com/dart-lang/pub/blob/e1fbda73d1ac597474b82882ee0bf6ecea5df108/lib/src/sdk/dart.dart#L80
+    "dart" = name: runCommand "dart-sdk-${name}" { passthru.packageRoot = "."; } ''
+      for path in '${dart}/pkg/${name}'; do
+        if [ -d "$path" ]; then
+          ln -s "$path" "$out"
+          break
+        fi
+      done
+
+      if [ ! -e "$out" ]; then
+        echo 1>&2 'The Dart SDK does not contain the requested package: ${name}!'
+        exit 1
+      fi
+    '';
+  };
+
   inherit pubspecLock;
 }
diff --git a/pkgs/development/compilers/flutter/flutter.nix b/pkgs/development/compilers/flutter/flutter.nix
index aa73a62fab149..757766d031524 100644
--- a/pkgs/development/compilers/flutter/flutter.nix
+++ b/pkgs/development/compilers/flutter/flutter.nix
@@ -1,6 +1,12 @@
-{ version
+{ useNixpkgsEngine ? false
+, version
 , engineVersion
+, engineHashes ? {}
+, engineUrl ? "https://github.com/flutter/engine.git@${engineVersion}"
+, enginePatches ? []
+, engineRuntimeModes ? [ "release" "debug" ]
 , patches
+, channel
 , dart
 , src
 , pubspecLock
@@ -20,9 +26,20 @@
     inherit pubspecLock;
     systemPlatform = stdenv.hostPlatform.system;
   }
-}:
+}@args:
 
 let
+  engine = if args.useNixpkgsEngine or false then
+    callPackage ./engine/default.nix {
+      dartSdkVersion = dart.version;
+      flutterVersion = version;
+      version = engineVersion;
+      hashes = engineHashes;
+      url = engineUrl;
+      patches = enginePatches;
+      runtimeModes = engineRuntimeModes;
+    } else null;
+
   unwrapped =
     stdenv.mkDerivation {
       name = "flutter-${version}-unwrapped";
@@ -74,7 +91,7 @@ let
           "devToolsVersion": "$(cat "${dart}/bin/resources/devtools/version.json" | jq -r .version)",
           "flutterVersion": "${version}",
           "frameworkVersion": "${version}",
-          "channel": "stable",
+          "channel": "${channel}",
           "repositoryUrl": "https://github.com/flutter/flutter.git",
           "frameworkRevision": "nixpkgs000000000000000000000000000000000",
           "frameworkCommitDate": "1970-01-01 00:00:00",
@@ -124,12 +141,15 @@ let
       '';
 
       passthru = {
-        inherit dart engineVersion artifactHashes;
+        # TODO: rely on engine.version instead of engineVersion
+        inherit dart engineVersion artifactHashes channel;
         tools = flutterTools;
         # The derivation containing the original Flutter SDK files.
         # When other derivations wrap this one, any unmodified files
         # found here should be included as-is, for tooling compatibility.
         sdk = unwrapped;
+      } // lib.optionalAttrs (engine != null && engine.meta.available) {
+        inherit engine;
       };
 
       meta = with lib; {
@@ -142,7 +162,7 @@ let
         license = licenses.bsd3;
         platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
         maintainers = teams.flutter.members ++ (with maintainers; [
-          babariviere ericdallo
+          ericdallo
         ]);
       };
     };
diff --git a/pkgs/development/compilers/flutter/update/get-dart-hashes.nix.in b/pkgs/development/compilers/flutter/update/get-dart-hashes.nix.in
index f900c863195ab..941a9769a9cb2 100644
--- a/pkgs/development/compilers/flutter/update/get-dart-hashes.nix.in
+++ b/pkgs/development/compilers/flutter/update/get-dart-hashes.nix.in
@@ -1,26 +1,27 @@
 let
   dartVersion = "@dart_version@";
   platform = "@platform@";
+  channel = "@channel@";
 in
 {
   x86_64-linux = { fetchzip }:
     fetchzip {
-      url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-linux-x64-release.zip";
+      url = "https://storage.googleapis.com/dart-archive/channels/${channel}/release/${dartVersion}/sdk/dartsdk-linux-x64-release.zip";
       sha256 = "0000000000000000000000000000000000000000000000000000";
     };
   aarch64-linux = { fetchzip }:
     fetchzip {
-      url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-linux-arm64-release.zip";
+      url = "https://storage.googleapis.com/dart-archive/channels/${channel}/release/${dartVersion}/sdk/dartsdk-linux-arm64-release.zip";
       sha256 = "0000000000000000000000000000000000000000000000000000";
     };
   x86_64-darwin = { fetchzip }:
     fetchzip {
-      url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-macos-x64-release.zip";
+      url = "https://storage.googleapis.com/dart-archive/channels/${channel}/release/${dartVersion}/sdk/dartsdk-macos-x64-release.zip";
       sha256 = "0000000000000000000000000000000000000000000000000000";
     };
   aarch64-darwin = { fetchzip }:
     fetchzip {
-      url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-macos-arm64-release.zip";
+      url = "https://storage.googleapis.com/dart-archive/channels/${channel}/release/${dartVersion}/sdk/dartsdk-macos-arm64-release.zip";
       sha256 = "0000000000000000000000000000000000000000000000000000";
     };
 }.${platform}
diff --git a/pkgs/development/compilers/flutter/update/get-engine-hashes.nix.in b/pkgs/development/compilers/flutter/update/get-engine-hashes.nix.in
new file mode 100644
index 0000000000000..f61b9b14fd07a
--- /dev/null
+++ b/pkgs/development/compilers/flutter/update/get-engine-hashes.nix.in
@@ -0,0 +1,23 @@
+{ callPackage, symlinkJoin, lib }:
+let
+  nixpkgsRoot = "@nixpkgs_root@";
+  engineVersion = "@engine_version@";
+
+  systemPlatforms = [
+    "x86_64-linux"
+    "aarch64-linux"
+  ];
+
+  derivations = builtins.map
+    (systemPlatform: callPackage "${nixpkgsRoot}/pkgs/development/compilers/flutter/engine/source.nix" {
+      targetPlatform = lib.systems.elaborate systemPlatform;
+      version = engineVersion;
+      url = "https://github.com/flutter/engine.git@${engineVersion}";
+      hashes."${systemPlatform}" = lib.fakeSha256;
+    })
+    systemPlatforms;
+in
+symlinkJoin {
+  name = "evaluate-derivations";
+  paths = derivations;
+}
diff --git a/pkgs/development/compilers/flutter/update/update.py b/pkgs/development/compilers/flutter/update/update.py
index 618fae5468e5b..a782b46514a92 100755
--- a/pkgs/development/compilers/flutter/update/update.py
+++ b/pkgs/development/compilers/flutter/update/update.py
@@ -85,6 +85,32 @@ def nix_build_to_fail(code):
     return stderr
 
 
+def get_engine_hashes(engine_version):
+    code = load_code("get-engine-hashes.nix",
+                     nixpkgs_root=NIXPKGS_ROOT,
+                     engine_version=engine_version)
+
+    stderr = nix_build_to_fail(code)
+
+    pattern = re.compile(
+        r"/nix/store/.*-flutter-engine-source-(.+?)-(.+?).drv':\n\s+specified: .*\n\s+got:\s+(.+?)\n")
+    matches = pattern.findall(stderr)
+    result_dict = {}
+
+    for match in matches:
+        _, system, got = match
+        result_dict[system] = got
+
+    def sort_dict_recursive(d):
+        return {
+            k: sort_dict_recursive(v) if isinstance(
+                v, dict) else v for k, v in sorted(
+                d.items())}
+    result_dict = sort_dict_recursive(result_dict)
+
+    return result_dict
+
+
 def get_artifact_hashes(flutter_compact_version):
     code = load_code("get-artifact-hashes.nix",
                      nixpkgs_root=NIXPKGS_ROOT,
@@ -111,7 +137,7 @@ def get_artifact_hashes(flutter_compact_version):
     return result_dict
 
 
-def get_dart_hashes(dart_version):
+def get_dart_hashes(dart_version, channel):
     platforms = [
         "x86_64-linux",
         "aarch64-linux",
@@ -122,6 +148,7 @@ def get_dart_hashes(dart_version):
         code = load_code(
             "get-dart-hashes.nix",
             dart_version=dart_version,
+            channel=channel,
             platform=platform)
         stderr = nix_build_to_fail(code)
 
@@ -177,7 +204,9 @@ def get_pubspec_lock(flutter_compact_version, flutter_src):
 def write_data(
         nixpkgs_flutter_version_directory,
         flutter_version,
+        channel,
         engine_hash,
+        engine_hashes,
         dart_version,
         dart_hash,
         flutter_hash,
@@ -187,6 +216,8 @@ def write_data(
         f.write(json.dumps({
             "version": flutter_version,
             "engineVersion": engine_hash,
+            "channel": channel,
+            "engineHashes": engine_hashes,
             "dartVersion": dart_version,
             "dartHash": dart_hash,
             "flutterHash": flutter_hash,
@@ -202,7 +233,9 @@ def update_all_packages():
         int(x.split('_')[0]), int(x.split('_')[1])), reverse=True)
 
     new_content = [
-        "flutterPackages = recurseIntoAttrs (callPackage ../development/compilers/flutter { });",
+        "flutterPackages-bin = recurseIntoAttrs (callPackage ../development/compilers/flutter { });",
+        "flutterPackages-source = recurseIntoAttrs (callPackage ../development/compilers/flutter { useNixpkgsEngine = true; });",
+        "flutterPackages = flutterPackages-bin;"
         "flutter = flutterPackages.stable;",
     ] + [f"flutter{version.replace('_', '')} = flutterPackages.v{version};" for version in versions]
 
@@ -212,7 +245,7 @@ def update_all_packages():
     start = -1
     end = -1
     for i, line in enumerate(lines):
-        if "flutterPackages = recurseIntoAttrs (callPackage ../development/compilers/flutter { });" in line:
+        if "flutterPackages-bin = recurseIntoAttrs (callPackage ../development/compilers/flutter { });" in line:
             start = i
         if start != -1 and len(line.strip()) == 0:
             end = i
@@ -229,18 +262,21 @@ def update_all_packages():
 # Finds Flutter version, Dart version, and Engine hash.
 # If the Flutter version is given, it uses that. Otherwise finds the
 # latest stable Flutter version.
-def find_versions(flutter_version=None):
+def find_versions(flutter_version=None, channel=None):
     engine_hash = None
     dart_version = None
 
     releases = json.load(urllib.request.urlopen(
         "https://storage.googleapis.com/flutter_infra_release/releases/releases_linux.json"))
 
+    if not channel:
+        channel = 'stable'
+
     if not flutter_version:
-        stable_hash = releases['current_release']['stable']
+        hash = releases['current_release'][channel]
         release = next(
             filter(
-                lambda release: release['hash'] == stable_hash,
+                lambda release: release['hash'] == hash,
                 releases['releases']))
         flutter_version = release['version']
 
@@ -265,21 +301,25 @@ def find_versions(flutter_version=None):
             filter(
                 lambda release: release['version'] == flutter_version,
                 releases['releases']))['dart_sdk_version']
+
+        if " " in dart_version:
+            dart_version = dart_version.split(' ')[2][:-1]
     except StopIteration:
         exit(
             f"Couldn't find Dart version for Flutter version: {flutter_version}")
 
-    return (flutter_version, engine_hash, dart_version)
+    return (flutter_version, engine_hash, dart_version, channel)
 
 
 def main():
     parser = argparse.ArgumentParser(description='Update Flutter in Nixpkgs')
     parser.add_argument('--version', type=str, help='Specify Flutter version')
+    parser.add_argument('--channel', type=str, help='Specify Flutter release channel')
     parser.add_argument('--artifact-hashes', action='store_true',
                         help='Whether to get artifact hashes')
     args = parser.parse_args()
 
-    (flutter_version, engine_hash, dart_version) = find_versions(args.version)
+    (flutter_version, engine_hash, dart_version, channel) = find_versions(args.version, args.channel)
 
     flutter_compact_version = '_'.join(flutter_version.split('.')[:2])
 
@@ -291,11 +331,11 @@ def main():
             "\n")
         return
 
-    print(f"Flutter version: {flutter_version} ({flutter_compact_version})")
+    print(f"Flutter version: {flutter_version} ({flutter_compact_version}) on ({channel})")
     print(f"Engine hash: {engine_hash}")
     print(f"Dart version: {dart_version}")
 
-    dart_hash = get_dart_hashes(dart_version)
+    dart_hash = get_dart_hashes(dart_version, channel)
     (flutter_hash, flutter_src) = get_flutter_hash_and_src(flutter_version)
 
     nixpkgs_flutter_version_directory = f"{NIXPKGS_ROOT}/pkgs/development/compilers/flutter/versions/{flutter_compact_version}"
@@ -309,6 +349,7 @@ def main():
     common_data_args = {
         "nixpkgs_flutter_version_directory": nixpkgs_flutter_version_directory,
         "flutter_version": flutter_version,
+        "channel": channel,
         "dart_version": dart_version,
         "engine_hash": engine_hash,
         "flutter_hash": flutter_hash,
@@ -318,6 +359,7 @@ def main():
     write_data(
         pubspec_lock={},
         artifact_hashes={},
+        engine_hashes={},
         **common_data_args)
 
     pubspec_lock = get_pubspec_lock(flutter_compact_version, flutter_src)
@@ -325,6 +367,7 @@ def main():
     write_data(
         pubspec_lock=pubspec_lock,
         artifact_hashes={},
+        engine_hashes={},
         **common_data_args)
 
     artifact_hashes = get_artifact_hashes(flutter_compact_version)
@@ -332,6 +375,15 @@ def main():
     write_data(
         pubspec_lock=pubspec_lock,
         artifact_hashes=artifact_hashes,
+        engine_hashes={},
+        **common_data_args)
+
+    engine_hashes = get_engine_hashes(engine_hash)
+
+    write_data(
+        pubspec_lock=pubspec_lock,
+        artifact_hashes=artifact_hashes,
+        engine_hashes=engine_hashes,
         **common_data_args)
 
 
diff --git a/pkgs/development/compilers/flutter/versions/3_13/data.json b/pkgs/development/compilers/flutter/versions/3_13/data.json
index 7d8f285f0b211..eb707f74f7c26 100644
--- a/pkgs/development/compilers/flutter/versions/3_13/data.json
+++ b/pkgs/development/compilers/flutter/versions/3_13/data.json
@@ -1,6 +1,10 @@
 {
   "version": "3.13.8",
   "engineVersion": "767d8c75e898091b925519803830fc2721658d07",
+  "channel": "stable",
+  "engineHashes": {
+    "aarch64-linux": "sha256-1s7I+AWb2kNDzJ5k2XYm7rSK8yj1wqTjPUuS0f85Jig="
+  },
   "dartVersion": "3.1.4",
   "dartHash": {
     "x86_64-linux": "sha256-42wrqzjRcFDWw2aEY6+/faX+QE9PA8FmRWP4M/NkgBE=",
diff --git a/pkgs/development/compilers/flutter/versions/3_16/data.json b/pkgs/development/compilers/flutter/versions/3_16/data.json
index afc0225d49a7f..477328b4aa6b2 100644
--- a/pkgs/development/compilers/flutter/versions/3_16/data.json
+++ b/pkgs/development/compilers/flutter/versions/3_16/data.json
@@ -1,6 +1,10 @@
 {
   "version": "3.16.7",
   "engineVersion": "4a585b79294e830fa89c24924d58a27cc8fbf406",
+  "channel": "stable",
+  "engineHashes": {
+    "aarch64-linux": "sha256-xqniT1rYrzCuq6542KfqWRigYtLnmaT0z5Es/59iFMw="
+  },
   "dartVersion": "3.2.4",
   "dartHash": {
     "x86_64-linux": "sha256-qslf+wgmNz9r+e45o3Bg9/vDj75GkM9gQE2tb5rbIvw=",
diff --git a/pkgs/development/compilers/flutter/versions/3_19/data.json b/pkgs/development/compilers/flutter/versions/3_19/data.json
index 9eeddd3361ddf..c09d3e99a3cac 100644
--- a/pkgs/development/compilers/flutter/versions/3_19/data.json
+++ b/pkgs/development/compilers/flutter/versions/3_19/data.json
@@ -1,6 +1,12 @@
 {
   "version": "3.19.4",
   "engineVersion": "a5c24f538d05aaf66f7972fb23959d8cafb9f95a",
+  "channel": "stable",
+  "engineHashes": {
+    "x86_64-linux": "sha256-xhihh4v9bh2ZxAewKEdhpXerLDoXFm8YO72+tGRnkCw=",
+    "aarch64-linux": "sha256-mUimQRg0UqvTueuDWO8Isy0FKOxJLvVZrehv4SMj0XY=",
+    "aarch64-darwin": "sha256-5DcD7ebrANznB++QOQOoynr1aOgJqTF8QfSihQnghoY="
+  },
   "dartVersion": "3.3.2",
   "dartHash": {
     "x86_64-linux": "sha256-eO8qcSQNWGEz/5oVaJ5tjRMnGy2aq3PbcF15z/Pi3xQ=",
diff --git a/pkgs/development/compilers/flutter/versions/3_19/engine/patches/flutter-140969.patch b/pkgs/development/compilers/flutter/versions/3_19/engine/patches/flutter-140969.patch
new file mode 100644
index 0000000000000..bf5d9320a0a39
--- /dev/null
+++ b/pkgs/development/compilers/flutter/versions/3_19/engine/patches/flutter-140969.patch
@@ -0,0 +1,41 @@
+From dd74740ddceac81e748a7e7834c28135abc59454 Mon Sep 17 00:00:00 2001
+From: Brandon DeRosier <bdero@google.com>
+Date: Tue, 16 Jan 2024 11:00:34 -0800
+Subject: [PATCH] [Flutter GPU] Fix playground shader paths. (#49790)
+
+Resolves https://github.com/flutter/flutter/issues/140969.
+
+Makes the shader paths absolute to prevent issues caused by the working
+directory differing across build environments.
+---
+ impeller/fixtures/BUILD.gn  | 3 ++-
+ impeller/tools/impeller.gni | 2 +-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/impeller/fixtures/BUILD.gn b/impeller/fixtures/BUILD.gn
+index 9165f06542a2a..5ea90ab3969f3 100644
+--- a/impeller/fixtures/BUILD.gn
++++ b/impeller/fixtures/BUILD.gn
+@@ -131,7 +131,8 @@
+     "flutter_gpu_texture.vert",
+   ]
+   shader_target_flags = [ "--runtime-stage-metal" ]
+-  shader_bundle = "{\"UnlitFragment\": {\"type\": \"fragment\", \"file\": \"../../flutter/impeller/fixtures/flutter_gpu_unlit.frag\"}, \"UnlitVertex\": {\"type\": \"vertex\", \"file\": \"../../flutter/impeller/fixtures/flutter_gpu_unlit.vert\"}, \"TextureFragment\": {\"type\": \"fragment\", \"file\": \"../../flutter/impeller/fixtures/flutter_gpu_texture.frag\"}, \"TextureVertex\": {\"type\": \"vertex\", \"file\": \"../../flutter/impeller/fixtures/flutter_gpu_texture.vert\"}}"
++  fixtures = rebase_path("//flutter/impeller/fixtures")
++  shader_bundle = "{\"UnlitFragment\": {\"type\": \"fragment\", \"file\": \"${fixtures}/flutter_gpu_unlit.frag\"}, \"UnlitVertex\": {\"type\": \"vertex\", \"file\": \"${fixtures}/flutter_gpu_unlit.vert\"}, \"TextureFragment\": {\"type\": \"fragment\", \"file\": \"${fixtures}/flutter_gpu_texture.frag\"}, \"TextureVertex\": {\"type\": \"vertex\", \"file\": \"${fixtures}/flutter_gpu_texture.vert\"}}"
+   shader_bundle_output = "playground.shaderbundle"
+ }
+
+diff --git a/impeller/tools/impeller.gni b/impeller/tools/impeller.gni
+index 6541c3b12173b..2ab7ec0f0b07a 100644
+--- a/impeller/tools/impeller.gni
++++ b/impeller/tools/impeller.gni
+@@ -313,7 +313,7 @@
+   if (defined(invoker.shader_bundle)) {
+     assert(
+         defined(invoker.shader_bundle_output),
+-        "When shader_bundle is specified, shader_output_bundle must also be specified.")
++        "When shader_bundle is specified, shader_bundle_output must also be specified.")
+   }
+ 
+   sksl = false
diff --git a/pkgs/development/compilers/flutter/versions/3_22/data.json b/pkgs/development/compilers/flutter/versions/3_22/data.json
index 66bc68aaff668..968fde9d7b27c 100644
--- a/pkgs/development/compilers/flutter/versions/3_22/data.json
+++ b/pkgs/development/compilers/flutter/versions/3_22/data.json
@@ -1,20 +1,25 @@
 {
-  "version": "3.22.0",
-  "engineVersion": "f6344b75dcf861d8bf1f1322780b8811f982e31a",
-  "dartVersion": "3.4.0",
+  "version": "3.22.2",
+  "engineVersion": "edd8546116457bdf1c5bdfb13ecb9463d2bb5ed4",
+  "channel": "stable",
+  "engineHashes": {
+    "aarch64-linux": "sha256-xPVhLxO9AgXC2+Hwm1lWRfNZhLwZHdKW92WXgv3ImZk=",
+    "x86_64-linux": "sha256-klODJpmlWynYx+MqqGGeTzzPtmQTEUV47hnzjIVDCK8="
+  },
+  "dartVersion": "3.4.3",
   "dartHash": {
-    "x86_64-linux": "sha256-oDqmWPHx7EwP4EOopZ4/pAG4kuW+CUCq1T/bHDrw2Z8=",
-    "aarch64-linux": "sha256-FRhGusQMp2noDnV4iE8t06sayGMInYCj7VxfrQxoV7U=",
-    "x86_64-darwin": "sha256-dJe18+sfgHsE2CQf05vBkynXp4Pf2otoVM/Kf5m11rU=",
-    "aarch64-darwin": "sha256-HC7/m3zYY98TnqIreOHixwJBxXCpFIof03TZ80xblfs="
+    "x86_64-linux": "sha256-wDIdoWoKlutP8kixd12Lppzv2aYeiTJ1A1Sy6lguXgg=",
+    "aarch64-linux": "sha256-sJBsZBA71Sht8wdUbPVzPv3Zf+vDJXY9w0a7ZC8/aF8=",
+    "x86_64-darwin": "sha256-XWDZae1bMeQsIOdv7BiMNneBKt6Xhras/QXtPukGyKA=",
+    "aarch64-darwin": "sha256-4D1e5EmBoA5eDw50EIVNsMjhCP33fNemmUD8/1WvxOM="
   },
-  "flutterHash": "sha256-UcpprC40itt3nbvENJVytD8M1EYSjKMlpAWJ+GmN7Pg=",
+  "flutterHash": "sha256-7ndnIw72YxNB+VeeejEeRD+xxuLXOcWo322s5CMWzBM=",
   "artifactHashes": {
     "android": {
-      "aarch64-darwin": "sha256-kpcfApS/KcyV1XMGw1YSHBSjJxNfl2WT5JVCe6eMcs8=",
-      "aarch64-linux": "sha256-FL7AYU/fULoX8lvllbUGiG5+RroOwf6bolzsvLmLePA=",
-      "x86_64-darwin": "sha256-kpcfApS/KcyV1XMGw1YSHBSjJxNfl2WT5JVCe6eMcs8=",
-      "x86_64-linux": "sha256-FL7AYU/fULoX8lvllbUGiG5+RroOwf6bolzsvLmLePA="
+      "aarch64-darwin": "sha256-loGG9c6F0cnc5ue7cD6Tk8b79LGijd9YSfKWjlXk+TI=",
+      "aarch64-linux": "sha256-lIxH729tt0p+5LkLguf1lBk7YdinXngKPL05W6XdVDg=",
+      "x86_64-darwin": "sha256-loGG9c6F0cnc5ue7cD6Tk8b79LGijd9YSfKWjlXk+TI=",
+      "x86_64-linux": "sha256-lIxH729tt0p+5LkLguf1lBk7YdinXngKPL05W6XdVDg="
     },
     "fuchsia": {
       "aarch64-darwin": "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=",
@@ -23,38 +28,38 @@
       "x86_64-linux": "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk="
     },
     "ios": {
-      "aarch64-darwin": "sha256-tulW5ybnOCiIcUSLEXRlIgSmgZGA8NQHgFmLIpEvPUo=",
-      "aarch64-linux": "sha256-tulW5ybnOCiIcUSLEXRlIgSmgZGA8NQHgFmLIpEvPUo=",
-      "x86_64-darwin": "sha256-tulW5ybnOCiIcUSLEXRlIgSmgZGA8NQHgFmLIpEvPUo=",
-      "x86_64-linux": "sha256-tulW5ybnOCiIcUSLEXRlIgSmgZGA8NQHgFmLIpEvPUo="
+      "aarch64-darwin": "sha256-d/1d8/Md2tzf/Mu4d3RKHl5Jd8u5HzZSGfBKomt1mlo=",
+      "aarch64-linux": "sha256-d/1d8/Md2tzf/Mu4d3RKHl5Jd8u5HzZSGfBKomt1mlo=",
+      "x86_64-darwin": "sha256-d/1d8/Md2tzf/Mu4d3RKHl5Jd8u5HzZSGfBKomt1mlo=",
+      "x86_64-linux": "sha256-d/1d8/Md2tzf/Mu4d3RKHl5Jd8u5HzZSGfBKomt1mlo="
     },
     "linux": {
-      "aarch64-darwin": "sha256-eOBMqZkUTeFOfQHtrnx5KlERY2RLtqwDi9WOv0xcmVk=",
-      "aarch64-linux": "sha256-eOBMqZkUTeFOfQHtrnx5KlERY2RLtqwDi9WOv0xcmVk=",
-      "x86_64-darwin": "sha256-r6trOed2FniMMGLqoqiDKeaPUyAY9o2H63Oh4fPlW/c=",
-      "x86_64-linux": "sha256-r6trOed2FniMMGLqoqiDKeaPUyAY9o2H63Oh4fPlW/c="
+      "aarch64-darwin": "sha256-UYb2OOB0riL+Qrhpke0vYpo0U4buKYcbJRgYSpugJQc=",
+      "aarch64-linux": "sha256-UYb2OOB0riL+Qrhpke0vYpo0U4buKYcbJRgYSpugJQc=",
+      "x86_64-darwin": "sha256-ytfyeJeDnAGDsg98POe3fKAxpq8lNVYlV1wY6p2pkbU=",
+      "x86_64-linux": "sha256-ytfyeJeDnAGDsg98POe3fKAxpq8lNVYlV1wY6p2pkbU="
     },
     "macos": {
-      "aarch64-darwin": "sha256-TRwbutJABHyPUxNb2CBijc3sd3RTtnE/CgasVhKNj3g=",
-      "aarch64-linux": "sha256-TRwbutJABHyPUxNb2CBijc3sd3RTtnE/CgasVhKNj3g=",
-      "x86_64-darwin": "sha256-TRwbutJABHyPUxNb2CBijc3sd3RTtnE/CgasVhKNj3g=",
-      "x86_64-linux": "sha256-TRwbutJABHyPUxNb2CBijc3sd3RTtnE/CgasVhKNj3g="
+      "aarch64-darwin": "sha256-0XEdCeY1KTmtLz/cgZLSfDbjucXk0FpwVIDZuEPqngk=",
+      "aarch64-linux": "sha256-0XEdCeY1KTmtLz/cgZLSfDbjucXk0FpwVIDZuEPqngk=",
+      "x86_64-darwin": "sha256-0XEdCeY1KTmtLz/cgZLSfDbjucXk0FpwVIDZuEPqngk=",
+      "x86_64-linux": "sha256-0XEdCeY1KTmtLz/cgZLSfDbjucXk0FpwVIDZuEPqngk="
     },
     "universal": {
-      "aarch64-darwin": "sha256-05p8hCOMaZlrtsBp+t2Iw0DGLeGiD23NhB42LnoEFrs=",
-      "aarch64-linux": "sha256-y4NwCN+W0EjEpEwuU4u2Yg2hJB4GAdLv95nXUGZ1nWo=",
-      "x86_64-darwin": "sha256-l1M9+ODVGdBfJyt9Ew01vKRE/n2CjimwvcBohOAq/ns=",
-      "x86_64-linux": "sha256-SXCT9jDqFwES6wA8VyGzILbHFlDuslQ+ByOFZgRapVs="
+      "aarch64-darwin": "sha256-TLDwggTgVTe0+v5lCutysF4ygKPiA1b48ImyNDyl7oA=",
+      "aarch64-linux": "sha256-rTAX+i+OhyKIevwSFgoWRHw8bHuQCC0Lx/YVlbpwL6c=",
+      "x86_64-darwin": "sha256-1NztXAPG6HWjk7++TLkq791f5t3Va/wP0I2j3ddmURI=",
+      "x86_64-linux": "sha256-qWZQdDB+yd7i/Cx15K7KQmzbgzxWDeOwcsHkNeDwRqw="
     },
     "web": {
-      "aarch64-darwin": "sha256-urzQGJADfBUgYfo0i1WqMMsz75jZPrs1hn9ZMsEK9u0=",
-      "aarch64-linux": "sha256-urzQGJADfBUgYfo0i1WqMMsz75jZPrs1hn9ZMsEK9u0=",
-      "x86_64-darwin": "sha256-urzQGJADfBUgYfo0i1WqMMsz75jZPrs1hn9ZMsEK9u0=",
-      "x86_64-linux": "sha256-urzQGJADfBUgYfo0i1WqMMsz75jZPrs1hn9ZMsEK9u0="
+      "aarch64-darwin": "sha256-IFg4+IOJbb2Zi4axzL9FezCzp3kLr2gHmEWUupBmxlg=",
+      "aarch64-linux": "sha256-IFg4+IOJbb2Zi4axzL9FezCzp3kLr2gHmEWUupBmxlg=",
+      "x86_64-darwin": "sha256-IFg4+IOJbb2Zi4axzL9FezCzp3kLr2gHmEWUupBmxlg=",
+      "x86_64-linux": "sha256-IFg4+IOJbb2Zi4axzL9FezCzp3kLr2gHmEWUupBmxlg="
     },
     "windows": {
-      "x86_64-darwin": "sha256-vIFhEB7bMewDEu90rTVp/rrHtpijc5iKWCmnlKm52sA=",
-      "x86_64-linux": "sha256-vIFhEB7bMewDEu90rTVp/rrHtpijc5iKWCmnlKm52sA="
+      "x86_64-darwin": "sha256-gTnkbp6cJHiW9nFYIfnHYJ+vMG1nGV5nZLY0LgFQPtg=",
+      "x86_64-linux": "sha256-gTnkbp6cJHiW9nFYIfnHYJ+vMG1nGV5nZLY0LgFQPtg="
     }
   },
   "pubspecLock": {
diff --git a/pkgs/development/compilers/flutter/versions/3_23/data.json b/pkgs/development/compilers/flutter/versions/3_23/data.json
new file mode 100644
index 0000000000000..3c3fedbdecaeb
--- /dev/null
+++ b/pkgs/development/compilers/flutter/versions/3_23/data.json
@@ -0,0 +1,1027 @@
+{
+  "version": "3.23.0-0.1.pre",
+  "engineVersion": "bb10c5466638e963479ba5e64e601e42d1a43447",
+  "channel": "beta",
+  "engineHashes": {
+    "aarch64-linux": "sha256-WHWxYOHd3jxE5CQNt0+9qxlsCLK5y9iJsVERtJ4Ylbk="
+  },
+  "dartVersion": "3.5.0-180.3.beta",
+  "dartHash": {
+    "x86_64-linux": "sha256-DXGyUTu9I602lLnDz9BKLfHEAeaMKtbZjxgmPPSTEv0=",
+    "aarch64-linux": "sha256-WFTHw5V6zWrpF7bx5wOQNOMJe+yn1j4rnfRSkW7hN9c=",
+    "x86_64-darwin": "sha256-nUFd3jMj1Totc2WPSToLvtSVNjmhKKWEXwzSKo1yT1w=",
+    "aarch64-darwin": "sha256-O5HYmZVveYGktks7we4uht9ZyaWJli5dSC22lrVqi58="
+  },
+  "flutterHash": "sha256-OFDPPoLvKG+H4Jylc6/NvvEe5g5I/lo4ViYNIUrgQXw=",
+  "artifactHashes": {
+    "android": {
+      "aarch64-darwin": "sha256-UWZ6/XGOoTjfoENRs2f6ZbTcke76ieme4MnTqKVKYXo=",
+      "aarch64-linux": "sha256-orYFnnwdiN0jKTff34moVkBmAc2TWNz053mp0IVehmk=",
+      "x86_64-darwin": "sha256-UWZ6/XGOoTjfoENRs2f6ZbTcke76ieme4MnTqKVKYXo=",
+      "x86_64-linux": "sha256-orYFnnwdiN0jKTff34moVkBmAc2TWNz053mp0IVehmk="
+    },
+    "fuchsia": {
+      "aarch64-darwin": "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=",
+      "aarch64-linux": "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=",
+      "x86_64-darwin": "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=",
+      "x86_64-linux": "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk="
+    },
+    "ios": {
+      "aarch64-darwin": "sha256-lAo3yua8IbGiaVLt0JqDtehKROnibx60HtaBLupvILI=",
+      "aarch64-linux": "sha256-lAo3yua8IbGiaVLt0JqDtehKROnibx60HtaBLupvILI=",
+      "x86_64-darwin": "sha256-lAo3yua8IbGiaVLt0JqDtehKROnibx60HtaBLupvILI=",
+      "x86_64-linux": "sha256-lAo3yua8IbGiaVLt0JqDtehKROnibx60HtaBLupvILI="
+    },
+    "linux": {
+      "aarch64-darwin": "sha256-2d3gPOT2kBgHeTXOFOdEOAHkbv7ctXx51rtX497FEmU=",
+      "aarch64-linux": "sha256-2d3gPOT2kBgHeTXOFOdEOAHkbv7ctXx51rtX497FEmU=",
+      "x86_64-darwin": "sha256-LcEITSWg5VdUs9nXRu+mPGxxWqAuRRSbt9RCDeBa+74=",
+      "x86_64-linux": "sha256-LcEITSWg5VdUs9nXRu+mPGxxWqAuRRSbt9RCDeBa+74="
+    },
+    "macos": {
+      "aarch64-darwin": "sha256-b6ETaOTHSU58yLsMorKKhOOA7DkD+RtQ3DIqAJhSDjs=",
+      "aarch64-linux": "sha256-b6ETaOTHSU58yLsMorKKhOOA7DkD+RtQ3DIqAJhSDjs=",
+      "x86_64-darwin": "sha256-b6ETaOTHSU58yLsMorKKhOOA7DkD+RtQ3DIqAJhSDjs=",
+      "x86_64-linux": "sha256-b6ETaOTHSU58yLsMorKKhOOA7DkD+RtQ3DIqAJhSDjs="
+    },
+    "universal": {
+      "aarch64-darwin": "sha256-umn+onoRSmfuoL+ls/68xhCo34mgD1xMdMjUstmMC74=",
+      "aarch64-linux": "sha256-IKGrSAweOTwgesVt2PjUvYeTkpeSDRqXTeZWwd6ikvk=",
+      "x86_64-darwin": "sha256-C7/NtLOpFwyvUMBk7imz0Ovj/AjJ7vf2v6Sd2PZujiA=",
+      "x86_64-linux": "sha256-3W/S7/K30xJC6mA9S2n1rgD7lhUvz2ZDSKq7k/uRi2A="
+    },
+    "web": {
+      "aarch64-darwin": "sha256-dyT9Cj33MmZdOhQwVuqkrxYjWeZxMXE35BKkRHjSKtQ=",
+      "aarch64-linux": "sha256-dyT9Cj33MmZdOhQwVuqkrxYjWeZxMXE35BKkRHjSKtQ=",
+      "x86_64-darwin": "sha256-dyT9Cj33MmZdOhQwVuqkrxYjWeZxMXE35BKkRHjSKtQ=",
+      "x86_64-linux": "sha256-dyT9Cj33MmZdOhQwVuqkrxYjWeZxMXE35BKkRHjSKtQ="
+    },
+    "windows": {
+      "x86_64-darwin": "sha256-0V63HjDy3mqNmGKM/5VVSibg8k7JtSaJ5RXXgk1XltQ=",
+      "x86_64-linux": "sha256-0V63HjDy3mqNmGKM/5VVSibg8k7JtSaJ5RXXgk1XltQ="
+    }
+  },
+  "pubspecLock": {
+    "packages": {
+      "_fe_analyzer_shared": {
+        "dependency": "direct main",
+        "description": {
+          "name": "_fe_analyzer_shared",
+          "sha256": "5aaf60d96c4cd00fe7f21594b5ad6a1b699c80a27420f8a837f4d68473ef09e3",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "68.0.0"
+      },
+      "_macros": {
+        "dependency": "transitive",
+        "description": "dart",
+        "source": "sdk",
+        "version": "0.1.5"
+      },
+      "analyzer": {
+        "dependency": "direct main",
+        "description": {
+          "name": "analyzer",
+          "sha256": "21f1d3720fd1c70316399d5e2bccaebb415c434592d778cce8acb967b8578808",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "6.5.0"
+      },
+      "archive": {
+        "dependency": "direct main",
+        "description": {
+          "name": "archive",
+          "sha256": "80e5141fafcb3361653ce308776cfd7d45e6e9fbb429e14eec571382c0c5fecb",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.3.2"
+      },
+      "args": {
+        "dependency": "direct main",
+        "description": {
+          "name": "args",
+          "sha256": "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.5.0"
+      },
+      "async": {
+        "dependency": "direct main",
+        "description": {
+          "name": "async",
+          "sha256": "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.11.0"
+      },
+      "boolean_selector": {
+        "dependency": "direct main",
+        "description": {
+          "name": "boolean_selector",
+          "sha256": "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.1.1"
+      },
+      "browser_launcher": {
+        "dependency": "direct main",
+        "description": {
+          "name": "browser_launcher",
+          "sha256": "6ee4c6b1f68a42e769ef6e663c4f56708522f7bce9d2ab6e308a37b612ffa4ec",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.1.1"
+      },
+      "built_collection": {
+        "dependency": "direct main",
+        "description": {
+          "name": "built_collection",
+          "sha256": "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "5.1.1"
+      },
+      "built_value": {
+        "dependency": "direct main",
+        "description": {
+          "name": "built_value",
+          "sha256": "c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "8.9.2"
+      },
+      "checked_yaml": {
+        "dependency": "direct dev",
+        "description": {
+          "name": "checked_yaml",
+          "sha256": "feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.0.3"
+      },
+      "cli_config": {
+        "dependency": "direct main",
+        "description": {
+          "name": "cli_config",
+          "sha256": "ac20a183a07002b700f0c25e61b7ee46b23c309d76ab7b7640a028f18e4d99ec",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.2.0"
+      },
+      "clock": {
+        "dependency": "direct main",
+        "description": {
+          "name": "clock",
+          "sha256": "cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.1.1"
+      },
+      "collection": {
+        "dependency": "direct dev",
+        "description": {
+          "name": "collection",
+          "sha256": "ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.18.0"
+      },
+      "completion": {
+        "dependency": "direct main",
+        "description": {
+          "name": "completion",
+          "sha256": "f11b7a628e6c42b9edc9b0bc3aa490e2d930397546d2f794e8e1325909d11c60",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.0.1"
+      },
+      "convert": {
+        "dependency": "direct main",
+        "description": {
+          "name": "convert",
+          "sha256": "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.1.1"
+      },
+      "coverage": {
+        "dependency": "direct main",
+        "description": {
+          "name": "coverage",
+          "sha256": "3945034e86ea203af7a056d98e98e42a5518fff200d6e8e6647e1886b07e936e",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.8.0"
+      },
+      "crypto": {
+        "dependency": "direct main",
+        "description": {
+          "name": "crypto",
+          "sha256": "ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.0.3"
+      },
+      "csslib": {
+        "dependency": "direct main",
+        "description": {
+          "name": "csslib",
+          "sha256": "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.0.0"
+      },
+      "dap": {
+        "dependency": "direct main",
+        "description": {
+          "name": "dap",
+          "sha256": "fb7c8a64857d90bedf5c51954b83bee9304b607bcb8a03a89ec37afbf2d683a7",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.2.0"
+      },
+      "dds": {
+        "dependency": "direct main",
+        "description": {
+          "name": "dds",
+          "sha256": "cf3868c2223864529d6e5aa0c07ce9ba0016b9d0e8cb67480c0eb810a42f56bd",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "4.2.1"
+      },
+      "dds_service_extensions": {
+        "dependency": "direct main",
+        "description": {
+          "name": "dds_service_extensions",
+          "sha256": "390ae1d0128bb43ffe11f8e3c6cd3a481c1920492d1026883d379cee50bdf1a2",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.0.0"
+      },
+      "devtools_shared": {
+        "dependency": "direct main",
+        "description": {
+          "name": "devtools_shared",
+          "sha256": "fbe1657c88dd476a70116e33b0d19f8a23b35fd6db93eab9f01fa32cc21a0c49",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "10.0.0-dev.1"
+      },
+      "dtd": {
+        "dependency": "direct main",
+        "description": {
+          "name": "dtd",
+          "sha256": "58ac5c2d628e575dbcdfda44a698cd4c1212663e27fe5f8ced37aea85faa0d30",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.2.0"
+      },
+      "dwds": {
+        "dependency": "direct main",
+        "description": {
+          "name": "dwds",
+          "sha256": "61ebaabb04d779d040b47d3b4d0b3963449ced0920fb8efd81ca6d5e51ccfc1a",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "24.0.0"
+      },
+      "extension_discovery": {
+        "dependency": "direct main",
+        "description": {
+          "name": "extension_discovery",
+          "sha256": "20735622d0763865f9d94c3ecdce4441174530870760253e9d364fb4f3da8688",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.0.0"
+      },
+      "fake_async": {
+        "dependency": "direct main",
+        "description": {
+          "name": "fake_async",
+          "sha256": "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.3.1"
+      },
+      "ffi": {
+        "dependency": "direct main",
+        "description": {
+          "name": "ffi",
+          "sha256": "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.1.2"
+      },
+      "file": {
+        "dependency": "direct main",
+        "description": {
+          "name": "file",
+          "sha256": "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "7.0.0"
+      },
+      "file_testing": {
+        "dependency": "direct dev",
+        "description": {
+          "name": "file_testing",
+          "sha256": "0aaadb4025bd350403f4308ad6c4cea953278d9407814b8342558e4946840fb5",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.0.0"
+      },
+      "fixnum": {
+        "dependency": "direct main",
+        "description": {
+          "name": "fixnum",
+          "sha256": "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.1.0"
+      },
+      "flutter_template_images": {
+        "dependency": "direct main",
+        "description": {
+          "name": "flutter_template_images",
+          "sha256": "fd3e55af73c577b9e3f88d4080d3e366cb5c8ef3fbd50b94dfeca56bb0235df6",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "4.2.0"
+      },
+      "frontend_server_client": {
+        "dependency": "direct main",
+        "description": {
+          "name": "frontend_server_client",
+          "sha256": "f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "4.0.0"
+      },
+      "glob": {
+        "dependency": "direct main",
+        "description": {
+          "name": "glob",
+          "sha256": "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.1.2"
+      },
+      "graphs": {
+        "dependency": "direct main",
+        "description": {
+          "name": "graphs",
+          "sha256": "aedc5a15e78fc65a6e23bcd927f24c64dd995062bcd1ca6eda65a3cff92a4d19",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.3.1"
+      },
+      "html": {
+        "dependency": "direct main",
+        "description": {
+          "name": "html",
+          "sha256": "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.15.4"
+      },
+      "http": {
+        "dependency": "direct main",
+        "description": {
+          "name": "http",
+          "sha256": "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.13.6"
+      },
+      "http_multi_server": {
+        "dependency": "direct main",
+        "description": {
+          "name": "http_multi_server",
+          "sha256": "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.2.1"
+      },
+      "http_parser": {
+        "dependency": "direct main",
+        "description": {
+          "name": "http_parser",
+          "sha256": "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "4.0.2"
+      },
+      "intl": {
+        "dependency": "direct main",
+        "description": {
+          "name": "intl",
+          "sha256": "d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.19.0"
+      },
+      "io": {
+        "dependency": "direct main",
+        "description": {
+          "name": "io",
+          "sha256": "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.0.4"
+      },
+      "js": {
+        "dependency": "direct dev",
+        "description": {
+          "name": "js",
+          "sha256": "c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.7.1"
+      },
+      "json_annotation": {
+        "dependency": "direct dev",
+        "description": {
+          "name": "json_annotation",
+          "sha256": "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "4.9.0"
+      },
+      "json_rpc_2": {
+        "dependency": "direct main",
+        "description": {
+          "name": "json_rpc_2",
+          "sha256": "5e469bffa23899edacb7b22787780068d650b106a21c76db3c49218ab7ca447e",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.0.2"
+      },
+      "logging": {
+        "dependency": "direct main",
+        "description": {
+          "name": "logging",
+          "sha256": "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.2.0"
+      },
+      "macros": {
+        "dependency": "transitive",
+        "description": {
+          "name": "macros",
+          "sha256": "a8403c89b36483b4cbf9f1fcd24562f483cb34a5c9bf101cf2b0d8a083cf1239",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.1.0-main.5"
+      },
+      "matcher": {
+        "dependency": "direct main",
+        "description": {
+          "name": "matcher",
+          "sha256": "d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.12.16+1"
+      },
+      "meta": {
+        "dependency": "direct main",
+        "description": {
+          "name": "meta",
+          "sha256": "25dfcaf170a0190f47ca6355bdd4552cb8924b430512ff0cafb8db9bd41fe33b",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.14.0"
+      },
+      "mime": {
+        "dependency": "direct main",
+        "description": {
+          "name": "mime",
+          "sha256": "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.0.5"
+      },
+      "multicast_dns": {
+        "dependency": "direct main",
+        "description": {
+          "name": "multicast_dns",
+          "sha256": "316cc47a958d4bd3c67bd238fe8b44fdfb6133bad89cb191c0c3bd3edb14e296",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.3.2+6"
+      },
+      "mustache_template": {
+        "dependency": "direct main",
+        "description": {
+          "name": "mustache_template",
+          "sha256": "a46e26f91445bfb0b60519be280555b06792460b27b19e2b19ad5b9740df5d1c",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.0.0"
+      },
+      "native_assets_builder": {
+        "dependency": "direct main",
+        "description": {
+          "name": "native_assets_builder",
+          "sha256": "e6612ad01cbc3c4d1b00a1a42aa25aa567950ab10ae1f95721574923540f3bd8",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.7.0"
+      },
+      "native_assets_cli": {
+        "dependency": "direct main",
+        "description": {
+          "name": "native_assets_cli",
+          "sha256": "f54ddc4a3f8cff1d8d63723b4938902da7586a5a47fe3c1bfa226eb80223f32e",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.6.0"
+      },
+      "native_stack_traces": {
+        "dependency": "direct main",
+        "description": {
+          "name": "native_stack_traces",
+          "sha256": "64d2f4bcf3b69326fb9bc91b4dd3a06f94bb5bbc3a65e25ae6467ace0b34bfd3",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.5.7"
+      },
+      "node_preamble": {
+        "dependency": "direct dev",
+        "description": {
+          "name": "node_preamble",
+          "sha256": "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.0.2"
+      },
+      "package_config": {
+        "dependency": "direct main",
+        "description": {
+          "name": "package_config",
+          "sha256": "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.1.0"
+      },
+      "path": {
+        "dependency": "direct main",
+        "description": {
+          "name": "path",
+          "sha256": "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.9.0"
+      },
+      "petitparser": {
+        "dependency": "direct main",
+        "description": {
+          "name": "petitparser",
+          "sha256": "c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "6.0.2"
+      },
+      "platform": {
+        "dependency": "direct main",
+        "description": {
+          "name": "platform",
+          "sha256": "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.1.4"
+      },
+      "pool": {
+        "dependency": "direct main",
+        "description": {
+          "name": "pool",
+          "sha256": "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.5.1"
+      },
+      "process": {
+        "dependency": "direct main",
+        "description": {
+          "name": "process",
+          "sha256": "21e54fd2faf1b5bdd5102afd25012184a6793927648ea81eea80552ac9405b32",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "5.0.2"
+      },
+      "pub_semver": {
+        "dependency": "direct main",
+        "description": {
+          "name": "pub_semver",
+          "sha256": "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.1.4"
+      },
+      "pubspec_parse": {
+        "dependency": "direct dev",
+        "description": {
+          "name": "pubspec_parse",
+          "sha256": "c63b2876e58e194e4b0828fcb080ad0e06d051cb607a6be51a9e084f47cb9367",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.2.3"
+      },
+      "shelf": {
+        "dependency": "direct main",
+        "description": {
+          "name": "shelf",
+          "sha256": "ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.4.1"
+      },
+      "shelf_packages_handler": {
+        "dependency": "direct main",
+        "description": {
+          "name": "shelf_packages_handler",
+          "sha256": "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.0.2"
+      },
+      "shelf_proxy": {
+        "dependency": "direct main",
+        "description": {
+          "name": "shelf_proxy",
+          "sha256": "a71d2307f4393211930c590c3d2c00630f6c5a7a77edc1ef6436dfd85a6a7ee3",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.0.4"
+      },
+      "shelf_static": {
+        "dependency": "direct main",
+        "description": {
+          "name": "shelf_static",
+          "sha256": "a41d3f53c4adf0f57480578c1d61d90342cd617de7fc8077b1304643c2d85c1e",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.1.2"
+      },
+      "shelf_web_socket": {
+        "dependency": "direct main",
+        "description": {
+          "name": "shelf_web_socket",
+          "sha256": "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.0.4"
+      },
+      "source_map_stack_trace": {
+        "dependency": "direct main",
+        "description": {
+          "name": "source_map_stack_trace",
+          "sha256": "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.1.1"
+      },
+      "source_maps": {
+        "dependency": "direct main",
+        "description": {
+          "name": "source_maps",
+          "sha256": "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.10.12"
+      },
+      "source_span": {
+        "dependency": "direct main",
+        "description": {
+          "name": "source_span",
+          "sha256": "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.10.0"
+      },
+      "sse": {
+        "dependency": "direct main",
+        "description": {
+          "name": "sse",
+          "sha256": "fdce3a4ac3ae1c01083d05ded0bcdb7e02857ca2323823548e9e76d2f61638f0",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "4.1.5"
+      },
+      "stack_trace": {
+        "dependency": "direct main",
+        "description": {
+          "name": "stack_trace",
+          "sha256": "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.11.1"
+      },
+      "standard_message_codec": {
+        "dependency": "direct main",
+        "description": {
+          "name": "standard_message_codec",
+          "sha256": "fc7dd712d191b7e33196a0ecf354c4573492bb95995e7166cb6f73b047f9cae0",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.0.1+4"
+      },
+      "stream_channel": {
+        "dependency": "direct main",
+        "description": {
+          "name": "stream_channel",
+          "sha256": "ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.1.2"
+      },
+      "string_scanner": {
+        "dependency": "direct main",
+        "description": {
+          "name": "string_scanner",
+          "sha256": "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.2.0"
+      },
+      "sync_http": {
+        "dependency": "direct main",
+        "description": {
+          "name": "sync_http",
+          "sha256": "7f0cd72eca000d2e026bcd6f990b81d0ca06022ef4e32fb257b30d3d1014a961",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.3.1"
+      },
+      "term_glyph": {
+        "dependency": "direct main",
+        "description": {
+          "name": "term_glyph",
+          "sha256": "a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.2.1"
+      },
+      "test": {
+        "dependency": "direct dev",
+        "description": {
+          "name": "test",
+          "sha256": "d11b55850c68c1f6c0cf00eabded4e66c4043feaf6c0d7ce4a36785137df6331",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.25.5"
+      },
+      "test_api": {
+        "dependency": "direct main",
+        "description": {
+          "name": "test_api",
+          "sha256": "2419f20b0c8677b2d67c8ac4d1ac7372d862dc6c460cdbb052b40155408cd794",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.7.1"
+      },
+      "test_core": {
+        "dependency": "direct main",
+        "description": {
+          "name": "test_core",
+          "sha256": "4d070a6bc36c1c4e89f20d353bfd71dc30cdf2bd0e14349090af360a029ab292",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.6.2"
+      },
+      "typed_data": {
+        "dependency": "direct main",
+        "description": {
+          "name": "typed_data",
+          "sha256": "facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.3.2"
+      },
+      "unified_analytics": {
+        "dependency": "direct main",
+        "description": {
+          "name": "unified_analytics",
+          "sha256": "0271998bc95be272accda218841af6dfc7bb4ef666f6c21dd73d6807c2dfff0e",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "6.1.0"
+      },
+      "usage": {
+        "dependency": "direct main",
+        "description": {
+          "name": "usage",
+          "sha256": "0bdbde65a6e710343d02a56552eeaefd20b735e04bfb6b3ee025b6b22e8d0e15",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "4.1.1"
+      },
+      "uuid": {
+        "dependency": "direct main",
+        "description": {
+          "name": "uuid",
+          "sha256": "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.0.7"
+      },
+      "vm_service": {
+        "dependency": "direct main",
+        "description": {
+          "name": "vm_service",
+          "sha256": "7475cb4dd713d57b6f7464c0e13f06da0d535d8b2067e188962a59bac2cf280b",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "14.2.2"
+      },
+      "vm_service_interface": {
+        "dependency": "direct main",
+        "description": {
+          "name": "vm_service_interface",
+          "sha256": "f827453d9a3f8ceae04e389810da26f9b67636bdd13aa2dd9405b110c4daf59c",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.1.0"
+      },
+      "vm_snapshot_analysis": {
+        "dependency": "direct main",
+        "description": {
+          "name": "vm_snapshot_analysis",
+          "sha256": "5a79b9fbb6be2555090f55b03b23907e75d44c3fd7bdd88da09848aa5a1914c8",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.7.6"
+      },
+      "watcher": {
+        "dependency": "direct main",
+        "description": {
+          "name": "watcher",
+          "sha256": "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.1.0"
+      },
+      "web": {
+        "dependency": "direct main",
+        "description": {
+          "name": "web",
+          "sha256": "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.5.1"
+      },
+      "web_socket_channel": {
+        "dependency": "direct main",
+        "description": {
+          "name": "web_socket_channel",
+          "sha256": "58c6666b342a38816b2e7e50ed0f1e261959630becd4c879c4f26bfa14aa5a42",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.4.5"
+      },
+      "webdriver": {
+        "dependency": "direct main",
+        "description": {
+          "name": "webdriver",
+          "sha256": "003d7da9519e1e5f329422b36c4dcdf18d7d2978d1ba099ea4e45ba490ed845e",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.0.3"
+      },
+      "webkit_inspection_protocol": {
+        "dependency": "direct main",
+        "description": {
+          "name": "webkit_inspection_protocol",
+          "sha256": "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.2.1"
+      },
+      "xml": {
+        "dependency": "direct main",
+        "description": {
+          "name": "xml",
+          "sha256": "b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "6.5.0"
+      },
+      "yaml": {
+        "dependency": "direct main",
+        "description": {
+          "name": "yaml",
+          "sha256": "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.1.2"
+      },
+      "yaml_edit": {
+        "dependency": "direct main",
+        "description": {
+          "name": "yaml_edit",
+          "sha256": "e9c1a3543d2da0db3e90270dbb1e4eebc985ee5e3ffe468d83224472b2194a5f",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.2.1"
+      }
+    },
+    "sdks": {
+      "dart": ">=3.4.0-282.1.beta <4.0.0"
+    }
+  }
+}
diff --git a/pkgs/development/compilers/flutter/wrapper.nix b/pkgs/development/compilers/flutter/wrapper.nix
index f5b8b2e2059da..4b20cf7f43f06 100644
--- a/pkgs/development/compilers/flutter/wrapper.nix
+++ b/pkgs/development/compilers/flutter/wrapper.nix
@@ -145,7 +145,10 @@ in
     mkdir -p $out/bin
     makeWrapper '${immutableFlutter}' $out/bin/flutter \
       --set-default ANDROID_EMULATOR_USE_SYSTEM_LIBS 1 \
-      --suffix PATH : '${lib.makeBinPath (tools ++ buildTools)}' \
+      '' + lib.optionalString (flutter ? engine && flutter.engine.meta.available) ''
+        --set-default FLUTTER_ENGINE "${flutter.engine}" \
+        --add-flags "--local-engine-host host_${flutter.engine.runtimeMode}${lib.optionalString (!flutter.engine.isOptimized) "_unopt"}" \
+      '' + '' --suffix PATH : '${lib.makeBinPath (tools ++ buildTools)}' \
       --suffix PKG_CONFIG_PATH : "$FLUTTER_PKG_CONFIG_PATH" \
       --suffix LIBRARY_PATH : '${lib.makeLibraryPath appStaticBuildDeps}' \
       --prefix CXXFLAGS "''\t" '${builtins.concatStringsSep " " (includeFlags ++ extraCxxFlags)}' \
diff --git a/pkgs/development/compilers/flux/default.nix b/pkgs/development/compilers/flux/default.nix
index bb3c0da52c61c..6b5620774d3b8 100644
--- a/pkgs/development/compilers/flux/default.nix
+++ b/pkgs/development/compilers/flux/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook pkg-config ];
 
   meta = with lib; {
-    description = "An interface description language used by DirectFB";
+    description = "Interface description language used by DirectFB";
     mainProgram = "fluxcomp";
     homepage = "https://github.com/deniskropp/flux";
     license = licenses.mit;
diff --git a/pkgs/development/compilers/fsharp/default.nix b/pkgs/development/compilers/fsharp/default.nix
index 0d731e38d8392..d141c6f5d4c5b 100644
--- a/pkgs/development/compilers/fsharp/default.nix
+++ b/pkgs/development/compilers/fsharp/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   dontStrip = true;
 
   meta = {
-    description = "A functional CLI language";
+    description = "Functional CLI language";
     homepage = "https://fsharp.org/";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ thoughtpolice raskin ];
diff --git a/pkgs/development/compilers/gbforth/default.nix b/pkgs/development/compilers/gbforth/default.nix
index 882a25cdae075..22c559a97350a 100644
--- a/pkgs/development/compilers/gbforth/default.nix
+++ b/pkgs/development/compilers/gbforth/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://gbforth.org/";
-    description = "A Forth-based Game Boy development kit";
+    description = "Forth-based Game Boy development kit";
     mainProgram = "gbforth";
     longDescription = ''
       A Forth-based Game Boy development kit.
diff --git a/pkgs/development/compilers/gcc/common/platform-flags.nix b/pkgs/development/compilers/gcc/common/platform-flags.nix
index cc6a67d640578..9bcdb3070d6b9 100644
--- a/pkgs/development/compilers/gcc/common/platform-flags.nix
+++ b/pkgs/development/compilers/gcc/common/platform-flags.nix
@@ -8,8 +8,9 @@ let
 in lib.concatLists [
   # --with-arch= is unknown flag on x86_64 and aarch64-darwin.
   (lib.optional (!targetPlatform.isx86_64 && !isAarch64Darwin && p ? arch) "--with-arch=${p.arch}")
+  # See supported_defaults in gcc/config.gcc for architecture support.
   # --with-cpu on aarch64-darwin fails with "Unknown cpu used in --with-cpu=apple-a13".
-  (lib.optional (!isAarch64Darwin && p ? cpu) "--with-cpu=${p.cpu}")
+  (lib.optional (with targetPlatform; !isLoongArch64 && !isMips && !isRiscV && !isS390 && !isAarch64Darwin && p ? cpu) "--with-cpu=${p.cpu}")
   (lib.optional (p ? abi) "--with-abi=${p.abi}")
   (lib.optional (p ? fpu) "--with-fpu=${p.fpu}")
   (lib.optional (p ? float) "--with-float=${p.float}")
diff --git a/pkgs/development/compilers/gcc/patches/13/ICE-PR110280.patch b/pkgs/development/compilers/gcc/patches/13/ICE-PR110280.patch
deleted file mode 100644
index 7338b3dd1ede3..0000000000000
--- a/pkgs/development/compilers/gcc/patches/13/ICE-PR110280.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From f4029de35fb1b293a4fd586574b1b4b73ddf7880 Mon Sep 17 00:00:00 2001
-From: Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
-Date: Wed, 26 Jul 2023 22:36:26 +0530
-Subject: [PATCH] [aarch64/match.pd] Fix ICE observed in PR110280.
-
-gcc/ChangeLog:
-	PR tree-optimization/110280
-	* match.pd (vec_perm_expr(v, v, mask) -> v): Explicitly build vector
-	using build_vector_from_val with the element of input operand, and
-	mask's type if operand and mask's types don't match.
-
-gcc/testsuite/ChangeLog:
-	PR tree-optimization/110280
-	* gcc.target/aarch64/sve/pr110280.c: New test.
-
-(cherry picked from commit 85d8e0d8d5342ec8b4e6a54e22741c30b33c6f04)
----
- gcc/match.pd                                    |  9 ++++++++-
- gcc/testsuite/gcc.target/aarch64/sve/pr110280.c | 12 ++++++++++++
- 2 files changed, 20 insertions(+), 1 deletion(-)
- create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/pr110280.c
-
-diff --git a/gcc/match.pd b/gcc/match.pd
-index 9118244825054..c3bb4fbc0a7a2 100644
---- a/gcc/match.pd
-+++ b/gcc/match.pd
-@@ -8292,7 +8292,14 @@ and,
- 
- (simplify
-  (vec_perm vec_same_elem_p@0 @0 @1)
-- @0)
-+ (if (types_match (type, TREE_TYPE (@0)))
-+  @0
-+  (with
-+   {
-+     tree elem = uniform_vector_p (@0);
-+   }
-+   (if (elem)
-+    { build_vector_from_val (type, elem); }))))
- 
- /* Push VEC_PERM earlier if that may help FMA perception (PR101895).  */
- (simplify
-diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pr110280.c b/gcc/testsuite/gcc.target/aarch64/sve/pr110280.c
-new file mode 100644
-index 0000000000000..d3279f383629f
---- /dev/null
-+++ b/gcc/testsuite/gcc.target/aarch64/sve/pr110280.c
-@@ -0,0 +1,12 @@
-+/* { dg-do compile } */
-+/* { dg-options "-O3 -fdump-tree-optimized" } */
-+
-+#include "arm_sve.h"
-+
-+svuint32_t l()
-+{
-+  _Alignas(16) const unsigned int lanes[4] = {0, 0, 0, 0};
-+  return svld1rq_u32(svptrue_b8(), lanes);
-+}
-+
-+/* { dg-final { scan-tree-dump-not "VEC_PERM_EXPR" "optimized" } } */
diff --git a/pkgs/development/compilers/gcc/patches/default.nix b/pkgs/development/compilers/gcc/patches/default.nix
index 13b4bcbf6f8cd..8f0a499da362a 100644
--- a/pkgs/development/compilers/gcc/patches/default.nix
+++ b/pkgs/development/compilers/gcc/patches/default.nix
@@ -77,7 +77,6 @@ in
 ++ optional langFortran (if atLeast12 then ./gcc-12-gfortran-driving.patch else ./gfortran-driving.patch)
 ++ optional atLeast7 ./ppc-musl.patch
 ++ optional is12 ./12/lambda-ICE-PR109241.patch # backport ICE fix on ccache code
-++ optional is13 ./13/ICE-PR110280.patch # backport ICE fix on const_unop
 ++ optional (atLeast9 && langD) ./libphobos.patch
 
 
@@ -153,8 +152,8 @@ in
   }) ];
   "13" = [ (fetchpatch {
     name = "gcc-13-darwin-aarch64-support.patch";
-    url = "https://raw.githubusercontent.com/Homebrew/formula-patches/3c5cbc8e9cf444a1967786af48e430588e1eb481/gcc/gcc-13.2.0.diff";
-    sha256 = "sha256-Y5r3U3dwAFG6+b0TNCFd18PNxYu2+W/5zDbZ5cHvv+U=";
+    url = "https://raw.githubusercontent.com/Homebrew/formula-patches/bda0faddfbfb392e7b9c9101056b2c5ab2500508/gcc/gcc-13.3.0.diff";
+    sha256 = "sha256-RBTCBXIveGwuQGJLzMW/UexpUZdDgdXprp/G2NHkmQo=";
   }) ];
   "12" = [ (fetchurl {
     name = "gcc-12-darwin-aarch64-support.patch";
diff --git a/pkgs/development/compilers/gcc/versions.nix b/pkgs/development/compilers/gcc/versions.nix
index 90c4949b19ea1..3421152ef12ac 100644
--- a/pkgs/development/compilers/gcc/versions.nix
+++ b/pkgs/development/compilers/gcc/versions.nix
@@ -1,7 +1,7 @@
 let
   majorMinorToVersionMap = {
     "14" = "14.1.0";
-    "13" = "13.2.0";
+    "13" = "13.3.0";
     "12" = "12.3.0";
     "11" = "11.4.0";
     "10" = "10.5.0";
@@ -21,7 +21,7 @@ let
     # NOTE: there is no need to remove hashes of obsolete minor
     # versions when adding a new minor version.
     "14.1.0" = "sha256-4oPGVJh6/j3p2AgLwL15U0tcoNaBpzoR/ytdN2dCaEA=";
-    "13.2.0" = "sha256-4nXnZEKmBnNBon8Exca4PYYTFEAEwEE1KIY9xrXHQ9o=";
+    "13.3.0" = "sha256-CEXpYhyVQ6E/SE6UWEpJ/8ASmXDpkUYkI1/B0GGgwIM=";
     "12.3.0" = "sha256-lJpdT5nnhkIak7Uysi/6tVeN5zITaZdbka7Jet/ajDs=";
     "11.4.0" = "sha256-Py2yIrAH6KSiPNW6VnJu8I6LHx6yBV7nLBQCzqc6jdk=";
     "10.5.0" = "sha256-JRCVQ/30bzl8NHtdi3osflaUpaUczkucbh6opxyjB8E=";
diff --git a/pkgs/development/compilers/gforth/boot-forth.nix b/pkgs/development/compilers/gforth/boot-forth.nix
index 74a267687b8f2..657847164bb07 100644
--- a/pkgs/development/compilers/gforth/boot-forth.nix
+++ b/pkgs/development/compilers/gforth/boot-forth.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
   configureFlags = lib.optionals stdenv.isDarwin [ "--build=x86_64-apple-darwin" ];
 
   meta = {
-    description = "The Forth implementation of the GNU project (outdated version used to bootstrap)";
+    description = "Forth implementation of the GNU project (outdated version used to bootstrap)";
     homepage = "https://www.gnu.org/software/gforth/";
     license = lib.licenses.gpl3;
     platforms = lib.platforms.all;
diff --git a/pkgs/development/compilers/gforth/default.nix b/pkgs/development/compilers/gforth/default.nix
index b76482ba5963d..56d89fd628f21 100644
--- a/pkgs/development/compilers/gforth/default.nix
+++ b/pkgs/development/compilers/gforth/default.nix
@@ -38,7 +38,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "The Forth implementation of the GNU project";
+    description = "Forth implementation of the GNU project";
     homepage = "https://github.com/forthy42/gforth";
     license = lib.licenses.gpl3;
     broken = stdenv.isDarwin && stdenv.isAarch64; # segfault when running ./gforthmi
diff --git a/pkgs/development/compilers/ghc/8.10.7-binary.nix b/pkgs/development/compilers/ghc/8.10.7-binary.nix
index 16642e56bfd92..c29b3c89f4b87 100644
--- a/pkgs/development/compilers/ghc/8.10.7-binary.nix
+++ b/pkgs/development/compilers/ghc/8.10.7-binary.nix
@@ -434,7 +434,7 @@ stdenv.mkDerivation rec {
 
   meta = rec {
     homepage = "http://haskell.org/ghc";
-    description = "The Glasgow Haskell Compiler";
+    description = "Glasgow Haskell Compiler";
     license = lib.licenses.bsd3;
     # HACK: since we can't encode the libc / abi in platforms, we need
     # to make the platform list dependent on the evaluation platform
diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix
index cc819ff8dcbfd..c8669a2761f82 100644
--- a/pkgs/development/compilers/ghc/8.10.7.nix
+++ b/pkgs/development/compilers/ghc/8.10.7.nix
@@ -131,23 +131,44 @@ let
 
   targetCC = builtins.head toolsForTarget;
 
-  # Sometimes we have to dispatch between the bintools wrapper and the unwrapped
-  # derivation for certain tools depending on the platform.
-  bintoolsFor = {
-    # GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is
-    # part of the bintools wrapper (due to codesigning requirements), but not on
-    # x86_64-darwin.
-    install_name_tool =
-      if stdenv.targetPlatform.isAarch64
-      then targetCC.bintools
-      else targetCC.bintools.bintools;
-    # Same goes for strip.
-    strip =
-      # TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold"
-      if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin
-      then targetCC.bintools
-      else targetCC.bintools.bintools;
-  };
+  # toolPath calculates the absolute path to the name tool associated with a
+  # given `stdenv.cc` derivation, i.e. it picks the correct derivation to take
+  # the tool from (cc, cc.bintools, cc.bintools.bintools) and adds the correct
+  # subpath of the tool.
+  toolPath = name: cc:
+    let
+      tools = {
+        "cc" = cc;
+        "c++" = cc;
+        as = cc.bintools.bintools;
+
+        ar = cc.bintools.bintools;
+        ranlib = cc.bintools.bintools;
+        nm = cc.bintools.bintools;
+        readelf = cc.bintools.bintools;
+
+        ld = cc.bintools;
+        "ld.gold" = cc.bintools;
+
+        otool = cc.bintools.bintools;
+
+        # GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is
+        # part of the bintools wrapper (due to codesigning requirements), but not on
+        # x86_64-darwin. We decide based on target platform to have consistent tools
+        # across all GHC stages.
+        install_name_tool =
+          if stdenv.targetPlatform.isAarch64
+          then cc.bintools
+          else cc.bintools.bintools;
+        # Same goes for strip.
+        strip =
+          # TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold"
+          if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin
+          then cc.bintools
+          else cc.bintools.bintools;
+      }.${name};
+    in
+    "${tools}/bin/${tools.targetPrefix}${name}";
 
   # Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues.
   # But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
@@ -255,19 +276,19 @@ stdenv.mkDerivation (rec {
     done
     # GHC is a bit confused on its cross terminology, as these would normally be
     # the *host* tools.
-    export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
-    export CXX="${targetCC}/bin/${targetCC.targetPrefix}c++"
+    export CC="${toolPath "cc" targetCC}"
+    export CXX="${toolPath "c++" targetCC}"
     # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
-    export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}"
-    export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
-    export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
-    export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
-    export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
-    export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
-    export STRIP="${bintoolsFor.strip}/bin/${bintoolsFor.strip.targetPrefix}strip"
+    export LD="${toolPath "ld${lib.optionalString useLdGold ".gold"}" targetCC}"
+    export AS="${toolPath "as" targetCC}"
+    export AR="${toolPath "ar" targetCC}"
+    export NM="${toolPath "nm" targetCC}"
+    export RANLIB="${toolPath "ranlib" targetCC}"
+    export READELF="${toolPath "readelf" targetCC}"
+    export STRIP="${toolPath "strip" targetCC}"
   '' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") ''
-    export OTOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}otool"
-    export INSTALL_NAME_TOOL="${bintoolsFor.install_name_tool}/bin/${bintoolsFor.install_name_tool.targetPrefix}install_name_tool"
+    export OTOOL="${toolPath "otool" targetCC}"
+    export INSTALL_NAME_TOOL="${toolPath "install_name_tool" targetCC}"
   '' + lib.optionalString useLLVM ''
     export LLC="${lib.getBin buildTargetLlvmPackages.llvm}/bin/llc"
     export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt"
@@ -398,7 +419,7 @@ stdenv.mkDerivation (rec {
 
   meta = {
     homepage = "http://haskell.org/ghc";
-    description = "The Glasgow Haskell Compiler";
+    description = "Glasgow Haskell Compiler";
     maintainers = with lib.maintainers; [
       guibou
     ] ++ lib.teams.haskell.members;
diff --git a/pkgs/development/compilers/ghc/9.2.4-binary.nix b/pkgs/development/compilers/ghc/9.2.4-binary.nix
index 77d70d2950707..920b63ce4eab0 100644
--- a/pkgs/development/compilers/ghc/9.2.4-binary.nix
+++ b/pkgs/development/compilers/ghc/9.2.4-binary.nix
@@ -422,7 +422,7 @@ stdenv.mkDerivation rec {
 
   meta = rec {
     homepage = "http://haskell.org/ghc";
-    description = "The Glasgow Haskell Compiler";
+    description = "Glasgow Haskell Compiler";
     license = lib.licenses.bsd3;
     # HACK: since we can't encode the libc / abi in platforms, we need
     # to make the platform list dependent on the evaluation platform
diff --git a/pkgs/development/compilers/ghc/9.4.8.fixme.nix b/pkgs/development/compilers/ghc/9.4.8.nix
index a98d7404b7acf..a98d7404b7acf 100644
--- a/pkgs/development/compilers/ghc/9.4.8.fixme.nix
+++ b/pkgs/development/compilers/ghc/9.4.8.nix
diff --git a/pkgs/development/compilers/ghc/9.6.3-binary.nix b/pkgs/development/compilers/ghc/9.6.3-binary.nix
index b8ad3c1192eb4..65ed655e57974 100644
--- a/pkgs/development/compilers/ghc/9.6.3-binary.nix
+++ b/pkgs/development/compilers/ghc/9.6.3-binary.nix
@@ -390,7 +390,7 @@ stdenv.mkDerivation rec {
 
   meta = rec {
     homepage = "http://haskell.org/ghc";
-    description = "The Glasgow Haskell Compiler";
+    description = "Glasgow Haskell Compiler";
     license = lib.licenses.bsd3;
     # HACK: since we can't encode the libc / abi in platforms, we need
     # to make the platform list dependent on the evaluation platform
diff --git a/pkgs/development/compilers/ghc/Cabal-3.12-paths-fix-cycle-aarch64-darwin.patch b/pkgs/development/compilers/ghc/Cabal-3.12-paths-fix-cycle-aarch64-darwin.patch
new file mode 100644
index 0000000000000..f094790088c2f
--- /dev/null
+++ b/pkgs/development/compilers/ghc/Cabal-3.12-paths-fix-cycle-aarch64-darwin.patch
@@ -0,0 +1,596 @@
+This patch is based on https://github.com/sternenseemann/cabal/compare/Cabal-v3.12.0.0..e836ef53c1f80bf99a70f9c4ee5976e9f3830215
+and has been postprocessed with `filterdiff --strip=1 --addoldprefix=a/libraries/Cabal/ --addnewprefix=b/libraries/Cabal/`.
+
+Reasoning and explanation of the patch can be found in the comment in the diff for PathsModule.hs below.
+
+diffCabal/src/Distribution/Simple/Build/PathsModule.hs b/Cabal/src/Distribution/Simple/Build/PathsModule.hs
+index 892e5bd38..391f5b130 100644
+--- a/libraries/Cabal/Cabal/src/Distribution/Simple/Build/PathsModule.hs
++++ b/libraries/Cabal/Cabal/src/Distribution/Simple/Build/PathsModule.hs
+@@ -51,6 +51,7 @@ generatePathsModule pkg_descr lbi clbi =
+       , Z.zIsWindows = isWindows
+       , Z.zIsI386 = buildArch == I386
+       , Z.zIsX8664 = buildArch == X86_64
++      , Z.zOr = (||)
+       , Z.zNot = not
+       , Z.zManglePkgName = showPkgName
+       , Z.zPrefix = show flat_prefix
+@@ -60,8 +61,110 @@ generatePathsModule pkg_descr lbi clbi =
+       , Z.zDatadir = zDatadir
+       , Z.zLibexecdir = zLibexecdir
+       , Z.zSysconfdir = zSysconfdir
++      , -- Sadly we can't be cleverer about this – we can't have literals in the template
++        Z.zShouldEmitDataDir = shouldEmit "DataDir"
++      , Z.zShouldEmitLibDir = shouldEmit "LibDir"
++      , Z.zShouldEmitDynLibDir = shouldEmit "DynLibDir"
++      , Z.zShouldEmitLibexecDir = shouldEmit "LibexecDir"
++      , Z.zShouldEmitSysconfDir = shouldEmit "SysconfDir"
++      , Z.zWarning = zWarning
++      , Z.zShouldEmitWarning = zShouldEmitWarning
+       }
+   where
++    -- GHC's NCG backend for aarch64-darwin does not support link-time dead code
++    -- elimination to the extent that NCG does for other targets. Consequently,
++    -- we struggle with unnecessarily retained store path references due to the
++    -- use of `Paths_*` modules – even if `getLibDir` is not used, it'll end up
++    -- in the final library or executables we build.
++    --
++    -- When using a different output for the executables and library, this
++    -- becomes more sinister: The library will contain a reference to the bin
++    -- output and itself due to `getLibDir` and `getBinDir`, but the executables
++    -- will do so, too. Either due to linking dynamically or because the library
++    -- is linked statically into the executable and retains those references.
++    -- Since Nix disallows cyclical references between two outputs, it becomes
++    -- impossible to use the `Paths_*` module and a separate `bin` output for
++    -- aarch64-darwin.
++    --
++    -- The solution we have resorted to for now, is to trim the `Paths_*` module
++    -- dynamically depending on what references *could* be used without causing
++    -- a cyclical reference. That has the effect that any code that would not
++    -- cause a cyclical reference with dead code elimination will compile and
++    -- work for aarch64-darwin. If the code would use a `get*Dir` function that
++    -- has been omitted, this would indicate that the code would have caused a
++    -- cyclical reference anyways.
++    --
++    -- The logic for this makes some pretty big assumptions about installation
++    -- prefixes that probably only hold fully in nixpkgs with
++    -- `haskellPackages.mkDerivation`. Simple uses outside nixpkgs that have
++    -- everything below the same prefix should continue to work as expected,
++    -- though.
++    --
++    -- We assume the following:
++    --
++    -- - flat_prefix is `$out`.
++    -- - flat_libdir etc. are always below `$out`.
++    --
++    -- Since in the normal case due to static linking `$bin` and `$out` will
++    -- have the same references in libraries/executables, we need to either
++    -- prevent usage of `getBinDir` or `getLibDir` to break the cycle in case
++    -- `flat_bindir` is not below `$out`. We have decided to always allow usage
++    -- of `getBinDir`, so `getLibDir` gets dropped if a separate `bin` output is
++    -- used. This has the simple reason that `$out` which contains `flat_libdir`
++    -- tends to be quite big – we would like to have a `bin` output that doesn't
++    -- require keeping that around.
++    pathEmittable :: FilePath -> Bool
++    pathEmittable p
++      -- If the executable installation target is below `$out` the reference
++      -- cycle is within a single output (since libs are installed to `$out`)
++      -- and thus unproblematic. We can use any and all `get*Dir` functions.
++      | flat_prefix `isPrefixOf` flat_bindir = True
++      -- Otherwise, we need to disallow all `get*Dir` functions that would cause
++      -- a reference to `$out` which contains the libraries that would in turn
++      -- reference `$bin`. This always include `flat_libdir` and friends, but
++      -- can also include `flat_datadir` if no separate output for data files is
++      -- used.
++      | otherwise = not (flat_prefix `isPrefixOf` p)
++
++    -- This list maps the "name" of the directory to whether we want to include
++    -- it in the `Paths_*` module or not. `shouldEmit` performs a lookup in this.
++    dirs :: [(String, Bool)]
++    dirs =
++      map
++        (\(name, path) -> (name, pathEmittable path))
++        [ ("LibDir", flat_libdir)
++        , ("DynLibDir", flat_dynlibdir)
++        , ("DataDir", flat_datadir)
++        , ("LibexecDir", flat_libexecdir)
++        , ("SysconfDir", flat_sysconfdir)
++        ]
++
++    shouldEmit :: String -> Bool
++    shouldEmit name =
++      case lookup name dirs of
++        Just b -> b
++        Nothing -> error "panic! BUG in Cabal Paths_ patch for aarch64-darwin, report this at https://github.com/nixos/nixpkgs/issues"
++
++    -- This is a comma separated list of all functions that have been emitted.
++    -- This is included in a GHC warning which will be attached to the `Paths_*`
++    -- module in case we are dropping any `get*Dir` functions that would
++    -- normally exist.
++    --
++    -- TODO: getDataFileName is not accounted for at the moment.
++    omittedFunctions :: String
++    omittedFunctions =
++      intercalate ", " $
++        map (("get" ++) . fst) $
++          filter (not . snd) dirs
++
++    zWarning :: String
++    zWarning =
++      show $
++        "The following functions have been omitted by a nixpkgs-specific patch to Cabal: "
++          ++ omittedFunctions
++    zShouldEmitWarning :: Bool
++    zShouldEmitWarning = any (not . snd) dirs
++
+     supports_cpp = supports_language_pragma
+     supports_rebindable_syntax = ghc_newer_than (mkVersion [7, 0, 1])
+     supports_language_pragma = ghc_newer_than (mkVersion [6, 6, 1])
+diffCabal/src/Distribution/Simple/Build/PathsModule/Z.hs b/Cabal/src/Distribution/Simple/Build/PathsModule/Z.hs
+index 25c924720..a8278675e 100644
+--- a/libraries/Cabal/Cabal/src/Distribution/Simple/Build/PathsModule/Z.hs
++++ b/libraries/Cabal/Cabal/src/Distribution/Simple/Build/PathsModule/Z.hs
+@@ -19,6 +19,14 @@ data Z
+          zDatadir :: FilePath,
+          zLibexecdir :: FilePath,
+          zSysconfdir :: FilePath,
++         zShouldEmitLibDir :: Bool,
++         zShouldEmitDynLibDir :: Bool,
++         zShouldEmitLibexecDir :: Bool,
++         zShouldEmitDataDir :: Bool,
++         zShouldEmitSysconfDir :: Bool,
++         zShouldEmitWarning :: Bool,
++         zWarning :: String,
++         zOr :: (Bool -> Bool -> Bool),
+          zNot :: (Bool -> Bool),
+          zManglePkgName :: (PackageName -> String)}
+     deriving Generic
+@@ -54,10 +62,51 @@ render z_root = execWriter $ do
+   tell "{-# OPTIONS_GHC -w #-}\n"
+   tell "module Paths_"
+   tell (zManglePkgName z_root (zPackageName z_root))
+-  tell " (\n"
++  tell "\n"
++  tell "  "
++  if (zShouldEmitWarning z_root)
++  then do
++    tell "{-# WARNING "
++    tell (zWarning z_root)
++    tell " #-}"
++    return ()
++  else do
++    return ()
++  tell "\n"
++  tell "  (\n"
+   tell "    version,\n"
+-  tell "    getBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir,\n"
+-  tell "    getDataFileName, getSysconfDir\n"
++  tell "    getBinDir,\n"
++  if (zOr z_root (zNot z_root (zAbsolute z_root)) (zShouldEmitLibDir z_root))
++  then do
++    tell "    getLibDir,\n"
++    return ()
++  else do
++    return ()
++  if (zOr z_root (zNot z_root (zAbsolute z_root)) (zShouldEmitDynLibDir z_root))
++  then do
++    tell "    getDynLibDir,\n"
++    return ()
++  else do
++    return ()
++  if (zOr z_root (zNot z_root (zAbsolute z_root)) (zShouldEmitLibexecDir z_root))
++  then do
++    tell "    getLibexecDir,\n"
++    return ()
++  else do
++    return ()
++  if (zOr z_root (zNot z_root (zAbsolute z_root)) (zShouldEmitDataDir z_root))
++  then do
++    tell "    getDataFileName,\n"
++    tell "    getDataDir,\n"
++    return ()
++  else do
++    return ()
++  if (zOr z_root (zNot z_root (zAbsolute z_root)) (zShouldEmitSysconfDir z_root))
++  then do
++    tell "    getSysconfDir\n"
++    return ()
++  else do
++    return ()
+   tell "  ) where\n"
+   tell "\n"
+   if (zNot z_root (zAbsolute z_root))
+@@ -106,12 +155,15 @@ render z_root = execWriter $ do
+   tell (zVersionDigits z_root)
+   tell " []\n"
+   tell "\n"
+-  tell "getDataFileName :: FilePath -> IO FilePath\n"
+-  tell "getDataFileName name = do\n"
+-  tell "  dir <- getDataDir\n"
+-  tell "  return (dir `joinFileName` name)\n"
+-  tell "\n"
+-  tell "getBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir, getSysconfDir :: IO FilePath\n"
++  if (zOr z_root (zNot z_root (zAbsolute z_root)) (zShouldEmitDataDir z_root))
++  then do
++    tell "getDataFileName :: FilePath -> IO FilePath\n"
++    tell "getDataFileName name = do\n"
++    tell "  dir <- getDataDir\n"
++    tell "  return (dir `joinFileName` name)\n"
++    return ()
++  else do
++    return ()
+   tell "\n"
+   let
+     z_var0_function_defs = do
+@@ -139,6 +191,7 @@ render z_root = execWriter $ do
+   tell "\n"
+   if (zRelocatable z_root)
+   then do
++    tell "\n"
+     tell "\n"
+     tell "getPrefixDirReloc :: FilePath -> IO FilePath\n"
+     tell "getPrefixDirReloc dirRel = do\n"
+@@ -148,31 +201,37 @@ render z_root = execWriter $ do
+     tell (zBindir z_root)
+     tell ") `joinFileName` dirRel)\n"
+     tell "\n"
++    tell "getBinDir     :: IO FilePath\n"
+     tell "getBinDir     = catchIO (getEnv \""
+     tell (zManglePkgName z_root (zPackageName z_root))
+     tell "_bindir\")     (\\_ -> getPrefixDirReloc $ "
+     tell (zBindir z_root)
+     tell ")\n"
++    tell "getLibDir     :: IO FilePath\n"
+     tell "getLibDir     = catchIO (getEnv \""
+     tell (zManglePkgName z_root (zPackageName z_root))
+     tell "_libdir\")     (\\_ -> getPrefixDirReloc $ "
+     tell (zLibdir z_root)
+     tell ")\n"
++    tell "getDynLibDir  :: IO FilePath\n"
+     tell "getDynLibDir  = catchIO (getEnv \""
+     tell (zManglePkgName z_root (zPackageName z_root))
+     tell "_dynlibdir\")  (\\_ -> getPrefixDirReloc $ "
+     tell (zDynlibdir z_root)
+     tell ")\n"
++    tell "getDataDir    :: IO FilePath\n"
+     tell "getDataDir    = catchIO (getEnv \""
+     tell (zManglePkgName z_root (zPackageName z_root))
+     tell "_datadir\")    (\\_ -> getPrefixDirReloc $ "
+     tell (zDatadir z_root)
+     tell ")\n"
++    tell "getLibexecDir :: IO FilePath\n"
+     tell "getLibexecDir = catchIO (getEnv \""
+     tell (zManglePkgName z_root (zPackageName z_root))
+     tell "_libexecdir\") (\\_ -> getPrefixDirReloc $ "
+     tell (zLibexecdir z_root)
+     tell ")\n"
++    tell "getSysconfDir :: IO FilePath\n"
+     tell "getSysconfDir = catchIO (getEnv \""
+     tell (zManglePkgName z_root (zPackageName z_root))
+     tell "_sysconfdir\") (\\_ -> getPrefixDirReloc $ "
+@@ -186,72 +245,119 @@ render z_root = execWriter $ do
+     if (zAbsolute z_root)
+     then do
+       tell "\n"
+-      tell "bindir, libdir, dynlibdir, datadir, libexecdir, sysconfdir :: FilePath\n"
++      tell "bindir     :: FilePath\n"
+       tell "bindir     = "
+       tell (zBindir z_root)
+       tell "\n"
+-      tell "libdir     = "
+-      tell (zLibdir z_root)
+-      tell "\n"
+-      tell "dynlibdir  = "
+-      tell (zDynlibdir z_root)
++      tell "getBinDir     :: IO FilePath\n"
++      tell "getBinDir     = catchIO (getEnv \""
++      tell (zManglePkgName z_root (zPackageName z_root))
++      tell "_bindir\")     (\\_ -> return bindir)\n"
+       tell "\n"
+-      tell "datadir    = "
+-      tell (zDatadir z_root)
++      if (zShouldEmitLibDir z_root)
++      then do
++        tell "libdir     :: FilePath\n"
++        tell "libdir     = "
++        tell (zLibdir z_root)
++        tell "\n"
++        tell "getLibDir     :: IO FilePath\n"
++        tell "getLibDir     = catchIO (getEnv \""
++        tell (zManglePkgName z_root (zPackageName z_root))
++        tell "_libdir\")     (\\_ -> return libdir)\n"
++        return ()
++      else do
++        return ()
+       tell "\n"
+-      tell "libexecdir = "
+-      tell (zLibexecdir z_root)
++      if (zShouldEmitDynLibDir z_root)
++      then do
++        tell "dynlibdir  :: FilePath\n"
++        tell "dynlibdir  = "
++        tell (zDynlibdir z_root)
++        tell "\n"
++        tell "getDynLibDir  :: IO FilePath\n"
++        tell "getDynLibDir  = catchIO (getEnv \""
++        tell (zManglePkgName z_root (zPackageName z_root))
++        tell "_dynlibdir\")  (\\_ -> return dynlibdir)\n"
++        return ()
++      else do
++        return ()
+       tell "\n"
+-      tell "sysconfdir = "
+-      tell (zSysconfdir z_root)
++      if (zShouldEmitDataDir z_root)
++      then do
++        tell "datadir    :: FilePath\n"
++        tell "datadir    = "
++        tell (zDatadir z_root)
++        tell "\n"
++        tell "getDataDir    :: IO FilePath\n"
++        tell "getDataDir    = catchIO (getEnv \""
++        tell (zManglePkgName z_root (zPackageName z_root))
++        tell "_datadir\")    (\\_ -> return datadir)\n"
++        return ()
++      else do
++        return ()
+       tell "\n"
++      if (zShouldEmitLibexecDir z_root)
++      then do
++        tell "libexecdir :: FilePath\n"
++        tell "libexecdir = "
++        tell (zLibexecdir z_root)
++        tell "\n"
++        tell "getLibexecDir :: IO FilePath\n"
++        tell "getLibexecDir = catchIO (getEnv \""
++        tell (zManglePkgName z_root (zPackageName z_root))
++        tell "_libexecdir\") (\\_ -> return libexecdir)\n"
++        return ()
++      else do
++        return ()
+       tell "\n"
+-      tell "getBinDir     = catchIO (getEnv \""
+-      tell (zManglePkgName z_root (zPackageName z_root))
+-      tell "_bindir\")     (\\_ -> return bindir)\n"
+-      tell "getLibDir     = catchIO (getEnv \""
+-      tell (zManglePkgName z_root (zPackageName z_root))
+-      tell "_libdir\")     (\\_ -> return libdir)\n"
+-      tell "getDynLibDir  = catchIO (getEnv \""
+-      tell (zManglePkgName z_root (zPackageName z_root))
+-      tell "_dynlibdir\")  (\\_ -> return dynlibdir)\n"
+-      tell "getDataDir    = catchIO (getEnv \""
+-      tell (zManglePkgName z_root (zPackageName z_root))
+-      tell "_datadir\")    (\\_ -> return datadir)\n"
+-      tell "getLibexecDir = catchIO (getEnv \""
+-      tell (zManglePkgName z_root (zPackageName z_root))
+-      tell "_libexecdir\") (\\_ -> return libexecdir)\n"
+-      tell "getSysconfDir = catchIO (getEnv \""
+-      tell (zManglePkgName z_root (zPackageName z_root))
+-      tell "_sysconfdir\") (\\_ -> return sysconfdir)\n"
++      if (zShouldEmitSysconfDir z_root)
++      then do
++        tell "sysconfdir :: FilePath\n"
++        tell "sysconfdir = "
++        tell (zSysconfdir z_root)
++        tell "\n"
++        tell "getSysconfDir :: IO FilePath\n"
++        tell "getSysconfDir = catchIO (getEnv \""
++        tell (zManglePkgName z_root (zPackageName z_root))
++        tell "_sysconfdir\") (\\_ -> return sysconfdir)\n"
++        return ()
++      else do
++        return ()
+       tell "\n"
+       return ()
+     else do
+       if (zIsWindows z_root)
+       then do
++        tell "\n"
+         tell "\n"
+         tell "prefix :: FilePath\n"
+         tell "prefix = "
+         tell (zPrefix z_root)
+         tell "\n"
+         tell "\n"
++        tell "getBinDir     :: IO FilePath\n"
+         tell "getBinDir     = getPrefixDirRel $ "
+         tell (zBindir z_root)
+         tell "\n"
++        tell "getLibDir     :: IO FilePath\n"
+         tell "getLibDir     = "
+         tell (zLibdir z_root)
+         tell "\n"
++        tell "getDynLibDir  :: IO FilePath\n"
+         tell "getDynLibDir  = "
+         tell (zDynlibdir z_root)
+         tell "\n"
++        tell "getDataDir    :: IO FilePath\n"
+         tell "getDataDir    = catchIO (getEnv \""
+         tell (zManglePkgName z_root (zPackageName z_root))
+         tell "_datadir\")    (\\_ -> "
+         tell (zDatadir z_root)
+         tell ")\n"
++        tell "getLibexecDir :: IO FilePath\n"
+         tell "getLibexecDir = "
+         tell (zLibexecdir z_root)
+         tell "\n"
++        tell "getSysconfDir :: IO FilePath\n"
+         tell "getSysconfDir = "
+         tell (zSysconfdir z_root)
+         tell "\n"
+diffcabal-dev-scripts/src/GenPathsModule.hs b/cabal-dev-scripts/src/GenPathsModule.hs
+index 46ef779e2..e9f5e099f 100644
+--- a/libraries/Cabal/cabal-dev-scripts/src/GenPathsModule.hs
++++ b/libraries/Cabal/cabal-dev-scripts/src/GenPathsModule.hs
+@@ -41,6 +41,16 @@ $(capture "decls" [d|
+         , zLibexecdir :: FilePath
+         , zSysconfdir :: FilePath
+ 
++        , zShouldEmitLibDir     :: Bool
++        , zShouldEmitDynLibDir  :: Bool
++        , zShouldEmitLibexecDir :: Bool
++        , zShouldEmitDataDir    :: Bool
++        , zShouldEmitSysconfDir :: Bool
++
++        , zShouldEmitWarning :: Bool
++        , zWarning           :: String
++
++        , zOr                         :: Bool -> Bool -> Bool
+         , zNot                        :: Bool -> Bool
+         , zManglePkgName              :: PackageName -> String
+         }
+difftemplates/Paths_pkg.template.hs b/templates/Paths_pkg.template.hs
+index 8e1e03d27..cc5c86701 100644
+--- a/libraries/Cabal/templates/Paths_pkg.template.hs
++++ b/libraries/Cabal/templates/Paths_pkg.template.hs
+@@ -14,10 +14,31 @@
+ {% endif %}
+ {-# OPTIONS_GHC -fno-warn-missing-import-lists #-}
+ {-# OPTIONS_GHC -w #-}
+-module Paths_{{ manglePkgName packageName }} (
++module Paths_{{ manglePkgName packageName }}
++  {% if shouldEmitWarning %}{-# WARNING {{ warning }} #-}{% endif %}
++  (
+     version,
+-    getBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir,
+-    getDataFileName, getSysconfDir
++    getBinDir,
++{# We only care about the absolute case for our emit logic, since only in this
++   case references are incurred. We are not going to hit isWindows and relocatable
++   has no absolute references to begin with.
++#}
++{% if or (not absolute) shouldEmitLibDir %}
++    getLibDir,
++{% endif %}
++{% if or (not absolute) shouldEmitDynLibDir %}
++    getDynLibDir,
++{% endif %}
++{% if or (not absolute) shouldEmitLibexecDir %}
++    getLibexecDir,
++{% endif %}
++{% if or (not absolute) shouldEmitDataDir %}
++    getDataFileName,
++    getDataDir,
++{% endif %}
++{% if or (not absolute) shouldEmitSysconfDir %}
++    getSysconfDir
++{% endif %}
+   ) where
+ 
+ {% if not absolute %}
+@@ -56,12 +77,12 @@ catchIO = Exception.catch
+ version :: Version
+ version = Version {{ versionDigits }} []
+ 
++{% if or (not absolute) shouldEmitDataDir %}
+ getDataFileName :: FilePath -> IO FilePath
+ getDataFileName name = do
+   dir <- getDataDir
+   return (dir `joinFileName` name)
+-
+-getBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir, getSysconfDir :: IO FilePath
++{% endif %}
+ 
+ {% defblock function_defs %}
+ minusFileName :: FilePath -> String -> FilePath
+@@ -90,48 +111,93 @@ splitFileName p = (reverse (path2++drive), reverse fname)
+ 
+ {% if relocatable %}
+ 
++{# Relocatable can not incur any absolute references, so we can ignore it.
++   Additionally, --enable-relocatable is virtually useless in Nix builds
++#}
++
+ getPrefixDirReloc :: FilePath -> IO FilePath
+ getPrefixDirReloc dirRel = do
+   exePath <- getExecutablePath
+   let (dir,_) = splitFileName exePath
+   return ((dir `minusFileName` {{ bindir }}) `joinFileName` dirRel)
+ 
++getBinDir     :: IO FilePath
+ getBinDir     = catchIO (getEnv "{{ manglePkgName packageName }}_bindir")     (\_ -> getPrefixDirReloc $ {{ bindir }})
++getLibDir     :: IO FilePath
+ getLibDir     = catchIO (getEnv "{{ manglePkgName packageName }}_libdir")     (\_ -> getPrefixDirReloc $ {{ libdir }})
++getDynLibDir  :: IO FilePath
+ getDynLibDir  = catchIO (getEnv "{{ manglePkgName packageName }}_dynlibdir")  (\_ -> getPrefixDirReloc $ {{ dynlibdir }})
++getDataDir    :: IO FilePath
+ getDataDir    = catchIO (getEnv "{{ manglePkgName packageName }}_datadir")    (\_ -> getPrefixDirReloc $ {{ datadir }})
++getLibexecDir :: IO FilePath
+ getLibexecDir = catchIO (getEnv "{{ manglePkgName packageName }}_libexecdir") (\_ -> getPrefixDirReloc $ {{ libexecdir }})
++getSysconfDir :: IO FilePath
+ getSysconfDir = catchIO (getEnv "{{ manglePkgName packageName }}_sysconfdir") (\_ -> getPrefixDirReloc $ {{ sysconfdir }})
+ 
+ {% useblock function_defs %}
+ 
+ {% elif absolute %}
+ 
+-bindir, libdir, dynlibdir, datadir, libexecdir, sysconfdir :: FilePath
++bindir     :: FilePath
+ bindir     = {{ bindir }}
+-libdir     = {{ libdir }}
+-dynlibdir  = {{ dynlibdir }}
+-datadir    = {{ datadir }}
+-libexecdir = {{ libexecdir }}
+-sysconfdir = {{ sysconfdir }}
+-
++getBinDir     :: IO FilePath
+ getBinDir     = catchIO (getEnv "{{ manglePkgName packageName }}_bindir")     (\_ -> return bindir)
++
++{% if shouldEmitLibDir %}
++libdir     :: FilePath
++libdir     = {{ libdir }}
++getLibDir     :: IO FilePath
+ getLibDir     = catchIO (getEnv "{{ manglePkgName packageName }}_libdir")     (\_ -> return libdir)
++{% endif %}
++
++{% if shouldEmitDynLibDir %}
++dynlibdir  :: FilePath
++dynlibdir  = {{ dynlibdir }}
++getDynLibDir  :: IO FilePath
+ getDynLibDir  = catchIO (getEnv "{{ manglePkgName packageName }}_dynlibdir")  (\_ -> return dynlibdir)
++{% endif %}
++
++{% if shouldEmitDataDir %}
++datadir    :: FilePath
++datadir    = {{ datadir }}
++getDataDir    :: IO FilePath
+ getDataDir    = catchIO (getEnv "{{ manglePkgName packageName }}_datadir")    (\_ -> return datadir)
++{% endif %}
++
++{% if shouldEmitLibexecDir %}
++libexecdir :: FilePath
++libexecdir = {{ libexecdir }}
++getLibexecDir :: IO FilePath
+ getLibexecDir = catchIO (getEnv "{{ manglePkgName packageName }}_libexecdir") (\_ -> return libexecdir)
++{% endif %}
++
++{% if shouldEmitSysconfDir %}
++sysconfdir :: FilePath
++sysconfdir = {{ sysconfdir }}
++getSysconfDir :: IO FilePath
+ getSysconfDir = catchIO (getEnv "{{ manglePkgName packageName }}_sysconfdir") (\_ -> return sysconfdir)
++{% endif %}
+ 
+ {% elif isWindows %}
+ 
++{# We are only trying to fix the problem for aarch64-darwin with this patch,
++   so let's ignore Windows which we can reach via pkgsCross, for example.
++#}
++
+ prefix :: FilePath
+ prefix = {{ prefix }}
+ 
++getBinDir     :: IO FilePath
+ getBinDir     = getPrefixDirRel $ {{ bindir }}
++getLibDir     :: IO FilePath
+ getLibDir     = {{ libdir }}
++getDynLibDir  :: IO FilePath
+ getDynLibDir  = {{ dynlibdir }}
++getDataDir    :: IO FilePath
+ getDataDir    = catchIO (getEnv "{{ manglePkgName packageName }}_datadir")    (\_ -> {{ datadir }})
++getLibexecDir :: IO FilePath
+ getLibexecDir = {{ libexecdir }}
++getSysconfDir :: IO FilePath
+ getSysconfDir = {{ sysconfdir }}
+ 
+ getPrefixDirRel :: FilePath -> IO FilePath
diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix
index 5db97cc0d976e..b5fef30332f7f 100644
--- a/pkgs/development/compilers/ghc/common-hadrian.nix
+++ b/pkgs/development/compilers/ghc/common-hadrian.nix
@@ -13,13 +13,13 @@
 , pkgsBuildTarget
 , pkgsHostTarget
 , targetPackages
+, fetchpatch
 
 # build-tools
 , bootPkgs
 , autoconf
 , automake
 , coreutils
-, fetchpatch
 , fetchurl
 , fetchgit
 , perl
@@ -171,6 +171,13 @@
            then ./docs-sphinx-7-ghc98.patch
            else ./docs-sphinx-7.patch )
         ]
+        ++ lib.optionals (lib.versionAtLeast version "9.6" && lib.versionOlder version "9.8") [
+          (fetchpatch {
+            name = "fix-fully_static.patch";
+            url = "https://gitlab.haskell.org/ghc/ghc/-/commit/1bb24432ff77e11a0340a7d8586e151e15bba2a1.diff";
+            hash = "sha256-MpvTmFFsNiPDoOp9BhZyWeapeibQ77zgEV+xzZ1UAXs=";
+          })
+        ]
         ++ lib.optionals (stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64) [
           # Prevent the paths module from emitting symbols that we don't use
           # when building with separate outputs.
@@ -178,7 +185,9 @@
           # These cause problems as they're not eliminated by GHC's dead code
           # elimination on aarch64-darwin. (see
           # https://github.com/NixOS/nixpkgs/issues/140774 for details).
-          ./Cabal-at-least-3.6-paths-fix-cycle-aarch64-darwin.patch
+          (if lib.versionOlder version "9.10"
+           then ./Cabal-at-least-3.6-paths-fix-cycle-aarch64-darwin.patch
+           else ./Cabal-3.12-paths-fix-cycle-aarch64-darwin.patch)
         ]
         # Prevents passing --hyperlinked-source to haddock. This is a custom
         # workaround as we wait for this to be configurable via userSettings or
@@ -258,23 +267,44 @@ let
 
   targetCC = builtins.head toolsForTarget;
 
-  # Sometimes we have to dispatch between the bintools wrapper and the unwrapped
-  # derivation for certain tools depending on the platform.
-  bintoolsFor = {
-    # GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is
-    # part of the bintools wrapper (due to codesigning requirements), but not on
-    # x86_64-darwin.
-    install_name_tool =
-      if stdenv.targetPlatform.isAarch64
-      then targetCC.bintools
-      else targetCC.bintools.bintools;
-    # Same goes for strip.
-    strip =
-      # TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold"
-      if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin
-      then targetCC.bintools
-      else targetCC.bintools.bintools;
-  };
+  # toolPath calculates the absolute path to the name tool associated with a
+  # given `stdenv.cc` derivation, i.e. it picks the correct derivation to take
+  # the tool from (cc, cc.bintools, cc.bintools.bintools) and adds the correct
+  # subpath of the tool.
+  toolPath = name: cc:
+    let
+      tools = {
+        "cc" = cc;
+        "c++" = cc;
+        as = cc.bintools.bintools;
+
+        ar = cc.bintools.bintools;
+        ranlib = cc.bintools.bintools;
+        nm = cc.bintools.bintools;
+        readelf = cc.bintools.bintools;
+
+        ld = cc.bintools;
+        "ld.gold" = cc.bintools;
+
+        otool = cc.bintools.bintools;
+
+        # GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is
+        # part of the bintools wrapper (due to codesigning requirements), but not on
+        # x86_64-darwin. We decide based on target platform to have consistent tools
+        # across all GHC stages.
+        install_name_tool =
+          if stdenv.targetPlatform.isAarch64
+          then cc.bintools
+          else cc.bintools.bintools;
+        # Same goes for strip.
+        strip =
+          # TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold"
+          if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin
+          then cc.bintools
+          else cc.bintools.bintools;
+      }.${name};
+    in
+    "${tools}/bin/${tools.targetPrefix}${name}";
 
   # Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues.
   # But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
@@ -320,19 +350,19 @@ stdenv.mkDerivation ({
     done
     # GHC is a bit confused on its cross terminology, as these would normally be
     # the *host* tools.
-    export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
-    export CXX="${targetCC}/bin/${targetCC.targetPrefix}c++"
+    export CC="${toolPath "cc" targetCC}"
+    export CXX="${toolPath "c++" targetCC}"
     # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
-    export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}"
-    export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
-    export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
-    export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
-    export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
-    export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
-    export STRIP="${bintoolsFor.strip}/bin/${bintoolsFor.strip.targetPrefix}strip"
+    export LD="${toolPath "ld${lib.optionalString useLdGold ".gold"}" targetCC}"
+    export AS="${toolPath "as" targetCC}"
+    export AR="${toolPath "ar" targetCC}"
+    export NM="${toolPath "nm" targetCC}"
+    export RANLIB="${toolPath "ranlib" targetCC}"
+    export READELF="${toolPath "readelf" targetCC}"
+    export STRIP="${toolPath "strip" targetCC}"
   '' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") ''
-    export OTOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}otool"
-    export INSTALL_NAME_TOOL="${bintoolsFor.install_name_tool}/bin/${bintoolsFor.install_name_tool.targetPrefix}install_name_tool"
+    export OTOOL="${toolPath "otool" targetCC}"
+    export INSTALL_NAME_TOOL="${toolPath "install_name_tool" targetCC}"
   '' + lib.optionalString useLLVM ''
     export LLC="${lib.getBin buildTargetLlvmPackages.llvm}/bin/llc"
     export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt"
@@ -426,8 +456,8 @@ stdenv.mkDerivation ({
     "--disable-large-address-space"
   ] ++ lib.optionals enableDwarf [
     "--enable-dwarf-unwind"
-    "--with-libdw-includes=${lib.getDev elfutils}/include"
-    "--with-libdw-libraries=${lib.getLib elfutils}/lib"
+    "--with-libdw-includes=${lib.getDev targetPackages.elfutils}/include"
+    "--with-libdw-libraries=${lib.getLib targetPackages.elfutils}/lib"
   ] ++ lib.optionals targetPlatform.isDarwin [
     # Darwin uses llvm-ar. GHC will try to use `-L` with `ar` when it is `llvm-ar`
     # but it doesn’t currently work because Cabal never uses `-L` on Darwin. See:
@@ -548,16 +578,12 @@ stdenv.mkDerivation ({
 
   meta = {
     homepage = "http://haskell.org/ghc";
-    description = "The Glasgow Haskell Compiler";
+    description = "Glasgow Haskell Compiler";
     maintainers = with lib.maintainers; [
       guibou
     ] ++ lib.teams.haskell.members;
     timeout = 24 * 3600;
     inherit (ghc.meta) license platforms;
-    # https://github.com/NixOS/nixpkgs/issues/208959
-    broken =
-      (lib.versionAtLeast version "9.6" && lib.versionOlder version "9.8")
-      && stdenv.targetPlatform.isStatic;
   };
 
   dontStrip = targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm;
diff --git a/pkgs/development/compilers/ghc/common-make-native-bignum.nix b/pkgs/development/compilers/ghc/common-make-native-bignum.nix
index b2f6b1606265d..79fced444f562 100644
--- a/pkgs/development/compilers/ghc/common-make-native-bignum.nix
+++ b/pkgs/development/compilers/ghc/common-make-native-bignum.nix
@@ -136,23 +136,44 @@ let
 
   targetCC = builtins.head toolsForTarget;
 
-  # Sometimes we have to dispatch between the bintools wrapper and the unwrapped
-  # derivation for certain tools depending on the platform.
-  bintoolsFor = {
-    # GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is
-    # part of the bintools wrapper (due to codesigning requirements), but not on
-    # x86_64-darwin.
-    install_name_tool =
-      if stdenv.targetPlatform.isAarch64
-      then targetCC.bintools
-      else targetCC.bintools.bintools;
-    # Same goes for strip.
-    strip =
-      # TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold"
-      if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin
-      then targetCC.bintools
-      else targetCC.bintools.bintools;
-  };
+  # toolPath calculates the absolute path to the name tool associated with a
+  # given `stdenv.cc` derivation, i.e. it picks the correct derivation to take
+  # the tool from (cc, cc.bintools, cc.bintools.bintools) and adds the correct
+  # subpath of the tool.
+  toolPath = name: cc:
+    let
+      tools = {
+        "cc" = cc;
+        "c++" = cc;
+        as = cc.bintools.bintools;
+
+        ar = cc.bintools.bintools;
+        ranlib = cc.bintools.bintools;
+        nm = cc.bintools.bintools;
+        readelf = cc.bintools.bintools;
+
+        ld = cc.bintools;
+        "ld.gold" = cc.bintools;
+
+        otool = cc.bintools.bintools;
+
+        # GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is
+        # part of the bintools wrapper (due to codesigning requirements), but not on
+        # x86_64-darwin. We decide based on target platform to have consistent tools
+        # across all GHC stages.
+        install_name_tool =
+          if stdenv.targetPlatform.isAarch64
+          then cc.bintools
+          else cc.bintools.bintools;
+        # Same goes for strip.
+        strip =
+          # TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold"
+          if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin
+          then cc.bintools
+          else cc.bintools.bintools;
+      }.${name};
+    in
+    "${tools}/bin/${tools.targetPrefix}${name}";
 
   # Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues.
   # But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
@@ -187,17 +208,7 @@ stdenv.mkDerivation (rec {
 
   outputs = [ "out" "doc" ];
 
-  # FIXME(@sternenseemann): This can be simplified a lot (causing a rebuild)
-  patches = (if lib.versions.majorMinor version == "9.0" then [
-    # Fix docs build with sphinx >= 6.0
-    # https://gitlab.haskell.org/ghc/ghc/-/issues/22766
-    (fetchpatch {
-      name = "ghc-docs-sphinx-6.0.patch";
-      url = "https://gitlab.haskell.org/ghc/ghc/-/commit/10e94a556b4f90769b7fd718b9790d58ae566600.patch";
-      sha256 = "0kmhfamr16w8gch0lgln2912r8aryjky1hfcda3jkcwa5cdzgjdv";
-    })
-    # Fix docs build with Sphinx >= 7 https://gitlab.haskell.org/ghc/ghc/-/issues/24129
-    ./docs-sphinx-7.patch
+  patches = lib.optionals (lib.versionOlder version "9.4") [
     # fix hyperlinked haddock sources: https://github.com/haskell/haddock/pull/1482
     (fetchpatch {
       url = "https://patch-diff.githubusercontent.com/raw/haskell/haddock/pull/1482.patch";
@@ -205,16 +216,9 @@ stdenv.mkDerivation (rec {
       extraPrefix = "utils/haddock/";
       stripLen = 1;
     })
+  ]
 
-    # Add flag that fixes C++ exception handling; opt-in. Merged in 9.4 and 9.2.2.
-    # https://gitlab.haskell.org/ghc/ghc/-/merge_requests/7423
-    (fetchpatch {
-      name = "ghc-9.0.2-fcompact-unwind.patch";
-      # Note that the test suite is not packaged.
-      url = "https://gitlab.haskell.org/ghc/ghc/-/commit/c6132c782d974a7701e7f6447bdcd2bf6db4299a.patch?merge_request_iid=7423";
-      sha256 = "sha256-b4feGZIaKDj/UKjWTNY6/jH4s2iate0wAgMxG3rAbZI=";
-    })
-  ] else if lib.versions.majorMinor version == "9.2" then [
+  ++ lib.optionals (lib.versionOlder version "9.4.6") [
     # Fix docs build with sphinx >= 6.0
     # https://gitlab.haskell.org/ghc/ghc/-/issues/22766
     (fetchpatch {
@@ -222,24 +226,25 @@ stdenv.mkDerivation (rec {
       url = "https://gitlab.haskell.org/ghc/ghc/-/commit/10e94a556b4f90769b7fd718b9790d58ae566600.patch";
       sha256 = "0kmhfamr16w8gch0lgln2912r8aryjky1hfcda3jkcwa5cdzgjdv";
     })
+  ]
+
+  ++ [
     # Fix docs build with Sphinx >= 7 https://gitlab.haskell.org/ghc/ghc/-/issues/24129
     ./docs-sphinx-7.patch
-    # fix hyperlinked haddock sources: https://github.com/haskell/haddock/pull/1482
-    (fetchpatch {
-      url = "https://patch-diff.githubusercontent.com/raw/haskell/haddock/pull/1482.patch";
-      sha256 = "sha256-8w8QUCsODaTvknCDGgTfFNZa8ZmvIKaKS+2ZJZ9foYk=";
-      extraPrefix = "utils/haddock/";
-      stripLen = 1;
-    })
-    # Don't generate code that doesn't compile when --enable-relocatable is passed to Setup.hs
-    # Can be removed if the Cabal library included with ghc backports the linked fix
+  ]
+
+  ++ lib.optionals (lib.versionOlder version "9.2.2") [
+    # Add flag that fixes C++ exception handling; opt-in. Merged in 9.4 and 9.2.2.
+    # https://gitlab.haskell.org/ghc/ghc/-/merge_requests/7423
     (fetchpatch {
-      url = "https://github.com/haskell/cabal/commit/6c796218c92f93c95e94d5ec2d077f6956f68e98.patch";
-      stripLen = 1;
-      extraPrefix = "libraries/Cabal/";
-      sha256 = "sha256-yRQ6YmMiwBwiYseC5BsrEtDgFbWvst+maGgDtdD0vAY=";
+      name = "ghc-9.0.2-fcompact-unwind.patch";
+      # Note that the test suite is not packaged.
+      url = "https://gitlab.haskell.org/ghc/ghc/-/commit/c6132c782d974a7701e7f6447bdcd2bf6db4299a.patch?merge_request_iid=7423";
+      sha256 = "sha256-b4feGZIaKDj/UKjWTNY6/jH4s2iate0wAgMxG3rAbZI=";
     })
-  ] else if lib.versions.majorMinor version == "9.4" then [
+  ]
+
+  ++ lib.optionals (lib.versionAtLeast version "9.2") [
     # Don't generate code that doesn't compile when --enable-relocatable is passed to Setup.hs
     # Can be removed if the Cabal library included with ghc backports the linked fix
     (fetchpatch {
@@ -249,25 +254,13 @@ stdenv.mkDerivation (rec {
       sha256 = "sha256-yRQ6YmMiwBwiYseC5BsrEtDgFbWvst+maGgDtdD0vAY=";
     })
   ]
-  ++ lib.optionals (version == "9.4.5") [
-    # Fix docs build with sphinx >= 6.0
-    # https://gitlab.haskell.org/ghc/ghc/-/issues/22766
-    (fetchpatch {
-      name = "ghc-docs-sphinx-6.0.patch";
-      url = "https://gitlab.haskell.org/ghc/ghc/-/commit/10e94a556b4f90769b7fd718b9790d58ae566600.patch";
-      sha256 = "0kmhfamr16w8gch0lgln2912r8aryjky1hfcda3jkcwa5cdzgjdv";
-    })
-  ]
-  ++ [
 
-    # Fix docs build with Sphinx >= 7 https://gitlab.haskell.org/ghc/ghc/-/issues/24129
-    ./docs-sphinx-7.patch
-  ]
   ++ lib.optionals (version == "9.4.6") [
     # Work around a type not being defined when including Rts.h in bytestring's cbits
     # due to missing feature macros. See https://gitlab.haskell.org/ghc/ghc/-/issues/23810.
     ./9.4.6-bytestring-posix-source.patch
-  ] else [ ])
+  ]
+
   ++ lib.optionals (stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64) [
     # Prevent the paths module from emitting symbols that we don't use
     # when building with separate outputs.
@@ -293,19 +286,19 @@ stdenv.mkDerivation (rec {
     done
     # GHC is a bit confused on its cross terminology, as these would normally be
     # the *host* tools.
-    export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
-    export CXX="${targetCC}/bin/${targetCC.targetPrefix}c++"
+    export CC="${toolPath "cc" targetCC}"
+    export CXX="${toolPath "c++" targetCC}"
     # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
-    export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}"
-    export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
-    export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
-    export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
-    export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
-    export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
-    export STRIP="${bintoolsFor.strip}/bin/${bintoolsFor.strip.targetPrefix}strip"
+    export LD="${toolPath "ld${lib.optionalString useLdGold ".gold"}" targetCC}"
+    export AS="${toolPath "as" targetCC}"
+    export AR="${toolPath "ar" targetCC}"
+    export NM="${toolPath "nm" targetCC}"
+    export RANLIB="${toolPath "ranlib" targetCC}"
+    export READELF="${toolPath "readelf" targetCC}"
+    export STRIP="${toolPath "strip" targetCC}"
   '' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") ''
-    export OTOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}otool"
-    export INSTALL_NAME_TOOL="${bintoolsFor.install_name_tool}/bin/${bintoolsFor.install_name_tool.targetPrefix}install_name_tool"
+    export OTOOL="${toolPath "otool" targetCC}"
+    export INSTALL_NAME_TOOL="${toolPath "install_name_tool" targetCC}"
   '' + lib.optionalString useLLVM ''
     export LLC="${lib.getBin buildTargetLlvmPackages.llvm}/bin/llc"
     export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt"
@@ -313,12 +306,8 @@ stdenv.mkDerivation (rec {
     # LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm
     export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang"
   ''
-  + lib.optionalString (version == "9.0.2" || lib.versionAtLeast version "9.4") ''
-
-  '' + ''
+  + ''
     echo -n "${buildMK}" > mk/build.mk
-  '' + lib.optionalString (lib.versionAtLeast version "9.4") ''
-
   ''
   + lib.optionalString (lib.versionOlder version "9.2" || lib.versionAtLeast version "9.4") ''
     sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
@@ -456,7 +445,7 @@ stdenv.mkDerivation (rec {
 
   meta = {
     homepage = "http://haskell.org/ghc";
-    description = "The Glasgow Haskell Compiler";
+    description = "Glasgow Haskell Compiler";
     maintainers = with lib.maintainers; [
       guibou
     ] ++ lib.teams.haskell.members;
diff --git a/pkgs/development/compilers/ghdl/default.nix b/pkgs/development/compilers/ghdl/default.nix
index 96f1db0e6492d..3a28aa03c1108 100644
--- a/pkgs/development/compilers/ghdl/default.nix
+++ b/pkgs/development/compilers/ghdl/default.nix
@@ -1,6 +1,5 @@
 { stdenv
 , fetchFromGitHub
-, fetchpatch
 , callPackage
 , gnat
 , zlib
diff --git a/pkgs/development/compilers/gleam/default.nix b/pkgs/development/compilers/gleam/default.nix
index 7e5fd44916b5e..4e2111814deb1 100644
--- a/pkgs/development/compilers/gleam/default.nix
+++ b/pkgs/development/compilers/gleam/default.nix
@@ -12,13 +12,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gleam";
-  version = "1.1.0";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "gleam-lang";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-3DlsqUBAKF3zgiS26YQY1MzymLg9GnVzH1HMpbYv5Dc=";
+    hash = "sha256-J3FqaKEeK+Xy8Ri5j7+K+4wpvNeMUHSfj2O68XBPlYs=";
   };
 
   nativeBuildInputs = [ git pkg-config ];
@@ -26,15 +26,15 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ] ++
     lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
 
-  cargoHash = "sha256-KROGDBOsx1WTzv7IhJ3WWLJJ9zvrmZI5poJCr2tFcLY=";
+  cargoHash = "sha256-l0LFgmsk87mCVu1UiaFtP3mO01CDV3xTz4Kv+l6AAWw=";
 
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A statically typed language for the Erlang VM";
+    description = "Statically typed language for the Erlang VM";
     mainProgram = "gleam";
     homepage = "https://gleam.run/";
     license = licenses.asl20;
-    maintainers = teams.beam.members;
+    maintainers = teams.beam.members ++ [ lib.maintainers.philtaken ];
   };
 }
diff --git a/pkgs/development/compilers/gmqcc/default.nix b/pkgs/development/compilers/gmqcc/default.nix
index f027fa8fb13d9..144131887fbac 100644
--- a/pkgs/development/compilers/gmqcc/default.nix
+++ b/pkgs/development/compilers/gmqcc/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://graphitemaster.github.io/gmqcc/";
-    description = "A modern QuakeC compiler";
+    description = "Modern QuakeC compiler";
     mainProgram = "gmqcc";
     longDescription = ''
       For an enduring period of time the options for a decent compiler for
diff --git a/pkgs/development/compilers/gnostic/default.nix b/pkgs/development/compilers/gnostic/default.nix
index 082cf4da2af99..e6c2b665c215a 100644
--- a/pkgs/development/compilers/gnostic/default.nix
+++ b/pkgs/development/compilers/gnostic/default.nix
@@ -18,7 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/google/gnostic";
-    description = "A compiler for APIs described by the OpenAPI Specification with plugins for code generation and other API support tasks";
+    description = "Compiler for APIs described by the OpenAPI Specification with plugins for code generation and other API support tasks";
     changelog = "https://github.com/google/gnostic/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ urandom ];
diff --git a/pkgs/development/compilers/gnu-cim/default.nix b/pkgs/development/compilers/gnu-cim/default.nix
index f689517196a17..bf5b93c712fc5 100644
--- a/pkgs/development/compilers/gnu-cim/default.nix
+++ b/pkgs/development/compilers/gnu-cim/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A GNU compiler for the programming language Simula";
+    description = "GNU compiler for the programming language Simula";
     longDescription = ''
       GNU Cim is a compiler for the programming language Simula.
       It offers a class concept, separate compilation with full type checking,
diff --git a/pkgs/development/compilers/gnu-cobol/default.nix b/pkgs/development/compilers/gnu-cobol/default.nix
index e3233b059dd2a..5b01856786fed 100644
--- a/pkgs/development/compilers/gnu-cobol/default.nix
+++ b/pkgs/development/compilers/gnu-cobol/default.nix
@@ -93,7 +93,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An open-source COBOL compiler";
+    description = "Open-source COBOL compiler";
     homepage = "https://sourceforge.net/projects/gnucobol/";
     license = with licenses; [ gpl3Only lgpl3Only ];
     maintainers = with maintainers; [ ericsagnes lovesegfault ];
diff --git a/pkgs/development/compilers/gnu-smalltalk/0000-fix_mkorder.patch b/pkgs/development/compilers/gnu-smalltalk/0000-fix_mkorder.patch
new file mode 100644
index 0000000000000..7b6fae2d5f03e
--- /dev/null
+++ b/pkgs/development/compilers/gnu-smalltalk/0000-fix_mkorder.patch
@@ -0,0 +1,21 @@
+--- a/packages/gtk/mkorder.awk
++++ b/packages/gtk/mkorder.awk
+@@ -33,6 +33,9 @@
+     paths[1] = "."
+     n_paths = 1
+     n_prefixes = split(_prefixes, prefixes)
++
++	ignored_files = [ "glib/gwin32.h" ]
++
+     split(_libs, libs)
+     split(_files, files)
+     for (i = 1; (i in libs); i++)
+@@ -60,7 +63,7 @@
+
+ function process_file(name, file) {
+     file = find_file(name)
+-    if (file in processed)
++    if ((name in ignored_files) or (file in processed))
+ 	return
+     processed[file] = 1
+     if (file == "")
diff --git a/pkgs/development/compilers/gnu-smalltalk/default.nix b/pkgs/development/compilers/gnu-smalltalk/default.nix
index 1caf96c715cbb..68ebbad63ca2b 100644
--- a/pkgs/development/compilers/gnu-smalltalk/default.nix
+++ b/pkgs/development/compilers/gnu-smalltalk/default.nix
@@ -25,6 +25,12 @@ in stdenv.mkDerivation rec {
     sha256 = "1k2ssrapfzhngc7bg1zrnd9n2vyxp9c9m70byvsma6wapbvib6l1";
   };
 
+  patches = [
+    # The awk script incorrectly parsed `glib/glib.h` and was trying to find `glib/gwin32.h`,
+    # that isn't included since we're building only for linux.
+    ./0000-fix_mkorder.patch
+  ];
+
   # The dependencies and their justification are explained at
   # http://smalltalk.gnu.org/download
   nativeBuildInputs = [ pkg-config ];
@@ -45,7 +51,7 @@ in stdenv.mkDerivation rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A free implementation of the Smalltalk-80 language";
+    description = "Free implementation of the Smalltalk-80 language";
     longDescription = ''
       GNU Smalltalk is a free implementation of the Smalltalk-80 language. It
       runs on most POSIX compatible operating systems (including GNU/Linux, of
diff --git a/pkgs/development/compilers/go-jsonnet/default.nix b/pkgs/development/compilers/go-jsonnet/default.nix
index 909e15c9e5558..8f419a189e82e 100644
--- a/pkgs/development/compilers/go-jsonnet/default.nix
+++ b/pkgs/development/compilers/go-jsonnet/default.nix
@@ -21,7 +21,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "An implementation of Jsonnet in pure Go";
+    description = "Implementation of Jsonnet in pure Go";
     homepage = "https://github.com/google/go-jsonnet";
     license = licenses.asl20;
     maintainers = with maintainers; [ nshalman aaronjheng ];
diff --git a/pkgs/development/compilers/go/1.21.nix b/pkgs/development/compilers/go/1.21.nix
index 4d9982f2b265f..312106f6388c3 100644
--- a/pkgs/development/compilers/go/1.21.nix
+++ b/pkgs/development/compilers/go/1.21.nix
@@ -47,11 +47,11 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "go";
-  version = "1.21.10";
+  version = "1.21.11";
 
   src = fetchurl {
     url = "https://go.dev/dl/go${finalAttrs.version}.src.tar.gz";
-    hash = "sha256-kA4K/okAwe5lqKjE8MWjygLc+FwdHLE6ZSviLCE5k5Q=";
+    hash = "sha256-Qq7pvytpVsdaetaqPwpRtYIf/qxX9aLnM6LW6uHm2dI=";
   };
 
   strictDeps = true;
@@ -180,7 +180,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     changelog = "https://go.dev/doc/devel/release#go${lib.versions.majorMinor finalAttrs.version}";
-    description = "The Go Programming language";
+    description = "Go Programming language";
     homepage = "https://go.dev/";
     license = licenses.bsd3;
     maintainers = teams.golang.members;
diff --git a/pkgs/development/compilers/go/1.22.nix b/pkgs/development/compilers/go/1.22.nix
index c0103090b3314..d3b8982118aeb 100644
--- a/pkgs/development/compilers/go/1.22.nix
+++ b/pkgs/development/compilers/go/1.22.nix
@@ -37,6 +37,7 @@ let
     "riscv64" = "riscv64";
     "s390x" = "s390x";
     "x86_64" = "amd64";
+    "wasm32" = "wasm";
   }.${platform.parsed.cpu.name} or (throw "Unsupported system: ${platform.parsed.cpu.name}");
 
   # We need a target compiler which is still runnable at build time,
@@ -90,7 +91,7 @@ stdenv.mkDerivation (finalAttrs: {
     ./go_no_vendor_checks-1.22.patch
   ];
 
-  GOOS = stdenv.targetPlatform.parsed.kernel.name;
+  GOOS = if stdenv.targetPlatform.isWasi then "wasip1" else stdenv.targetPlatform.parsed.kernel.name;
   GOARCH = goarch stdenv.targetPlatform;
   # GOHOSTOS/GOHOSTARCH must match the building system, not the host system.
   # Go will nevertheless build a for host system that we will copy over in
@@ -113,7 +114,8 @@ stdenv.mkDerivation (finalAttrs: {
 
   GOARM = toString (lib.intersectLists [ (stdenv.hostPlatform.parsed.cpu.version or "") ] [ "5" "6" "7" ]);
   GO386 = "softfloat"; # from Arch: don't assume sse2 on i686
-  CGO_ENABLED = 1;
+  # Wasi does not support CGO
+  CGO_ENABLED = if stdenv.targetPlatform.isWasi then 0 else 1;
 
   GOROOT_BOOTSTRAP = if useGccGoBootstrap then goBootstrap else "${goBootstrap}/share/go";
 
@@ -180,11 +182,11 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     changelog = "https://go.dev/doc/devel/release#go${lib.versions.majorMinor finalAttrs.version}";
-    description = "The Go Programming language";
+    description = "Go Programming language";
     homepage = "https://go.dev/";
     license = licenses.bsd3;
     maintainers = teams.golang.members;
-    platforms = platforms.darwin ++ platforms.linux;
+    platforms = platforms.darwin ++ platforms.linux ++ platforms.wasi;
     mainProgram = "go";
   };
 })
diff --git a/pkgs/development/compilers/gwt/2.4.0.nix b/pkgs/development/compilers/gwt/2.4.0.nix
index b998266487cfb..b769eb30463a9 100644
--- a/pkgs/development/compilers/gwt/2.4.0.nix
+++ b/pkgs/development/compilers/gwt/2.4.0.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://www.gwtproject.org/";
-    description = "A development toolkit for building and optimizing complex browser-based applications";
+    description = "Development toolkit for building and optimizing complex browser-based applications";
     license = lib.licenses.asl20;
     platforms = lib.platforms.unix;
   };
diff --git a/pkgs/development/compilers/hop/default.nix b/pkgs/development/compilers/hop/default.nix
index 00900b6fffe48..0c1f2a09e1238 100644
--- a/pkgs/development/compilers/hop/default.nix
+++ b/pkgs/development/compilers/hop/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A multi-tier programming language for the Web 2.0 and the so-called diffuse Web";
+    description = "Multi-tier programming language for the Web 2.0 and the so-called diffuse Web";
     homepage = "http://hop.inria.fr/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/development/compilers/hvm/default.nix b/pkgs/development/compilers/hvm/default.nix
index b640d4e11c2de..1399717994b35 100644
--- a/pkgs/development/compilers/hvm/default.nix
+++ b/pkgs/development/compilers/hvm/default.nix
@@ -7,24 +7,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "hvm";
-  version = "2.0.12";
+  version = "2.0.17";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-/55SK/5zBKXmucRQPoYt/8IHxisQlOxNEVMAZVMtCNI=";
+    hash = "sha256-UzPEupmUnph7SjCc/T4sBSGXj8yLVdQlw+X9iM16zD8=";
   };
 
-  cargoHash = "sha256-9U8Y0KaQHIfOZnCKbl94VvjS/7Qmi6UnKMDZDTXcye0=";
+  cargoHash = "sha256-AchVbf+mn4qQtzWu84Dqek+btCm6BA9mcY+8iHWqdiw=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk_11_0.frameworks.IOKit
   ];
 
-  # enable nightly features
-  RUSTC_BOOTSTRAP = true;
-
   meta = with lib; {
-    description = "A massively parallel, optimal functional runtime in Rust";
+    description = "Massively parallel, optimal functional runtime in Rust";
     mainProgram = "hvm";
     homepage = "https://github.com/higherorderco/hvm";
     license = licenses.asl20;
diff --git a/pkgs/development/compilers/idris2/idris2.nix b/pkgs/development/compilers/idris2/idris2.nix
index 452e9da97c352..4d28b35bd4a98 100644
--- a/pkgs/development/compilers/idris2/idris2.nix
+++ b/pkgs/development/compilers/idris2/idris2.nix
@@ -90,7 +90,7 @@ in stdenv.mkDerivation rec {
   passthru.tests = callPackage ./tests.nix { inherit pname; };
 
   meta = {
-    description = "A purely functional programming language with first class types";
+    description = "Purely functional programming language with first class types";
     mainProgram = "idris2";
     homepage = "https://github.com/idris-lang/Idris2";
     license = lib.licenses.bsd3;
diff --git a/pkgs/development/compilers/inform7/default.nix b/pkgs/development/compilers/inform7/default.nix
index 0fba6d7c4a497..cb464e3484c2c 100644
--- a/pkgs/development/compilers/inform7/default.nix
+++ b/pkgs/development/compilers/inform7/default.nix
@@ -22,7 +22,7 @@ in stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A design system for interactive fiction";
+    description = "Design system for interactive fiction";
     mainProgram = "i7";
     homepage = "http://inform7.com/";
     license = licenses.artistic2;
diff --git a/pkgs/development/compilers/intercal/default.nix b/pkgs/development/compilers/intercal/default.nix
index 1fde0f320c405..6e6fd63fa5b2d 100644
--- a/pkgs/development/compilers/intercal/default.nix
+++ b/pkgs/development/compilers/intercal/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The original esoteric programming language";
+    description = "Original esoteric programming language";
     longDescription = ''
       INTERCAL, an abbreviation for "Compiler Language With No
       Pronounceable Acronym", is a famously esoterical programming
diff --git a/pkgs/development/compilers/ispc/default.nix b/pkgs/development/compilers/ispc/default.nix
index b7f2ad1228b7f..b8c48c5c6a018 100644
--- a/pkgs/development/compilers/ispc/default.nix
+++ b/pkgs/development/compilers/ispc/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch
+{ lib, stdenv, fetchFromGitHub
 , cmake, which, m4, python3, bison, flex, llvmPackages, ncurses, xcode, tbb
   # the default test target is sse4, but that is not supported by all Hydra agents
 , testedTargets ? if stdenv.isAarch64 || stdenv.isAarch32 then [ "neon-i32x4" ] else [ "sse2-i32x4" ]
@@ -6,13 +6,15 @@
 
 stdenv.mkDerivation rec {
   pname   = "ispc";
-  version = "1.23.0";
+  version = "1.24.0";
+
+  dontFixCmake = true; # https://github.com/NixOS/nixpkgs/pull/232522#issuecomment-2133803566
 
   src = fetchFromGitHub {
     owner  = pname;
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "sha256-zixPt7YICCG0N8t1pcXEu/sPKCVLQVPCiJsQEqEXl+A=";
+    sha256 = "sha256-1Ns8w34fXgYrSu3XE89uowjaVoW3MOgKYV1Jb/XRj1Q=";
   };
 
   nativeBuildInputs = [ cmake which m4 bison flex python3 llvmPackages.libllvm.dev tbb ] ++ lib.lists.optionals stdenv.isDarwin [ xcode ];
diff --git a/pkgs/development/compilers/jasmin-compiler/default.nix b/pkgs/development/compilers/jasmin-compiler/default.nix
index 9efe47ae371e8..3e5ff09a70900 100644
--- a/pkgs/development/compilers/jasmin-compiler/default.nix
+++ b/pkgs/development/compilers/jasmin-compiler/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jasmin-compiler";
-  version = "2023.06.3";
+  version = "2023.06.4";
 
   src = fetchurl {
     url = "https://github.com/jasmin-lang/jasmin/releases/download/v${version}/jasmin-compiler-v${version}.tar.bz2";
-    hash = "sha256-Fp3QMsBaPOA6L6kOgffoHaJAypJDt8JxT8EVDDpPAKs=";
+    hash = "sha256-b1lrVbXJQeg+7tI7JcR9JTuiel/b/mctU1caT/y/4SA=";
   };
 
   sourceRoot = "jasmin-compiler-v${version}/compiler";
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A workbench for high-assurance and high-speed cryptography";
+    description = "Workbench for high-assurance and high-speed cryptography";
     homepage = "https://github.com/jasmin-lang/jasmin/";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/compilers/jasmin/default.nix b/pkgs/development/compilers/jasmin/default.nix
index 685e6aa9537e2..e10109979f322 100644
--- a/pkgs/development/compilers/jasmin/default.nix
+++ b/pkgs/development/compilers/jasmin/default.nix
@@ -51,7 +51,7 @@ in stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "An assembler for the Java Virtual Machine";
+    description = "Assembler for the Java Virtual Machine";
     downloadPage = "https://sourceforge.net/projects/jasmin/files/latest/download";
     homepage = "https://jasmin.sourceforge.net/";
     license = licenses.bsd3;
diff --git a/pkgs/development/compilers/jetbrains-jdk/17.nix b/pkgs/development/compilers/jetbrains-jdk/17.nix
new file mode 100644
index 0000000000000..76d4079baafbf
--- /dev/null
+++ b/pkgs/development/compilers/jetbrains-jdk/17.nix
@@ -0,0 +1,156 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, jetbrains
+, openjdk17
+, openjdk17-bootstrap
+, git
+, autoconf
+, unzip
+, rsync
+, debugBuild ? false
+, withJcef ? true
+
+, libXdamage
+, libXxf86vm
+, libXrandr
+, libXi
+, libXcursor
+, libXrender
+, libX11
+, libXext
+, libxcb
+, nss
+, nspr
+, libdrm
+, mesa
+, wayland
+, udev
+}:
+
+assert debugBuild -> withJcef;
+
+let
+  arch = {
+    "aarch64-linux" = "aarch64";
+    "x86_64-linux" = "x64";
+  }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+  cpu = stdenv.hostPlatform.parsed.cpu.name;
+in
+openjdk17.overrideAttrs (oldAttrs: rec {
+  pname = "jetbrains-jdk" + lib.optionalString withJcef "-jcef";
+  javaVersion = "17.0.11";
+  build = "1207.24";
+  # To get the new tag:
+  # git clone https://github.com/jetbrains/jetbrainsruntime
+  # cd jetbrainsruntime
+  # git reset --hard [revision]
+  # git log --simplify-by-decoration --decorate=short --pretty=short | grep "jbr-" --color=never | cut -d "(" -f2 | cut -d ")" -f1 | awk '{print $2}' | sort -t "-" -k 2 -g | tail -n 1 | tr -d ","
+  openjdkTag = "jbr-17.0.8+7";
+  version = "${javaVersion}-b${build}";
+
+  src = fetchFromGitHub {
+    owner = "JetBrains";
+    repo = "JetBrainsRuntime";
+    rev = "jb${version}";
+    hash = "sha256-a7cJF2iCW/1GK0/GmVbaY5pYcn3YtZy5ngFkyAGRhu0=";
+  };
+
+  BOOT_JDK = openjdk17-bootstrap.home;
+  # run `git log -1 --pretty=%ct` in jdk repo for new value on update
+  SOURCE_DATE_EPOCH = 1715809405;
+
+  patches = [ ];
+
+  dontConfigure = true;
+
+  buildPhase = ''
+    runHook preBuild
+
+    ${lib.optionalString withJcef "cp -r ${jetbrains.jcef} jcef_linux_${arch}"}
+
+    sed \
+        -e "s/OPENJDK_TAG=.*/OPENJDK_TAG=${openjdkTag}/" \
+        -e "s/SOURCE_DATE_EPOCH=.*//" \
+        -e "s/export SOURCE_DATE_EPOCH//" \
+        -i jb/project/tools/common/scripts/common.sh
+    sed -i "s/STATIC_CONF_ARGS/STATIC_CONF_ARGS \$configureFlags/" jb/project/tools/linux/scripts/mkimages_${arch}.sh
+    sed \
+        -e "s/create_image_bundle \"jb/#/" \
+        -e "s/echo Creating /exit 0 #/" \
+        -i jb/project/tools/linux/scripts/mkimages_${arch}.sh
+
+    patchShebangs .
+    ./jb/project/tools/linux/scripts/mkimages_${arch}.sh ${build} ${if debugBuild then "fd" else (if withJcef then "jcef" else "nomod")}
+
+    runHook postBuild
+  '';
+
+  installPhase =
+    let
+      buildType = if debugBuild then "fastdebug" else "release";
+      debugSuffix = if debugBuild then "-fastdebug" else "";
+      jcefSuffix = if debugBuild || !withJcef then "" else "_jcef";
+      jbrsdkDir = "jbrsdk${jcefSuffix}-${javaVersion}-linux-${arch}${debugSuffix}-b${build}";
+    in
+    ''
+      runHook preInstall
+
+      mv build/linux-${cpu}-server-${buildType}/images/jdk/man build/linux-${cpu}-server-${buildType}/images/${jbrsdkDir}
+      rm -rf build/linux-${cpu}-server-${buildType}/images/jdk
+      mv build/linux-${cpu}-server-${buildType}/images/${jbrsdkDir} build/linux-${cpu}-server-${buildType}/images/jdk
+    '' + oldAttrs.installPhase + "runHook postInstall";
+
+  postInstall = lib.optionalString withJcef ''
+    chmod +x $out/lib/openjdk/lib/chrome-sandbox
+  '';
+
+  dontStrip = debugBuild;
+
+  postFixup = ''
+    # Build the set of output library directories to rpath against
+    LIBDIRS="${lib.makeLibraryPath [
+      libXdamage libXxf86vm libXrandr libXi libXcursor libXrender libX11 libXext libxcb
+      nss nspr libdrm mesa wayland udev
+    ]}"
+    for output in $outputs; do
+      if [ "$output" = debug ]; then continue; fi
+      LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort -u | tr '\n' ':'):$LIBDIRS"
+    done
+    # Add the local library paths to remove dependencies on the bootstrap
+    for output in $outputs; do
+      if [ "$output" = debug ]; then continue; fi
+      OUTPUTDIR=$(eval echo \$$output)
+      BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*)
+      echo "$BINLIBS" | while read i; do
+        patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true
+        patchelf --shrink-rpath "$i" || true
+      done
+    done
+  '';
+
+  nativeBuildInputs = [ git autoconf unzip rsync ] ++ oldAttrs.nativeBuildInputs;
+
+  meta = with lib; {
+    description = "An OpenJDK fork to better support Jetbrains's products.";
+    longDescription = ''
+      JetBrains Runtime is a runtime environment for running IntelliJ Platform
+      based products on Windows, Mac OS X, and Linux. JetBrains Runtime is
+      based on OpenJDK project with some modifications. These modifications
+      include: Subpixel Anti-Aliasing, enhanced font rendering on Linux, HiDPI
+      support, ligatures, some fixes for native crashes not presented in
+      official build, and other small enhancements.
+      JetBrains Runtime is not a certified build of OpenJDK. Please, use at
+      your own risk.
+    '';
+    homepage = "https://confluence.jetbrains.com/display/JBR/JetBrains+Runtime";
+    inherit (openjdk17.meta) license platforms mainProgram;
+    maintainers = with maintainers; [ edwtjo ];
+
+    broken = stdenv.isDarwin;
+  };
+
+  passthru = oldAttrs.passthru // {
+    home = "${jetbrains.jdk}/lib/openjdk";
+  };
+})
diff --git a/pkgs/development/compilers/jetbrains-jdk/default.nix b/pkgs/development/compilers/jetbrains-jdk/default.nix
index 1e6b86b17b8e4..5a5b4c2886557 100644
--- a/pkgs/development/compilers/jetbrains-jdk/default.nix
+++ b/pkgs/development/compilers/jetbrains-jdk/default.nix
@@ -2,8 +2,7 @@
 , stdenv
 , fetchFromGitHub
 , jetbrains
-, openjdk17
-, openjdk17-bootstrap
+, jdk
 , git
 , autoconf
 , unzip
@@ -37,28 +36,28 @@ let
   }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   cpu = stdenv.hostPlatform.parsed.cpu.name;
 in
-openjdk17.overrideAttrs (oldAttrs: rec {
+jdk.overrideAttrs (oldAttrs: rec {
   pname = "jetbrains-jdk" + lib.optionalString withJcef "-jcef";
-  javaVersion = "17.0.8";
-  build = "1000.8";
+  javaVersion = "21.0.3";
+  build = "465.3";
   # To get the new tag:
   # git clone https://github.com/jetbrains/jetbrainsruntime
   # cd jetbrainsruntime
-  # git reset --hard [revision]
+  # git checkout jbr-release-${javaVersion}b${build}
   # git log --simplify-by-decoration --decorate=short --pretty=short | grep "jbr-" --color=never | cut -d "(" -f2 | cut -d ")" -f1 | awk '{print $2}' | sort -t "-" -k 2 -g | tail -n 1 | tr -d ","
-  openjdkTag = "jbr-17.0.7+7";
+  openjdkTag = "jbr-21.0.2+3";
   version = "${javaVersion}-b${build}";
 
   src = fetchFromGitHub {
     owner = "JetBrains";
     repo = "JetBrainsRuntime";
     rev = "jb${version}";
-    hash = "sha256-PXS8wRF37D9vzeC4CvmB3szFMbt+NRqhQqtPZcbeAO8=";
+    hash = "sha256-Pup/XeHExCE6yy2o74wF7VlYU6MI9cg8gb69V3bclIo=";
   };
 
-  BOOT_JDK = openjdk17-bootstrap.home;
+  BOOT_JDK = jdk.home;
   # run `git log -1 --pretty=%ct` in jdk repo for new value on update
-  SOURCE_DATE_EPOCH = 1691119859;
+  SOURCE_DATE_EPOCH = 1717225235;
 
   patches = [ ];
 
@@ -74,7 +73,8 @@ openjdk17.overrideAttrs (oldAttrs: rec {
         -e "s/SOURCE_DATE_EPOCH=.*//" \
         -e "s/export SOURCE_DATE_EPOCH//" \
         -i jb/project/tools/common/scripts/common.sh
-    sed -i "s/STATIC_CONF_ARGS/STATIC_CONF_ARGS \$configureFlags/" jb/project/tools/linux/scripts/mkimages_${arch}.sh
+    configureFlags=$(echo $configureFlags | sed 's/--host=[^ ]*//')
+    sed -i "s|STATIC_CONF_ARGS|STATIC_CONF_ARGS \$configureFlags|" jb/project/tools/linux/scripts/mkimages_${arch}.sh
     sed \
         -e "s/create_image_bundle \"jb/#/" \
         -e "s/echo Creating /exit 0 #/" \
@@ -132,7 +132,7 @@ openjdk17.overrideAttrs (oldAttrs: rec {
   nativeBuildInputs = [ git autoconf unzip rsync ] ++ oldAttrs.nativeBuildInputs;
 
   meta = with lib; {
-    description = "An OpenJDK fork to better support Jetbrains's products.";
+    description = "OpenJDK fork to better support Jetbrains's products";
     longDescription = ''
       JetBrains Runtime is a runtime environment for running IntelliJ Platform
       based products on Windows, Mac OS X, and Linux. JetBrains Runtime is
@@ -144,7 +144,7 @@ openjdk17.overrideAttrs (oldAttrs: rec {
       your own risk.
     '';
     homepage = "https://confluence.jetbrains.com/display/JBR/JetBrains+Runtime";
-    inherit (openjdk17.meta) license platforms mainProgram;
+    inherit (jdk.meta) license platforms mainProgram;
     maintainers = with maintainers; [ edwtjo ];
 
     broken = stdenv.isDarwin;
diff --git a/pkgs/development/compilers/jetbrains-jdk/jcef.nix b/pkgs/development/compilers/jetbrains-jdk/jcef.nix
index 770aab0e7de82..0ed9c159b128e 100644
--- a/pkgs/development/compilers/jetbrains-jdk/jcef.nix
+++ b/pkgs/development/compilers/jetbrains-jdk/jcef.nix
@@ -4,7 +4,7 @@
 , stdenv
 , cmake
 , python3
-, jdk17
+, jdk
 , git
 , libcef
 , rsync
@@ -22,6 +22,7 @@
 , atk
 , at-spi2-atk
 , libdrm
+, libGL
 , expat
 , libxcb
 , libxkbcommon
@@ -41,6 +42,8 @@
 , cups
 , libxshmfence
 , udev
+, boost
+, thrift
 }:
 
 assert !stdenv.isDarwin;
@@ -54,6 +57,7 @@ let
     atk
     at-spi2-atk
     libdrm
+    libGL
     expat
     libxcb
     libxkbcommon
@@ -97,28 +101,28 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "jcef-jetbrains";
-  rev = "9f8d4fb20b4658db6b2b6bc08e5dd0d8c7340290";
+  rev = "34dfd656652c24da31b89c39d0885f284722eeaa";
   # This is the commit number
-  # Currently from the branch: https://github.com/JetBrains/jcef/tree/232
+  # Currently from the branch: https://github.com/JetBrains/jcef/tree/242
   # Run `git rev-list --count HEAD`
-  version = "675";
+  version = "867";
 
-  nativeBuildInputs = [ cmake python3 jdk17 git rsync ant ninja strip-nondeterminism stripJavaArchivesHook ];
-  buildInputs = [ libX11 libXdamage nss nspr ];
+  nativeBuildInputs = [ cmake python3 jdk git rsync ant ninja strip-nondeterminism stripJavaArchivesHook ];
+  buildInputs = [ boost libX11 libXdamage nss nspr thrift ];
 
   src = fetchFromGitHub {
     owner = "jetbrains";
     repo = "jcef";
     inherit rev;
-    hash = "sha256-8zsgcWl0lZtC1oud5IlkUdeXxJUlHoRfw8t0FrZUQec=";
+    hash = "sha256-JlTGKqvgdBpBs2xtFMTVJ/ZksT1uME/8a2g7niH2sq8=";
   };
   cef-bin =
     let
       # `cef_binary_${CEF_VERSION}_linux64_minimal`, where CEF_VERSION is from $src/CMakeLists.txt
-      name = "cef_binary_111.2.1+g870da30+chromium-111.0.5563.64_${platform}_minimal";
+      name = "cef_binary_122.1.9+gd14e051+chromium-122.0.6261.94_${platform}_minimal";
       hash = {
-        "linuxarm64" = "sha256-gCDIfWsysXE8lHn7H+YM3Jag+mdbWwTQpJf0GKdXEVs=";
-        "linux64" = "sha256-r+zXTmDN5s/bYLvbCnHufYdXIqQmCDlbWgs5pdOpLTw=";
+        "linuxarm64" = "sha256-wABtvz0JHitlkkB748I7yr02Oxs5lXvqDfrBAQiKWHU=";
+        "linux64" = "sha256-qlutM0IsE1emcMe/3p7kwMIK7ou1rZGvpUkrSMVPnCc=";
       }.${platform};
       urlName = builtins.replaceStrings [ "+" ] [ "%2B" ] name;
     in
@@ -126,6 +130,7 @@ stdenv.mkDerivation rec {
       url = "https://cef-builds.spotifycdn.com/${urlName}.tar.bz2";
       inherit name hash;
     };
+  # Find the hash in tools/buildtools/linux64/clang-format.sha1
   clang-fmt = fetchurl {
     url = "https://storage.googleapis.com/chromium-clang-format/dd736afb28430c9782750fc0fd5f0ed497399263";
     hash = "sha256-4H6FVO9jdZtxH40CSfS+4VESAHgYgYxfCBFSMHdT0hE=";
@@ -139,6 +144,7 @@ stdenv.mkDerivation rec {
     cp -r ${cef-bin} third_party/cef/${cef-bin.name}
     chmod +w -R third_party/cef/${cef-bin.name}
     patchelf third_party/cef/${cef-bin.name}/${buildType}/libcef.so --set-rpath "${rpath}" --add-needed libudev.so
+    patchelf third_party/cef/${cef-bin.name}/${buildType}/libGLESv2.so --set-rpath "${rpath}" --add-needed libGL.so.1
     patchelf third_party/cef/${cef-bin.name}/${buildType}/chrome-sandbox --set-interpreter $(cat $NIX_BINTOOLS/nix-support/dynamic-linker)
     sed 's/-O0/-O2/' -i third_party/cef/${cef-bin.name}/cmake/cef_variables.cmake
 
@@ -152,6 +158,14 @@ stdenv.mkDerivation rec {
     cp ${clang-fmt} tools/buildtools/linux64/clang-format
     chmod +w tools/buildtools/linux64/clang-format
 
+    sed \
+      -e 's|include(cmake/vcpkg.cmake)||' \
+      -e 's|bring_vcpkg()||' \
+      -e 's|vcpkg_install_package(boost-filesystem boost-interprocess thrift)||' \
+      -i CMakeLists.txt
+
+    sed -e 's|vcpkg_bring_host_thrift()|set(THRIFT_COMPILER_HOST ${thrift}/bin/thrift)|' -i remote/CMakeLists.txt
+
     mkdir jcef_build
     cd jcef_build
 
@@ -167,11 +181,15 @@ stdenv.mkDerivation rec {
     ../tools/compile.sh ${platform} Release
   '';
 
-  # Mostly taken from jb/tools/common/create_modules.sh
+  # N.B. For new versions, manually synchronize the following
+  # definitions with jb/tools/common/create_modules.sh to include
+  # newly added modules
   installPhase = ''
     runHook preInstall
 
     export JCEF_ROOT_DIR=$(realpath ..)
+    export THRIFT_DIR="$JCEF_ROOT_DIR"/third_party/thrift
+    export THRIFT_JAR=libthrift-0.19.0.jar
     export OUT_NATIVE_DIR=$JCEF_ROOT_DIR/jcef_build/native/${buildType}
     export JB_TOOLS_DIR=$(realpath ../jb/tools)
     export JB_TOOLS_OS_DIR=$JB_TOOLS_DIR/linux
@@ -231,6 +249,11 @@ stdenv.mkDerivation rec {
   '' + ''
 
     cd ../jcef
+    cp "$THRIFT_DIR"/"$THRIFT_JAR" .
+    cp "$JB_TOOLS_DIR"/common/thrift-module-info.java module-info.java
+    javac --patch-module org.apache.thrift=$THRIFT_JAR module-info.java
+    jar uf $THRIFT_JAR module-info.class
+    rm module-info.class module-info.java
     cp "$OUT_CLS_DIR"/jcef.jar .
     mkdir lib
     cp -R "$OUT_NATIVE_DIR"/* lib
@@ -251,6 +274,7 @@ stdenv.mkDerivation rec {
     jmod create --module-path . --class-path jogl-all.jar --libs lib $out/jmods/jogl.all.jmod
     cd ../jcef
     jmod create --module-path . --class-path jcef.jar --libs lib $out/jmods/jcef.jmod
+    jmod create --module-path . --class-path $THRIFT_JAR $out/jmods/org.apache.thrift.jmod
 
     # stripJavaArchivesHook gets rid of jar file timestamps, but not of jmod file timestamps
     # We have to manually call strip-nondeterminism to do this for jmod files too
diff --git a/pkgs/development/compilers/julia/default.nix b/pkgs/development/compilers/julia/default.nix
index 130b65158cecb..becbd64ea55b2 100644
--- a/pkgs/development/compilers/julia/default.nix
+++ b/pkgs/development/compilers/julia/default.nix
@@ -30,12 +30,12 @@ in
     { });
   julia_110-bin = wrapJulia (callPackage
     (import ./generic-bin.nix {
-      version = "1.10.3";
+      version = "1.10.4";
       sha256 = {
-        x86_64-linux = "81b910c922fff0e27ae1f256f2cc803db81f3960215281eddd2d484721928c70";
-        aarch64-linux = "2d52a61826872b3170c65f99a954bd9d21a31211cb50948056d924f811a0024f";
-        x86_64-darwin = "af61600db0abdc56fffb1b47cd18c30213b8925796546b53b657e164126082b4";
-        aarch64-darwin = "9ea32daa1bef34c8e48d6c76187f48fd2bf1054cc921fb8c374b737b51c9ffdd";
+        x86_64-linux = "079f61757c3b5b40d2ade052b3cc4816f50f7ef6df668825772562b3746adff1";
+        aarch64-linux = "ae4ae6ade84a103cdf30ce91c8d4035a0ef51c3e2e66f90a0c13abeb4e100fc4";
+        x86_64-darwin = "259c18a5294dd41cc60117ecb9fc5a8b2f659807284903a65439fb9d3818c763";
+        aarch64-darwin = "97b88d7f9b5724118769f3a3bd259f8f7ada48cdecf3d584cf68162dd873dd10";
       };
     })
     { });
@@ -50,10 +50,9 @@ in
     { });
   julia_110 = wrapJulia (callPackage
     (import ./generic.nix {
-      version = "1.10.3";
-      hash = "sha256-2JKyEjvmTaz50F5My61/F5f2v4fDl6dIBLARyHUPbI8=";
+      version = "1.10.4";
+      hash = "sha256-8y5Sd/XYKmOCSILN6/rBWBmbuEgUw8AZo/7MNgFYYZE=";
       patches = [
-        ./patches/1.10/0001-skip-building-docs-as-it-requires-network-access.patch
         ./patches/1.10/0002-skip-failing-and-flaky-tests.patch
       ];
     })
diff --git a/pkgs/development/compilers/julia/generic.nix b/pkgs/development/compilers/julia/generic.nix
index 7f690d44e1634..209e97edcce70 100644
--- a/pkgs/development/compilers/julia/generic.nix
+++ b/pkgs/development/compilers/julia/generic.nix
@@ -52,10 +52,10 @@ stdenv.mkDerivation rec {
     "prefix=$(out)"
     "USE_BINARYBUILDER=0"
   ] ++ lib.optionals stdenv.isx86_64 [
-    # https://github.com/JuliaCI/julia-buildbot/blob/master/master/inventory.py
-    "JULIA_CPU_TARGET=generic;sandybridge,-xsaveopt,clone_all;haswell,-rdrnd,base(1)"
+    # https://github.com/JuliaCI/julia-buildkite/blob/main/utilities/build_envs.sh
+    "JULIA_CPU_TARGET=generic;sandybridge,-xsaveopt,clone_all;haswell,-rdrnd,base(1);x86-64-v4,-rdrnd,base(1)"
   ] ++ lib.optionals stdenv.isAarch64 [
-    "JULIA_CPU_TARGET=generic;cortex-a57;thunderx2t99;armv8.2-a,crypto,fullfp16,lse,rdm"
+    "JULIA_CPU_TARGET=generic;cortex-a57;thunderx2t99;carmel,clone_all;apple-m1,base(3);neoverse-512tvb,base(3)"
   ];
 
   # remove forbidden reference to $TMPDIR
diff --git a/pkgs/development/compilers/julia/patches/1.10/0001-skip-building-docs-as-it-requires-network-access.patch b/pkgs/development/compilers/julia/patches/1.10/0001-skip-building-docs-as-it-requires-network-access.patch
deleted file mode 100644
index 6ff33b342cfdc..0000000000000
--- a/pkgs/development/compilers/julia/patches/1.10/0001-skip-building-docs-as-it-requires-network-access.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From da7e7b2c622bcfdc3e6484a64ade50d22d52c4dd Mon Sep 17 00:00:00 2001
-From: Nick Cao <nickcao@nichi.co>
-Date: Wed, 10 Jan 2024 19:48:19 -0500
-Subject: [PATCH 1/2] skip building docs as it requires network access
-
----
- Makefile | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 1565014a0f..edd5c65244 100644
---- a/Makefile
-+++ b/Makefile
-@@ -265,7 +265,7 @@ define stringreplace
- endef
- 
- 
--install: $(build_depsbindir)/stringreplace docs
-+install: $(build_depsbindir)/stringreplace
- 	@$(MAKE) $(QUIET_MAKE) $(JULIA_BUILD_MODE)
- 	@for subdir in $(bindir) $(datarootdir)/julia/stdlib/$(VERSDIR) $(docdir) $(man1dir) $(includedir)/julia $(libdir) $(private_libdir) $(sysconfdir) $(private_libexecdir); do \
- 		mkdir -p $(DESTDIR)$$subdir; \
-@@ -368,8 +368,6 @@ endif
- 	cp -R -L $(JULIAHOME)/base/* $(DESTDIR)$(datarootdir)/julia/base
- 	cp -R -L $(JULIAHOME)/test/* $(DESTDIR)$(datarootdir)/julia/test
- 	cp -R -L $(build_datarootdir)/julia/* $(DESTDIR)$(datarootdir)/julia
--	# Copy documentation
--	cp -R -L $(BUILDROOT)/doc/_build/html $(DESTDIR)$(docdir)/
- 	# Remove various files which should not be installed
- 	-rm -f $(DESTDIR)$(datarootdir)/julia/base/version_git.sh
- 	-rm -f $(DESTDIR)$(datarootdir)/julia/test/Makefile
--- 
-2.43.0
-
diff --git a/pkgs/development/compilers/kind2/default.nix b/pkgs/development/compilers/kind2/default.nix
index 95eedb80670f0..617f868803635 100644
--- a/pkgs/development/compilers/kind2/default.nix
+++ b/pkgs/development/compilers/kind2/default.nix
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage rec {
   RUSTC_BOOTSTRAP = true;
 
   meta = with lib; {
-    description = "A functional programming language and proof assistant";
+    description = "Functional programming language and proof assistant";
     mainProgram = "kind2";
     homepage = "https://github.com/higherorderco/kind";
     license = licenses.mit;
diff --git a/pkgs/development/compilers/koka/default.nix b/pkgs/development/compilers/koka/default.nix
index 23b7ced0a15eb..c280d2fb7e701 100644
--- a/pkgs/development/compilers/koka/default.nix
+++ b/pkgs/development/compilers/koka/default.nix
@@ -32,12 +32,12 @@
 }:
 
 let
-  version = "3.1.0";
+  version = "3.1.2";
   src = fetchFromGitHub {
     owner = "koka-lang";
     repo = "koka";
     rev = "v${version}";
-    sha256 = "sha256-Twm2Hr8BQ0xTdA30e2Az/57525jTUkmv2Zs/+SNiQns=";
+    sha256 = "sha256-BNkMtYf5maWtKEZzob+218ke1SIkrP7/nboQ2sZKkxI=";
     fetchSubmodules = true;
   };
   kklib = stdenv.mkDerivation {
@@ -65,14 +65,6 @@ mkDerivation rec {
   isLibrary = false;
   isExecutable = true;
   libraryToolDepends = [ hpack ];
-  patches = [
-    (fetchpatch {
-      name = "koka-stackage-22.patch";
-      url = "https://github.com/koka-lang/koka/commit/95f9b360544996e06d4bb33321a83a6b9605d092.patch";
-      sha256 = "1a1sv1r393wkhsnj56awsi8mqxakqdy86p7dg9i9xfv13q2g4h6x";
-      includes = [ "src/**" ];
-    })
-  ];
   executableHaskellDepends = [
     aeson
     array
diff --git a/pkgs/development/compilers/kotlin/default.nix b/pkgs/development/compilers/kotlin/default.nix
index 68b648846ea41..b8967d64794f4 100644
--- a/pkgs/development/compilers/kotlin/default.nix
+++ b/pkgs/development/compilers/kotlin/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "kotlin";
-  version = "1.9.24";
+  version = "2.0.0";
 
   src = fetchurl {
     url = "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-compiler-${version}.zip";
-    sha256 = "sha256-63to4BAp+me8jQYO5UwSAY8sYN3EOM8h2xRRcimqaTs=";
+    sha256 = "sha256-71eHMJdhVP0sWWjXWvjCcDs96Ep43/6RP2cDJuFJ2js=";
   };
 
   propagatedBuildInputs = [ jre ] ;
diff --git a/pkgs/development/compilers/kotlin/native.nix b/pkgs/development/compilers/kotlin/native.nix
index a38daa96cf17f..044364b37c392 100644
--- a/pkgs/development/compilers/kotlin/native.nix
+++ b/pkgs/development/compilers/kotlin/native.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://kotlinlang.org/";
-    description = "A modern programming language that makes developers happier";
+    description = "Modern programming language that makes developers happier";
     longDescription = ''
       Kotlin/Native is a technology for compiling Kotlin code to native
       binaries, which can run without a virtual machine. It is an LLVM based
diff --git a/pkgs/development/compilers/ldc/bootstrap.nix b/pkgs/development/compilers/ldc/bootstrap.nix
deleted file mode 100644
index aa25fb77fc526..0000000000000
--- a/pkgs/development/compilers/ldc/bootstrap.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ callPackage }:
-callPackage ./binary.nix {
-  version = "1.30.0";
-  hashes = {
-    # Get these from `nix store prefetch-file https://github.com/ldc-developers/ldc/releases/download/v1.19.0/ldc2-1.19.0-osx-x86_64.tar.xz` etc..
-    osx-x86_64 = "sha256-AAWZvxuZC82xvrW6fpYm783TY+H8k3DvqE94ZF1yjmk=";
-    linux-x86_64 = "sha256-V4TUzEfQhFrwiX07dHOgjdAoGkzausCkhnQIQNAU/eE=";
-    linux-aarch64  = "sha256-kTeglub75iv/jWWNPCn15aCGAbmck0RQl6L7bFOUu7Y=";
-    osx-arm64  = "sha256-Nb/owBdIeroB9jLMDvwjo8bvsTC9vFyJPLMTOMsSAd4=";
-  };
-}
diff --git a/pkgs/development/compilers/ldc/default.nix b/pkgs/development/compilers/ldc/default.nix
deleted file mode 100644
index 6b07612177038..0000000000000
--- a/pkgs/development/compilers/ldc/default.nix
+++ /dev/null
@@ -1,4 +0,0 @@
-import ./generic.nix {
-  version = "1.36.0";
-  sha256 = "sha256-oAx5BzEjqIfBf0Rsd4KklVajUSo9Natna31Trhu41u8=";
-}
diff --git a/pkgs/development/compilers/ligo/default.nix b/pkgs/development/compilers/ligo/default.nix
index 9b57fd0a2e257..5991691165126 100644
--- a/pkgs/development/compilers/ligo/default.nix
+++ b/pkgs/development/compilers/ligo/default.nix
@@ -125,7 +125,7 @@ ocamlPackages.buildDunePackage rec {
   meta = with lib; {
     homepage = "https://ligolang.org/";
     downloadPage = "https://ligolang.org/docs/intro/installation";
-    description = "A friendly Smart Contract Language for Tezos";
+    description = "Friendly Smart Contract Language for Tezos";
     mainProgram = "ligo";
     license = licenses.mit;
     platforms = ocamlPackages.ocaml.meta.platforms;
diff --git a/pkgs/development/compilers/llvm/12/default.nix b/pkgs/development/compilers/llvm/12/default.nix
index 82a9d63ab3300..0e498aa303565 100644
--- a/pkgs/development/compilers/llvm/12/default.nix
+++ b/pkgs/development/compilers/llvm/12/default.nix
@@ -1,7 +1,7 @@
-{ lowPrio, newScope, pkgs, lib, stdenv, cmake
+{ lowPrio, newScope, pkgs, lib, stdenv
 , preLibcCrossHeaders
-, substitute, substituteAll, fetchFromGitHub, fetchpatch
-, libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
+, substitute, substituteAll, fetchFromGitHub, fetchpatch, fetchurl
+, overrideCC, wrapCCWith, wrapBintoolsWith
 , buildLlvmTools # tools, but from the previous stage, for cross
 , targetLlvmLibraries # libraries, but from the next stage, for cross
 , targetLlvm
@@ -17,29 +17,36 @@
     then null
     else pkgs.bintools
 , darwin
-}:
+# Allows passthrough to packages via newScope. This makes it possible to
+# do `(llvmPackages.override { <someLlvmDependency> = bar; }).clang` and get
+# an llvmPackages whose packages are overridden in an internally consistent way.
+, ...
+}@args:
 
 let
-  release_version = "12.0.1";
   candidate = ""; # empty or "rcN"
   dash-candidate = lib.optionalString (candidate != "") "-${candidate}";
-  version = "${release_version}${dash-candidate}"; # differentiating these (variables) is important for RCs
 
-  fetch = name: sha256: fetchurl {
-    url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/${name}-${release_version}${candidate}.src.tar.xz";
-    inherit sha256;
+  metadata = rec {
+    release_version = "12.0.1";
+    version = "${release_version}${dash-candidate}"; # differentiating these (variables) is important for RCs
+    inherit (import ../common/common-let.nix { inherit lib release_version; }) llvm_meta;
+    fetch = name: sha256: fetchurl {
+      url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${metadata.version}/${name}-${metadata.release_version}${candidate}.src.tar.xz";
+      inherit sha256;
+    };
+    clang-tools-extra_src = fetch "clang-tools-extra" "1r9a4fdz9ci58b5z2inwvm4z4cdp6scrivnaw05dggkxz7yrwrb5";
   };
 
-  clang-tools-extra_src = fetch "clang-tools-extra" "1r9a4fdz9ci58b5z2inwvm4z4cdp6scrivnaw05dggkxz7yrwrb5";
+  inherit (metadata) fetch;
 
-  inherit (import ../common/common-let.nix { inherit lib release_version; }) llvm_meta;
 
   tools = lib.makeExtensible (tools: let
-    callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch buildLlvmTools; });
+    callPackage = newScope (tools // args // metadata);
     mkExtraBuildCommands0 = cc: ''
       rsrc="$out/resource-root"
       mkdir "$rsrc"
-      ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc"
+      ln -s "${cc.lib}/lib/clang/${metadata.release_version}/include" "$rsrc"
       echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
     '';
     mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + ''
@@ -104,7 +111,6 @@ let
       pollyPatches = [
         ./llvm/gnu-install-dirs-polly.patch
       ];
-      inherit llvm_meta;
     };
 
     # `llvm` historically had the binaries.  When choosing an output explicitly,
@@ -122,7 +128,6 @@ let
           libllvmLibdir = "${tools.libllvm.lib}/lib";
         })
       ];
-      inherit clang-tools-extra_src llvm_meta;
     };
 
     clang-unwrapped = tools.libclang;
@@ -175,7 +180,6 @@ let
       patches = [
         ./lld/gnu-install-dirs.patch
       ];
-      inherit llvm_meta;
       inherit (libraries) libunwind;
     };
 
@@ -196,7 +200,6 @@ let
           resourceDirPatch
           ./lldb/gnu-install-dirs.patch
         ];
-      inherit llvm_meta;
     };
 
     # Below, is the LLVM bootstrapping logic. It handles building a
@@ -287,7 +290,7 @@ let
   });
 
   libraries = lib.makeExtensible (libraries: let
-    callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
+    callPackage = newScope (libraries // buildLlvmTools // args // metadata);
   in {
 
     compiler-rt-libc = callPackage ../common/compiler-rt {
@@ -306,7 +309,6 @@ let
         ../common/compiler-rt/armv6-sync-ops-no-thumb.patch
         ../common/compiler-rt/armv6-no-ldrexd-strexd.patch
       ];
-      inherit llvm_meta;
       stdenv = if stdenv.hostPlatform.useLLVM or false
                then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc
                else stdenv;
@@ -328,7 +330,6 @@ let
         ../common/compiler-rt/armv6-sync-ops-no-thumb.patch
         ../common/compiler-rt/armv6-no-ldrexd-strexd.patch
       ];
-      inherit llvm_meta;
       stdenv = if stdenv.hostPlatform.useLLVM or false
                then overrideCC stdenv buildLlvmTools.clangNoCompilerRt
                else stdenv;
@@ -347,7 +348,7 @@ let
       src = fetchFromGitHub {
         owner = "llvm";
         repo = "llvm-project";
-        rev = "refs/tags/llvmorg-${version}";
+        rev = "refs/tags/llvmorg-${metadata.version}";
         sparseCheckout = [
           "libcxx"
           "libcxxabi"
@@ -372,7 +373,6 @@ let
           ];
         })
       ];
-      inherit llvm_meta;
       stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
     };
 
@@ -381,7 +381,6 @@ let
       patches = [
         ./libunwind/gnu-install-dirs.patch
       ];
-      inherit llvm_meta;
       stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
     };
 
@@ -394,9 +393,8 @@ let
           hash = "sha256-UxIlAifXnexF/MaraPW0Ut6q+sf3e7y1fMdEv1q103A=";
         })
       ];
-      inherit llvm_meta targetLlvm;
     };
   });
   noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ];
 
-in { inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools)
+in { inherit tools libraries; inherit (metadata) release_version; } // (noExtend libraries) // (noExtend tools)
diff --git a/pkgs/development/compilers/llvm/12/lldb/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/12/lldb/gnu-install-dirs.patch
index afc945ce26147..9a4d2b272acbe 100644
--- a/pkgs/development/compilers/llvm/12/lldb/gnu-install-dirs.patch
+++ b/pkgs/development/compilers/llvm/12/lldb/gnu-install-dirs.patch
@@ -89,3 +89,22 @@ index b5633e2..86e4738 100644
    endif()
    get_target_property(lldb_python_bindings_dir swig_wrapper_python BINARY_DIR)
    finish_swig_python("lldb-python" "${lldb_python_bindings_dir}" "${lldb_python_target_dir}")
+diff --git a/source/API/CMakeLists.txt b/source/API/CMakeLists.txt
+index b5633e2..86e4738 100644
+--- a/source/API/CMakeLists.txt	2024-05-30 19:08:14.241656491 -0700
++++ b/source/API/CMakeLists.txt	2024-05-30 19:08:48.218219667 -0700
+@@ -113,14 +113,6 @@
+   ${option_install_prefix}
+ )
+ 
+-# lib/pythonX.Y/dist-packages/lldb/_lldb.so is a symlink to lib/liblldb.so,
+-# which depends on lib/libLLVM*.so (BUILD_SHARED_LIBS) or lib/libLLVM-10git.so
+-# (LLVM_LINK_LLVM_DYLIB). Add an additional rpath $ORIGIN/../../../../lib so
+-# that _lldb.so can be loaded from Python.
+-if(LLDB_ENABLE_PYTHON AND (BUILD_SHARED_LIBS OR LLVM_LINK_LLVM_DYLIB) AND UNIX AND NOT APPLE)
+-  set_property(TARGET liblldb APPEND PROPERTY INSTALL_RPATH "\$ORIGIN/../../../../lib${LLVM_LIBDIR_SUFFIX}")
+-endif()
+-
+ if(Python3_RPATH)
+   set_property(TARGET liblldb APPEND PROPERTY INSTALL_RPATH "${Python3_RPATH}")
+   set_property(TARGET liblldb APPEND PROPERTY BUILD_RPATH   "${Python3_RPATH}")
diff --git a/pkgs/development/compilers/llvm/13/default.nix b/pkgs/development/compilers/llvm/13/default.nix
index 9348e19e6de39..22bdc6140ab30 100644
--- a/pkgs/development/compilers/llvm/13/default.nix
+++ b/pkgs/development/compilers/llvm/13/default.nix
@@ -1,7 +1,7 @@
-{ lowPrio, newScope, pkgs, lib, stdenv, cmake
+{ lowPrio, newScope, pkgs, lib, stdenv
 , preLibcCrossHeaders
-, fetchpatch
-, libxml2, python3, isl, fetchFromGitHub, substitute, substituteAll, overrideCC, wrapCCWith, wrapBintoolsWith
+, substitute, substituteAll, fetchFromGitHub, fetchpatch
+, overrideCC, wrapCCWith, wrapBintoolsWith
 , buildLlvmTools # tools, but from the previous stage, for cross
 , targetLlvmLibraries # libraries, but from the next stage, for cross
 , targetLlvm
@@ -40,8 +40,11 @@
 # to you to make sure that the LLVM repo given matches the release configuration
 # specified.
 , monorepoSrc ? null
-
-}:
+# Allows passthrough to packages via newScope. This makes it possible to
+# do `(llvmPackages.override { <someLlvmDependency> = bar; }).clang` and get
+# an llvmPackages whose packages are overridden in an internally consistent way.
+, ...
+}@args:
 
 assert
   lib.assertMsg
@@ -53,19 +56,23 @@ assert
 let
   monorepoSrc' = monorepoSrc;
 in let
-  # Import releaseInfo separately to avoid infinite recursion
-  inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo;
-  inherit (releaseInfo) release_version version;
-  inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc;
-
-  src = monorepoSrc;
+  metadata = rec {
+    # Import releaseInfo separately to avoid infinite recursion
+    inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo;
+    inherit (releaseInfo) release_version version;
+    inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc;
+    src = monorepoSrc;
+  };
 
   tools = lib.makeExtensible (tools: let
-    callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version src buildLlvmTools; });
+    callPackage = newScope (tools // args // metadata
+      # Previously monorepoSrc was erroneously not being passed through.
+      // { monorepoSrc = null; } # Preserve a bug during #307211, TODO: remove; causes llvm 13 rebuild.
+    );
     mkExtraBuildCommands0 = cc: ''
       rsrc="$out/resource-root"
       mkdir "$rsrc"
-      ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc"
+      ln -s "${cc.lib}/lib/clang/${metadata.release_version}/include" "$rsrc"
       echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
     '';
     mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + ''
@@ -125,7 +132,6 @@ in let
       pollyPatches = [
         ./llvm/gnu-install-dirs-polly.patch
       ];
-      inherit llvm_meta;
     };
 
     # `llvm` historically had the binaries.  When choosing an output explicitly,
@@ -148,7 +154,6 @@ in let
           libllvmLibdir = "${tools.libllvm.lib}/lib";
         })
       ];
-      inherit llvm_meta;
     };
 
     clang-unwrapped = tools.libclang;
@@ -199,7 +204,6 @@ in let
       patches = [
         ./lld/gnu-install-dirs.patch
       ];
-      inherit llvm_meta;
     };
 
     lldb = callPackage ../common/lldb.nix {
@@ -232,7 +236,6 @@ in let
             && !stdenv.targetPlatform.isAarch64
             && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0")
         ) ./lldb/cpu_subtype_arm64e_replacement.patch;
-      inherit llvm_meta;
     };
 
     # Below, is the LLVM bootstrapping logic. It handles building a
@@ -323,7 +326,10 @@ in let
   });
 
   libraries = lib.makeExtensible (libraries: let
-    callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 isl release_version version src; });
+    callPackage = newScope (libraries // buildLlvmTools // args // metadata
+      # Previously monorepoSrc was erroneously not being passed through.
+      // { monorepoSrc = null; } # Preserve a bug during #307211, TODO: remove; causes llvm 13 rebuild.
+    );
   in {
 
     compiler-rt-libc = callPackage ../common/compiler-rt {
@@ -344,7 +350,6 @@ in let
         ../common/compiler-rt/armv6-scudo-no-yield.patch
         ../common/compiler-rt/armv6-scudo-libatomic.patch
       ];
-      inherit llvm_meta;
       stdenv = if stdenv.hostPlatform.useLLVM or false
                then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc
                else stdenv;
@@ -368,7 +373,6 @@ in let
         ../common/compiler-rt/armv6-scudo-no-yield.patch
         ../common/compiler-rt/armv6-scudo-libatomic.patch
       ];
-      inherit llvm_meta;
       stdenv = if stdenv.hostPlatform.useLLVM or false
                then overrideCC stdenv buildLlvmTools.clangNoCompilerRt
                else stdenv;
@@ -399,16 +403,15 @@ in let
           ];
         })
       ];
-      inherit llvm_meta;
       stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
-      monorepoSrc = src;
+      # TODO: remove this, causes LLVM 13 packages rebuild.
+      inherit (metadata) monorepoSrc; # Preserve bug during #307211 refactor.
     };
 
     libunwind = callPackage ../common/libunwind {
       patches = [
         ./libunwind/gnu-install-dirs.patch
       ];
-      inherit llvm_meta;
       stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
     };
 
@@ -420,9 +423,8 @@ in let
           hash = "sha256-UxIlAifXnexF/MaraPW0Ut6q+sf3e7y1fMdEv1q103A=";
         })
       ];
-      inherit llvm_meta targetLlvm;
     };
   });
   noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ];
 
-in { inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools)
+in { inherit tools libraries; inherit (metadata) release_version; } // (noExtend libraries) // (noExtend tools)
diff --git a/pkgs/development/compilers/llvm/13/lldb/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/13/lldb/gnu-install-dirs.patch
index afc945ce26147..eba6fbabac626 100644
--- a/pkgs/development/compilers/llvm/13/lldb/gnu-install-dirs.patch
+++ b/pkgs/development/compilers/llvm/13/lldb/gnu-install-dirs.patch
@@ -89,3 +89,22 @@ index b5633e2..86e4738 100644
    endif()
    get_target_property(lldb_python_bindings_dir swig_wrapper_python BINARY_DIR)
    finish_swig_python("lldb-python" "${lldb_python_bindings_dir}" "${lldb_python_target_dir}")
+diff --git a/source/API/CMakeLists.txt b/source/API/CMakeLists.txt
+index b5633e2..86e4738 100644
+--- a/source/API/CMakeLists.txt	2024-05-30 21:38:39.829955586 -0700
++++ b/source/API/CMakeLists.txt	2024-05-30 21:38:48.015673758 -0700
+@@ -112,14 +112,6 @@
+   ${option_install_prefix}
+ )
+ 
+-# lib/pythonX.Y/dist-packages/lldb/_lldb.so is a symlink to lib/liblldb.so,
+-# which depends on lib/libLLVM*.so (BUILD_SHARED_LIBS) or lib/libLLVM-10git.so
+-# (LLVM_LINK_LLVM_DYLIB). Add an additional rpath $ORIGIN/../../../../lib so
+-# that _lldb.so can be loaded from Python.
+-if(LLDB_ENABLE_PYTHON AND (BUILD_SHARED_LIBS OR LLVM_LINK_LLVM_DYLIB) AND UNIX AND NOT APPLE)
+-  set_property(TARGET liblldb APPEND PROPERTY INSTALL_RPATH "\$ORIGIN/../../../../lib${LLVM_LIBDIR_SUFFIX}")
+-endif()
+-
+ if(Python3_RPATH)
+   set_property(TARGET liblldb APPEND PROPERTY INSTALL_RPATH "${Python3_RPATH}")
+   set_property(TARGET liblldb APPEND PROPERTY BUILD_RPATH   "${Python3_RPATH}")
diff --git a/pkgs/development/compilers/llvm/14/default.nix b/pkgs/development/compilers/llvm/14/default.nix
index f7368050d6149..22fd8223c8f27 100644
--- a/pkgs/development/compilers/llvm/14/default.nix
+++ b/pkgs/development/compilers/llvm/14/default.nix
@@ -1,6 +1,7 @@
-{ lowPrio, newScope, pkgs, lib, stdenv, cmake
+{ lowPrio, newScope, pkgs, lib, stdenv
 , preLibcCrossHeaders
-, libxml2, python3, fetchFromGitHub, substitute, substituteAll, fetchpatch, overrideCC, wrapCCWith, wrapBintoolsWith
+, substitute, substituteAll, fetchFromGitHub, fetchpatch
+, overrideCC, wrapCCWith, wrapBintoolsWith
 , buildLlvmTools # tools, but from the previous stage, for cross
 , targetLlvmLibraries # libraries, but from the next stage, for cross
 , targetLlvm
@@ -39,7 +40,11 @@
 # to you to make sure that the LLVM repo given matches the release configuration
 # specified.
 , monorepoSrc ? null
-}:
+# Allows passthrough to packages via newScope. This makes it possible to
+# do `(llvmPackages.override { <someLlvmDependency> = bar; }).clang` and get
+# an llvmPackages whose packages are overridden in an internally consistent way.
+, ...
+}@args:
 
 assert
   lib.assertMsg
@@ -51,17 +56,20 @@ assert
 let
   monorepoSrc' = monorepoSrc;
 in let
-  # Import releaseInfo separately to avoid infinite recursion
-  inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo;
-  inherit (releaseInfo) release_version version;
-  inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc;
+
+  metadata = rec {
+    # Import releaseInfo separately to avoid infinite recursion
+    inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo;
+    inherit (releaseInfo) release_version version;
+    inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc;
+  };
 
   tools = lib.makeExtensible (tools: let
-    callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 release_version version monorepoSrc buildLlvmTools; });
+    callPackage = newScope (tools // args // metadata);
     mkExtraBuildCommands0 = cc: ''
       rsrc="$out/resource-root"
       mkdir "$rsrc"
-      ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc"
+      ln -s "${cc.lib}/lib/clang/${metadata.release_version}/include" "$rsrc"
       echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
     '';
     mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + ''
@@ -100,7 +108,6 @@ in let
       pollyPatches = [
         ./llvm/gnu-install-dirs-polly.patch
       ];
-      inherit llvm_meta;
     };
 
     # `llvm` historically had the binaries.  When choosing an output explicitly,
@@ -118,7 +125,6 @@ in let
           libllvmLibdir = "${tools.libllvm.lib}/lib";
         })
       ];
-      inherit llvm_meta;
     };
 
     clang-unwrapped = tools.libclang;
@@ -170,7 +176,6 @@ in let
         ./lld/gnu-install-dirs.patch
         ./lld/fix-root-src-dir.patch
       ];
-      inherit llvm_meta;
     };
 
     lldb = callPackage ../common/lldb.nix {
@@ -203,7 +208,6 @@ in let
             && !stdenv.targetPlatform.isAarch64
             && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0")
         ) ./lldb/cpu_subtype_arm64e_replacement.patch;
-      inherit llvm_meta;
     };
 
     # Below, is the LLVM bootstrapping logic. It handles building a
@@ -296,7 +300,7 @@ in let
   });
 
   libraries = lib.makeExtensible (libraries: let
-    callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 release_version version monorepoSrc; });
+    callPackage = newScope (libraries // buildLlvmTools // args // metadata);
   in {
 
     compiler-rt-libc = callPackage ../common/compiler-rt {
@@ -318,7 +322,6 @@ in let
         ../common/compiler-rt/armv6-scudo-no-yield.patch
         ../common/compiler-rt/armv6-scudo-libatomic.patch
       ];
-      inherit llvm_meta;
       stdenv = if stdenv.hostPlatform.useLLVM or false
                then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc
                else stdenv;
@@ -343,7 +346,6 @@ in let
         ../common/compiler-rt/armv6-scudo-no-yield.patch
         ../common/compiler-rt/armv6-scudo-libatomic.patch
       ];
-      inherit llvm_meta;
       stdenv = if stdenv.hostPlatform.useLLVM or false
                then overrideCC stdenv buildLlvmTools.clangNoCompilerRt
                else stdenv;
@@ -374,7 +376,6 @@ in let
           ];
         })
       ];
-      inherit llvm_meta;
       stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
     };
 
@@ -382,7 +383,6 @@ in let
       patches = [
         ./libunwind/gnu-install-dirs.patch
       ];
-      inherit llvm_meta;
       stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
     };
 
@@ -391,9 +391,8 @@ in let
         ./openmp/gnu-install-dirs.patch
         ./openmp/run-lit-directly.patch
       ];
-      inherit llvm_meta targetLlvm;
     };
   });
   noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ];
 
-in { inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools)
+in { inherit tools libraries; inherit (metadata) release_version; } // (noExtend libraries) // (noExtend tools)
diff --git a/pkgs/development/compilers/llvm/15/default.nix b/pkgs/development/compilers/llvm/15/default.nix
index 5003ef32d1ee0..b3d2d9c3de48c 100644
--- a/pkgs/development/compilers/llvm/15/default.nix
+++ b/pkgs/development/compilers/llvm/15/default.nix
@@ -1,6 +1,7 @@
-{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja
+{ lowPrio, newScope, pkgs, lib, stdenv
 , preLibcCrossHeaders
-, libxml2, python3, fetchFromGitHub, fetchpatch, substitute, substituteAll, overrideCC, wrapCCWith, wrapBintoolsWith
+, substitute, substituteAll, fetchFromGitHub, fetchpatch
+, overrideCC, wrapCCWith, wrapBintoolsWith
 , buildLlvmTools # tools, but from the previous stage, for cross
 , targetLlvmLibraries # libraries, but from the next stage, for cross
 , targetLlvm
@@ -39,7 +40,11 @@
 # to you to make sure that the LLVM repo given matches the release configuration
 # specified.
 , monorepoSrc ? null
-}:
+# Allows passthrough to packages via newScope. This makes it possible to
+# do `(llvmPackages.override { <someLlvmDependency> = bar; }).clang` and get
+# an llvmPackages whose packages are overridden in an internally consistent way.
+, ...
+}@args:
 
 assert
   lib.assertMsg
@@ -51,10 +56,13 @@ assert
 let
   monorepoSrc' = monorepoSrc;
 in let
-  # Import releaseInfo separately to avoid infinite recursion
-  inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo;
-  inherit (releaseInfo) release_version version;
-  inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc;
+
+  metadata = rec {
+    # Import releaseInfo separately to avoid infinite recursion
+    inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo;
+    inherit (releaseInfo) release_version version;
+    inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc;
+  };
 
   lldbPlugins = lib.makeExtensible (lldbPlugins: let
     callPackage = newScope (lldbPlugins // { inherit stdenv; inherit (tools) lldb; });
@@ -63,11 +71,11 @@ in let
   });
 
   tools = lib.makeExtensible (tools: let
-    callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; });
+    callPackage = newScope (tools // args // metadata);
     mkExtraBuildCommands0 = cc: ''
       rsrc="$out/resource-root"
       mkdir "$rsrc"
-      ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc"
+      ln -s "${cc.lib}/lib/clang/${metadata.release_version}/include" "$rsrc"
       echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
     '';
     mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + ''
@@ -144,7 +152,6 @@ in let
         # Just like the `llvm-lit-cfg` patch, but for `polly`.
         ./llvm/polly-lit-cfg-add-libs-to-dylib-path.patch
       ];
-      inherit llvm_meta;
     };
 
     # `llvm` historically had the binaries.  When choosing an output explicitly,
@@ -162,7 +169,6 @@ in let
           libllvmLibdir = "${tools.libllvm.lib}/lib";
         })
       ];
-      inherit llvm_meta;
     };
 
     clang-unwrapped = tools.libclang;
@@ -212,7 +218,6 @@ in let
       patches = [
         ./lld/gnu-install-dirs.patch
       ];
-      inherit llvm_meta;
     };
 
     lldb = callPackage ../common/lldb.nix {
@@ -245,7 +250,6 @@ in let
             && !stdenv.targetPlatform.isAarch64
             && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0")
         ) ./lldb/cpu_subtype_arm64e_replacement.patch;
-      inherit llvm_meta;
     };
 
     # Below, is the LLVM bootstrapping logic. It handles building a
@@ -348,7 +352,7 @@ in let
   });
 
   libraries = lib.makeExtensible (libraries: let
-    callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc; });
+    callPackage = newScope (libraries // buildLlvmTools // args // metadata);
   in {
 
     compiler-rt-libc = callPackage ../common/compiler-rt {
@@ -365,7 +369,6 @@ in let
         # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893
         ../common/compiler-rt/armv7l-15.patch
       ];
-      inherit llvm_meta;
       stdenv = if stdenv.hostPlatform.useLLVM or false
                then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc
                else stdenv;
@@ -385,7 +388,6 @@ in let
         # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893
         ../common/compiler-rt/armv7l-15.patch
       ];
-      inherit llvm_meta;
       stdenv = if stdenv.hostPlatform.useLLVM or false
                then overrideCC stdenv buildLlvmTools.clangNoCompilerRt
                else stdenv;
@@ -427,7 +429,6 @@ in let
           ];
         })
       ];
-      inherit llvm_meta;
       stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
     };
 
@@ -435,7 +436,6 @@ in let
       patches = [
         ./libunwind/gnu-install-dirs.patch
       ];
-      inherit llvm_meta;
       stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
     };
 
@@ -445,9 +445,8 @@ in let
         ./openmp/gnu-install-dirs.patch
         ./openmp/run-lit-directly.patch
       ];
-      inherit llvm_meta targetLlvm;
     };
   });
   noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ];
 
-in { inherit tools libraries release_version lldbPlugins; } // (noExtend libraries) // (noExtend tools)
+in { inherit tools libraries lldbPlugins; inherit (metadata) release_version; } // (noExtend libraries) // (noExtend tools)
diff --git a/pkgs/development/compilers/llvm/16/compiler-rt/asan-offset.patch b/pkgs/development/compilers/llvm/16/compiler-rt/asan-offset.patch
new file mode 100644
index 0000000000000..46afe5c007347
--- /dev/null
+++ b/pkgs/development/compilers/llvm/16/compiler-rt/asan-offset.patch
@@ -0,0 +1,11 @@
+--- a/lib/asan/CMakeLists.txt        2022-06-22 16:46:24.000000000 +0000
++++ b/lib/asan/CMakeLists.txt
+@@ -46,7 +46,7 @@ set(ASAN_STATIC_SOURCES
+   asan_rtl_static.cpp
+   )
+ 
+-if (NOT WIN32 AND NOT APPLE)
++if (LINUX)
+   list(APPEND ASAN_STATIC_SOURCES
+     asan_rtl_x86_64.S
+   )
diff --git a/pkgs/development/compilers/llvm/16/compiler-rt/freebsd-i386.patch b/pkgs/development/compilers/llvm/16/compiler-rt/freebsd-i386.patch
new file mode 100644
index 0000000000000..0a221750552a0
--- /dev/null
+++ b/pkgs/development/compilers/llvm/16/compiler-rt/freebsd-i386.patch
@@ -0,0 +1,21 @@
+--- a/lib/builtins/fp_lib.h	1969-12-31 16:00:01.000000000 -0800
++++ b/lib/builtins/fp_lib.h	2023-12-21 23:39:36.066927293 -0800
+@@ -26,18 +26,6 @@
+ #include <stdbool.h>
+ #include <stdint.h>
+ 
+-// x86_64 FreeBSD prior v9.3 define fixed-width types incorrectly in
+-// 32-bit mode.
+-#if defined(__FreeBSD__) && defined(__i386__)
+-#include <sys/param.h>
+-#if __FreeBSD_version < 903000 // v9.3
+-#define uint64_t unsigned long long
+-#define int64_t long long
+-#undef UINT64_C
+-#define UINT64_C(c) (c##ULL)
+-#endif
+-#endif
+-
+ #if defined SINGLE_PRECISION
+ 
+ typedef uint16_t half_rep_t;
diff --git a/pkgs/development/compilers/llvm/16/default.nix b/pkgs/development/compilers/llvm/16/default.nix
index 79d5f8589044c..521e1ed92e3ea 100644
--- a/pkgs/development/compilers/llvm/16/default.nix
+++ b/pkgs/development/compilers/llvm/16/default.nix
@@ -1,6 +1,7 @@
-{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja
+{ lowPrio, newScope, pkgs, lib, stdenv
 , preLibcCrossHeaders
-, libxml2, python3, fetchFromGitHub, substituteAll, overrideCC, wrapCCWith, wrapBintoolsWith
+, substitute, substituteAll, fetchFromGitHub
+, overrideCC, wrapCCWith, wrapBintoolsWith
 , buildLlvmTools # tools, but from the previous stage, for cross
 , targetLlvmLibraries # libraries, but from the next stage, for cross
 , targetLlvm
@@ -39,7 +40,11 @@
 # to you to make sure that the LLVM repo given matches the release configuration
 # specified.
 , monorepoSrc ? null
-}:
+# Allows passthrough to packages via newScope. This makes it possible to
+# do `(llvmPackages.override { <someLlvmDependency> = bar; }).clang` and get
+# an llvmPackages whose packages are overridden in an internally consistent way.
+, ...
+}@args:
 
 assert
   lib.assertMsg
@@ -51,10 +56,13 @@ assert
 let
   monorepoSrc' = monorepoSrc;
 in let
-  # Import releaseInfo separately to avoid infinite recursion
-  inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo;
-  inherit (releaseInfo) release_version version;
-  inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc;
+
+  metadata = rec {
+    # Import releaseInfo separately to avoid infinite recursion
+    inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo;
+    inherit (releaseInfo) release_version version;
+    inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc;
+  };
 
   lldbPlugins = lib.makeExtensible (lldbPlugins: let
     callPackage = newScope (lldbPlugins // { inherit stdenv; inherit (tools) lldb; });
@@ -63,8 +71,8 @@ in let
   });
 
   tools = lib.makeExtensible (tools: let
-    callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; });
-    major = lib.versions.major release_version;
+    callPackage = newScope (tools // args // metadata);
+    major = lib.versions.major metadata.release_version;
     mkExtraBuildCommands0 = cc: ''
       rsrc="$out/resource-root"
       mkdir "$rsrc"
@@ -138,7 +146,6 @@ in let
         # Just like the `llvm-lit-cfg` patch, but for `polly`.
         ./llvm/polly-lit-cfg-add-libs-to-dylib-path.patch
       ];
-      inherit llvm_meta;
     };
 
     # `llvm` historically had the binaries.  When choosing an output explicitly,
@@ -156,7 +163,6 @@ in let
           libllvmLibdir = "${tools.libllvm.lib}/lib";
         })
       ];
-      inherit llvm_meta;
     };
 
     clang-unwrapped = tools.libclang;
@@ -206,15 +212,12 @@ in let
         ./lld/gnu-install-dirs.patch
         ./lld/add-table-base.patch
       ];
-      inherit llvm_meta;
     };
 
-    mlir = callPackage ../common/mlir {
-      inherit llvm_meta;
-    };
+    mlir = callPackage ../common/mlir {};
 
     lldb = callPackage ../common/lldb.nix {
-      src = callPackage ({ runCommand }: runCommand "lldb-src-${version}" {} ''
+      src = callPackage ({ runCommand }: runCommand "lldb-src-${metadata.version}" {} ''
         mkdir -p "$out"
         cp -r ${monorepoSrc}/cmake "$out"
         cp -r ${monorepoSrc}/lldb "$out"
@@ -248,7 +251,6 @@ in let
             && !stdenv.targetPlatform.isAarch64
             && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0")
         ) ./lldb/cpu_subtype_arm64e_replacement.patch;
-      inherit llvm_meta;
     };
 
     # Below, is the LLVM bootstrapping logic. It handles building a
@@ -351,13 +353,11 @@ in let
     # Has to be in tools despite mostly being a library,
     # because we use a native helper executable from a
     # non-cross build in cross builds.
-    libclc = callPackage ../common/libclc.nix {
-      inherit buildLlvmTools;
-    };
+    libclc = callPackage ../common/libclc.nix {};
   });
 
   libraries = lib.makeExtensible (libraries: let
-    callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc; });
+    callPackage = newScope (libraries // buildLlvmTools // args // metadata);
   in {
 
     compiler-rt-libc = callPackage ../common/compiler-rt {
@@ -374,7 +374,6 @@ in let
         # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893
         # ../common/compiler-rt/armv7l-15.patch
       ];
-      inherit llvm_meta;
       stdenv = if stdenv.hostPlatform.useLLVM or false || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isStatic)
                then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc
                else stdenv;
@@ -394,7 +393,6 @@ in let
         # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893
         # ../common/compiler-rt/armv7l-15.patch
       ];
-      inherit llvm_meta;
       stdenv = if stdenv.hostPlatform.useLLVM or false
                then overrideCC stdenv buildLlvmTools.clangNoCompilerRt
                else stdenv;
@@ -413,7 +411,6 @@ in let
     # so: we use the clang from this LLVM package set instead of the regular
     # stdenv's compiler.
     libcxx = callPackage ../common/libcxx {
-      inherit llvm_meta;
       stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
     };
 
@@ -421,7 +418,6 @@ in let
       patches = [
         ./libunwind/gnu-install-dirs.patch
       ];
-      inherit llvm_meta;
       stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
     };
 
@@ -431,9 +427,8 @@ in let
         ./openmp/gnu-install-dirs.patch
         ./openmp/run-lit-directly.patch
       ];
-      inherit llvm_meta targetLlvm;
     };
   });
   noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ];
 
-in { inherit tools libraries release_version lldbPlugins; } // (noExtend libraries) // (noExtend tools)
+in { inherit tools libraries lldbPlugins; inherit (metadata) release_version; } // (noExtend libraries) // (noExtend tools)
diff --git a/pkgs/development/compilers/llvm/17/default.nix b/pkgs/development/compilers/llvm/17/default.nix
index b4039540badf4..af0d648c4fd01 100644
--- a/pkgs/development/compilers/llvm/17/default.nix
+++ b/pkgs/development/compilers/llvm/17/default.nix
@@ -1,6 +1,7 @@
-{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja
+{ lowPrio, newScope, pkgs, lib, stdenv
 , preLibcCrossHeaders
-, libxml2, python3, fetchFromGitHub, fetchpatch, substituteAll, overrideCC, wrapCCWith, wrapBintoolsWith
+, substitute, substituteAll, fetchFromGitHub, fetchpatch
+, overrideCC, wrapCCWith, wrapBintoolsWith
 , buildLlvmTools # tools, but from the previous stage, for cross
 , targetLlvmLibraries # libraries, but from the next stage, for cross
 , targetLlvm
@@ -39,7 +40,11 @@
 # to you to make sure that the LLVM repo given matches the release configuration
 # specified.
 , monorepoSrc ? null
-}:
+# Allows passthrough to packages via newScope. This makes it possible to
+# do `(llvmPackages.override { <someLlvmDependency> = bar; }).clang` and get
+# an llvmPackages whose packages are overridden in an internally consistent way.
+, ...
+}@args:
 
 assert
   lib.assertMsg
@@ -51,15 +56,17 @@ assert
 let
   monorepoSrc' = monorepoSrc;
 in let
-  inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo;
 
-  inherit (releaseInfo) release_version version;
-
-  inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc;
+  metadata = rec {
+    # Import releaseInfo separately to avoid infinite recursion
+    inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo;
+    inherit (releaseInfo) release_version version;
+    inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub gitRelease release_version officialRelease monorepoSrc'; }) llvm_meta monorepoSrc;
+  };
 
   tools = lib.makeExtensible (tools: let
-    callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; });
-    major = lib.versions.major release_version;
+    callPackage = newScope (tools // args // metadata);
+    major = lib.versions.major metadata.release_version;
     mkExtraBuildCommands0 = cc: ''
       rsrc="$out/resource-root"
       mkdir "$rsrc"
@@ -133,7 +140,6 @@ in let
         # Just like the `llvm-lit-cfg` patch, but for `polly`.
         ./llvm/polly-lit-cfg-add-libs-to-dylib-path.patch
       ];
-      inherit llvm_meta;
     };
 
     # `llvm` historically had the binaries.  When choosing an output explicitly,
@@ -151,7 +157,6 @@ in let
           libllvmLibdir = "${tools.libllvm.lib}/lib";
         })
       ];
-      inherit llvm_meta;
     };
 
     clang-unwrapped = tools.libclang;
@@ -201,15 +206,12 @@ in let
         ./lld/gnu-install-dirs.patch
         ./lld/add-table-base.patch
       ];
-      inherit llvm_meta;
     };
 
-    mlir = callPackage ../common/mlir {
-      inherit llvm_meta;
-    };
+    mlir = callPackage ../common/mlir {};
 
     lldb = callPackage ../common/lldb.nix {
-      src = callPackage ({ runCommand }: runCommand "lldb-src-${version}" {} ''
+      src = callPackage ({ runCommand }: runCommand "lldb-src-${metadata.version}" {} ''
         mkdir -p "$out"
         cp -r ${monorepoSrc}/cmake "$out"
         cp -r ${monorepoSrc}/lldb "$out"
@@ -233,7 +235,6 @@ in let
             && !stdenv.targetPlatform.isAarch64
             && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0")
         ) ./lldb/cpu_subtype_arm64e_replacement.patch;
-      inherit llvm_meta;
     };
 
     # Below, is the LLVM bootstrapping logic. It handles building a
@@ -336,13 +337,11 @@ in let
     # Has to be in tools despite mostly being a library,
     # because we use a native helper executable from a
     # non-cross build in cross builds.
-    libclc = callPackage ../common/libclc.nix {
-      inherit buildLlvmTools;
-    };
+    libclc = callPackage ../common/libclc.nix {};
   });
 
   libraries = lib.makeExtensible (libraries: let
-    callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc; });
+    callPackage = newScope (libraries // buildLlvmTools // args // metadata);
   in {
 
     compiler-rt-libc = callPackage ../common/compiler-rt {
@@ -359,7 +358,6 @@ in let
         # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893
         # ../common/compiler-rt/armv7l-15.patch
       ];
-      inherit llvm_meta;
       stdenv = if stdenv.hostPlatform.useLLVM or false || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isStatic)
                then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc
                else stdenv;
@@ -379,7 +377,6 @@ in let
         # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893
         # ../common/compiler-rt/armv7l-15.patch
       ];
-      inherit llvm_meta;
       stdenv = if stdenv.hostPlatform.useLLVM or false
                then overrideCC stdenv buildLlvmTools.clangNoCompilerRt
                else stdenv;
@@ -406,12 +403,10 @@ in let
           hash = "sha256-jo+DYA6zuSv9OH3A0bYwY5TlkWprup4OKQ7rfK1WHBI=";
         })
       ];
-      inherit llvm_meta;
       stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
     };
 
     libunwind = callPackage ../common/libunwind {
-      inherit llvm_meta;
       stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
     };
 
@@ -421,9 +416,8 @@ in let
         ./openmp/gnu-install-dirs.patch
         ./openmp/run-lit-directly.patch
       ];
-      inherit llvm_meta targetLlvm;
     };
   });
   noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ];
 
-in { inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools)
+in { inherit tools libraries; inherit (metadata) release_version; } // (noExtend libraries) // (noExtend tools)
diff --git a/pkgs/development/compilers/llvm/18/default.nix b/pkgs/development/compilers/llvm/18/default.nix
index 3c0e551791e54..4ef9728708385 100644
--- a/pkgs/development/compilers/llvm/18/default.nix
+++ b/pkgs/development/compilers/llvm/18/default.nix
@@ -1,6 +1,7 @@
-{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja
+{ lowPrio, newScope, pkgs, lib, stdenv
 , preLibcCrossHeaders
-, libxml2, python3, fetchFromGitHub, substituteAll, overrideCC, wrapCCWith, wrapBintoolsWith
+, substitute, substituteAll, fetchFromGitHub
+, overrideCC, wrapCCWith, wrapBintoolsWith
 , buildLlvmTools # tools, but from the previous stage, for cross
 , targetLlvmLibraries # libraries, but from the next stage, for cross
 , targetLlvm
@@ -25,7 +26,7 @@
   #   rev-version = /* human readable version; i.e. "unstable-2022-26-07" */;
   #   sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */;
   # }
-, officialRelease ? { version = "18.1.5"; sha256 = "0n44chqn96xsa00ryhwk8g0vv3zx908xjakkgjsa14sjr9mcsq8q"; }
+, officialRelease ? { version = "18.1.7"; sha256 = "sha256-qBL/1zh2YFabiPAyHehvzDSDfnwnCvyH6nY/pzG757A="; }
   # i.e.:
   # {
   #   version = /* i.e. "15.0.0" */;
@@ -39,7 +40,11 @@
 # to you to make sure that the LLVM repo given matches the release configuration
 # specified.
 , monorepoSrc ? null
-}:
+# Allows passthrough to packages via newScope. This makes it possible to
+# do `(llvmPackages.override { <someLlvmDependency> = bar; }).clang` and get
+# an llvmPackages whose packages are overridden in an internally consistent way.
+, ...
+}@args:
 
 assert
   lib.assertMsg
@@ -51,15 +56,17 @@ assert
 let
   monorepoSrc' = monorepoSrc;
 in let
-  inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo;
 
-  inherit (releaseInfo) release_version version;
-
-  inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc;
+  metadata = rec {
+    # Import releaseInfo separately to avoid infinite recursion
+    inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo;
+    inherit (releaseInfo) release_version version;
+    inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub gitRelease release_version officialRelease monorepoSrc'; }) llvm_meta monorepoSrc;
+  };
 
   tools = lib.makeExtensible (tools: let
-    callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; });
-    major = lib.versions.major release_version;
+    callPackage = newScope (tools // args // metadata);
+    major = lib.versions.major metadata.release_version;
     mkExtraBuildCommands0 = cc: ''
       rsrc="$out/resource-root"
       mkdir "$rsrc"
@@ -133,7 +140,6 @@ in let
         # Just like the `llvm-lit-cfg` patch, but for `polly`.
         ./llvm/polly-lit-cfg-add-libs-to-dylib-path.patch
       ];
-      inherit llvm_meta;
     };
 
     # `llvm` historically had the binaries.  When choosing an output explicitly,
@@ -151,7 +157,6 @@ in let
           libllvmLibdir = "${tools.libllvm.lib}/lib";
         })
       ];
-      inherit llvm_meta;
     };
 
     clang-unwrapped = tools.libclang;
@@ -200,15 +205,12 @@ in let
       patches = [
         ./lld/gnu-install-dirs.patch
       ];
-      inherit llvm_meta;
     };
 
-    mlir = callPackage ../common/mlir {
-      inherit llvm_meta;
-    };
+    mlir = callPackage ../common/mlir {};
 
     lldb = callPackage ../common/lldb.nix {
-      src = callPackage ({ runCommand }: runCommand "lldb-src-${version}" {} ''
+      src = callPackage ({ runCommand }: runCommand "lldb-src-${metadata.version}" {} ''
         mkdir -p "$out"
         cp -r ${monorepoSrc}/cmake "$out"
         cp -r ${monorepoSrc}/lldb "$out"
@@ -232,7 +234,6 @@ in let
             && !stdenv.targetPlatform.isAarch64
             && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0")
         ) ./lldb/cpu_subtype_arm64e_replacement.patch;
-      inherit llvm_meta;
     };
 
     # Below, is the LLVM bootstrapping logic. It handles building a
@@ -335,13 +336,11 @@ in let
     # Has to be in tools despite mostly being a library,
     # because we use a native helper executable from a
     # non-cross build in cross builds.
-    libclc = callPackage ../common/libclc.nix {
-      inherit buildLlvmTools;
-    };
+    libclc = callPackage ../common/libclc.nix {};
   });
 
   libraries = lib.makeExtensible (libraries: let
-    callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc; });
+    callPackage = newScope (libraries // buildLlvmTools // args // metadata);
   in {
 
     compiler-rt-libc = callPackage ../common/compiler-rt {
@@ -355,7 +354,6 @@ in let
         # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893
         # ../common/compiler-rt/armv7l-15.patch
       ];
-      inherit llvm_meta;
       stdenv = if stdenv.hostPlatform.useLLVM or false || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isStatic)
                then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc
                else stdenv;
@@ -372,7 +370,6 @@ in let
         # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893
         # ../common/compiler-rt/armv7l-15.patch
       ];
-      inherit llvm_meta;
       stdenv = if stdenv.hostPlatform.useLLVM or false
                then overrideCC stdenv buildLlvmTools.clangNoCompilerRt
                else stdenv;
@@ -395,12 +392,10 @@ in let
         # https://github.com/llvm/llvm-project/issues/64226
         ./libcxx/0001-darwin-10.12-mbstate_t-fix.patch
       ];
-      inherit llvm_meta;
       stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
     };
 
     libunwind = callPackage ../common/libunwind {
-      inherit llvm_meta;
       stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
     };
 
@@ -409,9 +404,8 @@ in let
         ./openmp/fix-find-tool.patch
         ./openmp/run-lit-directly.patch
       ];
-      inherit llvm_meta targetLlvm;
     };
   });
   noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ];
 
-in { inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools)
+in { inherit tools libraries; inherit (metadata) release_version; } // (noExtend libraries) // (noExtend tools)
diff --git a/pkgs/development/compilers/llvm/common/clang/default.nix b/pkgs/development/compilers/llvm/common/clang/default.nix
index 58af0340a1399..e597ec4d604b1 100644
--- a/pkgs/development/compilers/llvm/common/clang/default.nix
+++ b/pkgs/development/compilers/llvm/common/clang/default.nix
@@ -93,6 +93,8 @@ let
 
       mkdir -p $lib/lib/clang
       mv $lib/lib/17 $lib/lib/clang/17
+    '') + (lib.optionalString (lib.versionAtLeast release_version "19") ''
+      mv $out/lib/clang $lib/lib/clang
     '') + ''
 
       # Move libclang to 'lib' output
@@ -147,7 +149,7 @@ let
 
     meta = llvm_meta // {
       homepage = "https://clang.llvm.org/";
-      description = "A C language family frontend for LLVM";
+      description = "C language family frontend for LLVM";
       longDescription = ''
         The Clang project provides a language front-end and tooling
         infrastructure for languages in the C language family (C, C++, Objective
diff --git a/pkgs/development/compilers/llvm/common/compiler-rt/default.nix b/pkgs/development/compilers/llvm/common/compiler-rt/default.nix
index 4f44d6396d301..23a966ce238f6 100644
--- a/pkgs/development/compilers/llvm/common/compiler-rt/default.nix
+++ b/pkgs/development/compilers/llvm/common/compiler-rt/default.nix
@@ -14,7 +14,18 @@
 , libllvm
 , linuxHeaders
 , libxcrypt
+
+# Some platforms have switched to using compiler-rt, but still want a
+# libgcc.a for ABI compat purposes. The use case would be old code that
+# expects to link `-lgcc` but doesn't care exactly what its contents
+# are, so long as it provides some builtins.
 , doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD
+
+# In recent releases, the compiler-rt build seems to produce
+# many `libclang_rt*` libraries, but not a single unified
+# `libcompiler_rt` library, at least under certain configurations. Some
+# platforms stil expect this, however, so we symlink one into place.
+, forceLinkCompilerRt ? stdenv.hostPlatform.isOpenBSD
 }:
 
 let
@@ -128,11 +139,17 @@ stdenv.mkDerivation ({
   '') + ''
     substituteInPlace lib/builtins/int_util.c \
       --replace "#include <stdlib.h>" ""
+  '' + (if stdenv.hostPlatform.isFreeBSD then
+    # As per above, but in FreeBSD assert is a macro and simply allowing it to be implicitly declared causes Issues!!!!!
+    ''
+    substituteInPlace lib/builtins/clear_cache.c lib/builtins/cpu_model.c \
+      --replace "#include <assert.h>" "#define assert(e) ((e)?(void)0:__assert(__FUNCTION__,__FILE__,__LINE__,#e))"
+    '' else ''
     substituteInPlace lib/builtins/clear_cache.c \
       --replace "#include <assert.h>" ""
     substituteInPlace lib/builtins/cpu_model${lib.optionalString (lib.versionAtLeast version "18") "/x86"}.c \
       --replace "#include <assert.h>" ""
-  '');
+  ''));
 
   # Hack around weird upsream RPATH bug
   postInstall = lib.optionalString (stdenv.hostPlatform.isDarwin) ''
@@ -149,7 +166,9 @@ stdenv.mkDerivation ({
     ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o
     ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o
   '' + lib.optionalString doFakeLibgcc ''
-     ln -s $out/lib/freebsd/libclang_rt.builtins-*.a $out/lib/libgcc.a
+     ln -s $out/lib/*/libclang_rt.builtins-*.a $out/lib/libgcc.a
+  '' + lib.optionalString forceLinkCompilerRt ''
+     ln -s $out/lib/*/libclang_rt.builtins-*.a $out/lib/libcompiler_rt.a
   '';
 
   meta = llvm_meta // {
diff --git a/pkgs/development/compilers/llvm/common/libcxx/default.nix b/pkgs/development/compilers/llvm/common/libcxx/default.nix
index 5b4c2ca56ae1a..b2c23f35f0a18 100644
--- a/pkgs/development/compilers/llvm/common/libcxx/default.nix
+++ b/pkgs/development/compilers/llvm/common/libcxx/default.nix
@@ -13,12 +13,16 @@
 , python3
 , fixDarwinDylibNames
 , version
-, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else null
+, cxxabi ? null
 , libcxxrt
 , libunwind
 , enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
+# note: our setup using libcxxabi instead of libcxxrt on FreeBSD diverges from
+# normal FreeBSD. This may cause issues with binary patching down the line.
+# If this becomes an issue, try adding as symlink libcxxrt.so -> libc++abi.so
+
 # external cxxabi is not supported on Darwin as the build will not link libcxx
 # properly and not re-export the cxxabi symbols into libcxx
 # https://github.com/NixOS/nixpkgs/issues/166205
@@ -93,12 +97,6 @@ let
 
   cmakeFlags = [
     "-DLLVM_ENABLE_RUNTIMES=${lib.concatStringsSep ";" runtimes}"
-  ] ++ lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [
-    # libcxxabi's CMake looks as though it treats -nostdlib++ as implying -nostdlib,
-    # but that does not appear to be the case for example when building
-    # pkgsLLVM.libcxxabi (which uses clangNoCompilerRtWithLibc).
-    "-DCMAKE_EXE_LINKER_FLAGS=-nostdlib"
-    "-DCMAKE_SHARED_LINKER_FLAGS=-nostdlib"
   ] ++ lib.optionals stdenv.hostPlatform.isWasm [
     "-DCMAKE_C_COMPILER_WORKS=ON"
     "-DCMAKE_CXX_COMPILER_WORKS=ON"
diff --git a/pkgs/development/compilers/llvm/common/lld/default.nix b/pkgs/development/compilers/llvm/common/lld/default.nix
index be296be91e770..99bb150a817dc 100644
--- a/pkgs/development/compilers/llvm/common/lld/default.nix
+++ b/pkgs/development/compilers/llvm/common/lld/default.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation (rec {
 
   meta = llvm_meta // {
     homepage = "https://lld.llvm.org/";
-    description = "The LLVM linker (unwrapped)";
+    description = "LLVM linker (unwrapped)";
     longDescription = ''
       LLD is a linker from the LLVM project that is a drop-in replacement for
       system linkers and runs much faster than them. It also provides features
diff --git a/pkgs/development/compilers/llvm/common/lldb.nix b/pkgs/development/compilers/llvm/common/lldb.nix
index 59e427e846c46..71afcb159a440 100644
--- a/pkgs/development/compilers/llvm/common/lldb.nix
+++ b/pkgs/development/compilers/llvm/common/lldb.nix
@@ -174,7 +174,7 @@ stdenv.mkDerivation (rec {
 
   meta = llvm_meta // {
     homepage = "https://lldb.llvm.org/";
-    description = "A next-generation high-performance debugger";
+    description = "Next-generation high-performance debugger";
     longDescription = ''
       LLDB is a next generation, high-performance debugger. It is built as a set
       of reusable components which highly leverage existing libraries in the
diff --git a/pkgs/development/compilers/llvm/common/lldb/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/common/lldb/gnu-install-dirs.patch
index 093b9a8ba3ec3..ec550764be818 100644
--- a/pkgs/development/compilers/llvm/common/lldb/gnu-install-dirs.patch
+++ b/pkgs/development/compilers/llvm/common/lldb/gnu-install-dirs.patch
@@ -47,3 +47,22 @@ index 7d48491ec89a..c04543585588 100644
  install(TARGETS lldbIntelFeatures
 -  LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX})
 +  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
+diff --git a/source/API/CMakeLists.txt b/source/API/CMakeLists.txt
+index 7d48491ec89a..c04543585588 100644
+--- a/source/API/CMakeLists.txt	2024-05-30 18:59:13.449269853 -0700
++++ b/source/API/CMakeLists.txt	2024-05-30 19:00:33.721858164 -0700
+@@ -115,14 +115,6 @@
+   ${option_install_prefix}
+ )
+ 
+-# lib/pythonX.Y/dist-packages/lldb/_lldb.so is a symlink to lib/liblldb.so,
+-# which depends on lib/libLLVM*.so (BUILD_SHARED_LIBS) or lib/libLLVM-10git.so
+-# (LLVM_LINK_LLVM_DYLIB). Add an additional rpath $ORIGIN/../../../../lib so
+-# that _lldb.so can be loaded from Python.
+-if(LLDB_ENABLE_PYTHON AND (BUILD_SHARED_LIBS OR LLVM_LINK_LLVM_DYLIB) AND UNIX AND NOT APPLE)
+-  set_property(TARGET liblldb APPEND PROPERTY INSTALL_RPATH "\$ORIGIN/../../../../lib${LLVM_LIBDIR_SUFFIX}")
+-endif()
+-
+ if(Python3_RPATH)
+   set_property(TARGET liblldb APPEND PROPERTY INSTALL_RPATH "${Python3_RPATH}")
+   set_property(TARGET liblldb APPEND PROPERTY BUILD_RPATH   "${Python3_RPATH}")
diff --git a/pkgs/development/compilers/llvm/common/llvm/default.nix b/pkgs/development/compilers/llvm/common/llvm/default.nix
index 705dfed8a2496..89ea8f6e7a564 100644
--- a/pkgs/development/compilers/llvm/common/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/common/llvm/default.nix
@@ -39,6 +39,7 @@
   # broken for the armv7l builder
   && !stdenv.hostPlatform.isAarch
 , enablePolly ? lib.versionAtLeast release_version "14"
+, enableTerminfo ? true
 }:
 
 let
@@ -124,59 +125,54 @@ stdenv.mkDerivation (rec {
     substituteInPlace cmake/modules/AddLLVM.cmake \
       --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
       --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' ""
-  '' + (optionalString (lib.versionAtLeast release_version "15") (''
-
+  '' +
     # As of LLVM 15, marked as XFAIL on arm64 macOS but lit doesn't seem to pick
     # this up: https://github.com/llvm/llvm-project/blob/c344d97a125b18f8fed0a64aace73c49a870e079/llvm/test/MC/ELF/cfi-version.ll#L7
+    (optionalString (lib.versionAtLeast release_version "15") (''
     rm test/MC/ELF/cfi-version.ll
 
+  '' +
     # This test tries to call `sw_vers` by absolute path (`/usr/bin/sw_vers`)
     # and thus fails under the sandbox:
-  '' + (if lib.versionAtLeast release_version "16" then ''
+    (if lib.versionAtLeast release_version "16" then ''
     substituteInPlace unittests/TargetParser/Host.cpp \
       --replace '/usr/bin/sw_vers' "${(builtins.toString darwin.DarwinTools) + "/bin/sw_vers" }"
   '' else ''
     substituteInPlace unittests/Support/Host.cpp \
       --replace '/usr/bin/sw_vers' "${(builtins.toString darwin.DarwinTools) + "/bin/sw_vers" }"
-  '') + optionalString (lib.versionAtLeast release_version "16") ''
-
+  '') +
     # This test tries to call the intrinsics `@llvm.roundeven.f32` and
     # `@llvm.roundeven.f64` which seem to (incorrectly?) lower to `roundevenf`
-    # and `roundeven` on macOS.
+    # and `roundeven` on macOS and FreeBSD.
     #
     # However these functions are glibc specific so the test fails:
     #   - https://www.gnu.org/software/gnulib/manual/html_node/roundevenf.html
     #   - https://www.gnu.org/software/gnulib/manual/html_node/roundeven.html
     #
+    # TODO(@rrbutani): this seems to run fine on `aarch64-darwin`, why does it
+    # pass there?
+    optionalString (lib.versionAtLeast release_version "16") ''
     substituteInPlace test/ExecutionEngine/Interpreter/intrinsics.ll \
       --replace "%roundeven32 = call float @llvm.roundeven.f32(float 0.000000e+00)" "" \
       --replace "%roundeven64 = call double @llvm.roundeven.f64(double 0.000000e+00)" ""
-  '' + optionalString (!stdenv.hostPlatform.isx86 && lib.versionAtLeast release_version "18") ''
-
+  '' +
     # fails when run in sandbox
+    optionalString (!stdenv.hostPlatform.isx86 && lib.versionAtLeast release_version "18") ''
     substituteInPlace unittests/Support/VirtualFileSystemTest.cpp \
       --replace "PhysicalFileSystemWorkingDirFailure" "DISABLED_PhysicalFileSystemWorkingDirFailure"
-  ''))) + optionalString (stdenv.isDarwin && stdenv.hostPlatform.isx86 && lib.versionAtLeast release_version "15") (optionalString (lib.versionOlder release_version "16") ''
-    # This test tries to call the intrinsics `@llvm.roundeven.f32` and
-    # `@llvm.roundeven.f64` which seem to (incorrectly?) lower to `roundevenf`
-    # and `roundeven` on x86_64 macOS.
-    #
-    # However these functions are glibc specific so the test fails:
-    #   - https://www.gnu.org/software/gnulib/manual/html_node/roundevenf.html
-    #   - https://www.gnu.org/software/gnulib/manual/html_node/roundeven.html
-    #
-    # TODO(@rrbutani): this seems to run fine on `aarch64-darwin`, why does it
-    # pass there?
+  ''))) +
+    # dup of above patch with different conditions
+    optionalString (stdenv.isDarwin && stdenv.hostPlatform.isx86 && lib.versionAtLeast release_version "15") (optionalString (lib.versionOlder release_version "16") ''
     substituteInPlace test/ExecutionEngine/Interpreter/intrinsics.ll \
       --replace "%roundeven32 = call float @llvm.roundeven.f32(float 0.000000e+00)" "" \
       --replace "%roundeven64 = call double @llvm.roundeven.f64(double 0.000000e+00)" ""
 
-  '' + ((optionalString (lib.versionAtLeast release_version "18") ''
-
+  '' +
     # fails when run in sandbox
+    ((optionalString (lib.versionAtLeast release_version "18") ''
     substituteInPlace unittests/Support/VirtualFileSystemTest.cpp \
       --replace "PhysicalFileSystemWorkingDirFailure" "DISABLED_PhysicalFileSystemWorkingDirFailure"
-  '') + ''
+  '') +
     # This test fails on darwin x86_64 because `sw_vers` reports a different
     # macOS version than what LLVM finds by reading
     # `/System/Library/CoreServices/SystemVersion.plist` (which is passed into
@@ -205,19 +201,20 @@ stdenv.mkDerivation (rec {
     # not clear to me when/where/for what this even gets used in LLVM.
     #
     # TODO(@rrbutani): fix/follow-up
-  '' + (if lib.versionAtLeast release_version "16" then ''
+    (if lib.versionAtLeast release_version "16" then ''
     substituteInPlace unittests/TargetParser/Host.cpp \
       --replace "getMacOSHostVersion" "DISABLED_getMacOSHostVersion"
   '' else ''
     substituteInPlace unittests/Support/Host.cpp \
       --replace "getMacOSHostVersion" "DISABLED_getMacOSHostVersion"
-  '') + ''
-
+  '') +
     # This test fails with a `dysmutil` crash; have not yet dug into what's
     # going on here (TODO(@rrbutani)).
+    lib.optionalString (lib.versionOlder release_version "19") ''
     rm test/tools/dsymutil/ARM/obfuscated.test
-  '')) + ''
+  '')) +
     # FileSystem permissions tests fail with various special bits
+  ''
     substituteInPlace unittests/Support/CMakeLists.txt \
       --replace "Path.cpp" ""
     rm unittests/Support/Path.cpp
@@ -229,22 +226,24 @@ stdenv.mkDerivation (rec {
   '' + lib.optionalString (lib.versionOlder release_version "13") ''
     # TODO: Fix failing tests:
     rm test/DebugInfo/X86/vla-multi.ll
-  '' + lib.optionalString (lib.versionAtLeast release_version "16") (''
-
+  '' +
     # Fails in the presence of anti-virus software or other intrusion-detection software that
     # modifies the atime when run. See #284056.
+    lib.optionalString (lib.versionAtLeast release_version "16") (''
     rm test/tools/llvm-objcopy/ELF/strip-preserve-atime.test
   '' + lib.optionalString (lib.versionOlder release_version "17") ''
 
-  '') + lib.optionalString (lib.versionAtLeast release_version "15" && lib.versionOlder release_version "17") ''
+  '') +
     # timing-based tests are trouble
+    lib.optionalString (lib.versionAtLeast release_version "15" && lib.versionOlder release_version "17") ''
     rm utils/lit/tests/googletest-timeout.py
-  '' + optionalString stdenv.hostPlatform.isMusl ''
+  '' +
+    # valgrind unhappy with musl or glibc, but fails w/musl only
+    optionalString stdenv.hostPlatform.isMusl ''
     patch -p1 -i ${./TLI-musl.patch}
     substituteInPlace unittests/Support/CMakeLists.txt \
       --replace "add_subdirectory(DynamicLibrary)" ""
     rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp
-    # valgrind unhappy with musl or glibc, but fails w/musl only
     rm test/CodeGen/AArch64/wineh4.mir
   '' + optionalString stdenv.hostPlatform.isAarch32 ''
     # skip failing X86 test cases on 32-bit ARM
@@ -254,18 +253,28 @@ stdenv.mkDerivation (rec {
     rm test/tools/dsymutil/X86/op-convert.test
     rm test/tools/gold/X86/split-dwarf.ll
     rm test/tools/llvm-objcopy/MachO/universal-object.test
-  '' + optionalString (stdenv.hostPlatform.system == "armv6l-linux") ''
+  '' +
     # Seems to require certain floating point hardware (NEON?)
+    optionalString (stdenv.hostPlatform.system == "armv6l-linux") ''
     rm test/ExecutionEngine/frem.ll
+  '' +
+    # 1. TODO: Why does this test fail on FreeBSD?
+    # It seems to reference /usr/local/lib/libfile.a, which is clearly a problem.
+    # 2. This test fails for the same reason it fails on MacOS, but the fix is
+    # not trivial to apply.
+    optionalString stdenv.isFreeBSD ''
+    rm test/tools/llvm-libtool-darwin/L-and-l.test
+    rm test/ExecutionEngine/Interpreter/intrinsics.ll
   '' + ''
     patchShebangs test/BugPoint/compile-custom.ll.py
-  '' + (lib.optionalString (lib.versionOlder release_version "13") ''
+  '' +
     # Tweak tests to ignore namespace part of type to support
     # gcc-12: https://gcc.gnu.org/PR103598.
     # The change below mangles strings like:
     #    CHECK-NEXT: Starting llvm::Function pass manager run.
     # to:
     #    CHECK-NEXT: Starting {{.*}}Function pass manager run.
+    (lib.optionalString (lib.versionOlder release_version "13") (''
     for f in \
       test/Other/new-pass-manager.ll \
       test/Other/new-pm-O0-defaults.ll \
@@ -286,18 +295,19 @@ stdenv.mkDerivation (rec {
         --replace 'Starting llvm::' 'Starting {{.*}}' \
         --replace 'Finished llvm::' 'Finished {{.*}}'
     done
+  '' +
     # gcc-13 fix
+  ''
     sed -i '/#include <string>/i#include <cstdint>' \
       include/llvm/DebugInfo/Symbolize/DIPrinter.h
-  '');
+  ''));
 
+  # Workaround for configure flags that need to have spaces
   preConfigure = if lib.versionAtLeast release_version "15" then ''
-    # Workaround for configure flags that need to have spaces
     cmakeFlagsArray+=(
       -DLLVM_LIT_ARGS="-svj''${NIX_BUILD_CORES} --no-progress-bar"
     )
   '' else ''
-    # Workaround for configure flags that need to have spaces
     cmakeFlagsArray+=(
       -DLLVM_LIT_ARGS='-svj''${NIX_BUILD_CORES} --no-progress-bar'
     )
@@ -332,9 +342,13 @@ stdenv.mkDerivation (rec {
     "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
     "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
     "-DLLVM_ENABLE_DUMP=ON"
+    (lib.cmakeBool "LLVM_ENABLE_TERMINFO" enableTerminfo)
+  ] ++ optionals (!doCheck) [
+    "-DLLVM_INCLUDE_TESTS=OFF"
   ] ++ optionals stdenv.hostPlatform.isStatic [
     # Disables building of shared libs, -fPIC is still injected by cc-wrapper
     "-DLLVM_ENABLE_PIC=OFF"
+    "-DCMAKE_SKIP_INSTALL_RPATH=ON"
     "-DLLVM_BUILD_STATIC=ON"
     # libxml2 needs to be disabled because the LLVM build system ignores its .la
     # file and doesn't link zlib as well.
@@ -417,7 +431,7 @@ stdenv.mkDerivation (rec {
   requiredSystemFeatures = [ "big-parallel" ];
   meta = llvm_meta // {
     homepage = "https://llvm.org/";
-    description = "A collection of modular and reusable compiler and toolchain technologies";
+    description = "Collection of modular and reusable compiler and toolchain technologies";
     longDescription = ''
       The LLVM Project is a collection of modular and reusable compiler and
       toolchain technologies. Despite its name, LLVM has little to do with
diff --git a/pkgs/development/compilers/llvm/git/clang/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/git/clang/gnu-install-dirs.patch
index 9517df973ad09..b8c1c110cf22d 100644
--- a/pkgs/development/compilers/llvm/git/clang/gnu-install-dirs.patch
+++ b/pkgs/development/compilers/llvm/git/clang/gnu-install-dirs.patch
@@ -1,5 +1,5 @@
 diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake
-index 75b0080f6715..c895b884cd27 100644
+index 75b0080f6..c895b884c 100644
 --- a/cmake/modules/AddClang.cmake
 +++ b/cmake/modules/AddClang.cmake
 @@ -119,8 +119,8 @@ macro(add_clang_library name)
@@ -14,22 +14,22 @@ index 75b0080f6715..c895b884cd27 100644
  
          if (NOT LLVM_ENABLE_IDE)
 diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt
-index f2b0c5cddcbb..52f37fc368ce 100644
+index e6ae4e19e..5ef01aea2 100644
 --- a/lib/Headers/CMakeLists.txt
 +++ b/lib/Headers/CMakeLists.txt
-@@ -473,6 +473,7 @@ add_header_target("windows-resource-headers" ${windows_only_files})
- add_header_target("utility-resource-headers" ${utility_files})
+@@ -337,6 +337,7 @@ set(llvm_libc_wrapper_files
  
- get_clang_resource_dir(header_install_dir SUBDIR include)
+ include(GetClangResourceDir)
+ get_clang_resource_dir(output_dir PREFIX ${LLVM_LIBRARY_OUTPUT_INTDIR}/.. SUBDIR include)
 +set(header_install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION_MAJOR}/include)
+ set(out_files)
+ set(generated_files)
  
- #############################################################
- # Install rules for the catch-all clang-resource-headers target
 diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt
-index 4f23065a2472..6a0f55991e24 100644
+index b5b6d2807..6b592d255 100644
 --- a/tools/libclang/CMakeLists.txt
 +++ b/tools/libclang/CMakeLists.txt
-@@ -234,7 +234,7 @@ foreach(PythonVersion ${CLANG_PYTHON_BINDINGS_VERSIONS})
+@@ -246,7 +246,7 @@ foreach(PythonVersion ${CLANG_PYTHON_BINDINGS_VERSIONS})
            COMPONENT
              libclang-python-bindings
            DESTINATION
@@ -39,7 +39,7 @@ index 4f23065a2472..6a0f55991e24 100644
  if(NOT LLVM_ENABLE_IDE)
    add_custom_target(libclang-python-bindings)
 diff --git a/tools/scan-build-py/CMakeLists.txt b/tools/scan-build-py/CMakeLists.txt
-index 3aca22c0b0a8..3115353e3fe3 100644
+index 3aca22c0b..3115353e3 100644
 --- a/tools/scan-build-py/CMakeLists.txt
 +++ b/tools/scan-build-py/CMakeLists.txt
 @@ -88,7 +88,7 @@ foreach(lib ${LibScanbuild})
diff --git a/pkgs/development/compilers/llvm/git/default.nix b/pkgs/development/compilers/llvm/git/default.nix
index c995845fb6b38..0e3a0eb7c6967 100644
--- a/pkgs/development/compilers/llvm/git/default.nix
+++ b/pkgs/development/compilers/llvm/git/default.nix
@@ -1,6 +1,7 @@
-{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja
+{ lowPrio, newScope, pkgs, lib, stdenv
 , preLibcCrossHeaders
-, libxml2, python3, fetchFromGitHub, substituteAll, overrideCC, wrapCCWith, wrapBintoolsWith
+, substitute, substituteAll, fetchFromGitHub, fetchpatch
+, overrideCC, wrapCCWith, wrapBintoolsWith
 , buildLlvmTools # tools, but from the previous stage, for cross
 , targetLlvmLibraries # libraries, but from the next stage, for cross
 , targetLlvm
@@ -19,9 +20,9 @@
 # LLVM release information; specify one of these but not both:
 , gitRelease ? {
     version = "19.0.0-git";
-    rev = "cebf77fb936a7270c7e3fa5c4a7e76216321d385";
-    rev-version = "19.0.0-unstable-2024-04-07";
-    sha256 = "sha256-616tscgsiFgHQcXW4KzK5srrudYizQFnJVM6K0qRf+I=";
+    rev = "78ee473784e5ef6f0b19ce4cb111fb6e4d23c6b2";
+    rev-version = "19.0.0-unstable-2024-06-12";
+    sha256 = "sha256-oLVMwWjo6Nt8ZsTnDTfoiM5U0+1lVIc1NO+4qBNYlzs=";
 }
   # i.e.:
   # {
@@ -44,7 +45,11 @@
 # to you to make sure that the LLVM repo given matches the release configuration
 # specified.
 , monorepoSrc ? null
-}:
+# Allows passthrough to packages via newScope. This makes it possible to
+# do `(llvmPackages.override { <someLlvmDependency> = bar; }).clang` and get
+# an llvmPackages whose packages are overridden in an internally consistent way.
+, ...
+}@args:
 
 assert
   lib.assertMsg
@@ -56,15 +61,17 @@ assert
 let
   monorepoSrc' = monorepoSrc;
 in let
-  inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo;
 
-  inherit (releaseInfo) release_version version;
-
-  inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc;
+  metadata = rec {
+    # Import releaseInfo separately to avoid infinite recursion
+    inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo;
+    inherit (releaseInfo) release_version version;
+    inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub gitRelease release_version officialRelease monorepoSrc'; }) llvm_meta monorepoSrc;
+  };
 
   tools = lib.makeExtensible (tools: let
-    callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; });
-    major = lib.versions.major release_version;
+    callPackage = newScope (tools // args // metadata);
+    major = lib.versions.major metadata.release_version;
     mkExtraBuildCommands0 = cc: ''
       rsrc="$out/resource-root"
       mkdir "$rsrc"
@@ -138,7 +145,6 @@ in let
         # Just like the `llvm-lit-cfg` patch, but for `polly`.
         ./llvm/polly-lit-cfg-add-libs-to-dylib-path.patch
       ];
-      inherit llvm_meta;
     };
 
     # `llvm` historically had the binaries.  When choosing an output explicitly,
@@ -156,7 +162,6 @@ in let
           libllvmLibdir = "${tools.libllvm.lib}/lib";
         })
       ];
-      inherit llvm_meta;
     };
 
     clang-unwrapped = tools.libclang;
@@ -205,15 +210,12 @@ in let
       patches = [
         ./lld/gnu-install-dirs.patch
       ];
-      inherit llvm_meta;
     };
 
-    mlir = callPackage ../common/mlir {
-      inherit llvm_meta;
-    };
+    mlir = callPackage ../common/mlir {};
 
     lldb = callPackage ../common/lldb.nix {
-      src = callPackage ({ runCommand }: runCommand "lldb-src-${version}" {} ''
+      src = callPackage ({ runCommand }: runCommand "lldb-src-${metadata.version}" {} ''
         mkdir -p "$out"
         cp -r ${monorepoSrc}/cmake "$out"
         cp -r ${monorepoSrc}/lldb "$out"
@@ -237,7 +239,6 @@ in let
             && !stdenv.targetPlatform.isAarch64
             && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0")
         ) ./lldb/cpu_subtype_arm64e_replacement.patch;
-      inherit llvm_meta;
     };
 
     # Below, is the LLVM bootstrapping logic. It handles building a
@@ -340,13 +341,11 @@ in let
     # Has to be in tools despite mostly being a library,
     # because we use a native helper executable from a
     # non-cross build in cross builds.
-    libclc = callPackage ../common/libclc.nix {
-      inherit buildLlvmTools;
-    };
+    libclc = callPackage ../common/libclc.nix {};
   });
 
   libraries = lib.makeExtensible (libraries: let
-    callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc; });
+    callPackage = newScope (libraries // buildLlvmTools // args // metadata);
   in {
 
     compiler-rt-libc = callPackage ../common/compiler-rt {
@@ -360,7 +359,6 @@ in let
         # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893
         # ../common/compiler-rt/armv7l-15.patch
       ];
-      inherit llvm_meta;
       stdenv = if stdenv.hostPlatform.useLLVM or false || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isStatic)
                then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc
                else stdenv;
@@ -377,7 +375,6 @@ in let
         # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893
         # ../common/compiler-rt/armv7l-15.patch
       ];
-      inherit llvm_meta;
       stdenv = if stdenv.hostPlatform.useLLVM or false
                then overrideCC stdenv buildLlvmTools.clangNoCompilerRt
                else stdenv;
@@ -400,12 +397,10 @@ in let
         # https://github.com/llvm/llvm-project/issues/64226
         ./libcxx/0001-darwin-10.12-mbstate_t-fix.patch
       ];
-      inherit llvm_meta;
       stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
     };
 
     libunwind = callPackage ../common/libunwind {
-      inherit llvm_meta;
       stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
     };
 
@@ -414,9 +409,8 @@ in let
         ./openmp/fix-find-tool.patch
         ./openmp/run-lit-directly.patch
       ];
-      inherit llvm_meta targetLlvm;
     };
   });
   noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ];
 
-in { inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools)
+in { inherit tools libraries; inherit (metadata) release_version; } // (noExtend libraries) // (noExtend tools)
diff --git a/pkgs/development/compilers/lobster/default.nix b/pkgs/development/compilers/lobster/default.nix
index 131fdbfef98fa..645e7019aa73b 100644
--- a/pkgs/development/compilers/lobster/default.nix
+++ b/pkgs/development/compilers/lobster/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "lobster";
-  version = "2023.13";
+  version = "2024.0";
 
   src = fetchFromGitHub {
     owner = "aardappel";
     repo = "lobster";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-7lMIIJ3iduyxZKwK65tle3c+az2G2Mpi4JwAeCCsTxw=";
+    sha256 = "sha256-EBgb442wI9qU/o6EVCwPnMtPuv1f6Xk2+CZpKWXf3tY=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -52,7 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     broken = stdenv.isDarwin;
     homepage = "https://strlen.com/lobster/";
-    description = "The Lobster programming language";
+    description = "Lobster programming language";
     mainProgram = "lobster";
     longDescription = ''
       Lobster is a programming language that tries to combine the advantages of
diff --git a/pkgs/development/compilers/manticore/default.nix b/pkgs/development/compilers/manticore/default.nix
index 030e131656310..d344ff4b726ee 100644
--- a/pkgs/development/compilers/manticore/default.nix
+++ b/pkgs/development/compilers/manticore/default.nix
@@ -38,7 +38,7 @@ in stdenv.mkDerivation {
   preInstall = "mkdir -p $out/bin";
 
   meta = {
-    description = "A parallel, pure variant of Standard ML";
+    description = "Parallel, pure variant of Standard ML";
     mainProgram = "pmlc";
 
     longDescription = ''
diff --git a/pkgs/development/compilers/marst/default.nix b/pkgs/development/compilers/marst/default.nix
index 8644fcf7bf435..f62181405b9ed 100644
--- a/pkgs/development/compilers/marst/default.nix
+++ b/pkgs/development/compilers/marst/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.gnu.org/software/marst/";
-    description = "An Algol-60-to-C translator";
+    description = "Algol-60-to-C translator";
     longDescription = ''
       MARST is an Algol-to-C translator. It automatically translates programs
       written on the algorithmic language Algol 60 to the C programming
diff --git a/pkgs/development/compilers/mercury/default.nix b/pkgs/development/compilers/mercury/default.nix
index d2e15dc6fc233..f8ed2ed73ab07 100644
--- a/pkgs/development/compilers/mercury/default.nix
+++ b/pkgs/development/compilers/mercury/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A pure logic programming language";
+    description = "Pure logic programming language";
     longDescription = ''
       Mercury is a logic/functional programming language which combines the
       clarity and expressiveness of declarative programming with advanced
diff --git a/pkgs/development/compilers/mezzo/default.nix b/pkgs/development/compilers/mezzo/default.nix
index 50c34f7c35be2..498743ee743e0 100644
--- a/pkgs/development/compilers/mezzo/default.nix
+++ b/pkgs/development/compilers/mezzo/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "http://protz.github.io/mezzo/";
-    description = "A programming language in the ML tradition, which places strong emphasis on the control of aliasing and access to mutable memory";
+    description = "Programming language in the ML tradition, which places strong emphasis on the control of aliasing and access to mutable memory";
     license = licenses.gpl2;
     platforms = ocaml.meta.platforms or [];
   };
diff --git a/pkgs/development/compilers/microscheme/default.nix b/pkgs/development/compilers/microscheme/default.nix
index c9f3a1847066b..d630082c76fb4 100644
--- a/pkgs/development/compilers/microscheme/default.nix
+++ b/pkgs/development/compilers/microscheme/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://ryansuchocki.github.io/microscheme/";
-    description = "A Scheme subset for Atmel microcontrollers";
+    description = "Scheme subset for Atmel microcontrollers";
     mainProgram = "microscheme";
     longDescription = ''
       Microscheme is a Scheme subset/variant designed for Atmel
diff --git a/pkgs/development/compilers/minimacy/default.nix b/pkgs/development/compilers/minimacy/default.nix
index 6928ba4cdc42d..ae4da0d5b0279 100644
--- a/pkgs/development/compilers/minimacy/default.nix
+++ b/pkgs/development/compilers/minimacy/default.nix
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "An open-source minimalist computing technology";
+    description = "Open-source minimalist computing technology";
     longDescription = ''
       Minimacy is an open-source minimalist computation system based on the principle "Less is more".
       It is designed and programmed by Sylvain Huet.
diff --git a/pkgs/development/compilers/mint/default.nix b/pkgs/development/compilers/mint/default.nix
index 3a81f17fd5384..5a94d35c051f6 100644
--- a/pkgs/development/compilers/mint/default.nix
+++ b/pkgs/development/compilers/mint/default.nix
@@ -25,7 +25,7 @@ crystal.buildCrystalPackage rec {
   '';
 
   meta = with lib; {
-    description = "A refreshing language for the front-end web";
+    description = "Refreshing language for the front-end web";
     mainProgram = "mint";
     homepage = "https://www.mint-lang.com/";
     license = licenses.bsd3;
diff --git a/pkgs/development/compilers/mlkit/default.nix b/pkgs/development/compilers/mlkit/default.nix
index e5cd4992d6c60..5dbc219303a00 100644
--- a/pkgs/development/compilers/mlkit/default.nix
+++ b/pkgs/development/compilers/mlkit/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mlkit";
-  version = "4.7.9";
+  version = "4.7.11";
 
   src = fetchFromGitHub {
     owner = "melsman";
     repo = "mlkit";
     rev = "v${version}";
-    sha256 = "sha256-Q5HKNilXhoOaCMY05A09VzK4CpLPte78bivs1c78euM=";
+    sha256 = "sha256-awjinXegc8jLd6OAB8QLDoXnotZhKbyfMWckp2U3MjA=";
   };
 
   nativeBuildInputs = [ autoreconfHook mlton ];
diff --git a/pkgs/development/compilers/mosml/default.nix b/pkgs/development/compilers/mosml/default.nix
index 44ed1185fafcc..26ce0365a6cd4 100644
--- a/pkgs/development/compilers/mosml/default.nix
+++ b/pkgs/development/compilers/mosml/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   dontPatchELF = true;
 
   meta = with lib; {
-    description = "A light-weight implementation of Standard ML";
+    description = "Light-weight implementation of Standard ML";
     longDescription = ''
       Moscow ML is a light-weight implementation of Standard ML (SML), a strict
       functional language used in teaching and research.
diff --git a/pkgs/development/compilers/mozart/default.nix b/pkgs/development/compilers/mozart/default.nix
index 521ae2a9b22c5..8b66cbce688b6 100644
--- a/pkgs/development/compilers/mozart/default.nix
+++ b/pkgs/development/compilers/mozart/default.nix
@@ -70,7 +70,7 @@ in stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An open source implementation of Oz 3";
+    description = "Open source implementation of Oz 3";
     maintainers = with maintainers; [ layus h7x4 ];
     license = licenses.bsd2;
     homepage = "https://mozart.github.io";
diff --git a/pkgs/development/compilers/mruby/default.nix b/pkgs/development/compilers/mruby/default.nix
index a379a298123cf..0fc1af2d6676d 100644
--- a/pkgs/development/compilers/mruby/default.nix
+++ b/pkgs/development/compilers/mruby/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "An embeddable implementation of the Ruby language";
+    description = "Embeddable implementation of the Ruby language";
     homepage = "https://mruby.org";
     maintainers = with maintainers; [ nicknovitski ];
     license = licenses.mit;
diff --git a/pkgs/development/compilers/mrustc/bootstrap.nix b/pkgs/development/compilers/mrustc/bootstrap.nix
index 0996702ec6253..ab5b9d7d21661 100644
--- a/pkgs/development/compilers/mrustc/bootstrap.nix
+++ b/pkgs/development/compilers/mrustc/bootstrap.nix
@@ -134,7 +134,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "A minimal build of Rust";
+    description = "Minimal build of Rust";
     longDescription = ''
       A minimal build of Rust, built from source using mrustc.
       This is useful for bootstrapping the main Rust compiler without
diff --git a/pkgs/development/compilers/mrustc/minicargo.nix b/pkgs/development/compilers/mrustc/minicargo.nix
index c7d5da1f90491..788534f39cd75 100644
--- a/pkgs/development/compilers/mrustc/minicargo.nix
+++ b/pkgs/development/compilers/mrustc/minicargo.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A minimalist builder for Rust";
+    description = "Minimalist builder for Rust";
     mainProgram = "minicargo";
     longDescription = ''
       A minimalist builder for Rust, similar to Cargo but written in C++.
diff --git a/pkgs/development/compilers/nasm/default.nix b/pkgs/development/compilers/nasm/default.nix
index 2ba33b2c68338..e839c21fca2b5 100644
--- a/pkgs/development/compilers/nasm/default.nix
+++ b/pkgs/development/compilers/nasm/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.nasm.us/";
-    description = "An 80x86 and x86-64 assembler designed for portability and modularity";
+    description = "80x86 and x86-64 assembler designed for portability and modularity";
     platforms = platforms.unix;
     maintainers = with maintainers; [ pSub willibutz ];
     license = licenses.bsd2;
diff --git a/pkgs/development/compilers/neko/default.nix b/pkgs/development/compilers/neko/default.nix
index fff5762a38d72..a0c8886740167 100644
--- a/pkgs/development/compilers/neko/default.nix
+++ b/pkgs/development/compilers/neko/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   dontStrip = true;
 
   meta = with lib; {
-    description = "A high-level dynamically typed programming language";
+    description = "High-level dynamically typed programming language";
     homepage = "https://nekovm.org";
     license = [
       # list based on https://github.com/HaxeFoundation/neko/blob/v2-3-0/LICENSE
diff --git a/pkgs/development/compilers/nim/build-nim-package.nix b/pkgs/development/compilers/nim/build-nim-package.nix
index a22fb45b507bc..2bff3bf8cc857 100644
--- a/pkgs/development/compilers/nim/build-nim-package.nix
+++ b/pkgs/development/compilers/nim/build-nim-package.nix
@@ -57,10 +57,6 @@ let
     let fod = methods.${method} attrs;
     in ''--path:"${fod.outPath}/${attrs.srcDir}"'';
 
-  callAnnotations = { packages, ... }@lockAttrs:
-    map (packageName: nimOverrides.${packageName} or (_: [ ]) lockAttrs)
-      packages;
-
   asFunc = x: if builtins.isFunction x then x else (_: x);
 
 in
@@ -79,12 +75,17 @@ let
 
       lockFileNimFlags = map fodFromLockEntry lockDepends;
 
-      annotationOverlays = lib.lists.flatten (map callAnnotations lockDepends);
-
-      postLock = builtins.foldl'
-        (prevAttrs: overlay: prevAttrs // (overlay finalAttrs prevAttrs))
-        postPkg
-        annotationOverlays;
+      postNimOverrides = builtins.foldl' (
+        prevAttrs:
+        { packages, ... }@lockAttrs:
+        builtins.foldl' (
+          prevAttrs: name:
+          if (builtins.hasAttr name nimOverrides) then
+            (prevAttrs // (nimOverrides.${name} lockAttrs prevAttrs))
+          else
+            prevAttrs
+        ) prevAttrs packages
+      ) postPkg lockDepends;
 
       finalOverride =
         { depsBuildBuild ? [ ]
@@ -125,7 +126,7 @@ let
           };
         };
 
-      attrs = postLock // finalOverride postLock;
+      attrs = postNimOverrides // finalOverride postNimOverrides;
     in
     lib.trivial.warnIf (builtins.hasAttr "nimBinOnly" attrs)
       "the nimBinOnly attribute is deprecated for buildNimPackage"
diff --git a/pkgs/development/compilers/nim/default.nix b/pkgs/development/compilers/nim/default.nix
index 089043dc6deea..0ac32994b00d6 100644
--- a/pkgs/development/compilers/nim/default.nix
+++ b/pkgs/development/compilers/nim/default.nix
@@ -1,7 +1,7 @@
 # https://nim-lang.github.io/Nim/packaging.html
 # https://nim-lang.org/docs/nimc.html
 
-{ lib, callPackage, buildPackages, stdenv, fetchurl, fetchgit, fetchFromGitHub
+{ lib, callPackage, buildPackages, stdenv, fetchurl, fetchgit
 , makeWrapper, openssl, pcre, readline, boehmgc, sqlite, Security
 , nim-unwrapped-2, nim-unwrapped-1, nim }:
 
diff --git a/pkgs/development/compilers/nqc/default.nix b/pkgs/development/compilers/nqc/default.nix
index a532b7df8580d..a7d6cb5f2cdd0 100644
--- a/pkgs/development/compilers/nqc/default.nix
+++ b/pkgs/development/compilers/nqc/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://bricxcc.sourceforge.net/nqc/";
-    description = "A programming language for several LEGO MINDSTORMS products including the RCX, CyberMaster, and Scout";
+    description = "Programming language for several LEGO MINDSTORMS products including the RCX, CyberMaster, and Scout";
     platforms = platforms.linux;
     license = licenses.mpl10;
     maintainers = with maintainers; [ christophcharles ];
diff --git a/pkgs/development/compilers/obliv-c/default.nix b/pkgs/development/compilers/obliv-c/default.nix
index f2eadee579376..98a1d7192ed76 100644
--- a/pkgs/development/compilers/obliv-c/default.nix
+++ b/pkgs/development/compilers/obliv-c/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A GCC wrapper that makes it easy to embed secure computation protocols inside regular C programs";
+    description = "GCC wrapper that makes it easy to embed secure computation protocols inside regular C programs";
     license = lib.licenses.bsd3;
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/compilers/ocaml/ber-metaocaml.nix b/pkgs/development/compilers/ocaml/ber-metaocaml.nix
index 230c911ef68ca..5279fc7481b6e 100644
--- a/pkgs/development/compilers/ocaml/ber-metaocaml.nix
+++ b/pkgs/development/compilers/ocaml/ber-metaocaml.nix
@@ -1,7 +1,6 @@
 { lib, stdenv, fetchurl
 , ncurses
 , libX11, xorgproto, buildEnv
-, fetchpatch
 , useX11 ? stdenv.hostPlatform.isx86
 }:
 
diff --git a/pkgs/development/compilers/ocaml/builder.sh b/pkgs/development/compilers/ocaml/builder.sh
deleted file mode 100644
index 85b26848f4e45..0000000000000
--- a/pkgs/development/compilers/ocaml/builder.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
-source $stdenv/setup
-
-configureFlags="-prefix $out $configureFlags"
-genericBuild
-
-#cd emacs/
-#mkdir -p $out/share/ocaml/emacs
-#make EMACSDIR=$out/share/ocaml/emacs install
diff --git a/pkgs/development/compilers/odin/default.nix b/pkgs/development/compilers/odin/default.nix
index 5cb6818c6ba84..d8a608508c553 100644
--- a/pkgs/development/compilers/odin/default.nix
+++ b/pkgs/development/compilers/odin/default.nix
@@ -1,6 +1,6 @@
 { lib
 , fetchFromGitHub
-, llvmPackages_13
+, llvmPackages
 , makeBinaryWrapper
 , libiconv
 , MacOSX-SDK
@@ -9,17 +9,16 @@
 }:
 
 let
-  llvmPackages = llvmPackages_13;
   inherit (llvmPackages) stdenv;
 in stdenv.mkDerivation rec {
   pname = "odin";
-  version = "dev-2024-05";
+  version = "dev-2024-06";
 
   src = fetchFromGitHub {
     owner = "odin-lang";
     repo = "Odin";
     rev = version;
-    hash = "sha256-JGTC+Gi5mkHQHvd5CmEzrhi1muzWf1rUN4f5FT5K5vc=";
+    hash = "sha256-Ba+244L855y+XzLcaf1fgQhHVDv2Q77GPapRAYmCQfg=";
   };
 
   nativeBuildInputs = [
@@ -72,7 +71,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A fast, concise, readable, pragmatic and open sourced programming language";
+    description = "Fast, concise, readable, pragmatic and open sourced programming language";
     mainProgram = "odin";
     homepage = "https://odin-lang.org/";
     license = licenses.bsd3;
diff --git a/pkgs/development/compilers/open-watcom/bin.nix b/pkgs/development/compilers/open-watcom/bin.nix
index daf7ea497693a..1f80799089992 100644
--- a/pkgs/development/compilers/open-watcom/bin.nix
+++ b/pkgs/development/compilers/open-watcom/bin.nix
@@ -115,7 +115,7 @@ stdenvNoCC.mkDerivation rec {
   passthru.prettyName = "open-watcom-bin";
 
   meta = with lib; {
-    description = "A project to maintain and enhance the Watcom C, C++, and Fortran cross compilers and tools";
+    description = "Project to maintain and enhance the Watcom C, C++, and Fortran cross compilers and tools";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     homepage = "http://www.openwatcom.org/";
     license = licenses.watcom;
diff --git a/pkgs/development/compilers/open-watcom/v2.nix b/pkgs/development/compilers/open-watcom/v2.nix
index ac529c7de4ef0..ddd62872d4510 100644
--- a/pkgs/development/compilers/open-watcom/v2.nix
+++ b/pkgs/development/compilers/open-watcom/v2.nix
@@ -95,7 +95,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "The v2 fork of the Open Watcom suite of compilers and tools";
+    description = "V2 fork of the Open Watcom suite of compilers and tools";
     longDescription = ''
       A fork of Open Watcom: A C/C++/Fortran compiler and assembler suite
       targeting a multitude of architectures (x86, IA-32, Alpha AXP, MIPS,
diff --git a/pkgs/development/compilers/opendylan/bin.nix b/pkgs/development/compilers/opendylan/bin.nix
index 6e404f37ae9d8..ef6dc0ce91ba1 100644
--- a/pkgs/development/compilers/opendylan/bin.nix
+++ b/pkgs/development/compilers/opendylan/bin.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://opendylan.org";
-    description = "A multi-paradigm functional and object-oriented programming language";
+    description = "Multi-paradigm functional and object-oriented programming language";
     license = lib.licenses.mit;
     platforms = lib.platforms.linux;
   };
diff --git a/pkgs/development/compilers/opendylan/default.nix b/pkgs/development/compilers/opendylan/default.nix
index fa0f98ea7fd29..b34f348519afb 100644
--- a/pkgs/development/compilers/opendylan/default.nix
+++ b/pkgs/development/compilers/opendylan/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "https://opendylan.org";
-    description = "A multi-paradigm functional and object-oriented programming language";
+    description = "Multi-paradigm functional and object-oriented programming language";
     license = lib.licenses.mit;
     platforms = lib.platforms.linux;
     broken = true; # last successful build 2020-12-11
diff --git a/pkgs/development/compilers/openjdk/11.nix b/pkgs/development/compilers/openjdk/11.nix
index e9b8961d5e599..04df2d28a45ca 100644
--- a/pkgs/development/compilers/openjdk/11.nix
+++ b/pkgs/development/compilers/openjdk/11.nix
@@ -11,8 +11,8 @@
 let
   major = "11";
   minor = "0";
-  update = "19";
-  build = "7";
+  update = "23";
+  build = "9";
 
   # when building a headless jdk, also bootstrap it with a headless jdk
   openjdk-bootstrap = openjdk11-bootstrap.override { gtkSupport = !headless; };
@@ -25,7 +25,7 @@ let
       owner = "openjdk";
       repo = "jdk${major}u";
       rev = "jdk-${version}";
-      sha256 = "sha256-mp8toB1dWcwOtMqNFd7UwRg8pLJckovqD/LD5p9zUoA=";
+      sha256 = "sha256-6y6wge8ZuSKBpb5QNihvAlD4Pv/0d3AQCPOkxUm/sJk=";
     };
 
     nativeBuildInputs = [ pkg-config autoconf unzip ];
diff --git a/pkgs/development/compilers/openjdk/16.nix b/pkgs/development/compilers/openjdk/16.nix
index 4b0874a03a415..12ba5c9c16dbb 100644
--- a/pkgs/development/compilers/openjdk/16.nix
+++ b/pkgs/development/compilers/openjdk/16.nix
@@ -11,8 +11,8 @@
 let
   version = {
     feature = "16";
-    interim = "0";
-    build = "36";
+    interim = ".0.2-ga";
+    build = "1";
   };
 
   # when building a headless jdk, also bootstrap it with a headless jdk
@@ -20,13 +20,14 @@ let
 
   openjdk = stdenv.mkDerivation {
     pname = "openjdk" + lib.optionalString headless "-headless";
-    version = "${version.feature}+${version.build}";
+    version = "${version.feature}${version.interim}+${version.build}";
 
     src = fetchFromGitHub {
       owner = "openjdk";
       repo = "jdk${version.feature}u";
-      rev = "jdk-${version.feature}+${version.build}";
-      sha256 = "165nr15dqfcxzsl5z95g4iklln4rlfkgdigdma576mx8813ldi44";
+      rev = "jdk-${version.feature}${version.interim}";
+      # rev = "jdk-${version.feature}${version.interim}+${version.build}";
+      sha256 = "sha256-/8XHNrf9joCCXMCyPncT54JhqlF+KBL7eAf8hUW/BxU=";
     };
 
     nativeBuildInputs = [ pkg-config autoconf unzip ];
diff --git a/pkgs/development/compilers/openjdk/17.nix b/pkgs/development/compilers/openjdk/17.nix
index d2c71683c9bfe..1c9aee9af5e95 100644
--- a/pkgs/development/compilers/openjdk/17.nix
+++ b/pkgs/development/compilers/openjdk/17.nix
@@ -11,8 +11,8 @@
 let
   version = {
     feature = "17";
-    interim = ".0.7";
-    build = "7";
+    interim = ".0.11";
+    build = "9";
   };
 
   # when building a headless jdk, also bootstrap it with a headless jdk
@@ -26,7 +26,7 @@ let
       owner = "openjdk";
       repo = "jdk${version.feature}u";
       rev = "jdk-${version.feature}${version.interim}+${version.build}";
-      sha256 = "sha256-S6QOB4Tbi+K1yjvvywTfvwFI2eX8AiqIx5c3zfxcskc=";
+      sha256 = "sha256-aO4iSc9MklW/4q9U86WEfiiWnlq6iZSbxzq2fbsqd0A=";
     };
 
     nativeBuildInputs = [ pkg-config autoconf unzip ];
diff --git a/pkgs/development/compilers/openjdk/18.nix b/pkgs/development/compilers/openjdk/18.nix
index 2c496721be070..5ce4ff8f54671 100644
--- a/pkgs/development/compilers/openjdk/18.nix
+++ b/pkgs/development/compilers/openjdk/18.nix
@@ -11,7 +11,8 @@
 let
   version = {
     feature = "18";
-    build = "36";
+    interim = ".0.2.1";
+    build = "1";
   };
 
   # when building a headless jdk, also bootstrap it with a headless jdk
@@ -19,13 +20,13 @@ let
 
   openjdk = stdenv.mkDerivation {
     pname = "openjdk" + lib.optionalString headless "-headless";
-    version = "${version.feature}+${version.build}";
+    version = "${version.feature}${version.interim}+${version.build}";
 
     src = fetchFromGitHub {
       owner = "openjdk";
       repo = "jdk${version.feature}u";
-      rev = "jdk-${version.feature}+${version.build}";
-      sha256 = "sha256-yGPC8VA983Ml6Fv/oiEgRrcVe4oe+Q4oCHbzOmFbZq8=";
+      rev = "jdk-${version.feature}${version.interim}+${version.build}";
+      sha256 = "sha256-L6dsN0kqWcfemM8LBg62qtHQdymwRQoV1ndc8r+0qn8=";
     };
 
     nativeBuildInputs = [ pkg-config autoconf unzip ];
diff --git a/pkgs/development/compilers/openjdk/19.nix b/pkgs/development/compilers/openjdk/19.nix
index 51fd0d8eb533f..187d724b57b55 100644
--- a/pkgs/development/compilers/openjdk/19.nix
+++ b/pkgs/development/compilers/openjdk/19.nix
@@ -14,8 +14,8 @@
 let
   version = {
     feature = "19";
-    interim = ".0.2";
-    build = "7";
+    interim = "-ga";
+    build = "";
   };
 
   # when building a headless jdk, also bootstrap it with a headless jdk
@@ -23,13 +23,15 @@ let
 
   openjdk = stdenv.mkDerivation {
     pname = "openjdk" + lib.optionalString headless "-headless";
-    version = "${version.feature}${version.interim}+${version.build}";
+    version = "${version.feature}${version.interim}";
+    # version = "${version.feature}${version.interim}+${version.build}";
 
     src = fetchFromGitHub {
       owner = "openjdk";
       repo = "jdk${version.feature}u";
-      rev = "jdk-${version.feature}${version.interim}+${version.build}";
-      hash = "sha256-pBEHmBtIgG4Czou4C/zpBBYZEDImvXiLoA5CjOzpeyI=";
+      rev = "jdk-${version.feature}${version.interim}";
+      # rev = "jdk-${version.feature}${version.interim}+${version.build}";
+      hash = "sha256-XbYTku/nWF+maBvYz2rJYIUBEgOmqICKjk9wufHqyj0=";
     };
 
     nativeBuildInputs = [ pkg-config autoconf unzip ensureNewerSourcesForZipFilesHook ];
diff --git a/pkgs/development/compilers/openjdk/20.nix b/pkgs/development/compilers/openjdk/20.nix
index 2be834a27b58e..bdb7d057f2633 100644
--- a/pkgs/development/compilers/openjdk/20.nix
+++ b/pkgs/development/compilers/openjdk/20.nix
@@ -14,8 +14,8 @@
 let
   version = {
     feature = "20";
-    interim = "";
-    build = "36";
+    interim = ".0.2";
+    build = "9";
   };
 
   # when building a headless jdk, also bootstrap it with a headless jdk
@@ -29,7 +29,7 @@ let
       owner = "openjdk";
       repo = "jdk${version.feature}u";
       rev = "jdk-${version.feature}${version.interim}+${version.build}";
-      hash = "sha256-fXoSO8nq5qpUYbCtbrRr2C46XRdYX77Pxmk7GfmlZV4=";
+      hash = "sha256-CZH2JwR+MrkTlLdcVYuFRB3McdrM0A+1YaSjNpjYwak=";
     };
 
     nativeBuildInputs = [ pkg-config autoconf unzip ensureNewerSourcesForZipFilesHook ];
diff --git a/pkgs/development/compilers/openjdk/22.nix b/pkgs/development/compilers/openjdk/22.nix
index bef62b6755a26..97d1a3b3b44df 100644
--- a/pkgs/development/compilers/openjdk/22.nix
+++ b/pkgs/development/compilers/openjdk/22.nix
@@ -3,7 +3,6 @@
 , fetchurl
 , fetchpatch
 , fetchFromGitHub
-, bash
 , pkg-config
 , autoconf
 , cpio
@@ -44,217 +43,234 @@
 , gnome_vfs
 , glib
 , GConf
+, writeShellScript
 }:
 
 let
-  version = {
-    feature = "22";
-    interim = "";
-    build = "36";
-  };
+
+  # Java version format:
+  # $FEATURE.$INTERIM.$UPDATE.$PATCH
+  # See
+  # https://openjdk.org/jeps/223
+  # https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/lang/Runtime.Version.html
+  featureVersion = "22";
+  info = builtins.getAttr featureVersion (lib.importJSON ./info.json);
+  version = info.version;
 
   # when building a headless jdk, also bootstrap it with a headless jdk
   openjdk-bootstrap = openjdk22-bootstrap.override { gtkSupport = !headless; };
+in
 
-  openjdk = stdenv.mkDerivation {
-    pname = "openjdk" + lib.optionalString headless "-headless";
-    version = "${version.feature}${version.interim}+${version.build}";
-
-    src = fetchFromGitHub {
-      owner = "openjdk";
-      repo = "jdk${version.feature}u";
-      rev = "jdk-${version.feature}${version.interim}+${version.build}";
-      hash = "sha256-itjvIedPwJl/l3a2gIVpNMs1zkbrjioVqbCj1Z1nCJE=";
-    };
-
-    nativeBuildInputs = [ pkg-config autoconf unzip ensureNewerSourcesForZipFilesHook ];
-    buildInputs = [
-      cpio
-      file
-      which
-      zip
-      perl
-      zlib
-      cups
-      freetype
-      alsa-lib
-      libjpeg
-      giflib
-      libpng
-      zlib
-      lcms2
-      libX11
-      libICE
-      libXrender
-      libXext
-      libXtst
-      libXt
-      libXtst
-      libXi
-      libXinerama
-      libXcursor
-      libXrandr
-      fontconfig
-      openjdk-bootstrap
-    ] ++ lib.optionals (!headless && enableGnome2) [
-      gtk3
-      gnome_vfs
-      GConf
-      glib
-    ];
-
-    patches = [
-      ./fix-java-home-jdk21.patch
-      ./read-truststore-from-env-jdk10.patch
-      ./currency-date-range-jdk10.patch
-      ./increase-javadoc-heap-jdk13.patch
-      ./ignore-LegalNoticeFilePlugin-jdk18.patch
-
-      # -Wformat etc. are stricter in newer gccs, per
-      # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79677
-      # so grab the work-around from
-      # https://src.fedoraproject.org/rpms/java-openjdk/pull-request/24
-      (fetchurl {
-        url = "https://src.fedoraproject.org/rpms/java-openjdk/raw/06c001c7d87f2e9fe4fedeef2d993bcd5d7afa2a/f/rh1673833-remove_removal_of_wformat_during_test_compilation.patch";
-        sha256 = "082lmc30x64x583vqq00c8y0wqih3y4r0mp1c4bqq36l22qv6b6r";
-      })
-
-      # Fix build for gnumake-4.4.1:
-      #   https://github.com/openjdk/jdk/pull/12992
-      (fetchpatch {
-        name = "gnumake-4.4.1";
-        url = "https://github.com/openjdk/jdk/commit/9341d135b855cc208d48e47d30cd90aafa354c36.patch";
-        hash = "sha256-Qcm3ZmGCOYLZcskNjj7DYR85R4v07vYvvavrVOYL8vg=";
-      })
-    ] ++ lib.optionals (!headless && enableGnome2) [
-      ./swing-use-gtk-jdk13.patch
-    ];
-
-    postPatch = ''
-      chmod +x configure
-      patchShebangs --build configure
-    '';
-
-    # JDK's build system attempts to specifically detect
-    # and special-case WSL, and we don't want it to do that,
-    # so pass the correct platform names explicitly
-    configurePlatforms = [ "build" "host" ];
-
-
-    # https://openjdk.org/groups/build/doc/building.html
-    configureFlags = [
-      "--with-boot-jdk=${openjdk-bootstrap.home}"
-      "--with-version-build=${version.build}"
-      "--with-version-opt=nixos"
-      "--with-version-pre="
-      "--enable-unlimited-crypto"
-      "--with-native-debug-symbols=internal"
-      "--with-libjpeg=system"
-      "--with-giflib=system"
-      "--with-libpng=system"
-      "--with-zlib=system"
-      "--with-lcms=system"
-      "--with-stdc++lib=dynamic"
-    ]
-    ++ lib.optional headless "--enable-headless-only"
-    ++ lib.optional (!headless && enableJavaFX) "--with-import-modules=${openjfx}";
-
-    separateDebugInfo = true;
-
-    env.NIX_CFLAGS_COMPILE = "-Wno-error";
-
-    NIX_LDFLAGS = toString (lib.optionals (!headless) [
-      "-lfontconfig"
-      "-lcups"
-      "-lXinerama"
-      "-lXrandr"
-      "-lmagic"
-    ] ++ lib.optionals (!headless && enableGnome2) [
-      "-lgtk-3"
-      "-lgio-2.0"
-      "-lgnomevfs-2"
-      "-lgconf-2"
-    ]);
-
-    # -j flag is explicitly rejected by the build system:
-    #     Error: 'make -jN' is not supported, use 'make JOBS=N'
-    # Note: it does not make build sequential. Build system
-    # still runs in parallel.
-    enableParallelBuilding = false;
-
-    buildFlags = [ "images" ];
-
-    installPhase = ''
-      mkdir -p $out/lib
-
-      mv build/*/images/jdk $out/lib/openjdk
-
-      # Remove some broken manpages.
-      rm -rf $out/lib/openjdk/man/ja*
-
-      # Mirror some stuff in top-level.
-      mkdir -p $out/share
-      ln -s $out/lib/openjdk/include $out/include
-      ln -s $out/lib/openjdk/man $out/share/man
-
-      # IDEs use the provided src.zip to navigate the Java codebase (https://github.com/NixOS/nixpkgs/pull/95081)
-      ln -s $out/lib/openjdk/lib/src.zip $out/lib/src.zip
-
-      # jni.h expects jni_md.h to be in the header search path.
-      ln -s $out/include/linux/*_md.h $out/include/
-
-      # Remove crap from the installation.
-      rm -rf $out/lib/openjdk/demo
-      ${lib.optionalString headless ''
-        rm $out/lib/openjdk/lib/{libjsound,libfontmanager}.so
-      ''}
-
-      ln -s $out/lib/openjdk/bin $out/bin
-    '';
-
-    preFixup = ''
-      # Propagate the setJavaClassPath setup hook so that any package
-      # that depends on the JDK has $CLASSPATH set up properly.
-      mkdir -p $out/nix-support
-      #TODO or printWords?  cf https://github.com/NixOS/nixpkgs/pull/27427#issuecomment-317293040
-      echo -n "${setJavaClassPath}" > $out/nix-support/propagated-build-inputs
-
-      # Set JAVA_HOME automatically.
-      mkdir -p $out/nix-support
-      cat <<EOF > $out/nix-support/setup-hook
-      if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out/lib/openjdk; fi
-      EOF
-    '';
-
-    postFixup = ''
-      # Build the set of output library directories to rpath against
-      LIBDIRS=""
-      for output in $(getAllOutputNames); do
-        if [ "$output" = debug ]; then continue; fi
-        LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort -u | tr '\n' ':'):$LIBDIRS"
-      done
-      # Add the local library paths to remove dependencies on the bootstrap
-      for output in $(getAllOutputNames); do
-        if [ "$output" = debug ]; then continue; fi
-        OUTPUTDIR=$(eval echo \$$output)
-        BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*)
-        echo "$BINLIBS" | while read i; do
-          patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true
-          patchelf --shrink-rpath "$i" || true
-        done
+stdenv.mkDerivation (finalAttrs: {
+  pname = "openjdk" + lib.optionalString headless "-headless";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "openjdk";
+    repo = info.repo;
+    rev = "jdk-${version}";
+    hash = info.hash;
+  };
+
+  nativeBuildInputs = [ pkg-config autoconf unzip ensureNewerSourcesForZipFilesHook ];
+  buildInputs = [
+    cpio
+    file
+    which
+    zip
+    perl
+    zlib
+    cups
+    freetype
+    alsa-lib
+    libjpeg
+    giflib
+    libpng
+    zlib
+    lcms2
+    libX11
+    libICE
+    libXrender
+    libXext
+    libXtst
+    libXt
+    libXtst
+    libXi
+    libXinerama
+    libXcursor
+    libXrandr
+    fontconfig
+    openjdk-bootstrap
+  ] ++ lib.optionals (!headless && enableGnome2) [
+    gtk3
+    gnome_vfs
+    GConf
+    glib
+  ];
+
+  patches = [
+    ./fix-java-home-jdk21.patch
+    ./read-truststore-from-env-jdk10.patch
+    ./currency-date-range-jdk10.patch
+    ./increase-javadoc-heap-jdk13.patch
+    ./ignore-LegalNoticeFilePlugin-jdk18.patch
+
+    # -Wformat etc. are stricter in newer gccs, per
+    # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79677
+    # so grab the work-around from
+    # https://src.fedoraproject.org/rpms/java-openjdk/pull-request/24
+    (fetchurl {
+      url = "https://src.fedoraproject.org/rpms/java-openjdk/raw/06c001c7d87f2e9fe4fedeef2d993bcd5d7afa2a/f/rh1673833-remove_removal_of_wformat_during_test_compilation.patch";
+      sha256 = "082lmc30x64x583vqq00c8y0wqih3y4r0mp1c4bqq36l22qv6b6r";
+    })
+
+    # Fix build for gnumake-4.4.1:
+    #   https://github.com/openjdk/jdk/pull/12992
+    (fetchpatch {
+      name = "gnumake-4.4.1";
+      url = "https://github.com/openjdk/jdk/commit/9341d135b855cc208d48e47d30cd90aafa354c36.patch";
+      hash = "sha256-Qcm3ZmGCOYLZcskNjj7DYR85R4v07vYvvavrVOYL8vg=";
+    })
+  ] ++ lib.optionals (!headless && enableGnome2) [
+    ./swing-use-gtk-jdk13.patch
+  ];
+
+  postPatch = ''
+    chmod +x configure
+    patchShebangs --build configure
+  '';
+
+  # JDK's build system attempts to specifically detect
+  # and special-case WSL, and we don't want it to do that,
+  # so pass the correct platform names explicitly
+  configurePlatforms = [ "build" "host" ];
+
+
+  # https://openjdk.org/groups/build/doc/building.html
+  configureFlags = [
+    "--with-boot-jdk=${openjdk-bootstrap.home}"
+    "--with-version-string=${version}"
+    "--with-vendor-version-string=(nix)"
+    "--enable-unlimited-crypto"
+    "--with-native-debug-symbols=internal"
+    "--with-libjpeg=system"
+    "--with-giflib=system"
+    "--with-libpng=system"
+    "--with-zlib=system"
+    "--with-lcms=system"
+    "--with-stdc++lib=dynamic"
+  ]
+  ++ lib.optional headless "--enable-headless-only"
+  ++ lib.optional (!headless && enableJavaFX) "--with-import-modules=${openjfx}";
+
+  separateDebugInfo = true;
+
+  env.NIX_CFLAGS_COMPILE = "-Wno-error";
+
+  NIX_LDFLAGS = toString (lib.optionals (!headless) [
+    "-lfontconfig"
+    "-lcups"
+    "-lXinerama"
+    "-lXrandr"
+    "-lmagic"
+  ] ++ lib.optionals (!headless && enableGnome2) [
+    "-lgtk-3"
+    "-lgio-2.0"
+    "-lgnomevfs-2"
+    "-lgconf-2"
+  ]);
+
+  # -j flag is explicitly rejected by the build system:
+  #     Error: 'make -jN' is not supported, use 'make JOBS=N'
+  # Note: it does not make build sequential. Build system
+  # still runs in parallel.
+  enableParallelBuilding = false;
+
+  buildFlags = [ "images" ];
+
+  installPhase = ''
+    mkdir -p $out/lib
+
+    mv build/*/images/jdk $out/lib/openjdk
+
+    # Remove some broken manpages.
+    rm -rf $out/lib/openjdk/man/ja*
+
+    # Mirror some stuff in top-level.
+    mkdir -p $out/share
+    ln -s $out/lib/openjdk/include $out/include
+    ln -s $out/lib/openjdk/man $out/share/man
+
+    # IDEs use the provided src.zip to navigate the Java codebase (https://github.com/NixOS/nixpkgs/pull/95081)
+    ln -s $out/lib/openjdk/lib/src.zip $out/lib/src.zip
+
+    # jni.h expects jni_md.h to be in the header search path.
+    ln -s $out/include/linux/*_md.h $out/include/
+
+    # Remove crap from the installation.
+    rm -rf $out/lib/openjdk/demo
+    ${lib.optionalString headless ''
+      rm $out/lib/openjdk/lib/{libjsound,libfontmanager}.so
+    ''}
+
+    ln -s $out/lib/openjdk/bin $out/bin
+  '';
+
+  preFixup = ''
+    # Propagate the setJavaClassPath setup hook so that any package
+    # that depends on the JDK has $CLASSPATH set up properly.
+    mkdir -p $out/nix-support
+    #TODO or printWords?  cf https://github.com/NixOS/nixpkgs/pull/27427#issuecomment-317293040
+    echo -n "${setJavaClassPath}" > $out/nix-support/propagated-build-inputs
+
+    # Set JAVA_HOME automatically.
+    mkdir -p $out/nix-support
+    cat <<EOF > $out/nix-support/setup-hook
+    if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out/lib/openjdk; fi
+    EOF
+  '';
+
+  postFixup = ''
+    # Build the set of output library directories to rpath against
+    LIBDIRS=""
+    for output in $(getAllOutputNames); do
+      if [ "$output" = debug ]; then continue; fi
+      LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort -u | tr '\n' ':'):$LIBDIRS"
+    done
+    # Add the local library paths to remove dependencies on the bootstrap
+    for output in $(getAllOutputNames); do
+      if [ "$output" = debug ]; then continue; fi
+      OUTPUTDIR=$(eval echo \$$output)
+      BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*)
+      echo "$BINLIBS" | while read i; do
+        patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true
+        patchelf --shrink-rpath "$i" || true
       done
-    '';
+    done
+  '';
+
+  disallowedReferences = [ openjdk-bootstrap ];
 
-    disallowedReferences = [ openjdk-bootstrap ];
+  pos = __curPos;
+  meta = import ./meta.nix lib featureVersion;
 
-    pos = builtins.unsafeGetAttrPos "feature" version;
-    meta = import ./meta.nix lib version.feature;
+  passthru = {
+    updateScript =
+      let
+        java-json = fetchurl {
+          url = "https://search.maven.org/remotecontent?filepath=org/json/json/20240303/json-20240303.jar";
+          hash = "sha256-PPbNaJLjLitMHDng9S9SSKL1s3ZG/fu3mma0a2GEFO0=";
+        };
+      in
+      writeShellScript "update-java" ''
+        ${finalAttrs.finalPackage}/bin/java \
+          -cp ${java-json} \
+          ${./JavaUpdater.java} \
+          22 pkgs/development/compilers/openjdk/info.json
+      '';
 
-    passthru = {
-      architecture = "";
-      home = "${openjdk}/lib/openjdk";
-      inherit gtk3;
-    };
+    home = "${finalAttrs.finalPackage}/lib/openjdk";
+
+    inherit gtk3;
   };
-in
-openjdk
+})
diff --git a/pkgs/development/compilers/openjdk/8.nix b/pkgs/development/compilers/openjdk/8.nix
index aebfceeccb784..70561d83f3088 100644
--- a/pkgs/development/compilers/openjdk/8.nix
+++ b/pkgs/development/compilers/openjdk/8.nix
@@ -20,7 +20,7 @@ let
     powerpc64le-linux = "ppc64le";
   }.${stdenv.system} or (throw "Unsupported platform ${stdenv.system}");
 
-  update = "362";
+  update = "412";
   build = "ga";
 
   # when building a headless jdk, also bootstrap it with a headless jdk
@@ -34,7 +34,7 @@ let
       owner = "openjdk";
       repo = "jdk8u";
       rev = "jdk${version}";
-      sha256 = "sha256-C5dQwfIIpIrLeO3JWERyFCQHUSgG8gARuc3qXAeLkJ4=";
+      sha256 = "sha256-o+H5n5p6JG1giJj9OADgMbQPaoKMzLMFquKH536SHhM=";
     };
     outputs = [ "out" "jre" ];
 
@@ -211,7 +211,7 @@ let
     meta = with lib; {
       homepage = "http://openjdk.java.net/";
       license = licenses.gpl2;
-      description = "The open-source Java Development Kit";
+      description = "Open-source Java Development Kit";
       maintainers = with maintainers; [ edwtjo ];
       platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" ];
       mainProgram = "java";
diff --git a/pkgs/development/compilers/openjdk/JavaUpdater.java b/pkgs/development/compilers/openjdk/JavaUpdater.java
new file mode 100644
index 0000000000000..32dddf2fabc7c
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/JavaUpdater.java
@@ -0,0 +1,181 @@
+import org.json.JSONArray;
+import org.json.JSONObject;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.net.URI;
+import java.net.http.*;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.*;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import java.util.stream.StreamSupport;
+
+public class JavaUpdater {
+
+  record GitHubResult(Optional<String> latestVersion, Optional<String> next) {
+  }
+
+  record JsonInfo(String repo, String version, String hash) {
+    public JsonInfo(JSONObject json) {
+      this(json.getString("repo"), json.getString("version"), json.getString("hash"));
+    }
+
+    public String toJsonString(String featureVersion) {
+      return """
+        \s "%s": {
+        \s   "version": "%s",
+        \s   "repo":    "%s",
+        \s   "hash":    "%s"
+        \s }\
+        """.formatted(featureVersion, version, repo, hash);
+    }
+  }
+
+  // Parses the GitHub Link header
+  public static Optional<String> getNextLink(HttpHeaders headers) {
+    var linkHeader = headers.map().get("Link");
+    if (linkHeader == null || linkHeader.isEmpty()) return null;
+
+    var links = linkHeader.getFirst();
+    var linksRegex = Pattern.compile("<(.+)>;\\s*rel=\"next\"");
+    return Pattern.compile(",")
+      .splitAsStream(links)
+      .map(x -> linksRegex.matcher(x).results()
+        .map(g -> g.group(1))
+        .findFirst()
+      )
+      .filter(Optional::isPresent)
+      .map(Optional::orElseThrow)
+      .findFirst();
+  }
+
+  // HTTP request helper, sets GITHUB_TOKEN if present
+  private static HttpRequest NewGithubRequest(String url) {
+    var token = System.getenv().get("GITHUB_TOKEN");
+    var builder = HttpRequest.newBuilder()
+      .uri(URI.create(url));
+    if (token != null)
+      builder.setHeader("Authorization", "Bearer " + token);
+    return builder.build();
+  }
+
+  private static GitHubResult getLatestTag(String url) {
+    var request = NewGithubRequest(url);
+
+    var response =
+      HttpClient.newHttpClient().sendAsync(request, HttpResponse.BodyHandlers.ofString())
+        .join();
+
+    var json = new JSONArray(response.body());
+
+    Optional<String> version = StreamSupport.stream(json.spliterator(), false)
+      .map(JSONObject.class::cast)
+      .map(x -> x.getString("name").replaceFirst("jdk-", ""))
+      .filter(x -> x.contains("-ga"))
+      .max(Comparator.comparing(Runtime.Version::parse));
+
+    return new GitHubResult(version, getNextLink(response.headers()));
+  }
+
+  public String findNewerVersion() {
+    var url = Optional.of("https://api.github.com/repos/openjdk/" + getRepo() + "/tags?per_page=100");
+    String version = getCurrentVersion();
+    do {
+      GitHubResult response = getLatestTag(url.orElseThrow());
+      if (response.latestVersion.isPresent() && response.latestVersion.orElseThrow().equals(version)) {
+        return null;
+      }
+
+      String latestVersion = Stream.of(version, response.latestVersion.orElse(version))
+        .max(Comparator.comparing(Runtime.Version::parse)).orElseThrow();
+
+      if (latestVersion != version)
+        return latestVersion;
+
+      url = response.next;
+    } while (url.isPresent());
+    return null;
+  }
+
+
+  private static String prettyPrint(JSONObject json) {
+
+    Iterable<String> iterable = () -> json.keys();
+
+    return StreamSupport
+      .stream(iterable.spliterator(), false)
+      .sorted(Comparator.reverseOrder())
+      .map(majorVersion -> (new JsonInfo(json.getJSONObject(majorVersion))).toJsonString(majorVersion))
+      .collect(
+        Collectors.joining(",\n", "{\n", "\n}")
+      );
+  }
+
+  public void updateJsonInfo(String newVersion) {
+    try {
+      JSONObject json = getJsonInfo();
+      var info = json.getJSONObject(featureNumber);
+      info.put("version", newVersion);
+      info.put("hash", nixHash(newVersion));
+
+      try (PrintWriter out = new PrintWriter(infoJsonPath)) {
+        out.println(prettyPrint(json));
+      }
+
+    } catch (Exception e) {
+      throw new RuntimeException(e);
+    }
+  }
+
+  private String nixHash(String version) {
+    try {
+      var process = new ProcessBuilder("nix", "flake", "prefetch",
+        "--extra-experimental-features", "'nix-command flakes'",
+        "--json", "github:openjdk/" + getRepo() + "/jdk-" + version).start();
+
+      var json = new JSONObject(new String(process.getInputStream().readAllBytes()));
+      process.waitFor();
+      return json.getString("hash");
+    } catch (Exception e) {
+      throw new RuntimeException(e);
+    }
+  }
+
+  private final String featureNumber;
+  private final String infoJsonPath;
+  private final JSONObject jsonInfo;
+
+  public String getCurrentVersion() {
+    return this.jsonInfo.getJSONObject(this.featureNumber).getString("version");
+  }
+
+  public String getRepo() {
+    return this.jsonInfo.getJSONObject(this.featureNumber).getString("repo");
+  }
+
+  public JSONObject getJsonInfo() {
+    try {
+      String infoStr = Files.readString(Path.of(this.infoJsonPath));
+      return new JSONObject(infoStr);
+    } catch (IOException e) {
+      throw new RuntimeException(e);
+    }
+  }
+
+  public JavaUpdater(String featureNumber, String infoJsonPath) {
+    this.featureNumber = featureNumber;
+    this.infoJsonPath = infoJsonPath;
+    this.jsonInfo = getJsonInfo();
+  }
+
+  public static void main(String[] args) {
+    var updater = new JavaUpdater(args[0], args[1]);
+    String newerVersion = updater.findNewerVersion();
+    if (newerVersion != null) {
+      updater.updateJsonInfo(newerVersion);
+    }
+  }
+}
diff --git a/pkgs/development/compilers/openjdk/info.json b/pkgs/development/compilers/openjdk/info.json
new file mode 100644
index 0000000000000..c8f88d7280e4e
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/info.json
@@ -0,0 +1,12 @@
+{
+  "22": {
+    "version": "22-ga",
+    "repo":    "jdk22u",
+    "hash":    "sha256-itjvIedPwJl/l3a2gIVpNMs1zkbrjioVqbCj1Z1nCJE="
+  },
+  "21": {
+    "version": "21.0.3-ga",
+    "repo":    "jdk21u",
+    "hash":    "sha256-zRN16lrc5gtDlTVIQJRRx103w/VbRkatCLeEc9AXWPE="
+  }
+}
diff --git a/pkgs/development/compilers/openjdk/meta.nix b/pkgs/development/compilers/openjdk/meta.nix
index 74383ddef783d..04ed684eefab5 100644
--- a/pkgs/development/compilers/openjdk/meta.nix
+++ b/pkgs/development/compilers/openjdk/meta.nix
@@ -1,11 +1,11 @@
 lib: version: with lib; {
   homepage = "https://openjdk.java.net/";
   license = licenses.gpl2Only;
-  description = "The open-source Java Development Kit";
-  maintainers = with maintainers; [ edwtjo ];
+  description = "Open-source Java Development Kit";
+  maintainers = with maintainers; [ edwtjo infinidoge ];
   platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" "powerpc64le-linux" ];
   mainProgram = "java";
-  knownVulnerabilities = optionals (builtins.elem (versions.major version) [ "12" "13" "14" "15" "16" "18" ]) [
+  knownVulnerabilities = optionals (builtins.elem (versions.major version) [ "12" "13" "14" "15" "16" "18" "19" "20" ]) [
     "This OpenJDK version has reached its end of life."
   ];
 }
diff --git a/pkgs/development/compilers/openjdk/openjfx/11.nix b/pkgs/development/compilers/openjdk/openjfx/11.nix
index 424c41ce3c783..22b844bb1d67c 100644
--- a/pkgs/development/compilers/openjdk/openjfx/11.nix
+++ b/pkgs/development/compilers/openjdk/openjfx/11.nix
@@ -7,7 +7,7 @@
 
 let
   major = "11";
-  update = ".0.18";
+  update = ".0.20";
   build = "1";
   repover = "${major}${update}+${build}";
   gradle_ = (gradle_7.override {
@@ -31,7 +31,7 @@ let
       owner = "openjdk";
       repo = "jfx${major}u";
       rev = repover;
-      sha256 = "sha256-46DjIzcBHkmp5vnhYnLu78CG72bIBRM4A6mgk2OLOko=";
+      sha256 = "sha256-BbBP2DiPZTSn1SBYMCgyiNdF9GD+NqR6YjeVNOQHHn4=";
     };
 
     buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless ];
@@ -129,7 +129,7 @@ in makePackage {
   meta = with lib; {
     homepage = "http://openjdk.java.net/projects/openjfx/";
     license = licenses.gpl2;
-    description = "The next-generation Java client toolkit";
+    description = "Next-generation Java client toolkit";
     maintainers = with maintainers; [ abbradar ];
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/development/compilers/openjdk/openjfx/15.nix b/pkgs/development/compilers/openjdk/openjfx/15.nix
index 1fb48f460d2fd..77c8e4678d6c9 100644
--- a/pkgs/development/compilers/openjdk/openjfx/15.nix
+++ b/pkgs/development/compilers/openjdk/openjfx/15.nix
@@ -119,7 +119,7 @@ in makePackage {
   meta = with lib; {
     homepage = "http://openjdk.java.net/projects/openjfx/";
     license = licenses.gpl2;
-    description = "The next-generation Java client toolkit";
+    description = "Next-generation Java client toolkit";
     maintainers = with maintainers; [ abbradar ];
     knownVulnerabilities = [
       "This OpenJFX version has reached its end of life."
diff --git a/pkgs/development/compilers/openjdk/openjfx/17.nix b/pkgs/development/compilers/openjdk/openjfx/17.nix
index c5d6c6aaa597e..00fa6af725e5b 100644
--- a/pkgs/development/compilers/openjdk/openjfx/17.nix
+++ b/pkgs/development/compilers/openjdk/openjfx/17.nix
@@ -7,8 +7,8 @@
 
 let
   major = "17";
-  update = ".0.6";
-  build = "+3";
+  update = ".0.11";
+  build = "-ga";
   repover = "${major}${update}${build}";
   gradle_ = (gradle_7.override {
     java = openjdk17_headless;
@@ -31,7 +31,7 @@ let
       owner = "openjdk";
       repo = "jfx${major}u";
       rev = repover;
-      sha256 = "sha256-9VfXk2EfMebMyVKPohPRP2QXRFf8XemUtfY0JtBCHyw=";
+      sha256 = "sha256-WV8NHlYlt7buGbirLSorLnS2TnyBD17zUquFfwSL3xE=";
     };
 
     buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless ];
@@ -121,7 +121,7 @@ in makePackage {
   meta = with lib; {
     homepage = "http://openjdk.java.net/projects/openjfx/";
     license = licenses.gpl2;
-    description = "The next-generation Java client toolkit";
+    description = "Next-generation Java client toolkit";
     maintainers = with maintainers; [ abbradar ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/compilers/openjdk/openjfx/19.nix b/pkgs/development/compilers/openjdk/openjfx/19.nix
index 6f173db8327c1..38720efaba545 100644
--- a/pkgs/development/compilers/openjdk/openjfx/19.nix
+++ b/pkgs/development/compilers/openjdk/openjfx/19.nix
@@ -138,8 +138,11 @@ in makePackage {
   meta = with lib; {
     homepage = "https://openjdk.org/projects/openjfx/";
     license = licenses.gpl2Classpath;
-    description = "The next-generation Java client toolkit";
+    description = "Next-generation Java client toolkit";
     maintainers = with maintainers; [ abbradar ];
     platforms = platforms.unix;
+    knownVulnerabilities = [
+      "This OpenJFX version has reached its end of life."
+    ];
   };
 }
diff --git a/pkgs/development/compilers/openjdk/openjfx/20.nix b/pkgs/development/compilers/openjdk/openjfx/20.nix
index 794590dc7e606..0aa7b262e834e 100644
--- a/pkgs/development/compilers/openjdk/openjfx/20.nix
+++ b/pkgs/development/compilers/openjdk/openjfx/20.nix
@@ -1,5 +1,5 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, writeText, openjdk17_headless
-, openjdk19_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst
+{ stdenv, lib, fetchFromGitHub, writeText, openjdk17_headless
+, openjdk20_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst
 , libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby, fetchurl, runCommand
 , withMedia ? true
 , withWebKit ? false
@@ -7,8 +7,8 @@
 
 let
   major = "20";
-  update = "";
-  build = "+19";
+  update = ".0.2";
+  build = "-ga";
   repover = "${major}${update}${build}";
   gradle_ = (gradle_7.override {
     # note: gradle does not yet support running on 19
@@ -30,9 +30,9 @@ let
 
     src = fetchFromGitHub {
       owner = "openjdk";
-      repo = "jfx";
+      repo = "jfx20u";
       rev = repover;
-      hash = "sha256-QPPJyl6+XU+m5xqYOFtQKJNNrovqy7ngNE/e7kiEJVU=";
+      hash = "sha256-3Hhz4i8fPU2yowb4roylCXzuO9HkW7ZWF9TMA3HIH9o=";
     };
 
     buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ];
@@ -49,7 +49,7 @@ let
 
     config = writeText "gradle.properties" (''
       CONF = Release
-      JDK_HOME = ${openjdk19_headless.home}
+      JDK_HOME = ${openjdk20_headless.home}
     '' + args.gradleProperties or "");
 
     buildPhase = ''
@@ -111,22 +111,25 @@ in makePackage {
 
   postFixup = ''
     # Remove references to bootstrap.
-    export openjdkOutPath='${openjdk19_headless.outPath}'
+    export openjdkOutPath='${openjdk20_headless.outPath}'
     find "$out" -name \*.so | while read lib; do
       new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')"
       patchelf --set-rpath "$new_refs" "$lib"
     done
   '';
 
-  disallowedReferences = [ openjdk17_headless openjdk19_headless ];
+  disallowedReferences = [ openjdk17_headless openjdk20_headless ];
 
   passthru.deps = deps;
 
   meta = with lib; {
     homepage = "https://openjdk.org/projects/openjfx/";
     license = licenses.gpl2Classpath;
-    description = "The next-generation Java client toolkit";
+    description = "Next-generation Java client toolkit";
     maintainers = with maintainers; [ abbradar ];
     platforms = platforms.unix;
+    knownVulnerabilities = [
+      "This OpenJFX version has reached its end of life."
+    ];
   };
 }
diff --git a/pkgs/development/compilers/openjdk/openjfx/21.nix b/pkgs/development/compilers/openjdk/openjfx/21.nix
index f49dbe3b0e985..d4092a99f363c 100644
--- a/pkgs/development/compilers/openjdk/openjfx/21.nix
+++ b/pkgs/development/compilers/openjdk/openjfx/21.nix
@@ -1,5 +1,5 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, writeText, openjdk17_headless
-, openjdk19_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst
+{ stdenv, lib, fetchFromGitHub, writeText, openjdk17_headless
+, openjdk21_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst
 , libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby, fetchurl, runCommand
 , withMedia ? true
 , withWebKit ? false
@@ -49,7 +49,7 @@ let
 
     config = writeText "gradle.properties" (''
       CONF = Release
-      JDK_HOME = ${openjdk19_headless.home}
+      JDK_HOME = ${openjdk21_headless.home}
     '' + args.gradleProperties or "");
 
     buildPhase = ''
@@ -111,21 +111,21 @@ in makePackage {
 
   postFixup = ''
     # Remove references to bootstrap.
-    export openjdkOutPath='${openjdk19_headless.outPath}'
+    export openjdkOutPath='${openjdk21_headless.outPath}'
     find "$out" -name \*.so | while read lib; do
       new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')"
       patchelf --set-rpath "$new_refs" "$lib"
     done
   '';
 
-  disallowedReferences = [ openjdk17_headless openjdk19_headless ];
+  disallowedReferences = [ openjdk17_headless openjdk21_headless ];
 
   passthru.deps = deps;
 
   meta = with lib; {
     homepage = "https://openjdk.org/projects/openjfx/";
     license = licenses.gpl2Classpath;
-    description = "The next-generation Java client toolkit";
+    description = "Next-generation Java client toolkit";
     maintainers = with maintainers; [ abbradar ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/compilers/openjdk/openjfx/22.nix b/pkgs/development/compilers/openjdk/openjfx/22.nix
index d585dbdf01413..c34ff04668954 100644
--- a/pkgs/development/compilers/openjdk/openjfx/22.nix
+++ b/pkgs/development/compilers/openjdk/openjfx/22.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , fetchurl
 , runCommand
 , writeText
@@ -26,8 +25,8 @@
 
 let
   major = "22";
-  update = "";
-  build = "+30";
+  update = ".0.1";
+  build = "-ga";
   repover = "${major}${update}${build}";
 
   icuVersionWithSep = s: "73${s}1";
@@ -45,9 +44,9 @@ let
 
     src = fetchFromGitHub {
       owner = "openjdk";
-      repo = "jfx";
+      repo = "jfx22u";
       rev = repover;
-      hash = "sha256-sZF7ZPC0kgTTxWgtkxmGtOlfroGPGVZcMw0/wSTJUxQ=";
+      hash = "sha256-VoEufSO+LciUCvoAM86MG1iMjCA3FSb60Ik4OP2Rk/Q=";
     };
 
     buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ];
@@ -131,7 +130,7 @@ makePackage {
   meta = with lib; {
     homepage = "https://openjdk.org/projects/openjfx/";
     license = licenses.gpl2Classpath;
-    description = "The next-generation Java client toolkit";
+    description = "Next-generation Java client toolkit";
     maintainers = with maintainers; [ abbradar ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/compilers/opensmalltalk-vm/default.nix b/pkgs/development/compilers/opensmalltalk-vm/default.nix
index a049e3e8abecf..ef238ebaf306f 100644
--- a/pkgs/development/compilers/opensmalltalk-vm/default.nix
+++ b/pkgs/development/compilers/opensmalltalk-vm/default.nix
@@ -103,7 +103,7 @@ let
       '';
 
       meta = {
-        description = "The cross-platform virtual machine for Squeak, Pharo, Cuis, and Newspeak.";
+        description = "Cross-platform virtual machine for Squeak, Pharo, Cuis, and Newspeak";
         mainProgram = scriptName;
         homepage = "https://opensmalltalk.org/";
         license = with lib.licenses; [ mit ];
diff --git a/pkgs/development/compilers/ophis/default.nix b/pkgs/development/compilers/ophis/default.nix
index 0eebdce820ee1..e1945c9b28023 100644
--- a/pkgs/development/compilers/ophis/default.nix
+++ b/pkgs/development/compilers/ophis/default.nix
@@ -15,7 +15,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "http://michaelcmartin.github.io/Ophis/";
-    description = "A cross-assembler for the 6502 series of microprocessors";
+    description = "Cross-assembler for the 6502 series of microprocessors";
     mainProgram = "ophis";
     longDescription = ''
       Ophis is an assembler for the 6502 microprocessor - the famous chip used
diff --git a/pkgs/development/compilers/orc/default.nix b/pkgs/development/compilers/orc/default.nix
index 9841fd94f2d01..fbd808184156d 100644
--- a/pkgs/development/compilers/orc/default.nix
+++ b/pkgs/development/compilers/orc/default.nix
@@ -53,7 +53,7 @@ in stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "The Oil Runtime Compiler";
+    description = "Oil Runtime Compiler";
     homepage = "https://gstreamer.freedesktop.org/projects/orc.html";
     changelog = "https://cgit.freedesktop.org/gstreamer/orc/plain/RELEASE?h=${version}";
     # The source code implementing the Marsenne Twister algorithm is licensed
diff --git a/pkgs/development/compilers/osl/default.nix b/pkgs/development/compilers/osl/default.nix
index d05d01bc6c078..b7ad7537c7e12 100644
--- a/pkgs/development/compilers/osl/default.nix
+++ b/pkgs/development/compilers/osl/default.nix
@@ -24,13 +24,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "openshadinglanguage";
-  version = "1.13.9.0";
+  version = "1.13.10.0";
 
   src = fetchFromGitHub {
     owner = "AcademySoftwareFoundation";
     repo = "OpenShadingLanguage";
     rev = "v${version}";
-    hash = "sha256-3HSmiIvGk+C5rnHzCXnYlFVeOWYa5M0WZRLTSb8Zsh8=";
+    hash = "sha256-tjfg9cGbfL0D+KcxtWgQF6gY9sCjxEjyGNxFZyPhJ/U=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/development/compilers/owl-lisp/default.nix b/pkgs/development/compilers/owl-lisp/default.nix
index 7631ca8b083c2..e7bef0e815067 100644
--- a/pkgs/development/compilers/owl-lisp/default.nix
+++ b/pkgs/development/compilers/owl-lisp/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A functional Scheme for world domination";
+    description = "Functional Scheme for world domination";
     homepage    = "https://gitlab.com/owl-lisp/owl";
     license     = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/pkgs/development/compilers/paco/default.nix b/pkgs/development/compilers/paco/default.nix
index 195a67da023ab..8fa27994ec3d8 100644
--- a/pkgs/development/compilers/paco/default.nix
+++ b/pkgs/development/compilers/paco/default.nix
@@ -26,7 +26,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "A simple compiled programming language";
+    description = "Simple compiled programming language";
     mainProgram = "paco";
     homepage = "https://github.com/pacolang/paco";
     license = licenses.mit;
diff --git a/pkgs/development/compilers/pakcs/default.nix b/pkgs/development/compilers/pakcs/default.nix
index 42b2e208c1d49..768d125cfff47 100644
--- a/pkgs/development/compilers/pakcs/default.nix
+++ b/pkgs/development/compilers/pakcs/default.nix
@@ -74,7 +74,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "http://www.informatik.uni-kiel.de/~pakcs/";
-    description = "An implementation of the multi-paradigm declarative language Curry";
+    description = "Implementation of the multi-paradigm declarative language Curry";
     license = licenses.bsd3;
 
     longDescription = ''
diff --git a/pkgs/development/compilers/passerine/default.nix b/pkgs/development/compilers/passerine/default.nix
index 8583566573264..990d6ff078b2d 100644
--- a/pkgs/development/compilers/passerine/default.nix
+++ b/pkgs/development/compilers/passerine/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-A+sOT0rloAktDdVXe2HEPK25euh9T7c0rXybZmZpqC0=";
 
   meta = with lib; {
-    description = "A small extensible programming language designed for concise expression with little code";
+    description = "Small extensible programming language designed for concise expression with little code";
     mainProgram = "passerine";
     homepage = "https://www.passerine.io/";
     license = licenses.mit;
diff --git a/pkgs/development/compilers/purescript/psc-package/default.nix b/pkgs/development/compilers/purescript/psc-package/default.nix
index 2d66319385468..425281ef38762 100644
--- a/pkgs/development/compilers/purescript/psc-package/default.nix
+++ b/pkgs/development/compilers/purescript/psc-package/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A package manager for PureScript based on package sets";
+    description = "Package manager for PureScript based on package sets";
     mainProgram = "psc-package";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/compilers/purescript/purescript/default.nix b/pkgs/development/compilers/purescript/purescript/default.nix
index cbb938b28b964..5a172bd360db7 100644
--- a/pkgs/development/compilers/purescript/purescript/default.nix
+++ b/pkgs/development/compilers/purescript/purescript/default.nix
@@ -62,7 +62,7 @@ in stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A strongly-typed functional programming language that compiles to JavaScript";
+    description = "Strongly-typed functional programming language that compiles to JavaScript";
     homepage = "https://www.purescript.org/";
     license = licenses.bsd3;
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/development/compilers/qbe/default.nix b/pkgs/development/compilers/qbe/default.nix
index 00c91e2671ecd..f37de57b535e5 100644
--- a/pkgs/development/compilers/qbe/default.nix
+++ b/pkgs/development/compilers/qbe/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://c9x.me/compile/";
-    description = "A small compiler backend written in C";
+    description = "Small compiler backend written in C";
     maintainers = with maintainers; [ fgaz ];
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/development/compilers/rasm/default.nix b/pkgs/development/compilers/rasm/default.nix
deleted file mode 100644
index c131e4b79980c..0000000000000
--- a/pkgs/development/compilers/rasm/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ lib, stdenv, fetchurl, unzip }:
-
-stdenv.mkDerivation rec {
-  pname = "rasm";
-  version = "0.117";
-
-  src = fetchurl {
-    url = "http://www.roudoudou.com/export/cpc/rasm/${pname}_v0117_src.zip";
-    sha256 = "1hwily4cfays59qm7qd1ax48i7cpbxhs5l9mfpyn7m2lxsfqrl3z";
-  };
-
-  sourceRoot = ".";
-
-  nativeBuildInputs = [ unzip ];
-
-  buildPhase = ''
-      # according to official documentation
-      ${stdenv.cc.targetPrefix}cc rasm_v*.c -O2 -lm -o rasm
-  '';
-
-  installPhase = ''
-    install -Dt $out/bin rasm
-  '';
-
-  meta = with lib; {
-    homepage = "http://www.roudoudou.com/rasm/";
-    description = "Z80 assembler";
-    mainProgram = "rasm";
-    # use -n option to display all licenses
-    license = licenses.mit; # expat version
-    maintainers = with lib.maintainers; [ sigmanificient ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/development/compilers/reason/tests/hello/default.nix b/pkgs/development/compilers/reason/tests/hello/default.nix
index 3def42ec08f78..831b528c6ba95 100644
--- a/pkgs/development/compilers/reason/tests/hello/default.nix
+++ b/pkgs/development/compilers/reason/tests/hello/default.nix
@@ -1,10 +1,18 @@
-{ buildDunePackage, ppxlib, reason }:
+{ lib, buildDunePackage, ppxlib, reason }:
 
 buildDunePackage rec {
   pname = "helloreason";
   version = "0.0.1";
 
-  src = ./.;
+  src = lib.fileset.toSource {
+    root = ./.;
+    fileset = lib.fileset.unions [
+      ./helloreason.opam
+      ./helloreason.re
+      ./dune-project
+      ./dune
+    ];
+  };
 
   nativeBuildInputs = [
     reason
diff --git a/pkgs/development/compilers/rgbds/default.nix b/pkgs/development/compilers/rgbds/default.nix
index 7cec0eb0ddbb8..89e68ece7e6b6 100644
--- a/pkgs/development/compilers/rgbds/default.nix
+++ b/pkgs/development/compilers/rgbds/default.nix
@@ -2,21 +2,24 @@
 
 stdenv.mkDerivation rec {
   pname = "rgbds";
-  version = "0.6.1";
+  version = "0.7.0";
   src = fetchFromGitHub {
     owner = "gbdev";
     repo = "rgbds";
     rev = "v${version}";
-    sha256 = "sha256-3mx4yymrOQnP5aJCzPWl5G96WBxt1ixU6tdzhhOsF04=";
+    hash = "sha256-aktKJlwXpHpjSFxoz5wZJPGWZIcn4ax5iBP0GQEux78=";
   };
   nativeBuildInputs = [ bison flex pkg-config ];
   buildInputs = [ libpng ];
+  postPatch = ''
+    patchShebangs --host src/bison.sh
+  '';
   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-fno-lto";
   installFlags = [ "PREFIX=${placeholder "out"}" ];
 
   meta = with lib; {
     homepage = "https://rgbds.gbdev.io/";
-    description = "A free assembler/linker package for the Game Boy and Game Boy Color";
+    description = "Free assembler/linker package for the Game Boy and Game Boy Color";
     license = licenses.mit;
     longDescription =
       ''RGBDS (Rednex Game Boy Development System) is a free assembler/linker package for the Game Boy and Game Boy Color. It consists of:
diff --git a/pkgs/development/compilers/rust/1_77.nix b/pkgs/development/compilers/rust/1_77.nix
deleted file mode 100644
index ab501aba8ffbe..0000000000000
--- a/pkgs/development/compilers/rust/1_77.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-# New rust versions should first go to staging.
-# Things to check after updating:
-# 1. Rustc should produce rust binaries on x86_64-linux, aarch64-linux and x86_64-darwin:
-#    i.e. nix-shell -p fd or @GrahamcOfBorg build fd on github
-#    This testing can be also done by other volunteers as part of the pull
-#    request review, in case platforms cannot be covered.
-# 2. The LLVM version used for building should match with rust upstream.
-#    Check the version number in the src/llvm-project git submodule in:
-#    https://github.com/rust-lang/rust/blob/<version-tag>/.gitmodules
-# 3. Firefox and Thunderbird should still build on x86_64-linux.
-
-{ stdenv, lib
-, newScope, callPackage
-, CoreFoundation, Security, SystemConfiguration
-, pkgsBuildTarget, pkgsBuildBuild, pkgsBuildHost, pkgsTargetTarget
-, makeRustPlatform
-, wrapRustcWith
-, llvmPackages_17, llvm_17
-} @ args:
-
-import ./default.nix {
-  rustcVersion = "1.77.2";
-  rustcSha256 = "xhRX749ZZjj928dxZ3iy9rmf8SUTo7DxOZTDvFIWOMM=";
-
-  llvmSharedForBuild = pkgsBuildBuild.llvmPackages_17.libllvm.override { enableSharedLibraries = true; };
-  llvmSharedForHost = pkgsBuildHost.llvmPackages_17.libllvm.override { enableSharedLibraries = true; };
-  llvmSharedForTarget = pkgsBuildTarget.llvmPackages_17.libllvm.override { enableSharedLibraries = true; };
-
-  # For use at runtime
-  llvmShared = llvm_17.override { enableSharedLibraries = true; };
-
-  # Expose llvmPackages used for rustc from rustc via passthru for LTO in Firefox
-  llvmPackages = llvmPackages_17;
-
-  # Note: the version MUST be one version prior to the version we're
-  # building
-  bootstrapVersion = "1.76.0";
-
-  # fetch hashes by running `print-hashes.sh ${bootstrapVersion}`
-  bootstrapHashes = {
-    i686-unknown-linux-gnu = "4c3eefc9341b8809235e6c4fbcbc19ab52a5cbe771292c400df068c12984fa3e";
-    x86_64-unknown-linux-gnu = "9d589d2036b503cc45ecc94992d616fb3deec074deb36cacc2f5c212408f7399";
-    x86_64-unknown-linux-musl = "aa8568f4d262468aaf4f622bd421c5435b24454d8fbcdae48da1162962205384";
-    arm-unknown-linux-gnueabihf = "7d1da067362fc64bcad198d90a61e024d5712aed76e17b28e1cd7e8ba263cc6f";
-    armv7-unknown-linux-gnueabihf = "c03346d56d4a860cd3a8d2d2a7ea75c510b68204e3ad97b3770076595261c913";
-    aarch64-unknown-linux-gnu = "2e8313421e8fb673efdf356cdfdd4bc16516f2610d4f6faa01327983104c05a0";
-    aarch64-unknown-linux-musl = "a1d1c8ccb8ea00cfa2b79d80411b8eb22b2bef5214f86536825361e98d7c617a";
-    x86_64-apple-darwin = "7bdbe085695df8e46389115e99eda7beed37a9494f6b961b45554c658e53b8e7";
-    aarch64-apple-darwin = "17496f15c3cb6ff73d5c36f5b54cc110f1ac31fa09521a7991c0d7ddd890dceb";
-    powerpc64le-unknown-linux-gnu = "44b3494675284d26b04747a824dc974e32fd8fd46fc0aa06a7c8ebe851332d2c";
-    riscv64gc-unknown-linux-gnu = "4a9db321874fc441235b71eb8aa295fc50251305e461540b25b4eef89fb56255";
-  };
-
-  selectRustPackage = pkgs: pkgs.rust_1_77;
-
-  rustcPatches = [ ];
-}
-
-(builtins.removeAttrs args [ "llvmPackages_17" "llvm_17"])
diff --git a/pkgs/development/compilers/rust/1_78.nix b/pkgs/development/compilers/rust/1_78.nix
new file mode 100644
index 0000000000000..3ce368e8d99fb
--- /dev/null
+++ b/pkgs/development/compilers/rust/1_78.nix
@@ -0,0 +1,59 @@
+# New rust versions should first go to staging.
+# Things to check after updating:
+# 1. Rustc should produce rust binaries on x86_64-linux, aarch64-linux and x86_64-darwin:
+#    i.e. nix-shell -p fd or @GrahamcOfBorg build fd on github
+#    This testing can be also done by other volunteers as part of the pull
+#    request review, in case platforms cannot be covered.
+# 2. The LLVM version used for building should match with rust upstream.
+#    Check the version number in the src/llvm-project git submodule in:
+#    https://github.com/rust-lang/rust/blob/<version-tag>/.gitmodules
+# 3. Firefox and Thunderbird should still build on x86_64-linux.
+
+{ stdenv, lib
+, newScope, callPackage
+, CoreFoundation, Security, SystemConfiguration
+, pkgsBuildTarget, pkgsBuildBuild, pkgsBuildHost, pkgsTargetTarget
+, makeRustPlatform
+, wrapRustcWith
+, llvmPackages_18, llvm_18
+} @ args:
+
+import ./default.nix {
+  rustcVersion = "1.78.0";
+  rustcSha256 = "/1RII6XLJ/JzgShXfx5+AO6PTIPyo0h4GuT8NV6R1ak=";
+
+  llvmSharedForBuild = pkgsBuildBuild.llvmPackages_18.libllvm.override { enableSharedLibraries = true; };
+  llvmSharedForHost = pkgsBuildHost.llvmPackages_18.libllvm.override { enableSharedLibraries = true; };
+  llvmSharedForTarget = pkgsBuildTarget.llvmPackages_18.libllvm.override { enableSharedLibraries = true; };
+
+  # For use at runtime
+  llvmShared = llvm_18.override { enableSharedLibraries = true; };
+
+  # Expose llvmPackages used for rustc from rustc via passthru for LTO in Firefox
+  llvmPackages = llvmPackages_18;
+
+  # Note: the version MUST be one version prior to the version we're
+  # building
+  bootstrapVersion = "1.77.2";
+
+  # fetch hashes by running `print-hashes.sh ${bootstrapVersion}`
+  bootstrapHashes = {
+    i686-unknown-linux-gnu = "168e653fbc30b3a80801bc7735a79ff644651618434234959925f669bf77d1a2";
+    x86_64-unknown-linux-gnu = "b7d12b1b162c36c1fd5234b4b16856aa7eafca91d17c49787f6487cb26f4062d";
+    x86_64-unknown-linux-musl = "2e08fe23c4837a780a40ebfac601760cd6297581d21eae2f88cb59060243a375";
+    arm-unknown-linux-gnueabihf = "9f14a31dbef0153c0a7463a79cf8f9e8295b355354de41aa054953027beb70d7";
+    armv7-unknown-linux-gnueabihf = "b37649399081228244b3ff3acc6047f6c138e602c721cd500efe43715d043c5e";
+    aarch64-unknown-linux-gnu = "297c6201edd42e580f242fcd75b521b0392f6f3be02cf03ca76690fece4a74da";
+    aarch64-unknown-linux-musl = "fdd9c485f93c73a085c113b4f0fbad0989f79153079d394ec4bbac2b3804f71b";
+    x86_64-apple-darwin = "16bbbfcf0c982b35271d8904977d80fda1bb7caa7f898abceed3569a867d9cea";
+    aarch64-apple-darwin = "415bb2bc198feb0f2d8329e33c57d0890bbd57977d1ae48b17f6c7e1f632eaa7";
+    powerpc64le-unknown-linux-gnu = "79582acb339bd2d79fef095b977049049ffa04616011f1af1793fb8e98194b19";
+    riscv64gc-unknown-linux-gnu = "300fe4861e2d1f6e4c4f5e36ae7997beca8a979343a7f661237ab78a37a54648";
+  };
+
+  selectRustPackage = pkgs: pkgs.rust_1_78;
+
+  rustcPatches = [ ];
+}
+
+(builtins.removeAttrs args [ "llvmPackages_18" "llvm_18"])
diff --git a/pkgs/development/compilers/rust/binary.nix b/pkgs/development/compilers/rust/binary.nix
index c546e278e7fa8..d1df1c542e982 100644
--- a/pkgs/development/compilers/rust/binary.nix
+++ b/pkgs/development/compilers/rust/binary.nix
@@ -28,7 +28,7 @@ rec {
     meta = with lib; {
       homepage = "https://www.rust-lang.org/";
       sourceProvenance = with sourceTypes; [ binaryNativeCode ];
-      description = "A safe, concurrent, practical language";
+      description = "Safe, concurrent, practical language";
       maintainers = with maintainers; [ qknight ];
       license = [ licenses.mit licenses.asl20 ];
     };
@@ -73,7 +73,7 @@ rec {
     meta = with lib; {
       homepage = "https://doc.rust-lang.org/cargo/";
       sourceProvenance = with sourceTypes; [ binaryNativeCode ];
-      description = "The Rust package manager";
+      description = "Rust package manager";
       maintainers = with maintainers; [ qknight ];
       license = [ licenses.mit licenses.asl20 ];
     };
diff --git a/pkgs/development/compilers/rust/cargo-auditable.nix b/pkgs/development/compilers/rust/cargo-auditable.nix
index 1cf765b35100d..0fa6098934c15 100644
--- a/pkgs/development/compilers/rust/cargo-auditable.nix
+++ b/pkgs/development/compilers/rust/cargo-auditable.nix
@@ -22,13 +22,8 @@ let
 
     cargoHash = "sha256-4o3ctun/8VcBRuj+j0Yaawdkyn6Z6LPp+FTyhPxQWU8=";
 
-    # Cargo.lock is outdated
-    preConfigure = ''
-      cargo update --offline
-    '';
-
     meta = with lib; {
-      description = "A tool to make production Rust binaries auditable";
+      description = "Tool to make production Rust binaries auditable";
       mainProgram = "cargo-auditable";
       homepage = "https://github.com/rust-secure-code/cargo-auditable";
       changelog = "https://github.com/rust-secure-code/cargo-auditable/blob/v${version}/cargo-auditable/CHANGELOG.md";
diff --git a/pkgs/development/compilers/rust/clippy.nix b/pkgs/development/compilers/rust/clippy.nix
index d9506a4aed301..beee43323dad4 100644
--- a/pkgs/development/compilers/rust/clippy.nix
+++ b/pkgs/development/compilers/rust/clippy.nix
@@ -37,7 +37,7 @@ rustPlatform.buildRustPackage {
 
   meta = with lib; {
     homepage = "https://rust-lang.github.io/rust-clippy/";
-    description = "A bunch of lints to catch common mistakes and improve your Rust code";
+    description = "Bunch of lints to catch common mistakes and improve your Rust code";
     mainProgram = "cargo-clippy";
     maintainers = with maintainers; [ basvandijk ] ++ teams.rust.members;
     license = with licenses; [ mit asl20 ];
diff --git a/pkgs/development/compilers/rust/rustc.nix b/pkgs/development/compilers/rust/rustc.nix
index 4c02692b75bd5..e00ba329ccdc4 100644
--- a/pkgs/development/compilers/rust/rustc.nix
+++ b/pkgs/development/compilers/rust/rustc.nix
@@ -103,7 +103,9 @@ in stdenv.mkDerivation (finalAttrs: {
       stdenv.targetPlatform.rust.rustcTargetSpec
 
     # Other targets that don't need any extra dependencies to build.
-    ] ++ optionals (!fastCross) [
+    # Temporarily broken if some global compiler flags are set:
+    # https://github.com/NixOS/nixpkgs/pull/317273
+    ] ++ optionals (!fastCross && !lib.any (a: lib.hasAttr a stdenv.hostPlatform.gcc) [ "cpu" "float-abi" "fpu" ] && stdenv.hostPlatform.gcc.thumb or true) [
       "wasm32-unknown-unknown"
 
     # (build!=target): When cross-building a compiler we need to add
@@ -139,6 +141,10 @@ in stdenv.mkDerivation (finalAttrs: {
     "${setBuild}.llvm-config=${llvmSharedForBuild.dev}/bin/llvm-config"
     "${setHost}.llvm-config=${llvmSharedForHost.dev}/bin/llvm-config"
     "${setTarget}.llvm-config=${llvmSharedForTarget.dev}/bin/llvm-config"
+  ] ++ optionals fastCross [
+    # Since fastCross only builds std, it doesn't make sense (and
+    # doesn't work) to build a linker.
+    "--disable-llvm-bitcode-linker"
   ] ++ optionals (stdenv.isLinux && !stdenv.targetPlatform.isRedox) [
     "--enable-profiler" # build libprofiler_builtins
   ] ++ optionals stdenv.buildPlatform.isMusl [
@@ -192,6 +198,12 @@ in stdenv.mkDerivation (finalAttrs: {
   postPatch = ''
     patchShebangs src/etc
 
+    # rust-lld is the name rustup uses for its bundled lld, so that it
+    # doesn't conflict with any system lld.  This is not an
+    # appropriate default for Nixpkgs, where there is no rust-lld.
+    substituteInPlace compiler/rustc_target/src/spec/*/*.rs \
+      --replace-quiet '"rust-lld"' '"lld"'
+
     ${optionalString (!withBundledLLVM) "rm -rf src/llvm"}
 
     # Useful debugging parameter
@@ -267,7 +279,7 @@ in stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://www.rust-lang.org/";
-    description = "A safe, concurrent, practical language";
+    description = "Safe, concurrent, practical language";
     maintainers = with maintainers; [ havvy ] ++ teams.rust.members;
     license = [ licenses.mit licenses.asl20 ];
     platforms = [
diff --git a/pkgs/development/compilers/rust/rustfmt.nix b/pkgs/development/compilers/rust/rustfmt.nix
index 9cc8df5a9e904..ab58a172a6b20 100644
--- a/pkgs/development/compilers/rust/rustfmt.nix
+++ b/pkgs/development/compilers/rust/rustfmt.nix
@@ -35,7 +35,7 @@ rustPlatform.buildRustPackage rec {
   CFG_RELEASE_CHANNEL = if asNightly then "nightly" else "stable";
 
   meta = with lib; {
-    description = "A tool for formatting Rust code according to style guidelines";
+    description = "Tool for formatting Rust code according to style guidelines";
     homepage = "https://github.com/rust-lang-nursery/rustfmt";
     license = with licenses; [ mit asl20 ];
     mainProgram = "rustfmt";
diff --git a/pkgs/development/compilers/sagittarius-scheme/default.nix b/pkgs/development/compilers/sagittarius-scheme/default.nix
index f9b25b9341a4a..0b4cc240694cb 100644
--- a/pkgs/development/compilers/sagittarius-scheme/default.nix
+++ b/pkgs/development/compilers/sagittarius-scheme/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   ]);
 
   meta = with lib; {
-    description = "An R6RS/R7RS Scheme system";
+    description = "R6RS/R7RS Scheme system";
     longDescription = ''
       Sagittarius Scheme is a free Scheme implementation supporting
       R6RS/R7RS specification.
diff --git a/pkgs/development/compilers/sbcl/default.nix b/pkgs/development/compilers/sbcl/default.nix
index 75ead6184aa88..0eec40b2bd4c7 100644
--- a/pkgs/development/compilers/sbcl/default.nix
+++ b/pkgs/development/compilers/sbcl/default.nix
@@ -7,7 +7,7 @@
   # to get rid of ${glibc} dependency.
 , purgeNixReferences ? false
 , coreCompression ? true
-, markRegionGC ? true
+, markRegionGC ? threadSupport
 , version
   # Set this to a lisp binary to use a custom bootstrap lisp compiler for SBCL.
   # Leave as null to use the default.  This is useful for local development of
@@ -19,12 +19,12 @@
 
 let
   versionMap = {
-    "2.4.3" = {
-      sha256 = "sha256-icmq35K4KtPHSj1PFYoDiJPeoOTzlNyvyWNYPDC3w/I=";
-    };
     "2.4.4" = {
       sha256 = "sha256-ipMmJ7Px2OlhjxzcIl7csAJFaARpfiyH0UBoN2ShBtU=";
     };
+    "2.4.5" = {
+      sha256 = "sha256-TfaOkMkDGAdkK0t2GYjetb9qG9FSxHI0goNO+nNae9E=";
+    };
   };
   # Collection of pre-built SBCL binaries for platforms that need them for
   # bootstrapping. Ideally these are to be avoided.  If ECL (or any other
@@ -157,6 +157,7 @@ stdenv.mkDerivation (self: rec {
   '';
 
   enableFeatures = with lib;
+    assert assertMsg (markRegionGC -> threadSupport) "SBCL mark region GC requires thread support";
     optional threadSupport "sb-thread" ++
     optional linkableRuntime "sb-linkable-runtime" ++
     optional coreCompression "sb-core-compression" ++
diff --git a/pkgs/development/compilers/scala-runners/default.nix b/pkgs/development/compilers/scala-runners/default.nix
index 57756b423d55e..bc0756e0c11ce 100644
--- a/pkgs/development/compilers/scala-runners/default.nix
+++ b/pkgs/development/compilers/scala-runners/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/dwijnand/scala-runners";
-    description = "An alternative implementation of the Scala distribution's runners";
+    description = "Alternative implementation of the Scala distribution's runners";
     license = licenses.asl20;
     platforms = platforms.all;
     maintainers = with maintainers; [ hrhino ];
diff --git a/pkgs/development/compilers/scala/2.x.nix b/pkgs/development/compilers/scala/2.x.nix
index cf3f42ec08587..d79e946ec7dec 100644
--- a/pkgs/development/compilers/scala/2.x.nix
+++ b/pkgs/development/compilers/scala/2.x.nix
@@ -101,7 +101,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A general purpose programming language";
+    description = "General purpose programming language";
     longDescription = ''
       Scala is a general purpose programming language designed to express
       common programming patterns in a concise, elegant, and type-safe way.
diff --git a/pkgs/development/compilers/scala/bare.nix b/pkgs/development/compilers/scala/bare.nix
index 09180e54a5a5d..bbbb573f2f5ac 100644
--- a/pkgs/development/compilers/scala/bare.nix
+++ b/pkgs/development/compilers/scala/bare.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, makeWrapper, jre, ncurses }:
 
 stdenv.mkDerivation rec {
-  version = "3.3.1";
+  version = "3.3.3";
   pname = "scala-bare";
 
   src = fetchurl {
     url = "https://github.com/lampepfl/dotty/releases/download/${version}/scala3-${version}.tar.gz";
-    hash = "sha256-EcDqD3HEOvD7GzVd3kFL/vAaYMFyk2deI6RNAlJpzRU=";
+    hash = "sha256-61lAETEvqkEqr5pbDltFkh+Qvp+EnCDilXN9X67NFNE=";
   };
 
   propagatedBuildInputs = [ jre ncurses.dev ] ;
diff --git a/pkgs/development/compilers/scryer-prolog/default.nix b/pkgs/development/compilers/scryer-prolog/default.nix
index 28744a00a5f16..49818fee3e109 100644
--- a/pkgs/development/compilers/scryer-prolog/default.nix
+++ b/pkgs/development/compilers/scryer-prolog/default.nix
@@ -33,7 +33,7 @@ rustPlatform.buildRustPackage rec {
   CARGO_FEATURE_USE_SYSTEM_LIBS = true;
 
   meta = with lib; {
-    description = "A modern Prolog implementation written mostly in Rust";
+    description = "Modern Prolog implementation written mostly in Rust";
     mainProgram = "scryer-prolog";
     homepage = "https://github.com/mthom/scryer-prolog";
     license = with licenses; [ bsd3 ];
diff --git a/pkgs/development/compilers/semeru-bin/generate-sources.py b/pkgs/development/compilers/semeru-bin/generate-sources.py
index da23559955d92..44ad583ab48f7 100755
--- a/pkgs/development/compilers/semeru-bin/generate-sources.py
+++ b/pkgs/development/compilers/semeru-bin/generate-sources.py
@@ -6,10 +6,10 @@ import re
 import requests
 import sys
 
-feature_versions = (8, 11, 16, 17)
+feature_versions = (8, 11, 16, 17, 21)
 oses = ("mac", "linux")
 types = ("jre", "jdk")
-impls = ("openj9")
+impls = ("openj9",)
 
 arch_to_nixos = {
     "x64": ("x86_64",),
diff --git a/pkgs/development/compilers/semeru-bin/jdk-darwin.nix b/pkgs/development/compilers/semeru-bin/jdk-darwin.nix
index f58fec3a84c0d..2e9bde029f2d9 100644
--- a/pkgs/development/compilers/semeru-bin/jdk-darwin.nix
+++ b/pkgs/development/compilers/semeru-bin/jdk-darwin.nix
@@ -3,14 +3,18 @@
 let
   sources = (lib.importJSON ./sources.json).openj9.mac;
   common = opts: callPackage (import ./jdk-darwin-base.nix opts) {};
+
+  EOL = [ "This JDK/JRE version has reached End of Life." ];
 in
 {
   jdk-8 = common { sourcePerArch = sources.jdk.openjdk8; };
   jre-8 = common { sourcePerArch = sources.jre.openjdk8; };
   jdk-11 = common { sourcePerArch = sources.jdk.openjdk11; };
   jre-11 = common { sourcePerArch = sources.jre.openjdk11; };
-  jdk-16 = common { sourcePerArch = sources.jdk.openjdk16; };
-  jre-16 = common { sourcePerArch = sources.jre.openjdk16; };
+  jdk-16 = common { sourcePerArch = sources.jdk.openjdk16; knownVulnerabilities = EOL; };
+  jre-16 = common { sourcePerArch = sources.jre.openjdk16; knownVulnerabilities = EOL; };
   jdk-17 = common { sourcePerArch = sources.jdk.openjdk17; };
   jre-17 = common { sourcePerArch = sources.jre.openjdk17; };
+  jdk-21 = common { sourcePerArch = sources.jdk.openjdk21; };
+  jre-21 = common { sourcePerArch = sources.jre.openjdk21; };
 }
diff --git a/pkgs/development/compilers/semeru-bin/jdk-linux.nix b/pkgs/development/compilers/semeru-bin/jdk-linux.nix
index c80dd991bf042..59c6a4862d913 100644
--- a/pkgs/development/compilers/semeru-bin/jdk-linux.nix
+++ b/pkgs/development/compilers/semeru-bin/jdk-linux.nix
@@ -3,14 +3,18 @@
 let
   sources = (lib.importJSON ./sources.json).openj9.linux;
   common = opts: callPackage (import ./jdk-linux-base.nix opts) {};
+
+  EOL = [ "This JDK/JRE version has reached End of Life." ];
 in
 {
   jdk-8 = common { sourcePerArch = sources.jdk.openjdk8; };
   jre-8 = common { sourcePerArch = sources.jre.openjdk8; };
   jdk-11 = common { sourcePerArch = sources.jdk.openjdk11; };
   jre-11 = common { sourcePerArch = sources.jre.openjdk11; };
-  jdk-16 = common { sourcePerArch = sources.jdk.openjdk16; };
-  jre-16 = common { sourcePerArch = sources.jre.openjdk16; };
+  jdk-16 = common { sourcePerArch = sources.jdk.openjdk16; knownVulnerabilities = EOL; };
+  jre-16 = common { sourcePerArch = sources.jre.openjdk16; knownVulnerabilities = EOL; };
   jdk-17 = common { sourcePerArch = sources.jdk.openjdk17; };
   jre-17 = common { sourcePerArch = sources.jre.openjdk17; };
+  jdk-21 = common { sourcePerArch = sources.jdk.openjdk21; };
+  jre-21 = common { sourcePerArch = sources.jre.openjdk21; };
 }
diff --git a/pkgs/development/compilers/semeru-bin/sources.json b/pkgs/development/compilers/semeru-bin/sources.json
index 5e04fa90af748..ccca4a2ee7ad5 100644
--- a/pkgs/development/compilers/semeru-bin/sources.json
+++ b/pkgs/development/compilers/semeru-bin/sources.json
@@ -4,18 +4,18 @@
       "jdk": {
         "openjdk11": {
           "aarch64": {
-            "build": "8",
-            "sha256": "488739171f84e3949df6ccb1c40eaf1b73541748b123d88780329648d6b383d0",
-            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jdk_aarch64_linux_11.0.16_8_openj9-0.33.0.tar.gz",
-            "version": "11.0.16"
+            "build": "9",
+            "sha256": "23e280da1ce418692323f8aad94069ef34bae6566a98ffd349fc2cbb9fa285af",
+            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.23%2B9_openj9-0.44.0/ibm-semeru-open-jdk_aarch64_linux_11.0.23_9_openj9-0.44.0.tar.gz",
+            "version": "11.0.23"
           },
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "eeca01d4e245a001d01663c5c20a8d50ef3d572b47a9b3689a5154f2a37bf005",
-            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jdk_x64_linux_11.0.16_8_openj9-0.33.0.tar.gz",
-            "version": "11.0.16"
+            "build": "9",
+            "sha256": "033261124af247f944f820cad158df2b9db58945b4998750258c37d62fac99ff",
+            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.23%2B9_openj9-0.44.0/ibm-semeru-open-jdk_x64_linux_11.0.23_9_openj9-0.44.0.tar.gz",
+            "version": "11.0.23"
           }
         },
         "openjdk16": {
@@ -36,52 +36,68 @@
         },
         "openjdk17": {
           "aarch64": {
-            "build": "8",
-            "sha256": "18d291411ee4a956018b4dcefe436971e73694128782617f1b44beca991956c5",
-            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jdk_aarch64_linux_17.0.4_8_openj9-0.33.0.tar.gz",
-            "version": "17.0.4"
+            "build": "9",
+            "sha256": "cfdff21ce44ae6af494cba75c1f323bef83a982f2c11944988bab2125f85b906",
+            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.9%2B9_openj9-0.41.0/ibm-semeru-open-jdk_aarch64_linux_17.0.9_9_openj9-0.41.0.tar.gz",
+            "version": "17.0.9"
           },
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "78ae15d9e01fce3a473f4d6a90c331fb766211b950931088c2a85590f178ad39",
-            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jdk_x64_linux_17.0.4_8_openj9-0.33.0.tar.gz",
-            "version": "17.0.4"
+            "build": "9",
+            "sha256": "9b945e58f024108a20eb907015cca4a452332b7644e8dd8e051149a3ec62e3a3",
+            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.9%2B9_openj9-0.41.0/ibm-semeru-open-jdk_x64_linux_17.0.9_9_openj9-0.41.0.tar.gz",
+            "version": "17.0.9"
+          }
+        },
+        "openjdk21": {
+          "aarch64": {
+            "build": "9",
+            "sha256": "718e465d1b22034d889445e8ae371fc58dfc733c454cf344fa5e10db0ab8a775",
+            "url": "https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.3%2B9_openj9-0.44.0/ibm-semeru-open-jdk_aarch64_linux_21.0.3_9_openj9-0.44.0.tar.gz",
+            "version": "21.0.3"
+          },
+          "packageType": "jdk",
+          "vmType": "openj9",
+          "x86_64": {
+            "build": "9",
+            "sha256": "5cccb39dc7ca6c61a11bd7179c4c3c30b747f9f22129576feef921b59725af25",
+            "url": "https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.3%2B9_openj9-0.44.0/ibm-semeru-open-jdk_x64_linux_21.0.3_9_openj9-0.44.0.tar.gz",
+            "version": "21.0.3"
           }
         },
         "openjdk8": {
           "aarch64": {
-            "build": "01",
-            "sha256": "6b89e648899709459b7c7dbe0a5b1ea480a88da84c6163f01255d638dbdd051b",
-            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/8u345-b01_openj9-0.33.0/ibm-semeru-open-jdk_aarch64_linux_8u345b01_openj9-0.33.0.tar.gz",
-            "version": "8.0.345"
+            "build": "08",
+            "sha256": "2baa88e7ed0ea9f72310fb4adfe99ee06fdb514cc04517b0e0be3c0646493ea3",
+            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk8u412-b08_openj9-0.44.0/ibm-semeru-open-jdk_aarch64_linux_8u412b08_openj9-0.44.0.tar.gz",
+            "version": "8.0.412"
           },
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "01",
-            "sha256": "82c8232a5cb420246457d65a5014602feb8b288079cdae896e22a2eb6e390b58",
-            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/8u345-b01_openj9-0.33.0/ibm-semeru-open-jdk_x64_linux_8u345b01_openj9-0.33.0.tar.gz",
-            "version": "8.0.345"
+            "build": "08",
+            "sha256": "85af2c57078aab240ce31ba3f7a8e86696ff5bdf4c30f3c37f107986f07b23a6",
+            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk8u412-b08_openj9-0.44.0/ibm-semeru-open-jdk_x64_linux_8u412b08_openj9-0.44.0.tar.gz",
+            "version": "8.0.412"
           }
         }
       },
       "jre": {
         "openjdk11": {
           "aarch64": {
-            "build": "8",
-            "sha256": "49dc05a3e9f3f99c5f8fa466261aa3e33a753694c67cabfa7d3f682e5a2e3685",
-            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jre_aarch64_linux_11.0.16_8_openj9-0.33.0.tar.gz",
-            "version": "11.0.16"
+            "build": "9",
+            "sha256": "8613dc2b6c403f48d2a8e25da92ab9f8a7b5dd63cb81d1917e4cb070ae371557",
+            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.23%2B9_openj9-0.44.0/ibm-semeru-open-jre_aarch64_linux_11.0.23_9_openj9-0.44.0.tar.gz",
+            "version": "11.0.23"
           },
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "ba09711193b8b8664478f3f949b5320232f65c1bdf61f32a885d84de73c02767",
-            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jre_x64_linux_11.0.16_8_openj9-0.33.0.tar.gz",
-            "version": "11.0.16"
+            "build": "9",
+            "sha256": "b9558416d6d773fce0d9b4d3f875fdfc5ffc1afd922570b0f7a6f7cbab7468ab",
+            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.23%2B9_openj9-0.44.0/ibm-semeru-open-jre_x64_linux_11.0.23_9_openj9-0.44.0.tar.gz",
+            "version": "11.0.23"
           }
         },
         "openjdk16": {
@@ -102,34 +118,50 @@
         },
         "openjdk17": {
           "aarch64": {
-            "build": "8",
-            "sha256": "6c40c1e0d7ee0509c44465e9f26dd970904137a95fd751e6447b1d6a9ef5092a",
-            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jre_aarch64_linux_17.0.4_8_openj9-0.33.0.tar.gz",
-            "version": "17.0.4"
+            "build": "9",
+            "sha256": "9760aa27a5790a8c20a702ff5f036535f3df51d3fb291bb5254b5ae76e096bad",
+            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.9%2B9_openj9-0.41.0/ibm-semeru-open-jre_aarch64_linux_17.0.9_9_openj9-0.41.0.tar.gz",
+            "version": "17.0.9"
+          },
+          "packageType": "jre",
+          "vmType": "openj9",
+          "x86_64": {
+            "build": "9",
+            "sha256": "1caf409f33f7738efe37742197525b5ae6244d6383b2017e7b8e925dc0b6a329",
+            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.9%2B9_openj9-0.41.0/ibm-semeru-open-jre_x64_linux_17.0.9_9_openj9-0.41.0.tar.gz",
+            "version": "17.0.9"
+          }
+        },
+        "openjdk21": {
+          "aarch64": {
+            "build": "9",
+            "sha256": "0222dc3749e1c94bd1b047cdb02eb18310aefd9f7965b66196da06e4e3844b7a",
+            "url": "https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.3%2B9_openj9-0.44.0/ibm-semeru-open-jre_aarch64_linux_21.0.3_9_openj9-0.44.0.tar.gz",
+            "version": "21.0.3"
           },
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "b2c176f8aa8cc7138d4c22ce9298d8f49597e1d8e3fdd33125898e5ee0182c93",
-            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jre_x64_linux_17.0.4_8_openj9-0.33.0.tar.gz",
-            "version": "17.0.4"
+            "build": "9",
+            "sha256": "b831e8c418374ccec13c51f60c36f4c32266f3cc83cb31f32286f89c26d66e00",
+            "url": "https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.3%2B9_openj9-0.44.0/ibm-semeru-open-jre_x64_linux_21.0.3_9_openj9-0.44.0.tar.gz",
+            "version": "21.0.3"
           }
         },
         "openjdk8": {
           "aarch64": {
-            "build": "01",
-            "sha256": "03caff41622e84a6e7fa66a225414a9b6eefb38dd215f830cae0bc4bbfc55b5c",
-            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/8u345-b01_openj9-0.33.0/ibm-semeru-open-jre_aarch64_linux_8u345b01_openj9-0.33.0.tar.gz",
-            "version": "8.0.345"
+            "build": "08",
+            "sha256": "08a41a48b79881590d65a09c62c56d8bcd9b8453f03420bcfd5dd3165bbba3c1",
+            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk8u412-b08_openj9-0.44.0/ibm-semeru-open-jre_aarch64_linux_8u412b08_openj9-0.44.0.tar.gz",
+            "version": "8.0.412"
           },
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "01",
-            "sha256": "0d4fe62716b9da2ccce324b5b46d57e8d47e5dfb5d128f87e16135ee9bc36cdc",
-            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/8u345-b01_openj9-0.33.0/ibm-semeru-open-jre_x64_linux_8u345b01_openj9-0.33.0.tar.gz",
-            "version": "8.0.345"
+            "build": "08",
+            "sha256": "ac5022b52b33b22c51d8370655f6157fd999e5e24c6525f91d1e778f34abcb8b",
+            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk8u412-b08_openj9-0.44.0/ibm-semeru-open-jre_x64_linux_8u412b08_openj9-0.44.0.tar.gz",
+            "version": "8.0.412"
           }
         }
       }
@@ -138,18 +170,18 @@
       "jdk": {
         "openjdk11": {
           "aarch64": {
-            "build": "8",
-            "sha256": "9881b292142a129f6f5c6b21608b090f8f94625052b4f7d0ce5bd982c054ca2e",
-            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jdk_aarch64_mac_11.0.16_8_openj9-0.33.0.tar.gz",
-            "version": "11.0.16"
+            "build": "9",
+            "sha256": "451336700a8b219d219e2e3b26b60154c44e8ab209056cc3466b0fcd4b15e53d",
+            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.23%2B9_openj9-0.44.0/ibm-semeru-open-jdk_aarch64_mac_11.0.23_9_openj9-0.44.0.tar.gz",
+            "version": "11.0.23"
           },
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "8638735d2cae3efff212f898728685380355bb0a298076e9e46244d0bf3d4a64",
-            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jdk_x64_mac_11.0.16_8_openj9-0.33.0.tar.gz",
-            "version": "11.0.16"
+            "build": "9",
+            "sha256": "6a225f3024d1919528107ece20256e8a8594523ea2204d93a041c012cbf1e2d2",
+            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.23%2B9_openj9-0.44.0/ibm-semeru-open-jdk_x64_mac_11.0.23_9_openj9-0.44.0.tar.gz",
+            "version": "11.0.23"
           }
         },
         "openjdk16": {
@@ -164,46 +196,62 @@
         },
         "openjdk17": {
           "aarch64": {
-            "build": "8",
-            "sha256": "bf22628b54115dff9939b94751531544ab735b7cbbc8d6ddfe83d1b04df3a532",
-            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jdk_aarch64_mac_17.0.4_8_openj9-0.33.0.tar.gz",
-            "version": "17.0.4"
+            "build": "9",
+            "sha256": "5fed15250cb613a4024f2b2e75ccb54e6526ffa5ff78d955a6e2a11ae330f003",
+            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.9%2B9_openj9-0.41.0/ibm-semeru-open-jdk_aarch64_mac_17.0.9_9_openj9-0.41.0.tar.gz",
+            "version": "17.0.9"
           },
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "a935f20564e347a9292955c04eb57e51efdb1853ae7f0b4fe759b22c9fe248be",
-            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jdk_x64_mac_17.0.4_8_openj9-0.33.0.tar.gz",
-            "version": "17.0.4"
+            "build": "9",
+            "sha256": "585f48be83935a44ef980249aaab024119d4ea6ef0937a2cd2d97d0c77cda1c2",
+            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.9%2B9_openj9-0.41.0/ibm-semeru-open-jdk_x64_mac_17.0.9_9_openj9-0.41.0.tar.gz",
+            "version": "17.0.9"
+          }
+        },
+        "openjdk21": {
+          "aarch64": {
+            "build": "9",
+            "sha256": "a95896a4ca7b69050a25b1557520f430abc66d098e9fd15cd394e20c4c93e5cf",
+            "url": "https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.3%2B9_openj9-0.44.0/ibm-semeru-open-jdk_aarch64_mac_21.0.3_9_openj9-0.44.0.tar.gz",
+            "version": "21.0.3"
+          },
+          "packageType": "jdk",
+          "vmType": "openj9",
+          "x86_64": {
+            "build": "9",
+            "sha256": "95640346ef677fbdbf40efa0298cc61314cffed0c43d1b3bd329b84d445db869",
+            "url": "https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.3%2B9_openj9-0.44.0/ibm-semeru-open-jdk_x64_mac_21.0.3_9_openj9-0.44.0.tar.gz",
+            "version": "21.0.3"
           }
         },
         "openjdk8": {
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "01",
-            "sha256": "c69086950c006b17484a70ef7bc85e92d121be15e69e282e1446fd238d42b6b4",
-            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/8u345-b01_openj9-0.33.0/ibm-semeru-open-jdk_x64_mac_8u345b01_openj9-0.33.0.tar.gz",
-            "version": "8.0.345"
+            "build": "08",
+            "sha256": "4e8a34442fc0c1c1288ca4d251ecfe744c201ec6494103d8dafa52e785d3f8ae",
+            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk8u412-b08_openj9-0.44.0/ibm-semeru-open-jdk_x64_mac_8u412b08_openj9-0.44.0.tar.gz",
+            "version": "8.0.412"
           }
         }
       },
       "jre": {
         "openjdk11": {
           "aarch64": {
-            "build": "8",
-            "sha256": "39802020896476342dc11486e3cbdf10f6311c172abeb4a1e2931b472da4417e",
-            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jre_aarch64_mac_11.0.16_8_openj9-0.33.0.tar.gz",
-            "version": "11.0.16"
+            "build": "9",
+            "sha256": "be6ba7e6904e8ca2fab9dab38607af1e4d36f6a391584eb8c4de0804493f3626",
+            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.23%2B9_openj9-0.44.0/ibm-semeru-open-jre_aarch64_mac_11.0.23_9_openj9-0.44.0.tar.gz",
+            "version": "11.0.23"
           },
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "92f87a3c2fb5fe60d3d51020ff95b9c234b2ae2677b79aebbe749dda717c9cdd",
-            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jre_x64_mac_11.0.16_8_openj9-0.33.0.tar.gz",
-            "version": "11.0.16"
+            "build": "9",
+            "sha256": "9f9505e9ee5082c070de965c790d51758a9969b7bb9ca49057d0d5afb5cfc99b",
+            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.23%2B9_openj9-0.44.0/ibm-semeru-open-jre_x64_mac_11.0.23_9_openj9-0.44.0.tar.gz",
+            "version": "11.0.23"
           }
         },
         "openjdk16": {
@@ -218,28 +266,44 @@
         },
         "openjdk17": {
           "aarch64": {
-            "build": "8",
-            "sha256": "4057c94cd46b814cc5a4d683d5f0b95dbd0b9e13e8c2e11155561ad0d8bec85b",
-            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jre_aarch64_mac_17.0.4_8_openj9-0.33.0.tar.gz",
-            "version": "17.0.4"
+            "build": "9",
+            "sha256": "fbd093ab7218c916aa4f49ac851635020dd1c8a98a98158fc44a6565e3d182ed",
+            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.9%2B9_openj9-0.41.0/ibm-semeru-open-jre_aarch64_mac_17.0.9_9_openj9-0.41.0.tar.gz",
+            "version": "17.0.9"
+          },
+          "packageType": "jre",
+          "vmType": "openj9",
+          "x86_64": {
+            "build": "9",
+            "sha256": "f5781de29132c04f54341349e99954ec3cfbdbc65fdebdd00feff47c68793299",
+            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.9%2B9_openj9-0.41.0/ibm-semeru-open-jre_x64_mac_17.0.9_9_openj9-0.41.0.tar.gz",
+            "version": "17.0.9"
+          }
+        },
+        "openjdk21": {
+          "aarch64": {
+            "build": "9",
+            "sha256": "55650c3825a22dc1caabf672ee8e2ef3ce4cee32df92e7317780d3eae18f17a5",
+            "url": "https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.3%2B9_openj9-0.44.0/ibm-semeru-open-jre_aarch64_mac_21.0.3_9_openj9-0.44.0.tar.gz",
+            "version": "21.0.3"
           },
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "8e957d2eb47eaca64516ac669272c6e5186155ed8ee4d6a77e0d4b7811cd7bb6",
-            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jre_x64_mac_17.0.4_8_openj9-0.33.0.tar.gz",
-            "version": "17.0.4"
+            "build": "9",
+            "sha256": "4b4d6da4da96dfa233d0c262bcaecb15b29162a81c802179f56e4084141c6fd8",
+            "url": "https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.3%2B9_openj9-0.44.0/ibm-semeru-open-jre_x64_mac_21.0.3_9_openj9-0.44.0.tar.gz",
+            "version": "21.0.3"
           }
         },
         "openjdk8": {
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "01",
-            "sha256": "019e08dea8fbd54517dacbeac791d85717902800dd8bba77fbca1dfc6b0abd9e",
-            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/8u345-b01_openj9-0.33.0/ibm-semeru-open-jre_x64_mac_8u345b01_openj9-0.33.0.tar.gz",
-            "version": "8.0.345"
+            "build": "08",
+            "sha256": "baf7d026012acc234fb1c2e64adf544a84449c856ee25a130c5aec32fbe34e3a",
+            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk8u412-b08_openj9-0.44.0/ibm-semeru-open-jre_x64_mac_8u412b08_openj9-0.44.0.tar.gz",
+            "version": "8.0.412"
           }
         }
       }
diff --git a/pkgs/development/compilers/shaderc/default.nix b/pkgs/development/compilers/shaderc/default.nix
index bb8030406aebb..968a3014fa405 100644
--- a/pkgs/development/compilers/shaderc/default.nix
+++ b/pkgs/development/compilers/shaderc/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "A collection of tools, libraries and tests for shader compilation";
+    description = "Collection of tools, libraries and tests for shader compilation";
     platforms = platforms.all;
     license = [ licenses.asl20 ];
   };
diff --git a/pkgs/development/compilers/sjasmplus/default.nix b/pkgs/development/compilers/sjasmplus/default.nix
index 61d85b95c4527..b9c6a4b171ea2 100644
--- a/pkgs/development/compilers/sjasmplus/default.nix
+++ b/pkgs/development/compilers/sjasmplus/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://z00m128.github.io/sjasmplus/";
-    description = "A Z80 assembly language cross compiler. It is based on the SjASM source code by Sjoerd Mastijn";
+    description = "Z80 assembly language cross compiler. It is based on the SjASM source code by Sjoerd Mastijn";
     mainProgram = "sjasmplus";
     license = licenses.bsd3;
     platforms = platforms.all;
diff --git a/pkgs/development/compilers/solc/default.nix b/pkgs/development/compilers/solc/default.nix
index 0603706164ae6..2147d59ffd933 100644
--- a/pkgs/development/compilers/solc/default.nix
+++ b/pkgs/development/compilers/solc/default.nix
@@ -3,7 +3,6 @@
 , boost
 , cmake
 , coreutils
-, fetchpatch
 , jq
 , ncurses
 , python3
diff --git a/pkgs/development/compilers/souffle/default.nix b/pkgs/development/compilers/souffle/default.nix
index 68ceb1a7d7f64..dd6c11120e4d1 100644
--- a/pkgs/development/compilers/souffle/default.nix
+++ b/pkgs/development/compilers/souffle/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch
+{ lib, stdenv, fetchFromGitHub
 , bash-completion, perl, ncurses, zlib, sqlite, libffi
 , mcpp, cmake, bison, flex, doxygen, graphviz
 , makeWrapper
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" ];
 
   meta = with lib; {
-    description = "A translator of declarative Datalog programs into the C++ language";
+    description = "Translator of declarative Datalog programs into the C++ language";
     homepage    = "https://souffle-lang.github.io/";
     platforms   = platforms.unix;
     maintainers = with maintainers; [ thoughtpolice copumpkin wchresta ];
diff --git a/pkgs/development/compilers/spirv-llvm-translator/default.nix b/pkgs/development/compilers/spirv-llvm-translator/default.nix
index 777e819b453d6..3e2ef4532c11f 100644
--- a/pkgs/development/compilers/spirv-llvm-translator/default.nix
+++ b/pkgs/development/compilers/spirv-llvm-translator/default.nix
@@ -112,7 +112,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage    = "https://github.com/KhronosGroup/SPIRV-LLVM-Translator";
-    description = "A tool and a library for bi-directional translation between SPIR-V and LLVM IR";
+    description = "Tool and a library for bi-directional translation between SPIR-V and LLVM IR";
     mainProgram = "llvm-spirv";
     license     = licenses.ncsa;
     platforms   = platforms.unix;
diff --git a/pkgs/development/compilers/stalin/default.nix b/pkgs/development/compilers/stalin/default.nix
index 50603919b8b35..245ebdb0c6cb9 100644
--- a/pkgs/development/compilers/stalin/default.nix
+++ b/pkgs/development/compilers/stalin/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://www.ece.purdue.edu/~qobi/software.html";
     license = lib.licenses.gpl2Plus;
-    description = "An optimizing Scheme compiler";
+    description = "Optimizing Scheme compiler";
 
     maintainers = [ ];
     platforms = ["i686-linux"];  # doesn't want to work on 64-bit platforms
diff --git a/pkgs/development/compilers/swi-prolog/default.nix b/pkgs/development/compilers/swi-prolog/default.nix
index a6049da555784..305c77fbdb8ff 100644
--- a/pkgs/development/compilers/swi-prolog/default.nix
+++ b/pkgs/development/compilers/swi-prolog/default.nix
@@ -79,7 +79,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "https://www.swi-prolog.org";
-    description = "A Prolog compiler and interpreter";
+    description = "Prolog compiler and interpreter";
     license = lib.licenses.bsd2;
     mainProgram = "swipl";
     platforms = lib.platforms.linux ++ lib.optionals (!withGui) lib.platforms.darwin;
diff --git a/pkgs/development/compilers/swift/compiler/default.nix b/pkgs/development/compilers/swift/compiler/default.nix
index cef1358aed735..3576735d9dc71 100644
--- a/pkgs/development/compilers/swift/compiler/default.nix
+++ b/pkgs/development/compilers/swift/compiler/default.nix
@@ -696,7 +696,7 @@ in stdenv.mkDerivation {
   };
 
   meta = {
-    description = "The Swift Programming Language";
+    description = "Swift Programming Language";
     homepage = "https://github.com/apple/swift";
     maintainers = with lib.maintainers; [ dtzWill trepetti dduan trundle stephank ];
     license = lib.licenses.asl20;
diff --git a/pkgs/development/compilers/swift/swiftpm/default.nix b/pkgs/development/compilers/swift/swiftpm/default.nix
index 2f3cb9530cfe5..ff4f5f1e1b10c 100644
--- a/pkgs/development/compilers/swift/swiftpm/default.nix
+++ b/pkgs/development/compilers/swift/swiftpm/default.nix
@@ -455,7 +455,7 @@ in stdenv.mkDerivation (commonAttrs // {
   setupHook = ./setup-hook.sh;
 
   meta = {
-    description = "The Package Manager for the Swift Programming Language";
+    description = "Package Manager for the Swift Programming Language";
     homepage = "https://github.com/apple/swift-package-manager";
     platforms = with lib.platforms; linux ++ darwin;
     license = lib.licenses.asl20;
diff --git a/pkgs/development/compilers/terra/default.nix b/pkgs/development/compilers/terra/default.nix
index ae81adf5f5b0a..908e025bf3322 100644
--- a/pkgs/development/compilers/terra/default.nix
+++ b/pkgs/development/compilers/terra/default.nix
@@ -92,7 +92,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A low-level counterpart to Lua";
+    description = "Low-level counterpart to Lua";
     homepage = "https://terralang.org/";
     platforms = platforms.all;
     maintainers = with maintainers; [ jb55 seylerius thoughtpolice elliottslaughter ];
diff --git a/pkgs/development/compilers/teyjus/default.nix b/pkgs/development/compilers/teyjus/default.nix
index 3a44a136b6e25..a8dc7b319c51f 100644
--- a/pkgs/development/compilers/teyjus/default.nix
+++ b/pkgs/development/compilers/teyjus/default.nix
@@ -20,7 +20,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "An efficient implementation of the Lambda Prolog language";
+    description = "Efficient implementation of the Lambda Prolog language";
     homepage = "https://github.com/teyjus/teyjus";
     changelog = "https://github.com/teyjus/teyjus/releases/tag/v${version}";
     license = lib.licenses.gpl3;
diff --git a/pkgs/development/compilers/tinycc/default.nix b/pkgs/development/compilers/tinycc/default.nix
index a848accf16669..b36eb44229d18 100644
--- a/pkgs/development/compilers/tinycc/default.nix
+++ b/pkgs/development/compilers/tinycc/default.nix
@@ -79,6 +79,11 @@ stdenv.mkDerivation (finalAttrs: {
     configureFlagsArray+=("--elfinterp=$(< $NIX_CC/nix-support/dynamic-linker)")
   '';
 
+  env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isClang [
+    "-Wno-error=implicit-int"
+    "-Wno-error=int-conversion"
+  ]);
+
   # Test segfault for static build
   doCheck = !stdenv.hostPlatform.isStatic;
 
diff --git a/pkgs/development/compilers/tvm/default.nix b/pkgs/development/compilers/tvm/default.nix
index 1f714f1b2dead..97c335cff09f4 100644
--- a/pkgs/development/compilers/tvm/default.nix
+++ b/pkgs/development/compilers/tvm/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://tvm.apache.org/";
-    description = "An End to End Deep Learning Compiler Stack for CPUs, GPUs and accelerators";
+    description = "End to End Deep Learning Compiler Stack for CPUs, GPUs and accelerators";
     license = licenses.asl20;
     platforms = platforms.all;
     maintainers = with maintainers; [ adelbertc ];
diff --git a/pkgs/development/compilers/typescript/default.nix b/pkgs/development/compilers/typescript/default.nix
index 802d31f0d646d..39ccc78ff3b50 100644
--- a/pkgs/development/compilers/typescript/default.nix
+++ b/pkgs/development/compilers/typescript/default.nix
@@ -24,7 +24,7 @@ buildNpmPackage rec {
   };
 
   meta = with lib; {
-    description = "A superset of JavaScript that compiles to clean JavaScript output";
+    description = "Superset of JavaScript that compiles to clean JavaScript output";
     homepage = "https://www.typescriptlang.org/";
     changelog = "https://github.com/microsoft/TypeScript/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/compilers/uasm/default.nix b/pkgs/development/compilers/uasm/default.nix
index ba3e5b03a5849..21d9a2bf5d48e 100644
--- a/pkgs/development/compilers/uasm/default.nix
+++ b/pkgs/development/compilers/uasm/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.terraspace.co.uk/uasm.html";
-    description = "A free MASM-compatible assembler based on JWasm";
+    description = "Free MASM-compatible assembler based on JWasm";
     mainProgram = "uasm";
     platforms = platforms.unix;
     maintainers = with maintainers; [ thiagokokada ];
diff --git a/pkgs/development/compilers/unison/default.nix b/pkgs/development/compilers/unison/default.nix
index f685ab2405f64..587ca9d7f35e0 100644
--- a/pkgs/development/compilers/unison/default.nix
+++ b/pkgs/development/compilers/unison/default.nix
@@ -13,17 +13,17 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "unison-code-manager";
-  version = "0.5.20";
+  version = "0.5.22";
 
   src = if stdenv.isDarwin then
     fetchurl {
       url = "https://github.com/unisonweb/unison/releases/download/release/${finalAttrs.version}/ucm-macos.tar.gz";
-      hash = "sha256-jhI3qy2ov8bf3l1n0wsslWT70LDeQ6sGNSH62VFJ5cE=";
+      hash = "sha256-Exgi0eKk+ZngpnbfY/btHf+uiXcmummnWKfmCUESWgc=";
     }
   else
     fetchurl {
       url = "https://github.com/unisonweb/unison/releases/download/release/${finalAttrs.version}/ucm-linux.tar.gz";
-      hash = "sha256-MOm0RsMFWGik2OL2MPkgmHqKYNO28fkZHVJ/6P3aIww=";
+      hash = "sha256-EWfyqaFtGJJ5GE0mRTtNC9hHOzbqG9MsvRh5sFq5pRY=";
     };
 
   # The tarball is just the prebuilt binary, in the archive root.
diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/default.nix
index a7041bfc6a299..1b880b61a05a1 100644
--- a/pkgs/development/compilers/vala/default.nix
+++ b/pkgs/development/compilers/vala/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, fetchpatch, pkg-config, flex, bison, libxslt, autoconf, autoreconfHook
+{ stdenv, lib, fetchurl, pkg-config, flex, bison, libxslt, autoconf, autoreconfHook
 , gnome, graphviz, glib, libiconv, libintl, libtool, expat, substituteAll, vala, gobject-introspection
 }:
 
diff --git a/pkgs/development/compilers/x11basic/default.nix b/pkgs/development/compilers/x11basic/default.nix
index 3ce548c9b4832..db1a0bc3ba828 100644
--- a/pkgs/development/compilers/x11basic/default.nix
+++ b/pkgs/development/compilers/x11basic/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://x11-basic.sourceforge.net/";
-    description = "A Basic interpreter and compiler with graphics capabilities";
+    description = "Basic interpreter and compiler with graphics capabilities";
     license = licenses.gpl2;
     maintainers = with maintainers; [ edwtjo ];
     platforms = platforms.unix;
diff --git a/pkgs/development/compilers/yap/default.nix b/pkgs/development/compilers/yap/default.nix
index 7828d0e9b2590..db7d9b05b7fbb 100644
--- a/pkgs/development/compilers/yap/default.nix
+++ b/pkgs/development/compilers/yap/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     # the linux 32 bit build fails.
     broken = (stdenv.isLinux && stdenv.isAarch64) || !stdenv.is64bit;
     homepage = "http://www.dcc.fc.up.pt/~vsc/Yap/";
-    description = "A ISO-compatible high-performance Prolog compiler";
+    description = "ISO-compatible high-performance Prolog compiler";
     license = lib.licenses.artistic2;
 
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/compilers/yosys/default.nix b/pkgs/development/compilers/yosys/default.nix
index ee8fe6cee576f..3205f5b22dcda 100644
--- a/pkgs/development/compilers/yosys/default.nix
+++ b/pkgs/development/compilers/yosys/default.nix
@@ -171,6 +171,6 @@ in stdenv.mkDerivation (finalAttrs: {
     homepage    = "https://yosyshq.net/yosys/";
     license     = licenses.isc;
     platforms   = platforms.all;
-    maintainers = with maintainers; [ shell thoughtpolice emily Luflosi ];
+    maintainers = with maintainers; [ shell thoughtpolice Luflosi ];
   };
 })
diff --git a/pkgs/development/compilers/yosys/plugins/synlig.nix b/pkgs/development/compilers/yosys/plugins/synlig.nix
index 665421af21f3f..0c6fc5e3f89ef 100644
--- a/pkgs/development/compilers/yosys/plugins/synlig.nix
+++ b/pkgs/development/compilers/yosys/plugins/synlig.nix
@@ -97,5 +97,6 @@ stdenv.mkDerivation (finalAttrs: {
     license     = licenses.asl20;
     maintainers = with maintainers; [ hzeller ];
     platforms   = platforms.all;
+    broken      = versionAtLeast yosys.version "0.39";
   };
 })
diff --git a/pkgs/development/compilers/zig/0.10.nix b/pkgs/development/compilers/zig/0.10.nix
deleted file mode 100644
index d02b9ff1c976b..0000000000000
--- a/pkgs/development/compilers/zig/0.10.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, cmake
-, llvmPackages
-, libxml2
-, zlib
-, coreutils
-, callPackage
-}@args:
-
-import ./generic.nix args {
-  version = "0.10.1";
-
-  hash = "sha256-69QIkkKzApOGfrBdgtmxFMDytRkSh+0YiaJQPbXsBeo=";
-
-  outputs = [ "out" "doc" ];
-
-  patches = [
-    # Backport alignment related panics from zig-master to 0.10.
-    # Upstream issue: https://github.com/ziglang/zig/issues/14559
-    ./002-0.10-macho-fixes.patch
-  ];
-
-  cmakeFlags = [
-    # file RPATH_CHANGE could not write new RPATH
-    "-DCMAKE_SKIP_BUILD_RPATH=ON"
-
-    # always link against static build of LLVM
-    "-DZIG_STATIC_LLVM=ON"
-
-    # ensure determinism in the compiler build
-    "-DZIG_TARGET_MCPU=baseline"
-  ];
-
-  postBuild = ''
-    ./zig2 run ../doc/docgen.zig -- ./zig2 ../doc/langref.html.in langref.html
-  '';
-
-  postInstall = ''
-    install -Dm644 -t $doc/share/doc/zig-$version/html ./langref.html
-  '';
-}
diff --git a/pkgs/development/compilers/zig/002-0.10-macho-fixes.patch b/pkgs/development/compilers/zig/0.10/001-0.10-macho-fixes.patch
index 95f0bdf701e29..95f0bdf701e29 100644
--- a/pkgs/development/compilers/zig/002-0.10-macho-fixes.patch
+++ b/pkgs/development/compilers/zig/0.10/001-0.10-macho-fixes.patch
diff --git a/pkgs/development/compilers/zig/0.10/default.nix b/pkgs/development/compilers/zig/0.10/default.nix
new file mode 100644
index 0000000000000..170edafa819cf
--- /dev/null
+++ b/pkgs/development/compilers/zig/0.10/default.nix
@@ -0,0 +1,109 @@
+{
+  lib,
+  callPackage,
+  cmake,
+  coreutils,
+  fetchFromGitHub,
+  libxml2,
+  llvmPackages,
+  stdenv,
+  testers,
+  zlib,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "zig";
+  version = "0.10.1";
+
+  src = fetchFromGitHub {
+    owner = "ziglang";
+    repo = "zig";
+    rev = finalAttrs.version;
+    hash = "sha256-69QIkkKzApOGfrBdgtmxFMDytRkSh+0YiaJQPbXsBeo=";
+  };
+
+  patches = [
+    # Backport alignment related panics from zig-master to 0.10.
+    # Upstream issue: https://github.com/ziglang/zig/issues/14559
+    ./001-0.10-macho-fixes.patch
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    (lib.getDev llvmPackages.llvm)
+  ];
+
+  buildInputs =
+    [
+      libxml2
+      zlib
+    ]
+    ++ (with llvmPackages; [
+      libclang
+      lld
+      llvm
+    ]);
+
+  outputs = [
+    "out"
+    "doc"
+  ];
+
+  cmakeFlags = [
+    # file RPATH_CHANGE could not write new RPATH
+    (lib.cmakeBool "CMAKE_SKIP_BUILD_RPATH" true)
+    # always link against static build of LLVM
+    (lib.cmakeBool "ZIG_STATIC_LLVM" true)
+    # ensure determinism in the compiler build
+    (lib.cmakeFeature "ZIG_TARGET_MCPU" "baseline")
+  ];
+
+  env.ZIG_GLOBAL_CACHE_DIR = "$TMPDIR/zig-cache";
+
+  doInstallCheck = true;
+
+  strictDeps = true;
+
+  # Zig's build looks at /usr/bin/env to find dynamic linking info. This doesn't
+  # work in Nix's sandbox. Use env from our coreutils instead.
+  postPatch = ''
+    substituteInPlace lib/std/zig/system/NativeTargetInfo.zig \
+      --replace "/usr/bin/env" "${lib.getExe' coreutils "env"}"
+  '';
+
+  postBuild = ''
+    ./zig2 run ../doc/docgen.zig -- ./zig2 ../doc/langref.html.in langref.html
+  '';
+
+  postInstall = ''
+    install -Dm644 -t $doc/share/doc/zig-$version/html ./langref.html
+  '';
+
+  installCheckPhase = ''
+    runHook preInstallCheck
+
+    $out/bin/zig test --cache-dir "$TMPDIR/zig-test-cache" -I $src/test $src/test/behavior.zig
+
+    runHook postInstallCheck
+  '';
+
+  passthru = {
+    hook = callPackage ./hook.nix { zig = finalAttrs.finalPackage; };
+    tests = {
+      version = testers.testVersion {
+        package = finalAttrs.finalPackage;
+        command = "zig version";
+      };
+    };
+  };
+
+  meta = {
+    description = "General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software";
+    homepage = "https://ziglang.org/";
+    changelog = "https://ziglang.org/download/${finalAttrs.version}/release-notes.html";
+    license = lib.licenses.mit;
+    mainProgram = "zig";
+    maintainers = with lib.maintainers; [ andrewrk ] ++ lib.teams.zig.members;
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/pkgs/development/compilers/zig/0.10/hook.nix b/pkgs/development/compilers/zig/0.10/hook.nix
new file mode 100644
index 0000000000000..1d3439b1af620
--- /dev/null
+++ b/pkgs/development/compilers/zig/0.10/hook.nix
@@ -0,0 +1,47 @@
+{
+  lib,
+  makeSetupHook,
+  zig,
+}:
+
+makeSetupHook {
+  name = "zig-hook";
+
+  propagatedBuildInputs = [ zig ];
+
+  substitutions = {
+    # This zig_default_flags below is meant to avoid CPU feature impurity in
+    # Nixpkgs. However, this flagset is "unstable": it is specifically meant to
+    # be controlled by the upstream development team - being up to that team
+    # exposing or not that flags to the outside (especially the package manager
+    # teams).
+
+    # Because of this hurdle, @andrewrk from Zig Software Foundation proposed
+    # some solutions for this issue. Hopefully they will be implemented in
+    # future releases of Zig. When this happens, this flagset should be
+    # revisited accordingly.
+
+    # Below are some useful links describing the discovery process of this 'bug'
+    # in Nixpkgs:
+
+    # https://github.com/NixOS/nixpkgs/issues/169461
+    # https://github.com/NixOS/nixpkgs/issues/185644
+    # https://github.com/NixOS/nixpkgs/pull/197046
+    # https://github.com/NixOS/nixpkgs/pull/241741#issuecomment-1624227485
+    # https://github.com/ziglang/zig/issues/14281#issuecomment-1624220653
+
+    zig_default_flags = [
+      "-Dcpu=baseline"
+      "-Drelease-safe=true"
+    ];
+  };
+
+  passthru = {
+    inherit zig;
+  };
+
+  meta = {
+    description = "Setup hook for using the Zig compiler in Nixpkgs";
+    inherit (zig.meta) maintainers platforms broken;
+  };
+} ./setup-hook.sh
diff --git a/pkgs/development/compilers/zig/0.10/setup-hook.sh b/pkgs/development/compilers/zig/0.10/setup-hook.sh
new file mode 100644
index 0000000000000..689ebec8a3077
--- /dev/null
+++ b/pkgs/development/compilers/zig/0.10/setup-hook.sh
@@ -0,0 +1,70 @@
+# shellcheck shell=bash disable=SC2154,SC2086
+
+readonly zigDefaultFlagsArray=(@zig_default_flags@)
+
+function zigSetGlobalCacheDir {
+    ZIG_GLOBAL_CACHE_DIR=$(mktemp -d)
+    export ZIG_GLOBAL_CACHE_DIR
+}
+
+function zigBuildPhase {
+    runHook preBuild
+
+    local flagsArray=(
+        "${zigDefaultFlagsArray[@]}"
+        $zigBuildFlags "${zigBuildFlagsArray[@]}"
+    )
+
+    echoCmd 'zig build flags' "${flagsArray[@]}"
+    zig build "${flagsArray[@]}"
+
+    runHook postBuild
+}
+
+function zigCheckPhase {
+    runHook preCheck
+
+    local flagsArray=(
+        "${zigDefaultFlagsArray[@]}"
+        $zigCheckFlags "${zigCheckFlagsArray[@]}"
+    )
+
+    echoCmd 'zig check flags' "${flagsArray[@]}"
+    zig build test "${flagsArray[@]}"
+
+    runHook postCheck
+}
+
+function zigInstallPhase {
+    runHook preInstall
+
+    local flagsArray=(
+        "${zigDefaultFlagsArray[@]}"
+        $zigBuildFlags "${zigBuildFlagsArray[@]}"
+        $zigInstallFlags "${zigInstallFlagsArray[@]}"
+    )
+
+    if [ -z "${dontAddPrefix-}" ]; then
+        # Zig does not recognize `--prefix=/dir/`, only `--prefix /dir/`
+        flagsArray+=("${prefixKey:---prefix}" "$prefix")
+    fi
+
+    echoCmd 'zig install flags' "${flagsArray[@]}"
+    zig build install "${flagsArray[@]}"
+
+    runHook postInstall
+}
+
+addEnvHooks "$targetOffset" zigSetGlobalCacheDir
+
+if [ -z "${dontUseZigBuild-}" ] && [ -z "${buildPhase-}" ]; then
+    buildPhase=zigBuildPhase
+fi
+
+if [ -z "${dontUseZigCheck-}" ] && [ -z "${checkPhase-}" ]; then
+    checkPhase=zigCheckPhase
+fi
+
+if [ -z "${dontUseZigInstall-}" ] && [ -z "${installPhase-}" ]; then
+    installPhase=zigInstallPhase
+fi
diff --git a/pkgs/development/compilers/zig/0.11.nix b/pkgs/development/compilers/zig/0.11.nix
deleted file mode 100644
index b393f42c65136..0000000000000
--- a/pkgs/development/compilers/zig/0.11.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, cmake
-, llvmPackages
-, libxml2
-, zlib
-, coreutils
-, callPackage
-}@args:
-
-import ./generic.nix args {
-  version = "0.11.0";
-
-  hash = "sha256-iuU1fzkbJxI+0N1PiLQM013Pd1bzrgqkbIyTxo5gB2I=";
-
-  outputs = [ "out" "doc" ];
-
-  cmakeFlags = [
-    # file RPATH_CHANGE could not write new RPATH
-    "-DCMAKE_SKIP_BUILD_RPATH=ON"
-
-    # always link against static build of LLVM
-    "-DZIG_STATIC_LLVM=ON"
-
-    # ensure determinism in the compiler build
-    "-DZIG_TARGET_MCPU=baseline"
-  ];
-
-  postBuild = ''
-    stage3/bin/zig run ../tools/docgen.zig -- ../doc/langref.html.in langref.html --zig $PWD/stage3/bin/zig
-  '';
-
-  postInstall = ''
-    install -Dm444 -t $doc/share/doc/zig-$version/html langref.html
-  '';
-}
diff --git a/pkgs/development/compilers/zig/0.11/default.nix b/pkgs/development/compilers/zig/0.11/default.nix
new file mode 100644
index 0000000000000..0f19f455cbb0f
--- /dev/null
+++ b/pkgs/development/compilers/zig/0.11/default.nix
@@ -0,0 +1,103 @@
+{
+  lib,
+  callPackage,
+  cmake,
+  coreutils,
+  fetchFromGitHub,
+  libxml2,
+  llvmPackages,
+  stdenv,
+  testers,
+  zlib,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "zig";
+  version = "0.11.0";
+
+  src = fetchFromGitHub {
+    owner = "ziglang";
+    repo = "zig";
+    rev = finalAttrs.version;
+    hash = "sha256-iuU1fzkbJxI+0N1PiLQM013Pd1bzrgqkbIyTxo5gB2I=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    (lib.getDev llvmPackages.llvm)
+  ];
+
+  buildInputs =
+    [
+      libxml2
+      zlib
+    ]
+    ++ (with llvmPackages; [
+      libclang
+      lld
+      llvm
+    ]);
+
+  outputs = [
+    "out"
+    "doc"
+  ];
+
+  cmakeFlags = [
+    # file RPATH_CHANGE could not write new RPATH
+    (lib.cmakeBool "CMAKE_SKIP_BUILD_RPATH" true)
+    # ensure determinism in the compiler build
+    (lib.cmakeFeature "ZIG_TARGET_MCPU" "baseline")
+    # always link against static build of LLVM
+    (lib.cmakeBool "ZIG_STATIC_LLVM" true)
+  ];
+
+  env.ZIG_GLOBAL_CACHE_DIR = "$TMPDIR/zig-cache";
+
+  doInstallCheck = true;
+
+  strictDeps = true;
+
+  # Zig's build looks at /usr/bin/env to find dynamic linking info. This doesn't
+  # work in Nix's sandbox. Use env from our coreutils instead.
+  postPatch = ''
+    substituteInPlace lib/std/zig/system/NativeTargetInfo.zig \
+      --replace "/usr/bin/env" "${lib.getExe' coreutils "env"}"
+  '';
+
+  postBuild = ''
+    stage3/bin/zig run ../tools/docgen.zig -- ../doc/langref.html.in langref.html --zig $PWD/stage3/bin/zig
+  '';
+
+  postInstall = ''
+    install -Dm444 -t $doc/share/doc/zig-$version/html langref.html
+  '';
+
+  installCheckPhase = ''
+    runHook preInstallCheck
+
+    $out/bin/zig test --cache-dir "$TMPDIR/zig-test-cache" -I $src/test $src/test/behavior.zig
+
+    runHook postInstallCheck
+  '';
+
+  passthru = {
+    hook = callPackage ./hook.nix { zig = finalAttrs.finalPackage; };
+    tests = {
+      version = testers.testVersion {
+        package = finalAttrs.finalPackage;
+        command = "zig version";
+      };
+    };
+  };
+
+  meta = {
+    description = "General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software";
+    homepage = "https://ziglang.org/";
+    changelog = "https://ziglang.org/download/${finalAttrs.version}/release-notes.html";
+    license = lib.licenses.mit;
+    mainProgram = "zig";
+    maintainers = with lib.maintainers; [ andrewrk ] ++ lib.teams.zig.members;
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/pkgs/development/compilers/zig/0.11/hook.nix b/pkgs/development/compilers/zig/0.11/hook.nix
new file mode 100644
index 0000000000000..fb0e1aa564d15
--- /dev/null
+++ b/pkgs/development/compilers/zig/0.11/hook.nix
@@ -0,0 +1,47 @@
+{
+  lib,
+  makeSetupHook,
+  zig,
+}:
+
+makeSetupHook {
+  name = "zig-hook";
+
+  propagatedBuildInputs = [ zig ];
+
+  substitutions = {
+    # This zig_default_flags below is meant to avoid CPU feature impurity in
+    # Nixpkgs. However, this flagset is "unstable": it is specifically meant to
+    # be controlled by the upstream development team - being up to that team
+    # exposing or not that flags to the outside (especially the package manager
+    # teams).
+
+    # Because of this hurdle, @andrewrk from Zig Software Foundation proposed
+    # some solutions for this issue. Hopefully they will be implemented in
+    # future releases of Zig. When this happens, this flagset should be
+    # revisited accordingly.
+
+    # Below are some useful links describing the discovery process of this 'bug'
+    # in Nixpkgs:
+
+    # https://github.com/NixOS/nixpkgs/issues/169461
+    # https://github.com/NixOS/nixpkgs/issues/185644
+    # https://github.com/NixOS/nixpkgs/pull/197046
+    # https://github.com/NixOS/nixpkgs/pull/241741#issuecomment-1624227485
+    # https://github.com/ziglang/zig/issues/14281#issuecomment-1624220653
+
+    zig_default_flags = [
+      "-Dcpu=baseline"
+      "-Doptimize=ReleaseSafe"
+    ];
+  };
+
+  passthru = {
+    inherit zig;
+  };
+
+  meta = {
+    description = "Setup hook for using the Zig compiler in Nixpkgs";
+    inherit (zig.meta) maintainers platforms broken;
+  };
+} ./setup-hook.sh
diff --git a/pkgs/development/compilers/zig/0.11/setup-hook.sh b/pkgs/development/compilers/zig/0.11/setup-hook.sh
new file mode 100644
index 0000000000000..689ebec8a3077
--- /dev/null
+++ b/pkgs/development/compilers/zig/0.11/setup-hook.sh
@@ -0,0 +1,70 @@
+# shellcheck shell=bash disable=SC2154,SC2086
+
+readonly zigDefaultFlagsArray=(@zig_default_flags@)
+
+function zigSetGlobalCacheDir {
+    ZIG_GLOBAL_CACHE_DIR=$(mktemp -d)
+    export ZIG_GLOBAL_CACHE_DIR
+}
+
+function zigBuildPhase {
+    runHook preBuild
+
+    local flagsArray=(
+        "${zigDefaultFlagsArray[@]}"
+        $zigBuildFlags "${zigBuildFlagsArray[@]}"
+    )
+
+    echoCmd 'zig build flags' "${flagsArray[@]}"
+    zig build "${flagsArray[@]}"
+
+    runHook postBuild
+}
+
+function zigCheckPhase {
+    runHook preCheck
+
+    local flagsArray=(
+        "${zigDefaultFlagsArray[@]}"
+        $zigCheckFlags "${zigCheckFlagsArray[@]}"
+    )
+
+    echoCmd 'zig check flags' "${flagsArray[@]}"
+    zig build test "${flagsArray[@]}"
+
+    runHook postCheck
+}
+
+function zigInstallPhase {
+    runHook preInstall
+
+    local flagsArray=(
+        "${zigDefaultFlagsArray[@]}"
+        $zigBuildFlags "${zigBuildFlagsArray[@]}"
+        $zigInstallFlags "${zigInstallFlagsArray[@]}"
+    )
+
+    if [ -z "${dontAddPrefix-}" ]; then
+        # Zig does not recognize `--prefix=/dir/`, only `--prefix /dir/`
+        flagsArray+=("${prefixKey:---prefix}" "$prefix")
+    fi
+
+    echoCmd 'zig install flags' "${flagsArray[@]}"
+    zig build install "${flagsArray[@]}"
+
+    runHook postInstall
+}
+
+addEnvHooks "$targetOffset" zigSetGlobalCacheDir
+
+if [ -z "${dontUseZigBuild-}" ] && [ -z "${buildPhase-}" ]; then
+    buildPhase=zigBuildPhase
+fi
+
+if [ -z "${dontUseZigCheck-}" ] && [ -z "${checkPhase-}" ]; then
+    checkPhase=zigCheckPhase
+fi
+
+if [ -z "${dontUseZigInstall-}" ] && [ -z "${installPhase-}" ]; then
+    installPhase=zigInstallPhase
+fi
diff --git a/pkgs/development/compilers/zig/0.12.nix b/pkgs/development/compilers/zig/0.12.nix
deleted file mode 100644
index e234b600bc227..0000000000000
--- a/pkgs/development/compilers/zig/0.12.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, cmake
-, llvmPackages
-, libxml2
-, zlib
-, coreutils
-, callPackage
-}@args:
-
-import ./generic.nix args {
-  version = "0.12.0";
-
-  hash = "sha256-RNZiUZtaKXoab5kFrDij6YCAospeVvlLWheTc3FGMks=";
-
-  outputs = [ "out" "doc" ];
-
-  cmakeFlags = [
-    # file RPATH_CHANGE could not write new RPATH
-    (lib.cmakeBool "CMAKE_SKIP_BUILD_RPATH" true)
-
-    # always link against static build of LLVM
-    (lib.cmakeBool "ZIG_STATIC_LLVM" true)
-
-    # ensure determinism in the compiler build
-    (lib.cmakeFeature "ZIG_TARGET_MCPU" "baseline")
-  ];
-
-  postBuild = ''
-    stage3/bin/zig run ../tools/docgen.zig -- ../doc/langref.html.in langref.html --zig $PWD/stage3/bin/zig
-  '';
-
-  postInstall = ''
-    install -Dm444 langref.html -t $doc/share/doc/zig-$version/html
-  '';
-}
diff --git a/pkgs/development/compilers/zig/0.12/default.nix b/pkgs/development/compilers/zig/0.12/default.nix
new file mode 100644
index 0000000000000..092b416c7903e
--- /dev/null
+++ b/pkgs/development/compilers/zig/0.12/default.nix
@@ -0,0 +1,105 @@
+{
+  lib,
+  callPackage,
+  cmake,
+  coreutils,
+  fetchFromGitHub,
+  libxml2,
+  llvmPackages,
+  stdenv,
+  testers,
+  zlib,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "zig";
+  version = "0.12.1";
+
+  src = fetchFromGitHub {
+    owner = "ziglang";
+    repo = "zig";
+    rev = finalAttrs.version;
+    hash = "sha256-C56jyVf16Co/XCloMLSRsbG9r/gBc8mzCdeEMHV2T2s=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    (lib.getDev llvmPackages.llvm)
+  ];
+
+  buildInputs =
+    [
+      libxml2
+      zlib
+    ]
+    ++ (with llvmPackages; [
+      libclang
+      lld
+      llvm
+    ]);
+
+  outputs = [
+    "out"
+    "doc"
+  ];
+
+  cmakeFlags = [
+    # file RPATH_CHANGE could not write new RPATH
+    (lib.cmakeBool "CMAKE_SKIP_BUILD_RPATH" true)
+    # ensure determinism in the compiler build
+    (lib.cmakeFeature "ZIG_TARGET_MCPU" "baseline")
+    # always link against static build of LLVM
+    (lib.cmakeBool "ZIG_STATIC_LLVM" true)
+  ];
+
+  env.ZIG_GLOBAL_CACHE_DIR = "$TMPDIR/zig-cache";
+
+  doInstallCheck = true;
+
+  # strictDeps breaks zig when clang is being used.
+  # https://github.com/NixOS/nixpkgs/issues/317055#issuecomment-2148438395
+  strictDeps = !stdenv.cc.isClang;
+
+  # Zig's build looks at /usr/bin/env to find dynamic linking info. This doesn't
+  # work in Nix's sandbox. Use env from our coreutils instead.
+  postPatch = ''
+    substituteInPlace lib/std/zig/system.zig \
+      --replace "/usr/bin/env" "${lib.getExe' coreutils "env"}"
+  '';
+
+  postBuild = ''
+    stage3/bin/zig run ../tools/docgen.zig -- ../doc/langref.html.in langref.html --zig $PWD/stage3/bin/zig
+  '';
+
+  postInstall = ''
+    install -Dm444 langref.html -t $doc/share/doc/zig-${finalAttrs.version}/html
+  '';
+
+  installCheckPhase = ''
+    runHook preInstallCheck
+
+    $out/bin/zig test --cache-dir "$TMPDIR/zig-test-cache" -I $src/test $src/test/behavior.zig
+
+    runHook postInstallCheck
+  '';
+
+  passthru = {
+    hook = callPackage ./hook.nix { zig = finalAttrs.finalPackage; };
+    tests = {
+      version = testers.testVersion {
+        package = finalAttrs.finalPackage;
+        command = "zig version";
+      };
+    };
+  };
+
+  meta = {
+    description = "General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software";
+    changelog = "https://ziglang.org/download/${finalAttrs.version}/release-notes.html";
+    homepage = "https://ziglang.org/";
+    license = lib.licenses.mit;
+    mainProgram = "zig";
+    maintainers = with lib.maintainers; [ andrewrk ] ++ lib.teams.zig.members;
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/pkgs/development/compilers/zig/0.12/hook.nix b/pkgs/development/compilers/zig/0.12/hook.nix
new file mode 100644
index 0000000000000..8d3e6206d155e
--- /dev/null
+++ b/pkgs/development/compilers/zig/0.12/hook.nix
@@ -0,0 +1,47 @@
+{
+  lib,
+  makeSetupHook,
+  zig,
+}:
+
+makeSetupHook {
+  name = "zig-hook";
+
+  propagatedBuildInputs = [ zig ];
+
+  substitutions = {
+    # This zig_default_flags below is meant to avoid CPU feature impurity in
+    # Nixpkgs. However, this flagset is "unstable": it is specifically meant to
+    # be controlled by the upstream development team - being up to that team
+    # exposing or not that flags to the outside (especially the package manager
+    # teams).
+
+    # Because of this hurdle, @andrewrk from Zig Software Foundation proposed
+    # some solutions for this issue. Hopefully they will be implemented in
+    # future releases of Zig. When this happens, this flagset should be
+    # revisited accordingly.
+
+    # Below are some useful links describing the discovery process of this 'bug'
+    # in Nixpkgs:
+
+    # https://github.com/NixOS/nixpkgs/issues/169461
+    # https://github.com/NixOS/nixpkgs/issues/185644
+    # https://github.com/NixOS/nixpkgs/pull/197046
+    # https://github.com/NixOS/nixpkgs/pull/241741#issuecomment-1624227485
+    # https://github.com/ziglang/zig/issues/14281#issuecomment-1624220653
+
+    zig_default_flags = [
+      "-Dcpu=baseline"
+      "--release=safe"
+    ];
+  };
+
+  passthru = {
+    inherit zig;
+  };
+
+  meta = {
+    description = "Setup hook for using the Zig compiler in Nixpkgs";
+    inherit (zig.meta) maintainers platforms broken;
+  };
+} ./setup-hook.sh
diff --git a/pkgs/development/compilers/zig/0.12/setup-hook.sh b/pkgs/development/compilers/zig/0.12/setup-hook.sh
new file mode 100644
index 0000000000000..689ebec8a3077
--- /dev/null
+++ b/pkgs/development/compilers/zig/0.12/setup-hook.sh
@@ -0,0 +1,70 @@
+# shellcheck shell=bash disable=SC2154,SC2086
+
+readonly zigDefaultFlagsArray=(@zig_default_flags@)
+
+function zigSetGlobalCacheDir {
+    ZIG_GLOBAL_CACHE_DIR=$(mktemp -d)
+    export ZIG_GLOBAL_CACHE_DIR
+}
+
+function zigBuildPhase {
+    runHook preBuild
+
+    local flagsArray=(
+        "${zigDefaultFlagsArray[@]}"
+        $zigBuildFlags "${zigBuildFlagsArray[@]}"
+    )
+
+    echoCmd 'zig build flags' "${flagsArray[@]}"
+    zig build "${flagsArray[@]}"
+
+    runHook postBuild
+}
+
+function zigCheckPhase {
+    runHook preCheck
+
+    local flagsArray=(
+        "${zigDefaultFlagsArray[@]}"
+        $zigCheckFlags "${zigCheckFlagsArray[@]}"
+    )
+
+    echoCmd 'zig check flags' "${flagsArray[@]}"
+    zig build test "${flagsArray[@]}"
+
+    runHook postCheck
+}
+
+function zigInstallPhase {
+    runHook preInstall
+
+    local flagsArray=(
+        "${zigDefaultFlagsArray[@]}"
+        $zigBuildFlags "${zigBuildFlagsArray[@]}"
+        $zigInstallFlags "${zigInstallFlagsArray[@]}"
+    )
+
+    if [ -z "${dontAddPrefix-}" ]; then
+        # Zig does not recognize `--prefix=/dir/`, only `--prefix /dir/`
+        flagsArray+=("${prefixKey:---prefix}" "$prefix")
+    fi
+
+    echoCmd 'zig install flags' "${flagsArray[@]}"
+    zig build install "${flagsArray[@]}"
+
+    runHook postInstall
+}
+
+addEnvHooks "$targetOffset" zigSetGlobalCacheDir
+
+if [ -z "${dontUseZigBuild-}" ] && [ -z "${buildPhase-}" ]; then
+    buildPhase=zigBuildPhase
+fi
+
+if [ -z "${dontUseZigCheck-}" ] && [ -z "${checkPhase-}" ]; then
+    checkPhase=zigCheckPhase
+fi
+
+if [ -z "${dontUseZigInstall-}" ] && [ -z "${installPhase-}" ]; then
+    installPhase=zigInstallPhase
+fi
diff --git a/pkgs/development/compilers/zig/0.13/default.nix b/pkgs/development/compilers/zig/0.13/default.nix
new file mode 100644
index 0000000000000..bdc01ba47f9ff
--- /dev/null
+++ b/pkgs/development/compilers/zig/0.13/default.nix
@@ -0,0 +1,105 @@
+{
+  lib,
+  callPackage,
+  cmake,
+  coreutils,
+  fetchFromGitHub,
+  libxml2,
+  llvmPackages,
+  stdenv,
+  testers,
+  zlib,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "zig";
+  version = "0.13.0";
+
+  src = fetchFromGitHub {
+    owner = "ziglang";
+    repo = "zig";
+    rev = finalAttrs.version;
+    hash = "sha256-5qSiTq+UWGOwjDVZMIrAt2cDKHkyNPBSAEjpRQUByFM=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    (lib.getDev llvmPackages.llvm)
+  ];
+
+  buildInputs =
+    [
+      libxml2
+      zlib
+    ]
+    ++ (with llvmPackages; [
+      libclang
+      lld
+      llvm
+    ]);
+
+  outputs = [
+    "out"
+    "doc"
+  ];
+
+  cmakeFlags = [
+    # file RPATH_CHANGE could not write new RPATH
+    (lib.cmakeBool "CMAKE_SKIP_BUILD_RPATH" true)
+    # ensure determinism in the compiler build
+    (lib.cmakeFeature "ZIG_TARGET_MCPU" "baseline")
+    # always link against static build of LLVM
+    (lib.cmakeBool "ZIG_STATIC_LLVM" true)
+  ];
+
+  env.ZIG_GLOBAL_CACHE_DIR = "$TMPDIR/zig-cache";
+
+  doInstallCheck = true;
+
+  # strictDeps breaks zig when clang is being used.
+  # https://github.com/NixOS/nixpkgs/issues/317055#issuecomment-2148438395
+  strictDeps = !stdenv.cc.isClang;
+
+  # Zig's build looks at /usr/bin/env to find dynamic linking info. This doesn't
+  # work in Nix's sandbox. Use env from our coreutils instead.
+  postPatch = ''
+    substituteInPlace lib/std/zig/system.zig \
+      --replace "/usr/bin/env" "${lib.getExe' coreutils "env"}"
+  '';
+
+  postBuild = ''
+    stage3/bin/zig build langref
+  '';
+
+  postInstall = ''
+    install -Dm444 ../zig-out/doc/langref.html -t $doc/share/doc/zig-${finalAttrs.version}/html
+  '';
+
+  installCheckPhase = ''
+    runHook preInstallCheck
+
+    $out/bin/zig test --cache-dir "$TMPDIR/zig-test-cache" -I $src/test $src/test/behavior.zig
+
+    runHook postInstallCheck
+  '';
+
+  passthru = {
+    hook = callPackage ./hook.nix { zig = finalAttrs.finalPackage; };
+    tests = {
+      version = testers.testVersion {
+        package = finalAttrs.finalPackage;
+        command = "zig version";
+      };
+    };
+  };
+
+  meta = {
+    description = "General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software";
+    changelog = "https://ziglang.org/download/${finalAttrs.version}/release-notes.html";
+    homepage = "https://ziglang.org/";
+    license = lib.licenses.mit;
+    mainProgram = "zig";
+    maintainers = with lib.maintainers; [ andrewrk ] ++ lib.teams.zig.members;
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/pkgs/development/compilers/zig/0.13/hook.nix b/pkgs/development/compilers/zig/0.13/hook.nix
new file mode 100644
index 0000000000000..a56b1a21e961d
--- /dev/null
+++ b/pkgs/development/compilers/zig/0.13/hook.nix
@@ -0,0 +1,32 @@
+{
+  lib,
+  makeSetupHook,
+  zig,
+}:
+
+makeSetupHook {
+  name = "zig-hook";
+
+  propagatedBuildInputs = [ zig ];
+
+  substitutions = {
+    # This zig_default_flags below is meant to avoid CPU feature impurity in
+    # Nixpkgs. However, this flagset is "unstable": it is specifically meant to
+    # be controlled by the upstream development team - being up to that team
+    # exposing or not that flags to the outside (especially the package manager
+    # teams).
+    zig_default_flags = [
+      "-Dcpu=baseline"
+      "--release=safe"
+    ];
+  };
+
+  passthru = {
+    inherit zig;
+  };
+
+  meta = {
+    description = "A setup hook for using the Zig compiler in Nixpkgs";
+    inherit (zig.meta) maintainers platforms broken;
+  };
+} ./setup-hook.sh
diff --git a/pkgs/development/compilers/zig/0.13/setup-hook.sh b/pkgs/development/compilers/zig/0.13/setup-hook.sh
new file mode 100644
index 0000000000000..689ebec8a3077
--- /dev/null
+++ b/pkgs/development/compilers/zig/0.13/setup-hook.sh
@@ -0,0 +1,70 @@
+# shellcheck shell=bash disable=SC2154,SC2086
+
+readonly zigDefaultFlagsArray=(@zig_default_flags@)
+
+function zigSetGlobalCacheDir {
+    ZIG_GLOBAL_CACHE_DIR=$(mktemp -d)
+    export ZIG_GLOBAL_CACHE_DIR
+}
+
+function zigBuildPhase {
+    runHook preBuild
+
+    local flagsArray=(
+        "${zigDefaultFlagsArray[@]}"
+        $zigBuildFlags "${zigBuildFlagsArray[@]}"
+    )
+
+    echoCmd 'zig build flags' "${flagsArray[@]}"
+    zig build "${flagsArray[@]}"
+
+    runHook postBuild
+}
+
+function zigCheckPhase {
+    runHook preCheck
+
+    local flagsArray=(
+        "${zigDefaultFlagsArray[@]}"
+        $zigCheckFlags "${zigCheckFlagsArray[@]}"
+    )
+
+    echoCmd 'zig check flags' "${flagsArray[@]}"
+    zig build test "${flagsArray[@]}"
+
+    runHook postCheck
+}
+
+function zigInstallPhase {
+    runHook preInstall
+
+    local flagsArray=(
+        "${zigDefaultFlagsArray[@]}"
+        $zigBuildFlags "${zigBuildFlagsArray[@]}"
+        $zigInstallFlags "${zigInstallFlagsArray[@]}"
+    )
+
+    if [ -z "${dontAddPrefix-}" ]; then
+        # Zig does not recognize `--prefix=/dir/`, only `--prefix /dir/`
+        flagsArray+=("${prefixKey:---prefix}" "$prefix")
+    fi
+
+    echoCmd 'zig install flags' "${flagsArray[@]}"
+    zig build install "${flagsArray[@]}"
+
+    runHook postInstall
+}
+
+addEnvHooks "$targetOffset" zigSetGlobalCacheDir
+
+if [ -z "${dontUseZigBuild-}" ] && [ -z "${buildPhase-}" ]; then
+    buildPhase=zigBuildPhase
+fi
+
+if [ -z "${dontUseZigCheck-}" ] && [ -z "${checkPhase-}" ]; then
+    checkPhase=zigCheckPhase
+fi
+
+if [ -z "${dontUseZigInstall-}" ] && [ -z "${installPhase-}" ]; then
+    installPhase=zigInstallPhase
+fi
diff --git a/pkgs/development/compilers/zig/0.9.nix b/pkgs/development/compilers/zig/0.9.nix
deleted file mode 100644
index d648c9c2eb642..0000000000000
--- a/pkgs/development/compilers/zig/0.9.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, cmake
-, llvmPackages
-, libxml2
-, zlib
-, coreutils
-, callPackage
-}@args:
-
-import ./generic.nix args {
-  version = "0.9.1";
-
-  hash = "sha256-x2c4c9RSrNWGqEngio4ArW7dJjW0gg+8nqBwPcR721k=";
-
-  patches = [
-    # Fix index out of bounds reading RPATH (cherry-picked from 0.10-dev)
-    ./000-0.9-read-dynstr-at-rpath-offset.patch
-    # Fix build on macOS 13 (cherry-picked from 0.10-dev)
-    ./001-0.9-bump-macos-supported-version.patch
-  ];
-
-  prePatch =
-    let
-      zig_0_10_0 = fetchFromGitHub {
-        owner = "ziglang";
-        repo = "zig";
-        rev = "0.10.0";
-        hash = "sha256-DNs937N7PLQimuM2anya4npYXcj6cyH+dRS7AiOX7tw=";
-      };
-    in
-    ''
-      cp -R ${zig_0_10_0}/lib/libc/include/any-macos.13-any lib/libc/include/any-macos.13-any
-      cp -R ${zig_0_10_0}/lib/libc/include/aarch64-macos.13-none lib/libc/include/aarch64-macos.13-gnu
-      cp -R ${zig_0_10_0}/lib/libc/include/x86_64-macos.13-none lib/libc/include/x86_64-macos.13-gnu
-      cp ${zig_0_10_0}/lib/libc/darwin/libSystem.13.tbd lib/libc/darwin/
-    '';
-
-  cmakeFlags = [
-    # file RPATH_CHANGE could not write new RPATH
-    "-DCMAKE_SKIP_BUILD_RPATH=ON"
-
-    # ensure determinism in the compiler build
-    "-DZIG_TARGET_MCPU=baseline"
-  ];
-}
diff --git a/pkgs/development/compilers/zig/000-0.9-read-dynstr-at-rpath-offset.patch b/pkgs/development/compilers/zig/0.9/000-0.9-read-dynstr-at-rpath-offset.patch
index 70633193f944d..70633193f944d 100644
--- a/pkgs/development/compilers/zig/000-0.9-read-dynstr-at-rpath-offset.patch
+++ b/pkgs/development/compilers/zig/0.9/000-0.9-read-dynstr-at-rpath-offset.patch
diff --git a/pkgs/development/compilers/zig/001-0.9-bump-macos-supported-version.patch b/pkgs/development/compilers/zig/0.9/001-0.9-bump-macos-supported-version.patch
index 07b90e223553b..07b90e223553b 100644
--- a/pkgs/development/compilers/zig/001-0.9-bump-macos-supported-version.patch
+++ b/pkgs/development/compilers/zig/0.9/001-0.9-bump-macos-supported-version.patch
diff --git a/pkgs/development/compilers/zig/0.9/default.nix b/pkgs/development/compilers/zig/0.9/default.nix
new file mode 100644
index 0000000000000..079773f00e88c
--- /dev/null
+++ b/pkgs/development/compilers/zig/0.9/default.nix
@@ -0,0 +1,111 @@
+{
+  lib,
+  callPackage,
+  cmake,
+  coreutils,
+  fetchFromGitHub,
+  libxml2,
+  llvmPackages,
+  stdenv,
+  testers,
+  zlib,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "zig";
+  version = "0.9.1";
+
+  src = fetchFromGitHub {
+    owner = "ziglang";
+    repo = "zig";
+    rev = finalAttrs.version;
+    hash = "sha256-x2c4c9RSrNWGqEngio4ArW7dJjW0gg+8nqBwPcR721k=";
+  };
+
+  patches = [
+    # Fix index out of bounds reading RPATH (cherry-picked from 0.10-dev)
+    ./000-0.9-read-dynstr-at-rpath-offset.patch
+    # Fix build on macOS 13 (cherry-picked from 0.10-dev)
+    ./001-0.9-bump-macos-supported-version.patch
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    (lib.getDev llvmPackages.llvm)
+  ];
+
+  buildInputs =
+    [
+      libxml2
+      zlib
+    ]
+    ++ (with llvmPackages; [
+      libclang
+      lld
+      llvm
+    ]);
+
+  cmakeFlags = [
+    # file RPATH_CHANGE could not write new RPATH
+    (lib.cmakeBool "CMAKE_SKIP_BUILD_RPATH" true)
+    # ensure determinism in the compiler build
+    (lib.cmakeFeature "ZIG_TARGET_MCPU" "baseline")
+  ];
+
+  env.ZIG_GLOBAL_CACHE_DIR = "$TMPDIR/zig-cache";
+
+  doInstallCheck = true;
+
+  strictDeps = true;
+
+  prePatch =
+    let
+      zig_0_10_0 = fetchFromGitHub {
+        owner = "ziglang";
+        repo = "zig";
+        rev = "0.10.0";
+        hash = "sha256-DNs937N7PLQimuM2anya4npYXcj6cyH+dRS7AiOX7tw=";
+      };
+    in
+    ''
+      cp -R ${zig_0_10_0}/lib/libc/include/any-macos.13-any lib/libc/include/any-macos.13-any
+      cp -R ${zig_0_10_0}/lib/libc/include/aarch64-macos.13-none lib/libc/include/aarch64-macos.13-gnu
+      cp -R ${zig_0_10_0}/lib/libc/include/x86_64-macos.13-none lib/libc/include/x86_64-macos.13-gnu
+      cp ${zig_0_10_0}/lib/libc/darwin/libSystem.13.tbd lib/libc/darwin/
+    '';
+
+  # Zig's build looks at /usr/bin/env to find dynamic linking info. This doesn't
+  # work in Nix's sandbox. Use env from our coreutils instead.
+  postPatch = ''
+    substituteInPlace lib/std/zig/system/NativeTargetInfo.zig \
+      --replace "/usr/bin/env" "${lib.getExe' coreutils "env"}"
+  '';
+
+  installCheckPhase = ''
+    runHook preInstallCheck
+
+    $out/bin/zig test --cache-dir "$TMPDIR/zig-test-cache" -I $src/test $src/test/behavior.zig
+
+    runHook postInstallCheck
+  '';
+
+  passthru = {
+    hook = callPackage ./hook.nix { zig = finalAttrs.finalPackage; };
+    tests = {
+      version = testers.testVersion {
+        package = finalAttrs.finalPackage;
+        command = "zig version";
+      };
+    };
+  };
+
+  meta = {
+    description = "General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software";
+    homepage = "https://ziglang.org/";
+    changelog = "https://ziglang.org/download/${finalAttrs.version}/release-notes.html";
+    license = lib.licenses.mit;
+    mainProgram = "zig";
+    maintainers = with lib.maintainers; [ andrewrk ] ++ lib.teams.zig.members;
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/pkgs/development/compilers/zig/0.9/hook.nix b/pkgs/development/compilers/zig/0.9/hook.nix
new file mode 100644
index 0000000000000..1d3439b1af620
--- /dev/null
+++ b/pkgs/development/compilers/zig/0.9/hook.nix
@@ -0,0 +1,47 @@
+{
+  lib,
+  makeSetupHook,
+  zig,
+}:
+
+makeSetupHook {
+  name = "zig-hook";
+
+  propagatedBuildInputs = [ zig ];
+
+  substitutions = {
+    # This zig_default_flags below is meant to avoid CPU feature impurity in
+    # Nixpkgs. However, this flagset is "unstable": it is specifically meant to
+    # be controlled by the upstream development team - being up to that team
+    # exposing or not that flags to the outside (especially the package manager
+    # teams).
+
+    # Because of this hurdle, @andrewrk from Zig Software Foundation proposed
+    # some solutions for this issue. Hopefully they will be implemented in
+    # future releases of Zig. When this happens, this flagset should be
+    # revisited accordingly.
+
+    # Below are some useful links describing the discovery process of this 'bug'
+    # in Nixpkgs:
+
+    # https://github.com/NixOS/nixpkgs/issues/169461
+    # https://github.com/NixOS/nixpkgs/issues/185644
+    # https://github.com/NixOS/nixpkgs/pull/197046
+    # https://github.com/NixOS/nixpkgs/pull/241741#issuecomment-1624227485
+    # https://github.com/ziglang/zig/issues/14281#issuecomment-1624220653
+
+    zig_default_flags = [
+      "-Dcpu=baseline"
+      "-Drelease-safe=true"
+    ];
+  };
+
+  passthru = {
+    inherit zig;
+  };
+
+  meta = {
+    description = "Setup hook for using the Zig compiler in Nixpkgs";
+    inherit (zig.meta) maintainers platforms broken;
+  };
+} ./setup-hook.sh
diff --git a/pkgs/development/compilers/zig/0.9/setup-hook.sh b/pkgs/development/compilers/zig/0.9/setup-hook.sh
new file mode 100644
index 0000000000000..689ebec8a3077
--- /dev/null
+++ b/pkgs/development/compilers/zig/0.9/setup-hook.sh
@@ -0,0 +1,70 @@
+# shellcheck shell=bash disable=SC2154,SC2086
+
+readonly zigDefaultFlagsArray=(@zig_default_flags@)
+
+function zigSetGlobalCacheDir {
+    ZIG_GLOBAL_CACHE_DIR=$(mktemp -d)
+    export ZIG_GLOBAL_CACHE_DIR
+}
+
+function zigBuildPhase {
+    runHook preBuild
+
+    local flagsArray=(
+        "${zigDefaultFlagsArray[@]}"
+        $zigBuildFlags "${zigBuildFlagsArray[@]}"
+    )
+
+    echoCmd 'zig build flags' "${flagsArray[@]}"
+    zig build "${flagsArray[@]}"
+
+    runHook postBuild
+}
+
+function zigCheckPhase {
+    runHook preCheck
+
+    local flagsArray=(
+        "${zigDefaultFlagsArray[@]}"
+        $zigCheckFlags "${zigCheckFlagsArray[@]}"
+    )
+
+    echoCmd 'zig check flags' "${flagsArray[@]}"
+    zig build test "${flagsArray[@]}"
+
+    runHook postCheck
+}
+
+function zigInstallPhase {
+    runHook preInstall
+
+    local flagsArray=(
+        "${zigDefaultFlagsArray[@]}"
+        $zigBuildFlags "${zigBuildFlagsArray[@]}"
+        $zigInstallFlags "${zigInstallFlagsArray[@]}"
+    )
+
+    if [ -z "${dontAddPrefix-}" ]; then
+        # Zig does not recognize `--prefix=/dir/`, only `--prefix /dir/`
+        flagsArray+=("${prefixKey:---prefix}" "$prefix")
+    fi
+
+    echoCmd 'zig install flags' "${flagsArray[@]}"
+    zig build install "${flagsArray[@]}"
+
+    runHook postInstall
+}
+
+addEnvHooks "$targetOffset" zigSetGlobalCacheDir
+
+if [ -z "${dontUseZigBuild-}" ] && [ -z "${buildPhase-}" ]; then
+    buildPhase=zigBuildPhase
+fi
+
+if [ -z "${dontUseZigCheck-}" ] && [ -z "${checkPhase-}" ]; then
+    checkPhase=zigCheckPhase
+fi
+
+if [ -z "${dontUseZigInstall-}" ] && [ -z "${installPhase-}" ]; then
+    installPhase=zigInstallPhase
+fi
diff --git a/pkgs/development/compilers/zig/hook.nix b/pkgs/development/compilers/zig/hook.nix
index e01309b258b1a..67cfac263a75e 100644
--- a/pkgs/development/compilers/zig/hook.nix
+++ b/pkgs/development/compilers/zig/hook.nix
@@ -45,7 +45,7 @@ makeSetupHook {
   passthru = { inherit zig; };
 
   meta = {
-    description = "A setup hook for using the Zig compiler in Nixpkgs";
+    description = "Setup hook for using the Zig compiler in Nixpkgs";
     inherit (zig.meta) maintainers platforms broken;
   };
 } ./setup-hook.sh
diff --git a/pkgs/development/coq-modules/CoLoR/default.nix b/pkgs/development/coq-modules/CoLoR/default.nix
index 618ba3fd0a46e..6e59dda15a6a4 100644
--- a/pkgs/development/coq-modules/CoLoR/default.nix
+++ b/pkgs/development/coq-modules/CoLoR/default.nix
@@ -29,7 +29,7 @@ mkCoqDerivation {
 
   meta = {
     homepage = "https://github.com/fblanqui/color";
-    description = "CoLoR is a library of formal mathematical definitions and proofs of theorems on rewriting theory and termination whose correctness has been mechanically checked by the Coq proof assistant.";
+    description = "CoLoR is a library of formal mathematical definitions and proofs of theorems on rewriting theory and termination whose correctness has been mechanically checked by the Coq proof assistant";
     maintainers = with lib.maintainers; [ jpas jwiegley ];
   };
 }
diff --git a/pkgs/development/coq-modules/HoTT/default.nix b/pkgs/development/coq-modules/HoTT/default.nix
index 426880940070b..6bc8ad9bb1804 100644
--- a/pkgs/development/coq-modules/HoTT/default.nix
+++ b/pkgs/development/coq-modules/HoTT/default.nix
@@ -27,7 +27,7 @@ mkCoqDerivation {
 
   meta = {
     homepage = "https://homotopytypetheory.org/";
-    description = "The Homotopy Type Theory library";
+    description = "Homotopy Type Theory library";
     longDescription = ''
       Homotopy Type Theory is an interpretation of Martin-Löf’s intensional
       type theory into abstract homotopy theory. Propositional equality is
diff --git a/pkgs/development/coq-modules/ITree/default.nix b/pkgs/development/coq-modules/ITree/default.nix
index c886dfd149812..3eaa6eec67a49 100644
--- a/pkgs/development/coq-modules/ITree/default.nix
+++ b/pkgs/development/coq-modules/ITree/default.nix
@@ -15,7 +15,7 @@ mkCoqDerivation rec {
   releaseRev = v: "${v}";
   propagatedBuildInputs = [ coq-ext-lib paco ];
   meta = {
-    description = "A Library for Representing Recursive and Impure Programs in Coq";
+    description = "Library for Representing Recursive and Impure Programs in Coq";
     maintainers = with lib.maintainers; [ larsr ];
   };
 }
diff --git a/pkgs/development/coq-modules/VST/default.nix b/pkgs/development/coq-modules/VST/default.nix
index 706d117863540..8cfe5e9f764e9 100644
--- a/pkgs/development/coq-modules/VST/default.nix
+++ b/pkgs/development/coq-modules/VST/default.nix
@@ -43,7 +43,7 @@ mkCoqDerivation {
   preConfigure = ''
     patchShebangs util
     substituteInPlace Makefile \
-      --replace 'COQVERSION= ' 'COQVERSION= 8.17.1 or-else 8.16.1 or-else 8.16.0 or-else 8.15.2 or-else 8.15.1 or-else '\
+      --replace 'COQVERSION= ' 'COQVERSION= 8.19.2 or-else 8.17.1 or-else 8.16.1 or-else 8.16.0 or-else 8.15.2 or-else 8.15.1 or-else '\
       --replace 'FLOYD_FILES=' 'FLOYD_FILES= ${toString extra_floyd_files}'
   '';
 
diff --git a/pkgs/development/coq-modules/VplTactic/default.nix b/pkgs/development/coq-modules/VplTactic/default.nix
index e62499eb1ac82..b907a10498e72 100644
--- a/pkgs/development/coq-modules/VplTactic/default.nix
+++ b/pkgs/development/coq-modules/VplTactic/default.nix
@@ -13,6 +13,6 @@ mkCoqDerivation {
   mlPlugin = true;
 
   meta = Vpl.meta // {
-    description = "A Coq Tactic for Arithmetic (based on VPL)";
+    description = "Coq Tactic for Arithmetic (based on VPL)";
   };
 }
diff --git a/pkgs/development/coq-modules/aac-tactics/default.nix b/pkgs/development/coq-modules/aac-tactics/default.nix
index 73d14282a3ab5..59a9c9ba11642 100644
--- a/pkgs/development/coq-modules/aac-tactics/default.nix
+++ b/pkgs/development/coq-modules/aac-tactics/default.nix
@@ -5,6 +5,7 @@ mkCoqDerivation {
 
   releaseRev = v: "v${v}";
 
+  release."8.19.1".sha256 = "sha256-W/V57h+rjb3m0ktCG83PquMHfXiv6H1Nhvw9sVEPLqM=";
   release."8.19.0".sha256 = "sha256-IeCBd8gcu4bAXH5I/XIT7neQIILi+EWR6qqAA4GzQD0=";
   release."8.18.0".sha256 = "sha256-Vpe79qCyFLOdOtFFvLKR0N+MMpGD661Q01yx4gxRhZo=";
   release."8.17.0".sha256 = "sha256-c8DtD21QFDZEVyCQc7ScPZEMTmolxlT3+Db3gStofF8=";
@@ -24,7 +25,7 @@ mkCoqDerivation {
 
   inherit version;
   defaultVersion = with lib.versions; lib.switch coq.coq-version [
-    { case = "8.19"; out = "8.19.0"; }
+    { case = "8.19"; out = "8.19.1"; }
     { case = "8.18"; out = "8.18.0"; }
     { case = "8.17"; out = "8.17.0"; }
     { case = "8.16"; out = "8.16.0"; }
diff --git a/pkgs/development/coq-modules/category-theory/default.nix b/pkgs/development/coq-modules/category-theory/default.nix
index dc0bd6cfcadc3..568a7fa2e73b2 100644
--- a/pkgs/development/coq-modules/category-theory/default.nix
+++ b/pkgs/development/coq-modules/category-theory/default.nix
@@ -27,7 +27,7 @@ mkCoqDerivation {
   propagatedBuildInputs = [ ssreflect equations ];
 
   meta = {
-    description = "A formalization of category theory in Coq for personal study and practical work";
+    description = "Formalization of category theory in Coq for personal study and practical work";
     maintainers = with lib.maintainers; [ jwiegley ];
   };
 }
diff --git a/pkgs/development/coq-modules/compcert/default.nix b/pkgs/development/coq-modules/compcert/default.nix
index 0557311c36507..59cfd680427b6 100644
--- a/pkgs/development/coq-modules/compcert/default.nix
+++ b/pkgs/development/coq-modules/compcert/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchzip, mkCoqDerivation
+{ lib, mkCoqDerivation
 , coq, flocq, compcert
 , ocamlPackages, fetchpatch, makeWrapper, coq2html
 , stdenv, tools ? stdenv.cc
@@ -193,6 +193,20 @@ compcert.overrideAttrs (o:
             url = "https://github.com/AbsInt/CompCert/commit/a2e4ed62fc558d565366845f9d135bd7db5e23c4.patch";
             hash = "sha256-ufk0bokuayLfkSvK3cK4E9iXU5eZpp9d/ETSa/zCfMg=";
           })
+          # Support for Coq 8.19.2
+          (fetchpatch {
+            url = "https://github.com/AbsInt/CompCert/commit/8fcfb7d2a6e9ba44003ccab0dfcc894982779af1.patch";
+            hash = "sha256-m/kcnDBBPWFriipuGvKZUqLQU8/W1uqw8j4qfCwnTZk=";
+          })
+        ];
+      }
+      { cases = [ (isEq "8.19") (isEq "3.14") ];
+        out = [
+          # Support for Coq 8.19.2
+          (fetchpatch {
+            url = "https://github.com/AbsInt/CompCert/commit/8fcfb7d2a6e9ba44003ccab0dfcc894982779af1.patch";
+            hash = "sha256-m/kcnDBBPWFriipuGvKZUqLQU8/W1uqw8j4qfCwnTZk=";
+          })
         ];
       }
     ] [];
diff --git a/pkgs/development/coq-modules/coq-bits/default.nix b/pkgs/development/coq-modules/coq-bits/default.nix
index ebc03a3a7306f..cadf18df73113 100644
--- a/pkgs/development/coq-modules/coq-bits/default.nix
+++ b/pkgs/development/coq-modules/coq-bits/default.nix
@@ -15,7 +15,7 @@ mkCoqDerivation {
   propagatedBuildInputs = [ mathcomp.algebra ];
 
   meta = with lib; {
-    description = "A formalization of bitset operations in Coq";
+    description = "Formalization of bitset operations in Coq";
     license = licenses.asl20;
     maintainers = with maintainers; [ ptival ];
   };
diff --git a/pkgs/development/coq-modules/coq-elpi/default.nix b/pkgs/development/coq-modules/coq-elpi/default.nix
index db82458f4a20f..04dea2feaf60a 100644
--- a/pkgs/development/coq-modules/coq-elpi/default.nix
+++ b/pkgs/development/coq-modules/coq-elpi/default.nix
@@ -70,7 +70,7 @@ in mkCoqDerivation {
   propagatedBuildInputs = [ coq.ocamlPackages.findlib elpi ];
 
   meta = {
-    description = "Coq plugin embedding ELPI.";
+    description = "Coq plugin embedding ELPI";
     maintainers = [ maintainers.cohencyril ];
     license = licenses.lgpl21Plus;
   };
diff --git a/pkgs/development/coq-modules/coq-ext-lib/default.nix b/pkgs/development/coq-modules/coq-ext-lib/default.nix
index 9eaebbb646d15..f4459ef29b784 100644
--- a/pkgs/development/coq-modules/coq-ext-lib/default.nix
+++ b/pkgs/development/coq-modules/coq-ext-lib/default.nix
@@ -31,7 +31,7 @@ mkCoqDerivation rec {
   releaseRev = v: "v${v}";
 
   meta = {
-    description = "A collection of theories and plugins that may be useful in other Coq developments";
+    description = "Collection of theories and plugins that may be useful in other Coq developments";
     maintainers = with lib.maintainers; [ jwiegley ptival ];
   };
 }
diff --git a/pkgs/development/coq-modules/coq-haskell/default.nix b/pkgs/development/coq-modules/coq-haskell/default.nix
index 028b4c5025eb2..7ffc29e943bda 100644
--- a/pkgs/development/coq-modules/coq-haskell/default.nix
+++ b/pkgs/development/coq-modules/coq-haskell/default.nix
@@ -15,7 +15,7 @@ mkCoqDerivation {
   enableParallelBuilding = false;
 
   meta = {
-    description = "A library for formalizing Haskell types and functions in Coq";
+    description = "Library for formalizing Haskell types and functions in Coq";
     maintainers = with lib.maintainers; [ jwiegley ];
   };
 }
diff --git a/pkgs/development/coq-modules/coq-lsp/default.nix b/pkgs/development/coq-modules/coq-lsp/default.nix
index afa42728bb59c..8a031ba84d7af 100644
--- a/pkgs/development/coq-modules/coq-lsp/default.nix
+++ b/pkgs/development/coq-modules/coq-lsp/default.nix
@@ -8,16 +8,16 @@ mkCoqDerivation rec {
   useDune = true;
 
   release."0.1.8+8.16".sha256 = "sha256-dEEAK5IXGjHB8D/fYJRQG/oCotoXJuWLxXB0GQlY2eo=";
-  release."0.1.8+8.17".sha256 = "sha256-TmaE+osn/yAPU1Dyni/UTd5w/L2+qyPE3H/g6IWvHLQ=";
-  release."0.1.8+8.18".sha256 = "sha256-UYmiDdbax4wxp5dLia/1t1gFyK6UELtJJvDMd5Hd14s=";
-  release."0.1.8+8.19".sha256 = "sha256-aO3hUAWEqVxvCF7uJs+S4yrRxSMe/GaLKVfW/vawzNs=";
+  release."0.1.9+8.17".sha256 = "sha256-BCsVRKSE9txeKgDfTsu7hQ6MebC+dX2AAqDF9iL7bYE=";
+  release."0.1.9+8.18".sha256 = "sha256-elAXvkyqw/R/EziGn+QdPn42t5rqTVVW08BXGP3HimY=";
+  release."0.1.9+8.19".sha256 = "sha256-0bk0o25aYkrRf5zaWZnNJqqoBZ6u8nSV9QDIWCeFEco=";
 
   inherit version;
   defaultVersion = with lib.versions; lib.switch coq.coq-version [
     { case = isEq "8.16"; out = "0.1.8+8.16"; }
-    { case = isEq "8.17"; out = "0.1.8+8.17"; }
-    { case = isEq "8.18"; out = "0.1.8+8.18"; }
-    { case = isEq "8.19"; out = "0.1.8+8.19"; }
+    { case = isEq "8.17"; out = "0.1.9+8.17"; }
+    { case = isEq "8.18"; out = "0.1.9+8.18"; }
+    { case = isEq "8.19"; out = "0.1.9+8.19"; }
   ] null;
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/coq-modules/coqide/default.nix b/pkgs/development/coq-modules/coqide/default.nix
index 449e81040dfa9..a4b85cdd7fbbe 100644
--- a/pkgs/development/coq-modules/coqide/default.nix
+++ b/pkgs/development/coq-modules/coqide/default.nix
@@ -54,7 +54,7 @@ mkCoqDerivation rec {
 
   meta = with lib; {
     homepage = "https://coq.inria.fr";
-    description = "The CoqIDE user interface for the Coq proof assistant";
+    description = "CoqIDE user interface for the Coq proof assistant";
     mainProgram = "coqide";
     license = licenses.lgpl21Plus;
     maintainers = [ maintainers.Zimmi48 ];
diff --git a/pkgs/development/coq-modules/coquelicot/default.nix b/pkgs/development/coq-modules/coquelicot/default.nix
index 4ce063339f073..76fb985c2c017 100644
--- a/pkgs/development/coq-modules/coquelicot/default.nix
+++ b/pkgs/development/coq-modules/coquelicot/default.nix
@@ -29,7 +29,7 @@ mkCoqDerivation {
 
   meta =  with lib; {
     homepage = "http://coquelicot.saclay.inria.fr/";
-    description = "A Coq library for Reals";
+    description = "Coq library for Reals";
     license = licenses.lgpl3;
     maintainers = [ maintainers.vbgl ];
   };
diff --git a/pkgs/development/coq-modules/corn/default.nix b/pkgs/development/coq-modules/corn/default.nix
index 5e72d4a97e2a4..aee2f35d9e183 100644
--- a/pkgs/development/coq-modules/corn/default.nix
+++ b/pkgs/development/coq-modules/corn/default.nix
@@ -27,7 +27,7 @@ mkCoqDerivation rec {
   meta =  with lib; {
     homepage = "http://c-corn.github.io/";
     license = licenses.gpl2;
-    description = "A Coq library for constructive analysis";
+    description = "Coq library for constructive analysis";
     maintainers = [ maintainers.vbgl ];
   };
 }
diff --git a/pkgs/development/coq-modules/equations/default.nix b/pkgs/development/coq-modules/equations/default.nix
index 961b54f6a4dbd..83662720c7f72 100644
--- a/pkgs/development/coq-modules/equations/default.nix
+++ b/pkgs/development/coq-modules/equations/default.nix
@@ -68,7 +68,7 @@
 
   meta = with lib; {
     homepage = "https://mattam82.github.io/Coq-Equations/";
-    description = "A plugin for Coq to add dependent pattern-matching";
+    description = "Plugin for Coq to add dependent pattern-matching";
     maintainers = with maintainers; [ jwiegley ];
   };
 }).overrideAttrs (o: {
diff --git a/pkgs/development/coq-modules/fiat/HEAD.nix b/pkgs/development/coq-modules/fiat/HEAD.nix
index 0a6375907e899..63cc17fbbdd2f 100644
--- a/pkgs/development/coq-modules/fiat/HEAD.nix
+++ b/pkgs/development/coq-modules/fiat/HEAD.nix
@@ -28,7 +28,7 @@ mkCoqDerivation rec {
 
   meta = {
     homepage = "http://plv.csail.mit.edu/fiat/";
-    description = "A library for the Coq proof assistant for synthesizing efficient correct-by-construction programs from declarative specifications";
+    description = "Library for the Coq proof assistant for synthesizing efficient correct-by-construction programs from declarative specifications";
     maintainers = with lib.maintainers; [ jwiegley ];
   };
 }
diff --git a/pkgs/development/coq-modules/flocq/default.nix b/pkgs/development/coq-modules/flocq/default.nix
index 8be0213a46eb4..34c79818642b0 100644
--- a/pkgs/development/coq-modules/flocq/default.nix
+++ b/pkgs/development/coq-modules/flocq/default.nix
@@ -29,7 +29,7 @@ mkCoqDerivation {
   useMelquiondRemake.logpath = "Flocq";
 
   meta = with lib; {
-    description = "A floating-point formalization for the Coq system";
+    description = "Floating-point formalization for the Coq system";
     license = licenses.lgpl3;
     maintainers = with maintainers; [ jwiegley ];
   };
diff --git a/pkgs/development/coq-modules/goedel/default.nix b/pkgs/development/coq-modules/goedel/default.nix
index 1b16f8c3948a5..2dae5941197d1 100644
--- a/pkgs/development/coq-modules/goedel/default.nix
+++ b/pkgs/development/coq-modules/goedel/default.nix
@@ -17,7 +17,7 @@ mkCoqDerivation {
   propagatedBuildInputs = [ hydra-battles pocklington ];
 
   meta = with lib; {
-    description = "The Gödel-Rosser 1st incompleteness theorem in Coq";
+    description = "Gödel-Rosser 1st incompleteness theorem in Coq";
     maintainers = with maintainers; [ siraben ];
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/development/coq-modules/graph-theory/default.nix b/pkgs/development/coq-modules/graph-theory/default.nix
index 0d28bbc0527f0..6554b811f4b95 100644
--- a/pkgs/development/coq-modules/graph-theory/default.nix
+++ b/pkgs/development/coq-modules/graph-theory/default.nix
@@ -8,12 +8,14 @@ mkCoqDerivation {
   release."0.9.1".sha256 = "sha256-lRRY+501x+DqNeItBnbwYIqWLDksinWIY4x/iojRNYU=";
   release."0.9.2".sha256 = "sha256-DPYCZS8CzkfgpR+lmYhV2v20ezMtyWp8hdWpuh0OOQU=";
   release."0.9.3".sha256 = "sha256-9WX3gsw+4btJLqcGg2W+7Qy+jaZtkfw7vCp8sXYmaWw=";
+  release."0.9.4".sha256 = "sha256-fXTAsRdPisNhg8Umaa7S7gZ1M8zuPGg426KP9fAkmXQ=";
 
   releaseRev = v: "v${v}";
 
   inherit version;
   defaultVersion = with lib.versions; lib.switch [ coq.coq-version mathcomp.version ] [
-    { cases = [ (isGe "8.16") (range "2.0.0" "2.1.0") ]; out = "0.9.3"; }
+    { cases = [ (isGe "8.16") (range "2.0.0" "2.2.0") ]; out = "0.9.4"; }
+    { cases = [ (range "8.16" "8.18") (range "2.0.0"  "2.1.0" ) ]; out = "0.9.3"; }
     { cases = [ (range "8.14" "8.18") (range "1.13.0" "1.18.0") ]; out = "0.9.2"; }
     { cases = [ (range "8.14" "8.16") (range "1.13.0" "1.14.0") ]; out = "0.9.1"; }
     { cases = [ (range "8.12" "8.13") (range "1.12.0" "1.14.0") ]; out = "0.9"; }
diff --git a/pkgs/development/coq-modules/iris/default.nix b/pkgs/development/coq-modules/iris/default.nix
index ae6798243b6ac..a39e8a99509c3 100644
--- a/pkgs/development/coq-modules/iris/default.nix
+++ b/pkgs/development/coq-modules/iris/default.nix
@@ -31,7 +31,7 @@ mkCoqDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The Coq development of the Iris Project";
+    description = "Coq development of the Iris Project";
     license = licenses.bsd3;
     maintainers = [ maintainers.vbgl maintainers.ineol ];
   };
diff --git a/pkgs/development/coq-modules/itauto/default.nix b/pkgs/development/coq-modules/itauto/default.nix
index b0fba6868df83..63832a58caba5 100644
--- a/pkgs/development/coq-modules/itauto/default.nix
+++ b/pkgs/development/coq-modules/itauto/default.nix
@@ -30,7 +30,7 @@
   passthru.tests.suite = callPackage ./test.nix {};
 
   meta =  with lib; {
-    description = "A reflexive SAT solver parameterised by a leaf tactic and Nelson-Oppen support";
+    description = "Reflexive SAT solver parameterised by a leaf tactic and Nelson-Oppen support";
     maintainers = with maintainers; [ siraben ];
     license = licenses.gpl3Plus;
   };
diff --git a/pkgs/development/coq-modules/ltac2/default.nix b/pkgs/development/coq-modules/ltac2/default.nix
index da28184296006..c9d6845aa9380 100644
--- a/pkgs/development/coq-modules/ltac2/default.nix
+++ b/pkgs/development/coq-modules/ltac2/default.nix
@@ -20,7 +20,7 @@ mkCoqDerivation {
   mlPlugin = true;
 
   meta = with lib; {
-    description = "A robust and expressive tactic language for Coq";
+    description = "Robust and expressive tactic language for Coq";
     maintainers = [ maintainers.vbgl ];
     license = licenses.lgpl21;
   };
diff --git a/pkgs/development/coq-modules/math-classes/default.nix b/pkgs/development/coq-modules/math-classes/default.nix
index 4630f14dea02f..102e52e59e167 100644
--- a/pkgs/development/coq-modules/math-classes/default.nix
+++ b/pkgs/development/coq-modules/math-classes/default.nix
@@ -21,7 +21,7 @@ mkCoqDerivation {
 
   meta = {
     homepage = "https://math-classes.github.io";
-    description = "A library of abstract interfaces for mathematical structures in Coq.";
+    description = "Library of abstract interfaces for mathematical structures in Coq";
     maintainers = with lib.maintainers; [ siddharthist jwiegley ];
   };
 }
diff --git a/pkgs/development/coq-modules/mathcomp-analysis/default.nix b/pkgs/development/coq-modules/mathcomp-analysis/default.nix
index 3703eee0e588d..abd300f947a95 100644
--- a/pkgs/development/coq-modules/mathcomp-analysis/default.nix
+++ b/pkgs/development/coq-modules/mathcomp-analysis/default.nix
@@ -9,6 +9,8 @@ let
   repo  = "analysis";
   owner = "math-comp";
 
+  release."1.2.0".sha256 = "sha256-w6BivDM4dF4Iv4rUTy++2feweNtMAJxgGExPfYGhXxo=";
+  release."1.1.0".sha256 = "sha256-wl4kZf4mh9zbFfGcqaFEgWRyp0Bj511F505mYodpS6o=";
   release."1.0.0".sha256 = "sha256-KiXyaWB4zQ3NuXadq4BSWfoN1cIo1xiLVSN6nW03tC4=";
   release."0.7.0".sha256 = "sha256-JwkyetXrFsFHqz8KY3QBpHsrkhmEFnrCGuKztcoen60=";
   release."0.6.7".sha256 = "sha256-3i2PBMEwihwgwUmnS0cmrZ8s+aLPFVq/vo0aXMUaUyA=";
@@ -29,7 +31,7 @@ let
   release."0.2.3".sha256 = "0p9mr8g1qma6h10qf7014dv98ln90dfkwn76ynagpww7qap8s966";
 
   defaultVersion = with versions; lib.switch [ coq.version mathcomp.version ]  [
-      { cases = [ (range "8.17" "8.19") (range "2.0.0" "2.2.0") ]; out = "1.0.0"; }
+      { cases = [ (range "8.17" "8.19") (range "2.0.0" "2.2.0") ]; out = "1.1.0"; }
       { cases = [ (range "8.17" "8.19") (range "1.17.0" "1.19.0") ]; out = "0.7.0"; }
       { cases = [ (range "8.17" "8.18") (range "1.15.0" "1.18.0") ]; out = "0.6.7"; }
       { cases = [ (range "8.17" "8.18") (range "1.15.0" "1.18.0") ]; out = "0.6.6"; }
diff --git a/pkgs/development/coq-modules/mathcomp-apery/default.nix b/pkgs/development/coq-modules/mathcomp-apery/default.nix
index 0b447909116ee..8e22a6c9aeb43 100644
--- a/pkgs/development/coq-modules/mathcomp-apery/default.nix
+++ b/pkgs/development/coq-modules/mathcomp-apery/default.nix
@@ -17,7 +17,7 @@ mkCoqDerivation {
     mathcomp-bigenough mathcomp-zify mathcomp-algebra-tactics ];
 
   meta = {
-    description = "A formally verified proof in Coq, by computer algebra, that ζ(3) is irrational";
+    description = "Formally verified proof in Coq, by computer algebra, that ζ(3) is irrational";
     license = lib.licenses.cecill-c;
   };
 }
diff --git a/pkgs/development/coq-modules/mathcomp-bigenough/default.nix b/pkgs/development/coq-modules/mathcomp-bigenough/default.nix
index df73d2111172c..35f8748f63c0b 100644
--- a/pkgs/development/coq-modules/mathcomp-bigenough/default.nix
+++ b/pkgs/development/coq-modules/mathcomp-bigenough/default.nix
@@ -19,7 +19,7 @@ mkCoqDerivation {
   propagatedBuildInputs = [ mathcomp.ssreflect ];
 
   meta = {
-    description = "A small library to do epsilon - N reasonning";
+    description = "Small library to do epsilon - N reasonning";
     license = lib.licenses.cecill-b;
   };
 }
diff --git a/pkgs/development/coq-modules/mathcomp-finmap/default.nix b/pkgs/development/coq-modules/mathcomp-finmap/default.nix
index c2f6ea02133cf..7120d9558566f 100644
--- a/pkgs/development/coq-modules/mathcomp-finmap/default.nix
+++ b/pkgs/development/coq-modules/mathcomp-finmap/default.nix
@@ -36,7 +36,7 @@ mkCoqDerivation {
   propagatedBuildInputs = [ mathcomp.ssreflect ];
 
   meta = {
-    description = "A finset and finmap library";
+    description = "Finset and finmap library";
     license = lib.licenses.cecill-b;
   };
 }
diff --git a/pkgs/development/coq-modules/mathcomp-infotheo/default.nix b/pkgs/development/coq-modules/mathcomp-infotheo/default.nix
index 6a14e67844c8d..cdd913f6d82b3 100644
--- a/pkgs/development/coq-modules/mathcomp-infotheo/default.nix
+++ b/pkgs/development/coq-modules/mathcomp-infotheo/default.nix
@@ -7,10 +7,12 @@
   inherit version;
 
   defaultVersion = with lib.versions; lib.switch [ coq.version mathcomp-analysis.version] [
+    { cases = [ (isGe "8.17") (isGe "1.0") ];                    out = "0.7.1"; }
     { cases = [ (isGe "8.17") (range "0.6.6" "0.7.0") ];         out = "0.6.1"; }
     { cases = [ (range "8.17" "8.18") (range "0.6.0" "0.6.7") ]; out = "0.5.2"; }
     { cases = [ (range "8.15" "8.16") (range "0.5.4" "0.6.5") ]; out = "0.5.1"; }
   ] null;
+  release."0.7.1".sha256 = "sha256-/4Elb35SmscG6EjEcHYDo+AmWrpBUlygZL0WhaD+fcY=";
   release."0.6.1".sha256 = "sha256-tFB5lrwRPIlHkP+ebgcJwu03Cc9yVaOINOAo8Bf2LT4=";
   release."0.5.1".sha256 = "sha256-yBBl5l+V+dggsg5KM59Yo9CULKog/xxE8vrW+ZRnX7Y=";
   release."0.5.2".sha256 = "sha256-8WAnAV53c0pMTdwj8XcUDUkLZbpUgIQbEOgOb63uHQA=";
@@ -18,7 +20,7 @@
   propagatedBuildInputs = [ mathcomp-analysis ];
 
   meta = with lib; {
-    description = "A Coq formalization of information theory and linear error-correcting codes";
+    description = "Coq formalization of information theory and linear error-correcting codes";
     license = licenses.lgpl21Plus;
   };
 }).overrideAttrs (o: {
diff --git a/pkgs/development/coq-modules/mathcomp-word/default.nix b/pkgs/development/coq-modules/mathcomp-word/default.nix
index 0183de9812269..98fdefa6d1176 100644
--- a/pkgs/development/coq-modules/mathcomp-word/default.nix
+++ b/pkgs/development/coq-modules/mathcomp-word/default.nix
@@ -18,8 +18,10 @@ mkCoqDerivation {
 
   releaseRev = v: "v${v}";
 
+  release."3.2".sha256 = "sha256-4HOFFQzKbHIq+ktjJaS5b2Qr8WL1eQ26YxF4vt1FdWM=";
   release."3.1".sha256 = "sha256-qQHis6554sG7NpCpWhT2wvelnxsrbEPVNv3fpxwxHMU=";
   release."3.0".sha256 = "sha256-xEgx5HHDOimOJbNMtIVf/KG3XBemOS9XwoCoW6btyJ4=";
+  release."2.4".sha256 = "sha256-OG99PfjhtKikxM9aBKRsej1gTo1O/llAdXdiiyjZf2Q=";
   release."2.3".sha256 = "sha256-whU1yvFFuxpwQutW41B/WBg5DrVZJW/Do/GuHtzuI3U=";
   release."2.2".sha256 = "sha256-8BB6SToCrMZTtU78t2K+aExuxk9O1lCqVQaa8wabSm8=";
   release."2.1".sha256 = "sha256-895gZzwwX8hN9UUQRhcgRlphHANka9R0PRotfmSEelA=";
@@ -27,8 +29,8 @@ mkCoqDerivation {
 
   inherit version;
   defaultVersion = with lib.versions; lib.switch [ coq.version mathcomp.version ] [
-    { cases = [ (range "8.16" "8.19") (isGe "2.0")          ]; out = "3.1"; }
-    { cases = [ (range "8.12" "8.19") (range "1.12" "1.19") ]; out = "2.3"; }
+    { cases = [ (range "8.16" "8.19") (isGe "2.0")          ]; out = "3.2"; }
+    { cases = [ (range "8.12" "8.19") (range "1.12" "1.19") ]; out = "2.4"; }
   ] null;
 
   propagatedBuildInputs = [ mathcomp.algebra mathcomp.ssreflect mathcomp.fingroup ];
diff --git a/pkgs/development/coq-modules/multinomials/default.nix b/pkgs/development/coq-modules/multinomials/default.nix
index 5547e22bc59fe..4326aa9ba2243 100644
--- a/pkgs/development/coq-modules/multinomials/default.nix
+++ b/pkgs/development/coq-modules/multinomials/default.nix
@@ -51,7 +51,7 @@
     [ mathcomp.ssreflect mathcomp.algebra mathcomp-finmap mathcomp.fingroup mathcomp-bigenough ];
 
   meta = {
-    description = "A Coq/SSReflect Library for Monoidal Rings and Multinomials";
+    description = "Coq/SSReflect Library for Monoidal Rings and Multinomials";
     license = lib.licenses.cecill-c;
   };
 }
diff --git a/pkgs/development/coq-modules/paco/default.nix b/pkgs/development/coq-modules/paco/default.nix
index 717100ddfe259..afbcc6669bdb3 100644
--- a/pkgs/development/coq-modules/paco/default.nix
+++ b/pkgs/development/coq-modules/paco/default.nix
@@ -28,7 +28,7 @@ mkCoqDerivation {
 
   meta = {
     homepage = "https://plv.mpi-sws.org/paco/";
-    description = "A Coq library implementing parameterized coinduction";
+    description = "Coq library implementing parameterized coinduction";
     maintainers = with lib.maintainers; [ jwiegley ptival ];
   };
 }
diff --git a/pkgs/development/coq-modules/semantics/default.nix b/pkgs/development/coq-modules/semantics/default.nix
index a715ff17a69bb..18e9171096d7b 100644
--- a/pkgs/development/coq-modules/semantics/default.nix
+++ b/pkgs/development/coq-modules/semantics/default.nix
@@ -34,7 +34,7 @@ mkCoqDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A survey of programming language semantics styles in Coq";
+    description = "Survey of programming language semantics styles in Coq";
     longDescription = ''
       A survey of semantics styles in Coq, from natural semantics through
       structural operational, axiomatic, and denotational semantics, to
diff --git a/pkgs/development/coq-modules/serapi/default.nix b/pkgs/development/coq-modules/serapi/default.nix
index f48cce55d4dc2..b7aa0ecff25e4 100644
--- a/pkgs/development/coq-modules/serapi/default.nix
+++ b/pkgs/development/coq-modules/serapi/default.nix
@@ -2,9 +2,9 @@
 
 let
   release = {
-    "8.19.0+0.19.0".sha256 = "sha256-M9d0ne2veTjf8/mFIDwtWdHi64JXjwCPWupnO2Ztd/Y=";
-    "8.18.0+0.18.0".sha256 = "sha256-c+3yG9vcbek/uvQ27OOQGqqsIHU1VuQhQvNVOjfucbo=";
-    "8.17.0+0.17.0".sha256 = "sha256-I81qvaXpJfXcbFw8vyzYLzlnhPg1QD0lTqAFXhoZ0rI=";
+    "8.19.0+0.19.3".sha256 = "sha256-QWRXBTcjtAGskZBeLIuX7WDE95KfH6SxV8MJSMx8B2Q=";
+    "8.18.0+0.18.3".sha256 = "sha256-3JGZCyn62LYJVpfXiwnSMxvdA2vQNTL7li2ZBPcjF0M=";
+    "8.17.0+0.17.3".sha256 = "sha256-XolzpJd8zs4LLyJO4eWvCiAJ0HJSGBJTGVSBClQRGnw=";
     "8.16.0+0.16.3".sha256 = "sha256-22Kawp8jAsgyBTppwN5vmN7zEaB1QfPs0qKxd6x/7Uc=";
     "8.15.0+0.15.0".sha256 = "1vh99ya2dq6a8xl2jrilgs0rpj4j227qx8zvzd2v5xylx0p4bbrp";
     "8.14.0+0.14.0".sha256 = "1kh80yb791yl771qbqkvwhbhydfii23a7lql0jgifvllm2k8hd8d";
@@ -21,9 +21,9 @@ in
 
   defaultVersion =  with versions;
     lib.switch coq.version [
-      { case = isEq "8.19"; out = "8.19.0+0.19.0"; }
-      { case = isEq "8.18"; out = "8.18.0+0.18.0"; }
-      { case = isEq "8.17"; out = "8.17.0+0.17.0"; }
+      { case = isEq "8.19"; out = "8.19.0+0.19.3"; }
+      { case = isEq "8.18"; out = "8.18.0+0.18.3"; }
+      { case = isEq "8.17"; out = "8.17.0+0.17.3"; }
       { case = isEq "8.16"; out = "8.16.0+0.16.3"; }
       { case = isEq "8.15"; out = "8.15.0+0.15.0"; }
       { case = isEq "8.14"; out = "8.14.0+0.14.0"; }
diff --git a/pkgs/development/coq-modules/smpl/default.nix b/pkgs/development/coq-modules/smpl/default.nix
index 2ba755dd42d02..147c04e0c3f33 100644
--- a/pkgs/development/coq-modules/smpl/default.nix
+++ b/pkgs/development/coq-modules/smpl/default.nix
@@ -23,7 +23,7 @@ mkCoqDerivation {
   mlPlugin = true;
 
   meta = with lib; {
-    description = "A Coq plugin providing an extensible tactic similar to first";
+    description = "Coq plugin providing an extensible tactic similar to first";
     maintainers = with maintainers; [ siraben ];
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/development/coq-modules/stdpp/default.nix b/pkgs/development/coq-modules/stdpp/default.nix
index 6eb8f77149cc3..1215acaed5a1c 100644
--- a/pkgs/development/coq-modules/stdpp/default.nix
+++ b/pkgs/development/coq-modules/stdpp/default.nix
@@ -29,7 +29,7 @@ mkCoqDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An extended “Standard Library” for Coq";
+    description = "Extended “Standard Library” for Coq";
     license = licenses.bsd3;
     maintainers = [ maintainers.vbgl maintainers.ineol ];
   };
diff --git a/pkgs/development/coq-modules/tlc/default.nix b/pkgs/development/coq-modules/tlc/default.nix
index 4fb67bede2379..00506bf0eea7d 100644
--- a/pkgs/development/coq-modules/tlc/default.nix
+++ b/pkgs/development/coq-modules/tlc/default.nix
@@ -18,7 +18,7 @@
 
   meta = with lib; {
     homepage = "http://www.chargueraud.org/softs/tlc/";
-    description = "A non-constructive library for Coq";
+    description = "Non-constructive library for Coq";
     license = licenses.free;
     maintainers = [ maintainers.vbgl ];
   };
diff --git a/pkgs/development/coq-modules/trakt/default.nix b/pkgs/development/coq-modules/trakt/default.nix
index e08d7b8d50ca5..e762a51880b24 100644
--- a/pkgs/development/coq-modules/trakt/default.nix
+++ b/pkgs/development/coq-modules/trakt/default.nix
@@ -19,7 +19,7 @@ mkCoqDerivation {
   propagatedBuildInputs = [ coq-elpi ];
 
   meta = with lib; {
-    description = "A generic goal preprocessing tool for proof automation tactics in Coq";
+    description = "Generic goal preprocessing tool for proof automation tactics in Coq";
     maintainers = with maintainers; [ siraben ];
     license = licenses.lgpl3Plus;
     platforms = platforms.unix;
diff --git a/pkgs/development/coq-modules/vcfloat/default.nix b/pkgs/development/coq-modules/vcfloat/default.nix
index 474ae171b77c1..cb1fa248fdc3d 100644
--- a/pkgs/development/coq-modules/vcfloat/default.nix
+++ b/pkgs/development/coq-modules/vcfloat/default.nix
@@ -19,7 +19,7 @@ let self = mkCoqDerivation {
   propagatedBuildInputs = [ interval compcert flocq bignums ];
 
   meta = {
-    description = "A tool for Coq proofs about floating-point round-off error";
+    description = "Tool for Coq proofs about floating-point round-off error";
     maintainers = with lib.maintainers; [ quinn-dougherty ];
     license = lib.licenses.lgpl3Plus;
   };
diff --git a/pkgs/development/cuda-modules/aliases.nix b/pkgs/development/cuda-modules/aliases.nix
index 36dd07d773bd9..7f28f2c76d471 100644
--- a/pkgs/development/cuda-modules/aliases.nix
+++ b/pkgs/development/cuda-modules/aliases.nix
@@ -13,6 +13,6 @@ in
     mkRenamed "autoAddDriverRunpath" "pkgs.autoAddDriverRunpath"
       final.pkgs.autoAddDriverRunpath; # Added 2024-03-30
   autoAddOpenGLRunpathHook =
-    mkRenamed "autoAddOpenGLRunpathHook" "pkgs.autoAddDriverRunpath"
+    mkRenamed "autoAddOpenGLRunpathHook" "pkgs.autoAddDriverRunpathHook"
       final.pkgs.autoAddDriverRunpath; # Added 2024-03-30
 }
diff --git a/pkgs/development/cuda-modules/cuda/extension.nix b/pkgs/development/cuda-modules/cuda/extension.nix
index 5b87a3df0959a..f39171e888741 100644
--- a/pkgs/development/cuda-modules/cuda/extension.nix
+++ b/pkgs/development/cuda-modules/cuda/extension.nix
@@ -53,6 +53,10 @@ let
       redistribRelease = redistribManifest.${pname};
       featureRelease = featureManifest.${pname};
       drv =
+        let
+          # get `autoAddDriverRunpath` from pkgs instead of cudaPackages' alias to avoid warning
+          inherit (callPackage ({ pkgs }: pkgs) { }) autoAddDriverRunpath;
+        in
         (callPackage ../generic-builders/manifest.nix {
           # We pass the whole release to the builder because it has logic to handle
           # the case we're trying to build on an unsupported platform.
@@ -61,6 +65,7 @@ let
             redistName
             redistribRelease
             featureRelease
+            autoAddDriverRunpath
             ;
         }).overrideAttrs
           (prevAttrs: {
diff --git a/pkgs/development/cuda-modules/cudatoolkit/default.nix b/pkgs/development/cuda-modules/cudatoolkit/default.nix
index e5606f9395129..24e41d3318956 100644
--- a/pkgs/development/cuda-modules/cudatoolkit/default.nix
+++ b/pkgs/development/cuda-modules/cudatoolkit/default.nix
@@ -411,7 +411,7 @@ backendStdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "The deprecated runfile-based CUDAToolkit installation (a compiler for NVIDIA GPUs, math libraries, and tools)";
+    description = "Deprecated runfile-based CUDAToolkit installation (a compiler for NVIDIA GPUs, math libraries, and tools)";
     homepage = "https://developer.nvidia.com/cuda-toolkit";
     platforms = [ "x86_64-linux" ];
     license = licenses.nvidiaCuda;
diff --git a/pkgs/development/cuda-modules/cudatoolkit/redist-wrapper.nix b/pkgs/development/cuda-modules/cudatoolkit/redist-wrapper.nix
index 6bdcdecbacd6f..b8906b3dc59b2 100644
--- a/pkgs/development/cuda-modules/cudatoolkit/redist-wrapper.nix
+++ b/pkgs/development/cuda-modules/cudatoolkit/redist-wrapper.nix
@@ -80,7 +80,7 @@ else
     };
 
     meta = with lib; {
-      description = "A wrapper substituting the deprecated runfile-based CUDA installation";
+      description = "Wrapper substituting the deprecated runfile-based CUDA installation";
       license = licenses.nvidiaCuda;
     };
   }
diff --git a/pkgs/development/cuda-modules/modules/cudnn/default.nix b/pkgs/development/cuda-modules/modules/cudnn/default.nix
index b9fe238e2587b..36a9a26bda523 100644
--- a/pkgs/development/cuda-modules/modules/cudnn/default.nix
+++ b/pkgs/development/cuda-modules/modules/cudnn/default.nix
@@ -5,7 +5,7 @@
   # to the generic release.
   # {
   #   url = options.mkOption {
-  #     description = "The URL to download the tarball from";
+  #     description = "URL to download the tarball from";
   #     type = types.str;
   #   };
   # }
diff --git a/pkgs/development/cuda-modules/modules/generic/manifests/feature/manifest.nix b/pkgs/development/cuda-modules/modules/generic/manifests/feature/manifest.nix
index d4ec8c84c91fb..984668ac34bb4 100644
--- a/pkgs/development/cuda-modules/modules/generic/manifests/feature/manifest.nix
+++ b/pkgs/development/cuda-modules/modules/generic/manifests/feature/manifest.nix
@@ -4,7 +4,7 @@ let
   Release = import ./release.nix { inherit lib config; };
 in
 options.mkOption {
-  description = "A feature manifest is an attribute set which includes a mapping from package name to release";
+  description = "Feature manifest is an attribute set which includes a mapping from package name to release";
   example = trivial.importJSON ../../../../cuda/manifests/feature_11.5.2.json;
   type = types.attrsOf Release.type;
 }
diff --git a/pkgs/development/cuda-modules/modules/generic/manifests/feature/outputs.nix b/pkgs/development/cuda-modules/modules/generic/manifests/feature/outputs.nix
index 6f2fafac9ffc0..961f0b9686859 100644
--- a/pkgs/development/cuda-modules/modules/generic/manifests/feature/outputs.nix
+++ b/pkgs/development/cuda-modules/modules/generic/manifests/feature/outputs.nix
@@ -4,7 +4,7 @@ let
 in
 # https://github.com/ConnorBaker/cuda-redist-find-features/blob/603407bea2fab47f2dfcd88431122a505af95b42/cuda_redist_find_features/manifest/feature/package/package.py
 options.mkOption {
-  description = "A set of outputs that a package can provide.";
+  description = "Set of outputs that a package can provide";
   example = {
     bin = true;
     dev = true;
@@ -16,7 +16,7 @@ options.mkOption {
   type = types.submodule {
     options = {
       bin = options.mkOption {
-        description = "A `bin` output requires that we have a non-empty `bin` directory containing at least one file with the executable bit set.";
+        description = "`bin` output requires that we have a non-empty `bin` directory containing at least one file with the executable bit set";
         type = types.bool;
       };
       dev = options.mkOption {
@@ -44,15 +44,15 @@ options.mkOption {
         type = types.bool;
       };
       lib = options.mkOption {
-        description = "A `lib` output requires that we have a non-empty lib directory containing at least one shared library.";
+        description = "`lib` output requires that we have a non-empty lib directory containing at least one shared library";
         type = types.bool;
       };
       sample = options.mkOption {
-        description = "A `sample` output requires that we have a non-empty `samples` directory.";
+        description = "`sample` output requires that we have a non-empty `samples` directory";
         type = types.bool;
       };
       static = options.mkOption {
-        description = "A `static` output requires that we have a non-empty lib directory containing at least one static library.";
+        description = "`static` output requires that we have a non-empty lib directory containing at least one static library";
         type = types.bool;
       };
     };
diff --git a/pkgs/development/cuda-modules/modules/generic/manifests/feature/package.nix b/pkgs/development/cuda-modules/modules/generic/manifests/feature/package.nix
index 957306dbe1cf0..2563598a78293 100644
--- a/pkgs/development/cuda-modules/modules/generic/manifests/feature/package.nix
+++ b/pkgs/development/cuda-modules/modules/generic/manifests/feature/package.nix
@@ -4,7 +4,7 @@ let
   Outputs = import ./outputs.nix { inherit lib; };
 in
 options.mkOption {
-  description = "A package in the manifest";
+  description = "Package in the manifest";
   example = (import ./release.nix { inherit lib; }).linux-x86_64;
   type = types.submodule { options.outputs = Outputs; };
 }
diff --git a/pkgs/development/cuda-modules/modules/generic/manifests/feature/release.nix b/pkgs/development/cuda-modules/modules/generic/manifests/feature/release.nix
index 13acd373e6c6e..6754ae56e0b01 100644
--- a/pkgs/development/cuda-modules/modules/generic/manifests/feature/release.nix
+++ b/pkgs/development/cuda-modules/modules/generic/manifests/feature/release.nix
@@ -4,7 +4,7 @@ let
   Package = import ./package.nix { inherit lib config; };
 in
 options.mkOption {
-  description = "A release is an attribute set which includes a mapping from platform to package";
+  description = "Release is an attribute set which includes a mapping from platform to package";
   example = (import ./manifest.nix { inherit lib; }).cuda_cccl;
   type = types.attrsOf Package.type;
 }
diff --git a/pkgs/development/cuda-modules/modules/generic/manifests/redistrib/manifest.nix b/pkgs/development/cuda-modules/modules/generic/manifests/redistrib/manifest.nix
index 1fd428be16959..b6f765a38a078 100644
--- a/pkgs/development/cuda-modules/modules/generic/manifests/redistrib/manifest.nix
+++ b/pkgs/development/cuda-modules/modules/generic/manifests/redistrib/manifest.nix
@@ -4,27 +4,27 @@ let
   Release = import ./release.nix { inherit lib; };
 in
 options.mkOption {
-  description = "A redistributable manifest is an attribute set which includes a mapping from package name to release";
+  description = "Redistributable manifest is an attribute set which includes a mapping from package name to release";
   example = trivial.importJSON ../../../../cuda/manifests/redistrib_11.5.2.json;
   type = types.submodule {
     # Allow any attribute name as these will be the package names
     freeformType = types.attrsOf Release.type;
     options = {
       release_date = options.mkOption {
-        description = "The release date of the manifest";
+        description = "Release date of the manifest";
         type = types.nullOr types.str;
         default = null;
         example = "2023-08-29";
       };
       release_label = options.mkOption {
-        description = "The release label of the manifest";
+        description = "Release label of the manifest";
         type = types.nullOr types.str;
         default = null;
         example = "12.2.2";
       };
       release_product = options.mkOption {
         example = "cuda";
-        description = "The release product of the manifest";
+        description = "Release product of the manifest";
         type = types.nullOr types.str;
         default = null;
       };
diff --git a/pkgs/development/cuda-modules/modules/generic/manifests/redistrib/package.nix b/pkgs/development/cuda-modules/modules/generic/manifests/redistrib/package.nix
index 04848ab15dee0..bf3bd478a1239 100644
--- a/pkgs/development/cuda-modules/modules/generic/manifests/redistrib/package.nix
+++ b/pkgs/development/cuda-modules/modules/generic/manifests/redistrib/package.nix
@@ -3,27 +3,27 @@ let
   inherit (lib) options types;
 in
 options.mkOption {
-  description = "A package in the manifest";
+  description = "Package in the manifest";
   example = (import ./release.nix { inherit lib; }).linux-x86_64;
   type = types.submodule {
     options = {
       relative_path = options.mkOption {
-        description = "The relative path to the package";
+        description = "Relative path to the package";
         example = "cuda_cccl/linux-x86_64/cuda_cccl-linux-x86_64-11.5.62-archive.tar.xz";
         type = types.str;
       };
       sha256 = options.mkOption {
-        description = "The sha256 hash of the package";
+        description = "Sha256 hash of the package";
         example = "bbe633d6603d5a96a214dcb9f3f6f6fd2fa04d62e53694af97ae0c7afe0121b0";
         type = types.str;
       };
       md5 = options.mkOption {
-        description = "The md5 hash of the package";
+        description = "Md5 hash of the package";
         example = "e5deef4f6cb71f14aac5be5d5745dafe";
         type = types.str;
       };
       size = options.mkOption {
-        description = "The size of the package as a string";
+        description = "Size of the package as a string";
         type = types.str;
         example = "960968";
       };
diff --git a/pkgs/development/cuda-modules/modules/generic/manifests/redistrib/release.nix b/pkgs/development/cuda-modules/modules/generic/manifests/redistrib/release.nix
index 7b15ba5854dcb..0165ecbb08bc6 100644
--- a/pkgs/development/cuda-modules/modules/generic/manifests/redistrib/release.nix
+++ b/pkgs/development/cuda-modules/modules/generic/manifests/redistrib/release.nix
@@ -4,30 +4,30 @@ let
   Package = import ./package.nix { inherit lib; };
 in
 options.mkOption {
-  description = "A release is an attribute set which includes a mapping from platform to package";
+  description = "Release is an attribute set which includes a mapping from platform to package";
   example = (import ./manifest.nix { inherit lib; }).cuda_cccl;
   type = types.submodule {
     # Allow any attribute name as these will be the platform names
     freeformType = types.attrsOf Package.type;
     options = {
       name = options.mkOption {
-        description = "The full name of the package";
+        description = "Full name of the package";
         example = "CXX Core Compute Libraries";
         type = types.str;
       };
       license = options.mkOption {
-        description = "The license of the package";
+        description = "License of the package";
         example = "CUDA Toolkit";
         type = types.str;
       };
       license_path = options.mkOption {
-        description = "The path to the license of the package";
+        description = "Path to the license of the package";
         example = "cuda_cccl/LICENSE.txt";
         default = null;
         type = types.nullOr types.str;
       };
       version = options.mkOption {
-        description = "The version of the package";
+        description = "Version of the package";
         example = "11.5.62";
         type = types.str;
       };
diff --git a/pkgs/development/cuda-modules/modules/generic/releases/default.nix b/pkgs/development/cuda-modules/modules/generic/releases/default.nix
index 3977fa384f52c..87985ef08134f 100644
--- a/pkgs/development/cuda-modules/modules/generic/releases/default.nix
+++ b/pkgs/development/cuda-modules/modules/generic/releases/default.nix
@@ -5,11 +5,11 @@ let
 in
 {
   options.generic.releases = options.mkOption {
-    description = "A collection of packages targeting different platforms";
+    description = "Collection of packages targeting different platforms";
     type =
       let
         Package = options.mkOption {
-          description = "A package for a specific platform";
+          description = "Package for a specific platform";
           example = {
             version = "8.0.3.4";
             minCudaVersion = "10.2";
@@ -21,19 +21,19 @@ in
             freeformType = types.attrsOf types.anything;
             options = {
               version = options.mkOption {
-                description = "The version of the package";
+                description = "Version of the package";
                 type = majorMinorPatchBuildVersion;
               };
               minCudaVersion = options.mkOption {
-                description = "The minimum CUDA version supported";
+                description = "Minimum CUDA version supported";
                 type = majorMinorVersion;
               };
               maxCudaVersion = options.mkOption {
-                description = "The maximum CUDA version supported";
+                description = "Maximum CUDA version supported";
                 type = majorMinorVersion;
               };
               hash = options.mkOption {
-                description = "The hash of the tarball";
+                description = "Hash of the tarball";
                 type = types.str;
               };
             };
diff --git a/pkgs/development/cuda-modules/modules/generic/types/default.nix b/pkgs/development/cuda-modules/modules/generic/types/default.nix
index 59ea07521c546..31e0a4403e810 100644
--- a/pkgs/development/cuda-modules/modules/generic/types/default.nix
+++ b/pkgs/development/cuda-modules/modules/generic/types/default.nix
@@ -6,34 +6,34 @@ in
   options.generic.types = options.mkOption {
     type = types.attrsOf types.optionType;
     default = { };
-    description = "A set of generic types.";
+    description = "Set of generic types";
   };
   config.generic.types = {
     cudaArch = types.strMatching "^sm_[[:digit:]]+[a-z]?$" // {
       name = "cudaArch";
-      description = "A CUDA architecture name.";
+      description = "CUDA architecture name";
     };
     # https://github.com/ConnorBaker/cuda-redist-find-features/blob/c841980e146f8664bbcd0ba1399e486b7910617b/cuda_redist_find_features/types/_lib_so_name.py
     libSoName = types.strMatching ".*\\.so(\\.[[:digit:]]+)*$" // {
       name = "libSoName";
-      description = "The name of a shared object file.";
+      description = "Name of a shared object file";
     };
 
     majorMinorVersion = types.strMatching "^([[:digit:]]+)\\.([[:digit:]]+)$" // {
       name = "majorMinorVersion";
-      description = "A version number with a major and minor component.";
+      description = "Version number with a major and minor component";
     };
 
     majorMinorPatchVersion = types.strMatching "^([[:digit:]]+)\\.([[:digit:]]+)\\.([[:digit:]]+)$" // {
       name = "majorMinorPatchVersion";
-      description = "A version number with a major, minor, and patch component.";
+      description = "Version number with a major, minor, and patch component";
     };
 
     majorMinorPatchBuildVersion =
       types.strMatching "^([[:digit:]]+)\\.([[:digit:]]+)\\.([[:digit:]]+)\\.([[:digit:]]+)$"
       // {
         name = "majorMinorPatchBuildVersion";
-        description = "A version number with a major, minor, patch, and build component.";
+        description = "Version number with a major, minor, patch, and build component";
       };
   };
 }
diff --git a/pkgs/development/cuda-modules/modules/tensorrt/default.nix b/pkgs/development/cuda-modules/modules/tensorrt/default.nix
index 0d5f035a17128..a214a26e434be 100644
--- a/pkgs/development/cuda-modules/modules/tensorrt/default.nix
+++ b/pkgs/development/cuda-modules/modules/tensorrt/default.nix
@@ -5,11 +5,11 @@
   # to the generic release.
   # {
   #   cudnnVersion = lib.options.mkOption {
-  #     description = "The CUDNN version supported";
+  #     description = "CUDNN version supported";
   #     type = types.nullOr majorMinorVersion;
   #   };
   #   filename = lib.options.mkOption {
-  #     description = "The tarball name";
+  #     description = "Tarball name";
   #     type = types.str;
   #   };
   # }
diff --git a/pkgs/development/cuda-modules/saxpy/default.nix b/pkgs/development/cuda-modules/saxpy/default.nix
index a36cec3e692b3..9b7326cd321fa 100644
--- a/pkgs/development/cuda-modules/saxpy/default.nix
+++ b/pkgs/development/cuda-modules/saxpy/default.nix
@@ -18,12 +18,19 @@ let
     setupCudaHook
     ;
   inherit (lib) getDev getLib getOutput;
+  fs = lib.fileset;
 in
 backendStdenv.mkDerivation {
   pname = "saxpy";
   version = "unstable-2023-07-11";
 
-  src = ./.;
+  src = fs.toSource {
+    root = ./.;
+    fileset = fs.unions [
+      ./CMakeLists.txt
+      ./saxpy.cu
+    ];
+  };
 
   __structuredAttrs = true;
   strictDeps = true;
@@ -52,7 +59,7 @@ backendStdenv.mkDerivation {
   ];
 
   meta = rec {
-    description = "A simple (Single-precision AX Plus Y) FindCUDAToolkit.cmake example for testing cross-compilation";
+    description = "Simple (Single-precision AX Plus Y) FindCUDAToolkit.cmake example for testing cross-compilation";
     license = lib.licenses.mit;
     maintainers = lib.teams.cuda.members;
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/embedded/arduino/arduino-language-server/default.nix b/pkgs/development/embedded/arduino/arduino-language-server/default.nix
index a1d330e4b9a7f..6c0a2885b433d 100644
--- a/pkgs/development/embedded/arduino/arduino-language-server/default.nix
+++ b/pkgs/development/embedded/arduino/arduino-language-server/default.nix
@@ -31,7 +31,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "An Arduino Language Server based on Clangd to Arduino code autocompletion";
+    description = "Arduino Language Server based on Clangd to Arduino code autocompletion";
     mainProgram = "arduino-language-server";
     homepage = "https://github.com/arduino/arduino-language-server";
     changelog = "https://github.com/arduino/arduino-language-server/releases/tag/${version}";
diff --git a/pkgs/development/embedded/arduino/arduinoOTA/default.nix b/pkgs/development/embedded/arduino/arduinoOTA/default.nix
index a8e1b481fde1b..0ae263ec6e9cd 100644
--- a/pkgs/development/embedded/arduino/arduinoOTA/default.nix
+++ b/pkgs/development/embedded/arduino/arduinoOTA/default.nix
@@ -25,7 +25,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/arduino/arduinoOTA";
-    description = "A tool for uploading programs to Arduino boards over a network";
+    description = "Tool for uploading programs to Arduino boards over a network";
     mainProgram = "arduinoOTA";
     license = licenses.gpl3;
     maintainers = with maintainers; [ poelzi ];
diff --git a/pkgs/development/embedded/blackmagic/default.nix b/pkgs/development/embedded/blackmagic/default.nix
index 893a0c889fada..bb09ade35f2ff 100644
--- a/pkgs/development/embedded/blackmagic/default.nix
+++ b/pkgs/development/embedded/blackmagic/default.nix
@@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://github.com/blacksphere/blackmagic";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ pjones emily sorki ];
+    maintainers = with maintainers; [ pjones sorki ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/embedded/blisp/default.nix b/pkgs/development/embedded/blisp/default.nix
index 027ca82324f8a..ba1f42a90b0d4 100644
--- a/pkgs/development/embedded/blisp/default.nix
+++ b/pkgs/development/embedded/blisp/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "An In-System-Programming (ISP) tool & library for Bouffalo Labs RISC-V Microcontrollers and SoCs";
+    description = "In-System-Programming (ISP) tool & library for Bouffalo Labs RISC-V Microcontrollers and SoCs";
     license = licenses.mit;
     mainProgram = "blisp";
     homepage = "https://github.com/pine64/blisp";
diff --git a/pkgs/development/embedded/bossa/default.nix b/pkgs/development/embedded/bossa/default.nix
index 0444a2000a46e..3f55ccdd2e8b2 100644
--- a/pkgs/development/embedded/bossa/default.nix
+++ b/pkgs/development/embedded/bossa/default.nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A flash programming utility for Atmel's SAM family of flash-based ARM microcontrollers";
+    description = "Flash programming utility for Atmel's SAM family of flash-based ARM microcontrollers";
     longDescription = ''
       BOSSA is a flash programming utility for Atmel's SAM family of
       flash-based ARM microcontrollers. The motivation behind BOSSA is
diff --git a/pkgs/development/embedded/fpga/ecpdap/default.nix b/pkgs/development/embedded/fpga/ecpdap/default.nix
index b2d0b0e115310..ef1ba75c45b1f 100644
--- a/pkgs/development/embedded/fpga/ecpdap/default.nix
+++ b/pkgs/development/embedded/fpga/ecpdap/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ecpdap";
-  version = "0.1.8";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "adamgreig";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-KXfEQnbhUUKsCDKhPBjwjF9eJMuiCx5o7gOSzyWv36s=";
+    sha256 = "sha256-pgQqDRdewBSCm1/9/r8E9DBzwSKAaons3e6OLNv5gHM=";
   };
 
-  cargoSha256 = "sha256-BEfsNSzrdV/tnzWk4oOwchOupW6PzZ8TEx7zUzwLBV8=";
+  cargoHash = "sha256-70Aq/gNfRv9JQyYWb7amYkfzFcNGCGbmCfJH4chbyyc=";
 
   nativeBuildInputs = [ pkg-config ];
 
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A tool to program ECP5 FPGAs";
+    description = "Tool to program ECP5 FPGAs";
     mainProgram = "ecpdap";
     longDescription = ''
       ECPDAP allows you to program ECP5 FPGAs and attached SPI flash
diff --git a/pkgs/development/embedded/fpga/icestorm/default.nix b/pkgs/development/embedded/fpga/icestorm/default.nix
index b660571eb3e5f..f6f7e46db56c0 100644
--- a/pkgs/development/embedded/fpga/icestorm/default.nix
+++ b/pkgs/development/embedded/fpga/icestorm/default.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
     '';
     homepage    = "https://github.com/YosysHQ/icestorm/";
     license     = lib.licenses.isc;
-    maintainers = with lib.maintainers; [ shell thoughtpolice emily ];
+    maintainers = with lib.maintainers; [ shell thoughtpolice ];
     platforms   = lib.platforms.all;
   };
 }
diff --git a/pkgs/development/embedded/fpga/tinyprog/default.nix b/pkgs/development/embedded/fpga/tinyprog/default.nix
index e5a448b6fb3d3..b5a9937ad2af4 100644
--- a/pkgs/development/embedded/fpga/tinyprog/default.nix
+++ b/pkgs/development/embedded/fpga/tinyprog/default.nix
@@ -34,7 +34,7 @@ with python3Packages; buildPythonApplication rec {
     homepage = "https://github.com/tinyfpga/TinyFPGA-Bootloader/tree/master/programmer";
     description = "Programmer for FPGA boards using the TinyFPGA USB Bootloader";
     mainProgram = "tinyprog";
-    maintainers = with maintainers; [ emily ];
+    maintainers = with maintainers; [ ];
     license = licenses.asl20;
   };
 }
diff --git a/pkgs/development/embedded/fpga/trellis/default.nix b/pkgs/development/embedded/fpga/trellis/default.nix
index f0ff4a47b4c35..b652f57fa81a1 100644
--- a/pkgs/development/embedded/fpga/trellis/default.nix
+++ b/pkgs/development/embedded/fpga/trellis/default.nix
@@ -64,7 +64,7 @@ in stdenv.mkDerivation rec {
     '';
     homepage    = "https://github.com/YosysHQ/prjtrellis";
     license     = licenses.isc;
-    maintainers = with maintainers; [ q3k thoughtpolice emily rowanG077 ];
+    maintainers = with maintainers; [ q3k thoughtpolice rowanG077 ];
     platforms   = platforms.all;
   };
 }
diff --git a/pkgs/development/embedded/gputils/default.nix b/pkgs/development/embedded/gputils/default.nix
index 69a901ea80f76..8050368e0a95a 100644
--- a/pkgs/development/embedded/gputils/default.nix
+++ b/pkgs/development/embedded/gputils/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gputils.sourceforge.io";
-    description = "A collection of tools for the Microchip (TM) PIC microcontrollers. It includes gpasm, gplink, and gplib";
+    description = "Collection of tools for the Microchip (TM) PIC microcontrollers. It includes gpasm, gplink, and gplib";
     license = licenses.gpl2;
     maintainers = with maintainers; [ yorickvp ];
     platforms = platforms.linux;
diff --git a/pkgs/development/embedded/platformio/chrootenv.nix b/pkgs/development/embedded/platformio/chrootenv.nix
index 55adb0edaa750..50be791a951e7 100644
--- a/pkgs/development/embedded/platformio/chrootenv.nix
+++ b/pkgs/development/embedded/platformio/chrootenv.nix
@@ -11,6 +11,7 @@ let
       git
       xdg-user-dirs
       ncurses
+      udev
     ]) ++ (with python.pkgs; [
       python
       setuptools
@@ -27,7 +28,7 @@ buildFHSEnv {
   # multiPkgs = pio-pkgs;
 
   meta = with lib; {
-    description = "An open source ecosystem for IoT development";
+    description = "Open source ecosystem for IoT development";
     homepage = "https://platformio.org";
     maintainers = with maintainers; [ mog ];
     license = licenses.asl20;
diff --git a/pkgs/development/embedded/platformio/core.nix b/pkgs/development/embedded/platformio/core.nix
index b36d5367e65e3..9013f39ad4244 100644
--- a/pkgs/development/embedded/platformio/core.nix
+++ b/pkgs/development/embedded/platformio/core.nix
@@ -199,7 +199,7 @@ with python3Packages; buildPythonApplication rec {
 
   meta = with lib; {
     changelog = "https://github.com/platformio/platformio-core/releases/tag/v${version}";
-    description = "An open source ecosystem for IoT development";
+    description = "Open source ecosystem for IoT development";
     downloadPage = "https://github.com/platformio/platformio-core";
     homepage = "https://platformio.org";
     license = licenses.asl20;
diff --git a/pkgs/development/embedded/platformio/default.nix b/pkgs/development/embedded/platformio/default.nix
index 956d7dee06cd9..8843c36a9f6a7 100644
--- a/pkgs/development/embedded/platformio/default.nix
+++ b/pkgs/development/embedded/platformio/default.nix
@@ -1,4 +1,4 @@
-{ newScope, fetchFromGitHub, python3Packages }:
+{ newScope, python3Packages }:
 
 let
   callPackage = newScope self;
diff --git a/pkgs/development/embedded/stm8/stm8flash/default.nix b/pkgs/development/embedded/stm8/stm8flash/default.nix
index c2bab12246b2c..a34be169816d7 100644
--- a/pkgs/development/embedded/stm8/stm8flash/default.nix
+++ b/pkgs/development/embedded/stm8/stm8flash/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/vdudouyt/stm8flash";
-    description = "A tool for flashing STM8 MCUs via ST-LINK (V1 and V2)";
+    description = "Tool for flashing STM8 MCUs via ST-LINK (V1 and V2)";
     mainProgram = "stm8flash";
     maintainers = with maintainers; [ pkharvey ];
     license = licenses.gpl2;
diff --git a/pkgs/development/embedded/teensy-cmake-macros/hook.nix b/pkgs/development/embedded/teensy-cmake-macros/hook.nix
index 83a4e6828d4ae..b0abdbdc681ee 100644
--- a/pkgs/development/embedded/teensy-cmake-macros/hook.nix
+++ b/pkgs/development/embedded/teensy-cmake-macros/hook.nix
@@ -11,7 +11,7 @@ makeSetupHook {
   passthru = { inherit teensy-cmake-macros; };
 
   meta = {
-    description = "A setup hook for teensy-cmake-macros";
+    description = "Setup hook for teensy-cmake-macros";
     inherit (teensy-cmake-macros.meta) maintainers platforms broken;
   };
 } ./setup-hook.sh
diff --git a/pkgs/development/embedded/teensy-loader-cli/default.nix b/pkgs/development/embedded/teensy-loader-cli/default.nix
index cd318d7a1ca52..19f7051f0a302 100644
--- a/pkgs/development/embedded/teensy-loader-cli/default.nix
+++ b/pkgs/development/embedded/teensy-loader-cli/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "teensy-loader-cli";
-  version = "2.2";
+  version = "2.3";
 
   src = fetchFromGitHub {
     owner = "PaulStoffregen";
     repo = "teensy_loader_cli";
     rev = finalAttrs.version;
-    sha256 = "sha256-C9Qhd6LhAES7X0sh4rofjAM+gxwuosahVQHeR76LyIo=";
+    sha256 = "sha256-NYqCNWO/nHEuNc9eOzsUqJEHJtZ3XaNz1VYNbeuqEk8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/gnuradio-modules/osmosdr/default.nix b/pkgs/development/gnuradio-modules/osmosdr/default.nix
index 7b3c9ef25f0e7..dbf7513cacc19 100644
--- a/pkgs/development/gnuradio-modules/osmosdr/default.nix
+++ b/pkgs/development/gnuradio-modules/osmosdr/default.nix
@@ -29,8 +29,8 @@ let
   version = {
     "3.7" = "0.1.5";
     "3.8" = "0.2.3";
-    "3.9" = "0.2.5";
-    "3.10" = "0.2.5";
+    "3.9" = "0.2.6";
+    "3.10" = "0.2.6";
   }.${gnuradio.versionAttr.major};
   src = fetchgit {
     url = "https://gitea.osmocom.org/sdr/gr-osmosdr";
@@ -38,8 +38,8 @@ let
     sha256 = {
       "3.7" = "0bf9bnc1c3c4yqqqgmg3nhygj6rcfmyk6pybi27f7461d2cw1drv";
       "3.8" = "sha256-ZfI8MshhZOdJ1U5FlnZKXsg2Rsvb6oKg943ZVYd/IWo=";
-      "3.9" = "sha256-pYPDkSnBzccZ/Tbs5x3bwk34FQewkG42y/vlaVkr2YE=";
-      "3.10" = "sha256-pYPDkSnBzccZ/Tbs5x3bwk34FQewkG42y/vlaVkr2YE=";
+      "3.9" = "sha256-jCUzBY1pYiEtcRQ97t9F6uEMVYw2NU0eoB5Xc2H6pGQ=";
+      "3.10" = "sha256-jCUzBY1pYiEtcRQ97t9F6uEMVYw2NU0eoB5Xc2H6pGQ=";
     }.${gnuradio.versionAttr.major};
   };
 in mkDerivation {
diff --git a/pkgs/development/guile-modules/guile-lib/default.nix b/pkgs/development/guile-modules/guile-lib/default.nix
index 1262cd73f670e..1e5ddbd491436 100644
--- a/pkgs/development/guile-modules/guile-lib/default.nix
+++ b/pkgs/development/guile-modules/guile-lib/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.nongnu.org/guile-lib/";
-    description = "A collection of useful Guile Scheme modules";
+    description = "Collection of useful Guile Scheme modules";
     longDescription = ''
       guile-lib is intended as an accumulation place for pure-scheme Guile
       modules, allowing for people to cooperate integrating their generic Guile
diff --git a/pkgs/development/guile-modules/guile-reader/default.nix b/pkgs/development/guile-modules/guile-reader/default.nix
index fcb6e8c7a8a5d..2a9d20f9aefac 100644
--- a/pkgs/development/guile-modules/guile-reader/default.nix
+++ b/pkgs/development/guile-modules/guile-reader/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.nongnu.org/guile-reader/";
-    description = "A simple framework for building readers for GNU Guile";
+    description = "Simple framework for building readers for GNU Guile";
     longDescription = ''
        Guile-Reader is a simple framework for building readers for GNU Guile.
 
diff --git a/pkgs/development/hare-third-party/hare-compress/default.nix b/pkgs/development/hare-third-party/hare-compress/default.nix
index cc52e3e47eab7..d9065f3bcd2c4 100644
--- a/pkgs/development/hare-third-party/hare-compress/default.nix
+++ b/pkgs/development/hare-third-party/hare-compress/default.nix
@@ -1,8 +1,14 @@
-{ lib, stdenv, hare, harec, fetchFromSourcehut }:
+{
+  lib,
+  stdenv,
+  hareHook,
+  harec,
+  fetchFromSourcehut,
+}:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "hare-compress";
-  version = "unstable-2023-11-01";
+  version = "0-unstable-2023-11-01";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
@@ -11,12 +17,9 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-sz8xPBZaUFye3HH4lkRnH52ye451e6seZXN/qvg87jE=";
   };
 
-  nativeBuildInputs = [ hare ];
+  nativeBuildInputs = [ hareHook ];
 
-  makeFlags = [
-    "HARECACHE=.harecache"
-    "PREFIX=${builtins.placeholder "out"}"
-  ];
+  makeFlags = [ "PREFIX=${builtins.placeholder "out"}" ];
 
   doCheck = true;
 
@@ -25,7 +28,6 @@ stdenv.mkDerivation (finalAttrs: {
     description = "Compression algorithms for Hare";
     license = with licenses; [ mpl20 ];
     maintainers = with maintainers; [ starzation ];
-
     inherit (harec.meta) platforms badPlatforms;
   };
 })
diff --git a/pkgs/development/hare-third-party/hare-ev/default.nix b/pkgs/development/hare-third-party/hare-ev/default.nix
index ecde538823477..cb44606b29407 100644
--- a/pkgs/development/hare-third-party/hare-ev/default.nix
+++ b/pkgs/development/hare-third-party/hare-ev/default.nix
@@ -1,8 +1,9 @@
-{ stdenv
-, lib
-, fetchFromSourcehut
-, hare
-, unstableGitUpdater
+{
+  fetchFromSourcehut,
+  hareHook,
+  lib,
+  stdenv,
+  unstableGitUpdater,
 }:
 
 stdenv.mkDerivation {
@@ -16,14 +17,9 @@ stdenv.mkDerivation {
     hash = "sha256-SXExwDZKlW/2XYzmJUhkLWj6NF/znrv3vY9V0mD5iFQ=";
   };
 
-  nativeCheckInputs = [
-    hare
-  ];
+  nativeCheckInputs = [ hareHook ];
 
-  makeFlags = [
-    "HARECACHE=.harecache"
-    "PREFIX=${builtins.placeholder "out"}"
-  ];
+  makeFlags = [ "PREFIX=${builtins.placeholder "out"}" ];
 
   doCheck = true;
 
@@ -34,6 +30,6 @@ stdenv.mkDerivation {
     homepage = "https://sr.ht/~sircmpwn/hare-ev";
     license = licenses.mpl20;
     maintainers = with maintainers; [ colinsane ];
-    inherit (hare.meta) platforms badPlatforms;
+    inherit (hareHook.meta) platforms badPlatforms;
   };
 }
diff --git a/pkgs/development/hare-third-party/hare-json/default.nix b/pkgs/development/hare-third-party/hare-json/default.nix
index c7a71f342967e..d78b384cb94b7 100644
--- a/pkgs/development/hare-third-party/hare-json/default.nix
+++ b/pkgs/development/hare-third-party/hare-json/default.nix
@@ -1,8 +1,14 @@
-{ lib, stdenv, hare, harec, fetchFromSourcehut }:
+{
+  fetchFromSourcehut,
+  hareHook,
+  harec,
+  lib,
+  stdenv,
+}:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "hare-json";
-  version = "unstable-2023-03-13";
+  version = "0-unstable-2023-03-13";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
@@ -11,12 +17,9 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-Sx+RBiLhR3ftP89AwinVlBg0u0HX4GVP7TLmuofgC9s=";
   };
 
-  nativeBuildInputs = [ hare ];
+  nativeBuildInputs = [ hareHook ];
 
-  makeFlags = [
-    "HARECACHE=.harecache"
-    "PREFIX=${builtins.placeholder "out"}"
-  ];
+  makeFlags = [ "PREFIX=${builtins.placeholder "out"}" ];
 
   doCheck = true;
 
@@ -25,7 +28,6 @@ stdenv.mkDerivation (finalAttrs: {
     description = "This package provides JSON support for Hare";
     license = with licenses; [ mpl20 ];
     maintainers = with maintainers; [ starzation ];
-
     inherit (harec.meta) platforms badPlatforms;
   };
 })
diff --git a/pkgs/development/hare-third-party/hare-png/default.nix b/pkgs/development/hare-third-party/hare-png/default.nix
index 1218398f72b7b..fba410eb8ffdf 100644
--- a/pkgs/development/hare-third-party/hare-png/default.nix
+++ b/pkgs/development/hare-third-party/hare-png/default.nix
@@ -1,8 +1,14 @@
-{ lib, stdenv, hare, hareThirdParty, fetchFromSourcehut }:
+{
+  lib,
+  stdenv,
+  hareHook,
+  hareThirdParty,
+  fetchFromSourcehut,
+}:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "hare-png";
-  version = "unstable-2023-09-09";
+  version = "0-unstable-2023-09-09";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
@@ -11,13 +17,10 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-Q7xylsLVd/sp57kv6WzC7QHGN1xOsm7YEsYCbY/zi1Q=";
   };
 
-  nativeBuildInputs = [ hare ];
+  nativeBuildInputs = [ hareHook ];
   propagatedBuildInputs = [ hareThirdParty.hare-compress ];
 
-  makeFlags = [
-    "PREFIX=${builtins.placeholder "out"}"
-    "HARECACHE=.harecache"
-  ];
+  makeFlags = [ "PREFIX=${builtins.placeholder "out"}" ];
 
   doCheck = true;
 
@@ -26,7 +29,6 @@ stdenv.mkDerivation (finalAttrs: {
     description = "PNG implementation for Hare";
     license = with licenses; [ mpl20 ];
     maintainers = with maintainers; [ starzation ];
-
-    inherit (hare.meta) platforms badPlatforms;
+    inherit (hareHook.meta) platforms badPlatforms;
   };
 })
diff --git a/pkgs/development/hare-third-party/hare-ssh/default.nix b/pkgs/development/hare-third-party/hare-ssh/default.nix
index d25669f366430..bf6e043fb977a 100644
--- a/pkgs/development/hare-third-party/hare-ssh/default.nix
+++ b/pkgs/development/hare-third-party/hare-ssh/default.nix
@@ -1,8 +1,13 @@
-{ lib, stdenv, hare, hareThirdParty, fetchFromSourcehut }:
+{
+  fetchFromSourcehut,
+  hareHook,
+  lib,
+  stdenv,
+}:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "hare-ssh";
-  version = "unstable-2023-11-16";
+  version = "0-unstable-2023-11-16";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
@@ -11,12 +16,9 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-I43TLPoImBsvkgV3hDy9dw0pXVt4ezINnxFtEV9P2/M=";
   };
 
-  nativeBuildInputs = [ hare ];
+  nativeBuildInputs = [ hareHook ];
 
-  makeFlags = [
-    "PREFIX=${builtins.placeholder "out"}"
-    "HARECACHE=.harecache"
-  ];
+  makeFlags = [ "PREFIX=${builtins.placeholder "out"}" ];
 
   doCheck = true;
 
@@ -26,6 +28,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = with licenses; [ mpl20 ];
     maintainers = with maintainers; [ patwid ];
 
-    inherit (hare.meta) platforms badPlatforms;
+    inherit (hareHook.meta) platforms badPlatforms;
   };
 })
diff --git a/pkgs/development/hare-third-party/hare-toml/default.nix b/pkgs/development/hare-third-party/hare-toml/default.nix
index ab760eb5fd24d..9f2ab6f366f73 100644
--- a/pkgs/development/hare-third-party/hare-toml/default.nix
+++ b/pkgs/development/hare-third-party/hare-toml/default.nix
@@ -1,9 +1,10 @@
-{ stdenv
-, hare
-, scdoc
-, lib
-, fetchFromGitea
-, nix-update-script
+{
+  fetchFromGitea,
+  hareHook,
+  lib,
+  nix-update-script,
+  scdoc,
+  stdenv,
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "hare-toml";
@@ -19,13 +20,10 @@ stdenv.mkDerivation (finalAttrs: {
 
   nativeBuildInputs = [
     scdoc
-    hare
+    hareHook
   ];
 
-  makeFlags = [
-    "HARECACHE=.harecache"
-    "PREFIX=${builtins.placeholder "out"}"
-  ];
+  makeFlags = [ "PREFIX=${builtins.placeholder "out"}" ];
 
   checkTarget = "check_local";
 
@@ -36,10 +34,10 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "A TOML implementation for Hare";
+    description = "TOML implementation for Hare";
     homepage = "https://codeberg.org/lunacb/hare-toml";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ onemoresuza ];
-    inherit (hare.meta) platforms badPlatforms;
+    inherit (hareHook.meta) platforms badPlatforms;
   };
 })
diff --git a/pkgs/development/haskell-modules/cabal2nix-unstable.nix b/pkgs/development/haskell-modules/cabal2nix-unstable.nix
index b16a9abfe8a2e..55894a0ea2a90 100644
--- a/pkgs/development/haskell-modules/cabal2nix-unstable.nix
+++ b/pkgs/development/haskell-modules/cabal2nix-unstable.nix
@@ -8,10 +8,10 @@
 }:
 mkDerivation {
   pname = "cabal2nix";
-  version = "unstable-2024-04-21";
+  version = "unstable-2024-05-20";
   src = fetchzip {
-    url = "https://github.com/NixOS/cabal2nix/archive/f8e6bf749a158a5ed866c57deee907b5f16c38e5.tar.gz";
-    sha256 = "0c73mvza65iy46fv8c8cadsy7klk4jzmimm1mfdavvm8i2cr5476";
+    url = "https://github.com/NixOS/cabal2nix/archive/79b73778680e2ae27302dce430beee302299f496.tar.gz";
+    sha256 = "0xjrnf9x1f4jl4bsxc6kv5q7rsbn3vs0ddidj9qf6mzzzqxq14p3";
   };
   postUnpack = "sourceRoot+=/cabal2nix; echo source root reset to $sourceRoot";
   isLibrary = true;
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index 5e99af26502fd..e1efb46422a37 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -56,7 +56,21 @@ self: super: {
         };
     in
     {
-      cabal-install = super.cabal-install.overrideScope cabalInstallOverlay;
+      cabal-install =
+        let
+          cabal-install = super.cabal-install.overrideScope cabalInstallOverlay;
+          scope = cabal-install.scope;
+        in
+        # Some dead code is not properly eliminated on aarch64-darwin, leading
+        # to bogus references to some dependencies.
+        overrideCabal (old: lib.optionalAttrs (pkgs.stdenv.hostPlatform.isDarwin && pkgs.stdenv.hostPlatform.isAarch64) {
+          postInstall = ''
+            ${old.postInstall or ""}
+            remove-references-to -t ${scope.HTTP} "$out/bin/.cabal-wrapped"
+            remove-references-to -t ${scope.Cabal} "$out/bin/.cabal-wrapped"
+          '';
+        }) cabal-install;
+
       cabal-install-solver = super.cabal-install-solver.overrideScope cabalInstallOverlay;
 
       # Needs cabal-install >= 3.8 /as well as/ matching Cabal
@@ -220,10 +234,16 @@ self: super: {
   fused-effects-random = doJailbreak super.fused-effects-random;
   fused-effects-readline = doJailbreak super.fused-effects-readline;
 
-  # fix tests failure for base≥4.15 (https://github.com/kim/leveldb-haskell/pull/41)
-  leveldb-haskell = appendPatch (fetchpatch {
-    url = "https://github.com/kim/leveldb-haskell/commit/f5249081f589233890ddb1945ec548ca9fb717cf.patch";
-    sha256 = "14gllipl28lqry73c5dnclsskzk1bsrrgazibl4lkl8z98j2csjb";
+  leveldb-haskell = overrideCabal (drv: {
+    version = "2024-05-05-unstable";
+    # Fix tests on mtl ≥ 2.3
+    # https://github.com/kim/leveldb-haskell/pull/42
+    src = pkgs.fetchFromGitHub {
+      owner = "kim";
+      repo = "leveldb-haskell";
+      rev = "3a505f3a7de0f5d14463538d7c2c9a9881a60eb9";
+      sha256 = "sha256-okUn5ZuWcj8vPr0GWXvO1LygNCrDfttkDaUoOt+FLA0=";
+    };
   }) super.leveldb-haskell;
 
   # Arion's test suite needs a Nixpkgs, which is cumbersome to do from Nixpkgs
@@ -254,12 +274,6 @@ self: super: {
     sha256 = "1c7knpvxr7p8c159jkyk6w29653z5yzgjjqj11130bbb8mk9qhq7";
   }) super.c2hsc;
 
-  # Some Hackage packages reference this attribute, which exists only in the
-  # GHCJS package set. We provide a dummy version here to fix potential
-  # evaluation errors.
-  ghcjs-base = null;
-  ghcjs-prim = null;
-
   ghc-debug-client = doJailbreak super.ghc-debug-client;
 
   # Test failure.  Tests also disabled in Stackage:
@@ -423,22 +437,22 @@ self: super: {
 
   # Manually maintained
   cachix-api = overrideCabal (drv: {
-    version = "1.7.3";
+    version = "1.7.4";
     src = pkgs.fetchFromGitHub {
       owner = "cachix";
       repo = "cachix";
-      rev = "v1.7.3";
-      sha256 = "sha256-BBhOFK4OuCD7ilNrdfeAILBR2snxl29gBk58szZ4460=";
+      rev = "v1.7.4";
+      sha256 = "sha256-lHy5kgx6J8uD+16SO47dPrbob98sh+W1tf4ceSqPVK4=";
     };
     postUnpack = "sourceRoot=$sourceRoot/cachix-api";
   }) super.cachix-api;
   cachix = (overrideCabal (drv: {
-    version = "1.7.3";
+    version = "1.7.4";
     src = pkgs.fetchFromGitHub {
       owner = "cachix";
       repo = "cachix";
-      rev = "v1.7.3";
-      sha256 = "sha256-BBhOFK4OuCD7ilNrdfeAILBR2snxl29gBk58szZ4460=";
+      rev = "v1.7.4";
+      sha256 = "sha256-lHy5kgx6J8uD+16SO47dPrbob98sh+W1tf4ceSqPVK4=";
     };
     postUnpack = "sourceRoot=$sourceRoot/cachix";
   }) (lib.pipe
@@ -448,13 +462,6 @@ self: super: {
         [
          (addBuildTool self.hercules-ci-cnix-store.nixPackage)
          (addBuildTool pkgs.buildPackages.pkg-config)
-         (addBuildDepend self.immortal)
-         # should be removed once hackage packages catch up
-         (addBuildDepend self.crypton)
-         (addBuildDepend self.generic-lens)
-         (addBuildDepend self.amazonka)
-         (addBuildDepend self.amazonka-core)
-         (addBuildDepend self.amazonka-s3)
         ]
   ));
 
@@ -964,12 +971,12 @@ self: super: {
   # See https://github.com/valderman/selda/issues/187
   inherit (let
     mkSeldaPackage = name: overrideCabal (drv: {
-      version = "2023-02-05-unstable";
+      version = "2024-05-05-unstable";
       src = pkgs.fetchFromGitHub {
         owner = "valderman";
         repo = "selda";
-        rev = "ab9619db13b93867d1a244441bb4de03d3e1dadb";
-        hash = "sha256-P0nqAYzbeTyEEgzMij/3mKcs++/p/Wgc7Y6bDudXt2U=";
+        rev = "50c3ba5c5da72bb758a4112363ba2fe1c0e968ea";
+        hash = "sha256-LEAJsSsDL0mmVHntnI16fH8m5DmePfcU0hFw9ErqTgQ=";
       } + "/${name}";
     }) super.${name};
   in
@@ -1360,18 +1367,17 @@ self: super: {
     '';
   }) super.PortMidi;
 
-  # Fix for base >= 4.11
   scat = overrideCabal (drv: {
     patches = [
-      # Fix build with base >= 4.11
+      # Fix build with base >= 4.11 (https://github.com/redelmann/scat/pull/6)
       (fetchpatch {
         url = "https://github.com/redelmann/scat/commit/429f22944b7634b8789cb3805292bcc2b23e3e9f.diff";
         hash = "sha256-FLr1KfBaSYzI6MiZIBY1CkgAb5sThvvgjrSAN8EV0h4=";
       })
-      # Fix build with vector >= 0.13
+      # Fix build with vector >= 0.13, mtl >= 2.3 (https://github.com/redelmann/scat/pull/8)
       (fetchpatch {
-        url = "https://github.com/redelmann/scat/commit/e21cc9c17b5b605b5bc0aacad66d44bbe0beb8c4.diff";
-        hash = "sha256-MifHb2EKZx8skOcs+2t54CzxAS4PaEC0OTEfq4yVXzk=";
+        url = "https://github.com/redelmann/scat/compare/e8e064f7e6a152fe25a6ccd743573a16974239d0..c6a3636548d628f32d8edc73a333188ce24141a7.patch";
+        hash = "sha256-BU4MUn/TnZHpZBlX1vDHE7QZva5yhlLTb8zwpx7UScI";
       })
     ];
   }) super.scat;
@@ -1554,13 +1560,36 @@ self: super: {
       doJailbreak
     ];
 
-  jsaddle-dom = overrideCabal (old: {
-    postPatch = old.postPatch or "" + ''
-      rm Setup.hs
-    '';
-  }) super.jsaddle-dom;
-  jsaddle-hello = doJailbreak super.jsaddle-hello;
-  ghcjs-dom-hello = doJailbreak super.ghcjs-dom-hello;
+  ghcjs-dom-hello = appendPatches [
+    (fetchpatch {
+      url = "https://github.com/ghcjs/ghcjs-dom-hello/commit/53991df6a4eba9f1e9633eb22f6a0486a79491c3.patch";
+      sha256 = "sha256-HQeUgjvzYyY14+CDYiMahAMn7fBcy2d7p8/kqGq+rnI=";
+    })
+    (fetchpatch {
+      url = "https://github.com/ghcjs/ghcjs-dom-hello/commit/d766d937121f7ea5c4c154bd533a1eae47f531c9.patch";
+      sha256 = "sha256-QTkH+L+JMwGyuoqzHBnrokT7KzpHC4YiAWoeiaFBLUw=";
+    })
+    (fetchpatch {
+      url = "https://github.com/ghcjs/ghcjs-dom-hello/commit/831464d995f4033c9aa84f9ed9fb37a268f34d4e.patch";
+      sha256 = "sha256-hQMy+78geTuxd3kbdiyYqoAFrauu90HbpPi0EEKjMzM=";
+    })
+   ] super.ghcjs-dom-hello;
+
+  # Needs https://github.com/ghcjs/jsaddle-hello/pull/5 and hackage release
+  jsaddle-hello = appendPatches [
+    (fetchpatch {
+      url = "https://github.com/ghcjs/jsaddle-hello/commit/c4de837675117b821c50a5079d20d84ec16ff26a.patch";
+      sha256 = "sha256-NsM7QqNLt5V8i5bveYgMrawGnZVsIuAoJfBF75jBwV0=";
+    })
+    (fetchpatch {
+      url = "https://github.com/ghcjs/jsaddle-hello/commit/5c437363833684ea951ec74a0d0fdf5b6fbaca85.patch";
+      sha256 = "sha256-CUyZsts0FAQ3c8Z+zfvwbmlAJCMcidV80n8dA/SoRls=";
+    })
+    (fetchpatch {
+      url = "https://github.com/ghcjs/jsaddle-hello/commit/e2da9e266fbfa8f7fcf3009ab6cfbf825a8bcf7a.patch";
+      sha256 = "sha256-WL0CcnlMt6KI7MOZMg74fNN/I4gYSO3n+GiaXB2BOP0=";
+    })
+  ] super.jsaddle-hello;
 
   # Too strict upper bounds on text
   lsql-csv = doJailbreak super.lsql-csv;
@@ -1684,6 +1713,14 @@ self: super: {
   # Test suite fails to compile https://github.com/agrafix/Spock/issues/177
   Spock = dontCheck super.Spock;
 
+  Spock-core = appendPatches [
+    (fetchpatch {
+      url = "https://github.com/agrafix/Spock/commit/d0b51fa60a83bfa5c1b5fc8fced18001e7321701.patch";
+      sha256 = "sha256-l9voiczOOdYVBP/BNEUvqARb21t0Rp2kpsNbRFUWSLg=";
+      stripLen = 1;
+    })
+  ] (doJailbreak super.Spock-core);
+
   # https://github.com/strake/filtrable.hs/issues/6
   filtrable = doJailbreak super.filtrable;
 
@@ -2640,18 +2677,6 @@ self: super: {
   # https://github.com/ngless-toolkit/ngless/issues/152
   NGLess = dontCheck super.NGLess;
 
-  # Raise version bounds: https://github.com/well-typed/lens-sop/pull/4
-  lens-sop = appendPatches [
-    (fetchpatch {
-      url = "https://github.com/well-typed/lens-sop/commit/d8657f27c12191a7c0a91701c0fcd9a590e0090e.patch";
-      sha256 = "sha256-9ODfbOb6Bs3EVTY9b7cUvkNmqzzZPWUmgmlAneaN3Tw=";
-    })
-    (fetchpatch {
-      url = "https://github.com/well-typed/lens-sop/commit/b7ecffdeb836d19373871659e2f8cd24da6f7312.patch";
-      sha256 = "sha256-hDUQ2fW9Qyom65YvtW9bsbz7XtueRmdsAbAB42D+gu4=";
-    })
-  ] super.lens-sop;
-
   # Raise version bounds: https://github.com/kosmikus/records-sop/pull/15
   records-sop = appendPatch (fetchpatch {
     url = "https://github.com/kosmikus/records-sop/commit/fb149f453a816ff14d0cb20b3ea56b80ff49d9f1.patch";
diff --git a/pkgs/development/haskell-modules/configuration-darwin.nix b/pkgs/development/haskell-modules/configuration-darwin.nix
index ee3f0503d994b..16e5d2613fb2e 100644
--- a/pkgs/development/haskell-modules/configuration-darwin.nix
+++ b/pkgs/development/haskell-modules/configuration-darwin.nix
@@ -110,6 +110,12 @@ self: super: ({
         substituteInPlace System/X509/MacOS.hs --replace security /usr/bin/security
       '' + (drv.postPatch or "");
     }) super.x509-system;
+  crypton-x509-system = overrideCabal (drv:
+    lib.optionalAttrs (!pkgs.stdenv.cc.nativeLibc) {
+      postPatch = ''
+        substituteInPlace System/X509/MacOS.hs --replace security /usr/bin/security
+      '' + (drv.postPatch or "");
+    }) super.crypton-x509-system;
 
   # https://github.com/haskell-foundation/foundation/pull/412
   foundation = dontCheck super.foundation;
@@ -317,6 +323,20 @@ self: super: ({
   # Tests fail on macOS https://github.com/mrkkrp/zip/issues/112
   zip = dontCheck super.zip;
 
+  warp = super.warp.overrideAttrs (drv: {
+    __darwinAllowLocalNetworking = true;
+  });
+
+  ghcjs-dom-hello = overrideCabal (drv: {
+    libraryHaskellDepends = with self; [ jsaddle jsaddle-warp ];
+    executableHaskellDepends = with self; [ ghcjs-dom jsaddle-wkwebview ];
+  }) super.ghcjs-dom-hello;
+
+  jsaddle-hello = overrideCabal (drv: {
+    libraryHaskellDepends = with self; [ jsaddle lens ];
+    executableHaskellDepends = with self; [ jsaddle-warp jsaddle-wkwebview ];
+  }) super.jsaddle-hello;
+
   jsaddle-wkwebview = overrideCabal (drv: {
     libraryFrameworkDepends = with pkgs.buildPackages.darwin.apple_sdk.frameworks; [ Cocoa WebKit ];
     libraryHaskellDepends = with self; [ aeson data-default jsaddle ]; # cabal2nix doesn't add darwin-only deps
@@ -325,8 +345,37 @@ self: super: ({
     libraryHaskellDepends = with self; [ base bytestring jsaddle-wkwebview reflex reflex-dom-core text ]; # cabal2nix doesn't add darwin-only deps
   }) super.reflex-dom;
 
+  # Remove a problematic assert, the length is sometimes 1 instead of 2 on darwin
+  di-core = overrideCabal (drv: {
+    preConfigure = ''
+      substituteInPlace test/Main.hs --replace \
+        "2 @=? List.length (List.nub (List.sort (map Di.log_time logs)))" ""
+    '';
+  }) super.di-core;
+
 } // lib.optionalAttrs pkgs.stdenv.isAarch64 {  # aarch64-darwin
 
+  # Workarounds for justStaticExecutables on aarch64-darwin. Since dead code
+  # elimination barely works on aarch64-darwin, any package that has a
+  # dependency that uses a Paths_ module will incur a reference on GHC, making
+  # it fail with disallowGhcReference (which is set by justStaticExecutables).
+  #
+  # To address this, you can either manually remove the references causing this
+  # after verifying they are indeed erroneous (e.g. cabal2nix) or just disable
+  # the check, sticking with the status quo. Ideally there'll be zero cases of
+  # the latter in the future!
+  inherit (
+    lib.mapAttrs (_: overrideCabal (old: {
+      postInstall = ''
+        remove-references-to -t ${self.hpack} "$out/bin/cabal2nix"
+        # Note: The `data` output is needed at runtime.
+        remove-references-to -t ${self.distribution-nixpkgs.out} "$out/bin/hackage2nix"
+
+        ${old.postInstall or ""}
+      '';
+    })) super
+  ) cabal2nix cabal2nix-unstable;
+
   # https://github.com/fpco/unliftio/issues/87
   unliftio = dontCheck super.unliftio;
   # This is the same issue as above; the rio tests call functions in unliftio
@@ -363,4 +412,12 @@ self: super: ({
   # same
   # https://hydra.nixos.org/build/174540882/nixlog/9
   jacinda = dontCheck super.jacinda;
+
+  # Greater floating point error on x86_64-darwin (!) for some reason
+  # https://github.com/ekmett/ad/issues/113
+  ad = overrideCabal (drv: {
+    testFlags = drv.testFlags or [ ] ++ [
+      "-p" "!/issue-108/"
+    ];
+  }) super.ad;
 })
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
index 961d4caffb80e..a631a2f60db34 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
@@ -68,6 +68,7 @@ self: super: {
   ] (super.hashable.override {
     os-string = null;
   });
+  hashable-time = doDistribute (unmarkBroken super.hashable-time);
 
   # Too strict lower bounds on base
   primitive-addr = doJailbreak super.primitive-addr;
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
index b19a5e9b1d904..4a194192ee4b4 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
@@ -95,7 +95,7 @@ self: super: {
   ghc-lib-parser-ex = addBuildDepend self.ghc-lib-parser super.ghc-lib-parser-ex;
 
   # This became a core library in ghc 8.10., so we don’t have an "exception" attribute anymore.
-  exceptions = self.exceptions_0_10_7;
+  exceptions = self.exceptions_0_10_8;
 
   # vector 0.12.2 indroduced doctest checks that don’t work on older compilers
   vector = dontCheck super.vector;
diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
index cdaa712ecd9aa..45cbd487762b2 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
@@ -86,7 +86,12 @@ self: super: {
   haskell-language-server =  throw "haskell-language-server has dropped support for ghc 9.0 in version 2.4.0.0, please use a newer ghc version or an older nixpkgs version";
 
   # Needs to use ghc-lib due to incompatible GHC
-  ghc-tags = doDistribute (addBuildDepend self.ghc-lib self.ghc-tags_1_6);
+  ghc-tags = doDistribute (addBuildDepend self.ghc-lib self.ghc-tags_1_5);
+
+  # ghc-lib >= 9.6 and friends no longer build with GHC 9.0
+  ghc-lib-parser = doDistribute self.ghc-lib-parser_9_2_8_20230729;
+  ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_2_1_1;
+  ghc-lib = doDistribute self.ghc-lib_9_2_8_20230729;
 
   # Test suite sometimes segfaults with GHC 9.0.1 and 9.0.2
   # https://github.com/ekmett/reflection/issues/51
diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix
index 14084bcf03d54..4edc24f10add2 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix
@@ -69,6 +69,9 @@ self: super: {
   # https://github.com/mokus0/th-extras/pull/21
   th-extras = doJailbreak super.th-extras;
 
+  # not in Stackage, needs to match ghc-lib
+  ghc-tags = doDistribute self.ghc-tags_1_7;
+
   #
   # Too strict bounds without upstream fix
   #
diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix
index 551a0ee99baee..c8750bc22631d 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix
@@ -55,12 +55,12 @@ self: super: {
   th-abstraction = doDistribute self.th-abstraction_0_7_0_0;
   ghc-lib-parser = doDistribute self.ghc-lib-parser_9_8_2_20240223;
   ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_8_0_2;
-  ghc-lib = doDistribute self.ghc-lib_9_10_1_20240511;
+  ghc-lib = doDistribute self.ghc-lib_9_8_2_20240223;
   megaparsec = doDistribute self.megaparsec_9_6_1;
   # TODO: remove when aeson updates or launches a revision
   # see https://github.com/haskell/aeson/issues/1089 and https://github.com/haskell/aeson/pulls/1088
-  aeson = doJailbreak (doDistribute self.aeson_2_2_1_0);
-  attoparsec-aeson = doDistribute self.attoparsec-aeson_2_2_0_1;
+  aeson = doJailbreak (doDistribute self.aeson_2_2_2_0);
+  attoparsec-aeson = doDistribute self.attoparsec-aeson_2_2_2_0;
   xmonad = doDistribute self.xmonad_0_18_0;
   apply-refact = self.apply-refact_0_14_0_0;
   ormolu = self.ormolu_0_7_4_0;
@@ -68,6 +68,7 @@ self: super: {
   stylish-haskell = self.stylish-haskell_0_14_6_0;
   hlint = self.hlint_3_8;
   ghc-syntax-highlighter = self.ghc-syntax-highlighter_0_0_11_0;
+  websockets = self.websockets_0_13_0_0;
 
   # A given major version of ghc-exactprint only supports one version of GHC.
   ghc-exactprint = self.ghc-exactprint_1_8_0_0;
@@ -131,8 +132,10 @@ self: super: {
   hip = appendConfigureFlag "--ghc-options=-fsimpl-tick-factor=200" super.hip;
 
   # Fix build with text-2.x.
-  libmpd = appendPatch (pkgs.fetchpatch
-      { url = "https://github.com/vimus/libmpd-haskell/pull/138.patch";
+  libmpd = appendPatch
+    (pkgs.fetchpatch {
+        name = "138.patch"; # https://github.com/vimus/libmpd-haskell/pull/138
+        url = "https://github.com/vimus/libmpd-haskell/compare/95d3b3bab5858d6d1f0e079d0ab7c2d182336acb...f1cbf247261641565a3937b90721f7955d254c5e.patch";
         sha256 = "Q4fA2J/Tq+WernBo+UIMdj604ILOMlIYkG4Pr046DfM=";
       })
     super.libmpd;
diff --git a/pkgs/development/haskell-modules/configuration-ghcjs.nix b/pkgs/development/haskell-modules/configuration-ghcjs-8.x.nix
index f90f3094ab9e4..3f6e399f795b8 100644
--- a/pkgs/development/haskell-modules/configuration-ghcjs.nix
+++ b/pkgs/development/haskell-modules/configuration-ghcjs-8.x.nix
@@ -24,10 +24,15 @@ self: super:
     aeson = self.aeson_1_5_6_0;
   });
 
+  # Included in ghcjs itself
+  ghcjs-prim = null;
+
+  ghcjs-websockets = markUnbroken super.ghcjs-websockets;
+
   # GHCJS does not ship with the same core packages as GHC.
   # https://github.com/ghcjs/ghcjs/issues/676
   stm = doJailbreak self.stm_2_5_3_1;
-  exceptions = dontCheck self.exceptions_0_10_7;
+  exceptions = dontCheck self.exceptions_0_10_8;
 
 ## OTHER PACKAGES
 
diff --git a/pkgs/development/haskell-modules/configuration-ghcjs-9.x.nix b/pkgs/development/haskell-modules/configuration-ghcjs-9.x.nix
new file mode 100644
index 0000000000000..3b1f8dc4558e1
--- /dev/null
+++ b/pkgs/development/haskell-modules/configuration-ghcjs-9.x.nix
@@ -0,0 +1,22 @@
+{ pkgs, haskellLib }:
+
+with haskellLib;
+
+# cabal2nix doesn't properly add dependencies conditional on arch(javascript)
+(self: super: {
+  ghcjs-base = addBuildDepends (with self; [
+    aeson
+    attoparsec
+    dlist
+    hashable
+    primitive
+    scientific
+    unordered-containers
+    vector
+  ]) super.ghcjs-base;
+
+  ghcjs-dom = addBuildDepend self.ghcjs-dom-javascript super.ghcjs-dom;
+  ghcjs-dom-javascript = addBuildDepend self.ghcjs-base super.ghcjs-dom-javascript;
+  jsaddle = addBuildDepend self.ghcjs-base super.jsaddle;
+  jsaddle-dom = addBuildDepend self.ghcjs-base super.jsaddle-dom;
+})
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
index d2fd55ccc26ac..ebc065df7ef47 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
@@ -742,6 +742,7 @@ broken-packages:
   - changelog-d # failure in job https://hydra.nixos.org/build/257082502 at 2024-04-27
   - changelog-d # failure in job https://hydra.nixos.org/build/259607598 at 2024-05-15
   - changelog-d # failure in job https://hydra.nixos.org/build/259957724 at 2024-05-19
+  - changelog-d # failure in job https://hydra.nixos.org/build/260724402 at 2024-05-25
   - changelogged # failure in job https://hydra.nixos.org/build/233211675 at 2023-09-02
   - character-cases # failure in job https://hydra.nixos.org/build/233197636 at 2023-09-02
   - charter # failure in job https://hydra.nixos.org/build/233237264 at 2023-09-02
@@ -764,7 +765,6 @@ broken-packages:
   - ChristmasTree # failure in job https://hydra.nixos.org/build/233259648 at 2023-09-02
   - chronograph # failure in job https://hydra.nixos.org/build/233232822 at 2023-09-02
   - chr-parse # failure in job https://hydra.nixos.org/build/233243933 at 2023-09-02
-  - chs-cabal # failure in job https://hydra.nixos.org/build/259964491 at 2024-05-19
   - chunky # failure in job https://hydra.nixos.org/build/233216440 at 2023-09-02
   - church # failure in job https://hydra.nixos.org/build/233223920 at 2023-09-02
   - church-maybe # failure in job https://hydra.nixos.org/build/233258572 at 2023-09-02
@@ -1992,13 +1992,14 @@ broken-packages:
   - ghci-history-parser # failure in job https://hydra.nixos.org/build/233204448 at 2023-09-02
   - ghci-lib # failure in job https://hydra.nixos.org/build/233216644 at 2023-09-02
   - ghci-ng # failure in job https://hydra.nixos.org/build/233229533 at 2023-09-02
+  - ghc-internal # failure in job https://hydra.nixos.org/build/260723678 at 2024-05-25
   - ghcitui # failure in job https://hydra.nixos.org/build/252737339 at 2024-03-16
   - ghcjs-base-stub # timeout
-  - ghcjs-dom-javascript # failure in job https://hydra.nixos.org/build/255688382 at 2024-04-16
   - ghcjs-dom-jsffi # failure in job https://hydra.nixos.org/build/233215225 at 2023-09-02
   - ghcjs-fetch # timeout
   - ghcjs-promise # failure in job https://hydra.nixos.org/build/233243985 at 2023-09-02
   - ghcjs-xhr # failure in job https://hydra.nixos.org/build/233235693 at 2023-09-02
+  - ghcjs-websockets # Does not work on the js backend added in 9.6+, only on ghcjs, where we markUnbroken
   - ghc-justdoit # failure in job https://hydra.nixos.org/build/233221884 at 2023-09-02
   - ghclive # failure in job https://hydra.nixos.org/build/233231592 at 2023-09-02
   - ghc-man-completion # failure in job https://hydra.nixos.org/build/233245740 at 2023-09-02
@@ -2013,7 +2014,6 @@ broken-packages:
   - ghc-syb # failure in job https://hydra.nixos.org/build/233236783 at 2023-09-02
   - ghc-syb-utils # failure in job https://hydra.nixos.org/build/233229196 at 2023-09-02
   - ghc-symbol # failure in job https://hydra.nixos.org/build/252710738 at 2024-03-16
-  - ghc-tags # failure in job https://hydra.nixos.org/build/252730131 at 2024-03-16
   - ghc-tags-plugin # failure in job https://hydra.nixos.org/build/233229916 at 2023-09-02
   - ghc-time-alloc-prof # failure in job https://hydra.nixos.org/build/233242289 at 2023-09-02
   - ghc-usage # failure in job https://hydra.nixos.org/build/233199565 at 2023-09-02
@@ -2609,7 +2609,6 @@ broken-packages:
   - hledger-chart # failure in job https://hydra.nixos.org/build/233205387 at 2023-09-02
   - hledger-diff # failure in job https://hydra.nixos.org/build/233199639 at 2023-09-02
   - hledger-flow # failure in job https://hydra.nixos.org/build/233252169 at 2023-09-02
-  - hledger-iadd # failure in updateAutotoolsGnuConfigScriptsPhase in job https://hydra.nixos.org/build/238288021 at 2023-10-21
   - hledger-irr # failure in job https://hydra.nixos.org/build/233230276 at 2023-09-02
   - hledger-makeitso # failure in job https://hydra.nixos.org/build/233213046 at 2023-09-02
   - hledger-vty # failure in job https://hydra.nixos.org/build/233191782 at 2023-09-02
@@ -2897,7 +2896,6 @@ broken-packages:
   - HTicTacToe # failure in job https://hydra.nixos.org/build/233235397 at 2023-09-02
   - htiled # failure in job https://hydra.nixos.org/build/233219305 at 2023-09-02
   - htlset # failure in job https://hydra.nixos.org/build/233203886 at 2023-09-02
-  - html-parse # failure in job https://hydra.nixos.org/build/233241759 at 2023-09-02
   - html-rules # failure in job https://hydra.nixos.org/build/233200615 at 2023-09-02
   - html-tokenizer # failure in job https://hydra.nixos.org/build/233243581 at 2023-09-02
   - htoml # failure in job https://hydra.nixos.org/build/233246670 at 2023-09-02
@@ -3436,7 +3434,6 @@ broken-packages:
   - lens-process # failure in job https://hydra.nixos.org/build/233242948 at 2023-09-02
   - lensref # failure in job https://hydra.nixos.org/build/233205479 at 2023-09-02
   - lens-simple # failure in job https://hydra.nixos.org/build/233245452 at 2023-09-02
-  - lens-sop # failure in job https://hydra.nixos.org/build/259961739 at 2024-05-19
   - lens-tell # failure in job https://hydra.nixos.org/build/233234619 at 2023-09-02
   - lens-text-encoding # failure in job https://hydra.nixos.org/build/233222713 at 2023-09-02
   - lens-th-rewrite # failure in job https://hydra.nixos.org/build/233201025 at 2023-09-02
@@ -3448,7 +3445,6 @@ broken-packages:
   - lenz-template # failure in job https://hydra.nixos.org/build/233206822 at 2023-09-02
   - less-arbitrary # failure in job https://hydra.nixos.org/build/233231412 at 2023-09-02
   - Level0 # failure in job https://hydra.nixos.org/build/233220758 at 2023-09-02
-  - leveldb-haskell # failure in job https://hydra.nixos.org/build/252739424 at 2024-03-16
   - level-monad # failure in job https://hydra.nixos.org/build/233257036 at 2023-09-02
   - levmar # failure in job https://hydra.nixos.org/build/233254731 at 2023-09-02
   - lfst # failure in job https://hydra.nixos.org/build/233240622 at 2023-09-02
@@ -4119,6 +4115,7 @@ broken-packages:
   - non-empty-zipper # failure in job https://hydra.nixos.org/build/233244341 at 2023-09-02
   - nonlinear-optimization # failure in job https://hydra.nixos.org/build/233204674 at 2023-09-02
   - noodle # failure in job https://hydra.nixos.org/build/233195125 at 2023-09-02
+  - no-recursion # failure in job https://hydra.nixos.org/build/260711915 at 2024-05-25
   - normalization-insensitive # failure in job https://hydra.nixos.org/build/233239612 at 2023-09-02
   - no-role-annots # failure in job https://hydra.nixos.org/build/233229589 at 2023-09-02
   - notcpp # failure in job https://hydra.nixos.org/build/233216543 at 2023-09-02
@@ -4812,7 +4809,6 @@ broken-packages:
   - pusher-ws # failure in job https://hydra.nixos.org/build/233204133 at 2023-09-02
   - pushme # failure in job https://hydra.nixos.org/build/233212481 at 2023-09-02
   - push-notifications # failure in job https://hydra.nixos.org/build/233199364 at 2023-09-02
-  - push-notify-apn # failure in job https://hydra.nixos.org/build/260189652 at 2024-05-19
   - pushover # failure in job https://hydra.nixos.org/build/252739908 at 2024-03-16
   - putlenses # failure in job https://hydra.nixos.org/build/233197372 at 2023-09-02
   - puzzle-draw # failure in job https://hydra.nixos.org/build/233204953 at 2023-09-02
@@ -4933,6 +4929,7 @@ broken-packages:
   - readline-statevar # failure in job https://hydra.nixos.org/build/233226053 at 2023-09-02
   - readme-lhs # failure in job https://hydra.nixos.org/build/233248229 at 2023-09-02
   - readshp # failure in job https://hydra.nixos.org/build/233197835 at 2023-09-02
+  - real-dice # failure in job https://hydra.nixos.org/build/260725788 at 2024-05-25
   - really-simple-xml-parser # failure in job https://hydra.nixos.org/build/233195945 at 2023-09-02
   - reanimate-svg # failure in job https://hydra.nixos.org/build/233242271 at 2023-09-02
   - reasonable-lens # failure in job https://hydra.nixos.org/build/233233111 at 2023-09-02
@@ -5186,7 +5183,6 @@ broken-packages:
   - scale # failure in job https://hydra.nixos.org/build/233222189 at 2023-09-02
   - scaleimage # failure in job https://hydra.nixos.org/build/233240688 at 2023-09-02
   - scalendar # failure in job https://hydra.nixos.org/build/233206581 at 2023-09-02
-  - scat # failure in job https://hydra.nixos.org/build/252730427 at 2024-03-16
   - scc # failure in job https://hydra.nixos.org/build/233247446 at 2023-09-02
   - scgi # failure in job https://hydra.nixos.org/build/233247314 at 2023-09-02
   - schedevr # failure in job https://hydra.nixos.org/build/233240124 at 2023-09-02
@@ -5242,7 +5238,6 @@ broken-packages:
   - secure-sockets # failure in job https://hydra.nixos.org/build/233254170 at 2023-09-02
   - secureUDP # failure in job https://hydra.nixos.org/build/233215410 at 2023-09-02
   - SegmentTree # failure in job https://hydra.nixos.org/build/233216161 at 2023-09-02
-  - selda # failure in job https://hydra.nixos.org/build/252735635 at 2024-03-16
   - selda-postgresql # failure in job https://hydra.nixos.org/build/245539286 at 2024-01-02
   - selectors # failure in job https://hydra.nixos.org/build/233227433 at 2023-09-02
   - selenium # failure in job https://hydra.nixos.org/build/233214276 at 2023-09-02
@@ -5342,7 +5337,6 @@ broken-packages:
   - sessions # failure in job https://hydra.nixos.org/build/233214614 at 2023-09-02
   - sessiontypes # failure in job https://hydra.nixos.org/build/233224975 at 2023-09-02
   - setdown # failure in job https://hydra.nixos.org/build/241521053 at 2023-12-03
-  - set-extra # failure in job https://hydra.nixos.org/build/252738545 at 2024-03-16
   - setgame # failure in job https://hydra.nixos.org/build/233218664 at 2023-09-02
   - set-of # failure in job https://hydra.nixos.org/build/233202960 at 2023-09-02
   - setoid # failure in job https://hydra.nixos.org/build/233213744 at 2023-09-02
@@ -5605,7 +5599,6 @@ broken-packages:
   - splot # failure in job https://hydra.nixos.org/build/252715661 at 2024-03-16
   - Spock-api-ghcjs # failure in job https://hydra.nixos.org/build/233246163 at 2023-09-02
   - Spock-auth # failure in job https://hydra.nixos.org/build/233212125 at 2023-09-02
-  - Spock-core # failure in job https://hydra.nixos.org/build/252720122 at 2024-03-16
   - spoonutil # failure in job https://hydra.nixos.org/build/233257645 at 2023-09-02
   - spotify # failure in job https://hydra.nixos.org/build/233254990 at 2023-09-02
   - spoty # failure in job https://hydra.nixos.org/build/233233863 at 2023-09-02
@@ -5795,7 +5788,6 @@ broken-packages:
   - supplemented # failure in job https://hydra.nixos.org/build/233237397 at 2023-09-02
   - supply-chain-core # failure in job https://hydra.nixos.org/build/252715612 at 2024-03-16
   - surjective # failure in job https://hydra.nixos.org/build/233242908 at 2023-09-02
-  - sv2v # failure in job https://hydra.nixos.org/build/233190750 at 2023-09-02
   - sv-core # failure in job https://hydra.nixos.org/build/233217245 at 2023-09-02
   - SVD2HS # failure in job https://hydra.nixos.org/build/233248575 at 2023-09-02
   - svfactor # failure in job https://hydra.nixos.org/build/233256743 at 2023-09-02
@@ -6731,7 +6723,6 @@ broken-packages:
   - yesod-content-pdf # failure in job https://hydra.nixos.org/build/233210723 at 2023-09-02
   - yesod-crud # failure in job https://hydra.nixos.org/build/233218383 at 2023-09-02
   - yesod-crud-persist # failure in job https://hydra.nixos.org/build/233245131 at 2023-09-02
-  - yesod-csp # failure in job https://hydra.nixos.org/build/233207134 at 2023-09-02
   - yesod-datatables # failure in job https://hydra.nixos.org/build/233197763 at 2023-09-02
   - yesod-dsl # failure in job https://hydra.nixos.org/build/233210879 at 2023-09-02
   - yesod-fast-devel # failure in job https://hydra.nixos.org/build/233209381 at 2023-09-02
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
index 2e34bb560adbb..03dd4e728f4e4 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
@@ -35,6 +35,7 @@ default-package-overrides:
   - extensions < 0.1.0.2 # Incompatible with Cabal < 3.12, the newest extensions version is only needed on ghc 9.10
   # 2024-05-10: need to match hlegder from stackage
   - hledger-ui < 1.33
+  - chs-cabal < 0.1.1.2 # Incompatible with Cabal < 3.12
 
 
 extra-packages:
@@ -64,10 +65,12 @@ extra-packages:
   - ghc-exactprint == 0.6.*             # 2022-12-12: needed for GHC < 9.2
   - ghc-exactprint == 1.5.*             # 2023-03-30: needed for GHC == 9.2
   - ghc-exactprint == 1.6.*             # 2023-03-30: needed for GHC == 9.4
-  - ghc-lib == 9.2.*                    # 2022-02-17: preserve for GHC 9.2
-  - ghc-lib-parser == 9.2.*             # 2022-02-17: preserve for GHC 9.2
+  - ghc-exactprint == 1.8.*             # 2024-05-20: needed for GHC == 9.8
+  - ghc-lib == 9.2.*                    # 2022-02-17: preserve for GHC 8.10, 9.0
+  - ghc-lib == 9.8.*                    # 2024-05-19: preserve for GHC 9.8
+  - ghc-lib-parser == 9.2.*             # 2022-02-17: preserve for GHC 8.10, 9.0
   - ghc-lib-parser == 9.8.*             # 2024-05-19: preserve for GHC 9.8
-  - ghc-lib-parser-ex == 9.2.*          # 2022-07-13: preserve for GHC 9.2
+  - ghc-lib-parser-ex == 9.2.*          # 2022-07-13: preserve for GHC 8.10, 9.0
   - ghc-lib-parser-ex == 9.8.*          # 2024-05-19: preserve for GHC 9.8
   - ghc-syntax-highlighter == 0.0.10.*  # 2023-11-20:
   - gi-soup == 2.4.28                   # 2023-04-05: the last version to support libsoup-2.4 (and thus be compatible with our other gi- packages)
@@ -116,6 +119,7 @@ extra-packages:
   - retrie < 1.2.0.0                    # 2022-12-30: required for hls on ghc < 9.2
   - ghc-tags == 1.5.*                   # 2023-02-18: preserve for ghc-lib == 9.2.*
   - ghc-tags == 1.6.*                   # 2023-02-18: preserve for ghc-lib == 9.4.*
+  - ghc-tags == 1.7.*                   # 2023-02-18: preserve for ghc-lib == 9.6.*
   - shake-cabal < 0.2.2.3               # 2023-07-01: last version to support Cabal 3.6.*
   - algebraic-graphs < 0.7              # 2023-08-14: Needed for building weeder < 2.6.0
   - fuzzyset == 0.2.4                   # 2023-12-20: Needed for building postgrest > 10
@@ -126,6 +130,58 @@ extra-packages:
 package-maintainers:
   abbradar:
     - Agda
+  alexfmpe:
+    - aeson-gadt-th
+    - basic-sop
+    - cli-extras
+    - cli-git
+    - cli-nix
+    - commutative-semigroups
+    - constraints-extras
+    - dependent-map
+    - dependent-monoidal-map
+    - dependent-sum
+    - dependent-sum-aeson-orphans
+    - dependent-sum-template
+    - gargoyle
+    - gargoyle-postgresql
+    - gargoyle-postgresql-connect
+    - gargoyle-postgresql-nix
+    - generics-sop
+    - ghcjs-base
+    - ghcjs-dom
+    - ghcjs-dom-hello
+    - ghcjs-dom-javascript
+    - ghcjs-dom-jsaddle
+    - haveibeenpwned
+    - jsaddle
+    - jsaddle-clib
+    - jsaddle-dom
+    - jsaddle-hello
+    - jsaddle-warp
+    - jsaddle-webkit2gtk
+    - jsaddle-wkwebview
+    - json-sop
+    - large-generics
+    - large-records
+    - lens-sop
+    - linux-namespaces
+    - monoidal-containers
+    - nix-thunk
+    - patch
+    - proto-lens-arbitrary
+    - proto3-suite
+    - proto3-wire
+    - records-sop
+    - reflex
+    - reflex-dom
+    - reflex-dom-core
+    - reflex-gadt-api
+    - universe
+    - universe-some
+    - vessel
+    - warp
+    - which
   Anton-Latukha:
     - hnix
     - hnix-store-core
@@ -335,6 +391,8 @@ package-maintainers:
     - cornelis
   poscat:
     - hinit
+  Profpatsch:
+    - gitit
   psibi:
     - path-pieces
     - persistent
@@ -592,6 +650,24 @@ package-maintainers:
     - nix-tree
   zowoq:
     - ShellCheck
+  mpscholten:
+    - ihp-hsx
+    - push-notify-apn
+    - hs-pkpass
+    - raven-haskell
+    - stripe-concepts
+    - stripe-signature
+    - http2-client
+    - zip
+    - currencies
+    - string-random
+    - inflections
+    - pcre-heavy
+    - mmark
+    - mmark-ext
+    - typerep-map
+    - minio-hs
+    - smtp-mail
 
 unsupported-platforms:
   Allure:                                       [ platforms.darwin ]
@@ -613,7 +689,6 @@ unsupported-platforms:
   freenect:                                     [ platforms.darwin ]
   FTGL:                                         [ platforms.darwin ]
   fuzzytime:                                    [ platforms.darwin ] # https://github.com/kamwitsta/fuzzytime/issues/2
-  ghcjs-dom-hello:                              [ platforms.darwin ]
   ghc-gc-hook:                                  [ platforms.darwin ] # requires C11 threads which Apple doesn't support
   gi-adwaita:                                   [ platforms.darwin ]
   gi-dbusmenugtk3:                              [ platforms.darwin ]
@@ -642,7 +717,6 @@ unsupported-platforms:
   intricacy:                                    [ platforms.darwin ] # depends on mesa
   iwlib:                                        [ platforms.darwin ]
   Jazzkell:                                     [ platforms.darwin ] # depends on Euterpea
-  jsaddle-hello:                                [ platforms.darwin ] # depends on jsaddle-webkit2gtk
   jsaddle-webkit2gtk:                           [ platforms.darwin ]
   Kulitta:                                      [ platforms.darwin ] # depends on Euterpea
   LambdaHack:                                   [ platforms.darwin ]
@@ -735,6 +809,8 @@ supported-platforms:
   geomancy:                                     [ platforms.x86 ] # x86 intrinsics
   geomancy-layout:                              [ platforms.x86 ] # x86 intrinsics
   gi-gtkosxapplication:                         [ platforms.darwin ]
+  ghcjs-base:                                   [ javascript-ghcjs ]
+  ghcjs-dom-javascript:                         [ javascript-ghcjs ]
   gtk-mac-integration:                          [ platforms.darwin ]
   gtk3-mac-integration:                         [ platforms.darwin ]
   halide-haskell:                               [ platforms.linux ]
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
index 7588586a25a39..02e2d5954d20f 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
@@ -378,11 +378,6 @@ dont-distribute-packages:
  - SourceGraph
  - SpacePrivateers
  - SpinCounter
- - Spock
- - Spock-api-server
- - Spock-digestive
- - Spock-lucid
- - Spock-worker
  - StockholmAlignment
  - Strafunski-Sdf2Haskell
  - SybWidget
@@ -532,7 +527,6 @@ dont-distribute-packages:
  - apotiki
  - approx-rand-test
  - arbor-monad-metric-datadog
- - archive-libarchive
  - archive-tar-bytestring
  - archlinux-web
  - arduino-copilot
@@ -617,6 +611,7 @@ dont-distribute-packages:
  - bamstats
  - barley
  - base32-bytestring
+ - base_4_20_0_0
  - baserock-schema
  - basic
  - batchd
@@ -637,6 +632,7 @@ dont-distribute-packages:
  - bearriver
  - beautifHOL
  - bech32-th
+ - bech32-th_1_1_7
  - bein
  - belka
  - bff
@@ -669,7 +665,6 @@ dont-distribute-packages:
  - bip32
  - birch-beer
  - bird
- - bisc
  - biscuit-servant
  - bishbosh
  - bit-array
@@ -1514,6 +1509,7 @@ dont-distribute-packages:
  - geolite-csv
  - getemx
  - ghc-dump-util
+ - ghc-experimental
  - ghc-imported-from
  - ghc-instances
  - ghc-mod
@@ -2422,7 +2418,6 @@ dont-distribute-packages:
  - json-query
  - json-rpc-client
  - json-schema
- - json-sop
  - json-spec-elm
  - json-spec-elm-servant
  - json-spec-openapi
@@ -2567,7 +2562,6 @@ dont-distribute-packages:
  - lha
  - lhae
  - lhe
- - libarchive
  - libconfig
  - libcspm
  - libgraph
@@ -2817,7 +2811,6 @@ dont-distribute-packages:
  - mps
  - mptcp-pm
  - mptcpanalyzer
- - ms-tds
  - msgpack-aeson
  - msgpack-arbitrary
  - msgpack-binary
@@ -2827,7 +2820,6 @@ dont-distribute-packages:
  - msgpack-rpc-conduit
  - msgpack-testsuite
  - msi-kb-backlit
- - mssql-simple
  - mstate
  - mtgoxapi
  - mu-avro
@@ -3576,8 +3568,6 @@ dont-distribute-packages:
  - secrm
  - sednaDBXML
  - seitz-symbol
- - selda-json
- - selda-sqlite
  - selenium-server
  - semantic-source
  - semantic-version
@@ -4228,6 +4218,7 @@ dont-distribute-packages:
  - werewolf-slack
  - wgpu-hs
  - what4
+ - what4_1_6
  - wheb-mongo
  - wheb-redis
  - wheb-strapped
diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix
index 6b49a4ec25aa4..706bd2dfecf2b 100644
--- a/pkgs/development/haskell-modules/configuration-nix.nix
+++ b/pkgs/development/haskell-modules/configuration-nix.nix
@@ -770,9 +770,12 @@ self: super: builtins.intersectAttrs super {
     preInstall = drv.preInstall or "" + ''
       installTargets="install"
       installFlagsArray+=(
-        "BUILDER=:"
         "PREFIX="
         "DESTDIR=$out"
+        # Prevent Makefile from calling cabal/Setup again
+        "BUILDER=:"
+        # Make Haskell build dependencies available
+        "GHC=${self.buildHaskellPackages.ghc.targetPrefix}ghc -global-package-db -package-db $setupPackageConfDir"
       )
     '';
     installPhase = null;
@@ -973,7 +976,7 @@ self: super: builtins.intersectAttrs super {
     preCheck = ''
       export HOME=$TMPDIR/home
       export PATH=$PWD/dist/build/ihaskell:$PATH
-      export GHC_PACKAGE_PATH=$PWD/dist/package.conf.inplace/:$GHC_PACKAGE_PATH
+      export NIX_GHC_PACKAGE_PATH_FOR_TEST=$PWD/dist/package.conf.inplace/:$packageConfDir:
     '';
   }) super.ihaskell;
 
@@ -1035,6 +1038,8 @@ self: super: builtins.intersectAttrs super {
         pkgs.buildPackages.makeWrapper
       ];
       postInstall = ''
+        ${drv.postInstall or ""}
+
         wrapProgram $out/bin/cabal2nix \
           --prefix PATH ":" "${
             pkgs.lib.makeBinPath [ pkgs.nix pkgs.nix-prefetch-scripts ]
@@ -1068,6 +1073,14 @@ self: super: builtins.intersectAttrs super {
             pkgs.nix-prefetch-docker
           ]
         }"
+      ''
+      # Prevent erroneous references to other libraries that use Paths_ modules
+      # on aarch64-darwin. Note that references to the data outputs are not removed.
+      + lib.optionalString (with pkgs.stdenv; hostPlatform.isDarwin && hostPlatform.isAarch64) ''
+        remove-references-to -t "${self.shake.out}" "$out/bin/.nvfetcher-wrapped"
+        remove-references-to -t "${self.js-jquery.out}" "$out/bin/.nvfetcher-wrapped"
+        remove-references-to -t "${self.js-flot.out}" "$out/bin/.nvfetcher-wrapped"
+        remove-references-to -t "${self.js-dgtable.out}" "$out/bin/.nvfetcher-wrapped"
       '';
     }) super.nvfetcher);
 
diff --git a/pkgs/development/haskell-modules/default.nix b/pkgs/development/haskell-modules/default.nix
index 3f8a0bb750c71..73ce1af7735a0 100644
--- a/pkgs/development/haskell-modules/default.nix
+++ b/pkgs/development/haskell-modules/default.nix
@@ -9,6 +9,7 @@
 , configurationNix ? import ./configuration-nix.nix
 , configurationArm ? import ./configuration-arm.nix
 , configurationDarwin ? import ./configuration-darwin.nix
+, configurationJS ? import ./configuration-ghcjs-9.x.nix
 }:
 
 let
@@ -26,7 +27,10 @@ let
     (configurationArm { inherit pkgs haskellLib; })
   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
     (configurationDarwin { inherit pkgs haskellLib; })
-  ];
+  ] ++ lib.optionals stdenv.hostPlatform.isGhcjs [
+    (configurationJS { inherit pkgs haskellLib; })
+  ]
+  ;
 
   extensions = lib.composeManyExtensions ([
     (nonHackagePackages { inherit pkgs haskellLib; })
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix
index f9acdd0f4a27b..6c60efe1bce50 100644
--- a/pkgs/development/haskell-modules/generic-builder.nix
+++ b/pkgs/development/haskell-modules/generic-builder.nix
@@ -7,6 +7,13 @@
 let
   isCross = stdenv.buildPlatform != stdenv.hostPlatform;
 
+  # Note that ghc.isGhcjs != stdenv.hostPlatform.isGhcjs.
+  # ghc.isGhcjs implies that we are using ghcjs, a project separate from GHC.
+  # (mere) stdenv.hostPlatform.isGhcjs means that we are using GHC's JavaScript
+  # backend. The latter is a normal cross compilation backend and needs little
+  # special accommodation.
+  outputsJS = ghc.isGhcjs or false || stdenv.hostPlatform.isGhcjs;
+
   # Pass the "wrong" C compiler rather than none at all so packages that just
   # use the C preproccessor still work, see
   # https://github.com/haskell/cabal/issues/6466 for details.
@@ -19,15 +26,11 @@ let
     fetchurl removeReferencesTo
     pkg-config coreutils gnugrep glibcLocales
     emscripten;
+
 in
 
 { pname
-# Note that ghc.isGhcjs != stdenv.hostPlatform.isGhcjs.
-# ghc.isGhcjs implies that we are using ghcjs, a project separate from GHC.
-# (mere) stdenv.hostPlatform.isGhcjs means that we are using GHC's JavaScript
-# backend. The latter is a normal cross compilation backend and needs little
-# special accommodation.
-, dontStrip ? (ghc.isGhcjs or false || stdenv.hostPlatform.isGhcjs)
+, dontStrip ? outputsJS
 , version, revision ? null
 , sha256 ? null
 , src ? fetchurl { url = "mirror://hackage/${pname}-${version}.tar.gz"; inherit sha256; }
@@ -44,7 +47,7 @@ in
 , doHaddockQuickjump ? doHoogle
 , doInstallIntermediates ? false
 , editedCabalFile ? null
-, enableLibraryProfiling ? !(ghc.isGhcjs or false)
+, enableLibraryProfiling ? !outputsJS
 , enableExecutableProfiling ? false
 , profilingDetail ? "exported-functions"
 # TODO enable shared libs for cross-compiling
@@ -110,6 +113,16 @@ in
   # build products from that prior build as a starting point for accelerating
   # this build
 , previousIntermediates ? null
+  # References to these store paths are forbidden in the produced output.
+, disallowedRequisites ? []
+  # Whether to allow the produced output to refer to `ghc`.
+  #
+  # This is used by `haskell.lib.justStaticExecutables` to help prevent static
+  # Haskell binaries from having erroneous dependencies on GHC.
+  #
+  # See https://nixos.org/manual/nixpkgs/unstable/#haskell-packaging-helpers
+  # or its source doc/languages-frameworks/haskell.section.md
+, disallowGhcReference ? false
 , # Cabal 3.8 which is shipped by default for GHC >= 9.3 always calls
   # `pkg-config --libs --static` as part of the configure step. This requires
   # Requires.private dependencies of pkg-config dependencies to be present in
@@ -213,10 +226,7 @@ let
   ] ++ optional (allPkgconfigDepends != [])
     "--with-pkg-config=${pkg-config.targetPrefix}pkg-config";
 
-  parallelBuildingFlags = "-j$NIX_BUILD_CORES" + optionalString stdenv.isLinux " +RTS -A64M -RTS";
-
-  crossCabalFlagsString =
-    lib.optionalString isCross (" " + lib.concatStringsSep " " crossCabalFlags);
+  makeGhcOptions = opts: lib.concatStringsSep " " (map (opt: "--ghc-option=${opt}") opts);
 
   buildFlagsString = optionalString (buildFlags != []) (" " + concatStringsSep " " buildFlags);
 
@@ -234,8 +244,8 @@ let
     "--package-db=$packageConfDir"
     (optionalString (enableSharedExecutables && stdenv.isLinux) "--ghc-option=-optl=-Wl,-rpath=$out/${ghcLibdir}/${pname}-${version}")
     (optionalString (enableSharedExecutables && stdenv.isDarwin) "--ghc-option=-optl=-Wl,-headerpad_max_install_names")
-    (optionalString enableParallelBuilding "--ghc-options=${parallelBuildingFlags}")
-    (optionalString useCpphs "--with-cpphs=${cpphs}/bin/cpphs --ghc-options=-cpp --ghc-options=-pgmP${cpphs}/bin/cpphs --ghc-options=-optP--cpp")
+    (optionalString enableParallelBuilding (makeGhcOptions [ "-j$NIX_BUILD_CORES" "+RTS" "-A64M" "-RTS" ]))
+    (optionalString useCpphs ("--with-cpphs=${cpphs}/bin/cpphs " + (makeGhcOptions [ "-cpp"  "-pgmP${cpphs}/bin/cpphs" "-optP--cpp" ])))
     (enableFeature enableLibraryProfiling "library-profiling")
     (optionalString (enableExecutableProfiling || enableLibraryProfiling) "--profiling-detail=${profilingDetail}")
     (enableFeature enableExecutableProfiling "profiling")
@@ -258,16 +268,14 @@ let
   ) ++ optionals enableSeparateBinOutput [
     "--bindir=${binDir}"
   ] ++ optionals (doHaddockInterfaces && isLibrary) [
-    "--ghc-options=-haddock"
+    "--ghc-option=-haddock"
   ];
 
   postPhases = optional doInstallIntermediates "installIntermediatesPhase";
 
   setupCompileFlags = [
     (optionalString (!coreSetup) "-package-db=$setupPackageConfDir")
-    (optionalString enableParallelBuilding parallelBuildingFlags)
     "-threaded"       # https://github.com/haskell/cabal/issues/2398
-    "-rtsopts"        # allow us to pass RTS flags to the generated Setup executable
   ];
 
   isHaskellPkg = x: x ? isHaskellLibrary;
@@ -370,6 +378,34 @@ let
   '';
 
   intermediatesDir = "share/haskell/${ghc.version}/${pname}-${version}/dist";
+
+  # This is a script suitable for --test-wrapper of Setup.hs' test command
+  # (https://cabal.readthedocs.io/en/3.12/setup-commands.html#cmdoption-runhaskell-Setup.hs-test-test-wrapper).
+  # We use it to set some environment variables that the test suite may need,
+  # e.g. GHC_PACKAGE_PATH to invoke GHC(i) at runtime with build dependencies
+  # available. See the comment accompanying checkPhase below on how to customize
+  # this behavior. We need to use a wrapper script since Cabal forbids setting
+  # certain environment variables since they can alter GHC's behavior (e.g.
+  # GHC_PACKAGE_PATH) and cause failures. While building, Cabal will set
+  # GHC_ENVIRONMENT to make the packages picked at configure time available to
+  # GHC, but unfortunately not at test time. The test wrapper script will be
+  # executed after such environment checks, so we can take some liberties which
+  # is unproblematic since we know our synthetic package db matches what Cabal
+  # will see at configure time exactly. See also
+  # <https://github.com/haskell/cabal/issues/7792>.
+  testWrapperScript = buildPackages.writeShellScript
+    "haskell-generic-builder-test-wrapper.sh"
+    ''
+      set -eu
+
+      # We expect this to be either empty or set by checkPhase
+      if [[ -n "''${NIX_GHC_PACKAGE_PATH_FOR_TEST}" ]]; then
+        export GHC_PACKAGE_PATH="''${NIX_GHC_PACKAGE_PATH_FOR_TEST}"
+      fi
+
+      exec "$@"
+    '';
+
 in lib.fix (drv:
 
 stdenv.mkDerivation ({
@@ -528,8 +564,6 @@ stdenv.mkDerivation ({
   configurePhase = ''
     runHook preConfigure
 
-    unset GHC_PACKAGE_PATH      # Cabal complains if this variable is set during configure.
-
     echo configureFlags: $configureFlags
     ${setupCommand} configure $configureFlags 2>&1 | ${coreutils}/bin/tee "$NIX_BUILD_TOP/cabal-configure.log"
     ${lib.optionalString (!allowInconsistentDependencies) ''
@@ -538,7 +572,6 @@ stdenv.mkDerivation ({
         exit 1
       fi
     ''}
-    export GHC_PACKAGE_PATH="$packageConfDir:"
 
     runHook postConfigure
   '';
@@ -556,7 +589,7 @@ stdenv.mkDerivation ({
         find dist/build -exec touch -d '1970-01-01T00:00:00Z' {} +
         ''
     + ''
-      ${setupCommand} build ${buildTarget}${crossCabalFlagsString}${buildFlagsString}
+      ${setupCommand} build ${buildTarget}${buildFlagsString}
       runHook postBuild
       '';
 
@@ -565,12 +598,22 @@ stdenv.mkDerivation ({
   # Run test suite(s) and pass `checkFlags` as well as `checkFlagsArray`.
   # `testFlags` are added to `checkFlagsArray` each prefixed with
   # `--test-option`, so Cabal passes it to the underlying test suite binary.
+  #
+  # We also take care of setting GHC_PACKAGE_PATH during test suite execution,
+  # so it can run GHC(i) with build dependencies available:
+  # - If NIX_GHC_PACKAGE_PATH_FOR_TEST is set, it become the value of GHC_PACKAGE_PATH
+  #   while the test suite is executed.
+  # - If it is empty, it'll be unset during test suite execution.
+  # - Otherwise GHC_PACKAGE_PATH will have the package db used for configuring
+  #   plus GHC's core packages.
   checkPhase = ''
     runHook preCheck
     checkFlagsArray+=(
       "--show-details=streaming"
+      "--test-wrapper=${testWrapperScript}"
       ${lib.escapeShellArgs (builtins.map (opt: "--test-option=${opt}") testFlags)}
     )
+    export NIX_GHC_PACKAGE_PATH_FOR_TEST="''${NIX_GHC_PACKAGE_PATH_FOR_TEST:-$packageConfDir:}"
     ${setupCommand} test ${testTarget} $checkFlags ''${checkFlagsArray:+"''${checkFlagsArray[@]}"}
     runHook postCheck
   '';
@@ -647,7 +690,7 @@ stdenv.mkDerivation ({
 
   passthru = passthru // rec {
 
-    inherit pname version;
+    inherit pname version disallowGhcReference;
 
     compiler = ghc;
 
@@ -808,10 +851,19 @@ stdenv.mkDerivation ({
 // optionalAttrs (args ? dontStrip)              { inherit dontStrip; }
 // optionalAttrs (postPhases != [])              { inherit postPhases; }
 // optionalAttrs (stdenv.buildPlatform.libc == "glibc"){ LOCALE_ARCHIVE = "${glibcLocales}/lib/locale/locale-archive"; }
+// optionalAttrs (disallowedRequisites != [] || disallowGhcReference) {
+  disallowedRequisites =
+    disallowedRequisites
+    ++ (
+      if disallowGhcReference
+      then [ghc]
+      else []
+    );
+}
 
 # Implicit pointer to integer conversions are errors by default since clang 15.
 # Works around https://gitlab.haskell.org/ghc/ghc/-/issues/23456.
-// lib.optionalAttrs (stdenv.hasCC && stdenv.cc.isClang) {
+// optionalAttrs (stdenv.hasCC && stdenv.cc.isClang) {
   NIX_CFLAGS_COMPILE = "-Wno-error=int-conversion";
 }
 )
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index 4f3617628fc67..d05b86212b646 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -822,6 +822,8 @@ self: {
        pname = "Agda";
        version = "2.6.4.3";
        sha256 = "18h3vwj182sp6pkh4274x0b3qg3cn3v0571jicabqhvxqmpckvbl";
+       revision = "1";
+       editedCabalFile = "0z1zbj4gba5xqgrb3lz3fpmsv6mv8zyrhvl4338k8xc22m5ns1m8";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -6385,8 +6387,8 @@ self: {
      }:
      mkDerivation {
        pname = "FiniteCategories";
-       version = "0.6.4.0";
-       sha256 = "10j6bipj0z86q87fnfd9iq2s43n2dixhfzh8y3yv18hs5jf4cgi0";
+       version = "0.6.5.0";
+       sha256 = "00vdcd8lliwril814r9da57cdjfkq6fpa613j2kadhx9bic5rphs";
        libraryHaskellDepends = [
          base containers directory filepath random text WeakSets
        ];
@@ -17422,6 +17424,27 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "PyF_0_11_3_0" = callPackage
+    ({ mkDerivation, base, bytestring, deepseq, filepath, ghc, hspec
+     , HUnit, mtl, parsec, process, template-haskell, temporary, text
+     , time
+     }:
+     mkDerivation {
+       pname = "PyF";
+       version = "0.11.3.0";
+       sha256 = "1nwn3pf3wmi08jrfrmk8rbgfviha48ackm6crxrsxxcmmlrmsncy";
+       libraryHaskellDepends = [
+         base bytestring ghc mtl parsec template-haskell text time
+       ];
+       testHaskellDepends = [
+         base bytestring deepseq filepath hspec HUnit process
+         template-haskell temporary text time
+       ];
+       description = "Quasiquotations for a python like interpolated string formatter";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "QIO" = callPackage
     ({ mkDerivation, base, containers, mtl, old-time, random }:
      mkDerivation {
@@ -18427,6 +18450,8 @@ self: {
        pname = "RoundingFiasco";
        version = "0.1.0.0";
        sha256 = "1n51zrbngiickyh7mqm3jnvnf7qcbjdrqz5q4pjqpx9cl9hx7yl0";
+       revision = "1";
+       editedCabalFile = "1gy0r9k1szc27p5l4jyib7qyiqbkyd7w4l737j9k9l9hpda5fb8i";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        description = "rounding variants floor, ceil and truncate for floating point operations +-*/√…";
@@ -20306,7 +20331,6 @@ self: {
        ];
        description = "Another Haskell web framework for rapid development";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "Spock-api" = callPackage
@@ -20346,7 +20370,6 @@ self: {
        libraryHaskellDepends = [ base hvect mtl Spock-api Spock-core ];
        description = "Another Haskell web framework for rapid development";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "Spock-auth" = callPackage
@@ -20390,8 +20413,6 @@ self: {
        ];
        description = "Another Haskell web framework for rapid development";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Spock-digestive" = callPackage
@@ -20408,7 +20429,6 @@ self: {
        ];
        description = "Digestive functors support for Spock";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "Spock-lucid" = callPackage
@@ -20420,7 +20440,6 @@ self: {
        libraryHaskellDepends = [ base lucid Spock transformers ];
        description = "Lucid support for Spock";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "Spock-worker" = callPackage
@@ -20438,7 +20457,6 @@ self: {
        testHaskellDepends = [ base containers HTF stm vector ];
        description = "Background workers for Spock";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "SpreadsheetML" = callPackage
@@ -26056,27 +26074,27 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "aeson_2_2_1_0" = callPackage
+  "aeson_2_2_2_0" = callPackage
     ({ mkDerivation, base, base-compat, base-orphans, base16-bytestring
-     , bytestring, containers, data-fix, deepseq, Diff, directory, dlist
-     , exceptions, filepath, generic-deriving, generically, ghc-prim
-     , hashable, indexed-traversable, integer-conversion
-     , integer-logarithms, network-uri, nothunks, OneTuple, primitive
-     , QuickCheck, quickcheck-instances, scientific, semialign, strict
-     , tagged, tasty, tasty-golden, tasty-hunit, tasty-quickcheck
-     , template-haskell, text, text-iso8601, text-short, th-abstraction
-     , these, time, time-compat, unordered-containers, uuid-types
-     , vector, witherable
+     , bytestring, character-ps, containers, data-fix, deepseq, Diff
+     , directory, dlist, exceptions, filepath, generic-deriving
+     , generically, ghc-prim, hashable, indexed-traversable
+     , integer-conversion, integer-logarithms, network-uri, nothunks
+     , OneTuple, primitive, QuickCheck, quickcheck-instances, scientific
+     , semialign, strict, tagged, tasty, tasty-golden, tasty-hunit
+     , tasty-quickcheck, template-haskell, text, text-iso8601
+     , text-short, th-abstraction, these, time, time-compat
+     , unordered-containers, uuid-types, vector, witherable
      }:
      mkDerivation {
        pname = "aeson";
-       version = "2.2.1.0";
-       sha256 = "0zsxkb7lizn1c1a5q4jzg4wyxb17njx2rahxf9fdn4hdx38fykli";
+       version = "2.2.2.0";
+       sha256 = "0xk2zl4j64zjymib0qyx889jyghx0fa1nvsz0fx2py9kcd2f3gdk";
        revision = "1";
-       editedCabalFile = "1jrny4i1hc335yz5vc2r1nx1lnpy5q5jqqg1fc2y2cw2vam62fm2";
+       editedCabalFile = "18kglyqghxv5gpp9c8kn2rr0h2c09x3rw9rl3a4j3h2l23y0s3dc";
        libraryHaskellDepends = [
-         base bytestring containers data-fix deepseq dlist exceptions
-         generically ghc-prim hashable indexed-traversable
+         base bytestring character-ps containers data-fix deepseq dlist
+         exceptions generically ghc-prim hashable indexed-traversable
          integer-conversion integer-logarithms network-uri OneTuple
          primitive QuickCheck scientific semialign strict tagged
          template-haskell text text-iso8601 text-short th-abstraction these
@@ -26512,6 +26530,7 @@ self: {
        description = "Derivation of Aeson instances for GADTs";
        license = lib.licenses.bsd3;
        mainProgram = "readme";
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "aeson-generic-compat" = callPackage
@@ -28400,8 +28419,8 @@ self: {
        pname = "algebraic-graphs";
        version = "0.7";
        sha256 = "0s75h92qb9jdfdyzh0fraxpzj0jl4xvcbqq9cwgba2k9306rl5ai";
-       revision = "2";
-       editedCabalFile = "1psgkw2qcdv91cij564jzlsyx7qjs8z7y7y6lfhciilbzkzvpy3m";
+       revision = "3";
+       editedCabalFile = "010i8dl3zd484fbamq7k6i5cl0as2zsj2fis4rpm9giyickkr3ny";
        libraryHaskellDepends = [
          array base containers deepseq transformers
        ];
@@ -39413,7 +39432,6 @@ self: {
        libraryToolDepends = [ cpphs ];
        description = "Common interface using libarchive";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "archive-sig" = callPackage
@@ -42401,17 +42419,17 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "attoparsec-aeson_2_2_0_1" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, bytestring
+  "attoparsec-aeson_2_2_2_0" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, bytestring, character-ps
      , integer-conversion, primitive, scientific, text, vector
      }:
      mkDerivation {
        pname = "attoparsec-aeson";
-       version = "2.2.0.1";
-       sha256 = "02f406d5jh038qn8cccr0fbxkczhgzplmnfb448hrl25gcxg5ifg";
+       version = "2.2.2.0";
+       sha256 = "1pcyiwni9kvpg97k3sm9qrxcl2n8rh698af3867zzqbgl4ijr6zy";
        libraryHaskellDepends = [
-         aeson attoparsec base bytestring integer-conversion primitive
-         scientific text vector
+         aeson attoparsec base bytestring character-ps integer-conversion
+         primitive scientific text vector
        ];
        description = "Parsing of aeson's Value with attoparsec";
        license = lib.licenses.bsd3;
@@ -42575,6 +42593,22 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "attoparsec-iso8601_1_1_1_0" = callPackage
+    ({ mkDerivation, attoparsec, base, integer-conversion, text, time
+     , time-compat
+     }:
+     mkDerivation {
+       pname = "attoparsec-iso8601";
+       version = "1.1.1.0";
+       sha256 = "0yn9l9drza1wcj59a9dzm4vnihwmsxk6zd3fqg6kgww1an8x3k9l";
+       libraryHaskellDepends = [
+         attoparsec base integer-conversion text time time-compat
+       ];
+       description = "Parsing of ISO 8601 dates, originally from aeson";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "attoparsec-iteratee" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, iteratee
      , transformers
@@ -43216,6 +43250,22 @@ self: {
        mainProgram = "autoexporter";
      }) {};
 
+  "autoexporter_2_0_0_12" = callPackage
+    ({ mkDerivation, base, Cabal-syntax, directory, filepath }:
+     mkDerivation {
+       pname = "autoexporter";
+       version = "2.0.0.12";
+       sha256 = "1ilnvpkgdbw5qg2czzh346mgrkx0dnrvalx0b93fxz4r12sg10na";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base Cabal-syntax directory filepath ];
+       executableHaskellDepends = [ base ];
+       description = "Automatically re-export modules";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "autoexporter";
+     }) {};
+
   "autom" = callPackage
     ({ mkDerivation, base, bytestring, colour, ghc-prim, gloss
      , JuicyPixels, random, vector
@@ -45788,14 +45838,14 @@ self: {
        broken = true;
      }) {};
 
-  "base_4_19_1_0" = callPackage
-    ({ mkDerivation, ghc-bignum, ghc-prim, rts }:
+  "base_4_20_0_0" = callPackage
+    ({ mkDerivation, ghc-internal, ghc-prim }:
      mkDerivation {
        pname = "base";
-       version = "4.19.1.0";
-       sha256 = "0f1ynq04cmvyn26krin835q0zygiy541a6fdcqazwdg2sx5pi3ls";
-       libraryHaskellDepends = [ ghc-bignum ghc-prim rts ];
-       description = "Basic libraries";
+       version = "4.20.0.0";
+       sha256 = "15l9g5v12411baix23ck30s2633mw957xsh2bnxjlrcqjfpqhqbw";
+       libraryHaskellDepends = [ ghc-internal ghc-prim ];
+       description = "Core data structures and operations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
      }) {};
@@ -46633,6 +46683,7 @@ self: {
        ];
        description = "Basic examples and functions for generics-sop";
        license = lib.licenses.bsd3;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "basics" = callPackage
@@ -47543,6 +47594,37 @@ self: {
        broken = true;
      }) {};
 
+  "bech32_1_1_7" = callPackage
+    ({ mkDerivation, array, base, base58-bytestring, bytestring
+     , containers, deepseq, extra, hspec, hspec-discover, memory
+     , optparse-applicative, prettyprinter, prettyprinter-ansi-terminal
+     , process, QuickCheck, text, vector
+     }:
+     mkDerivation {
+       pname = "bech32";
+       version = "1.1.7";
+       sha256 = "1ql79scbjxrmllizywhzdys1bx565lqvj81851wzdkww662lhvpg";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         array base bytestring containers extra text
+       ];
+       executableHaskellDepends = [
+         base base58-bytestring bytestring extra memory optparse-applicative
+         prettyprinter prettyprinter-ansi-terminal text
+       ];
+       testHaskellDepends = [
+         base base58-bytestring bytestring containers deepseq extra hspec
+         memory process QuickCheck text vector
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Implementation of the Bech32 cryptocurrency address format (BIP 0173)";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "bech32";
+       broken = true;
+     }) {};
+
   "bech32-th" = callPackage
     ({ mkDerivation, base, bech32, hspec, hspec-discover
      , template-haskell, text
@@ -47559,6 +47641,22 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "bech32-th_1_1_7" = callPackage
+    ({ mkDerivation, base, bech32, hspec, hspec-discover
+     , template-haskell, text
+     }:
+     mkDerivation {
+       pname = "bech32-th";
+       version = "1.1.7";
+       sha256 = "0a71jcvgnfsn24d2bppiprx4yb5cnsr85rsgzax3547shiqpli1n";
+       libraryHaskellDepends = [ base bech32 template-haskell text ];
+       testHaskellDepends = [ base bech32 hspec template-haskell ];
+       testToolDepends = [ hspec-discover ];
+       description = "Template Haskell extensions to the Bech32 library";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "bed-and-breakfast" = callPackage
     ({ mkDerivation, array, base, binary, cpphs, deepseq, QuickCheck
      , template-haskell
@@ -48897,6 +48995,24 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "binary-orphans_1_0_5" = callPackage
+    ({ mkDerivation, base, binary, OneTuple, QuickCheck
+     , quickcheck-instances, tagged, tasty, tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "binary-orphans";
+       version = "1.0.5";
+       sha256 = "13a08if69wdmc8hb7jynhllgh8jh7qbk9spygb096l9aijgaxyrr";
+       libraryHaskellDepends = [ base binary ];
+       testHaskellDepends = [
+         base binary OneTuple QuickCheck quickcheck-instances tagged tasty
+         tasty-quickcheck
+       ];
+       description = "Compatibility package for binary; provides instances";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "binary-parser" = callPackage
     ({ mkDerivation, base, base-prelude, bytestring, mtl, tasty
      , tasty-hunit, tasty-quickcheck, text, transformers
@@ -50545,7 +50661,6 @@ self: {
        ];
        description = "A small tool that clears cookies (and more)";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "bisc";
      }) {};
 
@@ -53836,6 +53951,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "boring_0_2_2" = callPackage
+    ({ mkDerivation, base, tagged, transformers }:
+     mkDerivation {
+       pname = "boring";
+       version = "0.2.2";
+       sha256 = "11pgndkjvy2j0jfaww92nmlkn2r27v6a253hzdc7dcb9zwgsz2wj";
+       libraryHaskellDepends = [ base tagged transformers ];
+       description = "Boring and Absurd types";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "boring-game" = callPackage
     ({ mkDerivation, base, gloss }:
      mkDerivation {
@@ -55811,14 +55938,14 @@ self: {
      }:
      mkDerivation {
        pname = "build";
-       version = "1.0";
-       sha256 = "1ga8qjv2p94y2nd6dmwz940vkbmx51kvcvysfvbxadl29n4wg840";
+       version = "1.1";
+       sha256 = "0p9skg7agf6hpf5n7kpzk77cj7z8dnivkkjalqipl15196lcxwkj";
        libraryHaskellDepends = [
          algebraic-graphs base containers extra filepath mtl random
          transformers
        ];
        testHaskellDepends = [ base containers extra mtl transformers ];
-       description = "Build systems a la carte";
+       description = "Build Systems à la Carte";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
        broken = true;
@@ -56133,6 +56260,24 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "burrito_2_0_1_10" = callPackage
+    ({ mkDerivation, base, bytestring, containers, hspec, parsec
+     , QuickCheck, template-haskell, text, transformers
+     }:
+     mkDerivation {
+       pname = "burrito";
+       version = "2.0.1.10";
+       sha256 = "1c8nfh90x0s7ccjznlkk73k99bk2c3n6rdfaw5pszad7ma8zmmc4";
+       libraryHaskellDepends = [
+         base bytestring containers parsec template-haskell text
+         transformers
+       ];
+       testHaskellDepends = [ base containers hspec QuickCheck text ];
+       description = "Parse and render URI templates";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "burst-detection" = callPackage
     ({ mkDerivation, base, criterion, deepseq }:
      mkDerivation {
@@ -58393,8 +58538,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-gild";
-       version = "1.3.1.0";
-       sha256 = "1ghrzw1fqslyhy9hmsmwwyv7kfbzf3bm9d0bzvf2k62s7yihrs4p";
+       version = "1.3.1.2";
+       sha256 = "15ds4x9vh5hfxbrh8k3w719jxs1mfhx8kaj035nj891r5c6llpb2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -59648,8 +59793,8 @@ self: {
      }:
      mkDerivation {
        pname = "cachix";
-       version = "1.7.2";
-       sha256 = "0fcdg55p6z7wi0q4pn3gs9xc9byhfnpzcxf1g784j4fl3321fy9z";
+       version = "1.7.3";
+       sha256 = "0xgcqgdawzb8ckdc4w0yp5lbdxmj3cd0w93wzp2nx585pi1ils7i";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -59674,9 +59819,9 @@ self: {
          stm-chans stm-conduit time uuid websockets
        ];
        testHaskellDepends = [
-         aeson base bytestring cachix-api containers dhall directory extra
-         here hspec protolude retry servant-auth-client servant-client-core
-         temporary time
+         aeson async base bytestring cachix-api containers dhall directory
+         extra here hspec protolude retry servant-auth-client
+         servant-client-core stm temporary time versions
        ];
        testToolDepends = [ hspec-discover ];
        description = "Command-line client for Nix binary cache hosting https://cachix.org";
@@ -59693,8 +59838,8 @@ self: {
      }:
      mkDerivation {
        pname = "cachix-api";
-       version = "1.7.2";
-       sha256 = "1xb5w9hqf0qgwf1b3w3v43civd95m9gqjplrm9wkhjhscqgz3drz";
+       version = "1.7.3";
+       sha256 = "0srzvhmvp927qnk31p0nlal7wl14205s1a27frj68g2yi4a1w92j";
        libraryHaskellDepends = [
          aeson async base bytestring conduit cryptonite deriving-aeson
          exceptions http-media jose memory nix-narinfo protolude resourcet
@@ -64851,13 +64996,25 @@ self: {
     ({ mkDerivation, base, Cabal, chs-deps }:
      mkDerivation {
        pname = "chs-cabal";
+       version = "0.1.1.1";
+       sha256 = "0fvf26394rpn9g4f3rp13bq8rrhzs9d95k7nbcpayzml2j9rsv3l";
+       revision = "2";
+       editedCabalFile = "1vv61klw11fhnn5ki0z2x0k6d7vvj622bjj05mdlx8sdjqijlbgd";
+       libraryHaskellDepends = [ base Cabal chs-deps ];
+       description = "Cabal with c2hs dependencies";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "chs-cabal_0_1_1_2" = callPackage
+    ({ mkDerivation, base, Cabal, chs-deps }:
+     mkDerivation {
+       pname = "chs-cabal";
        version = "0.1.1.2";
        sha256 = "1qh234dx3d3l3nxb67alv0ggwqipp1502krq11fgq3hp0jhcm8b8";
        libraryHaskellDepends = [ base Cabal chs-deps ];
        description = "Cabal with c2hs dependencies";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "chs-deps" = callPackage
@@ -67024,6 +67181,7 @@ self: {
        ];
        description = "Miscellaneous utilities for building and working with command line interfaces";
        license = lib.licenses.bsd3;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "cli-git" = callPackage
@@ -67040,6 +67198,7 @@ self: {
        ];
        description = "Bindings to the git command-line interface";
        license = lib.licenses.bsd3;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "cli-nix" = callPackage
@@ -67056,6 +67215,7 @@ self: {
        ];
        description = "Bindings to the nix command-line interface";
        license = lib.licenses.bsd3;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "cli-setup" = callPackage
@@ -68548,8 +68708,8 @@ self: {
      }:
      mkDerivation {
        pname = "cobot-io";
-       version = "0.1.5.3";
-       sha256 = "0zjvv8k928q9cdsqvwmgpypjinwrxsia6qzxmga8q2xg9rdgx9fc";
+       version = "0.1.5.5";
+       sha256 = "1j41byh9swjj09rlwjxdhwvdnjm2gnf8y4zxv0mwpgmdc18bwszy";
        libraryHaskellDepends = [
          array attoparsec base binary bytestring cobot containers
          data-msgpack deepseq filepath http-conduit hyraxAbif lens linear
@@ -68964,6 +69124,8 @@ self: {
        pname = "coercible-subtypes";
        version = "0.3.0.1";
        sha256 = "1mji6jlgc2lk6lczn10c2rchm10h2my3gs9p3r9yd6ij8ixki4sx";
+       revision = "1";
+       editedCabalFile = "000w9bg2r1n6r40a40i450gysq8yr59xpjrqwf6dzgzyxxfa9sxb";
        libraryHaskellDepends = [ base profunctors ];
        description = "Coercible but only in one direction";
        license = lib.licenses.bsd3;
@@ -69509,8 +69671,8 @@ self: {
        pname = "colonnade";
        version = "1.2.0.2";
        sha256 = "1asjx71gp26a15v7g3p8bfddb5nnzky6672c35xx35hq73mhykr4";
-       revision = "5";
-       editedCabalFile = "1f4m7lqksb7lvzs3j5v8c04l2mmq7pq1d8w7p8y9chy595rrb1kn";
+       revision = "6";
+       editedCabalFile = "1ny5nbrf5nic2xsilz7xg44y2bcviki6gs4rmg6ydfk5v291qfgn";
        libraryHaskellDepends = [
          base bytestring contravariant profunctors semigroups text vector
        ];
@@ -70059,6 +70221,32 @@ self: {
        maintainers = [ lib.maintainers.thielema ];
      }) {};
 
+  "comfort-array_0_5_5" = callPackage
+    ({ mkDerivation, base, bifunctors, ChasingBottoms, containers
+     , deepseq, doctest-exitcode-stdio, doctest-lib, guarded-allocation
+     , non-empty, prelude-compat, primitive, QuickCheck, semigroups
+     , storable-record, storablevector, tagged, transformers
+     , transformers-compat, utility-ht
+     }:
+     mkDerivation {
+       pname = "comfort-array";
+       version = "0.5.5";
+       sha256 = "0jyhlxm64di682i2hwf1f1mw6f7xjwhb1ihnp8dh9vsg93hwik5i";
+       libraryHaskellDepends = [
+         base bifunctors containers deepseq guarded-allocation non-empty
+         prelude-compat primitive QuickCheck semigroups storable-record
+         storablevector tagged transformers transformers-compat utility-ht
+       ];
+       testHaskellDepends = [
+         base ChasingBottoms containers deepseq doctest-exitcode-stdio
+         doctest-lib QuickCheck tagged utility-ht
+       ];
+       description = "Arrays where the index type is a function of the shape type";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.thielema ];
+     }) {};
+
   "comfort-array-shape" = callPackage
     ({ mkDerivation, base, ChasingBottoms, comfort-array, containers
      , doctest-exitcode-stdio, doctest-lib, fixed-length, non-empty
@@ -70107,6 +70295,31 @@ self: {
        maintainers = [ lib.maintainers.thielema ];
      }) {};
 
+  "comfort-blas_0_0_3" = callPackage
+    ({ mkDerivation, base, blas-ffi, comfort-array, containers, deepseq
+     , doctest-exitcode-stdio, doctest-lib, guarded-allocation
+     , netlib-ffi, non-empty, QuickCheck, semigroups, storablevector
+     , transformers, utility-ht
+     }:
+     mkDerivation {
+       pname = "comfort-blas";
+       version = "0.0.3";
+       sha256 = "1zadvjx095kxp4rl5ml120xh0ihaz7v5391fim5gdsgwdh00fwmp";
+       libraryHaskellDepends = [
+         base blas-ffi comfort-array containers deepseq guarded-allocation
+         netlib-ffi non-empty semigroups storablevector transformers
+         utility-ht
+       ];
+       testHaskellDepends = [
+         base comfort-array containers doctest-exitcode-stdio doctest-lib
+         netlib-ffi QuickCheck utility-ht
+       ];
+       description = "Numerical Basic Linear Algebra using BLAS";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.thielema ];
+     }) {};
+
   "comfort-fftw" = callPackage
     ({ mkDerivation, base, comfort-array, deepseq
      , doctest-exitcode-stdio, doctest-lib, fftw-ffi, netlib-ffi
@@ -70489,18 +70702,20 @@ self: {
        libraryHaskellDepends = [ base containers ];
        description = "Commutative semigroups";
        license = lib.licenses.bsd3;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
-  "commutative-semigroups_0_2" = callPackage
+  "commutative-semigroups_0_2_0_1" = callPackage
     ({ mkDerivation, base, containers }:
      mkDerivation {
        pname = "commutative-semigroups";
-       version = "0.2";
-       sha256 = "0jkqfslrvyh17p9llf1ga249fcnhfjlp1rb3nvj0078a19c0xcd8";
+       version = "0.2.0.1";
+       sha256 = "1p5nyy6mdbn12j6sl7wlzc3crn291lzdmc2ml5ccvrw6cnh5bq72";
        libraryHaskellDepends = [ base containers ];
        description = "Commutative semigroups";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "comonad" = callPackage
@@ -74284,6 +74499,7 @@ self: {
        description = "Utility package for constraints";
        license = lib.licenses.bsd3;
        mainProgram = "readme";
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "constrictor" = callPackage
@@ -76149,10 +76365,11 @@ self: {
      }:
      mkDerivation {
        pname = "cornelis";
-       version = "0.2.0.0";
-       sha256 = "10frpbc0944pv5vc4qlh5blww8z5y6318gb5lhlrm3pm28sbxy1k";
+       version = "0.2.0.1";
+       sha256 = "056d2lw1m36zqgv2lma4a3bm2zlwc5zmpf5dsqyjrgzmwd50kdpc";
        isLibrary = true;
        isExecutable = true;
+       enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson async base bytestring containers diff-loc directory filepath
          fingertree generic-lens hspec lens levenshtein megaparsec mtl
@@ -76404,6 +76621,34 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "country_0_2_4_2" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, bytebuild, bytehash
+     , byteslice, bytestring, compact, contiguous, deepseq, gauge
+     , hashable, primitive, primitive-unlifted, QuickCheck
+     , quickcheck-classes, scientific, tasty, tasty-quickcheck, text
+     , text-short, unordered-containers
+     }:
+     mkDerivation {
+       pname = "country";
+       version = "0.2.4.2";
+       sha256 = "0pfxf1bmkp7025qv92mrhpi1snkrfrxv4bj84m3h34nhra9a3rwn";
+       libraryHaskellDepends = [
+         aeson attoparsec base bytebuild bytehash byteslice bytestring
+         contiguous deepseq hashable primitive primitive-unlifted scientific
+         text text-short unordered-containers
+       ];
+       testHaskellDepends = [
+         base byteslice primitive QuickCheck quickcheck-classes tasty
+         tasty-quickcheck text text-short
+       ];
+       benchmarkHaskellDepends = [
+         base bytehash bytestring compact gauge text
+       ];
+       description = "Country data type and functions";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "country-codes" = callPackage
     ({ mkDerivation, aeson, base, deepseq, HTF, HUnit, shakespeare
      , text
@@ -78950,6 +79195,25 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "crypton-connection_0_4_0" = callPackage
+    ({ mkDerivation, base, basement, bytestring, containers
+     , crypton-x509, crypton-x509-store, crypton-x509-system
+     , crypton-x509-validation, data-default-class, network, socks, tls
+     }:
+     mkDerivation {
+       pname = "crypton-connection";
+       version = "0.4.0";
+       sha256 = "0gmmj1r2y21x50ahp35m3zcy7mnsagj8mvp4y2sr4114x5c57gf5";
+       libraryHaskellDepends = [
+         base basement bytestring containers crypton-x509 crypton-x509-store
+         crypton-x509-system crypton-x509-validation data-default-class
+         network socks tls
+       ];
+       description = "Simple and easy network connections API";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "crypton-x509" = callPackage
     ({ mkDerivation, asn1-encoding, asn1-parse, asn1-types, base
      , bytestring, containers, crypton, hourglass, memory, mtl, pem
@@ -85093,6 +85357,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "dec_0_0_6" = callPackage
+    ({ mkDerivation, base, boring }:
+     mkDerivation {
+       pname = "dec";
+       version = "0.0.6";
+       sha256 = "0bbzn9kqb1zdvi4kd37p3lhx0rkdbyq98hqcn9qv5y67s6a3c5gv";
+       libraryHaskellDepends = [ base boring ];
+       description = "Decidable propositions";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "decepticons" = callPackage
     ({ mkDerivation, base, comonad-transformers }:
      mkDerivation {
@@ -85269,8 +85545,8 @@ self: {
      }:
      mkDerivation {
        pname = "deep-transformations";
-       version = "0.2.2";
-       sha256 = "1sjqvpbb3b90fpxmj0i7zarkj97m6q259l77kgdzjlbcnnd980ws";
+       version = "0.2.3";
+       sha256 = "1ahpvm0ix9qkzr8wki3rdd2abcwdm9wlp246cpmc71yc7wrlbm4j";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base generic-lens rank2classes template-haskell transformers
@@ -86208,6 +86484,7 @@ self: {
        description = "Dependent finite maps (partial dependent products)";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "dependent-map" = callPackage
@@ -86225,6 +86502,7 @@ self: {
        ];
        description = "Dependent finite maps (partial dependent products)";
        license = "unknown";
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "dependent-monoidal-map" = callPackage
@@ -86241,6 +86519,7 @@ self: {
        ];
        description = "Dependent map that uses semigroup mappend";
        license = lib.licenses.bsd3;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "dependent-state" = callPackage
@@ -86267,6 +86546,7 @@ self: {
        description = "Dependent sum type";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "dependent-sum" = callPackage
@@ -86280,6 +86560,7 @@ self: {
        libraryHaskellDepends = [ base constraints-extras some ];
        description = "Dependent sum type";
        license = lib.licenses.publicDomain;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "dependent-sum-aeson-orphans" = callPackage
@@ -86296,6 +86577,7 @@ self: {
        ];
        description = "JSON instances for DSum, DMap, and Some";
        license = lib.licenses.bsd3;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "dependent-sum-template" = callPackage
@@ -86312,6 +86594,7 @@ self: {
        testHaskellDepends = [ base constraints-extras dependent-sum ];
        description = "Template Haskell code to generate instances of classes in dependent-sum package";
        license = lib.licenses.publicDomain;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "dependent-sum-template_0_2_0_1" = callPackage
@@ -86333,6 +86616,7 @@ self: {
        description = "Template Haskell code to generate instances of classes in some package";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "depends" = callPackage
@@ -89901,12 +90185,12 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "directory_1_3_8_4" = callPackage
+  "directory_1_3_8_5" = callPackage
     ({ mkDerivation, base, filepath, time, unix }:
      mkDerivation {
        pname = "directory";
-       version = "1.3.8.4";
-       sha256 = "0r10g7a68r5asjgs5r0zpjzq0qiqf5i8h5bmaylpm6ikwnj9irx4";
+       version = "1.3.8.5";
+       sha256 = "0s57dq5l02b9z3h17slw3yg73mzdx15pzj02xg91avpwvmafsr78";
        libraryHaskellDepends = [ base filepath time unix ];
        testHaskellDepends = [ base filepath time unix ];
        description = "Platform-agnostic library for filesystem operations";
@@ -91305,8 +91589,8 @@ self: {
      }:
      mkDerivation {
        pname = "distribution-nixpkgs";
-       version = "1.7.0.1";
-       sha256 = "0yaha7arm9cn9sxacqwmr2qcnw2cxn53xww11im00mx7gk127rh2";
+       version = "1.7.1";
+       sha256 = "19jzsqva4bnnjyq0zgqmqrvlgb6x3jxjqg398kwzk5syrxbap9nl";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bytestring Cabal containers deepseq language-nix lens
@@ -94564,8 +94848,8 @@ self: {
        pname = "dual-tree";
        version = "0.2.3.1";
        sha256 = "19nm34d166fhlkk7npx0iq9kbx7300a82bg75q1sx98jqfa4nffh";
-       revision = "2";
-       editedCabalFile = "1qlrrvw3j9h12nj105aa5ckri5580xgbi16gph70i5w2crmrvphw";
+       revision = "3";
+       editedCabalFile = "154wamfjywc7k8sm7kx7ylwzd8s8xngj2p9kpi1kr8b42n4f9v4y";
        libraryHaskellDepends = [ base monoid-extras semigroups ];
        testHaskellDepends = [
          base monoid-extras QuickCheck semigroups testing-feat
@@ -98159,6 +98443,30 @@ self: {
        license = lib.licenses.mpl20;
      }) {};
 
+  "elm-street_0_2_2_1" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, directory, filepath
+     , hspec, prettyprinter, servant, servant-server, text, time, wai
+     , warp
+     }:
+     mkDerivation {
+       pname = "elm-street";
+       version = "0.2.2.1";
+       sha256 = "0hn3fxpmrwb162r8diijg0dp3rpz241nizdcbclq8friii13c3m4";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base directory filepath prettyprinter text time
+       ];
+       executableHaskellDepends = [
+         base directory filepath servant servant-server text wai warp
+       ];
+       testHaskellDepends = [ aeson base bytestring hspec ];
+       doHaddock = false;
+       description = "Crossing the road between Haskell and Elm";
+       license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "elm-syntax" = callPackage
     ({ mkDerivation, base, bound, deriving-compat, hashable
      , prettyprinter, text, unordered-containers
@@ -98550,6 +98858,8 @@ self: {
        pname = "emacs-module";
        version = "0.2.1";
        sha256 = "0xmydwd9b78943cqxwx3pk71lp9chr879rpkf2fhfl2g6xvhrf86";
+       revision = "1";
+       editedCabalFile = "0m616p4mli1785yqr5qq52bi6cwgsqkapam75xq27d1dni0nc7h9";
        libraryHaskellDepends = [
          base bytestring deepseq exceptions filepath monad-control
          monad-interleave mtl prettyprinter prettyprinter-combinators
@@ -98560,6 +98870,27 @@ self: {
        license = lib.licenses.asl20;
      }) {};
 
+  "emacs-module_0_2_1_1" = callPackage
+    ({ mkDerivation, base, bytestring, deepseq, exceptions, filepath
+     , monad-control, monad-interleave, mtl, os-string, prettyprinter
+     , prettyprinter-combinators, primitive, template-haskell, text
+     , transformers-base, tuples-homogenous-h98, vector, void
+     }:
+     mkDerivation {
+       pname = "emacs-module";
+       version = "0.2.1.1";
+       sha256 = "1s8h935xlkfxp04fgkd1025a3sg8phs8fx18iaji7hkvifpykgfj";
+       libraryHaskellDepends = [
+         base bytestring deepseq exceptions filepath monad-control
+         monad-interleave mtl os-string prettyprinter
+         prettyprinter-combinators primitive template-haskell text
+         transformers-base tuples-homogenous-h98 vector void
+       ];
+       description = "Utilities to write Emacs dynamic modules";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "email" = callPackage
     ({ mkDerivation, array, base, bytestring, encoding, HaskellNet
      , hsemail, old-locale, old-time, parsec, process, time
@@ -98645,26 +98976,16 @@ self: {
      }) {};
 
   "email-validator" = callPackage
-    ({ mkDerivation, base, bytestring, cmdargs, dns, doctest
-     , email-validate, HUnit, parallel-io, pcre-light, tasty
-     , tasty-hunit
-     }:
+    ({ mkDerivation, base }:
      mkDerivation {
        pname = "email-validator";
-       version = "1.0.1";
-       sha256 = "0nn1lrl1dv9zg9kvw46253jdb6cfzh5wn70n71pv85adc544001s";
+       version = "1.8.7";
+       sha256 = "1gd1irn7a4mxd99m0r4s5px3jib8wri67gpsdhryc37zn4l7n89q";
        isLibrary = false;
        isExecutable = true;
-       executableHaskellDepends = [
-         base bytestring cmdargs dns email-validate HUnit parallel-io
-         pcre-light tasty tasty-hunit
-       ];
-       testHaskellDepends = [
-         base bytestring doctest email-validate HUnit pcre-light tasty
-         tasty-hunit
-       ];
+       executableHaskellDepends = [ base ];
        description = "Perform basic syntax and deliverability checks on email addresses";
-       license = lib.licenses.agpl3Only;
+       license = lib.licenses.agpl3Plus;
        mainProgram = "email-validator";
      }) {};
 
@@ -100107,11 +100428,31 @@ self: {
        pname = "equational-reasoning";
        version = "0.7.0.2";
        sha256 = "18pmg7c103yprldbzh0c3wz2mbiidi14ildymsfggnxica6w05qg";
+       revision = "1";
+       editedCabalFile = "0qqswv42lwkv6y4hssniv4my9l9kxyvh84b2gmyqky1ijcny5y6k";
+       libraryHaskellDepends = [
+         base containers template-haskell th-desugar void
+       ];
+       description = "Proof assistant for Haskell using DataKinds & PolyKinds";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "equational-reasoning_0_7_0_3" = callPackage
+    ({ mkDerivation, base, containers, template-haskell, th-desugar
+     , void
+     }:
+     mkDerivation {
+       pname = "equational-reasoning";
+       version = "0.7.0.3";
+       sha256 = "0pr7m6afb6yi4g86pk08i27xxs9n4dszxkra6lm3icm72szygw2j";
+       revision = "1";
+       editedCabalFile = "1vh3m63xwisa4izz2y900xr28jny85dkapxcxpmwx0qh39nbsrpy";
        libraryHaskellDepends = [
          base containers template-haskell th-desugar void
        ];
        description = "Proof assistant for Haskell using DataKinds & PolyKinds";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "equational-reasoning-induction" = callPackage
@@ -100230,21 +100571,20 @@ self: {
 
   "erebos-tester" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory, filepath
-     , generic-deriving, Glob, haskeline, HsYAML, lens, linux-namespaces
-     , megaparsec, mtl, parser-combinators, process, regex-tdfa
-     , scientific, stm, template-haskell, text, th-compat, unix
+     , Glob, haskeline, HsYAML, linux-namespaces, megaparsec, mtl
+     , parser-combinators, process, regex-tdfa, scientific, stm
+     , template-haskell, text, th-compat, unix
      }:
      mkDerivation {
        pname = "erebos-tester";
-       version = "0.2.1";
-       sha256 = "19k77irlgihhrq3zzyp2nvny5xqbgy140hr0d9jwd4cwmb3czidd";
+       version = "0.2.2";
+       sha256 = "156597h0sriwjm5rivlmvizn76i5c984bs87v39zj0yyr2qzk0f7";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         base bytestring containers directory filepath generic-deriving Glob
-         haskeline HsYAML lens linux-namespaces megaparsec mtl
-         parser-combinators process regex-tdfa scientific stm
-         template-haskell text th-compat unix
+         base bytestring containers directory filepath Glob haskeline HsYAML
+         linux-namespaces megaparsec mtl parser-combinators process
+         regex-tdfa scientific stm template-haskell text th-compat unix
        ];
        description = "Test framework with virtual network using Linux namespaces";
        license = lib.licenses.gpl3Only;
@@ -104847,8 +105187,8 @@ self: {
        pname = "falsify";
        version = "0.2.0";
        sha256 = "1fhj70q6kfd98892gxfy3mc8wxxyr80g4rzapaici4zd3zczz2fd";
-       revision = "1";
-       editedCabalFile = "0i740c9nfjpgygdzq6gzjdcaj94m5dyf2bybbdx9xgw0kacmxbc2";
+       revision = "2";
+       editedCabalFile = "1cr3lx1i89jb9sx4pqlgnb03gdav28hhn0i7prv63kjyzjn10p82";
        libraryHaskellDepends = [
          base base16-bytestring binary bytestring containers data-default
          mtl optics-core optparse-applicative selective sop-core splitmix
@@ -105037,6 +105377,27 @@ self: {
        maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
+  "fast-logger_3_2_3" = callPackage
+    ({ mkDerivation, array, async, auto-update, base, bytestring
+     , directory, easy-file, filepath, hspec, hspec-discover, stm, text
+     , unix-compat, unix-time
+     }:
+     mkDerivation {
+       pname = "fast-logger";
+       version = "3.2.3";
+       sha256 = "0af4228rnv2g3fgw00vx85fh0ngi092bx54awx1cd1jjkmpdyn73";
+       libraryHaskellDepends = [
+         array auto-update base bytestring directory easy-file filepath stm
+         text unix-compat unix-time
+       ];
+       testHaskellDepends = [ async base bytestring directory hspec ];
+       testToolDepends = [ hspec-discover ];
+       description = "A fast logging system";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.sternenseemann ];
+     }) {};
+
   "fast-math" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -109628,6 +109989,19 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "flow_2_0_0_5" = callPackage
+    ({ mkDerivation, base, HUnit }:
+     mkDerivation {
+       pname = "flow";
+       version = "2.0.0.5";
+       sha256 = "1g2fg0mdw0i2c91x3vgdzwhasmk1an5x5w5wy8dpv3hvc2van3jk";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base HUnit ];
+       description = "Write more understandable Haskell";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "flow-er" = callPackage
     ({ mkDerivation, base, doctest, flow, QuickCheck }:
      mkDerivation {
@@ -112046,8 +112420,8 @@ self: {
      }:
      mkDerivation {
        pname = "freckle-app";
-       version = "1.15.3.0";
-       sha256 = "1d31s4zzazxvsiswavw1yxddm5c8krx5b1sf99sjlj8m3wwf7skz";
+       version = "1.15.4.0";
+       sha256 = "0vrc34946jh37g4mbydwdj40nj6b1mlhrdq3ipn3lbjzvxapmb4d";
        libraryHaskellDepends = [
          aeson annotated-exception autodocodec autodocodec-openapi3
          aws-xray-client-persistent aws-xray-client-wai base bcp47 Blammo
@@ -112111,8 +112485,8 @@ self: {
        pname = "free";
        version = "5.2";
        sha256 = "12agp68cwwixcwfwnvk2xamg34a2x6ax7s1naxv66chpi5y7z1kj";
-       revision = "4";
-       editedCabalFile = "0vic3p2viip8gjww8fx19ax6ry7y34h7xclvhzkvmbspjh9d219x";
+       revision = "5";
+       editedCabalFile = "0vn4rk8gw60571j4smw8x7jldigj3i84jr0rycxlkag94w6rrr1i";
        libraryHaskellDepends = [
          base comonad containers distributive exceptions indexed-traversable
          mtl profunctors semigroupoids template-haskell th-abstraction
@@ -112636,6 +113010,8 @@ self: {
        pname = "freer-simple";
        version = "1.2.1.2";
        sha256 = "11ypffdkpaxc03hlik6ymilhnk41fy7m92zzwqjma97g614vn0lw";
+       revision = "2";
+       editedCabalFile = "0p5d7q1bi4prw9mp6fgrz04xb6di47ywadkh788r0chxjdd2dzgl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -113509,17 +113885,16 @@ self: {
 
   "ftp-client" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, containers
-     , crypton-connection, exceptions, hspec, network, transformers
+     , crypton-connection, data-default-class, exceptions, hspec
+     , network, transformers
      }:
      mkDerivation {
        pname = "ftp-client";
-       version = "0.5.1.5";
-       sha256 = "08sxbk4s3prh22b1c19cv571fgdc5k9347i17jqmvfwjl3lkv5w7";
-       revision = "2";
-       editedCabalFile = "0lhm04d5msi9k6v2fiaiwl99bxc024rgggjjg8lm8kpsxq2wx11i";
+       version = "0.5.1.6";
+       sha256 = "0xlrmzngdzg8h7lcb6kaz1zcm3kd1rdax4xs0h048iz7f78q18dg";
        libraryHaskellDepends = [
-         attoparsec base bytestring containers crypton-connection exceptions
-         network transformers
+         attoparsec base bytestring containers crypton-connection
+         data-default-class exceptions network transformers
        ];
        testHaskellDepends = [ base bytestring hspec ];
        description = "Transfer files with FTP and FTPS";
@@ -114101,10 +114476,8 @@ self: {
      }:
      mkDerivation {
        pname = "functor-products";
-       version = "0.1.2.1";
-       sha256 = "0zyh311ayqdnjjs0j939b8968jajjry4igxi27xsgpgdya3qmk7d";
-       revision = "1";
-       editedCabalFile = "12rnvjxf68d1nxfc1sw4vmzgq6yd0079s95c4k2rxkqibx9cm0xg";
+       version = "0.1.2.2";
+       sha256 = "16wz70z13knkqx2xhj61hsnvsq9qky1c5avhfdahimswyi8qasfd";
        libraryHaskellDepends = [
          base microlens singletons singletons-base text vinyl
        ];
@@ -115384,6 +115757,7 @@ self: {
        ];
        description = "Automatically spin up and spin down local daemons";
        license = lib.licenses.bsd3;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "gargoyle-postgresql" = callPackage
@@ -115405,6 +115779,7 @@ self: {
        ];
        description = "Manage PostgreSQL servers with gargoyle";
        license = lib.licenses.bsd3;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "gargoyle-postgresql-connect" = callPackage
@@ -115422,6 +115797,7 @@ self: {
        ];
        description = "Connect to gargoyle-managed postgresql instances";
        license = lib.licenses.bsd3;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "gargoyle-postgresql-nix" = callPackage
@@ -115442,6 +115818,7 @@ self: {
        ];
        description = "Manage PostgreSQL servers with gargoyle and nix";
        license = lib.licenses.bsd3;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "garlic-bread" = callPackage
@@ -117079,8 +117456,8 @@ self: {
        pname = "generically";
        version = "0.1.1";
        sha256 = "1ks3pi6mpma83xffplz8vmimyhvzpnhmcgvk3bvl3c64pqva9i84";
-       revision = "2";
-       editedCabalFile = "0z2rjz0ap63zjpj4166fxl09zfrlpmzn85pi3l0vhlr8pi4w13ip";
+       revision = "3";
+       editedCabalFile = "1hl8690xqb6af5i5jn5s55s29hpx9fq1ghdnxi5l1li2q25666qv";
        libraryHaskellDepends = [ base ];
        description = "Generically newtype to use with DerivingVia";
        license = lib.licenses.bsd3;
@@ -117151,6 +117528,7 @@ self: {
        ];
        description = "Generic Programming using True Sums of Products";
        license = lib.licenses.bsd3;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "generics-sop_0_5_1_4" = callPackage
@@ -117173,6 +117551,7 @@ self: {
        description = "Generic Programming using True Sums of Products";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "generics-sop-lens" = callPackage
@@ -118627,7 +119006,7 @@ self: {
        mainProgram = "gh-pocket-knife";
      }) {};
 
-  "ghc_9_8_2" = callPackage
+  "ghc_9_10_1" = callPackage
     ({ mkDerivation, alex, array, base, binary, bytestring, Cabal
      , containers, deepseq, deriveConstants, directory, exceptions
      , filepath, genprimopcode, ghc-boot, ghc-heap, ghci, happy, hpc
@@ -118636,8 +119015,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc";
-       version = "9.8.2";
-       sha256 = "1q396jkd3j8g7kc2vbkfhrpv1wqa8h1ahfh7jvbgycxmn0vzfh9h";
+       version = "9.10.1";
+       sha256 = "0vdhjqfcwjnhr2dijjqcwvybfy2pvfsynh87wh9hbak9w0ppwvha";
        setupHaskellDepends = [
          base Cabal containers directory filepath process
        ];
@@ -118719,30 +119098,31 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "ghc-boot_9_8_1" = callPackage
+  "ghc-boot_9_10_1" = callPackage
     ({ mkDerivation, base, binary, bytestring, Cabal, containers
-     , deepseq, directory, filepath, ghc-boot-th, unix
+     , deepseq, directory, filepath, ghc-boot-th, ghc-platform, unix
      }:
      mkDerivation {
        pname = "ghc-boot";
-       version = "9.8.1";
-       sha256 = "080qalf35kvf9qgyn9w59m1szwl5n8ahvjdzqr7vrd5kf0f9cczz";
+       version = "9.10.1";
+       sha256 = "02sqxmc2f8lb95hrabj088618sd9by9ypvsrs2f2753dg1xqlbzg";
        setupHaskellDepends = [ base Cabal directory filepath ];
        libraryHaskellDepends = [
          base binary bytestring containers deepseq directory filepath
-         ghc-boot-th unix
+         ghc-boot-th ghc-platform unix
        ];
        description = "Shared functionality between GHC and its boot libraries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-     }) {};
+       broken = true;
+     }) {ghc-platform = null;};
 
-  "ghc-boot-th_9_8_1" = callPackage
+  "ghc-boot-th_9_10_1" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "ghc-boot-th";
-       version = "9.8.1";
-       sha256 = "16vsirgz8g0zmika6pr638mh4s5xrgwsc6dgnhyhwryg10mabp66";
+       version = "9.10.1";
+       sha256 = "1lzwhidhv9dv70i7nkjzbli2qc8s4fbzps311ihz73wx3sdvrrrr";
        libraryHaskellDepends = [ base ];
        description = "Shared functionality between GHC and the @template-haskell@ library";
        license = lib.licenses.bsd3;
@@ -119282,6 +119662,31 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "ghc-exactprint_1_9_0_0" = callPackage
+    ({ mkDerivation }:
+     mkDerivation {
+       pname = "ghc-exactprint";
+       version = "1.9.0.0";
+       sha256 = "195y3yy7bjrx3b21nqrhxrnbxidaydb9g28i37wqx5glv8y65v51";
+       isLibrary = true;
+       isExecutable = true;
+       description = "ExactPrint for GHC";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "ghc-experimental" = callPackage
+    ({ mkDerivation, base, ghc-internal, ghc-prim }:
+     mkDerivation {
+       pname = "ghc-experimental";
+       version = "0.1.0.0";
+       sha256 = "144s8ja4jdasq65db1q4342ny1cd0d1ad48axd9gzv1h0mmqkz4f";
+       libraryHaskellDepends = [ base ghc-internal ghc-prim ];
+       description = "Experimental features of GHC's standard library";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "ghc-gc-hook" = callPackage
     ({ mkDerivation, base, clock }:
      mkDerivation {
@@ -119324,14 +119729,12 @@ self: {
        broken = true;
      }) {};
 
-  "ghc-heap_9_8_1" = callPackage
+  "ghc-heap_9_10_1" = callPackage
     ({ mkDerivation, base, containers, ghc-prim, rts }:
      mkDerivation {
        pname = "ghc-heap";
-       version = "9.8.1";
-       sha256 = "1z0gghf7ki2sz60ikgdw3d42djphl5lf27z8mfnzcvxp3p6ajxmz";
-       revision = "1";
-       editedCabalFile = "0n7ba0gwaxpsknb5kxpis7ji9172xvim63di83gl63avp0sjdwd5";
+       version = "9.10.1";
+       sha256 = "1vkvi646gspj0i4llq40asdjmzwwczglci0qi8rv7lq75v6g1kl6";
        libraryHaskellDepends = [ base containers ghc-prim rts ];
        description = "Functions for walking GHC's heap";
        license = lib.licenses.bsd3;
@@ -119447,6 +119850,19 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "ghc-internal" = callPackage
+    ({ mkDerivation, ghc-bignum, ghc-prim, rts }:
+     mkDerivation {
+       pname = "ghc-internal";
+       version = "9.1001.0";
+       sha256 = "0z38v4gnyis99r3rli2g3dyg948d98lhd1ylz5irbghnvrn8myhl";
+       libraryHaskellDepends = [ ghc-bignum ghc-prim rts ];
+       description = "Basic libraries";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "ghc-justdoit" = callPackage
     ({ mkDerivation, base, ghc, hashable, inspection-testing }:
      mkDerivation {
@@ -119504,6 +119920,28 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "ghc-lib_9_8_2_20240223" = callPackage
+    ({ mkDerivation, alex, array, base, binary, bytestring, containers
+     , deepseq, directory, exceptions, filepath, ghc-lib-parser
+     , ghc-prim, happy, hpc, parsec, pretty, process, rts
+     , semaphore-compat, stm, time, transformers, unix
+     }:
+     mkDerivation {
+       pname = "ghc-lib";
+       version = "9.8.2.20240223";
+       sha256 = "12lmk3ipd1pyiwzmnb0zgbw86yy7mhsy530dnackwidg3ww07nia";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         array base binary bytestring containers deepseq directory
+         exceptions filepath ghc-lib-parser ghc-prim hpc parsec pretty
+         process rts semaphore-compat stm time transformers unix
+       ];
+       libraryToolDepends = [ alex happy ];
+       description = "The GHC API, decoupled from GHC versions";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "ghc-lib_9_10_1_20240511" = callPackage
     ({ mkDerivation, alex, array, base, binary, bytestring, containers
      , deepseq, directory, exceptions, filepath, ghc-lib-parser
@@ -119872,8 +120310,8 @@ self: {
        pname = "ghc-paths";
        version = "0.1.0.12";
        sha256 = "1164w9pqnf7rjm05mmfjznz7rrn415blrkk1kjc0gjvks1vfdjvf";
-       revision = "5";
-       editedCabalFile = "12y71qx0yjxxjjzvkpx12ld0fkmpkli8qxpfxp3xfnz8w0gxbv9c";
+       revision = "6";
+       editedCabalFile = "13j23fnlh18zqh5m4y8b5skhavq9kjx2jl6kyxvmfcmdi3q4nwjf";
        setupHaskellDepends = [ base Cabal directory ];
        libraryHaskellDepends = [ base ];
        description = "Knowledge of GHC's installation directories";
@@ -120231,7 +120669,6 @@ self: {
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
        mainProgram = "ghc-tags";
-       broken = true;
      }) {};
 
   "ghc-tags_1_6" = callPackage
@@ -120255,7 +120692,29 @@ self: {
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
        mainProgram = "ghc-tags";
-       broken = true;
+     }) {};
+
+  "ghc-tags_1_7" = callPackage
+    ({ mkDerivation, aeson, async, attoparsec, base, bytestring
+     , containers, deepseq, directory, filepath, ghc, ghc-boot
+     , ghc-paths, optparse-applicative, process, stm, temporary, text
+     , time, vector, yaml
+     }:
+     mkDerivation {
+       pname = "ghc-tags";
+       version = "1.7";
+       sha256 = "17189yi1zffgcdwx0nb6n4pbv3jhfajhfnag84fnqwy4kbvl5ma4";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         aeson async attoparsec base bytestring containers deepseq directory
+         filepath ghc ghc-boot ghc-paths optparse-applicative process stm
+         temporary text time vector yaml
+       ];
+       description = "Utility for generating ctags and etags with GHC API";
+       license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghc-tags";
      }) {};
 
   "ghc-tags" = callPackage
@@ -120277,9 +120736,7 @@ self: {
        ];
        description = "Utility for generating ctags and etags with GHC API";
        license = lib.licenses.mpl20;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "ghc-tags";
-       broken = true;
      }) {};
 
   "ghc-tags-core" = callPackage
@@ -120401,6 +120858,19 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "ghc-trace-events_0_1_2_9" = callPackage
+    ({ mkDerivation, base, bytestring, tasty-bench, text }:
+     mkDerivation {
+       pname = "ghc-trace-events";
+       version = "0.1.2.9";
+       sha256 = "01fk87z47jf8hm7dahjnfdmg2m26gi00f64va0p8l6rnirzxz9z9";
+       libraryHaskellDepends = [ base bytestring text ];
+       benchmarkHaskellDepends = [ base bytestring tasty-bench ];
+       description = "Faster traceEvent and traceMarker, and binary object logging for eventlog";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "ghc-typelits-extra" = callPackage
     ({ mkDerivation, base, containers, ghc, ghc-bignum, ghc-prim
      , ghc-tcplugins-extra, ghc-typelits-knownnat
@@ -120875,6 +121345,8 @@ self: {
        sha256 = "1cx9jqpbr6b30qckp2zpsfk3swa58snjb79pq0l6485nvrxa9mls";
        description = "base library for GHCJS";
        license = lib.licenses.mit;
+       platforms = [ "javascript-ghcjs" ];
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "ghcjs-base-stub" = callPackage
@@ -120921,6 +121393,7 @@ self: {
        ];
        description = "DOM library that supports both GHCJS and GHC";
        license = lib.licenses.mit;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "ghcjs-dom-hello" = callPackage
@@ -120942,7 +121415,7 @@ self: {
        ];
        description = "GHCJS DOM Hello World, an example package";
        license = lib.licenses.mit;
-       badPlatforms = lib.platforms.darwin;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "ghcjs-dom-javascript" = callPackage
@@ -120953,8 +121426,8 @@ self: {
        sha256 = "0im7wn7bn43rhkblh0wn9angadbdvywsalfz0adr9pkwv6hvc8qs";
        description = "DOM library using JSFFI and GHCJS";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       platforms = [ "javascript-ghcjs" ];
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "ghcjs-dom-jsaddle" = callPackage
@@ -120967,6 +121440,7 @@ self: {
        doHaddock = false;
        description = "DOM library that supports both GHCJS and GHC using jsaddle";
        license = lib.licenses.mit;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "ghcjs-dom-jsffi" = callPackage
@@ -121091,6 +121565,8 @@ self: {
        ];
        description = "Deprecated: use ghcjs-base's native websockets";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "ghcjs-xhr" = callPackage
@@ -123792,6 +124268,28 @@ self: {
        mainProgram = "github-release";
      }) {};
 
+  "github-release_2_0_0_11" = callPackage
+    ({ mkDerivation, aeson, base, burrito, bytestring, http-client
+     , http-client-tls, http-types, mime-types, optparse-generic, text
+     , unordered-containers
+     }:
+     mkDerivation {
+       pname = "github-release";
+       version = "2.0.0.11";
+       sha256 = "04zgg55zp5ggrisc5nkz4fjmx50cdgjayffcrf7y8gsi6wk96f81";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base burrito bytestring http-client http-client-tls
+         http-types mime-types optparse-generic text unordered-containers
+       ];
+       executableHaskellDepends = [ base ];
+       description = "Upload files to GitHub releases";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "github-release";
+     }) {};
+
   "github-rest" = callPackage
     ({ mkDerivation, aeson, aeson-qq, base, bytestring, http-client
      , http-client-tls, http-types, jwt, mtl, scientific, tasty
@@ -124022,7 +124520,9 @@ self: {
        ];
        description = "Wiki using happstack, git or darcs, and pandoc";
        license = "GPL";
-       maintainers = [ lib.maintainers.sternenseemann ];
+       maintainers = [
+         lib.maintainers.Profpatsch lib.maintainers.sternenseemann
+       ];
      }) {};
 
   "gitlab-api" = callPackage
@@ -133866,7 +134366,7 @@ self: {
      }) {};
 
   "haddock_2_23_1" = callPackage
-    ({ mkDerivation, base, filepath, haddock-api }:
+    ({ mkDerivation, base, filepath, haddock-api, haddock-test }:
      mkDerivation {
        pname = "haddock";
        version = "2.23.1";
@@ -133874,9 +134374,7 @@ self: {
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [ base haddock-api ];
-       testHaskellDepends = [ base filepath ];
-       doCheck = false;
-       preCheck = "unset GHC_PACKAGE_PATH";
+       testHaskellDepends = [ base filepath haddock-test ];
        description = "A documentation-generation tool for Haskell libraries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -133884,7 +134382,7 @@ self: {
      }) {};
 
   "haddock" = callPackage
-    ({ mkDerivation, base, filepath, haddock-api }:
+    ({ mkDerivation, base, filepath, haddock-api, haddock-test }:
      mkDerivation {
        pname = "haddock";
        version = "2.29.1";
@@ -133892,9 +134390,7 @@ self: {
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [ base haddock-api ];
-       testHaskellDepends = [ base filepath ];
-       doCheck = false;
-       preCheck = "unset GHC_PACKAGE_PATH";
+       testHaskellDepends = [ base filepath haddock-test ];
        description = "A documentation-generation tool for Haskell libraries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -134193,21 +134689,16 @@ self: {
      }) {};
 
   "haeredes" = callPackage
-    ({ mkDerivation, base, bytestring, cmdargs, dns, doctest, filemanip
-     , iproute, parallel-io, process
-     }:
+    ({ mkDerivation, base }:
      mkDerivation {
        pname = "haeredes";
-       version = "0.5.3";
-       sha256 = "10pjkgwqyij2vd6q2n6g53n11h6fqv9g2zr57bym8dp2j22p2jzh";
+       version = "1.8.7";
+       sha256 = "160yr3s54r4wb8rpb7g9gzk52csqgy702i4kdm39m2fjk0jk96bj";
        isLibrary = false;
        isExecutable = true;
-       executableHaskellDepends = [
-         base bytestring cmdargs dns iproute parallel-io
-       ];
-       testHaskellDepends = [ base doctest filemanip process ];
+       executableHaskellDepends = [ base ];
        description = "Confirm delegation of NS and MX records";
-       license = lib.licenses.agpl3Only;
+       license = lib.licenses.agpl3Plus;
        mainProgram = "haeredes";
      }) {};
 
@@ -139869,6 +140360,26 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "haskell-src-meta_0_8_14" = callPackage
+    ({ mkDerivation, base, containers, haskell-src-exts, HUnit, pretty
+     , syb, tasty, tasty-hunit, template-haskell, th-orphans
+     }:
+     mkDerivation {
+       pname = "haskell-src-meta";
+       version = "0.8.14";
+       sha256 = "0dkillxs6rzznw01v72j92r013ff6q2wrm5wfr98d24nh1fcp404";
+       libraryHaskellDepends = [
+         base haskell-src-exts pretty syb template-haskell th-orphans
+       ];
+       testHaskellDepends = [
+         base containers haskell-src-exts HUnit pretty syb tasty tasty-hunit
+         template-haskell
+       ];
+       description = "Parse source to template-haskell abstract syntax";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "haskell-src-meta-mwotton" = callPackage
     ({ mkDerivation, base, containers, ghc-prim, haskell-src-exts
      , pretty, syb, template-haskell
@@ -141460,8 +141971,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskoin-store";
-       version = "1.5.4";
-       sha256 = "0g2rl50q29rp65lggjggrjx6i3c9glblfl5z4psqmjcqmlbijg20";
+       version = "1.5.5";
+       sha256 = "0p6cbvw2d6xskzm7wcgp6b2dzirnd38r64mvdp0njy2s1prlf92n";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -143515,23 +144026,16 @@ self: {
      }) {};
 
   "hath" = callPackage
-    ({ mkDerivation, base, cmdargs, process, split, tasty, tasty-hunit
-     , tasty-quickcheck
-     }:
+    ({ mkDerivation, base }:
      mkDerivation {
        pname = "hath";
-       version = "0.5.7";
-       sha256 = "0ma4myb0cnia0j31a8863a2c80ynw9aa85ls9r688cd9gl1dbhfy";
+       version = "1.8.7";
+       sha256 = "1ca1szny8s51x3i9nfgglq573vy8f64cfng3cq11vb391pifqncd";
        isLibrary = false;
        isExecutable = true;
-       executableHaskellDepends = [
-         base cmdargs split tasty tasty-hunit tasty-quickcheck
-       ];
-       testHaskellDepends = [
-         base process split tasty tasty-hunit tasty-quickcheck
-       ];
-       description = "Hath manipulates network blocks in CIDR notation";
-       license = lib.licenses.agpl3Only;
+       executableHaskellDepends = [ base ];
+       description = "Manipulates network blocks in CIDR notation";
+       license = lib.licenses.agpl3Plus;
        mainProgram = "hath";
      }) {};
 
@@ -143614,6 +144118,7 @@ self: {
        description = "Library for checking for weak/compromised passwords";
        license = lib.licenses.bsd3;
        mainProgram = "readme";
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "haven" = callPackage
@@ -145575,8 +146080,8 @@ self: {
      }:
      mkDerivation {
        pname = "hedgehog-extras";
-       version = "0.6.3.0";
-       sha256 = "0zh01kd50130jnvcc0azk9b44645gakmg2mahvvw0h3xhnzxvy0v";
+       version = "0.6.4.0";
+       sha256 = "1v0pq397ll9s07bq4pa1m1pw413kbnd04nzr3gm3f75c2c0yrd9p";
        libraryHaskellDepends = [
          aeson aeson-pretty async base bytestring deepseq Diff directory
          exceptions filepath hedgehog http-conduit lifted-async lifted-base
@@ -146693,8 +147198,8 @@ self: {
      }:
      mkDerivation {
        pname = "hercules-ci-agent";
-       version = "0.10.2";
-       sha256 = "08j5pp0a8nhm74qs0wnymiyg5kmqd8vr9bxf713jq6m0czw6rw3j";
+       version = "0.10.3";
+       sha256 = "1gfvlr37zzwnwnlixndwi9955c1n4yn67ffhif70d06bpjvh037k";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -146744,16 +147249,16 @@ self: {
   "hercules-ci-api" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, cookie
      , exceptions, hashable, hercules-ci-api-core, hspec, http-api-data
-     , http-media, lens, lens-aeson, memory, network-uri, openapi3
-     , profunctors, protolude, QuickCheck, quickcheck-classes, servant
-     , servant-auth, servant-auth-swagger, servant-openapi3
-     , servant-swagger, servant-swagger-ui-core, string-conv, swagger2
-     , text, time, uuid, vector
+     , http-media, insert-ordered-containers, lens, lens-aeson, memory
+     , network-uri, openapi3, profunctors, protolude, QuickCheck
+     , quickcheck-classes, servant, servant-auth, servant-auth-swagger
+     , servant-openapi3, servant-swagger, servant-swagger-ui-core
+     , string-conv, swagger2, text, time, uuid, vector
      }:
      mkDerivation {
        pname = "hercules-ci-api";
-       version = "0.8.3.0";
-       sha256 = "02lkh7dwcr0am9dk1v38p8jad2hfxh453i5f6073jnmpgwca0gv5";
+       version = "0.8.4.0";
+       sha256 = "1p25kbi01p6ww4vnxzqyrivw86ja3mzgd18r9703z75sfk9h2xvf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -146765,10 +147270,10 @@ self: {
        ];
        executableHaskellDepends = [
          aeson base bytestring containers cookie exceptions hashable
-         http-api-data http-media lens memory network-uri openapi3
-         profunctors servant servant-auth servant-auth-swagger
-         servant-openapi3 servant-swagger servant-swagger-ui-core
-         string-conv swagger2 text time uuid
+         http-api-data http-media insert-ordered-containers lens memory
+         network-uri openapi3 profunctors servant servant-auth
+         servant-auth-swagger servant-openapi3 servant-swagger
+         servant-swagger-ui-core string-conv swagger2 text time uuid
        ];
        testHaskellDepends = [
          aeson base bytestring containers exceptions hashable
@@ -146892,8 +147397,8 @@ self: {
      }:
      mkDerivation {
        pname = "hercules-ci-cnix-expr";
-       version = "0.3.6.2";
-       sha256 = "07alrxwxlkwlz9z6jp9c1n2fcq1bw8426gv031hpvfmdw22n0byz";
+       version = "0.3.6.3";
+       sha256 = "1mwsdc8xdf8c9cpzkvhg6z450d4n6s1ijraznzzvkgh0zwqggddq";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal cabal-pkg-config-version-hook ];
        libraryHaskellDepends = [
@@ -146922,8 +147427,8 @@ self: {
      }:
      mkDerivation {
        pname = "hercules-ci-cnix-store";
-       version = "0.3.5.1";
-       sha256 = "1mmcmnh6bwfxyrwkn294zypj2z8qcdla60cym2xnyap6siv389f1";
+       version = "0.3.6.0";
+       sha256 = "02l5bdqxz5gc2zam3n69nbrhny3hkd6pk37sw5qls9wkf5bm3ah7";
        setupHaskellDepends = [ base Cabal cabal-pkg-config-version-hook ];
        libraryHaskellDepends = [
          base bytestring conduit containers inline-c inline-c-cpp protolude
@@ -148925,6 +149430,8 @@ self: {
        pname = "hie-bios";
        version = "0.14.0";
        sha256 = "1caszgj3x3l13q6w26snx49yqyzjfgiik4403gl3mfalkrgbvk2g";
+       revision = "1";
+       editedCabalFile = "1g9gagj12jpazrq9zwq8vwv5saf23gqjgcvzcg81q7s4bn115l72";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -150516,26 +151023,30 @@ self: {
      }) {};
 
   "hix" = callPackage
-    ({ mkDerivation, aeson, base, Cabal, casing, exon, extra
-     , filepattern, generic-lens, hedgehog, incipit-base, lens
-     , lens-regex-pcre, optparse-applicative, path, path-io, random
-     , tasty, tasty-hedgehog, transformers, unix
+    ({ mkDerivation, aeson, base, bytestring, Cabal, cabal-install
+     , cabal-install-solver, casing, containers, exceptions, exon, extra
+     , filepattern, generic-lens, generics-sop, hedgehog, http-client
+     , http-client-tls, http-types, incipit-base, lens, lens-regex-pcre
+     , optparse-applicative, path, path-io, pretty, random, tasty
+     , tasty-hedgehog, these, time, transformers, typed-process, unix
      }:
      mkDerivation {
        pname = "hix";
-       version = "0.6.9";
-       sha256 = "02ihihlxxvcndm7hjiwknj1dar4d3hdwrg83zsr6q1w7gssr9bbi";
+       version = "0.7.0";
+       sha256 = "15dhr9xszg64kdswywc8pd8kfawq02mcarhh4lyq21g9cynvbk6g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base Cabal casing exon extra filepattern generic-lens
-         incipit-base lens lens-regex-pcre optparse-applicative path path-io
-         random transformers unix
+         aeson base bytestring Cabal cabal-install cabal-install-solver
+         casing containers exceptions exon extra filepattern generic-lens
+         generics-sop http-client http-client-tls http-types incipit-base
+         lens lens-regex-pcre optparse-applicative path path-io pretty
+         random these time transformers typed-process unix
        ];
        executableHaskellDepends = [ base incipit-base ];
        testHaskellDepends = [
-         base Cabal exon hedgehog incipit-base path path-io tasty
-         tasty-hedgehog transformers
+         aeson base Cabal exon extra hedgehog incipit-base path path-io
+         tasty tasty-hedgehog these transformers
        ];
        description = "Haskell/Nix development build tools";
        license = "BSD-2-Clause-Patent";
@@ -151035,6 +151546,8 @@ self: {
        pname = "hledger";
        version = "1.33.1";
        sha256 = "14vx74c1lj4kj81p9qrdi9ln8fs15dk3xz0yy3aaq7xp979jj21f";
+       revision = "1";
+       editedCabalFile = "1bbh8vbc8n539manidahnkqvskg4wzmf6y00f8wxga80dm5djadl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -151192,9 +151705,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A terminal UI as drop-in replacement for hledger add";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "hledger-iadd";
-       broken = true;
      }) {};
 
   "hledger-iadd_1_3_21" = callPackage
@@ -151230,7 +151741,6 @@ self: {
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        mainProgram = "hledger-iadd";
-       broken = true;
      }) {};
 
   "hledger-interest" = callPackage
@@ -151328,6 +151838,8 @@ self: {
        pname = "hledger-lib";
        version = "1.33.1";
        sha256 = "12l3c6ixmfb65c566vgrfksggrpgab11f1v658dk5gy482p994vb";
+       revision = "1";
+       editedCabalFile = "1wkp0lyihjqc7figv29sw37g7d6i7zwzddi8jvjqpbpcffrcj81r";
        libraryHaskellDepends = [
          aeson aeson-pretty ansi-terminal array base base-compat
          blaze-markup bytestring call-stack cassava cassava-megaparsec
@@ -151444,6 +151956,8 @@ self: {
        pname = "hledger-ui";
        version = "1.33.1";
        sha256 = "1x05jdm6aargcnghvmdayzacigc8is5ra8xpnava499kwqk5x66i";
+       revision = "1";
+       editedCabalFile = "0q29ix824in8mwdr6mg13b7hrzpv55mkrfwm5r84jsv1mxlbslvp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -151532,6 +152046,8 @@ self: {
        pname = "hledger-web";
        version = "1.33.1";
        sha256 = "1f5xk0s93n2r8ar0l3hxfxxvi5gbb2sn1fhlg8mvkjbh93krywqr";
+       revision = "1";
+       editedCabalFile = "040sls51agm49s2p9wdpq5vly3d210dib87q312dlk6238p7hap5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -163374,8 +163890,6 @@ self: {
        ];
        description = "A high-performance HTML tokenizer";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "html-parse-util" = callPackage
@@ -164552,8 +165066,8 @@ self: {
        pname = "http-media";
        version = "0.8.1.1";
        sha256 = "10zi0c6v0vngxadlbzfp1y1fgyx1ac5gvyvl0gv6gl8m3grss80r";
-       revision = "1";
-       editedCabalFile = "0vlaxmh1qqli981bwn3hw0hqfy6spkijdywycnhxi0z1qg5837fk";
+       revision = "2";
+       editedCabalFile = "12bj8xqpvaxvrnif4qzkjamdxdrlg2hsfqa7q5n2irzr2hpkjni0";
        libraryHaskellDepends = [
          base bytestring case-insensitive containers utf8-string
        ];
@@ -167064,19 +167578,21 @@ self: {
      }) {};
 
   "hw-polysemy" = callPackage
-    ({ mkDerivation, base, bytestring, contravariant, Diff, directory
-     , filepath, ghc-prim, polysemy, polysemy-log, polysemy-plugin
-     , polysemy-time, process, stm, tasty, tasty-discover
-     , tasty-hedgehog, text, time
+    ({ mkDerivation, aeson, async, base, bytestring, contravariant
+     , Diff, directory, filepath, generic-lens, ghc-prim, lens, network
+     , polysemy, polysemy-log, polysemy-plugin, polysemy-time, process
+     , resourcet, stm, tasty, tasty-discover, tasty-hedgehog, temporary
+     , text, time, unliftio, yaml
      }:
      mkDerivation {
        pname = "hw-polysemy";
-       version = "0.2.0.0";
-       sha256 = "15y9qy5sb35x52cczabrkc4dc9z1sz8mipmi1wqc8z37x91py840";
+       version = "0.2.4.2";
+       sha256 = "1czisgq8yv8gmr9ixs72y7yfajs95333698blfnj2ipngcmkrh09";
        libraryHaskellDepends = [
-         base bytestring contravariant Diff directory filepath ghc-prim
-         polysemy polysemy-log polysemy-plugin polysemy-time process stm
-         text time
+         aeson async base bytestring contravariant Diff directory filepath
+         generic-lens ghc-prim lens network polysemy polysemy-log
+         polysemy-plugin polysemy-time process resourcet stm temporary text
+         time unliftio yaml
        ];
        testHaskellDepends = [
          base filepath polysemy polysemy-log polysemy-plugin tasty
@@ -170720,8 +171236,8 @@ self: {
      }:
      mkDerivation {
        pname = "imp";
-       version = "1.0.2.0";
-       sha256 = "1r0z0s6q8xfjyk098w3p1qvs8d8fl6y2mna867j7i8ksvvjm5khd";
+       version = "1.0.2.1";
+       sha256 = "09j8dw4lh6acfjcr51fh4i7qzlriqybb5gw3cjxyis3hj7sqxivf";
        libraryHaskellDepends = [
          base Cabal-syntax containers exceptions ghc transformers
        ];
@@ -171687,6 +172203,18 @@ self: {
        license = lib.licenses.bsd2;
      }) {};
 
+  "indexed-traversable_0_1_4" = callPackage
+    ({ mkDerivation, array, base, containers, transformers }:
+     mkDerivation {
+       pname = "indexed-traversable";
+       version = "0.1.4";
+       sha256 = "08ivs1shxnvw5fzklvg7yh4xy0nnh3gsglm059fa5m9svyphkgjq";
+       libraryHaskellDepends = [ array base containers transformers ];
+       description = "FunctorWithIndex, FoldableWithIndex, TraversableWithIndex";
+       license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "indexed-traversable-instances" = callPackage
     ({ mkDerivation, base, containers, indexed-traversable, OneTuple
      , QuickCheck, quickcheck-instances, tagged, tasty, tasty-quickcheck
@@ -171711,6 +172239,29 @@ self: {
        license = lib.licenses.bsd2;
      }) {};
 
+  "indexed-traversable-instances_0_1_2" = callPackage
+    ({ mkDerivation, base, containers, indexed-traversable, OneTuple
+     , QuickCheck, quickcheck-instances, tagged, tasty, tasty-quickcheck
+     , transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "indexed-traversable-instances";
+       version = "0.1.2";
+       sha256 = "1hf75x729c3348yvgxk0pjab2mmwi0xxcw3h2yb6c78lp8pvcarw";
+       libraryHaskellDepends = [
+         base indexed-traversable OneTuple tagged unordered-containers
+         vector
+       ];
+       testHaskellDepends = [
+         base containers indexed-traversable OneTuple QuickCheck
+         quickcheck-instances tasty tasty-quickcheck transformers
+         unordered-containers vector
+       ];
+       description = "More instances of FunctorWithIndex, FoldableWithIndex, TraversableWithIndex";
+       license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "indextype" = callPackage
     ({ mkDerivation, base, hspec }:
      mkDerivation {
@@ -173023,6 +173574,8 @@ self: {
        pname = "int-supply";
        version = "1.0.0";
        sha256 = "0h7yi4clvy44gb2nxjv50m5lnlgqdkj781pv0iqlgwyqjigwappz";
+       revision = "1";
+       editedCabalFile = "0365vb3l7lj0zpj92xxm02idsqhnsdynsp0v1vn2653lkfyajkm7";
        libraryHaskellDepends = [ base ];
        description = "A simple, efficient supply of integers using atomic fetch-and-add";
        license = lib.licenses.bsd3;
@@ -174217,8 +174770,8 @@ self: {
      }:
      mkDerivation {
        pname = "io-classes";
-       version = "1.4.1.0";
-       sha256 = "059krkisax9g51s0qb03sb139r3ivxl2l02599ybkpzq9rc7mkgl";
+       version = "1.5.0.0";
+       sha256 = "1iwzmi6z3v9sx7n3x8yg1xa262i898f6vddxhx9lhgby0hw3r4i9";
        libraryHaskellDepends = [
          array async base bytestring mtl primitive stm time
        ];
@@ -174230,8 +174783,8 @@ self: {
     ({ mkDerivation, array, base, io-classes, mtl, si-timers }:
      mkDerivation {
        pname = "io-classes-mtl";
-       version = "0.1.1.0";
-       sha256 = "1g7pzlf5iiv2rvkj4jiwfcc63f2zg4bic1xlwa4n67dqi7fmh80l";
+       version = "0.1.2.0";
+       sha256 = "06lcz96rja31hk3229zxz9ip45c2xqr563kv66jc2f9zyjy7z8s7";
        libraryHaskellDepends = [ array base io-classes mtl si-timers ];
        description = "Experimental MTL instances for io-classes";
        license = lib.licenses.asl20;
@@ -174306,17 +174859,17 @@ self: {
 
   "io-sim" = callPackage
     ({ mkDerivation, array, base, containers, criterion, deepseq
-     , exceptions, io-classes, nothunks, primitive, psqueues, QuickCheck
-     , quiet, si-timers, strict-stm, tasty, tasty-hunit
+     , exceptions, io-classes, nothunks, parallel, primitive, psqueues
+     , QuickCheck, quiet, si-timers, strict-stm, tasty, tasty-hunit
      , tasty-quickcheck, time
      }:
      mkDerivation {
        pname = "io-sim";
-       version = "1.4.1.0";
-       sha256 = "03izkywq5s82hpy70hana6nlaj9frk072531ahfvja913879aw43";
+       version = "1.5.0.0";
+       sha256 = "0074ngiwrs7fnrllnzh7dz5k1f5dv65d7b9bjmx6kzfn38pmmn0v";
        libraryHaskellDepends = [
-         base containers deepseq exceptions io-classes nothunks primitive
-         psqueues QuickCheck quiet si-timers strict-stm time
+         base containers deepseq exceptions io-classes nothunks parallel
+         primitive psqueues QuickCheck quiet si-timers strict-stm time
        ];
        testHaskellDepends = [
          array base containers io-classes QuickCheck si-timers strict-stm
@@ -176481,8 +177034,10 @@ self: {
      }:
      mkDerivation {
        pname = "jacinda";
-       version = "3.0.1.0";
-       sha256 = "0s0zsxh9jvdg9ya6qy99psazixgsmplajwbccpg2mn33rv2lfccf";
+       version = "3.0.2.0";
+       sha256 = "0b18681ggx6syfix318j1wlycz3fm9g4r6p1vgqgfgxgv8kmyw9w";
+       revision = "2";
+       editedCabalFile = "12dnkgsf44wfcizdyd5z2l4hh4wg97cd816l909r9q70z2hszqpp";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -176554,19 +177109,20 @@ self: {
      }) {};
 
   "jackpolynomials" = callPackage
-    ({ mkDerivation, array, base, combinat, containers, hspray
+    ({ mkDerivation, array, base, combinat, containers, extra, hspray
      , hypergeomatrix, ilist, lens, miniterion, numeric-prelude, tasty
-     , tasty-hunit
+     , tasty-hunit, unordered-containers
      }:
      mkDerivation {
        pname = "jackpolynomials";
-       version = "1.4.0.0";
-       sha256 = "1h23lhcxvv5yymircn9wqapyjv19wvp2fvd0gvyq8a35s98y289q";
+       version = "1.4.1.0";
+       sha256 = "153y4p18a5bz803il9v7nacsqki4mw1szw0pdx5qk9jyh9vnalkb";
        libraryHaskellDepends = [
-         array base combinat containers hspray ilist lens numeric-prelude
+         array base combinat containers extra hspray ilist lens
+         numeric-prelude unordered-containers
        ];
        testHaskellDepends = [
-         base combinat hspray hypergeomatrix tasty tasty-hunit
+         base combinat containers hspray hypergeomatrix tasty tasty-hunit
        ];
        benchmarkHaskellDepends = [ base hspray miniterion ];
        description = "Jack, zonal, Schur and skew Schur polynomials";
@@ -178071,6 +178627,7 @@ self: {
        ];
        description = "Interface for JavaScript that works with GHCJS and GHC";
        license = lib.licenses.mit;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "jsaddle-clib" = callPackage
@@ -178086,6 +178643,7 @@ self: {
        ];
        description = "Interface for JavaScript that works with GHCJS and GHC";
        license = lib.licenses.mit;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "jsaddle-dom" = callPackage
@@ -178101,6 +178659,7 @@ self: {
        ];
        description = "DOM library that uses jsaddle to support both GHCJS and GHC";
        license = lib.licenses.mit;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "jsaddle-hello" = callPackage
@@ -178120,7 +178679,7 @@ self: {
        ];
        description = "JSaddle Hello World, an example package";
        license = lib.licenses.mit;
-       badPlatforms = lib.platforms.darwin;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "jsaddle-warp" = callPackage
@@ -178143,7 +178702,9 @@ self: {
        ];
        description = "Interface for JavaScript that works with GHCJS and GHC";
        license = lib.licenses.mit;
-       maintainers = [ lib.maintainers.maralorn ];
+       maintainers = [
+         lib.maintainers.alexfmpe lib.maintainers.maralorn
+       ];
      }) {};
 
   "jsaddle-webkit2gtk" = callPackage
@@ -178164,6 +178725,7 @@ self: {
        description = "Interface for JavaScript that works with GHCJS and GHC";
        license = lib.licenses.mit;
        badPlatforms = lib.platforms.darwin;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "jsaddle-webkitgtk" = callPackage
@@ -178194,6 +178756,7 @@ self: {
        description = "Interface for JavaScript that works with GHCJS and GHC";
        license = lib.licenses.mit;
        platforms = lib.platforms.darwin;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "jsc" = callPackage
@@ -178560,6 +179123,23 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "json-feed_2_0_0_12" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, filepath, hspec
+     , mime-types, network-uri, tagsoup, text, time
+     }:
+     mkDerivation {
+       pname = "json-feed";
+       version = "2.0.0.12";
+       sha256 = "16rkzj280f735va17zl7lrp8yr1b8avjk9gqfa67pk31zn08yicc";
+       libraryHaskellDepends = [
+         aeson base bytestring mime-types network-uri tagsoup text time
+       ];
+       testHaskellDepends = [ base bytestring filepath hspec ];
+       description = "JSON Feed";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "json-fu" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring, containers
      , hashable, hspec, mtl, syb, text, time, unordered-containers
@@ -178945,7 +179525,7 @@ self: {
        ];
        description = "Generics JSON (de)serialization using generics-sop";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "json-spec" = callPackage
@@ -180897,6 +181477,28 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "katip-wai_0_1_2_4" = callPackage
+    ({ mkDerivation, aeson, async, base, bytestring, clock, containers
+     , hspec, hspec-discover, http-client, http-types, katip, network
+     , stm, text, uuid, wai, warp
+     }:
+     mkDerivation {
+       pname = "katip-wai";
+       version = "0.1.2.4";
+       sha256 = "0vpjqdr4x68ffjzlwj5f7vhslkwqybj95ynvj8ap9fhq0nhmmp3q";
+       libraryHaskellDepends = [
+         aeson base bytestring clock http-types katip network text uuid wai
+       ];
+       testHaskellDepends = [
+         aeson async base bytestring containers hspec http-client http-types
+         katip stm text uuid wai warp
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "WAI middleware for logging request and response info through katip";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "katt" = callPackage
     ({ mkDerivation, aeson, base, bytestring, ConfigFile, containers
      , directory, errors, filepath, lens, mtl, parsec, text, url, wreq
@@ -182285,6 +182887,8 @@ self: {
        pname = "ki";
        version = "1.0.1.1";
        sha256 = "1rvjwq765wy99j60x7d5v7zyq8hf52gfjiypc37a9r7gx1y4hir9";
+       revision = "1";
+       editedCabalFile = "0735l77vpcz341cydp8f91vrgzwzwzh4pg4nqwaqzyl1dhsfq02v";
        libraryHaskellDepends = [ base containers ];
        testHaskellDepends = [ base stm tasty tasty-hunit ];
        description = "A lightweight structured concurrency library";
@@ -183626,6 +184230,19 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "lackey_2_0_0_8" = callPackage
+    ({ mkDerivation, base, hspec, servant, servant-foreign, text }:
+     mkDerivation {
+       pname = "lackey";
+       version = "2.0.0.8";
+       sha256 = "1lqvy29zcqmmv7bvrprriip5537j73j8zfbwl505a9b17ym97sr7";
+       libraryHaskellDepends = [ base servant-foreign text ];
+       testHaskellDepends = [ base hspec servant text ];
+       description = "Generate Ruby clients from Servant APIs";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "lacroix" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -186209,6 +186826,39 @@ self: {
        maintainers = [ lib.maintainers.thielema ];
      }) {};
 
+  "lapack_0_5_2" = callPackage
+    ({ mkDerivation, base, blas-ffi, blaze-html, boxes, ChasingBottoms
+     , comfort-array, comfort-array-shape, comfort-blas, containers
+     , data-ref, deepseq, doctest-exitcode-stdio, guarded-allocation
+     , hyper, lapack-ffi, lazyio, monoid-transformer, netlib-ffi
+     , non-empty, QuickCheck, quickcheck-transformer, random, semigroups
+     , Stream, tagged, text, tfp, transformers, unique-logic-tf
+     , utility-ht
+     }:
+     mkDerivation {
+       pname = "lapack";
+       version = "0.5.2";
+       sha256 = "02slhxbg0ijcx2msrf17ymh17h14j95ia0nhb5mfiqdsxi8rwnda";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base blas-ffi blaze-html boxes comfort-array comfort-array-shape
+         comfort-blas containers deepseq guarded-allocation hyper lapack-ffi
+         lazyio netlib-ffi non-empty semigroups Stream tagged text tfp
+         transformers utility-ht
+       ];
+       testHaskellDepends = [
+         base ChasingBottoms comfort-array comfort-array-shape data-ref
+         doctest-exitcode-stdio monoid-transformer netlib-ffi non-empty
+         QuickCheck quickcheck-transformer random semigroups tfp
+         transformers unique-logic-tf utility-ht
+       ];
+       description = "Numerical Linear Algebra using LAPACK";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.thielema ];
+     }) {};
+
   "lapack-carray" = callPackage
     ({ mkDerivation, base, carray, lapack-ffi, netlib-carray
      , netlib-ffi, storable-complex, transformers
@@ -186356,6 +187006,7 @@ self: {
        ];
        description = "Generic programming API for large-records and large-anon";
        license = lib.licenses.bsd3;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "large-hashable" = callPackage
@@ -186415,6 +187066,7 @@ self: {
        description = "Efficient compilation for large records, linear in the size of the record";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.alexfmpe ];
        broken = true;
      }) {};
 
@@ -186706,6 +187358,31 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "lattices_2_2_1" = callPackage
+    ({ mkDerivation, base, containers, deepseq, hashable
+     , integer-logarithms, QuickCheck, quickcheck-instances, tagged
+     , tasty, tasty-quickcheck, transformers, universe-base
+     , universe-reverse-instances, unordered-containers
+     }:
+     mkDerivation {
+       pname = "lattices";
+       version = "2.2.1";
+       sha256 = "0rknzbzwcbg87hjiz4jwqb81w14pywkipxjrrlrp0m5i8ciky1i7";
+       libraryHaskellDepends = [
+         base containers deepseq hashable integer-logarithms QuickCheck
+         tagged transformers universe-base universe-reverse-instances
+         unordered-containers
+       ];
+       testHaskellDepends = [
+         base containers QuickCheck quickcheck-instances tasty
+         tasty-quickcheck transformers universe-base
+         universe-reverse-instances unordered-containers
+       ];
+       description = "Fine-grained library for constructing and manipulating lattices";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "launchdarkly-server-sdk" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, base16-bytestring
      , bytestring, clock, containers, cryptohash, exceptions, extra
@@ -188103,6 +188780,8 @@ self: {
        pname = "lens";
        version = "5.3.2";
        sha256 = "1629gyy38l48ifhlwxlbjbrzahphcqgmad5sz2qlr2z2cq3bq4zz";
+       revision = "1";
+       editedCabalFile = "0xpmk9cd73frn5hb4g6h62rkrjxs091hmxajimn61cnnbg85ckb4";
        libraryHaskellDepends = [
          array assoc base base-orphans bifunctors bytestring call-stack
          comonad containers contravariant distributive exceptions filepath
@@ -188469,8 +189148,7 @@ self: {
        ];
        description = "Computing lenses generically using generics-sop";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "lens-tell" = callPackage
@@ -188805,8 +189483,6 @@ self: {
        ];
        description = "Haskell bindings to LevelDB";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) leveldb;};
 
   "leveldb-haskell-fork" = callPackage
@@ -189151,7 +189827,6 @@ self: {
        ];
        description = "Haskell interface to libarchive";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) libarchive;};
 
   "libarchive-conduit" = callPackage
@@ -191889,6 +192564,7 @@ self: {
        description = "Work with linux namespaces: create new or enter existing ones";
        license = lib.licenses.bsd3;
        platforms = lib.platforms.linux;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "linux-perf" = callPackage
@@ -192255,6 +192931,8 @@ self: {
        pname = "liquid-prelude";
        version = "0.9.2.8.1";
        sha256 = "1yan7blwns2r39qgrrzn2q7z9j6m72jllnl523w61frr7yzlxkck";
+       revision = "1";
+       editedCabalFile = "08zwppn1jpf1cpz1f3pq18wxdl20spmkkfj604kn8x0bz4d0386d";
        setupHaskellDepends = [ base Cabal liquidhaskell-boot ];
        libraryHaskellDepends = [
          base bytestring containers ghc-prim liquidhaskell
@@ -192480,28 +193158,16 @@ self: {
      }) {};
 
   "list-remote-forwards" = callPackage
-    ({ mkDerivation, base, bytestring, cmdargs, configurator
-     , containers, directory, dns, doctest, filemanip, filepath, HDBC
-     , HDBC-postgresql, HDBC-sqlite3, MissingH, tasty, tasty-hunit
-     }:
+    ({ mkDerivation, base }:
      mkDerivation {
        pname = "list-remote-forwards";
-       version = "0.0.3";
-       sha256 = "0c7fm8mbhhh9nhcib5d0k2gipfkcsvpkg5x4xb7x75x0i099q6jf";
+       version = "1.8.7";
+       sha256 = "1gzb2nmd119s7vgy2m6ir3d879sk5rm8m19igizqrmbyrvmspzbz";
        isLibrary = false;
        isExecutable = true;
-       executableHaskellDepends = [
-         base bytestring cmdargs configurator containers directory dns
-         filepath HDBC HDBC-postgresql HDBC-sqlite3 MissingH tasty
-         tasty-hunit
-       ];
-       testHaskellDepends = [
-         base bytestring cmdargs configurator containers directory dns
-         doctest filemanip filepath HDBC HDBC-sqlite3 MissingH tasty
-         tasty-hunit
-       ];
+       executableHaskellDepends = [ base ];
        description = "List all remote forwards for mail accounts stored in a SQL database";
-       license = lib.licenses.agpl3Only;
+       license = lib.licenses.agpl3Plus;
        mainProgram = "list-remote-forwards";
      }) {};
 
@@ -192522,6 +193188,23 @@ self: {
        broken = true;
      }) {};
 
+  "list-shuffle_1_0_0_1" = callPackage
+    ({ mkDerivation, base, deepseq, hedgehog, primitive, random
+     , tasty-bench
+     }:
+     mkDerivation {
+       pname = "list-shuffle";
+       version = "1.0.0.1";
+       sha256 = "1qcgkkhwnbrl729va8zgv5k6b4lpfy15bbkqnnx0nqz0d91xiqcr";
+       libraryHaskellDepends = [ base primitive random ];
+       testHaskellDepends = [ base hedgehog random ];
+       benchmarkHaskellDepends = [ base deepseq random tasty-bench ];
+       description = "List shuffling and sampling";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "list-singleton" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -192664,6 +193347,20 @@ self: {
        maintainers = [ lib.maintainers.Gabriella439 ];
      }) {};
 
+  "list-transformer_1_1_1" = callPackage
+    ({ mkDerivation, base, doctest, mmorph, mtl }:
+     mkDerivation {
+       pname = "list-transformer";
+       version = "1.1.1";
+       sha256 = "172dmmw2hbmgzym2fdllwdnk5kcwrw8ljks6azpyzz99ppzk6gr0";
+       libraryHaskellDepends = [ base mmorph mtl ];
+       testHaskellDepends = [ base doctest ];
+       description = "List monad transformer";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.Gabriella439 ];
+     }) {};
+
   "list-tries" = callPackage
     ({ mkDerivation, base, binary, ChasingBottoms, containers, dlist
      , HUnit, QuickCheck, template-haskell, test-framework
@@ -195783,6 +196480,8 @@ self: {
        pname = "lsp";
        version = "2.6.0.0";
        sha256 = "1wimb5y1757l8k1kinlv1y43n7kmjzdh18gayarfm32dsmllahi5";
+       revision = "1";
+       editedCabalFile = "1p9lvb18m69jdz99d8bn59h2dn3gwalnf4j0sf7j1p2cj9yv8srm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -195872,6 +196571,8 @@ self: {
        pname = "lsp-test";
        version = "0.17.0.2";
        sha256 = "1nyqv66rqs316dx1yl1n3ydcxl1lkdvxri8chgvw88c67p84ss45";
+       revision = "1";
+       editedCabalFile = "04pr949939z5wpi5ir4pjks8zx1r99pgrb4f7wxqpm1g0l25vzgx";
        libraryHaskellDepends = [
          aeson aeson-pretty ansi-terminal async base bytestring co-log-core
          conduit conduit-parse containers data-default Diff directory
@@ -195975,6 +196676,8 @@ self: {
        pname = "lsp-types";
        version = "2.2.0.0";
        sha256 = "0h3mdnilhk6mg4vnhmnynq18vhj9kfbw5k9bsqa7mrgr8rjsy7jy";
+       revision = "1";
+       editedCabalFile = "05rz0q5w8ijac7ciia06lcdim6lycq3y5ni5kl7fbjhp39z9l11g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -197859,26 +198562,16 @@ self: {
      }) {};
 
   "mailbox-count" = callPackage
-    ({ mkDerivation, base, cmdargs, configurator, containers, directory
-     , doctest, filemanip, filepath, HDBC, HDBC-postgresql, HDBC-sqlite3
-     , MissingH, tasty, tasty-hunit
-     }:
+    ({ mkDerivation, base }:
      mkDerivation {
        pname = "mailbox-count";
-       version = "0.0.6";
-       sha256 = "0pjy1l63wzic55snhkxq7hv4iscda3np5f5dl5lb9vmh0hlx4x1k";
+       version = "1.8.7";
+       sha256 = "1sxanzwjddihh5nli80z64r5zlaz06wpaz6c57a1ijzs7pgwpw82";
        isLibrary = false;
        isExecutable = true;
-       executableHaskellDepends = [
-         base cmdargs configurator containers directory filepath HDBC
-         HDBC-postgresql HDBC-sqlite3 MissingH tasty tasty-hunit
-       ];
-       testHaskellDepends = [
-         base cmdargs configurator containers directory doctest filemanip
-         filepath HDBC HDBC-sqlite3 MissingH tasty tasty-hunit
-       ];
+       executableHaskellDepends = [ base ];
        description = "Count mailboxes in a SQL database";
-       license = lib.licenses.agpl3Only;
+       license = lib.licenses.agpl3Plus;
        mainProgram = "mailbox-count";
      }) {};
 
@@ -198903,6 +199596,34 @@ self: {
        broken = true;
      }) {};
 
+  "mappings_0_3_1_0" = callPackage
+    ({ mkDerivation, base, cond, containers, formatting, hspec
+     , hspec-discover, indexed-traversable, partialord
+     }:
+     mkDerivation {
+       pname = "mappings";
+       version = "0.3.1.0";
+       sha256 = "1yf6qvsipjfq8s9z9lk7q29m3dkpa5kgvjpkm4wap5vawp2rzqyd";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base cond containers formatting indexed-traversable partialord
+       ];
+       executableHaskellDepends = [
+         base cond containers formatting indexed-traversable partialord
+       ];
+       testHaskellDepends = [
+         base cond containers formatting hspec indexed-traversable
+         partialord
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Types which represent functions k -> v";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "view";
+       broken = true;
+     }) {};
+
   "mappy" = callPackage
     ({ mkDerivation, ansi-terminal, base, containers, directory
      , haskeline, hspec, parsec, QuickCheck
@@ -203161,6 +203882,28 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "microstache_1_0_3" = callPackage
+    ({ mkDerivation, aeson, base, base-orphans, bytestring, containers
+     , deepseq, directory, filepath, parsec, tasty, tasty-hunit, text
+     , transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "microstache";
+       version = "1.0.3";
+       sha256 = "13w9macbi0krdilyp7dvzcg48di89biyz1axd7vvl3ylggjr1wim";
+       libraryHaskellDepends = [
+         aeson base containers deepseq directory filepath parsec text
+         transformers unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base base-orphans bytestring containers parsec tasty
+         tasty-hunit text
+       ];
+       description = "Mustache templates for Haskell";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "microtimer" = callPackage
     ({ mkDerivation, base, time }:
      mkDerivation {
@@ -206257,6 +207000,23 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "monad-chronicle_1_0_2" = callPackage
+    ({ mkDerivation, base, data-default-class, mtl, semigroupoids
+     , these, transformers, transformers-compat
+     }:
+     mkDerivation {
+       pname = "monad-chronicle";
+       version = "1.0.2";
+       sha256 = "1mmp2r75b3j9l0rvxjvl1znlr7x4d8baj6ykffdsbnf9v59h0dcx";
+       libraryHaskellDepends = [
+         base data-default-class mtl semigroupoids these transformers
+         transformers-compat
+       ];
+       description = "These as a transformer, ChronicleT";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "monad-classes" = callPackage
     ({ mkDerivation, base, conduit, data-lens-light, ghc-prim, mmorph
      , monad-control, peano, reflection, tasty, tasty-hunit
@@ -208151,8 +208911,8 @@ self: {
        pname = "monoid-extras";
        version = "0.6.2";
        sha256 = "1qaxp0cf2cvzvfpk7x9mjz1zmlpjfzxij8v2n45w89s7bq9ckvlw";
-       revision = "2";
-       editedCabalFile = "08ydfb0n886qzy940lfvyv1pcj51yhpa0kz6pwn7lm22fh1hb5pf";
+       revision = "3";
+       editedCabalFile = "16ff0ffc8my9jkylcsyskb6bpb1hpjsg2shv2vnrb54r7gqfqy8v";
        libraryHaskellDepends = [ base groups semigroupoids ];
        benchmarkHaskellDepends = [ base criterion semigroups ];
        description = "Various extra monoid-related definitions and utilities";
@@ -208258,6 +209018,28 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "monoid-subclasses_1_2_5_1" = callPackage
+    ({ mkDerivation, base, bytestring, commutative-semigroups
+     , containers, primes, QuickCheck, quickcheck-instances, tasty
+     , tasty-quickcheck, text, vector
+     }:
+     mkDerivation {
+       pname = "monoid-subclasses";
+       version = "1.2.5.1";
+       sha256 = "0xrbsk4cd8gncw8s0wdg02pmds8wxf237qkbncr73wfwbidshl15";
+       libraryHaskellDepends = [
+         base bytestring commutative-semigroups containers primes text
+         vector
+       ];
+       testHaskellDepends = [
+         base bytestring containers primes QuickCheck quickcheck-instances
+         tasty tasty-quickcheck text vector
+       ];
+       description = "Subclasses of Monoid";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "monoid-transformer" = callPackage
     ({ mkDerivation, base, semigroups }:
      mkDerivation {
@@ -208286,6 +209068,7 @@ self: {
        ];
        description = "Containers with monoidal accumulation";
        license = lib.licenses.bsd3;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "monoidal-functors" = callPackage
@@ -208322,8 +209105,8 @@ self: {
      }:
      mkDerivation {
        pname = "monoidmap";
-       version = "0.0.1.3";
-       sha256 = "1hi4sqky1wwgx5i9cjn6dsf5dim9k5lw74j8a0wghq2rwab7b2ng";
+       version = "0.0.1.4";
+       sha256 = "0nv8ahq9m9xp68nj0qkl49ijz7iqbm073542z9d1phs96xs62d7g";
        libraryHaskellDepends = [
          base containers deepseq groups monoid-subclasses
          nonempty-containers nothunks
@@ -208424,8 +209207,8 @@ self: {
      }:
      mkDerivation {
        pname = "monomer-flatpak-example";
-       version = "0.0.15.4";
-       sha256 = "0cmrmr562crwwp52ij1m1z9p0sdl5054kjknfxwxk93w5djlg5kd";
+       version = "0.0.15.5";
+       sha256 = "0b517ahaaabxv4ii06kl5yckkskilhs18kr2wcvv0jv9b0pmgmx7";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -210185,27 +210968,26 @@ self: {
      }) {};
 
   "ms-tds" = callPackage
-    ({ mkDerivation, array, base, binary, bytestring, crypto-random
-     , data-default-class, mtl, network, template-haskell, text, time
-     , tls, uuid-types, x509-store, x509-system
+    ({ mkDerivation, array, base, binary, bytestring, crypton
+     , crypton-x509-store, crypton-x509-system, data-default-class, mtl
+     , network, template-haskell, text, time, tls, uuid-types
      }:
      mkDerivation {
        pname = "ms-tds";
-       version = "0.4.0.2";
-       sha256 = "0lkvl74ckxsdxwvrm45z5gk2ax65yfpd00j86w8iax4askz76vxc";
+       version = "0.4.0.3";
+       sha256 = "15s7k87x3lx3w71gnsfcbikv9cpffm3vi46qd6v6g3kqa896k898";
        libraryHaskellDepends = [
-         array base binary bytestring crypto-random data-default-class mtl
-         network template-haskell text time tls uuid-types x509-store
-         x509-system
+         array base binary bytestring crypton crypton-x509-store
+         crypton-x509-system data-default-class mtl network template-haskell
+         text time tls uuid-types
        ];
        testHaskellDepends = [
-         array base binary bytestring crypto-random data-default-class mtl
-         network template-haskell text time tls uuid-types x509-store
-         x509-system
+         array base binary bytestring crypton crypton-x509-store
+         crypton-x509-system data-default-class mtl network template-haskell
+         text time tls uuid-types
        ];
        description = "TDS Protocol implemented in Haskell";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "msgpack" = callPackage
@@ -210473,23 +211255,23 @@ self: {
 
   "mssql-simple" = callPackage
     ({ mkDerivation, base, binary, bytestring, hostname, ms-tds, mtl
-     , network, template-haskell, text, time, tls, uuid-types
+     , network, template-haskell, text, time, tls, transformers
+     , uuid-types
      }:
      mkDerivation {
        pname = "mssql-simple";
-       version = "0.6.0.4";
-       sha256 = "0kw1cvyy07k8jfnj8wgxr2bc0ppinblmj2x7crnyk51s90m0gmc7";
+       version = "0.6.0.5";
+       sha256 = "0d1cj0qfrnqqr12i976d3ynk4yg45fys38xcnixvz8wz20kv00mn";
        libraryHaskellDepends = [
          base binary bytestring hostname ms-tds mtl network template-haskell
-         text time tls uuid-types
+         text time tls transformers uuid-types
        ];
        testHaskellDepends = [
          base binary bytestring hostname ms-tds mtl network template-haskell
-         text time tls uuid-types
+         text time tls transformers uuid-types
        ];
        description = "SQL Server client library implemented in Haskell";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "mstate" = callPackage
@@ -215369,6 +216151,23 @@ self: {
        maintainers = [ lib.maintainers.thielema ];
      }) {};
 
+  "netlib-ffi_0_1_2" = callPackage
+    ({ mkDerivation, base, deepseq, guarded-allocation
+     , storable-complex, transformers
+     }:
+     mkDerivation {
+       pname = "netlib-ffi";
+       version = "0.1.2";
+       sha256 = "18i2d4852r7zf97fp1szdzk1smkajgdf4lyn4qi85hkqfvz31qcv";
+       libraryHaskellDepends = [
+         base deepseq guarded-allocation storable-complex transformers
+       ];
+       description = "Helper modules for FFI to BLAS and LAPACK";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.thielema ];
+     }) {};
+
   "netlines" = callPackage
     ({ mkDerivation, base, bytestring, contstuff, enumerator, HTF
      , random, text, time
@@ -217493,8 +218292,8 @@ self: {
      }:
      mkDerivation {
        pname = "ngx-export-distribution";
-       version = "0.5.4.2";
-       sha256 = "1ihv8mpgwxkhbx0rg3fl3vwvc4qyqjrf2j8hsvca3bpvii4xm5yz";
+       version = "0.5.4.3";
+       sha256 = "0aryjiyjvxza1w03x8lc6lj21v912i53nmljw9inf0n64lb2sbbr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base Cabal directory filepath ];
@@ -218105,6 +218904,7 @@ self: {
        description = "Lightweight dependency management with Nix";
        license = lib.licenses.bsd3;
        mainProgram = "nix-thunk";
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "nix-tools" = callPackage
@@ -218484,13 +219284,15 @@ self: {
     ({ mkDerivation, base, Cabal, cabal-doctest, doctest, ghc }:
      mkDerivation {
        pname = "no-recursion";
-       version = "0.1.1.0";
-       sha256 = "1696872aswsh00br5wwr5ccc77ab52qvznhbjkng26vcn08mdf0w";
+       version = "0.1.2.0";
+       sha256 = "1asf13irq2py0pjd20l8kncxjj1mv0di9kbsjj0czpj51nqvmsvf";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [ base ghc ];
        testHaskellDepends = [ base doctest ];
        description = "A GHC plugin to remove support for recursion";
        license = lib.licenses.agpl3Plus;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "no-role-annots" = callPackage
@@ -218967,8 +219769,8 @@ self: {
        pname = "nonempty-vector";
        version = "0.2.3";
        sha256 = "18xcsw2c9gy03dvrlanh799j1ab6dkpd6wwgj8b681r12ha04dqa";
-       revision = "1";
-       editedCabalFile = "0kn1s5ssan9m4xwf10y2ymba4zw2j18j6dvbpr6iral3rrlgngdw";
+       revision = "2";
+       editedCabalFile = "1gpbla0lrqn3ix422zz7qklq9vg2kp5v0lnl97jcy74g5p40533r";
        libraryHaskellDepends = [ base deepseq primitive vector ];
        testHaskellDepends = [
          base QuickCheck tasty tasty-quickcheck vector
@@ -220451,12 +221253,12 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "numhask_0_12_0_2" = callPackage
+  "numhask_0_12_0_3" = callPackage
     ({ mkDerivation, base, QuickCheck }:
      mkDerivation {
        pname = "numhask";
-       version = "0.12.0.2";
-       sha256 = "0qrqhfmrdq5gbvad649vfv65lvr9q4051d5zyibq5ljr242yl04s";
+       version = "0.12.0.3";
+       sha256 = "0rxh2avhfb2m5ss8b70k7dv3scla9ki7a8d73hnqlcfp7vjwm9qk";
        libraryHaskellDepends = [ base QuickCheck ];
        description = "A numeric class hierarchy";
        license = lib.licenses.bsd3;
@@ -225258,6 +226060,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "ordered-containers_0_2_4" = callPackage
+    ({ mkDerivation, base, containers, hashable }:
+     mkDerivation {
+       pname = "ordered-containers";
+       version = "0.2.4";
+       sha256 = "0ip5msvvyj5zbsci6fv9f3x6p3wpwrrqpq4yhz104ag14hz6g89x";
+       libraryHaskellDepends = [ base containers hashable ];
+       description = "Set- and Map-like types that remember the order elements were inserted";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "ordering-duplicates" = callPackage
     ({ mkDerivation, base, contravariant, lens, mtl, profunctors
      , semigroupoids
@@ -225674,6 +226488,8 @@ self: {
        pname = "ormolu";
        version = "0.7.4.0";
        sha256 = "1s7a9crjhbsmjkdvpv8ycygpiikv96s96p3lmjik4pb3q7idir2z";
+       revision = "1";
+       editedCabalFile = "0cr96kxx13l6vjmgx3jan0xcr7zn68gnihfqsdz6fi7jbd34jhzl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -227312,6 +228128,8 @@ self: {
        pname = "pandoc-cli";
        version = "3.2";
        sha256 = "03nibp6m9nv91h9f6kvj73w7qhbz74qva787zlk7p3m8ayldjwa5";
+       revision = "1";
+       editedCabalFile = "0f3jyg9ln69ggi4shmny5rqqxpyl5w1gmri11iy4z5a1y1v7nr2l";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -227353,6 +228171,8 @@ self: {
        pname = "pandoc-crossref";
        version = "0.3.17.1";
        sha256 = "0md7i54rnvgn0yll7mwhi124nak0pfmpga34vnd996r6fgmnq5fb";
+       revision = "1";
+       editedCabalFile = "0vfhhzqihc911l8j94pn8mljl9l1zfgzrihm3967g0y43agp6h2s";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -227933,6 +228753,26 @@ self: {
        license = lib.licenses.gpl2Plus;
      }) {};
 
+  "pandoc-server_0_1_0_6" = callPackage
+    ({ mkDerivation, aeson, base, base64-bytestring, bytestring
+     , containers, data-default, doctemplates, pandoc, pandoc-types
+     , servant-server, skylighting, text, unicode-collation, wai
+     , wai-cors
+     }:
+     mkDerivation {
+       pname = "pandoc-server";
+       version = "0.1.0.6";
+       sha256 = "18ip1s19dkhfl3bjn6m8hg7g527gka0z6bbjvsc8qq5pchmi6vs3";
+       libraryHaskellDepends = [
+         aeson base base64-bytestring bytestring containers data-default
+         doctemplates pandoc pandoc-types servant-server skylighting text
+         unicode-collation wai wai-cors
+       ];
+       description = "Pandoc document conversion as an HTTP servant-server";
+       license = lib.licenses.gpl2Plus;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "pandoc-sidenote" = callPackage
     ({ mkDerivation, base, mtl, pandoc-types, text }:
      mkDerivation {
@@ -230481,6 +231321,7 @@ self: {
        testHaskellDepends = [ base containers hedgehog HUnit ];
        description = "Data structures for describing changes to other data structures";
        license = lib.licenses.bsd3;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "patch-combinators" = callPackage
@@ -230674,6 +231515,24 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "path-io_1_8_2" = callPackage
+    ({ mkDerivation, base, containers, directory, dlist, exceptions
+     , filepath, hspec, path, temporary, time, transformers, unix-compat
+     }:
+     mkDerivation {
+       pname = "path-io";
+       version = "1.8.2";
+       sha256 = "1a4s4fc2rbzri1cb27gzlm0v24k5g2975smvqg2j4d4h6xmpzbfd";
+       libraryHaskellDepends = [
+         base containers directory dlist exceptions filepath path temporary
+         time transformers unix-compat
+       ];
+       testHaskellDepends = [ base exceptions hspec path unix-compat ];
+       description = "Interface to ‘directory’ package for users of ‘path’";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "path-like" = callPackage
     ({ mkDerivation, base, path }:
      mkDerivation {
@@ -230896,6 +231755,28 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "patrol_1_0_0_8" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, case-insensitive
+     , containers, exceptions, hspec, http-client, http-types
+     , network-uri, text, time, uuid
+     }:
+     mkDerivation {
+       pname = "patrol";
+       version = "1.0.0.8";
+       sha256 = "0117g6am2g4057apz5xl2jya929bg7sbk4v7mqkllijph6sjycp2";
+       libraryHaskellDepends = [
+         aeson base bytestring case-insensitive containers exceptions
+         http-client http-types network-uri text time uuid
+       ];
+       testHaskellDepends = [
+         aeson base bytestring case-insensitive containers exceptions hspec
+         http-client http-types network-uri text time uuid
+       ];
+       description = "Sentry SDK";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "patronscraper" = callPackage
     ({ mkDerivation, base, HandsomeSoup, hxt }:
      mkDerivation {
@@ -231572,6 +232453,28 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "pdf-toolbox-content_0_1_2" = callPackage
+    ({ mkDerivation, attoparsec, base, base16-bytestring, bytestring
+     , containers, hspec, io-streams, pdf-toolbox-core, scientific, text
+     , vector
+     }:
+     mkDerivation {
+       pname = "pdf-toolbox-content";
+       version = "0.1.2";
+       sha256 = "1pxzn6ja0k29qb1sr000ksyscjilf8clk3li94i26z1kgxjqf05s";
+       libraryHaskellDepends = [
+         attoparsec base base16-bytestring bytestring containers io-streams
+         pdf-toolbox-core scientific text vector
+       ];
+       testHaskellDepends = [
+         attoparsec base bytestring containers hspec io-streams
+         pdf-toolbox-core
+       ];
+       description = "A collection of tools for processing PDF files";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "pdf-toolbox-core" = callPackage
     ({ mkDerivation, attoparsec, base, base16-bytestring, bytestring
      , cipher-aes, cipher-rc4, containers, crypto-api, cryptohash
@@ -231597,6 +232500,30 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "pdf-toolbox-core_0_1_2" = callPackage
+    ({ mkDerivation, attoparsec, base, base16-bytestring, bytestring
+     , cipher-aes, cipher-rc4, containers, crypto-api, cryptohash
+     , hashable, hspec, io-streams, scientific, unordered-containers
+     , vector
+     }:
+     mkDerivation {
+       pname = "pdf-toolbox-core";
+       version = "0.1.2";
+       sha256 = "0i1078lj7q0xm52bnxnhhi8wdgnbwh029423g6hm9mj815lq825n";
+       libraryHaskellDepends = [
+         attoparsec base base16-bytestring bytestring cipher-aes cipher-rc4
+         containers crypto-api cryptohash hashable io-streams scientific
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         attoparsec base bytestring hspec io-streams unordered-containers
+         vector
+       ];
+       description = "A collection of tools for processing PDF files";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "pdf-toolbox-document" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory, hspec
      , io-streams, pdf-toolbox-content, pdf-toolbox-core, text
@@ -231618,6 +232545,28 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "pdf-toolbox-document_0_1_3" = callPackage
+    ({ mkDerivation, base, bytestring, containers, directory, hspec
+     , io-streams, pdf-toolbox-content, pdf-toolbox-core, text
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "pdf-toolbox-document";
+       version = "0.1.3";
+       sha256 = "1yywab2xzp69k59636b63akb6nc4g9ql58qj11wkrdsvwvcv9lbb";
+       libraryHaskellDepends = [
+         base bytestring containers io-streams pdf-toolbox-content
+         pdf-toolbox-core text unordered-containers vector
+       ];
+       testHaskellDepends = [
+         base directory hspec io-streams pdf-toolbox-core
+         unordered-containers
+       ];
+       description = "A collection of tools for processing PDF files";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "pdf-toolbox-viewer" = callPackage
     ({ mkDerivation, base, bytestring, cairo, containers, directory
      , filepath, gtk, io-streams, pdf-toolbox-content
@@ -237593,8 +238542,8 @@ self: {
      }:
      mkDerivation {
        pname = "playlists";
-       version = "0.5.1";
-       sha256 = "1hrxmp33pzmvpg9j102hjradnlq261hs9amqkivqjfn9y4pb8inm";
+       version = "0.5.2";
+       sha256 = "03wkr5gvxjn3i3idbqlakwqb9kmpbmgsysx8sq25x3lszp74rdxj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -238749,8 +239698,8 @@ self: {
     ({ mkDerivation, attoparsec, base, containers, ghc, text }:
      mkDerivation {
        pname = "pollock";
-       version = "0.1.0.0";
-       sha256 = "06wrizz358ihpfi8abdnx4xf4nfql3ah5333ag0lblym8qapsyw6";
+       version = "0.1.0.1";
+       sha256 = "0ac33p84bizw2b2dndx3jlpwmfd707xcfd7d96ai6if04db43rzr";
        libraryHaskellDepends = [ attoparsec base containers ghc text ];
        description = "Functionality to help examine Haddock information of a module";
        license = lib.licenses.mit;
@@ -239106,10 +240055,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-blockfrost";
-       version = "0.1.0.0";
-       sha256 = "1lykz8gqgj7kwkr9rp3cvwk2ak469h023ga0dlzz1azmmm8gbabn";
-       revision = "1";
-       editedCabalFile = "0mqa48iib7jn1y6xipfx0mvjmqxbgj1g6gxw5l239mbvg0mh0616";
+       version = "0.1.1.0";
+       sha256 = "0vix900hxi9rns556l2nk0hmmbcshac8b028m9pxk9ybax2w3bqq";
        libraryHaskellDepends = [
          base blockfrost-api blockfrost-client polysemy polysemy-plugin text
        ];
@@ -241037,6 +241984,28 @@ self: {
        broken = true;
      }) {};
 
+  "postgis-trivial" = callPackage
+    ({ mkDerivation, base, binary, bytestring, bytestring-lexing
+     , containers, cpu, data-binary-ieee754, HUnit, mtl
+     , postgresql-simple, storable-record, vector
+     }:
+     mkDerivation {
+       pname = "postgis-trivial";
+       version = "0.0.1.0";
+       sha256 = "0bp2x77xcc24p7la6cxddb0y717gqzdr37gxnm8386sb5bwfqrcj";
+       libraryHaskellDepends = [
+         base binary bytestring bytestring-lexing containers cpu
+         data-binary-ieee754 mtl postgresql-simple storable-record vector
+       ];
+       testHaskellDepends = [
+         base binary bytestring bytestring-lexing containers cpu
+         data-binary-ieee754 HUnit mtl postgresql-simple storable-record
+         vector
+       ];
+       description = "PostGIS extention driver based on postgresql-simple package";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "postgres-embedded" = callPackage
     ({ mkDerivation, base, bytestring, directory, filepath, network
      , postgresql-simple, process
@@ -242502,8 +243471,8 @@ self: {
        pname = "pqueue";
        version = "1.5.0.0";
        sha256 = "00hzrhz3n55ahyv2h183l72jsl3q01p4ns0063p0vjaa5j6qpy0v";
-       revision = "1";
-       editedCabalFile = "1n9gypnfgqlc1b6djjbkcr8r7bxqf8mpfd7avcf11s529gzk9qgg";
+       revision = "2";
+       editedCabalFile = "1amdr1bfh01jkrzq335gjz3bv7nflmah6icvg3m1pyghcqmcrbbx";
        libraryHaskellDepends = [ base deepseq indexed-traversable ];
        testHaskellDepends = [
          base deepseq indexed-traversable tasty tasty-quickcheck
@@ -243748,8 +244717,8 @@ self: {
        pname = "prettyprinter-interp";
        version = "0.2.0.0";
        sha256 = "0ml068y49n0s6p0nq0qfv5dmpkpkbd9p06hkj582yn2a1h32x0ff";
-       revision = "3";
-       editedCabalFile = "079c6ri9aahi4whnxzyh5d3nnawmjvn1kjkq6jdsnp96bflkkhv9";
+       revision = "4";
+       editedCabalFile = "05b86w6670f61hl0dxn7bjhwjx19236qi3ivknwcryim8nrb2kij";
        libraryHaskellDepends = [
          base prettyprinter string-interpolate template-haskell text
        ];
@@ -244792,6 +245761,8 @@ self: {
        pname = "process";
        version = "1.6.20.0";
        sha256 = "16prkmaj4dz394pg40w5xgbxlh5kbhhliwawdcqs57q0qchs5zff";
+       revision = "1";
+       editedCabalFile = "00yabbj6vjlxnslp516a824gwkx9hxx9a9j8izxib17i6gg974ra";
        libraryHaskellDepends = [ base deepseq directory filepath unix ];
        description = "Process libraries";
        license = lib.licenses.bsd3;
@@ -246381,6 +247352,7 @@ self: {
        ];
        description = "Arbitrary instances for proto-lens";
        license = lib.licenses.bsd3;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "proto-lens-combinators" = callPackage
@@ -246568,6 +247540,7 @@ self: {
        description = "A higher-level API to the proto3-wire library";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "proto3-wire" = callPackage
@@ -246593,6 +247566,7 @@ self: {
        benchmarkHaskellDepends = [ base bytestring criterion random ];
        description = "A low-level implementation of the Protocol Buffers (version 3) wire format";
        license = lib.licenses.asl20;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "protobuf" = callPackage
@@ -248263,20 +249237,22 @@ self: {
 
   "push-notify-apn" = callPackage
     ({ mkDerivation, aeson, base, base16-bytestring, binary, bytestring
-     , containers, data-default, hspec, http2, http2-client, lifted-base
-     , mtl, optparse-applicative, random, resource-pool, semigroups
-     , text, time, tls, x509, x509-store, x509-system
+     , containers, crypton-x509, crypton-x509-store, crypton-x509-system
+     , data-default, hspec, http2, http2-client, lifted-base, mtl
+     , optparse-applicative, random, resource-pool, semigroups, text
+     , time, tls
      }:
      mkDerivation {
        pname = "push-notify-apn";
-       version = "0.3.0.2";
-       sha256 = "1iirjbqzgxh6skdpkk2w600kk6y0z6a11jcnzyayi81akfqm4jmn";
+       version = "0.4.0.0";
+       sha256 = "0b5si5c6mhs4a9845qjl0svlgwb7vc0mzr9br20027f44l49dpzl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson base base16-bytestring binary bytestring containers
-         data-default http2 http2-client lifted-base mtl random
-         resource-pool semigroups text time tls x509 x509-store x509-system
+         crypton-x509 crypton-x509-store crypton-x509-system data-default
+         http2 http2-client lifted-base mtl random resource-pool semigroups
+         text time tls
        ];
        executableHaskellDepends = [
          base bytestring optparse-applicative semigroups text
@@ -248284,9 +249260,7 @@ self: {
        testHaskellDepends = [ aeson base hspec ];
        description = "Send push notifications to mobile iOS devices";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "sendapn";
-       broken = true;
      }) {};
 
   "push-notify-ccs" = callPackage
@@ -249747,6 +250721,8 @@ self: {
        pname = "queues";
        version = "1.0.0";
        sha256 = "0mnn6lgd7101lrmwqy4lf04ncq8ci2kfxydm1rlh879gjvzz3lsr";
+       revision = "1";
+       editedCabalFile = "1bjjbpx4zm3rkkrpd7sh7ji65g84a6vi34skxkg18zhqcyj3d7wv";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base containers hedgehog ];
        benchmarkHaskellDepends = [ base containers tasty-bench ];
@@ -250039,6 +251015,27 @@ self: {
        license = lib.licenses.asl20;
      }) {};
 
+  "quickcheck-groups_0_0_1_3" = callPackage
+    ({ mkDerivation, base, groups, hspec, hspec-discover, pretty-show
+     , QuickCheck, quickcheck-classes, semigroupoids
+     }:
+     mkDerivation {
+       pname = "quickcheck-groups";
+       version = "0.0.1.3";
+       sha256 = "0qig24h7i04ggwna9zx5al66810mhvkv066kq5w3jw0s95lxg3n8";
+       libraryHaskellDepends = [
+         base groups pretty-show QuickCheck quickcheck-classes semigroupoids
+       ];
+       testHaskellDepends = [
+         base groups hspec QuickCheck quickcheck-classes
+       ];
+       testToolDepends = [ hspec-discover ];
+       doHaddock = false;
+       description = "Testing group class instances with QuickCheck";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "quickcheck-higherorder" = callPackage
     ({ mkDerivation, base, QuickCheck, tasty, tasty-hunit
      , tasty-quickcheck, test-fun
@@ -250081,6 +251078,32 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "quickcheck-instances_0_3_31" = callPackage
+    ({ mkDerivation, array, base, bytestring, case-insensitive
+     , containers, data-fix, hashable, integer-logarithms, old-time
+     , OneTuple, primitive, QuickCheck, scientific, splitmix, strict
+     , tagged, text, text-short, these, time-compat, transformers
+     , unordered-containers, uuid-types, vector
+     }:
+     mkDerivation {
+       pname = "quickcheck-instances";
+       version = "0.3.31";
+       sha256 = "0bsfh6fwc8h3jzkqrqk56rm6iphrmlrp80pa2z1gs79mz4d7w64v";
+       libraryHaskellDepends = [
+         array base bytestring case-insensitive containers data-fix hashable
+         integer-logarithms old-time OneTuple primitive QuickCheck
+         scientific splitmix strict tagged text text-short these time-compat
+         transformers unordered-containers uuid-types vector
+       ];
+       testHaskellDepends = [
+         base containers primitive QuickCheck tagged uuid-types
+       ];
+       benchmarkHaskellDepends = [ base bytestring QuickCheck ];
+       description = "Common quickcheck instances";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "quickcheck-io" = callPackage
     ({ mkDerivation, base, HUnit, QuickCheck }:
      mkDerivation {
@@ -250138,6 +251161,32 @@ self: {
        license = lib.licenses.asl20;
      }) {};
 
+  "quickcheck-monoid-subclasses_0_3_0_4" = callPackage
+    ({ mkDerivation, base, bytestring, commutative-semigroups
+     , containers, hspec, hspec-discover, monoid-subclasses, pretty-show
+     , QuickCheck, quickcheck-classes, quickcheck-instances
+     , semigroupoids, text, vector
+     }:
+     mkDerivation {
+       pname = "quickcheck-monoid-subclasses";
+       version = "0.3.0.4";
+       sha256 = "1ndyk2l8m5g7vx5q5kmkawv3v8s5yydfg7snr203188zamskcq85";
+       libraryHaskellDepends = [
+         base containers monoid-subclasses pretty-show QuickCheck
+         quickcheck-classes quickcheck-instances semigroupoids
+       ];
+       testHaskellDepends = [
+         base bytestring commutative-semigroups containers hspec
+         monoid-subclasses QuickCheck quickcheck-classes
+         quickcheck-instances text vector
+       ];
+       testToolDepends = [ hspec-discover ];
+       doHaddock = false;
+       description = "Testing monoid subclass instances with QuickCheck";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "quickcheck-poly" = callPackage
     ({ mkDerivation, base, haskell98, hint, MonadCatchIO-mtl
      , QuickCheck, regex-compat, regex-tdfa
@@ -250199,8 +251248,8 @@ self: {
      }:
      mkDerivation {
        pname = "quickcheck-quid";
-       version = "0.0.1.3";
-       sha256 = "0f2y91znim4745fdgl37y2lgv1qf3isn698w2ix15ibcs6yvkczy";
+       version = "0.0.1.4";
+       sha256 = "1s1pqqs0v22vigq913v7qjqx95xmfrfg46khiac5qp982swz9vnv";
        libraryHaskellDepends = [
          base containers deepseq extra hashable QuickCheck text
        ];
@@ -251353,8 +252402,8 @@ self: {
      }:
      mkDerivation {
        pname = "radix-tree";
-       version = "1.0.0.0";
-       sha256 = "1cyh6fqrl175mzl2g2565r0wv2jay0xgmv8fih91jqg5rrvgs4hq";
+       version = "1.0.0.1";
+       sha256 = "0jzr4zhznxh45pivsa6falk4pbcizm7bx1kfb108a8bx00i4s885";
        libraryHaskellDepends = [
          base bytestring deepseq primitive template-haskell text
        ];
@@ -251724,6 +252773,19 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "rampart_2_0_0_8" = callPackage
+    ({ mkDerivation, base, hspec }:
+     mkDerivation {
+       pname = "rampart";
+       version = "2.0.0.8";
+       sha256 = "1sdagiz1075kvad525f3q72krn7hvhkrbq1j4dwca4i4p77jdi17";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base hspec ];
+       description = "Determine how intervals relate to each other";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "ramus" = callPackage
     ({ mkDerivation, base, criterion, hspec, QuickCheck, quickcheck-io
      }:
@@ -252343,6 +253405,29 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "rank2classes_1_5_3_1" = callPackage
+    ({ mkDerivation, base, Cabal, cabal-doctest, data-functor-logistic
+     , distributive, doctest, markdown-unlit, tasty, tasty-hunit
+     , template-haskell, transformers
+     }:
+     mkDerivation {
+       pname = "rank2classes";
+       version = "1.5.3.1";
+       sha256 = "1gbcc6damm3wix4g7lk046cf0qsmy8i06mz54id5gw6qccbicnsh";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         base data-functor-logistic distributive template-haskell
+         transformers
+       ];
+       testHaskellDepends = [
+         base data-functor-logistic distributive doctest tasty tasty-hunit
+       ];
+       testToolDepends = [ markdown-unlit ];
+       description = "standard type constructor class hierarchy, only with methods of rank 2 types";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "rapid" = callPackage
     ({ mkDerivation, async, base, containers, foreign-store, stm }:
      mkDerivation {
@@ -252663,6 +253748,25 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "ratel_2_0_0_12" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, case-insensitive
+     , containers, filepath, hspec, http-client, http-client-tls
+     , http-types, uuid
+     }:
+     mkDerivation {
+       pname = "ratel";
+       version = "2.0.0.12";
+       sha256 = "015riig033fm3pmgm90j2rlynyk5vnd3d9z6izh63ab76kppyh6s";
+       libraryHaskellDepends = [
+         aeson base bytestring case-insensitive containers http-client
+         http-client-tls http-types uuid
+       ];
+       testHaskellDepends = [ base filepath hspec ];
+       description = "Notify Honeybadger about exceptions";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "ratel-wai" = callPackage
     ({ mkDerivation, base, bytestring, case-insensitive, containers
      , http-client, ratel, wai
@@ -252678,6 +253782,22 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "ratel-wai_2_0_0_7" = callPackage
+    ({ mkDerivation, base, bytestring, case-insensitive, containers
+     , http-client, ratel, wai
+     }:
+     mkDerivation {
+       pname = "ratel-wai";
+       version = "2.0.0.7";
+       sha256 = "02a6jv5hri6y26idgfxpnyhfjsgiwc1ssks3pn7vcqlahampqa5i";
+       libraryHaskellDepends = [
+         base bytestring case-insensitive containers http-client ratel wai
+       ];
+       description = "Notify Honeybadger about exceptions via a WAI middleware";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "ratelimiter" = callPackage
     ({ mkDerivation, base, containers, extra, mtl, time, timespan
      , vector
@@ -252824,14 +253944,14 @@ self: {
        broken = true;
      }) {};
 
-  "rattletrap_13_0_2" = callPackage
+  "rattletrap_13_0_3" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, array, base, bytestring
      , containers, filepath, http-client, http-client-tls, text
      }:
      mkDerivation {
        pname = "rattletrap";
-       version = "13.0.2";
-       sha256 = "0yrq5ydwp3p1mw5srk2x4rsv4x466xlkb7468v1mgvhnbd9i85cf";
+       version = "13.0.3";
+       sha256 = "0rs1hskmx13ahcqg6dxx46nc0pijc14d8bikjsdm1y17z2wzidcm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -254024,6 +255144,24 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "real-dice" = callPackage
+    ({ mkDerivation, base, extra, mtl, primes, QuickCheck, random }:
+     mkDerivation {
+       pname = "real-dice";
+       version = "0.1.0.2";
+       sha256 = "0vkdkyrlmja0aa8h4q04p3rlzvcd0lb4pr07f191dbnd7siwk9dw";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base mtl primes ];
+       executableHaskellDepends = [ base mtl random ];
+       testHaskellDepends = [ base extra mtl primes QuickCheck ];
+       description = "Random number generation based on physical media touched by humans";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "real-dice";
+       broken = true;
+     }) {};
+
   "really-simple-xml-parser" = callPackage
     ({ mkDerivation, base, parsec }:
      mkDerivation {
@@ -254473,6 +255611,7 @@ self: {
        ];
        description = "Record subtyping and record utilities with generics-sop";
        license = lib.licenses.bsd3;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "records-th" = callPackage
@@ -255378,6 +256517,7 @@ self: {
        ];
        description = "Higher-order Functional Reactive Programming";
        license = lib.licenses.bsd3;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "reflex-animation" = callPackage
@@ -255481,7 +256621,9 @@ self: {
        ];
        description = "Functional Reactive Web Apps with Reflex";
        license = lib.licenses.bsd3;
-       maintainers = [ lib.maintainers.maralorn ];
+       maintainers = [
+         lib.maintainers.alexfmpe lib.maintainers.maralorn
+       ];
      }) {};
 
   "reflex-dom-ace" = callPackage
@@ -255580,6 +256722,7 @@ self: {
        description = "Functional Reactive Web Apps with Reflex";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.alexfmpe ];
        broken = true;
      }) {chrome-test-utils = null;};
 
@@ -255790,6 +256933,7 @@ self: {
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        mainProgram = "readme";
+       maintainers = [ lib.maintainers.alexfmpe ];
        broken = true;
      }) {};
 
@@ -261817,6 +262961,26 @@ self: {
        broken = true;
      }) {};
 
+  "roc-id_0_2_0_3" = callPackage
+    ({ mkDerivation, base, hspec, MonadRandom, Only, QuickCheck, text
+     , vector-sized
+     }:
+     mkDerivation {
+       pname = "roc-id";
+       version = "0.2.0.3";
+       sha256 = "1alniidc069v24gamc4ch058pfqs97hz5mmsgjhidz8j1294pii5";
+       libraryHaskellDepends = [
+         base MonadRandom Only text vector-sized
+       ];
+       testHaskellDepends = [
+         base hspec MonadRandom Only QuickCheck text vector-sized
+       ];
+       description = "Implementation of the ROC (Taiwan) National ID standard";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "rock" = callPackage
     ({ mkDerivation, base, constraints, constraints-extras
      , dependent-hashmap, dependent-sum, deriving-compat, hashable
@@ -264903,6 +266067,19 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "salve_2_0_0_5" = callPackage
+    ({ mkDerivation, base, HUnit }:
+     mkDerivation {
+       pname = "salve";
+       version = "2.0.0.5";
+       sha256 = "1n86a61rn5mmxi4whfwxv3ydn47h4537swqgwbg5adys9hwk7pqp";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base HUnit ];
+       description = "Semantic version numbers and constraints";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "salvia" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory, fclabels
      , MaybeT-transformers, monads-fd, network, old-locale, process
@@ -265641,8 +266818,8 @@ self: {
      }:
      mkDerivation {
        pname = "saturn";
-       version = "1.0.0.3";
-       sha256 = "0xilcnica1bzi310x2dv1igdpzk91sqzbzqpjkjd7g6v93pl9xhv";
+       version = "1.0.0.5";
+       sha256 = "16apync9z5lk3vph40sqxcj391788h7chz2zv55kcdsfam56yq83";
        libraryHaskellDepends = [
          base containers hspec parsec QuickCheck text time
        ];
@@ -266366,9 +267543,7 @@ self: {
        description = "Generates unique passwords for various websites from a single password";
        license = lib.licenses.bsd3;
        platforms = lib.platforms.x86;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "scat";
-       broken = true;
      }) {};
 
   "scc" = callPackage
@@ -268743,8 +269918,6 @@ self: {
        ];
        description = "Multi-backend, high-level EDSL for interacting with SQL databases";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "selda-json" = callPackage
@@ -268756,7 +269929,6 @@ self: {
        libraryHaskellDepends = [ aeson base bytestring selda text ];
        description = "JSON support for the Selda database library";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "selda-postgresql" = callPackage
@@ -268791,7 +269963,6 @@ self: {
        ];
        description = "SQLite backend for the Selda database EDSL";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "select" = callPackage
@@ -269055,6 +270226,25 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "semialign_1_3_1" = callPackage
+    ({ mkDerivation, base, containers, hashable, indexed-traversable
+     , indexed-traversable-instances, semigroupoids, tagged, these
+     , transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "semialign";
+       version = "1.3.1";
+       sha256 = "1xwx1icyggjbjflgn75bsqw34dmpsd15qqmz13ljxv7zak17ps36";
+       libraryHaskellDepends = [
+         base containers hashable indexed-traversable
+         indexed-traversable-instances semigroupoids tagged these
+         transformers unordered-containers vector
+       ];
+       description = "Align and Zip type-classes from the common Semialign ancestor";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "semialign-extras" = callPackage
     ({ mkDerivation, base, doctest, lens, QuickCheck, semialign
      , semialign-indexed, these, witherable
@@ -270129,8 +271319,8 @@ self: {
        pname = "servant";
        version = "0.20.1";
        sha256 = "1s8vapj8qb8l5snjzxd63d9rvxwa1vw6g77cg8nynrzzppwp7xwl";
-       revision = "2";
-       editedCabalFile = "137yfr7mxfx2r3pkdfwsxv7xxch5l20yirj82186djyg36q5021z";
+       revision = "4";
+       editedCabalFile = "0yd1v3vk7lay3f9jnkybqc57am4qkgnxaz5s8rnc243agmrd4shs";
        libraryHaskellDepends = [
          aeson attoparsec base base-compat bifunctors bytestring
          case-insensitive constraints deepseq http-api-data http-media
@@ -270252,8 +271442,8 @@ self: {
        pname = "servant-auth-client";
        version = "0.4.1.1";
        sha256 = "1fs00p15hz2lqspby2xg6h0zxmlljm6wgi0wk73a4gavyg26dgqq";
-       revision = "4";
-       editedCabalFile = "014sbmbvksm4znxxs1h7lvww86ly7sh0zj9w99byxd29s4z4yh8m";
+       revision = "5";
+       editedCabalFile = "1dbq1451jj49hbjfrdhr47k3rpwj825rbvj3f79w75rzyl3hyg75";
        libraryHaskellDepends = [
          base bytestring containers servant servant-auth servant-client-core
        ];
@@ -270308,8 +271498,8 @@ self: {
        pname = "servant-auth-docs";
        version = "0.2.10.1";
        sha256 = "03dnh6x0y34npmv9w2f3hc9r1brlzf2rki6c6ngvwb3dvichhykv";
-       revision = "2";
-       editedCabalFile = "09gnjhxdf5kw26c4ah2012lq2z4mg9mdnln8j9xcsg35212mv8c9";
+       revision = "3";
+       editedCabalFile = "12irngkv4irmjkmarnpyfknq9iwz9xigcgldmg6y9sscjjv7xh7r";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base lens servant servant-auth servant-docs
@@ -270372,8 +271562,8 @@ self: {
        pname = "servant-auth-server";
        version = "0.4.8.0";
        sha256 = "0drny9m2js619pkxxa1mxji5x4r46kpv3qnmswyrb3kc0ck5c2af";
-       revision = "4";
-       editedCabalFile = "1cib954pc6x4qawyizxlr9qg9838rahyihdiv4qiz09i19m8n6zj";
+       revision = "6";
+       editedCabalFile = "0rvb6jwjmkdrbc2q92si19arf5gi80x3m1g67354bncdaa81n81z";
        libraryHaskellDepends = [
          aeson base base64-bytestring blaze-builder bytestring
          case-insensitive cookie data-default-class entropy http-types jose
@@ -270400,8 +271590,8 @@ self: {
        pname = "servant-auth-swagger";
        version = "0.2.10.2";
        sha256 = "0f4sn0xlsq8lcnyj0q978bamfav6jmfkkccrg2k5l7rndif4nmwg";
-       revision = "2";
-       editedCabalFile = "0gw3pv4jwn5d4gah5l2x4gf9by7wqi40vj9syjv65xgshvcnk8gd";
+       revision = "3";
+       editedCabalFile = "0cvs7qwjdbr1f6n49pwjkq1cmkhya658207cmi8b70ghm5wvqfgi";
        libraryHaskellDepends = [
          base lens servant servant-auth servant-swagger swagger2 text
        ];
@@ -270608,8 +271798,8 @@ self: {
        pname = "servant-blaze";
        version = "0.9.1";
        sha256 = "08fvy904mz5xjqda702kq4ch25m3nda1yhpp4g7i62j0jmxs2ji6";
-       revision = "2";
-       editedCabalFile = "1bc933vfxwdcpgfxy34dkxpadv8j1j053rjxfl4lj0gajwxc5x48";
+       revision = "3";
+       editedCabalFile = "1f8rhp5g029m2ymrrn96ahbd1kn9nw3nk0c5wjbmfmby1avmppix";
        libraryHaskellDepends = [ base blaze-html http-media servant ];
        testHaskellDepends = [ base blaze-html servant-server wai warp ];
        description = "Blaze-html support for servant";
@@ -270726,8 +271916,8 @@ self: {
        pname = "servant-client";
        version = "0.20";
        sha256 = "0xmjqc54yq5akhw5ydbx5k0c1pnrryma8nczwyzvwx4vazrk0pbn";
-       revision = "3";
-       editedCabalFile = "0awk9s22228mm4ff3bc165djvykihbkk6vqvfak0mz1m7dypi7fq";
+       revision = "6";
+       editedCabalFile = "0a2ix2r0fwdjfpd74sbgksiadzp1x8l5dm66k0g51dvj0v64njcn";
        libraryHaskellDepends = [
          base base-compat bytestring containers deepseq exceptions
          http-client http-media http-types kan-extensions monad-control mtl
@@ -270756,8 +271946,8 @@ self: {
        pname = "servant-client-core";
        version = "0.20";
        sha256 = "012bdf3c44bqzb0ycns4pcxb0zidqqn7lpzz9316kiwy0wb4jx56";
-       revision = "3";
-       editedCabalFile = "02q7fvmqvc1n5h0bh4q28vaphhnms34lr6ckxbxrmc5wwcz8qkgv";
+       revision = "4";
+       editedCabalFile = "10zypw7b7p3b3hb293ik44n45c9s875jnr919ramfx3bpiqchb5g";
        libraryHaskellDepends = [
          aeson base base-compat base64-bytestring bytestring constraints
          containers deepseq exceptions free http-media http-types
@@ -270848,8 +272038,8 @@ self: {
        pname = "servant-conduit";
        version = "0.16";
        sha256 = "037vqqq5k2jm6s7gg2shb6iyvjfblsr41ifjpryfxmsib669vs9f";
-       revision = "1";
-       editedCabalFile = "1isnhvhqlzhz37wz19gjbz5i27mmg2qzy6qpma2wlbja22s14ywp";
+       revision = "2";
+       editedCabalFile = "0vxil0jr3iv4a9bf1rvy7qpbmffic1ga8drm6yl6csd64n4a3jvn";
        libraryHaskellDepends = [
          base bytestring conduit mtl resourcet servant unliftio-core
        ];
@@ -270953,8 +272143,8 @@ self: {
        pname = "servant-docs";
        version = "0.13";
        sha256 = "0i91my86bcnn0jckf2qlfyx1zfbg8w6959v7iim60s3mdx9yjp67";
-       revision = "2";
-       editedCabalFile = "1awdlcvi24rqjzx01qff4an4srzqbyrcihxvazha0ypr2w94wz15";
+       revision = "4";
+       editedCabalFile = "16m0glwz8x4k8cjp14jz9gq68q30wmz37qx39f3b4qrh3924hnsm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -271200,8 +272390,8 @@ self: {
        pname = "servant-foreign";
        version = "0.16";
        sha256 = "15pir0x7dcyjmw71g4w00qgvcxyvhbkywzc3bvvaaprk5bjb3bmv";
-       revision = "2";
-       editedCabalFile = "1mvp8r90kj0hnl95hzwdf5pja69h44vlwjypygzgjxn1j0lmrj2f";
+       revision = "4";
+       editedCabalFile = "0nm2nkivil7yh66syvw1a41g1lif75h7wc07rh9bnl7ncqfvdnal";
        libraryHaskellDepends = [
          base base-compat http-types lens servant text
        ];
@@ -271392,8 +272582,8 @@ self: {
        pname = "servant-http-streams";
        version = "0.20";
        sha256 = "1pakvvw8m7dkwf8zfrh2gan1hs5zp4mgnn4bp0wiy49mc3zzlxwi";
-       revision = "3";
-       editedCabalFile = "1liw4vv8agbfyc1nks5qzidp24ia8zm8rj9sz05hapnrsv3q5d74";
+       revision = "6";
+       editedCabalFile = "0sq87z14wijr0dv0yclbz9k7g4plfjq8bqcn5wi7wq0h3ak7fzzg";
        libraryHaskellDepends = [
          base base-compat bytestring case-insensitive containers deepseq
          exceptions http-common http-media http-streams http-types
@@ -271588,8 +272778,8 @@ self: {
        pname = "servant-lucid";
        version = "0.9.0.6";
        sha256 = "1z894w9hfcnsdwivy2qvwa254l9d9bsbdjvzlvksxy92aw1p6fd0";
-       revision = "1";
-       editedCabalFile = "1b76mpiicbx9n062q7br0da6hbmwrbkkc881rh87l0snl03rzpmp";
+       revision = "2";
+       editedCabalFile = "1m2w1g8j4zrghiw7s20zzm5v026vwxmfjgcxn30s4ml2a0787kp1";
        libraryHaskellDepends = [ base http-media lucid servant text ];
        testHaskellDepends = [ base lucid servant-server wai warp ];
        description = "Servant support for lucid";
@@ -271605,8 +272795,8 @@ self: {
        pname = "servant-machines";
        version = "0.16";
        sha256 = "0c2cz96m9lbzr318i4vpy55y37xagh7sf1g0hvxbsvwhnzqa4532";
-       revision = "1";
-       editedCabalFile = "1fw4ls9s9y6rndr2ky7m50msmssaidq1afmy8gsjksc6px3xk4y9";
+       revision = "2";
+       editedCabalFile = "0nrrrh73bryg9xh025zdmk1kdmnm0kzrisbyhxrmqc514ayzkrr8";
        libraryHaskellDepends = [ base bytestring machines mtl servant ];
        testHaskellDepends = [
          base base-compat bytestring http-client http-media machines servant
@@ -271694,8 +272884,8 @@ self: {
        pname = "servant-multipart";
        version = "0.12.1";
        sha256 = "1p55kb3zhq25ncp7wimhggssn68abfgsnlldk13rk1iajaj6y8y5";
-       revision = "6";
-       editedCabalFile = "092n8hgzl90pqfd4faxbyy692ay92wc5s4c6vfa4zjf358zpkjgl";
+       revision = "7";
+       editedCabalFile = "0gvnh6bnd9g8pwyf2x4c2hz8q3fs8ax5cfjwj1ina2hbbyscz3jm";
        libraryHaskellDepends = [
          base bytestring directory lens resourcet servant servant-docs
          servant-foreign servant-multipart-api servant-server
@@ -271734,8 +272924,8 @@ self: {
        pname = "servant-multipart-client";
        version = "0.12.2";
        sha256 = "0djvbfc1yk8dzadav3lfrq99m7grcxxgxaifj8nc173yfdjdq4y2";
-       revision = "1";
-       editedCabalFile = "1v51mgy6j307sbfi52w6j85wfch178r6gap3d2nx1sws3hh35vh4";
+       revision = "2";
+       editedCabalFile = "0rbk9racnb97kwqlkzlcr3m2k0ias7s0bzfw7251gvyvwy1mf478";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -271949,8 +273139,8 @@ self: {
        pname = "servant-pipes";
        version = "0.16";
        sha256 = "00n2rmv4aar49247is2sgy58nal64lv05zci9lhkbgmmmi1hqd10";
-       revision = "1";
-       editedCabalFile = "0n2l14bsb020ixp8z84m2znjbgma37pdp2yrpq8x64g912qayj63";
+       revision = "2";
+       editedCabalFile = "1xm1mi12qmwwxy3yqm6ys37q33f8hvq2sqyrvqw9rilkiqs2w8yr";
        libraryHaskellDepends = [
          base bytestring monad-control mtl pipes pipes-safe servant
        ];
@@ -272204,18 +273394,18 @@ self: {
      , bytestring, case-insensitive, clock, data-default-class, hspec
      , hspec-core, hspec-discover, http-client, http-media, http-types
      , mtl, pretty, process, QuickCheck, quickcheck-io, servant
-     , servant-blaze, servant-client, servant-server, split
-     , string-conversions, temporary, text, time, transformers, warp
+     , servant-blaze, servant-client, servant-server, split, temporary
+     , text, time, transformers, warp
      }:
      mkDerivation {
        pname = "servant-quickcheck";
-       version = "0.0.10.0";
-       sha256 = "072q2nxapx9p1fkcs862a9irjhlg0sfpbr72a1m9a5lrfhf9ahmc";
+       version = "0.1.0.0";
+       sha256 = "0bb6h0x1hcms10qmwxka7b6y8b1pigwa639sw0n1dn2jipzwxbla";
        libraryHaskellDepends = [
          aeson base base-compat-batteries bytestring case-insensitive clock
          data-default-class hspec http-client http-media http-types mtl
          pretty process QuickCheck servant servant-client servant-server
-         split string-conversions temporary text time warp
+         split temporary text time warp
        ];
        testHaskellDepends = [
          aeson base base-compat-batteries blaze-html bytestring hspec
@@ -272507,8 +273697,8 @@ self: {
        pname = "servant-server";
        version = "0.20";
        sha256 = "1gp8pslk2sspi5vzrl1nimndpif7jhgzlffi2mzf1ap1bdwgxchk";
-       revision = "4";
-       editedCabalFile = "1y1pilkixlm116cr4q7rsawfxkwv7iahq9cqq4nidc4py482ccbg";
+       revision = "5";
+       editedCabalFile = "1k9rfv4pql4x7qb6gs4yzrfmyp2snfw8640mqaknbg9mc8ic28bc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -272819,8 +274009,8 @@ self: {
        pname = "servant-swagger";
        version = "1.2";
        sha256 = "1dim4vlsd9zcz3ra0qwvb4hlbj0iarxygz78ksw8nbvqgbym3zjh";
-       revision = "3";
-       editedCabalFile = "1gm7nf0jazlapgg6dvaq4r0nskz23819871rfj84panr9icf8dgj";
+       revision = "4";
+       editedCabalFile = "0qvd4p0g8djj67g7c4nh2y9z4x6k778y3037w2m4622412fvyyfv";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          aeson aeson-pretty base base-compat bytestring hspec http-media
@@ -273730,8 +274920,6 @@ self: {
        libraryHaskellDepends = [ base containers mtl syb ];
        description = "Functions that could be added to Data.Set.";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "set-monad" = callPackage
@@ -273972,6 +275160,8 @@ self: {
        pname = "sexp";
        version = "0.7";
        sha256 = "19blk6nzbsm9syx45zzlmqxq1mi2prv0jq12cf83b4kf4pvwk32n";
+       revision = "1";
+       editedCabalFile = "1scf46ghsg33h1yc0g7xgim46wn4yh3wh647h0ni8acb841qxkrq";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -276140,8 +277330,8 @@ self: {
      }:
      mkDerivation {
        pname = "si-timers";
-       version = "1.4.0.0";
-       sha256 = "0mw53f830qhk99q5q1hbbh2ci2fzqg5k71lzjp39h50jxa6g776d";
+       version = "1.5.0.0";
+       sha256 = "0mpxcwjvymgawy8934sa8hkzz14dwagi8lbr1gqr9q5400wzixwk";
        libraryHaskellDepends = [
          base deepseq io-classes mtl nothunks stm time
        ];
@@ -284455,25 +285645,16 @@ self: {
      }) {};
 
   "spline3" = callPackage
-    ({ mkDerivation, base, cmdargs, doctest, MissingH, repa
-     , repa-algorithms, repa-io, tasty, tasty-hunit, tasty-quickcheck
-     , vector
-     }:
+    ({ mkDerivation, base }:
      mkDerivation {
        pname = "spline3";
-       version = "1.0.1";
-       sha256 = "12jpbzmwixhrd6a67ay7rgqbh61d70ffmcn83k0yl6qqkyn2hqkv";
+       version = "1.8.7";
+       sha256 = "0p3j5hnhyd8dig6zy0n5fkv9ppb01350qnblkdsvw5gmsgd9q8mj";
        isLibrary = false;
        isExecutable = true;
-       executableHaskellDepends = [
-         base cmdargs MissingH repa repa-algorithms repa-io tasty
-         tasty-hunit tasty-quickcheck vector
-       ];
-       testHaskellDepends = [
-         base doctest repa tasty tasty-hunit tasty-quickcheck vector
-       ];
-       description = "A parallel implementation of the Sorokina/Zeilfelder spline scheme";
-       license = lib.licenses.agpl3Only;
+       executableHaskellDepends = [ base ];
+       description = "Parallel implementation of the Sorokina/Zeilfelder spline scheme";
+       license = lib.licenses.agpl3Plus;
        mainProgram = "spline3";
      }) {};
 
@@ -286132,22 +287313,22 @@ self: {
        mainProgram = "stack-all";
      }) {};
 
-  "stack-all_0_5_2" = callPackage
+  "stack-all_0_6_1" = callPackage
     ({ mkDerivation, aeson, base, cached-json-file, config-ini
      , directory, extra, filepath, http-query, process, simple-cmd
      , simple-cmd-args, text
      }:
      mkDerivation {
        pname = "stack-all";
-       version = "0.5.2";
-       sha256 = "0ih25r2avwl6f2nqxa7sqaf070mnr27baw9wxfyr2pvv9i9nv6an";
+       version = "0.6.1";
+       sha256 = "0k5gvvl9vh7znscf5b4d3bpsr1mhz58pmh7ny1fdm9p08n3i8dlz";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          aeson base cached-json-file config-ini directory extra filepath
          http-query process simple-cmd simple-cmd-args text
        ];
-       description = "CLI tool for building across Stackage major versions";
+       description = "CLI tool for building over Stackage major versions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        mainProgram = "stack-all";
@@ -290389,14 +291570,29 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "strict-list_0_1_7_5" = callPackage
+    ({ mkDerivation, base, deepseq, hashable, rerebase, semigroupoids
+     , tasty, tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "strict-list";
+       version = "0.1.7.5";
+       sha256 = "0sr307zs8jjcwawpzfpgpmyarf0ldk19472i4vzpxvkv7wzgzqy3";
+       libraryHaskellDepends = [ base deepseq hashable semigroupoids ];
+       testHaskellDepends = [ rerebase tasty tasty-quickcheck ];
+       description = "Strict linked list";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "strict-mvar" = callPackage
     ({ mkDerivation, base, io-classes, io-sim, nothunks, QuickCheck
      , tasty, tasty-quickcheck
      }:
      mkDerivation {
        pname = "strict-mvar";
-       version = "1.4.0.0";
-       sha256 = "052naxgy92l2mnavf6a4wbiqir78zwd3r8bzq0l7zyy63kh7lr4d";
+       version = "1.5.0.0";
+       sha256 = "0pj6wiy0njzl71p0d0z8asr72v4xzy22lmnj454h372ixgwidjfh";
        libraryHaskellDepends = [ base io-classes ];
        testHaskellDepends = [
          base io-sim nothunks QuickCheck tasty tasty-quickcheck
@@ -290422,8 +291618,8 @@ self: {
     ({ mkDerivation, array, base, io-classes, stm }:
      mkDerivation {
        pname = "strict-stm";
-       version = "1.4.0.0";
-       sha256 = "0aq5qwxlqv369yi02z0gndb87pjv8mwpcaqphpd0ig563jivs4f8";
+       version = "1.5.0.0";
+       sha256 = "1p8vjdymsjkgz0ahk83smh1mfr79r1ysv1dsw1wwn8sax4jyzwyn";
        libraryHaskellDepends = [ array base io-classes stm ];
        description = "Strict STM interface polymorphic over stm implementation";
        license = lib.licenses.asl20;
@@ -290441,6 +291637,19 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "strict-tuple_0_1_5_4" = callPackage
+    ({ mkDerivation, base, bifunctors, deepseq, hashable }:
+     mkDerivation {
+       pname = "strict-tuple";
+       version = "0.1.5.4";
+       sha256 = "1znx5lmi7lgn4jzkr73lsc2xac0ypl65bx0pa1hxrc4c74ilysbk";
+       libraryHaskellDepends = [ base bifunctors deepseq hashable ];
+       testHaskellDepends = [ base ];
+       description = "Strict tuples";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "strict-tuple-lens" = callPackage
     ({ mkDerivation, base, lens, strict-tuple }:
      mkDerivation {
@@ -291233,6 +292442,24 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "strive_6_0_0_12" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, data-default, gpolyline
+     , http-client, http-client-tls, http-types, template-haskell, text
+     , time, transformers
+     }:
+     mkDerivation {
+       pname = "strive";
+       version = "6.0.0.12";
+       sha256 = "1376pkfkzm3pvhl1k8kqls20vj00zfhyhriccwlzvw918h4f73nc";
+       libraryHaskellDepends = [
+         aeson base bytestring data-default gpolyline http-client
+         http-client-tls http-types template-haskell text time transformers
+       ];
+       description = "A client for the Strava V3 API";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "strong-path" = callPackage
     ({ mkDerivation, base, exceptions, filepath, hashable, hspec, path
      , tasty, tasty-discover, tasty-hspec, tasty-quickcheck
@@ -292986,9 +294213,7 @@ self: {
        executableToolDepends = [ alex happy ];
        description = "SystemVerilog to Verilog conversion";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "sv2v";
-       broken = true;
      }) {};
 
   "svfactor" = callPackage
@@ -297592,6 +298817,35 @@ self: {
        mainProgram = "tasty-autocollect";
      }) {};
 
+  "tasty-autocollect_0_4_3" = callPackage
+    ({ mkDerivation, base, bytestring, containers, directory
+     , explainable-predicates, filepath, ghc, tasty
+     , tasty-expected-failure, tasty-golden, tasty-hunit
+     , tasty-quickcheck, template-haskell, temporary, text, transformers
+     , typed-process
+     }:
+     mkDerivation {
+       pname = "tasty-autocollect";
+       version = "0.4.3";
+       sha256 = "0pidvmxkyddx3kdyhhx335cn8hyi66y4n2xvpdk5sg1zg2w29ggl";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring containers directory filepath ghc tasty
+         tasty-expected-failure template-haskell text transformers
+       ];
+       executableHaskellDepends = [ base text ];
+       testHaskellDepends = [
+         base bytestring containers directory explainable-predicates
+         filepath tasty tasty-golden tasty-hunit tasty-quickcheck temporary
+         text typed-process
+       ];
+       description = "Autocollection of tasty tests";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "tasty-autocollect";
+     }) {};
+
   "tasty-bdd" = callPackage
     ({ mkDerivation, aeson, aeson-qq, base, exceptions, free, HUnit
      , microlens, microlens-th, mtl, pretty, pretty-show
@@ -297922,8 +299176,8 @@ self: {
        pname = "tasty-hspec";
        version = "1.2.0.4";
        sha256 = "1hk1nkjvhp89xxgzj6dhbgw0fknnghpng6afq4i39hjkwv5p78ni";
-       revision = "3";
-       editedCabalFile = "1ky8lis1bxig6zc213azb4nkg9hjzhsrk7p4hw28dang0x91x3wy";
+       revision = "4";
+       editedCabalFile = "1i2wq9cir6l861g51g9rya8s37629ljbbrrh37vk76mv85lb38vj";
        libraryHaskellDepends = [
          base hspec hspec-api hspec-core QuickCheck tasty tasty-quickcheck
          tasty-smallcheck
@@ -299444,12 +300698,12 @@ self: {
        broken = true;
      }) {};
 
-  "template-haskell_2_21_0_0" = callPackage
+  "template-haskell_2_22_0_0" = callPackage
     ({ mkDerivation, base, ghc-boot-th, ghc-prim, pretty }:
      mkDerivation {
        pname = "template-haskell";
-       version = "2.21.0.0";
-       sha256 = "0p8f53dscddr513r8p3ljwyc1pa7n520prxb47bz8dj5mvjxm89d";
+       version = "2.22.0.0";
+       sha256 = "0cn9n5jyzn9h1ab76rr2cyxaysh2rk7ywcj92lxsf49fah4vx35g";
        libraryHaskellDepends = [ base ghc-boot-th ghc-prim pretty ];
        description = "Support library for Template Haskell";
        license = lib.licenses.bsd3;
@@ -301512,6 +302766,8 @@ self: {
        pname = "text";
        version = "2.1.1";
        sha256 = "1azy4kzy23nhck4mxfrqdd754z8nbwpxqdgdfqjdgx45nalds374";
+       revision = "1";
+       editedCabalFile = "0zg8nlri1lhhyhzwl38xsil23j4xgc47ycjk0jl0f1jx0n8zphvq";
        libraryHaskellDepends = [
          array base binary bytestring deepseq ghc-prim system-cxx-std-lib
          template-haskell
@@ -301571,6 +302827,8 @@ self: {
        pname = "text-ansi";
        version = "0.3.0.1";
        sha256 = "0iiq5zlcjh25mf9b4vlhyc1dwglwh8b03qj1wasbngzvmphvcy00";
+       revision = "1";
+       editedCabalFile = "14i37ffh5v4ppz7s2nx9qsmjrc1baj1pvslnxk72amzyiwf2yfx6";
        libraryHaskellDepends = [ base text text-builder-linear ];
        description = "Text styling for ANSI terminals";
        license = lib.licenses.bsd3;
@@ -301922,6 +303180,31 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "text-iso8601_0_1_1" = callPackage
+    ({ mkDerivation, attoparsec, attoparsec-iso8601, base
+     , integer-conversion, QuickCheck, quickcheck-instances, tasty
+     , tasty-bench, tasty-hunit, tasty-quickcheck, text, time
+     , time-compat
+     }:
+     mkDerivation {
+       pname = "text-iso8601";
+       version = "0.1.1";
+       sha256 = "00l2m3xj39mrz7lbmbnir4k9jbn3jm3xa2q6zkh0zr7arsvx5slx";
+       libraryHaskellDepends = [
+         base integer-conversion text time time-compat
+       ];
+       testHaskellDepends = [
+         base QuickCheck quickcheck-instances tasty tasty-hunit
+         tasty-quickcheck text time-compat
+       ];
+       benchmarkHaskellDepends = [
+         attoparsec attoparsec-iso8601 base tasty-bench text time-compat
+       ];
+       description = "Converting time to and from ISO 8601 text";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "text-json-qq" = callPackage
     ({ mkDerivation, base, haskell-src-meta, json, json-qq, parsec
      , template-haskell
@@ -303638,6 +304921,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "these_1_2_1" = callPackage
+    ({ mkDerivation, assoc, base, binary, deepseq, hashable }:
+     mkDerivation {
+       pname = "these";
+       version = "1.2.1";
+       sha256 = "1pp44amwvpl0m762zahg632prlxx0ca2r10n3a0bznjy6qrxkmhp";
+       libraryHaskellDepends = [ assoc base binary deepseq hashable ];
+       description = "An either-or-both data type";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "these-lens" = callPackage
     ({ mkDerivation, base, lens, these }:
      mkDerivation {
@@ -303651,6 +304946,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "these-lens_1_0_2" = callPackage
+    ({ mkDerivation, base, lens, these }:
+     mkDerivation {
+       pname = "these-lens";
+       version = "1.0.2";
+       sha256 = "159dp25rbhcnmpxvvabjl8s9df9mvqi30p81vrmh7kgg86xa050y";
+       libraryHaskellDepends = [ base lens these ];
+       description = "Lenses for These";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "these-optics" = callPackage
     ({ mkDerivation, base, optics-core, these }:
      mkDerivation {
@@ -303664,6 +304971,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "these-optics_1_0_2" = callPackage
+    ({ mkDerivation, base, optics-core, these }:
+     mkDerivation {
+       pname = "these-optics";
+       version = "1.0.2";
+       sha256 = "0a63xfqj841i7pwdjzg067ixs0lj9ngwfjps6yyk5gyqqmhirqsv";
+       libraryHaskellDepends = [ base optics-core these ];
+       description = "Optics for These";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "these-skinny" = callPackage
     ({ mkDerivation, base, deepseq, ghc-prim }:
      mkDerivation {
@@ -305431,6 +306750,22 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "timer-wheel_1_0_0_1" = callPackage
+    ({ mkDerivation, atomic-primops, base, ki, primitive, random
+     , tasty-bench
+     }:
+     mkDerivation {
+       pname = "timer-wheel";
+       version = "1.0.0.1";
+       sha256 = "0sshn0i25f4bdb6wj6xg4shkq5ylpiq4803wp6ra1qvyg9kbx5za";
+       libraryHaskellDepends = [ atomic-primops base ki primitive ];
+       testHaskellDepends = [ base ki random ];
+       benchmarkHaskellDepends = [ base ki random tasty-bench ];
+       description = "A timer wheel";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "timerep" = callPackage
     ({ mkDerivation, attoparsec, base, monoid-subclasses, QuickCheck
      , tasty, tasty-hunit, tasty-quickcheck, text, time
@@ -305572,8 +306907,8 @@ self: {
     ({ mkDerivation, base, containers, text }:
      mkDerivation {
        pname = "timestats";
-       version = "0.1.1";
-       sha256 = "1yrr6a0p83h2y2n36x65qz937y9dyzvff1q5zfcskyja43jpaimp";
+       version = "0.1.3";
+       sha256 = "11qif48pc5fisighqw5c7iq9asbfzpnx2w6wxasw0gfpwmphcwyf";
        libraryHaskellDepends = [ base containers text ];
        testHaskellDepends = [ base text ];
        description = "A library for profiling time in Haskell applications";
@@ -309773,8 +311108,8 @@ self: {
        pname = "trie-simple";
        version = "0.4.2";
        sha256 = "1ai4fn35312z6ydwadi0rxscglwqawjrzq6p1i2kpbf7vmflznjg";
-       revision = "2";
-       editedCabalFile = "1acm5zh0lmz20gakq5ghmrgb87w76350gfxim25y4rh4jzr39wv1";
+       revision = "4";
+       editedCabalFile = "1f4mc1jvn5nz7mgwlip7lhfkbnba6hpa4vwkbw52bp0qx063b9y5";
        libraryHaskellDepends = [
          base containers deepseq hashable indexed-traversable matchable mtl
          semialign these witherable
@@ -310023,10 +311358,8 @@ self: {
     ({ mkDerivation, base, containers, template-haskell, time }:
      mkDerivation {
        pname = "true-name";
-       version = "0.1.0.3";
-       sha256 = "0s74fi3zfzk3apvwjz1c0k0ij24kdvlrn8lply9c04kyd20fyc66";
-       revision = "2";
-       editedCabalFile = "0rb9wbkbz6hsm9cz0j954a9hdyyw80r55vr99pp70ljf0ysgk9w2";
+       version = "0.2.0.0";
+       sha256 = "1cn67zs0nhsiqqrn05rlmnvmw87i8n2j0mi63xq5zbkmj0jqinqs";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base containers template-haskell time ];
        description = "Template Haskell hack to violate module abstractions";
@@ -310388,6 +311721,8 @@ self: {
        pname = "ttc";
        version = "1.4.0.0";
        sha256 = "0kp3kpdv5hf13qri8ms8jb9ydyn3fpviw0wgkqb3g2m4ccyl8ssq";
+       revision = "1";
+       editedCabalFile = "0g0p1fq7r90dd89alky78x6cl5g7mq7cs5j033cwy9s1jck17km0";
        libraryHaskellDepends = [
          base bytestring template-haskell text text-short
        ];
@@ -312210,8 +313545,8 @@ self: {
     ({ mkDerivation, base, defun-core }:
      mkDerivation {
        pname = "type-level-show";
-       version = "0.1.0";
-       sha256 = "0k73cl28lrws6ys1xkrrh47yh89a2k3ddfzjpp47gsz1p3048cqs";
+       version = "0.1.1";
+       sha256 = "150k54mf15pj2jghhvr76y9yvljn4q25vrg3zwmvbn93gd1zhy20";
        libraryHaskellDepends = [ base defun-core ];
        description = "Utilities for writing Show-like type families";
        license = lib.licenses.mit;
@@ -315909,6 +317244,25 @@ self: {
        ];
        description = "A class for finite and recursively enumerable types";
        license = lib.licenses.bsd3;
+       maintainers = [ lib.maintainers.alexfmpe ];
+     }) {};
+
+  "universe_1_2_3" = callPackage
+    ({ mkDerivation, universe-base, universe-instances-extended
+     , universe-reverse-instances, universe-some
+     }:
+     mkDerivation {
+       pname = "universe";
+       version = "1.2.3";
+       sha256 = "1miibyzjnmhd5pkhhxg0v58aa4v5p5bbiygnk911366347zh7642";
+       libraryHaskellDepends = [
+         universe-base universe-instances-extended
+         universe-reverse-instances universe-some
+       ];
+       description = "A class for finite and recursively enumerable types";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "universe-base" = callPackage
@@ -315926,6 +317280,20 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "universe-base_1_1_4" = callPackage
+    ({ mkDerivation, base, containers, QuickCheck, tagged, transformers
+     }:
+     mkDerivation {
+       pname = "universe-base";
+       version = "1.1.4";
+       sha256 = "160yyhbvfnl88kbxx4rpmb03b4mqhkig833flqzxq9r96ygmirdf";
+       libraryHaskellDepends = [ base containers tagged transformers ];
+       testHaskellDepends = [ base containers QuickCheck ];
+       description = "A class for finite and recursively enumerable types";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "universe-dependent-sum" = callPackage
     ({ mkDerivation, base, universe-some }:
      mkDerivation {
@@ -315939,6 +317307,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "universe-dependent-sum_1_3_1" = callPackage
+    ({ mkDerivation, base, universe-some }:
+     mkDerivation {
+       pname = "universe-dependent-sum";
+       version = "1.3.1";
+       sha256 = "0nxhw5wbyq0nf6m4kz64815iqwkif8clkg7gd60bbzwzg4wvjgxc";
+       libraryHaskellDepends = [ base universe-some ];
+       description = "Universe instances for types from dependent-sum";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "universe-instances-base" = callPackage
     ({ mkDerivation, base, universe-base }:
      mkDerivation {
@@ -315971,6 +317351,22 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "universe-instances-extended_1_1_4" = callPackage
+    ({ mkDerivation, adjunctions, base, comonad, containers
+     , universe-base
+     }:
+     mkDerivation {
+       pname = "universe-instances-extended";
+       version = "1.1.4";
+       sha256 = "0kvwba4hd4ikwprrcyqh32mvbcy47gs47gc8ssh6m23jlj9rll2h";
+       libraryHaskellDepends = [
+         adjunctions base comonad containers universe-base
+       ];
+       description = "Universe instances for types from selected extra packages";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "universe-instances-trans" = callPackage
     ({ mkDerivation, base, universe-base }:
      mkDerivation {
@@ -315999,6 +317395,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "universe-reverse-instances_1_1_2" = callPackage
+    ({ mkDerivation, base, containers, universe-base }:
+     mkDerivation {
+       pname = "universe-reverse-instances";
+       version = "1.1.2";
+       sha256 = "0kipii0wjsw8zhc8ajr4x7j8jiff4r92bdanpzf6fddzdd6a2ai5";
+       libraryHaskellDepends = [ base containers universe-base ];
+       description = "Instances of standard classes that are made possible by enumerations";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "universe-some" = callPackage
     ({ mkDerivation, base, some, template-haskell, th-abstraction
      , transformers, universe-base
@@ -316016,6 +317424,26 @@ self: {
        testHaskellDepends = [ base some template-haskell universe-base ];
        description = "Universe instances for Some from some";
        license = lib.licenses.bsd3;
+       maintainers = [ lib.maintainers.alexfmpe ];
+     }) {};
+
+  "universe-some_1_2_2" = callPackage
+    ({ mkDerivation, base, some, template-haskell, th-abstraction
+     , transformers, universe-base
+     }:
+     mkDerivation {
+       pname = "universe-some";
+       version = "1.2.2";
+       sha256 = "1w6jd4mn2dzp9p147xwzaaq32l5zm906i8rd3aisw86chq2ivzzb";
+       libraryHaskellDepends = [
+         base some template-haskell th-abstraction transformers
+         universe-base
+       ];
+       testHaskellDepends = [ base some template-haskell universe-base ];
+       description = "Universe instances for Some from some";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "universe-th" = callPackage
@@ -318590,6 +320018,28 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "uuid-types_1_0_6" = callPackage
+    ({ mkDerivation, base, binary, bytestring, deepseq, hashable
+     , QuickCheck, random, tasty, tasty-hunit, tasty-quickcheck
+     , template-haskell, text
+     }:
+     mkDerivation {
+       pname = "uuid-types";
+       version = "1.0.6";
+       sha256 = "0zimp0v7hx073rcb4y9l463jfg4y3yqxdbmw975d6vrx919xj3by";
+       libraryHaskellDepends = [
+         base binary bytestring deepseq hashable random template-haskell
+         text
+       ];
+       testHaskellDepends = [
+         base binary bytestring QuickCheck tasty tasty-hunit
+         tasty-quickcheck template-haskell
+       ];
+       description = "Type definitions for Universally Unique Identifiers";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "uulib" = callPackage
     ({ mkDerivation, base, ghc-prim }:
      mkDerivation {
@@ -319001,8 +320451,8 @@ self: {
        pname = "validation-selective";
        version = "0.2.0.0";
        sha256 = "11s9qsp5w19lbk6vg6psr3864xdsx2kmx3gcmnn2qkx6wsblx24s";
-       revision = "3";
-       editedCabalFile = "079g21xgk02pcw2bfwmr0nx1vaaig7062qxr4zj6i7v12pgnvg35";
+       revision = "4";
+       editedCabalFile = "01q9py4gs3hq1dbiny0irfpirdl1b08nydd56za1nfqf24d7z16c";
        libraryHaskellDepends = [ base deepseq selective ];
        testHaskellDepends = [
          base doctest hedgehog hspec hspec-hedgehog selective text
@@ -320955,6 +322405,7 @@ self: {
        description = "Functor-parametric containers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.alexfmpe ];
        broken = true;
      }) {};
 
@@ -324647,6 +326098,7 @@ self: {
        description = "A fast, light-weight web server for WAI applications";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "warp" = callPackage
@@ -324681,6 +326133,7 @@ self: {
        ];
        description = "A fast, light-weight web server for WAI applications";
        license = lib.licenses.mit;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "warp_3_4_1" = callPackage
@@ -324718,6 +326171,7 @@ self: {
        description = "A fast, light-weight web server for WAI applications";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "warp-dynamic" = callPackage
@@ -326595,6 +328049,8 @@ self: {
        pname = "websockets";
        version = "0.13.0.0";
        sha256 = "1da95b71akggyikbxdmja3gcaqrz8sp6ri5jrsyavc2ickvi9y4s";
+       revision = "2";
+       editedCabalFile = "1wnj6c9vzgnmidxcy6jpv19b73qvnx4irxbqsncd688px7f7766m";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -327172,6 +328628,51 @@ self: {
        mainProgram = "quickstart";
      }) {};
 
+  "what4_1_6" = callPackage
+    ({ mkDerivation, async, attoparsec, base, bifunctors, bimap
+     , BoundedChan, bv-sized, bytestring, concurrent-extra, config-value
+     , containers, contravariant, deepseq, deriving-compat, directory
+     , exceptions, filepath, fingertree, ghc-prim, hashable, hashtables
+     , hedgehog, io-streams, lens, libBF, lumberjack, megaparsec, mtl
+     , ordered-containers, panic, parameterized-utils, parsec
+     , prettyprinter, process, QuickCheck, s-cargot, scientific, stm
+     , tasty, tasty-checklist, tasty-expected-failure, tasty-hedgehog
+     , tasty-hunit, tasty-quickcheck, tasty-sugar, template-haskell
+     , temporary, text, th-lift, th-lift-instances, time, transformers
+     , unliftio, unordered-containers, utf8-string, vector, versions
+     , zenc
+     }:
+     mkDerivation {
+       pname = "what4";
+       version = "1.6";
+       sha256 = "123p9h1fajwf5brv9qbs9kx7w7wwrl6md0arpjsj7klrz14qnn5j";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         async attoparsec base bifunctors bimap BoundedChan bv-sized
+         bytestring concurrent-extra config-value containers deepseq
+         deriving-compat directory exceptions filepath fingertree ghc-prim
+         hashable hashtables io-streams lens libBF megaparsec mtl
+         ordered-containers panic parameterized-utils parsec prettyprinter
+         process s-cargot scientific stm template-haskell temporary text
+         th-lift th-lift-instances time transformers unliftio
+         unordered-containers utf8-string vector versions zenc
+       ];
+       executableHaskellDepends = [ base parameterized-utils ];
+       testHaskellDepends = [
+         async base bv-sized bytestring containers contravariant directory
+         exceptions hedgehog io-streams libBF lumberjack ordered-containers
+         parameterized-utils prettyprinter process QuickCheck tasty
+         tasty-checklist tasty-expected-failure tasty-hedgehog tasty-hunit
+         tasty-quickcheck tasty-sugar temporary text transformers versions
+       ];
+       description = "Solver-agnostic symbolic values support for issuing queries";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "quickstart";
+     }) {};
+
   "wheb-mongo" = callPackage
     ({ mkDerivation, base, bson, mongoDB, mtl, text, Wheb }:
      mkDerivation {
@@ -327231,6 +328732,7 @@ self: {
        libraryHaskellDepends = [ base shelly template-haskell text ];
        description = "Determine the full path to an executable";
        license = lib.licenses.bsd3;
+       maintainers = [ lib.maintainers.alexfmpe ];
      }) {};
 
   "while-lang-parser" = callPackage
@@ -327818,6 +329320,26 @@ self: {
        maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
+  "witch_1_2_1_1" = callPackage
+    ({ mkDerivation, base, bytestring, containers, HUnit, tagged
+     , template-haskell, text, time, transformers
+     }:
+     mkDerivation {
+       pname = "witch";
+       version = "1.2.1.1";
+       sha256 = "0zllz1wg2jpldjnyjkswrshs3agr8bbqnb6agv4avfgvffpj0rw1";
+       libraryHaskellDepends = [
+         base bytestring containers tagged template-haskell text time
+       ];
+       testHaskellDepends = [
+         base bytestring containers HUnit tagged text time transformers
+       ];
+       description = "Convert values from one type into another";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.maralorn ];
+     }) {};
+
   "with-index" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -327918,8 +329440,8 @@ self: {
        pname = "witherable";
        version = "0.4.2";
        sha256 = "0121ic4xkv3k568j23zp22a5lrv0k11h94fq7cbijd18fjr2n3br";
-       revision = "4";
-       editedCabalFile = "1f6kb8cslgqq4x3mbg1gcxfbd9qb5a8hmrv802mm7zzhbnridiff";
+       revision = "5";
+       editedCabalFile = "1z16l02afhc69j8jjmlp9pfh8radd5sv4alwk3m7lx6lql7b3iph";
        libraryHaskellDepends = [
          base base-orphans containers hashable indexed-traversable
          indexed-traversable-instances transformers unordered-containers
@@ -327933,6 +329455,30 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "witherable_0_5" = callPackage
+    ({ mkDerivation, base, base-orphans, containers, hashable
+     , indexed-traversable, indexed-traversable-instances, QuickCheck
+     , quickcheck-instances, tasty, tasty-quickcheck, transformers
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "witherable";
+       version = "0.5";
+       sha256 = "1lccj7s6b2x3w1zq15fffwxwj9yqq0z0ra9k06y3rcb5wk0lqhs8";
+       libraryHaskellDepends = [
+         base base-orphans containers hashable indexed-traversable
+         indexed-traversable-instances transformers unordered-containers
+         vector
+       ];
+       testHaskellDepends = [
+         base containers hashable QuickCheck quickcheck-instances tasty
+         tasty-quickcheck transformers unordered-containers vector
+       ];
+       description = "filterable traversable";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "witherable-class" = callPackage
     ({ mkDerivation, base, witherable }:
      mkDerivation {
@@ -329758,6 +331304,23 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "wuss_2_0_1_9" = callPackage
+    ({ mkDerivation, base, bytestring, crypton-connection, data-default
+     , exceptions, network, websockets
+     }:
+     mkDerivation {
+       pname = "wuss";
+       version = "2.0.1.9";
+       sha256 = "0v3jqyh21iq8d3vkij4gkzdq7ks8ykxi9lz2v4caskwvnj5bdvs9";
+       libraryHaskellDepends = [
+         base bytestring crypton-connection data-default exceptions network
+         websockets
+       ];
+       description = "Secure WebSocket (WSS) clients";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "wx" = callPackage
     ({ mkDerivation, base, stm, time, wxcore }:
      mkDerivation {
@@ -331178,8 +332741,8 @@ self: {
        pname = "xml-lens";
        version = "0.3.1";
        sha256 = "0i6c4xqacinhxnyszzna7s9x79rrcs1c7jq6zimcwh4302l5d6cm";
-       revision = "2";
-       editedCabalFile = "0n4clndkzg6cjw0slkbrn64byzdnlsxrf6va3xgvsry9d1i18ihf";
+       revision = "3";
+       editedCabalFile = "1zwkii9klqaknnf06h56nvh9090xczqff1mq89mq7wk9y585qd3s";
        libraryHaskellDepends = [
          base case-insensitive containers lens text xml-conduit
        ];
@@ -334898,8 +336461,6 @@ self: {
        ];
        description = "Add CSP headers to Yesod apps";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "yesod-datatables" = callPackage
@@ -338196,6 +339757,8 @@ self: {
        pname = "zip-archive";
        version = "0.4.3.2";
        sha256 = "0p6b4n4z3qa9f5vh25lqf7b8gdf5qcfs4zsnlzr12m0xgysfdnk1";
+       revision = "1";
+       editedCabalFile = "0vz55ja77fvza28clp1xn92ca1621dqhpb2gm4zi2yjjsp8gc95j";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
diff --git a/pkgs/development/haskell-modules/hoogle.nix b/pkgs/development/haskell-modules/hoogle.nix
index b5be7edb6e5a9..ebd0e15c28009 100644
--- a/pkgs/development/haskell-modules/hoogle.nix
+++ b/pkgs/development/haskell-modules/hoogle.nix
@@ -118,7 +118,7 @@ buildPackages.stdenv.mkDerivation {
   };
 
   meta = {
-    description = "A local Hoogle database";
+    description = "Local Hoogle database";
     platforms = ghc.meta.platforms;
     hydraPlatforms = with lib.platforms; none;
     maintainers = with lib.maintainers; [ ttuegel ];
diff --git a/pkgs/development/haskell-modules/lib/compose.nix b/pkgs/development/haskell-modules/lib/compose.nix
index 09cee08b91c1f..492091ef35fc2 100644
--- a/pkgs/development/haskell-modules/lib/compose.nix
+++ b/pkgs/development/haskell-modules/lib/compose.nix
@@ -290,7 +290,7 @@ rec {
   /* link executables statically against haskell libs to reduce
      closure size
    */
-  justStaticExecutables = overrideCabal (drv: {
+ justStaticExecutables = overrideCabal (drv: {
     enableSharedExecutables = false;
     enableLibraryProfiling = false;
     isLibrary = false;
@@ -300,6 +300,7 @@ rec {
       # Remove every directory which could have links to other store paths.
       rm -rf $out/lib $out/nix-support $out/share/doc
     '';
+    disallowGhcReference = true;
   });
 
   /* Build a source distribution tarball instead of using the source files
diff --git a/pkgs/development/idris-modules/bifunctors.nix b/pkgs/development/idris-modules/bifunctors.nix
index 3461bb37fddb0..8e8ae9d195f34 100644
--- a/pkgs/development/idris-modules/bifunctors.nix
+++ b/pkgs/development/idris-modules/bifunctors.nix
@@ -14,7 +14,7 @@ build-idris-package  {
   };
 
   meta = {
-    description = "A small bifunctor library for idris";
+    description = "Small bifunctor library for idris";
     homepage = "https://github.com/japesinator/Idris-Bifunctors";
     maintainers = [ lib.maintainers.brainrape ];
   };
diff --git a/pkgs/development/idris-modules/config.nix b/pkgs/development/idris-modules/config.nix
index 49c6efdd737e5..53d423f728f01 100644
--- a/pkgs/development/idris-modules/config.nix
+++ b/pkgs/development/idris-modules/config.nix
@@ -20,7 +20,7 @@ build-idris-package  {
   };
 
   meta = {
-    description = "Parsers for various configuration files written in Idris.";
+    description = "Parsers for various configuration files written in Idris";
     homepage = "https://github.com/benclifford/idris-config";
     license = lib.licenses.bsd3;
     maintainers = [ lib.maintainers.brainrape ];
diff --git a/pkgs/development/idris-modules/console.nix b/pkgs/development/idris-modules/console.nix
index 30cefa45810d4..e8c41e200db1d 100644
--- a/pkgs/development/idris-modules/console.nix
+++ b/pkgs/development/idris-modules/console.nix
@@ -19,7 +19,7 @@ build-idris-package  {
   };
 
   meta = {
-    description = "An Idris library to interact with the browser console";
+    description = "Idris library to interact with the browser console";
     homepage = "https://github.com/pierrebeaucamp/idris-console";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.brainrape ];
diff --git a/pkgs/development/idris-modules/containers.nix b/pkgs/development/idris-modules/containers.nix
index dfe85aa7b8af9..2b3ee40437362 100644
--- a/pkgs/development/idris-modules/containers.nix
+++ b/pkgs/development/idris-modules/containers.nix
@@ -18,7 +18,7 @@ build-idris-package  {
   };
 
   meta = {
-    description = "Various data structures for use in the Idris Language.";
+    description = "Various data structures for use in the Idris Language";
     homepage = "https://github.com/jfdm/idris-containers";
     license = lib.licenses.bsd3;
     maintainers = [ lib.maintainers.brainrape ];
diff --git a/pkgs/development/idris-modules/cube.nix b/pkgs/development/idris-modules/cube.nix
index 60757ec1319b3..09b426c961189 100644
--- a/pkgs/development/idris-modules/cube.nix
+++ b/pkgs/development/idris-modules/cube.nix
@@ -14,7 +14,7 @@ build-idris-package  {
   };
 
   meta = {
-    description = "An implementation of the Lambda Cube in Idris";
+    description = "Implementation of the Lambda Cube in Idris";
     homepage = "https://github.com/aatxe/cube.idr";
     license = lib.licenses.agpl3Only;
     maintainers = [ lib.maintainers.brainrape ];
diff --git a/pkgs/development/idris-modules/default.nix b/pkgs/development/idris-modules/default.nix
index 59069d878996e..6ab2c28be3992 100644
--- a/pkgs/development/idris-modules/default.nix
+++ b/pkgs/development/idris-modules/default.nix
@@ -153,8 +153,7 @@
 
     refined = callPackage ./refined.nix {};
 
-    sdl = callPackage ./sdl.nix {};
-
+    sdl = throw "'idrisPackages.sdl' has been removed, as it was broken and unmaintained"; # added 2024-05-09
     sdl2 = callPackage ./sdl2.nix {};
 
     semidirect = callPackage ./semidirect.nix {};
diff --git a/pkgs/development/idris-modules/hezarfen.nix b/pkgs/development/idris-modules/hezarfen.nix
index 881b65b2b8b47..124c16759081f 100644
--- a/pkgs/development/idris-modules/hezarfen.nix
+++ b/pkgs/development/idris-modules/hezarfen.nix
@@ -14,7 +14,7 @@ build-idris-package  {
   };
 
   meta = {
-    description = "a theorem prover for intuitionistic propositional logic in Idris, with metaprogramming features";
+    description = "Theorem prover for intuitionistic propositional logic in Idris, with metaprogramming features";
     homepage = "https://github.com/joom/hezarfen";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.brainrape ];
diff --git a/pkgs/development/idris-modules/http.nix b/pkgs/development/idris-modules/http.nix
index d952dca54a3d5..09e4e555264c6 100644
--- a/pkgs/development/idris-modules/http.nix
+++ b/pkgs/development/idris-modules/http.nix
@@ -19,7 +19,7 @@ build-idris-package  {
   };
 
   meta = {
-    description = "An HTTP library for idris";
+    description = "HTTP library for idris";
     homepage = "https://github.com/uwap/idris-http";
     license = lib.licenses.bsd2;
     maintainers = [ lib.maintainers.brainrape ];
diff --git a/pkgs/development/idris-modules/http4idris.nix b/pkgs/development/idris-modules/http4idris.nix
index 6959e33f48a8a..3e235750a6bcf 100644
--- a/pkgs/development/idris-modules/http4idris.nix
+++ b/pkgs/development/idris-modules/http4idris.nix
@@ -17,7 +17,7 @@ build-idris-package  {
   };
 
   meta = {
-    description = "An experimental HTTP framework for Idris";
+    description = "Experimental HTTP framework for Idris";
     homepage = "https://github.com/A1kmm/http4idris";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.brainrape ];
diff --git a/pkgs/development/idris-modules/mhd.nix b/pkgs/development/idris-modules/mhd.nix
index dc3a05f2b5a18..d47e0b46db35f 100644
--- a/pkgs/development/idris-modules/mhd.nix
+++ b/pkgs/development/idris-modules/mhd.nix
@@ -22,7 +22,7 @@ build-idris-package  {
   };
 
   meta = {
-    description = "A binding of the GNU libmicrohttpd library to the Idris C backend";
+    description = "Binding of the GNU libmicrohttpd library to the Idris C backend";
     homepage = "https://github.com/colin-adams/idris-libmicrohttpd";
     license = lib.licenses.lgpl21;
     maintainers = [ lib.maintainers.brainrape ];
diff --git a/pkgs/development/idris-modules/patricia.nix b/pkgs/development/idris-modules/patricia.nix
index a5cb0c6af00ed..21907f15da810 100644
--- a/pkgs/development/idris-modules/patricia.nix
+++ b/pkgs/development/idris-modules/patricia.nix
@@ -17,7 +17,7 @@ build-idris-package  {
   };
 
   meta = {
-    description = "Immutable map from integer keys to values based on patricia tree. Basically persistent array.";
+    description = "Immutable map from integer keys to values based on patricia tree. Basically persistent array";
     homepage = "https://github.com/ChShersh/idris-patricia";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.brainrape ];
diff --git a/pkgs/development/idris-modules/posix.nix b/pkgs/development/idris-modules/posix.nix
index 13588155989ab..cc34c9007272f 100644
--- a/pkgs/development/idris-modules/posix.nix
+++ b/pkgs/development/idris-modules/posix.nix
@@ -17,7 +17,7 @@ build-idris-package  {
   doCheck = false;
 
   meta = {
-    description = "System POSIX bindings for Idris.";
+    description = "System POSIX bindings for Idris";
     homepage = "https://github.com/idris-hackers/idris-posix";
     maintainers = [ lib.maintainers.brainrape ];
   };
diff --git a/pkgs/development/idris-modules/rationals.nix b/pkgs/development/idris-modules/rationals.nix
index 9513b79e1aa77..a220287bdbb6d 100644
--- a/pkgs/development/idris-modules/rationals.nix
+++ b/pkgs/development/idris-modules/rationals.nix
@@ -17,7 +17,7 @@ build-idris-package {
   };
 
   meta = {
-    description = "An idris rational number type built from paths in the Stern Brocot tree";
+    description = "Idris rational number type built from paths in the Stern Brocot tree";
     homepage = "https://github.com/mcgordonite/idris-binary-rationals";
     maintainers = [ lib.maintainers.brainrape ];
   };
diff --git a/pkgs/development/idris-modules/sdl.nix b/pkgs/development/idris-modules/sdl.nix
deleted file mode 100644
index 59e3ac916e4fe..0000000000000
--- a/pkgs/development/idris-modules/sdl.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ build-idris-package
-, fetchFromGitHub
-, effects
-, lib
-, SDL
-, SDL_gfx
-}:
-build-idris-package  {
-  pname = "sdl";
-  version = "2017-03-24";
-
-  idrisDeps = [ effects ];
-
-  extraBuildInputs = [ SDL SDL_gfx ];
-
-  src = fetchFromGitHub {
-    owner = "edwinb";
-    repo = "SDL-idris";
-    rev = "095ce70da7ea9f163b018b690105edf375f1befe";
-    sha256 = "0nryssnaqfq2pvz2mbl2kkx6mig310f9dpgrbcx788nxi0qzsig6";
-  };
-
-  meta = {
-    description = "SDL-idris framework for Idris";
-    homepage = "https://github.com/edwinb/SDL-idris";
-    maintainers = [ lib.maintainers.brainrape ];
-    # Can't find file sdlrun.o
-    broken = true;
-  };
-}
diff --git a/pkgs/development/idris-modules/specdris.nix b/pkgs/development/idris-modules/specdris.nix
index 172a46b65a550..ec692951ab755 100644
--- a/pkgs/development/idris-modules/specdris.nix
+++ b/pkgs/development/idris-modules/specdris.nix
@@ -20,7 +20,7 @@ build-idris-package {
   doCheck = false;
 
   meta = {
-    description = "A testing library for Idris";
+    description = "Testing library for Idris";
     homepage = "https://github.com/pheymann/specdris";
     license = lib.licenses.mit;
   };
diff --git a/pkgs/development/idris-modules/tap.nix b/pkgs/development/idris-modules/tap.nix
index 8db71b9cb0abe..24aa3282f3198 100644
--- a/pkgs/development/idris-modules/tap.nix
+++ b/pkgs/development/idris-modules/tap.nix
@@ -18,7 +18,7 @@ build-idris-package  {
   };
 
   meta = {
-    description = "A simple TAP producer and consumer/reporter for Idris";
+    description = "Simple TAP producer and consumer/reporter for Idris";
     homepage = "https://github.com/ostera/tap-idris";
     license = lib.licenses.bsd3;
     maintainers = [ lib.maintainers.brainrape ];
diff --git a/pkgs/development/interpreters/acl2/default.nix b/pkgs/development/interpreters/acl2/default.nix
index bbb02e2fabc98..d1f64918c8249 100644
--- a/pkgs/development/interpreters/acl2/default.nix
+++ b/pkgs/development/interpreters/acl2/default.nix
@@ -112,7 +112,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An interpreter and a prover for a Lisp dialect";
+    description = "Interpreter and a prover for a Lisp dialect";
     mainProgram = "acl2";
     longDescription = ''
       ACL2 is a logic and programming language in which you can model computer
diff --git a/pkgs/development/interpreters/alda/default.nix b/pkgs/development/interpreters/alda/default.nix
index 269b8258aa4e1..f9711c16a5731 100644
--- a/pkgs/development/interpreters/alda/default.nix
+++ b/pkgs/development/interpreters/alda/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = with lib; {
-    description = "A music programming language for musicians";
+    description = "Music programming language for musicians";
     homepage = "https://alda.io";
     license = licenses.epl10;
     maintainers = [ maintainers.ericdallo ];
diff --git a/pkgs/development/interpreters/asmrepl/default.nix b/pkgs/development/interpreters/asmrepl/default.nix
index a046a3c601758..1c9ea6338f65b 100644
--- a/pkgs/development/interpreters/asmrepl/default.nix
+++ b/pkgs/development/interpreters/asmrepl/default.nix
@@ -8,7 +8,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "asmrepl";
 
   meta = with lib; {
-    description = "A REPL for x86-64 assembly language";
+    description = "REPL for x86-64 assembly language";
     homepage = "https://github.com/tenderlove/asmrepl";
     license = licenses.asl20;
     maintainers = with maintainers; [ lom ];
diff --git a/pkgs/development/interpreters/babashka/default.nix b/pkgs/development/interpreters/babashka/default.nix
index 4b8376a330906..26e16afe69c0f 100644
--- a/pkgs/development/interpreters/babashka/default.nix
+++ b/pkgs/development/interpreters/babashka/default.nix
@@ -73,7 +73,7 @@ let
     '';
 
     meta = with lib; {
-      description = "A Clojure babushka for the grey areas of Bash";
+      description = "Clojure babushka for the grey areas of Bash";
       longDescription = ''
         The main idea behind babashka is to leverage Clojure in places where you
         would be using bash otherwise.
diff --git a/pkgs/development/interpreters/bic/default.nix b/pkgs/development/interpreters/bic/default.nix
index 52dc7ac31c537..669cb4f723ac6 100644
--- a/pkgs/development/interpreters/bic/default.nix
+++ b/pkgs/development/interpreters/bic/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A C interpreter and API explorer";
+    description = "C interpreter and API explorer";
     mainProgram = "bic";
     longDescription = ''
       bic This a project that allows developers to explore and test C-APIs using a
diff --git a/pkgs/development/interpreters/bqn/cbqn/cbqn-bytecode.nix b/pkgs/development/interpreters/bqn/cbqn/cbqn-bytecode.nix
deleted file mode 100644
index d311f3d61ebd4..0000000000000
--- a/pkgs/development/interpreters/bqn/cbqn/cbqn-bytecode.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib
-, fetchFromGitHub
-, stdenvNoCC
-}:
-
-stdenvNoCC.mkDerivation {
-  pname = "cbqn-bytecode";
-  version = "unstable-2023-05-17";
-
-  src = fetchFromGitHub {
-    owner = "dzaima";
-    repo = "cbqnBytecode";
-    rev = "32db4dfbfc753835bf112f3d8ae2991d8aebbe3d";
-    hash = "sha256-9uBPrEESn/rB9u0xXwKaQ7ABveQWPc8LRMPlnI/79kg=";
-  };
-
-  dontConfigure = true;
-  dontBuild = true;
-
-  installPhase = ''
-    runHook preInstall
-
-    install -D $src/gen/{compiles,explain,formatter,runtime0,runtime1,runtime1x,src} -t $out/dev
-
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/dzaima/cbqnBytecode";
-    description = "CBQN precompiled bytecode";
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ AndersonTorres sternenseemann synthetica shnarazk detegr ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/development/interpreters/bqn/cbqn/default.nix b/pkgs/development/interpreters/bqn/cbqn/default.nix
index 6f5b889883910..2f4d7f08931a8 100644
--- a/pkgs/development/interpreters/bqn/cbqn/default.nix
+++ b/pkgs/development/interpreters/bqn/cbqn/default.nix
@@ -1,53 +1,35 @@
-{ callPackage
-, lib
-, stdenv
-, stdenvNoCC
-, fetchFromGitHub
+{ lib
+, callPackage
 , fixDarwinDylibNames
-, genBytecode ? false
-, bqn-path ? null
+, libffi
 , mbqn-source
+, pkg-config
+, stdenv
+# Boolean flags
 , enableReplxx ? false
 , enableLibcbqn ? ((stdenv.hostPlatform.isLinux || stdenv.hostPlatform.isDarwin) && !enableReplxx)
-, libffi
-, pkg-config
+, generateBytecode ? false
+# "Configurable" options
+, bqn-interpreter
 }:
 
 let
-  cbqn-bytecode-submodule =
-    callPackage ./cbqn-bytecode.nix { inherit lib fetchFromGitHub stdenvNoCC; };
-  replxx-submodule = callPackage ./replxx.nix { inherit lib fetchFromGitHub stdenvNoCC; };
-  singeli-submodule = callPackage ./singeli.nix { inherit lib fetchFromGitHub stdenvNoCC; };
+  sources = callPackage ./sources.nix { };
 in
-assert genBytecode -> ((bqn-path != null) && (mbqn-source != null));
-
 stdenv.mkDerivation rec {
-  pname = "cbqn" + lib.optionalString (!genBytecode) "-standalone";
-  version = "0.5.0";
-
-  src = fetchFromGitHub {
-    owner = "dzaima";
-    repo = "CBQN";
-    rev = "v${version}";
-    hash = "sha256-PCpePevWQ+aPG6Yx3WqBZ4yTeyJsCGkYMSY6kzGDL1U=";
-  };
+  pname = "cbqn" + lib.optionalString (!generateBytecode) "-standalone";
+  inherit (sources.cbqn) version src;
 
   nativeBuildInputs = [
     pkg-config
-  ] ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
+    fixDarwinDylibNames
+  ];
 
   buildInputs = [
     libffi
   ];
 
-  dontConfigure = true;
-  doInstallCheck = true;
-
-  postPatch = ''
-    sed -i '/SHELL =.*/ d' makefile
-    patchShebangs build/build
-  '';
-
   makeFlags = [
     "CC=${stdenv.cc.targetPrefix}cc"
   ];
@@ -64,19 +46,6 @@ stdenv.mkDerivation rec {
     "shared-o3"
   ];
 
-  preBuild = ''
-    # Purity: avoids git downloading bytecode files
-    mkdir -p build/bytecodeLocal/gen
-    cp -r ${singeli-submodule}/dev/* build/singeliLocal/
-  '' + (if genBytecode then ''
-    ${bqn-path} ./build/genRuntime ${mbqn-source} build/bytecodeLocal/
-  '' else ''
-    cp -r ${cbqn-bytecode-submodule}/dev/* build/bytecodeLocal/gen/
-  '')
-  + lib.optionalString enableReplxx ''
-    cp -r ${replxx-submodule}/dev/* build/replxxLocal/
-  '';
-
   outputs = [
     "out"
   ] ++ lib.optionals enableLibcbqn [
@@ -84,6 +53,32 @@ stdenv.mkDerivation rec {
     "dev"
   ];
 
+  dontConfigure = true;
+
+  doInstallCheck = true;
+
+  strictDeps = true;
+
+  postPatch = ''
+    sed -i '/SHELL =.*/ d' makefile
+    patchShebangs build/build
+  '';
+
+  preBuild = ''
+    mkdir -p build/singeliLocal/
+    cp -r ${sources.singeli.src}/* build/singeliLocal/
+  '' + (if generateBytecode then ''
+    mkdir -p build/bytecodeLocal/gen
+    ${bqn-interpreter} ./build/genRuntime ${mbqn-source} build/bytecodeLocal/
+  '' else ''
+    mkdir -p build/bytecodeLocal/gen
+    cp -r ${sources.cbqn-bytecode.src}/* build/bytecodeLocal/
+  '')
+  + lib.optionalString enableReplxx ''
+    mkdir -p build/replxxLocal/
+    cp -r ${sources.replxx.src}/* build/replxxLocal/
+  '';
+
   installPhase = ''
     runHook preInstall
 
@@ -121,12 +116,26 @@ stdenv.mkDerivation rec {
     runHook postInstallCheck
   '';
 
-  meta = with lib; {
+  meta = {
     homepage = "https://github.com/dzaima/CBQN/";
     description = "BQN implementation in C";
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ AndersonTorres sternenseemann synthetica shnarazk detegr ];
-    platforms = platforms.all;
+    license = with lib.licenses; [
+      # https://github.com/dzaima/CBQN?tab=readme-ov-file#licensing
+      asl20
+      boost
+      gpl3Only
+      lgpl3Only
+      mit
+      mpl20
+    ];
     mainProgram = "cbqn";
+    maintainers = with lib.maintainers; [
+      AndersonTorres
+      detegr
+      shnarazk
+      sternenseemann
+      synthetica
+    ];
+    platforms = lib.platforms.all;
   };
 }
diff --git a/pkgs/development/interpreters/bqn/cbqn/replxx.nix b/pkgs/development/interpreters/bqn/cbqn/replxx.nix
deleted file mode 100644
index 71b479a4cda48..0000000000000
--- a/pkgs/development/interpreters/bqn/cbqn/replxx.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ lib
-, fetchFromGitHub
-, stdenvNoCC
-}:
-
-stdenvNoCC.mkDerivation {
-  pname = "replxx";
-  version = "unstable-2023-10-31";
-
-  src = fetchFromGitHub {
-    owner = "dzaima";
-    repo = "replxx";
-    rev = "13f7b60f4f79c2f14f352a76d94860bad0fc7ce9";
-    hash = "sha256-xPuQ5YBDSqhZCwssbaN/FcTZlc3ampYl7nfl2bbsgBA=";
-  };
-
-  dontConfigure = true;
-  # The CBQN derivation will build replxx, here we just provide the source files.
-  dontBuild = true;
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/dev
-    cp -r $src $out/dev
-
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/dzaima/replxx";
-    description = "A replxx fork for CBQN";
-    license = licenses.free;
-    maintainers = with maintainers; [ AndersonTorres sternenseemann synthetica shnarazk detegr ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/development/interpreters/bqn/cbqn/singeli.nix b/pkgs/development/interpreters/bqn/cbqn/singeli.nix
deleted file mode 100644
index 212b96b6cb3f0..0000000000000
--- a/pkgs/development/interpreters/bqn/cbqn/singeli.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ lib
-, fetchFromGitHub
-, stdenvNoCC
-}:
-
-stdenvNoCC.mkDerivation {
-  pname = "singeli";
-  version = "unstable-2023-11-22";
-
-  src = fetchFromGitHub {
-    owner = "mlochbaum";
-    repo = "Singeli";
-    rev = "528faaf9e2a7f4f3434365bcd91d6c18c87c4f08";
-    hash = "sha256-/z1KHqflCqPGC9JU80jtgqdk2mkX06eWSziuf4TU4TM=";
-  };
-
-  dontConfigure = true;
-  # The CBQN derivation will build Singeli, here we just provide the source files.
-  dontBuild = true;
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/dev
-    cp -r $src $out/dev
-
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/mlochbaum/Singeli";
-    description = "A metaprogramming DSL for SIMD";
-    license = licenses.isc;
-    maintainers = with maintainers; [ AndersonTorres sternenseemann synthetica shnarazk detegr ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/development/interpreters/bqn/cbqn/sources.nix b/pkgs/development/interpreters/bqn/cbqn/sources.nix
new file mode 100644
index 0000000000000..3b9ca78533e36
--- /dev/null
+++ b/pkgs/development/interpreters/bqn/cbqn/sources.nix
@@ -0,0 +1,60 @@
+# Sources required to build CBQN
+# Update them all at the same time, or else misbuilds will happen!
+# TODO: automate the update of this file
+
+{
+  fetchFromGitHub,
+}:
+
+{
+  cbqn = let
+    self = {
+      pname = "cbqn";
+      version = "0.7.0";
+
+      src = fetchFromGitHub {
+        owner = "dzaima";
+        repo = "CBQN";
+        rev = "v${self.version}";
+        hash = "sha256-TUK0HrJ1IyiVi9Y3S1IrK/d4/EZxdRdWyxsAwj79KEc=";
+      };
+    };
+  in
+    self;
+
+  cbqn-bytecode = {
+    pname = "cbqn-bytecode";
+    version = "0-unstable-2024-05-22";
+
+    src = fetchFromGitHub {
+      owner = "dzaima";
+      repo = "cbqnBytecode";
+      rev = "c5674783c11d7569e5a4d166600ffcde2409331d";
+      hash = "sha256-y7gqHzUxVUUVryutlq3Upuso8r3ZRSyF7ydMg1OVlwA=";
+    };
+  };
+
+  replxx = {
+    pname = "replxx";
+    version = "0-unstable-2023-10-31";
+
+    src = fetchFromGitHub {
+      owner = "dzaima";
+      repo = "replxx";
+      rev = "13f7b60f4f79c2f14f352a76d94860bad0fc7ce9";
+      hash = "sha256-xPuQ5YBDSqhZCwssbaN/FcTZlc3ampYl7nfl2bbsgBA=";
+    };
+  };
+
+  singeli = {
+    pname = "singeli";
+    version = "0-unstable-2024-02-26";
+
+    src = fetchFromGitHub {
+      owner = "mlochbaum";
+      repo = "Singeli";
+      rev = "ce6ef5d06d35777f0016bbfe0c6c1cf6a9c1b48e";
+      hash = "sha256-dDoWoq4LYMD2CKyPxXDAwoeH2E+f0FDyvngtWPEr67w=";
+    };
+  };
+}
diff --git a/pkgs/development/interpreters/bqn/mlochbaum-bqn/default.nix b/pkgs/development/interpreters/bqn/mlochbaum-bqn/default.nix
deleted file mode 100644
index d217ec99ebe5a..0000000000000
--- a/pkgs/development/interpreters/bqn/mlochbaum-bqn/default.nix
+++ /dev/null
@@ -1,64 +0,0 @@
-{ lib
-, stdenvNoCC
-, fetchFromGitHub
-, makeWrapper
-, nodejs
-}:
-
-stdenvNoCC.mkDerivation rec {
-  pname = "bqn";
-  version = "unstable-2023-05-17";
-
-  src = fetchFromGitHub {
-    owner = "mlochbaum";
-    repo = "BQN";
-    rev = "070bd07dc10c291695215265218ec0ff856ce457";
-    hash = "sha256-GRIIzJwlJ+JTBHXZjoX/9vLFbAC7zyeuqVcrA/Jm/NA=";
-  };
-
-  nativeBuildInputs = [ makeWrapper ];
-
-  buildInputs = [ nodejs ];
-
-  patches = [
-    # Creates a @libbqn@ substitution variable, to be filled in the fixupPhase
-    ./001-libbqn-path.patch
-  ];
-
-  dontConfigure = true;
-
-  dontBuild = true;
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/bin $out/share/${pname}
-    cp bqn.js $out/share/${pname}/bqn.js
-    cp docs/bqn.js $out/share/${pname}/libbqn.js
-
-    makeWrapper "${lib.getBin nodejs}/bin/node" "$out/bin/mbqn" \
-      --add-flags "$out/share/${pname}/bqn.js"
-
-    ln -s $out/bin/mbqn $out/bin/bqn
-
-    runHook postInstall
-  '';
-
-  fixupPhase = ''
-    runHook preFixup
-
-    substituteInPlace $out/share/${pname}/bqn.js \
-      --subst-var-by "libbqn" "$out/share/${pname}/libbqn.js"
-
-    runHook postFixup
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/mlochbaum/BQN/";
-    description = "The original BQN implementation in Javascript";
-    license = licenses.isc;
-    maintainers = with maintainers; [ AndersonTorres ];
-    platforms = platforms.all;
-  };
-}
-# TODO: install docs and other stuff
diff --git a/pkgs/development/interpreters/ceptre/default.nix b/pkgs/development/interpreters/ceptre/default.nix
index 28be28f68be61..7022886379080 100644
--- a/pkgs/development/interpreters/ceptre/default.nix
+++ b/pkgs/development/interpreters/ceptre/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A linear logic programming language for modeling generative interactive systems";
+    description = "Linear logic programming language for modeling generative interactive systems";
     mainProgram = "ceptre";
     homepage = "https://github.com/chrisamaphone/interactive-lp";
     maintainers = with maintainers; [ pSub ];
diff --git a/pkgs/development/interpreters/cling/default.nix b/pkgs/development/interpreters/cling/default.nix
index 2f3327b0554a0..2b6d2c26c09f3 100644
--- a/pkgs/development/interpreters/cling/default.nix
+++ b/pkgs/development/interpreters/cling/default.nix
@@ -106,7 +106,7 @@ let
     dontStrip = debug;
 
     meta = with lib; {
-      description = "The Interactive C++ Interpreter";
+      description = "Interactive C++ Interpreter";
       mainProgram = "cling";
       homepage = "https://root.cern/cling/";
       license = with licenses; [ lgpl21 ncsa ];
diff --git a/pkgs/development/interpreters/clips/default.nix b/pkgs/development/interpreters/clips/default.nix
index e79f4a92481f5..c5c4d4321ce13 100644
--- a/pkgs/development/interpreters/clips/default.nix
+++ b/pkgs/development/interpreters/clips/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  version = "6.40";
+  version = "6.4.1";
   pname = "clips";
 
   src = fetchurl {
     url = "mirror://sourceforge/clipsrules/CLIPS/${version}/clips_core_source_${
         builtins.replaceStrings [ "." ] [ "" ] version
       }.tar.gz";
-    sha256 = "1pr5l61zxf6kjs8b2b028g2aq45pigavwjmrf4l5mrdmlnk3fq5d";
+    hash = "sha256-qk87uLFZZL9HNPNlyVh+Mplr3dP1C/z1O5UVS+rnbuM=";
   };
 
   postPatch = ''
@@ -20,11 +20,13 @@ stdenv.mkDerivation rec {
   installPhase = ''
     runHook preInstall
     install -D -t $out/bin core/clips
+    install -D -t $out/lib core/libclips.a
+    install -D -t $out/include core/*.h
     runHook postInstall
   '';
 
   meta = with lib; {
-    description = "A Tool for Building Expert Systems";
+    description = "Tool for Building Expert Systems";
     mainProgram = "clips";
     homepage = "http://www.clipsrules.net/";
     longDescription = ''
diff --git a/pkgs/development/interpreters/clojure/clooj.nix b/pkgs/development/interpreters/clojure/clooj.nix
index 9b93a478aa68d..45659d5633691 100644
--- a/pkgs/development/interpreters/clojure/clooj.nix
+++ b/pkgs/development/interpreters/clojure/clooj.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A lightweight IDE for Clojure";
+    description = "Lightweight IDE for Clojure";
     mainProgram = "clooj";
     homepage = "https://github.com/arthuredelstein/clooj";
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
diff --git a/pkgs/development/interpreters/clojure/default.nix b/pkgs/development/interpreters/clojure/default.nix
index 8fd965874faed..77bfda26bd7ce 100644
--- a/pkgs/development/interpreters/clojure/default.nix
+++ b/pkgs/development/interpreters/clojure/default.nix
@@ -75,7 +75,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.jdk = jdk;
 
   meta = with lib; {
-    description = "A Lisp dialect for the JVM";
+    description = "Lisp dialect for the JVM";
     homepage = "https://clojure.org/";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.epl10;
diff --git a/pkgs/development/interpreters/cyber/default.nix b/pkgs/development/interpreters/cyber/default.nix
index 710ec991edd0e..2ef863de5dfae 100644
--- a/pkgs/development/interpreters/cyber/default.nix
+++ b/pkgs/development/interpreters/cyber/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A fast, efficient, and concurrent scripting language";
+    description = "Fast, efficient, and concurrent scripting language";
     mainProgram = "cyber";
     homepage = "https://github.com/fubark/cyber";
     license = licenses.mit;
diff --git a/pkgs/development/interpreters/cyclone/default.nix b/pkgs/development/interpreters/cyclone/default.nix
index 7364cf7d4400c..d5a31c7aeb766 100644
--- a/pkgs/development/interpreters/cyclone/default.nix
+++ b/pkgs/development/interpreters/cyclone/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://justinethier.github.io/cyclone/";
-    description = "A brand-new compiler that allows practical application development using R7RS Scheme";
+    description = "Brand-new compiler that allows practical application development using R7RS Scheme";
     license = licenses.mit;
     maintainers = with maintainers; [ siraben ];
   };
diff --git a/pkgs/development/interpreters/duktape/default.nix b/pkgs/development/interpreters/duktape/default.nix
index 8477aef9ca43c..8e33a5013ff54 100644
--- a/pkgs/development/interpreters/duktape/default.nix
+++ b/pkgs/development/interpreters/duktape/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, validatePkgConfig }:
+{ lib, stdenv, fetchurl, fixDarwinDylibNames, validatePkgConfig }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "duktape";
@@ -11,7 +11,8 @@ stdenv.mkDerivation (finalAttrs: {
   # https://github.com/svaarala/duktape/issues/2464
   LDFLAGS = [ "-lm" ];
 
-  nativeBuildInputs = [ validatePkgConfig ];
+  nativeBuildInputs = [ validatePkgConfig ]
+  ++ lib.optionals stdenv.hostPlatform.isDarwin [ fixDarwinDylibNames ];
 
   buildPhase = ''
     make -f Makefile.sharedlibrary
@@ -30,7 +31,7 @@ stdenv.mkDerivation (finalAttrs: {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "An embeddable Javascript engine, with a focus on portability and compact footprint";
+    description = "Embeddable Javascript engine, with a focus on portability and compact footprint";
     homepage = "https://duktape.org/";
     downloadPage = "https://duktape.org/download.html";
     license = licenses.mit;
diff --git a/pkgs/development/interpreters/dzaima-apl/default.nix b/pkgs/development/interpreters/dzaima-apl/default.nix
index e0a8478297773..75e49ed602df2 100644
--- a/pkgs/development/interpreters/dzaima-apl/default.nix
+++ b/pkgs/development/interpreters/dzaima-apl/default.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/dzaima/APL";
-    description = "An APL implementation in Java" + lib.optionalString buildNativeImage ", compiled as a native image";
+    description = "APL implementation in Java" + lib.optionalString buildNativeImage ", compiled as a native image";
     license = licenses.mit;
     maintainers = with maintainers; [ AndersonTorres ];
     inherit (jdk.meta) platforms;
diff --git a/pkgs/development/interpreters/eff/default.nix b/pkgs/development/interpreters/eff/default.nix
index db815c281609b..998efe0c790e1 100644
--- a/pkgs/development/interpreters/eff/default.nix
+++ b/pkgs/development/interpreters/eff/default.nix
@@ -23,7 +23,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://www.eff-lang.org";
-    description = "A functional programming language based on algebraic effects and their handlers";
+    description = "Functional programming language based on algebraic effects and their handlers";
     mainProgram = "eff";
     longDescription = ''
       Eff is a functional language with handlers of not only exceptions,
diff --git a/pkgs/development/interpreters/elixir/1.17.nix b/pkgs/development/interpreters/elixir/1.17.nix
new file mode 100644
index 0000000000000..32b09d76384ee
--- /dev/null
+++ b/pkgs/development/interpreters/elixir/1.17.nix
@@ -0,0 +1,8 @@
+{ mkDerivation }:
+mkDerivation {
+  version = "1.17.1";
+  sha256 = "sha256-a7A+426uuo3bUjggkglY1lqHmSbZNpjPaFpQUXYtW9k=";
+  # https://hexdocs.pm/elixir/1.17.1/compatibility-and-deprecations.html#compatibility-between-elixir-and-erlang-otp
+  minimumOTPVersion = "25";
+  escriptPath = "lib/elixir/scripts/generate_app.escript";
+}
diff --git a/pkgs/development/interpreters/elixir/generic-builder.nix b/pkgs/development/interpreters/elixir/generic-builder.nix
index 7901d24d0f771..e1e14f14dee19 100644
--- a/pkgs/development/interpreters/elixir/generic-builder.nix
+++ b/pkgs/development/interpreters/elixir/generic-builder.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation ({
   pos = builtins.unsafeGetAttrPos "sha256" args;
   meta = with lib; {
     homepage = "https://elixir-lang.org/";
-    description = "A functional, meta-programming aware language built on top of the Erlang VM";
+    description = "Functional, meta-programming aware language built on top of the Erlang VM";
 
     longDescription = ''
       Elixir is a functional, meta-programming aware language built on
diff --git a/pkgs/development/interpreters/emilua/default.nix b/pkgs/development/interpreters/emilua/default.nix
index e71c47ae59cbc..396164b14a891 100644
--- a/pkgs/development/interpreters/emilua/default.nix
+++ b/pkgs/development/interpreters/emilua/default.nix
@@ -98,13 +98,11 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  # Skipped test: libpsx
-  # Known issue with no-new-privs disabled in the Nix build environment.
-  checkPhase = ''
-    runHook preCheck
-    meson test --print-errorlogs --no-suite libpsx
-    runHook postCheck
-  '';
+  mesonCheckFlags = [
+    # Skipped test: libpsx
+    # Known issue with no-new-privs disabled in the Nix build environment.
+    "--no-suite" "libpsx"
+  ];
 
   meta = with lib; {
     description = "Lua execution engine";
diff --git a/pkgs/development/interpreters/erlang/generic-builder.nix b/pkgs/development/interpreters/erlang/generic-builder.nix
index 2f3b6de7d11c8..ff8aadf90980f 100644
--- a/pkgs/development/interpreters/erlang/generic-builder.nix
+++ b/pkgs/development/interpreters/erlang/generic-builder.nix
@@ -11,6 +11,7 @@
 , ncurses
 , openssl
 , perl
+, runtimeShell
 , autoconf
 , openjdk11 ? null # javacSupport
 , unixODBC ? null # odbcSupport
@@ -115,6 +116,9 @@ stdenv.mkDerivation ({
     patchShebangs make
 
     ${postPatch}
+  '' + optionalString (lib.versionOlder "25" version) ''
+    substituteInPlace lib/os_mon/src/disksup.erl \
+      --replace-fail '"sh ' '"${runtimeShell} '
   '';
 
   # For OTP 27+ we need ex_doc to build the documentation
diff --git a/pkgs/development/interpreters/evcxr/default.nix b/pkgs/development/interpreters/evcxr/default.nix
index 0cb4bef01669f..6d64e76b816c1 100644
--- a/pkgs/development/interpreters/evcxr/default.nix
+++ b/pkgs/development/interpreters/evcxr/default.nix
@@ -40,7 +40,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "An evaluation context for Rust";
+    description = "Evaluation context for Rust";
     homepage = "https://github.com/google/evcxr";
     license = licenses.asl20;
     maintainers = with maintainers; [ protoben ma27 ];
diff --git a/pkgs/development/interpreters/expr/default.nix b/pkgs/development/interpreters/expr/default.nix
index 2652c6b2a5afa..33dce18738e9b 100644
--- a/pkgs/development/interpreters/expr/default.nix
+++ b/pkgs/development/interpreters/expr/default.nix
@@ -5,18 +5,18 @@
 
 buildGoModule rec {
   pname = "expr";
-  version = "1.16.5";
+  version = "1.16.9";
 
   src = fetchFromGitHub {
     owner = "antonmedv";
     repo = "expr";
     rev = "v${version}";
-    hash = "sha256-tvOqIkekG4GaH6A5XhvpjZxFySrpZxmuhx4aXH77Q+0=";
+    hash = "sha256-AyFL+XHxitueAadx1M/xWqeittDCQ/hzsE/fUzt75yI=";
   };
 
   sourceRoot = "${src.name}/repl";
 
-  vendorHash = "sha256-AKxQe8hh3SuFtxrskCOx/5LjUO+fUJPQ6edUZRfq2oo=";
+  vendorHash = "sha256-FiXxplt4w7M0cZz46kdjYuKHailW2cnLOj0jkA9w1RM=";
 
   ldflags = [ "-s" "-w" ];
 
diff --git a/pkgs/development/interpreters/femtolisp/default.nix b/pkgs/development/interpreters/femtolisp/default.nix
index 34efdc91ac6dc..33066d97ef64d 100644
--- a/pkgs/development/interpreters/femtolisp/default.nix
+++ b/pkgs/development/interpreters/femtolisp/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation {
   passthru.updateScript = unstableGitUpdater { };
 
   meta = {
-    description = "A compact interpreter for a minimal lisp/scheme dialect";
+    description = "Compact interpreter for a minimal lisp/scheme dialect";
     homepage = "https://git.sr.ht/~ft/femtolisp";
     license = with lib.licenses; [ mit bsd3 ];
     maintainers = with lib.maintainers; [ moody ];
diff --git a/pkgs/development/interpreters/gauche/default.nix b/pkgs/development/interpreters/gauche/default.nix
index aa58be639b9d1..d596455fe0155 100644
--- a/pkgs/development/interpreters/gauche/default.nix
+++ b/pkgs/development/interpreters/gauche/default.nix
@@ -21,6 +21,8 @@ stdenv.mkDerivation rec {
   '';
 
   postPatch = ''
+    substituteInPlace ext/package-templates/configure \
+      --replace "#!/usr/bin/env gosh" "#!$out/bin/gosh"
     patchShebangs .
   '';
 
diff --git a/pkgs/development/interpreters/gpython/default.nix b/pkgs/development/interpreters/gpython/default.nix
index b0aae579bf2b5..731c40a32d17e 100644
--- a/pkgs/development/interpreters/gpython/default.nix
+++ b/pkgs/development/interpreters/gpython/default.nix
@@ -38,7 +38,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A Python interpreter written in Go";
+    description = "Python interpreter written in Go";
     mainProgram = "gpython";
     homepage = "https://github.com/go-python/gpython";
     changelog = "https://github.com/go-python/gpython/releases/tag/${src.rev}";
diff --git a/pkgs/development/interpreters/groovy/default.nix b/pkgs/development/interpreters/groovy/default.nix
index e4c8c60754422..30f85baa364ec 100644
--- a/pkgs/development/interpreters/groovy/default.nix
+++ b/pkgs/development/interpreters/groovy/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "groovy";
-  version = "3.0.11";
+  version = "4.0.21";
 
   src = fetchurl {
     url = "mirror://apache/groovy/${version}/distribution/apache-groovy-binary-${version}.zip";
-    sha256 = "85abb44e81f94d794230cf5c2c7f1003e598a5f8a6ae04322f28c6f9efe395f6";
+    sha256 = "sha256-Xvh49w24tkLSBOmkEMUZwRMaPnqd20tpENIUkJyy6Yo=";
   };
 
   nativeBuildInputs = [ makeWrapper unzip ];
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     mkdir -p $out
     mkdir -p $out/share/doc/groovy
     rm bin/*.bat
-    mv {bin,conf,grooid,indy,lib} $out
+    mv {bin,conf,grooid,lib} $out
     mv {licenses,LICENSE,NOTICE} $out/share/doc/groovy
 
     sed -i 's#which#${which}/bin/which#g' $out/bin/startGroovy
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An agile dynamic language for the Java Platform";
+    description = "Agile dynamic language for the Java Platform";
     homepage = "http://groovy-lang.org/";
     license = licenses.asl20;
     maintainers = with maintainers; [ pSub ];
diff --git a/pkgs/development/interpreters/hashlink/default.nix b/pkgs/development/interpreters/hashlink/default.nix
index 880e480a1f85c..2c8da60028942 100644
--- a/pkgs/development/interpreters/hashlink/default.nix
+++ b/pkgs/development/interpreters/hashlink/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A virtual machine for Haxe";
+    description = "Virtual machine for Haxe";
     mainProgram = "hl";
     homepage = "https://hashlink.haxe.org/";
     license = licenses.mit;
diff --git a/pkgs/development/interpreters/icon-lang/default.nix b/pkgs/development/interpreters/icon-lang/default.nix
index 5481f7825c987..e6afedb5b31c8 100644
--- a/pkgs/development/interpreters/icon-lang/default.nix
+++ b/pkgs/development/interpreters/icon-lang/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A very high level general-purpose programming language";
+    description = "Very high level general-purpose programming language";
     maintainers = with maintainers; [ vrthra yurrriq ];
     platforms = with platforms; linux ++ darwin ++ freebsd ++ netbsd ++ openbsd ++ cygwin ++ illumos;
     license = licenses.publicDomain;
diff --git a/pkgs/development/interpreters/jelly/default.nix b/pkgs/development/interpreters/jelly/default.nix
index 6f97b58dc6363..0964e08125f28 100644
--- a/pkgs/development/interpreters/jelly/default.nix
+++ b/pkgs/development/interpreters/jelly/default.nix
@@ -19,7 +19,7 @@ python3Packages.buildPythonApplication {
   doCheck = false;
 
   meta = with lib; {
-    description = "A recreational programming language inspired by J";
+    description = "Recreational programming language inspired by J";
     mainProgram = "jelly";
     homepage    = "https://github.com/DennisMitchell/jellylanguage";
     license     = licenses.mit;
diff --git a/pkgs/development/interpreters/jimtcl/default.nix b/pkgs/development/interpreters/jimtcl/default.nix
index c5ea2f3ec026f..4e9e9d1f87ae1 100644
--- a/pkgs/development/interpreters/jimtcl/default.nix
+++ b/pkgs/development/interpreters/jimtcl/default.nix
@@ -71,7 +71,7 @@ stdenv.mkDerivation (finalAttrs: {
   nativeCheckInputs = [ inetutils ];
 
   meta = {
-    description = "An open source small-footprint implementation of the Tcl programming language";
+    description = "Open source small-footprint implementation of the Tcl programming language";
     homepage = "http://jim.tcl.tk/";
     license = lib.licenses.bsd2;
     platforms = lib.platforms.all;
diff --git a/pkgs/development/interpreters/joker/default.nix b/pkgs/development/interpreters/joker/default.nix
index 6af8fc10160ee..ced244e297808 100644
--- a/pkgs/development/interpreters/joker/default.nix
+++ b/pkgs/development/interpreters/joker/default.nix
@@ -23,7 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/candid82/joker";
-    description = "A small Clojure interpreter and linter written in Go";
+    description = "Small Clojure interpreter and linter written in Go";
     mainProgram = "joker";
     license = licenses.epl10;
     maintainers = with maintainers; [ andrestylianos ];
diff --git a/pkgs/development/interpreters/kamilalisp/default.nix b/pkgs/development/interpreters/kamilalisp/default.nix
index 7638b8f932e7a..5b4d392d62f75 100644
--- a/pkgs/development/interpreters/kamilalisp/default.nix
+++ b/pkgs/development/interpreters/kamilalisp/default.nix
@@ -6,7 +6,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "kamilalisp";
+  pname = "kamilalisp";
   version = "0.3.0.1";
 
   src = fetchurl {
@@ -20,16 +20,16 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     mkdir -pv $out/share/java $out/bin
-    cp ${src} $out/share/java/${name}-${version}.jar
+    cp ${src} $out/share/java/kamilalisp-${version}.jar
     makeWrapper ${jre}/bin/java $out/bin/kamilalisp \
-      --add-flags "-jar $out/share/java/${name}-${version}.jar" \
+      --add-flags "-jar $out/share/java/kamilalisp-${version}.jar" \
       --set _JAVA_OPTIONS '-Dawt.useSystemAAFontSettings=on' \
       --set _JAVA_AWT_WM_NONREPARENTING 1
   '';
 
   meta = {
     homepage = "https://github.com/kspalaiologos/kamilalisp";
-    description = "A functional, flexible, and concise Lisp";
+    description = "Functional, flexible, and concise Lisp";
     mainProgram = "kamilalisp";
     license = lib.licenses.gpl3Plus;
     inherit (jre.meta) platforms;
diff --git a/pkgs/development/interpreters/kona/default.nix b/pkgs/development/interpreters/kona/default.nix
index cfc1c12d1923a..22351510b9f45 100644
--- a/pkgs/development/interpreters/kona/default.nix
+++ b/pkgs/development/interpreters/kona/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   preInstall = ''mkdir -p "$out/bin"'';
 
   meta = with lib; {
-    description = "An interpreter of K, APL-like programming language";
+    description = "Interpreter of K, APL-like programming language";
     homepage = "https://github.com/kevinlawler/kona/";
     maintainers = with maintainers; [ raskin ];
     mainProgram = "k";
diff --git a/pkgs/development/interpreters/lambda-lisp/default.nix b/pkgs/development/interpreters/lambda-lisp/default.nix
index f2979e7aa6795..7140f9521c8aa 100644
--- a/pkgs/development/interpreters/lambda-lisp/default.nix
+++ b/pkgs/development/interpreters/lambda-lisp/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Lisp interpreter written in untyped lambda calculus";
+    description = "Lisp interpreter written in untyped lambda calculus";
     homepage = "https://github.com/woodrush/lambdalisp";
     longDescription = ''
       LambdaLisp is a Lisp interpreter written as a closed untyped lambda calculus term.
diff --git a/pkgs/development/interpreters/lfe/2.1.nix b/pkgs/development/interpreters/lfe/2.1.nix
index f239aa94b78ff..7ac2d6eef2b52 100644
--- a/pkgs/development/interpreters/lfe/2.1.nix
+++ b/pkgs/development/interpreters/lfe/2.1.nix
@@ -1,7 +1,7 @@
-{ fetchpatch, mkDerivation }:
+{ mkDerivation }:
 
 mkDerivation {
-  version = "2.1.3";
-  hash = "sha256-HUOVBzUaU0ixIfPPctwR2TPijxJjcFY3dJ8Z7Ot2bpE=";
-  maximumOTPVersion = "26";
+  version = "2.1.4";
+  hash = "sha256-mDavRI2it0SrSR0iBItm2MfjI+F/zCy38YSd2KpE0Hs=";
+  maximumOTPVersion = "27";
 }
diff --git a/pkgs/development/interpreters/lfe/generic-builder.nix b/pkgs/development/interpreters/lfe/generic-builder.nix
index 1589121d998d9..908417f7c7089 100644
--- a/pkgs/development/interpreters/lfe/generic-builder.nix
+++ b/pkgs/development/interpreters/lfe/generic-builder.nix
@@ -73,7 +73,7 @@ buildRebar3 {
   '';
 
   meta = with lib; {
-    description     = "The best of Erlang and of Lisp; at the same time!";
+    description     = "Best of Erlang and of Lisp; at the same time!";
     longDescription = ''
       LFE, Lisp Flavoured Erlang, is a lisp syntax front-end to the Erlang
       compiler. Code produced with it is compatible with "normal" Erlang
diff --git a/pkgs/development/interpreters/lolcode/default.nix b/pkgs/development/interpreters/lolcode/default.nix
index ccb0e062a53f4..09df8b04d0cd9 100644
--- a/pkgs/development/interpreters/lolcode/default.nix
+++ b/pkgs/development/interpreters/lolcode/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://lolcode.org";
-    description = "An esoteric programming language";
+    description = "Esoteric programming language";
     longDescription = ''
       LOLCODE is a funny esoteric  programming language, a bit Pascal-like,
       whose keywords are LOLspeak.
diff --git a/pkgs/development/interpreters/love/0.10.nix b/pkgs/development/interpreters/love/0.10.nix
index 7dc82ce3248a1..3443cb0c3cf56 100644
--- a/pkgs/development/interpreters/love/0.10.nix
+++ b/pkgs/development/interpreters/love/0.10.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://love2d.org";
-    description = "A Lua-based 2D game engine/scripting language";
+    description = "Lua-based 2D game engine/scripting language";
     mainProgram = "love";
     license = lib.licenses.zlib;
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/interpreters/love/11.nix b/pkgs/development/interpreters/love/11.nix
index 93f5d5792ecce..0f98906a542b9 100644
--- a/pkgs/development/interpreters/love/11.nix
+++ b/pkgs/development/interpreters/love/11.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://love2d.org";
-    description = "A Lua-based 2D game engine/scripting language";
+    description = "Lua-based 2D game engine/scripting language";
     mainProgram = "love";
     license = lib.licenses.zlib;
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/interpreters/lua-5/build-luarocks-package.nix b/pkgs/development/interpreters/lua-5/build-luarocks-package.nix
index b4eec6d8ff2dd..0e4f62d42e2db 100644
--- a/pkgs/development/interpreters/lua-5/build-luarocks-package.nix
+++ b/pkgs/development/interpreters/lua-5/build-luarocks-package.nix
@@ -2,7 +2,7 @@
 { lib
 , lua
 , wrapLua
-, luarocks
+, luarocks_bootstrap
 , writeTextFile
 
 # Whether the derivation provides a lua module or not.
@@ -91,7 +91,7 @@ let
   nativeBuildInputs = [
     lua  # for lua.h
     wrapLua
-    luarocks
+    luarocks_bootstrap
   ];
 
   inherit doCheck extraConfig rockspecFilename knownRockspec externalDeps nativeCheckInputs;
@@ -99,7 +99,7 @@ let
   buildInputs = let
     # example externalDeps': [ { name = "CRYPTO"; dep = pkgs.openssl; } ]
     externalDeps' = lib.filter (dep: !lib.isDerivation dep) self.externalDeps;
-    in [ lua.pkgs.luarocks ]
+    in [ luarocks_bootstrap ]
       ++ buildInputs
       ++ lib.optionals self.doCheck ([ luarocksCheckHook ] ++ self.nativeCheckInputs)
       ++ (map (d: d.dep) externalDeps')
diff --git a/pkgs/development/interpreters/lua-5/default.nix b/pkgs/development/interpreters/lua-5/default.nix
index bbd93c725f731..a7587dafe3920 100644
--- a/pkgs/development/interpreters/lua-5/default.nix
+++ b/pkgs/development/interpreters/lua-5/default.nix
@@ -1,5 +1,5 @@
 # similar to interpreters/python/default.nix
-{ stdenv, config, lib, callPackage, fetchFromGitHub, fetchurl, fetchpatch, makeBinaryWrapper }:
+{ stdenv, config, lib, callPackage, fetchFromGitHub, fetchurl, makeBinaryWrapper }:
 
 
 let
diff --git a/pkgs/development/interpreters/luajit/2.0.nix b/pkgs/development/interpreters/luajit/2.0.nix
index 29ad88f0ec160..9ad3099143c8d 100644
--- a/pkgs/development/interpreters/luajit/2.0.nix
+++ b/pkgs/development/interpreters/luajit/2.0.nix
@@ -1,18 +1,19 @@
 { self, callPackage, fetchFromGitHub, lib, passthruFun }:
 
-callPackage ./default.nix rec {
+callPackage ./default.nix {
   # The patch version is the timestamp of the git commit,
   # obtain via `cat $(nix-build -A luajit_2_0.src)/.relver`
-  version = "2.0.1693340858";
+  version = "2.0.1713483859";
 
   src = fetchFromGitHub {
     owner = "LuaJIT";
     repo = "LuaJIT";
-    rev = "c6ee7e19d107b4f9a140bb2ccf99162e26318c69";
-    hash = "sha256-3/7ASZRniytw5RkOy0F9arHkZevq6dxmya+Ba3A5IIA=";
+    rev = "9b5e837ac2dfdc0638830c048a47ca9378c504d3";
+    hash = "sha256-GflF/sELSNanc9G4WMzoOadUBOFSs6OwqhAXa4sudWA=";
   };
 
-  extraMeta = { # this isn't precise but it at least stops the useless Hydra build
+  extraMeta = {
+    # this isn't precise but it at least stops the useless Hydra build
     platforms = with lib; filter (p: !hasPrefix "aarch64-" p)
       (platforms.linux ++ platforms.darwin);
   };
diff --git a/pkgs/development/interpreters/luajit/2.1.nix b/pkgs/development/interpreters/luajit/2.1.nix
index cf8531b7352d4..90d7769e1d57d 100644
--- a/pkgs/development/interpreters/luajit/2.1.nix
+++ b/pkgs/development/interpreters/luajit/2.1.nix
@@ -1,15 +1,15 @@
 { self, callPackage, fetchFromGitHub, passthruFun }:
 
-callPackage ./default.nix rec {
+callPackage ./default.nix {
   # The patch version is the timestamp of the git commit,
   # obtain via `cat $(nix-build -A luajit_2_1.src)/.relver`
-  version = "2.1.1693350652";
+  version = "2.1.1713773202";
 
   src = fetchFromGitHub {
     owner = "LuaJIT";
     repo = "LuaJIT";
-    rev = "41fb94defa8f830ce69a8122b03f6ac3216d392a";
-    hash = "sha256-iY80CA97RqJ9gF1Kl7ms/lC6m6KScjxWmljh5Gy7Brg=";
+    rev = "5790d253972c9d78a0c2aece527eda5b134bbbf7";
+    hash = "sha256-WG8AWDI182/9O7NrZlQ6ZH/esyYE2pWXMuSzWUuntSA=";
   };
 
   inherit self passthruFun;
diff --git a/pkgs/development/interpreters/luau/default.nix b/pkgs/development/interpreters/luau/default.nix
index 4098d92fb451a..3a500745fa554 100644
--- a/pkgs/development/interpreters/luau/default.nix
+++ b/pkgs/development/interpreters/luau/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
-    description = "A fast, small, safe, gradually typed embeddable scripting language derived from Lua";
+    description = "Fast, small, safe, gradually typed embeddable scripting language derived from Lua";
     homepage = "https://luau-lang.org/";
     changelog = "https://github.com/luau-lang/luau/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/interpreters/lunatic/default.nix b/pkgs/development/interpreters/lunatic/default.nix
index 637c7710975e4..4ad07f6a1e337 100644
--- a/pkgs/development/interpreters/lunatic/default.nix
+++ b/pkgs/development/interpreters/lunatic/default.nix
@@ -36,7 +36,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "An Erlang inspired runtime for WebAssembly";
+    description = "Erlang inspired runtime for WebAssembly";
     homepage = "https://lunatic.solutions";
     changelog = "https://github.com/lunatic-solutions/lunatic/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit /* or */ asl20 ];
diff --git a/pkgs/development/interpreters/lune/default.nix b/pkgs/development/interpreters/lune/default.nix
index 956fe3da666c6..d919e5c848990 100644
--- a/pkgs/development/interpreters/lune/default.nix
+++ b/pkgs/development/interpreters/lune/default.nix
@@ -54,7 +54,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A standalone Luau script runtime";
+    description = "Standalone Luau script runtime";
     mainProgram = "lune";
     homepage = "https://github.com/lune-org/lune";
     changelog = "https://github.com/lune-org/lune/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/development/interpreters/micropython/default.nix b/pkgs/development/interpreters/micropython/default.nix
index 6437e942ae344..4b9893f228c99 100644
--- a/pkgs/development/interpreters/micropython/default.nix
+++ b/pkgs/development/interpreters/micropython/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "micropython";
-  version = "1.22.2";
+  version = "1.23.0";
 
   src = fetchFromGitHub {
     owner = "micropython";
     repo = "micropython";
     rev = "v${version}";
-    sha256 = "sha256-sdok17HvKub/sI+8cAIIDaLD/3mu8yXXqrTOej8/UfU=";
+    sha256 = "sha256-sfJohmsqq5FumUoVE8x3yWv12DiCJJXae62br0j+190=";
     fetchSubmodules = true;
   };
 
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A lean and efficient Python implementation for microcontrollers and constrained systems";
+    description = "Lean and efficient Python implementation for microcontrollers and constrained systems";
     homepage = "https://micropython.org";
     platforms = platforms.unix;
     license = licenses.mit;
diff --git a/pkgs/development/interpreters/mujs/default.nix b/pkgs/development/interpreters/mujs/default.nix
index a7b53bb8d4658..58b43fdf48d2e 100644
--- a/pkgs/development/interpreters/mujs/default.nix
+++ b/pkgs/development/interpreters/mujs/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://mujs.com/";
-    description = "A lightweight, embeddable Javascript interpreter";
+    description = "Lightweight, embeddable Javascript interpreter";
     platforms = platforms.unix;
     maintainers = with maintainers; [ pSub ];
     license = licenses.isc;
diff --git a/pkgs/development/interpreters/nelua/default.nix b/pkgs/development/interpreters/nelua/default.nix
index 07494f121b029..96101dc66ecfb 100644
--- a/pkgs/development/interpreters/nelua/default.nix
+++ b/pkgs/development/interpreters/nelua/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nelua";
-  version = "0-unstable-2024-04-20";
+  version = "0-unstable-2024-06-11";
 
   src = fetchFromGitHub {
     owner = "edubart";
     repo = "nelua-lang";
-    rev = "9f75e009db190feda0f90ae858b48fd82f51b8b1";
-    hash = "sha256-JwuZZXYcH8KRPxt4PBwhYDjZlwqe6VfaONU8rdLIDs4=";
+    rev = "c344dbdcdc4a6fed964e60fbde39d1cebe23c05a";
+    hash = "sha256-goNiw/JlLJfgwVI+0dfdnBymAAKCU7u0Mjo1CyCFsSc=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/interpreters/nextflow/default.nix b/pkgs/development/interpreters/nextflow/default.nix
index ef0d4c42160a5..ed07f175b6535 100644
--- a/pkgs/development/interpreters/nextflow/default.nix
+++ b/pkgs/development/interpreters/nextflow/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A DSL for data-driven computational pipelines";
+    description = "DSL for data-driven computational pipelines";
     longDescription = ''
       Nextflow is a bioinformatics workflow manager that enables the development of portable and reproducible workflows.
 
diff --git a/pkgs/development/interpreters/ngn-k/default.nix b/pkgs/development/interpreters/ngn-k/default.nix
index 9ec1f0b673d3d..76ff50b64b9ea 100644
--- a/pkgs/development/interpreters/ngn-k/default.nix
+++ b/pkgs/development/interpreters/ngn-k/default.nix
@@ -61,7 +61,7 @@ useStdenv.mkDerivation {
   '';
 
   meta = {
-    description = "A simple fast vector programming language";
+    description = "Simple fast vector programming language";
     homepage = "https://codeberg.org/ngn/k";
     license = lib.licenses.agpl3Only;
     maintainers = [ lib.maintainers.sternenseemann ];
diff --git a/pkgs/development/interpreters/npiet/default.nix b/pkgs/development/interpreters/npiet/default.nix
index c0e2c3ade2928..bcd546c514c01 100644
--- a/pkgs/development/interpreters/npiet/default.nix
+++ b/pkgs/development/interpreters/npiet/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An interpreter for piet programs. Also includes npietedit and npiet-foogol";
+    description = "Interpreter for piet programs. Also includes npietedit and npiet-foogol";
     longDescription = ''
       npiet is an interpreter for the piet programming language.
       Instead of text, piet programs are pictures. Commands are determined based on changes in color.
diff --git a/pkgs/development/interpreters/perl/interpreter.nix b/pkgs/development/interpreters/perl/interpreter.nix
index 95ddc5a543cf8..ff95ac83a3010 100644
--- a/pkgs/development/interpreters/perl/interpreter.nix
+++ b/pkgs/development/interpreters/perl/interpreter.nix
@@ -115,6 +115,11 @@ stdenv.mkDerivation (rec {
       "-Dprefix=${placeholder "out"}"
       "-Dman1dir=${placeholder "out"}/share/man/man1"
       "-Dman3dir=${placeholder "out"}/share/man/man3"
+    ]
+    ++ lib.optionals (stdenv.isFreeBSD && crossCompiling && enableCrypt) [
+      # https://github.com/Perl/perl5/issues/22295
+      # configure cannot figure out that we have crypt automatically, but we really do
+      "-Dd_crypt"
     ];
 
   configureScript = lib.optionalString (!crossCompiling) "${stdenv.shell} ./Configure";
@@ -228,7 +233,7 @@ stdenv.mkDerivation (rec {
 
   meta = with lib; {
     homepage = "https://www.perl.org/";
-    description = "The standard implementation of the Perl 5 programming language";
+    description = "Standard implementation of the Perl 5 programming language";
     license = licenses.artistic1;
     maintainers = [ maintainers.eelco ];
     platforms = platforms.all;
diff --git a/pkgs/development/interpreters/php/8.1.nix b/pkgs/development/interpreters/php/8.1.nix
index b31d08fbda3a5..4b53f9e6c84b3 100644
--- a/pkgs/development/interpreters/php/8.1.nix
+++ b/pkgs/development/interpreters/php/8.1.nix
@@ -2,8 +2,8 @@
 
 let
   base = callPackage ./generic.nix ((removeAttrs _args [ "fetchpatch" ]) // {
-    version = "8.1.28";
-    hash = "sha256-i+RQCW4BU8R9dThOfdWVzIl/HVPOAGBwjOlYm8wxQe4=";
+    version = "8.1.29";
+    hash = "sha256-h6YDEyY/L1M/GA5xknLKXkfNmITU7DyTcgGY6v+uCCc=";
     extraPatches = [
       # Fix build with libxml 2.12+.
       # Patch from https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
diff --git a/pkgs/development/interpreters/php/8.2.nix b/pkgs/development/interpreters/php/8.2.nix
index a63f1391616da..e50bdfd137412 100644
--- a/pkgs/development/interpreters/php/8.2.nix
+++ b/pkgs/development/interpreters/php/8.2.nix
@@ -2,8 +2,8 @@
 
 let
   base = callPackage ./generic.nix (_args // {
-    version = "8.2.19";
-    hash = "sha256-PBj3zlG3x7JreX4flwedOGswNH6wToF/XmyOmydeKmo=";
+    version = "8.2.20";
+    hash = "sha256-Xexvphx7nEeqHXZma+ZR8mQu0rz2zYY4xX41cc4qrGE=";
   });
 in
 base.withExtensions ({ all, ... }: with all; ([
diff --git a/pkgs/development/interpreters/php/8.3.nix b/pkgs/development/interpreters/php/8.3.nix
index 1da9841f78941..ae4ad6e949b11 100644
--- a/pkgs/development/interpreters/php/8.3.nix
+++ b/pkgs/development/interpreters/php/8.3.nix
@@ -2,8 +2,8 @@
 
 let
   base = callPackage ./generic.nix (_args // {
-    version = "8.3.7";
-    hash = "sha256-AcIM3hxaVpZlGHXtIvUHhJZ5+6dA+MQhYWt9Q9f3l9o=";
+    version = "8.3.8";
+    hash = "sha256-9KbLAFrhF6uobCBEkyz1Y4maLpd6wJeBqnSyFh3cVjs=";
   });
 in
 base.withExtensions ({ all, ... }: with all; ([
diff --git a/pkgs/development/interpreters/php/generic.nix b/pkgs/development/interpreters/php/generic.nix
index 68ca8e4d3bbaa..69716f05b6daf 100644
--- a/pkgs/development/interpreters/php/generic.nix
+++ b/pkgs/development/interpreters/php/generic.nix
@@ -164,7 +164,7 @@ let
                 nixos = lib.recurseIntoAttrs nixosTests."php${lib.strings.replaceStrings [ "." ] [ "" ] (lib.versions.majorMinor php.version)}";
                 package = tests.php;
               };
-              inherit (php-packages) extensions buildPecl mkComposerRepository buildComposerProject composerHooks mkExtension;
+              inherit (php-packages) extensions buildPecl mkComposerRepository buildComposerProject buildComposerWithPlugin composerHooks mkExtension;
               packages = php-packages.tools;
               meta = php.meta // {
                 outputsToInstall = [ "out" ];
@@ -346,7 +346,7 @@ let
           };
 
           meta = with lib; {
-            description = "An HTML-embedded scripting language";
+            description = "HTML-embedded scripting language";
             homepage = "https://www.php.net/";
             license = licenses.php301;
             mainProgram = "php";
diff --git a/pkgs/development/interpreters/picolisp/default.nix b/pkgs/development/interpreters/picolisp/default.nix
index 8f8d0b764fdaa..c751746ec645f 100644
--- a/pkgs/development/interpreters/picolisp/default.nix
+++ b/pkgs/development/interpreters/picolisp/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A pragmatic programming language.";
+    description = "Pragmatic programming language";
     homepage = "https://picolisp.com/";
     license = licenses.mit;
     maintainers = with maintainers; [ nat-418 ];
diff --git a/pkgs/development/interpreters/python/cpython/2.7/default.nix b/pkgs/development/interpreters/python/cpython/2.7/default.nix
index 3ede01aa61da5..af9bbc47475b9 100644
--- a/pkgs/development/interpreters/python/cpython/2.7/default.nix
+++ b/pkgs/development/interpreters/python/cpython/2.7/default.nix
@@ -338,7 +338,7 @@ in with passthru; stdenv.mkDerivation ({
 
     meta = {
       homepage = "http://python.org";
-      description = "A high-level dynamically-typed programming language";
+      description = "High-level dynamically-typed programming language";
       longDescription = ''
         Python is a remarkably powerful dynamic programming language that
         is used in a wide variety of application domains. Some of its key
diff --git a/pkgs/development/interpreters/python/cpython/default.nix b/pkgs/development/interpreters/python/cpython/default.nix
index 37b9d19fe88d9..ba97b030524ad 100644
--- a/pkgs/development/interpreters/python/cpython/default.nix
+++ b/pkgs/development/interpreters/python/cpython/default.nix
@@ -121,6 +121,9 @@ let
     versionOlder
   ;
 
+  # mixes libc and libxcrypt headers and libs and causes segfaults on importing crypt
+  libxcrypt = if stdenv.hostPlatform.isFreeBSD then null else inputs.libxcrypt;
+
   buildPackages = pkgsBuildHost;
   inherit (passthru) pythonOnBuildForHost;
 
@@ -261,6 +264,7 @@ let
 
     multiarch =
       if isDarwin then "darwin"
+      else if isFreeBSD then ""
       else if isWindows then ""
       else "${multiarchCpu}-${machdep}-${pythonAbiName}";
 
@@ -303,10 +307,15 @@ in with passthru; stdenv.mkDerivation (finalAttrs: {
     # (since it will do a futile invocation of gcc (!) to find
     # libuuid, slowing down program startup a lot).
     noldconfigPatch
+  ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform && stdenv.isFreeBSD) [
+    # Cross compilation only supports a limited number of "known good"
+    # configurations. If you're reading this and it's been a long time
+    # since this diff, consider submitting this patch upstream!
+    ./freebsd-cross.patch
+  ] ++ optionals (pythonOlder "3.13") [
     # Make sure that the virtualenv activation scripts are
     # owner-writable, so venvs can be recreated without permission
     # errors.
-  ] ++ optionals (pythonOlder "3.13") [
     ./virtualenv-permissions.patch
   ] ++ optionals (pythonAtLeast "3.13") [
     ./3.13/virtualenv-permissions.patch
@@ -445,7 +454,11 @@ in with passthru; stdenv.mkDerivation (finalAttrs: {
     "LDFLAGS=-static"
   ];
 
-  preConfigure = optionalString (pythonOlder "3.12") ''
+  preConfigure = ''
+    # Attempt to purify some of the host info collection
+    sed -E -i -e 's/uname -r/echo/g' -e 's/uname -n/echo nixpkgs/g' config.guess
+    sed -E -i -e 's/uname -r/echo/g' -e 's/uname -n/echo nixpkgs/g' configure
+  '' + optionalString (pythonOlder "3.12") ''
     # Improve purity
     for path in /usr /sw /opt /pkg; do
       substituteInPlace ./setup.py --replace-warn $path /no-such-path
@@ -453,6 +466,8 @@ in with passthru; stdenv.mkDerivation (finalAttrs: {
   '' + optionalString stdenv.isDarwin ''
     # Override the auto-detection in setup.py, which assumes a universal build
     export PYTHON_DECIMAL_WITH_MACHINE=${if stdenv.isAarch64 then "uint128" else "x64"}
+    # Ensure that modern platform features are enabled on Darwin in spite of having no version suffix.
+    sed -E -i -e 's|Darwin/\[12\]\[0-9\]\.\*|Darwin/*|' configure
   '' + optionalString (stdenv.isDarwin && x11Support && pythonAtLeast "3.11") ''
     export TCLTK_LIBS="-L${tcl}/lib -L${tk}/lib -l${tcl.libPrefix} -l${tk.libPrefix}"
     export TCLTK_CFLAGS="-I${tcl}/include -I${tk}/include"
@@ -476,10 +491,10 @@ in with passthru; stdenv.mkDerivation (finalAttrs: {
   postInstall = let
     # References *not* to nuke from (sys)config files
     keep-references = concatMapStringsSep " " (val: "-e ${val}") ([
-      (placeholder "out") libxcrypt
-    ] ++ optionals tzdataSupport [
-      tzdata
-    ]);
+      (placeholder "out")
+    ] ++ lib.optional (libxcrypt != null) libxcrypt
+      ++ lib.optional tzdataSupport tzdata
+    );
   in lib.optionalString enableFramework ''
     for dir in include lib share; do
       ln -s $out/Library/Frameworks/Python.framework/Versions/Current/$dir $out/$dir
@@ -649,7 +664,7 @@ in with passthru; stdenv.mkDerivation (finalAttrs: {
         "https://docs.python.org/release/${version}/whatsnew/changelog.html"
       else
         "https://docs.python.org/${majorMinor}/whatsnew/changelog.html#python-${dashedVersion}";
-    description = "A high-level dynamically-typed programming language";
+    description = "High-level dynamically-typed programming language";
     longDescription = ''
       Python is a remarkably powerful dynamic programming language that
       is used in a wide variety of application domains. Some of its key
@@ -661,7 +676,7 @@ in with passthru; stdenv.mkDerivation (finalAttrs: {
     '';
     license = licenses.psfl;
     pkgConfigModules = [ "python3" ];
-    platforms = platforms.linux ++ platforms.darwin ++ platforms.windows;
+    platforms = platforms.linux ++ platforms.darwin ++ platforms.windows ++ platforms.freebsd;
     mainProgram = executable;
   };
 })
diff --git a/pkgs/development/interpreters/python/cpython/freebsd-cross.patch b/pkgs/development/interpreters/python/cpython/freebsd-cross.patch
new file mode 100644
index 0000000000000..71b45bfead272
--- /dev/null
+++ b/pkgs/development/interpreters/python/cpython/freebsd-cross.patch
@@ -0,0 +1,22 @@
+--- a/configure.ac	2024-06-07 09:17:50.608162031 -0700
++++ b/configure.ac	2024-06-07 09:45:59.844518241 -0700
+@@ -554,6 +554,9 @@
+ 	*-*-wasi)
+ 	    ac_sys_system=WASI
+ 	    ;;
++	*-*-freebsd)
++	    ac_sys_system=FreeBSD
++	    ;;
+ 	*)
+ 		# for now, limit cross builds to known configurations
+ 		MACHDEP="unknown"
+@@ -614,6 +617,9 @@
+ 	wasm32-*-* | wasm64-*-*)
+ 		_host_cpu=$host_cpu
+ 		;;
++	x86_64-*-freebsd)
++		_host_cpu=x86_64
++		;;
+ 	*)
+ 		# for now, limit cross builds to known configurations
+ 		MACHDEP="unknown"
diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix
index 86eaf142d9205..fde8913d5158a 100644
--- a/pkgs/development/interpreters/python/default.nix
+++ b/pkgs/development/interpreters/python/default.nix
@@ -93,9 +93,9 @@ in {
       major = "3";
       minor = "13";
       patch = "0";
-      suffix = "b1";
+      suffix = "b2";
     };
-    hash = "sha256-unFqxWsDm1Ra1KkM5Yaleql4aTZFU3Ru8kRXKM7sGY4=";
+    hash = "sha256-vxG+AbQqB6Nlnk4jNZHgPaYxtxEqph7h4DDuuMXf2Gk=";
     inherit (darwin) configd;
     inherit passthruFun;
   };
diff --git a/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/default.nix b/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/default.nix
index 8d330fcdbfc94..fcb17dcbca381 100644
--- a/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/default.nix
+++ b/pkgs/development/interpreters/python/tests/test_nix_pythonprefix/typeddep/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, pythonOlder }:
+{ lib, buildPythonPackage, pythonOlder }:
 
 
 buildPythonPackage {
@@ -6,7 +6,13 @@ buildPythonPackage {
   pname = "typeddep";
   version = "1.3.3.7";
 
-  src = ./.;
+  src = lib.fileset.toSource {
+    root = ./.;
+    fileset = lib.fileset.unions [
+      ./setup.py
+      ./typeddep
+    ];
+  };
 
   disabled = pythonOlder "3.7";
 
diff --git a/pkgs/development/interpreters/qnial/default.nix b/pkgs/development/interpreters/qnial/default.nix
index e90c268719d51..f5d7ef3c70fdd 100644
--- a/pkgs/development/interpreters/qnial/default.nix
+++ b/pkgs/development/interpreters/qnial/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation {
   ];
 
   meta = {
-    description = "An array language from Nial Systems";
+    description = "Array language from Nial Systems";
     mainProgram = "nial";
     homepage = "https://github.com/vrthra/qnial";
     license = lib.licenses.artistic1;
diff --git a/pkgs/development/interpreters/quickjs/default.nix b/pkgs/development/interpreters/quickjs/default.nix
index 040516d6ba798..447f486a0914a 100644
--- a/pkgs/development/interpreters/quickjs/default.nix
+++ b/pkgs/development/interpreters/quickjs/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A small and embeddable Javascript engine";
+    description = "Small and embeddable Javascript engine";
     homepage = "https://bellard.org/quickjs/";
     maintainers = with maintainers; [ stesie AndersonTorres ];
     platforms = platforms.unix;
diff --git a/pkgs/development/interpreters/racket/default.nix b/pkgs/development/interpreters/racket/default.nix
index 1edfefddd0cd2..314c760fa02c5 100644
--- a/pkgs/development/interpreters/racket/default.nix
+++ b/pkgs/development/interpreters/racket/default.nix
@@ -182,7 +182,7 @@ stdenv.mkDerivation rec {
   dontStrip = stdenv.isDarwin;
 
   meta = with lib; {
-    description = "A programmable programming language";
+    description = "Programmable programming language";
     longDescription = ''
       Racket is a full-spectrum programming language. It goes beyond
       Lisp and Scheme with dialects that support objects, types,
diff --git a/pkgs/development/interpreters/racket/racket_7_9.nix b/pkgs/development/interpreters/racket/racket_7_9.nix
index 1446be8f24600..4db0db9385d00 100644
--- a/pkgs/development/interpreters/racket/racket_7_9.nix
+++ b/pkgs/development/interpreters/racket/racket_7_9.nix
@@ -124,7 +124,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = false;
 
   meta = with lib; {
-    description = "A programmable programming language";
+    description = "Programmable programming language";
     longDescription = ''
       Racket is a full-spectrum programming language. It goes beyond
       Lisp and Scheme with dialects that support objects, types,
diff --git a/pkgs/development/interpreters/rlci/default.nix b/pkgs/development/interpreters/rlci/default.nix
index 6c766c9d00376..01c9e491b11f0 100644
--- a/pkgs/development/interpreters/rlci/default.nix
+++ b/pkgs/development/interpreters/rlci/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-7Q6WSEiVLzRsyHNECbPhWN9prrN0A/nSJDtZWi09zzg=";
 
   meta = with lib; {
-    description = "A lambda calculus interpreter";
+    description = "Lambda calculus interpreter";
     mainProgram = "rlci";
     homepage = "https://github.com/orsinium-labs/rlci";
     changelog = "https://github.com/orsinium-labs/rlci/releases/tag/${src.rev}";
diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix
index ed3a06591d165..a9e5e5a048429 100644
--- a/pkgs/development/interpreters/ruby/default.nix
+++ b/pkgs/development/interpreters/ruby/default.nix
@@ -1,5 +1,5 @@
 { stdenv, buildPackages, lib
-, fetchurl, fetchpatch, fetchFromSavannah, fetchFromGitHub
+, fetchurl, fetchpatch, fetchFromSavannah
 , zlib, gdbm, ncurses, readline, groff, libyaml, libffi, jemalloc, autoreconfHook, bison
 , autoconf, libiconv, libobjc, libunwind, Foundation
 , buildEnv, bundler, bundix, cargo, rustPlatform, rustc
@@ -26,7 +26,7 @@ let
     yjitSupported = atLeast32 && (stdenv.hostPlatform.isx86_64 || (!stdenv.hostPlatform.isWindows && stdenv.hostPlatform.isAarch64));
     rubyDrv = lib.makeOverridable (
       { stdenv, buildPackages, lib
-      , fetchurl, fetchpatch, fetchFromSavannah, fetchFromGitHub
+      , fetchurl, fetchpatch, fetchFromSavannah
       , rubygemsSupport ? true
       , zlib, zlibSupport ? true
       , openssl, opensslSupport ? true
@@ -160,6 +160,9 @@ let
           "--with-out-ext=tk"
           # on yosemite, "generating encdb.h" will hang for a very long time without this flag
           "--with-setjmp-type=setjmp"
+        ] ++ ops stdenv.hostPlatform.isFreeBSD [
+          "rb_cv_gnu_qsort_r=no"
+          "rb_cv_bsd_qsort_r=yes"
         ];
 
         preConfigure = opString docSupport ''
@@ -261,7 +264,7 @@ let
           ++ op useBaseRuby baseRuby;
 
         meta = with lib; {
-          description = "An object-oriented language for quick and easy programming";
+          description = "Object-oriented language for quick and easy programming";
           homepage    = "https://www.ruby-lang.org/";
           license     = licenses.ruby;
           maintainers = with maintainers; [ vrthra manveru ];
@@ -307,8 +310,8 @@ in {
   };
 
   ruby_3_3 = generic {
-    version = rubyVersion "3" "3" "1" "";
-    hash = "sha256-jcKvKALMcAzRgtVDByY4jM+IWz8KFPzWoPIf8knJqpk=";
+    version = rubyVersion "3" "3" "2" "";
+    hash = "sha256-O+HRAOvyoM5gws2NIs2dtNZLPgShlDvixP97Ug8ry1s=";
     cargoHash = "sha256-GeelTMRFIyvz1QS2L+Q3KAnyQy7jc0ejhx3TdEFVEbk=";
   };
 
diff --git a/pkgs/development/interpreters/ruby/rubygems/default.nix b/pkgs/development/interpreters/ruby/rubygems/default.nix
index 8c0bc2208c10c..9ad7a04eab066 100644
--- a/pkgs/development/interpreters/ruby/rubygems/default.nix
+++ b/pkgs/development/interpreters/ruby/rubygems/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "rubygems";
-  version = "3.5.9";
+  version = "3.5.11";
 
   src = fetchurl {
     url = "https://rubygems.org/rubygems/rubygems-${version}.tgz";
-    hash = "sha256-KyA2Qhkea7ns4ZB19iJ1qIUmMZsSRoTEZmdBXcpDY/E=";
+    hash = "sha256-RSG1L4Q2IKn8XKdBRSa3RjsJiVZMOugLJraPvRMEyBg=";
   };
 
   patches = [
diff --git a/pkgs/development/interpreters/rune/default.nix b/pkgs/development/interpreters/rune/default.nix
index c07cc5577fe65..93a102da07d1f 100644
--- a/pkgs/development/interpreters/rune/default.nix
+++ b/pkgs/development/interpreters/rune/default.nix
@@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "An interpreter for the Rune Language, an embeddable dynamic programming language for Rust";
+    description = "Interpreter for the Rune Language, an embeddable dynamic programming language for Rust";
     homepage = "https://rune-rs.github.io/";
     changelog = "https://github.com/rune-rs/rune/releases/tag/${version}";
     license = with licenses; [ asl20 mit ];
diff --git a/pkgs/development/interpreters/s9fes/default.nix b/pkgs/development/interpreters/s9fes/default.nix
index 7cf60b00eb9b0..4107b28e1cf9f 100644
--- a/pkgs/development/interpreters/s9fes/default.nix
+++ b/pkgs/development/interpreters/s9fes/default.nix
@@ -22,7 +22,11 @@ stdenv.mkDerivation rec {
   '';
 
   buildInputs = [ ncurses ];
+  preBuild = ''
+    makeFlagsArray+=(CFLAGS="-O2 -std=c89")
+  '';
   makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "PREFIX=$(out)" ];
+
   enableParallelBuilding = true;
   # ...-bash-5.2-p15/bin/bash: line 1: ...-s9fes-20181205/bin/s9help: No such file or directory
   # make: *** [Makefile:157: install-util] Error 1
diff --git a/pkgs/development/interpreters/scsh/default.nix b/pkgs/development/interpreters/scsh/default.nix
index 7587236487c11..35fec3d2a2b50 100644
--- a/pkgs/development/interpreters/scsh/default.nix
+++ b/pkgs/development/interpreters/scsh/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   passthru.updateScript = unstableGitUpdater { };
 
   meta = with lib; {
-    description = "A Scheme shell";
+    description = "Scheme shell";
     homepage = "http://www.scsh.net/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ joachifm ];
diff --git a/pkgs/development/interpreters/snobol4/default.nix b/pkgs/development/interpreters/snobol4/default.nix
index d5970c4ab873b..2d276e6a03629 100644
--- a/pkgs/development/interpreters/snobol4/default.nix
+++ b/pkgs/development/interpreters/snobol4/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The Macro Implementation of SNOBOL4 in C";
+    description = "Macro Implementation of SNOBOL4 in C";
     longDescription = ''
       An open source port of Macro SNOBOL4 (The original Bell Telephone Labs implementation, written in SIL macros) by Phil Budne.
       Supports full SNOBOL4 language plus SPITBOL, [Blocks](https://www.regressive.org/snobol4/blocks/) and other extensions.
diff --git a/pkgs/development/interpreters/sollya/default.nix b/pkgs/development/interpreters/sollya/default.nix
index 69ec182f61f3b..2b741aec29ab1 100644
--- a/pkgs/development/interpreters/sollya/default.nix
+++ b/pkgs/development/interpreters/sollya/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A tool environment for safe floating-point code development";
+    description = "Tool environment for safe floating-point code development";
     mainProgram = "sollya";
     homepage = "https://www.sollya.org/";
     license = licenses.cecill-c;
diff --git a/pkgs/development/interpreters/starlark-rust/default.nix b/pkgs/development/interpreters/starlark-rust/default.nix
index 0002517c6c919..499114b3f2581 100644
--- a/pkgs/development/interpreters/starlark-rust/default.nix
+++ b/pkgs/development/interpreters/starlark-rust/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-60JXCBXsXei0INP0rozWqFU8dKZovJ9mn5ns87ziUac=";
 
   meta = with lib; {
-    description = "A Rust implementation of the Starlark language";
+    description = "Rust implementation of the Starlark language";
     homepage = "https://github.com/facebook/starlark-rust";
     changelog = "https://github.com/facebook/starlark-rust/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/development/interpreters/tcl/generic.nix b/pkgs/development/interpreters/tcl/generic.nix
index 5ee967161f832..63eafd9c3e81c 100644
--- a/pkgs/development/interpreters/tcl/generic.nix
+++ b/pkgs/development/interpreters/tcl/generic.nix
@@ -49,7 +49,7 @@ let
       '';
 
       meta = with lib; {
-        description = "The Tcl scripting language";
+        description = "Tcl scripting language";
         homepage = "https://www.tcl.tk/";
         license = licenses.tcltk;
         platforms = platforms.all;
diff --git a/pkgs/development/interpreters/unicon-lang/default.nix b/pkgs/development/interpreters/unicon-lang/default.nix
index bca8ef1d159c3..8dfa36e586b88 100644
--- a/pkgs/development/interpreters/unicon-lang/default.nix
+++ b/pkgs/development/interpreters/unicon-lang/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
-    description = "A very high level, goal-directed, object-oriented, general purpose applications language";
+    description = "Very high level, goal-directed, object-oriented, general purpose applications language";
     maintainers = with maintainers; [ vrthra ];
     platforms = platforms.linux;
     license = licenses.gpl2;
diff --git a/pkgs/development/interpreters/wamr/default.nix b/pkgs/development/interpreters/wamr/default.nix
index 58d9fb2ef592f..06fc84eeae7ec 100644
--- a/pkgs/development/interpreters/wamr/default.nix
+++ b/pkgs/development/interpreters/wamr/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "wamr";
-  version = "2.0.0";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "bytecodealliance";
     repo = "wasm-micro-runtime";
     rev = "WAMR-${finalAttrs.version}";
-    hash = "sha256-7k7FRe1mBH/+r9M19pYGAHX5rt54AomeWDBW4lwCfu4=";
+    hash = "sha256-2jZnvfW/f928DxVwd+z/BVPNPWfbyV8Rjek23NQhFz8=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/interpreters/wasm3/default.nix b/pkgs/development/interpreters/wasm3/default.nix
index d5df9e66ebf4c..ab7ed45dcc711 100644
--- a/pkgs/development/interpreters/wasm3/default.nix
+++ b/pkgs/development/interpreters/wasm3/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/wasm3/wasm3";
-    description = "The fastest WebAssembly interpreter, and the most universal runtime.";
+    description = "Fastest WebAssembly interpreter, and the most universal runtime";
     platforms = platforms.all;
     maintainers = with maintainers; [ malbarbo ];
     license = licenses.mit;
diff --git a/pkgs/development/interpreters/wasmer/default.nix b/pkgs/development/interpreters/wasmer/default.nix
index a509107ec1636..4b855186bc312 100644
--- a/pkgs/development/interpreters/wasmer/default.nix
+++ b/pkgs/development/interpreters/wasmer/default.nix
@@ -14,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wasmer";
-  version = "4.2.7";
+  version = "4.3.2";
 
   src = fetchFromGitHub {
     owner = "wasmerio";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-jyA1DUouODq9giAWeGOw7VMGwA+FbyqpEU77jtCb5v4=";
+    hash = "sha256-FxbODuIWGHdhGAt6EFDwrashmYFy+ldkfUucUkLzyms=";
   };
 
-  cargoHash = "sha256-EpHM8YaT2Ty9IBX/gXEa9n8006A9Y5/fq/ueODxHlnc=";
+  cargoHash = "sha256-ZPYqMXzX7yMaNrFUKuvUPyfQovd/E5/3T3n535oD+Tw=";
 
   nativeBuildInputs = [
     rustPlatform.bindgenHook
@@ -58,7 +58,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "The Universal WebAssembly Runtime";
+    description = "Universal WebAssembly Runtime";
     mainProgram = "wasmer";
     longDescription = ''
       Wasmer is a standalone WebAssembly runtime for running WebAssembly outside
diff --git a/pkgs/development/interpreters/wasmtime/default.nix b/pkgs/development/interpreters/wasmtime/default.nix
index afa65741892c9..c9123773b137f 100644
--- a/pkgs/development/interpreters/wasmtime/default.nix
+++ b/pkgs/development/interpreters/wasmtime/default.nix
@@ -1,31 +1,40 @@
-{ rustPlatform, fetchFromGitHub, Security, lib, stdenv }:
+{ rustPlatform, rustfmt, fetchFromGitHub, Security, lib, stdenv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "wasmtime";
-  version = "21.0.0";
+  version = "21.0.1";
 
   src = fetchFromGitHub {
     owner = "bytecodealliance";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-2iCtAgOhO7ydmaSKFFdiMMImrJHv53EtVeJ6tn3F7/Y=";
+    hash = "sha256-KmxjZZC31n1gtuT89sc9Tpo9hmDivA8p4YK1L0/HFoM=";
     fetchSubmodules = true;
   };
 
   # Disable cargo-auditable until https://github.com/rust-secure-code/cargo-auditable/issues/124 is solved.
   auditable = false;
-  cargoHash = "sha256-vYOSX01jYJ4x6QaGazYXA1QJiR501zlaV3QZfeDDUdw=";
+  cargoHash = "sha256-TSk3EljqUdSydXUdRftWar9Ss81N/WMNvSTvM0JUk98=";
   cargoBuildFlags = [ "--package" "wasmtime-cli" "--package" "wasmtime-c-api" ];
 
   outputs = [ "out" "dev" ];
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
-  # SIMD tests are only executed on platforms that support all
-  # required processor features (e.g. SSE3, SSSE3 and SSE4.1 on x86_64):
-  # https://github.com/bytecodealliance/wasmtime/blob/v9.0.0/cranelift/codegen/src/isa/x64/mod.rs#L220
-  doCheck = with stdenv.buildPlatform; (isx86_64 -> sse3Support && ssse3Support && sse4_1Support);
-  cargoTestFlags = ["--package" "wasmtime-runtime"];
+  # rustfmt is brought into scope to fix the following
+  #   warning: cranelift-codegen@0.108.0:
+  #   Failed to run `rustfmt` on ISLE-generated code: Os
+  #   { code: 2, kind: NotFound, message: "No such file or directory" }
+  nativeBuildInputs = [ rustfmt ];
+
+  doCheck = with stdenv.buildPlatform;
+    # SIMD tests are only executed on platforms that support all
+    # required processor features (e.g. SSE3, SSSE3 and SSE4.1 on x86_64):
+    # https://github.com/bytecodealliance/wasmtime/blob/v9.0.0/cranelift/codegen/src/isa/x64/mod.rs#L220
+    (isx86_64 -> sse3Support && ssse3Support && sse4_1Support) &&
+    # The dependency `wasi-preview1-component-adapter` fails to build because of:
+    # error: linker `rust-lld` not found
+    !isAarch64;
 
   postInstall = ''
     # move libs from out to dev
diff --git a/pkgs/development/interpreters/wazero/default.nix b/pkgs/development/interpreters/wazero/default.nix
index 50b7b05da333f..68bea241653c5 100644
--- a/pkgs/development/interpreters/wazero/default.nix
+++ b/pkgs/development/interpreters/wazero/default.nix
@@ -41,7 +41,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A zero dependency WebAssembly runtime for Go developers";
+    description = "Zero dependency WebAssembly runtime for Go developers";
     homepage = "https://github.com/tetratelabs/wazero";
     changelog = "https://github.com/tetratelabs/wazero/releases/tag/${src.rev}";
     license = licenses.asl20;
diff --git a/pkgs/development/interpreters/yaegi/default.nix b/pkgs/development/interpreters/yaegi/default.nix
index 1bc94848313b7..1721417e7ec91 100644
--- a/pkgs/development/interpreters/yaegi/default.nix
+++ b/pkgs/development/interpreters/yaegi/default.nix
@@ -36,7 +36,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A Go interpreter";
+    description = "Go interpreter";
     mainProgram = "yaegi";
     homepage = "https://github.com/traefik/yaegi";
     changelog = "https://github.com/traefik/yaegi/releases/tag/${src.rev}";
diff --git a/pkgs/development/interpreters/yex-lang/default.nix b/pkgs/development/interpreters/yex-lang/default.nix
index d01aa730a44da..772a2b5acf529 100644
--- a/pkgs/development/interpreters/yex-lang/default.nix
+++ b/pkgs/development/interpreters/yex-lang/default.nix
@@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/nonamescm/yex-lang";
-    description = "A functional scripting language written in rust";
+    description = "Functional scripting language written in rust";
     license = licenses.mit;
     maintainers = with maintainers; [ AndersonTorres ];
     mainProgram = "yex";
diff --git a/pkgs/development/interpreters/zuo/default.nix b/pkgs/development/interpreters/zuo/default.nix
index 46d22b9399574..9bfb925586c4a 100644
--- a/pkgs/development/interpreters/zuo/default.nix
+++ b/pkgs/development/interpreters/zuo/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A Tiny Racket for Scripting";
+    description = "Tiny Racket for Scripting";
     mainProgram = "zuo";
     homepage = "https://github.com/racket/zuo";
     license = licenses.mit;
diff --git a/pkgs/development/julia-modules/default.nix b/pkgs/development/julia-modules/default.nix
index f2c90752f098f..10db447178644 100644
--- a/pkgs/development/julia-modules/default.nix
+++ b/pkgs/development/julia-modules/default.nix
@@ -1,7 +1,6 @@
 { lib
 , callPackage
 , runCommand
-, fetchFromGitHub
 , fetchgit
 , fontconfig
 , git
diff --git a/pkgs/development/julia-modules/depot.nix b/pkgs/development/julia-modules/depot.nix
index 5614f1427aa5e..c2189ebaf94c0 100644
--- a/pkgs/development/julia-modules/depot.nix
+++ b/pkgs/development/julia-modules/depot.nix
@@ -52,7 +52,10 @@ runCommand "julia-depot" {
   # for finding the extra packages we need to add
   python ${./python}/find_package_implications.py "${closureYaml}" '${lib.generators.toJSON {} packageImplications}' extra_package_names.txt
 
-  # git config --global --add safe.directory '/nix'
+  # Work around new git security features added in git 2.44.1
+  # See https://github.com/NixOS/nixpkgs/issues/315890
+  git config --global --add safe.directory '*'
+
   export JULIA_PKG_USE_CLI_GIT="true"
 
   # At time of writing, this appears to be the only way to turn precompiling's
diff --git a/pkgs/development/julia-modules/tests/julia-top-n/app/Main.hs b/pkgs/development/julia-modules/tests/julia-top-n/app/Main.hs
index ed9f8d405b12c..55f5fd3cfeef8 100644
--- a/pkgs/development/julia-modules/tests/julia-top-n/app/Main.hs
+++ b/pkgs/development/julia-modules/tests/julia-top-n/app/Main.hs
@@ -4,6 +4,7 @@
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE LambdaCase #-}
 {-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE QuasiQuotes #-}
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 {-# LANGUAGE ViewPatterns #-}
@@ -17,6 +18,7 @@ import qualified Data.Aeson.Key             as A
 import qualified Data.Aeson.KeyMap          as HM
 import qualified Data.ByteString.Lazy.Char8 as BL8
 import qualified Data.List as L
+import Data.String.Interpolate
 import Data.Text as T
 import qualified Data.Vector as V
 import qualified Data.Yaml as Yaml
@@ -33,6 +35,7 @@ data Args = Args {
   countFilePath :: FilePath
   , topN :: Int
   , parallelism :: Int
+  , juliaAttr :: Text
   }
 
 argsParser :: Parser Args
@@ -40,6 +43,7 @@ argsParser = Args
   <$> strOption (long "count-file" <> short 'c' <> help "YAML file containing package names and counts")
   <*> option auto (long "top-n" <> short 'n' <> help "How many of the top packages to build" <> showDefault <> value 100 <> metavar "INT")
   <*> option auto (long "parallelism" <> short 'p' <> help "How many builds to run at once" <> showDefault <> value 10 <> metavar "INT")
+  <*> strOption (long "julia-attr" <> short 'a' <> help "Which Julia attr to build with" <> showDefault <> value "julia" <> metavar "STRING")
 
 data NameAndCount = NameAndCount {
   name :: Text
@@ -69,7 +73,7 @@ main = do
           introduce' (defaultNodeOptions { nodeOptionsVisibilityThreshold = 0 }) (T.unpack name) julia (newMVar Nothing) (const $ return ()) $ do
             it "Builds" $ do
               let cp = proc "nix" ["build", "--impure", "--no-link", "--json", "--expr"
-                                  , "with import ../../../../. {}; julia.withPackages [\"" <> T.unpack name <> "\"]"
+                                  , [i|with import ../../../../. {}; #{juliaAttr}.withPackages ["#{name}"]|]
                                   ]
               output <- readCreateProcessWithLogging cp ""
               juliaPath <- case A.eitherDecode (BL8.pack output) of
diff --git a/pkgs/development/julia-modules/tests/julia-top-n/default.nix b/pkgs/development/julia-modules/tests/julia-top-n/default.nix
index ab8ed948e1ea9..9e42e19dd309b 100644
--- a/pkgs/development/julia-modules/tests/julia-top-n/default.nix
+++ b/pkgs/development/julia-modules/tests/julia-top-n/default.nix
@@ -4,7 +4,16 @@
 mkDerivation {
   pname = "julia-top-n";
   version = "0.1.0.0";
-  src = ./.;
+  src = lib.fileset.toSource {
+    root = ./.;
+    fileset = lib.fileset.unions [
+      ./app
+      ./julia-top-n.cabal
+      ./package.yaml
+      ./stack.yaml
+      ./stack.yaml.lock
+    ];
+  };
   isLibrary = false;
   isExecutable = true;
   executableHaskellDepends = [
diff --git a/pkgs/development/julia-modules/tests/julia-top-n/julia-top-n.cabal b/pkgs/development/julia-modules/tests/julia-top-n/julia-top-n.cabal
index 834adac33f16a..e3a319702f7a7 100644
--- a/pkgs/development/julia-modules/tests/julia-top-n/julia-top-n.cabal
+++ b/pkgs/development/julia-modules/tests/julia-top-n/julia-top-n.cabal
@@ -27,6 +27,7 @@ executable julia-top-n-exe
     , filepath
     , optparse-applicative
     , sandwich
+    , string-interpolate
     , text
     , unliftio
     , vector
diff --git a/pkgs/development/julia-modules/tests/julia-top-n/package.yaml b/pkgs/development/julia-modules/tests/julia-top-n/package.yaml
index ffb9ab1d12ea4..404ebc72dd674 100644
--- a/pkgs/development/julia-modules/tests/julia-top-n/package.yaml
+++ b/pkgs/development/julia-modules/tests/julia-top-n/package.yaml
@@ -11,6 +11,7 @@ dependencies:
 - filepath
 - optparse-applicative
 - sandwich
+- string-interpolate
 - text
 - unliftio
 - vector
diff --git a/pkgs/development/libraries/CoinMP/default.nix b/pkgs/development/libraries/CoinMP/default.nix
deleted file mode 100644
index 0a2954f4a7dd4..0000000000000
--- a/pkgs/development/libraries/CoinMP/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ lib, stdenv, fetchurl }:
-
-stdenv.mkDerivation rec {
-  pname = "CoinMP";
-  version = "1.8.4";
-
-  src = fetchurl {
-    url = "https://www.coin-or.org/download/source/CoinMP/${pname}-${version}.tgz";
-    sha256 = "13d3j1sdcjzpijp4qks3n0zibk649ac3hhv88hkk8ffxrc6gnn9l";
-  };
-
-  enableParallelBuilding = true;
-
-  env = lib.optionalAttrs stdenv.cc.isClang {
-    CXXFLAGS = "-std=c++14";
-  };
-
-  hardeningDisable = [ "format" ];
-
-  meta = with lib; {
-    homepage = "https://projects.coin-or.org/CoinMP/";
-    description = "COIN-OR lightweight API for COIN-OR libraries CLP, CBC, and CGL";
-    platforms = platforms.unix;
-    license = licenses.epl10;
-  };
-}
diff --git a/pkgs/development/libraries/SDL/default.nix b/pkgs/development/libraries/SDL/default.nix
index 2e81550c28a54..8038407090b43 100644
--- a/pkgs/development/libraries/SDL/default.nix
+++ b/pkgs/development/libraries/SDL/default.nix
@@ -126,7 +126,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A cross-platform multimedia library";
+    description = "Cross-platform multimedia library";
     mainProgram = "sdl-config";
     homepage    = "http://www.libsdl.org/";
     maintainers = with maintainers; [ lovek323 ];
diff --git a/pkgs/development/libraries/SDL2/default.nix b/pkgs/development/libraries/SDL2/default.nix
index 1e63f3bfdef18..91903c9f68516 100644
--- a/pkgs/development/libraries/SDL2/default.nix
+++ b/pkgs/development/libraries/SDL2/default.nix
@@ -58,13 +58,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "SDL2";
-  version = "2.30.2";
+  version = "2.30.3";
 
   src = fetchFromGitHub {
     owner = "libsdl-org";
     repo = "SDL";
     rev = "release-${finalAttrs.version}";
-    hash = "sha256-yYYtsF6+IKynXpfay0rUmCQPdL8vp6dlmon8N7UG89A=";
+    hash = "sha256-ycY/AkWulV3vAu/+vKw+j/b6jTZWjqKjIgjRwqNHFl8=";
   };
   dontDisableStatic = if withStatic then 1 else 0;
   outputs = [ "out" "dev" ];
@@ -179,7 +179,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A cross-platform multimedia library";
+    description = "Cross-platform multimedia library";
     mainProgram = "sdl2-config";
     homepage = "http://www.libsdl.org/";
     changelog = "https://github.com/libsdl-org/SDL/releases/tag/release-${finalAttrs.version}";
diff --git a/pkgs/development/libraries/SDL2_gfx/default.nix b/pkgs/development/libraries/SDL2_gfx/default.nix
deleted file mode 100644
index 83b57b42c7cd1..0000000000000
--- a/pkgs/development/libraries/SDL2_gfx/default.nix
+++ /dev/null
@@ -1,51 +0,0 @@
-{ lib, stdenv, darwin, fetchurl, pkg-config, SDL2, testers }:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "SDL2_gfx";
-  version = "1.0.4";
-
-  src = fetchurl {
-    url = "http://www.ferzkopp.net/Software/${finalAttrs.pname}/${finalAttrs.pname}-${finalAttrs.version}.tar.gz";
-    sha256 = "0qk2ax7f7grlxb13ba0ll3zlm8780s7j8fmrhlpxzjgdvldf1q33";
-  };
-
-  nativeBuildInputs = [ pkg-config ];
-
-  buildInputs = [ SDL2 ]
-    ++ lib.optional stdenv.isDarwin darwin.libobjc;
-
-  configureFlags = [(if stdenv.hostPlatform.isx86 then "--enable-mmx" else "--disable-mmx")]
-     ++ lib.optional stdenv.isDarwin "--disable-sdltest";
-
-  passthru.tests.pkg-config = testers.hasPkgConfigModules {
-    package = finalAttrs.finalPackage;
-  };
-
-  meta = with lib; {
-    description = "SDL graphics drawing primitives and support functions";
-
-    longDescription = ''
-      The SDL_gfx library evolved out of the SDL_gfxPrimitives code
-      which provided basic drawing routines such as lines, circles or
-      polygons and SDL_rotozoom which implemented a interpolating
-      rotozoomer for SDL surfaces.
-
-      The current components of the SDL_gfx library are:
-
-          * Graphic Primitives (SDL_gfxPrimitves.h)
-          * Rotozoomer (SDL_rotozoom.h)
-          * Framerate control (SDL_framerate.h)
-          * MMX image filters (SDL_imageFilter.h)
-          * Custom Blit functions (SDL_gfxBlitFunc.h)
-
-      The library is backwards compatible to the above mentioned
-      code. Its is written in plain C and can be used in C++ code.
-    '';
-
-    homepage = "http://www.ferzkopp.net/wordpress/2016/01/02/sdl_gfx-sdl2_gfx/";
-    license = licenses.zlib;
-    maintainers = with maintainers; [ cpages ];
-    platforms = platforms.unix;
-    pkgConfigModules = [ "SDL2_gfx" ];
-  };
-})
diff --git a/pkgs/development/libraries/SDL2_ttf/default.nix b/pkgs/development/libraries/SDL2_ttf/default.nix
deleted file mode 100644
index 3407478b39b1c..0000000000000
--- a/pkgs/development/libraries/SDL2_ttf/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ lib, stdenv, pkg-config, darwin, fetchurl, SDL2, freetype, harfbuzz, libGL, testers }:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "SDL2_ttf";
-  version = "2.22.0";
-
-  src = fetchurl {
-    url = "https://www.libsdl.org/projects/SDL_ttf/release/${finalAttrs.pname}-${finalAttrs.version}.tar.gz";
-    sha256 = "sha256-1Iy9HOR1ueF4IGvzty1Wtm2E1E9krAWAMyg5YjTWdyM=";
-  };
-
-  configureFlags = [ "--disable-harfbuzz-builtin" ]
-    ++ lib.optionals stdenv.isDarwin [ "--disable-sdltest" ];
-
-  nativeBuildInputs = [ pkg-config ];
-
-  buildInputs = [ SDL2 freetype harfbuzz ]
-    ++ lib.optional (!stdenv.isDarwin) libGL
-    ++ lib.optional stdenv.isDarwin darwin.libobjc;
-
-  passthru.tests.pkg-config = testers.hasPkgConfigModules {
-    package = finalAttrs.finalPackage;
-  };
-
-  meta = with lib; {
-    description = "Support for TrueType (.ttf) font files with Simple Directmedia Layer";
-    platforms = platforms.unix;
-    license = licenses.zlib;
-    homepage = "https://github.com/libsdl-org/SDL_ttf";
-    pkgConfigModules = [ "SDL2_ttf" ];
-  };
-})
diff --git a/pkgs/development/libraries/SDL_Pango/default.nix b/pkgs/development/libraries/SDL_Pango/default.nix
deleted file mode 100644
index e24af838c65ed..0000000000000
--- a/pkgs/development/libraries/SDL_Pango/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib, stdenv, fetchpatch, fetchurl, SDL, autoreconfHook, pango, pkg-config }:
-
-stdenv.mkDerivation rec {
-  pname = "SDL_Pango";
-  version = "0.1.2";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/sdlpango/${pname}-${version}.tar.gz";
-    sha256 = "197baw1dsg0p4pljs5k0fshbyki00r4l49m1drlpqw6ggawx6xbz";
-  };
-
-  patches = [
-    (fetchpatch {
-      url = "https://sources.debian.org/data/main/s/sdlpango/0.1.2-6/debian/patches/api_additions.patch";
-      sha256 = "00p5ry5gd3ixm257p9i2c4jg0qj8ipk8nf56l7c9fma8id3zxyld";
-    })
-    ./fixes.patch
-  ];
-
-  preConfigure = "autoreconf -i -f";
-  configureFlags = lib.optional stdenv.isDarwin "--disable-sdltest";
-
-  nativeBuildInputs = [ pkg-config autoreconfHook ];
-  buildInputs = [ SDL pango ];
-
-  meta = with lib; {
-    description = "Connects the Pango rendering engine to SDL";
-    license = licenses.lgpl21Plus;
-    platforms = platforms.all;
-    homepage = "https://sdlpango.sourceforge.net/";
-    maintainers = with maintainers; [ puckipedia ];
-  };
-}
diff --git a/pkgs/development/libraries/SDL_audiolib/default.nix b/pkgs/development/libraries/SDL_audiolib/default.nix
deleted file mode 100644
index 9b8a163b206c2..0000000000000
--- a/pkgs/development/libraries/SDL_audiolib/default.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, cmake
-, SDL2
-, pkg-config
-}:
-
-stdenv.mkDerivation rec {
-  pname = "SDL_audiolib";
-  version = "unstable-2022-04-17";
-
-  src = fetchFromGitHub {
-    owner = "realnc";
-    repo = "SDL_audiolib";
-    rev = "908214606387ef8e49aeacf89ce848fb36f694fc";
-    sha256 = "sha256-11KkwIhG1rX7yDFSj92NJRO9L2e7XZGq2gOJ54+sN/A=";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    pkg-config
-  ];
-
-  buildInputs = [
-    SDL2
-  ];
-
-  cmakeFlags = [
-    "-DUSE_RESAMP_SRC=OFF"
-    "-DUSE_RESAMP_SOXR=OFF"
-    "-DUSE_DEC_DRFLAC=OFF"
-    "-DUSE_DEC_OPENMPT=OFF"
-    "-DUSE_DEC_XMP=OFF"
-    "-DUSE_DEC_MODPLUG=OFF"
-    "-DUSE_DEC_MPG123=OFF"
-    "-DUSE_DEC_SNDFILE=OFF"
-    "-DUSE_DEC_LIBVORBIS=OFF"
-    "-DUSE_DEC_LIBOPUSFILE=OFF"
-    "-DUSE_DEC_MUSEPACK=OFF"
-    "-DUSE_DEC_FLUIDSYNTH=OFF"
-    "-DUSE_DEC_BASSMIDI=OFF"
-    "-DUSE_DEC_WILDMIDI=OFF"
-    "-DUSE_DEC_ADLMIDI=OFF"
-  ];
-
-  meta = with lib; {
-    description = "Audio decoding, resampling and mixing library for SDL";
-    homepage = "https://github.com/realnc/SDL_audiolib";
-    license = licenses.lgpl3Plus;
-    maintainers = with maintainers; [ ];
-  };
-}
diff --git a/pkgs/development/libraries/SDL_compat/default.nix b/pkgs/development/libraries/SDL_compat/default.nix
index f7d997cd52e59..3c3df10f91672 100644
--- a/pkgs/development/libraries/SDL_compat/default.nix
+++ b/pkgs/development/libraries/SDL_compat/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A cross-platform multimedia library - build SDL 1.2 applications against 2.0";
+    description = "Cross-platform multimedia library - build SDL 1.2 applications against 2.0";
     mainProgram = "sdl-config";
     homepage = "https://www.libsdl.org/";
     license = licenses.zlib;
diff --git a/pkgs/development/libraries/SDL_gfx/default.nix b/pkgs/development/libraries/SDL_gfx/default.nix
deleted file mode 100644
index bccc11f43d418..0000000000000
--- a/pkgs/development/libraries/SDL_gfx/default.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ lib, stdenv, fetchurl, SDL }:
-
-stdenv.mkDerivation rec {
-  pname = "SDL_gfx";
-  version = "2.0.27";
-
-  src = fetchurl {
-    url = "https://www.ferzkopp.net/Software/SDL_gfx-2.0/${pname}-${version}.tar.gz";
-    sha256 = "sha256-37FaxfjOeklS3BLSrtl0dRjF5rM1wOMWNtI/k8Yw9Bk=";
-  };
-
-  # SDL_gfx.pc refers to sdl.pc and some SDL_gfx headers import SDL.h
-  propagatedBuildInputs = [ SDL ];
-  buildInputs = [ SDL ] ;
-
-  configureFlags = [ "--disable-mmx" ]
-    ++ lib.optional stdenv.isDarwin "--disable-sdltest";
-
-  meta = with lib; {
-    description = "SDL graphics drawing primitives and support functions";
-
-    longDescription = ''
-      The SDL_gfx library evolved out of the SDL_gfxPrimitives code
-      which provided basic drawing routines such as lines, circles or
-      polygons and SDL_rotozoom which implemented a interpolating
-      rotozoomer for SDL surfaces.
-
-      The current components of the SDL_gfx library are:
-
-        * Graphic Primitives (SDL_gfxPrimitves.h)
-        * Rotozoomer (SDL_rotozoom.h)
-        * Framerate control (SDL_framerate.h)
-        * MMX image filters (SDL_imageFilter.h)
-        * Custom Blit functions (SDL_gfxBlitFunc.h)
-
-      The library is backwards compatible to the above mentioned
-      code. Its is written in plain C and can be used in C++ code.
-    '';
-
-    homepage = "https://sourceforge.net/projects/sdlgfx/";
-    license = licenses.zlib;
-
-    maintainers = with maintainers; [ ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/development/libraries/SDL_gpu/default.nix b/pkgs/development/libraries/SDL_gpu/default.nix
deleted file mode 100644
index dc52e6afeea77..0000000000000
--- a/pkgs/development/libraries/SDL_gpu/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, cmake, SDL2, libGLU }:
-
-stdenv.mkDerivation {
-  pname = "SDL_gpu-unstable";
-  version = "2019-01-24";
-
-  src = fetchFromGitHub {
-    owner = "grimfang4";
-    repo = "sdl-gpu";
-    rev = "e3d350b325a0e0d0b3007f69ede62313df46c6ef";
-    sha256 = "0kibcaim01inb6xxn4mr6affn4hm50vz9kahb5k9iz8dmdsrhxy1";
-  };
-
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ SDL2 libGLU ];
-
-  cmakeFlags = [
-    "-DSDL_gpu_BUILD_DEMOS=OFF"
-    "-DSDL_gpu_BUILD_TOOLS=OFF"
-    "-DSDL_gpu_BUILD_VIDEO_TEST=OFF"
-    "-DSDL_gpu_BUILD_TESTS=OFF"
-  ];
-
-  patchPhase = ''
-    sed -ie '210s#''${OUTPUT_DIR}/lib#''${CMAKE_INSTALL_LIBDIR}#' src/CMakeLists.txt
-    sed -ie '213s#''${OUTPUT_DIR}/lib#''${CMAKE_INSTALL_LIBDIR}#' src/CMakeLists.txt
-  '';
-
-  meta = with lib; {
-    description = "A library for high-performance, modern 2D graphics with SDL written in C";
-    homepage = "https://github.com/grimfang4/sdl-gpu";
-    license = licenses.mit;
-    maintainers = with maintainers; [ pmiddend ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/development/libraries/SDL_image/default.nix b/pkgs/development/libraries/SDL_image/default.nix
deleted file mode 100644
index 30f71bd3e520e..0000000000000
--- a/pkgs/development/libraries/SDL_image/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib, stdenv, fetchurl, fetchpatch, SDL, libpng, libjpeg, libtiff, giflib, libXpm, pkg-config }:
-
-stdenv.mkDerivation rec {
-  pname = "SDL_image";
-  version = "1.2.12";
-
-  src = fetchurl {
-    url    = "https://www.libsdl.org/projects/SDL_image/release/${pname}-${version}.tar.gz";
-    sha256 = "16an9slbb8ci7d89wakkmyfvp7c0cval8xw4hkg0842nhhlp540b";
-  };
-
-  patches = [
-    (fetchpatch {
-      name = "CVE-2017-2887";
-      url = "https://github.com/libsdl-org/SDL_image/commit/e7723676825cd2b2ffef3316ec1879d7726618f2.patch";
-      includes = [ "IMG_xcf.c" ];
-      sha256 = "174ka2r95i29nlshzgp6x5vc68v7pi8lhzf33and2b1ms49g4jb7";
-    })
-  ];
-
-  configureFlags = [
-    # Disable its dynamic loading or dlopen will fail because of no proper rpath
-    "--disable-jpg-shared"
-    "--disable-png-shared"
-    "--disable-tif-shared"
-  ] ++ lib.optional stdenv.isDarwin "--disable-sdltest";
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ SDL libpng libjpeg libtiff giflib libXpm ];
-
-  meta = with lib; {
-    description = "SDL image library";
-    homepage    = "http://www.libsdl.org/projects/SDL_image/";
-    maintainers = with maintainers; [ lovek323 ];
-    platforms   = platforms.unix;
-    license     = licenses.zlib;
-  };
-}
diff --git a/pkgs/development/libraries/SDL_net/default.nix b/pkgs/development/libraries/SDL_net/default.nix
deleted file mode 100644
index e902213c9710f..0000000000000
--- a/pkgs/development/libraries/SDL_net/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ lib, stdenv, fetchurl, SDL, pkg-config }:
-
-stdenv.mkDerivation rec {
-  pname = "SDL_net";
-  version = "1.2.8";
-
-  src = fetchurl {
-    url = "http://www.libsdl.org/projects/SDL_net/release/${pname}-${version}.tar.gz";
-    sha256 = "1d5c9xqlf4s1c01gzv6cxmg0r621pq9kfgxcg3197xw4p25pljjz";
-  };
-
-  configureFlags = lib.optional stdenv.isDarwin "--disable-sdltest";
-
-  nativeBuildInputs = [ pkg-config ];
-  propagatedBuildInputs = [ SDL ];
-
-  meta = with lib; {
-    description = "SDL networking library";
-    platforms = platforms.unix;
-    license = licenses.zlib;
-    homepage = "https://www.libsdl.org/projects/SDL_net/release-1.2.html";
-  };
-}
diff --git a/pkgs/development/libraries/SDL_sixel/default.nix b/pkgs/development/libraries/SDL_sixel/default.nix
deleted file mode 100644
index 189fdee05b268..0000000000000
--- a/pkgs/development/libraries/SDL_sixel/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, libsixel }:
-
-stdenv.mkDerivation {
-  pname = "SDL_sixel";
-  version = "1.2-nightly";
-
-  src = fetchFromGitHub {
-    owner = "saitoha";
-    repo = "SDL1.2-SIXEL";
-    rev = "ab3fccac6e34260a617be511bd8c2b2beae41952";
-    sha256 = "0gm2vngdac17lzw9azkhzazmfq3byjddms14gqjk18vnynfqp5wp";
-  };
-
-  configureFlags = [ "--enable-video-sixel" ];
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libsixel ];
-
-  meta = with lib; {
-    description = "A cross-platform multimedia library, that supports sixel graphics on consoles";
-    mainProgram = "sdl-config";
-    homepage    = "https://github.com/saitoha/SDL1.2-SIXEL";
-    maintainers = with maintainers; [ vrthra ];
-    platforms   = platforms.linux;
-    license     = licenses.lgpl21;
-  };
-}
diff --git a/pkgs/development/libraries/SDL_sound/default.nix b/pkgs/development/libraries/SDL_sound/default.nix
deleted file mode 100644
index bdc97e98f3414..0000000000000
--- a/pkgs/development/libraries/SDL_sound/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ stdenv, lib, fetchurl, SDL, libvorbis, flac, libmikmod }:
-
-stdenv.mkDerivation rec {
-  pname = "SDL_sound";
-  version = "1.0.3";
-
-  src = fetchurl {
-    url = "https://icculus.org/SDL_sound/downloads/${pname}-${version}.tar.gz";
-    sha256 = "1pz6g56gcy7pmmz3hhych3iq9jvinml2yjz15fjqjlj8pc5zv69r";
-  };
-
-  buildInputs = [ SDL libvorbis flac libmikmod ];
-
-  configureFlags = lib.optional stdenv.isDarwin "--disable-sdltest";
-
-  meta = with lib; {
-    description = "SDL sound library";
-    platforms = platforms.unix;
-    license = licenses.lgpl21;
-    homepage = "https://www.icculus.org/SDL_sound/";
-  };
-}
diff --git a/pkgs/development/libraries/SDL_stretch/default.nix b/pkgs/development/libraries/SDL_stretch/default.nix
deleted file mode 100644
index 99f86dd258b37..0000000000000
--- a/pkgs/development/libraries/SDL_stretch/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ lib, stdenv, fetchurl, SDL }:
-
-stdenv.mkDerivation rec {
-  pname = "SDL_stretch";
-  version = "0.3.1";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/sdl-stretch/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "1mzw68sn4yxbp8429jg2h23h8xw2qjid51z1f5pdsghcn3x0pgvw";
-  };
-
-  buildInputs = [ SDL ];
-
-  meta = with lib; {
-     description = "Stretch Functions For SDL";
-     homepage = "https://sdl-stretch.sourceforge.net/";
-     license = licenses.lgpl2;
-     platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/development/libraries/SDL_ttf/default.nix b/pkgs/development/libraries/SDL_ttf/default.nix
deleted file mode 100644
index 5d353e3a6c0dd..0000000000000
--- a/pkgs/development/libraries/SDL_ttf/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib, stdenv, fetchurl, fetchpatch, SDL, freetype }:
-
-stdenv.mkDerivation rec {
-  pname = "SDL_ttf";
-  version = "2.0.11";
-
-  src = fetchurl {
-    url = "https://www.libsdl.org/projects/SDL_ttf/release/${pname}-${version}.tar.gz";
-    sha256 = "1dydxd4f5kb1288i5n5568kdk2q7f8mqjr7i7sd33nplxjaxhk3j";
-  };
-
-  patches = [
-    # Bug #830: TTF_RenderGlyph_Shaded is broken
-    (fetchpatch {
-      url = "https://bugzilla-attachments.libsdl.org/attachment.cgi?id=830";
-      sha256 = "0cfznfzg1hs10wl349z9n8chw80i5adl3iwhq4y102g0xrjyb72d";
-    })
-  ];
-
-  patchFlags = [ "-p0" ];
-
-  buildInputs = [ SDL freetype ];
-
-  configureFlags = lib.optional stdenv.isDarwin "--disable-sdltest";
-
-  meta = with lib; {
-    description = "SDL TrueType library";
-    license = licenses.zlib;
-    platforms = platforms.all;
-    homepage = "https://www.libsdl.org/projects/SDL_ttf/release-1.2.html";
-    maintainers = with maintainers; [ abbradar ];
-  };
-}
diff --git a/pkgs/development/libraries/abseil-cpp/202103.nix b/pkgs/development/libraries/abseil-cpp/202103.nix
index 59294496f80ae..04af3153719a3 100644
--- a/pkgs/development/libraries/abseil-cpp/202103.nix
+++ b/pkgs/development/libraries/abseil-cpp/202103.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
-    description = "An open-source collection of C++ code designed to augment the C++ standard library";
+    description = "Open-source collection of C++ code designed to augment the C++ standard library";
     homepage = "https://abseil.io/";
     license = licenses.asl20;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/abseil-cpp/202111.nix b/pkgs/development/libraries/abseil-cpp/202111.nix
index 0c1a173eca44b..303f0c60d6390 100644
--- a/pkgs/development/libraries/abseil-cpp/202111.nix
+++ b/pkgs/development/libraries/abseil-cpp/202111.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , static ? stdenv.hostPlatform.isStatic
 , cxxStandard ? null
@@ -33,7 +32,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
-    description = "An open-source collection of C++ code designed to augment the C++ standard library";
+    description = "Open-source collection of C++ code designed to augment the C++ standard library";
     homepage = "https://abseil.io/";
     license = licenses.asl20;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/abseil-cpp/202206.nix b/pkgs/development/libraries/abseil-cpp/202206.nix
index 5dda078a3a901..b8eb30773a067 100644
--- a/pkgs/development/libraries/abseil-cpp/202206.nix
+++ b/pkgs/development/libraries/abseil-cpp/202206.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
-    description = "An open-source collection of C++ code designed to augment the C++ standard library";
+    description = "Open-source collection of C++ code designed to augment the C++ standard library";
     homepage = "https://abseil.io/";
     license = licenses.asl20;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/abseil-cpp/202301.nix b/pkgs/development/libraries/abseil-cpp/202301.nix
index b2d4f437473f3..62d98d77a38f3 100644
--- a/pkgs/development/libraries/abseil-cpp/202301.nix
+++ b/pkgs/development/libraries/abseil-cpp/202301.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
   buildInputs = [ gtest ];
 
   meta = with lib; {
-    description = "An open-source collection of C++ code designed to augment the C++ standard library";
+    description = "Open-source collection of C++ code designed to augment the C++ standard library";
     homepage = "https://abseil.io/";
     license = licenses.asl20;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/abseil-cpp/202308.nix b/pkgs/development/libraries/abseil-cpp/202308.nix
index f3aac7d1388bd..f03ee08ea58ec 100644
--- a/pkgs/development/libraries/abseil-cpp/202308.nix
+++ b/pkgs/development/libraries/abseil-cpp/202308.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
   buildInputs = [ gtest ];
 
   meta = with lib; {
-    description = "An open-source collection of C++ code designed to augment the C++ standard library";
+    description = "Open-source collection of C++ code designed to augment the C++ standard library";
     homepage = "https://abseil.io/";
     license = licenses.asl20;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/abseil-cpp/202401.nix b/pkgs/development/libraries/abseil-cpp/202401.nix
index 73e663b0d0c6f..8352007b3413a 100644
--- a/pkgs/development/libraries/abseil-cpp/202401.nix
+++ b/pkgs/development/libraries/abseil-cpp/202401.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
   buildInputs = [ gtest ];
 
   meta = with lib; {
-    description = "An open-source collection of C++ code designed to augment the C++ standard library";
+    description = "Open-source collection of C++ code designed to augment the C++ standard library";
     homepage = "https://abseil.io/";
     license = licenses.asl20;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/aften/default.nix b/pkgs/development/libraries/aften/default.nix
index 97b2230f03116..8dd01cc4eabe3 100644
--- a/pkgs/development/libraries/aften/default.nix
+++ b/pkgs/development/libraries/aften/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ "-DSHARED=ON" ];
 
   meta = with lib; {
-    description = "An audio encoder which generates compressed audio streams based on ATSC A/52 specification";
+    description = "Audio encoder which generates compressed audio streams based on ATSC A/52 specification";
     homepage = "https://aften.sourceforge.net/";
     license = licenses.lgpl21Only;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/agda/agda-categories/default.nix b/pkgs/development/libraries/agda/agda-categories/default.nix
index 311bdd595c681..cb0d12a3edfb2 100644
--- a/pkgs/development/libraries/agda/agda-categories/default.nix
+++ b/pkgs/development/libraries/agda/agda-categories/default.nix
@@ -30,7 +30,7 @@ mkDerivation rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "A new Categories library";
+    description = "New Categories library";
     license = licenses.bsd3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ alexarice turion ];
diff --git a/pkgs/development/libraries/agda/standard-library/default.nix b/pkgs/development/libraries/agda/standard-library/default.nix
index d7b49893b96f7..9779277b5e7cf 100644
--- a/pkgs/development/libraries/agda/standard-library/default.nix
+++ b/pkgs/development/libraries/agda/standard-library/default.nix
@@ -22,7 +22,7 @@ mkDerivation rec {
   passthru.tests = { inherit (nixosTests) agda; };
   meta = with lib; {
     homepage = "https://wiki.portal.chalmers.se/agda/pmwiki.php?n=Libraries.StandardLibrary";
-    description = "A standard library for use with the Agda compiler";
+    description = "Standard library for use with the Agda compiler";
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
     maintainers = with maintainers; [ jwiegley mudri alexarice turion ];
diff --git a/pkgs/development/libraries/alembic/default.nix b/pkgs/development/libraries/alembic/default.nix
index 6f73c47f49d1a..800cee267f4a7 100644
--- a/pkgs/development/libraries/alembic/default.nix
+++ b/pkgs/development/libraries/alembic/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec
   '';
 
   meta = with lib; {
-    description = "An open framework for storing and sharing scene data";
+    description = "Open framework for storing and sharing scene data";
     homepage = "http://alembic.io/";
     license = licenses.bsd3;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/alglib/default.nix b/pkgs/development/libraries/alglib/default.nix
index 1ff34a8d1f161..b2e13cdc06651 100644
--- a/pkgs/development/libraries/alglib/default.nix
+++ b/pkgs/development/libraries/alglib/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "alglib3";
-  version = "3.18.0";
+  version = "4.01.0";
 
   src = fetchurl {
     url = "https://www.alglib.net/translator/re/alglib-${version}.cpp.gpl.tgz";
-    sha256 = "0ag8dvcxzzp9riqvk4lhcbwhvh0lq54lbdnsbyr107rjfi2p1vlq";
+    sha256 = "sha256-lejqQbMskjRvSaaUdZ54bF86EIe0AaklnvWSwO6kvvs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/allegro/5.nix b/pkgs/development/libraries/allegro/5.nix
index eaf227fa60d14..94dd96dae0e72 100644
--- a/pkgs/development/libraries/allegro/5.nix
+++ b/pkgs/development/libraries/allegro/5.nix
@@ -3,7 +3,6 @@
 , cmake
 , enet
 , fetchFromGitHub
-, fetchpatch
 , flac
 , freetype
 , gtk3
@@ -99,7 +98,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ "-DCMAKE_SKIP_RPATH=ON" ];
 
   meta = with lib; {
-    description = "A game programming library";
+    description = "Game programming library";
     homepage = "https://liballeg.org/";
     license = licenses.zlib;
     maintainers = [ maintainers.raskin ];
diff --git a/pkgs/development/libraries/allegro/default.nix b/pkgs/development/libraries/allegro/default.nix
index 0318c3133d636..be521257f1955 100644
--- a/pkgs/development/libraries/allegro/default.nix
+++ b/pkgs/development/libraries/allegro/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ "-DCMAKE_SKIP_RPATH=ON" ];
 
   meta = with lib; {
-    description = "A game programming library";
+    description = "Game programming library";
     homepage = "https://liballeg.org/";
     license = licenses.giftware;
     maintainers = [ maintainers.raskin ];
diff --git a/pkgs/development/libraries/alure/default.nix b/pkgs/development/libraries/alure/default.nix
index a1bb5798b0e98..a367b765874bd 100644
--- a/pkgs/development/libraries/alure/default.nix
+++ b/pkgs/development/libraries/alure/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ openal ];
 
   meta = with lib; {
-    description = "A utility library to help manage common tasks with OpenAL applications";
+    description = "Utility library to help manage common tasks with OpenAL applications";
     homepage = "https://github.com/kcat/alure";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/alure2/default.nix b/pkgs/development/libraries/alure2/default.nix
index fa42c4fd53a3d..f18a2a3434e16 100644
--- a/pkgs/development/libraries/alure2/default.nix
+++ b/pkgs/development/libraries/alure2/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ openal libvorbis opusfile libsndfile ];
 
   meta = with lib; {
-    description = "A utility library for OpenAL, providing a C++ API and managing common tasks that include file loading, caching, and streaming";
+    description = "Utility library for OpenAL, providing a C++ API and managing common tasks that include file loading, caching, and streaming";
     homepage = "https://github.com/kcat/alure";
     license = licenses.zlib;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/amdvlk/default.nix b/pkgs/development/libraries/amdvlk/default.nix
index 74e4958671c76..f62ed8b7d0fd1 100644
--- a/pkgs/development/libraries/amdvlk/default.nix
+++ b/pkgs/development/libraries/amdvlk/default.nix
@@ -25,13 +25,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "amdvlk";
-  version = "2023.Q4.2";
+  version = "2024.Q2.2";
 
   src = fetchRepoProject {
     name = "${pname}-src";
     manifest = "https://github.com/GPUOpen-Drivers/AMDVLK.git";
     rev = "refs/tags/v-${version}";
-    sha256 = "CmlFqHxP6WM4b/MnXbRhd2TvV3qhMiC6rHrn/SHtRdc=";
+    sha256 = "MBO7XE2C4y2ZODLGnNw17n1TlKDjD5yyjuvzvTSaQIU=";
   };
 
   buildInputs = [
@@ -59,7 +59,10 @@ in stdenv.mkDerivation rec {
     perl
     pkg-config
     python3
-  ];
+  ] ++ (with python3.pkgs; [
+    jinja2
+    ruamel-yaml
+  ]);
 
   rpath = lib.makeLibraryPath [
     libdrm
diff --git a/pkgs/development/libraries/antic/default.nix b/pkgs/development/libraries/antic/default.nix
index 5a8e00d90f5a3..3534b40122f14 100644
--- a/pkgs/development/libraries/antic/default.nix
+++ b/pkgs/development/libraries/antic/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "An algebraic number theory library";
+    description = "Algebraic number theory library";
     homepage = "https://github.com/flintlib/antic";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ smasher164 ];
diff --git a/pkgs/development/libraries/apr-util/default.nix b/pkgs/development/libraries/apr-util/default.nix
index bd32ad45c47ba..68205d83a42d1 100644
--- a/pkgs/development/libraries/apr-util/default.nix
+++ b/pkgs/development/libraries/apr-util/default.nix
@@ -81,7 +81,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://apr.apache.org/";
-    description = "A companion library to APR, the Apache Portable Runtime";
+    description = "Companion library to APR, the Apache Portable Runtime";
     mainProgram = "apu-1-config";
     maintainers = [ maintainers.eelco ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/apr/default.nix b/pkgs/development/libraries/apr/default.nix
index 6428489173daa..11bdd53945d06 100644
--- a/pkgs/development/libraries/apr/default.nix
+++ b/pkgs/development/libraries/apr/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, buildPackages, autoreconfHook }:
+{ lib, stdenv, fetchurl, buildPackages, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   pname = "apr";
@@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://apr.apache.org/";
-    description = "The Apache Portable Runtime library";
+    description = "Apache Portable Runtime library";
     mainProgram = "apr-1-config";
     platforms = platforms.all;
     license = licenses.asl20;
diff --git a/pkgs/development/libraries/aqbanking/default.nix b/pkgs/development/libraries/aqbanking/default.nix
index 102703107c488..8d5b597d26610 100644
--- a/pkgs/development/libraries/aqbanking/default.nix
+++ b/pkgs/development/libraries/aqbanking/default.nix
@@ -28,7 +28,7 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config gettext ];
 
   meta = with lib; {
-    description = "An interface to banking tasks, file formats and country information";
+    description = "Interface to banking tasks, file formats and country information";
     homepage = "https://www.aquamaniac.de/rdm/";
     hydraPlatforms = [];
     license = licenses.gpl2Plus;
diff --git a/pkgs/development/libraries/arb/default.nix b/pkgs/development/libraries/arb/default.nix
index 2ab8339b00a70..87072265abb26 100644
--- a/pkgs/development/libraries/arb/default.nix
+++ b/pkgs/development/libraries/arb/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A library for arbitrary-precision interval arithmetic";
+    description = "Library for arbitrary-precision interval arithmetic";
     homepage = "https://arblib.org/";
     license = licenses.lgpl21Plus;
     maintainers = teams.sage.members;
diff --git a/pkgs/development/libraries/armadillo/default.nix b/pkgs/development/libraries/armadillo/default.nix
index 4ee5baa38bed0..cedc8edce3952 100644
--- a/pkgs/development/libraries/armadillo/default.nix
+++ b/pkgs/development/libraries/armadillo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "armadillo";
-  version = "12.8.3";
+  version = "12.8.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
-    hash = "sha256-KSJYn2OHeWUEs0Daa7lUvvPYdXTCmFFYkyie3S2JAVE=";
+    hash = "sha256-VY/lJrmQoWY2eO/zr27JP3nuEoyBpMiu8nrTKPrmETg=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/arrayfire/default.nix b/pkgs/development/libraries/arrayfire/default.nix
index 5c4336572b8f4..d52191c56533f 100644
--- a/pkgs/development/libraries/arrayfire/default.nix
+++ b/pkgs/development/libraries/arrayfire/default.nix
@@ -213,7 +213,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A general-purpose library for parallel and massively-parallel computations";
+    description = "General-purpose library for parallel and massively-parallel computations";
     longDescription = ''
       A general-purpose library that simplifies the process of developing software that targets parallel and massively-parallel architectures including CPUs, GPUs, and other hardware acceleration devices.";
     '';
diff --git a/pkgs/development/libraries/aspell/dictionaries.nix b/pkgs/development/libraries/aspell/dictionaries.nix
index ba5b3d6ddd515..60f11fd23d84c 100644
--- a/pkgs/development/libraries/aspell/dictionaries.nix
+++ b/pkgs/development/libraries/aspell/dictionaries.nix
@@ -189,6 +189,7 @@ in rec {
     fullName = "Afrikaans";
     filename = "aspell";
     sha256 = "00p6k2ndi0gzfr5fkbvx4hkcpj223pidjvmxg0r384arrap00q4x";
+    meta.license = lib.licenses.lgpl21Only;
   };
 
   am = buildOfficialDict {
@@ -197,6 +198,7 @@ in rec {
     fullName = "Amharic";
     filename = "aspell6";
     sha256 = "11ylp7gjq94wfacyawvp391lsq26rl1b84f268rjn7l7z0hxs9xz";
+    meta.license = lib.licenses.publicDomain;
   };
 
   ar = buildOfficialDict {
@@ -205,6 +207,7 @@ in rec {
     fullName = "Arabic";
     filename = "aspell6";
     sha256 = "1avw40bp8yi5bnkq64ihm2rldgw34lk89yz281q9bmndh95a47h4";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   ast = buildOfficialDict {
@@ -213,6 +216,7 @@ in rec {
     fullName = "Asturian";
     filename = "aspell6";
     sha256 = "14hg85mxcyvdigf96yvslk7f3v9ngdsxn85qpgwkg31k3k83xwj3";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   az = buildOfficialDict {
@@ -221,6 +225,7 @@ in rec {
     fullName = "Azerbaijani";
     filename = "aspell6";
     sha256 = "1hs4h1jscpxf9f9iyk6mvjqsnhkf0yslkbjhjkasqqcx8pn7cc86";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   be = buildOfficialDict {
@@ -229,6 +234,7 @@ in rec {
     fullName = "Belarusian";
     filename = "aspell5";
     sha256 = "1svls9p7rsfi3hs0afh0cssj006qb4v1ik2yzqgj8hm10c6as2sm";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   bg = buildOfficialDict {
@@ -237,6 +243,7 @@ in rec {
     fullName = "Bulgarian";
     filename = "aspell6";
     sha256 = "1alacmgpfk0yrgq83y23d16fhav1bxmb98kg8d2a5r9bvh2h0mvl";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   bn = buildOfficialDict {
@@ -245,6 +252,7 @@ in rec {
     fullName = "Bengali";
     filename = "aspell6";
     sha256 = "1nc02jd67iggirwxnhdvlvaqm0xfyks35c4psszzj3dhzv29qgxh";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   br = buildOfficialDict {
@@ -253,6 +261,7 @@ in rec {
     fullName = "Breton";
     filename = "aspell";
     sha256 = "0fradnm8424bkq9a9zhpl2132dk7y95xmw45sy1c0lx6rinjl4n2";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   ca = buildOfficialDict {
@@ -261,6 +270,7 @@ in rec {
     fullName = "Catalan";
     filename = "aspell6";
     sha256 = "1fb5y5kgvk25nlsfvc8cai978hg66x3pbp9py56pldc7vxzf9npb";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   cs = buildOfficialDict {
@@ -269,6 +279,7 @@ in rec {
     fullName = "Czech";
     filename = "aspell6";
     sha256 = "0rihj4hsw96pd9casvmpvw3r8040pfa28p1h73x4vyn20zwr3h01";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   csb = buildOfficialDict {
@@ -277,6 +288,7 @@ in rec {
     fullName = "Kashubian";
     filename = "aspell6";
     sha256 = "1612ypkm684wjvc7n081i87mlrrzif9simc7kyn177hfsl3ssrn1";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   cy = buildOfficialDict {
@@ -285,6 +297,7 @@ in rec {
     fullName = "Welsh";
     filename = "aspell";
     sha256 = "15vq601lzz1gi311xym4bv9lv1k21xcfn50jmzamw7h6f36rsffm";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   da = buildOfficialDict {
@@ -293,6 +306,7 @@ in rec {
     fullName = "Danish";
     filename = "aspell5";
     sha256 = "1hfkmiyhgrx5lgrb2mffjbdn1hivrm73wcg7x0iid74p2yb0fjpp";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   de = buildOfficialDict {
@@ -301,6 +315,7 @@ in rec {
     fullName = "German";
     filename = "aspell6";
     sha256 = "0wamclvp66xfmv5wff96v6gdlnfv4y8lx3f8wvxyzm5imwgms4n2";
+    meta.license = lib.licenses.gpl2Plus;
   };
 
   de-alt = buildOfficialDict {
@@ -309,6 +324,7 @@ in rec {
     fullName = "German - Old Spelling";
     filename = "aspell6";
     sha256 = "0wwc2l29svv3fv041fh6vfa5m3hi9q9pkbxibzq1ysrsfin3rl9n";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   el = buildOfficialDict {
@@ -317,6 +333,7 @@ in rec {
     fullName = "Greek";
     filename = "aspell6";
     sha256 = "1ljcc30zg2v2h3w5h5jr5im41mw8jbsgvvhdd2cii2yzi8d0zxja";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   en = buildOfficialDict {
@@ -325,6 +342,13 @@ in rec {
     fullName = "English";
     filename = "aspell6";
     sha256 = "1cwzqkm8gr1w51rpckwlvb43sb0b5nbwy7s8ns5vi250515773sc";
+    # some parts are under a custom free license others are just stated to be"public domain"
+    # see the Copyright file in the source for further information
+    meta.license = with lib.licenses; [
+      free
+      publicDomain
+      bsdOriginalUC
+    ];
   };
 
   eo = buildOfficialDict {
@@ -333,6 +357,7 @@ in rec {
     fullName = "Esperanto";
     filename = "aspell6";
     sha256 = "09vf0mbiicbmyb4bwb7v7lgpabnylg0wy7m3hlhl5rjdda6x3lj1";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   es = buildOfficialDict {
@@ -341,6 +366,7 @@ in rec {
     fullName = "Spanish";
     filename = "aspell6";
     sha256 = "1k5g328ac1hdpp6fsg57d8md6i0aqcwlszp3gbmp5706wyhpydmd";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   et = buildOfficialDict {
@@ -349,6 +375,7 @@ in rec {
     fullName = "Estonian";
     filename = "aspell6";
     sha256 = "0jdjfa2fskirhnb70fy86xryp9r6gkl729ib8qcjmsma7nm5gs5i";
+    meta.license = lib.licenses.lgpl21Only;
   };
 
   fa = buildOfficialDict {
@@ -357,6 +384,7 @@ in rec {
     fullName = "Persian";
     filename = "aspell6";
     sha256 = "0nz1ybwv56q7nl9ip12hfmdch1vyyq2j55bkjcns13lshzm2cba8";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   fi = buildOfficialDict {
@@ -365,6 +393,7 @@ in rec {
     fullName = "Finnish";
     filename = "aspell6";
     sha256 = "07d5s08ba4dd89cmwy9icc01i6fjdykxlb9ravmhdrhi8mxz1mzq";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   fo = buildOfficialDict {
@@ -373,6 +402,7 @@ in rec {
     fullName = "Faroese";
     filename = "aspell5";
     sha256 = "022yz5lll20xrzizcyb7wksm3fgwklnvgnir5la5qkxv770dvq7p";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   fr = buildOfficialDict {
@@ -381,6 +411,7 @@ in rec {
     fullName = "French";
     filename = "aspell";
     sha256 = "14ffy9mn5jqqpp437kannc3559bfdrpk7r36ljkzjalxa53i0hpr";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   fy = buildOfficialDict {
@@ -389,6 +420,7 @@ in rec {
     fullName = "Frisian";
     filename = "aspell6";
     sha256 = "1almi6n4ni91d0rzrk8ig0473m9ypbwqmg56hchz76j51slwyirl";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   ga = buildOfficialDict {
@@ -397,6 +429,7 @@ in rec {
     fullName = "Irish";
     filename = "aspell5";
     sha256 = "0y869mmvfb3bzadfgajwa2rfb0xfhi6m9ydwgxkb9v2claydnps5";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   gd = buildOfficialDict {
@@ -405,6 +438,7 @@ in rec {
     fullName = "Scottish Gaelic";
     filename = "aspell5";
     sha256 = "0a89irv5d65j5m9sb0k36851x5rs0wij12gb2m6hv2nsfn5a05p3";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   gl = buildOfficialDict {
@@ -413,6 +447,7 @@ in rec {
     fullName = "Galician";
     filename = "aspell6";
     sha256 = "12pwghmy18fcdvf9hvhb4q6shi339hb1kwxpkz0bhw0yjxjwzkdk";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   grc = buildOfficialDict {
@@ -421,6 +456,7 @@ in rec {
     fullName = "Ancient Greek";
     filename = "aspell6";
     sha256 = "1zxr8958v37v260fkqd4pg37ns5h5kyqm54hn1hg70wq5cz8h512";
+    meta.license = lib.licenses.gpl3Only;
   };
 
   gu = buildOfficialDict {
@@ -429,6 +465,7 @@ in rec {
     fullName = "Gujarati";
     filename = "aspell6";
     sha256 = "04c38jnl74lpj2jhjz4zpqbs2623vwc71m6wc5h4b1karid14b23";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   gv = buildOfficialDict {
@@ -437,6 +474,7 @@ in rec {
     fullName = "Manx Gaelic";
     filename = "aspell";
     sha256 = "1rknf4yaw9s29c77sdzg98nhnmjwpicdb69igmz1n768npz2drmv";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   he = buildOfficialDict {
@@ -445,6 +483,7 @@ in rec {
     fullName = "Hebrew";
     filename = "aspell6";
     sha256 = "13bhbghx5b8g0119g3wxd4n8mlf707y41vlf59irxjj0kynankfn";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   hi = buildOfficialDict {
@@ -453,6 +492,7 @@ in rec {
     fullName = "Hindi";
     filename = "aspell6";
     sha256 = "0drs374qz4419zx1lf2k281ydxf2750jk5ailafj1x0ncz27h1ys";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   hil = buildOfficialDict {
@@ -461,6 +501,7 @@ in rec {
     fullName = "Hiligaynon";
     filename = "aspell5";
     sha256 = "1s482fsfhzic9qa80al4418q3ni3gfn2bkwkd2y46ydrs17kf2jp";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   hr = buildOfficialDict {
@@ -469,6 +510,7 @@ in rec {
     fullName = "Croatian";
     filename = "aspell";
     sha256 = "09aafyf1vqhaxvcf3jfzf365k394b5pf0iivsr2ix5npah1h7i1a";
+    meta.license = lib.licenses.lgpl21Only;
   };
 
   hsb = buildOfficialDict {
@@ -477,6 +519,7 @@ in rec {
     fullName = "Upper Sorbian";
     filename = "aspell6";
     sha256 = "0bi2vhz7n1vmg43wbbh935pmzihv80iyz9z65j94lxf753j2m7wd";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   hu = buildOfficialDict {
@@ -485,6 +528,7 @@ in rec {
     fullName = "Hungarian";
     filename = "aspell6";
     sha256 = "1d9nybip2k1dz69zly3iv0npbi3yxgfznh1py364nxzrbjsafd9k";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   hus = buildOfficialDict {
@@ -493,6 +537,7 @@ in rec {
     fullName = "Huastec";
     filename = "aspell6";
     sha256 = "09glipfpkz9xch17z11zw1yn2z7jx1f2svfmjn9l6wm1s5qz6a3d";
+    meta.license = lib.licenses.gpl3Only;
   };
 
   hy = buildOfficialDict {
@@ -501,6 +546,7 @@ in rec {
     fullName = "Armenian";
     filename = "aspell6";
     sha256 = "1w5wq8lfl2xp1nid30b1j5qmya4vjyidq0vpr4y3gf53jc08vsid";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   ia = buildOfficialDict {
@@ -509,6 +555,7 @@ in rec {
     fullName = "Interlingua";
     filename = "aspell";
     sha256 = "0bqcpgsa72pga24fv4fkw38b4qqdvqsw97jvzvw7q03dc1cwp5sp";
+    meta.license = lib.licenses.lgpl21Only;
   };
 
   id = buildOfficialDict {
@@ -517,6 +564,7 @@ in rec {
     fullName = "Indonesian";
     filename = "aspell5";
     sha256 = "023knfg0q03f7y5w6xnwa1kspnrcvcnky8xvdms93n2850414faj";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   is = buildOfficialDict {
@@ -525,6 +573,7 @@ in rec {
     fullName = "Icelandic";
     filename = "aspell";
     sha256 = "1mp3248lhbr13cj7iq9zs7h5ix0dcwlprp5cwrkcwafrv8lvsd9h";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   it = buildOfficialDict {
@@ -533,6 +582,7 @@ in rec {
     fullName = "Italian";
     filename = "aspell6";
     sha256 = "1gdf7bc1a0kmxsmphdqq8pl01h667mjsj6hihy6kqy14k5qdq69v";
+    meta.license = lib.licenses.gpl2Plus;
   };
 
   kn = buildOfficialDict {
@@ -541,6 +591,7 @@ in rec {
     fullName = "Kannada";
     filename = "aspell6";
     sha256 = "10sk0wx4x4ds1403kf9dqxv9yjvh06w8qqf4agx57y0jlws0n0fb";
+    meta.license = lib.licenses.gpl3Only;
   };
 
   ku = buildOfficialDict {
@@ -549,6 +600,7 @@ in rec {
     fullName = "Kurdi";
     filename = "aspell5";
     sha256 = "09va98krfbgdaxl101nmd85j3ysqgg88qgfcl42c07crii0pd3wn";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   ky = buildOfficialDict {
@@ -557,6 +609,7 @@ in rec {
     fullName = "Kirghiz";
     filename = "aspell6";
     sha256 = "0kzv2syjnnn6pnwx0d578n46hg2l0j62977al47y6wabnhjjy3z1";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   la = buildOfficialDict {
@@ -565,6 +618,7 @@ in rec {
     fullName = "Latin";
     filename = "aspell6";
     sha256 = "1199inwi16dznzl087v4skn66fl7h555hi2palx6s1f3s54b11nl";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   lt = buildOfficialDict {
@@ -573,6 +627,7 @@ in rec {
     fullName = "Lithuanian";
     filename = "aspell6";
     sha256 = "1asjck911l96q26zj36lmz0jp4b6pivvrf3h38zgc8lc85p3pxgn";
+    meta.license = lib.licenses.bsd3;
   };
 
   lv = buildOfficialDict {
@@ -581,6 +636,7 @@ in rec {
     fullName = "Latvian";
     filename = "aspell6";
     sha256 = "12pvs584a6437ijndggdqpp5s7d0w607cimpkxsjwasnx83f4c1w";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   mg = buildOfficialDict {
@@ -589,6 +645,7 @@ in rec {
     fullName = "Malagasy";
     filename = "aspell5";
     sha256 = "0hdhbk9b5immjp8l5h4cy82gwgsqzcqbb0qsf7syw333w4rgi0ji";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   mi = buildOfficialDict {
@@ -597,6 +654,7 @@ in rec {
     fullName = "Maori";
     filename = "aspell";
     sha256 = "12bxplpd348yx8d2q8qvahi9dlp7qf28qmanzhziwc7np8rixvmy";
+    meta.license = lib.licenses.lgpl21Only;
   };
 
   mk = buildOfficialDict {
@@ -605,6 +663,7 @@ in rec {
     fullName = "Macedonian";
     filename = "aspell";
     sha256 = "0wcr9n882xi5b7a7ln1hnhq4vfqd5gpqqp87v01j0gb7zf027z0m";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   ml = buildOfficialDict {
@@ -613,6 +672,7 @@ in rec {
     fullName = "Malayalam";
     filename = "aspell6";
     sha256 = "1zcn4114gwia085fkz77qk13z29xrbp53q2qvgj2cvcbalg5bkg4";
+    meta.license = lib.licenses.gpl3Only;
   };
 
   mn = buildOfficialDict {
@@ -621,6 +681,7 @@ in rec {
     fullName = "Mongolian";
     filename = "aspell6";
     sha256 = "150j9y5c9pw80fwp5rzl5q31q9vjbxixaqljkfwxjb5q93fnw6rg";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   mr = buildOfficialDict {
@@ -629,6 +690,7 @@ in rec {
     fullName = "Marathi";
     filename = "aspell6";
     sha256 = "0cvgb2l40sppqbi842ivpznsh2xzp1d4hxc371dll8z0pr05m8yk";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   ms = buildOfficialDict {
@@ -637,6 +699,7 @@ in rec {
     fullName = "Malay";
     filename = "aspell";
     sha256 = "0vr4vhipcfhsxqfs8dim2ph7iiixn22gmlmlb375bx5hgd9y7i1w";
+    meta.license = lib.licenses.fdl12Only;
   };
 
   mt = buildOfficialDict {
@@ -645,6 +708,7 @@ in rec {
     fullName = "Maltese";
     filename = "aspell";
     sha256 = "1d2rl1nlfjq6rfywblvx8m88cyy2x0mzc0mshzbgw359c2nwl3z0";
+    meta.license = lib.licenses.lgpl21Only;
   };
 
   nb = buildOfficialDict {
@@ -653,6 +717,7 @@ in rec {
     fullName = "Norwegian Bokmal";
     filename = "aspell";
     sha256 = "12i2bmgdnlkzfinb20j2a0j4a20q91a9j8qpq5vgabbvc65nwx77";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   nds = buildOfficialDict {
@@ -661,6 +726,7 @@ in rec {
     fullName = "Low Saxon";
     filename = "aspell6";
     sha256 = "1nkjhwzn45dizi89d19q4bqyd87cim8xyrgr655fampgkn31wf6f";
+    meta.license = lib.licenses.lgpl21Only;
   };
 
   nl = buildOfficialDict {
@@ -673,6 +739,11 @@ in rec {
     postInstall = ''
       echo "add nl.rws" > $out/lib/aspell/nederlands.multi
     '';
+    # from the Copyright file:
+    # > The nl-aspell package includes the GPL COPYRIGHT file but no explicit copyright
+    # > notice. Since he was using autoconf this could have been added automatically.
+    # wtf whatever
+    meta.license = lib.licenses.free;
   };
 
   nn = buildOfficialDict {
@@ -681,6 +752,7 @@ in rec {
     fullName = "Norwegian Nynorsk";
     filename = "aspell";
     sha256 = "0w2k5l5rbqpliripgqwiqixz5ghnjf7i9ggbrc4ly4vy1ia10rmc";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   ny = buildOfficialDict {
@@ -689,6 +761,7 @@ in rec {
     fullName = "Chichewa";
     filename = "aspell5";
     sha256 = "0gjb92vcg60sfgvrm2f6i89sfkgb179ahvwlgs649fx3dc7rfvqp";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   or = buildOfficialDict {
@@ -697,6 +770,7 @@ in rec {
     fullName = "Oriya";
     filename = "aspell6";
     sha256 = "0kzj9q225z0ccrlbkijsrafy005pbjy14qcnxb6p93ciz1ls7zyn";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   pa = buildOfficialDict {
@@ -705,6 +779,7 @@ in rec {
     fullName = "Punjabi";
     filename = "aspell6";
     sha256 = "0if93zk10pyrs38wwj3vpcdm01h51m5z9gm85h3jxrpgqnqspwy7";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   pl = buildOfficialDict {
@@ -713,6 +788,12 @@ in rec {
     fullName = "Polish";
     filename = "aspell6";
     sha256 = "0kap4kh6bqbb22ypja1m5z3krc06vv4n0hakiiqmv20anzy42xq1";
+    meta.license = with lib.licenses; [
+      gpl2Only
+      lgpl21Only
+      mpl11
+      cc-sa-10
+    ];
   };
 
   pt_BR = buildOfficialDict {
@@ -721,6 +802,11 @@ in rec {
     fullName = "Brazilian Portuguese";
     filename = "aspell6";
     sha256 = "1xqlpk21s93c6blkdnpk7l62q9fxjvzdv2x86chl8p2x1gdrj3gb";
+    meta.license = with lib.licenses; [
+      lgpl21Only
+      lgpl21Plus
+      gpl3Plus
+    ];
   };
 
   pt_PT = buildOfficialDict {
@@ -729,6 +815,11 @@ in rec {
     fullName = "Portuguese";
     filename = "aspell6";
     sha256 = "0ld0d0ily4jqifjfsxfv4shbicz6ymm2gk56fq9gbzra1j4qnw75";
+    meta.license = with lib.licenses; [
+      lgpl21Plus
+      gpl3Plus
+      mpl11
+    ];
   };
 
   qu = buildOfficialDict {
@@ -737,6 +828,7 @@ in rec {
     fullName = "Quechua";
     filename = "aspell6";
     sha256 = "009z0zsvzq7r3z3m30clyibs94v77b92h5lmzmzxlns2p0lpd5w0";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   ro = buildOfficialDict {
@@ -745,6 +837,7 @@ in rec {
     fullName = "Romanian";
     filename = "aspell5";
     sha256 = "0gb8j9iy1acdl11jq76idgc2lbc1rq3w04favn8cyh55d1v8phsk";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   ru = buildOfficialDict {
@@ -753,6 +846,7 @@ in rec {
     fullName = "Russian";
     filename = "aspell6";
     sha256 = "0ip6nq43hcr7vvzbv4lwwmlwgfa60hrhsldh9xy3zg2prv6bcaaw";
+    meta.license = lib.licenses.free;
   };
 
   rw = buildOfficialDict {
@@ -761,6 +855,7 @@ in rec {
     fullName = "Kinyarwanda";
     filename = "aspell";
     sha256 = "10gh8g747jbrvfk2fn3pjxy1nhcfdpwgmnvkmrp4nd1k1qp101il";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   sc = buildOfficialDict {
@@ -769,6 +864,7 @@ in rec {
     fullName = "Sardinian";
     filename = "aspell5";
     sha256 = "0hl7prh5rccsyljwrv3m1hjcsphyrrywk2qvnj122irbf4py46jr";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   sk = buildOfficialDict {
@@ -777,6 +873,11 @@ in rec {
     fullName = "Slovak";
     filename = "aspell6";
     sha256 = "19k0m1v5pcf7xr4lxgjkzqkdlks8nyb13bvi1n7521f3i4lhma66";
+    meta.license = with lib.licenses; [
+      lgpl21Only
+      gpl2Only
+      mpl11
+    ];
   };
 
   sl = buildOfficialDict {
@@ -785,6 +886,7 @@ in rec {
     fullName = "Slovenian";
     filename = "aspell";
     sha256 = "1l9kc5g35flq8kw9jhn2n0bjb4sipjs4qkqzgggs438kywkx2rp5";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   sr = buildOfficialDict {
@@ -793,6 +895,7 @@ in rec {
     fullName = "Serbian";
     filename = "aspell6";
     sha256 = "12cj01p4nj80cpf7m3s4jsaf0rsfng7s295j9jfchcq677xmhpkh";
+    meta.license = lib.licenses.lgpl21Only;
   };
 
   sv = buildOfficialDict {
@@ -801,6 +904,7 @@ in rec {
     fullName = "Swedish";
     filename = "aspell";
     sha256 = "02jwkjhr32kvyibnyzgx3smbnm576jwdzg3avdf6zxwckhy5fw4v";
+    meta.license = lib.licenses.lgpl21Only;
   };
 
   sw = buildOfficialDict {
@@ -809,6 +913,7 @@ in rec {
     fullName = "Swahili";
     filename = "aspell";
     sha256 = "15zjh7hdj2b4dgm5bc12w1ims9q357p1q3gjalspnyn5gl81zmby";
+    meta.license = lib.licenses.lgpl21Only;
   };
 
   ta = buildOfficialDict {
@@ -817,6 +922,7 @@ in rec {
     fullName = "Tamil";
     filename = "aspell6";
     sha256 = "0sj8ygjsyvnr93cs6324y7az7k2vyw7rjxdc9vnm7z60lbqm5xaj";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   te = buildOfficialDict {
@@ -825,6 +931,7 @@ in rec {
     fullName = "Telugu";
     filename = "aspell6";
     sha256 = "0pgcgxz7dz34zxp9sb85jjzbg3ky6il5wmhffz6ayrbsfn5670in";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   tet = buildOfficialDict {
@@ -833,6 +940,7 @@ in rec {
     fullName = "Tetum";
     filename = "aspell5";
     sha256 = "17n0y4fhjak47j9qnqf4m4z6zra6dn72rwhp7ig0hhlgqk4ldmcx";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   tk = buildOfficialDict {
@@ -841,6 +949,7 @@ in rec {
     fullName = "Turkmen";
     filename = "aspell5";
     sha256 = "02vad4jqhr0xpzqi5q5z7z0xxqccbn8j0c5dhpnm86mnr84l5wl6";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   tl = buildOfficialDict {
@@ -849,6 +958,7 @@ in rec {
     fullName = "Tagalog";
     filename = "aspell5";
     sha256 = "1kca6k7qnpfvvwjnq5r1n242payqsjy96skmw78m7ww6d0n5vdj8";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   tn = buildOfficialDict {
@@ -857,6 +967,7 @@ in rec {
     fullName = "Setswana";
     filename = "aspell5";
     sha256 = "0q5x7c6z88cn0kkpk7q1craq34g4g03v8x3xcj5a5jia3l7c5821";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   tr = buildOfficialDict {
@@ -865,6 +976,7 @@ in rec {
     fullName = "Turkish";
     filename = "aspell";
     sha256 = "0jpvpm96ga7s7rmsm6rbyrrr22b2dicxv2hy7ysv5y7bbq757ihb";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   uk = buildOfficialDict {
@@ -873,6 +985,10 @@ in rec {
     fullName = "Ukrainian";
     filename = "aspell6";
     sha256 = "137i4njvnslab6l4s291s11xijr5jsy75lbdph32f9y183lagy9m";
+    meta.license = with lib.licenses; [
+      lgpl2Plus
+      gpl2Plus
+    ];
   };
 
   uz = buildOfficialDict {
@@ -881,6 +997,7 @@ in rec {
     fullName = "Uzbek";
     filename = "aspell6";
     sha256 = "0sg3wlyply1idpq5ypyj7kgnaadaiskci1sqs811yhg2gzyc3092";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   vi = buildOfficialDict {
@@ -889,6 +1006,7 @@ in rec {
     fullName = "Vietnamese";
     filename = "aspell6";
     sha256 = "05vwgvf1cj45azhflywx69javqdvqd1f20swrc2d3c32pd9mvn1w";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   wa = buildOfficialDict {
@@ -897,6 +1015,7 @@ in rec {
     fullName = "Walloon";
     filename = "aspell";
     sha256 = "1r1zwz7xkx40dga9vf5wc9ja3jwk1dkpcr1kaa7wryvslf5al5ss";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   yi = buildOfficialDict {
@@ -905,6 +1024,7 @@ in rec {
     fullName = "Yiddish";
     filename = "aspell6";
     sha256 = "0mi842l4038bx3ll2wx9nz44nqrg1x46h5b02zigi1hbbddd6ycq";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   zu = buildOfficialDict {
@@ -913,6 +1033,7 @@ in rec {
     fullName = "Zulu";
     filename = "aspell";
     sha256 = "15k7gaxrnqnssdyk9l6g27dq317dqp9jz5yzafd25ri01g6mb8iz";
+    meta.license = lib.licenses.lgpl21Only;
   };
 
   ### Jargons
@@ -937,6 +1058,7 @@ in rec {
 
     meta = {
       homepage = "https://mrsatterly.com/spelling.html";
+      license = lib.licenses.wtfpl; # as a comment the source file
     };
   };
 
@@ -945,13 +1067,13 @@ in rec {
     fullName = "English Scientific Jargon";
 
     src1 = fetchurl {
-      url = "http://jpetrie.net/wp-content/uploads/custom_scientific_US.txt";
-      sha256 = "1nf4py2mg0mlv9s5a7had2wn29z2v6bcca0fs6rbpdn4nqc4s7dm";
+      url = "https://web.archive.org/web/20180806094650if_/http://jpetrie.net/wp-content/uploads/custom_scientific_US.txt";
+      hash = "sha256-I5d/jf/5v9Nptu2H9qfvMBzSwJYoQOTEzJfQTxKoWN8=";
     };
 
     src2 = fetchurl {
-      url = "http://jpetrie.net/wp-content/uploads/custom_scientific_UK.txt";
-      sha256 = "0f88il1ds6qazy1ghxviqcwsywrbf6pzl2lmzf4f3qvhdfb6f1y0";
+      url = "https://web.archive.org/web/20180131231829if_/http://jpetrie.net/wp-content/uploads/custom_scientific_UK.txt";
+      hash = "sha256-oT4nUiev5q4QjHeuF8jNVBcyyHE9fdH9+uDMkZsOWp8=";
     };
 
     langInputs = [ en ];
@@ -965,7 +1087,9 @@ in rec {
     installPhase = "aspell-install en_US-science en_GB-science";
 
     meta = {
-      homepage = "http://www.jpetrie.net/scientific-word-list-for-spell-checkersspelling-dictionaries/";
+      homepage = "https://web.archive.org/web/20210425104207/http://www.jpetrie.net/scientific-word-list-for-spell-checkersspelling-dictionaries/";
+      # no license is given so we have to assume it is unfree
+      license = lib.licenses.unfree;
     };
 
   };
diff --git a/pkgs/development/libraries/assimp/default.nix b/pkgs/development/libraries/assimp/default.nix
index 8019c6cc943f1..87df1e7f6aec1 100644
--- a/pkgs/development/libraries/assimp/default.nix
+++ b/pkgs/development/libraries/assimp/default.nix
@@ -8,14 +8,14 @@
 
 stdenv.mkDerivation rec {
   pname = "assimp";
-  version = "5.3.1";
+  version = "5.4.1";
   outputs = [ "out" "lib" "dev" ];
 
   src = fetchFromGitHub {
     owner = "assimp";
     repo = "assimp";
     rev = "v${version}";
-    hash = "sha256-/1A8n7oe9WsF3FpbLZxhifzrdj38t9l5Kc8Q5jfDoyY=";
+    hash = "sha256-F3aaEaHZyOLES6zOYqHRG0BtaKk9d/bAHCtal6FsIWc=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   ]);
 
   meta = with lib; {
-    description = "A library to import various 3D model formats";
+    description = "Library to import various 3D model formats";
     mainProgram = "assimp";
     homepage = "https://www.assimp.org/";
     license = licenses.bsd3;
diff --git a/pkgs/development/libraries/aubio/default.nix b/pkgs/development/libraries/aubio/default.nix
index 89f81e26de407..6702eb91c9b17 100644
--- a/pkgs/development/libraries/aubio/default.nix
+++ b/pkgs/development/libraries/aubio/default.nix
@@ -15,7 +15,6 @@ stdenv.mkDerivation rec {
   buildInputs = [ alsa-lib fftw libjack2 libsamplerate libsndfile ];
 
   strictDeps = true;
-  dontAddWafCrossFlags = true;
   wafFlags = lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "--disable-tests";
 
   postPatch = ''
diff --git a/pkgs/development/libraries/audiality2/default.nix b/pkgs/development/libraries/audiality2/default.nix
index c189cd7e1ea4a..9dfc216a22695 100644
--- a/pkgs/development/libraries/audiality2/default.nix
+++ b/pkgs/development/libraries/audiality2/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A realtime scripted modular audio engine for video games and musical applications";
+    description = "Realtime scripted modular audio engine for video games and musical applications";
     mainProgram = "a2play";
     homepage = "http://audiality.org";
     license = licenses.zlib;
diff --git a/pkgs/development/libraries/audio/game-music-emu/default.nix b/pkgs/development/libraries/audio/game-music-emu/default.nix
index 0f420745baef6..bf0c6108520c4 100644
--- a/pkgs/development/libraries/audio/game-music-emu/default.nix
+++ b/pkgs/development/libraries/audio/game-music-emu/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://bitbucket.org/mpyne/game-music-emu/wiki/Home";
-    description = "A collection of video game music file emulators";
+    description = "Collection of video game music file emulators";
     license = licenses.lgpl21Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ luc65r lheckemann ];
diff --git a/pkgs/development/libraries/audio/libopenmpt-modplug/default.nix b/pkgs/development/libraries/audio/libopenmpt-modplug/default.nix
index 8d5ef86a89671..50495d1633592 100644
--- a/pkgs/development/libraries/audio/libopenmpt-modplug/default.nix
+++ b/pkgs/development/libraries/audio/libopenmpt-modplug/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A libmodplug emulation layer based on libopenmpt";
+    description = "Libmodplug emulation layer based on libopenmpt";
     homepage = "https://lib.openmpt.org/libopenmpt/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ OPNA2608 ];
diff --git a/pkgs/development/libraries/audio/libopenmpt/default.nix b/pkgs/development/libraries/audio/libopenmpt/default.nix
index da288f145613e..0f4c3509244d8 100644
--- a/pkgs/development/libraries/audio/libopenmpt/default.nix
+++ b/pkgs/development/libraries/audio/libopenmpt/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libopenmpt";
-  version = "0.7.6";
+  version = "0.7.7";
 
   outputs = [ "out" "dev" "bin" ];
 
   src = fetchurl {
     url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}+release.autotools.tar.gz";
-    hash = "sha256-Fi1yowa7LhFMJPolJn0NCgrBbzn9laXA38daZm7l5PU=";
+    hash = "sha256-WMaiiXISaCim9ljghK7nqo+L/bdaC9DjRcf/Km2e8Iw=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/audio/libsmf/default.nix b/pkgs/development/libraries/audio/libsmf/default.nix
index 6737d76538e0e..064a167bfb773 100644
--- a/pkgs/development/libraries/audio/libsmf/default.nix
+++ b/pkgs/development/libraries/audio/libsmf/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ glib ];
 
   meta = with lib; {
-    description = "A C library for reading and writing Standard MIDI Files";
+    description = "C library for reading and writing Standard MIDI Files";
     homepage = "https://github.com/stump/libsmf";
     license = licenses.bsd2;
     maintainers = [ maintainers.goibhniu ];
diff --git a/pkgs/development/libraries/audio/lilv/default.nix b/pkgs/development/libraries/audio/lilv/default.nix
index c17b27a7aa6ff..4e83452874624 100644
--- a/pkgs/development/libraries/audio/lilv/default.nix
+++ b/pkgs/development/libraries/audio/lilv/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://drobilla.net/software/lilv";
-    description = "A C library to make the use of LV2 plugins";
+    description = "C library to make the use of LV2 plugins";
     license = licenses.mit;
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/audio/lv2/default.nix b/pkgs/development/libraries/audio/lv2/default.nix
index 473b246f3f9d1..d9952877d80de 100644
--- a/pkgs/development/libraries/audio/lv2/default.nix
+++ b/pkgs/development/libraries/audio/lv2/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://lv2plug.in";
-    description = "A plugin standard for audio systems";
+    description = "Plugin standard for audio systems";
     mainProgram = "lv2_validate";
     license = licenses.mit;
     maintainers = with maintainers; [ goibhniu ];
diff --git a/pkgs/development/libraries/audio/lvtk/default.nix b/pkgs/development/libraries/audio/lvtk/default.nix
index b1a6adaaeca2e..b340dafbc3158 100644
--- a/pkgs/development/libraries/audio/lvtk/default.nix
+++ b/pkgs/development/libraries/audio/lvtk/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A set C++ wrappers around the LV2 C API";
+    description = "Set C++ wrappers around the LV2 C API";
     mainProgram = "ttl2c";
     homepage = "https://lvtk.org/";
     license = licenses.gpl3;
diff --git a/pkgs/development/libraries/audio/qm-dsp/default.nix b/pkgs/development/libraries/audio/qm-dsp/default.nix
index 01a3933fe2b3e..92024cd81fb8f 100644
--- a/pkgs/development/libraries/audio/qm-dsp/default.nix
+++ b/pkgs/development/libraries/audio/qm-dsp/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   env.NIX_CFLAGS_COMPILE = "-I${kissfft}/include/kissfft";
 
   meta = with lib; {
-    description = "A C++ library of functions for DSP and Music Informatics purposes";
+    description = "C++ library of functions for DSP and Music Informatics purposes";
     homepage = "https://code.soundsoftware.ac.uk/projects/qm-dsp";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.goibhniu ];
diff --git a/pkgs/development/libraries/audio/raul/default.nix b/pkgs/development/libraries/audio/raul/default.nix
index c200d4ab79c52..cd8c3d3a70f3c 100644
--- a/pkgs/development/libraries/audio/raul/default.nix
+++ b/pkgs/development/libraries/audio/raul/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   strictDeps = true;
 
   meta = with lib; {
-    description = "A C++ utility library primarily aimed at audio/musical applications";
+    description = "C++ utility library primarily aimed at audio/musical applications";
     homepage = "http://drobilla.net/software/raul";
     license = licenses.gpl3;
     maintainers = [ maintainers.goibhniu ];
diff --git a/pkgs/development/libraries/audio/roc-toolkit/default.nix b/pkgs/development/libraries/audio/roc-toolkit/default.nix
index cbb580413c2b0..4654e29a835fd 100644
--- a/pkgs/development/libraries/audio/roc-toolkit/default.nix
+++ b/pkgs/development/libraries/audio/roc-toolkit/default.nix
@@ -16,12 +16,14 @@
   opensslSupport ? true,
   openssl,
   soxSupport ? true,
-  sox
+  sox,
+  libsndfileSupport ? true,
+  libsndfile
 }:
 
 stdenv.mkDerivation rec {
   pname = "roc-toolkit";
-  version = "0.3.0";
+  version = "0.4.0";
 
   outputs = [ "out" "dev" ];
 
@@ -29,7 +31,7 @@ stdenv.mkDerivation rec {
     owner = "roc-streaming";
     repo = "roc-toolkit";
     rev = "v${version}";
-    hash = "sha256-tC0rjb3eDtEciUk0NmVye+N//Y/RFsi5d3kFS031y8I=";
+    hash = "sha256-53irDq803dTg0YqtC1SOXmYNGypSMAEK+9HJ65pR5PA=";
   };
 
   nativeBuildInputs = [
@@ -46,7 +48,8 @@ stdenv.mkDerivation rec {
     ++ lib.optional libunwindSupport libunwind
     ++ lib.optional pulseaudioSupport libpulseaudio
     ++ lib.optional opensslSupport openssl
-    ++ lib.optional soxSupport sox;
+    ++ lib.optional soxSupport sox
+    ++ lib.optional libsndfileSupport libsndfile;
 
   sconsFlags =
     [ "--build=${stdenv.buildPlatform.config}"
@@ -56,6 +59,7 @@ stdenv.mkDerivation rec {
     lib.optional (!soxSupport) "--disable-sox" ++
     lib.optional (!libunwindSupport) "--disable-libunwind" ++
     lib.optional (!pulseaudioSupport) "--disable-pulseaudio" ++
+    lib.optional (!libsndfileSupport) "--disable-sndfile" ++
     (if (!openfecSupport)
        then ["--disable-openfec"]
        else [ "--with-libraries=${openfec}/lib"
diff --git a/pkgs/development/libraries/audio/rtaudio/default.nix b/pkgs/development/libraries/audio/rtaudio/default.nix
index 8084963f39fbb..8c1bc7356db13 100644
--- a/pkgs/development/libraries/audio/rtaudio/default.nix
+++ b/pkgs/development/libraries/audio/rtaudio/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A set of C++ classes that provide a cross platform API for realtime audio input/output";
+    description = "Set of C++ classes that provide a cross platform API for realtime audio input/output";
     homepage = "https://www.music.mcgill.ca/~gary/rtaudio/";
     license = licenses.mit;
     maintainers = with maintainers; [ magnetophon ];
diff --git a/pkgs/development/libraries/audio/rtmidi/default.nix b/pkgs/development/libraries/audio/rtmidi/default.nix
index 0780d2978805d..c881e45ae559e 100644
--- a/pkgs/development/libraries/audio/rtmidi/default.nix
+++ b/pkgs/development/libraries/audio/rtmidi/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A set of C++ classes that provide a cross platform API for realtime MIDI input/output";
+    description = "Set of C++ classes that provide a cross platform API for realtime MIDI input/output";
     homepage = "https://www.music.mcgill.ca/~gary/rtmidi/";
     license = licenses.mit;
     maintainers = with maintainers; [ magnetophon ];
diff --git a/pkgs/development/libraries/audio/sratom/default.nix b/pkgs/development/libraries/audio/sratom/default.nix
index 26a55efd786a5..bd12fc9b4a324 100644
--- a/pkgs/development/libraries/audio/sratom/default.nix
+++ b/pkgs/development/libraries/audio/sratom/default.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://drobilla.net/software/sratom";
-    description = "A library for serialising LV2 atoms to/from RDF";
+    description = "Library for serialising LV2 atoms to/from RDF";
     license = licenses.mit;
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/audio/suil/default.nix b/pkgs/development/libraries/audio/suil/default.nix
index 3dc3bb5dacdcf..6214b65189d37 100644
--- a/pkgs/development/libraries/audio/suil/default.nix
+++ b/pkgs/development/libraries/audio/suil/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://drobilla.net/software/suil";
-    description = "A lightweight C library for loading and wrapping LV2 plugin UIs";
+    description = "Lightweight C library for loading and wrapping LV2 plugin UIs";
     license = licenses.mit;
     maintainers = with maintainers; [ goibhniu ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/audio/zita-alsa-pcmi/default.nix b/pkgs/development/libraries/audio/zita-alsa-pcmi/default.nix
index fc5162b34e8d4..64113993f1eaa 100644
--- a/pkgs/development/libraries/audio/zita-alsa-pcmi/default.nix
+++ b/pkgs/development/libraries/audio/zita-alsa-pcmi/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "The successor of clalsadrv, provides easy access to ALSA PCM devices";
+    description = "Successor of clalsadrv, provides easy access to ALSA PCM devices";
     version = version;
     homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/downloads/index.html";
     license = lib.licenses.gpl3;
diff --git a/pkgs/development/libraries/audio/zix/default.nix b/pkgs/development/libraries/audio/zix/default.nix
index f6b6eceb4c04b..f2824fa793906 100644
--- a/pkgs/development/libraries/audio/zix/default.nix
+++ b/pkgs/development/libraries/audio/zix/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A lightweight C99 portability and data structure library";
+    description = "Lightweight C99 portability and data structure library";
     homepage = "https://gitlab.com/drobilla/zix";
     changelog = "https://gitlab.com/drobilla/zix/-/blob/${src.rev}/NEWS";
     license = licenses.isc;
diff --git a/pkgs/development/libraries/avro-c++/default.nix b/pkgs/development/libraries/avro-c++/default.nix
index d0d899fe9935f..d8735e0b9143d 100644
--- a/pkgs/development/libraries/avro-c++/default.nix
+++ b/pkgs/development/libraries/avro-c++/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A C++ library which implements parts of the Avro Specification";
+    description = "C++ library which implements parts of the Avro Specification";
     mainProgram = "avrogencpp";
     homepage = "https://avro.apache.org/";
     license = lib.licenses.asl20;
diff --git a/pkgs/development/libraries/avro-c/default.nix b/pkgs/development/libraries/avro-c/default.nix
index 944182e141245..a62d0449b3855 100644
--- a/pkgs/development/libraries/avro-c/default.nix
+++ b/pkgs/development/libraries/avro-c/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ jansson snappy xz zlib ];
 
   meta = with lib; {
-    description = "A C library which implements parts of the Avro Specification";
+    description = "C library which implements parts of the Avro Specification";
     homepage = "https://avro.apache.org/";
     license = licenses.asl20;
     maintainers = with maintainers; [ lblasc ];
diff --git a/pkgs/development/libraries/aws-c-auth/default.nix b/pkgs/development/libraries/aws-c-auth/default.nix
index c15cbe8bde401..d07a7fc529964 100644
--- a/pkgs/development/libraries/aws-c-auth/default.nix
+++ b/pkgs/development/libraries/aws-c-auth/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-c-auth";
-  version = "0.7.18";
+  version = "0.7.22";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "aws-c-auth";
     rev = "v${version}";
-    hash = "sha256-JWYJz8ugYvXDvtJ5dRWVcA8F3PdjxO8aCc8l0jghYXg=";
+    hash = "sha256-8+SFag3hRQ+1aOK2vuHOV/gXE1qUIlAW5LNJDmUORLs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/aws-c-cal/default.nix b/pkgs/development/libraries/aws-c-cal/default.nix
index 5f4c303265d94..6b88fa8aa47e4 100644
--- a/pkgs/development/libraries/aws-c-cal/default.nix
+++ b/pkgs/development/libraries/aws-c-cal/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "aws-c-cal";
-  version = "0.6.12";
+  version = "0.6.15";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = finalAttrs.pname;
     rev = "v${finalAttrs.version}";
-    hash = "sha256-aegK01wYdOc6RGNVf/dZKn1HkqQr+yEblcu6hnlMZE4=";
+    hash = "sha256-RrUJz3IqwbBJ8NuJTIWqK33FlJHolcaid55PT2EhO24=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/aws-c-common/default.nix b/pkgs/development/libraries/aws-c-common/default.nix
index 5cf9de861cdf4..6bb9fc493fe87 100644
--- a/pkgs/development/libraries/aws-c-common/default.nix
+++ b/pkgs/development/libraries/aws-c-common/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-c-common";
-  version = "0.9.17";
+  version = "0.9.21";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Ee3wkgIOTsZn2PgHoaO5HqblXuOacuKm5vUwkl4Dg+4=";
+    hash = "sha256-lJCQPatwZeHpuzQni6SMMGYBH4iESQH8ofFgmRbxtnM=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/aws-c-http/default.nix b/pkgs/development/libraries/aws-c-http/default.nix
index 4b22e53a317e4..ac35fd5d57b05 100644
--- a/pkgs/development/libraries/aws-c-http/default.nix
+++ b/pkgs/development/libraries/aws-c-http/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-c-http";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "aws-c-http";
     rev = "v${version}";
-    hash = "sha256-S5ETVkdGTndt2GJBNL4DU5SycHAufsmN06xBDRMFVKo=";
+    hash = "sha256-86auAZGoaYIpoTVlB9uC+nKMNt1QRNor+/68B5D36r8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/aws-c-io/default.nix b/pkgs/development/libraries/aws-c-io/default.nix
index 1bc0c731a9d73..a429003628459 100644
--- a/pkgs/development/libraries/aws-c-io/default.nix
+++ b/pkgs/development/libraries/aws-c-io/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-c-io";
-  version = "0.14.7";
+  version = "0.14.9";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Z4o1vv/8FWp3S7GfLDsV0a8ih+IdJIUC0DL4klOXjnw=";
+    hash = "sha256-YrEpb4+yzrNci0/ZW+UsPlEmnCBkcRFDgo8SuxsTWXg=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/aws-c-s3/default.nix b/pkgs/development/libraries/aws-c-s3/default.nix
index 895babbb4f727..65e84c3bcb84a 100644
--- a/pkgs/development/libraries/aws-c-s3/default.nix
+++ b/pkgs/development/libraries/aws-c-s3/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-c-s3";
-  version = "0.5.7";
+  version = "0.5.10";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "aws-c-s3";
     rev = "v${version}";
-    hash = "sha256-zzsRYhLgJfd02fPgoZBf7n6dTfbLHarc1aQa0fx/uck=";
+    hash = "sha256-yQY5yZFRm/2K97ffyumAQhgPlU6Nzy8PDGcy9L53Y84=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/aws-sdk-cpp/default.nix b/pkgs/development/libraries/aws-sdk-cpp/default.nix
index 50ec9d64bbb17..ded3948907c25 100644
--- a/pkgs/development/libraries/aws-sdk-cpp/default.nix
+++ b/pkgs/development/libraries/aws-sdk-cpp/default.nix
@@ -27,13 +27,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "aws-sdk-cpp";
-  version = "1.11.318";
+  version = "1.11.336";
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = "aws-sdk-cpp";
     rev = version;
-    hash = "sha256-HQNtVCt8vemRVnz0v9TNjUpjYn/IlbgIOeDESt3iI4A=";
+    hash = "sha256-hetXtXM8HG6V3rAuyf+w+DtlxEcpsyaroZsw0nIJoAw=";
   };
 
   postPatch = ''
@@ -143,7 +143,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A C++ interface for Amazon Web Services";
+    description = "C++ interface for Amazon Web Services";
     homepage = "https://github.com/aws/aws-sdk-cpp";
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/bashup-events/generic.nix b/pkgs/development/libraries/bashup-events/generic.nix
index c3e2269a8a12b..eb54d79e6fadf 100644
--- a/pkgs/development/libraries/bashup-events/generic.nix
+++ b/pkgs/development/libraries/bashup-events/generic.nix
@@ -77,7 +77,7 @@ resholve.mkDerivation rec {
 
   meta = with lib; {
     inherit branch;
-    description = "An event listener/callback API for creating extensible bash programs";
+    description = "Event listener/callback API for creating extensible bash programs";
     mainProgram = "bashup.events";
     homepage = "https://github.com/bashup/events";
     license = licenses.cc0;
diff --git a/pkgs/development/libraries/basu/default.nix b/pkgs/development/libraries/basu/default.nix
index 4665c4c2d158b..a3bd836ee83fc 100644
--- a/pkgs/development/libraries/basu/default.nix
+++ b/pkgs/development/libraries/basu/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://sr.ht/~emersion/basu";
-    description = "The sd-bus library, extracted from systemd";
+    description = "Sd-bus library, extracted from systemd";
     mainProgram = "basuctl";
     license = lib.licenses.lgpl21Only;
     maintainers = with lib.maintainers; [ AndersonTorres ];
diff --git a/pkgs/development/libraries/bc-decaf/default.nix b/pkgs/development/libraries/bc-decaf/default.nix
index c73f28e4e93ae..162eb8a4dd251 100644
--- a/pkgs/development/libraries/bc-decaf/default.nix
+++ b/pkgs/development/libraries/bc-decaf/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ "-DENABLE_STATIC=NO" "-DENABLE_STRICT=NO" ];
 
   meta = with lib; {
-    description = "Elliptic curve library supporting Ed448-Goldilocks and Curve25519. Belledonne Communications' fork for Linphone.";
+    description = "Elliptic curve library supporting Ed448-Goldilocks and Curve25519. Belledonne Communications' fork for Linphone";
     homepage = "https://gitlab.linphone.org/BC/public/bctoolbox";
     license = licenses.mit;
     maintainers = with maintainers; [ thibaultlemaire ];
diff --git a/pkgs/development/libraries/bearssl/default.nix b/pkgs/development/libraries/bearssl/default.nix
index b8dc2e1e1806d..7301f8c889ce9 100644
--- a/pkgs/development/libraries/bearssl/default.nix
+++ b/pkgs/development/libraries/bearssl/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://www.bearssl.org/";
-    description = "An implementation of the SSL/TLS protocol written in C";
+    description = "Implementation of the SSL/TLS protocol written in C";
     longDescription = ''
       BearSSL is an implementation of the SSL/TLS protocol (RFC 5246)
       written in C. It aims at offering the following features:
diff --git a/pkgs/development/libraries/belcard/default.nix b/pkgs/development/libraries/belcard/default.nix
index 0b6cd66cae386..cb16a3fe0fd86 100644
--- a/pkgs/development/libraries/belcard/default.nix
+++ b/pkgs/development/libraries/belcard/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "C++ library to manipulate VCard standard format. Part of the Linphone project.";
+    description = "C++ library to manipulate VCard standard format. Part of the Linphone project";
     homepage = "https://gitlab.linphone.org/BC/public/belcard";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/belle-sip/default.nix b/pkgs/development/libraries/belle-sip/default.nix
index b4b5629cdafb0..efc62bc9a5a1f 100644
--- a/pkgs/development/libraries/belle-sip/default.nix
+++ b/pkgs/development/libraries/belle-sip/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://linphone.org/technical-corner/belle-sip";
-    description = "Modern library implementing SIP (RFC 3261) transport, transaction and dialog layers. Part of the Linphone project.";
+    description = "Modern library implementing SIP (RFC 3261) transport, transaction and dialog layers. Part of the Linphone project";
     mainProgram = "belle_sip_tester";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/belr/default.nix b/pkgs/development/libraries/belr/default.nix
index 7296a9d952754..95517eabed26c 100644
--- a/pkgs/development/libraries/belr/default.nix
+++ b/pkgs/development/libraries/belr/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ "-DENABLE_STATIC=NO" ];
 
   meta = with lib; {
-    description = "Belledonne Communications' language recognition library. Part of the Linphone project.";
+    description = "Belledonne Communications' language recognition library. Part of the Linphone project";
     homepage = "https://gitlab.linphone.org/BC/public/belr";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/bencode/default.nix b/pkgs/development/libraries/bencode/default.nix
index 478f7306a59de..1dc68be26052a 100644
--- a/pkgs/development/libraries/bencode/default.nix
+++ b/pkgs/development/libraries/bencode/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A header-only C++20 bencode serialization/deserialization library";
+    description = "Header-only C++20 bencode serialization/deserialization library";
     homepage = "https://github.com/fbdtemme/bencode";
     changelog = "https://github.com/fbdtemme/bencode/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/libraries/biblesync/default.nix b/pkgs/development/libraries/biblesync/default.nix
index 74a938cf2a5c9..1ac53a0b9b8fd 100644
--- a/pkgs/development/libraries/biblesync/default.nix
+++ b/pkgs/development/libraries/biblesync/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://wiki.crosswire.org/BibleSync";
-    description = "A multicast protocol to Bible software shared conavigation";
+    description = "Multicast protocol to Bible software shared conavigation";
     longDescription = ''
       BibleSync is a multicast protocol to support Bible software shared
       co-navigation. It uses LAN multicast in either a personal/small team
diff --git a/pkgs/development/libraries/blst/default.nix b/pkgs/development/libraries/blst/default.nix
index 48865cf83564d..e5eb5b64aa9f0 100644
--- a/pkgs/development/libraries/blst/default.nix
+++ b/pkgs/development/libraries/blst/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation ( finalAttrs: {
   pname = "blst";
-  version = "0.3.11";
+  version = "0.3.12";
 
   src = fetchFromGitHub {
     owner = "supranational";
     repo = "blst";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-oqljy+ZXJAXEB/fJtmB8rlAr4UXM+Z2OkDa20gpILNA=";
+    hash = "sha256-z/xnttMuAOfoKn/yCBwdYbgcd6cDLD6tZxInAWn8XIk=";
   };
 
   buildPhase = ''
diff --git a/pkgs/development/libraries/boca/default.nix b/pkgs/development/libraries/boca/default.nix
index 50023491d3a08..f0a1f3bc6a775 100644
--- a/pkgs/development/libraries/boca/default.nix
+++ b/pkgs/development/libraries/boca/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A component library used by the fre:ac audio converter";
+    description = "Component library used by the fre:ac audio converter";
     license = licenses.gpl2Plus;
     homepage = "https://github.com/enzo1982/boca";
     maintainers = with maintainers; [ shamilton ];
diff --git a/pkgs/development/libraries/boost-process/default.nix b/pkgs/development/libraries/boost-process/default.nix
deleted file mode 100644
index 551c1247949ea..0000000000000
--- a/pkgs/development/libraries/boost-process/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ lib, stdenv, fetchurl, unzip }:
-
-stdenv.mkDerivation rec {
-  pname = "boost-process";
-  version = "0.5";
-
-  src = fetchurl {
-    url = "http://www.highscore.de/boost/process${version}/process.zip";
-    sha256 = "1v9y9pffb2b7p642kp9ic4z6kg42ziizmyvbgrqd1ci0i4gn0831";
-  };
-
-  nativeBuildInputs = [ unzip ];
-
-  unpackPhase = ''
-    mkdir boost-process-$version
-    cd boost-process-$version
-    unzip $src
-  '';
-
-  installPhase = ''
-    mkdir -p $out/include
-    cp -r boost $out/include
-  '';
-
-  meta = with lib; {
-    homepage = "http://www.highscore.de/boost/process0.5/";
-    description = "Library to manage system processes";
-    license = licenses.boost;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ abbradar ];
-  };
-}
diff --git a/pkgs/development/libraries/boost/1.75.nix b/pkgs/development/libraries/boost/1.75.nix
index ec77070c932c0..c8971119c9924 100644
--- a/pkgs/development/libraries/boost/1.75.nix
+++ b/pkgs/development/libraries/boost/1.75.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.75.0";
diff --git a/pkgs/development/libraries/boost/1.77.nix b/pkgs/development/libraries/boost/1.77.nix
index 3da1a455ead4b..72663044d9c93 100644
--- a/pkgs/development/libraries/boost/1.77.nix
+++ b/pkgs/development/libraries/boost/1.77.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.77.0";
diff --git a/pkgs/development/libraries/boost/1.78.nix b/pkgs/development/libraries/boost/1.78.nix
index 2cc818e63ce03..53a3f300a792b 100644
--- a/pkgs/development/libraries/boost/1.78.nix
+++ b/pkgs/development/libraries/boost/1.78.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.78.0";
diff --git a/pkgs/development/libraries/boost/1.79.nix b/pkgs/development/libraries/boost/1.79.nix
index 87975e2846d30..91e13edf2265a 100644
--- a/pkgs/development/libraries/boost/1.79.nix
+++ b/pkgs/development/libraries/boost/1.79.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.79.0";
diff --git a/pkgs/development/libraries/boost/1.80.nix b/pkgs/development/libraries/boost/1.80.nix
index 1aab51af78a74..79281cd1c70a0 100644
--- a/pkgs/development/libraries/boost/1.80.nix
+++ b/pkgs/development/libraries/boost/1.80.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.80.0";
diff --git a/pkgs/development/libraries/boost/1.81.nix b/pkgs/development/libraries/boost/1.81.nix
index 2376255303e29..3d8474f1df6ab 100644
--- a/pkgs/development/libraries/boost/1.81.nix
+++ b/pkgs/development/libraries/boost/1.81.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.81.0";
diff --git a/pkgs/development/libraries/boost/1.82.nix b/pkgs/development/libraries/boost/1.82.nix
index 193d07ef7562f..cf3a7fe3734c9 100644
--- a/pkgs/development/libraries/boost/1.82.nix
+++ b/pkgs/development/libraries/boost/1.82.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.82.0";
diff --git a/pkgs/development/libraries/boost/1.83.nix b/pkgs/development/libraries/boost/1.83.nix
index df5c5a5bbd31c..446c759d335f9 100644
--- a/pkgs/development/libraries/boost/1.83.nix
+++ b/pkgs/development/libraries/boost/1.83.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.83.0";
diff --git a/pkgs/development/libraries/boost/1.84.nix b/pkgs/development/libraries/boost/1.84.nix
index a55f55afaae0e..bfcfdfbfd7cfd 100644
--- a/pkgs/development/libraries/boost/1.84.nix
+++ b/pkgs/development/libraries/boost/1.84.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.84.0";
diff --git a/pkgs/development/libraries/boost/1.85.nix b/pkgs/development/libraries/boost/1.85.nix
index 2a3252d38c574..a95789800e1bd 100644
--- a/pkgs/development/libraries/boost/1.85.nix
+++ b/pkgs/development/libraries/boost/1.85.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.85.0";
diff --git a/pkgs/development/libraries/bullet/default.nix b/pkgs/development/libraries/bullet/default.nix
index 2dc3266291d36..dc0e1d304eea4 100644
--- a/pkgs/development/libraries/bullet/default.nix
+++ b/pkgs/development/libraries/bullet/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
     "-Wno-error=argument-outside-range -Wno-error=c++11-narrowing";
 
   meta = with lib; {
-    description = "A professional free 3D Game Multiphysics Library";
+    description = "Professional free 3D Game Multiphysics Library";
     longDescription = ''
       Bullet 3D Game Multiphysics Library provides state of the art collision
       detection, soft body and rigid body dynamics.
diff --git a/pkgs/development/libraries/bullet/roboschool-fork.nix b/pkgs/development/libraries/bullet/roboschool-fork.nix
index ac8433fc77ac3..7d601e8570014 100644
--- a/pkgs/development/libraries/bullet/roboschool-fork.nix
+++ b/pkgs/development/libraries/bullet/roboschool-fork.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation {
   ];
 
   meta = with lib; {
-    description = "A professional free 3D Game Multiphysics Library";
+    description = "Professional free 3D Game Multiphysics Library";
     longDescription = ''
       Bullet 3D Game Multiphysics Library provides state of the art collision
       detection, soft body and rigid body dynamics.
diff --git a/pkgs/development/libraries/bzrtp/default.nix b/pkgs/development/libraries/bzrtp/default.nix
index 6cbe6fc1899da..966190a655675 100644
--- a/pkgs/development/libraries/bzrtp/default.nix
+++ b/pkgs/development/libraries/bzrtp/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An opensource implementation of ZRTP keys exchange protocol. Part of the Linphone project.";
+    description = "Opensource implementation of ZRTP keys exchange protocol. Part of the Linphone project";
     homepage = "https://gitlab.linphone.org/BC/public/bzrtp";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/c-ares/default.nix b/pkgs/development/libraries/c-ares/default.nix
index 87b86036cff28..32184e9c6d38e 100644
--- a/pkgs/development/libraries/c-ares/default.nix
+++ b/pkgs/development/libraries/c-ares/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, writeTextDir
+{ lib, stdenv, fetchurl, updateAutotoolsGnuConfigScriptsHook
 , withCMake ? true, cmake
 
 # sensitive downstream packages
@@ -16,13 +16,14 @@ stdenv.mkDerivation rec {
   version = "1.27.0";
 
   src = fetchurl {
-    url = "https://c-ares.org/download/${pname}-${version}.tar.gz";
+    # Note: tag name varies in some versions, e.g. v1.30.0, c-ares-1_17_0.
+    url = "https://github.com/c-ares/${pname}/releases/download/cares-${builtins.replaceStrings ["."] ["_"] version}/${pname}-${version}.tar.gz";
     hash = "sha256-CnK+ZpWZVcQ+KvL70DQY6Cor1UZGBOyaYhR+N6zrQgs=";
   };
 
   outputs = [ "out" "dev" "man" ];
 
-  nativeBuildInputs = lib.optionals withCMake [ cmake ];
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ] ++ lib.optionals withCMake [ cmake ];
 
   cmakeFlags = [] ++ lib.optionals stdenv.hostPlatform.isStatic [
     "-DCARES_SHARED=OFF"
@@ -37,7 +38,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A C library for asynchronous DNS requests";
+    description = "C library for asynchronous DNS requests";
     homepage = "https://c-ares.haxx.se";
     changelog = "https://c-ares.org/changelog.html#${lib.replaceStrings [ "." ] [ "_" ] version}";
     license = licenses.mit;
diff --git a/pkgs/development/libraries/c-blosc/1.nix b/pkgs/development/libraries/c-blosc/1.nix
index 0ed22a2620eef..5c6c97ec015cc 100644
--- a/pkgs/development/libraries/c-blosc/1.nix
+++ b/pkgs/development/libraries/c-blosc/1.nix
@@ -56,7 +56,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
 
   meta = with lib; {
-    description = "A blocking, shuffling and loss-less compression library";
+    description = "Blocking, shuffling and loss-less compression library";
     homepage = "https://www.blosc.org";
     changelog = "https://github.com/Blosc/c-blosc/releases/tag/v${finalAttrs.version}";
     pkgConfigModules = [
diff --git a/pkgs/development/libraries/c-blosc/2.nix b/pkgs/development/libraries/c-blosc/2.nix
index b49518bead1bb..6b24b1418c9e8 100644
--- a/pkgs/development/libraries/c-blosc/2.nix
+++ b/pkgs/development/libraries/c-blosc/2.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
 
   meta = with lib; {
-    description = "A fast, compressed, persistent binary data store library for C";
+    description = "Fast, compressed, persistent binary data store library for C";
     homepage = "https://www.blosc.org";
     changelog = "https://github.com/Blosc/c-blosc2/releases/tag/v${finalAttrs.version}";
     pkgConfigModules = [
diff --git a/pkgs/development/libraries/caf/default.nix b/pkgs/development/libraries/caf/default.nix
index ae7075cd80dfb..3879878e4779d 100644
--- a/pkgs/development/libraries/caf/default.nix
+++ b/pkgs/development/libraries/caf/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   checkTarget = "test";
 
   meta = with lib; {
-    description = "An open source implementation of the actor model in C++";
+    description = "Open source implementation of the actor model in C++";
     homepage = "http://actor-framework.org/";
     license = licenses.bsd3;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/cairo/default.nix b/pkgs/development/libraries/cairo/default.nix
index 7408a43272e97..28809ade8ae4a 100644
--- a/pkgs/development/libraries/cairo/default.nix
+++ b/pkgs/development/libraries/cairo/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, gtk-doc, meson, ninja, pkg-config, python3
+{ lib, stdenv, fetchurl, gtk-doc, meson, ninja, pkg-config, python3
 , docbook_xsl, fontconfig, freetype, libpng, pixman, zlib
 , x11Support? !stdenv.isDarwin || true, libXext, libXrender
 , gobjectSupport ? true, glib
@@ -92,7 +92,7 @@ in {
   passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
 
   meta = with lib; {
-    description = "A 2D graphics library with support for multiple output devices";
+    description = "2D graphics library with support for multiple output devices";
     mainProgram = "cairo-trace";
     longDescription = ''
       Cairo is a 2D graphics library with support for multiple output
diff --git a/pkgs/development/libraries/calcium/default.nix b/pkgs/development/libraries/calcium/default.nix
index f73ee91b4f77c..03e27e1fce152 100644
--- a/pkgs/development/libraries/calcium/default.nix
+++ b/pkgs/development/libraries/calcium/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A C library for exact computation with real and complex numbers";
+    description = "C library for exact computation with real and complex numbers";
     homepage = "https://fredrikj.net/calcium/";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ smasher164 ];
diff --git a/pkgs/development/libraries/catch/default.nix b/pkgs/development/libraries/catch/default.nix
index c4d64a0f47878..e17bbbaf4b766 100644
--- a/pkgs/development/libraries/catch/default.nix
+++ b/pkgs/development/libraries/catch/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   checkTarget = "test";
 
   meta = with lib; {
-    description = "A multi-paradigm automated test framework for C++ and Objective-C (and, maybe, C)";
+    description = "Multi-paradigm automated test framework for C++ and Objective-C (and, maybe, C)";
     homepage = "http://catch-lib.net";
     license = licenses.boost;
     maintainers = with maintainers; [ edwtjo knedlsepp ];
diff --git a/pkgs/development/libraries/catch2/default.nix b/pkgs/development/libraries/catch2/default.nix
index 56b2016539be5..0f79f7679834d 100644
--- a/pkgs/development/libraries/catch2/default.nix
+++ b/pkgs/development/libraries/catch2/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ "-H.." ];
 
   meta = with lib; {
-    description = "A multi-paradigm automated test framework for C++ and Objective-C (and, maybe, C)";
+    description = "Multi-paradigm automated test framework for C++ and Objective-C (and, maybe, C)";
     homepage = "http://catch-lib.net";
     license = licenses.boost;
     maintainers = with maintainers; [ edwtjo knedlsepp ];
diff --git a/pkgs/development/libraries/ccrtp/default.nix b/pkgs/development/libraries/ccrtp/default.nix
index 3fdbbd23ecdc5..5fa86a9589d48 100644
--- a/pkgs/development/libraries/ccrtp/default.nix
+++ b/pkgs/development/libraries/ccrtp/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "An implementation of the IETF real-time transport protocol (RTP)";
+    description = "Implementation of the IETF real-time transport protocol (RTP)";
     homepage = "https://www.gnu.org/software/ccrtp/";
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [ marcweber ];
diff --git a/pkgs/development/libraries/cddlib/default.nix b/pkgs/development/libraries/cddlib/default.nix
index 968f32a0af598..a170a0f92449e 100644
--- a/pkgs/development/libraries/cddlib/default.nix
+++ b/pkgs/development/libraries/cddlib/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   # Requested here: https://github.com/cddlib/cddlib/issues/25
   doCheck = true;
   meta = with lib; {
-    description = "An implementation of the Double Description Method for generating all vertices of a convex polyhedron";
+    description = "Implementation of the Double Description Method for generating all vertices of a convex polyhedron";
     license = licenses.gpl2Plus;
     maintainers = teams.sage.members;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/cereal/1.3.0.nix b/pkgs/development/libraries/cereal/1.3.0.nix
index ab438eb6a8bf8..d15e06d8598c3 100644
--- a/pkgs/development/libraries/cereal/1.3.0.nix
+++ b/pkgs/development/libraries/cereal/1.3.0.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://uscilab.github.io/cereal/";
-    description = "A header-only C++11 serialization library";
+    description = "Header-only C++11 serialization library";
     changelog = "https://github.com/USCiLab/cereal/releases/tag/v${finalAttrs.version}";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ AndersonTorres ];
diff --git a/pkgs/development/libraries/cereal/1.3.2.nix b/pkgs/development/libraries/cereal/1.3.2.nix
index 5a44b26426c79..a8aced27cb261 100644
--- a/pkgs/development/libraries/cereal/1.3.2.nix
+++ b/pkgs/development/libraries/cereal/1.3.2.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 }:
 
@@ -22,7 +21,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://uscilab.github.io/cereal/";
-    description = "A header-only C++11 serialization library";
+    description = "Header-only C++11 serialization library";
     changelog = "https://github.com/USCiLab/cereal/releases/tag/v${finalAttrs.version}";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ AndersonTorres ];
diff --git a/pkgs/development/libraries/ceres-solver/default.nix b/pkgs/development/libraries/ceres-solver/default.nix
index 7052c98d8ef8f..da5afde02627a 100644
--- a/pkgs/development/libraries/ceres-solver/default.nix
+++ b/pkgs/development/libraries/ceres-solver/default.nix
@@ -1,6 +1,5 @@
 { lib
 , stdenv
-, fetchpatch
 , fetchurl
 , blas
 , cmake
diff --git a/pkgs/development/libraries/cgreen/default.nix b/pkgs/development/libraries/cgreen/default.nix
index 921eb6c797247..c6394a456efd9 100644
--- a/pkgs/development/libraries/cgreen/default.nix
+++ b/pkgs/development/libraries/cgreen/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/cgreen-devs/cgreen";
-    description = "The Modern Unit Test and Mocking Framework for C and C++";
+    description = "Modern Unit Test and Mocking Framework for C and C++";
     mainProgram = "cgreen-runner";
     license = lib.licenses.isc;
     maintainers = [ lib.maintainers.AndersonTorres ];
diff --git a/pkgs/development/libraries/cgui/default.nix b/pkgs/development/libraries/cgui/default.nix
index 1bc85d1fcd812..6c536ec576714 100644
--- a/pkgs/development/libraries/cgui/default.nix
+++ b/pkgs/development/libraries/cgui/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "SYSTEM_DIR=$(out)" ];
 
   meta = with lib; {
-    description = "A multiplatform basic GUI library";
+    description = "Multiplatform basic GUI library";
     maintainers = [ maintainers.raskin ];
     platforms = platforms.linux;
     license = licenses.free;
diff --git a/pkgs/development/libraries/charls/default.nix b/pkgs/development/libraries/charls/default.nix
index 150806c8c77e7..f8591dc92bca5 100644
--- a/pkgs/development/libraries/charls/default.nix
+++ b/pkgs/development/libraries/charls/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/team-charls/charls";
-    description = "A JPEG-LS library implementation in C++";
+    description = "JPEG-LS library implementation in C++";
     maintainers = with maintainers; [ bcdarwin ];
     license = licenses.bsd3;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/chipmunk/default.nix b/pkgs/development/libraries/chipmunk/default.nix
index 599cf9cfcee20..1cb32dc8ee4b6 100644
--- a/pkgs/development/libraries/chipmunk/default.nix
+++ b/pkgs/development/libraries/chipmunk/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A fast and lightweight 2D game physics library";
+    description = "Fast and lightweight 2D game physics library";
     mainProgram = "chipmunk_demos";
     homepage = "http://chipmunk2d.net/";
     license = licenses.mit;
diff --git a/pkgs/development/libraries/chmlib/default.nix b/pkgs/development/libraries/chmlib/default.nix
index bc609d7bbf17d..df65e78ff51fa 100644
--- a/pkgs/development/libraries/chmlib/default.nix
+++ b/pkgs/development/libraries/chmlib/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.jedrea.com/chmlib";
     license = licenses.lgpl2;
-    description = "A library for dealing with Microsoft ITSS/CHM format files";
+    description = "Library for dealing with Microsoft ITSS/CHM format files";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/cista/default.nix b/pkgs/development/libraries/cista/default.nix
index e2f302b5812b3..7bc5590feddb2 100644
--- a/pkgs/development/libraries/cista/default.nix
+++ b/pkgs/development/libraries/cista/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://cista.rocks";
-    description = "A simple, high-performance, zero-copy C++ serialization & reflection library";
+    description = "Simple, high-performance, zero-copy C++ serialization & reflection library";
     license = licenses.mit;
     maintainers = [ maintainers.sigmanificient ];
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/clanlib/default.nix b/pkgs/development/libraries/clanlib/default.nix
index 7dfc2e0844687..ee9ee04aa62fd 100644
--- a/pkgs/development/libraries/clanlib/default.nix
+++ b/pkgs/development/libraries/clanlib/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/sphair/ClanLib";
-    description = "A cross platform toolkit library with a primary focus on game creation";
+    description = "Cross platform toolkit library with a primary focus on game creation";
     license = licenses.mit;
     maintainers = with maintainers; [ nixinator ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/development/libraries/clap/default.nix b/pkgs/development/libraries/clap/default.nix
index e6c017cb7808f..1fc6d5a2d4207 100644
--- a/pkgs/development/libraries/clap/default.nix
+++ b/pkgs/development/libraries/clap/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "clap";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "free-audio";
     repo = "clap";
     rev = finalAttrs.version;
-    hash = "sha256-BNT2yWIlWk8kzhZteh7TaamliwJI+lzWVs/8XCFsuUc=";
+    hash = "sha256-3VDl6hMSRFrMtYeiUMoZhJf0wkMxVs9ZELKJqLGYJ+g=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/classads/default.nix b/pkgs/development/libraries/classads/default.nix
index 6fef10fe5d24e..bbe342d98198b 100644
--- a/pkgs/development/libraries/classads/default.nix
+++ b/pkgs/development/libraries/classads/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://www.cs.wisc.edu/condor/classad/";
-    description = "The Classified Advertisements library provides a generic means for matching resources";
+    description = "Classified Advertisements library provides a generic means for matching resources";
     license = lib.licenses.asl20;
     platforms = lib.platforms.unix;
   };
diff --git a/pkgs/development/libraries/clipper/default.nix b/pkgs/development/libraries/clipper/default.nix
index 929bf90d9c48a..8dc649b6b5fe5 100644
--- a/pkgs/development/libraries/clipper/default.nix
+++ b/pkgs/development/libraries/clipper/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ninja unzip ];
 
   meta = with lib; {
-    description = "A polygon and line clipping and offsetting library (C++, C#, Delphi)";
+    description = "Polygon and line clipping and offsetting library (C++, C#, Delphi)";
     longDescription = ''
       The Clipper library performs line & polygon clipping - intersection, union, difference & exclusive-or,
       and line & polygon offsetting. The library is based on Vatti's clipping algorithm.
diff --git a/pkgs/development/libraries/cmocka/default.nix b/pkgs/development/libraries/cmocka/default.nix
index 6c88d1baebfa8..9a7ea037785bf 100644
--- a/pkgs/development/libraries/cmocka/default.nix
+++ b/pkgs/development/libraries/cmocka/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, fetchpatch, lib, stdenv, cmake }:
+{ fetchurl, lib, stdenv, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "cmocka";
diff --git a/pkgs/development/libraries/coeurl/default.nix b/pkgs/development/libraries/coeurl/default.nix
index b0743e032c6ea..580cd488c9fd2 100644
--- a/pkgs/development/libraries/coeurl/default.nix
+++ b/pkgs/development/libraries/coeurl/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libevent curl spdlog ];
 
   meta = with lib; {
-    description = "A simple async wrapper around CURL for C++";
+    description = "Simple async wrapper around CURL for C++";
     homepage = "https://nheko.im/nheko-reborn/coeurl";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/cogl/default.nix b/pkgs/development/libraries/cogl/default.nix
index 987d90e269955..b233113e951fd 100644
--- a/pkgs/development/libraries/cogl/default.nix
+++ b/pkgs/development/libraries/cogl/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
 , pkg-config
 , libGL
 , glib
@@ -105,7 +104,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A small open source library for using 3D graphics hardware for rendering";
+    description = "Small open source library for using 3D graphics hardware for rendering";
     maintainers = with maintainers; [ lovek323 ];
 
     longDescription = ''
diff --git a/pkgs/development/libraries/comedilib/default.nix b/pkgs/development/libraries/comedilib/default.nix
index ab97ac09a57ec..95de887242bf5 100644
--- a/pkgs/development/libraries/comedilib/default.nix
+++ b/pkgs/development/libraries/comedilib/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation (finalAttrs: {
   outputs = [ "out" "dev" "man" "doc" ];
 
   meta = with lib; {
-    description = "The Linux Control and Measurement Device Interface Library";
+    description = "Linux Control and Measurement Device Interface Library";
     homepage = "https://github.com/Linux-Comedi/comedilib";
     license = licenses.lgpl21;
     maintainers = [ maintainers.doronbehar ];
diff --git a/pkgs/development/libraries/console-bridge/default.nix b/pkgs/development/libraries/console-bridge/default.nix
index 5c85bbd4a1968..f02ac839a3e02 100644
--- a/pkgs/development/libraries/console-bridge/default.nix
+++ b/pkgs/development/libraries/console-bridge/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake validatePkgConfig ];
 
   meta = with lib; {
-    description = "A ROS-independent package for logging that seamlessly pipes into rosconsole/rosout for ROS-dependent packages";
+    description = "ROS-independent package for logging that seamlessly pipes into rosconsole/rosout for ROS-dependent packages";
     homepage = "https://github.com/ros/console_bridge";
     license = licenses.bsd3;
     maintainers = with maintainers; [ lopsided98 ];
diff --git a/pkgs/development/libraries/cpp-hocon/default.nix b/pkgs/development/libraries/cpp-hocon/default.nix
index fa4fd5fe6d5c3..0b34bd05c7dc5 100644
--- a/pkgs/development/libraries/cpp-hocon/default.nix
+++ b/pkgs/development/libraries/cpp-hocon/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "A C++ port of the Typesafe Config library";
+    description = "C++ port of the Typesafe Config library";
     license = licenses.asl20;
     maintainers = [ maintainers.womfoo ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/cpp-utilities/default.nix b/pkgs/development/libraries/cpp-utilities/default.nix
index 9a240d084f926..bc738ae976c99 100644
--- a/pkgs/development/libraries/cpp-utilities/default.nix
+++ b/pkgs/development/libraries/cpp-utilities/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "cpp-utilities";
-  version = "5.24.8";
+  version = "5.24.9";
 
   src = fetchFromGitHub {
     owner = "Martchus";
     repo = "cpp-utilities";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-Bo7XYArkJOK/dsX+K+xadz8SCh736ZMaB29jX4X+RGw=";
+    sha256 = "sha256-L0F9CkA/yWl7YfJtSBvSGSLTh2g7loIlpZMiC/ACU2k=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/cracklib/default.nix b/pkgs/development/libraries/cracklib/default.nix
index 4c0badf3df7ce..44c615b38abcf 100644
--- a/pkgs/development/libraries/cracklib/default.nix
+++ b/pkgs/development/libraries/cracklib/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage    = "https://github.com/cracklib/cracklib";
-    description = "A library for checking the strength of passwords";
+    description = "Library for checking the strength of passwords";
     license = licenses.lgpl21; # Different license for the wordlist: http://www.openwall.com/wordlists
     maintainers = with maintainers; [ lovek323 ];
     platforms   = platforms.unix;
diff --git a/pkgs/development/libraries/croaring/default.nix b/pkgs/development/libraries/croaring/default.nix
index 5c1afcbf13658..88643c00195ae 100644
--- a/pkgs/development/libraries/croaring/default.nix
+++ b/pkgs/development/libraries/croaring/default.nix
@@ -1,28 +1,40 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake }:
+{ lib, stdenv, fetchFromGitHub, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "croaring";
-  version = "0.2.61";
+  version = "2.0.3";
 
   src = fetchFromGitHub {
     owner = "RoaringBitmap";
     repo = "CRoaring";
     rev = "v${version}";
-    sha256 = "14y8iwv6b6gg7hgs00yqg8rwx4vwbb1zs2s99lxa51zx9vp1alcn";
+    hash = "sha256-WaFyJ/6zstJ05e3vfrwhaZKQsjRAEvVTs688Hw0fr94=";
   };
 
-  patches = fetchpatch {
-    url = "https://github.com/RoaringBitmap/CRoaring/commit/8d8c60736f506b2b8f1c365148a8a541b26a55f2.patch";
-    sha256 = "1y2mbn4i8lj3lkn5s8zziyr9pl1fq9hndzz9c01dkv3s8sn7f55s";
-  };
+  # roaring.pc.in cannot handle absolute CMAKE_INSTALL_*DIRs, nor
+  # overridden CMAKE_INSTALL_FULL_*DIRs. With Nix, they are guaranteed
+  # to be absolute so the following patch suffices (see #144170).
+  patches = [ ./fix-pkg-config.patch ];
 
   nativeBuildInputs = [ cmake ];
 
+  doCheck = true;
+
+  preConfigure = ''
+    mkdir -p dependencies/.cache
+    ln -s ${fetchFromGitHub {
+      owner = "clibs";
+      repo = "cmocka";
+      rev = "f5e2cd7";
+      hash = "sha256-Oq0nFsZhl8IF7kQN/LgUq8VBy+P7gO98ep/siy5A7Js=";
+    }} dependencies/.cache/cmocka
+  '';
+
   meta = with lib; {
     description = "Compressed bitset library for C and C++";
-    homepage = "http://roaringbitmap.org/";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ orivej ];
+    homepage = "https://roaringbitmap.org/";
+    license = with licenses; [ asl20 mit ];
+    maintainers = [ maintainers.orivej ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/croaring/fix-pkg-config.patch b/pkgs/development/libraries/croaring/fix-pkg-config.patch
new file mode 100644
index 0000000000000..f5cfcf308cf8b
--- /dev/null
+++ b/pkgs/development/libraries/croaring/fix-pkg-config.patch
@@ -0,0 +1,14 @@
+diff --git a/roaring.pc.in b/roaring.pc.in
+index e3b2391..c29adc3 100644
+--- a/roaring.pc.in
++++ b/roaring.pc.in
+@@ -1,7 +1,7 @@
+ prefix=@CMAKE_INSTALL_PREFIX@
+ exec_prefix=${prefix}
+-libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
+-includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
++libdir=@CMAKE_INSTALL_FULL_LIBDIR@
++includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
+ 
+ Name: roaring
+ Description: Roaring bitmap implementation in C
diff --git a/pkgs/development/libraries/crocoddyl/default.nix b/pkgs/development/libraries/crocoddyl/default.nix
index efba136122988..394efd6317d80 100644
--- a/pkgs/development/libraries/crocoddyl/default.nix
+++ b/pkgs/development/libraries/crocoddyl/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , example-robot-data
 , pinocchio
@@ -11,14 +10,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "crocoddyl";
-  version = "2.0.2";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "loco-3d";
     repo = finalAttrs.pname;
     rev = "v${finalAttrs.version}";
-    fetchSubmodules = true;
-    hash = "sha256-MsAXHfxLNlIK/PbtVTjvBN1Jk3dyGEkfpj3/98nExj4=";
+    hash = "sha256-SVV9sleDXLm2QJmNgL25XLHC3y5bfKab4GSlE8jbT8w=";
   };
 
   strictDeps = true;
@@ -51,7 +49,7 @@ stdenv.mkDerivation (finalAttrs: {
   pythonImportsCheck = [
     "crocoddyl"
   ];
-  checkInputs = lib.optionals (pythonSupport) [
+  checkInputs = lib.optionals pythonSupport [
     python3Packages.scipy
   ];
 
diff --git a/pkgs/development/libraries/crypto++/default.nix b/pkgs/development/libraries/crypto++/default.nix
index 5030a185886de..741e9677f7102 100644
--- a/pkgs/development/libraries/crypto++/default.nix
+++ b/pkgs/development/libraries/crypto++/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
   installFlags = [ "LDCONF=true" ];
 
   meta = with lib; {
-    description = "A free C++ class library of cryptographic schemes";
+    description = "Free C++ class library of cryptographic schemes";
     homepage = "https://cryptopp.com/";
     changelog = [
       "https://raw.githubusercontent.com/weidai11/cryptopp/CRYPTOPP_${underscoredVersion}/History.txt"
diff --git a/pkgs/development/libraries/ctpp2/default.nix b/pkgs/development/libraries/ctpp2/default.nix
index 5aac0850a74d2..2d3b07e5e01f2 100644
--- a/pkgs/development/libraries/ctpp2/default.nix
+++ b/pkgs/development/libraries/ctpp2/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   doCheck = false; # fails
 
   meta = with lib; {
-    description = "A high performance templating engine";
+    description = "High performance templating engine";
     homepage = "https://ctpp.havoc.ru/";
     maintainers = [ maintainers.robbinch ];
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/ctranslate2/default.nix b/pkgs/development/libraries/ctranslate2/default.nix
index 908ed390dba4f..c640d5f700e26 100644
--- a/pkgs/development/libraries/ctranslate2/default.nix
+++ b/pkgs/development/libraries/ctranslate2/default.nix
@@ -24,13 +24,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "ctranslate2";
-  version = "4.3.0";
+  version = "4.3.1";
 
   src = fetchFromGitHub {
     owner = "OpenNMT";
     repo = "CTranslate2";
     rev = "v${version}";
-    hash = "sha256-p9zpmfs1V92a+3Mxgi5eLKuCUN+26FAL4SjySZzPOW8=";
+    hash = "sha256-ApmGto9RzT8t49bsZVwk8aQnIau9sQyFvt9qnWKUGAE=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/libraries/ctypes_sh/default.nix b/pkgs/development/libraries/ctypes_sh/default.nix
index c06eff11aad0d..56b463087f3d3 100644
--- a/pkgs/development/libraries/ctypes_sh/default.nix
+++ b/pkgs/development/libraries/ctypes_sh/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ zlib libffi elfutils libdwarf ];
 
   meta = with lib; {
-    description = "A foreign function interface for bash";
+    description = "Foreign function interface for bash";
     mainProgram = "ctypes.sh";
     homepage = "https://github.com/taviso/ctypes.sh";
     license = licenses.mit;
diff --git a/pkgs/development/libraries/dav1d/default.nix b/pkgs/development/libraries/dav1d/default.nix
index da1eecdabab3f..96d560b187855 100644
--- a/pkgs/development/libraries/dav1d/default.nix
+++ b/pkgs/development/libraries/dav1d/default.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A cross-platform AV1 decoder focused on speed and correctness";
+    description = "Cross-platform AV1 decoder focused on speed and correctness";
     longDescription = ''
       The goal of this project is to provide a decoder for most platforms, and
       achieve the highest speed possible to overcome the temporary lack of AV1
diff --git a/pkgs/development/libraries/dbxml/default.nix b/pkgs/development/libraries/dbxml/default.nix
index b6dcf908c4f92..f50b53d47e05c 100644
--- a/pkgs/development/libraries/dbxml/default.nix
+++ b/pkgs/development/libraries/dbxml/default.nix
@@ -28,6 +28,8 @@ stdenv.mkDerivation rec {
     "--with-berkeleydb=${db62.out}"
     "--with-xerces=${xercesc}"
     "--with-xqilla=${xqilla}"
+    # code uses register storage specifier
+    "CXXFLAGS=-std=c++14"
   ];
 
   preConfigure = ''
diff --git a/pkgs/development/libraries/dee/default.nix b/pkgs/development/libraries/dee/default.nix
index 4bece9069466c..14d8247f0a201 100644
--- a/pkgs/development/libraries/dee/default.nix
+++ b/pkgs/development/libraries/dee/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A library that uses DBus to provide objects allowing you to create Model-View-Controller type programs across DBus";
+    description = "Library that uses DBus to provide objects allowing you to create Model-View-Controller type programs across DBus";
     mainProgram = "dee-tool";
     homepage = "https://launchpad.net/dee";
     license = licenses.lgpl3;
diff --git a/pkgs/development/libraries/directx-headers/default.nix b/pkgs/development/libraries/directx-headers/default.nix
index b15a6baa7cab5..061d18d15016a 100644
--- a/pkgs/development/libraries/directx-headers/default.nix
+++ b/pkgs/development/libraries/directx-headers/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchFromGitHub, meson, ninja }:
 stdenv.mkDerivation rec {
   pname = "directx-headers";
-  version = "1.611.0";
+  version = "1.614.0";
 
   src = fetchFromGitHub {
     owner = "microsoft";
     repo = "DirectX-Headers";
     rev = "v${version}";
-    hash = "sha256-HG2Zj8hvsgv8oeSDp1eK+1A5bvFL6oQIh5mMFWOFsvk=";
+    hash = "sha256-0LaN9D3cKVacMJhZCe9oxDPHpd1jdCAV0ImG2rSgnxc=";
   };
 
   nativeBuildInputs = [ meson ninja ];
diff --git a/pkgs/development/libraries/dleyna-connector-dbus/default.nix b/pkgs/development/libraries/dleyna-connector-dbus/default.nix
index a6983decf33f5..4cdd66ba9cfef 100644
--- a/pkgs/development/libraries/dleyna-connector-dbus/default.nix
+++ b/pkgs/development/libraries/dleyna-connector-dbus/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A D-Bus API for the dLeyna services";
+    description = "D-Bus API for the dLeyna services";
     homepage = "https://github.com/phako/dleyna-connector-dbus";
     maintainers = with maintainers; [ jtojnar ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/dleyna-core/default.nix b/pkgs/development/libraries/dleyna-core/default.nix
index 2f019977c89d4..c9bbae74611e2 100644
--- a/pkgs/development/libraries/dleyna-core/default.nix
+++ b/pkgs/development/libraries/dleyna-core/default.nix
@@ -32,6 +32,11 @@ stdenv.mkDerivation rec {
     gupnp
   ];
 
+  env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isClang [
+    "-Wno-error=implicit-function-declaration"
+    "-Wno-error=int-conversion"
+  ]);
+
   meta = with lib; {
     description = "Library of utility functions that are used by the higher level dLeyna";
     homepage = "https://github.com/phako/dleyna-core";
diff --git a/pkgs/development/libraries/dlib/default.nix b/pkgs/development/libraries/dlib/default.nix
index e433ec46a3024..e7915ad652144 100644
--- a/pkgs/development/libraries/dlib/default.nix
+++ b/pkgs/development/libraries/dlib/default.nix
@@ -11,6 +11,7 @@
 , config
 , guiSupport ? false
 , libX11
+, enableShared ? !stdenv.hostPlatform.isStatic # dlib has a build system that forces the user to choose between either shared or static libraries. See https://github.com/davisking/dlib/issues/923#issuecomment-2175865174
 , sse4Support ? stdenv.hostPlatform.sse4_1Support
 , avxSupport ? stdenv.hostPlatform.avxSupport
 , cudaSupport ? config.cudaSupport
@@ -18,13 +19,13 @@
 }@inputs:
 (if cudaSupport then cudaPackages.backendStdenv else inputs.stdenv).mkDerivation rec {
   pname = "dlib";
-  version = "19.24.2";
+  version = "19.24.4";
 
   src = fetchFromGitHub {
     owner = "davisking";
     repo = "dlib";
     rev = "v${version}";
-    sha256 = "sha256-Z1fScuaIHjj2L1uqLIvsZ7ARKNjM+iaA8SAtWUTPFZk=";
+    sha256 = "sha256-1A/9u+ThtUtmmSwnFSn8S65Yavucl2X+o3bNYgew0Oc=";
   };
 
   postPatch = ''
@@ -32,6 +33,7 @@
   '';
 
   cmakeFlags = [
+    (lib.cmakeBool "BUILD_SHARED_LIBS" enableShared)
     (lib.cmakeBool "USE_SSE4_INSTRUCTIONS" sse4Support)
     (lib.cmakeBool "USE_AVX_INSTRUCTIONS" avxSupport)
     (lib.cmakeBool "DLIB_USE_CUDA" cudaSupport)
@@ -81,7 +83,7 @@
   };
 
   meta = with lib; {
-    description = "A general purpose cross-platform C++ machine learning library";
+    description = "General purpose cross-platform C++ machine learning library";
     homepage = "http://www.dlib.net";
     license = licenses.boost;
     maintainers = with maintainers; [ christopherpoole ];
diff --git a/pkgs/development/libraries/doctest/default.nix b/pkgs/development/libraries/doctest/default.nix
index 642cfa3052f71..1acddbbd12ec6 100644
--- a/pkgs/development/libraries/doctest/default.nix
+++ b/pkgs/development/libraries/doctest/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/doctest/doctest";
-    description = "The fastest feature-rich C++11/14/17/20 single-header testing framework";
+    description = "Fastest feature-rich C++11/14/17/20 single-header testing framework";
     platforms = platforms.all;
     license = licenses.mit;
     maintainers = with maintainers; [ davidtwco ];
diff --git a/pkgs/development/libraries/dotconf/default.nix b/pkgs/development/libraries/dotconf/default.nix
index 27aee8e92cd74..389ce72a68467 100644
--- a/pkgs/development/libraries/dotconf/default.nix
+++ b/pkgs/development/libraries/dotconf/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ ];
 
   meta = with lib; {
-    description = "A configuration parser library";
+    description = "Configuration parser library";
     maintainers = with maintainers; [ pSub ];
     homepage = "https://github.com/williamh/dotconf";
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/libraries/drogon/default.nix b/pkgs/development/libraries/drogon/default.nix
index 2cdc6cfafb366..1710d6046e338 100644
--- a/pkgs/development/libraries/drogon/default.nix
+++ b/pkgs/development/libraries/drogon/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, jsoncpp, libossp_uuid, zlib, lib, fetchpatch
+{ stdenv, fetchFromGitHub, cmake, jsoncpp, libossp_uuid, zlib, lib
 # optional but of negligible size
 , openssl, brotli, c-ares
 # optional databases
diff --git a/pkgs/development/libraries/dssi/default.nix b/pkgs/development/libraries/dssi/default.nix
index 322c689ba11a7..b3dad8e2018bc 100644
--- a/pkgs/development/libraries/dssi/default.nix
+++ b/pkgs/development/libraries/dssi/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     ];
 
   meta = with lib; {
-    description = "A plugin SDK for virtual instruments";
+    description = "Plugin SDK for virtual instruments";
     maintainers = with maintainers;
     [
       raskin
diff --git a/pkgs/development/libraries/duckdb/default.nix b/pkgs/development/libraries/duckdb/default.nix
index 343574f251a8b..c222b117fff94 100644
--- a/pkgs/development/libraries/duckdb/default.nix
+++ b/pkgs/development/libraries/duckdb/default.nix
@@ -1,8 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
-, substituteAll
 , cmake
 , ninja
 , openssl
diff --git a/pkgs/development/libraries/duckdb/versions.json b/pkgs/development/libraries/duckdb/versions.json
index de679be88599a..8ae8b4bc57d2c 100644
--- a/pkgs/development/libraries/duckdb/versions.json
+++ b/pkgs/development/libraries/duckdb/versions.json
@@ -1,5 +1,5 @@
 {
-  "version": "0.10.2",
-  "rev": "1601d94f94a7e0d2eb805a94803eb1e3afbbe4ed",
-  "hash": "sha256-CTZ90KJvLPQqu1FYciEWsxJbvybCjeBsi/12bkfVd9Q="
+  "version": "1.0.0",
+  "rev": "1f98600c2cf8722a6d2f2d805bb4af5e701319fc",
+  "hash": "sha256-bzFxWv8+Ac8vZLd2OWJyu4T0/0dc7wykdOORMpx92Ic="
 }
diff --git a/pkgs/development/libraries/eccodes/default.nix b/pkgs/development/libraries/eccodes/default.nix
index e8b58762f9208..1597375cf7694 100644
--- a/pkgs/development/libraries/eccodes/default.nix
+++ b/pkgs/development/libraries/eccodes/default.nix
@@ -16,11 +16,11 @@
 
 stdenv.mkDerivation rec {
   pname = "eccodes";
-  version = "2.34.1";
+  version = "2.35.0";
 
   src = fetchurl {
     url = "https://confluence.ecmwf.int/download/attachments/45757960/eccodes-${version}-Source.tar.gz";
-    hash = "sha256-+bhoASLjzOwm5u0kqB8bxQ7Z8iMrQx4F5XNniqxNlzQ=";
+    hash = "sha256-FoiPtmebHiQfULafMArFASSjGSNCri6pA9diG2ZOeeo=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/edencommon/default.nix b/pkgs/development/libraries/edencommon/default.nix
index 0690f0f12ebdf..97406f81c47ae 100644
--- a/pkgs/development/libraries/edencommon/default.nix
+++ b/pkgs/development/libraries/edencommon/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A shared library for Meta's source control filesystem tools (EdenFS and Watchman)";
+    description = "Shared library for Meta's source control filesystem tools (EdenFS and Watchman)";
     homepage = "https://github.com/facebookexperimental/edencommon";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/editline/default.nix b/pkgs/development/libraries/editline/default.nix
index 4f891a24f1f0a..3571554559c78 100644
--- a/pkgs/development/libraries/editline/default.nix
+++ b/pkgs/development/libraries/editline/default.nix
@@ -26,6 +26,8 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  configureFlags = [ (lib.enableFeature true "sigstop") ];
+
   nativeBuildInputs = [ autoreconfHook ];
 
   outputs = [ "out" "dev" "man" "doc" ];
@@ -34,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://troglobit.com/projects/editline/";
-    description = "A readline() replacement for UNIX without termcap (ncurses)";
+    description = "Readline() replacement for UNIX without termcap (ncurses)";
     license = licenses.bsdOriginal;
     maintainers = with maintainers; [ dtzWill oxalica ];
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/egl-wayland/default.nix b/pkgs/development/libraries/egl-wayland/default.nix
index f84b44007e299..7291ff8f8e9d3 100644
--- a/pkgs/development/libraries/egl-wayland/default.nix
+++ b/pkgs/development/libraries/egl-wayland/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , eglexternalplatform
 , pkg-config
 , meson
@@ -57,7 +56,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "The EGLStream-based Wayland external platform";
+    description = "EGLStream-based Wayland external platform";
     homepage = "https://github.com/NVIDIA/egl-wayland/";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/eglexternalplatform/default.nix b/pkgs/development/libraries/eglexternalplatform/default.nix
index 2845faa9d0884..50e2763722740 100644
--- a/pkgs/development/libraries/eglexternalplatform/default.nix
+++ b/pkgs/development/libraries/eglexternalplatform/default.nix
@@ -31,7 +31,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The EGL External Platform interface";
+    description = "EGL External Platform interface";
     homepage = "https://github.com/NVIDIA/eglexternalplatform";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/elf-header/default.nix b/pkgs/development/libraries/elf-header/default.nix
index 72166bb38ce99..4953251d4af6d 100644
--- a/pkgs/development/libraries/elf-header/default.nix
+++ b/pkgs/development/libraries/elf-header/default.nix
@@ -33,7 +33,7 @@ stdenvNoCC.mkDerivation {
 
   meta = libc.meta // {
     outputsToInstall = [ "out" ];
-    description = "The datastructures of ELF according to the target platform's libc";
+    description = "Datastructures of ELF according to the target platform's libc";
     longDescription = ''
       The Executable and Linkable Format (ELF, formerly named Extensible Linking
       Format), is usually defined in a header like this.
diff --git a/pkgs/development/libraries/enet/default.nix b/pkgs/development/libraries/enet/default.nix
index 53aec96fe705b..cb57f5a2f07e0 100644
--- a/pkgs/development/libraries/enet/default.nix
+++ b/pkgs/development/libraries/enet/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "enet";
-  version = "1.3.17";
+  version = "1.3.18";
 
   src = fetchurl {
     url = "http://enet.bespin.org/download/${pname}-${version}.tar.gz";
-    sha256 = "1p6f9mby86af6cs7pv6h48032ip9g32c05cb7d9mimam8lchz3x3";
+    sha256 = "sha256-KooMU2DWi7T80R8uTEfGmXbo0shbEJ3X1gsRgaT4XTY=";
   };
 
   meta = {
diff --git a/pkgs/development/libraries/entt/default.nix b/pkgs/development/libraries/entt/default.nix
index 8649757b6edae..ae2e8f0263d4e 100644
--- a/pkgs/development/libraries/entt/default.nix
+++ b/pkgs/development/libraries/entt/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/skypjack/entt";
-    description = "A header-only, tiny and easy to use library for game programming and much more written in modern C++";
+    description = "Header-only, tiny and easy to use library for game programming and much more written in modern C++";
     maintainers = with maintainers; [ twey ];
     platforms = platforms.all;
     license = licenses.mit;
diff --git a/pkgs/development/libraries/example-robot-data/default.nix b/pkgs/development/libraries/example-robot-data/default.nix
index b2e665bbc4a92..67e1de59891d0 100644
--- a/pkgs/development/libraries/example-robot-data/default.nix
+++ b/pkgs/development/libraries/example-robot-data/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , cmake
 , pythonSupport ? false
 , python3Packages
@@ -20,6 +21,16 @@ stdenv.mkDerivation (finalAttrs: {
 
   strictDeps = true;
 
+  patches = [
+    # Temporary patch for pinocchio v3.0.0 compatibility.
+    # Should be removed on next example-robot-data release
+    (fetchpatch {
+      name = "pin3.patch";
+      url = "https://github.com/Gepetto/example-robot-data/pull/217/commits/a605ceec857005cde153ec5895e227205eb7a5c3.patch";
+      hash = "sha256-cvAWFytrU2XVggo/nCg8cuLcaZBTACXg6LxjL/6YMPs=";
+    })
+  ];
+
   nativeBuildInputs = [
     cmake
   ];
@@ -42,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "Set of robot URDFs for benchmarking and developed examples.";
+    description = "Set of robot URDFs for benchmarking and developed examples";
     homepage = "https://github.com/Gepetto/example-robot-data";
     license = licenses.bsd3;
     maintainers = with maintainers; [ nim65s wegank ];
diff --git a/pkgs/development/libraries/exempi/default.nix b/pkgs/development/libraries/exempi/default.nix
index e79bc61698025..96d8d1db7a9ac 100644
--- a/pkgs/development/libraries/exempi/default.nix
+++ b/pkgs/development/libraries/exempi/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "An implementation of XMP (Adobe's Extensible Metadata Platform)";
+    description = "Implementation of XMP (Adobe's Extensible Metadata Platform)";
     mainProgram = "exempi";
     homepage = "https://libopenraw.freedesktop.org/exempi/";
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/pkgs/development/libraries/exiv2/default.nix b/pkgs/development/libraries/exiv2/default.nix
index 0ef833b8aa234..b32bffb2b575f 100644
--- a/pkgs/development/libraries/exiv2/default.nix
+++ b/pkgs/development/libraries/exiv2/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , doxygen
 , gettext
@@ -97,7 +96,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://exiv2.org";
-    description = "A library and command-line utility to manage image metadata";
+    description = "Library and command-line utility to manage image metadata";
     mainProgram = "exiv2";
     platforms = platforms.all;
     license = licenses.gpl2Plus;
diff --git a/pkgs/development/libraries/expat/default.nix b/pkgs/development/libraries/expat/default.nix
index 9944277e946b6..bb97ca8728e0b 100644
--- a/pkgs/development/libraries/expat/default.nix
+++ b/pkgs/development/libraries/expat/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, updateAutotoolsGnuConfigScriptsHook
 # for passthru.tests
 , python3
 , perlPackages
@@ -29,6 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   strictDeps = true;
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
 
   outputs = [ "out" "dev" ]; # TODO: fix referrers
   outputBin = "dev";
@@ -67,7 +69,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     changelog = "https://github.com/libexpat/libexpat/blob/${tag}/expat/Changes";
     homepage = "https://libexpat.github.io/";
-    description = "A stream-oriented XML parser library written in C";
+    description = "Stream-oriented XML parser library written in C";
     mainProgram = "xmlwf";
     platforms = platforms.all;
     license = licenses.mit; # expat version
diff --git a/pkgs/development/libraries/expected-lite/default.nix b/pkgs/development/libraries/expected-lite/default.nix
index 5b5fc620795c7..a0d5d1a509b9b 100644
--- a/pkgs/development/libraries/expected-lite/default.nix
+++ b/pkgs/development/libraries/expected-lite/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "expected-lite";
-  version = "0.6.3";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "martinmoene";
     repo = "expected-lite";
     rev = "v${version}";
-    hash = "sha256-Qvu/YmkivfXVGM4ZPLVt3XmOEnKWcmHpbb9xJyC2qDQ=";
+    hash = "sha256-8Lf+R7wC7f2YliXqhR6pwVVSLZ6qheu7YOV5jHc0Cjc=";
   };
 
   nativeBuildInputs = [ cmake ninja ];
diff --git a/pkgs/development/libraries/exprtk/default.nix b/pkgs/development/libraries/exprtk/default.nix
index 8dc4f7598abd6..1d917f6de6ed1 100644
--- a/pkgs/development/libraries/exprtk/default.nix
+++ b/pkgs/development/libraries/exprtk/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The C++ Mathematical Expression Toolkit Library";
+    description = "C++ Mathematical Expression Toolkit Library";
     homepage = "https://www.partow.net/programming/exprtk/index.html";
     license = licenses.mit;
     maintainers = with maintainers; [ anselmschueler ];
diff --git a/pkgs/development/libraries/faad2/default.nix b/pkgs/development/libraries/faad2/default.nix
index 12179dd7e2a8e..c4b236786057d 100644
--- a/pkgs/development/libraries/faad2/default.nix
+++ b/pkgs/development/libraries/faad2/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "An open source MPEG-4 and MPEG-2 AAC decoder";
+    description = "Open source MPEG-4 and MPEG-2 AAC decoder";
     homepage = "https://sourceforge.net/projects/faac/";
     license     = licenses.gpl2Plus;
     maintainers = with maintainers; [ codyopel ];
diff --git a/pkgs/development/libraries/fast-cpp-csv-parser/default.nix b/pkgs/development/libraries/fast-cpp-csv-parser/default.nix
index 5a81e3f727463..a30aacee26e5d 100644
--- a/pkgs/development/libraries/fast-cpp-csv-parser/default.nix
+++ b/pkgs/development/libraries/fast-cpp-csv-parser/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A small, easy-to-use and fast header-only library for reading comma separated value (CSV) files";
+    description = "Small, easy-to-use and fast header-only library for reading comma separated value (CSV) files";
     homepage = "https://github.com/ben-strasser/fast-cpp-csv-parser";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bhipple ];
diff --git a/pkgs/development/libraries/fastjson/default.nix b/pkgs/development/libraries/fastjson/default.nix
index 8cf571e2c9316..1e8791f10419b 100644
--- a/pkgs/development/libraries/fastjson/default.nix
+++ b/pkgs/development/libraries/fastjson/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A fast json library for C";
+    description = "Fast json library for C";
     homepage = "https://github.com/rsyslog/libfastjson";
     license = licenses.mit;
     maintainers = with maintainers; [ nequissimus ];
diff --git a/pkgs/development/libraries/fastpbkdf2/default.nix b/pkgs/development/libraries/fastpbkdf2/default.nix
index 723edd6f29d40..226d4d1a9e11a 100644
--- a/pkgs/development/libraries/fastpbkdf2/default.nix
+++ b/pkgs/development/libraries/fastpbkdf2/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A fast PBKDF2-HMAC-{SHA1,SHA256,SHA512} implementation in C";
+    description = "Fast PBKDF2-HMAC-{SHA1,SHA256,SHA512} implementation in C";
     homepage = "https://github.com/ctz/fastpbkdf2";
     license = licenses.cc0;
     maintainers = with maintainers; [ ledif ];
diff --git a/pkgs/development/libraries/faudio/default.nix b/pkgs/development/libraries/faudio/default.nix
index 743ef904dcdf9..41775b0a9a538 100644
--- a/pkgs/development/libraries/faudio/default.nix
+++ b/pkgs/development/libraries/faudio/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "faudio";
-  version = "24.05";
+  version = "24.06";
 
   src = fetchFromGitHub {
     owner = "FNA-XNA";
     repo = "FAudio";
     rev = version;
-    sha256 = "sha256-YL5JT/1JTfeKaLUEMnud6OOMk/NSCnBjohk+6qRaU60=";
+    sha256 = "sha256-na2aTcxrS8vHTw80zCAefY8zEQ9EMD/iTQp9l4wkIrI=";
   };
 
   nativeBuildInputs = [cmake];
diff --git a/pkgs/development/libraries/fb303/default.nix b/pkgs/development/libraries/fb303/default.nix
index 6c50819ef1468..059e666027a01 100644
--- a/pkgs/development/libraries/fb303/default.nix
+++ b/pkgs/development/libraries/fb303/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "a base Thrift service and a common set of functionality for querying stats, options, and other information from a service";
+    description = "Base Thrift service and a common set of functionality for querying stats, options, and other information from a service";
     homepage = "https://github.com/facebook/fb303";
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/fbjni/default.nix b/pkgs/development/libraries/fbjni/default.nix
index 20d47cac1fa31..cb0d766a90da5 100644
--- a/pkgs/development/libraries/fbjni/default.nix
+++ b/pkgs/development/libraries/fbjni/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A library designed to simplify the usage of the Java Native Interface";
+    description = "Library designed to simplify the usage of the Java Native Interface";
     homepage = "https://github.com/facebookincubator/fbjni";
     license = licenses.asl20;
     maintainers = with maintainers; [ jonringer ];
diff --git a/pkgs/development/libraries/fcgi/default.nix b/pkgs/development/libraries/fcgi/default.nix
index 5c7f0c44f91c9..d59fac5ff4dc9 100644
--- a/pkgs/development/libraries/fcgi/default.nix
+++ b/pkgs/development/libraries/fcgi/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   pname = "fcgi";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   postInstall = "ln -s . $out/include/fastcgi";
 
   meta = with lib; {
-    description = "A language independent, scalable, open extension to CG";
+    description = "Language independent, scalable, open extension to CG";
     homepage = "https://fastcgi-archives.github.io/"; # Formerly http://www.fastcgi.com/
     license = "FastCGI see LICENSE.TERMS";
     mainProgram = "cgi-fcgi";
diff --git a/pkgs/development/libraries/fcl/default.nix b/pkgs/development/libraries/fcl/default.nix
index 4e13a3f7113f3..0c6790db9f702 100644
--- a/pkgs/development/libraries/fcl/default.nix
+++ b/pkgs/development/libraries/fcl/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, eigen, libccd, octomap }:
+{ lib, stdenv, fetchFromGitHub, cmake, eigen, libccd, octomap }:
 
 stdenv.mkDerivation rec {
   pname = "fcl";
diff --git a/pkgs/development/libraries/fdk-aac/default.nix b/pkgs/development/libraries/fdk-aac/default.nix
index 0b07b5704916e..8f8611ccf6a11 100644
--- a/pkgs/development/libraries/fdk-aac/default.nix
+++ b/pkgs/development/libraries/fdk-aac/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   configureFlags = lib.optional exampleSupport "--enable-example";
 
   meta = with lib; {
-    description = "A high-quality implementation of the AAC codec from Android";
+    description = "High-quality implementation of the AAC codec from Android";
     homepage = "https://sourceforge.net/projects/opencore-amr/";
     license = licenses.fraunhofer-fdk;
     maintainers = with maintainers; [ codyopel ];
diff --git a/pkgs/development/libraries/ffmpeg/default.nix b/pkgs/development/libraries/ffmpeg/default.nix
index 6da6713a7f79b..5bd9171275bee 100644
--- a/pkgs/development/libraries/ffmpeg/default.nix
+++ b/pkgs/development/libraries/ffmpeg/default.nix
@@ -32,8 +32,8 @@ let
   };
 
   v7 = {
-    version = "7.0";
-    hash = "sha256-RdDfv+0y90XpgjIRvTjsemKyGunzDbsh4j4WiE9rfyM=";
+    version = "7.0.1";
+    hash = "sha256-HiCT6bvLx4zmJ6ffutoimdz5ENQ55CRF64WBT3HeXMA=";
   };
 in
 
diff --git a/pkgs/development/libraries/ffmpeg/generic.nix b/pkgs/development/libraries/ffmpeg/generic.nix
index 55f6709c1361c..7496cb4de0e76 100644
--- a/pkgs/development/libraries/ffmpeg/generic.nix
+++ b/pkgs/development/libraries/ffmpeg/generic.nix
@@ -465,7 +465,7 @@ stdenv.mkDerivation (finalAttrs: {
         hash = "sha256-oZMZysBA+/gwaGEM1yvI+8wCadXWE7qLRL6Emap3b8Q=";
       }
     ])
-    ++ (lib.optionals (lib.versionAtLeast version "7.0") [
+    ++ (lib.optionals (lib.versionAtLeast version "7.0" && lib.versionOlder version "7.0.1") [
       {
         # Will likely be obsolete in >7.0
         name = "fate_avoid_dependency_on_samples";
@@ -850,7 +850,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
 
   meta = with lib; {
-    description = "A complete, cross-platform solution to record, convert and stream audio and video";
+    description = "Complete, cross-platform solution to record, convert and stream audio and video";
     homepage = "https://www.ffmpeg.org/";
     changelog = "https://github.com/FFmpeg/FFmpeg/blob/n${version}/Changelog";
     longDescription = ''
diff --git a/pkgs/development/libraries/ffmpegthumbnailer/default.nix b/pkgs/development/libraries/ffmpegthumbnailer/default.nix
index c1c9fe960e7d3..10e9b70d42ede 100644
--- a/pkgs/development/libraries/ffmpegthumbnailer/default.nix
+++ b/pkgs/development/libraries/ffmpegthumbnailer/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A lightweight video thumbnailer";
+    description = "Lightweight video thumbnailer";
     longDescription = "FFmpegthumbnailer is a lightweight video
         thumbnailer that can be used by file managers to create thumbnails
         for your video files. The thumbnailer uses ffmpeg to decode frames
diff --git a/pkgs/development/libraries/ffms/default.nix b/pkgs/development/libraries/ffms/default.nix
index 370b4267bdb45..1afdd23923ddf 100644
--- a/pkgs/development/libraries/ffms/default.nix
+++ b/pkgs/development/libraries/ffms/default.nix
@@ -3,19 +3,19 @@
 , fetchFromGitHub
 , autoreconfHook
 , pkg-config
-, ffmpeg_4
+, ffmpeg
 , zlib
 }:
 
 stdenv.mkDerivation rec {
   pname = "ffms";
-  version = "2.40";
+  version = "5.0";
 
   src = fetchFromGitHub {
     owner = "FFMS";
     repo = "ffms2";
     rev = version;
-    sha256 = "sha256-3bPxt911T0bGpAIS2RxBjo+VV84xW06eKcCj3ZAcmvw=";
+    sha256 = "sha256-Ildl8hbKSFGh4MUBK+k8uYMDrOZD9NSMdPAWIIaGy4E=";
   };
 
   env.NIX_CFLAGS_COMPILE = "-fPIC";
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   '';
 
   buildInputs = [
-    ffmpeg_4
+    ffmpeg
     zlib
   ];
 
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    homepage = "https://github.com/FFMS/ffms2/";
+    homepage = "https://github.com/FFMS/ffms2";
     description = "FFmpeg based source library for easy frame accurate access";
     mainProgram = "ffmsindex";
     license = licenses.mit;
diff --git a/pkgs/development/libraries/flite/default.nix b/pkgs/development/libraries/flite/default.nix
index 59ab572762ee4..8573c862726e6 100644
--- a/pkgs/development/libraries/flite/default.nix
+++ b/pkgs/development/libraries/flite/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = false;
 
   meta = with lib; {
-    description = "A small, fast run-time speech synthesis engine";
+    description = "Small, fast run-time speech synthesis engine";
     homepage = "http://www.festvox.org/flite/";
     license = licenses.bsdOriginal;
     maintainers = with maintainers; [ getchoo ];
diff --git a/pkgs/development/libraries/fltk/common.nix b/pkgs/development/libraries/fltk/common.nix
index 426a85e6a220a..d17cc9bd2ae5d 100644
--- a/pkgs/development/libraries/fltk/common.nix
+++ b/pkgs/development/libraries/fltk/common.nix
@@ -192,7 +192,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A C++ cross-platform lightweight GUI library";
+    description = "C++ cross-platform lightweight GUI library";
     homepage = "https://www.fltk.org";
     platforms = platforms.unix;
     # LGPL2 with static linking exception
diff --git a/pkgs/development/libraries/fmt/default.nix b/pkgs/development/libraries/fmt/default.nix
index 4dd6d86fdaeb4..9ce329df79573 100644
--- a/pkgs/development/libraries/fmt/default.nix
+++ b/pkgs/development/libraries/fmt/default.nix
@@ -1,6 +1,6 @@
 { lib
 , stdenv
-, fetchFromGitHub, fetchpatch
+, fetchFromGitHub
 , cmake
 , enableShared ? !stdenv.hostPlatform.isStatic
 
diff --git a/pkgs/development/libraries/folks/default.nix b/pkgs/development/libraries/folks/default.nix
index 0f40be439a3ab..8a44cd09dac94 100644
--- a/pkgs/development/libraries/folks/default.nix
+++ b/pkgs/development/libraries/folks/default.nix
@@ -90,12 +90,10 @@ stdenv.mkDerivation (finalAttrs: {
   # occur inconsistently
   doCheck = false;
 
-  # Prevents e-d-s add-contacts-stress-test from timing out
-  checkPhase = ''
-    runHook preCheck
-    meson test --timeout-multiplier 4
-    runHook postCheck
-  '';
+  mesonCheckFlags = [
+    # Prevents e-d-s add-contacts-stress-test from timing out
+    "--timeout-multiplier" "4"
+  ];
 
   postPatch = lib.optionalString telepathySupport ''
     patchShebangs tests/tools/manager-file.py
@@ -109,7 +107,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A library that aggregates people from multiple sources to create metacontacts";
+    description = "Library that aggregates people from multiple sources to create metacontacts";
     homepage = "https://gitlab.gnome.org/GNOME/folks";
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/development/libraries/folly/default.nix b/pkgs/development/libraries/folly/default.nix
index 9dd6bbeaa55e4..171b81af8365d 100644
--- a/pkgs/development/libraries/folly/default.nix
+++ b/pkgs/development/libraries/folly/default.nix
@@ -100,7 +100,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "An open-source C++ library developed and used at Facebook";
+    description = "Open-source C++ library developed and used at Facebook";
     homepage = "https://github.com/facebook/folly";
     license = licenses.asl20;
     # 32bit is not supported: https://github.com/facebook/folly/issues/103
diff --git a/pkgs/development/libraries/fontconfig/default.nix b/pkgs/development/libraries/fontconfig/default.nix
index 669c2dec851ca..569c2716f0e53 100644
--- a/pkgs/development/libraries/fontconfig/default.nix
+++ b/pkgs/development/libraries/fontconfig/default.nix
@@ -85,7 +85,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A library for font customization and configuration";
+    description = "Library for font customization and configuration";
     homepage = "http://fontconfig.org/";
     license = licenses.bsd2; # custom but very bsd-like
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/forge/default.nix b/pkgs/development/libraries/forge/default.nix
index d9996ada50675..051038c747875 100644
--- a/pkgs/development/libraries/forge/default.nix
+++ b/pkgs/development/libraries/forge/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An OpenGL interop library that can be used with ArrayFire or any other application using CUDA or OpenCL compute backend";
+    description = "OpenGL interop library that can be used with ArrayFire or any other application using CUDA or OpenCL compute backend";
     longDescription = ''
       An OpenGL interop library that can be used with ArrayFire or any other application using CUDA or OpenCL compute backend.
       The goal of Forge is to provide high performance OpenGL visualizations for C/C++ applications that use CUDA/OpenCL.
diff --git a/pkgs/development/libraries/fox/default.nix b/pkgs/development/libraries/fox/default.nix
index 49526b99c53b9..2715e2c80ca43 100644
--- a/pkgs/development/libraries/fox/default.nix
+++ b/pkgs/development/libraries/fox/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
 , libpng
 , libjpeg
 , libtiff
diff --git a/pkgs/development/libraries/fox/fox-1.6.nix b/pkgs/development/libraries/fox/fox-1.6.nix
index b5b86cbe48a03..0ab874fd76dd2 100644
--- a/pkgs/development/libraries/fox/fox-1.6.nix
+++ b/pkgs/development/libraries/fox/fox-1.6.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   meta = {
     broken = stdenv.isDarwin;
     branch = "1.6";
-    description = "A C++ based class library for building Graphical User Interfaces";
+    description = "C++ based class library for building Graphical User Interfaces";
     longDescription = ''
         FOX stands for Free Objects for X.
         It is a C++ based class library for building Graphical User Interfaces.
diff --git a/pkgs/development/libraries/freetds/default.nix b/pkgs/development/libraries/freetds/default.nix
index bc6d6a583ea00..d6c38b555dd6e 100644
--- a/pkgs/development/libraries/freetds/default.nix
+++ b/pkgs/development/libraries/freetds/default.nix
@@ -8,11 +8,11 @@ assert odbcSupport -> unixODBC != null;
 
 stdenv.mkDerivation rec {
   pname = "freetds";
-  version = "1.4.11";
+  version = "1.4.17";
 
   src = fetchurl {
     url    = "https://www.freetds.org/files/stable/${pname}-${version}.tar.bz2";
-    hash   = "sha256-Vn986RPyIhkd2n4cIh1eJyo4cVL+9srL2Xdn/qaLYT4=";
+    hash   = "sha256-P3CoRV6zopAtQDmtkbk0o0jKHu4jpKkqPeCCSQWn0aI=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/libraries/freetype/default.nix b/pkgs/development/libraries/freetype/default.nix
index 1a8009f04ce7b..8ff0005d0ff07 100644
--- a/pkgs/development/libraries/freetype/default.nix
+++ b/pkgs/development/libraries/freetype/default.nix
@@ -103,7 +103,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A font rendering engine";
+    description = "Font rendering engine";
     mainProgram = "freetype-config";
     longDescription = ''
       FreeType is a portable and efficient library for rendering fonts. It
diff --git a/pkgs/development/libraries/freexl/default.nix b/pkgs/development/libraries/freexl/default.nix
index ac5609425b56b..74d4a646b074b 100644
--- a/pkgs/development/libraries/freexl/default.nix
+++ b/pkgs/development/libraries/freexl/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A library to extract valid data from within an Excel (.xls) spreadsheet";
+    description = "Library to extract valid data from within an Excel (.xls) spreadsheet";
     homepage = "https://www.gaia-gis.it/fossil/freexl";
     # They allow any of these
     license = with licenses; [ gpl2Plus lgpl21Plus mpl11 ];
diff --git a/pkgs/development/libraries/fuzzylite/default.nix b/pkgs/development/libraries/fuzzylite/default.nix
index 1fd6d6506c288..82f11abe88e63 100644
--- a/pkgs/development/libraries/fuzzylite/default.nix
+++ b/pkgs/development/libraries/fuzzylite/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , ninja
 , useFloat ? false
@@ -37,7 +36,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A fuzzy logic control library in C++";
+    description = "Fuzzy logic control library in C++";
     mainProgram = "fuzzylite";
     homepage = "https://fuzzylite.com";
     changelog = "https://github.com/fuzzylite/fuzzylite/${src.rev}/release/CHANGELOG";
diff --git a/pkgs/development/libraries/g2o/default.nix b/pkgs/development/libraries/g2o/default.nix
index cc4339da982aa..7ff0c207060c0 100644
--- a/pkgs/development/libraries/g2o/default.nix
+++ b/pkgs/development/libraries/g2o/default.nix
@@ -37,7 +37,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A General Framework for Graph Optimization";
+    description = "General Framework for Graph Optimization";
     homepage = "https://github.com/RainerKuemmerle/g2o";
     license = with licenses; [ bsd3 lgpl3 gpl3 ];
     maintainers = with maintainers; [ lopsided98 ];
diff --git a/pkgs/development/libraries/gamin/default.nix b/pkgs/development/libraries/gamin/default.nix
index a2d6078024d58..e2d32fd645278 100644
--- a/pkgs/development/libraries/gamin/default.nix
+++ b/pkgs/development/libraries/gamin/default.nix
@@ -25,6 +25,10 @@ stdenv.mkDerivation rec {
     sed -i 's/,--version-script=.*$/\\/' libgamin/Makefile
   '';
 
+  env = lib.optionalAttrs stdenv.cc.isClang {
+    NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration";
+  };
+
   patches = [ ./deadlock.patch ]
     ++ map fetchurl (import ./debian-patches.nix)
     ++ lib.optional stdenv.cc.isClang ./returnval.patch
@@ -37,7 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage    = "https://people.gnome.org/~veillard/gamin/";
-    description = "A file and directory monitoring system";
+    description = "File and directory monitoring system";
     maintainers = with maintainers; [ lovek323 ];
     license = licenses.gpl2;
     platforms   = platforms.unix;
diff --git a/pkgs/development/libraries/ganv/default.nix b/pkgs/development/libraries/ganv/default.nix
index 32318e1fc0fce..1e4b8436e8228 100644
--- a/pkgs/development/libraries/ganv/default.nix
+++ b/pkgs/development/libraries/ganv/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   strictDeps = true;
 
   meta = with lib; {
-    description = "An interactive Gtk canvas widget for graph-based interfaces";
+    description = "Interactive Gtk canvas widget for graph-based interfaces";
     mainProgram = "ganv_bench";
     homepage = "http://drobilla.net";
     license = licenses.gpl3;
diff --git a/pkgs/development/libraries/gbenchmark/default.nix b/pkgs/development/libraries/gbenchmark/default.nix
index 7292b34528268..fd7c22a674d0b 100644
--- a/pkgs/development/libraries/gbenchmark/default.nix
+++ b/pkgs/development/libraries/gbenchmark/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A microbenchmark support library";
+    description = "Microbenchmark support library";
     homepage = "https://github.com/google/benchmark";
     license = licenses.asl20;
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/pkgs/development/libraries/gd/default.nix b/pkgs/development/libraries/gd/default.nix
index af96d9d06d27b..bf59bdd1f625a 100644
--- a/pkgs/development/libraries/gd/default.nix
+++ b/pkgs/development/libraries/gd/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://libgd.github.io/";
-    description = "A dynamic image creation library";
+    description = "Dynamic image creation library";
     license = licenses.free; # some custom license
     platforms = platforms.unix;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/libraries/gdal/default.nix b/pkgs/development/libraries/gdal/default.nix
index b059620536c66..f8bf3f7c075aa 100644
--- a/pkgs/development/libraries/gdal/default.nix
+++ b/pkgs/development/libraries/gdal/default.nix
@@ -79,21 +79,21 @@
 }:
 
 stdenv.mkDerivation (finalAttrs: {
-  pname = "gdal";
-  version = "3.8.5";
+  pname = "gdal" + lib.optionalString useMinimalFeatures "-minimal";
+  version = "3.9.0";
 
   src = fetchFromGitHub {
     owner = "OSGeo";
     repo = "gdal";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-Z+mYlyOX9vJ772qwZMQfCbD/V7RL6+9JLHTzoZ55ot0=";
+    hash = "sha256-xEekgF9GzsPYkwk7Nny9b1DMLTxBqTSdudYxaz4jl/c=";
   };
 
   patches = [
-    # bump java source option to fix build with JDK 21
+    # HDF5: add support for libhdf5 >= 1.14.4.2 when built with Float16
     (fetchpatch {
-      url = "https://github.com/OSGeo/gdal/commit/ca2eb4130750b0e6365f738a5f8ff77081f5c5bb.patch";
-      sha256 = "sha256-wShYm9yA7twJR72co+Tvf/IuYXqbI0OrjWl0uqC3bwo=";
+      url = "https://github.com/OSGeo/gdal/commit/16ade8253f26200246abb5ab24d17e18216e7a11.patch";
+      sha256 = "sha256-N6YqfcOUWeaJXVE9RUo1dzulxqIY5Q/UygPnZHau3Lc=";
     })
   ];
 
@@ -229,8 +229,8 @@ stdenv.mkDerivation (finalAttrs: {
     export GDAL_DOWNLOAD_TEST_DATA=OFF
     # allows to skip tests that fail because of file handle leak
     # the issue was not investigated
-    # https://github.com/OSGeo/gdal/blob/v3.7.0/autotest/gdrivers/bag.py#L61
-    export BUILD_NAME=fedora
+    # https://github.com/OSGeo/gdal/blob/v3.9.0/autotest/gdrivers/bag.py#L54
+    export CI=1
   '';
   nativeInstallCheckInputs = with python3.pkgs; [
     pytestCheckHook
diff --git a/pkgs/development/libraries/gdbm/default.nix b/pkgs/development/libraries/gdbm/default.nix
index e1a3def0ba420..d6ed7d32e7016 100644
--- a/pkgs/development/libraries/gdbm/default.nix
+++ b/pkgs/development/libraries/gdbm/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl }:
+{ stdenv, lib, fetchurl, updateAutotoolsGnuConfigScriptsHook }:
 
 stdenv.mkDerivation rec {
   pname = "gdbm";
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-dLEIHSH/8TrkvXwW5dblBKTCb3zeHcoNljpIQXS7ys0=";
   };
 
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
+
   doCheck = true; # not cross;
 
   # Linking static stubs on cygwin requires correct ordering.
diff --git a/pkgs/development/libraries/gdcm/default.nix b/pkgs/development/libraries/gdcm/default.nix
index 9d6db6fca684b..bdfa576f23dfe 100644
--- a/pkgs/development/libraries/gdcm/default.nix
+++ b/pkgs/development/libraries/gdcm/default.nix
@@ -6,6 +6,7 @@
 , vtk
 , ApplicationServices
 , Cocoa
+, DarwinTools # sw_vers
 , libiconv
 , enablePython ? false
 , python ? null
@@ -19,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gdcm";
-  version = "3.0.23";
+  version = "3.0.24";
 
   src = fetchFromGitHub {
     owner = "malaterre";
     repo = "GDCM";
     rev = "refs/tags/v${version}";
-    hash = "sha256-zwIPWcjTrfbdNBzAqwV6lU2l6sx+e4Yi7dprdem6AeE=";
+    hash = "sha256-Zlb6UCP4aFZOJJNhFQBBrwzst+f37gs1zaCBMTOUgZE=";
   };
 
   cmakeFlags = [
@@ -50,7 +51,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     cmake
     pkg-config
-  ];
+  ] ++ lib.optional stdenv.isDarwin DarwinTools;
 
   buildInputs = [
     expat
@@ -90,7 +91,7 @@ stdenv.mkDerivation rec {
   # a number of additional but much slower tests are enabled
 
   meta = with lib; {
-    description = "The grassroots cross-platform DICOM implementation";
+    description = "Grassroots cross-platform DICOM implementation";
     longDescription = ''
       Grassroots DICOM (GDCM) is an implementation of the DICOM standard designed to be open source so that researchers may access clinical data directly.
       GDCM includes a file format definition and a network communications protocol, both of which should be extended to provide a full set of tools for a researcher or small medical imaging vendor to interface with an existing medical database.
diff --git a/pkgs/development/libraries/gdk-pixbuf/default.nix b/pkgs/development/libraries/gdk-pixbuf/default.nix
index f9fd75f1a6af9..9260f8fc1e2c3 100644
--- a/pkgs/development/libraries/gdk-pixbuf/default.nix
+++ b/pkgs/development/libraries/gdk-pixbuf/default.nix
@@ -21,12 +21,11 @@
 , buildPackages
 , withIntrospection ? lib.meta.availableOn stdenv.hostPlatform gobject-introspection && stdenv.hostPlatform.emulatorAvailable buildPackages
 , gobject-introspection
-, fetchpatch
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gdk-pixbuf";
-  version = "2.42.11";
+  version = "2.42.12";
 
   outputs = [ "out" "dev" "man" ]
     ++ lib.optional withIntrospection "devdoc"
@@ -36,18 +35,12 @@ stdenv.mkDerivation (finalAttrs: {
     inherit (finalAttrs) pname version;
   in fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-Sdy0AjiHCGR+jDIdVrb7MPIeUeUV0MWpQiaNIwUqLwA=";
+    hash = "sha256-uVBbNEW5p+SM7TR2DDvLc+lm3zrJTJWhSMtmmrdI48c=";
   };
 
   patches = [
     # Move installed tests to a separate output
     ./installed-tests-path.patch
-    # Remove post 2.42.11
-    (fetchpatch {
-      name = "fix-meson.build-typo.patch";
-      url = "https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/commit/238893d8cd6f9c2616a05ab521a29651a17a38c2.patch";
-      hash = "sha256-6IhdNH6hhygSXD7EJo/hoBLFeb2lJlBIHNBPTkA3Do0=";
-    })
   ];
 
   # gdk-pixbuf-thumbnailer is not wrapped therefore strictDeps will work
@@ -160,7 +153,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A library for image loading and manipulation";
+    description = "Library for image loading and manipulation";
     homepage = "https://gitlab.gnome.org/GNOME/gdk-pixbuf";
     license = licenses.lgpl21Plus;
     maintainers = [ maintainers.eelco ] ++ teams.gnome.members;
diff --git a/pkgs/development/libraries/gegl/default.nix b/pkgs/development/libraries/gegl/default.nix
index 93035b373eb45..addc4a9dbe448 100644
--- a/pkgs/development/libraries/gegl/default.nix
+++ b/pkgs/development/libraries/gegl/default.nix
@@ -31,6 +31,7 @@
 , openexr
 , OpenCL
 , suitesparse
+, withLuaJIT ? lib.meta.availableOn stdenv.hostPlatform luajit
 }:
 
 stdenv.mkDerivation rec {
@@ -71,13 +72,14 @@ stdenv.mkDerivation rec {
     libraw
     libwebp
     gexiv2
-    luajit
     openexr
     suitesparse
   ] ++ lib.optionals stdenv.isDarwin [
     OpenCL
   ] ++ lib.optionals stdenv.cc.isClang [
     llvmPackages.openmp
+  ] ++ lib.optionals withLuaJIT [
+    luajit
   ];
 
   # for gegl-4.0.pc
@@ -97,6 +99,8 @@ stdenv.mkDerivation rec {
     # Disabled due to multiple vulnerabilities, see
     # https://github.com/NixOS/nixpkgs/pull/73586
     "-Djasper=disabled"
+  ] ++ lib.optionals (!withLuaJIT) [
+    "-Dlua=disabled"
   ];
 
   postPatch = ''
diff --git a/pkgs/development/libraries/geis/default.nix b/pkgs/development/libraries/geis/default.nix
index 9f1cc784e1407..17266481b27a3 100644
--- a/pkgs/development/libraries/geis/default.nix
+++ b/pkgs/development/libraries/geis/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A library for input gesture recognition";
+    description = "Library for input gesture recognition";
     homepage = "https://launchpad.net/geis";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/gensio/default.nix b/pkgs/development/libraries/gensio/default.nix
index ea3fd6e1ac784..8a895c36e8657 100644
--- a/pkgs/development/libraries/gensio/default.nix
+++ b/pkgs/development/libraries/gensio/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gensio";
-  version = "2.8.4";
+  version = "2.8.5";
 
   src = fetchFromGitHub {
     owner = "cminyard";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-UPAYqgZSJMp6/pRIVJYqh8i5olBSVoMUv2zCd14JBOg=";
+    sha256 = "sha256-J1fP3CtTLkUMZxzsbu3ZMbg4ag1NFvaI5AibFT7eZso=";
   };
 
   passthru = {
diff --git a/pkgs/development/libraries/geoclue/default.nix b/pkgs/development/libraries/geoclue/default.nix
index df58e5dc9e193..3c6a40eeb5cb4 100644
--- a/pkgs/development/libraries/geoclue/default.nix
+++ b/pkgs/development/libraries/geoclue/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitLab
-, fetchpatch
 , intltool
 , meson
 , mesonEmulatorHook
diff --git a/pkgs/development/libraries/geocode-glib/default.nix b/pkgs/development/libraries/geocode-glib/default.nix
index ee619aad89ead..c33b2cd6d3914 100644
--- a/pkgs/development/libraries/geocode-glib/default.nix
+++ b/pkgs/development/libraries/geocode-glib/default.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A convenience library for the geocoding and reverse geocoding using Nominatim service";
+    description = "Convenience library for the geocoding and reverse geocoding using Nominatim service";
     license = licenses.lgpl2Plus;
     maintainers = teams.gnome.members;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/geoip/default.nix b/pkgs/development/libraries/geoip/default.nix
index 4b12871e55678..cdb1a0a43e81b 100644
--- a/pkgs/development/libraries/geoip/default.nix
+++ b/pkgs/development/libraries/geoip/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
   passthru = { inherit dataDir; };
 
   meta = with lib; {
-    description = "An API for GeoIP/Geolocation databases";
+    description = "API for GeoIP/Geolocation databases";
     maintainers = with maintainers; [ thoughtpolice raskin ];
     license = licenses.lgpl21;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/geos/3.11.nix b/pkgs/development/libraries/geos/3.11.nix
index 90bdfdb0d6058..dd18855508d13 100644
--- a/pkgs/development/libraries/geos/3.11.nix
+++ b/pkgs/development/libraries/geos/3.11.nix
@@ -29,6 +29,11 @@ stdenv.mkDerivation (finalAttrs: {
 
   nativeBuildInputs = [ cmake ];
 
+  # https://github.com/libgeos/geos/issues/930
+  cmakeFlags = lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
+    "-DCMAKE_CTEST_ARGUMENTS=--exclude-regex;unit-geom-Envelope"
+  ];
+
   doCheck = true;
 
   passthru.tests = {
diff --git a/pkgs/development/libraries/getdns/default.nix b/pkgs/development/libraries/getdns/default.nix
index 96ebc4fb865de..7fb6411584608 100644
--- a/pkgs/development/libraries/getdns/default.nix
+++ b/pkgs/development/libraries/getdns/default.nix
@@ -36,7 +36,7 @@ in rec {
 
     meta = with lib;
       metaCommon // {
-        description = "A modern asynchronous DNS API";
+        description = "Modern asynchronous DNS API";
         longDescription = ''
           getdns is an implementation of a modern asynchronous DNS API; the
           specification was originally edited by Paul Hoffman. It is intended to make all
@@ -77,7 +77,7 @@ in rec {
 
     meta = with lib;
       metaCommon // {
-        description = "A local DNS Privacy stub resolver (using DNS-over-TLS)";
+        description = "Local DNS Privacy stub resolver (using DNS-over-TLS)";
         mainProgram = "stubby";
         longDescription = ''
           Stubby is an application that acts as a local DNS Privacy stub
diff --git a/pkgs/development/libraries/gettext/default.nix b/pkgs/development/libraries/gettext/default.nix
index 8f0b277a73c4c..7a0d7a3ee667b 100644
--- a/pkgs/development/libraries/gettext/default.nix
+++ b/pkgs/development/libraries/gettext/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, libiconv, xz, bash
+{ stdenv, lib, fetchurl, libiconv, bash, updateAutotoolsGnuConfigScriptsHook
 }:
 
 # Note: this package is used for bootstrapping fetchurl, and thus
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   LDFLAGS = lib.optionalString stdenv.isSunOS "-lm -lmd -lmp -luutil -lnvpair -lnsl -lidmap -lavl -lsec";
 
   configureFlags = [
-     "--disable-csharp" "--with-xz"
+     "--disable-csharp"
   ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
     # On cross building, gettext supposes that the wchar.h from libc
     # does not fulfill gettext needs, so it tries to work with its
@@ -51,8 +51,7 @@ stdenv.mkDerivation rec {
 
   strictDeps = true;
   nativeBuildInputs = [
-    xz
-    xz.bin
+    updateAutotoolsGnuConfigScriptsHook
   ];
   buildInputs = lib.optionals (!stdenv.hostPlatform.isMinGW) [
     bash
diff --git a/pkgs/development/libraries/gflags/default.nix b/pkgs/development/libraries/gflags/default.nix
index 3f07a67cbdaeb..19926fb1d6ffe 100644
--- a/pkgs/development/libraries/gflags/default.nix
+++ b/pkgs/development/libraries/gflags/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A C++ library that implements commandline flags processing";
+    description = "C++ library that implements commandline flags processing";
     mainProgram = "gflags_completions.sh";
     longDescription = ''
       The gflags package contains a C++ library that implements commandline flags processing.
diff --git a/pkgs/development/libraries/giflib/default.nix b/pkgs/development/libraries/giflib/default.nix
index 677db06e5083c..67677e8a85110 100644
--- a/pkgs/development/libraries/giflib/default.nix
+++ b/pkgs/development/libraries/giflib/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchurl
-, fetchpatch
 , fixDarwinDylibNames
 , pkgsStatic
 }:
@@ -54,7 +53,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "A library for reading and writing gif images";
+    description = "Library for reading and writing gif images";
     homepage = "https://giflib.sourceforge.net/";
     platforms = lib.platforms.unix ++ lib.platforms.windows;
     license = lib.licenses.mit;
diff --git a/pkgs/development/libraries/givaro/3.7.nix b/pkgs/development/libraries/givaro/3.7.nix
index 7ca154f18e069..7d7d414dfb274 100644
--- a/pkgs/development/libraries/givaro/3.7.nix
+++ b/pkgs/development/libraries/givaro/3.7.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook autoconf automake ];
   buildInputs = [libtool gmpxx];
   meta = {
-    description = "A C++ library for arithmetic and algebraic computations";
+    description = "C++ library for arithmetic and algebraic computations";
     license = lib.licenses.cecill-b;
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/libraries/givaro/3.nix b/pkgs/development/libraries/givaro/3.nix
index f52f23d15c12b..f03fef8aac163 100644
--- a/pkgs/development/libraries/givaro/3.nix
+++ b/pkgs/development/libraries/givaro/3.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook autoconf automake ];
   buildInputs = [libtool gmpxx];
   meta = {
-    description = "A C++ library for arithmetic and algebraic computations";
+    description = "C++ library for arithmetic and algebraic computations";
     license = lib.licenses.cecill-b;
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/libraries/givaro/default.nix b/pkgs/development/libraries/givaro/default.nix
index aca83ec4b8d68..44fe143968360 100644
--- a/pkgs/development/libraries/givaro/default.nix
+++ b/pkgs/development/libraries/givaro/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
   doCheck = false;
 
   meta = {
-    description = "A C++ library for arithmetic and algebraic computations";
+    description = "C++ library for arithmetic and algebraic computations";
     mainProgram = "givaro-config";
     license = lib.licenses.cecill-b;
     maintainers = [lib.maintainers.raskin];
diff --git a/pkgs/development/libraries/gl2ps/default.nix b/pkgs/development/libraries/gl2ps/default.nix
index 2a02b5d767e06..dfc9e36488f86 100644
--- a/pkgs/development/libraries/gl2ps/default.nix
+++ b/pkgs/development/libraries/gl2ps/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://geuz.org/gl2ps";
-    description = "An OpenGL to PostScript printing library";
+    description = "OpenGL to PostScript printing library";
     platforms = platforms.all;
     license = licenses.lgpl2;
     maintainers = with maintainers; [ raskin twhitehead ];
diff --git a/pkgs/development/libraries/glbinding/default.nix b/pkgs/development/libraries/glbinding/default.nix
index 6cbc5e99b1c3d..b19a890a25450 100644
--- a/pkgs/development/libraries/glbinding/default.nix
+++ b/pkgs/development/libraries/glbinding/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/cginternals/glbinding/";
-    description = "A C++ binding for the OpenGL API, generated using the gl.xml specification";
+    description = "C++ binding for the OpenGL API, generated using the gl.xml specification";
     license = licenses.mit;
     maintainers = [ maintainers.mt-caret ];
   };
diff --git a/pkgs/development/libraries/glew/1.10.nix b/pkgs/development/libraries/glew/1.10.nix
index 3f355deb33b92..7d8e0689c95ec 100644
--- a/pkgs/development/libraries/glew/1.10.nix
+++ b/pkgs/development/libraries/glew/1.10.nix
@@ -40,12 +40,14 @@ stdenv.mkDerivation (finalAttrs: {
 
   makeFlags = [
     "SYSTEM=${if stdenv.hostPlatform.isMinGW then "mingw" else stdenv.hostPlatform.parsed.kernel.name}"
+    "CC:=$(CC)"
+    "LD:=$(CC)"
   ];
 
   passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
 
   meta = with lib; {
-    description = "An OpenGL extension loading library for C(++)";
+    description = "OpenGL extension loading library for C(++)";
     homepage = "https://glew.sourceforge.net/";
     license = licenses.free; # different files under different licenses
       #["BSD" "GLX" "SGI-B" "GPL2"]
diff --git a/pkgs/development/libraries/glew/default.nix b/pkgs/development/libraries/glew/default.nix
index 5e1c986be28f9..4681e4f6abce0 100644
--- a/pkgs/development/libraries/glew/default.nix
+++ b/pkgs/development/libraries/glew/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
 
   meta = with lib; {
-    description = "An OpenGL extension loading library for C/C++";
+    description = "OpenGL extension loading library for C/C++";
     homepage = "https://glew.sourceforge.net/";
     license = with licenses; [ /* modified bsd */ free mit gpl2Only ]; # For full details, see https://github.com/nigels-com/glew#copyright-and-licensing
     pkgConfigModules = [ "glew" ];
diff --git a/pkgs/development/libraries/glfw/3.x.nix b/pkgs/development/libraries/glfw/3.x.nix
index 5e0b6adbb2267..67d5a0095148b 100644
--- a/pkgs/development/libraries/glfw/3.x.nix
+++ b/pkgs/development/libraries/glfw/3.x.nix
@@ -53,6 +53,11 @@ stdenv.mkDerivation rec {
       --replace "libxkbcommon.so.0" "${lib.getLib libxkbcommon}/lib/libxkbcommon.so.0"
   '';
 
+  # glfw may dlopen libwayland-client.so:
+  postFixup = lib.optionalString stdenv.isLinux ''
+    patchelf ''${!outputLib}/lib/libglfw.so --add-rpath ${lib.getLib wayland}/lib
+  '';
+
   meta = with lib; {
     description = "Multi-platform library for creating OpenGL contexts and managing input, including keyboard, mouse, joystick and time";
     homepage = "https://www.glfw.org/";
diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix
index feef4630afd8c..a60ba9fae6bfd 100644
--- a/pkgs/development/libraries/glib/default.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -2,6 +2,7 @@
 , lib
 , stdenv
 , fetchurl
+, fetchpatch
 , gettext
 , meson
 , ninja
@@ -73,6 +74,15 @@ stdenv.mkDerivation (finalAttrs: {
     ./quark_init_on_demand.patch
     ./gobject_init_on_demand.patch
   ] ++ [
+    # Fix double-free & segfault issues on menu and dbus connection action group export failures
+    # https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4073
+    # Remove when version > 2.80.2
+    (fetchpatch {
+      name = "GLib-Fix-memory-problems-on-gmenuexporter-and-gactiongroupexporter-error-paths.patch";
+      url = "https://gitlab.gnome.org/GNOME/glib/-/commit/b9490a499a004618c883f180b1081a166ff1a86b.patch";
+      hash = "sha256-c6uZ9NEhg26/2RdgjQ4s5ErCDm5HH6T/tfJXTwh/H6o=";
+    })
+
     # This patch lets GLib's GDesktopAppInfo API watch and notice changes
     # to the Nix user and system profiles.  That way, the list of available
     # applications shown by the desktop environment is immediately updated
@@ -269,14 +279,6 @@ stdenv.mkDerivation (finalAttrs: {
     ln -s $PWD/glib/libglib-${librarySuffix} $out/lib/libglib-${librarySuffix}
   '';
 
-  checkPhase = ''
-    runHook preCheck
-
-    meson test --print-errorlogs
-
-    runHook postCheck
-  '';
-
   postCheck = ''
     rm $out/lib/libgobject-${librarySuffix}
     rm $out/lib/libgio-${librarySuffix}
diff --git a/pkgs/development/libraries/glibc/common.nix b/pkgs/development/libraries/glibc/common.nix
index 1dde7c44bd47d..25a83b1dc6d21 100644
--- a/pkgs/development/libraries/glibc/common.nix
+++ b/pkgs/development/libraries/glibc/common.nix
@@ -278,7 +278,7 @@ stdenv.mkDerivation ({
 
   meta = with lib; {
     homepage = "https://www.gnu.org/software/libc/";
-    description = "The GNU C Library";
+    description = "GNU C Library";
 
     longDescription =
       '' Any Unix-like operating system needs a C library: the library which
diff --git a/pkgs/development/libraries/glibc/default.nix b/pkgs/development/libraries/glibc/default.nix
index e07c354aa4e09..96a08178637df 100644
--- a/pkgs/development/libraries/glibc/default.nix
+++ b/pkgs/development/libraries/glibc/default.nix
@@ -182,6 +182,6 @@ in
         inherit libgcc;
       };
 
-  meta = (previousAttrs.meta or {}) // { description = "The GNU C Library"; };
+  meta = (previousAttrs.meta or {}) // { description = "GNU C Library"; };
 })
 
diff --git a/pkgs/development/libraries/glibc/mtrace.nix b/pkgs/development/libraries/glibc/mtrace.nix
index 926c0d91cdf0b..c9d5369e13c2f 100644
--- a/pkgs/development/libraries/glibc/mtrace.nix
+++ b/pkgs/development/libraries/glibc/mtrace.nix
@@ -35,7 +35,7 @@ glibc.overrideAttrs (oldAttrs: {
   separateDebugInfo = false;
 
   meta = oldAttrs.meta // {
-    description = "Perl script used to interpret and provide human readable output of the trace log contained in the file mtracedata, whose contents were produced by mtrace(3).";
+    description = "Perl script used to interpret and provide human readable output of the trace log contained in the file mtracedata, whose contents were produced by mtrace(3)";
     mainProgram = "mtrace";
   };
 })
diff --git a/pkgs/development/libraries/globalarrays/default.nix b/pkgs/development/libraries/globalarrays/default.nix
index f7bc072f1757d..ee7876e548d40 100644
--- a/pkgs/development/libraries/globalarrays/default.nix
+++ b/pkgs/development/libraries/globalarrays/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchpatch, fetchFromGitHub, autoreconfHook
+{ lib, stdenv, fetchFromGitHub, autoreconfHook
 , blas, gfortran, openssh, mpi
 } :
 
diff --git a/pkgs/development/libraries/gloox/default.nix b/pkgs/development/libraries/gloox/default.nix
index 7bf1bfb4bd16b..4ecae5fe48e07 100644
--- a/pkgs/development/libraries/gloox/default.nix
+++ b/pkgs/development/libraries/gloox/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec{
     ++ lib.optional idnSupport libidn;
 
   meta = with lib; {
-    description = "A portable high-level Jabber/XMPP library for C++";
+    description = "Portable high-level Jabber/XMPP library for C++";
     mainProgram = "gloox-config";
     homepage = "http://camaya.net/gloox";
     license = licenses.gpl3;
diff --git a/pkgs/development/libraries/glpk/default.nix b/pkgs/development/libraries/glpk/default.nix
index a78170909caa9..9fa8765f054ec 100644
--- a/pkgs/development/libraries/glpk/default.nix
+++ b/pkgs/development/libraries/glpk/default.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "The GNU Linear Programming Kit";
+    description = "GNU Linear Programming Kit";
 
     longDescription =
       '' The GNU Linear Programming Kit is intended for solving large
diff --git a/pkgs/development/libraries/glui/default.nix b/pkgs/development/libraries/glui/default.nix
index 511ec60db2fbd..716c998b9c990 100644
--- a/pkgs/development/libraries/glui/default.nix
+++ b/pkgs/development/libraries/glui/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A user interface library using OpenGL";
+    description = "User interface library using OpenGL";
     license = licenses.zlib ;
     maintainers = [ maintainers.raskin ];
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/gmime/2.nix b/pkgs/development/libraries/gmime/2.nix
index d6369227739b8..6f48f6ed3af44 100644
--- a/pkgs/development/libraries/gmime/2.nix
+++ b/pkgs/development/libraries/gmime/2.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/jstedfast/gmime/";
-    description = "A C/C++ library for creating, editing and parsing MIME messages and structures";
+    description = "C/C++ library for creating, editing and parsing MIME messages and structures";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/gmime/3.nix b/pkgs/development/libraries/gmime/3.nix
index b7cca3b156b94..25d6c85aa328d 100644
--- a/pkgs/development/libraries/gmime/3.nix
+++ b/pkgs/development/libraries/gmime/3.nix
@@ -78,7 +78,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://github.com/jstedfast/gmime/";
-    description = "A C/C++ library for creating, editing and parsing MIME messages and structures";
+    description = "C/C++ library for creating, editing and parsing MIME messages and structures";
     license = lib.licenses.lgpl21Plus;
     maintainers = with lib.maintainers; [ ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/gnet/default.nix b/pkgs/development/libraries/gnet/default.nix
index 5992868c7343a..558d8c0b112a4 100644
--- a/pkgs/development/libraries/gnet/default.nix
+++ b/pkgs/development/libraries/gnet/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   preConfigure = "./autogen.sh";
 
   meta = with lib; {
-    description = "A network library, written in C, object-oriented, and built upon GLib";
+    description = "Network library, written in C, object-oriented, and built upon GLib";
     homepage = "https://developer.gnome.org/gnet/";
     license = licenses.lgpl2;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/gnome-online-accounts/default.nix b/pkgs/development/libraries/gnome-online-accounts/default.nix
index 740f7d94f1d99..43ce34ec2ed4f 100644
--- a/pkgs/development/libraries/gnome-online-accounts/default.nix
+++ b/pkgs/development/libraries/gnome-online-accounts/default.nix
@@ -31,13 +31,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-online-accounts";
-  version = "3.50.1";
+  version = "3.50.2";
 
   outputs = [ "out" "dev" ] ++ lib.optionals enableBackend [ "man" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-online-accounts/${lib.versions.majorMinor finalAttrs.version}/gnome-online-accounts-${finalAttrs.version}.tar.xz";
-    hash = "sha256-Qu5D/R4pQrn/YQYlLM3INGAoFVCL96OlLAvf/6Vur0A=";
+    hash = "sha256-3xatl10TnGv8TrsuyLuDJyl6eR7yvwuXfHgHavX6qY4=";
   };
 
   mesonFlags = [
diff --git a/pkgs/development/libraries/gnome-video-effects/default.nix b/pkgs/development/libraries/gnome-video-effects/default.nix
index fcf955fbc173c..a4cedd6c91873 100644
--- a/pkgs/development/libraries/gnome-video-effects/default.nix
+++ b/pkgs/development/libraries/gnome-video-effects/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A collection of GStreamer effects to be used in different GNOME Modules";
+    description = "Collection of GStreamer effects to be used in different GNOME Modules";
     homepage = "https://gitlab.gnome.org/GNOME/gnome-video-effects";
     platforms = platforms.unix;
     maintainers = teams.gnome.members;
diff --git a/pkgs/development/libraries/gnu-efi/default.nix b/pkgs/development/libraries/gnu-efi/default.nix
index 171eb5742713a..31b6f7c7d2286 100644
--- a/pkgs/development/libraries/gnu-efi/default.nix
+++ b/pkgs/development/libraries/gnu-efi/default.nix
@@ -1,13 +1,15 @@
-{ lib, stdenv, buildPackages, fetchurl, pciutils
-, gitUpdater }:
+{ lib, stdenv, buildPackages, fetchFromGitHub, pciutils
+, gitUpdater, fwupd-efi, ipxe, refind, syslinux }:
 
 stdenv.mkDerivation rec {
   pname = "gnu-efi";
-  version = "3.0.15";
+  version = "3.0.18";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/gnu-efi/${pname}-${version}.tar.bz2";
-    hash = "sha256-kxole5xcG6Zf9Rnxg3PEOKJoJfLbeGaxY+ltGxaPIOo=";
+  src = fetchFromGitHub {
+    owner = "ncroxon";
+    repo = "gnu-efi";
+    rev = version;
+    hash = "sha256-xtiKglLXm9m4li/8tqbOsyM6ThwGhyu/g4kw5sC4URY=";
   };
 
   buildInputs = [ pciutils ];
@@ -25,9 +27,14 @@ stdenv.mkDerivation rec {
       --replace "-Werror" ""
   '';
 
-  passthru.updateScript = gitUpdater {
-    # No nicer place to find latest release.
-    url = "https://git.code.sf.net/p/gnu-efi/code";
+  passthru = {
+    updateScript = gitUpdater {
+      # No nicer place to find latest release.
+      url = "https://git.code.sf.net/p/gnu-efi/code";
+    };
+    tests = {
+      inherit fwupd-efi ipxe refind syslinux;
+    };
   };
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/gnutls/default.nix b/pkgs/development/libraries/gnutls/default.nix
index b527c0d3c3331..48e027f5246bb 100644
--- a/pkgs/development/libraries/gnutls/default.nix
+++ b/pkgs/development/libraries/gnutls/default.nix
@@ -174,7 +174,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "The GNU Transport Layer Security Library";
+    description = "GNU Transport Layer Security Library";
 
     longDescription = ''
       GnuTLS is a project that aims to develop a library which
diff --git a/pkgs/development/libraries/gobject-introspection/default.nix b/pkgs/development/libraries/gobject-introspection/default.nix
index 23f1e2262d128..9aba5156bef28 100644
--- a/pkgs/development/libraries/gobject-introspection/default.nix
+++ b/pkgs/development/libraries/gobject-introspection/default.nix
@@ -157,7 +157,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A middleware layer between C libraries and language bindings";
+    description = "Middleware layer between C libraries and language bindings";
     homepage = "https://gi.readthedocs.io/";
     maintainers = teams.gnome.members ++ (with maintainers; [ lovek323 artturin ]);
     pkgConfigModules = [ "gobject-introspection-1.0" ];
diff --git a/pkgs/development/libraries/goffice/default.nix b/pkgs/development/libraries/goffice/default.nix
index 97779b477c309..a0be4727293bd 100644
--- a/pkgs/development/libraries/goffice/default.nix
+++ b/pkgs/development/libraries/goffice/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "A Glib/GTK set of document centric objects and utilities";
+    description = "Glib/GTK set of document centric objects and utilities";
 
     longDescription = ''
       There are common operations for document centric applications that are
diff --git a/pkgs/development/libraries/gom/default.nix b/pkgs/development/libraries/gom/default.nix
index 4d48e0c227407..96b1f3ae13ce9 100644
--- a/pkgs/development/libraries/gom/default.nix
+++ b/pkgs/development/libraries/gom/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A GObject to SQLite object mapper";
+    description = "GObject to SQLite object mapper";
     homepage = "https://gitlab.gnome.org/GNOME/gom";
     license = licenses.lgpl21Plus;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/graphene/default.nix b/pkgs/development/libraries/graphene/default.nix
index e5dfba0aa4f5b..3e81f031a851c 100644
--- a/pkgs/development/libraries/graphene/default.nix
+++ b/pkgs/development/libraries/graphene/default.nix
@@ -119,7 +119,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A thin layer of graphic data types";
+    description = "Thin layer of graphic data types";
     homepage = "https://github.com/ebassi/graphene";
     license = licenses.mit;
     maintainers = teams.gnome.members ++ (with maintainers; [ ]);
diff --git a/pkgs/development/libraries/grilo-plugins/default.nix b/pkgs/development/libraries/grilo-plugins/default.nix
index 4113ee2f5d7c3..5193cedf868bd 100644
--- a/pkgs/development/libraries/grilo-plugins/default.nix
+++ b/pkgs/development/libraries/grilo-plugins/default.nix
@@ -93,7 +93,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/grilo-plugins";
-    description = "A collection of plugins for the Grilo framework";
+    description = "Collection of plugins for the Grilo framework";
     maintainers = teams.gnome.members;
     license = licenses.lgpl21Plus;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/grpc/default.nix b/pkgs/development/libraries/grpc/default.nix
index bf9b58ec4a092..2110755a17197 100644
--- a/pkgs/development/libraries/grpc/default.nix
+++ b/pkgs/development/libraries/grpc/default.nix
@@ -104,7 +104,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)";
+    description = "C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)";
     license = licenses.asl20;
     maintainers = with maintainers; [ lnl7 ];
     homepage = "https://grpc.io/";
diff --git a/pkgs/development/libraries/gsl/default.nix b/pkgs/development/libraries/gsl/default.nix
index ffe168674e68f..7e3d11528a4f0 100644
--- a/pkgs/development/libraries/gsl/default.nix
+++ b/pkgs/development/libraries/gsl/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   doCheck = stdenv.hostPlatform.system != "i686-linux";
 
   meta = {
-    description = "The GNU Scientific Library, a large numerical library";
+    description = "GNU Scientific Library, a large numerical library";
     homepage = "https://www.gnu.org/software/gsl/";
     license = lib.licenses.gpl3Plus;
 
diff --git a/pkgs/development/libraries/gspell/default.nix b/pkgs/development/libraries/gspell/default.nix
index 13a9e4be04b5c..3e3ca2d591354 100644
--- a/pkgs/development/libraries/gspell/default.nix
+++ b/pkgs/development/libraries/gspell/default.nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A spell-checking library for GTK applications";
+    description = "Spell-checking library for GTK applications";
     mainProgram = "gspell-app1";
     homepage = "https://gitlab.gnome.org/GNOME/gspell";
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/libraries/gstreamer/bad/default.nix b/pkgs/development/libraries/gstreamer/bad/default.nix
index b94769af76f44..91639c441b481 100644
--- a/pkgs/development/libraries/gstreamer/bad/default.nix
+++ b/pkgs/development/libraries/gstreamer/bad/default.nix
@@ -112,13 +112,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-plugins-bad";
-  version = "1.24.2";
+  version = "1.24.3";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-RI4yeHvIK1hsbLL4HJqO9AT+pPd/JVZv4G5Zej9ZE2s=";
+    hash = "sha256-6Q8mx9ycdvSqWZt1jP1tjBDWoLnLJluiw8m984iFWPg=";
   };
 
   patches = [
@@ -140,7 +140,7 @@ stdenv.mkDerivation rec {
     gobject-introspection
   ] ++ lib.optionals enableDocumentation [
     hotdoc
-  ] ++ lib.optionals stdenv.isLinux [
+  ] ++ lib.optionals (gst-plugins-base.waylandEnabled && stdenv.isLinux) [
     wayland # for wayland-scanner
   ];
 
@@ -211,7 +211,7 @@ stdenv.mkDerivation rec {
     bluez
   ] ++ lib.optionals microdnsSupport [
     libmicrodns
-  ] ++ lib.optionals stdenv.isLinux [
+  ] ++ lib.optionals (gst-plugins-base.waylandEnabled && stdenv.isLinux) [
     libva # vaapi requires libva -> libdrm -> libpciaccess, which is Linux-only in nixpkgs
     wayland
     wayland-protocols
@@ -305,6 +305,7 @@ stdenv.mkDerivation rec {
   ++ lib.optionals (!stdenv.isLinux) [
     "-Ddoc=disabled" # needs gstcuda to be enabled which is Linux-only
     "-Dnvcodec=disabled" # Linux-only
+  ] ++ lib.optionals (!stdenv.isLinux || !gst-plugins-base.waylandEnabled) [
     "-Dva=disabled" # see comment on `libva` in `buildInputs`
   ] ++ lib.optionals (!stdenv.isLinux || !guiSupport) [
     "-Ddirectfb=disabled"
@@ -322,8 +323,8 @@ stdenv.mkDerivation rec {
     "-Duvch264=disabled" # requires gudev
     "-Dv4l2codecs=disabled" # requires gudev
     "-Dladspa=disabled" # requires lrdf
-  ] ++ lib.optionals (!stdenv.isLinux || !stdenv.isx86_64) [
-    "-Dqsv=disabled" # Linux (and Windows) x86 only
+  ] ++ lib.optionals (!stdenv.isLinux || !stdenv.isx86_64 || !gst-plugins-base.waylandEnabled) [
+    "-Dqsv=disabled" # Linux (and Windows) x86 only, makes va required
   ] ++ lib.optionals (!gst-plugins-base.glEnabled) [
     "-Dgl=disabled"
   ] ++ lib.optionals (!gst-plugins-base.waylandEnabled || !guiSupport) [
diff --git a/pkgs/development/libraries/gstreamer/base/default.nix b/pkgs/development/libraries/gstreamer/base/default.nix
index 72dbef5c6dee0..f48fe22f50001 100644
--- a/pkgs/development/libraries/gstreamer/base/default.nix
+++ b/pkgs/development/libraries/gstreamer/base/default.nix
@@ -46,7 +46,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gst-plugins-base";
-  version = "1.24.2";
+  version = "1.24.3";
 
   outputs = [ "out" "dev" ];
 
@@ -54,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
     inherit (finalAttrs) pname version;
   in fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-KC8cyAZcm2Lragog+56DKPjlKW3yRYtyNtqnKcQa52k=";
+    hash = "sha256-8QlDl+qnky8G5X67sHWqM6osduS3VjChawLI1K9Ggy4=";
   };
 
   strictDeps = true;
diff --git a/pkgs/development/libraries/gstreamer/core/default.nix b/pkgs/development/libraries/gstreamer/core/default.nix
index eb9231155b80a..3136b6f886755 100644
--- a/pkgs/development/libraries/gstreamer/core/default.nix
+++ b/pkgs/development/libraries/gstreamer/core/default.nix
@@ -25,7 +25,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gstreamer";
-  version = "1.24.2";
+  version = "1.24.3";
 
   outputs = [
     "bin"
@@ -37,7 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
     inherit (finalAttrs) pname version;
   in fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-nK/dI70YDxaBxWzTpoeahJfM8k2m9CKmtvNW+gdKhIE=";
+    hash = "sha256-EiXvSjKfrhytxexyfaskmtVn6AcoeUk1Yc65HtNKpBQ=";
   };
 
   depsBuildBuild = [
diff --git a/pkgs/development/libraries/gstreamer/devtools/default.nix b/pkgs/development/libraries/gstreamer/devtools/default.nix
index 5b1d4c8618cea..44a79bb2c998d 100644
--- a/pkgs/development/libraries/gstreamer/devtools/default.nix
+++ b/pkgs/development/libraries/gstreamer/devtools/default.nix
@@ -17,11 +17,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-devtools";
-  version = "1.24.2";
+  version = "1.24.3";
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-/dfDDBqhuweADdmKUeVSEQZWGYNeSIn1yS/oI7hs2PQ=";
+    hash = "sha256-uREUov2Vj0Ks9EEYbofivsk1OO81qfgkgREZc2D/sjc=";
   };
 
   outputs = [
diff --git a/pkgs/development/libraries/gstreamer/ges/default.nix b/pkgs/development/libraries/gstreamer/ges/default.nix
index 0838dec0fdb06..79ece373b57d0 100644
--- a/pkgs/development/libraries/gstreamer/ges/default.nix
+++ b/pkgs/development/libraries/gstreamer/ges/default.nix
@@ -18,7 +18,7 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-editing-services";
-  version = "1.24.2";
+  version = "1.24.3";
 
   outputs = [
     "out"
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-cgF3jqXZN0QMU9dDndEqpaxoQGiK8fBJmFInUHS5kHM=";
+    hash = "sha256-z3QyFWiLATkFzSyff+3aIeLTTIRDQJkMbqJdEKA3KT8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/gstreamer/good/default.nix b/pkgs/development/libraries/gstreamer/good/default.nix
index 1cf3fef79f08a..bd301e7b45c22 100644
--- a/pkgs/development/libraries/gstreamer/good/default.nix
+++ b/pkgs/development/libraries/gstreamer/good/default.nix
@@ -58,13 +58,13 @@ assert raspiCameraSupport -> (stdenv.isLinux && stdenv.isAarch32);
 
 stdenv.mkDerivation rec {
   pname = "gst-plugins-good";
-  version = "1.24.2";
+  version = "1.24.3";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-bjR8ctS4sohtiQ/+n2dnqe2wLyAViOjDpXLc0I2YUr0=";
+    hash = "sha256-FQ+RTmHcBWALaLiMoQPHzCJxMBWOOJ6p6hWfQFCi67A=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/gstreamer/libav/default.nix b/pkgs/development/libraries/gstreamer/libav/default.nix
index 35d0b461d9bc9..872627009e215 100644
--- a/pkgs/development/libraries/gstreamer/libav/default.nix
+++ b/pkgs/development/libraries/gstreamer/libav/default.nix
@@ -18,11 +18,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-libav";
-  version = "1.24.2";
+  version = "1.24.3";
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-lig4ZI4Uzop4Miqxb4TH2E2Gpte+u2V0rAXeqEp8fJs=";
+    hash = "sha256-2cWxUkaKRcH6g1FBBCIJCnGScHrXTS4aQ2f1JU4YjZE=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/gstreamer/rs/default.nix b/pkgs/development/libraries/gstreamer/rs/default.nix
index d1f1259635fa9..d4afb8ce7618a 100644
--- a/pkgs/development/libraries/gstreamer/rs/default.nix
+++ b/pkgs/development/libraries/gstreamer/rs/default.nix
@@ -29,6 +29,7 @@
 , nix-update-script
 # specifies a limited subset of plugins to build (the default `null` means all plugins supported on the stdenv platform)
 , plugins ? null
+, withGtkPlugins ? true
 # Checks meson.is_cross_build(), so even canExecute isn't enough.
 , enableDocumentation ? stdenv.hostPlatform == stdenv.buildPlatform && plugins == null
 , hotdoc
@@ -114,7 +115,7 @@ let
       "reqwest" # tests hang on darwin
       "threadshare" # tests cannot bind to localhost on darwin
       "webp" # not supported on darwin (upstream crate issue)
-    ] ++ lib.optionals (!gst-plugins-base.glEnabled) [
+    ] ++ lib.optionals (!gst-plugins-base.glEnabled || !withGtkPlugins) [
       # these require gstreamer-gl
       "gtk4"
       "livesync"
diff --git a/pkgs/development/libraries/gstreamer/rtsp-server/default.nix b/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
index cb848efca39f9..db56d895f7876 100644
--- a/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
+++ b/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-rtsp-server";
-  version = "1.24.2";
+  version = "1.24.3";
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-5MhKeGdefv7zsm6cueLkJzGEIbStnuS1E2767rtrugw=";
+    hash = "sha256-YmKOzKeLj1tRxZpNYCxl6SBf/FDDyDzWH6sfY0i2NWU=";
   };
 
   outputs = [
diff --git a/pkgs/development/libraries/gstreamer/ugly/default.nix b/pkgs/development/libraries/gstreamer/ugly/default.nix
index 40b6e169c225a..0b39bad01020b 100644
--- a/pkgs/development/libraries/gstreamer/ugly/default.nix
+++ b/pkgs/development/libraries/gstreamer/ugly/default.nix
@@ -25,13 +25,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-plugins-ugly";
-  version = "1.24.2";
+  version = "1.24.3";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-RdqYvxBAyUcv1Z9icSgt4lo3IauFt4qq+BBJSVUPvvU=";
+    hash = "sha256-TJUTQcTGSGMLb+EjTsET2B3S0khSm/K1R44K0HfIDtM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/gstreamer/vaapi/default.nix b/pkgs/development/libraries/gstreamer/vaapi/default.nix
index a5cd9cace4e74..cdad2eaf232d9 100644
--- a/pkgs/development/libraries/gstreamer/vaapi/default.nix
+++ b/pkgs/development/libraries/gstreamer/vaapi/default.nix
@@ -24,11 +24,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gstreamer-vaapi";
-  version = "1.24.2";
+  version = "1.24.3";
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-zFq4yIRD4PW/I9YRC0qsM99Z5K5ib1NtlosWBcx7li8=";
+    hash = "sha256-hF8u/g3KjasjTd6PsJHaLNBqnSpoNCK1bctoiVT5Bw4=";
   };
 
   outputs = [
diff --git a/pkgs/development/libraries/gtk-engine-murrine/default.nix b/pkgs/development/libraries/gtk-engine-murrine/default.nix
index 5cbd4302dbaa7..9c83bc4f47c88 100644
--- a/pkgs/development/libraries/gtk-engine-murrine/default.nix
+++ b/pkgs/development/libraries/gtk-engine-murrine/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ gtk2 ];
 
   meta = {
-    description = "A very flexible theme engine";
+    description = "Very flexible theme engine";
     homepage = "https://gitlab.gnome.org/Archive/murrine";
     license = lib.licenses.lgpl3;
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/libraries/gtk-layer-shell/default.nix b/pkgs/development/libraries/gtk-layer-shell/default.nix
index c137eb608132a..f2ce10e589181 100644
--- a/pkgs/development/libraries/gtk-layer-shell/default.nix
+++ b/pkgs/development/libraries/gtk-layer-shell/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A library to create panels and other desktop components for Wayland using the Layer Shell protocol";
+    description = "Library to create panels and other desktop components for Wayland using the Layer Shell protocol";
     mainProgram = "gtk-layer-demo";
     homepage = "https://github.com/wmww/gtk-layer-shell";
     license = licenses.lgpl3Plus;
diff --git a/pkgs/development/libraries/gtk-sharp/2.0.nix b/pkgs/development/libraries/gtk-sharp/2.0.nix
index 219028d4ab902..1331fcff0e656 100644
--- a/pkgs/development/libraries/gtk-sharp/2.0.nix
+++ b/pkgs/development/libraries/gtk-sharp/2.0.nix
@@ -54,6 +54,10 @@ stdenv.mkDerivation rec {
     ./bootstrap-${lib.versions.majorMinor version}
   '';
 
+  env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isClang [
+    "-Wno-error=int-conversion"
+  ]);
+
   dontStrip = true;
 
   inherit monoDLLFixer;
diff --git a/pkgs/development/libraries/gtk/2.x.nix b/pkgs/development/libraries/gtk/2.x.nix
index b2afb21b6214e..9d9b855c9da89 100644
--- a/pkgs/development/libraries/gtk/2.x.nix
+++ b/pkgs/development/libraries/gtk/2.x.nix
@@ -134,7 +134,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://www.gtk.org/";
-    description = "A multi-platform toolkit for creating graphical user interfaces";
+    description = "Multi-platform toolkit for creating graphical user interfaces";
     longDescription = ''
       GTK is a highly usable, feature rich toolkit for creating graphical user
       interfaces which boasts cross platform compatibility and an easy to use
diff --git a/pkgs/development/libraries/gtk/3.x.nix b/pkgs/development/libraries/gtk/3.x.nix
index b2b156051bf89..f194dee9c9ec8 100644
--- a/pkgs/development/libraries/gtk/3.x.nix
+++ b/pkgs/development/libraries/gtk/3.x.nix
@@ -64,7 +64,7 @@ in
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gtk+3";
-  version = "3.24.41";
+  version = "3.24.42";
 
   outputs = [ "out" "dev" ] ++ lib.optional withIntrospection "devdoc";
   outputBin = "dev";
@@ -78,7 +78,7 @@ stdenv.mkDerivation (finalAttrs: {
     inherit (finalAttrs) version;
   in fetchurl {
     url = "mirror://gnome/sources/gtk+/${lib.versions.majorMinor version}/gtk+-${version}.tar.xz";
-    sha256 = "sha256-R9phSHrzCHqUvEkpb9AlygvAL5bvBsVW58iYi9ZRtvo=";
+    sha256 = "sha256-UPifYVCS1N0Bu9dZcZ+L04Dl8Un2/XipRyXi3hEjd+I=";
   };
 
   patches = [
@@ -242,7 +242,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A multi-platform toolkit for creating graphical user interfaces";
+    description = "Multi-platform toolkit for creating graphical user interfaces";
     longDescription = ''
       GTK is a highly usable, feature rich toolkit for creating
       graphical user interfaces which boasts cross platform
diff --git a/pkgs/development/libraries/gtk/4.x.nix b/pkgs/development/libraries/gtk/4.x.nix
index 34a5582ffa676..b70e270ba6ffa 100644
--- a/pkgs/development/libraries/gtk/4.x.nix
+++ b/pkgs/development/libraries/gtk/4.x.nix
@@ -70,7 +70,7 @@ in
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gtk4";
-  version = "4.14.3";
+  version = "4.14.4";
 
   outputs = [ "out" "dev" ] ++ lib.optionals x11Support [ "devdoc" ];
   outputBin = "dev";
@@ -82,7 +82,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   src = fetchurl {
     url = with finalAttrs; "mirror://gnome/sources/gtk/${lib.versions.majorMinor version}/gtk-${version}.tar.xz";
-    hash = "sha256-K+XIWL3vEQTTeEjJd5wIk3LI0xUD9u/EuU5TtUb8mkM=";
+    hash = "sha256-RDUYuX6DSPn2QwrENbEBD5psUgf03Gp81dJOOCDO5jM=";
   };
 
   depsBuildBuild = [
@@ -261,7 +261,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A multi-platform toolkit for creating graphical user interfaces";
+    description = "Multi-platform toolkit for creating graphical user interfaces";
     longDescription = ''
       GTK is a highly usable, feature rich toolkit for creating
       graphical user interfaces which boasts cross platform
diff --git a/pkgs/development/libraries/gtk4-layer-shell/default.nix b/pkgs/development/libraries/gtk4-layer-shell/default.nix
index e41735fb71291..067bbad8dd247 100644
--- a/pkgs/development/libraries/gtk4-layer-shell/default.nix
+++ b/pkgs/development/libraries/gtk4-layer-shell/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A library to create panels and other desktop components for Wayland using the Layer Shell protocol and GTK4";
+    description = "Library to create panels and other desktop components for Wayland using the Layer Shell protocol and GTK4";
     mainProgram = "gtk4-layer-demo";
     license = licenses.mit;
     maintainers = with maintainers; [ donovanglover ];
diff --git a/pkgs/development/libraries/gtkextra/default.nix b/pkgs/development/libraries/gtkextra/default.nix
index ed860b7dde3fc..66516add6d9cf 100644
--- a/pkgs/development/libraries/gtkextra/default.nix
+++ b/pkgs/development/libraries/gtkextra/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gtkextra.sourceforge.net/";
-    description = "GtkExtra is a useful set of widgets for creating GUI's for GTK+.";
+    description = "GtkExtra is a useful set of widgets for creating GUI's for GTK+";
     license = licenses.lgpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ tesq0 ];
diff --git a/pkgs/development/libraries/gtksourceview/5.x.nix b/pkgs/development/libraries/gtksourceview/5.x.nix
index 4b5f52c22b771..d4ac1e9bb09f1 100644
--- a/pkgs/development/libraries/gtksourceview/5.x.nix
+++ b/pkgs/development/libraries/gtksourceview/5.x.nix
@@ -24,15 +24,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gtksourceview";
-  version = "5.12.0";
+  version = "5.12.1";
 
   outputs = [ "out" "dev" "devdoc" ];
 
-  src = let
-    inherit (finalAttrs) pname version;
-  in fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-2vMv9dMVDWOFkX01A6hbngR7oViysDB5MUycAIE/oB8=";
+  src = fetchurl {
+    url = "mirror://gnome/sources/gtksourceview/${lib.versions.majorMinor finalAttrs.version}/gtksourceview-${finalAttrs.version}.tar.xz";
+    hash = "sha256-hMgqrZhcWq2ufOp4BJBKdjQeyCsmjUZZTBpHjzm0LB8=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/gupnp-av/default.nix b/pkgs/development/libraries/gupnp-av/default.nix
index c43f69fd97b52..97c7ed790ac42 100644
--- a/pkgs/development/libraries/gupnp-av/default.nix
+++ b/pkgs/development/libraries/gupnp-av/default.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://gupnp.org/";
-    description = "A collection of helpers for building AV (audio/video) applications using GUPnP";
+    description = "Collection of helpers for building AV (audio/video) applications using GUPnP";
     license = licenses.lgpl2Plus;
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/libraries/gupnp/1.6.nix b/pkgs/development/libraries/gupnp/1.6.nix
index 44ae478e42f59..9d90624aae6d7 100644
--- a/pkgs/development/libraries/gupnp/1.6.nix
+++ b/pkgs/development/libraries/gupnp/1.6.nix
@@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.gupnp.org/";
-    description = "An implementation of the UPnP specification";
+    description = "Implementation of the UPnP specification";
     mainProgram = "gupnp-binding-tool-1.6";
     license = licenses.lgpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/gupnp/default.nix b/pkgs/development/libraries/gupnp/default.nix
index d9e9f483a63b3..08b2925b0ea3b 100644
--- a/pkgs/development/libraries/gupnp/default.nix
+++ b/pkgs/development/libraries/gupnp/default.nix
@@ -95,7 +95,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.gupnp.org/";
-    description = "An implementation of the UPnP specification";
+    description = "Implementation of the UPnP specification";
     mainProgram = "gupnp-binding-tool-1.2";
     license = licenses.lgpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/gvfs/default.nix b/pkgs/development/libraries/gvfs/default.nix
index aba944becf763..d60f95c548391 100644
--- a/pkgs/development/libraries/gvfs/default.nix
+++ b/pkgs/development/libraries/gvfs/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchurl
-, fetchpatch2
 , meson
 , ninja
 , pkg-config
@@ -46,13 +45,13 @@
 , gsettings-desktop-schemas
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gvfs";
-  version = "1.54.0";
+  version = "1.54.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gvfs/${lib.versions.majorMinor version}/gvfs-${version}.tar.xz";
-    hash = "sha256-9T2B34bC6GzdJRgsLYpmmiI3HoNiPe0bnVQW3Pxt42Y=";
+    url = "mirror://gnome/sources/gvfs/${lib.versions.majorMinor finalAttrs.version}/gvfs-${finalAttrs.version}.tar.xz";
+    hash = "sha256-rEo7zLf+FQIVjvD95cl5q0RxJVfQKKjk8wop8PvZ0Z8=";
   };
 
   patches = [
@@ -138,13 +137,13 @@ stdenv.mkDerivation rec {
   ];
 
   doCheck = false; # fails with "ModuleNotFoundError: No module named 'gi'"
-  doInstallCheck = doCheck;
+  doInstallCheck = finalAttrs.doCheck;
 
   separateDebugInfo = true;
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = "gvfs";
       versionPolicy = "odd-unstable";
     };
   };
@@ -155,4 +154,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     maintainers = teams.gnome.members;
   };
-}
+})
diff --git a/pkgs/development/libraries/harfbuzz/default.nix b/pkgs/development/libraries/harfbuzz/default.nix
index e558428c67e0b..657ea82f0b85b 100644
--- a/pkgs/development/libraries/harfbuzz/default.nix
+++ b/pkgs/development/libraries/harfbuzz/default.nix
@@ -109,7 +109,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "An OpenType text shaping engine";
+    description = "OpenType text shaping engine";
     homepage = "https://harfbuzz.github.io/";
     changelog = "https://github.com/harfbuzz/harfbuzz/raw/${finalAttrs.version}/NEWS";
     maintainers = [ maintainers.eelco ];
diff --git a/pkgs/development/libraries/herqq/default.nix b/pkgs/development/libraries/herqq/default.nix
index 3e84432cd5077..de446eb9527de 100644
--- a/pkgs/development/libraries/herqq/default.nix
+++ b/pkgs/development/libraries/herqq/default.nix
@@ -19,7 +19,7 @@ mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://herqq.org";
-    description = "A software library for building UPnP devices and control points";
+    description = "Software library for building UPnP devices and control points";
     platforms = platforms.linux;
     maintainers = [ ];
   };
diff --git a/pkgs/development/libraries/hiredis-vip/default.nix b/pkgs/development/libraries/hiredis-vip/default.nix
index a4c7575ac0411..32fd7d0db751f 100644
--- a/pkgs/development/libraries/hiredis-vip/default.nix
+++ b/pkgs/development/libraries/hiredis-vip/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = {
-    description = "A C client library for the Redis database";
+    description = "C client library for the Redis database";
     homepage = "https://github.com/vipshop/hiredis-vip";
     license = lib.licenses.bsd3;
   };
diff --git a/pkgs/development/libraries/hmat-oss/default.nix b/pkgs/development/libraries/hmat-oss/default.nix
index f24dc8777a73d..7aca6227e81bc 100644
--- a/pkgs/development/libraries/hmat-oss/default.nix
+++ b/pkgs/development/libraries/hmat-oss/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A hierarchical matrix C/C++ library";
+    description = "Hierarchical matrix C/C++ library";
     homepage = "https://github.com/jeromerobert/hmat-oss";
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/howard-hinnant-date/default.nix b/pkgs/development/libraries/howard-hinnant-date/default.nix
index f7af4975de561..953dd472210a7 100644
--- a/pkgs/development/libraries/howard-hinnant-date/default.nix
+++ b/pkgs/development/libraries/howard-hinnant-date/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     license = licenses.mit;
-    description = "A date and time library based on the C++11/14/17 <chrono> header";
+    description = "Date and time library based on the C++11/14/17 <chrono> header";
     homepage = "https://github.com/HowardHinnant/date";
     platforms = platforms.unix;
     maintainers = with maintainers; [ r-burns ];
diff --git a/pkgs/development/libraries/hpp-fcl/default.nix b/pkgs/development/libraries/hpp-fcl/default.nix
index 59bf04f726091..024461046f461 100644
--- a/pkgs/development/libraries/hpp-fcl/default.nix
+++ b/pkgs/development/libraries/hpp-fcl/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , doxygen
 , boost
@@ -64,7 +63,7 @@ stdenv.mkDerivation (finalAttrs: {
 
 
   meta = with lib; {
-    description = "An extension of the Flexible Collision Library";
+    description = "Extension of the Flexible Collision Library";
     homepage = "https://github.com/humanoid-path-planner/hpp-fcl";
     license = licenses.bsd3;
     maintainers = with maintainers; [ nim65s ];
diff --git a/pkgs/development/libraries/hpx/default.nix b/pkgs/development/libraries/hpx/default.nix
index bcaf1233d3006..cef877d286a62 100644
--- a/pkgs/development/libraries/hpx/default.nix
+++ b/pkgs/development/libraries/hpx/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hpx";
-  version = "1.9.1";
+  version = "1.10.0";
 
   src = fetchFromGitHub {
     owner = "STEllAR-GROUP";
     repo = "hpx";
     rev = "v${version}";
-    hash = "sha256-1gLDwgCqv+3+rOSG7a3fFsnjqfKpnPpWnBmrW+z+jWw=";
+    hash = "sha256-yrKG0n5BhrUNXjFWZRpb38/GYQlvMr0PSqUbhmZlgm0=";
   };
 
   propagatedBuildInputs = [ hwloc ];
diff --git a/pkgs/development/libraries/htmlcxx/default.nix b/pkgs/development/libraries/htmlcxx/default.nix
index f42674e902f04..4b01162bf25bc 100644
--- a/pkgs/development/libraries/htmlcxx/default.nix
+++ b/pkgs/development/libraries/htmlcxx/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://htmlcxx.sourceforge.net/";
-    description = "A simple non-validating css1 and html parser for C++";
+    description = "Simple non-validating css1 and html parser for C++";
     mainProgram = "htmlcxx";
     license = licenses.lgpl2;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/http-parser/default.nix b/pkgs/development/libraries/http-parser/default.nix
index 65ac1fe92c130..6ba2b8fc1ace7 100644
--- a/pkgs/development/libraries/http-parser/default.nix
+++ b/pkgs/development/libraries/http-parser/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An HTTP message parser written in C";
+    description = "HTTP message parser written in C";
     homepage = "https://github.com/nodejs/http-parser";
     maintainers = with maintainers; [ matthewbauer ];
     license = licenses.mit;
diff --git a/pkgs/development/libraries/httplib/default.nix b/pkgs/development/libraries/httplib/default.nix
index 4736326b4a302..95c15fdc610af 100644
--- a/pkgs/development/libraries/httplib/default.nix
+++ b/pkgs/development/libraries/httplib/default.nix
@@ -7,20 +7,20 @@
 
 stdenv.mkDerivation rec {
   pname = "httplib";
-  version = "0.15.3";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "yhirose";
     repo = "cpp-httplib";
     rev = "v${version}";
-    hash = "sha256-+YAjmsZvBkOk5bsjE07weTNUmevHd1ZXP0bv5QbkZMs=";
+    hash = "sha256-1w7uu2E4YIcGWNq//BZ2wtDKj9/tgmIhkJgadvCKmVg=";
   };
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ openssl ];
 
   meta = with lib; {
-    description = "A C++ header-only HTTP/HTTPS server and client library";
+    description = "C++ header-only HTTP/HTTPS server and client library";
     homepage = "https://github.com/yhirose/cpp-httplib";
     changelog = "https://github.com/yhirose/cpp-httplib/releases/tag/v${version}";
     maintainers = with maintainers; [ aidalgol ];
diff --git a/pkgs/development/libraries/hunspell/dictionaries.nix b/pkgs/development/libraries/hunspell/dictionaries.nix
index 78c9ad7fe7b59..6b6640ddfb712 100644
--- a/pkgs/development/libraries/hunspell/dictionaries.nix
+++ b/pkgs/development/libraries/hunspell/dictionaries.nix
@@ -967,4 +967,58 @@ rec {
       platforms = platforms.all;
     };
   };
+
+  /* ROMANIAN */
+  ro_RO = ro-ro;
+  ro-ro = mkDict rec {
+    pname = "hunspell-dict-ro-ro";
+    version = "3.3.10";
+    shortName = "ro-ro";
+    dictFileName = "ro_RO";
+    fileName = "${dictFileName}.${version}.zip";
+    shortDescription = "Romanian (Romania)";
+    readmeFile = "README";
+
+    src = fetchurl {
+      url = "https://downloads.sourceforge.net/rospell/${fileName}";
+      hash = "sha256-fxKNZOoGyeZxHDCxGMCv7vsBTY8zyS2szfRVq6LQRRk=";
+    };
+
+    nativeBuildInputs = [ unzip ];
+    unpackCmd = ''
+      unzip $src ${dictFileName}.aff ${dictFileName}.dic ${readmeFile} -d ${dictFileName}
+    '';
+
+    meta = {
+      description = "Hunspell dictionary for ${shortDescription} from rospell";
+      homepage = "https://sourceforge.net/projects/rospell/";
+      license = with lib.licenses; [ gpl2Only ];
+      maintainers = with lib.maintainers; [ Andy3153 ];
+    };
+  };
+
+  /* Turkish */
+  tr_TR = tr-tr;
+  tr-tr = mkDict rec {
+    pname = "hunspell-dict-tr-tr";
+    version = "1.1.1";
+
+    src = fetchFromGitHub {
+      owner = "tdd-ai";
+      repo = "hunspell-tr";
+      rev = "7302eca5f3652fe7ae3d3ec06c44697c97342b4e";
+      hash = "sha256-r/I5T/1e7gcp2XZ4UvnpFmWMTsNqLZSCbkqPcgC13PE=";
+    };
+
+    dictFileName = "tr_TR";
+    readmeFile = "README.md";
+
+    meta = with lib; {
+      description = "Hunspell dictionary for Turkish (Turkey) from tdd-ai";
+      homepage = "https://github.com/tdd-ai/hunspell-tr/";
+      license = licenses.mpl20;
+      maintainers = with maintainers; [ samemrecebi ];
+      platforms = platforms.all;
+    };
+  };
 }
diff --git a/pkgs/development/libraries/hyena/default.nix b/pkgs/development/libraries/hyena/default.nix
index 0a4e89b3b2de3..cb962212ffea6 100644
--- a/pkgs/development/libraries/hyena/default.nix
+++ b/pkgs/development/libraries/hyena/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/Archive/hyena";
-    description = "A C# library which contains a hodge-podge of random stuff";
+    description = "C# library which contains a hodge-podge of random stuff";
     longDescription = ''
       Hyena is a C# library used to make awesome applications. It contains a lot of random things,
       including useful data structures, a Sqlite-based db layer, cool widgets, a JSON library,
diff --git a/pkgs/development/libraries/hyphen/default.nix b/pkgs/development/libraries/hyphen/default.nix
index 122834570cfa3..2759ad9af7374 100644
--- a/pkgs/development/libraries/hyphen/default.nix
+++ b/pkgs/development/libraries/hyphen/default.nix
@@ -18,7 +18,7 @@ in stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A text hyphenation library";
+    description = "Text hyphenation library";
     mainProgram = "substrings.pl";
     homepage = "https://sourceforge.net/projects/hunspell/files/Hyphen/";
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/imgui/default.nix b/pkgs/development/libraries/imgui/default.nix
index 8ea1a79a1a660..09b88c1a191ce 100644
--- a/pkgs/development/libraries/imgui/default.nix
+++ b/pkgs/development/libraries/imgui/default.nix
@@ -1,8 +1,67 @@
-{ stdenv, lib, fetchFromGitHub }:
+{
+  stdenv,
+  lib,
+  applyPatches,
+  callPackage,
+  cmake,
+  fetchFromGitHub,
+  fetchpatch,
+  darwin,
+  glfw,
+  libGL,
+  SDL2,
+  vcpkg,
+  vulkan-headers,
+  vulkan-loader,
+
+  # The intent is to mirror vcpkg's flags[^1],
+  # but we only actually support Linux and glfw3 until someone contributes the rest
+  # [^1]: https://github.com/microsoft/vcpkg/blob/095ee06e7f60dceef7d713e3f8b1c2eb10d650d7/ports/imgui/CMakeLists.txt#L33-L108
+  IMGUI_BUILD_ALLEGRO5_BINDING ? false,
+  IMGUI_BUILD_ANDROID_BINDING ? stdenv.hostPlatform.isAndroid,
+  IMGUI_BUILD_DX9_BINDING ? false,
+  IMGUI_BUILD_DX10_BINDING ? false,
+  IMGUI_BUILD_DX11_BINDING ? false,
+  IMGUI_BUILD_DX12_BINDING ? false,
+  IMGUI_BUILD_GLFW_BINDING ? !stdenv.isDarwin,
+  IMGUI_BUILD_GLUT_BINDING ? false,
+  IMGUI_BUILD_METAL_BINDING ? stdenv.isDarwin,
+  IMGUI_BUILD_OPENGL2_BINDING ? false,
+  IMGUI_BUILD_OPENGL3_BINDING ?
+    IMGUI_BUILD_SDL2_BINDING || IMGUI_BUILD_GLFW_BINDING || IMGUI_BUILD_GLUT_BINDING,
+  IMGUI_BUILD_OSX_BINDING ? stdenv.isDarwin,
+  IMGUI_BUILD_SDL2_BINDING ?
+    !IMGUI_BUILD_GLFW_BINDING && !stdenv.isDarwin,
+  IMGUI_BUILD_SDL2_RENDERER_BINDING ? IMGUI_BUILD_SDL2_BINDING,
+  IMGUI_BUILD_VULKAN_BINDING ? false,
+  IMGUI_BUILD_WIN32_BINDING ? false,
+  IMGUI_FREETYPE ? false,
+  IMGUI_FREETYPE_LUNASVG ? false,
+  IMGUI_USE_WCHAR32 ? false,
+}@args:
+
+let
+  vcpkgSource = applyPatches {
+    inherit (vcpkg) src;
+    patches = [
+      # Install imgui into split outputs:
+      (fetchpatch {
+        url = "https://github.com/microsoft/vcpkg/commit/e91750f08383112e8850f209e55ed2f960181fa6.patch";
+        hash = "sha256-T+DN42PRl2gWGM8zJb9wZEsDl7+XNT6CFypNX3lBHNc=";
+      })
+    ];
+  };
+in
 
 stdenv.mkDerivation rec {
   pname = "imgui";
   version = "1.90.6";
+  outputs = [
+    # Note: no "dev" because vcpkg installs include/ and imgui-config.cmake
+    # into different prefixes but expects the merged layout at import time
+    "out"
+    "lib"
+  ];
 
   src = fetchFromGitHub {
     owner = "ocornut";
@@ -11,22 +70,77 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-FSob6FPfg0tF0n72twA5/moLvEaB251BPkIDJUXhYbg=";
   };
 
-  dontBuild = true;
+  cmakeRules = "${vcpkgSource}/ports/imgui";
+  postPatch = ''
+    cp "$cmakeRules"/{CMakeLists.txt,*.cmake.in} ./
+  '';
 
-  installPhase = ''
-    mkdir -p $out/include/imgui
+  nativeBuildInputs = [ cmake ];
 
-    cp *.h $out/include/imgui
-    cp *.cpp $out/include/imgui
-    cp -a backends $out/include/imgui/
-    cp -a misc $out/include/imgui/
-  '';
+  buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
+    darwin.apple_sdk.frameworks.ApplicationServices
+    darwin.apple_sdk.frameworks.Cocoa
+    darwin.apple_sdk.frameworks.GameController
+  ];
+
+  propagatedBuildInputs =
+    lib.optionals (IMGUI_BUILD_OPENGL2_BINDING || IMGUI_BUILD_OPENGL3_BINDING) [ libGL ]
+    ++ lib.optionals IMGUI_BUILD_GLFW_BINDING [ glfw ]
+    ++ lib.optionals IMGUI_BUILD_SDL2_BINDING [ SDL2 ]
+    ++ lib.optionals IMGUI_BUILD_VULKAN_BINDING [
+      vulkan-headers
+      vulkan-loader
+    ]
+    ++ lib.optionals IMGUI_BUILD_METAL_BINDING [ darwin.apple_sdk.frameworks.Metal ];
+
+  cmakeFlags = [
+    (lib.cmakeBool "IMGUI_BUILD_GLFW_BINDING" IMGUI_BUILD_GLFW_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_ALLEGRO5_BINDING" IMGUI_BUILD_ALLEGRO5_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_ANDROID_BINDING" IMGUI_BUILD_ANDROID_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_DX9_BINDING" IMGUI_BUILD_DX9_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_DX10_BINDING" IMGUI_BUILD_DX10_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_DX11_BINDING" IMGUI_BUILD_DX11_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_DX12_BINDING" IMGUI_BUILD_DX12_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_GLFW_BINDING" IMGUI_BUILD_GLFW_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_GLUT_BINDING" IMGUI_BUILD_GLUT_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_METAL_BINDING" IMGUI_BUILD_METAL_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_OPENGL2_BINDING" IMGUI_BUILD_OPENGL2_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_OPENGL3_BINDING" IMGUI_BUILD_OPENGL3_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_OSX_BINDING" IMGUI_BUILD_OSX_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_SDL2_BINDING" IMGUI_BUILD_SDL2_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_SDL2_RENDERER_BINDING" IMGUI_BUILD_SDL2_RENDERER_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_VULKAN_BINDING" IMGUI_BUILD_VULKAN_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_WIN32_BINDING" IMGUI_BUILD_WIN32_BINDING)
+    (lib.cmakeBool "IMGUI_FREETYPE" IMGUI_FREETYPE)
+    (lib.cmakeBool "IMGUI_FREETYPE_LUNASVG" IMGUI_FREETYPE_LUNASVG)
+    (lib.cmakeBool "IMGUI_USE_WCHAR32" IMGUI_USE_WCHAR32)
+  ];
+
+  passthru = {
+    tests = {
+      demo = callPackage ./demo { };
+    };
+  };
 
-  meta = with lib; {
+  meta = {
+    # These flags haven't been tested:
+    broken =
+      IMGUI_FREETYPE
+      || IMGUI_FREETYPE_LUNASVG
+      || IMGUI_BUILD_DX9_BINDING
+      || IMGUI_BUILD_DX10_BINDING
+      || IMGUI_BUILD_DX11_BINDING
+      || IMGUI_BUILD_DX12_BINDING
+      || IMGUI_BUILD_WIN32_BINDING
+      || IMGUI_BUILD_ALLEGRO5_BINDING
+      || IMGUI_BUILD_ANDROID_BINDING;
     description = "Bloat-free Graphical User interface for C++ with minimal dependencies";
     homepage = "https://github.com/ocornut/imgui";
-    license = licenses.mit;
-    maintainers = with maintainers; [ wolfangaukang ];
-    platforms = platforms.all;
+    license = lib.licenses.mit; # vcpkg licensed as MIT too
+    maintainers = with lib.maintainers; [
+      SomeoneSerge
+      wolfangaukang
+    ];
+    platforms = lib.platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/imgui/demo/CMakeLists.txt b/pkgs/development/libraries/imgui/demo/CMakeLists.txt
new file mode 100644
index 0000000000000..9345dd9897a9c
--- /dev/null
+++ b/pkgs/development/libraries/imgui/demo/CMakeLists.txt
@@ -0,0 +1,11 @@
+project(ImguiDemo LANGUAGES CXX)
+cmake_minimum_required(VERSION 3.20)
+
+add_executable(demo ./main.cpp)
+
+find_package(imgui REQUIRED)
+find_package(glfw3 REQUIRED)
+find_package(OpenGL REQUIRED)
+target_link_libraries(demo PRIVATE imgui glfw OpenGL::GL)
+
+install(TARGETS demo RUNTIME DESTINATION bin)
diff --git a/pkgs/development/libraries/imgui/demo/default.nix b/pkgs/development/libraries/imgui/demo/default.nix
new file mode 100644
index 0000000000000..a250155758aa3
--- /dev/null
+++ b/pkgs/development/libraries/imgui/demo/default.nix
@@ -0,0 +1,29 @@
+{
+  lib,
+  stdenv,
+  cmake,
+  imgui,
+}:
+
+stdenv.mkDerivation {
+  pname = "${imgui.pname}-demo";
+  inherit (imgui) version;
+
+  src = "${imgui.src}/examples/example_glfw_opengl3";
+  postPatch = ''
+    rm Makefile*
+    cp ${./CMakeLists.txt} CMakeLists.txt
+  '';
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ (imgui.override { IMGUI_BUILD_GLFW_BINDING = true; }) ];
+
+  meta = with lib; {
+    description = "Standalone ImPlot Demos";
+    homepage = "https://github.com/ocornut/imgui/tree/master/examples/example_glfw_opengl3";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SomeoneSerge ];
+    mainProgram = "demo";
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/impy/default.nix b/pkgs/development/libraries/impy/default.nix
index 8682e95a57586..5be23b0a96f4c 100644
--- a/pkgs/development/libraries/impy/default.nix
+++ b/pkgs/development/libraries/impy/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A simple library for loading/saving images and animations, written in C";
+    description = "Simple library for loading/saving images and animations, written in C";
     homepage = "https://github.com/bcampbell/impy";
     license = licenses.gpl3;
     maintainers = with maintainers; [ fgaz ];
diff --git a/pkgs/development/libraries/imtui/default.nix b/pkgs/development/libraries/imtui/default.nix
index 86b488c1a888d..a4f477543b89e 100644
--- a/pkgs/development/libraries/imtui/default.nix
+++ b/pkgs/development/libraries/imtui/default.nix
@@ -30,7 +30,8 @@ stdenv.mkDerivation rec {
     ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Cocoa;
 
   postPatch = ''
-    cp -r ${imgui}/include/imgui third-party/imgui
+    cp -r ${imgui.src}/* third-party/imgui/imgui
+    chmod -R u+w third-party/imgui
   '' + lib.optionalString (lib.versionAtLeast imgui.version "1.90.1") ''
     substituteInPlace src/imtui-impl-{emscripten,ncurses}.cpp \
       --replace "ImGuiKey_KeyPadEnter" "ImGuiKey_KeypadEnter"
@@ -45,10 +46,6 @@ stdenv.mkDerivation rec {
     "-DIMTUI_INSTALL_IMGUI_HEADERS:BOOL=OFF"
   ];
 
-  postInstall = ''
-    rm -rf $out/include/imgui
-  '';
-
   meta = with lib; {
     description = "Immediate mode text-based user interface library";
     longDescription = ''
diff --git a/pkgs/development/libraries/iniparser/default.nix b/pkgs/development/libraries/iniparser/default.nix
index 62deaeb1c2815..18057753efbd0 100644
--- a/pkgs/development/libraries/iniparser/default.nix
+++ b/pkgs/development/libraries/iniparser/default.nix
@@ -1,51 +1,79 @@
-{ lib, stdenv, fetchFromGitHub }:
+{ lib
+, stdenv
+, fetchFromGitLab
+, fetchpatch
+, fetchFromGitHub
+, substituteAll
+, symlinkJoin
+, cmake
+, doxygen
+, ruby
+, validatePkgConfig
+, testers
+}:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "iniparser";
-  version = "4.1";
+  version = "4.2.3";
 
-  src = fetchFromGitHub {
-    owner = "ndevilla";
+  src = fetchFromGitLab {
+    owner = "iniparser";
     repo = "iniparser";
-    rev = "v${version}";
-    sha256 = "0dhab6pad6wh816lr7r3jb6z273njlgw2vpw8kcfnmi7ijaqhnr5";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-rCp9whYPYmVd7saVFILmpdn041u6fYGqe1/Oqc7RaeA=";
   };
 
-  patches = ./no-usr.patch;
+  patches = [
+    (fetchpatch {
+      name = "fix-paths-pkgconfig-file.patch";
+      url = "https://gitlab.com/iniparser/iniparser/-/commit/6a76cd5e97b32014b22d87039bf6f4ee425c79a2.patch";
+      hash = "sha256-KlTxeOzwBZiLNmuwbbem5c/xspxsflyYfeUaQnGyarI=";
+    })
+  ] ++ lib.optionals finalAttrs.doCheck [
+    (substituteAll {
+      # Do not let cmake's fetchContent download unity
+      src = ./remove-fetchcontent-usage.patch;
+      unitySrc = symlinkJoin {
+        name = "unity-with-iniparser-config";
+        paths = [
+          (fetchFromGitHub {
+            owner = "throwtheswitch";
+            repo = "unity";
+            rev = "v2.6.0";
+            hash = "sha256-SCcUGNN/UJlu3ALJiZ9bQKxYRZey3cm9QG+NOehp6Ow=";
+          })
+        ];
+        postBuild = ''
+          ln -s ${finalAttrs.src}/test/unity_config.h $out/src/unity_config.h
+        '';
+      };
+    })
+  ];
 
-  postPatch = lib.optionalString stdenv.isDarwin ''
-    substituteInPlace Makefile \
-        --replace -Wl,-soname= -Wl,-install_name,
-  '';
-
-  doCheck = true;
-  preCheck = "patchShebangs test/make-tests.sh";
-
-  installPhase = ''
-    mkdir -p $out/lib
+  nativeBuildInputs = [ cmake doxygen validatePkgConfig ] ++ lib.optionals finalAttrs.doCheck [ ruby ];
 
-    mkdir -p $out/include
-    cp src/*.h $out/include
+  cmakeFlags = [
+    "-DBUILD_TESTING=${if finalAttrs.doCheck then "ON" else "OFF"}"
+  ];
 
-    mkdir -p $out/share/doc/${pname}-${version}
-    for i in AUTHORS INSTALL LICENSE README.md; do
-      bzip2 -c -9 $i > $out/share/doc/${pname}-${version}/$i.bz2;
-    done;
-    cp -r html $out/share/doc/${pname}-${version}
+  doCheck = false;
 
-    cp libiniparser.a $out/lib
-    cp libiniparser.so.1 $out/lib
-    ln -s libiniparser.so.1 $out/lib/libiniparser.so
-
-    mkdir -p $out/lib/pkgconfig
-    substituteAll ${./iniparser.pc.in} $out/lib/pkgconfig/iniparser.pc
+  postFixup = ''
+    ln -sv $out/include/iniparser/*.h $out/include/
   '';
 
+  passthru.tests = {
+    pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+    iniparser-with-tests = finalAttrs.overrideAttrs (_: { doCheck = true; });
+  };
+
   meta = with lib; {
-    inherit (src.meta) homepage;
+    homepage = "https://gitlab.com/iniparser/iniparser";
     description = "Free standalone ini file parsing library";
+    changelog = "https://gitlab.com/iniparser/iniparser/-/releases/v${finalAttrs.version}";
     license = licenses.mit;
     platforms = platforms.unix;
+    pkgConfigModules = [ "iniparser" ];
     maintainers = [ maintainers.primeos ];
   };
-}
+})
diff --git a/pkgs/development/libraries/iniparser/iniparser.pc.in b/pkgs/development/libraries/iniparser/iniparser.pc.in
deleted file mode 100644
index fb94188fff711..0000000000000
--- a/pkgs/development/libraries/iniparser/iniparser.pc.in
+++ /dev/null
@@ -1,12 +0,0 @@
-prefix=@out@
-exec_prefix=@out@
-libdir=${exec_prefix}/lib
-includedir=${prefix}/include
-datarootdir=${prefix}/share
-datadir=${datarootdir}
-
-Name: libiniparser
-Description: Iniparser library
-Version: @version@
-Libs: -L${libdir} -liniparser
-Cflags: -I${includedir}
diff --git a/pkgs/development/libraries/iniparser/no-usr.patch b/pkgs/development/libraries/iniparser/no-usr.patch
deleted file mode 100644
index a3c568cdde436..0000000000000
--- a/pkgs/development/libraries/iniparser/no-usr.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/Makefile	2017-10-20 20:30:41.494608284 +0200
-+++ b/Makefile	2017-10-20 20:33:22.279212026 +0200
-@@ -20,8 +20,8 @@
- ARFLAGS = rcv
- 
- SHLD = ${CC} ${CFLAGS}
--LDSHFLAGS = -shared -Wl,-Bsymbolic
--LDFLAGS += -Wl,-rpath -Wl,/usr/lib -Wl,-rpath,/usr/lib
-+LDSHFLAGS = -shared
-+LDFLAGS =
- 
- # .so.0 is for version 3.x, .so.1 is 4.x
- SO_TARGET ?= libiniparser.so.1
diff --git a/pkgs/development/libraries/iniparser/remove-fetchcontent-usage.patch b/pkgs/development/libraries/iniparser/remove-fetchcontent-usage.patch
new file mode 100644
index 0000000000000..db96c37e6b2ca
--- /dev/null
+++ b/pkgs/development/libraries/iniparser/remove-fetchcontent-usage.patch
@@ -0,0 +1,17 @@
+diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
+index b28d151..33a6bcf 100644
+--- a/test/CMakeLists.txt
++++ b/test/CMakeLists.txt
+@@ -28,10 +28,8 @@ set(FETCHCONTENT_QUIET OFF)
+ 
+ FetchContent_Declare(
+   unity
+-  GIT_REPOSITORY "https://github.com/throwtheswitch/unity.git"
+-  GIT_PROGRESS TRUE
+-  PATCH_COMMAND ${CMAKE_COMMAND} -E copy
+-                ${CMAKE_CURRENT_LIST_DIR}/unity_config.h ./src/)
++  SOURCE_DIR @unitySrc@
++)
+ 
+ FetchContent_MakeAvailable(unity)
+ target_compile_definitions(unity PUBLIC UNITY_INCLUDE_CONFIG_H)
diff --git a/pkgs/development/libraries/intel-gmmlib/default.nix b/pkgs/development/libraries/intel-gmmlib/default.nix
index 5c647aaadfe62..2cfce8ed20405 100644
--- a/pkgs/development/libraries/intel-gmmlib/default.nix
+++ b/pkgs/development/libraries/intel-gmmlib/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-gmmlib";
-  version = "22.3.19";
+  version = "22.3.20";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "gmmlib";
     rev = "intel-gmmlib-${version}";
-    sha256 = "sha256-y35rcAo1CR8HvKD4hCtdMSSPSSnGaUf4l2Tdzbq5fFw=";
+    sha256 = "sha256-AqHzWm0ZWCJK0gMXxxBSHemKx3U1fOXCUGo/ORny2hI=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/intel-media-sdk/default.nix b/pkgs/development/libraries/intel-media-sdk/default.nix
index 506281a7e6e93..37c0e7253ad1f 100644
--- a/pkgs/development/libraries/intel-media-sdk/default.nix
+++ b/pkgs/development/libraries/intel-media-sdk/default.nix
@@ -13,6 +13,9 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
+    # Search oneVPL-intel-gpu in NixOS specific /run/opengl-driver/lib directory
+    # See https://github.com/NixOS/nixpkgs/pull/315425
+    ./nixos-search-onevplrt-in-run-opengl-driver-lib.patch
     # https://github.com/Intel-Media-SDK/MediaSDK/pull/3005
     (fetchpatch {
       name = "include-cstdint-explicitly.patch";
@@ -39,7 +42,7 @@ stdenv.mkDerivation rec {
     description = "Intel Media SDK";
     mainProgram = "mfx-tracer-config";
     license = licenses.mit;
-    maintainers = with maintainers; [ midchildan ];
+    maintainers = with maintainers; [ midchildan pjungkamp ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/development/libraries/intel-media-sdk/nixos-search-onevplrt-in-run-opengl-driver-lib.patch b/pkgs/development/libraries/intel-media-sdk/nixos-search-onevplrt-in-run-opengl-driver-lib.patch
new file mode 100644
index 0000000000000..5057de1e1e489
--- /dev/null
+++ b/pkgs/development/libraries/intel-media-sdk/nixos-search-onevplrt-in-run-opengl-driver-lib.patch
@@ -0,0 +1,45 @@
+From aceb689ae69857def8a26a8d1ceb114ccfbb2569 Mon Sep 17 00:00:00 2001
+From: Philipp Jungkamp <p.jungkamp@gmx.net>
+Date: Tue, 28 May 2024 19:22:29 +0200
+Subject: [PATCH] NixOS: Search ONEVPLRT in /run/opengl-driver/lib
+
+---
+ api/mfx_dispatch/linux/mfxloader.cpp                            | 2 ++
+ .../suites/mfx_dispatch/linux/mfx_dispatch_test_cases_libs.cpp  | 1 +
+ 2 files changed, 3 insertions(+)
+
+diff --git a/api/mfx_dispatch/linux/mfxloader.cpp b/api/mfx_dispatch/linux/mfxloader.cpp
+index 39b6bff1..f76ed65d 100644
+--- a/api/mfx_dispatch/linux/mfxloader.cpp
++++ b/api/mfx_dispatch/linux/mfxloader.cpp
+@@ -193,6 +193,7 @@ mfxStatus LoaderCtx::Init(mfxInitParam& par)
+   if (selected_runtime && strcmp(selected_runtime, "ONEVPL") == 0) {
+     libs.emplace_back(ONEVPLRT);
+     libs.emplace_back(MFX_MODULES_DIR "/" ONEVPLRT);
++    libs.emplace_back("/run/opengl-driver/lib/" ONEVPLRT);
+   } else if ((selected_runtime && strcmp(selected_runtime, "MSDK") == 0) || (platform != MFX_HW_UNKNOWN)) {
+     if (MFX_IMPL_BASETYPE(par.Implementation) == MFX_IMPL_AUTO ||
+         MFX_IMPL_BASETYPE(par.Implementation) == MFX_IMPL_AUTO_ANY) {
+@@ -213,6 +214,7 @@ mfxStatus LoaderCtx::Init(mfxInitParam& par)
+   } else {
+     libs.emplace_back(ONEVPLRT);
+     libs.emplace_back(MFX_MODULES_DIR "/" ONEVPLRT);
++    libs.emplace_back("/run/opengl-driver/lib/" ONEVPLRT);
+   }
+ 
+   mfxStatus mfx_res = MFX_ERR_UNSUPPORTED;
+diff --git a/tests/unit/suites/mfx_dispatch/linux/mfx_dispatch_test_cases_libs.cpp b/tests/unit/suites/mfx_dispatch/linux/mfx_dispatch_test_cases_libs.cpp
+index dedee0b3..9657da4b 100644
+--- a/tests/unit/suites/mfx_dispatch/linux/mfx_dispatch_test_cases_libs.cpp
++++ b/tests/unit/suites/mfx_dispatch/linux/mfx_dispatch_test_cases_libs.cpp
+@@ -123,6 +123,7 @@ TEST_P(DispatcherLibsTestParametrized, ShouldEnumerateCorrectLibNames)
+     {
+         libs.emplace_back(ONEVPLRT);
+         libs.emplace_back(modules_dir + "/" + ONEVPLRT);
++        libs.emplace_back("/run/opengl-driver/lib/" + ONEVPLRT);
+     }
+ 
+     for (const std::string& lib : libs)
+-- 
+2.44.0
+
diff --git a/pkgs/development/libraries/isa-l/default.nix b/pkgs/development/libraries/isa-l/default.nix
index 88fcbc04d586c..9a112fb1c4d93 100644
--- a/pkgs/development/libraries/isa-l/default.nix
+++ b/pkgs/development/libraries/isa-l/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A collection of optimised low-level functions targeting storage applications";
+    description = "Collection of optimised low-level functions targeting storage applications";
     mainProgram = "igzip";
     license = licenses.bsd3;
     homepage = "https://github.com/intel/isa-l";
diff --git a/pkgs/development/libraries/isl/generic.nix b/pkgs/development/libraries/isl/generic.nix
index 31bd990645b59..8974839dca26a 100644
--- a/pkgs/development/libraries/isl/generic.nix
+++ b/pkgs/development/libraries/isl/generic.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation {
   meta = {
     homepage = "https://libisl.sourceforge.io/";
     license = lib.licenses.lgpl21;
-    description = "A library for manipulating sets and relations of integer points bounded by linear constraints";
+    description = "Library for manipulating sets and relations of integer points bounded by linear constraints";
     platforms = lib.platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/itk/5.x.nix b/pkgs/development/libraries/itk/5.x.nix
index 765b464e46a1c..c3086d86ac11f 100644
--- a/pkgs/development/libraries/itk/5.x.nix
+++ b/pkgs/development/libraries/itk/5.x.nix
@@ -1,5 +1,5 @@
 import ./generic.nix rec {
-  version = "5.3.0";
-  rev = "v${version}";
-  sourceSha256 = "sha256-+qCd8Jzpl5fEPTUpLyjjFBkfgCn3+Lf4pi8QnjCwofs=";
+  version = "5.4.0";
+  rev = "refs/tags/v${version}";
+  sourceSha256 = "sha256-1RSWgH0iQ2NQNsieW2m37udXWQlqYslJNM3TXC9xeP4=";
 }
diff --git a/pkgs/development/libraries/itk/generic.nix b/pkgs/development/libraries/itk/generic.nix
index be59969aaecbe..54f725683a2e3 100644
--- a/pkgs/development/libraries/itk/generic.nix
+++ b/pkgs/development/libraries/itk/generic.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation {
     sha256 = sourceSha256;
   };
 
-  patches = [
+  patches = lib.optionals (lib.versionOlder version "5.4") [
     (fetchpatch {
       name = "fix-gcc13-build";
       url = "https://github.com/InsightSoftwareConsortium/ITK/commit/9a719a0d2f5f489eeb9351b0ef913c3693147a4f.patch";
diff --git a/pkgs/development/libraries/jabcode/default.nix b/pkgs/development/libraries/jabcode/default.nix
index dba1fba20df60..1fc0e6fd0886c 100644
--- a/pkgs/development/libraries/jabcode/default.nix
+++ b/pkgs/development/libraries/jabcode/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = with lib; {
-    description = "A high-capacity 2D color bar code (${subproject})";
+    description = "High-capacity 2D color bar code (${subproject})";
     longDescription = "JAB Code (Just Another Bar Code) is a high-capacity 2D color bar code, which can encode more data than traditional black/white (QR) codes. This is the ${subproject} part.";
     homepage = "https://jabcode.org/";
     license = licenses.lgpl21;
diff --git a/pkgs/development/libraries/java/commons/compress/default.nix b/pkgs/development/libraries/java/commons/compress/default.nix
index 4a226a22c4dee..f5c5922e800ad 100644
--- a/pkgs/development/libraries/java/commons/compress/default.nix
+++ b/pkgs/development/libraries/java/commons/compress/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  version = "1.26.1";
+  version = "1.26.2";
   pname = "commons-compress";
 
   src = fetchurl {
     url    = "mirror://apache/commons/compress/binaries/${pname}-${version}-bin.tar.gz";
-    sha256 = "sha256-PVZ4hltIprOeT3UEH3+xJ+TcZLekHV7cuw16rMmx/Rk=";
+    sha256 = "sha256-EyGbVhcsuEhLfKh0TPFjySFd9/Z8BEBhkslpfdu4er8=";
   };
 
   installPhase = ''
diff --git a/pkgs/development/libraries/java/commons/daemon/default.nix b/pkgs/development/libraries/java/commons/daemon/default.nix
index be61630d17f4f..68b1c924214db 100644
--- a/pkgs/development/libraries/java/commons/daemon/default.nix
+++ b/pkgs/development/libraries/java/commons/daemon/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage    = "https://commons.apache.org/proper/commons-daemon";
-    description = "Apache Commons Daemon software is a set of utilities and Java support classes for running Java applications as server processes.";
+    description = "Apache Commons Daemon software is a set of utilities and Java support classes for running Java applications as server processes";
     maintainers = with lib.maintainers; [ rsynnest ];
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
     license     = lib.licenses.asl20;
diff --git a/pkgs/development/libraries/java/commons/fileupload/default.nix b/pkgs/development/libraries/java/commons/fileupload/default.nix
index 40c66909213e1..6c9235117355a 100644
--- a/pkgs/development/libraries/java/commons/fileupload/default.nix
+++ b/pkgs/development/libraries/java/commons/fileupload/default.nix
@@ -1,12 +1,12 @@
 {lib, stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  version = "1.4";
+  version = "1.5";
   pname = "commons-fileupload";
 
   src = fetchurl {
     url    = "mirror://apache/commons/fileupload/binaries/${pname}-${version}-bin.tar.gz";
-    sha256 = "1avfv4gljp7flra767yzas54vfb6az9s1nhxfjv48jj2x0llxxkx";
+    sha256 = "sha256-r7EGiih4qOCbjaL7Wg+plbe0m3CuFWXs/RmbfGLmj1g=";
   };
   installPhase = ''
     tar xf ${src}
diff --git a/pkgs/development/libraries/java/commons/io/default.nix b/pkgs/development/libraries/java/commons/io/default.nix
index 2547090523486..160388f97b518 100644
--- a/pkgs/development/libraries/java/commons/io/default.nix
+++ b/pkgs/development/libraries/java/commons/io/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage    = "https://commons.apache.org/proper/commons-io";
-    description = "A library of utilities to assist with developing IO functionality";
+    description = "Library of utilities to assist with developing IO functionality";
     maintainers = with lib.maintainers; [ copumpkin ];
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
     license     = lib.licenses.asl20;
diff --git a/pkgs/development/libraries/java/commons/math/default.nix b/pkgs/development/libraries/java/commons/math/default.nix
index 4f928db4cf3b5..ddb3b17c1dae2 100644
--- a/pkgs/development/libraries/java/commons/math/default.nix
+++ b/pkgs/development/libraries/java/commons/math/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage    = "https://commons.apache.org/proper/commons-math/";
-    description = "A library of lightweight, self-contained mathematics and statistics components";
+    description = "Library of lightweight, self-contained mathematics and statistics components";
     maintainers = with lib.maintainers; [ copumpkin ];
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
     license     = lib.licenses.asl20;
diff --git a/pkgs/development/libraries/java/hsqldb/default.nix b/pkgs/development/libraries/java/hsqldb/default.nix
index a2484ce830775..c4f9bf9773020 100644
--- a/pkgs/development/libraries/java/hsqldb/default.nix
+++ b/pkgs/development/libraries/java/hsqldb/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://hsqldb.org";
-    description = "A relational, embedable database management system written in Java and a set of related tools";
+    description = "Relational, embedable database management system written in Java and a set of related tools";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     platforms = platforms.unix;
     license = licenses.bsd3;
diff --git a/pkgs/development/libraries/java/lombok/default.nix b/pkgs/development/libraries/java/lombok/default.nix
index f08c860f57f6e..de197b7966ef0 100644
--- a/pkgs/development/libraries/java/lombok/default.nix
+++ b/pkgs/development/libraries/java/lombok/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A library that can write a lot of boilerplate for your Java project";
+    description = "Library that can write a lot of boilerplate for your Java project";
     mainProgram = "lombok";
     platforms = lib.platforms.all;
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
diff --git a/pkgs/development/libraries/java/rhino/default.nix b/pkgs/development/libraries/java/rhino/default.nix
index e67425208657a..6fb5f8a14c676 100644
--- a/pkgs/development/libraries/java/rhino/default.nix
+++ b/pkgs/development/libraries/java/rhino/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = with lib; {
-    description = "An implementation of JavaScript written in Java";
+    description = "Implementation of JavaScript written in Java";
 
     longDescription =
       '' Rhino is an open-source implementation of JavaScript written
diff --git a/pkgs/development/libraries/java/smack/default.nix b/pkgs/development/libraries/java/smack/default.nix
index fd263d91d426e..3adfd4c710e2e 100644
--- a/pkgs/development/libraries/java/smack/default.nix
+++ b/pkgs/development/libraries/java/smack/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A XMPP (Jabber) client library for instant messaging and presence";
+    description = "XMPP (Jabber) client library for instant messaging and presence";
     homepage = "http://www.igniterealtime.org/projects/smack/";
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/jbigkit/default.nix b/pkgs/development/libraries/jbigkit/default.nix
index 40a46041caa2c..8678cde4370ae 100644
--- a/pkgs/development/libraries/jbigkit/default.nix
+++ b/pkgs/development/libraries/jbigkit/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.cl.cam.ac.uk/~mgk25/jbigkit/";
-    description = "A software implementation of the JBIG1 data compression standard";
+    description = "Software implementation of the JBIG1 data compression standard";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
   };
diff --git a/pkgs/development/libraries/jemalloc/default.nix b/pkgs/development/libraries/jemalloc/default.nix
index 902c0d77739c2..7541e6b0c1a31 100644
--- a/pkgs/development/libraries/jemalloc/default.nix
+++ b/pkgs/development/libraries/jemalloc/default.nix
@@ -26,6 +26,12 @@ stdenv.mkDerivation rec {
       url = "https://github.com/jemalloc/jemalloc/commit/d00ecee6a8dfa90afcb1bbc0858985c17bef6559.patch";
       hash = "sha256-N5i4IxGJ4SSAgFiq5oGRnrNeegdk2flw9Sh2mP0yl4c=";
     })
+    # fix linking with libc++, can be removed in the next update (after 5.3.0).
+    # https://github.com/jemalloc/jemalloc/pull/2348
+    (fetchpatch {
+      url = "https://github.com/jemalloc/jemalloc/commit/4422f88d17404944a312825a1aec96cd9dc6c165.patch";
+      hash = "sha256-dunkE7XHzltn5bOb/rSHqzpRniAFuGubBStJeCxh0xo=";
+    })
   ];
 
   configureFlags =
diff --git a/pkgs/development/libraries/jitterentropy/default.nix b/pkgs/development/libraries/jitterentropy/default.nix
index edf46fa4f51b7..fb6dbcea64782 100644
--- a/pkgs/development/libraries/jitterentropy/default.nix
+++ b/pkgs/development/libraries/jitterentropy/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "jitterentropy";
-  version = "3.4.1";
+  version = "3.5.0";
 
   src = fetchFromGitHub {
     owner = "smuellerDD";
     repo = "jitterentropy-library";
     rev = "v${version}";
-    hash = "sha256-GSGlupTN1o8BbTN287beqYSRFDaXOk6SlIRvtjpvmhQ=";
+    hash = "sha256-USc9e/GyajJe58/Z201AO3Y+t3IPOOdJAaifEwvgm2Q=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/jose/default.nix b/pkgs/development/libraries/jose/default.nix
index 967886ae86c6d..39e10e2dbebd4 100644
--- a/pkgs/development/libraries/jose/default.nix
+++ b/pkgs/development/libraries/jose/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "jose";
-  version = "13";
+  version = "14";
 
   src = fetchFromGitHub {
     owner = "latchset";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-XkYvBjPmwhwo2p8/jTXazHRAgSGkI7LTLUlqbxMxlys=";
+    hash = "sha256-rMNPJaCtVpbwIkMQzBNpmRct6S/NelTwjmsuB0RP6R8=";
   };
 
   nativeBuildInputs = [ meson pkg-config ninja asciidoc ];
diff --git a/pkgs/development/libraries/json-c/default.nix b/pkgs/development/libraries/json-c/default.nix
index ab3d2be6f0102..943712e2b8dba 100644
--- a/pkgs/development/libraries/json-c/default.nix
+++ b/pkgs/development/libraries/json-c/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation (finalAttrs: {
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
-    description = "A JSON implementation in C";
+    description = "JSON implementation in C";
     longDescription = ''
       JSON-C implements a reference counting object model that allows you to
       easily construct JSON objects in C, output them as JSON formatted strings
diff --git a/pkgs/development/libraries/json-fortran/default.nix b/pkgs/development/libraries/json-fortran/default.nix
index 410a767f99919..52ec487c06369 100644
--- a/pkgs/development/libraries/json-fortran/default.nix
+++ b/pkgs/development/libraries/json-fortran/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "json-fortran";
-  version = "8.4.0";
+  version = "9.0.1";
 
   src = fetchFromGitHub {
     owner = "jacobwilliams";
     repo = pname;
     rev = version;
-    hash = "sha256-qy3CK8Op3YVNpXjq60UYq9V9qWBEXpX/li/lYxXW9Fk=";
+    hash = "sha256-nhT2zLyt3ORi35h9KzOiIuD50GGUCZ/Z5SX8UF3rqQs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/json-glib/default.nix b/pkgs/development/libraries/json-glib/default.nix
index 1f36ccdc051d4..9a04f8b1f4ef8 100644
--- a/pkgs/development/libraries/json-glib/default.nix
+++ b/pkgs/development/libraries/json-glib/default.nix
@@ -97,7 +97,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A library providing (de)serialization support for the JavaScript Object Notation (JSON) format";
+    description = "Library providing (de)serialization support for the JavaScript Object Notation (JSON) format";
     homepage = "https://gitlab.gnome.org/GNOME/json-glib";
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/development/libraries/jsoncpp/default.nix b/pkgs/development/libraries/jsoncpp/default.nix
index 59572afc627ce..ea530a955f75d 100644
--- a/pkgs/development/libraries/jsoncpp/default.nix
+++ b/pkgs/development/libraries/jsoncpp/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/open-source-parsers/jsoncpp";
-    description = "A C++ library for interacting with JSON";
+    description = "C++ library for interacting with JSON";
     maintainers = with maintainers; [ ttuegel cpages ];
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/jsonrpc-glib/default.nix b/pkgs/development/libraries/jsonrpc-glib/default.nix
index 855c3cfcf2cd2..e17498031da6e 100644
--- a/pkgs/development/libraries/jsonrpc-glib/default.nix
+++ b/pkgs/development/libraries/jsonrpc-glib/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A library to communicate using the JSON-RPC 2.0 specification";
+    description = "Library to communicate using the JSON-RPC 2.0 specification";
     homepage = "https://gitlab.gnome.org/GNOME/jsonrpc-glib";
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/development/libraries/kcp/default.nix b/pkgs/development/libraries/kcp/default.nix
index 29bab0087989a..2468ba22d3051 100644
--- a/pkgs/development/libraries/kcp/default.nix
+++ b/pkgs/development/libraries/kcp/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
-    description = "A Fast and Reliable ARQ Protocol";
+    description = "Fast and Reliable ARQ Protocol";
     homepage = "https://github.com/skywind3000/kcp";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/libraries/kdb/default.nix b/pkgs/development/libraries/kdb/default.nix
index d3688442f898d..3364d4926873f 100644
--- a/pkgs/development/libraries/kdb/default.nix
+++ b/pkgs/development/libraries/kdb/default.nix
@@ -41,7 +41,7 @@ mkDerivation rec {
   propagatedBuildInputs = [ qtbase ];
 
   meta = with lib; {
-    description = "A database connectivity and creation framework for various database vendors";
+    description = "Database connectivity and creation framework for various database vendors";
     mainProgram = "kdb3_sqlite3_dump";
     license = licenses.lgpl2;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/kddockwidgets/default.nix b/pkgs/development/libraries/kddockwidgets/default.nix
index a1020fe986797..a5cf5cb6fef2d 100644
--- a/pkgs/development/libraries/kddockwidgets/default.nix
+++ b/pkgs/development/libraries/kddockwidgets/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "KDDockWidgets";
-  version = "2.0.0";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "KDAB";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-V4BMD1kYyaMlqNBo8otpV5yBt/PICzhBTkEMX9N3lbk=";
+    sha256 = "sha256-gKtW4UjeMUVzBIbV3GuSMtgzIy+N/VlaCc7PPZEHmmg=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/kde-frameworks/baloo.nix b/pkgs/development/libraries/kde-frameworks/baloo.nix
index 2a264d47c24c9..c7a813058454c 100644
--- a/pkgs/development/libraries/kde-frameworks/baloo.nix
+++ b/pkgs/development/libraries/kde-frameworks/baloo.nix
@@ -1,6 +1,5 @@
 { mkDerivation
 , lib
-, fetchpatch
 , extra-cmake-modules
 , kauth
 , kconfig
diff --git a/pkgs/development/libraries/kde-frameworks/knewstuff/default.nix b/pkgs/development/libraries/kde-frameworks/knewstuff/default.nix
index 6e554b5faaadf..0e1633b2f1c12 100644
--- a/pkgs/development/libraries/kde-frameworks/knewstuff/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/knewstuff/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, fetchpatch,
+  mkDerivation,
   extra-cmake-modules,
   attica, karchive, kcompletion, kconfig, kcoreaddons, ki18n, kiconthemes,
   kio, kitemviews, kpackage, kservice, ktextwidgets, kwidgetsaddons, kxmlgui, qtbase,
diff --git a/pkgs/development/libraries/kde-frameworks/krunner.nix b/pkgs/development/libraries/kde-frameworks/krunner.nix
index a56e56a2fe092..1ed8619a2fa27 100644
--- a/pkgs/development/libraries/kde-frameworks/krunner.nix
+++ b/pkgs/development/libraries/kde-frameworks/krunner.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, fetchpatch,
+  mkDerivation,
   extra-cmake-modules,
   kconfig, kcoreaddons, ki18n, kio, kservice, plasma-framework, qtbase,
   qtdeclarative, solid, threadweaver, kwindowsystem
diff --git a/pkgs/development/libraries/kde-frameworks/purpose.nix b/pkgs/development/libraries/kde-frameworks/purpose.nix
index ee4e9584641c1..cdc8d4d32d23f 100644
--- a/pkgs/development/libraries/kde-frameworks/purpose.nix
+++ b/pkgs/development/libraries/kde-frameworks/purpose.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, extra-cmake-modules, intltool, qtbase
 , accounts-qt, qtdeclarative, kaccounts-integration, kconfig, kcoreaddons, ki18n, kio, kirigami2
-, fetchpatch, signond
+, signond
 }:
 
 mkDerivation {
diff --git a/pkgs/development/libraries/kdsoap/default.nix b/pkgs/development/libraries/kdsoap/default.nix
index 5dc6b5f962e1f..2cb371588b870 100644
--- a/pkgs/development/libraries/kdsoap/default.nix
+++ b/pkgs/development/libraries/kdsoap/default.nix
@@ -33,7 +33,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Qt-based client-side and server-side SOAP component";
+    description = "Qt-based client-side and server-side SOAP component";
     longDescription = ''
       KD Soap is a Qt-based client-side and server-side SOAP component.
 
diff --git a/pkgs/development/libraries/kerberos/heimdal.nix b/pkgs/development/libraries/kerberos/heimdal.nix
index ff211b6b9c34a..73bb856de4163 100644
--- a/pkgs/development/libraries/kerberos/heimdal.nix
+++ b/pkgs/development/libraries/kerberos/heimdal.nix
@@ -89,6 +89,8 @@ stdenv.mkDerivation {
   ];
 
   configureFlags = [
+    "--with-hdbdir=/var/lib/heimdal"
+
     "--with-libedit-include=${libedit.dev}/include"
     "--with-libedit-lib=${libedit}/lib"
     "--with-berkeley-db-include=${db.dev}/include"
@@ -170,7 +172,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://www.heimdal.software";
     changelog = "https://github.com/heimdal/heimdal/releases";
-    description = "An implementation of Kerberos 5 (and some more stuff)";
+    description = "Implementation of Kerberos 5 (and some more stuff)";
     license = licenses.bsd3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ h7x4 ];
diff --git a/pkgs/development/libraries/kerberos/krb5.nix b/pkgs/development/libraries/kerberos/krb5.nix
index 9f3fbdbf7eb04..8dd68af4fd1d5 100644
--- a/pkgs/development/libraries/kerberos/krb5.nix
+++ b/pkgs/development/libraries/kerberos/krb5.nix
@@ -74,6 +74,11 @@ stdenv.mkDerivation rec {
   postPatch = ''
     substituteInPlace config/shlib.conf \
         --replace "'ld " "'${stdenv.cc.targetPrefix}ld "
+  ''
+  # this could be accomplished by updateAutotoolsGnuConfigScriptsHook, but that causes infinite recursion
+  # necessary for FreeBSD code path in configure
+  + ''
+    substituteInPlace ./config/config.guess --replace-fail /usr/bin/uname uname
   '';
 
   libFolders = [ "util" "include" "lib" "build-tools" ];
diff --git a/pkgs/development/libraries/kissfft/default.nix b/pkgs/development/libraries/kissfft/default.nix
index 503cad45fd9e5..df2b9d5561f52 100644
--- a/pkgs/development/libraries/kissfft/default.nix
+++ b/pkgs/development/libraries/kissfft/default.nix
@@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A mixed-radix Fast Fourier Transform based up on the KISS principle";
+    description = "Mixed-radix Fast Fourier Transform based up on the KISS principle";
     homepage = "https://github.com/mborgerding/kissfft";
     license = licenses.bsd3;
     maintainers = [ maintainers.goibhniu ];
diff --git a/pkgs/development/libraries/kproperty/default.nix b/pkgs/development/libraries/kproperty/default.nix
index 991fd4d27a74b..6187d201f2598 100644
--- a/pkgs/development/libraries/kproperty/default.nix
+++ b/pkgs/development/libraries/kproperty/default.nix
@@ -21,7 +21,7 @@ mkDerivation rec {
   propagatedBuildInputs = [ qtbase ];
 
   meta = with lib; {
-    description = "A property editing framework with editor widget similar to what is known from Qt Designer";
+    description = "Property editing framework with editor widget similar to what is known from Qt Designer";
     license = licenses.lgpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ zraexy ];
diff --git a/pkgs/development/libraries/kreport/default.nix b/pkgs/development/libraries/kreport/default.nix
index 1c8470204f803..19f2b89a56e04 100644
--- a/pkgs/development/libraries/kreport/default.nix
+++ b/pkgs/development/libraries/kreport/default.nix
@@ -18,7 +18,7 @@ mkDerivation rec {
   buildInputs = [ qtdeclarative qtwebkit kconfig kcoreaddons kwidgetsaddons kguiaddons kproperty marble python3 ];
 
   meta = with lib; {
-    description = "A framework for creation and generation of reports in multiple formats";
+    description = "Framework for creation and generation of reports in multiple formats";
     license = licenses.lgpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ zraexy ];
diff --git a/pkgs/development/libraries/kyotocabinet/default.nix b/pkgs/development/libraries/kyotocabinet/default.nix
index 37c918785fb9b..5c5ab34bc24cb 100644
--- a/pkgs/development/libraries/kyotocabinet/default.nix
+++ b/pkgs/development/libraries/kyotocabinet/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://dbmx.net/kyotocabinet";
-    description = "A library of routines for managing a database";
+    description = "Library of routines for managing a database";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
   };
diff --git a/pkgs/development/libraries/lame/default.nix b/pkgs/development/libraries/lame/default.nix
index 576d166f0ca74..6032e7051b990 100644
--- a/pkgs/development/libraries/lame/default.nix
+++ b/pkgs/development/libraries/lame/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A high quality MPEG Audio Layer III (MP3) encoder";
+    description = "High quality MPEG Audio Layer III (MP3) encoder";
     homepage    = "http://lame.sourceforge.net";
     license     = licenses.lgpl2;
     maintainers = with maintainers; [ codyopel ];
diff --git a/pkgs/development/libraries/languagemachines/frog.nix b/pkgs/development/libraries/languagemachines/frog.nix
index 50167f28a9db2..fffc7d8da23a4 100644
--- a/pkgs/development/libraries/languagemachines/frog.nix
+++ b/pkgs/development/libraries/languagemachines/frog.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A Tagger-Lemmatizer-Morphological-Analyzer-Dependency-Parser for Dutch";
+    description = "Tagger-Lemmatizer-Morphological-Analyzer-Dependency-Parser for Dutch";
     homepage    = "https://languagemachines.github.io/frog";
     license     = licenses.gpl3;
     platforms   = platforms.all;
diff --git a/pkgs/development/libraries/languagemachines/libfolia.nix b/pkgs/development/libraries/languagemachines/libfolia.nix
index ec7129396540f..76bdcb7b9ba54 100644
--- a/pkgs/development/libraries/languagemachines/libfolia.nix
+++ b/pkgs/development/libraries/languagemachines/libfolia.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   CXXFLAGS = [ "-DU_USING_ICU_NAMESPACE=1" ];
 
   meta = with lib; {
-    description = "A C++ API for FoLiA documents; an XML-based linguistic annotation format.";
+    description = "C++ API for FoLiA documents; an XML-based linguistic annotation format";
     mainProgram = "folialint";
     homepage    = "https://proycon.github.io/folia/";
     license     = licenses.gpl3;
diff --git a/pkgs/development/libraries/languagemachines/ticcutils.nix b/pkgs/development/libraries/languagemachines/ticcutils.nix
index 0b5fef292fcff..8fd3749ba1c3e 100644
--- a/pkgs/development/libraries/languagemachines/ticcutils.nix
+++ b/pkgs/development/libraries/languagemachines/ticcutils.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   preConfigure = "sh bootstrap.sh";
 
   meta = with lib; {
-    description = "This module contains useful functions for general use in the TiCC software stack and beyond.";
+    description = "This module contains useful functions for general use in the TiCC software stack and beyond";
     homepage    = "https://github.com/LanguageMachines/ticcutils";
     license     = licenses.gpl3;
     platforms   = platforms.all;
diff --git a/pkgs/development/libraries/languagemachines/ucto.nix b/pkgs/development/libraries/languagemachines/ucto.nix
index 6a3e31bcd5536..3bf40e6007e69 100644
--- a/pkgs/development/libraries/languagemachines/ucto.nix
+++ b/pkgs/development/libraries/languagemachines/ucto.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A rule-based tokenizer for natural language";
+    description = "Rule-based tokenizer for natural language";
     mainProgram = "ucto";
     homepage    = "https://languagemachines.github.io/ucto/";
     license     = licenses.gpl3;
diff --git a/pkgs/development/libraries/languagemachines/uctodata.nix b/pkgs/development/libraries/languagemachines/uctodata.nix
index a274b6193eddc..b1f15df58a173 100644
--- a/pkgs/development/libraries/languagemachines/uctodata.nix
+++ b/pkgs/development/libraries/languagemachines/uctodata.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
   preConfigure = "sh bootstrap.sh";
 
   meta = with lib; {
-    description = "A rule-based tokenizer for natural language";
+    description = "Rule-based tokenizer for natural language";
     homepage    = "https://languagemachines.github.io/ucto/";
     license     = licenses.gpl3;
     platforms   = platforms.all;
diff --git a/pkgs/development/libraries/lcrq/default.nix b/pkgs/development/libraries/lcrq/default.nix
index 865ec4697326f..3d1818cf779db 100644
--- a/pkgs/development/libraries/lcrq/default.nix
+++ b/pkgs/development/libraries/lcrq/default.nix
@@ -4,7 +4,7 @@
   lib
 }:
 stdenv.mkDerivation (finalAttrs: {
-  name = "lcrq";
+  pname = "lcrq";
   version = "0.1.2";
 
   src = fetchFromGitea {
@@ -19,7 +19,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     changelog = "https://codeberg.org/librecast/lcrq/src/tag/v${finalAttrs.version}/CHANGELOG.md";
-    description = "Librecast RaptorQ library.";
+    description = "Librecast RaptorQ library";
     homepage = "https://librecast.net/lcrq.html";
     license = [ lib.licenses.gpl2 lib.licenses.gpl3 ];
     maintainers = with lib.maintainers; [ albertchae aynish DMills27 jasonodoom jleightcap ];
diff --git a/pkgs/development/libraries/ldb/default.nix b/pkgs/development/libraries/ldb/default.nix
index cdcf21edd799c..6c5fa48affc1a 100644
--- a/pkgs/development/libraries/ldb/default.nix
+++ b/pkgs/development/libraries/ldb/default.nix
@@ -12,6 +12,7 @@
 , docbook_xml_dtd_42
 , cmocka
 , wafHook
+, buildPackages
 , libxcrypt
 , testers
 }:
@@ -62,6 +63,9 @@ stdenv.mkDerivation (finalAttrs: {
     "--bundled-libraries=NONE"
     "--builtin-libraries=replace"
     "--without-ldb-lmdb"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "--cross-compile"
+    "--cross-execute=${stdenv.hostPlatform.emulator buildPackages}"
   ];
 
   # python-config from build Python gives incorrect values when cross-compiling.
@@ -77,7 +81,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A LDAP-like embedded database";
+    description = "LDAP-like embedded database";
     homepage = "https://ldb.samba.org/";
     license = licenses.lgpl3Plus;
     pkgConfigModules = [ "ldb" ];
diff --git a/pkgs/development/libraries/leatherman/default.nix b/pkgs/development/libraries/leatherman/default.nix
index 80038b79442af..d3bd349cc8e01 100644
--- a/pkgs/development/libraries/leatherman/default.nix
+++ b/pkgs/development/libraries/leatherman/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/puppetlabs/leatherman/";
-    description = "A collection of C++ and CMake utility libraries";
+    description = "Collection of C++ and CMake utility libraries";
     license = licenses.asl20;
     maintainers = [ maintainers.womfoo ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/lensfun/default.nix b/pkgs/development/libraries/lensfun/default.nix
index efd65c1695d49..7abf7fcacf6ed 100644
--- a/pkgs/development/libraries/lensfun/default.nix
+++ b/pkgs/development/libraries/lensfun/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation {
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ flokli ];
     license = lib.licenses.lgpl3;
-    description = "An opensource database of photographic lenses and their characteristics";
+    description = "Opensource database of photographic lenses and their characteristics";
     homepage = "https://lensfun.github.io";
   };
 }
diff --git a/pkgs/development/libraries/lesstif/default.nix b/pkgs/development/libraries/lesstif/default.nix
index e0bd674e4daad..33c2f220e40df 100644
--- a/pkgs/development/libraries/lesstif/default.nix
+++ b/pkgs/development/libraries/lesstif/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
     ];
 
   meta = with lib; {
-    description = "An open source clone of the Motif widget set";
+    description = "Open source clone of the Motif widget set";
     homepage = "https://lesstif.sourceforge.net";
     platforms = platforms.unix;
     license = with licenses; [ gpl2 lgpl2 ];
diff --git a/pkgs/development/libraries/level-zero/default.nix b/pkgs/development/libraries/level-zero/default.nix
index a098a0ea5b6b3..db99f73cd796b 100644
--- a/pkgs/development/libraries/level-zero/default.nix
+++ b/pkgs/development/libraries/level-zero/default.nix
@@ -2,38 +2,32 @@
 , addOpenGLRunpath
 , cmake
 , fetchFromGitHub
-, fmt_9
-, spdlog
+, intel-compute-runtime
+, openvino
 , stdenv
-, substituteAll
 }:
 
 stdenv.mkDerivation rec {
   pname = "level-zero";
-  version = "1.16.15";
+  version = "1.17.6";
 
   src = fetchFromGitHub {
     owner = "oneapi-src";
     repo = "level-zero";
     rev = "refs/tags/v${version}";
-    hash = "sha256-J+XIqaV1ThD0RqqcyIkzvTWCkIztjkHzGzUbj0qojJs=";
+    hash = "sha256-vtijha0nXHEp5oLnmdtbD80Qa2dgMykZXhQ2yfbk+mY=";
   };
 
-  patches = [
-    (substituteAll {
-      src = ./system-spdlog.diff;
-      spdlog = lib.getDev spdlog;
-    })
-  ];
-
   nativeBuildInputs = [ cmake addOpenGLRunpath ];
 
-  buildInputs = [ fmt_9 ];
-
   postFixup = ''
     addOpenGLRunpath $out/lib/libze_loader.so
   '';
 
+  passthru.tests = {
+    inherit intel-compute-runtime openvino;
+  };
+
   meta = with lib; {
     description = "oneAPI Level Zero Specification Headers and Loader";
     homepage = "https://github.com/oneapi-src/level-zero";
diff --git a/pkgs/development/libraries/level-zero/system-spdlog.diff b/pkgs/development/libraries/level-zero/system-spdlog.diff
deleted file mode 100644
index dee5432d0f7f9..0000000000000
--- a/pkgs/development/libraries/level-zero/system-spdlog.diff
+++ /dev/null
@@ -1,66 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 5e4af80..a54eecb 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1,6 +1,9 @@
- # Copyright (C) 2020-2024 Intel Corporation
- # SPDX-License-Identifier: MIT
- 
-+add_compile_definitions(SPDLOG_FMT_EXTERNAL)
-+add_compile_definitions(FMT_HEADER_ONLY)
-+
- cmake_minimum_required(VERSION 3.2.0 FATAL_ERROR)
- set(CMAKE_CXX_STANDARD 14)
- set(CMAKE_CXX_STANDARD_REQUIRED ON)
-@@ -58,7 +60,7 @@ elseif(Git_FOUND)
- endif()
- 
- include(FetchContent)
--set(SPDLOG_ROOT "${FETCHCONTENT_BASE_DIR}/spdlog-src")
-+set(SPDLOG_ROOT "@spdlog@")
- 
- # Update other relevant variables to include the patch
- set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
-diff --git a/source/utils/CMakeLists.txt b/source/utils/CMakeLists.txt
-index cb6cfb1..599338a 100644
---- a/source/utils/CMakeLists.txt
-+++ b/source/utils/CMakeLists.txt
-@@ -1,16 +1,6 @@
- # Copyright (C) 2024 Intel Corporation
- # SPDX-License-Identifier: MIT
- 
--include(FetchContent)
--set(SPDLOG_REPO https://github.com/gabime/spdlog)
--set(SPDLOG_TAG v1.13.0)
--FetchContent_Declare(
--    spdlog
--    GIT_REPOSITORY ${SPDLOG_REPO}
--    GIT_TAG ${SPDLOG_TAG}
--)
--FetchContent_makeAvailable(spdlog)
--
- add_library(utils
-   STATIC
-   "logging.h"
-@@ -19,5 +9,5 @@ add_library(utils
- 
- target_include_directories(utils
-   PUBLIC
--  ${FETCHCONTENT_BASE_DIR}/spdlog-src/include
-+  @spdlog@/include
- )
-diff --git a/source/utils/logging.h b/source/utils/logging.h
-index 4aad451..c8c4cc3 100644
---- a/source/utils/logging.h
-+++ b/source/utils/logging.h
-@@ -16,8 +16,8 @@
- #include <string>
- #include <vector>
- 
--#include "spdlog/sinks/basic_file_sink.h"
--#include "spdlog/spdlog.h"
-+#include <spdlog/sinks/basic_file_sink.h>
-+#include <spdlog/spdlog.h>
- 
- namespace loader {
- 
diff --git a/pkgs/development/libraries/libAfterImage/default.nix b/pkgs/development/libraries/libAfterImage/default.nix
deleted file mode 100644
index 828a6891e293c..0000000000000
--- a/pkgs/development/libraries/libAfterImage/default.nix
+++ /dev/null
@@ -1,98 +0,0 @@
-{ lib, stdenv, fetchurl, fetchpatch, autoreconfHook, giflib, libjpeg, libpng, libX11, zlib
-, static ? stdenv.hostPlatform.isStatic
-, withX ? !stdenv.isDarwin }:
-
-stdenv.mkDerivation {
-  pname = "libAfterImage";
-  version = "1.20";
-
-  src = fetchurl {
-    name = "libAfterImage-1.20.tar.bz2";
-    urls = [
-      "https://sourceforge.net/projects/afterstep/files/libAfterImage/1.20/libAfterImage-1.20.tar.bz2/download"
-      "ftp://ftp.afterstep.org/stable/libAfterImage/libAfterImage-1.20.tar.bz2"
-    ];
-    sha256 = "0n74rxidwig3yhr6fzxsk7y19n1nq1f296lzrvgj5pfiyi9k48vf";
-  };
-
-  patches = [
-    # add back --with-gif option
-    (fetchpatch {
-      name = "libafterimage-gif.patch";
-      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/libafterimage/files/libafterimage-gif.patch?id=4aa4fca00611b0b3a4007870da43cc5fd63f76c4";
-      sha256 = "16pa94wlqpd7h6mzs4f0qm794yk1xczrwsgf93kdd3g0zbjq3rnr";
-    })
-
-    # fix build with newer giflib
-    (fetchpatch {
-      name = "libafterimage-giflib5-v2.patch";
-      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/libafterimage/files/libafterimage-giflib5-v2.patch?id=4aa4fca00611b0b3a4007870da43cc5fd63f76c4";
-      sha256 = "0qwydqy9bm73cg5n3vm97aj4jfi70p7fxqmfbi54vi78z593brln";
-      stripLen = 1;
-    })
-
-    # fix build with newer libpng
-    (fetchpatch {
-      name = "libafterimage-libpng15.patch";
-      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/libafterimage/files/libafterimage-libpng15.patch?id=4aa4fca00611b0b3a4007870da43cc5fd63f76c4";
-      sha256 = "1qyvf7786hayasfnnilfbri3p99cfz5wjpbli3gdqj2cvk6mpydv";
-    })
-
-    # fix an ldconfig problem
-    (fetchpatch {
-      name = "libafterimage-makefile.patch";
-      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/libafterimage/files/libafterimage-makefile.in.patch?id=4aa4fca00611b0b3a4007870da43cc5fd63f76c4";
-      sha256 = "1n6fniz6dldms615046yhc4mlg9gb53y4yfia8wfz6szgq5zicj4";
-    })
-
-    # Fix build failure against binutils-2.36:
-    #  https://sourceforge.net/p/afterstep/bugs/5/
-    (fetchpatch {
-      name = "binutils-2.36.patch";
-      url = "https://sourceforge.net/p/afterstep/bugs/5/attachment/libafterimage-binutils-2.36-support.patch";
-      sha256 = "1cfgm2ffwlsmhvvfmrxlglddaigr99k88d5xqva9pkl3mmzy3jym";
-      # workaround '-p0' patchflags below.
-      stripLen = 1;
-    })
-
-    # fix https://github.com/root-project/root/issues/10990
-    (fetchpatch {
-      url = "https://github.com/root-project/root/pull/11243/commits/e177a477b0be05ef139094be1e96a99ece06350a.diff";
-      hash = "sha256-2DQmJGHmATHawl3dk9dExncVe1sXzJQyy4PPwShoLTY=";
-      stripLen = 5;
-    })
-  ];
-  patchFlags = [ "-p0" ];
-
-  nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ giflib libjpeg libpng zlib ] ++ lib.optional withX libX11;
-
-  preConfigure = ''
-    rm -rf {libjpeg,libpng,libungif,zlib}/
-    substituteInPlace Makefile.in \
-      --replace "include .depend" ""
-  '' + lib.optionalString stdenv.isDarwin ''
-    substituteInPlace Makefile.in \
-      --replace "-soname," "-install_name,$out/lib/"
-  '';
-
-  configureFlags = [
-    "--with-gif"
-    "--disable-mmx-optimization"
-    "--${if static then "enable" else "disable"}-staticlibs"
-    "--${if !static then "enable" else "disable"}-sharedlibs"
-    "--${if withX then "with" else "without"}-x"
-  ];
-
-  env = lib.optionalAttrs stdenv.cc.isClang {
-    NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration";
-  };
-
-  meta = with lib; {
-    homepage = "http://www.afterstep.org/afterimage/";
-    description = "A generic image manipulation library";
-    platforms = platforms.unix;
-    maintainers = [ maintainers.veprbl ];
-    license = licenses.lgpl21;
-  };
-}
diff --git a/pkgs/development/libraries/libLAS/default.nix b/pkgs/development/libraries/libLAS/default.nix
index 195f77d19231e..4b00de8115735 100644
--- a/pkgs/development/libraries/libLAS/default.nix
+++ b/pkgs/development/libraries/libLAS/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, boost, cmake, libgeotiff, libtiff, LASzip2, fixDarwinDylibNames }:
+{ lib, stdenv, fetchurl, fetchpatch, boost, cmake, libgeotiff, libtiff, laszip_2, fixDarwinDylibNames }:
 
 stdenv.mkDerivation rec {
   pname = "libLAS";
@@ -35,13 +35,13 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [ cmake ] ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
-  buildInputs = [ boost libgeotiff libtiff LASzip2 ];
+  buildInputs = [ boost libgeotiff libtiff laszip_2 ];
 
   cmakeFlags = [
     "-DWITH_LASZIP=ON"
     # libLAS is currently not compatible with LASzip 3,
     # see https://github.com/libLAS/libLAS/issues/144.
-    "-DLASZIP_INCLUDE_DIR=${LASzip2}/include"
+    "-DLASZIP_INCLUDE_DIR=${laszip_2}/include"
     "-DCMAKE_EXE_LINKER_FLAGS=-pthread"
   ];
 
diff --git a/pkgs/development/libraries/libadwaita/default.nix b/pkgs/development/libraries/libadwaita/default.nix
index 1301f9fe923d9..7f7f93c37949d 100644
--- a/pkgs/development/libraries/libadwaita/default.nix
+++ b/pkgs/development/libraries/libadwaita/default.nix
@@ -22,7 +22,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libadwaita";
-  version = "1.5.0";
+  version = "1.5.1";
 
   outputs = [ "out" "dev" "devdoc" ];
   outputBin = "devdoc"; # demo app
@@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "GNOME";
     repo = "libadwaita";
     rev = finalAttrs.version;
-    hash = "sha256-uEaBI2jHlMdVprMGRZe/8HszO3nEBUJaJtvJjrMOjE4=";
+    hash = "sha256-dH0VPIt6SGTDcb1I72cKnNlyqZ3dptvKmMDjOd17BfA=";
   };
 
   depsBuildBuild = [
diff --git a/pkgs/development/libraries/libappindicator/default.nix b/pkgs/development/libraries/libappindicator/default.nix
index 8e68ea3f9cb63..e2cd9624bc40f 100644
--- a/pkgs/development/libraries/libappindicator/default.nix
+++ b/pkgs/development/libraries/libappindicator/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
 
   meta = with lib; {
-    description = "A library to allow applications to export a menu into the Unity Menu bar";
+    description = "Library to allow applications to export a menu into the Unity Menu bar";
     homepage = "https://launchpad.net/libappindicator";
     license = with licenses; [ lgpl21 lgpl3 ];
     pkgConfigModules = {
diff --git a/pkgs/development/libraries/libarchive-qt/default.nix b/pkgs/development/libraries/libarchive-qt/default.nix
index 77f498967ecc9..767d9228f33ad 100644
--- a/pkgs/development/libraries/libarchive-qt/default.nix
+++ b/pkgs/development/libraries/libarchive-qt/default.nix
@@ -25,7 +25,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A Qt based archiving solution with libarchive backend";
+    description = "Qt based archiving solution with libarchive backend";
     mainProgram = "archiver";
     homepage = "https://gitlab.com/marcusbritanicus/libarchive-qt";
     license = licenses.lgpl3Plus;
diff --git a/pkgs/development/libraries/libargon2/default.nix b/pkgs/development/libraries/libargon2/default.nix
index ae9ba47cdc3fa..6e2ef83c5eace 100644
--- a/pkgs/development/libraries/libargon2/default.nix
+++ b/pkgs/development/libraries/libargon2/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A key derivation function that was selected as the winner of the Password Hashing Competition in July 2015";
+    description = "Key derivation function that was selected as the winner of the Password Hashing Competition in July 2015";
     longDescription = ''
       A password-hashing function created by by Alex Biryukov, Daniel Dinu, and
       Dmitry Khovratovich. Argon2 was declared the winner of the Password
diff --git a/pkgs/development/libraries/libargs/default.nix b/pkgs/development/libraries/libargs/default.nix
index 5247aa5a94f57..0ad0a264f0074 100644
--- a/pkgs/development/libraries/libargs/default.nix
+++ b/pkgs/development/libraries/libargs/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple header-only C++ argument parser library";
+    description = "Simple header-only C++ argument parser library";
     homepage = "https://github.com/Taywee/args";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/libraries/libasyncns/default.nix b/pkgs/development/libraries/libasyncns/default.nix
index 423b8cca69150..09e056373d27e 100644
--- a/pkgs/development/libraries/libasyncns/default.nix
+++ b/pkgs/development/libraries/libasyncns/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://0pointer.de/lennart/projects/libasyncns/";
-    description = "A C library for Linux/Unix for executing name service queries asynchronously";
+    description = "C library for Linux/Unix for executing name service queries asynchronously";
     license = licenses.lgpl21;
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/libraries/libatomic_ops/default.nix b/pkgs/development/libraries/libatomic_ops/default.nix
index e7170953d0ca5..bf83a9e8456ac 100644
--- a/pkgs/development/libraries/libatomic_ops/default.nix
+++ b/pkgs/development/libraries/libatomic_ops/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A library for semi-portable access to hardware-provided atomic memory update operations";
+    description = "Library for semi-portable access to hardware-provided atomic memory update operations";
     license = lib.licenses.gpl2Plus ;
     maintainers = [lib.maintainers.raskin];
     platforms = with lib.platforms; unix ++ windows;
diff --git a/pkgs/development/libraries/libaudec/default.nix b/pkgs/development/libraries/libaudec/default.nix
index 5340f62a32edc..ffe5f785acd5d 100644
--- a/pkgs/development/libraries/libaudec/default.nix
+++ b/pkgs/development/libraries/libaudec/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ meson ninja pkg-config ];
 
   meta = with lib; {
-    description = "A library for reading and resampling audio files";
+    description = "Library for reading and resampling audio files";
     homepage = "https://www.zrythm.org";
     license = licenses.agpl3Plus;
     mainProgram = "audec";
diff --git a/pkgs/development/libraries/libav/default.nix b/pkgs/development/libraries/libav/default.nix
index 283c2034be7e4..8cc098d81087a 100644
--- a/pkgs/development/libraries/libav/default.nix
+++ b/pkgs/development/libraries/libav/default.nix
@@ -123,7 +123,7 @@ let
 
     meta = with lib; {
       homepage = "https://libav.org/";
-      description = "A complete, cross-platform solution to record, convert and stream audio and video (fork of ffmpeg)";
+      description = "Complete, cross-platform solution to record, convert and stream audio and video (fork of ffmpeg)";
       license = with licenses; if enableUnfree then unfree #ToDo: redistributable or not?
         else if enableGPL then gpl2Plus else lgpl21Plus;
       platforms = with platforms; linux ++ darwin;
diff --git a/pkgs/development/libraries/libb2/default.nix b/pkgs/development/libraries/libb2/default.nix
index 9e507188aad39..39697b4af521a 100644
--- a/pkgs/development/libraries/libb2/default.nix
+++ b/pkgs/development/libraries/libb2/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
 
   meta = with lib; {
-    description = "The BLAKE2 family of cryptographic hash functions";
+    description = "BLAKE2 family of cryptographic hash functions";
     homepage = "https://blake2.net/";
     pkgConfigModules = [ "libb2" ];
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/libbacktrace/default.nix b/pkgs/development/libraries/libbacktrace/default.nix
index 32c199a57c4e5..1be572671e029 100644
--- a/pkgs/development/libraries/libbacktrace/default.nix
+++ b/pkgs/development/libraries/libbacktrace/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation {
   };
 
   meta = with lib; {
-    description = "A C library that may be linked into a C/C++ program to produce symbolic backtraces";
+    description = "C library that may be linked into a C/C++ program to produce symbolic backtraces";
     homepage = "https://github.com/ianlancetaylor/libbacktrace";
     maintainers = with maintainers; [ twey ];
     license = with licenses; [ bsd3 ];
diff --git a/pkgs/development/libraries/libbap/default.nix b/pkgs/development/libraries/libbap/default.nix
index 3ed92edd78e11..13f65a082bd69 100644
--- a/pkgs/development/libraries/libbap/default.nix
+++ b/pkgs/development/libraries/libbap/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/binaryanalysisplatform/bap-bindings";
-    description = "A C library for interacting with BAP";
+    description = "C library for interacting with BAP";
     maintainers = [ maintainers.maurer ];
     platforms = platforms.unix;
     license = licenses.mit;
diff --git a/pkgs/development/libraries/libbladeRF/default.nix b/pkgs/development/libraries/libbladeRF/default.nix
index ce570b76bc082..158493b80e905 100644
--- a/pkgs/development/libraries/libbladeRF/default.nix
+++ b/pkgs/development/libraries/libbladeRF/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, pkg-config, cmake, git, doxygen, help2man, ncurses, tecla
+{ stdenv, lib, fetchFromGitHub, pkg-config, cmake, git, doxygen, help2man, ncurses, tecla
 , libusb1, udev }:
 
 stdenv.mkDerivation rec {
diff --git a/pkgs/development/libraries/libblockdev/default.nix b/pkgs/development/libraries/libblockdev/default.nix
index 8ec4b709b162f..7679aefe5b95a 100644
--- a/pkgs/development/libraries/libblockdev/default.nix
+++ b/pkgs/development/libraries/libblockdev/default.nix
@@ -85,7 +85,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     changelog = "https://github.com/storaged-project/libblockdev/raw/${finalAttrs.src.rev}/NEWS.rst";
-    description = "A library for manipulating block devices";
+    description = "Library for manipulating block devices";
     homepage = "http://storaged.org/libblockdev/";
     license = with lib.licenses; [ lgpl2Plus gpl2Plus ]; # lgpl2Plus for the library, gpl2Plus for the utils
     maintainers = with lib.maintainers; [ johnazoidberg ];
diff --git a/pkgs/development/libraries/libbluray/default.nix b/pkgs/development/libraries/libbluray/default.nix
index 552259ce3babe..f50172851d618 100644
--- a/pkgs/development/libraries/libbluray/default.nix
+++ b/pkgs/development/libraries/libbluray/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, pkg-config, fontconfig, autoreconfHook, DiskArbitration
+{ lib, stdenv, fetchurl, pkg-config, fontconfig, autoreconfHook, DiskArbitration
 , withJava ? false, jdk17, ant, stripJavaArchivesHook
 , withAACS ? false, libaacs
 , withBDplus ? false, libbdplus
diff --git a/pkgs/development/libraries/libbsd/default.nix b/pkgs/development/libraries/libbsd/default.nix
index 9e80d17b8a033..fa8b6b65950bc 100644
--- a/pkgs/development/libraries/libbsd/default.nix
+++ b/pkgs/development/libraries/libbsd/default.nix
@@ -35,6 +35,9 @@ stdenv.mkDerivation rec {
     url = "https://gitlab.freedesktop.org/libbsd/libbsd.git";
   };
 
+  # Fix undefined reference errors with version script under LLVM.
+  configureFlags = lib.optionals (stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17") [ "LDFLAGS=-Wl,--undefined-version" ];
+
   meta = with lib; {
     description = "Common functions found on BSD systems";
     homepage = "https://libbsd.freedesktop.org/";
diff --git a/pkgs/development/libraries/libbytesize/default.nix b/pkgs/development/libraries/libbytesize/default.nix
index 08fc569312501..f0af39cc88108 100644
--- a/pkgs/development/libraries/libbytesize/default.nix
+++ b/pkgs/development/libraries/libbytesize/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/storaged-project/libbytesize";
-    description = "A tiny library providing a C 'class' for working with arbitrary big sizes in bytes";
+    description = "Tiny library providing a C 'class' for working with arbitrary big sizes in bytes";
     mainProgram = "bscalc";
     license = lib.licenses.lgpl2Plus;
     maintainers = with lib.maintainers; [ AndersonTorres ];
diff --git a/pkgs/development/libraries/libcaca/default.nix b/pkgs/development/libraries/libcaca/default.nix
index 26d8c79443a04..6b99439fe017e 100644
--- a/pkgs/development/libraries/libcaca/default.nix
+++ b/pkgs/development/libraries/libcaca/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://caca.zoy.org/wiki/libcaca";
-    description = "A graphics library that outputs text instead of pixels";
+    description = "Graphics library that outputs text instead of pixels";
     longDescription = ''
       libcaca is a graphics library that outputs text instead of pixels, so that
       it can work on older video cards or text terminals. It is not unlike the
diff --git a/pkgs/development/libraries/libcanberra/default.nix b/pkgs/development/libraries/libcanberra/default.nix
index 10c6706dc70d8..6bfb780d31a35 100644
--- a/pkgs/development/libraries/libcanberra/default.nix
+++ b/pkgs/development/libraries/libcanberra/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "An implementation of the XDG Sound Theme and Name Specifications";
+    description = "Implementation of the XDG Sound Theme and Name Specifications";
     mainProgram = "canberra-gtk-play";
     longDescription = ''
       libcanberra is an implementation of the XDG Sound Theme and Name
diff --git a/pkgs/development/libraries/libcangjie/default.nix b/pkgs/development/libraries/libcangjie/default.nix
index 5b68a6526f1d1..ab562d9c1999c 100644
--- a/pkgs/development/libraries/libcangjie/default.nix
+++ b/pkgs/development/libraries/libcangjie/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "A C library implementing the Cangjie input method";
+    description = "C library implementing the Cangjie input method";
     longDescription = ''
       libcangjie is a library implementing the Cangjie input method.
     '';
diff --git a/pkgs/development/libraries/libcdaudio/default.nix b/pkgs/development/libraries/libcdaudio/default.nix
index fa873672dbcfa..8e7bb7e2964a9 100644
--- a/pkgs/development/libraries/libcdaudio/default.nix
+++ b/pkgs/development/libraries/libcdaudio/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "A portable library for controlling audio CDs";
+    description = "Portable library for controlling audio CDs";
     mainProgram = "libcdaudio-config";
     homepage = "https://libcdaudio.sourceforge.net";
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/libraries/libcdio/default.nix b/pkgs/development/libraries/libcdio/default.nix
index 2124e696d343e..820ac97a434f3 100644
--- a/pkgs/development/libraries/libcdio/default.nix
+++ b/pkgs/development/libraries/libcdio/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   doCheck = !stdenv.isDarwin;
 
   meta = with lib; {
-    description = "A library for OS-independent CD-ROM and CD image access";
+    description = "Library for OS-independent CD-ROM and CD image access";
     longDescription = ''
       GNU libcdio is a library for OS-independent CD-ROM and
       CD image access.  It includes a library for working with
diff --git a/pkgs/development/libraries/libcdr/default.nix b/pkgs/development/libraries/libcdr/default.nix
index 64695aaa55d72..885413982dad8 100644
--- a/pkgs/development/libraries/libcdr/default.nix
+++ b/pkgs/development/libraries/libcdr/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, libwpg, libwpd, lcms, pkg-config, librevenge, icu, boost, cppunit }:
+{ lib, stdenv, fetchurl, libwpg, libwpd, lcms, pkg-config, librevenge, icu, boost, cppunit }:
 
 stdenv.mkDerivation rec {
   pname = "libcdr";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   CXXFLAGS="--std=gnu++0x"; # For c++11 constants in lcms2.h
 
   meta = {
-    description = "A library providing ability to interpret and import Corel Draw drawings into various applications";
+    description = "Library providing ability to interpret and import Corel Draw drawings into various applications";
     homepage = "https://wiki.documentfoundation.org/DLP/Libraries/libcdr";
     platforms = lib.platforms.all;
     license = lib.licenses.mpl20;
diff --git a/pkgs/development/libraries/libcommuni/default.nix b/pkgs/development/libraries/libcommuni/default.nix
index f7d064e0de384..c33fdcf00f33c 100644
--- a/pkgs/development/libraries/libcommuni/default.nix
+++ b/pkgs/development/libraries/libcommuni/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   preFixup = "rm -rf lib";
 
   meta = with lib; {
-    description = "A cross-platform IRC framework written with Qt";
+    description = "Cross-platform IRC framework written with Qt";
     homepage = "https://communi.github.io";
     license = licenses.bsd3;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/libconfig/default.nix b/pkgs/development/libraries/libconfig/default.nix
index 5c06808f67c3e..c0f02320c7796 100644
--- a/pkgs/development/libraries/libconfig/default.nix
+++ b/pkgs/development/libraries/libconfig/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.hyperrealm.com/libconfig";
-    description = "A simple library for processing structured configuration files";
+    description = "Simple library for processing structured configuration files";
     license = licenses.lgpl3;
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/libcork/default.nix b/pkgs/development/libraries/libcork/default.nix
index 87a068c24d1a9..c013775fcaeb0 100644
--- a/pkgs/development/libraries/libcork/default.nix
+++ b/pkgs/development/libraries/libcork/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/dcreager/libcork";
-    description = "A simple, easily embeddable cross-platform C library";
+    description = "Simple, easily embeddable cross-platform C library";
     mainProgram = "cork-hash";
     license = licenses.bsd3;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libctemplate/default.nix b/pkgs/development/libraries/libctemplate/default.nix
index 2aa36bfe99146..816bbe41708a9 100644
--- a/pkgs/development/libraries/libctemplate/default.nix
+++ b/pkgs/development/libraries/libctemplate/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A simple but powerful template language for C++";
+    description = "Simple but powerful template language for C++";
     longDescription = ''
       CTemplate is a simple but powerful template language for C++. It
       emphasizes separating logic from presentation: it is impossible to
diff --git a/pkgs/development/libraries/libcxxrt/default.nix b/pkgs/development/libraries/libcxxrt/default.nix
index b9c3f82558a45..1858ca1e97e92 100644
--- a/pkgs/development/libraries/libcxxrt/default.nix
+++ b/pkgs/development/libraries/libcxxrt/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation {
   pname = "libcxxrt";
-  version = "4.0.10-unstable-2024-04-15";
+  version = "4.0.10-unstable-2024-05-26";
 
   src = fetchFromGitHub {
     owner = "libcxxrt";
     repo = "libcxxrt";
-    rev = "25541e312f7094e9c90895000d435af520d42418";
-    sha256 = "d5uhtlO+28uc2Xnf5trXsy43jgmzBHs2jZhCK57qRM4=";
+    rev = "c62fe9963148f283b2fbb7eb9888785cfb16d77c";
+    sha256 = "XxXH6pE2v6WTh1ATJ7Fgd3SFw49L44YchtMlPKX4kYw=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/libdazzle/default.nix b/pkgs/development/libraries/libdazzle/default.nix
index 1e7bb7d05e3ab..c947079038722 100644
--- a/pkgs/development/libraries/libdazzle/default.nix
+++ b/pkgs/development/libraries/libdazzle/default.nix
@@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A library to delight your users with fancy features";
+    description = "Library to delight your users with fancy features";
     mainProgram = "dazzle-list-counters";
     longDescription = ''
       The libdazzle library is a companion library to GObject and GTK. It
diff --git a/pkgs/development/libraries/libdeltachat/Cargo.lock b/pkgs/development/libraries/libdeltachat/Cargo.lock
index ae5294d3104f7..4f9efb6bec40c 100644
--- a/pkgs/development/libraries/libdeltachat/Cargo.lock
+++ b/pkgs/development/libraries/libdeltachat/Cargo.lock
@@ -17,9 +17,9 @@ dependencies = [
 
 [[package]]
 name = "addr2line"
-version = "0.21.0"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678"
 dependencies = [
  "gimli",
 ]
@@ -31,6 +31,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
+name = "aead"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0"
+dependencies = [
+ "bytes",
+ "crypto-common",
+ "generic-array",
+]
+
+[[package]]
 name = "aes"
 version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -55,9 +66,9 @@ dependencies = [
 
 [[package]]
 name = "aho-corasick"
-version = "1.1.2"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
 dependencies = [
  "memchr",
 ]
@@ -114,16 +125,58 @@ dependencies = [
 ]
 
 [[package]]
+name = "anstream"
+version = "0.6.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "utf8parse",
+]
+
+[[package]]
 name = "anstyle"
 version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
 
 [[package]]
+name = "anstyle-parse"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
+dependencies = [
+ "anstyle",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "anyhow"
-version = "1.0.80"
+version = "1.0.86"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
+checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
 dependencies = [
  "backtrace",
 ]
@@ -152,8 +205,24 @@ version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0"
 dependencies = [
- "asn1-rs-derive",
- "asn1-rs-impl",
+ "asn1-rs-derive 0.4.0",
+ "asn1-rs-impl 0.1.0",
+ "displaydoc",
+ "nom",
+ "num-traits",
+ "rusticata-macros",
+ "thiserror",
+ "time 0.3.34",
+]
+
+[[package]]
+name = "asn1-rs"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22ad1373757efa0f70ec53939aabc7152e1591cb485208052993070ac8d2429d"
+dependencies = [
+ "asn1-rs-derive 0.5.0",
+ "asn1-rs-impl 0.2.0",
  "displaydoc",
  "nom",
  "num-traits",
@@ -171,7 +240,19 @@ dependencies = [
  "proc-macro2",
  "quote",
  "syn 1.0.109",
- "synstructure",
+ "synstructure 0.12.6",
+]
+
+[[package]]
+name = "asn1-rs-derive"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7378575ff571966e99a744addeff0bff98b8ada0dedf1956d59e634db95eaac1"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+ "synstructure 0.13.1",
 ]
 
 [[package]]
@@ -186,6 +267,29 @@ dependencies = [
 ]
 
 [[package]]
+name = "asn1-rs-impl"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "async-broadcast"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "258b52a1aa741b9f09783b2d86cf0aeeb617bbf847f6933340a39644227acbdb"
+dependencies = [
+ "event-listener 5.2.0",
+ "event-listener-strategy",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "async-channel"
 version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -198,12 +302,11 @@ dependencies = [
 
 [[package]]
 name = "async-channel"
-version = "2.2.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
+checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a"
 dependencies = [
  "concurrent-queue",
- "event-listener 5.2.0",
  "event-listener-strategy",
  "futures-core",
  "pin-project-lite",
@@ -228,7 +331,7 @@ version = "0.9.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "98892ebee4c05fc66757e600a7466f0d9bfcde338f645d64add323789f26cb36"
 dependencies = [
- "async-channel 2.2.0",
+ "async-channel 2.3.1",
  "base64 0.21.7",
  "bytes",
  "chrono",
@@ -267,9 +370,9 @@ dependencies = [
 
 [[package]]
 name = "async-smtp"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8709c0d4432be428a88a06746689a9cb543e8e27ef7f61ca4d0455003a3d8c5b"
+checksum = "928ea96f04e1260036cb01f82c1e5dc7c3b478e7b9463c87712297784ce3cdc6"
 dependencies = [
  "anyhow",
  "base64 0.13.1",
@@ -290,7 +393,7 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -308,6 +411,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "attohttpc"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d9a9bf8b79a749ee0b911b91b671cc2b6c670bdbc7e3dfd537576ddc94bb2a2"
+dependencies = [
+ "http 0.2.12",
+ "log",
+ "url",
+]
+
+[[package]]
 name = "autocfg"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -315,9 +429,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "axum"
-version = "0.7.4"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1236b4b292f6c4d6dc34604bb5120d85c3fe1d1aa596bd5cc52ca054d13e7b9e"
+checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf"
 dependencies = [
  "async-trait",
  "axum-core",
@@ -341,7 +455,7 @@ dependencies = [
  "serde_path_to_error",
  "serde_urlencoded",
  "sha1",
- "sync_wrapper",
+ "sync_wrapper 1.0.0",
  "tokio",
  "tokio-tungstenite",
  "tower",
@@ -365,17 +479,28 @@ dependencies = [
  "mime",
  "pin-project-lite",
  "rustversion",
- "sync_wrapper",
+ "sync_wrapper 0.1.2",
  "tower-layer",
  "tower-service",
  "tracing",
 ]
 
 [[package]]
+name = "backoff"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1"
+dependencies = [
+ "getrandom 0.2.12",
+ "instant",
+ "rand 0.8.5",
+]
+
+[[package]]
 name = "backtrace"
-version = "0.3.69"
+version = "0.3.72"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+checksum = "17c6a35df3749d2e8bb1b7b21a976d82b15548788d2735b9d82f329268f71a11"
 dependencies = [
  "addr2line",
  "cc",
@@ -423,6 +548,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
+name = "base64"
+version = "0.22.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
+
+[[package]]
 name = "base64ct"
 version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -456,6 +587,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 
 [[package]]
+name = "bitvec"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
+dependencies = [
+ "funty",
+ "radium",
+ "tap",
+ "wyz",
+]
+
+[[package]]
 name = "blake3"
 version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -506,10 +649,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "bounded-integer"
+version = "0.5.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78a6932c88f1d2c29533a3b8a5f5a2f84cc19c3339b431677c3160c5c2e6ca85"
+
+[[package]]
 name = "brotli"
-version = "3.4.0"
+version = "6.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f"
+checksum = "74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b"
 dependencies = [
  "alloc-no-stdlib",
  "alloc-stdlib",
@@ -518,9 +667,9 @@ dependencies = [
 
 [[package]]
 name = "brotli-decompressor"
-version = "2.5.1"
+version = "4.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f"
+checksum = "e6221fe77a248b9117d431ad93761222e1cf8ff282d9d1d5d9f53d6299a1cf76"
 dependencies = [
  "alloc-no-stdlib",
  "alloc-stdlib",
@@ -568,6 +717,9 @@ name = "bytes"
 version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+dependencies = [
+ "serde",
+]
 
 [[package]]
 name = "camellia"
@@ -627,12 +779,9 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.83"
+version = "1.0.98"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
-dependencies = [
- "libc",
-]
+checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
 
 [[package]]
 name = "cfb-mode"
@@ -650,6 +799,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
+[[package]]
+name = "chacha20"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818"
+dependencies = [
+ "cfg-if",
+ "cipher",
+ "cpufeatures",
+]
+
+[[package]]
 name = "charset"
 version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -661,16 +827,17 @@ dependencies = [
 
 [[package]]
 name = "chrono"
-version = "0.4.34"
+version = "0.4.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "js-sys",
  "num-traits",
+ "serde",
  "wasm-bindgen",
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -708,6 +875,7 @@ checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
 dependencies = [
  "crypto-common",
  "inout",
+ "zeroize",
 ]
 
 [[package]]
@@ -757,10 +925,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
 
 [[package]]
+name = "colorchoice"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+
+[[package]]
 name = "concurrent-queue"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
+checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
 dependencies = [
  "crossbeam-utils",
 ]
@@ -835,6 +1009,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "crc"
+version = "3.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636"
+dependencies = [
+ "crc-catalog",
+]
+
+[[package]]
+name = "crc-catalog"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5"
+
+[[package]]
 name = "crc24"
 version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -949,10 +1138,43 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
 dependencies = [
  "generic-array",
+ "rand_core 0.6.4",
  "typenum",
 ]
 
 [[package]]
+name = "crypto_box"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16182b4f39a82ec8a6851155cc4c0cda3065bb1db33651726a29e1951de0f009"
+dependencies = [
+ "aead",
+ "chacha20",
+ "crypto_secretbox",
+ "curve25519-dalek 4.1.2",
+ "salsa20",
+ "serdect",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "crypto_secretbox"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9d6cf87adf719ddf43a805e92c6870a531aedda35ff640442cbaf8674e141e1"
+dependencies = [
+ "aead",
+ "chacha20",
+ "cipher",
+ "generic-array",
+ "poly1305",
+ "salsa20",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
 name = "curve25519-dalek"
 version = "3.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -990,7 +1212,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -1064,10 +1286,23 @@ dependencies = [
 ]
 
 [[package]]
+name = "dashmap"
+version = "5.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
+dependencies = [
+ "cfg-if",
+ "hashbrown",
+ "lock_api",
+ "once_cell",
+ "parking_lot_core",
+]
+
+[[package]]
 name = "data-encoding"
-version = "2.5.0"
+version = "2.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
+checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2"
 
 [[package]]
 name = "default-net"
@@ -1075,33 +1310,35 @@ version = "0.14.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a4898b43aed56499fad6b294d15b3e76a51df68079bf492e5daae38ca084e003"
 dependencies = [
- "dlopen2",
+ "dlopen2 0.4.1",
  "libc",
  "memalloc",
- "netlink-packet-core",
- "netlink-packet-route",
+ "netlink-packet-core 0.5.0",
+ "netlink-packet-route 0.15.0",
  "netlink-sys",
  "once_cell",
- "system-configuration",
- "windows",
+ "system-configuration 0.5.1",
+ "windows 0.32.0",
 ]
 
 [[package]]
 name = "deltachat"
-version = "1.136.3"
+version = "1.140.2"
 dependencies = [
  "ansi_term",
  "anyhow",
- "async-channel 2.2.0",
+ "async-broadcast",
+ "async-channel 2.3.1",
  "async-imap",
  "async-native-tls",
  "async-smtp",
  "async_zip",
  "backtrace",
- "base64 0.21.7",
+ "base64 0.22.1",
  "brotli",
  "chrono",
  "criterion",
+ "deltachat-contact-tools",
  "deltachat-time",
  "deltachat_derive",
  "email",
@@ -1111,12 +1348,14 @@ dependencies = [
  "fd-lock",
  "format-flowed",
  "futures",
- "futures-lite",
+ "futures-lite 2.3.0",
  "hex",
  "hickory-resolver",
  "humansize",
  "image",
  "iroh",
+ "iroh-gossip",
+ "iroh-net",
  "kamadak-exif",
  "lettre_email",
  "libc",
@@ -1127,21 +1366,19 @@ dependencies = [
  "num-traits",
  "num_cpus",
  "once_cell",
- "openssl-src",
  "parking_lot",
  "percent-encoding",
  "pgp",
- "pin-project",
  "pretty_assertions",
- "pretty_env_logger",
  "proptest",
  "qrcodegen",
  "quick-xml",
+ "quinn",
  "quoted_printable",
  "rand 0.8.5",
  "ratelimit",
  "regex",
- "reqwest",
+ "reqwest 0.11.27",
  "rusqlite",
  "rust-hsluv",
  "sanitize-filename",
@@ -1168,14 +1405,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "deltachat-contact-tools"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "chrono",
+ "once_cell",
+ "regex",
+ "rusqlite",
+]
+
+[[package]]
 name = "deltachat-jsonrpc"
-version = "1.136.3"
+version = "1.140.2"
 dependencies = [
  "anyhow",
- "async-channel 2.2.0",
+ "async-channel 2.3.1",
  "axum",
- "base64 0.21.7",
+ "base64 0.22.1",
  "deltachat",
+ "deltachat-contact-tools",
  "env_logger",
  "futures",
  "log",
@@ -1193,33 +1442,33 @@ dependencies = [
 
 [[package]]
 name = "deltachat-repl"
-version = "1.136.3"
+version = "1.140.2"
 dependencies = [
  "ansi_term",
  "anyhow",
  "deltachat",
  "dirs",
  "log",
- "pretty_env_logger",
  "rusqlite",
  "rustyline",
  "tokio",
+ "tracing-subscriber",
 ]
 
 [[package]]
 name = "deltachat-rpc-server"
-version = "1.136.3"
+version = "1.140.2"
 dependencies = [
  "anyhow",
  "deltachat",
  "deltachat-jsonrpc",
- "env_logger",
- "futures-lite",
+ "futures-lite 2.3.0",
  "log",
  "serde",
  "serde_json",
  "tokio",
  "tokio-util",
+ "tracing-subscriber",
  "yerpc",
 ]
 
@@ -1232,12 +1481,12 @@ name = "deltachat_derive"
 version = "2.0.0"
 dependencies = [
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "deltachat_ffi"
-version = "1.136.3"
+version = "1.140.2"
 dependencies = [
  "anyhow",
  "deltachat",
@@ -1260,7 +1509,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de"
 dependencies = [
  "const-oid",
- "der_derive",
+ "der_derive 0.6.1",
  "pem-rfc7468 0.6.0",
  "zeroize",
 ]
@@ -1272,6 +1521,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c"
 dependencies = [
  "const-oid",
+ "der_derive 0.7.2",
  "pem-rfc7468 0.7.0",
  "zeroize",
 ]
@@ -1282,7 +1532,21 @@ version = "8.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e"
 dependencies = [
- "asn1-rs",
+ "asn1-rs 0.5.2",
+ "displaydoc",
+ "nom",
+ "num-bigint",
+ "num-traits",
+ "rusticata-macros",
+]
+
+[[package]]
+name = "der-parser"
+version = "9.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553"
+dependencies = [
+ "asn1-rs 0.6.1",
  "displaydoc",
  "nom",
  "num-bigint",
@@ -1303,12 +1567,24 @@ dependencies = [
 ]
 
 [[package]]
+name = "der_derive"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fe87ce4529967e0ba1dcf8450bab64d97dfd5010a6256187ffe2e43e6f0e049"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
 name = "deranged"
 version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
 dependencies = [
  "powerfmt",
+ "serde",
 ]
 
 [[package]]
@@ -1356,6 +1632,27 @@ dependencies = [
 ]
 
 [[package]]
+name = "derive_more"
+version = "1.0.0-beta.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7abbfc297053be59290e3152f8cbcd52c8642e0728b69ee187d991d4c1af08d"
+dependencies = [
+ "derive_more-impl",
+]
+
+[[package]]
+name = "derive_more-impl"
+version = "1.0.0-beta.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2bba3e9872d7c58ce7ef0fcf1844fcc3e23ef2a58377b50df35dd98e42a5726e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+ "unicode-xid",
+]
+
+[[package]]
 name = "des"
 version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1441,7 +1738,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -1457,6 +1754,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "dlopen2"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09b4f5f101177ff01b8ec4ecc81eead416a8aa42819a2869311b3420fa114ffa"
+dependencies = [
+ "libc",
+ "once_cell",
+ "winapi",
+]
+
+[[package]]
 name = "dlopen2_derive"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1484,6 +1792,24 @@ dependencies = [
 ]
 
 [[package]]
+name = "dtoa"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653"
+
+[[package]]
+name = "duct"
+version = "0.13.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4ab5718d1224b63252cd0c6f74f6480f9ffeb117438a2e0f5cf6d9a4798929c"
+dependencies = [
+ "libc",
+ "once_cell",
+ "os_pipe",
+ "shared_child",
+]
+
+[[package]]
 name = "dyn-clone"
 version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1532,6 +1858,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53"
 dependencies = [
  "pkcs8 0.10.2",
+ "serde",
  "signature 2.2.0",
 ]
 
@@ -1558,6 +1885,7 @@ checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871"
 dependencies = [
  "curve25519-dalek 4.1.2",
  "ed25519 2.2.3",
+ "rand_core 0.6.4",
  "serde",
  "sha2 0.10.8",
  "subtle",
@@ -1750,7 +2078,7 @@ dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -1763,20 +2091,50 @@ dependencies = [
  "num-traits",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "enumflags2"
+version = "0.7.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d"
+dependencies = [
+ "enumflags2_derive",
+]
+
+[[package]]
+name = "enumflags2_derive"
+version = "0.7.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "env_filter"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea"
+dependencies = [
+ "log",
+ "regex",
 ]
 
 [[package]]
 name = "env_logger"
-version = "0.10.2"
+version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
+checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9"
 dependencies = [
+ "anstream",
+ "anstyle",
+ "env_filter",
  "humantime",
- "is-terminal",
  "log",
- "regex",
- "termcolor",
 ]
 
 [[package]]
@@ -1786,6 +2144,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
+name = "erased-serde"
+version = "0.3.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c138974f9d5e7fe373eb04df7cae98833802ae4b11c24ac7039a21d5af4b26c"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "erased_set"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76a5aa24577083f8190ad401e376b55887c7cd9083ae95d83ceec5d28ea78125"
+
+[[package]]
 name = "errno"
 version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1818,6 +2191,17 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
 
 [[package]]
 name = "event-listener"
+version = "4.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener"
 version = "5.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91"
@@ -1829,9 +2213,9 @@ dependencies = [
 
 [[package]]
 name = "event-listener-strategy"
-version = "0.5.0"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
+checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1"
 dependencies = [
  "event-listener 5.2.0",
  "pin-project-lite",
@@ -1851,9 +2235,9 @@ checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
 
 [[package]]
 name = "fast-socks5"
-version = "0.9.5"
+version = "0.9.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cbcc731f3c17a5053e07e6a2290918da75cd8b9b1217b419721f715674ac520c"
+checksum = "f89f36d4ee12370d30d57b16c7e190950a1a916e7dbbb5fd5a412f5ef913fe84"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -1874,6 +2258,15 @@ dependencies = [
 
 [[package]]
 name = "fastrand"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+dependencies = [
+ "instant",
+]
+
+[[package]]
+name = "fastrand"
 version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
@@ -1993,6 +2386,12 @@ name = "format-flowed"
 version = "1.0.0"
 
 [[package]]
+name = "funty"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
+
+[[package]]
 name = "futures"
 version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2008,6 +2407,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "futures-buffered"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02dcae03ee5afa5ea17b1aebc793806b8ddfc6dc500e0b8e8e1eb30b9dad22c0"
+dependencies = [
+ "futures-core",
+ "futures-util",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "futures-channel"
 version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2018,6 +2428,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "futures-concurrency"
+version = "7.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51ee14e256b9143bfafbf2fddeede6f396650bacf95d06fc1b3f2b503df129a0"
+dependencies = [
+ "bitvec",
+ "futures-core",
+ "futures-lite 1.13.0",
+ "pin-project",
+ "slab",
+ "smallvec",
+]
+
+[[package]]
 name = "futures-core"
 version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2042,11 +2466,26 @@ checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
 name = "futures-lite"
-version = "2.2.0"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba"
+checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
 dependencies = [
- "fastrand",
+ "fastrand 1.9.0",
+ "futures-core",
+ "futures-io",
+ "memchr",
+ "parking",
+ "pin-project-lite",
+ "waker-fn",
+]
+
+[[package]]
+name = "futures-lite"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
+dependencies = [
+ "fastrand 2.0.1",
  "futures-core",
  "futures-io",
  "parking",
@@ -2061,7 +2500,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -2077,6 +2516,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
+name = "futures-timer"
+version = "3.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24"
+
+[[package]]
 name = "futures-util"
 version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2095,6 +2540,22 @@ dependencies = [
 ]
 
 [[package]]
+name = "genawaiter"
+version = "0.99.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c86bd0361bcbde39b13475e6e36cb24c329964aa2611be285289d1e4b751c1a0"
+dependencies = [
+ "futures-core",
+ "genawaiter-macro",
+]
+
+[[package]]
+name = "genawaiter-macro"
+version = "0.99.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b32dfe1fdfc0bbde1f22a5da25355514b5e450c33a6af6770884c8750aedfbc"
+
+[[package]]
 name = "generic-array"
 version = "0.14.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2141,9 +2602,35 @@ dependencies = [
 
 [[package]]
 name = "gimli"
-version = "0.28.1"
+version = "0.29.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
+checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
+
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
+name = "governor"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b"
+dependencies = [
+ "cfg-if",
+ "dashmap",
+ "futures",
+ "futures-timer",
+ "no-std-compat",
+ "nonzero_ext",
+ "parking_lot",
+ "portable-atomic",
+ "quanta",
+ "rand 0.8.5",
+ "smallvec",
+ "spinning_top",
+]
 
 [[package]]
 name = "group"
@@ -2169,9 +2656,9 @@ dependencies = [
 
 [[package]]
 name = "h2"
-version = "0.3.24"
+version = "0.3.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
+checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
 dependencies = [
  "bytes",
  "fnv",
@@ -2187,25 +2674,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "h2"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31d030e59af851932b72ceebadf4a2b5986dba4c3b99dd2493f8273a0f151943"
-dependencies = [
- "bytes",
- "fnv",
- "futures-core",
- "futures-sink",
- "futures-util",
- "http 1.1.0",
- "indexmap",
- "slab",
- "tokio",
- "tokio-util",
- "tracing",
-]
-
-[[package]]
 name = "half"
 version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2278,9 +2746,9 @@ dependencies = [
 
 [[package]]
 name = "hickory-resolver"
-version = "0.24.0"
+version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35b8f021164e6a984c9030023544c57789c51760065cd510572fedcfb04164e8"
+checksum = "28757f23aa75c98f254cf0405e6d8c25b831b32921b050a66692427679b1f243"
 dependencies = [
  "cfg-if",
  "futures-util",
@@ -2316,6 +2784,22 @@ dependencies = [
 ]
 
 [[package]]
+name = "hmac-sha1"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b05da5b9e5d4720bfb691eebb2b9d42da3570745da71eac8a1f5bb7e59aab88"
+dependencies = [
+ "hmac",
+ "sha1",
+]
+
+[[package]]
+name = "hmac-sha256"
+version = "1.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3688e69b38018fec1557254f64c8dc2cc8ec502890182f395dbb0aa997aa5735"
+
+[[package]]
 name = "home"
 version = "0.5.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2336,6 +2820,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "hostname-validator"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f558a64ac9af88b5ba400d99b579451af0d39c6d360980045b91aac966d705e2"
+
+[[package]]
 name = "http"
 version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2405,9 +2895,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
 
 [[package]]
 name = "human-panic"
-version = "1.2.3"
+version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4f016c89920bbb30951a8405ecacbb4540db5524313b9445736e7e1855cf370"
+checksum = "a4c5d0e9120f6bca6120d142c7ede1ba376dd6bf276d69dd3dbe6cbeb7824179"
 dependencies = [
  "backtrace",
  "os_info",
@@ -2442,7 +2932,7 @@ dependencies = [
  "futures-channel",
  "futures-core",
  "futures-util",
- "h2 0.3.24",
+ "h2",
  "http 0.2.12",
  "http-body 0.4.6",
  "httparse",
@@ -2465,7 +2955,6 @@ dependencies = [
  "bytes",
  "futures-channel",
  "futures-util",
- "h2 0.4.2",
  "http 1.1.0",
  "http-body 1.0.0",
  "httparse",
@@ -2474,6 +2963,38 @@ dependencies = [
  "pin-project-lite",
  "smallvec",
  "tokio",
+ "want",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.24.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
+dependencies = [
+ "futures-util",
+ "http 0.2.12",
+ "hyper 0.14.28",
+ "rustls 0.21.11",
+ "tokio",
+ "tokio-rustls 0.24.1",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c"
+dependencies = [
+ "futures-util",
+ "http 1.1.0",
+ "hyper 1.2.0",
+ "hyper-util",
+ "rustls 0.22.4",
+ "rustls-pki-types",
+ "tokio",
+ "tokio-rustls 0.25.0",
+ "tower-service",
 ]
 
 [[package]]
@@ -2496,6 +3017,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa"
 dependencies = [
  "bytes",
+ "futures-channel",
  "futures-util",
  "http 1.1.0",
  "http-body 1.0.0",
@@ -2503,6 +3025,9 @@ dependencies = [
  "pin-project-lite",
  "socket2",
  "tokio",
+ "tower",
+ "tower-service",
+ "tracing",
 ]
 
 [[package]]
@@ -2516,7 +3041,7 @@ dependencies = [
  "iana-time-zone-haiku",
  "js-sys",
  "wasm-bindgen",
- "windows-core",
+ "windows-core 0.52.0",
 ]
 
 [[package]]
@@ -2564,25 +3089,56 @@ dependencies = [
 ]
 
 [[package]]
+name = "igd-next"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "064d90fec10d541084e7b39ead8875a5a80d9114a2b18791565253bae25f49e4"
+dependencies = [
+ "async-trait",
+ "attohttpc",
+ "bytes",
+ "futures",
+ "http 0.2.12",
+ "hyper 0.14.28",
+ "log",
+ "rand 0.8.5",
+ "tokio",
+ "url",
+ "xmltree",
+]
+
+[[package]]
 name = "image"
-version = "0.24.9"
+version = "0.25.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d"
+checksum = "fd54d660e773627692c524beaad361aca785a4f9f5730ce91f42aabe5bce3d11"
 dependencies = [
  "bytemuck",
  "byteorder",
  "color_quant",
  "gif",
- "jpeg-decoder",
+ "image-webp",
  "num-traits",
  "png",
+ "zune-core",
+ "zune-jpeg",
+]
+
+[[package]]
+name = "image-webp"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a84a25dcae3ac487bc24ef280f9e20c79c9b1a3e5e32cbed3041d1c514aa87c"
+dependencies = [
+ "byteorder",
+ "thiserror",
 ]
 
 [[package]]
 name = "imap-proto"
-version = "0.16.4"
+version = "0.16.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22e70cd66882c8cb1c9802096ba75212822153c51478dc61621e1a22f6c92361"
+checksum = "de555d9526462b6f9ece826a26fb7c67eca9a0245bd9ff84fa91972a5d5d8856"
 dependencies = [
  "nom",
 ]
@@ -2607,6 +3163,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
 name = "ipconfig"
 version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2615,7 +3180,7 @@ dependencies = [
  "socket2",
  "widestring",
  "windows-sys 0.48.0",
- "winreg",
+ "winreg 0.50.0",
 ]
 
 [[package]]
@@ -2637,7 +3202,7 @@ dependencies = [
  "bytes",
  "default-net",
  "der 0.6.1",
- "derive_more",
+ "derive_more 0.99.17",
  "dirs-next",
  "ed25519-dalek 1.0.1",
  "futures",
@@ -2648,13 +3213,13 @@ dependencies = [
  "quic-rpc",
  "quinn",
  "rand 0.7.3",
- "rcgen",
+ "rcgen 0.10.0",
  "ring 0.16.20",
- "rustls",
- "rustls-webpki",
+ "rustls 0.21.11",
+ "rustls-webpki 0.101.7",
  "serde",
  "serde-error",
- "ssh-key",
+ "ssh-key 0.5.1",
  "tempfile",
  "thiserror",
  "tokio",
@@ -2664,11 +3229,224 @@ dependencies = [
  "tracing-futures",
  "tracing-subscriber",
  "walkdir",
- "x509-parser",
+ "x509-parser 0.14.0",
  "zeroize",
 ]
 
 [[package]]
+name = "iroh-base"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1be0b442ed44d20905cf77c673169906c883e05c829e3fb303b131e925139fc"
+dependencies = [
+ "aead",
+ "anyhow",
+ "crypto_box",
+ "data-encoding",
+ "derive_more 1.0.0-beta.6",
+ "ed25519-dalek 2.1.1",
+ "getrandom 0.2.12",
+ "hex",
+ "iroh-blake3",
+ "once_cell",
+ "postcard",
+ "rand 0.8.5",
+ "rand_core 0.6.4",
+ "serde",
+ "serde-error",
+ "ssh-key 0.6.6",
+ "thiserror",
+ "ttl_cache",
+ "url",
+ "zeroize",
+]
+
+[[package]]
+name = "iroh-blake3"
+version = "1.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "efbba31f40a650f58fa28dd585a8ca76d8ae3ba63aacab4c8269004a0c803930"
+dependencies = [
+ "arrayref",
+ "arrayvec",
+ "cc",
+ "cfg-if",
+ "constant_time_eq",
+]
+
+[[package]]
+name = "iroh-gossip"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "857aa77a0b29283edf99224bd12cd739684c5873e639b85adb38b8d1d777162d"
+dependencies = [
+ "anyhow",
+ "bytes",
+ "derive_more 1.0.0-beta.6",
+ "ed25519-dalek 2.1.1",
+ "futures-lite 2.3.0",
+ "genawaiter",
+ "indexmap",
+ "iroh-base",
+ "iroh-blake3",
+ "iroh-metrics",
+ "iroh-net",
+ "postcard",
+ "rand 0.8.5",
+ "rand_core 0.6.4",
+ "serde",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "iroh-metrics"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd54b9cf342b2618efc8d3ff6cdcd083fa5a2cf6cc78bb473bd32e228eabb40e"
+dependencies = [
+ "anyhow",
+ "erased_set",
+ "http-body-util",
+ "hyper 1.2.0",
+ "hyper-util",
+ "once_cell",
+ "prometheus-client",
+ "reqwest 0.12.4",
+ "serde",
+ "struct_iterable",
+ "time 0.3.34",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "iroh-net"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4a744000e6c5704479eeb4751eb23b9b8e7e56a0fc484beb8831694fc93e378f"
+dependencies = [
+ "aead",
+ "anyhow",
+ "axum",
+ "backoff",
+ "base64 0.22.1",
+ "bytes",
+ "der 0.7.8",
+ "derive_more 1.0.0-beta.6",
+ "duct",
+ "flume",
+ "futures-buffered",
+ "futures-concurrency",
+ "futures-lite 2.3.0",
+ "futures-sink",
+ "futures-util",
+ "governor",
+ "hex",
+ "hickory-proto",
+ "hickory-resolver",
+ "hostname",
+ "http 1.1.0",
+ "http-body-util",
+ "hyper 1.2.0",
+ "hyper-util",
+ "igd-next",
+ "iroh-base",
+ "iroh-metrics",
+ "iroh-quinn",
+ "iroh-quinn-proto",
+ "iroh-quinn-udp",
+ "libc",
+ "netdev",
+ "netlink-packet-core 0.7.0",
+ "netlink-packet-route 0.17.1",
+ "netlink-sys",
+ "num_enum",
+ "once_cell",
+ "parking_lot",
+ "pin-project",
+ "pkarr",
+ "postcard",
+ "rand 0.8.5",
+ "rand_core 0.6.4",
+ "rcgen 0.12.1",
+ "reqwest 0.12.4",
+ "ring 0.17.8",
+ "rtnetlink",
+ "rustls 0.21.11",
+ "rustls-webpki 0.101.7",
+ "serde",
+ "smallvec",
+ "socket2",
+ "strum",
+ "stun-rs",
+ "surge-ping",
+ "thiserror",
+ "time 0.3.34",
+ "tokio",
+ "tokio-rustls 0.24.1",
+ "tokio-rustls-acme",
+ "tokio-util",
+ "tracing",
+ "url",
+ "watchable",
+ "webpki-roots 0.25.4",
+ "windows 0.51.1",
+ "wmi",
+ "x509-parser 0.15.1",
+ "z32",
+]
+
+[[package]]
+name = "iroh-quinn"
+version = "0.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "906875956feb75d3d41d708ddaffeb11fdb10cd05f23efbcb17600037e411779"
+dependencies = [
+ "bytes",
+ "iroh-quinn-proto",
+ "iroh-quinn-udp",
+ "pin-project-lite",
+ "rustc-hash",
+ "rustls 0.21.11",
+ "thiserror",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "iroh-quinn-proto"
+version = "0.10.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6bf92478805e67f2320459285496e1137edf5171411001a0d4d85f9bbafb792"
+dependencies = [
+ "bytes",
+ "rand 0.8.5",
+ "ring 0.17.8",
+ "rustc-hash",
+ "rustls 0.21.11",
+ "rustls-native-certs",
+ "slab",
+ "thiserror",
+ "tinyvec",
+ "tracing",
+]
+
+[[package]]
+name = "iroh-quinn-udp"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "edc7915b3a31f08ee0bc02f73f4d61a5d5be146a1081ef7f70622a11627fd314"
+dependencies = [
+ "bytes",
+ "libc",
+ "socket2",
+ "tracing",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "is-terminal"
 version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2701,12 +3479,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
-name = "jpeg-decoder"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0"
-
-[[package]]
 name = "js-sys"
 version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2782,9 +3554,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.153"
+version = "0.2.155"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
 
 [[package]]
 name = "libm"
@@ -2854,9 +3626,9 @@ dependencies = [
 
 [[package]]
 name = "mailparse"
-version = "0.14.1"
+version = "0.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d096594926cab442e054e047eb8c1402f7d5b2272573b97ba68aa40629f9757"
+checksum = "3da03d5980411a724e8aaf7b61a7b5e386ec55a7fb49ee3d0ff79efc7e5e7c7e"
 dependencies = [
  "charset",
  "data-encoding",
@@ -2895,6 +3667,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "md5"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
+
+[[package]]
 name = "memalloc"
 version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2973,6 +3751,23 @@ dependencies = [
 ]
 
 [[package]]
+name = "netdev"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb353f5a5a852d5cc779c1c80bec0bd14a696ef832f3a761cb10091802c37109"
+dependencies = [
+ "dlopen2 0.5.0",
+ "libc",
+ "memalloc",
+ "netlink-packet-core 0.7.0",
+ "netlink-packet-route 0.17.1",
+ "netlink-sys",
+ "once_cell",
+ "system-configuration 0.6.0",
+ "windows 0.54.0",
+]
+
+[[package]]
 name = "netlink-packet-core"
 version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2985,6 +3780,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "netlink-packet-core"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72724faf704479d67b388da142b186f916188505e7e0b26719019c525882eda4"
+dependencies = [
+ "anyhow",
+ "byteorder",
+ "netlink-packet-utils",
+]
+
+[[package]]
 name = "netlink-packet-route"
 version = "0.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2994,7 +3800,21 @@ dependencies = [
  "bitflags 1.3.2",
  "byteorder",
  "libc",
- "netlink-packet-core",
+ "netlink-packet-core 0.5.0",
+ "netlink-packet-utils",
+]
+
+[[package]]
+name = "netlink-packet-route"
+version = "0.17.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "053998cea5a306971f88580d0829e90f270f940befd7cf928da179d4187a5a66"
+dependencies = [
+ "anyhow",
+ "bitflags 1.3.2",
+ "byteorder",
+ "libc",
+ "netlink-packet-core 0.7.0",
  "netlink-packet-utils",
 ]
 
@@ -3011,14 +3831,31 @@ dependencies = [
 ]
 
 [[package]]
+name = "netlink-proto"
+version = "0.11.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b33524dc0968bfad349684447bfce6db937a9ac3332a1fe60c0c5a5ce63f21"
+dependencies = [
+ "bytes",
+ "futures",
+ "log",
+ "netlink-packet-core 0.7.0",
+ "netlink-sys",
+ "thiserror",
+ "tokio",
+]
+
+[[package]]
 name = "netlink-sys"
 version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411"
 dependencies = [
  "bytes",
+ "futures",
  "libc",
  "log",
+ "tokio",
 ]
 
 [[package]]
@@ -3032,16 +3869,40 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.27.1"
+version = "0.26.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
+dependencies = [
+ "bitflags 1.3.2",
+ "cfg-if",
+ "libc",
+]
+
+[[package]]
+name = "nix"
+version = "0.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
 dependencies = [
  "bitflags 2.4.2",
  "cfg-if",
+ "cfg_aliases",
  "libc",
 ]
 
 [[package]]
+name = "no-std-compat"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c"
+
+[[package]]
+name = "no-std-net"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43794a0ace135be66a25d3ae77d41b91615fb68ae937f904090203e81f755b65"
+
+[[package]]
 name = "nom"
 version = "7.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3052,6 +3913,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "nonzero_ext"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21"
+
+[[package]]
 name = "ntapi"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3113,7 +3980,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -3138,9 +4005,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.18"
+version = "0.2.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
 dependencies = [
  "autocfg",
  "libm",
@@ -3174,14 +4041,14 @@ dependencies = [
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "object"
-version = "0.32.2"
+version = "0.35.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
+checksum = "b8ec7ab813848ba4522158d5517a6093db1ded27575b070f4177b8d12b41db5e"
 dependencies = [
  "memchr",
 ]
@@ -3192,7 +4059,16 @@ version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff"
 dependencies = [
- "asn1-rs",
+ "asn1-rs 0.5.2",
+]
+
+[[package]]
+name = "oid-registry"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c958dd45046245b9c3c2547369bb634eb461670b2e7e0de552905801a648d1d"
+dependencies = [
+ "asn1-rs 0.6.1",
 ]
 
 [[package]]
@@ -3215,9 +4091,9 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
 
 [[package]]
 name = "openssl"
-version = "0.10.63"
+version = "0.10.64"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8"
+checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
 dependencies = [
  "bitflags 2.4.2",
  "cfg-if",
@@ -3236,7 +4112,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -3247,18 +4123,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-src"
-version = "300.1.6+3.1.4"
+version = "300.3.0+3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "439fac53e092cd7442a3660c85dde4643ab3b5bd39040912388dcdabf6b88085"
+checksum = "eba8804a1c5765b18c4b3f907e6897ebabeedebc9830e1a0046c4a4cf44663e1"
 dependencies = [
  "cc",
 ]
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.99"
+version = "0.9.102"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae"
+checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2"
 dependencies = [
  "cc",
  "libc",
@@ -3285,6 +4161,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "os_pipe"
+version = "1.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57119c3b893986491ec9aa85056780d3a0f3cf4da7cc09dd3650dbd6c6738fb9"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "overload"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3337,6 +4223,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "p521"
+version = "0.13.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fc9e2161f1f215afdfce23677034ae137bbd45016a880c2eb3ba8eb95f085b2"
+dependencies = [
+ "base16ct 0.2.0",
+ "ecdsa 0.16.9",
+ "elliptic-curve 0.13.8",
+ "primeorder",
+ "rand_core 0.6.4",
+ "sha2 0.10.8",
+]
+
+[[package]]
 name = "parking"
 version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3344,9 +4244,9 @@ checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
 
 [[package]]
 name = "parking_lot"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
 dependencies = [
  "lock_api",
  "parking_lot_core",
@@ -3381,6 +4281,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "pem"
+version = "3.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae"
+dependencies = [
+ "base64 0.22.1",
+ "serde",
+]
+
+[[package]]
 name = "pem-rfc7468"
 version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3405,6 +4315,51 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
+name = "pest"
+version = "2.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8"
+dependencies = [
+ "memchr",
+ "thiserror",
+ "ucd-trie",
+]
+
+[[package]]
+name = "pest_derive"
+version = "2.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459"
+dependencies = [
+ "pest",
+ "pest_generator",
+]
+
+[[package]]
+name = "pest_generator"
+version = "2.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687"
+dependencies = [
+ "pest",
+ "pest_meta",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "pest_meta"
+version = "2.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd"
+dependencies = [
+ "once_cell",
+ "pest",
+ "sha2 0.10.8",
+]
+
+[[package]]
 name = "pgp"
 version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3462,22 +4417,22 @@ dependencies = [
 
 [[package]]
 name = "pin-project"
-version = "1.1.4"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0"
+checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.1.4"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690"
+checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -3493,6 +4448,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
+name = "pkarr"
+version = "1.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "242ae92dfb9d2ba3aaa9caf4723e72043bc50729ad05a763771771ba03196ffb"
+dependencies = [
+ "bytes",
+ "ed25519-dalek 2.1.1",
+ "rand 0.8.5",
+ "reqwest 0.11.27",
+ "self_cell",
+ "simple-dns",
+ "thiserror",
+ "url",
+ "z32",
+]
+
+[[package]]
 name = "pkcs1"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3576,6 +4548,48 @@ dependencies = [
 ]
 
 [[package]]
+name = "pnet_base"
+version = "0.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe4cf6fb3ab38b68d01ab2aea03ed3d1132b4868fa4e06285f29f16da01c5f4c"
+dependencies = [
+ "no-std-net",
+]
+
+[[package]]
+name = "pnet_macros"
+version = "0.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "688b17499eee04a0408aca0aa5cba5fc86401d7216de8a63fdf7a4c227871804"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "regex",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "pnet_macros_support"
+version = "0.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eea925b72f4bd37f8eab0f221bbe4c78b63498350c983ffa9dd4bcde7e030f56"
+dependencies = [
+ "pnet_base",
+]
+
+[[package]]
+name = "pnet_packet"
+version = "0.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9a005825396b7fe7a38a8e288dbc342d5034dac80c15212436424fef8ea90ba"
+dependencies = [
+ "glob",
+ "pnet_base",
+ "pnet_macros",
+ "pnet_macros_support",
+]
+
+[[package]]
 name = "png"
 version = "0.17.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3589,6 +4603,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "poly1305"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf"
+dependencies = [
+ "cpufeatures",
+ "opaque-debug",
+ "universal-hash",
+]
+
+[[package]]
 name = "portable-atomic"
 version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3631,23 +4656,47 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[package]]
-name = "pretty_assertions"
-version = "1.4.0"
+name = "precis-core"
+version = "0.1.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66"
+checksum = "d73e9dd26361c32e7cd13d1032bb01c4e26a23287274e8a4e2f228cf2c9ff77b"
 dependencies = [
- "diff",
- "yansi",
+ "precis-tools",
+ "ucd-parse",
+ "unicode-normalization",
 ]
 
 [[package]]
-name = "pretty_env_logger"
-version = "0.5.0"
+name = "precis-profiles"
+version = "0.1.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "865724d4dbe39d9f3dd3b52b88d859d66bcb2d6a0acfd5ea68a65fb66d4bdc1c"
+checksum = "bde4bd6624c60cb0abe2bea1dbdbb9085f629a853861e64df4abb099f8076ad4"
 dependencies = [
- "env_logger",
- "log",
+ "lazy_static",
+ "precis-core",
+ "precis-tools",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "precis-tools"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d07ecadec70b0f560f09abf815ae0ee1a940d38d2354c938ba7229ac7c9f5f52"
+dependencies = [
+ "lazy_static",
+ "regex",
+ "ucd-parse",
+]
+
+[[package]]
+name = "pretty_assertions"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66"
+dependencies = [
+ "diff",
+ "yansi",
 ]
 
 [[package]]
@@ -3694,14 +4743,37 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.78"
+version = "1.0.85"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
+name = "prometheus-client"
+version = "0.22.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1ca959da22a332509f2a73ae9e5f23f9dcfc31fd3a54d71f159495bd5909baa"
+dependencies = [
+ "dtoa",
+ "itoa",
+ "parking_lot",
+ "prometheus-client-derive-encode",
+]
+
+[[package]]
+name = "prometheus-client-derive-encode"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
 name = "proptest"
 version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3724,6 +4796,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4339fc7a1021c9c1621d87f5e3505f2805c8c105420ba2f2a4df86814590c142"
 
 [[package]]
+name = "quanta"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e5167a477619228a0b284fac2674e3c388cba90631d7b7de620e6f1fcd08da5"
+dependencies = [
+ "crossbeam-utils",
+ "libc",
+ "once_cell",
+ "raw-cpuid",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+ "web-sys",
+ "winapi",
+]
+
+[[package]]
 name = "quic-rpc"
 version = "0.6.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3768,7 +4855,7 @@ dependencies = [
  "quinn-proto",
  "quinn-udp",
  "rustc-hash",
- "rustls",
+ "rustls 0.21.11",
  "thiserror",
  "tokio",
  "tracing",
@@ -3784,7 +4871,7 @@ dependencies = [
  "rand 0.8.5",
  "ring 0.16.20",
  "rustc-hash",
- "rustls",
+ "rustls 0.21.11",
  "rustls-native-certs",
  "slab",
  "thiserror",
@@ -3807,20 +4894,36 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "1.0.35"
+version = "1.0.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
+name = "quoted-string-parser"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0dc75379cdb451d001f1cb667a9f74e8b355e9df84cc5193513cbe62b96fc5e9"
+dependencies = [
+ "pest",
+ "pest_derive",
+]
+
+[[package]]
 name = "quoted_printable"
 version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "79ec282e887b434b68c18fe5c121d38e72a5cf35119b59e54ec5b992ea9c8eb0"
 
 [[package]]
+name = "radium"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
+
+[[package]]
 name = "radix_trie"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3915,6 +5018,15 @@ name = "ratelimit"
 version = "1.0.0"
 
 [[package]]
+name = "raw-cpuid"
+version = "11.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e29830cbb1290e404f24c73af91c5d8d631ce7e128691e9477556b540cd01ecd"
+dependencies = [
+ "bitflags 2.4.2",
+]
+
+[[package]]
 name = "rayon"
 version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3940,13 +5052,25 @@ version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b"
 dependencies = [
- "pem",
+ "pem 1.1.1",
  "ring 0.16.20",
  "time 0.3.34",
  "yasna",
 ]
 
 [[package]]
+name = "rcgen"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48406db8ac1f3cbc7dcdb56ec355343817958a356ff430259bb07baf7607e1e1"
+dependencies = [
+ "pem 3.0.4",
+ "ring 0.17.8",
+ "time 0.3.34",
+ "yasna",
+]
+
+[[package]]
 name = "redox_syscall"
 version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3977,9 +5101,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.10.3"
+version = "1.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -4008,6 +5132,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "regex-lite"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30b661b2f27137bdbc16f00eda72866a92bb28af1753ffbd56744fb6e2e9cd8e"
+
+[[package]]
 name = "regex-syntax"
 version = "0.6.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4021,19 +5151,20 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "reqwest"
-version = "0.11.24"
+version = "0.11.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251"
+checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62"
 dependencies = [
  "base64 0.21.7",
  "bytes",
  "encoding_rs",
  "futures-core",
  "futures-util",
- "h2 0.3.24",
+ "h2",
  "http 0.2.12",
  "http-body 0.4.6",
  "hyper 0.14.28",
+ "hyper-rustls 0.24.2",
  "hyper-tls",
  "ipnet",
  "js-sys",
@@ -4043,20 +5174,64 @@ dependencies = [
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
- "rustls-pemfile",
+ "rustls 0.21.11",
+ "rustls-pemfile 1.0.4",
  "serde",
  "serde_json",
  "serde_urlencoded",
- "sync_wrapper",
- "system-configuration",
+ "sync_wrapper 0.1.2",
+ "system-configuration 0.5.1",
  "tokio",
  "tokio-native-tls",
+ "tokio-rustls 0.24.1",
  "tower-service",
  "url",
  "wasm-bindgen",
  "wasm-bindgen-futures",
  "web-sys",
- "winreg",
+ "webpki-roots 0.25.4",
+ "winreg 0.50.0",
+]
+
+[[package]]
+name = "reqwest"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10"
+dependencies = [
+ "base64 0.22.1",
+ "bytes",
+ "futures-core",
+ "futures-util",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "http-body-util",
+ "hyper 1.2.0",
+ "hyper-rustls 0.26.0",
+ "hyper-util",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls 0.22.4",
+ "rustls-pemfile 2.1.2",
+ "rustls-pki-types",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "sync_wrapper 0.1.2",
+ "tokio",
+ "tokio-rustls 0.25.0",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "webpki-roots 0.26.1",
+ "winreg 0.52.0",
 ]
 
 [[package]]
@@ -4164,6 +5339,7 @@ dependencies = [
  "pkcs1 0.7.5",
  "pkcs8 0.10.2",
  "rand_core 0.6.4",
+ "sha2 0.10.8",
  "signature 2.2.0",
  "spki 0.7.3",
  "subtle",
@@ -4171,6 +5347,24 @@ dependencies = [
 ]
 
 [[package]]
+name = "rtnetlink"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a552eb82d19f38c3beed3f786bd23aa434ceb9ac43ab44419ca6d67a7e186c0"
+dependencies = [
+ "futures",
+ "log",
+ "netlink-packet-core 0.7.0",
+ "netlink-packet-route 0.17.1",
+ "netlink-packet-utils",
+ "netlink-proto",
+ "netlink-sys",
+ "nix 0.26.4",
+ "thiserror",
+ "tokio",
+]
+
+[[package]]
 name = "rusqlite"
 version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4192,9 +5386,9 @@ checksum = "efe2374f2385cdd8755a446f80b2a646de603c9d8539ca38734879b5c71e378b"
 
 [[package]]
 name = "rustc-demangle"
-version = "0.1.23"
+version = "0.1.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
 
 [[package]]
 name = "rustc-hash"
@@ -4235,23 +5429,38 @@ dependencies = [
 
 [[package]]
 name = "rustls"
-version = "0.21.10"
+version = "0.21.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
+checksum = "7fecbfb7b1444f477b345853b1fce097a2c6fb637b2bfb87e6bc5db0f043fae4"
 dependencies = [
+ "log",
  "ring 0.17.8",
- "rustls-webpki",
+ "rustls-webpki 0.101.7",
  "sct",
 ]
 
 [[package]]
+name = "rustls"
+version = "0.22.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432"
+dependencies = [
+ "log",
+ "ring 0.17.8",
+ "rustls-pki-types",
+ "rustls-webpki 0.102.4",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
 name = "rustls-native-certs"
 version = "0.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00"
 dependencies = [
  "openssl-probe",
- "rustls-pemfile",
+ "rustls-pemfile 1.0.4",
  "schannel",
  "security-framework",
 ]
@@ -4266,6 +5475,22 @@ dependencies = [
 ]
 
 [[package]]
+name = "rustls-pemfile"
+version = "2.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d"
+dependencies = [
+ "base64 0.22.1",
+ "rustls-pki-types",
+]
+
+[[package]]
+name = "rustls-pki-types"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d"
+
+[[package]]
 name = "rustls-webpki"
 version = "0.101.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4276,6 +5501,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "rustls-webpki"
+version = "0.102.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff448f7e92e913c4b7d4c6d8e4540a1724b319b4152b8aef6d4cf8339712b33e"
+dependencies = [
+ "ring 0.17.8",
+ "rustls-pki-types",
+ "untrusted 0.9.0",
+]
+
+[[package]]
 name = "rustversion"
 version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4283,9 +5519,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "rustyline"
-version = "13.0.0"
+version = "14.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02a2d683a4ac90aeef5b1013933f6d977bd37d51ff3f4dad829d4931a7e6be86"
+checksum = "7803e8936da37efd9b6d4478277f4b2b9bb5cdb37a113e8d63222e58da647e63"
 dependencies = [
  "bitflags 2.4.2",
  "cfg-if",
@@ -4295,12 +5531,12 @@ dependencies = [
  "libc",
  "log",
  "memchr",
- "nix",
+ "nix 0.28.0",
  "radix_trie",
  "unicode-segmentation",
  "unicode-width",
  "utf8parse",
- "winapi",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -4310,6 +5546,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
+name = "salsa20"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213"
+dependencies = [
+ "cipher",
+]
+
+[[package]]
 name = "same-file"
 version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4339,9 +5584,9 @@ dependencies = [
 
 [[package]]
 name = "schemars"
-version = "0.8.16"
+version = "0.8.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29"
+checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92"
 dependencies = [
  "dyn-clone",
  "schemars_derive",
@@ -4351,14 +5596,14 @@ dependencies = [
 
 [[package]]
 name = "schemars_derive"
-version = "0.8.16"
+version = "0.8.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967"
+checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e"
 dependencies = [
  "proc-macro2",
  "quote",
  "serde_derive_internals",
- "syn 1.0.109",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -4445,9 +5690,9 @@ dependencies = [
 
 [[package]]
 name = "serde"
-version = "1.0.197"
+version = "1.0.203"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
+checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
 dependencies = [
  "serde_derive",
 ]
@@ -4472,31 +5717,31 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.197"
+version = "1.0.203"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
+checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "serde_derive_internals"
-version = "0.26.0"
+version = "0.29.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c"
+checksum = "330f01ce65a3a5fe59a60c82f3c9a024b573b8a6e875bd233fe5f934e71d54e3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.114"
+version = "1.0.117"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
+checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
 dependencies = [
  "itoa",
  "ryu",
@@ -4515,9 +5760,9 @@ dependencies = [
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.5"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0"
 dependencies = [
  "serde",
 ]
@@ -4535,6 +5780,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "serdect"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177"
+dependencies = [
+ "base16ct 0.2.0",
+ "serde",
+]
+
+[[package]]
 name = "sha-1"
 version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4600,6 +5855,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "shared_child"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
 name = "signal-hook-registry"
 version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4635,6 +5900,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
 
 [[package]]
+name = "simple-dns"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01607fe2e61894468c6dc0b26103abb073fb08b79a3d9e4b6d76a1a341549958"
+dependencies = [
+ "bitflags 2.4.2",
+]
+
+[[package]]
 name = "slab"
 version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4645,9 +5919,9 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.13.1"
+version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "smawk"
@@ -4681,6 +5955,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "spinning_top"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300"
+dependencies = [
+ "lock_api",
+]
+
+[[package]]
 name = "spki"
 version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4701,6 +5984,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "ssh-cipher"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "caac132742f0d33c3af65bfcde7f6aa8f62f0e991d80db99149eb9d44708784f"
+dependencies = [
+ "cipher",
+ "ssh-encoding 0.2.0",
+]
+
+[[package]]
 name = "ssh-encoding"
 version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4712,6 +6005,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "ssh-encoding"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb9242b9ef4108a78e8cd1a2c98e193ef372437f8c22be363075233321dd4a15"
+dependencies = [
+ "base64ct",
+ "pem-rfc7468 0.7.0",
+ "sha2 0.10.8",
+]
+
+[[package]]
 name = "ssh-key"
 version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4725,7 +6029,28 @@ dependencies = [
  "sec1 0.3.0",
  "sha2 0.10.8",
  "signature 1.6.4",
- "ssh-encoding",
+ "ssh-encoding 0.1.0",
+ "zeroize",
+]
+
+[[package]]
+name = "ssh-key"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca9b366a80cf18bb6406f4cf4d10aebfb46140a8c0c33f666a144c5c76ecbafc"
+dependencies = [
+ "ed25519-dalek 2.1.1",
+ "p256 0.13.2",
+ "p384 0.13.0",
+ "p521",
+ "rand_core 0.6.4",
+ "rsa 0.9.6",
+ "sec1 0.7.3",
+ "sha2 0.10.8",
+ "signature 2.2.0",
+ "ssh-cipher",
+ "ssh-encoding 0.2.0",
+ "subtle",
  "zeroize",
 ]
 
@@ -4748,22 +6073,78 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
+name = "struct_iterable"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "849a064c6470a650b72e41fa6c057879b68f804d113af92900f27574828e7712"
+dependencies = [
+ "struct_iterable_derive",
+ "struct_iterable_internal",
+]
+
+[[package]]
+name = "struct_iterable_derive"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8bb939ce88a43ea4e9d012f2f6b4cc789deb2db9d47bad697952a85d6978662c"
+dependencies = [
+ "erased-serde",
+ "proc-macro2",
+ "quote",
+ "struct_iterable_internal",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "struct_iterable_internal"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e9426b2a0c03e6cc2ea8dbc0168dbbf943f88755e409fb91bcb8f6a268305f4a"
+
+[[package]]
 name = "strum"
-version = "0.26.1"
+version = "0.26.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "723b93e8addf9aa965ebe2d11da6d7540fa2283fcea14b3371ff055f7ba13f5f"
+checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29"
+dependencies = [
+ "strum_macros",
+]
 
 [[package]]
 name = "strum_macros"
-version = "0.26.1"
+version = "0.26.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a3417fc93d76740d974a01654a09777cb500428cc874ca9f45edfe0c4d4cd18"
+checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.52",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "stun-rs"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0adebf9fb8fba5c39ee34092b0383f247e4d1255b98fcffec94b4b797b85b677"
+dependencies = [
+ "base64 0.22.1",
+ "bounded-integer",
+ "byteorder",
+ "crc",
+ "enumflags2",
+ "fallible-iterator",
+ "hmac-sha1",
+ "hmac-sha256",
+ "hostname-validator",
+ "lazy_static",
+ "md5",
+ "paste",
+ "precis-core",
+ "precis-profiles",
+ "quoted-string-parser",
+ "rand 0.8.5",
 ]
 
 [[package]]
@@ -4773,6 +6154,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
 
 [[package]]
+name = "surge-ping"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "efbf95ce4c7c5b311d2ce3f088af2b93edef0f09727fa50fbe03c7a979afce77"
+dependencies = [
+ "hex",
+ "parking_lot",
+ "pnet_packet",
+ "rand 0.8.5",
+ "socket2",
+ "thiserror",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
 name = "syn"
 version = "1.0.109"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4785,9 +6182,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.52"
+version = "2.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
+checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4801,6 +6198,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
 
 [[package]]
+name = "sync_wrapper"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "384595c11a4e2969895cad5a8c4029115f5ab956a9e5ef4de79d11a426e5f20c"
+
+[[package]]
 name = "synstructure"
 version = "0.12.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4813,6 +6216,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "synstructure"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
 name = "sysinfo"
 version = "0.26.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4834,7 +6248,18 @@ checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
 dependencies = [
  "bitflags 1.3.2",
  "core-foundation",
- "system-configuration-sys",
+ "system-configuration-sys 0.5.0",
+]
+
+[[package]]
+name = "system-configuration"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "658bc6ee10a9b4fcf576e9b0819d95ec16f4d2c02d39fd83ac1c8789785c4a42"
+dependencies = [
+ "bitflags 2.4.2",
+ "core-foundation",
+ "system-configuration-sys 0.6.0",
 ]
 
 [[package]]
@@ -4848,33 +6273,40 @@ dependencies = [
 ]
 
 [[package]]
+name = "system-configuration-sys"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
 name = "tagger"
 version = "4.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "094c9f64d6de9a8506b1e49b63a29333b37ed9e821ee04be694d431b3264c3c5"
 
 [[package]]
+name = "tap"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
+
+[[package]]
 name = "tempfile"
 version = "3.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if",
- "fastrand",
+ "fastrand 2.0.1",
  "rustix",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
-name = "termcolor"
-version = "1.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
 name = "testdir"
 version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4901,22 +6333,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.57"
+version = "1.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
+checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.57"
+version = "1.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
+checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -4998,9 +6430,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.36.0"
+version = "1.38.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
+checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a"
 dependencies = [
  "backtrace",
  "bytes",
@@ -5027,13 +6459,13 @@ dependencies = [
 
 [[package]]
 name = "tokio-macros"
-version = "2.2.0"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
+checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -5047,6 +6479,55 @@ dependencies = [
 ]
 
 [[package]]
+name = "tokio-rustls"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
+dependencies = [
+ "rustls 0.21.11",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
+dependencies = [
+ "rustls 0.22.4",
+ "rustls-pki-types",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-rustls-acme"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ebc06d846f8367f24c3a8882328707d1a5e507ef4f40943723ddbe2c17b9f24"
+dependencies = [
+ "async-trait",
+ "base64 0.21.7",
+ "chrono",
+ "futures",
+ "log",
+ "num-bigint",
+ "pem 3.0.4",
+ "proc-macro2",
+ "rcgen 0.12.1",
+ "reqwest 0.11.27",
+ "ring 0.17.8",
+ "rustls 0.21.11",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "tokio",
+ "tokio-rustls 0.24.1",
+ "url",
+ "webpki-roots 0.25.4",
+ "x509-parser 0.16.0",
+]
+
+[[package]]
 name = "tokio-serde"
 version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5063,9 +6544,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-stream"
-version = "0.1.14"
+version = "0.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"
+checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af"
 dependencies = [
  "futures-core",
  "pin-project-lite",
@@ -5101,35 +6582,34 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.7.10"
+version = "0.7.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
+checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1"
 dependencies = [
  "bytes",
  "futures-core",
  "futures-sink",
  "pin-project-lite",
  "tokio",
- "tracing",
 ]
 
 [[package]]
 name = "toml"
-version = "0.8.10"
+version = "0.8.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
+checksum = "a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.22.6",
+ "toml_edit 0.22.13",
 ]
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.5"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf"
 dependencies = [
  "serde",
 ]
@@ -5147,9 +6627,9 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.22.6"
+version = "0.22.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6"
+checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c"
 dependencies = [
  "indexmap",
  "serde",
@@ -5206,7 +6686,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -5265,6 +6745,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
 
 [[package]]
+name = "ttl_cache"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4189890526f0168710b6ee65ceaedf1460c48a14318ceec933cb26baa492096a"
+dependencies = [
+ "linked-hash-map",
+]
+
+[[package]]
 name = "tungstenite"
 version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5323,6 +6812,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "ucd-parse"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06ff81122fcbf4df4c1660b15f7e3336058e7aec14437c9f85c6b31a0f279b9"
+dependencies = [
+ "regex-lite",
+]
+
+[[package]]
+name = "ucd-trie"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
+
+[[package]]
 name = "unarray"
 version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5374,6 +6878,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
 
 [[package]]
+name = "universal-hash"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
+dependencies = [
+ "crypto-common",
+ "subtle",
+]
+
+[[package]]
 name = "untrusted"
 version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5394,6 +6908,7 @@ dependencies = [
  "form_urlencoded",
  "idna 0.5.0",
  "percent-encoding",
+ "serde",
 ]
 
 [[package]]
@@ -5410,9 +6925,9 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
 name = "uuid"
-version = "1.7.0"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
+checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
 dependencies = [
  "getrandom 0.2.12",
  "serde",
@@ -5437,6 +6952,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[package]]
+name = "waker-fn"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7"
+
+[[package]]
 name = "walkdir"
 version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5500,7 +7021,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
  "wasm-bindgen-shared",
 ]
 
@@ -5534,7 +7055,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -5546,6 +7067,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
+name = "watchable"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45b42a2f611916b5965120a9cde2b60f2db4454826dd9ad5e6f47c24a5b3b259"
+dependencies = [
+ "event-listener 4.0.3",
+ "futures-util",
+ "parking_lot",
+ "thiserror",
+]
+
+[[package]]
 name = "web-sys"
 version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5556,6 +7089,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "webpki-roots"
+version = "0.25.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
+
+[[package]]
+name = "webpki-roots"
+version = "0.26.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009"
+dependencies = [
+ "rustls-pki-types",
+]
+
+[[package]]
 name = "weezl"
 version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5623,12 +7171,94 @@ dependencies = [
 ]
 
 [[package]]
+name = "windows"
+version = "0.51.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9"
+dependencies = [
+ "windows-core 0.51.1",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
+dependencies = [
+ "windows-core 0.52.0",
+ "windows-implement",
+ "windows-interface",
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "windows"
+version = "0.54.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49"
+dependencies = [
+ "windows-core 0.54.0",
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.51.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
 name = "windows-core"
 version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.54.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65"
+dependencies = [
+ "windows-result",
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "windows-implement"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12168c33176773b86799be25e2a2ba07c7aab9968b37541f1094dbd7a60c8946"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "windows-interface"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d8dc32e0095a7eeccebd0e3f09e9509365ecb3fc6ac4d6f5f14a3f6392942d1"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "windows-result"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "749f0da9cc72d82e600d8d2e44cadd0b9eedb9038f71a1c58556ac1c5791813b"
+dependencies = [
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -5646,7 +7276,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -5666,17 +7296,18 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.4",
- "windows_aarch64_msvc 0.52.4",
- "windows_i686_gnu 0.52.4",
- "windows_i686_msvc 0.52.4",
- "windows_x86_64_gnu 0.52.4",
- "windows_x86_64_gnullvm 0.52.4",
- "windows_x86_64_msvc 0.52.4",
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
 ]
 
 [[package]]
@@ -5687,9 +7318,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -5705,9 +7336,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -5723,9 +7354,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -5741,9 +7378,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -5759,9 +7396,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -5771,9 +7408,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -5789,9 +7426,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
 
 [[package]]
 name = "winnow"
@@ -5822,6 +7459,39 @@ dependencies = [
 ]
 
 [[package]]
+name = "winreg"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "wmi"
+version = "0.13.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc2f0a4062ca522aad4705a2948fd4061b3857537990202a8ddd5af21607f79a"
+dependencies = [
+ "chrono",
+ "futures",
+ "log",
+ "serde",
+ "thiserror",
+ "windows 0.52.0",
+]
+
+[[package]]
+name = "wyz"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
+dependencies = [
+ "tap",
+]
+
+[[package]]
 name = "x25519-dalek"
 version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5839,13 +7509,47 @@ version = "0.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8"
 dependencies = [
- "asn1-rs",
+ "asn1-rs 0.5.2",
  "base64 0.13.1",
  "data-encoding",
- "der-parser",
+ "der-parser 8.2.0",
+ "lazy_static",
+ "nom",
+ "oid-registry 0.6.1",
+ "rusticata-macros",
+ "thiserror",
+ "time 0.3.34",
+]
+
+[[package]]
+name = "x509-parser"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7069fba5b66b9193bd2c5d3d4ff12b839118f6bcbef5328efafafb5395cf63da"
+dependencies = [
+ "asn1-rs 0.5.2",
+ "data-encoding",
+ "der-parser 8.2.0",
  "lazy_static",
  "nom",
- "oid-registry",
+ "oid-registry 0.6.1",
+ "rusticata-macros",
+ "thiserror",
+ "time 0.3.34",
+]
+
+[[package]]
+name = "x509-parser"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fcbc162f30700d6f3f82a24bf7cc62ffe7caea42c0b2cba8bf7f3ae50cf51f69"
+dependencies = [
+ "asn1-rs 0.6.1",
+ "data-encoding",
+ "der-parser 9.0.0",
+ "lazy_static",
+ "nom",
+ "oid-registry 0.7.0",
  "rusticata-macros",
  "thiserror",
  "time 0.3.34",
@@ -5863,6 +7567,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "xml-rs"
+version = "0.8.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193"
+
+[[package]]
+name = "xmltree"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7d8a75eaf6557bb84a65ace8609883db44a29951042ada9b393151532e41fcb"
+dependencies = [
+ "xml-rs",
+]
+
+[[package]]
 name = "yansi"
 version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5914,6 +7633,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "z32"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "edb37266251c28b03d08162174a91c3a092e3bd4f476f8205ee1c507b78b7bdc"
+
+[[package]]
 name = "zerocopy"
 version = "0.7.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5930,7 +7655,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -5950,5 +7675,20 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "zune-core"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a"
+
+[[package]]
+name = "zune-jpeg"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec866b44a2a1fd6133d363f073ca1b179f438f99e7e5bfb1e33f7181facfe448"
+dependencies = [
+ "zune-core",
 ]
diff --git a/pkgs/development/libraries/libdeltachat/default.nix b/pkgs/development/libraries/libdeltachat/default.nix
index 75ba9ab621b2f..4f303ba3ff4b2 100644
--- a/pkgs/development/libraries/libdeltachat/default.nix
+++ b/pkgs/development/libraries/libdeltachat/default.nix
@@ -5,6 +5,7 @@
 , cmake
 , deltachat-desktop
 , deltachat-repl
+, deltachat-rpc-server
 , openssl
 , perl
 , pkg-config
@@ -30,13 +31,13 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "libdeltachat";
-  version = "1.136.3";
+  version = "1.140.2";
 
   src = fetchFromGitHub {
     owner = "deltachat";
     repo = "deltachat-core-rust";
     rev = "v${version}";
-    hash = "sha256-/ZWpPpxnOCLGswrfbEPvfUn1LpdBQeR5LecRAB0PEhI=";
+    hash = "sha256-BSbvgKiI89B+nxp5McBKTJAwgePt27C1QvSQLhTL7pQ=";
   };
 
   patches = [
@@ -81,7 +82,7 @@ in stdenv.mkDerivation rec {
   passthru = {
     inherit cargoLock;
     tests = {
-      inherit deltachat-desktop deltachat-repl;
+      inherit deltachat-desktop deltachat-repl deltachat-rpc-server;
       python = python3.pkgs.deltachat;
     };
   };
diff --git a/pkgs/development/libraries/libdeltachat/no-static-lib.patch b/pkgs/development/libraries/libdeltachat/no-static-lib.patch
index 14ea1106138f9..9dc4ffd0ec074 100644
--- a/pkgs/development/libraries/libdeltachat/no-static-lib.patch
+++ b/pkgs/development/libraries/libdeltachat/no-static-lib.patch
@@ -1,33 +1,33 @@
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 44ca43e7..8b6960dd 100644
+index 5587e391..a18092f5 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -14,7 +14,6 @@ find_program(CARGO cargo)
+@@ -20,7 +20,6 @@ endif()
  
  add_custom_command(
  	OUTPUT
--	"target/release/libdeltachat.a"
- 	"target/release/libdeltachat.${DYNAMIC_EXT}"
- 	"target/release/pkgconfig/deltachat.pc"
+-	"${CMAKE_BINARY_DIR}/target/release/libdeltachat.a"
+ 	"${CMAKE_BINARY_DIR}/target/release/libdeltachat.${DYNAMIC_EXT}"
+ 	"${CMAKE_BINARY_DIR}/target/release/pkgconfig/deltachat.pc"
          COMMAND
-@@ -39,12 +38,10 @@ add_custom_target(
+@@ -35,12 +34,10 @@ add_custom_target(
  	lib_deltachat
  	ALL
  	DEPENDS
--	"target/release/libdeltachat.a"
- 	"target/release/libdeltachat.${DYNAMIC_EXT}"
- 	"target/release/pkgconfig/deltachat.pc"
+-	"${CMAKE_BINARY_DIR}/target/release/libdeltachat.a"
+ 	"${CMAKE_BINARY_DIR}/target/release/libdeltachat.${DYNAMIC_EXT}"
+ 	"${CMAKE_BINARY_DIR}/target/release/pkgconfig/deltachat.pc"
  )
  
  install(FILES "deltachat-ffi/deltachat.h" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
--install(FILES "target/release/libdeltachat.a" DESTINATION ${CMAKE_INSTALL_LIBDIR})
- install(FILES "target/release/libdeltachat.${DYNAMIC_EXT}" DESTINATION ${CMAKE_INSTALL_LIBDIR})
- install(FILES "target/release/pkgconfig/deltachat.pc" DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+-install(FILES "${CMAKE_BINARY_DIR}/target/${ARCH_DIR}/release/libdeltachat.a" DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ install(FILES "${CMAKE_BINARY_DIR}/target/${ARCH_DIR}/release/libdeltachat.${DYNAMIC_EXT}" DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ install(FILES "${CMAKE_BINARY_DIR}/target/${ARCH_DIR}/release/pkgconfig/deltachat.pc" DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
 diff --git a/deltachat-ffi/Cargo.toml b/deltachat-ffi/Cargo.toml
-index de0fbafe..120efec9 100644
+index d66cb00f..48347a48 100644
 --- a/deltachat-ffi/Cargo.toml
 +++ b/deltachat-ffi/Cargo.toml
-@@ -12,7 +12,7 @@ categories = ["cryptography", "std", "email"]
+@@ -11,7 +11,7 @@ categories = ["cryptography", "std", "email"]
  
  [lib]
  name = "deltachat"
diff --git a/pkgs/development/libraries/libdevil/0001-il_endian.h-Fix-endian-handling.patch b/pkgs/development/libraries/libdevil/0001-il_endian.h-Fix-endian-handling.patch
new file mode 100644
index 0000000000000..a1826354f88ba
--- /dev/null
+++ b/pkgs/development/libraries/libdevil/0001-il_endian.h-Fix-endian-handling.patch
@@ -0,0 +1,35 @@
+From 85ca659a59ae5be6fc0824b0684967ec94727e2a Mon Sep 17 00:00:00 2001
+From: toonn <toonn@toonn.io>
+Date: Wed, 12 Jun 2024 11:39:35 +0000
+Subject: [PATCH] il_endian.h: Fix endian handling
+
+Based on https://sourceforge.net/p/resil/tickets/8/, which has also been
+incorporated in the MacPort for libdevil 1.7.8,
+https://trac.macports.org/export/154482/trunk/dports/devel/libdevil/files/patch-src-IL-include-il_endian.h.diff,
+but updated for the header included in release 1.8.0 of libdevil.
+---
+ src-IL/include/il_endian.h | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/src-IL/include/il_endian.h b/src-IL/include/il_endian.h
+index c4e6d86..a3cd57f 100644
+--- a/src-IL/include/il_endian.h
++++ b/src-IL/include/il_endian.h
+@@ -23,9 +23,13 @@ extern "C" {
+ #ifndef __BIG_ENDIAN__
+ #define __BIG_ENDIAN__ 1
+ #endif
++#else
++#ifndef __LITTLE_ENDIAN__
++#define __LITTLE_ENDIAN__ 1
++#endif
+ #endif
+ 
+-#if (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __BIG_ENDIAN__) \
++#if (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) \
+   || (defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__))
+ #undef __LITTLE_ENDIAN__
+ #define Short(s) iSwapShort(s)
+-- 
+2.44.0
+
diff --git a/pkgs/development/libraries/libdevil/default.nix b/pkgs/development/libraries/libdevil/default.nix
index 26c30227f5498..63ca4877da65f 100644
--- a/pkgs/development/libraries/libdevil/default.nix
+++ b/pkgs/development/libraries/libdevil/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, cmake
 , libjpeg
 , libpng
 , libmng
@@ -18,16 +19,18 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libdevil";
-  version = "1.7.8";
+  version = "1.8.0";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://sourceforge/openil/DevIL-${finalAttrs.version}.tar.gz";
-    sha256 = "1zd850nn7nvkkhasrv7kn17kzgslr5ry933v6db62s4lr0zzlbv8";
+    hash = "sha256-AHWXPufdifBQeHPiWArHgzZFLSnTSgcTSyCPROL+twk=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  sourceRoot = "DevIL/DevIL";
+
+  nativeBuildInputs = [ cmake pkg-config ];
 
   buildInputs = [ libjpeg libpng libmng lcms1 libtiff openexr ]
     ++ lib.optionals withXorg [ libX11 libGL ]
@@ -38,29 +41,17 @@ stdenv.mkDerivation (finalAttrs: {
   CXXFLAGS = lib.optionalString stdenv.cc.isClang "-Wno-register";
 
   preConfigure = ''
-    sed -i 's, -std=gnu99,,g' configure
     sed -i 's,malloc.h,stdlib.h,g' src-ILU/ilur/ilur.c
-  '' + lib.optionalString stdenv.cc.isClang ''
-    sed -i 's/libIL_la_CXXFLAGS = $(AM_CFLAGS)/libIL_la_CXXFLAGS =/g' lib/Makefile.in
-  '';
-
-  postConfigure = ''
-    sed -i '/RESTRICT_KEYWORD/d' include/IL/config.h
   '';
 
   patches = [
-    (fetchurl {
-        url = "https://sources.debian.org/data/main/d/devil/1.7.8-10/debian/patches/03_CVE-2009-3994.diff";
-        sha256 = "0qkx2qfv02igbrmsn6z5a3lbrbwjfh3rb0c2sj54wy0j1f775hbc";
-    })
-    ./ftbfs-libpng15.patch
-    ./il_endian.h.patch
+    ./0001-il_endian.h-Fix-endian-handling.patch
   ];
 
   enableParallelBuilding = true;
 
   postPatch = ''
-    for a in test/Makefile.in test/format_test/format_checks.sh.in ; do
+    for a in test/Makefile.am test/format_test/format_checks.sh.in ; do
       substituteInPlace $a \
         --replace /bin/bash ${runtimeShell}
     done
@@ -70,7 +61,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://openil.sourceforge.net/";
-    description = "An image library which can can load, save, convert, manipulate, filter and display a wide variety of image formats";
+    description = "Image library which can can load, save, convert, manipulate, filter and display a wide variety of image formats";
     mainProgram = "ilur";
     license = licenses.lgpl2;
     pkgConfigModules = [ "IL" ];
diff --git a/pkgs/development/libraries/libdevil/ftbfs-libpng15.patch b/pkgs/development/libraries/libdevil/ftbfs-libpng15.patch
deleted file mode 100644
index 5fc53c2dc6a70..0000000000000
--- a/pkgs/development/libraries/libdevil/ftbfs-libpng15.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Source: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=649554
---- devil-1.7.8.orig/src-IL/src/il_icon.c
-+++ devil-1.7.8/src-IL/src/il_icon.c
-@@ -525,7 +525,11 @@
- 
- 	// Expand low-bit-depth grayscale images to 8 bits
- 	if (ico_color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) {
-+#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
-+		png_set_expand_gray_1_2_4_to_8(ico_png_ptr);
-+#else
- 		png_set_gray_1_2_4_to_8(ico_png_ptr);
-+#endif
- 	}
- 
- 	// Expand RGB images with transparency to full alpha channels
-only in patch2:
-unchanged:
---- devil-1.7.8.orig/src-IL/src/il_png.c
-+++ devil-1.7.8/src-IL/src/il_png.c
-@@ -278,7 +278,11 @@
- 
- 	// Expand low-bit-depth grayscale images to 8 bits
- 	if (png_color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) {
-+#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
-+		png_set_expand_gray_1_2_4_to_8(png_ptr);
-+#else
- 		png_set_gray_1_2_4_to_8(png_ptr);
-+#endif
- 	}
- 
- 	// Expand RGB images with transparency to full alpha channels
diff --git a/pkgs/development/libraries/libdevil/il_endian.h.patch b/pkgs/development/libraries/libdevil/il_endian.h.patch
deleted file mode 100644
index c220e6802fd9f..0000000000000
--- a/pkgs/development/libraries/libdevil/il_endian.h.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Source: http://sourceforge.net/p/resil/tickets/8/
---- devil-1.7.8.orig/src-IL/include/il_endian.h.orig	2009-03-08 01:10:08.000000000 -0600
-+++ devil-1.7.8/src-IL/include/il_endian.h	2013-11-03 01:52:37.000000000 -0600
-@@ -19,9 +19,13 @@
- 	#ifndef __BIG_ENDIAN__
- 	#define __BIG_ENDIAN__ 1
- 	#endif
-+#else
-+	#ifndef __LITTLE_ENDIAN__
-+	#define __LITTLE_ENDIAN__ 1
-+	#endif
- #endif
- 
--#if (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __BIG_ENDIAN__) \
-+#if (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) \
-   || (defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__))
-  	#undef __LITTLE_ENDIAN__
- 	#define Short(s) iSwapShort(s)
-@@ -39,8 +43,6 @@
- 	#define BigDouble(d)  
- #else
- 	#undef __BIG_ENDIAN__
--	#undef __LITTLE_ENDIAN__  // Not sure if it's defined by any compiler...
--	#define __LITTLE_ENDIAN__
- 	#define Short(s)  
- 	#define UShort(s)  
- 	#define Int(i)  
diff --git a/pkgs/development/libraries/libdex/default.nix b/pkgs/development/libraries/libdex/default.nix
index a81cc2669529f..373fae4876b1e 100644
--- a/pkgs/development/libraries/libdex/default.nix
+++ b/pkgs/development/libraries/libdex/default.nix
@@ -12,15 +12,15 @@
 , gnome
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "libdex";
-  version = "0.6.0";
+  version = "0.6.1";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-HojSsAYo5Ya3I7f7pRXM6XUvrxISLN5aPA1biDmYUio=";
+    url = "mirror://gnome/sources/libdex/${lib.versions.majorMinor finalAttrs.version}/libdex-${finalAttrs.version}.tar.xz";
+    hash = "sha256-0XbeZXhXHjKowLYDtqWhP6X4f7a1RCV1s47FrxaxepI=";
   };
 
   nativeBuildInputs = [
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
     description = "Library supporting deferred execution for GNOME and GTK";
     homepage = "https://gitlab.gnome.org/GNOME/libdex";
     maintainers = teams.gnome.members;
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
     license = licenses.lgpl21Plus;
   };
-}
+})
diff --git a/pkgs/development/libraries/libdigidocpp/default.nix b/pkgs/development/libraries/libdigidocpp/default.nix
index 7f706a220afcf..d957d2d05d0d2 100644
--- a/pkgs/development/libraries/libdigidocpp/default.nix
+++ b/pkgs/development/libraries/libdigidocpp/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, cmake, minizip, pcsclite, opensc, openssl
+{ lib, stdenv, fetchurl, cmake, minizip, pcsclite, opensc, openssl
 , xercesc, xml-security-c, pkg-config, xsd, zlib, xalanc, xxd }:
 
 stdenv.mkDerivation rec {
diff --git a/pkgs/development/libraries/libdiscid/default.nix b/pkgs/development/libraries/libdiscid/default.nix
index 11cbdc1d89616..926973bb5739d 100644
--- a/pkgs/development/libraries/libdiscid/default.nix
+++ b/pkgs/development/libraries/libdiscid/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-framework CoreFoundation -framework IOKit";
 
   meta = with lib; {
-    description = "A C library for creating MusicBrainz DiscIDs from audio CDs";
+    description = "C library for creating MusicBrainz DiscIDs from audio CDs";
     homepage = "http://musicbrainz.org/doc/libdiscid";
     maintainers = with maintainers; [ ehmry ];
     license = licenses.lgpl21;
diff --git a/pkgs/development/libraries/libdivecomputer/default.nix b/pkgs/development/libraries/libdivecomputer/default.nix
index f79e3dc717a58..8824061dee86b 100644
--- a/pkgs/development/libraries/libdivecomputer/default.nix
+++ b/pkgs/development/libraries/libdivecomputer/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.libdivecomputer.org";
-    description = "A cross-platform and open source library for communication with dive computers from various manufacturers";
+    description = "Cross-platform and open source library for communication with dive computers from various manufacturers";
     mainProgram = "dctool";
     maintainers = [ maintainers.mguentner ];
     license = licenses.lgpl21;
diff --git a/pkgs/development/libraries/libdmtx/default.nix b/pkgs/development/libraries/libdmtx/default.nix
index 4c5ef2c33140c..bd7eb2359ef7f 100644
--- a/pkgs/development/libraries/libdmtx/default.nix
+++ b/pkgs/development/libraries/libdmtx/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook pkg-config ];
 
   meta = {
-    description = "An open source software for reading and writing Data Matrix barcodes";
+    description = "Open source software for reading and writing Data Matrix barcodes";
     homepage = "https://github.com/dmtx/libdmtx";
     changelog = "https://github.com/dmtx/libdmtx/blob/v${version}/ChangeLog";
     platforms = lib.platforms.all;
diff --git a/pkgs/development/libraries/libdvbcsa/default.nix b/pkgs/development/libraries/libdvbcsa/default.nix
index 7da80a75d6a7f..f9daa860cf479 100644
--- a/pkgs/development/libraries/libdvbcsa/default.nix
+++ b/pkgs/development/libraries/libdvbcsa/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "A free implementation of the DVB Common Scrambling Algorithm with encryption and decryption capabilities";
+    description = "Free implementation of the DVB Common Scrambling Algorithm with encryption and decryption capabilities";
     homepage = "http://www.videolan.org/developers/libdvbcsa.html";
     platforms = lib.platforms.unix;
     license = lib.licenses.gpl2Only;
diff --git a/pkgs/development/libraries/libdvbpsi/default.nix b/pkgs/development/libraries/libdvbpsi/default.nix
index 5d539a7a48829..6ec8aab8943ce 100644
--- a/pkgs/development/libraries/libdvbpsi/default.nix
+++ b/pkgs/development/libraries/libdvbpsi/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "A simple library designed for decoding and generation of MPEG TS and DVB PSI tables according to standards ISO/IEC 13818 and ITU-T H.222.0";
+    description = "Simple library designed for decoding and generation of MPEG TS and DVB PSI tables according to standards ISO/IEC 13818 and ITU-T H.222.0";
     homepage = "http://www.videolan.org/developers/libdvbpsi.html";
     platforms = lib.platforms.unix;
     license = lib.licenses.lgpl21;
diff --git a/pkgs/development/libraries/libdvdcss/default.nix b/pkgs/development/libraries/libdvdcss/default.nix
index b43c0ccdd0fe9..6c832250fc1c8 100644
--- a/pkgs/development/libraries/libdvdcss/default.nix
+++ b/pkgs/development/libraries/libdvdcss/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.videolan.org/developers/libdvdcss.html";
-    description = "A library for decrypting DVDs";
+    description = "Library for decrypting DVDs";
     license = licenses.gpl2;
     platforms = with platforms; linux ++ darwin;
   };
diff --git a/pkgs/development/libraries/libdvdnav/4.2.1.nix b/pkgs/development/libraries/libdvdnav/4.2.1.nix
index 5567d7c39c286..852ab2ea73099 100644
--- a/pkgs/development/libraries/libdvdnav/4.2.1.nix
+++ b/pkgs/development/libraries/libdvdnav/4.2.1.nix
@@ -12,15 +12,34 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [libdvdread];
 
-  configureScript = "./configure2"; # wtf?
+  # The upstream supports two configuration workflow:
+  # one is to generate ./configure via `autoconf`,
+  # the other is to run ./configure2.
+  # ./configure2 is a configureation script included in the upstream source
+  # that supports common "--<name>" flags and generates config.mak and config.h.
+  # See INSTALL inside the upstream source for detail.
+  configureScript = "./configure2";
+
+  configureFlags = [
+    "--cc=${stdenv.cc.targetPrefix}cc"
+    # Let's strip the binaries ourselves,
+    # as unprefixed `strip` command is not available during cross compilation.
+    "--disable-strip"
+  ];
 
   preConfigure = ''
     mkdir -p $out
   '';
 
+  makeFlags = [
+    "AR=${stdenv.cc.targetPrefix}ar"
+    "LD=${stdenv.cc.targetPrefix}ld"
+    "RANLIB=${stdenv.cc.targetPrefix}ranlib"
+  ];
+
   meta = {
     homepage = "http://dvdnav.mplayerhq.hu/";
-    description = "A library that implements DVD navigation features such as DVD menus";
+    description = "Library that implements DVD navigation features such as DVD menus";
     mainProgram = "dvdnav-config";
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.wmertens ];
diff --git a/pkgs/development/libraries/libdvdnav/default.nix b/pkgs/development/libraries/libdvdnav/default.nix
index 8414605593def..96f78d73ae3c6 100644
--- a/pkgs/development/libraries/libdvdnav/default.nix
+++ b/pkgs/development/libraries/libdvdnav/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://dvdnav.mplayerhq.hu/";
-    description = "A library that implements DVD navigation features such as DVD menus";
+    description = "Library that implements DVD navigation features such as DVD menus";
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.wmertens ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/libdvdread/4.9.9.nix b/pkgs/development/libraries/libdvdread/4.9.9.nix
index 87ab724796c7a..47e44c5711a56 100644
--- a/pkgs/development/libraries/libdvdread/4.9.9.nix
+++ b/pkgs/development/libraries/libdvdread/4.9.9.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://dvdnav.mplayerhq.hu/";
-    description = "A library for reading DVDs";
+    description = "Library for reading DVDs";
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.wmertens ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/libraries/libdvdread/default.nix b/pkgs/development/libraries/libdvdread/default.nix
index f07af1fa575b1..14b534b2fe289 100644
--- a/pkgs/development/libraries/libdvdread/default.nix
+++ b/pkgs/development/libraries/libdvdread/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://dvdnav.mplayerhq.hu/";
-    description = "A library for reading DVDs";
+    description = "Library for reading DVDs";
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.wmertens ];
     platforms = with lib.platforms; linux ++ darwin;
diff --git a/pkgs/development/libraries/libee/default.nix b/pkgs/development/libraries/libee/default.nix
index 1269f6f0eff3b..246fb73090b9e 100644
--- a/pkgs/development/libraries/libee/default.nix
+++ b/pkgs/development/libraries/libee/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libestr];
 
   meta = {
-    description = "An Event Expression Library inspired by CEE";
+    description = "Event Expression Library inspired by CEE";
     homepage = "http://www.libee.org/";
     license = lib.licenses.lgpl21Plus;
     mainProgram = "libee-convert";
diff --git a/pkgs/development/libraries/libepoxy/default.nix b/pkgs/development/libraries/libepoxy/default.nix
index 9fab4c72947ed..95c3959d9dfb5 100644
--- a/pkgs/development/libraries/libepoxy/default.nix
+++ b/pkgs/development/libraries/libepoxy/default.nix
@@ -74,7 +74,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A library for handling OpenGL function pointer management";
+    description = "Library for handling OpenGL function pointer management";
     homepage = "https://github.com/anholt/libepoxy";
     license = licenses.mit;
     maintainers = with maintainers; [ goibhniu ];
diff --git a/pkgs/development/libraries/libesmtp/default.nix b/pkgs/development/libraries/libesmtp/default.nix
index 3193f383d610a..0fb8890cf129d 100644
--- a/pkgs/development/libraries/libesmtp/default.nix
+++ b/pkgs/development/libraries/libesmtp/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A Library for Posting Electronic Mail";
+    description = "Library for Posting Electronic Mail";
     longDescription = ''
       libESMTP is an SMTP client library which manages submission of electronic mail
       via a preconfigured Mail Transport Agent (MTA) such as Exim or Postfix.
diff --git a/pkgs/development/libraries/libev/default.nix b/pkgs/development/libraries/libev/default.nix
index 750cb3974cf75..32960de8919d7 100644
--- a/pkgs/development/libraries/libev/default.nix
+++ b/pkgs/development/libraries/libev/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl
+{ lib, stdenv, fetchurl, updateAutotoolsGnuConfigScriptsHook
 , # Note: -static hasn’t work on darwin
   static ? with stdenv.hostPlatform; isStatic && !isDarwin
 }:
@@ -17,10 +17,12 @@ stdenv.mkDerivation rec {
     sha256 = "1sjs4324is7fp21an4aas2z4dwsvs6z4xwrmp72vwpq1s6wbfzjh";
   };
 
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
+
   configureFlags = lib.optional (static) "LDFLAGS=-static";
 
   meta = {
-    description = "A high-performance event loop/event model with lots of features";
+    description = "High-performance event loop/event model with lots of features";
     maintainers = [ lib.maintainers.raskin ];
     platforms = lib.platforms.all;
     license = lib.licenses.bsd2; # or GPL2+
diff --git a/pkgs/development/libraries/libevdev/default.nix b/pkgs/development/libraries/libevdev/default.nix
index c8db600dce810..34af29955abbf 100644
--- a/pkgs/development/libraries/libevdev/default.nix
+++ b/pkgs/development/libraries/libevdev/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, python3 }:
+{ lib, stdenv, fetchurl, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "libevdev";
diff --git a/pkgs/development/libraries/libewf/default.nix b/pkgs/development/libraries/libewf/default.nix
index dffacc7d276c7..6c149b0186ee2 100644
--- a/pkgs/development/libraries/libewf/default.nix
+++ b/pkgs/development/libraries/libewf/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, fetchpatch, lib, stdenv, zlib, openssl, libuuid, pkg-config, bzip2 }:
+{ fetchurl, lib, stdenv, zlib, openssl, libuuid, pkg-config, bzip2 }:
 
 stdenv.mkDerivation rec {
   version = "20231119";
diff --git a/pkgs/development/libraries/libexif/default.nix b/pkgs/development/libraries/libexif/default.nix
index 0ab1f8fa984ab..8b9e889d3e2b7 100644
--- a/pkgs/development/libraries/libexif/default.nix
+++ b/pkgs/development/libraries/libexif/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://libexif.github.io/";
-    description = "A library to read and manipulate EXIF data in digital photographs";
+    description = "Library to read and manipulate EXIF data in digital photographs";
     license = licenses.lgpl21;
     platforms = platforms.unix;
     maintainers = with maintainers; [ erictapen ];
diff --git a/pkgs/development/libraries/libexttextcat/default.nix b/pkgs/development/libraries/libexttextcat/default.nix
index 39369c5c3b6be..6ed3603dd184d 100644
--- a/pkgs/development/libraries/libexttextcat/default.nix
+++ b/pkgs/development/libraries/libexttextcat/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "An N-Gram-Based Text Categorization library primarily intended for language guessing";
+    description = "N-Gram-Based Text Categorization library primarily intended for language guessing";
     homepage = "https://wiki.documentfoundation.org/Libexttextcat";
     license = licenses.bsd3;
     mainProgram = "createfp";
diff --git a/pkgs/development/libraries/libfaketime/default.nix b/pkgs/development/libraries/libfaketime/default.nix
index f44702582f27a..2cb94d11fd670 100644
--- a/pkgs/development/libraries/libfaketime/default.nix
+++ b/pkgs/development/libraries/libfaketime/default.nix
@@ -18,6 +18,11 @@ stdenv.mkDerivation rec {
       url = "https://github.com/wolfcw/libfaketime/commit/e0e6b79568d36a8fd2b3c41f7214769221182128.patch";
       sha256 = "sha256-KwwP76v0DXNW73p/YBvwUOPdKMAcVdbQSKexD/uFOYo=";
     })
+    (fetchpatch {
+      name = "LFS64.patch";
+      url = "https://github.com/wolfcw/libfaketime/commit/f32986867addc9d22b0fab29c1c927f079d44ac1.patch";
+      hash = "sha256-fIXuxxcV9J2IcgwcwSrMo4maObkH9WYv1DC/wdtbq/g=";
+    })
   ] ++ (lib.optionals stdenv.cc.isClang [
     # https://github.com/wolfcw/libfaketime/issues/277
     ./0001-Remove-unsupported-clang-flags.patch
diff --git a/pkgs/development/libraries/libffi/3.3.nix b/pkgs/development/libraries/libffi/3.3.nix
index 294717d1fb1cd..50bec9edd0503 100644
--- a/pkgs/development/libraries/libffi/3.3.nix
+++ b/pkgs/development/libraries/libffi/3.3.nix
@@ -1,5 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch
-, autoreconfHook
+{ lib, stdenv, fetchurl
 
 , doCheck ? true # test suite depends on dejagnu which cannot be used during bootstrapping
 , dejagnu
@@ -44,7 +43,7 @@ stdenv.mkDerivation rec {
   nativeCheckInputs = [ dejagnu ];
 
   meta = with lib; {
-    description = "A foreign function call interface library";
+    description = "Foreign function call interface library";
     longDescription = ''
       The libffi library provides a portable, high level programming
       interface to various calling conventions.  This allows a
diff --git a/pkgs/development/libraries/libffi/default.nix b/pkgs/development/libraries/libffi/default.nix
index edd16ec21506e..9293077b1aa73 100644
--- a/pkgs/development/libraries/libffi/default.nix
+++ b/pkgs/development/libraries/libffi/default.nix
@@ -1,5 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch
-, autoreconfHook
+{ lib, stdenv, fetchurl
 
   # test suite depends on dejagnu which cannot be used during bootstrapping
   # dejagnu also requires tcl which can't be built statically at the moment
@@ -59,7 +58,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A foreign function call interface library";
+    description = "Foreign function call interface library";
     longDescription = ''
       The libffi library provides a portable, high level programming
       interface to various calling conventions.  This allows a
diff --git a/pkgs/development/libraries/libfilezilla/default.nix b/pkgs/development/libraries/libfilezilla/default.nix
index 9024be0f259ce..4076e5325c930 100644
--- a/pkgs/development/libraries/libfilezilla/default.nix
+++ b/pkgs/development/libraries/libfilezilla/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://lib.filezilla-project.org/";
-    description = "A modern C++ library, offering some basic functionality to build high-performing, platform-independent programs";
+    description = "Modern C++ library, offering some basic functionality to build high-performing, platform-independent programs";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ pSub ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/libfishsound/default.nix b/pkgs/development/libraries/libfishsound/default.nix
index bf578b969effa..e8ceb261a4fec 100644
--- a/pkgs/development/libraries/libfishsound/default.nix
+++ b/pkgs/development/libraries/libfishsound/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://xiph.org/fishsound/";
-    description = "A simple programming interface for decoding and encoding audio data using Xiph.org codecs (FLAC, Speex and Vorbis)";
+    description = "Simple programming interface for decoding and encoding audio data using Xiph.org codecs (FLAC, Speex and Vorbis)";
     longDescription = ''libfishsound by itself is designed to handle raw codec streams from a lower level layer such as UDP datagrams. When these codecs are used in files, they are commonly encapsulated in Ogg to produce Ogg FLAC, Speex and Ogg Vorbis files.
 
 libfishsound is a wrapper around the existing codec libraries and provides a consistent, higher-level programming interface. It has been designed for use in a wide variety of applications; it has no direct dependencies on Ogg encapsulation, though it is most commonly used in conjunction with liboggz to decode or encode FLAC, Speex or Vorbis audio tracks in Ogg files, including Ogg Theora and Annodex.
diff --git a/pkgs/development/libraries/libfm/default.nix b/pkgs/development/libraries/libfm/default.nix
index f8f79d99e4570..64928de4d4fe7 100644
--- a/pkgs/development/libraries/libfm/default.nix
+++ b/pkgs/development/libraries/libfm/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
     broken = stdenv.isDarwin;
     homepage = "https://blog.lxde.org/category/pcmanfm/";
     license = licenses.lgpl21Plus;
-    description = "A glib-based library for file management";
+    description = "Glib-based library for file management";
     maintainers = [ maintainers.ttuegel ];
     platforms = platforms.linux ++ platforms.darwin;
   };
diff --git a/pkgs/development/libraries/libfprint-2-tod1-vfs0090/default.nix b/pkgs/development/libraries/libfprint-2-tod1-vfs0090/default.nix
index 840f8e2271532..e40fa4c3df76f 100644
--- a/pkgs/development/libraries/libfprint-2-tod1-vfs0090/default.nix
+++ b/pkgs/development/libraries/libfprint-2-tod1-vfs0090/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation {
   passthru.driverPath = "/lib/libfprint-2/tod-1";
 
   meta = with lib; {
-    description = "A libfprint-2-tod Touch OEM Driver for 2016 ThinkPad's fingerprint readers";
+    description = "Libfprint-2-tod Touch OEM Driver for 2016 ThinkPad's fingerprint readers";
     homepage = "https://gitlab.freedesktop.org/3v1n0/libfprint-tod-vfs0090";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libfprint-tod/default.nix b/pkgs/development/libraries/libfprint-tod/default.nix
index bffafc5e44f40..538df33ff2814 100644
--- a/pkgs/development/libraries/libfprint-tod/default.nix
+++ b/pkgs/development/libraries/libfprint-tod/default.nix
@@ -34,7 +34,7 @@ in  {
 
   meta = with lib; {
     homepage = "https://gitlab.freedesktop.org/3v1n0/libfprint";
-    description = "A library designed to make it easy to add support for consumer fingerprint readers, with support for loaded drivers";
+    description = "Library designed to make it easy to add support for consumer fingerprint readers, with support for loaded drivers";
     license = licenses.lgpl21;
     platforms = platforms.linux;
     maintainers = with maintainers; [ grahamc ];
diff --git a/pkgs/development/libraries/libfprint/default.nix b/pkgs/development/libraries/libfprint/default.nix
index 41eef399162a2..fd7797ca0f14c 100644
--- a/pkgs/development/libraries/libfprint/default.nix
+++ b/pkgs/development/libraries/libfprint/default.nix
@@ -85,7 +85,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://fprint.freedesktop.org/";
-    description = "A library designed to make it easy to add support for consumer fingerprint readers";
+    description = "Library designed to make it easy to add support for consumer fingerprint readers";
     license = licenses.lgpl21Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ abbradar ];
diff --git a/pkgs/development/libraries/libfpx/default.nix b/pkgs/development/libraries/libfpx/default.nix
index 5c77e0139e8a8..6f79ec1b9465c 100644
--- a/pkgs/development/libraries/libfpx/default.nix
+++ b/pkgs/development/libraries/libfpx/default.nix
@@ -24,11 +24,18 @@ stdenv.mkDerivation rec {
       url = "https://github.com/ImageMagick/libfpx/commit/c32b340581ba6c88c5092f374f655c7579b598a6.patch";
       sha256 = "1gbc0qb2ri1mj9r66wx0yn28fsr7zhhlyz2mwbica8wh34xijgz9";
     })
+    # fix clang build: remove register keyword
+    # remove on next update
+    (fetchpatch {
+      name = "remove-register-keyword.patch";
+      url = "https://github.com/ImageMagick/libfpx/commit/5f340b0a490450b40302cc9948c7dfac60d40041.patch";
+      hash = "sha256-6m9MFb1eWGK5cMvPmTu7uh3Pac65r2HPB8wJ8xc1O5o=";
+    })
   ];
 
   meta = with lib; {
     homepage = "http://www.imagemagick.org";
-    description = "A library for manipulating FlashPIX images";
+    description = "Library for manipulating FlashPIX images";
     license = "Flashpix";
     platforms = platforms.all;
   };
diff --git a/pkgs/development/libraries/libfreefare/default.nix b/pkgs/development/libraries/libfreefare/default.nix
index f1466dd5a9f53..b05ea5bbe2d5c 100644
--- a/pkgs/development/libraries/libfreefare/default.nix
+++ b/pkgs/development/libraries/libfreefare/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
   buildInputs = [ libnfc openssl ] ++ lib.optionals stdenv.isDarwin [ libobjc IOKit Security ];
 
   meta = with lib; {
-    description = "The libfreefare project aims to provide a convenient API for MIFARE card manipulations";
+    description = "Libfreefare project aims to provide a convenient API for MIFARE card manipulations";
     license = licenses.lgpl3;
     homepage = "https://github.com/nfc-tools/libfreefare";
     maintainers = with maintainers; [bobvanderlinden];
diff --git a/pkgs/development/libraries/libftdi/1.x.nix b/pkgs/development/libraries/libftdi/1.x.nix
index 1e35d4124615c..116f1dca1bbbb 100644
--- a/pkgs/development/libraries/libftdi/1.x.nix
+++ b/pkgs/development/libraries/libftdi/1.x.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A library to talk to FTDI chips using libusb";
+    description = "Library to talk to FTDI chips using libusb";
     homepage = "https://www.intra2net.com/en/developer/libftdi/";
     license = with licenses; [ lgpl2Only gpl2Only ];
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/libftdi/default.nix b/pkgs/development/libraries/libftdi/default.nix
index ffc33d0247d15..27b23f9d54bce 100644
--- a/pkgs/development/libraries/libftdi/default.nix
+++ b/pkgs/development/libraries/libftdi/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A library to talk to FTDI chips using libusb";
+    description = "Library to talk to FTDI chips using libusb";
     homepage = "https://www.intra2net.com/en/developer/libftdi/";
     license = lib.licenses.lgpl21;
     platforms = lib.platforms.all;
diff --git a/pkgs/development/libraries/libgadu/default.nix b/pkgs/development/libraries/libgadu/default.nix
index 72bf067b2db4b..65f8b26c5a378 100644
--- a/pkgs/development/libraries/libgadu/default.nix
+++ b/pkgs/development/libraries/libgadu/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook ];
 
   meta = {
-    description = "A library to deal with gadu-gadu protocol (most popular polish IM protocol)";
+    description = "Library to deal with gadu-gadu protocol (most popular polish IM protocol)";
     homepage = "https://libgadu.net/index.en.html";
     platforms = lib.platforms.linux;
     license = lib.licenses.lgpl21;
diff --git a/pkgs/development/libraries/libgdiplus/default.nix b/pkgs/development/libraries/libgdiplus/default.nix
index e71aedd2cbcfa..4d315b042ee99 100644
--- a/pkgs/development/libraries/libgdiplus/default.nix
+++ b/pkgs/development/libraries/libgdiplus/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchzip, pkg-config, glib, cairo, Carbon, fontconfig
 , libtiff, giflib, libjpeg, libpng
-, libXrender, libexif, autoreconfHook, fetchpatch }:
+, libXrender, libexif, autoreconfHook }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libgdiplus";
diff --git a/pkgs/development/libraries/libgeotiff/default.nix b/pkgs/development/libraries/libgeotiff/default.nix
index 9b160e6b29e89..37e726fa23bb9 100644
--- a/pkgs/development/libraries/libgeotiff/default.nix
+++ b/pkgs/development/libraries/libgeotiff/default.nix
@@ -10,14 +10,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.7.1";
+  version = "1.7.3";
   pname = "libgeotiff";
 
   src = fetchFromGitHub {
     owner = "OSGeo";
     repo = "libgeotiff";
     rev = version;
-    hash = "sha256-bE6UAUKiorriTgYrqhxbMAN2NEtmV/8IIfF02RUghSI=";
+    hash = "sha256-FUvWZR5BrGEMnApxCBQBwmmi9NU7Tx6Ziq3mbIxjqfc=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/libgit2-glib/default.nix b/pkgs/development/libraries/libgit2-glib/default.nix
index 26b0a9907d111..cd2f10d157823 100644
--- a/pkgs/development/libraries/libgit2-glib/default.nix
+++ b/pkgs/development/libraries/libgit2-glib/default.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A glib wrapper library around the libgit2 git access library";
+    description = "Glib wrapper library around the libgit2 git access library";
     homepage = "https://gitlab.gnome.org/GNOME/libgit2-glib";
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/development/libraries/libgit2/default.nix b/pkgs/development/libraries/libgit2/default.nix
index 7e70b65423a96..58212e00d89e7 100644
--- a/pkgs/development/libraries/libgit2/default.nix
+++ b/pkgs/development/libraries/libgit2/default.nix
@@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
     description = "Linkable library implementation of Git that you can use in your application";
     mainProgram = "git2";
     homepage = "https://libgit2.org/";
-    license = licenses.gpl2Plus;
+    license = licenses.gpl2Only;
     platforms = platforms.all;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/libraries/libglibutil/default.nix b/pkgs/development/libraries/libglibutil/default.nix
index d96b3505bcb96..59434902d78d5 100644
--- a/pkgs/development/libraries/libglibutil/default.nix
+++ b/pkgs/development/libraries/libglibutil/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "Library of glib utilities.";
+    description = "Library of glib utilities";
     homepage = "https://git.sailfishos.org/mer-core/libglibutil";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/libraries/libglvnd/default.nix b/pkgs/development/libraries/libglvnd/default.nix
index a7480d6ffb95a..9a9c3b861d6d4 100644
--- a/pkgs/development/libraries/libglvnd/default.nix
+++ b/pkgs/development/libraries/libglvnd/default.nix
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
   passthru = { inherit (addOpenGLRunpath) driverLink; };
 
   meta = with lib; {
-    description = "The GL Vendor-Neutral Dispatch library";
+    description = "GL Vendor-Neutral Dispatch library";
     longDescription = ''
       libglvnd is a vendor-neutral dispatch layer for arbitrating OpenGL API
       calls between multiple vendors. It allows multiple drivers from different
diff --git a/pkgs/development/libraries/libgnt/default.nix b/pkgs/development/libraries/libgnt/default.nix
index 3a781a261b8b9..104a22beab74d 100644
--- a/pkgs/development/libraries/libgnt/default.nix
+++ b/pkgs/development/libraries/libgnt/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An ncurses toolkit for creating text-mode graphical user interfaces";
+    description = "Ncurses toolkit for creating text-mode graphical user interfaces";
     homepage = "https://keep.imfreedom.org/libgnt/libgnt/";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libgnurl/default.nix b/pkgs/development/libraries/libgnurl/default.nix
index f2d3d15f9e806..e0de7acd38bad 100644
--- a/pkgs/development/libraries/libgnurl/default.nix
+++ b/pkgs/development/libraries/libgnurl/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A fork of libcurl used by GNUnet";
+    description = "Fork of libcurl used by GNUnet";
     homepage    = "https://gnunet.org/en/gnurl.html";
     maintainers = with maintainers; [ vrthra ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libgourou/default.nix b/pkgs/development/libraries/libgourou/default.nix
index 78b5654873bdb..bfd483e5d31c8 100644
--- a/pkgs/development/libraries/libgourou/default.nix
+++ b/pkgs/development/libraries/libgourou/default.nix
@@ -10,11 +10,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "libgourou";
+  pname = "libgourou";
   version = "0.8.2";
 
   src = fetchzip {
-    url = "https://indefero.soutade.fr/p/${name}/source/download/v${version}/";
+    url = "https://indefero.soutade.fr/p/libgourou/source/download/v${version}/";
     sha256 = "sha256-adkrvBCgN07Ir+J3JFCy+X9p9609lj1w8nElrlHXTxc";
     extension = "zip";
   };
diff --git a/pkgs/development/libraries/libgpg-error/default.nix b/pkgs/development/libraries/libgpg-error/default.nix
index 1d262a0a44023..a990546108cff 100644
--- a/pkgs/development/libraries/libgpg-error/default.nix
+++ b/pkgs/development/libraries/libgpg-error/default.nix
@@ -17,11 +17,11 @@
   };
 in stdenv.mkDerivation (rec {
   pname = "libgpg-error";
-  version = "1.48";
+  version = "1.49";
 
   src = fetchurl {
     url = "mirror://gnupg/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-ic4a6JPhIpJLhY3oTcT2eq4p/6YQ6/Zo1apTkEVmPW8=";
+    sha256 = "sha256-i3nVRjnb9KvAi1QG+y835mmi3sCR3QJPuH3TZxMcY6k=";
   };
 
   postPatch = ''
@@ -63,7 +63,7 @@ in stdenv.mkDerivation (rec {
   meta = with lib; {
     homepage = "https://www.gnupg.org/software/libgpg-error/index.html";
     changelog = "https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgpg-error.git;a=blob;f=NEWS;hb=refs/tags/libgpg-error-${version}";
-    description = "A small library that defines common error values for all GnuPG components";
+    description = "Small library that defines common error values for all GnuPG components";
     mainProgram = "gen-posix-lock-obj";
 
     longDescription = ''
diff --git a/pkgs/development/libraries/libgphoto2/default.nix b/pkgs/development/libraries/libgphoto2/default.nix
index 4897934860b1f..c196b137555dd 100644
--- a/pkgs/development/libraries/libgphoto2/default.nix
+++ b/pkgs/development/libraries/libgphoto2/default.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://www.gphoto.org/proj/libgphoto2/";
-    description = "A library for accessing digital cameras";
+    description = "Library for accessing digital cameras";
     longDescription = ''
       This is the library backend for gphoto2. It contains the code for PTP,
       MTP, and other vendor specific protocols for controlling and transferring data
diff --git a/pkgs/development/libraries/libgringotts/default.nix b/pkgs/development/libraries/libgringotts/default.nix
index faa478b568c76..268ada87ac6ea 100644
--- a/pkgs/development/libraries/libgringotts/default.nix
+++ b/pkgs/development/libraries/libgringotts/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ zlib bzip2 libmcrypt libmhash ];
 
   meta = with lib; {
-    description = "A small library to encapsulate data in an encrypted structure";
+    description = "Small library to encapsulate data in an encrypted structure";
     homepage = "https://libgringotts.sourceforge.net/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libgtop/default.nix b/pkgs/development/libraries/libgtop/default.nix
index ae49384835909..a265d366ab768 100644
--- a/pkgs/development/libraries/libgtop/default.nix
+++ b/pkgs/development/libraries/libgtop/default.nix
@@ -10,15 +10,15 @@
 , deterministic-uname
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "libgtop";
-  version = "2.41.2";
+  version = "2.41.3";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-2QJs2KSNJ83/0zL41gqSdktWQk5SLEIM0ToB9A2vksM=";
+    url = "mirror://gnome/sources/libgtop/${lib.versions.majorMinor finalAttrs.version}/libgtop-${finalAttrs.version}.tar.xz";
+    hash = "sha256-d1Z235WOLqJFL3Vo8osupYEGPTEnc91cC3Ykwbmy2ow=";
   };
 
   nativeBuildInputs = [
@@ -37,15 +37,15 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = "libgtop";
       versionPolicy = "odd-unstable";
     };
   };
 
   meta = with lib; {
-    description = "A library that reads information about processes and the running system";
+    description = "Library that reads information about processes and the running system";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
     platforms = platforms.unix;
   };
-}
+})
diff --git a/pkgs/development/libraries/libgudev/default.nix b/pkgs/development/libraries/libgudev/default.nix
index 0da42d832f056..d3d3ae043e04e 100644
--- a/pkgs/development/libraries/libgudev/default.nix
+++ b/pkgs/development/libraries/libgudev/default.nix
@@ -75,7 +75,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A library that provides GObject bindings for libudev";
+    description = "Library that provides GObject bindings for libudev";
     homepage = "https://gitlab.gnome.org/GNOME/libgudev";
     maintainers = [ maintainers.eelco ] ++ teams.gnome.members;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libgweather/default.nix b/pkgs/development/libraries/libgweather/default.nix
index 971b234364704..42b9272115437 100644
--- a/pkgs/development/libraries/libgweather/default.nix
+++ b/pkgs/development/libraries/libgweather/default.nix
@@ -100,7 +100,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A library to access weather information from online services for numerous locations";
+    description = "Library to access weather information from online services for numerous locations";
     homepage = "https://gitlab.gnome.org/GNOME/libgweather";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/development/libraries/libgxps/default.nix b/pkgs/development/libraries/libgxps/default.nix
index 041431651c3e2..cff74fbb47416 100644
--- a/pkgs/development/libraries/libgxps/default.nix
+++ b/pkgs/development/libraries/libgxps/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A GObject based library for handling and rendering XPS documents";
+    description = "GObject based library for handling and rendering XPS documents";
     homepage = "https://gitlab.gnome.org/GNOME/libgxps";
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/development/libraries/libhandy/0.x.nix b/pkgs/development/libraries/libhandy/0.x.nix
index 1ae6c72afc3e1..e2b4ce381b7fb 100644
--- a/pkgs/development/libraries/libhandy/0.x.nix
+++ b/pkgs/development/libraries/libhandy/0.x.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A library full of GTK widgets for mobile phones";
+    description = "Library full of GTK widgets for mobile phones";
     mainProgram = "handy-0.0-demo";
     homepage = "https://source.puri.sm/Librem5/libhandy";
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/libraries/libhv/default.nix b/pkgs/development/libraries/libhv/default.nix
index e48b836b7cd79..c64c8e6e291f8 100644
--- a/pkgs/development/libraries/libhv/default.nix
+++ b/pkgs/development/libraries/libhv/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A c/c++ network library for developing TCP/UDP/SSL/HTTP/WebSocket/MQTT client/server";
+    description = "C/c++ network library for developing TCP/UDP/SSL/HTTP/WebSocket/MQTT client/server";
     homepage = "https://github.com/ithewei/libhv";
     license = licenses.bsd3;
     maintainers = with maintainers; [ sikmir ];
diff --git a/pkgs/development/libraries/libical/default.nix b/pkgs/development/libraries/libical/default.nix
index 45ca2faf30b9f..d3ee9581305c7 100644
--- a/pkgs/development/libraries/libical/default.nix
+++ b/pkgs/development/libraries/libical/default.nix
@@ -112,7 +112,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/libical/libical";
-    description = "An Open Source implementation of the iCalendar protocols";
+    description = "Open Source implementation of the iCalendar protocols";
     changelog = "https://github.com/libical/libical/raw/v${version}/ReleaseNotes.txt";
     license = licenses.mpl20;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libiconv/default.nix b/pkgs/development/libraries/libiconv/default.nix
index d8339ba086ad1..b59887381f49e 100644
--- a/pkgs/development/libraries/libiconv/default.nix
+++ b/pkgs/development/libraries/libiconv/default.nix
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
   passthru = { inherit setupHooks; };
 
   meta = {
-    description = "An iconv(3) implementation";
+    description = "Iconv(3) implementation";
 
     longDescription = ''
       Some programs, like mailers and web browsers, must be able to convert
diff --git a/pkgs/development/libraries/libime/default.nix b/pkgs/development/libraries/libime/default.nix
index 69a6a033fc095..a1f7f50a25756 100644
--- a/pkgs/development/libraries/libime/default.nix
+++ b/pkgs/development/libraries/libime/default.nix
@@ -29,13 +29,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "libime";
-  version = "1.1.7";
+  version = "1.1.8";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = "libime";
     rev = version;
-    hash = "sha256-I8zznZlMz1U2DAVYkvtF1thEYz/tIEbA682y7czK5ck=";
+    hash = "sha256-uT0V1CXPaF2FctsndxVszS7Qske6vObbOA4aOnmbdQY=";
     fetchSubmodules = true;
   };
 
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A library to support generic input method implementation";
+    description = "Library to support generic input method implementation";
     homepage = "https://github.com/fcitx/libime";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ poscat ];
diff --git a/pkgs/development/libraries/libimobiledevice/default.nix b/pkgs/development/libraries/libimobiledevice/default.nix
index d67c4a67475ed..59ee89c95422a 100644
--- a/pkgs/development/libraries/libimobiledevice/default.nix
+++ b/pkgs/development/libraries/libimobiledevice/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/libimobiledevice/libimobiledevice";
-    description = "A software library that talks the protocols to support iPhone®, iPod Touch® and iPad® devices on Linux";
+    description = "Software library that talks the protocols to support iPhone®, iPod Touch® and iPad® devices on Linux";
     longDescription = ''
       libimobiledevice is a software library that talks the protocols to support
       iPhone®, iPod Touch® and iPad® devices on Linux. Unlike other projects, it
diff --git a/pkgs/development/libraries/libindicator/default.nix b/pkgs/development/libraries/libindicator/default.nix
index 99b6542fa3e82..767b7a1d8cf24 100644
--- a/pkgs/development/libraries/libindicator/default.nix
+++ b/pkgs/development/libraries/libindicator/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   doCheck = false; # fails 8 out of 8 tests
 
   meta = with lib; {
-    description = "A set of symbols and convenience functions for Ayatana indicators";
+    description = "Set of symbols and convenience functions for Ayatana indicators";
     homepage = "https://launchpad.net/libindicator";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libinfinity/default.nix b/pkgs/development/libraries/libinfinity/default.nix
index c4285220af3d9..e720ee8b07262 100644
--- a/pkgs/development/libraries/libinfinity/default.nix
+++ b/pkgs/development/libraries/libinfinity/default.nix
@@ -42,7 +42,7 @@ let
 
     meta = {
       homepage = "https://gobby.github.io/";
-      description = "An implementation of the Infinote protocol written in GObject-based C";
+      description = "Implementation of the Infinote protocol written in GObject-based C";
       mainProgram = "infinoted-0.7";
       license = lib.licenses.lgpl2Plus;
       maintainers = [ ];
diff --git a/pkgs/development/libraries/libinklevel/default.nix b/pkgs/development/libraries/libinklevel/default.nix
index 0179009be3f9b..945fa0df5962d 100644
--- a/pkgs/development/libraries/libinklevel/default.nix
+++ b/pkgs/development/libraries/libinklevel/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" "doc" ];
 
   meta = with lib; {
-    description = "A library for checking the ink level of your printer";
+    description = "Library for checking the ink level of your printer";
     longDescription = ''
       Libinklevel is a library for checking the ink level of your printer on a
       system which runs Linux or FreeBSD. It supports printers attached via
diff --git a/pkgs/development/libraries/libipfix/default.nix b/pkgs/development/libraries/libipfix/default.nix
index 96fd190e15bbb..e6ddb9b471c7c 100644
--- a/pkgs/development/libraries/libipfix/default.nix
+++ b/pkgs/development/libraries/libipfix/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://libipfix.sourceforge.net/";
-    description = "The libipfix C-library implements the IPFIX protocol defined by the IP Flow Information Export working group of the IETF";
+    description = "Libipfix C-library implements the IPFIX protocol defined by the IP Flow Information Export working group of the IETF";
     mainProgram = "ipfix_collector";
     license = licenses.lgpl3;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libircclient/default.nix b/pkgs/development/libraries/libircclient/default.nix
index 56a9f1b961cf9..9d64b53c13f4b 100644
--- a/pkgs/development/libraries/libircclient/default.nix
+++ b/pkgs/development/libraries/libircclient/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A small but extremely powerful library which implements the client IRC protocol";
+    description = "Small but extremely powerful library which implements the client IRC protocol";
     homepage    = "http://www.ulduzsoft.com/libircclient/";
     license     = licenses.lgpl3;
     maintainers = with maintainers; [ obadz ];
diff --git a/pkgs/development/libraries/libjaylink/default.nix b/pkgs/development/libraries/libjaylink/default.nix
index 5d461940dcea9..f313241d6d865 100644
--- a/pkgs/development/libraries/libjaylink/default.nix
+++ b/pkgs/development/libraries/libjaylink/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.zapb.de/libjaylink/libjaylink";
-    description = "libjaylink is a shared library written in C to access SEGGER J-Link and compatible devices.";
+    description = "libjaylink is a shared library written in C to access SEGGER J-Link and compatible devices";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ felixsinger ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libjpeg-turbo/default.nix b/pkgs/development/libraries/libjpeg-turbo/default.nix
index 2a32bbfd7c467..9055e75de47f8 100644
--- a/pkgs/development/libraries/libjpeg-turbo/default.nix
+++ b/pkgs/development/libraries/libjpeg-turbo/default.nix
@@ -101,7 +101,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://libjpeg-turbo.org/";
-    description = "A faster (using SIMD) libjpeg implementation";
+    description = "Faster (using SIMD) libjpeg implementation";
     license = licenses.ijg; # and some parts under other BSD-style licenses
     pkgConfigModules = [ "libjpeg" "libturbojpeg" ];
     maintainers = with maintainers; [ vcunat colemickens kamadorueda ];
diff --git a/pkgs/development/libraries/libjpeg/default.nix b/pkgs/development/libraries/libjpeg/default.nix
index d161ff362bcbc..6b1c80c6db2a3 100644
--- a/pkgs/development/libraries/libjpeg/default.nix
+++ b/pkgs/development/libraries/libjpeg/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://www.ijg.org/";
-    description = "A library that implements the JPEG image file format";
+    description = "Library that implements the JPEG image file format";
     maintainers = with maintainers; [ ];
     license = licenses.free;
     pkgConfigModules = [ "libjpeg" ];
diff --git a/pkgs/development/libraries/libjson/default.nix b/pkgs/development/libraries/libjson/default.nix
index 30e36e9658583..dd68957616b6f 100644
--- a/pkgs/development/libraries/libjson/default.nix
+++ b/pkgs/development/libraries/libjson/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://libjson.sourceforge.net/";
-    description = "A JSON reader and writer";
+    description = "JSON reader and writer";
     longDescription = ''
       A JSON reader and writer which is super-efficient and
       usually runs circles around other JSON libraries.
diff --git a/pkgs/development/libraries/libjxl/default.nix b/pkgs/development/libraries/libjxl/default.nix
index ab9ff488b3518..1b0888348c594 100644
--- a/pkgs/development/libraries/libjxl/default.nix
+++ b/pkgs/development/libraries/libjxl/default.nix
@@ -140,7 +140,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/libjxl/libjxl";
-    description = "JPEG XL image format reference implementation.";
+    description = "JPEG XL image format reference implementation";
     license = licenses.bsd3;
     maintainers = with maintainers; [ nh2 ];
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/libkate/default.nix b/pkgs/development/libraries/libkate/default.nix
index d2ef623bf1577..d1a9711ddd891 100644
--- a/pkgs/development/libraries/libkate/default.nix
+++ b/pkgs/development/libraries/libkate/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libogg libpng ];
 
   meta = with lib; {
-    description = "A library for encoding and decoding Kate streams";
+    description = "Library for encoding and decoding Kate streams";
     longDescription = ''
       This is libkate, the reference implementation of a codec for the Kate
       bitstream format. Kate is a karaoke and text codec meant for encapsulation
diff --git a/pkgs/development/libraries/libkrun/default.nix b/pkgs/development/libraries/libkrun/default.nix
index 6a66320299279..9549edc2caebf 100644
--- a/pkgs/development/libraries/libkrun/default.nix
+++ b/pkgs/development/libraries/libkrun/default.nix
@@ -13,18 +13,18 @@
 
 stdenv.mkDerivation rec {
   pname = "libkrun";
-  version = "1.8.1";
+  version = "1.9.2";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "libkrun";
     rev = "refs/tags/v${version}";
-    hash = "sha256-rrNiqwx4aEOB3fTyv8xcZEDsNJX4NNPhp13W0qnl1O0=";
+    hash = "sha256-R8JofaoqEM6IL4mr10kOWH0GfqwuyG2qkFjGR1+0fXw=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit pname version src;
-    hash = "sha256-6Zfy0LtxUDZzwlhul2fZpsI1c7GWntAMfsT6j+QefVs=";
+    hash = "sha256-gPWTFl5YrlWDBXyksc9TidOzQf42bSJ05pdqtErk844=";
   };
 
   nativeBuildInputs = [
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A dynamic library providing Virtualization-based process isolation capabilities";
+    description = "Dynamic library providing Virtualization-based process isolation capabilities";
     homepage = "https://github.com/containers/libkrun";
     license = licenses.asl20;
     maintainers = with maintainers; [ nickcao ];
diff --git a/pkgs/development/libraries/libkrunfw/default.nix b/pkgs/development/libraries/libkrunfw/default.nix
index f4f67db652cac..0485c82ffb41e 100644
--- a/pkgs/development/libraries/libkrunfw/default.nix
+++ b/pkgs/development/libraries/libkrunfw/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A dynamic library bundling the guest payload consumed by libkrun";
+    description = "Dynamic library bundling the guest payload consumed by libkrun";
     homepage = "https://github.com/containers/libkrunfw";
     license = with licenses; [ lgpl2Only lgpl21Only ];
     maintainers = with maintainers; [ nickcao ];
diff --git a/pkgs/development/libraries/liblangtag/default.nix b/pkgs/development/libraries/liblangtag/default.nix
index 0988bb9259d74..38f1cc03cac48 100644
--- a/pkgs/development/libraries/liblangtag/default.nix
+++ b/pkgs/development/libraries/liblangtag/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook gtk-doc gettext pkg-config unzip gobject-introspection ];
 
   meta = with lib; {
-    description = "An interface library to access tags for identifying languages";
+    description = "Interface library to access tags for identifying languages";
     license = licenses.mpl20;
     maintainers = [ maintainers.raskin ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libliftoff/default.nix b/pkgs/development/libraries/libliftoff/default.nix
index 08b7ab13a2758..4bcf6ae166a05 100644
--- a/pkgs/development/libraries/libliftoff/default.nix
+++ b/pkgs/development/libraries/libliftoff/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libdrm ];
 
   meta = with lib; {
-    description = "A lightweight KMS plane library";
+    description = "Lightweight KMS plane library";
     longDescription = ''
       libliftoff eases the use of KMS planes from userspace without standing in
       your way. Users create "virtual planes" called layers, set KMS properties
diff --git a/pkgs/development/libraries/liblinear/default.nix b/pkgs/development/libraries/liblinear/default.nix
index b75aba83de691..449792a07e826 100644
--- a/pkgs/development/libraries/liblinear/default.nix
+++ b/pkgs/development/libraries/liblinear/default.nix
@@ -33,7 +33,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A library for large linear classification";
+    description = "Library for large linear classification";
     homepage = "https://www.csie.ntu.edu.tw/~cjlin/liblinear/";
     license = licenses.bsd3;
     maintainers = [ ];
diff --git a/pkgs/development/libraries/liblouis/default.nix b/pkgs/development/libraries/liblouis/default.nix
index a5c0bf92751fa..8d2a4044458e5 100644
--- a/pkgs/development/libraries/liblouis/default.nix
+++ b/pkgs/development/libraries/liblouis/default.nix
@@ -13,7 +13,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "liblouis";
-  version = "3.29.0";
+  version = "3.30.0";
 
   outputs = [ "out" "dev" "info" "doc" ]
     # configure: WARNING: cannot generate manual pages while cross compiling
@@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "liblouis";
     repo = "liblouis";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-TaMPl53FlUSZIsjhoTYcv3Y+j86fDHuBTjiyr/uP1tM=";
+    hash = "sha256-VeDthGET1PcKXzXkztJCcN6yXgf51bcIyawuyUurwBs=";
   };
 
   strictDeps = true;
diff --git a/pkgs/development/libraries/liblxi/default.nix b/pkgs/development/libraries/liblxi/default.nix
index 8531c8ea7c4c5..24c454d4ee7e8 100644
--- a/pkgs/development/libraries/liblxi/default.nix
+++ b/pkgs/development/libraries/liblxi/default.nix
@@ -3,17 +3,24 @@
 , libtirpc, rpcsvc-proto, avahi, libxml2
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "liblxi";
   version = "1.20";
 
   src = fetchFromGitHub {
     owner = "lxi-tools";
     repo = "liblxi";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     hash = "sha256-jS0huNkbyKrsJ3NkenrYtjkzLakOsTJpwlgSo98ribE=";
   };
 
+  postPatch = ''
+    # needed by darwin
+    sed -e 1i'#include <string.h>' \
+        -e 1i'#include <stdlib.h>' \
+        -i src/bonjour.c
+  '';
+
   nativeBuildInputs = [ meson ninja cmake pkg-config rpcsvc-proto ];
 
   buildInputs = lib.optionals (!stdenv.isDarwin) [
@@ -36,4 +43,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     maintainers = [ maintainers.vq ];
   };
-}
+})
diff --git a/pkgs/development/libraries/libmad/default.nix b/pkgs/development/libraries/libmad/default.nix
index eee6b4faa5d3e..a8c212ea84639 100644
--- a/pkgs/development/libraries/libmad/default.nix
+++ b/pkgs/development/libraries/libmad/default.nix
@@ -75,7 +75,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage    = "https://sourceforge.net/projects/mad/";
-    description = "A high-quality, fixed-point MPEG audio decoder supporting MPEG-1 and MPEG-2";
+    description = "High-quality, fixed-point MPEG audio decoder supporting MPEG-1 and MPEG-2";
     license     = licenses.gpl2;
     maintainers = with maintainers; [ lovek323 ];
     platforms   = platforms.unix;
diff --git a/pkgs/development/libraries/libmanette/default.nix b/pkgs/development/libraries/libmanette/default.nix
index ee8891d051f0c..cd30b61f1c1fd 100644
--- a/pkgs/development/libraries/libmanette/default.nix
+++ b/pkgs/development/libraries/libmanette/default.nix
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A simple GObject game controller library";
+    description = "Simple GObject game controller library";
     mainProgram = "manette-test";
     homepage = "https://gnome.pages.gitlab.gnome.org/libmanette/";
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/libraries/libmatheval/default.nix b/pkgs/development/libraries/libmatheval/default.nix
index c2084b007a619..7ee8b86566472 100644
--- a/pkgs/development/libraries/libmatheval/default.nix
+++ b/pkgs/development/libraries/libmatheval/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   env.NIX_LDFLAGS = "-L${guile}/lib -lguile-${guile.effectiveVersion}";
 
   meta = {
-    description = "A library to parse and evaluate symbolic expressions input as text";
+    description = "Library to parse and evaluate symbolic expressions input as text";
     longDescription = ''
       GNU libmatheval is a library (callable from C and Fortran) to parse and evaluate symbolic
       expressions input as text. It supports expressions in any number of variables of arbitrary
diff --git a/pkgs/development/libraries/libmatroska/default.nix b/pkgs/development/libraries/libmatroska/default.nix
index aee9176790e2e..8bbd6d9d9df03 100644
--- a/pkgs/development/libraries/libmatroska/default.nix
+++ b/pkgs/development/libraries/libmatroska/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A library to parse Matroska files";
+    description = "Library to parse Matroska files";
     homepage = "https://matroska.org/";
     license = licenses.lgpl21;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/libraries/libmd/default.nix b/pkgs/development/libraries/libmd/default.nix
index bf156fb1c55dd..867bd5dc9ba3e 100644
--- a/pkgs/development/libraries/libmd/default.nix
+++ b/pkgs/development/libraries/libmd/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, autoreconfHook }:
+{ lib, stdenv, fetchurl, autoreconfHook }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libmd";
diff --git a/pkgs/development/libraries/libmikmod/default.nix b/pkgs/development/libraries/libmikmod/default.nix
index 90b548bef73ab..f3122d8ab2105 100644
--- a/pkgs/development/libraries/libmikmod/default.nix
+++ b/pkgs/development/libraries/libmikmod/default.nix
@@ -27,7 +27,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A library for playing tracker music module files";
+    description = "Library for playing tracker music module files";
     mainProgram = "libmikmod-config";
     homepage    = "https://mikmod.shlomifish.org/";
     license     = licenses.lgpl2Plus;
diff --git a/pkgs/development/libraries/libmowgli/default.nix b/pkgs/development/libraries/libmowgli/default.nix
index a2a3971844bc1..5c999c4c1d484 100644
--- a/pkgs/development/libraries/libmowgli/default.nix
+++ b/pkgs/development/libraries/libmowgli/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A development framework for C providing high performance and highly flexible algorithms";
+    description = "Development framework for C providing high performance and highly flexible algorithms";
     homepage = "https://github.com/atheme/libmowgli-2";
     license = licenses.isc;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libmpeg2/default.nix b/pkgs/development/libraries/libmpeg2/default.nix
index bf5f25ca43f8a..289d5beac8d74 100644
--- a/pkgs/development/libraries/libmpeg2/default.nix
+++ b/pkgs/development/libraries/libmpeg2/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://libmpeg2.sourceforge.net/";
-    description = "A free library for decoding mpeg-2 and mpeg-1 video streams";
+    description = "Free library for decoding mpeg-2 and mpeg-1 video streams";
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [ ];
     platforms = with lib.platforms; unix;
diff --git a/pkgs/development/libraries/libmspack/default.nix b/pkgs/development/libraries/libmspack/default.nix
index d03cdd635cd13..136a303109162 100644
--- a/pkgs/development/libraries/libmspack/default.nix
+++ b/pkgs/development/libraries/libmspack/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "A de/compression library for various Microsoft formats";
+    description = "De/compression library for various Microsoft formats";
     homepage = "https://www.cabextract.org.uk/libmspack";
     license = lib.licenses.lgpl2Only;
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/libmtp/default.nix b/pkgs/development/libraries/libmtp/default.nix
index cd6820fdab06a..ea61234333b81 100644
--- a/pkgs/development/libraries/libmtp/default.nix
+++ b/pkgs/development/libraries/libmtp/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/libmtp/libmtp";
-    description = "An implementation of Microsoft's Media Transfer Protocol";
+    description = "Implementation of Microsoft's Media Transfer Protocol";
     longDescription = ''
       libmtp is an implementation of Microsoft's Media Transfer Protocol (MTP)
       in the form of a library suitable primarily for POSIX compliant operating
diff --git a/pkgs/development/libraries/libmx/default.nix b/pkgs/development/libraries/libmx/default.nix
index c6bbde6940b13..c178e152d2304 100644
--- a/pkgs/development/libraries/libmx/default.nix
+++ b/pkgs/development/libraries/libmx/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.clutter-project.org/";
-    description = "A Clutter-based toolkit";
+    description = "Clutter-based toolkit";
     mainProgram = "mx-create-image-cache";
     longDescription =
       ''Mx is a widget toolkit using Clutter that provides a set of standard
diff --git a/pkgs/development/libraries/libnabo/default.nix b/pkgs/development/libraries/libnabo/default.nix
index 90ed45178d1fa..8be83148b5140 100644
--- a/pkgs/development/libraries/libnabo/default.nix
+++ b/pkgs/development/libraries/libnabo/default.nix
@@ -1,14 +1,14 @@
 {lib, stdenv, fetchFromGitHub, cmake, eigen, boost}:
 
 stdenv.mkDerivation rec {
-  version = "1.1.1";
+  version = "1.1.2";
   pname = "libnabo";
 
   src = fetchFromGitHub {
     owner = "ethz-asl";
     repo = "libnabo";
     rev = version;
-    sha256 = "sha256-EVbvNwj1aRhRr5PhF6Kkb/UTn4JzF174WX1C+tvBv2Q=";
+    sha256 = "sha256-/XXRwiLLaEvp+Q+c6lBiuWBb9by6o0pDf8wFtBNp7o8=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "A fast K Nearest Neighbor library for low-dimensional spaces";
+    description = "Fast K Nearest Neighbor library for low-dimensional spaces";
     license = licenses.bsd3;
     platforms   = platforms.linux;
     maintainers = with maintainers; [ cryptix ];
diff --git a/pkgs/development/libraries/libnatspec/default.nix b/pkgs/development/libraries/libnatspec/default.nix
index 4124422c85bdc..1ec57144b1a07 100644
--- a/pkgs/development/libraries/libnatspec/default.nix
+++ b/pkgs/development/libraries/libnatspec/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://natspec.sourceforge.net/";
-    description = "A library intended to smooth national specificities in using of programs";
+    description = "Library intended to smooth national specificities in using of programs";
     mainProgram = "natspec";
     platforms = platforms.unix;
     license = licenses.lgpl21;
diff --git a/pkgs/development/libraries/libnbd/default.nix b/pkgs/development/libraries/libnbd/default.nix
index 7a2e358d572be..c7e9e2b087e34 100644
--- a/pkgs/development/libraries/libnbd/default.nix
+++ b/pkgs/development/libraries/libnbd/default.nix
@@ -4,6 +4,7 @@
 , bash-completion
 , pkg-config
 , perl
+, buildPythonBindings ? false, python3
 , libxml2
 , fuse
 , fuse3
@@ -23,7 +24,8 @@ stdenv.mkDerivation rec {
     bash-completion
     pkg-config
     perl
-  ];
+  ]
+    ++ lib.optionals buildPythonBindings [ python3 ];
 
   buildInputs = [
     fuse
@@ -32,8 +34,16 @@ stdenv.mkDerivation rec {
     libxml2
   ];
 
+  configureFlags = lib.optionals buildPythonBindings [ "--with-python-installdir=${placeholder "out"}/${python3.sitePackages}" ];
+
   installFlags = [ "bashcompdir=$(out)/share/bash-completion/completions" ];
 
+  postInstall = lib.optionalString buildPythonBindings ''
+    LIBNBD_PYTHON_METADATA='${placeholder "out"}/${python3.sitePackages}/nbd-${version}.dist-info/METADATA'
+    install -Dm644 -T ${./libnbd-metadata} $LIBNBD_PYTHON_METADATA
+    substituteAllInPlace $LIBNBD_PYTHON_METADATA
+  '';
+
   meta = with lib; {
     homepage = "https://gitlab.com/nbdkit/libnbd";
     description = "Network Block Device client library in userspace";
@@ -59,5 +69,4 @@ stdenv.mkDerivation rec {
 }
 # TODO: package the 1.6-stable version too
 # TODO: git version needs ocaml
-# TODO: bindings for go, ocaml and python
-
+# TODO: bindings for go and ocaml
diff --git a/pkgs/development/libraries/libnbd/libnbd-metadata b/pkgs/development/libraries/libnbd/libnbd-metadata
new file mode 100644
index 0000000000000..7d91ab88d2015
--- /dev/null
+++ b/pkgs/development/libraries/libnbd/libnbd-metadata
@@ -0,0 +1,3 @@
+Metadata-Version: 2.1
+Name: nbd
+Version: @version@
diff --git a/pkgs/development/libraries/libnftnl/default.nix b/pkgs/development/libraries/libnftnl/default.nix
index 941ef5dad79f8..52c906ad5f185 100644
--- a/pkgs/development/libraries/libnftnl/default.nix
+++ b/pkgs/development/libraries/libnftnl/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libmnl ];
 
   meta = with lib; {
-    description = "A userspace library providing a low-level netlink API to the in-kernel nf_tables subsystem";
+    description = "Userspace library providing a low-level netlink API to the in-kernel nf_tables subsystem";
     homepage = "https://netfilter.org/projects/libnftnl/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libngspice/default.nix b/pkgs/development/libraries/libngspice/default.nix
index 6da456b26ed66..eb6a057dcae35 100644
--- a/pkgs/development/libraries/libngspice/default.nix
+++ b/pkgs/development/libraries/libngspice/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "The Next Generation Spice (Electronic Circuit Simulator)";
+    description = "Next Generation Spice (Electronic Circuit Simulator)";
     mainProgram = "ngspice";
     homepage = "http://ngspice.sourceforge.net";
     license = with licenses; [ bsd3 gpl2Plus lgpl2Plus ]; # See https://sourceforge.net/p/ngspice/ngspice/ci/master/tree/COPYING
diff --git a/pkgs/development/libraries/libnotify/default.nix b/pkgs/development/libraries/libnotify/default.nix
index 589703f574c61..cb8506dca6ca5 100644
--- a/pkgs/development/libraries/libnotify/default.nix
+++ b/pkgs/development/libraries/libnotify/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A library that sends desktop notifications to a notification daemon";
+    description = "Library that sends desktop notifications to a notification daemon";
     homepage = "https://gitlab.gnome.org/GNOME/libnotify";
     license = licenses.lgpl21;
     maintainers = teams.gnome.members;
diff --git a/pkgs/development/libraries/libnut/default.nix b/pkgs/development/libraries/libnut/default.nix
index 401327b0158a0..c89206209963c 100644
--- a/pkgs/development/libraries/libnut/default.nix
+++ b/pkgs/development/libraries/libnut/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A library to read/write the NUT video container format";
+    description = "Library to read/write the NUT video container format";
     homepage = "https://git.ffmpeg.org/gitweb/nut.git";
     license = licenses.mit;
     maintainers = with maintainers; [quag];
diff --git a/pkgs/development/libraries/libodfgen/default.nix b/pkgs/development/libraries/libodfgen/default.nix
index d4a6aab24c871..4f9574e079081 100644
--- a/pkgs/development/libraries/libodfgen/default.nix
+++ b/pkgs/development/libraries/libodfgen/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A base library for generating ODF documents";
+    description = "Base library for generating ODF documents";
     license = licenses.mpl20;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/liboggz/default.nix b/pkgs/development/libraries/liboggz/default.nix
index ecf013363ad73..d458590179dd2 100644
--- a/pkgs/development/libraries/liboggz/default.nix
+++ b/pkgs/development/libraries/liboggz/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://xiph.org/oggz/";
-    description = "A C library and tools for manipulating with Ogg files and streams";
+    description = "C library and tools for manipulating with Ogg files and streams";
     longDescription = ''
       Oggz comprises liboggz and the tool oggz, which provides commands to
       inspect, edit and validate Ogg files. The oggz-chop tool can also be used
diff --git a/pkgs/development/libraries/liboil/default.nix b/pkgs/development/libraries/liboil/default.nix
index 7a28ac119c345..4b112b70e7ad3 100644
--- a/pkgs/development/libraries/liboil/default.nix
+++ b/pkgs/development/libraries/liboil/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   buildFlags = lib.optional stdenv.isDarwin "CFLAGS=-fheinous-gnu-extensions";
 
   meta = with lib; {
-    description = "A library of simple functions that are optimized for various CPUs";
+    description = "Library of simple functions that are optimized for various CPUs";
     mainProgram = "oil-bugreport";
     homepage    = "https://liboil.freedesktop.org";
     license     = licenses.bsd2;
diff --git a/pkgs/development/libraries/libomxil-bellagio/default.nix b/pkgs/development/libraries/libomxil-bellagio/default.nix
index 2b5d37fad2ecc..78f37bbbb67dd 100644
--- a/pkgs/development/libraries/libomxil-bellagio/default.nix
+++ b/pkgs/development/libraries/libomxil-bellagio/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://omxil.sourceforge.net/";
-    description = "An opensource implementation of the Khronos OpenMAX Integration Layer API to access multimedia components";
+    description = "Opensource implementation of the Khronos OpenMAX Integration Layer API to access multimedia components";
     mainProgram = "omxregister-bellagio";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libopenshot-audio/default.nix b/pkgs/development/libraries/libopenshot-audio/default.nix
index bbec90a4055ae..005422295236e 100644
--- a/pkgs/development/libraries/libopenshot-audio/default.nix
+++ b/pkgs/development/libraries/libopenshot-audio/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , alsa-lib
 , cmake
 , doxygen
diff --git a/pkgs/development/libraries/libowfat/default.nix b/pkgs/development/libraries/libowfat/default.nix
index a04050458edfd..9cf52b2cc04e2 100644
--- a/pkgs/development/libraries/libowfat/default.nix
+++ b/pkgs/development/libraries/libowfat/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A GPL reimplementation of libdjb";
+    description = "GPL reimplementation of libdjb";
     homepage = "https://www.fefe.de/libowfat/";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libpar2/default.nix b/pkgs/development/libraries/libpar2/default.nix
index 772f3ff719d58..7def28b924603 100644
--- a/pkgs/development/libraries/libpar2/default.nix
+++ b/pkgs/development/libraries/libpar2/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://parchive.sourceforge.net/";
     license = lib.licenses.gpl2Plus;
-    description = "A library for using Parchives (parity archive volume sets)";
+    description = "Library for using Parchives (parity archive volume sets)";
     platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libpeas/2.x.nix b/pkgs/development/libraries/libpeas/2.x.nix
index 141114f0f34ce..e2d1bf0f82311 100644
--- a/pkgs/development/libraries/libpeas/2.x.nix
+++ b/pkgs/development/libraries/libpeas/2.x.nix
@@ -88,7 +88,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A GObject-based plugins engine";
+    description = "GObject-based plugins engine";
     homepage = "https://gitlab.gnome.org/GNOME/libpeas";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libpeas/default.nix b/pkgs/development/libraries/libpeas/default.nix
index 9a94b2aa93263..71996ce7f81be 100644
--- a/pkgs/development/libraries/libpeas/default.nix
+++ b/pkgs/development/libraries/libpeas/default.nix
@@ -82,7 +82,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A GObject-based plugins engine";
+    description = "GObject-based plugins engine";
     mainProgram = "peas-demo";
     homepage = "https://gitlab.gnome.org/GNOME/libpeas";
     license = licenses.gpl2Plus;
diff --git a/pkgs/development/libraries/libphonenumber/default.nix b/pkgs/development/libraries/libphonenumber/default.nix
index edd3379617279..ceda871932abc 100644
--- a/pkgs/development/libraries/libphonenumber/default.nix
+++ b/pkgs/development/libraries/libphonenumber/default.nix
@@ -1,14 +1,26 @@
-{ lib, stdenv, fetchFromGitHub, cmake, gtest, boost, pkg-config, protobuf, icu, Foundation, buildPackages }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, buildPackages
+, cmake
+, gtest
+, jre
+, pkg-config
+, boost
+, icu
+, protobuf
+, Foundation
+}:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "libphonenumber";
-  version = "8.12.37";
+  version = "8.13.37";
 
   src = fetchFromGitHub {
-    owner = "googlei18n";
+    owner = "google";
     repo = "libphonenumber";
-    rev = "v${version}";
-    sha256 = "sha256-xLxadSxVY3DjFDQrqj3BuOvdMaKdFSLjocfzovJCBB0=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-TQ9Hz9fnKZhZkg+hkXgFqH4TDCWMe+fcEWE6ShwSBBU=";
   };
 
   patches = [
@@ -19,29 +31,35 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     cmake
+    gtest
+    jre
     pkg-config
   ];
 
   buildInputs = [
     boost
-    protobuf
     icu
-    gtest
-  ] ++ lib.optional stdenv.isDarwin Foundation;
+    protobuf
+  ] ++ lib.optionals stdenv.isDarwin [
+    Foundation
+  ];
 
   cmakeDir = "../cpp";
-  cmakeFlags =
-    lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
-      "-DBUILD_GEOCODER=OFF"
-      "-DPROTOC_BIN=${buildPackages.protobuf}/bin/protoc"
-    ];
 
-  checkPhase = "./libphonenumber_test";
+  doCheck = true;
+
+  checkTarget = "tests";
+
+  cmakeFlags = lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
+    (lib.cmakeFeature "CMAKE_CROSSCOMPILING_EMULATOR" (stdenv.hostPlatform.emulator buildPackages))
+    (lib.cmakeFeature "PROTOC_BIN" (lib.getExe buildPackages.protobuf))
+  ];
 
   meta = with lib; {
+    changelog = "https://github.com/google/libphonenumber/blob/${finalAttrs.src.rev}/release_notes.txt";
     description = "Google's i18n library for parsing and using phone numbers";
     homepage = "https://github.com/google/libphonenumber";
     license = licenses.asl20;
     maintainers = with maintainers; [ illegalprime ];
   };
-}
+})
diff --git a/pkgs/development/libraries/libplacebo/default.nix b/pkgs/development/libraries/libplacebo/default.nix
index 558acc4bbbeb8..5759d9bed505b 100644
--- a/pkgs/development/libraries/libplacebo/default.nix
+++ b/pkgs/development/libraries/libplacebo/default.nix
@@ -15,6 +15,7 @@
 , libdovi
 , xxHash
 , fast-float
+, vulkanSupport ? true
 }:
 
 stdenv.mkDerivation rec {
@@ -33,13 +34,11 @@ stdenv.mkDerivation rec {
     meson
     ninja
     pkg-config
-    vulkan-headers
     python3Packages.jinja2
     python3Packages.glad2
   ];
 
   buildInputs = [
-    vulkan-loader
     shaderc
     lcms2
     libGL
@@ -47,15 +46,19 @@ stdenv.mkDerivation rec {
     libunwind
     libdovi
     xxHash
+    vulkan-headers
+  ] ++ lib.optionals vulkanSupport [
+    vulkan-loader
   ] ++ lib.optionals (!stdenv.cc.isGNU) [
     fast-float
   ];
 
   mesonFlags = with lib; [
-    (mesonOption "vulkan-registry" "${vulkan-headers}/share/vulkan/registry/vk.xml")
     (mesonBool "demos" false) # Don't build and install the demo programs
     (mesonEnable "d3d11" false) # Disable the Direct3D 11 based renderer
     (mesonEnable "glslang" false) # rely on shaderc for GLSL compilation instead
+    (mesonEnable "vk-proc-addr" vulkanSupport)
+    (mesonOption "vulkan-registry" "${vulkan-headers}/share/vulkan/registry/vk.xml")
   ] ++ optionals stdenv.isDarwin [
     (mesonEnable "unwind" false) # libplacebo doesn’t build with `darwin.libunwind`
   ];
diff --git a/pkgs/development/libraries/libplctag/default.nix b/pkgs/development/libraries/libplctag/default.nix
index de71d021d015d..1e0fa3160e5a1 100644
--- a/pkgs/development/libraries/libplctag/default.nix
+++ b/pkgs/development/libraries/libplctag/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libplctag";
-  version = "2.5.5";
+  version = "2.6.0";
 
   src = fetchFromGitHub {
     owner = "libplctag";
     repo = "libplctag";
     rev = "v${version}";
-    sha256 = "sha256-eWtQaYUWZNQYQOUXnbUfjrtpoO6CnNJ8WjlowA49sG0=";
+    sha256 = "sha256-+lsRYKA1FIXQXv0nfDNCAqIbqPunrzlpSC5FoF3VIsg=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/libplist/default.nix b/pkgs/development/libraries/libplist/default.nix
index 8e38347c722e1..9a69af13d2fd1 100644
--- a/pkgs/development/libraries/libplist/default.nix
+++ b/pkgs/development/libraries/libplist/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A library to handle Apple Property List format in binary or XML";
+    description = "Library to handle Apple Property List format in binary or XML";
     homepage = "https://github.com/libimobiledevice/libplist";
     license = licenses.lgpl21Plus;
     maintainers = [ ];
diff --git a/pkgs/development/libraries/libpng/12.nix b/pkgs/development/libraries/libpng/12.nix
index e94bd026a7a6b..9792447bcc888 100644
--- a/pkgs/development/libraries/libpng/12.nix
+++ b/pkgs/development/libraries/libpng/12.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "The official reference implementation for the PNG file format";
+    description = "Official reference implementation for the PNG file format";
     homepage = "http://www.libpng.org/pub/png/libpng.html";
     license = licenses.libpng;
     maintainers = [ ];
diff --git a/pkgs/development/libraries/libpng/default.nix b/pkgs/development/libraries/libpng/default.nix
index 34d7a3e580b79..11e3fb31604f7 100644
--- a/pkgs/development/libraries/libpng/default.nix
+++ b/pkgs/development/libraries/libpng/default.nix
@@ -20,7 +20,11 @@ in stdenv.mkDerivation (finalAttrs: {
     url = "mirror://sourceforge/libpng/libpng-${finalAttrs.version}.tar.xz";
     hash = "sha256-alygZSOSotfJ2yrltAIQhDwLvAgcvUEIJasAzFnxSmw=";
   };
-  postPatch = whenPatched "gunzip < ${patch_src} | patch -Np1";
+  postPatch = whenPatched "gunzip < ${patch_src} | patch -Np1"
+  + lib.optionalString stdenv.isFreeBSD ''
+
+    sed -i 1i'int feenableexcept(int __mask);' contrib/libtests/pngvalid.c
+  '';
 
   outputs = [ "out" "dev" "man" ];
   outputBin = "dev";
@@ -36,7 +40,7 @@ in stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "The official reference implementation for the PNG file format" + whenPatched " with animation patch";
+    description = "Official reference implementation for the PNG file format" + whenPatched " with animation patch";
     homepage = "http://www.libpng.org/pub/png/libpng.html";
     changelog = "https://github.com/pnggroup/libpng/blob/v${finalAttrs.version}/CHANGES";
     license = licenses.libpng2;
diff --git a/pkgs/development/libraries/libpointmatcher/default.nix b/pkgs/development/libraries/libpointmatcher/default.nix
index 92e1585373479..709ca6876048a 100644
--- a/pkgs/development/libraries/libpointmatcher/default.nix
+++ b/pkgs/development/libraries/libpointmatcher/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "An \"Iterative Closest Point\" library for 2-D/3-D mapping in robotic";
+    description = "\"Iterative Closest Point\" library for 2-D/3-D mapping in robotic";
     license = licenses.bsd3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ cryptix ];
diff --git a/pkgs/development/libraries/libpostal/default.nix b/pkgs/development/libraries/libpostal/default.nix
index fbeb60022a1dc..1d0ea162d1d6b 100644
--- a/pkgs/development/libraries/libpostal/default.nix
+++ b/pkgs/development/libraries/libpostal/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals stdenv.hostPlatform.isAarch64 [ "--disable-sse2" ];
 
   meta = with lib; {
-    description = "A C library for parsing/normalizing street addresses around the world. Powered by statistical NLP and open geo data";
+    description = "C library for parsing/normalizing street addresses around the world. Powered by statistical NLP and open geo data";
     homepage = "https://github.com/openvenues/libpostal";
     license = licenses.mit;
     maintainers = [ maintainers.Thra11 ];
diff --git a/pkgs/development/libraries/libpqxx/6.nix b/pkgs/development/libraries/libpqxx/6.nix
index 1c2a98fcb3c99..ff394526ea207 100644
--- a/pkgs/development/libraries/libpqxx/6.nix
+++ b/pkgs/development/libraries/libpqxx/6.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--enable-shared" ];
 
   meta = {
-    description = "A C++ library to access PostgreSQL databases";
+    description = "C++ library to access PostgreSQL databases";
     homepage = "https://pqxx.org/development/libpqxx/";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/libpqxx/default.nix b/pkgs/development/libraries/libpqxx/default.nix
index acb0013035cbf..13fecb9b56bfc 100644
--- a/pkgs/development/libraries/libpqxx/default.nix
+++ b/pkgs/development/libraries/libpqxx/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   CXXFLAGS = [ "-std=c++17" ];
 
   meta = {
-    description = "A C++ library to access PostgreSQL databases";
+    description = "C++ library to access PostgreSQL databases";
     homepage = "https://pqxx.org/development/libpqxx/";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/libproxy/default.nix b/pkgs/development/libraries/libproxy/default.nix
index 28b4ac66004d6..1183f46799ef5 100644
--- a/pkgs/development/libraries/libproxy/default.nix
+++ b/pkgs/development/libraries/libproxy/default.nix
@@ -117,7 +117,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A library that provides automatic proxy configuration management";
+    description = "Library that provides automatic proxy configuration management";
     homepage = "https://libproxy.github.io/libproxy/";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/pkgs/development/libraries/libpst/default.nix b/pkgs/development/libraries/libpst/default.nix
index d6d33957b9a62..9b2ff09850262 100644
--- a/pkgs/development/libraries/libpst/default.nix
+++ b/pkgs/development/libraries/libpst/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://www.five-ten-sg.com/libpst/";
-    description = "A library to read PST (MS Outlook Personal Folders) files";
+    description = "Library to read PST (MS Outlook Personal Folders) files";
     license = licenses.gpl2Plus;
     maintainers = [ ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libqalculate/default.nix b/pkgs/development/libraries/libqalculate/default.nix
index a99b27d38d8c0..b8df75b3c1781 100644
--- a/pkgs/development/libraries/libqalculate/default.nix
+++ b/pkgs/development/libraries/libqalculate/default.nix
@@ -72,7 +72,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "An advanced calculator library";
+    description = "Advanced calculator library";
     homepage = "http://qalculate.github.io";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ gebner doronbehar alyaeanyx ];
diff --git a/pkgs/development/libraries/libqb/default.nix b/pkgs/development/libraries/libqb/default.nix
index fe54cdf3d338f..080078d2b7fac 100644
--- a/pkgs/development/libraries/libqb/default.nix
+++ b/pkgs/development/libraries/libqb/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/clusterlabs/libqb";
-    description = "A library providing high performance logging, tracing, ipc, and poll";
+    description = "Library providing high performance logging, tracing, ipc, and poll";
     license = licenses.lgpl21Plus;
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/libraries/libqtav/default.nix b/pkgs/development/libraries/libqtav/default.nix
index afae47c96d3d7..17862e23b75bc 100644
--- a/pkgs/development/libraries/libqtav/default.nix
+++ b/pkgs/development/libraries/libqtav/default.nix
@@ -61,7 +61,7 @@ mkDerivation rec {
   stripDebugList = [ "lib" "libexec" "bin" "qml" ];
 
   meta =  with lib; {
-    description = "A multimedia playback framework based on Qt + FFmpeg";
+    description = "Multimedia playback framework based on Qt + FFmpeg";
     #license = licenses.lgpl21; # For the libraries / headers only.
     license = licenses.gpl3; # With the examples (under bin) and most likely some of the optional dependencies used.
     homepage = "http://www.qtav.org/";
diff --git a/pkgs/development/libraries/libquotient/default.nix b/pkgs/development/libraries/libquotient/default.nix
index e388f2fbacb66..916fa4a3847e7 100644
--- a/pkgs/development/libraries/libquotient/default.nix
+++ b/pkgs/development/libraries/libquotient/default.nix
@@ -39,7 +39,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Qt5/Qt6 library to write cross-platform clients for Matrix";
+    description = "Qt5/Qt6 library to write cross-platform clients for Matrix";
     homepage = "https://quotient-im.github.io/libQuotient/";
     license = licenses.lgpl21;
     maintainers = with maintainers; [ colemickens matthiasbeyer ];
diff --git a/pkgs/development/libraries/libr3/default.nix b/pkgs/development/libraries/libr3/default.nix
index 34ac547f49209..78934bbdcfb89 100644
--- a/pkgs/development/libraries/libr3/default.nix
+++ b/pkgs/development/libraries/libr3/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   strictDeps = true;
 
   meta = {
-    description = "A high-performance path dispatching library";
+    description = "High-performance path dispatching library";
     homepage = "https://github.com/c9s/r3";
     license = [ lib.licenses.mit ];
   };
diff --git a/pkgs/development/libraries/libraqm/default.nix b/pkgs/development/libraries/libraqm/default.nix
index 4ce422858f5bd..98769f2e374a0 100644
--- a/pkgs/development/libraries/libraqm/default.nix
+++ b/pkgs/development/libraries/libraqm/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A library for complex text layout";
+    description = "Library for complex text layout";
     homepage = "https://github.com/HOST-Oman/libraqm";
     license = licenses.mit;
     maintainers = with maintainers; [ sifmelcara ];
diff --git a/pkgs/development/libraries/libraspberrypi/default.nix b/pkgs/development/libraries/libraspberrypi/default.nix
index 14f02d8481e95..bb7508b1cec5f 100644
--- a/pkgs/development/libraries/libraspberrypi/default.nix
+++ b/pkgs/development/libraries/libraspberrypi/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , pkg-config
 }:
diff --git a/pkgs/development/libraries/librdf/raptor.nix b/pkgs/development/libraries/librdf/raptor.nix
index 1dde9402f9026..2afdb5d32bede 100644
--- a/pkgs/development/libraries/librdf/raptor.nix
+++ b/pkgs/development/libraries/librdf/raptor.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "The RDF Parser Toolkit";
+    description = "RDF Parser Toolkit";
     homepage = "https://librdf.org/raptor";
     license = with lib.licenses; [ lgpl21 asl20 ];
     maintainers = [ lib.maintainers.marcweber ];
diff --git a/pkgs/development/libraries/librdf/raptor2.nix b/pkgs/development/libraries/librdf/raptor2.nix
index b9d5252215cc6..424022b7ab4bc 100644
--- a/pkgs/development/libraries/librdf/raptor2.nix
+++ b/pkgs/development/libraries/librdf/raptor2.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libxml2 libxslt ];
 
   meta = {
-    description = "The RDF Parser Toolkit";
+    description = "RDF Parser Toolkit";
     mainProgram = "rapper";
     homepage = "https://librdf.org/raptor";
     license = with lib.licenses; [ lgpl21 asl20 ];
diff --git a/pkgs/development/libraries/libre/default.nix b/pkgs/development/libraries/libre/default.nix
index ace7d5f5f7866..fa419830f3c7c 100644
--- a/pkgs/development/libraries/libre/default.nix
+++ b/pkgs/development/libraries/libre/default.nix
@@ -31,9 +31,9 @@ stdenv.mkDerivation rec {
   ;
   enableParallelBuilding = true;
   meta = {
-    description = "A library for real-time communications with async IO support and a complete SIP stack";
+    description = "Library for real-time communications with async IO support and a complete SIP stack";
     homepage = "https://github.com/baresip/re";
-    maintainers = with lib.maintainers; [ elohmeier raskin ];
+    maintainers = with lib.maintainers; [ raskin ];
     license = lib.licenses.bsd3;
   };
 }
diff --git a/pkgs/development/libraries/librealsense/default.nix b/pkgs/development/libraries/librealsense/default.nix
index cb69770f054a0..527f61b603937 100644
--- a/pkgs/development/libraries/librealsense/default.nix
+++ b/pkgs/development/libraries/librealsense/default.nix
@@ -80,7 +80,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A cross-platform library for Intel® RealSense™ depth cameras (D400 series and the SR300)";
+    description = "Cross-platform library for Intel® RealSense™ depth cameras (D400 series and the SR300)";
     homepage = "https://github.com/IntelRealSense/librealsense";
     license = licenses.asl20;
     maintainers = with maintainers; [ brian-dawn pbsds ];
diff --git a/pkgs/development/libraries/librecast/default.nix b/pkgs/development/libraries/librecast/default.nix
index 045b0bb309db0..df053e0ad9031 100644
--- a/pkgs/development/libraries/librecast/default.nix
+++ b/pkgs/development/libraries/librecast/default.nix
@@ -6,7 +6,7 @@
   libsodium,
 }:
 stdenv.mkDerivation (finalAttrs: {
-  name = "librecast";
+  pname = "librecast";
   version = "0.8.0";
 
   src = fetchFromGitea {
diff --git a/pkgs/development/libraries/librelp/default.nix b/pkgs/development/libraries/librelp/default.nix
index 59836861e7cdf..258067c083002 100644
--- a/pkgs/development/libraries/librelp/default.nix
+++ b/pkgs/development/libraries/librelp/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ gnutls zlib openssl ];
 
   meta = with lib; {
-    description = "A reliable logging library";
+    description = "Reliable logging library";
     homepage = "https://www.librelp.com/";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/librem/default.nix b/pkgs/development/libraries/librem/default.nix
index 8a1d24948aa4a..10dba7e7a59dd 100644
--- a/pkgs/development/libraries/librem/default.nix
+++ b/pkgs/development/libraries/librem/default.nix
@@ -25,9 +25,9 @@ stdenv.mkDerivation rec {
   ;
   enableParallelBuilding = true;
   meta = {
-    description = "A library for real-time audio and video processing";
+    description = "Library for real-time audio and video processing";
     homepage = "https://github.com/baresip/rem";
-    maintainers = with lib.maintainers; [ elohmeier raskin ];
+    maintainers = with lib.maintainers; [ raskin ];
     license = lib.licenses.bsd3;
   };
 }
diff --git a/pkgs/development/libraries/libremidi/default.nix b/pkgs/development/libraries/libremidi/default.nix
index 4c19375a07f15..48014bea07416 100644
--- a/pkgs/development/libraries/libremidi/default.nix
+++ b/pkgs/development/libraries/libremidi/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A modern C++ MIDI real-time & file I/O library";
+    description = "Modern C++ MIDI real-time & file I/O library";
     homepage = "https://github.com/jcelerier/libremidi";
     maintainers = [ ];
     license = lib.licenses.bsd2;
diff --git a/pkgs/development/libraries/libresample/default.nix b/pkgs/development/libraries/libresample/default.nix
index f466229cfe8e8..6ca1d09ef202f 100644
--- a/pkgs/development/libraries/libresample/default.nix
+++ b/pkgs/development/libraries/libresample/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
 
   meta = {
-    description = "A real-time library for sampling rate conversion library";
+    description = "Real-time library for sampling rate conversion library";
     license = lib.licenses.lgpl2Plus;
     homepage = "https://ccrma.stanford.edu/~jos/resample/Free_Resampling_Software.html";
     maintainers = [ lib.maintainers.sander ];
diff --git a/pkgs/development/libraries/librevenge/default.nix b/pkgs/development/libraries/librevenge/default.nix
index 1dd71d1e311b1..e8733a324cabc 100644
--- a/pkgs/development/libraries/librevenge/default.nix
+++ b/pkgs/development/libraries/librevenge/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A base library for writing document import filters";
+    description = "Base library for writing document import filters";
     license = licenses.mpl20;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/librist/default.nix b/pkgs/development/libraries/librist/default.nix
index 3f56ff3248767..788e75eafddae 100644
--- a/pkgs/development/libraries/librist/default.nix
+++ b/pkgs/development/libraries/librist/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A library that can be used to easily add the RIST protocol to your application.";
+    description = "Library that can be used to easily add the RIST protocol to your application";
     homepage = "https://code.videolan.org/rist/librist";
     license = with licenses; [ bsd2 mit isc ];
     maintainers = with maintainers; [ raphaelr sebtm ];
diff --git a/pkgs/development/libraries/librsvg/default.nix b/pkgs/development/libraries/librsvg/default.nix
index a682b39bbcd80..e9a9eb977db3f 100644
--- a/pkgs/development/libraries/librsvg/default.nix
+++ b/pkgs/development/libraries/librsvg/default.nix
@@ -42,7 +42,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "librsvg";
-  version = "2.58.0";
+  version = "2.58.1";
 
   outputs = [ "out" "dev" ] ++ lib.optionals withIntrospection [
     "devdoc"
@@ -50,13 +50,13 @@ stdenv.mkDerivation (finalAttrs: {
 
   src = fetchurl {
     url = "mirror://gnome/sources/librsvg/${lib.versions.majorMinor finalAttrs.version}/librsvg-${finalAttrs.version}.tar.xz";
-    hash = "sha256-18REqSZAa1l5C+DerhluGO0mBZ2lc/oaqeycp2WKVZw=";
+    hash = "sha256-NyhZYpCoV20wXQbsiv30c1Fv7unf8i4DI16sQz1Wgk4=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit (finalAttrs) src;
     name = "librsvg-deps-${finalAttrs.version}";
-    hash = "sha256-ta+3KkDtqTLGoKknUn89c+3XHzvcZyPFPFpgLH5f5uw=";
+    hash = "sha256-FIW92Cr83YkGTOe/xjyZGZvHYSrG70GBpHc9l0sMjLg=";
     # TODO: move this to fetchCargoTarball
     dontConfigure = true;
   };
@@ -184,14 +184,7 @@ stdenv.mkDerivation (finalAttrs: {
                 jq
                 nix
               ]}
-              # update-source-version does not allow updating to the same version so we need to clear it temporarily.
-              # Get the current version so that we can restore it later.
-              latestVersion=$(nix-instantiate --eval -A librsvg.version | jq --raw-output)
-              # Clear the version. Provide hash so that we do not need to do pointless TOFU.
-              # Needs to be a fake SRI hash that is non-zero, since u-s-v uses zero as a placeholder.
-              # Also cannot be here verbatim or u-s-v would be confused what to replace.
-              update-source-version librsvg 0 "sha256-${lib.fixedWidthString 44 "B" "="}" --source-key=cargoDeps > /dev/null
-              update-source-version librsvg "$latestVersion" --source-key=cargoDeps > /dev/null
+              update-source-version librsvg --ignore-same-version --source-key=cargoDeps > /dev/null
             ''
           ];
           # Experimental feature: do not copy!
@@ -216,7 +209,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A small library to render SVG images to Cairo surfaces";
+    description = "Small library to render SVG images to Cairo surfaces";
     homepage = "https://gitlab.gnome.org/GNOME/librsvg";
     license = licenses.lgpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/development/libraries/libs3/default.nix b/pkgs/development/libraries/libs3/default.nix
index 4bea630c1b278..10b10529f7ba0 100644
--- a/pkgs/development/libraries/libs3/default.nix
+++ b/pkgs/development/libraries/libs3/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/bji/libs3";
-    description = "A library for interfacing with amazon s3";
+    description = "Library for interfacing with amazon s3";
     mainProgram = "s3";
     license = licenses.lgpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libsass/default.nix b/pkgs/development/libraries/libsass/default.nix
index 005e74289df7e..027cfa2b5c8be 100644
--- a/pkgs/development/libraries/libsass/default.nix
+++ b/pkgs/development/libraries/libsass/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A C/C++ implementation of a Sass compiler";
+    description = "C/C++ implementation of a Sass compiler";
     homepage = "https://github.com/sass/libsass";
     license = licenses.mit;
     maintainers = with maintainers; [ codyopel offline ];
diff --git a/pkgs/development/libraries/libschrift/default.nix b/pkgs/development/libraries/libschrift/default.nix
index 443550e8a0a16..376c0abbcdf94 100644
--- a/pkgs/development/libraries/libschrift/default.nix
+++ b/pkgs/development/libraries/libschrift/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch }:
+{ lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "libschrift";
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/tomolt/libschrift";
-    description = "A lightweight TrueType font rendering library";
+    description = "Lightweight TrueType font rendering library";
     license = licenses.isc;
     platforms = platforms.all;
     maintainers = [ maintainers.sternenseemann ];
diff --git a/pkgs/development/libraries/libsearpc/default.nix b/pkgs/development/libraries/libsearpc/default.nix
index 6d4675717f0d2..94034d6167cbf 100644
--- a/pkgs/development/libraries/libsearpc/default.nix
+++ b/pkgs/development/libraries/libsearpc/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/haiwen/libsearpc";
-    description = "A simple and easy-to-use C language RPC framework based on GObject System";
+    description = "Simple and easy-to-use C language RPC framework based on GObject System";
     mainProgram = "searpc-codegen.py";
     license = licenses.lgpl3;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libsecret/default.nix b/pkgs/development/libraries/libsecret/default.nix
index 10eee1a6bbb00..d0b1515d0bad9 100644
--- a/pkgs/development/libraries/libsecret/default.nix
+++ b/pkgs/development/libraries/libsecret/default.nix
@@ -129,7 +129,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "A library for storing and retrieving passwords and other secrets";
+    description = "Library for storing and retrieving passwords and other secrets";
     homepage = "https://gitlab.gnome.org/GNOME/libsecret";
     license = lib.licenses.lgpl21Plus;
     mainProgram = "secret-tool";
diff --git a/pkgs/development/libraries/libserdes/default.nix b/pkgs/development/libraries/libserdes/default.nix
index cc66f4cc13084..11d10ff64d7c2 100644
--- a/pkgs/development/libraries/libserdes/default.nix
+++ b/pkgs/development/libraries/libserdes/default.nix
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A schema-based serializer/deserializer C/C++ library with support for Avro and the Confluent Platform Schema Registry";
+    description = "Schema-based serializer/deserializer C/C++ library with support for Avro and the Confluent Platform Schema Registry";
     homepage = "https://github.com/confluentinc/libserdes";
     license = licenses.asl20;
     maintainers = with maintainers; [ liff ];
diff --git a/pkgs/development/libraries/libshumate/default.nix b/pkgs/development/libraries/libshumate/default.nix
index cc6723162a085..d0e6e95ad0c7b 100644
--- a/pkgs/development/libraries/libshumate/default.nix
+++ b/pkgs/development/libraries/libshumate/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch2
 , gi-docgen
 , meson
 , ninja
@@ -21,26 +20,18 @@
 , gnome
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "libshumate";
-  version = "1.2.1";
+  version = "1.2.2";
 
   outputs = [ "out" "dev" "devdoc" ];
   outputBin = "devdoc"; # demo app
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-EQXuB34hR/KgOc3fphb6XLlDiIPdlAQn4RaZ3NZUnBE=";
+    url = "mirror://gnome/sources/libshumate/${lib.versions.majorMinor finalAttrs.version}/libshumate-${finalAttrs.version}.tar.xz";
+    hash = "sha256-b1h1effy1gs40/RyfrGo0v6snL3AGOU/9fdyqGCPpEs=";
   };
 
-  patches = [
-    (fetchpatch2 {
-      # Fix tests https://gitlab.gnome.org/GNOME/libshumate/-/merge_requests/236
-      url = "https://gitlab.gnome.org/GNOME/libshumate/-/commit/852615b0df2252ea67f4f82e9ace2fc2794467b3.patch";
-      hash = "sha256-Ksye3zNNYmzP4O+QFDVODXUkFJOLDVMEZNfGXwbxWhs=";
-    })
-  ];
-
   depsBuildBuild = [
     # required to find native gi-docgen when cross compiling
     pkg-config
@@ -95,7 +86,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = "libshumate";
     };
   };
 
@@ -107,4 +98,4 @@ stdenv.mkDerivation rec {
     maintainers = teams.gnome.members;
     platforms = platforms.unix;
   };
-}
+})
diff --git a/pkgs/development/libraries/libsidplayfp/default.nix b/pkgs/development/libraries/libsidplayfp/default.nix
index 9f9f833f0f283..095406cd5fbb9 100644
--- a/pkgs/development/libraries/libsidplayfp/default.nix
+++ b/pkgs/development/libraries/libsidplayfp/default.nix
@@ -18,14 +18,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libsidplayfp";
-  version = "2.7.1";
+  version = "2.8.0";
 
   src = fetchFromGitHub {
     owner = "libsidplayfp";
     repo = "libsidplayfp";
     rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-NYdV70YEepjGMmeTALTQvlRvK3R7JjA4VJYYjOwO4AA=";
+    hash = "sha256-qZharhEZ16q3Vd2PwVsKQaP/b6bT/okwEPKKwvRl5D8=";
   };
 
   outputs = [
@@ -95,7 +95,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A library to play Commodore 64 music derived from libsidplay2";
+    description = "Library to play Commodore 64 music derived from libsidplay2";
     longDescription = ''
       libsidplayfp is a C64 music player library which integrates
       the reSID SID chip emulation into a cycle-based emulator
diff --git a/pkgs/development/libraries/libsieve/default.nix b/pkgs/development/libraries/libsieve/default.nix
index 8253d1df74fe1..12838b6269f7f 100644
--- a/pkgs/development/libraries/libsieve/default.nix
+++ b/pkgs/development/libraries/libsieve/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "An interpreter for RFC 3028 Sieve and various extensions";
+    description = "Interpreter for RFC 3028 Sieve and various extensions";
     homepage = "http://sodabrew.com/libsieve/";
     license = licenses.lgpl21;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libsigcxx/3.0.nix b/pkgs/development/libraries/libsigcxx/3.0.nix
index 5515901a1cf2a..672cb984b8ee4 100644
--- a/pkgs/development/libraries/libsigcxx/3.0.nix
+++ b/pkgs/development/libraries/libsigcxx/3.0.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://libsigcplusplus.github.io/libsigcplusplus/";
-    description = "A typesafe callback system for standard C++";
+    description = "Typesafe callback system for standard C++";
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/libsigcxx/default.nix b/pkgs/development/libraries/libsigcxx/default.nix
index c73cbaa55dc30..7e2746fb7f4c6 100644
--- a/pkgs/development/libraries/libsigcxx/default.nix
+++ b/pkgs/development/libraries/libsigcxx/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://libsigcplusplus.github.io/libsigcplusplus/";
-    description = "A typesafe callback system for standard C++";
+    description = "Typesafe callback system for standard C++";
     license = licenses.lgpl21Plus;
     platforms = platforms.all;
   };
diff --git a/pkgs/development/libraries/libsignon-glib/default.nix b/pkgs/development/libraries/libsignon-glib/default.nix
index 9f0496262f2a2..bdb6df0e52f89 100644
--- a/pkgs/development/libraries/libsignon-glib/default.nix
+++ b/pkgs/development/libraries/libsignon-glib/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A library for managing single signon credentials which can be used from GLib applications";
+    description = "Library for managing single signon credentials which can be used from GLib applications";
     homepage = "https://gitlab.com/accounts-sso/libsignon-glib";
     license = licenses.lgpl21;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/libraries/libsixel/default.nix b/pkgs/development/libraries/libsixel/default.nix
index d4fa2a4d6ffe3..5bdaafc9f15c6 100644
--- a/pkgs/development/libraries/libsixel/default.nix
+++ b/pkgs/development/libraries/libsixel/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "The SIXEL library for console graphics, and converter programs";
+    description = "SIXEL library for console graphics, and converter programs";
     homepage = "https://github.com/libsixel/libsixel";
     maintainers = with maintainers; [ vrthra ];
     license = licenses.mit;
diff --git a/pkgs/development/libraries/libskk/default.nix b/pkgs/development/libraries/libskk/default.nix
index 2f6e98e7dd0a0..8256f0525bbc6 100644
--- a/pkgs/development/libraries/libskk/default.nix
+++ b/pkgs/development/libraries/libskk/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = {
-    description = "A library to deal with Japanese kana-to-kanji conversion method";
+    description = "Library to deal with Japanese kana-to-kanji conversion method";
     mainProgram = "skk";
     longDescription = ''
       Libskk is a library that implements basic features of SKK including:
diff --git a/pkgs/development/libraries/libsmi/default.nix b/pkgs/development/libraries/libsmi/default.nix
index 14139d849dc72..5750e6677b347 100644
--- a/pkgs/development/libraries/libsmi/default.nix
+++ b/pkgs/development/libraries/libsmi/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   env.NIX_CFLAGS_COMPILE = "-std=gnu90";
 
   meta = with lib; {
-    description = "A Library to Access SMI MIB Information";
+    description = "Library to Access SMI MIB Information";
     homepage = "https://www.ibr.cs.tu-bs.de/projects/libsmi/index.html";
     license = licenses.free;
     platforms = lib.platforms.linux ++ lib.platforms.darwin;
diff --git a/pkgs/development/libraries/libsndfile/default.nix b/pkgs/development/libraries/libsndfile/default.nix
index 02dbd633281c0..0e1dfb0bc08b0 100644
--- a/pkgs/development/libraries/libsndfile/default.nix
+++ b/pkgs/development/libraries/libsndfile/default.nix
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A C library for reading and writing files containing sampled sound";
+    description = "C library for reading and writing files containing sampled sound";
     homepage    = "https://libsndfile.github.io/libsndfile/";
     changelog   = "https://github.com/libsndfile/libsndfile/releases/tag/${version}";
     license     = licenses.lgpl2Plus;
diff --git a/pkgs/development/libraries/libsodium/default.nix b/pkgs/development/libraries/libsodium/default.nix
index 4570b10db39c7..ac304ce31a048 100644
--- a/pkgs/development/libraries/libsodium/default.nix
+++ b/pkgs/development/libraries/libsodium/default.nix
@@ -1,28 +1,18 @@
-{ lib, stdenv, fetchurl, fetchpatch, autoreconfHook
+{ lib, stdenv, fetchurl, autoreconfHook
 , testers
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libsodium";
-  version = "1.0.19";
+  version = "1.0.20";
 
   src = fetchurl {
     url = "https://download.libsodium.org/libsodium/releases/${finalAttrs.pname}-${finalAttrs.version}.tar.gz";
-    hash = "sha256-AY15/goEXMoHMx03vQy1ey6DjFG8SP2DehRy5QBou+o=";
+    hash = "sha256-67Ze9spDkzPCu0GgwZkFhyiNoH9sf9B8s6GMwY0wzhk=";
   };
 
   outputs = [ "out" "dev" ];
 
-  patches = [
-    # Drop -Ofast as it breaks floating point arithmetics in downstream
-    # users.
-    (fetchpatch {
-      name = "drop-Ofast.patch";
-      url  = "https://github.com/jedisct1/libsodium/commit/ffd1e374989197b44d815ac8b5d8f0b43b6ce534.patch";
-      hash = "sha256-jG0VirIoFBwYmRx6zHSu2xe6pXYwbeqNVhPJxO6eJEY=";
-    })
-  ];
-
   nativeBuildInputs = [ autoreconfHook ];
 
   separateDebugInfo = stdenv.isLinux && stdenv.hostPlatform.libc != "musl";
@@ -39,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
 
   meta = with lib; {
-    description = "A modern and easy-to-use crypto library";
+    description = "Modern and easy-to-use crypto library";
     homepage = "https://doc.libsodium.org/";
     license = licenses.isc;
     maintainers = with maintainers; [ raskin ];
diff --git a/pkgs/development/libraries/libsolv/default.nix b/pkgs/development/libraries/libsolv/default.nix
index e044037eb79d8..d8c49efd43caa 100644
--- a/pkgs/development/libraries/libsolv/default.nix
+++ b/pkgs/development/libraries/libsolv/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
     ++ lib.optional withRpm rpm;
 
   meta = with lib; {
-    description = "A free package dependency solver";
+    description = "Free package dependency solver";
     homepage = "https://github.com/openSUSE/libsolv";
     license = licenses.bsd3;
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/pkgs/development/libraries/libspiro/default.nix b/pkgs/development/libraries/libspiro/default.nix
index 780ca0ebdc73e..f583900e35d95 100644
--- a/pkgs/development/libraries/libspiro/default.nix
+++ b/pkgs/development/libraries/libspiro/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config autoreconfHook ];
 
   meta = with lib; {
-    description = "A library that simplifies the drawing of beautiful curves";
+    description = "Library that simplifies the drawing of beautiful curves";
     homepage = "https://github.com/fontforge/libspiro";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.erictapen ];
diff --git a/pkgs/development/libraries/libsrs2/default.nix b/pkgs/development/libraries/libsrs2/default.nix
index 5cb0974af9f1d..e6fd748362e90 100644
--- a/pkgs/development/libraries/libsrs2/default.nix
+++ b/pkgs/development/libraries/libsrs2/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "The next generation SRS library from the original designer of SRS";
+    description = "Next generation SRS library from the original designer of SRS";
     mainProgram = "srs";
     license = with lib.licenses; [ gpl2 bsd3 ];
     homepage = "https://www.libsrs2.org/";
diff --git a/pkgs/development/libraries/libssh2/default.nix b/pkgs/development/libraries/libssh2/default.nix
index f7a51da9fa672..65770cb657101 100644
--- a/pkgs/development/libraries/libssh2/default.nix
+++ b/pkgs/development/libraries/libssh2/default.nix
@@ -15,6 +15,12 @@ stdenv.mkDerivation rec {
     ./CVE-2023-48795.patch
   ];
 
+  # this could be accomplished by updateAutotoolsGnuConfigScriptsHook, but that causes infinite recursion
+  # necessary for FreeBSD code path in configure
+  postPatch = ''
+    substituteInPlace ./config.guess --replace-fail /usr/bin/uname uname
+  '';
+
   outputs = [ "out" "dev" "devdoc" ];
 
   propagatedBuildInputs = [ openssl ]; # see Libs: in libssh2.pc
@@ -22,7 +28,7 @@ stdenv.mkDerivation rec {
     ++ lib.optional stdenv.hostPlatform.isMinGW windows.mingw_w64;
 
   meta = with lib; {
-    description = "A client-side C library implementing the SSH2 protocol";
+    description = "Client-side C library implementing the SSH2 protocol";
     homepage = "https://www.libssh2.org";
     platforms = platforms.all;
     license = with licenses; [ bsd3 libssh2 ];
diff --git a/pkgs/development/libraries/libstatgrab/default.nix b/pkgs/development/libraries/libstatgrab/default.nix
index d2a94d7168a8d..e5a17b68e0831 100644
--- a/pkgs/development/libraries/libstatgrab/default.nix
+++ b/pkgs/development/libraries/libstatgrab/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.i-scream.org/libstatgrab/";
-    description = "A library that provides cross platforms access to statistics about the running system";
+    description = "Library that provides cross platforms access to statistics about the running system";
     maintainers = with maintainers; [ ];
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libstroke/default.nix b/pkgs/development/libraries/libstroke/default.nix
index 698fa5c579f70..13b117b5e0128 100644
--- a/pkgs/development/libraries/libstroke/default.nix
+++ b/pkgs/development/libraries/libstroke/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = {
-    description = "A library for simple gesture recognition";
+    description = "Library for simple gesture recognition";
     homepage = "https://web.archive.org/web/20161204100704/http://etla.net/libstroke/";
     license = lib.licenses.gpl2;
 
diff --git a/pkgs/development/libraries/libsvm/default.nix b/pkgs/development/libraries/libsvm/default.nix
index cd14660fb9f7b..c3e168999e32a 100644
--- a/pkgs/development/libraries/libsvm/default.nix
+++ b/pkgs/development/libraries/libsvm/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = with lib; {
-    description = "A library for support vector machines";
+    description = "Library for support vector machines";
     homepage = "https://www.csie.ntu.edu.tw/~cjlin/libsvm/";
     license = licenses.bsd3;
     maintainers = [ ];
diff --git a/pkgs/development/libraries/libtap/default.nix b/pkgs/development/libraries/libtap/default.nix
index 47ca65e8490e8..46b2e492cb353 100644
--- a/pkgs/development/libraries/libtap/default.nix
+++ b/pkgs/development/libraries/libtap/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = [ cmake perl ];
 
   meta = with lib; {
-    description = "A library to implement a test protocol";
+    description = "Library to implement a test protocol";
     longDescription = ''
       libtap is a library to implement the Test Anything Protocol for
       C originally created by Nik Clayton. This is a maintenance
diff --git a/pkgs/development/libraries/libtasn1/default.nix b/pkgs/development/libraries/libtasn1/default.nix
index a0b9cebef4d76..3c630bac630de 100644
--- a/pkgs/development/libraries/libtasn1/default.nix
+++ b/pkgs/development/libraries/libtasn1/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.gnu.org/software/libtasn1/";
-    description = "An ASN.1 library";
+    description = "ASN.1 library";
     longDescription = ''
       Libtasn1 is the ASN.1 library used by GnuTLS, GNU Shishi and some
       other packages.  The goal of this implementation is to be highly
diff --git a/pkgs/development/libraries/libthreadar/default.nix b/pkgs/development/libraries/libthreadar/default.nix
index 05aff273400e8..8c93e414ed5d9 100644
--- a/pkgs/development/libraries/libthreadar/default.nix
+++ b/pkgs/development/libraries/libthreadar/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://libthreadar.sourceforge.net/";
-    description = "A C++ library that provides several classes to manipulate threads";
+    description = "C++ library that provides several classes to manipulate threads";
     longDescription = ''
       Libthreadar is a C++ library providing a small set of C++ classes to manipulate
       threads in a very simple and efficient way from your C++ code.
diff --git a/pkgs/development/libraries/libtickit/default.nix b/pkgs/development/libraries/libtickit/default.nix
index 54386e57a0acf..eaecc2d6d8bdd 100644
--- a/pkgs/development/libraries/libtickit/default.nix
+++ b/pkgs/development/libraries/libtickit/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation {
   doCheck = true;
 
   meta = with lib; {
-    description = "A terminal interface construction kit";
+    description = "Terminal interface construction kit";
     longDescription = ''
       This library provides an abstracted mechanism for building interactive full-screen terminal
       programs. It provides a full set of output drawing functions, and handles keyboard and mouse
diff --git a/pkgs/development/libraries/libtiff/default.nix b/pkgs/development/libraries/libtiff/default.nix
index c8871a4ba68e8..f1e5c7da1803d 100644
--- a/pkgs/development/libraries/libtiff/default.nix
+++ b/pkgs/development/libraries/libtiff/default.nix
@@ -10,8 +10,10 @@
 , lerc
 , libdeflate
 , libjpeg
+, libwebp
 , xz
 , zlib
+, zstd
 
   # for passthru.tests
 , libgeotiff
@@ -62,14 +64,19 @@ stdenv.mkDerivation (finalAttrs: {
 
   buildInputs = [
     lerc
+    zstd
   ];
 
   # TODO: opengl support (bogus configure detection)
   propagatedBuildInputs = [
     libdeflate
     libjpeg
+    # libwebp depends on us; this will cause infinite
+    # recursion otherwise
+    (libwebp.override { tiffSupport = false; })
     xz
     zlib
+    zstd
   ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/libtiger/default.nix b/pkgs/development/libraries/libtiger/default.nix
index 7876c23bcc1dc..cd198dac309d1 100644
--- a/pkgs/development/libraries/libtiger/default.nix
+++ b/pkgs/development/libraries/libtiger/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://code.google.com/archive/p/libtiger/";
-    description = "A rendering library for Kate streams using Pango and Cairo";
+    description = "Rendering library for Kate streams using Pango and Cairo";
     platforms = lib.platforms.unix;
     license = lib.licenses.lgpl21Plus;
     maintainers = with lib.maintainers; [ matthewbauer ];
diff --git a/pkgs/development/libraries/libtomcrypt/default.nix b/pkgs/development/libraries/libtomcrypt/default.nix
index 9bfd42e7a71c2..1457030f874cb 100644
--- a/pkgs/development/libraries/libtomcrypt/default.nix
+++ b/pkgs/development/libraries/libtomcrypt/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A fairly comprehensive, modular and portable cryptographic toolkit";
+    description = "Fairly comprehensive, modular and portable cryptographic toolkit";
     homepage = "https://www.libtom.net/LibTomCrypt/";
     changelog = "https://github.com/libtom/libtomcrypt/raw/v${version}/changes";
     license = with licenses; [ publicDomain wtfpl ];
diff --git a/pkgs/development/libraries/libtommath/default.nix b/pkgs/development/libraries/libtommath/default.nix
index fc0c9608cf4f7..2501bc827faed 100644
--- a/pkgs/development/libraries/libtommath/default.nix
+++ b/pkgs/development/libraries/libtommath/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.libtom.net/LibTomMath/";
-    description = "A library for integer-based number-theoretic applications";
+    description = "Library for integer-based number-theoretic applications";
     license = with licenses; [ publicDomain wtfpl ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/libraries/libtorrent-rasterbar/1.2.nix b/pkgs/development/libraries/libtorrent-rasterbar/1.2.nix
index adea75b02e945..6b4be4b832a44 100644
--- a/pkgs/development/libraries/libtorrent-rasterbar/1.2.nix
+++ b/pkgs/development/libraries/libtorrent-rasterbar/1.2.nix
@@ -45,7 +45,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://libtorrent.org/";
-    description = "A C++ BitTorrent implementation focusing on efficiency and scalability";
+    description = "C++ BitTorrent implementation focusing on efficiency and scalability";
     license = licenses.bsd3;
     maintainers = [ ];
     broken = stdenv.isDarwin;
diff --git a/pkgs/development/libraries/libtorrent-rasterbar/default.nix b/pkgs/development/libraries/libtorrent-rasterbar/default.nix
index 75f365ddcb38c..118d143e2cd5e 100644
--- a/pkgs/development/libraries/libtorrent-rasterbar/default.nix
+++ b/pkgs/development/libraries/libtorrent-rasterbar/default.nix
@@ -55,7 +55,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://libtorrent.org/";
-    description = "A C++ BitTorrent implementation focusing on efficiency and scalability";
+    description = "C++ BitTorrent implementation focusing on efficiency and scalability";
     license = licenses.bsd3;
     maintainers = [ ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libu2f-host/default.nix b/pkgs/development/libraries/libu2f-host/default.nix
index 9acbaa4790630..724a3b6b3118b 100644
--- a/pkgs/development/libraries/libu2f-host/default.nix
+++ b/pkgs/development/libraries/libu2f-host/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A C library and command-line tool that implements the host-side of the U2F protocol";
+    description = "C library and command-line tool that implements the host-side of the U2F protocol";
     homepage = "https://developers.yubico.com/libu2f-host";
     license = with licenses; [ gpl3Plus lgpl21Plus ];
     mainProgram = "u2f-host";
diff --git a/pkgs/development/libraries/libu2f-server/default.nix b/pkgs/development/libraries/libu2f-server/default.nix
index 96506dfb85c91..86f0245b2ed74 100644
--- a/pkgs/development/libraries/libu2f-server/default.nix
+++ b/pkgs/development/libraries/libu2f-server/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://developers.yubico.com/libu2f-server/";
-    description = "A C library that implements the server-side of the U2F protocol";
+    description = "C library that implements the server-side of the U2F protocol";
     mainProgram = "u2f-server";
     license = licenses.bsd2;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libuiohook/default.nix b/pkgs/development/libraries/libuiohook/default.nix
index 3f1f48317fdc8..4fe42dad6c898 100644
--- a/pkgs/development/libraries/libuiohook/default.nix
+++ b/pkgs/development/libraries/libuiohook/default.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A C library to provide global keyboard and mouse hooks from userland";
+    description = "C library to provide global keyboard and mouse hooks from userland";
     homepage = "https://github.com/kwhat/libuiohook";
     license = licenses.gpl3Only;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/libunarr/default.nix b/pkgs/development/libraries/libunarr/default.nix
index c1e0881bf3ff2..d73bed773dffc 100644
--- a/pkgs/development/libraries/libunarr/default.nix
+++ b/pkgs/development/libraries/libunarr/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/selmf/unarr";
-    description = "A lightweight decompression library with support for rar, tar and zip archives";
+    description = "Lightweight decompression library with support for rar, tar and zip archives";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ wegank ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libuninameslist/default.nix b/pkgs/development/libraries/libuninameslist/default.nix
index 3cbb78d83ce9b..f0d153c700800 100644
--- a/pkgs/development/libraries/libuninameslist/default.nix
+++ b/pkgs/development/libraries/libuninameslist/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libuninameslist";
-  version = "20230916";
+  version = "20240524";
 
   src = fetchFromGitHub {
     owner = "fontforge";
     repo = pname;
     rev = version;
-    sha256 = "sha256-8mLXTvi4KbU4NiCPaJINTeFbnTAabGDg8ufpSHSqy0Y=";
+    sha256 = "sha256-LANwM0fhCsscXAdI/qGOmUWDzAhe3g9w3J68g4szDZQ=";
   };
 
   nativeBuildInputs = [
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/fontforge/libuninameslist/";
-    description = "A Library of Unicode names and annotation data";
+    description = "Library of Unicode names and annotation data";
     license = licenses.bsd3;
     maintainers = with maintainers; [ erictapen ];
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/libunique/3.x.nix b/pkgs/development/libraries/libunique/3.x.nix
index 678f685d4882d..ffc46599cab0c 100644
--- a/pkgs/development/libraries/libunique/3.x.nix
+++ b/pkgs/development/libraries/libunique/3.x.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://gitlab.gnome.org/Archive/unique";
-    description = "A library for writing single instance applications";
+    description = "Library for writing single instance applications";
     license = lib.licenses.lgpl21;
     maintainers = [ lib.maintainers.AndersonTorres ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/libraries/libunique/default.nix b/pkgs/development/libraries/libunique/default.nix
index f75aed442a852..2e9f2a8a12047 100644
--- a/pkgs/development/libraries/libunique/default.nix
+++ b/pkgs/development/libraries/libunique/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://gitlab.gnome.org/Archive/unique";
-    description = "A library for writing single instance applications";
+    description = "Library for writing single instance applications";
     license = lib.licenses.lgpl21;
     platforms = with lib.platforms; linux ++ darwin;
   };
diff --git a/pkgs/development/libraries/libunity/default.nix b/pkgs/development/libraries/libunity/default.nix
index c27fce32ec005..066f23cf542aa 100644
--- a/pkgs/development/libraries/libunity/default.nix
+++ b/pkgs/development/libraries/libunity/default.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation {
   ];
 
   meta = with lib; {
-    description = "A library for instrumenting and integrating with all aspects of the Unity shell";
+    description = "Library for instrumenting and integrating with all aspects of the Unity shell";
     homepage = "https://launchpad.net/libunity";
     license = licenses.lgpl3;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libunwind/default.nix b/pkgs/development/libraries/libunwind/default.nix
index 5144abc6dc5b6..7999fa4971877 100644
--- a/pkgs/development/libraries/libunwind/default.nix
+++ b/pkgs/development/libraries/libunwind/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, autoreconfHook, xz, buildPackages }:
+{ stdenv, lib, fetchFromGitHub, autoreconfHook, xz, buildPackages }:
 
 stdenv.mkDerivation rec {
   pname = "libunwind";
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.nongnu.org/libunwind";
-    description = "A portable and efficient API to determine the call-chain of a program";
+    description = "Portable and efficient API to determine the call-chain of a program";
     maintainers = with maintainers; [ orivej ];
     # https://github.com/libunwind/libunwind#libunwind
     platforms = [ "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" "armv7l-linux" "i686-freebsd" "i686-linux" "loongarch64-linux" "mips64el-linux" "mipsel-linux" "powerpc64-linux" "powerpc64le-linux" "riscv64-linux" "s390x-linux" "x86_64-freebsd" "x86_64-linux" "x86_64-solaris" ];
diff --git a/pkgs/development/libraries/libusb1/default.nix b/pkgs/development/libraries/libusb1/default.nix
index 9114fe5ec47f5..bd8561e0e8a3f 100644
--- a/pkgs/development/libraries/libusb1/default.nix
+++ b/pkgs/development/libraries/libusb1/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , autoreconfHook
 , doxygen
 , pkg-config
diff --git a/pkgs/development/libraries/libusbmuxd/default.nix b/pkgs/development/libraries/libusbmuxd/default.nix
index 9230e79c46d04..33c821302cb2e 100644
--- a/pkgs/development/libraries/libusbmuxd/default.nix
+++ b/pkgs/development/libraries/libusbmuxd/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A client library to multiplex connections from and to iOS devices";
+    description = "Client library to multiplex connections from and to iOS devices";
     homepage = "https://github.com/libimobiledevice/libusbmuxd";
     license = licenses.lgpl21Plus;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libuv/default.nix b/pkgs/development/libraries/libuv/default.nix
index 4099d53f87bfd..82a37d0434d0a 100644
--- a/pkgs/development/libraries/libuv/default.nix
+++ b/pkgs/development/libraries/libuv/default.nix
@@ -116,7 +116,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A multi-platform support library with a focus on asynchronous I/O";
+    description = "Multi-platform support library with a focus on asynchronous I/O";
     homepage    = "https://libuv.org/";
     changelog   = "https://github.com/libuv/libuv/blob/v${finalAttrs.version}/ChangeLog";
     pkgConfigModules = [ "libuv" ];
diff --git a/pkgs/development/libraries/libva/default.nix b/pkgs/development/libraries/libva/default.nix
index 9b53b7cc138e4..eceba4ac8ebf0 100644
--- a/pkgs/development/libraries/libva/default.nix
+++ b/pkgs/development/libraries/libva/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "An implementation for VA-API (Video Acceleration API)";
+    description = "Implementation for VA-API (Video Acceleration API)";
     longDescription = ''
       VA-API is an open-source library and API specification, which provides
       access to graphics hardware acceleration capabilities for video
diff --git a/pkgs/development/libraries/libva/utils.nix b/pkgs/development/libraries/libva/utils.nix
index 25db3a1149acf..febcc2cc4de20 100644
--- a/pkgs/development/libraries/libva/utils.nix
+++ b/pkgs/development/libraries/libva/utils.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libdrm libva libX11 libXext libXfixes wayland ];
 
   meta = with lib; {
-    description = "A collection of utilities and examples for VA-API";
+    description = "Collection of utilities and examples for VA-API";
     longDescription = ''
       libva-utils is a collection of utilities and examples to exercise VA-API
       in accordance with the libva project.
diff --git a/pkgs/development/libraries/libvgm/default.nix b/pkgs/development/libraries/libvgm/default.nix
index 0b07548d073a6..895a382c96a35 100644
--- a/pkgs/development/libraries/libvgm/default.nix
+++ b/pkgs/development/libraries/libvgm/default.nix
@@ -42,13 +42,13 @@ let
 in
 stdenv.mkDerivation {
   pname = "libvgm";
-  version = "0-unstable-2024-04-24";
+  version = "0-unstable-2024-06-08";
 
   src = fetchFromGitHub {
     owner = "ValleyBell";
     repo = "libvgm";
-    rev = "1271ab3a0ec1440d2e537ead46165e189671dfd0";
-    hash = "sha256-vle9h7+izdpu9fe6LWD06j8oVQIL/lOApPrdjILmPX4=";
+    rev = "34c368cde98f33c42455fbbfbec07073ba79bf5c";
+    hash = "sha256-eX2k2cUtapHhx8dLaFk63Si0Di1q0uDWvdOI0+FgqEY=";
   };
 
   outputs = [
diff --git a/pkgs/development/libraries/libviperfx/default.nix b/pkgs/development/libraries/libviperfx/default.nix
index 580329754b668..2778726a4bf7c 100644
--- a/pkgs/development/libraries/libviperfx/default.nix
+++ b/pkgs/development/libraries/libviperfx/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/vipersaudio/viperfx_core_binary";
-    description = "The ViPER FX core";
+    description = "ViPER FX core";
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ rewine ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/development/libraries/libvirt/default.nix b/pkgs/development/libraries/libvirt/default.nix
index 81dacdb493c91..ec35e5727c8b5 100644
--- a/pkgs/development/libraries/libvirt/default.nix
+++ b/pkgs/development/libraries/libvirt/default.nix
@@ -387,7 +387,7 @@ stdenv.mkDerivation rec {
   passthru.tests.libvirtd = nixosTests.libvirtd;
 
   meta = with lib; {
-    description = "A toolkit to interact with the virtualization capabilities of recent versions of Linux and other OSes";
+    description = "Toolkit to interact with the virtualization capabilities of recent versions of Linux and other OSes";
     homepage = "https://libvirt.org/";
     changelog = "https://gitlab.com/libvirt/libvirt/-/raw/v${version}/NEWS.rst";
     license = licenses.lgpl2Plus;
diff --git a/pkgs/development/libraries/libvisio/default.nix b/pkgs/development/libraries/libvisio/default.nix
index b9856e90edc92..e6a425660cc8d 100644
--- a/pkgs/development/libraries/libvisio/default.nix
+++ b/pkgs/development/libraries/libvisio/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A library providing ability to interpret and import visio diagrams into various applications";
+    description = "Library providing ability to interpret and import visio diagrams into various applications";
     homepage = "https://wiki.documentfoundation.org/DLP/Libraries/libvisio";
     license = licenses.mpl20;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libvisual/default.nix b/pkgs/development/libraries/libvisual/default.nix
index 2a84b4da0ea1b..12fae974312be 100644
--- a/pkgs/development/libraries/libvisual/default.nix
+++ b/pkgs/development/libraries/libvisual/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    description = "An abstraction library for audio visualisations";
+    description = "Abstraction library for audio visualisations";
     homepage = "https://sourceforge.net/projects/libvisual/";
     license = lib.licenses.lgpl21Plus;
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/libraries/libvmi/default.nix b/pkgs/development/libraries/libvmi/default.nix
index b1eb5764dba46..265e19a1ae77b 100644
--- a/pkgs/development/libraries/libvmi/default.nix
+++ b/pkgs/development/libraries/libvmi/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://libvmi.com/";
-    description = "A C library for virtual machine introspection";
+    description = "C library for virtual machine introspection";
     longDescription = ''
       LibVMI is a C library with Python bindings that makes it easy to monitor the low-level
       details of a running virtual machine by viewing its memory, trapping on hardware events,
diff --git a/pkgs/development/libraries/libvncserver/default.nix b/pkgs/development/libraries/libvncserver/default.nix
index 4880c835a1eb3..84e0dba1dd252 100644
--- a/pkgs/development/libraries/libvncserver/default.nix
+++ b/pkgs/development/libraries/libvncserver/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , libjpeg
 , openssl
diff --git a/pkgs/development/libraries/libvpx/default.nix b/pkgs/development/libraries/libvpx/default.nix
index dda6b13c1bf6c..5f5fc710d14dc 100644
--- a/pkgs/development/libraries/libvpx/default.nix
+++ b/pkgs/development/libraries/libvpx/default.nix
@@ -54,12 +54,26 @@ let
     else if stdenv.hostPlatform.osxMinVersion == "10.5"  then "9"
     else "8";
 
+  cpu =
+    /**/ if stdenv.hostPlatform.isArmv7 then "armv7"
+    else if stdenv.hostPlatform.isAarch64 then "arm64"
+    else if stdenv.hostPlatform.isx86_32 then "x86"
+    else stdenv.hostPlatform.parsed.cpu.name;
+
   kernel =
     # Build system doesn't understand BSD, so pretend to be Linux.
     /**/ if stdenv.isBSD then "linux"
     else if stdenv.isDarwin then "darwin${darwinVersion}"
     else stdenv.hostPlatform.parsed.kernel.name;
 
+  isGeneric =
+    /**/ (stdenv.hostPlatform.isPower && stdenv.hostPlatform.isLittleEndian)
+    || stdenv.hostPlatform.parsed.cpu.name == "armv6l";
+
+  target =
+    /**/ if (stdenv.isBSD || stdenv.hostPlatform != stdenv.buildPlatform) then
+      (if isGeneric then "generic-gnu" else "${cpu}-${kernel}-gcc")
+    else null;
 in
 
 assert vp8DecoderSupport || vp8EncoderSupport || vp9DecoderSupport || vp9EncoderSupport;
@@ -163,8 +177,8 @@ stdenv.mkDerivation rec {
     (enableFeature (experimentalSpatialSvcSupport ||
                     experimentalFpMbStatsSupport ||
                     experimentalEmulateHardwareSupport) "experimental")
-  ] ++ optionals (stdenv.isBSD || stdenv.hostPlatform != stdenv.buildPlatform) [
-    "--force-target=${stdenv.hostPlatform.parsed.cpu.name}-${kernel}-gcc"
+  ] ++ optionals (target != null) [
+    "--target=${target}"
     (lib.optionalString stdenv.hostPlatform.isCygwin "--enable-static-msvcrt")
   ] # Experimental features
     ++ optional experimentalSpatialSvcSupport "--enable-spatial-svc"
diff --git a/pkgs/development/libraries/libwbxml/default.nix b/pkgs/development/libraries/libwbxml/default.nix
index b5dc8c18208a6..446735c5eec71 100644
--- a/pkgs/development/libraries/libwbxml/default.nix
+++ b/pkgs/development/libraries/libwbxml/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libwbxml";
-  version = "0.11.8";
+  version = "0.11.9";
 
   src = fetchFromGitHub {
     owner = "libwbxml";
     repo = "libwbxml";
     rev = "${pname}-${version}";
-    sha256 = "sha256-WCVKfIk6R2rVaz1SbJL9eLqNC0f4VzL74Sw2IKdDE9I=";
+    sha256 = "sha256-zmMsp5xS13rqfSWXXb0FGQcGZkrSMRYc/GQppO4/+Z4=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/libwbxml/libwbxml";
-    description = "The WBXML Library (aka libwbxml) contains a library and its associated tools to Parse, Encode and Handle WBXML documents";
+    description = "WBXML Library (aka libwbxml) contains a library and its associated tools to Parse, Encode and Handle WBXML documents";
     maintainers = with maintainers; [ mh ];
     platforms = platforms.linux;
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/libraries/libwnck/2.nix b/pkgs/development/libraries/libwnck/2.nix
index a1f54006beb58..bc5a89dc120dc 100644
--- a/pkgs/development/libraries/libwnck/2.nix
+++ b/pkgs/development/libraries/libwnck/2.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--disable-introspection" ]; # not needed anywhere AFAIK
 
   meta = {
-    description = "A library for creating task lists and pagers";
+    description = "Library for creating task lists and pagers";
     homepage = "https://gitlab.gnome.org/GNOME/libwnck";
     license = lib.licenses.lgpl21;
     maintainers = with lib.maintainers; [ johnazoidberg ];
diff --git a/pkgs/development/libraries/libwpd/default.nix b/pkgs/development/libraries/libwpd/default.nix
index 99d81870cce0e..0aa0b746978c8 100644
--- a/pkgs/development/libraries/libwpd/default.nix
+++ b/pkgs/development/libraries/libwpd/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
 
   meta = with lib; {
-    description = "A library for importing and exporting WordPerfect documents";
+    description = "Library for importing and exporting WordPerfect documents";
     homepage = "https://libwpd.sourceforge.net/";
     license = licenses.lgpl21;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libwpe/default.nix b/pkgs/development/libraries/libwpe/default.nix
index a29dd6b2627bb..c78ee91a20926 100644
--- a/pkgs/development/libraries/libwpe/default.nix
+++ b/pkgs/development/libraries/libwpe/default.nix
@@ -7,7 +7,6 @@
 , libGL
 , ninja
 , libX11
-, webkitgtk
 }:
 
 stdenv.mkDerivation rec {
@@ -35,7 +34,7 @@ stdenv.mkDerivation rec {
     description = "General-purpose library for WPE WebKit";
     license = licenses.bsd2;
     homepage = "https://wpewebkit.org";
-    maintainers = webkitgtk.meta.maintainers ++ (with maintainers; [ matthewbauer ]);
+    maintainers = with maintainers; [ matthewbauer ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/libwpe/fdo.nix b/pkgs/development/libraries/libwpe/fdo.nix
index 3e2fada38c327..d54d9706cbd18 100644
--- a/pkgs/development/libraries/libwpe/fdo.nix
+++ b/pkgs/development/libraries/libwpe/fdo.nix
@@ -11,7 +11,6 @@
 , libxkbcommon
 , libGL
 , libX11
-, webkitgtk
  }:
 
 stdenv.mkDerivation rec {
@@ -48,7 +47,7 @@ stdenv.mkDerivation rec {
     description = "Freedesktop.org backend for WPE WebKit";
     license = licenses.bsd2;
     homepage = "https://wpewebkit.org";
-    maintainers = webkitgtk.meta.maintainers ++ (with maintainers; [ matthewbauer ]);
+    maintainers = with maintainers; [ matthewbauer ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/libxcrypt/default.nix b/pkgs/development/libraries/libxcrypt/default.nix
index d71cb7027570a..efd3acb643fbe 100644
--- a/pkgs/development/libraries/libxcrypt/default.nix
+++ b/pkgs/development/libraries/libxcrypt/default.nix
@@ -15,6 +15,12 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-5eH0yu4KAd4q7ibjE4gH1tPKK45nKHlm0f79ZeH9iUM=";
   };
 
+  # this could be accomplished by updateAutotoolsGnuConfigScriptsHook, but that causes infinite recursion
+  # necessary for FreeBSD code path in configure
+  postPatch = ''
+    substituteInPlace ./build-aux/m4-autogen/config.guess --replace-fail /usr/bin/uname uname
+  '';
+
   outputs = [
     "out"
     "man"
diff --git a/pkgs/development/libraries/libxkbcommon/default.nix b/pkgs/development/libraries/libxkbcommon/default.nix
index 67dbb0c4d8cdb..7c635eb98b694 100644
--- a/pkgs/development/libraries/libxkbcommon/default.nix
+++ b/pkgs/development/libraries/libxkbcommon/default.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A library to handle keyboard descriptions";
+    description = "Library to handle keyboard descriptions";
     longDescription = ''
       libxkbcommon is a keyboard keymap compiler and support library which
       processes a reduced subset of keymaps as defined by the XKB (X Keyboard
diff --git a/pkgs/development/libraries/libxl/default.nix b/pkgs/development/libraries/libxl/default.nix
index 601c27c98eedb..0263b25f3ba4d 100644
--- a/pkgs/development/libraries/libxl/default.nix
+++ b/pkgs/development/libraries/libxl/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A library for parsing Excel files";
+    description = "Library for parsing Excel files";
     homepage    = "https://www.libxl.com/";
     license     = licenses.unfree;
     platforms   = platforms.linux;
diff --git a/pkgs/development/libraries/libxmi/default.nix b/pkgs/development/libraries/libxmi/default.nix
index 2d2a0089c4433..2446df52a2bc9 100644
--- a/pkgs/development/libraries/libxmi/default.nix
+++ b/pkgs/development/libraries/libxmi/default.nix
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "03d4ikh29l38rl1wavb0icw7m5pp7yilnv7bb2k8qij1dinsymlx";
   };
 
+  CFLAGS = "-std=gnu89";
+
   # For the x86_64 GNU/Linux arch to be recognized by 'configure'
   preConfigure = "cp ${libtool}/share/libtool/build-aux/config.sub .";
 
diff --git a/pkgs/development/libraries/libxml2/default.nix b/pkgs/development/libraries/libxml2/default.nix
index d2e614b331a1a..79fe8c9f52dac 100644
--- a/pkgs/development/libraries/libxml2/default.nix
+++ b/pkgs/development/libraries/libxml2/default.nix
@@ -4,7 +4,6 @@
 , zlib
 , pkg-config
 , autoreconfHook
-, xz
 , libintl
 , python
 , gettext
@@ -37,6 +36,11 @@ stdenv.mkDerivation (finalAttrs: rec {
     hash = "sha256-JK54/xNjqXPm2L66lBp5RdoqwFbhm1OVautpJ/1s+1Y=";
   };
 
+  # https://gitlab.gnome.org/GNOME/libxml2/-/issues/725
+  postPatch = if stdenv.hostPlatform.isFreeBSD then ''
+    substituteInPlace ./configure.ac --replace-fail pthread_join pthread_create
+  '' else null;
+
   strictDeps = true;
 
   nativeBuildInputs = [
@@ -52,11 +56,6 @@ stdenv.mkDerivation (finalAttrs: rec {
     ncurses
   ] ++ lib.optionals (stdenv.isDarwin && pythonSupport && python?isPy2 && python.isPy2) [
     libintl
-  ] ++ lib.optionals stdenv.isFreeBSD [
-    # Libxml2 has an optional dependency on liblzma.  However, on impure
-    # platforms, it may end up using that from /usr/lib, and thus lack a
-    # RUNPATH for that, leading to undefined references for its users.
-    xz
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/libraries/libxmlb/default.nix b/pkgs/development/libraries/libxmlb/default.nix
index c26807a679528..4cc4e2b15c43b 100644
--- a/pkgs/development/libraries/libxmlb/default.nix
+++ b/pkgs/development/libraries/libxmlb/default.nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A library to help create and query binary XML blobs";
+    description = "Library to help create and query binary XML blobs";
     mainProgram = "xb-tool";
     homepage = "https://github.com/hughsie/libxmlb";
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/libraries/libxslt/default.nix b/pkgs/development/libraries/libxslt/default.nix
index 95ecbbc44deea..1938c523006b2 100644
--- a/pkgs/development/libraries/libxslt/default.nix
+++ b/pkgs/development/libraries/libxslt/default.nix
@@ -82,7 +82,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/libxslt";
-    description = "A C library and tools to do XSL transformations";
+    description = "C library and tools to do XSL transformations";
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ eelco jtojnar ];
diff --git a/pkgs/development/libraries/libyaml/default.nix b/pkgs/development/libraries/libyaml/default.nix
index 9a9c5e0311f16..dc58226edea4b 100644
--- a/pkgs/development/libraries/libyaml/default.nix
+++ b/pkgs/development/libraries/libyaml/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://pyyaml.org/";
-    description = "A YAML 1.1 parser and emitter written in C";
+    description = "YAML 1.1 parser and emitter written in C";
     license = licenses.mit;
     platforms = platforms.all;
   };
diff --git a/pkgs/development/libraries/libykneomgr/default.nix b/pkgs/development/libraries/libykneomgr/default.nix
index d0fc1cfd9fbd1..8278b3d8a8418 100644
--- a/pkgs/development/libraries/libykneomgr/default.nix
+++ b/pkgs/development/libraries/libykneomgr/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A C library to interact with the CCID-part of the Yubikey NEO";
+    description = "C library to interact with the CCID-part of the Yubikey NEO";
     homepage = "https://developers.yubico.com/libykneomgr";
     license = licenses.bsd3;
     mainProgram = "ykneomgr";
diff --git a/pkgs/development/libraries/libz/default.nix b/pkgs/development/libraries/libz/default.nix
index b9ee7f96b4217..ac859e1a0bb8b 100644
--- a/pkgs/development/libraries/libz/default.nix
+++ b/pkgs/development/libraries/libz/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://sortix.org/libz/";
-    description = "A clean fork of zlib";
+    description = "Clean fork of zlib";
     license = [ lib.licenses.zlib ];
     maintainers = with lib.maintainers; [ AndersonTorres ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/libzdb/default.nix b/pkgs/development/libraries/libzdb/default.nix
index cfd4d38ac5745..b90a2691e4cec 100644
--- a/pkgs/development/libraries/libzdb/default.nix
+++ b/pkgs/development/libraries/libzdb/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec
   meta =
   {
     homepage = "http://www.tildeslash.com/libzdb/";
-    description = "A small, easy to use Open Source Database Connection Pool Library";
+    description = "Small, easy to use Open Source Database Connection Pool Library";
     license = lib.licenses.gpl3;
     platforms = lib.platforms.linux;
     maintainers = [ ];
diff --git a/pkgs/development/libraries/libzip/default.nix b/pkgs/development/libraries/libzip/default.nix
index b343184760330..82f7f88b19a69 100644
--- a/pkgs/development/libraries/libzip/default.nix
+++ b/pkgs/development/libraries/libzip/default.nix
@@ -56,7 +56,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://libzip.org/";
-    description = "A C library for reading, creating and modifying zip archives";
+    description = "C library for reading, creating and modifying zip archives";
     license = licenses.bsd3;
     pkgConfigModules = [ "libzip" ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libzmf/default.nix b/pkgs/development/libraries/libzmf/default.nix
index 378a7202f3715..0e139ad529261 100644
--- a/pkgs/development/libraries/libzmf/default.nix
+++ b/pkgs/development/libraries/libzmf/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--disable-werror" ];
 
   meta = {
-    description = "A library that parses the file format of Zoner Callisto/Draw documents";
+    description = "Library that parses the file format of Zoner Callisto/Draw documents";
     license = lib.licenses.mpl20;
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/lime/default.nix b/pkgs/development/libraries/lime/default.nix
index 0ac3e0f81ecd3..d40ac0a05c540 100644
--- a/pkgs/development/libraries/lime/default.nix
+++ b/pkgs/development/libraries/lime/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "End-to-end encryption library for instant messaging. Part of the Linphone project.";
+    description = "End-to-end encryption library for instant messaging. Part of the Linphone project";
     homepage = "https://www.linphone.org/technical-corner/lime";
     license = licenses.gpl3Only;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/linenoise-ng/default.nix b/pkgs/development/libraries/linenoise-ng/default.nix
index 276756822746e..0832ef5c6caf2 100644
--- a/pkgs/development/libraries/linenoise-ng/default.nix
+++ b/pkgs/development/libraries/linenoise-ng/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://github.com/arangodb/linenoise-ng";
-    description = "A small, portable GNU readline replacement for Linux, Windows and MacOS which is capable of handling UTF-8 characters";
+    description = "Small, portable GNU readline replacement for Linux, Windows and MacOS which is capable of handling UTF-8 characters";
     maintainers = with lib.maintainers; [ ];
     platforms = lib.platforms.all;
     license = lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/linenoise/default.nix b/pkgs/development/libraries/linenoise/default.nix
index a934ec19d7c13..42017e5e17182 100644
--- a/pkgs/development/libraries/linenoise/default.nix
+++ b/pkgs/development/libraries/linenoise/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "https://github.com/antirez/linenoise";
-    description = "A minimal, zero-config, BSD licensed, readline replacement";
+    description = "Minimal, zero-config, BSD licensed, readline replacement";
     maintainers = with lib.maintainers; [ fstamour remexre ];
     platforms = lib.platforms.unix;
     license = lib.licenses.bsd2;
diff --git a/pkgs/development/libraries/lmdb/default.nix b/pkgs/development/libraries/lmdb/default.nix
index 8c65d02bf565b..7c907e9ef70f4 100644
--- a/pkgs/development/libraries/lmdb/default.nix
+++ b/pkgs/development/libraries/lmdb/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "lmdb";
-  version = "0.9.32";
+  version = "0.9.33";
 
   src = fetchFromGitLab {
     domain = "git.openldap.org";
     owner = "openldap";
     repo = "openldap";
     rev = "LMDB_${version}";
-    sha256 = "sha256-29ZrGIiGqrvX+WsPRs2V25hPmAJSHTHaGo19nMldsb8=";
+    sha256 = "sha256-5IBoJ3jaNXao5zVzb0LDM8RGid4s8DGQpjVqrVPLpXQ=";
   };
 
   postUnpack = "sourceRoot=\${sourceRoot}/libraries/liblmdb";
diff --git a/pkgs/development/libraries/log4cplus/default.nix b/pkgs/development/libraries/log4cplus/default.nix
index df5fab1839cda..0dc8051c35f2c 100644
--- a/pkgs/development/libraries/log4cplus/default.nix
+++ b/pkgs/development/libraries/log4cplus/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://log4cplus.sourceforge.net/";
-    description = "A port the log4j library from Java to C++";
+    description = "Port the log4j library from Java to C++";
     license = lib.licenses.asl20;
     platforms = lib.platforms.unix;
   };
diff --git a/pkgs/development/libraries/log4cpp/default.nix b/pkgs/development/libraries/log4cpp/default.nix
index 1a024a80cca0f..e300a607d7b6c 100644
--- a/pkgs/development/libraries/log4cpp/default.nix
+++ b/pkgs/development/libraries/log4cpp/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage    = "https://log4cpp.sourceforge.net/";
-    description = "A logging framework for C++ patterned after Apache log4j";
+    description = "Logging framework for C++ patterned after Apache log4j";
     mainProgram = "log4cpp-config";
     license     = licenses.lgpl21Plus;
     platforms   = platforms.unix;
diff --git a/pkgs/development/libraries/log4cxx/default.nix b/pkgs/development/libraries/log4cxx/default.nix
index d557d5d07e4e7..34e00295000a8 100644
--- a/pkgs/development/libraries/log4cxx/default.nix
+++ b/pkgs/development/libraries/log4cxx/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://logging.apache.org/log4cxx/index.html";
-    description = "A logging framework for C++ patterned after Apache log4j";
+    description = "Logging framework for C++ patterned after Apache log4j";
     license = lib.licenses.asl20;
     platforms = lib.platforms.unix;
   };
diff --git a/pkgs/development/libraries/log4shib/default.nix b/pkgs/development/libraries/log4shib/default.nix
index 26313ddae5801..41d16e28ff44b 100644
--- a/pkgs/development/libraries/log4shib/default.nix
+++ b/pkgs/development/libraries/log4shib/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
   CXXFLAGS = "-std=c++11";
 
   meta = with lib; {
-    description = "A forked version of log4cpp that has been created for the Shibboleth project";
+    description = "Forked version of log4cpp that has been created for the Shibboleth project";
     mainProgram = "log4shib-config";
     maintainers = [ ];
     license = licenses.lgpl21;
diff --git a/pkgs/development/libraries/loki/default.nix b/pkgs/development/libraries/loki/default.nix
index 55be8f9451d1e..ce011b4ba1b60 100644
--- a/pkgs/development/libraries/loki/default.nix
+++ b/pkgs/development/libraries/loki/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A C++ library of designs, containing flexible implementations of common design patterns and idioms";
+    description = "C++ library of designs, containing flexible implementations of common design patterns and idioms";
     homepage = "https://loki-lib.sourceforge.net";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/loudmouth/default.nix b/pkgs/development/libraries/loudmouth/default.nix
index d1a8c48872492..21dd9db2797c4 100644
--- a/pkgs/development/libraries/loudmouth/default.nix
+++ b/pkgs/development/libraries/loudmouth/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A lightweight C library for the Jabber protocol";
+    description = "Lightweight C library for the Jabber protocol";
     platforms = platforms.all;
     downloadPage = "http://mcabber.com/files/loudmouth/";
     license = licenses.lgpl21;
diff --git a/pkgs/development/libraries/luabind/default.nix b/pkgs/development/libraries/luabind/default.nix
index f7f0878bdffae..a6ce0903469d7 100644
--- a/pkgs/development/libraries/luabind/default.nix
+++ b/pkgs/development/libraries/luabind/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://github.com/Oberon00/luabind";
-    description = "A library that helps you create bindings between C++ and Lua";
+    description = "Library that helps you create bindings between C++ and Lua";
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
   };
diff --git a/pkgs/development/libraries/luabridge/default.nix b/pkgs/development/libraries/luabridge/default.nix
index c16f56065ca70..268c89c390f31 100644
--- a/pkgs/development/libraries/luabridge/default.nix
+++ b/pkgs/development/libraries/luabridge/default.nix
@@ -25,7 +25,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A lightweight, dependency-free library for binding Lua to C++";
+    description = "Lightweight, dependency-free library for binding Lua to C++";
     homepage = "https://github.com/vinniefalco/LuaBridge";
     changelog = "https://github.com/vinniefalco/LuaBridge/blob/${version}/CHANGES.md";
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/lyra/default.nix b/pkgs/development/libraries/lyra/default.nix
index bb0c61ba12510..0a907bf4d2858 100644
--- a/pkgs/development/libraries/lyra/default.nix
+++ b/pkgs/development/libraries/lyra/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/bfgroup/Lyra";
-    description = "A simple to use, composable, command line parser for C++ 11 and beyond";
+    description = "Simple to use, composable, command line parser for C++ 11 and beyond";
     platforms = platforms.unix;
     license = licenses.boost;
     maintainers = with maintainers; [ davidtwco ];
diff --git a/pkgs/development/libraries/lzo/default.nix b/pkgs/development/libraries/lzo/default.nix
index 480e2bb909cd3..43d551819a657 100644
--- a/pkgs/development/libraries/lzo/default.nix
+++ b/pkgs/development/libraries/lzo/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl}:
+{ lib, stdenv, fetchurl, updateAutotoolsGnuConfigScriptsHook }:
 
 stdenv.mkDerivation rec {
   pname = "lzo";
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0wm04519pd3g8hqpjqhfr72q8qmbiwqaxcs3cndny9h86aa95y60";
   };
 
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
+
   configureFlags = lib.optional (!stdenv.hostPlatform.isStatic) "--enable-shared" ;
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/mailcore2/default.nix b/pkgs/development/libraries/mailcore2/default.nix
index 86b4a320b68f8..dddd224ca6faa 100644
--- a/pkgs/development/libraries/mailcore2/default.nix
+++ b/pkgs/development/libraries/mailcore2/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple and asynchronous API to work with e-mail protocols IMAP, POP and SMTP";
+    description = "Simple and asynchronous API to work with e-mail protocols IMAP, POP and SMTP";
     homepage    = "http://libmailcore.com";
     license     = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/libraries/malcontent/default.nix b/pkgs/development/libraries/malcontent/default.nix
index f346906eadc23..2f4044aaed349 100644
--- a/pkgs/development/libraries/malcontent/default.nix
+++ b/pkgs/development/libraries/malcontent/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchFromGitLab
-, fetchpatch
 , meson
 , ninja
 , pkg-config
diff --git a/pkgs/development/libraries/mapnik/datasource-ogr-test-should-fail.patch b/pkgs/development/libraries/mapnik/datasource-ogr-test-should-fail.patch
deleted file mode 100644
index 1df64216d20b3..0000000000000
--- a/pkgs/development/libraries/mapnik/datasource-ogr-test-should-fail.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/test/unit/datasource/ogr.cpp b/test/unit/datasource/ogr.cpp
-index 8441ecc55..8dabc67b0 100644
---- a/test/unit/datasource/ogr.cpp
-+++ b/test/unit/datasource/ogr.cpp
-@@ -30,7 +30,7 @@
- #include <mapnik/image_util.hpp>
- #include <mapnik/datasource_cache.hpp>
- 
--TEST_CASE("ogr")
-+TEST_CASE("ogr", "[!shouldfail]")
- {
-     const bool have_ogr_plugin = mapnik::datasource_cache::instance().plugin_registered("ogr");
-     if (have_ogr_plugin)
diff --git a/pkgs/development/libraries/mapnik/default.nix b/pkgs/development/libraries/mapnik/default.nix
index 14ecb984da59b..0428dd585c661 100644
--- a/pkgs/development/libraries/mapnik/default.nix
+++ b/pkgs/development/libraries/mapnik/default.nix
@@ -22,17 +22,19 @@
 , zlib
 , catch2
 , postgresql
+, protozero
+, sparsehash
 }:
 
 stdenv.mkDerivation rec {
   pname = "mapnik";
-  version = "unstable-2023-11-28";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "mapnik";
     repo = "mapnik";
-    rev = "2e1b32512b1f8b52331994f2a809d8a383c0c984";
-    hash = "sha256-qGdUfu6gFWum/Id/W3ICeGZroMQ3Tz9PQf1tt+gaaXM=";
+    rev = "v${version}";
+    hash = "sha256-CNFNGMJU3kzkRrOGsf8/uv5ebHPEQ0tkA+5OubRVEjs=";
     fetchSubmodules = true;
   };
 
@@ -40,6 +42,8 @@ stdenv.mkDerivation rec {
     substituteInPlace configure \
       --replace '$PYTHON scons/scons.py' ${buildPackages.scons}/bin/scons
     rm -r scons
+    # Remove bundled 'sparsehash' directory in favor of 'sparsehash' package
+    rm -r deps/mapnik/sparsehash
   '';
 
   # a distinct dev output makes python-mapnik fail
@@ -57,11 +61,10 @@ stdenv.mkDerivation rec {
       src = ./catch2-src.patch;
       catch2_src = catch2.src;
     })
-    # Disable broken test
-    # See discussion: https://github.com/mapnik/mapnik/issues/4329#issuecomment-1248778398
-    ./datasource-ogr-test-should-fail.patch
     # Account for full paths when generating libmapnik.pc
     ./export-pkg-config-full-paths.patch
+    # Use 'sparsehash' package.
+    ./use-sparsehash-package.patch
   ];
 
   nativeBuildInputs = [ cmake pkg-config ];
@@ -83,21 +86,31 @@ stdenv.mkDerivation rec {
     zlib
     libxml2
     postgresql
+    protozero
+    sparsehash
   ];
 
   cmakeFlags = [
-    # Would require qt otherwise.
-    "-DBUILD_DEMO_VIEWER:BOOL=OFF"
+    # Save time by not building some development-related code.
+    (lib.cmakeBool "BUILD_BENCHMARK" false)
+    (lib.cmakeBool "BUILD_DEMO_CPP" false)
+    ## Would require QT otherwise.
+    (lib.cmakeBool "BUILD_DEMO_VIEWER" false)
+    # Use 'protozero' package.
+    (lib.cmakeBool "USE_EXTERNAL_MAPBOX_PROTOZERO" true)
+    # macOS builds fail when using memory mapped file cache.
+    (lib.cmakeBool "USE_MEMORY_MAPPED_FILE" (!stdenv.isDarwin))
   ];
 
   doCheck = true;
 
   # mapnik-config is currently not build with CMake. So we use the SCons for
   # this one. We can't add SCons to nativeBuildInputs though, as stdenv would
-  # then try to build everything with scons.
+  # then try to build everything with scons. C++17 is the minimum supported
+  # C++ version.
   preBuild = ''
     cd ..
-    ${buildPackages.scons}/bin/scons utils/mapnik-config
+    env CXX_STD=17 ${buildPackages.scons}/bin/scons utils/mapnik-config
     cd build
   '';
 
@@ -107,7 +120,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An open source toolkit for developing mapping applications";
+    description = "Open source toolkit for developing mapping applications";
     homepage = "https://mapnik.org";
     maintainers = with maintainers; [ hrdinka hummeltech ];
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/libraries/mapnik/use-sparsehash-package.patch b/pkgs/development/libraries/mapnik/use-sparsehash-package.patch
new file mode 100644
index 0000000000000..3bb5d3e996cfc
--- /dev/null
+++ b/pkgs/development/libraries/mapnik/use-sparsehash-package.patch
@@ -0,0 +1,19 @@
+commit c1cea9e10ffec54d0f675478e541ee4a6e87f653
+Author: Tom Hughes <tom@compton.nu>
+Date:   Wed Jun 5 18:45:57 2013 +0100
+
+    Use system sparsehash
+
+diff --git a/include/mapnik/palette.hpp b/include/mapnik/palette.hpp
+index 5f96272..44d06aa 100644
+--- a/include/mapnik/palette.hpp
++++ b/include/mapnik/palette.hpp
+@@ -33,7 +33,7 @@
+ #pragma GCC diagnostic push
+ #include <mapnik/warning_ignore.hpp>
+ #ifdef USE_DENSE_HASH_MAP
+-#include <mapnik/sparsehash/dense_hash_map>
++#include <google/dense_hash_map>
+ using rgba_hash_table = google::dense_hash_map<unsigned int, unsigned char>;
+ #else
+ #include <unordered_map>
diff --git a/pkgs/development/libraries/marl/default.nix b/pkgs/development/libraries/marl/default.nix
index 4545264aad9e1..7ff28a9d5221f 100644
--- a/pkgs/development/libraries/marl/default.nix
+++ b/pkgs/development/libraries/marl/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/google/marl";
-    description = "A hybrid thread / fiber task scheduler written in C++ 11";
+    description = "Hybrid thread / fiber task scheduler written in C++ 11";
     platforms = platforms.all;
     license = licenses.asl20;
     maintainers = with maintainers; [ breakds ];
diff --git a/pkgs/development/libraries/mathgl/default.nix b/pkgs/development/libraries/mathgl/default.nix
index 811395d27588b..e2dc599c4f3bf 100644
--- a/pkgs/development/libraries/mathgl/default.nix
+++ b/pkgs/development/libraries/mathgl/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A library for scientific data visualization";
+    description = "Library for scientific data visualization";
     homepage = "https://mathgl.sourceforge.net/";
     license = with licenses; [ gpl3 lgpl3 ];
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/matio/default.nix b/pkgs/development/libraries/matio/default.nix
index aebd147806367..3a2fde3157797 100644
--- a/pkgs/development/libraries/matio/default.nix
+++ b/pkgs/development/libraries/matio/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchurl }:
 stdenv.mkDerivation rec {
   pname = "matio";
-  version = "1.5.26";
+  version = "1.5.27";
   src = fetchurl {
     url = "mirror://sourceforge/matio/${pname}-${version}.tar.gz";
-    sha256 = "sha256-i0fCn1jkaNunpVVTccanKtTGqosV9FmysLZaMDwGOTM=";
+    sha256 = "sha256-CmqgCxjEUStjqNJ5BrB5yMbtQdSyhE96SuWY4Y0i07M=";
   };
 
   meta = with lib; {
-    description = "A C library for reading and writing Matlab MAT files";
+    description = "C library for reading and writing Matlab MAT files";
     homepage = "http://matio.sourceforge.net/";
     license = licenses.bsd2;
     maintainers = [ ];
diff --git a/pkgs/development/libraries/matrix-sdk-crypto-nodejs/generic.nix b/pkgs/development/libraries/matrix-sdk-crypto-nodejs/generic.nix
index b7cac02bb6c56..63e9861421ab2 100644
--- a/pkgs/development/libraries/matrix-sdk-crypto-nodejs/generic.nix
+++ b/pkgs/development/libraries/matrix-sdk-crypto-nodejs/generic.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A no-network-IO implementation of a state machine that handles E2EE for Matrix clients";
+    description = "No-network-IO implementation of a state machine that handles E2EE for Matrix clients";
     homepage = "https://github.com/matrix-org/matrix-rust-sdk/tree/${src.rev}/bindings/matrix-sdk-crypto-nodejs";
     license = licenses.asl20;
     maintainers = with maintainers; [ winter ];
diff --git a/pkgs/development/libraries/mdds/default.nix b/pkgs/development/libraries/mdds/default.nix
index ea60c32a08cd3..53b60dd3159e4 100644
--- a/pkgs/development/libraries/mdds/default.nix
+++ b/pkgs/development/libraries/mdds/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://gitlab.com/mdds/mdds";
-    description = "A collection of multi-dimensional data structure and indexing algorithms";
+    description = "Collection of multi-dimensional data structure and indexing algorithms";
     changelog = "https://gitlab.com/mdds/mdds/-/blob/${finalAttrs.version}/CHANGELOG";
     license = licenses.mit;
     maintainers = [ maintainers.AndersonTorres ];
diff --git a/pkgs/development/libraries/medfile/default.nix b/pkgs/development/libraries/medfile/default.nix
index 9593781f2270e..8c07b2aad31a1 100644
--- a/pkgs/development/libraries/medfile/default.nix
+++ b/pkgs/development/libraries/medfile/default.nix
@@ -1,19 +1,39 @@
 { lib, stdenv, fetchurl, cmake, hdf5 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "medfile";
-  version = "4.1.1";
+  version = "5.0.0";
 
   src = fetchurl {
-    url = "http://files.salome-platform.org/Salome/other/med-${version}.tar.gz";
-    sha256 = "sha256-3CtdVOvwZm4/8ul0BB0qsNqQYGEyNTcCOrFl1XM4ndA=";
+    url = "https://files.salome-platform.org/Salome/medfile/med-${finalAttrs.version}.tar.bz2";
+    hash = "sha256-Jn520MZ+xRwQ4xmUhOwVCLqo1e2EXGKK32YFKdzno9Q=";
   };
 
-  patches = [
-    ./hdf5-1.14.patch
-  ];
+  outputs = [ "out" "doc" "dev" ];
+
+  postPatch = ''
+    # Patch cmake and source files to work with hdf5
+    substituteInPlace config/cmake_files/medMacros.cmake --replace-fail \
+      "IF (NOT HDF_VERSION_MAJOR_REF EQUAL 1 OR NOT HDF_VERSION_MINOR_REF EQUAL 12 OR NOT HDF_VERSION_RELEASE_REF GREATER 0)" \
+      "IF (HDF5_VERSION VERSION_LESS 1.12.0)"
+    substituteInPlace src/*/*.c --replace-warn \
+      "#if H5_VERS_MINOR > 12" \
+      "#if H5_VERS_MINOR > 14"
+  '' + lib.optionalString stdenv.isDarwin ''
+    # Some medfile test files #define _a, which
+    # breaks system header files that use _a as a function parameter
+    substituteInPlace tests/c/*.c \
+      --replace-warn "_a" "_A" \
+      --replace-warn "_b" "_B"
+    # Fix compiler errors in test files
+    substituteInPlace tests/c/*.c \
+      --replace-warn "med_Bool" "med_bool" \
+      --replace-warn "med_Axis_type" "med_axis_type" \
+      --replace-warn "med_Access_mode" "med_access_mode"
+  '';
 
   nativeBuildInputs = [ cmake ];
+
   buildInputs = [ hdf5 ];
 
   checkPhase = "make test";
@@ -22,8 +42,8 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Library to read and write MED files";
-    homepage = "http://salome-platform.org/";
-    platforms = platforms.linux;
+    homepage = "https://salome-platform.org/";
+    platforms = platforms.linux ++ platforms.darwin;
     license = licenses.lgpl3Plus;
   };
-}
+})
diff --git a/pkgs/development/libraries/medfile/hdf5-1.14.patch b/pkgs/development/libraries/medfile/hdf5-1.14.patch
deleted file mode 100644
index 294e87c023a7a..0000000000000
--- a/pkgs/development/libraries/medfile/hdf5-1.14.patch
+++ /dev/null
@@ -1,86 +0,0 @@
---- a/config/cmake_files/medMacros.cmake
-+++ b/config/cmake_files/medMacros.cmake
-@@ -447,7 +447,7 @@ MACRO(MED_FIND_HDF5)
-     ##
-     ## Requires 1.10.x version
-     ##
--    IF (NOT HDF_VERSION_MAJOR_REF EQUAL 1 OR NOT HDF_VERSION_MINOR_REF EQUAL 10 OR NOT HDF_VERSION_RELEASE_REF GREATER 1)
-+    IF (HDF5_VERSION VERSION_LESS 1.10.2)
-         MESSAGE(FATAL_ERROR "HDF5 version is ${HDF_VERSION_REF}. Only versions >= 1.10.2 are supported.")
-     ENDIF()
-     ##
---- a/src/ci/MEDfileCompatibility.c
-+++ b/src/ci/MEDfileCompatibility.c
-@@ -71,7 +71,7 @@ MEDfileCompatibility(const char* const filename,
-   _hversionMMR=10000*_hmajeur+100*_hmineur+_hrelease;
-   /* ISCRUTE(_hversionMMR); */
-   /* ISCRUTE(HDF_VERSION_NUM_REF); */
--  if ( (_hversionMMR >= HDF_VERSION_NUM_REF) && (_hmineur == HDF_VERSION_MINOR_REF) ) *hdfok = MED_TRUE;
-+  if ( ((_hversionMMR >= HDF_VERSION_NUM_REF) && (_hmineur == HDF_VERSION_MINOR_REF)) || _hversionMMR > HDF_VERSION_NUM_REF ) *hdfok = MED_TRUE;
- 
-   /* TODO : Vérifier si la version mineure HDF du fichier est supérieure
-      à la version mineure de la bibliothèque HDF utilisée :
-@@ -113,7 +113,7 @@ MEDfileCompatibility(const char* const filename,
- #if MED_NUM_MAJEUR != 4
- #error "Don't forget to update the test version here when you change the major version of the library !"
- #endif
--#if H5_VERS_MINOR > 10
-+#if H5_VERS_MINOR > 14
- #error "Don't forget to check the compatibility version of the library, depending on the internal hdf model choice !"
- #error "Cf. _MEDfileCreate ..."
- #endif
---- a/src/hdfi/_MEDfileCreate.c
-+++ b/src/hdfi/_MEDfileCreate.c
-@@ -159,7 +159,7 @@ med_idt _MEDfileCreate(const char * const filename, const med_access_mode access
-    * En HDF5-1.10.0p1 cela n'a aucun effet ! 
-    * Un test autoconf permet de fixer un intervalle de version HDF à MED.
-    */
--#if H5_VERS_MINOR > 10
-+#if H5_VERS_MINOR > 14
- #error "Don't forget to change the compatibility version of the library !"
- #endif
-    
---- a/src/hdfi/_MEDfileOpen.c
-+++ b/src/hdfi/_MEDfileOpen.c
-@@ -72,7 +72,7 @@ med_idt _MEDfileOpen(const char * const filename,const med_access_mode accessmod
- 
-    •   The creation order tracking property, H5P_CRT_ORDER_TRACKED, has been set in the group creation property list (see H5Pset_link_creation_order). 
-   */
--#if H5_VERS_MINOR > 10
-+#if H5_VERS_MINOR > 14
- #error "Don't forget to change the compatibility version of the library !"
- #endif
- /* L'avantage de bloquer le modèle interne HDF5 
---- a/src/hdfi/_MEDmemFileOpen.c
-+++ b/src/hdfi/_MEDmemFileOpen.c
-@@ -434,7 +434,7 @@ med_idt _MEDmemFileOpen(const char * const filename, med_memfile * const memfile
-     goto ERROR;
-   }
- 
--#if H5_VERS_MINOR > 10
-+#if H5_VERS_MINOR > 14
- #error "Don't forget to change the compatibility version of the library !"
- #endif
-   if ( H5Pset_libver_bounds( _fapl, H5F_LIBVER_18, H5F_LIBVER_18) ) {
---- a/src/hdfi/_MEDparFileCreate.c
-+++ b/src/hdfi/_MEDparFileCreate.c
-@@ -64,7 +64,7 @@ med_idt _MEDparFileCreate(const char * const filename, const med_access_mode acc
-    * En HDF5-1.10.0p1 cela n'a aucun effet ! 
-    * Un test autoconf permet de fixer un intervalle de version HDF à MED.
-    */
--#if H5_VERS_MINOR > 10
-+#if H5_VERS_MINOR > 14
- #error "Don't forget to change the compatibility version of the library !"
- #endif
-    
---- a/src/hdfi/_MEDparFileOpen.c
-+++ b/src/hdfi/_MEDparFileOpen.c
-@@ -55,7 +55,7 @@ med_idt _MEDparFileOpen(const char * const filename,const med_access_mode access
-     MED_ERR_(_fid,MED_ERR_INIT,MED_ERR_PROPERTY,MED_ERR_PARALLEL_MSG);
-     goto ERROR;
-   }
--#if H5_VERS_MINOR > 10
-+#if H5_VERS_MINOR > 14
- #error "Don't forget to change the compatibility version of the library !"
- #endif
-   if ( H5Pset_libver_bounds( _fapl, H5F_LIBVER_18, H5F_LIBVER_18 ) ) {
diff --git a/pkgs/development/libraries/mediastreamer/default.nix b/pkgs/development/libraries/mediastreamer/default.nix
index f1c109b244b36..f7549376d0bdd 100644
--- a/pkgs/development/libraries/mediastreamer/default.nix
+++ b/pkgs/development/libraries/mediastreamer/default.nix
@@ -86,7 +86,7 @@ stdenv.mkDerivation rec {
   NIX_LDFLAGS = "-lXext";
 
   meta = with lib; {
-    description = "A powerful and lightweight streaming engine specialized for voice/video telephony applications. Part of the Linphone project";
+    description = "Powerful and lightweight streaming engine specialized for voice/video telephony applications. Part of the Linphone project";
     homepage = "https://www.linphone.org/technical-corner/mediastreamer2";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/mediastreamer/msopenh264.nix b/pkgs/development/libraries/mediastreamer/msopenh264.nix
index 83a96175cba55..55ae2c8d9899e 100644
--- a/pkgs/development/libraries/mediastreamer/msopenh264.nix
+++ b/pkgs/development/libraries/mediastreamer/msopenh264.nix
@@ -1,7 +1,6 @@
 { autoreconfHook
 , cmake
 , fetchFromGitLab
-, fetchpatch
 , mediastreamer
 , openh264
 , pkg-config
@@ -39,7 +38,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "H.264 encoder/decoder plugin for mediastreamer2. Part of the Linphone project.";
+    description = "H.264 encoder/decoder plugin for mediastreamer2. Part of the Linphone project";
     homepage = "https://www.linphone.org/technical-corner/mediastreamer2";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/mesa/darwin.patch b/pkgs/development/libraries/mesa/darwin.patch
new file mode 100644
index 0000000000000..4649e09afb5ff
--- /dev/null
+++ b/pkgs/development/libraries/mesa/darwin.patch
@@ -0,0 +1,17 @@
+diff --git a/src/glx/glxext.c b/src/glx/glxext.c
+index 8770863eb7c..537f0af112c 100644
+--- a/src/glx/glxext.c
++++ b/src/glx/glxext.c
+@@ -886,10 +886,11 @@ __glXInitialize(Display * dpy)
+    Bool zink = False;
+    Bool try_zink = False;
+ 
++   const char *env = getenv("MESA_LOADER_DRIVER_OVERRIDE");
++
+ #if defined(GLX_DIRECT_RENDERING) && (!defined(GLX_USE_APPLEGL) || defined(GLX_USE_APPLE))
+    Bool glx_direct = !debug_get_bool_option("LIBGL_ALWAYS_INDIRECT", false);
+    Bool glx_accel = !debug_get_bool_option("LIBGL_ALWAYS_SOFTWARE", false);
+-   const char *env = getenv("MESA_LOADER_DRIVER_OVERRIDE");
+ 
+    zink = env && !strcmp(env, "zink");
+    try_zink = False;
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index 80621fd9bbb52..af5baf1bc3a5f 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -7,7 +7,6 @@
 , elfutils
 , expat
 , fetchCrate
-, fetchpatch
 , fetchurl
 , file
 , flex
@@ -29,6 +28,7 @@
 , pkg-config
 , python3Packages
 , rust-bindgen
+, rust-cbindgen
 , rustPlatform
 , rustc
 , spirv-llvm-translator
@@ -39,6 +39,7 @@
 , wayland
 , wayland-protocols
 , wayland-scanner
+, xcbutilkeysyms
 , xorg
 , zstd
 , withValgrind ?
@@ -48,12 +49,14 @@
 , enableGalliumNine ? stdenv.isLinux
 , enableOSMesa ? stdenv.isLinux
 , enableOpenCL ? stdenv.isLinux && stdenv.isx86_64
+, enableTeflon ? stdenv.isLinux && stdenv.isAarch64  # currently only supports aarch64 SoCs, may change in the future
 , enablePatentEncumberedCodecs ? true
 
 , galliumDrivers ?
   if stdenv.isLinux
   then [
     "d3d12" # WSL emulated GPU (aka Dozen)
+    "iris" # new Intel (Broadwell+)
     "kmsro" # special "render only" driver for GPUs without a display controller
     "nouveau" # Nvidia
     "radeonsi" # new AMD (GCN+)
@@ -73,7 +76,6 @@
     "tegra" # Nvidia Tegra SoCs
     "v3d" # Broadcom VC5 (Raspberry Pi 4)
   ] ++ lib.optionals stdenv.hostPlatform.isx86 [
-    "iris" # new Intel, could work on non-x86 with PCIe cards, but doesn't build as of 22.3.4
     "crocus" # Intel legacy, x86 only
     "i915" # Intel extra legacy, x86 only
   ]
@@ -82,8 +84,9 @@
   if stdenv.isLinux
   then [
     "amd" # AMD (aka RADV)
+    "intel" # new Intel (aka ANV)
     "microsoft-experimental" # WSL virtualized GPU (aka DZN/Dozen)
-    "nouveau-experimental" # Nouveau (aka NVK)
+    "nouveau" # Nouveau (aka NVK)
     "swrast" # software renderer (aka Lavapipe)
   ] ++ lib.optionals (stdenv.hostPlatform.isAarch -> lib.versionAtLeast stdenv.hostPlatform.parsed.cpu.version "6") [
     # QEMU virtualized GPU (aka VirGL)
@@ -95,7 +98,6 @@
     "imagination-experimental" # PowerVR Rogue (currently N/A)
     "panfrost" # ARM Mali Midgard and up (T/G series)
   ] ++ lib.optionals stdenv.hostPlatform.isx86 [
-    "intel" # Intel (aka ANV), could work on non-x86 with PCIe cards, but doesn't build
     "intel_hasvk" # Intel Haswell/Broadwell, "legacy" Vulkan driver (https://www.phoronix.com/news/Intel-HasVK-Drop-Dead-Code)
   ]
   else [ "auto" ]
@@ -111,8 +113,8 @@
 # nix build .#mesa .#pkgsi686Linux.mesa .#pkgsCross.aarch64-multiplatform.mesa .#pkgsMusl.mesa
 
 let
-  version = "24.0.7";
-  hash = "sha256-dFRCXx7UpvG1sQfhZyswyIsi6g7+oACuLH2W25P2wmo=";
+  version = "24.1.1";
+  hash = "sha256-ADiCbG9+iNkLTOb3GRkvpYyn3t9O3KoRdM972SDvieo=";
 
   # Release calendar: https://www.mesa3d.org/release-calendar.html
   # Release frequency: https://www.mesa3d.org/releasing.html#schedule
@@ -126,6 +128,11 @@ let
 
   rustDeps = [
     {
+      pname = "paste";
+      version = "1.0.14";
+      hash = "sha256-+J1h7New5MEclUBvwDQtTYJCHKKqAEOeQkuKy+g0vEc=";
+    }
+    {
       pname = "proc-macro2";
       version = "1.0.70";
       hash = "sha256-e4ZgyZUTu5nAtaH5QVkLelqJQX/XPj/rWkzf/g2c+1g=";
@@ -154,6 +161,7 @@ let
 
   copyRustDeps = lib.concatStringsSep "\n" (builtins.map copyRustDep rustDeps);
 
+  needNativeCLC = !stdenv.buildPlatform.canExecute stdenv.hostPlatform;
 self = stdenv.mkDerivation {
   pname = "mesa";
   inherit version;
@@ -171,6 +179,11 @@ self = stdenv.mkDerivation {
 
   patches = [
     ./opencl.patch
+  ] ++ lib.optionals stdenv.isDarwin [
+    # Reorder things to make it build on Darwin again
+    # Submitted upstream: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29592
+    # FIXME: remove when merged or otherwise addressed
+    ./darwin.patch
   ];
 
   postPatch = ''
@@ -193,6 +206,8 @@ self = stdenv.mkDerivation {
     "osmesa"
   ] ++ lib.optionals stdenv.isLinux [
     "driversdev"
+  ] ++ lib.optionals enableTeflon [
+    "teflon"
   ] ++ lib.optionals enableOpenCL [
     "opencl"
   ] ++ lib.optionals haveDozen [
@@ -233,6 +248,7 @@ self = stdenv.mkDerivation {
 
     (lib.mesonBool "gallium-nine" enableGalliumNine) # Direct3D in Wine
     (lib.mesonBool "osmesa" enableOSMesa) # used by wine
+    (lib.mesonBool "teflon" enableTeflon) # TensorFlow frontend
     (lib.mesonEnable "microsoft-clc" false) # Only relevant on Windows (OpenCL 1.2 API on top of D3D12)
 
     # To enable non-mesa gbm backends to be found (e.g. Nvidia)
@@ -241,11 +257,10 @@ self = stdenv.mkDerivation {
     # meson auto_features enables these features, but we do not want them
     (lib.mesonEnable "android-libbacktrace" false)
   ] ++ lib.optionals stdenv.isLinux [
-    (lib.mesonBool "glvnd" true)
-
-    # Enable RT for Intel hardware
-    # https://gitlab.freedesktop.org/mesa/mesa/-/issues/9080
-    (lib.mesonEnable "intel-clc" (stdenv.buildPlatform == stdenv.hostPlatform))
+    (lib.mesonEnable "glvnd" true)
+    (lib.mesonBool "install-intel-clc" true)
+    (lib.mesonEnable "intel-rt" stdenv.isx86_64)
+    (lib.mesonOption "clang-libdir" "${llvmPackages.clang-unwrapped.lib}/lib")
   ] ++ lib.optionals stdenv.isDarwin [
     # Disable features that are explicitly unsupported on the platform
     (lib.mesonEnable "gbm" false)
@@ -255,6 +270,11 @@ self = stdenv.mkDerivation {
     (lib.mesonEnable "gallium-va" false)
     (lib.mesonEnable "gallium-xa" false)
     (lib.mesonEnable "lmsensors" false)
+    # Don’t build with glvnd support to make sure Mesa builds libGL on Darwin
+    (lib.mesonEnable "glvnd" false)
+    # This gets enabled by mesonAutoFeatures and fails on aarch64-darwin,
+    # which makes no sense because Darwin has neither Intel nor RT, but OK
+    (lib.mesonEnable "intel-rt" false)
   ] ++ lib.optionals enableOpenCL [
     # Clover, old OpenCL frontend
     (lib.mesonOption "gallium-opencl" "icd")
@@ -262,7 +282,6 @@ self = stdenv.mkDerivation {
 
     # Rusticl, new OpenCL frontend
     (lib.mesonBool "gallium-rusticl" true)
-    (lib.mesonOption "clang-libdir" "${llvmPackages.clang-unwrapped.lib}/lib")
   ] ++ lib.optionals (!withValgrind) [
     (lib.mesonEnable "valgrind" false)
   ] ++ lib.optionals (!withLibunwind) [
@@ -272,6 +291,8 @@ self = stdenv.mkDerivation {
     (lib.mesonOption "video-codecs" "all")
   ] ++ lib.optionals (vulkanLayers != []) [
     (lib.mesonOption "vulkan-layers" (builtins.concatStringsSep "," vulkanLayers))
+  ] ++ lib.optionals needNativeCLC [
+    (lib.mesonOption "intel-clc" "system")
   ];
 
   strictDeps = true;
@@ -295,6 +316,7 @@ self = stdenv.mkDerivation {
     libpthreadstubs
     libxcb
     libxshmfence
+    xcbutilkeysyms
     xorgproto
   ]) ++ lib.optionals withLibunwind [
     libunwind
@@ -306,15 +328,15 @@ self = stdenv.mkDerivation {
   ] ++ lib.optionals stdenv.isLinux [
     libomxil-bellagio
     libva-minimal
+    llvmPackages.clang-unwrapped
+    llvmPackages.libclc
     lm_sensors
+    spirv-llvm-translator
     udev
   ] ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform elfutils) [
     elfutils
   ] ++ lib.optionals enableOpenCL [
-    llvmPackages.libclc
     llvmPackages.clang
-    llvmPackages.clang-unwrapped
-    spirv-llvm-translator
   ] ++ lib.optionals withValgrind [
     valgrind-light
   ] ++ lib.optionals haveZink [
@@ -343,15 +365,23 @@ self = stdenv.mkDerivation {
     flex
     file
     python3Packages.python
+    python3Packages.pycparser
     python3Packages.mako
     python3Packages.ply
     jdupes
     glslang
     rustc
     rust-bindgen
+    rust-cbindgen
     rustPlatform.bindgenHook
   ] ++ lib.optionals haveWayland [
     wayland-scanner
+  ] ++ lib.optionals needNativeCLC [
+    buildPackages.mesa.driversdev
+  ];
+
+  disallowedRequisites = lib.optionals needNativeCLC [
+    buildPackages.mesa.driversdev
   ];
 
   propagatedBuildInputs = (with xorg; [
@@ -441,6 +471,8 @@ self = stdenv.mkDerivation {
       fi
     done
 
+    moveToOutput bin/intel_clc $driversdev
+
     # Don't depend on build python
     patchShebangs --host --update $out/bin/*
 
@@ -458,6 +490,10 @@ self = stdenv.mkDerivation {
     ${lib.optionalString haveZink ''
       patchelf --add-rpath ${vulkan-loader}/lib $drivers/lib/dri/zink_dri.so
     ''}
+
+    ${lib.optionalString enableTeflon ''
+      moveToOutput lib/libteflon.so $teflon
+    ''}
   '';
 
   env.NIX_CFLAGS_COMPILE = toString (
@@ -486,7 +522,7 @@ self = stdenv.mkDerivation {
   };
 
   meta = {
-    description = "An open source 3D graphics library";
+    description = "Open source 3D graphics library";
     longDescription = ''
       The Mesa project began as an open-source implementation of the OpenGL
       specification - a system for rendering interactive 3D graphics. Over the
diff --git a/pkgs/development/libraries/mimalloc/default.nix b/pkgs/development/libraries/mimalloc/default.nix
index 27d6d1dd48aba..29fd2b662e694 100644
--- a/pkgs/development/libraries/mimalloc/default.nix
+++ b/pkgs/development/libraries/mimalloc/default.nix
@@ -7,13 +7,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname   = "mimalloc";
-  version = "2.1.6";
+  version = "2.1.7";
 
   src = fetchFromGitHub {
     owner  = "microsoft";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "sha256-Ff3+RP+lAXCOeHJ87oG3c02rPP4WQIbg5L/CVe6gA3M=";
+    sha256 = "sha256-slAi8Ht/jwpsFy5zC3CpfTdAkxEMpHJlgmNqMgz+psU=";
   };
 
   doCheck = !stdenv.hostPlatform.isStatic;
diff --git a/pkgs/development/libraries/minilibx/default.nix b/pkgs/development/libraries/minilibx/default.nix
index 41a422e3a2a26..b088aed10921d 100644
--- a/pkgs/development/libraries/minilibx/default.nix
+++ b/pkgs/development/libraries/minilibx/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation {
   };
 
   meta = with lib; {
-    description = "A simple X-Window (X11R6) programming API in C";
+    description = "Simple X-Window (X11R6) programming API in C";
     homepage = "https://github.com/42Paris/minilibx-linux";
     license = licenses.bsd2;
     maintainers = with maintainers; [ wegank ];
diff --git a/pkgs/development/libraries/minixml/default.nix b/pkgs/development/libraries/minixml/default.nix
index 1c9a4ab110b4a..4d06613f1de8e 100644
--- a/pkgs/development/libraries/minixml/default.nix
+++ b/pkgs/development/libraries/minixml/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A small XML library";
+    description = "Small XML library";
     homepage = "https://www.msweet.org/mxml/";
     license = licenses.asl20;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/minizip-ng/default.nix b/pkgs/development/libraries/minizip-ng/default.nix
index 5be1f2e519253..baf6a4f687a43 100644
--- a/pkgs/development/libraries/minizip-ng/default.nix
+++ b/pkgs/development/libraries/minizip-ng/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , gtest
 , pkg-config
diff --git a/pkgs/development/libraries/minizip/default.nix b/pkgs/development/libraries/minizip/default.nix
index 586dd113f1d10..44cba9767b36e 100644
--- a/pkgs/development/libraries/minizip/default.nix
+++ b/pkgs/development/libraries/minizip/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, zlib, autoreconfHook, fetchpatch }:
+{ lib, stdenv, zlib, autoreconfHook }:
 
 stdenv.mkDerivation {
   pname = "minizip";
diff --git a/pkgs/development/libraries/mitama-cpp-result/default.nix b/pkgs/development/libraries/mitama-cpp-result/default.nix
index bc30b6de9f4af..7700483529a9b 100644
--- a/pkgs/development/libraries/mitama-cpp-result/default.nix
+++ b/pkgs/development/libraries/mitama-cpp-result/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://github.com/LoliGothick/mitama-cpp-result";
-    description = "A Library that provides `result<T, E>` and `maybe<T>` and monadic functions for them";
+    description = "Library that provides `result<T, E>` and `maybe<T>` and monadic functions for them";
     longDescription = ''
       mitama-cpp-result is the C++17 libraries for error handling without exceptions.
 
diff --git a/pkgs/development/libraries/mlib/default.nix b/pkgs/development/libraries/mlib/default.nix
index f3415adadf74d..91e1271278333 100644
--- a/pkgs/development/libraries/mlib/default.nix
+++ b/pkgs/development/libraries/mlib/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mlib";
-  version = "0.7.2";
+  version = "0.7.3";
 
   src = fetchFromGitHub {
     owner = "P-p-H-d";
     repo = pname;
     rev = "V${version}";
-    hash = "sha256-wt/wLtvAZ19ZiLIjPrKbqVztLyXEa8hy6cEkaCO+tuY=";
+    hash = "sha256-r8ol923tNkZ13QXWjWpMrN6rBjjjg5XoBCho4OKdyvY=";
   };
 
   makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "PREFIX=$(out)" ];
diff --git a/pkgs/development/libraries/mongoc/default.nix b/pkgs/development/libraries/mongoc/default.nix
index 8a344a08fb7ad..e99671b4fcfa7 100644
--- a/pkgs/development/libraries/mongoc/default.nix
+++ b/pkgs/development/libraries/mongoc/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mongoc";
-  version = "1.27.1";
+  version = "1.27.2";
 
   src = fetchFromGitHub {
     owner = "mongodb";
     repo = "mongo-c-driver";
     rev = "refs/tags/${version}";
-    hash = "sha256-3+7JfgT1hZHyTiLDqYioI5GJYnqN9crE5CrXOvit0ew=";
+    hash = "sha256-l3iZeu6Y+ZB9bYIg4ivG1o0ou3pXaBZ9dg61b6ie2Jw=";
   };
 
   nativeBuildInputs = [
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The official C client library for MongoDB";
+    description = "Official C client library for MongoDB";
     homepage = "http://mongoc.org";
     license = licenses.asl20;
     mainProgram = "mongoc-stat";
diff --git a/pkgs/development/libraries/mongocxx/default.nix b/pkgs/development/libraries/mongocxx/default.nix
index ad96e81159a70..a17e7f8d037f6 100644
--- a/pkgs/development/libraries/mongocxx/default.nix
+++ b/pkgs/development/libraries/mongocxx/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
 
   meta = with lib; {
-    description = "The official C++ client library for MongoDB";
+    description = "Official C++ client library for MongoDB";
     homepage = "http://mongocxx.org";
     license = licenses.asl20;
     maintainers = with maintainers; [ adriandole ];
diff --git a/pkgs/development/libraries/mono-addins/default.nix b/pkgs/development/libraries/mono-addins/default.nix
index 9a31fbb69eeb2..23e613be08878 100644
--- a/pkgs/development/libraries/mono-addins/default.nix
+++ b/pkgs/development/libraries/mono-addins/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.mono-project.com/archived/monoaddins/";
-    description = "A generic framework for creating extensible applications";
+    description = "Generic framework for creating extensible applications";
     mainProgram = "mautil";
     longDescription = ''
       Mono.Addins is a generic framework for creating extensible applications,
diff --git a/pkgs/development/libraries/monocypher/default.nix b/pkgs/development/libraries/monocypher/default.nix
index b37cfffabc0ee..f5853385ba913 100644
--- a/pkgs/development/libraries/monocypher/default.nix
+++ b/pkgs/development/libraries/monocypher/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch }:
+{ lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
   pname = "monocypher";
diff --git a/pkgs/development/libraries/motif/default.nix b/pkgs/development/libraries/motif/default.nix
index 92d0098fc9840..8551510b476ca 100644
--- a/pkgs/development/libraries/motif/default.nix
+++ b/pkgs/development/libraries/motif/default.nix
@@ -26,8 +26,8 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ libXp libXau ];
 
-  prePatch = lib.optionalString (!demoSupport) ''
-    sed '/^SUBDIRS =,^$/s/\<demos\>//' -i Makefile.{am,in}
+  postPatch = lib.optionalString (!demoSupport) ''
+    sed 's/\<demos\>//' -i Makefile.{am,in}
   '';
 
   patches = [
@@ -38,6 +38,27 @@ stdenv.mkDerivation rec {
       url = "https://raw.githubusercontent.com/void-linux/void-packages/b9a1110dabb01c052dadc1abae1413bd4afe3652/srcpkgs/motif/patches/02-${name}";
       sha256 = "13vzpf8yxvhf4gl7q0yzlr6ak1yzx382fsqsrv5lc8jbbg4nwrrq";
     })
+    (fetchpatch {
+      name = "missing-headers.patch";
+      url = "https://gitlab.freedesktop.org/xorg/lib/libxpm/-/commit/4cedf181bcfe13e5d206554c51edb82cb17e7ad5.patch";
+      extraPrefix = "lib/Xm/";
+      stripLen = 2;
+      hash = "sha256-WlagHOgf2gZDxXN+SSEW6de1FuN4fbpd9zviMwo1+HI=";
+    })
+    (fetchurl {
+      name = "noreturn.patch";
+      url = "https://dev.gentoo.org/~ulm/distfiles/motif-2.3.8-patches-5.tar.xz";
+      downloadToTemp = true;
+      postFetch = ''
+        tar -xOf $downloadedFile patch/12_all_noreturn.patch > $out
+      '';
+      hash = "sha256-FyaBfqD/TuJVFFHZlp1/b1MyL8BJAfV43ktuusgxbfE=";
+    })
+    (fetchpatch {
+      url = "https://raw.githubusercontent.com/macports/macports-ports/acc8c7cb2247d9892bf5a52eb92431a4c0c8e1cd/x11/openmotif/files/wcs-functions.patch";
+      extraPrefix = "";
+      hash = "sha256-w3zCUs/RbnRoUJ0sNCI00noEOkov/IGV/zIygakSQqc=";
+    })
   ];
 
   enableParallelBuilding = true;
@@ -48,5 +69,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = with licenses; [ lgpl21Plus ];
     maintainers = with maintainers; [ qyliss ];
+    broken = demoSupport && stdenv.cc.isClang && lib.versionAtLeast stdenv.cc.version "16";
   };
 }
diff --git a/pkgs/development/libraries/mpdecimal/default.nix b/pkgs/development/libraries/mpdecimal/default.nix
index 514c61ffcb0c0..687abab7d45b9 100644
--- a/pkgs/development/libraries/mpdecimal/default.nix
+++ b/pkgs/development/libraries/mpdecimal/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchurl, updateAutotoolsGnuConfigScriptsHook }:
 
 stdenv.mkDerivation rec {
   pname = "mpdecimal";
@@ -10,6 +10,8 @@ stdenv.mkDerivation rec {
     hash = "sha256-lCRFwyRbInMP1Bpnp8XCMdEcsbmTa5wPdjNPt9C0Row=";
   };
 
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
+
   configureFlags = [ "LD=${stdenv.cc.targetPrefix}cc" ];
 
   postInstall = ''
diff --git a/pkgs/development/libraries/mpfi/default.nix b/pkgs/development/libraries/mpfi/default.nix
index 54abf134d3660..802a89c4c5e4e 100644
--- a/pkgs/development/libraries/mpfi/default.nix
+++ b/pkgs/development/libraries/mpfi/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ mpfr ];
 
   meta = {
-    description = "A multiple precision interval arithmetic library based on MPFR";
+    description = "Multiple precision interval arithmetic library based on MPFR";
     homepage = "http://perso.ens-lyon.fr/nathalie.revol/software.html";
     license = lib.licenses.lgpl21Plus;
     maintainers = [lib.maintainers.raskin];
diff --git a/pkgs/development/libraries/mpich/default.nix b/pkgs/development/libraries/mpich/default.nix
index 02e587661890b..bb7f9f5807d69 100644
--- a/pkgs/development/libraries/mpich/default.nix
+++ b/pkgs/development/libraries/mpich/default.nix
@@ -1,5 +1,6 @@
 { stdenv, lib, fetchurl, perl, gfortran
 , openssh, hwloc, python3
+, darwin
 # either libfabric or ucx work for ch4backend on linux. On darwin, neither of
 # these libraries currently build so this argument is ignored on Darwin.
 , ch4backend
@@ -44,10 +45,11 @@ stdenv.mkDerivation  rec {
   nativeBuildInputs = [ gfortran python3 ];
   buildInputs = [ perl openssh hwloc ]
     ++ lib.optional (!stdenv.isDarwin) ch4backend
-    ++ lib.optional pmixSupport pmix;
+    ++ lib.optional pmixSupport pmix
+    ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Foundation;
 
-
-  doCheck = true;
+  # test_double_serializer.test fails on darwin
+  doCheck = !stdenv.isDarwin;
 
   preFixup = ''
     # Ensure the default compilers are the ones mpich was built with
diff --git a/pkgs/development/libraries/mpir/default.nix b/pkgs/development/libraries/mpir/default.nix
index 6dd105bdb3027..26f22fd9968f2 100644
--- a/pkgs/development/libraries/mpir/default.nix
+++ b/pkgs/development/libraries/mpir/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     ++ lib.optionals stdenv.isLinux [ "--enable-fat" ];
 
   meta = {
-    description = "A highly optimised library for bignum arithmetic forked from GMP";
+    description = "Highly optimised library for bignum arithmetic forked from GMP";
     license = lib.licenses.lgpl3Plus;
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/mps/default.nix b/pkgs/development/libraries/mps/default.nix
index fd6e5d60bf7b8..049868c9381b6 100644
--- a/pkgs/development/libraries/mps/default.nix
+++ b/pkgs/development/libraries/mps/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ sqlite ];
 
   meta = {
-    description = "A flexible memory management and garbage collection library";
+    description = "Flexible memory management and garbage collection library";
     homepage    = "https://www.ravenbrook.com/project/mps";
     license     = lib.licenses.sleepycat;
     platforms   = lib.platforms.linux;
diff --git a/pkgs/development/libraries/msgpuck/default.nix b/pkgs/development/libraries/msgpuck/default.nix
index cc7b056bb988b..a21dd799e0fc8 100644
--- a/pkgs/development/libraries/msgpuck/default.nix
+++ b/pkgs/development/libraries/msgpuck/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkg-config ];
 
   meta = with lib; {
-     description = "A simple and efficient MsgPack binary serialization library in a self-contained header file";
+     description = "Simple and efficient MsgPack binary serialization library in a self-contained header file";
      homepage = "https://github.com/rtsisyk/msgpuck";
      license = licenses.bsd2;
      platforms = platforms.all;
diff --git a/pkgs/development/libraries/mtxclient/default.nix b/pkgs/development/libraries/mtxclient/default.nix
index 13816faefce9a..dff005d9eb1bc 100644
--- a/pkgs/development/libraries/mtxclient/default.nix
+++ b/pkgs/development/libraries/mtxclient/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , pkg-config
 , coeurl
@@ -16,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mtxclient";
-  version = "0.9.2";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "Nheko-Reborn";
     repo = "mtxclient";
     rev = "v${version}";
-    hash = "sha256-r+bD2L5+3AwkdYa3FwsM+yf7V5w+6ZJC92CMdVeYLJQ=";
+    hash = "sha256-luWcbYCv5OM3aidxiO7glqD+VYnCZMElZYaPKbtvMYI=";
   };
 
   postPatch = ''
@@ -54,7 +53,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "Client API library for the Matrix protocol.";
+    description = "Client API library for the Matrix protocol";
     homepage = "https://github.com/Nheko-Reborn/mtxclient";
     license = licenses.mit;
     maintainers = with maintainers; [ fpletz pstn ];
diff --git a/pkgs/development/libraries/muparserx/default.nix b/pkgs/development/libraries/muparserx/default.nix
index 8a7d2c8f36463..957e49c4d6d77 100644
--- a/pkgs/development/libraries/muparserx/default.nix
+++ b/pkgs/development/libraries/muparserx/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A C++ Library for Parsing Expressions with Strings, Complex Numbers, Vectors, Matrices and more";
+    description = "C++ Library for Parsing Expressions with Strings, Complex Numbers, Vectors, Matrices and more";
     homepage = "https://beltoforion.de/en/muparserx/";
     license = licenses.bsd2;
     maintainers = with maintainers; [ drewrisinger ];
diff --git a/pkgs/development/libraries/mutest/default.nix b/pkgs/development/libraries/mutest/default.nix
index f8e02b65774c5..63a1628cc40d7 100644
--- a/pkgs/development/libraries/mutest/default.nix
+++ b/pkgs/development/libraries/mutest/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/ebassi/mutest";
-    description = "A BDD testing framework for C, inspired by Mocha";
+    description = "BDD testing framework for C, inspired by Mocha";
     license = licenses.mit;
     maintainers = with maintainers; [ jtojnar ];
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/mvfst/default.nix b/pkgs/development/libraries/mvfst/default.nix
index 45b432a2dc9e6..0a784fff339ac 100644
--- a/pkgs/development/libraries/mvfst/default.nix
+++ b/pkgs/development/libraries/mvfst/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An implementation of the QUIC transport protocol";
+    description = "Implementation of the QUIC transport protocol";
     homepage = "https://github.com/facebook/mvfst";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/nanopb/test-message-with-annotations/default.nix b/pkgs/development/libraries/nanopb/test-message-with-annotations/default.nix
index 9eca4dbb93688..c2ffe6135fbb5 100644
--- a/pkgs/development/libraries/nanopb/test-message-with-annotations/default.nix
+++ b/pkgs/development/libraries/nanopb/test-message-with-annotations/default.nix
@@ -1,9 +1,12 @@
-{ stdenv, protobuf, nanopb }:
+{ lib, stdenv, protobuf, nanopb }:
 
 stdenv.mkDerivation {
   name = "nanopb-test-message-with-annotations";
   meta.timeout = 60;
-  src = ./.;
+  src = lib.fileset.toSource {
+    root = ./.;
+    fileset = lib.fileset.unions [ ./withannotations.proto ];
+  };
 
   # protoc requires any .proto file to be compiled to reside within it's
   # proto_path. By default the current directory is automatically added to the
diff --git a/pkgs/development/libraries/nanopb/test-message-with-options/default.nix b/pkgs/development/libraries/nanopb/test-message-with-options/default.nix
index 0030158df91b3..f6bf28f3b6457 100644
--- a/pkgs/development/libraries/nanopb/test-message-with-options/default.nix
+++ b/pkgs/development/libraries/nanopb/test-message-with-options/default.nix
@@ -1,9 +1,15 @@
-{ stdenv, protobuf, nanopb }:
+{ lib, stdenv, protobuf, nanopb }:
 
 stdenv.mkDerivation {
   name = "nanopb-test-message-with-options";
   meta.timeout = 60;
-  src = ./.;
+  src = lib.fileset.toSource {
+    root = ./.;
+    fileset = lib.fileset.unions [
+      ./withoptions.proto
+      ./withoptions.options
+    ];
+  };
 
   # protoc requires any .proto file to be compiled to reside within it's
   # proto_path. By default the current directory is automatically added to the
diff --git a/pkgs/development/libraries/nanopb/test-simple-proto2/default.nix b/pkgs/development/libraries/nanopb/test-simple-proto2/default.nix
index d1d3e1a855a70..f8cd35cbf3979 100644
--- a/pkgs/development/libraries/nanopb/test-simple-proto2/default.nix
+++ b/pkgs/development/libraries/nanopb/test-simple-proto2/default.nix
@@ -1,9 +1,12 @@
-{ stdenv, protobuf, nanopb }:
+{ lib, stdenv, protobuf, nanopb }:
 
 stdenv.mkDerivation {
   name = "nanopb-test-simple-proto2";
   meta.timeout = 60;
-  src = ./.;
+  src = lib.fileset.toSource {
+    root = ./.;
+    fileset = lib.fileset.unions [ ./simple.proto ];
+  };
 
   # protoc requires any .proto file to be compiled to reside within it's
   # proto_path. By default the current directory is automatically added to the
diff --git a/pkgs/development/libraries/nanopb/test-simple-proto3/default.nix b/pkgs/development/libraries/nanopb/test-simple-proto3/default.nix
index 71507054458fe..d92698d21ece5 100644
--- a/pkgs/development/libraries/nanopb/test-simple-proto3/default.nix
+++ b/pkgs/development/libraries/nanopb/test-simple-proto3/default.nix
@@ -1,10 +1,12 @@
-{ stdenv, protobuf, nanopb }:
+{ lib, stdenv, protobuf, nanopb }:
 
 stdenv.mkDerivation {
   name = "nanopb-test-simple-proto3";
   meta.timeout = 60;
-  src = ./.;
-
+  src = lib.fileset.toSource {
+    root = ./.;
+    fileset = lib.fileset.unions [ ./simple.proto ];
+  };
   # protoc requires any .proto file to be compiled to reside within it's
   # proto_path. By default the current directory is automatically added to the
   # proto_path. I tried using --proto_path ${./.} ${./simple.proto} and it did
diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix
index 2d383c876cba4..85bf4bee634e0 100644
--- a/pkgs/development/libraries/ncurses/default.nix
+++ b/pkgs/development/libraries/ncurses/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , fetchurl
 , buildPackages
+, updateAutotoolsGnuConfigScriptsHook
 , ncurses
 , pkg-config
 , abiVersion ? "6"
@@ -13,11 +14,11 @@
 }:
 
 stdenv.mkDerivation (finalAttrs: {
-  version = "6.4";
+  version = "6.4.20221231";
   pname = "ncurses" + lib.optionalString (abiVersion == "5") "-abi5-compat";
 
   src = fetchurl {
-    url = "https://invisible-island.net/archives/ncurses/ncurses-${finalAttrs.version}.tar.gz";
+    url = "https://invisible-island.net/archives/ncurses/ncurses-${lib.versions.majorMinor finalAttrs.version}.tar.gz";
     hash = "sha256-aTEoPZrIfFBz8wtikMTHXyFjK7T8NgOsgQCBK+0kgVk=";
   };
 
@@ -39,7 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
     ++ lib.optionals stdenv.hostPlatform.isWindows [
       "--enable-sp-funcs"
       "--enable-term-driver"
-  ] ++ lib.optionals (stdenv.hostPlatform.isUnix && stdenv.hostPlatform.isStatic) [
+  ] ++ lib.optionals (stdenv.hostPlatform.isUnix && enableStatic) [
       # For static binaries, the point is to have a standalone binary with
       # minimum dependencies. So here we make sure that binaries using this
       # package won't depend on a terminfo database located in the Nix store.
@@ -51,7 +52,16 @@ stdenv.mkDerivation (finalAttrs: {
       ]}"
   ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
     "--with-build-cc=${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc"
-  ];
+  ] ++ (lib.optionals (stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17") [
+      # lld17+ passes `--no-undefined-version` by default and makes this a hard
+      # error; ncurses' `resulting.map` version script references symbols that
+      # aren't present.
+      #
+      # See: https://lists.gnu.org/archive/html/bug-ncurses/2024-05/msg00086.html
+      #
+      # For now we allow this with `--undefined-version`:
+      "LDFLAGS=-Wl,--undefined-version"
+  ]);
 
   # Only the C compiler, and explicitly not C++ compiler needs this flag on solaris:
   CFLAGS = lib.optionalString stdenv.isSunOS "-D_XOPEN_SOURCE_EXTENDED";
@@ -59,6 +69,7 @@ stdenv.mkDerivation (finalAttrs: {
   strictDeps = true;
 
   nativeBuildInputs = [
+    updateAutotoolsGnuConfigScriptsHook
     pkg-config
   ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
    # for `tic`, build already depends on for build `cc` so it's weird the build doesn't just build `tic`.
diff --git a/pkgs/development/libraries/ndn-cxx/default.nix b/pkgs/development/libraries/ndn-cxx/default.nix
index d7b31426c4f68..01be5106eca90 100644
--- a/pkgs/development/libraries/ndn-cxx/default.nix
+++ b/pkgs/development/libraries/ndn-cxx/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://named-data.net/";
-    description = "A Named Data Networking (NDN) or Content Centric Networking (CCN) abstraction";
+    description = "Named Data Networking (NDN) or Content Centric Networking (CCN) abstraction";
     longDescription = ''
       ndn-cxx is a C++ library, implementing Named Data Networking (NDN)
       primitives that can be used to implement various NDN applications.
diff --git a/pkgs/development/libraries/ndpi/default.nix b/pkgs/development/libraries/ndpi/default.nix
index 94e249425717b..23eb0945555e8 100644
--- a/pkgs/development/libraries/ndpi/default.nix
+++ b/pkgs/development/libraries/ndpi/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A library for deep-packet inspection";
+    description = "Library for deep-packet inspection";
     longDescription = ''
       nDPI is a library for deep-packet inspection based on OpenDPI.
     '';
diff --git a/pkgs/development/libraries/neatvnc/default.nix b/pkgs/development/libraries/neatvnc/default.nix
index 2680dbd1ae92a..d8b439847ad47 100644
--- a/pkgs/development/libraries/neatvnc/default.nix
+++ b/pkgs/development/libraries/neatvnc/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A VNC server library";
+    description = "VNC server library";
     longDescription = ''
       This is a liberally licensed VNC server library that's intended to be
       fast and neat. Goals:
diff --git a/pkgs/development/libraries/neon/default.nix b/pkgs/development/libraries/neon/default.nix
index cbc8d3207e016..3185ff4158ee9 100644
--- a/pkgs/development/libraries/neon/default.nix
+++ b/pkgs/development/libraries/neon/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   passthru = {inherit compressionSupport sslSupport;};
 
   meta = with lib; {
-    description = "An HTTP and WebDAV client library";
+    description = "HTTP and WebDAV client library";
     mainProgram = "neon-config";
     homepage = "https://notroj.github.io/neon/";
     changelog = "https://github.com/notroj/${pname}/blob/${version}/NEWS";
diff --git a/pkgs/development/libraries/nghttp2/default.nix b/pkgs/development/libraries/nghttp2/default.nix
index 5566b0c8f67df..0fe8f1d88d513 100644
--- a/pkgs/development/libraries/nghttp2/default.nix
+++ b/pkgs/development/libraries/nghttp2/default.nix
@@ -67,6 +67,12 @@ stdenv.mkDerivation rec {
     export TZDIR=${tzdata}/share/zoneinfo
   '';
 
+  # this could be accomplished by updateAutotoolsGnuConfigScriptsHook, but that causes infinite recursion
+  # necessary for FreeBSD code path in configure
+  postPatch = ''
+    substituteInPlace ./config.guess --replace-fail /usr/bin/uname uname
+  '';
+
   postInstall = lib.optionalString (enableApp) ''
     installShellCompletion --bash doc/bash_completion/{h2load,nghttp,nghttpd,nghttpx}
   '' + lib.optionalString (!enableApp) ''
diff --git a/pkgs/development/libraries/nghttp3/default.nix b/pkgs/development/libraries/nghttp3/default.nix
index 849a464b1c0dc..cff650f5971df 100644
--- a/pkgs/development/libraries/nghttp3/default.nix
+++ b/pkgs/development/libraries/nghttp3/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nghttp3";
-  version = "1.2.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "ngtcp2";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-kJt4aQGNiJ0XhlEKunR8jYKytv3rh23jRrNelCDe/Kk=";
+    hash = "sha256-ZbgByLTkQWd3gfWW2V1kkboblfF9v+0HcNhxrjYpX28=";
     fetchSubmodules = true;
   };
 
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/ngtcp2/nghttp3";
-    description = "nghttp3 is an implementation of HTTP/3 mapping over QUIC and QPACK in C.";
+    description = "nghttp3 is an implementation of HTTP/3 mapping over QUIC and QPACK in C";
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ izorkin ];
diff --git a/pkgs/development/libraries/ngtcp2/default.nix b/pkgs/development/libraries/ngtcp2/default.nix
index ada0ab55dfd6f..25b35bd72fe47 100644
--- a/pkgs/development/libraries/ngtcp2/default.nix
+++ b/pkgs/development/libraries/ngtcp2/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ngtcp2";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "ngtcp2";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Ez97uFzXvI7cE2TIk4/RCAwbAf+vXG1PlPaSvdSrcnE=";
+    hash = "sha256-alS6M4sSyyytnzu9RTjDAioqkafEmgt/HpFUQ4MniCI=";
     fetchSubmodules = true;
   };
 
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/ngtcp2/ngtcp2";
-    description = "ngtcp2 project is an effort to implement QUIC protocol which is now being discussed in IETF QUICWG for its standardization.";
+    description = "ngtcp2 project is an effort to implement QUIC protocol which is now being discussed in IETF QUICWG for its standardization";
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ izorkin ];
diff --git a/pkgs/development/libraries/ngtcp2/gnutls.nix b/pkgs/development/libraries/ngtcp2/gnutls.nix
index d0e060c64058e..5fd52b1f592a1 100644
--- a/pkgs/development/libraries/ngtcp2/gnutls.nix
+++ b/pkgs/development/libraries/ngtcp2/gnutls.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ngtcp2";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "ngtcp2";
     repo = "ngtcp2";
     rev = "v${version}";
-    hash = "sha256-3tB1AvwGJJiujZEc5Uc2NSAETop4LFEgiml/v68oheM=";
+    hash = "sha256-Oaz5LX4R0vriURueQNklZ1dx1r8SWDaeK8oaUadlGtI=";
   };
 
   outputs = [ "out" "dev" ];
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/ngtcp2/ngtcp2";
-    description = "an effort to implement RFC9000 QUIC protocol.";
+    description = "Effort to implement RFC9000 QUIC protocol";
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ vcunat/* for knot-dns */ ];
diff --git a/pkgs/development/libraries/npapi-sdk/default.nix b/pkgs/development/libraries/npapi-sdk/default.nix
index 6611f99bdfc28..a61bd0088052a 100644
--- a/pkgs/development/libraries/npapi-sdk/default.nix
+++ b/pkgs/development/libraries/npapi-sdk/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A bundle of NPAPI headers by Mozilla";
+    description = "Bundle of NPAPI headers by Mozilla";
 
     homepage = "https://bitbucket.org/mgorny/npapi-sdk"; # see also https://github.com/mozilla/npapi-sdk
     license = licenses.bsd3;
diff --git a/pkgs/development/libraries/npth/default.nix b/pkgs/development/libraries/npth/default.nix
index 1ca747048e332..815c3dff031ec 100644
--- a/pkgs/development/libraries/npth/default.nix
+++ b/pkgs/development/libraries/npth/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "The New GNU Portable Threads Library";
+    description = "New GNU Portable Threads Library";
     mainProgram = "npth-config";
     longDescription = ''
       This is a library to provide the GNU Pth API and thus a non-preemptive
diff --git a/pkgs/development/libraries/nspr/default.nix b/pkgs/development/libraries/nspr/default.nix
index 59a3b49757932..586c4ddb94fc1 100644
--- a/pkgs/development/libraries/nspr/default.nix
+++ b/pkgs/development/libraries/nspr/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    homepage = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Reference/NSPR_functions";
+    homepage = "https://firefox-source-docs.mozilla.org/nspr/index.html";
     description = "Netscape Portable Runtime, a platform-neutral API for system-level and libc-like functions";
     maintainers = with maintainers; [ ajs124 hexa ];
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/nss/generic.nix b/pkgs/development/libraries/nss/generic.nix
index cab8a0ff2bc10..b0a633869abc7 100644
--- a/pkgs/development/libraries/nss/generic.nix
+++ b/pkgs/development/libraries/nss/generic.nix
@@ -187,7 +187,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS";
-    description = "A set of libraries for development of security-enabled client and server applications";
+    description = "Set of libraries for development of security-enabled client and server applications";
     changelog = "https://github.com/nss-dev/nss/blob/master/doc/rst/releases/nss_${underscoreVersion}.rst";
     maintainers = with maintainers; [ hexa ajs124 ];
     license = licenses.mpl20;
diff --git a/pkgs/development/libraries/nss/latest.nix b/pkgs/development/libraries/nss/latest.nix
index 3b3a672e87f76..3f45d2e39c79a 100644
--- a/pkgs/development/libraries/nss/latest.nix
+++ b/pkgs/development/libraries/nss/latest.nix
@@ -5,6 +5,6 @@
 #       Example: nix-shell ./maintainers/scripts/update.nix --argstr package cacert
 
 import ./generic.nix {
-  version = "3.100";
-  hash = "sha256-PlMCvSN4DMKY7u/7cr7kArrRve8YIfdycjgpik72bhA=";
+  version = "3.101";
+  hash = "sha256-lO+81zYBBFwqcjh4cd/fpiznHZ9rTJpfDW/yF8phYts=";
 }
diff --git a/pkgs/development/libraries/nss_wrapper/default.nix b/pkgs/development/libraries/nss_wrapper/default.nix
index 8faa50f83b725..3c1a2b33b18f0 100644
--- a/pkgs/development/libraries/nss_wrapper/default.nix
+++ b/pkgs/development/libraries/nss_wrapper/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkg-config ];
 
   meta = with lib; {
-    description = "A wrapper for the user, group and hosts NSS API";
+    description = "Wrapper for the user, group and hosts NSS API";
     mainProgram = "nss_wrapper.pl";
     homepage = "https://git.samba.org/?p=nss_wrapper.git;a=summary;";
     license = licenses.bsd3;
diff --git a/pkgs/development/libraries/ntbtls/default.nix b/pkgs/development/libraries/ntbtls/default.nix
index bdc2a919613c2..e04d2ae435374 100644
--- a/pkgs/development/libraries/ntbtls/default.nix
+++ b/pkgs/development/libraries/ntbtls/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A tiny TLS 1.2 only implementation";
+    description = "Tiny TLS 1.2 only implementation";
     mainProgram = "ntbtls-config";
     homepage = "https://www.gnupg.org/software/ntbtls/";
     license = licenses.gpl3Plus;
diff --git a/pkgs/development/libraries/ntirpc/default.nix b/pkgs/development/libraries/ntirpc/default.nix
index 39acba13d73e1..5ae6380849c8f 100644
--- a/pkgs/development/libraries/ntirpc/default.nix
+++ b/pkgs/development/libraries/ntirpc/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ntirpc";
-  version = "5.0";
+  version = "5.8";
 
   src = fetchFromGitHub {
     owner = "nfs-ganesha";
     repo = "ntirpc";
     rev = "v${version}";
-    sha256 = "sha256-xqnfo07EHwendzibIz187vdaenHwxg078D6zJvoyewc=";
+    sha256 = "sha256-t9InlnlwVts9mlrH8sHaaTYSrjJKlkFlGs1YCmZzjdE=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/ntl/default.nix b/pkgs/development/libraries/ntl/default.nix
index 8fa37141628cc..776608c4ad961 100644
--- a/pkgs/development/libraries/ntl/default.nix
+++ b/pkgs/development/libraries/ntl/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
   doCheck = true; # takes some time
 
   meta = with lib; {
-    description = "A Library for doing Number Theory";
+    description = "Library for doing Number Theory";
     longDescription = ''
       NTL is a high-performance, portable C++ library providing data
       structures and algorithms for manipulating signed, arbitrary
diff --git a/pkgs/development/libraries/numcpp/default.nix b/pkgs/development/libraries/numcpp/default.nix
index 6b0b0304d4238..b8dea0f3662b8 100644
--- a/pkgs/development/libraries/numcpp/default.nix
+++ b/pkgs/development/libraries/numcpp/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
   NIX_CFLAGS_COMPILE="-Wno-error";
 
   meta = with lib; {
-    description = "A Templatized Header Only C++ Implementation of the Python NumPy Library";
+    description = "Templatized Header Only C++ Implementation of the Python NumPy Library";
     homepage = "https://github.com/dpilger26/NumCpp";
     license = licenses.mit;
     maintainers = with maintainers; [spalf];
diff --git a/pkgs/development/libraries/nvidia-vaapi-driver/default.nix b/pkgs/development/libraries/nvidia-vaapi-driver/default.nix
index 876ff8c13c645..92f447a32422e 100644
--- a/pkgs/development/libraries/nvidia-vaapi-driver/default.nix
+++ b/pkgs/development/libraries/nvidia-vaapi-driver/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib;{
     homepage = "https://github.com/elFarto/nvidia-vaapi-driver";
-    description = "A VA-API implemention using NVIDIA's NVDEC";
+    description = "VA-API implemention using NVIDIA's NVDEC";
     changelog = "https://github.com/elFarto/nvidia-vaapi-driver/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers;[ nickcao ];
diff --git a/pkgs/development/libraries/octomap/default.nix b/pkgs/development/libraries/octomap/default.nix
index 8321028508a61..af668d279e27a 100644
--- a/pkgs/development/libraries/octomap/default.nix
+++ b/pkgs/development/libraries/octomap/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A probabilistic, flexible, and compact 3D mapping library for robotic systems";
+    description = "Probabilistic, flexible, and compact 3D mapping library for robotic systems";
     homepage = "https://octomap.github.io/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ lopsided98 ];
diff --git a/pkgs/development/libraries/ogre/default.nix b/pkgs/development/libraries/ogre/default.nix
index fa0535ef8e9a0..93db5470b0f73 100644
--- a/pkgs/development/libraries/ogre/default.nix
+++ b/pkgs/development/libraries/ogre/default.nix
@@ -112,8 +112,8 @@ let
 in
 {
   ogre_14 = common {
-    version = "14.2.5";
-    hash = "sha256-FldHoMU8akRF6/vjwley9nJOTioE5nQXnTdQqyNlI2M=";
+    version = "14.2.6";
+    hash = "sha256-kxvrRigSe6sPa3lAH+6zKTY4YEU9javlKHK8Zf6jxZE=";
     # https://github.com/OGRECave/ogre/blob/v14.2.5/Components/Overlay/CMakeLists.txt
     imguiVersion = "1.90.4";
     imguiHash = "sha256-7+Ay7H97tIO6CUsEyaQv4i9q2FCw98eQUq/KYZyfTAw=";
diff --git a/pkgs/development/libraries/oneDNN/default.nix b/pkgs/development/libraries/oneDNN/default.nix
index 1fcf4a1f00e2a..639ff62887a0b 100644
--- a/pkgs/development/libraries/oneDNN/default.nix
+++ b/pkgs/development/libraries/oneDNN/default.nix
@@ -9,13 +9,13 @@
 # https://github.com/oneapi-src/oneDNN#oneapi-deep-neural-network-library-onednn
 stdenv.mkDerivation (finalAttrs: {
   pname = "oneDNN";
-  version = "3.4.1";
+  version = "3.4.3";
 
   src = fetchFromGitHub {
     owner = "oneapi-src";
     repo = "oneDNN";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-6iPcytsRWvDn2hg5tkSG6A3cv/aOhmEVd5rS2uOKCPk=";
+    hash = "sha256-Ak49oFZkWNVjt98KXKqBGwKh7nz13/FO5riY7MIDR8g=";
   };
 
   outputs = [ "out" "dev" "doc" ];
diff --git a/pkgs/development/libraries/openbabel/2.nix b/pkgs/development/libraries/openbabel/2.nix
index b69efd8664673..b27960779cad0 100644
--- a/pkgs/development/libraries/openbabel/2.nix
+++ b/pkgs/development/libraries/openbabel/2.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkg-config ];
 
   meta = with lib; {
-    description = "A toolbox designed to speak the many languages of chemical data";
+    description = "Toolbox designed to speak the many languages of chemical data";
     homepage = "http://openbabel.org";
     platforms = platforms.all;
     maintainers = with maintainers; [ danielbarter ];
diff --git a/pkgs/development/libraries/openbabel/default.nix b/pkgs/development/libraries/openbabel/default.nix
index f472f7b06364a..0030b1cfa1713 100644
--- a/pkgs/development/libraries/openbabel/default.nix
+++ b/pkgs/development/libraries/openbabel/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A toolbox designed to speak the many languages of chemical data";
+    description = "Toolbox designed to speak the many languages of chemical data";
     homepage = "http://openbabel.org";
     platforms = platforms.all;
     license = licenses.gpl2Plus;
diff --git a/pkgs/development/libraries/openbsm/default.nix b/pkgs/development/libraries/openbsm/default.nix
index 627e9b830714c..f30fcac869f17 100644
--- a/pkgs/development/libraries/openbsm/default.nix
+++ b/pkgs/development/libraries/openbsm/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "ac_cv_file__usr_include_mach_audit_triggers_defs=no" ];
 
   meta = {
-    description = "An implementation of Sun's Basic Security Module (BSM) security audit API and file format";
+    description = "Implementation of Sun's Basic Security Module (BSM) security audit API and file format";
     homepage = "http://www.openbsm.org/";
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [ matthewbauer ];
diff --git a/pkgs/development/libraries/opencascade-occt/default.nix b/pkgs/development/libraries/opencascade-occt/default.nix
index 664968de64324..a09cacaf39286 100644
--- a/pkgs/development/libraries/opencascade-occt/default.nix
+++ b/pkgs/development/libraries/opencascade-occt/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
 , cmake
 , ninja
 , tcl
diff --git a/pkgs/development/libraries/opencl-clang/default.nix b/pkgs/development/libraries/opencl-clang/default.nix
index 70b80e3a84ddc..1c90cc386733f 100644
--- a/pkgs/development/libraries/opencl-clang/default.nix
+++ b/pkgs/development/libraries/opencl-clang/default.nix
@@ -109,7 +109,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/intel/opencl-clang/";
-    description = "A clang wrapper library with an OpenCL-oriented API and the ability to compile OpenCL C kernels to SPIR-V modules";
+    description = "Clang wrapper library with an OpenCL-oriented API and the ability to compile OpenCL C kernels to SPIR-V modules";
     license = licenses.ncsa;
     maintainers = with maintainers; [ ];
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/opencollada/default.nix b/pkgs/development/libraries/opencollada/default.nix
index d822050c08a21..bee15715fcfcc 100644
--- a/pkgs/development/libraries/opencollada/default.nix
+++ b/pkgs/development/libraries/opencollada/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A library for handling the COLLADA file format";
+    description = "Library for handling the COLLADA file format";
     homepage = "https://github.com/KhronosGroup/OpenCOLLADA/";
     maintainers = [ lib.maintainers.eelco ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/opencolorio/1.x.nix b/pkgs/development/libraries/opencolorio/1.x.nix
index 0355b99774489..61ce9cff661ae 100644
--- a/pkgs/development/libraries/opencolorio/1.x.nix
+++ b/pkgs/development/libraries/opencolorio/1.x.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://opencolorio.org";
-    description = "A color management framework for visual effects and animation";
+    description = "Color management framework for visual effects and animation";
     license = licenses.bsd3;
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/opencolorio/default.nix b/pkgs/development/libraries/opencolorio/default.nix
index a5661d6e44e65..d5270b655ca1e 100644
--- a/pkgs/development/libraries/opencolorio/default.nix
+++ b/pkgs/development/libraries/opencolorio/default.nix
@@ -88,7 +88,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://opencolorio.org";
-    description = "A color management framework for visual effects and animation";
+    description = "Color management framework for visual effects and animation";
     license = licenses.bsd3;
     maintainers = [ maintainers.rytone ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/opencv/3.x.nix b/pkgs/development/libraries/opencv/3.x.nix
index 5e9409368cc70..adb6532bd6825 100644
--- a/pkgs/development/libraries/opencv/3.x.nix
+++ b/pkgs/development/libraries/opencv/3.x.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchFromGitHub
-, fetchpatch
 , callPackage
 , cmake, pkg-config, unzip, zlib, pcre, hdf5
 , glog, boost, gflags, protobuf_21
@@ -16,7 +15,7 @@
 , enableContrib   ? true
 
 , enableCuda      ? config.cudaSupport
-, cudaPackages ? { }
+, cudaPackages
 , enableUnfree    ? false
 , enableIpp       ? false
 , enablePython    ? false, pythonPackages ? null
@@ -296,6 +295,8 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Open Computer Vision Library with more than 500 algorithms";
     homepage = "https://opencv.org/";
+    # OpenCV 3 won't build with CUDA 12+
+    broken = enableCuda && cudaPackages.cudaAtLeast "12";
     license = with licenses; if enableUnfree then unfree else bsd3;
     maintainers = with maintainers; [mdaiter basvandijk];
     platforms = with platforms; linux ++ darwin;
diff --git a/pkgs/development/libraries/opencv/4.x.nix b/pkgs/development/libraries/opencv/4.x.nix
index 2f24d984c062b..a4961163c9ad3 100644
--- a/pkgs/development/libraries/opencv/4.x.nix
+++ b/pkgs/development/libraries/opencv/4.x.nix
@@ -80,6 +80,12 @@
 , doxygen
 , graphviz-nox
 
+, runAccuracyTests ? true
+, runPerformanceTests ? false
+# Modules to enable via BUILD_LIST to build a customized opencv.
+# An empty lists means this setting is ommited which matches upstreams default.
+, enabledModules ? [ ]
+
 , AVFoundation
 , Cocoa
 , VideoDecodeAcceleration
@@ -234,8 +240,6 @@ let
 
   opencvFlag = name: enabled: "-DWITH_${name}=${printEnabled enabled}";
 
-  runAccuracyTests = true;
-  runPerformanceTests = false;
   printEnabled = enabled: if enabled then "ON" else "OFF";
   withOpenblas = (enableBlas && blas.provider.pname == "openblas");
   #multithreaded openblas conflicts with opencv multithreading, which manifest itself in hung tests
@@ -254,6 +258,7 @@ effectiveStdenv.mkDerivation {
   outputs = [
     "out"
     "cxxdev"
+  ] ++ lib.optionals (runAccuracyTests || runPerformanceTests) [
     "package_tests"
   ];
   cudaPropagateToOutput = "cxxdev";
@@ -479,6 +484,8 @@ effectiveStdenv.mkDerivation {
     "-DOPENCL_LIBRARY=${ocl-icd}/lib/libOpenCL.so"
   ] ++ lib.optionals enablePython [
     "-DOPENCV_SKIP_PYTHON_LOADER=ON"
+  ] ++ lib.optionals (enabledModules != [ ]) [
+    "-DBUILD_LIST=${lib.concatStringsSep "," enabledModules}"
   ];
 
   postBuild = lib.optionalString enableDocs ''
diff --git a/pkgs/development/libraries/opendht/default.nix b/pkgs/development/libraries/opendht/default.nix
index ea568cdfa52aa..3bd5c76e56920 100644
--- a/pkgs/development/libraries/opendht/default.nix
+++ b/pkgs/development/libraries/opendht/default.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "lib" "dev" "man" ];
 
   meta = with lib; {
-    description = "A C++11 Kademlia distributed hash table implementation";
+    description = "C++11 Kademlia distributed hash table implementation";
     homepage = "https://github.com/savoirfairelinux/opendht";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ taeer olynch thoughtpolice ];
diff --git a/pkgs/development/libraries/opendmarc/default.nix b/pkgs/development/libraries/opendmarc/default.nix
index 5a61af6c4dba8..d8af86b6cdb57 100644
--- a/pkgs/development/libraries/opendmarc/default.nix
+++ b/pkgs/development/libraries/opendmarc/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A free open source software implementation of the DMARC specification";
+    description = "Free open source software implementation of the DMARC specification";
     homepage = "http://www.trusteddomain.org/opendmarc/";
     license = with licenses; [ bsd3 sendmail ];
     maintainers = teams.helsinki-systems.members;
diff --git a/pkgs/development/libraries/openexr/3.nix b/pkgs/development/libraries/openexr/3.nix
index 074fdf4222d3e..9e6d6eaa65da9 100644
--- a/pkgs/development/libraries/openexr/3.nix
+++ b/pkgs/development/libraries/openexr/3.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A high dynamic-range (HDR) image file format";
+    description = "High dynamic-range (HDR) image file format";
     homepage = "https://www.openexr.com";
     license = licenses.bsd3;
     maintainers = with maintainers; [ paperdigits ];
diff --git a/pkgs/development/libraries/openexr/default.nix b/pkgs/development/libraries/openexr/default.nix
index 6d45ca33e982c..b45557b95c1b2 100644
--- a/pkgs/development/libraries/openexr/default.nix
+++ b/pkgs/development/libraries/openexr/default.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
   doCheck = !stdenv.isAarch32 && !stdenv.isi686;
 
   meta = with lib; {
-    description = "A high dynamic-range (HDR) image file format";
+    description = "High dynamic-range (HDR) image file format";
     homepage = "https://www.openexr.com/";
     license = licenses.bsd3;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/openfec/default.nix b/pkgs/development/libraries/openfec/default.nix
index dd6b0ce10c0b0..35ce5806aea77 100644
--- a/pkgs/development/libraries/openfec/default.nix
+++ b/pkgs/development/libraries/openfec/default.nix
@@ -20,10 +20,13 @@ stdenv.mkDerivation rec {
     cmake
   ];
 
-  cmakeFlags = [ "-DDEBUG:STRING=OFF" ];
+  cmakeFlags = [
+    "-DDEBUG:STRING=OFF"
+    (lib.cmakeBool "BUILD_STATIC_LIBS" stdenv.hostPlatform.isStatic)
+  ];
 
   installPhase =
-    let so = stdenv.hostPlatform.extensions.sharedLibrary;
+    let so = stdenv.hostPlatform.extensions.library;
     in ''
       # This is pretty horrible but sadly there is not installation procedure
       # provided.
diff --git a/pkgs/development/libraries/openimageio/default.nix b/pkgs/development/libraries/openimageio/default.nix
index 7d2e78794d8a0..3d2dc9b8f0e73 100644
--- a/pkgs/development/libraries/openimageio/default.nix
+++ b/pkgs/development/libraries/openimageio/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://openimageio.org";
-    description = "A library and tools for reading and writing images";
+    description = "Library and tools for reading and writing images";
     license = licenses.bsd3;
     maintainers = with maintainers; [ goibhniu ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/openldap/default.nix b/pkgs/development/libraries/openldap/default.nix
index aa04ff683bfd4..266b6900934ea 100644
--- a/pkgs/development/libraries/openldap/default.nix
+++ b/pkgs/development/libraries/openldap/default.nix
@@ -133,7 +133,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.openldap.org/";
-    description = "An open source implementation of the Lightweight Directory Access Protocol";
+    description = "Open source implementation of the Lightweight Directory Access Protocol";
     license = licenses.openldap;
     maintainers = with maintainers; [ hexa ] ++ teams.helsinki-systems.members;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/openpam/default.nix b/pkgs/development/libraries/openpam/default.nix
index 3d1cff05a0859..9f7f1b7bf4153 100644
--- a/pkgs/development/libraries/openpam/default.nix
+++ b/pkgs/development/libraries/openpam/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.openpam.org";
-    description = "An open source PAM library that focuses on simplicity, correctness, and cleanliness";
+    description = "Open source PAM library that focuses on simplicity, correctness, and cleanliness";
     platforms = platforms.unix;
     maintainers = with maintainers; [ matthewbauer ];
     license = licenses.bsd3;
diff --git a/pkgs/development/libraries/opensaml-cpp/default.nix b/pkgs/development/libraries/opensaml-cpp/default.nix
index 09c2be979a829..5e7de98efc461 100644
--- a/pkgs/development/libraries/opensaml-cpp/default.nix
+++ b/pkgs/development/libraries/opensaml-cpp/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage    = "https://shibboleth.net/products/opensaml-cpp.html";
-    description = "A low-level library written in C++ that provides support for producing and consuming SAML messages";
+    description = "Low-level library written in C++ that provides support for producing and consuming SAML messages";
     mainProgram = "samlsign";
     platforms   = platforms.unix;
     license     = licenses.asl20;
diff --git a/pkgs/development/libraries/openscenegraph/default.nix b/pkgs/development/libraries/openscenegraph/default.nix
index 05a5591035760..3566e458598c5 100644
--- a/pkgs/development/libraries/openscenegraph/default.nix
+++ b/pkgs/development/libraries/openscenegraph/default.nix
@@ -84,7 +84,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = lib.optional (!withApps) "-DBUILD_OSG_APPLICATIONS=OFF" ++ lib.optional withExamples "-DBUILD_OSG_EXAMPLES=ON";
 
   meta = with lib; {
-    description = "A 3D graphics toolkit";
+    description = "3D graphics toolkit";
     homepage = "http://www.openscenegraph.org/";
     maintainers = with maintainers; [ aanderse raskin ];
     platforms = with platforms; linux ++ darwin;
diff --git a/pkgs/development/libraries/openslide/default.nix b/pkgs/development/libraries/openslide/default.nix
index 71c2017f9e5a5..cc0b5ed98c615 100644
--- a/pkgs/development/libraries/openslide/default.nix
+++ b/pkgs/development/libraries/openslide/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://openslide.org";
-    description = "A C library that provides a simple interface to read whole-slide images.";
+    description = "C library that provides a simple interface to read whole-slide images";
     license = licenses.lgpl21;
     platforms = platforms.unix;
     maintainers = with maintainers; [ lromor ];
diff --git a/pkgs/development/libraries/openslp/default.nix b/pkgs/development/libraries/openslp/default.nix
index 6e03138adfae3..e390cfd932fdd 100644
--- a/pkgs/development/libraries/openslp/default.nix
+++ b/pkgs/development/libraries/openslp/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.openslp.org/";
-    description = "An open-source implementation of the IETF Service Location Protocol";
+    description = "Open-source implementation of the IETF Service Location Protocol";
     maintainers = with maintainers; [ ttuegel ];
     license = licenses.bsd3;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix
index 0e144726cf85f..361756f94ea90 100644
--- a/pkgs/development/libraries/openssl/default.nix
+++ b/pkgs/development/libraries/openssl/default.nix
@@ -221,7 +221,7 @@ let
     meta = with lib; {
       homepage = "https://www.openssl.org/";
       changelog = "https://github.com/openssl/openssl/blob/openssl-${version}/CHANGES.md";
-      description = "A cryptographic library that implements the SSL and TLS protocols";
+      description = "Cryptographic library that implements the SSL and TLS protocols";
       license = licenses.openssl;
       mainProgram = "openssl";
       maintainers = with maintainers; [ thillux ];
diff --git a/pkgs/development/libraries/opensubdiv/default.nix b/pkgs/development/libraries/opensubdiv/default.nix
index 3ed10ef270f97..0cf848ac44b77 100644
--- a/pkgs/development/libraries/opensubdiv/default.nix
+++ b/pkgs/development/libraries/opensubdiv/default.nix
@@ -78,7 +78,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "An Open-Source subdivision surface library";
+    description = "Open-Source subdivision surface library";
     homepage = "http://graphics.pixar.com/opensubdiv";
     broken = openclSupport && cudaSupport;
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/openvdb/default.nix b/pkgs/development/libraries/openvdb/default.nix
index bbb8aa47a35d6..2b1fca97f06e2 100644
--- a/pkgs/development/libraries/openvdb/default.nix
+++ b/pkgs/development/libraries/openvdb/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec
   '';
 
   meta = with lib; {
-    description = "An open framework for voxel";
+    description = "Open framework for voxel";
     mainProgram = "vdb_print";
     homepage = "https://www.openvdb.org";
     maintainers = [ maintainers.guibou ];
diff --git a/pkgs/development/libraries/openvino/default.nix b/pkgs/development/libraries/openvino/default.nix
index 280c1b7ef934c..14ad6c166e551 100644
--- a/pkgs/development/libraries/openvino/default.nix
+++ b/pkgs/development/libraries/openvino/default.nix
@@ -5,6 +5,7 @@
 , cudaSupport ? opencv.cudaSupport or false
 
 # build
+, scons
 , addOpenGLRunpath
 , autoPatchelfHook
 , cmake
@@ -25,7 +26,7 @@
 , protobuf
 , pugixml
 , snappy
-, tbb
+, tbb_2021_5
 , cudaPackages
 }:
 
@@ -36,6 +37,9 @@ let
 
   stdenv = gcc12Stdenv;
 
+  # prevent scons from leaking in the default python version
+  scons' = scons.override { python3 = python3Packages.python; };
+
   tbbbind_version = "2_5";
   tbbbind = fetchurl {
     url = "https://storage.openvinotoolkit.org/dependencies/thirdparty/linux/tbbbind_${tbbbind_version}_static_lin_v4.tgz";
@@ -54,14 +58,14 @@ in
 
 stdenv.mkDerivation rec {
   pname = "openvino";
-  version = "2024.1.0";
+  version = "2024.2.0";
 
   src = fetchFromGitHub {
     owner = "openvinotoolkit";
     repo = "openvino";
     rev = "refs/tags/${version}";
     fetchSubmodules = true;
-    hash = "sha256-OOSxXpLjmhOgKvrSO6SmY7xLhJSzGXT8w/Y4FnfwTqU=";
+    hash = "sha256-HiKKvmqgbwW625An+Su0EOHqVrP18yvG2aOzrS0jWr4=";
   };
 
   outputs = [
@@ -78,6 +82,7 @@ stdenv.mkDerivation rec {
     patchelf
     pkg-config
     python
+    scons'
     shellcheck
   ] ++ lib.optionals cudaSupport [
     cudaPackages.cuda_nvcc
@@ -91,7 +96,9 @@ stdenv.mkDerivation rec {
     popd
   '';
 
-  dontUseCmakeBuildDir = true;
+  dontUseSconsCheck = true;
+  dontUseSconsBuild = true;
+  dontUseSconsInstall = true;
 
   cmakeFlags = [
     "-Wno-dev"
@@ -109,7 +116,7 @@ stdenv.mkDerivation rec {
     (cmakeBool "ENABLE_SAMPLES" false)
 
     # features
-    (cmakeBool "ENABLE_INTEL_CPU" true)
+    (cmakeBool "ENABLE_INTEL_CPU" stdenv.isx86_64)
     (cmakeBool "ENABLE_JS" false)
     (cmakeBool "ENABLE_LTO" true)
     (cmakeBool "ENABLE_ONEDNN_FOR_GPU" false)
@@ -125,8 +132,6 @@ stdenv.mkDerivation rec {
     (cmakeBool "ENABLE_SYSTEM_TBB" true)
   ];
 
-  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isAarch64 "-Wno-narrowing";
-
   autoPatchelfIgnoreMissingDeps = [
     "libngraph_backend.so"
   ];
@@ -140,7 +145,7 @@ stdenv.mkDerivation rec {
     opencv.cxxdev
     pugixml
     snappy
-    tbb
+    tbb_2021_5
   ] ++ lib.optionals cudaSupport [
     cudaPackages.cuda_cudart
   ];
@@ -172,8 +177,7 @@ stdenv.mkDerivation rec {
     homepage = "https://docs.openvinotoolkit.org/";
     license = with licenses; [ asl20 ];
     platforms = platforms.all;
-    broken = (stdenv.isLinux && stdenv.isAarch64) # requires scons, then fails with *** Source directory cannot be under variant directory.
-      || stdenv.isDarwin; # Cannot find macos sdk
+    broken = stdenv.isDarwin; # Cannot find macos sdk
     maintainers = with maintainers; [ tfmoraes ];
   };
 }
diff --git a/pkgs/development/libraries/openxr-loader/default.nix b/pkgs/development/libraries/openxr-loader/default.nix
index ec4c327d784b4..f153d7f2f18b6 100644
--- a/pkgs/development/libraries/openxr-loader/default.nix
+++ b/pkgs/development/libraries/openxr-loader/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openxr-loader";
-  version = "1.1.36";
+  version = "1.1.37";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "OpenXR-SDK-Source";
     rev = "release-${version}";
-    sha256 = "sha256-Ki2tp8a67AjIMIGDpWWqCnpMmeZpJ8uPezKE2KWrOjA=";
+    sha256 = "sha256-J9IfhTFFSY+rK0DqFdXtINo7nlGUcy2Lljq81T417qc=";
   };
 
   nativeBuildInputs = [ cmake python3 pkg-config ];
diff --git a/pkgs/development/libraries/openzwave/default.nix b/pkgs/development/libraries/openzwave/default.nix
index 07fe1db829253..f45eacfd157f8 100644
--- a/pkgs/development/libraries/openzwave/default.nix
+++ b/pkgs/development/libraries/openzwave/default.nix
@@ -4,28 +4,15 @@
 
 stdenv.mkDerivation rec {
   pname = "openzwave";
-  version = "1.6";
+  version = "1.6-unstable-2022-11-17";
 
   src = fetchFromGitHub {
     owner = "OpenZWave";
     repo = "open-zwave";
-    rev = "v${version}";
-    sha256 = "0xgs4mmr0480c269wx9xkk67ikjzxkh8xcssrdx0f5xcl1lyd333";
+    rev = "3fff11d246a0d558d26110e1db6bd634a1b347c0";
+    hash = "sha256-CLK2MeoTmZ8GMKb1OAZFNLyc4C+k+REK2w+WQxZv0/E=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "fix-strncat-build-failure.patch";
-      url = "https://github.com/OpenZWave/open-zwave/commit/601e5fb16232a7984885e67fdddaf5b9c9dd8105.patch";
-      sha256 = "1n1k5arwk1dyc12xz6xl4n8yw28vghzhv27j65z1nca4zqsxgza1";
-    })
-    (fetchpatch {
-      name = "fix-text-uninitialized.patch";
-      url = "https://github.com/OpenZWave/open-zwave/commit/3b029a467e83bc7f0054e4dbba1e77e6eac7bc7f.patch";
-      sha256 = "183mrzjh1zx2b2wzkj4jisiw8br7g7bbs167afls4li0fm01d638";
-    })
-  ];
-
   outputs = [ "out" "doc" ];
 
   nativeBuildInputs = [ doxygen fontconfig graphviz-nox libxml2 pkg-config which ];
@@ -46,6 +33,8 @@ stdenv.mkDerivation rec {
   postPatch = ''
     substituteInPlace cpp/src/Options.cpp \
       --replace /etc/openzwave $out/etc/openzwave
+    substituteInPlace cpp/build/Makefile  \
+      --replace "-Werror" "-Werror -Wno-format"
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/ortp/default.nix b/pkgs/development/libraries/ortp/default.nix
index 3c61e7b5c9d99..9940ec12ab70d 100644
--- a/pkgs/development/libraries/ortp/default.nix
+++ b/pkgs/development/libraries/ortp/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
-    description = "A Real-Time Transport Protocol (RFC3550) stack. Part of the Linphone project.";
+    description = "Real-Time Transport Protocol (RFC3550) stack. Part of the Linphone project";
     mainProgram = "ortp_tester";
     homepage = "https://linphone.org/technical-corner/ortp";
     license = licenses.gpl3Plus;
diff --git a/pkgs/development/libraries/osip/default.nix b/pkgs/development/libraries/osip/default.nix
index f7cedc96b7c72..d552bedaa4f91 100644
--- a/pkgs/development/libraries/osip/default.nix
+++ b/pkgs/development/libraries/osip/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   meta = {
     license = lib.licenses.lgpl21Plus;
     homepage = "https://www.gnu.org/software/osip/";
-    description = "The GNU oSIP library, an implementation of the Session Initiation Protocol (SIP)";
+    description = "GNU oSIP library, an implementation of the Session Initiation Protocol (SIP)";
     maintainers = with lib.maintainers; [ raskin ];
     platforms = lib.platforms.all;
   };
diff --git a/pkgs/development/libraries/packr/default.nix b/pkgs/development/libraries/packr/default.nix
index 1a5bacad59f87..43822d76aa197 100644
--- a/pkgs/development/libraries/packr/default.nix
+++ b/pkgs/development/libraries/packr/default.nix
@@ -23,7 +23,7 @@ let p2 = buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "The simple and easy way to embed static files into Go binaries";
+    description = "Simple and easy way to embed static files into Go binaries";
     homepage = "https://github.com/gobuffalo/packr";
     license = licenses.mit;
     maintainers = with maintainers; [ mmahut ];
@@ -55,7 +55,7 @@ p1 = buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "The simple and easy way to embed static files into Go binaries";
+    description = "Simple and easy way to embed static files into Go binaries";
     homepage = "https://github.com/gobuffalo/packr";
     license = licenses.mit;
     maintainers = with maintainers; [ mmahut ];
diff --git a/pkgs/development/libraries/pango/default.nix b/pkgs/development/libraries/pango/default.nix
index 70408877fe0e9..d91552e3799a5 100644
--- a/pkgs/development/libraries/pango/default.nix
+++ b/pkgs/development/libraries/pango/default.nix
@@ -106,7 +106,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A library for laying out and rendering of text, with an emphasis on internationalization";
+    description = "Library for laying out and rendering of text, with an emphasis on internationalization";
 
     longDescription = ''
       Pango is a library for laying out and rendering of text, with an
diff --git a/pkgs/development/libraries/pangolin/default.nix b/pkgs/development/libraries/pangolin/default.nix
index 5e8ec502a65fc..c96bf713af8c9 100644
--- a/pkgs/development/libraries/pangolin/default.nix
+++ b/pkgs/development/libraries/pangolin/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ "-DBUILD_TESTS=OFF" ];
 
   meta = {
-    description = "A lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input";
+    description = "Lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input";
     longDescription = ''
       Pangolin is a lightweight portable rapid development library for managing
       OpenGL display / interaction and abstracting video input. At its heart is
diff --git a/pkgs/development/libraries/pcg-c/default.nix b/pkgs/development/libraries/pcg-c/default.nix
index 04aa6c7afbc92..ced4e04c0b876 100644
--- a/pkgs/development/libraries/pcg-c/default.nix
+++ b/pkgs/development/libraries/pcg-c/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A family of better random number generators";
+    description = "Family of better random number generators";
     homepage = "https://www.pcg-random.org/";
     license = lib.licenses.asl20;
     longDescription = ''
diff --git a/pkgs/development/libraries/pcmsolver/default.nix b/pkgs/development/libraries/pcmsolver/default.nix
index d17c806700f46..c2924426f8bb4 100644
--- a/pkgs/development/libraries/pcmsolver/default.nix
+++ b/pkgs/development/libraries/pcmsolver/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "An API for the Polarizable Continuum Model";
+    description = "API for the Polarizable Continuum Model";
     mainProgram = "run_pcm";
     homepage = "https://pcmsolver.readthedocs.io/en/stable/";
     license = licenses.lgpl3Only;
diff --git a/pkgs/development/libraries/pcre/default.nix b/pkgs/development/libraries/pcre/default.nix
index e488ebe1f464a..52a4ba32315ee 100644
--- a/pkgs/development/libraries/pcre/default.nix
+++ b/pkgs/development/libraries/pcre/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://www.pcre.org/";
-    description = "A library for Perl Compatible Regular Expressions";
+    description = "Library for Perl Compatible Regular Expressions";
     license = lib.licenses.bsd3;
 
     longDescription = ''
diff --git a/pkgs/development/libraries/pcre2/default.nix b/pkgs/development/libraries/pcre2/default.nix
index c30a3c379d1de..3450f910effef 100644
--- a/pkgs/development/libraries/pcre2/default.nix
+++ b/pkgs/development/libraries/pcre2/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, updateAutotoolsGnuConfigScriptsHook
 , withJitSealloc ? true
 }:
 
@@ -13,6 +14,8 @@ stdenv.mkDerivation rec {
     hash = "sha256-4qU5hP8LB9/bWuRIa7ubIcyo598kNAlsyb8bcow1C8s=";
   };
 
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
+
   postPatch = ''
     # Fix jit autodetection:
     #   https://github.com/PCRE2Project/pcre2/pull/396
diff --git a/pkgs/development/libraries/pdal/default.nix b/pkgs/development/libraries/pdal/default.nix
index 86d976531cb37..c035460fafae7 100644
--- a/pkgs/development/libraries/pdal/default.nix
+++ b/pkgs/development/libraries/pdal/default.nix
@@ -10,7 +10,7 @@
 , curl
 , gdal
 , hdf5-cpp
-, LASzip
+, laszip
 , libe57format
 , libgeotiff
 , libtiff
@@ -45,7 +45,7 @@ stdenv.mkDerivation (finalAttrs: {
     curl
     gdal
     hdf5-cpp
-    LASzip
+    laszip
     libgeotiff
     libtiff
     libxml2
@@ -87,6 +87,12 @@ stdenv.mkDerivation (finalAttrs: {
   doCheck = true;
 
   disabledTests = [
+    # Failing due to GDAL 3.9 change in coordinates precision.
+    # See: https://github.com/PDAL/PDAL/issues/4403
+    # This test should be re-enabled once https://github.com/PDAL/PDAL/pull/4411
+    # is merged !
+    "pdal_io_ogr_writer_test"
+
     # Tests failing due to TileDB library implementation, disabled also
     # by upstream CI.
     # See: https://github.com/PDAL/PDAL/blob/bc46bc77f595add4a6d568a1ff923d7fe20f7e74/.github/workflows/linux.yml#L81
diff --git a/pkgs/development/libraries/pdfhummus/default.nix b/pkgs/development/libraries/pdfhummus/default.nix
index bfba4ad096202..13869dba89dab 100644
--- a/pkgs/development/libraries/pdfhummus/default.nix
+++ b/pkgs/development/libraries/pdfhummus/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pdfhummus";
-  version = "4.6.3";
+  version = "4.6.4";
 
   src = fetchFromGitHub {
     owner = "galkahana";
     repo = "PDF-Writer";
     rev = "v${version}";
-    hash = "sha256-6Hp5hacMpVdsiUvMSXBQ5432tPrkHSOiVoWa91sv38k=";
+    hash = "sha256-7VltECiXQY+6M5EE17SKj0KwLk0+gOJfbLqprafIgLQ=";
   };
 
   nativeBuildInputs = [
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A Fast and Free C++ Library for Creating, Parsing an Manipulating PDF Files and Streams";
+    description = "Fast and Free C++ Library for Creating, Parsing an Manipulating PDF Files and Streams";
     homepage = "https://www.pdfhummus.com";
     license = licenses.asl20;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/pe-parse/default.nix b/pkgs/development/libraries/pe-parse/default.nix
index 7560f2297cfad..1a3a602d55278 100644
--- a/pkgs/development/libraries/pe-parse/default.nix
+++ b/pkgs/development/libraries/pe-parse/default.nix
@@ -13,13 +13,17 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
+  env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isClang [
+    "-Wno-error=deprecated-declarations"
+  ]);
+
   doInstallCheck = true;
   installCheckPhase = ''
     $out/bin/dump-pe ../tests/assets/example.exe
   '';
 
   meta = with lib; {
-    description = "A principled, lightweight parser for Windows portable executable files";
+    description = "Principled, lightweight parser for Windows portable executable files";
     homepage = "https://github.com/trailofbits/pe-parse";
     changelog = "https://github.com/trailofbits/pe-parse/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/libraries/physics/apfel/default.nix b/pkgs/development/libraries/physics/apfel/default.nix
index e1192cdcd05eb..da403af44b9bf 100644
--- a/pkgs/development/libraries/physics/apfel/default.nix
+++ b/pkgs/development/libraries/physics/apfel/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
   env.NIX_CFLAGS_COMPILE = "-DAPFEL_VERSION=${version}";
 
   meta = with lib; {
-    description = "A PDF Evolution Library";
+    description = "PDF Evolution Library";
     homepage = "https://apfel.mi.infn.it/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ veprbl ];
diff --git a/pkgs/development/libraries/physics/applgrid/default.nix b/pkgs/development/libraries/physics/applgrid/default.nix
index 105a6b4953f77..c2dbb1235b487 100644
--- a/pkgs/development/libraries/physics/applgrid/default.nix
+++ b/pkgs/development/libraries/physics/applgrid/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The APPLgrid project provides a fast and flexible way to reproduce the results of full NLO calculations with any input parton distribution set in only a few milliseconds rather than the weeks normally required to gain adequate statistics";
+    description = "APPLgrid project provides a fast and flexible way to reproduce the results of full NLO calculations with any input parton distribution set in only a few milliseconds rather than the weeks normally required to gain adequate statistics";
     license     = licenses.gpl3;
     homepage    = "http://applgrid.hepforge.org";
     platforms   = platforms.unix;
diff --git a/pkgs/development/libraries/physics/fastjet/default.nix b/pkgs/development/libraries/physics/fastjet/default.nix
index a4c01dd6ecf30..f00b527ad408e 100644
--- a/pkgs/development/libraries/physics/fastjet/default.nix
+++ b/pkgs/development/libraries/physics/fastjet/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = {
-    description = "A software package for jet finding in pp and e+e− collisions";
+    description = "Software package for jet finding in pp and e+e− collisions";
     mainProgram = "fastjet-config";
     license     = lib.licenses.gpl2Plus;
     homepage    = "http://fastjet.fr/";
diff --git a/pkgs/development/libraries/physics/geant4/default.nix b/pkgs/development/libraries/physics/geant4/default.nix
index 9dcaea8be041a..3b67b6a3756ed 100644
--- a/pkgs/development/libraries/physics/geant4/default.nix
+++ b/pkgs/development/libraries/physics/geant4/default.nix
@@ -9,7 +9,7 @@
 , enableRaytracerX11   ? false
 
 # Standard build environment with cmake.
-, lib, stdenv, fetchurl, fetchpatch, cmake
+, lib, stdenv, fetchurl, cmake
 
 , clhep
 , expat
@@ -129,7 +129,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
-    description = "A toolkit for the simulation of the passage of particles through matter";
+    description = "Toolkit for the simulation of the passage of particles through matter";
     longDescription = ''
       Geant4 is a toolkit for the simulation of the passage of particles through matter.
       Its areas of application include high energy, nuclear and accelerator physics, as well as studies in medical and space science.
diff --git a/pkgs/development/libraries/physics/hepmc2/default.nix b/pkgs/development/libraries/physics/hepmc2/default.nix
index e2ab42c418a09..870114ffcba48 100644
--- a/pkgs/development/libraries/physics/hepmc2/default.nix
+++ b/pkgs/development/libraries/physics/hepmc2/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "The HepMC package is an object oriented event record written in C++ for High Energy Physics Monte Carlo Generators";
+    description = "HepMC package is an object oriented event record written in C++ for High Energy Physics Monte Carlo Generators";
     license     = licenses.lgpl21;
     homepage    = "http://hepmc.web.cern.ch/hepmc/";
     platforms   = platforms.unix;
diff --git a/pkgs/development/libraries/physics/hepmc3/default.nix b/pkgs/development/libraries/physics/hepmc3/default.nix
index 9d2eab6e7f15b..7ec49da065140 100644
--- a/pkgs/development/libraries/physics/hepmc3/default.nix
+++ b/pkgs/development/libraries/physics/hepmc3/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
   '';
 
   cmakeFlags = [
+    "-DHEPMC3_CXX_STANDARD=17"
     "-DHEPMC3_ENABLE_PYTHON=${if withPython then "ON" else "OFF"}"
   ] ++ lib.optionals withPython [
     "-DHEPMC3_PYTHON_VERSIONS=${if python.isPy3k then "3.X" else "2.X"}"
@@ -54,7 +55,7 @@ stdenv.mkDerivation rec {
   pythonImportsCheck = [ "pyHepMC3" ];
 
   meta = with lib; {
-    description = "The HepMC package is an object oriented, C++ event record for High Energy Physics Monte Carlo generators and simulation";
+    description = "HepMC package is an object oriented, C++ event record for High Energy Physics Monte Carlo generators and simulation";
     mainProgram = "HepMC3-config";
     license = licenses.gpl3;
     homepage = "http://hepmc.web.cern.ch/hepmc/";
diff --git a/pkgs/development/libraries/physics/herwig/default.nix b/pkgs/development/libraries/physics/herwig/default.nix
index c5849f93c5e31..ef7ce7ce586de 100644
--- a/pkgs/development/libraries/physics/herwig/default.nix
+++ b/pkgs/development/libraries/physics/herwig/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A multi-purpose particle physics event generator";
+    description = "Multi-purpose particle physics event generator";
     homepage = "https://herwig.hepforge.org/";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ veprbl ];
diff --git a/pkgs/development/libraries/physics/lhapdf/default.nix b/pkgs/development/libraries/physics/lhapdf/default.nix
index 0482846f077af..8111f61684305 100644
--- a/pkgs/development/libraries/physics/lhapdf/default.nix
+++ b/pkgs/development/libraries/physics/lhapdf/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A general purpose interpolator, used for evaluating Parton Distribution Functions from discretised data files";
+    description = "General purpose interpolator, used for evaluating Parton Distribution Functions from discretised data files";
     license     = licenses.gpl2;
     homepage    = "http://lhapdf.hepforge.org";
     platforms   = platforms.unix;
diff --git a/pkgs/development/libraries/physics/mela/default.nix b/pkgs/development/libraries/physics/mela/default.nix
index 701fd149e45ec..a478a972c9566 100644
--- a/pkgs/development/libraries/physics/mela/default.nix
+++ b/pkgs/development/libraries/physics/mela/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "a Mellin Evolution LibrAry";
+    description = "Mellin Evolution LibrAry";
     mainProgram = "mela-config";
     license     = licenses.gpl3;
     homepage    = "https://github.com/vbertone/MELA";
diff --git a/pkgs/development/libraries/physics/pythia/default.nix b/pkgs/development/libraries/physics/pythia/default.nix
index 52138a8d50eaa..0eb45943e0aa9 100644
--- a/pkgs/development/libraries/physics/pythia/default.nix
+++ b/pkgs/development/libraries/physics/pythia/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A program for the generation of high-energy physics events";
+    description = "Program for the generation of high-energy physics events";
     mainProgram = "pythia8-config";
     license = licenses.gpl2Only;
     homepage = "https://pythia.org";
diff --git a/pkgs/development/libraries/physics/qcdnum/default.nix b/pkgs/development/libraries/physics/qcdnum/default.nix
index fdb79250ed3f9..565a0c317cd85 100644
--- a/pkgs/development/libraries/physics/qcdnum/default.nix
+++ b/pkgs/development/libraries/physics/qcdnum/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = {
-    description = "A very fast QCD evolution program written in FORTRAN77";
+    description = "Very fast QCD evolution program written in FORTRAN77";
     mainProgram = "qcdnum-config";
     license     = lib.licenses.gpl3;
     homepage    = "https://www.nikhef.nl/~h24/qcdnum/index.html";
diff --git a/pkgs/development/libraries/physics/rivet/default.nix b/pkgs/development/libraries/physics/rivet/default.nix
index a59b34147a9f4..c8db0fb22d0ee 100644
--- a/pkgs/development/libraries/physics/rivet/default.nix
+++ b/pkgs/development/libraries/physics/rivet/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, fastjet, fastjet-contrib, ghostscript, hepmc, imagemagick, less, python3, rsync, texliveBasic, yoda, which, makeWrapper }:
+{ lib, stdenv, fetchurl, fastjet, fastjet-contrib, ghostscript, hepmc, imagemagick, less, python3, rsync, texliveBasic, yoda, which, makeWrapper }:
 
 stdenv.mkDerivation rec {
   pname = "rivet";
@@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A framework for comparison of experimental measurements from high-energy particle colliders to theory predictions";
+    description = "Framework for comparison of experimental measurements from high-energy particle colliders to theory predictions";
     license     = licenses.gpl3;
     homepage    = "https://rivet.hepforge.org";
     platforms   = platforms.unix;
diff --git a/pkgs/development/libraries/pinocchio/default.nix b/pkgs/development/libraries/pinocchio/default.nix
index 86f0c891b2a90..9432722647cac 100644
--- a/pkgs/development/libraries/pinocchio/default.nix
+++ b/pkgs/development/libraries/pinocchio/default.nix
@@ -6,6 +6,7 @@
 , eigen
 , example-robot-data
 , collisionSupport ? !stdenv.isDarwin
+, console-bridge
 , jrl-cmakemodules
 , hpp-fcl
 , urdfdom
@@ -15,15 +16,21 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "pinocchio";
-  version = "2.7.1";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "stack-of-tasks";
     repo = finalAttrs.pname;
     rev = "v${finalAttrs.version}";
-    hash = "sha256-Ks5dvKi5iutjM+iovDOYGx3vsr45JWRqGOXV8+Ko4gg=";
+    hash = "sha256-h4NzfS27+jWyHbegxF+pgN6JzJdVAoM16J6G/9uNJc4=";
   };
 
+  # test failure, ref https://github.com/stack-of-tasks/pinocchio/issues/2277
+  prePatch = lib.optionalString (stdenv.isLinux && stdenv.isAarch64) ''
+    substituteInPlace unittest/algorithm/utils/CMakeLists.txt \
+      --replace-fail "add_pinocchio_unit_test(force)" ""
+  '';
+
   # example-robot-data models are used in checks.
   # Upstream provide them as git submodule, but we can use our own version instead.
   postPatch = ''
@@ -38,6 +45,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   propagatedBuildInputs = [
+    console-bridge
     jrl-cmakemodules
     urdfdom
   ] ++ lib.optionals (!pythonSupport) [
@@ -68,7 +76,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = {
-    description = "A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives";
+    description = "Fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives";
     homepage = "https://github.com/stack-of-tasks/pinocchio";
     license = lib.licenses.bsd2;
     maintainers = with lib.maintainers; [ nim65s wegank ];
diff --git a/pkgs/development/libraries/pipewire/default.nix b/pkgs/development/libraries/pipewire/default.nix
index 2c2442547ebbd..c3532d93683d9 100644
--- a/pkgs/development/libraries/pipewire/default.nix
+++ b/pkgs/development/libraries/pipewire/default.nix
@@ -75,7 +75,7 @@ assert ldacbtSupport -> bluezSupport;
 
 stdenv.mkDerivation(finalAttrs: {
   pname = "pipewire";
-  version = "1.0.6";
+  version = "1.0.7";
 
   outputs = [
     "out"
@@ -91,7 +91,7 @@ stdenv.mkDerivation(finalAttrs: {
     owner = "pipewire";
     repo = "pipewire";
     rev = finalAttrs.version;
-    sha256 = "sha256-JrKSsYCMNRHHh92Sn/03Bq2gPaXNYTqmwaLXkE0axdA=";
+    sha256 = "sha256-YzI+hkX1ZdeTfxuKaw5P9OYPtkWtUg9cNo32wLCgjNU=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/pipewire/wireplumber.nix b/pkgs/development/libraries/pipewire/wireplumber.nix
index 2e2ef053a1198..0822c788261da 100644
--- a/pkgs/development/libraries/pipewire/wireplumber.nix
+++ b/pkgs/development/libraries/pipewire/wireplumber.nix
@@ -24,7 +24,7 @@
 
 stdenv.mkDerivation rec {
   pname = "wireplumber";
-  version = "0.5.2";
+  version = "0.5.3";
 
   outputs = [ "out" "dev" ] ++ lib.optional enableDocs "doc";
 
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     owner = "pipewire";
     repo = "wireplumber";
     rev = version;
-    hash = "sha256-SXLHQbjh4IygV+925fsPXgj7DFIPQj48oLNKWkUhuK8=";
+    hash = "sha256-bZZIrD+SxAolDM0BRjcN4YCM26lnjkw8pIX54wSYrsk=";
   };
 
   nativeBuildInputs = [
@@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A modular session / policy manager for PipeWire";
+    description = "Modular session / policy manager for PipeWire";
     homepage = "https://pipewire.org";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/pixman/default.nix b/pkgs/development/libraries/pixman/default.nix
index 3a83c89cd05d1..b0791a2400a85 100644
--- a/pkgs/development/libraries/pixman/default.nix
+++ b/pkgs/development/libraries/pixman/default.nix
@@ -79,7 +79,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "http://pixman.org";
-    description = "A low-level library for pixel manipulation";
+    description = "Low-level library for pixel manipulation";
     license = licenses.mit;
     platforms = platforms.all;
     pkgConfigModules = [ "pixman-1" ];
diff --git a/pkgs/development/libraries/plasma-wayland-protocols/default.nix b/pkgs/development/libraries/plasma-wayland-protocols/default.nix
index 9f2798ce51b61..99e8b3fd9d11d 100644
--- a/pkgs/development/libraries/plasma-wayland-protocols/default.nix
+++ b/pkgs/development/libraries/plasma-wayland-protocols/default.nix
@@ -7,11 +7,11 @@
 
 mkDerivation rec {
   pname = "plasma-wayland-protocols";
-  version = "1.12.0";
+  version = "1.13.0";
 
   src = fetchurl {
     url = "mirror://kde/stable/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-FIO/0nnLkTyDV5tdccWPmVh2T5ukMDs2R+EAfLcNT54=";
+    hash = "sha256-3Ud+NS9f9uasaGKGxLIrGb9aSSG4XuWn2gK7eqEV1X4=";
   };
 
   nativeBuildInputs = [ extra-cmake-modules ];
diff --git a/pkgs/development/libraries/platform-folders/default.nix b/pkgs/development/libraries/platform-folders/default.nix
index 5479502abb233..242bbe7770e48 100644
--- a/pkgs/development/libraries/platform-folders/default.nix
+++ b/pkgs/development/libraries/platform-folders/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
-    description = "A C++ library to look for standard platform directories so that you do not need to write platform-specific code";
+    description = "C++ library to look for standard platform directories so that you do not need to write platform-specific code";
     homepage = "https://github.com/sago007/PlatformFolders";
     license = licenses.mit;
     maintainers = with maintainers; [ lilyinstarlight ];
diff --git a/pkgs/development/libraries/plib/default.nix b/pkgs/development/libraries/plib/default.nix
index b420c17c88889..c7349c3693051 100644
--- a/pkgs/development/libraries/plib/default.nix
+++ b/pkgs/development/libraries/plib/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    description = "A suite of portable game libraries";
+    description = "Suite of portable game libraries";
 
     longDescription = ''
       PLIB includes sound effects, music, a complete 3D engine, font
diff --git a/pkgs/development/libraries/podofo/0.10.x.nix b/pkgs/development/libraries/podofo/0.10.x.nix
index 93c989a9c1ec6..f4bf9e7741788 100644
--- a/pkgs/development/libraries/podofo/0.10.x.nix
+++ b/pkgs/development/libraries/podofo/0.10.x.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/podofo/podofo";
-    description = "A library to work with the PDF file format";
+    description = "Library to work with the PDF file format";
     platforms = lib.platforms.all;
     license = with lib.licenses; [ gpl2Plus lgpl2Plus ];
     maintainers = [];
diff --git a/pkgs/development/libraries/podofo/default.nix b/pkgs/development/libraries/podofo/default.nix
index 85651d225f424..598366dc6eb84 100644
--- a/pkgs/development/libraries/podofo/default.nix
+++ b/pkgs/development/libraries/podofo/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://podofo.sourceforge.net";
-    description = "A library to work with the PDF file format";
+    description = "Library to work with the PDF file format";
     platforms = platforms.all;
     license = with licenses; [ gpl2Plus lgpl2Plus ];
   };
diff --git a/pkgs/development/libraries/polkit-qt-1/default.nix b/pkgs/development/libraries/polkit-qt-1/default.nix
index e6cb90994d9e0..b663c865d233f 100644
--- a/pkgs/development/libraries/polkit-qt-1/default.nix
+++ b/pkgs/development/libraries/polkit-qt-1/default.nix
@@ -30,7 +30,7 @@ mkDerivation rec {
   ] ++ lib.optionals stdenv.isLinux [ libselinux libsepol util-linux ];
 
   meta = with lib; {
-    description = "A Qt wrapper around PolKit";
+    description = "Qt wrapper around PolKit";
     maintainers = with maintainers; [ ttuegel ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/development/libraries/polkit/default.nix b/pkgs/development/libraries/polkit/default.nix
index 69b2233a8559b..5b41fbdf6dfd4 100644
--- a/pkgs/development/libraries/polkit/default.nix
+++ b/pkgs/development/libraries/polkit/default.nix
@@ -53,6 +53,8 @@ stdenv.mkDerivation rec {
     # Allow changing base for paths in pkg-config file as before.
     # https://gitlab.freedesktop.org/polkit/polkit/-/merge_requests/100
     ./0001-build-Use-datarootdir-in-Meson-generated-pkg-config-.patch
+
+    ./elogind.patch
   ];
 
   depsBuildBuild = [
@@ -175,9 +177,13 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/polkit-org/polkit";
-    description = "A toolkit for defining and handling the policy that allows unprivileged processes to speak to privileged processes";
+    description = "Toolkit for defining and handling the policy that allows unprivileged processes to speak to privileged processes";
     license = licenses.lgpl2Plus;
     platforms = platforms.linux;
+    badPlatforms = [
+      # mandatory libpolkit-gobject shared library
+      lib.systems.inspect.platformPatterns.isStatic
+    ];
     maintainers = teams.freedesktop.members ++ (with maintainers; [ ]);
   };
 }
diff --git a/pkgs/development/libraries/polkit/elogind.patch b/pkgs/development/libraries/polkit/elogind.patch
new file mode 100644
index 0000000000000..e7d97a7b131c1
--- /dev/null
+++ b/pkgs/development/libraries/polkit/elogind.patch
@@ -0,0 +1,66 @@
+From 78e625dbafa8543b17ffaf9c42cf90c9cf9a612e Mon Sep 17 00:00:00 2001
+From: Alyssa Ross <hi@alyssa.is>
+Date: Wed, 8 May 2024 11:20:42 +0200
+Subject: [PATCH] Fix configuration with elogind
+
+Previously, it would try to get sysusers_dir from systemd even though
+systemd_dep was undefined.  Determining systemd_systemdsystemunitdir
+from systemd was already checking for systemd logind specifically, and
+systemd_sysusers_dir is only used in the systemd logind case, so move
+both of those into the systemd-logind-specific branch above.
+
+(cherry picked from commit b58b58af10c390ab9a11a4cfe6a4ff3d50cc0fa5)
+---
+ meson.build | 22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 2f81c90..0888322 100644
+--- a/meson.build
++++ b/meson.build
+@@ -202,6 +202,16 @@ if enable_logind
+     if not logind_dep.found()
+       logind_dep = dependency('libsystemd-login', not_found_message: 'libsystemd support requested but libsystemd or libsystemd-login library not found')
+     endif
++
++    # systemd unit / service files
++    systemd_systemdsystemunitdir = get_option('systemdsystemunitdir')
++    if systemd_systemdsystemunitdir == '' and session_tracking == 'libsystemd-login'
++      systemd_dep = dependency('systemd', not_found_message: 'systemd required but not found, please provide a valid systemd user unit dir or disable it')
++      # FIXME: systemd.pc file does not use variables with relative paths, so `define_variable` cannot be used
++      systemd_systemdsystemunitdir = systemd_dep.get_pkgconfig_variable('systemdsystemunitdir')
++    endif
++
++    systemd_sysusers_dir = systemd_dep.get_pkgconfig_variable('sysusers_dir', default: '/usr/lib/sysusers.d')
+   else
+     logind_dep = dependency('libelogind', not_found_message: 'libelogind support requested but libelogind library not found')
+   endif
+@@ -210,16 +220,6 @@ if enable_logind
+   config_h.set10('HAVE_' + func.to_upper(), cc.has_function(func, dependencies: logind_dep))
+   func = 'sd_pidfd_get_session'
+   config_h.set10('HAVE_' + func.to_upper(), cc.has_function(func, dependencies: logind_dep))
+-
+-  # systemd unit / service files
+-  systemd_systemdsystemunitdir = get_option('systemdsystemunitdir')
+-  if systemd_systemdsystemunitdir == '' and session_tracking == 'libsystemd-login'
+-    systemd_dep = dependency('systemd', not_found_message: 'systemd required but not found, please provide a valid systemd user unit dir or disable it')
+-    # FIXME: systemd.pc file does not use variables with relative paths, so `define_variable` cannot be used
+-    systemd_systemdsystemunitdir = systemd_dep.get_pkgconfig_variable('systemdsystemunitdir')
+-  endif
+-
+-  systemd_sysusers_dir = systemd_dep.get_pkgconfig_variable('sysusers_dir', default: '/usr/lib/sysusers.d')
+ endif
+ config_h.set('HAVE_LIBSYSTEMD', enable_logind)
+ 
+@@ -404,7 +404,7 @@ output += '        introspection:            ' + enable_introspection.to_string(
+ output += '        Distribution/OS:          ' + os_type + '\n'
+ output += '        Authentication framework: ' + auth_fw + '\n'
+ output += '        Session tracking:         ' + session_tracking + '\n'
+-if enable_logind
++if session_tracking == 'logind'
+   output += '        systemdsystemunitdir:     ' + systemd_systemdsystemunitdir + '\n'
+ endif
+ output += '        polkitd user:             ' + polkitd_user + ' \n'
+-- 
+2.44.0
+
diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix
index 6e22ec349d5fd..17ab3f100b81a 100644
--- a/pkgs/development/libraries/poppler/default.nix
+++ b/pkgs/development/libraries/poppler/default.nix
@@ -138,7 +138,7 @@ stdenv.mkDerivation (finalAttrs: rec {
   meta = with lib; {
     homepage = "https://poppler.freedesktop.org/";
     changelog = "https://gitlab.freedesktop.org/poppler/poppler/-/blob/poppler-${version}/NEWS";
-    description = "A PDF rendering library";
+    description = "PDF rendering library";
     longDescription = ''
       Poppler is a PDF rendering library based on the xpdf-3.0 code base. In
       addition it provides a number of tools that can be installed separately.
diff --git a/pkgs/development/libraries/popt/default.nix b/pkgs/development/libraries/popt/default.nix
index fdccb4d093367..e97629b0dfd05 100644
--- a/pkgs/development/libraries/popt/default.nix
+++ b/pkgs/development/libraries/popt/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , fetchurl
 , fetchpatch2
+, updateAutotoolsGnuConfigScriptsHook
 }:
 
 stdenv.mkDerivation rec {
@@ -13,6 +14,8 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-wlpIOPyOTByKrLi9Yg7bMISj1jv4mH/a08onWMYyQPk=";
   };
 
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
+
   patches = lib.optionals stdenv.isCygwin [
     ./1.16-cygwin.patch
     ./1.16-vpath.patch
diff --git a/pkgs/development/libraries/ppl/default.nix b/pkgs/development/libraries/ppl/default.nix
index d49f3e6bd5382..863ffed429328 100644
--- a/pkgs/development/libraries/ppl/default.nix
+++ b/pkgs/development/libraries/ppl/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation {
   enableParallelBuilding = true;
 
   meta = {
-    description = "The Parma Polyhedra Library";
+    description = "Parma Polyhedra Library";
 
     longDescription = ''
       The Parma Polyhedra Library (PPL) provides numerical abstractions
diff --git a/pkgs/development/libraries/precice/default.nix b/pkgs/development/libraries/precice/default.nix
index 873386e90abd9..372a2940e0ae3 100644
--- a/pkgs/development/libraries/precice/default.nix
+++ b/pkgs/development/libraries/precice/default.nix
@@ -1,23 +1,16 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, gcc, boost, eigen, libxml2, mpi, python3, petsc, pkg-config }:
+{ lib, stdenv, fetchFromGitHub, cmake, gcc, boost, eigen, libxml2, mpi, python3, petsc, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "precice";
-  version = "3.0.0";
+  version = "3.1.2";
 
   src = fetchFromGitHub {
     owner = "precice";
-    repo = pname;
+    repo = "precice";
     rev = "v${version}";
-    hash = "sha256-RuZ18BFdusMHC+Yuapc2N8cEetLu32e28J34HH+gHOg=";
+    hash = "sha256-KpmcQj8cv5V5OXCMhe2KLTsqUzKWtTeQyP+zg+Y+yd0=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/precice/precice/commit/9dffe04144ab0f6a92fbff9be91cda71718b9c8e.patch";
-      hash = "sha256-kSvIfBQH1mBA5CFJo9Usiypol0u9VgHMlUEHK/uHVNQ=";
-    })
-  ];
-
   cmakeFlags = [
     "-DPRECICE_PETScMapping=OFF"
     "-DBUILD_SHARED_LIBS=ON"
@@ -43,5 +36,3 @@ stdenv.mkDerivation rec {
     platforms = lib.platforms.unix;
   };
 }
-
-
diff --git a/pkgs/development/libraries/presage/default.nix b/pkgs/development/libraries/presage/default.nix
index 8f7e15867099f..c9e44e5859146 100644
--- a/pkgs/development/libraries/presage/default.nix
+++ b/pkgs/development/libraries/presage/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
   checkTarget = "check";
 
   meta = with lib; {
-    description = "An intelligent predictive text entry system";
+    description = "Intelligent predictive text entry system";
     homepage = "https://presage.sourceforge.io/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/libraries/process-cpp/default.nix b/pkgs/development/libraries/process-cpp/default.nix
deleted file mode 100644
index f73f72e4545d1..0000000000000
--- a/pkgs/development/libraries/process-cpp/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitLab
-, cmake
-, boost
-, properties-cpp
-, pkg-config
-}:
-
-stdenv.mkDerivation rec {
-  pname = "process-cpp";
-  version = "unstable-2021-05-11";
-
-  src = fetchFromGitLab {
-    domain = "gitlab.com";
-    owner = "ubports";
-    repo = "development/core/lib-cpp/process-cpp";
-    rev = "ee6d99a3278343f5fdcec7ed3dad38763e257310";
-    sha256 = "sha256-jDYXKCzrg/ZGFC2xpyfkn/f7J3t0cdOwHK2mLlYWNN0=";
-  };
-
-  postPatch = ''
-    # Excludes tests from tainting nativeBuildInputs with their dependencies when not being run
-    # Tests fail upon verifying OOM score adjustment via /proc/<pid>/oom_score
-    # [ RUN      ] LinuxProcess.adjusting_proc_oom_score_adj_works
-    # /build/source/tests/linux_process_test.cpp:83: Failure
-    # Value of: is_approximately_equal(oom_score.value, core::posix::linux::proc::process::OomScoreAdj::max_value())
-    #   Actual: false (333 > 10)
-    # Expected: true
-    sed -i '/tests/d' CMakeLists.txt
-  '';
-
-  nativeBuildInputs = [
-    cmake
-    pkg-config
-  ];
-
-  buildInputs = [
-    boost
-    properties-cpp
-  ];
-
-  meta = with lib; {
-    description = "A simple convenience library for handling processes in C++11";
-    homepage = "https://gitlab.com/ubports/development/core/lib-cpp/process-cpp";
-    license = with licenses; [ gpl3Only lgpl3Only ];
-    maintainers = with maintainers; [ onny ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/development/libraries/proj/default.nix b/pkgs/development/libraries/proj/default.nix
index daab5ac2a5663..8fedba3ef08c5 100644
--- a/pkgs/development/libraries/proj/default.nix
+++ b/pkgs/development/libraries/proj/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , pkg-config
 , buildPackages
@@ -17,13 +16,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "proj";
-  version = "9.4.0";
+  version = "9.4.1";
 
   src = fetchFromGitHub {
     owner = "OSGeo";
     repo = "PROJ";
     rev = finalAttrs.version;
-    hash = "sha256-m8u5+uWeXI2lxxsTcVJbvCiV30CQifw4reAY3GHHavA=";
+    hash = "sha256-sLlG9NNHST9d0G5hV1tOGpTSv4rbUxERW3kwGC+t1iU=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/prometheus-client-c/default.nix b/pkgs/development/libraries/prometheus-client-c/default.nix
index f9f580c9717ce..4d695eff64085 100644
--- a/pkgs/development/libraries/prometheus-client-c/default.nix
+++ b/pkgs/development/libraries/prometheus-client-c/default.nix
@@ -67,12 +67,12 @@ rec {
   libprom = build {
     pname = "libprom";
     subdir = "prom";
-    description = "A Prometheus Client in C";
+    description = "Prometheus Client in C";
   };
   libpromhttp = build {
     pname = "libpromhttp";
     subdir = "promhttp";
     buildInputs = [ libmicrohttpd libprom ];
-    description = "A Prometheus HTTP Endpoint in C";
+    description = "Prometheus HTTP Endpoint in C";
   };
 }
diff --git a/pkgs/development/libraries/properties-cpp/default.nix b/pkgs/development/libraries/properties-cpp/default.nix
index 65ad4ed6a2933..2c510afdfa158 100644
--- a/pkgs/development/libraries/properties-cpp/default.nix
+++ b/pkgs/development/libraries/properties-cpp/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://gitlab.com/ubports/development/core/lib-cpp/properties-cpp";
-    description = "A very simple convenience library for handling properties and signals in C++11";
+    description = "Very simple convenience library for handling properties and signals in C++11";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ edwtjo ];
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/protobuf/27.nix b/pkgs/development/libraries/protobuf/27.nix
new file mode 100644
index 0000000000000..0f256c5c783af
--- /dev/null
+++ b/pkgs/development/libraries/protobuf/27.nix
@@ -0,0 +1,6 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix ({
+  version = "27.1";
+  hash = "sha256-9XOcjNm4k4VhQ/XagcVO2tXxp6bBdyuvrS7sNGy4wG0=";
+} // args)
diff --git a/pkgs/development/libraries/protobufc/default.nix b/pkgs/development/libraries/protobufc/default.nix
index d152512783f0e..5a39725275508 100644
--- a/pkgs/development/libraries/protobufc/default.nix
+++ b/pkgs/development/libraries/protobufc/default.nix
@@ -10,15 +10,17 @@
 
 stdenv.mkDerivation rec {
   pname = "protobuf-c";
-  version = "unstable-2023-07-08";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "protobuf-c";
     repo = "protobuf-c";
-    rev = "fa86fddbd000316772d1deb5a8d1201fa7599ef7";
-    hash = "sha256-pmqZYFREPgSrWPekymTglhtAv6gQR1gP3dOl3hqjYig=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-Dkpcc7ZfvAIVY91trRiHuiRFcUGUbQxbheYKTBcq80I=";
   };
 
+  outputs = [ "out" "dev" "lib" ];
+
   nativeBuildInputs = [ autoreconfHook pkg-config ];
 
   buildInputs = [ protobuf zlib ];
diff --git a/pkgs/development/libraries/prototypejs/default.nix b/pkgs/development/libraries/prototypejs/default.nix
index fd06b49604add..b3ded7025e99c 100644
--- a/pkgs/development/libraries/prototypejs/default.nix
+++ b/pkgs/development/libraries/prototypejs/default.nix
@@ -7,7 +7,7 @@ in fetchurl {
   sha256 = "0q43vvrsb22h4jvavs1gk3v4ps61yx9k85b5n6q9mxivhmxprg26";
 
   meta = with lib; {
-    description = "A foundation for ambitious web user interfaces";
+    description = "Foundation for ambitious web user interfaces";
     longDescription = ''
       Prototype takes the complexity out of client-side web
       programming. Built to solve real-world problems, it adds
diff --git a/pkgs/development/libraries/pslib/default.nix b/pkgs/development/libraries/pslib/default.nix
index 98aaa5dcf335e..f91f55530aed7 100644
--- a/pkgs/development/libraries/pslib/default.nix
+++ b/pkgs/development/libraries/pslib/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A C-library for generating multi page PostScript documents";
+    description = "C-library for generating multi page PostScript documents";
     homepage = "https://pslib.sourceforge.net/";
     changelog =
       "https://sourceforge.net/p/pslib/git/ci/master/tree/pslib/ChangeLog";
diff --git a/pkgs/development/libraries/pth/default.nix b/pkgs/development/libraries/pth/default.nix
index 7cb9046acf212..bbbc5017c410e 100644
--- a/pkgs/development/libraries/pth/default.nix
+++ b/pkgs/development/libraries/pth/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = false;
 
   meta = with lib; {
-    description = "The GNU Portable Threads library";
+    description = "GNU Portable Threads library";
     mainProgram = "pth-config";
     homepage = "https://www.gnu.org/software/pth";
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/libraries/pupnp/default.nix b/pkgs/development/libraries/pupnp/default.nix
index 2410c22ad2161..fa0718b993fc6 100644
--- a/pkgs/development/libraries/pupnp/default.nix
+++ b/pkgs/development/libraries/pupnp/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "An open source UPnP development kit for Linux";
+    description = "Open source UPnP development kit for Linux";
 
     longDescription = ''
       The Linux SDK for UPnP Devices (libupnp) provides developers
diff --git a/pkgs/development/libraries/pyotherside/default.nix b/pkgs/development/libraries/pyotherside/default.nix
index eeb73472253a2..f99f1927295aa 100644
--- a/pkgs/development/libraries/pyotherside/default.nix
+++ b/pkgs/development/libraries/pyotherside/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pyotherside";
-  version = "1.6.0";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "thp";
     repo = "pyotherside";
     rev = version;
-    sha256 = "sha256-IIvL704snJIJbigAgJZ3WWg5a/mX/8qzgFN+dBEClG8=";
+    sha256 = "sha256-Fh0gtbBi391ZgwS68FX1zUzeuz8ayEjlwnEM8LjaB8k=";
   };
 
   nativeBuildInputs = [ qmake ];
diff --git a/pkgs/development/libraries/pystring/default.nix b/pkgs/development/libraries/pystring/default.nix
index 3a1e64c0b0004..4ed250439803b 100644
--- a/pkgs/development/libraries/pystring/default.nix
+++ b/pkgs/development/libraries/pystring/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/imageworks/pystring/";
-    description = "A collection of C++ functions which match the interface and behavior of python's string class methods using std::string";
+    description = "Collection of C++ functions which match the interface and behavior of python's string class methods using std::string";
     license = licenses.bsd3;
     maintainers = [ maintainers.rytone ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/python-qt/default.nix b/pkgs/development/libraries/python-qt/default.nix
index 2b7ac684974e6..404aa4921c4ef 100644
--- a/pkgs/development/libraries/python-qt/default.nix
+++ b/pkgs/development/libraries/python-qt/default.nix
@@ -2,7 +2,6 @@
   lib,
   stdenv,
   fetchFromGitHub,
-  fetchpatch,
   python3,
   qmake,
   qtwebengine,
diff --git a/pkgs/development/libraries/qmlbox2d/default.nix b/pkgs/development/libraries/qmlbox2d/default.nix
index 0c50c9e3649bf..95827b630f1a7 100644
--- a/pkgs/development/libraries/qmlbox2d/default.nix
+++ b/pkgs/development/libraries/qmlbox2d/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation {
   ];
 
   meta = with lib; {
-    description = "A QML plugin for Box2D engine";
+    description = "QML plugin for Box2D engine";
     homepage = "https://github.com/qml-box2d/qml-box2d";
     maintainers = with maintainers; [ guibou ];
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/qmltermwidget/default.nix b/pkgs/development/libraries/qmltermwidget/default.nix
index 863d5f25d2869..0984912463e1c 100644
--- a/pkgs/development/libraries/qmltermwidget/default.nix
+++ b/pkgs/development/libraries/qmltermwidget/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation {
   dontWrapQtApps = true;
 
   meta = {
-    description = "A QML port of qtermwidget";
+    description = "QML port of qtermwidget";
     homepage = "https://github.com/Swordfish90/qmltermwidget";
     license = lib.licenses.gpl2Plus;
     platforms = with lib.platforms; linux ++ darwin;
diff --git a/pkgs/development/libraries/qpdf/default.nix b/pkgs/development/libraries/qpdf/default.nix
index 33967e39ccfa6..ab6078c619f5a 100644
--- a/pkgs/development/libraries/qpdf/default.nix
+++ b/pkgs/development/libraries/qpdf/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://qpdf.sourceforge.io/";
-    description = "A C++ library and set of programs that inspect and manipulate the structure of PDF files";
+    description = "C++ library and set of programs that inspect and manipulate the structure of PDF files";
     license = licenses.asl20; # as of 7.0.0, people may stay at artistic2
     maintainers = with maintainers; [ abbradar ];
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/qscintilla/default.nix b/pkgs/development/libraries/qscintilla/default.nix
index 394446feb0170..69adf65643d02 100644
--- a/pkgs/development/libraries/qscintilla/default.nix
+++ b/pkgs/development/libraries/qscintilla/default.nix
@@ -51,7 +51,7 @@ in stdenv'.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Qt port of the Scintilla text editing library";
+    description = "Qt port of the Scintilla text editing library";
     longDescription = ''
       QScintilla is a port to Qt of Neil Hodgson's Scintilla C++ editor
       control.
diff --git a/pkgs/development/libraries/qt-5/5.15/default.nix b/pkgs/development/libraries/qt-5/5.15/default.nix
index a8885fc5647bc..b1308159eb688 100644
--- a/pkgs/development/libraries/qt-5/5.15/default.nix
+++ b/pkgs/development/libraries/qt-5/5.15/default.nix
@@ -36,6 +36,14 @@ let
       ./qtbase.patch.d/0012-qtbase-tbd-frameworks.patch
 
       ./qtbase.patch.d/0014-aarch64-darwin.patch
+
+      # Fix typo that breaks build on Darwin
+      # FIXME: remove this once merged upstream
+      # See: https://invent.kde.org/qt/qt/qtbase/-/merge_requests/325
+      (fetchpatch {
+        url = "https://invent.kde.org/qt/qt/qtbase/-/commit/e84c0df50f51c61aa49b47823582b0f8de406e3d.patch";
+        hash = "sha256-d1RIY03E71aMzOOVtcIaMeariki/72QRekUne6P2D3M=";
+      })
     ] ++ [
       ./qtbase.patch.d/0003-qtbase-mkspecs.patch
       ./qtbase.patch.d/0004-qtbase-replace-libdir.patch
@@ -173,23 +181,11 @@ let
       })
     ];
     qtwebengine = [
-      (fetchpatch {
-        url = "https://raw.githubusercontent.com/Homebrew/formula-patches/a6f16c6daea3b5a1f7bc9f175d1645922c131563/qt5/qt5-webengine-python3.patch";
-        hash = "sha256-rUSDwTucXVP3Obdck7LRTeKZ+JYQSNhQ7+W31uHZ9yM=";
-      })
-      (fetchpatch {
-        url = "https://raw.githubusercontent.com/Homebrew/formula-patches/7ae178a617d1e0eceb742557e63721af949bd28a/qt5/qt5-webengine-chromium-python3.patch";
-        stripLen = 1;
-        extraPrefix = "src/3rdparty/";
-        hash = "sha256-MZGYeMdGzwypfKoSUaa56K3inbcGRx7he/+AFyk5ekA=";
-      })
-      (fetchpatch {
-        url = "https://raw.githubusercontent.com/Homebrew/formula-patches/7ae178a617d1e0eceb742557e63721af949bd28a/qt5/qt5-webengine-gcc12.patch";
-        stripLen = 1;
-        extraPrefix = "src/3rdparty/";
-        hash = "sha256-s4GsGMJTBNWw2gTJuIEP3tqT82AmTsR2mbj59m2p6rM=";
-      })
       ./qtwebengine-link-pulseaudio.patch
+      # Fixes Chromium build failure with Ninja 1.12.
+      # See: https://bugreports.qt.io/browse/QTBUG-124375
+      # Backport of: https://code.qt.io/cgit/qt/qtwebengine-chromium.git/commit/?id=a766045f65f934df3b5f1aa63bc86fbb3e003a09
+      ./qtwebengine-ninja-1.12.patch
     ] ++ lib.optionals stdenv.isDarwin [
       ./qtwebengine-darwin-no-platform-check.patch
       ./qtwebengine-mac-dont-set-dsymutil-path.patch
@@ -320,11 +316,6 @@ let
           in if stdenv'.isDarwin then overrideSDK stdenv' "11.0" else stdenv';
         inherit (srcs.qtwebengine) version;
         python = python3;
-        postPatch = ''
-          # update catapult for python3 compatibility
-          rm -r src/3rdparty/chromium/third_party/catapult
-          cp -r ${srcs.catapult} src/3rdparty/chromium/third_party/catapult
-        '';
         inherit (darwin) cctools xnu;
         inherit (darwin.apple_sdk_11_0) libpm libunwind;
         inherit (darwin.apple_sdk_11_0.libs) sandbox;
diff --git a/pkgs/development/libraries/qt-5/5.15/qtwebengine-ninja-1.12.patch b/pkgs/development/libraries/qt-5/5.15/qtwebengine-ninja-1.12.patch
new file mode 100644
index 0000000000000..c70788516fd4e
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.15/qtwebengine-ninja-1.12.patch
@@ -0,0 +1,11 @@
+diff -ur a/src/3rdparty/chromium/content/public/browser/BUILD.gn b/src/3rdparty/chromium/content/public/browser/BUILD.gn
+--- a/src/3rdparty/chromium/content/public/browser/BUILD.gn	1969-12-31 19:00:01.000000000 -0500
++++ b/src/3rdparty/chromium/content/public/browser/BUILD.gn	2024-05-29 22:12:36.416136269 -0400
+@@ -469,6 +469,7 @@
+     "//build:chromeos_buildflags",
+     "//cc",
+     "//components/viz/host",
++    "//components/spellcheck:buildflags",
+     "//content/browser",  # Must not be public_deps!
+     "//device/fido",
+     "//gpu",
diff --git a/pkgs/development/libraries/qt-5/5.15/srcs-generated.json b/pkgs/development/libraries/qt-5/5.15/srcs-generated.json
index 63a284be6c801..f3281a17170ee 100644
--- a/pkgs/development/libraries/qt-5/5.15/srcs-generated.json
+++ b/pkgs/development/libraries/qt-5/5.15/srcs-generated.json
@@ -1,202 +1,202 @@
 {
   "qt3d": {
     "url": "https://invent.kde.org/qt/qt/qt3d.git",
-    "rev": "e1b1a0d2970fd384bd52c734a72536d8452ad070",
-    "sha256": "14q7xf6n8giz5v1s23ndibiv4d6g0ds4v88bx5v984319qxyvpqh"
+    "rev": "9bf4d03e2515f7c454647d54542330b6e90f8191",
+    "sha256": "1w1lq332q270vld7sz0xqpa0f7mvi5gizycfsx9zz9c73qy4idlp"
   },
   "qtactiveqt": {
     "url": "https://invent.kde.org/qt/qt/qtactiveqt.git",
-    "rev": "4fc1cba4c415d84a5879da29f7c459b70fbc15e9",
-    "sha256": "0mrw7rr6fnjkjxx882ga253kzn4di1agikyq6h9ixwfn2j242qlq"
+    "rev": "91bfd21f86c450b129ac2dde9d33b32e140d8a0c",
+    "sha256": "06fbiggjq1c1z1wgx63ir8rj1ppd1c046xwz4nzsrf1pi8dqcyl7"
   },
   "qtandroidextras": {
     "url": "https://invent.kde.org/qt/qt/qtandroidextras.git",
-    "rev": "12d064b16117c6f3418b494c927ef72cf1927929",
-    "sha256": "1rcpldpzwbmyww50rh58avmhgj93ks40bwm0bqz7dgwakm4n76lj"
+    "rev": "197a7e05cda87a4645f30c8ef5044b342442ebd1",
+    "sha256": "0j5al7h2gy67cb2lj4yymdsidr1dcvvahqfysbdl2lwz3zzpdql1"
   },
   "qtbase": {
     "url": "https://invent.kde.org/qt/qt/qtbase.git",
-    "rev": "a43df98d037ad07cf096ef2f775958ceba743613",
-    "sha256": "01bjkfb7ql1f168q67d5jr2xjfrn8bvh1ggiba0algkgll8alad4"
+    "rev": "0e1ff2f06ddac7c32c5a5e0b65e402c9332e56f8",
+    "sha256": "1pfby0ilkikq8802diaslnkxw8qzbp4r0f80v696wfynn973mhdd"
   },
   "qtcharts": {
     "url": "https://invent.kde.org/qt/qt/qtcharts.git",
-    "rev": "393a84ad5b16a9ec93d8a44bebf1ae86e881bc06",
-    "sha256": "1ki307wkm3wxf3jc508zgdr5p7fb297hf0rdg5x1hyv7qb03bvxx"
+    "rev": "7315c48bcec88014e78165bbda54abfcd557e0af",
+    "sha256": "043lbxkaw53qah9ny4nbpp8g7q4rq9x2k21vkprk7nim66d6pmy3"
   },
   "qtconnectivity": {
     "url": "https://invent.kde.org/qt/qt/qtconnectivity.git",
-    "rev": "70020cb64f71dcf2fd65a8a167cb785d2127e159",
-    "sha256": "10kajc98avdz8a7f5ifrrrzwrkdlbsdmiamh7blsnfcix1063ihq"
+    "rev": "99f30db37c63447c59d5fac15bc8feb832a7fd04",
+    "sha256": "09v76kb7fx7bq4vplyk3cf7il3a6f9p673z1l28nrv4w308bhqfy"
   },
   "qtdatavis3d": {
     "url": "https://invent.kde.org/qt/qt/qtdatavis3d.git",
-    "rev": "c887477198cae44585fe9db371db0ddf4c3b205e",
-    "sha256": "0fkw096w81lzdj7zgc6xfy719lh10x3f7mqm832mjq86h8f3gyc5"
+    "rev": "79cd0fb6cafcd42e4037ae1363fda3bc2cec934a",
+    "sha256": "19y33v3l4crzrk7qf5qhx7phxkiax14c2q4xjd1klw7n333d43cq"
   },
   "qtdeclarative": {
     "url": "https://invent.kde.org/qt/qt/qtdeclarative.git",
-    "rev": "792a55bb701d233116c3731c7a53ffdb8c67e407",
-    "sha256": "1d87mkl3dj3ysham1rrfxw07jvc5jqh8g2w8psv5858i29aclyqn"
+    "rev": "50c8def854806485d66aabcf6918e8b987032e55",
+    "sha256": "0qvw72w0m1q4yg4l35rh7ydqgp35xqfwpq0pc7q5578n1xspihhn"
   },
   "qtdoc": {
     "url": "https://invent.kde.org/qt/qt/qtdoc.git",
-    "rev": "8a3dfe33cb4f1e81b609f41716a3f0610a50db72",
-    "sha256": "18x3gn6wv8vm5wfa6hjfzbkxcpclnwi4s3mbbc3hj9yar53hznqp"
+    "rev": "bc4503b8b70f4cd435d6e64a9e6c623ca44b9fcd",
+    "sha256": "0pvimmw5c6gh6xi2iblzyikgaw7cr8gqjdvyappcahjpalxxsjbw"
   },
   "qtgamepad": {
     "url": "https://invent.kde.org/qt/qt/qtgamepad.git",
-    "rev": "8ed95136b3c265b01db6cc33869228f41878e173",
-    "sha256": "1m774ah9c1didj60rph6p4gibyqgynmdqngqkq1bv1p7m2jkq1ss"
+    "rev": "b1c2f272f69e222a532485e6f820776c220b3535",
+    "sha256": "1zga6sa901g0fpqyjlyj73s2f94yjm0z3599gngnlvvd7jsnlgnv"
   },
   "qtgraphicaleffects": {
     "url": "https://invent.kde.org/qt/qt/qtgraphicaleffects.git",
-    "rev": "e33716bd6bb8926688fef20cb568e11618d08a35",
-    "sha256": "1klm5rhx6lpc0knhc15lz6sj07znv2d601gbi360wfqkvbi3g78p"
+    "rev": "2c39e673d6c15a84dcc7882d3772fa04cc79f9ed",
+    "sha256": "177xkhi3syx6r3my5rly5bncgjfhdvgrhf6fw5ajqplik6yln4pq"
   },
   "qtimageformats": {
     "url": "https://invent.kde.org/qt/qt/qtimageformats.git",
-    "rev": "142040e8a652e708ff6e004361f6bcfe85fefdf9",
-    "sha256": "1vc1ahanm40bh8qj3x2x4d4niihsrjai298alxfcxinfrsmw9m32"
+    "rev": "4e4f5fc6bdac96f5281a3ebeb0fee78df7b1a498",
+    "sha256": "1w68v55y1l1biv7krzv9vmi2czz84jk89f4pymq3ri1w3y4rc1id"
   },
   "qtlocation": {
     "url": "https://invent.kde.org/qt/qt/qtlocation.git",
-    "rev": "5b27b8921f1f2de93573df903c47aee634209f80",
-    "sha256": "1w8hq3mdlrdkkykhza4dx0f21j6k697xqqvpm2g2xyk2izadq2m0"
+    "rev": "3beb9c810611337fde61d89aa981e9f177a9ede9",
+    "sha256": "1fwn9x3n01dlkhw53n12z5kb06qj2lmangzvj3fjr5ff0yy47df9"
   },
   "qtlottie": {
     "url": "https://invent.kde.org/qt/qt/qtlottie.git",
-    "rev": "db33cc9a4c0bad1006dbc9ed46d71b80ee284df3",
-    "sha256": "1wjzhk6zn0vh9fjldpi5gi7qlpgfc2gcznh3a7icpbx7n9cc9qh5"
+    "rev": "b8c1fa109dce6f8bff9f55738d2f1e21ff677796",
+    "sha256": "0qydaqj8945hikby7a9529i0g5ycpvhws6y0zc566jv50qida725"
   },
   "qtmacextras": {
     "url": "https://invent.kde.org/qt/qt/qtmacextras.git",
-    "rev": "4cb89b861dbdbe8733c62bcdadc0a8d6617528a5",
-    "sha256": "1pygs8l1nk7mgqcgv7ilwx87i9i8jxwxn2h8fcqqvgn96c5sd9kg"
+    "rev": "e66cba7cf02aa8aecce03540cd167621f2cda5f0",
+    "sha256": "0q7d3lh3fpkrakxx1sqx9csa7l7rxzskcavbidxb5298jxn49wn8"
   },
   "qtmultimedia": {
     "url": "https://invent.kde.org/qt/qt/qtmultimedia.git",
-    "rev": "36603a39aa590c12cbe2b192b56b29edd09a7a6b",
-    "sha256": "1i6hfddkwf0x74kxz5vrjkc3r507m6icr59p8b6n1bms5y5731j6"
+    "rev": "53069c9c6eb52b744333812f42aed36c3db6e752",
+    "sha256": "0y8km2mp5mj1zw1v3acsdvzrc1jyiwpxy3rmif5ssn40wwxifilp"
   },
   "qtnetworkauth": {
     "url": "https://invent.kde.org/qt/qt/qtnetworkauth.git",
-    "rev": "3fccc9b8fdaff1252fb4a9c516868d0bbbd4384d",
-    "sha256": "0h0i6r5w2vdmm9nxyk8vzdim739fja4ddf42s9pa25r1vs6i9rdw"
+    "rev": "28180f28c98e329676463e24cef0097cba45bc00",
+    "sha256": "1g6clwmrpdvl9m6flyrk4vlckjnjv3phqhy1xbxlra3zcfn3357r"
   },
   "qtpurchasing": {
     "url": "https://invent.kde.org/qt/qt/qtpurchasing.git",
-    "rev": "f563e7f2d1668a3d216e9d396e050df25fd15532",
-    "sha256": "1kbzf8nadia31sfc4r53p3p733i85w23yznwp2fc2117z81vd9p7"
+    "rev": "d4903bf08c576a6c085278c1960a2676cd83dca7",
+    "sha256": "04bry3ys15bd6kaiwyb8fh037s50mcplircpzvrwdc1h8milx7y7"
   },
   "qtquick3d": {
     "url": "https://invent.kde.org/qt/qt/qtquick3d.git",
-    "rev": "d4f5966ba085a1146a04f2ea8449bbf14833a593",
-    "sha256": "05617q59ldzavm79bf3vgz2sc4paa6d4s0q7adqzpnib6pryr2xj"
+    "rev": "ad229f0c135f74801fba2bcd22c78abc0e3cf1d2",
+    "sha256": "17jdsahdw72l5lpbng8733qv2fp2qkfzlzrayzigz2slfdqgjxnk"
   },
   "qtquickcontrols": {
     "url": "https://invent.kde.org/qt/qt/qtquickcontrols.git",
-    "rev": "1ca962198a703f591efc7c8f7540fc4120746a00",
-    "sha256": "1r4z0lfcs1mhdmxgd7saw49p5y2009a0vxn043v0z2w47yrqprb6"
+    "rev": "9325659ec390eda5b160736a926ba58ccb445cce",
+    "sha256": "0r1kkn6pr6yynk8x2ggkfqqrh27g1qra102ilglj7chsmrp92xgc"
   },
   "qtquickcontrols2": {
     "url": "https://invent.kde.org/qt/qt/qtquickcontrols2.git",
-    "rev": "134ca5dbef9d137a9c46faa79b0225bc650d9283",
-    "sha256": "09r6a0vdpyxzrhx6h49v9nyky3xzgm0z1wd320qi3zh7baxxrzm4"
+    "rev": "69fea340f8f4c483a9b2889e4e24a4b1b52ebc87",
+    "sha256": "0v6g146ryabks0sff5dgyx42690xckaqpx44c6g7x0b0w24lj6ws"
   },
   "qtquicktimeline": {
     "url": "https://invent.kde.org/qt/qt/qtquicktimeline.git",
-    "rev": "58f4f22662023efe6f223d5ef4a6d0be3708182b",
-    "sha256": "15braxxp4ldvfqxz7a1xywskycmkwv88cypgaxfipkis9jvaykdi"
+    "rev": "bf6c73064c82b07fcb1f7e72c263b249e137e224",
+    "sha256": "0pnn5ds6sxls8i6pzzmraalvln2pabgga3gnv761b2skgkv26gnq"
   },
   "qtremoteobjects": {
     "url": "https://invent.kde.org/qt/qt/qtremoteobjects.git",
-    "rev": "f64e34be9ac4b7e92c63e47235c04471a1d40c93",
-    "sha256": "1hjg1vimipszcdk89ivq1iym05m9yz2li6chyg52n1wqjm628gx1"
+    "rev": "3873bdc809ca8d58d91968cb0de34da26646bc79",
+    "sha256": "0bncsi45zjwd6q3g40gxdqxqq4zhjrgw7xnxj1v53npbyw4vd0h5"
   },
   "qtscxml": {
     "url": "https://invent.kde.org/qt/qt/qtscxml.git",
-    "rev": "3f56c6b4bd1e3883581340243b4a7289807fffc9",
-    "sha256": "15yhdp77p4i1as53cssx038hwmqjh2zgh35hrad4mhk4g6za85na"
+    "rev": "6834b183966d08d9f061642ee7ea2d482cbbf073",
+    "sha256": "1h88idcfcsbpx2x2djcg1lzazadm676miz19x6n0n6n4gwp46738"
   },
   "qtsensors": {
     "url": "https://invent.kde.org/qt/qt/qtsensors.git",
-    "rev": "3011b16d63cadbb473b6aa3a535b9f0e33170c09",
-    "sha256": "06d5x03bzbal4npbdl8y74fdizl9phz76q29f798196hjyb0kz05"
+    "rev": "bf0b718cd0b6c7823e9d2037d3bdece44185f444",
+    "sha256": "1my7ls1nsaf26kh3hn75jjnxp6gm0ilyfzcczqps0xj7xj9bzwzd"
   },
   "qtserialbus": {
     "url": "https://invent.kde.org/qt/qt/qtserialbus.git",
-    "rev": "c64de6ad9f646aaa66fca0500d21cde802a7bb17",
-    "sha256": "09jp80yrql450bz7c2rfjyyfy0zd59kmrc0lww5ws0lyp95n116y"
+    "rev": "616bc5b962cdcacb1c1ba985d7236392e9cadb8c",
+    "sha256": "0njahb52kshci23xw89j1rgffmrmric8kz54dzmqsmlcqp181qkh"
   },
   "qtserialport": {
     "url": "https://invent.kde.org/qt/qt/qtserialport.git",
-    "rev": "c3a7debff7a4c6ddaedb795290180dd99d7ac4be",
-    "sha256": "1aslr9msddnrkxrlzplbzpfydjkiw1haa67mcsmr2phxkfh05329"
+    "rev": "34c19c6441cd440dc65b59ae7670eadf099d51f8",
+    "sha256": "0hiqfvz5jc6ha6ln8jl8vv4ijsdz55f3zp801dbh2r68cmf9qsrm"
   },
   "qtspeech": {
     "url": "https://invent.kde.org/qt/qt/qtspeech.git",
-    "rev": "c41437acf07c2c4703351b07925fce3ce0e6b75d",
-    "sha256": "1ihv2k4swbhd4kiaprrjgq8kmx3vrg64y2dqkvg6nd26dfwhxr0f"
+    "rev": "8ad0f08ad7e2a8d27dc5e69806812c6a3f298946",
+    "sha256": "0pyiiqj18c2gvbqvgnaki2hzcizi1lam82x761y2lp717sgb09v9"
   },
   "qtsvg": {
     "url": "https://invent.kde.org/qt/qt/qtsvg.git",
-    "rev": "5b1b4a99d6bc98c42a11b7a3f6c9f0b0f9e56f34",
-    "sha256": "0ji4kaphlqmlpcvcvlqklhzmdlwv712cvsdxnv41fdab6b49yghw"
+    "rev": "690128b2b8fb6d6fbdc43b2b2633f0f1de3f0638",
+    "sha256": "1iiml673isnqakjzspq5gf6818zmmd7pj6z9y2jwxb2xkkn8ahpc"
   },
   "qttools": {
     "url": "https://invent.kde.org/qt/qt/qttools.git",
-    "rev": "bd0ceb7de5d0c918ae596150e95b069dca8b9150",
-    "sha256": "100qhcdcnnx0l3sl9zl5p3l7707h7vdbjjk7dmy7ap1r0218m5zy"
+    "rev": "f82ed367d1b80b69d738cfcde534b75854a45476",
+    "sha256": "1pv7af4z3f9d1ifqjwbf7fhgglpnjfby8h2fg5h114mpils661bn"
   },
   "qttranslations": {
     "url": "https://invent.kde.org/qt/qt/qttranslations.git",
-    "rev": "f7745c117041e7adf9705e1de8d71086c160dd9f",
-    "sha256": "0nx8qdg3m4wf8pynh4pr1j0m0p1y5pws7fnx5mpqccvwgj4bwrdj"
+    "rev": "c601106c8b5d5495f951c8ea0ad6a9e171416ae0",
+    "sha256": "0w8ggzc4sxfa1y3n40m24zxp59c2y1mfb2c7zdd8nmlrg7xnqsf0"
   },
   "qtvirtualkeyboard": {
     "url": "https://invent.kde.org/qt/qt/qtvirtualkeyboard.git",
-    "rev": "8b885af5ad3c2f2ff500c060a41e312ea7276e50",
-    "sha256": "0mh4bva1msczgwl2x3b960rml5rmxnvvzi1wk94cc51888vyajiv"
+    "rev": "7389450a5de5fdd210f1459abcf73621ec0496bd",
+    "sha256": "1hv8yi4lq3mdxqkcln2b75drdyfiaqj63khzvy09gdf1x6fyjnn5"
   },
   "qtwayland": {
     "url": "https://invent.kde.org/qt/qt/qtwayland.git",
-    "rev": "c8b37a1bda9b8f29d56775ed6556d56ac5d3ea1d",
-    "sha256": "15spjyc6gq1r5vdryhm21mhaim1iw24y80p0srp58qm9jwqg9dys"
+    "rev": "75f434f14499eb47ede2cb66f0946527bf555791",
+    "sha256": "17d7bcc3v55ywakaybp88c493bfx63vyiz7n8f5kcijj5q5hdf1r"
   },
   "qtwebchannel": {
     "url": "https://invent.kde.org/qt/qt/qtwebchannel.git",
-    "rev": "6d2f0c3a36d9b2cdcd759a464c608365a0afda98",
-    "sha256": "1aqhvniysjc14xqcwvqhylcd4lpsl5vsym0spfahxs55s9jsvbyl"
+    "rev": "fca83088ef430f96257d2014e77d08bd350259af",
+    "sha256": "1jc7myns24mzfnfybzzjqkpnl235c0fm0zqkai55xwi3vcv9xyr5"
   },
   "qtwebglplugin": {
     "url": "https://invent.kde.org/qt/qt/qtwebglplugin.git",
-    "rev": "8f879e6bcf941a612c568fbfe2b49ddb1bb409cd",
-    "sha256": "02glac0m95naxl5c6n22xclxhp7fjl1whf6sf3388h41wwdhv11c"
+    "rev": "3681356904277e055759693551357e7e488d1be9",
+    "sha256": "14v9r4mhqq453dzkc5gvv660gq11zsmzngvwgi44srhzcx7k1qqv"
   },
   "qtwebsockets": {
     "url": "https://invent.kde.org/qt/qt/qtwebsockets.git",
-    "rev": "9a7b9972a54137d5f2e0d49559fe58d07c90662e",
-    "sha256": "1hcf18cls9kmq4xjxzjm2viqs80pxr4ykrzx0vg1bd83bc509vqp"
+    "rev": "dbbdc64b804f7c4d0ed92198aaab49b07fa15e7f",
+    "sha256": "1gbgga8qy26nxxq0537hm3h6la04xb6m4cc2aifjhhhj8py95170"
   },
   "qtwebview": {
     "url": "https://invent.kde.org/qt/qt/qtwebview.git",
-    "rev": "53fa44709992faae54e4f5c8a128cea7b6f0cbd5",
-    "sha256": "12w6znmy2hijcnwqqva8abydcryh6jcp8lhx0kz0m3cvhwpq1fbx"
+    "rev": "bbb1891595aba23ff3c6d137aa74442f9e54479b",
+    "sha256": "0j59r6dj4wvassng39whnidd6nzhndwssfwjppppqbs5xy57zh2z"
   },
   "qtwinextras": {
     "url": "https://invent.kde.org/qt/qt/qtwinextras.git",
-    "rev": "ee931eba5d129284d5c33157cd7d0b9232fbee7b",
-    "sha256": "17fyfkm8qfl9jmlq3ppnqwdx47230bk2laikfbq2188vn42yxnqv"
+    "rev": "907009a4f7e5d2b99805547caf4b901bdbb0d4d6",
+    "sha256": "0aam2imp4rkbrjir5gsk4ja7vf7vv68ybsh7qchavb3zdmjsvxcd"
   },
   "qtx11extras": {
     "url": "https://invent.kde.org/qt/qt/qtx11extras.git",
-    "rev": "aaa54153970d1d63a44b873cad5f62ffa71ef9b8",
-    "sha256": "0q34pi4mqqi4vzk57f59xsk303jgpk1fkxvnvm9r08jkckxxbisw"
+    "rev": "6c3605fcb3b34e55951f597e06c135d97dfa6cd7",
+    "sha256": "0dqmw2yqh5b5ayq93px2na50ghfk55y55zsgwraxglly0zgm39w9"
   },
   "qtxmlpatterns": {
     "url": "https://invent.kde.org/qt/qt/qtxmlpatterns.git",
-    "rev": "6e0917d518e07f737cc663b8d632c8021634fd3b",
-    "sha256": "062riy66z3v1fxrdnbdhafqdv67xqz12pscidj4fhhp9fzi92a45"
+    "rev": "087f6f35bd027f940818b1696d0aad822e034377",
+    "sha256": "0y3hkz7ss6iibpfr7dc855bzhdanz79ix0jm6b28viqjy3bdzgar"
   }
 }
diff --git a/pkgs/development/libraries/qt-5/5.15/srcs.nix b/pkgs/development/libraries/qt-5/5.15/srcs.nix
index 5ac474afeda32..60ce4e4daf495 100644
--- a/pkgs/development/libraries/qt-5/5.15/srcs.nix
+++ b/pkgs/development/libraries/qt-5/5.15/srcs.nix
@@ -1,7 +1,7 @@
 { lib, fetchgit, fetchFromGitHub }:
 
 let
-  version = "5.15.12";
+  version = "5.15.14";
 
   mk = name: args:
     {
@@ -63,31 +63,25 @@ lib.mapAttrs mk (lib.importJSON ./srcs-generated.json)
     };
   };
 
-  catapult = fetchgit {
-    url = "https://chromium.googlesource.com/catapult";
-    rev = "5eedfe23148a234211ba477f76fc2ea2e8529189";
-    hash = "sha256-LPfBCEB5tJOljXpptsNk0sHGtJf/wIRL7fccN79Nh6o=";
-  };
-
   qtscript = rec {
-    version = "5.15.16";
+    version = "5.15.17";
 
     src = fetchFromGitHub {
       owner = "qt";
       repo = "qtscript";
       rev = "v${version}-lts";
-      hash = "sha256-4Jqsmk5EBQ2Biv69yYCNx7l7AWFikRMBfl0fbZcsSaA=";
+      hash = "sha256-wXEKdu2gdlkVsWr3nb/tCBwyo9H8GPHWTUele1cP0ks=";
     };
   };
 
   qtwebengine = rec {
-    version = "5.15.16";
+    version = "5.15.17";
 
     src = fetchFromGitHub {
       owner = "qt";
       repo = "qtwebengine";
       rev = "v${version}-lts";
-      hash = "sha256-Arg/tfJcx9+CSV1VXBieHNoCSwmWNTnyBdgSkthOdfA=";
+      hash = "sha256-1be8Y96yHYBCxQsRC/PD2X0TVWpA2/r1hvi8sBKOais=";
       fetchSubmodules = true;
     };
   };
diff --git a/pkgs/development/libraries/qt-5/modules/qtbase.nix b/pkgs/development/libraries/qt-5/modules/qtbase.nix
index 594489a0d7505..d92287feb1511 100644
--- a/pkgs/development/libraries/qt-5/modules/qtbase.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtbase.nix
@@ -397,7 +397,7 @@ stdenv.mkDerivation (finalAttrs: ({
 
   meta = with lib; {
     homepage = "https://www.qt.io/";
-    description = "A cross-platform application framework for C++";
+    description = "Cross-platform application framework for C++";
     license = with licenses; [ fdl13Plus gpl2Plus lgpl21Plus lgpl3Plus ];
     maintainers = with maintainers; [ qknight ttuegel periklis bkchr ];
     pkgConfigModules = [
diff --git a/pkgs/development/libraries/qt-5/modules/qtlocation.nix b/pkgs/development/libraries/qt-5/modules/qtlocation.nix
index a9897648d8e6f..338911a5afd5f 100644
--- a/pkgs/development/libraries/qt-5/modules/qtlocation.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtlocation.nix
@@ -9,5 +9,6 @@ qtModule {
      # This flag re-enables this feature
      # https://libcxx.llvm.org/docs/UsingLibcxx.html#c-17-specific-configuration-macros
      "QMAKE_CXXFLAGS+=-D_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR"
+     "QMAKE_CXXFLAGS+=-D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION"
   ];
 }
diff --git a/pkgs/development/libraries/qt-5/modules/qtwayland.nix b/pkgs/development/libraries/qt-5/modules/qtwayland.nix
index 347a5cf643428..cb2357a1ebf47 100644
--- a/pkgs/development/libraries/qt-5/modules/qtwayland.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtwayland.nix
@@ -1,4 +1,4 @@
-{ qtModule, qtbase, qtquickcontrols, wayland, wayland-scanner, pkg-config }:
+{ qtModule, qtbase, qtquickcontrols, wayland, wayland-scanner, pkg-config, lib }:
 
 qtModule {
   pname = "qtwayland";
@@ -12,4 +12,5 @@ qtModule {
     # context).
     ./qtwayland-app_id.patch
   ];
+  meta.badPlatforms = lib.platforms.darwin;
 }
diff --git a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
index 44007bec07b84..b2715fbe7502c 100644
--- a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
@@ -1,8 +1,8 @@
 { qtModule
 , qtdeclarative, qtquickcontrols, qtlocation, qtwebchannel
 
-, bison, flex, git, gperf, ninja, pkg-config, python, which, python3
-, nodejs, qtbase, perl
+, bison, flex, git, gperf, ninja, pkg-config, python, which
+, nodejs, perl
 , buildPackages
 , pkgsBuildTarget
 , pkgsBuildBuild
@@ -22,9 +22,9 @@
 , ApplicationServices, AVFoundation, Foundation, ForceFeedback, GameController, AppKit
 , ImageCaptureCore, CoreBluetooth, IOBluetooth, CoreWLAN, Quartz, Cocoa, LocalAuthentication
 , MediaPlayer, MediaAccessibility, SecurityInterface, Vision, CoreML, OpenDirectory, Accelerate
-, cups, openbsm, runCommand, xcbuild, writeScriptBin
+, cups, openbsm, xcbuild, writeScriptBin
 , ffmpeg_4 ? null
-, lib, stdenv, fetchpatch
+, lib, stdenv
 , version ? null
 , qtCompatVersion
 , pipewireSupport ? stdenv.isLinux
@@ -32,7 +32,6 @@
 , postPatch ? ""
 , nspr
 , lndir
-, dbusSupport ? !stdenv.isDarwin, expat
 }:
 
 let
@@ -52,17 +51,12 @@ let
     '';
   };
 
-  qtPlatformCross = plat: with plat;
-    if isLinux
-    then "linux-generic-g++"
-    else throw "Please add a qtPlatformCross entry for ${plat.config}";
-
 in
 
 qtModule ({
   pname = "qtwebengine";
   nativeBuildInputs = [
-    bison flex git gperf ninja pkg-config python which gn nodejs
+    bison flex git gperf ninja pkg-config (python.withPackages(ps: [ ps.html5lib ])) which gn nodejs
   ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
     perl
     lndir (lib.getDev pkgsBuildTarget.targetPackages.qt5.qtbase)
@@ -93,12 +87,6 @@ qtModule ({
 
       # TODO: be more precise
       patchShebangs .
-
-      # Fix compatibility with python3.11
-      substituteInPlace tools/metrics/ukm/ukm_model.py \
-        --replace "r'^(?i)(|true|false)$'" "r'(?i)^(|true|false)$'"
-      substituteInPlace tools/grit/grit/util.py \
-        --replace "mode = 'rU'" "mode = 'r'"
     )
   ''
   # Prevent Chromium build script from making the path to `clang` relative to
@@ -292,7 +280,7 @@ qtModule ({
   requiredSystemFeatures = [ "big-parallel" ];
 
   meta = with lib; {
-    description = "A web engine based on the Chromium web browser";
+    description = "Web engine based on the Chromium web browser";
     mainProgram = "qwebengine_convert_dict";
     maintainers = with maintainers; [ matthewbauer ];
 
diff --git a/pkgs/development/libraries/qt-5/qtModule.nix b/pkgs/development/libraries/qt-5/qtModule.nix
index 54d24e46092f2..c2e329b1f11ff 100644
--- a/pkgs/development/libraries/qt-5/qtModule.nix
+++ b/pkgs/development/libraries/qt-5/qtModule.nix
@@ -86,7 +86,7 @@ mkDerivation (args // {
 
   meta = {
     homepage = "https://www.qt.io";
-    description = "A cross-platform application framework for C++";
+    description = "Cross-platform application framework for C++";
     license = with licenses; [ fdl13Plus gpl2Plus lgpl21Plus lgpl3Plus ];
     maintainers = with maintainers; [ qknight ttuegel periklis bkchr ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/qt-6/default.nix b/pkgs/development/libraries/qt-6/default.nix
index c4b8512079546..c724bd21d11ff 100644
--- a/pkgs/development/libraries/qt-6/default.nix
+++ b/pkgs/development/libraries/qt-6/default.nix
@@ -4,7 +4,6 @@
 , generateSplicesForMkScope
 , makeScopeWithSplicing'
 , fetchurl
-, fetchpatch
 , fetchpatch2
 , makeSetupHook
 , makeWrapper
diff --git a/pkgs/development/libraries/qt-6/modules/qtbase.nix b/pkgs/development/libraries/qt-6/modules/qtbase.nix
index a327b88991ef0..43c2c88ecd799 100644
--- a/pkgs/development/libraries/qt-6/modules/qtbase.nix
+++ b/pkgs/development/libraries/qt-6/modules/qtbase.nix
@@ -266,7 +266,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.qt.io/";
-    description = "A cross-platform application framework for C++";
+    description = "Cross-platform application framework for C++";
     license = with licenses; [ fdl13Plus gpl2Plus lgpl21Plus lgpl3Plus ];
     maintainers = with maintainers; [ milahu nickcao LunNova ];
     platforms = platforms.unix ++ platforms.windows;
diff --git a/pkgs/development/libraries/qt-6/modules/qtwebengine.nix b/pkgs/development/libraries/qt-6/modules/qtwebengine.nix
index 8f0ddad4a58a1..997fe0394fa25 100644
--- a/pkgs/development/libraries/qt-6/modules/qtwebengine.nix
+++ b/pkgs/development/libraries/qt-6/modules/qtwebengine.nix
@@ -311,7 +311,7 @@ qtModule {
   '';
 
   meta = with lib; {
-    description = "A web engine based on the Chromium web browser";
+    description = "Web engine based on the Chromium web browser";
     platforms = [ "x86_64-darwin" "aarch64-darwin" "aarch64-linux" "armv7a-linux" "armv7l-linux" "x86_64-linux" ];
     # This build takes a long time; particularly on slow architectures
     # 1 hour on 32x3.6GHz -> maybe 12 hours on 4x2.4GHz
diff --git a/pkgs/development/libraries/qt-6/qtModule.nix b/pkgs/development/libraries/qt-6/qtModule.nix
index addcd53aea81e..ef5aa994ce908 100644
--- a/pkgs/development/libraries/qt-6/qtModule.nix
+++ b/pkgs/development/libraries/qt-6/qtModule.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation (args // {
     pos = builtins.unsafeGetAttrPos "pname" args;
   in {
     homepage = "https://www.qt.io/";
-    description = "A cross-platform application framework for C++";
+    description = "Cross-platform application framework for C++";
     license = with licenses; [ fdl13Plus gpl2Plus lgpl21Plus lgpl3Plus ];
     maintainers = with maintainers; [ milahu nickcao ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/qtstyleplugin-kvantum/default.nix b/pkgs/development/libraries/qtstyleplugin-kvantum/default.nix
index a7372dfba22e6..3d44f556a0ffb 100644
--- a/pkgs/development/libraries/qtstyleplugin-kvantum/default.nix
+++ b/pkgs/development/libraries/qtstyleplugin-kvantum/default.nix
@@ -22,13 +22,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "qtstyleplugin-kvantum${lib.optionalString isQt5 "5"}";
-  version = "1.1.1";
+  version = "1.1.2";
 
   src = fetchFromGitHub {
     owner = "tsujan";
     repo = "Kvantum";
     rev = "V${finalAttrs.version}";
-    hash = "sha256-cGMS0lEtgd64rjeEfYwJplf9rva0FtpaQMCfxyramE8=";
+    hash = "sha256-1aeXcN9DwPE8CoaxCqCNL9UEcRHJdaKxS7Ivjp3YNN8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/qtutilities/default.nix b/pkgs/development/libraries/qtutilities/default.nix
index 0ac930710bf4d..e9deed9d8ac18 100644
--- a/pkgs/development/libraries/qtutilities/default.nix
+++ b/pkgs/development/libraries/qtutilities/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "qtutilities";
-  version = "6.14.0";
+  version = "6.14.1";
 
   src = fetchFromGitHub {
     owner = "Martchus";
     repo = "qtutilities";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-pg2SaFfFkP2v1qHo8CRCn7b9B4XKX+R4UqRNzNG4to4=";
+    hash = "sha256-WUrxBlSS1Z3+tQGmAi+d3wpqutqNjPrVOxmpUy01aqU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/quantlib/default.nix b/pkgs/development/libraries/quantlib/default.nix
index a0ca48b1afd89..a84221b1b176a 100644
--- a/pkgs/development/libraries/quantlib/default.nix
+++ b/pkgs/development/libraries/quantlib/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A free/open-source library for quantitative finance";
+    description = "Free/open-source library for quantitative finance";
     homepage = "https://quantlib.org";
     platforms = platforms.unix;
     license = licenses.bsd3;
diff --git a/pkgs/development/libraries/quarto/default.nix b/pkgs/development/libraries/quarto/default.nix
index 78dc32fbbf550..816139a1693d0 100644
--- a/pkgs/development/libraries/quarto/default.nix
+++ b/pkgs/development/libraries/quarto/default.nix
@@ -19,10 +19,10 @@
 
 stdenv.mkDerivation (final: {
   pname = "quarto";
-  version = "1.4.554";
+  version = "1.4.555";
   src = fetchurl {
     url = "https://github.com/quarto-dev/quarto-cli/releases/download/v${final.version}/quarto-${final.version}-linux-amd64.tar.gz";
-    sha256 = "sha256-/RID+nqjMAEg2jzTBYc/8hz/t+k4TJlks7oCJ5YrjIY=";
+    sha256 = "sha256-uBKKgRsM7kUDeF0kMYbo6RjmiU6wq4EEcE94qqMSzt8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/quesoglc/default.nix b/pkgs/development/libraries/quesoglc/default.nix
index 440d52d08f81d..d0b4d22b87e34 100644
--- a/pkgs/development/libraries/quesoglc/default.nix
+++ b/pkgs/development/libraries/quesoglc/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libGLU libGL glew freetype fontconfig fribidi libX11 ];
   # FIXME: Configure fails to use system glew.
   meta = with lib; {
-    description = "A free implementation of the OpenGL Character Renderer";
+    description = "Free implementation of the OpenGL Character Renderer";
     longDescription = ''
       QuesoGLC is a free (as in free speech) implementation of the OpenGL
       Character Renderer (GLC). QuesoGLC is based on the FreeType library,
diff --git a/pkgs/development/libraries/quickflux/default.nix b/pkgs/development/libraries/quickflux/default.nix
index 9f56e67931911..3ab3058b478e7 100644
--- a/pkgs/development/libraries/quickflux/default.nix
+++ b/pkgs/development/libraries/quickflux/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A Flux implementation for QML";
+    description = "Flux implementation for QML";
     homepage = "https://github.com/benlau/quickflux";
     license = licenses.asl20;
     maintainers = with maintainers; [ OPNA2608 ];
diff --git a/pkgs/development/libraries/qxmpp/default.nix b/pkgs/development/libraries/qxmpp/default.nix
index f22f9860d9cd4..7ea5d6a4e72d7 100644
--- a/pkgs/development/libraries/qxmpp/default.nix
+++ b/pkgs/development/libraries/qxmpp/default.nix
@@ -12,13 +12,13 @@
 
 mkDerivation rec {
   pname = "qxmpp";
-  version = "1.6.1";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "qxmpp-project";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-y27rTJc2taFGOjDmy0KKQQxSdXOwteLunHwICh5pSEc=";
+    sha256 = "sha256-8AF+deDRxipN+YMHE9vUyTaUbSJIckMkB7t3YVtupQs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/rabbitmq-c/default.nix b/pkgs/development/libraries/rabbitmq-c/default.nix
index a500e5dbc045c..66c70fcf4dd00 100644
--- a/pkgs/development/libraries/rabbitmq-c/default.nix
+++ b/pkgs/development/libraries/rabbitmq-c/default.nix
@@ -2,25 +2,18 @@
 
 stdenv.mkDerivation rec {
   pname = "rabbitmq-c";
-  version = "0.13.0";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "alanxz";
     repo = "rabbitmq-c";
     rev = "v${version}";
-    sha256 = "sha256-4tSZ+eaLZAkSmFsGnIrRXNvn3xA/4sTKyYZ3hPUMcd0=";
+    hash = "sha256-ffdnLEgUg+4G12JntjFag3ZXMvEL42hsrY6VT58ccJ0=";
   };
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ openssl popt xmlto ];
 
-  # https://github.com/alanxz/rabbitmq-c/issues/733
-  postPatch = ''
-    substituteInPlace CMakeLists.txt \
-      --replace '\$'{exec_prefix}/'$'{CMAKE_INSTALL_LIBDIR} '$'{CMAKE_INSTALL_FULL_LIBDIR} \
-      --replace '\$'{prefix}/'$'{CMAKE_INSTALL_INCLUDEDIR} '$'{CMAKE_INSTALL_FULL_INCLUDEDIR}
-  '';
-
   meta = with lib; {
     description = "RabbitMQ C AMQP client library";
     homepage = "https://github.com/alanxz/rabbitmq-c";
diff --git a/pkgs/development/libraries/range-v3/default.nix b/pkgs/development/libraries/range-v3/default.nix
index 77db5869f62a1..9b9c2bd39d648 100644
--- a/pkgs/development/libraries/range-v3/default.nix
+++ b/pkgs/development/libraries/range-v3/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake }:
+{ lib, stdenv, fetchFromGitHub, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "range-v3";
diff --git a/pkgs/development/libraries/rapidcheck/default.nix b/pkgs/development/libraries/rapidcheck/default.nix
index 880f1706b2995..ad8252f48e8cb 100644
--- a/pkgs/development/libraries/rapidcheck/default.nix
+++ b/pkgs/development/libraries/rapidcheck/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A C++ framework for property based testing inspired by QuickCheck";
+    description = "C++ framework for property based testing inspired by QuickCheck";
     inherit (finalAttrs.src.meta) homepage;
     maintainers = with maintainers; [ ];
     license = licenses.bsd2;
diff --git a/pkgs/development/libraries/rapidyaml/default.nix b/pkgs/development/libraries/rapidyaml/default.nix
index 1275f2fa5452b..53994cecd3815 100644
--- a/pkgs/development/libraries/rapidyaml/default.nix
+++ b/pkgs/development/libraries/rapidyaml/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake git ];
 
   meta = with lib; {
-    description = "A library to parse and emit YAML, and do it fast.";
+    description = "Library to parse and emit YAML, and do it fast";
     homepage = "https://github.com/biojppm/rapidyaml";
     license = licenses.mit;
     maintainers = with maintainers; [ martfont ];
diff --git a/pkgs/development/libraries/raylib/default.nix b/pkgs/development/libraries/raylib/default.nix
index bb59eb9d654c1..64e327ec34afd 100644
--- a/pkgs/development/libraries/raylib/default.nix
+++ b/pkgs/development/libraries/raylib/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A simple and easy-to-use library to enjoy videogames programming";
+    description = "Simple and easy-to-use library to enjoy videogames programming";
     homepage = "https://www.raylib.com/";
     license = licenses.zlib;
     maintainers = with maintainers; [ adamlwgriffiths ];
diff --git a/pkgs/development/libraries/rdkafka/default.nix b/pkgs/development/libraries/rdkafka/default.nix
index 400c7297d22ba..3b9580840f4d8 100644
--- a/pkgs/development/libraries/rdkafka/default.nix
+++ b/pkgs/development/libraries/rdkafka/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rdkafka";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "confluentinc";
     repo = "librdkafka";
     rev = "v${version}";
-    sha256 = "sha256-F67aKmyMmqBVG5sF8ZwqemmfvVi/0bDjaiugKKSipuA=";
+    sha256 = "sha256-RLjshOnMmCdlv73M8siIvBZ5kVG3v2XttkLVPU+BHY4=";
   };
 
   nativeBuildInputs = [ pkg-config python3 which ];
diff --git a/pkgs/development/libraries/re2/default.nix b/pkgs/development/libraries/re2/default.nix
index 9a9e1f634df8d..2310ce33ea4f3 100644
--- a/pkgs/development/libraries/re2/default.nix
+++ b/pkgs/development/libraries/re2/default.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A regular expression library";
+    description = "Regular expression library";
     longDescription = ''
       RE2 is a fast, safe, thread-friendly alternative to backtracking regular
       expression engines like those used in PCRE, Perl, and Python. It is a C++
diff --git a/pkgs/development/libraries/readline/8.2.nix b/pkgs/development/libraries/readline/8.2.nix
index 72e3370576e72..7bf5caf4060f1 100644
--- a/pkgs/development/libraries/readline/8.2.nix
+++ b/pkgs/development/libraries/readline/8.2.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchpatch, fetchurl
+, updateAutotoolsGnuConfigScriptsHook
 , ncurses, termcap
 , curses-library ?
     if stdenv.hostPlatform.isWindows
@@ -20,6 +21,7 @@ stdenv.mkDerivation rec {
 
   strictDeps = true;
   propagatedBuildInputs = [ curses-library ];
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
 
   patchFlags = [ "-p0" ];
 
diff --git a/pkgs/development/libraries/readosm/default.nix b/pkgs/development/libraries/readosm/default.nix
index 8ba1f571b0287..0f746c36483c6 100644
--- a/pkgs/development/libraries/readosm/default.nix
+++ b/pkgs/development/libraries/readosm/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "An open source library to extract valid data from within an Open Street Map input file";
+    description = "Open source library to extract valid data from within an Open Street Map input file";
     homepage = "https://www.gaia-gis.it/fossil/readosm";
     license = with licenses; [ mpl11 gpl2Plus lgpl21Plus ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/reproc/default.nix b/pkgs/development/libraries/reproc/default.nix
index ae920f4cb0d23..5092cc2ab7bdf 100644
--- a/pkgs/development/libraries/reproc/default.nix
+++ b/pkgs/development/libraries/reproc/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/DaanDeMeyer/reproc";
-    description = "A cross-platform (C99/C++11) process library";
+    description = "Cross-platform (C99/C++11) process library";
     license = licenses.mit;
     platforms = platforms.all;
   };
diff --git a/pkgs/development/libraries/resolv_wrapper/default.nix b/pkgs/development/libraries/resolv_wrapper/default.nix
index 58863d6e26425..bb58fbaad3702 100644
--- a/pkgs/development/libraries/resolv_wrapper/default.nix
+++ b/pkgs/development/libraries/resolv_wrapper/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkg-config ];
 
   meta = with lib; {
-    description = "A wrapper for the user, group and hosts NSS API";
+    description = "Wrapper for the user, group and hosts NSS API";
     homepage = "https://git.samba.org/?p=uid_wrapper.git;a=summary;";
     license = licenses.bsd3;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/retro-gtk/default.nix b/pkgs/development/libraries/retro-gtk/default.nix
index 1323bd98a43c6..7387e69130730 100644
--- a/pkgs/development/libraries/retro-gtk/default.nix
+++ b/pkgs/development/libraries/retro-gtk/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "The GTK Libretro frontend framework";
+    description = "GTK Libretro frontend framework";
     mainProgram = "retro-demo";
     longDescription = ''
       Libretro is a plugin format design to implement video game
diff --git a/pkgs/development/libraries/rlog/default.nix b/pkgs/development/libraries/rlog/default.nix
index c8661f173e672..75760fed577f0 100644
--- a/pkgs/development/libraries/rlog/default.nix
+++ b/pkgs/development/libraries/rlog/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://www.arg0.net/rlog";
-    description = "A C++ logging library used in encfs";
+    description = "C++ logging library used in encfs";
     platforms = lib.platforms.linux;
     license = lib.licenses.lgpl3;
   };
diff --git a/pkgs/development/libraries/rlottie/default.nix b/pkgs/development/libraries/rlottie/default.nix
index cbc46f819e5f4..541c805bba5bb 100644
--- a/pkgs/development/libraries/rlottie/default.nix
+++ b/pkgs/development/libraries/rlottie/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/Samsung/rlottie";
-    description = "A platform independent standalone c++ library for rendering vector based animations and art in realtime";
+    description = "Platform independent standalone c++ library for rendering vector based animations and art in realtime";
     license = with licenses; [ mit bsd3 mpl11 ftl ];
     platforms = platforms.all;
     maintainers = with maintainers; [ CRTified ];
diff --git a/pkgs/development/libraries/rnnoise-plugin/default.nix b/pkgs/development/libraries/rnnoise-plugin/default.nix
index 39a8f1a4b6a6f..ad7ba8a5a5497 100644
--- a/pkgs/development/libraries/rnnoise-plugin/default.nix
+++ b/pkgs/development/libraries/rnnoise-plugin/default.nix
@@ -17,13 +17,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "rnnoise-plugin";
-  version = "1.03";
+  version = "1.10";
 
   src = fetchFromGitHub {
     owner = "werman";
     repo = "noise-suppression-for-voice";
     rev = "v${version}";
-    sha256 = "sha256-1DgrpGYF7G5Zr9vbgtKm/Yv0HSdI7LrFYPSGKYNnNDQ=";
+    sha256 = "sha256-sfwHd5Fl2DIoGuPDjELrPp5KpApZJKzQikCJmCzhtY8=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
     ];
 
   meta = with lib; {
-    description = "A real-time noise suppression plugin for voice based on Xiph's RNNoise";
+    description = "Real-time noise suppression plugin for voice based on Xiph's RNNoise";
     homepage = "https://github.com/werman/noise-suppression-for-voice";
     license = licenses.gpl3;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/rocksdb/default.nix b/pkgs/development/libraries/rocksdb/default.nix
index c584ef2976d1c..af52b6a9fa7c7 100644
--- a/pkgs/development/libraries/rocksdb/default.nix
+++ b/pkgs/development/libraries/rocksdb/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , ninja
 , bzip2
@@ -18,13 +17,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "rocksdb";
-  version = "9.1.1";
+  version = "9.2.1";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = finalAttrs.pname;
     rev = "v${finalAttrs.version}";
-    hash = "sha256-/Xf0bzNJPclH9IP80QNaABfhj4IAR5LycYET18VFCXc=";
+    hash = "sha256-Zifn5Gu/4h6TaEqSaWQ2mFdryeAarqbHWW3fKUGGFac=";
   };
 
   nativeBuildInputs = [ cmake ninja ];
@@ -98,7 +97,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://rocksdb.org";
-    description = "A library that provides an embeddable, persistent key-value store for fast storage";
+    description = "Library that provides an embeddable, persistent key-value store for fast storage";
     changelog = "https://github.com/facebook/rocksdb/raw/v${finalAttrs.version}/HISTORY.md";
     license = licenses.asl20;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/rtrlib/default.nix b/pkgs/development/libraries/rtrlib/default.nix
index 05429a72fb667..2f0ae61b9a9c3 100644
--- a/pkgs/development/libraries/rtrlib/default.nix
+++ b/pkgs/development/libraries/rtrlib/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An open-source C implementation of the RPKI/Router Protocol client";
+    description = "Open-source C implementation of the RPKI/Router Protocol client";
     homepage = "https://github.com/rtrlib/rtrlib";
     license = licenses.mit;
     maintainers = with maintainers; [ Anillc ];
diff --git a/pkgs/development/libraries/rubberband/default.nix b/pkgs/development/libraries/rubberband/default.nix
index 7830e62ccb181..66b3dbbea3fb1 100644
--- a/pkgs/development/libraries/rubberband/default.nix
+++ b/pkgs/development/libraries/rubberband/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, libsamplerate, libsndfile, fftw
-, lv2, jdk
+, lv2, jdk_headless
 , vamp-plugin-sdk, ladspaH, meson, ninja, darwin }:
 
 stdenv.mkDerivation rec {
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     hash = "sha256-2e+J4rjvn4WxOsPC+uww4grPLJ86nIxFzmN/K8leV2w=";
   };
 
-  nativeBuildInputs = [ pkg-config meson ninja jdk ];
+  nativeBuildInputs = [ pkg-config meson ninja jdk_headless ];
   buildInputs = [ libsamplerate libsndfile fftw vamp-plugin-sdk ladspaH lv2 ] ++ lib.optionals stdenv.isDarwin
     (with darwin.apple_sdk.frameworks; [Accelerate CoreGraphics CoreVideo]);
   makeFlags = [ "AR:=$(AR)" ];
diff --git a/pkgs/development/libraries/rure/default.nix b/pkgs/development/libraries/rure/default.nix
index 1771abd3367af..308eb41d1a902 100644
--- a/pkgs/development/libraries/rure/default.nix
+++ b/pkgs/development/libraries/rure/default.nix
@@ -35,7 +35,7 @@ rustPlatform.buildRustPackage {
   passthru.updateScript = ./update.sh;
 
   meta = {
-    description = "A C API for Rust's regular expression library";
+    description = "C API for Rust's regular expression library";
     homepage = "https://crates.io/crates/rure";
     license = [
       lib.licenses.mit
diff --git a/pkgs/development/libraries/s2n-tls/default.nix b/pkgs/development/libraries/s2n-tls/default.nix
index 36f11372775d7..60e6eaf5b5350 100644
--- a/pkgs/development/libraries/s2n-tls/default.nix
+++ b/pkgs/development/libraries/s2n-tls/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "s2n-tls";
-  version = "1.4.12";
+  version = "1.4.14";
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-gOCnRuJ1YM+SkrOJ/5TGANl442e7Umh3HK5DFNLJi/A=";
+    hash = "sha256-FEEjsJ5l87yuFDDzJPcAQ0O7OG6neK5PX+DMY5OIKJM=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/schroedinger/default.nix b/pkgs/development/libraries/schroedinger/default.nix
index 5403d77eb7524..b4e8831b31775 100644
--- a/pkgs/development/libraries/schroedinger/default.nix
+++ b/pkgs/development/libraries/schroedinger/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An implementation of the Dirac video codec in ANSI C";
+    description = "Implementation of the Dirac video codec in ANSI C";
     homepage = "https://sourceforge.net/projects/schrodinger/";
     maintainers = [ ];
     license = [ licenses.mpl11 licenses.lgpl2 licenses.mit ];
diff --git a/pkgs/development/libraries/science/astronomy/indilib/default.nix b/pkgs/development/libraries/science/astronomy/indilib/default.nix
index 50ba7e8273fa8..0fd659b0e1b74 100644
--- a/pkgs/development/libraries/science/astronomy/indilib/default.nix
+++ b/pkgs/development/libraries/science/astronomy/indilib/default.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "indilib";
-  version = "2.0.7";
+  version = "2.0.8";
 
   src = fetchFromGitHub {
     owner = "indilib";
     repo = "indi";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-sbs20BbAnvHTtJEuTWMCJrjzyvH7NSXS1+Ah5BdJZHA=";
+    hash = "sha256-qdPQMC8HCMdcbHyO8B0OFiefO+jM1ytA2dYNymE0Xuc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix b/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix
index 3b512a3976dc3..c24388582d36b 100644
--- a/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix
+++ b/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix
@@ -6,7 +6,7 @@ let
     owner = "indilib";
     repo = "indi-3rdparty";
     rev = "v${version}";
-    hash = "sha256-u5UpI6ll2TnI02xWSaZRC5v6BOT0EHaQ2md5iY/Ymjs=";
+    hash = "sha256-0M+k3A2Lw9EU9V5bX9dGztmdcJzc71XQZv8srmY5NmY=";
   };
   indi-firmware = callPackage ./indi-firmware.nix {
     inherit version;
diff --git a/pkgs/development/libraries/science/biology/htslib/default.nix b/pkgs/development/libraries/science/biology/htslib/default.nix
index 8b1aa7d01e818..8e1c0a939daf3 100644
--- a/pkgs/development/libraries/science/biology/htslib/default.nix
+++ b/pkgs/development/libraries/science/biology/htslib/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A C library for reading/writing high-throughput sequencing data";
+    description = "C library for reading/writing high-throughput sequencing data";
     license = licenses.mit;
     homepage = "http://www.htslib.org/";
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/science/chemistry/harminv/default.nix b/pkgs/development/libraries/science/chemistry/harminv/default.nix
index dc8289e14ce91..f9d8573ca6d5f 100644
--- a/pkgs/development/libraries/science/chemistry/harminv/default.nix
+++ b/pkgs/development/libraries/science/chemistry/harminv/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     owner = "NanoComp";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-EXEt7l69etcBdDdEDlD1ODOdhTBZCVjgY1jhRUDd/W0=";
+    hash = "sha256-HV8xylK2IOvbONYGgyaqAabp6xA7/uvN4DU7upIlZh0=";
   };
 
   # File is missing in the git checkout but required by autotools
@@ -30,11 +30,13 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ blas lapack ];
 
-  configureFlags = [ "--enable-shared" ];
+  configureFlags = [
+    "--enable-shared"
+    "--enable-maintainer-mode"
+  ];
 
   meta = with lib; {
     description = "Harmonic inversion algorithm of Mandelshtam: decompose signal into sum of decaying sinusoids";
-    mainProgram = "GDSIIConvert";
     homepage = "https://github.com/NanoComp/harminv";
     license = with licenses; [ gpl2Only ];
     maintainers = with maintainers; [ sheepforce markuskowa ];
diff --git a/pkgs/development/libraries/science/chemistry/mmtf-cpp/default.nix b/pkgs/development/libraries/science/chemistry/mmtf-cpp/default.nix
index 6c4061c4c05b9..ef77380396730 100644
--- a/pkgs/development/libraries/science/chemistry/mmtf-cpp/default.nix
+++ b/pkgs/development/libraries/science/chemistry/mmtf-cpp/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation (finalAttrs: {
   buildInputs = [ msgpack ];
 
   meta = with lib; {
-    description = "A library of exchange-correlation functionals with arbitrary-order derivatives";
+    description = "Library of exchange-correlation functionals with arbitrary-order derivatives";
     homepage = "https://github.com/rcsb/mmtf-cpp";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/science/chemistry/mstore/default.nix b/pkgs/development/libraries/science/chemistry/mstore/default.nix
index e187a9a9833f0..c77667a8d71ae 100644
--- a/pkgs/development/libraries/science/chemistry/mstore/default.nix
+++ b/pkgs/development/libraries/science/chemistry/mstore/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mstore";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "grimme-lab";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-dN2BulLS/ENRFVdJIrZRxgBV8S4d5+7BjTCGnhBbf4I=";
+    hash = "sha256-zfrxdrZ1Um52qTRNGJoqZNQuHhK3xM/mKfk0aBLrcjw=";
   };
 
   nativeBuildInputs = [ gfortran meson ninja pkg-config python3 ];
diff --git a/pkgs/development/libraries/science/chemistry/plumed/default.nix b/pkgs/development/libraries/science/chemistry/plumed/default.nix
index b825c8270d628..b70d2146b2da1 100644
--- a/pkgs/development/libraries/science/chemistry/plumed/default.nix
+++ b/pkgs/development/libraries/science/chemistry/plumed/default.nix
@@ -8,13 +8,13 @@ assert !blas.isILP64;
 
 stdenv.mkDerivation rec {
   pname = "plumed";
-  version = "2.9.0";
+  version = "2.9.1";
 
   src = fetchFromGitHub {
     owner = "plumed";
     repo = "plumed2";
     rev = "v${version}";
-    hash = "sha256-yL+59f908IhbxGIylI1ydi1BPZwAapjK/vP4/h5gcHk=";
+    hash = "sha256-68/ajM87ApEXUs4xPIq7Vfmzl7Ms4ck6jnjlIv7woMs=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/science/chemistry/xcfun/default.nix b/pkgs/development/libraries/science/chemistry/xcfun/default.nix
index 0534c7b46b033..cac389333e49c 100644
--- a/pkgs/development/libraries/science/chemistry/xcfun/default.nix
+++ b/pkgs/development/libraries/science/chemistry/xcfun/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ "-DXCFUN_MAX_ORDER=3" ];
 
   meta = with lib; {
-    description = "A library of exchange-correlation functionals with arbitrary-order derivatives";
+    description = "Library of exchange-correlation functionals with arbitrary-order derivatives";
     homepage = "https://github.com/dftlibs/xcfun";
     license = licenses.mpl20;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/science/math/QuadProgpp/default.nix b/pkgs/development/libraries/science/math/QuadProgpp/default.nix
index f67d68d768a0f..dfd33ed603afc 100644
--- a/pkgs/development/libraries/science/math/QuadProgpp/default.nix
+++ b/pkgs/development/libraries/science/math/QuadProgpp/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   ];
 
   meta = with lib; {
-    description = "A C++ library for Quadratic Programming";
+    description = "C++ library for Quadratic Programming";
     longDescription = ''
       QuadProg++ is a C++ library for Quadratic Programming which implements
       the Goldfarb-Idnani active-set dual method.
diff --git a/pkgs/development/libraries/science/math/bonmin/default.nix b/pkgs/development/libraries/science/math/bonmin/default.nix
index 2bbd698f7fa7b..272d13b1711ec 100644
--- a/pkgs/development/libraries/science/math/bonmin/default.nix
+++ b/pkgs/development/libraries/science/math/bonmin/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An open-source code for solving general MINLP (Mixed Integer NonLinear Programming) problems";
+    description = "Open-source code for solving general MINLP (Mixed Integer NonLinear Programming) problems";
     mainProgram = "bonmin";
     homepage = "https://github.com/coin-or/Bonmin";
     license = licenses.epl10;
diff --git a/pkgs/development/libraries/science/math/cholmod-extra/default.nix b/pkgs/development/libraries/science/math/cholmod-extra/default.nix
index 311ffefcfaad5..88053a41af69e 100644
--- a/pkgs/development/libraries/science/math/cholmod-extra/default.nix
+++ b/pkgs/development/libraries/science/math/cholmod-extra/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/jluttine/cholmod-extra";
-    description = "A set of additional routines for SuiteSparse CHOLMOD Module";
+    description = "Set of additional routines for SuiteSparse CHOLMOD Module";
     license = with licenses; [ gpl2Plus ];
     maintainers = with maintainers; [ jluttine ];
     platforms = with platforms; unix;
diff --git a/pkgs/development/libraries/science/math/clblas/default.nix b/pkgs/development/libraries/science/math/clblas/default.nix
index dfa157d05d655..e5ad0e3e63d9c 100644
--- a/pkgs/development/libraries/science/math/clblas/default.nix
+++ b/pkgs/development/libraries/science/math/clblas/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/clMathLibraries/clBLAS";
-    description = "A software library containing BLAS functions written in OpenCL";
+    description = "Software library containing BLAS functions written in OpenCL";
     longDescription = ''
       This package contains a library of BLAS functions on top of OpenCL.
     '';
diff --git a/pkgs/development/libraries/science/math/clblast/default.nix b/pkgs/development/libraries/science/math/clblast/default.nix
index e4bbd09a7586b..a7c8d8faee4c0 100644
--- a/pkgs/development/libraries/science/math/clblast/default.nix
+++ b/pkgs/development/libraries/science/math/clblast/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "The tuned OpenCL BLAS library";
+    description = "Tuned OpenCL BLAS library";
     homepage = "https://github.com/CNugteren/CLBlast";
     license = licenses.asl20;
     maintainers = with maintainers; [ Tungsten842 ];
diff --git a/pkgs/development/libraries/science/math/ecos/default.nix b/pkgs/development/libraries/science/math/ecos/default.nix
index b60bd1fe76c11..73874641e477e 100644
--- a/pkgs/development/libraries/science/math/ecos/default.nix
+++ b/pkgs/development/libraries/science/math/ecos/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A lightweight conic solver for second-order cone programming";
+    description = "Lightweight conic solver for second-order cone programming";
     homepage = "https://www.embotech.com/ECOS";
     downloadPage = "https://github.com/embotech/ecos/releases";
     license = licenses.gpl3;
diff --git a/pkgs/development/libraries/science/math/faiss/default.nix b/pkgs/development/libraries/science/math/faiss/default.nix
index 25d6542f8da1b..59494fadfd900 100644
--- a/pkgs/development/libraries/science/math/faiss/default.nix
+++ b/pkgs/development/libraries/science/math/faiss/default.nix
@@ -97,20 +97,21 @@ stdenv.mkDerivation {
     "-DCUDAToolkit_INCLUDE_DIR=${cudaJoined}/include"
   ];
 
+  buildFlags = [
+    "faiss"
+    "demo_ivfpq_indexing"
+  ] ++ lib.optionals pythonSupport [
+    "swigfaiss"
+  ];
 
   # pip wheel->pip install commands copied over from opencv4
 
-  buildPhase = ''
-    make -j faiss
-    make demo_ivfpq_indexing
-  '' + lib.optionalString pythonSupport ''
-    make -j swigfaiss
+  postBuild = lib.optionalString pythonSupport ''
     (cd faiss/python &&
      python -m pip wheel --verbose --no-index --no-deps --no-clean --no-build-isolation --wheel-dir dist .)
   '';
 
-  installPhase = ''
-    make install
+  postInstall = ''
     mkdir -p $demos/bin
     cp ./demos/demo_ivfpq_indexing $demos/bin/
   '' + lib.optionalString pythonSupport ''
@@ -118,7 +119,7 @@ stdenv.mkDerivation {
     (cd faiss/python && python -m pip install dist/*.whl --no-index --no-warn-script-location --prefix="$out" --no-cache)
   '';
 
-  fixupPhase = lib.optionalString (pythonSupport && cudaSupport) ''
+  postFixup = lib.optionalString (pythonSupport && cudaSupport) ''
     addOpenGLRunpath $out/${pythonPackages.python.sitePackages}/faiss/*.so
     addOpenGLRunpath $demos/bin/*
   '';
@@ -144,7 +145,7 @@ stdenv.mkDerivation {
   };
 
   meta = with lib; {
-    description = "A library for efficient similarity search and clustering of dense vectors by Facebook Research";
+    description = "Library for efficient similarity search and clustering of dense vectors by Facebook Research";
     mainProgram = "demo_ivfpq_indexing";
     homepage = "https://github.com/facebookresearch/faiss";
     license = licenses.mit;
diff --git a/pkgs/development/libraries/science/math/ipopt/default.nix b/pkgs/development/libraries/science/math/ipopt/default.nix
index 286a630f4b411..ac04711ff71f8 100644
--- a/pkgs/development/libraries/science/math/ipopt/default.nix
+++ b/pkgs/development/libraries/science/math/ipopt/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A software package for large-scale nonlinear optimization";
+    description = "Software package for large-scale nonlinear optimization";
     homepage = "https://projects.coin-or.org/Ipopt";
     license = licenses.epl10;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/science/math/lcalc/default.nix b/pkgs/development/libraries/science/math/lcalc/default.nix
index f6603f7d8fb82..ebab7c00809ad 100644
--- a/pkgs/development/libraries/science/math/lcalc/default.nix
+++ b/pkgs/development/libraries/science/math/lcalc/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.com/sagemath/lcalc";
-    description = "A program for calculating with L-functions";
+    description = "Program for calculating with L-functions";
     mainProgram = "lcalc";
     license = with licenses; [ gpl2 ];
     maintainers = teams.sage.members;
diff --git a/pkgs/development/libraries/science/math/libamplsolver/default.nix b/pkgs/development/libraries/science/math/libamplsolver/default.nix
index a40091bac8b50..f74808462ae1d 100644
--- a/pkgs/development/libraries/science/math/libamplsolver/default.nix
+++ b/pkgs/development/libraries/science/math/libamplsolver/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, substitute, fetchurl, fetchpatch }:
+{ lib, stdenv, substitute, fetchurl }:
 
 stdenv.mkDerivation rec {
   pname = "libamplsolver";
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A library of routines that help solvers work with AMPL";
+    description = "Library of routines that help solvers work with AMPL";
     homepage = "https://ampl.com/netlib/ampl/";
     license = [ licenses.mit ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/science/math/libtorch/test/default.nix b/pkgs/development/libraries/science/math/libtorch/test/default.nix
index a7940cd1db8d7..a4b8c2f79140d 100644
--- a/pkgs/development/libraries/science/math/libtorch/test/default.nix
+++ b/pkgs/development/libraries/science/math/libtorch/test/default.nix
@@ -27,7 +27,13 @@ in stdenv.mkDerivation {
   pname = "libtorch-test";
   version = libtorch-bin.version;
 
-  src = ./.;
+  src = lib.fileset.toSource {
+    root = ./.;
+    fileset = lib.fileset.unions [
+      ./CMakeLists.txt
+      ./test.cpp
+    ];
+  };
 
   nativeBuildInputs = [ cmake ];
 
diff --git a/pkgs/development/libraries/science/math/openspecfun/default.nix b/pkgs/development/libraries/science/math/openspecfun/default.nix
index 53a613522bb05..4084aa83a20a4 100644
--- a/pkgs/development/libraries/science/math/openspecfun/default.nix
+++ b/pkgs/development/libraries/science/math/openspecfun/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ gfortran ];
 
   meta = {
-    description = "A collection of special mathematical functions";
+    description = "Collection of special mathematical functions";
     homepage = "https://github.com/JuliaLang/openspecfun";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.ttuegel ];
diff --git a/pkgs/development/libraries/science/math/or-tools/default.nix b/pkgs/development/libraries/science/math/or-tools/default.nix
index 1b17f95761752..acb0ece75463c 100644
--- a/pkgs/development/libraries/science/math/or-tools/default.nix
+++ b/pkgs/development/libraries/science/math/or-tools/default.nix
@@ -2,6 +2,7 @@
 , bzip2
 , cbc
 , cmake
+, DarwinTools # sw_vers
 , eigen
 , ensureNewerSourcesForZipFilesHook
 , fetchFromGitHub
@@ -72,6 +73,8 @@ stdenv.mkDerivation rec {
     python.pythonOnBuildForHost
     swig4
     unzip
+  ] ++ lib.optionals stdenv.isDarwin [
+    DarwinTools
   ] ++ (with python.pythonOnBuildForHost.pkgs; [
     pip
     mypy-protobuf
diff --git a/pkgs/development/libraries/science/math/osi/default.nix b/pkgs/development/libraries/science/math/osi/default.nix
index 485c5322cacd9..45d5fc5b1f9b5 100644
--- a/pkgs/development/libraries/science/math/osi/default.nix
+++ b/pkgs/development/libraries/science/math/osi/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   passthru = { inherit withGurobi withCplex; };
 
   meta = with lib; {
-    description = "An abstract base class to a generic linear programming (LP) solver";
+    description = "Abstract base class to a generic linear programming (LP) solver";
     homepage = "https://github.com/coin-or/Osi";
     license = licenses.epl20;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/science/math/osqp/default.nix b/pkgs/development/libraries/science/math/osqp/default.nix
index bf22e1d74d931..d308302e2c9f3 100644
--- a/pkgs/development/libraries/science/math/osqp/default.nix
+++ b/pkgs/development/libraries/science/math/osqp/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
-    description = "A quadratic programming solver using operator splitting";
+    description = "Quadratic programming solver using operator splitting";
     homepage = "https://osqp.org";
     license = licenses.asl20;
     maintainers = with maintainers; [ taktoa ];
diff --git a/pkgs/development/libraries/science/math/parmetis/default.nix b/pkgs/development/libraries/science/math/parmetis/default.nix
index db70bf8dd7a4b..5023390a182cb 100644
--- a/pkgs/development/libraries/science/math/parmetis/default.nix
+++ b/pkgs/development/libraries/science/math/parmetis/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs, meshes, and for computing fill-reducing orderings of sparse matrices";
+    description = "MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs, meshes, and for computing fill-reducing orderings of sparse matrices";
     homepage = "http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview";
     platforms = platforms.all;
     license = licenses.unfree;
diff --git a/pkgs/development/libraries/science/math/planarity/default.nix b/pkgs/development/libraries/science/math/planarity/default.nix
index 196ee5de576b9..21791267e1aec 100644
--- a/pkgs/development/libraries/science/math/planarity/default.nix
+++ b/pkgs/development/libraries/science/math/planarity/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/graph-algorithms/edge-addition-planarity-suite";
-    description = "A library for implementing graph algorithms";
+    description = "Library for implementing graph algorithms";
     mainProgram = "planarity";
     license = licenses.bsd3;
     maintainers = teams.sage.members;
diff --git a/pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix b/pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix
index 84949e0a53447..6ace83fd043d9 100644
--- a/pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix
+++ b/pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "suitesparse-graphblas";
-  version = "9.1.0";
+  version = "9.2.0";
 
   outputs = [ "out" "dev" ];
 
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     owner = "DrTimothyAldenDavis";
     repo = "GraphBLAS";
     rev = "v${version}";
-    hash = "sha256-YK0REOqoNa55tQt6NH/0QQ07pzAImDR5kC00sbFILH8=";
+    hash = "sha256-UtJ5AXbmoUA1NokgXDUDnhCZzOT1bTen6C89bsCWEIo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/science/math/suitesparse/4.2.nix b/pkgs/development/libraries/science/math/suitesparse/4.2.nix
index b8ce3eca888ca..c87bc4d31a8c2 100644
--- a/pkgs/development/libraries/science/math/suitesparse/4.2.nix
+++ b/pkgs/development/libraries/science/math/suitesparse/4.2.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://faculty.cse.tamu.edu/davis/suitesparse.html";
-    description = "A suite of sparse matrix algorithms";
+    description = "Suite of sparse matrix algorithms";
     license = with licenses; [ bsd2 gpl2Plus lgpl21Plus ];
     maintainers = with maintainers; [ ttuegel ];
     platforms = with platforms; unix;
diff --git a/pkgs/development/libraries/science/math/suitesparse/4.4.nix b/pkgs/development/libraries/science/math/suitesparse/4.4.nix
index cbc24b1546565..f47b5c0ce818f 100644
--- a/pkgs/development/libraries/science/math/suitesparse/4.4.nix
+++ b/pkgs/development/libraries/science/math/suitesparse/4.4.nix
@@ -91,7 +91,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://faculty.cse.tamu.edu/davis/suitesparse.html";
-    description = "A suite of sparse matrix algorithms";
+    description = "Suite of sparse matrix algorithms";
     license = with licenses; [ bsd2 gpl2Plus lgpl21Plus ];
     maintainers = with maintainers; [ ttuegel ];
     platforms = with platforms; unix;
diff --git a/pkgs/development/libraries/science/math/suitesparse/default.nix b/pkgs/development/libraries/science/math/suitesparse/default.nix
index 9561cf2ed7795..fcfd9b56a1b14 100644
--- a/pkgs/development/libraries/science/math/suitesparse/default.nix
+++ b/pkgs/development/libraries/science/math/suitesparse/default.nix
@@ -86,7 +86,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://faculty.cse.tamu.edu/davis/suitesparse.html";
-    description = "A suite of sparse matrix algorithms";
+    description = "Suite of sparse matrix algorithms";
     license = with licenses; [ bsd2 gpl2Plus lgpl21Plus ];
     maintainers = with maintainers; [ ttuegel ];
     platforms = with platforms; unix;
diff --git a/pkgs/development/libraries/science/math/superlu/default.nix b/pkgs/development/libraries/science/math/superlu/default.nix
index f99e86ffe478c..4f52c2d6c507a 100644
--- a/pkgs/development/libraries/science/math/superlu/default.nix
+++ b/pkgs/development/libraries/science/math/superlu/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/";
     license = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/License.txt";
-    description = "A library for the solution of large, sparse, nonsymmetric systems of linear equations";
+    description = "Library for the solution of large, sparse, nonsymmetric systems of linear equations";
     platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/science/math/sympow/clean-extra-logfile-output-from-pari.patch b/pkgs/development/libraries/science/math/sympow/clean-extra-logfile-output-from-pari.patch
index cbcf18b4cdb23..97c0a7dad3005 100644
--- a/pkgs/development/libraries/science/math/sympow/clean-extra-logfile-output-from-pari.patch
+++ b/pkgs/development/libraries/science/math/sympow/clean-extra-logfile-output-from-pari.patch
@@ -13,18 +13,18 @@ Date:   Tue Mar 2 22:07:11 2021 -0300
     mechanism already in sympow to trim this new message.
 
 diff --git a/Configure b/Configure
-index 1ef9756..776bec2 100755
+index 53b556e..53999ae 100755
 --- a/Configure
 +++ b/Configure
 @@ -322,7 +322,7 @@ echo "datafiles/param_data: \$(OTHERb)" >> $FILE
  echo "	\$(MKDIR) -p datafiles" >> $FILE
  echo "	\$(TOUCH) datafiles/param_data" >> $FILE
  echo "	\$(SH) armd.sh" >> $FILE
--echo "	\$(SED) -i -e '/logfile =/d' datafiles/*.txt" >> $FILE
+-echo "	\$(SED) -i -e '/logfile =/d'  datafiles/*.txt" >> $FILE
 +echo "	\$(SED) -i -e '/logfile /d' datafiles/*.txt" >> $FILE
+ echo "	\$(SED) -i -e '/logfile is/d' datafiles/*.txt" >> $FILE
  echo "sympow.1: sympow" >> $FILE
  echo "	\$(HELP2MAN) \$(H2MFLAGS) -s 1 -n \"SYMPOW program\" -I sympow.h2m -o \$@ ./\$<" >> $FILE
- echo "clean:" >> $FILE
 diff --git a/generate.c b/generate.c
 index dbb811f..783320c 100644
 --- a/generate.c
diff --git a/pkgs/development/libraries/science/math/sympow/default.nix b/pkgs/development/libraries/science/math/sympow/default.nix
index 1033f26f43603..91daf30686f8f 100644
--- a/pkgs/development/libraries/science/math/sympow/default.nix
+++ b/pkgs/development/libraries/science/math/sympow/default.nix
@@ -1,16 +1,17 @@
-{ lib, stdenv
-, fetchFromGitLab
-, fetchpatch
-, makeWrapper
-, which
-, autoconf
-, help2man
-, file
-, pari
+{
+  lib,
+  stdenv,
+  fetchFromGitLab,
+  makeWrapper,
+  which,
+  autoconf,
+  help2man,
+  file,
+  pari,
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.023.6";
+  version = "2.023.7";
   pname = "sympow";
 
   src = fetchFromGitLab {
@@ -18,17 +19,10 @@ stdenv.mkDerivation rec {
     owner = "forks";
     repo = "sympow";
     rev = "v${version}";
-    sha256 = "132l0xv00ld1svvv9wh99wfra4zzjv2885h2sq0dsl98wiyvi5zl";
+    hash = "sha256-sex8gRiBdTcVMV3nSeiTYamAjPoXQdiiZwjRmeKA+mc=";
   };
 
-  patches = [
-    ./clean-extra-logfile-output-from-pari.patch
-    (fetchpatch {
-      name = "null-terminate-dupdirname.patch";
-      url = "https://gitlab.com/rezozer/forks/sympow/-/merge_requests/5.diff";
-      sha256 = "sha256-yKjio+qN9teL8L+mb7WOBN/iv545vRIxW20FJU37oO4=";
-    })
-  ];
+  patches = [ ./clean-extra-logfile-output-from-pari.patch ];
 
   postUnpack = ''
     patchShebangs .
@@ -66,12 +60,11 @@ stdenv.mkDerivation rec {
   # Example from the README as a sanity check.
   doInstallCheck = true;
   installCheckPhase = ''
-    export HOME="$TMP/home"
-    mkdir -p "$HOME"
+    export HOME=$TMPDIR
     "$out/bin/sympow" -sp 2p16 -curve "[1,2,3,4,5]" | grep '8.3705'
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Compute special values of symmetric power elliptic curve L-functions";
     mainProgram = "sympow";
     license = {
@@ -79,7 +72,7 @@ stdenv.mkDerivation rec {
       fullName = "Custom, BSD-like. See COPYING file.";
       free = true;
     };
-    maintainers = teams.sage.members;
-    platforms = platforms.linux;
+    maintainers = lib.teams.sage.members;
+    platforms = lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/science/math/tensorflow-lite/default.nix b/pkgs/development/libraries/science/math/tensorflow-lite/default.nix
index 1bee7f46d37ca..4ecd08d103fac 100644
--- a/pkgs/development/libraries/science/math/tensorflow-lite/default.nix
+++ b/pkgs/development/libraries/science/math/tensorflow-lite/default.nix
@@ -99,7 +99,7 @@ buildBazelPackage rec {
   configurePlatforms = [];
 
   meta = with lib; {
-    description = "An open source deep learning framework for on-device inference.";
+    description = "Open source deep learning framework for on-device inference";
     homepage = "https://www.tensorflow.org/lite";
     license = licenses.asl20;
     maintainers = with maintainers; [ mschwaig cpcloud ];
diff --git a/pkgs/development/libraries/science/math/zn_poly/default.nix b/pkgs/development/libraries/science/math/zn_poly/default.nix
index bdaf6e6284ef1..1c61bb07471be 100644
--- a/pkgs/development/libraries/science/math/zn_poly/default.nix
+++ b/pkgs/development/libraries/science/math/zn_poly/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitLab
-, fetchpatch
 , gmp
 , python3
 , tune ? false # tune to hardware, impure
diff --git a/pkgs/development/libraries/science/networking/ns-3/default.nix b/pkgs/development/libraries/science/networking/ns-3/default.nix
index fa6e5e48f8462..6e63520031c14 100644
--- a/pkgs/development/libraries/science/networking/ns-3/default.nix
+++ b/pkgs/development/libraries/science/networking/ns-3/default.nix
@@ -1,5 +1,4 @@
 { stdenv
-, breakpointHook
 , fetchFromGitLab
 , python
 , libxml2
@@ -79,7 +78,7 @@ stdenv.mkDerivation rec {
     sqlite.dev
     gsl
     boost
-    root
+    root # provides cppyy
     glib.out
     glib.dev
     libpcap
@@ -134,7 +133,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.nsnam.org";
     license = licenses.gpl3;
-    description = "A discrete time event network simulator";
+    description = "Discrete time event network simulator";
     platforms = with platforms; unix;
     maintainers = with maintainers; [ teto rgrunbla ];
     # never built on aarch64-darwin since first introduction in nixpkgs
diff --git a/pkgs/development/libraries/science/robotics/edgetpu-compiler/default.nix b/pkgs/development/libraries/science/robotics/edgetpu-compiler/default.nix
index 07d978641663d..dbb62fd24f061 100644
--- a/pkgs/development/libraries/science/robotics/edgetpu-compiler/default.nix
+++ b/pkgs/development/libraries/science/robotics/edgetpu-compiler/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A command line tool that compiles a TensorFlow Lite model into an Edge TPU compatible file.";
+    description = "Command line tool that compiles a TensorFlow Lite model into an Edge TPU compatible file";
     mainProgram = "edgetpu_compiler";
     homepage = "https://coral.ai/docs/edgetpu/compiler";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/development/libraries/scope-lite/default.nix b/pkgs/development/libraries/scope-lite/default.nix
index 40cad6a5fc3c7..37cf8d12fd00e 100644
--- a/pkgs/development/libraries/scope-lite/default.nix
+++ b/pkgs/development/libraries/scope-lite/default.nix
@@ -13,7 +13,7 @@ in stdenv.mkDerivation {
   nativeBuildInputs = [ cmake ];
 
   meta = {
-    description = "A migration path to C++ library extensions scope_exit, scope_fail, scope_success, unique_resource";
+    description = "Migration path to C++ library extensions scope_exit, scope_fail, scope_success, unique_resource";
     license = lib.licenses.boost;
     maintainers = [ lib.maintainers.shlevy ];
     homepage = "https://github.com/martinmoene/scope-lite";
diff --git a/pkgs/development/libraries/scriptaculous/default.nix b/pkgs/development/libraries/scriptaculous/default.nix
index e3c8ea00f4467..50171324b386e 100644
--- a/pkgs/development/libraries/scriptaculous/default.nix
+++ b/pkgs/development/libraries/scriptaculous/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A set of JavaScript libraries to enhance the user interface of web sites";
+    description = "Set of JavaScript libraries to enhance the user interface of web sites";
     longDescription = ''
       script.aculo.us provides you with
       easy-to-use, cross-browser user
diff --git a/pkgs/development/libraries/sentry-native/default.nix b/pkgs/development/libraries/sentry-native/default.nix
index ec95184707d02..38ebc3f42a096 100644
--- a/pkgs/development/libraries/sentry-native/default.nix
+++ b/pkgs/development/libraries/sentry-native/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sentry-native";
-  version = "0.7.2";
+  version = "0.7.6";
 
   src = fetchFromGitHub {
     owner = "getsentry";
     repo = "sentry-native";
     rev = version;
-    hash = "sha256-0yFRDQ/f0oVbpZ4wev28xCTVkbXr58Tt0Czda3ppRWk=";
+    hash = "sha256-yriFV6OLk+miaKKWQKd08MmwDx0blkiiyq6gQHUaNWE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/serd/default.nix b/pkgs/development/libraries/serd/default.nix
index 8bb82d4809431..707a77006acbe 100644
--- a/pkgs/development/libraries/serd/default.nix
+++ b/pkgs/development/libraries/serd/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A lightweight C library for RDF syntax which supports reading and writing Turtle and NTriples";
+    description = "Lightweight C library for RDF syntax which supports reading and writing Turtle and NTriples";
     homepage = "https://drobilla.net/software/serd";
     license = licenses.mit;
     maintainers = [ maintainers.goibhniu ];
diff --git a/pkgs/development/libraries/shhmsg/default.nix b/pkgs/development/libraries/shhmsg/default.nix
index 901ee48adeceb..ad6a40716bcdd 100644
--- a/pkgs/development/libraries/shhmsg/default.nix
+++ b/pkgs/development/libraries/shhmsg/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   installFlags = [ "INSTBASEDIR=$(out)" ];
 
   meta = with lib; {
-    description = "A library for displaying messages";
+    description = "Library for displaying messages";
     homepage = "https://shh.thathost.com/pub-unix/";
     license = licenses.artistic1;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/shhopt/default.nix b/pkgs/development/libraries/shhopt/default.nix
index 664d4f3330a05..324cb8203484b 100644
--- a/pkgs/development/libraries/shhopt/default.nix
+++ b/pkgs/development/libraries/shhopt/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   installFlags = [ "INSTBASEDIR=$(out)" ];
 
   meta = with lib; {
-    description = "A library for parsing command line options";
+    description = "Library for parsing command line options";
     homepage = "https://shh.thathost.com/pub-unix/";
     license = licenses.artistic1;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/sigslot/default.nix b/pkgs/development/libraries/sigslot/default.nix
index 8bc51fdd9ec50..8a97ab9d32e9a 100644
--- a/pkgs/development/libraries/sigslot/default.nix
+++ b/pkgs/development/libraries/sigslot/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   dontBuild = true;
 
   meta = with lib; {
-    description = "A header-only, thread safe implementation of signal-slots for C++";
+    description = "Header-only, thread safe implementation of signal-slots for C++";
     license = licenses.mit;
     homepage = "https://github.com/palacaze/sigslot";
     maintainers = with maintainers; [ azahi ];
diff --git a/pkgs/development/libraries/silgraphite/graphite2.nix b/pkgs/development/libraries/silgraphite/graphite2.nix
index 03926aebbceaa..60a4af6d0a730 100644
--- a/pkgs/development/libraries/silgraphite/graphite2.nix
+++ b/pkgs/development/libraries/silgraphite/graphite2.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "An advanced font engine";
+    description = "Advanced font engine";
     homepage = "https://graphite.sil.org/";
     license = licenses.lgpl21;
     maintainers = [ maintainers.raskin ];
diff --git a/pkgs/development/libraries/simdjson/default.nix b/pkgs/development/libraries/simdjson/default.nix
index 410ef47b1bc3d..4d15113f3c9af 100644
--- a/pkgs/development/libraries/simdjson/default.nix
+++ b/pkgs/development/libraries/simdjson/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "simdjson";
-  version = "3.9.2";
+  version = "3.9.4";
 
   src = fetchFromGitHub {
     owner = "simdjson";
     repo = "simdjson";
     rev = "v${version}";
-    sha256 = "sha256-7YW0ylYQMi6D7YyRQGWRv980skjZ2t//QoZb8rRDHGk=";
+    sha256 = "sha256-iTlIdLNOr1rRBnCwnI34e2RLL18Fmc/kRSMdZcOLp98=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/slang/default.nix b/pkgs/development/libraries/slang/default.nix
index ab1d9ef50c44d..162bc8395d998 100644
--- a/pkgs/development/libraries/slang/default.nix
+++ b/pkgs/development/libraries/slang/default.nix
@@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A small, embeddable multi-platform programming library";
+    description = "Small, embeddable multi-platform programming library";
     longDescription = ''
       S-Lang is an interpreted language that was designed from the start to be
       easily embedded into a program to provide it with a powerful extension
diff --git a/pkgs/development/libraries/slib/default.nix b/pkgs/development/libraries/slib/default.nix
index c3c5965816f4f..84b21e2c4fa9c 100644
--- a/pkgs/development/libraries/slib/default.nix
+++ b/pkgs/development/libraries/slib/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   setupHook = ./setup-hook.sh;
 
   meta = {
-    description = "The SLIB Portable Scheme Library";
+    description = "SLIB Portable Scheme Library";
     mainProgram = "slib";
 
     longDescription = ''
diff --git a/pkgs/development/libraries/smooth/default.nix b/pkgs/development/libraries/smooth/default.nix
index 402500dc9528d..3cb227b12d3fe 100644
--- a/pkgs/development/libraries/smooth/default.nix
+++ b/pkgs/development/libraries/smooth/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "The smooth Class Library";
+    description = "Smooth Class Library";
     mainProgram = "smooth-translator";
     license = licenses.artistic2;
     homepage = "http://www.smooth-project.org/";
diff --git a/pkgs/development/libraries/snap7/default.nix b/pkgs/development/libraries/snap7/default.nix
index f83ee00d04fd1..39cdf6d2b45e2 100644
--- a/pkgs/development/libraries/snap7/default.nix
+++ b/pkgs/development/libraries/snap7/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, fetchzip, p7zip }:
+{ stdenv, lib, fetchzip, p7zip }:
 
 stdenv.mkDerivation rec {
   pname = "snap7";
diff --git a/pkgs/development/libraries/soci/bc-soci.nix b/pkgs/development/libraries/soci/bc-soci.nix
index d728d61a8f57e..a3c967d80fe40 100644
--- a/pkgs/development/libraries/soci/bc-soci.nix
+++ b/pkgs/development/libraries/soci/bc-soci.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "Database access library for C++. Belledonne Communications' fork for Linphone.";
+    description = "Database access library for C++. Belledonne Communications' fork for Linphone";
     homepage = "https://gitlab.linphone.org/BC/public/external/soci";
     license = licenses.boost;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/socket_wrapper/default.nix b/pkgs/development/libraries/socket_wrapper/default.nix
index 0a7f5ac91eaa9..d73c521997a08 100644
--- a/pkgs/development/libraries/socket_wrapper/default.nix
+++ b/pkgs/development/libraries/socket_wrapper/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkg-config ];
 
   meta = with lib; {
-    description = "A library passing all socket communications through unix sockets";
+    description = "Library passing all socket communications through unix sockets";
     homepage = "https://git.samba.org/?p=socket_wrapper.git;a=summary;";
     license = licenses.bsd3;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/sope/default.nix b/pkgs/development/libraries/sope/default.nix
index fb77eebce1e9c..f8f1af00fe66b 100644
--- a/pkgs/development/libraries/sope/default.nix
+++ b/pkgs/development/libraries/sope/default.nix
@@ -55,7 +55,7 @@ gnustep.stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An extensive set of frameworks which form a complete Web application server environment";
+    description = "Extensive set of frameworks which form a complete Web application server environment";
     license = licenses.publicDomain;
     homepage = "https://github.com/inverse-inc/sope";
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/sord/default.nix b/pkgs/development/libraries/sord/default.nix
index 6ce3ca60c0f59..b04e1fbbf001f 100644
--- a/pkgs/development/libraries/sord/default.nix
+++ b/pkgs/development/libraries/sord/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://drobilla.net/software/sord";
-    description = "A lightweight C library for storing RDF data in memory";
+    description = "Lightweight C library for storing RDF data in memory";
     license = with licenses; [ bsd0 isc ];
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/soundtouch/default.nix b/pkgs/development/libraries/soundtouch/default.nix
index 2778f7ff6f7cd..40179b269efd9 100644
--- a/pkgs/development/libraries/soundtouch/default.nix
+++ b/pkgs/development/libraries/soundtouch/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A program and library for changing the tempo, pitch and playback rate of audio";
+    description = "Program and library for changing the tempo, pitch and playback rate of audio";
     homepage = "https://www.surina.net/soundtouch/";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ orivej ];
diff --git a/pkgs/development/libraries/soxt/default.nix b/pkgs/development/libraries/soxt/default.nix
index 4e155f496ec26..021554c3a1205 100644
--- a/pkgs/development/libraries/soxt/default.nix
+++ b/pkgs/development/libraries/soxt/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://bitbucket.org/Coin3D/coin/wiki/Home";
     license = licenses.bsd3;
-    description = "A GUI binding for using Open Inventor with Xt/Motif";
+    description = "GUI binding for using Open Inventor with Xt/Motif";
     maintainers = with maintainers; [ tmplt ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/development/libraries/span-lite/default.nix b/pkgs/development/libraries/span-lite/default.nix
index 724870e0751cc..d0a3cd15e7bba 100644
--- a/pkgs/development/libraries/span-lite/default.nix
+++ b/pkgs/development/libraries/span-lite/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    description = "A C++20-like span for C++98, C++11 and later in a single-file header-only library";
+    description = "C++20-like span for C++98, C++11 and later in a single-file header-only library";
     homepage = "https://github.com/martinmoene/span-lite";
     license = lib.licenses.bsd1;
     maintainers = with lib.maintainers; [ icewind1991 ];
diff --git a/pkgs/development/libraries/spandsp/3.nix b/pkgs/development/libraries/spandsp/3.nix
index 9e916273809f0..772388405c49f 100644
--- a/pkgs/development/libraries/spandsp/3.nix
+++ b/pkgs/development/libraries/spandsp/3.nix
@@ -1,11 +1,4 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, audiofile
-, libtiff
-, autoreconfHook
-, fetchpatch
-, buildPackages
+{ fetchFromGitHub
 , callPackage
 }:
 
diff --git a/pkgs/development/libraries/spandsp/common.nix b/pkgs/development/libraries/spandsp/common.nix
index 0701bf74d2c6e..61439924b749d 100644
--- a/pkgs/development/libraries/spandsp/common.nix
+++ b/pkgs/development/libraries/spandsp/common.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
   strictDeps = true;
 
   meta = {
-    description = "A portable and modular SIP User-Agent with audio and video support";
+    description = "Portable and modular SIP User-Agent with audio and video support";
     homepage = "https://github.com/freeswitch/spandsp";
     platforms = with lib.platforms; unix;
     maintainers = with lib.maintainers; [ misuzu ];
diff --git a/pkgs/development/libraries/spandsp/default.nix b/pkgs/development/libraries/spandsp/default.nix
index cf5e53c3f9117..38e250ddef907 100644
--- a/pkgs/development/libraries/spandsp/default.nix
+++ b/pkgs/development/libraries/spandsp/default.nix
@@ -1,11 +1,4 @@
-{ lib
-, stdenv
-, fetchurl
-, audiofile
-, libtiff
-, buildPackages
-, fetchpatch
-, autoreconfHook
+{ fetchurl
 , callPackage
 }:
 
diff --git a/pkgs/development/libraries/sparsehash/default.nix b/pkgs/development/libraries/sparsehash/default.nix
index 35208d021b83a..813024623a1a7 100644
--- a/pkgs/development/libraries/sparsehash/default.nix
+++ b/pkgs/development/libraries/sparsehash/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/sparsehash/sparsehash";
-    description = "An extremely memory-efficient hash_map implementation";
+    description = "Extremely memory-efficient hash_map implementation";
     platforms = platforms.all;
     license = licenses.bsd3;
     maintainers = with maintainers; [ pSub ];
diff --git a/pkgs/development/libraries/spdk/0001-fix-setuptools-installation.patch b/pkgs/development/libraries/spdk/0001-fix-setuptools-installation.patch
deleted file mode 100644
index 3c3fb50fc1525..0000000000000
--- a/pkgs/development/libraries/spdk/0001-fix-setuptools-installation.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 3f718fc1873c9c138684ea019e9bd42c9b24506c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
-Date: Tue, 28 Nov 2023 11:28:11 +0100
-Subject: [PATCH] fix setuptools installation
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
----
- python/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/python/Makefile b/python/Makefile
-index f835daa..b41995a 100644
---- a/python/Makefile
-+++ b/python/Makefile
-@@ -12,7 +12,7 @@ setup_cmd += --root $(DESTDIR)
- endif
- 
- ifneq ($(CONFIG_PYDIR),)
--setup_cmd += --install-purelib $(CONFIG_PYDIR)
-+setup_cmd += --root / --prefix $(CONFIG_PYDIR)
- purelibdir := $(CONFIG_PYDIR)
- else
- purelibdir := $(shell python3 -c "import sysconfig; print(sysconfig.get_paths()['purelib'])")
--- 
-2.42.0
-
diff --git a/pkgs/development/libraries/spdk/default.nix b/pkgs/development/libraries/spdk/default.nix
index 46ee5600a4daf..4541042ed5c5f 100644
--- a/pkgs/development/libraries/spdk/default.nix
+++ b/pkgs/development/libraries/spdk/default.nix
@@ -4,6 +4,7 @@
 , python3
 , cunit
 , dpdk
+, fuse3
 , libaio
 , libbsd
 , libuuid
@@ -22,19 +23,22 @@
 stdenv.mkDerivation rec {
   pname = "spdk";
 
-  version = "23.09";
+  version = "24.05";
 
   src = fetchFromGitHub {
     owner = "spdk";
     repo = "spdk";
     rev = "v${version}";
-    sha256 = "sha256-P10NDa+MIEY8B3bu34Dq2keyuv2a24XV5Wf+Ah701b8=";
+    sha256 = "sha256-kjZWaarvNSYXseJ/uH7Ak7DbWEgrLnAwXcL8byJ9fjU=";
     fetchSubmodules = true;
   };
 
   nativeBuildInputs = [
     python3
+    python3.pkgs.pip
     python3.pkgs.setuptools
+    python3.pkgs.wheel
+    python3.pkgs.wrapPython
     pkg-config
     ensureNewerSourcesForZipFilesHook
   ];
@@ -42,6 +46,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     cunit
     dpdk
+    fuse3
     jansson
     libaio
     libbsd
@@ -56,10 +61,8 @@ stdenv.mkDerivation rec {
     zstd
   ];
 
-  patches = [
-    # https://review.spdk.io/gerrit/c/spdk/spdk/+/20394
-    ./setuptools.patch
-    ./0001-fix-setuptools-installation.patch
+  propagatedBuildInputs = [
+    python3.pkgs.configshell
   ];
 
   postPatch = ''
@@ -70,13 +73,16 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--with-dpdk=${dpdk}"
-    "--pydir=${placeholder "out"}"
   ];
 
   postCheck = ''
     python3 -m spdk
   '';
 
+  postFixup = ''
+    wrapPythonPrograms
+  '';
+
   env.NIX_CFLAGS_COMPILE = "-mssse3"; # Necessary to compile.
   # otherwise does not find strncpy when compiling
   env.NIX_LDFLAGS = "-lbsd";
diff --git a/pkgs/development/libraries/spdk/setuptools.patch b/pkgs/development/libraries/spdk/setuptools.patch
deleted file mode 100644
index b3e7644c0076b..0000000000000
--- a/pkgs/development/libraries/spdk/setuptools.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 3a72290ba7e2d71ca887225fc0eb8792ca863be2 Mon Sep 17 00:00:00 2001
-From: Jörg Thalheim <joerg@thalheim.io>
-Date: Tue, 24 Oct 2023 14:30:53 +0200
-Subject: [PATCH] python: drop deprecated distutils
-
-This is scheduled for removal in python 3.12: https://docs.python.org/3/whatsnew/3.12.html
-
-Change-Id: I728dc0cf4ed20f22016d3d58cca8aee3af2bcd8b
-Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
----
-
-diff --git a/python/setup.py b/python/setup.py
-index 47e2104..ae4dff7 100755
---- a/python/setup.py
-+++ b/python/setup.py
-@@ -2,8 +2,7 @@
- # SPDX-License-Identifier: BSD-3-Clause
- # Copyright (C) 2023 Intel Corporation.  All rights reserved.
- 
--from distutils.core import setup
--from setuptools import find_packages
-+from setuptools import setup, find_packages
- from spdk import __version__
- 
- 
diff --git a/pkgs/development/libraries/spectra/default.nix b/pkgs/development/libraries/spectra/default.nix
index 1fc3ccd757653..4e4901d6c73da 100644
--- a/pkgs/development/libraries/spectra/default.nix
+++ b/pkgs/development/libraries/spectra/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://spectralib.org/";
-    description = "A C++ library for large scale eigenvalue problems, built on top of Eigen";
+    description = "C++ library for large scale eigenvalue problems, built on top of Eigen";
     license = licenses.mpl20;
     maintainers = with maintainers; [ vonfry ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/speex/default.nix b/pkgs/development/libraries/speex/default.nix
index cba0e4e76f3f4..9e3f97b034485 100644
--- a/pkgs/development/libraries/speex/default.nix
+++ b/pkgs/development/libraries/speex/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.speex.org/";
-    description = "An Open Source/Free Software patent-free audio compression format designed for speech";
+    description = "Open Source/Free Software patent-free audio compression format designed for speech";
     license = licenses.bsd3;
     platforms = platforms.unix ++ platforms.windows;
   };
diff --git a/pkgs/development/libraries/speexdsp/default.nix b/pkgs/development/libraries/speexdsp/default.nix
index b8f8a3bc7c5f9..0f5e09cf83e54 100644
--- a/pkgs/development/libraries/speexdsp/default.nix
+++ b/pkgs/development/libraries/speexdsp/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.speex.org/";
-    description = "An Open Source/Free Software patent-free audio compression format designed for speech";
+    description = "Open Source/Free Software patent-free audio compression format designed for speech";
     license = licenses.bsd3;
     platforms = platforms.unix ++ platforms.windows;
   };
diff --git a/pkgs/development/libraries/sqlcipher/default.nix b/pkgs/development/libraries/sqlcipher/default.nix
index b3e89ae9548e8..af7848cdf85f2 100644
--- a/pkgs/development/libraries/sqlcipher/default.nix
+++ b/pkgs/development/libraries/sqlcipher/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sqlcipher";
-  version = "4.5.7";
+  version = "4.6.0";
 
   src = fetchFromGitHub {
     owner = "sqlcipher";
     repo = "sqlcipher";
     rev = "v${version}";
-    hash = "sha256-0cPb78CTxrCdDZAY8hyt7Kid5DKszDl1v+6XNKyNrLM=";
+    hash = "sha256-ds+0ckQiHikNMr4Xf/wCWwQySpadGgnccENd6u6gIzQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/sqlite/default.nix b/pkgs/development/libraries/sqlite/default.nix
index fe39cac8a25f8..f7a870e276209 100644
--- a/pkgs/development/libraries/sqlite/default.nix
+++ b/pkgs/development/libraries/sqlite/default.nix
@@ -1,4 +1,5 @@
 { lib, stdenv, fetchurl, zlib, readline, ncurses
+, updateAutotoolsGnuConfigScriptsHook
 
 # for tests
 , python3Packages, sqldiff, sqlite-analyzer, tracker
@@ -27,6 +28,7 @@ stdenv.mkDerivation rec {
   outputs = [ "bin" "dev" "out" ];
   separateDebugInfo = stdenv.isLinux;
 
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
   buildInputs = [ zlib ] ++ lib.optionals interactive [ readline ncurses ];
 
   # required for aarch64 but applied for all arches for simplicity
@@ -100,7 +102,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     changelog = "https://www.sqlite.org/releaselog/${lib.replaceStrings [ "." ] [ "_" ] version}.html";
-    description = "A self-contained, serverless, zero-configuration, transactional SQL database engine";
+    description = "Self-contained, serverless, zero-configuration, transactional SQL database engine";
     downloadPage = "https://sqlite.org/download.html";
     homepage = "https://www.sqlite.org/";
     license = licenses.publicDomain;
diff --git a/pkgs/development/libraries/sqlite/tools.nix b/pkgs/development/libraries/sqlite/tools.nix
index d988a71e54e88..0f6fe766a3de3 100644
--- a/pkgs/development/libraries/sqlite/tools.nix
+++ b/pkgs/development/libraries/sqlite/tools.nix
@@ -32,14 +32,14 @@ in
   sqldiff = mkTool {
     pname = "sqldiff";
     makeTarget = "sqldiff";
-    description = "A tool that displays the differences between SQLite databases";
+    description = "Tool that displays the differences between SQLite databases";
     homepage = "https://www.sqlite.org/sqldiff.html";
     mainProgram = "sqldiff";
   };
   sqlite-analyzer = mkTool {
     pname = "sqlite-analyzer";
     makeTarget = "sqlite3_analyzer";
-    description = "A tool that shows statistics about SQLite databases";
+    description = "Tool that shows statistics about SQLite databases";
     homepage = "https://www.sqlite.org/sqlanalyze.html";
     mainProgram = "sqlite3_analyzer";
   };
diff --git a/pkgs/development/libraries/sregex/default.nix b/pkgs/development/libraries/sregex/default.nix
index a4d2ef526db94..f69e09c8873b5 100644
--- a/pkgs/development/libraries/sregex/default.nix
+++ b/pkgs/development/libraries/sregex/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/openresty/sregex";
-    description = "A non-backtracking NFA/DFA-based Perl-compatible regex engine matching on large data streams";
+    description = "Non-backtracking NFA/DFA-based Perl-compatible regex engine matching on large data streams";
     mainProgram = "sregex-cli";
     license = licenses.bsd3;
     maintainers = with maintainers; [];
diff --git a/pkgs/development/libraries/stfl/default.nix b/pkgs/development/libraries/stfl/default.nix
index e848b4330955b..b79020e3ba712 100644
--- a/pkgs/development/libraries/stfl/default.nix
+++ b/pkgs/development/libraries/stfl/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://www.clifford.at/stfl/";
-    description = "A library which implements a curses-based widget set for text terminals";
+    description = "Library which implements a curses-based widget set for text terminals";
     maintainers = with lib.maintainers; [ lovek323 ];
     license = lib.licenses.lgpl3;
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/stxxl/default.nix b/pkgs/development/libraries/stxxl/default.nix
index 499532092f026..a11544dd78930 100644
--- a/pkgs/development/libraries/stxxl/default.nix
+++ b/pkgs/development/libraries/stxxl/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "An implementation of the C++ standard template library STL for external memory (out-of-core) computations";
+    description = "Implementation of the C++ standard template library STL for external memory (out-of-core) computations";
     homepage = "https://github.com/stxxl/stxxl";
     license = licenses.boost;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/libraries/subunit/default.nix b/pkgs/development/libraries/subunit/default.nix
index ed0c5a2d87202..188759fc4e7ed 100644
--- a/pkgs/development/libraries/subunit/default.nix
+++ b/pkgs/development/libraries/subunit/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   postFixup = "wrapPythonPrograms";
 
   meta = with lib; {
-    description = "A streaming protocol for test results";
+    description = "Streaming protocol for test results";
     mainProgram = "subunit-diff";
     homepage = "https://launchpad.net/subunit";
     license = licenses.asl20;
diff --git a/pkgs/development/libraries/swiften/default.nix b/pkgs/development/libraries/swiften/default.nix
index 05b1b996ea3f7..fffe96dbf5c1b 100644
--- a/pkgs/development/libraries/swiften/default.nix
+++ b/pkgs/development/libraries/swiften/default.nix
@@ -80,7 +80,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "An XMPP library for C++, used by the Swift client";
+    description = "XMPP library for C++, used by the Swift client";
     mainProgram = "swiften-config";
     homepage = "http://swift.im/swiften.html";
     license = licenses.gpl2Plus;
diff --git a/pkgs/development/libraries/symengine/default.nix b/pkgs/development/libraries/symengine/default.nix
index cc08b7ff3c2e8..25043bbb0265d 100644
--- a/pkgs/development/libraries/symengine/default.nix
+++ b/pkgs/development/libraries/symengine/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "symengine";
-  version = "0.11.2";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "symengine";
     repo = "symengine";
     rev = "v${version}";
-    hash = "sha256-CwVDpDbx00r7Fys+5r1n0m/E86zTx1i4ti5JCcVp20g=";
+    hash = "sha256-SfifujR2VM1OlPN0ZRUC3hWImXO/8PuiyrBdpyNoKW4=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A fast symbolic manipulation library";
+    description = "Fast symbolic manipulation library";
     homepage = "https://github.com/symengine/symengine";
     platforms = platforms.unix ++ platforms.windows;
     license = licenses.bsd3;
diff --git a/pkgs/development/libraries/t1lib/default.nix b/pkgs/development/libraries/t1lib/default.nix
index 66c9863c38a42..16112f32b1e2f 100644
--- a/pkgs/development/libraries/t1lib/default.nix
+++ b/pkgs/development/libraries/t1lib/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.t1lib.org/";
-    description = "A type 1 font rasterizer library for UNIX/X11";
+    description = "Type 1 font rasterizer library for UNIX/X11";
     license = with licenses; [ gpl2 lgpl2 ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/libraries/tachyon/default.nix b/pkgs/development/libraries/tachyon/default.nix
index 2efee140a7e3c..0446d2cac6e7d 100644
--- a/pkgs/development/libraries/tachyon/default.nix
+++ b/pkgs/development/libraries/tachyon/default.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
     cp -r scenes "$out/share/tachyon/scenes"
   '';
   meta = {
-    description = "A Parallel / Multiprocessor Ray Tracing System";
+    description = "Parallel / Multiprocessor Ray Tracing System";
     mainProgram = "tachyon";
     license = lib.licenses.bsd3;
     maintainers = [lib.maintainers.raskin];
diff --git a/pkgs/development/libraries/taglib/default.nix b/pkgs/development/libraries/taglib/default.nix
index fc3914b26d293..17918f5f43739 100644
--- a/pkgs/development/libraries/taglib/default.nix
+++ b/pkgs/development/libraries/taglib/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://taglib.org/";
-    description = "A library for reading and editing audio file metadata";
+    description = "Library for reading and editing audio file metadata";
     mainProgram = "taglib-config";
     longDescription = ''
       TagLib is a library for reading and editing the meta-data of several
diff --git a/pkgs/development/libraries/talloc/default.nix b/pkgs/development/libraries/talloc/default.nix
index 73cb8a65a162d..793fc1ccf5cb5 100644
--- a/pkgs/development/libraries/talloc/default.nix
+++ b/pkgs/development/libraries/talloc/default.nix
@@ -9,6 +9,7 @@
 , docbook_xml_dtd_42
 , fixDarwinDylibNames
 , wafHook
+, buildPackages
 }:
 
 stdenv.mkDerivation rec {
@@ -50,6 +51,9 @@ stdenv.mkDerivation rec {
     "--enable-talloc-compat1"
     "--bundled-libraries=NONE"
     "--builtin-libraries=replace"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "--cross-compile"
+    "--cross-execute=${stdenv.hostPlatform.emulator buildPackages}"
   ];
 
   # python-config from build Python gives incorrect values when cross-compiling.
diff --git a/pkgs/development/libraries/tbb/2020_3.nix b/pkgs/development/libraries/tbb/2020_3.nix
index 55bb9849d9190..dcd21b27ff334 100644
--- a/pkgs/development/libraries/tbb/2020_3.nix
+++ b/pkgs/development/libraries/tbb/2020_3.nix
@@ -57,8 +57,12 @@ stdenv.mkDerivation rec {
   ] ++ (lib.optional (stdenv.buildPlatform != stdenv.hostPlatform)
     (if stdenv.hostPlatform.isAarch64 then "arch=arm64"
     else if stdenv.hostPlatform.isx86_64 then "arch=intel64"
+    else if stdenv.hostPlatform.isi686 then "arch=ia32"
     else throw "Unsupported cross architecture"));
 
+  # Fix undefined reference errors with version script under LLVM.
+  NIX_LDFLAGS = lib.optionalString (stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17") "--undefined-version";
+
   enableParallelBuilding = true;
 
   installPhase = ''
diff --git a/pkgs/development/libraries/tbb/2021_5.nix b/pkgs/development/libraries/tbb/2021_5.nix
new file mode 100644
index 0000000000000..3bfa9278106d9
--- /dev/null
+++ b/pkgs/development/libraries/tbb/2021_5.nix
@@ -0,0 +1,71 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+}:
+
+stdenv.mkDerivation rec {
+  pname = "tbb";
+  version = "2021.5.0";
+
+  outputs = [ "out" "dev" ];
+
+  src = fetchFromGitHub {
+    owner = "oneapi-src";
+    repo = "oneTBB";
+    rev = "v${version}";
+    hash = "sha256-TJ/oSSMvgtKuz7PVyIoFEbBW6EZz7t2wr/kP093HF/w=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  patches = [
+    # port of https://github.com/oneapi-src/oneTBB/pull/1031
+    ./gcc13-fixes-2021.5.0.patch
+
+    (fetchpatch {
+      #  Fix "field used uninitialized" on modern gcc versions (https://github.com/oneapi-src/oneTBB/pull/958)
+      url = "https://github.com/oneapi-src/oneTBB/commit/3003ec07740703e6aed12b028af20f4b0f16adae.patch";
+      hash = "sha256-l4+9IxIEdRX/q8JyDY9CPKWzSLatpIVSiNjmIM7ilj0=";
+    })
+  ];
+
+  # Disable failing test on musl
+  # test/conformance/conformance_resumable_tasks.cpp:37:24: error: ‘suspend’ is not a member of ‘tbb::v1::task’; did you mean ‘tbb::detail::r1::suspend’?
+  postPatch = lib.optionalString stdenv.hostPlatform.isMusl ''
+    substituteInPlace test/CMakeLists.txt \
+      --replace-fail 'conformance_resumable_tasks' ""
+  '';
+
+  # Fix build with modern gcc
+  # In member function 'void std::__atomic_base<_IntTp>::store(__int_type, std::memory_order) [with _ITp = bool]',
+  NIX_CFLAGS_COMPILE = lib.optionals stdenv.cc.isGNU [ "-Wno-error=array-bounds" "-Wno-error=stringop-overflow" "-Wno-address" ] ++
+    # error: variable 'val' set but not used
+    lib.optionals stdenv.cc.isClang [ "-Wno-error=unused-but-set-variable" ] ++
+    # Workaround for gcc-12 ICE when using -O3
+    # https://gcc.gnu.org/PR108854
+    lib.optionals (stdenv.cc.isGNU && stdenv.isx86_32) [ "-O2" ];
+
+  # Fix undefined reference errors with version script under LLVM.
+  NIX_LDFLAGS = lib.optionalString (stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17") "--undefined-version";
+
+
+  meta = with lib; {
+    description = "Intel Thread Building Blocks C++ Library";
+    homepage = "http://threadingbuildingblocks.org/";
+    license = licenses.asl20;
+    longDescription = ''
+      Intel Threading Building Blocks offers a rich and complete approach to
+      expressing parallelism in a C++ program. It is a library that helps you
+      take advantage of multi-core processor performance without having to be a
+      threading expert. Intel TBB is not just a threads-replacement library. It
+      represents a higher-level, task-based parallelism that abstracts platform
+      details and threading mechanisms for scalability and performance.
+    '';
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ thoughtpolice tmarkus ];
+  };
+}
diff --git a/pkgs/development/libraries/tbb/default.nix b/pkgs/development/libraries/tbb/default.nix
index c02a9ed49577e..73ea56b306869 100644
--- a/pkgs/development/libraries/tbb/default.nix
+++ b/pkgs/development/libraries/tbb/default.nix
@@ -39,6 +39,9 @@ stdenv.mkDerivation rec {
     # https://gcc.gnu.org/PR108854
     lib.optionals (stdenv.cc.isGNU && stdenv.isx86_32) [ "-O2" ];
 
+  # Fix undefined reference errors with version script under LLVM.
+  NIX_LDFLAGS = lib.optionalString (stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17") "--undefined-version";
+
   # Disable failing test on musl
   # test/conformance/conformance_resumable_tasks.cpp:37:24: error: ‘suspend’ is not a member of ‘tbb::v1::task’; did you mean ‘tbb::detail::r1::suspend’?
   postPatch = lib.optionalString stdenv.hostPlatform.isMusl ''
diff --git a/pkgs/development/libraries/tbb/gcc13-fixes-2021.5.0.patch b/pkgs/development/libraries/tbb/gcc13-fixes-2021.5.0.patch
new file mode 100644
index 0000000000000..28b5a0e695f70
--- /dev/null
+++ b/pkgs/development/libraries/tbb/gcc13-fixes-2021.5.0.patch
@@ -0,0 +1,13 @@
+diff --git a/test/common/utils_assert.h b/test/common/utils_assert.h
+index 33bc8ab4..a3d21baf 100644
+--- a/test/common/utils_assert.h
++++ b/test/common/utils_assert.h
+@@ -20,6 +20,8 @@
+ #include "config.h"
+ #include "utils_report.h"
+ 
++#include <cstdlib>
++
+ #define REPORT_FATAL_ERROR REPORT
+ 
+ namespace utils {
diff --git a/pkgs/development/libraries/tbox/default.nix b/pkgs/development/libraries/tbox/default.nix
index 6f65ded6f104b..b2406d19e7017 100644
--- a/pkgs/development/libraries/tbox/default.nix
+++ b/pkgs/development/libraries/tbox/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A glib-like multi-platform c library";
+    description = "Glib-like multi-platform c library";
     homepage = "https://docs.tboox.org";
     license = licenses.asl20;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/tcltls/default.nix b/pkgs/development/libraries/tcltls/default.nix
index a0a1c0ae53ccd..dbc095b64e0ba 100644
--- a/pkgs/development/libraries/tcltls/default.nix
+++ b/pkgs/development/libraries/tcltls/default.nix
@@ -17,7 +17,7 @@ tcl.mkTclDerivation rec {
 
   meta = {
     homepage = "https://core.tcl-lang.org/tcltls/index";
-    description = "An OpenSSL / RSA-bsafe Tcl extension";
+    description = "OpenSSL / RSA-bsafe Tcl extension";
     maintainers = [ lib.maintainers.agbrooks ];
     license = lib.licenses.tcltk;
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/tdb/default.nix b/pkgs/development/libraries/tdb/default.nix
index 1a289f7c2d618..d78f4abafab00 100644
--- a/pkgs/development/libraries/tdb/default.nix
+++ b/pkgs/development/libraries/tdb/default.nix
@@ -2,6 +2,7 @@
 , fetchurl
 , pkg-config
 , wafHook
+, buildPackages
 , python3
 , readline
 , libxslt
@@ -46,6 +47,9 @@ stdenv.mkDerivation rec {
   wafConfigureFlags = [
     "--bundled-libraries=NONE"
     "--builtin-libraries=replace"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "--cross-compile"
+    "--cross-execute=${stdenv.hostPlatform.emulator buildPackages}"
   ];
 
   postFixup = if stdenv.isDarwin
@@ -58,7 +62,7 @@ stdenv.mkDerivation rec {
   PYTHON_CONFIG = "/invalid";
 
   meta = with lib; {
-    description = "The trivial database";
+    description = "Trivial database";
     longDescription = ''
       TDB is a Trivial Database. In concept, it is very much like GDBM,
       and BSD's DB except that it allows multiple simultaneous writers
diff --git a/pkgs/development/libraries/tdlib/default.nix b/pkgs/development/libraries/tdlib/default.nix
index 0d60f0412267c..7564d33636f16 100644
--- a/pkgs/development/libraries/tdlib/default.nix
+++ b/pkgs/development/libraries/tdlib/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation {
   pname = "tdlib";
-  version = "1.8.28";
+  version = "1.8.30";
 
   src = fetchFromGitHub {
     owner = "tdlib";
@@ -11,8 +11,8 @@ stdenv.mkDerivation {
     # The tdlib authors do not set tags for minor versions, but
     # external programs depending on tdlib constrain the minor
     # version, hence we set a specific commit with a known version.
-    rev = "38d31da77a72619cf7ec5d479338a48274cc7446";
-    hash = "sha256-y6Gt8gDfvIBJd/2O4vTs38DzAPyL9pAZBbrf2qcv9cY=";
+    rev = "fab354add5a257a8121a4a7f1ff6b1b9fa9a9073";
+    hash = "sha256-fyAWfAG/zLf3XTlgHnrIAShS4wo6hGIwu46k5TL6Zoo=";
   };
 
   buildInputs = [ gperf openssl readline zlib ];
diff --git a/pkgs/development/libraries/template-glib/default.nix b/pkgs/development/libraries/template-glib/default.nix
index 71960010d56da..a8dfade71bfdc 100644
--- a/pkgs/development/libraries/template-glib/default.nix
+++ b/pkgs/development/libraries/template-glib/default.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A library for template expansion which supports calling into GObject Introspection from templates";
+    description = "Library for template expansion which supports calling into GObject Introspection from templates";
     homepage = "https://gitlab.gnome.org/GNOME/template-glib";
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/development/libraries/tevent/default.nix b/pkgs/development/libraries/tevent/default.nix
index 18e4522de9ea2..c9f03ee0555f2 100644
--- a/pkgs/development/libraries/tevent/default.nix
+++ b/pkgs/development/libraries/tevent/default.nix
@@ -10,6 +10,7 @@
 , docbook_xml_dtd_42
 , which
 , wafHook
+, buildPackages
 , libxcrypt
 }:
 
@@ -52,6 +53,9 @@ stdenv.mkDerivation rec {
   wafConfigureFlags = [
     "--bundled-libraries=NONE"
     "--builtin-libraries=replace"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "--cross-compile"
+    "--cross-execute=${stdenv.hostPlatform.emulator buildPackages}"
   ];
 
   # python-config from build Python gives incorrect values when cross-compiling.
@@ -60,7 +64,7 @@ stdenv.mkDerivation rec {
   PYTHON_CONFIG = "/invalid";
 
   meta = with lib; {
-    description = "An event system based on the talloc memory management library";
+    description = "Event system based on the talloc memory management library";
     homepage = "https://tevent.samba.org/";
     license = licenses.lgpl3Plus;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/theft/default.nix b/pkgs/development/libraries/theft/default.nix
index 3d39075dd26ad..e053814dddd96 100644
--- a/pkgs/development/libraries/theft/default.nix
+++ b/pkgs/development/libraries/theft/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A C library for property-based testing";
+    description = "C library for property-based testing";
     homepage    = "https://github.com/silentbicycle/theft/";
     platforms   = platforms.unix;
     license     = licenses.isc;
diff --git a/pkgs/development/libraries/ti-rpc/default.nix b/pkgs/development/libraries/ti-rpc/default.nix
index c12178d833de4..9f22ae65d28cd 100644
--- a/pkgs/development/libraries/ti-rpc/default.nix
+++ b/pkgs/development/libraries/ti-rpc/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://sourceforge.net/projects/libtirpc/";
-    description = "The transport-independent Sun RPC implementation (TI-RPC)";
+    description = "Transport-independent Sun RPC implementation (TI-RPC)";
     license = licenses.bsd3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ abbradar ];
diff --git a/pkgs/development/libraries/tidyp/default.nix b/pkgs/development/libraries/tidyp/default.nix
index aa54616cf42a6..e00eaf632e973 100644
--- a/pkgs/development/libraries/tidyp/default.nix
+++ b/pkgs/development/libraries/tidyp/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "format" ];
 
   meta = with lib; {
-    description = "A program that can validate your HTML, as well as modify it to be more clean and standard";
+    description = "Program that can validate your HTML, as well as modify it to be more clean and standard";
     mainProgram = "tidyp";
     homepage = "http://tidyp.com/";
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/timezonemap/default.nix b/pkgs/development/libraries/timezonemap/default.nix
index 25efaa6518c61..f2ceb056f25a8 100644
--- a/pkgs/development/libraries/timezonemap/default.nix
+++ b/pkgs/development/libraries/timezonemap/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://launchpad.net/timezonemap";
-    description = "A GTK+3 Timezone Map Widget";
+    description = "GTK+3 Timezone Map Widget";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = [ maintainers.mkg20001 ];
diff --git a/pkgs/development/libraries/tix/default.nix b/pkgs/development/libraries/tix/default.nix
index a46b2499964c3..0a6adbb5882a0 100644
--- a/pkgs/development/libraries/tix/default.nix
+++ b/pkgs/development/libraries/tix/default.nix
@@ -54,7 +54,7 @@ tcl.mkTclDerivation {
   ];
 
   meta = with lib; {
-    description = "A widget library for Tcl/Tk";
+    description = "Widget library for Tcl/Tk";
     homepage    = "https://tix.sourceforge.net/";
     platforms   = platforms.all;
     license     = with licenses; [
diff --git a/pkgs/development/libraries/tk/8.6.nix b/pkgs/development/libraries/tk/8.6.nix
index fbf4560517547..c5317a8545dd5 100644
--- a/pkgs/development/libraries/tk/8.6.nix
+++ b/pkgs/development/libraries/tk/8.6.nix
@@ -2,7 +2,6 @@
 , stdenv
 , callPackage
 , fetchurl
-, fetchpatch
 , tcl
 , ...
 } @ args:
diff --git a/pkgs/development/libraries/tk/generic.nix b/pkgs/development/libraries/tk/generic.nix
index 57a9b617d950d..540f5d5d7e367 100644
--- a/pkgs/development/libraries/tk/generic.nix
+++ b/pkgs/development/libraries/tk/generic.nix
@@ -65,7 +65,7 @@ tcl.mkTclDerivation {
   };
 
   meta = with lib; {
-    description = "A widget toolkit that provides a library of basic elements for building a GUI in many different programming languages";
+    description = "Widget toolkit that provides a library of basic elements for building a GUI in many different programming languages";
     homepage = "https://www.tcl.tk/";
     license = licenses.tcltk;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/tkimg/default.nix b/pkgs/development/libraries/tkimg/default.nix
index 90970a45602a2..8b66e195d5a5e 100644
--- a/pkgs/development/libraries/tkimg/default.nix
+++ b/pkgs/development/libraries/tkimg/default.nix
@@ -22,7 +22,7 @@ tcl.mkTclDerivation rec {
 
   meta = {
     homepage = "https://sourceforge.net/projects/tkimg/";
-    description = "The Img package adds several image formats to Tcl/Tk";
+    description = "Img package adds several image formats to Tcl/Tk";
     maintainers = with lib.maintainers; [ matthewcroughan ];
     license = lib.licenses.bsd3;
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/tkrzw/default.nix b/pkgs/development/libraries/tkrzw/default.nix
index 1d57c8164c03e..6470924a9ce21 100644
--- a/pkgs/development/libraries/tkrzw/default.nix
+++ b/pkgs/development/libraries/tkrzw/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "tkrzw";
-  version = "1.0.29";
+  version = "1.0.31";
   # TODO: defeat multi-output reference cycles
 
   src = fetchurl {
     url = "https://dbmx.net/tkrzw/pkg/tkrzw-${version}.tar.gz";
-    hash = "sha256-q6q9b8iaGe2KICrDcRvDsHY9kovDqO7upzo2effn95A=";
+    hash = "sha256-7FdHglIBTHGKRt66WNTGEe5qUcrIyTYPrnuVrUc8l08=";
   };
 
   postPatch = ''
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   doCheck = false; # memory intensive
 
   meta = with lib; {
-    description = "A set of implementations of DBM";
+    description = "Set of implementations of DBM";
     homepage = "https://dbmx.net/tkrzw/";
     maintainers = with maintainers; [ ehmry ];
     license = licenses.asl20;
diff --git a/pkgs/development/libraries/toml-f/default.nix b/pkgs/development/libraries/toml-f/default.nix
index e24ceec58c075..3f95d5682f9e0 100644
--- a/pkgs/development/libraries/toml-f/default.nix
+++ b/pkgs/development/libraries/toml-f/default.nix
@@ -25,7 +25,8 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
-  doCheck = true;
+  # tftest-build fails on aarch64-linux
+  doCheck = !stdenv.isAarch64;
 
   meta = with lib; {
     description = "TOML parser implementation for data serialization and deserialization in Fortran";
diff --git a/pkgs/development/libraries/tpm2-tss/default.nix b/pkgs/development/libraries/tpm2-tss/default.nix
index 354ab06d26b23..b28d031be83ad 100644
--- a/pkgs/development/libraries/tpm2-tss/default.nix
+++ b/pkgs/development/libraries/tpm2-tss/default.nix
@@ -15,13 +15,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "tpm2-tss";
-  version = "4.1.1";
+  version = "4.1.3";
 
   src = fetchFromGitHub {
     owner = "tpm2-software";
     repo = pname;
     rev = version;
-    hash = "sha256-paqTQ7DQI0Nd8q0qUPRa2UZ/oE5nrVEq5KUiG8hRXuQ=";
+    hash = "sha256-BP28utEUI9g1VNv3lCXuiKrDtEImFQxxZfIjLiE3Wr8=";
   };
 
   outputs = [ "out" "man" "dev" ];
diff --git a/pkgs/development/libraries/tweeny/default.nix b/pkgs/development/libraries/tweeny/default.nix
index 257b966808d20..131cf2194ae85 100644
--- a/pkgs/development/libraries/tweeny/default.nix
+++ b/pkgs/development/libraries/tweeny/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation (finalAttrs: {
   doCheck = true;
 
   meta = with lib; {
-    description = "A modern C++ tweening library";
+    description = "Modern C++ tweening library";
     license = licenses.mit;
     homepage = "http://mobius3.github.io/tweeny";
     maintainers = [ maintainers.doronbehar ];
diff --git a/pkgs/development/libraries/twolame/default.nix b/pkgs/development/libraries/twolame/default.nix
index e81e47e094aac..eba2fdfe81c5c 100644
--- a/pkgs/development/libraries/twolame/default.nix
+++ b/pkgs/development/libraries/twolame/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   doCheck = false; # fails with "../build-scripts/test-driver: line 107: -Mstrict: command not found"
 
   meta = with lib;{
-    description = "A MP2 encoder";
+    description = "MP2 encoder";
     mainProgram = "twolame";
     longDescription = ''
       TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on
diff --git a/pkgs/development/libraries/ucx/default.nix b/pkgs/development/libraries/ucx/default.nix
index 71a1b2a2001f4..464ea6e374c37 100644
--- a/pkgs/development/libraries/ucx/default.nix
+++ b/pkgs/development/libraries/ucx/default.nix
@@ -19,13 +19,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "ucx";
-  version = "1.16.0";
+  version = "1.17.0";
 
   src = fetchFromGitHub {
     owner = "openucx";
     repo = "ucx";
     rev = "v${version}";
-    sha256 = "sha256-dihWwGlQclfa2ke+1V5c6coqfFjjuMyI8QRzNdx33zQ=";
+    sha256 = "sha256-Qd3c51LeF04haZA4wK6loNZwX2a3ju+ljwdPYPoUKCQ=";
   };
 
   outputs = [ "out" "doc" "dev" ];
diff --git a/pkgs/development/libraries/udunits/default.nix b/pkgs/development/libraries/udunits/default.nix
index 17efccce82a97..48ffb94175f98 100644
--- a/pkgs/development/libraries/udunits/default.nix
+++ b/pkgs/development/libraries/udunits/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.unidata.ucar.edu/software/udunits/";
-    description = "A C-based package for the programatic handling of units of physical quantities";
+    description = "C-based package for the programatic handling of units of physical quantities";
     longDescription = ''
       The UDUNITS package supports units of physical quantities. Its C library
       provides for arithmetic manipulation of units and for conversion of
diff --git a/pkgs/development/libraries/uid_wrapper/default.nix b/pkgs/development/libraries/uid_wrapper/default.nix
index 61f7242b5d8c4..f606bdde14c28 100644
--- a/pkgs/development/libraries/uid_wrapper/default.nix
+++ b/pkgs/development/libraries/uid_wrapper/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkg-config ];
 
   meta = with lib; {
-    description = "A wrapper for the user, group and hosts NSS API";
+    description = "Wrapper for the user, group and hosts NSS API";
     homepage = "https://git.samba.org/?p=uid_wrapper.git;a=summary;";
     license = licenses.bsd3;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/umockdev/default.nix b/pkgs/development/libraries/umockdev/default.nix
index 2d543f5a5364f..b7926eecb4f24 100644
--- a/pkgs/development/libraries/umockdev/default.nix
+++ b/pkgs/development/libraries/umockdev/default.nix
@@ -2,7 +2,6 @@
 , lib
 , docbook-xsl-nons
 , fetchurl
-, fetchpatch
 , glib
 , gobject-introspection
 , gtk-doc
@@ -22,13 +21,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "umockdev";
-  version = "0.18.1";
+  version = "0.18.2";
 
   outputs = [ "bin" "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "https://github.com/martinpitt/umockdev/releases/download/${finalAttrs.version}/umockdev-${finalAttrs.version}.tar.xz";
-    hash = "sha256-ZRtoaQM7sUiBNu1zxY6SRfWwGFYmHhzqBBAwuD+x7Xw=";
+    hash = "sha256-1HKV6IA8bWfgdgMcIlgeP470aIAj1I925ed2qM7IkHM=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/unibilium/default.nix b/pkgs/development/libraries/unibilium/default.nix
index 332b2deddf783..f2e2e27b35d7c 100644
--- a/pkgs/development/libraries/unibilium/default.nix
+++ b/pkgs/development/libraries/unibilium/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ ncurses ];
 
   meta = with lib; {
-    description = "A very basic terminfo library";
+    description = "Very basic terminfo library";
     license = licenses.lgpl3Plus;
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ pSub ];
diff --git a/pkgs/development/libraries/updfparser/default.nix b/pkgs/development/libraries/updfparser/default.nix
index aa25f9f2dffdd..6eb4e65e657ae 100644
--- a/pkgs/development/libraries/updfparser/default.nix
+++ b/pkgs/development/libraries/updfparser/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A very simple PDF parser";
+    description = "Very simple PDF parser";
     homepage = "https://indefero.soutade.fr/p/updfparser";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ autumnal ];
diff --git a/pkgs/development/libraries/urdfdom-headers/default.nix b/pkgs/development/libraries/urdfdom-headers/default.nix
index 138597ad89a61..7809355cb3015 100644
--- a/pkgs/development/libraries/urdfdom-headers/default.nix
+++ b/pkgs/development/libraries/urdfdom-headers/default.nix
@@ -2,20 +2,20 @@
 
 stdenv.mkDerivation rec {
   pname = "urdfdom-headers";
-  version = "1.1.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "ros";
     repo = "urdfdom_headers";
     rev = version;
-    hash = "sha256-ry5wDMRxR7TtupUghe9t1XP0XMvWKiOesO5RFHPrSdI=";
+    hash = "sha256-FQSnYuTc40MOxyFsMPfoCIonP+4AUQxdq74eoQ9tOoo=";
   };
 
   patches = [
     # Fix CMake relative install dir assumptions (https://github.com/ros/urdfdom_headers/pull/66)
     (fetchpatch {
-      url = "https://github.com/ros/urdfdom_headers/commit/c9c993147bbf18d5ec83bae684c5780281e529b4.patch";
-      hash = "sha256-BnYPdcetYSim2O1R38N0d1tY0Id++AgKNic8+dlM6Vg=";
+      url = "https://github.com/ros/urdfdom_headers/commit/6e0cea148c3a7123f8367cd48d5709a4490c32f1.patch";
+      hash = "sha256-LC2TACGma/k6+WE9fTkzY98SgJYKsVuj5O9v84Q5mQ4=";
     })
   ];
 
diff --git a/pkgs/development/libraries/urdfdom/default.nix b/pkgs/development/libraries/urdfdom/default.nix
index 6e59914044fc0..f26162ac8c83b 100644
--- a/pkgs/development/libraries/urdfdom/default.nix
+++ b/pkgs/development/libraries/urdfdom/default.nix
@@ -1,27 +1,28 @@
 { lib, stdenv, fetchFromGitHub, fetchpatch, cmake, pkg-config, validatePkgConfig
-, urdfdom-headers, console-bridge, tinyxml }:
+, tinyxml-2, console-bridge, urdfdom-headers }:
 
 stdenv.mkDerivation rec {
   pname = "urdfdom";
-  version = "3.1.1";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "ros";
     repo = pname;
     rev = version;
-    hash = "sha256-UdkGJAXK3Q8QJaqMZBA5/FKUgWq9EVeqkqwVewTlTD8=";
+    hash = "sha256-t1ff5aRHE7LuQdCXuooWPDUgPWjyYyQmQUB1RJmte1w=";
   };
 
   patches = [
     # Fix CMake relative install dir assumptions (https://github.com/ros/urdfdom/pull/142)
     (fetchpatch {
-      url = "https://github.com/ros/urdfdom/commit/cbe6884d267779463bb444be851f6404e692cc0a.patch";
-      hash = "sha256-1gTRKIGqiSRion76bGecSfFJSBskYUJguUIa6ePIiX4=";
+      url = "https://github.com/ros/urdfdom/commit/61a7e35cd5abece97259e76aed8504052b2f5b53.patch";
+      hash = "sha256-b3bEbbaSUDkwTEHJ8gVPEb+AR/zuWwLqiAW5g1T1dPU=";
     })
   ];
 
   nativeBuildInputs = [ cmake pkg-config validatePkgConfig ];
-  propagatedBuildInputs = [ urdfdom-headers console-bridge tinyxml ];
+  buildInputs = [ tinyxml-2 console-bridge ];
+  propagatedBuildInputs = [ urdfdom-headers ];
 
   meta = with lib; {
     description = "Provides core data structures and a simple XML parser for populating the class data structures from an URDF file";
diff --git a/pkgs/development/libraries/usrsctp/default.nix b/pkgs/development/libraries/usrsctp/default.nix
index 9723f887b82b9..8b172ebb45d7e 100644
--- a/pkgs/development/libraries/usrsctp/default.nix
+++ b/pkgs/development/libraries/usrsctp/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/sctplab/usrsctp";
-    description = "A portable SCTP userland stack";
+    description = "Portable SCTP userland stack";
     maintainers = with maintainers; [ misuzu ];
     license = licenses.bsd3;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/utf8proc/default.nix b/pkgs/development/libraries/utf8proc/default.nix
index 7bdb9747472b0..f248d6d972255 100644
--- a/pkgs/development/libraries/utf8proc/default.nix
+++ b/pkgs/development/libraries/utf8proc/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A clean C library for processing UTF-8 Unicode data";
+    description = "Clean C library for processing UTF-8 Unicode data";
     homepage = "https://juliastrings.github.io/utf8proc/";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/uthash/default.nix b/pkgs/development/libraries/uthash/default.nix
index f697e8c7a125b..98c5200fcc2c6 100644
--- a/pkgs/development/libraries/uthash/default.nix
+++ b/pkgs/development/libraries/uthash/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A hash table for C structures";
+    description = "Hash table for C structures";
     homepage    = "http://troydhanson.github.io/uthash";
     license     = licenses.bsd2; # it's one-clause, actually, as it's source-only
     platforms   = platforms.all;
diff --git a/pkgs/development/libraries/uthenticode/default.nix b/pkgs/development/libraries/uthenticode/default.nix
index 68a896d136499..e8d08745de8f2 100644
--- a/pkgs/development/libraries/uthenticode/default.nix
+++ b/pkgs/development/libraries/uthenticode/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   checkPhase = "test/uthenticode_test";
 
   meta = with lib; {
-    description = "A small cross-platform library for verifying Authenticode digital signatures.";
+    description = "Small cross-platform library for verifying Authenticode digital signatures";
     homepage = "https://github.com/trailofbits/uthenticode";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/v8/default.nix b/pkgs/development/libraries/v8/default.nix
index 0eb3bda4286da..9320fe34bb64a 100644
--- a/pkgs/development/libraries/v8/default.nix
+++ b/pkgs/development/libraries/v8/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchgit, fetchFromGitHub
+{ stdenv, lib, fetchgit
 , gn, ninja, python3, glib, pkg-config, icu
 , xcbuild, darwin
 , fetchpatch
@@ -190,5 +190,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ proglodyte matthewbauer ];
     platforms = platforms.unix;
     license = licenses.bsd3;
+    knownVulnerabilities = [ "Severely outdated with multiple publicly known vulnerabilities" ];
   };
 }
diff --git a/pkgs/development/libraries/vapoursynth-mvtools/default.nix b/pkgs/development/libraries/vapoursynth-mvtools/default.nix
index 54d9bad1644f7..8ddc1d88fe443 100644
--- a/pkgs/development/libraries/vapoursynth-mvtools/default.nix
+++ b/pkgs/development/libraries/vapoursynth-mvtools/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--libdir=$(out)/lib/vapoursynth" ];
 
   meta = with lib; {
-    description = "A set of filters for motion estimation and compensation";
+    description = "Set of filters for motion estimation and compensation";
     homepage = "https://github.com/dubhater/vapoursynth-mvtools";
     license  = licenses.gpl2;
     maintainers = with maintainers; [ rnhmjoj ];
diff --git a/pkgs/development/libraries/vapoursynth/default.nix b/pkgs/development/libraries/vapoursynth/default.nix
index 242294462ed6b..bf21723875bf8 100644
--- a/pkgs/development/libraries/vapoursynth/default.nix
+++ b/pkgs/development/libraries/vapoursynth/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin; # see https://github.com/NixOS/nixpkgs/pull/189446 for partial fix
-    description = "A video processing framework with the future in mind";
+    description = "Video processing framework with the future in mind";
     homepage    = "http://www.vapoursynth.com/";
     license     = licenses.lgpl21;
     platforms   = platforms.x86_64;
diff --git a/pkgs/development/libraries/vc/default.nix b/pkgs/development/libraries/vc/default.nix
index 02b202365b9bf..6eb3c3db64278 100644
--- a/pkgs/development/libraries/vc/default.nix
+++ b/pkgs/development/libraries/vc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "Vc";
-  version = "1.4.4";
+  version = "1.4.5";
 
   src = fetchFromGitHub {
     owner = "VcDevel";
     repo = "Vc";
     rev = version;
-    sha256 = "sha256-tbHDGbul68blBAvok17oz7AfhHpEY9Y7RIEsqCQvOJ0=";
+    sha256 = "sha256-A2qUzjXv50unFcoZp2nRVinkph+CoHyiU7AgOphDphM=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/vectorscan/default.nix b/pkgs/development/libraries/vectorscan/default.nix
index e9724ced0c70f..835db0f3566b7 100644
--- a/pkgs/development/libraries/vectorscan/default.nix
+++ b/pkgs/development/libraries/vectorscan/default.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A portable fork of the high-performance regular expression matching library";
+    description = "Portable fork of the high-performance regular expression matching library";
     longDescription = ''
       A fork of Intel's Hyperscan, modified to run on more platforms. Currently
       ARM NEON/ASIMD is 100% functional, and Power VSX are in development.
diff --git a/pkgs/development/libraries/virglrenderer/default.nix b/pkgs/development/libraries/virglrenderer/default.nix
index 5a28ad3822363..f0e844360cca7 100644
--- a/pkgs/development/libraries/virglrenderer/default.nix
+++ b/pkgs/development/libraries/virglrenderer/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A virtual 3D GPU library that allows a qemu guest to use the host GPU for accelerated 3D rendering";
+    description = "Virtual 3D GPU library that allows a qemu guest to use the host GPU for accelerated 3D rendering";
     mainProgram = "virgl_test_server";
     homepage = "https://virgil3d.github.io/";
     license = licenses.mit;
diff --git a/pkgs/development/libraries/virtualpg/default.nix b/pkgs/development/libraries/virtualpg/default.nix
index 277ca47d66e34..d9778decd129e 100644
--- a/pkgs/development/libraries/virtualpg/default.nix
+++ b/pkgs/development/libraries/virtualpg/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, validatePkgConfig, postgresql, sqlite }:
+{ lib, stdenv, fetchurl, validatePkgConfig, postgresql, sqlite, darwin }:
 
 stdenv.mkDerivation rec {
   pname = "virtualpg";
@@ -14,7 +14,8 @@ stdenv.mkDerivation rec {
     postgresql  # for pg_config
   ];
 
-  buildInputs = [ postgresql sqlite ];
+  buildInputs = [ postgresql sqlite ]
+    ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Kerberos ];
 
   meta = with lib; {
     description = "Loadable dynamic extension to both SQLite and SpatiaLite";
diff --git a/pkgs/development/libraries/vkd3d/default.nix b/pkgs/development/libraries/vkd3d/default.nix
deleted file mode 100644
index 087a56df970fa..0000000000000
--- a/pkgs/development/libraries/vkd3d/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ lib, stdenv, fetchFromGitLab, autoreconfHook, pkg-config, wine, flex, bison
-, vulkan-headers, spirv-headers, vulkan-loader }:
-
-stdenv.mkDerivation rec {
-  pname = "vkd3d";
-  version = "1.10";
-
-  nativeBuildInputs = [ autoreconfHook pkg-config wine flex bison ];
-  buildInputs = [ vulkan-loader vulkan-headers spirv-headers ];
-
-  src = fetchFromGitLab {
-    domain = "gitlab.winehq.org";
-    owner = "wine";
-    repo = pname;
-    rev = "${pname}-${version}";
-    sha256 = "sha256-/5tc8agqpRbFRnfv8O1fBo2SPNOuO6exs0BZ9MnOTA0=";
-  };
-
-  meta = with lib; {
-    homepage = "https://gitlab.winehq.org/wine/vkd3d";
-    description = "A 3D graphics library with an API very similar, but not identical, to Direct3D 12";
-    license = licenses.lgpl21;
-    maintainers = with maintainers; [ expipiplus1 ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/development/libraries/vmmlib/default.nix b/pkgs/development/libraries/vmmlib/default.nix
index 921284bca4814..11df1a495f02f 100644
--- a/pkgs/development/libraries/vmmlib/default.nix
+++ b/pkgs/development/libraries/vmmlib/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A vector and matrix math library implemented using C++ templates";
+    description = "Vector and matrix math library implemented using C++ templates";
 
     longDescription = ''vmmlib is a vector and matrix math library implemented
             using C++ templates. Its basic functionality includes a vector
diff --git a/pkgs/development/libraries/volk/2.5.0.nix b/pkgs/development/libraries/volk/2.5.0.nix
index 35216cb7e31c2..3e15993efc39f 100644
--- a/pkgs/development/libraries/volk/2.5.0.nix
+++ b/pkgs/development/libraries/volk/2.5.0.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "http://libvolk.org/";
-    description = "The Vector Optimized Library of Kernels";
+    description = "Vector Optimized Library of Kernels";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ doronbehar ];
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/volk/default.nix b/pkgs/development/libraries/volk/default.nix
index 02240ac1febff..caf3c848a1ed8 100644
--- a/pkgs/development/libraries/volk/default.nix
+++ b/pkgs/development/libraries/volk/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "http://libvolk.org/";
-    description = "The Vector Optimized Library of Kernels";
+    description = "Vector Optimized Library of Kernels";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ doronbehar ];
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/volume-key/default.nix b/pkgs/development/libraries/volume-key/default.nix
index e6aa378d01e58..ea40b8a27da63 100644
--- a/pkgs/development/libraries/volume-key/default.nix
+++ b/pkgs/development/libraries/volume-key/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   doCheck = false; # fails 1 out of 1 tests, needs `certutil`
 
   meta = with lib; {
-    description = "A library for manipulating storage volume encryption keys and storing them separately from volumes to handle forgotten passphrases, and the associated command-line tool";
+    description = "Library for manipulating storage volume encryption keys and storing them separately from volumes to handle forgotten passphrases, and the associated command-line tool";
     mainProgram = "volume_key";
     homepage = "https://pagure.io/volume_key/";
     license = licenses.gpl2;
diff --git a/pkgs/development/libraries/vrb/default.nix b/pkgs/development/libraries/vrb/default.nix
index b4a2f9a388f19..f6ab54dba0304 100644
--- a/pkgs/development/libraries/vrb/default.nix
+++ b/pkgs/development/libraries/vrb/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A virtual ring buffer library written in C";
+    description = "Virtual ring buffer library written in C";
     mainProgram = "vbuf";
     license     = licenses.lgpl21;
     homepage    = "http://vrb.sourceforge.net/";
diff --git a/pkgs/development/libraries/vte/default.nix b/pkgs/development/libraries/vte/default.nix
index 89af6e847a887..87cf27f70fd47 100644
--- a/pkgs/development/libraries/vte/default.nix
+++ b/pkgs/development/libraries/vte/default.nix
@@ -32,14 +32,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "vte";
-  version = "0.76.1";
+  version = "0.76.3";
 
   outputs = [ "out" "dev" ]
     ++ lib.optional (gtkVersion != null) "devdoc";
 
   src = fetchurl {
     url = "mirror://gnome/sources/vte/${lib.versions.majorMinor finalAttrs.version}/vte-${finalAttrs.version}.tar.xz";
-    hash = "sha256-CE6D73ZXdCaaSynfl8oi7cNDuaHYFDPTALjLLQh6HsI=";
+    hash = "sha256-9njpTAVvN3/QAhIUrf9UUMsXLpoIsWCREYHd/3t9XWA=";
   };
 
   patches = [
@@ -125,7 +125,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://www.gnome.org/";
-    description = "A library implementing a terminal emulator widget for GTK";
+    description = "Library implementing a terminal emulator widget for GTK";
     longDescription = ''
       VTE is a library (libvte) implementing a terminal emulator widget for
       GTK, and a minimal sample application (vte) using that.  Vte is
diff --git a/pkgs/development/libraries/vulkan-utility-libraries/default.nix b/pkgs/development/libraries/vulkan-utility-libraries/default.nix
index 81793528e84de..769cdb95908dd 100644
--- a/pkgs/development/libraries/vulkan-utility-libraries/default.nix
+++ b/pkgs/development/libraries/vulkan-utility-libraries/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation (finalAttrs: {
   buildInputs = [ vulkan-headers ];
 
   meta = with lib; {
-    description = "A set of utility libraries for Vulkan";
+    description = "Set of utility libraries for Vulkan";
     homepage = "https://github.com/KhronosGroup/Vulkan-Utility-Libraries";
     platforms = platforms.all;
     license = licenses.asl20;
diff --git a/pkgs/development/libraries/waffle/default.nix b/pkgs/development/libraries/waffle/default.nix
index 6867f9da410ef..9f8d4e914b71e 100644
--- a/pkgs/development/libraries/waffle/default.nix
+++ b/pkgs/development/libraries/waffle/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A cross-platform C library that allows one to defer selection of an OpenGL API and window system until runtime";
+    description = "Cross-platform C library that allows one to defer selection of an OpenGL API and window system until runtime";
     mainProgram = "wflinfo";
     homepage = "https://www.waffle-gl.org/";
     license = licenses.bsd2;
diff --git a/pkgs/development/libraries/wangle/default.nix b/pkgs/development/libraries/wangle/default.nix
index 080bfb4d018c6..e90d05318eac4 100644
--- a/pkgs/development/libraries/wangle/default.nix
+++ b/pkgs/development/libraries/wangle/default.nix
@@ -74,7 +74,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "An open-source C++ networking library";
+    description = "Open-source C++ networking library";
     longDescription = ''
       Wangle is a framework providing a set of common client/server
       abstractions for building services in a consistent, modular, and
diff --git a/pkgs/development/libraries/wapp/default.nix b/pkgs/development/libraries/wapp/default.nix
index 8c414a28f1226..fd98f419da9af 100644
--- a/pkgs/development/libraries/wapp/default.nix
+++ b/pkgs/development/libraries/wapp/default.nix
@@ -25,7 +25,7 @@ tcl.mkTclDerivation {
 
   meta = with lib; {
     homepage = "https://wapp.tcl-lang.org/home/doc/trunk/README.md";
-    description = "A framework for writing web applications in Tcl";
+    description = "Framework for writing web applications in Tcl";
     license = licenses.bsd2;
     maintainers = with maintainers; [ nat-418 ];
   };
diff --git a/pkgs/development/libraries/waylib/default.nix b/pkgs/development/libraries/waylib/default.nix
index d8522e1f64ff7..1cc5332cf777c 100644
--- a/pkgs/development/libraries/waylib/default.nix
+++ b/pkgs/development/libraries/waylib/default.nix
@@ -72,7 +72,7 @@ stdenv.mkDerivation (finalAttrs: {
   outputs = [ "out" "dev" "bin" ];
 
   meta = {
-    description = "A wrapper for wlroots based on Qt";
+    description = "Wrapper for wlroots based on Qt";
     homepage = "https://github.com/vioken/waylib";
     license = with lib.licenses; [ gpl3Only lgpl3Only asl20 ];
     outputsToInstall = [ "out" ];
diff --git a/pkgs/development/libraries/webkitgtk/default.nix b/pkgs/development/libraries/webkitgtk/default.nix
index cbe910b4469ed..98c28ca67997d 100644
--- a/pkgs/development/libraries/webkitgtk/default.nix
+++ b/pkgs/development/libraries/webkitgtk/default.nix
@@ -48,6 +48,8 @@
 , lcms2
 , libmanette
 , geoclue2
+, flite
+, openssl
 , sqlite
 , gst-plugins-base
 , gst-plugins-bad
@@ -62,6 +64,7 @@
 , unifdef
 , addOpenGLRunpath
 , enableGeoLocation ? true
+, enableExperimental ? false
 , withLibsecret ? true
 , systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemd
 , testers
@@ -165,6 +168,9 @@ stdenv.mkDerivation (finalAttrs: {
     systemd
   ] ++ lib.optionals enableGeoLocation [
     geoclue2
+  ] ++ lib.optionals enableExperimental [
+    flite
+    openssl
   ] ++ lib.optionals withLibsecret [
     libsecret
   ] ++ lib.optionals (lib.versionAtLeast gtk3.version "4.0") [
@@ -184,6 +190,7 @@ stdenv.mkDerivation (finalAttrs: {
     "-DUSE_LIBHYPHEN=OFF"
     "-DUSE_SOUP2=${cmakeBool (lib.versions.major libsoup.version == "2")}"
     "-DUSE_LIBSECRET=${cmakeBool withLibsecret}"
+    "-DENABLE_EXPERIMENTAL_FEATURES=${cmakeBool enableExperimental}"
   ] ++ lib.optionals stdenv.isLinux [
     # Have to be explicitly specified when cross.
     # https://github.com/WebKit/WebKit/commit/a84036c6d1d66d723f217a4c29eee76f2039a353
diff --git a/pkgs/development/libraries/webp-pixbuf-loader/default.nix b/pkgs/development/libraries/webp-pixbuf-loader/default.nix
index b3f4e4d483901..78496c0e919e3 100644
--- a/pkgs/development/libraries/webp-pixbuf-loader/default.nix
+++ b/pkgs/development/libraries/webp-pixbuf-loader/default.nix
@@ -52,6 +52,9 @@ stdenv.mkDerivation rec {
     GDK_PIXBUF_MODULEDIR="$out/${moduleDir}" \
     gdk-pixbuf-query-loaders --update-cache
 
+    # gdk-pixbuf disables the thumbnailer in cross-builds (https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/commit/fc37708313a5fc52083cf10c9326f3509d67701f)
+    # and therefore makeWrapper will fail because 'gdk-pixbuf-thumbnailer' the executable does not exist.
+  '' + lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
     # It assumes gdk-pixbuf-thumbnailer can find the webp loader in the loaders.cache referenced by environment variable, breaking containment.
     # So we replace it with a wrapped executable.
     mkdir -p "$out/bin"
diff --git a/pkgs/development/libraries/webrtc-audio-processing/0.3.nix b/pkgs/development/libraries/webrtc-audio-processing/0.3.nix
index b7887bce3e1b2..3ac5e2bd4adc9 100644
--- a/pkgs/development/libraries/webrtc-audio-processing/0.3.nix
+++ b/pkgs/development/libraries/webrtc-audio-processing/0.3.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing";
-    description = "A more Linux packaging friendly copy of the AudioProcessing module from the WebRTC project";
+    description = "More Linux packaging friendly copy of the AudioProcessing module from the WebRTC project";
     license = licenses.bsd3;
     # https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/blob/v0.3.1/webrtc/typedefs.h
     # + our patches
diff --git a/pkgs/development/libraries/webrtc-audio-processing/default.nix b/pkgs/development/libraries/webrtc-audio-processing/default.nix
index b400893067353..b25ea77b44b46 100644
--- a/pkgs/development/libraries/webrtc-audio-processing/default.nix
+++ b/pkgs/development/libraries/webrtc-audio-processing/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing";
-    description = "A more Linux packaging friendly copy of the AudioProcessing module from the WebRTC project";
+    description = "More Linux packaging friendly copy of the AudioProcessing module from the WebRTC project";
     license = licenses.bsd3;
     # https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/blob/master/webrtc/rtc_base/system/arch.h
     platforms = intersectLists platforms.unix (platforms.arm ++ platforms.aarch64 ++ platforms.mips ++ platforms.power ++ platforms.riscv ++ platforms.x86);
diff --git a/pkgs/development/libraries/wlroots/default.nix b/pkgs/development/libraries/wlroots/default.nix
index f62a4661a9949..10fb01d86d415 100644
--- a/pkgs/development/libraries/wlroots/default.nix
+++ b/pkgs/development/libraries/wlroots/default.nix
@@ -97,7 +97,7 @@ let
       passthru.tests.tinywl = nixosTests.tinywl;
 
       meta = {
-        description = "A modular Wayland compositor library";
+        description = "Modular Wayland compositor library";
         longDescription = ''
           Pluggable, composable, unopinionated modules for building a Wayland
           compositor; or about 50,000 lines of code you were going to write anyway.
diff --git a/pkgs/development/libraries/wolfssl/default.nix b/pkgs/development/libraries/wolfssl/default.nix
index 76a07212c7855..cfd6b99412a14 100644
--- a/pkgs/development/libraries/wolfssl/default.nix
+++ b/pkgs/development/libraries/wolfssl/default.nix
@@ -96,7 +96,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A small, fast, portable implementation of TLS/SSL for embedded devices";
+    description = "Small, fast, portable implementation of TLS/SSL for embedded devices";
     mainProgram = "wolfssl-config";
     homepage = "https://www.wolfssl.com/";
     changelog = "https://github.com/wolfSSL/wolfssl/releases/tag/v${finalAttrs.version}-stable";
diff --git a/pkgs/development/libraries/wxSVG/default.nix b/pkgs/development/libraries/wxSVG/default.nix
index 8519cbaacc246..d14a77a67004e 100644
--- a/pkgs/development/libraries/wxSVG/default.nix
+++ b/pkgs/development/libraries/wxSVG/default.nix
@@ -16,11 +16,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "wxSVG";
-  version = "1.5.24";
+  version = "1.5.25";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/wxsvg/wxsvg/${version}/wxsvg-${version}.tar.bz2";
-    hash = "sha256-rkcykfjQpf6voGzScMgmxr6tS86yud1vzs8tt8JeJII=";
+    hash = "sha256-W/asaDG1S9Ga70jN6PoFctu2PzCu6dUyP2vms/MmU0s=";
   };
 
   postPatch = ''
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://wxsvg.sourceforge.net/";
-    description = "A SVG manipulation library built with wxWidgets";
+    description = "SVG manipulation library built with wxWidgets";
     mainProgram = "svgview";
     longDescription = ''
       wxSVG is C++ library to create, manipulate and render Scalable Vector
diff --git a/pkgs/development/libraries/wxsqlite3/default.nix b/pkgs/development/libraries/wxsqlite3/default.nix
index 447e2fa879bf1..b968af23c0dad 100644
--- a/pkgs/development/libraries/wxsqlite3/default.nix
+++ b/pkgs/development/libraries/wxsqlite3/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wxsqlite3";
-  version = "4.9.10";
+  version = "4.9.11";
 
   src = fetchFromGitHub {
     owner = "utelle";
     repo = "wxsqlite3";
     rev = "v${version}";
-    hash = "sha256-L7GpDAqx7hF/PBLy6h10pAydpjaJU3JFgTZ2bJhZtG0=";
+    hash = "sha256-aX1YU35ATL+f18tGIba6cgNYZvYm3TshHsN7RFD+vI4=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://utelle.github.io/wxsqlite3/";
-    description = "A C++ wrapper around the public domain SQLite 3.x for wxWidgets";
+    description = "C++ wrapper around the public domain SQLite 3.x for wxWidgets";
     platforms = platforms.unix;
     maintainers = with maintainers; [ vrthra ];
     license = with licenses; [ lgpl3Plus gpl3Plus ];
diff --git a/pkgs/development/libraries/wxsqliteplus/default.nix b/pkgs/development/libraries/wxsqliteplus/default.nix
index 3bb7729f7db0e..aece1eb09cfff 100644
--- a/pkgs/development/libraries/wxsqliteplus/default.nix
+++ b/pkgs/development/libraries/wxsqliteplus/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple SQLite database browser built with wxWidgets";
+    description = "Simple SQLite database browser built with wxWidgets";
     mainProgram = "wxsqliteplus";
     homepage = "https://github.com/guanlisheng/wxsqliteplus";
     license = licenses.gpl3Plus;
diff --git a/pkgs/development/libraries/wxwidgets/wxGTK31.nix b/pkgs/development/libraries/wxwidgets/wxGTK31.nix
index 13052747eb5ea..be0c45c701dc8 100644
--- a/pkgs/development/libraries/wxwidgets/wxGTK31.nix
+++ b/pkgs/development/libraries/wxwidgets/wxGTK31.nix
@@ -131,7 +131,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.wxwidgets.org/";
-    description = "A Cross-Platform C++ GUI Library";
+    description = "Cross-Platform C++ GUI Library";
     longDescription = ''
       wxWidgets gives you a single, easy-to-use API for writing GUI applications
       on multiple platforms that still utilize the native platform's controls
diff --git a/pkgs/development/libraries/wxwidgets/wxGTK32.nix b/pkgs/development/libraries/wxwidgets/wxGTK32.nix
index 3094f253a01ab..1eb1ede66cb09 100644
--- a/pkgs/development/libraries/wxwidgets/wxGTK32.nix
+++ b/pkgs/development/libraries/wxwidgets/wxGTK32.nix
@@ -51,23 +51,15 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "wxwidgets";
-  version = "3.2.4";
+  version = "3.2.5";
 
   src = fetchFromGitHub {
     owner = "wxWidgets";
     repo = "wxWidgets";
     rev = "v${version}";
-    hash = "sha256-YkV150sDsfBEHvHne0GF6i8Y5881NrByPkLtPAmb24E=";
+    hash = "sha256-ibkXs693xO+z3JuMvlG4b/+A8f4Lf5TYqdDa67fb9ck=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "avoid_gtk3_crash.patch";
-      url = "https://github.com/wxWidgets/wxWidgets/commit/8ea22b5e92bf46add0b20059f6e39a938858ff97.patch";
-      hash = "sha256-zAyqVTdej4F3R7vVMLiKkXqJTAHDtGYJnyjaRyDmMOM=";
-    })
-  ];
-
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [
@@ -149,7 +141,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.wxwidgets.org/";
-    description = "A Cross-Platform C++ GUI Library";
+    description = "Cross-Platform C++ GUI Library";
     longDescription = ''
       wxWidgets gives you a single, easy-to-use API for writing GUI applications
       on multiple platforms that still utilize the native platform's controls
diff --git a/pkgs/development/libraries/xalanc/default.nix b/pkgs/development/libraries/xalanc/default.nix
index 707f819f13290..ccf914b46ee1e 100644
--- a/pkgs/development/libraries/xalanc/default.nix
+++ b/pkgs/development/libraries/xalanc/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://xalan.apache.org/";
-    description = "A XSLT processor for transforming XML documents";
+    description = "XSLT processor for transforming XML documents";
     mainProgram = "Xalan";
     license = lib.licenses.asl20;
     platforms = lib.platforms.linux ++ lib.platforms.darwin;
diff --git a/pkgs/development/libraries/xcb-imdkit/default.nix b/pkgs/development/libraries/xcb-imdkit/default.nix
index 1286b5e2157cc..41710d5ca3dcc 100644
--- a/pkgs/development/libraries/xcb-imdkit/default.nix
+++ b/pkgs/development/libraries/xcb-imdkit/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xcb-imdkit";
-  version = "1.0.8";
+  version = "1.0.9";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = "xcb-imdkit";
     rev = version;
-    hash = "sha256-ANU3suG62G0M5ZUWaNcwD4ot/EYSK7236zGVQZIjjuE=";
+    hash = "sha256-QfuetGPY6u4OhFiE5/CoVEpdODWnd1PHWBtM3ymsZ98=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix b/pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix
index e28ea0da6b0a7..00af282c5277b 100644
--- a/pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix
+++ b/pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix
@@ -19,13 +19,13 @@
 , webp-pixbuf-loader
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "xdg-desktop-portal-gnome";
-  version = "46.1";
+  version = "46.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-fo2WI+nZaonAiXYWgnzUQdzygykn048TXHIlUrEXKqE=";
+    url = "mirror://gnome/sources/xdg-desktop-portal-gnome/${lib.versions.major finalAttrs.version}/xdg-desktop-portal-gnome-${finalAttrs.version}.tar.xz";
+    hash = "sha256-tcZeol6Eg1AtAzphO+bca3GIOsB/Gj5HStGAScR9FtY=";
   };
 
   nativeBuildInputs = [
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = "xdg-desktop-portal-gnome";
     };
   };
 
@@ -75,4 +75,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = licenses.lgpl21Plus;
   };
-}
+})
diff --git a/pkgs/development/libraries/xdg-desktop-portal-xapp/default.nix b/pkgs/development/libraries/xdg-desktop-portal-xapp/default.nix
index d614627a07493..6f5cac6983c34 100644
--- a/pkgs/development/libraries/xdg-desktop-portal-xapp/default.nix
+++ b/pkgs/development/libraries/xdg-desktop-portal-xapp/default.nix
@@ -8,19 +8,20 @@
 , cinnamon
 , glib
 , gsettings-desktop-schemas
+, gtk3
 , mate
 , xdg-desktop-portal
 }:
 
 stdenv.mkDerivation rec {
   pname = "xdg-desktop-portal-xapp";
-  version = "1.0.4";
+  version = "1.0.6";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "xdg-desktop-portal-xapp";
     rev = version;
-    hash = "sha256-Zz44PCociYhUuHTS3HJNxJPCkiIl01FFe4//7jtgDsk=";
+    hash = "sha256-ujfXZfBXr3T4e8+bIfkvdvBnEQfW7oPByaiXg/SBwJY=";
   };
 
   nativeBuildInputs = [
@@ -34,6 +35,7 @@ stdenv.mkDerivation rec {
     cinnamon.cinnamon-desktop # org.cinnamon.desktop.background
     glib
     gsettings-desktop-schemas # org.gnome.system.location
+    gtk3
     mate.mate-desktop # org.mate.background
     xdg-desktop-portal
   ];
diff --git a/pkgs/development/libraries/xgboost/default.nix b/pkgs/development/libraries/xgboost/default.nix
index 0018a73341e31..e5432430cac3e 100644
--- a/pkgs/development/libraries/xgboost/default.nix
+++ b/pkgs/development/libraries/xgboost/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , lib
 , fetchFromGitHub
+, fetchpatch
 , cmake
 , gtest
 , doCheck ? true
@@ -27,11 +28,12 @@ let
   # This ensures xgboost gets the correct libstdc++ when
   # built with cuda support. This may be removed once
   # #226165 rewrites cudaStdenv
-  inherit (cudaPackages) backendStdenv;
-  stdenv = if cudaSupport then backendStdenv else inputs.stdenv;
+  effectiveStdenv = if cudaSupport then cudaPackages.backendStdenv else inputs.stdenv;
+  # Ensures we don't use the stdenv value by accident.
+  stdenv = builtins.throw "Use effectiveStdenv instead of stdenv in xgboost derivation.";
 in
 
-stdenv.mkDerivation rec {
+effectiveStdenv.mkDerivation rec {
   pnameBase = "xgboost";
   # prefix with r when building the R library
   # The R package build results in a special xgboost.so file
@@ -56,8 +58,16 @@ stdenv.mkDerivation rec {
     hash = "sha256-LWco3A6zwdnAf8blU4qjW7PFEeZaTcJlVTwVrs7nwWM=";
   };
 
+  patches = lib.optionals (cudaSupport && cudaPackages.cudaMajorMinorVersion == "12.4") [
+    (fetchpatch { # https://github.com/dmlc/xgboost/pull/10123
+      name = "Fix compilation with the ctk 12.4.";
+      url = "https://github.com/dmlc/xgboost/commit/c760f85db0bc7bd6379901fbfb67ceccc2b37700.patch";
+      hash = "sha256-iP9mll9pg8T2ztCR7dBPnLP17/x3ImJFrr5G3e2dqHo=";
+    })
+  ];
+
   nativeBuildInputs = [ cmake ]
-    ++ lib.optionals stdenv.isDarwin [ llvmPackages.openmp ]
+    ++ lib.optionals effectiveStdenv.isDarwin [ llvmPackages.openmp ]
     ++ lib.optionals cudaSupport [ autoAddDriverRunpath ]
     ++ lib.optionals rLibrary [ R ];
 
@@ -75,13 +85,9 @@ stdenv.mkDerivation rec {
     "-DUSE_CUDA=ON"
     # Their CMakeLists.txt does not respect CUDA_HOST_COMPILER, instead using the CXX compiler.
     # https://github.com/dmlc/xgboost/blob/ccf43d4ba0a94e2f0a3cc5a526197539ae46f410/CMakeLists.txt#L145
-    "-DCMAKE_C_COMPILER=${cudaPackages.backendStdenv.cc}/bin/gcc"
-    "-DCMAKE_CXX_COMPILER=${cudaPackages.backendStdenv.cc}/bin/g++"
-  ] ++ lib.optionals
-    (cudaSupport
-      && lib.versionAtLeast cudaPackages.cudatoolkit.version "11.4.0")
-    [ "-DBUILD_WITH_CUDA_CUB=ON" ]
-    ++ lib.optionals ncclSupport [ "-DUSE_NCCL=ON" ]
+    "-DCMAKE_C_COMPILER=${effectiveStdenv.cc}/bin/gcc"
+    "-DCMAKE_CXX_COMPILER=${effectiveStdenv.cc}/bin/g++"
+  ] ++ lib.optionals ncclSupport [ "-DUSE_NCCL=ON" ]
     ++ lib.optionals rLibrary [ "-DR_LIB=ON" ];
 
   preConfigure = lib.optionals rLibrary ''
@@ -104,7 +110,7 @@ stdenv.mkDerivation rec {
   GTEST_FILTER =
     let
       # Upstream Issue: https://github.com/xtensor-stack/xsimd/issues/456
-      filteredTests = lib.optionals stdenv.hostPlatform.isDarwin [
+      filteredTests = lib.optionals effectiveStdenv.hostPlatform.isDarwin [
         "ThreadGroup.TimerThread"
         "ThreadGroup.TimerThreadSimple"
       ];
@@ -112,8 +118,7 @@ stdenv.mkDerivation rec {
     "-${builtins.concatStringsSep ":" filteredTests}";
 
   installPhase =
-    let libname = "libxgboost${stdenv.hostPlatform.extensions.sharedLibrary}";
-    in ''
+    ''
       runHook preInstall
     ''
     # the R library option builds a completely different binary xgboost.so instead of
@@ -137,6 +142,7 @@ stdenv.mkDerivation rec {
     description =
       "Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library";
     homepage = "https://github.com/dmlc/xgboost";
+    broken = cudaSupport && cudaPackages.cudaOlder "11.4";
     license = licenses.asl20;
     mainProgram = "xgboost";
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/xmlrpc-c/default.nix b/pkgs/development/libraries/xmlrpc-c/default.nix
index 6e002a28543f3..af73a81fcb20d 100644
--- a/pkgs/development/libraries/xmlrpc-c/default.nix
+++ b/pkgs/development/libraries/xmlrpc-c/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "format" ];
 
   meta = with lib; {
-    description = "A lightweight RPC library based on XML and HTTP";
+    description = "Lightweight RPC library based on XML and HTTP";
     homepage = "https://xmlrpc-c.sourceforge.net/";
     # <xmlrpc-c>/doc/COPYING also lists "Expat license",
     # "ABYSS Web Server License" and "Python 1.5.2 License"
diff --git a/pkgs/development/libraries/xsd/default.nix b/pkgs/development/libraries/xsd/default.nix
index 8096b2edd295f..dd50c68574c4d 100644
--- a/pkgs/development/libraries/xsd/default.nix
+++ b/pkgs/development/libraries/xsd/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://www.codesynthesis.com/products/xsd";
-    description = "An open-source, cross-platform W3C XML Schema to C++ data binding compiler";
+    description = "Open-source, cross-platform W3C XML Schema to C++ data binding compiler";
     mainProgram = "xsd";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/libraries/xsimd/default.nix b/pkgs/development/libraries/xsimd/default.nix
index d775cef4d6734..019b3afbefc84 100644
--- a/pkgs/development/libraries/xsimd/default.nix
+++ b/pkgs/development/libraries/xsimd/default.nix
@@ -1,39 +1,31 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , cmake
 , doctest
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "xsimd";
-  version = "12.1.1";
+  version = "13.0.0";
   src = fetchFromGitHub {
     owner = "xtensor-stack";
     repo = "xsimd";
     rev = finalAttrs.version;
-    hash = "sha256-ofUFieeRtpnzNv3Ad5oYwKWb2XcqQHoj601TIhydJyI=";
+    hash = "sha256-qElJYW5QDj3s59L3NgZj5zkhnUMzIP2mBa1sPks3/CE=";
   };
   patches = [
-    # Ideally, Accelerate/Accelerate.h should be used for this implementation,
-    # but it doesn't work... Needs a Darwin user to debug this. We apply this
-    # patch unconditionally, because the #if macros make sure it doesn't
-    # interfer with the Linux implementations.
-    ./fix-darwin-exp10-implementation.patch
+    # Fix of https://github.com/xtensor-stack/xsimd/pull/1024 for
+    # https://github.com/xtensor-stack/xsimd/issues/456 and
+    # https://github.com/xtensor-stack/xsimd/issues/807,
+    (fetchpatch {
+      url = "https://github.com/xtensor-stack/xsimd/commit/c8a87ed6e04b6782f48f94713adfb0cad6c11ddf.patch";
+      hash = "sha256-2/FvBGdqTPcayD7rdHPSzL+F8IYKAfMW0WBJ0cW9EZ0=";
+    })
   ] ++ lib.optionals stdenv.isDarwin [
-    # https://github.com/xtensor-stack/xsimd/issues/807
-    ./disable-test_error_gamma-test.patch
-  ] ++ lib.optionals (stdenv.isDarwin || stdenv.hostPlatform.isMusl) [
-    # - Darwin report: https://github.com/xtensor-stack/xsimd/issues/917
-    # - Musl   report: https://github.com/xtensor-stack/xsimd/issues/798
-    ./disable-exp10-test.patch
-  ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
-    # https://github.com/xtensor-stack/xsimd/issues/798
-    ./disable-polar-test.patch
-  ] ++ lib.optionals stdenv.hostPlatform.isMusl [
-    # Fix suggested here: https://github.com/xtensor-stack/xsimd/issues/798#issuecomment-1356884601
-    # Upstream didn't merge that from some reason.
-    ./fix-atan-test.patch
+    # https://github.com/xtensor-stack/xsimd/issues/1030
+    ./disable-test_error_gamma.patch
   ];
 
   nativeBuildInputs = [
@@ -41,7 +33,9 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   cmakeFlags = [
-    "-DBUILD_TESTS=${if (finalAttrs.finalPackage.doCheck && stdenv.hostPlatform == stdenv.buildPlatform) then "ON" else "OFF"}"
+    # Always build the tests, even if not running them, because testing whether
+    # they can be built is a test in itself.
+    "-DBUILD_TESTS=ON"
   ];
 
   doCheck = true;
diff --git a/pkgs/development/libraries/xsimd/disable-exp10-test.patch b/pkgs/development/libraries/xsimd/disable-exp10-test.patch
deleted file mode 100644
index 8d2940c3b080b..0000000000000
--- a/pkgs/development/libraries/xsimd/disable-exp10-test.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-commit 87433035c70578507e08565723c99158290f2488
-Author: Doron Behar <doron.behar@gmail.com>
-Date:   Tue Aug 1 13:26:04 2023 +0300
-
-    Darwin & Musl: Disable failing exp10 test
-
---- a/test/test_xsimd_api.cpp
-+++ b/test/test_xsimd_api.cpp
-@@ -515,15 +515,6 @@ struct xsimd_api_float_types_functions
-         value_type val(2);
-         CHECK_EQ(extract(xsimd::exp(T(val))), std::exp(val));
-     }
--    void test_exp10()
--    {
--        value_type val(2);
--#ifdef EMSCRIPTEN
--        CHECK_EQ(extract(xsimd::exp10(T(val))), doctest::Approx(std::pow(value_type(10), val)));
--#else
--        CHECK_EQ(extract(xsimd::exp10(T(val))), std::pow(value_type(10), val));
--#endif
--    }
-     void test_exp2()
-     {
-         value_type val(2);
-@@ -813,11 +804,6 @@ TEST_CASE_TEMPLATE("[xsimd api | float types functions]", B, FLOAT_TYPES)
-         Test.test_exp();
-     }
- 
--    SUBCASE("exp10")
--    {
--        Test.test_exp10();
--    }
--
-     SUBCASE("exp2")
-     {
-         Test.test_exp2();
diff --git a/pkgs/development/libraries/xsimd/disable-polar-test.patch b/pkgs/development/libraries/xsimd/disable-polar-test.patch
deleted file mode 100644
index 91128f43c2d5c..0000000000000
--- a/pkgs/development/libraries/xsimd/disable-polar-test.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-commit 9374b88b97911d9c6e19d5e764e25183cd45d534
-Author: Doron Behar <doron.behar@gmail.com>
-Date:   Tue Aug 1 13:29:16 2023 +0300
-
-    aarch64-Darwin: Disable failing polar test
-
---- a/test/test_xsimd_api.cpp
-+++ b/test/test_xsimd_api.cpp
-@@ -661,17 +661,6 @@ struct xsimd_api_float_types_functions
-         value_type val1(4);
-         CHECK_EQ(extract(xsimd::nextafter(T(val0), T(val1))), std::nextafter(val0, val1));
-     }
--    void test_polar()
--    {
--        value_type val0(3);
--        value_type val1(4);
--#ifndef EMSCRIPTEN
--        CHECK_EQ(extract(xsimd::polar(T(val0), T(val1))), std::polar(val0, val1));
--#else
--        CHECK_EQ(std::real(extract(xsimd::polar(T(val0), T(val1)))), doctest::Approx(std::real(std::polar(val0, val1))));
--        CHECK_EQ(std::imag(extract(xsimd::polar(T(val0), T(val1)))), doctest::Approx(std::imag(std::polar(val0, val1))));
--#endif
--    }
-     void test_pow()
-     {
-         value_type val0(2);
-@@ -931,11 +920,6 @@ TEST_CASE_TEMPLATE("[xsimd api | float types functions]", B, FLOAT_TYPES)
-         Test.test_nextafter();
-     }
- 
--    SUBCASE("polar")
--    {
--        Test.test_polar();
--    }
--
-     SUBCASE("pow")
-     {
-         Test.test_pow();
diff --git a/pkgs/development/libraries/xsimd/disable-test_error_gamma-test.patch b/pkgs/development/libraries/xsimd/disable-test_error_gamma.patch
index a7344d231b8db..49957ea62ed74 100644
--- a/pkgs/development/libraries/xsimd/disable-test_error_gamma-test.patch
+++ b/pkgs/development/libraries/xsimd/disable-test_error_gamma.patch
@@ -1,13 +1,7 @@
-commit 3f751cef6b27ec13418a92c5b5f36b22bb5ffd55
-Author: Doron Behar <doron.behar@gmail.com>
-Date:   Tue Aug 1 13:24:34 2023 +0300
-
-    Darwin: Disable failing test from test_error_gamma.cpp
-
-diff --git a/test/test_error_gamma.cpp b/test/test_error_gamma.cpp
+diff --git i/test/test_error_gamma.cpp w/test/test_error_gamma.cpp
 index 214cbb5..299e5b8 100644
---- a/test/test_error_gamma.cpp
-+++ b/test/test_error_gamma.cpp
+--- i/test/test_error_gamma.cpp
++++ w/test/test_error_gamma.cpp
 @@ -131,25 +131,6 @@ struct error_gamma_test
              INFO("lgamma");
              CHECK_EQ(diff, 0);
diff --git a/pkgs/development/libraries/xsimd/fix-atan-test.patch b/pkgs/development/libraries/xsimd/fix-atan-test.patch
deleted file mode 100644
index 3d1517610aae5..0000000000000
--- a/pkgs/development/libraries/xsimd/fix-atan-test.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-commit f60dad2c1d8ad47fbff761ce1cb027fc7c3a40e8
-Author: Doron Behar <doron.behar@gmail.com>
-Date:   Tue Aug 1 13:47:37 2023 +0300
-
-    Musl: Fix atan test from test_complex_trigonometric.cpp
-
-diff --git a/test/test_complex_trigonometric.cpp b/test/test_complex_trigonometric.cpp
-index a486110..691db77 100644
---- a/test/test_complex_trigonometric.cpp
-+++ b/test/test_complex_trigonometric.cpp
-@@ -155,7 +155,7 @@ struct complex_trigonometric_test
-             out = atan(in);
-             detail::store_batch(out, res, i);
-         }
--        size_t diff = detail::get_nb_diff(res, expected);
-+        size_t diff = detail::get_nb_diff_near(res, expected, 1e-12);
-         CHECK_EQ(diff, 0);
-     }
- 
diff --git a/pkgs/development/libraries/xsimd/fix-darwin-exp10-implementation.patch b/pkgs/development/libraries/xsimd/fix-darwin-exp10-implementation.patch
deleted file mode 100644
index caa7db0bcc134..0000000000000
--- a/pkgs/development/libraries/xsimd/fix-darwin-exp10-implementation.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git i/include/xsimd/arch/xsimd_scalar.hpp w/include/xsimd/arch/xsimd_scalar.hpp
-index 9066da6..7aa3b6b 100644
---- i/include/xsimd/arch/xsimd_scalar.hpp
-+++ w/include/xsimd/arch/xsimd_scalar.hpp
-@@ -502,16 +502,7 @@ namespace xsimd
-         return !(x0 == x1);
-     }
- 
--#if defined(__APPLE__)
--    inline float exp10(const float& x) noexcept
--    {
--        return __exp10f(x);
--    }
--    inline double exp10(const double& x) noexcept
--    {
--        return __exp10(x);
--    }
--#elif defined(__GLIBC__)
-+#if defined(__GLIBC__)
-     inline float exp10(const float& x) noexcept
-     {
-         return ::exp10f(x);
diff --git a/pkgs/development/libraries/xtensor/default.nix b/pkgs/development/libraries/xtensor/default.nix
index 678f87af74cfa..da85a37ab5bc0 100644
--- a/pkgs/development/libraries/xtensor/default.nix
+++ b/pkgs/development/libraries/xtensor/default.nix
@@ -13,24 +13,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "xtensor";
-  version = "0.24.7";
+  version = "0.25.0";
 
   src = fetchFromGitHub {
     owner = "xtensor-stack";
     repo = "xtensor";
     rev = finalAttrs.version;
-    hash = "sha256-dVbpcBW+jK9nIl5efk5LdKdBm8CkaJWEZ0ZY7ZuApwk=";
+    hash = "sha256-hVfdtYcJ6mzqj0AUu6QF9aVKQGYKd45RngY6UN3yOH4=";
   };
-  patches = [
-    # Support for xsimd 11
-    (fetchpatch {
-      url = "https://github.com/xtensor-stack/xtensor/commit/77a650a8018e0be6fcc76bf66685ff352ae23ef1.patch";
-      hash = "sha256-vOdUzzsSK+lYcA7fZXWOTVV202GZC0DhkMMjzggnmWE=";
-    })
-    # A single test fails on Darwin, see:
-    # https://github.com/xtensor-stack/xtensor/issues/2718
-    ./remove-failing-test_xinfo.patch
-  ];
 
   nativeBuildInputs = [
     cmake
@@ -38,18 +28,15 @@ stdenv.mkDerivation (finalAttrs: {
   propagatedBuildInputs = [
     nlohmann_json
     xtl
-  ] ++ lib.optionals (!(stdenv.isAarch64 && stdenv.isLinux)) [
-    # xsimd support is broken on aarch64-linux, see:
-    # https://github.com/xtensor-stack/xsimd/issues/945
     xsimd
   ];
 
-  cmakeFlags = let
-    cmakeBool = x: if x then "ON" else "OFF";
-  in [
-    "-DBUILD_TESTS=${cmakeBool finalAttrs.finalPackage.doCheck}"
-    "-DXTENSOR_ENABLE_ASSERT=${cmakeBool enableAssertions}"
-    "-DXTENSOR_CHECK_DIMENSION=${cmakeBool enableBoundChecks}"
+  cmakeFlags = [
+    # Always build the tests, even if not running them, because testing whether
+    # they can be built is a test in itself.
+    (lib.cmakeBool "BUILD_TESTS" true)
+    (lib.cmakeBool "XTENSOR_ENABLE_ASSERT" enableAssertions)
+    (lib.cmakeBool "XTENSOR_CHECK_DIMENSION" enableBoundChecks)
   ];
 
   doCheck = true;
@@ -59,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
   checkTarget = "xtest";
 
   meta = with lib; {
-    description = "Multi-dimensional arrays with broadcasting and lazy computing.";
+    description = "Multi-dimensional arrays with broadcasting and lazy computing";
     homepage = "https://github.com/xtensor-stack/xtensor";
     license = licenses.bsd3;
     maintainers = with maintainers; [ cpcloud ];
diff --git a/pkgs/development/libraries/xtensor/remove-failing-test_xinfo.patch b/pkgs/development/libraries/xtensor/remove-failing-test_xinfo.patch
deleted file mode 100644
index c3352c453c598..0000000000000
--- a/pkgs/development/libraries/xtensor/remove-failing-test_xinfo.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git i/test/CMakeLists.txt w/test/CMakeLists.txt
-index 46127597..727b66bd 100644
---- i/test/CMakeLists.txt
-+++ w/test/CMakeLists.txt
-@@ -189,7 +189,6 @@ set(XTENSOR_TESTS
-     test_xhistogram.cpp
-     test_xpad.cpp
-     test_xindex_view.cpp
--    test_xinfo.cpp
-     test_xio.cpp
-     test_xlayout.cpp
-     test_xmanipulation.cpp
diff --git a/pkgs/development/libraries/yaml-cpp/0.3.0.nix b/pkgs/development/libraries/yaml-cpp/0.3.0.nix
index fad3397b74b6f..7e244261005e3 100644
--- a/pkgs/development/libraries/yaml-cpp/0.3.0.nix
+++ b/pkgs/development/libraries/yaml-cpp/0.3.0.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
 
   meta = with lib; {
-    description = "A YAML parser and emitter for C++";
+    description = "YAML parser and emitter for C++";
     homepage = "https://github.com/jbeder/yaml-cpp";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/yaml-cpp/default.nix b/pkgs/development/libraries/yaml-cpp/default.nix
index 20d546e346b8f..3ee2dcf770411 100644
--- a/pkgs/development/libraries/yaml-cpp/default.nix
+++ b/pkgs/development/libraries/yaml-cpp/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
-    description = "A YAML parser and emitter for C++";
+    description = "YAML parser and emitter for C++";
     homepage = "https://github.com/jbeder/yaml-cpp";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/yojimbo/default.nix b/pkgs/development/libraries/yojimbo/default.nix
index d8c29e56aaab0..6d9856fd61a91 100644
--- a/pkgs/development/libraries/yojimbo/default.nix
+++ b/pkgs/development/libraries/yojimbo/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation {
   doCheck = true;
 
   meta = with lib; {
-    description = "A network library for client/server games with dedicated servers";
+    description = "Network library for client/server games with dedicated servers";
     longDescription = ''
       yojimbo is a network library for client/server games with dedicated servers.
       It's designed around the networking requirements of competitive multiplayer games like first person shooters.
diff --git a/pkgs/development/libraries/yyjson/default.nix b/pkgs/development/libraries/yyjson/default.nix
index e1d42ccce7b6b..96e075c02f4b9 100644
--- a/pkgs/development/libraries/yyjson/default.nix
+++ b/pkgs/development/libraries/yyjson/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = {
-    description = "The fastest JSON library in C";
+    description = "Fastest JSON library in C";
     homepage = "https://github.com/ibireme/yyjson";
     changelog = "https://github.com/ibireme/yyjson/blob/${finalAttrs.src.rev}/CHANGELOG.md";
     license = lib.licenses.mit;
diff --git a/pkgs/development/libraries/zeitgeist/default.nix b/pkgs/development/libraries/zeitgeist/default.nix
index d5e058ef726e3..a198b1b6046ec 100644
--- a/pkgs/development/libraries/zeitgeist/default.nix
+++ b/pkgs/development/libraries/zeitgeist/default.nix
@@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A service which logs the users’s activities and events";
+    description = "Service which logs the users’s activities and events";
     homepage = "https://zeitgeist.freedesktop.org/";
     maintainers = teams.freedesktop.members ++ (with maintainers; [ ]);
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/libraries/zeroc-ice/default.nix b/pkgs/development/libraries/zeroc-ice/default.nix
index 3ccb7c17f9c99..b41ec7f511745 100644
--- a/pkgs/development/libraries/zeroc-ice/default.nix
+++ b/pkgs/development/libraries/zeroc-ice/default.nix
@@ -74,7 +74,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.zeroc.com/ice.html";
-    description = "The internet communications engine";
+    description = "Internet communications engine";
     license = licenses.gpl2Only;
     platforms = platforms.unix;
     maintainers = with maintainers; [ abbradar ];
diff --git a/pkgs/development/libraries/zeromq/4.x.nix b/pkgs/development/libraries/zeromq/4.x.nix
index 2a4119e0fe225..d8509c8fc3f4b 100644
--- a/pkgs/development/libraries/zeromq/4.x.nix
+++ b/pkgs/development/libraries/zeromq/4.x.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     branch = "4";
     homepage = "http://www.zeromq.org";
-    description = "The Intelligent Transport Layer";
+    description = "Intelligent Transport Layer";
     license = licenses.mpl20;
     platforms = platforms.all;
     maintainers = with maintainers; [ fpletz ];
diff --git a/pkgs/development/libraries/zint/default.nix b/pkgs/development/libraries/zint/default.nix
index 8ba4a68e4b82d..e6f40879a9cee 100644
--- a/pkgs/development/libraries/zint/default.nix
+++ b/pkgs/development/libraries/zint/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A barcode generating tool and library";
+    description = "Barcode generating tool and library";
     longDescription = ''
       The Zint project aims to provide a complete cross-platform open source
       barcode generating solution. The package currently consists of a Qt based
diff --git a/pkgs/development/libraries/zxcvbn-c/default.nix b/pkgs/development/libraries/zxcvbn-c/default.nix
index 528d545c37c66..edd62ed3340bd 100644
--- a/pkgs/development/libraries/zxcvbn-c/default.nix
+++ b/pkgs/development/libraries/zxcvbn-c/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/tsyrogit/zxcvbn-c";
-    description = "A C/C++ implementation of the zxcvbn password strength estimation";
+    description = "C/C++ implementation of the zxcvbn password strength estimation";
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ xurei ];
diff --git a/pkgs/development/libraries/zziplib/default.nix b/pkgs/development/libraries/zziplib/default.nix
index c40cf9594cfa9..cae01170f290b 100644
--- a/pkgs/development/libraries/zziplib/default.nix
+++ b/pkgs/development/libraries/zziplib/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , perl
 , pkg-config
diff --git a/pkgs/development/lisp-modules/asdf/3.3.nix b/pkgs/development/lisp-modules/asdf/3.3.nix
index 565fe45bdfc36..3981ed272a236 100644
--- a/pkgs/development/lisp-modules/asdf/3.3.nix
+++ b/pkgs/development/lisp-modules/asdf/3.3.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, texinfo, texLive, perl }:
+{ lib, stdenv, fetchurl, fetchpatch, texinfo, texLive, perl }:
 
 stdenv.mkDerivation rec {
   pname = "asdf";
@@ -9,6 +9,14 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-NkjvNlLqJnBAfOxC9ECTtmuS5K+0v5ZXOw2xt8l7vgk=";
   };
 
+  patches = [
+    # Clasp bytecode support
+    (fetchpatch {
+      url = "https://github.com/clasp-developers/asdf/compare/fe6e3ab741c71ecebc8503e20637d4c940326421..615771b3d0ee6ebb158134769e88ba421c2ea7d1.diff";
+      hash = "sha256-jrv/vH4uxLVvaCK4UicNzIePQ12lscA0auwgTMb4QwI=";
+    })
+  ];
+
   strictDeps = true;
   nativeBuildInputs = [
     texinfo
diff --git a/pkgs/development/lisp-modules/import/hydra.lisp b/pkgs/development/lisp-modules/import/hydra.lisp
index 965b29967a394..8664ffadc08cb 100644
--- a/pkgs/development/lisp-modules/import/hydra.lisp
+++ b/pkgs/development/lisp-modules/import/hydra.lisp
@@ -174,6 +174,7 @@
    "clx-truetype"
    "collectors"
    "colorize"
+   "com.inuoe.jzon"
    "command-line-arguments"
    "css-lite"
    "css-selectors"
diff --git a/pkgs/development/lisp-modules/nix-cl.nix b/pkgs/development/lisp-modules/nix-cl.nix
index 6c52e9254f37a..6bec2c3513dbf 100644
--- a/pkgs/development/lisp-modules/nix-cl.nix
+++ b/pkgs/development/lisp-modules/nix-cl.nix
@@ -274,8 +274,8 @@ let
       inherit (first) pkg program flags faslExt asdf;
       # See dontUnpack in build-asdf-system
       src = null;
-      pname = first.pkg.pname;
-      version = "with-packages";
+      pname = "with";
+      version = "packages";
       lispLibs = packages clpkgs;
       systems = [];
     }).overrideAttrs(o: {
diff --git a/pkgs/development/lisp-modules/packages.nix b/pkgs/development/lisp-modules/packages.nix
index c93a99e07a79b..7afc6cb871379 100644
--- a/pkgs/development/lisp-modules/packages.nix
+++ b/pkgs/development/lisp-modules/packages.nix
@@ -108,18 +108,7 @@ let
     ];
   };
 
-  jzon = build-asdf-system {
-    src = pkgs.fetchzip {
-      url = "https://github.com/Zulu-Inuoe/jzon/archive/6b201d4208ac3f9721c461105b282c94139bed29.tar.gz";
-      sha256 = "01d4a78pjb1amx5amdb966qwwk9vblysm1li94n3g26mxy5zc2k3";
-    };
-    version = "0.0.0-20210905-6b201d4208";
-    pname = "jzon";
-    lispLibs = [
-      super.closer-mop
-    ];
-    systems = [ "com.inuoe.jzon" ];
-  };
+  jzon = super.com_dot_inuoe_dot_jzon;
 
   cl-notify = build-asdf-system {
     pname = "cl-notify";
@@ -430,8 +419,8 @@ let
         src = pkgs.fetchFromGitHub {
           owner = "andy128k";
           repo = "cl-gobject-introspection";
-          rev = "83beec4492948b52aae4d4152200de5d5c7ac3e9";
-          sha256 = "sha256-g/FwWE+Rzmzm5Y+irvd1AJodbp6kPHJIFOFDPhaRlXc=";
+          rev = "4908a84c16349929b309c50409815ff81fb9b3c4";
+          sha256 = "sha256-krVU5TQsVAbglxXMq29WJriWBIgQDLy1iCvB5iNziEc=";
         };}))
       (cl-webkit2.overrideAttrs (final: prev: {
         src = pkgs.fetchFromGitHub {
@@ -893,6 +882,64 @@ let
     meta.mainProgram = "qlot";
   };
 
+  misc-extensions = super.misc-extensions.overrideLispAttrs (old: rec {
+    version = "4.0.3";
+    src = pkgs.fetchFromGitLab {
+      domain = "gitlab.common-lisp.net";
+      owner = "misc-extensions";
+      repo = "misc-extensions";
+      rev = "v${version}";
+      hash = "sha256-bDNI4mIaNw/rf7ZwvwolKo6+mUUxsgubGUd/988sHAo=";
+    };
+  });
+
+  fset = super.fset.overrideLispAttrs (old: rec {
+    version = "1.4.0";
+    src = pkgs.fetchFromGitHub {
+      owner = "slburson";
+      repo = "fset";
+      rev = "v${version}";
+      hash = "sha256-alO8Ek5Xpyl5N99/LgyIZ50aoRbY7bKh3XBntFV6Q5k=";
+    };
+    lispLibs = with super; [
+      self.misc-extensions
+      mt19937
+      named-readtables
+    ];
+    meta = {
+      description = "functional collections library";
+      homepage = "https://gitlab.common-lisp.net/fset/fset/-/wikis/home";
+      license = pkgs.lib.licenses.llgpl21;
+    };
+  });
+
+  coalton = build-asdf-system {
+    pname = "coalton";
+    version = "trunk";
+    src = pkgs.fetchFromGitHub {
+      owner = "coalton-lang";
+      repo = "coalton";
+      rev = "05111b8a59e3f7346b175ce1ec621bff588e1e1f";
+      hash = "sha256-L9o7Y3zDx9qLXGe/70c1LWEKUWsSRgBQru66mIuaCFw=";
+    };
+    lispLibs = with super; [
+      alexandria
+      eclector-concrete-syntax-tree
+      fiasco
+      float-features
+      self.fset
+      named-readtables
+      trivial-garbage
+    ];
+    nativeLibs = [ pkgs.mpfr ];
+    systems = [ "coalton" "coalton/tests" ];
+    meta = {
+      description = "statically typed functional programming language that supercharges Common Lisp";
+      homepage = "https://coalton-lang.github.io";
+      license = pkgs.lib.licenses.mit;
+    };
+  };
+
   });
 
 in packages
diff --git a/pkgs/development/lua-modules/generated-packages.nix b/pkgs/development/lua-modules/generated-packages.nix
index 46f0d5310cfa8..2c44bf7f7f83b 100644
--- a/pkgs/development/lua-modules/generated-packages.nix
+++ b/pkgs/development/lua-modules/generated-packages.nix
@@ -31,6 +31,28 @@ buildLuarocksPackage {
   };
 }) {};
 
+ansicolors = callPackage({ buildLuarocksPackage, fetchurl, luaOlder }:
+buildLuarocksPackage {
+  pname = "ansicolors";
+  version = "1.0.2-3";
+  knownRockspec = (fetchurl {
+    url    = "mirror://luarocks/ansicolors-1.0.2-3.rockspec";
+    sha256 = "19y962xdx5ldl3596ywdl7n825dffz9al6j6rx6pbgmhb7pi8s5v";
+  }).outPath;
+  src = fetchurl {
+    url    = "https://github.com/kikito/ansicolors.lua/archive/v1.0.2.tar.gz";
+    sha256 = "0r4xi57njldmar9pn77l0vr5701rpmilrm51spv45lz0q9js8xps";
+  };
+
+  disabled = luaOlder "5.1";
+
+  meta = {
+    homepage = "https://github.com/kikito/ansicolors.lua";
+    description = "Library for color Manipulation.";
+    license.fullName = "MIT <http://opensource.org/licenses/MIT>";
+  };
+}) {};
+
 argparse = callPackage({ buildLuarocksPackage, fetchurl, fetchzip, luaAtLeast, luaOlder }:
 buildLuarocksPackage {
   pname = "argparse";
@@ -1867,6 +1889,31 @@ buildLuarocksPackage {
   };
 }) {};
 
+luaprompt = callPackage({ argparse, buildLuarocksPackage, fetchFromGitHub, fetchurl, luaOlder }:
+buildLuarocksPackage {
+  pname = "luaprompt";
+  version = "0.8-1";
+  knownRockspec = (fetchurl {
+    url    = "mirror://luarocks/luaprompt-0.8-1.rockspec";
+    sha256 = "17v7yqkvm4rxszqvqk3f6a6vqysh80p18l1ryif79bc7ic948br4";
+  }).outPath;
+  src = fetchFromGitHub {
+    owner = "dpapavas";
+    repo = "luaprompt";
+    rev = "v0.8";
+    hash = "sha256-GdI5sj7FBeb9q23oxVOzT+yVhMYTnggaN8Xt/z/2xZo=";
+  };
+
+  disabled = luaOlder "5.1";
+  propagatedBuildInputs = [ argparse ];
+
+  meta = {
+    homepage = "https://github.com/dpapavas/luaprompt";
+    description = "A Lua command prompt with pretty-printing and auto-completion";
+    license.fullName = "MIT/X11";
+  };
+}) {};
+
 luaposix = callPackage({ bit32, buildLuarocksPackage, fetchurl, fetchzip, luaAtLeast, luaOlder }:
 buildLuarocksPackage {
   pname = "luaposix";
@@ -1913,6 +1960,30 @@ buildLuarocksPackage {
   };
 }) {};
 
+luarocks = callPackage({ buildLuarocksPackage, fetchFromGitHub, fetchurl }:
+buildLuarocksPackage {
+  pname = "luarocks";
+  version = "3.11.0-1";
+  knownRockspec = (fetchurl {
+    url    = "mirror://luarocks/luarocks-3.11.0-1.rockspec";
+    sha256 = "0pi55445dskpw6nhrq52589h4v39fsf23c0kp8d4zg2qaf6y2n38";
+  }).outPath;
+  src = fetchFromGitHub {
+    owner = "luarocks";
+    repo = "luarocks";
+    rev = "v3.11.0";
+    hash = "sha256-mSwwBuLWoMT38iYaV/BTdDmmBz4heTRJzxBHC0Vrvc4=";
+  };
+
+
+  meta = {
+    homepage = "http://www.luarocks.org";
+    description = "A package manager for Lua modules.";
+    maintainers = with lib.maintainers; [ mrcjkb teto ];
+    license.fullName = "MIT";
+  };
+}) {};
+
 luarocks-build-rust-mlua = callPackage({ buildLuarocksPackage, fetchFromGitHub, fetchurl }:
 buildLuarocksPackage {
   pname = "luarocks-build-rust-mlua";
@@ -2317,6 +2388,29 @@ buildLuarocksPackage {
   };
 }) {};
 
+lz-n = callPackage({ buildLuarocksPackage, fetchurl, fetchzip, luaOlder }:
+buildLuarocksPackage {
+  pname = "lz.n";
+  version = "1.3.0-1";
+  knownRockspec = (fetchurl {
+    url    = "mirror://luarocks/lz.n-1.3.0-1.rockspec";
+    sha256 = "03rbinqs0za9193v0l06csvxkcfd93ikks6pnvfs2p6f64abdic9";
+  }).outPath;
+  src = fetchzip {
+    url    = "https://github.com/nvim-neorocks/lz.n/archive/v1.3.0.zip";
+    sha256 = "1hdayr06ni2zzjyciv0f36k82zlkmwnvl0imrlqxqr6hq9yqcwvx";
+  };
+
+  disabled = luaOlder "5.1";
+
+  meta = {
+    homepage = "https://github.com/nvim-neorocks/lz.n";
+    description = "🦥 A dead simple lazy-loading Lua library for Neovim plugins.";
+    maintainers = with lib.maintainers; [ mrcjkb ];
+    license.fullName = "GPL-2+";
+  };
+}) {};
+
 magick = callPackage({ buildLuarocksPackage, fetchFromGitHub, fetchurl, lua }:
 buildLuarocksPackage {
   pname = "magick";
@@ -2662,6 +2756,27 @@ buildLuarocksPackage {
   };
 }) {};
 
+psl = callPackage({ buildLuarocksPackage, fetchurl, fetchzip }:
+buildLuarocksPackage {
+  pname = "psl";
+  version = "0.3-0";
+  knownRockspec = (fetchurl {
+    url    = "mirror://luarocks/psl-0.3-0.rockspec";
+    sha256 = "1x7sc8n780k67v31bvqqxhh6ihy0k91zmp6xcxmkifr0gd008x9z";
+  }).outPath;
+  src = fetchzip {
+    url    = "https://github.com/daurnimator/lua-psl/archive/v0.3.zip";
+    sha256 = "1x9zskjn6fp9343w9314104128ik4lbk98pg6zfhl1v35107m1jx";
+  };
+
+
+  meta = {
+    homepage = "https://github.com/daurnimator/lua-psl";
+    description = "Bindings to libpsl, a C library that handles the Public Suffix List (PSL)";
+    license.fullName = "MIT";
+  };
+}) {};
+
 rapidjson = callPackage({ buildLuarocksPackage, cmake, fetchFromGitHub, fetchurl, luaOlder }:
 buildLuarocksPackage {
   pname = "rapidjson";
diff --git a/pkgs/development/lua-modules/overrides.nix b/pkgs/development/lua-modules/overrides.nix
index 7eea1ba9930c8..34338bf96b84d 100644
--- a/pkgs/development/lua-modules/overrides.nix
+++ b/pkgs/development/lua-modules/overrides.nix
@@ -29,6 +29,7 @@
 , libiconv
 , libmpack
 , libmysqlclient
+, libpsl
 , libuuid
 , libuv
 , libxcrypt
@@ -53,13 +54,15 @@
 , vimPlugins
 , vimUtils
 , yajl
+, zip
+, unzip
 , zlib
 , zziplib
 }:
 
 final: prev:
 let
-  inherit (prev) luaOlder luaAtLeast lua isLuaJIT;
+  inherit (prev) luaOlder luaAtLeast lua isLuaJIT isLua51;
 in
 {
   argparse = prev.argparse.overrideAttrs(oa: {
@@ -406,6 +409,40 @@ in
     ];
   });
 
+  luaprompt = prev.luaprompt.overrideAttrs (_: {
+    externalDeps = [
+      { name = "READLINE"; dep = readline; }
+      { name = "HISTORY"; dep = readline; }
+    ];
+  });
+
+  # As a nix user, use this derivation instead of "luarocks_bootstrap"
+  luarocks = prev.luarocks.overrideAttrs (oa: {
+
+    nativeBuildInputs = oa.nativeBuildInputs ++ [ installShellFiles lua unzip ];
+    # cmake is just to compile packages with "cmake" buildType, not luarocks itself
+    dontUseCmakeConfigure = true;
+
+    propagatedBuildInputs = [ zip unzip cmake ];
+
+    postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
+      installShellCompletion --cmd luarocks \
+        --bash <($out/bin/luarocks completion bash) \
+        --fish <($out/bin/luarocks completion fish) \
+        --zsh <($out/bin/luarocks completion zsh)
+
+      installShellCompletion --cmd luarocks-admin \
+        --bash <($out/bin/luarocks-admin completion bash) \
+        --fish <($out/bin/luarocks-admin completion fish) \
+        --zsh <($out/bin/luarocks-admin completion zsh)
+    '';
+
+    meta = oa.meta // {
+      mainProgram = "luarocks";
+    };
+
+  });
+
   luasec = prev.luasec.overrideAttrs (oa: {
     externalDeps = [
       { name = "OPENSSL"; dep = openssl; }
@@ -493,6 +530,39 @@ in
     };
   });
 
+  lz-n  = prev.lz-n.overrideAttrs(oa: {
+    doCheck = lua.luaversion == "5.1";
+    nativeCheckInputs = [ final.nlua final.busted ];
+    checkPhase = ''
+      runHook preCheck
+      export HOME=$(mktemp -d)
+      busted --lua=nlua
+      runHook postCheck
+      '';
+  });
+
+  neotest  = prev.neotest.overrideAttrs(oa: {
+    # A few tests fail for strange reasons on darwin
+    doCheck = !stdenv.isDarwin;
+    nativeCheckInputs = oa.nativeCheckInputs ++ [
+      final.nlua final.busted neovim-unwrapped
+    ];
+
+    # stick to neovim's lua version else loading shared libraries fail
+    meta = oa.meta // { broken = !isLua51; };
+
+    checkPhase = ''
+      runHook preCheck
+      export HOME=$(mktemp -d)
+      export LUA_PATH="./lua/?.lua;./lua/?/init.lua;$LUA_PATH"
+      nvim --headless -i NONE \
+        --cmd "set rtp+=${vimPlugins.plenary-nvim}" \
+        -c "PlenaryBustedDirectory tests/ {}"
+
+      runHook postCheck
+      '';
+  });
+
   haskell-tools-nvim  = prev.haskell-tools-nvim.overrideAttrs(oa: {
     doCheck = lua.luaversion == "5.1";
     nativeCheckInputs = [ final.nlua final.busted ];
@@ -617,6 +687,15 @@ in
     dontPatchShebangs = true;
   });
 
+  psl = prev.psl.overrideAttrs (drv: {
+    buildInputs = drv.buildInputs or [ ] ++ [ libpsl ];
+
+    luarocksConfig.variables = drv.luarocksConfig.variables // {
+      PSL_INCDIR = lib.getDev libpsl + "/include";
+      PSL_DIR = lib.getLib libpsl;
+    };
+  });
+
   rapidjson = prev.rapidjson.overrideAttrs (oa: {
     preBuild = ''
       sed -i '/set(CMAKE_CXX_FLAGS/d' CMakeLists.txt
@@ -668,9 +747,15 @@ in
     doCheck = true;
     nativeCheckInputs = [ final.plenary-nvim neovim-unwrapped ];
 
+    # the plugin loads the library from either the LIBSQLITE env
+    # or the vim.g.sqlite_clib_path variable.
+    postPatch = ''
+      substituteInPlace lua/sqlite/defs.lua \
+        --replace-fail "path = vim.g.sqlite_clib_path" 'path = vim.g.sqlite_clib_path or  "${sqlite.out}/lib/libsqlite3${stdenv.hostPlatform.extensions.sharedLibrary}"'
+    '';
+
     # we override 'luarocks test' because otherwise neovim doesn't find/load the plenary plugin
     checkPhase = ''
-      export LIBSQLITE="${sqlite.out}/lib/libsqlite3${stdenv.hostPlatform.extensions.sharedLibrary}"
       export HOME="$TMPDIR";
 
       nvim --headless -i NONE \
@@ -712,8 +797,6 @@ in
       substituteInPlace CMakeLists.txt \
         --replace-fail "TOML_PLUS_PLUS_SRC" "${tomlplusplus.src}/include/toml++" \
         --replace-fail "MAGIC_ENUM_SRC" "${magic-enum.src}/include/magic_enum"
-
-      cat CMakeLists.txt
     '';
   });
 
@@ -724,6 +807,9 @@ in
       hash = "sha256-2P+mokkjdj2PccQG/kAGnIoUPVnK2FqNfYpHPhsp8kw=";
     };
 
+    NIX_LDFLAGS = lib.optionalString stdenv.isDarwin
+      (if lua.pkgs.isLuaJIT then "-lluajit-${lua.luaversion}" else "-llua");
+
     nativeBuildInputs = oa.nativeBuildInputs ++ [
       cargo
       rustPlatform.cargoSetupHook
diff --git a/pkgs/development/misc/avr/libc/default.nix b/pkgs/development/misc/avr/libc/default.nix
index 9b3ac75d11046..c2b35ed722045 100644
--- a/pkgs/development/misc/avr/libc/default.nix
+++ b/pkgs/development/misc/avr/libc/default.nix
@@ -2,11 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "avr-libc";
-  version = "2.1.0";
+  version = "2.2.0";
 
+  tag_version = builtins.replaceStrings ["."] ["_"] version;
   src = fetchurl {
-    url = "https://download.savannah.gnu.org/releases/avr-libc/avr-libc-${version}.tar.bz2";
-    sha256 = "1s2lnqsbr1zs7dvsbyyckay52lm8mbjjaqf3cyx5qpcbq3jwx10b";
+    url = "https://github.com/avrdudes/avr-libc/releases/download/avr-libc-${tag_version}-release/avr-libc-${version}.tar.bz2";
+    hash = "sha256-Bxjv1PVCeId9ploLIDtAIHOzDgTf6piObyqINa0HHTU=";
   };
 
   nativeBuildInputs = [ automake autoconf ];
@@ -22,7 +23,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "a C runtime library for AVR microcontrollers";
+    description = "C runtime library for AVR microcontrollers";
     homepage = "https://github.com/avrdudes/avr-libc";
     license = licenses.bsd3;
     platforms = [ "avr-none" ];
diff --git a/pkgs/development/misc/breakpad/default.nix b/pkgs/development/misc/breakpad/default.nix
index 29c1b8b642a4f..0b5f4e52f39fa 100644
--- a/pkgs/development/misc/breakpad/default.nix
+++ b/pkgs/development/misc/breakpad/default.nix
@@ -23,7 +23,7 @@ in stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "An open-source multi-platform crash reporting system";
+    description = "Open-source multi-platform crash reporting system";
     homepage = "https://chromium.googlesource.com/breakpad";
     license = licenses.bsd3;
     maintainers = with maintainers; [ berberman ];
diff --git a/pkgs/development/misc/brev-cli/default.nix b/pkgs/development/misc/brev-cli/default.nix
index 812f063a3c620..3540c29e78ad3 100644
--- a/pkgs/development/misc/brev-cli/default.nix
+++ b/pkgs/development/misc/brev-cli/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "brev-cli";
-  version = "0.6.284";
+  version = "0.6.287";
 
   src = fetchFromGitHub {
     owner = "brevdev";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-G70309GQ3C7ZBS4baRKN3Ms4MBvCmLmPorbByZy4Qh4=";
+    sha256 = "sha256-5P0cZ7zbzEqWLQTi1kMGcC0R0BQa2gJrLzEcw17GATA=";
   };
 
   vendorHash = "sha256-IR/tgqh8rS4uN5jSOcopCutbHCKHSU9icUfRhOgu4t8=";
diff --git a/pkgs/development/misc/cppreference-doc/default.nix b/pkgs/development/misc/cppreference-doc/default.nix
index df7a153d5a73a..dc0dcc6874439 100644
--- a/pkgs/development/misc/cppreference-doc/default.nix
+++ b/pkgs/development/misc/cppreference-doc/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "cppreference-doc";
-  version = "20230810";
+  version = "20240610";
 
   src = fetchurl {
     url = "https://github.com/PeterFeicht/${pname}/releases/download/v${version}/html-book-${version}.tar.xz";
-    hash = "sha256-McCOTZnobH9j8yTT/1ME7/IDATHEoKwNHjwZxiyO1oQ=";
+    hash = "sha256-vCQSper39glNTrcPdlvfj2SeZUqKq/IBYMWoFpdoR2E=";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/development/misc/haskell/changelog-d/default.nix b/pkgs/development/misc/haskell/changelog-d/default.nix
index 7abc707540ce4..8f44ed950067e 100644
--- a/pkgs/development/misc/haskell/changelog-d/default.nix
+++ b/pkgs/development/misc/haskell/changelog-d/default.nix
@@ -1,23 +1,24 @@
 { mkDerivation, base, bytestring, cabal-install-parsers
-, Cabal-syntax, containers, directory, fetchgit, filepath
+, Cabal-syntax, containers, directory, fetchFromGitea, filepath
 , generic-lens-lite, lib, mtl, optparse-applicative, parsec, pretty
-, regex-applicative
+, regex-applicative, frontmatter
 }:
-mkDerivation {
+mkDerivation rec {
   pname = "changelog-d";
-  version = "0.1";
-  src = fetchgit {
-    url = "https://codeberg.org/fgaz/changelog-d";
-    sha256 = "0r0gr3bl88am9jivic3i8lfi9l5v1dj7xx4fvw6hhy3wdx7z50z7";
-    rev = "2816ddb78cec8b7fa4462c25028437ebfe3ad314";
-    fetchSubmodules = true;
+  version = "1.0";
+  src = fetchFromGitea {
+    domain = "codeberg.org";
+    owner = "fgaz";
+    repo = "changelog-d";
+    rev = "v${version}";
+    hash = "sha256-cXczIJb5z+Obq13F90oWcgSN1JAVqRWWw4jp2HT5G5Y=";
   };
   isLibrary = false;
   isExecutable = true;
   libraryHaskellDepends = [
     base bytestring cabal-install-parsers Cabal-syntax containers
     directory filepath generic-lens-lite mtl parsec pretty
-    regex-applicative
+    regex-applicative frontmatter
   ];
   executableHaskellDepends = [
     base bytestring Cabal-syntax directory filepath
diff --git a/pkgs/development/misc/haskell/hasura/graphql-parser.nix b/pkgs/development/misc/haskell/hasura/graphql-parser.nix
index 5061fe4a2eca9..1a1fb27bf2ec2 100644
--- a/pkgs/development/misc/haskell/hasura/graphql-parser.nix
+++ b/pkgs/development/misc/haskell/hasura/graphql-parser.nix
@@ -26,7 +26,7 @@ mkDerivation {
     base bytestring prettyprinter tasty-bench text text-builder
   ];
   homepage = "https://github.com/hasura/graphql-parser-hs";
-  description = "A native Haskell GraphQL parser";
+  description = "Native Haskell GraphQL parser";
   license = lib.licenses.bsd3;
   maintainers = with lib.maintainers; [ lassulus ];
 
diff --git a/pkgs/development/misc/haskell/hasura/pool.nix b/pkgs/development/misc/haskell/hasura/pool.nix
index c03b1fb88121d..e2780e2cadec4 100644
--- a/pkgs/development/misc/haskell/hasura/pool.nix
+++ b/pkgs/development/misc/haskell/hasura/pool.nix
@@ -18,7 +18,7 @@ mkDerivation {
   ];
   testHaskellDepends = [ base hspec ];
   homepage = "https://github.com/bos/pool";
-  description = "A high-performance striped resource pooling implementation";
+  description = "High-performance striped resource pooling implementation";
   license = lib.licenses.bsd3;
   maintainers = with lib.maintainers; [ lassulus ];
 }
diff --git a/pkgs/development/misc/msp430/mspdebug.nix b/pkgs/development/misc/msp430/mspdebug.nix
index 43689420f8030..18462c456ce20 100644
--- a/pkgs/development/misc/msp430/mspdebug.nix
+++ b/pkgs/development/misc/msp430/mspdebug.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
   unameS = lib.optionalString stdenv.isDarwin "Darwin";
 
   meta = with lib; {
-    description = "A free programmer, debugger, and gdb proxy for MSP430 MCUs";
+    description = "Free programmer, debugger, and gdb proxy for MSP430 MCUs";
     mainProgram = "mspdebug";
     homepage = "https://dlbeer.co.nz/mspdebug/";
     license = licenses.gpl2;
diff --git a/pkgs/development/misc/newlib/default.nix b/pkgs/development/misc/newlib/default.nix
index 56c644af140ac..f9490ac1d2bf8 100644
--- a/pkgs/development/misc/newlib/default.nix
+++ b/pkgs/development/misc/newlib/default.nix
@@ -110,7 +110,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "a C library intended for use on embedded systems";
+    description = "C library intended for use on embedded systems";
     homepage = "https://sourceware.org/newlib/";
     # arch has "bsd" while gentoo has "NEWLIB LIBGLOSS GPL-2" while COPYING has "gpl2"
     # there are 5 copying files in total
diff --git a/pkgs/development/misc/or1k/newlib.nix b/pkgs/development/misc/or1k/newlib.nix
index 92829896a27c8..127d84a82ea21 100644
--- a/pkgs/development/misc/or1k/newlib.nix
+++ b/pkgs/development/misc/or1k/newlib.nix
@@ -1,6 +1,6 @@
-{ stdenv, texinfo, flex, bison, fetchFromGitHub, crossLibcStdenv, buildPackages }:
+{ stdenv, texinfo, flex, bison, fetchFromGitHub, stdenvNoLibc, buildPackages }:
 
-crossLibcStdenv.mkDerivation {
+stdenvNoLibc.mkDerivation {
   name = "newlib";
   src = fetchFromGitHub {
     owner = "openrisc";
diff --git a/pkgs/development/misc/rappel/default.nix b/pkgs/development/misc/rappel/default.nix
index e00a6030acec9..6a4ff7133e5c9 100644
--- a/pkgs/development/misc/rappel/default.nix
+++ b/pkgs/development/misc/rappel/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/yrp604/rappel";
-    description = "A pretty janky assembly REPL";
+    description = "Pretty janky assembly REPL";
     mainProgram = "rappel";
     license = licenses.bsdOriginal;
     maintainers = [ maintainers.pamplemousse ];
diff --git a/pkgs/development/misc/resholve/deps.nix b/pkgs/development/misc/resholve/deps.nix
index 3ec2f2dcb83b9..5b4133465fa74 100644
--- a/pkgs/development/misc/resholve/deps.nix
+++ b/pkgs/development/misc/resholve/deps.nix
@@ -34,7 +34,7 @@ rec {
     pythonImportsCheck = [ "configargparse" ];
 
     meta = with lib; {
-      description = "A drop-in replacement for argparse";
+      description = "Drop-in replacement for argparse";
       homepage = "https://github.com/bw2/ConfigArgParse";
       license = licenses.mit;
     };
@@ -51,7 +51,7 @@ rec {
     doCheck = false;
 
     meta = {
-      description = "A Python 2 and 3 compatibility library";
+      description = "Python 2 and 3 compatibility library";
       homepage = "https://pypi.python.org/pypi/six/";
       license = lib.licenses.mit;
     };
diff --git a/pkgs/development/misc/resholve/test.nix b/pkgs/development/misc/resholve/test.nix
index 887c4e45cd88d..ab61884963aa3 100644
--- a/pkgs/development/misc/resholve/test.nix
+++ b/pkgs/development/misc/resholve/test.nix
@@ -3,7 +3,6 @@
 , callPackage
 , resholve
 , shunit2
-, fetchFromGitHub
 , coreutils
 , gnused
 , gnugrep
diff --git a/pkgs/development/misc/umr/default.nix b/pkgs/development/misc/umr/default.nix
index 37177f926b681..aa9b63c3d0d71 100644
--- a/pkgs/development/misc/umr/default.nix
+++ b/pkgs/development/misc/umr/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A userspace debugging and diagnostic tool for AMD GPUs";
+    description = "Userspace debugging and diagnostic tool for AMD GPUs";
     homepage = "https://gitlab.freedesktop.org/tomstdenis/umr";
     license = licenses.mit;
     maintainers = with maintainers; [ Flakebi ];
diff --git a/pkgs/development/misc/vc4/newlib.nix b/pkgs/development/misc/vc4/newlib.nix
index e1a8b2eeaa6a7..48efd317d4c26 100644
--- a/pkgs/development/misc/vc4/newlib.nix
+++ b/pkgs/development/misc/vc4/newlib.nix
@@ -1,6 +1,6 @@
-{ stdenv, texinfo, flex, bison, fetchFromGitHub, crossLibcStdenv, buildPackages }:
+{ stdenv, texinfo, flex, bison, fetchFromGitHub, stdenvNoLibc, buildPackages }:
 
-crossLibcStdenv.mkDerivation {
+stdenvNoLibc.mkDerivation {
   name = "newlib";
   src = fetchFromGitHub {
     owner = "itszor";
diff --git a/pkgs/development/mobile/adb-sync/default.nix b/pkgs/development/mobile/adb-sync/default.nix
index 90087c48dddad..8233bd9998490 100644
--- a/pkgs/development/mobile/adb-sync/default.nix
+++ b/pkgs/development/mobile/adb-sync/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A tool to synchronise files between a PC and an Android devices using ADB (Android Debug Bridge)";
+    description = "Tool to synchronise files between a PC and an Android devices using ADB (Android Debug Bridge)";
     homepage = "https://github.com/google/adb-sync";
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/pkgs/development/mobile/androidenv/README.md b/pkgs/development/mobile/androidenv/README.md
index 04cb157dba566..bf3726342091c 100644
--- a/pkgs/development/mobile/androidenv/README.md
+++ b/pkgs/development/mobile/androidenv/README.md
@@ -6,7 +6,7 @@
 4. Update the relevant argument defaults in `compose-android-packages.nix`
 
 # How to run tests
-You may need to make yourself familiar with [tests](https://nixos.org/manual/nixpkgs/stable/#var-meta-tests), and [Writing larger package tests](https://nixos.org/manual/nixpkgs/stable/#ssec-package-tests-writing) in the Manual, then run tests locally with:
+You may need to make yourself familiar with [package tests](../../../README.md#package-tests), and [Writing larger package tests](../../../README.md#writing-larger-package-tests), then run tests locally with:
 
 ```shell
 $ export NIXPKGS_ALLOW_UNFREE=1
diff --git a/pkgs/development/mobile/androidenv/compose-android-packages.nix b/pkgs/development/mobile/androidenv/compose-android-packages.nix
index 985ef9a8e23de..72dc64a7e0c22 100644
--- a/pkgs/development/mobile/androidenv/compose-android-packages.nix
+++ b/pkgs/development/mobile/androidenv/compose-android-packages.nix
@@ -11,8 +11,8 @@
 , platformVersions ? []
 , includeSources ? false
 , includeSystemImages ? false
-, systemImageTypes ? [ "google_apis_playstore" ]
-, abiVersions ? [ "armeabi-v7a" "arm64-v8a" ]
+, systemImageTypes ? [ "google_apis" "google_apis_playstore" ]
+, abiVersions ? [ "x86" "x86_64" "armeabi-v7a" "arm64-v8a" ]
 , cmakeVersions ? [ ]
 , includeNDK ? false
 , ndkVersion ? "26.3.11579264"
diff --git a/pkgs/development/mobile/androidenv/default.nix b/pkgs/development/mobile/androidenv/default.nix
index 3de6bf6e478cd..6c6f974be706b 100644
--- a/pkgs/development/mobile/androidenv/default.nix
+++ b/pkgs/development/mobile/androidenv/default.nix
@@ -15,9 +15,11 @@ rec {
     inherit composeAndroidPackages;
   };
 
-  androidPkgs_9_0 = composeAndroidPackages {
-    platformVersions = [ "28" ];
-    abiVersions = [ "x86" "x86_64"];
+  androidPkgs = composeAndroidPackages {
+    platformVersions = [ "28" "29" "30" "31" "32" "33" "34" ];
+    includeEmulator = true;
+    includeSystemImages = true;
+    includeNDK = true;
   };
 
   test-suite = pkgs.callPackage ./test-suite.nix {};
diff --git a/pkgs/development/mobile/androidenv/ndk-bundle/default.nix b/pkgs/development/mobile/androidenv/ndk-bundle/default.nix
index 0b104abe1f9a9..30a2e8171acc1 100644
--- a/pkgs/development/mobile/androidenv/ndk-bundle/default.nix
+++ b/pkgs/development/mobile/androidenv/ndk-bundle/default.nix
@@ -24,7 +24,11 @@ deployAndroidPackage rec {
       addAutoPatchelfSearchPath $out/libexec/android-sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64
     fi
 
-    find toolchains -type d -name bin -or -name lib64 | while read dir; do
+    if [ -d $out/libexec/android-sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib ]; then
+      addAutoPatchelfSearchPath $out/libexec/android-sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib
+    fi
+
+    find toolchains -type d -name bin -or -name lib64 -or -name lib | while read dir; do
       autoPatchelf "$dir"
     done
 
diff --git a/pkgs/development/mobile/genymotion/default.nix b/pkgs/development/mobile/genymotion/default.nix
index a2e81531c174a..63000e5a1ce43 100644
--- a/pkgs/development/mobile/genymotion/default.nix
+++ b/pkgs/development/mobile/genymotion/default.nix
@@ -29,11 +29,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "genymotion";
-  version = "3.6.0";
+  version = "3.7.1";
   src = fetchurl {
     url = "https://dl.genymotion.com/releases/genymotion-${version}/genymotion-${version}-linux_x64.bin";
     name = "genymotion-${version}-linux_x64.bin";
-    sha256 = "sha256-CS1A9udt47bhgnYJqqkCG3z4XaPVHmz417VTsY2ccOA=";
+    sha256 = "sha256-nWQZcYN2rxmN7J1OYkM+Oa2UIHztdAJ/eGY5MxNDX90=";
   };
 
   nativeBuildInputs = [ makeWrapper which xdg-utils ];
diff --git a/pkgs/development/mobile/gomobile/default.nix b/pkgs/development/mobile/gomobile/default.nix
index 53ca7a3b39d91..c234c81d3894f 100644
--- a/pkgs/development/mobile/gomobile/default.nix
+++ b/pkgs/development/mobile/gomobile/default.nix
@@ -57,7 +57,7 @@ buildGoModule {
   '';
 
   meta = with lib; {
-    description = "A tool for building and running mobile apps written in Go";
+    description = "Tool for building and running mobile apps written in Go";
     homepage = "https://pkg.go.dev/golang.org/x/mobile/cmd/gomobile";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jakubgs ];
diff --git a/pkgs/development/mobile/ios-webkit-debug-proxy/default.nix b/pkgs/development/mobile/ios-webkit-debug-proxy/default.nix
index a6e9be923e427..3b32a1bb9a313 100644
--- a/pkgs/development/mobile/ios-webkit-debug-proxy/default.nix
+++ b/pkgs/development/mobile/ios-webkit-debug-proxy/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A DevTools proxy (Chrome Remote Debugging Protocol) for iOS devices (Safari Remote Web Inspector)";
+    description = "DevTools proxy (Chrome Remote Debugging Protocol) for iOS devices (Safari Remote Web Inspector)";
     mainProgram = "ios_webkit_debug_proxy";
     longDescription = ''
       The ios_webkit_debug_proxy (aka iwdp) proxies requests from usbmuxd
diff --git a/pkgs/development/node-packages/aliases.nix b/pkgs/development/node-packages/aliases.nix
index 64708d8ffd925..b141c22a0acda 100644
--- a/pkgs/development/node-packages/aliases.nix
+++ b/pkgs/development/node-packages/aliases.nix
@@ -57,6 +57,7 @@ mapAliases {
   inherit (pkgs) asar; # added 2023-08-26
   inherit (pkgs) aws-azure-login; # added 2023-09-30
   balanceofsatoshis = pkgs.balanceofsatoshis; # added 2023-07-31
+  inherit (pkgs) bash-language-server; # added 2024-06-07
   bibtex-tidy = pkgs.bibtex-tidy; # added 2023-07-30
   bitwarden-cli = pkgs.bitwarden-cli; # added 2023-07-25
   inherit (pkgs) btc-rpc-explorer; # added 2023-08-17
@@ -133,9 +134,24 @@ mapAliases {
   stf = throw "stf was removed because it was broken"; # added 2023-08-21
   inherit (pkgs) stylelint; # added 2023-09-13
   surge = pkgs.surge-cli; # Added 2023-09-08
+  inherit (pkgs) svelte-language-server; # Added 2024-05-12
   swagger = throw "swagger was removed because it was broken and abandoned upstream"; # added 2023-09-09
   tedicross = throw "tedicross was removed because it was broken"; # added 2023-09-09
   inherit (pkgs) terser; # Added 2023-08-31
+  inherit (pkgs) textlint; # Added 2024-05-13
+  textlint-plugin-latex = throw "textlint-plugin-latex was removed because it is unmaintained for years. Please use textlint-plugin-latex2e instead."; # Added 2024-05-17
+  inherit (pkgs) textlint-rule-abbr-within-parentheses; # Added 2024-05-17
+  inherit (pkgs) textlint-rule-alex; # Added 2024-05-16
+  inherit (pkgs) textlint-rule-common-misspellings; # Added 2024-05-25
+  inherit (pkgs) textlint-rule-diacritics; # Added 2024-05-16
+  inherit (pkgs) textlint-rule-en-max-word-count; # Added 2024-05-17
+  inherit (pkgs) textlint-rule-max-comma; # Added 2024-05-15
+  inherit (pkgs) textlint-rule-no-start-duplicated-conjunction; # Added 2024-05-17
+  inherit (pkgs) textlint-rule-period-in-list-item; # Added 2024-05-17
+  inherit (pkgs) textlint-rule-stop-words; # Added 2024-05-17
+  inherit (pkgs) textlint-rule-terminology; # Added 2024-05-17
+  inherit (pkgs) textlint-rule-unexpanded-acronym; # Added 2024-05-17
+  inherit (pkgs) textlint-rule-write-good; # Added 2024-05-16
   thelounge = pkgs.thelounge; # Added 2023-05-22
   three = throw "three was removed because it was no longer needed"; # Added 2023-09-08
   inherit (pkgs) titanium; # added 2023-08-17
diff --git a/pkgs/development/node-packages/main-programs.nix b/pkgs/development/node-packages/main-programs.nix
index 90093aaafde12..20102095ffc98 100644
--- a/pkgs/development/node-packages/main-programs.nix
+++ b/pkgs/development/node-packages/main-programs.nix
@@ -20,7 +20,6 @@
   "@webassemblyjs/wasm-text-gen-1.11.1" = "wasmgen";
   "@webassemblyjs/wast-refmt-1.11.1" = "wast-refmt";
   aws-cdk = "cdk";
-  bash-language-server = "bash-language-server";
   cdk8s-cli = "cdk8s";
   cdktf-cli = "cdktf";
   clipboard-cli = "clipboard";
@@ -52,7 +51,6 @@
   purty = "purty";
   pscid = "pscid";
   remod-cli = "remod";
-  svelte-language-server = "svelteserver";
   teck-programmer = "teck-firmware-upgrade";
   typescript-language-server = "typescript-language-server";
   uglify-js = "uglifyjs";
diff --git a/pkgs/development/node-packages/node-env.nix b/pkgs/development/node-packages/node-env.nix
index bc1e36628ac8a..5400fc63588ee 100644
--- a/pkgs/development/node-packages/node-env.nix
+++ b/pkgs/development/node-packages/node-env.nix
@@ -109,7 +109,7 @@ let
     );
 
   # Recursively composes the dependencies of a package
-  composePackage = { name, packageName, src, dependencies ? [], ... }@args:
+  composePackage = { name, packageName, src, dependencies ? [], ... }:
     builtins.addErrorContext "while evaluating node package '${packageName}'" ''
       installPackage "${packageName}" "${src}"
       ${includeDependencies { inherit dependencies; }}
@@ -194,7 +194,7 @@ let
   # dependencies in the package.json file to the versions that are actually
   # being used.
 
-  pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }@args:
+  pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }:
     ''
       if [ -d "${packageName}" ]
       then
@@ -496,7 +496,7 @@ let
     let
       extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" "meta" ];
     in
-    stdenv.mkDerivation ({
+    stdenv.mkDerivation (finalAttrs: {
       name = "${name}${if version == null then "" else "-${version}"}";
       buildInputs = [ tarWrapper python nodejs ]
         ++ lib.optional (stdenv.isLinux) utillinux
@@ -508,8 +508,9 @@ let
       inherit dontStrip; # Stripping may fail a build for some package deployments
       inherit dontNpmInstall preRebuild unpackPhase buildPhase;
 
-      compositionScript = composePackage args;
-      pinpointDependenciesScript = pinpointDependenciesOfPackage args;
+      # TODO: enable overriding dependencies too?
+      compositionScript = composePackage { inherit packageName dependencies; inherit (finalAttrs) name src; };
+      pinpointDependenciesScript = pinpointDependenciesOfPackage { inherit packageName dependencies production; };
 
       passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
 
diff --git a/pkgs/development/node-packages/node-packages.json b/pkgs/development/node-packages/node-packages.json
index c0d021e9f4728..b2e0bf0ca2710 100644
--- a/pkgs/development/node-packages/node-packages.json
+++ b/pkgs/development/node-packages/node-packages.json
@@ -25,7 +25,6 @@
 , "auto-changelog"
 , "aws-cdk"
 , "awesome-lint"
-, "bash-language-server"
 , "bower"
 , "bower2nix"
 , "browserify"
@@ -184,7 +183,6 @@
 , "patch-package"
 , "peerflix"
 , "peerflix-server"
-, {"pgrok-build-deps": "../../tools/networking/pgrok/build-deps"}
 , "pnpm"
 , "poor-mans-t-sql-formatter-cli"
 , "postcss"
@@ -216,25 +214,10 @@
 , "sql-formatter"
 , "stackdriver-statsd-backend"
 , "svelte-check"
-, "svelte-language-server"
 , "svgo"
 , "tailwindcss"
 , "teck-programmer"
 , "tern"
-, "textlint"
-, "textlint-plugin-latex"
-, "textlint-rule-abbr-within-parentheses"
-, "textlint-rule-alex"
-, "textlint-rule-common-misspellings"
-, "textlint-rule-diacritics"
-, "textlint-rule-en-max-word-count"
-, "textlint-rule-max-comma"
-, "textlint-rule-no-start-duplicated-conjunction"
-, "textlint-rule-period-in-list-item"
-, "textlint-rule-stop-words"
-, "textlint-rule-terminology"
-, "textlint-rule-unexpanded-acronym"
-, "textlint-rule-write-good"
 , "thelounge-plugin-closepms"
 , "thelounge-plugin-giphy"
 , "thelounge-plugin-shortcuts"
diff --git a/pkgs/development/node-packages/node-packages.nix b/pkgs/development/node-packages/node-packages.nix
index 9b498be3b7faa..c8ffc441ade2b 100644
--- a/pkgs/development/node-packages/node-packages.nix
+++ b/pkgs/development/node-packages/node-packages.nix
@@ -4,31 +4,22 @@
 
 let
   sources = {
-    "@0no-co/graphql.web-1.0.4" = {
+    "@0no-co/graphql.web-1.0.7" = {
       name = "_at_0no-co_slash_graphql.web";
       packageName = "@0no-co/graphql.web";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@0no-co/graphql.web/-/graphql.web-1.0.4.tgz";
-        sha512 = "W3ezhHGfO0MS1PtGloaTpg0PbaT8aZSmmaerL7idtU5F7oCI+uu25k+MsMS31BVFlp4aMkHSrNRxiD72IlK8TA==";
-      };
-    };
-    "@aashutoshrathi/word-wrap-1.2.6" = {
-      name = "_at_aashutoshrathi_slash_word-wrap";
-      packageName = "@aashutoshrathi/word-wrap";
-      version = "1.2.6";
+      version = "1.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz";
-        sha512 = "1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==";
+        url = "https://registry.npmjs.org/@0no-co/graphql.web/-/graphql.web-1.0.7.tgz";
+        sha512 = "E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==";
       };
     };
-    "@achrinza/node-ipc-9.2.8" = {
+    "@achrinza/node-ipc-9.2.9" = {
       name = "_at_achrinza_slash_node-ipc";
       packageName = "@achrinza/node-ipc";
-      version = "9.2.8";
+      version = "9.2.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@achrinza/node-ipc/-/node-ipc-9.2.8.tgz";
-        sha512 = "DSzEEkbMYbAUVlhy7fg+BzccoRuSQzqHbIPGxGv19OJ2WKwS3/9ChAnQcII4g+GujcHhyJ8BUuOVAx/S5uAfQg==";
+        url = "https://registry.npmjs.org/@achrinza/node-ipc/-/node-ipc-9.2.9.tgz";
+        sha512 = "7s0VcTwiK/0tNOVdSX9FWMeFdOEcsAOz9HesBldXxFMaGvIak7KC2z9tV9EgsQXn6KUsWsfIkViMNuIo0GoZDQ==";
       };
     };
     "@adobe/css-tools-4.3.2" = {
@@ -85,31 +76,31 @@ let
         sha512 = "30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==";
       };
     };
-    "@angular-devkit/architect-0.1703.0" = {
+    "@angular-devkit/architect-0.1800.2" = {
       name = "_at_angular-devkit_slash_architect";
       packageName = "@angular-devkit/architect";
-      version = "0.1703.0";
+      version = "0.1800.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.0.tgz";
-        sha512 = "2X2cswI4TIwtQxCe5U9f4jeiDjAb8r89XLpU0QwEHyZyWx02uhYHO3FDMJq/NxCS95IUAQOBGBhbD4ey4Hl9cQ==";
+        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1800.2.tgz";
+        sha512 = "PX7lCTAqWe9C40+fie+DAc8vhpGA+JgZKWWrMHUTV/iZx8RXx2X4xGQsqYu36p4i3MSfQdbn+0xLWGmjScPVOQ==";
       };
     };
-    "@angular-devkit/core-17.3.0" = {
+    "@angular-devkit/core-18.0.2" = {
       name = "_at_angular-devkit_slash_core";
       packageName = "@angular-devkit/core";
-      version = "17.3.0";
+      version = "18.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.0.tgz";
-        sha512 = "ldErhMYq8rcFOhWQ0syQdLy6IYb/LL0erigj7gCMOf59oJgM7B13o/ZTOCvyJttUZ9IP0HB98Gi3epEuJ30VLg==";
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-18.0.2.tgz";
+        sha512 = "QXcEdfmODc0rKblBerk30yw70fypIkFm6gQBLJgsshpwc+TMA+fuMLcPQebOTzKLtD2tNUkk/7SrWPQIGqeXaA==";
       };
     };
-    "@angular-devkit/schematics-17.3.0" = {
+    "@angular-devkit/schematics-18.0.2" = {
       name = "_at_angular-devkit_slash_schematics";
       packageName = "@angular-devkit/schematics";
-      version = "17.3.0";
+      version = "18.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.3.0.tgz";
-        sha512 = "EW4Y8W/KTlvvT2fw3bh9hY7quDF2b9EaF+KftEqoDRWYbw0tlF8hWIdlfA6JxQC12d6uefh3kDNj5am0Il2oNQ==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.0.2.tgz";
+        sha512 = "G9yGcoB67sH0eRNWoiQWNn2KwiI7sDasVscYPGKf1yo7JRiXmzX/LpfKRPsZTl+Bs0FItnwDInsqgMisK89/6g==";
       };
     };
     "@apidevtools/json-schema-ref-parser-9.0.6" = {
@@ -283,6 +274,69 @@ let
         sha512 = "xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==";
       };
     };
+    "@ast-grep/napi-0.11.0" = {
+      name = "_at_ast-grep_slash_napi";
+      packageName = "@ast-grep/napi";
+      version = "0.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@ast-grep/napi/-/napi-0.11.0.tgz";
+        sha512 = "b+R8h20+ClsYZBJqcyguLy4THfGmg2a54HgfZ0a1vdCkfe9ftjblALiZf2DsOc0+Si8BDWd09TMNn2psUuibJA==";
+      };
+    };
+    "@ast-grep/napi-darwin-arm64-0.11.0" = {
+      name = "_at_ast-grep_slash_napi-darwin-arm64";
+      packageName = "@ast-grep/napi-darwin-arm64";
+      version = "0.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@ast-grep/napi-darwin-arm64/-/napi-darwin-arm64-0.11.0.tgz";
+        sha512 = "IxY3b102tNNm+cYLngZvUKzM1fNKCpDDWz69Yt+QnKCZNx10Hvd7mqrYE2aXTtkaNalmg/p1n6kMA8KmshGgCA==";
+      };
+    };
+    "@ast-grep/napi-darwin-x64-0.11.0" = {
+      name = "_at_ast-grep_slash_napi-darwin-x64";
+      packageName = "@ast-grep/napi-darwin-x64";
+      version = "0.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@ast-grep/napi-darwin-x64/-/napi-darwin-x64-0.11.0.tgz";
+        sha512 = "6afu1fNUwTkyE7tknVx8+d+BPKVL3623QLI9uJbJ0SZQShzSb1+dRegT4NpzPaPtFdPkflh6KfvOQ4chTw8hUg==";
+      };
+    };
+    "@ast-grep/napi-linux-x64-gnu-0.11.0" = {
+      name = "_at_ast-grep_slash_napi-linux-x64-gnu";
+      packageName = "@ast-grep/napi-linux-x64-gnu";
+      version = "0.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@ast-grep/napi-linux-x64-gnu/-/napi-linux-x64-gnu-0.11.0.tgz";
+        sha512 = "Rm0biBfIxg14tL9yAMxW6RngAEA2vYLIq1guff6Uc9Vb7yQ3HE8dnW8WAysyieIqXdVkraTTV2ZwfoUqeKfc1Q==";
+      };
+    };
+    "@ast-grep/napi-win32-arm64-msvc-0.11.0" = {
+      name = "_at_ast-grep_slash_napi-win32-arm64-msvc";
+      packageName = "@ast-grep/napi-win32-arm64-msvc";
+      version = "0.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@ast-grep/napi-win32-arm64-msvc/-/napi-win32-arm64-msvc-0.11.0.tgz";
+        sha512 = "TfX6KXxtXGQS/sWzJ1wWwWbpm3OJWpqiWGttpifSGs6DJmzfwuK0b63yX5JlhNXeUVqXkZyfYqIh5RPIPOtXSA==";
+      };
+    };
+    "@ast-grep/napi-win32-ia32-msvc-0.11.0" = {
+      name = "_at_ast-grep_slash_napi-win32-ia32-msvc";
+      packageName = "@ast-grep/napi-win32-ia32-msvc";
+      version = "0.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@ast-grep/napi-win32-ia32-msvc/-/napi-win32-ia32-msvc-0.11.0.tgz";
+        sha512 = "oQGbxYYfQn6LPbMKQ1T2cjQ+DelYDO06w/gFPmdWrE6M/YUIv+KfKdEscBkr3ehJyvXZW5h3vmxuApiMuCyfAQ==";
+      };
+    };
+    "@ast-grep/napi-win32-x64-msvc-0.11.0" = {
+      name = "_at_ast-grep_slash_napi-win32-x64-msvc";
+      packageName = "@ast-grep/napi-win32-x64-msvc";
+      version = "0.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@ast-grep/napi-win32-x64-msvc/-/napi-win32-x64-msvc-0.11.0.tgz";
+        sha512 = "qrXI4+S8W7IF6e1nlDYX2KfdzxGHyAOj5kGvWk+TqBuAnA0rWQ513hJzdviiGpbB5VPnJkEhOVsDets8acKd6w==";
+      };
+    };
     "@astrojs/compiler-1.8.2" = {
       name = "_at_astrojs_slash_compiler";
       packageName = "@astrojs/compiler";
@@ -292,13 +346,13 @@ let
         sha512 = "o/ObKgtMzl8SlpIdzaxFnt7SATKPxu4oIP/1NL+HDJRzxfJcAkOTAb/ZKMRyULbz4q+1t2/DAebs2Z1QairkZw==";
       };
     };
-    "@astrojs/compiler-2.7.0" = {
+    "@astrojs/compiler-2.8.0" = {
       name = "_at_astrojs_slash_compiler";
       packageName = "@astrojs/compiler";
-      version = "2.7.0";
+      version = "2.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.7.0.tgz";
-        sha512 = "XpC8MAaWjD1ff6/IfkRq/5k1EFj6zhCNqXRd5J43SVJEBj/Bsmizkm8N0xOYscGcDFQkRgEw6/eKnI5x/1l6aA==";
+        url = "https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.8.0.tgz";
+        sha512 = "yrpD1WRGqsJwANaDIdtHo+YVjvIOFAjC83lu5qENIgrafwZcJgSXDuwVMXOgok4tFzpeKLsFQ6c3FoUdloLWBQ==";
       };
     };
     "@asyncapi/specs-4.3.1" = {
@@ -418,13 +472,13 @@ let
         sha512 = "PI6mjM0fmcV2fqkkRoivF3DYex4lnbEz7WIsOFAwpHJBbA9ykClQpiutCKcgl0x/yEWAeTNdQtrCVeAwbxYfvw==";
       };
     };
-    "@aws-sdk/client-s3-3.536.0" = {
+    "@aws-sdk/client-s3-3.588.0" = {
       name = "_at_aws-sdk_slash_client-s3";
       packageName = "@aws-sdk/client-s3";
-      version = "3.536.0";
+      version = "3.588.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.536.0.tgz";
-        sha512 = "UM5txJxq8qKzLDVuW9c904bpb7+u1jOeyJITLz79WpyHSOP6ERHoTx/ltEuGJ4zQVazfkgthqR0lIn09sXEEuw==";
+        url = "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.588.0.tgz";
+        sha512 = "MyJs3sbgRtVOdT2xxdg/CmLk+t+dMg26nfEZucBFeJKFAHfTA74sjef9y+GQ2xFUNq+kqG1CnP8JGMiGx2ht0w==";
       };
     };
     "@aws-sdk/client-sso-3.296.0" = {
@@ -436,13 +490,13 @@ let
         sha512 = "0P0x++jhlmhzViFPOHvTb7+Z6tSV9aONwB8CchIseg2enSPBbGfml7y5gQu1jdOTDS6pBUmrPZ+9sOI4/GvAfA==";
       };
     };
-    "@aws-sdk/client-sso-3.535.0" = {
+    "@aws-sdk/client-sso-3.588.0" = {
       name = "_at_aws-sdk_slash_client-sso";
       packageName = "@aws-sdk/client-sso";
-      version = "3.535.0";
+      version = "3.588.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.535.0.tgz";
-        sha512 = "h9eQRdFnjDRVBnPJIKXuX7D+isSAioIfZPC4PQwsL5BscTRlk4c90DX0R0uk64YUtp7LZu8TNtrosFZ/1HtTrQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.588.0.tgz";
+        sha512 = "zKS+xUkBLfwjbh77ZjtRUoG/vR/fyDteSE6rOAzwlmHQL8p+QUX+zNUNvCInvPi62zGBhEwXOvzs8zvnT4NzfQ==";
       };
     };
     "@aws-sdk/client-sso-oidc-3.296.0" = {
@@ -454,13 +508,13 @@ let
         sha512 = "GRycCVdlFICvWwv9z6Mc/2BvSBOvchWO7UTklvbKXeDn6D05C+02PfxeoocMTc4r8/eFoEQWs67h5u/lPpyHDw==";
       };
     };
-    "@aws-sdk/client-sso-oidc-3.535.0" = {
+    "@aws-sdk/client-sso-oidc-3.588.0" = {
       name = "_at_aws-sdk_slash_client-sso-oidc";
       packageName = "@aws-sdk/client-sso-oidc";
-      version = "3.535.0";
+      version = "3.588.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.535.0.tgz";
-        sha512 = "M2cG4EQXDpAJQyq33ORIr6abmdX9p9zX0ssVy8XwFNB7lrgoIKxuVoGL+fX+XMgecl24x7ELz6b4QlILOevbCw==";
+        url = "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.588.0.tgz";
+        sha512 = "CTbgtLSg0y2jIOtESuQKkRIqRe/FQmKuyzFWc+Qy6yGcbk1Pyusfz2BC+GGwpYU+1BlBBSNnLQHpx3XY87+aSA==";
       };
     };
     "@aws-sdk/client-sts-3.296.0" = {
@@ -472,13 +526,13 @@ let
         sha512 = "ew7hSVNpitnLCIRVhnI2L1HZB/yYpRQFReR62fOqCUnpKqm6WGga37bnvgYbY5y0Rv23C0VHARovwunVg1gabA==";
       };
     };
-    "@aws-sdk/client-sts-3.535.0" = {
+    "@aws-sdk/client-sts-3.588.0" = {
       name = "_at_aws-sdk_slash_client-sts";
       packageName = "@aws-sdk/client-sts";
-      version = "3.535.0";
+      version = "3.588.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.535.0.tgz";
-        sha512 = "ii9OOm3TJwP3JmO1IVJXKWIShVKPl0VtdlgROc/SkDglO/kuAw9eDdlROgc+qbFl+gm6bBTguOVTUXt3tS3flw==";
+        url = "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.588.0.tgz";
+        sha512 = "UIMjcUikgG9NIENQxSyJNTHMD8TaTfK6Jjf1iuZSyQRyTrcGy0/xcDxrmwZQFAPkOPUf6w9KqydLkMLcYOBdPQ==";
       };
     };
     "@aws-sdk/config-resolver-3.296.0" = {
@@ -490,13 +544,13 @@ let
         sha512 = "Ecdp7fmIitHo49NRCyIEHb9xlI43J7qkvhcwaKGGqN5jvoh0YhR2vNr195wWG8Ip/9PwsD4QV4g/XT5EY7XkMA==";
       };
     };
-    "@aws-sdk/core-3.535.0" = {
+    "@aws-sdk/core-3.588.0" = {
       name = "_at_aws-sdk_slash_core";
       packageName = "@aws-sdk/core";
-      version = "3.535.0";
+      version = "3.588.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/core/-/core-3.535.0.tgz";
-        sha512 = "+Yusa9HziuaEDta1UaLEtMAtmgvxdxhPn7jgfRY6PplqAqgsfa5FR83sxy5qr2q7xjQTwHtV4MjQVuOjG9JsLw==";
+        url = "https://registry.npmjs.org/@aws-sdk/core/-/core-3.588.0.tgz";
+        sha512 = "O1c2+9ce46Z+iiid+W3iC1IvPbfIo5ev9CBi54GdNB9SaI8/3+f8MJcux0D6c9toCF0ArMersN/gp8ek57e9uQ==";
       };
     };
     "@aws-sdk/credential-provider-env-3.296.0" = {
@@ -508,22 +562,22 @@ let
         sha512 = "eDWSU3p04gytkkVXnYn05YzrP5SEaj/DQiafd4y+iBl8IFfF3zM6982rs6qFhvpwrHeSbLqHNfKR1HDWVwfG5g==";
       };
     };
-    "@aws-sdk/credential-provider-env-3.535.0" = {
+    "@aws-sdk/credential-provider-env-3.587.0" = {
       name = "_at_aws-sdk_slash_credential-provider-env";
       packageName = "@aws-sdk/credential-provider-env";
-      version = "3.535.0";
+      version = "3.587.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.535.0.tgz";
-        sha512 = "XppwO8c0GCGSAvdzyJOhbtktSEaShg14VJKg8mpMa1XcgqzmcqqHQjtDWbx5rZheY1VdpXZhpEzJkB6LpQejpA==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.587.0.tgz";
+        sha512 = "Hyg/5KFECIk2k5o8wnVEiniV86yVkhn5kzITUydmNGCkXdBFHMHRx6hleQ1bqwJHbBskyu8nbYamzcwymmGwmw==";
       };
     };
-    "@aws-sdk/credential-provider-http-3.535.0" = {
+    "@aws-sdk/credential-provider-http-3.587.0" = {
       name = "_at_aws-sdk_slash_credential-provider-http";
       packageName = "@aws-sdk/credential-provider-http";
-      version = "3.535.0";
+      version = "3.587.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.535.0.tgz";
-        sha512 = "kdj1wCmOMZ29jSlUskRqN04S6fJ4dvt0Nq9Z32SA6wO7UG8ht6Ot9h/au/eTWJM3E1somZ7D771oK7dQt9b8yw==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.587.0.tgz";
+        sha512 = "Su1SRWVRCuR1e32oxX3C1V4c5hpPN20WYcRfdcr2wXwHqSvys5DrnmuCC+JoEnS/zt3adUJhPliTqpfKgSdMrA==";
       };
     };
     "@aws-sdk/credential-provider-imds-3.296.0" = {
@@ -544,13 +598,13 @@ let
         sha512 = "U0ecY0GX2jeDAgmTzaVO9YgjlLUfb8wgZSu1OwbOxCJscL/5eFkhcF0/xJQXDbRgcj4H4dlquqeSWsBVl/PgvQ==";
       };
     };
-    "@aws-sdk/credential-provider-ini-3.535.0" = {
+    "@aws-sdk/credential-provider-ini-3.588.0" = {
       name = "_at_aws-sdk_slash_credential-provider-ini";
       packageName = "@aws-sdk/credential-provider-ini";
-      version = "3.535.0";
+      version = "3.588.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.535.0.tgz";
-        sha512 = "bm3XOYlyCjtAb8eeHXLrxqRxYVRw2Iqv9IufdJb4gM13TbNSYniUT1WKaHxGIZ5p+FuNlXVhvk1OpHFM13+gXA==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.588.0.tgz";
+        sha512 = "tP/YmEKvYpmp7pCR2OuhoOhAOtm6BbZ1hbeG9Sw9RFZi55dbGPHqMmfvvzHFAGsJ20z4/oDS+UnHaWVhRnV82w==";
       };
     };
     "@aws-sdk/credential-provider-node-3.296.0" = {
@@ -562,13 +616,13 @@ let
         sha512 = "oCkmh2b1DQhHkhd/qA9jiSIOkrBBK7cMg1/PVIgLw8e15NkzUHBObLJ/ZQw6ZzCxZzjlMYaFv9oCB8hyO8txmA==";
       };
     };
-    "@aws-sdk/credential-provider-node-3.535.0" = {
+    "@aws-sdk/credential-provider-node-3.588.0" = {
       name = "_at_aws-sdk_slash_credential-provider-node";
       packageName = "@aws-sdk/credential-provider-node";
-      version = "3.535.0";
+      version = "3.588.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.535.0.tgz";
-        sha512 = "6JXp/EuL6euUkH5k4d+lQFF6gBwukrcCOWfNHCmq14mNJf/cqT3HAX1VMtWFRSK20am0IxfYQGccb0/nZykdKg==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.588.0.tgz";
+        sha512 = "8s4Ruo6q1YIrj8AZKBiUQG42051ytochDMSqdVOEZGxskfvmt2XALyi5SsWd0Ve3zR95zi+EtRBNPn2EU8sQpA==";
       };
     };
     "@aws-sdk/credential-provider-process-3.296.0" = {
@@ -580,13 +634,13 @@ let
         sha512 = "AY7sTX2dGi8ripuCpcJLYHOZB2wJ6NnseyK/kK5TfJn/pgboKwuGtz0hkJCVprNWomKa6IpHksm7vLQ4O2E+UA==";
       };
     };
-    "@aws-sdk/credential-provider-process-3.535.0" = {
+    "@aws-sdk/credential-provider-process-3.587.0" = {
       name = "_at_aws-sdk_slash_credential-provider-process";
       packageName = "@aws-sdk/credential-provider-process";
-      version = "3.535.0";
+      version = "3.587.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.535.0.tgz";
-        sha512 = "9O1OaprGCnlb/kYl8RwmH7Mlg8JREZctB8r9sa1KhSsWFq/SWO0AuJTyowxD7zL5PkeS4eTvzFFHWCa3OO5epA==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.587.0.tgz";
+        sha512 = "V4xT3iCqkF8uL6QC4gqBJg/2asd/damswP1h9HCfqTllmPWzImS+8WD3VjgTLw5b0KbTy+ZdUhKc0wDnyzkzxg==";
       };
     };
     "@aws-sdk/credential-provider-sso-3.296.0" = {
@@ -598,13 +652,13 @@ let
         sha512 = "zPFHDX/niXfcQrKQhmBv1XPYEe4b7im4vRKrzjYXgDRpG2M3LP0KaWIwN6Ap+GRYBNBthen86vhTlmKGzyU5YA==";
       };
     };
-    "@aws-sdk/credential-provider-sso-3.535.0" = {
+    "@aws-sdk/credential-provider-sso-3.588.0" = {
       name = "_at_aws-sdk_slash_credential-provider-sso";
       packageName = "@aws-sdk/credential-provider-sso";
-      version = "3.535.0";
+      version = "3.588.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.535.0.tgz";
-        sha512 = "2Dw0YIr8ETdFpq65CC4zK8ZIEbX78rXoNRZXUGNQW3oSKfL0tj8O8ErY6kg1IdEnYbGnEQ35q6luZ5GGNKLgDg==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.588.0.tgz";
+        sha512 = "1GstMCyFzenVeppK7hWazMvo3P1DXKP70XkXAjH8H2ELBVg5X8Zt043cnQ7CMt4XjCV+ettHAtc9kz/gJTkDNQ==";
       };
     };
     "@aws-sdk/credential-provider-web-identity-3.296.0" = {
@@ -616,13 +670,13 @@ let
         sha512 = "Rl6Ohoekxe+pccA55XXQDW5wApbg3rGWr6FkmPRcg7Ld6Vfe+HL8OtfsFf83/0eoFerevbif+00BdknXWT05LA==";
       };
     };
-    "@aws-sdk/credential-provider-web-identity-3.535.0" = {
+    "@aws-sdk/credential-provider-web-identity-3.587.0" = {
       name = "_at_aws-sdk_slash_credential-provider-web-identity";
       packageName = "@aws-sdk/credential-provider-web-identity";
-      version = "3.535.0";
+      version = "3.587.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.535.0.tgz";
-        sha512 = "t2/JWrKY0H66A7JW7CqX06/DG2YkJddikt5ymdQvx/Q7dRMJ3d+o/vgjoKr7RvEx/pNruCeyM1599HCvwrVMrg==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.587.0.tgz";
+        sha512 = "XqIx/I2PG7kyuw3WjAP9wKlxy8IvFJwB8asOFT1xPFoVfZYKIogjG9oLP5YiRtfvDkWIztHmg5MlVv3HdJDGRw==";
       };
     };
     "@aws-sdk/eventstream-codec-3.296.0" = {
@@ -724,13 +778,13 @@ let
         sha512 = "SCIt10cr5dud7hvwveU4wkLjvkGssJ3GrcbHCds2NwI+JHmpcaaNYLAqi305JAuT29T36U5ssTFDSmrrEOcfag==";
       };
     };
-    "@aws-sdk/lib-storage-3.536.0" = {
+    "@aws-sdk/lib-storage-3.588.0" = {
       name = "_at_aws-sdk_slash_lib-storage";
       packageName = "@aws-sdk/lib-storage";
-      version = "3.536.0";
+      version = "3.588.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.536.0.tgz";
-        sha512 = "jeHnxHy02n2oEaXZx0fwNbZwnA1LZvSC6mEQZYlz3trhhqE3Ryn8HnODGR+cUKb8i+iyVCWdKRa4mfz1Xu+sQw==";
+        url = "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.588.0.tgz";
+        sha512 = "NwGw5XWxUnBRdUg08PoNN7XWF+N9lzbCBTRRmxV8FTJnzqiJEYkb4GKv5GeaeeL5Wp4qtMLMwunCxM4rhx2fsg==";
       };
     };
     "@aws-sdk/md5-js-3.296.0" = {
@@ -751,13 +805,13 @@ let
         sha512 = "Xhzucs5psscjXJW7V6vMrjJWGmej8Xtw8XIKd91RLmbxdmecMy85/mQC3bIqxgTGhC/e3pKqWSp8z/YjV6iPZg==";
       };
     };
-    "@aws-sdk/middleware-bucket-endpoint-3.535.0" = {
+    "@aws-sdk/middleware-bucket-endpoint-3.587.0" = {
       name = "_at_aws-sdk_slash_middleware-bucket-endpoint";
       packageName = "@aws-sdk/middleware-bucket-endpoint";
-      version = "3.535.0";
+      version = "3.587.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.535.0.tgz";
-        sha512 = "7sijlfQsc4UO9Fsl11mU26Y5f9E7g6UoNg/iJUBpC5pgvvmdBRO5UEhbB/gnqvOEPsBXyhmfzbstebq23Qdz7A==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.587.0.tgz";
+        sha512 = "HkFXLPl8pr6BH/Q0JpOESqEKL0ZK3sk7aSZ1S6GE4RXET7H5R94THULXqQFZzD48gZcyFooO/yNKZTqrZFaWKg==";
       };
     };
     "@aws-sdk/middleware-content-length-3.296.0" = {
@@ -787,13 +841,13 @@ let
         sha512 = "aVCv9CdAVWt9AlZKQZRweIywkAszRrZUCo8K5bBUJNdD4061DoDqLK/6jmqXmObas0j1wQr/eNzjYbv99MZBCg==";
       };
     };
-    "@aws-sdk/middleware-expect-continue-3.535.0" = {
+    "@aws-sdk/middleware-expect-continue-3.577.0" = {
       name = "_at_aws-sdk_slash_middleware-expect-continue";
       packageName = "@aws-sdk/middleware-expect-continue";
-      version = "3.535.0";
+      version = "3.577.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.535.0.tgz";
-        sha512 = "hFKyqUBky0NWCVku8iZ9+PACehx0p6vuMw5YnZf8FVgHP0fode0b/NwQY6UY7oor/GftvRsAlRUAWGNFEGUpwA==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.577.0.tgz";
+        sha512 = "6dPp8Tv4F0of4un5IAyG6q++GrRrNQQ4P2NAMB1W0VO4JoEu1C8GievbbDLi88TFIFmtKpnHB0ODCzwnoe8JsA==";
       };
     };
     "@aws-sdk/middleware-flexible-checksums-3.296.0" = {
@@ -805,13 +859,13 @@ let
         sha512 = "F5wVMhLIgA86PKsK/Az7LGIiNVDdZjoSn0+boe6fYW/AIAmgJhPf//500Md0GsKsLOCcPcxiQC43a0hVT2zbew==";
       };
     };
-    "@aws-sdk/middleware-flexible-checksums-3.535.0" = {
+    "@aws-sdk/middleware-flexible-checksums-3.587.0" = {
       name = "_at_aws-sdk_slash_middleware-flexible-checksums";
       packageName = "@aws-sdk/middleware-flexible-checksums";
-      version = "3.535.0";
+      version = "3.587.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.535.0.tgz";
-        sha512 = "rBIzldY9jjRATxICDX7t77aW6ctqmVDgnuAOgbVT5xgHftt4o7PGWKoMvl/45hYqoQgxVFnCBof9bxkqSBebVA==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.587.0.tgz";
+        sha512 = "URMwp/budDvKhIvZ4a6zIBfFTun/iDlPWXqsGKYjEtHt8jz27OSjCZtDtIeqW4WTBdKL8KZgQcl+DdaE5M1qiQ==";
       };
     };
     "@aws-sdk/middleware-host-header-3.296.0" = {
@@ -823,13 +877,13 @@ let
         sha512 = "V47dFtfkX5lXWv9GDp71gZVCRws4fEdQ9QF9BQ/2UMSNrYjQLg6mFe7NibH+IJoNOid2FIwWIl94Eos636VGYQ==";
       };
     };
-    "@aws-sdk/middleware-host-header-3.535.0" = {
+    "@aws-sdk/middleware-host-header-3.577.0" = {
       name = "_at_aws-sdk_slash_middleware-host-header";
       packageName = "@aws-sdk/middleware-host-header";
-      version = "3.535.0";
+      version = "3.577.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.535.0.tgz";
-        sha512 = "0h6TWjBWtDaYwHMQJI9ulafeS4lLaw1vIxRjbpH0svFRt6Eve+Sy8NlVhECfTU2hNz/fLubvrUxsXoThaLBIew==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.577.0.tgz";
+        sha512 = "9ca5MJz455CODIVXs0/sWmJm7t3QO4EUa1zf8pE8grLpzf0J94bz/skDWm37Pli13T3WaAQBHCTiH2gUVfCsWg==";
       };
     };
     "@aws-sdk/middleware-location-constraint-3.296.0" = {
@@ -841,13 +895,13 @@ let
         sha512 = "KHkWaIrZOtJmV1/WO9KOf7kSK41ngfqts3YIun956NYglKTDKyrBIOPCgmXTT/03odnYsKVT/UfbEIh/v4RxGA==";
       };
     };
-    "@aws-sdk/middleware-location-constraint-3.535.0" = {
+    "@aws-sdk/middleware-location-constraint-3.577.0" = {
       name = "_at_aws-sdk_slash_middleware-location-constraint";
       packageName = "@aws-sdk/middleware-location-constraint";
-      version = "3.535.0";
+      version = "3.577.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.535.0.tgz";
-        sha512 = "SxfS9wfidUZZ+WnlKRTCRn3h+XTsymXRXPJj8VV6hNRNeOwzNweoG3YhQbTowuuNfXf89m9v6meYkBBtkdacKw==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.577.0.tgz";
+        sha512 = "DKPTD2D2s+t2QUo/IXYtVa/6Un8GZ+phSTBkyBNx2kfZz4Kwavhl/JJzSqTV3GfCXkVdFu7CrjoX7BZ6qWeTUA==";
       };
     };
     "@aws-sdk/middleware-logger-3.296.0" = {
@@ -859,13 +913,13 @@ let
         sha512 = "LzfEEFyBR9LXdWwLdtBrmi1vLdzgdJNntEgzqktVF8LwaCyY+9xIE6TGu/2V+9fJHAwECxjOC1eQbNQdAZ0Tmw==";
       };
     };
-    "@aws-sdk/middleware-logger-3.535.0" = {
+    "@aws-sdk/middleware-logger-3.577.0" = {
       name = "_at_aws-sdk_slash_middleware-logger";
       packageName = "@aws-sdk/middleware-logger";
-      version = "3.535.0";
+      version = "3.577.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.535.0.tgz";
-        sha512 = "huNHpONOrEDrdRTvSQr1cJiRMNf0S52NDXtaPzdxiubTkP+vni2MohmZANMOai/qT0olmEVX01LhZ0ZAOgmg6A==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.577.0.tgz";
+        sha512 = "aPFGpGjTZcJYk+24bg7jT4XdIp42mFXSuPt49lw5KygefLyJM/sB0bKKqPYYivW0rcuZ9brQ58eZUNthrzYAvg==";
       };
     };
     "@aws-sdk/middleware-recursion-detection-3.296.0" = {
@@ -877,13 +931,13 @@ let
         sha512 = "UG7TLDPz9ImQG0uVklHTxE9Us7rTImwN+6el6qZCpoTBuGeXgOkfb0/p8izJyFgY/hMUR4cZqs7IdCDUkxQF3w==";
       };
     };
-    "@aws-sdk/middleware-recursion-detection-3.535.0" = {
+    "@aws-sdk/middleware-recursion-detection-3.577.0" = {
       name = "_at_aws-sdk_slash_middleware-recursion-detection";
       packageName = "@aws-sdk/middleware-recursion-detection";
-      version = "3.535.0";
+      version = "3.577.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.535.0.tgz";
-        sha512 = "am2qgGs+gwqmR4wHLWpzlZ8PWhm4ktj5bYSgDrsOfjhdBlWNxvPoID9/pDAz5RWL48+oH7I6SQzMqxXsFDikrw==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.577.0.tgz";
+        sha512 = "pn3ZVEd2iobKJlR3H+bDilHjgRnNrQ6HMmK9ZzZw89Ckn3Dcbv48xOv4RJvu0aU8SDLl/SNCxppKjeLDTPGBNA==";
       };
     };
     "@aws-sdk/middleware-retry-3.296.0" = {
@@ -904,13 +958,13 @@ let
         sha512 = "zH4uZKEqumo01wn+dTwrYnvOui9GjDiuBHdECnSjnA0Mkxo/tfMPYzYD7mE8kUlBz7HfQcXeXlyaApj9fPkxvg==";
       };
     };
-    "@aws-sdk/middleware-sdk-s3-3.535.0" = {
+    "@aws-sdk/middleware-sdk-s3-3.587.0" = {
       name = "_at_aws-sdk_slash_middleware-sdk-s3";
       packageName = "@aws-sdk/middleware-sdk-s3";
-      version = "3.535.0";
+      version = "3.587.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.535.0.tgz";
-        sha512 = "/dLG/E3af6ohxkQ5GBHT8tZfuPIg6eItKxCXuulvYj0Tqgf3Mb+xTsvSkxQsJF06RS4sH7Qsg/PnB8ZfrJrXpg==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.587.0.tgz";
+        sha512 = "vtXTGEiw1E9Fax4LmcU2Z208gbrC8ShrdsSLmGcRPpu5NPOGBFBSDG5sy5EDNClrFxIl/Le8coQnD0EDBtx+uQ==";
       };
     };
     "@aws-sdk/middleware-sdk-sts-3.296.0" = {
@@ -940,13 +994,13 @@ let
         sha512 = "wyiG+WPDvugGTIPpKchGOdvvpcMZEN2IfP6iK//QAqGXsC6rDm5+SNZ3+elvduZjPUdVA06W0CcFYBAkVz8D7Q==";
       };
     };
-    "@aws-sdk/middleware-signing-3.535.0" = {
+    "@aws-sdk/middleware-signing-3.587.0" = {
       name = "_at_aws-sdk_slash_middleware-signing";
       packageName = "@aws-sdk/middleware-signing";
-      version = "3.535.0";
+      version = "3.587.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.535.0.tgz";
-        sha512 = "Rb4sfus1Gc5paRl9JJgymJGsb/i3gJKK/rTuFZICdd1PBBE5osIOHP5CpzWYBtc5LlyZE1a2QoxPMCyG+QUGPw==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.587.0.tgz";
+        sha512 = "tiZaTDj4RvhXGRAlncFn7CSEfL3iNPO67WSaxAq+Ls5j1VgczPhu5262cWONNoMgth3nXR1hhLC4ITSl/a6AzA==";
       };
     };
     "@aws-sdk/middleware-ssec-3.296.0" = {
@@ -958,13 +1012,13 @@ let
         sha512 = "vcSyXxEXAC9rWzUd7rq2/JxPdt87DKiA+wfiBrpGvFV+bacocIV0TFcpJncgZqMOoP8b6Osd+mW4BjlkwBamtA==";
       };
     };
-    "@aws-sdk/middleware-ssec-3.535.0" = {
+    "@aws-sdk/middleware-ssec-3.577.0" = {
       name = "_at_aws-sdk_slash_middleware-ssec";
       packageName = "@aws-sdk/middleware-ssec";
-      version = "3.535.0";
+      version = "3.577.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.535.0.tgz";
-        sha512 = "QAQ++9my7VZzusUPOFcUMdhTnjpGRyy/OvPC+jg9usdfcaSZeQbfzbdaVBalcm2Wt+1qxh3LZSTS+LxKikm02Q==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.577.0.tgz";
+        sha512 = "i2BPJR+rp8xmRVIGc0h1kDRFcM2J9GnClqqpc+NLSjmYadlcg4mPklisz9HzwFVcRPJ5XcGf3U4BYs5G8+iTyg==";
       };
     };
     "@aws-sdk/middleware-stack-3.296.0" = {
@@ -985,13 +1039,13 @@ let
         sha512 = "L7jacxSt6gxX1gD3tQtfwHqBDk5rT2wWD3rxBa6rs7f81b9ObgY/sPT2IgRT7JNCVzvKLYFxJaTklDj65mY1SQ==";
       };
     };
-    "@aws-sdk/middleware-user-agent-3.535.0" = {
+    "@aws-sdk/middleware-user-agent-3.587.0" = {
       name = "_at_aws-sdk_slash_middleware-user-agent";
       packageName = "@aws-sdk/middleware-user-agent";
-      version = "3.535.0";
+      version = "3.587.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.535.0.tgz";
-        sha512 = "Uvb2WJ+zdHdCOtsWVPI/M0BcfNrjOYsicDZWtaljucRJKLclY5gNWwD+RwIC+8b5TvfnVOlH+N5jhvpi5Impog==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.587.0.tgz";
+        sha512 = "SyDomN+IOrygLucziG7/nOHkjUXES5oH5T7p8AboO8oakMQJdnudNXiYWTicQWO52R51U6CR27rcMPTGeMedYA==";
       };
     };
     "@aws-sdk/node-config-provider-3.296.0" = {
@@ -1048,22 +1102,22 @@ let
         sha512 = "nLNZKVQfK42euv7101cE5qfg17YCtGcfccx3B5XSAzvyTROR46kwYqbEvYSsWisbZoRhbQc905gB/5E0U5HDIw==";
       };
     };
-    "@aws-sdk/region-config-resolver-3.535.0" = {
+    "@aws-sdk/region-config-resolver-3.587.0" = {
       name = "_at_aws-sdk_slash_region-config-resolver";
       packageName = "@aws-sdk/region-config-resolver";
-      version = "3.535.0";
+      version = "3.587.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.535.0.tgz";
-        sha512 = "IXOznDiaItBjsQy4Fil0kzX/J3HxIOknEphqHbOfUf+LpA5ugcsxuQQONrbEQusCBnfJyymrldBvBhFmtlU9Wg==";
+        url = "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.587.0.tgz";
+        sha512 = "93I7IPZtulZQoRK+O20IJ4a1syWwYPzoO2gc3v+/GNZflZPV3QJXuVbIm0pxBsu0n/mzKGUKqSOLPIaN098HcQ==";
       };
     };
-    "@aws-sdk/s3-presigned-post-3.536.0" = {
+    "@aws-sdk/s3-presigned-post-3.588.0" = {
       name = "_at_aws-sdk_slash_s3-presigned-post";
       packageName = "@aws-sdk/s3-presigned-post";
-      version = "3.536.0";
+      version = "3.588.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/s3-presigned-post/-/s3-presigned-post-3.536.0.tgz";
-        sha512 = "6CRDpD5GZkHmxBD5UB7NdOmOd2v2By8Mw/kqSGmxgHPsQwrYWnuR3FdxAX4j/QDv81KUiCgak2w/SacDaiPN3g==";
+        url = "https://registry.npmjs.org/@aws-sdk/s3-presigned-post/-/s3-presigned-post-3.588.0.tgz";
+        sha512 = "MaQcJMkP2ZmXALGArccWVJ8LN/r3nRXcDhg7O1kK5bOhMqE7zhOTNUXtiBHVH1O3juHmdZWssORZJnsjuN1Krg==";
       };
     };
     "@aws-sdk/s3-request-presigner-3.296.0" = {
@@ -1075,13 +1129,13 @@ let
         sha512 = "BQv+oNA5EzJymrfh7cnMun/ougmTX3eo6bGCWn/bQdL1LyxodeVdRZacD5tN+lAUYtjhQ7yS23ozYh0lvWNEXw==";
       };
     };
-    "@aws-sdk/s3-request-presigner-3.536.0" = {
+    "@aws-sdk/s3-request-presigner-3.588.0" = {
       name = "_at_aws-sdk_slash_s3-request-presigner";
       packageName = "@aws-sdk/s3-request-presigner";
-      version = "3.536.0";
+      version = "3.588.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.536.0.tgz";
-        sha512 = "bMz7nxYfSjCkw72Hah40o0c9scwU2LQWoT3CkTcWs9OCrG4MCzMTBJNlzRUpxOpfGTZqVzrCaUGINIjh3jP/tQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.588.0.tgz";
+        sha512 = "yZBNzRBayL3H2yUQzkoHdiGRDqCfxhfOYYgwW0ZP9UkI6GF/kIkeuvCH5IANGxtXKNRvz8sGW+xjsVOMN6S7Yg==";
       };
     };
     "@aws-sdk/service-error-classification-3.296.0" = {
@@ -1111,13 +1165,13 @@ let
         sha512 = "NQyJ/FClty4VmF1WoV4rOkbN0Unn0zevzy8iJrYhqxE3Sc7lySM4Btnsd4Iqelm2dR6l+jNRApGgD8NvoGjGig==";
       };
     };
-    "@aws-sdk/signature-v4-crt-3.535.0" = {
+    "@aws-sdk/signature-v4-crt-3.587.0" = {
       name = "_at_aws-sdk_slash_signature-v4-crt";
       packageName = "@aws-sdk/signature-v4-crt";
-      version = "3.535.0";
+      version = "3.587.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/signature-v4-crt/-/signature-v4-crt-3.535.0.tgz";
-        sha512 = "xSULYfliLkI2xnRLgo3pRZAy7ZNBFDPG4vFz4sgl5FX5gPuLt5l55YXtCTNK0hJWJs3gi6WrsCWO9rsGcUH5pg==";
+        url = "https://registry.npmjs.org/@aws-sdk/signature-v4-crt/-/signature-v4-crt-3.587.0.tgz";
+        sha512 = "U523oCCCF6xWpDkPXFPtVEg6H39K0srKA6lQB5JtXts4DAIKZOal9f0MsOIWGKVl36uf5VpPC74ZIW4YE9D3Rw==";
       };
     };
     "@aws-sdk/signature-v4-multi-region-3.296.0" = {
@@ -1129,13 +1183,13 @@ let
         sha512 = "BNMXS0YJEgflPhO2KxXG4f0iTMOGdyxslDMNGmMWGGQm6bbwtqZ7Y9ZyMQYKfzk3GUPpfGQcaaSNiGfURPOCOg==";
       };
     };
-    "@aws-sdk/signature-v4-multi-region-3.535.0" = {
+    "@aws-sdk/signature-v4-multi-region-3.587.0" = {
       name = "_at_aws-sdk_slash_signature-v4-multi-region";
       packageName = "@aws-sdk/signature-v4-multi-region";
-      version = "3.535.0";
+      version = "3.587.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.535.0.tgz";
-        sha512 = "tqCsEsEj8icW0SAh3NvyhRUq54Gz2pu4NM2tOSrFp7SO55heUUaRLSzYteNZCTOupH//AAaZvbN/UUTO/DrOog==";
+        url = "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.587.0.tgz";
+        sha512 = "TR9+ZSjdXvXUz54ayHcCihhcvxI9W7102J1OK6MrLgBlPE7uRhAx42BR9L5lLJ86Xj3LuqPWf//o9d/zR9WVIg==";
       };
     };
     "@aws-sdk/smithy-client-3.296.0" = {
@@ -1156,13 +1210,13 @@ let
         sha512 = "yC1ku7A5S+o/CLlgbgDB2bx8+Wq43qj8xfohmTuIhpiP2m/NyUiRVv6S6ARONLI6bVeo1T2/BFk5Q9DfE2xzAQ==";
       };
     };
-    "@aws-sdk/token-providers-3.535.0" = {
+    "@aws-sdk/token-providers-3.587.0" = {
       name = "_at_aws-sdk_slash_token-providers";
       packageName = "@aws-sdk/token-providers";
-      version = "3.535.0";
+      version = "3.587.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.535.0.tgz";
-        sha512 = "4g+l/B9h1H/SiDtFRosW3pMwc+3PTXljZit+5NUBcET2XqcdUyHmgj3lBdu+CJ9CHdIMggRalYMAFXnRFe3Psg==";
+        url = "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.587.0.tgz";
+        sha512 = "ULqhbnLy1hmJNRcukANBWJmum3BbjXnurLPSFXoGdV0llXYlG55SzIla2VYqdveQEEjmsBuTZdFvXAtNpmS5Zg==";
       };
     };
     "@aws-sdk/types-3.296.0" = {
@@ -1174,13 +1228,13 @@ let
         sha512 = "s0wIac64rrMEo2ioUxP9IarGiiCGmelCspNcoNTPSjGl25QqjhyfQqTeGgS58qJ4fHoQb07qra39930xp1IzJg==";
       };
     };
-    "@aws-sdk/types-3.535.0" = {
+    "@aws-sdk/types-3.577.0" = {
       name = "_at_aws-sdk_slash_types";
       packageName = "@aws-sdk/types";
-      version = "3.535.0";
+      version = "3.577.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/types/-/types-3.535.0.tgz";
-        sha512 = "aY4MYfduNj+sRR37U7XxYR8wemfbKP6lx00ze2M2uubn7mZotuVrWYAafbMSXrdEMSToE5JDhr28vArSOoLcSg==";
+        url = "https://registry.npmjs.org/@aws-sdk/types/-/types-3.577.0.tgz";
+        sha512 = "FT2JZES3wBKN/alfmhlo+3ZOq/XJ0C7QOZcDNrpKjB0kqYoKjhVKZ/Hx6ArR0czkKfHzBBEs6y40ebIHx2nSmA==";
       };
     };
     "@aws-sdk/url-parser-3.296.0" = {
@@ -1201,13 +1255,13 @@ let
         sha512 = "kSSVymcbjyQQHvCZaTt1teKKW4MSSMPRdPNxSNO1aLsVwxrWdnAggDrpHwFjvPCRUcKtpThepATOz75PfUm9Bg==";
       };
     };
-    "@aws-sdk/util-arn-parser-3.535.0" = {
+    "@aws-sdk/util-arn-parser-3.568.0" = {
       name = "_at_aws-sdk_slash_util-arn-parser";
       packageName = "@aws-sdk/util-arn-parser";
-      version = "3.535.0";
+      version = "3.568.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.535.0.tgz";
-        sha512 = "smVo29nUPAOprp8Z5Y3GHuhiOtw6c8/EtLCm5AVMtRsTPw4V414ZXL2H66tzmb5kEeSzQlbfBSBEdIFZoxO9kg==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.568.0.tgz";
+        sha512 = "XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w==";
       };
     };
     "@aws-sdk/util-base64-3.295.0" = {
@@ -1291,13 +1345,13 @@ let
         sha512 = "YraGGLJepXM6HCTaqEGTFf8RFRBdJ0C6uG5k0kVhiXmYxBkeupn8J07CVp9jfWqcPYWElAnMGVEZKU1OjRo4HQ==";
       };
     };
-    "@aws-sdk/util-endpoints-3.535.0" = {
+    "@aws-sdk/util-endpoints-3.587.0" = {
       name = "_at_aws-sdk_slash_util-endpoints";
       packageName = "@aws-sdk/util-endpoints";
-      version = "3.535.0";
+      version = "3.587.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.535.0.tgz";
-        sha512 = "c8TlaQsiPchOOmTTR6qvHCO2O7L7NJwlKWAoQJ2GqWDZuC5es/fyuF2rp1h+ZRrUVraUomS0YdGkAmaDC7hJQg==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.587.0.tgz";
+        sha512 = "8I1HG6Em8wQWqKcRW6m358mqebRVNpL8XrrEoT4In7xqkKkmYtHRNVYP6lcmiQh5pZ/c/FXu8dSchuFIWyEtqQ==";
       };
     };
     "@aws-sdk/util-format-url-3.296.0" = {
@@ -1309,13 +1363,13 @@ let
         sha512 = "CcYECzkUAnHL5q3uyPicafn2OY0GiklIYfuOUHPZ/4FMxIesd1BnCDDRjTlFxLWjuNuiihIdwB7Qb1pDzxc3Iw==";
       };
     };
-    "@aws-sdk/util-format-url-3.535.0" = {
+    "@aws-sdk/util-format-url-3.577.0" = {
       name = "_at_aws-sdk_slash_util-format-url";
       packageName = "@aws-sdk/util-format-url";
-      version = "3.535.0";
+      version = "3.577.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.535.0.tgz";
-        sha512 = "ElbNkm0bddu53CuW44Iuux1ZbTV50fydbSh/4ypW3LrmUvHx193ogj0HXQ7X26kmmo9rXcsrLdM92yIeTjidVg==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.577.0.tgz";
+        sha512 = "SyEGC2J+y/krFRuPgiF02FmMYhqbiIkOjDE6k4nYLJQRyS6XEAGxZoG+OHeOVEM+bsDgbxokXZiM3XKGu6qFIg==";
       };
     };
     "@aws-sdk/util-hex-encoding-3.295.0" = {
@@ -1327,13 +1381,13 @@ let
         sha512 = "XJcoVo41kHzhe28PBm/rqt5mdCp8R6abwiW9ug1dA6FOoPUO8kBUxDv6xaOmA2hfRvd2ocFfBXaUCBqUowkGcQ==";
       };
     };
-    "@aws-sdk/util-locate-window-3.535.0" = {
+    "@aws-sdk/util-locate-window-3.568.0" = {
       name = "_at_aws-sdk_slash_util-locate-window";
       packageName = "@aws-sdk/util-locate-window";
-      version = "3.535.0";
+      version = "3.568.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.535.0.tgz";
-        sha512 = "PHJ3SL6d2jpcgbqdgiPxkXpu7Drc2PYViwxSIqvvMKhDwzSB1W3mMvtpzwKM4IE7zLFodZo0GKjJ9AsoXndXhA==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz";
+        sha512 = "3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig==";
       };
     };
     "@aws-sdk/util-middleware-3.296.0" = {
@@ -1390,13 +1444,13 @@ let
         sha512 = "MGGG+09VkF0N+8KEht8NNE6Q7bqmddgqLkUbvzSky0y18UPEZyq9LTC4JZtzDDOzf/swgbq2IQ/5wtB81iouog==";
       };
     };
-    "@aws-sdk/util-user-agent-browser-3.535.0" = {
+    "@aws-sdk/util-user-agent-browser-3.577.0" = {
       name = "_at_aws-sdk_slash_util-user-agent-browser";
       packageName = "@aws-sdk/util-user-agent-browser";
-      version = "3.535.0";
+      version = "3.577.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.535.0.tgz";
-        sha512 = "RWMcF/xV5n+nhaA/Ff5P3yNP3Kur/I+VNZngog4TEs92oB/nwOdAg/2JL8bVAhUbMrjTjpwm7PItziYFQoqyig==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.577.0.tgz";
+        sha512 = "zEAzHgR6HWpZOH7xFgeJLc6/CzMcx4nxeQolZxVZoB5pPaJd3CjyRhZN0xXeZB0XIRCWmb4yJBgyiugXLNMkLA==";
       };
     };
     "@aws-sdk/util-user-agent-node-3.296.0" = {
@@ -1408,13 +1462,13 @@ let
         sha512 = "AMWac8aIBnaa9nxAEpZ752j29a/UQTViRfR5gnCX38ECBKGfOQMpgYnee5HdlMr4GHJj0WkOzQxBtInW4pV58g==";
       };
     };
-    "@aws-sdk/util-user-agent-node-3.535.0" = {
+    "@aws-sdk/util-user-agent-node-3.587.0" = {
       name = "_at_aws-sdk_slash_util-user-agent-node";
       packageName = "@aws-sdk/util-user-agent-node";
-      version = "3.535.0";
+      version = "3.587.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.535.0.tgz";
-        sha512 = "dRek0zUuIT25wOWJlsRm97nTkUlh1NDcLsQZIN2Y8KxhwoXXWtJs5vaDPT+qAg+OpcNj80i1zLR/CirqlFg/TQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.587.0.tgz";
+        sha512 = "Pnl+DUe/bvnbEEDHP3iVJrOtE3HbFJBPgsD6vJ+ml/+IYk1Eq49jEG+EHZdNTPz3SDG0kbp2+7u41MKYJHR/iQ==";
       };
     };
     "@aws-sdk/util-utf8-3.295.0" = {
@@ -1453,31 +1507,13 @@ let
         sha512 = "7VX3Due7Ip73yfYErFDHZvhgBohC4IyMTfW49DI4C/LFKFCcAoB888MdevUkB87GoiNaRLeT3ZMZ86IWlSEaow==";
       };
     };
-    "@aws-sdk/xml-builder-3.535.0" = {
+    "@aws-sdk/xml-builder-3.575.0" = {
       name = "_at_aws-sdk_slash_xml-builder";
       packageName = "@aws-sdk/xml-builder";
-      version = "3.535.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.535.0.tgz";
-        sha512 = "VXAq/Jz8KIrU84+HqsOJhIKZqG0PNTdi6n6PFQ4xJf44ZQHD/5C7ouH4qCFX5XgZXcgbRIcMVVYGC6Jye0dRng==";
-      };
-    };
-    "@azu/format-text-1.0.2" = {
-      name = "_at_azu_slash_format-text";
-      packageName = "@azu/format-text";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@azu/format-text/-/format-text-1.0.2.tgz";
-        sha512 = "Swi4N7Edy1Eqq82GxgEECXSSLyn6GOb5htRFPzBDdUkECGXtlf12ynO5oJSpWKPwCaUssOu7NfhDcCWpIC6Ywg==";
-      };
-    };
-    "@azu/style-format-1.0.1" = {
-      name = "_at_azu_slash_style-format";
-      packageName = "@azu/style-format";
-      version = "1.0.1";
+      version = "3.575.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azu/style-format/-/style-format-1.0.1.tgz";
-        sha512 = "AHcTojlNBdD/3/KxIKlg8sxIWHfOtQszLvOpagLTO+bjC3u7SAszu1lf//u7JJC50aUSH+BVWDD/KvaA6Gfn5g==";
+        url = "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.575.0.tgz";
+        sha512 = "cWgAwmbFYNCFzPwxL705+lWps0F3ZvOckufd2KKoEZUmtpVw9/txUXNrPySUXSmRTSRhoatIMABNfStWR043bQ==";
       };
     };
     "@azure/abort-controller-1.1.0" = {
@@ -1489,31 +1525,31 @@ let
         sha512 = "TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==";
       };
     };
-    "@azure/abort-controller-2.1.0" = {
+    "@azure/abort-controller-2.1.2" = {
       name = "_at_azure_slash_abort-controller";
       packageName = "@azure/abort-controller";
-      version = "2.1.0";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.0.tgz";
-        sha512 = "SYtcG13aiV7znycu6plCClWUzD9BBtfnsbIxT89nkkRvQRB4n0kuZyJJvJ7hqdKOn7x7YoGKZ9lVStLJpLnOFw==";
+        url = "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz";
+        sha512 = "nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==";
       };
     };
-    "@azure/core-auth-1.7.0" = {
+    "@azure/core-auth-1.7.2" = {
       name = "_at_azure_slash_core-auth";
       packageName = "@azure/core-auth";
-      version = "1.7.0";
+      version = "1.7.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.7.0.tgz";
-        sha512 = "OuDVn9z2LjyYbpu6e7crEwSipa62jX7/ObV/pmXQfnOG8cHwm363jYtg3FSX3GB1V7jsIKri1zgq7mfXkFk/qw==";
+        url = "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.7.2.tgz";
+        sha512 = "Igm/S3fDYmnMq1uKS38Ae1/m37B3zigdlZw+kocwEhh5GjyKjPrXKO2J6rzpC1wAxrNil/jX9BJRqBshyjnF3g==";
       };
     };
-    "@azure/core-client-1.9.0" = {
+    "@azure/core-client-1.9.2" = {
       name = "_at_azure_slash_core-client";
       packageName = "@azure/core-client";
-      version = "1.9.0";
+      version = "1.9.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/core-client/-/core-client-1.9.0.tgz";
-        sha512 = "x50SSD7bbG5wen3tMDI2oWVSAjt1K1xw6JZSnc6239RmBwqLJF9dPsKsh9w0Rzh5+mGpsu9FDu3DlsT0lo1+Uw==";
+        url = "https://registry.npmjs.org/@azure/core-client/-/core-client-1.9.2.tgz";
+        sha512 = "kRdry/rav3fUKHl/aDLd/pDLcB+4pOFwPPTVEExuMyaI5r+JBbMWqRbCY1pn5BniDaU3lRxO9eaQ1AmSMehl/w==";
       };
     };
     "@azure/core-http-3.0.4" = {
@@ -1525,22 +1561,22 @@ let
         sha512 = "Fok9VVhMdxAFOtqiiAtg74fL0UJkt0z3D+ouUUxcRLzZNBioPRAMJFVxiWoJljYpXsRi4GDQHzQHDc9AiYaIUQ==";
       };
     };
-    "@azure/core-lro-2.7.0" = {
+    "@azure/core-lro-2.7.2" = {
       name = "_at_azure_slash_core-lro";
       packageName = "@azure/core-lro";
-      version = "2.7.0";
+      version = "2.7.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.7.0.tgz";
-        sha512 = "oj7d8vWEvOREIByH1+BnoiFwszzdE7OXUEd6UTv+cmx5HvjBBlkVezm3uZgpXWaxDj5ATL/k89+UMeGx1Ou9TQ==";
+        url = "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.7.2.tgz";
+        sha512 = "0YIpccoX8m/k00O7mDDMdJpbr6mf1yWo2dfmxt5A8XVZVVMz2SSKaEbMCeJRvgQ0IaSlqhjT47p4hVIRRy90xw==";
       };
     };
-    "@azure/core-paging-1.6.0" = {
+    "@azure/core-paging-1.6.2" = {
       name = "_at_azure_slash_core-paging";
       packageName = "@azure/core-paging";
-      version = "1.6.0";
+      version = "1.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.6.0.tgz";
-        sha512 = "W8eRv7MVFx/jbbYfcRT5+pGnZ9St/P1UvOi+63vxPwuQ3y+xj+wqWTGxpkXUETv3szsqGu0msdxVtjszCeB4zA==";
+        url = "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.6.2.tgz";
+        sha512 = "YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA==";
       };
     };
     "@azure/core-rest-pipeline-1.10.1" = {
@@ -1552,13 +1588,13 @@ let
         sha512 = "Kji9k6TOFRDB5ZMTw8qUf2IJ+CeJtsuMdAHox9eqpTf1cefiNMpzrfnF6sINEBZJsaVaWgQ0o48B6kcUH68niA==";
       };
     };
-    "@azure/core-rest-pipeline-1.15.0" = {
+    "@azure/core-rest-pipeline-1.16.0" = {
       name = "_at_azure_slash_core-rest-pipeline";
       packageName = "@azure/core-rest-pipeline";
-      version = "1.15.0";
+      version = "1.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.15.0.tgz";
-        sha512 = "6kBQwE75ZVlOjBbp0/PX0fgNLHxoMDxHe3aIPV/RLVwrIDidxTbsHtkSbPNTkheMset3v9s1Z08XuMNpWRK/7w==";
+        url = "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.0.tgz";
+        sha512 = "CeuTvsXxCUmEuxH5g/aceuSl6w2EugvNHKAtKKVdiX915EjJJxAwfzNNWZreNnbxHZ2fi0zaM6wwS23x2JVqSQ==";
       };
     };
     "@azure/core-tracing-1.0.0-preview.13" = {
@@ -1570,13 +1606,13 @@ let
         sha512 = "KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ==";
       };
     };
-    "@azure/core-tracing-1.1.0" = {
+    "@azure/core-tracing-1.1.2" = {
       name = "_at_azure_slash_core-tracing";
       packageName = "@azure/core-tracing";
-      version = "1.1.0";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.1.0.tgz";
-        sha512 = "MVeJvGHB4jmF7PeHhyr72vYJsBJ3ff1piHikMgRaabPAC4P3rxhf9fm42I+DixLysBunskJWhsDQD2A+O+plkQ==";
+        url = "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.1.2.tgz";
+        sha512 = "dawW9ifvWAWmUm9/h+/UQ2jrdvjCJ7VJEuCJ6XVNudzcOwm53BFZH4Q845vjfgoUAM8ZxokvVNxNxAITc502YA==";
       };
     };
     "@azure/core-util-1.2.0" = {
@@ -1588,13 +1624,13 @@ let
         sha512 = "ffGIw+Qs8bNKNLxz5UPkz4/VBM/EZY07mPve1ZYFqYUdPwFqRj0RPk0U7LZMOfT7GCck9YjuT1Rfp1PApNl1ng==";
       };
     };
-    "@azure/core-util-1.8.0" = {
+    "@azure/core-util-1.9.0" = {
       name = "_at_azure_slash_core-util";
       packageName = "@azure/core-util";
-      version = "1.8.0";
+      version = "1.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/core-util/-/core-util-1.8.0.tgz";
-        sha512 = "w8NrGnrlGDF7fj36PBnJhGXDK2Y3kpTOgL7Ksb5snEHXq/3EAbKYOp1yqme0yWCUlSDq5rjqvxSBAJmsqYac3w==";
+        url = "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.0.tgz";
+        sha512 = "AfalUQ1ZppaKuxPPMsFEUdX6GZPB3d9paR9d/TTL7Ow2De8cJaC7ibi7kWVlFAVPCYo31OcnGymc0R89DX8Oaw==";
       };
     };
     "@azure/identity-4.0.1" = {
@@ -1606,40 +1642,49 @@ let
         sha512 = "yRdgF03SFLqUMZZ1gKWt0cs0fvrDIkq2bJ6Oidqcoo5uM85YMBnXWMzYKK30XqIT76lkFyAaoAAy5knXhrG4Lw==";
       };
     };
-    "@azure/logger-1.1.0" = {
+    "@azure/identity-4.2.0" = {
+      name = "_at_azure_slash_identity";
+      packageName = "@azure/identity";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@azure/identity/-/identity-4.2.0.tgz";
+        sha512 = "ve3aYv79qXOJ8wRxQ5jO0eIz2DZ4o0TyME4m4vlGV5YyePddVZ+pFMzusAMODNAflYAAv1cBIhKnd4xytmXyig==";
+      };
+    };
+    "@azure/logger-1.1.2" = {
       name = "_at_azure_slash_logger";
       packageName = "@azure/logger";
-      version = "1.1.0";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/logger/-/logger-1.1.0.tgz";
-        sha512 = "BnfkfzVEsrgbVCtqq0RYRMePSH2lL/cgUUR5sYRF4yNN10zJZq/cODz0r89k3ykY83MqeM3twR292a3YBNgC3w==";
+        url = "https://registry.npmjs.org/@azure/logger/-/logger-1.1.2.tgz";
+        sha512 = "l170uE7bsKpIU6B/giRc9i4NI0Mj+tANMMMxf7Zi/5cKzEqPayP7+X1WPrG7e+91JgY8N+7K7nF2WOi7iVhXvg==";
       };
     };
-    "@azure/msal-browser-3.10.0" = {
+    "@azure/msal-browser-3.16.0" = {
       name = "_at_azure_slash_msal-browser";
       packageName = "@azure/msal-browser";
-      version = "3.10.0";
+      version = "3.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.10.0.tgz";
-        sha512 = "mnmi8dCXVNZI+AGRq0jKQ3YiodlIC4W9npr6FCB9WN6NQT+6rq+cIlxgUb//BjLyzKsnYo+i4LROGeMyU+6v1A==";
+        url = "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.16.0.tgz";
+        sha512 = "WKobvIisBK7sFSOwHuchH9tUMekwhJRLgLE9tKhIq0wFYGRcVGK0KivP5vZrobVZEMNCZWto0fI1VcSVoa+cig==";
       };
     };
-    "@azure/msal-common-14.7.1" = {
+    "@azure/msal-common-14.11.0" = {
       name = "_at_azure_slash_msal-common";
       packageName = "@azure/msal-common";
-      version = "14.7.1";
+      version = "14.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.7.1.tgz";
-        sha512 = "v96btzjM7KrAu4NSEdOkhQSTGOuNUIIsUdB8wlyB9cdgl5KqEKnTonHUZ8+khvZ6Ap542FCErbnTyDWl8lZ2rA==";
+        url = "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.11.0.tgz";
+        sha512 = "B6+IKLFs7Lsr06vjX8dPN61ENpTgiFrHf+CVo1UasHcmk5uEOq5D4thrbjsauKX+xtFryYsCDtznVDmWS4/sCg==";
       };
     };
-    "@azure/msal-node-2.6.4" = {
+    "@azure/msal-node-2.9.1" = {
       name = "_at_azure_slash_msal-node";
       packageName = "@azure/msal-node";
-      version = "2.6.4";
+      version = "2.9.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.6.4.tgz";
-        sha512 = "nNvEPx009/80UATCToF+29NZYocn01uKrB91xtFr7bSqkqO1PuQGXRyYwryWRztUrYZ1YsSbw9A+LmwOhpVvcg==";
+        url = "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.9.1.tgz";
+        sha512 = "I9Pc78mXwj/K8ydSgTfZ5A20vQ/xvfgnnhSCkienZ29b59zFy/hb2Vxmc6Gvg5pNkimSqkPnAtGoBMxYOLBm1A==";
       };
     };
     "@azure/opentelemetry-instrumentation-azure-sdk-1.0.0-beta.5" = {
@@ -1660,13 +1705,13 @@ let
         sha512 = "sM4vpsCpcCApagRW5UIjQNlNylo02my2opgp0Emi8x888hZUvJ3dN69Oq20cEGXkMUWnoCrBaB0zyS3yeB87sQ==";
       };
     };
-    "@babel/cli-7.23.9" = {
+    "@babel/cli-7.24.6" = {
       name = "_at_babel_slash_cli";
       packageName = "@babel/cli";
-      version = "7.23.9";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/cli/-/cli-7.23.9.tgz";
-        sha512 = "vB1UXmGDNEhcf1jNAHKT9IlYk1R+hehVTLFlCLHBi8gfuHQGP6uRjgXVYU0EVlI/qwAWpstqkBdf2aez3/z/5Q==";
+        url = "https://registry.npmjs.org/@babel/cli/-/cli-7.24.6.tgz";
+        sha512 = "Sm/YhG/0REw9SKByFHDf4hkk7PYsjcsOyZgHGz1nvab4tUTQ9N4XVv+ykK0Y+VCJ3OshA/7EDyxnwCd8NEP/mQ==";
       };
     };
     "@babel/code-frame-7.10.4" = {
@@ -1696,22 +1741,31 @@ let
         sha512 = "CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==";
       };
     };
-    "@babel/compat-data-7.23.5" = {
+    "@babel/code-frame-7.24.6" = {
+      name = "_at_babel_slash_code-frame";
+      packageName = "@babel/code-frame";
+      version = "7.24.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.6.tgz";
+        sha512 = "ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==";
+      };
+    };
+    "@babel/compat-data-7.24.6" = {
       name = "_at_babel_slash_compat-data";
       packageName = "@babel/compat-data";
-      version = "7.23.5";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz";
-        sha512 = "uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==";
+        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.6.tgz";
+        sha512 = "aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==";
       };
     };
-    "@babel/core-7.24.0" = {
+    "@babel/core-7.24.6" = {
       name = "_at_babel_slash_core";
       packageName = "@babel/core";
-      version = "7.24.0";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz";
-        sha512 = "fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==";
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.24.6.tgz";
+        sha512 = "qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==";
       };
     };
     "@babel/generator-7.17.7" = {
@@ -1732,256 +1786,256 @@ let
         sha512 = "W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==";
       };
     };
-    "@babel/generator-7.23.6" = {
+    "@babel/generator-7.24.4" = {
+      name = "_at_babel_slash_generator";
+      packageName = "@babel/generator";
+      version = "7.24.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz";
+        sha512 = "Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==";
+      };
+    };
+    "@babel/generator-7.24.6" = {
       name = "_at_babel_slash_generator";
       packageName = "@babel/generator";
-      version = "7.23.6";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz";
-        sha512 = "qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==";
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.24.6.tgz";
+        sha512 = "S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==";
       };
     };
-    "@babel/helper-annotate-as-pure-7.22.5" = {
+    "@babel/helper-annotate-as-pure-7.24.6" = {
       name = "_at_babel_slash_helper-annotate-as-pure";
       packageName = "@babel/helper-annotate-as-pure";
-      version = "7.22.5";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz";
-        sha512 = "LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==";
+        url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.6.tgz";
+        sha512 = "DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==";
       };
     };
-    "@babel/helper-builder-binary-assignment-operator-visitor-7.22.15" = {
+    "@babel/helper-builder-binary-assignment-operator-visitor-7.24.6" = {
       name = "_at_babel_slash_helper-builder-binary-assignment-operator-visitor";
       packageName = "@babel/helper-builder-binary-assignment-operator-visitor";
-      version = "7.22.15";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz";
-        sha512 = "QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==";
+        url = "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.6.tgz";
+        sha512 = "+wnfqc5uHiMYtvRX7qu80Toef8BXeh4HHR1SPeonGb1SKPniNEd4a/nlaJJMv/OIEYvIVavvo0yR7u10Gqz0Iw==";
       };
     };
-    "@babel/helper-compilation-targets-7.23.6" = {
+    "@babel/helper-compilation-targets-7.24.6" = {
       name = "_at_babel_slash_helper-compilation-targets";
       packageName = "@babel/helper-compilation-targets";
-      version = "7.23.6";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz";
-        sha512 = "9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==";
+        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz";
+        sha512 = "VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==";
       };
     };
-    "@babel/helper-create-class-features-plugin-7.24.0" = {
+    "@babel/helper-create-class-features-plugin-7.24.6" = {
       name = "_at_babel_slash_helper-create-class-features-plugin";
       packageName = "@babel/helper-create-class-features-plugin";
-      version = "7.24.0";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz";
-        sha512 = "QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==";
+        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.6.tgz";
+        sha512 = "djsosdPJVZE6Vsw3kk7IPRWethP94WHGOhQTc67SNXE0ZzMhHgALw8iGmYS0TD1bbMM0VDROy43od7/hN6WYcA==";
       };
     };
-    "@babel/helper-create-regexp-features-plugin-7.22.15" = {
+    "@babel/helper-create-regexp-features-plugin-7.24.6" = {
       name = "_at_babel_slash_helper-create-regexp-features-plugin";
       packageName = "@babel/helper-create-regexp-features-plugin";
-      version = "7.22.15";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz";
-        sha512 = "29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==";
-      };
-    };
-    "@babel/helper-define-polyfill-provider-0.5.0" = {
-      name = "_at_babel_slash_helper-define-polyfill-provider";
-      packageName = "@babel/helper-define-polyfill-provider";
-      version = "0.5.0";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz";
-        sha512 = "NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==";
+        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.6.tgz";
+        sha512 = "C875lFBIWWwyv6MHZUG9HmRrlTDgOsLWZfYR0nW69gaKJNe0/Mpxx5r0EID2ZdHQkdUmQo2t0uNckTL08/1BgA==";
       };
     };
-    "@babel/helper-define-polyfill-provider-0.6.1" = {
+    "@babel/helper-define-polyfill-provider-0.6.2" = {
       name = "_at_babel_slash_helper-define-polyfill-provider";
       packageName = "@babel/helper-define-polyfill-provider";
-      version = "0.6.1";
+      version = "0.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz";
-        sha512 = "o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==";
+        url = "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz";
+        sha512 = "LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==";
       };
     };
-    "@babel/helper-environment-visitor-7.22.20" = {
+    "@babel/helper-environment-visitor-7.24.6" = {
       name = "_at_babel_slash_helper-environment-visitor";
       packageName = "@babel/helper-environment-visitor";
-      version = "7.22.20";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz";
-        sha512 = "zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==";
+        url = "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.6.tgz";
+        sha512 = "Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==";
       };
     };
-    "@babel/helper-function-name-7.23.0" = {
+    "@babel/helper-function-name-7.24.6" = {
       name = "_at_babel_slash_helper-function-name";
       packageName = "@babel/helper-function-name";
-      version = "7.23.0";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz";
-        sha512 = "OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==";
+        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.6.tgz";
+        sha512 = "xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==";
       };
     };
-    "@babel/helper-hoist-variables-7.22.5" = {
+    "@babel/helper-hoist-variables-7.24.6" = {
       name = "_at_babel_slash_helper-hoist-variables";
       packageName = "@babel/helper-hoist-variables";
-      version = "7.22.5";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz";
-        sha512 = "wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==";
+        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.6.tgz";
+        sha512 = "SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==";
       };
     };
-    "@babel/helper-member-expression-to-functions-7.23.0" = {
+    "@babel/helper-member-expression-to-functions-7.24.6" = {
       name = "_at_babel_slash_helper-member-expression-to-functions";
       packageName = "@babel/helper-member-expression-to-functions";
-      version = "7.23.0";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz";
-        sha512 = "6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==";
+        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.6.tgz";
+        sha512 = "OTsCufZTxDUsv2/eDXanw/mUZHWOxSbEmC3pP8cgjcy5rgeVPWWMStnv274DV60JtHxTk0adT0QrCzC4M9NWGg==";
       };
     };
-    "@babel/helper-module-imports-7.22.15" = {
+    "@babel/helper-module-imports-7.24.6" = {
       name = "_at_babel_slash_helper-module-imports";
       packageName = "@babel/helper-module-imports";
-      version = "7.22.15";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz";
-        sha512 = "0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==";
+        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.6.tgz";
+        sha512 = "a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==";
       };
     };
-    "@babel/helper-module-transforms-7.23.3" = {
+    "@babel/helper-module-transforms-7.24.6" = {
       name = "_at_babel_slash_helper-module-transforms";
       packageName = "@babel/helper-module-transforms";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz";
-        sha512 = "7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==";
+        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz";
+        sha512 = "Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==";
       };
     };
-    "@babel/helper-optimise-call-expression-7.22.5" = {
+    "@babel/helper-optimise-call-expression-7.24.6" = {
       name = "_at_babel_slash_helper-optimise-call-expression";
       packageName = "@babel/helper-optimise-call-expression";
-      version = "7.22.5";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz";
-        sha512 = "HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==";
+        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.6.tgz";
+        sha512 = "3SFDJRbx7KuPRl8XDUr8O7GAEB8iGyWPjLKJh/ywP/Iy9WOmEfMrsWbaZpvBu2HSYn4KQygIsz0O7m8y10ncMA==";
       };
     };
-    "@babel/helper-plugin-utils-7.24.0" = {
+    "@babel/helper-plugin-utils-7.24.6" = {
       name = "_at_babel_slash_helper-plugin-utils";
       packageName = "@babel/helper-plugin-utils";
-      version = "7.24.0";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz";
-        sha512 = "9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==";
+        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.6.tgz";
+        sha512 = "MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==";
       };
     };
-    "@babel/helper-remap-async-to-generator-7.22.20" = {
+    "@babel/helper-remap-async-to-generator-7.24.6" = {
       name = "_at_babel_slash_helper-remap-async-to-generator";
       packageName = "@babel/helper-remap-async-to-generator";
-      version = "7.22.20";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz";
-        sha512 = "pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==";
+        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.6.tgz";
+        sha512 = "1Qursq9ArRZPAMOZf/nuzVW8HgJLkTB9y9LfP4lW2MVp4e9WkLJDovfKBxoDcCk6VuzIxyqWHyBoaCtSRP10yg==";
       };
     };
-    "@babel/helper-replace-supers-7.22.20" = {
+    "@babel/helper-replace-supers-7.24.6" = {
       name = "_at_babel_slash_helper-replace-supers";
       packageName = "@babel/helper-replace-supers";
-      version = "7.22.20";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz";
-        sha512 = "qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==";
+        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.6.tgz";
+        sha512 = "mRhfPwDqDpba8o1F8ESxsEkJMQkUF8ZIWrAc0FtWhxnjfextxMWxr22RtFizxxSYLjVHDeMgVsRq8BBZR2ikJQ==";
       };
     };
-    "@babel/helper-simple-access-7.22.5" = {
+    "@babel/helper-simple-access-7.24.6" = {
       name = "_at_babel_slash_helper-simple-access";
       packageName = "@babel/helper-simple-access";
-      version = "7.22.5";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz";
-        sha512 = "n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==";
+        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz";
+        sha512 = "nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==";
       };
     };
-    "@babel/helper-skip-transparent-expression-wrappers-7.22.5" = {
+    "@babel/helper-skip-transparent-expression-wrappers-7.24.6" = {
       name = "_at_babel_slash_helper-skip-transparent-expression-wrappers";
       packageName = "@babel/helper-skip-transparent-expression-wrappers";
-      version = "7.22.5";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz";
-        sha512 = "tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==";
+        url = "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.6.tgz";
+        sha512 = "jhbbkK3IUKc4T43WadP96a27oYti9gEf1LdyGSP2rHGH77kwLwfhO7TgwnWvxxQVmke0ImmCSS47vcuxEMGD3Q==";
       };
     };
-    "@babel/helper-split-export-declaration-7.22.6" = {
+    "@babel/helper-split-export-declaration-7.24.6" = {
       name = "_at_babel_slash_helper-split-export-declaration";
       packageName = "@babel/helper-split-export-declaration";
-      version = "7.22.6";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz";
-        sha512 = "AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==";
+        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.6.tgz";
+        sha512 = "CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==";
       };
     };
-    "@babel/helper-string-parser-7.23.4" = {
+    "@babel/helper-string-parser-7.24.6" = {
       name = "_at_babel_slash_helper-string-parser";
       packageName = "@babel/helper-string-parser";
-      version = "7.23.4";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz";
-        sha512 = "803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==";
+        url = "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz";
+        sha512 = "WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==";
       };
     };
-    "@babel/helper-validator-identifier-7.22.20" = {
+    "@babel/helper-validator-identifier-7.24.6" = {
       name = "_at_babel_slash_helper-validator-identifier";
       packageName = "@babel/helper-validator-identifier";
-      version = "7.22.20";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz";
-        sha512 = "Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==";
+        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz";
+        sha512 = "4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==";
       };
     };
-    "@babel/helper-validator-option-7.23.5" = {
+    "@babel/helper-validator-option-7.24.6" = {
       name = "_at_babel_slash_helper-validator-option";
       packageName = "@babel/helper-validator-option";
-      version = "7.23.5";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz";
-        sha512 = "85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==";
+        url = "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.6.tgz";
+        sha512 = "Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==";
       };
     };
-    "@babel/helper-wrap-function-7.22.20" = {
+    "@babel/helper-wrap-function-7.24.6" = {
       name = "_at_babel_slash_helper-wrap-function";
       packageName = "@babel/helper-wrap-function";
-      version = "7.22.20";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz";
-        sha512 = "pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==";
+        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.6.tgz";
+        sha512 = "f1JLrlw/jbiNfxvdrfBgio/gRBk3yTAEJWirpAkiJG2Hb22E7cEYKHWo0dFPTv/niPovzIdPdEDetrv6tC6gPQ==";
       };
     };
-    "@babel/helpers-7.24.0" = {
+    "@babel/helpers-7.24.6" = {
       name = "_at_babel_slash_helpers";
       packageName = "@babel/helpers";
-      version = "7.24.0";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz";
-        sha512 = "ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==";
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.6.tgz";
+        sha512 = "V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==";
       };
     };
-    "@babel/highlight-7.23.4" = {
+    "@babel/highlight-7.24.6" = {
       name = "_at_babel_slash_highlight";
       packageName = "@babel/highlight";
-      version = "7.23.4";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz";
-        sha512 = "acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==";
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.6.tgz";
+        sha512 = "2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==";
       };
     };
-    "@babel/node-7.23.9" = {
+    "@babel/node-7.24.6" = {
       name = "_at_babel_slash_node";
       packageName = "@babel/node";
-      version = "7.23.9";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/node/-/node-7.23.9.tgz";
-        sha512 = "/d4ju/POwlGIJlZ+NqWH1qu61wt6ZlTZZZutrK2MOSdaH1JCh726nLw/GSvAjG+LTY6CO9SsB8uWcttnFKm6yg==";
+        url = "https://registry.npmjs.org/@babel/node/-/node-7.24.6.tgz";
+        sha512 = "63bD/Kbh1Vl6HapTZLSsyaGlQhhpF1/GpyS1oJotroJKoamOgKKEEKk3iHZAkicjcr+n4V4zdB0V+8siv6AZ5Q==";
       };
     };
     "@babel/parser-7.18.4" = {
@@ -1993,40 +2047,49 @@ let
         sha512 = "FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==";
       };
     };
-    "@babel/parser-7.24.0" = {
+    "@babel/parser-7.24.6" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.24.0";
+      version = "7.24.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.24.6.tgz";
+        sha512 = "eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==";
+      };
+    };
+    "@babel/plugin-bugfix-firefox-class-in-computed-class-key-7.24.6" = {
+      name = "_at_babel_slash_plugin-bugfix-firefox-class-in-computed-class-key";
+      packageName = "@babel/plugin-bugfix-firefox-class-in-computed-class-key";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz";
-        sha512 = "QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==";
+        url = "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.6.tgz";
+        sha512 = "bYndrJ6Ph6Ar+GaB5VAc0JPoP80bQCm4qon6JEzXfRl5QZyQ8Ur1K6k7htxWmPA5z+k7JQvaMUrtXlqclWYzKw==";
       };
     };
-    "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3" = {
+    "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.6" = {
       name = "_at_babel_slash_plugin-bugfix-safari-id-destructuring-collision-in-function-expression";
       packageName = "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz";
-        sha512 = "iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.6.tgz";
+        sha512 = "iVuhb6poq5ikqRq2XWU6OQ+R5o9wF+r/or9CeUyovgptz0UlnK4/seOQ1Istu/XybYjAhQv1FRSSfHHufIku5Q==";
       };
     };
-    "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3" = {
+    "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.6" = {
       name = "_at_babel_slash_plugin-bugfix-v8-spread-parameters-in-optional-chaining";
       packageName = "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz";
-        sha512 = "WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.6.tgz";
+        sha512 = "c8TER5xMDYzzFcGqOEp9l4hvB7dcbhcGjcLVwxWfe4P5DOafdwjsBJZKsmv+o3aXh7NhopvayQIovHrh2zSRUQ==";
       };
     };
-    "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7" = {
+    "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.6" = {
       name = "_at_babel_slash_plugin-bugfix-v8-static-class-fields-redefine-readonly";
       packageName = "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly";
-      version = "7.23.7";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz";
-        sha512 = "LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==";
+        url = "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.6.tgz";
+        sha512 = "z8zEjYmwBUHN/pCF3NuWBhHQjJCrd33qAi8MgANfMrAvn72k2cImT8VjK9LJFu4ysOLJqhfkYYb3MvwANRUNZQ==";
       };
     };
     "@babel/plugin-proposal-async-generator-functions-7.20.7" = {
@@ -2047,22 +2110,22 @@ let
         sha512 = "cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==";
       };
     };
-    "@babel/plugin-proposal-decorators-7.24.0" = {
+    "@babel/plugin-proposal-decorators-7.24.6" = {
       name = "_at_babel_slash_plugin-proposal-decorators";
       packageName = "@babel/plugin-proposal-decorators";
-      version = "7.24.0";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.0.tgz";
-        sha512 = "LiT1RqZWeij7X+wGxCoYh3/3b8nVOX6/7BZ9wiQgAIyjoeQWdROaodJCgT+dwtbjHaz0r7bEbHJzjSbVfcOyjQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.6.tgz";
+        sha512 = "8DjR0/DzlBhz2SVi9a19/N2U5+C3y3rseXuyoKL9SP8vnbewscj1eHZtL6kpEn4UCuUmqEo0mvqyDYRFoN2gpA==";
       };
     };
-    "@babel/plugin-proposal-export-default-from-7.23.3" = {
+    "@babel/plugin-proposal-export-default-from-7.24.6" = {
       name = "_at_babel_slash_plugin-proposal-export-default-from";
       packageName = "@babel/plugin-proposal-export-default-from";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.23.3.tgz";
-        sha512 = "Q23MpLZfSGZL1kU7fWqV262q65svLSCIP5kZ/JCW/rKTCm/FrLjpvEd2kfUYMVeHh4QhV/xzyoRAHWrAZJrE3Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.24.6.tgz";
+        sha512 = "qPPDbYs9j5IArMFqYi85QxatHURSzRyskKpIbjrVoVglDuGdhu1s7UTCmXvP/qR2aHa3EdJ8X3iZvQAHjmdHUw==";
       };
     };
     "@babel/plugin-proposal-nullish-coalescing-operator-7.18.6" = {
@@ -2137,13 +2200,13 @@ let
         sha512 = "b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==";
       };
     };
-    "@babel/plugin-syntax-decorators-7.24.0" = {
+    "@babel/plugin-syntax-decorators-7.24.6" = {
       name = "_at_babel_slash_plugin-syntax-decorators";
       packageName = "@babel/plugin-syntax-decorators";
-      version = "7.24.0";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.0.tgz";
-        sha512 = "MXW3pQCu9gUiVGzqkGqsgiINDVYXoAnrY8FYF/rmb+OfufNF0zHMpHPN4ulRrinxYT8Vk/aZJxYqOKsDECjKAw==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.6.tgz";
+        sha512 = "gInH8LEqBp+wkwTVihCd/qf+4s28g81FZyvlIbAurHk9eSiItEKG7E0uNK2UdpgsD79aJVAW3R3c85h0YJ0jsw==";
       };
     };
     "@babel/plugin-syntax-dynamic-import-7.8.3" = {
@@ -2155,13 +2218,13 @@ let
         sha512 = "5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==";
       };
     };
-    "@babel/plugin-syntax-export-default-from-7.23.3" = {
+    "@babel/plugin-syntax-export-default-from-7.24.6" = {
       name = "_at_babel_slash_plugin-syntax-export-default-from";
       packageName = "@babel/plugin-syntax-export-default-from";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.23.3.tgz";
-        sha512 = "KeENO5ck1IeZ/l2lFZNy+mpobV3D2Zy5C1YFnWm+YuY5mQiAWc4yAp13dqgguwsBsFVLh4LPCEqCa5qW13N+hw==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.24.6.tgz";
+        sha512 = "Nzl7kZ4tjOM2LJpejBMPwZs7OJfc26++2HsMQuSrw6gxpqXGtZZ3Rj4Zt4Qm7vulMZL2gHIGGc2stnlQnHQCqA==";
       };
     };
     "@babel/plugin-syntax-export-namespace-from-7.8.3" = {
@@ -2173,31 +2236,31 @@ let
         sha512 = "MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==";
       };
     };
-    "@babel/plugin-syntax-flow-7.23.3" = {
+    "@babel/plugin-syntax-flow-7.24.6" = {
       name = "_at_babel_slash_plugin-syntax-flow";
       packageName = "@babel/plugin-syntax-flow";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.23.3.tgz";
-        sha512 = "YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.6.tgz";
+        sha512 = "gNkksSdV8RbsCoHF9sjVYrHfYACMl/8U32UfUhJ9+84/ASXw8dlx+eHyyF0m6ncQJ9IBSxfuCkB36GJqYdXTOA==";
       };
     };
-    "@babel/plugin-syntax-import-assertions-7.23.3" = {
+    "@babel/plugin-syntax-import-assertions-7.24.6" = {
       name = "_at_babel_slash_plugin-syntax-import-assertions";
       packageName = "@babel/plugin-syntax-import-assertions";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz";
-        sha512 = "lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.6.tgz";
+        sha512 = "BE6o2BogJKJImTmGpkmOic4V0hlRRxVtzqxiSPa8TIFxyhi4EFjHm08nq1M4STK4RytuLMgnSz0/wfflvGFNOg==";
       };
     };
-    "@babel/plugin-syntax-import-attributes-7.23.3" = {
+    "@babel/plugin-syntax-import-attributes-7.24.6" = {
       name = "_at_babel_slash_plugin-syntax-import-attributes";
       packageName = "@babel/plugin-syntax-import-attributes";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz";
-        sha512 = "pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.6.tgz";
+        sha512 = "D+CfsVZousPXIdudSII7RGy52+dYRtbyKAZcvtQKq/NpsivyMVduepzcLqG5pMBugtMdedxdC8Ramdpcne9ZWQ==";
       };
     };
     "@babel/plugin-syntax-import-meta-7.10.4" = {
@@ -2218,13 +2281,13 @@ let
         sha512 = "lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==";
       };
     };
-    "@babel/plugin-syntax-jsx-7.23.3" = {
+    "@babel/plugin-syntax-jsx-7.24.6" = {
       name = "_at_babel_slash_plugin-syntax-jsx";
       packageName = "@babel/plugin-syntax-jsx";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz";
-        sha512 = "EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.6.tgz";
+        sha512 = "lWfvAIFNWMlCsU0DRUun2GpFwZdGTukLaHJqRh1JRb80NdAP5Sb1HDHB5X9P9OtgZHQl089UzQkpYlBq2VTPRw==";
       };
     };
     "@babel/plugin-syntax-logical-assignment-operators-7.10.4" = {
@@ -2299,13 +2362,13 @@ let
         sha512 = "hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==";
       };
     };
-    "@babel/plugin-syntax-typescript-7.23.3" = {
+    "@babel/plugin-syntax-typescript-7.24.6" = {
       name = "_at_babel_slash_plugin-syntax-typescript";
       packageName = "@babel/plugin-syntax-typescript";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz";
-        sha512 = "9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.6.tgz";
+        sha512 = "TzCtxGgVTEJWWwcYwQhCIQ6WaKlo80/B+Onsk4RRCcYqpYGFcG9etPW94VToGte5AAcxRrhjPUFvUS3Y2qKi4A==";
       };
     };
     "@babel/plugin-syntax-unicode-sets-regex-7.18.6" = {
@@ -2317,499 +2380,499 @@ let
         sha512 = "727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==";
       };
     };
-    "@babel/plugin-transform-arrow-functions-7.23.3" = {
+    "@babel/plugin-transform-arrow-functions-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-arrow-functions";
       packageName = "@babel/plugin-transform-arrow-functions";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz";
-        sha512 = "NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.6.tgz";
+        sha512 = "jSSSDt4ZidNMggcLx8SaKsbGNEfIl0PHx/4mFEulorE7bpYLbN0d3pDW3eJ7Y5Z3yPhy3L3NaPCYyTUY7TuugQ==";
       };
     };
-    "@babel/plugin-transform-async-generator-functions-7.23.9" = {
+    "@babel/plugin-transform-async-generator-functions-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-async-generator-functions";
       packageName = "@babel/plugin-transform-async-generator-functions";
-      version = "7.23.9";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz";
-        sha512 = "8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.6.tgz";
+        sha512 = "VEP2o4iR2DqQU6KPgizTW2mnMx6BG5b5O9iQdrW9HesLkv8GIA8x2daXBQxw1MrsIkFQGA/iJ204CKoQ8UcnAA==";
       };
     };
-    "@babel/plugin-transform-async-to-generator-7.23.3" = {
+    "@babel/plugin-transform-async-to-generator-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-async-to-generator";
       packageName = "@babel/plugin-transform-async-to-generator";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz";
-        sha512 = "A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.6.tgz";
+        sha512 = "NTBA2SioI3OsHeIn6sQmhvXleSl9T70YY/hostQLveWs0ic+qvbA3fa0kwAwQ0OA/XGaAerNZRQGJyRfhbJK4g==";
       };
     };
-    "@babel/plugin-transform-block-scoped-functions-7.23.3" = {
+    "@babel/plugin-transform-block-scoped-functions-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-block-scoped-functions";
       packageName = "@babel/plugin-transform-block-scoped-functions";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz";
-        sha512 = "vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.6.tgz";
+        sha512 = "XNW7jolYHW9CwORrZgA/97tL/k05qe/HL0z/qqJq1mdWhwwCM6D4BJBV7wAz9HgFziN5dTOG31znkVIzwxv+vw==";
       };
     };
-    "@babel/plugin-transform-block-scoping-7.23.4" = {
+    "@babel/plugin-transform-block-scoping-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-block-scoping";
       packageName = "@babel/plugin-transform-block-scoping";
-      version = "7.23.4";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz";
-        sha512 = "0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.6.tgz";
+        sha512 = "S/t1Xh4ehW7sGA7c1j/hiOBLnEYCp/c2sEG4ZkL8kI1xX9tW2pqJTCHKtdhe/jHKt8nG0pFCrDHUXd4DvjHS9w==";
       };
     };
-    "@babel/plugin-transform-class-properties-7.23.3" = {
+    "@babel/plugin-transform-class-properties-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-class-properties";
       packageName = "@babel/plugin-transform-class-properties";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz";
-        sha512 = "uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.6.tgz";
+        sha512 = "j6dZ0Z2Z2slWLR3kt9aOmSIrBvnntWjMDN/TVcMPxhXMLmJVqX605CBRlcGI4b32GMbfifTEsdEjGjiE+j/c3A==";
       };
     };
-    "@babel/plugin-transform-class-static-block-7.23.4" = {
+    "@babel/plugin-transform-class-static-block-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-class-static-block";
       packageName = "@babel/plugin-transform-class-static-block";
-      version = "7.23.4";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz";
-        sha512 = "nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.6.tgz";
+        sha512 = "1QSRfoPI9RoLRa8Mnakc6v3e0gJxiZQTYrMfLn+mD0sz5+ndSzwymp2hDcYJTyT0MOn0yuWzj8phlIvO72gTHA==";
       };
     };
-    "@babel/plugin-transform-classes-7.23.8" = {
+    "@babel/plugin-transform-classes-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-classes";
       packageName = "@babel/plugin-transform-classes";
-      version = "7.23.8";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz";
-        sha512 = "yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.6.tgz";
+        sha512 = "+fN+NO2gh8JtRmDSOB6gaCVo36ha8kfCW1nMq2Gc0DABln0VcHN4PrALDvF5/diLzIRKptC7z/d7Lp64zk92Fg==";
       };
     };
-    "@babel/plugin-transform-computed-properties-7.23.3" = {
+    "@babel/plugin-transform-computed-properties-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-computed-properties";
       packageName = "@babel/plugin-transform-computed-properties";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz";
-        sha512 = "dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.6.tgz";
+        sha512 = "cRzPobcfRP0ZtuIEkA8QzghoUpSB3X3qSH5W2+FzG+VjWbJXExtx0nbRqwumdBN1x/ot2SlTNQLfBCnPdzp6kg==";
       };
     };
-    "@babel/plugin-transform-destructuring-7.23.3" = {
+    "@babel/plugin-transform-destructuring-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-destructuring";
       packageName = "@babel/plugin-transform-destructuring";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz";
-        sha512 = "n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.6.tgz";
+        sha512 = "YLW6AE5LQpk5npNXL7i/O+U9CE4XsBCuRPgyjl1EICZYKmcitV+ayuuUGMJm2lC1WWjXYszeTnIxF/dq/GhIZQ==";
       };
     };
-    "@babel/plugin-transform-dotall-regex-7.23.3" = {
+    "@babel/plugin-transform-dotall-regex-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-dotall-regex";
       packageName = "@babel/plugin-transform-dotall-regex";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz";
-        sha512 = "vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.6.tgz";
+        sha512 = "rCXPnSEKvkm/EjzOtLoGvKseK+dS4kZwx1HexO3BtRtgL0fQ34awHn34aeSHuXtZY2F8a1X8xqBBPRtOxDVmcA==";
       };
     };
-    "@babel/plugin-transform-duplicate-keys-7.23.3" = {
+    "@babel/plugin-transform-duplicate-keys-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-duplicate-keys";
       packageName = "@babel/plugin-transform-duplicate-keys";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz";
-        sha512 = "RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.6.tgz";
+        sha512 = "/8Odwp/aVkZwPFJMllSbawhDAO3UJi65foB00HYnK/uXvvCPm0TAXSByjz1mpRmp0q6oX2SIxpkUOpPFHk7FLA==";
       };
     };
-    "@babel/plugin-transform-dynamic-import-7.23.4" = {
+    "@babel/plugin-transform-dynamic-import-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-dynamic-import";
       packageName = "@babel/plugin-transform-dynamic-import";
-      version = "7.23.4";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz";
-        sha512 = "V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.6.tgz";
+        sha512 = "vpq8SSLRTBLOHUZHSnBqVo0AKX3PBaoPs2vVzYVWslXDTDIpwAcCDtfhUcHSQQoYoUvcFPTdC8TZYXu9ZnLT/w==";
       };
     };
-    "@babel/plugin-transform-exponentiation-operator-7.23.3" = {
+    "@babel/plugin-transform-exponentiation-operator-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-exponentiation-operator";
       packageName = "@babel/plugin-transform-exponentiation-operator";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz";
-        sha512 = "5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.6.tgz";
+        sha512 = "EemYpHtmz0lHE7hxxxYEuTYOOBZ43WkDgZ4arQ4r+VX9QHuNZC+WH3wUWmRNvR8ECpTRne29aZV6XO22qpOtdA==";
       };
     };
-    "@babel/plugin-transform-export-namespace-from-7.23.4" = {
+    "@babel/plugin-transform-export-namespace-from-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-export-namespace-from";
       packageName = "@babel/plugin-transform-export-namespace-from";
-      version = "7.23.4";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz";
-        sha512 = "GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.6.tgz";
+        sha512 = "inXaTM1SVrIxCkIJ5gqWiozHfFMStuGbGJAxZFBoHcRRdDP0ySLb3jH6JOwmfiinPwyMZqMBX+7NBDCO4z0NSA==";
       };
     };
-    "@babel/plugin-transform-flow-strip-types-7.23.3" = {
+    "@babel/plugin-transform-flow-strip-types-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-flow-strip-types";
       packageName = "@babel/plugin-transform-flow-strip-types";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.23.3.tgz";
-        sha512 = "26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.24.6.tgz";
+        sha512 = "1l8b24NoCpaQ13Vi6FtLG1nv6kNoi8PWvQb1AYO7GHZDpFfBYc3lbXArx1lP2KRt8b4pej1eWc/zrRmsQTfOdQ==";
       };
     };
-    "@babel/plugin-transform-for-of-7.23.6" = {
+    "@babel/plugin-transform-for-of-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-for-of";
       packageName = "@babel/plugin-transform-for-of";
-      version = "7.23.6";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz";
-        sha512 = "aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.6.tgz";
+        sha512 = "n3Sf72TnqK4nw/jziSqEl1qaWPbCRw2CziHH+jdRYvw4J6yeCzsj4jdw8hIntOEeDGTmHVe2w4MVL44PN0GMzg==";
       };
     };
-    "@babel/plugin-transform-function-name-7.23.3" = {
+    "@babel/plugin-transform-function-name-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-function-name";
       packageName = "@babel/plugin-transform-function-name";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz";
-        sha512 = "I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.6.tgz";
+        sha512 = "sOajCu6V0P1KPljWHKiDq6ymgqB+vfo3isUS4McqW1DZtvSVU2v/wuMhmRmkg3sFoq6GMaUUf8W4WtoSLkOV/Q==";
       };
     };
-    "@babel/plugin-transform-json-strings-7.23.4" = {
+    "@babel/plugin-transform-json-strings-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-json-strings";
       packageName = "@babel/plugin-transform-json-strings";
-      version = "7.23.4";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz";
-        sha512 = "81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.6.tgz";
+        sha512 = "Uvgd9p2gUnzYJxVdBLcU0KurF8aVhkmVyMKW4MIY1/BByvs3EBpv45q01o7pRTVmTvtQq5zDlytP3dcUgm7v9w==";
       };
     };
-    "@babel/plugin-transform-literals-7.23.3" = {
+    "@babel/plugin-transform-literals-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-literals";
       packageName = "@babel/plugin-transform-literals";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz";
-        sha512 = "wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.6.tgz";
+        sha512 = "f2wHfR2HF6yMj+y+/y07+SLqnOSwRp8KYLpQKOzS58XLVlULhXbiYcygfXQxJlMbhII9+yXDwOUFLf60/TL5tw==";
       };
     };
-    "@babel/plugin-transform-logical-assignment-operators-7.23.4" = {
+    "@babel/plugin-transform-logical-assignment-operators-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-logical-assignment-operators";
       packageName = "@babel/plugin-transform-logical-assignment-operators";
-      version = "7.23.4";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz";
-        sha512 = "Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.6.tgz";
+        sha512 = "EKaWvnezBCMkRIHxMJSIIylzhqK09YpiJtDbr2wsXTwnO0TxyjMUkaw4RlFIZMIS0iDj0KyIg7H7XCguHu/YDA==";
       };
     };
-    "@babel/plugin-transform-member-expression-literals-7.23.3" = {
+    "@babel/plugin-transform-member-expression-literals-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-member-expression-literals";
       packageName = "@babel/plugin-transform-member-expression-literals";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz";
-        sha512 = "sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.6.tgz";
+        sha512 = "9g8iV146szUo5GWgXpRbq/GALTnY+WnNuRTuRHWWFfWGbP9ukRL0aO/jpu9dmOPikclkxnNsjY8/gsWl6bmZJQ==";
       };
     };
-    "@babel/plugin-transform-modules-amd-7.23.3" = {
+    "@babel/plugin-transform-modules-amd-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-modules-amd";
       packageName = "@babel/plugin-transform-modules-amd";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz";
-        sha512 = "vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.6.tgz";
+        sha512 = "eAGogjZgcwqAxhyFgqghvoHRr+EYRQPFjUXrTYKBRb5qPnAVxOOglaxc4/byHqjvq/bqO2F3/CGwTHsgKJYHhQ==";
       };
     };
-    "@babel/plugin-transform-modules-commonjs-7.23.3" = {
+    "@babel/plugin-transform-modules-commonjs-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-modules-commonjs";
       packageName = "@babel/plugin-transform-modules-commonjs";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz";
-        sha512 = "aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.6.tgz";
+        sha512 = "JEV8l3MHdmmdb7S7Cmx6rbNEjRCgTQMZxllveHO0mx6uiclB0NflCawlQQ6+o5ZrwjUBYPzHm2XoK4wqGVUFuw==";
       };
     };
-    "@babel/plugin-transform-modules-systemjs-7.23.9" = {
+    "@babel/plugin-transform-modules-systemjs-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-modules-systemjs";
       packageName = "@babel/plugin-transform-modules-systemjs";
-      version = "7.23.9";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz";
-        sha512 = "KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.6.tgz";
+        sha512 = "xg1Z0J5JVYxtpX954XqaaAT6NpAY6LtZXvYFCJmGFJWwtlz2EmJoR8LycFRGNE8dBKizGWkGQZGegtkV8y8s+w==";
       };
     };
-    "@babel/plugin-transform-modules-umd-7.23.3" = {
+    "@babel/plugin-transform-modules-umd-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-modules-umd";
       packageName = "@babel/plugin-transform-modules-umd";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz";
-        sha512 = "zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.6.tgz";
+        sha512 = "esRCC/KsSEUvrSjv5rFYnjZI6qv4R1e/iHQrqwbZIoRJqk7xCvEUiN7L1XrmW5QSmQe3n1XD88wbgDTWLbVSyg==";
       };
     };
-    "@babel/plugin-transform-named-capturing-groups-regex-7.22.5" = {
+    "@babel/plugin-transform-named-capturing-groups-regex-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-named-capturing-groups-regex";
       packageName = "@babel/plugin-transform-named-capturing-groups-regex";
-      version = "7.22.5";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz";
-        sha512 = "YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.6.tgz";
+        sha512 = "6DneiCiu91wm3YiNIGDWZsl6GfTTbspuj/toTEqLh9d4cx50UIzSdg+T96p8DuT7aJOBRhFyaE9ZvTHkXrXr6Q==";
       };
     };
-    "@babel/plugin-transform-new-target-7.23.3" = {
+    "@babel/plugin-transform-new-target-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-new-target";
       packageName = "@babel/plugin-transform-new-target";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz";
-        sha512 = "YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.6.tgz";
+        sha512 = "f8liz9JG2Va8A4J5ZBuaSdwfPqN6axfWRK+y66fjKYbwf9VBLuq4WxtinhJhvp1w6lamKUwLG0slK2RxqFgvHA==";
       };
     };
-    "@babel/plugin-transform-nullish-coalescing-operator-7.23.4" = {
+    "@babel/plugin-transform-nullish-coalescing-operator-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-nullish-coalescing-operator";
       packageName = "@babel/plugin-transform-nullish-coalescing-operator";
-      version = "7.23.4";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz";
-        sha512 = "jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.6.tgz";
+        sha512 = "+QlAiZBMsBK5NqrBWFXCYeXyiU1y7BQ/OYaiPAcQJMomn5Tyg+r5WuVtyEuvTbpV7L25ZSLfE+2E9ywj4FD48A==";
       };
     };
-    "@babel/plugin-transform-numeric-separator-7.23.4" = {
+    "@babel/plugin-transform-numeric-separator-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-numeric-separator";
       packageName = "@babel/plugin-transform-numeric-separator";
-      version = "7.23.4";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz";
-        sha512 = "mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.6.tgz";
+        sha512 = "6voawq8T25Jvvnc4/rXcWZQKKxUNZcKMS8ZNrjxQqoRFernJJKjE3s18Qo6VFaatG5aiX5JV1oPD7DbJhn0a4Q==";
       };
     };
-    "@babel/plugin-transform-object-rest-spread-7.24.0" = {
+    "@babel/plugin-transform-object-rest-spread-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-object-rest-spread";
       packageName = "@babel/plugin-transform-object-rest-spread";
-      version = "7.24.0";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.0.tgz";
-        sha512 = "y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.6.tgz";
+        sha512 = "OKmi5wiMoRW5Smttne7BwHM8s/fb5JFs+bVGNSeHWzwZkWXWValR1M30jyXo1s/RaqgwwhEC62u4rFH/FBcBPg==";
       };
     };
-    "@babel/plugin-transform-object-super-7.23.3" = {
+    "@babel/plugin-transform-object-super-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-object-super";
       packageName = "@babel/plugin-transform-object-super";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz";
-        sha512 = "BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.6.tgz";
+        sha512 = "N/C76ihFKlZgKfdkEYKtaRUtXZAgK7sOY4h2qrbVbVTXPrKGIi8aww5WGe/+Wmg8onn8sr2ut6FXlsbu/j6JHg==";
       };
     };
-    "@babel/plugin-transform-optional-catch-binding-7.23.4" = {
+    "@babel/plugin-transform-optional-catch-binding-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-optional-catch-binding";
       packageName = "@babel/plugin-transform-optional-catch-binding";
-      version = "7.23.4";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz";
-        sha512 = "XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.6.tgz";
+        sha512 = "L5pZ+b3O1mSzJ71HmxSCmTVd03VOT2GXOigug6vDYJzE5awLI7P1g0wFcdmGuwSDSrQ0L2rDOe/hHws8J1rv3w==";
       };
     };
-    "@babel/plugin-transform-optional-chaining-7.23.4" = {
+    "@babel/plugin-transform-optional-chaining-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-optional-chaining";
       packageName = "@babel/plugin-transform-optional-chaining";
-      version = "7.23.4";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz";
-        sha512 = "ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.6.tgz";
+        sha512 = "cHbqF6l1QP11OkYTYQ+hhVx1E017O5ZcSPXk9oODpqhcAD1htsWG2NpHrrhthEO2qZomLK0FXS+u7NfrkF5aOQ==";
       };
     };
-    "@babel/plugin-transform-parameters-7.23.3" = {
+    "@babel/plugin-transform-parameters-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-parameters";
       packageName = "@babel/plugin-transform-parameters";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz";
-        sha512 = "09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.6.tgz";
+        sha512 = "ST7guE8vLV+vI70wmAxuZpIKzVjvFX9Qs8bl5w6tN/6gOypPWUmMQL2p7LJz5E63vEGrDhAiYetniJFyBH1RkA==";
       };
     };
-    "@babel/plugin-transform-private-methods-7.23.3" = {
+    "@babel/plugin-transform-private-methods-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-private-methods";
       packageName = "@babel/plugin-transform-private-methods";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz";
-        sha512 = "UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.6.tgz";
+        sha512 = "T9LtDI0BgwXOzyXrvgLTT8DFjCC/XgWLjflczTLXyvxbnSR/gpv0hbmzlHE/kmh9nOvlygbamLKRo6Op4yB6aw==";
       };
     };
-    "@babel/plugin-transform-private-property-in-object-7.23.4" = {
+    "@babel/plugin-transform-private-property-in-object-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-private-property-in-object";
       packageName = "@babel/plugin-transform-private-property-in-object";
-      version = "7.23.4";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz";
-        sha512 = "9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.6.tgz";
+        sha512 = "Qu/ypFxCY5NkAnEhCF86Mvg3NSabKsh/TPpBVswEdkGl7+FbsYHy1ziRqJpwGH4thBdQHh8zx+z7vMYmcJ7iaQ==";
       };
     };
-    "@babel/plugin-transform-property-literals-7.23.3" = {
+    "@babel/plugin-transform-property-literals-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-property-literals";
       packageName = "@babel/plugin-transform-property-literals";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz";
-        sha512 = "jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.6.tgz";
+        sha512 = "oARaglxhRsN18OYsnPTpb8TcKQWDYNsPNmTnx5++WOAsUJ0cSC/FZVlIJCKvPbU4yn/UXsS0551CFKJhN0CaMw==";
       };
     };
-    "@babel/plugin-transform-react-display-name-7.23.3" = {
+    "@babel/plugin-transform-react-display-name-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-react-display-name";
       packageName = "@babel/plugin-transform-react-display-name";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz";
-        sha512 = "GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.6.tgz";
+        sha512 = "/3iiEEHDsJuj9QU09gbyWGSUxDboFcD7Nj6dnHIlboWSodxXAoaY/zlNMHeYAC0WsERMqgO9a7UaM77CsYgWcg==";
       };
     };
-    "@babel/plugin-transform-react-jsx-7.23.4" = {
+    "@babel/plugin-transform-react-jsx-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-react-jsx";
       packageName = "@babel/plugin-transform-react-jsx";
-      version = "7.23.4";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz";
-        sha512 = "5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.6.tgz";
+        sha512 = "pCtPHhpRZHfwdA5G1Gpk5mIzMA99hv0R8S/Ket50Rw+S+8hkt3wBWqdqHaPw0CuUYxdshUgsPiLQ5fAs4ASMhw==";
       };
     };
-    "@babel/plugin-transform-react-jsx-self-7.23.3" = {
+    "@babel/plugin-transform-react-jsx-self-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-react-jsx-self";
       packageName = "@babel/plugin-transform-react-jsx-self";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz";
-        sha512 = "qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.6.tgz";
+        sha512 = "FfZfHXtQ5jYPQsCRyLpOv2GeLIIJhs8aydpNh39vRDjhD411XcfWDni5i7OjP/Rs8GAtTn7sWFFELJSHqkIxYg==";
       };
     };
-    "@babel/plugin-transform-react-jsx-source-7.23.3" = {
+    "@babel/plugin-transform-react-jsx-source-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-react-jsx-source";
       packageName = "@babel/plugin-transform-react-jsx-source";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz";
-        sha512 = "91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.6.tgz";
+        sha512 = "BQTBCXmFRreU3oTUXcGKuPOfXAGb1liNY4AvvFKsOBAJ89RKcTsIrSsnMYkj59fNa66OFKnSa4AJZfy5Y4B9WA==";
       };
     };
-    "@babel/plugin-transform-regenerator-7.23.3" = {
+    "@babel/plugin-transform-regenerator-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-regenerator";
       packageName = "@babel/plugin-transform-regenerator";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz";
-        sha512 = "KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.6.tgz";
+        sha512 = "SMDxO95I8WXRtXhTAc8t/NFQUT7VYbIWwJCJgEli9ml4MhqUMh4S6hxgH6SmAC3eAQNWCDJFxcFeEt9w2sDdXg==";
       };
     };
-    "@babel/plugin-transform-reserved-words-7.23.3" = {
+    "@babel/plugin-transform-reserved-words-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-reserved-words";
       packageName = "@babel/plugin-transform-reserved-words";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz";
-        sha512 = "QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.6.tgz";
+        sha512 = "DcrgFXRRlK64dGE0ZFBPD5egM2uM8mgfrvTMOSB2yKzOtjpGegVYkzh3s1zZg1bBck3nkXiaOamJUqK3Syk+4A==";
       };
     };
-    "@babel/plugin-transform-runtime-7.24.0" = {
+    "@babel/plugin-transform-runtime-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-runtime";
       packageName = "@babel/plugin-transform-runtime";
-      version = "7.24.0";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.0.tgz";
-        sha512 = "zc0GA5IitLKJrSfXlXmp8KDqLrnGECK7YRfQBmEKg1NmBOQ7e+KuclBEKJgzifQeUYLdNiAw4B4bjyvzWVLiSA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.6.tgz";
+        sha512 = "W3gQydMb0SY99y/2lV0Okx2xg/8KzmZLQsLaiCmwNRl1kKomz14VurEm+2TossUb+sRvBCnGe+wx8KtIgDtBbQ==";
       };
     };
-    "@babel/plugin-transform-shorthand-properties-7.23.3" = {
+    "@babel/plugin-transform-shorthand-properties-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-shorthand-properties";
       packageName = "@babel/plugin-transform-shorthand-properties";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz";
-        sha512 = "ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.6.tgz";
+        sha512 = "xnEUvHSMr9eOWS5Al2YPfc32ten7CXdH7Zwyyk7IqITg4nX61oHj+GxpNvl+y5JHjfN3KXE2IV55wAWowBYMVw==";
       };
     };
-    "@babel/plugin-transform-spread-7.23.3" = {
+    "@babel/plugin-transform-spread-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-spread";
       packageName = "@babel/plugin-transform-spread";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz";
-        sha512 = "VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.6.tgz";
+        sha512 = "h/2j7oIUDjS+ULsIrNZ6/TKG97FgmEk1PXryk/HQq6op4XUUUwif2f69fJrzK0wza2zjCS1xhXmouACaWV5uPA==";
       };
     };
-    "@babel/plugin-transform-sticky-regex-7.23.3" = {
+    "@babel/plugin-transform-sticky-regex-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-sticky-regex";
       packageName = "@babel/plugin-transform-sticky-regex";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz";
-        sha512 = "HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.6.tgz";
+        sha512 = "fN8OcTLfGmYv7FnDrsjodYBo1DhPL3Pze/9mIIE2MGCT1KgADYIOD7rEglpLHZj8PZlC/JFX5WcD+85FLAQusw==";
       };
     };
-    "@babel/plugin-transform-template-literals-7.23.3" = {
+    "@babel/plugin-transform-template-literals-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-template-literals";
       packageName = "@babel/plugin-transform-template-literals";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz";
-        sha512 = "Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.6.tgz";
+        sha512 = "BJbEqJIcKwrqUP+KfUIkxz3q8VzXe2R8Wv8TaNgO1cx+nNavxn/2+H8kp9tgFSOL6wYPPEgFvU6IKS4qoGqhmg==";
       };
     };
-    "@babel/plugin-transform-typeof-symbol-7.23.3" = {
+    "@babel/plugin-transform-typeof-symbol-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-typeof-symbol";
       packageName = "@babel/plugin-transform-typeof-symbol";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz";
-        sha512 = "4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.6.tgz";
+        sha512 = "IshCXQ+G9JIFJI7bUpxTE/oA2lgVLAIK8q1KdJNoPXOpvRaNjMySGuvLfBw/Xi2/1lLo953uE8hyYSDW3TSYig==";
       };
     };
-    "@babel/plugin-transform-typescript-7.23.6" = {
+    "@babel/plugin-transform-typescript-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-typescript";
       packageName = "@babel/plugin-transform-typescript";
-      version = "7.23.6";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz";
-        sha512 = "6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.6.tgz";
+        sha512 = "H0i+hDLmaYYSt6KU9cZE0gb3Cbssa/oxWis7PX4ofQzbvsfix9Lbh8SRk7LCPDlLWJHUiFeHU0qRRpF/4Zv7mQ==";
       };
     };
-    "@babel/plugin-transform-unicode-escapes-7.23.3" = {
+    "@babel/plugin-transform-unicode-escapes-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-unicode-escapes";
       packageName = "@babel/plugin-transform-unicode-escapes";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz";
-        sha512 = "OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.6.tgz";
+        sha512 = "bKl3xxcPbkQQo5eX9LjjDpU2xYHeEeNQbOhj0iPvetSzA+Tu9q/o5lujF4Sek60CM6MgYvOS/DJuwGbiEYAnLw==";
       };
     };
-    "@babel/plugin-transform-unicode-property-regex-7.23.3" = {
+    "@babel/plugin-transform-unicode-property-regex-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-unicode-property-regex";
       packageName = "@babel/plugin-transform-unicode-property-regex";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz";
-        sha512 = "KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.6.tgz";
+        sha512 = "8EIgImzVUxy15cZiPii9GvLZwsy7Vxc+8meSlR3cXFmBIl5W5Tn9LGBf7CDKkHj4uVfNXCJB8RsVfnmY61iedA==";
       };
     };
-    "@babel/plugin-transform-unicode-regex-7.23.3" = {
+    "@babel/plugin-transform-unicode-regex-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-unicode-regex";
       packageName = "@babel/plugin-transform-unicode-regex";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz";
-        sha512 = "wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.6.tgz";
+        sha512 = "pssN6ExsvxaKU638qcWb81RrvvgZom3jDgU/r5xFZ7TONkZGFf4MhI2ltMb8OcQWhHyxgIavEU+hgqtbKOmsPA==";
       };
     };
-    "@babel/plugin-transform-unicode-sets-regex-7.23.3" = {
+    "@babel/plugin-transform-unicode-sets-regex-7.24.6" = {
       name = "_at_babel_slash_plugin-transform-unicode-sets-regex";
       packageName = "@babel/plugin-transform-unicode-sets-regex";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz";
-        sha512 = "W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.6.tgz";
+        sha512 = "quiMsb28oXWIDK0gXLALOJRXLgICLiulqdZGOaPPd0vRT7fQp74NtdADAVu+D8s00C+0Xs0MxVP0VKF/sZEUgw==";
       };
     };
     "@babel/polyfill-7.12.1" = {
@@ -2821,22 +2884,22 @@ let
         sha512 = "X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g==";
       };
     };
-    "@babel/preset-env-7.24.0" = {
+    "@babel/preset-env-7.24.6" = {
       name = "_at_babel_slash_preset-env";
       packageName = "@babel/preset-env";
-      version = "7.24.0";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.0.tgz";
-        sha512 = "ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==";
+        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.6.tgz";
+        sha512 = "CrxEAvN7VxfjOG8JNF2Y/eMqMJbZPZ185amwGUBp8D9USK90xQmv7dLdFSa+VbD7fdIqcy/Mfv7WtzG8+/qxKg==";
       };
     };
-    "@babel/preset-flow-7.24.0" = {
+    "@babel/preset-flow-7.24.6" = {
       name = "_at_babel_slash_preset-flow";
       packageName = "@babel/preset-flow";
-      version = "7.24.0";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.24.0.tgz";
-        sha512 = "cum/nSi82cDaSJ21I4PgLTVlj0OXovFk6GRguJYe/IKg6y6JHLTbJhybtX4k35WT9wdeJfEVjycTixMhBHd0Dg==";
+        url = "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.24.6.tgz";
+        sha512 = "huoe0T1Qs9fQhMWbmqE/NHUeZbqmHDsN6n/jYvPcUUHfuKiPV32C9i8tDhMbQ1DEKTjbBP7Rjm3nSLwlB2X05g==";
       };
     };
     "@babel/preset-modules-0.1.6-no-external-plugins" = {
@@ -2848,22 +2911,22 @@ let
         sha512 = "HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==";
       };
     };
-    "@babel/preset-typescript-7.23.3" = {
+    "@babel/preset-typescript-7.24.6" = {
       name = "_at_babel_slash_preset-typescript";
       packageName = "@babel/preset-typescript";
-      version = "7.23.3";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz";
-        sha512 = "17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==";
+        url = "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.6.tgz";
+        sha512 = "U10aHPDnokCFRXgyT/MaIRTivUu2K/mu0vJlwRS9LxJmJet+PFQNKpggPyFCUtC6zWSBPjvxjnpNkAn3Uw2m5w==";
       };
     };
-    "@babel/register-7.23.7" = {
+    "@babel/register-7.24.6" = {
       name = "_at_babel_slash_register";
       packageName = "@babel/register";
-      version = "7.23.7";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/register/-/register-7.23.7.tgz";
-        sha512 = "EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==";
+        url = "https://registry.npmjs.org/@babel/register/-/register-7.24.6.tgz";
+        sha512 = "WSuFCc2wCqMeXkz/i3yfAAsxwWflEgbVkZzivgAmXl/MxrXeoYFZOOPllbC8R8WTF7u61wSRQtDVZ1879cdu6w==";
       };
     };
     "@babel/regjsgen-0.8.0" = {
@@ -2875,13 +2938,13 @@ let
         sha512 = "x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==";
       };
     };
-    "@babel/runtime-7.24.0" = {
+    "@babel/runtime-7.24.6" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.24.0";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz";
-        sha512 = "Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.6.tgz";
+        sha512 = "Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==";
       };
     };
     "@babel/runtime-7.9.0" = {
@@ -2902,6 +2965,15 @@ let
         sha512 = "Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==";
       };
     };
+    "@babel/template-7.24.6" = {
+      name = "_at_babel_slash_template";
+      packageName = "@babel/template";
+      version = "7.24.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/template/-/template-7.24.6.tgz";
+        sha512 = "3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==";
+      };
+    };
     "@babel/traverse-7.23.2" = {
       name = "_at_babel_slash_traverse";
       packageName = "@babel/traverse";
@@ -2911,13 +2983,13 @@ let
         sha512 = "azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==";
       };
     };
-    "@babel/traverse-7.24.0" = {
+    "@babel/traverse-7.24.6" = {
       name = "_at_babel_slash_traverse";
       packageName = "@babel/traverse";
-      version = "7.24.0";
+      version = "7.24.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz";
-        sha512 = "HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==";
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.6.tgz";
+        sha512 = "OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==";
       };
     };
     "@babel/types-7.17.0" = {
@@ -2947,6 +3019,15 @@ let
         sha512 = "+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==";
       };
     };
+    "@babel/types-7.24.6" = {
+      name = "_at_babel_slash_types";
+      packageName = "@babel/types";
+      version = "7.24.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.24.6.tgz";
+        sha512 = "WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==";
+      };
+    };
     "@bmewburn/js-beautify-1.14.9" = {
       name = "_at_bmewburn_slash_js-beautify";
       packageName = "@bmewburn/js-beautify";
@@ -2974,103 +3055,49 @@ let
         sha512 = "s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==";
       };
     };
-    "@bugsnag/browser-7.22.4" = {
-      name = "_at_bugsnag_slash_browser";
-      packageName = "@bugsnag/browser";
-      version = "7.22.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@bugsnag/browser/-/browser-7.22.4.tgz";
-        sha512 = "h2o9RZhAEIgJAUsECd7a00IkLnvQvLT7dUyUYx/s8VLvcq89gKa8E59rlM7f15wtkJ5MPfozhErXDpsdOvF4Rg==";
-      };
-    };
-    "@bugsnag/core-7.19.0" = {
-      name = "_at_bugsnag_slash_core";
-      packageName = "@bugsnag/core";
-      version = "7.19.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@bugsnag/core/-/core-7.19.0.tgz";
-        sha512 = "2KGwdaLD9PhR7Wk7xPi3jGuGsKTatc/28U4TOZIDU3CgC2QhGjubwiXSECel5gwxhZ3jACKcMKSV2ovHhv1NrA==";
-      };
-    };
-    "@bugsnag/cuid-3.0.2" = {
-      name = "_at_bugsnag_slash_cuid";
-      packageName = "@bugsnag/cuid";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@bugsnag/cuid/-/cuid-3.0.2.tgz";
-        sha512 = "cIwzC93r3PQ/INeuwtZwkZIG2K8WWN0rRLZQhu+mr48Ay+i6sEki4GYfTsflse7hZ1BeDWrNb/Q9vgY3B31xHQ==";
-      };
-    };
-    "@bugsnag/js-7.21.0" = {
-      name = "_at_bugsnag_slash_js";
-      packageName = "@bugsnag/js";
-      version = "7.21.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@bugsnag/js/-/js-7.21.0.tgz";
-        sha512 = "fFTR7cRBSlLtwa1wPTse92igZUEX2V95KyGGCXq2qb2F2w6hJ6oJDxA0BMPS8qqsciYXRjbfn8HX+TFgO1oErg==";
-      };
-    };
-    "@bugsnag/node-7.22.3" = {
-      name = "_at_bugsnag_slash_node";
-      packageName = "@bugsnag/node";
-      version = "7.22.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@bugsnag/node/-/node-7.22.3.tgz";
-        sha512 = "vDXu0mrduonyCjUkTp+zKSh1WHAtA2VjB49xK5s1f/HnTASiJvzUOQBRXrkqaj37sndYHUSMxUCPvLawyc75nA==";
-      };
-    };
-    "@bugsnag/safe-json-stringify-6.0.0" = {
-      name = "_at_bugsnag_slash_safe-json-stringify";
-      packageName = "@bugsnag/safe-json-stringify";
-      version = "6.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@bugsnag/safe-json-stringify/-/safe-json-stringify-6.0.0.tgz";
-        sha512 = "htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA==";
-      };
-    };
-    "@cdktf/cli-core-0.20.5" = {
+    "@cdktf/cli-core-0.20.7" = {
       name = "_at_cdktf_slash_cli-core";
       packageName = "@cdktf/cli-core";
-      version = "0.20.5";
+      version = "0.20.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/cli-core/-/cli-core-0.20.5.tgz";
-        sha512 = "QTOQjzxLYksskbEk1Db+LsXcCE3OXCGpX/i7JiBcp1IUCr7IRHC/W9adb9qKuJvZfCsRwHcIUmCPNAGUheRHUg==";
+        url = "https://registry.npmjs.org/@cdktf/cli-core/-/cli-core-0.20.7.tgz";
+        sha512 = "KGTRZ68PHUfiW75GkwOIetp2N9tjIdmTHwmt773jwlNFbi+OMaOEm07XQjtIz2AcuvLpx9u4N0u/uI4T+JfwSg==";
       };
     };
-    "@cdktf/commons-0.20.5" = {
+    "@cdktf/commons-0.20.7" = {
       name = "_at_cdktf_slash_commons";
       packageName = "@cdktf/commons";
-      version = "0.20.5";
+      version = "0.20.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/commons/-/commons-0.20.5.tgz";
-        sha512 = "5Fa8CN2nEfbwxQyuSwMLit/r34CIWq7v9PoBn+8PiG9fPeVw1OT+4zmcQYAwKa7JD5trqpvheVNCnCKesx2TWA==";
+        url = "https://registry.npmjs.org/@cdktf/commons/-/commons-0.20.7.tgz";
+        sha512 = "X1HnLlJjKyOfoWTOIoUbm5cRxWIqKw2gtHs4QgDlTGZm9kc5lW1IbwMuEOv7B1IHFXFFRFwnYg03V56TuoEvqQ==";
       };
     };
-    "@cdktf/hcl-tools-0.20.5" = {
+    "@cdktf/hcl-tools-0.20.7" = {
       name = "_at_cdktf_slash_hcl-tools";
       packageName = "@cdktf/hcl-tools";
-      version = "0.20.5";
+      version = "0.20.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/hcl-tools/-/hcl-tools-0.20.5.tgz";
-        sha512 = "mbm9lzS8GeEi3A2AXcAwaWYvi4z/DY2nAOYTQnhvPDjEDPMn8bS7/6BCRj/+G4VcfRJG3vSIrV1szLYIueBuag==";
+        url = "https://registry.npmjs.org/@cdktf/hcl-tools/-/hcl-tools-0.20.7.tgz";
+        sha512 = "B/1/UqoCu9V40oV/qLsBRwqp/Q+0wQOcm7WtgZEKNEvNb+5y01E7UbWLoIvs3k7TX8pzHU9Bl1gACXtHbezpsw==";
       };
     };
-    "@cdktf/hcl2cdk-0.20.5" = {
+    "@cdktf/hcl2cdk-0.20.7" = {
       name = "_at_cdktf_slash_hcl2cdk";
       packageName = "@cdktf/hcl2cdk";
-      version = "0.20.5";
+      version = "0.20.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/hcl2cdk/-/hcl2cdk-0.20.5.tgz";
-        sha512 = "sA5ldRMQxy3zxfq+Kq/MqtDOrg8u6k/X2wMz3p11hZSJiAdDK/7vranUsm3iUvHUIjAGqurGbLOJ40bVggF4ow==";
+        url = "https://registry.npmjs.org/@cdktf/hcl2cdk/-/hcl2cdk-0.20.7.tgz";
+        sha512 = "xGrVa/SxnLrYM8pSwRfvvAFaj7ak3B3xvuwhj9xTWKZ39f89sX4vPkTuJgoiwIG83iAIlNapUcqMQ0PeqogeBw==";
       };
     };
-    "@cdktf/hcl2json-0.20.5" = {
+    "@cdktf/hcl2json-0.20.7" = {
       name = "_at_cdktf_slash_hcl2json";
       packageName = "@cdktf/hcl2json";
-      version = "0.20.5";
+      version = "0.20.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/hcl2json/-/hcl2json-0.20.5.tgz";
-        sha512 = "dI2M7X05ak6v5rwKzI68SocEH5YQFxF5hQzpaj9Bli672zhD88QTLOzdC61/GvAkbqf955C05jqcvC7KCY0h1w==";
+        url = "https://registry.npmjs.org/@cdktf/hcl2json/-/hcl2json-0.20.7.tgz";
+        sha512 = "325Swm3ySUEbscSIXrtrNOt0mJCyVTheD5SNuDTcMYLyTPQNgu/6LgKu36YQt0AKK3zUp+f56pEYMitpR9FmLQ==";
       };
     };
     "@cdktf/node-pty-prebuilt-multiarch-0.10.1-pre.11" = {
@@ -3082,22 +3109,22 @@ let
         sha512 = "qvga/nzEtdCJMu/6jJfDqpzbRejvXtNhWFnbubfuYyN5nMNORNXX+POT4j+mQSDQar5bIQ1a812szw/zr47cfw==";
       };
     };
-    "@cdktf/provider-generator-0.20.5" = {
+    "@cdktf/provider-generator-0.20.7" = {
       name = "_at_cdktf_slash_provider-generator";
       packageName = "@cdktf/provider-generator";
-      version = "0.20.5";
+      version = "0.20.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/provider-generator/-/provider-generator-0.20.5.tgz";
-        sha512 = "wyH0I0gzwGAOOizd1stMLyFBkGkrwoR5h+BAP08HutyyiVlcs1ddeceh+mwD4HyH1pI+F+ZJh2lt1ViHhzNCrw==";
+        url = "https://registry.npmjs.org/@cdktf/provider-generator/-/provider-generator-0.20.7.tgz";
+        sha512 = "O3ZyDp/q73Kg2zn/axA4V62c3QvaGEO44G94eiyi4z6GRokTVQ4eOlkpoqp3spejizhMkA8Lzq+OQ2cvsQygeA==";
       };
     };
-    "@cdktf/provider-schema-0.20.5" = {
+    "@cdktf/provider-schema-0.20.7" = {
       name = "_at_cdktf_slash_provider-schema";
       packageName = "@cdktf/provider-schema";
-      version = "0.20.5";
+      version = "0.20.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/provider-schema/-/provider-schema-0.20.5.tgz";
-        sha512 = "YfLsoAmHrBrkj24/oXBuDydd8FC7ux6+cR9gN7xhcO1gCrzYnIprQ2LHwHAgr6UUtHJgeAhVaJQWjyLaMAf1PA==";
+        url = "https://registry.npmjs.org/@cdktf/provider-schema/-/provider-schema-0.20.7.tgz";
+        sha512 = "KVV5YMaMoXgrmT+AsU1y3vCLfyie5/XbSKVVrUnVp5sCrwhsFMl6U59HTDQ52QX3aHWxwTAqEZbljdg6ZUbk9A==";
       };
     };
     "@chemzqm/msgpack-lite-0.1.29" = {
@@ -3118,31 +3145,22 @@ let
         sha512 = "m7lZj00lP1fNMzXITOV1uNdsYXjsmMbFB7Sl8OXfhRWYDQuBr6EPNzIzAonzIcmvTA2JNs8WMq0ZU76XXzpP6w==";
       };
     };
-    "@cloudflare/kv-asset-handler-0.3.1" = {
+    "@cloudflare/kv-asset-handler-0.3.2" = {
       name = "_at_cloudflare_slash_kv-asset-handler";
       packageName = "@cloudflare/kv-asset-handler";
-      version = "0.3.1";
+      version = "0.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.3.1.tgz";
-        sha512 = "lKN2XCfKCmpKb86a1tl4GIwsJYDy9TGuwjhDELLmpKygQhw8X2xR4dusgpC5Tg7q1pB96Eb0rBo81kxSILQMwA==";
+        url = "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.3.2.tgz";
+        sha512 = "EeEjMobfuJrwoctj7FA1y1KEbM0+Q1xSjobIEyie9k4haVEBB7vkDvsasw1pM3rO39mL2akxIAzLMUAtrMHZhA==";
       };
     };
-    "@cloudflare/workers-types-4.20240314.0" = {
+    "@cloudflare/workers-types-4.20240603.0" = {
       name = "_at_cloudflare_slash_workers-types";
       packageName = "@cloudflare/workers-types";
-      version = "4.20240314.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20240314.0.tgz";
-        sha512 = "eg2dK/tYSiFvQu3sexjB32WEGi3GEmY6pLRF4nrV9Rwi2F2965o6f6604jQY8whhrmNdEoWErSjhuuUld6xgKQ==";
-      };
-    };
-    "@colors/colors-1.5.0" = {
-      name = "_at_colors_slash_colors";
-      packageName = "@colors/colors";
-      version = "1.5.0";
+      version = "4.20240603.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz";
-        sha512 = "ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==";
+        url = "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20240603.0.tgz";
+        sha512 = "KmsjZcd/dPWM51FoT08cvUGCq9l3nFEriloQ12mcdJPoW911Gi5S/9Cq4xeFvTrtk9TJ2krvxP23IeobecRmOQ==";
       };
     };
     "@colors/colors-1.6.0" = {
@@ -3181,31 +3199,31 @@ let
         sha512 = "mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw==";
       };
     };
-    "@commitlint/format-19.0.3" = {
+    "@commitlint/format-19.3.0" = {
       name = "_at_commitlint_slash_format";
       packageName = "@commitlint/format";
-      version = "19.0.3";
+      version = "19.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/format/-/format-19.0.3.tgz";
-        sha512 = "QjjyGyoiVWzx1f5xOteKHNLFyhyweVifMgopozSgx1fGNrGV8+wp7k6n1t6StHdJ6maQJ+UUtO2TcEiBFRyR6Q==";
+        url = "https://registry.npmjs.org/@commitlint/format/-/format-19.3.0.tgz";
+        sha512 = "luguk5/aF68HiF4H23ACAfk8qS8AHxl4LLN5oxPc24H+2+JRPsNr1OS3Gaea0CrH7PKhArBMKBz5RX9sA5NtTg==";
       };
     };
-    "@commitlint/is-ignored-19.0.3" = {
+    "@commitlint/is-ignored-19.2.2" = {
       name = "_at_commitlint_slash_is-ignored";
       packageName = "@commitlint/is-ignored";
-      version = "19.0.3";
+      version = "19.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-19.0.3.tgz";
-        sha512 = "MqDrxJaRSVSzCbPsV6iOKG/Lt52Y+PVwFVexqImmYYFhe51iVJjK2hRhOG2jUAGiUHk4jpdFr0cZPzcBkSzXDQ==";
+        url = "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-19.2.2.tgz";
+        sha512 = "eNX54oXMVxncORywF4ZPFtJoBm3Tvp111tg1xf4zWXGfhBPKpfKG6R+G3G4v5CPlRROXpAOpQ3HMhA9n1Tck1g==";
       };
     };
-    "@commitlint/lint-19.1.0" = {
+    "@commitlint/lint-19.2.2" = {
       name = "_at_commitlint_slash_lint";
       packageName = "@commitlint/lint";
-      version = "19.1.0";
+      version = "19.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/lint/-/lint-19.1.0.tgz";
-        sha512 = "ESjaBmL/9cxm+eePyEr6SFlBUIYlYpI80n+Ltm7IA3MAcrmiP05UMhJdAD66sO8jvo8O4xdGn/1Mt2G5VzfZKw==";
+        url = "https://registry.npmjs.org/@commitlint/lint/-/lint-19.2.2.tgz";
+        sha512 = "xrzMmz4JqwGyKQKTpFzlN0dx0TAiT7Ran1fqEBgEmEj+PU98crOFtysJgY+QdeSagx6EDRigQIXJVnfrI0ratA==";
       };
     };
     "@commitlint/load-19.2.0" = {
@@ -3235,13 +3253,13 @@ let
         sha512 = "Il+tNyOb8VDxN3P6XoBBwWJtKKGzHlitEuXA5BP6ir/3loWlsSqDr5aecl6hZcC/spjq4pHqNh0qPlfeWu38QA==";
       };
     };
-    "@commitlint/read-19.2.0" = {
+    "@commitlint/read-19.2.1" = {
       name = "_at_commitlint_slash_read";
       packageName = "@commitlint/read";
-      version = "19.2.0";
+      version = "19.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/read/-/read-19.2.0.tgz";
-        sha512 = "HlGeEd/jyp2a5Fb9mvtsaDm5hFCmj80dJYjLQkpG3DzWneWBc37YU3kM8Za1D1HUazZaTkdsWq73M3XDE4CvCA==";
+        url = "https://registry.npmjs.org/@commitlint/read/-/read-19.2.1.tgz";
+        sha512 = "qETc4+PL0EUv7Q36lJbPG+NJiBOGg7SSC7B5BsPWOmei+Dyif80ErfWQ0qXoW9oCh7GTpTNRoaVhiI8RbhuaNw==";
       };
     };
     "@commitlint/resolve-extends-19.1.0" = {
@@ -3289,6 +3307,15 @@ let
         sha512 = "tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==";
       };
     };
+    "@conventional-changelog/git-client-1.0.1" = {
+      name = "_at_conventional-changelog_slash_git-client";
+      packageName = "@conventional-changelog/git-client";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@conventional-changelog/git-client/-/git-client-1.0.1.tgz";
+        sha512 = "PJEqBwAleffCMETaVm/fUgHldzBE35JFk3/9LL6NUA5EXa3qednu+UT6M7E5iBu3zIQZCULYIiZ90fBYHt6xUw==";
+      };
+    };
     "@cronvel/get-pixels-3.4.1" = {
       name = "_at_cronvel_slash_get-pixels";
       packageName = "@cronvel/get-pixels";
@@ -3298,58 +3325,58 @@ let
         sha512 = "gB5C5nDIacLUdsMuW8YsM9SzK3vaFANe4J11CVXpovpy7bZUGrcJKmc6m/0gWG789pKr6XSZY2aEetjFvSRw5g==";
       };
     };
-    "@cspell/cspell-bundled-dicts-8.6.0" = {
+    "@cspell/cspell-bundled-dicts-8.8.4" = {
       name = "_at_cspell_slash_cspell-bundled-dicts";
       packageName = "@cspell/cspell-bundled-dicts";
-      version = "8.6.0";
+      version = "8.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-8.6.0.tgz";
-        sha512 = "hRVvir4G4276Kz/Cru34AJg1FObIw5MrzezAwHkD3obNMwZkof8aX3MEN6AzWusJSVG2ZxZxZAEnYbgqvGr2Fg==";
+        url = "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-8.8.4.tgz";
+        sha512 = "k9ZMO2kayQFXB3B45b1xXze3MceAMNy9U+D7NTnWB1i3S0y8LhN53U9JWWgqHGPQaHaLHzizL7/w1aGHTA149Q==";
       };
     };
-    "@cspell/cspell-json-reporter-8.6.0" = {
+    "@cspell/cspell-json-reporter-8.8.4" = {
       name = "_at_cspell_slash_cspell-json-reporter";
       packageName = "@cspell/cspell-json-reporter";
-      version = "8.6.0";
+      version = "8.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-8.6.0.tgz";
-        sha512 = "fPpE4a3zpdfwgTyfLgCmxZn4owkZ4IP6A/oL4XLW22IxW5xBIbXEveOSY+uiWAnVfEnqfrMNRLAGj7JoXnJ1Vg==";
+        url = "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-8.8.4.tgz";
+        sha512 = "ITpOeNyDHD+4B9QmLJx6YYtrB1saRsrCLluZ34YaICemNLuumVRP1vSjcdoBtefvGugCOn5nPK7igw0r/vdAvA==";
       };
     };
-    "@cspell/cspell-pipe-8.6.0" = {
+    "@cspell/cspell-pipe-8.8.4" = {
       name = "_at_cspell_slash_cspell-pipe";
       packageName = "@cspell/cspell-pipe";
-      version = "8.6.0";
+      version = "8.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-8.6.0.tgz";
-        sha512 = "gbAZksz38OHaN8s4fOmmgtgQfie1K8dRGlo9z/uxSx5FIELV48GWTbHn9t1TY2yBXBwJ7+4NF2+r624rtlPoHQ==";
+        url = "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-8.8.4.tgz";
+        sha512 = "Uis9iIEcv1zOogXiDVSegm9nzo5NRmsRDsW8CteLRg6PhyZ0nnCY1PZIUy3SbGF0vIcb/M+XsdLSh2wOPqTXww==";
       };
     };
-    "@cspell/cspell-resolver-8.6.0" = {
+    "@cspell/cspell-resolver-8.8.4" = {
       name = "_at_cspell_slash_cspell-resolver";
       packageName = "@cspell/cspell-resolver";
-      version = "8.6.0";
+      version = "8.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-8.6.0.tgz";
-        sha512 = "ARwO6TWKy8fLHNhC/ls5Wo/AK86E1oLVChwWtHdq7eVyEUIykQaXGLqoRThkIT2jyLfGDrhSvaU+yqcXVLE48Q==";
+        url = "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-8.8.4.tgz";
+        sha512 = "eZVw31nSeh6xKl7TzzkZVMTX/mgwhUw40/q1Sqo7CTPurIBg66oelEqKRclX898jzd2/qSK+ZFwBDxvV7QH38A==";
       };
     };
-    "@cspell/cspell-service-bus-8.6.0" = {
+    "@cspell/cspell-service-bus-8.8.4" = {
       name = "_at_cspell_slash_cspell-service-bus";
       packageName = "@cspell/cspell-service-bus";
-      version = "8.6.0";
+      version = "8.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-8.6.0.tgz";
-        sha512 = "veCGlhlNGmYMgzX/rMiDp8j7ndLxFHIZq3h6DNlIsIoSjP1v5Rk6UcCwEoWYexwKmNXo7c2VooB0GM9LSBcPAQ==";
+        url = "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-8.8.4.tgz";
+        sha512 = "KtwJ38uPLrm2Q8osmMIAl2NToA/CMyZCxck4msQJnskdo30IPSdA1Rh0w6zXinmh1eVe0zNEVCeJ2+x23HqW+g==";
       };
     };
-    "@cspell/cspell-types-8.6.0" = {
+    "@cspell/cspell-types-8.8.4" = {
       name = "_at_cspell_slash_cspell-types";
       packageName = "@cspell/cspell-types";
-      version = "8.6.0";
+      version = "8.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-8.6.0.tgz";
-        sha512 = "+CU/nuFOpswJAA3IS2TcKGskfM/o/4aNG1IMUVaOEQi1Sc5qZQ4Wj1qDIWJArSHFYW1Q4XFa4U8K1jnVHkAhZQ==";
+        url = "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-8.8.4.tgz";
+        sha512 = "ya9Jl4+lghx2eUuZNY6pcbbrnResgEAomvglhdbEGqy+B5MPEqY5Jt45APEmGqHzTNks7oFFaiTIbXYJAFBR7A==";
       };
     };
     "@cspell/dict-ada-4.0.2" = {
@@ -3370,13 +3397,13 @@ let
         sha512 = "K21CfB4ZpKYwwDQiPfic2zJA/uxkbsd4IQGejEvDAhE3z8wBs6g6BwwqdVO767M9NgZqc021yAVpr79N5pWe3w==";
       };
     };
-    "@cspell/dict-aws-4.0.1" = {
+    "@cspell/dict-aws-4.0.2" = {
       name = "_at_cspell_slash_dict-aws";
       packageName = "@cspell/dict-aws";
-      version = "4.0.1";
+      version = "4.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-aws/-/dict-aws-4.0.1.tgz";
-        sha512 = "NXO+kTPQGqaaJKa4kO92NAXoqS+i99dQzf3/L1BxxWVSBS3/k1f3uhmqIh7Crb/n22W793lOm0D9x952BFga3Q==";
+        url = "https://registry.npmjs.org/@cspell/dict-aws/-/dict-aws-4.0.2.tgz";
+        sha512 = "aNGHWSV7dRLTIn8WJemzLoMF62qOaiUQlgnsCwH5fRCD/00gsWCwg106pnbkmK4AyabyxzneOV4dfecDJWkSxw==";
       };
     };
     "@cspell/dict-bash-1.0.18" = {
@@ -3406,13 +3433,13 @@ let
         sha512 = "Aw07qiTroqSST2P5joSrC4uOA05zTXzI2wMb+me3q4Davv1D9sCkzXY0TGoC2vzhNv5ooemRi9KATGaBSdU1sw==";
       };
     };
-    "@cspell/dict-companies-3.0.31" = {
+    "@cspell/dict-companies-3.1.2" = {
       name = "_at_cspell_slash_dict-companies";
       packageName = "@cspell/dict-companies";
-      version = "3.0.31";
+      version = "3.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.0.31.tgz";
-        sha512 = "hKVpV/lcGKP4/DpEPS8P4osPvFH/YVLJaDn9cBIOH6/HSmL5LbFgJNKpMGaYRbhm2FEX56MKE3yn/MNeNYuesQ==";
+        url = "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.1.2.tgz";
+        sha512 = "OwR5i1xbYuJX7FtHQySmTy3iJtPV1rZQ3jFCxFGwrA1xRQ4rtRcDQ+sTXBCIAoJHkXa84f9J3zsngOKmMGyS/w==";
       };
     };
     "@cspell/dict-cpp-1.1.40" = {
@@ -3424,13 +3451,13 @@ let
         sha512 = "sscfB3woNDNj60/yGXAdwNtIRWZ89y35xnIaJVDMk5TPMMpaDvuk0a34iOPIq0g4V+Y8e3RyAg71SH6ADwSjGw==";
       };
     };
-    "@cspell/dict-cpp-5.1.3" = {
+    "@cspell/dict-cpp-5.1.8" = {
       name = "_at_cspell_slash_dict-cpp";
       packageName = "@cspell/dict-cpp";
-      version = "5.1.3";
+      version = "5.1.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-5.1.3.tgz";
-        sha512 = "sqnriXRAInZH9W75C+APBh6dtben9filPqVbIsiRMUXGg+s02ekz0z6LbS7kXeJ5mD2qXoMLBrv13qH2eIwutQ==";
+        url = "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-5.1.8.tgz";
+        sha512 = "X5uq0uRqN6cyOZOZV1YKi6g8sBtd0+VoF5NbDWURahGR8TRsiztH0sNqs0IB3X0dW4GakU+n9SXcuEmxynkSsw==";
       };
     };
     "@cspell/dict-cryptocurrencies-1.0.10" = {
@@ -3541,13 +3568,13 @@ let
         sha512 = "9H9vXrgJB4KF8xsyTToXO53cXD33iyfrpT4mhCds+YLUw3P3x3E9myszgJzshnrxYBvQZ+QMII57Qr6SjZVk4Q==";
       };
     };
-    "@cspell/dict-dotnet-5.0.0" = {
+    "@cspell/dict-dotnet-5.0.2" = {
       name = "_at_cspell_slash_dict-dotnet";
       packageName = "@cspell/dict-dotnet";
-      version = "5.0.0";
+      version = "5.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-dotnet/-/dict-dotnet-5.0.0.tgz";
-        sha512 = "EOwGd533v47aP5QYV8GlSSKkmM9Eq8P3G/eBzSpH3Nl2+IneDOYOBLEUraHuiCtnOkNsz0xtZHArYhAB2bHWAw==";
+        url = "https://registry.npmjs.org/@cspell/dict-dotnet/-/dict-dotnet-5.0.2.tgz";
+        sha512 = "UD/pO2A2zia/YZJ8Kck/F6YyDSpCMq0YvItpd4YbtDVzPREfTZ48FjZsbYi4Jhzwfvc6o8R56JusAE58P+4sNQ==";
       };
     };
     "@cspell/dict-elixir-1.0.26" = {
@@ -3568,13 +3595,13 @@ let
         sha512 = "g+uKLWvOp9IEZvrIvBPTr/oaO6619uH/wyqypqvwpmnmpjcfi8+/hqZH8YNKt15oviK8k4CkINIqNhyndG9d9Q==";
       };
     };
-    "@cspell/dict-en-common-misspellings-2.0.0" = {
+    "@cspell/dict-en-common-misspellings-2.0.1" = {
       name = "_at_cspell_slash_dict-en-common-misspellings";
       packageName = "@cspell/dict-en-common-misspellings";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-2.0.0.tgz";
-        sha512 = "NOg8dlv37/YqLkCfBs5OXeJm/Wcfb/CzeOmOZJ2ZXRuxwsNuolb4TREUce0yAXRqMhawahY5TSDRJJBgKjBOdw==";
+        url = "https://registry.npmjs.org/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-2.0.1.tgz";
+        sha512 = "uWaP8UG4uvcPyqaG0FzPKCm5kfmhsiiQ45Fs6b3/AEAqfq7Fj1JW0+S3qRt85FQA9SoU6gUJCz9wkK/Ylh7m5A==";
       };
     };
     "@cspell/dict-en-gb-1.1.33" = {
@@ -3595,13 +3622,13 @@ let
         sha512 = "UPwR4rfiJCxnS+Py+EK9E4AUj3aPZE4p/yBRSHN+5aBQConlI0lLDtMceH5wlupA/sQTU1ERZGPJA9L96jVSyQ==";
       };
     };
-    "@cspell/dict-en_us-4.3.17" = {
+    "@cspell/dict-en_us-4.3.21" = {
       name = "_at_cspell_slash_dict-en_us";
       packageName = "@cspell/dict-en_us";
-      version = "4.3.17";
+      version = "4.3.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.3.17.tgz";
-        sha512 = "CS0Tb2f2YwQZ4VZ6+WLAO5uOzb0iO/iYSRl34kX4enq6quXxLYzwdfGAwv85wSYHPdga8tGiZFP+p8GPsi2JEg==";
+        url = "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.3.21.tgz";
+        sha512 = "Bzoo2aS4Pej/MGIFlATpp0wMt9IzVHrhDjdV7FgkAIXbjrOn67ojbTxCgWs8AuCNVfK8lBYGEvs5+ElH1msF8w==";
       };
     };
     "@cspell/dict-filetypes-1.1.8" = {
@@ -3613,13 +3640,13 @@ let
         sha512 = "EllahNkhzvLWo0ptwu0l3oEeAJOQSUpZnDfnKRIh6mJVehuSovNHwA9vrdZ8jBUjuqcfaN2e7c32zN0D/qvWJQ==";
       };
     };
-    "@cspell/dict-filetypes-3.0.3" = {
+    "@cspell/dict-filetypes-3.0.4" = {
       name = "_at_cspell_slash_dict-filetypes";
       packageName = "@cspell/dict-filetypes";
-      version = "3.0.3";
+      version = "3.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-filetypes/-/dict-filetypes-3.0.3.tgz";
-        sha512 = "J9UP+qwwBLfOQ8Qg9tAsKtSY/WWmjj21uj6zXTI9hRLD1eG1uUOLcfVovAmtmVqUWziPSKMr87F6SXI3xmJXgw==";
+        url = "https://registry.npmjs.org/@cspell/dict-filetypes/-/dict-filetypes-3.0.4.tgz";
+        sha512 = "IBi8eIVdykoGgIv5wQhOURi5lmCNJq0we6DvqKoPQJHthXbgsuO1qrHSiUVydMiQl/XvcnUWTMeAlVUlUClnVg==";
       };
     };
     "@cspell/dict-fonts-1.0.14" = {
@@ -3658,13 +3685,13 @@ let
         sha512 = "Mbi+zWdiP9yzL+X4YD9Tgcm5YQ95Ql+Y3vF2LRnOY6g2QWaijTRN1rgksVuxzpFqHi//+bx2uoUb0XEKBYDi8g==";
       };
     };
-    "@cspell/dict-fullstack-3.1.5" = {
+    "@cspell/dict-fullstack-3.1.8" = {
       name = "_at_cspell_slash_dict-fullstack";
       packageName = "@cspell/dict-fullstack";
-      version = "3.1.5";
+      version = "3.1.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-fullstack/-/dict-fullstack-3.1.5.tgz";
-        sha512 = "6ppvo1dkXUZ3fbYn/wwzERxCa76RtDDl5Afzv2lijLoijGGUw5yYdLBKJnx8PJBGNLh829X352ftE7BElG4leA==";
+        url = "https://registry.npmjs.org/@cspell/dict-fullstack/-/dict-fullstack-3.1.8.tgz";
+        sha512 = "YRlZupL7uqMCtEBK0bDP9BrcPnjDhz7m4GBqCc1EYqfXauHbLmDT8ELha7T/E7wsFKniHSjzwDZzhNXo2lusRQ==";
       };
     };
     "@cspell/dict-gaming-terms-1.0.5" = {
@@ -3694,13 +3721,22 @@ let
         sha512 = "qq3Cjnx2U1jpeWAGJL1GL0ylEhUMqyaR36Xij6Y6Aq4bViCRp+HRRqk0x5/IHHbOrti45h3yy7ii1itRFo+Xkg==";
       };
     };
-    "@cspell/dict-golang-6.0.5" = {
+    "@cspell/dict-golang-6.0.9" = {
       name = "_at_cspell_slash_dict-golang";
       packageName = "@cspell/dict-golang";
-      version = "6.0.5";
+      version = "6.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-6.0.5.tgz";
-        sha512 = "w4mEqGz4/wV+BBljLxduFNkMrd3rstBNDXmoX5kD4UTzIb4Sy0QybWCtg2iVT+R0KWiRRA56QKOvBsgXiddksA==";
+        url = "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-6.0.9.tgz";
+        sha512 = "etDt2WQauyEQDA+qPS5QtkYTb2I9l5IfQftAllVoB1aOrT6bxxpHvMEpJ0Hsn/vezxrCqa/BmtUbRxllIxIuSg==";
+      };
+    };
+    "@cspell/dict-google-1.0.1" = {
+      name = "_at_cspell_slash_dict-google";
+      packageName = "@cspell/dict-google";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@cspell/dict-google/-/dict-google-1.0.1.tgz";
+        sha512 = "dQr4M3n95uOhtloNSgB9tYYGXGGEGEykkFyRtfcp5pFuEecYUa0BSgtlGKx9RXVtJtKgR+yFT/a5uQSlt8WjqQ==";
       };
     };
     "@cspell/dict-haskell-1.0.13" = {
@@ -3775,13 +3811,22 @@ let
         sha512 = "kdE4AHHHrixyZ5p6zyms1SLoYpaJarPxrz8Tveo6gddszBVVwIUZ+JkQE1bWNLK740GWzIXdkznpUfw1hP9nXw==";
       };
     };
-    "@cspell/dict-k8s-1.0.2" = {
+    "@cspell/dict-julia-1.0.1" = {
+      name = "_at_cspell_slash_dict-julia";
+      packageName = "@cspell/dict-julia";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@cspell/dict-julia/-/dict-julia-1.0.1.tgz";
+        sha512 = "4JsCLCRhhLMLiaHpmR7zHFjj1qOauzDI5ZzCNQS31TUMfsOo26jAKDfo0jljFAKgw5M2fEG7sKr8IlPpQAYrmQ==";
+      };
+    };
+    "@cspell/dict-k8s-1.0.5" = {
       name = "_at_cspell_slash_dict-k8s";
       packageName = "@cspell/dict-k8s";
-      version = "1.0.2";
+      version = "1.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-k8s/-/dict-k8s-1.0.2.tgz";
-        sha512 = "tLT7gZpNPnGa+IIFvK9SP1LrSpPpJ94a/DulzAPOb1Q2UBFwdpFd82UWhio0RNShduvKG/WiMZf/wGl98pn+VQ==";
+        url = "https://registry.npmjs.org/@cspell/dict-k8s/-/dict-k8s-1.0.5.tgz";
+        sha512 = "Cj+/ZV4S+MKlwfocSJZqe/2UAd/sY8YtlZjbK25VN1nCnrsKrBjfkX29vclwSj1U9aJg4Z9jw/uMjoaKu9ZrpQ==";
       };
     };
     "@cspell/dict-latex-1.0.25" = {
@@ -3847,6 +3892,15 @@ let
         sha512 = "3W9tHPcSbJa6s0bcqWo6VisEDTSN5zOtDbnPabF7rbyjRpNo0uHXHRJQF8gAbFzoTzBBhgkTmrfSiuyQm7vBUQ==";
       };
     };
+    "@cspell/dict-monkeyc-1.0.6" = {
+      name = "_at_cspell_slash_dict-monkeyc";
+      packageName = "@cspell/dict-monkeyc";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@cspell/dict-monkeyc/-/dict-monkeyc-1.0.6.tgz";
+        sha512 = "oO8ZDu/FtZ55aq9Mb67HtaCnsLn59xvhO/t2mLLTHAp667hJFxpp7bCtr2zOrR1NELzFXmKln/2lw/PvxMSvrA==";
+      };
+    };
     "@cspell/dict-node-1.0.12" = {
       name = "_at_cspell_slash_dict-node";
       packageName = "@cspell/dict-node";
@@ -3856,13 +3910,13 @@ let
         sha512 = "RPNn/7CSkflAWk0sbSoOkg0ORrgBARUjOW3QjB11KwV1gSu8f5W/ij/S50uIXtlrfoBLqd4OyE04jyON+g/Xfg==";
       };
     };
-    "@cspell/dict-node-4.0.3" = {
+    "@cspell/dict-node-5.0.1" = {
       name = "_at_cspell_slash_dict-node";
       packageName = "@cspell/dict-node";
-      version = "4.0.3";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-node/-/dict-node-4.0.3.tgz";
-        sha512 = "sFlUNI5kOogy49KtPg8SMQYirDGIAoKBO3+cDLIwD4MLdsWy1q0upc7pzGht3mrjuyMiPRUV14Bb0rkVLrxOhg==";
+        url = "https://registry.npmjs.org/@cspell/dict-node/-/dict-node-5.0.1.tgz";
+        sha512 = "lax/jGz9h3Dv83v8LHa5G0bf6wm8YVRMzbjJPG/9rp7cAGPtdrga+XANFq+B7bY5+jiSA3zvj10LUFCFjnnCCg==";
       };
     };
     "@cspell/dict-npm-1.0.16" = {
@@ -3874,13 +3928,13 @@ let
         sha512 = "RwkuZGcYBxL3Yux3cSG/IOWGlQ1e9HLCpHeyMtTVGYKAIkFAVUnGrz20l16/Q7zUG7IEktBz5O42kAozrEnqMQ==";
       };
     };
-    "@cspell/dict-npm-5.0.15" = {
+    "@cspell/dict-npm-5.0.16" = {
       name = "_at_cspell_slash_dict-npm";
       packageName = "@cspell/dict-npm";
-      version = "5.0.15";
+      version = "5.0.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.0.15.tgz";
-        sha512 = "sX0X5YWNW54F4baW7b5JJB6705OCBIZtUqjOghlJNORS5No7QY1IX1zc5FxNNu4gsaCZITAmfMi4ityXEsEThA==";
+        url = "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.0.16.tgz";
+        sha512 = "ZWPnLAziEcSCvV0c8k9Qj88pfMu+wZwM5Qks87ShsfBgI8uLZ9tGHravA7gmjH1Gd7Bgxy2ulvXtSqIWPh1lew==";
       };
     };
     "@cspell/dict-php-1.0.25" = {
@@ -3892,13 +3946,13 @@ let
         sha512 = "RoBIP5MRdByyPaXcznZMfOY1JdCMYPPLua5E9gkq0TJO7bX5mC9hyAKfYBSWVQunZydd82HZixjb5MPkDFU1uw==";
       };
     };
-    "@cspell/dict-php-4.0.6" = {
+    "@cspell/dict-php-4.0.7" = {
       name = "_at_cspell_slash_dict-php";
       packageName = "@cspell/dict-php";
-      version = "4.0.6";
+      version = "4.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-4.0.6.tgz";
-        sha512 = "ySAXisf7twoVFZqBV2o/DKiCLIDTHNqfnj0EfH9OoOUR7HL3rb6zJkm0viLUFDO2G/8SyIi6YrN/6KX+Scjjjg==";
+        url = "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-4.0.7.tgz";
+        sha512 = "SUCOBfRDDFz1E2jnAZIIuy8BNbCc8i+VkiL9g4HH9tTN6Nlww5Uz2pMqYS6rZQkXuubqsbkbPlsRiuseEnTmYA==";
       };
     };
     "@cspell/dict-powershell-1.0.19" = {
@@ -3910,22 +3964,22 @@ let
         sha512 = "zF/raM/lkhXeHf4I43OtK0gP9rBeEJFArscTVwLWOCIvNk21MJcNoTYoaGw+c056+Q+hJL0psGLO7QN+mxYH1A==";
       };
     };
-    "@cspell/dict-powershell-5.0.3" = {
+    "@cspell/dict-powershell-5.0.4" = {
       name = "_at_cspell_slash_dict-powershell";
       packageName = "@cspell/dict-powershell";
-      version = "5.0.3";
+      version = "5.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-5.0.3.tgz";
-        sha512 = "lEdzrcyau6mgzu1ie98GjOEegwVHvoaWtzQnm1ie4DyZgMr+N6D0Iyj1lzvtmt0snvsDFa5F2bsYzf3IMKcpcA==";
+        url = "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-5.0.4.tgz";
+        sha512 = "eosDShapDgBWN9ULF7+sRNdUtzRnUdsfEdBSchDm8FZA4HOqxUSZy3b/cX/Rdw0Fnw0AKgk0kzgXw7tS6vwJMQ==";
       };
     };
-    "@cspell/dict-public-licenses-2.0.6" = {
+    "@cspell/dict-public-licenses-2.0.7" = {
       name = "_at_cspell_slash_dict-public-licenses";
       packageName = "@cspell/dict-public-licenses";
-      version = "2.0.6";
+      version = "2.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.6.tgz";
-        sha512 = "bHqpSpJvLCUcWxj1ov/Ki8WjmESpYwRpQlqfdchekOTc93Huhvjm/RXVN1R4fVf4Hspyem1QVkCGqAmjJMj6sw==";
+        url = "https://registry.npmjs.org/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.7.tgz";
+        sha512 = "KlBXuGcN3LE7tQi/GEqKiDewWGGuopiAD0zRK1QilOx5Co8XAvs044gk4MNIQftc8r0nHeUI+irJKLGcR36DIQ==";
       };
     };
     "@cspell/dict-python-1.0.38" = {
@@ -3982,13 +4036,13 @@ let
         sha512 = "lR4boDzs79YD6+30mmiSGAMMdwh7HTBAPUFSB0obR3Kidibfc3GZ+MHWZXay5dxZ4nBKM06vyjtanF9VJ8q1Iw==";
       };
     };
-    "@cspell/dict-rust-4.0.2" = {
+    "@cspell/dict-rust-4.0.3" = {
       name = "_at_cspell_slash_dict-rust";
       packageName = "@cspell/dict-rust";
-      version = "4.0.2";
+      version = "4.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-4.0.2.tgz";
-        sha512 = "RhziKDrklzOntxAbY3AvNR58wnFGIo3YS8+dNeLY36GFuWOvXDHFStYw5Pod4f/VXbO/+1tXtywCC4zWfB2p1w==";
+        url = "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-4.0.3.tgz";
+        sha512 = "8DFCzkFQ+2k3fDaezWc/D+0AyiBBiOGYfSDUfrTNU7wpvUvJ6cRcAUshMI/cn2QW/mmxTspRgVlXsE6GUMz00Q==";
       };
     };
     "@cspell/dict-scala-1.0.21" = {
@@ -4000,13 +4054,13 @@ let
         sha512 = "5V/R7PRbbminTpPS3ywgdAalI9BHzcEjEj9ug4kWYvBIGwSnS7T6QCFCiu+e9LvEGUqQC+NHgLY4zs1NaBj2vA==";
       };
     };
-    "@cspell/dict-scala-5.0.0" = {
+    "@cspell/dict-scala-5.0.2" = {
       name = "_at_cspell_slash_dict-scala";
       packageName = "@cspell/dict-scala";
-      version = "5.0.0";
+      version = "5.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-scala/-/dict-scala-5.0.0.tgz";
-        sha512 = "ph0twaRoV+ylui022clEO1dZ35QbeEQaKTaV2sPOsdwIokABPIiK09oWwGK9qg7jRGQwVaRPEq0Vp+IG1GpqSQ==";
+        url = "https://registry.npmjs.org/@cspell/dict-scala/-/dict-scala-5.0.2.tgz";
+        sha512 = "v97ClgidZt99JUm7OjhQugDHmhx4U8fcgunHvD/BsXWjXNj4cTr0m0YjofyZoL44WpICsNuFV9F/sv9OM5HUEw==";
       };
     };
     "@cspell/dict-software-terms-1.0.48" = {
@@ -4018,13 +4072,13 @@ let
         sha512 = "pfF3Ys2gRffu5ElqkH7FQMDMi/iZMyOzpGMb3FSH0PJ2AnRQ5rRNWght1h2L36YxvXl0mWVaFrrfwiOyRIc8ZQ==";
       };
     };
-    "@cspell/dict-software-terms-3.3.18" = {
+    "@cspell/dict-software-terms-3.4.1" = {
       name = "_at_cspell_slash_dict-software-terms";
       packageName = "@cspell/dict-software-terms";
-      version = "3.3.18";
+      version = "3.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.3.18.tgz";
-        sha512 = "LJZGGMGqS8KzgXJrSMs3T+6GoqHG9z8Bc+rqLzLzbtoR3FbsMasE9U8oP2PmS3q7jJLFjQkzmg508DrcuZuo2g==";
+        url = "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.4.1.tgz";
+        sha512 = "JgNHVdWEUhZKCYBiAjsLojkw8WhvsTXyk/IfFby0Lzbl+/AoJvL/XZqr0pvqfpBjbv7pwtnjahrbGxPRCOV+gA==";
       };
     };
     "@cspell/dict-sql-2.1.3" = {
@@ -4054,6 +4108,15 @@ let
         sha512 = "gxrCMUOndOk7xZFmXNtkCEeroZRnS2VbeaIPiymGRHj5H+qfTAzAKxtv7jJbVA3YYvEzWcVE2oKDP4wcbhIERw==";
       };
     };
+    "@cspell/dict-terraform-1.0.0" = {
+      name = "_at_cspell_slash_dict-terraform";
+      packageName = "@cspell/dict-terraform";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@cspell/dict-terraform/-/dict-terraform-1.0.0.tgz";
+        sha512 = "Ak+vy4HP/bOgzf06BAMC30+ZvL9mzv21xLM2XtfnBLTDJGdxlk/nK0U6QT8VfFLqJ0ZZSpyOxGsUebWDCTr/zQ==";
+      };
+    };
     "@cspell/dict-typescript-1.0.20" = {
       name = "_at_cspell_slash_dict-typescript";
       packageName = "@cspell/dict-typescript";
@@ -4063,13 +4126,13 @@ let
         sha512 = "yIuGeeZtQA2gqpGefGjZqBl8iGJpIYWz0QzDqsscNi2qfSnLsbjM0RkRbTehM8y9gGGe7xfgUP5adxceJa5Krg==";
       };
     };
-    "@cspell/dict-typescript-3.1.2" = {
+    "@cspell/dict-typescript-3.1.5" = {
       name = "_at_cspell_slash_dict-typescript";
       packageName = "@cspell/dict-typescript";
-      version = "3.1.2";
+      version = "3.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.1.2.tgz";
-        sha512 = "lcNOYWjLUvDZdLa0UMNd/LwfVdxhE9rKA+agZBGjL3lTA3uNvH7IUqSJM/IXhJoBpLLMVEOk8v1N9xi+vDuCdA==";
+        url = "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.1.5.tgz";
+        sha512 = "EkIwwNV/xqEoBPJml2S16RXj65h1kvly8dfDLgXerrKw6puybZdvAHerAph6/uPTYdtLcsPyJYkPt5ISOJYrtw==";
       };
     };
     "@cspell/dict-vue-3.0.0" = {
@@ -4081,22 +4144,22 @@ let
         sha512 = "niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A==";
       };
     };
-    "@cspell/dynamic-import-8.6.0" = {
+    "@cspell/dynamic-import-8.8.4" = {
       name = "_at_cspell_slash_dynamic-import";
       packageName = "@cspell/dynamic-import";
-      version = "8.6.0";
+      version = "8.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-8.6.0.tgz";
-        sha512 = "yDJZ/uXCpZcAkXwaWa0JcCZHZFxnF3qtiFiq2WG5cEw8tiJiNdawjSCd8/D35dT3QFNaInMP+H3sOf68dNueew==";
+        url = "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-8.8.4.tgz";
+        sha512 = "tseSxrybznkmsmPaAB4aoHB9wr8Q2fOMIy3dm+yQv+U1xj+JHTN9OnUvy9sKiq0p3DQGWm/VylgSgsYaXrEHKQ==";
       };
     };
-    "@cspell/strong-weak-map-8.6.0" = {
+    "@cspell/strong-weak-map-8.8.4" = {
       name = "_at_cspell_slash_strong-weak-map";
       packageName = "@cspell/strong-weak-map";
-      version = "8.6.0";
+      version = "8.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-8.6.0.tgz";
-        sha512 = "QenBOdIT1zRa0kF3Z1mwObcvmdhxn+rzQDdmkxwSyRB/9KsNnib6XXTUo8P+Z/ZKXOYbP9Wmf4FX+vKd3yVX0Q==";
+        url = "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-8.8.4.tgz";
+        sha512 = "gticEJGR6yyGeLjf+mJ0jZotWYRLVQ+J0v1VpsR1nKnXTRJY15BWXgEA/ifbU/+clpyCek79NiCIXCvmP1WT4A==";
       };
     };
     "@cspotcode/source-map-support-0.8.1" = {
@@ -4234,121 +4297,121 @@ let
         sha512 = "0dEVyRLM/lG4gp1R/Ik5bfPl/1wX00xFwd5KcNH602tzBa09oF7pbTKETEhR1GjZ75K6OJnYFu8II2dyMhONMw==";
       };
     };
-    "@electron-forge/core-7.3.0" = {
+    "@electron-forge/core-7.4.0" = {
       name = "_at_electron-forge_slash_core";
       packageName = "@electron-forge/core";
-      version = "7.3.0";
+      version = "7.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/core/-/core-7.3.0.tgz";
-        sha512 = "Z0wvs/YutUzo5xbCBjhoWSnlO1y5DbM4LMa5Di4Dxaf8v/xi7PQ/ncjAiOJKFYI8mG23Nn8Ae13weG0tiXISbA==";
+        url = "https://registry.npmjs.org/@electron-forge/core/-/core-7.4.0.tgz";
+        sha512 = "pYHKpB2CKeQgWsb+gox+FPkEvP+6Q2zGj2eZtgZRtKppoWIXrHIpOtcm6FllJ/gZ5u4AsQzVIYReAHGaBa0osw==";
       };
     };
-    "@electron-forge/core-utils-7.3.0" = {
+    "@electron-forge/core-utils-7.4.0" = {
       name = "_at_electron-forge_slash_core-utils";
       packageName = "@electron-forge/core-utils";
-      version = "7.3.0";
+      version = "7.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/core-utils/-/core-utils-7.3.0.tgz";
-        sha512 = "cKeWuC8zYcp2n9caRWvCQgwIFtDqaUlwQVeg2VBpgJTGYHNKEDQHadR2xtIXTcfNgPUbQEAXiaS2xuxuhPQLfw==";
+        url = "https://registry.npmjs.org/@electron-forge/core-utils/-/core-utils-7.4.0.tgz";
+        sha512 = "9RLG0F9SX466TpkaTcW+V15KmnGuTpmr7NKMRlngtHXmnkBUJz4Mxp1x33WZLgL90dJrxrRgHSfVBtA4lstDPw==";
       };
     };
-    "@electron-forge/maker-base-7.3.0" = {
+    "@electron-forge/maker-base-7.4.0" = {
       name = "_at_electron-forge_slash_maker-base";
       packageName = "@electron-forge/maker-base";
-      version = "7.3.0";
+      version = "7.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-7.3.0.tgz";
-        sha512 = "1o0YT1QBCf9oAfQNJmWQehn+DQp8mqaUbwaivNtIgTKRlzAVfD7UoAS7izuUqEW6M6NOvFXfCQjp7IgGckVVBg==";
+        url = "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-7.4.0.tgz";
+        sha512 = "LwWS4VPdwjISl1KpLhmM1Qr1M3sRTTQ/RsX+GlFd7cQ1W/FsgxMjaTG4Od1d+a5CGVTh3s6X2g99TSUfxjOveg==";
       };
     };
-    "@electron-forge/plugin-base-7.3.0" = {
+    "@electron-forge/plugin-base-7.4.0" = {
       name = "_at_electron-forge_slash_plugin-base";
       packageName = "@electron-forge/plugin-base";
-      version = "7.3.0";
+      version = "7.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-7.3.0.tgz";
-        sha512 = "cS0dqi9yTMgKzy1RhJ21YheRjWSbUh0bOKuByYAWevdqMZfqO2KyhXIsmH5QizL+bub8uWOUsknXVrOp73NLfw==";
+        url = "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-7.4.0.tgz";
+        sha512 = "LcTNtEc2YaWvhhqWVIfdJ+J0/krSgc2dqYAHhOH2aLUSm9End3dKO/PZ1Y6DPsiPiJKHnSLBJ/XBN/16NY4Sjw==";
       };
     };
-    "@electron-forge/publisher-base-7.3.0" = {
+    "@electron-forge/publisher-base-7.4.0" = {
       name = "_at_electron-forge_slash_publisher-base";
       packageName = "@electron-forge/publisher-base";
-      version = "7.3.0";
+      version = "7.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-7.3.0.tgz";
-        sha512 = "iO8QuM0zTLcEA0/7adEUOzMrhu/h6Qk9UiWNUllBctZXZ+FO0CbAY7eGzOgjOKqH5akbEKHwCSRnjrFt91QpQg==";
+        url = "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-7.4.0.tgz";
+        sha512 = "PiJk4RfaC55SnVnteLW2ZIQNM9DpGOi6YoUn5t8i9UcVp2rFIdya7bJY/b9u1hwubm4d5+TdypMVEuJjM44CJQ==";
       };
     };
-    "@electron-forge/shared-types-7.3.0" = {
+    "@electron-forge/shared-types-7.4.0" = {
       name = "_at_electron-forge_slash_shared-types";
       packageName = "@electron-forge/shared-types";
-      version = "7.3.0";
+      version = "7.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-7.3.0.tgz";
-        sha512 = "+YGOTGUGVrcaRm9zO3xsWSj2GS9iVY6E1WTG0vD2OxZtdEGcdy3hZryV72f5gH+qeZZvujYSR2s7VvZjhFEHaQ==";
+        url = "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-7.4.0.tgz";
+        sha512 = "5Ehy6enUjBaU08odf9u9TOhmOVXlqobzMvKUixtkdAWgV1XZAUJmn+p21xhj0IkO92MQiXMGv66w9pDNjRT8uQ==";
       };
     };
-    "@electron-forge/template-base-7.3.0" = {
+    "@electron-forge/template-base-7.4.0" = {
       name = "_at_electron-forge_slash_template-base";
       packageName = "@electron-forge/template-base";
-      version = "7.3.0";
+      version = "7.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/template-base/-/template-base-7.3.0.tgz";
-        sha512 = "Lf0fupMzuO9XuBOaWoQ5QljjQ89B7TYU40+eEUvxnIMNAfnU3n+cfhC4xGLldmh+LYRuotB1jJitX79BwRqzIA==";
+        url = "https://registry.npmjs.org/@electron-forge/template-base/-/template-base-7.4.0.tgz";
+        sha512 = "3YWdRSGzQfQPQkQxStn2wkJ/SuNGGKo9slwFJGvqMV+Pbx3/M/hYi9sMXOuaqVZgeaBp8Ap27yFPxaIIOC3vcA==";
       };
     };
-    "@electron-forge/template-vite-7.3.0" = {
+    "@electron-forge/template-vite-7.4.0" = {
       name = "_at_electron-forge_slash_template-vite";
       packageName = "@electron-forge/template-vite";
-      version = "7.3.0";
+      version = "7.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/template-vite/-/template-vite-7.3.0.tgz";
-        sha512 = "4vdOLmd0/rThA9lO/Tf16oCoDBPWGLRZZF+XM+ECPDfaL0CbFNoEa/NLrr6T/2D6IlV5+GnmVjz29LlVOFUB7w==";
+        url = "https://registry.npmjs.org/@electron-forge/template-vite/-/template-vite-7.4.0.tgz";
+        sha512 = "YPVyCGiBKmZPCxK/Bd2louV3PBcxI2nT2+tRKP+mlEHOWrxbZIfmZSR2lIAFvK/ALKlwUKROdmlwyi7ZcdT7JQ==";
       };
     };
-    "@electron-forge/template-vite-typescript-7.3.0" = {
+    "@electron-forge/template-vite-typescript-7.4.0" = {
       name = "_at_electron-forge_slash_template-vite-typescript";
       packageName = "@electron-forge/template-vite-typescript";
-      version = "7.3.0";
+      version = "7.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/template-vite-typescript/-/template-vite-typescript-7.3.0.tgz";
-        sha512 = "4gVlJihXLM+r6GBOCeO6mSv5vZImew9Vp/xFfxMrf3nDThMCnA6HYLIGA361ZTbn4z3ARquXPo6Vsm7/s4ykbw==";
+        url = "https://registry.npmjs.org/@electron-forge/template-vite-typescript/-/template-vite-typescript-7.4.0.tgz";
+        sha512 = "wdByG807VWcUd81E6572b/G/Ki8gb+GrCIWxO7Cl3qBa+yNaU1sHhBwB1RyTbQy1r8ubSBtsWrRD1J/yzHKWoQ==";
       };
     };
-    "@electron-forge/template-webpack-7.3.0" = {
+    "@electron-forge/template-webpack-7.4.0" = {
       name = "_at_electron-forge_slash_template-webpack";
       packageName = "@electron-forge/template-webpack";
-      version = "7.3.0";
+      version = "7.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-7.3.0.tgz";
-        sha512 = "5Cv0g+AHdEI2R4hPI38PzWTnqUwqpM36jpQgkXV1RnL3V9FvNuza/w9RLMj5bhGzB0j5M4bVbcnglMX0pDvVBQ==";
+        url = "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-7.4.0.tgz";
+        sha512 = "W558AEGwQrwEtKIbIJPPs0LIsaC/1Vncj5NgqKehEMJjBb0KQq4hwBu/6dauQrfun4jRCOp7LV+OVrf5XPJ7QA==";
       };
     };
-    "@electron-forge/template-webpack-typescript-7.3.0" = {
+    "@electron-forge/template-webpack-typescript-7.4.0" = {
       name = "_at_electron-forge_slash_template-webpack-typescript";
       packageName = "@electron-forge/template-webpack-typescript";
-      version = "7.3.0";
+      version = "7.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/template-webpack-typescript/-/template-webpack-typescript-7.3.0.tgz";
-        sha512 = "eiBhsY/LUaV1vIy/PZqnmkxWyjEyN/PsXyq79lr1nuOKrqkVgZUe/IdvtNxr8wvPoKSScORNLHjiD/C2Jp74HA==";
+        url = "https://registry.npmjs.org/@electron-forge/template-webpack-typescript/-/template-webpack-typescript-7.4.0.tgz";
+        sha512 = "O5gwjNSGFNRdJWyiCtevcOBDPAMhgOPvLORh9qR1GcjyTutWwHWmZzycqH+MmkhpQPgrAYDEeipXcOQhSbzNZA==";
       };
     };
-    "@electron-forge/tracer-7.3.0" = {
+    "@electron-forge/tracer-7.4.0" = {
       name = "_at_electron-forge_slash_tracer";
       packageName = "@electron-forge/tracer";
-      version = "7.3.0";
+      version = "7.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/tracer/-/tracer-7.3.0.tgz";
-        sha512 = "FS7ABTm52BMP2BlR/pDmUIKtH9NI1i+BBJuKke58KguToBRuvAX1cLt0Hhkq4HlqYR9fNjRoCo1vrK4OBb0Bew==";
+        url = "https://registry.npmjs.org/@electron-forge/tracer/-/tracer-7.4.0.tgz";
+        sha512 = "F4jbnDn4yIZjmky1FZ6rgBKTM05AZQQfHkyJW2hdS4pDKJjdKAqWytoZKDi1/S6Cr6tN+DD0TFGD3V0i6HPHYQ==";
       };
     };
-    "@electron/asar-3.2.9" = {
+    "@electron/asar-3.2.10" = {
       name = "_at_electron_slash_asar";
       packageName = "@electron/asar";
-      version = "3.2.9";
+      version = "3.2.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron/asar/-/asar-3.2.9.tgz";
-        sha512 = "Vu2P3X2gcZ3MY9W7yH72X9+AMXwUQZEJBrsPIbX0JsdllLtoh62/Q8Wg370/DawIEVKOyfD6KtTLo645ezqxUA==";
+        url = "https://registry.npmjs.org/@electron/asar/-/asar-3.2.10.tgz";
+        sha512 = "mvBSwIBUeiRscrCeJE1LwctAriBj65eUDm0Pc11iE5gRwzkmsdbS7FnZ1XUWjpSeQWL1L5g12Fc/SchPM9DUOw==";
       };
     };
     "@electron/get-3.0.0" = {
@@ -4360,31 +4423,31 @@ let
         sha512 = "hLv4BYFiyrNRI+U0Mm2X7RxCCdJLkDUn8GCEp9QJzbLpZRko+UaLlCjOMkj6TEtirNLPyBA7y1SeGfnpOB21aQ==";
       };
     };
-    "@electron/notarize-2.3.0" = {
+    "@electron/notarize-2.3.2" = {
       name = "_at_electron_slash_notarize";
       packageName = "@electron/notarize";
-      version = "2.3.0";
+      version = "2.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron/notarize/-/notarize-2.3.0.tgz";
-        sha512 = "EiTBU0BwE7HZZjAG1fFWQaiQpCuPrVGn7jPss1kUjD6eTTdXXd29RiZqEqkgN7xqt/Pgn4g3I7Saqovanrfj3w==";
+        url = "https://registry.npmjs.org/@electron/notarize/-/notarize-2.3.2.tgz";
+        sha512 = "zfayxCe19euNwRycCty1C7lF7snk9YwfRpB5M8GLr1a4ICH63znxaPNAubrMvj0yDvVozqfgsdYpXVUnpWBDpg==";
       };
     };
-    "@electron/osx-sign-1.0.5" = {
+    "@electron/osx-sign-1.3.0" = {
       name = "_at_electron_slash_osx-sign";
       packageName = "@electron/osx-sign";
-      version = "1.0.5";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.0.5.tgz";
-        sha512 = "k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==";
+        url = "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.3.0.tgz";
+        sha512 = "TEXhxlYSDRr9JWK5nWdOv5MtuUdaZ412uxIIEQ0hLt80o0HYWtQJBlW5QmrQDMtebzATaOjKG9UfCzLyA90zWQ==";
       };
     };
-    "@electron/packager-18.1.3" = {
+    "@electron/packager-18.3.2" = {
       name = "_at_electron_slash_packager";
       packageName = "@electron/packager";
-      version = "18.1.3";
+      version = "18.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron/packager/-/packager-18.1.3.tgz";
-        sha512 = "21T5MxUf7DwV07IIes3jO/571mXCjOGVPdmYJFPCVDTimFiHQSW0Oy+OIGQaKBiNIXfnP29KylsCQbmds6O6Iw==";
+        url = "https://registry.npmjs.org/@electron/packager/-/packager-18.3.2.tgz";
+        sha512 = "orjylavppgIh24qkNpWm2B/LQUpCS/YLOoKoU+eMK/hJgIhShLDsusPIQzgUGVwNCichu8/zPAGfdQZXHG0gtw==";
       };
     };
     "@electron/rebuild-3.6.0" = {
@@ -4432,6 +4495,15 @@ let
         sha512 = "s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==";
       };
     };
+    "@emmetio/css-parser-0.4.0" = {
+      name = "_at_emmetio_slash_css-parser";
+      packageName = "@emmetio/css-parser";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@emmetio/css-parser/-/css-parser-0.4.0.tgz";
+        sha512 = "z7wkxRSZgrQHXVzObGkXG+Vmj3uRlpM11oCZ9pbaz0nFejvCDmAiNDpY75+wgXOcffKpj4rzGtwGaZxfJKsJxw==";
+      };
+    };
     "@emmetio/extract-abbreviation-0.1.6" = {
       name = "_at_emmetio_slash_extract-abbreviation";
       packageName = "@emmetio/extract-abbreviation";
@@ -4441,6 +4513,15 @@ let
         sha512 = "Ce3xE2JvTSEbASFbRbA1gAIcMcZWdS2yUYRaQbeM0nbOzaZrUYfa3ePtcriYRZOZmr+CkKA+zbjhvTpIOAYVcw==";
       };
     };
+    "@emmetio/html-matcher-1.3.0" = {
+      name = "_at_emmetio_slash_html-matcher";
+      packageName = "@emmetio/html-matcher";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@emmetio/html-matcher/-/html-matcher-1.3.0.tgz";
+        sha512 = "NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==";
+      };
+    };
     "@emmetio/scanner-1.0.4" = {
       name = "_at_emmetio_slash_scanner";
       packageName = "@emmetio/scanner";
@@ -4450,6 +4531,24 @@ let
         sha512 = "IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==";
       };
     };
+    "@emmetio/stream-reader-2.2.0" = {
+      name = "_at_emmetio_slash_stream-reader";
+      packageName = "@emmetio/stream-reader";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@emmetio/stream-reader/-/stream-reader-2.2.0.tgz";
+        sha512 = "fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==";
+      };
+    };
+    "@emmetio/stream-reader-utils-0.1.0" = {
+      name = "_at_emmetio_slash_stream-reader-utils";
+      packageName = "@emmetio/stream-reader-utils";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@emmetio/stream-reader-utils/-/stream-reader-utils-0.1.0.tgz";
+        sha512 = "ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==";
+      };
+    };
     "@esbuild-plugins/node-globals-polyfill-0.2.3" = {
       name = "_at_esbuild-plugins_slash_node-globals-polyfill";
       packageName = "@esbuild-plugins/node-globals-polyfill";
@@ -4486,6 +4585,15 @@ let
         sha512 = "fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==";
       };
     };
+    "@esbuild/android-arm-0.19.8" = {
+      name = "_at_esbuild_slash_android-arm";
+      packageName = "@esbuild/android-arm";
+      version = "0.19.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.8.tgz";
+        sha512 = "31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA==";
+      };
+    };
     "@esbuild/android-arm64-0.17.19" = {
       name = "_at_esbuild_slash_android-arm64";
       packageName = "@esbuild/android-arm64";
@@ -4504,6 +4612,15 @@ let
         sha512 = "Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==";
       };
     };
+    "@esbuild/android-arm64-0.19.8" = {
+      name = "_at_esbuild_slash_android-arm64";
+      packageName = "@esbuild/android-arm64";
+      version = "0.19.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.8.tgz";
+        sha512 = "B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==";
+      };
+    };
     "@esbuild/android-x64-0.17.19" = {
       name = "_at_esbuild_slash_android-x64";
       packageName = "@esbuild/android-x64";
@@ -4522,6 +4639,15 @@ let
         sha512 = "8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==";
       };
     };
+    "@esbuild/android-x64-0.19.8" = {
+      name = "_at_esbuild_slash_android-x64";
+      packageName = "@esbuild/android-x64";
+      version = "0.19.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.8.tgz";
+        sha512 = "rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==";
+      };
+    };
     "@esbuild/darwin-arm64-0.17.19" = {
       name = "_at_esbuild_slash_darwin-arm64";
       packageName = "@esbuild/darwin-arm64";
@@ -4540,6 +4666,15 @@ let
         sha512 = "bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==";
       };
     };
+    "@esbuild/darwin-arm64-0.19.8" = {
+      name = "_at_esbuild_slash_darwin-arm64";
+      packageName = "@esbuild/darwin-arm64";
+      version = "0.19.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.8.tgz";
+        sha512 = "RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==";
+      };
+    };
     "@esbuild/darwin-x64-0.17.19" = {
       name = "_at_esbuild_slash_darwin-x64";
       packageName = "@esbuild/darwin-x64";
@@ -4558,6 +4693,15 @@ let
         sha512 = "pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==";
       };
     };
+    "@esbuild/darwin-x64-0.19.8" = {
+      name = "_at_esbuild_slash_darwin-x64";
+      packageName = "@esbuild/darwin-x64";
+      version = "0.19.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.8.tgz";
+        sha512 = "3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q==";
+      };
+    };
     "@esbuild/freebsd-arm64-0.17.19" = {
       name = "_at_esbuild_slash_freebsd-arm64";
       packageName = "@esbuild/freebsd-arm64";
@@ -4576,6 +4720,15 @@ let
         sha512 = "yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==";
       };
     };
+    "@esbuild/freebsd-arm64-0.19.8" = {
+      name = "_at_esbuild_slash_freebsd-arm64";
+      packageName = "@esbuild/freebsd-arm64";
+      version = "0.19.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.8.tgz";
+        sha512 = "WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw==";
+      };
+    };
     "@esbuild/freebsd-x64-0.17.19" = {
       name = "_at_esbuild_slash_freebsd-x64";
       packageName = "@esbuild/freebsd-x64";
@@ -4594,6 +4747,15 @@ let
         sha512 = "tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==";
       };
     };
+    "@esbuild/freebsd-x64-0.19.8" = {
+      name = "_at_esbuild_slash_freebsd-x64";
+      packageName = "@esbuild/freebsd-x64";
+      version = "0.19.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.8.tgz";
+        sha512 = "ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg==";
+      };
+    };
     "@esbuild/linux-arm-0.17.19" = {
       name = "_at_esbuild_slash_linux-arm";
       packageName = "@esbuild/linux-arm";
@@ -4612,6 +4774,15 @@ let
         sha512 = "/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==";
       };
     };
+    "@esbuild/linux-arm-0.19.8" = {
+      name = "_at_esbuild_slash_linux-arm";
+      packageName = "@esbuild/linux-arm";
+      version = "0.19.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.8.tgz";
+        sha512 = "H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ==";
+      };
+    };
     "@esbuild/linux-arm64-0.17.19" = {
       name = "_at_esbuild_slash_linux-arm64";
       packageName = "@esbuild/linux-arm64";
@@ -4630,6 +4801,15 @@ let
         sha512 = "2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==";
       };
     };
+    "@esbuild/linux-arm64-0.19.8" = {
+      name = "_at_esbuild_slash_linux-arm64";
+      packageName = "@esbuild/linux-arm64";
+      version = "0.19.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.8.tgz";
+        sha512 = "z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==";
+      };
+    };
     "@esbuild/linux-ia32-0.17.19" = {
       name = "_at_esbuild_slash_linux-ia32";
       packageName = "@esbuild/linux-ia32";
@@ -4648,6 +4828,15 @@ let
         sha512 = "P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==";
       };
     };
+    "@esbuild/linux-ia32-0.19.8" = {
+      name = "_at_esbuild_slash_linux-ia32";
+      packageName = "@esbuild/linux-ia32";
+      version = "0.19.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.8.tgz";
+        sha512 = "1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ==";
+      };
+    };
     "@esbuild/linux-loong64-0.17.19" = {
       name = "_at_esbuild_slash_linux-loong64";
       packageName = "@esbuild/linux-loong64";
@@ -4666,6 +4855,15 @@ let
         sha512 = "nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==";
       };
     };
+    "@esbuild/linux-loong64-0.19.8" = {
+      name = "_at_esbuild_slash_linux-loong64";
+      packageName = "@esbuild/linux-loong64";
+      version = "0.19.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.8.tgz";
+        sha512 = "fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ==";
+      };
+    };
     "@esbuild/linux-mips64el-0.17.19" = {
       name = "_at_esbuild_slash_linux-mips64el";
       packageName = "@esbuild/linux-mips64el";
@@ -4684,6 +4882,15 @@ let
         sha512 = "d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==";
       };
     };
+    "@esbuild/linux-mips64el-0.19.8" = {
+      name = "_at_esbuild_slash_linux-mips64el";
+      packageName = "@esbuild/linux-mips64el";
+      version = "0.19.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.8.tgz";
+        sha512 = "Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q==";
+      };
+    };
     "@esbuild/linux-ppc64-0.17.19" = {
       name = "_at_esbuild_slash_linux-ppc64";
       packageName = "@esbuild/linux-ppc64";
@@ -4702,6 +4909,15 @@ let
         sha512 = "WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==";
       };
     };
+    "@esbuild/linux-ppc64-0.19.8" = {
+      name = "_at_esbuild_slash_linux-ppc64";
+      packageName = "@esbuild/linux-ppc64";
+      version = "0.19.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.8.tgz";
+        sha512 = "ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg==";
+      };
+    };
     "@esbuild/linux-riscv64-0.17.19" = {
       name = "_at_esbuild_slash_linux-riscv64";
       packageName = "@esbuild/linux-riscv64";
@@ -4720,6 +4936,15 @@ let
         sha512 = "WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==";
       };
     };
+    "@esbuild/linux-riscv64-0.19.8" = {
+      name = "_at_esbuild_slash_linux-riscv64";
+      packageName = "@esbuild/linux-riscv64";
+      version = "0.19.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.8.tgz";
+        sha512 = "T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg==";
+      };
+    };
     "@esbuild/linux-s390x-0.17.19" = {
       name = "_at_esbuild_slash_linux-s390x";
       packageName = "@esbuild/linux-s390x";
@@ -4738,6 +4963,15 @@ let
         sha512 = "+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==";
       };
     };
+    "@esbuild/linux-s390x-0.19.8" = {
+      name = "_at_esbuild_slash_linux-s390x";
+      packageName = "@esbuild/linux-s390x";
+      version = "0.19.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.8.tgz";
+        sha512 = "NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg==";
+      };
+    };
     "@esbuild/linux-x64-0.17.19" = {
       name = "_at_esbuild_slash_linux-x64";
       packageName = "@esbuild/linux-x64";
@@ -4756,6 +4990,15 @@ let
         sha512 = "UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==";
       };
     };
+    "@esbuild/linux-x64-0.19.8" = {
+      name = "_at_esbuild_slash_linux-x64";
+      packageName = "@esbuild/linux-x64";
+      version = "0.19.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.8.tgz";
+        sha512 = "lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==";
+      };
+    };
     "@esbuild/netbsd-x64-0.17.19" = {
       name = "_at_esbuild_slash_netbsd-x64";
       packageName = "@esbuild/netbsd-x64";
@@ -4774,6 +5017,15 @@ let
         sha512 = "iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==";
       };
     };
+    "@esbuild/netbsd-x64-0.19.8" = {
+      name = "_at_esbuild_slash_netbsd-x64";
+      packageName = "@esbuild/netbsd-x64";
+      version = "0.19.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.8.tgz";
+        sha512 = "hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw==";
+      };
+    };
     "@esbuild/openbsd-x64-0.17.19" = {
       name = "_at_esbuild_slash_openbsd-x64";
       packageName = "@esbuild/openbsd-x64";
@@ -4792,6 +5044,15 @@ let
         sha512 = "e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==";
       };
     };
+    "@esbuild/openbsd-x64-0.19.8" = {
+      name = "_at_esbuild_slash_openbsd-x64";
+      packageName = "@esbuild/openbsd-x64";
+      version = "0.19.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.8.tgz";
+        sha512 = "/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ==";
+      };
+    };
     "@esbuild/sunos-x64-0.17.19" = {
       name = "_at_esbuild_slash_sunos-x64";
       packageName = "@esbuild/sunos-x64";
@@ -4810,6 +5071,15 @@ let
         sha512 = "kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==";
       };
     };
+    "@esbuild/sunos-x64-0.19.8" = {
+      name = "_at_esbuild_slash_sunos-x64";
+      packageName = "@esbuild/sunos-x64";
+      version = "0.19.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.8.tgz";
+        sha512 = "9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w==";
+      };
+    };
     "@esbuild/win32-arm64-0.17.19" = {
       name = "_at_esbuild_slash_win32-arm64";
       packageName = "@esbuild/win32-arm64";
@@ -4828,6 +5098,15 @@ let
         sha512 = "ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==";
       };
     };
+    "@esbuild/win32-arm64-0.19.8" = {
+      name = "_at_esbuild_slash_win32-arm64";
+      packageName = "@esbuild/win32-arm64";
+      version = "0.19.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.8.tgz";
+        sha512 = "rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg==";
+      };
+    };
     "@esbuild/win32-ia32-0.17.19" = {
       name = "_at_esbuild_slash_win32-ia32";
       packageName = "@esbuild/win32-ia32";
@@ -4846,6 +5125,15 @@ let
         sha512 = "Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==";
       };
     };
+    "@esbuild/win32-ia32-0.19.8" = {
+      name = "_at_esbuild_slash_win32-ia32";
+      packageName = "@esbuild/win32-ia32";
+      version = "0.19.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.8.tgz";
+        sha512 = "AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw==";
+      };
+    };
     "@esbuild/win32-x64-0.17.19" = {
       name = "_at_esbuild_slash_win32-x64";
       packageName = "@esbuild/win32-x64";
@@ -4864,6 +5152,15 @@ let
         sha512 = "kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==";
       };
     };
+    "@esbuild/win32-x64-0.19.8" = {
+      name = "_at_esbuild_slash_win32-x64";
+      packageName = "@esbuild/win32-x64";
+      version = "0.19.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.8.tgz";
+        sha512 = "bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA==";
+      };
+    };
     "@eslint-community/eslint-utils-4.4.0" = {
       name = "_at_eslint-community_slash_eslint-utils";
       packageName = "@eslint-community/eslint-utils";
@@ -4873,13 +5170,22 @@ let
         sha512 = "1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==";
       };
     };
-    "@eslint-community/regexpp-4.10.0" = {
+    "@eslint-community/regexpp-4.10.1" = {
       name = "_at_eslint-community_slash_regexpp";
       packageName = "@eslint-community/regexpp";
-      version = "4.10.0";
+      version = "4.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.1.tgz";
+        sha512 = "Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==";
+      };
+    };
+    "@eslint/config-array-0.15.1" = {
+      name = "_at_eslint_slash_config-array";
+      packageName = "@eslint/config-array";
+      version = "0.15.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz";
-        sha512 = "Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==";
+        url = "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.15.1.tgz";
+        sha512 = "K4gzNq+yymn/EVsXYmf+SBcBro8MTf+aXJZUphM96CdzUEr+ClGDvAbpmaEK+cGVigVXIgs9gNmvHAlrzzY5JQ==";
       };
     };
     "@eslint/eslintrc-0.4.3" = {
@@ -4900,6 +5206,15 @@ let
         sha512 = "269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==";
       };
     };
+    "@eslint/eslintrc-3.1.0" = {
+      name = "_at_eslint_slash_eslintrc";
+      packageName = "@eslint/eslintrc";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz";
+        sha512 = "4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==";
+      };
+    };
     "@eslint/js-8.44.0" = {
       name = "_at_eslint_slash_js";
       packageName = "@eslint/js";
@@ -4918,6 +5233,24 @@ let
         sha512 = "Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==";
       };
     };
+    "@eslint/js-9.4.0" = {
+      name = "_at_eslint_slash_js";
+      packageName = "@eslint/js";
+      version = "9.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@eslint/js/-/js-9.4.0.tgz";
+        sha512 = "fdI7VJjP3Rvc70lC4xkFXHB0fiPeojiL1PxVG6t1ZvXQrarj893PweuBTujxDUFk0Fxj4R7PIIAZ/aiiyZPZcg==";
+      };
+    };
+    "@eslint/object-schema-2.1.3" = {
+      name = "_at_eslint_slash_object-schema";
+      packageName = "@eslint/object-schema";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.3.tgz";
+        sha512 = "HAbhAYKfsAC2EkTqve00ibWIZlaU74Z1EHwAjYr4PXF0YU2VEA1zSIKSSpKszRLRWwHzzRZXvK632u+uXzvsvw==";
+      };
+    };
     "@ethereumjs/rlp-4.0.1" = {
       name = "_at_ethereumjs_slash_rlp";
       packageName = "@ethereumjs/rlp";
@@ -5098,40 +5431,40 @@ let
         sha512 = "2A6/8uZADSKAtzyR6YqhCBUFxb5DFmjxmFn0EHMqnPnsh13ZSiKEjrZPrRkM6Li2EHLYqHK2rmweJ7O/7q9pPQ==";
       };
     };
-    "@expo/devcert-1.1.0" = {
+    "@expo/devcert-1.1.2" = {
       name = "_at_expo_slash_devcert";
       packageName = "@expo/devcert";
-      version = "1.1.0";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/devcert/-/devcert-1.1.0.tgz";
-        sha512 = "ghUVhNJQOCTdQckSGTHctNp/0jzvVoMMkVh+6SHn+TZj8sU15U/npXIDt8NtQp0HedlPaCgkVdMu8Sacne0aEA==";
+        url = "https://registry.npmjs.org/@expo/devcert/-/devcert-1.1.2.tgz";
+        sha512 = "FyWghLu7rUaZEZSTLt/XNRukm0c9GFfwP0iFaswoDWpV6alvVg+zRAfCLdIVQEz1SVcQ3zo1hMZFDrnKGvkCuQ==";
       };
     };
-    "@expo/eas-build-job-1.0.83" = {
+    "@expo/eas-build-job-1.0.114" = {
       name = "_at_expo_slash_eas-build-job";
       packageName = "@expo/eas-build-job";
-      version = "1.0.83";
+      version = "1.0.114";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/eas-build-job/-/eas-build-job-1.0.83.tgz";
-        sha512 = "JELlXmCzYdOXprcVhY7PsSdLRnfEZixcsSP+FPytUEdyhPhERCvZI4pI2TKTcopFG0WAdGphvwZPvg8S0h6A4Q==";
+        url = "https://registry.npmjs.org/@expo/eas-build-job/-/eas-build-job-1.0.114.tgz";
+        sha512 = "71zFqQmHVUGfSWcd3NZ+y1LEWLUJ+qNN2ZMwRzfOty75CFFwKJ2gPUm5b19Q3SlEmUUwI67RO/D/B2M7OlDjHw==";
       };
     };
-    "@expo/eas-json-7.5.0" = {
+    "@expo/eas-json-9.0.8" = {
       name = "_at_expo_slash_eas-json";
       packageName = "@expo/eas-json";
-      version = "7.5.0";
+      version = "9.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/eas-json/-/eas-json-7.5.0.tgz";
-        sha512 = "t/uMC8WyzY37iJxah46+Fay8Gfi+SPseK4KP/CCUQFVlX6Ez2bIxpSvGrlGBwzkL5vVi8Deo6G9/2FzSwDbJhA==";
+        url = "https://registry.npmjs.org/@expo/eas-json/-/eas-json-9.0.8.tgz";
+        sha512 = "BI1dpjPy5ayhMzvvuqKgYMU5i0BGIcqmQCjWcyD4+xZpeU1mKEaSxMM1jbgn5ODOodZEgr4WlQKzDcFDSvr12A==";
       };
     };
-    "@expo/fingerprint-0.6.0" = {
+    "@expo/fingerprint-0.6.1" = {
       name = "_at_expo_slash_fingerprint";
       packageName = "@expo/fingerprint";
-      version = "0.6.0";
+      version = "0.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.6.0.tgz";
-        sha512 = "KfpoVRTMwMNJ/Cf5o+Ou8M/Y0EGSTqK+rbi70M2Y0K2qgWNfMJ1gm6sYO9uc8lcTr7YSYM1Rme3dk7QXhpScNA==";
+        url = "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.6.1.tgz";
+        sha512 = "ggLn6unI6qowlA1FihdQwPpLn16VJulYkvYAEL50gaqVahfNEglRQMSH2giZzjD0d6xq2/EQuUdFyHaJfyJwOQ==";
       };
     };
     "@expo/image-utils-0.3.21" = {
@@ -5161,13 +5494,13 @@ let
         sha512 = "nhUVvW0TrRE4jtWzHQl8TR4ox7kcmrc2I0itaeJGjxF5A54uk7avgA0wRt7jP1rdvqQo1Ke1lXyLYREdhN9tPw==";
       };
     };
-    "@expo/image-utils-0.4.1" = {
+    "@expo/image-utils-0.4.2" = {
       name = "_at_expo_slash_image-utils";
       packageName = "@expo/image-utils";
-      version = "0.4.1";
+      version = "0.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.4.1.tgz";
-        sha512 = "EZb+VHSmw+a5s2hS9qksTcWylY0FDaIAVufcxoaRS9tHIXLjW5zcKW7Rhj9dSEbZbRVy9yXXdHKa3GQdUQIOFw==";
+        url = "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.4.2.tgz";
+        sha512 = "CxP+1QXgRXsNnmv2FAUA2RWwK6kNBFg4QEmVXn2K9iLoEAI+i+1IQXcUgc+J7nTJl9pO7FIu2gIiEYGYffjLWQ==";
       };
     };
     "@expo/json-file-8.2.36" = {
@@ -5188,13 +5521,13 @@ let
         sha512 = "YaH6rVg11JoTS2P6LsW7ybS2CULjf40AbnAHw2F1eDPuheprNjARZMnyHFPkKv7GuxCy+B9GPcbOKgc4cgA80Q==";
       };
     };
-    "@expo/json-file-8.3.0" = {
+    "@expo/json-file-8.3.3" = {
       name = "_at_expo_slash_json-file";
       packageName = "@expo/json-file";
-      version = "8.3.0";
+      version = "8.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.0.tgz";
-        sha512 = "yROUeXJXR5goagB8c3muFLCzLmdGOvoPpR5yDNaXrnTp4euNykr9yW0wWhJx4YVRTNOPtGBnEbbJBW+a9q+S6g==";
+        url = "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.3.tgz";
+        sha512 = "eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==";
       };
     };
     "@expo/logger-1.0.57" = {
@@ -5296,13 +5629,13 @@ let
         sha512 = "UXQ4LXCfTZ580LDHGJ5q62jSTwJFFJ1GqBu8duQMThiHKWbMJ+gajJh6rsB6EJ3aLUr9wcauxneL5LVRFxwBEA==";
       };
     };
-    "@expo/plist-0.1.0" = {
+    "@expo/plist-0.1.3" = {
       name = "_at_expo_slash_plist";
       packageName = "@expo/plist";
-      version = "0.1.0";
+      version = "0.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/plist/-/plist-0.1.0.tgz";
-        sha512 = "xWD+8vIFif0wKyuqe3fmnmnSouXYucciZXFzS0ZD5OV9eSAS1RGQI5FaGGJ6zxJ4mpdy/4QzbLdBjnYE5vxA0g==";
+        url = "https://registry.npmjs.org/@expo/plist/-/plist-0.1.3.tgz";
+        sha512 = "GW/7hVlAylYg1tUrEASclw1MMk9FP4ZwyFAY/SUTJIhPDQHtfOlXREyWV3hhrHdX/K+pS73GNgdfT6E/e+kBbg==";
       };
     };
     "@expo/plugin-help-5.1.23" = {
@@ -5413,13 +5746,13 @@ let
         sha512 = "QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==";
       };
     };
-    "@expo/steps-1.0.85" = {
+    "@expo/steps-1.0.114" = {
       name = "_at_expo_slash_steps";
       packageName = "@expo/steps";
-      version = "1.0.85";
+      version = "1.0.114";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/steps/-/steps-1.0.85.tgz";
-        sha512 = "l0W2YfC8uNUICfkFrnsLdhAwQhnkSlj2JB5OpYoHTI1vI6D3hrVkXlDgz+DDruI7ZoYyJkiBVU3opQ5uIZDjhg==";
+        url = "https://registry.npmjs.org/@expo/steps/-/steps-1.0.114.tgz";
+        sha512 = "TbSCv2cXQQKRXPjZ5BQwo5H4gNNXF05+oWQBaR0k98A4MFXfiaoyAPK/7No2xNj7xBC3rXU+dKzTjMMnTlyt/w==";
       };
     };
     "@expo/timeago.js-1.0.0" = {
@@ -5503,31 +5836,31 @@ let
         sha512 = "k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==";
       };
     };
-    "@gitbeaker/core-40.0.1" = {
+    "@gitbeaker/core-40.0.3" = {
       name = "_at_gitbeaker_slash_core";
       packageName = "@gitbeaker/core";
-      version = "40.0.1";
+      version = "40.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@gitbeaker/core/-/core-40.0.1.tgz";
-        sha512 = "Zh2eVUgy2kYVnp7Db4gWoFqFbjgsnm2FvBEERbH3UM3cOA/iMqM+tw/of+Qk4yO+gv6tGZ9f4nF7+vK0tQFmDA==";
+        url = "https://registry.npmjs.org/@gitbeaker/core/-/core-40.0.3.tgz";
+        sha512 = "MzeY4oCtoa9zmPIkQIdC2KU8cGmHIXwnAi0L6jjjouqjy6kcA4BydZf8W5Xsj27Rw5iiyhfj8YC1/O3CgrzvCQ==";
       };
     };
-    "@gitbeaker/requester-utils-40.0.1" = {
+    "@gitbeaker/requester-utils-40.0.3" = {
       name = "_at_gitbeaker_slash_requester-utils";
       packageName = "@gitbeaker/requester-utils";
-      version = "40.0.1";
+      version = "40.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@gitbeaker/requester-utils/-/requester-utils-40.0.1.tgz";
-        sha512 = "cn6fltKuQ3TbthoMTg+JsKQfozqGcRcz1jT9Nqzr4gpHWgjdQ/nr5JpjwzKABQNVL2JH3UJWr6Eji60CFZDZ6Q==";
+        url = "https://registry.npmjs.org/@gitbeaker/requester-utils/-/requester-utils-40.0.3.tgz";
+        sha512 = "L8JpuMIsvXTHfu/2wXzkc5QyfQJSWg4XyEPStHq1ig5SAcbxxqbBoe8ed27eUXLah+PcGrPInMK4cCMxhQm41g==";
       };
     };
-    "@gitbeaker/rest-40.0.1" = {
+    "@gitbeaker/rest-40.0.3" = {
       name = "_at_gitbeaker_slash_rest";
       packageName = "@gitbeaker/rest";
-      version = "40.0.1";
+      version = "40.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@gitbeaker/rest/-/rest-40.0.1.tgz";
-        sha512 = "JEd9WNuzgur7gLiJPMWPYKaWe5uX1ic8CGKR1fMtBityFZ2xyZkTZ+LG0nqWTV1MyiowYnJ1swTh8Yff+kLsKA==";
+        url = "https://registry.npmjs.org/@gitbeaker/rest/-/rest-40.0.3.tgz";
+        sha512 = "ihaA0GX3yCo4oUWbISkcjFMIw+WxDAC9L+bEYq2irz4wpv/0EpAU/0jKjggPzY4cGWL9VAyPhew77VeACv4YWw==";
       };
     };
     "@grammarly/sdk-1.11.0" = {
@@ -5584,13 +5917,13 @@ let
         sha512 = "gVnnlWs0Ua+5FkuHHEriFUOI3OIbHv6DS1utxf28n6NkfGMJldC4j0xlJRY0LS6dWK34IGYgD4HelKYz2l8KiA==";
       };
     };
-    "@graphql-tools/delegate-10.0.4" = {
+    "@graphql-tools/delegate-10.0.11" = {
       name = "_at_graphql-tools_slash_delegate";
       packageName = "@graphql-tools/delegate";
-      version = "10.0.4";
+      version = "10.0.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-10.0.4.tgz";
-        sha512 = "WswZRbQZMh/ebhc8zSomK9DIh6Pd5KbuiMsyiKkKz37TWTrlCOe+4C/fyrBFez30ksq6oFyCeSKMwfrCbeGo0Q==";
+        url = "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-10.0.11.tgz";
+        sha512 = "+sKeecdIVXhFB/66e5yjeKYZ3Lpn52yNG637ElVhciuLGgFc153rC6l6zcuNd9yx5wMrNx35U/h3HsMIEI3xNw==";
       };
     };
     "@graphql-tools/delegate-7.1.5" = {
@@ -5602,13 +5935,13 @@ let
         sha512 = "bQu+hDd37e+FZ0CQGEEczmRSfQRnnXeUxI/0miDV+NV/zCbEdIJj5tYFNrKT03W6wgdqx8U06d8L23LxvGri/g==";
       };
     };
-    "@graphql-tools/executor-1.2.2" = {
+    "@graphql-tools/executor-1.2.6" = {
       name = "_at_graphql-tools_slash_executor";
       packageName = "@graphql-tools/executor";
-      version = "1.2.2";
+      version = "1.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/executor/-/executor-1.2.2.tgz";
-        sha512 = "wZkyjndwlzi01HTU3PDveoucKA8qVO0hdKmJhjIGK/vRN/A4w5rDdeqRGcyXVss0clCAy3R6jpixCVu5pWs2Qg==";
+        url = "https://registry.npmjs.org/@graphql-tools/executor/-/executor-1.2.6.tgz";
+        sha512 = "+1kjfqzM5T2R+dCw7F4vdJ3CqG+fY/LYJyhNiWEFtq0ToLwYzR/KKyD8YuzTirEjSxWTVlcBh7endkx5n5F6ew==";
       };
     };
     "@graphql-tools/executor-graphql-ws-1.1.2" = {
@@ -5746,13 +6079,13 @@ let
         sha512 = "XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==";
       };
     };
-    "@graphql-tools/merge-9.0.3" = {
+    "@graphql-tools/merge-9.0.4" = {
       name = "_at_graphql-tools_slash_merge";
       packageName = "@graphql-tools/merge";
-      version = "9.0.3";
+      version = "9.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.3.tgz";
-        sha512 = "FeKv9lKLMwqDu0pQjPpF59GY3HReUkWXKsMIuMuJQOKh9BETu7zPEFUELvcw8w+lwZkl4ileJsHXC9+AnsT2Lw==";
+        url = "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.4.tgz";
+        sha512 = "MivbDLUQ+4Q8G/Hp/9V72hbn810IJDEZQ57F01sHnlrrijyadibfVhaQfW/pNH+9T/l8ySZpaR/DpL5i+ruZ+g==";
       };
     };
     "@graphql-tools/mock-8.7.20" = {
@@ -5764,13 +6097,13 @@ let
         sha512 = "ljcHSJWjC/ZyzpXd5cfNhPI7YljRVvabKHPzKjEs5ElxWu2cdlLGvyNYepApXDsM/OJG/2xuhGM+9GWu5gEAPQ==";
       };
     };
-    "@graphql-tools/schema-10.0.3" = {
+    "@graphql-tools/schema-10.0.4" = {
       name = "_at_graphql-tools_slash_schema";
       packageName = "@graphql-tools/schema";
-      version = "10.0.3";
+      version = "10.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.3.tgz";
-        sha512 = "p28Oh9EcOna6i0yLaCFOnkcBDQECVf3SCexT6ktb86QNj9idnkhI+tCxnwZDh58Qvjd2nURdkbevvoZkvxzCog==";
+        url = "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.4.tgz";
+        sha512 = "HuIwqbKxPaJujox25Ra4qwz0uQzlpsaBOzO6CVfzB/MemZdd+Gib8AIvfhQArK0YIN40aDran/yi+E5Xf0mQww==";
       };
     };
     "@graphql-tools/schema-7.1.5" = {
@@ -5818,13 +6151,13 @@ let
         sha512 = "1dKp2K8UuFn7DFo1qX5c1cyazQv2h2ICwA9esHblEqCYrgf69Nk8N7SODmsfWg94OEaI74IqMoM12t7eIGwFzQ==";
       };
     };
-    "@graphql-tools/utils-10.1.2" = {
+    "@graphql-tools/utils-10.2.1" = {
       name = "_at_graphql-tools_slash_utils";
       packageName = "@graphql-tools/utils";
-      version = "10.1.2";
+      version = "10.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.1.2.tgz";
-        sha512 = "fX13CYsDnX4yifIyNdiN0cVygz/muvkreWWem6BBw130+ODbRRgfiVveL0NizCEnKXkpvdeTy9Bxvo9LIKlhrw==";
+        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.2.1.tgz";
+        sha512 = "U8OMdkkEt3Vp3uYHU2pMc6mwId7axVAcSSmcqJcUmWNPqY2pfee5O655ybTI2kNPWAe58Zu6gLu4Oi4QT4BgWA==";
       };
     };
     "@graphql-tools/utils-6.2.4" = {
@@ -5899,6 +6232,24 @@ let
         sha512 = "mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==";
       };
     };
+    "@gulpjs/messages-1.1.0" = {
+      name = "_at_gulpjs_slash_messages";
+      packageName = "@gulpjs/messages";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@gulpjs/messages/-/messages-1.1.0.tgz";
+        sha512 = "Ys9sazDatyTgZVb4xPlDufLweJ/Os2uHWOv+Caxvy2O85JcnT4M3vc73bi8pdLWlv3fdWQz3pdI9tVwo8rQQSg==";
+      };
+    };
+    "@gulpjs/to-absolute-glob-4.0.0" = {
+      name = "_at_gulpjs_slash_to-absolute-glob";
+      packageName = "@gulpjs/to-absolute-glob";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@gulpjs/to-absolute-glob/-/to-absolute-glob-4.0.0.tgz";
+        sha512 = "kjotm7XJrJ6v+7knhPaRgaT6q8F8K2jiafwYdNHLzmV0uGLuZY43FK6smNSHUPrhq5kX2slCUy+RGG/xGqmIKA==";
+      };
+    };
     "@hapi/hoek-9.3.0" = {
       name = "_at_hapi_slash_hoek";
       packageName = "@hapi/hoek";
@@ -5917,13 +6268,13 @@ let
         sha512 = "foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==";
       };
     };
-    "@headlessui/react-1.7.18" = {
+    "@headlessui/react-1.7.19" = {
       name = "_at_headlessui_slash_react";
       packageName = "@headlessui/react";
-      version = "1.7.18";
+      version = "1.7.19";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@headlessui/react/-/react-1.7.18.tgz";
-        sha512 = "4i5DOrzwN4qSgNsL4Si61VMkUcWbcSKueUV7sFhpHzQcSShdlHENE5+QBntMSRvHt8NyoFO2AGG8si9lq+w4zQ==";
+        url = "https://registry.npmjs.org/@headlessui/react/-/react-1.7.19.tgz";
+        sha512 = "Ll+8q3OlMJfJbAKM/+/Y2q6PPYbryqNTXDbryx7SXLIDamkF6iQFbriYHga0dY44PvDhvvBWCx1Xj4U5+G4hOw==";
       };
     };
     "@heroicons/react-2.0.18" = {
@@ -5935,13 +6286,13 @@ let
         sha512 = "7TyMjRrZZMBPa+/5Y8lN0iyvUU/01PeMGX2+RE7cQWpEUIcb4QotzUObFkJDejj/HUH4qjP/eQ0gzzKs2f+6Yw==";
       };
     };
-    "@hpcc-js/wasm-2.16.0" = {
+    "@hpcc-js/wasm-2.16.2" = {
       name = "_at_hpcc-js_slash_wasm";
       packageName = "@hpcc-js/wasm";
-      version = "2.16.0";
+      version = "2.16.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@hpcc-js/wasm/-/wasm-2.16.0.tgz";
-        sha512 = "e2aPTthjER80Kt/BZPHKksm6YjyMul4qUDDbIxhZYjbUvrxy9ogDr81P4pa1DSUIMzQ1f/7yCC22SBYIa3j5gg==";
+        url = "https://registry.npmjs.org/@hpcc-js/wasm/-/wasm-2.16.2.tgz";
+        sha512 = "THiidUMYR8/cIfFT3MVcWuRE7bQKh295nrFBxGvUNc4Nq8e2uU1LtiplHs7AUkJ0GxgvZoR+8TQ1/E3Qb/uE2g==";
       };
     };
     "@httptoolkit/websocket-stream-6.0.1" = {
@@ -5989,13 +6340,22 @@ let
         sha512 = "ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==";
       };
     };
-    "@humanwhocodes/object-schema-2.0.2" = {
+    "@humanwhocodes/object-schema-2.0.3" = {
       name = "_at_humanwhocodes_slash_object-schema";
       packageName = "@humanwhocodes/object-schema";
-      version = "2.0.2";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz";
+        sha512 = "93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==";
+      };
+    };
+    "@humanwhocodes/retry-0.3.0" = {
+      name = "_at_humanwhocodes_slash_retry";
+      packageName = "@humanwhocodes/retry";
+      version = "0.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz";
-        sha512 = "6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==";
+        url = "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz";
+        sha512 = "d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==";
       };
     };
     "@hutson/parse-repository-url-3.0.2" = {
@@ -6025,22 +6385,22 @@ let
         sha512 = "trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==";
       };
     };
-    "@ibm-cloud/openapi-ruleset-1.15.3" = {
+    "@ibm-cloud/openapi-ruleset-1.17.0" = {
       name = "_at_ibm-cloud_slash_openapi-ruleset";
       packageName = "@ibm-cloud/openapi-ruleset";
-      version = "1.15.3";
+      version = "1.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ibm-cloud/openapi-ruleset/-/openapi-ruleset-1.15.3.tgz";
-        sha512 = "iHX831iXlFuV6QAfn08bjrW6jRblmXdRvQJiwLn96tLm0tcoCoUcsQcrFVjuAuCF9+F5Lfy/lYpS58rztL++4Q==";
+        url = "https://registry.npmjs.org/@ibm-cloud/openapi-ruleset/-/openapi-ruleset-1.17.0.tgz";
+        sha512 = "Fv5iJX2iK0dFL82FE8SvA/ifEV7EYAmRf1czxheVkSm8FEGhMMrXJAQXNWZGIEJex/edgybs0C1AUHK0H97hCg==";
       };
     };
-    "@ibm-cloud/openapi-ruleset-utilities-1.3.1" = {
+    "@ibm-cloud/openapi-ruleset-utilities-1.3.2" = {
       name = "_at_ibm-cloud_slash_openapi-ruleset-utilities";
       packageName = "@ibm-cloud/openapi-ruleset-utilities";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ibm-cloud/openapi-ruleset-utilities/-/openapi-ruleset-utilities-1.3.1.tgz";
-        sha512 = "I0/5qOruBwV70f7mU0p1kkzgWO/ZzNc+IiTMGKYfdbEoOML4mVWNVZvn+mcTqOwfdWFUznWwPnAaXbxnIO7WiA==";
+        url = "https://registry.npmjs.org/@ibm-cloud/openapi-ruleset-utilities/-/openapi-ruleset-utilities-1.3.2.tgz";
+        sha512 = "pDZ+YTawZBAMgxfGG0JeCizh7Brmz8h4WRQaJvfJaRfgfdFmp5xZ64oqvnpJQ16XjCdNMBkTB6NJCZjQzq1gpQ==";
       };
     };
     "@inquirer/checkbox-1.5.2" = {
@@ -6097,6 +6457,15 @@ let
         sha512 = "TGLU9egcuo+s7PxphKUCnJnpCIVY32/EwPCLLuu+gTvYiD8hZgx8Z2niNQD36sa6xcfpdLY6xXDBiL/+g1r2XQ==";
       };
     };
+    "@inquirer/figures-1.0.3" = {
+      name = "_at_inquirer_slash_figures";
+      packageName = "@inquirer/figures";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.3.tgz";
+        sha512 = "ErXXzENMH5pJt5/ssXV0DfWUZqly8nGzf0UcBV9xTnP+KyffE2mqyxIMBrZ8ijQck2nU0TQm40EQB53YreyWHw==";
+      };
+    };
     "@inquirer/input-1.2.16" = {
       name = "_at_inquirer_slash_input";
       packageName = "@inquirer/input";
@@ -6151,13 +6520,13 @@ let
         sha512 = "RzlRISXWqIKEf83FDC9ZtJ3JvuK1l7aGpretf41BCWYrvla2wU8W8MTRNMiPrPJ+1SIqrRC1nZdZ60hD9hRXLg==";
       };
     };
-    "@inquirer/type-1.2.1" = {
+    "@inquirer/type-1.3.3" = {
       name = "_at_inquirer_slash_type";
       packageName = "@inquirer/type";
-      version = "1.2.1";
+      version = "1.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@inquirer/type/-/type-1.2.1.tgz";
-        sha512 = "xwMfkPAxeo8Ji/IxfUSqzRi0/+F2GIqJmpc5/thelgMGsjNZcjDDRBO9TLXT1s/hdx/mK5QbVIvgoLIFgXhTMQ==";
+        url = "https://registry.npmjs.org/@inquirer/type/-/type-1.3.3.tgz";
+        sha512 = "xTUt0NulylX27/zMx04ZYar/kr1raaiFTVvQ5feljQsiAgdm0WPj4S73/ye0fbslh+15QrIuDvfCXTek7pMY5A==";
       };
     };
     "@isaacs/cliui-8.0.2" = {
@@ -6664,13 +7033,13 @@ let
         sha512 = "4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==";
       };
     };
-    "@jsdoc/salty-0.2.7" = {
+    "@jsdoc/salty-0.2.8" = {
       name = "_at_jsdoc_slash_salty";
       packageName = "@jsdoc/salty";
-      version = "0.2.7";
+      version = "0.2.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.7.tgz";
-        sha512 = "mh8LbS9d4Jq84KLw8pzho7XC2q2/IJGiJss3xwRoLD1A+EE16SjN4PfaG4jRCzKegTFLlN0Zd8SdUPE6XdoPFg==";
+        url = "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.8.tgz";
+        sha512 = "5e+SFVavj1ORKlKaKr2BmTOekmXbelU7dC0cDkQLqag7xfuTPuGMUFx7KWJuv4bYZrTsoL2Z18VVCOKYxzoHcg==";
       };
     };
     "@jsep-plugin/regex-1.0.3" = {
@@ -6691,31 +7060,67 @@ let
         sha512 = "qtLGzCNzPVJ3kdH6/zoLWDPjauHIKiLSBAR71Wa0+PWvGA8wODUQvRgxtpUA5YqAYL3CQ8S4qXhd/9WuWTZirg==";
       };
     };
-    "@jsii/check-node-1.94.0" = {
+    "@jsii/check-node-1.95.0" = {
       name = "_at_jsii_slash_check-node";
       packageName = "@jsii/check-node";
-      version = "1.94.0";
+      version = "1.95.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jsii/check-node/-/check-node-1.94.0.tgz";
-        sha512 = "46W+V1oTFvF9ZpKpPYy//1WUmhZ8AD8O0ElmQtv9mundLHccZm+q7EmCYhozr7rlK5uSjU9/WHfbIx2DwynuJw==";
+        url = "https://registry.npmjs.org/@jsii/check-node/-/check-node-1.95.0.tgz";
+        sha512 = "E5njkBk6X4WrQHtGeO0ed+cvkMxqinQZY83TJZ9RFEIwrndDfj7asMgWkRkYQRF05AlQXks+Eh8wza7ErIl85Q==";
       };
     };
-    "@jsii/check-node-1.95.0" = {
+    "@jsii/check-node-1.98.0" = {
       name = "_at_jsii_slash_check-node";
       packageName = "@jsii/check-node";
-      version = "1.95.0";
+      version = "1.98.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jsii/check-node/-/check-node-1.95.0.tgz";
-        sha512 = "E5njkBk6X4WrQHtGeO0ed+cvkMxqinQZY83TJZ9RFEIwrndDfj7asMgWkRkYQRF05AlQXks+Eh8wza7ErIl85Q==";
+        url = "https://registry.npmjs.org/@jsii/check-node/-/check-node-1.98.0.tgz";
+        sha512 = "hI53TMW/fylHyY3CrJvqWvfSPJvBL82GSAB1m2CKNC0yHb0pZHCdBZnLrrr4rgTCQx8kIJjcUc0rQ/Ba3w+GaA==";
       };
     };
-    "@jsii/spec-1.95.0" = {
+    "@jsii/check-node-1.99.0" = {
+      name = "_at_jsii_slash_check-node";
+      packageName = "@jsii/check-node";
+      version = "1.99.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jsii/check-node/-/check-node-1.99.0.tgz";
+        sha512 = "RJeVopU3U+/ZxGj//KKJgXmDM8N7uP5QIqypb0QFVJPtIcQMM9nuEQWp4hOB3ajhk4VNaXGrG6PwlqFtFsqbbQ==";
+      };
+    };
+    "@jsii/spec-1.99.0" = {
       name = "_at_jsii_slash_spec";
       packageName = "@jsii/spec";
-      version = "1.95.0";
+      version = "1.99.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jsii/spec/-/spec-1.99.0.tgz";
+        sha512 = "R4E0lFj+C2PpLt2tnexIlQA7Ovy52tL9PRcDy6sUcnJto4iZufexudIm4pjIJPN+bfwimQX5aMjALloRwDixtQ==";
+      };
+    };
+    "@jsonjoy.com/base64-1.1.2" = {
+      name = "_at_jsonjoy.com_slash_base64";
+      packageName = "@jsonjoy.com/base64";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz";
+        sha512 = "q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==";
+      };
+    };
+    "@jsonjoy.com/json-pack-1.0.4" = {
+      name = "_at_jsonjoy.com_slash_json-pack";
+      packageName = "@jsonjoy.com/json-pack";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.0.4.tgz";
+        sha512 = "aOcSN4MeAtFROysrbqG137b7gaDDSmVrl5mpo6sT/w+kcXpWnzhMjmY/Fh/sDx26NBxyIE7MB1seqLeCAzy9Sg==";
+      };
+    };
+    "@jsonjoy.com/util-1.1.3" = {
+      name = "_at_jsonjoy.com_slash_util";
+      packageName = "@jsonjoy.com/util";
+      version = "1.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jsii/spec/-/spec-1.95.0.tgz";
-        sha512 = "gQtNQHAvSYIsuOEt/Et256SNFJJhG4mpm4k6bwJ5BX2ibEAN4t0amAKjYslrYLhJo8iSGcMedh/YC9hOReL2Iw==";
+        url = "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.1.3.tgz";
+        sha512 = "g//kkF4kOwUjemValCtOc/xiYzmwMRmWq3Bn+YnzOzuZLHq2PpMOxxIayN3cKbo7Ko2Np65t6D9H81IvXbXhqg==";
       };
     };
     "@kamilkisiela/fast-url-parser-1.1.4" = {
@@ -6745,22 +7150,22 @@ let
         sha512 = "GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==";
       };
     };
-    "@leichtgewicht/ip-codec-2.0.4" = {
+    "@leichtgewicht/ip-codec-2.0.5" = {
       name = "_at_leichtgewicht_slash_ip-codec";
       packageName = "@leichtgewicht/ip-codec";
-      version = "2.0.4";
+      version = "2.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz";
-        sha512 = "Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==";
+        url = "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz";
+        sha512 = "Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==";
       };
     };
-    "@lerna/create-8.1.2" = {
+    "@lerna/create-8.1.3" = {
       name = "_at_lerna_slash_create";
       packageName = "@lerna/create";
-      version = "8.1.2";
+      version = "8.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/create/-/create-8.1.2.tgz";
-        sha512 = "GzScCIkAW3tg3+Yn/MKCH9963bzG+zpjGz2NdfYDlYWI7p0f/SH46v1dqpPpYmZ2E/m3JK8HjTNNNL8eIm8/YQ==";
+        url = "https://registry.npmjs.org/@lerna/create/-/create-8.1.3.tgz";
+        sha512 = "JFvIYrlvR8Txa8h7VZx8VIQDltukEKOKaZL/muGO7Q/5aE2vjOKHsD/jkWYe/2uFy1xv37ubdx17O1UXQNadPg==";
       };
     };
     "@lezer/common-1.2.1" = {
@@ -6772,13 +7177,13 @@ let
         sha512 = "yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==";
       };
     };
-    "@lezer/lr-1.4.0" = {
+    "@lezer/lr-1.4.1" = {
       name = "_at_lezer_slash_lr";
       packageName = "@lezer/lr";
-      version = "1.4.0";
+      version = "1.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.0.tgz";
-        sha512 = "Wst46p51km8gH0ZUmeNrtpRYmdlRHUpN1DQd3GFAyKANi8WVz8c2jHYTf1CVScFaCjQw1iO3ZZdqGDxQPRErTg==";
+        url = "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.1.tgz";
+        sha512 = "CHsKq8DMKBf9b3yXPDIU4DbH+ZJd/sJdYOW2llbW/HudP5u0VS6Bfq1hLYfgU7uAYGFIyGGQIsSOXGPEErZiJw==";
       };
     };
     "@ljharb/through-2.3.13" = {
@@ -6898,15 +7303,6 @@ let
         sha512 = "4wvrf5BgnR8RpogHhtpCPJMKBmvyZPhhUtEwMJbXh0ni2BucpfF07jlmyM11zRqQ2XIq6PbC2j7W7UCCcm1rRQ==";
       };
     };
-    "@malept/cross-spawn-promise-1.1.1" = {
-      name = "_at_malept_slash_cross-spawn-promise";
-      packageName = "@malept/cross-spawn-promise";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz";
-        sha512 = "RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==";
-      };
-    };
     "@malept/cross-spawn-promise-2.0.0" = {
       name = "_at_malept_slash_cross-spawn-promise";
       packageName = "@malept/cross-spawn-promise";
@@ -6943,13 +7339,13 @@ let
         sha512 = "W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==";
       };
     };
-    "@microsoft/rush-lib-5.117.9" = {
+    "@microsoft/rush-lib-5.127.0" = {
       name = "_at_microsoft_slash_rush-lib";
       packageName = "@microsoft/rush-lib";
-      version = "5.117.9";
+      version = "5.127.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@microsoft/rush-lib/-/rush-lib-5.117.9.tgz";
-        sha512 = "fZC4B/ZVHELMsj7MVgcbmtUBuk1Ljp1MsNc2ZJ51mzMvo0Q7Wtr7qfw01ZIpjgD4uJ2PTpYCeA1HD00sIA5tTQ==";
+        url = "https://registry.npmjs.org/@microsoft/rush-lib/-/rush-lib-5.127.0.tgz";
+        sha512 = "zlW9lrlUL9eLLcvCNyVMYrjUe715jbFoAhHxbFS29W2Mnd9pdoETLMz1oagcQDUl7t5ZbJJi/0NpCfcHxOAXtA==";
       };
     };
     "@mischnic/json-sourcemap-0.1.1" = {
@@ -6961,40 +7357,40 @@ let
         sha512 = "iA7+tyVqfrATAIsIRWQG+a7ZLLD0VaOCKV2Wd/v4mqIU3J9c4jx9p7S0nw1XH3gJCKNBOOwACOPYYSUu9pgT+w==";
       };
     };
-    "@module-federation/runtime-0.0.8" = {
+    "@module-federation/runtime-0.1.6" = {
       name = "_at_module-federation_slash_runtime";
       packageName = "@module-federation/runtime";
-      version = "0.0.8";
+      version = "0.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@module-federation/runtime/-/runtime-0.0.8.tgz";
-        sha512 = "Hi9g10aHxHdQ7CbchSvke07YegYwkf162XPOmixNmJr5Oy4wVa2d9yIVSrsWFhBRbbvM5iJP6GrSuEq6HFO3ug==";
+        url = "https://registry.npmjs.org/@module-federation/runtime/-/runtime-0.1.6.tgz";
+        sha512 = "nj6a+yJ+QxmcE89qmrTl4lphBIoAds0PFPVGnqLRWflwAP88jrCcrrTqRhARegkFDL+wE9AE04+h6jzlbIfMKg==";
       };
     };
-    "@module-federation/runtime-tools-0.0.8" = {
+    "@module-federation/runtime-tools-0.1.6" = {
       name = "_at_module-federation_slash_runtime-tools";
       packageName = "@module-federation/runtime-tools";
-      version = "0.0.8";
+      version = "0.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@module-federation/runtime-tools/-/runtime-tools-0.0.8.tgz";
-        sha512 = "tqx3wlVHnpWLk+vn22c0x9Nv1BqdZnoS6vdMb53IsVpbQIFP70nhhvymHUyFuPkoLzMFidS7GpG58DYT/4lvCw==";
+        url = "https://registry.npmjs.org/@module-federation/runtime-tools/-/runtime-tools-0.1.6.tgz";
+        sha512 = "7ILVnzMIa0Dlc0Blck5tVZG1tnk1MmLnuZpLOMpbdW+zl+N6wdMjjHMjEZFCUAJh2E5XJ3BREwfX8Ets0nIkLg==";
       };
     };
-    "@module-federation/sdk-0.0.8" = {
+    "@module-federation/sdk-0.1.6" = {
       name = "_at_module-federation_slash_sdk";
       packageName = "@module-federation/sdk";
-      version = "0.0.8";
+      version = "0.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@module-federation/sdk/-/sdk-0.0.8.tgz";
-        sha512 = "lkasywBItjUTNT0T0IskonDE2E/2tXE9UhUCPVoDL3NteDUSFGg4tpkF+cey1pD8mHh0XJcGrCuOW7s96peeAg==";
+        url = "https://registry.npmjs.org/@module-federation/sdk/-/sdk-0.1.6.tgz";
+        sha512 = "qifXpyYLM7abUeEOIfv0oTkguZgRZuwh89YOAYIZJlkP6QbRG7DJMQvtM8X2yHXm9PTk0IYNnOJH0vNQCo6auQ==";
       };
     };
-    "@module-federation/webpack-bundler-runtime-0.0.8" = {
+    "@module-federation/webpack-bundler-runtime-0.1.6" = {
       name = "_at_module-federation_slash_webpack-bundler-runtime";
       packageName = "@module-federation/webpack-bundler-runtime";
-      version = "0.0.8";
+      version = "0.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.0.8.tgz";
-        sha512 = "ULwrTVzF47+6XnWybt6SIq97viEYJRv4P/DByw5h7PSX9PxSGyMm5pHfXdhcb7tno7VknL0t2V8F48fetVL9kA==";
+        url = "https://registry.npmjs.org/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.1.6.tgz";
+        sha512 = "K5WhKZ4RVNaMEtfHsd/9CNCgGKB0ipbm/tgweNNeC11mEuBTNxJ09Y630vg3WPkKv9vfMCuXg2p2Dk+Q/KWTSA==";
       };
     };
     "@msgpack/msgpack-2.8.0" = {
@@ -7024,6 +7420,15 @@ let
         sha512 = "V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==";
       };
     };
+    "@noble/hashes-1.4.0" = {
+      name = "_at_noble_slash_hashes";
+      packageName = "@noble/hashes";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz";
+        sha512 = "V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==";
+      };
+    };
     "@node-ipc/js-queue-2.0.3" = {
       name = "_at_node-ipc_slash_js-queue";
       packageName = "@node-ipc/js-queue";
@@ -7033,58 +7438,58 @@ let
         sha512 = "fL1wpr8hhD5gT2dA1qifeVaoDFlQR5es8tFuKqjHX+kdOtdNHnxkVZbtIrR2rxnMFvehkjaZRNV2H/gPXlb0hw==";
       };
     };
-    "@node-red/editor-api-3.1.7" = {
+    "@node-red/editor-api-3.1.9" = {
       name = "_at_node-red_slash_editor-api";
       packageName = "@node-red/editor-api";
-      version = "3.1.7";
+      version = "3.1.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/editor-api/-/editor-api-3.1.7.tgz";
-        sha512 = "u0UzXmIhJmvAQTWdiMFi9JoA7hvvBn4egXcgrnfRlWzvcRd8igi4LWth4vKo9/VUYsmXrnxv+JE+qm4RLfIvKA==";
+        url = "https://registry.npmjs.org/@node-red/editor-api/-/editor-api-3.1.9.tgz";
+        sha512 = "HHhFiwxmD8V5+U/xe+Gl9T0oAnwFeA7zisG8VW+Ruh3apGQvV9l5UoL9Yg00jEPDOhL99k/wqcXI42lakEkiKw==";
       };
     };
-    "@node-red/editor-client-3.1.7" = {
+    "@node-red/editor-client-3.1.9" = {
       name = "_at_node-red_slash_editor-client";
       packageName = "@node-red/editor-client";
-      version = "3.1.7";
+      version = "3.1.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/editor-client/-/editor-client-3.1.7.tgz";
-        sha512 = "L6E04FAFcBgssFuGroLmau+Mdhbt7NcLIWxDDkdvdmVKP4LQwOvfQP8uVHQyiMzotkIfng5nQqTBpHrnsBA+Ww==";
+        url = "https://registry.npmjs.org/@node-red/editor-client/-/editor-client-3.1.9.tgz";
+        sha512 = "k8ik9fqcUxwsjEL0bBywNRYoFk7VZxdcoXRKCtcB3H8T/KRgQBDZu4j27dtff/5WPqnvtmXOQBbdDrhluMO0ng==";
       };
     };
-    "@node-red/nodes-3.1.7" = {
+    "@node-red/nodes-3.1.9" = {
       name = "_at_node-red_slash_nodes";
       packageName = "@node-red/nodes";
-      version = "3.1.7";
+      version = "3.1.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/nodes/-/nodes-3.1.7.tgz";
-        sha512 = "aRlwKHRkbaS+Sd1kcK+W/wafY2t4J8CDlkRL79mPXINBLZCsg3Y8mXqgmWb4lpHU68dkMp6HOl1V+imlr80yJQ==";
+        url = "https://registry.npmjs.org/@node-red/nodes/-/nodes-3.1.9.tgz";
+        sha512 = "H0ZJjgmc7tbDBExF8WWIab7VJ1PBJxqExc6HWfb5FJQcOyA9mzCXwBduirWGxWAbQzZvq5GLgzy5ECzDJIjbSQ==";
       };
     };
-    "@node-red/registry-3.1.7" = {
+    "@node-red/registry-3.1.9" = {
       name = "_at_node-red_slash_registry";
       packageName = "@node-red/registry";
-      version = "3.1.7";
+      version = "3.1.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/registry/-/registry-3.1.7.tgz";
-        sha512 = "bSAIBTTYkEckOC0I9kYLNP/rMFzR7b8/kb8Z9NKYYEMMEf32DjjwXEIq14/6+E+zUkenFv5Vy7V6zrox1JqNTA==";
+        url = "https://registry.npmjs.org/@node-red/registry/-/registry-3.1.9.tgz";
+        sha512 = "lm1jNGO5ebax5kw5A2stOymMVQpuAGJ24M+3bfPYj3djzgBq4qKbNX6EAJLtyLHlCKecAybJoXDNpNcCnl7BXQ==";
       };
     };
-    "@node-red/runtime-3.1.7" = {
+    "@node-red/runtime-3.1.9" = {
       name = "_at_node-red_slash_runtime";
       packageName = "@node-red/runtime";
-      version = "3.1.7";
+      version = "3.1.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/runtime/-/runtime-3.1.7.tgz";
-        sha512 = "8Fq2GDqb8Tfc+QDGtTwEHs1mPtT3aRJzgfr5yUCbVSNkB6eewsuVHrPWnj58caUcJm/b9wB+7SBPcaVOifdssg==";
+        url = "https://registry.npmjs.org/@node-red/runtime/-/runtime-3.1.9.tgz";
+        sha512 = "tpuHE5gEqLx9OoRjSxsyh683yGCnBlAAwbjkVv5lonqYqLJwE3DCJnMuHYj1lPUDzSc0QzhE9efm+LIhAhBU4g==";
       };
     };
-    "@node-red/util-3.1.7" = {
+    "@node-red/util-3.1.9" = {
       name = "_at_node-red_slash_util";
       packageName = "@node-red/util";
-      version = "3.1.7";
+      version = "3.1.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/util/-/util-3.1.7.tgz";
-        sha512 = "vUnuoOwVjGtJ3j5WcL468neXGciDRvZnRAqB0Fl//cjPLklTkipK6C5b0vYGTgy+cL5K+KjcV10yl3F2tiAOQw==";
+        url = "https://registry.npmjs.org/@node-red/util/-/util-3.1.9.tgz";
+        sha512 = "BT7mMds8MFrXwgGuNjmk/vY0X621hirLcqAOp5/ZrrFuzPVoK4PDgoNx5igYD/HVQbVcJTHfN1cRopSFPfdF2Q==";
       };
     };
     "@nodelib/fs.scandir-2.1.5" = {
@@ -7114,13 +7519,13 @@ let
         sha512 = "oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==";
       };
     };
-    "@npmcli/agent-2.2.1" = {
+    "@npmcli/agent-2.2.2" = {
       name = "_at_npmcli_slash_agent";
       packageName = "@npmcli/agent";
-      version = "2.2.1";
+      version = "2.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.1.tgz";
-        sha512 = "H4FrOVtNyWC8MUwL3UfjOsAihHvT1Pe8POj3JvjXhSTJipsZMtgUALCT4mGyYZNxymkUfOw3PUj6dE4QPp6osQ==";
+        url = "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz";
+        sha512 = "OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==";
       };
     };
     "@npmcli/config-6.4.1" = {
@@ -7132,13 +7537,13 @@ let
         sha512 = "uSz+elSGzjCMANWa5IlbGczLYPkNI/LeR+cHrgaTqTrTSh9RHhOFA4daD2eRUz6lMtOW+Fnsb+qv7V2Zz8ML0g==";
       };
     };
-    "@npmcli/config-8.2.0" = {
+    "@npmcli/config-8.3.3" = {
       name = "_at_npmcli_slash_config";
       packageName = "@npmcli/config";
-      version = "8.2.0";
+      version = "8.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/config/-/config-8.2.0.tgz";
-        sha512 = "YoEYZFg0hRSRP/Chmq+J4FvULFvji6SORUYWQc10FiJ+ReAnViXcDCENg6kM6dID04bAoKNUygrby798+gYBbQ==";
+        url = "https://registry.npmjs.org/@npmcli/config/-/config-8.3.3.tgz";
+        sha512 = "sIMKHiiYr91ALiHjhPq64F5P/SCaiSyDfpNmgYHtlIJtLY445+3+r3VoREzpdDrOwIqwQ6iEHinbTfaocL0UgA==";
       };
     };
     "@npmcli/fs-1.1.1" = {
@@ -7159,40 +7564,40 @@ let
         sha512 = "yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==";
       };
     };
-    "@npmcli/fs-3.1.0" = {
+    "@npmcli/fs-3.1.1" = {
       name = "_at_npmcli_slash_fs";
       packageName = "@npmcli/fs";
-      version = "3.1.0";
+      version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz";
-        sha512 = "7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==";
+        url = "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz";
+        sha512 = "q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==";
       };
     };
-    "@npmcli/git-5.0.4" = {
+    "@npmcli/git-5.0.7" = {
       name = "_at_npmcli_slash_git";
       packageName = "@npmcli/git";
-      version = "5.0.4";
+      version = "5.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/git/-/git-5.0.4.tgz";
-        sha512 = "nr6/WezNzuYUppzXRaYu/W4aT5rLxdXqEFupbh6e/ovlYFQ8hpu1UUPV3Ir/YTl+74iXl2ZOMlGzudh9ZPUchQ==";
+        url = "https://registry.npmjs.org/@npmcli/git/-/git-5.0.7.tgz";
+        sha512 = "WaOVvto604d5IpdCRV2KjQu8PzkfE96d50CQGKgywXh2GxXmDeUO5EWcBC4V57uFyrNqx83+MewuJh3WTR3xPA==";
       };
     };
-    "@npmcli/installed-package-contents-2.0.2" = {
+    "@npmcli/installed-package-contents-2.1.0" = {
       name = "_at_npmcli_slash_installed-package-contents";
       packageName = "@npmcli/installed-package-contents";
-      version = "2.0.2";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz";
-        sha512 = "xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==";
+        url = "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz";
+        sha512 = "c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==";
       };
     };
-    "@npmcli/map-workspaces-3.0.4" = {
+    "@npmcli/map-workspaces-3.0.6" = {
       name = "_at_npmcli_slash_map-workspaces";
       packageName = "@npmcli/map-workspaces";
-      version = "3.0.4";
+      version = "3.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-3.0.4.tgz";
-        sha512 = "Z0TbvXkRbacjFFLpVpV0e2mheCh+WzQpcqL+4xp49uNJOxOnIAPZyXtUxZ5Qn3QBTGKA11Exjd9a5411rBrhDg==";
+        url = "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-3.0.6.tgz";
+        sha512 = "tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA==";
       };
     };
     "@npmcli/move-file-1.1.2" = {
@@ -7231,22 +7636,40 @@ let
         sha512 = "gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==";
       };
     };
-    "@npmcli/package-json-5.0.0" = {
+    "@npmcli/package-json-5.2.0" = {
       name = "_at_npmcli_slash_package-json";
       packageName = "@npmcli/package-json";
-      version = "5.0.0";
+      version = "5.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.0.0.tgz";
-        sha512 = "OI2zdYBLhQ7kpNPaJxiflofYIpkNLi+lnGdzqUOfRmCF3r2l1nadcjtCYMJKv/Utm/ZtlffaUuTiAktPHbc17g==";
+        url = "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.0.tgz";
+        sha512 = "qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==";
       };
     };
-    "@npmcli/promise-spawn-7.0.1" = {
+    "@npmcli/promise-spawn-7.0.2" = {
       name = "_at_npmcli_slash_promise-spawn";
       packageName = "@npmcli/promise-spawn";
-      version = "7.0.1";
+      version = "7.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz";
+        sha512 = "xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==";
+      };
+    };
+    "@npmcli/redact-1.1.0" = {
+      name = "_at_npmcli_slash_redact";
+      packageName = "@npmcli/redact";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@npmcli/redact/-/redact-1.1.0.tgz";
+        sha512 = "PfnWuOkQgu7gCbnSsAisaX7hKOdZ4wSAhAzH3/ph5dSGau52kCRrMMGbiSQLwyTZpgldkZ49b0brkOr1AzGBHQ==";
+      };
+    };
+    "@npmcli/redact-2.0.0" = {
+      name = "_at_npmcli_slash_redact";
+      packageName = "@npmcli/redact";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.1.tgz";
-        sha512 = "P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg==";
+        url = "https://registry.npmjs.org/@npmcli/redact/-/redact-2.0.0.tgz";
+        sha512 = "SEjCPAVHWYUIQR+Yn03kJmrJjZDtJLYpj300m3HV9OTRZNpC5YpbMsM3eTkECyT4aWj8lDr9WeY6TWefpubtYQ==";
       };
     };
     "@npmcli/run-script-7.0.2" = {
@@ -7258,40 +7681,40 @@ let
         sha512 = "Omu0rpA8WXvcGeY6DDzyRoY1i5DkCBkzyJ+m2u7PD6quzb0TvSqdIPOkTn8ZBOj7LbbcbMfZ3c5skwSu6m8y2w==";
       };
     };
-    "@npmcli/run-script-7.0.4" = {
+    "@npmcli/run-script-8.1.0" = {
       name = "_at_npmcli_slash_run-script";
       packageName = "@npmcli/run-script";
-      version = "7.0.4";
+      version = "8.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.4.tgz";
-        sha512 = "9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg==";
+        url = "https://registry.npmjs.org/@npmcli/run-script/-/run-script-8.1.0.tgz";
+        sha512 = "y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==";
       };
     };
-    "@nrwl/devkit-18.1.2" = {
+    "@nrwl/devkit-19.1.2" = {
       name = "_at_nrwl_slash_devkit";
       packageName = "@nrwl/devkit";
-      version = "18.1.2";
+      version = "19.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nrwl/devkit/-/devkit-18.1.2.tgz";
-        sha512 = "x+6UJNeWoDtke1FhEAP6ptDLUPJC/xOJ+Wri6RFTi+/ekw7qD3Bj73XHU9C47HBxMxN2voUVMfIX3mC65/CXiQ==";
+        url = "https://registry.npmjs.org/@nrwl/devkit/-/devkit-19.1.2.tgz";
+        sha512 = "vWI+OrTICE9Yw6C/jIwxybnvavI9dnQJ7tpzFbLcSVfFAGdFtYJGCLVe40IkWcvUfELoVmzpXtKP/sPy0D7J9w==";
       };
     };
-    "@nrwl/tao-18.1.2" = {
+    "@nrwl/tao-19.1.2" = {
       name = "_at_nrwl_slash_tao";
       packageName = "@nrwl/tao";
-      version = "18.1.2";
+      version = "19.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nrwl/tao/-/tao-18.1.2.tgz";
-        sha512 = "IA+osZ5TlKMwJmcP7TECW7TO0JdNNQud9Dgkh1ZfJ4GWnT7WEkE9b2Yf1IFeeB81kCTXXq8jfISa8ZY21MjRaQ==";
+        url = "https://registry.npmjs.org/@nrwl/tao/-/tao-19.1.2.tgz";
+        sha512 = "OseWzHXNwOmZinUjHCD+edinvNJq5ngGrn/yKO81Zm/FDxkcYjud20dMsXi8zYfgDjvQv22eDtk5v1BTlSx57A==";
       };
     };
-    "@nx/devkit-18.1.2" = {
+    "@nx/devkit-19.1.2" = {
       name = "_at_nx_slash_devkit";
       packageName = "@nx/devkit";
-      version = "18.1.2";
+      version = "19.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nx/devkit/-/devkit-18.1.2.tgz";
-        sha512 = "xgiPqKdJ6GVrqXsAyHD/yxqCDW1LekkWgazkuBI8MKA5J2IwZ4Ex5pMsOVMuWz2sTRejuPRqajBclFRMbhfCig==";
+        url = "https://registry.npmjs.org/@nx/devkit/-/devkit-19.1.2.tgz";
+        sha512 = "oHYZzfmvogPh7z8pf1RjW7eJaS05VZ1Ts/axlWerzQauWT7aoeyCaxa0D9q3ThnUuDt1PqKjwJi5jmCihBT2Sw==";
       };
     };
     "@oclif/color-1.0.13" = {
@@ -7348,22 +7771,13 @@ let
         sha512 = "6jYuZgXvHfOIc9GIaS4T3CIKGTjPmfAxuMcbCbMRKJJl4aq/4xeRlEz0E8/hz8HxvxZBGvN2GwAUHlrGWQVrVw==";
       };
     };
-    "@oclif/core-2.15.0" = {
+    "@oclif/core-2.16.0" = {
       name = "_at_oclif_slash_core";
       packageName = "@oclif/core";
-      version = "2.15.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/core/-/core-2.15.0.tgz";
-        sha512 = "fNEMG5DzJHhYmI3MgpByTvltBOMyFcnRIUMxbiz2ai8rhaYgaTHMG3Q38HcosfIvtw9nCjxpcQtC8MN8QtVCcA==";
-      };
-    };
-    "@oclif/core-3.19.6" = {
-      name = "_at_oclif_slash_core";
-      packageName = "@oclif/core";
-      version = "3.19.6";
+      version = "2.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/core/-/core-3.19.6.tgz";
-        sha512 = "1ryQWAx7VOf+Wq6pv00uilOo56DrG0drr42crmCQ3eYrPPz252EmNCoFkoOBk7McN6x0f4ega83c0yNNCXmiXw==";
+        url = "https://registry.npmjs.org/@oclif/core/-/core-2.16.0.tgz";
+        sha512 = "dL6atBH0zCZl1A1IXCKJgLPrM/wR7K+Wi401E/IvqsK8m2iCHW+0TEOGrans/cuN3oTW+uxIyJFHJ8Im0k4qBw==";
       };
     };
     "@oclif/errors-1.3.5" = {
@@ -7420,15 +7834,6 @@ let
         sha512 = "Ow1AR8WtjzlyCtiWWPgzMyT8SbcDJFr47009riLioHa+MHX2BCDtVn2DVnN/E6b9JlPV5ptQpjefoRSNWBesmg==";
       };
     };
-    "@oclif/plugin-commands-2.2.28" = {
-      name = "_at_oclif_slash_plugin-commands";
-      packageName = "@oclif/plugin-commands";
-      version = "2.2.28";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/plugin-commands/-/plugin-commands-2.2.28.tgz";
-        sha512 = "w1vQ6WGltMnyjJnnt6Vo/VVtyhz1V0O9McCy0qKIY+os7SunjnUMRNS/y8MZ7b6AjMSdbLGV9/VAYSlWyQg9SQ==";
-      };
-    };
     "@oclif/plugin-help-3.3.1" = {
       name = "_at_oclif_slash_plugin-help";
       packageName = "@oclif/plugin-help";
@@ -7465,15 +7870,6 @@ let
         sha512 = "6fzUDLWrSK7n6+EBrEekEEYrYTCneRoOF9TzojkjuFn1+ailvUlr98G90bblxKOyy8fqMe7QjvqwTgIDQ9ZIzg==";
       };
     };
-    "@oclif/plugin-plugins-3.9.4" = {
-      name = "_at_oclif_slash_plugin-plugins";
-      packageName = "@oclif/plugin-plugins";
-      version = "3.9.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/plugin-plugins/-/plugin-plugins-3.9.4.tgz";
-        sha512 = "JtumjspRdzJgHk1S10wu68tdlqSnyYRmSgCsmsc6AEvU+Orb0DQfrAgJEO77rPKPNo5MfnVAj0WyCDTi0JT/vw==";
-      };
-    };
     "@oclif/plugin-update-3.2.4" = {
       name = "_at_oclif_slash_plugin-update";
       packageName = "@oclif/plugin-update";
@@ -7771,15 +8167,6 @@ let
         sha512 = "qe+uWtCJetuG78KhfiQyEA+ZciC/qeECXRj+LCm4m0s98qR2wPwYHRI1u8aFbtkN6G4ZMyKN+opY++fJS5l3vg==";
       };
     };
-    "@opentelemetry/api-1.6.0" = {
-      name = "_at_opentelemetry_slash_api";
-      packageName = "@opentelemetry/api";
-      version = "1.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/api/-/api-1.6.0.tgz";
-        sha512 = "OWlrQAnWn9577PhVgqjUvMr1pg57Bc4jv0iL4w0PRuOSRvq67rvHW9Ie/dZVMvCzhSCB+UxhcY/PmCmFj33Q+g==";
-      };
-    };
     "@opentelemetry/api-1.8.0" = {
       name = "_at_opentelemetry_slash_api";
       packageName = "@opentelemetry/api";
@@ -7789,49 +8176,13 @@ let
         sha512 = "I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==";
       };
     };
-    "@opentelemetry/api-logs-0.43.0" = {
-      name = "_at_opentelemetry_slash_api-logs";
-      packageName = "@opentelemetry/api-logs";
-      version = "0.43.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.43.0.tgz";
-        sha512 = "0CXMOYPXgAdLM2OzVkiUfAL6QQwWVhnMfUXCqLsITY42FZ9TxAhZIHkoc4mfVxvPuXsBnRYGR8UQZX86p87z4A==";
-      };
-    };
-    "@opentelemetry/core-1.17.0" = {
-      name = "_at_opentelemetry_slash_core";
-      packageName = "@opentelemetry/core";
-      version = "1.17.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/core/-/core-1.17.0.tgz";
-        sha512 = "tfnl3h+UefCgx1aeN2xtrmr6BmdWGKXypk0pflQR0urFS40aE88trnkOMc2HTJZbMrqEEl4HsaBeFhwLVXsrJg==";
-      };
-    };
-    "@opentelemetry/core-1.17.1" = {
+    "@opentelemetry/core-1.24.1" = {
       name = "_at_opentelemetry_slash_core";
       packageName = "@opentelemetry/core";
-      version = "1.17.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/core/-/core-1.17.1.tgz";
-        sha512 = "I6LrZvl1FF97FQXPR0iieWQmKnGxYtMbWA1GrAXnLUR+B1Hn2m8KqQNEIlZAucyv00GBgpWkpllmULmZfG8P3g==";
-      };
-    };
-    "@opentelemetry/core-1.22.0" = {
-      name = "_at_opentelemetry_slash_core";
-      packageName = "@opentelemetry/core";
-      version = "1.22.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/core/-/core-1.22.0.tgz";
-        sha512 = "0VoAlT6x+Xzik1v9goJ3pZ2ppi6+xd3aUfg4brfrLkDBHRIVjMP0eBHrKrhB+NKcDyMAg8fAbGL3Npg/F6AwWA==";
-      };
-    };
-    "@opentelemetry/exporter-metrics-otlp-http-0.43.0" = {
-      name = "_at_opentelemetry_slash_exporter-metrics-otlp-http";
-      packageName = "@opentelemetry/exporter-metrics-otlp-http";
-      version = "0.43.0";
+      version = "1.24.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.43.0.tgz";
-        sha512 = "k0KHKLS/xEWI4e5xrsnHpRk7Adj7JSFbFeKF4ti1d9soek3y85ZC2fTzDQC+ysUYo/lccoAXGR/gjcYgQOe7pg==";
+        url = "https://registry.npmjs.org/@opentelemetry/core/-/core-1.24.1.tgz";
+        sha512 = "wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg==";
       };
     };
     "@opentelemetry/instrumentation-0.41.2" = {
@@ -7843,184 +8194,103 @@ let
         sha512 = "rxU72E0pKNH6ae2w5+xgVYZLzc5mlxAbGzF4shxMVK8YC2QQsfN38B2GPbj0jvrKWWNUElfclQ+YTykkNg/grw==";
       };
     };
-    "@opentelemetry/otlp-exporter-base-0.43.0" = {
-      name = "_at_opentelemetry_slash_otlp-exporter-base";
-      packageName = "@opentelemetry/otlp-exporter-base";
-      version = "0.43.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.43.0.tgz";
-        sha512 = "LXNtRFVuPRXB9q0qdvrLikQ3NtT9Jmv255Idryz3RJPhOh/Fa03sBASQoj3D55OH3xazmA90KFHfhJ/d8D8y4A==";
-      };
-    };
-    "@opentelemetry/otlp-transformer-0.43.0" = {
-      name = "_at_opentelemetry_slash_otlp-transformer";
-      packageName = "@opentelemetry/otlp-transformer";
-      version = "0.43.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.43.0.tgz";
-        sha512 = "KXYmgzWdVBOD5NvPmGW1nEMJjyQ8gK3N8r6pi4HvmEhTp0v4T13qDSax4q0HfsqmbPJR355oqQSJUnu1dHNutw==";
-      };
-    };
-    "@opentelemetry/resources-1.17.0" = {
+    "@opentelemetry/resources-1.24.1" = {
       name = "_at_opentelemetry_slash_resources";
       packageName = "@opentelemetry/resources";
-      version = "1.17.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.17.0.tgz";
-        sha512 = "+u0ciVnj8lhuL/qGRBPeVYvk7fL+H/vOddfvmOeJaA1KC+5/3UED1c9KoZQlRsNT5Kw1FaK8LkY2NVLYfOVZQw==";
-      };
-    };
-    "@opentelemetry/resources-1.17.1" = {
-      name = "_at_opentelemetry_slash_resources";
-      packageName = "@opentelemetry/resources";
-      version = "1.17.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.17.1.tgz";
-        sha512 = "M2e5emqg5I7qRKqlzKx0ROkcPyF8PbcSaWEdsm72od9txP7Z/Pl8PDYOyu80xWvbHAWk5mDxOF6v3vNdifzclA==";
-      };
-    };
-    "@opentelemetry/resources-1.22.0" = {
-      name = "_at_opentelemetry_slash_resources";
-      packageName = "@opentelemetry/resources";
-      version = "1.22.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.22.0.tgz";
-        sha512 = "+vNeIFPH2hfcNL0AJk/ykJXoUCtR1YaDUZM+p3wZNU4Hq98gzq+7b43xbkXjadD9VhWIUQqEwXyY64q6msPj6A==";
-      };
-    };
-    "@opentelemetry/sdk-logs-0.43.0" = {
-      name = "_at_opentelemetry_slash_sdk-logs";
-      packageName = "@opentelemetry/sdk-logs";
-      version = "0.43.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.43.0.tgz";
-        sha512 = "JyJ2BBRKm37Mc4cSEhFmsMl5ASQn1dkGhEWzAAMSlhPtLRTv5PfvJwhR+Mboaic/eDLAlciwsgijq8IFlf6IgQ==";
-      };
-    };
-    "@opentelemetry/sdk-metrics-1.17.0" = {
-      name = "_at_opentelemetry_slash_sdk-metrics";
-      packageName = "@opentelemetry/sdk-metrics";
-      version = "1.17.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.17.0.tgz";
-        sha512 = "HlWM27yGmYuwCoVRe3yg2PqKnIsq0kEF0HQgvkeDWz2NYkq9fFaSspR6kvjxUTbghAlZrabiqbgyKoYpYaXS3w==";
-      };
-    };
-    "@opentelemetry/sdk-metrics-1.17.1" = {
-      name = "_at_opentelemetry_slash_sdk-metrics";
-      packageName = "@opentelemetry/sdk-metrics";
-      version = "1.17.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.17.1.tgz";
-        sha512 = "eHdpsMCKhKhwznxvEfls8Wv3y4ZBWkkXlD3m7vtHIiWBqsMHspWSfie1s07mM45i/bBCf6YBMgz17FUxIXwmZA==";
-      };
-    };
-    "@opentelemetry/sdk-trace-base-1.17.0" = {
-      name = "_at_opentelemetry_slash_sdk-trace-base";
-      packageName = "@opentelemetry/sdk-trace-base";
-      version = "1.17.0";
+      version = "1.24.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.17.0.tgz";
-        sha512 = "2T5HA1/1iE36Q9eg6D4zYlC4Y4GcycI1J6NsHPKZY9oWfAxWsoYnRlkPfUqyY5XVtocCo/xHpnJvGNHwzT70oQ==";
+        url = "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.24.1.tgz";
+        sha512 = "cyv0MwAaPF7O86x5hk3NNgenMObeejZFLJJDVuSeSMIsknlsj3oOZzRv3qSzlwYomXsICfBeFFlxwHQte5mGXQ==";
       };
     };
-    "@opentelemetry/sdk-trace-base-1.22.0" = {
+    "@opentelemetry/sdk-trace-base-1.24.1" = {
       name = "_at_opentelemetry_slash_sdk-trace-base";
       packageName = "@opentelemetry/sdk-trace-base";
-      version = "1.22.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.22.0.tgz";
-        sha512 = "pfTuSIpCKONC6vkTpv6VmACxD+P1woZf4q0K46nSUvXFvOFqjBYKFaAMkKD3M1mlKUUh0Oajwj35qNjMl80m1Q==";
-      };
-    };
-    "@opentelemetry/semantic-conventions-1.17.0" = {
-      name = "_at_opentelemetry_slash_semantic-conventions";
-      packageName = "@opentelemetry/semantic-conventions";
-      version = "1.17.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.17.0.tgz";
-        sha512 = "+fguCd2d8d2qruk0H0DsCEy2CTK3t0Tugg7MhZ/UQMvmewbZLNnJ6heSYyzIZWG5IPfAXzoj4f4F/qpM7l4VBA==";
-      };
-    };
-    "@opentelemetry/semantic-conventions-1.17.1" = {
-      name = "_at_opentelemetry_slash_semantic-conventions";
-      packageName = "@opentelemetry/semantic-conventions";
-      version = "1.17.1";
+      version = "1.24.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.17.1.tgz";
-        sha512 = "xbR2U+2YjauIuo42qmE8XyJK6dYeRMLJuOlUP5SO4auET4VtOHOzgkRVOq+Ik18N+Xf3YPcqJs9dZMiDddz1eQ==";
+        url = "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.24.1.tgz";
+        sha512 = "zz+N423IcySgjihl2NfjBf0qw1RWe11XIAWVrTNOSSI6dtSPJiVom2zipFB2AEEtJWpv0Iz6DY6+TjnyTV5pWg==";
       };
     };
-    "@opentelemetry/semantic-conventions-1.22.0" = {
+    "@opentelemetry/semantic-conventions-1.24.1" = {
       name = "_at_opentelemetry_slash_semantic-conventions";
       packageName = "@opentelemetry/semantic-conventions";
-      version = "1.22.0";
+      version = "1.24.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.22.0.tgz";
-        sha512 = "CAOgFOKLybd02uj/GhCdEeeBjOS0yeoDeo/CA7ASBSmenpZHAKGB3iDm/rv3BQLcabb/OprDEsSQ1y0P8A7Siw==";
+        url = "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.1.tgz";
+        sha512 = "VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==";
       };
     };
-    "@orval/angular-6.25.0" = {
+    "@orval/angular-6.29.1" = {
       name = "_at_orval_slash_angular";
       packageName = "@orval/angular";
-      version = "6.25.0";
+      version = "6.29.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@orval/angular/-/angular-6.25.0.tgz";
-        sha512 = "lS86bmv1o4jFaGDAglFIHjuMz3Bhymz9A3ObYzZ3JKbZWV/5Vyz5/pk722QTyjH7cQ9Au8Tg5flCL70Tv5sHUA==";
+        url = "https://registry.npmjs.org/@orval/angular/-/angular-6.29.1.tgz";
+        sha512 = "nxoDP/m5B+Y5hilxbVHDuCb7LP9WPW250iVuxUHiQLCYFfrQiMJVizIHGZoBS1tx911qbHqFHB7XKHFsGqY1Zw==";
       };
     };
-    "@orval/axios-6.25.0" = {
+    "@orval/axios-6.29.1" = {
       name = "_at_orval_slash_axios";
       packageName = "@orval/axios";
-      version = "6.25.0";
+      version = "6.29.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@orval/axios/-/axios-6.25.0.tgz";
-        sha512 = "OjfWatlOpTCnbtg0DSMx7NZOl5eqNZZFWk/OtZJi5pZOveCr8wzdFxUEcQ7Wn3f+k/NceO4i/mZHXeTfrxUb1Q==";
+        url = "https://registry.npmjs.org/@orval/axios/-/axios-6.29.1.tgz";
+        sha512 = "qNRfPqSUiuA7m5aUMCBI1+ANJTjHl65ivpLTstfKExf1rvFqZ7gJpGBOGTcxaZdzwBbkN7Zm2CsGBpsWYxDmDg==";
       };
     };
-    "@orval/core-6.25.0" = {
+    "@orval/core-6.29.1" = {
       name = "_at_orval_slash_core";
       packageName = "@orval/core";
-      version = "6.25.0";
+      version = "6.29.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@orval/core/-/core-6.29.1.tgz";
+        sha512 = "InWH4heF+2KT2e8Qxoa+w8bourNl/MIr2+camJnGbbX6RzsWmfvGCtfW2kiaYMPc4RnGwTg7Qvfqeung2Dj4GQ==";
+      };
+    };
+    "@orval/hono-6.29.1" = {
+      name = "_at_orval_slash_hono";
+      packageName = "@orval/hono";
+      version = "6.29.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@orval/core/-/core-6.25.0.tgz";
-        sha512 = "P0HTyb/CXR1MT7rjEij+Aflns2GZJN7iqNFKz3E10kc1Xts8JT1FfiKIdMOtr1I7o2/wZUEGo4HNiVV8YtZ2KQ==";
+        url = "https://registry.npmjs.org/@orval/hono/-/hono-6.29.1.tgz";
+        sha512 = "nA4TpWRtGBzDok+BZl6yA4PZbmrXfaasuV0AfM9vmqlpEWn+X/x3ASzOrMBK2OkXc7oDfOToaaiq7CLIfEP8+g==";
       };
     };
-    "@orval/mock-6.25.0" = {
+    "@orval/mock-6.29.1" = {
       name = "_at_orval_slash_mock";
       packageName = "@orval/mock";
-      version = "6.25.0";
+      version = "6.29.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@orval/mock/-/mock-6.25.0.tgz";
-        sha512 = "pc99Qxlzk7btg9fu68d18uKGMSCtUin5R+f80niK0CHBbQmLa3AEkTYOiusToq3ioL87WnBhxWxGsI6lkQfKnw==";
+        url = "https://registry.npmjs.org/@orval/mock/-/mock-6.29.1.tgz";
+        sha512 = "l8UEtE1EOX40EHcl4qtu2IeQSRExqc63ekX84BqSWUZx0XicqZRzR348dqd3BB5qaPXKal6Y4ChX3qDeiuDJOw==";
       };
     };
-    "@orval/query-6.25.0" = {
+    "@orval/query-6.29.1" = {
       name = "_at_orval_slash_query";
       packageName = "@orval/query";
-      version = "6.25.0";
+      version = "6.29.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@orval/query/-/query-6.25.0.tgz";
-        sha512 = "hR8pEXuPsEiZosgP/pf3IKKgylF/sKEDoUr68JUgBqBAc4Foy/F/97aJl6Jkn6rGjM+IDtPafu+yV3MzZxNwKA==";
+        url = "https://registry.npmjs.org/@orval/query/-/query-6.29.1.tgz";
+        sha512 = "voJ3WO0AzQmfFxH0iQc2HsKVlzq7cy4Qik8sLT85upehpmJa/UlFjXr23FaW8SKkIG4kS2t80imCmpMfEezTbw==";
       };
     };
-    "@orval/swr-6.25.0" = {
+    "@orval/swr-6.29.1" = {
       name = "_at_orval_slash_swr";
       packageName = "@orval/swr";
-      version = "6.25.0";
+      version = "6.29.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@orval/swr/-/swr-6.25.0.tgz";
-        sha512 = "OfN/D5xS9z8KBfTg26gYbFFXlQEzOekyJwzgiEKnGiL/CPAs9h1C0zNMrjdgAXOoX84t+lA344SB5qdY5Pq4hw==";
+        url = "https://registry.npmjs.org/@orval/swr/-/swr-6.29.1.tgz";
+        sha512 = "/B7czuGVtWZ9GYeq2E7C8JuoOfd4wm94Qtu0E1gNTSFWgD0rLx3ZSEvR4cmt46t3tUbOw17Ra0k8lJg8T1MPAQ==";
       };
     };
-    "@orval/zod-6.25.0" = {
+    "@orval/zod-6.29.1" = {
       name = "_at_orval_slash_zod";
       packageName = "@orval/zod";
-      version = "6.25.0";
+      version = "6.29.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@orval/zod/-/zod-6.25.0.tgz";
-        sha512 = "35lvt9K/DUEkDb9M2FGHWL105Aarud6/iT5aM4JO6RiXf4rxBMXycAoGiYl/i3Pz45lS9krkXOEufKry9bRUyg==";
+        url = "https://registry.npmjs.org/@orval/zod/-/zod-6.29.1.tgz";
+        sha512 = "CPrcB7HnBoEtFKLvHSHB2vB3f1NlvI/eKd3P0wE7DsCn+c7YBXpRoOPxHpxIER+Y2kFUBh3DqKDLlRtYgg4JHA==";
       };
     };
     "@parcel/bundler-default-2.12.0" = {
@@ -8626,13 +8896,13 @@ let
         sha512 = "coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==";
       };
     };
-    "@peculiar/webcrypto-1.4.5" = {
+    "@peculiar/webcrypto-1.5.0" = {
       name = "_at_peculiar_slash_webcrypto";
       packageName = "@peculiar/webcrypto";
-      version = "1.4.5";
+      version = "1.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.5.tgz";
-        sha512 = "oDk93QCDGdxFRM8382Zdminzs44dg3M2+E5Np+JWkpqLDyJC9DviMh8F8mEJkYuUcUOGA5jHO5AJJ10MFWdbZw==";
+        url = "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.5.0.tgz";
+        sha512 = "BRs5XUAwiyCDQMsVA9IDvDa7UBR9gAvPHgugOeGng3YN6vJ9JYonyDc0lNczErgtCWtucjR5N7VtaonboD/ezg==";
       };
     };
     "@pkgr/core-0.1.1" = {
@@ -8797,58 +9067,58 @@ let
         sha512 = "j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==";
       };
     };
-    "@prisma/debug-5.11.0" = {
+    "@prisma/debug-5.14.0" = {
       name = "_at_prisma_slash_debug";
       packageName = "@prisma/debug";
-      version = "5.11.0";
+      version = "5.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@prisma/debug/-/debug-5.11.0.tgz";
-        sha512 = "N6yYr3AbQqaiUg+OgjkdPp3KPW1vMTAgtKX6+BiB/qB2i1TjLYCrweKcUjzOoRM5BriA4idrkTej9A9QqTfl3A==";
+        url = "https://registry.npmjs.org/@prisma/debug/-/debug-5.14.0.tgz";
+        sha512 = "iq56qBZuFfX3fCxoxT8gBX33lQzomBU0qIUaEj1RebsKVz1ob/BVH1XSBwwwvRVtZEV1b7Fxx2eVu34Ge/mg3w==";
       };
     };
-    "@prisma/engines-5.11.0" = {
+    "@prisma/engines-5.14.0" = {
       name = "_at_prisma_slash_engines";
       packageName = "@prisma/engines";
-      version = "5.11.0";
+      version = "5.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@prisma/engines/-/engines-5.11.0.tgz";
-        sha512 = "gbrpQoBTYWXDRqD+iTYMirDlF9MMlQdxskQXbhARhG6A/uFQjB7DZMYocMQLoiZXO/IskfDOZpPoZE8TBQKtEw==";
+        url = "https://registry.npmjs.org/@prisma/engines/-/engines-5.14.0.tgz";
+        sha512 = "lgxkKZ6IEygVcw6IZZUlPIfLQ9hjSYAtHjZ5r64sCLDgVzsPFCi2XBBJgzPMkOQ5RHzUD4E/dVdpn9+ez8tk1A==";
       };
     };
-    "@prisma/engines-version-5.11.0-15.efd2449663b3d73d637ea1fd226bafbcf45b3102" = {
+    "@prisma/engines-version-5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48" = {
       name = "_at_prisma_slash_engines-version";
       packageName = "@prisma/engines-version";
-      version = "5.11.0-15.efd2449663b3d73d637ea1fd226bafbcf45b3102";
+      version = "5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.11.0-15.efd2449663b3d73d637ea1fd226bafbcf45b3102.tgz";
-        sha512 = "WXCuyoymvrS4zLz4wQagSsc3/nE6CHy8znyiMv8RKazKymOMd5o9FP5RGwGHAtgoxd+aB/BWqxuP/Ckfu7/3MA==";
+        url = "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48.tgz";
+        sha512 = "ip6pNkRo1UxWv+6toxNcYvItNYaqQjXdFNGJ+Nuk2eYtRoEdoF13wxo7/jsClJFFenMPVNVqXQDV0oveXnR1cA==";
       };
     };
-    "@prisma/fetch-engine-5.11.0" = {
+    "@prisma/fetch-engine-5.14.0" = {
       name = "_at_prisma_slash_fetch-engine";
       packageName = "@prisma/fetch-engine";
-      version = "5.11.0";
+      version = "5.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.11.0.tgz";
-        sha512 = "994viazmHTJ1ymzvWugXod7dZ42T2ROeFuH6zHPcUfp/69+6cl5r9u3NFb6bW8lLdNjwLYEVPeu3hWzxpZeC0w==";
+        url = "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.14.0.tgz";
+        sha512 = "VrheA9y9DMURK5vu8OJoOgQpxOhas3qF0IBHJ8G/0X44k82kc8E0w98HCn2nhnbOOMwbWsJWXfLC2/F8n5u0gQ==";
       };
     };
-    "@prisma/get-platform-5.11.0" = {
+    "@prisma/get-platform-5.14.0" = {
       name = "_at_prisma_slash_get-platform";
       packageName = "@prisma/get-platform";
-      version = "5.11.0";
+      version = "5.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.11.0.tgz";
-        sha512 = "rxtHpMLxNTHxqWuGOLzR2QOyQi79rK1u1XYAVLZxDGTLz/A+uoDnjz9veBFlicrpWjwuieM4N6jcnjj/DDoidw==";
+        url = "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.14.0.tgz";
+        sha512 = "/yAyBvcEjRv41ynZrhdrPtHgk47xLRRq/o5eWGcUpBJ1YrUZTYB8EoPiopnP7iQrMATK8stXQdPOoVlrzuTQZw==";
       };
     };
-    "@prisma/prisma-schema-wasm-5.11.0-15.efd2449663b3d73d637ea1fd226bafbcf45b3102" = {
+    "@prisma/prisma-schema-wasm-5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48" = {
       name = "_at_prisma_slash_prisma-schema-wasm";
       packageName = "@prisma/prisma-schema-wasm";
-      version = "5.11.0-15.efd2449663b3d73d637ea1fd226bafbcf45b3102";
+      version = "5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@prisma/prisma-schema-wasm/-/prisma-schema-wasm-5.11.0-15.efd2449663b3d73d637ea1fd226bafbcf45b3102.tgz";
-        sha512 = "1VdfJ7fIM9X0opDyuNIrHLeynRdjIqI2waepLpi42ARiztPyD3getsgOtntiqMg3jGVwvnNdshUKuwHBFbv5Fg==";
+        url = "https://registry.npmjs.org/@prisma/prisma-schema-wasm/-/prisma-schema-wasm-5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48.tgz";
+        sha512 = "WeTmJ0mK8ALoKJUQFO+465k9lm1JWS4ODUg7akJq1wjgyDU1RTAzDFli8ESmNJlMVgJgoAd6jXmzcnoA0HT9Lg==";
       };
     };
     "@protobufjs/aspromise-1.1.2" = {
@@ -8941,13 +9211,22 @@ let
         sha512 = "Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==";
       };
     };
-    "@putdotio/api-client-8.47.0" = {
+    "@puppeteer/browsers-2.2.3" = {
+      name = "_at_puppeteer_slash_browsers";
+      packageName = "@puppeteer/browsers";
+      version = "2.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.2.3.tgz";
+        sha512 = "bJ0UBsk0ESOs6RFcLXOt99a3yTDcOKlzfjad+rhFwdaG1Lu/Wzq58GHYCDTlZ9z6mldf4g+NTb+TXEfe0PpnsQ==";
+      };
+    };
+    "@putdotio/api-client-8.49.0" = {
       name = "_at_putdotio_slash_api-client";
       packageName = "@putdotio/api-client";
-      version = "8.47.0";
+      version = "8.49.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@putdotio/api-client/-/api-client-8.47.0.tgz";
-        sha512 = "K9PoSzHRTFnc3ThhwC0w9xjyMU3BWMd2M2mDFVU2BW1KqkavLSOZSjtPvX0foWbflRbSROH3DEfDuquxCBsZnw==";
+        url = "https://registry.npmjs.org/@putdotio/api-client/-/api-client-8.49.0.tgz";
+        sha512 = "PqD4exebcZIZ7lZj9tYg5NAFqU/wjSiZNM1ak0uXpff3qG+Pw6T/pW5gt0lrWwq132Ct68/Q4by18jg9uXBqMw==";
       };
     };
     "@react-native/normalize-color-2.1.0" = {
@@ -8959,58 +9238,58 @@ let
         sha512 = "Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA==";
       };
     };
-    "@redis/bloom-1.0.2" = {
+    "@redis/bloom-1.2.0" = {
       name = "_at_redis_slash_bloom";
       packageName = "@redis/bloom";
-      version = "1.0.2";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@redis/bloom/-/bloom-1.0.2.tgz";
-        sha512 = "EBw7Ag1hPgFzdznK2PBblc1kdlj5B5Cw3XwI9/oG7tSn85/HKy3X9xHy/8tm/eNXJYHLXHJL/pkwBpFMVVefkw==";
+        url = "https://registry.npmjs.org/@redis/bloom/-/bloom-1.2.0.tgz";
+        sha512 = "HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==";
       };
     };
-    "@redis/client-1.2.0" = {
+    "@redis/client-1.5.16" = {
       name = "_at_redis_slash_client";
       packageName = "@redis/client";
-      version = "1.2.0";
+      version = "1.5.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@redis/client/-/client-1.2.0.tgz";
-        sha512 = "a8Nlw5fv2EIAFJxTDSSDVUT7yfBGpZO96ybZXzQpgkyLg/dxtQ1uiwTc0EGfzg1mrPjZokeBSEGTbGXekqTNOg==";
+        url = "https://registry.npmjs.org/@redis/client/-/client-1.5.16.tgz";
+        sha512 = "X1a3xQ5kEMvTib5fBrHKh6Y+pXbeKXqziYuxOUo1ojQNECg4M5Etd1qqyhMap+lFUOAh8S7UYevgJHOm4A+NOg==";
       };
     };
-    "@redis/graph-1.0.1" = {
+    "@redis/graph-1.1.1" = {
       name = "_at_redis_slash_graph";
       packageName = "@redis/graph";
-      version = "1.0.1";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@redis/graph/-/graph-1.0.1.tgz";
-        sha512 = "oDE4myMCJOCVKYMygEMWuriBgqlS5FqdWerikMoJxzmmTUErnTRRgmIDa2VcgytACZMFqpAOWDzops4DOlnkfQ==";
+        url = "https://registry.npmjs.org/@redis/graph/-/graph-1.1.1.tgz";
+        sha512 = "FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==";
       };
     };
-    "@redis/json-1.0.3" = {
+    "@redis/json-1.0.6" = {
       name = "_at_redis_slash_json";
       packageName = "@redis/json";
-      version = "1.0.3";
+      version = "1.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@redis/json/-/json-1.0.3.tgz";
-        sha512 = "4X0Qv0BzD9Zlb0edkUoau5c1bInWSICqXAGrpwEltkncUwcxJIGEcVryZhLgb0p/3PkKaLIWkjhHRtLe9yiA7Q==";
+        url = "https://registry.npmjs.org/@redis/json/-/json-1.0.6.tgz";
+        sha512 = "rcZO3bfQbm2zPRpqo82XbW8zg4G/w4W3tI7X8Mqleq9goQjAGLL7q/1n1ZX4dXEAmORVZ4s1+uKLaUOg7LrUhw==";
       };
     };
-    "@redis/search-1.0.6" = {
+    "@redis/search-1.1.6" = {
       name = "_at_redis_slash_search";
       packageName = "@redis/search";
-      version = "1.0.6";
+      version = "1.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@redis/search/-/search-1.0.6.tgz";
-        sha512 = "pP+ZQRis5P21SD6fjyCeLcQdps+LuTzp2wdUbzxEmNhleighDDTD5ck8+cYof+WLec4csZX7ks+BuoMw0RaZrA==";
+        url = "https://registry.npmjs.org/@redis/search/-/search-1.1.6.tgz";
+        sha512 = "mZXCxbTYKBQ3M2lZnEddwEAks0Kc7nauire8q20oA0oA/LoA+E/b5Y5KZn232ztPb1FkIGqo12vh3Lf+Vw5iTw==";
       };
     };
-    "@redis/time-series-1.0.3" = {
+    "@redis/time-series-1.0.5" = {
       name = "_at_redis_slash_time-series";
       packageName = "@redis/time-series";
-      version = "1.0.3";
+      version = "1.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@redis/time-series/-/time-series-1.0.3.tgz";
-        sha512 = "OFp0q4SGrTH0Mruf6oFsHGea58u8vS/iI5+NpYdicaM+7BgqBZH8FFvNZ8rYYLrUO/QRqMq72NpXmxLVNcdmjA==";
+        url = "https://registry.npmjs.org/@redis/time-series/-/time-series-1.0.5.tgz";
+        sha512 = "IFjIgTusQym2B5IZJG3XKr5llka7ey84fw/NOYqESP5WUfQs9zz1ww/9+qoz4ka/S6KcGBodzlCeZ5UImKbscg==";
       };
     };
     "@remix-run/router-1.8.0" = {
@@ -9022,130 +9301,22 @@ let
         sha512 = "mrfKqIHnSZRyIzBcanNJmVQELTnX+qagEDlcKO90RgRBVOZGSGvZKeDihTRfWcqoDn5N/NkUcwWTccnpN18Tfg==";
       };
     };
-    "@repeaterjs/repeater-3.0.5" = {
+    "@repeaterjs/repeater-3.0.6" = {
       name = "_at_repeaterjs_slash_repeater";
       packageName = "@repeaterjs/repeater";
-      version = "3.0.5";
+      version = "3.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.5.tgz";
-        sha512 = "l3YHBLAol6d/IKnB9LhpD0cEZWAoe3eFKUyTYWmFmCO2Q/WOckxLQAUyMZWwZV2M/m3+4vgRoaolFqaII82/TA==";
+        url = "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.6.tgz";
+        sha512 = "Javneu5lsuhwNCryN+pXH93VPQ8g0dBX7wItHFgYiwQmzE1sVdg5tWHiOgHywzL2W21XQopa7IwIEnNbmeUJYA==";
       };
     };
-    "@resvg/resvg-js-2.6.0" = {
+    "@resvg/resvg-js-2.6.2" = {
       name = "_at_resvg_slash_resvg-js";
       packageName = "@resvg/resvg-js";
-      version = "2.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@resvg/resvg-js/-/resvg-js-2.6.0.tgz";
-        sha512 = "Tf3YpbBKcQn991KKcw/vg7vZf98v01seSv6CVxZBbRkL/xyjnoYB6KgrFL6zskT1A4dWC/vg77KyNOW+ePaNlA==";
-      };
-    };
-    "@resvg/resvg-js-android-arm-eabi-2.6.0" = {
-      name = "_at_resvg_slash_resvg-js-android-arm-eabi";
-      packageName = "@resvg/resvg-js-android-arm-eabi";
-      version = "2.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@resvg/resvg-js-android-arm-eabi/-/resvg-js-android-arm-eabi-2.6.0.tgz";
-        sha512 = "lJnZ/2P5aMocrFMW7HWhVne5gH82I8xH6zsfH75MYr4+/JOaVcGCTEQ06XFohGMdYRP3v05SSPLPvTM/RHjxfA==";
-      };
-    };
-    "@resvg/resvg-js-android-arm64-2.6.0" = {
-      name = "_at_resvg_slash_resvg-js-android-arm64";
-      packageName = "@resvg/resvg-js-android-arm64";
-      version = "2.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@resvg/resvg-js-android-arm64/-/resvg-js-android-arm64-2.6.0.tgz";
-        sha512 = "N527f529bjMwYWShZYfBD60dXA4Fux+D695QsHQ93BDYZSHUoOh1CUGUyICevnTxs7VgEl98XpArmUWBZQVMfQ==";
-      };
-    };
-    "@resvg/resvg-js-darwin-arm64-2.6.0" = {
-      name = "_at_resvg_slash_resvg-js-darwin-arm64";
-      packageName = "@resvg/resvg-js-darwin-arm64";
-      version = "2.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@resvg/resvg-js-darwin-arm64/-/resvg-js-darwin-arm64-2.6.0.tgz";
-        sha512 = "MabUKLVayEwlPo0mIqAmMt+qESN8LltCvv5+GLgVga1avpUrkxj/fkU1TKm8kQegutUjbP/B0QuMuUr0uhF8ew==";
-      };
-    };
-    "@resvg/resvg-js-darwin-x64-2.6.0" = {
-      name = "_at_resvg_slash_resvg-js-darwin-x64";
-      packageName = "@resvg/resvg-js-darwin-x64";
-      version = "2.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@resvg/resvg-js-darwin-x64/-/resvg-js-darwin-x64-2.6.0.tgz";
-        sha512 = "zrFetdnSw/suXjmyxSjfDV7i61hahv6DDG6kM7BYN2yJ3Es5+BZtqYZTcIWogPJedYKmzN1YTMWGd/3f0ubFiA==";
-      };
-    };
-    "@resvg/resvg-js-linux-arm-gnueabihf-2.6.0" = {
-      name = "_at_resvg_slash_resvg-js-linux-arm-gnueabihf";
-      packageName = "@resvg/resvg-js-linux-arm-gnueabihf";
-      version = "2.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@resvg/resvg-js-linux-arm-gnueabihf/-/resvg-js-linux-arm-gnueabihf-2.6.0.tgz";
-        sha512 = "sH4gxXt7v7dGwjGyzLwn7SFGvwZG6DQqLaZ11MmzbCwd9Zosy1TnmrMJfn6TJ7RHezmQMgBPi18bl55FZ1AT4A==";
-      };
-    };
-    "@resvg/resvg-js-linux-arm64-gnu-2.6.0" = {
-      name = "_at_resvg_slash_resvg-js-linux-arm64-gnu";
-      packageName = "@resvg/resvg-js-linux-arm64-gnu";
-      version = "2.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@resvg/resvg-js-linux-arm64-gnu/-/resvg-js-linux-arm64-gnu-2.6.0.tgz";
-        sha512 = "fCyMncqCJtrlANADIduYF4IfnWQ295UKib7DAxFXQhBsM9PLDTpizr0qemZcCNadcwSVHnAIzL4tliZhCM8P6A==";
-      };
-    };
-    "@resvg/resvg-js-linux-arm64-musl-2.6.0" = {
-      name = "_at_resvg_slash_resvg-js-linux-arm64-musl";
-      packageName = "@resvg/resvg-js-linux-arm64-musl";
-      version = "2.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@resvg/resvg-js-linux-arm64-musl/-/resvg-js-linux-arm64-musl-2.6.0.tgz";
-        sha512 = "ouLjTgBQHQyxLht4FdMPTvuY8xzJigM9EM2Tlu0llWkN1mKyTQrvYWi6TA6XnKdzDJHy7ZLpWpjZi7F5+Pg+Vg==";
-      };
-    };
-    "@resvg/resvg-js-linux-x64-gnu-2.6.0" = {
-      name = "_at_resvg_slash_resvg-js-linux-x64-gnu";
-      packageName = "@resvg/resvg-js-linux-x64-gnu";
-      version = "2.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@resvg/resvg-js-linux-x64-gnu/-/resvg-js-linux-x64-gnu-2.6.0.tgz";
-        sha512 = "n3zC8DWsvxC1AwxpKFclIPapDFibs5XdIRoV/mcIlxlh0vseW1F49b97F33BtJQRmlntsqqN6GMMqx8byB7B+Q==";
-      };
-    };
-    "@resvg/resvg-js-linux-x64-musl-2.6.0" = {
-      name = "_at_resvg_slash_resvg-js-linux-x64-musl";
-      packageName = "@resvg/resvg-js-linux-x64-musl";
-      version = "2.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@resvg/resvg-js-linux-x64-musl/-/resvg-js-linux-x64-musl-2.6.0.tgz";
-        sha512 = "n4tasK1HOlAxdTEROgYA1aCfsEKk0UOFDNd/AQTTZlTmCbHKXPq+O8npaaKlwXquxlVK8vrkcWbksbiGqbCAcw==";
-      };
-    };
-    "@resvg/resvg-js-win32-arm64-msvc-2.6.0" = {
-      name = "_at_resvg_slash_resvg-js-win32-arm64-msvc";
-      packageName = "@resvg/resvg-js-win32-arm64-msvc";
-      version = "2.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@resvg/resvg-js-win32-arm64-msvc/-/resvg-js-win32-arm64-msvc-2.6.0.tgz";
-        sha512 = "X2+EoBJFwDI5LDVb51Sk7ldnVLitMGr9WwU/i21i3fAeAXZb3hM16k67DeTy16OYkT2dk/RfU1tP1wG+rWbz2Q==";
-      };
-    };
-    "@resvg/resvg-js-win32-ia32-msvc-2.6.0" = {
-      name = "_at_resvg_slash_resvg-js-win32-ia32-msvc";
-      packageName = "@resvg/resvg-js-win32-ia32-msvc";
-      version = "2.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@resvg/resvg-js-win32-ia32-msvc/-/resvg-js-win32-ia32-msvc-2.6.0.tgz";
-        sha512 = "L7oevWjQoUgK5W1fCKn0euSVemhDXVhrjtwqpc7MwBKKimYeiOshO1Li1pa8bBt5PESahenhWgdB6lav9O0fEg==";
-      };
-    };
-    "@resvg/resvg-js-win32-x64-msvc-2.6.0" = {
-      name = "_at_resvg_slash_resvg-js-win32-x64-msvc";
-      packageName = "@resvg/resvg-js-win32-x64-msvc";
-      version = "2.6.0";
+      version = "2.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@resvg/resvg-js-win32-x64-msvc/-/resvg-js-win32-x64-msvc-2.6.0.tgz";
-        sha512 = "8lJlghb+Unki5AyKgsnFbRJwkEj9r1NpwyuBG8yEJiG1W9eEGl03R3I7bsVa3haof/3J1NlWf0rzSa1G++A2iw==";
+        url = "https://registry.npmjs.org/@resvg/resvg-js/-/resvg-js-2.6.2.tgz";
+        sha512 = "xBaJish5OeGmniDj9cW5PRa/PtmuVU3ziqrbr5xJj901ZDN4TosrVaNZpEiLZAxdfnhAe7uQ7QFWfjPe9d9K2Q==";
       };
     };
     "@rollup/pluginutils-4.2.1" = {
@@ -9157,139 +9328,139 @@ let
         sha512 = "iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==";
       };
     };
-    "@rspack/binding-0.5.7" = {
+    "@rspack/binding-0.7.0" = {
       name = "_at_rspack_slash_binding";
       packageName = "@rspack/binding";
-      version = "0.5.7";
+      version = "0.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rspack/binding/-/binding-0.5.7.tgz";
-        sha512 = "47MX6wNF1lP/LdShPVhbg689FX1W96Zji7QgbxhRhXmkpOKor7gdajhxqszFHxHYJtqNTLA9BSG38rpIGxJ+fw==";
+        url = "https://registry.npmjs.org/@rspack/binding/-/binding-0.7.0.tgz";
+        sha512 = "L4bSeF951uJs3e7KakfJJgK0o2TfWsCbaqOQIEa5Aw20olO1I4P7gRK1RZUSlMLXWZ09iF+81Ei7gKQmh1ABLA==";
       };
     };
-    "@rspack/binding-darwin-arm64-0.5.7" = {
+    "@rspack/binding-darwin-arm64-0.7.0" = {
       name = "_at_rspack_slash_binding-darwin-arm64";
       packageName = "@rspack/binding-darwin-arm64";
-      version = "0.5.7";
+      version = "0.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-0.5.7.tgz";
-        sha512 = "zYTMILRyrON25MW7ifEhkZ6jL33mz8bAHTOhgR8yMpYVJjrKu60+s1qPa+t+GkaH7nNnVmzkTVGECCvaA75hJQ==";
+        url = "https://registry.npmjs.org/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-0.7.0.tgz";
+        sha512 = "vh+7sICv2L4hrtRZcoxwdwHRqKPM88PAtq1CcTkACEohOfxnRSJSfSvVYNMbOpqBkSUOQ6v2V9uy2UThtNqvKg==";
       };
     };
-    "@rspack/binding-darwin-x64-0.5.7" = {
+    "@rspack/binding-darwin-x64-0.7.0" = {
       name = "_at_rspack_slash_binding-darwin-x64";
       packageName = "@rspack/binding-darwin-x64";
-      version = "0.5.7";
+      version = "0.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rspack/binding-darwin-x64/-/binding-darwin-x64-0.5.7.tgz";
-        sha512 = "4THSPWVKPMSSD/y3/TWZ5xlSeh1B33I+YnBu/Y3lDFcFrFPtc3ojIDHw3is6l2wcACX6Rro4RgN6zcUij7eEmQ==";
+        url = "https://registry.npmjs.org/@rspack/binding-darwin-x64/-/binding-darwin-x64-0.7.0.tgz";
+        sha512 = "E7cFk/1oMuAqvIsLCAEzI6p+/W3NoZyfSmjQ1s7MV9ylrPtwwzGnMcEbNzcRkemSw1dhxSzlgKT50cl8Pa+mVg==";
       };
     };
-    "@rspack/binding-linux-arm64-gnu-0.5.7" = {
+    "@rspack/binding-linux-arm64-gnu-0.7.0" = {
       name = "_at_rspack_slash_binding-linux-arm64-gnu";
       packageName = "@rspack/binding-linux-arm64-gnu";
-      version = "0.5.7";
+      version = "0.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.5.7.tgz";
-        sha512 = "JB9FAYWjYAeNCPFh0mQu3SZdFHiA+EY37z1AktLDl789SoEec2HPGkvvOs+OIET1pKWgjUGD4Z4Uq4P/r5JFNA==";
+        url = "https://registry.npmjs.org/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.7.0.tgz";
+        sha512 = "jcengiNNBm/5u3gUzVduqMBJ2uzUgUE7e9D4WK/gHXSYkk0m25iLxLhDCSnWQKxAgv8Tu71zkOUsiliZqjqJdA==";
       };
     };
-    "@rspack/binding-linux-arm64-musl-0.5.7" = {
+    "@rspack/binding-linux-arm64-musl-0.7.0" = {
       name = "_at_rspack_slash_binding-linux-arm64-musl";
       packageName = "@rspack/binding-linux-arm64-musl";
-      version = "0.5.7";
+      version = "0.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.5.7.tgz";
-        sha512 = "3fNhPvA9Kj/L7rwr2Pj1bvxWBLBgqfkqSvt91iUxPbxgfTiSBQh0Tfb9+hkHv2VCTyNQI/vytkOH+4i4DNXCBw==";
+        url = "https://registry.npmjs.org/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.7.0.tgz";
+        sha512 = "CHeuGNeztufbHChQ6TyBin4R0iDE0c10J4/7XoX6DiDlDLoFRdB5OF55UeD9g+W/dj1MeZfkW38kezjQdi/vSg==";
       };
     };
-    "@rspack/binding-linux-x64-gnu-0.5.7" = {
+    "@rspack/binding-linux-x64-gnu-0.7.0" = {
       name = "_at_rspack_slash_binding-linux-x64-gnu";
       packageName = "@rspack/binding-linux-x64-gnu";
-      version = "0.5.7";
+      version = "0.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.5.7.tgz";
-        sha512 = "y/GnXt1hhbKSqzBSy+ALWwievlejQhIIF8FPXL1kKFh60zl7DE+iYHSJ128jIJiph9dQkBnHw0ABJ5D+vbSqdA==";
+        url = "https://registry.npmjs.org/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.7.0.tgz";
+        sha512 = "p0fQaiy9Sdyu3GTd8dfvOeAfyM9y08XuRAQdGDy5AcxZvbHZW/h7Jww5bXdbzIf49p8ojEvLG7qfg953a81n4A==";
       };
     };
-    "@rspack/binding-linux-x64-musl-0.5.7" = {
+    "@rspack/binding-linux-x64-musl-0.7.0" = {
       name = "_at_rspack_slash_binding-linux-x64-musl";
       packageName = "@rspack/binding-linux-x64-musl";
-      version = "0.5.7";
+      version = "0.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-0.5.7.tgz";
-        sha512 = "US/FUv6cvbxbe4nymINwer/EQTvGEgCaAIrvKuAP0yAfK0eyqIHYZj/zCBM2qOS69Mpc2FWVMC/ftRyCvAz/xw==";
+        url = "https://registry.npmjs.org/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-0.7.0.tgz";
+        sha512 = "+PwF/Kw40i9+zze/Ys2OhyN2fKcnYGo2V3cp9xTn+8R+CzQhZh9cAU/1DVDJpnTs0p9wKktAp8nIQTcVrWzK7A==";
       };
     };
-    "@rspack/binding-win32-arm64-msvc-0.5.7" = {
+    "@rspack/binding-win32-arm64-msvc-0.7.0" = {
       name = "_at_rspack_slash_binding-win32-arm64-msvc";
       packageName = "@rspack/binding-win32-arm64-msvc";
-      version = "0.5.7";
+      version = "0.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.5.7.tgz";
-        sha512 = "g7NWXa5EGvh6j1VPXGOFaWuOVxdPYYLh3wpUl46Skrd6qFZKB2r+yNhuXo6lqezwYvbtHEDrmFOHF2S6epXO5g==";
+        url = "https://registry.npmjs.org/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.7.0.tgz";
+        sha512 = "OJj6JHAzdvPeKagLnFcHRTd7/ybERTj7hoAWsagdLsYAB8i/hBIah4U92RArYfQJLkvZbqsiimhGTwTZPh0Miw==";
       };
     };
-    "@rspack/binding-win32-ia32-msvc-0.5.7" = {
+    "@rspack/binding-win32-ia32-msvc-0.7.0" = {
       name = "_at_rspack_slash_binding-win32-ia32-msvc";
       packageName = "@rspack/binding-win32-ia32-msvc";
-      version = "0.5.7";
+      version = "0.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.5.7.tgz";
-        sha512 = "5Udt4pYpPSd1wlbVKTdWzjha8oV+FQ/EXILHhoS9G7l9rbpqhMs6oIqAgEavQS3t6fKtQU837b+MSBNprudTtw==";
+        url = "https://registry.npmjs.org/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.7.0.tgz";
+        sha512 = "5WBiRi2rvrBbM5HvIgg4iI2H3S9fz89plczKc676iqwcddUAbYYOhQ311q137KqMo3IZ3LQjVia1wxFaXY9oxw==";
       };
     };
-    "@rspack/binding-win32-x64-msvc-0.5.7" = {
+    "@rspack/binding-win32-x64-msvc-0.7.0" = {
       name = "_at_rspack_slash_binding-win32-x64-msvc";
       packageName = "@rspack/binding-win32-x64-msvc";
-      version = "0.5.7";
+      version = "0.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.5.7.tgz";
-        sha512 = "tB/SB27BBDVV0+GpEUHkl2uanCP4Jk/hlnbvl5u6lSGcIxCFm+da4OsyiGDRE24bSEdMc91dmyWVlx5425je+A==";
+        url = "https://registry.npmjs.org/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.7.0.tgz";
+        sha512 = "4j9DFdfEyptC9vNz4CM6IM4z1EInc2dnB3k+YDRtSZDDlOW7jequvhgv+8nSqabeM1sp/GXWkz/rap6jLJKMpA==";
       };
     };
-    "@rspack/core-0.5.7" = {
+    "@rspack/core-0.7.0" = {
       name = "_at_rspack_slash_core";
       packageName = "@rspack/core";
-      version = "0.5.7";
+      version = "0.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rspack/core/-/core-0.5.7.tgz";
-        sha512 = "gUF0PcanPrC2cVfFA4e+qmG66X7FkEKlRbnaUfB4LKw9JQuwiMOXCAtrBdveDjB89KE/3cw/nuYVQwd106uqWA==";
+        url = "https://registry.npmjs.org/@rspack/core/-/core-0.7.0.tgz";
+        sha512 = "1KsI17Ejx5jGrMO+iApvXLfH2l0KDwXhWsLlbvHQ2/RKAx6qjvw8qoE18etBQYEcgh1bzruuRiNBLkKnk5nf7A==";
       };
     };
-    "@rushstack/heft-config-file-0.14.14" = {
+    "@rushstack/heft-config-file-0.14.25" = {
       name = "_at_rushstack_slash_heft-config-file";
       packageName = "@rushstack/heft-config-file";
-      version = "0.14.14";
+      version = "0.14.25";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/heft-config-file/-/heft-config-file-0.14.14.tgz";
-        sha512 = "3DolQTSw7GTq3GtIPgTAL9bkuNxy2Z3niUN9MAgYxNla0Bi6d2SDRjTnDirLbasRhU8T/9AbGuiLwExiBnQ3sA==";
+        url = "https://registry.npmjs.org/@rushstack/heft-config-file/-/heft-config-file-0.14.25.tgz";
+        sha512 = "b/7w7aRM7bgeVe0tNFwmbf2dF5jbTC3gD8zkakztNMwqt4pjXbU2o/0OpGwVBRFfVhwd8JnQjhYfFM632CdWYA==";
       };
     };
-    "@rushstack/node-core-library-4.0.2" = {
+    "@rushstack/node-core-library-5.4.1" = {
       name = "_at_rushstack_slash_node-core-library";
       packageName = "@rushstack/node-core-library";
-      version = "4.0.2";
+      version = "5.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-4.0.2.tgz";
-        sha512 = "hyES82QVpkfQMeBMteQUnrhASL/KHPhd7iJ8euduwNJG4mu2GSOKybf0rOEjOm1Wz7CwJEUm9y0yD7jg2C1bfg==";
+        url = "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.4.1.tgz";
+        sha512 = "WNnwdS8r9NZ/2K3u29tNoSRldscFa7SxU0RT+82B6Dy2I4Hl2MeCSKm4EXLXPKeNzLGvJ1cqbUhTLviSF8E6iA==";
       };
     };
-    "@rushstack/package-deps-hash-4.1.38" = {
+    "@rushstack/package-deps-hash-4.1.57" = {
       name = "_at_rushstack_slash_package-deps-hash";
       packageName = "@rushstack/package-deps-hash";
-      version = "4.1.38";
+      version = "4.1.57";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/package-deps-hash/-/package-deps-hash-4.1.38.tgz";
-        sha512 = "Fdm6JPUefpxLDP/ky4MakPtnSvm1didSt0UnGvDXaFcMdu/xSu+h6+FjIcqY404JKtte2rnrjtxRiSNyS5hoFA==";
+        url = "https://registry.npmjs.org/@rushstack/package-deps-hash/-/package-deps-hash-4.1.57.tgz";
+        sha512 = "mI0tKuBPiTO2pBzAO+M2aHZVlje0Oz37iEtuycOUMUvsy2igv6T6XWNrRs/kPfQ5lhZ8XGTZOEEZ4Gbb7UESgw==";
       };
     };
-    "@rushstack/package-extractor-0.6.40" = {
+    "@rushstack/package-extractor-0.7.15" = {
       name = "_at_rushstack_slash_package-extractor";
       packageName = "@rushstack/package-extractor";
-      version = "0.6.40";
+      version = "0.7.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/package-extractor/-/package-extractor-0.6.40.tgz";
-        sha512 = "Kx8MH3sGyJZz8Ha6evgy1ymHwMFpY7U/0ttahAf9K45r1HUPL2X86g6UfwBabXV44uAs3I5lgdZCvi+qUEqiWg==";
+        url = "https://registry.npmjs.org/@rushstack/package-extractor/-/package-extractor-0.7.15.tgz";
+        sha512 = "6YIFz5a4c2MuJHHAT9/J4BT1hUJR/6yB/evUPowY/iVV1rmoMKRGXuJmfB8szoEbdR7eJzCm/lPEUi5CFDr7Qg==";
       };
     };
     "@rushstack/rig-package-0.5.2" = {
@@ -9301,67 +9472,67 @@ let
         sha512 = "mUDecIJeH3yYGZs2a48k+pbhM6JYwWlgjs2Ca5f2n1G2/kgdgP9D/07oglEGf6mRyXEnazhEENeYTSNDRCwdqA==";
       };
     };
-    "@rushstack/rush-amazon-s3-build-cache-plugin-5.117.9" = {
+    "@rushstack/rush-amazon-s3-build-cache-plugin-5.127.0" = {
       name = "_at_rushstack_slash_rush-amazon-s3-build-cache-plugin";
       packageName = "@rushstack/rush-amazon-s3-build-cache-plugin";
-      version = "5.117.9";
+      version = "5.127.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/rush-amazon-s3-build-cache-plugin/-/rush-amazon-s3-build-cache-plugin-5.117.9.tgz";
-        sha512 = "1VUCZ0bWQEpKM7hGWnysrohqgOdCqfKtKJ3C6xCtDy9fxQfOm4XKU8eT0+jSH8HbgwgxrWWlAMkDVJTSUIARtA==";
+        url = "https://registry.npmjs.org/@rushstack/rush-amazon-s3-build-cache-plugin/-/rush-amazon-s3-build-cache-plugin-5.127.0.tgz";
+        sha512 = "L655r9l1wbDPlVHD7c4akktpMrzmBqmPkO7wIfghcu7E3tiqjEWnghhI8WUeHNHxIuXba2m9z27Q0YdiIwen2w==";
       };
     };
-    "@rushstack/rush-azure-storage-build-cache-plugin-5.117.9" = {
+    "@rushstack/rush-azure-storage-build-cache-plugin-5.127.0" = {
       name = "_at_rushstack_slash_rush-azure-storage-build-cache-plugin";
       packageName = "@rushstack/rush-azure-storage-build-cache-plugin";
-      version = "5.117.9";
+      version = "5.127.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/rush-azure-storage-build-cache-plugin/-/rush-azure-storage-build-cache-plugin-5.117.9.tgz";
-        sha512 = "MNbNu81mElwqRzEFz08tNAYAjOI0bynsum5CsK5fakzWNbXlvFnHGKO/AzLvzUwYJO+96Awq37K4WPHPfUGHsA==";
+        url = "https://registry.npmjs.org/@rushstack/rush-azure-storage-build-cache-plugin/-/rush-azure-storage-build-cache-plugin-5.127.0.tgz";
+        sha512 = "O25kE8cP/Fvb6YWx1tDXQMnFA3L62m70J4pj/r2/QI0z+LvirQBKim+M+qLmdEQoK8LqBXL6lXiLLmdvsBVwhw==";
       };
     };
-    "@rushstack/rush-http-build-cache-plugin-5.117.9" = {
+    "@rushstack/rush-http-build-cache-plugin-5.127.0" = {
       name = "_at_rushstack_slash_rush-http-build-cache-plugin";
       packageName = "@rushstack/rush-http-build-cache-plugin";
-      version = "5.117.9";
+      version = "5.127.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/rush-http-build-cache-plugin/-/rush-http-build-cache-plugin-5.117.9.tgz";
-        sha512 = "Bv1rM6dqE+HkXBm4BlwIKIOkPD1yg3qce4pqszDwmadTCS1ZY0KM3eEKkOeSuclNibl4PUxhvRy8WLnTNwRHYw==";
+        url = "https://registry.npmjs.org/@rushstack/rush-http-build-cache-plugin/-/rush-http-build-cache-plugin-5.127.0.tgz";
+        sha512 = "4Da2EGR2ddc4Xzh+h01aD0uenRJaRQSc1MzNBiXzbVJuORwaW1emXR71K0E+p/I2ZUWznE1w297GyS82lmXOag==";
       };
     };
-    "@rushstack/rush-sdk-5.117.9" = {
+    "@rushstack/rush-sdk-5.127.0" = {
       name = "_at_rushstack_slash_rush-sdk";
       packageName = "@rushstack/rush-sdk";
-      version = "5.117.9";
+      version = "5.127.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/rush-sdk/-/rush-sdk-5.117.9.tgz";
-        sha512 = "8JjYIdUUPf57YtydlnedzEIa6+2l3nEI62VY7AyXxp3sG1yVzYUDafCOndISOCaA4HJD+sM482OS3DzEOLUPZg==";
+        url = "https://registry.npmjs.org/@rushstack/rush-sdk/-/rush-sdk-5.127.0.tgz";
+        sha512 = "JFr0AS78MRkwCeNo09o7yKGO8t4WdtS3i9xZkYo0RBaOjy8LVuCEZcvyB4kgbBe9XidN5modH8Z1kX+fLWrvsg==";
       };
     };
-    "@rushstack/stream-collator-4.1.38" = {
+    "@rushstack/stream-collator-4.1.56" = {
       name = "_at_rushstack_slash_stream-collator";
       packageName = "@rushstack/stream-collator";
-      version = "4.1.38";
+      version = "4.1.56";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/stream-collator/-/stream-collator-4.1.38.tgz";
-        sha512 = "SbncDR+7eSU+lWwH+4TMnXNYUlcqmF1o9bFYKRb0f0R6Q3mr/TMWMlr5+qzfU9ilDorE0H4tD7tTB6olYv/FfQ==";
+        url = "https://registry.npmjs.org/@rushstack/stream-collator/-/stream-collator-4.1.56.tgz";
+        sha512 = "INfovUzy7sJg0fdZP/zQknnGdiPf4yb6pbnMLvHYARdXJLSZDcU9sjCpLg3DxYDx0K5PnHAnRSvgATJWbbpMww==";
       };
     };
-    "@rushstack/terminal-0.10.0" = {
+    "@rushstack/terminal-0.13.0" = {
       name = "_at_rushstack_slash_terminal";
       packageName = "@rushstack/terminal";
-      version = "0.10.0";
+      version = "0.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.10.0.tgz";
-        sha512 = "UbELbXnUdc7EKwfH2sb8ChqNgapUOdqcCIdQP4NGxBpTZV2sQyeekuK3zmfQSa/MN+/7b4kBogl2wq0vpkpYGw==";
+        url = "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.13.0.tgz";
+        sha512 = "Ou44Q2s81BqJu3dpYedAX54am9vn245F0HzqVrfJCMQk5pGgoKKOBOjkbfZC9QKcGNaECh6pwH2s5noJt7X6ew==";
       };
     };
-    "@rushstack/ts-command-line-4.19.1" = {
+    "@rushstack/ts-command-line-4.22.0" = {
       name = "_at_rushstack_slash_ts-command-line";
       packageName = "@rushstack/ts-command-line";
-      version = "4.19.1";
+      version = "4.22.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.19.1.tgz";
-        sha512 = "J7H768dgcpG60d7skZ5uSSwyCZs/S2HrWP1Ds8d1qYAyaaeJmpmmLr9BVw97RjFzmQPOYnoXcKA4GkqDCkduQg==";
+        url = "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.22.0.tgz";
+        sha512 = "Qj28t6MO3HRgAZ72FDeFsrpdE6wBWxF3VENgvrXh7JF2qIT+CrXiOJIesW80VFZB9QwObSpkB1ilx794fGQg6g==";
       };
     };
     "@samverschueren/stream-to-observable-0.3.1" = {
@@ -9373,22 +9544,22 @@ let
         sha512 = "c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==";
       };
     };
-    "@schematics/angular-17.3.0" = {
+    "@schematics/angular-18.0.2" = {
       name = "_at_schematics_slash_angular";
       packageName = "@schematics/angular";
-      version = "17.3.0";
+      version = "18.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/angular/-/angular-17.3.0.tgz";
-        sha512 = "QqugP4Uyxk966VaUb/Jk5LQ5rE1BV4v2TmniPZtN3GZ6MDkpvPnFvlysvoq6y+7uiRhCLiT1DsBIwc9vXz3vWA==";
+        url = "https://registry.npmjs.org/@schematics/angular/-/angular-18.0.2.tgz";
+        sha512 = "qkJs1oxHtneJ6QxDKpxNyneXGDM9SKVj+Bgi8xUAU3FEzpsYmE/aW3MfwYHOZl0pDBO8c2raqLvlyl3dGP6/Gg==";
       };
     };
-    "@scure/base-1.1.5" = {
+    "@scure/base-1.1.6" = {
       name = "_at_scure_slash_base";
       packageName = "@scure/base";
-      version = "1.1.5";
+      version = "1.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@scure/base/-/base-1.1.5.tgz";
-        sha512 = "Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==";
+        url = "https://registry.npmjs.org/@scure/base/-/base-1.1.6.tgz";
+        sha512 = "ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==";
       };
     };
     "@scure/bip32-1.3.3" = {
@@ -9436,112 +9607,94 @@ let
         sha512 = "P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==";
       };
     };
-    "@sentry-internal/tracing-7.104.0" = {
+    "@sentry-internal/tracing-7.109.0" = {
       name = "_at_sentry-internal_slash_tracing";
       packageName = "@sentry-internal/tracing";
-      version = "7.104.0";
+      version = "7.109.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.104.0.tgz";
-        sha512 = "2z7OijM1J5ndJUiJJElC3iH9qb/Eb8eYm2v8oJhM8WVdc5uCKfrQuYHNgGOnmY2FOCfEUlTmMQGpDw7DJ67L5w==";
+        url = "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.109.0.tgz";
+        sha512 = "PzK/joC5tCuh2R/PRh+7dp+uuZl7pTsBIjPhVZHMTtb9+ls65WkdZJ1/uKXPouyz8NOo9Xok7aEvEo9seongyw==";
       };
     };
-    "@sentry-internal/tracing-7.107.0" = {
+    "@sentry-internal/tracing-7.110.0" = {
       name = "_at_sentry-internal_slash_tracing";
       packageName = "@sentry-internal/tracing";
-      version = "7.107.0";
+      version = "7.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.107.0.tgz";
-        sha512 = "le9wM8+OHBbq7m/8P7JUJ1UhSPIty+Z/HmRXc5Z64ODZcOwFV6TmDpYx729IXDdz36XUKmeI+BeM7yQdTTZPfQ==";
+        url = "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.110.0.tgz";
+        sha512 = "IIHHa9e/mE7uOMJfNELI8adyoELxOy6u6TNCn5t6fphmq84w8FTc9adXkG/FY2AQpglkIvlILojfMROFB2aaAQ==";
       };
     };
-    "@sentry/core-7.104.0" = {
+    "@sentry/core-7.109.0" = {
       name = "_at_sentry_slash_core";
       packageName = "@sentry/core";
-      version = "7.104.0";
+      version = "7.109.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry/core/-/core-7.104.0.tgz";
-        sha512 = "XPndD6IGQGd07/EntvYVzOWQUo/Gd7L3DwYFeEKeBv6ByWjbBNmVZFRhU0GPPsCHKyW9yMU9OO9diLSS4ijsRg==";
+        url = "https://registry.npmjs.org/@sentry/core/-/core-7.109.0.tgz";
+        sha512 = "xwD4U0IlvvlE/x/g/W1I8b4Cfb16SsCMmiEuBf6XxvAa3OfWBxKoqLifb3GyrbxMC4LbIIZCN/SvLlnGJPgszA==";
       };
     };
-    "@sentry/core-7.107.0" = {
+    "@sentry/core-7.110.0" = {
       name = "_at_sentry_slash_core";
       packageName = "@sentry/core";
-      version = "7.107.0";
+      version = "7.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry/core/-/core-7.107.0.tgz";
-        sha512 = "C7ogye6+KPyBi8NVL0P8Rxx3Ur7Td8ufnjxosVy678lqY+dcYPk/HONROrzUFYW5fMKWL4/KYnwP+x9uHnkDmw==";
+        url = "https://registry.npmjs.org/@sentry/core/-/core-7.110.0.tgz";
+        sha512 = "g4suCQO94mZsKVaAbyD1zLFC5YSuBQCIPHXx9fdgtfoPib7BWjWWePkllkrvsKAv4u8Oq05RfnKOhOMRHpOKqg==";
       };
     };
-    "@sentry/node-7.104.0" = {
+    "@sentry/node-7.109.0" = {
       name = "_at_sentry_slash_node";
       packageName = "@sentry/node";
-      version = "7.104.0";
+      version = "7.109.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry/node/-/node-7.104.0.tgz";
-        sha512 = "Ixt8qg6IV8gywi4+H1cAtQeglAAww2nwLHybCxAvnu3czdF8w7ifF+o5BY1FmO5UYVCAfr8vEb+XG4CuRrFb7g==";
+        url = "https://registry.npmjs.org/@sentry/node/-/node-7.109.0.tgz";
+        sha512 = "tqMNAES4X/iBl1eZRCmc29p//0id01FBLEiesNo5nk6ECl6/SaGMFAEwu1gsn90h/Bjgr04slwFOS4cR45V2PQ==";
       };
     };
-    "@sentry/node-7.107.0" = {
+    "@sentry/node-7.110.0" = {
       name = "_at_sentry_slash_node";
       packageName = "@sentry/node";
-      version = "7.107.0";
+      version = "7.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry/node/-/node-7.107.0.tgz";
-        sha512 = "UZXkG7uThT2YyPW8AOSKRXp1LbVcBHufa4r1XAwBukA2FKO6HHJPjMUgY6DYVQ6k+BmA56CNfVjYrdLbyjBYYA==";
+        url = "https://registry.npmjs.org/@sentry/node/-/node-7.110.0.tgz";
+        sha512 = "YPfweCSzo/omnx5q1xOEZfI8Em3jnPqj7OM4ObXmoSKEK+kM1oUF3BTRzw5BJOaOCSTBFY1RAsGyfVIyrwxWnA==";
       };
     };
-    "@sentry/types-7.104.0" = {
+    "@sentry/types-7.109.0" = {
       name = "_at_sentry_slash_types";
       packageName = "@sentry/types";
-      version = "7.104.0";
+      version = "7.109.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry/types/-/types-7.104.0.tgz";
-        sha512 = "5bs0xe0+GZR4QBm9Nrqw59o0sv3kBtCosrZDVxBru/dQbrfnB+/kVorvuM0rV3+coNITTKcKDegSZmK1d2uOGQ==";
+        url = "https://registry.npmjs.org/@sentry/types/-/types-7.109.0.tgz";
+        sha512 = "egCBnDv3YpVFoNzRLdP0soVrxVLCQ+rovREKJ1sw3rA2/MFH9WJ+DZZexsX89yeAFzy1IFsCp7/dEqudusml6g==";
       };
     };
-    "@sentry/types-7.107.0" = {
+    "@sentry/types-7.110.0" = {
       name = "_at_sentry_slash_types";
       packageName = "@sentry/types";
-      version = "7.107.0";
+      version = "7.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry/types/-/types-7.107.0.tgz";
-        sha512 = "H7qcPjPSUWHE/Zf5bR1EE24G0pGVuJgrSx8Tvvl5nKEepswMYlbXHRVSDN0gTk/E5Z7cqf+hUBOpkQgZyps77w==";
+        url = "https://registry.npmjs.org/@sentry/types/-/types-7.110.0.tgz";
+        sha512 = "DqYBLyE8thC5P5MuPn+sj8tL60nCd/f5cerFFPcudn5nJ4Zs1eI6lKlwwyHYTEu5c4KFjCB0qql6kXfwAHmTyA==";
       };
     };
-    "@sentry/utils-7.104.0" = {
+    "@sentry/utils-7.109.0" = {
       name = "_at_sentry_slash_utils";
       packageName = "@sentry/utils";
-      version = "7.104.0";
+      version = "7.109.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry/utils/-/utils-7.104.0.tgz";
-        sha512 = "ZVg+xZirI9DlOi0NegNVocswdh/8p6QkzlQzDQY2LP2CC6JQdmwi64o0S4rPH4YIHNKQJTpIjduoxeKgd1EO5g==";
+        url = "https://registry.npmjs.org/@sentry/utils/-/utils-7.109.0.tgz";
+        sha512 = "3RjxMOLMBwZ5VSiH84+o/3NY2An4Zldjz0EbfEQNRY9yffRiCPJSQiCJID8EoylCFOh/PAhPimBhqbtWJxX6iw==";
       };
     };
-    "@sentry/utils-7.107.0" = {
+    "@sentry/utils-7.110.0" = {
       name = "_at_sentry_slash_utils";
       packageName = "@sentry/utils";
-      version = "7.107.0";
+      version = "7.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry/utils/-/utils-7.107.0.tgz";
-        sha512 = "C6PbN5gHh73MRHohnReeQ60N8rrLYa9LciHue3Ru2290eSThg4CzsPnx4SzkGpkSeVlhhptKtKZ+hp/ha3iVuw==";
-      };
-    };
-    "@shopify/cli-kit-3.57.1" = {
-      name = "_at_shopify_slash_cli-kit";
-      packageName = "@shopify/cli-kit";
-      version = "3.57.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@shopify/cli-kit/-/cli-kit-3.57.1.tgz";
-        sha512 = "DppI6F/q/QNzt+9SUZsumEnLLPs/IYZlDZJPomlgwN3h0i5qjGcGUihURhLPl8l1oUquwwGL4X9CLgoRVX4Nww==";
-      };
-    };
-    "@shopify/plugin-did-you-mean-3.57.1" = {
-      name = "_at_shopify_slash_plugin-did-you-mean";
-      packageName = "@shopify/plugin-did-you-mean";
-      version = "3.57.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@shopify/plugin-did-you-mean/-/plugin-did-you-mean-3.57.1.tgz";
-        sha512 = "4CA6qf+Rvf6rZrtqia+oCEC6oPs+NW+12IRvXzzrvmF/O9OTsQFlsOthhGuIT/BmnWUt2fDTl3d3bjNInQpWXw==";
+        url = "https://registry.npmjs.org/@sentry/utils/-/utils-7.110.0.tgz";
+        sha512 = "VBsdLLN+5tf73fhf/Cm7JIsUJ6y9DkJj8h4I6Mxx0rszrvOyH6S5px40K+V4jdLBzMEvVinC7q2Cbf1YM18BSw==";
       };
     };
     "@sideway/address-4.1.5" = {
@@ -9580,22 +9733,22 @@ let
         sha512 = "PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==";
       };
     };
-    "@sigstore/bundle-2.2.0" = {
+    "@sigstore/bundle-2.3.2" = {
       name = "_at_sigstore_slash_bundle";
       packageName = "@sigstore/bundle";
-      version = "2.2.0";
+      version = "2.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.2.0.tgz";
-        sha512 = "5VI58qgNs76RDrwXNhpmyN/jKpq9evV/7f1XrcqcAfvxDl5SeVY/I5Rmfe96ULAV7/FK5dge9RBKGBJPhL1WsQ==";
+        url = "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz";
+        sha512 = "wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==";
       };
     };
-    "@sigstore/core-1.0.0" = {
+    "@sigstore/core-1.1.0" = {
       name = "_at_sigstore_slash_core";
       packageName = "@sigstore/core";
-      version = "1.0.0";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sigstore/core/-/core-1.0.0.tgz";
-        sha512 = "dW2qjbWLRKGu6MIDUTBuJwXCnR8zivcSpf5inUzk7y84zqy/dji0/uahppoIgMoKeR+6pUZucrwHfkQQtiG9Rw==";
+        url = "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz";
+        sha512 = "JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==";
       };
     };
     "@sigstore/protobuf-specs-0.2.1" = {
@@ -9607,13 +9760,13 @@ let
         sha512 = "XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==";
       };
     };
-    "@sigstore/protobuf-specs-0.3.0" = {
+    "@sigstore/protobuf-specs-0.3.2" = {
       name = "_at_sigstore_slash_protobuf-specs";
       packageName = "@sigstore/protobuf-specs";
-      version = "0.3.0";
+      version = "0.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.0.tgz";
-        sha512 = "zxiQ66JFOjVvP9hbhGj/F/qNdsZfkGb/dVXSanNRNuAzMlr4MC95voPUBX8//ZNnmv3uSYzdfR/JSkrgvZTGxA==";
+        url = "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz";
+        sha512 = "c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==";
       };
     };
     "@sigstore/sign-1.0.0" = {
@@ -9625,13 +9778,13 @@ let
         sha512 = "INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==";
       };
     };
-    "@sigstore/sign-2.2.3" = {
+    "@sigstore/sign-2.3.2" = {
       name = "_at_sigstore_slash_sign";
       packageName = "@sigstore/sign";
-      version = "2.2.3";
+      version = "2.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.3.tgz";
-        sha512 = "LqlA+ffyN02yC7RKszCdMTS6bldZnIodiox+IkT8B2f8oRYXCB3LQ9roXeiEL21m64CVH1wyveYAORfD65WoSw==";
+        url = "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz";
+        sha512 = "5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==";
       };
     };
     "@sigstore/tuf-1.0.3" = {
@@ -9643,22 +9796,31 @@ let
         sha512 = "2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==";
       };
     };
-    "@sigstore/tuf-2.3.1" = {
+    "@sigstore/tuf-2.3.4" = {
       name = "_at_sigstore_slash_tuf";
       packageName = "@sigstore/tuf";
-      version = "2.3.1";
+      version = "2.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.1.tgz";
-        sha512 = "9Iv40z652td/QbV0o5n/x25H9w6IYRt2pIGbTX55yFDYlApDQn/6YZomjz6+KBx69rXHLzHcbtTS586mDdFD+Q==";
+        url = "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz";
+        sha512 = "44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==";
       };
     };
-    "@sigstore/verify-1.1.0" = {
+    "@sigstore/verify-1.2.1" = {
       name = "_at_sigstore_slash_verify";
       packageName = "@sigstore/verify";
-      version = "1.1.0";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.1.tgz";
+        sha512 = "8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==";
+      };
+    };
+    "@silentbot1/nat-api-0.4.7" = {
+      name = "_at_silentbot1_slash_nat-api";
+      packageName = "@silentbot1/nat-api";
+      version = "0.4.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sigstore/verify/-/verify-1.1.0.tgz";
-        sha512 = "1fTqnqyTBWvV7cftUUFtDcHPdSox0N3Ub7C0lRyReYx4zZUlNTZjCV+HPy4Lre+r45dV7Qx5JLKvqqsgxuyYfg==";
+        url = "https://registry.npmjs.org/@silentbot1/nat-api/-/nat-api-0.4.7.tgz";
+        sha512 = "6aKXUf4AY6ETBdwjswQOekY6HGj3eZTAUhJx1oYicBqpMJcsphIydEQKp/Hooz6Y070MOI6tD/oT1MgS7bP3Vg==";
       };
     };
     "@sinclair/typebox-0.25.24" = {
@@ -9760,463 +9922,463 @@ let
         sha512 = "LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==";
       };
     };
-    "@smithy/abort-controller-2.2.0" = {
+    "@smithy/abort-controller-3.0.0" = {
       name = "_at_smithy_slash_abort-controller";
       packageName = "@smithy/abort-controller";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.2.0.tgz";
-        sha512 = "wRlta7GuLWpTqtFfGo+nZyOO1vEvewdNR1R4rTxpC8XU6vG/NDyrFBhwLZsqg1NUoR1noVaXJPC/7ZK47QCySw==";
+        url = "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.0.0.tgz";
+        sha512 = "p6GlFGBt9K4MYLu72YuJ523NVR4A8oHlC5M2JO6OmQqN8kAc/uh1JqLE+FizTokrSJGg0CSvC+BrsmGzKtsZKA==";
       };
     };
-    "@smithy/chunked-blob-reader-2.2.0" = {
+    "@smithy/chunked-blob-reader-3.0.0" = {
       name = "_at_smithy_slash_chunked-blob-reader";
       packageName = "@smithy/chunked-blob-reader";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-2.2.0.tgz";
-        sha512 = "3GJNvRwXBGdkDZZOGiziVYzDpn4j6zfyULHMDKAGIUo72yHALpE9CbhfQp/XcLNVoc1byfMpn6uW5H2BqPjgaQ==";
+        url = "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-3.0.0.tgz";
+        sha512 = "sbnURCwjF0gSToGlsBiAmd1lRCmSn72nu9axfJu5lIx6RUEgHu6GwTMbqCdhQSi0Pumcm5vFxsi9XWXb2mTaoA==";
       };
     };
-    "@smithy/chunked-blob-reader-native-2.2.0" = {
+    "@smithy/chunked-blob-reader-native-3.0.0" = {
       name = "_at_smithy_slash_chunked-blob-reader-native";
       packageName = "@smithy/chunked-blob-reader-native";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-2.2.0.tgz";
-        sha512 = "VNB5+1oCgX3Fzs072yuRsUoC2N4Zg/LJ11DTxX3+Qu+Paa6AmbIF0E9sc2wthz9Psrk/zcOlTCyuposlIhPjZQ==";
+        url = "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-3.0.0.tgz";
+        sha512 = "VDkpCYW+peSuM4zJip5WDfqvg2Mo/e8yxOv3VF1m11y7B8KKMKVFtmZWDe36Fvk8rGuWrPZHHXZ7rR7uM5yWyg==";
       };
     };
-    "@smithy/config-resolver-2.2.0" = {
+    "@smithy/config-resolver-3.0.1" = {
       name = "_at_smithy_slash_config-resolver";
       packageName = "@smithy/config-resolver";
-      version = "2.2.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.2.0.tgz";
-        sha512 = "fsiMgd8toyUba6n1WRmr+qACzXltpdDkPTAaDqc8QqPBUzO+/JKwL6bUBseHVi8tu9l+3JOK+tSf7cay+4B3LA==";
+        url = "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.1.tgz";
+        sha512 = "hbkYJc20SBDz2qqLzttjI/EqXemtmWk0ooRznLsiXp3066KQRTvuKHa7U4jCZCJq6Dozqvy0R1/vNESC9inPJg==";
       };
     };
-    "@smithy/core-1.4.0" = {
+    "@smithy/core-2.1.1" = {
       name = "_at_smithy_slash_core";
       packageName = "@smithy/core";
-      version = "1.4.0";
+      version = "2.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/core/-/core-1.4.0.tgz";
-        sha512 = "uu9ZDI95Uij4qk+L6kyFjdk11zqBkcJ3Lv0sc6jZrqHvLyr0+oeekD3CnqMafBn/5PRI6uv6ulW3kNLRBUHeVw==";
+        url = "https://registry.npmjs.org/@smithy/core/-/core-2.1.1.tgz";
+        sha512 = "0vbIwwUcg0FMhTVJgMhbsRSAFL0rwduy/OQz7Xq1pJXJOyaGv+PGjj1iGawRlzBUPA5BkJv7S6q+YU2U8gk/WA==";
       };
     };
-    "@smithy/credential-provider-imds-2.3.0" = {
+    "@smithy/credential-provider-imds-3.1.0" = {
       name = "_at_smithy_slash_credential-provider-imds";
       packageName = "@smithy/credential-provider-imds";
-      version = "2.3.0";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.3.0.tgz";
-        sha512 = "BWB9mIukO1wjEOo1Ojgl6LrG4avcaC7T/ZP6ptmAaW4xluhSIPZhY+/PI5YKzlk+jsm+4sQZB45Bt1OfMeQa3w==";
+        url = "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.1.0.tgz";
+        sha512 = "q4A4d38v8pYYmseu/jTS3Z5I3zXlEOe5Obi+EJreVKgSVyWUHOd7/yaVCinC60QG4MRyCs98tcxBH1IMC0bu7Q==";
       };
     };
-    "@smithy/eventstream-codec-2.2.0" = {
+    "@smithy/eventstream-codec-3.0.0" = {
       name = "_at_smithy_slash_eventstream-codec";
       packageName = "@smithy/eventstream-codec";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-2.2.0.tgz";
-        sha512 = "8janZoJw85nJmQZc4L8TuePp2pk1nxLgkxIR0TUjKJ5Dkj5oelB9WtiSSGXCQvNsJl0VSTvK/2ueMXxvpa9GVw==";
+        url = "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-3.0.0.tgz";
+        sha512 = "PUtyEA0Oik50SaEFCZ0WPVtF9tz/teze2fDptW6WRXl+RrEenH8UbEjudOz8iakiMl3lE3lCVqYf2Y+znL8QFQ==";
       };
     };
-    "@smithy/eventstream-serde-browser-2.2.0" = {
+    "@smithy/eventstream-serde-browser-3.0.0" = {
       name = "_at_smithy_slash_eventstream-serde-browser";
       packageName = "@smithy/eventstream-serde-browser";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.2.0.tgz";
-        sha512 = "UaPf8jKbcP71BGiO0CdeLmlg+RhWnlN8ipsMSdwvqBFigl5nil3rHOI/5GE3tfiuX8LvY5Z9N0meuU7Rab7jWw==";
+        url = "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.0.tgz";
+        sha512 = "NB7AFiPN4NxP/YCAnrvYR18z2/ZsiHiF7VtG30gshO9GbFrIb1rC8ep4NGpJSWrz6P64uhPXeo4M0UsCLnZKqw==";
       };
     };
-    "@smithy/eventstream-serde-config-resolver-2.2.0" = {
+    "@smithy/eventstream-serde-config-resolver-3.0.0" = {
       name = "_at_smithy_slash_eventstream-serde-config-resolver";
       packageName = "@smithy/eventstream-serde-config-resolver";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.2.0.tgz";
-        sha512 = "RHhbTw/JW3+r8QQH7PrganjNCiuiEZmpi6fYUAetFfPLfZ6EkiA08uN3EFfcyKubXQxOwTeJRZSQmDDCdUshaA==";
+        url = "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.0.tgz";
+        sha512 = "RUQG3vQ3LX7peqqHAbmayhgrF5aTilPnazinaSGF1P0+tgM3vvIRWPHmlLIz2qFqB9LqFIxditxc8O2Z6psrRw==";
       };
     };
-    "@smithy/eventstream-serde-node-2.2.0" = {
+    "@smithy/eventstream-serde-node-3.0.0" = {
       name = "_at_smithy_slash_eventstream-serde-node";
       packageName = "@smithy/eventstream-serde-node";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.2.0.tgz";
-        sha512 = "zpQMtJVqCUMn+pCSFcl9K/RPNtQE0NuMh8sKpCdEHafhwRsjP50Oq/4kMmvxSRy6d8Jslqd8BLvDngrUtmN9iA==";
+        url = "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.0.tgz";
+        sha512 = "baRPdMBDMBExZXIUAoPGm/hntixjt/VFpU6+VmCyiYJYzRHRxoaI1MN+5XE+hIS8AJ2GCHLMFEIOLzq9xx1EgQ==";
       };
     };
-    "@smithy/eventstream-serde-universal-2.2.0" = {
+    "@smithy/eventstream-serde-universal-3.0.0" = {
       name = "_at_smithy_slash_eventstream-serde-universal";
       packageName = "@smithy/eventstream-serde-universal";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.2.0.tgz";
-        sha512 = "pvoe/vvJY0mOpuF84BEtyZoYfbehiFj8KKWk1ds2AT0mTLYFVs+7sBJZmioOFdBXKd48lfrx1vumdPdmGlCLxA==";
+        url = "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.0.tgz";
+        sha512 = "HNFfShmotWGeAoW4ujP8meV9BZavcpmerDbPIjkJbxKbN8RsUcpRQ/2OyIxWNxXNH2GWCAxuSB7ynmIGJlQ3Dw==";
       };
     };
-    "@smithy/fetch-http-handler-2.5.0" = {
+    "@smithy/fetch-http-handler-3.0.1" = {
       name = "_at_smithy_slash_fetch-http-handler";
       packageName = "@smithy/fetch-http-handler";
-      version = "2.5.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.5.0.tgz";
-        sha512 = "BOWEBeppWhLn/no/JxUL/ghTfANTjT7kg3Ww2rPqTUY9R4yHPXxJ9JhMe3Z03LN3aPwiwlpDIUcVw1xDyHqEhw==";
+        url = "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-3.0.1.tgz";
+        sha512 = "uaH74i5BDj+rBwoQaXioKpI0SHBJFtOVwzrCpxZxphOW0ki5jhj7dXvDMYM2IJem8TpdFvS2iC08sjOblfFGFg==";
       };
     };
-    "@smithy/hash-blob-browser-2.2.0" = {
+    "@smithy/hash-blob-browser-3.0.0" = {
       name = "_at_smithy_slash_hash-blob-browser";
       packageName = "@smithy/hash-blob-browser";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-2.2.0.tgz";
-        sha512 = "SGPoVH8mdXBqrkVCJ1Hd1X7vh1zDXojNN1yZyZTZsCno99hVue9+IYzWDjq/EQDDXxmITB0gBmuyPh8oAZSTcg==";
+        url = "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-3.0.0.tgz";
+        sha512 = "/Wbpdg+bwJvW7lxR/zpWAc1/x/YkcqguuF2bAzkJrvXriZu1vm8r+PUdE4syiVwQg7PPR2dXpi3CLBb9qRDaVQ==";
       };
     };
-    "@smithy/hash-node-2.2.0" = {
+    "@smithy/hash-node-3.0.0" = {
       name = "_at_smithy_slash_hash-node";
       packageName = "@smithy/hash-node";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.2.0.tgz";
-        sha512 = "zLWaC/5aWpMrHKpoDF6nqpNtBhlAYKF/7+9yMN7GpdR8CzohnWfGtMznPybnwSS8saaXBMxIGwJqR4HmRp6b3g==";
+        url = "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-3.0.0.tgz";
+        sha512 = "84qXstNemP3XS5jcof0el6+bDfjzuvhJPQTEfro3lgtbCtKgzPm3MgiS6ehXVPjeQ5+JS0HqmTz8f/RYfzHVxw==";
       };
     };
-    "@smithy/hash-stream-node-2.2.0" = {
+    "@smithy/hash-stream-node-3.0.0" = {
       name = "_at_smithy_slash_hash-stream-node";
       packageName = "@smithy/hash-stream-node";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-2.2.0.tgz";
-        sha512 = "aT+HCATOSRMGpPI7bi7NSsTNVZE/La9IaxLXWoVAYMxHT5hGO3ZOGEMZQg8A6nNL+pdFGtZQtND1eoY084HgHQ==";
+        url = "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-3.0.0.tgz";
+        sha512 = "J0i7de+EgXDEGITD4fxzmMX8CyCNETTIRXlxjMiNUvvu76Xn3GJ31wQR85ynlPk2wI1lqoknAFJaD1fiNDlbIA==";
       };
     };
-    "@smithy/invalid-dependency-2.2.0" = {
+    "@smithy/invalid-dependency-3.0.0" = {
       name = "_at_smithy_slash_invalid-dependency";
       packageName = "@smithy/invalid-dependency";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.2.0.tgz";
-        sha512 = "nEDASdbKFKPXN2O6lOlTgrEEOO9NHIeO+HVvZnkqc8h5U9g3BIhWsvzFo+UcUbliMHvKNPD/zVxDrkP1Sbgp8Q==";
+        url = "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-3.0.0.tgz";
+        sha512 = "F6wBBaEFgJzj0s4KUlliIGPmqXemwP6EavgvDqYwCH40O5Xr2iMHvS8todmGVZtuJCorBkXsYLyTu4PuizVq5g==";
       };
     };
-    "@smithy/is-array-buffer-2.2.0" = {
+    "@smithy/is-array-buffer-3.0.0" = {
       name = "_at_smithy_slash_is-array-buffer";
       packageName = "@smithy/is-array-buffer";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz";
-        sha512 = "GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==";
+        url = "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-3.0.0.tgz";
+        sha512 = "+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==";
       };
     };
-    "@smithy/md5-js-2.2.0" = {
+    "@smithy/md5-js-3.0.0" = {
       name = "_at_smithy_slash_md5-js";
       packageName = "@smithy/md5-js";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-2.2.0.tgz";
-        sha512 = "M26XTtt9IIusVMOWEAhIvFIr9jYj4ISPPGJROqw6vXngO3IYJCnVVSMFn4Tx1rUTG5BiKJNg9u2nxmBiZC5IlQ==";
+        url = "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-3.0.0.tgz";
+        sha512 = "Tm0vrrVzjlD+6RCQTx7D3Ls58S3FUH1ZCtU1MIh/qQmaOo1H9lMN2as6CikcEwgattnA9SURSdoJJ27xMcEfMA==";
       };
     };
-    "@smithy/middleware-content-length-2.2.0" = {
+    "@smithy/middleware-content-length-3.0.0" = {
       name = "_at_smithy_slash_middleware-content-length";
       packageName = "@smithy/middleware-content-length";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.2.0.tgz";
-        sha512 = "5bl2LG1Ah/7E5cMSC+q+h3IpVHMeOkG0yLRyQT1p2aMJkSrZG7RlXHPuAgb7EyaFeidKEnnd/fNaLLaKlHGzDQ==";
+        url = "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-3.0.0.tgz";
+        sha512 = "3C4s4d/iGobgCtk2tnWW6+zSTOBg1PRAm2vtWZLdriwTroFbbWNSr3lcyzHdrQHnEXYCC5K52EbpfodaIUY8sg==";
       };
     };
-    "@smithy/middleware-endpoint-2.5.0" = {
+    "@smithy/middleware-endpoint-3.0.1" = {
       name = "_at_smithy_slash_middleware-endpoint";
       packageName = "@smithy/middleware-endpoint";
-      version = "2.5.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.5.0.tgz";
-        sha512 = "OBhI9ZEAG8Xen0xsFJwwNOt44WE2CWkfYIxTognC8x42Lfsdf0VN/wCMqpdkySMDio/vts10BiovAxQp0T0faA==";
+        url = "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.0.1.tgz";
+        sha512 = "lQ/UOdGD4KM5kLZiAl0q8Qy3dPbynvAXKAdXnYlrA1OpaUwr+neSsVokDZpY6ZVb5Yx8jnus29uv6XWpM9P4SQ==";
       };
     };
-    "@smithy/middleware-retry-2.2.0" = {
+    "@smithy/middleware-retry-3.0.3" = {
       name = "_at_smithy_slash_middleware-retry";
       packageName = "@smithy/middleware-retry";
-      version = "2.2.0";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.2.0.tgz";
-        sha512 = "PsjDOLpbevgn37yJbawmfVoanru40qVA8UEf2+YA1lvOefmhuhL6ZbKtGsLAWDRnE1OlAmedsbA/htH6iSZjNA==";
+        url = "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.3.tgz";
+        sha512 = "Wve1qzJb83VEU/6q+/I0cQdAkDnuzELC6IvIBwDzUEiGpKqXgX1v10FUuZGbRS6Ov/P+HHthcAoHOJZQvZNAkA==";
       };
     };
-    "@smithy/middleware-serde-2.3.0" = {
+    "@smithy/middleware-serde-3.0.0" = {
       name = "_at_smithy_slash_middleware-serde";
       packageName = "@smithy/middleware-serde";
-      version = "2.3.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.3.0.tgz";
-        sha512 = "sIADe7ojwqTyvEQBe1nc/GXB9wdHhi9UwyX0lTyttmUWDJLP655ZYE1WngnNyXREme8I27KCaUhyhZWRXL0q7Q==";
+        url = "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-3.0.0.tgz";
+        sha512 = "I1vKG1foI+oPgG9r7IMY1S+xBnmAn1ISqployvqkwHoSb8VPsngHDTOgYGYBonuOKndaWRUGJZrKYYLB+Ane6w==";
       };
     };
-    "@smithy/middleware-stack-2.2.0" = {
+    "@smithy/middleware-stack-3.0.0" = {
       name = "_at_smithy_slash_middleware-stack";
       packageName = "@smithy/middleware-stack";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.2.0.tgz";
-        sha512 = "Qntc3jrtwwrsAC+X8wms8zhrTr0sFXnyEGhZd9sLtsJ/6gGQKFzNB+wWbOcpJd7BR8ThNCoKt76BuQahfMvpeA==";
+        url = "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-3.0.0.tgz";
+        sha512 = "+H0jmyfAyHRFXm6wunskuNAqtj7yfmwFB6Fp37enytp2q047/Od9xetEaUbluyImOlGnGpaVGaVfjwawSr+i6Q==";
       };
     };
-    "@smithy/node-config-provider-2.3.0" = {
+    "@smithy/node-config-provider-3.1.0" = {
       name = "_at_smithy_slash_node-config-provider";
       packageName = "@smithy/node-config-provider";
-      version = "2.3.0";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.3.0.tgz";
-        sha512 = "0elK5/03a1JPWMDPaS726Iw6LpQg80gFut1tNpPfxFuChEEklo2yL823V94SpTZTxmKlXFtFgsP55uh3dErnIg==";
+        url = "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.0.tgz";
+        sha512 = "ngfB8QItUfTFTfHMvKuc2g1W60V1urIgZHqD1JNFZC2tTWXahqf2XvKXqcBS7yZqR7GqkQQZy11y/lNOUWzq7Q==";
       };
     };
-    "@smithy/node-http-handler-2.5.0" = {
+    "@smithy/node-http-handler-3.0.0" = {
       name = "_at_smithy_slash_node-http-handler";
       packageName = "@smithy/node-http-handler";
-      version = "2.5.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.5.0.tgz";
-        sha512 = "mVGyPBzkkGQsPoxQUbxlEfRjrj6FPyA3u3u2VXGr9hT8wilsoQdZdvKpMBFMB8Crfhv5dNkKHIW0Yyuc7eABqA==";
+        url = "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.0.0.tgz";
+        sha512 = "3trD4r7NOMygwLbUJo4eodyQuypAWr7uvPnebNJ9a70dQhVn+US8j/lCnvoJS6BXfZeF7PkkkI0DemVJw+n+eQ==";
       };
     };
-    "@smithy/property-provider-2.2.0" = {
+    "@smithy/property-provider-3.1.0" = {
       name = "_at_smithy_slash_property-provider";
       packageName = "@smithy/property-provider";
-      version = "2.2.0";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.2.0.tgz";
-        sha512 = "+xiil2lFhtTRzXkx8F053AV46QnIw6e7MV8od5Mi68E1ICOjCeCHw2XfLnDEUHnT9WGUIkwcqavXjfwuJbGlpg==";
+        url = "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-3.1.0.tgz";
+        sha512 = "Tj3+oVhqdZgemjCiWjFlADfhvLF4C/uKDuKo7/tlEsRQ9+3emCreR2xndj970QSRSsiCEU8hZW3/8JQu+n5w4Q==";
       };
     };
-    "@smithy/protocol-http-3.3.0" = {
+    "@smithy/protocol-http-4.0.0" = {
       name = "_at_smithy_slash_protocol-http";
       packageName = "@smithy/protocol-http";
-      version = "3.3.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.3.0.tgz";
-        sha512 = "Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==";
+        url = "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-4.0.0.tgz";
+        sha512 = "qOQZOEI2XLWRWBO9AgIYuHuqjZ2csyr8/IlgFDHDNuIgLAMRx2Bl8ck5U5D6Vh9DPdoaVpuzwWMa0xcdL4O/AQ==";
       };
     };
-    "@smithy/querystring-builder-2.2.0" = {
+    "@smithy/querystring-builder-3.0.0" = {
       name = "_at_smithy_slash_querystring-builder";
       packageName = "@smithy/querystring-builder";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.2.0.tgz";
-        sha512 = "L1kSeviUWL+emq3CUVSgdogoM/D9QMFaqxL/dd0X7PCNWmPXqt+ExtrBjqT0V7HLN03Vs9SuiLrG3zy3JGnE5A==";
+        url = "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-3.0.0.tgz";
+        sha512 = "bW8Fi0NzyfkE0TmQphDXr1AmBDbK01cA4C1Z7ggwMAU5RDz5AAv/KmoRwzQAS0kxXNf/D2ALTEgwK0U2c4LtRg==";
       };
     };
-    "@smithy/querystring-parser-2.2.0" = {
+    "@smithy/querystring-parser-3.0.0" = {
       name = "_at_smithy_slash_querystring-parser";
       packageName = "@smithy/querystring-parser";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.2.0.tgz";
-        sha512 = "BvHCDrKfbG5Yhbpj4vsbuPV2GgcpHiAkLeIlcA1LtfpMz3jrqizP1+OguSNSj1MwBHEiN+jwNisXLGdajGDQJA==";
+        url = "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-3.0.0.tgz";
+        sha512 = "UzHwthk0UEccV4dHzPySnBy34AWw3V9lIqUTxmozQ+wPDAO9csCWMfOLe7V9A2agNYy7xE+Pb0S6K/J23JSzfQ==";
       };
     };
-    "@smithy/service-error-classification-2.1.5" = {
+    "@smithy/service-error-classification-3.0.0" = {
       name = "_at_smithy_slash_service-error-classification";
       packageName = "@smithy/service-error-classification";
-      version = "2.1.5";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.1.5.tgz";
-        sha512 = "uBDTIBBEdAQryvHdc5W8sS5YX7RQzF683XrHePVdFmAgKiMofU15FLSM0/HU03hKTnazdNRFa0YHS7+ArwoUSQ==";
+        url = "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-3.0.0.tgz";
+        sha512 = "3BsBtOUt2Gsnc3X23ew+r2M71WwtpHfEDGhHYHSDg6q1t8FrWh15jT25DLajFV1H+PpxAJ6gqe9yYeRUsmSdFA==";
       };
     };
-    "@smithy/shared-ini-file-loader-2.4.0" = {
+    "@smithy/shared-ini-file-loader-3.1.0" = {
       name = "_at_smithy_slash_shared-ini-file-loader";
       packageName = "@smithy/shared-ini-file-loader";
-      version = "2.4.0";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.4.0.tgz";
-        sha512 = "WyujUJL8e1B6Z4PBfAqC/aGY1+C7T0w20Gih3yrvJSk97gpiVfB+y7c46T4Nunk+ZngLq0rOIdeVeIklk0R3OA==";
+        url = "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.0.tgz";
+        sha512 = "dAM7wSX0NR3qTNyGVN/nwwpEDzfV9T/3AN2eABExWmda5VqZKSsjlINqomO5hjQWGv+IIkoXfs3u2vGSNz8+Rg==";
       };
     };
-    "@smithy/signature-v4-2.2.0" = {
+    "@smithy/signature-v4-3.0.0" = {
       name = "_at_smithy_slash_signature-v4";
       packageName = "@smithy/signature-v4";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.2.0.tgz";
-        sha512 = "+B5TNzj/fRZzVW3z8UUJOkNx15+4E0CLuvJmJUA1JUIZFp3rdJ/M2H5r2SqltaVPXL0oIxv/6YK92T9TsFGbFg==";
+        url = "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-3.0.0.tgz";
+        sha512 = "kXFOkNX+BQHe2qnLxpMEaCRGap9J6tUGLzc3A9jdn+nD4JdMwCKTJ+zFwQ20GkY+mAXGatyTw3HcoUlR39HwmA==";
       };
     };
-    "@smithy/smithy-client-2.5.0" = {
+    "@smithy/smithy-client-3.1.1" = {
       name = "_at_smithy_slash_smithy-client";
       packageName = "@smithy/smithy-client";
-      version = "2.5.0";
+      version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.5.0.tgz";
-        sha512 = "DDXWHWdimtS3y/Kw1Jo46KQ0ZYsDKcldFynQERUGBPDpkW1lXOTHy491ALHjwfiBQvzsVKVxl5+ocXNIgJuX4g==";
+        url = "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.1.1.tgz";
+        sha512 = "tj4Ku7MpzZR8cmVuPcSbrLFVxmptWktmJMwST/uIEq4sarabEdF8CbmQdYB7uJ/X51Qq2EYwnRsoS7hdR4B7rA==";
       };
     };
-    "@smithy/types-2.12.0" = {
+    "@smithy/types-3.0.0" = {
       name = "_at_smithy_slash_types";
       packageName = "@smithy/types";
-      version = "2.12.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/types/-/types-2.12.0.tgz";
-        sha512 = "QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==";
+        url = "https://registry.npmjs.org/@smithy/types/-/types-3.0.0.tgz";
+        sha512 = "VvWuQk2RKFuOr98gFhjca7fkBS+xLLURT8bUjk5XQoV0ZLm7WPwWPPY3/AwzTLuUBDeoKDCthfe1AsTUWaSEhw==";
       };
     };
-    "@smithy/url-parser-2.2.0" = {
+    "@smithy/url-parser-3.0.0" = {
       name = "_at_smithy_slash_url-parser";
       packageName = "@smithy/url-parser";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.2.0.tgz";
-        sha512 = "hoA4zm61q1mNTpksiSWp2nEl1dt3j726HdRhiNgVJQMj7mLp7dprtF57mOB6JvEk/x9d2bsuL5hlqZbBuHQylQ==";
+        url = "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-3.0.0.tgz";
+        sha512 = "2XLazFgUu+YOGHtWihB3FSLAfCUajVfNBXGGYjOaVKjLAuAxx3pSBY3hBgLzIgB17haf59gOG3imKqTy8mcrjw==";
       };
     };
-    "@smithy/util-base64-2.3.0" = {
+    "@smithy/util-base64-3.0.0" = {
       name = "_at_smithy_slash_util-base64";
       packageName = "@smithy/util-base64";
-      version = "2.3.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-2.3.0.tgz";
-        sha512 = "s3+eVwNeJuXUwuMbusncZNViuhv2LjVJ1nMwTqSA0XAC7gjKhqqxRdJPhR8+YrkoZ9IiIbFk/yK6ACe/xlF+hw==";
+        url = "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-3.0.0.tgz";
+        sha512 = "Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==";
       };
     };
-    "@smithy/util-body-length-browser-2.2.0" = {
+    "@smithy/util-body-length-browser-3.0.0" = {
       name = "_at_smithy_slash_util-body-length-browser";
       packageName = "@smithy/util-body-length-browser";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-2.2.0.tgz";
-        sha512 = "dtpw9uQP7W+n3vOtx0CfBD5EWd7EPdIdsQnWTDoFf77e3VUf05uA7R7TGipIo8e4WL2kuPdnsr3hMQn9ziYj5w==";
+        url = "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-3.0.0.tgz";
+        sha512 = "cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==";
       };
     };
-    "@smithy/util-body-length-node-2.3.0" = {
+    "@smithy/util-body-length-node-3.0.0" = {
       name = "_at_smithy_slash_util-body-length-node";
       packageName = "@smithy/util-body-length-node";
-      version = "2.3.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-2.3.0.tgz";
-        sha512 = "ITWT1Wqjubf2CJthb0BuT9+bpzBfXeMokH/AAa5EJQgbv9aPMVfnM76iFIZVFf50hYXGbtiV71BHAthNWd6+dw==";
+        url = "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-3.0.0.tgz";
+        sha512 = "Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==";
       };
     };
-    "@smithy/util-buffer-from-2.2.0" = {
+    "@smithy/util-buffer-from-3.0.0" = {
       name = "_at_smithy_slash_util-buffer-from";
       packageName = "@smithy/util-buffer-from";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz";
-        sha512 = "IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==";
+        url = "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-3.0.0.tgz";
+        sha512 = "aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==";
       };
     };
-    "@smithy/util-config-provider-2.3.0" = {
+    "@smithy/util-config-provider-3.0.0" = {
       name = "_at_smithy_slash_util-config-provider";
       packageName = "@smithy/util-config-provider";
-      version = "2.3.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-2.3.0.tgz";
-        sha512 = "HZkzrRcuFN1k70RLqlNK4FnPXKOpkik1+4JaBoHNJn+RnJGYqaa3c5/+XtLOXhlKzlRgNvyaLieHTW2VwGN0VQ==";
+        url = "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-3.0.0.tgz";
+        sha512 = "pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==";
       };
     };
-    "@smithy/util-defaults-mode-browser-2.2.0" = {
+    "@smithy/util-defaults-mode-browser-3.0.3" = {
       name = "_at_smithy_slash_util-defaults-mode-browser";
       packageName = "@smithy/util-defaults-mode-browser";
-      version = "2.2.0";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.2.0.tgz";
-        sha512 = "2okTdZaCBvOJszAPU/KSvlimMe35zLOKbQpHhamFJmR7t95HSe0K3C92jQPjKY3PmDBD+7iMkOnuW05F5OlF4g==";
+        url = "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.3.tgz";
+        sha512 = "3DFON2bvXJAukJe+qFgPV/rorG7ZD3m4gjCXHD1V5z/tgKQp5MCTCLntrd686tX6tj8Uli3lefWXJudNg5WmCA==";
       };
     };
-    "@smithy/util-defaults-mode-node-2.3.0" = {
+    "@smithy/util-defaults-mode-node-3.0.3" = {
       name = "_at_smithy_slash_util-defaults-mode-node";
       packageName = "@smithy/util-defaults-mode-node";
-      version = "2.3.0";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.3.0.tgz";
-        sha512 = "hfKXnNLmsW9cmLb/JXKIvtuO6Cf4SuqN5PN1C2Ru/TBIws+m1wSgb+A53vo0r66xzB6E82inKG2J7qtwdi+Kkw==";
+        url = "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.3.tgz";
+        sha512 = "D0b8GJXecT00baoSQ3Iieu3k3mZ7GY8w1zmg8pdogYrGvWJeLcIclqk2gbkG4K0DaBGWrO6v6r20iwIFfDYrmA==";
       };
     };
-    "@smithy/util-endpoints-1.2.0" = {
+    "@smithy/util-endpoints-2.0.1" = {
       name = "_at_smithy_slash_util-endpoints";
       packageName = "@smithy/util-endpoints";
-      version = "1.2.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-1.2.0.tgz";
-        sha512 = "BuDHv8zRjsE5zXd3PxFXFknzBG3owCpjq8G3FcsXW3CykYXuEqM3nTSsmLzw5q+T12ZYuDlVUZKBdpNbhVtlrQ==";
+        url = "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.0.1.tgz";
+        sha512 = "ZRT0VCOnKlVohfoABMc8lWeQo/JEFuPWctfNRXgTHbyOVssMOLYFUNWukxxiHRGVAhV+n3c0kPW+zUqckjVPEA==";
       };
     };
-    "@smithy/util-hex-encoding-2.2.0" = {
+    "@smithy/util-hex-encoding-3.0.0" = {
       name = "_at_smithy_slash_util-hex-encoding";
       packageName = "@smithy/util-hex-encoding";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-2.2.0.tgz";
-        sha512 = "7iKXR+/4TpLK194pVjKiasIyqMtTYJsgKgM242Y9uzt5dhHnUDvMNb+3xIhRJ9QhvqGii/5cRUt4fJn3dtXNHQ==";
+        url = "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-3.0.0.tgz";
+        sha512 = "eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==";
       };
     };
-    "@smithy/util-middleware-2.2.0" = {
+    "@smithy/util-middleware-3.0.0" = {
       name = "_at_smithy_slash_util-middleware";
       packageName = "@smithy/util-middleware";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.2.0.tgz";
-        sha512 = "L1qpleXf9QD6LwLCJ5jddGkgWyuSvWBkJwWAZ6kFkdifdso+sk3L3O1HdmPvCdnCK3IS4qWyPxev01QMnfHSBw==";
+        url = "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-3.0.0.tgz";
+        sha512 = "q5ITdOnV2pXHSVDnKWrwgSNTDBAMHLptFE07ua/5Ty5WJ11bvr0vk2a7agu7qRhrCFRQlno5u3CneU5EELK+DQ==";
       };
     };
-    "@smithy/util-retry-2.2.0" = {
+    "@smithy/util-retry-3.0.0" = {
       name = "_at_smithy_slash_util-retry";
       packageName = "@smithy/util-retry";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.2.0.tgz";
-        sha512 = "q9+pAFPTfftHXRytmZ7GzLFFrEGavqapFc06XxzZFcSIGERXMerXxCitjOG1prVDR9QdjqotF40SWvbqcCpf8g==";
+        url = "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-3.0.0.tgz";
+        sha512 = "nK99bvJiziGv/UOKJlDvFF45F00WgPLKVIGUfAK+mDhzVN2hb/S33uW2Tlhg5PVBoqY7tDVqL0zmu4OxAHgo9g==";
       };
     };
-    "@smithy/util-stream-2.2.0" = {
+    "@smithy/util-stream-3.0.1" = {
       name = "_at_smithy_slash_util-stream";
       packageName = "@smithy/util-stream";
-      version = "2.2.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.2.0.tgz";
-        sha512 = "17faEXbYWIRst1aU9SvPZyMdWmqIrduZjVOqCPMIsWFNxs5yQQgFrJL6b2SdiCzyW9mJoDjFtgi53xx7EH+BXA==";
+        url = "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.0.1.tgz";
+        sha512 = "7F7VNNhAsfMRA8I986YdOY5fE0/T1/ZjFF6OLsqkvQVNP3vZ/szYDfGCyphb7ioA09r32K/0qbSFfNFU68aSzA==";
       };
     };
-    "@smithy/util-uri-escape-2.2.0" = {
+    "@smithy/util-uri-escape-3.0.0" = {
       name = "_at_smithy_slash_util-uri-escape";
       packageName = "@smithy/util-uri-escape";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-2.2.0.tgz";
-        sha512 = "jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA==";
+        url = "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-3.0.0.tgz";
+        sha512 = "LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==";
       };
     };
-    "@smithy/util-utf8-2.3.0" = {
+    "@smithy/util-utf8-3.0.0" = {
       name = "_at_smithy_slash_util-utf8";
       packageName = "@smithy/util-utf8";
-      version = "2.3.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz";
-        sha512 = "R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==";
+        url = "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-3.0.0.tgz";
+        sha512 = "rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==";
       };
     };
-    "@smithy/util-waiter-2.2.0" = {
+    "@smithy/util-waiter-3.0.0" = {
       name = "_at_smithy_slash_util-waiter";
       packageName = "@smithy/util-waiter";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-2.2.0.tgz";
-        sha512 = "IHk53BVw6MPMi2Gsn+hCng8rFA3ZmR3Rk7GllxDUW9qFJl/hiSvskn7XldkECapQVkIg/1dHpMAxI9xSTaLLSA==";
+        url = "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-3.0.0.tgz";
+        sha512 = "+fEXJxGDLCoqRKVSmo0auGxaqbiCo+8oph+4auefYjaNxjOLKSY2MxVQfRzo65PaZv4fr+5lWg+au7vSuJJ/zw==";
       };
     };
-    "@socket.io/component-emitter-3.1.0" = {
+    "@socket.io/component-emitter-3.1.2" = {
       name = "_at_socket.io_slash_component-emitter";
       packageName = "@socket.io/component-emitter";
-      version = "3.1.0";
+      version = "3.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz";
-        sha512 = "+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==";
+        url = "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz";
+        sha512 = "9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==";
       };
     };
     "@stoplight/better-ajv-errors-1.0.3" = {
@@ -10300,13 +10462,13 @@ let
         sha512 = "f+61/FtIkQeIo+a269CeaeqjpyRsgDyIk6DGr7iS4hyuk1PPk7Uf6MNRDs9FEIBh7CpdEJ+HSHbMLwgpymWTIw==";
       };
     };
-    "@stoplight/spectral-parsers-1.0.3" = {
+    "@stoplight/spectral-parsers-1.0.4" = {
       name = "_at_stoplight_slash_spectral-parsers";
       packageName = "@stoplight/spectral-parsers";
-      version = "1.0.3";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@stoplight/spectral-parsers/-/spectral-parsers-1.0.3.tgz";
-        sha512 = "J0KW5Rh5cHWnJQ3yN+cr/ijNFVirPSR0pkQbdrNX30VboEl083UEDrQ3yov9kjLVIWEk9t9kKE7Eo3QT/k4JLA==";
+        url = "https://registry.npmjs.org/@stoplight/spectral-parsers/-/spectral-parsers-1.0.4.tgz";
+        sha512 = "nCTVvtX6q71M8o5Uvv9kxU31Gk1TRmgD6/k8HBhdCmKG6FWcwgjiZouA/R3xHLn/VwTI/9k8SdG5Mkdy0RBqbQ==";
       };
     };
     "@stoplight/spectral-ref-resolver-1.0.4" = {
@@ -10363,22 +10525,31 @@ let
         sha512 = "dzyuzvUjv3m1wmhPfq82lCVYGcXG0xUYgqnWfCq3PCVR4BKFhjdkHrnJ+jIDoMKvXb05AZP/ObQF6+NpDo29IQ==";
       };
     };
-    "@stoplight/yaml-4.2.3" = {
+    "@stoplight/types-14.1.1" = {
+      name = "_at_stoplight_slash_types";
+      packageName = "@stoplight/types";
+      version = "14.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@stoplight/types/-/types-14.1.1.tgz";
+        sha512 = "/kjtr+0t0tjKr+heVfviO9FrU/uGLc+QNX3fHJc19xsCNYqU7lVhaXxDmEID9BZTjG+/r9pK9xP/xU02XGg65g==";
+      };
+    };
+    "@stoplight/yaml-4.3.0" = {
       name = "_at_stoplight_slash_yaml";
       packageName = "@stoplight/yaml";
-      version = "4.2.3";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@stoplight/yaml/-/yaml-4.2.3.tgz";
-        sha512 = "Mx01wjRAR9C7yLMUyYFTfbUf5DimEpHMkRDQ1PKLe9dfNILbgdxyrncsOXM3vCpsQ1Hfj4bPiGl+u4u6e9Akqw==";
+        url = "https://registry.npmjs.org/@stoplight/yaml/-/yaml-4.3.0.tgz";
+        sha512 = "JZlVFE6/dYpP9tQmV0/ADfn32L9uFarHWxfcRhReKUnljz1ZiUM5zpX+PH8h5CJs6lao3TuFqnPm9IJJCEkE2w==";
       };
     };
-    "@stoplight/yaml-ast-parser-0.0.48" = {
+    "@stoplight/yaml-ast-parser-0.0.50" = {
       name = "_at_stoplight_slash_yaml-ast-parser";
       packageName = "@stoplight/yaml-ast-parser";
-      version = "0.0.48";
+      version = "0.0.50";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@stoplight/yaml-ast-parser/-/yaml-ast-parser-0.0.48.tgz";
-        sha512 = "sV+51I7WYnLJnKPn2EMWgS4EUfoP4iWEbrWwbXsj0MZCB/xOK8j6+C9fntIdOM50kpx45ZLC3s6kwKivWuqvyg==";
+        url = "https://registry.npmjs.org/@stoplight/yaml-ast-parser/-/yaml-ast-parser-0.0.50.tgz";
+        sha512 = "Pb6M8TDO9DtSVla9yXSTAxmo9GVEouq5P40DWXdOie69bXogZTkgvopCq+yEvTMA0F6PEvdJmbtTV3ccIp11VQ==";
       };
     };
     "@stroncium/procfs-1.2.1" = {
@@ -10408,22 +10579,22 @@ let
         sha512 = "2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ==";
       };
     };
-    "@swc-node/core-1.13.0" = {
+    "@swc-node/core-1.13.1" = {
       name = "_at_swc-node_slash_core";
       packageName = "@swc-node/core";
-      version = "1.13.0";
+      version = "1.13.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@swc-node/core/-/core-1.13.0.tgz";
-        sha512 = "lFPD4nmy4ifAOVMChFjwlpXN5KQXvegqeyuzz1KQz42q1lf+cL3Qux1/GteGuZjh8HC+Rj1RdNrHpE/MCfJSTw==";
+        url = "https://registry.npmjs.org/@swc-node/core/-/core-1.13.1.tgz";
+        sha512 = "emB5l2nZsXjUEAuusqjYvWnQMLWZp6K039Mv8aq5SX1rsNM/N7DNhw1i4/DX7AyzNZ0tT+ASWyTvqEURldp5HA==";
       };
     };
-    "@swc-node/register-1.9.0" = {
+    "@swc-node/register-1.9.1" = {
       name = "_at_swc-node_slash_register";
       packageName = "@swc-node/register";
-      version = "1.9.0";
+      version = "1.9.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@swc-node/register/-/register-1.9.0.tgz";
-        sha512 = "i0iYInD4q5v3xQC6bKvs0QtfUxu197CU5qKALmpxEqTYs7sIhQ7KFLe3kP+eAR4gRkJTvAgjQgrokXLN2jZrOw==";
+        url = "https://registry.npmjs.org/@swc-node/register/-/register-1.9.1.tgz";
+        sha512 = "z//TBXJdRWXoISCXlQmVz+NMm8Qm/UvcfKiGC0tSJdfeVYf5EZkGqvk2OiRH4SIJ6OGFfS9T0YrvA2pDKzWtPA==";
       };
     };
     "@swc-node/sourcemap-support-0.5.0" = {
@@ -10435,13 +10606,13 @@ let
         sha512 = "fbhjL5G0YvFoWwNhWleuBUfotiX+USiA9oJqu9STFw+Hb0Cgnddn+HVS/K5fI45mn92e8V+cHD2jgFjk4w2T9Q==";
       };
     };
-    "@swc/core-1.4.8" = {
+    "@swc/core-1.5.24" = {
       name = "_at_swc_slash_core";
       packageName = "@swc/core";
-      version = "1.4.8";
+      version = "1.5.24";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@swc/core/-/core-1.4.8.tgz";
-        sha512 = "uY2RSJcFPgNOEg12RQZL197LZX+MunGiKxsbxmh22VfVxrOYGRvh4mPANFlrD1yb38CgmW1wI6YgIi8LkIwmWg==";
+        url = "https://registry.npmjs.org/@swc/core/-/core-1.5.24.tgz";
+        sha512 = "Eph9zvO4xvqWZGVzTdtdEJ0Vqf0VIML/o/e4Qd2RLOqtfgnlRi7avmMu5C0oqciJ0tk+hqdUKVUZ4JPoPaiGvQ==";
       };
     };
     "@swc/counter-0.1.3" = {
@@ -10453,31 +10624,31 @@ let
         sha512 = "e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==";
       };
     };
-    "@swc/helpers-0.5.7" = {
+    "@swc/helpers-0.5.11" = {
       name = "_at_swc_slash_helpers";
       packageName = "@swc/helpers";
-      version = "0.5.7";
+      version = "0.5.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.7.tgz";
-        sha512 = "BVvNZhx362+l2tSwSuyEUV4h7+jk9raNdoTSdLfwTshXJSaGmYKluGRJznziCI3KX02Z19DdsQrdfrpXAU3Hfg==";
+        url = "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.11.tgz";
+        sha512 = "YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==";
       };
     };
-    "@swc/types-0.1.6" = {
+    "@swc/types-0.1.7" = {
       name = "_at_swc_slash_types";
       packageName = "@swc/types";
-      version = "0.1.6";
+      version = "0.1.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@swc/types/-/types-0.1.6.tgz";
-        sha512 = "/JLo/l2JsT/LRd80C3HfbmVpxOAJ11FO2RCEslFrgzLltoP9j8XIbsyDcfCt2WWyX+CM96rBoNM+IToAkFOugg==";
+        url = "https://registry.npmjs.org/@swc/types/-/types-0.1.7.tgz";
+        sha512 = "scHWahbHF0eyj3JsxG9CFJgFdFNaVQCNAimBlT6PzS3n/HptxqREjsm4OH6AN3lYcffZYSPxXW8ua2BEHp0lJQ==";
       };
     };
-    "@swc/wasm-1.4.8" = {
+    "@swc/wasm-1.5.24" = {
       name = "_at_swc_slash_wasm";
       packageName = "@swc/wasm";
-      version = "1.4.8";
+      version = "1.5.24";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@swc/wasm/-/wasm-1.4.8.tgz";
-        sha512 = "HoK4GiT0jh8wAtSZuhpnqMy/y0IyuAVdKPQhHniNsfH+gZYqL6sdHYmeE+KnLjn9UuBt5AJWiAPbcuwZAv3xsg==";
+        url = "https://registry.npmjs.org/@swc/wasm/-/wasm-1.5.24.tgz";
+        sha512 = "LyJpKUQE0E/4gbS/F7lB5t5h67cU5B6Ov2aTYdPknOA9+Yg6ra9Gyt8BnJZAus7qRlHgofNMA/dj87Mtubzpaw==";
       };
     };
     "@szmarczak/http-timer-1.1.2" = {
@@ -10516,22 +10687,22 @@ let
         sha512 = "QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw==";
       };
     };
-    "@tanstack/react-virtual-3.2.0" = {
+    "@tanstack/react-virtual-3.5.0" = {
       name = "_at_tanstack_slash_react-virtual";
       packageName = "@tanstack/react-virtual";
-      version = "3.2.0";
+      version = "3.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.2.0.tgz";
-        sha512 = "OEdMByf2hEfDa6XDbGlZN8qO6bTjlNKqjM3im9JG+u3mCL8jALy0T/67oDI001raUUPh1Bdmfn4ZvPOV5knpcg==";
+        url = "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.5.0.tgz";
+        sha512 = "rtvo7KwuIvqK9zb0VZ5IL7fiJAEnG+0EiFZz8FUOs+2mhGqdGmjKIaT1XU7Zq0eFqL0jonLlhbayJI/J2SA/Bw==";
       };
     };
-    "@tanstack/virtual-core-3.2.0" = {
+    "@tanstack/virtual-core-3.5.0" = {
       name = "_at_tanstack_slash_virtual-core";
       packageName = "@tanstack/virtual-core";
-      version = "3.2.0";
+      version = "3.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.2.0.tgz";
-        sha512 = "P5XgYoAw/vfW65byBbJQCw+cagdXDT/qH6wmABiLt4v4YBT2q2vqCOhihe+D1Nt325F/S/0Tkv6C5z0Lv+VBQQ==";
+        url = "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.5.0.tgz";
+        sha512 = "KnPRCkQTyqhanNC0K63GBG3wA8I+D1fQuVnAvcBF8f13akOKeQp1gSbu6f77zCxhEk727iV5oQnbHLYzHrECLg==";
       };
     };
     "@taplo/core-0.1.1" = {
@@ -10561,166 +10732,40 @@ let
         sha512 = "/FcGQVvXAslhiC9aMG5gxKXJctg8N7XLZrP+wYrFTFccWEPZd/Xon5y7jUXpKOVSOFEA1MOKZKbPuK4ET5/T8Q==";
       };
     };
-    "@textlint/ast-node-types-13.4.1" = {
-      name = "_at_textlint_slash_ast-node-types";
-      packageName = "@textlint/ast-node-types";
-      version = "13.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-13.4.1.tgz";
-        sha512 = "qrZyhCh8Ekk6nwArx3BROybm9BnX6vF7VcZbijetV/OM3yfS4rTYhoMWISmhVEP2H2re0CtWEyMl/XF+WdvVLQ==";
-      };
-    };
-    "@textlint/ast-node-types-14.0.4" = {
-      name = "_at_textlint_slash_ast-node-types";
-      packageName = "@textlint/ast-node-types";
-      version = "14.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.4.tgz";
-        sha512 = "O7L1pgle030Co9ou1+6e2/6GgcIpKgqwEc0XiBabokc22Yl0QEkrf00K/usBDmSx+wo1ficWBux2mfBEF0jnDA==";
-      };
-    };
-    "@textlint/ast-node-types-4.4.3" = {
-      name = "_at_textlint_slash_ast-node-types";
-      packageName = "@textlint/ast-node-types";
-      version = "4.4.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.4.3.tgz";
-        sha512 = "qi2jjgO6Tn3KNPGnm6B7p6QTEPvY95NFsIAaJuwbulur8iJUEenp1OnoUfiDaC/g2WPPEFkcfXpmnu8XEMFo2A==";
-      };
-    };
-    "@textlint/ast-tester-14.0.4" = {
-      name = "_at_textlint_slash_ast-tester";
-      packageName = "@textlint/ast-tester";
-      version = "14.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-14.0.4.tgz";
-        sha512 = "SQ/2DjxVlDVeCEjVlD8c8R2Sl3VGDZEx8o9+i8bV8NUdY8qsSHbo29/BfiUZf/uaX6eeNpZsurtstJ25hbVrsQ==";
-      };
-    };
-    "@textlint/ast-traverse-14.0.4" = {
-      name = "_at_textlint_slash_ast-traverse";
-      packageName = "@textlint/ast-traverse";
-      version = "14.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-14.0.4.tgz";
-        sha512 = "bzFC7UJ2FvhjH5ekXGQ0i9vjK+xzMT69gHBsYVEl+TtbplnH2YY3+sbw6B1j3LocJuo6xngZ2YWXXqmQlKgzLg==";
-      };
-    };
-    "@textlint/config-loader-14.0.4" = {
-      name = "_at_textlint_slash_config-loader";
-      packageName = "@textlint/config-loader";
-      version = "14.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-14.0.4.tgz";
-        sha512 = "qgAvZ1RcTq58+yNbzhaKHsb52yHRxt8SRpG7S4WFjYj2DEStjIxzssSQvlZtEBjSUQ7RZNJ93d+pL0YK8MIVoA==";
-      };
-    };
-    "@textlint/feature-flag-14.0.4" = {
-      name = "_at_textlint_slash_feature-flag";
-      packageName = "@textlint/feature-flag";
-      version = "14.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-14.0.4.tgz";
-        sha512 = "1FMZqnjOA4KVpt/aloI1fNs46P0rUeHWcCRKl33/08wRHHMdcbaN4EsHkq7UfriuSfFgUuiyeo0bPjCpv15hhQ==";
-      };
-    };
-    "@textlint/fixer-formatter-14.0.4" = {
-      name = "_at_textlint_slash_fixer-formatter";
-      packageName = "@textlint/fixer-formatter";
-      version = "14.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-14.0.4.tgz";
-        sha512 = "HkMxzGPo/pgA9UvddqJG6qm62ICNgil3AmBVp0QpOv5uTV1u9gCSQ5jOdb/aOJBw7W8fd+CcnEsEBYn9HT8e6A==";
-      };
-    };
-    "@textlint/kernel-14.0.4" = {
-      name = "_at_textlint_slash_kernel";
-      packageName = "@textlint/kernel";
-      version = "14.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/kernel/-/kernel-14.0.4.tgz";
-        sha512 = "6WNoEBZ4lYTYOGK4EEEdjp+kgxSSC1nIFwN6tY9XGVkd4OACzDNothVTvJBwaX73FWFG5zoSjnNQxBDPUHMc8g==";
-      };
-    };
-    "@textlint/linter-formatter-14.0.4" = {
-      name = "_at_textlint_slash_linter-formatter";
-      packageName = "@textlint/linter-formatter";
-      version = "14.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.0.4.tgz";
-        sha512 = "EQZJPydExEIvBARkdmkoGsKWie1ekNAiqerQgIqwPb3SqOzKnlaDGrZOMy40HufTcacZrrvlbByDyai6m30+Lw==";
-      };
-    };
-    "@textlint/markdown-to-ast-14.0.4" = {
-      name = "_at_textlint_slash_markdown-to-ast";
-      packageName = "@textlint/markdown-to-ast";
-      version = "14.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-14.0.4.tgz";
-        sha512 = "D9UUxnRJoNROVjOa9bhoQPDdRvlvS/xP3MJo0Kl6b/mJFi0dOlW31WUfpOFjZkp4uXkL+oo0ji7AMnmV6JORsQ==";
-      };
-    };
-    "@textlint/module-interop-14.0.4" = {
-      name = "_at_textlint_slash_module-interop";
-      packageName = "@textlint/module-interop";
-      version = "14.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.0.4.tgz";
-        sha512 = "okv52pRSQ1aeC8rim8qp2D2Fmj/oKDYGY2itdeZhj9E/vdkU9/r7OpdcxyuNiuqLEd/sWw03EAwt3S6mlfNIOw==";
-      };
-    };
-    "@textlint/source-code-fixer-14.0.4" = {
-      name = "_at_textlint_slash_source-code-fixer";
-      packageName = "@textlint/source-code-fixer";
-      version = "14.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-14.0.4.tgz";
-        sha512 = "gIUeWjF0WdSwgCUhW310hKJsWOyRyFe6PGaqqCk7Mhc+vVcePfmC8mmmhVgeuyys/Dhe+0iaP4M1eJf4COaIQw==";
-      };
-    };
-    "@textlint/text-to-ast-14.0.4" = {
-      name = "_at_textlint_slash_text-to-ast";
-      packageName = "@textlint/text-to-ast";
-      version = "14.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-14.0.4.tgz";
-        sha512 = "r2KSnKzhsCIvX72yX+7sEuu9nDQIS4+xRsSffuXYB0etRQUI6VTTsE6Ibd6yMbEsMDUF4BfKWzNGn+bQ8U7oHA==";
-      };
-    };
-    "@textlint/textlint-plugin-markdown-14.0.4" = {
-      name = "_at_textlint_slash_textlint-plugin-markdown";
-      packageName = "@textlint/textlint-plugin-markdown";
-      version = "14.0.4";
+    "@thaunknown/idb-chunk-store-1.0.2" = {
+      name = "_at_thaunknown_slash_idb-chunk-store";
+      packageName = "@thaunknown/idb-chunk-store";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-14.0.4.tgz";
-        sha512 = "mqQieI9U5GTRTjkK4Cj57Axl6fVloaA8g0+sCsp3TjmNWyEgGBvt3aw+FIUiFTvheg9L3RGe/aXgvp5ORADOAA==";
+        url = "https://registry.npmjs.org/@thaunknown/idb-chunk-store/-/idb-chunk-store-1.0.2.tgz";
+        sha512 = "UdKshbKdHDP+p0XPdv55QiU/scdB9TzvovGFSgXThf+7Yd3noLeYp6KpkYyc1jzUXvI3/8+TemPeASOimrOXvw==";
       };
     };
-    "@textlint/textlint-plugin-text-14.0.4" = {
-      name = "_at_textlint_slash_textlint-plugin-text";
-      packageName = "@textlint/textlint-plugin-text";
-      version = "14.0.4";
+    "@thaunknown/simple-peer-10.0.7" = {
+      name = "_at_thaunknown_slash_simple-peer";
+      packageName = "@thaunknown/simple-peer";
+      version = "10.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-14.0.4.tgz";
-        sha512 = "HwTQyOcwDRrPPHyD8lwSMyGR1ETasR2WK6BLO0PRbowRe6K/K4b9OBBd6+nJcRFa+9Nd6p7nxPzA2WxDi1X/Zg==";
+        url = "https://registry.npmjs.org/@thaunknown/simple-peer/-/simple-peer-10.0.7.tgz";
+        sha512 = "b4oPNaJEWk9UT/ADV8IFWcAyow+gOPLa73SptuOqm6IdMDr4zlsqGsdl4LQmvgMKMgWAOHdVViw/RYF5qYvkCg==";
       };
     };
-    "@textlint/types-14.0.4" = {
-      name = "_at_textlint_slash_types";
-      packageName = "@textlint/types";
-      version = "14.0.4";
+    "@thaunknown/simple-websocket-9.1.1" = {
+      name = "_at_thaunknown_slash_simple-websocket";
+      packageName = "@thaunknown/simple-websocket";
+      version = "9.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/types/-/types-14.0.4.tgz";
-        sha512 = "SNdFG/GB6utYeHmNfoAMlI+K1NykPxK9TtilkEfhr/fF9TqmeeJ+6CMk5NLQzEvfKm6jUbv2pp5DPS27vo6GKg==";
+        url = "https://registry.npmjs.org/@thaunknown/simple-websocket/-/simple-websocket-9.1.1.tgz";
+        sha512 = "vzQloFWRodRZqZhpxMpBljFtISesY8TihA8T5uKwCYdj2I1ImMhE/gAeTCPsCGOtxJfGKu3hw/is6MXauWLjOg==";
       };
     };
-    "@textlint/utils-14.0.4" = {
-      name = "_at_textlint_slash_utils";
-      packageName = "@textlint/utils";
-      version = "14.0.4";
+    "@thaunknown/thirty-two-1.0.3" = {
+      name = "_at_thaunknown_slash_thirty-two";
+      packageName = "@thaunknown/thirty-two";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/utils/-/utils-14.0.4.tgz";
-        sha512 = "/ThtVZCB/vB2e8+MnKquCFNO2cKXCPEGxFlkdvJ5g9q9ODpVyFcf2ogYoIlvR7cNotvq67zVjENS7dsGDNFEmw==";
+        url = "https://registry.npmjs.org/@thaunknown/thirty-two/-/thirty-two-1.0.3.tgz";
+        sha512 = "bD6PvWbaf53JC04O7WnGDjqZBDgja/KT2Jd/6I2vJBIy+DLmQfQJZZ/G+16nAkVq1yGTIkO4rfc4RlH0DmEEqA==";
       };
     };
     "@tinyhttp/accepts-2.2.1" = {
@@ -10966,13 +11011,13 @@ let
         sha512 = "7hWZS0NRpEsNV8vWJzg7FEz6V8MaLNeJOmwmghqUXTpzk16V1LLZhdo+4QvE/+zv4cVci0OviuJFnqhEfoV3+g==";
       };
     };
-    "@tsconfig/node10-1.0.9" = {
+    "@tsconfig/node10-1.0.11" = {
       name = "_at_tsconfig_slash_node10";
       packageName = "@tsconfig/node10";
-      version = "1.0.9";
+      version = "1.0.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz";
-        sha512 = "jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==";
+        url = "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz";
+        sha512 = "DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==";
       };
     };
     "@tsconfig/node12-1.0.11" = {
@@ -11002,13 +11047,13 @@ let
         sha512 = "vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==";
       };
     };
-    "@tsconfig/strictest-2.0.3" = {
+    "@tsconfig/strictest-2.0.5" = {
       name = "_at_tsconfig_slash_strictest";
       packageName = "@tsconfig/strictest";
-      version = "2.0.3";
+      version = "2.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@tsconfig/strictest/-/strictest-2.0.3.tgz";
-        sha512 = "MroLvRhMbqtXI5WBSwoomro6OQS4xnCoudUrMb20JO0vLKUs0bAaCEcvM/immEBSJjFAK1l6jW1oAO8q3Ancrg==";
+        url = "https://registry.npmjs.org/@tsconfig/strictest/-/strictest-2.0.5.tgz";
+        sha512 = "ec4tjL2Rr0pkZ5hww65c+EEPYwxOi4Ryv+0MtjeaSQRJyq322Q27eOQiFbuNgw2hpL4hB1/W/HBGk3VKS43osg==";
       };
     };
     "@tufjs/canonical-json-1.0.0" = {
@@ -11038,13 +11083,13 @@ let
         sha512 = "qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==";
       };
     };
-    "@tufjs/models-2.0.0" = {
+    "@tufjs/models-2.0.1" = {
       name = "_at_tufjs_slash_models";
       packageName = "@tufjs/models";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@tufjs/models/-/models-2.0.0.tgz";
-        sha512 = "c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==";
+        url = "https://registry.npmjs.org/@tufjs/models/-/models-2.0.1.tgz";
+        sha512 = "92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==";
       };
     };
     "@turist/fetch-7.2.0" = {
@@ -11083,15 +11128,6 @@ let
         sha512 = "veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==";
       };
     };
-    "@types/archiver-5.3.2" = {
-      name = "_at_types_slash_archiver";
-      packageName = "@types/archiver";
-      version = "5.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/archiver/-/archiver-5.3.2.tgz";
-        sha512 = "IctHreBuWE5dvBDz/0WeKtyVKVRs4h75IblxOACL92wU66v+HGAfEYAOyXkOFphvRJMhuXdI9huDXpX0FC6lCw==";
-      };
-    };
     "@types/argparse-1.0.38" = {
       name = "_at_types_slash_argparse";
       packageName = "@types/argparse";
@@ -11326,13 +11362,13 @@ let
         sha512 = "qJ7LIFp06h1QE1aVxbVd+zJP2wdaugYXYfd6JxsyRMrYHaxb6itXPogW2tz+ylUJ1n1b+JF1PHyYCfYHm0dvUg==";
       };
     };
-    "@types/eslint-8.56.5" = {
+    "@types/eslint-8.56.10" = {
       name = "_at_types_slash_eslint";
       packageName = "@types/eslint";
-      version = "8.56.5";
+      version = "8.56.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.5.tgz";
-        sha512 = "u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==";
+        url = "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz";
+        sha512 = "Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==";
       };
     };
     "@types/eslint-scope-3.7.7" = {
@@ -11389,13 +11425,13 @@ let
         sha512 = "DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==";
       };
     };
-    "@types/express-serve-static-core-4.17.43" = {
+    "@types/express-serve-static-core-4.19.3" = {
       name = "_at_types_slash_express-serve-static-core";
       packageName = "@types/express-serve-static-core";
-      version = "4.17.43";
+      version = "4.19.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz";
-        sha512 = "oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==";
+        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.3.tgz";
+        sha512 = "KOzM7MhcBFlmnlr/fzISFF5vGWVSvN6fTd4T+ExOt08bA/dA5kpSzY52nMsI1KDFmUREpJelPYyuslLRSjjgCg==";
       };
     };
     "@types/geojson-7946.0.4" = {
@@ -11524,13 +11560,13 @@ let
         sha512 = "pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==";
       };
     };
-    "@types/jquery-3.5.29" = {
+    "@types/jquery-3.5.30" = {
       name = "_at_types_slash_jquery";
       packageName = "@types/jquery";
-      version = "3.5.29";
+      version = "3.5.30";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.29.tgz";
-        sha512 = "oXQQC9X9MOPRrMhPHHOsXqeQDnWeCDT3PelUIg/Oy8FAbzSZtFHRjc7IpbfFVmpLtJ+UOoywpRsuO5Jxjybyeg==";
+        url = "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.30.tgz";
+        sha512 = "nbWKkkyb919DOUxjmRVk8vwtDb0/k8FKncmUKFi+NY+QXqWltooxTrswvz4LspQwxvLdvzBN1TImr6cw3aQx2A==";
       };
     };
     "@types/js-levenshtein-1.1.3" = {
@@ -11578,22 +11614,22 @@ let
         sha512 = "BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==";
       };
     };
-    "@types/linkify-it-3.0.5" = {
+    "@types/linkify-it-5.0.0" = {
       name = "_at_types_slash_linkify-it";
       packageName = "@types/linkify-it";
-      version = "3.0.5";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.5.tgz";
-        sha512 = "yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==";
+        url = "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz";
+        sha512 = "sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==";
       };
     };
-    "@types/lodash-4.17.0" = {
+    "@types/lodash-4.17.4" = {
       name = "_at_types_slash_lodash";
       packageName = "@types/lodash";
-      version = "4.17.0";
+      version = "4.17.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.0.tgz";
-        sha512 = "t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==";
+        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.4.tgz";
+        sha512 = "wYCP26ZLxaT3R39kiN2+HcJ4kTd3U1waI/cY7ivWYqFP6pW3ZNpvi6Wd6PHZx7T/t8z0vlkXMg3QYLa7DZ/IJQ==";
       };
     };
     "@types/long-4.0.2" = {
@@ -11614,13 +11650,13 @@ let
         sha512 = "ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==";
       };
     };
-    "@types/markdown-it-12.2.3" = {
+    "@types/markdown-it-14.1.1" = {
       name = "_at_types_slash_markdown-it";
       packageName = "@types/markdown-it";
-      version = "12.2.3";
+      version = "14.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz";
-        sha512 = "GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==";
+        url = "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.1.tgz";
+        sha512 = "4NpsnpYl2Gt1ljyBGrKMxFYAYvpqbnnkgP/i/g+NLpjEUa3obn1XJCur9YbEXKDAkaXqsR1LbDnGEJ0MmKFxfg==";
       };
     };
     "@types/mdast-3.0.15" = {
@@ -11632,22 +11668,22 @@ let
         sha512 = "LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==";
       };
     };
-    "@types/mdast-4.0.3" = {
+    "@types/mdast-4.0.4" = {
       name = "_at_types_slash_mdast";
       packageName = "@types/mdast";
-      version = "4.0.3";
+      version = "4.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz";
-        sha512 = "LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==";
+        url = "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz";
+        sha512 = "kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==";
       };
     };
-    "@types/mdurl-1.0.5" = {
+    "@types/mdurl-2.0.0" = {
       name = "_at_types_slash_mdurl";
       packageName = "@types/mdurl";
-      version = "1.0.5";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.5.tgz";
-        sha512 = "6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==";
+        url = "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz";
+        sha512 = "RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==";
       };
     };
     "@types/mime-1.3.5" = {
@@ -11659,15 +11695,6 @@ let
         sha512 = "/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==";
       };
     };
-    "@types/mime-3.0.4" = {
-      name = "_at_types_slash_mime";
-      packageName = "@types/mime";
-      version = "3.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/mime/-/mime-3.0.4.tgz";
-        sha512 = "iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==";
-      };
-    };
     "@types/minimatch-3.0.5" = {
       name = "_at_types_slash_minimatch";
       packageName = "@types/minimatch";
@@ -11749,15 +11776,6 @@ let
         sha512 = "F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==";
       };
     };
-    "@types/node-14.18.33" = {
-      name = "_at_types_slash_node";
-      packageName = "@types/node";
-      version = "14.18.33";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-14.18.33.tgz";
-        sha512 = "qelS/Ra6sacc4loe/3MSjXNL1dNQ/GjxNHVzuChwMfmk7HuycRLVQN2qNY3XahK+fZc5E2szqQSKUyAF0E+2bg==";
-      };
-    };
     "@types/node-14.18.63" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
@@ -11776,13 +11794,22 @@ let
         sha512 = "JkRpuVz3xCNCWaeQ5EHLR/6woMbHZz/jZ7Kmc63AkU+1HxnoUugzSWMck7dsR4DvNYX8jp9wTi9K7WvnxOIQZQ==";
       };
     };
-    "@types/node-16.18.90" = {
+    "@types/node-16.18.11" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "16.18.90";
+      version = "16.18.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-16.18.90.tgz";
-        sha512 = "ofx8kJGTumXmOfYHrJckfdunEiEoq6Aa8x3JKVtGS25z/DTV/fUqIolnHPssDs8P3fq2ZWayNwkAWEk/RmdmwQ==";
+        url = "https://registry.npmjs.org/@types/node/-/node-16.18.11.tgz";
+        sha512 = "3oJbGBUWuS6ahSnEq1eN2XrCyf4YsWI8OyCvo7c64zQJNplk3mO84t53o8lfTk+2ji59g5ycfc6qQ3fdHliHuA==";
+      };
+    };
+    "@types/node-16.18.98" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "16.18.98";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-16.18.98.tgz";
+        sha512 = "fpiC20NvLpTLAzo3oVBKIqBGR6Fx/8oAK/SSf7G+fydnXMY1x4x9RZ6sBXhqKlCU21g2QapUsbLlhv3+a7wS+Q==";
       };
     };
     "@types/node-16.9.1" = {
@@ -11794,31 +11821,31 @@ let
         sha512 = "QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==";
       };
     };
-    "@types/node-18.19.24" = {
+    "@types/node-18.19.30" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "18.19.24";
+      version = "18.19.30";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-18.19.24.tgz";
-        sha512 = "eghAz3gnbQbvnHqB+mgB2ZR3aH6RhdEmHGS48BnV75KceQPHqabkxKI0BbUSsqhqy2Ddhc2xD/VAR9ySZd57Lw==";
+        url = "https://registry.npmjs.org/@types/node/-/node-18.19.30.tgz";
+        sha512 = "453z1zPuJLVDbyahaa1sSD5C2sht6ZpHp5rgJNs+H8YGqhluCXcuOUmBYsAo0Tos0cHySJ3lVUGbGgLlqIkpyg==";
       };
     };
-    "@types/node-18.19.25" = {
+    "@types/node-18.19.34" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "18.19.25";
+      version = "18.19.34";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-18.19.25.tgz";
-        sha512 = "NrNXHJCexZtcbR9K1hsv1fSbwAwnhv7ql7l331aKvW0sej5H0NY1o64BHe0AA2ZoQuTm7NE6fyNW079MOWXe4Q==";
+        url = "https://registry.npmjs.org/@types/node/-/node-18.19.34.tgz";
+        sha512 = "eXF4pfBNV5DAMKGbI02NnDtWrQ40hAN558/2vvS4gMpMIxaf6JmD7YjnZbq0Q9TDSSkKBamime8ewRoomHdt4g==";
       };
     };
-    "@types/node-20.11.29" = {
+    "@types/node-20.14.1" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "20.11.29";
+      version = "20.14.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-20.11.29.tgz";
-        sha512 = "P99thMkD/1YkCvAtOd6/zGedKNA0p2fj4ZpjCzcNiSCBWgm3cNRTBfa/qjFnsKkkojxu4vVLtWpesnZ9+ap+gA==";
+        url = "https://registry.npmjs.org/@types/node/-/node-20.14.1.tgz";
+        sha512 = "T2MzSGEu+ysB/FkWfqmhV3PLyQlowdptmmgD20C6QxsS8Fmv5SjpZ1ayXaEC0S21/h5UJ9iA6W/5vSNU5l00OA==";
       };
     };
     "@types/node-20.5.9" = {
@@ -11884,13 +11911,13 @@ let
         sha512 = "dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==";
       };
     };
-    "@types/prop-types-15.7.11" = {
+    "@types/prop-types-15.7.12" = {
       name = "_at_types_slash_prop-types";
       packageName = "@types/prop-types";
-      version = "15.7.11";
+      version = "15.7.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz";
-        sha512 = "ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==";
+        url = "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz";
+        sha512 = "5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==";
       };
     };
     "@types/pug-2.0.10" = {
@@ -11902,13 +11929,13 @@ let
         sha512 = "Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==";
       };
     };
-    "@types/qs-6.9.13" = {
+    "@types/qs-6.9.15" = {
       name = "_at_types_slash_qs";
       packageName = "@types/qs";
-      version = "6.9.13";
+      version = "6.9.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.13.tgz";
-        sha512 = "iLR+1vTTJ3p0QaOUq6ACbY1mzKTODFDT/XedZI8BksOotFmL4ForwDfRQ/DZeuTHR7/2i4lI1D203gdfxuqTlA==";
+        url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz";
+        sha512 = "uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==";
       };
     };
     "@types/range-parser-1.2.7" = {
@@ -11920,31 +11947,31 @@ let
         sha512 = "hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==";
       };
     };
-    "@types/react-18.2.67" = {
+    "@types/react-18.2.79" = {
       name = "_at_types_slash_react";
       packageName = "@types/react";
-      version = "18.2.67";
+      version = "18.2.79";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/react/-/react-18.2.67.tgz";
-        sha512 = "vkIE2vTIMHQ/xL0rgmuoECBCkZFZeHr49HeWSc24AptMbNRo7pwSBvj73rlJJs9fGKj0koS+V7kQB1jHS0uCgw==";
+        url = "https://registry.npmjs.org/@types/react/-/react-18.2.79.tgz";
+        sha512 = "RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==";
       };
     };
-    "@types/react-dom-18.2.22" = {
-      name = "_at_types_slash_react-dom";
-      packageName = "@types/react-dom";
-      version = "18.2.22";
+    "@types/react-18.3.3" = {
+      name = "_at_types_slash_react";
+      packageName = "@types/react";
+      version = "18.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.22.tgz";
-        sha512 = "fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==";
+        url = "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz";
+        sha512 = "hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==";
       };
     };
-    "@types/readdir-glob-1.1.5" = {
-      name = "_at_types_slash_readdir-glob";
-      packageName = "@types/readdir-glob";
-      version = "1.1.5";
+    "@types/react-dom-18.2.25" = {
+      name = "_at_types_slash_react-dom";
+      packageName = "@types/react-dom";
+      version = "18.2.25";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/readdir-glob/-/readdir-glob-1.1.5.tgz";
-        sha512 = "raiuEPUYqXu+nvtY2Pe8s8FEmZ3x5yAH4VkLdihcPdalvsHltomrRC9BzuStrJ9yk06470hS0Crw0f1pXqD+Hg==";
+        url = "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.25.tgz";
+        sha512 = "o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA==";
       };
     };
     "@types/responselike-1.0.3" = {
@@ -11983,15 +12010,6 @@ let
         sha512 = "3xSjTp3v03X/lSQLkczaN9UIEwJMoMCA1+Nb5HfbJEQWogdeQIyVtTvxPXDQjZ5zws8rFQfVfRdz03ARihPJgw==";
       };
     };
-    "@types/scheduler-0.16.8" = {
-      name = "_at_types_slash_scheduler";
-      packageName = "@types/scheduler";
-      version = "0.16.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz";
-        sha512 = "WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==";
-      };
-    };
     "@types/seedrandom-3.0.1" = {
       name = "_at_types_slash_seedrandom";
       packageName = "@types/seedrandom";
@@ -12028,13 +12046,13 @@ let
         sha512 = "qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==";
       };
     };
-    "@types/serve-static-1.15.5" = {
+    "@types/serve-static-1.15.7" = {
       name = "_at_types_slash_serve-static";
       packageName = "@types/serve-static";
-      version = "1.15.5";
+      version = "1.15.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz";
-        sha512 = "PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==";
+        url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz";
+        sha512 = "W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==";
       };
     };
     "@types/shimmer-1.0.5" = {
@@ -12091,15 +12109,6 @@ let
         sha512 = "HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==";
       };
     };
-    "@types/tinycolor2-1.4.6" = {
-      name = "_at_types_slash_tinycolor2";
-      packageName = "@types/tinycolor2";
-      version = "1.4.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/tinycolor2/-/tinycolor2-1.4.6.tgz";
-        sha512 = "iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==";
-      };
-    };
     "@types/triple-beam-1.3.5" = {
       name = "_at_types_slash_triple-beam";
       packageName = "@types/triple-beam";
@@ -12415,13 +12424,13 @@ let
         sha512 = "1O/biKiVhhn0EtvDF4UOvz325K4RrLupfL8rHcmqD2TBLv4qVDWQuzx4JGa1FfqjjRb+C9TNZ6w19f32Mq85Ug==";
       };
     };
-    "@vercel/build-utils-7.9.1" = {
+    "@vercel/build-utils-8.2.1" = {
       name = "_at_vercel_slash_build-utils";
       packageName = "@vercel/build-utils";
-      version = "7.9.1";
+      version = "8.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-7.9.1.tgz";
-        sha512 = "yqbP7d8oLAGkh5iy9/Vu1c0+s5jLFK56QHEZlkj1lY3t3OQ+7dsAi0oUP/gv8YxtUYwMDfeYSqZr/4cNhnSBsg==";
+        url = "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-8.2.1.tgz";
+        sha512 = "hZiSnzgb13JlWh4spHq5g6RQ76xMNFBFQLWmW7xx+f0yMsWTx/h6uBJm8AbW7AhAtsqeJ8Q6KvCFnxwXKYxLDw==";
       };
     };
     "@vercel/error-utils-2.0.2" = {
@@ -12451,22 +12460,22 @@ let
         sha512 = "iTEA0vY6RBPuEzkwUTVzSHDATo1aF6bdLLspI68mQ/BTbi5UQEGjpjyzdKOVcSYApDtFU6M6vypZ1t4vIEnHvw==";
       };
     };
-    "@vercel/gatsby-plugin-vercel-builder-2.0.22" = {
+    "@vercel/gatsby-plugin-vercel-builder-2.0.32" = {
       name = "_at_vercel_slash_gatsby-plugin-vercel-builder";
       packageName = "@vercel/gatsby-plugin-vercel-builder";
-      version = "2.0.22";
+      version = "2.0.32";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/gatsby-plugin-vercel-builder/-/gatsby-plugin-vercel-builder-2.0.22.tgz";
-        sha512 = "bpbfWzNfn/7MyCDCXbFMmTqtFt+ni0ezmXQBZ5rzdEob+uTBYQg15hf+A8zr9oB66+EPaxt7So/KBjsb6s6n2A==";
+        url = "https://registry.npmjs.org/@vercel/gatsby-plugin-vercel-builder/-/gatsby-plugin-vercel-builder-2.0.32.tgz";
+        sha512 = "QmwF6cnGxREBLQtRSQOYgZqH8H8MAlHEWABXiiZcz5Ma9VH6jteIXdZQI2d9nvaqPMcxmmpSmhCT5QAK2SMO5g==";
       };
     };
-    "@vercel/go-3.0.5" = {
+    "@vercel/go-3.1.1" = {
       name = "_at_vercel_slash_go";
       packageName = "@vercel/go";
-      version = "3.0.5";
+      version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/go/-/go-3.0.5.tgz";
-        sha512 = "+kEDI+hop3e8BuKisaEozxfzT6GBbp0OMBcgi0tlD5ZTmhGmpwi3vgK5mBQlB+RBXj7qlqDLW/uV2F1Y03FLcQ==";
+        url = "https://registry.npmjs.org/@vercel/go/-/go-3.1.1.tgz";
+        sha512 = "mrzomNYltxkjvtUmaYry5YEyvwTz6c/QQHE5Gr/pPGRIniUiP6T6OFOJ49RBN7e6pRXaNzHPVuidiuBhvHh5+Q==";
       };
     };
     "@vercel/hydrogen-1.0.2" = {
@@ -12478,58 +12487,58 @@ let
         sha512 = "/Q2MKk1GfOuZAnkE9jQexjtUQqanbY65R+xtJWd9yKIgwcfRI1hxiNH3uXyVM5AvLoY+fxxULkSuxDtUKpkJpQ==";
       };
     };
-    "@vercel/next-4.1.6" = {
+    "@vercel/next-4.2.14" = {
       name = "_at_vercel_slash_next";
       packageName = "@vercel/next";
-      version = "4.1.6";
+      version = "4.2.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/next/-/next-4.1.6.tgz";
-        sha512 = "+U/D75RZFIe6Z9EA4kDLDZgP0hEl4ONWqFg47EtJpigWl5ulJ9YYsMD2nQZF5sq/YKbqy/7/sUDRIL0Co+3JuA==";
+        url = "https://registry.npmjs.org/@vercel/next/-/next-4.2.14.tgz";
+        sha512 = "CBeaXIGS7mOgFSH429HRjIOxJBbtiQW6gf1mz/rIQoNcZjSxhfe+nMAxfkDlXAzCsGQVFbzVR9omnijTFbC79w==";
       };
     };
-    "@vercel/nft-0.26.4" = {
+    "@vercel/nft-0.27.0" = {
       name = "_at_vercel_slash_nft";
       packageName = "@vercel/nft";
-      version = "0.26.4";
+      version = "0.27.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/nft/-/nft-0.26.4.tgz";
-        sha512 = "j4jCOOXke2t8cHZCIxu1dzKLHLcFmYzC3yqAK6MfZznOL1QIJKd0xcFsXK3zcqzU7ScsE2zWkiMMNHGMHgp+FA==";
+        url = "https://registry.npmjs.org/@vercel/nft/-/nft-0.27.0.tgz";
+        sha512 = "W5pValyhToK9hbgEUAM6sLRUIl1I++RsFnXKHXtND50P1+vZ+OYPCzq1OOz0Ok6ghK6aOwae8G/rEAXkLedC+w==";
       };
     };
-    "@vercel/node-3.0.24" = {
+    "@vercel/node-3.1.6" = {
       name = "_at_vercel_slash_node";
       packageName = "@vercel/node";
-      version = "3.0.24";
+      version = "3.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/node/-/node-3.0.24.tgz";
-        sha512 = "2EbC6zsoaj2HH97BZYdkqHNeQ3gpcsETHXySSslkylU1uTAZU5i4c+Ze+RIinVkk7P+DVv4XzDK6xaSHvkXkGA==";
+        url = "https://registry.npmjs.org/@vercel/node/-/node-3.1.6.tgz";
+        sha512 = "PXCbN8Ocw5xdCidi8XKbBbKAoyBh2XJQJJFvImzAHM1pck7gCLYxgb7ZBcrJ/BtgMjmy/kSmSQ8FF/ctsFRK7w==";
       };
     };
-    "@vercel/python-4.1.1" = {
+    "@vercel/python-4.3.0" = {
       name = "_at_vercel_slash_python";
       packageName = "@vercel/python";
-      version = "4.1.1";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/python/-/python-4.1.1.tgz";
-        sha512 = "EbAdKOZ0hPd5b59tLt7R3RQK1azNvuZTrCFRAVHNjqcIHNCmrSvjag5zBGn7Memkk8qWb3+CgBw9K/3LJKei0w==";
+        url = "https://registry.npmjs.org/@vercel/python/-/python-4.3.0.tgz";
+        sha512 = "tj6ffEh+ligmQoo/ONOg7DNX0VGKJt9FyswyOIIp6lZufs5oGzHAfan4+5QzF/2INxvXobN0aMYgcbFHJ81ZKg==";
       };
     };
-    "@vercel/redwood-2.0.8" = {
+    "@vercel/redwood-2.0.9" = {
       name = "_at_vercel_slash_redwood";
       packageName = "@vercel/redwood";
-      version = "2.0.8";
+      version = "2.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/redwood/-/redwood-2.0.8.tgz";
-        sha512 = "hAu7SYXDt+W7kscjtQ5NsuNflXH+QB5/xAdA6FRSS/e41lG6Xq6pqLMDobqq4BR7E2PpppVDw2DUx9KzPNoeEw==";
+        url = "https://registry.npmjs.org/@vercel/redwood/-/redwood-2.0.9.tgz";
+        sha512 = "zv0uJa+XtCJ15TdfCI5ybZM1hS3OBl28idCfN3vtWR+g5HjDSW8acYOzRw2Xy7wM1f+Fje1/Nx2AdYjCM4TWTA==";
       };
     };
-    "@vercel/remix-builder-2.1.4" = {
+    "@vercel/remix-builder-2.1.6" = {
       name = "_at_vercel_slash_remix-builder";
       packageName = "@vercel/remix-builder";
-      version = "2.1.4";
+      version = "2.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/remix-builder/-/remix-builder-2.1.4.tgz";
-        sha512 = "y3RYWyxHQn5UMq8YFYj4palPs+ylcboLtqi7hqsn2P4uVFwDFCg15jKnWNYbk0XRUg+NGGtiuW4L3V9ILUxVeg==";
+        url = "https://registry.npmjs.org/@vercel/remix-builder/-/remix-builder-2.1.6.tgz";
+        sha512 = "n2gnNW9HTWlTuEwTbtVI9GRHoQi/2kPu44l0zvFDw8GlsswW0/qJPvr8SFG83FDylQcafvW8LUWO9oXefuVrFA==";
       };
     };
     "@vercel/routing-utils-3.1.0" = {
@@ -12541,22 +12550,22 @@ let
         sha512 = "Ci5xTjVTJY/JLZXpCXpLehMft97i9fH34nu9PGav6DtwkVUF6TOPX86U0W0niQjMZ5n6/ZP0BwcJK2LOozKaGw==";
       };
     };
-    "@vercel/ruby-2.0.5" = {
+    "@vercel/ruby-2.1.0" = {
       name = "_at_vercel_slash_ruby";
       packageName = "@vercel/ruby";
-      version = "2.0.5";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/ruby/-/ruby-2.0.5.tgz";
-        sha512 = "Gfm8HDech41vf+EPleRzgoJUnDTJerKgckMm4KX0JT860gV9XBMSOWYH7eMWHmMza104+HRCWL7wT6OlpftF2Q==";
+        url = "https://registry.npmjs.org/@vercel/ruby/-/ruby-2.1.0.tgz";
+        sha512 = "UZYwlSEEfVnfzTmgkD+kxex9/gkZGt7unOWNyWFN7V/ZnZSsGBUgv6hXLnwejdRi3EztgRQEBd1kUKlXdIeC0Q==";
       };
     };
-    "@vercel/static-build-2.4.4" = {
+    "@vercel/static-build-2.5.10" = {
       name = "_at_vercel_slash_static-build";
       packageName = "@vercel/static-build";
-      version = "2.4.4";
+      version = "2.5.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/static-build/-/static-build-2.4.4.tgz";
-        sha512 = "2n09maqunhSAApvQ8GT2sUzGkZrb8OYm4seaMsRDA/zIkil+s4HoTCfB7WZDUetkhewBZZHvNb/b+KBQcGMY2Q==";
+        url = "https://registry.npmjs.org/@vercel/static-build/-/static-build-2.5.10.tgz";
+        sha512 = "ixu9pjzNfplhidzCYioeATe24ubQM1+FZS4rvkGFTA/g+p66ZpZBIzqgpPe8wsVrEHNDXPAHG13CjEOyka1dBQ==";
       };
     };
     "@vercel/static-config-3.0.0" = {
@@ -12649,13 +12658,13 @@ let
         sha512 = "NwqBBruD1DvVmFVyPinOuuMGqpSroVTnl1R1vOnhbKquButOj+0b2k43Gn1fz/Uqe9hijLCxMEtMIIcW38ny8w==";
       };
     };
-    "@volar/kit-2.1.2" = {
+    "@volar/kit-2.2.5" = {
       name = "_at_volar_slash_kit";
       packageName = "@volar/kit";
-      version = "2.1.2";
+      version = "2.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@volar/kit/-/kit-2.1.2.tgz";
-        sha512 = "u20R1lCWCgFYBCHC+FR/e9J+P61vUNQpyWt4keAY+zpVHEHsSXVA2xWMJV1l1Iq5Dd0jBUSqrb1zsEya455AzA==";
+        url = "https://registry.npmjs.org/@volar/kit/-/kit-2.2.5.tgz";
+        sha512 = "Bmn0UCaT43xUGGRwcmFG9lKhiCCLjRT4ScSLLPn5C9ltUcSGnIFFDlbZZa1PreHYHq25/4zkXt9Ap32klAh17w==";
       };
     };
     "@volar/language-core-1.4.1" = {
@@ -12667,13 +12676,13 @@ let
         sha512 = "EIY+Swv+TjsWpxOxujjMf1ZXqOjg9MT2VMXZ+1dKva0wD8W0L6EtptFFcCJdBbcKmGMFkr57Qzz9VNMWhs3jXQ==";
       };
     };
-    "@volar/language-core-2.1.2" = {
+    "@volar/language-core-2.2.5" = {
       name = "_at_volar_slash_language-core";
       packageName = "@volar/language-core";
-      version = "2.1.2";
+      version = "2.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@volar/language-core/-/language-core-2.1.2.tgz";
-        sha512 = "5qsDp0Gf6fE09UWCeK7bkVn6NxMwC9OqFWQkMMkeej8h8XjyABPdRygC2RCrqDrfVdGijqlMQeXs6yRS+vfZYA==";
+        url = "https://registry.npmjs.org/@volar/language-core/-/language-core-2.2.5.tgz";
+        sha512 = "2htyAuxRrAgETmFeUhT4XLELk3LiEcqoW/B8YUXMF6BrGWLMwIR09MFaZYvrA2UhbdAeSyeQ726HaWSWkexUcQ==";
       };
     };
     "@volar/language-server-1.4.1" = {
@@ -12685,13 +12694,13 @@ let
         sha512 = "UxhiN205o8ZfTnMNhRPCtW+ncrBtqZMd+f08Xf99Je4WB+SYyv3VNnIZEQDXfaTXR6mLUgQ1mDwPsUOLKKGY8A==";
       };
     };
-    "@volar/language-server-2.1.2" = {
+    "@volar/language-server-2.2.5" = {
       name = "_at_volar_slash_language-server";
       packageName = "@volar/language-server";
-      version = "2.1.2";
+      version = "2.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@volar/language-server/-/language-server-2.1.2.tgz";
-        sha512 = "5NR5Ztg+OxvDI4oRrjS0/4ZVPumWwhVq5acuK2BJbakG1kJXViYI9NOWiWITMjnliPvf12TEcSrVDBmIq54DOg==";
+        url = "https://registry.npmjs.org/@volar/language-server/-/language-server-2.2.5.tgz";
+        sha512 = "PV/jkUkI+m72HTXwnY7hsGqLY3VNi96ZRoWFRzVC9QG/853bixxjveXPJIiydMJ9I739lO3kcj3hnGrF5Sm+HA==";
       };
     };
     "@volar/language-service-1.4.1" = {
@@ -12703,22 +12712,22 @@ let
         sha512 = "F30uT+xk20ZYpxRwNW9xBEoErSqd9zNW7iuFwSIX9bYO/12RLjB2I+vgM/GdPZnzZ37imXa76ykwqTRXrafigQ==";
       };
     };
-    "@volar/language-service-2.1.2" = {
+    "@volar/language-service-2.2.5" = {
       name = "_at_volar_slash_language-service";
       packageName = "@volar/language-service";
-      version = "2.1.2";
+      version = "2.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@volar/language-service/-/language-service-2.1.2.tgz";
-        sha512 = "CmVbbKdqzVq+0FT67hfELdHpboqXhKXh6EjypypuFX5ptIRftHZdkaq3/lCCa46EHxS5tvE44jn+s7faN4iRDA==";
+        url = "https://registry.npmjs.org/@volar/language-service/-/language-service-2.2.5.tgz";
+        sha512 = "a97e/0uCe+uSu23F4zvgvldqJtZe6jugQeEHWjTfhgOEO8+Be0t5CZNNVItQqmPyAsD8eElg0S/cP6uxvCmCSQ==";
       };
     };
-    "@volar/snapshot-document-2.1.2" = {
+    "@volar/snapshot-document-2.2.5" = {
       name = "_at_volar_slash_snapshot-document";
       packageName = "@volar/snapshot-document";
-      version = "2.1.2";
+      version = "2.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@volar/snapshot-document/-/snapshot-document-2.1.2.tgz";
-        sha512 = "ZpJIBZrdm/Gx4jC/zn8H+O6H5vZZwY7B5CMTxl9y8HvcqlePOyDi+VkX8pjQz1VFG9Z5Z+Bau/RL6exqkoVDDA==";
+        url = "https://registry.npmjs.org/@volar/snapshot-document/-/snapshot-document-2.2.5.tgz";
+        sha512 = "MTOvWVKxM7ugKO3Amffkv2pND03fe2JtfygYaputqjVFML7YxtTXj8SPnI2pODLeSwOKzDYL6Q8r5j6Y5AgUzQ==";
       };
     };
     "@volar/source-map-1.4.1" = {
@@ -12730,22 +12739,22 @@ let
         sha512 = "bZ46ad72dsbzuOWPUtJjBXkzSQzzSejuR3CT81+GvTEI2E994D8JPXzM3tl98zyCNnjgs4OkRyliImL1dvJ5BA==";
       };
     };
-    "@volar/source-map-2.1.2" = {
+    "@volar/source-map-2.2.5" = {
       name = "_at_volar_slash_source-map";
       packageName = "@volar/source-map";
-      version = "2.1.2";
+      version = "2.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@volar/source-map/-/source-map-2.1.2.tgz";
-        sha512 = "yFJqsuLm1OaWrsz9E3yd3bJcYIlHqdZ8MbmIoZLrAzMYQDcoF26/INIhgziEXSdyHc8xd7rd/tJdSnUyh0gH4Q==";
+        url = "https://registry.npmjs.org/@volar/source-map/-/source-map-2.2.5.tgz";
+        sha512 = "wrOEIiZNf4E+PWB0AxyM4tfhkfldPsb3bxg8N6FHrxJH2ohar7aGu48e98bp3pR9HUA7P/pR9VrLmkTrgCCnWQ==";
       };
     };
-    "@volar/typescript-2.1.2" = {
+    "@volar/typescript-2.2.5" = {
       name = "_at_volar_slash_typescript";
       packageName = "@volar/typescript";
-      version = "2.1.2";
+      version = "2.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@volar/typescript/-/typescript-2.1.2.tgz";
-        sha512 = "lhTancZqamvaLvoz0u/uth8dpudENNt2LFZOWCw9JZiX14xRFhdhfzmphiCRb7am9E6qAJSbdS/gMt1utXAoHQ==";
+        url = "https://registry.npmjs.org/@volar/typescript/-/typescript-2.2.5.tgz";
+        sha512 = "eSV/n75+ppfEVugMC/salZsI44nXDPAyL6+iTYCNLtiLHGJsnMv9GwiDMujrvAUj/aLQyqRJgYtXRoxop2clCw==";
       };
     };
     "@volar/vue-language-core-1.6.5" = {
@@ -12766,22 +12775,13 @@ let
         sha512 = "2uZPvDfo8Bspq9u+RaQhsdONFhu35HBS7/ZDXhhmhyMfcN327e1vnvAhHPDfOb8XNFg/Cj54rVKegANpKZJTOg==";
       };
     };
-    "@vscode/emmet-helper-2.8.4" = {
+    "@vscode/emmet-helper-2.9.3" = {
       name = "_at_vscode_slash_emmet-helper";
       packageName = "@vscode/emmet-helper";
-      version = "2.8.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@vscode/emmet-helper/-/emmet-helper-2.8.4.tgz";
-        sha512 = "lUki5QLS47bz/U8IlG9VQ+1lfxMtxMZENmU5nu4Z71eOD5j9FK0SmYGL5NiVJg9WBWeAU0VxRADMY2Qpq7BfVg==";
-      };
-    };
-    "@vscode/emmet-helper-2.9.2" = {
-      name = "_at_vscode_slash_emmet-helper";
-      packageName = "@vscode/emmet-helper";
-      version = "2.9.2";
+      version = "2.9.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vscode/emmet-helper/-/emmet-helper-2.9.2.tgz";
-        sha512 = "MaGuyW+fa13q3aYsluKqclmh62Hgp0BpKIqS66fCxfOaBcVQ1OnMQxRRgQUYnCkxFISAQlkJ0qWWPyXjro1Qrg==";
+        url = "https://registry.npmjs.org/@vscode/emmet-helper/-/emmet-helper-2.9.3.tgz";
+        sha512 = "rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==";
       };
     };
     "@vscode/l10n-0.0.11" = {
@@ -12811,22 +12811,22 @@ let
         sha512 = "KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==";
       };
     };
-    "@vscode/test-electron-2.3.9" = {
+    "@vscode/test-electron-2.4.0" = {
       name = "_at_vscode_slash_test-electron";
       packageName = "@vscode/test-electron";
-      version = "2.3.9";
+      version = "2.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.3.9.tgz";
-        sha512 = "z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA==";
+        url = "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.4.0.tgz";
+        sha512 = "yojuDFEjohx6Jb+x949JRNtSn6Wk2FAh4MldLE3ck9cfvCqzwxF32QsNy1T9Oe4oT+ZfFcg0uPUCajJzOmPlTA==";
       };
     };
-    "@vscode/vsce-2.24.0" = {
+    "@vscode/vsce-2.26.1" = {
       name = "_at_vscode_slash_vsce";
       packageName = "@vscode/vsce";
-      version = "2.24.0";
+      version = "2.26.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vscode/vsce/-/vsce-2.24.0.tgz";
-        sha512 = "p6CIXpH5HXDqmUkgFXvIKTjZpZxy/uDx4d/UsfhS9vQUun43KDNUbYeZocyAHgqcJlPEurgArHz9te1PPiqPyA==";
+        url = "https://registry.npmjs.org/@vscode/vsce/-/vsce-2.26.1.tgz";
+        sha512 = "QOG6Ht7V93nhwcBxPWcG33UK0qDGEoJdg0xtVeaTN27W6PGdMJUJGTPhB/sNHUIFKwvwzv/zMAHvDgMNXbcwlA==";
       };
     };
     "@vue/cli-shared-utils-5.0.8" = {
@@ -12865,22 +12865,22 @@ let
         sha512 = "jNYQ+3z7HDZ3IR3Z3Dlo3yOPbHexpygkn2IJ7sjA62oGolnNWeF7kvpLwni18l8N5InhS66m9w31an1Fs5pCZA==";
       };
     };
-    "@vue/compiler-core-3.4.21" = {
+    "@vue/compiler-core-3.4.27" = {
       name = "_at_vue_slash_compiler-core";
       packageName = "@vue/compiler-core";
-      version = "3.4.21";
+      version = "3.4.27";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.21.tgz";
-        sha512 = "MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==";
+        url = "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.27.tgz";
+        sha512 = "E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==";
       };
     };
-    "@vue/compiler-dom-3.4.21" = {
+    "@vue/compiler-dom-3.4.27" = {
       name = "_at_vue_slash_compiler-dom";
       packageName = "@vue/compiler-dom";
-      version = "3.4.21";
+      version = "3.4.27";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.21.tgz";
-        sha512 = "IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==";
+        url = "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz";
+        sha512 = "kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==";
       };
     };
     "@vue/compiler-sfc-2.7.16" = {
@@ -12892,40 +12892,40 @@ let
         sha512 = "KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==";
       };
     };
-    "@vue/compiler-sfc-3.4.21" = {
+    "@vue/compiler-sfc-3.4.27" = {
       name = "_at_vue_slash_compiler-sfc";
       packageName = "@vue/compiler-sfc";
-      version = "3.4.21";
+      version = "3.4.27";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.21.tgz";
-        sha512 = "me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==";
+        url = "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.27.tgz";
+        sha512 = "nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==";
       };
     };
-    "@vue/compiler-ssr-3.4.21" = {
+    "@vue/compiler-ssr-3.4.27" = {
       name = "_at_vue_slash_compiler-ssr";
       packageName = "@vue/compiler-ssr";
-      version = "3.4.21";
+      version = "3.4.27";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.21.tgz";
-        sha512 = "M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==";
+        url = "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz";
+        sha512 = "CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==";
       };
     };
-    "@vue/reactivity-3.4.21" = {
+    "@vue/reactivity-3.4.27" = {
       name = "_at_vue_slash_reactivity";
       packageName = "@vue/reactivity";
-      version = "3.4.21";
+      version = "3.4.27";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.21.tgz";
-        sha512 = "UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw==";
+        url = "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.27.tgz";
+        sha512 = "kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA==";
       };
     };
-    "@vue/shared-3.4.21" = {
+    "@vue/shared-3.4.27" = {
       name = "_at_vue_slash_shared";
       packageName = "@vue/shared";
-      version = "3.4.21";
+      version = "3.4.27";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/shared/-/shared-3.4.21.tgz";
-        sha512 = "PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==";
+        url = "https://registry.npmjs.org/@vue/shared/-/shared-3.4.27.tgz";
+        sha512 = "DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==";
       };
     };
     "@webassemblyjs/ast-1.11.1" = {
@@ -13396,22 +13396,22 @@ let
         sha512 = "AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w==";
       };
     };
-    "@whatwg-node/fetch-0.9.17" = {
+    "@whatwg-node/fetch-0.9.18" = {
       name = "_at_whatwg-node_slash_fetch";
       packageName = "@whatwg-node/fetch";
-      version = "0.9.17";
+      version = "0.9.18";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.9.17.tgz";
-        sha512 = "TDYP3CpCrxwxpiNY0UMNf096H5Ihf67BK1iKGegQl5u9SlpEDYrvnV71gWBGJm+Xm31qOy8ATgma9rm8Pe7/5Q==";
+        url = "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.9.18.tgz";
+        sha512 = "hqoz6StCW+AjV/3N+vg0s1ah82ptdVUb9nH2ttj3UbySOXUvytWw2yqy8c1cKzyRk6mDD00G47qS3fZI9/gMjg==";
       };
     };
-    "@whatwg-node/node-fetch-0.5.8" = {
+    "@whatwg-node/node-fetch-0.5.11" = {
       name = "_at_whatwg-node_slash_node-fetch";
       packageName = "@whatwg-node/node-fetch";
-      version = "0.5.8";
+      version = "0.5.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.5.8.tgz";
-        sha512 = "rB+2P3oi9fD4TcsijkflJAQqOh4yZrPgOV4fGaDgCdOqqwTicJvL2nnVbr3comW8bxEuypOcyE1AtBtkpip0Gw==";
+        url = "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.5.11.tgz";
+        sha512 = "LS8tSomZa3YHnntpWt3PP43iFEEl6YeIsvDakczHBKlay5LdkXFr8w7v8H6akpG5nRrzydyB0k1iE2eoL6aKIQ==";
       };
     };
     "@xmldom/xmldom-0.7.13" = {
@@ -13738,13 +13738,13 @@ let
         sha512 = "aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q==";
       };
     };
-    "@zeit/schemas-2.29.0" = {
+    "@zeit/schemas-2.36.0" = {
       name = "_at_zeit_slash_schemas";
       packageName = "@zeit/schemas";
-      version = "2.29.0";
+      version = "2.36.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.29.0.tgz";
-        sha512 = "g5QiLIfbg3pLuYUJPlisNKY+epQJTcMDsOnVNkscrDP1oi7vmJnzOANYJI/1pZcVJ6umUkBv3aFtlg1UvUHGzA==";
+        url = "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.36.0.tgz";
+        sha512 = "7kjMwcChYEzMKjeex9ZFXkt1AyNov9R5HZtjBKVsmVpw7pa7ZtlCGvCBC2vnnXctaYN+aRI61HjIqeetZW5ROg==";
       };
     };
     "@zkochan/cmd-shim-5.4.1" = {
@@ -13756,13 +13756,13 @@ let
         sha512 = "odWb1qUzt0dIOEUPyWBEpFDYQPRjEMr/dbHHAfgBkVkYR9aO7Zo+I7oYWrXIxl+cKlC7+49ftPm8uJxL1MA9kw==";
       };
     };
-    "@zkochan/js-yaml-0.0.6" = {
+    "@zkochan/js-yaml-0.0.7" = {
       name = "_at_zkochan_slash_js-yaml";
       packageName = "@zkochan/js-yaml";
-      version = "0.0.6";
+      version = "0.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz";
-        sha512 = "nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==";
+        url = "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.7.tgz";
+        sha512 = "nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==";
       };
     };
     "CSSselect-0.4.1" = {
@@ -13990,13 +13990,13 @@ let
         sha512 = "cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==";
       };
     };
-    "acorn-import-attributes-1.9.2" = {
+    "acorn-import-attributes-1.9.5" = {
       name = "acorn-import-attributes";
       packageName = "acorn-import-attributes";
-      version = "1.9.2";
+      version = "1.9.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.2.tgz";
-        sha512 = "O+nfJwNolEA771IYJaiLWK1UAwjNsQmZbTRqqwBYxCgVQTmpFEMvBw6LOIQV0Me339L5UMVYFyRohGnGlQDdIQ==";
+        url = "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz";
+        sha512 = "n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==";
       };
     };
     "acorn-jsx-3.0.1" = {
@@ -14098,6 +14098,15 @@ let
         sha512 = "ByxmJgv8vjmDcl3IDToxL2yrWFrRtFpZAToY0f46XFXl8zS081t7El5MXIodwm7RC6DhHBRoOSMLFSPKCtHukg==";
       };
     };
+    "addr-to-ip-port-2.0.0" = {
+      name = "addr-to-ip-port";
+      packageName = "addr-to-ip-port";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/addr-to-ip-port/-/addr-to-ip-port-2.0.0.tgz";
+        sha512 = "9bYbtjamtdLHZSqVIUXhilOryNPiL+x+Q5J/Unpg4VY3ZIkK3fT52UoErj1NdUeVm3J1t2iBEAur4Ywbl/bahw==";
+      };
+    };
     "address-1.2.2" = {
       name = "address";
       packageName = "address";
@@ -14107,15 +14116,6 @@ let
         sha512 = "4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==";
       };
     };
-    "adverb-where-0.2.6" = {
-      name = "adverb-where";
-      packageName = "adverb-where";
-      version = "0.2.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/adverb-where/-/adverb-where-0.2.6.tgz";
-        sha512 = "uVazUDEPYpBSVRjEDTzO6hVXh9X/eQb+gobzDpqdzMiM1MkfGxfPtgN8YerBjAeDkoABZprsOwhSZnY4X3knnw==";
-      };
-    };
     "after-0.8.1" = {
       name = "after";
       packageName = "after";
@@ -14152,13 +14152,13 @@ let
         sha512 = "RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==";
       };
     };
-    "agent-base-7.1.0" = {
+    "agent-base-7.1.1" = {
       name = "agent-base";
       packageName = "agent-base";
-      version = "7.1.0";
+      version = "7.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz";
-        sha512 = "o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==";
+        url = "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz";
+        sha512 = "H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==";
       };
     };
     "agentkeepalive-4.5.0" = {
@@ -14197,15 +14197,6 @@ let
         sha512 = "gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==";
       };
     };
-    "airplay-js-0.3.0" = {
-      name = "airplay-js";
-      packageName = "airplay-js";
-      version = "0.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/airplay-js/-/airplay-js-0.3.0.tgz";
-        sha512 = "V7nbJXSP352Hp5dWNUo3UZ9WY6CupKmXmP5XDBjuAKLKA/CNs9tvVGvVxIL/9l+oJjZc5h0m4JUUKs7eHO8Meg==";
-      };
-    };
     "airplay-protocol-2.0.2" = {
       name = "airplay-protocol";
       packageName = "airplay-protocol";
@@ -14260,6 +14251,24 @@ let
         sha512 = "sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==";
       };
     };
+    "ajv-8.13.0" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "8.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz";
+        sha512 = "PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==";
+      };
+    };
+    "ajv-8.15.0" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "8.15.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv/-/ajv-8.15.0.tgz";
+        sha512 = "15BTtQUOsSrmHCy+B4VnAiJAJxJ8IFgu6fcjFQF3jQYZ78nLSQthlFg4ehp+NLIyfvFgOlxNsjKIEhydtFPVHQ==";
+      };
+    };
     "ajv-8.6.3" = {
       name = "ajv";
       packageName = "ajv";
@@ -14296,6 +14305,15 @@ let
         sha512 = "Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==";
       };
     };
+    "ajv-formats-3.0.1" = {
+      name = "ajv-formats";
+      packageName = "ajv-formats";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz";
+        sha512 = "8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==";
+      };
+    };
     "ajv-keywords-1.5.1" = {
       name = "ajv-keywords";
       packageName = "ajv-keywords";
@@ -14323,15 +14341,6 @@ let
         sha512 = "YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==";
       };
     };
-    "alex-11.0.1" = {
-      name = "alex";
-      packageName = "alex";
-      version = "11.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/alex/-/alex-11.0.1.tgz";
-        sha512 = "rKLBZxD/lvuykdC6XB8ma9YjDl46j9ayHROZUtC1yJ2jlGpoP7RZR1tBBSjtlr260ixIW6iCkqAnHzmti5Q6CQ==";
-      };
-    };
     "align-text-0.1.4" = {
       name = "align-text";
       packageName = "align-text";
@@ -14386,15 +14395,6 @@ let
         sha512 = "IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==";
       };
     };
-    "ansi-colors-1.1.0" = {
-      name = "ansi-colors";
-      packageName = "ansi-colors";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz";
-        sha512 = "SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==";
-      };
-    };
     "ansi-colors-4.1.1" = {
       name = "ansi-colors";
       packageName = "ansi-colors";
@@ -14458,13 +14458,22 @@ let
         sha512 = "5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==";
       };
     };
-    "ansi-escapes-6.2.0" = {
+    "ansi-escapes-6.2.1" = {
       name = "ansi-escapes";
       packageName = "ansi-escapes";
-      version = "6.2.0";
+      version = "6.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz";
+        sha512 = "4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==";
+      };
+    };
+    "ansi-escapes-7.0.0" = {
+      name = "ansi-escapes";
+      packageName = "ansi-escapes";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz";
-        sha512 = "kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==";
+        url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz";
+        sha512 = "GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==";
       };
     };
     "ansi-gray-0.1.1" = {
@@ -14755,15 +14764,6 @@ let
         sha512 = "ZI/8rTE4ww8BHktsVpb91Sdq7Cb71rdSkXELSwdSR0eXu600/sY+1UXhTWdiJvk+Eq5ljqoHLwLbY2+Clq2b9A==";
       };
     };
-    "append-buffer-1.0.2" = {
-      name = "append-buffer";
-      packageName = "append-buffer";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz";
-        sha512 = "WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==";
-      };
-    };
     "append-field-1.0.0" = {
       name = "append-field";
       packageName = "append-field";
@@ -15016,15 +15016,6 @@ let
         sha512 = "YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==";
       };
     };
-    "arr-filter-1.1.2" = {
-      name = "arr-filter";
-      packageName = "arr-filter";
-      version = "1.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz";
-        sha512 = "A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA==";
-      };
-    };
     "arr-flatten-1.1.0" = {
       name = "arr-flatten";
       packageName = "arr-flatten";
@@ -15034,15 +15025,6 @@ let
         sha512 = "L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==";
       };
     };
-    "arr-map-2.0.2" = {
-      name = "arr-map";
-      packageName = "arr-map";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz";
-        sha512 = "tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw==";
-      };
-    };
     "arr-rotate-1.0.0" = {
       name = "arr-rotate";
       packageName = "arr-rotate";
@@ -15160,22 +15142,13 @@ let
         sha512 = "c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==";
       };
     };
-    "array-includes-3.1.7" = {
+    "array-includes-3.1.8" = {
       name = "array-includes";
       packageName = "array-includes";
-      version = "3.1.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz";
-        sha512 = "dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==";
-      };
-    };
-    "array-initial-1.1.0" = {
-      name = "array-initial";
-      packageName = "array-initial";
-      version = "1.1.0";
+      version = "3.1.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz";
-        sha512 = "BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw==";
+        url = "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz";
+        sha512 = "itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==";
       };
     };
     "array-iterate-1.1.4" = {
@@ -15196,15 +15169,6 @@ let
         sha512 = "I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==";
       };
     };
-    "array-last-1.3.0" = {
-      name = "array-last";
-      packageName = "array-last";
-      version = "1.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz";
-        sha512 = "eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==";
-      };
-    };
     "array-slice-1.1.0" = {
       name = "array-slice";
       packageName = "array-slice";
@@ -15214,15 +15178,6 @@ let
         sha512 = "B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==";
       };
     };
-    "array-sort-1.0.0" = {
-      name = "array-sort";
-      packageName = "array-sort";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz";
-        sha512 = "ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==";
-      };
-    };
     "array-timsort-1.0.3" = {
       name = "array-timsort";
       packageName = "array-timsort";
@@ -15295,13 +15250,13 @@ let
         sha512 = "SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==";
       };
     };
-    "array.prototype.findlastindex-1.2.4" = {
+    "array.prototype.findlastindex-1.2.5" = {
       name = "array.prototype.findlastindex";
       packageName = "array.prototype.findlastindex";
-      version = "1.2.4";
+      version = "1.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz";
-        sha512 = "hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==";
+        url = "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz";
+        sha512 = "zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==";
       };
     };
     "array.prototype.flat-1.3.2" = {
@@ -15322,22 +15277,22 @@ let
         sha512 = "Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==";
       };
     };
-    "array.prototype.reduce-1.0.6" = {
+    "array.prototype.reduce-1.0.7" = {
       name = "array.prototype.reduce";
       packageName = "array.prototype.reduce";
-      version = "1.0.6";
+      version = "1.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz";
-        sha512 = "UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==";
+        url = "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz";
+        sha512 = "mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==";
       };
     };
-    "array.prototype.tosorted-1.1.3" = {
+    "array.prototype.tosorted-1.1.4" = {
       name = "array.prototype.tosorted";
       packageName = "array.prototype.tosorted";
-      version = "1.1.3";
+      version = "1.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz";
-        sha512 = "/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==";
+        url = "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz";
+        sha512 = "p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==";
       };
     };
     "arraybuffer.prototype.slice-1.0.3" = {
@@ -15583,13 +15538,13 @@ let
         sha512 = "ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==";
       };
     };
-    "astrojs-compiler-sync-0.3.5" = {
+    "astrojs-compiler-sync-1.0.0" = {
       name = "astrojs-compiler-sync";
       packageName = "astrojs-compiler-sync";
-      version = "0.3.5";
+      version = "1.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/astrojs-compiler-sync/-/astrojs-compiler-sync-0.3.5.tgz";
-        sha512 = "y420rhIIJ2HHDkYeqKArBHSdJNIIGMztLH90KGIX3zjcJyt/cr9Z2wYA8CP5J1w6KE7xqMh0DAkhfjhNDpQb2Q==";
+        url = "https://registry.npmjs.org/astrojs-compiler-sync/-/astrojs-compiler-sync-1.0.0.tgz";
+        sha512 = "IM6FxpMoBxkGGdKppkFHNQIC9Wge7jspG2MIJff8DOhG41USNJLxJfxRm7wnkTKWlYK5Y1YFFNYr2vUUKkI8sw==";
       };
     };
     "async-0.1.22" = {
@@ -15664,13 +15619,13 @@ let
         sha512 = "baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==";
       };
     };
-    "async-done-1.3.2" = {
+    "async-done-2.0.0" = {
       name = "async-done";
       packageName = "async-done";
-      version = "1.3.2";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz";
-        sha512 = "uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==";
+        url = "https://registry.npmjs.org/async-done/-/async-done-2.0.0.tgz";
+        sha512 = "j0s3bzYq9yKIVLKGE/tWlCpa3PfFLcrDZLTSVdnnCTGagXuXBJO4SsY9Xdk/fQBirCkH4evW5xOeJXqlAQFdsw==";
       };
     };
     "async-each-1.0.6" = {
@@ -15790,13 +15745,13 @@ let
         sha512 = "tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==";
       };
     };
-    "async-settle-1.0.0" = {
+    "async-settle-2.0.0" = {
       name = "async-settle";
       packageName = "async-settle";
-      version = "1.0.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz";
-        sha512 = "VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw==";
+        url = "https://registry.npmjs.org/async-settle/-/async-settle-2.0.0.tgz";
+        sha512 = "Obu/KE8FurfQRN6ODdHN9LuXqwC+JFIM9NRyZqJJ4ZfLJmIYN9Rg0/kb+wF70VV5+fJusTMQlJ1t5rF7J/ETdg==";
       };
     };
     "asynckit-0.4.0" = {
@@ -15826,13 +15781,13 @@ let
         sha512 = "Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==";
       };
     };
-    "atomically-2.0.2" = {
+    "atomically-2.0.3" = {
       name = "atomically";
       packageName = "atomically";
-      version = "2.0.2";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/atomically/-/atomically-2.0.2.tgz";
-        sha512 = "Xfmb4q5QV7uqTlVdMSTtO5eF4DCHfNOdaPyKlbFShkzeNP+3lj3yjjcbdjSmEY4+pDBKJ9g26aP+ImTe88UHoQ==";
+        url = "https://registry.npmjs.org/atomically/-/atomically-2.0.3.tgz";
+        sha512 = "kU6FmrwZ3Lx7/7y3hPS5QnbJfaohcIul5fGqf7ok+4KklIEk9tJ0C2IQPdacSbVUWv6zVHXEBWoWd6NrVMT7Cw==";
       };
     };
     "author-regex-1.0.0" = {
@@ -15862,13 +15817,13 @@ let
         sha512 = "ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==";
       };
     };
-    "autoprefixer-10.4.18" = {
+    "autoprefixer-10.4.19" = {
       name = "autoprefixer";
       packageName = "autoprefixer";
-      version = "10.4.18";
+      version = "10.4.19";
       src = fetchurl {
-        url = "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz";
-        sha512 = "1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==";
+        url = "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz";
+        sha512 = "BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==";
       };
     };
     "autoprefixer-9.8.8" = {
@@ -15898,13 +15853,13 @@ let
         sha512 = "d1W2aNSYcz/sxYO4pMGX9vq65qOTu0P800epMud+6cYYX0QcT7zyqcxec3VWzpgvdXo57UWmVbZpLMjX2m1I7Q==";
       };
     };
-    "aws-crt-1.21.1" = {
+    "aws-crt-1.21.2" = {
       name = "aws-crt";
       packageName = "aws-crt";
-      version = "1.21.1";
+      version = "1.21.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws-crt/-/aws-crt-1.21.1.tgz";
-        sha512 = "pSLf1Xg5P2Owa+n/82hkEXV22q56kbxJOxX4FB5DvvHpTokOygz6nFj+/cS9dnv3tNZgOiUjTvsz0Xk1ldyi0w==";
+        url = "https://registry.npmjs.org/aws-crt/-/aws-crt-1.21.2.tgz";
+        sha512 = "/jq5yJwdethIaC+HyqCrgW2ZqxjUURBo/6CIfnD0HbpIE+vLIPQxENW/pp3Atu20Hm2WkjM9diJD4zJycK+olA==";
       };
     };
     "aws-sdk-2.1340.0" = {
@@ -15934,13 +15889,13 @@ let
         sha512 = "08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==";
       };
     };
-    "aws4-1.12.0" = {
+    "aws4-1.13.0" = {
       name = "aws4";
       packageName = "aws4";
-      version = "1.12.0";
+      version = "1.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz";
-        sha512 = "NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==";
+        url = "https://registry.npmjs.org/aws4/-/aws4-1.13.0.tgz";
+        sha512 = "3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==";
       };
     };
     "axios-0.19.2" = {
@@ -15997,13 +15952,13 @@ let
         sha512 = "S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==";
       };
     };
-    "axios-1.6.8" = {
+    "axios-1.7.2" = {
       name = "axios";
       packageName = "axios";
-      version = "1.6.8";
+      version = "1.7.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz";
-        sha512 = "v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==";
+        url = "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz";
+        sha512 = "2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==";
       };
     };
     "axobject-query-4.0.0" = {
@@ -16015,13 +15970,13 @@ let
         sha512 = "+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==";
       };
     };
-    "azure-devops-node-api-11.2.0" = {
+    "azure-devops-node-api-12.5.0" = {
       name = "azure-devops-node-api";
       packageName = "azure-devops-node-api";
-      version = "11.2.0";
+      version = "12.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-11.2.0.tgz";
-        sha512 = "XdiGPhrpaT5J8wdERRKs5g8E0Zy1pvOYTli7z9E8nmOn3YGp4FhtjhrOyFmX/8veWCwdI69mCHKJw6l+4J/bHA==";
+        url = "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-12.5.0.tgz";
+        sha512 = "R5eFskGvOm3U/GzeAuxRkUsAl0hrAwGgWn6zAd2KrZmrEhWZVqLew4OOupbQlXUuojUzpGtq62SmdhJ06N88og==";
       };
     };
     "b4a-1.6.6" = {
@@ -16078,31 +16033,31 @@ let
         sha512 = "MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA==";
       };
     };
-    "babel-plugin-polyfill-corejs2-0.4.10" = {
+    "babel-plugin-polyfill-corejs2-0.4.11" = {
       name = "babel-plugin-polyfill-corejs2";
       packageName = "babel-plugin-polyfill-corejs2";
-      version = "0.4.10";
+      version = "0.4.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz";
-        sha512 = "rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==";
+        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz";
+        sha512 = "sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==";
       };
     };
-    "babel-plugin-polyfill-corejs3-0.9.0" = {
+    "babel-plugin-polyfill-corejs3-0.10.4" = {
       name = "babel-plugin-polyfill-corejs3";
       packageName = "babel-plugin-polyfill-corejs3";
-      version = "0.9.0";
+      version = "0.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz";
-        sha512 = "7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==";
+        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz";
+        sha512 = "25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==";
       };
     };
-    "babel-plugin-polyfill-regenerator-0.5.5" = {
+    "babel-plugin-polyfill-regenerator-0.6.2" = {
       name = "babel-plugin-polyfill-regenerator";
       packageName = "babel-plugin-polyfill-regenerator";
-      version = "0.5.5";
+      version = "0.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz";
-        sha512 = "OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==";
+        url = "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz";
+        sha512 = "2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==";
       };
     };
     "babel-plugin-react-native-web-0.18.12" = {
@@ -16150,13 +16105,13 @@ let
         sha512 = "1Niw1j7GKl8L3vyKBKbzKeJ//uPoQpr5RCr5/GV2Fto+U8OqcTWXJH/Ats2lOMYP4sVjRHwSIH+HUPdLkORZ9w==";
       };
     };
-    "bach-1.2.0" = {
+    "bach-2.0.1" = {
       name = "bach";
       packageName = "bach";
-      version = "1.2.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz";
-        sha512 = "bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg==";
+        url = "https://registry.npmjs.org/bach/-/bach-2.0.1.tgz";
+        sha512 = "A7bvGMGiTOxGMpNupYl9HQTf0FFDNF4VCmks4PJpFyN1AX2pdKuxuwdvUz2Hu388wcgp+OvGFNsumBfFNkR7eg==";
       };
     };
     "backo2-1.0.2" = {
@@ -16222,6 +16177,15 @@ let
         sha512 = "1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==";
       };
     };
+    "bare-events-2.3.1" = {
+      name = "bare-events";
+      packageName = "bare-events";
+      version = "2.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bare-events/-/bare-events-2.3.1.tgz";
+        sha512 = "sJnSOTVESURZ61XgEleqmP255T6zTYwHPwE4r6SssIh0U9/uDvfpdoJYpVUerJJZH2fueO+CdT8ZT+OC/7aZDA==";
+      };
+    };
     "base-0.11.2" = {
       name = "base";
       packageName = "base";
@@ -16276,6 +16240,15 @@ let
         sha512 = "437oANT9tP582zZMwSvZGy2nmSeAb8DW2me3y+Uv1Wp2Rulr8Mqlyrv3E7MLxmsiaPSMMDmiDVzgE+e8zlMx9g==";
       };
     };
+    "base64-arraybuffer-1.0.2" = {
+      name = "base64-arraybuffer";
+      packageName = "base64-arraybuffer";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz";
+        sha512 = "I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==";
+      };
+    };
     "base64-js-0.0.8" = {
       name = "base64-js";
       packageName = "base64-js";
@@ -16321,13 +16294,13 @@ let
         sha512 = "lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==";
       };
     };
-    "bash-language-server-5.1.2" = {
+    "bash-language-server-5.3.4" = {
       name = "bash-language-server";
       packageName = "bash-language-server";
-      version = "5.1.2";
+      version = "5.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bash-language-server/-/bash-language-server-5.1.2.tgz";
-        sha512 = "hXgN71VWVV2nQVE1ej7scAHVGvRAxoYhs2KwzvJq+lSqp4VQ60M0Cff1QzJKJM/cTyLWNjabb98bDGZgDMMh2g==";
+        url = "https://registry.npmjs.org/bash-language-server/-/bash-language-server-5.3.4.tgz";
+        sha512 = "9GEzJVOOyU7ZQbDI/uFc8N9FGuun6UZv1qB9bNUbehIb1gA4pOpkIYtqtfSq0XQSO25hMp8d/tzsmFJmeX+dQg==";
       };
     };
     "basic-auth-2.0.1" = {
@@ -16447,6 +16420,15 @@ let
         sha512 = "D/vrAD4dLVX23NalHwb8dSvsUsxeRPO8Y7ToKA015JQYq69MLDOMkC0uGZYA/MPpltLO8rt8eqFC2j8DxjTZ/w==";
       };
     };
+    "bencode-4.0.0" = {
+      name = "bencode";
+      packageName = "bencode";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bencode/-/bencode-4.0.0.tgz";
+        sha512 = "AERXw18df0pF3ziGOCyUjqKZBVNH8HV3lBxnx5w0qtgMIk4a1wb9BkcCQbkp9Zstfrn/dzRwl7MmUHHocX3sRQ==";
+      };
+    };
     "bep53-range-1.1.1" = {
       name = "bep53-range";
       packageName = "bep53-range";
@@ -16456,6 +16438,15 @@ let
         sha512 = "ct6s33iiwRCUPp9KXnJ4QMWDgHIgaw36caK/5XEQ9L8dCzSQlJt1Vk6VmHh1VD4AlGCAI4C2zmtfItifBBPrhQ==";
       };
     };
+    "bep53-range-2.0.0" = {
+      name = "bep53-range";
+      packageName = "bep53-range";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bep53-range/-/bep53-range-2.0.0.tgz";
+        sha512 = "sMm2sV5PRs0YOVk0LTKtjuIprVzxgTQUsrGX/7Yph2Rm4FO2Fqqtq7hNjsOB5xezM4v4+5rljCgK++UeQJZguA==";
+      };
+    };
     "better-assert-1.0.2" = {
       name = "better-assert";
       packageName = "better-assert";
@@ -16546,15 +16537,6 @@ let
         sha512 = "Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==";
       };
     };
-    "binary-search-1.3.6" = {
-      name = "binary-search";
-      packageName = "binary-search";
-      version = "1.3.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/binary-search/-/binary-search-1.3.6.tgz";
-        sha512 = "nbE1WxOTTrUWIfsfZ4aHGYu5DOuNkbxGokjV6Z2kxfJK3uaAb8zNK1muzOeipoLHZjInT4Br88BHpzevc681xA==";
-      };
-    };
     "binary-search-tree-0.2.5" = {
       name = "binary-search-tree";
       packageName = "binary-search-tree";
@@ -16609,13 +16591,13 @@ let
         sha512 = "kUTatQb/mBd8uhvdLrUkouGDBUQiJaIOvPlptUwOWp6MFqih4d1MiVf0m3ATxfZSzu+LjW/awFeABltYa62uIA==";
       };
     };
-    "bittorrent-dht-10.0.7" = {
+    "bittorrent-dht-11.0.6" = {
       name = "bittorrent-dht";
       packageName = "bittorrent-dht";
-      version = "10.0.7";
+      version = "11.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bittorrent-dht/-/bittorrent-dht-10.0.7.tgz";
-        sha512 = "o6elCANGteECXz82LFqG1Ov2fG4uNzfUU7pBMx9ixxKUh99ZXNrhbiNLRNN2F2vBnqKSN7SHlUW4LJ5Z2u1eKw==";
+        url = "https://registry.npmjs.org/bittorrent-dht/-/bittorrent-dht-11.0.6.tgz";
+        sha512 = "iDScIyLDKuuXOSIlPIxnvzH3llqatVkugjn3CSPPpjcHO+4dyahHiiPRpzR39k4l9qW79YAbI/AzSjNWoLchHQ==";
       };
     };
     "bittorrent-dht-6.4.2" = {
@@ -16627,13 +16609,13 @@ let
         sha512 = "DeBunF1nL/ckThYyU3AVtHFR195zNV06Ob6bKNXA1y6X56GSKMfkNCABB45YcbZevGMW1dytFlm59D/fws5lTg==";
       };
     };
-    "bittorrent-lsd-1.1.1" = {
+    "bittorrent-lsd-2.0.0" = {
       name = "bittorrent-lsd";
       packageName = "bittorrent-lsd";
-      version = "1.1.1";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bittorrent-lsd/-/bittorrent-lsd-1.1.1.tgz";
-        sha512 = "dWxU2Mr2lU6jzIKgZrTsXgeXDCIcYpR1b6f2n89fn7juwPAYbNU04OgWjcQPLiNliY0filsX5CQAWntVErpk+Q==";
+        url = "https://registry.npmjs.org/bittorrent-lsd/-/bittorrent-lsd-2.0.0.tgz";
+        sha512 = "jV+SMTGNY1iGWjf5cPA2HMeA6axuMQRWwWELtsuZ1FmQmZwC74we92nwtDTfv1WMnLx+oqEjWRri42IHjZitSQ==";
       };
     };
     "bittorrent-peerid-1.3.6" = {
@@ -16645,31 +16627,31 @@ let
         sha512 = "VyLcUjVMEOdSpHaCG/7odvCdLbAB1y3l9A2V6WIje24uV7FkJPrQrH/RrlFmKxP89pFVDEnE+YlHaFujlFIZsg==";
       };
     };
-    "bittorrent-protocol-3.5.5" = {
+    "bittorrent-protocol-4.1.12" = {
       name = "bittorrent-protocol";
       packageName = "bittorrent-protocol";
-      version = "3.5.5";
+      version = "4.1.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bittorrent-protocol/-/bittorrent-protocol-3.5.5.tgz";
-        sha512 = "cfzO//WtJGNLHXS58a4exJCSq1U0dkP2DZCQxgADInYFPdOfV1EmtpEN9toLOluVCXJRYAdwW5H6Li/hrn697A==";
+        url = "https://registry.npmjs.org/bittorrent-protocol/-/bittorrent-protocol-4.1.12.tgz";
+        sha512 = "peyUDP5NQaiPSau24jCpPhLfDFCCK1DUE0N5xlJSPVIkgQmsVLi62N/Lm++pUNrBenfnhf6WKQo0nyN6x5dufQ==";
       };
     };
-    "bittorrent-tracker-7.7.0" = {
+    "bittorrent-tracker-11.1.0" = {
       name = "bittorrent-tracker";
       packageName = "bittorrent-tracker";
-      version = "7.7.0";
+      version = "11.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bittorrent-tracker/-/bittorrent-tracker-7.7.0.tgz";
-        sha512 = "YFgPTVRhUMncZr8tM3ige7gnViMGhKoGF23qaiISRG8xtYebTGHrMSMXsTXo6O1KbtdEI+4jzvGY1K/wdT9GUA==";
+        url = "https://registry.npmjs.org/bittorrent-tracker/-/bittorrent-tracker-11.1.0.tgz";
+        sha512 = "WKIIy1wVxFiKro5noDldW8W4C4xCjl8gHvZcG0LWM40J6VZOf7gXdrdB2/GI55+JAgrph8NGsZUeusbyzlbiQQ==";
       };
     };
-    "bittorrent-tracker-9.19.0" = {
+    "bittorrent-tracker-7.7.0" = {
       name = "bittorrent-tracker";
       packageName = "bittorrent-tracker";
-      version = "9.19.0";
+      version = "7.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bittorrent-tracker/-/bittorrent-tracker-9.19.0.tgz";
-        sha512 = "09d0aD2b+MC+zWvWajkUAKkYMynYW4tMbTKiRSthKtJZbafzEoNQSUHyND24SoCe3ZOb2fKfa6fu2INAESL9wA==";
+        url = "https://registry.npmjs.org/bittorrent-tracker/-/bittorrent-tracker-7.7.0.tgz";
+        sha512 = "YFgPTVRhUMncZr8tM3ige7gnViMGhKoGF23qaiISRG8xtYebTGHrMSMXsTXo6O1KbtdEI+4jzvGY1K/wdT9GUA==";
       };
     };
     "bitwise-xor-0.0.0" = {
@@ -16762,15 +16744,6 @@ let
         sha512 = "OorbnJVPII4DuUKbjARAe8u8EfqOmkEEaSFIyoQ7OjTHn6kafxWl0wLgoZ2rXaYd7MyLcDaU4TmhfxtwgcccMQ==";
       };
     };
-    "block-stream2-2.1.0" = {
-      name = "block-stream2";
-      packageName = "block-stream2";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/block-stream2/-/block-stream2-2.1.0.tgz";
-        sha512 = "suhjmLI57Ewpmq00qaygS8UgEq2ly2PCItenIyhMqVjo4t4pGzqMvfgJuX8iWTeSDdfSSqS6j38fL4ToNL7Pfg==";
-      };
-    };
     "bluebird-3.4.7" = {
       name = "bluebird";
       packageName = "bluebird";
@@ -16888,15 +16861,6 @@ let
         sha512 = "DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==";
       };
     };
-    "body-parser-1.20.1" = {
-      name = "body-parser";
-      packageName = "body-parser";
-      version = "1.20.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz";
-        sha512 = "jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==";
-      };
-    };
     "body-parser-1.20.2" = {
       name = "body-parser";
       packageName = "body-parser";
@@ -16942,33 +16906,6 @@ let
         sha512 = "d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==";
       };
     };
-    "bottleneck-2.19.5" = {
-      name = "bottleneck";
-      packageName = "bottleneck";
-      version = "2.19.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz";
-        sha512 = "VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==";
-      };
-    };
-    "boundary-1.0.1" = {
-      name = "boundary";
-      packageName = "boundary";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/boundary/-/boundary-1.0.1.tgz";
-        sha512 = "AaLhxHwYVh55iOTJncV3DE5o7RakEUSSj64XXEWRTiIhlp7aDI8qR0vY/k8Uw0Z234VjZi/iG/WxfrvqYPUCww==";
-      };
-    };
-    "boundary-2.0.0" = {
-      name = "boundary";
-      packageName = "boundary";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/boundary/-/boundary-2.0.0.tgz";
-        sha512 = "rJKn5ooC9u8q13IMCrW0RSp31pxBCHE3y9V/tp3TdWSLf8Em3p6Di4NBpfzbJge9YjjFEsD0RtFEjtvHL5VyEA==";
-      };
-    };
     "bower-1.8.14" = {
       name = "bower";
       packageName = "bower";
@@ -17131,13 +17068,13 @@ let
         sha512 = "aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==";
       };
     };
-    "braces-3.0.2" = {
+    "braces-3.0.3" = {
       name = "braces";
       packageName = "braces";
-      version = "3.0.2";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz";
-        sha512 = "b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==";
+        url = "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz";
+        sha512 = "yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==";
       };
     };
     "broadway-0.3.6" = {
@@ -17275,15 +17212,6 @@ let
         sha512 = "PrFwOzLEdy27VRXK2uGjmjLq1aROBG7QoQq3eKanmm6Q8vuzT0ZNFCORHh3yJgNQQooXA9tOizGv4vCOmhrvRQ==";
       };
     };
-    "browserify-package-json-1.0.1" = {
-      name = "browserify-package-json";
-      packageName = "browserify-package-json";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/browserify-package-json/-/browserify-package-json-1.0.1.tgz";
-        sha512 = "CikZxJGNyNOBERbeALo0NUUeJgHs5NyEvuYChX/PcsBV91TAvEq4hYDaWSenSieT8XwAutNnS3FGvyzIMOughQ==";
-      };
-    };
     "browserify-rsa-4.1.0" = {
       name = "browserify-rsa";
       packageName = "browserify-rsa";
@@ -17473,15 +17401,6 @@ let
         sha512 = "RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==";
       };
     };
-    "buffer-equal-1.0.1" = {
-      name = "buffer-equal";
-      packageName = "buffer-equal";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz";
-        sha512 = "QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==";
-      };
-    };
     "buffer-equal-constant-time-1.0.1" = {
       name = "buffer-equal-constant-time";
       packageName = "buffer-equal-constant-time";
@@ -17653,13 +17572,13 @@ let
         sha512 = "uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==";
       };
     };
-    "builtins-5.0.1" = {
+    "builtins-5.1.0" = {
       name = "builtins";
       packageName = "builtins";
-      version = "5.0.1";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz";
-        sha512 = "qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==";
+        url = "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz";
+        sha512 = "SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==";
       };
     };
     "bundle-name-4.1.0" = {
@@ -17797,13 +17716,13 @@ let
         sha512 = "/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==";
       };
     };
-    "cacache-18.0.2" = {
+    "cacache-18.0.3" = {
       name = "cacache";
       packageName = "cacache";
-      version = "18.0.2";
+      version = "18.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cacache/-/cacache-18.0.2.tgz";
-        sha512 = "r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==";
+        url = "https://registry.npmjs.org/cacache/-/cacache-18.0.3.tgz";
+        sha512 = "qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==";
       };
     };
     "cache-base-1.0.1" = {
@@ -17923,15 +17842,6 @@ let
         sha512 = "n+21IZC3j06YpCWaxmUy5AnVqhmCIM2bQtqQyy00HJlmStRt6kwDX5F9Z97pqwAB+G/tgSz6q/kUBbNyQzIubw==";
       };
     };
-    "caller-callsite-4.1.0" = {
-      name = "caller-callsite";
-      packageName = "caller-callsite";
-      version = "4.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/caller-callsite/-/caller-callsite-4.1.0.tgz";
-        sha512 = "99nnnGlJexTc41xwQTr+mWl15OI5PPczUJzM4YRE7QjkefMKCXGa5gfQjCOuVrD+1TjI/fevIDHg2nz3iYN5Ig==";
-      };
-    };
     "caller-path-0.1.0" = {
       name = "caller-path";
       packageName = "caller-path";
@@ -17941,15 +17851,6 @@ let
         sha512 = "UJiE1otjXPF5/x+T3zTnSFiTOEmJoGTD9HmBoxnCUwho61a2eSNn/VwtwuIBDAo2SEOv1AJ7ARI5gCmohFLu/g==";
       };
     };
-    "caller-path-3.0.1" = {
-      name = "caller-path";
-      packageName = "caller-path";
-      version = "3.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/caller-path/-/caller-path-3.0.1.tgz";
-        sha512 = "fhmztL4wURO/BzwJUJ4aVRdnKEFskPBbrJ8fNgl7XdUiD1ygzzlt+nhPgUBSRq2ciEVubo6x+W8vJQzm55QLLQ==";
-      };
-    };
     "callsite-1.0.0" = {
       name = "callsite";
       packageName = "callsite";
@@ -18139,13 +18040,13 @@ let
         sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
       };
     };
-    "caniuse-lite-1.0.30001599" = {
+    "caniuse-lite-1.0.30001627" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001599";
+      version = "1.0.30001627";
       src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001599.tgz";
-        sha512 = "LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA==";
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001627.tgz";
+        sha512 = "4zgNiB8nTyV/tHhwZrFs88ryjls/lHiqFhrxCW4qSTeuRByBVnPYpDInchOIySWknznucaf31Z4KYqjfbrecVw==";
       };
     };
     "canvas-2.11.2" = {
@@ -18157,15 +18058,6 @@ let
         sha512 = "ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==";
       };
     };
-    "capital-case-1.0.4" = {
-      name = "capital-case";
-      packageName = "capital-case";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz";
-        sha512 = "ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==";
-      };
-    };
     "capnp-ts-0.7.0" = {
       name = "capnp-ts";
       packageName = "capnp-ts";
@@ -18211,24 +18103,6 @@ let
         sha512 = "4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==";
       };
     };
-    "castv2-0.1.10" = {
-      name = "castv2";
-      packageName = "castv2";
-      version = "0.1.10";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/castv2/-/castv2-0.1.10.tgz";
-        sha512 = "3QWevHrjT22KdF08Y2a217IYCDQDP7vEJaY4n0lPBeC5UBYbMFMadDfVTsaQwq7wqsEgYUHElPGm3EO1ey+TNw==";
-      };
-    };
-    "castv2-client-1.2.0" = {
-      name = "castv2-client";
-      packageName = "castv2-client";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/castv2-client/-/castv2-client-1.2.0.tgz";
-        sha512 = "2diOsC0vSSxa3QEOgoGBy9fZRHzNXatHz464Kje2OpwQ7GM5vulyrD0gLFOQ1P4rgLAFsYiSGQl4gK402nEEuA==";
-      };
-    };
     "catering-2.1.1" = {
       name = "catering";
       packageName = "catering";
@@ -18256,15 +18130,6 @@ let
         sha512 = "Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==";
       };
     };
-    "ccount-1.1.0" = {
-      name = "ccount";
-      packageName = "ccount";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz";
-        sha512 = "vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==";
-      };
-    };
     "ccount-2.0.1" = {
       name = "ccount";
       packageName = "ccount";
@@ -18274,13 +18139,13 @@ let
         sha512 = "eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==";
       };
     };
-    "cdk8s-2.68.46" = {
+    "cdk8s-2.68.75" = {
       name = "cdk8s";
       packageName = "cdk8s";
-      version = "2.68.46";
+      version = "2.68.75";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdk8s/-/cdk8s-2.68.46.tgz";
-        sha512 = "dTT0ug2XeWnov5rAEeRUu0R8J7/mVPInBHH8QqCADDWvBShT/76yJsdkKj0Q2he0RluOtWabwXACCW1DeOlqxg==";
+        url = "https://registry.npmjs.org/cdk8s/-/cdk8s-2.68.75.tgz";
+        sha512 = "NydUyULiSsu1l86AcYZHBETTIoAa3Dr+iqT76D0CNicwo6nAaGC4xnCbGU0sGZ5Q6pRRMnaGGbMmE/45X+ie2Q==";
       };
     };
     "cdk8s-plus-25-2.22.79" = {
@@ -18292,13 +18157,13 @@ let
         sha512 = "QSxCBAbLvDJvC3lqt7lO2x8Il84kCsrwIdfAVFxUiwh4wHQxi18ENI9JI16tEhS/2gxv1YyeUNBM1ucH6q9oJA==";
       };
     };
-    "cdktf-0.20.5" = {
+    "cdktf-0.20.7" = {
       name = "cdktf";
       packageName = "cdktf";
-      version = "0.20.5";
+      version = "0.20.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdktf/-/cdktf-0.20.5.tgz";
-        sha512 = "CA0RkrKJETnaxGG6fBQHiojTZ8Sl+MCYsISbOqYYRfakHaM9mN4/a0v0bH1u5zi9ODyjyUmjfh7BqGfZagMjRw==";
+        url = "https://registry.npmjs.org/cdktf/-/cdktf-0.20.7.tgz";
+        sha512 = "7za8QQYM1G0/6JUCYY+5smwNfNfbiZVPCMD7SeX2rTYmOLaGEkHZtMvuUTEKSqsE56fKudnfVd2J2edz2CETFg==";
       };
     };
     "center-align-0.1.3" = {
@@ -18418,15 +18283,6 @@ let
         sha512 = "T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg==";
       };
     };
-    "change-case-4.1.2" = {
-      name = "change-case";
-      packageName = "change-case";
-      version = "4.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz";
-        sha512 = "bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==";
-      };
-    };
     "character-entities-1.2.4" = {
       name = "character-entities";
       packageName = "character-entities";
@@ -18544,15 +18400,6 @@ let
         sha512 = "6dVyOOYjpfFcL1Y4qChrAoQLRHvj2ziyhcm0QJlhOcAhykL/k1kTUPbeo+87MNRTRdk2OIIsIXbuF3x2wi5EXg==";
       };
     };
-    "check-ends-with-period-3.0.2" = {
-      name = "check-ends-with-period";
-      packageName = "check-ends-with-period";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/check-ends-with-period/-/check-ends-with-period-3.0.2.tgz";
-        sha512 = "/Bw+avucqqZ7PjKCVDod1QDGyZjo7Ht2701pdgcpTXzK5jI73/OUh3VR+m18jNUoJx5DSOUv0AxELZF7FYtcDA==";
-      };
-    };
     "cheerio-0.17.0" = {
       name = "cheerio";
       packageName = "cheerio";
@@ -18724,31 +18571,31 @@ let
         sha512 = "Jzy2EnzmE+ligqIZUsmWnck9RBXLuUy6CaKyuNMtowFG3ZvLt8d+WBJCTPEludV0DHpIKjAOlwjFmTaEdfdWCw==";
       };
     };
-    "chrome-trace-event-1.0.3" = {
+    "chrome-trace-event-1.0.4" = {
       name = "chrome-trace-event";
       packageName = "chrome-trace-event";
-      version = "1.0.3";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz";
-        sha512 = "p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==";
+        url = "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz";
+        sha512 = "rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==";
       };
     };
-    "chromecasts-1.10.2" = {
-      name = "chromecasts";
-      packageName = "chromecasts";
-      version = "1.10.2";
+    "chromium-bidi-0.5.19" = {
+      name = "chromium-bidi";
+      packageName = "chromium-bidi";
+      version = "0.5.19";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chromecasts/-/chromecasts-1.10.2.tgz";
-        sha512 = "Pa5nrrCMWukBafWxQ8wwmeRuqs/6nVFAdhRXYcxpDePduAbZZ8lXNZhtGZ5/mmWI1rzrSR6tpRR9J3BtR84yUw==";
+        url = "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.5.19.tgz";
+        sha512 = "UA6zL77b7RYCjJkZBsZ0wlvCTD+jTjllZ8f6wdO4buevXgTZYjV+XLB9CiEa2OuuTGGTLnI7eN9I60YxuALGQg==";
       };
     };
-    "chunk-store-stream-4.3.0" = {
-      name = "chunk-store-stream";
-      packageName = "chunk-store-stream";
-      version = "4.3.0";
+    "chunk-store-iterator-1.0.3" = {
+      name = "chunk-store-iterator";
+      packageName = "chunk-store-iterator";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chunk-store-stream/-/chunk-store-stream-4.3.0.tgz";
-        sha512 = "qby+/RXoiMoTVtPiylWZt7KFF1jy6M829TzMi2hxZtBIH9ptV19wxcft6zGiXLokJgCbuZPGNGab6DWHqiSEKw==";
+        url = "https://registry.npmjs.org/chunk-store-iterator/-/chunk-store-iterator-1.0.3.tgz";
+        sha512 = "JcSaB5h3wQstQKnaJi8sET40f0m+6Kh4mhKIr05lrWKi+EiQzn6XUoi6LipgRGMqXWNZZJaMz2tH4aeg4ptBDA==";
       };
     };
     "ci-info-2.0.0" = {
@@ -18805,6 +18652,15 @@ let
         sha512 = "0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==";
       };
     };
+    "cjs-module-lexer-1.3.1" = {
+      name = "cjs-module-lexer";
+      packageName = "cjs-module-lexer";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz";
+        sha512 = "a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==";
+      };
+    };
     "clap-1.2.3" = {
       name = "clap";
       packageName = "clap";
@@ -19030,13 +18886,13 @@ let
         sha512 = "IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==";
       };
     };
-    "cli-table3-0.6.3" = {
+    "cli-table3-0.6.5" = {
       name = "cli-table3";
       packageName = "cli-table3";
-      version = "0.6.3";
+      version = "0.6.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz";
-        sha512 = "w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==";
+        url = "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz";
+        sha512 = "+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==";
       };
     };
     "cli-truncate-0.2.1" = {
@@ -19282,15 +19138,6 @@ let
         sha512 = "3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==";
       };
     };
-    "clone-buffer-1.0.0" = {
-      name = "clone-buffer";
-      packageName = "clone-buffer";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz";
-        sha512 = "KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==";
-      };
-    };
     "clone-deep-4.0.1" = {
       name = "clone-deep";
       packageName = "clone-deep";
@@ -19345,15 +19192,6 @@ let
         sha512 = "au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==";
       };
     };
-    "cloneable-readable-1.1.3" = {
-      name = "cloneable-readable";
-      packageName = "cloneable-readable";
-      version = "1.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz";
-        sha512 = "2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==";
-      };
-    };
     "cls-hooked-4.2.2" = {
       name = "cls-hooked";
       packageName = "cls-hooked";
@@ -19363,13 +19201,13 @@ let
         sha512 = "J4Xj5f5wq/4jAvcdgoGsL3G103BtWpZrMo8NEinRltN+xpTZdI+M38pyQqhuFU/P792xkMFvnKSf+Lm81U1bxw==";
       };
     };
-    "cluster-key-slot-1.1.0" = {
+    "cluster-key-slot-1.1.2" = {
       name = "cluster-key-slot";
       packageName = "cluster-key-slot";
-      version = "1.1.0";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz";
-        sha512 = "2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw==";
+        url = "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz";
+        sha512 = "RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==";
       };
     };
     "cmd-extension-1.0.2" = {
@@ -19444,6 +19282,15 @@ let
         sha512 = "tge3BeOtehBouqo8sdrjRuQxsAWuwUxWJN1pTttZ8HpV+fe2fxmBE9lqrzzOlRIysBvgsZr7D0FdNfrwRwpK8A==";
       };
     };
+    "cockatiel-3.1.3" = {
+      name = "cockatiel";
+      packageName = "cockatiel";
+      version = "3.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cockatiel/-/cockatiel-3.1.3.tgz";
+        sha512 = "xC759TpZ69d7HhfDp8m2WkRwEUiCkxY8Ee2OQH/3H6zmy2D/5Sm+zSTbPRa+V2QyjDtpMvjOIAOVjA2gp6N1kQ==";
+      };
+    };
     "code-block-writer-10.1.1" = {
       name = "code-block-writer";
       packageName = "code-block-writer";
@@ -19507,22 +19354,22 @@ let
         sha512 = "7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==";
       };
     };
-    "codemaker-1.94.0" = {
+    "codemaker-1.95.0" = {
       name = "codemaker";
       packageName = "codemaker";
-      version = "1.94.0";
+      version = "1.95.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.94.0.tgz";
-        sha512 = "V+896C7RojQVfG0UlOXaFfVVxmFb08rPtJvzcxhdJfowc2o6xGwGG0OpWSLHy6fQrmt4BxLXnKZ6Xeuqt4aKjw==";
+        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.95.0.tgz";
+        sha512 = "q/U2NeZSaKnVMarOi+BR8MbaHEFKVmBefTSSXj/0W4OBarw/uUT2qCPojYF16gJtfFz7qCkJeuP+zYDq+xNEpg==";
       };
     };
-    "codemaker-1.95.0" = {
+    "codemaker-1.99.0" = {
       name = "codemaker";
       packageName = "codemaker";
-      version = "1.95.0";
+      version = "1.99.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.95.0.tgz";
-        sha512 = "q/U2NeZSaKnVMarOi+BR8MbaHEFKVmBefTSSXj/0W4OBarw/uUT2qCPojYF16gJtfFz7qCkJeuP+zYDq+xNEpg==";
+        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.99.0.tgz";
+        sha512 = "Skhc0pdsxRWxevjQWLFWOGzhC8BJaac0MfV0lF5UUJuRcf2T6qAhc1OGuWwlZTZZxor9dS0JKavlSTKyLcksag==";
       };
     };
     "coffeescript-2.7.0" = {
@@ -19534,15 +19381,6 @@ let
         sha512 = "hzWp6TUE2d/jCcN67LrW1eh5b/rSDKQK6oD6VMLlggYVUUFexgTH9z3dNYihzX4RMhze5FTUsUmOXViJKFQR/A==";
       };
     };
-    "collection-map-1.0.0" = {
-      name = "collection-map";
-      packageName = "collection-map";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz";
-        sha512 = "5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA==";
-      };
-    };
     "collection-visit-1.0.0" = {
       name = "collection-visit";
       packageName = "collection-visit";
@@ -19588,15 +19426,6 @@ let
         sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==";
       };
     };
-    "color-json-3.0.5" = {
-      name = "color-json";
-      packageName = "color-json";
-      version = "3.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/color-json/-/color-json-3.0.5.tgz";
-        sha512 = "DG4zae1GmHDBNsYTUe+GJiDnuKutxs2vVSkPRQqbeA6oEGBRQyRixV+HmIByasCfyf9L0CwHo8vOoiHqe7Lzng==";
-      };
-    };
     "color-name-1.1.3" = {
       name = "color-name";
       packageName = "color-name";
@@ -19732,15 +19561,6 @@ let
         sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==";
       };
     };
-    "comma-separated-tokens-1.0.8" = {
-      name = "comma-separated-tokens";
-      packageName = "comma-separated-tokens";
-      version = "1.0.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz";
-        sha512 = "GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==";
-      };
-    };
     "comma-separated-tokens-2.0.3" = {
       name = "comma-separated-tokens";
       packageName = "comma-separated-tokens";
@@ -19795,13 +19615,13 @@ let
         sha512 = "yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==";
       };
     };
-    "commander-12.0.0" = {
+    "commander-12.1.0" = {
       name = "commander";
       packageName = "commander";
-      version = "12.0.0";
+      version = "12.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz";
-        sha512 = "MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==";
+        url = "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz";
+        sha512 = "Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==";
       };
     };
     "commander-2.11.0" = {
@@ -20155,13 +19975,13 @@ let
         sha512 = "MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==";
       };
     };
-    "conf-11.0.2" = {
+    "conf-12.0.0" = {
       name = "conf";
       packageName = "conf";
-      version = "11.0.2";
+      version = "12.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conf/-/conf-11.0.2.tgz";
-        sha512 = "jjyhlQ0ew/iwmtwsS2RaB6s8DBifcE2GYBEaw2SJDUY/slJJbNfY4GlDVzOs/ff8cM/Wua5CikqXgbFl5eu85A==";
+        url = "https://registry.npmjs.org/conf/-/conf-12.0.0.tgz";
+        sha512 = "fIWyWUXrJ45cHCIQX+Ck1hrZDIf/9DR0P0Zewn3uNht28hbt5OfGUq8rRWsxi96pZWPyBEd0eY9ama01JTaknA==";
       };
     };
     "conf-6.2.4" = {
@@ -20335,15 +20155,6 @@ let
         sha512 = "ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==";
       };
     };
-    "constant-case-3.0.4" = {
-      name = "constant-case";
-      packageName = "constant-case";
-      version = "3.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz";
-        sha512 = "I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==";
-      };
-    };
     "constantinople-4.0.1" = {
       name = "constantinople";
       packageName = "constantinople";
@@ -20462,13 +20273,13 @@ let
         sha512 = "jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA==";
       };
     };
-    "conventional-changelog-5.1.0" = {
+    "conventional-changelog-6.0.0" = {
       name = "conventional-changelog";
       packageName = "conventional-changelog";
-      version = "5.1.0";
+      version = "6.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-5.1.0.tgz";
-        sha512 = "aWyE/P39wGYRPllcCEZDxTVEmhyLzTc9XA6z6rVfkuCD2UBnhV/sgSOKbQrEG5z9mEZJjnopjgQooTKxEg8mAg==";
+        url = "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-6.0.0.tgz";
+        sha512 = "tuUH8H/19VjtD9Ig7l6TQRh+Z0Yt0NZ6w/cCkkyzUbGQTnUEmKfGtkC9gGfVgCfOL1Rzno5NgNF4KY8vR+Jo3w==";
       };
     };
     "conventional-changelog-angular-7.0.0" = {
@@ -20480,22 +20291,31 @@ let
         sha512 = "ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==";
       };
     };
-    "conventional-changelog-atom-4.0.0" = {
+    "conventional-changelog-angular-8.0.0" = {
+      name = "conventional-changelog-angular";
+      packageName = "conventional-changelog-angular";
+      version = "8.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-8.0.0.tgz";
+        sha512 = "CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==";
+      };
+    };
+    "conventional-changelog-atom-5.0.0" = {
       name = "conventional-changelog-atom";
       packageName = "conventional-changelog-atom";
-      version = "4.0.0";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-4.0.0.tgz";
-        sha512 = "q2YtiN7rnT1TGwPTwjjBSIPIzDJCRE+XAUahWxnh+buKK99Kks4WLMHoexw38GXx9OUxAsrp44f9qXe5VEMYhw==";
+        url = "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-5.0.0.tgz";
+        sha512 = "WfzCaAvSCFPkznnLgLnfacRAzjgqjLUjvf3MftfsJzQdDICqkOOpcMtdJF3wTerxSpv2IAAjX8doM3Vozqle3g==";
       };
     };
-    "conventional-changelog-codemirror-4.0.0" = {
+    "conventional-changelog-codemirror-5.0.0" = {
       name = "conventional-changelog-codemirror";
       packageName = "conventional-changelog-codemirror";
-      version = "4.0.0";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-4.0.0.tgz";
-        sha512 = "hQSojc/5imn1GJK3A75m9hEZZhc3urojA5gMpnar4JHmgLnuM3CUIARPpEk86glEKr3c54Po3WV/vCaO/U8g3Q==";
+        url = "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-5.0.0.tgz";
+        sha512 = "8gsBDI5Y3vrKUCxN6Ue8xr6occZ5nsDEc4C7jO/EovFGozx8uttCAyfhRrvoUAWi2WMm3OmYs+0mPJU7kQdYWQ==";
       };
     };
     "conventional-changelog-conventionalcommits-7.0.2" = {
@@ -20507,6 +20327,15 @@ let
         sha512 = "NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==";
       };
     };
+    "conventional-changelog-conventionalcommits-8.0.0" = {
+      name = "conventional-changelog-conventionalcommits";
+      packageName = "conventional-changelog-conventionalcommits";
+      version = "8.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-8.0.0.tgz";
+        sha512 = "eOvlTO6OcySPyyyk8pKz2dP4jjElYunj9hn9/s0OB+gapTO8zwS9UQWrZ1pmF2hFs3vw1xhonOLGcGjy/zgsuA==";
+      };
+    };
     "conventional-changelog-core-5.0.1" = {
       name = "conventional-changelog-core";
       packageName = "conventional-changelog-core";
@@ -20516,58 +20345,58 @@ let
         sha512 = "Rvi5pH+LvgsqGwZPZ3Cq/tz4ty7mjijhr3qR4m9IBXNbxGGYgTVVO+duXzz9aArmHxFtwZ+LRkrNIMDQzgoY4A==";
       };
     };
-    "conventional-changelog-core-7.0.0" = {
+    "conventional-changelog-core-8.0.0" = {
       name = "conventional-changelog-core";
       packageName = "conventional-changelog-core";
-      version = "7.0.0";
+      version = "8.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-7.0.0.tgz";
-        sha512 = "UYgaB1F/COt7VFjlYKVE/9tTzfU3VUq47r6iWf6lM5T7TlOxr0thI63ojQueRLIpVbrtHK4Ffw+yQGduw2Bhdg==";
+        url = "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-8.0.0.tgz";
+        sha512 = "EATUx5y9xewpEe10UEGNpbSHRC6cVZgO+hXQjofMqpy+gFIrcGvH3Fl6yk2VFKh7m+ffenup2N7SZJYpyD9evw==";
       };
     };
-    "conventional-changelog-ember-4.0.0" = {
+    "conventional-changelog-ember-5.0.0" = {
       name = "conventional-changelog-ember";
       packageName = "conventional-changelog-ember";
-      version = "4.0.0";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-4.0.0.tgz";
-        sha512 = "D0IMhwcJUg1Y8FSry6XAplEJcljkHVlvAZddhhsdbL1rbsqRsMfGx/PIkPYq0ru5aDgn+OxhQ5N5yR7P9mfsvA==";
+        url = "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-5.0.0.tgz";
+        sha512 = "RPflVfm5s4cSO33GH/Ey26oxhiC67akcxSKL8CLRT3kQX2W3dbE19sSOM56iFqUJYEwv9mD9r6k79weWe1urfg==";
       };
     };
-    "conventional-changelog-eslint-5.0.0" = {
+    "conventional-changelog-eslint-6.0.0" = {
       name = "conventional-changelog-eslint";
       packageName = "conventional-changelog-eslint";
-      version = "5.0.0";
+      version = "6.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-5.0.0.tgz";
-        sha512 = "6JtLWqAQIeJLn/OzUlYmzd9fKeNSWmQVim9kql+v4GrZwLx807kAJl3IJVc3jTYfVKWLxhC3BGUxYiuVEcVjgA==";
+        url = "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-6.0.0.tgz";
+        sha512 = "eiUyULWjzq+ybPjXwU6NNRflApDWlPEQEHvI8UAItYW/h22RKkMnOAtfCZxMmrcMO1OKUWtcf2MxKYMWe9zJuw==";
       };
     };
-    "conventional-changelog-express-4.0.0" = {
+    "conventional-changelog-express-5.0.0" = {
       name = "conventional-changelog-express";
       packageName = "conventional-changelog-express";
-      version = "4.0.0";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-4.0.0.tgz";
-        sha512 = "yWyy5c7raP9v7aTvPAWzqrztACNO9+FEI1FSYh7UP7YT1AkWgv5UspUeB5v3Ibv4/o60zj2o9GF2tqKQ99lIsw==";
+        url = "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-5.0.0.tgz";
+        sha512 = "D8Q6WctPkQpvr2HNCCmwU5GkX22BVHM0r4EW8vN0230TSyS/d6VQJDAxGb84lbg0dFjpO22MwmsikKL++Oo/oQ==";
       };
     };
-    "conventional-changelog-jquery-5.0.0" = {
+    "conventional-changelog-jquery-6.0.0" = {
       name = "conventional-changelog-jquery";
       packageName = "conventional-changelog-jquery";
-      version = "5.0.0";
+      version = "6.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-5.0.0.tgz";
-        sha512 = "slLjlXLRNa/icMI3+uGLQbtrgEny3RgITeCxevJB+p05ExiTgHACP5p3XiMKzjBn80n+Rzr83XMYfRInEtCPPw==";
+        url = "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-6.0.0.tgz";
+        sha512 = "2kxmVakyehgyrho2ZHBi90v4AHswkGzHuTaoH40bmeNqUt20yEkDOSpw8HlPBfvEQBwGtbE+5HpRwzj6ac2UfA==";
       };
     };
-    "conventional-changelog-jshint-4.0.0" = {
+    "conventional-changelog-jshint-5.0.0" = {
       name = "conventional-changelog-jshint";
       packageName = "conventional-changelog-jshint";
-      version = "4.0.0";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-4.0.0.tgz";
-        sha512 = "LyXq1bbl0yG0Ai1SbLxIk8ZxUOe3AjnlwE6sVRQmMgetBk+4gY9EO3d00zlEt8Y8gwsITytDnPORl8al7InTjg==";
+        url = "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-5.0.0.tgz";
+        sha512 = "gGNphSb/opc76n2eWaO6ma4/Wqu3tpa2w7i9WYqI6Cs2fncDSI2/ihOfMvXveeTTeld0oFvwMVNV+IYQIk3F3g==";
       };
     };
     "conventional-changelog-preset-loader-3.0.0" = {
@@ -20579,13 +20408,13 @@ let
         sha512 = "qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA==";
       };
     };
-    "conventional-changelog-preset-loader-4.1.0" = {
+    "conventional-changelog-preset-loader-5.0.0" = {
       name = "conventional-changelog-preset-loader";
       packageName = "conventional-changelog-preset-loader";
-      version = "4.1.0";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-4.1.0.tgz";
-        sha512 = "HozQjJicZTuRhCRTq4rZbefaiCzRM2pr6u2NL3XhrmQm4RMnDXfESU6JKu/pnKwx5xtdkYfNCsbhN5exhiKGJA==";
+        url = "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-5.0.0.tgz";
+        sha512 = "SetDSntXLk8Jh1NOAl1Gu5uLiCNSYenB5tm0YVeZKePRIgDW9lQImromTwLa3c/Gae298tsgOM+/CYT9XAl0NA==";
       };
     };
     "conventional-changelog-writer-6.0.1" = {
@@ -20597,13 +20426,13 @@ let
         sha512 = "359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ==";
       };
     };
-    "conventional-changelog-writer-7.0.1" = {
+    "conventional-changelog-writer-8.0.0" = {
       name = "conventional-changelog-writer";
       packageName = "conventional-changelog-writer";
-      version = "7.0.1";
+      version = "8.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-7.0.1.tgz";
-        sha512 = "Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==";
+        url = "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-8.0.0.tgz";
+        sha512 = "TQcoYGRatlAnT2qEWDON/XSfnVG38JzA7E0wcGScu7RElQBkg9WWgZd1peCWFcWDh1xfb2CfsrcvOn1bbSzztA==";
       };
     };
     "conventional-commits-filter-3.0.0" = {
@@ -20615,13 +20444,13 @@ let
         sha512 = "1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==";
       };
     };
-    "conventional-commits-filter-4.0.0" = {
+    "conventional-commits-filter-5.0.0" = {
       name = "conventional-commits-filter";
       packageName = "conventional-commits-filter";
-      version = "4.0.0";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-4.0.0.tgz";
-        sha512 = "rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==";
+        url = "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-5.0.0.tgz";
+        sha512 = "tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==";
       };
     };
     "conventional-commits-parser-4.0.0" = {
@@ -20642,6 +20471,15 @@ let
         sha512 = "ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==";
       };
     };
+    "conventional-commits-parser-6.0.0" = {
+      name = "conventional-commits-parser";
+      packageName = "conventional-commits-parser";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.0.0.tgz";
+        sha512 = "TbsINLp48XeMXR8EvGjTnKGsZqBemisPoyWESlpRyR8lif0lcwzqz+NMtYSj1ooF/WYjSuu7wX0CtdeeMEQAmA==";
+      };
+    };
     "conventional-recommended-bump-7.0.1" = {
       name = "conventional-recommended-bump";
       packageName = "conventional-recommended-bump";
@@ -20750,6 +20588,15 @@ let
         sha512 = "YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==";
       };
     };
+    "cookie-0.6.0" = {
+      name = "cookie";
+      packageName = "cookie";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz";
+        sha512 = "U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==";
+      };
+    };
     "cookie-parser-1.4.6" = {
       name = "cookie-parser";
       packageName = "cookie-parser";
@@ -20804,13 +20651,13 @@ let
         sha512 = "XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==";
       };
     };
-    "copy-props-2.0.5" = {
+    "copy-props-4.0.0" = {
       name = "copy-props";
       packageName = "copy-props";
-      version = "2.0.5";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz";
-        sha512 = "XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==";
+        url = "https://registry.npmjs.org/copy-props/-/copy-props-4.0.0.tgz";
+        sha512 = "bVWtw1wQLzzKiYROtvNlbJgxgBYt2bMJpkCbKmXM3xyijvcjjWXEk5nyrrT3bgJ7ODb19ZohE2T0Y3FgNPyoTw==";
       };
     };
     "copy-webpack-plugin-10.2.4" = {
@@ -20831,22 +20678,22 @@ let
         sha512 = "Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==";
       };
     };
-    "core-js-3.36.1" = {
+    "core-js-3.37.1" = {
       name = "core-js";
       packageName = "core-js";
-      version = "3.36.1";
+      version = "3.37.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js/-/core-js-3.36.1.tgz";
-        sha512 = "BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==";
+        url = "https://registry.npmjs.org/core-js/-/core-js-3.37.1.tgz";
+        sha512 = "Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==";
       };
     };
-    "core-js-compat-3.36.1" = {
+    "core-js-compat-3.37.1" = {
       name = "core-js-compat";
       packageName = "core-js-compat";
-      version = "3.36.1";
+      version = "3.37.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.1.tgz";
-        sha512 = "Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==";
+        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz";
+        sha512 = "9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==";
       };
     };
     "core-util-is-1.0.2" = {
@@ -20957,13 +20804,13 @@ let
         sha512 = "+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==";
       };
     };
-    "coveralls-next-4.2.0" = {
+    "coveralls-next-4.2.1" = {
       name = "coveralls-next";
       packageName = "coveralls-next";
-      version = "4.2.0";
+      version = "4.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/coveralls-next/-/coveralls-next-4.2.0.tgz";
-        sha512 = "zg41a/4QDSASPtlV6gp+6owoU43U5CguxuPZR3nPZ26M5ZYdEK3MdUe7HwE+AnCZPkucudfhqqJZehCNkz2rYg==";
+        url = "https://registry.npmjs.org/coveralls-next/-/coveralls-next-4.2.1.tgz";
+        sha512 = "O/SBGZsCryt+6Q3NuJHENyQYaucTEV9qp0KGaed+y42PUh+GuF949LRLHKZbxWwOIc1tV8bJRIVWlfbZ8etEwQ==";
       };
     };
     "cp-file-10.0.0" = {
@@ -21092,13 +20939,13 @@ let
         sha512 = "dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==";
       };
     };
-    "create-torrent-5.0.9" = {
+    "create-torrent-6.0.17" = {
       name = "create-torrent";
       packageName = "create-torrent";
-      version = "5.0.9";
+      version = "6.0.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/create-torrent/-/create-torrent-5.0.9.tgz";
-        sha512 = "WQ/bMe+aCBSa5EonIkgw7CTM/1JnJDQuLJhA78omSWvuEbXDwaUy0rG3a+IYt+EiO+rdTLxdsBwrsn/wfWOMQA==";
+        url = "https://registry.npmjs.org/create-torrent/-/create-torrent-6.0.17.tgz";
+        sha512 = "GGrNP1mu3WSyJHyo+x6AnJlQWW7bbyUfoEDFfo/U2kpeTVYRCgWdQC4/sq4oreltpMTEP8UUB3U3niHIgLU/gQ==";
       };
     };
     "cron-parser-3.5.0" = {
@@ -21146,15 +20993,6 @@ let
         sha512 = "1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==";
       };
     };
-    "cross-fetch-3.1.5" = {
-      name = "cross-fetch";
-      packageName = "cross-fetch";
-      version = "3.1.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz";
-        sha512 = "lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==";
-      };
-    };
     "cross-fetch-3.1.8" = {
       name = "cross-fetch";
       packageName = "cross-fetch";
@@ -21164,6 +21002,15 @@ let
         sha512 = "cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==";
       };
     };
+    "cross-fetch-ponyfill-1.0.3" = {
+      name = "cross-fetch-ponyfill";
+      packageName = "cross-fetch-ponyfill";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-fetch-ponyfill/-/cross-fetch-ponyfill-1.0.3.tgz";
+        sha512 = "uOBkDhUAGAbx/FEzNKkOfx3w57H8xReBBXoZvUnOKTI0FW0Xvrj3GrYv2iZXUqlffC1LMGfQzhmBM/ke+6eTDA==";
+      };
+    };
     "cross-inspect-1.0.0" = {
       name = "cross-inspect";
       packageName = "cross-inspect";
@@ -21200,24 +21047,6 @@ let
         sha512 = "iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==";
       };
     };
-    "cross-spawn-windows-exe-1.2.0" = {
-      name = "cross-spawn-windows-exe";
-      packageName = "cross-spawn-windows-exe";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cross-spawn-windows-exe/-/cross-spawn-windows-exe-1.2.0.tgz";
-        sha512 = "mkLtJJcYbDCxEG7Js6eUnUNndWjyUZwJ3H7bErmmtOYU/Zb99DyUkpamuIZE0b3bhmJyZ7D90uS6f+CGxRRjOw==";
-      };
-    };
-    "cross-zip-4.0.0" = {
-      name = "cross-zip";
-      packageName = "cross-zip";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cross-zip/-/cross-zip-4.0.0.tgz";
-        sha512 = "MEzGfZo0rqE10O/B+AEcCSJLZsrWuRUvmqJTqHNqBtALhaJc3E3ixLGLJNTRzEA2K34wbmOHC4fwYs9sVsdcCA==";
-      };
-    };
     "crypt-0.0.2" = {
       name = "crypt";
       packageName = "crypt";
@@ -21272,13 +21101,13 @@ let
         sha512 = "x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==";
       };
     };
-    "cspell-config-lib-8.6.0" = {
+    "cspell-config-lib-8.8.4" = {
       name = "cspell-config-lib";
       packageName = "cspell-config-lib";
-      version = "8.6.0";
+      version = "8.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-8.6.0.tgz";
-        sha512 = "Q1rvQFUDJTu4hUtxwL6+q83Hjx/a5grEjMS5axxFJzjJuFRbRsXCagncdSCx/YBqLkNM5noBbRP/0rVh7ufqxw==";
+        url = "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-8.8.4.tgz";
+        sha512 = "Xf+aL669Cm+MYZTZULVWRQXB7sRWx9qs0hPrgqxeaWabLUISK57/qwcI24TPVdYakUCoud9Nv+woGi5FcqV5ZQ==";
       };
     };
     "cspell-dict-vimlang-1.0.1" = {
@@ -21290,22 +21119,22 @@ let
         sha512 = "pP2W2BvLrRKggS1fUk8qQw2FG8PhyV969dlwF3M0jAg/HH83n76H+KGdzGsmEut6VJFlJYQkd1ZZskjaeVWnrA==";
       };
     };
-    "cspell-dictionary-8.6.0" = {
+    "cspell-dictionary-8.8.4" = {
       name = "cspell-dictionary";
       packageName = "cspell-dictionary";
-      version = "8.6.0";
+      version = "8.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-8.6.0.tgz";
-        sha512 = "ohToeOQznIrb2/z7RfKxX3NID0WiO4sXK3IxKdnbn2viGgdn17tQ8Z2f4Xuy9egjSGRKyr6N25Z5AOes1C8R3w==";
+        url = "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-8.8.4.tgz";
+        sha512 = "eDi61MDDZycS5EASz5FiYKJykLEyBT0mCvkYEUCsGVoqw8T9gWuWybwwqde3CMq9TOwns5pxGcFs2v9RYgtN5A==";
       };
     };
-    "cspell-gitignore-8.6.0" = {
+    "cspell-gitignore-8.8.4" = {
       name = "cspell-gitignore";
       packageName = "cspell-gitignore";
-      version = "8.6.0";
+      version = "8.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-8.6.0.tgz";
-        sha512 = "6INRlNb17iKtQH7NmDM/EsX5OZOD2TzIwHiJnnWci0Y5l10V/zN9WGLDegTjMh9HU3TS6uUuN4I/ffkCs9m+LA==";
+        url = "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-8.8.4.tgz";
+        sha512 = "rLdxpBh0kp0scwqNBZaWVnxEVmSK3UWyVSZmyEL4jmmjusHYM9IggfedOhO4EfGCIdQ32j21TevE0tTslyc4iA==";
       };
     };
     "cspell-glob-0.1.25" = {
@@ -21317,22 +21146,22 @@ let
         sha512 = "/XaSHrGBpMJa+duFz3GKOWfrijrfdHT7a/XGgIcq3cymCSpOH+DPho42sl0jLI/hjM+8yv2m8aEoxRT8yVSnlg==";
       };
     };
-    "cspell-glob-8.6.0" = {
+    "cspell-glob-8.8.4" = {
       name = "cspell-glob";
       packageName = "cspell-glob";
-      version = "8.6.0";
+      version = "8.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-glob/-/cspell-glob-8.6.0.tgz";
-        sha512 = "AyuExc34F8JsEYNl4inx1m1v5VoSRA/cTptREq/AoNTcMTyG5s+wt5J+VWBfvJjEDEEpd9Cb2it0j8TMo/Tpjw==";
+        url = "https://registry.npmjs.org/cspell-glob/-/cspell-glob-8.8.4.tgz";
+        sha512 = "+tRrOfTSbF/44uNl4idMZVPNfNM6WTmra4ZL44nx23iw1ikNhqZ+m0PC1oCVSlURNBEn8faFXjC/oT2BfgxoUQ==";
       };
     };
-    "cspell-grammar-8.6.0" = {
+    "cspell-grammar-8.8.4" = {
       name = "cspell-grammar";
       packageName = "cspell-grammar";
-      version = "8.6.0";
+      version = "8.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-8.6.0.tgz";
-        sha512 = "wVpZ4pPOqRoOmzLUc34wyOQnBi/6RsV3Y1KiPn8BNSkObb9XSohb1xJJMJ69unEmgE0snQDMHIeUaLTQH414MA==";
+        url = "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-8.8.4.tgz";
+        sha512 = "UxDO517iW6vs/8l4OhLpdMR7Bp+tkquvtld1gWz8WYQiDwORyf0v5a3nMh4ILYZGoolOSnDuI9UjWOLI6L/vvQ==";
       };
     };
     "cspell-io-4.1.7" = {
@@ -21344,13 +21173,13 @@ let
         sha512 = "V0/tUu9FnIS3v+vAvDT6NNa14Nc/zUNX8+YUUOfFAiDJJTdqefmvcWjOJBIMYBf3wIk9iWLmLbMM+bNHqr7DSQ==";
       };
     };
-    "cspell-io-8.6.0" = {
+    "cspell-io-8.8.4" = {
       name = "cspell-io";
       packageName = "cspell-io";
-      version = "8.6.0";
+      version = "8.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-io/-/cspell-io-8.6.0.tgz";
-        sha512 = "jx7ccRpcshqxN6xnOiGnX4VycaqTpmatRjHITn4vLoDmQNfxQeU69YT62bhyjogCBuJsZS9ksjo7GQIsrYBekA==";
+        url = "https://registry.npmjs.org/cspell-io/-/cspell-io-8.8.4.tgz";
+        sha512 = "aqB/QMx+xns46QSyPEqi05uguCSxvqRnh2S/ZOhhjPlKma/7hK9niPRcwKwJXJEtNzdiZZkkC1uZt9aJe/7FTA==";
       };
     };
     "cspell-lib-4.3.12" = {
@@ -21362,13 +21191,13 @@ let
         sha512 = "yCCb6MoW1K8Tsr/WVEQoO4dfYhH9bCsjQayccb8MlyDaNNuWJHuX+gUGHsZSXSuChSh8PrTWKXJzs13/uM977g==";
       };
     };
-    "cspell-lib-8.6.0" = {
+    "cspell-lib-8.8.4" = {
       name = "cspell-lib";
       packageName = "cspell-lib";
-      version = "8.6.0";
+      version = "8.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-lib/-/cspell-lib-8.6.0.tgz";
-        sha512 = "l1bBxBz8noPOxEIIu1Ahvd4e/j6Re1PNDD9FwZgaRmvMyIPZbupTxzCM0MZWvYz1VymBmrrVEKRwtZ34VocaCw==";
+        url = "https://registry.npmjs.org/cspell-lib/-/cspell-lib-8.8.4.tgz";
+        sha512 = "hK8gYtdQ9Lh86c8cEHITt5SaoJbfvXoY/wtpR4k393YR+eAxKziyv8ihQyFE/Z/FwuqtNvDrSntP9NLwTivd3g==";
       };
     };
     "cspell-trie-lib-4.2.8" = {
@@ -21380,13 +21209,13 @@ let
         sha512 = "Nt3c0gxOYXIc3/yhALDukpje1BgR6guvlUKWQO2zb0r7qRWpwUw2j2YM4dWbHQeH/3Hx5ei4Braa6cMaiJ5YBw==";
       };
     };
-    "cspell-trie-lib-8.6.0" = {
+    "cspell-trie-lib-8.8.4" = {
       name = "cspell-trie-lib";
       packageName = "cspell-trie-lib";
-      version = "8.6.0";
+      version = "8.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-8.6.0.tgz";
-        sha512 = "S8nGCnEJBL1maiKPd3FhI54QG+OgtOkcJ/yUDXGXGrokSruWFdNocioPirlFAHf959ax1GBUVEYNIgnu/EIWNg==";
+        url = "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-8.8.4.tgz";
+        sha512 = "yCld4ZL+pFa5DL+Arfvmkv3cCQUOfdRlxElOzdkRZqWyO6h/UmO8xZb21ixVYHiqhJGZmwc3BG9Xuw4go+RLig==";
       };
     };
     "cspell-util-bundle-4.1.11" = {
@@ -21416,22 +21245,22 @@ let
         sha512 = "rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==";
       };
     };
-    "css-declaration-sorter-7.1.1" = {
+    "css-declaration-sorter-7.2.0" = {
       name = "css-declaration-sorter";
       packageName = "css-declaration-sorter";
-      version = "7.1.1";
+      version = "7.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.1.1.tgz";
-        sha512 = "dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ==";
+        url = "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz";
+        sha512 = "h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==";
       };
     };
-    "css-loader-6.10.0" = {
+    "css-loader-6.11.0" = {
       name = "css-loader";
       packageName = "css-loader";
-      version = "6.10.0";
+      version = "6.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-loader/-/css-loader-6.10.0.tgz";
-        sha512 = "LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==";
+        url = "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz";
+        sha512 = "CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==";
       };
     };
     "css-minimizer-webpack-plugin-3.4.1" = {
@@ -21569,13 +21398,13 @@ let
         sha512 = "j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==";
       };
     };
-    "cssnano-6.1.0" = {
+    "cssnano-7.0.1" = {
       name = "cssnano";
       packageName = "cssnano";
-      version = "6.1.0";
+      version = "7.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cssnano/-/cssnano-6.1.0.tgz";
-        sha512 = "e2v4w/t3OFM6HTuSweI4RSdABaqgVgHlJp5FZrQsopHnKKHLFIvK2D3C4kHWeFIycN/1L1J5VIrg5KlDzn3r/g==";
+        url = "https://registry.npmjs.org/cssnano/-/cssnano-7.0.1.tgz";
+        sha512 = "917Mej/4SdI7b55atsli3sU4MOJ9XDoKgnlCtQtXYj8XUFcM3riTuYHyqBBnnskawW+zWwp0KxJzpEUodlpqUg==";
       };
     };
     "cssnano-preset-default-5.2.14" = {
@@ -21587,13 +21416,13 @@ let
         sha512 = "t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==";
       };
     };
-    "cssnano-preset-default-6.1.0" = {
+    "cssnano-preset-default-7.0.1" = {
       name = "cssnano-preset-default";
       packageName = "cssnano-preset-default";
-      version = "6.1.0";
+      version = "7.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.0.tgz";
-        sha512 = "4DUXZoDj+PI3fRl3MqMjl9DwLGjcsFP4qt+92nLUcN1RGfw2TY+GwNoG2B38Usu1BrcTs8j9pxNfSusmvtSjfg==";
+        url = "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-7.0.1.tgz";
+        sha512 = "Fumyr+uZMcjYQeuHssAZxn0cKj3cdQc5GcxkBcmEzISGB+UW9CLNlU4tBOJbJGcPukFDlicG32eFbrc8K9V5pw==";
       };
     };
     "cssnano-utils-3.1.0" = {
@@ -21605,13 +21434,13 @@ let
         sha512 = "JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==";
       };
     };
-    "cssnano-utils-4.0.2" = {
+    "cssnano-utils-5.0.0" = {
       name = "cssnano-utils";
       packageName = "cssnano-utils";
-      version = "4.0.2";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz";
-        sha512 = "ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==";
+        url = "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-5.0.0.tgz";
+        sha512 = "Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ==";
       };
     };
     "csso-2.0.0" = {
@@ -21722,13 +21551,13 @@ let
         sha512 = "byxnDBxM1AVF3YfmsK7Smop9/usNz7gAZYSo9eYp61TGcNXraJby1rAiLyJSt1/8Iho2qaxZOtZCOvQMXogPtg==";
       };
     };
-    "csv-parse-5.5.5" = {
+    "csv-parse-5.5.6" = {
       name = "csv-parse";
       packageName = "csv-parse";
-      version = "5.5.5";
+      version = "5.5.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/csv-parse/-/csv-parse-5.5.5.tgz";
-        sha512 = "erCk7tyU3yLWAhk6wvKxnyPtftuy/6Ak622gOO7BCJ05+TYffnPCJF905wmOQm+BpkX54OdAl8pveJwUdpnCXQ==";
+        url = "https://registry.npmjs.org/csv-parse/-/csv-parse-5.5.6.tgz";
+        sha512 = "uNpm30m/AGSkLxxy7d9yRXpJQFrZzVWLFBkS+6ngPcZkw/5k3L/jjFuj7tVnEpRn+QgmiXr21nDlhCiUK4ij2A==";
       };
     };
     "csv-stream-0.2.0" = {
@@ -21821,13 +21650,13 @@ let
         sha512 = "w8a8nQk9YSCkMmH2wDbFqpH1XMz7l409mSvWnnG6Iu6D0Ydhvq61XASE7QIaA46FxfG2Ag524ZuGgAy2cXPfsw==";
       };
     };
-    "cytoscape-3.28.1" = {
+    "cytoscape-3.29.2" = {
       name = "cytoscape";
       packageName = "cytoscape";
-      version = "3.28.1";
+      version = "3.29.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cytoscape/-/cytoscape-3.28.1.tgz";
-        sha512 = "xyItz4O/4zp9/239wCcH8ZcFuuZooEeF8KHRmzjDfGdXsj3OG9MFSMA0pJE0uX3uCN/ygof6hHf4L7lst+JaDg==";
+        url = "https://registry.npmjs.org/cytoscape/-/cytoscape-3.29.2.tgz";
+        sha512 = "2G1ycU28Nh7OHT9rkXRLpCDP30MKH1dXJORZuBhtEhEW7pKwgPi77ImqlCWinouyE1PNepIOGZBOrE84DG7LyQ==";
       };
     };
     "cytoscape-cose-bilkent-4.1.0" = {
@@ -22019,13 +21848,13 @@ let
         sha512 = "p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==";
       };
     };
-    "d3-graphviz-5.3.0" = {
+    "d3-graphviz-5.4.0" = {
       name = "d3-graphviz";
       packageName = "d3-graphviz";
-      version = "5.3.0";
+      version = "5.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/d3-graphviz/-/d3-graphviz-5.3.0.tgz";
-        sha512 = "esY291tZsn4NKxnJa1CVsgyc1KFUp1AlZz81GWyJadrM648iEnVpcXeGKqjyXbkLkeI59Dc2YmkuWE07eG+fYw==";
+        url = "https://registry.npmjs.org/d3-graphviz/-/d3-graphviz-5.4.0.tgz";
+        sha512 = "e/kvvdfIfARiB4bF9/vDgY6WwvLxGCny2tS6ozUaOwgbL/CfaBWT7EwvCH5PiDQuvdx+xscnxjCsoUjw2CR86A==";
       };
     };
     "d3-hierarchy-3.1.2" = {
@@ -22433,13 +22262,13 @@ let
         sha512 = "2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==";
       };
     };
-    "dayjs-1.11.10" = {
+    "dayjs-1.11.11" = {
       name = "dayjs";
       packageName = "dayjs";
-      version = "1.11.10";
+      version = "1.11.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz";
-        sha512 = "vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==";
+        url = "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz";
+        sha512 = "okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==";
       };
     };
     "de-indent-1.0.2" = {
@@ -22568,6 +22397,15 @@ let
         sha512 = "PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==";
       };
     };
+    "debug-4.3.5" = {
+      name = "debug";
+      packageName = "debug";
+      version = "4.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz";
+        sha512 = "pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==";
+      };
+    };
     "debuglog-1.0.1" = {
       name = "debuglog";
       packageName = "debuglog";
@@ -22847,15 +22685,6 @@ let
         sha512 = "A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==";
       };
     };
-    "default-compare-1.0.0" = {
-      name = "default-compare";
-      packageName = "default-compare";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz";
-        sha512 = "QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==";
-      };
-    };
     "default-gateway-4.2.0" = {
       name = "default-gateway";
       packageName = "default-gateway";
@@ -22883,15 +22712,6 @@ let
         sha512 = "eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==";
       };
     };
-    "default-resolution-2.0.0" = {
-      name = "default-resolution";
-      packageName = "default-resolution";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz";
-        sha512 = "2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ==";
-      };
-    };
     "defaults-1.0.4" = {
       name = "defaults";
       packageName = "defaults";
@@ -23216,13 +23036,13 @@ let
         sha512 = "pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==";
       };
     };
-    "detect-libc-2.0.2" = {
+    "detect-libc-2.0.3" = {
       name = "detect-libc";
       packageName = "detect-libc";
-      version = "2.0.2";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz";
-        sha512 = "UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==";
+        url = "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz";
+        sha512 = "bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==";
       };
     };
     "detect-newline-2.1.0" = {
@@ -23279,13 +23099,13 @@ let
         sha512 = "RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==";
       };
     };
-    "devtools-protocol-0.0.981744" = {
+    "devtools-protocol-0.0.1286932" = {
       name = "devtools-protocol";
       packageName = "devtools-protocol";
-      version = "0.0.981744";
+      version = "0.0.1286932";
       src = fetchurl {
-        url = "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz";
-        sha512 = "0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==";
+        url = "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1286932.tgz";
+        sha512 = "wu58HMQll9voDjR4NlPyoDEw1syfzaBNHymMMZ/QOXiHRNluOnDgu9hp1yHOKYoMlxCh4lSSiugLITe6Fvu1eA==";
       };
     };
     "dezalgo-1.0.4" = {
@@ -23405,13 +23225,13 @@ let
         sha512 = "EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==";
       };
     };
-    "diff2html-3.4.47" = {
+    "diff2html-3.4.48" = {
       name = "diff2html";
       packageName = "diff2html";
-      version = "3.4.47";
+      version = "3.4.48";
       src = fetchurl {
-        url = "https://registry.npmjs.org/diff2html/-/diff2html-3.4.47.tgz";
-        sha512 = "2llDp8750FRUJl8n7apM0tlcqZYxbDHTw7qhzv/kGddByHRpn3Xg/sWHHIy34h492aGSpStEULydxqrITYpuoA==";
+        url = "https://registry.npmjs.org/diff2html/-/diff2html-3.4.48.tgz";
+        sha512 = "1lzNSg0G0VPKZPTyi4knzV2nAWTXBy/QaWCKzDto6iEIlcuOJEG0li4bElJfpHNz+pBqPu4AcC1i9ZCo9KMUOg==";
       };
     };
     "diffie-hellman-5.0.3" = {
@@ -23792,13 +23612,13 @@ let
         sha512 = "3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==";
       };
     };
-    "dompurify-3.0.9" = {
+    "dompurify-3.1.5" = {
       name = "dompurify";
       packageName = "dompurify";
-      version = "3.0.9";
+      version = "3.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dompurify/-/dompurify-3.0.9.tgz";
-        sha512 = "uyb4NDIvQ3hRn6NiC+SIFaP4mJ/MdXlvtunaqK9Bn6dD3RuB/1S/gasEjDHD8eiaqdSael2vBv+hOs7Y+jhYOQ==";
+        url = "https://registry.npmjs.org/dompurify/-/dompurify-3.1.5.tgz";
+        sha512 = "lwG+n5h8QNpxtyrJW/gJWckL+1/DQiYMX8f7t8Z2AZTPw1esVrqjI63i7Zc2Gz0aKzLVMYC1V1PL/ky+aY/NgA==";
       };
     };
     "domutils-1.4.3" = {
@@ -23891,22 +23711,22 @@ let
         sha512 = "tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==";
       };
     };
-    "dot-prop-7.2.0" = {
+    "dot-prop-8.0.2" = {
       name = "dot-prop";
       packageName = "dot-prop";
-      version = "7.2.0";
+      version = "8.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dot-prop/-/dot-prop-7.2.0.tgz";
-        sha512 = "Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA==";
+        url = "https://registry.npmjs.org/dot-prop/-/dot-prop-8.0.2.tgz";
+        sha512 = "xaBe6ZT4DHPkg0k4Ytbvn5xoxgpG0jOS1dYxSOwAHPuNLjP3/OzN0gH55SrLqpx8cBfSaVt91lXYkApjb+nYdQ==";
       };
     };
-    "dot-prop-8.0.2" = {
+    "dot-prop-9.0.0" = {
       name = "dot-prop";
       packageName = "dot-prop";
-      version = "8.0.2";
+      version = "9.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dot-prop/-/dot-prop-8.0.2.tgz";
-        sha512 = "xaBe6ZT4DHPkg0k4Ytbvn5xoxgpG0jOS1dYxSOwAHPuNLjP3/OzN0gH55SrLqpx8cBfSaVt91lXYkApjb+nYdQ==";
+        url = "https://registry.npmjs.org/dot-prop/-/dot-prop-9.0.0.tgz";
+        sha512 = "1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==";
       };
     };
     "dotenv-10.0.0" = {
@@ -24125,22 +23945,13 @@ let
         sha512 = "M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==";
       };
     };
-    "e-prime-0.10.4" = {
-      name = "e-prime";
-      packageName = "e-prime";
-      version = "0.10.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/e-prime/-/e-prime-0.10.4.tgz";
-        sha512 = "tzBmM2mFSnAq5BuxPSyin6qXb3yMe1wufJN7L7ZPcEWS5S+jI2dhKQEoqHVEcSMMXo/j5lcWpX5jzA6wLSmX6w==";
-      };
-    };
-    "each-props-1.3.2" = {
+    "each-props-3.0.0" = {
       name = "each-props";
       packageName = "each-props";
-      version = "1.3.2";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz";
-        sha512 = "vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==";
+        url = "https://registry.npmjs.org/each-props/-/each-props-3.0.0.tgz";
+        sha512 = "IYf1hpuWrdzse/s/YJOrFmU15lyhSzxelNVAHTEG3DtP4QsLTWZUzcUL3HMXmKQxXpa4EIrBPpwRgj0aehdvAw==";
       };
     };
     "eastasianwidth-0.2.0" = {
@@ -24233,22 +24044,22 @@ let
         sha512 = "WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==";
       };
     };
-    "ejs-3.1.9" = {
+    "ejs-3.1.10" = {
       name = "ejs";
       packageName = "ejs";
-      version = "3.1.9";
+      version = "3.1.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz";
-        sha512 = "rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==";
+        url = "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz";
+        sha512 = "UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==";
       };
     };
-    "electron-to-chromium-1.4.710" = {
+    "electron-to-chromium-1.4.789" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.4.710";
+      version = "1.4.789";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.710.tgz";
-        sha512 = "w+9yAVHoHhysCa+gln7AzbO9CdjFcL/wN/5dd+XW/Msl2d/4+WisEaCF1nty0xbAKaxdaJfgLB2296U7zZB7BA==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.789.tgz";
+        sha512 = "0VbyiaXoT++Fi2vHGo2ThOeS6X3vgRCWrjPeO2FeIAWL6ItiSJ9BqlH8LfCXe3X1IdcG+S0iLoNaxQWhfZoGzQ==";
       };
     };
     "elegant-spinner-1.0.1" = {
@@ -24360,13 +24171,13 @@ let
         sha512 = "L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==";
       };
     };
-    "emojilib-3.0.11" = {
+    "emojilib-3.0.12" = {
       name = "emojilib";
       packageName = "emojilib";
-      version = "3.0.11";
+      version = "3.0.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/emojilib/-/emojilib-3.0.11.tgz";
-        sha512 = "OuML9z640prB+0Rms1RgzJrBAqNC9mFdqT2HeFcXSGSGNEiZh9adsaPPxWbqRoMyJPzu+zNKPyGKv4/sPmJDyg==";
+        url = "https://registry.npmjs.org/emojilib/-/emojilib-3.0.12.tgz";
+        sha512 = "b52zmWqBwv9juk6lKaTdYxRQSnpsnT58Sj/x6fE8fZWcsNd43gAPXUbtjLKJvVlPS9FFNCN6nB9Vh1xipnCzXw==";
       };
     };
     "emojis-list-3.0.0" = {
@@ -24585,22 +24396,13 @@ let
         sha512 = "n6e4bsCpzsP0OB76X+vEWhySUQI8GHPVFVK+3QkX35tbryy2WoeGeK5kQ+oxzgDVHjIZyz5fyS60Mi3EpQLc0Q==";
       };
     };
-    "enhanced-resolve-5.12.0" = {
-      name = "enhanced-resolve";
-      packageName = "enhanced-resolve";
-      version = "5.12.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz";
-        sha512 = "QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==";
-      };
-    };
-    "enhanced-resolve-5.16.0" = {
+    "enhanced-resolve-5.16.1" = {
       name = "enhanced-resolve";
       packageName = "enhanced-resolve";
-      version = "5.16.0";
+      version = "5.16.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz";
-        sha512 = "O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==";
+        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.1.tgz";
+        sha512 = "4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw==";
       };
     };
     "enquirer-2.3.6" = {
@@ -24729,15 +24531,6 @@ let
         sha512 = "/DhCJDf5DSFK32joQiWRpWrT0h7p3hVQfMKxiBb7Nt8C8IF8BYyPtclDnuGGLOoj16d/8udKeiE7JbkotDmorQ==";
       };
     };
-    "envfile-6.18.0" = {
-      name = "envfile";
-      packageName = "envfile";
-      version = "6.18.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/envfile/-/envfile-6.18.0.tgz";
-        sha512 = "IsYv64dtlNXTm4huvCBpbXsdZQurYUju9WoYCkSj+SDYpO3v4/dq346QsCnNZ3JcnWw0G3E6+saVkVtmPw98Gg==";
-      };
-    };
     "envinfo-7.11.0" = {
       name = "envinfo";
       packageName = "envinfo";
@@ -24747,13 +24540,13 @@ let
         sha512 = "G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==";
       };
     };
-    "envinfo-7.11.1" = {
+    "envinfo-7.13.0" = {
       name = "envinfo";
       packageName = "envinfo";
-      version = "7.11.1";
+      version = "7.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz";
-        sha512 = "8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==";
+        url = "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz";
+        sha512 = "cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==";
       };
     };
     "envinfo-7.8.1" = {
@@ -24765,6 +24558,15 @@ let
         sha512 = "/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==";
       };
     };
+    "environment-1.1.0" = {
+      name = "environment";
+      packageName = "environment";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz";
+        sha512 = "xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==";
+      };
+    };
     "eol-0.9.1" = {
       name = "eol";
       packageName = "eol";
@@ -24810,15 +24612,6 @@ let
         sha512 = "7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==";
       };
     };
-    "error-stack-parser-2.1.4" = {
-      name = "error-stack-parser";
-      packageName = "error-stack-parser";
-      version = "2.1.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz";
-        sha512 = "Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==";
-      };
-    };
     "errorhandler-1.5.1" = {
       name = "errorhandler";
       packageName = "errorhandler";
@@ -24828,22 +24621,22 @@ let
         sha512 = "rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==";
       };
     };
-    "es-abstract-1.23.2" = {
+    "es-abstract-1.23.3" = {
       name = "es-abstract";
       packageName = "es-abstract";
-      version = "1.23.2";
+      version = "1.23.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.2.tgz";
-        sha512 = "60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==";
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz";
+        sha512 = "e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==";
       };
     };
-    "es-aggregate-error-1.0.12" = {
+    "es-aggregate-error-1.0.13" = {
       name = "es-aggregate-error";
       packageName = "es-aggregate-error";
-      version = "1.0.12";
+      version = "1.0.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es-aggregate-error/-/es-aggregate-error-1.0.12.tgz";
-        sha512 = "j0PupcmELoVbYS2NNrsn5zcLLEsryQwP02x8fRawh7c2eEaPHwJFAxltZsqV7HJjsF57+SMpYyVRWgbVLfOagg==";
+        url = "https://registry.npmjs.org/es-aggregate-error/-/es-aggregate-error-1.0.13.tgz";
+        sha512 = "KkzhUUuD2CUMqEc8JEqsXEMDHzDPE8RCjZeUBitsnB1eNcAJWQPiciKsMXe3Yytj4Flw1XLl46Qcf9OxvZha7A==";
       };
     };
     "es-array-method-boxes-properly-1.0.0" = {
@@ -24891,13 +24684,13 @@ let
         sha512 = "sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==";
       };
     };
-    "es-iterator-helpers-1.0.18" = {
+    "es-iterator-helpers-1.0.19" = {
       name = "es-iterator-helpers";
       packageName = "es-iterator-helpers";
-      version = "1.0.18";
+      version = "1.0.19";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.18.tgz";
-        sha512 = "scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==";
+        url = "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz";
+        sha512 = "zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==";
       };
     };
     "es-module-lexer-1.4.1" = {
@@ -24909,6 +24702,15 @@ let
         sha512 = "cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==";
       };
     };
+    "es-module-lexer-1.5.3" = {
+      name = "es-module-lexer";
+      packageName = "es-module-lexer";
+      version = "1.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.3.tgz";
+        sha512 = "i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==";
+      };
+    };
     "es-object-atoms-1.0.0" = {
       name = "es-object-atoms";
       packageName = "es-object-atoms";
@@ -25098,6 +24900,24 @@ let
         sha512 = "aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==";
       };
     };
+    "esbuild-0.19.8" = {
+      name = "esbuild";
+      packageName = "esbuild";
+      version = "0.19.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esbuild/-/esbuild-0.19.8.tgz";
+        sha512 = "l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w==";
+      };
+    };
+    "esbuild-0.20.2" = {
+      name = "esbuild";
+      packageName = "esbuild";
+      version = "0.20.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz";
+        sha512 = "WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==";
+      };
+    };
     "esbuild-android-64-0.14.47" = {
       name = "esbuild-android-64";
       packageName = "esbuild-android-64";
@@ -25440,6 +25260,15 @@ let
         sha512 = "dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==";
       };
     };
+    "eslint-9.4.0" = {
+      name = "eslint";
+      packageName = "eslint";
+      version = "9.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint/-/eslint-9.4.0.tgz";
+        sha512 = "sjc7Y8cUD1IlwYcTS9qPSvGjAC8Ne9LctpxKKu3x/1IC9bnOg98Zy6GxEJUfr1NojMgVPlyANXYns8oE2c1TAA==";
+      };
+    };
     "eslint-config-prettier-8.10.0" = {
       name = "eslint-config-prettier";
       packageName = "eslint-config-prettier";
@@ -25494,22 +25323,22 @@ let
         sha512 = "73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==";
       };
     };
-    "eslint-plugin-react-hooks-4.6.0" = {
+    "eslint-plugin-react-hooks-4.6.2" = {
       name = "eslint-plugin-react-hooks";
       packageName = "eslint-plugin-react-hooks";
-      version = "4.6.0";
+      version = "4.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz";
-        sha512 = "oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==";
+        url = "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz";
+        sha512 = "QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==";
       };
     };
-    "eslint-plugin-react-refresh-0.4.6" = {
+    "eslint-plugin-react-refresh-0.4.7" = {
       name = "eslint-plugin-react-refresh";
       packageName = "eslint-plugin-react-refresh";
-      version = "0.4.6";
+      version = "0.4.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.6.tgz";
-        sha512 = "NjGXdm7zgcKRkKMua34qVO9doI7VOxZ6ancSvBELJSSoX97jyndXcSoa8XBh69JoB31dNz3EEzlMcizZl7LaMA==";
+        url = "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.7.tgz";
+        sha512 = "yrj+KInFmwuQS2UQcg1SF83ha1tuHC1jMQbRNyuWtlEzzKRDgAl7L4Yp4NlDUZTZNlWvHEzOtJhMi40R7JxcSw==";
       };
     };
     "eslint-plugin-unicorn-48.0.1" = {
@@ -25530,13 +25359,13 @@ let
         sha512 = "oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw==";
       };
     };
-    "eslint-plugin-vue-9.23.0" = {
+    "eslint-plugin-vue-9.26.0" = {
       name = "eslint-plugin-vue";
       packageName = "eslint-plugin-vue";
-      version = "9.23.0";
+      version = "9.26.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.23.0.tgz";
-        sha512 = "Bqd/b7hGYGrlV+wP/g77tjyFmp81lh5TMw0be9093X02SyelxRRfCI6/IsGq/J7Um0YwB9s0Ry0wlFyjPdmtUw==";
+        url = "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.26.0.tgz";
+        sha512 = "eTvlxXgd4ijE1cdur850G6KalZqk65k1JKoOI2d1kT3hr8sPD07j1q98FRFdNnpxBELGPWxZmInxeHGF/GxtqQ==";
       };
     };
     "eslint-rule-docs-1.1.235" = {
@@ -25566,6 +25395,15 @@ let
         sha512 = "dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==";
       };
     };
+    "eslint-scope-8.0.1" = {
+      name = "eslint-scope";
+      packageName = "eslint-scope";
+      version = "8.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.1.tgz";
+        sha512 = "pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==";
+      };
+    };
     "eslint-utils-2.1.0" = {
       name = "eslint-utils";
       packageName = "eslint-utils";
@@ -25602,6 +25440,15 @@ let
         sha512 = "wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==";
       };
     };
+    "eslint-visitor-keys-4.0.0" = {
+      name = "eslint-visitor-keys";
+      packageName = "eslint-visitor-keys";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz";
+        sha512 = "OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==";
+      };
+    };
     "esm-env-1.0.0" = {
       name = "esm-env";
       packageName = "esm-env";
@@ -25620,6 +25467,15 @@ let
         sha512 = "kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==";
       };
     };
+    "espree-10.0.1" = {
+      name = "espree";
+      packageName = "espree";
+      version = "10.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/espree/-/espree-10.0.1.tgz";
+        sha512 = "MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==";
+      };
+    };
     "espree-3.5.4" = {
       name = "espree";
       packageName = "espree";
@@ -25683,13 +25539,13 @@ let
         sha512 = "YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==";
       };
     };
-    "esrap-1.2.1" = {
+    "esrap-1.2.2" = {
       name = "esrap";
       packageName = "esrap";
-      version = "1.2.1";
+      version = "1.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/esrap/-/esrap-1.2.1.tgz";
-        sha512 = "dhkcOLfN/aDdMFI1iwPEcy/XqAZzGNfgfEJjZozy2tia6u0dQoZyXzkRshHTckuNsM+c0CYQndY+uRFe3N+AIQ==";
+        url = "https://registry.npmjs.org/esrap/-/esrap-1.2.2.tgz";
+        sha512 = "F2pSJklxx1BlQIQgooczXCPHmcWpn6EsP5oo73LQfonG9fIlIENQ8vMmfGXeojP9MrkzUNAfyU5vdFlR9shHAw==";
       };
     };
     "esrecurse-4.3.0" = {
@@ -25791,13 +25647,13 @@ let
         sha512 = "aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==";
       };
     };
-    "ethereum-bloom-filters-1.0.10" = {
+    "ethereum-bloom-filters-1.1.0" = {
       name = "ethereum-bloom-filters";
       packageName = "ethereum-bloom-filters";
-      version = "1.0.10";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz";
-        sha512 = "rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==";
+        url = "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.1.0.tgz";
+        sha512 = "J1gDRkLpuGNvWYzWslBQR9cDV4nd4kfvVTE/Wy4Kkm4yb3EYRSlyi0eB/inTsSTTVyA0+HyzHgbr95Fn/Z1fSw==";
       };
     };
     "ethereum-cryptography-2.1.3" = {
@@ -25980,15 +25836,6 @@ let
         sha512 = "87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw==";
       };
     };
-    "execa-0.9.0" = {
-      name = "execa";
-      packageName = "execa";
-      version = "0.9.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/execa/-/execa-0.9.0.tgz";
-        sha512 = "BbUMBiX4hqiHZUA5+JujIjNb6TyAlp2D5KLheMjMluwOuzcnylDL4AxZYLLn1n2AGB49eSWwyKvvEQoRpnAtmA==";
-      };
-    };
     "execa-1.0.0" = {
       name = "execa";
       packageName = "execa";
@@ -26052,15 +25899,6 @@ let
         sha512 = "QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==";
       };
     };
-    "execa-7.2.0" = {
-      name = "execa";
-      packageName = "execa";
-      version = "7.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz";
-        sha512 = "UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==";
-      };
-    };
     "execa-8.0.1" = {
       name = "execa";
       packageName = "execa";
@@ -26259,13 +26097,13 @@ let
         sha512 = "S8qfaXCv//7tQWV9M+JKx3CF7ypYhDdSUbkUQdaVO/r8D76/aRTArY/aRw1yEfaAOzyK8C8diDToV1itl51DfQ==";
       };
     };
-    "expo-modules-autolinking-1.10.3" = {
+    "expo-modules-autolinking-1.11.1" = {
       name = "expo-modules-autolinking";
       packageName = "expo-modules-autolinking";
-      version = "1.10.3";
+      version = "1.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.10.3.tgz";
-        sha512 = "pn4n2Dl4iRh/zUeiChjRIe1C7EqOw1qhccr85viQV7W6l5vgRpY0osE51ij5LKg/kJmGRcJfs12+PwbdTplbKw==";
+        url = "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.11.1.tgz";
+        sha512 = "2dy3lTz76adOl7QUvbreMCrXyzUiF8lygI7iFJLjgIQIVH+43KnFWE5zBumpPbkiaq0f0uaFpN9U0RGQbnKiMw==";
       };
     };
     "expo-modules-autolinking-1.2.0" = {
@@ -26340,31 +26178,13 @@ let
         sha512 = "yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==";
       };
     };
-    "express-4.18.1" = {
-      name = "express";
-      packageName = "express";
-      version = "4.18.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/express/-/express-4.18.1.tgz";
-        sha512 = "zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==";
-      };
-    };
-    "express-4.18.2" = {
-      name = "express";
-      packageName = "express";
-      version = "4.18.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/express/-/express-4.18.2.tgz";
-        sha512 = "5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==";
-      };
-    };
-    "express-4.18.3" = {
+    "express-4.19.2" = {
       name = "express";
       packageName = "express";
-      version = "4.18.3";
+      version = "4.19.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/express/-/express-4.18.3.tgz";
-        sha512 = "6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==";
+        url = "https://registry.npmjs.org/express/-/express-4.19.2.tgz";
+        sha512 = "5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==";
       };
     };
     "express-handlebars-3.1.0" = {
@@ -26646,15 +26466,6 @@ let
         sha512 = "k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==";
       };
     };
-    "fast-blob-stream-1.1.1" = {
-      name = "fast-blob-stream";
-      packageName = "fast-blob-stream";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fast-blob-stream/-/fast-blob-stream-1.1.1.tgz";
-        sha512 = "wdRazMMeM2pl8hq1lFG8fzix8p1VLAJunTTE2RADiFBwbUfZwybUm6IwPrmMS7qTthiayr166NoXeqWe3hfR5w==";
-      };
-    };
     "fast-csv-4.3.6" = {
       name = "fast-csv";
       packageName = "fast-csv";
@@ -26691,15 +26502,6 @@ let
         sha512 = "VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==";
       };
     };
-    "fast-equals-4.0.3" = {
-      name = "fast-equals";
-      packageName = "fast-equals";
-      version = "4.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fast-equals/-/fast-equals-4.0.3.tgz";
-        sha512 = "G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==";
-      };
-    };
     "fast-equals-5.0.1" = {
       name = "fast-equals";
       packageName = "fast-equals";
@@ -26718,15 +26520,6 @@ let
         sha512 = "/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==";
       };
     };
-    "fast-glob-3.3.1" = {
-      name = "fast-glob";
-      packageName = "fast-glob";
-      version = "3.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz";
-        sha512 = "kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==";
-      };
-    };
     "fast-glob-3.3.2" = {
       name = "fast-glob";
       packageName = "fast-glob";
@@ -26745,15 +26538,6 @@ let
         sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==";
       };
     };
-    "fast-levenshtein-1.1.4" = {
-      name = "fast-levenshtein";
-      packageName = "fast-levenshtein";
-      version = "1.1.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz";
-        sha512 = "Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw==";
-      };
-    };
     "fast-levenshtein-2.0.6" = {
       name = "fast-levenshtein";
       packageName = "fast-levenshtein";
@@ -26790,13 +26574,13 @@ let
         sha512 = "g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==";
       };
     };
-    "fast-readable-async-iterator-1.1.2" = {
+    "fast-readable-async-iterator-2.0.0" = {
       name = "fast-readable-async-iterator";
       packageName = "fast-readable-async-iterator";
-      version = "1.1.2";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fast-readable-async-iterator/-/fast-readable-async-iterator-1.1.2.tgz";
-        sha512 = "RvoeUNYOmXLr3j6ZcThapEWw8xoXZe0DHHIOvqJH2VOzbJ9lYLDSIpJg0hqoSkh9yzFPvR1aocuWl67ECPZrdQ==";
+        url = "https://registry.npmjs.org/fast-readable-async-iterator/-/fast-readable-async-iterator-2.0.0.tgz";
+        sha512 = "8Sld+DuyWRIftl86ZguJxR2oXCBccOiJxrY/Rj9/7ZBynW8pYMWzIcqxFL1da+25jaWJZVa+HHX/8SsA21JdTA==";
       };
     };
     "fast-safe-stringify-2.1.1" = {
@@ -26817,6 +26601,15 @@ let
         sha512 = "VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==";
       };
     };
+    "fast-uri-2.3.0" = {
+      name = "fast-uri";
+      packageName = "fast-uri";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-uri/-/fast-uri-2.3.0.tgz";
+        sha512 = "eel5UKGn369gGEWOqBShmFJWfq/xSJvsgDzgLYC845GneayWvXBf0lJCBn5qTABfewy1ZDPoaR5OZCP+kssfuw==";
+      };
+    };
     "fast-url-parser-1.1.3" = {
       name = "fast-url-parser";
       packageName = "fast-url-parser";
@@ -27051,15 +26844,6 @@ let
         sha512 = "uXP/zGzxxFvFfcZGgBIwotm+Tdc55ddPAzF7iHshP4YGaXMww7rSF9peD9D1sui5ebONg5UobsZv+FfgEpGv/w==";
       };
     };
-    "file-entry-cache-5.0.1" = {
-      name = "file-entry-cache";
-      packageName = "file-entry-cache";
-      version = "5.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz";
-        sha512 = "bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==";
-      };
-    };
     "file-entry-cache-6.0.1" = {
       name = "file-entry-cache";
       packageName = "file-entry-cache";
@@ -27204,6 +26988,15 @@ let
         sha512 = "lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==";
       };
     };
+    "filename-reserved-regex-3.0.0" = {
+      name = "filename-reserved-regex";
+      packageName = "filename-reserved-regex";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-3.0.0.tgz";
+        sha512 = "hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw==";
+      };
+    };
     "filenamify-2.1.0" = {
       name = "filenamify";
       packageName = "filenamify";
@@ -27258,13 +27051,13 @@ let
         sha512 = "VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==";
       };
     };
-    "fill-range-7.0.1" = {
+    "fill-range-7.1.1" = {
       name = "fill-range";
       packageName = "fill-range";
-      version = "7.0.1";
+      version = "7.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz";
-        sha512 = "qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==";
+        url = "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz";
+        sha512 = "YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==";
       };
     };
     "filled-array-1.1.0" = {
@@ -27330,13 +27123,13 @@ let
         sha512 = "5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==";
       };
     };
-    "find-babel-config-1.2.0" = {
+    "find-babel-config-1.2.2" = {
       name = "find-babel-config";
       packageName = "find-babel-config";
-      version = "1.2.0";
+      version = "1.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.2.0.tgz";
-        sha512 = "jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA==";
+        url = "https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.2.2.tgz";
+        sha512 = "oK59njMyw2y3yxto1BCfVK7MQp/OYf4FleHu0RgosH3riFJ1aOuo/7naLDLAObfrgn3ueFhw5sAT/cp0QuJI3Q==";
       };
     };
     "find-cache-dir-2.1.0" = {
@@ -27357,15 +27150,6 @@ let
         sha512 = "wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==";
       };
     };
-    "find-process-1.4.7" = {
-      name = "find-process";
-      packageName = "find-process";
-      version = "1.4.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/find-process/-/find-process-1.4.7.tgz";
-        sha512 = "/U4CYp1214Xrp3u3Fqr9yNynUrr5Le4y0SsJh2lMDDSbpwYSz3M2SMWQC+wqcx79cN8PQtHQIL8KnuY9M66fdg==";
-      };
-    };
     "find-up-1.1.2" = {
       name = "find-up";
       packageName = "find-up";
@@ -27438,15 +27222,6 @@ let
         sha512 = "q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==";
       };
     };
-    "find-versions-5.1.0" = {
-      name = "find-versions";
-      packageName = "find-versions";
-      version = "5.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/find-versions/-/find-versions-5.1.0.tgz";
-        sha512 = "+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==";
-      };
-    };
     "find-yarn-workspace-root-2.0.0" = {
       name = "find-yarn-workspace-root";
       packageName = "find-yarn-workspace-root";
@@ -27474,24 +27249,6 @@ let
         sha512 = "ENZS237/Hr8bjczn5eKuBohLgaD0JyUd0arxretR1f9RO46vZHA1b2y0VorgGV3WaOT3c+78P8h7v4JGJ1i/rg==";
       };
     };
-    "findup-sync-2.0.0" = {
-      name = "findup-sync";
-      packageName = "findup-sync";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz";
-        sha512 = "vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g==";
-      };
-    };
-    "findup-sync-3.0.0" = {
-      name = "findup-sync";
-      packageName = "findup-sync";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz";
-        sha512 = "YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==";
-      };
-    };
     "findup-sync-4.0.0" = {
       name = "findup-sync";
       packageName = "findup-sync";
@@ -27519,6 +27276,15 @@ let
         sha512 = "ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==";
       };
     };
+    "fined-2.0.0" = {
+      name = "fined";
+      packageName = "fined";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fined/-/fined-2.0.0.tgz";
+        sha512 = "OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==";
+      };
+    };
     "fkill-7.2.1" = {
       name = "fkill";
       packageName = "fkill";
@@ -27546,6 +27312,15 @@ let
         sha512 = "lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==";
       };
     };
+    "flagged-respawn-2.0.0" = {
+      name = "flagged-respawn";
+      packageName = "flagged-respawn";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-2.0.0.tgz";
+        sha512 = "Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==";
+      };
+    };
     "flat-5.0.2" = {
       name = "flat";
       packageName = "flat";
@@ -27564,15 +27339,6 @@ let
         sha512 = "VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==";
       };
     };
-    "flat-cache-2.0.1" = {
-      name = "flat-cache";
-      packageName = "flat-cache";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz";
-        sha512 = "LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==";
-      };
-    };
     "flat-cache-3.2.0" = {
       name = "flat-cache";
       packageName = "flat-cache";
@@ -27600,15 +27366,6 @@ let
         sha512 = "+X3/0hl9in0FJPsPB5/xTpkxxMzDSoA4cyon46HtXhrfEbpqBvKxpR+HJGqMjKv4jcBmoLjEtTVIAADJjLjv8A==";
       };
     };
-    "flatted-2.0.2" = {
-      name = "flatted";
-      packageName = "flatted";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz";
-        sha512 = "r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==";
-      };
-    };
     "flatted-3.3.1" = {
       name = "flatted";
       packageName = "flatted";
@@ -27636,31 +27393,22 @@ let
         sha512 = "dz4HxH6pOvbUzZpZ/yXhafjbR2I8cenK5xL0KtBFb7U2ADsR+OwXifnxZjij/pZWF775uSCMzWVd+jDik2H2IA==";
       };
     };
-    "flow-parser-0.231.0" = {
+    "flow-parser-0.237.2" = {
       name = "flow-parser";
       packageName = "flow-parser";
-      version = "0.231.0";
+      version = "0.237.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.231.0.tgz";
-        sha512 = "WVzuqwq7ZnvBceCG0DGeTQebZE+iIU0mlk5PmJgYj9DDrt+0isGC2m1ezW9vxL4V+HERJJo9ExppOnwKH2op6Q==";
+        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.237.2.tgz";
+        sha512 = "mvI/kdfr3l1waaPbThPA8dJa77nHXrfZIun+SWvFwSwDjmeByU7mGJGRmv1+7guU6ccyLV8e1lqZA1lD4iMGnQ==";
       };
     };
-    "fluent-ffmpeg-2.1.2" = {
+    "fluent-ffmpeg-2.1.3" = {
       name = "fluent-ffmpeg";
       packageName = "fluent-ffmpeg";
-      version = "2.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fluent-ffmpeg/-/fluent-ffmpeg-2.1.2.tgz";
-        sha512 = "IZTB4kq5GK0DPp7sGQ0q/BWurGHffRtQQwVkiqDgeO6wYJLLV5ZhgNOQ65loZxxuPMKZKZcICCUnaGtlxBiR0Q==";
-      };
-    };
-    "flush-write-stream-1.1.1" = {
-      name = "flush-write-stream";
-      packageName = "flush-write-stream";
-      version = "1.1.1";
+      version = "2.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz";
-        sha512 = "3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==";
+        url = "https://registry.npmjs.org/fluent-ffmpeg/-/fluent-ffmpeg-2.1.3.tgz";
+        sha512 = "Be3narBNt2s6bsaqP6Jzq91heDgOEaDCJAXcE3qcma/EJBSy5FB4cvO31XBInuAuKBx8Kptf8dkhjK0IOru39Q==";
       };
     };
     "fn-annotate-1.2.0" = {
@@ -27933,13 +27681,13 @@ let
         sha512 = "buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==";
       };
     };
-    "fp-ts-2.16.4" = {
+    "fp-ts-2.16.6" = {
       name = "fp-ts";
       packageName = "fp-ts";
-      version = "2.16.4";
+      version = "2.16.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fp-ts/-/fp-ts-2.16.4.tgz";
-        sha512 = "EkV/l6oHaf/w/DlVc5UiqLibqTV1S+idiDdcWQ+UjnLLflL9pZG28ebJfPLor8ifoL8NgEFDIo9fOvHyiSCrJQ==";
+        url = "https://registry.npmjs.org/fp-ts/-/fp-ts-2.16.6.tgz";
+        sha512 = "v7w209VPj4L6pPn/ftFRJu31Oa8QagwcVw7BZmLCUWU4AQoc954rX9ogSIahDf67Pg+GjPbkW/Kn9XWnlWJG0g==";
       };
     };
     "fraction.js-4.3.7" = {
@@ -28023,13 +27771,13 @@ let
         sha512 = "KhjJmZAs2eqfhCb6PdPx4RcZtheGTz86tpTC5JTvqBn/xda+Nb+0C7dCyjOSN7T76H6a56LvH0SVXQMchLXDRw==";
       };
     };
-    "fs-chunk-store-3.0.1" = {
+    "fs-chunk-store-4.1.0" = {
       name = "fs-chunk-store";
       packageName = "fs-chunk-store";
-      version = "3.0.1";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fs-chunk-store/-/fs-chunk-store-3.0.1.tgz";
-        sha512 = "YrOFuXtUJQBkOZ2QBXBoIrjLJ/TNTpEaGnxV+TmL1qaW5J4ah6lxMh/X9pb3To+hbaoT/pRuBXLkkqoavQoQFw==";
+        url = "https://registry.npmjs.org/fs-chunk-store/-/fs-chunk-store-4.1.0.tgz";
+        sha512 = "8apaYPaENIVUjVGqjo+Yg5/Hv7qL2fijWV+XGMCs3MR07o9DZZVMpF7dclxdjYotSjLdUGVPhqaJn+eAx6NLYQ==";
       };
     };
     "fs-constants-1.0.0" = {
@@ -28185,22 +27933,22 @@ let
         sha512 = "XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==";
       };
     };
-    "fs-mkdirp-stream-1.0.0" = {
+    "fs-mkdirp-stream-2.0.1" = {
       name = "fs-mkdirp-stream";
       packageName = "fs-mkdirp-stream";
-      version = "1.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz";
-        sha512 = "+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==";
+        url = "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-2.0.1.tgz";
+        sha512 = "UTOY+59K6IA94tec8Wjqm0FSh5OVudGNB0NL/P6fB3HiE3bYOY3VYBGijsnOHNkQSwC1FKkU77pmq7xp9CskLw==";
       };
     };
-    "fs-monkey-1.0.5" = {
+    "fs-monkey-1.0.6" = {
       name = "fs-monkey";
       packageName = "fs-monkey";
-      version = "1.0.5";
+      version = "1.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz";
-        sha512 = "8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==";
+        url = "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz";
+        sha512 = "b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==";
       };
     };
     "fs-readdir-recursive-1.1.0" = {
@@ -28230,6 +27978,15 @@ let
         sha512 = "OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==";
       };
     };
+    "fsa-chunk-store-1.1.5" = {
+      name = "fsa-chunk-store";
+      packageName = "fsa-chunk-store";
+      version = "1.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fsa-chunk-store/-/fsa-chunk-store-1.1.5.tgz";
+        sha512 = "+3G6d/syYrw4tGJCivHWjtTKNeP7rOXfX1wgnwzsu81CVHKVOah74XxGdlRHRrMTN5dU15lWbnhgtRsBop3V5A==";
+      };
+    };
     "fsevents-1.2.13" = {
       name = "fsevents";
       packageName = "fsevents";
@@ -28329,15 +28086,6 @@ let
         sha512 = "xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==";
       };
     };
-    "fuzzy-0.1.3" = {
-      name = "fuzzy";
-      packageName = "fuzzy";
-      version = "0.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fuzzy/-/fuzzy-0.1.3.tgz";
-        sha512 = "/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==";
-      };
-    };
     "fuzzy-search-3.2.1" = {
       name = "fuzzy-search";
       packageName = "fuzzy-search";
@@ -28464,13 +28212,13 @@ let
         sha512 = "H7cUpwCQSiJmAHM4c/aFu6fUfrhWXW1ncyh8ftxEPMu6AiYkHw9K8br720TGPZJbk5eOH2bynjZD1yPvdDAmag==";
       };
     };
-    "generic-pool-3.8.2" = {
+    "generic-pool-3.9.0" = {
       name = "generic-pool";
       packageName = "generic-pool";
-      version = "3.8.2";
+      version = "3.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/generic-pool/-/generic-pool-3.8.2.tgz";
-        sha512 = "nGToKy6p3PAbYQ7p1UlWl6vSPwfwU6TMSWK7TTu+WUY4ZjyZQGniGGt2oNVvyNSpyZYSB43zMXVLcBm08MTMkg==";
+        url = "https://registry.npmjs.org/generic-pool/-/generic-pool-3.9.0.tgz";
+        sha512 = "hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==";
       };
     };
     "gensequence-2.3.0" = {
@@ -28626,15 +28374,6 @@ let
         sha512 = "g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==";
       };
     };
-    "get-port-please-3.0.1" = {
-      name = "get-port-please";
-      packageName = "get-port-please";
-      version = "3.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/get-port-please/-/get-port-please-3.0.1.tgz";
-        sha512 = "R5pcVO8Z1+pVDu8Ml3xaJCEkBiiy1VQN9za0YqH8GIi1nIqD4IzQhzY6dDzMRtdS1lyiGlucRzm8IN8wtLIXng==";
-      };
-    };
     "get-prototype-chain-1.0.1" = {
       name = "get-prototype-chain";
       packageName = "get-prototype-chain";
@@ -28779,13 +28518,13 @@ let
         sha512 = "g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==";
       };
     };
-    "get-them-args-1.3.2" = {
-      name = "get-them-args";
-      packageName = "get-them-args";
-      version = "1.3.2";
+    "get-tsconfig-4.7.5" = {
+      name = "get-tsconfig";
+      packageName = "get-tsconfig";
+      version = "4.7.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/get-them-args/-/get-them-args-1.3.2.tgz";
-        sha512 = "LRn8Jlk+DwZE4GTlDbT3Hikd1wSHgLMme/+7ddlqKd7ldwR6LjJgTVWzBnR01wnYGe4KgrXjg287RaI22UHmAw==";
+        url = "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz";
+        sha512 = "ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==";
       };
     };
     "get-uri-6.0.3" = {
@@ -28878,6 +28617,15 @@ let
         sha512 = "ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==";
       };
     };
+    "git-raw-commits-5.0.0" = {
+      name = "git-raw-commits";
+      packageName = "git-raw-commits";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-5.0.0.tgz";
+        sha512 = "I2ZXrXeOc0KrCvC7swqtIFXFN+rbjnC7b2T943tvemIOVNl+XP8YnA9UVwqFhzzLClnSA60KR/qEjLpXzs73Qg==";
+      };
+    };
     "git-remote-origin-url-2.0.0" = {
       name = "git-remote-origin-url";
       packageName = "git-remote-origin-url";
@@ -28905,13 +28653,13 @@ let
         sha512 = "hIvOeZwRbQ+7YEUmCkHqo8FOLQZCEn18yevLHADlFPZY02KJGsu5FZt9YW/lybfK2uhWFI7Qg/07LekJiTv7iA==";
       };
     };
-    "git-semver-tags-7.0.1" = {
+    "git-semver-tags-8.0.0" = {
       name = "git-semver-tags";
       packageName = "git-semver-tags";
-      version = "7.0.1";
+      version = "8.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-7.0.1.tgz";
-        sha512 = "NY0ZHjJzyyNXHTDZmj+GG7PyuAKtMsyWSwh07CR2hOZFa+/yoTsXci/nF2obzL8UDhakFNkD9gNdt/Ed+cxh2Q==";
+        url = "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-8.0.0.tgz";
+        sha512 = "N7YRIklvPH3wYWAR2vysaqGLPRcpwQ0GKdlqTiVN5w1UmCdaeY3K8s6DMKRCh54DDdzyt/OAB6C8jgVtb7Y2Fg==";
       };
     };
     "git-spawned-stream-1.0.1" = {
@@ -29013,6 +28761,24 @@ let
         sha512 = "fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==";
       };
     };
+    "glob-10.3.12" = {
+      name = "glob";
+      packageName = "glob";
+      version = "10.3.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz";
+        sha512 = "TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==";
+      };
+    };
+    "glob-10.4.1" = {
+      name = "glob";
+      packageName = "glob";
+      version = "10.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz";
+        sha512 = "2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==";
+      };
+    };
     "glob-6.0.4" = {
       name = "glob";
       packageName = "glob";
@@ -29130,13 +28896,13 @@ let
         sha512 = "XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==";
       };
     };
-    "glob-stream-6.1.0" = {
+    "glob-stream-8.0.2" = {
       name = "glob-stream";
       packageName = "glob-stream";
-      version = "6.1.0";
+      version = "8.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz";
-        sha512 = "uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==";
+        url = "https://registry.npmjs.org/glob-stream/-/glob-stream-8.0.2.tgz";
+        sha512 = "R8z6eTB55t3QeZMmU1C+Gv+t5UnNRkA55c5yo67fAVfxODxieTwsjNG7utxS/73NdP1NbDgCrhVEg2h00y4fFw==";
       };
     };
     "glob-to-regexp-0.4.1" = {
@@ -29148,13 +28914,13 @@ let
         sha512 = "lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==";
       };
     };
-    "glob-watcher-5.0.5" = {
+    "glob-watcher-6.0.0" = {
       name = "glob-watcher";
       packageName = "glob-watcher";
-      version = "5.0.5";
+      version = "6.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz";
-        sha512 = "zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==";
+        url = "https://registry.npmjs.org/glob-watcher/-/glob-watcher-6.0.0.tgz";
+        sha512 = "wGM28Ehmcnk2NqRORXFOTOR064L4imSw3EeOqU5bIwUf62eXGwg89WivH6VMahL8zlQHeodzvHpXplrqzrz3Nw==";
       };
     };
     "global-4.4.0" = {
@@ -29266,6 +29032,15 @@ let
         sha512 = "AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==";
       };
     };
+    "globals-14.0.0" = {
+      name = "globals";
+      packageName = "globals";
+      version = "14.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz";
+        sha512 = "oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==";
+      };
+    };
     "globals-9.18.0" = {
       name = "globals";
       packageName = "globals";
@@ -29275,13 +29050,13 @@ let
         sha512 = "S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==";
       };
     };
-    "globalthis-1.0.3" = {
+    "globalthis-1.0.4" = {
       name = "globalthis";
       packageName = "globalthis";
-      version = "1.0.3";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz";
-        sha512 = "sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==";
+        url = "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz";
+        sha512 = "DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==";
       };
     };
     "globby-11.0.1" = {
@@ -29374,6 +29149,15 @@ let
         sha512 = "5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==";
       };
     };
+    "glogg-2.2.0" = {
+      name = "glogg";
+      packageName = "glogg";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glogg/-/glogg-2.2.0.tgz";
+        sha512 = "eWv1ds/zAlz+M1ioHsyKJomfY7jbDDPpwSkv14KQj89bycx1nvK5/2Cj/T9g7kzJcX5Bc7Yv22FjfBZS/jl94A==";
+      };
+    };
     "golden-fleece-1.0.9" = {
       name = "golden-fleece";
       packageName = "golden-fleece";
@@ -29554,15 +29338,6 @@ let
         sha512 = "8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==";
       };
     };
-    "gradient-string-2.0.2" = {
-      name = "gradient-string";
-      packageName = "gradient-string";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/gradient-string/-/gradient-string-2.0.2.tgz";
-        sha512 = "rEDCuqUQ4tbD78TpzsMtt5OIf0cBCSDWSJtUDaF6JsAh+k0v9r++NzxNEG87oDZx9ZwGhD8DaezR2L/yrw0Jdw==";
-      };
-    };
     "gradle-to-js-2.0.1" = {
       name = "gradle-to-js";
       packageName = "gradle-to-js";
@@ -29689,31 +29464,22 @@ let
         sha512 = "BNGZaoxIBkv9yy6Y7omvsaBUHOzfFcII3UN++tpH8MGOKFPFkCPZuwx09ggANMt8FgyWP1Od8SWPmrUEZca4NQ==";
       };
     };
-    "graphql-language-service-5.2.0" = {
+    "graphql-language-service-5.2.1" = {
       name = "graphql-language-service";
       packageName = "graphql-language-service";
-      version = "5.2.0";
+      version = "5.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-language-service/-/graphql-language-service-5.2.0.tgz";
-        sha512 = "o/ZgTS0pBxWm3hSF4+6GwiV1//DxzoLWEbS38+jqpzzy1d/QXBidwQuVYTOksclbtOJZ3KR/tZ8fi/tI6VpVMg==";
+        url = "https://registry.npmjs.org/graphql-language-service/-/graphql-language-service-5.2.1.tgz";
+        sha512 = "8ewD6otGO43vg2TiEGjoLz3CweTwfaf4ZnqfNREqZXS2JSJGXtsRBOMMknCxMfFVh4x14ql3jyDrXcyAAtbmkQ==";
       };
     };
-    "graphql-language-service-server-2.12.0" = {
+    "graphql-language-service-server-2.13.0" = {
       name = "graphql-language-service-server";
       packageName = "graphql-language-service-server";
-      version = "2.12.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-language-service-server/-/graphql-language-service-server-2.12.0.tgz";
-        sha512 = "AIxoKC808n3I3LeYPgrDoykIr2lc8cf94kX8hvR+OrF9SRgFr/s69MoMqbzoB1M5nf0eJWNC/NssuS+6Ujo1uw==";
-      };
-    };
-    "graphql-request-5.2.0" = {
-      name = "graphql-request";
-      packageName = "graphql-request";
-      version = "5.2.0";
+      version = "2.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-request/-/graphql-request-5.2.0.tgz";
-        sha512 = "pLhKIvnMyBERL0dtFI3medKqWOz/RhHdcgbZ+hMMIb32mEPa5MJSzS4AuXxfI4sRAu6JVVk5tvXuGfCWl9JYWQ==";
+        url = "https://registry.npmjs.org/graphql-language-service-server/-/graphql-language-service-server-2.13.0.tgz";
+        sha512 = "/bvH7NPmWrc8rOCgV/Y1HVuKhjdZRMDkGQGEoWJFcGWDaLIp9LcffTLmeZA66NVS7pDmMeriKa2tH8LfPXH6OA==";
       };
     };
     "graphql-subscriptions-1.2.1" = {
@@ -29752,13 +29518,13 @@ let
         sha512 = "sHkK9+lUm20/BGawNEWNtVAeJzhZeBg21VmvmLoT5NdGVeZWv5PdIhkcayQIAgjSyyQ17WMKmbDijIPG2On+Ag==";
       };
     };
-    "graphql-ws-5.15.0" = {
+    "graphql-ws-5.16.0" = {
       name = "graphql-ws";
       packageName = "graphql-ws";
-      version = "5.15.0";
+      version = "5.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.15.0.tgz";
-        sha512 = "xWGAtm3fig9TIhSaNsg0FaDZ8Pyn/3re3RFlP4rhQcmjRDIPpk1EhRuNB+YSJtLzttyuToaDiNhwT1OMoGnJnw==";
+        url = "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.16.0.tgz";
+        sha512 = "Ju2RCU2dQMgSKtArPbEtsK5gNLnsQyTNIo/T7cZNp96niC1x0KdJNZV0TIoilceBPQwfb5itrGl8pkFeOUMl4A==";
       };
     };
     "growly-1.3.0" = {
@@ -29779,13 +29545,13 @@ let
         sha512 = "GD7cTz0I4SAede1/+pAbmJRG44zFLPipVtdL9o3vqx9IEyb7b4/Y3s7r6ofI3CchR5GvYJ+8buCSioDv5dQLiA==";
       };
     };
-    "gulp-cli-2.3.0" = {
+    "gulp-cli-3.0.0" = {
       name = "gulp-cli";
       packageName = "gulp-cli";
-      version = "2.3.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz";
-        sha512 = "zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==";
+        url = "https://registry.npmjs.org/gulp-cli/-/gulp-cli-3.0.0.tgz";
+        sha512 = "RtMIitkT8DEMZZygHK2vEuLPqLPAFB4sntSxg4NoDta7ciwGZ18l7JuhCTiS5deOJi2IoK0btE+hs6R4sfj7AA==";
       };
     };
     "gulp-eslint-3.0.1" = {
@@ -29815,6 +29581,15 @@ let
         sha512 = "hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==";
       };
     };
+    "gulplog-2.2.0" = {
+      name = "gulplog";
+      packageName = "gulplog";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gulplog/-/gulplog-2.2.0.tgz";
+        sha512 = "V2FaKiOhpR3DRXZuYdRLn/qiY0yI5XmqbTKrYbdemJ+xOh2d2MOweI/XFgMzd/9+1twdvMwllnZbWZNJ+BOm4A==";
+      };
+    };
     "handle-thing-2.0.1" = {
       name = "handle-thing";
       packageName = "handle-thing";
@@ -30184,15 +29959,6 @@ let
         sha512 = "QUdSOP1/o+/TxXtpPFXR2mUg2P+ySrmlX7QjwHZCXqMFyYk7YmcGSvqRW+4XgXAoHifdE1t2PwFaQK33TqVjSw==";
       };
     };
-    "hast-util-from-parse5-5.0.3" = {
-      name = "hast-util-from-parse5";
-      packageName = "hast-util-from-parse5";
-      version = "5.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-5.0.3.tgz";
-        sha512 = "gOc8UB99F6eWVWFtM9jUikjN7QkWxB3nY0df5Z0Zq1/Nkwl5V4hAAsl0tmwlgWl/1shlTF8DnNYLO8X6wRV9pA==";
-      };
-    };
     "hast-util-from-parse5-7.1.2" = {
       name = "hast-util-from-parse5";
       packageName = "hast-util-from-parse5";
@@ -30229,15 +29995,6 @@ let
         sha512 = "O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==";
       };
     };
-    "hast-util-parse-selector-2.2.5" = {
-      name = "hast-util-parse-selector";
-      packageName = "hast-util-parse-selector";
-      version = "2.2.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz";
-        sha512 = "7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==";
-      };
-    };
     "hast-util-parse-selector-3.1.1" = {
       name = "hast-util-parse-selector";
       packageName = "hast-util-parse-selector";
@@ -30283,15 +30040,6 @@ let
         sha512 = "nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==";
       };
     };
-    "hastscript-5.1.2" = {
-      name = "hastscript";
-      packageName = "hastscript";
-      version = "5.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz";
-        sha512 = "WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==";
-      };
-    };
     "hastscript-7.2.0" = {
       name = "hastscript";
       packageName = "hastscript";
@@ -30319,15 +30067,6 @@ let
         sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==";
       };
     };
-    "header-case-2.0.4" = {
-      name = "header-case";
-      packageName = "header-case";
-      version = "2.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz";
-        sha512 = "H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==";
-      };
-    };
     "header-range-parser-1.1.3" = {
       name = "header-range-parser";
       packageName = "header-range-parser";
@@ -30481,13 +30220,13 @@ let
         sha512 = "r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==";
       };
     };
-    "hosted-git-info-7.0.1" = {
+    "hosted-git-info-7.0.2" = {
       name = "hosted-git-info";
       packageName = "hosted-git-info";
-      version = "7.0.1";
+      version = "7.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz";
-        sha512 = "+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==";
+        url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz";
+        sha512 = "puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==";
       };
     };
     "hot-shots-6.8.7" = {
@@ -30643,13 +30382,13 @@ let
         sha512 = "eVcrzgbR4tim7c7soKQKtxa/kQM4TzjnlU83rcZ9bHU6t31ehfV7SktN6McWgwPWg+JYMA/O3qpGxBvFq1z2Jg==";
       };
     };
-    "htmlnano-2.1.0" = {
+    "htmlnano-2.1.1" = {
       name = "htmlnano";
       packageName = "htmlnano";
-      version = "2.1.0";
+      version = "2.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/htmlnano/-/htmlnano-2.1.0.tgz";
-        sha512 = "jVGRE0Ep9byMBKEu0Vxgl8dhXYOUk0iNQ2pjsG+BcRB0u0oDF5A9p/iBGMg/PGKYUyMD0OAGu8dVT5Lzj8S58g==";
+        url = "https://registry.npmjs.org/htmlnano/-/htmlnano-2.1.1.tgz";
+        sha512 = "kAERyg/LuNZYmdqgCdYvugyLWNFAm8MWXpQMz1pLpetmCbFwoMxvkSoaAMlFrOC4OKTWI4KlZGT/RsNxg4ghOw==";
       };
     };
     "htmlparser2-3.10.1" = {
@@ -31039,15 +30778,6 @@ let
         sha512 = "rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==";
       };
     };
-    "human-signals-4.3.1" = {
-      name = "human-signals";
-      packageName = "human-signals";
-      version = "4.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz";
-        sha512 = "nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==";
-      };
-    };
     "human-signals-5.0.0" = {
       name = "human-signals";
       packageName = "human-signals";
@@ -31066,6 +30796,24 @@ let
         sha512 = "Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==";
       };
     };
+    "hybrid-chunk-store-1.2.4" = {
+      name = "hybrid-chunk-store";
+      packageName = "hybrid-chunk-store";
+      version = "1.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hybrid-chunk-store/-/hybrid-chunk-store-1.2.4.tgz";
+        sha512 = "wLVIU7rDAz0bQ9sOVwqNWV44A+yAitm+yw66vilkIhZ7V1lVQtiZBQ98YF4vr8rmbqnysgW+pW/PZ1UQtnQCCA==";
+      };
+    };
+    "hyperdyperid-1.2.0" = {
+      name = "hyperdyperid";
+      packageName = "hyperdyperid";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz";
+        sha512 = "Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==";
+      };
+    };
     "hyperlinker-1.0.0" = {
       name = "hyperlinker";
       packageName = "hyperlinker";
@@ -31129,6 +30877,15 @@ let
         sha512 = "soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==";
       };
     };
+    "idb-6.1.5" = {
+      name = "idb";
+      packageName = "idb";
+      version = "6.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/idb/-/idb-6.1.5.tgz";
+        sha512 = "IJtugpKkiVXQn5Y+LteyBCNk1N8xpGV3wWZk9EVtZWH8DYkjBn0bX1XnGP9RkyZF0sAcywa6unHqSWKe7q4LGw==";
+      };
+    };
     "idb-keyval-6.2.1" = {
       name = "idb-keyval";
       packageName = "idb-keyval";
@@ -31228,13 +30985,13 @@ let
         sha512 = "yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==";
       };
     };
-    "ignore-walk-6.0.4" = {
+    "ignore-walk-6.0.5" = {
       name = "ignore-walk";
       packageName = "ignore-walk";
-      version = "6.0.4";
+      version = "6.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.4.tgz";
-        sha512 = "t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==";
+        url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.5.tgz";
+        sha512 = "VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==";
       };
     };
     "image-data-uri-2.0.1" = {
@@ -31345,13 +31102,13 @@ let
         sha512 = "15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==";
       };
     };
-    "immutable-4.3.5" = {
+    "immutable-4.3.6" = {
       name = "immutable";
       packageName = "immutable";
-      version = "4.3.5";
+      version = "4.3.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz";
-        sha512 = "8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==";
+        url = "https://registry.npmjs.org/immutable/-/immutable-4.3.6.tgz";
+        sha512 = "Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==";
       };
     };
     "import-fresh-3.3.0" = {
@@ -31399,15 +31156,6 @@ let
         sha512 = "9WOz1Yh/cvO/p69sxRmhyQwrIGGSp7EIdcb+fFNVi7CzQGQB8U1/1XrKVSbEd/GNOAeM0peJtmi7+qphe7NvAw==";
       };
     };
-    "import-jsx-4.0.1" = {
-      name = "import-jsx";
-      packageName = "import-jsx";
-      version = "4.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/import-jsx/-/import-jsx-4.0.1.tgz";
-        sha512 = "2Cj4nWRuAmvokFRU6UNo3xgzXKh+4nq/LBtD6mTp3V9c9nYV7O+dRvPChPOM34Qcj1+Ijz3oK6HqkixG0GP9Rg==";
-      };
-    };
     "import-lazy-2.1.0" = {
       name = "import-lazy";
       packageName = "import-lazy";
@@ -31444,13 +31192,13 @@ let
         sha512 = "f8KcQ1D80V7RnqVm+/lirO9zkOxjGxhaTC1IPrBGd3MEfNgmNG67tSUO9gTi2F3Blr2Az6g1vocaxzkVnWl9MA==";
       };
     };
-    "import-meta-resolve-4.0.0" = {
+    "import-meta-resolve-4.1.0" = {
       name = "import-meta-resolve";
       packageName = "import-meta-resolve";
-      version = "4.0.0";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz";
-        sha512 = "okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==";
+        url = "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz";
+        sha512 = "I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==";
       };
     };
     "imurmurhash-0.1.4" = {
@@ -31633,6 +31381,15 @@ let
         sha512 = "AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==";
       };
     };
+    "ini-4.1.3" = {
+      name = "ini";
+      packageName = "ini";
+      version = "4.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz";
+        sha512 = "X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==";
+      };
+    };
     "init-package-json-5.0.0" = {
       name = "init-package-json";
       packageName = "init-package-json";
@@ -31660,13 +31417,13 @@ let
         sha512 = "firNp1q3xxTzoItj/eOOSZQnYSlyrWks5llCTVX37nJ59K3eXbQ8PtzCguqo8YI19EELo5QxaKnJd4VxzhU8tg==";
       };
     };
-    "ink-4.4.1" = {
+    "ink-5.0.1" = {
       name = "ink";
       packageName = "ink";
-      version = "4.4.1";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ink/-/ink-4.4.1.tgz";
-        sha512 = "rXckvqPBB0Krifk5rn/5LvQGmyXwCUpBfmTwbkQNBY9JY8RSl3b8OftBNEYxg4+SWUhEKcPifgope28uL9inlA==";
+        url = "https://registry.npmjs.org/ink/-/ink-5.0.1.tgz";
+        sha512 = "ae4AW/t8jlkj/6Ou21H2av0wxTk8vrGzXv+v2v7j4in+bl1M5XRMVbfNghzhBokV++FjF8RBDJvYo+ttR9YVRg==";
       };
     };
     "ink-select-input-4.2.2" = {
@@ -31687,6 +31444,15 @@ let
         sha512 = "uJ4nbH00MM9fjTJ5xdw0zzvtXMkeGb0WV6dzSWvFv2/+ks6FIhpkt+Ge/eLdh0Ah6Vjw5pLMyNfoHQpRDRVFbQ==";
       };
     };
+    "ink-spinner-5.0.0" = {
+      name = "ink-spinner";
+      packageName = "ink-spinner";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ink-spinner/-/ink-spinner-5.0.0.tgz";
+        sha512 = "EYEasbEjkqLGyPOUc8hBJZNuC5GvXGMLu0w5gdTNskPc7Izc5vO3tdQEYnzvshucyGCBXc86ig0ujXPMWaQCdA==";
+      };
+    };
     "ink-table-3.1.0" = {
       name = "ink-table";
       packageName = "ink-table";
@@ -31705,13 +31471,13 @@ let
         sha512 = "7TNlOjJlJXB33vG7yVa+MMO7hCjaC1bCn+zdpSjknWoLbOWMaFdKc7LJvqVkZ0rZv2+akhjXPrcR/dbxissjUw==";
       };
     };
-    "ink-text-input-5.0.1" = {
+    "ink-text-input-6.0.0" = {
       name = "ink-text-input";
       packageName = "ink-text-input";
-      version = "5.0.1";
+      version = "6.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ink-text-input/-/ink-text-input-5.0.1.tgz";
-        sha512 = "crnsYJalG4EhneOFnr/q+Kzw1RgmXI2KsBaLFE6mpiIKxAtJLUnvygOF2IUKO8z4nwkSkveGRBMd81RoYdRSag==";
+        url = "https://registry.npmjs.org/ink-text-input/-/ink-text-input-6.0.0.tgz";
+        sha512 = "Fw64n7Yha5deb1rHY137zHTAbSTNelUKuB5Kkk2HACXEtwIHBCf9OH2tP/LQ9fRYTl1F0dZgbW0zPnZk6FA9Lw==";
       };
     };
     "ink-use-stdout-dimensions-1.0.5" = {
@@ -31795,22 +31561,22 @@ let
         sha512 = "M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==";
       };
     };
-    "inquirer-9.2.15" = {
+    "inquirer-9.2.22" = {
       name = "inquirer";
       packageName = "inquirer";
-      version = "9.2.15";
+      version = "9.2.22";
       src = fetchurl {
-        url = "https://registry.npmjs.org/inquirer/-/inquirer-9.2.15.tgz";
-        sha512 = "vI2w4zl/mDluHt9YEQ/543VTCwPKWiHzKtm9dM2V0NdFcqEexDAjUHzO1oA60HRNaVifGXXM1tRRNluLVHa0Kg==";
+        url = "https://registry.npmjs.org/inquirer/-/inquirer-9.2.22.tgz";
+        sha512 = "SqLLa/Oe5rZUagTR9z+Zd6izyatHglbmbvVofo1KzuVB54YHleWzeHNLoR7FOICGOeQSqeLh1cordb3MzhGcEw==";
       };
     };
-    "inquirer-9.2.16" = {
+    "inquirer-9.2.23" = {
       name = "inquirer";
       packageName = "inquirer";
-      version = "9.2.16";
+      version = "9.2.23";
       src = fetchurl {
-        url = "https://registry.npmjs.org/inquirer/-/inquirer-9.2.16.tgz";
-        sha512 = "qzgbB+yNjgSzk2omeqMDtO9IgJet/UL67luT1MaaggRpGK73DBQct5Q4pipwFQcIKK1GbMODYd4UfsRCkSP1DA==";
+        url = "https://registry.npmjs.org/inquirer/-/inquirer-9.2.23.tgz";
+        sha512 = "kod5s+FBPIDM2xiy9fu+6wdU/SkK5le5GS9lh4FEBjBHqiMgD9lLFbCbuqFNAjNL2ZOy9Wd9F694IOzN9pZHBA==";
       };
     };
     "inquirer-autocomplete-prompt-3.0.1" = {
@@ -32074,6 +31840,15 @@ let
         sha512 = "cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==";
       };
     };
+    "ip-2.0.1" = {
+      name = "ip";
+      packageName = "ip";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz";
+        sha512 = "lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==";
+      };
+    };
     "ip-address-6.1.0" = {
       name = "ip-address";
       packageName = "ip-address";
@@ -32146,13 +31921,13 @@ let
         sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==";
       };
     };
-    "ipaddr.js-2.1.0" = {
+    "ipaddr.js-2.2.0" = {
       name = "ipaddr.js";
       packageName = "ipaddr.js";
-      version = "2.1.0";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz";
-        sha512 = "LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==";
+        url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz";
+        sha512 = "Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==";
       };
     };
     "irc-colors-1.5.0" = {
@@ -32326,15 +32101,6 @@ let
         sha512 = "eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==";
       };
     };
-    "is-ascii-1.0.0" = {
-      name = "is-ascii";
-      packageName = "is-ascii";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-ascii/-/is-ascii-1.0.0.tgz";
-        sha512 = "CXMaB/+EWCSGlLPs7ZlXRBpaPRRSRnrOfq0N3+RGeCZfqQaHQtiDLlkPCn63+LCkRUc1iRE0AXiI+sm2/Hi3qQ==";
-      };
-    };
     "is-async-function-2.0.0" = {
       name = "is-async-function";
       packageName = "is-async-function";
@@ -32416,15 +32182,6 @@ let
         sha512 = "1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==";
       };
     };
-    "is-capitalized-1.0.0" = {
-      name = "is-capitalized";
-      packageName = "is-capitalized";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-capitalized/-/is-capitalized-1.0.0.tgz";
-        sha512 = "HyDHR6PsXUhPMivu3ovkwp4Ja1a2KImu8cdPUuKsgC6fR4Inl/GV3c9TYq6khChSQ8DzXDd8HcZLgPT+tKYoaQ==";
-      };
-    };
     "is-ci-2.0.0" = {
       name = "is-ci";
       packageName = "is-ci";
@@ -32686,6 +32443,15 @@ let
         sha512 = "O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==";
       };
     };
+    "is-fullwidth-code-point-5.0.0" = {
+      name = "is-fullwidth-code-point";
+      packageName = "is-fullwidth-code-point";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz";
+        sha512 = "OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==";
+      };
+    };
     "is-function-1.0.2" = {
       name = "is-function";
       packageName = "is-function";
@@ -32866,15 +32632,6 @@ let
         sha512 = "z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==";
       };
     };
-    "is-lower-case-2.0.2" = {
-      name = "is-lower-case";
-      packageName = "is-lower-case";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-lower-case/-/is-lower-case-2.0.2.tgz";
-        sha512 = "bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==";
-      };
-    };
     "is-map-2.0.3" = {
       name = "is-map";
       packageName = "is-map";
@@ -32938,13 +32695,13 @@ let
         sha512 = "5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==";
       };
     };
-    "is-network-error-1.0.1" = {
+    "is-network-error-1.1.0" = {
       name = "is-network-error";
       packageName = "is-network-error";
-      version = "1.0.1";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-network-error/-/is-network-error-1.0.1.tgz";
-        sha512 = "OwQXkwBJeESyhFw+OumbJVD58BFBJJI5OM5S1+eyrDKlgDZPX2XNT5gXS56GSD3NPbbwUuMlR1Q71SRp5SobuQ==";
+        url = "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz";
+        sha512 = "tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==";
       };
     };
     "is-npm-1.0.0" = {
@@ -33496,15 +33253,6 @@ let
         sha512 = "43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==";
       };
     };
-    "is-upper-case-2.0.2" = {
-      name = "is-upper-case";
-      packageName = "is-upper-case";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-upper-case/-/is-upper-case-2.0.2.tgz";
-        sha512 = "44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==";
-      };
-    };
     "is-url-1.2.4" = {
       name = "is-url";
       packageName = "is-url";
@@ -33721,15 +33469,6 @@ let
         sha512 = "zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==";
       };
     };
-    "iserror-0.0.2" = {
-      name = "iserror";
-      packageName = "iserror";
-      version = "0.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/iserror/-/iserror-0.0.2.tgz";
-        sha512 = "oKGGrFVaWwETimP3SiWwjDeY27ovZoyZPHtxblC4hCq9fXxed/jasx+ATWFFjCVSRZng8VTMsN1nDnGo6zMBSw==";
-      };
-    };
     "isexe-2.0.0" = {
       name = "isexe";
       packageName = "isexe";
@@ -33937,6 +33676,15 @@ let
         sha512 = "N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==";
       };
     };
+    "jackspeak-3.2.3" = {
+      name = "jackspeak";
+      packageName = "jackspeak";
+      version = "3.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jackspeak/-/jackspeak-3.2.3.tgz";
+        sha512 = "htOzIMPbpLid/Gq9/zaz9SfExABxqRe1sSCdxntlO/aMD6u0issZQiY25n2GKQUtJ02j7z5sfptlAOMpWWOmvw==";
+      };
+    };
     "jade-0.27.0" = {
       name = "jade";
       packageName = "jade";
@@ -33946,13 +33694,13 @@ let
         sha512 = "VPrAZm2V9+0tqISXjca7ipt2LPMpLwnFZFM+1VG7q2LmiUQp1imCa++FgSqWxIs4W5gUTp/xlrUlx5xyFHYE6w==";
       };
     };
-    "jake-10.8.7" = {
+    "jake-10.9.1" = {
       name = "jake";
       packageName = "jake";
-      version = "10.8.7";
+      version = "10.9.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz";
-        sha512 = "ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==";
+        url = "https://registry.npmjs.org/jake/-/jake-10.9.1.tgz";
+        sha512 = "61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==";
       };
     };
     "javascript-natural-sort-0.7.1" = {
@@ -34081,13 +33829,13 @@ let
         sha512 = "NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==";
       };
     };
-    "joi-17.12.2" = {
+    "joi-17.13.1" = {
       name = "joi";
       packageName = "joi";
-      version = "17.12.2";
+      version = "17.13.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/joi/-/joi-17.12.2.tgz";
-        sha512 = "RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==";
+        url = "https://registry.npmjs.org/joi/-/joi-17.13.1.tgz";
+        sha512 = "vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg==";
       };
     };
     "join-async-iterator-1.1.1" = {
@@ -34135,13 +33883,13 @@ let
         sha512 = "m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==";
       };
     };
-    "jquery.terminal-2.39.0" = {
+    "jquery.terminal-2.42.0" = {
       name = "jquery.terminal";
       packageName = "jquery.terminal";
-      version = "2.39.0";
+      version = "2.42.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jquery.terminal/-/jquery.terminal-2.39.0.tgz";
-        sha512 = "5uOeJY8dxVJPdeGlaUuRFAcPlw3GzSxLLTmCSaqP9vJhSAu3Amgkr7e7LZxBvup8oQDYF8jRjQSvtIrkn1XsWw==";
+        url = "https://registry.npmjs.org/jquery.terminal/-/jquery.terminal-2.42.0.tgz";
+        sha512 = "poZX1qYCWRUXR12ex/SAh1U3chFCbZ81iN1ajUVbNAidQEGIqyPmHZd5FoSkjPs5jV6ckZLF3t4R6bao12g2Ag==";
       };
     };
     "js-base64-2.6.3" = {
@@ -34198,15 +33946,6 @@ let
         sha512 = "mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==";
       };
     };
-    "js-sha3-0.8.0" = {
-      name = "js-sha3";
-      packageName = "js-sha3";
-      version = "0.8.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz";
-        sha512 = "gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==";
-      };
-    };
     "js-stringify-1.0.2" = {
       name = "js-stringify";
       packageName = "js-stringify";
@@ -34387,22 +34126,13 @@ let
         sha512 = "xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==";
       };
     };
-    "jsii-1.95.0" = {
-      name = "jsii";
-      packageName = "jsii";
-      version = "1.95.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsii/-/jsii-1.95.0.tgz";
-        sha512 = "GvBqcZrhKZ5WV6u44w88aFym8G4Xkw9QRZuAAGYHOFJWiK/fyqeRPPgPkEBqfE+xs412JvGVdejUodKLlhEP9w==";
-      };
-    };
-    "jsii-5.3.24" = {
+    "jsii-1.99.0" = {
       name = "jsii";
       packageName = "jsii";
-      version = "5.3.24";
+      version = "1.99.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii/-/jsii-5.3.24.tgz";
-        sha512 = "x6U15Q8OnwOCFGCjUAyq5qlxGWccc+tOVMEDBOlFq6jLeLgWbVwjG+4chObDffXC/TCUhxeQipUlsuOXCPeyzQ==";
+        url = "https://registry.npmjs.org/jsii/-/jsii-1.99.0.tgz";
+        sha512 = "t8fyMzjYr1WVFcSs6oCOgQM3Ikycu89HcZM61C/DRpOfSACLoKoB5oAD23zNdl/fvdDpJSXVRQ4NIDRVmQF3ug==";
       };
     };
     "jsii-5.3.29" = {
@@ -34414,13 +34144,13 @@ let
         sha512 = "vEEOtjD8s/C8ORHvN87Bt9jHcY1diJoC1sS+TVnCkeb4V9q5fOEVr4gl/FsU5ea8dSWZHdd7VqCtr0jYAwKleg==";
       };
     };
-    "jsii-pacmak-1.94.0" = {
-      name = "jsii-pacmak";
-      packageName = "jsii-pacmak";
-      version = "1.94.0";
+    "jsii-5.4.20" = {
+      name = "jsii";
+      packageName = "jsii";
+      version = "5.4.20";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.94.0.tgz";
-        sha512 = "L5s3RZ0AOx1XfAhXsEjyeCteVrw6nwJLynL+t93eXVDcw7NFT7S0fCFXzQ4lpYQ23P/yVpSIy32J3zpUOf4uDQ==";
+        url = "https://registry.npmjs.org/jsii/-/jsii-5.4.20.tgz";
+        sha512 = "kZoopDv3Gy6wKOt6aYzPhMvEErOAnQXoeUjd3sGAODey/mUVJRvXoScYVvmmtVgKqt+120OFPhVRWzgefwio+g==";
       };
     };
     "jsii-pacmak-1.95.0" = {
@@ -34432,31 +34162,49 @@ let
         sha512 = "h/eo3p3jG4/Wtb9WdavvcgXzyN5QXZck3k0xvIWp5SKxFLorQ+TWhY7BHG0e+VXl+mxcni6BuQ5wFLavq65RQQ==";
       };
     };
-    "jsii-reflect-1.95.0" = {
+    "jsii-pacmak-1.99.0" = {
+      name = "jsii-pacmak";
+      packageName = "jsii-pacmak";
+      version = "1.99.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.99.0.tgz";
+        sha512 = "3oqqlqxeYfGi6LOfFfZ2Wpf4GxGnPGOwKh5dwUtP5SPmDdhJOkti8nREE1JPYSlzWSSCzJZHAwaXEN+K7aFQSg==";
+      };
+    };
+    "jsii-reflect-1.99.0" = {
       name = "jsii-reflect";
       packageName = "jsii-reflect";
-      version = "1.95.0";
+      version = "1.99.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.95.0.tgz";
-        sha512 = "/o/UdqX1MtOmavwAF+cqMAHs7Ewi/j2a9PVGYTzi3U4M5Cvxsyrk7e1EWKvw/NHK0JZmmKd1UqE0Mz5EHqZSxw==";
+        url = "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.99.0.tgz";
+        sha512 = "ro26sl1u7osaPBMMXNF3K0bHtYgZKAB3+ojjqaoDuCc/MZ1u9ZS3duPJ95Qo5Izvh9Ae9yezzNB3Qrtvyzfxrg==";
       };
     };
-    "jsii-rosetta-1.95.0" = {
+    "jsii-rosetta-1.99.0" = {
       name = "jsii-rosetta";
       packageName = "jsii-rosetta";
-      version = "1.95.0";
+      version = "1.99.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.99.0.tgz";
+        sha512 = "6b8MgL8VI96wJEfBbGLmzpMxm/JZopNzyCCsPNGpe+e/pql17sntY33sbNwOEtG+jBPcBUD4i4V0zH5hNIl1BQ==";
+      };
+    };
+    "jsii-rosetta-5.3.28" = {
+      name = "jsii-rosetta";
+      packageName = "jsii-rosetta";
+      version = "5.3.28";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.95.0.tgz";
-        sha512 = "J9tQy6wT7ERgXC73ubjWmkp8EO5SHPn9eDkTKLmAi+AkMAOAJEb1oxaA1bKPBf/2SQp6wDU5TUfEpx6ukSmc1g==";
+        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-5.3.28.tgz";
+        sha512 = "pvfaaMYJhsGz9BXmQenlC+aey2HTRiPwlTr7FcH4wr0THkKbIwChPpS26YWSGyNLmTqDZUvmQv+xDtMx5qFXGg==";
       };
     };
-    "jsii-rosetta-5.3.27" = {
+    "jsii-rosetta-5.4.21" = {
       name = "jsii-rosetta";
       packageName = "jsii-rosetta";
-      version = "5.3.27";
+      version = "5.4.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-5.3.27.tgz";
-        sha512 = "aNetT3WwckB72qCNAvSCV8a+gHm+ghfHDcFGKyx3zlEI6V5hWyR6HL4sn8EHZKF5RfOcIiGNaZ3IOPh7qnCfDg==";
+        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-5.4.21.tgz";
+        sha512 = "g7E935trSNQ8rbs+VYQiDBbeoaqS0sO7HuJ+bz27x7pvKBri5Uk9w+aLtmFI8UhHX7JgZ6mUxruY0zRW4AqCyQ==";
       };
     };
     "jsii-srcmak-0.1.1039" = {
@@ -34468,6 +34216,15 @@ let
         sha512 = "3lBjyxBy5UpPGK8bXFmVRzaoK6caDQ5DO40Qbyv3LOWtrsuUQmuVI2/5wRwNtfg6sFzOFD3+kE3LZuNXo7QE/Q==";
       };
     };
+    "jsii-srcmak-0.1.1143" = {
+      name = "jsii-srcmak";
+      packageName = "jsii-srcmak";
+      version = "0.1.1143";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsii-srcmak/-/jsii-srcmak-0.1.1143.tgz";
+        sha512 = "DXVsQugr/7obajyv0PXFm6dgetzRoG+QbEta3IG4a/OQ5qHLSMdkr+04wzBe1WqukXg68Do9+DI4goLtY+BixQ==";
+      };
+    };
     "json-buffer-3.0.0" = {
       name = "json-buffer";
       packageName = "json-buffer";
@@ -34504,13 +34261,13 @@ let
         sha512 = "xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==";
       };
     };
-    "json-parse-even-better-errors-3.0.1" = {
+    "json-parse-even-better-errors-3.0.2" = {
       name = "json-parse-even-better-errors";
       packageName = "json-parse-even-better-errors";
-      version = "3.0.1";
+      version = "3.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz";
-        sha512 = "aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==";
+        url = "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz";
+        sha512 = "fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==";
       };
     };
     "json-parse-helpfulerror-1.0.3" = {
@@ -34693,15 +34450,6 @@ let
         sha512 = "KA+GHhYTLTo7Ri4DyjwUgW8kn98AYtVZtBC94qL5yD0ZSYct8/eF8qBmTNyk+gPE578bKeIL4WBq+MUyd1I26g==";
       };
     };
-    "json5-0.5.1" = {
-      name = "json5";
-      packageName = "json5";
-      version = "0.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz";
-        sha512 = "4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==";
-      };
-    };
     "json5-1.0.2" = {
       name = "json5";
       packageName = "json5";
@@ -34990,15 +34738,6 @@ let
         sha512 = "Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==";
       };
     };
-    "just-debounce-1.1.0" = {
-      name = "just-debounce";
-      packageName = "just-debounce";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz";
-        sha512 = "qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==";
-      };
-    };
     "jwa-1.4.1" = {
       name = "jwa";
       packageName = "jwa";
@@ -35233,15 +34972,6 @@ let
         sha512 = "Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==";
       };
     };
-    "kill-port-process-3.1.0" = {
-      name = "kill-port-process";
-      packageName = "kill-port-process";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/kill-port-process/-/kill-port-process-3.1.0.tgz";
-        sha512 = "sVODd2xDGzN3OaLGhHcJPiaRwWK0QZc+bD5YQTo3Xgh1AUg1AZgDYDeqRI6ILg4AhWrmSpupGwQEFK1G0Sy2fw==";
-      };
-    };
     "kind-of-3.2.2" = {
       name = "kind-of";
       packageName = "kind-of";
@@ -35260,15 +34990,6 @@ let
         sha512 = "24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==";
       };
     };
-    "kind-of-5.1.0" = {
-      name = "kind-of";
-      packageName = "kind-of";
-      version = "5.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz";
-        sha512 = "NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==";
-      };
-    };
     "kind-of-6.0.3" = {
       name = "kind-of";
       packageName = "kind-of";
@@ -35359,13 +35080,13 @@ let
         sha512 = "Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==";
       };
     };
-    "ky-1.2.2" = {
+    "ky-1.3.0" = {
       name = "ky";
       packageName = "ky";
-      version = "1.2.2";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ky/-/ky-1.2.2.tgz";
-        sha512 = "gYA2QOI3uIaImJPJjaBbLCdvKHzwxsuB03s7PjrXmoO6tcn6k53rwYoSRgqrmVsEV6wFFegOXDVjABxFZ0aRSg==";
+        url = "https://registry.npmjs.org/ky/-/ky-1.3.0.tgz";
+        sha512 = "QUViPXlgP6NKA57IAPff/aZSmRA6qs9wKxlEpayBorwRZG+x2LG7jD4kXh8lnH3q/gkUr64NyZ7kwErUEZJmlw==";
       };
     };
     "labeled-stream-splicer-2.0.2" = {
@@ -35386,13 +35107,13 @@ let
         sha512 = "t+KLJFkHPQk8lfN6WBOiGkiUXoub+gnb2XTYI2P3aiISL+94xgZ1vgz1SXN/N4hthuOoLXarXfBZPUruyjQtfA==";
       };
     };
-    "last-run-1.1.1" = {
+    "last-run-2.0.0" = {
       name = "last-run";
       packageName = "last-run";
-      version = "1.1.1";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz";
-        sha512 = "U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ==";
+        url = "https://registry.npmjs.org/last-run/-/last-run-2.0.0.tgz";
+        sha512 = "j+y6WhTLN4Itnf9j5ZQos1BGPCS8DAwmgMroR3OzfxAsBxam0hMw7J8M3KqZl0pLQJ1jNnwIexg5DYpC/ctwEQ==";
       };
     };
     "latest-version-1.0.1" = {
@@ -35566,13 +35287,13 @@ let
         sha512 = "y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==";
       };
     };
-    "lead-1.0.0" = {
+    "lead-4.0.0" = {
       name = "lead";
       packageName = "lead";
-      version = "1.0.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz";
-        sha512 = "IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==";
+        url = "https://registry.npmjs.org/lead/-/lead-4.0.0.tgz";
+        sha512 = "DpMa59o5uGUWWjruMp71e6knmwKU3jRBBn1kjuLWN9EeIOxNeSAwvHf03WIl8g/ZMR2oSQC9ej3yeLBwdDc/pg==";
       };
     };
     "less-4.2.0" = {
@@ -35692,13 +35413,13 @@ let
         sha512 = "UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==";
       };
     };
-    "liftoff-3.1.0" = {
+    "liftoff-5.0.0" = {
       name = "liftoff";
       packageName = "liftoff";
-      version = "3.1.0";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz";
-        sha512 = "DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==";
+        url = "https://registry.npmjs.org/liftoff/-/liftoff-5.0.0.tgz";
+        sha512 = "a5BQjbCHnB+cy+gsro8lXJ4kZluzOijzJ1UVVfyJYZC+IP2pLv1h4+aysQeKuTmyO8NAqfyQAk4HWaP/HjcKTg==";
       };
     };
     "liftup-3.0.1" = {
@@ -35710,13 +35431,13 @@ let
         sha512 = "yRHaiQDizWSzoXk3APcA71eOI/UuhEkNN9DiW2Tt44mhYzX4joFoCZlxsSOF7RyeLlfqzFLQI1ngFq3ggMPhOw==";
       };
     };
-    "lightningcss-1.24.1" = {
+    "lightningcss-1.25.1" = {
       name = "lightningcss";
       packageName = "lightningcss";
-      version = "1.24.1";
+      version = "1.25.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lightningcss/-/lightningcss-1.24.1.tgz";
-        sha512 = "kUpHOLiH5GB0ERSv4pxqlL0RYKnOXtgGtVe7shDGfhS0AZ4D1ouKFYAcLcZhql8aMspDNzaUCumGHZ78tb2fTg==";
+        url = "https://registry.npmjs.org/lightningcss/-/lightningcss-1.25.1.tgz";
+        sha512 = "V0RMVZzK1+rCHpymRv4URK2lNhIRyO8g7U7zOFwVAhJuat74HtkjIQpQRKNCwFEYkRGpafOpmXXLoaoBcyVtBg==";
       };
     };
     "lilconfig-2.1.0" = {
@@ -35845,13 +35566,13 @@ let
         sha512 = "C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==";
       };
     };
-    "liquidjs-10.9.2" = {
-      name = "liquidjs";
-      packageName = "liquidjs";
-      version = "10.9.2";
+    "linkify-it-5.0.0" = {
+      name = "linkify-it";
+      packageName = "linkify-it";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/liquidjs/-/liquidjs-10.9.2.tgz";
-        sha512 = "ygPCgYyiFKQNyRi/CK3s3U5RimosBtrIq7TaMYK5ek93mUl9CZ6xxqw2T+1G4kVc9dAmwI71bWLQNKRToV8SsQ==";
+        url = "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz";
+        sha512 = "5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==";
       };
     };
     "listenercount-1.0.1" = {
@@ -35908,13 +35629,13 @@ let
         sha512 = "04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==";
       };
     };
-    "listr2-5.0.8" = {
+    "listr2-7.0.2" = {
       name = "listr2";
       packageName = "listr2";
-      version = "5.0.8";
+      version = "7.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/listr2/-/listr2-5.0.8.tgz";
-        sha512 = "mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==";
+        url = "https://registry.npmjs.org/listr2/-/listr2-7.0.2.tgz";
+        sha512 = "rJysbR9GKIalhTbVL2tYbF2hVyDnrf7pFUZBwjPaMIdadYHmeT+EVi/Bu3qd7ETQPahTotg2WRCatXwRBW554g==";
       };
     };
     "lmdb-2.5.3" = {
@@ -35944,13 +35665,13 @@ let
         sha512 = "8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==";
       };
     };
-    "load-ip-set-2.2.1" = {
+    "load-ip-set-3.0.1" = {
       name = "load-ip-set";
       packageName = "load-ip-set";
-      version = "2.2.1";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/load-ip-set/-/load-ip-set-2.2.1.tgz";
-        sha512 = "G3hQXehU2LTOp52e+lPffpK4EvidfjwbvHaGqmFcp4ptiZagR4xFdL+D08kMX906dxeqZyWhfonEjdUxrWcldg==";
+        url = "https://registry.npmjs.org/load-ip-set/-/load-ip-set-3.0.1.tgz";
+        sha512 = "ZFZt1g4Exq01SFtKjffqau+L4Qibt+51utymHHiWo8Iu/W7LYSqE7fiZ/iAZ6dIqbmeU6ICSIK02IizSScBkLQ==";
       };
     };
     "load-json-file-1.1.0" = {
@@ -36007,13 +35728,13 @@ let
         sha512 = "Lg1CZa1CFj2CbNaxijTL6PCbzd4qGTlZov+iH2p5Xwy/ApcZJh+i6jMN2cYePouTfjJfrNu3nXFdEw8LvbjPFQ==";
       };
     };
-    "load-plugin-6.0.2" = {
+    "load-plugin-6.0.3" = {
       name = "load-plugin";
       packageName = "load-plugin";
-      version = "6.0.2";
+      version = "6.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/load-plugin/-/load-plugin-6.0.2.tgz";
-        sha512 = "3KRkTvCOsyNrx4zvBl/+ZMqPdVyp26TIf6xkmfEGuGwCfNQ/HzhktwbJCxd1KJpzPbK42t/WVOL3cX+TDaMRuQ==";
+        url = "https://registry.npmjs.org/load-plugin/-/load-plugin-6.0.3.tgz";
+        sha512 = "kc0X2FEUZr145odl68frm+lMJuQ23+rTXYmR6TImqPtbpmXC4vVXbWKDQ9IzndA0HfyQamWfKLhzsqGSTxE63w==";
       };
     };
     "load-yaml-file-0.2.0" = {
@@ -37114,15 +36835,6 @@ let
         sha512 = "ILKe88NeMt4gmDvk/eb615U/IVn7K9KWGkoYbdatQ69Z65nj1ZzjM6fHXfcs0Uge+e+EGnMW7DY4T9yko8vWFg==";
       };
     };
-    "log-update-4.0.0" = {
-      name = "log-update";
-      packageName = "log-update";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz";
-        sha512 = "9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==";
-      };
-    };
     "log-update-5.0.1" = {
       name = "log-update";
       packageName = "log-update";
@@ -37375,13 +37087,13 @@ let
         sha512 = "B7gr+F6MkqB3uzINHXNctGieGsRTMwIBgxkp0yq/5BwcuDzD4A8wQpHQW6vDAm1uKSLQghmRdD9sKqf2vJ1cEg==";
       };
     };
-    "lru-cache-10.2.0" = {
+    "lru-cache-10.2.2" = {
       name = "lru-cache";
       packageName = "lru-cache";
-      version = "10.2.0";
+      version = "10.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz";
-        sha512 = "2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==";
+        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz";
+        sha512 = "9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==";
       };
     };
     "lru-cache-2.2.0" = {
@@ -37447,13 +37159,13 @@ let
         sha512 = "jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==";
       };
     };
-    "lt_donthave-1.0.1" = {
+    "lt_donthave-2.0.1" = {
       name = "lt_donthave";
       packageName = "lt_donthave";
-      version = "1.0.1";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lt_donthave/-/lt_donthave-1.0.1.tgz";
-        sha512 = "PfOXfDN9GnUjlNHjjxKQuMxPC8s12iSrnmg+Ff1BU1uLn7S1BFAKzpZCu6Gwg3WsCUvTZrZoDSHvy6B/j+N4/Q==";
+        url = "https://registry.npmjs.org/lt_donthave/-/lt_donthave-2.0.1.tgz";
+        sha512 = "GhiKG7CGTXzOQq56tIx40Ae26EbrgBq1owuuPqgCTaJDQYO1qW5G+YGaurOLx7s+Aaeta8MputrVFDr0kuiogg==";
       };
     };
     "ltx-3.0.0" = {
@@ -37484,15 +37196,6 @@ let
         sha512 = "gYHAa180mKrNIUJCbwpmD0aTu9kV0dREDrwNnuyFAsO1Wt0EVYSZelPnJlbj9HplzXX/YWXHFTL45kvZ53M0pw==";
       };
     };
-    "macaddress-0.5.3" = {
-      name = "macaddress";
-      packageName = "macaddress";
-      version = "0.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/macaddress/-/macaddress-0.5.3.tgz";
-        sha512 = "vGBKTA+jwM4KgjGZ+S/8/Mkj9rWzePyGY6jManXPGhiWu63RYwW8dKPyk5koP+8qNVhPhHgFa1y/MJ4wrjsNrg==";
-      };
-    };
     "magic-string-0.25.9" = {
       name = "magic-string";
       packageName = "magic-string";
@@ -37502,13 +37205,13 @@ let
         sha512 = "RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==";
       };
     };
-    "magic-string-0.30.8" = {
+    "magic-string-0.30.10" = {
       name = "magic-string";
       packageName = "magic-string";
-      version = "0.30.8";
+      version = "0.30.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz";
-        sha512 = "ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==";
+        url = "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz";
+        sha512 = "iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==";
       };
     };
     "magicli-0.0.5" = {
@@ -37565,6 +37268,15 @@ let
         sha512 = "O9AgdDwT771fnUj0giPYu/rACpz8173y8UXCSOdLITjOVfBenZ9H9q3FqQmveK+ORUMuD+BkKNSZP8C3+IMAKQ==";
       };
     };
+    "magnet-uri-7.0.5" = {
+      name = "magnet-uri";
+      packageName = "magnet-uri";
+      version = "7.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/magnet-uri/-/magnet-uri-7.0.5.tgz";
+        sha512 = "Ke+dDiYHK1Rq/ZyGUAgk7NIkoypivxolTj/A0qr60ypP0FjeP+NTUNEhr965HsRan0zGxKEBK73+SsjRyJWkXg==";
+      };
+    };
     "make-dir-1.3.0" = {
       name = "make-dir";
       packageName = "make-dir";
@@ -37628,13 +37340,13 @@ let
         sha512 = "rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==";
       };
     };
-    "make-fetch-happen-13.0.0" = {
+    "make-fetch-happen-13.0.1" = {
       name = "make-fetch-happen";
       packageName = "make-fetch-happen";
-      version = "13.0.0";
+      version = "13.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz";
-        sha512 = "7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==";
+        url = "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz";
+        sha512 = "cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==";
       };
     };
     "make-fetch-happen-9.1.0" = {
@@ -37745,6 +37457,15 @@ let
         sha512 = "FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==";
       };
     };
+    "markdown-it-14.1.0" = {
+      name = "markdown-it";
+      packageName = "markdown-it";
+      version = "14.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz";
+        sha512 = "a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==";
+      };
+    };
     "markdown-it-8.4.2" = {
       name = "markdown-it";
       packageName = "markdown-it";
@@ -37907,15 +37628,6 @@ let
         sha512 = "5cUOu4Vwx1wenJgxaudsJ8xwLUMN7747yDJX3V/L7+gi3e4MsCm7w5nbrDQQy8nEfnl4r5NV3pDXMAjhGXYXAw==";
       };
     };
-    "markdown-table-2.0.0" = {
-      name = "markdown-table";
-      packageName = "markdown-table";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz";
-        sha512 = "Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==";
-      };
-    };
     "markdown-table-3.0.3" = {
       name = "markdown-table";
       packageName = "markdown-table";
@@ -37925,13 +37637,13 @@ let
         sha512 = "Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==";
       };
     };
-    "marked-12.0.1" = {
+    "marked-12.0.2" = {
       name = "marked";
       packageName = "marked";
-      version = "12.0.1";
+      version = "12.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/marked/-/marked-12.0.1.tgz";
-        sha512 = "Y1/V2yafOcOdWQCX0XpAKXzDakPOpn6U0YLxTJs3cww6VxOzZV1BTOOYWLvH3gX38cq+iLwljHHTnMtlDfg01Q==";
+        url = "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz";
+        sha512 = "qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==";
       };
     };
     "marked-4.3.0" = {
@@ -37952,33 +37664,6 @@ let
         sha512 = "h1S0f3HzPtaNTaIBXu/3PVsXhKgZGk9DYrqp+bNZwp1wjYhJnEKggossj+DCCQ72+2y3Kcd7fNP2cEkp9jK6Ig==";
       };
     };
-    "match-casing-1.0.3" = {
-      name = "match-casing";
-      packageName = "match-casing";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/match-casing/-/match-casing-1.0.3.tgz";
-        sha512 = "oMyC3vUVCFbGu+M2Zxl212LPJThcaw7QxB5lFuJPQCgV/dsGBP0yZeCoLmX6CiBkoBcVbAKDJZrBpJVu0XcLMw==";
-      };
-    };
-    "match-index-1.0.3" = {
-      name = "match-index";
-      packageName = "match-index";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/match-index/-/match-index-1.0.3.tgz";
-        sha512 = "1XjyBWqCvEFFUDW/MPv0RwbITRD4xQXOvKoPYtLDq8IdZTfdF/cQSo5Yn4qvhfSSZgjgkTFsqJD2wOUG4ovV8Q==";
-      };
-    };
-    "matchdep-2.0.0" = {
-      name = "matchdep";
-      packageName = "matchdep";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz";
-        sha512 = "LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA==";
-      };
-    };
     "matcher-3.0.0" = {
       name = "matcher";
       packageName = "matcher";
@@ -38069,15 +37754,6 @@ let
         sha512 = "HED3ezseRVkBzZ0uK4q6RJMdufr/2p3VfVZstE3H1N9K8bwtspztWo6Xd7rEatuGNoCXaBna8oEqMwUn0Ve1bw==";
       };
     };
-    "mdast-util-find-and-replace-1.1.1" = {
-      name = "mdast-util-find-and-replace";
-      packageName = "mdast-util-find-and-replace";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-1.1.1.tgz";
-        sha512 = "9cKl33Y21lyckGzpSmEQnIDjEfeeWelN5s1kUW1LwdB0Fkuq2u+4GdqcGEygYxJE8GVqCl0741bYXHgamfWAZA==";
-      };
-    };
     "mdast-util-find-and-replace-2.2.2" = {
       name = "mdast-util-find-and-replace";
       packageName = "mdast-util-find-and-replace";
@@ -38087,15 +37763,6 @@ let
         sha512 = "MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==";
       };
     };
-    "mdast-util-footnote-0.1.7" = {
-      name = "mdast-util-footnote";
-      packageName = "mdast-util-footnote";
-      version = "0.1.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mdast-util-footnote/-/mdast-util-footnote-0.1.7.tgz";
-        sha512 = "QxNdO8qSxqbO2e3m09KwDKfWiLgqyCurdWTQ198NpbZ2hxntdc+VKS4fDJCmNWbAroUdYnSthu+XbZ8ovh8C3w==";
-      };
-    };
     "mdast-util-from-markdown-0.8.5" = {
       name = "mdast-util-from-markdown";
       packageName = "mdast-util-from-markdown";
@@ -38114,22 +37781,13 @@ let
         sha512 = "4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==";
       };
     };
-    "mdast-util-from-markdown-2.0.0" = {
+    "mdast-util-from-markdown-2.0.1" = {
       name = "mdast-util-from-markdown";
       packageName = "mdast-util-from-markdown";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz";
-        sha512 = "n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==";
-      };
-    };
-    "mdast-util-frontmatter-0.2.0" = {
-      name = "mdast-util-frontmatter";
-      packageName = "mdast-util-frontmatter";
-      version = "0.2.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-0.2.0.tgz";
-        sha512 = "FHKL4w4S5fdt1KjJCwB0178WJ0evnyyQr5kXTM3wrOVpytD0hrkvd+AOOjU9Td8onOejCkmZ+HQRT3CZ3coHHQ==";
+        url = "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz";
+        sha512 = "aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==";
       };
     };
     "mdast-util-frontmatter-1.0.1" = {
@@ -38141,15 +37799,6 @@ let
         sha512 = "JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw==";
       };
     };
-    "mdast-util-gfm-0.1.2" = {
-      name = "mdast-util-gfm";
-      packageName = "mdast-util-gfm";
-      version = "0.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-0.1.2.tgz";
-        sha512 = "NNkhDx/qYcuOWB7xHUGWZYVXvjPFFd6afg6/e2g+SV4r9q5XUcCbV4Wfa3DLYIiD+xAEZc6K4MGaE/m0KDcPwQ==";
-      };
-    };
     "mdast-util-gfm-2.0.2" = {
       name = "mdast-util-gfm";
       packageName = "mdast-util-gfm";
@@ -38159,15 +37808,6 @@ let
         sha512 = "qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==";
       };
     };
-    "mdast-util-gfm-autolink-literal-0.1.3" = {
-      name = "mdast-util-gfm-autolink-literal";
-      packageName = "mdast-util-gfm-autolink-literal";
-      version = "0.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-0.1.3.tgz";
-        sha512 = "GjmLjWrXg1wqMIO9+ZsRik/s7PLwTaeCHVB7vRxUwLntZc8mzmTsLVr6HW1yLokcnhfURsn5zmSVdi3/xWWu1A==";
-      };
-    };
     "mdast-util-gfm-autolink-literal-1.0.3" = {
       name = "mdast-util-gfm-autolink-literal";
       packageName = "mdast-util-gfm-autolink-literal";
@@ -38186,15 +37826,6 @@ let
         sha512 = "56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==";
       };
     };
-    "mdast-util-gfm-strikethrough-0.2.3" = {
-      name = "mdast-util-gfm-strikethrough";
-      packageName = "mdast-util-gfm-strikethrough";
-      version = "0.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.3.tgz";
-        sha512 = "5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA==";
-      };
-    };
     "mdast-util-gfm-strikethrough-1.0.3" = {
       name = "mdast-util-gfm-strikethrough";
       packageName = "mdast-util-gfm-strikethrough";
@@ -38204,15 +37835,6 @@ let
         sha512 = "DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==";
       };
     };
-    "mdast-util-gfm-table-0.1.6" = {
-      name = "mdast-util-gfm-table";
-      packageName = "mdast-util-gfm-table";
-      version = "0.1.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.6.tgz";
-        sha512 = "j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ==";
-      };
-    };
     "mdast-util-gfm-table-1.0.7" = {
       name = "mdast-util-gfm-table";
       packageName = "mdast-util-gfm-table";
@@ -38222,15 +37844,6 @@ let
         sha512 = "jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==";
       };
     };
-    "mdast-util-gfm-task-list-item-0.1.6" = {
-      name = "mdast-util-gfm-task-list-item";
-      packageName = "mdast-util-gfm-task-list-item";
-      version = "0.1.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.6.tgz";
-        sha512 = "/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A==";
-      };
-    };
     "mdast-util-gfm-task-list-item-1.0.2" = {
       name = "mdast-util-gfm-task-list-item";
       packageName = "mdast-util-gfm-task-list-item";
@@ -38402,24 +38015,6 @@ let
         sha512 = "GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==";
       };
     };
-    "mdns-js-0.5.0" = {
-      name = "mdns-js";
-      packageName = "mdns-js";
-      version = "0.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mdns-js/-/mdns-js-0.5.0.tgz";
-        sha512 = "9I7T9NDWYrnAbaV2OsEzR+RVa/WpQjRZKhpm95Fnd5T7HdTKzmGVSEI4pqdbvkfHiB2CB4eagr5dcCY8idZLag==";
-      };
-    };
-    "mdns-js-packet-0.2.0" = {
-      name = "mdns-js-packet";
-      packageName = "mdns-js-packet";
-      version = "0.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mdns-js-packet/-/mdns-js-packet-0.2.0.tgz";
-        sha512 = "+0FV+YXgmt4cxAHY1HtmZFVzVbhWAIuABtxhHuZ9uQGIg3opmK2kg5V62DGntWyfgqA9ZywaTPi4w8ummYDdHA==";
-      };
-    };
     "mdurl-1.0.1" = {
       name = "mdurl";
       packageName = "mdurl";
@@ -38429,6 +38024,15 @@ let
         sha512 = "/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==";
       };
     };
+    "mdurl-2.0.0" = {
+      name = "mdurl";
+      packageName = "mdurl";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz";
+        sha512 = "Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==";
+      };
+    };
     "media-typer-0.3.0" = {
       name = "media-typer";
       packageName = "media-typer";
@@ -38447,15 +38051,6 @@ let
         sha512 = "aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==";
       };
     };
-    "mediasource-2.4.0" = {
-      name = "mediasource";
-      packageName = "mediasource";
-      version = "2.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mediasource/-/mediasource-2.4.0.tgz";
-        sha512 = "SKUMrbFMHgiCUZFOWZcL0aiF/KgHx9SPIKzxrl6+7nMUMDK/ZnOmJdY/9wKzYeM0g3mybt3ueg+W+/mrYfmeFQ==";
-      };
-    };
     "mediawiki-title-0.6.5" = {
       name = "mediawiki-title";
       packageName = "mediawiki-title";
@@ -38510,13 +38105,13 @@ let
         sha512 = "EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ==";
       };
     };
-    "memfs-4.7.7" = {
+    "memfs-4.9.2" = {
       name = "memfs";
       packageName = "memfs";
-      version = "4.7.7";
+      version = "4.9.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/memfs/-/memfs-4.7.7.tgz";
-        sha512 = "x9qc6k88J/VVwnfTkJV8pRRswJ2156Rc4w5rciRqKceFDZ0y1MqsNL9pkg5sE0GOcDzZYbonreALhaHzg1siFw==";
+        url = "https://registry.npmjs.org/memfs/-/memfs-4.9.2.tgz";
+        sha512 = "f16coDZlTG1jskq3mxarwB+fGRrd0uXWt+o1WIhRfOwbXQZqUDsTVxQBFK9JjRQHblg8eAG2JSbprDXKjc7ijQ==";
       };
     };
     "memory-cache-0.2.0" = {
@@ -38798,31 +38393,13 @@ let
         sha512 = "BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==";
       };
     };
-    "micromark-core-commonmark-2.0.0" = {
+    "micromark-core-commonmark-2.0.1" = {
       name = "micromark-core-commonmark";
       packageName = "micromark-core-commonmark";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.0.tgz";
-        sha512 = "jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==";
-      };
-    };
-    "micromark-extension-footnote-0.3.2" = {
-      name = "micromark-extension-footnote";
-      packageName = "micromark-extension-footnote";
-      version = "0.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/micromark-extension-footnote/-/micromark-extension-footnote-0.3.2.tgz";
-        sha512 = "gr/BeIxbIWQoUm02cIfK7mdMZ/fbroRpLsck4kvFtjbzP4yi+OPVbnukTc/zy0i7spC2xYE/dbX1Sur8BEDJsQ==";
-      };
-    };
-    "micromark-extension-frontmatter-0.2.2" = {
-      name = "micromark-extension-frontmatter";
-      packageName = "micromark-extension-frontmatter";
-      version = "0.2.2";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-0.2.2.tgz";
-        sha512 = "q6nPLFCMTLtfsctAuS0Xh4vaolxSFUWUWR6PZSrXXiRy+SANGllpcqdXFv2z07l0Xz/6Hl40hK0ffNCJPH2n1A==";
+        url = "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz";
+        sha512 = "CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==";
       };
     };
     "micromark-extension-frontmatter-1.1.1" = {
@@ -38834,15 +38411,6 @@ let
         sha512 = "m2UH9a7n3W8VAH9JO9y01APpPKmNNNs71P0RbknEmYSaZU5Ghogv38BYO94AI5Xw6OYfxZRdHZZ2nYjs/Z+SZQ==";
       };
     };
-    "micromark-extension-gfm-0.3.3" = {
-      name = "micromark-extension-gfm";
-      packageName = "micromark-extension-gfm";
-      version = "0.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-0.3.3.tgz";
-        sha512 = "oVN4zv5/tAIA+l3GbMi7lWeYpJ14oQyJ3uEim20ktYFAcfX1x3LNlFGGlmrZHt7u9YlKExmyJdDGaTt6cMSR/A==";
-      };
-    };
     "micromark-extension-gfm-2.0.3" = {
       name = "micromark-extension-gfm";
       packageName = "micromark-extension-gfm";
@@ -38852,15 +38420,6 @@ let
         sha512 = "vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==";
       };
     };
-    "micromark-extension-gfm-autolink-literal-0.5.7" = {
-      name = "micromark-extension-gfm-autolink-literal";
-      packageName = "micromark-extension-gfm-autolink-literal";
-      version = "0.5.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.7.tgz";
-        sha512 = "ePiDGH0/lhcngCe8FtH4ARFoxKTUelMp4L7Gg2pujYD5CSMb9PbblnyL+AAMud/SNMyusbS2XDSiPIRcQoNFAw==";
-      };
-    };
     "micromark-extension-gfm-autolink-literal-1.0.5" = {
       name = "micromark-extension-gfm-autolink-literal";
       packageName = "micromark-extension-gfm-autolink-literal";
@@ -38879,15 +38438,6 @@ let
         sha512 = "Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==";
       };
     };
-    "micromark-extension-gfm-strikethrough-0.6.5" = {
-      name = "micromark-extension-gfm-strikethrough";
-      packageName = "micromark-extension-gfm-strikethrough";
-      version = "0.6.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.5.tgz";
-        sha512 = "PpOKlgokpQRwUesRwWEp+fHjGGkZEejj83k9gU5iXCbDG+XBA92BqnRKYJdfqfkrRcZRgGuPuXb7DaK/DmxOhw==";
-      };
-    };
     "micromark-extension-gfm-strikethrough-1.0.7" = {
       name = "micromark-extension-gfm-strikethrough";
       packageName = "micromark-extension-gfm-strikethrough";
@@ -38897,15 +38447,6 @@ let
         sha512 = "sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==";
       };
     };
-    "micromark-extension-gfm-table-0.4.3" = {
-      name = "micromark-extension-gfm-table";
-      packageName = "micromark-extension-gfm-table";
-      version = "0.4.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.3.tgz";
-        sha512 = "hVGvESPq0fk6ALWtomcwmgLvH8ZSVpcPjzi0AjPclB9FsVRgMtGZkUcpE0zgjOCFAznKepF4z3hX8z6e3HODdA==";
-      };
-    };
     "micromark-extension-gfm-table-1.0.7" = {
       name = "micromark-extension-gfm-table";
       packageName = "micromark-extension-gfm-table";
@@ -38915,15 +38456,6 @@ let
         sha512 = "3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==";
       };
     };
-    "micromark-extension-gfm-tagfilter-0.3.0" = {
-      name = "micromark-extension-gfm-tagfilter";
-      packageName = "micromark-extension-gfm-tagfilter";
-      version = "0.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz";
-        sha512 = "9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q==";
-      };
-    };
     "micromark-extension-gfm-tagfilter-1.0.2" = {
       name = "micromark-extension-gfm-tagfilter";
       packageName = "micromark-extension-gfm-tagfilter";
@@ -38933,15 +38465,6 @@ let
         sha512 = "5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==";
       };
     };
-    "micromark-extension-gfm-task-list-item-0.3.3" = {
-      name = "micromark-extension-gfm-task-list-item";
-      packageName = "micromark-extension-gfm-task-list-item";
-      version = "0.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz";
-        sha512 = "0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ==";
-      };
-    };
     "micromark-extension-gfm-task-list-item-1.0.5" = {
       name = "micromark-extension-gfm-task-list-item";
       packageName = "micromark-extension-gfm-task-list-item";
@@ -39311,13 +38834,13 @@ let
         sha512 = "kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==";
       };
     };
-    "micromark-util-subtokenize-2.0.0" = {
+    "micromark-util-subtokenize-2.0.1" = {
       name = "micromark-util-subtokenize";
       packageName = "micromark-util-subtokenize";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.0.tgz";
-        sha512 = "vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==";
+        url = "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz";
+        sha512 = "jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==";
       };
     };
     "micromark-util-symbol-1.1.0" = {
@@ -39374,13 +38897,13 @@ let
         sha512 = "MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==";
       };
     };
-    "micromatch-4.0.5" = {
+    "micromatch-4.0.7" = {
       name = "micromatch";
       packageName = "micromatch";
-      version = "4.0.5";
+      version = "4.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz";
-        sha512 = "DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==";
+        url = "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz";
+        sha512 = "LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==";
       };
     };
     "middleware-handler-0.2.0" = {
@@ -39662,13 +39185,13 @@ let
         sha512 = "I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==";
       };
     };
-    "mini-css-extract-plugin-2.8.1" = {
+    "mini-css-extract-plugin-2.9.0" = {
       name = "mini-css-extract-plugin";
       packageName = "mini-css-extract-plugin";
-      version = "2.8.1";
+      version = "2.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.8.1.tgz";
-        sha512 = "/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==";
+        url = "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz";
+        sha512 = "Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==";
       };
     };
     "mini-svg-data-uri-1.4.4" = {
@@ -39680,13 +39203,13 @@ let
         sha512 = "r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==";
       };
     };
-    "miniflare-3.20240304.2" = {
+    "miniflare-3.20240524.1" = {
       name = "miniflare";
       packageName = "miniflare";
-      version = "3.20240304.2";
+      version = "3.20240524.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/miniflare/-/miniflare-3.20240304.2.tgz";
-        sha512 = "yQ5TBKv7TlvF8khFvvH+1WWk8cBnaLgNzcbJ5DLQOdecxdDxUCVlN38HThd6Nhcz6EY+ckDkww8FkugUbSSpIQ==";
+        url = "https://registry.npmjs.org/miniflare/-/miniflare-3.20240524.1.tgz";
+        sha512 = "5d3pRxvd5pT7lX1SsBH9+AjXuyHJnChSNOnYhubfi7pxMek4ZfULwhnUmNUp1R7b2xKuzqdFDZa0fsZuUoFxlw==";
       };
     };
     "minilog-3.1.0" = {
@@ -39833,6 +39356,15 @@ let
         sha512 = "RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==";
       };
     };
+    "minimatch-9.0.4" = {
+      name = "minimatch";
+      packageName = "minimatch";
+      version = "9.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz";
+        sha512 = "KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==";
+      };
+    };
     "minimist-0.0.10" = {
       name = "minimist";
       packageName = "minimist";
@@ -39842,15 +39374,6 @@ let
         sha512 = "iotkTvxc+TwOm5Ieim8VnSNvCDjCK9S8G3scJ50ZthspSxa7jx50jkhYduuAtAjvfDUwSgOwf8+If99AlOEhyw==";
       };
     };
-    "minimist-1.2.7" = {
-      name = "minimist";
-      packageName = "minimist";
-      version = "1.2.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz";
-        sha512 = "bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==";
-      };
-    };
     "minimist-1.2.8" = {
       name = "minimist";
       packageName = "minimist";
@@ -39923,13 +39446,13 @@ let
         sha512 = "3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==";
       };
     };
-    "minipass-7.0.4" = {
+    "minipass-7.1.2" = {
       name = "minipass";
       packageName = "minipass";
-      version = "7.0.4";
+      version = "7.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz";
-        sha512 = "jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==";
+        url = "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz";
+        sha512 = "qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==";
       };
     };
     "minipass-collect-1.0.2" = {
@@ -39968,13 +39491,13 @@ let
         sha512 = "LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==";
       };
     };
-    "minipass-fetch-3.0.4" = {
+    "minipass-fetch-3.0.5" = {
       name = "minipass-fetch";
       packageName = "minipass-fetch";
-      version = "3.0.4";
+      version = "3.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz";
-        sha512 = "jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==";
+        url = "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz";
+        sha512 = "2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==";
       };
     };
     "minipass-flush-1.0.5" = {
@@ -40031,15 +39554,6 @@ let
         sha512 = "bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==";
       };
     };
-    "misspellings-1.1.0" = {
-      name = "misspellings";
-      packageName = "misspellings";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/misspellings/-/misspellings-1.1.0.tgz";
-        sha512 = "4QT2u/8X7PccbiHUcsZeEZrt3jGIVEpfcQ1RU01wDHKHVNtNhaP+0Xmsg7YPxD7OCc8bO802BTEWeGPvAXBwuw==";
-      };
-    };
     "mitt-1.2.0" = {
       name = "mitt";
       packageName = "mitt";
@@ -40049,6 +39563,15 @@ let
         sha512 = "r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==";
       };
     };
+    "mitt-3.0.1" = {
+      name = "mitt";
+      packageName = "mitt";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz";
+        sha512 = "vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==";
+      };
+    };
     "mixin-deep-1.3.2" = {
       name = "mixin-deep";
       packageName = "mixin-deep";
@@ -40238,24 +39761,6 @@ let
         sha512 = "4aE3U7CCBWgrQlQDMq8da4woBWDGHioJFiOZ8Ie6Yq2uwYQ9V2kGhTz4x3u6Wc+OU17nw0yc3rJ/lQ4jIiPe3A==";
       };
     };
-    "mp4-box-encoding-1.4.1" = {
-      name = "mp4-box-encoding";
-      packageName = "mp4-box-encoding";
-      version = "1.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mp4-box-encoding/-/mp4-box-encoding-1.4.1.tgz";
-        sha512 = "2/PRtGGiqPc/VEhbm7xAQ+gbb7yzHjjMAv6MpAifr5pCpbh3fQUdj93uNgwPiTppAGu8HFKe3PeU+OdRyAxStA==";
-      };
-    };
-    "mp4-stream-3.1.3" = {
-      name = "mp4-stream";
-      packageName = "mp4-stream";
-      version = "3.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mp4-stream/-/mp4-stream-3.1.3.tgz";
-        sha512 = "DUT8f0x2jHbZjNMdqe9h6lZdt6RENWTTdGn8z3TXa4uEsoltuNY9lCCij84mdm0q7xcV0E2W25WRxlKBMo4hSw==";
-      };
-    };
     "mqtt-4.3.7" = {
       name = "mqtt";
       packageName = "mqtt";
@@ -40292,15 +39797,6 @@ let
         sha512 = "tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==";
       };
     };
-    "mrmime-1.0.1" = {
-      name = "mrmime";
-      packageName = "mrmime";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz";
-        sha512 = "hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==";
-      };
-    };
     "mrmime-2.0.0" = {
       name = "mrmime";
       packageName = "mrmime";
@@ -40364,13 +39860,13 @@ let
         sha512 = "VoY2AaoowHZLLKyEb5FRzuhdSzXn5quGjcMKJOJHJPxp9baYZx5t6jiHUhp5aNRlqqlt+5GXQGovMLNKsrm1hg==";
       };
     };
-    "msgpackr-1.10.1" = {
+    "msgpackr-1.10.2" = {
       name = "msgpackr";
       packageName = "msgpackr";
-      version = "1.10.1";
+      version = "1.10.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/msgpackr/-/msgpackr-1.10.1.tgz";
-        sha512 = "r5VRLv9qouXuLiIBrLpl2d5ZvPt8svdQTl5/vMvE4nzDMyEX4sgW5yWhuBBj5UmgwOTWj8CIdSXn5sAfsHAWIQ==";
+        url = "https://registry.npmjs.org/msgpackr/-/msgpackr-1.10.2.tgz";
+        sha512 = "L60rsPynBvNE+8BWipKKZ9jHcSGbtyJYIwjRq0VrIvQ08cRjntGXJYW/tmciZ2IHWIY8WEW32Qa2xbh5+SKBZA==";
       };
     };
     "muggle-string-0.2.2" = {
@@ -40472,13 +39968,13 @@ let
         sha512 = "71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==";
       };
     };
-    "mute-stdout-1.0.1" = {
+    "mute-stdout-2.0.0" = {
       name = "mute-stdout";
       packageName = "mute-stdout";
-      version = "1.0.1";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz";
-        sha512 = "kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==";
+        url = "https://registry.npmjs.org/mute-stdout/-/mute-stdout-2.0.0.tgz";
+        sha512 = "32GSKM3Wyc8dg/p39lWPKYu8zci9mJFzV1Np9Of0ZEpe6Fhssn/FbI7ywAMd40uX+p3ZKh3T5EeCFv81qS3HmQ==";
       };
     };
     "mute-stream-0.0.5" = {
@@ -40535,15 +40031,6 @@ let
         sha512 = "z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==";
       };
     };
-    "n-gram-2.0.2" = {
-      name = "n-gram";
-      packageName = "n-gram";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/n-gram/-/n-gram-2.0.2.tgz";
-        sha512 = "S24aGsn+HLBxUGVAUFOwGpKs7LBcG4RudKU//eWzt/mQ97/NMKQxDWHyHx63UNWk/OOdihgmzoETn1tf5nQDzQ==";
-      };
-    };
     "nan-0.3.2" = {
       name = "nan";
       packageName = "nan";
@@ -40616,15 +40103,6 @@ let
         sha512 = "ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==";
       };
     };
-    "napi-macros-2.2.2" = {
-      name = "napi-macros";
-      packageName = "napi-macros";
-      version = "2.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/napi-macros/-/napi-macros-2.2.2.tgz";
-        sha512 = "hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==";
-      };
-    };
     "native-promise-only-0.8.1" = {
       name = "native-promise-only";
       packageName = "native-promise-only";
@@ -40851,15 +40329,6 @@ let
         sha512 = "NHDDGYudnvRutt/VhKFlX26IotXe1w0cmkDm6JGquh5bz/bDTw0LufSmH/GxTjEdpHEO+bVKFTwdrcGa/9XlKQ==";
       };
     };
-    "next-event-1.0.0" = {
-      name = "next-event";
-      packageName = "next-event";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/next-event/-/next-event-1.0.0.tgz";
-        sha512 = "IXGPhl/yAiUU597gz+k5OYxYZkmLSWTcPPcpQjWABud9OK6m/ZNLrVdcEu4e7NgmOObFIhgZVg1jecPYT/6AoA==";
-      };
-    };
     "next-line-1.1.0" = {
       name = "next-line";
       packageName = "next-line";
@@ -40977,22 +40446,13 @@ let
         sha512 = "fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==";
       };
     };
-    "no-cliches-0.3.6" = {
-      name = "no-cliches";
-      packageName = "no-cliches";
-      version = "0.3.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/no-cliches/-/no-cliches-0.3.6.tgz";
-        sha512 = "3yZ1vfGKOcv0dyyhUeqA0Qa6RsQ4SfUnL6o2IWR4sVg8kdnJo48XTWbMLdtnfiZTbCUdsMttNwyJcihEdGCZBw==";
-      };
-    };
-    "node-abi-3.56.0" = {
+    "node-abi-3.63.0" = {
       name = "node-abi";
       packageName = "node-abi";
-      version = "3.56.0";
+      version = "3.63.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-abi/-/node-abi-3.56.0.tgz";
-        sha512 = "fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q==";
+        url = "https://registry.npmjs.org/node-abi/-/node-abi-3.63.0.tgz";
+        sha512 = "vAszCsOUrUxjGAmdnM/pq7gUgie0IRteCQMX6d4A534fQCR93EJU5qgzBvU6EkFfK27s0T3HEV3BOyJIr7OMYw==";
       };
     };
     "node-abort-controller-3.1.1" = {
@@ -41085,6 +40545,15 @@ let
         sha512 = "h66cRVEWnPQFxh5Y1hk9MNs6jvlB26CjT727ZztkIkPN+eyRI2c9powQrBJ9pty2Kj7IBySDnYHig7QElmU4Pg==";
       };
     };
+    "node-datachannel-0.9.1" = {
+      name = "node-datachannel";
+      packageName = "node-datachannel";
+      version = "0.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-datachannel/-/node-datachannel-0.9.1.tgz";
+        sha512 = "b6Uc6YN5We2/aZA6QGicxSdWUDSwlR+vcO/Dn44BY5gieF3AOwsL/zPD+Ril+1KvYDwVJkVbRIovbG76E4PpwA==";
+      };
+    };
     "node-dir-0.1.17" = {
       name = "node-dir";
       packageName = "node-dir";
@@ -41103,6 +40572,15 @@ let
         sha512 = "/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==";
       };
     };
+    "node-domexception-2.0.1" = {
+      name = "node-domexception";
+      packageName = "node-domexception";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-domexception/-/node-domexception-2.0.1.tgz";
+        sha512 = "M85rnSC7WQ7wnfQTARPT4LrK7nwCHLdDFOCcItZMhTQjyCebJH8GciKqYJNgaOFZs9nFmTmd/VMyi3OW5jA47w==";
+      };
+    };
     "node-downloader-helper-1.0.19" = {
       name = "node-downloader-helper";
       packageName = "node-downloader-helper";
@@ -41238,13 +40716,13 @@ let
         sha512 = "dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==";
       };
     };
-    "node-gyp-10.0.1" = {
+    "node-gyp-10.1.0" = {
       name = "node-gyp";
       packageName = "node-gyp";
-      version = "10.0.1";
+      version = "10.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.1.tgz";
-        sha512 = "gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==";
+        url = "https://registry.npmjs.org/node-gyp/-/node-gyp-10.1.0.tgz";
+        sha512 = "B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==";
       };
     };
     "node-gyp-3.8.0" = {
@@ -41274,13 +40752,13 @@ let
         sha512 = "OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==";
       };
     };
-    "node-gyp-build-4.8.0" = {
+    "node-gyp-build-4.8.1" = {
       name = "node-gyp-build";
       packageName = "node-gyp-build";
-      version = "4.8.0";
+      version = "4.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz";
-        sha512 = "u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==";
+        url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz";
+        sha512 = "OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==";
       };
     };
     "node-gyp-build-optional-packages-5.0.3" = {
@@ -41382,13 +40860,13 @@ let
         sha512 = "SU00ZarexNlE4Rjdm83vglt5Y9yiQ+XI1XpflWlb7q7UTN1JUItm69xMeiQCTxtTfnzt+83T8Cx+vI2ED++VDA==";
       };
     };
-    "node-red-admin-3.1.2" = {
+    "node-red-admin-3.1.3" = {
       name = "node-red-admin";
       packageName = "node-red-admin";
-      version = "3.1.2";
+      version = "3.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-red-admin/-/node-red-admin-3.1.2.tgz";
-        sha512 = "UUNpi8QkUDIAReuzxAuZDm17fejkqJJzM49w5+0ScgVtPn6bRVTEnUvusPtKJftH5J3cH2QZ+rkvGz5KeyWxFQ==";
+        url = "https://registry.npmjs.org/node-red-admin/-/node-red-admin-3.1.3.tgz";
+        sha512 = "RRkjwLjriCKW3bqiU21y3j+wpZ4bDf2EH3IEqxwP6hT4ccIwEK8Nt9dPZRWD6NyWGbEVDSTM5H0/whaRdFCqSw==";
       };
     };
     "node-releases-2.0.14" = {
@@ -41481,15 +40959,6 @@ let
         sha512 = "Jqb2SFiBSqeOUlxHbjpinUo3ZXBkVmCqha8t1REgyo4rYx/cXh+pttzlL2vXIjG63VdklCrwrnqwIXsVBRMrSA==";
       };
     };
-    "nodebmc-0.0.7" = {
-      name = "nodebmc";
-      packageName = "nodebmc";
-      version = "0.0.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/nodebmc/-/nodebmc-0.0.7.tgz";
-        sha512 = "6RLP7RsUSAAJnxSqltY0hs4ieyqqT09PIpPTYYq325gHBVPn0ePSwceLOWN5hqy8kczha3VcUhmh8vtcmy8sOg==";
-      };
-    };
     "nomnom-1.8.1" = {
       name = "nomnom";
       packageName = "nomnom";
@@ -41562,13 +41031,13 @@ let
         sha512 = "ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==";
       };
     };
-    "nopt-7.2.0" = {
+    "nopt-7.2.1" = {
       name = "nopt";
       packageName = "nopt";
-      version = "7.2.0";
+      version = "7.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz";
-        sha512 = "CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==";
+        url = "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz";
+        sha512 = "taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==";
       };
     };
     "normalize-package-data-2.5.0" = {
@@ -41607,13 +41076,13 @@ let
         sha512 = "h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==";
       };
     };
-    "normalize-package-data-6.0.0" = {
+    "normalize-package-data-6.0.1" = {
       name = "normalize-package-data";
       packageName = "normalize-package-data";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz";
-        sha512 = "UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==";
+        url = "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.1.tgz";
+        sha512 = "6rvCfeRW+OEZagAB4lMLSNuTNYZWLVtKccK79VSTf//yTY5VOCgcpH80O+bZK8Neps7pUnd5G+QlMg1yV/2iZQ==";
       };
     };
     "normalize-path-2.1.1" = {
@@ -41697,22 +41166,13 @@ let
         sha512 = "IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==";
       };
     };
-    "now-and-later-2.0.1" = {
+    "now-and-later-3.0.0" = {
       name = "now-and-later";
       packageName = "now-and-later";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz";
-        sha512 = "KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==";
-      };
-    };
-    "npm-9.8.1" = {
-      name = "npm";
-      packageName = "npm";
-      version = "9.8.1";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm/-/npm-9.8.1.tgz";
-        sha512 = "AfDvThQzsIXhYgk9zhbk5R+lh811lKkLAeQMMhSypf1BM7zUafeIIBzMzespeuVEJ0+LvY36oRQYf7IKLzU3rw==";
+        url = "https://registry.npmjs.org/now-and-later/-/now-and-later-3.0.0.tgz";
+        sha512 = "pGO4pzSdaxhWTGkfSfHx3hVzJVslFPwBp2Myq9MYN/ChfJZF87ochMAXnvz6/58RJSf5ik2q9tXprBBrk2cpcg==";
       };
     };
     "npm-bundled-1.1.2" = {
@@ -41724,13 +41184,13 @@ let
         sha512 = "x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==";
       };
     };
-    "npm-bundled-3.0.0" = {
+    "npm-bundled-3.0.1" = {
       name = "npm-bundled";
       packageName = "npm-bundled";
-      version = "3.0.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz";
-        sha512 = "Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==";
+        url = "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz";
+        sha512 = "+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==";
       };
     };
     "npm-check-6.0.1" = {
@@ -41796,13 +41256,13 @@ let
         sha512 = "uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==";
       };
     };
-    "npm-package-arg-11.0.1" = {
+    "npm-package-arg-11.0.2" = {
       name = "npm-package-arg";
       packageName = "npm-package-arg";
-      version = "11.0.1";
+      version = "11.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz";
-        sha512 = "M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==";
+        url = "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.2.tgz";
+        sha512 = "IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==";
       };
     };
     "npm-package-arg-6.1.0" = {
@@ -41886,13 +41346,13 @@ let
         sha512 = "shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==";
       };
     };
-    "npm-pick-manifest-9.0.0" = {
+    "npm-pick-manifest-9.0.1" = {
       name = "npm-pick-manifest";
       packageName = "npm-pick-manifest";
-      version = "9.0.0";
+      version = "9.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz";
-        sha512 = "VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==";
+        url = "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.1.tgz";
+        sha512 = "Udm1f0l2nXb3wxDpKjfohwgdFUSV50UVwzEIpDXVsbDMXVIEF81a/i0UhuQbhrPMMmdiq3+YMFLFIRVLs3hxQw==";
       };
     };
     "npm-registry-client-8.6.0" = {
@@ -41913,13 +41373,22 @@ let
         sha512 = "kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==";
       };
     };
-    "npm-registry-fetch-16.1.0" = {
+    "npm-registry-fetch-16.2.1" = {
+      name = "npm-registry-fetch";
+      packageName = "npm-registry-fetch";
+      version = "16.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.2.1.tgz";
+        sha512 = "8l+7jxhim55S85fjiDGJ1rZXBWGtRLi1OSb4Z3BPLObPuIaeKRlPRiYMSHU4/81ck3t71Z+UwDDl47gcpmfQQA==";
+      };
+    };
+    "npm-registry-fetch-17.0.1" = {
       name = "npm-registry-fetch";
       packageName = "npm-registry-fetch";
-      version = "16.1.0";
+      version = "17.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz";
-        sha512 = "PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==";
+        url = "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-17.0.1.tgz";
+        sha512 = "fLu9MTdZTlJAHUek/VLklE6EpIiP3VZpTiuN7OOMCt2Sd67NCpSEetMaxHHEZiZxllp8ZLsUpvbEszqTFEc+wA==";
       };
     };
     "npm-run-path-2.0.2" = {
@@ -42084,22 +41553,22 @@ let
         sha512 = "qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==";
       };
     };
-    "nwsapi-2.2.7" = {
+    "nwsapi-2.2.10" = {
       name = "nwsapi";
       packageName = "nwsapi";
-      version = "2.2.7";
+      version = "2.2.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz";
-        sha512 = "ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==";
+        url = "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.10.tgz";
+        sha512 = "QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==";
       };
     };
-    "nx-18.1.2" = {
+    "nx-19.1.2" = {
       name = "nx";
       packageName = "nx";
-      version = "18.1.2";
+      version = "19.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nx/-/nx-18.1.2.tgz";
-        sha512 = "E414xp6lVtiTGdDUMVo72G96G66t7oJMqmcHRMEZ/mVq5ZpNWUhfMuRq5Fh8orXPtrM3xk5SHokmmFvo5PKC+g==";
+        url = "https://registry.npmjs.org/nx/-/nx-19.1.2.tgz";
+        sha512 = "hqD0HglmZCqgPLGcEfLq79El9iBUlinoncmsk6wsPHJM1IrASxHkemJZiehYilQx55QACd1MGBjC2nySZmgyLA==";
       };
     };
     "nyc-15.1.0" = {
@@ -42345,13 +41814,13 @@ let
         sha512 = "k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==";
       };
     };
-    "object.getownpropertydescriptors-2.1.7" = {
+    "object.getownpropertydescriptors-2.1.8" = {
       name = "object.getownpropertydescriptors";
       packageName = "object.getownpropertydescriptors";
-      version = "2.1.7";
+      version = "2.1.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz";
-        sha512 = "PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==";
+        url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz";
+        sha512 = "qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==";
       };
     };
     "object.groupby-1.0.3" = {
@@ -42363,13 +41832,13 @@ let
         sha512 = "+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==";
       };
     };
-    "object.hasown-1.1.3" = {
+    "object.hasown-1.1.4" = {
       name = "object.hasown";
       packageName = "object.hasown";
-      version = "1.1.3";
+      version = "1.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz";
-        sha512 = "fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==";
+        url = "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz";
+        sha512 = "FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==";
       };
     };
     "object.map-1.0.1" = {
@@ -42399,15 +41868,6 @@ let
         sha512 = "tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==";
       };
     };
-    "object.reduce-1.0.1" = {
-      name = "object.reduce";
-      packageName = "object.reduce";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz";
-        sha512 = "naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw==";
-      };
-    };
     "object.values-1.2.0" = {
       name = "object.values";
       packageName = "object.values";
@@ -42417,15 +41877,6 @@ let
         sha512 = "yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==";
       };
     };
-    "object_values-0.1.2" = {
-      name = "object_values";
-      packageName = "object_values";
-      version = "0.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/object_values/-/object_values-0.1.2.tgz";
-        sha512 = "tZgUiKLraVH+4OAedBYrr4/K6KmAQw2RPNd1AuNdhLsuz5WP3VB7WuiKBWbOcjeqqAjus2ChIIWC8dSfmg7ReA==";
-      };
-    };
     "obliterator-2.0.4" = {
       name = "obliterator";
       packageName = "obliterator";
@@ -42570,13 +42021,13 @@ let
         sha512 = "fvaSZRzprpwLFge/mcwE0CItfniNisVNamDdMK1FQUjh4ArQZ8ZWSkDaJbZc3XaANKZHq0xIa8NJpZ2HSe3oXA==";
       };
     };
-    "oo-ascii-tree-1.95.0" = {
+    "oo-ascii-tree-1.99.0" = {
       name = "oo-ascii-tree";
       packageName = "oo-ascii-tree";
-      version = "1.95.0";
+      version = "1.99.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.95.0.tgz";
-        sha512 = "e9LWcjDtQIwFHICbeAjv2+RGJUFu3+A6oTjpymH+gfxATqPqcUV5oeGON9a/1uBr8Q0bc2/yEHVp1A/dp1iaog==";
+        url = "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.99.0.tgz";
+        sha512 = "/BTLvFECySvAwOUeu/iSkhQk+WXH8FPcXOrjbadlnWuNwYtNH5jcEOxyBkL0sT6WvmFFsogRu2zLb2H/nPCJrQ==";
       };
     };
     "open-0.0.2" = {
@@ -42651,13 +42102,13 @@ let
         sha512 = "N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==";
       };
     };
-    "openapi3-ts-4.2.1" = {
+    "openapi3-ts-4.2.2" = {
       name = "openapi3-ts";
       packageName = "openapi3-ts";
-      version = "4.2.1";
+      version = "4.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/openapi3-ts/-/openapi3-ts-4.2.1.tgz";
-        sha512 = "KL1mKwkZii5ce+tb24KCUmQHyWB/oanG5fzUY35UB+wenWJv4Kr/IWBntpn5R8ODiJcxx13ZDophcpHnLGeIOw==";
+        url = "https://registry.npmjs.org/openapi3-ts/-/openapi3-ts-4.2.2.tgz";
+        sha512 = "+9g4actZKeb3czfi9gVQ4Br2Ju3KwhCAQJBNaKgye5KggqcBLIhFHH+nIkcm0BUX00TrAJl6dH4JWgM4G4JWrw==";
       };
     };
     "openpgp-5.11.1" = {
@@ -42741,13 +42192,13 @@ let
         sha512 = "+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==";
       };
     };
-    "optionator-0.9.3" = {
+    "optionator-0.9.4" = {
       name = "optionator";
       packageName = "optionator";
-      version = "0.9.3";
+      version = "0.9.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz";
-        sha512 = "JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==";
+        url = "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz";
+        sha512 = "6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==";
       };
     };
     "options-0.0.6" = {
@@ -42831,15 +42282,6 @@ let
         sha512 = "5VyHfHY3cd0iza71JepYG50My+YUbrFtGoUz2ooEydPyPM7Aai/JW098juLr+RG6+rDJuzNNTsEQu2DZa1A41A==";
       };
     };
-    "ordered-read-streams-1.0.1" = {
-      name = "ordered-read-streams";
-      packageName = "ordered-read-streams";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz";
-        sha512 = "Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==";
-      };
-    };
     "org-regex-1.0.0" = {
       name = "org-regex";
       packageName = "org-regex";
@@ -42903,13 +42345,13 @@ let
         sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==";
       };
     };
-    "ovsx-0.8.3" = {
+    "ovsx-0.8.4" = {
       name = "ovsx";
       packageName = "ovsx";
-      version = "0.8.3";
+      version = "0.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ovsx/-/ovsx-0.8.3.tgz";
-        sha512 = "LG7wTzy4eYV/KolFeO4AwWPzQSARvCONzd5oHQlNvYOlji2r/zjbdK8pyObZN84uZlk6rQBWrJrAdJfh/SX0Hg==";
+        url = "https://registry.npmjs.org/ovsx/-/ovsx-0.8.4.tgz";
+        sha512 = "RMtGSVNM4NWSF9uVWCUqaYiA7ID8Vqm/rSk2W37eYVrDLOI/3do2IRY7rQYkvJqb6sS6LAnALODBkD50tIM1kw==";
       };
     };
     "p-any-2.1.0" = {
@@ -43173,13 +42615,13 @@ let
         sha512 = "T8BatKGY+k5rU+Q/GTYgrEf2r4xRMevAN5mtXc2aPc4rS1j3s+vWTaO2Wag94neXuCAUAs8cxBL9EeB5EA6diw==";
       };
     };
-    "p-map-7.0.1" = {
+    "p-map-7.0.2" = {
       name = "p-map";
       packageName = "p-map";
-      version = "7.0.1";
+      version = "7.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/p-map/-/p-map-7.0.1.tgz";
-        sha512 = "2wnaR0XL/FDOj+TgpDuRb2KTjLnu3Fma6b1ZUwGY7LcqenMcvP/YFpjpbPKY6WVGsbuJZRuoUz8iPrt8ORnAFw==";
+        url = "https://registry.npmjs.org/p-map/-/p-map-7.0.2.tgz";
+        sha512 = "z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==";
       };
     };
     "p-map-series-2.1.0" = {
@@ -43434,22 +42876,22 @@ let
         sha512 = "cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==";
       };
     };
-    "package-json-versionify-1.0.4" = {
-      name = "package-json-versionify";
-      packageName = "package-json-versionify";
-      version = "1.0.4";
+    "pacote-17.0.7" = {
+      name = "pacote";
+      packageName = "pacote";
+      version = "17.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/package-json-versionify/-/package-json-versionify-1.0.4.tgz";
-        sha512 = "mtKKtCeSZMtWcc5hHJS6OlEGP7J9g7WN6vWCCZi2hCXFag/Zmjokh6WFFTQb9TuMnBcZpRjhhMQyOyglPCAahw==";
+        url = "https://registry.npmjs.org/pacote/-/pacote-17.0.7.tgz";
+        sha512 = "sgvnoUMlkv9xHwDUKjKQFXVyUi8dtJGKp3vg6sYy+TxbDic5RjZCHF3ygv0EJgNRZ2GfRONjlKPUfokJ9lDpwQ==";
       };
     };
-    "pacote-17.0.6" = {
+    "pacote-18.0.6" = {
       name = "pacote";
       packageName = "pacote";
-      version = "17.0.6";
+      version = "18.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pacote/-/pacote-17.0.6.tgz";
-        sha512 = "cJKrW21VRE8vVTRskJo78c/RCvwJCn1f4qgfxL4w77SOWrTCRcmfkYHlHtS0gqpgjv3zhXflRtgsrUCX5xwNnQ==";
+        url = "https://registry.npmjs.org/pacote/-/pacote-18.0.6.tgz";
+        sha512 = "+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==";
       };
     };
     "pako-1.0.11" = {
@@ -43749,6 +43191,15 @@ let
         sha512 = "Eg1OuNntBMH0ojvEKSrvDSnwLmvVuUOSdylH/pSCPNMIspLlweJyIWXCE+k/5hm3cj/EBUYwmWkjhBALNP4LXQ==";
       };
     };
+    "parse-torrent-11.0.16" = {
+      name = "parse-torrent";
+      packageName = "parse-torrent";
+      version = "11.0.16";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-torrent/-/parse-torrent-11.0.16.tgz";
+        sha512 = "5GoOdmW0HpiB78aQpBz8/5V3V1LjBRDNiL7DOs33pKeCLOzFnfMrsRD6CYmaUBT5Vi/dXE0hfePsjDGJSMF48w==";
+      };
+    };
     "parse-torrent-4.1.0" = {
       name = "parse-torrent";
       packageName = "parse-torrent";
@@ -43812,15 +43263,6 @@ let
         sha512 = "fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==";
       };
     };
-    "parse5-5.1.1" = {
-      name = "parse5";
-      packageName = "parse5";
-      version = "5.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz";
-        sha512 = "ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==";
-      };
-    };
     "parse5-6.0.1" = {
       name = "parse5";
       packageName = "parse5";
@@ -43965,15 +43407,6 @@ let
         sha512 = "XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==";
       };
     };
-    "passive-voice-0.1.0" = {
-      name = "passive-voice";
-      packageName = "passive-voice";
-      version = "0.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/passive-voice/-/passive-voice-0.1.0.tgz";
-        sha512 = "Pj9iwzXw4bKEtdugGYm92jT4tnsj+xrTSkHFEM4bn6fefqbFdZi49tZMmGIZ91aIQTyFtMUww7O2qYaZKAsDag==";
-      };
-    };
     "passport-0.6.0" = {
       name = "passport";
       packageName = "passport";
@@ -44064,15 +43497,6 @@ let
         sha512 = "b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==";
       };
     };
-    "path-case-3.0.4" = {
-      name = "path-case";
-      packageName = "path-case";
-      version = "3.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz";
-        sha512 = "qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==";
-      };
-    };
     "path-dirname-1.0.2" = {
       name = "path-dirname";
       packageName = "path-dirname";
@@ -44217,22 +43641,13 @@ let
         sha512 = "4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==";
       };
     };
-    "path-scurry-1.10.1" = {
+    "path-scurry-1.11.1" = {
       name = "path-scurry";
       packageName = "path-scurry";
-      version = "1.10.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz";
-        sha512 = "MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==";
-      };
-    };
-    "path-to-glob-pattern-2.0.1" = {
-      name = "path-to-glob-pattern";
-      packageName = "path-to-glob-pattern";
-      version = "2.0.1";
+      version = "1.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/path-to-glob-pattern/-/path-to-glob-pattern-2.0.1.tgz";
-        sha512 = "tmciSlVyHnX0LC86+zSr+0LURw9rDPw8ilhXcmTpVUOnI6OsKdCzXQs5fTG10Bjz26IBdnKL3XIaP+QvGsk5YQ==";
+        url = "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz";
+        sha512 = "Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==";
       };
     };
     "path-to-regexp-0.1.7" = {
@@ -44280,6 +43695,15 @@ let
         sha512 = "JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==";
       };
     };
+    "path-to-regexp-6.2.2" = {
+      name = "path-to-regexp";
+      packageName = "path-to-regexp";
+      version = "6.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz";
+        sha512 = "GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==";
+      };
+    };
     "path-type-1.1.0" = {
       name = "path-type";
       packageName = "path-type";
@@ -44325,15 +43749,6 @@ let
         sha512 = "5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==";
       };
     };
-    "pathe-1.1.1" = {
-      name = "pathe";
-      packageName = "pathe";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz";
-        sha512 = "d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==";
-      };
-    };
     "pause-0.0.1" = {
       name = "pause";
       packageName = "pause";
@@ -44361,6 +43776,15 @@ let
         sha512 = "iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==";
       };
     };
+    "pe-library-1.0.1" = {
+      name = "pe-library";
+      packageName = "pe-library";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pe-library/-/pe-library-1.0.1.tgz";
+        sha512 = "nh39Mo1eGWmZS7y+mK/dQIqg7S1lp38DpRxkyoHf0ZcUs/HDc+yyTjuOtTvSMZHmfSLuSQaX945u05Y2Q6UWZg==";
+      };
+    };
     "peberminta-0.9.0" = {
       name = "peberminta";
       packageName = "peberminta";
@@ -44451,6 +43875,15 @@ let
         sha512 = "1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==";
       };
     };
+    "picocolors-1.0.1" = {
+      name = "picocolors";
+      packageName = "picocolors";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz";
+        sha512 = "anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==";
+      };
+    };
     "picomatch-2.3.1" = {
       name = "picomatch";
       packageName = "picomatch";
@@ -44460,13 +43893,13 @@ let
         sha512 = "JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==";
       };
     };
-    "picomatch-4.0.1" = {
+    "picomatch-4.0.2" = {
       name = "picomatch";
       packageName = "picomatch";
-      version = "4.0.1";
+      version = "4.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/picomatch/-/picomatch-4.0.1.tgz";
-        sha512 = "xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==";
+        url = "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz";
+        sha512 = "M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==";
       };
     };
     "picomatch-browser-2.2.6" = {
@@ -44478,15 +43911,6 @@ let
         sha512 = "0ypsOQt9D4e3hziV8O4elD9uN0z/jtUEfxVRtNaAAtXIyUx9m/SzlO020i8YNL2aL/E6blOvvHQcin6HZlFy/w==";
       };
     };
-    "pid-from-port-1.1.3" = {
-      name = "pid-from-port";
-      packageName = "pid-from-port";
-      version = "1.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pid-from-port/-/pid-from-port-1.1.3.tgz";
-        sha512 = "OlE82n3yMOE5dY9RMOwxhoWefeMlxwk5IVxoj0sSzSFIlmvhN4obzTvO3s/d/b5JhcgXikjaspsy/HuUDTqbBg==";
-      };
-    };
     "pid-port-0.1.1" = {
       name = "pid-port";
       packageName = "pid-port";
@@ -44721,15 +44145,6 @@ let
         sha512 = "uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==";
       };
     };
-    "plist-with-patches-0.5.1" = {
-      name = "plist-with-patches";
-      packageName = "plist-with-patches";
-      version = "0.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/plist-with-patches/-/plist-with-patches-0.5.1.tgz";
-        sha512 = "U8qxmOfUlyoaKvw80p8INHB0vDIvXlSlW6uTVMszl0HogXxtdBhrAkt6e/h7QoPHjeszi2WKDDI8MkIXZOy+TA==";
-      };
-    };
     "plur-4.0.0" = {
       name = "plur";
       packageName = "plur";
@@ -44748,15 +44163,6 @@ let
         sha512 = "TH+BeeL6Ct98C7as35JbZLf8lgsRzlNJb5gklRIGHKaPkGl1esOKBc5ALUMd+q08Sr6tiEKM+Icbsxg5vuhMKQ==";
       };
     };
-    "pluralize-2.0.0" = {
-      name = "pluralize";
-      packageName = "pluralize";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pluralize/-/pluralize-2.0.0.tgz";
-        sha512 = "TqNZzQCD4S42De9IfnnBvILN7HAW7riLqsCyp8lgjXeysyPlX5HhqKAcJHHHb9XskE4/a+7VGC9zzx8Ls0jOAw==";
-      };
-    };
     "pluralize-3.1.0" = {
       name = "pluralize";
       packageName = "pluralize";
@@ -44811,13 +44217,13 @@ let
         sha512 = "LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==";
       };
     };
-    "pnpm-sync-lib-0.1.4" = {
+    "pnpm-sync-lib-0.2.6" = {
       name = "pnpm-sync-lib";
       packageName = "pnpm-sync-lib";
-      version = "0.1.4";
+      version = "0.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pnpm-sync-lib/-/pnpm-sync-lib-0.1.4.tgz";
-        sha512 = "3xwsXcsu+lj2l1nTF0TcgjHuMrnPpQJqHioPj5DTL9gFU+RSsoND2nEMelOo9qAz+BlPelxXZOc5z1Tgs7gwiQ==";
+        url = "https://registry.npmjs.org/pnpm-sync-lib/-/pnpm-sync-lib-0.2.6.tgz";
+        sha512 = "6bEpWpEo2AJnUeMy6j1+3xm71C/h4LtHDmaBVyNgnsErgJ8uiB8ekWvgheVHsUxz038oFy2tAXPMHrr59VLbdA==";
       };
     };
     "pony-cause-1.1.1" = {
@@ -44883,31 +44289,31 @@ let
         sha512 = "yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==";
       };
     };
-    "postcss-8.4.36" = {
+    "postcss-8.4.38" = {
       name = "postcss";
       packageName = "postcss";
-      version = "8.4.36";
+      version = "8.4.38";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss/-/postcss-8.4.36.tgz";
-        sha512 = "/n7eumA6ZjFHAsbX30yhHup/IMkOmlmvtEi7P+6RMYf+bGJSUHc3geH4a0NSZxAz/RJfiS9tooCTs9LAVYUZKw==";
+        url = "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz";
+        sha512 = "Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==";
       };
     };
-    "postcss-calc-8.2.4" = {
+    "postcss-calc-10.0.0" = {
       name = "postcss-calc";
       packageName = "postcss-calc";
-      version = "8.2.4";
+      version = "10.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz";
-        sha512 = "SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==";
+        url = "https://registry.npmjs.org/postcss-calc/-/postcss-calc-10.0.0.tgz";
+        sha512 = "OmjhudoNTP0QleZCwl1i6NeBwN+5MZbY5ersLZz69mjJiDVv/p57RjRuKDkHeDWr4T+S97wQfsqRTNoDHB2e3g==";
       };
     };
-    "postcss-calc-9.0.1" = {
+    "postcss-calc-8.2.4" = {
       name = "postcss-calc";
       packageName = "postcss-calc";
-      version = "9.0.1";
+      version = "8.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz";
-        sha512 = "TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==";
+        url = "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz";
+        sha512 = "SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==";
       };
     };
     "postcss-colormin-5.3.1" = {
@@ -44919,13 +44325,13 @@ let
         sha512 = "UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==";
       };
     };
-    "postcss-colormin-6.1.0" = {
+    "postcss-colormin-7.0.0" = {
       name = "postcss-colormin";
       packageName = "postcss-colormin";
-      version = "6.1.0";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz";
-        sha512 = "x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==";
+        url = "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-7.0.0.tgz";
+        sha512 = "5CN6fqtsEtEtwf3mFV3B4UaZnlYljPpzmGeDB4yCK067PnAtfLe9uX2aFZaEwxHE7HopG5rUkW8gyHrNAesHEg==";
       };
     };
     "postcss-convert-values-5.1.3" = {
@@ -44937,13 +44343,13 @@ let
         sha512 = "82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==";
       };
     };
-    "postcss-convert-values-6.1.0" = {
+    "postcss-convert-values-7.0.0" = {
       name = "postcss-convert-values";
       packageName = "postcss-convert-values";
-      version = "6.1.0";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz";
-        sha512 = "zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==";
+        url = "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-7.0.0.tgz";
+        sha512 = "bMuzDgXBbFbByPgj+/r6va8zNuIDUaIIbvAFgdO1t3zdgJZ77BZvu6dfWyd6gHEJnYzmeVr9ayUsAQL3/qLJ0w==";
       };
     };
     "postcss-discard-comments-5.1.2" = {
@@ -44955,13 +44361,13 @@ let
         sha512 = "+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==";
       };
     };
-    "postcss-discard-comments-6.0.2" = {
+    "postcss-discard-comments-7.0.0" = {
       name = "postcss-discard-comments";
       packageName = "postcss-discard-comments";
-      version = "6.0.2";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz";
-        sha512 = "65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==";
+        url = "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-7.0.0.tgz";
+        sha512 = "xpSdzRqYmy4YIVmjfGyYXKaI1SRnK6CTr+4Zmvyof8ANwvgfZgGdVtmgAvzh59gJm808mJCWQC9tFN0KF5dEXA==";
       };
     };
     "postcss-discard-duplicates-5.1.0" = {
@@ -44973,13 +44379,13 @@ let
         sha512 = "zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==";
       };
     };
-    "postcss-discard-duplicates-6.0.3" = {
+    "postcss-discard-duplicates-7.0.0" = {
       name = "postcss-discard-duplicates";
       packageName = "postcss-discard-duplicates";
-      version = "6.0.3";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz";
-        sha512 = "+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==";
+        url = "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.0.tgz";
+        sha512 = "bAnSuBop5LpAIUmmOSsuvtKAAKREB6BBIYStWUTGq8oG5q9fClDMMuY8i4UPI/cEcDx2TN+7PMnXYIId20UVDw==";
       };
     };
     "postcss-discard-empty-5.1.1" = {
@@ -44991,13 +44397,13 @@ let
         sha512 = "zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==";
       };
     };
-    "postcss-discard-empty-6.0.3" = {
+    "postcss-discard-empty-7.0.0" = {
       name = "postcss-discard-empty";
       packageName = "postcss-discard-empty";
-      version = "6.0.3";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz";
-        sha512 = "znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==";
+        url = "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-7.0.0.tgz";
+        sha512 = "e+QzoReTZ8IAwhnSdp/++7gBZ/F+nBq9y6PomfwORfP7q9nBpK5AMP64kOt0bA+lShBFbBDcgpJ3X4etHg4lzA==";
       };
     };
     "postcss-discard-overridden-5.1.0" = {
@@ -45009,13 +44415,13 @@ let
         sha512 = "21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==";
       };
     };
-    "postcss-discard-overridden-6.0.2" = {
+    "postcss-discard-overridden-7.0.0" = {
       name = "postcss-discard-overridden";
       packageName = "postcss-discard-overridden";
-      version = "6.0.2";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz";
-        sha512 = "j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==";
+        url = "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-7.0.0.tgz";
+        sha512 = "GmNAzx88u3k2+sBTZrJSDauR0ccpE24omTQCVmaTTZFz1du6AasspjaUPMJ2ud4RslZpoFKyf+6MSPETLojc6w==";
       };
     };
     "postcss-html-0.36.0" = {
@@ -45063,13 +44469,13 @@ let
         sha512 = "bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==";
       };
     };
-    "postcss-load-config-5.0.3" = {
+    "postcss-load-config-5.1.0" = {
       name = "postcss-load-config";
       packageName = "postcss-load-config";
-      version = "5.0.3";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.0.3.tgz";
-        sha512 = "90pBBI5apUVruIEdCxZic93Wm+i9fTrp7TXbgdUCH+/L+2WnfpITSpq5dFU/IPvbv7aNiMlQISpUkAm3fEcvgQ==";
+        url = "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.1.0.tgz";
+        sha512 = "G5AJ+IX0aD0dygOE0yFZQ/huFFMSNneyfp0e3/bT05a8OfPC5FUoZRPfGijUdGOJNMewJiwzcHJXFafFzeKFVA==";
       };
     };
     "postcss-media-query-parser-0.2.3" = {
@@ -45090,13 +44496,13 @@ let
         sha512 = "YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==";
       };
     };
-    "postcss-merge-longhand-6.0.4" = {
+    "postcss-merge-longhand-7.0.0" = {
       name = "postcss-merge-longhand";
       packageName = "postcss-merge-longhand";
-      version = "6.0.4";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.4.tgz";
-        sha512 = "vAfWGcxUUGlFiPM3nDMZA+/Yo9sbpc3JNkcYZez8FfJDv41Dh7tAgA3QGVTocaHCZZL6aXPXPOaBMJsjujodsA==";
+        url = "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-7.0.0.tgz";
+        sha512 = "0X8I4/9+G03X5/5NnrfopG/YEln2XU8heDh7YqBaiq2SeaKIG3n66ShZPjIolmVuLBQ0BEm3yS8o1mlCLHdW7A==";
       };
     };
     "postcss-merge-rules-5.1.4" = {
@@ -45108,13 +44514,13 @@ let
         sha512 = "0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==";
       };
     };
-    "postcss-merge-rules-6.1.0" = {
+    "postcss-merge-rules-7.0.0" = {
       name = "postcss-merge-rules";
       packageName = "postcss-merge-rules";
-      version = "6.1.0";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.0.tgz";
-        sha512 = "lER+W3Gr6XOvxOYk1Vi/6UsAgKMg6MDBthmvbNqi2XxAk/r9XfhdYZSigfWjuWWn3zYw2wLelvtM8XuAEFqRkA==";
+        url = "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-7.0.0.tgz";
+        sha512 = "Zty3VlOsD6VSjBMu6PiHCVpLegtBT/qtZRVBcSeyEZ6q1iU5qTYT0WtEoLRV+YubZZguS5/ycfP+NRiKfjv6aw==";
       };
     };
     "postcss-minify-font-values-5.1.0" = {
@@ -45126,13 +44532,13 @@ let
         sha512 = "el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==";
       };
     };
-    "postcss-minify-font-values-6.0.3" = {
+    "postcss-minify-font-values-7.0.0" = {
       name = "postcss-minify-font-values";
       packageName = "postcss-minify-font-values";
-      version = "6.0.3";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.3.tgz";
-        sha512 = "SmAeTA1We5rMnN3F8X9YBNo9bj9xB4KyDHnaNJnBfQIPi+60fNiR9OTRnIaMqkYzAQX0vObIw4Pn0vuKEOettg==";
+        url = "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-7.0.0.tgz";
+        sha512 = "2ckkZtgT0zG8SMc5aoNwtm5234eUx1GGFJKf2b1bSp8UflqaeFzR50lid4PfqVI9NtGqJ2J4Y7fwvnP/u1cQog==";
       };
     };
     "postcss-minify-gradients-5.1.1" = {
@@ -45144,13 +44550,13 @@ let
         sha512 = "VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==";
       };
     };
-    "postcss-minify-gradients-6.0.3" = {
+    "postcss-minify-gradients-7.0.0" = {
       name = "postcss-minify-gradients";
       packageName = "postcss-minify-gradients";
-      version = "6.0.3";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz";
-        sha512 = "4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==";
+        url = "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-7.0.0.tgz";
+        sha512 = "pdUIIdj/C93ryCHew0UgBnL2DtUS3hfFa5XtERrs4x+hmpMYGhbzo6l/Ir5de41O0GaKVpK1ZbDNXSY6GkXvtg==";
       };
     };
     "postcss-minify-params-5.1.4" = {
@@ -45162,13 +44568,13 @@ let
         sha512 = "+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==";
       };
     };
-    "postcss-minify-params-6.1.0" = {
+    "postcss-minify-params-7.0.0" = {
       name = "postcss-minify-params";
       packageName = "postcss-minify-params";
-      version = "6.1.0";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz";
-        sha512 = "bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==";
+        url = "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-7.0.0.tgz";
+        sha512 = "XOJAuX8Q/9GT1sGxlUvaFEe2H9n50bniLZblXXsAT/BwSfFYvzSZeFG7uupwc0KbKpTnflnQ7aMwGzX6JUWliQ==";
       };
     };
     "postcss-minify-selectors-5.2.1" = {
@@ -45180,40 +44586,40 @@ let
         sha512 = "nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==";
       };
     };
-    "postcss-minify-selectors-6.0.3" = {
+    "postcss-minify-selectors-7.0.0" = {
       name = "postcss-minify-selectors";
       packageName = "postcss-minify-selectors";
-      version = "6.0.3";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.3.tgz";
-        sha512 = "IcV7ZQJcaXyhx4UBpWZMsinGs2NmiUC60rJSkyvjPCPqhNjVGsrJUM+QhAtCaikZ0w0/AbZuH4wVvF/YMuMhvA==";
+        url = "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-7.0.0.tgz";
+        sha512 = "f00CExZhD6lNw2vTZbcnmfxVgaVKzUw6IRsIFX3JTT8GdsoABc1WnhhGwL1i8YPJ3sSWw39fv7XPtvLb+3Uitw==";
       };
     };
-    "postcss-modules-extract-imports-3.0.0" = {
+    "postcss-modules-extract-imports-3.1.0" = {
       name = "postcss-modules-extract-imports";
       packageName = "postcss-modules-extract-imports";
-      version = "3.0.0";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz";
-        sha512 = "bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==";
+        url = "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz";
+        sha512 = "k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==";
       };
     };
-    "postcss-modules-local-by-default-4.0.4" = {
+    "postcss-modules-local-by-default-4.0.5" = {
       name = "postcss-modules-local-by-default";
       packageName = "postcss-modules-local-by-default";
-      version = "4.0.4";
+      version = "4.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.4.tgz";
-        sha512 = "L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==";
+        url = "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz";
+        sha512 = "6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==";
       };
     };
-    "postcss-modules-scope-3.1.1" = {
+    "postcss-modules-scope-3.2.0" = {
       name = "postcss-modules-scope";
       packageName = "postcss-modules-scope";
-      version = "3.1.1";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.1.1.tgz";
-        sha512 = "uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==";
+        url = "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz";
+        sha512 = "oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==";
       };
     };
     "postcss-modules-values-4.0.0" = {
@@ -45243,13 +44649,13 @@ let
         sha512 = "mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==";
       };
     };
-    "postcss-normalize-charset-6.0.2" = {
+    "postcss-normalize-charset-7.0.0" = {
       name = "postcss-normalize-charset";
       packageName = "postcss-normalize-charset";
-      version = "6.0.2";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz";
-        sha512 = "a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==";
+        url = "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-7.0.0.tgz";
+        sha512 = "ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ==";
       };
     };
     "postcss-normalize-display-values-5.1.0" = {
@@ -45261,13 +44667,13 @@ let
         sha512 = "WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==";
       };
     };
-    "postcss-normalize-display-values-6.0.2" = {
+    "postcss-normalize-display-values-7.0.0" = {
       name = "postcss-normalize-display-values";
       packageName = "postcss-normalize-display-values";
-      version = "6.0.2";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz";
-        sha512 = "8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==";
+        url = "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.0.tgz";
+        sha512 = "lnFZzNPeDf5uGMPYgGOw7v0BfB45+irSRz9gHQStdkkhiM0gTfvWkWB5BMxpn0OqgOQuZG/mRlZyJxp0EImr2Q==";
       };
     };
     "postcss-normalize-positions-5.1.1" = {
@@ -45279,13 +44685,13 @@ let
         sha512 = "6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==";
       };
     };
-    "postcss-normalize-positions-6.0.2" = {
+    "postcss-normalize-positions-7.0.0" = {
       name = "postcss-normalize-positions";
       packageName = "postcss-normalize-positions";
-      version = "6.0.2";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz";
-        sha512 = "/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==";
+        url = "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-7.0.0.tgz";
+        sha512 = "I0yt8wX529UKIGs2y/9Ybs2CelSvItfmvg/DBIjTnoUSrPxSV7Z0yZ8ShSVtKNaV/wAY+m7bgtyVQLhB00A1NQ==";
       };
     };
     "postcss-normalize-repeat-style-5.1.1" = {
@@ -45297,13 +44703,13 @@ let
         sha512 = "mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==";
       };
     };
-    "postcss-normalize-repeat-style-6.0.2" = {
+    "postcss-normalize-repeat-style-7.0.0" = {
       name = "postcss-normalize-repeat-style";
       packageName = "postcss-normalize-repeat-style";
-      version = "6.0.2";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz";
-        sha512 = "YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==";
+        url = "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.0.tgz";
+        sha512 = "o3uSGYH+2q30ieM3ppu9GTjSXIzOrRdCUn8UOMGNw7Af61bmurHTWI87hRybrP6xDHvOe5WlAj3XzN6vEO8jLw==";
       };
     };
     "postcss-normalize-string-5.1.0" = {
@@ -45315,13 +44721,13 @@ let
         sha512 = "oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==";
       };
     };
-    "postcss-normalize-string-6.0.2" = {
+    "postcss-normalize-string-7.0.0" = {
       name = "postcss-normalize-string";
       packageName = "postcss-normalize-string";
-      version = "6.0.2";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz";
-        sha512 = "vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==";
+        url = "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-7.0.0.tgz";
+        sha512 = "w/qzL212DFVOpMy3UGyxrND+Kb0fvCiBBujiaONIihq7VvtC7bswjWgKQU/w4VcRyDD8gpfqUiBQ4DUOwEJ6Qg==";
       };
     };
     "postcss-normalize-timing-functions-5.1.0" = {
@@ -45333,13 +44739,13 @@ let
         sha512 = "DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==";
       };
     };
-    "postcss-normalize-timing-functions-6.0.2" = {
+    "postcss-normalize-timing-functions-7.0.0" = {
       name = "postcss-normalize-timing-functions";
       packageName = "postcss-normalize-timing-functions";
-      version = "6.0.2";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz";
-        sha512 = "a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==";
+        url = "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.0.tgz";
+        sha512 = "tNgw3YV0LYoRwg43N3lTe3AEWZ66W7Dh7lVEpJbHoKOuHc1sLrzMLMFjP8SNULHaykzsonUEDbKedv8C+7ej6g==";
       };
     };
     "postcss-normalize-unicode-5.1.1" = {
@@ -45351,13 +44757,13 @@ let
         sha512 = "qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==";
       };
     };
-    "postcss-normalize-unicode-6.1.0" = {
+    "postcss-normalize-unicode-7.0.0" = {
       name = "postcss-normalize-unicode";
       packageName = "postcss-normalize-unicode";
-      version = "6.1.0";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz";
-        sha512 = "QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==";
+        url = "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.0.tgz";
+        sha512 = "OnKV52/VFFDAim4n0pdI+JAhsolLBdnCKxE6VV5lW5Q/JeVGFN8UM8ur6/A3EAMLsT1ZRm3fDHh/rBoBQpqi2w==";
       };
     };
     "postcss-normalize-url-5.1.0" = {
@@ -45369,13 +44775,13 @@ let
         sha512 = "5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==";
       };
     };
-    "postcss-normalize-url-6.0.2" = {
+    "postcss-normalize-url-7.0.0" = {
       name = "postcss-normalize-url";
       packageName = "postcss-normalize-url";
-      version = "6.0.2";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz";
-        sha512 = "kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==";
+        url = "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-7.0.0.tgz";
+        sha512 = "+d7+PpE+jyPX1hDQZYG+NaFD+Nd2ris6r8fPTBAjE8z/U41n/bib3vze8x7rKs5H1uEw5ppe9IojewouHk0klQ==";
       };
     };
     "postcss-normalize-whitespace-5.1.1" = {
@@ -45387,13 +44793,13 @@ let
         sha512 = "83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==";
       };
     };
-    "postcss-normalize-whitespace-6.0.2" = {
+    "postcss-normalize-whitespace-7.0.0" = {
       name = "postcss-normalize-whitespace";
       packageName = "postcss-normalize-whitespace";
-      version = "6.0.2";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz";
-        sha512 = "sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==";
+        url = "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.0.tgz";
+        sha512 = "37/toN4wwZErqohedXYqWgvcHUGlT8O/m2jVkAfAe9Bd4MzRqlBmXrJRePH0e9Wgnz2X7KymTgTOaaFizQe3AQ==";
       };
     };
     "postcss-ordered-values-5.1.3" = {
@@ -45405,13 +44811,13 @@ let
         sha512 = "9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==";
       };
     };
-    "postcss-ordered-values-6.0.2" = {
+    "postcss-ordered-values-7.0.0" = {
       name = "postcss-ordered-values";
       packageName = "postcss-ordered-values";
-      version = "6.0.2";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz";
-        sha512 = "VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==";
+        url = "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-7.0.0.tgz";
+        sha512 = "KROvC63A8UQW1eYDljQe1dtwc1E/M+mMwDT6z7khV/weHYLWTghaLRLunU7x1xw85lWFwVZOAGakxekYvKV+0w==";
       };
     };
     "postcss-reduce-initial-5.1.2" = {
@@ -45423,13 +44829,13 @@ let
         sha512 = "dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==";
       };
     };
-    "postcss-reduce-initial-6.1.0" = {
+    "postcss-reduce-initial-7.0.0" = {
       name = "postcss-reduce-initial";
       packageName = "postcss-reduce-initial";
-      version = "6.1.0";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz";
-        sha512 = "RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==";
+        url = "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-7.0.0.tgz";
+        sha512 = "iqGgmBxY9LrblZ0BKLjmrA1mC/cf9A/wYCCqSmD6tMi+xAyVl0+DfixZIHSVDMbCPRPjNmVF0DFGth/IDGelFQ==";
       };
     };
     "postcss-reduce-transforms-5.1.0" = {
@@ -45441,13 +44847,13 @@ let
         sha512 = "2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==";
       };
     };
-    "postcss-reduce-transforms-6.0.2" = {
+    "postcss-reduce-transforms-7.0.0" = {
       name = "postcss-reduce-transforms";
       packageName = "postcss-reduce-transforms";
-      version = "6.0.2";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz";
-        sha512 = "sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==";
+        url = "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.0.tgz";
+        sha512 = "pnt1HKKZ07/idH8cpATX/ujMbtOGhUfE+m8gbqwJE05aTaNw8gbo34a2e3if0xc0dlu75sUOiqvwCGY3fzOHew==";
       };
     };
     "postcss-reporter-7.1.0" = {
@@ -45504,22 +44910,22 @@ let
         sha512 = "IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==";
       };
     };
-    "postcss-selector-parser-6.0.16" = {
+    "postcss-selector-parser-6.0.2" = {
       name = "postcss-selector-parser";
       packageName = "postcss-selector-parser";
-      version = "6.0.16";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz";
-        sha512 = "A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==";
+        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz";
+        sha512 = "36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==";
       };
     };
-    "postcss-selector-parser-6.0.2" = {
+    "postcss-selector-parser-6.1.0" = {
       name = "postcss-selector-parser";
       packageName = "postcss-selector-parser";
-      version = "6.0.2";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz";
-        sha512 = "36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==";
+        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz";
+        sha512 = "UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==";
       };
     };
     "postcss-svgo-5.1.0" = {
@@ -45531,13 +44937,13 @@ let
         sha512 = "D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==";
       };
     };
-    "postcss-svgo-6.0.3" = {
+    "postcss-svgo-7.0.0" = {
       name = "postcss-svgo";
       packageName = "postcss-svgo";
-      version = "6.0.3";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz";
-        sha512 = "dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==";
+        url = "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-7.0.0.tgz";
+        sha512 = "Xj5DRdvA97yRy3wjbCH2NKXtDUwEnph6EHr5ZXszsBVKCNrKXYBjzAXqav7/Afz5WwJ/1peZoTguCEJIg7ytmA==";
       };
     };
     "postcss-syntax-0.36.2" = {
@@ -45558,13 +44964,13 @@ let
         sha512 = "5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==";
       };
     };
-    "postcss-unique-selectors-6.0.3" = {
+    "postcss-unique-selectors-7.0.0" = {
       name = "postcss-unique-selectors";
       packageName = "postcss-unique-selectors";
-      version = "6.0.3";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.3.tgz";
-        sha512 = "NFXbYr8qdmCr/AFceaEfdcsKGCvWTeGO6QVC9h2GvtWgj0/0dklKQcaMMVzs6tr8bY+ase8hOtHW8OBTTRvS8A==";
+        url = "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-7.0.0.tgz";
+        sha512 = "NYFqcft7vVQMZlQPsMdMPy+qU/zDpy95Malpw4GeA9ZZjM6dVXDshXtDmLc0m4WCD6XeZCJqjTfPT1USsdt+rA==";
       };
     };
     "postcss-value-parser-4.2.0" = {
@@ -45738,13 +45144,13 @@ let
         sha512 = "L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==";
       };
     };
-    "prettier-3.2.5" = {
+    "prettier-3.3.0" = {
       name = "prettier";
       packageName = "prettier";
-      version = "3.2.5";
+      version = "3.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz";
-        sha512 = "3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==";
+        url = "https://registry.npmjs.org/prettier/-/prettier-3.3.0.tgz";
+        sha512 = "J9odKxERhCQ10OC2yb93583f6UnYutOeiV5i0zEDS7UGTdUt0u+y8erxl3lBKvwo/JHyyoEdXjwp4dke9oyZ/g==";
       };
     };
     "prettier-bytes-1.0.4" = {
@@ -45756,22 +45162,13 @@ let
         sha512 = "dLbWOa4xBn+qeWeIF60qRoB6Pk2jX5P3DIVgOQyMyvBpu931Q+8dXz8X0snJiFkQdohDDLnZQECjzsAj75hgZQ==";
       };
     };
-    "prettier-plugin-astro-0.13.0" = {
+    "prettier-plugin-astro-0.14.0" = {
       name = "prettier-plugin-astro";
       packageName = "prettier-plugin-astro";
-      version = "0.13.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/prettier-plugin-astro/-/prettier-plugin-astro-0.13.0.tgz";
-        sha512 = "5HrJNnPmZqTUNoA97zn4gNQv9BgVhv+et03314WpQ9H9N8m2L9OSV798olwmG2YLXPl1iSstlJCR1zB3x5xG4g==";
-      };
-    };
-    "prettier-plugin-svelte-3.2.2" = {
-      name = "prettier-plugin-svelte";
-      packageName = "prettier-plugin-svelte";
-      version = "3.2.2";
+      version = "0.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.2.2.tgz";
-        sha512 = "ZzzE/wMuf48/1+Lf2Ffko0uDa6pyCfgHV6+uAhtg2U0AAXGrhCSW88vEJNAkAxW5qyrFY1y1zZ4J8TgHrjW++Q==";
+        url = "https://registry.npmjs.org/prettier-plugin-astro/-/prettier-plugin-astro-0.14.0.tgz";
+        sha512 = "7jRGJsexaRIyUzTk8uzXlP45cw6DQ5Ci4bTe0xCBCcuO1Fff8jJy9oI+kRCQKSdDFTSAArMSg8GpvzlKBtSaZA==";
       };
     };
     "pretty-bytes-5.6.0" = {
@@ -45918,6 +45315,15 @@ let
         sha512 = "++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==";
       };
     };
+    "proc-log-4.2.0" = {
+      name = "proc-log";
+      packageName = "proc-log";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz";
+        sha512 = "g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==";
+      };
+    };
     "process-0.11.10" = {
       name = "process";
       packageName = "process";
@@ -46116,13 +45522,13 @@ let
         sha512 = "NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==";
       };
     };
-    "promzard-1.0.0" = {
+    "promzard-1.0.2" = {
       name = "promzard";
       packageName = "promzard";
-      version = "1.0.0";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/promzard/-/promzard-1.0.0.tgz";
-        sha512 = "KQVDEubSUHGSt5xLakaToDFrSoZhStB8dXLzk2xvwR67gJktrHFvpR63oZgHyK19WKbHFLXJqCPXdVR3aBP8Ig==";
+        url = "https://registry.npmjs.org/promzard/-/promzard-1.0.2.tgz";
+        sha512 = "2FPputGL+mP3jJ3UZg/Dl9YOkovB7DX0oOr+ck5QbZ5MtORtds8k/BZdn+02peDLI8/YWbmzx34k5fA+fHvCVQ==";
       };
     };
     "prop-types-15.8.1" = {
@@ -46143,22 +45549,13 @@ let
         sha512 = "TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==";
       };
     };
-    "property-information-5.6.0" = {
-      name = "property-information";
-      packageName = "property-information";
-      version = "5.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz";
-        sha512 = "YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==";
-      };
-    };
-    "property-information-6.4.1" = {
+    "property-information-6.5.0" = {
       name = "property-information";
       packageName = "property-information";
-      version = "6.4.1";
+      version = "6.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/property-information/-/property-information-6.4.1.tgz";
-        sha512 = "OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==";
+        url = "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz";
+        sha512 = "PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==";
       };
     };
     "proto-list-1.2.4" = {
@@ -46170,15 +45567,6 @@ let
         sha512 = "vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==";
       };
     };
-    "protobufjs-6.11.4" = {
-      name = "protobufjs";
-      packageName = "protobufjs";
-      version = "6.11.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.4.tgz";
-        sha512 = "5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==";
-      };
-    };
     "protobufjs-7.2.6" = {
       name = "protobufjs";
       packageName = "protobufjs";
@@ -46314,13 +45702,13 @@ let
         sha512 = "zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==";
       };
     };
-    "pug-3.0.2" = {
+    "pug-3.0.3" = {
       name = "pug";
       packageName = "pug";
-      version = "3.0.2";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz";
-        sha512 = "bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==";
+        url = "https://registry.npmjs.org/pug/-/pug-3.0.3.tgz";
+        sha512 = "uBi6kmc9f3SZ3PXxqcHiUZLmIXgfgWooKWXcwSGwQd2Zi5Rb0bT14+8CJjJgI8AB+nndLaNgHGrcc6bPIB665g==";
       };
     };
     "pug-attrs-3.0.0" = {
@@ -46332,22 +45720,22 @@ let
         sha512 = "azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==";
       };
     };
-    "pug-code-gen-3.0.2" = {
+    "pug-code-gen-3.0.3" = {
       name = "pug-code-gen";
       packageName = "pug-code-gen";
-      version = "3.0.2";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz";
-        sha512 = "nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==";
+        url = "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.3.tgz";
+        sha512 = "cYQg0JW0w32Ux+XTeZnBEeuWrAY7/HNE6TWnhiHGnnRYlCgyAUPoyh9KzCMa9WhcJlJ1AtQqpEYHc+vbCzA+Aw==";
       };
     };
-    "pug-error-2.0.0" = {
+    "pug-error-2.1.0" = {
       name = "pug-error";
       packageName = "pug-error";
-      version = "2.0.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz";
-        sha512 = "sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==";
+        url = "https://registry.npmjs.org/pug-error/-/pug-error-2.1.0.tgz";
+        sha512 = "lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg==";
       };
     };
     "pug-filters-4.0.0" = {
@@ -46458,15 +45846,6 @@ let
         sha512 = "Gqkf1pfKMsowLBtWkhEJNxL5eU9EN1zs/bmWC/mKKODH3j6Xtxe4NH3873UeNzVCjDYWvi/BEXAmbviqRhm6pw==";
       };
     };
-    "pumpify-1.5.1" = {
-      name = "pumpify";
-      packageName = "pumpify";
-      version = "1.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz";
-        sha512 = "oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==";
-      };
-    };
     "punycode-1.3.2" = {
       name = "punycode";
       packageName = "punycode";
@@ -46494,6 +45873,15 @@ let
         sha512 = "vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==";
       };
     };
+    "punycode.js-2.3.1" = {
+      name = "punycode.js";
+      packageName = "punycode.js";
+      version = "2.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz";
+        sha512 = "uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==";
+      };
+    };
     "pupa-2.1.1" = {
       name = "pupa";
       packageName = "pupa";
@@ -46512,22 +45900,31 @@ let
         sha512 = "FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==";
       };
     };
-    "puppeteer-13.7.0" = {
+    "puppeteer-22.10.0" = {
       name = "puppeteer";
       packageName = "puppeteer";
-      version = "13.7.0";
+      version = "22.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/puppeteer/-/puppeteer-22.10.0.tgz";
+        sha512 = "ZOkZd6a6t0BdKcWb0wAYHWQqCfdlN1PPnXOmg/XNrbo6gJhYWFX4qCNb6ahSn8TpAqBqLCoD4Q010F7GwOM7mA==";
+      };
+    };
+    "puppeteer-core-22.10.0" = {
+      name = "puppeteer-core";
+      packageName = "puppeteer-core";
+      version = "22.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/puppeteer/-/puppeteer-13.7.0.tgz";
-        sha512 = "U1uufzBjz3+PkpCxFrWzh4OrMIdIb2ztzCu0YEPfRHjHswcSwHZswnK+WdsOQJsRV8WeTg3jLhJR4D867+fjsA==";
+        url = "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-22.10.0.tgz";
+        sha512 = "I54J4Vy4I07UHsgB1QSmuFoF7KNQjJWcvFBPhtY+ezMdBfwgGDr8dzYrJa11aPgP9kxIUHjhktcMmmfJkOAtTw==";
       };
     };
-    "purgecss-5.0.0" = {
+    "purgecss-6.0.0" = {
       name = "purgecss";
       packageName = "purgecss";
-      version = "5.0.0";
+      version = "6.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/purgecss/-/purgecss-5.0.0.tgz";
-        sha512 = "RAnuxrGuVyLLTr8uMbKaxDRGWMgK5CCYDfRyUNNcaz5P3kGgD2b7ymQGYEyo2ST7Tl/ScwFgf5l3slKMxHSbrw==";
+        url = "https://registry.npmjs.org/purgecss/-/purgecss-6.0.0.tgz";
+        sha512 = "s3EBxg5RSWmpqd0KGzNqPiaBbWDz1/As+2MzoYVGMqgDqRTLBhJW6sywfTBek7OwNfoS/6pS0xdtvChNhFj2cw==";
       };
     };
     "pvtsutils-1.3.5" = {
@@ -46548,13 +45945,13 @@ let
         sha512 = "pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==";
       };
     };
-    "pyright-1.1.354" = {
+    "pyright-1.1.365" = {
       name = "pyright";
       packageName = "pyright";
-      version = "1.1.354";
+      version = "1.1.365";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pyright/-/pyright-1.1.354.tgz";
-        sha512 = "lUojJFZqg4St+4E2WrZbqODeqLvhuRJXRDros59bJcK485hXJLlCb3DzTd/9KYfaisf2TqvDV79qhc0grwyf/w==";
+        url = "https://registry.npmjs.org/pyright/-/pyright-1.1.365.tgz";
+        sha512 = "A5RHXB782m2wCeazfrPGSvFUd1WAjpHrD83M/Umc/tcAhyC5pzhrh23US1yv9DH/GMilQeWdJ4W8pGxmgej4DQ==";
       };
     };
     "q-1.5.1" = {
@@ -46566,15 +45963,6 @@ let
         sha512 = "kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==";
       };
     };
-    "qap-3.3.1" = {
-      name = "qap";
-      packageName = "qap";
-      version = "3.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/qap/-/qap-3.3.1.tgz";
-        sha512 = "U0MV9LRz4u19xaK4gssnwyc7XWTnFdmDGrgG9hvV6nchKeu3XeITTclugWKT9rLiLK2GvN3utSkKY90+1tEHkw==";
-      };
-    };
     "qrcode-terminal-0.11.0" = {
       name = "qrcode-terminal";
       packageName = "qrcode-terminal";
@@ -46638,13 +46026,13 @@ let
         sha512 = "MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==";
       };
     };
-    "qs-6.12.0" = {
+    "qs-6.12.1" = {
       name = "qs";
       packageName = "qs";
-      version = "6.12.0";
+      version = "6.12.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/qs/-/qs-6.12.0.tgz";
-        sha512 = "trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==";
+        url = "https://registry.npmjs.org/qs/-/qs-6.12.1.tgz";
+        sha512 = "zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==";
       };
     };
     "qs-6.5.2" = {
@@ -46872,6 +46260,15 @@ let
         sha512 = "RGU0xmDqdOyEiynob1KYSeh8+9c9Td1MJ74GT1viMEYAn8SJ9oBtWCXLsYZukCF46yududHOdM449uRYbzBrZQ==";
       };
     };
+    "random-access-file-4.0.7" = {
+      name = "random-access-file";
+      packageName = "random-access-file";
+      version = "4.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/random-access-file/-/random-access-file-4.0.7.tgz";
+        sha512 = "SOLseGmpbJRLLrVEDOJY3rqX1AwUmQnN0IAMjRLvld3fexaL8hYgti6VFuyT72bDMWSwVyvQROHh6FcE+PefKQ==";
+      };
+    };
     "random-access-storage-1.4.3" = {
       name = "random-access-storage";
       packageName = "random-access-storage";
@@ -46881,6 +46278,15 @@ let
         sha512 = "D5e2iIC5dNENWyBxsjhEnNOMCwZZ64TARK6dyMN+3g4OTC4MJxyjh9hKLjTGoNhDOPrgjI+YlFEHFnrp/cSnzQ==";
       };
     };
+    "random-access-storage-3.0.2" = {
+      name = "random-access-storage";
+      packageName = "random-access-storage";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/random-access-storage/-/random-access-storage-3.0.2.tgz";
+        sha512 = "Es9maUyWdJXWKckKy9s1+vT+DEgAt+PBb9lxPaake/0EDUsHehloKGv9v1zimS2V3gpFAcQXubvc1Rgci2sDPQ==";
+      };
+    };
     "random-bytes-1.0.0" = {
       name = "random-bytes";
       packageName = "random-bytes";
@@ -46944,15 +46350,6 @@ let
         sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==";
       };
     };
-    "range-slice-stream-2.0.0" = {
-      name = "range-slice-stream";
-      packageName = "range-slice-stream";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/range-slice-stream/-/range-slice-stream-2.0.0.tgz";
-        sha512 = "PPYLwZ63lXi6Tv2EZ8w3M4FzC0rVqvxivaOVS8pXSp5FMIHFnvi4MWHL3UdFLhwSy50aNtJsgjY0mBC6oFL26Q==";
-      };
-    };
     "rate-limiter-flexible-2.4.2" = {
       name = "rate-limiter-flexible";
       packageName = "rate-limiter-flexible";
@@ -47052,15 +46449,6 @@ let
         sha512 = "xdDTNV90z5x5u25Oc871Xnvu7yAr4tV7Eluh0VSvrhUkry39q1k+zkz7xroqHbRq+8PiazySHJPArqifUvz9VA==";
       };
     };
-    "rcedit-4.0.1" = {
-      name = "rcedit";
-      packageName = "rcedit";
-      version = "4.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/rcedit/-/rcedit-4.0.1.tgz";
-        sha512 = "bZdaQi34krFWhrDn+O53ccBDw0MkAT2Vhu75SqhtvhQu4OPyFM4RoVheyYiVQYdjhUi6EJMVWQ0tR6bCIYVkUg==";
-      };
-    };
     "re-emitter-1.1.4" = {
       name = "re-emitter";
       packageName = "re-emitter";
@@ -47106,6 +46494,15 @@ let
         sha512 = "/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==";
       };
     };
+    "react-18.3.1" = {
+      name = "react";
+      packageName = "react";
+      version = "18.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/react/-/react-18.3.1.tgz";
+        sha512 = "wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==";
+      };
+    };
     "react-devtools-core-4.28.5" = {
       name = "react-devtools-core";
       packageName = "react-devtools-core";
@@ -47151,13 +46548,13 @@ let
         sha512 = "w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==";
       };
     };
-    "react-is-18.2.0" = {
+    "react-is-18.3.1" = {
       name = "react-is";
       packageName = "react-is";
-      version = "18.2.0";
+      version = "18.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz";
-        sha512 = "xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==";
+        url = "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz";
+        sha512 = "/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==";
       };
     };
     "react-reconciler-0.24.0" = {
@@ -47178,22 +46575,22 @@ let
         sha512 = "nK6kgY28HwrMNwDnMui3dvm3rCFjZrcGiuwLc5COUipBK5hWHLOxMJhSnSomirqWwjPBJKV1QcbkI0VJr7Gl1Q==";
       };
     };
-    "react-reconciler-0.29.0" = {
+    "react-reconciler-0.29.2" = {
       name = "react-reconciler";
       packageName = "react-reconciler";
-      version = "0.29.0";
+      version = "0.29.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.29.0.tgz";
-        sha512 = "wa0fGj7Zht1EYMRhKWwoo1H9GApxYLBuhoAuXN0TlltESAjDssB+Apf0T/DngVqaMyPypDmabL37vw/2aRM98Q==";
+        url = "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.29.2.tgz";
+        sha512 = "zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg==";
       };
     };
-    "react-refresh-0.14.0" = {
+    "react-refresh-0.14.2" = {
       name = "react-refresh";
       packageName = "react-refresh";
-      version = "0.14.0";
+      version = "0.14.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz";
-        sha512 = "wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==";
+        url = "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz";
+        sha512 = "jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==";
       };
     };
     "react-refresh-0.4.3" = {
@@ -47250,6 +46647,15 @@ let
         sha512 = "bvxi1QLJHcaywCAEsAk4DG3nVoqiY2Csps3qzWalhj5hFqRn1d/OixkFXtLO1PrgHUcAP0FNaSY/5GYNfENFFQ==";
       };
     };
+    "read-3.0.1" = {
+      name = "read";
+      packageName = "read";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read/-/read-3.0.1.tgz";
+        sha512 = "SLBrDU/Srs/9EoWhU5GdbAoxG1GzpQHo/6qiGItaoLJ1thmYpcNIM1qISEUvyHBzfGlWIyd6p2DNi1oV1VmAuw==";
+      };
+    };
     "read-all-stream-3.1.0" = {
       name = "read-all-stream";
       packageName = "read-all-stream";
@@ -47340,13 +46746,13 @@ let
         sha512 = "AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==";
       };
     };
-    "read-package-json-7.0.0" = {
+    "read-package-json-7.0.1" = {
       name = "read-package-json";
       packageName = "read-package-json";
-      version = "7.0.0";
+      version = "7.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.0.tgz";
-        sha512 = "uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==";
+        url = "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.1.tgz";
+        sha512 = "8PcDiZ8DXUjLf687Ol4BR8Bpm2umR7vhoZOzNRt+uxD9GpBh/K+CAAALVIiYFknmvlmyg7hM7BSNUXPaCCqd0Q==";
       };
     };
     "read-package-json-fast-3.0.2" = {
@@ -47457,15 +46863,6 @@ let
         sha512 = "WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==";
       };
     };
-    "read-pkg-up-10.1.0" = {
-      name = "read-pkg-up";
-      packageName = "read-pkg-up";
-      version = "10.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-10.1.0.tgz";
-        sha512 = "aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==";
-      };
-    };
     "read-pkg-up-2.0.0" = {
       name = "read-pkg-up";
       packageName = "read-pkg-up";
@@ -47754,13 +47151,13 @@ let
         sha512 = "FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==";
       };
     };
-    "redis-4.2.0" = {
+    "redis-4.6.14" = {
       name = "redis";
       packageName = "redis";
-      version = "4.2.0";
+      version = "4.6.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/redis/-/redis-4.2.0.tgz";
-        sha512 = "bCR0gKVhIXFg8zCQjXEANzgI01DDixtPZgIUZHBCmwqixnu+MK3Tb2yqGjh+HCLASQVVgApiwhNkv+FoedZOGQ==";
+        url = "https://registry.npmjs.org/redis/-/redis-4.6.14.tgz";
+        sha512 = "GrNg/e33HtsQwNXL7kJT+iNFPSwE1IPmd7wzV3j4f2z0EYxZfZE7FVTmUysgAtqQQtg5NXF5SNLR9OdO/UHOfw==";
       };
     };
     "reduce-flatten-1.0.1" = {
@@ -47997,15 +47394,6 @@ let
         sha512 = "dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==";
       };
     };
-    "rehype-parse-6.0.2" = {
-      name = "rehype-parse";
-      packageName = "rehype-parse";
-      version = "6.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/rehype-parse/-/rehype-parse-6.0.2.tgz";
-        sha512 = "0S3CpvpTAgGmnz8kiCyFLGuW5yA4OQhyNTm/nwPopZ7+PI11WnGl1TTWTGv/2hPEe/g2jRLlhVVSsoDH8waRug==";
-      };
-    };
     "rehype-parse-8.0.5" = {
       name = "rehype-parse";
       packageName = "rehype-parse";
@@ -48078,24 +47466,6 @@ let
         sha512 = "Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==";
       };
     };
-    "remark-footnotes-3.0.0" = {
-      name = "remark-footnotes";
-      packageName = "remark-footnotes";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-3.0.0.tgz";
-        sha512 = "ZssAvH9FjGYlJ/PBVKdSmfyPc3Cz4rTWgZLI4iE/SX8Nt5l3o3oEjv3wwG5VD7xOjktzdwp5coac+kJV9l4jgg==";
-      };
-    };
-    "remark-frontmatter-3.0.0" = {
-      name = "remark-frontmatter";
-      packageName = "remark-frontmatter";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-3.0.0.tgz";
-        sha512 = "mSuDd3svCHs+2PyO29h7iijIZx4plX0fheacJcAoYAASfgzgVIcXGYSq9GFyYocFLftQs8IOmmkgtOovs6d4oA==";
-      };
-    };
     "remark-frontmatter-4.0.1" = {
       name = "remark-frontmatter";
       packageName = "remark-frontmatter";
@@ -48105,15 +47475,6 @@ let
         sha512 = "38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==";
       };
     };
-    "remark-gfm-1.0.0" = {
-      name = "remark-gfm";
-      packageName = "remark-gfm";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/remark-gfm/-/remark-gfm-1.0.0.tgz";
-        sha512 = "KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA==";
-      };
-    };
     "remark-gfm-3.0.1" = {
       name = "remark-gfm";
       packageName = "remark-gfm";
@@ -48627,24 +47988,6 @@ let
         sha512 = "mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==";
       };
     };
-    "remove-bom-buffer-3.0.0" = {
-      name = "remove-bom-buffer";
-      packageName = "remove-bom-buffer";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz";
-        sha512 = "8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==";
-      };
-    };
-    "remove-bom-stream-1.2.0" = {
-      name = "remove-bom-stream";
-      packageName = "remove-bom-stream";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz";
-        sha512 = "wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==";
-      };
-    };
     "remove-trailing-separator-1.1.0" = {
       name = "remove-trailing-separator";
       packageName = "remove-trailing-separator";
@@ -48663,15 +48006,6 @@ let
         sha512 = "o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA==";
       };
     };
-    "render-media-4.1.0" = {
-      name = "render-media";
-      packageName = "render-media";
-      version = "4.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/render-media/-/render-media-4.1.0.tgz";
-        sha512 = "F5BMWDmgATEoyPCtKjmGNTGN1ghoZlfRQ3MJh8dS/MrvIUIxupiof/Y9uahChipXcqQ57twVbgMmyQmuO1vokw==";
-      };
-    };
     "renderkid-2.0.7" = {
       name = "renderkid";
       packageName = "renderkid";
@@ -48735,22 +48069,22 @@ let
         sha512 = "AFBWBy9EVRTa/LhEcG8QDP3FvpwZqmvN2QFDuJswFeaVhWnZMp8q3E6Zd90SR04PlIwfGdyVjNyLPyen/ek5CQ==";
       };
     };
-    "replace-ext-1.0.1" = {
+    "replace-ext-2.0.0" = {
       name = "replace-ext";
       packageName = "replace-ext";
-      version = "1.0.1";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz";
-        sha512 = "yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==";
+        url = "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz";
+        sha512 = "UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==";
       };
     };
-    "replace-homedir-1.0.0" = {
+    "replace-homedir-2.0.0" = {
       name = "replace-homedir";
       packageName = "replace-homedir";
-      version = "1.0.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz";
-        sha512 = "CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg==";
+        url = "https://registry.npmjs.org/replace-homedir/-/replace-homedir-2.0.0.tgz";
+        sha512 = "bgEuQQ/BHW0XkkJtawzrfzHFSN70f/3cNOiHa2QsYxqrjaC30X1k74FJ6xswVBP0sr0SpGIdVFuPwfrYziVeyw==";
       };
     };
     "request-2.88.0" = {
@@ -48888,13 +48222,13 @@ let
         sha512 = "Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==";
       };
     };
-    "require-in-the-middle-7.2.1" = {
+    "require-in-the-middle-7.3.0" = {
       name = "require-in-the-middle";
       packageName = "require-in-the-middle";
-      version = "7.2.1";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.2.1.tgz";
-        sha512 = "u5XngygsJ+XV2dBV/Pl4SrcNpUXQfmYmXtuFeHDXfzk4i4NnGnret6xKWkkJHjMHS/16yMV9pEAlAunqmjllkA==";
+        url = "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.3.0.tgz";
+        sha512 = "nQFEv9gRw6SJAwWD2LrL0NmQvAcO7FBwJbwmr2ttPAacfy0xuiOjE5zt+zM4xDyuyvUaxBi/9gb2SoCyNEVJcw==";
       };
     };
     "require-main-filename-1.0.1" = {
@@ -48969,6 +48303,15 @@ let
         sha512 = "JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==";
       };
     };
+    "resedit-2.0.2" = {
+      name = "resedit";
+      packageName = "resedit";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resedit/-/resedit-2.0.2.tgz";
+        sha512 = "UKTnq602iVe+W5SyRAQx/WdWMnlDiONfXBLFg/ur4QE4EQQ8eP7Jgm5mNXdK12kKawk1vvXPja2iXKqZiGDW6Q==";
+      };
+    };
     "reselect-4.1.8" = {
       name = "reselect";
       packageName = "reselect";
@@ -49059,15 +48402,6 @@ let
         sha512 = "qpFcKaXsq8+oRoLilkwyc7zHGF5i9Q2/25NIgLQQ/+VVv9rU4qvr6nXVAw1DsnXJyQkZsR4Ytfbtg5ehfcUssQ==";
       };
     };
-    "resolve-from-3.0.0" = {
-      name = "resolve-from";
-      packageName = "resolve-from";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz";
-        sha512 = "GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==";
-      };
-    };
     "resolve-from-4.0.0" = {
       name = "resolve-from";
       packageName = "resolve-from";
@@ -49095,13 +48429,13 @@ let
         sha512 = "zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==";
       };
     };
-    "resolve-options-1.1.0" = {
+    "resolve-options-2.0.0" = {
       name = "resolve-options";
       packageName = "resolve-options";
-      version = "1.1.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz";
-        sha512 = "NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==";
+        url = "https://registry.npmjs.org/resolve-options/-/resolve-options-2.0.0.tgz";
+        sha512 = "/FopbmmFOQCfsCx77BRFdKOniglTiHumLgwvd6IDPihy1GKkadZbgQJBcTb2lMzSR1pndzd96b1nZrreZ7+9/A==";
       };
     };
     "resolve-package-1.0.1" = {
@@ -49113,6 +48447,15 @@ let
         sha512 = "rzB7NnQpOkPHBWFPP3prUMqOP6yg3HkRGgcvR+lDyvyHoY3fZLFLYDkPXh78SPVBAE6VTCk/V+j8we4djg6o4g==";
       };
     };
+    "resolve-pkg-maps-1.0.0" = {
+      name = "resolve-pkg-maps";
+      packageName = "resolve-pkg-maps";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz";
+        sha512 = "seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==";
+      };
+    };
     "resolve-url-0.2.1" = {
       name = "resolve-url";
       packageName = "resolve-url";
@@ -49392,13 +48735,13 @@ let
         sha512 = "Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==";
       };
     };
-    "rimraf-5.0.5" = {
+    "rimraf-5.0.7" = {
       name = "rimraf";
       packageName = "rimraf";
-      version = "5.0.5";
+      version = "5.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz";
-        sha512 = "CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==";
+        url = "https://registry.npmjs.org/rimraf/-/rimraf-5.0.7.tgz";
+        sha512 = "nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==";
       };
     };
     "ripemd160-2.0.2" = {
@@ -49851,13 +49194,13 @@ let
         sha512 = "pVlvK5ysevz8MzybRnDIa2YMxn0OJ7b9lDiWhMoaKPoJ7YkAg/7YtNjUgaYzElkwHxsw8dBMhaEn7UP6zxEwPg==";
       };
     };
-    "sass-1.72.0" = {
+    "sass-1.77.4" = {
       name = "sass";
       packageName = "sass";
-      version = "1.72.0";
+      version = "1.77.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sass/-/sass-1.72.0.tgz";
-        sha512 = "Gpczt3WA56Ly0Mn8Sl21Vj94s1axi9hDIzDFn9Ph9x3C3p4nNyvsqJoQyVXKou6cBlfFWEgRW4rT8Tb4i3XnVA==";
+        url = "https://registry.npmjs.org/sass/-/sass-1.77.4.tgz";
+        sha512 = "vcF3Ckow6g939GMA4PeU7b2K/9FALXk2KF9J87txdHzXbUF9XRQRwSxcAs/fGaTnJeBFd7UoV22j3lzMLdM0Pw==";
       };
     };
     "sass-formatter-0.7.9" = {
@@ -49905,6 +49248,15 @@ let
         sha512 = "0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==";
       };
     };
+    "sax-1.4.1" = {
+      name = "sax";
+      packageName = "sax";
+      version = "1.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz";
+        sha512 = "+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==";
+      };
+    };
     "saxes-3.1.11" = {
       name = "saxes";
       packageName = "saxes";
@@ -49950,13 +49302,13 @@ let
         sha512 = "2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==";
       };
     };
-    "scheduler-0.23.0" = {
+    "scheduler-0.23.2" = {
       name = "scheduler";
       packageName = "scheduler";
-      version = "0.23.0";
+      version = "0.23.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz";
-        sha512 = "CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==";
+        url = "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz";
+        sha512 = "UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==";
       };
     };
     "schema-utils-2.7.1" = {
@@ -50040,15 +49392,6 @@ let
         sha512 = "IrpJ+yoG4EOH8DFWuVg+8H1kW1Oaof0Wxe7cPcXW3x9BjkN/eVo54F15LyqemnDIUYskQWr9qvl/RihmSy6+xQ==";
       };
     };
-    "semver-5.1.1" = {
-      name = "semver";
-      packageName = "semver";
-      version = "5.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/semver/-/semver-5.1.1.tgz";
-        sha512 = "bNx9Zdbi1OUN62PbKeG4IgGG8YILX/nkHJ0NQEBwg5FmX8qTJfqhYd3reqkm0DxHCC8nkazb6UjNiBSHCBWVtA==";
-      };
-    };
     "semver-5.3.0" = {
       name = "semver";
       packageName = "semver";
@@ -50148,6 +49491,15 @@ let
         sha512 = "EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==";
       };
     };
+    "semver-7.6.2" = {
+      name = "semver";
+      packageName = "semver";
+      version = "7.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz";
+        sha512 = "FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==";
+      };
+    };
     "semver-compare-1.0.0" = {
       name = "semver-compare";
       packageName = "semver-compare";
@@ -50184,13 +49536,13 @@ let
         sha512 = "0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==";
       };
     };
-    "semver-greatest-satisfied-range-1.1.0" = {
+    "semver-greatest-satisfied-range-2.0.0" = {
       name = "semver-greatest-satisfied-range";
       packageName = "semver-greatest-satisfied-range";
-      version = "1.1.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz";
-        sha512 = "Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ==";
+        url = "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-2.0.0.tgz";
+        sha512 = "lH3f6kMbwyANB7HuOWRMlLCa2itaCrZJ+SAqqkSZrZKO/cAsk2EOyaKHUtNkVLFyFW9pct22SFesFp3Z7zpA0g==";
       };
     };
     "semver-intersect-1.5.0" = {
@@ -50202,15 +49554,6 @@ let
         sha512 = "BDjWX7yCC0haX4W/zrnV2JaMpVirwaEkGOBmgRQtH++F1N3xl9v7k9H44xfTqwl+yLNNSbMKosoVSTIiJVQ2Pw==";
       };
     };
-    "semver-regex-4.0.5" = {
-      name = "semver-regex";
-      packageName = "semver-regex";
-      version = "4.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/semver-regex/-/semver-regex-4.0.5.tgz";
-        sha512 = "hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==";
-      };
-    };
     "send-0.16.2" = {
       name = "send";
       packageName = "send";
@@ -50247,42 +49590,6 @@ let
         sha512 = "qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==";
       };
     };
-    "sentence-case-3.0.4" = {
-      name = "sentence-case";
-      packageName = "sentence-case";
-      version = "3.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz";
-        sha512 = "8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==";
-      };
-    };
-    "sentence-splitter-3.2.3" = {
-      name = "sentence-splitter";
-      packageName = "sentence-splitter";
-      version = "3.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sentence-splitter/-/sentence-splitter-3.2.3.tgz";
-        sha512 = "eDqaz4MasTn6Mp3dagKzIbiNsJpgpueMEQqCJeN9F9XQRFLDGFJ0kX8R3uMp+mU7J58dWjr4q6eks/nUX/vnJQ==";
-      };
-    };
-    "sentence-splitter-4.4.1" = {
-      name = "sentence-splitter";
-      packageName = "sentence-splitter";
-      version = "4.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sentence-splitter/-/sentence-splitter-4.4.1.tgz";
-        sha512 = "4Jks7qn5nOeY5g++wlWbLCKclo2XxT7DBrLYo68UNdP8UEWUpUNH5VgKTEd0QlTo2cYBggtVk0NkvsRhoCZdsA==";
-      };
-    };
-    "sentence-splitter-5.0.0" = {
-      name = "sentence-splitter";
-      packageName = "sentence-splitter";
-      version = "5.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sentence-splitter/-/sentence-splitter-5.0.0.tgz";
-        sha512 = "9Mvf7L8vwpPzkH0/HtXzCbmVkyj4aQXdeG7h8ighRvO0hvcZEy2OUEjeIlnM/z4EX4vBacEfpESC65Oa2rWOig==";
-      };
-    };
     "serialize-error-2.1.0" = {
       name = "serialize-error";
       packageName = "serialize-error";
@@ -50751,13 +50058,13 @@ let
         sha512 = "0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==";
       };
     };
-    "sigstore-2.2.2" = {
+    "sigstore-2.3.1" = {
       name = "sigstore";
       packageName = "sigstore";
-      version = "2.2.2";
+      version = "2.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sigstore/-/sigstore-2.2.2.tgz";
-        sha512 = "2A3WvXkQurhuMgORgT60r6pOWiCOO5LlEqY2ADxGBDGVYLSo5HN0uLtb68YpVpuL/Vi8mLTe7+0Dx2Fq8lLqEg==";
+        url = "https://registry.npmjs.org/sigstore/-/sigstore-2.3.1.tgz";
+        sha512 = "8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==";
       };
     };
     "simple-concat-1.0.1" = {
@@ -50823,15 +50130,6 @@ let
         sha512 = "rohCHmEjD/ESXFLxF4bVeqgdb4Awc65ZyyuCKl3f7BvgMbZOBa/Ye3HN/GFnvruiUOAWWNupxhz3Rz5/3vJLTg==";
       };
     };
-    "simple-git-3.19.1" = {
-      name = "simple-git";
-      packageName = "simple-git";
-      version = "3.19.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/simple-git/-/simple-git-3.19.1.tgz";
-        sha512 = "Ck+rcjVaE1HotraRAS8u/+xgTvToTuoMkT9/l9lvuP5jftwnYUp6DwuJzsKErHgfyRk8IB8pqGHWEbM3tLgV1w==";
-      };
-    };
     "simple-peer-6.4.4" = {
       name = "simple-peer";
       packageName = "simple-peer";
@@ -50841,15 +50139,6 @@ let
         sha512 = "sY35UHankz0ba02Dd8YzdyXhEeTAnW6ZUyDfKOSwUht1GLp9VuMT4jQUXF/wG7C9vpwvitV7Ig7a6IkY/qizwg==";
       };
     };
-    "simple-peer-9.11.1" = {
-      name = "simple-peer";
-      packageName = "simple-peer";
-      version = "9.11.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/simple-peer/-/simple-peer-9.11.1.tgz";
-        sha512 = "D1SaWpOW8afq1CZGWB8xTfrT3FekjQmPValrqncJMX7QFl8YwhrPTZvMCANLtgBwwdS+7zURyqxDDEmY558tTw==";
-      };
-    };
     "simple-plist-1.4.0" = {
       name = "simple-plist";
       packageName = "simple-plist";
@@ -50904,15 +50193,6 @@ let
         sha512 = "knEO6ub2Pw00c7ueOV6snKE1hr7jIdY068+239v0I8DVKofyd7IQmYHXrM9pZL1zuI0H7sd+Y5kedndBi5GXIA==";
       };
     };
-    "simple-websocket-9.1.0" = {
-      name = "simple-websocket";
-      packageName = "simple-websocket";
-      version = "9.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/simple-websocket/-/simple-websocket-9.1.0.tgz";
-        sha512 = "8MJPnjRN6A8UCp1I+H/dSFyjwJhp6wta4hsVRhjf8w9qBHRzxYt14RaOcjvQnhD1N4yKOddEjflwMnQM4VtXjQ==";
-      };
-    };
     "simplediff-0.1.1" = {
       name = "simplediff";
       packageName = "simplediff";
@@ -50949,13 +50229,13 @@ let
         sha512 = "bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==";
       };
     };
-    "skin-tone-3.0.0" = {
+    "skin-tone-4.0.0" = {
       name = "skin-tone";
       packageName = "skin-tone";
-      version = "3.0.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/skin-tone/-/skin-tone-3.0.0.tgz";
-        sha512 = "+HTlUiUJr3SjmOiKV3dPeGWcl7dgqv09OgFWJxD26vOmYss7DWKCl6sqHEjM1hddov/vXQN2bOKIMr0DMUJVSQ==";
+        url = "https://registry.npmjs.org/skin-tone/-/skin-tone-4.0.0.tgz";
+        sha512 = "oVTC072yJCXdkjUXAA3rRsRo1op6XfAH1/AXJQznxdwwiYTEvYB6eG9SOU8FeVaEuz+LuoPDYEY5BBMj+uRHVQ==";
       };
     };
     "slash-1.0.0" = {
@@ -51075,13 +50355,13 @@ let
         sha512 = "FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==";
       };
     };
-    "slice-ansi-6.0.0" = {
+    "slice-ansi-7.1.0" = {
       name = "slice-ansi";
       packageName = "slice-ansi";
-      version = "6.0.0";
+      version = "7.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/slice-ansi/-/slice-ansi-6.0.0.tgz";
-        sha512 = "6bn4hRfkTvDfUoEQYkERg0BVF1D0vrX9HEkMl08uDiNWvVvjylLHvZFZWkDo6wjT8tUctbYl1nCOuE66ZTaUtA==";
+        url = "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz";
+        sha512 = "bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==";
       };
     };
     "sliced-1.0.1" = {
@@ -51345,13 +50625,13 @@ let
         sha512 = "GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==";
       };
     };
-    "socks-2.8.1" = {
+    "socks-2.8.3" = {
       name = "socks";
       packageName = "socks";
-      version = "2.8.1";
+      version = "2.8.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socks/-/socks-2.8.1.tgz";
-        sha512 = "B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==";
+        url = "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz";
+        sha512 = "l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==";
       };
     };
     "socks-proxy-agent-6.2.1" = {
@@ -51372,13 +50652,13 @@ let
         sha512 = "Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==";
       };
     };
-    "socks-proxy-agent-8.0.2" = {
+    "socks-proxy-agent-8.0.3" = {
       name = "socks-proxy-agent";
       packageName = "socks-proxy-agent";
-      version = "8.0.2";
+      version = "8.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz";
-        sha512 = "8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==";
+        url = "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz";
+        sha512 = "VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==";
       };
     };
     "socks5-client-1.2.8" = {
@@ -51417,6 +50697,15 @@ let
         sha512 = "tr2eBD+9sTck9c7y0GkX9n8r4WcuzACYMFAGIjQum/F/LpJUZ0MvR4S6wiCrzvrCiznekBdxeG+8vSBE6d9H7A==";
       };
     };
+    "sonic-forest-1.0.3" = {
+      name = "sonic-forest";
+      packageName = "sonic-forest";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sonic-forest/-/sonic-forest-1.0.3.tgz";
+        sha512 = "dtwajos6IWMEWXdEbW1IkEkyL2gztCAgDplRIX+OT5aRKnEd5e7r7YCxRgXZdhRP1FBdOBf8axeTPhzDv8T4wQ==";
+      };
+    };
     "sorcery-0.10.0" = {
       name = "sorcery";
       packageName = "sorcery";
@@ -51561,13 +50850,13 @@ let
         sha512 = "R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==";
       };
     };
-    "source-map-js-1.1.0" = {
+    "source-map-js-1.2.0" = {
       name = "source-map-js";
       packageName = "source-map-js";
-      version = "1.1.0";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/source-map-js/-/source-map-js-1.1.0.tgz";
-        sha512 = "9vC2SfsJzlej6MAaMPLu8HiBSHGdRAJ9hVFYN1ibZoNkeanmDmLUcIrj6G9DGL7XMJ54AKg/G75akXl1/izTOw==";
+        url = "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz";
+        sha512 = "itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==";
       };
     };
     "source-map-loader-3.0.2" = {
@@ -51633,15 +50922,6 @@ let
         sha512 = "9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==";
       };
     };
-    "space-separated-tokens-1.1.5" = {
-      name = "space-separated-tokens";
-      packageName = "space-separated-tokens";
-      version = "1.1.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz";
-        sha512 = "q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==";
-      };
-    };
     "space-separated-tokens-2.0.2" = {
       name = "space-separated-tokens";
       packageName = "space-separated-tokens";
@@ -51660,6 +50940,15 @@ let
         sha512 = "dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==";
       };
     };
+    "sparkles-2.1.0" = {
+      name = "sparkles";
+      packageName = "sparkles";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sparkles/-/sparkles-2.1.0.tgz";
+        sha512 = "r7iW1bDw8R/cFifrD3JnQJX0K1jqT0kprL48BiBpLZLJPmAm34zsVBsK5lc7HirZYZqMW65dOXZgbAGt/I6frg==";
+      };
+    };
     "spawn-command-0.0.2" = {
       name = "spawn-command";
       packageName = "spawn-command";
@@ -51714,13 +51003,13 @@ let
         sha512 = "cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==";
       };
     };
-    "spdx-license-ids-3.0.17" = {
+    "spdx-license-ids-3.0.18" = {
       name = "spdx-license-ids";
       packageName = "spdx-license-ids";
-      version = "3.0.17";
+      version = "3.0.18";
       src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz";
-        sha512 = "sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==";
+        url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz";
+        sha512 = "xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==";
       };
     };
     "spdx-license-list-6.9.0" = {
@@ -51795,15 +51084,6 @@ let
         sha512 = "lgxErLl/7A5+vgIIXsh9MbeukOaCb2axgQ+bKCdIE+ibNT4XNYGNCR1qFEGq6F+YDASXK3Fh/c5FgtZchFolxw==";
       };
     };
-    "speedometer-1.1.0" = {
-      name = "speedometer";
-      packageName = "speedometer";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/speedometer/-/speedometer-1.1.0.tgz";
-        sha512 = "z/wAiTESw2XVPssY2XRcme4niTc4S5FkkJ4gknudtVoc33Zil8TdTxHy5torRcgqMqksJV2Yz8HQcvtbsnw0mQ==";
-      };
-    };
     "speedtest-net-1.6.2" = {
       name = "speedtest-net";
       packageName = "speedtest-net";
@@ -51840,15 +51120,6 @@ let
         sha512 = "mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==";
       };
     };
-    "split-lines-2.1.0" = {
-      name = "split-lines";
-      packageName = "split-lines";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/split-lines/-/split-lines-2.1.0.tgz";
-        sha512 = "8dv+1zKgTpfTkOy8XZLFyWrfxO0NV/bj/3EaQ+hBrBxGv2DwiroljPjU8NlCr+59nLnsVm9WYT7lXKwe4TC6bw==";
-      };
-    };
     "split-on-first-1.1.0" = {
       name = "split-on-first";
       packageName = "split-on-first";
@@ -51975,6 +51246,15 @@ let
         sha512 = "wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==";
       };
     };
+    "srcset-5.0.1" = {
+      name = "srcset";
+      packageName = "srcset";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/srcset/-/srcset-5.0.1.tgz";
+        sha512 = "/P1UYbGfJVlxZag7aABNRrulEXAwCSDo7fklafOQrantuPTDmYgijJMks2zusPCVzgW9+4P69mq7w6pYuZpgxw==";
+      };
+    };
     "sscaff-1.2.274" = {
       name = "sscaff";
       packageName = "sscaff";
@@ -52011,13 +51291,13 @@ let
         sha512 = "qszxcSCziI1IEv7SbVc51dqmyck1f520I92duwBWGRFtPQXz52ErYr6cAPEVWa4EkWNI4fMbPgagi2/oNpuuRg==";
       };
     };
-    "ssri-10.0.5" = {
+    "ssri-10.0.6" = {
       name = "ssri";
       packageName = "ssri";
-      version = "10.0.5";
+      version = "10.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz";
-        sha512 = "bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==";
+        url = "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz";
+        sha512 = "MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==";
       };
     };
     "ssri-5.3.0" = {
@@ -52065,15 +51345,6 @@ let
         sha512 = "D8cWtWVdIe/jBA7v5p5Hwl5yOSOrmZPWDPe2KxQ5UAGD+nxbxU0lKXA4h85Ta6+qgdKVL3vUxsbIZjc1kBG7ug==";
       };
     };
-    "stack-generator-2.0.10" = {
-      name = "stack-generator";
-      packageName = "stack-generator";
-      version = "2.0.10";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz";
-        sha512 = "mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==";
-      };
-    };
     "stack-trace-0.0.10" = {
       name = "stack-trace";
       packageName = "stack-trace";
@@ -52290,6 +51561,15 @@ let
         sha512 = "3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==";
       };
     };
+    "stream-composer-1.0.2" = {
+      name = "stream-composer";
+      packageName = "stream-composer";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-composer/-/stream-composer-1.0.2.tgz";
+        sha512 = "bnBselmwfX5K10AH6L4c8+S5lgZMWI7ZYrz2rvYjCPB2DIMC4Ig8OpxGpNJSxRZ58oti7y1IcNvjBAz9vW5m4w==";
+      };
+    };
     "stream-exhaust-1.0.2" = {
       name = "stream-exhaust";
       packageName = "stream-exhaust";
@@ -52371,24 +51651,6 @@ let
         sha512 = "UsZtOYEn4tWU2RGLOXr/o/xjRBftZRlG3dEWoaHr8j4GuypJ3isitGbVyjQKAuMu+xbiop8q224TjiZWc4XTZA==";
       };
     };
-    "stream-to-blob-2.0.1" = {
-      name = "stream-to-blob";
-      packageName = "stream-to-blob";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/stream-to-blob/-/stream-to-blob-2.0.1.tgz";
-        sha512 = "GXlqXt3svqwIVWoICenix5Poxi4KbCF0BdXXUbpU1X4vq1V8wmjiEIU3aFJzCGNFpKxfbnG0uoowS3nKUgSPYg==";
-      };
-    };
-    "stream-to-blob-url-3.0.2" = {
-      name = "stream-to-blob-url";
-      packageName = "stream-to-blob-url";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/stream-to-blob-url/-/stream-to-blob-url-3.0.2.tgz";
-        sha512 = "PS6wT2ZyyR38Cy+lE6PBEI1ZmO2HdzZoLeDGG0zZbYikCZd0dh8FUoSeFzgWLItpBYw1WJmPVRLpykRV+lAWLQ==";
-      };
-    };
     "stream-to-promise-2.2.0" = {
       name = "stream-to-promise";
       packageName = "stream-to-promise";
@@ -52407,15 +51669,6 @@ let
         sha512 = "3HXId/0W8sktQnQM6rOZf2LuDDMbakMgAjpViLk758/h0br+iGqZFFfUxxJSqEvGvT742PyFr4v/TBXUtowdCg==";
       };
     };
-    "stream-with-known-length-to-buffer-1.0.4" = {
-      name = "stream-with-known-length-to-buffer";
-      packageName = "stream-with-known-length-to-buffer";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/stream-with-known-length-to-buffer/-/stream-with-known-length-to-buffer-1.0.4.tgz";
-        sha512 = "ztP79ug6S+I7td0Nd2GBeIKCm+vA54c+e60FY87metz5n/l6ydPELd2lxsljz8OpIhsRM9HkIiAwz85+S5G5/A==";
-      };
-    };
     "streamroller-3.1.5" = {
       name = "streamroller";
       packageName = "streamroller";
@@ -52443,13 +51696,13 @@ let
         sha512 = "Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==";
       };
     };
-    "streamx-2.16.1" = {
+    "streamx-2.18.0" = {
       name = "streamx";
       packageName = "streamx";
-      version = "2.16.1";
+      version = "2.18.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz";
-        sha512 = "m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==";
+        url = "https://registry.npmjs.org/streamx/-/streamx-2.18.0.tgz";
+        sha512 = "LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==";
       };
     };
     "strict-uri-encode-1.1.0" = {
@@ -52614,13 +51867,13 @@ let
         sha512 = "wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==";
       };
     };
-    "string.prototype.matchall-4.0.10" = {
+    "string.prototype.matchall-4.0.11" = {
       name = "string.prototype.matchall";
       packageName = "string.prototype.matchall";
-      version = "4.0.10";
+      version = "4.0.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz";
-        sha512 = "rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==";
+        url = "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz";
+        sha512 = "NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==";
       };
     };
     "string.prototype.repeat-0.2.0" = {
@@ -52659,13 +51912,13 @@ let
         sha512 = "p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==";
       };
     };
-    "string.prototype.trimstart-1.0.7" = {
+    "string.prototype.trimstart-1.0.8" = {
       name = "string.prototype.trimstart";
       packageName = "string.prototype.trimstart";
-      version = "1.0.7";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz";
-        sha512 = "NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==";
+        url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz";
+        sha512 = "UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==";
       };
     };
     "string2compact-1.3.2" = {
@@ -52677,6 +51930,15 @@ let
         sha512 = "3XUxUgwhj7Eqh2djae35QHZZT4mN3fsO7kagZhSGmhhlrQagVvWSFuuFIWnpxFS0CdTB2PlQcaL16RDi14I8uw==";
       };
     };
+    "string2compact-2.0.1" = {
+      name = "string2compact";
+      packageName = "string2compact";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string2compact/-/string2compact-2.0.1.tgz";
+        sha512 = "Bm/T8lHMTRXw+u83LE+OW7fXmC/wM+Mbccfdo533ajSBNxddDHlRrvxE49NdciGHgXkUQM5WYskJ7uTkbBUI0A==";
+      };
+    };
     "string_decoder-0.10.31" = {
       name = "string_decoder";
       packageName = "string_decoder";
@@ -52704,13 +51966,13 @@ let
         sha512 = "hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==";
       };
     };
-    "stringify-entities-4.0.3" = {
+    "stringify-entities-4.0.4" = {
       name = "stringify-entities";
       packageName = "stringify-entities";
-      version = "4.0.3";
+      version = "4.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz";
-        sha512 = "BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==";
+        url = "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz";
+        sha512 = "IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==";
       };
     };
     "stringify-parameters-0.0.4" = {
@@ -52965,24 +52227,6 @@ let
         sha512 = "0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg==";
       };
     };
-    "structured-source-3.0.2" = {
-      name = "structured-source";
-      packageName = "structured-source";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/structured-source/-/structured-source-3.0.2.tgz";
-        sha512 = "Ap7JHfKgmH40SUjumqyKTHYHNZ8GvGQskP34ks0ElHCDEig+bYGpmXVksxPSrgcY9rkJqhVMzfeg5GIpZelfpQ==";
-      };
-    };
-    "structured-source-4.0.0" = {
-      name = "structured-source";
-      packageName = "structured-source";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/structured-source/-/structured-source-4.0.0.tgz";
-        sha512 = "qGzRFNJDjFieQkl/sVOI2dUjHKRyL9dAJi2gCPGJLbJHBIkyOHxjuocpIEfbLioX+qSJpvbYdT49/YCdMznKxA==";
-      };
-    };
     "stubborn-fs-1.2.5" = {
       name = "stubborn-fs";
       packageName = "stubborn-fs";
@@ -53019,13 +52263,13 @@ let
         sha512 = "sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==";
       };
     };
-    "stylehacks-6.1.0" = {
+    "stylehacks-7.0.0" = {
       name = "stylehacks";
       packageName = "stylehacks";
-      version = "6.1.0";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.0.tgz";
-        sha512 = "ETErsPFgwlfYZ/CSjMO2Ddf+TsnkCVPBPaoB99Ro8WMAxf7cglzmFsRBhRmKObFjibtcvlNxFFPHuyr3sNlNUQ==";
+        url = "https://registry.npmjs.org/stylehacks/-/stylehacks-7.0.0.tgz";
+        sha512 = "47Nw4pQ6QJb4CA6dzF2m9810sjQik4dfk4UwAm5wlwhrW3syzZKF8AR4/cfO3Cr6lsFgAoznQq0Wg57qhjTA2A==";
       };
     };
     "stylelint-13.13.1" = {
@@ -53037,13 +52281,13 @@ let
         sha512 = "Mv+BQr5XTUrKqAXmpqm6Ddli6Ief+AiPZkRsIrAoUKFuq/ElkUh9ZMYxXD0iQNZ5ADghZKLOWz1h7hTClB7zgQ==";
       };
     };
-    "stylis-4.3.1" = {
+    "stylis-4.3.2" = {
       name = "stylis";
       packageName = "stylis";
-      version = "4.3.1";
+      version = "4.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stylis/-/stylis-4.3.1.tgz";
-        sha512 = "EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==";
+        url = "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz";
+        sha512 = "bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==";
       };
     };
     "stylus-0.55.0" = {
@@ -53253,15 +52497,6 @@ let
         sha512 = "RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==";
       };
     };
-    "supports-hyperlinks-3.0.0" = {
-      name = "supports-hyperlinks";
-      packageName = "supports-hyperlinks";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz";
-        sha512 = "QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==";
-      };
-    };
     "supports-preserve-symlinks-flag-1.0.0" = {
       name = "supports-preserve-symlinks-flag";
       packageName = "supports-preserve-symlinks-flag";
@@ -53271,58 +52506,49 @@ let
         sha512 = "ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==";
       };
     };
-    "svelte-3.59.2" = {
+    "svelte-4.2.17" = {
       name = "svelte";
       packageName = "svelte";
-      version = "3.59.2";
+      version = "4.2.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/svelte/-/svelte-3.59.2.tgz";
-        sha512 = "vzSyuGr3eEoAtT/A6bmajosJZIUWySzY2CzB3w2pgPvnkUjGqlDnsNnA0PMO+mMAhuyMul6C2uuZzY6ELSkzyA==";
+        url = "https://registry.npmjs.org/svelte/-/svelte-4.2.17.tgz";
+        sha512 = "N7m1YnoXtRf5wya5Gyx3TWuTddI4nAyayyIWFojiWV5IayDYNV5i2mRp/7qNGol4DtxEYxljmrbgp1HM6hUbmQ==";
       };
     };
-    "svelte-4.2.12" = {
+    "svelte-5.0.0-next.149" = {
       name = "svelte";
       packageName = "svelte";
-      version = "4.2.12";
+      version = "5.0.0-next.149";
       src = fetchurl {
-        url = "https://registry.npmjs.org/svelte/-/svelte-4.2.12.tgz";
-        sha512 = "d8+wsh5TfPwqVzbm4/HCXC783/KPHV60NvwitJnyTA5lWn1elhXMNWhXGCJ7PwPa8qFUnyJNIyuIRt2mT0WMug==";
+        url = "https://registry.npmjs.org/svelte/-/svelte-5.0.0-next.149.tgz";
+        sha512 = "n7CPR/7XrU7D8Wlo8kVhhEvE+aytNbBHSBfjdFm0xSDFlb5TuSNbQbKDifDGVOAFXGtVhNzl755vLLfUyBlkiA==";
       };
     };
-    "svelte-5.0.0-next.80" = {
-      name = "svelte";
-      packageName = "svelte";
-      version = "5.0.0-next.80";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/svelte/-/svelte-5.0.0-next.80.tgz";
-        sha512 = "hiei7UfWoNa6P0yvNoUWqptSh8Tnn2V3dN+w6s32jSqpqzTtNG2tn+xbxdOOBJ5wYc3gYKYbA3+rK1Q643iCEw==";
-      };
-    };
-    "svelte-preprocess-5.1.3" = {
+    "svelte-preprocess-5.1.4" = {
       name = "svelte-preprocess";
       packageName = "svelte-preprocess";
-      version = "5.1.3";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.1.3.tgz";
-        sha512 = "xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==";
+        url = "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.1.4.tgz";
+        sha512 = "IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==";
       };
     };
-    "svelte2tsx-0.7.4" = {
+    "svelte2tsx-0.7.9" = {
       name = "svelte2tsx";
       packageName = "svelte2tsx";
-      version = "0.7.4";
+      version = "0.7.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.7.4.tgz";
-        sha512 = "zAtbQD7JmeKe0JWdKO6l38t7P6wFP0+YTc0LLFdtzWdHEddcE+/VMvJquQI9NNsnrinUbtS9JF3kosPNeglMcQ==";
+        url = "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.7.9.tgz";
+        sha512 = "Rm+0LAwg9wT4H2IsR8EaM9EWErTzi9LmuZKxkH5b1ua94XjQmwHstBP4VabLgA9AE6XmwBg+xK7Cjzwfm6ustQ==";
       };
     };
-    "sver-compat-1.5.0" = {
-      name = "sver-compat";
-      packageName = "sver-compat";
-      version = "1.5.0";
+    "sver-1.8.4" = {
+      name = "sver";
+      packageName = "sver";
+      version = "1.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz";
-        sha512 = "aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg==";
+        url = "https://registry.npmjs.org/sver/-/sver-1.8.4.tgz";
+        sha512 = "71o1zfzyawLfIWBOmw8brleKyvnbn73oVHNCsu51uPMz/HWiKkkXsI31JjHW5zqXEqnPYkIiHd8ZmL7FCimLEA==";
       };
     };
     "svg-tags-1.0.0" = {
@@ -53361,13 +52587,13 @@ let
         sha512 = "+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==";
       };
     };
-    "svgo-3.2.0" = {
+    "svgo-3.3.2" = {
       name = "svgo";
       packageName = "svgo";
-      version = "3.2.0";
+      version = "3.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/svgo/-/svgo-3.2.0.tgz";
-        sha512 = "4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==";
+        url = "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz";
+        sha512 = "OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==";
       };
     };
     "swagger2openapi-7.0.8" = {
@@ -53478,13 +52704,13 @@ let
         sha512 = "RZuzIOtzFbprLCE0AXhkI0Xi42ZJLZhCC+qkwuMLf/Vjz3maWpA8gz1qMdbmNoI9cOROT2Am/DxeRyXenrL11g==";
       };
     };
-    "table-6.8.1" = {
+    "table-6.8.2" = {
       name = "table";
       packageName = "table";
-      version = "6.8.1";
+      version = "6.8.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/table/-/table-6.8.1.tgz";
-        sha512 = "Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==";
+        url = "https://registry.npmjs.org/table/-/table-6.8.2.tgz";
+        sha512 = "w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==";
       };
     };
     "table-layout-0.4.5" = {
@@ -53515,13 +52741,13 @@ let
         sha512 = "pjgQxDZPvyS/nG3ZYkyCvsbONJl7GdOejfm24iMt2ElYQQw8Jc4p0m8RdMp7mznPD0kUhfzwV3zAwa80qI0zmQ==";
       };
     };
-    "tailwindcss-3.4.1" = {
+    "tailwindcss-3.4.3" = {
       name = "tailwindcss";
       packageName = "tailwindcss";
-      version = "3.4.1";
+      version = "3.4.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz";
-        sha512 = "qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==";
+        url = "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz";
+        sha512 = "U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==";
       };
     };
     "tapable-0.2.9" = {
@@ -53578,24 +52804,6 @@ let
         sha512 = "0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==";
       };
     };
-    "tar-6.1.11" = {
-      name = "tar";
-      packageName = "tar";
-      version = "6.1.11";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz";
-        sha512 = "an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==";
-      };
-    };
-    "tar-6.1.13" = {
-      name = "tar";
-      packageName = "tar";
-      version = "6.1.13";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz";
-        sha512 = "jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==";
-      };
-    };
     "tar-6.1.15" = {
       name = "tar";
       packageName = "tar";
@@ -53614,6 +52822,15 @@ let
         sha512 = "/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==";
       };
     };
+    "tar-6.2.1" = {
+      name = "tar";
+      packageName = "tar";
+      version = "6.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz";
+        sha512 = "DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==";
+      };
+    };
     "tar-fs-2.1.1" = {
       name = "tar-fs";
       packageName = "tar-fs";
@@ -53623,6 +52840,15 @@ let
         sha512 = "V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==";
       };
     };
+    "tar-fs-3.0.5" = {
+      name = "tar-fs";
+      packageName = "tar-fs";
+      version = "3.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.5.tgz";
+        sha512 = "JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==";
+      };
+    };
     "tar-stream-1.6.2" = {
       name = "tar-stream";
       packageName = "tar-stream";
@@ -53641,6 +52867,15 @@ let
         sha512 = "ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==";
       };
     };
+    "tar-stream-3.1.7" = {
+      name = "tar-stream";
+      packageName = "tar-stream";
+      version = "3.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz";
+        sha512 = "qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==";
+      };
+    };
     "taskkill-3.1.0" = {
       name = "taskkill";
       packageName = "taskkill";
@@ -53677,6 +52912,15 @@ let
         sha512 = "+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==";
       };
     };
+    "teex-1.0.1" = {
+      name = "teex";
+      packageName = "teex";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz";
+        sha512 = "eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==";
+      };
+    };
     "temp-0.8.3" = {
       name = "temp";
       packageName = "temp";
@@ -53758,15 +53002,6 @@ let
         sha512 = "vXPxwOyaNVi9nyczO16mxmHGpl6ASC5/TVhRRHpqeYHvKQm58EaWNvZXxAhR0lYYnBOQFjXjhzeLsaXdjxLjRg==";
       };
     };
-    "tempy-3.0.0" = {
-      name = "tempy";
-      packageName = "tempy";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tempy/-/tempy-3.0.0.tgz";
-        sha512 = "B2I9X7+o2wOaW4r/CWMkpOO9mdiTRCxXNgob6iGvPmfPWgH/KyUD6Uy5crtWBxIBe3YrNZKR2lSzv1JJKWD4vA==";
-      };
-    };
     "tempy-3.1.0" = {
       name = "tempy";
       packageName = "tempy";
@@ -53785,15 +53020,6 @@ let
         sha512 = "wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==";
       };
     };
-    "term-size-3.0.2" = {
-      name = "term-size";
-      packageName = "term-size";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/term-size/-/term-size-3.0.2.tgz";
-        sha512 = "YfE8KwjrumviCxmeOS1r1hAwqUcd/AnhrG/Pol/Gry91EyUCS+jQH0qFUZOUkpGQ5rXsKMK6S6kjne53ytYS/w==";
-      };
-    };
     "terminal-kit-1.49.4" = {
       name = "terminal-kit";
       packageName = "terminal-kit";
@@ -53830,13 +53056,13 @@ let
         sha512 = "flFL3m4wuixmf6IfhFJd1YPiLiMuxEc8uHRM1buzIeZPm22Au2pDqBJQgdo7n1WfPU1ONFGv7YDwpFBmHGF6lg==";
       };
     };
-    "terser-5.29.2" = {
+    "terser-5.31.0" = {
       name = "terser";
       packageName = "terser";
-      version = "5.29.2";
+      version = "5.31.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terser/-/terser-5.29.2.tgz";
-        sha512 = "ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==";
+        url = "https://registry.npmjs.org/terser/-/terser-5.31.0.tgz";
+        sha512 = "Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==";
       };
     };
     "terser-webpack-plugin-5.3.10" = {
@@ -53857,6 +53083,15 @@ let
         sha512 = "cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==";
       };
     };
+    "text-decoder-1.1.0" = {
+      name = "text-decoder";
+      packageName = "text-decoder";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/text-decoder/-/text-decoder-1.1.0.tgz";
+        sha512 = "TmLJNj6UgX8xcUZo4UDStGQtDiTzF7BzWlzn9g7UWrjkpHr5uJTK1ld16wZ3LXb2vb6jH8qU89dW5whuMdXYdw==";
+      };
+    };
     "text-decoding-1.0.0" = {
       name = "text-decoding";
       packageName = "text-decoding";
@@ -53902,33 +53137,6 @@ let
         sha512 = "N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==";
       };
     };
-    "textlint-rule-helper-1.2.0" = {
-      name = "textlint-rule-helper";
-      packageName = "textlint-rule-helper";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/textlint-rule-helper/-/textlint-rule-helper-1.2.0.tgz";
-        sha512 = "yJmVbmyuUPOndKsxOijpx/G7mwybXXf4M10U2up0BeIZSN+6drUl+aSKAoC+RUHY7bG4ogLwRcmWoNG1lSrRIQ==";
-      };
-    };
-    "textlint-rule-helper-2.3.1" = {
-      name = "textlint-rule-helper";
-      packageName = "textlint-rule-helper";
-      version = "2.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/textlint-rule-helper/-/textlint-rule-helper-2.3.1.tgz";
-        sha512 = "b1bijvyiUmKinfFE5hkQMSXs3Ky8jyZ3Y6SOoTRJKV9HLL2LWUVFAUezO7z4FpAkVvYruDYWCwA5qWV8GmvyUw==";
-      };
-    };
-    "textlint-util-to-string-3.3.4" = {
-      name = "textlint-util-to-string";
-      packageName = "textlint-util-to-string";
-      version = "3.3.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/textlint-util-to-string/-/textlint-util-to-string-3.3.4.tgz";
-        sha512 = "XF4Qfw0ES+czKy03BwuvBUoXC8NAg920VuRxW0pd72fW76zMeMbPI/bRN5PHq3SbCdOm7U69/Pk+DX34xqIYqA==";
-      };
-    };
     "thelounge-3.3.0" = {
       name = "thelounge";
       packageName = "thelounge";
@@ -53947,13 +53155,13 @@ let
         sha512 = "5hijX1V/4CrgrkqCqtwP32LSbLPSF/10nneI+2doPHKx7AdCgR52HqWZo0AQEPv4fvOqEOMLJ0c9pL6t/jUDwg==";
       };
     };
-    "thelounge-4.4.1" = {
+    "thelounge-4.4.3" = {
       name = "thelounge";
       packageName = "thelounge";
-      version = "4.4.1";
+      version = "4.4.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/thelounge/-/thelounge-4.4.1.tgz";
-        sha512 = "Sl+hBAfpJ2+N4cMlR6mAwfN1vrAQFME/+t58L35MN0lQ+4CL23IufqfLPWzvytvZi+q82AxaRxhtNL42IuMR4g==";
+        url = "https://registry.npmjs.org/thelounge/-/thelounge-4.4.3.tgz";
+        sha512 = "bNiQyqxiZcDWkUrj1G91mpIGGtMm+xUSvTJ5ciP9zux14kGbEp7PhDBZ6HtHZiJ8F7vfWSuwwORFW1y0yQfseA==";
       };
     };
     "then-fs-2.0.0" = {
@@ -53992,6 +53200,15 @@ let
         sha512 = "RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==";
       };
     };
+    "thingies-1.21.0" = {
+      name = "thingies";
+      packageName = "thingies";
+      version = "1.21.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz";
+        sha512 = "hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==";
+      };
+    };
     "thirty-two-0.0.2" = {
       name = "thirty-two";
       packageName = "thirty-two";
@@ -54073,15 +53290,6 @@ let
         sha512 = "/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==";
       };
     };
-    "through2-filter-3.0.0" = {
-      name = "through2-filter";
-      packageName = "through2-filter";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz";
-        sha512 = "jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==";
-      };
-    };
     "throughput-1.0.1" = {
       name = "throughput";
       packageName = "throughput";
@@ -54154,15 +53362,6 @@ let
         sha512 = "G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==";
       };
     };
-    "timeout-refresh-1.0.3" = {
-      name = "timeout-refresh";
-      packageName = "timeout-refresh";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/timeout-refresh/-/timeout-refresh-1.0.3.tgz";
-        sha512 = "Mz0CX4vBGM5lj8ttbIFt7o4ZMxk/9rgudJRh76EvB7xXZMur7T/cjRiH2w4Fmkq0zxf2QpM8IFvOSRn8FEu3gA==";
-      };
-    };
     "timers-browserify-1.4.2" = {
       name = "timers-browserify";
       packageName = "timers-browserify";
@@ -54208,15 +53407,6 @@ let
         sha512 = "XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==";
       };
     };
-    "tinygradient-1.1.5" = {
-      name = "tinygradient";
-      packageName = "tinygradient";
-      version = "1.1.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tinygradient/-/tinygradient-1.1.5.tgz";
-        sha512 = "8nIfc2vgQ4TeLnk2lFj4tRLvvJwEfQuabdsmvDdQPT0xlk9TaNtpGd6nNRxXoK6vQhN6RSzj+Cnp5tTQmpxmbw==";
-      };
-    };
     "tkwidgets-0.5.27" = {
       name = "tkwidgets";
       packageName = "tkwidgets";
@@ -54280,15 +53470,6 @@ let
         sha512 = "nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==";
       };
     };
-    "to-absolute-glob-2.0.2" = {
-      name = "to-absolute-glob";
-      packageName = "to-absolute-glob";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz";
-        sha512 = "rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==";
-      };
-    };
     "to-array-0.1.3" = {
       name = "to-array";
       packageName = "to-array";
@@ -54307,15 +53488,6 @@ let
         sha512 = "LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A==";
       };
     };
-    "to-arraybuffer-1.0.1" = {
-      name = "to-arraybuffer";
-      packageName = "to-arraybuffer";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz";
-        sha512 = "okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==";
-      };
-    };
     "to-buffer-1.1.1" = {
       name = "to-buffer";
       packageName = "to-buffer";
@@ -54379,13 +53551,13 @@ let
         sha512 = "65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==";
       };
     };
-    "to-through-2.0.0" = {
+    "to-through-3.0.0" = {
       name = "to-through";
       packageName = "to-through";
-      version = "2.0.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz";
-        sha512 = "+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==";
+        url = "https://registry.npmjs.org/to-through/-/to-through-3.0.0.tgz";
+        sha512 = "y8MN937s/HVhEoBU1SxfHC+wxCHkV1a9gW8eAdTadYh/bGyesZIVcbjI+mSpFbSVwQici/XjBjuUyri1dnXwBw==";
       };
     };
     "to-vfile-7.2.4" = {
@@ -54451,15 +53623,6 @@ let
         sha512 = "6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==";
       };
     };
-    "too-wordy-0.3.6" = {
-      name = "too-wordy";
-      packageName = "too-wordy";
-      version = "0.3.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/too-wordy/-/too-wordy-0.3.6.tgz";
-        sha512 = "fK4DKkEcrpBbK6uANekH37VeNAb/88qKdkqc/nBOFJpHdvXKXdA4lZRkiM6zNlow00Zp4W4/lnWyqqCaOQlg/w==";
-      };
-    };
     "topojson-client-3.1.0" = {
       name = "topojson-client";
       packageName = "topojson-client";
@@ -54469,22 +53632,22 @@ let
         sha512 = "605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==";
       };
     };
-    "torrent-discovery-5.4.0" = {
+    "torrent-discovery-11.0.6" = {
       name = "torrent-discovery";
       packageName = "torrent-discovery";
-      version = "5.4.0";
+      version = "11.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/torrent-discovery/-/torrent-discovery-5.4.0.tgz";
-        sha512 = "bPTDIA7XEjRlw6vQyt7kM/h1mg1INBsibjbujISITonx4POENZgxfyCSEXZpDhbAkluSPH4HKRKs4/YTmNLC6w==";
+        url = "https://registry.npmjs.org/torrent-discovery/-/torrent-discovery-11.0.6.tgz";
+        sha512 = "9gnsBZLuOzbWlTIv0lx3pjmZ2Bj4WZfY06iO9AXKiNxA7/k508CWIE80PojYsgsR9SyjDkIVfnHLyJOgnDycvQ==";
       };
     };
-    "torrent-discovery-9.4.15" = {
+    "torrent-discovery-5.4.0" = {
       name = "torrent-discovery";
       packageName = "torrent-discovery";
-      version = "9.4.15";
+      version = "5.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/torrent-discovery/-/torrent-discovery-9.4.15.tgz";
-        sha512 = "71nx+TpLaF27mbsSj/tZTr588Dfk7XVzx+Rf1+nrxfXqe8qn5dIlRhgA+yY4cg8Ib69vWwkKFhAzbRqg8z42aw==";
+        url = "https://registry.npmjs.org/torrent-discovery/-/torrent-discovery-5.4.0.tgz";
+        sha512 = "bPTDIA7XEjRlw6vQyt7kM/h1mg1INBsibjbujISITonx4POENZgxfyCSEXZpDhbAkluSPH4HKRKs4/YTmNLC6w==";
       };
     };
     "torrent-piece-1.1.2" = {
@@ -54496,13 +53659,13 @@ let
         sha512 = "ElXPyXKKG73o+uziHJ8qlYE9EuyDVxnK2zWL+pW/2bma7RsLpSwFFIJAb8Qui7/tel2hsHQW1z3zBnfQNREpWA==";
       };
     };
-    "torrent-piece-2.0.1" = {
+    "torrent-piece-3.0.0" = {
       name = "torrent-piece";
       packageName = "torrent-piece";
-      version = "2.0.1";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/torrent-piece/-/torrent-piece-2.0.1.tgz";
-        sha512 = "JLSOyvQVLI6JTWqioY4vFL0JkEUKQcaHQsU3loxkCvPTSttw8ePs2tFwsP4XIjw99Fz8EdOzt/4faykcbnPbCQ==";
+        url = "https://registry.npmjs.org/torrent-piece/-/torrent-piece-3.0.0.tgz";
+        sha512 = "j0tRX7qq22nIuVFF57Tg/wAvFq79F1eM9pcMxY+b0qCCe7yXJnIrqF+Q5YEJ94tNisDnJzcqDHNrPmD9X/yAIg==";
       };
     };
     "torrent-stream-1.2.1" = {
@@ -54523,13 +53686,13 @@ let
         sha512 = "sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==";
       };
     };
-    "touch-3.1.0" = {
+    "touch-3.1.1" = {
       name = "touch";
       packageName = "touch";
-      version = "3.1.0";
+      version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz";
-        sha512 = "WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==";
+        url = "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz";
+        sha512 = "r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==";
       };
     };
     "tough-cookie-2.4.3" = {
@@ -54559,6 +53722,15 @@ let
         sha512 = "aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==";
       };
     };
+    "tough-cookie-4.1.4" = {
+      name = "tough-cookie";
+      packageName = "tough-cookie";
+      version = "4.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz";
+        sha512 = "Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==";
+      };
+    };
     "tr46-0.0.3" = {
       name = "tr46";
       packageName = "tr46";
@@ -54613,13 +53785,22 @@ let
         sha512 = "iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==";
       };
     };
-    "traverse-0.6.8" = {
+    "traverse-0.6.9" = {
       name = "traverse";
       packageName = "traverse";
-      version = "0.6.8";
+      version = "0.6.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/traverse/-/traverse-0.6.8.tgz";
-        sha512 = "aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==";
+        url = "https://registry.npmjs.org/traverse/-/traverse-0.6.9.tgz";
+        sha512 = "7bBrcF+/LQzSgFmT0X5YclVqQxtv7TDJ1f8Wj7ibBu/U6BMLeOpUxuZjV7rMc44UtKxlnMFigdhFAIszSX1DMg==";
+      };
+    };
+    "tree-dump-1.0.1" = {
+      name = "tree-dump";
+      packageName = "tree-dump";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.1.tgz";
+        sha512 = "WCkcRBVPSlHHq1dc/px9iOfqklvzCbdRwvlNfxGZsrHqf6aZttfPrd7DJTt6oR10dwUfpFFQeVTkPbBIZxX/YA==";
       };
     };
     "tree-kill-1.2.2" = {
@@ -54739,15 +53920,6 @@ let
         sha512 = "0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==";
       };
     };
-    "try-resolve-1.0.1" = {
-      name = "try-resolve";
-      packageName = "try-resolve";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/try-resolve/-/try-resolve-1.0.1.tgz";
-        sha512 = "yHeaPjCBzVaXwWl5IMUapTaTC2rn/eBYg2fsG2L+CvJd+ttFbk0ylDnpTO3wVhosmE1tQEvcebbBeKLCwScQSQ==";
-      };
-    };
     "ts-api-utils-1.3.0" = {
       name = "ts-api-utils";
       packageName = "ts-api-utils";
@@ -54766,15 +53938,6 @@ let
         sha512 = "q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==";
       };
     };
-    "ts-error-1.0.6" = {
-      name = "ts-error";
-      packageName = "ts-error";
-      version = "1.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ts-error/-/ts-error-1.0.6.tgz";
-        sha512 = "tLJxacIQUM82IR7JO1UUkKlYuUTmoY9HBJAmNWFzheSlDS5SPMcNIepejHJa4BpPQLAcbRhRf3GDJzyj6rbKvA==";
-      };
-    };
     "ts-interface-checker-0.1.13" = {
       name = "ts-interface-checker";
       packageName = "ts-interface-checker";
@@ -54946,6 +54109,15 @@ let
         sha512 = "g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==";
       };
     };
+    "tsx-4.11.2" = {
+      name = "tsx";
+      packageName = "tsx";
+      version = "4.11.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tsx/-/tsx-4.11.2.tgz";
+        sha512 = "V5DL5v1BuItjsQ2FN9+4OjR7n5cr8hSgN+VGmm/fd2/0cgQdBIWHcQ3bFYm/5ZTmyxkTDBUIaRuW2divgfPe0A==";
+      };
+    };
     "tty-browserify-0.0.1" = {
       name = "tty-browserify";
       packageName = "tty-browserify";
@@ -54964,13 +54136,13 @@ let
         sha512 = "i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==";
       };
     };
-    "tuf-js-2.2.0" = {
+    "tuf-js-2.2.1" = {
       name = "tuf-js";
       packageName = "tuf-js";
-      version = "2.2.0";
+      version = "2.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.0.tgz";
-        sha512 = "ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg==";
+        url = "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz";
+        sha512 = "GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==";
       };
     };
     "tumblr-0.4.1" = {
@@ -55072,22 +54244,13 @@ let
         sha512 = "Do7l/WzFnUZC14ABtZfDiOHKl6M9Ft5tE4YF0ev9XLm4yh7m8R98D82rzeDAMjbjMZk2R/tb6sgXXb3sPKoaVw==";
       };
     };
-    "txt-to-ast-3.0.3" = {
-      name = "txt-to-ast";
-      packageName = "txt-to-ast";
-      version = "3.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/txt-to-ast/-/txt-to-ast-3.0.3.tgz";
-        sha512 = "/XrQjW0e5Z915m1A0qeXD9tSLDmz8zGjR6imhGDme6rMtXYudFpXXhaToKnM52nPPCNdCh6YQsLLkwbbkFvzVA==";
-      };
-    };
-    "type-2.7.2" = {
+    "type-2.7.3" = {
       name = "type";
       packageName = "type";
-      version = "2.7.2";
+      version = "2.7.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/type/-/type-2.7.2.tgz";
-        sha512 = "dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==";
+        url = "https://registry.npmjs.org/type/-/type-2.7.3.tgz";
+        sha512 = "8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==";
       };
     };
     "type-check-0.3.2" = {
@@ -55225,13 +54388,22 @@ let
         sha512 = "tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==";
       };
     };
-    "type-fest-4.12.0" = {
+    "type-fest-4.18.3" = {
       name = "type-fest";
       packageName = "type-fest";
-      version = "4.12.0";
+      version = "4.18.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/type-fest/-/type-fest-4.12.0.tgz";
-        sha512 = "5Y2/pp2wtJk8o08G0CMkuFPCO354FGwk/vbidxrdhRGZfd0tFnb4Qb8anp9XxXriwBgVPjdWbKpGl4J9lJY2jQ==";
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-4.18.3.tgz";
+        sha512 = "Q08/0IrpvM+NMY9PA2rti9Jb+JejTddwmwmVQGskAlhtcrw1wsRzoR6ode6mR+OAabNa75w/dxedSUY2mlphaQ==";
+      };
+    };
+    "type-fest-4.19.0" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "4.19.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-4.19.0.tgz";
+        sha512 = "CN2l+hWACRiejlnr68vY0/7734Kzu+9+TOslUXbSCQ1ruY9XIHDBSceVXCcHm/oXrdzhtLMMdJEKfemf1yXiZQ==";
       };
     };
     "type-is-1.6.18" = {
@@ -55270,13 +54442,13 @@ let
         sha512 = "Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==";
       };
     };
-    "typed-array-length-1.0.5" = {
+    "typed-array-length-1.0.6" = {
       name = "typed-array-length";
       packageName = "typed-array-length";
-      version = "1.0.5";
+      version = "1.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz";
-        sha512 = "yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==";
+        url = "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz";
+        sha512 = "/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==";
       };
     };
     "typed-rest-client-1.8.11" = {
@@ -55306,6 +54478,15 @@ let
         sha512 = "zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==";
       };
     };
+    "typedarray.prototype.slice-1.0.3" = {
+      name = "typedarray.prototype.slice";
+      packageName = "typedarray.prototype.slice";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typedarray.prototype.slice/-/typedarray.prototype.slice-1.0.3.tgz";
+        sha512 = "8WbVAQAUlENo1q3c3zZYuy5k9VzBQvp8AX9WOtbvyWlLM1v5JaSRmjubLjzHF4JFtptjH/5c/i95yaElvcjC0A==";
+      };
+    };
     "typesafe-path-0.2.2" = {
       name = "typesafe-path";
       packageName = "typesafe-path";
@@ -55369,22 +54550,22 @@ let
         sha512 = "pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==";
       };
     };
-    "typescript-5.4.2" = {
+    "typescript-5.4.5" = {
       name = "typescript";
       packageName = "typescript";
-      version = "5.4.2";
+      version = "5.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz";
-        sha512 = "+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==";
+        url = "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz";
+        sha512 = "vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==";
       };
     };
-    "typescript-5.5.0-dev.20240318" = {
+    "typescript-5.6.0-dev.20240604" = {
       name = "typescript";
       packageName = "typescript";
-      version = "5.5.0-dev.20240318";
+      version = "5.6.0-dev.20240604";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-5.5.0-dev.20240318.tgz";
-        sha512 = "NLUk3mN8h9UWmeFns5dhiRIIZffmDePNOMPwwr36tYoJikteOGLNCOOcCP2Yvc+cOzl/mkBOUaEngUBGYRJBGw==";
+        url = "https://registry.npmjs.org/typescript/-/typescript-5.6.0-dev.20240604.tgz";
+        sha512 = "uwpkMy5U51ERVvVtQmDZwjYllREGrqP35JcdR5yWIoZ7ZE2I1oDsDs3mtLiiiccyHspCZ54Z741ibuP3NbACtg==";
       };
     };
     "typescript-auto-import-cache-0.2.1" = {
@@ -55450,13 +54631,13 @@ let
         sha512 = "RqshF7TPTE0XLYAqmjlu5cLLuGdKrNu9O1KLA/qp39QtbZwuzwv1dT46DZSopoUMsYgXpB3Cv8a03FI8b74oFQ==";
       };
     };
-    "ua-parser-js-1.0.37" = {
+    "ua-parser-js-1.0.38" = {
       name = "ua-parser-js";
       packageName = "ua-parser-js";
-      version = "1.0.37";
+      version = "1.0.38";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.37.tgz";
-        sha512 = "bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==";
+        url = "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.38.tgz";
+        sha512 = "Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ==";
       };
     };
     "uc.micro-1.0.6" = {
@@ -55468,6 +54649,15 @@ let
         sha512 = "8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==";
       };
     };
+    "uc.micro-2.1.0" = {
+      name = "uc.micro";
+      packageName = "uc.micro";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz";
+        sha512 = "ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==";
+      };
+    };
     "uglify-js-2.8.29" = {
       name = "uglify-js";
       packageName = "uglify-js";
@@ -55540,13 +54730,22 @@ let
         sha512 = "IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA==";
       };
     };
-    "uint64be-2.0.2" = {
-      name = "uint64be";
-      packageName = "uint64be";
-      version = "2.0.2";
+    "uint8-util-2.2.5" = {
+      name = "uint8-util";
+      packageName = "uint8-util";
+      version = "2.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uint8-util/-/uint8-util-2.2.5.tgz";
+        sha512 = "/QxVQD7CttWpVUKVPz9znO+3Dd4BdTSnFQ7pv/4drVhC9m4BaL2LFHTkJn6EsYoxT79VDq/2Gg8L0H22PrzyMw==";
+      };
+    };
+    "uint8array-extras-0.3.0" = {
+      name = "uint8array-extras";
+      packageName = "uint8array-extras";
+      version = "0.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uint64be/-/uint64be-2.0.2.tgz";
-        sha512 = "9QqdvpGQTXgxthP+lY4e/gIBy+RuqcBaC6JVwT5I3bDLgT/btL6twZMR0pI3/Fgah9G/pdwzIprE5gL6v9UvyQ==";
+        url = "https://registry.npmjs.org/uint8array-extras/-/uint8array-extras-0.3.0.tgz";
+        sha512 = "erJsJwQ0tKdwuqI0359U8ijkFmfiTcq25JvvzRVc1VP+2son1NJRXhxcAKJmAW3ajM8JSGAfsAXye8g4s+znxA==";
       };
     };
     "ultron-1.0.2" = {
@@ -55675,22 +54874,22 @@ let
         sha512 = "/Arq1q7vh5kzmw4brlCZQw3jxc3KEGHqaNXCYEvMAg5ZK0iVwK9WsejPuC6YjcF2jpm8PTUtaLUjbziS+ku5sA==";
       };
     };
-    "undertaker-1.3.0" = {
+    "undertaker-2.0.0" = {
       name = "undertaker";
       packageName = "undertaker";
-      version = "1.3.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz";
-        sha512 = "/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==";
+        url = "https://registry.npmjs.org/undertaker/-/undertaker-2.0.0.tgz";
+        sha512 = "tO/bf30wBbTsJ7go80j0RzA2rcwX6o7XPBpeFcb+jzoeb4pfMM2zUeSDIkY1AWqeZabWxaQZ/h8N9t35QKDLPQ==";
       };
     };
-    "undertaker-registry-1.0.1" = {
+    "undertaker-registry-2.0.0" = {
       name = "undertaker-registry";
       packageName = "undertaker-registry";
-      version = "1.0.1";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz";
-        sha512 = "UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==";
+        url = "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-2.0.0.tgz";
+        sha512 = "+hhVICbnp+rlzZMgxXenpvTxpuvA67Bfgtt+O9WOE5jo7w/dyiF1VmoZVIHvP2EkUjsyKyTwYKlLhA+j47m1Ew==";
       };
     };
     "undici-5.26.5" = {
@@ -55702,13 +54901,13 @@ let
         sha512 = "cSb4bPFd5qgR7qr2jYAi0hlX9n5YKK2ONKkLFkxl+v/9BvC0sOpZjBHDBSXc5lWAf5ty9oZdRXytBIHzgUcerw==";
       };
     };
-    "undici-5.28.3" = {
+    "undici-5.28.4" = {
       name = "undici";
       packageName = "undici";
-      version = "5.28.3";
+      version = "5.28.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/undici/-/undici-5.28.3.tgz";
-        sha512 = "3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==";
+        url = "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz";
+        sha512 = "72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==";
       };
     };
     "undici-types-5.26.5" = {
@@ -55738,22 +54937,13 @@ let
         sha512 = "yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==";
       };
     };
-    "unicode-emoji-json-0.4.0" = {
+    "unicode-emoji-json-0.6.0" = {
       name = "unicode-emoji-json";
       packageName = "unicode-emoji-json";
-      version = "0.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/unicode-emoji-json/-/unicode-emoji-json-0.4.0.tgz";
-        sha512 = "lVNOwh2AnmbwqtSrEVjAWKQoVzWgyWmXVqPuPkPfKb0tnA0+uYN/4ILCTdy9IRj/+3drAVhmjwjNJQr2dhCwnA==";
-      };
-    };
-    "unicode-emoji-modifier-base-1.0.0" = {
-      name = "unicode-emoji-modifier-base";
-      packageName = "unicode-emoji-modifier-base";
-      version = "1.0.0";
+      version = "0.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz";
-        sha512 = "yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==";
+        url = "https://registry.npmjs.org/unicode-emoji-json/-/unicode-emoji-json-0.6.0.tgz";
+        sha512 = "tAYF+EsOxa8jo/XPNYHRX7Nc8uoII+/edIpHM4DQI4nMp3AuRmwGZhL8fEBe0kUk0zHK+6wiwxxxNwfW5ap2Tg==";
       };
     };
     "unicode-match-property-ecmascript-2.0.0" = {
@@ -55792,6 +54982,15 @@ let
         sha512 = "lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==";
       };
     };
+    "unicorn-magic-0.2.0" = {
+      name = "unicorn-magic";
+      packageName = "unicorn-magic";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.2.0.tgz";
+        sha512 = "q83y+/QtXrbKX1jYY+bdQROAbZj6EeSP+Plv0cYZBMPfirSaEvnnhMwRk2WH4n5XkNCQHygAiwTVNpvw3I1dCg==";
+      };
+    };
     "unified-10.1.2" = {
       name = "unified";
       packageName = "unified";
@@ -55810,15 +55009,6 @@ let
         sha512 = "apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==";
       };
     };
-    "unified-8.4.2" = {
-      name = "unified";
-      packageName = "unified";
-      version = "8.4.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/unified/-/unified-8.4.2.tgz";
-        sha512 = "JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA==";
-      };
-    };
     "unified-9.2.2" = {
       name = "unified";
       packageName = "unified";
@@ -55846,13 +55036,13 @@ let
         sha512 = "5+JDIs4hqKfHnJcVCxTid1yBoI/++FfF/1PFdSMpaftZZZY+qg2JFruRbf7PaIwa9KgLotXQV3gSjtY0IdcFGQ==";
       };
     };
-    "unified-engine-11.2.0" = {
+    "unified-engine-11.2.1" = {
       name = "unified-engine";
       packageName = "unified-engine";
-      version = "11.2.0";
+      version = "11.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unified-engine/-/unified-engine-11.2.0.tgz";
-        sha512 = "H9wEDpBSM0cpEUuuYAOIiPzLCVN0pjASZZ6FFNzgzYS/HHzl9tArk/ereOMGtcF8m8vgjzw+HrU3YN7oenT7Ww==";
+        url = "https://registry.npmjs.org/unified-engine/-/unified-engine-11.2.1.tgz";
+        sha512 = "xBAdZ8UY2X4R9Hm6X6kMne4Nz0PlpOc1oE6DPeqJnewr5Imkb8uT5Eyvy1h7xNekPL3PSWh3ZJyNrMW6jnNQBg==";
       };
     };
     "unified-lint-rule-1.0.6" = {
@@ -55900,15 +55090,6 @@ let
         sha512 = "Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==";
       };
     };
-    "unique-concat-0.2.2" = {
-      name = "unique-concat";
-      packageName = "unique-concat";
-      version = "0.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/unique-concat/-/unique-concat-0.2.2.tgz";
-        sha512 = "nFT3frbsvTa9rrc71FJApPqXF8oIhVHbX3IWgObQi1mF7WrW48Ys70daL7o4evZUtmUf6Qn6WK0LbHhyO0hpXw==";
-      };
-    };
     "unique-filename-1.1.1" = {
       name = "unique-filename";
       packageName = "unique-filename";
@@ -55963,15 +55144,6 @@ let
         sha512 = "WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==";
       };
     };
-    "unique-stream-2.3.1" = {
-      name = "unique-stream";
-      packageName = "unique-stream";
-      version = "2.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz";
-        sha512 = "2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==";
-      };
-    };
     "unique-string-1.0.0" = {
       name = "unique-string";
       packageName = "unique-string";
@@ -56413,15 +55585,6 @@ let
         sha512 = "45YsfD6svkgaCBNyvD+dFHm4qFX9g3wRSIVgWVPtm2OCnphvPxzJoe20ATsiNpNJrmzHifnxm+BN5F7gFT/4gw==";
       };
     };
-    "unordered-set-2.0.1" = {
-      name = "unordered-set";
-      packageName = "unordered-set";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/unordered-set/-/unordered-set-2.0.1.tgz";
-        sha512 = "eUmNTPzdx+q/WvOHW0bgGYLWvWHNT3PTKEQLg0MAQhc0AHASHVHoP/9YytYd4RBVariqno/mEUhVZN98CmD7bg==";
-      };
-    };
     "unorm-1.6.0" = {
       name = "unorm";
       packageName = "unorm";
@@ -56521,13 +55684,13 @@ let
         sha512 = "1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==";
       };
     };
-    "update-browserslist-db-1.0.13" = {
+    "update-browserslist-db-1.0.16" = {
       name = "update-browserslist-db";
       packageName = "update-browserslist-db";
-      version = "1.0.13";
+      version = "1.0.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz";
-        sha512 = "xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==";
+        url = "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz";
+        sha512 = "KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==";
       };
     };
     "update-check-1.5.3" = {
@@ -56620,24 +55783,6 @@ let
         sha512 = "WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==";
       };
     };
-    "upper-case-2.0.2" = {
-      name = "upper-case";
-      packageName = "upper-case";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz";
-        sha512 = "KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==";
-      };
-    };
-    "upper-case-first-2.0.2" = {
-      name = "upper-case-first";
-      packageName = "upper-case-first";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz";
-        sha512 = "514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==";
-      };
-    };
     "uri-js-4.4.1" = {
       name = "uri-js";
       packageName = "uri-js";
@@ -56800,22 +55945,22 @@ let
         sha512 = "PCKbdWw85JsYMvmCv5GH3kXmM66rCd9m1hBEDutPNv94b/pqCMT4NtcKyeWYvLFiE8b+ha1Jdl8XAaUdPn5QTg==";
       };
     };
-    "ut_metadata-3.5.2" = {
+    "ut_metadata-4.0.3" = {
       name = "ut_metadata";
       packageName = "ut_metadata";
-      version = "3.5.2";
+      version = "4.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ut_metadata/-/ut_metadata-3.5.2.tgz";
-        sha512 = "3XZZuJSeoIUyMYSuDbTbVtP4KAVGHPfU8nmHFkr8LJc+THCaUXwnu/2AV+LCSLarET/hL9IlbNfYTGrt6fOVuQ==";
+        url = "https://registry.npmjs.org/ut_metadata/-/ut_metadata-4.0.3.tgz";
+        sha512 = "2tovup0VDYpT8t8+EhhhKBmbgIyiYyJQZ+Hf+/61+SvjuRS2MEeA5CiSARP4q+9/83Wu09OsGrUre/Zv6OI5NA==";
       };
     };
-    "ut_pex-3.0.2" = {
+    "ut_pex-4.0.4" = {
       name = "ut_pex";
       packageName = "ut_pex";
-      version = "3.0.2";
+      version = "4.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ut_pex/-/ut_pex-3.0.2.tgz";
-        sha512 = "3xM88t+AVU5GR0sIY3tmRMLUS+YKiwStc7U7+ZFQ+UHQpX7BjVJOomhmtm0Bs+8R2n812Dt2ymXm01EqDrOOpQ==";
+        url = "https://registry.npmjs.org/ut_pex/-/ut_pex-4.0.4.tgz";
+        sha512 = "isVTbp2TKGoMOu+4Zh/i6ijpYr0VG83xjRPgCXaUjKzgXXndjCMWg32/9kZjubD+kxEXcmXMkoS8IttS9FZE8g==";
       };
     };
     "utf-8-validate-5.0.10" = {
@@ -56845,6 +55990,15 @@ let
         sha512 = "uIuGf9TWQ/y+0Lp+KGZCMuJWc3N9BHA+l/UmHd/oUHwJJDeysyTRxNQVkbzsIWfGFbRe3OcgML/i0mvVRPOyDA==";
       };
     };
+    "utf-8-validate-6.0.4" = {
+      name = "utf-8-validate";
+      packageName = "utf-8-validate";
+      version = "6.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-6.0.4.tgz";
+        sha512 = "xu9GQDeFp+eZ6LnCywXN/zBancWvOpUMzgjLPSjy4BRHSmTelvn2E0DG0o1sTiw5hkCKBHo8rwSKncfRfv2EEQ==";
+      };
+    };
     "utf7-1.0.2" = {
       name = "utf7";
       packageName = "utf7";
@@ -56953,15 +56107,6 @@ let
         sha512 = "2ZLjisH0HQkpqZTg2m7TK0Yn7TETTg7DxM0EpCKIIIV2ky9w9nSxW5a7gzdk4nH2h+pomrrGw0uywrUJfsm2eA==";
       };
     };
-    "utp-native-2.5.3" = {
-      name = "utp-native";
-      packageName = "utp-native";
-      version = "2.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/utp-native/-/utp-native-2.5.3.tgz";
-        sha512 = "sWTrWYXPhhWJh+cS2baPzhaZc89zwlWCfwSthUjGhLkZztyPhcQllo+XVVCbNGi7dhyRlxkWxN4NKU6FbA9Y8w==";
-      };
-    };
     "uuid-2.0.3" = {
       name = "uuid";
       packageName = "uuid";
@@ -57088,6 +56233,15 @@ let
         sha512 = "mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==";
       };
     };
+    "v8flags-4.0.1" = {
+      name = "v8flags";
+      packageName = "v8flags";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/v8flags/-/v8flags-4.0.1.tgz";
+        sha512 = "fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==";
+      };
+    };
     "valid-url-1.0.9" = {
       name = "valid-url";
       packageName = "valid-url";
@@ -57133,22 +56287,31 @@ let
         sha512 = "YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==";
       };
     };
-    "validator-13.11.0" = {
+    "validate-npm-package-name-5.0.1" = {
+      name = "validate-npm-package-name";
+      packageName = "validate-npm-package-name";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz";
+        sha512 = "OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==";
+      };
+    };
+    "validator-13.12.0" = {
       name = "validator";
       packageName = "validator";
-      version = "13.11.0";
+      version = "13.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz";
-        sha512 = "Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==";
+        url = "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz";
+        sha512 = "c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==";
       };
     };
-    "value-or-function-3.0.0" = {
+    "value-or-function-4.0.0" = {
       name = "value-or-function";
       packageName = "value-or-function";
-      version = "3.0.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz";
-        sha512 = "jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==";
+        url = "https://registry.npmjs.org/value-or-function/-/value-or-function-4.0.0.tgz";
+        sha512 = "aeVK81SIuT6aMJfNo9Vte8Dw0/FZINGBV8BfCraGtqVxIeLAEhJyoWs8SmvRVmXfGss2PmmOwZCuBPbZR+IYWg==";
       };
     };
     "value-or-promise-1.0.11" = {
@@ -57232,13 +56395,13 @@ let
         sha512 = "Hq72JaTpcTFdWiNA4Y22Amej2GH3BFmBaKPPlDZ4/oC8HNn2ISHLkFrJU4Ds8R3jcUi7oo5Y9jcMHKjES+N9wQ==";
       };
     };
-    "vega-5.28.0" = {
+    "vega-5.29.0" = {
       name = "vega";
       packageName = "vega";
-      version = "5.28.0";
+      version = "5.29.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega/-/vega-5.28.0.tgz";
-        sha512 = "5EDVhjBUgcVdrA6LZDBLah/nuk4FRUwZqTgP/Yi32qeRCoiN0xkptQ5Sbmj6XfH7wu1SdbAbsCm1Zls+9NC/8Q==";
+        url = "https://registry.npmjs.org/vega/-/vega-5.29.0.tgz";
+        sha512 = "4+pX8UIxV1rtHpIKvzHXof5CeyMTGKMDFtuN8UmSjvJ+l5FtSen++qmSxbAc/EnkLqo5i9B2iCYTr2og77EBrA==";
       };
     };
     "vega-canvas-1.2.7" = {
@@ -57268,13 +56431,13 @@ let
         sha512 = "EdsIl6gouH67+8B0f22Owr2tKDiMPNNR8lEvJDcxmFw02nXd8juimclpLvjPQriqn6ta+3Dn5txqfD117H04YA==";
       };
     };
-    "vega-encode-4.9.2" = {
+    "vega-encode-4.10.0" = {
       name = "vega-encode";
       packageName = "vega-encode";
-      version = "4.9.2";
+      version = "4.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega-encode/-/vega-encode-4.9.2.tgz";
-        sha512 = "c3J0LYkgYeXQxwnYkEzL15cCFBYPRaYUon8O2SZ6O4PhH4dfFTXBzSyT8+gh8AhBd572l2yGDfxpEYA6pOqdjg==";
+        url = "https://registry.npmjs.org/vega-encode/-/vega-encode-4.10.0.tgz";
+        sha512 = "TTWIXVWHLGMkPEUC1bLkQKZdKnHUTGcjO2JST3jxHFgnGtN/HOovjaeOm2mkOoxrHJgQERyKorpGprOttuY6Kg==";
       };
     };
     "vega-event-selector-3.0.1" = {
@@ -57394,22 +56557,22 @@ let
         sha512 = "0dDYXyFLQcxPQ2OQU0WuBVYLRZnm+/CwVu6i6N4idS7R9VXIX5581EkCh3pZ20pQ/+oaA7oJ0pR9rJgJ6rukRQ==";
       };
     };
-    "vega-scale-7.3.1" = {
+    "vega-scale-7.4.0" = {
       name = "vega-scale";
       packageName = "vega-scale";
-      version = "7.3.1";
+      version = "7.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega-scale/-/vega-scale-7.3.1.tgz";
-        sha512 = "tyTlaaCpHN2Ik/PPKl/j9ThadBDjPtypqW1D7IsUSkzfoZ7RPlI2jwAaoj2C/YW5jFRbEOx3njmjogp48I5CvA==";
+        url = "https://registry.npmjs.org/vega-scale/-/vega-scale-7.4.0.tgz";
+        sha512 = "+GxjtToQiR2OqnlvRsnVTaX/HGLG9EPiFWkIwSG5ZCLSAxm0CRiqAQvvRmj0HEeIw8F92aGRX4rSoM8qyGAK5A==";
       };
     };
-    "vega-scenegraph-4.11.2" = {
+    "vega-scenegraph-4.12.0" = {
       name = "vega-scenegraph";
       packageName = "vega-scenegraph";
-      version = "4.11.2";
+      version = "4.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.11.2.tgz";
-        sha512 = "PXSvv/L7Ek+9mwOTPLpzgkXdfGCR+AcWV5aquPGrqCWoiIF49VJkKFNT1HWxj3RZJX0XKo2r7SuXvRBb9EJ1aA==";
+        url = "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.12.0.tgz";
+        sha512 = "l0Us6TLRV7AAd1CxB6mvxXt9/psknqgrr0+6d1zNWtHL8tGszPE4FqllZC5m4ZtUouvE4PWKGybd5uJR0dpchw==";
       };
     };
     "vega-selections-5.4.2" = {
@@ -57466,13 +56629,13 @@ let
         sha512 = "omNmGiZBdjm/jnHjZlywyYqafscDdHaELHx1q96n5UOz/FlO9JO99P4B3jZg391EFG8dqhWjQilSf2JH6F1mIw==";
       };
     };
-    "vega-view-5.12.0" = {
+    "vega-view-5.12.1" = {
       name = "vega-view";
       packageName = "vega-view";
-      version = "5.12.0";
+      version = "5.12.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega-view/-/vega-view-5.12.0.tgz";
-        sha512 = "T3GY7UJNVZGrCUrAmE/OCrkoJQyOT/2dCgXgy9EvDMVv/sdrn7o1TMKhSV18nIr0m5A7m4mgKwrmguAfROY85g==";
+        url = "https://registry.npmjs.org/vega-view/-/vega-view-5.12.1.tgz";
+        sha512 = "9TdF35FTZNzfvfj+YM38vHOgfeGxMy2xMY+2B46ZHoustt3J/mxtfueu3RGFsGIitUGhFrmLeEHxlVHP/tY+sQ==";
       };
     };
     "vega-view-transforms-4.5.9" = {
@@ -57628,13 +56791,13 @@ let
         sha512 = "NdWWXkv6gcd7AZMvDomlQbK3MqFWL1RlGzMn++/O2TI+68+nqxCPTvLugdOtfSzXmjh+xUyhp07HhlrbJjT+mw==";
       };
     };
-    "vfile-reporter-8.1.0" = {
+    "vfile-reporter-8.1.1" = {
       name = "vfile-reporter";
       packageName = "vfile-reporter";
-      version = "8.1.0";
+      version = "8.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-8.1.0.tgz";
-        sha512 = "NfHyHdkCcy0BsXiLA3nId29TY7W7hgpc8nd8Soe3imATx5N4/+mkLYdMR+Y6Zvu6BXMMi0FZsD4FLCm1dN85Pg==";
+        url = "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-8.1.1.tgz";
+        sha512 = "qxRZcnFSQt6pWKn3PAk81yLK2rO2i7CDXpy8v8ZquiEOMLSnPw6BMSi9Y1sUCwGGl7a9b3CJT1CKpnRF7pp66g==";
       };
     };
     "vfile-reporter-pretty-7.0.0" = {
@@ -57691,15 +56854,6 @@ let
         sha512 = "BOMkqUnIghW/SZEVOUKC3p5lUZ8QzavLksEEMKR9Yr7jBuu0noiQVfyB7csOStFVFgpWzx+ApcZjkyFHQkJjmQ==";
       };
     };
-    "videostream-3.2.2" = {
-      name = "videostream";
-      packageName = "videostream";
-      version = "3.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/videostream/-/videostream-3.2.2.tgz";
-        sha512 = "4tz23yGGeATmbzj/ZnUm6wgQ4E1lzmMXu2mUA/c0G6adtWKxm1Di5YejdZdRsK6SdkLjKjhplFFYT7r+UUDKvA==";
-      };
-    };
     "vinyl-0.5.3" = {
       name = "vinyl";
       packageName = "vinyl";
@@ -57709,31 +56863,40 @@ let
         sha512 = "P5zdf3WB9uzr7IFoVQ2wZTmUwHL8cMZWJGzLBNCHNZ3NB6HTMsYABtt7z8tAGIINLXyAob9B9a1yzVGMFOYKEA==";
       };
     };
-    "vinyl-2.2.1" = {
+    "vinyl-3.0.0" = {
       name = "vinyl";
       packageName = "vinyl";
-      version = "2.2.1";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz";
+        sha512 = "rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==";
+      };
+    };
+    "vinyl-contents-2.0.0" = {
+      name = "vinyl-contents";
+      packageName = "vinyl-contents";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz";
-        sha512 = "LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==";
+        url = "https://registry.npmjs.org/vinyl-contents/-/vinyl-contents-2.0.0.tgz";
+        sha512 = "cHq6NnGyi2pZ7xwdHSW1v4Jfnho4TEGtxZHw01cmnc8+i7jgR6bRnED/LbrKan/Q7CvVLbnvA5OepnhbpjBZ5Q==";
       };
     };
-    "vinyl-fs-3.0.3" = {
+    "vinyl-fs-4.0.0" = {
       name = "vinyl-fs";
       packageName = "vinyl-fs";
-      version = "3.0.3";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz";
-        sha512 = "vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==";
+        url = "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-4.0.0.tgz";
+        sha512 = "7GbgBnYfaquMk3Qu9g22x000vbYkOex32930rBnc3qByw6HfMEAoELjCjoJv4HuEQxHAurT+nvMHm6MnJllFLw==";
       };
     };
-    "vinyl-sourcemap-1.1.0" = {
+    "vinyl-sourcemap-2.0.0" = {
       name = "vinyl-sourcemap";
       packageName = "vinyl-sourcemap";
-      version = "1.1.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz";
-        sha512 = "NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==";
+        url = "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-2.0.0.tgz";
+        sha512 = "BAEvWxbBUXvlNoFQVFVHpybBbjW1r03WhohJzJDSfgrrK5xVYIDTan6xN14DlyImShgDRv2gl9qhM6irVMsV0Q==";
       };
     };
     "vite-4.4.12" = {
@@ -57790,58 +56953,58 @@ let
         sha512 = "Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==";
       };
     };
-    "volar-service-css-0.0.34" = {
+    "volar-service-css-0.0.45" = {
       name = "volar-service-css";
       packageName = "volar-service-css";
-      version = "0.0.34";
+      version = "0.0.45";
       src = fetchurl {
-        url = "https://registry.npmjs.org/volar-service-css/-/volar-service-css-0.0.34.tgz";
-        sha512 = "C7ua0j80ZD7bsgALAz/cA1bykPehoIa5n+3+Ccr+YLpj0fypqw9iLUmGLX11CqzqNCO2XFGe/1eXB/c+SWrF/g==";
+        url = "https://registry.npmjs.org/volar-service-css/-/volar-service-css-0.0.45.tgz";
+        sha512 = "f+AlUI1+kESbcZSVaNJVAnK0c/9Da5StoxzPqA5/8VqUHJWNdubWNnwG5xpFVTfgh6pgTcey3UBhBfHytFaIOg==";
       };
     };
-    "volar-service-emmet-0.0.34" = {
+    "volar-service-emmet-0.0.45" = {
       name = "volar-service-emmet";
       packageName = "volar-service-emmet";
-      version = "0.0.34";
+      version = "0.0.45";
       src = fetchurl {
-        url = "https://registry.npmjs.org/volar-service-emmet/-/volar-service-emmet-0.0.34.tgz";
-        sha512 = "ubQvMCmHPp8Ic82LMPkgrp9ot+u2p/RDd0RyT0EykRkZpWsagHUF5HWkVheLfiMyx2rFuWx/+7qZPOgypx6h6g==";
+        url = "https://registry.npmjs.org/volar-service-emmet/-/volar-service-emmet-0.0.45.tgz";
+        sha512 = "9nLXSDkR1vA/3fQkFEsSXAu3XovQxOpTkVG2jilQgfek/K1ZLkaA/WMhN/TtmPmQg4NxE9Ni6mA5udBQ5gVXIA==";
       };
     };
-    "volar-service-html-0.0.34" = {
+    "volar-service-html-0.0.45" = {
       name = "volar-service-html";
       packageName = "volar-service-html";
-      version = "0.0.34";
+      version = "0.0.45";
       src = fetchurl {
-        url = "https://registry.npmjs.org/volar-service-html/-/volar-service-html-0.0.34.tgz";
-        sha512 = "kMEneea1tQbiRcyKavqdrSVt8zV06t+0/3pGkjO3gV6sikXTNShIDkdtB4Tq9vE2cQdM50TuS7utVV7iysUxHw==";
+        url = "https://registry.npmjs.org/volar-service-html/-/volar-service-html-0.0.45.tgz";
+        sha512 = "tLTJqfy1v5C4nmeAsfekFIKPl4r4qDMyL0L9MWywr/EApZzPCsbeUGxCqdzxSMC2q7PMCfX2i167txDo+J0LVA==";
       };
     };
-    "volar-service-prettier-0.0.34" = {
+    "volar-service-prettier-0.0.45" = {
       name = "volar-service-prettier";
       packageName = "volar-service-prettier";
-      version = "0.0.34";
+      version = "0.0.45";
       src = fetchurl {
-        url = "https://registry.npmjs.org/volar-service-prettier/-/volar-service-prettier-0.0.34.tgz";
-        sha512 = "BNfJ8FwfPi1Wm/JkuzNjraOLdtKieGksNT/bDyquygVawv1QUzO2HB1hiMKfZGdcSFG5ZL9R0j7bBfRTfXA2gg==";
+        url = "https://registry.npmjs.org/volar-service-prettier/-/volar-service-prettier-0.0.45.tgz";
+        sha512 = "+mBS2EsDgp/kunKEBnHvhBwIQm5v2ahw4NKpKdg4sTpXy3UxqHt+Fq/wRYQ7Z8LlNVNRVfp75ThjM+w2zaZBAw==";
       };
     };
-    "volar-service-typescript-0.0.34" = {
+    "volar-service-typescript-0.0.45" = {
       name = "volar-service-typescript";
       packageName = "volar-service-typescript";
-      version = "0.0.34";
+      version = "0.0.45";
       src = fetchurl {
-        url = "https://registry.npmjs.org/volar-service-typescript/-/volar-service-typescript-0.0.34.tgz";
-        sha512 = "NbAry0w8ZXFgGsflvMwmPDCzgJGx3C+eYxFEbldaumkpTAJiywECWiUbPIOfmEHgpOllUKSnhwtLlWFK4YnfQg==";
+        url = "https://registry.npmjs.org/volar-service-typescript/-/volar-service-typescript-0.0.45.tgz";
+        sha512 = "i/mMIIAMastJ2kgPo3qvX0Rrl7NyxhIYZ0ug/B4ambZcLPI1vzBgS2fmvyWX3jhBYHh8NmbAotFj+0Y9JtN47A==";
       };
     };
-    "volar-service-typescript-twoslash-queries-0.0.34" = {
+    "volar-service-typescript-twoslash-queries-0.0.45" = {
       name = "volar-service-typescript-twoslash-queries";
       packageName = "volar-service-typescript-twoslash-queries";
-      version = "0.0.34";
+      version = "0.0.45";
       src = fetchurl {
-        url = "https://registry.npmjs.org/volar-service-typescript-twoslash-queries/-/volar-service-typescript-twoslash-queries-0.0.34.tgz";
-        sha512 = "XAY2YtWKUp6ht89gxt3L5Dr46LU45d/VlBkj1KXUwNlinpoWiGN4Nm3B6DRF3VoBThAnQgm4c7WD0S+5yTzh+w==";
+        url = "https://registry.npmjs.org/volar-service-typescript-twoslash-queries/-/volar-service-typescript-twoslash-queries-0.0.45.tgz";
+        sha512 = "KrPUUvKggZgV9mrDpstCzmf20irgv0ooMv+FGDzIIQUkya+d2+nSS8Mx2h9FvsYgLccUVw5jU3Rhwhd3pv/7qg==";
       };
     };
     "vscode-css-languageservice-3.0.13" = {
@@ -57853,13 +57016,13 @@ let
         sha512 = "RWkO/c/A7iXhHEy3OuEqkCqavDjpD4NF2Ca8vjai+ZtEYNeHrm1ybTnBYLP4Ft1uXvvaaVtYA9HrDjD6+CUONg==";
       };
     };
-    "vscode-css-languageservice-6.2.12" = {
+    "vscode-css-languageservice-6.2.14" = {
       name = "vscode-css-languageservice";
       packageName = "vscode-css-languageservice";
-      version = "6.2.12";
+      version = "6.2.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.2.12.tgz";
-        sha512 = "PS9r7HgNjqzRl3v91sXpCyZPc8UDotNo6gntFNtGCKPhGA9Frk7g/VjX1Mbv3F00pn56D+rxrFzR9ep4cawOgA==";
+        url = "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.2.14.tgz";
+        sha512 = "5UPQ9Y1sUTnuMyaMBpO7LrBkqjhEJb5eAwdUlDp+Uez8lry+Tspnk3+3p2qWS4LlNsr4p3v9WkZxUf1ltgFpgw==";
       };
     };
     "vscode-emmet-helper-1.2.17" = {
@@ -57880,13 +57043,22 @@ let
         sha512 = "mIb5VMXM5jI97HzCk2eadI1K//rCEZXte0wBqA7PGXsyJH4KTyJUaYk9MR+mbfpUl2vMi3HZw9GUOLGYLc6l5w==";
       };
     };
-    "vscode-html-languageservice-5.1.2" = {
+    "vscode-html-languageservice-5.2.0" = {
       name = "vscode-html-languageservice";
       packageName = "vscode-html-languageservice";
-      version = "5.1.2";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.2.0.tgz";
+        sha512 = "cdNMhyw57/SQzgUUGSIMQ66jikqEN6nBNyhx5YuOyj9310+eY9zw8Q0cXpiKzDX8aHYFewQEXRnigl06j/TVwQ==";
+      };
+    };
+    "vscode-html-languageservice-5.2.0-34a5462" = {
+      name = "vscode-html-languageservice";
+      packageName = "vscode-html-languageservice";
+      version = "5.2.0-34a5462";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.1.2.tgz";
-        sha512 = "wkWfEx/IIR3s2P5yD4aTGHiOb8IAzFxgkSt1uSC3itJ4oDAm23yG7o0L29JljUdnXDDgLafPAvhv8A2I/8riHw==";
+        url = "https://registry.npmjs.org/@johnsoncodehk/vscode-html-languageservice/-/vscode-html-languageservice-5.2.0-34a5462.tgz";
+        sha512 = "etqLfpSJ5zaw76KUNF603be6d6QsiQPmaHr9FKEp4zhLZJzWCCMH6Icak7MtLUFLZLMpL761mZNImi/joBo1ZA==";
       };
     };
     "vscode-json-languageservice-3.11.0" = {
@@ -57907,13 +57079,13 @@ let
         sha512 = "xGmv9QIWs2H8obGbWg+sIPI/3/pFgj/5OWBhNzs00BkYQ9UaB2F6JJaGB/2/YOZJ3BvLXQTC4Q7muqU25QgAhA==";
       };
     };
-    "vscode-json-languageservice-5.3.9" = {
+    "vscode-json-languageservice-5.3.11" = {
       name = "vscode-json-languageservice";
       packageName = "vscode-json-languageservice";
-      version = "5.3.9";
+      version = "5.3.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-5.3.9.tgz";
-        sha512 = "0IcymTw0ZYX5Zcx+7KLLwTRvg0FzXUVnM1hrUH+sPhqEX0fHGg2h5UUOSp1f8ydGS7/xxzlFI3TR01yaHs6Y0Q==";
+        url = "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-5.3.11.tgz";
+        sha512 = "WYS72Ymria3dn8ZbjtBbt5K71m05wY1Q6hpXV5JxUT0q75Ts0ljLmnZJAVpx8DjPgYbFD+Z8KHpWh2laKLUCtQ==";
       };
     };
     "vscode-jsonrpc-3.5.0" = {
@@ -57997,6 +57169,15 @@ let
         sha512 = "1FQrqLselaLLe5ApFSU/8qGUbJ8tByWbqczMkT2PEDpDYthCQTe5wONPuVphe7BB+FvZwvBFI2kFkY7FtyHc1A==";
       };
     };
+    "vscode-jsonrpc-8.2.1" = {
+      name = "vscode-jsonrpc";
+      packageName = "vscode-jsonrpc";
+      version = "8.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.1.tgz";
+        sha512 = "kdjOSJ2lLIn7r1rtrMbbNCHjyMPfRnowdKjBQ+mGq6NAW5QY2bEZC/khaC5OR8svbbjvLEaIXkOq45e2X9BIbQ==";
+      };
+    };
     "vscode-languageclient-8.1.0" = {
       name = "vscode-languageclient";
       packageName = "vscode-languageclient";
@@ -58402,13 +57583,13 @@ let
         sha512 = "qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==";
       };
     };
-    "vue-eslint-parser-9.4.2" = {
+    "vue-eslint-parser-9.4.3" = {
       name = "vue-eslint-parser";
       packageName = "vue-eslint-parser";
-      version = "9.4.2";
+      version = "9.4.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz";
-        sha512 = "Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==";
+        url = "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz";
+        sha512 = "2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==";
       };
     };
     "vue-template-compiler-2.7.16" = {
@@ -58519,24 +57700,6 @@ let
         sha512 = "DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==";
       };
     };
-    "weasel-words-0.1.1" = {
-      name = "weasel-words";
-      packageName = "weasel-words";
-      version = "0.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/weasel-words/-/weasel-words-0.1.1.tgz";
-        sha512 = "rWkTAGqs4TN6qreS06+irmFUMrQVx5KoFjD8CxMHUsAwmxw/upDcfleaEYOLsonUbornahg+VJ9xrWxp4udyJA==";
-      };
-    };
-    "web-namespaces-1.1.4" = {
-      name = "web-namespaces";
-      packageName = "web-namespaces";
-      version = "1.1.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz";
-        sha512 = "wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==";
-      };
-    };
     "web-namespaces-2.0.1" = {
       name = "web-namespaces";
       packageName = "web-namespaces";
@@ -58591,13 +57754,13 @@ let
         sha512 = "mpXlqIeEBE5Q71cnBnt8w6XKhIiKmllPECqsIFBtMvzcfCxA8+614iyMJXBCQo95Vs3y1zORLqiLJn25pYZ4Tw==";
       };
     };
-    "web-tree-sitter-0.20.8" = {
+    "web-tree-sitter-0.22.5" = {
       name = "web-tree-sitter";
       packageName = "web-tree-sitter";
-      version = "0.20.8";
+      version = "0.22.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/web-tree-sitter/-/web-tree-sitter-0.20.8.tgz";
-        sha512 = "weOVgZ3aAARgdnb220GqYuh7+rZU0Ka9k9yfKtGAzEYMa6GgiCzW9JjQRJyCJakvibQW+dfjJdihjInKuuCAUQ==";
+        url = "https://registry.npmjs.org/web-tree-sitter/-/web-tree-sitter-0.22.5.tgz";
+        sha512 = "rGX2jRXjcGOhf35zWyO0i/+Wjz4/KVUYN9Oh3AhDsZ0fGOgTIkw/bMhqwvc8L7HgMK8rqDq9RcROWc7lnsnhWg==";
       };
     };
     "web-vitals-0.2.4" = {
@@ -58636,13 +57799,13 @@ let
         sha512 = "WkwV9qJLZZm1ygrryt4+6hAKbk4jLSVCpE92RYk/MOtLSpxq/2S1U0JFyKgsASXhYU5hqHQRiXvFBoNQhfCHyg==";
       };
     };
-    "webcrypto-core-1.7.8" = {
+    "webcrypto-core-1.8.0" = {
       name = "webcrypto-core";
       packageName = "webcrypto-core";
-      version = "1.7.8";
+      version = "1.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.8.tgz";
-        sha512 = "eBR98r9nQXTqXt/yDRtInszPMjTaSAMJAFDg2AHsgrnczawT1asx9YNBX6k5p+MekbPF4+s/UJJrr88zsTqkSg==";
+        url = "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.8.0.tgz";
+        sha512 = "kR1UQNH8MD42CYuLzvibfakG5Ew5seG85dMMoAM/1LqvckxaF6pUiidLuraIu4V+YCIFabYecUZAW0TuxAoaqw==";
       };
     };
     "webidl-conversions-3.0.1" = {
@@ -58690,13 +57853,13 @@ let
         sha512 = "VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==";
       };
     };
-    "webpack-5.90.3" = {
+    "webpack-5.91.0" = {
       name = "webpack";
       packageName = "webpack";
-      version = "5.90.3";
+      version = "5.91.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz";
-        sha512 = "h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==";
+        url = "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz";
+        sha512 = "rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==";
       };
     };
     "webpack-cli-5.1.4" = {
@@ -58717,31 +57880,31 @@ let
         sha512 = "w4/dvbCVeuhmmY2TnnHSjo7SWXfYicNdjdGU7CixZy8rxyXBSMCdlArSFgxJ/DWctLMWJ5whxIcMNm7twIPi6A==";
       };
     };
-    "webpack-dev-middleware-5.3.3" = {
+    "webpack-dev-middleware-5.3.4" = {
       name = "webpack-dev-middleware";
       packageName = "webpack-dev-middleware";
-      version = "5.3.3";
+      version = "5.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz";
-        sha512 = "hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==";
+        url = "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz";
+        sha512 = "BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==";
       };
     };
-    "webpack-dev-middleware-7.0.0" = {
+    "webpack-dev-middleware-7.2.1" = {
       name = "webpack-dev-middleware";
       packageName = "webpack-dev-middleware";
-      version = "7.0.0";
+      version = "7.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.0.0.tgz";
-        sha512 = "tZ5hqsWwww/8DislmrzXE3x+4f+v10H1z57mA2dWFrILb4i3xX+dPhTkcdR0DLyQztrhF2AUmO5nN085UYjd/Q==";
+        url = "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.2.1.tgz";
+        sha512 = "hRLz+jPQXo999Nx9fXVdKlg/aehsw1ajA9skAneGmT03xwmyuhvF93p6HUKKbWhXdcERtGTzUCtIQr+2IQegrA==";
       };
     };
-    "webpack-dev-server-4.15.1" = {
+    "webpack-dev-server-4.15.2" = {
       name = "webpack-dev-server";
       packageName = "webpack-dev-server";
-      version = "4.15.1";
+      version = "4.15.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz";
-        sha512 = "5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==";
+        url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz";
+        sha512 = "0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==";
       };
     };
     "webpack-manifest-plugin-4.1.1" = {
@@ -58780,6 +57943,15 @@ let
         sha512 = "/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==";
       };
     };
+    "webrtc-polyfill-1.1.6" = {
+      name = "webrtc-polyfill";
+      packageName = "webrtc-polyfill";
+      version = "1.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webrtc-polyfill/-/webrtc-polyfill-1.1.6.tgz";
+        sha512 = "sB9m4P5ZF6Af1zNiMc/jW+PMVtvPSRuE3f0FNhje5iplljZ5mAUTUtZTdaoi+l5Z17/ePQinJbNDfT+YzB6fdQ==";
+      };
+    };
     "websocket-driver-0.7.4" = {
       name = "websocket-driver";
       packageName = "websocket-driver";
@@ -58798,13 +57970,13 @@ let
         sha512 = "OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==";
       };
     };
-    "webtorrent-1.9.7" = {
+    "webtorrent-2.3.6" = {
       name = "webtorrent";
       packageName = "webtorrent";
-      version = "1.9.7";
+      version = "2.3.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webtorrent/-/webtorrent-1.9.7.tgz";
-        sha512 = "N+hRuVctWviTAYem/sI6tuFP2J/Rn3/ETEh++7GnJv6Oro49kDjcPuz1W6s+vfS65xKr3Eh4HMuxf3hH82LGfg==";
+        url = "https://registry.npmjs.org/webtorrent/-/webtorrent-2.3.6.tgz";
+        sha512 = "JH+jXz+zR6erd9mLGb+HV18B+6EsdY+Jseg7G+asilGSLhP2VfOxa5spFJ3rF22j+LOQo+U8vuFk9S9XvPQJGg==";
       };
     };
     "whatwg-encoding-1.0.5" = {
@@ -59041,6 +58213,15 @@ let
         sha512 = "o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==";
       };
     };
+    "widest-line-5.0.0" = {
+      name = "widest-line";
+      packageName = "widest-line";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/widest-line/-/widest-line-5.0.0.tgz";
+        sha512 = "c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==";
+      };
+    };
     "wikimedia-kad-fork-1.3.6" = {
       name = "wikimedia-kad-fork";
       packageName = "wikimedia-kad-fork";
@@ -59158,13 +58339,13 @@ let
         sha512 = "L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==";
       };
     };
-    "winston-3.12.0" = {
+    "winston-3.13.0" = {
       name = "winston";
       packageName = "winston";
-      version = "3.12.0";
+      version = "3.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/winston/-/winston-3.12.0.tgz";
-        sha512 = "OwbxKaOlESDi01mC9rkM0dQqQt2I8DAUMRLZ/HpbwvDXm85IryEHgoogy5fziQy38PntgZsLlhAYHz//UPHZ5w==";
+        url = "https://registry.npmjs.org/winston/-/winston-3.13.0.tgz";
+        sha512 = "rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ==";
       };
     };
     "winston-transport-4.7.0" = {
@@ -59266,13 +58447,13 @@ let
         sha512 = "rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==";
       };
     };
-    "workerd-1.20240304.0" = {
+    "workerd-1.20240524.0" = {
       name = "workerd";
       packageName = "workerd";
-      version = "1.20240304.0";
+      version = "1.20240524.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workerd/-/workerd-1.20240304.0.tgz";
-        sha512 = "/tYxdypPh9NKQje9r7bgBB73vAQfCQZbEPjNlxE/ml7jNKMHnRZv/D+By4xO0IPAifa37D0sJFokvYOahz1Lqw==";
+        url = "https://registry.npmjs.org/workerd/-/workerd-1.20240524.0.tgz";
+        sha512 = "LWLe5D8PVHBcqturmBbwgI71r7YPpIMYZoVEH6S4G35EqIJ55cb0n3FipoSyraoIfpcCxCFxX1K6WsRHbP3pFA==";
       };
     };
     "workerpool-6.2.1" = {
@@ -59347,6 +58528,15 @@ let
         sha512 = "si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==";
       };
     };
+    "wrap-ansi-9.0.0" = {
+      name = "wrap-ansi";
+      packageName = "wrap-ansi";
+      version = "9.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz";
+        sha512 = "G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==";
+      };
+    };
     "wrap-ansi-cjs-7.0.0" = {
       name = "wrap-ansi-cjs";
       packageName = "wrap-ansi-cjs";
@@ -59383,15 +58573,6 @@ let
         sha512 = "CJ17OoULEKXpA5pef3qLj5AxTJ6mSt7g84he2WIskKwqFO4T97d5V7Tadl0DYDk7qyUOQD5WlUlOMChaYrhxeA==";
       };
     };
-    "write-1.0.3" = {
-      name = "write";
-      packageName = "write";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/write/-/write-1.0.3.tgz";
-        sha512 = "/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==";
-      };
-    };
     "write-file-atomic-1.3.4" = {
       name = "write-file-atomic";
       packageName = "write-file-atomic";
@@ -59428,15 +58609,6 @@ let
         sha512 = "+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==";
       };
     };
-    "write-good-1.0.8" = {
-      name = "write-good";
-      packageName = "write-good";
-      version = "1.0.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/write-good/-/write-good-1.0.8.tgz";
-        sha512 = "P1Ct7+DNrOcr2JAxDZ3Q5i5sx2LSveu7iLaoUL0A+YiG0GKf0l5+9j3rwMeyh6JeTL1+HfQV1rnwEvzhNIvpFw==";
-      };
-    };
     "write-json-file-3.2.0" = {
       name = "write-json-file";
       packageName = "write-json-file";
@@ -59563,22 +58735,13 @@ let
         sha512 = "x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==";
       };
     };
-    "ws-8.16.0" = {
+    "ws-8.17.0" = {
       name = "ws";
       packageName = "ws";
-      version = "8.16.0";
+      version = "8.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz";
-        sha512 = "HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==";
-      };
-    };
-    "ws-8.5.0" = {
-      name = "ws";
-      packageName = "ws";
-      version = "8.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz";
-        sha512 = "BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==";
+        url = "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz";
+        sha512 = "uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==";
       };
     };
     "ws-8.8.1" = {
@@ -59779,15 +58942,6 @@ let
         sha512 = "T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==";
       };
     };
-    "xmlbuilder-0.4.3" = {
-      name = "xmlbuilder";
-      packageName = "xmlbuilder";
-      version = "0.4.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-0.4.3.tgz";
-        sha512 = "t3QW+VdXvxcy214Wf5Mvb+38RPW6EUG1RpMjjtG+esbAFh+/50PdXz1iGywefNl70DW2ucNWTXBw5buTgzDWyw==";
-      };
-    };
     "xmlbuilder-11.0.1" = {
       name = "xmlbuilder";
       packageName = "xmlbuilder";
@@ -60014,22 +59168,22 @@ let
         sha512 = "r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==";
       };
     };
-    "yaml-2.4.0" = {
+    "yaml-2.4.1" = {
       name = "yaml";
       packageName = "yaml";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yaml/-/yaml-2.4.0.tgz";
-        sha512 = "j9iR8g+/t0lArF4V6NE/QCfT+CO7iLqrXAHZbJdo+LfjqP1vR8Fg5bSiaq6Q2lOD1AUEVrEVIgABvBFYojJVYQ==";
+        url = "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz";
+        sha512 = "pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==";
       };
     };
-    "yaml-2.4.1" = {
+    "yaml-2.4.3" = {
       name = "yaml";
       packageName = "yaml";
-      version = "2.4.1";
+      version = "2.4.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz";
-        sha512 = "pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==";
+        url = "https://registry.npmjs.org/yaml/-/yaml-2.4.3.tgz";
+        sha512 = "sntgmxj8o7DE7g/Qi60cqpLBA3HG3STcDA0kO+WfB05jEKhZMbY7umNm2rBpQvsmZ16/lPXCJGW2672dgOUkrg==";
       };
     };
     "yaml-front-matter-4.1.1" = {
@@ -60122,15 +59276,6 @@ let
         sha512 = "LqodLrnIDM3IFT+Hf/5sxBnEGECrfdC1uIbgZeJmESCSo4HoCAaKEus8MylXHAkdacGc0ye+Qa+dpkuom8uVYA==";
       };
     };
-    "yargs-7.1.2" = {
-      name = "yargs";
-      packageName = "yargs";
-      version = "7.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz";
-        sha512 = "ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==";
-      };
-    };
     "yargs-parser-10.1.0" = {
       name = "yargs-parser";
       packageName = "yargs-parser";
@@ -60203,15 +59348,6 @@ let
         sha512 = "tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==";
       };
     };
-    "yargs-parser-5.0.1" = {
-      name = "yargs-parser";
-      packageName = "yargs-parser";
-      version = "5.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz";
-        sha512 = "wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==";
-      };
-    };
     "yargs-parser-7.0.0" = {
       name = "yargs-parser";
       packageName = "yargs-parser";
@@ -60383,24 +59519,6 @@ let
         sha512 = "PgrBqosQLM3gN2xBFIMDLACRTV9c365VqityKKpSTWpwR+U4LAFR3rSVyEoscWlu3EzX9+Y0I86GXUKxpHFl6w==";
       };
     };
-    "z-schema-5.0.6" = {
-      name = "z-schema";
-      packageName = "z-schema";
-      version = "5.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/z-schema/-/z-schema-5.0.6.tgz";
-        sha512 = "+XR1GhnWklYdfr8YaZv/iu+vY+ux7V5DS5zH1DQf6bO5ufrt/5cgNhVO5qyhsjFXvsqQb/f08DWE9b6uPscyAg==";
-      };
-    };
-    "zen-observable-0.8.15" = {
-      name = "zen-observable";
-      packageName = "zen-observable";
-      version = "0.8.15";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz";
-        sha512 = "PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==";
-      };
-    };
     "zeromq-5.3.1" = {
       name = "zeromq";
       packageName = "zeromq";
@@ -60437,15 +59555,6 @@ let
         sha512 = "9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==";
       };
     };
-    "zod-3.22.3" = {
-      name = "zod";
-      packageName = "zod";
-      version = "3.22.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/zod/-/zod-3.22.3.tgz";
-        sha512 = "EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==";
-      };
-    };
     "zod-3.22.4" = {
       name = "zod";
       packageName = "zod";
@@ -60455,22 +59564,13 @@ let
         sha512 = "iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==";
       };
     };
-    "zod-to-json-schema-3.21.4" = {
-      name = "zod-to-json-schema";
-      packageName = "zod-to-json-schema";
-      version = "3.21.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.21.4.tgz";
-        sha512 = "fjUZh4nQ1s6HMccgIeE0VP4QG/YRGPmyjO9sAh890aQKPEk3nqbfUXhMFaC+Dr5KvYBm8BCyvfpZf2jY9aGSsw==";
-      };
-    };
-    "zod-validation-error-1.3.1" = {
-      name = "zod-validation-error";
-      packageName = "zod-validation-error";
-      version = "1.3.1";
+    "zod-3.23.8" = {
+      name = "zod";
+      packageName = "zod";
+      version = "3.23.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-1.3.1.tgz";
-        sha512 = "cNEXpla+tREtNdAnNKY4xKY1SGOn2yzyuZMu4O0RQylX9apRpUjNcPkEc3uHIAr5Ct7LenjZt6RzjEH6+JsqVQ==";
+        url = "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz";
+        sha512 = "XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==";
       };
     };
     "zwitch-1.0.5" = {
@@ -60497,15 +59597,16 @@ in
   "@angular/cli" = nodeEnv.buildNodePackage {
     name = "_at_angular_slash_cli";
     packageName = "@angular/cli";
-    version = "17.3.0";
+    version = "18.0.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@angular/cli/-/cli-17.3.0.tgz";
-      sha512 = "xwxlimNP4MECkdzjc0+m7lGxighcH0ncAfEo9yUo+r+4EFalB/Q7DAQPIU1xkbBk8iJwcFhGFAnS1IeLur15kQ==";
+      url = "https://registry.npmjs.org/@angular/cli/-/cli-18.0.2.tgz";
+      sha512 = "shrxMD1bcWWh7WpBN3KTV+Lt8E62gURSUFhs6kdGLepMDif8LPAv45+hpt8SBU9VfQuL6AHa4cW8uDL9BKGlYA==";
     };
     dependencies = [
-      sources."@angular-devkit/architect-0.1703.0"
-      sources."@angular-devkit/core-17.3.0"
-      sources."@angular-devkit/schematics-17.3.0"
+      sources."@angular-devkit/architect-0.1800.2"
+      sources."@angular-devkit/core-18.0.2"
+      sources."@angular-devkit/schematics-18.0.2"
+      sources."@inquirer/figures-1.0.3"
       (sources."@isaacs/cliui-8.0.2" // {
         dependencies = [
           sources."ansi-regex-6.0.1"
@@ -60518,29 +59619,45 @@ in
       })
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@ljharb/through-2.3.13"
-      sources."@npmcli/agent-2.2.1"
-      sources."@npmcli/fs-3.1.0"
-      sources."@npmcli/git-5.0.4"
-      sources."@npmcli/installed-package-contents-2.0.2"
+      sources."@npmcli/agent-2.2.2"
+      sources."@npmcli/fs-3.1.1"
+      (sources."@npmcli/git-5.0.7" // {
+        dependencies = [
+          sources."isexe-3.1.1"
+          sources."which-4.0.0"
+        ];
+      })
+      sources."@npmcli/installed-package-contents-2.1.0"
       sources."@npmcli/node-gyp-3.0.0"
-      sources."@npmcli/package-json-5.0.0"
-      sources."@npmcli/promise-spawn-7.0.1"
-      sources."@npmcli/run-script-7.0.4"
-      sources."@schematics/angular-17.3.0"
-      sources."@sigstore/bundle-2.2.0"
-      sources."@sigstore/core-1.0.0"
-      sources."@sigstore/protobuf-specs-0.3.0"
-      sources."@sigstore/sign-2.2.3"
-      sources."@sigstore/tuf-2.3.1"
-      sources."@sigstore/verify-1.1.0"
+      sources."@npmcli/package-json-5.2.0"
+      (sources."@npmcli/promise-spawn-7.0.2" // {
+        dependencies = [
+          sources."isexe-3.1.1"
+          sources."which-4.0.0"
+        ];
+      })
+      sources."@npmcli/redact-2.0.0"
+      (sources."@npmcli/run-script-8.1.0" // {
+        dependencies = [
+          sources."isexe-3.1.1"
+          sources."which-4.0.0"
+        ];
+      })
+      sources."@schematics/angular-18.0.2"
+      sources."@sigstore/bundle-2.3.2"
+      sources."@sigstore/core-1.1.0"
+      sources."@sigstore/protobuf-specs-0.3.2"
+      sources."@sigstore/sign-2.3.2"
+      sources."@sigstore/tuf-2.3.4"
+      sources."@sigstore/verify-1.2.1"
       sources."@tufjs/canonical-json-2.0.0"
-      sources."@tufjs/models-2.0.0"
+      sources."@tufjs/models-2.0.1"
       sources."@yarnpkg/lockfile-1.1.0"
       sources."abbrev-2.0.0"
-      sources."agent-base-7.1.0"
+      sources."agent-base-7.1.1"
       sources."aggregate-error-3.1.0"
-      sources."ajv-8.12.0"
-      sources."ajv-formats-2.1.1"
+      sources."ajv-8.13.0"
+      sources."ajv-formats-3.0.1"
       sources."ansi-colors-4.1.3"
       sources."ansi-escapes-4.3.2"
       sources."ansi-regex-5.0.1"
@@ -60555,12 +59672,11 @@ in
       sources."binary-extensions-2.3.0"
       sources."bl-4.1.0"
       sources."brace-expansion-2.0.1"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."buffer-5.7.1"
-      sources."builtins-5.0.1"
-      sources."cacache-18.0.2"
+      sources."cacache-18.0.3"
       sources."call-bind-1.0.7"
-      sources."chalk-5.3.0"
+      sources."chalk-4.1.2"
       sources."chardet-0.7.0"
       sources."chokidar-3.6.0"
       sources."chownr-2.0.0"
@@ -60568,24 +59684,14 @@ in
       sources."cli-cursor-3.1.0"
       sources."cli-spinners-2.9.2"
       sources."cli-width-4.1.0"
-      (sources."cliui-8.0.1" // {
-        dependencies = [
-          sources."wrap-ansi-7.0.0"
-        ];
-      })
+      sources."cliui-8.0.1"
       sources."clone-1.0.4"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      (sources."cross-spawn-7.0.3" // {
-        dependencies = [
-          sources."isexe-2.0.0"
-          sources."which-2.0.2"
-        ];
-      })
-      sources."debug-4.3.4"
+      sources."cross-spawn-7.0.3"
+      sources."debug-4.3.5"
       sources."defaults-1.0.4"
       sources."define-data-property-1.1.4"
-      sources."define-lazy-prop-2.0.0"
       sources."eastasianwidth-0.2.0"
       sources."emoji-regex-8.0.0"
       sources."env-paths-2.2.1"
@@ -60593,12 +59699,10 @@ in
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
       sources."escalade-3.1.2"
-      sources."escape-string-regexp-1.0.5"
       sources."exponential-backoff-3.1.1"
       sources."external-editor-3.1.0"
       sources."fast-deep-equal-3.1.3"
-      sources."figures-3.2.0"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       (sources."foreground-child-3.1.1" // {
         dependencies = [
           sources."signal-exit-4.1.0"
@@ -60608,7 +59712,7 @@ in
       sources."function-bind-1.1.2"
       sources."get-caller-file-2.0.5"
       sources."get-intrinsic-1.2.4"
-      sources."glob-10.3.10"
+      sources."glob-10.4.1"
       sources."glob-parent-5.1.2"
       sources."gopd-1.0.1"
       sources."graceful-fs-4.2.11"
@@ -60617,22 +59721,26 @@ in
       sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."hasown-2.0.2"
-      sources."hosted-git-info-7.0.1"
+      sources."hosted-git-info-7.0.2"
       sources."http-cache-semantics-4.1.1"
       sources."http-proxy-agent-7.0.2"
       sources."https-proxy-agent-7.0.4"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
-      sources."ignore-walk-6.0.4"
+      sources."ignore-walk-6.0.5"
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
       sources."inherits-2.0.4"
       sources."ini-4.1.2"
-      sources."inquirer-9.2.15"
+      (sources."inquirer-9.2.22" // {
+        dependencies = [
+          sources."chalk-5.3.0"
+          sources."wrap-ansi-6.2.0"
+        ];
+      })
       sources."ip-address-9.0.5"
       sources."is-binary-path-2.1.0"
       sources."is-core-module-2.13.1"
-      sources."is-docker-2.2.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
@@ -60640,28 +59748,23 @@ in
       sources."is-lambda-1.0.1"
       sources."is-number-7.0.0"
       sources."is-unicode-supported-0.1.0"
-      sources."is-wsl-2.2.0"
-      sources."isexe-3.1.1"
-      sources."jackspeak-2.3.6"
+      sources."isexe-2.0.0"
+      sources."jackspeak-3.2.3"
       sources."jsbn-1.1.0"
-      sources."json-parse-even-better-errors-3.0.1"
+      sources."json-parse-even-better-errors-3.0.2"
       sources."json-schema-traverse-1.0.0"
       sources."jsonc-parser-3.2.1"
       sources."jsonparse-1.3.1"
       sources."lodash-4.17.21"
-      (sources."log-symbols-4.1.0" // {
-        dependencies = [
-          sources."chalk-4.1.2"
-        ];
-      })
-      sources."lru-cache-10.2.0"
-      sources."magic-string-0.30.8"
-      sources."make-fetch-happen-13.0.0"
+      sources."log-symbols-4.1.0"
+      sources."lru-cache-10.2.2"
+      sources."magic-string-0.30.10"
+      sources."make-fetch-happen-13.0.1"
       sources."mimic-fn-2.1.0"
-      sources."minimatch-9.0.3"
-      sources."minipass-7.0.4"
+      sources."minimatch-9.0.4"
+      sources."minipass-7.1.2"
       sources."minipass-collect-2.0.1"
-      sources."minipass-fetch-3.0.4"
+      sources."minipass-fetch-3.0.5"
       (sources."minipass-flush-1.0.5" // {
         dependencies = [
           sources."minipass-3.3.6"
@@ -60691,37 +59794,36 @@ in
       sources."ms-2.1.2"
       sources."mute-stream-1.0.0"
       sources."negotiator-0.6.3"
-      sources."node-gyp-10.0.1"
-      sources."nopt-7.2.0"
-      sources."normalize-package-data-6.0.0"
+      (sources."node-gyp-10.1.0" // {
+        dependencies = [
+          sources."isexe-3.1.1"
+          sources."proc-log-3.0.0"
+          sources."which-4.0.0"
+        ];
+      })
+      sources."nopt-7.2.1"
+      sources."normalize-package-data-6.0.1"
       sources."normalize-path-3.0.0"
-      sources."npm-bundled-3.0.0"
+      sources."npm-bundled-3.0.1"
       sources."npm-install-checks-6.3.0"
       sources."npm-normalize-package-bin-3.0.1"
-      sources."npm-package-arg-11.0.1"
+      sources."npm-package-arg-11.0.2"
       sources."npm-packlist-8.0.2"
-      sources."npm-pick-manifest-9.0.0"
-      sources."npm-registry-fetch-16.1.0"
+      sources."npm-pick-manifest-9.0.1"
+      sources."npm-registry-fetch-17.0.1"
       sources."onetime-5.1.2"
-      sources."open-8.4.2"
-      (sources."ora-5.4.1" // {
-        dependencies = [
-          sources."chalk-4.1.2"
-        ];
-      })
+      sources."ora-5.4.1"
       sources."os-tmpdir-1.0.2"
       sources."p-map-4.0.0"
-      sources."pacote-17.0.6"
+      sources."pacote-18.0.6"
       sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
-      sources."path-scurry-1.10.1"
-      sources."picomatch-4.0.1"
-      sources."proc-log-3.0.0"
+      sources."path-scurry-1.11.1"
+      sources."picomatch-4.0.2"
+      sources."proc-log-4.2.0"
       sources."promise-inflight-1.0.1"
       sources."promise-retry-2.0.1"
       sources."punycode-2.3.1"
-      sources."read-package-json-7.0.0"
-      sources."read-package-json-fast-3.0.2"
       sources."readable-stream-3.6.2"
       (sources."readdirp-3.6.0" // {
         dependencies = [
@@ -60737,26 +59839,22 @@ in
       sources."rxjs-7.8.1"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      (sources."semver-7.6.0" // {
-        dependencies = [
-          sources."lru-cache-6.0.0"
-        ];
-      })
+      sources."semver-7.6.2"
       sources."set-function-length-1.2.2"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-3.0.7"
-      sources."sigstore-2.2.2"
+      sources."sigstore-2.3.1"
       sources."smart-buffer-4.2.0"
-      sources."socks-2.8.1"
-      sources."socks-proxy-agent-8.0.2"
+      sources."socks-2.8.3"
+      sources."socks-proxy-agent-8.0.3"
       sources."source-map-0.7.4"
       sources."spdx-correct-3.2.0"
       sources."spdx-exceptions-2.5.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.17"
+      sources."spdx-license-ids-3.0.18"
       sources."sprintf-js-1.1.3"
-      sources."ssri-10.0.5"
+      sources."ssri-10.0.6"
       sources."string-width-4.2.3"
       sources."string-width-cjs-4.2.3"
       sources."string_decoder-1.3.0"
@@ -60765,7 +59863,7 @@ in
       sources."supports-color-7.2.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
       sources."symbol-observable-4.0.0"
-      (sources."tar-6.2.0" // {
+      (sources."tar-6.2.1" // {
         dependencies = [
           (sources."fs-minipass-2.1.0" // {
             dependencies = [
@@ -60778,17 +59876,17 @@ in
       sources."tmp-0.0.33"
       sources."to-regex-range-5.0.1"
       sources."tslib-2.6.2"
-      sources."tuf-js-2.2.0"
+      sources."tuf-js-2.2.1"
       sources."type-fest-0.21.3"
       sources."unique-filename-3.0.0"
       sources."unique-slug-4.0.0"
       sources."uri-js-4.4.1"
       sources."util-deprecate-1.0.2"
       sources."validate-npm-package-license-3.0.4"
-      sources."validate-npm-package-name-5.0.0"
+      sources."validate-npm-package-name-5.0.1"
       sources."wcwidth-1.0.1"
-      sources."which-4.0.0"
-      sources."wrap-ansi-6.2.0"
+      sources."which-2.0.2"
+      sources."wrap-ansi-7.0.0"
       sources."wrap-ansi-cjs-7.0.0"
       sources."y18n-5.0.8"
       sources."yallist-4.0.0"
@@ -60826,51 +59924,54 @@ in
   "@astrojs/language-server" = nodeEnv.buildNodePackage {
     name = "_at_astrojs_slash_language-server";
     packageName = "@astrojs/language-server";
-    version = "2.8.3";
+    version = "2.10.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@astrojs/language-server/-/language-server-2.8.3.tgz";
-      sha512 = "tO47Lcue7OPXfIDbKVDcshwpC13yaWaTVLyiSOnQ2Yng2Z2SgcJf06Cj4xMpJqGp6s7/o/gcQWYUTl2bpkWKig==";
+      url = "https://registry.npmjs.org/@astrojs/language-server/-/language-server-2.10.0.tgz";
+      sha512 = "crHXpqYfA5qWioiuZnZFpTsNItgBlF1f0S9MzDYS7/pfCALkHNJ7K3w9U/j0uMKymsT4hC7BfMaX0DYlfdSzHg==";
     };
     dependencies = [
-      sources."@astrojs/compiler-2.7.0"
+      sources."@astrojs/compiler-2.8.0"
       sources."@emmetio/abbreviation-2.3.3"
       sources."@emmetio/css-abbreviation-2.1.8"
+      sources."@emmetio/css-parser-0.4.0"
+      sources."@emmetio/html-matcher-1.3.0"
       sources."@emmetio/scanner-1.0.4"
+      sources."@emmetio/stream-reader-2.2.0"
+      sources."@emmetio/stream-reader-utils-0.1.0"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@volar/kit-2.1.2"
-      sources."@volar/language-core-2.1.2"
-      sources."@volar/language-server-2.1.2"
-      sources."@volar/language-service-2.1.2"
-      sources."@volar/snapshot-document-2.1.2"
-      sources."@volar/source-map-2.1.2"
-      sources."@volar/typescript-2.1.2"
-      (sources."@vscode/emmet-helper-2.9.2" // {
+      sources."@volar/kit-2.2.5"
+      sources."@volar/language-core-2.2.5"
+      sources."@volar/language-server-2.2.5"
+      sources."@volar/language-service-2.2.5"
+      sources."@volar/snapshot-document-2.2.5"
+      sources."@volar/source-map-2.2.5"
+      sources."@volar/typescript-2.2.5"
+      (sources."@vscode/emmet-helper-2.9.3" // {
         dependencies = [
           sources."vscode-uri-2.1.2"
         ];
       })
       sources."@vscode/l10n-0.0.16"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."emmet-2.4.7"
       sources."fast-glob-3.3.2"
       sources."fastq-1.17.1"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."glob-parent-5.1.2"
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.3"
       sources."is-number-7.0.0"
       sources."jsonc-parser-2.3.1"
-      sources."lru-cache-6.0.0"
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."muggle-string-0.4.1"
       sources."path-browserify-1.0.1"
       sources."picomatch-2.3.1"
-      sources."prettier-3.2.5"
-      (sources."prettier-plugin-astro-0.13.0" // {
+      sources."prettier-3.3.0"
+      (sources."prettier-plugin-astro-0.14.0" // {
         dependencies = [
           sources."@astrojs/compiler-1.8.2"
         ];
@@ -60881,24 +59982,29 @@ in
       sources."run-parallel-1.2.0"
       sources."s.color-0.0.15"
       sources."sass-formatter-0.7.9"
-      sources."semver-7.6.0"
+      sources."semver-7.6.2"
       sources."suf-log-2.5.3"
       sources."to-regex-range-5.0.1"
       sources."typesafe-path-0.2.2"
-      sources."typescript-5.4.2"
+      sources."typescript-5.4.5"
       sources."typescript-auto-import-cache-0.3.2"
-      sources."volar-service-css-0.0.34"
-      sources."volar-service-emmet-0.0.34"
-      sources."volar-service-html-0.0.34"
-      sources."volar-service-prettier-0.0.34"
-      sources."volar-service-typescript-0.0.34"
-      sources."volar-service-typescript-twoslash-queries-0.0.34"
-      (sources."vscode-css-languageservice-6.2.12" // {
+      sources."volar-service-css-0.0.45"
+      sources."volar-service-emmet-0.0.45"
+      (sources."volar-service-html-0.0.45" // {
         dependencies = [
           sources."@vscode/l10n-0.0.18"
+          sources."vscode-html-languageservice-5.2.0-34a5462"
         ];
       })
-      (sources."vscode-html-languageservice-5.1.2" // {
+      sources."volar-service-prettier-0.0.45"
+      sources."volar-service-typescript-0.0.45"
+      sources."volar-service-typescript-twoslash-queries-0.0.45"
+      (sources."vscode-css-languageservice-6.2.14" // {
+        dependencies = [
+          sources."@vscode/l10n-0.0.18"
+        ];
+      })
+      (sources."vscode-html-languageservice-5.2.0" // {
         dependencies = [
           sources."@vscode/l10n-0.0.18"
         ];
@@ -60910,7 +60016,6 @@ in
       sources."vscode-languageserver-types-3.17.5"
       sources."vscode-nls-5.2.0"
       sources."vscode-uri-3.0.8"
-      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -60925,42 +60030,42 @@ in
   "@babel/cli" = nodeEnv.buildNodePackage {
     name = "_at_babel_slash_cli";
     packageName = "@babel/cli";
-    version = "7.23.9";
+    version = "7.24.6";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@babel/cli/-/cli-7.23.9.tgz";
-      sha512 = "vB1UXmGDNEhcf1jNAHKT9IlYk1R+hehVTLFlCLHBi8gfuHQGP6uRjgXVYU0EVlI/qwAWpstqkBdf2aez3/z/5Q==";
+      url = "https://registry.npmjs.org/@babel/cli/-/cli-7.24.6.tgz";
+      sha512 = "Sm/YhG/0REw9SKByFHDf4hkk7PYsjcsOyZgHGz1nvab4tUTQ9N4XVv+ykK0Y+VCJ3OshA/7EDyxnwCd8NEP/mQ==";
     };
     dependencies = [
       sources."@ampproject/remapping-2.3.0"
-      sources."@babel/code-frame-7.23.5"
-      sources."@babel/compat-data-7.23.5"
-      (sources."@babel/core-7.24.0" // {
+      sources."@babel/code-frame-7.24.6"
+      sources."@babel/compat-data-7.24.6"
+      (sources."@babel/core-7.24.6" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      sources."@babel/generator-7.23.6"
-      (sources."@babel/helper-compilation-targets-7.23.6" // {
+      sources."@babel/generator-7.24.6"
+      (sources."@babel/helper-compilation-targets-7.24.6" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      sources."@babel/helper-environment-visitor-7.22.20"
-      sources."@babel/helper-function-name-7.23.0"
-      sources."@babel/helper-hoist-variables-7.22.5"
-      sources."@babel/helper-module-imports-7.22.15"
-      sources."@babel/helper-module-transforms-7.23.3"
-      sources."@babel/helper-simple-access-7.22.5"
-      sources."@babel/helper-split-export-declaration-7.22.6"
-      sources."@babel/helper-string-parser-7.23.4"
-      sources."@babel/helper-validator-identifier-7.22.20"
-      sources."@babel/helper-validator-option-7.23.5"
-      sources."@babel/helpers-7.24.0"
-      sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.24.0"
-      sources."@babel/template-7.24.0"
-      sources."@babel/traverse-7.24.0"
-      sources."@babel/types-7.24.0"
+      sources."@babel/helper-environment-visitor-7.24.6"
+      sources."@babel/helper-function-name-7.24.6"
+      sources."@babel/helper-hoist-variables-7.24.6"
+      sources."@babel/helper-module-imports-7.24.6"
+      sources."@babel/helper-module-transforms-7.24.6"
+      sources."@babel/helper-simple-access-7.24.6"
+      sources."@babel/helper-split-export-declaration-7.24.6"
+      sources."@babel/helper-string-parser-7.24.6"
+      sources."@babel/helper-validator-identifier-7.24.6"
+      sources."@babel/helper-validator-option-7.24.6"
+      sources."@babel/helpers-7.24.6"
+      sources."@babel/highlight-7.24.6"
+      sources."@babel/parser-7.24.6"
+      sources."@babel/template-7.24.6"
+      sources."@babel/traverse-7.24.6"
+      sources."@babel/types-7.24.6"
       sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
       sources."@jridgewell/set-array-1.2.1"
@@ -60970,15 +60075,15 @@ in
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."browserslist-4.23.0"
-      sources."caniuse-lite-1.0.30001599"
+      sources."caniuse-lite-1.0.30001627"
       sources."chalk-2.4.2"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."commander-4.1.1"
+      sources."commander-6.2.1"
       sources."concat-map-0.0.1"
       sources."convert-source-map-2.0.0"
-      sources."debug-4.3.4"
-      sources."electron-to-chromium-1.4.710"
+      sources."debug-4.3.5"
+      sources."electron-to-chromium-1.4.789"
       sources."escalade-3.1.2"
       sources."escape-string-regexp-1.0.5"
       sources."fs-readdir-recursive-1.1.0"
@@ -60999,13 +60104,13 @@ in
       sources."node-releases-2.0.14"
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
-      sources."picocolors-1.0.0"
+      sources."picocolors-1.0.1"
       sources."pify-4.0.1"
       sources."semver-5.7.2"
       sources."slash-2.0.0"
       sources."supports-color-5.5.0"
       sources."to-fast-properties-2.0.0"
-      sources."update-browserslist-db-1.0.13"
+      sources."update-browserslist-db-1.0.16"
       sources."wrappy-1.0.2"
       sources."yallist-3.1.1"
     ];
@@ -61022,19 +60127,15 @@ in
   "@commitlint/cli" = nodeEnv.buildNodePackage {
     name = "_at_commitlint_slash_cli";
     packageName = "@commitlint/cli";
-    version = "19.2.0";
+    version = "19.3.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@commitlint/cli/-/cli-19.2.0.tgz";
-      sha512 = "8XnQDMyQR+1/ldbmIyhonvnDS2enEw48Wompo/967fsEvy9Vj5/JbDutzmSBKxANWDVeEbR9QQm0yHpw6ArrFw==";
+      url = "https://registry.npmjs.org/@commitlint/cli/-/cli-19.3.0.tgz";
+      sha512 = "LgYWOwuDR7BSTQ9OLZ12m7F/qhNY+NpAyPBgo4YNMkACE7lGuUnuQq1yi9hz1KA4+3VqpOYl8H1rY/LYK43v7g==";
     };
     dependencies = [
-      (sources."@babel/code-frame-7.23.5" // {
-        dependencies = [
-          sources."chalk-2.4.2"
-        ];
-      })
-      sources."@babel/helper-validator-identifier-7.22.20"
-      (sources."@babel/highlight-7.23.4" // {
+      sources."@babel/code-frame-7.24.6"
+      sources."@babel/helper-validator-identifier-7.24.6"
+      (sources."@babel/highlight-7.24.6" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
@@ -61042,22 +60143,22 @@ in
       sources."@commitlint/config-validator-19.0.3"
       sources."@commitlint/ensure-19.0.3"
       sources."@commitlint/execute-rule-19.0.0"
-      sources."@commitlint/format-19.0.3"
-      sources."@commitlint/is-ignored-19.0.3"
-      sources."@commitlint/lint-19.1.0"
+      sources."@commitlint/format-19.3.0"
+      sources."@commitlint/is-ignored-19.2.2"
+      sources."@commitlint/lint-19.2.2"
       sources."@commitlint/load-19.2.0"
       sources."@commitlint/message-19.0.0"
       sources."@commitlint/parse-19.0.3"
-      sources."@commitlint/read-19.2.0"
+      sources."@commitlint/read-19.2.1"
       sources."@commitlint/resolve-extends-19.1.0"
       sources."@commitlint/rules-19.0.3"
       sources."@commitlint/to-lines-19.0.0"
       sources."@commitlint/top-level-19.0.0"
       sources."@commitlint/types-19.0.3"
       sources."@types/conventional-commits-parser-5.0.0"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."JSONStream-1.3.5"
-      sources."ajv-8.12.0"
+      sources."ajv-8.15.0"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-3.2.1"
       sources."argparse-2.0.1"
@@ -61082,6 +60183,7 @@ in
       sources."escape-string-regexp-1.0.5"
       sources."execa-8.0.1"
       sources."fast-deep-equal-3.1.3"
+      sources."fast-uri-2.3.0"
       sources."find-up-7.0.0"
       sources."get-caller-file-2.0.5"
       sources."get-stream-8.0.1"
@@ -61094,7 +60196,7 @@ in
           sources."resolve-from-4.0.0"
         ];
       })
-      sources."import-meta-resolve-4.0.0"
+      sources."import-meta-resolve-4.1.0"
       sources."ini-4.1.1"
       sources."is-arrayish-0.2.1"
       sources."is-fullwidth-code-point-3.0.0"
@@ -61119,7 +60221,6 @@ in
       sources."lodash.startcase-4.4.0"
       sources."lodash.uniq-4.5.0"
       sources."lodash.upperfirst-4.3.1"
-      sources."lru-cache-6.0.0"
       sources."meow-12.1.1"
       sources."merge-stream-2.0.0"
       sources."mimic-fn-4.0.0"
@@ -61136,11 +60237,11 @@ in
       sources."parse-json-5.2.0"
       sources."path-exists-5.0.0"
       sources."path-key-3.1.1"
-      sources."punycode-2.3.1"
+      sources."picocolors-1.0.1"
       sources."require-directory-2.1.1"
       sources."require-from-string-2.0.2"
       sources."resolve-from-5.0.0"
-      sources."semver-7.6.0"
+      sources."semver-7.6.2"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-4.1.0"
@@ -61151,10 +60252,9 @@ in
       sources."supports-color-5.5.0"
       sources."text-extensions-2.4.0"
       sources."through-2.3.8"
-      sources."typescript-5.4.2"
+      sources."typescript-5.4.5"
       sources."undici-types-5.26.5"
       sources."unicorn-magic-0.1.0"
-      sources."uri-js-4.4.1"
       sources."which-2.0.2"
       (sources."wrap-ansi-7.0.0" // {
         dependencies = [
@@ -61164,7 +60264,6 @@ in
         ];
       })
       sources."y18n-5.0.8"
-      sources."yallist-4.0.0"
       sources."yargs-17.7.2"
       sources."yargs-parser-21.1.1"
       sources."yocto-queue-1.0.0"
@@ -61182,15 +60281,15 @@ in
   "@commitlint/config-conventional" = nodeEnv.buildNodePackage {
     name = "_at_commitlint_slash_config-conventional";
     packageName = "@commitlint/config-conventional";
-    version = "19.1.0";
+    version = "19.2.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-19.1.0.tgz";
-      sha512 = "KIKD2xrp6Uuk+dcZVj3++MlzIr/Su6zLE8crEDQCZNvWHNQSeeGbzOlNtsR32TUy6H3JbP7nWgduAHCaiGQ6EA==";
+      url = "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-19.2.2.tgz";
+      sha512 = "mLXjsxUVLYEGgzbxbxicGPggDuyWNkf25Ht23owXIH+zV2pv1eJuzLK3t1gDY5Gp6pxdE60jZnWUY5cvgL3ufw==";
     };
     dependencies = [
       sources."@commitlint/types-19.0.3"
       sources."@types/conventional-commits-parser-5.0.0"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."array-ify-1.0.0"
       sources."chalk-5.3.0"
       sources."compare-func-2.0.0"
@@ -61212,10 +60311,10 @@ in
   "@microsoft/rush" = nodeEnv.buildNodePackage {
     name = "_at_microsoft_slash_rush";
     packageName = "@microsoft/rush";
-    version = "5.117.9";
+    version = "5.127.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@microsoft/rush/-/rush-5.117.9.tgz";
-      sha512 = "WIeTt5LDfeq6W4ai9Ax/hqsmMZn3rayKpZvpmkUJEdaGRNKPpzSpZyaww9bSgdopPOoacMKaNQIFR4ETIJVxJw==";
+      url = "https://registry.npmjs.org/@microsoft/rush/-/rush-5.127.0.tgz";
+      sha512 = "KvCxspLAeVAlFA2qomPhyK1RwqEtxYLSICRWiZRWCRZSJ7rZCYkeGDxSWZVONyZYkI51MoOU2lXwTMal+kPxbg==";
     };
     dependencies = [
       (sources."@azure/abort-controller-1.1.0" // {
@@ -61223,15 +60322,15 @@ in
           sources."tslib-2.6.2"
         ];
       })
-      (sources."@azure/core-auth-1.7.0" // {
+      (sources."@azure/core-auth-1.7.2" // {
         dependencies = [
-          sources."@azure/abort-controller-2.1.0"
+          sources."@azure/abort-controller-2.1.2"
           sources."tslib-2.6.2"
         ];
       })
-      (sources."@azure/core-client-1.9.0" // {
+      (sources."@azure/core-client-1.9.2" // {
         dependencies = [
-          sources."@azure/abort-controller-2.1.0"
+          sources."@azure/abort-controller-2.1.2"
           sources."tslib-2.6.2"
         ];
       })
@@ -61242,33 +60341,33 @@ in
           sources."tslib-2.6.2"
         ];
       })
-      (sources."@azure/core-lro-2.7.0" // {
+      (sources."@azure/core-lro-2.7.2" // {
         dependencies = [
-          sources."@azure/abort-controller-2.1.0"
+          sources."@azure/abort-controller-2.1.2"
           sources."tslib-2.6.2"
         ];
       })
-      (sources."@azure/core-paging-1.6.0" // {
+      (sources."@azure/core-paging-1.6.2" // {
         dependencies = [
           sources."tslib-2.6.2"
         ];
       })
-      (sources."@azure/core-rest-pipeline-1.15.0" // {
+      (sources."@azure/core-rest-pipeline-1.16.0" // {
         dependencies = [
-          sources."@azure/abort-controller-2.1.0"
-          sources."agent-base-7.1.0"
+          sources."@azure/abort-controller-2.1.2"
+          sources."agent-base-7.1.1"
           sources."https-proxy-agent-7.0.4"
           sources."tslib-2.6.2"
         ];
       })
-      (sources."@azure/core-tracing-1.1.0" // {
+      (sources."@azure/core-tracing-1.1.2" // {
         dependencies = [
           sources."tslib-2.6.2"
         ];
       })
-      (sources."@azure/core-util-1.8.0" // {
+      (sources."@azure/core-util-1.9.0" // {
         dependencies = [
-          sources."@azure/abort-controller-2.1.0"
+          sources."@azure/abort-controller-2.1.2"
           sources."tslib-2.6.2"
         ];
       })
@@ -61277,40 +60376,40 @@ in
           sources."tslib-2.6.2"
         ];
       })
-      (sources."@azure/logger-1.1.0" // {
+      (sources."@azure/logger-1.1.2" // {
         dependencies = [
           sources."tslib-2.6.2"
         ];
       })
-      sources."@azure/msal-browser-3.10.0"
-      sources."@azure/msal-common-14.7.1"
-      sources."@azure/msal-node-2.6.4"
+      sources."@azure/msal-browser-3.16.0"
+      sources."@azure/msal-common-14.11.0"
+      sources."@azure/msal-node-2.9.1"
       (sources."@azure/storage-blob-12.17.0" // {
         dependencies = [
           sources."@azure/core-tracing-1.0.0-preview.13"
           sources."tslib-2.6.2"
         ];
       })
-      sources."@babel/code-frame-7.23.5"
-      sources."@babel/generator-7.23.6"
-      sources."@babel/helper-environment-visitor-7.22.20"
-      sources."@babel/helper-function-name-7.23.0"
-      sources."@babel/helper-hoist-variables-7.22.5"
-      sources."@babel/helper-split-export-declaration-7.22.6"
-      sources."@babel/helper-string-parser-7.23.4"
-      sources."@babel/helper-validator-identifier-7.22.20"
-      sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.24.0"
-      sources."@babel/template-7.24.0"
-      sources."@babel/traverse-7.24.0"
-      sources."@babel/types-7.24.0"
+      sources."@babel/code-frame-7.24.6"
+      sources."@babel/generator-7.24.6"
+      sources."@babel/helper-environment-visitor-7.24.6"
+      sources."@babel/helper-function-name-7.24.6"
+      sources."@babel/helper-hoist-variables-7.24.6"
+      sources."@babel/helper-split-export-declaration-7.24.6"
+      sources."@babel/helper-string-parser-7.24.6"
+      sources."@babel/helper-validator-identifier-7.24.6"
+      sources."@babel/highlight-7.24.6"
+      sources."@babel/parser-7.24.6"
+      sources."@babel/template-7.24.6"
+      sources."@babel/traverse-7.24.6"
+      sources."@babel/types-7.24.6"
       sources."@devexpress/error-stack-parser-2.0.6"
       sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
       sources."@jridgewell/set-array-1.2.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.25"
-      sources."@microsoft/rush-lib-5.117.9"
+      sources."@microsoft/rush-lib-5.127.0"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
@@ -61346,14 +60445,14 @@ in
           sources."@pnpm/types-6.4.0"
         ];
       })
-      sources."@rushstack/heft-config-file-0.14.14"
-      (sources."@rushstack/node-core-library-4.0.2" // {
+      sources."@rushstack/heft-config-file-0.14.25"
+      (sources."@rushstack/node-core-library-5.4.1" // {
         dependencies = [
           sources."import-lazy-4.0.0"
         ];
       })
-      sources."@rushstack/package-deps-hash-4.1.38"
-      (sources."@rushstack/package-extractor-0.6.40" // {
+      sources."@rushstack/package-deps-hash-4.1.57"
+      (sources."@rushstack/package-extractor-0.7.15" // {
         dependencies = [
           sources."brace-expansion-1.1.11"
           sources."minimatch-3.0.8"
@@ -61364,18 +60463,18 @@ in
           sources."strip-json-comments-3.1.1"
         ];
       })
-      sources."@rushstack/rush-amazon-s3-build-cache-plugin-5.117.9"
-      sources."@rushstack/rush-azure-storage-build-cache-plugin-5.117.9"
-      sources."@rushstack/rush-http-build-cache-plugin-5.117.9"
-      sources."@rushstack/rush-sdk-5.117.9"
-      sources."@rushstack/stream-collator-4.1.38"
-      (sources."@rushstack/terminal-0.10.0" // {
+      sources."@rushstack/rush-amazon-s3-build-cache-plugin-5.127.0"
+      sources."@rushstack/rush-azure-storage-build-cache-plugin-5.127.0"
+      sources."@rushstack/rush-http-build-cache-plugin-5.127.0"
+      sources."@rushstack/rush-sdk-5.127.0"
+      sources."@rushstack/stream-collator-4.1.56"
+      (sources."@rushstack/terminal-0.13.0" // {
         dependencies = [
           sources."has-flag-4.0.0"
           sources."supports-color-8.1.1"
         ];
       })
-      (sources."@rushstack/ts-command-line-4.19.1" // {
+      (sources."@rushstack/ts-command-line-4.22.0" // {
         dependencies = [
           sources."argparse-1.0.10"
         ];
@@ -61383,22 +60482,25 @@ in
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/argparse-1.0.38"
-      sources."@types/lodash-4.17.0"
+      sources."@types/lodash-4.17.4"
       sources."@types/minimatch-3.0.5"
       sources."@types/minimist-1.2.5"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."@types/node-fetch-2.6.2"
       sources."@types/normalize-package-data-2.4.4"
       sources."@types/parse-json-4.0.2"
       sources."@types/tunnel-0.0.3"
-      sources."@vue/compiler-core-3.4.21"
-      sources."@vue/compiler-dom-3.4.21"
-      sources."@vue/compiler-sfc-3.4.21"
-      sources."@vue/compiler-ssr-3.4.21"
-      sources."@vue/shared-3.4.21"
+      sources."@vue/compiler-core-3.4.27"
+      sources."@vue/compiler-dom-3.4.27"
+      sources."@vue/compiler-sfc-3.4.27"
+      sources."@vue/compiler-ssr-3.4.27"
+      sources."@vue/shared-3.4.27"
       sources."@yarnpkg/lockfile-1.0.2"
       sources."@zkochan/cmd-shim-5.4.1"
       sources."agent-base-6.0.2"
+      sources."ajv-8.13.0"
+      sources."ajv-draft-04-1.0.0"
+      sources."ajv-formats-3.0.1"
       sources."ansi-align-3.0.1"
       (sources."ansi-escapes-4.3.2" // {
         dependencies = [
@@ -61430,7 +60532,7 @@ in
         ];
       })
       sources."brace-expansion-2.0.1"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."buffer-5.7.1"
       sources."buffer-equal-constant-time-1.0.1"
       sources."builtin-modules-3.1.0"
@@ -61468,7 +60570,6 @@ in
       sources."color-name-1.1.3"
       sources."colors-1.0.3"
       sources."combined-stream-1.0.8"
-      sources."commander-10.0.1"
       sources."concat-map-0.0.1"
       sources."configstore-5.0.1"
       sources."core-util-is-1.0.3"
@@ -61479,7 +60580,7 @@ in
         ];
       })
       sources."crypto-random-string-2.0.0"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."debuglog-1.0.1"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.1" // {
@@ -61538,7 +60639,7 @@ in
       sources."fast-glob-3.3.2"
       sources."fastq-1.17.1"
       sources."figures-3.0.0"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."find-up-4.1.0"
       (sources."find-yarn-workspace-root2-1.2.16" // {
         dependencies = [
@@ -61595,7 +60696,7 @@ in
       sources."http-cache-semantics-4.1.1"
       (sources."http-proxy-agent-7.0.2" // {
         dependencies = [
-          sources."agent-base-7.1.0"
+          sources."agent-base-7.1.1"
         ];
       })
       sources."https-proxy-agent-5.0.1"
@@ -61660,6 +60761,7 @@ in
       sources."jsesc-2.5.2"
       sources."json-buffer-3.0.0"
       sources."json-parse-even-better-errors-2.3.1"
+      sources."json-schema-traverse-1.0.0"
       sources."json5-2.2.3"
       sources."jsonfile-4.0.0"
       sources."jsonpath-plus-4.0.0"
@@ -61694,10 +60796,8 @@ in
       })
       sources."locate-path-5.0.0"
       sources."lodash-4.17.21"
-      sources."lodash.get-4.4.2"
       sources."lodash.includes-4.3.0"
       sources."lodash.isboolean-3.0.3"
-      sources."lodash.isequal-4.5.0"
       sources."lodash.isinteger-4.0.4"
       sources."lodash.isnumber-3.0.3"
       sources."lodash.isplainobject-4.0.6"
@@ -61715,7 +60815,7 @@ in
       })
       sources."lowercase-keys-1.0.1"
       sources."lru-cache-6.0.0"
-      sources."magic-string-0.30.8"
+      sources."magic-string-0.30.10"
       (sources."make-dir-3.1.0" // {
         dependencies = [
           sources."semver-6.3.1"
@@ -61731,7 +60831,7 @@ in
       })
       sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
       sources."mimic-fn-3.1.0"
@@ -61824,7 +60924,7 @@ in
       sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
       sources."path-type-4.0.0"
-      sources."picocolors-1.0.0"
+      sources."picocolors-1.0.1"
       sources."picomatch-2.3.1"
       sources."pify-4.0.1"
       sources."pinkie-2.0.4"
@@ -61838,8 +60938,12 @@ in
         ];
       })
       sources."please-upgrade-node-3.2.0"
-      sources."pnpm-sync-lib-0.1.4"
-      sources."postcss-8.4.36"
+      (sources."pnpm-sync-lib-0.2.6" // {
+        dependencies = [
+          sources."yaml-2.4.1"
+        ];
+      })
+      sources."postcss-8.4.38"
       (sources."preferred-pm-3.1.3" // {
         dependencies = [
           sources."find-up-5.0.0"
@@ -61852,6 +60956,7 @@ in
       sources."process-0.11.10"
       sources."process-nextick-args-2.0.1"
       sources."pump-3.0.0"
+      sources."punycode-2.3.1"
       sources."pupa-2.1.1"
       sources."queue-microtask-1.2.3"
       sources."quick-lru-4.0.1"
@@ -61912,7 +61017,7 @@ in
       sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."sax-1.3.0"
+      sources."sax-1.4.1"
       sources."semver-7.5.4"
       sources."semver-compare-1.0.0"
       (sources."semver-diff-3.1.1" // {
@@ -61926,11 +61031,11 @@ in
       sources."signal-exit-3.0.7"
       sources."slash-3.0.0"
       sources."sort-keys-4.2.0"
-      sources."source-map-js-1.1.0"
+      sources."source-map-js-1.2.0"
       sources."spdx-correct-3.2.0"
       sources."spdx-exceptions-2.5.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.17"
+      sources."spdx-license-ids-3.0.18"
       sources."sprintf-js-1.0.3"
       sources."ssri-8.0.1"
       sources."stackframe-1.3.4"
@@ -61947,7 +61052,7 @@ in
       sources."supports-color-5.5.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
       sources."tapable-2.2.1"
-      (sources."tar-6.1.15" // {
+      (sources."tar-6.2.1" // {
         dependencies = [
           sources."minipass-5.0.0"
         ];
@@ -61981,12 +61086,12 @@ in
           sources."supports-color-7.2.0"
         ];
       })
+      sources."uri-js-4.4.1"
       sources."url-parse-lax-3.0.0"
       sources."util-deprecate-1.0.2"
       sources."uuid-8.3.2"
       sources."validate-npm-package-license-3.0.4"
       sources."validate-npm-package-name-3.0.0"
-      sources."validator-13.11.0"
       sources."wcwidth-1.0.1"
       sources."webidl-conversions-3.0.1"
       sources."whatwg-url-5.0.0"
@@ -62017,7 +61122,6 @@ in
       sources."yargs-16.2.0"
       sources."yargs-parser-20.2.9"
       sources."yocto-queue-0.1.0"
-      sources."z-schema-5.0.6"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -62032,637 +61136,65 @@ in
   "@shopify/cli" = nodeEnv.buildNodePackage {
     name = "_at_shopify_slash_cli";
     packageName = "@shopify/cli";
-    version = "3.57.1";
+    version = "3.61.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@shopify/cli/-/cli-3.57.1.tgz";
-      sha512 = "bqFvUipcGWEvaOQBL1FiKb2IV86S5EcIWV8o0hEL9n05NE/XzbVnlRW7pNYY64WHVgT5dM7mFsX9/0boaJPASQ==";
+      url = "https://registry.npmjs.org/@shopify/cli/-/cli-3.61.0.tgz";
+      sha512 = "rECZkNNYbjNukWUP3F+rlhVz2XVSExEbkoO5S+u1jWIKoi7f6+0GEXEecYzUzU1euhknMKAFbHQ7ecQiteMHuA==";
     };
     dependencies = [
-      (sources."@alcalzone/ansi-tokenize-0.1.3" // {
-        dependencies = [
-          sources."ansi-styles-6.2.1"
-          sources."is-fullwidth-code-point-4.0.0"
-        ];
-      })
-      sources."@bugsnag/browser-7.22.4"
-      sources."@bugsnag/core-7.19.0"
-      sources."@bugsnag/cuid-3.0.2"
-      sources."@bugsnag/js-7.21.0"
-      sources."@bugsnag/node-7.22.3"
-      sources."@bugsnag/safe-json-stringify-6.0.0"
-      sources."@cspotcode/source-map-support-0.8.1"
-      sources."@graphql-typed-document-node/core-3.2.0"
-      sources."@iarna/toml-2.2.5"
-      sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.9"
-      sources."@kwsites/file-exists-1.1.1"
-      sources."@kwsites/promise-deferred-1.1.1"
-      sources."@nodelib/fs.scandir-2.1.5"
-      sources."@nodelib/fs.stat-2.0.5"
-      sources."@nodelib/fs.walk-1.2.8"
-      sources."@oclif/core-3.19.6"
-      (sources."@oclif/plugin-commands-2.2.28" // {
-        dependencies = [
-          sources."@oclif/core-2.15.0"
-        ];
-      })
-      (sources."@oclif/plugin-help-5.2.20" // {
-        dependencies = [
-          sources."@oclif/core-2.15.0"
-        ];
-      })
-      (sources."@oclif/plugin-plugins-3.9.4" // {
-        dependencies = [
-          sources."@oclif/core-2.15.0"
-        ];
-      })
-      sources."@opentelemetry/api-1.6.0"
-      sources."@opentelemetry/api-logs-0.43.0"
-      sources."@opentelemetry/core-1.17.1"
-      (sources."@opentelemetry/exporter-metrics-otlp-http-0.43.0" // {
-        dependencies = [
-          sources."@opentelemetry/core-1.17.0"
-          sources."@opentelemetry/resources-1.17.0"
-          sources."@opentelemetry/sdk-metrics-1.17.0"
-          sources."@opentelemetry/semantic-conventions-1.17.0"
-        ];
-      })
-      (sources."@opentelemetry/otlp-exporter-base-0.43.0" // {
-        dependencies = [
-          sources."@opentelemetry/core-1.17.0"
-          sources."@opentelemetry/semantic-conventions-1.17.0"
-        ];
-      })
-      (sources."@opentelemetry/otlp-transformer-0.43.0" // {
-        dependencies = [
-          sources."@opentelemetry/core-1.17.0"
-          sources."@opentelemetry/resources-1.17.0"
-          sources."@opentelemetry/sdk-metrics-1.17.0"
-          sources."@opentelemetry/semantic-conventions-1.17.0"
-        ];
-      })
-      sources."@opentelemetry/resources-1.17.1"
-      (sources."@opentelemetry/sdk-logs-0.43.0" // {
-        dependencies = [
-          sources."@opentelemetry/core-1.17.0"
-          sources."@opentelemetry/resources-1.17.0"
-          sources."@opentelemetry/semantic-conventions-1.17.0"
-        ];
-      })
-      sources."@opentelemetry/sdk-metrics-1.17.1"
-      (sources."@opentelemetry/sdk-trace-base-1.17.0" // {
-        dependencies = [
-          sources."@opentelemetry/core-1.17.0"
-          sources."@opentelemetry/resources-1.17.0"
-          sources."@opentelemetry/semantic-conventions-1.17.0"
-        ];
-      })
-      sources."@opentelemetry/semantic-conventions-1.17.1"
-      sources."@pnpm/config.env-replace-1.1.0"
-      (sources."@pnpm/network.ca-file-1.0.2" // {
-        dependencies = [
-          sources."graceful-fs-4.2.10"
-        ];
-      })
-      sources."@pnpm/npm-conf-2.2.2"
-      (sources."@shopify/cli-kit-3.57.1" // {
-        dependencies = [
-          sources."ansi-escapes-6.2.0"
-          sources."ansi-regex-6.0.1"
-          sources."argparse-2.0.1"
-          sources."chalk-5.3.0"
-          sources."fast-glob-3.3.1"
-          sources."js-yaml-4.1.0"
-          sources."semver-7.5.4"
-          sources."strip-ansi-7.1.0"
-          sources."supports-color-7.2.0"
-          sources."supports-hyperlinks-3.0.0"
-          sources."type-fest-3.13.1"
-        ];
-      })
-      sources."@shopify/plugin-did-you-mean-3.57.1"
-      sources."@sindresorhus/is-5.6.0"
-      sources."@swc/core-1.4.8"
-      sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.7"
-      sources."@swc/types-0.1.6"
-      sources."@swc/wasm-1.4.8"
-      sources."@szmarczak/http-timer-5.0.1"
-      sources."@tsconfig/node10-1.0.9"
-      sources."@tsconfig/node12-1.0.11"
-      sources."@tsconfig/node14-1.0.3"
-      sources."@tsconfig/node16-1.0.4"
-      sources."@types/archiver-5.3.2"
-      sources."@types/cli-progress-3.11.5"
-      sources."@types/http-cache-semantics-4.0.4"
-      sources."@types/node-20.11.29"
-      sources."@types/prop-types-15.7.11"
-      sources."@types/react-18.2.67"
-      sources."@types/readdir-glob-1.1.5"
-      sources."@types/scheduler-0.16.8"
-      sources."@types/tinycolor2-1.4.6"
-      sources."abort-controller-3.0.0"
-      sources."acorn-8.11.3"
-      sources."acorn-walk-8.3.2"
-      (sources."aggregate-error-3.1.0" // {
-        dependencies = [
-          sources."clean-stack-2.2.0"
-        ];
-      })
-      sources."ajv-8.12.0"
-      sources."ajv-formats-2.1.1"
-      sources."ansi-escapes-4.3.2"
-      sources."ansi-regex-5.0.1"
-      sources."ansi-styles-4.3.0"
-      sources."ansicolors-0.3.2"
-      sources."archiver-5.3.2"
-      (sources."archiver-utils-2.1.0" // {
-        dependencies = [
-          sources."readable-stream-2.3.8"
-          sources."safe-buffer-5.1.2"
-        ];
-      })
-      sources."arg-4.1.3"
-      sources."argparse-1.0.10"
-      sources."array-union-2.1.0"
-      sources."as-table-1.0.55"
-      sources."astral-regex-2.0.0"
-      sources."async-3.2.5"
-      sources."asynckit-0.4.0"
-      sources."atomically-2.0.2"
-      sources."auto-bind-5.0.1"
-      sources."balanced-match-1.0.2"
-      sources."base64-js-1.5.1"
-      sources."bl-4.1.0"
-      sources."bottleneck-2.19.5"
-      sources."brace-expansion-2.0.1"
-      sources."braces-3.0.2"
-      sources."buffer-5.7.1"
-      sources."buffer-crc32-0.2.13"
-      sources."buffer-from-1.1.2"
-      sources."bufferutil-4.0.8"
-      sources."builtins-5.0.1"
-      sources."byline-5.0.0"
-      sources."cacheable-lookup-7.0.0"
-      sources."cacheable-request-10.2.14"
-      sources."camel-case-4.1.2"
-      sources."capital-case-1.0.4"
-      sources."cardinal-2.1.1"
-      (sources."chalk-4.1.2" // {
-        dependencies = [
-          sources."supports-color-7.2.0"
-        ];
-      })
-      sources."change-case-4.1.2"
-      sources."ci-info-3.9.0"
-      sources."clean-stack-3.0.1"
-      sources."cli-boxes-3.0.0"
-      sources."cli-cursor-4.0.0"
-      sources."cli-progress-3.12.0"
-      (sources."cli-truncate-3.1.0" // {
-        dependencies = [
-          sources."ansi-regex-6.0.1"
-          sources."ansi-styles-6.2.1"
-          sources."emoji-regex-9.2.2"
-          sources."is-fullwidth-code-point-4.0.0"
-          sources."slice-ansi-5.0.0"
-          sources."string-width-5.1.2"
-          sources."strip-ansi-7.1.0"
-        ];
-      })
-      sources."code-excerpt-4.0.0"
-      sources."color-4.2.3"
-      sources."color-convert-2.0.1"
-      sources."color-json-3.0.5"
-      sources."color-name-1.1.4"
-      sources."color-string-1.9.1"
-      sources."combined-stream-1.0.8"
-      sources."commander-5.1.0"
-      sources."commondir-1.0.1"
-      sources."compress-commons-4.1.2"
-      sources."concat-map-0.0.1"
-      sources."conf-11.0.2"
-      sources."config-chain-1.1.13"
-      sources."constant-case-3.0.4"
-      sources."content-type-1.0.5"
-      sources."convert-to-spaces-2.0.1"
-      sources."core-util-is-1.0.3"
-      sources."crc-32-1.2.2"
-      sources."crc32-stream-4.0.3"
-      sources."create-require-1.1.1"
-      (sources."cross-fetch-3.1.8" // {
-        dependencies = [
-          sources."node-fetch-2.7.0"
-        ];
-      })
-      sources."cross-spawn-7.0.3"
-      sources."cross-zip-4.0.0"
-      (sources."crypto-random-string-4.0.0" // {
-        dependencies = [
-          sources."type-fest-1.4.0"
-        ];
-      })
-      sources."csstype-3.1.3"
-      sources."data-uri-to-buffer-4.0.1"
-      sources."debounce-fn-5.1.2"
-      sources."debug-4.3.4"
-      (sources."decompress-response-6.0.0" // {
-        dependencies = [
-          sources."mimic-response-3.1.0"
-        ];
-      })
-      sources."deep-extend-0.6.0"
-      sources."deepmerge-4.3.1"
-      sources."defer-to-connect-2.0.1"
-      sources."define-lazy-prop-2.0.0"
-      sources."del-6.1.1"
-      sources."delayed-stream-1.0.0"
-      sources."diff-4.0.2"
-      sources."dir-glob-3.0.1"
-      sources."dot-case-3.0.4"
-      (sources."dot-prop-7.2.0" // {
-        dependencies = [
-          sources."type-fest-2.19.0"
-        ];
-      })
-      sources."eastasianwidth-0.2.0"
-      sources."ejs-3.1.9"
-      sources."emoji-regex-8.0.0"
-      sources."encoding-0.1.13"
-      sources."end-of-stream-1.4.4"
-      sources."env-paths-3.0.0"
-      sources."envfile-6.18.0"
-      (sources."error-ex-1.3.2" // {
-        dependencies = [
-          sources."is-arrayish-0.2.1"
-        ];
-      })
-      sources."error-stack-parser-2.1.4"
-      sources."escape-string-regexp-4.0.0"
-      sources."esprima-4.0.1"
-      sources."event-target-shim-5.0.1"
-      (sources."execa-7.2.0" // {
-        dependencies = [
-          sources."is-stream-3.0.0"
-          sources."npm-run-path-5.3.0"
-          sources."path-key-4.0.0"
-        ];
-      })
-      sources."extract-files-9.0.0"
-      sources."fast-deep-equal-3.1.3"
-      sources."fast-glob-3.3.2"
-      sources."fastq-1.17.1"
-      sources."fetch-blob-3.2.0"
-      (sources."figures-5.0.0" // {
-        dependencies = [
-          sources."escape-string-regexp-5.0.0"
-        ];
-      })
-      (sources."filelist-1.0.4" // {
-        dependencies = [
-          sources."minimatch-5.1.6"
-        ];
-      })
-      sources."fill-range-7.0.1"
-      sources."find-process-1.4.7"
-      sources."find-up-6.3.0"
-      sources."find-versions-5.1.0"
-      sources."form-data-4.0.0"
-      sources."form-data-encoder-2.1.4"
-      sources."formdata-polyfill-4.0.10"
-      sources."fs-constants-1.0.0"
-      sources."fs-extra-11.1.0"
-      sources."fs.realpath-1.0.0"
-      sources."function-bind-1.1.2"
-      sources."fuzzy-0.1.3"
-      sources."get-package-type-0.1.0"
-      sources."get-port-please-3.0.1"
-      (sources."get-source-2.0.12" // {
-        dependencies = [
-          sources."data-uri-to-buffer-2.0.2"
-        ];
-      })
-      sources."get-stream-6.0.1"
-      sources."get-them-args-1.3.2"
-      sources."glob-7.2.3"
-      sources."glob-parent-5.1.2"
-      sources."globby-11.1.0"
-      sources."got-12.6.1"
-      sources."graceful-fs-4.2.11"
-      sources."gradient-string-2.0.2"
-      sources."graphql-16.8.1"
-      (sources."graphql-request-5.2.0" // {
-        dependencies = [
-          sources."form-data-3.0.1"
-        ];
-      })
-      sources."has-flag-4.0.0"
-      sources."hasown-2.0.2"
-      sources."header-case-2.0.4"
-      sources."http-cache-semantics-4.1.1"
-      sources."http-call-5.3.0"
-      sources."http2-wrapper-2.2.1"
-      sources."human-signals-4.3.1"
-      sources."hyperlinker-1.0.0"
-      sources."iconv-lite-0.6.3"
-      sources."ieee754-1.2.1"
-      sources."ignore-5.3.1"
-      sources."indent-string-4.0.0"
-      sources."inflight-1.0.6"
-      sources."inherits-2.0.4"
-      sources."ini-1.3.8"
-      (sources."ink-4.4.1" // {
-        dependencies = [
-          (sources."ansi-escapes-6.2.0" // {
-            dependencies = [
-              sources."type-fest-3.13.1"
-            ];
-          })
-          sources."ansi-regex-6.0.1"
-          sources."ansi-styles-6.2.1"
-          sources."chalk-5.3.0"
-          sources."emoji-regex-9.2.2"
-          sources."indent-string-5.0.0"
-          sources."is-fullwidth-code-point-4.0.0"
-          sources."slice-ansi-6.0.0"
-          sources."string-width-5.1.2"
-          sources."strip-ansi-7.1.0"
-          sources."type-fest-0.12.0"
-          sources."widest-line-4.0.1"
-          sources."wrap-ansi-8.1.0"
-        ];
-      })
-      sources."interpret-1.4.0"
-      sources."is-arrayish-0.3.2"
-      sources."is-ci-3.0.1"
-      sources."is-core-module-2.13.1"
-      sources."is-docker-2.2.1"
+      sources."@ast-grep/napi-0.11.0"
+      sources."@ast-grep/napi-darwin-arm64-0.11.0"
+      sources."@ast-grep/napi-darwin-x64-0.11.0"
+      sources."@ast-grep/napi-linux-x64-gnu-0.11.0"
+      sources."@ast-grep/napi-win32-arm64-msvc-0.11.0"
+      sources."@ast-grep/napi-win32-ia32-msvc-0.11.0"
+      sources."@ast-grep/napi-win32-x64-msvc-0.11.0"
+      sources."@esbuild/android-arm-0.19.8"
+      sources."@esbuild/android-arm64-0.19.8"
+      sources."@esbuild/android-x64-0.19.8"
+      sources."@esbuild/darwin-arm64-0.19.8"
+      sources."@esbuild/darwin-x64-0.19.8"
+      sources."@esbuild/freebsd-arm64-0.19.8"
+      sources."@esbuild/freebsd-x64-0.19.8"
+      sources."@esbuild/linux-arm-0.19.8"
+      sources."@esbuild/linux-arm64-0.19.8"
+      sources."@esbuild/linux-ia32-0.19.8"
+      sources."@esbuild/linux-loong64-0.19.8"
+      sources."@esbuild/linux-mips64el-0.19.8"
+      sources."@esbuild/linux-ppc64-0.19.8"
+      sources."@esbuild/linux-riscv64-0.19.8"
+      sources."@esbuild/linux-s390x-0.19.8"
+      sources."@esbuild/linux-x64-0.19.8"
+      sources."@esbuild/netbsd-x64-0.19.8"
+      sources."@esbuild/openbsd-x64-0.19.8"
+      sources."@esbuild/sunos-x64-0.19.8"
+      sources."@esbuild/win32-arm64-0.19.8"
+      sources."@esbuild/win32-ia32-0.19.8"
+      sources."@esbuild/win32-x64-0.19.8"
+      sources."@parcel/watcher-2.4.1"
+      sources."@parcel/watcher-android-arm64-2.4.1"
+      sources."@parcel/watcher-darwin-arm64-2.4.1"
+      sources."@parcel/watcher-darwin-x64-2.4.1"
+      sources."@parcel/watcher-freebsd-x64-2.4.1"
+      sources."@parcel/watcher-linux-arm-glibc-2.4.1"
+      sources."@parcel/watcher-linux-arm64-glibc-2.4.1"
+      sources."@parcel/watcher-linux-arm64-musl-2.4.1"
+      sources."@parcel/watcher-linux-x64-glibc-2.4.1"
+      sources."@parcel/watcher-linux-x64-musl-2.4.1"
+      sources."@parcel/watcher-win32-arm64-2.4.1"
+      sources."@parcel/watcher-win32-ia32-2.4.1"
+      sources."@parcel/watcher-win32-x64-2.4.1"
+      sources."braces-3.0.3"
+      sources."detect-libc-1.0.3"
+      sources."esbuild-0.19.8"
+      sources."fill-range-7.1.1"
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
-      sources."is-interactive-2.0.0"
-      sources."is-lower-case-2.0.2"
       sources."is-number-7.0.0"
-      sources."is-path-cwd-2.2.0"
-      sources."is-path-inside-3.0.3"
-      sources."is-retry-allowed-1.2.0"
-      sources."is-stream-2.0.1"
-      sources."is-unicode-supported-1.3.0"
-      sources."is-upper-case-2.0.2"
-      sources."is-wsl-2.2.0"
-      sources."isarray-1.0.0"
-      sources."iserror-0.0.2"
-      sources."isexe-2.0.0"
-      sources."jake-10.8.7"
-      sources."js-tokens-4.0.0"
-      sources."js-yaml-3.14.1"
-      sources."json-buffer-3.0.1"
-      sources."json-parse-better-errors-1.0.2"
-      sources."json-schema-traverse-1.0.0"
-      sources."json-schema-typed-8.0.1"
-      sources."jsonfile-6.1.0"
-      sources."keyv-4.5.4"
-      sources."kill-port-process-3.1.0"
-      sources."latest-version-7.0.0"
-      (sources."lazystream-1.0.1" // {
-        dependencies = [
-          sources."readable-stream-2.3.8"
-          sources."safe-buffer-5.1.2"
-        ];
-      })
-      (sources."liquidjs-10.9.2" // {
-        dependencies = [
-          sources."commander-10.0.1"
-        ];
-      })
-      (sources."load-json-file-5.3.0" // {
-        dependencies = [
-          sources."type-fest-0.3.1"
-        ];
-      })
-      sources."locate-path-7.2.0"
-      sources."lodash-4.17.21"
-      sources."lodash.defaults-4.2.0"
-      sources."lodash.difference-4.5.0"
-      sources."lodash.flatten-4.4.0"
-      sources."lodash.isplainobject-4.0.6"
-      sources."lodash.merge-4.6.2"
-      sources."lodash.union-4.6.0"
-      sources."loose-envify-1.4.0"
-      sources."lower-case-2.0.2"
-      sources."lowercase-keys-3.0.0"
-      sources."lru-cache-6.0.0"
-      sources."macaddress-0.5.3"
-      sources."make-error-1.3.6"
-      sources."merge-stream-2.0.0"
-      sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
-      sources."mime-db-1.52.0"
-      sources."mime-types-2.1.35"
-      sources."mimic-fn-4.0.0"
-      sources."mimic-response-4.0.0"
-      (sources."minimatch-3.1.2" // {
-        dependencies = [
-          sources."brace-expansion-1.1.11"
-        ];
-      })
-      sources."minimist-1.2.8"
-      sources."mrmime-1.0.1"
-      sources."ms-2.1.2"
-      sources."n-gram-2.0.2"
-      sources."natural-orderby-2.0.3"
-      sources."no-case-3.0.4"
-      sources."node-abort-controller-3.1.1"
-      sources."node-domexception-1.0.0"
-      sources."node-fetch-3.3.2"
-      sources."node-gyp-build-4.8.0"
-      sources."normalize-path-3.0.0"
-      sources."normalize-url-8.0.1"
-      sources."npm-9.8.1"
-      sources."npm-run-path-4.0.1"
-      sources."object-treeify-1.1.33"
-      sources."once-1.4.0"
-      sources."onetime-6.0.0"
-      sources."open-8.4.2"
-      sources."p-cancelable-3.0.0"
-      sources."p-finally-1.0.0"
-      sources."p-limit-4.0.0"
-      sources."p-locate-6.0.0"
-      sources."p-map-4.0.0"
-      sources."package-json-8.1.1"
-      sources."param-case-3.0.4"
-      sources."parse-json-4.0.0"
-      sources."pascal-case-3.1.2"
-      sources."password-prompt-1.1.3"
-      sources."patch-console-2.0.0"
-      sources."path-case-3.0.4"
-      sources."path-exists-5.0.0"
-      sources."path-is-absolute-1.0.1"
-      sources."path-key-3.1.1"
-      sources."path-parse-1.0.7"
-      sources."path-type-4.0.0"
-      sources."pathe-1.1.1"
+      sources."micromatch-4.0.7"
+      sources."node-addon-api-7.1.0"
       sources."picomatch-2.3.1"
-      (sources."pid-from-port-1.1.3" // {
-        dependencies = [
-          sources."cross-spawn-5.1.0"
-          sources."execa-0.9.0"
-          sources."get-stream-3.0.0"
-          sources."is-stream-1.1.0"
-          sources."lru-cache-4.1.5"
-          sources."npm-run-path-2.0.2"
-          sources."path-key-2.0.1"
-          sources."shebang-command-1.2.0"
-          sources."shebang-regex-1.0.0"
-          sources."which-1.3.1"
-          sources."yallist-2.1.2"
-        ];
-      })
-      sources."pify-4.0.1"
-      sources."printable-characters-1.0.42"
-      sources."process-nextick-args-2.0.1"
-      sources."proto-list-1.2.4"
-      sources."pseudomap-1.0.2"
-      sources."pump-3.0.0"
-      sources."punycode-2.3.1"
-      sources."queue-microtask-1.2.3"
-      sources."quick-lru-5.1.1"
-      sources."rc-1.2.8"
-      sources."react-18.2.0"
-      (sources."react-devtools-core-4.28.5" // {
-        dependencies = [
-          sources."utf-8-validate-5.0.10"
-          sources."ws-7.5.9"
-        ];
-      })
-      sources."react-reconciler-0.29.0"
-      sources."readable-stream-3.6.2"
-      (sources."readdir-glob-1.1.3" // {
-        dependencies = [
-          sources."minimatch-5.1.6"
-        ];
-      })
-      sources."rechoir-0.6.2"
-      sources."redeyed-2.1.1"
-      sources."registry-auth-token-5.0.2"
-      sources."registry-url-6.0.1"
-      sources."require-from-string-2.0.2"
-      sources."resolve-1.22.8"
-      sources."resolve-alpn-1.2.1"
-      sources."responselike-3.0.0"
-      (sources."restore-cursor-4.0.0" // {
-        dependencies = [
-          sources."mimic-fn-2.1.0"
-          sources."onetime-5.1.2"
-        ];
-      })
-      sources."reusify-1.0.4"
-      sources."rimraf-3.0.2"
-      sources."run-parallel-1.2.0"
-      sources."safe-buffer-5.2.1"
-      sources."safer-buffer-2.1.2"
-      sources."scheduler-0.23.0"
-      sources."semver-7.6.0"
-      sources."semver-regex-4.0.5"
-      sources."sentence-case-3.0.4"
-      sources."shebang-command-2.0.0"
-      sources."shebang-regex-3.0.0"
-      sources."shell-quote-1.8.1"
-      sources."shelljs-0.8.5"
-      sources."signal-exit-3.0.7"
-      sources."simple-git-3.19.1"
-      sources."simple-swizzle-0.2.2"
-      sources."slash-3.0.0"
-      sources."slice-ansi-4.0.0"
-      sources."snake-case-3.0.4"
-      sources."source-map-0.6.1"
-      sources."source-map-support-0.5.21"
-      sources."sprintf-js-1.0.3"
-      sources."stack-generator-2.0.10"
-      (sources."stack-utils-2.0.6" // {
-        dependencies = [
-          sources."escape-string-regexp-2.0.0"
-        ];
-      })
-      sources."stackframe-1.3.4"
-      sources."stacktracey-2.1.8"
-      sources."string-width-4.2.3"
-      (sources."string_decoder-1.1.1" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
-      sources."strip-ansi-6.0.1"
-      sources."strip-bom-3.0.0"
-      sources."strip-eof-1.0.0"
-      sources."strip-final-newline-3.0.0"
-      sources."strip-json-comments-2.0.1"
-      sources."stubborn-fs-1.2.5"
-      sources."supports-color-8.1.1"
-      (sources."supports-hyperlinks-2.3.0" // {
-        dependencies = [
-          sources."supports-color-7.2.0"
-        ];
-      })
-      sources."supports-preserve-symlinks-flag-1.0.0"
-      sources."tar-stream-2.2.0"
-      sources."temp-dir-2.0.0"
-      (sources."tempy-3.0.0" // {
-        dependencies = [
-          sources."is-stream-3.0.0"
-          sources."type-fest-2.19.0"
-        ];
-      })
-      sources."term-size-3.0.2"
-      (sources."terminal-link-3.0.0" // {
-        dependencies = [
-          sources."ansi-escapes-5.0.0"
-          sources."type-fest-1.4.0"
-        ];
-      })
-      sources."tinycolor2-1.6.0"
-      sources."tinygradient-1.1.5"
       sources."to-regex-range-5.0.1"
-      sources."tr46-0.0.3"
-      sources."ts-error-1.0.6"
-      sources."ts-node-10.9.2"
-      sources."tslib-2.6.2"
-      sources."tunnel-agent-0.6.0"
-      sources."type-fest-0.21.3"
-      sources."typescript-5.4.2"
-      sources."undici-types-5.26.5"
-      sources."unique-string-3.0.0"
-      sources."universalify-2.0.1"
-      sources."upper-case-2.0.2"
-      sources."upper-case-first-2.0.2"
-      sources."uri-js-4.4.1"
-      sources."utf-8-validate-6.0.3"
-      sources."util-deprecate-1.0.2"
-      sources."v8-compile-cache-lib-3.0.1"
-      sources."validate-npm-package-name-5.0.0"
-      sources."web-streams-polyfill-3.3.3"
-      sources."webidl-conversions-3.0.1"
-      sources."whatwg-url-5.0.0"
-      sources."when-exit-2.1.2"
-      sources."which-2.0.2"
-      sources."widest-line-3.1.0"
-      sources."wordwrap-1.0.0"
-      sources."wrap-ansi-7.0.0"
-      sources."wrappy-1.0.2"
-      sources."ws-8.16.0"
-      sources."yallist-4.0.0"
-      sources."yarn-1.22.22"
-      sources."yn-3.1.1"
-      sources."yocto-queue-1.0.0"
-      sources."yoga-wasm-web-0.3.3"
-      (sources."zip-stream-4.1.1" // {
-        dependencies = [
-          sources."archiver-utils-3.0.4"
-        ];
-      })
-      sources."zod-3.22.3"
-      sources."zod-to-json-schema-3.21.4"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -62684,30 +61216,30 @@ in
     };
     dependencies = [
       sources."@alloc/quick-lru-5.2.0"
-      sources."@cspotcode/source-map-support-0.8.1"
-      sources."@isaacs/cliui-8.0.2"
-      (sources."@jridgewell/gen-mapping-0.3.5" // {
+      (sources."@cspotcode/source-map-support-0.8.1" // {
         dependencies = [
-          sources."@jridgewell/trace-mapping-0.3.25"
+          sources."@jridgewell/trace-mapping-0.3.9"
         ];
       })
+      sources."@isaacs/cliui-8.0.2"
+      sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
       sources."@jridgewell/set-array-1.2.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.9"
+      sources."@jridgewell/trace-mapping-0.3.25"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@swc/core-1.4.8"
+      sources."@swc/core-1.5.24"
       sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.7"
-      sources."@swc/types-0.1.6"
-      sources."@swc/wasm-1.4.8"
-      sources."@tsconfig/node10-1.0.9"
+      sources."@swc/helpers-0.5.11"
+      sources."@swc/types-0.1.7"
+      sources."@swc/wasm-1.5.24"
+      sources."@tsconfig/node10-1.0.11"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."acorn-8.11.3"
       sources."acorn-walk-8.3.2"
       sources."ansi-regex-5.0.1"
@@ -62718,7 +61250,7 @@ in
       sources."balanced-match-1.0.2"
       sources."binary-extensions-2.3.0"
       sources."brace-expansion-2.0.1"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."camelcase-css-2.0.1"
       (sources."chokidar-3.6.0" // {
         dependencies = [
@@ -62742,10 +61274,10 @@ in
         ];
       })
       sources."fastq-1.17.1"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."foreground-child-3.1.1"
       sources."function-bind-1.1.2"
-      sources."glob-10.3.10"
+      sources."glob-10.4.1"
       sources."glob-parent-6.0.2"
       sources."hasown-2.0.2"
       sources."is-binary-path-2.1.0"
@@ -62755,16 +61287,16 @@ in
       sources."is-glob-4.0.3"
       sources."is-number-7.0.0"
       sources."isexe-2.0.0"
-      sources."jackspeak-2.3.6"
+      sources."jackspeak-3.2.3"
       sources."jiti-1.21.0"
       sources."lilconfig-2.1.0"
       sources."lines-and-columns-1.2.4"
-      sources."lru-cache-10.2.0"
+      sources."lru-cache-10.2.2"
       sources."make-error-1.3.6"
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
-      sources."minimatch-9.0.3"
-      sources."minipass-7.0.4"
+      sources."micromatch-4.0.7"
+      sources."minimatch-9.0.4"
+      sources."minipass-7.1.2"
       sources."mz-2.7.0"
       sources."nanoid-3.3.7"
       sources."normalize-path-3.0.0"
@@ -62772,12 +61304,12 @@ in
       sources."object-hash-3.0.0"
       sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
-      sources."path-scurry-1.10.1"
-      sources."picocolors-1.0.0"
+      sources."path-scurry-1.11.1"
+      sources."picocolors-1.0.1"
       sources."picomatch-2.3.1"
       sources."pify-2.3.0"
       sources."pirates-4.0.6"
-      sources."postcss-8.4.36"
+      sources."postcss-8.4.38"
       sources."postcss-import-15.1.0"
       sources."postcss-js-4.0.1"
       (sources."postcss-load-config-4.0.2" // {
@@ -62786,7 +61318,7 @@ in
         ];
       })
       sources."postcss-nested-6.0.1"
-      sources."postcss-selector-parser-6.0.16"
+      sources."postcss-selector-parser-6.1.0"
       sources."postcss-value-parser-4.2.0"
       sources."queue-microtask-1.2.3"
       sources."read-cache-1.0.0"
@@ -62797,7 +61329,7 @@ in
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-4.1.0"
-      sources."source-map-js-1.1.0"
+      sources."source-map-js-1.2.0"
       sources."string-width-5.1.2"
       (sources."string-width-cjs-4.2.3" // {
         dependencies = [
@@ -62813,7 +61345,7 @@ in
       sources."strip-ansi-cjs-6.0.1"
       sources."sucrase-3.35.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
-      sources."tailwindcss-3.4.1"
+      sources."tailwindcss-3.4.3"
       sources."thenify-3.3.1"
       sources."thenify-all-1.6.0"
       sources."to-regex-range-5.0.1"
@@ -62824,7 +61356,7 @@ in
         ];
       })
       sources."tslib-2.6.2"
-      sources."typescript-5.4.2"
+      sources."typescript-5.4.5"
       sources."undici-types-5.26.5"
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-lib-3.0.1"
@@ -62838,7 +61370,7 @@ in
           sources."strip-ansi-6.0.1"
         ];
       })
-      sources."yaml-2.4.1"
+      sources."yaml-2.4.3"
       sources."yn-3.1.1"
     ];
     buildInputs = globalBuildInputs;
@@ -62861,30 +61393,30 @@ in
     };
     dependencies = [
       sources."@alloc/quick-lru-5.2.0"
-      sources."@cspotcode/source-map-support-0.8.1"
-      sources."@isaacs/cliui-8.0.2"
-      (sources."@jridgewell/gen-mapping-0.3.5" // {
+      (sources."@cspotcode/source-map-support-0.8.1" // {
         dependencies = [
-          sources."@jridgewell/trace-mapping-0.3.25"
+          sources."@jridgewell/trace-mapping-0.3.9"
         ];
       })
+      sources."@isaacs/cliui-8.0.2"
+      sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
       sources."@jridgewell/set-array-1.2.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.9"
+      sources."@jridgewell/trace-mapping-0.3.25"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@swc/core-1.4.8"
+      sources."@swc/core-1.5.24"
       sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.7"
-      sources."@swc/types-0.1.6"
-      sources."@swc/wasm-1.4.8"
-      sources."@tsconfig/node10-1.0.9"
+      sources."@swc/helpers-0.5.11"
+      sources."@swc/types-0.1.7"
+      sources."@swc/wasm-1.5.24"
+      sources."@tsconfig/node10-1.0.11"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."acorn-8.11.3"
       sources."acorn-walk-8.3.2"
       sources."ansi-regex-5.0.1"
@@ -62895,7 +61427,7 @@ in
       sources."balanced-match-1.0.2"
       sources."binary-extensions-2.3.0"
       sources."brace-expansion-2.0.1"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."camelcase-css-2.0.1"
       (sources."chokidar-3.6.0" // {
         dependencies = [
@@ -62919,10 +61451,10 @@ in
         ];
       })
       sources."fastq-1.17.1"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."foreground-child-3.1.1"
       sources."function-bind-1.1.2"
-      sources."glob-10.3.10"
+      sources."glob-10.4.1"
       sources."glob-parent-6.0.2"
       sources."hasown-2.0.2"
       sources."is-binary-path-2.1.0"
@@ -62932,17 +61464,17 @@ in
       sources."is-glob-4.0.3"
       sources."is-number-7.0.0"
       sources."isexe-2.0.0"
-      sources."jackspeak-2.3.6"
+      sources."jackspeak-3.2.3"
       sources."jiti-1.21.0"
       sources."lilconfig-2.1.0"
       sources."lines-and-columns-1.2.4"
-      sources."lru-cache-10.2.0"
+      sources."lru-cache-10.2.2"
       sources."make-error-1.3.6"
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."mini-svg-data-uri-1.4.4"
-      sources."minimatch-9.0.3"
-      sources."minipass-7.0.4"
+      sources."minimatch-9.0.4"
+      sources."minipass-7.1.2"
       sources."mz-2.7.0"
       sources."nanoid-3.3.7"
       sources."normalize-path-3.0.0"
@@ -62950,12 +61482,12 @@ in
       sources."object-hash-3.0.0"
       sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
-      sources."path-scurry-1.10.1"
-      sources."picocolors-1.0.0"
+      sources."path-scurry-1.11.1"
+      sources."picocolors-1.0.1"
       sources."picomatch-2.3.1"
       sources."pify-2.3.0"
       sources."pirates-4.0.6"
-      sources."postcss-8.4.36"
+      sources."postcss-8.4.38"
       sources."postcss-import-15.1.0"
       sources."postcss-js-4.0.1"
       (sources."postcss-load-config-4.0.2" // {
@@ -62964,7 +61496,7 @@ in
         ];
       })
       sources."postcss-nested-6.0.1"
-      sources."postcss-selector-parser-6.0.16"
+      sources."postcss-selector-parser-6.1.0"
       sources."postcss-value-parser-4.2.0"
       sources."queue-microtask-1.2.3"
       sources."read-cache-1.0.0"
@@ -62975,7 +61507,7 @@ in
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-4.1.0"
-      sources."source-map-js-1.1.0"
+      sources."source-map-js-1.2.0"
       sources."string-width-5.1.2"
       (sources."string-width-cjs-4.2.3" // {
         dependencies = [
@@ -62991,7 +61523,7 @@ in
       sources."strip-ansi-cjs-6.0.1"
       sources."sucrase-3.35.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
-      sources."tailwindcss-3.4.1"
+      sources."tailwindcss-3.4.3"
       sources."thenify-3.3.1"
       sources."thenify-all-1.6.0"
       sources."to-regex-range-5.0.1"
@@ -63002,7 +61534,7 @@ in
         ];
       })
       sources."tslib-2.6.2"
-      sources."typescript-5.4.2"
+      sources."typescript-5.4.5"
       sources."undici-types-5.26.5"
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-lib-3.0.1"
@@ -63016,7 +61548,7 @@ in
           sources."strip-ansi-6.0.1"
         ];
       })
-      sources."yaml-2.4.1"
+      sources."yaml-2.4.3"
       sources."yn-3.1.1"
     ];
     buildInputs = globalBuildInputs;
@@ -63039,30 +61571,30 @@ in
     };
     dependencies = [
       sources."@alloc/quick-lru-5.2.0"
-      sources."@cspotcode/source-map-support-0.8.1"
-      sources."@isaacs/cliui-8.0.2"
-      (sources."@jridgewell/gen-mapping-0.3.5" // {
+      (sources."@cspotcode/source-map-support-0.8.1" // {
         dependencies = [
-          sources."@jridgewell/trace-mapping-0.3.25"
+          sources."@jridgewell/trace-mapping-0.3.9"
         ];
       })
+      sources."@isaacs/cliui-8.0.2"
+      sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
       sources."@jridgewell/set-array-1.2.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.9"
+      sources."@jridgewell/trace-mapping-0.3.25"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@swc/core-1.4.8"
+      sources."@swc/core-1.5.24"
       sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.7"
-      sources."@swc/types-0.1.6"
-      sources."@swc/wasm-1.4.8"
-      sources."@tsconfig/node10-1.0.9"
+      sources."@swc/helpers-0.5.11"
+      sources."@swc/types-0.1.7"
+      sources."@swc/wasm-1.5.24"
+      sources."@tsconfig/node10-1.0.11"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."acorn-8.11.3"
       sources."acorn-walk-8.3.2"
       sources."ansi-regex-5.0.1"
@@ -63073,7 +61605,7 @@ in
       sources."balanced-match-1.0.2"
       sources."binary-extensions-2.3.0"
       sources."brace-expansion-2.0.1"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."camelcase-css-2.0.1"
       (sources."chokidar-3.6.0" // {
         dependencies = [
@@ -63097,10 +61629,10 @@ in
         ];
       })
       sources."fastq-1.17.1"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."foreground-child-3.1.1"
       sources."function-bind-1.1.2"
-      sources."glob-10.3.10"
+      sources."glob-10.4.1"
       sources."glob-parent-6.0.2"
       sources."hasown-2.0.2"
       sources."is-binary-path-2.1.0"
@@ -63110,16 +61642,16 @@ in
       sources."is-glob-4.0.3"
       sources."is-number-7.0.0"
       sources."isexe-2.0.0"
-      sources."jackspeak-2.3.6"
+      sources."jackspeak-3.2.3"
       sources."jiti-1.21.0"
       sources."lilconfig-2.1.0"
       sources."lines-and-columns-1.2.4"
-      sources."lru-cache-10.2.0"
+      sources."lru-cache-10.2.2"
       sources."make-error-1.3.6"
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
-      sources."minimatch-9.0.3"
-      sources."minipass-7.0.4"
+      sources."micromatch-4.0.7"
+      sources."minimatch-9.0.4"
+      sources."minipass-7.1.2"
       sources."mz-2.7.0"
       sources."nanoid-3.3.7"
       sources."normalize-path-3.0.0"
@@ -63127,12 +61659,12 @@ in
       sources."object-hash-3.0.0"
       sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
-      sources."path-scurry-1.10.1"
-      sources."picocolors-1.0.0"
+      sources."path-scurry-1.11.1"
+      sources."picocolors-1.0.1"
       sources."picomatch-2.3.1"
       sources."pify-2.3.0"
       sources."pirates-4.0.6"
-      sources."postcss-8.4.36"
+      sources."postcss-8.4.38"
       sources."postcss-import-15.1.0"
       sources."postcss-js-4.0.1"
       (sources."postcss-load-config-4.0.2" // {
@@ -63141,7 +61673,7 @@ in
         ];
       })
       sources."postcss-nested-6.0.1"
-      sources."postcss-selector-parser-6.0.16"
+      sources."postcss-selector-parser-6.1.0"
       sources."postcss-value-parser-4.2.0"
       sources."queue-microtask-1.2.3"
       sources."read-cache-1.0.0"
@@ -63152,7 +61684,7 @@ in
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-4.1.0"
-      sources."source-map-js-1.1.0"
+      sources."source-map-js-1.2.0"
       sources."string-width-5.1.2"
       (sources."string-width-cjs-4.2.3" // {
         dependencies = [
@@ -63168,7 +61700,7 @@ in
       sources."strip-ansi-cjs-6.0.1"
       sources."sucrase-3.35.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
-      sources."tailwindcss-3.4.1"
+      sources."tailwindcss-3.4.3"
       sources."thenify-3.3.1"
       sources."thenify-all-1.6.0"
       sources."to-regex-range-5.0.1"
@@ -63179,7 +61711,7 @@ in
         ];
       })
       sources."tslib-2.6.2"
-      sources."typescript-5.4.2"
+      sources."typescript-5.4.5"
       sources."undici-types-5.26.5"
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-lib-3.0.1"
@@ -63193,7 +61725,7 @@ in
           sources."strip-ansi-6.0.1"
         ];
       })
-      sources."yaml-2.4.1"
+      sources."yaml-2.4.3"
       sources."yn-3.1.1"
     ];
     buildInputs = globalBuildInputs;
@@ -63209,37 +61741,37 @@ in
   "@tailwindcss/typography" = nodeEnv.buildNodePackage {
     name = "_at_tailwindcss_slash_typography";
     packageName = "@tailwindcss/typography";
-    version = "0.5.10";
+    version = "0.5.13";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.10.tgz";
-      sha512 = "Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==";
+      url = "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.13.tgz";
+      sha512 = "ADGcJ8dX21dVVHIwTRgzrcunY6YY9uSlAHHGVKvkA+vLc5qLwEszvKts40lx7z0qc4clpjclwLeK5rVCV2P/uw==";
     };
     dependencies = [
       sources."@alloc/quick-lru-5.2.0"
-      sources."@cspotcode/source-map-support-0.8.1"
-      sources."@isaacs/cliui-8.0.2"
-      (sources."@jridgewell/gen-mapping-0.3.5" // {
+      (sources."@cspotcode/source-map-support-0.8.1" // {
         dependencies = [
-          sources."@jridgewell/trace-mapping-0.3.25"
+          sources."@jridgewell/trace-mapping-0.3.9"
         ];
       })
+      sources."@isaacs/cliui-8.0.2"
+      sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
       sources."@jridgewell/set-array-1.2.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.9"
+      sources."@jridgewell/trace-mapping-0.3.25"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@swc/core-1.4.8"
+      sources."@swc/core-1.5.24"
       sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.7"
-      sources."@swc/types-0.1.6"
-      sources."@swc/wasm-1.4.8"
-      sources."@tsconfig/node10-1.0.9"
+      sources."@swc/helpers-0.5.11"
+      sources."@swc/types-0.1.7"
+      sources."@swc/wasm-1.5.24"
+      sources."@tsconfig/node10-1.0.11"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."acorn-8.11.3"
       sources."acorn-walk-8.3.2"
       sources."ansi-regex-5.0.1"
@@ -63250,7 +61782,7 @@ in
       sources."balanced-match-1.0.2"
       sources."binary-extensions-2.3.0"
       sources."brace-expansion-2.0.1"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."camelcase-css-2.0.1"
       (sources."chokidar-3.6.0" // {
         dependencies = [
@@ -63274,10 +61806,10 @@ in
         ];
       })
       sources."fastq-1.17.1"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."foreground-child-3.1.1"
       sources."function-bind-1.1.2"
-      sources."glob-10.3.10"
+      sources."glob-10.4.1"
       sources."glob-parent-6.0.2"
       sources."hasown-2.0.2"
       sources."is-binary-path-2.1.0"
@@ -63287,19 +61819,19 @@ in
       sources."is-glob-4.0.3"
       sources."is-number-7.0.0"
       sources."isexe-2.0.0"
-      sources."jackspeak-2.3.6"
+      sources."jackspeak-3.2.3"
       sources."jiti-1.21.0"
       sources."lilconfig-2.1.0"
       sources."lines-and-columns-1.2.4"
       sources."lodash.castarray-4.4.0"
       sources."lodash.isplainobject-4.0.6"
       sources."lodash.merge-4.6.2"
-      sources."lru-cache-10.2.0"
+      sources."lru-cache-10.2.2"
       sources."make-error-1.3.6"
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
-      sources."minimatch-9.0.3"
-      sources."minipass-7.0.4"
+      sources."micromatch-4.0.7"
+      sources."minimatch-9.0.4"
+      sources."minipass-7.1.2"
       sources."mz-2.7.0"
       sources."nanoid-3.3.7"
       sources."normalize-path-3.0.0"
@@ -63307,12 +61839,12 @@ in
       sources."object-hash-3.0.0"
       sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
-      sources."path-scurry-1.10.1"
-      sources."picocolors-1.0.0"
+      sources."path-scurry-1.11.1"
+      sources."picocolors-1.0.1"
       sources."picomatch-2.3.1"
       sources."pify-2.3.0"
       sources."pirates-4.0.6"
-      sources."postcss-8.4.36"
+      sources."postcss-8.4.38"
       sources."postcss-import-15.1.0"
       sources."postcss-js-4.0.1"
       (sources."postcss-load-config-4.0.2" // {
@@ -63322,7 +61854,7 @@ in
       })
       (sources."postcss-nested-6.0.1" // {
         dependencies = [
-          sources."postcss-selector-parser-6.0.16"
+          sources."postcss-selector-parser-6.1.0"
         ];
       })
       sources."postcss-selector-parser-6.0.10"
@@ -63336,7 +61868,7 @@ in
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-4.1.0"
-      sources."source-map-js-1.1.0"
+      sources."source-map-js-1.2.0"
       sources."string-width-5.1.2"
       (sources."string-width-cjs-4.2.3" // {
         dependencies = [
@@ -63352,9 +61884,9 @@ in
       sources."strip-ansi-cjs-6.0.1"
       sources."sucrase-3.35.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
-      (sources."tailwindcss-3.4.1" // {
+      (sources."tailwindcss-3.4.3" // {
         dependencies = [
-          sources."postcss-selector-parser-6.0.16"
+          sources."postcss-selector-parser-6.1.0"
         ];
       })
       sources."thenify-3.3.1"
@@ -63367,7 +61899,7 @@ in
         ];
       })
       sources."tslib-2.6.2"
-      sources."typescript-5.4.2"
+      sources."typescript-5.4.5"
       sources."undici-types-5.26.5"
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-lib-3.0.1"
@@ -63381,13 +61913,13 @@ in
           sources."strip-ansi-6.0.1"
         ];
       })
-      sources."yaml-2.4.1"
+      sources."yaml-2.4.3"
       sources."yn-3.1.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "A Tailwind CSS plugin for automatically styling plain HTML content with beautiful typographic defaults.";
-      homepage = "https://github.com/tailwindcss/typography#readme";
+      homepage = "https://github.com/tailwindlabs/tailwindcss-typography#readme";
       license = "MIT";
     };
     production = true;
@@ -63397,10 +61929,10 @@ in
   "@uppy/companion" = nodeEnv.buildNodePackage {
     name = "_at_uppy_slash_companion";
     packageName = "@uppy/companion";
-    version = "4.12.3";
+    version = "4.13.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@uppy/companion/-/companion-4.12.3.tgz";
-      sha512 = "0i/EDrK/N3zhrHy56Sq9NyH/vWvmsCBh5ulT2mW8RZlTtFTZXMCkHlnqliSlRHTDsGSDLho9BkIdE4Yn64Saiw==";
+      url = "https://registry.npmjs.org/@uppy/companion/-/companion-4.13.3.tgz";
+      sha512 = "FTg+WumdND6cgcRMdWhYKIPQ+00k21aIrbCFGQbDH79kWgRlHVDAur+ryVh+zT5YeM8u475tddn02nmJ2QqIow==";
     };
     dependencies = [
       (sources."@aws-crypto/crc32-3.0.0" // {
@@ -63443,111 +61975,111 @@ in
           sources."tslib-1.14.1"
         ];
       })
-      sources."@aws-sdk/client-s3-3.536.0"
-      sources."@aws-sdk/client-sso-3.535.0"
-      sources."@aws-sdk/client-sso-oidc-3.535.0"
-      sources."@aws-sdk/client-sts-3.535.0"
-      sources."@aws-sdk/core-3.535.0"
-      sources."@aws-sdk/credential-provider-env-3.535.0"
-      sources."@aws-sdk/credential-provider-http-3.535.0"
-      sources."@aws-sdk/credential-provider-ini-3.535.0"
-      sources."@aws-sdk/credential-provider-node-3.535.0"
-      sources."@aws-sdk/credential-provider-process-3.535.0"
-      sources."@aws-sdk/credential-provider-sso-3.535.0"
-      sources."@aws-sdk/credential-provider-web-identity-3.535.0"
-      (sources."@aws-sdk/lib-storage-3.536.0" // {
+      sources."@aws-sdk/client-s3-3.588.0"
+      sources."@aws-sdk/client-sso-3.588.0"
+      sources."@aws-sdk/client-sso-oidc-3.588.0"
+      sources."@aws-sdk/client-sts-3.588.0"
+      sources."@aws-sdk/core-3.588.0"
+      sources."@aws-sdk/credential-provider-env-3.587.0"
+      sources."@aws-sdk/credential-provider-http-3.587.0"
+      sources."@aws-sdk/credential-provider-ini-3.588.0"
+      sources."@aws-sdk/credential-provider-node-3.588.0"
+      sources."@aws-sdk/credential-provider-process-3.587.0"
+      sources."@aws-sdk/credential-provider-sso-3.588.0"
+      sources."@aws-sdk/credential-provider-web-identity-3.587.0"
+      (sources."@aws-sdk/lib-storage-3.588.0" // {
         dependencies = [
           sources."buffer-5.6.0"
         ];
       })
-      sources."@aws-sdk/middleware-bucket-endpoint-3.535.0"
-      sources."@aws-sdk/middleware-expect-continue-3.535.0"
-      sources."@aws-sdk/middleware-flexible-checksums-3.535.0"
-      sources."@aws-sdk/middleware-host-header-3.535.0"
-      sources."@aws-sdk/middleware-location-constraint-3.535.0"
-      sources."@aws-sdk/middleware-logger-3.535.0"
-      sources."@aws-sdk/middleware-recursion-detection-3.535.0"
-      sources."@aws-sdk/middleware-sdk-s3-3.535.0"
-      sources."@aws-sdk/middleware-signing-3.535.0"
-      sources."@aws-sdk/middleware-ssec-3.535.0"
-      sources."@aws-sdk/middleware-user-agent-3.535.0"
-      sources."@aws-sdk/region-config-resolver-3.535.0"
-      sources."@aws-sdk/s3-presigned-post-3.536.0"
-      sources."@aws-sdk/s3-request-presigner-3.536.0"
-      sources."@aws-sdk/signature-v4-multi-region-3.535.0"
-      sources."@aws-sdk/token-providers-3.535.0"
-      sources."@aws-sdk/types-3.535.0"
-      sources."@aws-sdk/util-arn-parser-3.535.0"
-      sources."@aws-sdk/util-endpoints-3.535.0"
-      sources."@aws-sdk/util-format-url-3.535.0"
-      sources."@aws-sdk/util-locate-window-3.535.0"
-      sources."@aws-sdk/util-user-agent-browser-3.535.0"
-      sources."@aws-sdk/util-user-agent-node-3.535.0"
+      sources."@aws-sdk/middleware-bucket-endpoint-3.587.0"
+      sources."@aws-sdk/middleware-expect-continue-3.577.0"
+      sources."@aws-sdk/middleware-flexible-checksums-3.587.0"
+      sources."@aws-sdk/middleware-host-header-3.577.0"
+      sources."@aws-sdk/middleware-location-constraint-3.577.0"
+      sources."@aws-sdk/middleware-logger-3.577.0"
+      sources."@aws-sdk/middleware-recursion-detection-3.577.0"
+      sources."@aws-sdk/middleware-sdk-s3-3.587.0"
+      sources."@aws-sdk/middleware-signing-3.587.0"
+      sources."@aws-sdk/middleware-ssec-3.577.0"
+      sources."@aws-sdk/middleware-user-agent-3.587.0"
+      sources."@aws-sdk/region-config-resolver-3.587.0"
+      sources."@aws-sdk/s3-presigned-post-3.588.0"
+      sources."@aws-sdk/s3-request-presigner-3.588.0"
+      sources."@aws-sdk/signature-v4-multi-region-3.587.0"
+      sources."@aws-sdk/token-providers-3.587.0"
+      sources."@aws-sdk/types-3.577.0"
+      sources."@aws-sdk/util-arn-parser-3.568.0"
+      sources."@aws-sdk/util-endpoints-3.587.0"
+      sources."@aws-sdk/util-format-url-3.577.0"
+      sources."@aws-sdk/util-locate-window-3.568.0"
+      sources."@aws-sdk/util-user-agent-browser-3.577.0"
+      sources."@aws-sdk/util-user-agent-node-3.587.0"
       sources."@aws-sdk/util-utf8-browser-3.259.0"
-      sources."@aws-sdk/xml-builder-3.535.0"
+      sources."@aws-sdk/xml-builder-3.575.0"
       sources."@httptoolkit/websocket-stream-6.0.1"
-      sources."@redis/bloom-1.0.2"
-      sources."@redis/client-1.2.0"
-      sources."@redis/graph-1.0.1"
-      sources."@redis/json-1.0.3"
-      sources."@redis/search-1.0.6"
-      sources."@redis/time-series-1.0.3"
+      sources."@redis/bloom-1.2.0"
+      sources."@redis/client-1.5.16"
+      sources."@redis/graph-1.1.1"
+      sources."@redis/json-1.0.6"
+      sources."@redis/search-1.1.6"
+      sources."@redis/time-series-1.0.5"
       sources."@sindresorhus/is-4.6.0"
-      sources."@smithy/abort-controller-2.2.0"
-      sources."@smithy/chunked-blob-reader-2.2.0"
-      sources."@smithy/chunked-blob-reader-native-2.2.0"
-      sources."@smithy/config-resolver-2.2.0"
-      sources."@smithy/core-1.4.0"
-      sources."@smithy/credential-provider-imds-2.3.0"
-      sources."@smithy/eventstream-codec-2.2.0"
-      sources."@smithy/eventstream-serde-browser-2.2.0"
-      sources."@smithy/eventstream-serde-config-resolver-2.2.0"
-      sources."@smithy/eventstream-serde-node-2.2.0"
-      sources."@smithy/eventstream-serde-universal-2.2.0"
-      sources."@smithy/fetch-http-handler-2.5.0"
-      sources."@smithy/hash-blob-browser-2.2.0"
-      sources."@smithy/hash-node-2.2.0"
-      sources."@smithy/hash-stream-node-2.2.0"
-      sources."@smithy/invalid-dependency-2.2.0"
-      sources."@smithy/is-array-buffer-2.2.0"
-      sources."@smithy/md5-js-2.2.0"
-      sources."@smithy/middleware-content-length-2.2.0"
-      sources."@smithy/middleware-endpoint-2.5.0"
-      sources."@smithy/middleware-retry-2.2.0"
-      sources."@smithy/middleware-serde-2.3.0"
-      sources."@smithy/middleware-stack-2.2.0"
-      sources."@smithy/node-config-provider-2.3.0"
-      sources."@smithy/node-http-handler-2.5.0"
-      sources."@smithy/property-provider-2.2.0"
-      sources."@smithy/protocol-http-3.3.0"
-      sources."@smithy/querystring-builder-2.2.0"
-      sources."@smithy/querystring-parser-2.2.0"
-      sources."@smithy/service-error-classification-2.1.5"
-      sources."@smithy/shared-ini-file-loader-2.4.0"
-      sources."@smithy/signature-v4-2.2.0"
-      sources."@smithy/smithy-client-2.5.0"
-      sources."@smithy/types-2.12.0"
-      sources."@smithy/url-parser-2.2.0"
-      sources."@smithy/util-base64-2.3.0"
-      sources."@smithy/util-body-length-browser-2.2.0"
-      sources."@smithy/util-body-length-node-2.3.0"
-      sources."@smithy/util-buffer-from-2.2.0"
-      sources."@smithy/util-config-provider-2.3.0"
-      sources."@smithy/util-defaults-mode-browser-2.2.0"
-      sources."@smithy/util-defaults-mode-node-2.3.0"
-      sources."@smithy/util-endpoints-1.2.0"
-      sources."@smithy/util-hex-encoding-2.2.0"
-      sources."@smithy/util-middleware-2.2.0"
-      sources."@smithy/util-retry-2.2.0"
-      sources."@smithy/util-stream-2.2.0"
-      sources."@smithy/util-uri-escape-2.2.0"
-      sources."@smithy/util-utf8-2.3.0"
-      sources."@smithy/util-waiter-2.2.0"
+      sources."@smithy/abort-controller-3.0.0"
+      sources."@smithy/chunked-blob-reader-3.0.0"
+      sources."@smithy/chunked-blob-reader-native-3.0.0"
+      sources."@smithy/config-resolver-3.0.1"
+      sources."@smithy/core-2.1.1"
+      sources."@smithy/credential-provider-imds-3.1.0"
+      sources."@smithy/eventstream-codec-3.0.0"
+      sources."@smithy/eventstream-serde-browser-3.0.0"
+      sources."@smithy/eventstream-serde-config-resolver-3.0.0"
+      sources."@smithy/eventstream-serde-node-3.0.0"
+      sources."@smithy/eventstream-serde-universal-3.0.0"
+      sources."@smithy/fetch-http-handler-3.0.1"
+      sources."@smithy/hash-blob-browser-3.0.0"
+      sources."@smithy/hash-node-3.0.0"
+      sources."@smithy/hash-stream-node-3.0.0"
+      sources."@smithy/invalid-dependency-3.0.0"
+      sources."@smithy/is-array-buffer-3.0.0"
+      sources."@smithy/md5-js-3.0.0"
+      sources."@smithy/middleware-content-length-3.0.0"
+      sources."@smithy/middleware-endpoint-3.0.1"
+      sources."@smithy/middleware-retry-3.0.3"
+      sources."@smithy/middleware-serde-3.0.0"
+      sources."@smithy/middleware-stack-3.0.0"
+      sources."@smithy/node-config-provider-3.1.0"
+      sources."@smithy/node-http-handler-3.0.0"
+      sources."@smithy/property-provider-3.1.0"
+      sources."@smithy/protocol-http-4.0.0"
+      sources."@smithy/querystring-builder-3.0.0"
+      sources."@smithy/querystring-parser-3.0.0"
+      sources."@smithy/service-error-classification-3.0.0"
+      sources."@smithy/shared-ini-file-loader-3.1.0"
+      sources."@smithy/signature-v4-3.0.0"
+      sources."@smithy/smithy-client-3.1.1"
+      sources."@smithy/types-3.0.0"
+      sources."@smithy/url-parser-3.0.0"
+      sources."@smithy/util-base64-3.0.0"
+      sources."@smithy/util-body-length-browser-3.0.0"
+      sources."@smithy/util-body-length-node-3.0.0"
+      sources."@smithy/util-buffer-from-3.0.0"
+      sources."@smithy/util-config-provider-3.0.0"
+      sources."@smithy/util-defaults-mode-browser-3.0.3"
+      sources."@smithy/util-defaults-mode-node-3.0.3"
+      sources."@smithy/util-endpoints-2.0.1"
+      sources."@smithy/util-hex-encoding-3.0.0"
+      sources."@smithy/util-middleware-3.0.0"
+      sources."@smithy/util-retry-3.0.0"
+      sources."@smithy/util-stream-3.0.1"
+      sources."@smithy/util-uri-escape-3.0.0"
+      sources."@smithy/util-utf8-3.0.0"
+      sources."@smithy/util-waiter-3.0.0"
       sources."@szmarczak/http-timer-4.0.6"
       sources."@types/cacheable-request-6.0.3"
       sources."@types/http-cache-semantics-4.0.4"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."@types/responselike-1.0.3"
       sources."@types/ws-8.5.10"
       sources."accepts-1.3.8"
@@ -63556,8 +62088,8 @@ in
       sources."asn1.js-5.4.1"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
-      sources."aws-crt-1.21.1"
-      (sources."axios-1.6.8" // {
+      sources."aws-crt-1.21.2"
+      (sources."axios-1.7.2" // {
         dependencies = [
           sources."form-data-4.0.0"
         ];
@@ -63596,7 +62128,7 @@ in
       sources."call-bind-1.0.7"
       sources."chalk-4.1.2"
       sources."clone-response-1.0.3"
-      sources."cluster-key-slot-1.1.0"
+      sources."cluster-key-slot-1.1.2"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."combine-errors-3.0.3"
@@ -63620,7 +62152,7 @@ in
       sources."cron-parser-3.5.0"
       sources."crypto-js-4.2.0"
       sources."custom-error-instance-2.1.1"
-      (sources."debug-4.3.4" // {
+      (sources."debug-4.3.5" // {
         dependencies = [
           sources."ms-2.1.2"
         ];
@@ -63649,11 +62181,14 @@ in
       sources."escape-string-regexp-4.0.0"
       sources."etag-1.8.1"
       sources."events-3.3.0"
-      (sources."express-4.18.1" // {
+      (sources."express-4.19.2" // {
         dependencies = [
-          sources."cookie-0.5.0"
+          sources."body-parser-1.20.2"
+          sources."cookie-0.6.0"
           sources."debug-2.6.9"
           sources."ms-2.0.0"
+          sources."qs-6.11.0"
+          sources."raw-body-2.5.2"
         ];
       })
       (sources."express-interceptor-1.2.0" // {
@@ -63688,7 +62223,7 @@ in
       sources."fresh-0.5.2"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.2"
-      sources."generic-pool-3.8.2"
+      sources."generic-pool-3.9.0"
       sources."get-intrinsic-1.2.4"
       sources."get-stream-5.2.0"
       sources."glob-7.2.3"
@@ -63720,7 +62255,7 @@ in
       sources."ieee754-1.2.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ipaddr.js-2.1.0"
+      sources."ipaddr.js-2.2.0"
       sources."is-nan-1.3.2"
       sources."is-stream-2.0.1"
       sources."isarray-1.0.0"
@@ -63782,7 +62317,7 @@ in
       sources."mqtt-packet-6.10.0"
       sources."ms-2.1.3"
       sources."negotiator-0.6.3"
-      sources."node-gyp-build-4.8.0"
+      sources."node-gyp-build-4.8.1"
       sources."node-schedule-2.1.0"
       sources."normalize-url-6.1.0"
       sources."number-allocator-1.0.14"
@@ -63820,10 +62355,14 @@ in
           sources."safe-buffer-5.1.2"
         ];
       })
-      sources."redis-4.2.0"
+      sources."redis-4.6.14"
       sources."reinterval-1.1.0"
       sources."request-compose-2.1.6"
-      sources."request-oauth-1.0.1"
+      (sources."request-oauth-1.0.1" // {
+        dependencies = [
+          sources."uuid-8.3.2"
+        ];
+      })
       sources."requires-port-1.0.0"
       sources."resolve-alpn-1.2.1"
       sources."responselike-2.0.1"
@@ -63831,7 +62370,7 @@ in
       sources."rfdc-1.3.1"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.6.0"
+      sources."semver-7.6.2"
       (sources."send-0.18.0" // {
         dependencies = [
           (sources."debug-2.6.9" // {
@@ -63882,8 +62421,8 @@ in
       sources."utf-8-validate-5.0.10"
       sources."util-deprecate-1.0.2"
       sources."utils-merge-1.0.1"
-      sources."uuid-8.3.2"
-      sources."validator-13.11.0"
+      sources."uuid-9.0.1"
+      sources."validator-13.12.0"
       sources."vary-1.1.2"
       sources."wrappy-1.0.2"
       sources."ws-8.8.1"
@@ -63909,7 +62448,7 @@ in
       sha512 = "+/kSxBAkZbeVBePoG2qRSvCkVIslk1dNlU5wQHAcbzOFTi7pEQR6C+kjoj94I+vGXVGMFfDwOYm07sPsd8dM6w==";
     };
     dependencies = [
-      sources."@babel/parser-7.24.0"
+      sources."@babel/parser-7.24.6"
       sources."@emmetio/abbreviation-2.3.3"
       sources."@emmetio/css-abbreviation-2.1.8"
       sources."@emmetio/scanner-1.0.4"
@@ -63929,19 +62468,19 @@ in
       sources."@volar/source-map-1.4.1"
       sources."@volar/vue-language-core-1.6.5"
       sources."@volar/vue-language-service-1.6.5"
-      (sources."@vscode/emmet-helper-2.9.2" // {
+      (sources."@vscode/emmet-helper-2.9.3" // {
         dependencies = [
           sources."jsonc-parser-2.3.1"
           sources."vscode-uri-2.1.2"
         ];
       })
       sources."@vscode/l10n-0.0.11"
-      sources."@vue/compiler-core-3.4.21"
-      sources."@vue/compiler-dom-3.4.21"
-      sources."@vue/compiler-sfc-3.4.21"
-      sources."@vue/compiler-ssr-3.4.21"
-      sources."@vue/reactivity-3.4.21"
-      sources."@vue/shared-3.4.21"
+      sources."@vue/compiler-core-3.4.27"
+      sources."@vue/compiler-dom-3.4.27"
+      sources."@vue/compiler-sfc-3.4.27"
+      sources."@vue/compiler-ssr-3.4.27"
+      sources."@vue/reactivity-3.4.27"
+      sources."@vue/shared-3.4.27"
       sources."acorn-7.4.1"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-2.0.1"
@@ -63966,60 +62505,61 @@ in
       sources."is-expression-4.0.0"
       sources."is-regex-1.1.4"
       sources."jsonc-parser-3.2.1"
-      sources."lru-cache-6.0.0"
-      sources."magic-string-0.30.8"
-      sources."minimatch-9.0.3"
+      sources."magic-string-0.30.10"
+      sources."minimatch-9.0.4"
       sources."muggle-string-0.2.2"
       sources."nanoid-3.3.7"
       sources."object-assign-4.1.1"
-      sources."picocolors-1.0.0"
-      sources."postcss-8.4.36"
-      sources."pug-error-2.0.0"
+      sources."picocolors-1.0.1"
+      sources."postcss-8.4.38"
+      sources."pug-error-2.1.0"
       sources."pug-lexer-5.0.1"
       sources."pug-parser-6.0.0"
       sources."request-light-0.7.0"
-      sources."semver-7.6.0"
+      sources."semver-7.6.2"
       sources."set-function-length-1.2.2"
-      sources."source-map-js-1.1.0"
+      sources."source-map-js-1.2.0"
       sources."token-stream-1.0.0"
       sources."typesafe-path-0.2.2"
-      sources."typescript-5.4.2"
+      sources."typescript-5.4.5"
       sources."typescript-auto-import-cache-0.2.1"
-      (sources."vscode-css-languageservice-6.2.12" // {
+      (sources."vscode-css-languageservice-6.2.14" // {
         dependencies = [
           sources."@vscode/l10n-0.0.18"
+          sources."vscode-languageserver-types-3.17.5"
         ];
       })
-      (sources."vscode-html-languageservice-5.1.2" // {
+      (sources."vscode-html-languageservice-5.2.0" // {
         dependencies = [
           sources."@vscode/l10n-0.0.18"
+          sources."vscode-languageserver-types-3.17.5"
         ];
       })
-      (sources."vscode-json-languageservice-5.3.9" // {
+      (sources."vscode-json-languageservice-5.3.11" // {
         dependencies = [
           sources."@vscode/l10n-0.0.18"
+          sources."vscode-languageserver-types-3.17.5"
         ];
       })
       sources."vscode-jsonrpc-8.1.0"
       (sources."vscode-languageserver-8.1.0" // {
         dependencies = [
           sources."vscode-languageserver-protocol-3.17.3"
-          sources."vscode-languageserver-types-3.17.3"
         ];
       })
       (sources."vscode-languageserver-protocol-3.17.5" // {
         dependencies = [
           sources."vscode-jsonrpc-8.2.0"
+          sources."vscode-languageserver-types-3.17.5"
         ];
       })
       sources."vscode-languageserver-textdocument-1.0.11"
-      sources."vscode-languageserver-types-3.17.5"
+      sources."vscode-languageserver-types-3.17.3"
       sources."vscode-nls-5.2.0"
       sources."vscode-uri-3.0.8"
       sources."vue-component-meta-1.6.5"
       sources."vue-component-type-helpers-1.6.5"
       sources."vue-template-compiler-2.7.16"
-      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -64039,7 +62579,7 @@ in
       sha512 = "c/QKPdC09bYkW22m/boXkLaiz10z0Z2WHZO7zEeNdfSduqyWINZhKc6hVQU3Vk0NXW7BJAd7zWmcUrC8L9TuAA==";
     };
     dependencies = [
-      sources."@achrinza/node-ipc-9.2.8"
+      sources."@achrinza/node-ipc-9.2.9"
       sources."@akryum/winattr-3.0.0"
       sources."@ampproject/remapping-2.3.0"
       sources."@apollo/protobufjs-1.2.7"
@@ -64058,62 +62598,53 @@ in
       sources."@apollo/utils.usagereporting-1.0.1"
       sources."@apollographql/apollo-tools-0.5.4"
       sources."@apollographql/graphql-playground-html-1.6.29"
-      (sources."@babel/code-frame-7.23.5" // {
-        dependencies = [
-          sources."ansi-styles-3.2.1"
-          sources."chalk-2.4.2"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."has-flag-3.0.0"
-          sources."supports-color-5.5.0"
-        ];
-      })
-      sources."@babel/compat-data-7.23.5"
-      (sources."@babel/core-7.24.0" // {
+      sources."@babel/code-frame-7.24.6"
+      sources."@babel/compat-data-7.24.6"
+      (sources."@babel/core-7.24.6" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      sources."@babel/generator-7.23.6"
-      sources."@babel/helper-annotate-as-pure-7.22.5"
-      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.22.15"
-      (sources."@babel/helper-compilation-targets-7.23.6" // {
+      sources."@babel/generator-7.24.6"
+      sources."@babel/helper-annotate-as-pure-7.24.6"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.24.6"
+      (sources."@babel/helper-compilation-targets-7.24.6" // {
         dependencies = [
           sources."lru-cache-5.1.1"
           sources."semver-6.3.1"
           sources."yallist-3.1.1"
         ];
       })
-      (sources."@babel/helper-create-class-features-plugin-7.24.0" // {
+      (sources."@babel/helper-create-class-features-plugin-7.24.6" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      (sources."@babel/helper-create-regexp-features-plugin-7.22.15" // {
+      (sources."@babel/helper-create-regexp-features-plugin-7.24.6" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      sources."@babel/helper-define-polyfill-provider-0.6.1"
-      sources."@babel/helper-environment-visitor-7.22.20"
-      sources."@babel/helper-function-name-7.23.0"
-      sources."@babel/helper-hoist-variables-7.22.5"
-      sources."@babel/helper-member-expression-to-functions-7.23.0"
-      sources."@babel/helper-module-imports-7.22.15"
-      sources."@babel/helper-module-transforms-7.23.3"
-      sources."@babel/helper-optimise-call-expression-7.22.5"
-      sources."@babel/helper-plugin-utils-7.24.0"
-      sources."@babel/helper-remap-async-to-generator-7.22.20"
-      sources."@babel/helper-replace-supers-7.22.20"
-      sources."@babel/helper-simple-access-7.22.5"
-      sources."@babel/helper-skip-transparent-expression-wrappers-7.22.5"
-      sources."@babel/helper-split-export-declaration-7.22.6"
-      sources."@babel/helper-string-parser-7.23.4"
-      sources."@babel/helper-validator-identifier-7.22.20"
-      sources."@babel/helper-validator-option-7.23.5"
-      sources."@babel/helper-wrap-function-7.22.20"
-      sources."@babel/helpers-7.24.0"
-      (sources."@babel/highlight-7.23.4" // {
+      sources."@babel/helper-define-polyfill-provider-0.6.2"
+      sources."@babel/helper-environment-visitor-7.24.6"
+      sources."@babel/helper-function-name-7.24.6"
+      sources."@babel/helper-hoist-variables-7.24.6"
+      sources."@babel/helper-member-expression-to-functions-7.24.6"
+      sources."@babel/helper-module-imports-7.24.6"
+      sources."@babel/helper-module-transforms-7.24.6"
+      sources."@babel/helper-optimise-call-expression-7.24.6"
+      sources."@babel/helper-plugin-utils-7.24.6"
+      sources."@babel/helper-remap-async-to-generator-7.24.6"
+      sources."@babel/helper-replace-supers-7.24.6"
+      sources."@babel/helper-simple-access-7.24.6"
+      sources."@babel/helper-skip-transparent-expression-wrappers-7.24.6"
+      sources."@babel/helper-split-export-declaration-7.24.6"
+      sources."@babel/helper-string-parser-7.24.6"
+      sources."@babel/helper-validator-identifier-7.24.6"
+      sources."@babel/helper-validator-option-7.24.6"
+      sources."@babel/helper-wrap-function-7.24.6"
+      sources."@babel/helpers-7.24.6"
+      (sources."@babel/highlight-7.24.6" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -64123,10 +62654,11 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@babel/parser-7.24.0"
-      sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3"
-      sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3"
-      sources."@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7"
+      sources."@babel/parser-7.24.6"
+      sources."@babel/plugin-bugfix-firefox-class-in-computed-class-key-7.24.6"
+      sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.6"
+      sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.6"
+      sources."@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.6"
       sources."@babel/plugin-proposal-class-properties-7.18.6"
       sources."@babel/plugin-proposal-nullish-coalescing-operator-7.18.6"
       sources."@babel/plugin-proposal-optional-chaining-7.21.0"
@@ -64136,12 +62668,12 @@ in
       sources."@babel/plugin-syntax-class-static-block-7.14.5"
       sources."@babel/plugin-syntax-dynamic-import-7.8.3"
       sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
-      sources."@babel/plugin-syntax-flow-7.23.3"
-      sources."@babel/plugin-syntax-import-assertions-7.23.3"
-      sources."@babel/plugin-syntax-import-attributes-7.23.3"
+      sources."@babel/plugin-syntax-flow-7.24.6"
+      sources."@babel/plugin-syntax-import-assertions-7.24.6"
+      sources."@babel/plugin-syntax-import-attributes-7.24.6"
       sources."@babel/plugin-syntax-import-meta-7.10.4"
       sources."@babel/plugin-syntax-json-strings-7.8.3"
-      sources."@babel/plugin-syntax-jsx-7.23.3"
+      sources."@babel/plugin-syntax-jsx-7.24.6"
       sources."@babel/plugin-syntax-logical-assignment-operators-7.10.4"
       sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3"
       sources."@babel/plugin-syntax-numeric-separator-7.10.4"
@@ -64150,67 +62682,67 @@ in
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
       sources."@babel/plugin-syntax-private-property-in-object-7.14.5"
       sources."@babel/plugin-syntax-top-level-await-7.14.5"
-      sources."@babel/plugin-syntax-typescript-7.23.3"
+      sources."@babel/plugin-syntax-typescript-7.24.6"
       sources."@babel/plugin-syntax-unicode-sets-regex-7.18.6"
-      sources."@babel/plugin-transform-arrow-functions-7.23.3"
-      sources."@babel/plugin-transform-async-generator-functions-7.23.9"
-      sources."@babel/plugin-transform-async-to-generator-7.23.3"
-      sources."@babel/plugin-transform-block-scoped-functions-7.23.3"
-      sources."@babel/plugin-transform-block-scoping-7.23.4"
-      sources."@babel/plugin-transform-class-properties-7.23.3"
-      sources."@babel/plugin-transform-class-static-block-7.23.4"
-      sources."@babel/plugin-transform-classes-7.23.8"
-      sources."@babel/plugin-transform-computed-properties-7.23.3"
-      sources."@babel/plugin-transform-destructuring-7.23.3"
-      sources."@babel/plugin-transform-dotall-regex-7.23.3"
-      sources."@babel/plugin-transform-duplicate-keys-7.23.3"
-      sources."@babel/plugin-transform-dynamic-import-7.23.4"
-      sources."@babel/plugin-transform-exponentiation-operator-7.23.3"
-      sources."@babel/plugin-transform-export-namespace-from-7.23.4"
-      sources."@babel/plugin-transform-flow-strip-types-7.23.3"
-      sources."@babel/plugin-transform-for-of-7.23.6"
-      sources."@babel/plugin-transform-function-name-7.23.3"
-      sources."@babel/plugin-transform-json-strings-7.23.4"
-      sources."@babel/plugin-transform-literals-7.23.3"
-      sources."@babel/plugin-transform-logical-assignment-operators-7.23.4"
-      sources."@babel/plugin-transform-member-expression-literals-7.23.3"
-      sources."@babel/plugin-transform-modules-amd-7.23.3"
-      sources."@babel/plugin-transform-modules-commonjs-7.23.3"
-      sources."@babel/plugin-transform-modules-systemjs-7.23.9"
-      sources."@babel/plugin-transform-modules-umd-7.23.3"
-      sources."@babel/plugin-transform-named-capturing-groups-regex-7.22.5"
-      sources."@babel/plugin-transform-new-target-7.23.3"
-      sources."@babel/plugin-transform-nullish-coalescing-operator-7.23.4"
-      sources."@babel/plugin-transform-numeric-separator-7.23.4"
-      sources."@babel/plugin-transform-object-rest-spread-7.24.0"
-      sources."@babel/plugin-transform-object-super-7.23.3"
-      sources."@babel/plugin-transform-optional-catch-binding-7.23.4"
-      sources."@babel/plugin-transform-optional-chaining-7.23.4"
-      sources."@babel/plugin-transform-parameters-7.23.3"
-      sources."@babel/plugin-transform-private-methods-7.23.3"
-      sources."@babel/plugin-transform-private-property-in-object-7.23.4"
-      sources."@babel/plugin-transform-property-literals-7.23.3"
-      sources."@babel/plugin-transform-regenerator-7.23.3"
-      sources."@babel/plugin-transform-reserved-words-7.23.3"
-      sources."@babel/plugin-transform-shorthand-properties-7.23.3"
-      sources."@babel/plugin-transform-spread-7.23.3"
-      sources."@babel/plugin-transform-sticky-regex-7.23.3"
-      sources."@babel/plugin-transform-template-literals-7.23.3"
-      sources."@babel/plugin-transform-typeof-symbol-7.23.3"
-      sources."@babel/plugin-transform-typescript-7.23.6"
-      sources."@babel/plugin-transform-unicode-escapes-7.23.3"
-      sources."@babel/plugin-transform-unicode-property-regex-7.23.3"
-      sources."@babel/plugin-transform-unicode-regex-7.23.3"
-      sources."@babel/plugin-transform-unicode-sets-regex-7.23.3"
-      (sources."@babel/preset-env-7.24.0" // {
+      sources."@babel/plugin-transform-arrow-functions-7.24.6"
+      sources."@babel/plugin-transform-async-generator-functions-7.24.6"
+      sources."@babel/plugin-transform-async-to-generator-7.24.6"
+      sources."@babel/plugin-transform-block-scoped-functions-7.24.6"
+      sources."@babel/plugin-transform-block-scoping-7.24.6"
+      sources."@babel/plugin-transform-class-properties-7.24.6"
+      sources."@babel/plugin-transform-class-static-block-7.24.6"
+      sources."@babel/plugin-transform-classes-7.24.6"
+      sources."@babel/plugin-transform-computed-properties-7.24.6"
+      sources."@babel/plugin-transform-destructuring-7.24.6"
+      sources."@babel/plugin-transform-dotall-regex-7.24.6"
+      sources."@babel/plugin-transform-duplicate-keys-7.24.6"
+      sources."@babel/plugin-transform-dynamic-import-7.24.6"
+      sources."@babel/plugin-transform-exponentiation-operator-7.24.6"
+      sources."@babel/plugin-transform-export-namespace-from-7.24.6"
+      sources."@babel/plugin-transform-flow-strip-types-7.24.6"
+      sources."@babel/plugin-transform-for-of-7.24.6"
+      sources."@babel/plugin-transform-function-name-7.24.6"
+      sources."@babel/plugin-transform-json-strings-7.24.6"
+      sources."@babel/plugin-transform-literals-7.24.6"
+      sources."@babel/plugin-transform-logical-assignment-operators-7.24.6"
+      sources."@babel/plugin-transform-member-expression-literals-7.24.6"
+      sources."@babel/plugin-transform-modules-amd-7.24.6"
+      sources."@babel/plugin-transform-modules-commonjs-7.24.6"
+      sources."@babel/plugin-transform-modules-systemjs-7.24.6"
+      sources."@babel/plugin-transform-modules-umd-7.24.6"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.24.6"
+      sources."@babel/plugin-transform-new-target-7.24.6"
+      sources."@babel/plugin-transform-nullish-coalescing-operator-7.24.6"
+      sources."@babel/plugin-transform-numeric-separator-7.24.6"
+      sources."@babel/plugin-transform-object-rest-spread-7.24.6"
+      sources."@babel/plugin-transform-object-super-7.24.6"
+      sources."@babel/plugin-transform-optional-catch-binding-7.24.6"
+      sources."@babel/plugin-transform-optional-chaining-7.24.6"
+      sources."@babel/plugin-transform-parameters-7.24.6"
+      sources."@babel/plugin-transform-private-methods-7.24.6"
+      sources."@babel/plugin-transform-private-property-in-object-7.24.6"
+      sources."@babel/plugin-transform-property-literals-7.24.6"
+      sources."@babel/plugin-transform-regenerator-7.24.6"
+      sources."@babel/plugin-transform-reserved-words-7.24.6"
+      sources."@babel/plugin-transform-shorthand-properties-7.24.6"
+      sources."@babel/plugin-transform-spread-7.24.6"
+      sources."@babel/plugin-transform-sticky-regex-7.24.6"
+      sources."@babel/plugin-transform-template-literals-7.24.6"
+      sources."@babel/plugin-transform-typeof-symbol-7.24.6"
+      sources."@babel/plugin-transform-typescript-7.24.6"
+      sources."@babel/plugin-transform-unicode-escapes-7.24.6"
+      sources."@babel/plugin-transform-unicode-property-regex-7.24.6"
+      sources."@babel/plugin-transform-unicode-regex-7.24.6"
+      sources."@babel/plugin-transform-unicode-sets-regex-7.24.6"
+      (sources."@babel/preset-env-7.24.6" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      sources."@babel/preset-flow-7.24.0"
+      sources."@babel/preset-flow-7.24.6"
       sources."@babel/preset-modules-0.1.6-no-external-plugins"
-      sources."@babel/preset-typescript-7.23.3"
-      (sources."@babel/register-7.23.7" // {
+      sources."@babel/preset-typescript-7.24.6"
+      (sources."@babel/register-7.24.6" // {
         dependencies = [
           sources."make-dir-2.1.0"
           sources."pify-4.0.1"
@@ -64218,10 +62750,10 @@ in
         ];
       })
       sources."@babel/regjsgen-0.8.0"
-      sources."@babel/runtime-7.24.0"
-      sources."@babel/template-7.24.0"
-      sources."@babel/traverse-7.24.0"
-      sources."@babel/types-7.24.0"
+      sources."@babel/runtime-7.24.6"
+      sources."@babel/template-7.24.6"
+      sources."@babel/traverse-7.24.6"
+      sources."@babel/types-7.24.6"
       sources."@graphql-tools/merge-8.3.1"
       (sources."@graphql-tools/mock-8.7.20" // {
         dependencies = [
@@ -64276,12 +62808,13 @@ in
         ];
       })
       sources."@types/long-4.0.2"
-      sources."@types/mime-3.0.4"
-      sources."@types/node-20.11.29"
+      sources."@types/mime-1.3.5"
+      sources."@types/node-20.14.1"
       sources."@types/normalize-package-data-2.4.4"
-      sources."@types/qs-6.9.13"
+      sources."@types/qs-6.9.15"
       sources."@types/range-parser-1.2.7"
-      sources."@types/serve-static-1.15.5"
+      sources."@types/send-0.17.4"
+      sources."@types/serve-static-1.15.7"
       sources."@types/through-0.0.33"
       sources."@vue/cli-shared-utils-5.0.8"
       (sources."@vue/cli-ui-5.0.8" // {
@@ -64291,14 +62824,14 @@ in
       })
       sources."@vue/cli-ui-addon-webpack-5.0.8"
       sources."@vue/cli-ui-addon-widgets-5.0.8"
-      (sources."@vue/compiler-core-3.4.21" // {
+      (sources."@vue/compiler-core-3.4.27" // {
         dependencies = [
           sources."entities-4.5.0"
         ];
       })
-      sources."@vue/compiler-dom-3.4.21"
+      sources."@vue/compiler-dom-3.4.27"
       sources."@vue/compiler-sfc-2.7.16"
-      sources."@vue/shared-3.4.21"
+      sources."@vue/shared-3.4.27"
       sources."accepts-1.3.8"
       sources."aggregate-error-3.1.0"
       sources."ansi-align-3.0.1"
@@ -64342,21 +62875,13 @@ in
       sources."at-least-node-1.0.0"
       sources."atob-2.1.2"
       sources."babel-core-7.0.0-bridge.0"
-      (sources."babel-plugin-polyfill-corejs2-0.4.10" // {
+      (sources."babel-plugin-polyfill-corejs2-0.4.11" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      (sources."babel-plugin-polyfill-corejs3-0.9.0" // {
-        dependencies = [
-          sources."@babel/helper-define-polyfill-provider-0.5.0"
-        ];
-      })
-      (sources."babel-plugin-polyfill-regenerator-0.5.5" // {
-        dependencies = [
-          sources."@babel/helper-define-polyfill-provider-0.5.0"
-        ];
-      })
+      sources."babel-plugin-polyfill-corejs3-0.10.4"
+      sources."babel-plugin-polyfill-regenerator-0.6.2"
       sources."backo2-1.0.2"
       sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
@@ -64378,7 +62903,7 @@ in
         ];
       })
       sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."browserslist-4.23.0"
       sources."buffer-5.7.1"
       sources."buffer-alloc-1.2.0"
@@ -64398,7 +62923,7 @@ in
       })
       sources."call-bind-1.0.7"
       sources."camelcase-6.3.0"
-      sources."caniuse-lite-1.0.30001599"
+      sources."caniuse-lite-1.0.30001627"
       sources."caw-2.0.1"
       sources."chalk-4.1.2"
       sources."chardet-0.7.0"
@@ -64433,10 +62958,10 @@ in
       sources."content-disposition-0.5.4"
       sources."content-type-1.0.5"
       sources."convert-source-map-2.0.0"
-      sources."cookie-0.5.0"
+      sources."cookie-0.6.0"
       sources."cookie-signature-1.0.6"
       sources."copy-descriptor-0.1.1"
-      sources."core-js-compat-3.36.1"
+      sources."core-js-compat-3.37.1"
       sources."core-util-is-1.0.3"
       sources."cors-2.8.5"
       (sources."cross-spawn-6.0.5" // {
@@ -64446,7 +62971,7 @@ in
       })
       sources."cssfilter-0.0.10"
       sources."csstype-3.1.3"
-      (sources."debug-4.3.4" // {
+      (sources."debug-4.3.5" // {
         dependencies = [
           sources."ms-2.1.2"
         ];
@@ -64497,14 +63022,14 @@ in
       sources."duplexer3-0.1.5"
       sources."easy-stack-1.0.1"
       sources."ee-first-1.1.1"
-      sources."ejs-3.1.9"
-      sources."electron-to-chromium-1.4.710"
+      sources."ejs-3.1.10"
+      sources."electron-to-chromium-1.4.789"
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."encoding-0.1.13"
       sources."end-of-stream-1.4.4"
       sources."entities-2.2.0"
-      sources."envinfo-7.11.1"
+      sources."envinfo-7.13.0"
       sources."error-ex-1.3.2"
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
@@ -64526,7 +63051,7 @@ in
           sources."is-descriptor-0.1.7"
         ];
       })
-      (sources."express-4.18.3" // {
+      (sources."express-4.19.2" // {
         dependencies = [
           sources."debug-2.6.9"
         ];
@@ -64564,7 +63089,7 @@ in
       })
       sources."filename-reserved-regex-2.0.0"
       sources."filenamify-2.1.0"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       (sources."finalhandler-1.2.0" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -64597,7 +63122,7 @@ in
           sources."which-2.0.2"
         ];
       })
-      sources."flow-parser-0.231.0"
+      sources."flow-parser-0.237.2"
       sources."for-in-1.0.2"
       sources."forwarded-0.2.0"
       sources."fragment-cache-0.2.1"
@@ -64710,13 +63235,13 @@ in
       sources."isobject-3.0.1"
       sources."isurl-1.0.0"
       sources."iterall-1.3.0"
-      (sources."jake-10.8.7" // {
+      (sources."jake-10.9.1" // {
         dependencies = [
           sources."async-3.2.5"
         ];
       })
       sources."javascript-stringify-2.1.0"
-      sources."joi-17.12.2"
+      sources."joi-17.13.1"
       sources."js-message-1.0.7"
       sources."js-tokens-4.0.0"
       sources."js-yaml-4.1.0"
@@ -64768,7 +63293,7 @@ in
       sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
       sources."methods-1.1.2"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."mime-1.6.0"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
@@ -64792,7 +63317,7 @@ in
       sources."node-abort-controller-3.1.1"
       sources."node-dir-0.1.17"
       sources."node-fetch-2.7.0"
-      sources."node-gyp-build-4.8.0"
+      sources."node-gyp-build-4.8.1"
       (sources."node-notifier-10.0.1" // {
         dependencies = [
           sources."uuid-8.3.2"
@@ -64852,7 +63377,7 @@ in
       sources."path-to-regexp-0.1.7"
       sources."path-type-4.0.0"
       sources."pend-1.2.0"
-      sources."picocolors-1.0.0"
+      sources."picocolors-1.0.1"
       sources."picomatch-2.3.1"
       (sources."pid-port-0.1.1" // {
         dependencies = [
@@ -64879,7 +63404,7 @@ in
         ];
       })
       sources."posix-character-classes-0.1.1"
-      (sources."postcss-8.4.36" // {
+      (sources."postcss-8.4.38" // {
         dependencies = [
           sources."nanoid-3.3.7"
         ];
@@ -64939,13 +63464,13 @@ in
       sources."safe-buffer-5.2.1"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
-      sources."sax-1.3.0"
+      sources."sax-1.4.1"
       (sources."seek-bzip-1.0.6" // {
         dependencies = [
           sources."commander-2.20.3"
         ];
       })
-      sources."semver-7.6.0"
+      sources."semver-7.6.2"
       (sources."send-0.18.0" // {
         dependencies = [
           (sources."debug-2.6.9" // {
@@ -64996,14 +63521,14 @@ in
       sources."sort-keys-1.1.2"
       sources."sort-keys-length-1.0.1"
       sources."source-map-0.6.1"
-      sources."source-map-js-1.1.0"
+      sources."source-map-js-1.2.0"
       sources."source-map-resolve-0.5.3"
       sources."source-map-support-0.5.21"
       sources."source-map-url-0.4.1"
       sources."spdx-correct-3.2.0"
       sources."spdx-exceptions-2.5.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.17"
+      sources."spdx-license-ids-3.0.18"
       sources."split-string-3.1.0"
       sources."sprintf-js-1.0.3"
       (sources."static-extend-0.1.2" // {
@@ -65093,7 +63618,7 @@ in
           sources."has-values-0.1.4"
         ];
       })
-      sources."update-browserslist-db-1.0.13"
+      sources."update-browserslist-db-1.0.16"
       sources."urix-0.1.0"
       sources."url-parse-lax-3.0.0"
       sources."url-to-options-1.0.1"
@@ -65280,14 +63805,14 @@ in
       sha512 = "7SWOLN+1eZ5e9gohQPVdA8XQstGIYei/70T5kmLP6vC41zy8BBYNt35OgLZmbpg3iOQ1vWT17ZMhVikSJySSRg==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.23.5"
-      sources."@babel/generator-7.23.6"
-      sources."@babel/helper-string-parser-7.23.4"
-      sources."@babel/helper-validator-identifier-7.22.20"
-      sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.24.0"
-      sources."@babel/template-7.24.0"
-      sources."@babel/types-7.24.0"
+      sources."@babel/code-frame-7.24.6"
+      sources."@babel/generator-7.24.6"
+      sources."@babel/helper-string-parser-7.24.6"
+      sources."@babel/helper-validator-identifier-7.24.6"
+      sources."@babel/highlight-7.24.6"
+      sources."@babel/parser-7.24.6"
+      sources."@babel/template-7.24.6"
+      sources."@babel/types-7.24.6"
       sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
       sources."@jridgewell/set-array-1.2.1"
@@ -65313,6 +63838,7 @@ in
       sources."has-flag-3.0.0"
       sources."js-tokens-4.0.0"
       sources."jsesc-2.5.2"
+      sources."picocolors-1.0.1"
       sources."supports-color-5.5.0"
       sources."to-fast-properties-2.0.0"
     ];
@@ -65365,15 +63891,15 @@ in
       sha512 = "rKLBZxD/lvuykdC6XB8ma9YjDl46j9ayHROZUtC1yJ2jlGpoP7RZR1tBBSjtlr260ixIW6iCkqAnHzmti5Q6CQ==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.23.5"
-      sources."@babel/helper-validator-identifier-7.22.20"
-      sources."@babel/highlight-7.23.4"
+      sources."@babel/code-frame-7.24.6"
+      sources."@babel/helper-validator-identifier-7.24.6"
+      sources."@babel/highlight-7.24.6"
       sources."@isaacs/cliui-8.0.2"
       sources."@npmcli/config-6.4.1"
-      (sources."@npmcli/map-workspaces-3.0.4" // {
+      (sources."@npmcli/map-workspaces-3.0.6" // {
         dependencies = [
-          sources."glob-10.3.10"
-          sources."minimatch-9.0.3"
+          sources."glob-10.4.1"
+          sources."minimatch-9.0.4"
         ];
       })
       sources."@npmcli/name-from-folder-2.0.0"
@@ -65398,7 +63924,7 @@ in
       sources."@types/minimist-1.2.5"
       sources."@types/ms-0.7.34"
       sources."@types/nlcst-1.0.4"
-      sources."@types/node-18.19.25"
+      sources."@types/node-18.19.34"
       sources."@types/normalize-package-data-2.4.4"
       sources."@types/supports-color-8.1.3"
       sources."@types/unist-2.0.10"
@@ -65466,7 +63992,7 @@ in
         ];
       })
       sources."cuss-2.2.0"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."decamelize-6.0.0"
       (sources."decamelize-keys-1.1.1" // {
         dependencies = [
@@ -65544,7 +64070,7 @@ in
       sources."indent-string-5.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-4.1.2"
+      sources."ini-4.1.3"
       sources."is-alphabetical-2.0.1"
       sources."is-alphanumerical-2.0.1"
       sources."is-arrayish-0.2.1"
@@ -65568,7 +64094,7 @@ in
       sources."is-yarn-global-0.4.1"
       sources."isarray-0.0.1"
       sources."isexe-2.0.0"
-      sources."jackspeak-2.3.6"
+      sources."jackspeak-3.2.3"
       sources."js-tokens-4.0.0"
       sources."json-buffer-3.0.1"
       sources."json-parse-even-better-errors-2.3.1"
@@ -65650,14 +64176,14 @@ in
       sources."minimatch-5.1.6"
       sources."minimist-1.2.8"
       sources."minimist-options-4.1.0"
-      sources."minipass-7.0.4"
+      sources."minipass-7.1.2"
       sources."mri-1.2.0"
       sources."ms-2.1.2"
       sources."nlcst-is-literal-2.1.1"
       sources."nlcst-normalize-3.1.1"
       sources."nlcst-search-3.1.1"
       sources."nlcst-to-string-3.1.1"
-      sources."nopt-7.2.0"
+      sources."nopt-7.2.1"
       sources."normalize-package-data-4.0.1"
       sources."normalize-url-8.0.1"
       sources."npm-normalize-package-bin-3.0.1"
@@ -65683,16 +64209,17 @@ in
       sources."parse5-6.0.1"
       sources."path-exists-5.0.0"
       sources."path-key-3.1.1"
-      (sources."path-scurry-1.10.1" // {
+      (sources."path-scurry-1.11.1" // {
         dependencies = [
-          sources."lru-cache-10.2.0"
+          sources."lru-cache-10.2.2"
         ];
       })
       sources."pause-stream-0.0.11"
+      sources."picocolors-1.0.1"
       sources."pluralize-8.0.0"
       sources."proc-log-3.0.0"
       sources."process-nextick-args-1.0.7"
-      sources."property-information-6.4.1"
+      sources."property-information-6.5.0"
       sources."proto-list-1.2.4"
       sources."pump-1.0.3"
       sources."pump-chain-1.0.0"
@@ -65706,7 +64233,7 @@ in
       })
       (sources."read-package-json-fast-3.0.2" // {
         dependencies = [
-          sources."json-parse-even-better-errors-3.0.1"
+          sources."json-parse-even-better-errors-3.0.2"
         ];
       })
       (sources."read-pkg-7.1.0" // {
@@ -65741,11 +64268,7 @@ in
       sources."retext-profanities-7.2.2"
       sources."sade-1.8.1"
       sources."safe-buffer-5.2.1"
-      (sources."semver-7.6.0" // {
-        dependencies = [
-          sources."lru-cache-6.0.0"
-        ];
-      })
+      sources."semver-7.6.2"
       sources."semver-diff-4.0.0"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
@@ -65760,7 +64283,7 @@ in
       sources."spdx-correct-3.2.0"
       sources."spdx-exceptions-2.5.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.17"
+      sources."spdx-license-ids-3.0.18"
       sources."split-0.2.10"
       (sources."split-transform-stream-0.1.1" // {
         dependencies = [
@@ -65777,7 +64300,7 @@ in
         ];
       })
       sources."string_decoder-0.10.31"
-      sources."stringify-entities-4.0.3"
+      sources."stringify-entities-4.0.4"
       (sources."strip-ansi-7.1.0" // {
         dependencies = [
           sources."ansi-regex-6.0.1"
@@ -65884,7 +64407,7 @@ in
       sources."xdg-basedir-5.1.0"
       sources."xtend-2.1.2"
       sources."yallist-4.0.0"
-      sources."yaml-2.4.1"
+      sources."yaml-2.4.3"
       sources."yargs-parser-21.1.1"
       sources."yocto-queue-1.0.0"
       sources."zwitch-2.0.4"
@@ -65952,25 +64475,25 @@ in
   autoprefixer = nodeEnv.buildNodePackage {
     name = "autoprefixer";
     packageName = "autoprefixer";
-    version = "10.4.18";
+    version = "10.4.19";
     src = fetchurl {
-      url = "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz";
-      sha512 = "1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==";
+      url = "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz";
+      sha512 = "BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==";
     };
     dependencies = [
       sources."browserslist-4.23.0"
-      sources."caniuse-lite-1.0.30001599"
-      sources."electron-to-chromium-1.4.710"
+      sources."caniuse-lite-1.0.30001627"
+      sources."electron-to-chromium-1.4.789"
       sources."escalade-3.1.2"
       sources."fraction.js-4.3.7"
       sources."nanoid-3.3.7"
       sources."node-releases-2.0.14"
       sources."normalize-range-0.1.2"
-      sources."picocolors-1.0.0"
-      sources."postcss-8.4.36"
+      sources."picocolors-1.0.1"
+      sources."postcss-8.4.38"
       sources."postcss-value-parser-4.2.0"
-      sources."source-map-js-1.1.0"
-      sources."update-browserslist-db-1.0.13"
+      sources."source-map-js-1.2.0"
+      sources."update-browserslist-db-1.0.16"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -65995,20 +64518,18 @@ in
       sources."encoding-0.1.13"
       sources."handlebars-4.7.8"
       sources."iconv-lite-0.6.3"
-      sources."lru-cache-6.0.0"
       sources."minimist-1.2.8"
       sources."neo-async-2.6.2"
       sources."node-fetch-2.7.0"
       sources."parse-github-url-1.0.2"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.6.0"
+      sources."semver-7.6.2"
       sources."source-map-0.6.1"
       sources."tr46-0.0.3"
       sources."uglify-js-3.17.4"
       sources."webidl-conversions-3.0.1"
       sources."whatwg-url-5.0.0"
       sources."wordwrap-1.0.0"
-      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -66023,10 +64544,10 @@ in
   aws-cdk = nodeEnv.buildNodePackage {
     name = "aws-cdk";
     packageName = "aws-cdk";
-    version = "2.133.0";
+    version = "2.144.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.133.0.tgz";
-      sha512 = "EwH8VgQQ8ODeMwjE3p+WhbcbWNkCbvuJJl+Py9IB5znGf7GwLcEmOu4YWBsBGPVu41SXbSAf36twMBrJytCFZA==";
+      url = "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.144.0.tgz";
+      sha512 = "qsTZGCceKi15oOYbWvWpIZNBHRZa+WTV5IIN20leQV9PVRxzHGN58VCOIAiyT1+CncDYjY9grLXEGAOuKRynFQ==";
     };
     dependencies = [
       sources."fsevents-2.3.2"
@@ -66050,13 +64571,9 @@ in
       sha512 = "ir+DFe1D3P2y18JP7E2xeOoBpO8dtB+NbS+oASU51FbeJs/PhC/XPNxw1spHuu9CJt3YfGJYZUYq+NafInWu+A==";
     };
     dependencies = [
-      (sources."@babel/code-frame-7.23.5" // {
-        dependencies = [
-          sources."chalk-2.4.2"
-        ];
-      })
-      sources."@babel/helper-validator-identifier-7.22.20"
-      (sources."@babel/highlight-7.23.4" // {
+      sources."@babel/code-frame-7.24.6"
+      sources."@babel/helper-validator-identifier-7.24.6"
+      (sources."@babel/highlight-7.24.6" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
@@ -66067,7 +64584,7 @@ in
       sources."@sindresorhus/is-5.6.0"
       sources."@szmarczak/http-timer-5.0.1"
       sources."@types/debug-4.1.12"
-      sources."@types/eslint-8.56.5"
+      sources."@types/eslint-8.56.10"
       sources."@types/estree-1.0.5"
       sources."@types/estree-jsx-1.0.5"
       (sources."@types/hast-2.3.10" // {
@@ -66077,7 +64594,7 @@ in
       })
       sources."@types/http-cache-semantics-4.0.4"
       sources."@types/json-schema-7.0.15"
-      sources."@types/mdast-4.0.3"
+      sources."@types/mdast-4.0.4"
       sources."@types/ms-0.7.34"
       sources."@types/normalize-package-data-2.4.4"
       sources."@types/unist-3.0.2"
@@ -66097,7 +64614,7 @@ in
       sources."base64-js-1.5.1"
       sources."bl-5.1.0"
       sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."buffer-6.0.3"
       sources."cacheable-lookup-7.0.0"
       (sources."cacheable-request-10.2.14" // {
@@ -66120,7 +64637,7 @@ in
           sources."type-fest-1.4.0"
         ];
       })
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."decode-named-character-reference-1.0.2"
       (sources."decompress-response-6.0.0" // {
         dependencies = [
@@ -66157,7 +64674,7 @@ in
       sources."extend-3.0.2"
       sources."fast-glob-3.3.2"
       sources."fastq-1.17.1"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."form-data-encoder-2.1.4"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.2"
@@ -66176,7 +64693,7 @@ in
       sources."graceful-fs-4.2.11"
       sources."has-flag-3.0.0"
       sources."hasown-2.0.2"
-      sources."hosted-git-info-7.0.1"
+      sources."hosted-git-info-7.0.2"
       sources."http-cache-semantics-4.1.1"
       sources."http2-wrapper-2.2.1"
       sources."human-signals-5.0.0"
@@ -66204,7 +64721,7 @@ in
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
       sources."json-buffer-3.0.1"
-      sources."json-parse-even-better-errors-3.0.1"
+      sources."json-parse-even-better-errors-3.0.2"
       sources."keyv-4.5.4"
       sources."kind-of-6.0.3"
       sources."kleur-4.1.5"
@@ -66213,14 +64730,14 @@ in
       sources."log-symbols-5.1.0"
       sources."longest-streak-3.1.0"
       sources."lowercase-keys-3.0.0"
-      sources."lru-cache-10.2.0"
+      sources."lru-cache-10.2.2"
       (sources."mdast-comment-marker-2.1.2" // {
         dependencies = [
           sources."@types/mdast-3.0.15"
           sources."@types/unist-2.0.10"
         ];
       })
-      sources."mdast-util-from-markdown-2.0.0"
+      sources."mdast-util-from-markdown-2.0.1"
       (sources."mdast-util-heading-style-2.0.1" // {
         dependencies = [
           sources."@types/mdast-3.0.15"
@@ -66268,7 +64785,7 @@ in
       sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
       sources."micromark-4.0.0"
-      sources."micromark-core-commonmark-2.0.0"
+      sources."micromark-core-commonmark-2.0.1"
       sources."micromark-factory-destination-2.0.0"
       sources."micromark-factory-label-2.0.0"
       sources."micromark-factory-space-2.0.0"
@@ -66285,16 +64802,16 @@ in
       sources."micromark-util-normalize-identifier-2.0.0"
       sources."micromark-util-resolve-all-2.0.0"
       sources."micromark-util-sanitize-uri-2.0.0"
-      sources."micromark-util-subtokenize-2.0.0"
+      sources."micromark-util-subtokenize-2.0.1"
       sources."micromark-util-symbol-2.0.0"
       sources."micromark-util-types-2.0.0"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."mimic-fn-4.0.0"
       sources."mimic-response-4.0.0"
       sources."minimatch-3.1.2"
       sources."mri-1.2.0"
       sources."ms-2.1.2"
-      sources."normalize-package-data-6.0.0"
+      sources."normalize-package-data-6.0.1"
       sources."normalize-url-8.0.1"
       (sources."npm-run-path-5.3.0" // {
         dependencies = [
@@ -66315,6 +64832,7 @@ in
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
       sources."path-type-4.0.0"
+      sources."picocolors-1.0.1"
       sources."picomatch-2.3.1"
       sources."plur-4.0.0"
       sources."pluralize-8.0.0"
@@ -66898,11 +65416,7 @@ in
       sources."run-parallel-1.2.0"
       sources."sade-1.8.1"
       sources."safe-buffer-5.2.1"
-      (sources."semver-7.6.0" // {
-        dependencies = [
-          sources."lru-cache-6.0.0"
-        ];
-      })
+      sources."semver-7.6.2"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-4.1.0"
@@ -66911,7 +65425,7 @@ in
       sources."spdx-correct-3.2.0"
       sources."spdx-exceptions-2.5.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.17"
+      sources."spdx-license-ids-3.0.18"
       sources."stdin-discarder-0.1.0"
       sources."string-width-6.1.0"
       sources."string_decoder-1.3.0"
@@ -66933,7 +65447,7 @@ in
       sources."to-regex-range-5.0.1"
       sources."to-vfile-8.0.0"
       sources."trough-2.2.0"
-      sources."type-fest-4.12.0"
+      sources."type-fest-4.18.3"
       sources."unified-11.0.4"
       (sources."unified-lint-rule-2.1.2" // {
         dependencies = [
@@ -67020,7 +65534,6 @@ in
       sources."which-2.0.2"
       sources."wrapped-1.0.1"
       sources."wrappy-1.0.2"
-      sources."yallist-4.0.0"
       sources."zwitch-2.0.4"
     ];
     buildInputs = globalBuildInputs;
@@ -67033,61 +65546,6 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
-  bash-language-server = nodeEnv.buildNodePackage {
-    name = "bash-language-server";
-    packageName = "bash-language-server";
-    version = "5.1.2";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/bash-language-server/-/bash-language-server-5.1.2.tgz";
-      sha512 = "hXgN71VWVV2nQVE1ej7scAHVGvRAxoYhs2KwzvJq+lSqp4VQ60M0Cff1QzJKJM/cTyLWNjabb98bDGZgDMMh2g==";
-    };
-    dependencies = [
-      sources."@nodelib/fs.scandir-2.1.5"
-      sources."@nodelib/fs.stat-2.0.5"
-      sources."@nodelib/fs.walk-1.2.8"
-      sources."braces-3.0.2"
-      sources."domino-2.1.6"
-      sources."encoding-0.1.13"
-      sources."fast-glob-3.3.2"
-      sources."fastq-1.17.1"
-      sources."fill-range-7.0.1"
-      sources."fuzzy-search-3.2.1"
-      sources."glob-parent-5.1.2"
-      sources."iconv-lite-0.6.3"
-      sources."is-extglob-2.1.1"
-      sources."is-glob-4.0.3"
-      sources."is-number-7.0.0"
-      sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
-      sources."node-fetch-2.7.0"
-      sources."picomatch-2.3.1"
-      sources."queue-microtask-1.2.3"
-      sources."reusify-1.0.4"
-      sources."run-parallel-1.2.0"
-      sources."safer-buffer-2.1.2"
-      sources."to-regex-range-5.0.1"
-      sources."tr46-0.0.3"
-      sources."turndown-7.1.2"
-      sources."vscode-jsonrpc-8.0.2"
-      sources."vscode-languageserver-8.0.2"
-      sources."vscode-languageserver-protocol-3.17.2"
-      sources."vscode-languageserver-textdocument-1.0.11"
-      sources."vscode-languageserver-types-3.17.2"
-      sources."web-tree-sitter-0.20.8"
-      sources."webidl-conversions-3.0.1"
-      sources."whatwg-url-5.0.0"
-      sources."zod-3.22.4"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "A language server for Bash";
-      homepage = "https://github.com/bash-lsp/bash-language-server#readme";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
   bower = nodeEnv.buildNodePackage {
     name = "bower";
     packageName = "bower";
@@ -67216,7 +65674,7 @@ in
       sources."spdx-correct-3.2.0"
       sources."spdx-exceptions-2.5.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.17"
+      sources."spdx-license-ids-3.0.18"
       sources."sprintf-js-1.0.3"
       sources."strip-bom-2.0.0"
       sources."strip-indent-1.0.1"
@@ -67403,7 +65861,7 @@ in
         ];
       })
       sources."punycode-1.4.1"
-      sources."qs-6.12.0"
+      sources."qs-6.12.1"
       sources."querystring-es3-0.2.1"
       sources."randombytes-2.1.0"
       sources."randomfill-1.0.4"
@@ -67474,10 +65932,10 @@ in
       sha512 = "PC9c7aWJFVR4IFySrJxOqLwB9ENn3/TaXCXtAa0SzLwocLN3qMjN+IatbjvtCX92BjNXsY6YWg9Eb7F3Wy255g==";
     };
     dependencies = [
-      sources."@socket.io/component-emitter-3.1.0"
+      sources."@socket.io/component-emitter-3.1.2"
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.17"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."accepts-1.3.8"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
@@ -67489,7 +65947,7 @@ in
       sources."batch-0.6.1"
       sources."binary-extensions-2.3.0"
       sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."browser-sync-client-3.0.2"
       sources."browser-sync-ui-3.0.2"
       sources."bs-recipes-1.3.4"
@@ -67511,7 +65969,7 @@ in
       sources."connect-history-api-fallback-1.6.0"
       sources."cookie-0.4.2"
       sources."cors-2.8.5"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."depd-2.0.0"
       sources."destroy-1.0.4"
       sources."dev-ip-1.0.1"
@@ -67527,7 +65985,7 @@ in
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
       sources."eventemitter3-4.0.7"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       (sources."finalhandler-1.1.0" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -67561,7 +66019,7 @@ in
       sources."limiter-1.1.5"
       sources."lodash-4.17.21"
       sources."lodash.isfinite-3.3.2"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."mime-1.4.1"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
@@ -67569,7 +66027,7 @@ in
       sources."mitt-1.2.0"
       sources."ms-2.1.2"
       sources."negotiator-0.6.3"
-      sources."node-gyp-build-4.8.0"
+      sources."node-gyp-build-4.8.1"
       sources."normalize-path-3.0.0"
       sources."object-assign-4.1.1"
       sources."on-finished-2.3.0"
@@ -67626,7 +66084,7 @@ in
       sources."supports-color-7.2.0"
       sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.1"
-      sources."ua-parser-js-1.0.37"
+      sources."ua-parser-js-1.0.38"
       sources."undici-types-5.26.5"
       sources."universalify-0.1.2"
       sources."unpipe-1.0.0"
@@ -67653,16 +66111,16 @@ in
   cdk8s-cli = nodeEnv.buildNodePackage {
     name = "cdk8s-cli";
     packageName = "cdk8s-cli";
-    version = "2.198.65";
+    version = "2.198.137";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cdk8s-cli/-/cdk8s-cli-2.198.65.tgz";
-      sha512 = "CWEUGvGS5I4wugFDQ7j5jj1aS8oFu9CVoWBku2mHHp/Szt6wv4q3GPz0z7oTaZuezj8yIzQQyPCLU8Bns6Mupw==";
+      url = "https://registry.npmjs.org/cdk8s-cli/-/cdk8s-cli-2.198.137.tgz";
+      sha512 = "0qYRS2z80eVdeYdA9YI08VaAPbXntbHjkXd0jcoWSmVZwLaSkigMbxXYTYPGDVN+cOtBHNhWjcv9iQLVSGG6PA==";
     };
     dependencies = [
       sources."@colors/colors-1.6.0"
       sources."@dabh/diagnostics-2.0.3"
-      sources."@jsii/check-node-1.95.0"
-      sources."@jsii/spec-1.95.0"
+      sources."@jsii/check-node-1.99.0"
+      sources."@jsii/spec-1.99.0"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
@@ -67678,19 +66136,22 @@ in
       sources."@octokit/request-error-2.1.0"
       sources."@octokit/rest-18.12.0"
       sources."@octokit/types-6.41.0"
-      sources."@types/node-16.18.90"
+      sources."@types/node-16.18.98"
       sources."@types/triple-beam-1.3.5"
       sources."@xmldom/xmldom-0.8.10"
       sources."aggregate-error-3.1.0"
-      sources."ajv-8.12.0"
+      sources."ajv-8.15.0"
       sources."ansi-escapes-4.3.2"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
+      sources."array-buffer-byte-length-1.0.1"
       sources."array-union-2.1.0"
+      sources."arraybuffer.prototype.slice-1.0.3"
       sources."astral-regex-2.0.0"
       sources."async-3.2.5"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
+      sources."available-typed-arrays-1.0.7"
       sources."axios-0.27.2"
       (sources."backport-8.5.0" // {
         dependencies = [
@@ -67708,11 +66169,12 @@ in
       sources."before-after-hook-2.2.3"
       sources."bl-4.1.0"
       sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."buffer-5.7.1"
+      sources."call-bind-1.0.7"
       sources."camelcase-6.3.0"
       sources."case-1.6.3"
-      sources."cdk8s-2.68.46"
+      sources."cdk8s-2.68.75"
       sources."cdk8s-plus-25-2.22.79"
       sources."chalk-4.1.2"
       sources."chardet-0.7.0"
@@ -67722,7 +66184,7 @@ in
       sources."cli-width-3.0.0"
       sources."cliui-7.0.4"
       sources."clone-2.1.2"
-      (sources."codemaker-1.95.0" // {
+      (sources."codemaker-1.99.0" // {
         dependencies = [
           sources."fs-extra-10.1.0"
         ];
@@ -67739,11 +66201,14 @@ in
       sources."colors-1.4.0"
       sources."colorspace-1.1.4"
       sources."combined-stream-1.0.8"
-      sources."commonmark-0.30.0"
+      sources."commonmark-0.31.0"
       sources."concat-map-0.0.1"
       sources."constructs-10.3.0"
+      sources."data-view-buffer-1.0.1"
+      sources."data-view-byte-length-1.0.1"
+      sources."data-view-byte-offset-1.0.0"
       sources."date-format-4.0.14"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."decamelize-5.0.1"
       sources."dedent-0.7.0"
       (sources."defaults-1.0.4" // {
@@ -67751,6 +66216,8 @@ in
           sources."clone-1.0.4"
         ];
       })
+      sources."define-data-property-1.1.4"
+      sources."define-properties-1.2.1"
       sources."del-6.1.1"
       sources."delayed-stream-1.0.0"
       sources."deprecation-2.3.1"
@@ -67761,13 +66228,19 @@ in
       sources."dotenv-16.4.5"
       (sources."downlevel-dts-0.11.0" // {
         dependencies = [
-          sources."typescript-5.5.0-dev.20240318"
+          sources."typescript-5.6.0-dev.20240604"
         ];
       })
       sources."emoji-regex-8.0.0"
       sources."enabled-2.0.0"
       sources."encoding-0.1.13"
-      sources."entities-2.0.3"
+      sources."entities-3.0.1"
+      sources."es-abstract-1.23.3"
+      sources."es-define-property-1.0.0"
+      sources."es-errors-1.3.0"
+      sources."es-object-atoms-1.0.0"
+      sources."es-set-tostringtag-2.0.3"
+      sources."es-to-primitive-1.2.1"
       sources."escalade-3.1.2"
       sources."escape-string-regexp-4.0.0"
       (sources."external-editor-3.1.0" // {
@@ -67777,6 +66250,7 @@ in
       })
       sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.3.2"
+      sources."fast-uri-2.3.0"
       sources."fastq-1.17.1"
       sources."fecha-4.2.3"
       (sources."figures-3.2.0" // {
@@ -67784,11 +66258,12 @@ in
           sources."escape-string-regexp-1.0.5"
         ];
       })
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."find-up-4.1.0"
       sources."flatted-3.3.1"
       sources."fn.name-1.1.0"
       sources."follow-redirects-1.15.6"
+      sources."for-each-0.3.3"
       sources."form-data-4.0.0"
       (sources."fs-extra-8.1.0" // {
         dependencies = [
@@ -67798,14 +66273,25 @@ in
       })
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.2"
+      sources."function.prototype.name-1.1.6"
+      sources."functions-have-names-1.2.3"
       sources."get-caller-file-2.0.5"
+      sources."get-intrinsic-1.2.4"
+      sources."get-symbol-description-1.0.2"
       sources."glob-7.2.3"
       sources."glob-parent-5.1.2"
+      sources."globalthis-1.0.4"
       sources."globby-11.1.0"
+      sources."gopd-1.0.1"
       sources."graceful-fs-4.2.11"
       sources."graphql-16.8.1"
       sources."graphql-tag-2.12.6"
+      sources."has-bigints-1.0.2"
       sources."has-flag-4.0.0"
+      sources."has-property-descriptors-1.0.2"
+      sources."has-proto-1.0.3"
+      sources."has-symbols-1.0.3"
+      sources."has-tostringtag-1.0.2"
       sources."hasown-2.0.2"
       sources."iconv-lite-0.6.3"
       sources."ieee754-1.2.1"
@@ -67818,52 +66304,68 @@ in
           sources."wrap-ansi-6.2.0"
         ];
       })
+      sources."internal-slot-1.0.7"
       sources."interpret-1.4.0"
+      sources."is-array-buffer-3.0.4"
       sources."is-arrayish-0.3.2"
+      sources."is-bigint-1.0.4"
+      sources."is-boolean-object-1.1.2"
+      sources."is-callable-1.2.7"
       sources."is-core-module-2.13.1"
+      sources."is-data-view-1.0.1"
+      sources."is-date-object-1.0.5"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
       sources."is-interactive-1.0.0"
+      sources."is-negative-zero-2.0.3"
       sources."is-number-7.0.0"
+      sources."is-number-object-1.0.7"
       sources."is-path-cwd-2.2.0"
       sources."is-path-inside-3.0.3"
       sources."is-plain-object-5.0.0"
+      sources."is-regex-1.1.4"
+      sources."is-shared-array-buffer-1.0.3"
       sources."is-stream-2.0.1"
+      sources."is-string-1.0.7"
+      sources."is-symbol-1.0.4"
+      sources."is-typed-array-1.1.13"
       sources."is-unicode-supported-0.1.0"
-      (sources."jsii-1.95.0" // {
+      sources."is-weakref-1.0.2"
+      sources."isarray-2.0.5"
+      (sources."jsii-5.4.20" // {
         dependencies = [
-          sources."fs-extra-10.1.0"
-          sources."yargs-16.2.0"
+          sources."@jsii/check-node-1.98.0"
+          sources."cliui-8.0.1"
+          sources."yargs-17.7.2"
+          sources."yargs-parser-21.1.1"
         ];
       })
-      (sources."jsii-pacmak-1.95.0" // {
+      (sources."jsii-pacmak-1.99.0" // {
         dependencies = [
           sources."fs-extra-10.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-reflect-1.95.0" // {
+      (sources."jsii-reflect-1.99.0" // {
         dependencies = [
           sources."fs-extra-10.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-rosetta-1.95.0" // {
+      (sources."jsii-rosetta-5.4.21" // {
         dependencies = [
-          sources."yargs-16.2.0"
+          sources."@jsii/check-node-1.98.0"
+          sources."cliui-8.0.1"
+          sources."yargs-17.7.2"
+          sources."yargs-parser-21.1.1"
         ];
       })
-      (sources."jsii-srcmak-0.1.1039" // {
+      (sources."jsii-srcmak-0.1.1143" // {
         dependencies = [
           sources."cliui-8.0.1"
           sources."fs-extra-9.1.0"
-          (sources."jsii-5.3.29" // {
-            dependencies = [
-              sources."yargs-17.7.2"
-            ];
-          })
-          sources."typescript-5.3.3"
+          sources."yargs-17.7.2"
           sources."yargs-parser-21.1.1"
         ];
       })
@@ -67879,7 +66381,6 @@ in
       sources."log4js-6.9.1"
       sources."logform-2.6.0"
       sources."lower-case-2.0.2"
-      sources."lru-cache-6.0.0"
       (sources."make-dir-3.1.0" // {
         dependencies = [
           sources."semver-6.3.1"
@@ -67887,7 +66388,7 @@ in
       })
       sources."mdurl-1.0.1"
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
       sources."mimic-fn-2.1.0"
@@ -67898,10 +66399,13 @@ in
       sources."ncp-2.0.0"
       sources."no-case-3.0.4"
       sources."node-fetch-2.7.0"
+      sources."object-inspect-1.13.1"
+      sources."object-keys-1.1.1"
+      sources."object.assign-4.1.5"
       sources."once-1.4.0"
       sources."one-time-1.0.0"
       sources."onetime-5.1.2"
-      sources."oo-ascii-tree-1.95.0"
+      sources."oo-ascii-tree-1.99.0"
       sources."ora-5.4.1"
       sources."os-tmpdir-1.0.2"
       sources."p-limit-2.3.0"
@@ -67913,10 +66417,11 @@ in
       sources."path-parse-1.0.7"
       sources."path-type-4.0.0"
       sources."picomatch-2.3.1"
-      sources."punycode-2.3.1"
+      sources."possible-typed-array-names-1.0.0"
       sources."queue-microtask-1.2.3"
       sources."readable-stream-3.6.2"
       sources."rechoir-0.6.2"
+      sources."regexp.prototype.flags-1.5.2"
       sources."require-directory-2.1.1"
       sources."require-from-string-2.0.2"
       sources."require-main-filename-2.0.0"
@@ -67928,18 +66433,23 @@ in
       sources."run-async-2.4.1"
       sources."run-parallel-1.2.0"
       sources."rxjs-7.8.1"
+      sources."safe-array-concat-1.1.2"
       sources."safe-buffer-5.2.1"
       sources."safe-json-stringify-1.2.0"
+      sources."safe-regex-test-1.0.3"
       sources."safe-stable-stringify-2.4.3"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.6.0"
+      sources."semver-7.6.2"
       (sources."semver-intersect-1.5.0" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
       sources."set-blocking-2.0.0"
+      sources."set-function-length-1.2.2"
+      sources."set-function-name-2.0.2"
       sources."shelljs-0.8.5"
+      sources."side-channel-1.0.6"
       sources."signal-exit-3.0.7"
       sources."simple-swizzle-0.2.2"
       sources."slash-3.0.0"
@@ -67953,14 +66463,17 @@ in
       sources."stream-json-1.8.0"
       sources."streamroller-3.1.5"
       sources."string-width-4.2.3"
-      sources."string.prototype.repeat-0.2.0"
+      sources."string.prototype.repeat-1.0.0"
+      sources."string.prototype.trim-1.2.9"
+      sources."string.prototype.trimend-1.0.8"
+      sources."string.prototype.trimstart-1.0.8"
       sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.1"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-7.2.0"
       sources."supports-hyperlinks-2.3.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
-      sources."table-6.8.1"
+      sources."table-6.8.2"
       sources."terminal-link-2.1.1"
       sources."text-hex-1.0.0"
       sources."through-2.3.8"
@@ -67970,25 +66483,30 @@ in
       sources."triple-beam-1.4.1"
       sources."tslib-2.6.2"
       sources."type-fest-0.21.3"
-      sources."typescript-3.9.10"
+      sources."typed-array-buffer-1.0.2"
+      sources."typed-array-byte-length-1.0.1"
+      sources."typed-array-byte-offset-1.0.2"
+      sources."typed-array-length-1.0.6"
+      sources."typescript-5.4.5"
+      sources."unbox-primitive-1.0.2"
       sources."universal-user-agent-6.0.1"
       sources."universalify-2.0.1"
-      sources."uri-js-4.4.1"
       sources."util-deprecate-1.0.2"
       sources."utility-types-3.11.0"
       sources."wcwidth-1.0.1"
       sources."webidl-conversions-3.0.1"
       sources."whatwg-url-5.0.0"
+      sources."which-boxed-primitive-1.0.2"
       sources."which-module-2.0.1"
-      sources."winston-3.12.0"
+      sources."which-typed-array-1.1.15"
+      sources."winston-3.13.0"
       sources."winston-transport-4.7.0"
       sources."workerpool-6.5.1"
       sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
       sources."xmlbuilder-15.1.1"
       sources."y18n-5.0.8"
-      sources."yallist-4.0.0"
-      sources."yaml-2.4.0"
+      sources."yaml-2.4.3"
       (sources."yargs-15.4.1" // {
         dependencies = [
           sources."camelcase-5.3.1"
@@ -68015,13 +66533,17 @@ in
   cdktf-cli = nodeEnv.buildNodePackage {
     name = "cdktf-cli";
     packageName = "cdktf-cli";
-    version = "0.20.5";
+    version = "0.20.7";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cdktf-cli/-/cdktf-cli-0.20.5.tgz";
-      sha512 = "TkLahINlLw6GwFYMbK9CvB9G/cCt6SbwKjJwYCJTPbC8bpr/S76pEw6x6vO13UUM80Yoak6srNtNS9DNIzF4Zw==";
+      url = "https://registry.npmjs.org/cdktf-cli/-/cdktf-cli-0.20.7.tgz";
+      sha512 = "muEJhxWHZLv1Rayz2t7W3gP1zZbCE4DPFq3gNo4G667TzrwdY7XWreeze8Pj7i3mkQu+K492cSVdWBYKa3AJpg==";
     };
     dependencies = [
-      (sources."@babel/code-frame-7.23.5" // {
+      sources."@babel/code-frame-7.24.6"
+      sources."@babel/generator-7.24.4"
+      sources."@babel/helper-string-parser-7.24.6"
+      sources."@babel/helper-validator-identifier-7.24.6"
+      (sources."@babel/highlight-7.24.6" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -68032,73 +66554,41 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@babel/generator-7.23.6"
-      sources."@babel/helper-string-parser-7.23.4"
-      sources."@babel/helper-validator-identifier-7.22.20"
-      (sources."@babel/highlight-7.23.4" // {
-        dependencies = [
-          sources."ansi-styles-3.2.1"
-          sources."chalk-2.4.2"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."escape-string-regexp-1.0.5"
-          sources."has-flag-3.0.0"
-          sources."supports-color-5.5.0"
-        ];
-      })
-      sources."@babel/parser-7.24.0"
+      sources."@babel/parser-7.24.6"
       sources."@babel/template-7.24.0"
       sources."@babel/types-7.24.0"
-      sources."@cdktf/cli-core-0.20.5"
-      (sources."@cdktf/commons-0.20.5" // {
+      sources."@cdktf/cli-core-0.20.7"
+      (sources."@cdktf/commons-0.20.7" // {
         dependencies = [
-          sources."@sentry/node-7.107.0"
-          sources."camelcase-6.3.0"
-          (sources."codemaker-1.95.0" // {
-            dependencies = [
-              sources."fs-extra-10.1.0"
-            ];
-          })
-          sources."decamelize-5.0.1"
-          sources."follow-redirects-1.15.6"
+          sources."@sentry/node-7.109.0"
           sources."fs-extra-11.2.0"
           sources."uuid-9.0.1"
         ];
       })
-      sources."@cdktf/hcl-tools-0.20.5"
-      (sources."@cdktf/hcl2cdk-0.20.5" // {
+      sources."@cdktf/hcl-tools-0.20.7"
+      (sources."@cdktf/hcl2cdk-0.20.7" // {
         dependencies = [
           sources."brace-expansion-2.0.1"
           sources."camelcase-6.3.0"
-          sources."codemaker-1.95.0"
-          sources."decamelize-5.0.1"
-          sources."fs-extra-10.1.0"
-          sources."glob-10.3.10"
-          sources."minimatch-9.0.3"
+          sources."glob-10.3.12"
+          sources."minimatch-9.0.4"
         ];
       })
-      (sources."@cdktf/hcl2json-0.20.5" // {
+      (sources."@cdktf/hcl2json-0.20.7" // {
         dependencies = [
           sources."fs-extra-11.2.0"
         ];
       })
       sources."@cdktf/node-pty-prebuilt-multiarch-0.10.1-pre.11"
-      (sources."@cdktf/provider-generator-0.20.5" // {
+      (sources."@cdktf/provider-generator-0.20.7" // {
         dependencies = [
-          sources."@types/node-18.19.24"
+          sources."@types/node-18.19.30"
           sources."brace-expansion-2.0.1"
-          sources."camelcase-6.3.0"
-          (sources."codemaker-1.95.0" // {
-            dependencies = [
-              sources."fs-extra-10.1.0"
-            ];
-          })
-          sources."decamelize-5.0.1"
-          sources."glob-10.3.10"
-          sources."minimatch-9.0.3"
+          sources."glob-10.3.12"
+          sources."minimatch-9.0.4"
         ];
       })
-      (sources."@cdktf/provider-schema-0.20.5" // {
+      (sources."@cdktf/provider-schema-0.20.7" // {
         dependencies = [
           sources."fs-extra-11.2.0"
         ];
@@ -68106,41 +66596,43 @@ in
       (sources."@inquirer/checkbox-1.5.2" // {
         dependencies = [
           sources."@inquirer/core-6.0.0"
+          sources."@types/mute-stream-0.0.4"
           sources."signal-exit-4.1.0"
         ];
       })
       (sources."@inquirer/confirm-2.0.17" // {
         dependencies = [
           sources."@inquirer/core-6.0.0"
+          sources."@types/mute-stream-0.0.4"
           sources."signal-exit-4.1.0"
         ];
       })
-      (sources."@inquirer/core-2.3.1" // {
-        dependencies = [
-          sources."@types/mute-stream-0.0.1"
-        ];
-      })
+      sources."@inquirer/core-2.3.1"
       (sources."@inquirer/editor-1.2.15" // {
         dependencies = [
           sources."@inquirer/core-6.0.0"
+          sources."@types/mute-stream-0.0.4"
           sources."signal-exit-4.1.0"
         ];
       })
       (sources."@inquirer/expand-1.1.16" // {
         dependencies = [
           sources."@inquirer/core-6.0.0"
+          sources."@types/mute-stream-0.0.4"
           sources."signal-exit-4.1.0"
         ];
       })
       (sources."@inquirer/input-1.2.16" // {
         dependencies = [
           sources."@inquirer/core-6.0.0"
+          sources."@types/mute-stream-0.0.4"
           sources."signal-exit-4.1.0"
         ];
       })
       (sources."@inquirer/password-1.1.16" // {
         dependencies = [
           sources."@inquirer/core-6.0.0"
+          sources."@types/mute-stream-0.0.4"
           sources."signal-exit-4.1.0"
         ];
       })
@@ -68148,16 +66640,18 @@ in
       (sources."@inquirer/rawlist-1.2.16" // {
         dependencies = [
           sources."@inquirer/core-6.0.0"
+          sources."@types/mute-stream-0.0.4"
           sources."signal-exit-4.1.0"
         ];
       })
       (sources."@inquirer/select-1.3.3" // {
         dependencies = [
           sources."@inquirer/core-6.0.0"
+          sources."@types/mute-stream-0.0.4"
           sources."signal-exit-4.1.0"
         ];
       })
-      sources."@inquirer/type-1.2.1"
+      sources."@inquirer/type-1.3.3"
       (sources."@isaacs/cliui-8.0.2" // {
         dependencies = [
           sources."ansi-regex-6.0.1"
@@ -68174,34 +66668,33 @@ in
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.25"
       sources."@jsii/check-node-1.95.0"
-      sources."@jsii/spec-1.95.0"
+      sources."@jsii/spec-1.99.0"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@sentry-internal/tracing-7.107.0"
-      sources."@sentry/core-7.107.0"
-      (sources."@sentry/node-7.104.0" // {
-        dependencies = [
-          sources."@sentry-internal/tracing-7.104.0"
-          sources."@sentry/core-7.104.0"
-          sources."@sentry/types-7.104.0"
-          sources."@sentry/utils-7.104.0"
-        ];
-      })
-      sources."@sentry/types-7.107.0"
-      sources."@sentry/utils-7.107.0"
-      sources."@types/mute-stream-0.0.4"
-      sources."@types/node-20.11.29"
-      sources."@types/prop-types-15.7.11"
-      sources."@types/react-18.2.67"
-      sources."@types/scheduler-0.16.8"
+      sources."@sentry-internal/tracing-7.109.0"
+      sources."@sentry/core-7.109.0"
+      (sources."@sentry/node-7.110.0" // {
+        dependencies = [
+          sources."@sentry-internal/tracing-7.110.0"
+          sources."@sentry/core-7.110.0"
+          sources."@sentry/types-7.110.0"
+          sources."@sentry/utils-7.110.0"
+        ];
+      })
+      sources."@sentry/types-7.109.0"
+      sources."@sentry/utils-7.109.0"
+      sources."@types/mute-stream-0.0.1"
+      sources."@types/node-20.14.1"
+      sources."@types/prop-types-15.7.12"
+      sources."@types/react-18.3.3"
       sources."@types/wrap-ansi-3.0.0"
       sources."@types/yauzl-2.10.3"
       sources."@types/yoga-layout-1.9.2"
       sources."@xmldom/xmldom-0.8.10"
       sources."address-1.2.2"
       sources."agent-base-6.0.2"
-      sources."ajv-8.12.0"
+      sources."ajv-8.15.0"
       (sources."ansi-escapes-4.3.2" // {
         dependencies = [
           sources."type-fest-0.21.3"
@@ -68231,14 +66724,14 @@ in
       sources."binary-extensions-2.3.0"
       sources."bl-4.1.0"
       sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."buffer-5.7.1"
       sources."buffer-crc32-0.2.13"
       sources."bufferutil-4.0.8"
       sources."call-bind-1.0.7"
       sources."camelcase-5.3.1"
       sources."case-1.6.3"
-      sources."cdktf-0.20.5"
+      sources."cdktf-0.20.7"
       sources."chalk-4.1.2"
       sources."chardet-0.7.0"
       sources."chokidar-3.6.0"
@@ -68252,7 +66745,7 @@ in
       sources."cliui-6.0.0"
       sources."clone-2.1.2"
       sources."code-excerpt-3.0.0"
-      (sources."codemaker-1.94.0" // {
+      (sources."codemaker-1.95.0" // {
         dependencies = [
           sources."camelcase-6.3.0"
           sources."decamelize-5.0.1"
@@ -68276,7 +66769,7 @@ in
       sources."data-view-byte-length-1.0.1"
       sources."data-view-byte-offset-1.0.0"
       sources."date-format-4.0.14"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."decamelize-1.2.0"
       sources."decompress-response-6.0.0"
       (sources."deep-equal-2.2.3" // {
@@ -68289,12 +66782,12 @@ in
       sources."define-data-property-1.1.4"
       sources."define-properties-1.2.1"
       sources."detect-indent-5.0.0"
-      sources."detect-libc-2.0.2"
+      sources."detect-libc-2.0.3"
       sources."detect-newline-2.1.0"
       sources."detect-port-1.5.1"
       (sources."downlevel-dts-0.11.0" // {
         dependencies = [
-          sources."typescript-5.5.0-dev.20240318"
+          sources."typescript-5.6.0-dev.20240604"
         ];
       })
       sources."eastasianwidth-0.2.0"
@@ -68306,7 +66799,7 @@ in
       })
       sources."end-of-stream-1.4.4"
       sources."entities-3.0.1"
-      sources."es-abstract-1.23.2"
+      sources."es-abstract-1.23.3"
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
       (sources."es-get-iterator-1.1.3" // {
@@ -68330,6 +66823,7 @@ in
       })
       sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.3.2"
+      sources."fast-uri-2.3.0"
       sources."fastq-1.17.1"
       sources."fd-slicer-1.1.0"
       (sources."figures-3.2.0" // {
@@ -68337,10 +66831,10 @@ in
           sources."escape-string-regexp-1.0.5"
         ];
       })
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."find-up-4.1.0"
       sources."flatted-3.3.1"
-      sources."follow-redirects-1.15.5"
+      sources."follow-redirects-1.15.6"
       sources."for-each-0.3.3"
       (sources."foreground-child-3.1.1" // {
         dependencies = [
@@ -68369,7 +66863,7 @@ in
         ];
       })
       sources."glob-parent-5.1.2"
-      sources."globalthis-1.0.3"
+      sources."globalthis-1.0.4"
       sources."gopd-1.0.1"
       sources."graceful-fs-4.2.11"
       sources."graphology-0.25.4"
@@ -68440,27 +66934,25 @@ in
       sources."jackspeak-2.3.6"
       sources."js-tokens-4.0.0"
       sources."jsesc-2.5.2"
-      (sources."jsii-5.3.24" // {
-        dependencies = [
-          sources."@jsii/check-node-1.94.0"
-        ];
-      })
-      (sources."jsii-pacmak-1.94.0" // {
+      sources."jsii-5.3.29"
+      (sources."jsii-pacmak-1.95.0" // {
         dependencies = [
-          sources."@jsii/check-node-1.94.0"
           sources."cliui-7.0.4"
           sources."commonmark-0.30.0"
           sources."entities-2.0.3"
           sources."escape-string-regexp-4.0.0"
           sources."fs-extra-10.1.0"
-          (sources."jsii-1.95.0" // {
+          (sources."jsii-1.99.0" // {
             dependencies = [
-              sources."@jsii/check-node-1.95.0"
+              sources."@jsii/check-node-1.99.0"
             ];
           })
-          (sources."jsii-rosetta-1.95.0" // {
+          (sources."jsii-rosetta-1.99.0" // {
             dependencies = [
-              sources."@jsii/check-node-1.95.0"
+              sources."@jsii/check-node-1.99.0"
+              sources."commonmark-0.31.0"
+              sources."entities-3.0.1"
+              sources."string.prototype.repeat-1.0.0"
             ];
           })
           sources."string.prototype.repeat-0.2.0"
@@ -68471,8 +66963,9 @@ in
           sources."yargs-parser-20.2.9"
         ];
       })
-      (sources."jsii-reflect-1.95.0" // {
+      (sources."jsii-reflect-1.99.0" // {
         dependencies = [
+          sources."@jsii/check-node-1.99.0"
           sources."cliui-7.0.4"
           sources."fs-extra-10.1.0"
           sources."wrap-ansi-7.0.0"
@@ -68481,7 +66974,7 @@ in
           sources."yargs-parser-20.2.9"
         ];
       })
-      sources."jsii-rosetta-5.3.27"
+      sources."jsii-rosetta-5.3.28"
       (sources."jsii-srcmak-0.1.1039" // {
         dependencies = [
           sources."fs-extra-9.1.0"
@@ -68511,7 +67004,7 @@ in
       sources."mdurl-1.0.1"
       sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-3.1.0"
       (sources."minimatch-5.1.6" // {
@@ -68520,16 +67013,16 @@ in
         ];
       })
       sources."minimist-1.2.8"
-      sources."minipass-7.0.4"
+      sources."minipass-7.1.2"
       sources."mkdirp-classic-0.5.3"
       sources."ms-2.1.2"
       sources."mute-stream-1.0.0"
       sources."nan-2.19.0"
       sources."napi-build-utils-1.0.2"
       sources."ncp-2.0.0"
-      sources."node-abi-3.56.0"
+      sources."node-abi-3.63.0"
       sources."node-fetch-2.7.0"
-      sources."node-gyp-build-4.8.0"
+      sources."node-gyp-build-4.8.1"
       sources."normalize-path-3.0.0"
       sources."npm-run-path-4.0.1"
       sources."object-assign-4.1.1"
@@ -68541,7 +67034,7 @@ in
       sources."obliterator-2.0.4"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
-      sources."oo-ascii-tree-1.95.0"
+      sources."oo-ascii-tree-1.99.0"
       sources."open-7.4.2"
       sources."os-tmpdir-1.0.2"
       sources."p-limit-2.3.0"
@@ -68553,12 +67046,13 @@ in
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
-      (sources."path-scurry-1.10.1" // {
+      (sources."path-scurry-1.11.1" // {
         dependencies = [
-          sources."lru-cache-10.2.0"
+          sources."lru-cache-10.2.2"
         ];
       })
       sources."pend-1.2.0"
+      sources."picocolors-1.0.1"
       sources."picomatch-2.3.1"
       sources."pidtree-0.6.0"
       sources."pidusage-3.0.2"
@@ -68578,7 +67072,7 @@ in
       sources."punycode-2.3.1"
       sources."queue-microtask-1.2.3"
       sources."rc-1.2.8"
-      sources."react-18.2.0"
+      sources."react-18.3.1"
       sources."react-devtools-core-4.28.5"
       (sources."react-reconciler-0.26.2" // {
         dependencies = [
@@ -68608,7 +67102,7 @@ in
       sources."safe-buffer-5.2.1"
       sources."safe-regex-test-1.0.3"
       sources."safer-buffer-2.1.2"
-      sources."sax-1.3.0"
+      sources."sax-1.4.1"
       sources."scheduler-0.20.2"
       sources."semver-7.6.0"
       (sources."semver-intersect-1.5.0" // {
@@ -68642,7 +67136,7 @@ in
       sources."string.prototype.repeat-1.0.0"
       sources."string.prototype.trim-1.2.9"
       sources."string.prototype.trimend-1.0.8"
-      sources."string.prototype.trimstart-1.0.7"
+      sources."string.prototype.trimstart-1.0.8"
       sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.1"
       sources."strip-ansi-cjs-6.0.1"
@@ -68661,12 +67155,11 @@ in
       sources."typed-array-buffer-1.0.2"
       sources."typed-array-byte-length-1.0.1"
       sources."typed-array-byte-offset-1.0.2"
-      sources."typed-array-length-1.0.5"
+      sources."typed-array-length-1.0.6"
       sources."typescript-5.3.3"
       sources."unbox-primitive-1.0.2"
       sources."undici-types-5.26.5"
       sources."universalify-2.0.1"
-      sources."uri-js-4.4.1"
       sources."utf-8-validate-5.0.10"
       sources."util-deprecate-1.0.2"
       sources."uuid-8.3.2"
@@ -68785,10 +67278,10 @@ in
   coc-cmake = nodeEnv.buildNodePackage {
     name = "coc-cmake";
     packageName = "coc-cmake";
-    version = "0.2.1";
+    version = "0.2.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-cmake/-/coc-cmake-0.2.1.tgz";
-      sha512 = "ejY7j6/kj4hrAC5DnrItsO8PohxLNvEJr13hSHL8ZLL8c0SVPYnH+NyDaRHw4IVFeZvP70PZs5I5BBinCISHMg==";
+      url = "https://registry.npmjs.org/coc-cmake/-/coc-cmake-0.2.2.tgz";
+      sha512 = "CfZzfacIlFZqG5fjXDHiAu3ucy5YkhuW3+pv5iIGakChSuWoNYenG1LPDG7DEtlLRtFjfAkUbE7StcpMTUiaDw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -68895,10 +67388,10 @@ in
   coc-eslint = nodeEnv.buildNodePackage {
     name = "coc-eslint";
     packageName = "coc-eslint";
-    version = "1.6.0";
+    version = "1.7.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-eslint/-/coc-eslint-1.6.0.tgz";
-      sha512 = "TXqBCPv0w1TKHVSgzbAHPztIhVuKLbCPpWQg5QAG4dJ2R3Gufgfw57NZkRFIbfEG6nKUw+co/9stFY1af/LQuQ==";
+      url = "https://registry.npmjs.org/coc-eslint/-/coc-eslint-1.7.0.tgz";
+      sha512 = "NCL4qXmj9CClh9E87BagmHx4wLmKL7OzK0eLBZMovXphG5woHKPLwMfDOfoNEthloE4G3bG3TzoMsQIwhKvayA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -68913,10 +67406,10 @@ in
   coc-explorer = nodeEnv.buildNodePackage {
     name = "coc-explorer";
     packageName = "coc-explorer";
-    version = "0.26.6";
+    version = "0.26.7";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-explorer/-/coc-explorer-0.26.6.tgz";
-      sha512 = "ZUYUVZBVLL73Axtw5Et+Dw1r0mxZ/oNaCOWNhqKX+Gu6wd1EQDMpM+qRIM855p3jdmSGv8u2YGwqY2BbFMCP+Q==";
+      url = "https://registry.npmjs.org/coc-explorer/-/coc-explorer-0.26.7.tgz";
+      sha512 = "+4pUYRje1K9/I9lm1r36LqDj8KDO9XojZdylMV3BwcUFarJw1HHElO/WA5ZyfsUQT8VNBgTEEvXCk6FBFCcmPA==";
     };
     dependencies = [
       sources."@sindresorhus/chunkify-0.2.0"
@@ -69055,10 +67548,10 @@ in
   coc-haxe = nodeEnv.buildNodePackage {
     name = "coc-haxe";
     packageName = "coc-haxe";
-    version = "0.17.0";
+    version = "0.20.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-haxe/-/coc-haxe-0.17.0.tgz";
-      sha512 = "LmeQIKo8iXYI5rbmL4tkoOP4VXfAvk4OdHXOIASvIx+pUnOFdCk53QqnUXj3p17BJEENannQYL6MEhXbdKaJ+g==";
+      url = "https://registry.npmjs.org/coc-haxe/-/coc-haxe-0.20.0.tgz";
+      sha512 = "bdxigpWTdoImf3+8ACcWwH/gjBMcovh87QiqOoqECcR10mOqewO63/UPfPASeZF9P6QiQEJrAJcBNpYNnY0upA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -69119,9 +67612,9 @@ in
     dependencies = [
       sources."anymatch-3.1.3"
       sources."binary-extensions-2.3.0"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."chokidar-3.6.0"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."glob-parent-5.1.2"
       sources."is-binary-path-2.1.0"
       sources."is-extglob-2.1.1"
@@ -69216,10 +67709,10 @@ in
   coc-markdownlint = nodeEnv.buildNodePackage {
     name = "coc-markdownlint";
     packageName = "coc-markdownlint";
-    version = "1.33.0";
+    version = "1.34.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-markdownlint/-/coc-markdownlint-1.33.0.tgz";
-      sha512 = "UNIhD8VFykbdbif8sv+RXieBylBXZ1ip+8rY643Zl94Aw/0xBvyhtS19iJw9wSsn/jz0Z7yig1JjOYlID/fi8g==";
+      url = "https://registry.npmjs.org/coc-markdownlint/-/coc-markdownlint-1.34.0.tgz";
+      sha512 = "sid/nMX+47FKaZMioylvbrAFu7SRoTBgjX2+SA1Ndi4FQSxIKkGeyv4s32wInAZL+0DcQWhKO34Z8ewIUeYZMw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -69278,14 +67771,14 @@ in
       sources."data-view-byte-offset-1.0.0"
       sources."date-format-4.0.14"
       sources."debounce-1.2.1"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."deep-extend-0.6.0"
       sources."define-data-property-1.1.4"
       sources."define-properties-1.2.1"
       sources."duplexer2-0.1.4"
       sources."encoding-0.1.13"
       sources."end-of-stream-1.4.4"
-      sources."es-abstract-1.23.2"
+      sources."es-abstract-1.23.3"
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
       sources."es-object-atoms-1.0.0"
@@ -69297,7 +67790,7 @@ in
       sources."flatted-3.3.1"
       sources."follow-redirects-1.15.6"
       sources."for-each-0.3.3"
-      sources."fp-ts-2.16.4"
+      sources."fp-ts-2.16.6"
       sources."fs-extra-8.1.0"
       (sources."fs-minipass-2.1.0" // {
         dependencies = [
@@ -69318,7 +67811,7 @@ in
       sources."get-stream-4.1.0"
       sources."get-symbol-description-1.0.2"
       sources."glob-7.2.3"
-      sources."globalthis-1.0.3"
+      sources."globalthis-1.0.4"
       sources."gopd-1.0.1"
       sources."graceful-fs-4.2.11"
       sources."has-bigints-1.0.2"
@@ -69366,7 +67859,6 @@ in
       })
       sources."lodash-4.17.21"
       sources."log4js-6.9.1"
-      sources."lru-cache-6.0.0"
       sources."metals-languageclient-0.4.2"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.8"
@@ -69417,7 +67909,7 @@ in
       sources."safe-buffer-5.2.1"
       sources."safe-regex-test-1.0.3"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.6.0"
+      sources."semver-7.6.2"
       sources."set-function-length-1.2.2"
       sources."set-function-name-2.0.2"
       sources."setimmediate-1.0.5"
@@ -69429,7 +67921,7 @@ in
       sources."streamroller-3.1.5"
       sources."string.prototype.trim-1.2.9"
       sources."string.prototype.trimend-1.0.8"
-      sources."string.prototype.trimstart-1.0.7"
+      sources."string.prototype.trimstart-1.0.8"
       (sources."string_decoder-1.1.1" // {
         dependencies = [
           sources."safe-buffer-5.1.2"
@@ -69437,14 +67929,14 @@ in
       })
       sources."strip-eof-1.0.0"
       sources."strip-json-comments-2.0.1"
-      sources."tar-6.2.0"
+      sources."tar-6.2.1"
       sources."tr46-0.0.3"
       sources."traverse-0.3.9"
       sources."tslib-2.6.2"
       sources."typed-array-buffer-1.0.2"
       sources."typed-array-byte-length-1.0.1"
       sources."typed-array-byte-offset-1.0.2"
-      sources."typed-array-length-1.0.5"
+      sources."typed-array-length-1.0.6"
       sources."unbox-primitive-1.0.2"
       sources."universalify-0.1.2"
       sources."unzipper-0.10.14"
@@ -69518,13 +68010,13 @@ in
   coc-pyright = nodeEnv.buildNodePackage {
     name = "coc-pyright";
     packageName = "coc-pyright";
-    version = "1.1.351";
+    version = "1.1.365";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-pyright/-/coc-pyright-1.1.351.tgz";
-      sha512 = "MDOD0FTzmEHrnuCNLGG+s9fJivOxY/IXFfCdzZnwGJCh4K7T0IjA6lHnS2QGODtMPAM6kEm4hnMbWzDxnSlF2w==";
+      url = "https://registry.npmjs.org/coc-pyright/-/coc-pyright-1.1.365.tgz";
+      sha512 = "rADFFHjr8CBjZDKMfuyXLIeUelah3ZTxQTHEWatQwnrS9WW/Xj6goJO/8z06zjjvX2oVhJypDXbnjd5CJB0f1A==";
     };
     dependencies = [
-      sources."pyright-1.1.354"
+      sources."pyright-1.1.365"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -69598,10 +68090,10 @@ in
   coc-rust-analyzer = nodeEnv.buildNodePackage {
     name = "coc-rust-analyzer";
     packageName = "coc-rust-analyzer";
-    version = "0.75.2";
+    version = "0.76.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.75.2.tgz";
-      sha512 = "9id+1N8kwvPIDtGHQQsUokyFsJ2G3POgUgRXQhlBn9R/S+FmioyICor1la7+DpP/rBz46heHAApitX9SSKpSuw==";
+      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.76.1.tgz";
+      sha512 = "a9/5Gm5msHs+5CWhNzICmpPWNFILtXmJ/r3Gae/lDXg6rtq+QUpQp+OUQlNSrjm9iuygbKyVGVkG26pJNAGaKg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -69625,13 +68117,13 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."bash-language-server-5.1.2"
-      sources."braces-3.0.2"
+      sources."bash-language-server-5.3.4"
+      sources."braces-3.0.3"
       sources."domino-2.1.6"
       sources."encoding-0.1.13"
       sources."fast-glob-3.3.2"
       sources."fastq-1.17.1"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."fuzzy-search-3.2.1"
       sources."glob-parent-5.1.2"
       sources."iconv-lite-0.6.3"
@@ -69639,7 +68131,7 @@ in
       sources."is-glob-4.0.3"
       sources."is-number-7.0.0"
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."node-fetch-2.7.0"
       sources."picomatch-2.3.1"
       sources."queue-microtask-1.2.3"
@@ -69649,13 +68141,13 @@ in
       sources."to-regex-range-5.0.1"
       sources."tr46-0.0.3"
       sources."tslib-2.6.2"
-      sources."turndown-7.1.2"
+      sources."turndown-7.1.3"
       sources."vscode-jsonrpc-8.0.2"
       sources."vscode-languageserver-8.0.2"
       sources."vscode-languageserver-protocol-3.17.2"
       sources."vscode-languageserver-textdocument-1.0.11"
       sources."vscode-languageserver-types-3.17.2"
-      sources."web-tree-sitter-0.20.8"
+      sources."web-tree-sitter-0.22.5"
       sources."webidl-conversions-3.0.1"
       sources."whatwg-url-5.0.0"
       sources."zod-3.22.4"
@@ -69768,7 +68260,7 @@ in
       sources."at-least-node-1.0.0"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."comment-json-1.1.3"
       sources."concat-map-0.0.1"
       sources."configstore-5.0.1"
@@ -69798,7 +68290,7 @@ in
       sources."cspell-util-bundle-4.1.11"
       sources."dot-prop-5.3.0"
       sources."esprima-2.7.3"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       (sources."fs-extra-8.1.0" // {
         dependencies = [
           sources."jsonfile-4.0.0"
@@ -69819,7 +68311,7 @@ in
       sources."json-parser-1.1.5"
       sources."jsonfile-6.1.0"
       sources."make-dir-3.1.0"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."minimatch-3.1.2"
       sources."node-watch-0.6.4"
       sources."picomatch-2.3.1"
@@ -69867,35 +68359,31 @@ in
     };
     dependencies = [
       sources."@ampproject/remapping-2.3.0"
-      (sources."@babel/code-frame-7.23.5" // {
-        dependencies = [
-          sources."chalk-2.4.2"
-        ];
-      })
-      sources."@babel/compat-data-7.23.5"
-      sources."@babel/core-7.24.0"
-      sources."@babel/generator-7.23.6"
-      sources."@babel/helper-compilation-targets-7.23.6"
-      sources."@babel/helper-environment-visitor-7.22.20"
-      sources."@babel/helper-function-name-7.23.0"
-      sources."@babel/helper-hoist-variables-7.22.5"
-      sources."@babel/helper-module-imports-7.22.15"
-      sources."@babel/helper-module-transforms-7.23.3"
-      sources."@babel/helper-simple-access-7.22.5"
-      sources."@babel/helper-split-export-declaration-7.22.6"
-      sources."@babel/helper-string-parser-7.23.4"
-      sources."@babel/helper-validator-identifier-7.22.20"
-      sources."@babel/helper-validator-option-7.23.5"
-      sources."@babel/helpers-7.24.0"
-      (sources."@babel/highlight-7.23.4" // {
+      sources."@babel/code-frame-7.24.6"
+      sources."@babel/compat-data-7.24.6"
+      sources."@babel/core-7.24.6"
+      sources."@babel/generator-7.24.6"
+      sources."@babel/helper-compilation-targets-7.24.6"
+      sources."@babel/helper-environment-visitor-7.24.6"
+      sources."@babel/helper-function-name-7.24.6"
+      sources."@babel/helper-hoist-variables-7.24.6"
+      sources."@babel/helper-module-imports-7.24.6"
+      sources."@babel/helper-module-transforms-7.24.6"
+      sources."@babel/helper-simple-access-7.24.6"
+      sources."@babel/helper-split-export-declaration-7.24.6"
+      sources."@babel/helper-string-parser-7.24.6"
+      sources."@babel/helper-validator-identifier-7.24.6"
+      sources."@babel/helper-validator-option-7.24.6"
+      sources."@babel/helpers-7.24.6"
+      (sources."@babel/highlight-7.24.6" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.24.0"
-      sources."@babel/template-7.24.0"
-      sources."@babel/traverse-7.24.0"
-      sources."@babel/types-7.24.0"
+      sources."@babel/parser-7.24.6"
+      sources."@babel/template-7.24.6"
+      sources."@babel/traverse-7.24.6"
+      sources."@babel/types-7.24.6"
       sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
       sources."@jridgewell/set-array-1.2.1"
@@ -69911,7 +68399,7 @@ in
       sources."@types/normalize-package-data-2.4.4"
       sources."@types/parse-json-4.0.2"
       sources."@types/unist-2.0.10"
-      sources."ajv-8.12.0"
+      sources."ajv-8.15.0"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-3.2.1"
       sources."array-union-2.1.0"
@@ -69929,12 +68417,12 @@ in
           sources."balanced-match-1.0.2"
         ];
       })
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."browserslist-4.23.0"
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001599"
+      sources."caniuse-lite-1.0.30001627"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -69954,7 +68442,7 @@ in
       sources."convert-source-map-2.0.0"
       sources."cosmiconfig-7.1.0"
       sources."cssesc-3.0.0"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.1" // {
         dependencies = [
@@ -69971,7 +68459,7 @@ in
       sources."domelementtype-1.3.1"
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
-      sources."electron-to-chromium-1.4.710"
+      sources."electron-to-chromium-1.4.789"
       sources."emoji-regex-8.0.0"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
@@ -69982,10 +68470,11 @@ in
       sources."fast-deep-equal-3.1.3"
       sources."fast-diff-1.3.0"
       sources."fast-glob-3.3.2"
+      sources."fast-uri-2.3.0"
       sources."fastest-levenshtein-1.0.16"
       sources."fastq-1.17.1"
       sources."file-entry-cache-6.0.1"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."find-up-4.1.0"
       sources."flat-cache-3.2.0"
       sources."flatted-3.3.1"
@@ -70064,7 +68553,7 @@ in
       sources."meow-9.0.0"
       sources."merge2-1.4.1"
       sources."micromark-2.11.4"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."min-indent-1.0.1"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.8"
@@ -70077,9 +68566,7 @@ in
       sources."node-releases-2.0.14"
       (sources."normalize-package-data-3.0.3" // {
         dependencies = [
-          sources."lru-cache-6.0.0"
-          sources."semver-7.6.0"
-          sources."yallist-4.0.0"
+          sources."semver-7.6.2"
         ];
       })
       sources."normalize-range-0.1.2"
@@ -70097,7 +68584,7 @@ in
       sources."path-is-inside-1.0.2"
       sources."path-parse-1.0.7"
       sources."path-type-4.0.0"
-      sources."picocolors-1.0.0"
+      sources."picocolors-1.0.1"
       sources."picomatch-2.3.1"
       (sources."postcss-7.0.39" // {
         dependencies = [
@@ -70111,10 +68598,9 @@ in
       sources."postcss-safe-parser-4.0.2"
       sources."postcss-sass-0.4.4"
       sources."postcss-scss-2.1.1"
-      sources."postcss-selector-parser-6.0.16"
+      sources."postcss-selector-parser-6.1.0"
       sources."postcss-syntax-0.36.2"
       sources."postcss-value-parser-4.2.0"
-      sources."punycode-2.3.1"
       sources."queue-microtask-1.2.3"
       sources."quick-lru-4.0.1"
       (sources."read-pkg-5.2.0" // {
@@ -70157,7 +68643,7 @@ in
       sources."spdx-correct-3.2.0"
       sources."spdx-exceptions-2.5.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.17"
+      sources."spdx-license-ids-3.0.18"
       sources."specificity-0.4.1"
       sources."string-width-4.2.3"
       sources."string_decoder-1.3.0"
@@ -70169,7 +68655,7 @@ in
       sources."supports-color-5.5.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
       sources."svg-tags-1.0.0"
-      sources."table-6.8.1"
+      sources."table-6.8.2"
       sources."to-fast-properties-2.0.0"
       sources."to-regex-range-5.0.1"
       sources."trim-newlines-3.0.1"
@@ -70180,8 +68666,7 @@ in
       sources."unist-util-find-all-after-3.0.2"
       sources."unist-util-is-4.1.0"
       sources."unist-util-stringify-position-2.0.3"
-      sources."update-browserslist-db-1.0.13"
-      sources."uri-js-4.4.1"
+      sources."update-browserslist-db-1.0.16"
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-2.4.0"
       sources."validate-npm-package-license-3.0.4"
@@ -70217,14 +68702,18 @@ in
   coc-sumneko-lua = nodeEnv.buildNodePackage {
     name = "coc-sumneko-lua";
     packageName = "coc-sumneko-lua";
-    version = "0.0.41";
+    version = "0.0.42";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-sumneko-lua/-/coc-sumneko-lua-0.0.41.tgz";
-      sha512 = "gOvCEK1YQbuQgNMPUYPhAD5I78MleBKN6loXBdZ3pDVk+MT0Cj+8QoWqIPcDfCsUhAp25wn0W+RozFj3HvLbIg==";
+      url = "https://registry.npmjs.org/coc-sumneko-lua/-/coc-sumneko-lua-0.0.42.tgz";
+      sha512 = "elUmSurb51E17VV/1W/qsAoD5qq6pFsnRK549WFMcG+AThli6nTj2Y6Ta0FA6+zh7QSjbraOlza8gk7C2w3Nfg==";
     };
+    dependencies = [
+      sources."tslib-2.6.2"
+    ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "Lua extension using sumneko lua-language-server for coc.nvim";
+      homepage = "https://github.com/xiyaowong/coc-sumneko-lua#readme";
       license = "MIT";
     };
     production = true;
@@ -70240,9 +68729,7 @@ in
       sha512 = "0yKAPkIKoLJWksPefWXVvRcRQ+Ja3kc2Bx/tKL4tQwEOlAwc5qeUU+1FZRw+71Jp8HeC5Wo9YqtlgSIJlyic3g==";
     };
     dependencies = [
-      sources."lru-cache-6.0.0"
-      sources."semver-7.6.0"
-      sources."yallist-4.0.0"
+      sources."semver-7.6.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -70326,9 +68813,9 @@ in
       sha512 = "5Zxv2Adtb6Mlpv2YdKErhf8ntxiBl1UyrbEqo7gR9nFIAfi3o0Ue6TJTpZfOhQViFQxLjJAS65IQVRaNlbhkxw==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.23.5"
-      sources."@babel/helper-validator-identifier-7.22.20"
-      sources."@babel/highlight-7.23.4"
+      sources."@babel/code-frame-7.24.6"
+      sources."@babel/helper-validator-identifier-7.24.6"
+      sources."@babel/highlight-7.24.6"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
       sources."balanced-match-1.0.2"
@@ -70358,6 +68845,7 @@ in
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
       sources."path-parse-1.0.7"
+      sources."picocolors-1.0.1"
       sources."resolve-1.22.8"
       sources."semver-5.7.2"
       sources."sprintf-js-1.0.3"
@@ -70415,17 +68903,17 @@ in
   coc-tsserver = nodeEnv.buildNodePackage {
     name = "coc-tsserver";
     packageName = "coc-tsserver";
-    version = "2.1.4";
+    version = "2.2.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-tsserver/-/coc-tsserver-2.1.4.tgz";
-      sha512 = "PItTyCjeAPF0V7wZO+viGCO2PxrDLujRcb4wN4TKUFLni8fw3p5czviA6JFl5s8WLdkfjH6XkrciTwcVWH2srQ==";
+      url = "https://registry.npmjs.org/coc-tsserver/-/coc-tsserver-2.2.0.tgz";
+      sha512 = "XUhAHtYOBHgLobVODFNONdJkCmFbsjS/8nMH95IQYRE0ECzwljupPOrGKBQa7OiGyWqQ5CAJfZJcbhzCHWdr+Q==";
     };
     dependencies = [
-      sources."typescript-5.4.2"
+      sources."typescript-5.4.5"
     ];
     buildInputs = globalBuildInputs;
     meta = {
-      description = "tsserver extension for coc.nvim";
+      description = "javascript and typescript language features extension of coc.nvim";
       homepage = "https://github.com/neoclide/coc-tsserver#readme";
       license = "MIT";
     };
@@ -70460,13 +68948,17 @@ in
       sha512 = "pBh7Jrn+L4hj6E6JxAwGdjVB/9v2TuJEMYUhDFR41s/zBJG2cXxzgUVmGz8RWYd70HdEz2ula1FcRA4rjkjPXg==";
     };
     dependencies = [
-      sources."@aashutoshrathi/word-wrap-1.2.6"
       sources."@babel/code-frame-7.12.11"
-      sources."@babel/helper-validator-identifier-7.22.20"
-      (sources."@babel/highlight-7.23.4" // {
+      sources."@babel/helper-validator-identifier-7.24.6"
+      (sources."@babel/highlight-7.24.6" // {
         dependencies = [
+          sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
           sources."escape-string-regexp-1.0.5"
+          sources."has-flag-3.0.0"
+          sources."supports-color-5.5.0"
         ];
       })
       sources."@eslint/eslintrc-0.4.3"
@@ -70477,7 +68969,7 @@ in
       sources."ajv-6.12.6"
       sources."ansi-colors-4.1.3"
       sources."ansi-regex-5.0.1"
-      sources."ansi-styles-3.2.1"
+      sources."ansi-styles-4.3.0"
       sources."argparse-1.0.10"
       sources."astral-regex-2.0.0"
       sources."balanced-match-1.0.2"
@@ -70485,22 +68977,14 @@ in
       sources."builtin-modules-1.1.1"
       sources."call-bind-1.0.7"
       sources."callsites-3.1.0"
-      (sources."chalk-4.1.2" // {
-        dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."has-flag-4.0.0"
-          sources."supports-color-7.2.0"
-        ];
-      })
+      sources."chalk-4.1.2"
       sources."character-parser-2.2.0"
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
       sources."commander-2.20.3"
       sources."concat-map-0.0.1"
       sources."cross-spawn-7.0.3"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."deep-is-0.1.4"
       sources."define-data-property-1.1.4"
       sources."diff-4.0.2"
@@ -70516,7 +69000,11 @@ in
           sources."semver-6.3.1"
         ];
       })
-      sources."eslint-scope-5.1.1"
+      (sources."eslint-scope-5.1.1" // {
+        dependencies = [
+          sources."estraverse-4.3.0"
+        ];
+      })
       (sources."eslint-utils-2.1.0" // {
         dependencies = [
           sources."eslint-visitor-keys-1.3.0"
@@ -70529,21 +69017,14 @@ in
         ];
       })
       sources."esprima-4.0.1"
-      (sources."esquery-1.5.0" // {
-        dependencies = [
-          sources."estraverse-5.3.0"
-        ];
-      })
-      (sources."esrecurse-4.3.0" // {
-        dependencies = [
-          sources."estraverse-5.3.0"
-        ];
-      })
-      sources."estraverse-4.3.0"
+      sources."esquery-1.5.0"
+      sources."esrecurse-4.3.0"
+      sources."estraverse-5.3.0"
       sources."esutils-2.0.3"
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
+      sources."fast-uri-2.3.0"
       sources."file-entry-cache-6.0.1"
       sources."flat-cache-3.2.0"
       sources."flatted-3.3.1"
@@ -70555,7 +69036,7 @@ in
       sources."glob-parent-5.1.2"
       sources."globals-13.24.0"
       sources."gopd-1.0.1"
-      sources."has-flag-3.0.0"
+      sources."has-flag-4.0.0"
       sources."has-property-descriptors-1.0.2"
       sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
@@ -70583,7 +69064,6 @@ in
       sources."lodash-4.17.21"
       sources."lodash.merge-4.6.2"
       sources."lodash.truncate-4.4.2"
-      sources."lru-cache-6.0.0"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.8"
       sources."mkdirp-0.5.6"
@@ -70591,15 +69071,16 @@ in
       sources."natural-compare-1.4.0"
       sources."object-assign-4.1.1"
       sources."once-1.4.0"
-      sources."optionator-0.9.3"
+      sources."optionator-0.9.4"
       sources."parent-module-1.0.1"
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
+      sources."picocolors-1.0.1"
       sources."prelude-ls-1.2.1"
       sources."prettier-2.8.8"
       sources."progress-2.0.3"
-      sources."pug-error-2.0.0"
+      sources."pug-error-2.1.0"
       sources."pug-lexer-5.0.1"
       sources."punycode-2.3.1"
       sources."regexpp-3.2.0"
@@ -70607,26 +69088,20 @@ in
       sources."resolve-1.22.8"
       sources."resolve-from-4.0.0"
       sources."rimraf-3.0.2"
-      sources."semver-7.6.0"
+      sources."semver-7.6.2"
       sources."set-function-length-1.2.2"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      (sources."slice-ansi-4.0.0" // {
-        dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-        ];
-      })
+      sources."slice-ansi-4.0.0"
       sources."sprintf-js-1.0.3"
       sources."string-width-4.2.3"
       sources."strip-ansi-6.0.1"
       sources."strip-json-comments-3.1.1"
-      sources."supports-color-5.5.0"
+      sources."supports-color-7.2.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
-      (sources."table-6.8.1" // {
+      (sources."table-6.8.2" // {
         dependencies = [
-          sources."ajv-8.12.0"
+          sources."ajv-8.15.0"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -70634,9 +69109,14 @@ in
       sources."tslib-1.14.1"
       (sources."tslint-6.1.3" // {
         dependencies = [
+          sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
           sources."escape-string-regexp-1.0.5"
+          sources."has-flag-3.0.0"
           sources."semver-5.7.2"
+          sources."supports-color-5.5.0"
         ];
       })
       sources."tsutils-2.29.0"
@@ -70654,8 +69134,8 @@ in
         ];
       })
       sources."which-2.0.2"
+      sources."word-wrap-1.2.5"
       sources."wrappy-1.0.2"
-      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -70940,7 +69420,7 @@ in
       sha512 = "1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==";
     };
     dependencies = [
-      sources."@babel/runtime-7.24.0"
+      sources."@babel/runtime-7.24.6"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
       (sources."chalk-4.1.2" // {
@@ -70986,18 +69466,19 @@ in
   conventional-changelog-cli = nodeEnv.buildNodePackage {
     name = "conventional-changelog-cli";
     packageName = "conventional-changelog-cli";
-    version = "4.1.0";
+    version = "5.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-4.1.0.tgz";
-      sha512 = "MscvILWZ6nWOoC+p/3Nn3D2cVLkjeQjyZPUr0bQ+vUORE/SPrkClJh8BOoMNpS4yk+zFJ5LlgXACxH6XGQoRXA==";
+      url = "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-5.0.0.tgz";
+      sha512 = "9Y8fucJe18/6ef6ZlyIlT2YQUbczvoQZZuYmDLaGvcSBP+M6h+LAvf7ON7waRxKJemcCII8Yqu5/8HEfskTxJQ==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.23.5"
-      sources."@babel/helper-validator-identifier-7.22.20"
-      sources."@babel/highlight-7.23.4"
+      sources."@babel/code-frame-7.24.6"
+      sources."@babel/helper-validator-identifier-7.24.6"
+      sources."@babel/highlight-7.24.6"
+      sources."@conventional-changelog/git-client-1.0.1"
       sources."@hutson/parse-repository-url-5.0.0"
       sources."@types/normalize-package-data-2.4.4"
-      sources."JSONStream-1.3.5"
+      sources."@types/semver-7.5.8"
       sources."add-stream-1.0.0"
       sources."ansi-styles-3.2.1"
       sources."array-ify-1.0.0"
@@ -71005,84 +69486,62 @@ in
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
       sources."compare-func-2.0.0"
-      sources."conventional-changelog-5.1.0"
-      sources."conventional-changelog-angular-7.0.0"
-      sources."conventional-changelog-atom-4.0.0"
-      sources."conventional-changelog-codemirror-4.0.0"
-      sources."conventional-changelog-conventionalcommits-7.0.2"
-      sources."conventional-changelog-core-7.0.0"
-      sources."conventional-changelog-ember-4.0.0"
-      sources."conventional-changelog-eslint-5.0.0"
-      sources."conventional-changelog-express-4.0.0"
-      sources."conventional-changelog-jquery-5.0.0"
-      sources."conventional-changelog-jshint-4.0.0"
-      sources."conventional-changelog-preset-loader-4.1.0"
-      sources."conventional-changelog-writer-7.0.1"
-      sources."conventional-commits-filter-4.0.0"
-      sources."conventional-commits-parser-5.0.0"
-      sources."dargs-8.1.0"
+      sources."conventional-changelog-6.0.0"
+      sources."conventional-changelog-angular-8.0.0"
+      sources."conventional-changelog-atom-5.0.0"
+      sources."conventional-changelog-codemirror-5.0.0"
+      sources."conventional-changelog-conventionalcommits-8.0.0"
+      sources."conventional-changelog-core-8.0.0"
+      sources."conventional-changelog-ember-5.0.0"
+      sources."conventional-changelog-eslint-6.0.0"
+      sources."conventional-changelog-express-5.0.0"
+      sources."conventional-changelog-jquery-6.0.0"
+      sources."conventional-changelog-jshint-5.0.0"
+      sources."conventional-changelog-preset-loader-5.0.0"
+      sources."conventional-changelog-writer-8.0.0"
+      sources."conventional-commits-filter-5.0.0"
+      sources."conventional-commits-parser-6.0.0"
       sources."dot-prop-5.3.0"
-      sources."error-ex-1.3.2"
       sources."escape-string-regexp-1.0.5"
-      sources."find-up-6.3.0"
+      sources."find-up-simple-1.0.0"
       sources."function-bind-1.1.2"
-      sources."git-raw-commits-4.0.0"
-      sources."git-semver-tags-7.0.1"
+      sources."git-raw-commits-5.0.0"
+      sources."git-semver-tags-8.0.0"
       sources."handlebars-4.7.8"
       sources."has-flag-3.0.0"
       sources."hasown-2.0.2"
-      sources."hosted-git-info-7.0.1"
-      sources."is-arrayish-0.2.1"
+      sources."hosted-git-info-7.0.2"
+      sources."index-to-position-0.1.2"
       sources."is-core-module-2.13.1"
       sources."is-obj-2.0.0"
-      sources."is-text-path-2.0.0"
       sources."js-tokens-4.0.0"
-      sources."json-parse-even-better-errors-3.0.1"
-      sources."json-stringify-safe-5.0.1"
-      sources."jsonparse-1.3.1"
-      sources."lines-and-columns-2.0.4"
-      sources."locate-path-7.2.0"
-      sources."lru-cache-10.2.0"
-      sources."meow-12.1.1"
+      sources."lru-cache-10.2.2"
+      sources."meow-13.2.0"
       sources."minimist-1.2.8"
       sources."neo-async-2.6.2"
-      sources."normalize-package-data-6.0.0"
-      sources."p-limit-4.0.0"
-      sources."p-locate-6.0.0"
-      (sources."parse-json-7.1.1" // {
-        dependencies = [
-          sources."type-fest-3.13.1"
-        ];
-      })
-      sources."path-exists-5.0.0"
-      sources."read-pkg-8.1.0"
-      sources."read-pkg-up-10.1.0"
-      (sources."semver-7.6.0" // {
-        dependencies = [
-          sources."lru-cache-6.0.0"
-        ];
-      })
+      sources."normalize-package-data-6.0.1"
+      sources."parse-json-8.1.0"
+      sources."picocolors-1.0.1"
+      sources."read-package-up-11.0.0"
+      sources."read-pkg-9.0.1"
+      sources."semver-7.6.2"
       sources."source-map-0.6.1"
       sources."spdx-correct-3.2.0"
       sources."spdx-exceptions-2.5.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.17"
-      sources."split2-4.2.0"
+      sources."spdx-license-ids-3.0.18"
       sources."supports-color-5.5.0"
       sources."temp-dir-3.0.0"
       sources."tempfile-5.0.0"
-      sources."text-extensions-2.4.0"
-      sources."through-2.3.8"
-      sources."type-fest-4.12.0"
+      sources."type-fest-4.19.0"
       sources."uglify-js-3.17.4"
+      sources."unicorn-magic-0.1.0"
       sources."validate-npm-package-license-3.0.4"
       sources."wordwrap-1.0.0"
-      sources."yallist-4.0.0"
-      sources."yocto-queue-1.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
-      description = "Generate a changelog from git metadata";
+      description = "Generate a changelog from git metadata.";
       homepage = "https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-cli#readme";
       license = "MIT";
     };
@@ -71104,7 +69563,7 @@ in
       sources."@nodelib/fs.walk-1.2.8"
       sources."aggregate-error-4.0.1"
       sources."arrify-3.0.0"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."clean-stack-4.2.0"
       sources."cp-file-10.0.0"
       sources."cpy-10.1.0"
@@ -71112,7 +69571,7 @@ in
       sources."escape-string-regexp-5.0.0"
       sources."fast-glob-3.3.2"
       sources."fastq-1.17.1"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."glob-parent-5.1.2"
       sources."globby-13.2.2"
       sources."graceful-fs-4.2.11"
@@ -71124,7 +69583,7 @@ in
       sources."junk-4.0.1"
       sources."meow-12.1.1"
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."nested-error-stacks-2.1.1"
       sources."p-event-5.0.1"
       (sources."p-filter-3.0.0" // {
@@ -71171,7 +69630,7 @@ in
       sources."@cycle/run-3.4.0"
       sources."@cycle/time-0.10.1"
       sources."@types/cookiejar-2.1.5"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."@types/superagent-3.8.2"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-2.1.1"
@@ -71221,7 +69680,7 @@ in
       sources."formidable-1.2.6"
       sources."function-bind-1.1.2"
       sources."get-intrinsic-1.2.4"
-      sources."globalthis-1.0.3"
+      sources."globalthis-1.0.4"
       sources."gopd-1.0.1"
       sources."has-ansi-2.0.0"
       sources."has-flag-3.0.0"
@@ -71266,7 +69725,7 @@ in
       sources."performance-now-2.1.0"
       sources."process-nextick-args-2.0.1"
       sources."pseudomap-1.0.2"
-      sources."qs-6.12.0"
+      sources."qs-6.12.1"
       sources."quicktask-1.1.0"
       sources."raf-3.3.2"
       sources."readable-stream-2.3.8"
@@ -71298,7 +69757,7 @@ in
       sources."symbol-observable-2.0.3"
       sources."through-2.3.8"
       sources."tmp-0.0.33"
-      sources."type-2.7.2"
+      sources."type-2.7.3"
       sources."undici-types-5.26.5"
       sources."util-deprecate-1.0.2"
       (sources."variable-diff-1.1.0" // {
@@ -71341,23 +69800,23 @@ in
   cspell = nodeEnv.buildNodePackage {
     name = "cspell";
     packageName = "cspell";
-    version = "8.6.0";
+    version = "8.8.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cspell/-/cspell-8.6.0.tgz";
-      sha512 = "aAaVD3v1105OQePCpcdYkHnHxxkxKxxQzFcfJ4tKsH06dlW04Sp1oQLlsjgWDa3y6cdYTpSYj1eSenavBvfOFg==";
+      url = "https://registry.npmjs.org/cspell/-/cspell-8.8.4.tgz";
+      sha512 = "eRUHiXvh4iRapw3lqE1nGOEAyYVfa/0lgK/e34SpcM/ECm4QuvbfY7Yl0ozCbiYywecog0RVbeJJUEYJTN5/Mg==";
     };
     dependencies = [
-      sources."@cspell/cspell-bundled-dicts-8.6.0"
-      sources."@cspell/cspell-json-reporter-8.6.0"
-      sources."@cspell/cspell-pipe-8.6.0"
-      sources."@cspell/cspell-resolver-8.6.0"
-      sources."@cspell/cspell-service-bus-8.6.0"
-      sources."@cspell/cspell-types-8.6.0"
+      sources."@cspell/cspell-bundled-dicts-8.8.4"
+      sources."@cspell/cspell-json-reporter-8.8.4"
+      sources."@cspell/cspell-pipe-8.8.4"
+      sources."@cspell/cspell-resolver-8.8.4"
+      sources."@cspell/cspell-service-bus-8.8.4"
+      sources."@cspell/cspell-types-8.8.4"
       sources."@cspell/dict-ada-4.0.2"
-      sources."@cspell/dict-aws-4.0.1"
+      sources."@cspell/dict-aws-4.0.2"
       sources."@cspell/dict-bash-4.1.3"
-      sources."@cspell/dict-companies-3.0.31"
-      sources."@cspell/dict-cpp-5.1.3"
+      sources."@cspell/dict-companies-3.1.2"
+      sources."@cspell/dict-cpp-5.1.8"
       sources."@cspell/dict-cryptocurrencies-5.0.0"
       sources."@cspell/dict-csharp-4.0.2"
       sources."@cspell/dict-css-4.0.12"
@@ -71365,76 +69824,78 @@ in
       sources."@cspell/dict-data-science-1.0.11"
       sources."@cspell/dict-django-4.1.0"
       sources."@cspell/dict-docker-1.1.7"
-      sources."@cspell/dict-dotnet-5.0.0"
+      sources."@cspell/dict-dotnet-5.0.2"
       sources."@cspell/dict-elixir-4.0.3"
-      sources."@cspell/dict-en-common-misspellings-2.0.0"
+      sources."@cspell/dict-en-common-misspellings-2.0.1"
       sources."@cspell/dict-en-gb-1.1.33"
-      sources."@cspell/dict-en_us-4.3.17"
-      sources."@cspell/dict-filetypes-3.0.3"
+      sources."@cspell/dict-en_us-4.3.21"
+      sources."@cspell/dict-filetypes-3.0.4"
       sources."@cspell/dict-fonts-4.0.0"
       sources."@cspell/dict-fsharp-1.0.1"
-      sources."@cspell/dict-fullstack-3.1.5"
+      sources."@cspell/dict-fullstack-3.1.8"
       sources."@cspell/dict-gaming-terms-1.0.5"
       sources."@cspell/dict-git-3.0.0"
-      sources."@cspell/dict-golang-6.0.5"
+      sources."@cspell/dict-golang-6.0.9"
+      sources."@cspell/dict-google-1.0.1"
       sources."@cspell/dict-haskell-4.0.1"
       sources."@cspell/dict-html-4.0.5"
       sources."@cspell/dict-html-symbol-entities-4.0.0"
       sources."@cspell/dict-java-5.0.6"
-      sources."@cspell/dict-k8s-1.0.2"
+      sources."@cspell/dict-julia-1.0.1"
+      sources."@cspell/dict-k8s-1.0.5"
       sources."@cspell/dict-latex-4.0.0"
       sources."@cspell/dict-lorem-ipsum-4.0.0"
       sources."@cspell/dict-lua-4.0.3"
       sources."@cspell/dict-makefile-1.0.0"
-      sources."@cspell/dict-node-4.0.3"
-      sources."@cspell/dict-npm-5.0.15"
-      sources."@cspell/dict-php-4.0.6"
-      sources."@cspell/dict-powershell-5.0.3"
-      sources."@cspell/dict-public-licenses-2.0.6"
+      sources."@cspell/dict-monkeyc-1.0.6"
+      sources."@cspell/dict-node-5.0.1"
+      sources."@cspell/dict-npm-5.0.16"
+      sources."@cspell/dict-php-4.0.7"
+      sources."@cspell/dict-powershell-5.0.4"
+      sources."@cspell/dict-public-licenses-2.0.7"
       sources."@cspell/dict-python-4.1.11"
       sources."@cspell/dict-r-2.0.1"
       sources."@cspell/dict-ruby-5.0.2"
-      sources."@cspell/dict-rust-4.0.2"
-      sources."@cspell/dict-scala-5.0.0"
-      sources."@cspell/dict-software-terms-3.3.18"
+      sources."@cspell/dict-rust-4.0.3"
+      sources."@cspell/dict-scala-5.0.2"
+      sources."@cspell/dict-software-terms-3.4.1"
       sources."@cspell/dict-sql-2.1.3"
       sources."@cspell/dict-svelte-1.0.2"
       sources."@cspell/dict-swift-2.0.1"
-      sources."@cspell/dict-typescript-3.1.2"
+      sources."@cspell/dict-terraform-1.0.0"
+      sources."@cspell/dict-typescript-3.1.5"
       sources."@cspell/dict-vue-3.0.0"
-      sources."@cspell/dynamic-import-8.6.0"
-      sources."@cspell/strong-weak-map-8.6.0"
+      sources."@cspell/dynamic-import-8.8.4"
+      sources."@cspell/strong-weak-map-8.8.4"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
       sources."ansi-regex-6.0.1"
       sources."array-timsort-1.0.3"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."callsites-3.1.0"
       sources."chalk-5.3.0"
       sources."chalk-template-1.1.0"
       sources."clear-module-4.1.2"
-      sources."commander-12.0.0"
+      sources."commander-12.1.0"
       sources."comment-json-4.2.3"
-      sources."configstore-6.0.0"
       sources."core-util-is-1.0.3"
-      sources."crypto-random-string-4.0.0"
-      sources."cspell-config-lib-8.6.0"
-      sources."cspell-dictionary-8.6.0"
-      sources."cspell-gitignore-8.6.0"
-      sources."cspell-glob-8.6.0"
-      sources."cspell-grammar-8.6.0"
-      sources."cspell-io-8.6.0"
-      sources."cspell-lib-8.6.0"
-      sources."cspell-trie-lib-8.6.0"
-      sources."dot-prop-6.0.1"
+      sources."cspell-config-lib-8.8.4"
+      sources."cspell-dictionary-8.8.4"
+      sources."cspell-gitignore-8.8.4"
+      sources."cspell-glob-8.8.4"
+      sources."cspell-grammar-8.8.4"
+      sources."cspell-io-8.8.4"
+      sources."cspell-lib-8.8.4"
+      sources."cspell-trie-lib-8.8.4"
+      sources."env-paths-3.0.0"
       sources."esprima-4.0.1"
       sources."fast-equals-5.0.1"
       sources."fast-glob-3.3.2"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fastq-1.17.1"
       sources."file-entry-cache-8.0.0"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."find-up-simple-1.0.0"
       sources."flat-cache-4.0.1"
       sources."flatted-3.3.1"
@@ -71442,7 +69903,6 @@ in
       sources."get-stdin-9.0.0"
       sources."glob-parent-5.1.2"
       sources."global-directory-4.0.1"
-      sources."graceful-fs-4.2.11"
       sources."has-own-prop-2.0.0"
       (sources."import-fresh-3.3.0" // {
         dependencies = [
@@ -71450,19 +69910,15 @@ in
           sources."resolve-from-4.0.0"
         ];
       })
-      sources."import-meta-resolve-4.0.0"
-      sources."imurmurhash-0.1.4"
+      sources."import-meta-resolve-4.1.0"
       sources."ini-4.1.1"
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.3"
       sources."is-number-7.0.0"
-      sources."is-obj-2.0.0"
-      sources."is-typedarray-1.0.0"
       sources."json-buffer-3.0.1"
       sources."keyv-4.5.4"
-      sources."lru-cache-6.0.0"
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."parent-module-2.0.0"
       sources."picomatch-2.3.1"
       sources."queue-microtask-1.2.3"
@@ -71470,19 +69926,13 @@ in
       sources."resolve-from-5.0.0"
       sources."reusify-1.0.4"
       sources."run-parallel-1.2.0"
-      sources."semver-7.6.0"
-      sources."signal-exit-3.0.7"
+      sources."semver-7.6.2"
       sources."strip-ansi-7.1.0"
       sources."to-regex-range-5.0.1"
-      sources."type-fest-1.4.0"
-      sources."typedarray-to-buffer-3.1.5"
-      sources."unique-string-3.0.0"
       sources."vscode-languageserver-textdocument-1.0.11"
       sources."vscode-uri-3.0.8"
-      sources."write-file-atomic-3.0.3"
       sources."xdg-basedir-5.1.0"
-      sources."yallist-4.0.0"
-      sources."yaml-2.4.1"
+      sources."yaml-2.4.3"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -71553,7 +70003,7 @@ in
       sources."array-union-2.1.0"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."clean-stack-2.2.0"
       sources."commander-5.1.0"
       sources."concat-map-0.0.1"
@@ -71562,7 +70012,7 @@ in
       sources."dir-glob-3.0.1"
       sources."fast-glob-3.3.2"
       sources."fastq-1.17.1"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."find-up-4.1.0"
       sources."fs.realpath-1.0.0"
       sources."glob-7.2.3"
@@ -71582,7 +70032,7 @@ in
       sources."locate-path-5.0.0"
       sources."lodash-4.17.21"
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."minimatch-3.1.2"
       sources."once-1.4.0"
       sources."p-limit-2.3.0"
@@ -71646,7 +70096,7 @@ in
       sources."default-browser-id-5.0.0"
       sources."define-lazy-prop-3.0.0"
       sources."diff-5.1.0"
-      sources."diff2html-3.4.47"
+      sources."diff2html-3.4.48"
       sources."emoji-regex-8.0.0"
       sources."escalade-3.1.2"
       sources."execa-8.0.1"
@@ -71706,10 +70156,10 @@ in
   dotenv-cli = nodeEnv.buildNodePackage {
     name = "dotenv-cli";
     packageName = "dotenv-cli";
-    version = "7.4.1";
+    version = "7.4.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/dotenv-cli/-/dotenv-cli-7.4.1.tgz";
-      sha512 = "fE1aywjRrWGxV3miaiUr3d2zC/VAiuzEGghi+QzgIA9fEf/M5hLMaRSXb4IxbUAwGmaLi0IozdZddnVU96acag==";
+      url = "https://registry.npmjs.org/dotenv-cli/-/dotenv-cli-7.4.2.tgz";
+      sha512 = "SbUj8l61zIbzyhIbg0FwPJq6+wjbzdn9oEtozQpZ6kW2ihCcapKVZj49oCT3oPM+mgQm+itgvUQcG5szxVrZTA==";
     };
     dependencies = [
       sources."cross-spawn-7.0.3"
@@ -71752,36 +70202,36 @@ in
       sources."@oclif/linewrap-1.0.0"
       (sources."@oclif/plugin-help-5.2.20" // {
         dependencies = [
-          sources."@oclif/core-2.15.0"
+          sources."@oclif/core-2.16.0"
         ];
       })
       (sources."@oclif/plugin-not-found-2.4.3" // {
         dependencies = [
-          sources."@oclif/core-2.15.0"
+          sources."@oclif/core-2.16.0"
         ];
       })
       (sources."@oclif/plugin-update-3.2.4" // {
         dependencies = [
-          sources."@oclif/core-2.15.0"
+          sources."@oclif/core-2.16.0"
         ];
       })
       (sources."@oclif/plugin-warn-if-update-available-2.1.1" // {
         dependencies = [
-          sources."@oclif/core-2.15.0"
+          sources."@oclif/core-2.16.0"
         ];
       })
       sources."@oclif/screen-3.0.8"
-      sources."@swc/core-1.4.8"
+      sources."@swc/core-1.5.24"
       sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.7"
-      sources."@swc/types-0.1.6"
-      sources."@swc/wasm-1.4.8"
-      sources."@tsconfig/node10-1.0.9"
+      sources."@swc/helpers-0.5.11"
+      sources."@swc/types-0.1.7"
+      sources."@swc/wasm-1.5.24"
+      sources."@tsconfig/node10-1.0.11"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
       sources."@types/cli-progress-3.11.5"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."acorn-8.11.3"
       sources."acorn-walk-8.3.2"
       sources."ansi-escapes-4.3.2"
@@ -71795,12 +70245,12 @@ in
       sources."async-3.2.5"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
-      sources."axios-1.6.8"
+      sources."axios-1.7.2"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bl-4.1.0"
       sources."brace-expansion-2.0.1"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."buffer-5.7.1"
       sources."byline-5.0.0"
       sources."cardinal-2.1.1"
@@ -71824,13 +70274,13 @@ in
       sources."content-type-1.0.5"
       sources."create-require-1.1.1"
       sources."cross-spawn-7.0.3"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."defaults-1.0.4"
       sources."delayed-stream-1.0.0"
       sources."diff-4.0.2"
       sources."dir-glob-3.0.1"
       sources."dotenv-16.4.5"
-      sources."ejs-3.1.9"
+      sources."ejs-3.1.10"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."error-ex-1.3.2"
@@ -71852,7 +70302,7 @@ in
         ];
       })
       sources."filesize-6.4.0"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."follow-redirects-1.15.6"
       sources."form-data-4.0.0"
       sources."fs-constants-1.0.0"
@@ -71886,7 +70336,7 @@ in
       sources."is-unicode-supported-0.1.0"
       sources."is-wsl-2.2.0"
       sources."isexe-2.0.0"
-      sources."jake-10.8.7"
+      sources."jake-10.9.1"
       sources."js-yaml-3.14.1"
       sources."json-parse-better-errors-1.0.2"
       sources."jsonfile-6.1.0"
@@ -71897,10 +70347,9 @@ in
       sources."lodash.throttle-4.1.1"
       sources."log-chopper-1.0.2"
       sources."log-symbols-4.1.0"
-      sources."lru-cache-6.0.0"
       sources."make-error-1.3.6"
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
       sources."mimic-fn-2.1.0"
@@ -71935,7 +70384,7 @@ in
       sources."rxjs-7.8.1"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.6.0"
+      sources."semver-7.6.2"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-3.0.7"
@@ -71960,7 +70409,7 @@ in
       sources."tslib-2.6.2"
       sources."tunnel-agent-0.6.0"
       sources."type-fest-0.21.3"
-      sources."typescript-5.4.2"
+      sources."typescript-5.4.5"
       sources."undici-types-5.26.5"
       sources."universalify-2.0.1"
       sources."util-deprecate-1.0.2"
@@ -71971,7 +70420,6 @@ in
       sources."wordwrap-1.0.0"
       sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
-      sources."yallist-4.0.0"
       sources."yn-3.1.1"
     ];
     buildInputs = globalBuildInputs;
@@ -72005,7 +70453,7 @@ in
       sources."available-typed-arrays-1.0.7"
       sources."aws-sdk-2.1472.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.12.0"
+      sources."aws4-1.13.0"
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."big.js-5.2.2"
@@ -72139,7 +70587,7 @@ in
         ];
       })
       sources."through-2.3.8"
-      (sources."tough-cookie-4.1.3" // {
+      (sources."tough-cookie-4.1.4" // {
         dependencies = [
           sources."punycode-2.3.1"
         ];
@@ -72176,25 +70624,25 @@ in
   "@electron-forge/cli" = nodeEnv.buildNodePackage {
     name = "_at_electron-forge_slash_cli";
     packageName = "@electron-forge/cli";
-    version = "7.3.0";
+    version = "7.4.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@electron-forge/cli/-/cli-7.3.0.tgz";
-      sha512 = "tIzNYTvCEjJbma7zLWpa03phLKX/pd9f+vG+0HlIpmESMFGWhyLDzunZn0YOOXPRKpCTVg5RpC+BVte1Da4VjQ==";
+      url = "https://registry.npmjs.org/@electron-forge/cli/-/cli-7.4.0.tgz";
+      sha512 = "a+zZv3ja/IxkJzNyx4sOHSZv6DPV85S0PEVF6pcRjUpbDL5r+DxjRFsNc0Nq4UIWyFm1nw7RWoPdd9uDst4Tvg==";
     };
     dependencies = [
-      sources."@electron-forge/core-7.3.0"
-      sources."@electron-forge/core-utils-7.3.0"
-      sources."@electron-forge/maker-base-7.3.0"
-      sources."@electron-forge/plugin-base-7.3.0"
-      sources."@electron-forge/publisher-base-7.3.0"
-      sources."@electron-forge/shared-types-7.3.0"
-      sources."@electron-forge/template-base-7.3.0"
-      sources."@electron-forge/template-vite-7.3.0"
-      sources."@electron-forge/template-vite-typescript-7.3.0"
-      sources."@electron-forge/template-webpack-7.3.0"
-      sources."@electron-forge/template-webpack-typescript-7.3.0"
-      sources."@electron-forge/tracer-7.3.0"
-      (sources."@electron/asar-3.2.9" // {
+      sources."@electron-forge/core-7.4.0"
+      sources."@electron-forge/core-utils-7.4.0"
+      sources."@electron-forge/maker-base-7.4.0"
+      sources."@electron-forge/plugin-base-7.4.0"
+      sources."@electron-forge/publisher-base-7.4.0"
+      sources."@electron-forge/shared-types-7.4.0"
+      sources."@electron-forge/template-base-7.4.0"
+      sources."@electron-forge/template-vite-7.4.0"
+      sources."@electron-forge/template-vite-typescript-7.4.0"
+      sources."@electron-forge/template-webpack-7.4.0"
+      sources."@electron-forge/template-webpack-typescript-7.4.0"
+      sources."@electron-forge/tracer-7.4.0"
+      (sources."@electron/asar-3.2.10" // {
         dependencies = [
           sources."commander-5.1.0"
         ];
@@ -72207,13 +70655,13 @@ in
           sources."universalify-0.1.2"
         ];
       })
-      (sources."@electron/notarize-2.3.0" // {
+      (sources."@electron/notarize-2.3.2" // {
         dependencies = [
           sources."fs-extra-9.1.0"
         ];
       })
-      sources."@electron/osx-sign-1.0.5"
-      (sources."@electron/packager-18.1.3" // {
+      sources."@electron/osx-sign-1.3.0"
+      (sources."@electron/packager-18.3.2" // {
         dependencies = [
           sources."fs-extra-11.2.0"
         ];
@@ -72223,7 +70671,7 @@ in
         dependencies = [
           sources."brace-expansion-2.0.1"
           sources."fs-extra-11.2.0"
-          sources."minimatch-9.0.3"
+          sources."minimatch-9.0.4"
         ];
       })
       (sources."@electron/windows-sign-1.1.2" // {
@@ -72244,7 +70692,7 @@ in
       sources."@types/cacheable-request-6.0.3"
       sources."@types/http-cache-semantics-4.0.4"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."@types/responselike-1.0.3"
       sources."@types/yauzl-2.10.3"
       sources."@xmldom/xmldom-0.8.10"
@@ -72252,17 +70700,15 @@ in
       sources."agent-base-6.0.2"
       sources."agentkeepalive-4.5.0"
       sources."aggregate-error-3.1.0"
-      sources."ansi-colors-4.1.3"
-      (sources."ansi-escapes-4.3.2" // {
+      (sources."ansi-escapes-5.0.0" // {
         dependencies = [
-          sources."type-fest-0.21.3"
+          sources."type-fest-1.4.0"
         ];
       })
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
       sources."aproba-2.0.0"
       sources."are-we-there-yet-3.0.1"
-      sources."astral-regex-2.0.0"
       sources."at-least-node-1.0.0"
       sources."author-regex-1.0.0"
       sources."balanced-match-1.0.2"
@@ -72271,7 +70717,7 @@ in
       sources."bluebird-3.7.2"
       sources."boolean-3.2.0"
       sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."buffer-5.7.1"
       sources."buffer-crc32-0.2.13"
       sources."buffer-from-1.1.2"
@@ -72286,11 +70732,18 @@ in
       sources."cacheable-request-7.0.4"
       sources."chalk-4.1.2"
       sources."chownr-2.0.0"
-      sources."chrome-trace-event-1.0.3"
+      sources."chrome-trace-event-1.0.4"
       sources."clean-stack-2.2.0"
       sources."cli-cursor-3.1.0"
       sources."cli-spinners-2.9.2"
-      sources."cli-truncate-2.1.0"
+      (sources."cli-truncate-3.1.0" // {
+        dependencies = [
+          sources."ansi-regex-6.0.1"
+          sources."emoji-regex-9.2.2"
+          sources."string-width-5.1.2"
+          sources."strip-ansi-7.1.0"
+        ];
+      })
       sources."cliui-8.0.1"
       sources."clone-1.0.4"
       sources."clone-response-1.0.3"
@@ -72304,12 +70757,7 @@ in
       sources."console-control-strings-1.1.0"
       sources."cross-dirname-0.1.0"
       sources."cross-spawn-7.0.3"
-      (sources."cross-spawn-windows-exe-1.2.0" // {
-        dependencies = [
-          sources."@malept/cross-spawn-promise-1.1.1"
-        ];
-      })
-      (sources."debug-4.3.4" // {
+      (sources."debug-4.3.5" // {
         dependencies = [
           sources."ms-2.1.2"
         ];
@@ -72324,13 +70772,13 @@ in
       sources."define-data-property-1.1.4"
       sources."define-properties-1.2.1"
       sources."delegates-1.0.0"
-      sources."detect-libc-2.0.2"
+      sources."detect-libc-2.0.3"
       sources."detect-node-2.1.0"
       sources."dir-compare-4.2.0"
+      sources."eastasianwidth-0.2.0"
       sources."emoji-regex-8.0.0"
       sources."encoding-0.1.13"
       sources."end-of-stream-1.4.4"
-      sources."enquirer-2.4.1"
       sources."env-paths-2.2.1"
       sources."err-code-2.0.3"
       sources."error-ex-1.3.2"
@@ -72339,6 +70787,7 @@ in
       sources."es6-error-4.1.1"
       sources."escalade-3.1.2"
       sources."escape-string-regexp-1.0.5"
+      sources."eventemitter3-5.0.1"
       (sources."execa-1.0.0" // {
         dependencies = [
           sources."cross-spawn-6.0.5"
@@ -72358,7 +70807,7 @@ in
       sources."fd-slicer-1.1.0"
       sources."filename-reserved-regex-2.0.0"
       sources."filenamify-4.3.0"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       (sources."find-up-5.0.0" // {
         dependencies = [
           sources."locate-path-6.0.0"
@@ -72391,7 +70840,7 @@ in
           sources."which-1.3.1"
         ];
       })
-      sources."globalthis-1.0.3"
+      sources."globalthis-1.0.4"
       sources."gopd-1.0.1"
       sources."got-11.8.6"
       sources."graceful-fs-4.2.11"
@@ -72420,7 +70869,6 @@ in
       sources."ip-address-9.0.5"
       sources."is-arrayish-0.2.1"
       sources."is-core-module-2.13.1"
-      sources."is-docker-2.2.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
@@ -72430,7 +70878,6 @@ in
       sources."is-stream-1.1.0"
       sources."is-unicode-supported-0.1.0"
       sources."is-windows-1.0.2"
-      sources."is-wsl-2.2.0"
       sources."isbinaryfile-4.0.10"
       sources."isexe-2.0.0"
       sources."jsbn-1.1.0"
@@ -72439,16 +70886,31 @@ in
       sources."jsonfile-6.1.0"
       sources."junk-3.1.0"
       sources."keyv-4.5.4"
-      sources."listr2-5.0.8"
+      (sources."listr2-7.0.2" // {
+        dependencies = [
+          sources."ansi-regex-6.0.1"
+          sources."ansi-styles-6.2.1"
+          sources."emoji-regex-9.2.2"
+          sources."string-width-5.1.2"
+          sources."strip-ansi-7.1.0"
+          sources."wrap-ansi-8.1.0"
+        ];
+      })
       sources."load-json-file-2.0.0"
       sources."locate-path-2.0.0"
       sources."lodash-4.17.21"
       sources."lodash.get-4.4.2"
       sources."log-symbols-4.1.0"
-      (sources."log-update-4.0.0" // {
+      (sources."log-update-5.0.1" // {
         dependencies = [
-          sources."slice-ansi-4.0.0"
-          sources."wrap-ansi-6.2.0"
+          sources."ansi-regex-6.0.1"
+          sources."ansi-styles-6.2.1"
+          sources."cli-cursor-4.0.0"
+          sources."emoji-regex-9.2.2"
+          sources."restore-cursor-4.0.0"
+          sources."string-width-5.1.2"
+          sources."strip-ansi-7.1.0"
+          sources."wrap-ansi-8.1.0"
         ];
       })
       sources."lowercase-keys-2.0.0"
@@ -72462,7 +70924,7 @@ in
       })
       sources."mem-4.3.0"
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.1.2"
@@ -72478,7 +70940,7 @@ in
       sources."ms-2.0.0"
       sources."negotiator-0.6.3"
       sources."nice-try-1.0.5"
-      sources."node-abi-3.56.0"
+      sources."node-abi-3.63.0"
       sources."node-api-version-0.2.0"
       sources."node-fetch-2.7.0"
       sources."node-gyp-9.4.1"
@@ -72519,6 +70981,7 @@ in
       sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
       sources."path-type-2.0.0"
+      sources."pe-library-1.0.1"
       sources."pend-1.2.0"
       sources."picomatch-2.3.1"
       sources."pify-2.3.0"
@@ -72544,7 +71007,6 @@ in
       sources."pump-3.0.0"
       sources."queue-microtask-1.2.3"
       sources."quick-lru-5.1.1"
-      sources."rcedit-4.0.1"
       sources."read-binary-file-arch-1.0.6"
       sources."read-pkg-2.0.0"
       (sources."read-pkg-up-2.0.0" // {
@@ -72555,6 +71017,7 @@ in
       sources."readable-stream-3.6.2"
       sources."rechoir-0.8.0"
       sources."require-directory-2.1.1"
+      sources."resedit-2.0.2"
       sources."resolve-1.22.8"
       sources."resolve-alpn-1.2.1"
       sources."resolve-dir-1.0.1"
@@ -72567,30 +71030,30 @@ in
       sources."rimraf-3.0.2"
       sources."roarr-2.15.4"
       sources."run-parallel-1.2.0"
-      sources."rxjs-7.8.1"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      (sources."semver-7.6.0" // {
-        dependencies = [
-          sources."lru-cache-6.0.0"
-        ];
-      })
+      sources."semver-7.6.2"
       sources."semver-compare-1.0.0"
       sources."serialize-error-7.0.1"
       sources."set-blocking-2.0.0"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-3.0.7"
-      sources."slice-ansi-3.0.0"
+      (sources."slice-ansi-5.0.0" // {
+        dependencies = [
+          sources."ansi-styles-6.2.1"
+          sources."is-fullwidth-code-point-4.0.0"
+        ];
+      })
       sources."smart-buffer-4.2.0"
-      sources."socks-2.8.1"
+      sources."socks-2.8.3"
       sources."socks-proxy-agent-7.0.0"
       sources."source-map-0.6.1"
       sources."source-map-support-0.5.21"
       sources."spdx-correct-3.2.0"
       sources."spdx-exceptions-2.5.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.17"
+      sources."spdx-license-ids-3.0.18"
       sources."sprintf-js-1.1.3"
       sources."ssri-9.0.1"
       sources."string-width-4.2.3"
@@ -72603,16 +71066,14 @@ in
       sources."sumchecker-3.0.1"
       sources."supports-color-7.2.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
-      (sources."tar-6.2.0" // {
+      (sources."tar-6.2.1" // {
         dependencies = [
           sources."minipass-5.0.0"
         ];
       })
-      sources."through-2.3.8"
       sources."to-regex-range-5.0.1"
       sources."tr46-0.0.3"
       sources."trim-repeated-1.0.0"
-      sources."tslib-2.6.2"
       sources."type-fest-0.13.1"
       sources."undici-types-5.26.5"
       sources."unique-filename-2.0.1"
@@ -72659,16 +71120,16 @@ in
   eas-cli = nodeEnv.buildNodePackage {
     name = "eas-cli";
     packageName = "eas-cli";
-    version = "7.6.0";
+    version = "9.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/eas-cli/-/eas-cli-7.6.0.tgz";
-      sha512 = "Czizaa4bUl4VQC8dQEVFKGfNAguKZBEsUL8Sy4Wgn2uojPQbpB8kp1rTAGf0fgGTJ2GZquf7dpjwXtfKrKqpDw==";
+      url = "https://registry.npmjs.org/eas-cli/-/eas-cli-9.1.0.tgz";
+      sha512 = "7EGU8fxXb/KZFo/msiJSTfHrok2+0HMv//TTpaVNQkbe1HKuNN+Zcgt22jCRIn4z5I26OiMR79j6psBgTm1BHg==";
     };
     dependencies = [
-      sources."@0no-co/graphql.web-1.0.4"
+      sources."@0no-co/graphql.web-1.0.7"
       sources."@babel/code-frame-7.10.4"
-      sources."@babel/helper-validator-identifier-7.22.20"
-      (sources."@babel/highlight-7.23.4" // {
+      sources."@babel/helper-validator-identifier-7.24.6"
+      (sources."@babel/highlight-7.24.6" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
@@ -72692,13 +71153,13 @@ in
       })
       (sources."@expo/config-plugins-7.8.4" // {
         dependencies = [
-          sources."@expo/json-file-8.3.0"
-          sources."@expo/plist-0.1.0"
+          sources."@expo/json-file-8.3.3"
+          sources."@expo/plist-0.1.3"
         ];
       })
       sources."@expo/config-types-50.0.0"
-      sources."@expo/eas-build-job-1.0.83"
-      (sources."@expo/eas-json-7.5.0" // {
+      sources."@expo/eas-build-job-1.0.114"
+      (sources."@expo/eas-json-9.0.8" // {
         dependencies = [
           (sources."@babel/code-frame-7.23.5" // {
             dependencies = [
@@ -72709,12 +71170,12 @@ in
           sources."tslib-2.4.1"
         ];
       })
-      (sources."@expo/fingerprint-0.6.0" // {
+      (sources."@expo/fingerprint-0.6.1" // {
         dependencies = [
           sources."minimatch-3.1.2"
         ];
       })
-      (sources."@expo/image-utils-0.4.1" // {
+      (sources."@expo/image-utils-0.4.2" // {
         dependencies = [
           sources."@expo/spawn-async-1.5.0"
           (sources."cross-spawn-6.0.5" // {
@@ -72740,7 +71201,7 @@ in
       sources."@expo/plist-0.0.20"
       (sources."@expo/plugin-help-5.1.23" // {
         dependencies = [
-          sources."@oclif/core-2.15.0"
+          sources."@oclif/core-2.16.0"
           sources."ansi-styles-4.3.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
@@ -72750,7 +71211,7 @@ in
       })
       (sources."@expo/plugin-warn-if-update-available-2.5.1" // {
         dependencies = [
-          sources."@oclif/core-2.15.0"
+          sources."@oclif/core-2.16.0"
           sources."ansi-styles-4.3.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
@@ -72773,7 +71234,7 @@ in
       })
       sources."@expo/sdk-runtime-versions-1.0.0"
       sources."@expo/spawn-async-1.7.0"
-      (sources."@expo/steps-1.0.85" // {
+      (sources."@expo/steps-1.0.114" // {
         dependencies = [
           sources."@expo/spawn-async-1.7.2"
           sources."arg-5.0.2"
@@ -72803,7 +71264,7 @@ in
       sources."@oclif/linewrap-1.0.0"
       (sources."@oclif/plugin-autocomplete-2.3.10" // {
         dependencies = [
-          sources."@oclif/core-2.15.0"
+          sources."@oclif/core-2.16.0"
           sources."ansi-styles-4.3.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
@@ -72818,18 +71279,18 @@ in
       sources."@sideway/address-4.1.5"
       sources."@sideway/formula-3.0.1"
       sources."@sideway/pinpoint-2.0.0"
-      sources."@swc/core-1.4.8"
+      sources."@swc/core-1.5.24"
       sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.7"
-      sources."@swc/types-0.1.6"
-      sources."@swc/wasm-1.4.8"
-      sources."@tsconfig/node10-1.0.9"
+      sources."@swc/helpers-0.5.11"
+      sources."@swc/types-0.1.7"
+      sources."@swc/wasm-1.5.24"
+      sources."@tsconfig/node10-1.0.11"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
       sources."@types/bunyan-1.8.11"
       sources."@types/cli-progress-3.11.5"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."@urql/core-4.0.11"
       sources."@urql/exchange-retry-1.2.0"
       sources."@xmldom/xmldom-0.7.13"
@@ -72858,7 +71319,7 @@ in
       sources."bplist-creator-0.1.1"
       sources."bplist-parser-0.3.2"
       sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."buffer-equal-constant-time-1.0.1"
       sources."builtins-1.0.3"
       sources."bunyan-1.8.15"
@@ -72895,7 +71356,7 @@ in
       sources."crypt-0.0.2"
       sources."crypto-random-string-1.0.0"
       sources."dateformat-4.6.3"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."defaults-1.0.4"
       sources."define-lazy-prop-2.0.0"
       sources."delayed-stream-1.0.0"
@@ -72906,7 +71367,7 @@ in
       sources."dotenv-16.3.1"
       sources."dtrace-provider-0.8.8"
       sources."ecdsa-sig-formatter-1.0.11"
-      sources."ejs-3.1.9"
+      sources."ejs-3.1.10"
       sources."emoji-regex-8.0.0"
       sources."encoding-0.1.13"
       sources."env-paths-2.2.0"
@@ -72917,7 +71378,7 @@ in
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
       sources."exec-async-2.2.0"
-      (sources."expo-modules-autolinking-1.10.3" // {
+      (sources."expo-modules-autolinking-1.11.1" // {
         dependencies = [
           sources."commander-7.2.0"
           sources."fs-extra-9.1.0"
@@ -72929,7 +71390,7 @@ in
       sources."fetch-retry-4.1.1"
       sources."figures-3.2.0"
       sources."filelist-1.0.4"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."find-up-5.0.0"
       sources."find-yarn-workspace-root-2.0.0"
       sources."form-data-4.0.0"
@@ -72978,7 +71439,7 @@ in
       sources."is-unicode-supported-0.1.0"
       sources."is-wsl-2.2.0"
       sources."isexe-2.0.0"
-      (sources."jake-10.8.7" // {
+      (sources."jake-10.9.1" // {
         dependencies = [
           sources."minimatch-3.1.2"
         ];
@@ -72989,6 +71450,7 @@ in
       sources."join-component-1.1.0"
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.1"
+      sources."jsep-1.3.8"
       sources."json-parse-better-errors-1.0.2"
       sources."json-schema-traverse-1.0.0"
       sources."json5-2.2.3"
@@ -73009,7 +71471,7 @@ in
       sources."make-error-1.3.6"
       sources."md5-2.3.0"
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."mime-3.0.0"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
@@ -73070,6 +71532,7 @@ in
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
       sources."path-type-4.0.0"
+      sources."picocolors-1.0.1"
       sources."picomatch-2.3.1"
       sources."pirates-4.0.6"
       (sources."pkg-dir-4.2.0" // {
@@ -73110,7 +71573,7 @@ in
       sources."safe-buffer-5.2.1"
       sources."safe-json-stringify-1.2.0"
       sources."safer-buffer-2.1.2"
-      sources."sax-1.3.0"
+      sources."sax-1.4.1"
       sources."semver-7.5.4"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
@@ -73142,7 +71605,7 @@ in
           sources."supports-color-7.2.0"
         ];
       })
-      (sources."tar-6.2.0" // {
+      (sources."tar-6.2.1" // {
         dependencies = [
           sources."mkdirp-1.0.4"
         ];
@@ -73166,7 +71629,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."turndown-7.1.2"
       sources."type-fest-0.21.3"
-      sources."typescript-5.4.2"
+      sources."typescript-5.4.5"
       sources."undici-types-5.26.5"
       sources."unique-string-1.0.0"
       sources."universalify-2.0.1"
@@ -73203,9 +71666,10 @@ in
       })
       sources."xmlbuilder-14.0.0"
       sources."yallist-4.0.0"
-      sources."yaml-2.4.1"
+      sources."yaml-2.4.3"
       sources."yn-3.1.1"
       sources."yocto-queue-0.1.0"
+      sources."zod-3.23.8"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -73238,73 +71702,67 @@ in
   emoj = nodeEnv.buildNodePackage {
     name = "emoj";
     packageName = "emoj";
-    version = "4.0.1";
+    version = "4.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/emoj/-/emoj-4.0.1.tgz";
-      sha512 = "mUGLcDWX/DPTwVm6SMWbUOIF2fWOtsRCOFEYxOl/huRHsoX0E72tab9+SLO4yty1T6LQ7dwfTQ5mGkvotYWksA==";
+      url = "https://registry.npmjs.org/emoj/-/emoj-4.1.0.tgz";
+      sha512 = "LFWzwWXTuwdAd018Vjv++MxyKzoZ3Aa12+w/x8IYqlzLajPnJxAxht9amc2wVTqqhYTcWaPczVuJnEyyUbQAdQ==";
     };
     dependencies = [
       sources."@alcalzone/ansi-tokenize-0.1.3"
-      sources."@types/prop-types-15.7.11"
-      sources."@types/react-18.2.67"
-      sources."@types/scheduler-0.16.8"
-      sources."ajv-8.12.0"
+      sources."@types/prop-types-15.7.12"
+      sources."@types/react-18.3.3"
+      sources."ajv-8.15.0"
       sources."ajv-formats-2.1.1"
-      (sources."ansi-escapes-6.2.0" // {
-        dependencies = [
-          sources."type-fest-3.13.1"
-        ];
-      })
+      sources."ansi-escapes-7.0.0"
       sources."ansi-regex-6.0.1"
       sources."ansi-styles-6.2.1"
-      sources."atomically-2.0.2"
+      sources."atomically-2.0.3"
       sources."auto-bind-5.0.1"
       sources."bufferutil-4.0.8"
       sources."chalk-5.3.0"
-      sources."ci-info-3.9.0"
       sources."cli-boxes-3.0.0"
       sources."cli-cursor-4.0.0"
-      (sources."cli-truncate-3.1.0" // {
+      (sources."cli-truncate-4.0.0" // {
         dependencies = [
           sources."slice-ansi-5.0.0"
         ];
       })
       sources."clipboardy-4.0.0"
       sources."code-excerpt-4.0.0"
-      sources."conf-11.0.2"
+      sources."conf-12.0.0"
       sources."convert-to-spaces-2.0.1"
       sources."cross-spawn-7.0.3"
       sources."csstype-3.1.3"
       sources."debounce-fn-5.1.2"
-      sources."dot-prop-7.2.0"
-      sources."eastasianwidth-0.2.0"
-      sources."emoji-regex-9.2.2"
-      sources."emojilib-3.0.11"
+      sources."dot-prop-8.0.2"
+      sources."emoji-regex-10.3.0"
+      sources."emojilib-3.0.12"
       sources."env-paths-3.0.0"
+      sources."environment-1.1.0"
       sources."escape-string-regexp-2.0.0"
       sources."execa-8.0.1"
       sources."fast-deep-equal-3.1.3"
+      sources."fast-uri-2.3.0"
+      sources."get-east-asian-width-1.2.0"
       sources."get-stream-8.0.1"
       sources."human-signals-5.0.0"
       sources."indent-string-5.0.0"
-      (sources."ink-4.4.1" // {
+      (sources."ink-5.0.1" // {
         dependencies = [
           sources."signal-exit-3.0.7"
-          sources."type-fest-0.12.0"
+          sources."type-fest-4.19.0"
         ];
       })
-      (sources."ink-text-input-5.0.1" // {
+      (sources."ink-text-input-6.0.0" // {
         dependencies = [
-          sources."type-fest-3.13.1"
+          sources."type-fest-4.19.0"
         ];
       })
-      sources."is-ci-3.0.1"
       sources."is-docker-3.0.0"
       sources."is-fullwidth-code-point-4.0.0"
+      sources."is-in-ci-0.1.0"
       sources."is-inside-container-1.0.0"
-      sources."is-lower-case-2.0.2"
       sources."is-stream-3.0.0"
-      sources."is-upper-case-2.0.2"
       sources."is-wsl-3.1.0"
       sources."is64bit-2.0.0"
       sources."isexe-2.0.0"
@@ -73313,13 +71771,12 @@ in
       sources."json-schema-typed-8.0.1"
       sources."lodash-4.17.21"
       sources."loose-envify-1.4.0"
-      sources."lru-cache-6.0.0"
       sources."map-age-cleaner-0.1.3"
       sources."mem-9.0.2"
-      sources."meow-12.1.1"
+      sources."meow-13.2.0"
       sources."merge-stream-2.0.0"
       sources."mimic-fn-4.0.0"
-      sources."node-gyp-build-4.8.0"
+      sources."node-gyp-build-4.8.1"
       (sources."npm-run-path-5.3.0" // {
         dependencies = [
           sources."path-key-4.0.0"
@@ -73329,15 +71786,14 @@ in
       sources."p-defer-1.0.0"
       sources."patch-console-2.0.0"
       sources."path-key-3.1.1"
-      sources."punycode-2.3.1"
-      sources."react-18.2.0"
+      sources."react-18.3.1"
       (sources."react-devtools-core-4.28.5" // {
         dependencies = [
           sources."utf-8-validate-5.0.10"
           sources."ws-7.5.9"
         ];
       })
-      sources."react-reconciler-0.29.0"
+      sources."react-reconciler-0.29.2"
       sources."require-from-string-2.0.2"
       (sources."restore-cursor-4.0.0" // {
         dependencies = [
@@ -73346,32 +71802,33 @@ in
           sources."signal-exit-3.0.7"
         ];
       })
-      sources."scheduler-0.23.0"
-      sources."semver-7.6.0"
+      sources."scheduler-0.23.2"
+      sources."semver-7.6.2"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."shell-quote-1.8.1"
       sources."signal-exit-4.1.0"
-      sources."skin-tone-3.0.0"
-      sources."slice-ansi-6.0.0"
+      sources."skin-tone-4.0.0"
+      (sources."slice-ansi-7.1.0" // {
+        dependencies = [
+          sources."is-fullwidth-code-point-5.0.0"
+        ];
+      })
       sources."stack-utils-2.0.6"
-      sources."string-width-5.1.2"
+      sources."string-width-7.1.0"
       sources."strip-ansi-7.1.0"
       sources."strip-final-newline-3.0.0"
       sources."stubborn-fs-1.2.5"
       sources."system-architecture-0.1.0"
-      sources."tslib-2.6.2"
-      sources."type-fest-2.19.0"
-      sources."unicode-emoji-json-0.4.0"
-      sources."unicode-emoji-modifier-base-1.0.0"
-      sources."uri-js-4.4.1"
-      sources."utf-8-validate-6.0.3"
+      sources."type-fest-3.13.1"
+      sources."uint8array-extras-0.3.0"
+      sources."unicode-emoji-json-0.6.0"
+      sources."utf-8-validate-6.0.4"
       sources."when-exit-2.1.2"
       sources."which-2.0.2"
-      sources."widest-line-4.0.1"
-      sources."wrap-ansi-8.1.0"
-      sources."ws-8.16.0"
-      sources."yallist-4.0.0"
+      sources."widest-line-5.0.0"
+      sources."wrap-ansi-9.0.0"
+      sources."ws-8.17.0"
       sources."yoga-wasm-web-0.3.3"
     ];
     buildInputs = globalBuildInputs;
@@ -73422,24 +71879,27 @@ in
   eslint = nodeEnv.buildNodePackage {
     name = "eslint";
     packageName = "eslint";
-    version = "8.57.0";
+    version = "9.4.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz";
-      sha512 = "dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==";
+      url = "https://registry.npmjs.org/eslint/-/eslint-9.4.0.tgz";
+      sha512 = "sjc7Y8cUD1IlwYcTS9qPSvGjAC8Ne9LctpxKKu3x/1IC9bnOg98Zy6GxEJUfr1NojMgVPlyANXYns8oE2c1TAA==";
     };
     dependencies = [
-      sources."@aashutoshrathi/word-wrap-1.2.6"
-      sources."@eslint-community/eslint-utils-4.4.0"
-      sources."@eslint-community/regexpp-4.10.0"
-      sources."@eslint/eslintrc-2.1.4"
-      sources."@eslint/js-8.57.0"
-      sources."@humanwhocodes/config-array-0.11.14"
+      (sources."@eslint-community/eslint-utils-4.4.0" // {
+        dependencies = [
+          sources."eslint-visitor-keys-3.4.3"
+        ];
+      })
+      sources."@eslint-community/regexpp-4.10.1"
+      sources."@eslint/config-array-0.15.1"
+      sources."@eslint/eslintrc-3.1.0"
+      sources."@eslint/js-9.4.0"
+      sources."@eslint/object-schema-2.1.3"
       sources."@humanwhocodes/module-importer-1.0.1"
-      sources."@humanwhocodes/object-schema-2.0.2"
+      sources."@humanwhocodes/retry-0.3.0"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@ungap/structured-clone-1.2.0"
       sources."acorn-8.11.3"
       sources."acorn-jsx-5.3.2"
       sources."ajv-6.12.6"
@@ -73454,14 +71914,13 @@ in
       sources."color-name-1.1.4"
       sources."concat-map-0.0.1"
       sources."cross-spawn-7.0.3"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."deep-is-0.1.4"
-      sources."doctrine-3.0.0"
       sources."escape-string-regexp-4.0.0"
-      sources."eslint-8.57.0"
-      sources."eslint-scope-7.2.2"
-      sources."eslint-visitor-keys-3.4.3"
-      sources."espree-9.6.1"
+      sources."eslint-9.4.0"
+      sources."eslint-scope-8.0.1"
+      sources."eslint-visitor-keys-4.0.0"
+      sources."espree-10.0.1"
       sources."esquery-1.5.0"
       sources."esrecurse-4.3.0"
       sources."estraverse-5.3.0"
@@ -73470,21 +71929,16 @@ in
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
       sources."fastq-1.17.1"
-      sources."file-entry-cache-6.0.1"
+      sources."file-entry-cache-8.0.0"
       sources."find-up-5.0.0"
-      sources."flat-cache-3.2.0"
+      sources."flat-cache-4.0.1"
       sources."flatted-3.3.1"
-      sources."fs.realpath-1.0.0"
-      sources."glob-7.2.3"
       sources."glob-parent-6.0.2"
-      sources."globals-13.24.0"
-      sources."graphemer-1.4.0"
+      sources."globals-14.0.0"
       sources."has-flag-4.0.0"
       sources."ignore-5.3.1"
       sources."import-fresh-3.3.0"
       sources."imurmurhash-0.1.4"
-      sources."inflight-1.0.6"
-      sources."inherits-2.0.4"
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.3"
       sources."is-path-inside-3.0.3"
@@ -73500,20 +71954,17 @@ in
       sources."minimatch-3.1.2"
       sources."ms-2.1.2"
       sources."natural-compare-1.4.0"
-      sources."once-1.4.0"
-      sources."optionator-0.9.3"
+      sources."optionator-0.9.4"
       sources."p-limit-3.1.0"
       sources."p-locate-5.0.0"
       sources."parent-module-1.0.1"
       sources."path-exists-4.0.0"
-      sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
       sources."prelude-ls-1.2.1"
       sources."punycode-2.3.1"
       sources."queue-microtask-1.2.3"
       sources."resolve-from-4.0.0"
       sources."reusify-1.0.4"
-      sources."rimraf-3.0.2"
       sources."run-parallel-1.2.0"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
@@ -73522,10 +71973,9 @@ in
       sources."supports-color-7.2.0"
       sources."text-table-0.2.0"
       sources."type-check-0.4.0"
-      sources."type-fest-0.20.2"
       sources."uri-js-4.4.1"
       sources."which-2.0.2"
-      sources."wrappy-1.0.2"
+      sources."word-wrap-1.2.5"
       sources."yocto-queue-0.1.0"
     ];
     buildInputs = globalBuildInputs;
@@ -73566,67 +72016,67 @@ in
     dependencies = [
       sources."@ampproject/remapping-2.3.0"
       sources."@babel/code-frame-7.10.4"
-      sources."@babel/compat-data-7.23.5"
-      (sources."@babel/core-7.24.0" // {
+      sources."@babel/compat-data-7.24.6"
+      (sources."@babel/core-7.24.6" // {
         dependencies = [
-          sources."@babel/code-frame-7.23.5"
-          sources."chalk-2.4.2"
+          sources."@babel/code-frame-7.24.6"
           sources."json5-2.2.3"
           sources."semver-6.3.1"
         ];
       })
-      sources."@babel/generator-7.23.6"
-      sources."@babel/helper-annotate-as-pure-7.22.5"
-      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.22.15"
-      (sources."@babel/helper-compilation-targets-7.23.6" // {
+      sources."@babel/generator-7.24.6"
+      sources."@babel/helper-annotate-as-pure-7.24.6"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.24.6"
+      (sources."@babel/helper-compilation-targets-7.24.6" // {
         dependencies = [
           sources."lru-cache-5.1.1"
           sources."semver-6.3.1"
           sources."yallist-3.1.1"
         ];
       })
-      (sources."@babel/helper-create-class-features-plugin-7.24.0" // {
+      (sources."@babel/helper-create-class-features-plugin-7.24.6" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      (sources."@babel/helper-create-regexp-features-plugin-7.22.15" // {
+      (sources."@babel/helper-create-regexp-features-plugin-7.24.6" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      sources."@babel/helper-define-polyfill-provider-0.6.1"
-      sources."@babel/helper-environment-visitor-7.22.20"
-      sources."@babel/helper-function-name-7.23.0"
-      sources."@babel/helper-hoist-variables-7.22.5"
-      sources."@babel/helper-member-expression-to-functions-7.23.0"
-      sources."@babel/helper-module-imports-7.22.15"
-      sources."@babel/helper-module-transforms-7.23.3"
-      sources."@babel/helper-optimise-call-expression-7.22.5"
-      sources."@babel/helper-plugin-utils-7.24.0"
-      sources."@babel/helper-remap-async-to-generator-7.22.20"
-      sources."@babel/helper-replace-supers-7.22.20"
-      sources."@babel/helper-simple-access-7.22.5"
-      sources."@babel/helper-skip-transparent-expression-wrappers-7.22.5"
-      sources."@babel/helper-split-export-declaration-7.22.6"
-      sources."@babel/helper-string-parser-7.23.4"
-      sources."@babel/helper-validator-identifier-7.22.20"
-      sources."@babel/helper-validator-option-7.23.5"
-      sources."@babel/helper-wrap-function-7.22.20"
-      sources."@babel/helpers-7.24.0"
-      (sources."@babel/highlight-7.23.4" // {
+      sources."@babel/helper-define-polyfill-provider-0.6.2"
+      sources."@babel/helper-environment-visitor-7.24.6"
+      sources."@babel/helper-function-name-7.24.6"
+      sources."@babel/helper-hoist-variables-7.24.6"
+      sources."@babel/helper-member-expression-to-functions-7.24.6"
+      sources."@babel/helper-module-imports-7.24.6"
+      sources."@babel/helper-module-transforms-7.24.6"
+      sources."@babel/helper-optimise-call-expression-7.24.6"
+      sources."@babel/helper-plugin-utils-7.24.6"
+      sources."@babel/helper-remap-async-to-generator-7.24.6"
+      sources."@babel/helper-replace-supers-7.24.6"
+      sources."@babel/helper-simple-access-7.24.6"
+      sources."@babel/helper-skip-transparent-expression-wrappers-7.24.6"
+      sources."@babel/helper-split-export-declaration-7.24.6"
+      sources."@babel/helper-string-parser-7.24.6"
+      sources."@babel/helper-validator-identifier-7.24.6"
+      sources."@babel/helper-validator-option-7.24.6"
+      sources."@babel/helper-wrap-function-7.24.6"
+      sources."@babel/helpers-7.24.6"
+      (sources."@babel/highlight-7.24.6" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.24.0"
-      sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3"
-      sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3"
-      sources."@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7"
+      sources."@babel/parser-7.24.6"
+      sources."@babel/plugin-bugfix-firefox-class-in-computed-class-key-7.24.6"
+      sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.6"
+      sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.6"
+      sources."@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.6"
       sources."@babel/plugin-proposal-async-generator-functions-7.20.7"
       sources."@babel/plugin-proposal-class-properties-7.18.6"
-      sources."@babel/plugin-proposal-decorators-7.24.0"
-      sources."@babel/plugin-proposal-export-default-from-7.23.3"
+      sources."@babel/plugin-proposal-decorators-7.24.6"
+      sources."@babel/plugin-proposal-export-default-from-7.24.6"
       sources."@babel/plugin-proposal-nullish-coalescing-operator-7.18.6"
       sources."@babel/plugin-proposal-object-rest-spread-7.20.7"
       sources."@babel/plugin-proposal-optional-catch-binding-7.18.6"
@@ -73635,16 +72085,16 @@ in
       sources."@babel/plugin-syntax-async-generators-7.8.4"
       sources."@babel/plugin-syntax-class-properties-7.12.13"
       sources."@babel/plugin-syntax-class-static-block-7.14.5"
-      sources."@babel/plugin-syntax-decorators-7.24.0"
+      sources."@babel/plugin-syntax-decorators-7.24.6"
       sources."@babel/plugin-syntax-dynamic-import-7.8.3"
-      sources."@babel/plugin-syntax-export-default-from-7.23.3"
+      sources."@babel/plugin-syntax-export-default-from-7.24.6"
       sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
-      sources."@babel/plugin-syntax-flow-7.23.3"
-      sources."@babel/plugin-syntax-import-assertions-7.23.3"
-      sources."@babel/plugin-syntax-import-attributes-7.23.3"
+      sources."@babel/plugin-syntax-flow-7.24.6"
+      sources."@babel/plugin-syntax-import-assertions-7.24.6"
+      sources."@babel/plugin-syntax-import-attributes-7.24.6"
       sources."@babel/plugin-syntax-import-meta-7.10.4"
       sources."@babel/plugin-syntax-json-strings-7.8.3"
-      sources."@babel/plugin-syntax-jsx-7.23.3"
+      sources."@babel/plugin-syntax-jsx-7.24.6"
       sources."@babel/plugin-syntax-logical-assignment-operators-7.10.4"
       sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3"
       sources."@babel/plugin-syntax-numeric-separator-7.10.4"
@@ -73653,68 +72103,68 @@ in
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
       sources."@babel/plugin-syntax-private-property-in-object-7.14.5"
       sources."@babel/plugin-syntax-top-level-await-7.14.5"
-      sources."@babel/plugin-syntax-typescript-7.23.3"
+      sources."@babel/plugin-syntax-typescript-7.24.6"
       sources."@babel/plugin-syntax-unicode-sets-regex-7.18.6"
-      sources."@babel/plugin-transform-arrow-functions-7.23.3"
-      sources."@babel/plugin-transform-async-generator-functions-7.23.9"
-      sources."@babel/plugin-transform-async-to-generator-7.23.3"
-      sources."@babel/plugin-transform-block-scoped-functions-7.23.3"
-      sources."@babel/plugin-transform-block-scoping-7.23.4"
-      sources."@babel/plugin-transform-class-properties-7.23.3"
-      sources."@babel/plugin-transform-class-static-block-7.23.4"
-      sources."@babel/plugin-transform-classes-7.23.8"
-      sources."@babel/plugin-transform-computed-properties-7.23.3"
-      sources."@babel/plugin-transform-destructuring-7.23.3"
-      sources."@babel/plugin-transform-dotall-regex-7.23.3"
-      sources."@babel/plugin-transform-duplicate-keys-7.23.3"
-      sources."@babel/plugin-transform-dynamic-import-7.23.4"
-      sources."@babel/plugin-transform-exponentiation-operator-7.23.3"
-      sources."@babel/plugin-transform-export-namespace-from-7.23.4"
-      sources."@babel/plugin-transform-flow-strip-types-7.23.3"
-      sources."@babel/plugin-transform-for-of-7.23.6"
-      sources."@babel/plugin-transform-function-name-7.23.3"
-      sources."@babel/plugin-transform-json-strings-7.23.4"
-      sources."@babel/plugin-transform-literals-7.23.3"
-      sources."@babel/plugin-transform-logical-assignment-operators-7.23.4"
-      sources."@babel/plugin-transform-member-expression-literals-7.23.3"
-      sources."@babel/plugin-transform-modules-amd-7.23.3"
-      sources."@babel/plugin-transform-modules-commonjs-7.23.3"
-      sources."@babel/plugin-transform-modules-systemjs-7.23.9"
-      sources."@babel/plugin-transform-modules-umd-7.23.3"
-      sources."@babel/plugin-transform-named-capturing-groups-regex-7.22.5"
-      sources."@babel/plugin-transform-new-target-7.23.3"
-      sources."@babel/plugin-transform-nullish-coalescing-operator-7.23.4"
-      sources."@babel/plugin-transform-numeric-separator-7.23.4"
-      sources."@babel/plugin-transform-object-rest-spread-7.24.0"
-      sources."@babel/plugin-transform-object-super-7.23.3"
-      sources."@babel/plugin-transform-optional-catch-binding-7.23.4"
-      sources."@babel/plugin-transform-optional-chaining-7.23.4"
-      sources."@babel/plugin-transform-parameters-7.23.3"
-      sources."@babel/plugin-transform-private-methods-7.23.3"
-      sources."@babel/plugin-transform-private-property-in-object-7.23.4"
-      sources."@babel/plugin-transform-property-literals-7.23.3"
-      sources."@babel/plugin-transform-react-display-name-7.23.3"
-      sources."@babel/plugin-transform-react-jsx-7.23.4"
-      sources."@babel/plugin-transform-react-jsx-self-7.23.3"
-      sources."@babel/plugin-transform-react-jsx-source-7.23.3"
-      sources."@babel/plugin-transform-regenerator-7.23.3"
-      sources."@babel/plugin-transform-reserved-words-7.23.3"
-      (sources."@babel/plugin-transform-runtime-7.24.0" // {
+      sources."@babel/plugin-transform-arrow-functions-7.24.6"
+      sources."@babel/plugin-transform-async-generator-functions-7.24.6"
+      sources."@babel/plugin-transform-async-to-generator-7.24.6"
+      sources."@babel/plugin-transform-block-scoped-functions-7.24.6"
+      sources."@babel/plugin-transform-block-scoping-7.24.6"
+      sources."@babel/plugin-transform-class-properties-7.24.6"
+      sources."@babel/plugin-transform-class-static-block-7.24.6"
+      sources."@babel/plugin-transform-classes-7.24.6"
+      sources."@babel/plugin-transform-computed-properties-7.24.6"
+      sources."@babel/plugin-transform-destructuring-7.24.6"
+      sources."@babel/plugin-transform-dotall-regex-7.24.6"
+      sources."@babel/plugin-transform-duplicate-keys-7.24.6"
+      sources."@babel/plugin-transform-dynamic-import-7.24.6"
+      sources."@babel/plugin-transform-exponentiation-operator-7.24.6"
+      sources."@babel/plugin-transform-export-namespace-from-7.24.6"
+      sources."@babel/plugin-transform-flow-strip-types-7.24.6"
+      sources."@babel/plugin-transform-for-of-7.24.6"
+      sources."@babel/plugin-transform-function-name-7.24.6"
+      sources."@babel/plugin-transform-json-strings-7.24.6"
+      sources."@babel/plugin-transform-literals-7.24.6"
+      sources."@babel/plugin-transform-logical-assignment-operators-7.24.6"
+      sources."@babel/plugin-transform-member-expression-literals-7.24.6"
+      sources."@babel/plugin-transform-modules-amd-7.24.6"
+      sources."@babel/plugin-transform-modules-commonjs-7.24.6"
+      sources."@babel/plugin-transform-modules-systemjs-7.24.6"
+      sources."@babel/plugin-transform-modules-umd-7.24.6"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.24.6"
+      sources."@babel/plugin-transform-new-target-7.24.6"
+      sources."@babel/plugin-transform-nullish-coalescing-operator-7.24.6"
+      sources."@babel/plugin-transform-numeric-separator-7.24.6"
+      sources."@babel/plugin-transform-object-rest-spread-7.24.6"
+      sources."@babel/plugin-transform-object-super-7.24.6"
+      sources."@babel/plugin-transform-optional-catch-binding-7.24.6"
+      sources."@babel/plugin-transform-optional-chaining-7.24.6"
+      sources."@babel/plugin-transform-parameters-7.24.6"
+      sources."@babel/plugin-transform-private-methods-7.24.6"
+      sources."@babel/plugin-transform-private-property-in-object-7.24.6"
+      sources."@babel/plugin-transform-property-literals-7.24.6"
+      sources."@babel/plugin-transform-react-display-name-7.24.6"
+      sources."@babel/plugin-transform-react-jsx-7.24.6"
+      sources."@babel/plugin-transform-react-jsx-self-7.24.6"
+      sources."@babel/plugin-transform-react-jsx-source-7.24.6"
+      sources."@babel/plugin-transform-regenerator-7.24.6"
+      sources."@babel/plugin-transform-reserved-words-7.24.6"
+      (sources."@babel/plugin-transform-runtime-7.24.6" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      sources."@babel/plugin-transform-shorthand-properties-7.23.3"
-      sources."@babel/plugin-transform-spread-7.23.3"
-      sources."@babel/plugin-transform-sticky-regex-7.23.3"
-      sources."@babel/plugin-transform-template-literals-7.23.3"
-      sources."@babel/plugin-transform-typeof-symbol-7.23.3"
-      sources."@babel/plugin-transform-typescript-7.23.6"
-      sources."@babel/plugin-transform-unicode-escapes-7.23.3"
-      sources."@babel/plugin-transform-unicode-property-regex-7.23.3"
-      sources."@babel/plugin-transform-unicode-regex-7.23.3"
-      sources."@babel/plugin-transform-unicode-sets-regex-7.23.3"
-      (sources."@babel/preset-env-7.24.0" // {
+      sources."@babel/plugin-transform-shorthand-properties-7.24.6"
+      sources."@babel/plugin-transform-spread-7.24.6"
+      sources."@babel/plugin-transform-sticky-regex-7.24.6"
+      sources."@babel/plugin-transform-template-literals-7.24.6"
+      sources."@babel/plugin-transform-typeof-symbol-7.24.6"
+      sources."@babel/plugin-transform-typescript-7.24.6"
+      sources."@babel/plugin-transform-unicode-escapes-7.24.6"
+      sources."@babel/plugin-transform-unicode-property-regex-7.24.6"
+      sources."@babel/plugin-transform-unicode-regex-7.24.6"
+      sources."@babel/plugin-transform-unicode-sets-regex-7.24.6"
+      (sources."@babel/preset-env-7.24.6" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
@@ -73722,25 +72172,22 @@ in
       sources."@babel/preset-modules-0.1.6-no-external-plugins"
       sources."@babel/regjsgen-0.8.0"
       sources."@babel/runtime-7.9.0"
-      (sources."@babel/template-7.24.0" // {
+      (sources."@babel/template-7.24.6" // {
         dependencies = [
-          sources."@babel/code-frame-7.23.5"
-          sources."chalk-2.4.2"
+          sources."@babel/code-frame-7.24.6"
         ];
       })
-      (sources."@babel/traverse-7.24.0" // {
+      (sources."@babel/traverse-7.24.6" // {
         dependencies = [
-          sources."@babel/code-frame-7.23.5"
-          sources."chalk-2.4.2"
+          sources."@babel/code-frame-7.24.6"
         ];
       })
-      sources."@babel/types-7.24.0"
-      sources."@colors/colors-1.5.0"
+      sources."@babel/types-7.24.6"
       sources."@expo/apple-utils-1.0.0"
       sources."@expo/bunyan-4.0.0"
       (sources."@expo/cli-0.7.3" // {
         dependencies = [
-          sources."@babel/runtime-7.24.0"
+          sources."@babel/runtime-7.24.6"
           (sources."@expo/config-8.0.5" // {
             dependencies = [
               sources."semver-7.3.2"
@@ -73748,21 +72195,33 @@ in
           })
           (sources."@expo/config-plugins-6.0.2" // {
             dependencies = [
-              sources."semver-7.6.0"
+              sources."semver-7.6.2"
             ];
           })
           sources."@expo/config-types-48.0.0"
           (sources."@expo/dev-server-0.3.0" // {
             dependencies = [
               sources."fs-extra-9.0.0"
+              (sources."jsonfile-6.1.0" // {
+                dependencies = [
+                  sources."universalify-2.0.1"
+                ];
+              })
               sources."semver-7.3.2"
+              sources."universalify-1.0.0"
             ];
           })
           (sources."@expo/image-utils-0.3.22" // {
             dependencies = [
               sources."fs-extra-9.0.0"
+              (sources."jsonfile-6.1.0" // {
+                dependencies = [
+                  sources."universalify-2.0.1"
+                ];
+              })
               sources."semver-7.3.2"
               sources."tempy-0.3.0"
+              sources."universalify-1.0.0"
             ];
           })
           sources."@expo/metro-config-0.7.1"
@@ -73770,6 +72229,7 @@ in
           (sources."@expo/prebuild-config-6.0.1" // {
             dependencies = [
               sources."fs-extra-9.1.0"
+              sources."jsonfile-6.1.0"
               sources."semver-7.3.2"
               sources."universalify-2.0.1"
             ];
@@ -73777,13 +72237,8 @@ in
           sources."ansi-regex-5.0.1"
           sources."bplist-parser-0.3.2"
           sources."form-data-3.0.1"
-          (sources."fs-extra-8.1.0" // {
-            dependencies = [
-              sources."universalify-0.1.2"
-            ];
-          })
+          sources."fs-extra-8.1.0"
           sources."jsonfile-4.0.0"
-          sources."lru-cache-6.0.0"
           sources."node-forge-1.3.1"
           (sources."npm-package-arg-7.0.0" // {
             dependencies = [
@@ -73794,7 +72249,7 @@ in
           sources."semver-6.3.1"
           sources."temp-dir-1.0.0"
           sources."type-fest-0.3.1"
-          sources."universalify-1.0.0"
+          sources."universalify-0.1.2"
         ];
       })
       (sources."@expo/code-signing-certificates-0.0.5" // {
@@ -73811,13 +72266,12 @@ in
         dependencies = [
           sources."@expo/json-file-8.2.36"
           sources."@expo/plist-0.0.18"
-          sources."lru-cache-6.0.0"
-          sources."semver-7.6.0"
+          sources."semver-7.6.2"
         ];
       })
       sources."@expo/config-types-45.0.0"
       sources."@expo/dev-server-0.2.0"
-      (sources."@expo/devcert-1.1.0" // {
+      (sources."@expo/devcert-1.1.2" // {
         dependencies = [
           sources."debug-3.2.7"
           sources."rimraf-2.7.1"
@@ -73841,8 +72295,7 @@ in
           sources."@expo/config-8.0.5"
           sources."@expo/config-plugins-6.0.2"
           sources."@expo/config-types-48.0.0"
-          sources."lru-cache-6.0.0"
-          sources."semver-7.6.0"
+          sources."semver-7.6.2"
         ];
       })
       sources."@expo/osascript-2.0.33"
@@ -73903,18 +72356,17 @@ in
       sources."@jridgewell/source-map-0.3.6"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.25"
-      sources."@leichtgewicht/ip-codec-2.0.4"
-      sources."@module-federation/runtime-0.0.8"
-      sources."@module-federation/runtime-tools-0.0.8"
-      sources."@module-federation/sdk-0.0.8"
-      sources."@module-federation/webpack-bundler-runtime-0.0.8"
+      sources."@leichtgewicht/ip-codec-2.0.5"
+      sources."@module-federation/runtime-0.1.6"
+      sources."@module-federation/runtime-tools-0.1.6"
+      sources."@module-federation/sdk-0.1.6"
+      sources."@module-federation/webpack-bundler-runtime-0.1.6"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
       (sources."@npmcli/fs-1.1.1" // {
         dependencies = [
-          sources."lru-cache-6.0.0"
-          sources."semver-7.6.0"
+          sources."semver-7.6.2"
         ];
       })
       (sources."@npmcli/move-file-1.1.2" // {
@@ -73924,27 +72376,23 @@ in
         ];
       })
       sources."@react-native/normalize-color-2.1.0"
-      sources."@rspack/binding-0.5.7"
-      sources."@rspack/binding-darwin-arm64-0.5.7"
-      sources."@rspack/binding-darwin-x64-0.5.7"
-      sources."@rspack/binding-linux-arm64-gnu-0.5.7"
-      sources."@rspack/binding-linux-arm64-musl-0.5.7"
-      sources."@rspack/binding-linux-x64-gnu-0.5.7"
-      sources."@rspack/binding-linux-x64-musl-0.5.7"
-      sources."@rspack/binding-win32-arm64-msvc-0.5.7"
-      sources."@rspack/binding-win32-ia32-msvc-0.5.7"
-      sources."@rspack/binding-win32-x64-msvc-0.5.7"
-      (sources."@rspack/core-0.5.7" // {
-        dependencies = [
-          sources."graceful-fs-4.2.10"
-        ];
-      })
+      sources."@rspack/binding-0.7.0"
+      sources."@rspack/binding-darwin-arm64-0.7.0"
+      sources."@rspack/binding-darwin-x64-0.7.0"
+      sources."@rspack/binding-linux-arm64-gnu-0.7.0"
+      sources."@rspack/binding-linux-arm64-musl-0.7.0"
+      sources."@rspack/binding-linux-x64-gnu-0.7.0"
+      sources."@rspack/binding-linux-x64-musl-0.7.0"
+      sources."@rspack/binding-win32-arm64-msvc-0.7.0"
+      sources."@rspack/binding-win32-ia32-msvc-0.7.0"
+      sources."@rspack/binding-win32-x64-msvc-0.7.0"
+      sources."@rspack/core-0.7.0"
       sources."@segment/loosely-validate-event-2.0.0"
       sources."@sideway/address-4.1.5"
       sources."@sideway/formula-3.0.1"
       sources."@sideway/pinpoint-2.0.0"
       sources."@sindresorhus/is-4.6.0"
-      sources."@swc/helpers-0.5.7"
+      sources."@swc/helpers-0.5.11"
       sources."@szmarczak/http-timer-4.0.6"
       sources."@trysound/sax-0.2.0"
       sources."@types/body-parser-1.19.5"
@@ -73952,11 +72400,11 @@ in
       sources."@types/cacheable-request-6.0.3"
       sources."@types/connect-3.4.38"
       sources."@types/connect-history-api-fallback-1.5.4"
-      sources."@types/eslint-8.56.5"
+      sources."@types/eslint-8.56.10"
       sources."@types/eslint-scope-3.7.7"
       sources."@types/estree-1.0.5"
       sources."@types/express-4.17.21"
-      sources."@types/express-serve-static-core-4.17.43"
+      sources."@types/express-serve-static-core-4.19.3"
       sources."@types/glob-7.2.0"
       sources."@types/html-minifier-terser-6.1.0"
       sources."@types/http-cache-semantics-4.0.4"
@@ -73969,15 +72417,15 @@ in
       sources."@types/keyv-3.1.4"
       sources."@types/mime-1.3.5"
       sources."@types/minimatch-5.1.2"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."@types/node-forge-1.3.11"
-      sources."@types/qs-6.9.13"
+      sources."@types/qs-6.9.15"
       sources."@types/range-parser-1.2.7"
       sources."@types/responselike-1.0.3"
       sources."@types/retry-0.12.5"
       sources."@types/send-0.17.4"
       sources."@types/serve-index-1.9.4"
-      sources."@types/serve-static-1.15.5"
+      sources."@types/serve-static-1.15.7"
       sources."@types/sockjs-0.3.36"
       sources."@types/ws-8.5.10"
       sources."@types/yargs-15.0.19"
@@ -74008,7 +72456,7 @@ in
       sources."acorn-import-assertions-1.9.0"
       sources."agent-base-6.0.2"
       sources."aggregate-error-3.1.0"
-      sources."ajv-8.12.0"
+      sources."ajv-8.15.0"
       sources."ajv-formats-2.1.1"
       (sources."ajv-keywords-3.5.2" // {
         dependencies = [
@@ -74035,32 +72483,27 @@ in
       sources."application-config-path-0.1.1"
       sources."arg-4.1.0"
       sources."argparse-2.0.1"
+      sources."array-buffer-byte-length-1.0.1"
       sources."array-flatten-1.1.1"
       sources."array-union-2.1.0"
       sources."array-uniq-1.0.3"
+      sources."arraybuffer.prototype.slice-1.0.3"
       sources."arrify-2.0.1"
       sources."asap-2.0.6"
       sources."async-1.5.2"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
+      sources."available-typed-arrays-1.0.7"
       sources."axios-0.21.1"
       sources."babel-loader-8.3.0"
       sources."babel-plugin-module-resolver-4.1.0"
-      (sources."babel-plugin-polyfill-corejs2-0.4.10" // {
+      (sources."babel-plugin-polyfill-corejs2-0.4.11" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      (sources."babel-plugin-polyfill-corejs3-0.9.0" // {
-        dependencies = [
-          sources."@babel/helper-define-polyfill-provider-0.5.0"
-        ];
-      })
-      (sources."babel-plugin-polyfill-regenerator-0.5.5" // {
-        dependencies = [
-          sources."@babel/helper-define-polyfill-provider-0.5.0"
-        ];
-      })
+      sources."babel-plugin-polyfill-corejs3-0.10.4"
+      sources."babel-plugin-polyfill-regenerator-0.6.2"
       sources."babel-plugin-react-native-web-0.18.12"
       sources."babel-preset-expo-9.3.2"
       sources."balanced-match-1.0.2"
@@ -74089,7 +72532,7 @@ in
       sources."bplist-creator-0.1.1"
       sources."bplist-parser-0.2.0"
       sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."browserslist-4.23.0"
       sources."buffer-alloc-1.2.0"
       sources."buffer-alloc-unsafe-1.1.0"
@@ -74112,7 +72555,7 @@ in
       sources."camel-case-4.1.2"
       sources."camelcase-6.3.0"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001599"
+      sources."caniuse-lite-1.0.30001627"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -74125,7 +72568,7 @@ in
       sources."charenc-0.0.2"
       sources."chokidar-3.6.0"
       sources."chownr-2.0.0"
-      sources."chrome-trace-event-1.0.3"
+      sources."chrome-trace-event-1.0.4"
       sources."ci-info-3.9.0"
       sources."clean-css-5.3.3"
       sources."clean-stack-2.2.0"
@@ -74142,7 +72585,7 @@ in
       sources."cli-boxes-2.2.1"
       sources."cli-cursor-2.1.0"
       sources."cli-spinners-2.9.2"
-      (sources."cli-table3-0.6.3" // {
+      (sources."cli-table3-0.6.5" // {
         dependencies = [
           sources."emoji-regex-8.0.0"
           sources."string-width-4.2.3"
@@ -74193,17 +72636,16 @@ in
           sources."slash-4.0.0"
         ];
       })
-      sources."core-js-compat-3.36.1"
+      sources."core-js-compat-3.37.1"
       sources."core-util-is-1.0.3"
       sources."cross-fetch-3.1.8"
       sources."cross-spawn-7.0.3"
       sources."crypt-0.0.2"
       sources."crypto-random-string-1.0.0"
       sources."css-declaration-sorter-6.4.1"
-      (sources."css-loader-6.10.0" // {
+      (sources."css-loader-6.11.0" // {
         dependencies = [
-          sources."lru-cache-6.0.0"
-          sources."semver-7.6.0"
+          sources."semver-7.6.2"
         ];
       })
       (sources."css-minimizer-webpack-plugin-3.4.1" // {
@@ -74221,8 +72663,11 @@ in
       sources."cssnano-utils-3.1.0"
       sources."csso-4.2.0"
       sources."dag-map-1.0.2"
+      sources."data-view-buffer-1.0.1"
+      sources."data-view-byte-length-1.0.1"
+      sources."data-view-byte-offset-1.0.0"
       sources."dateformat-3.0.3"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."decache-4.4.0"
       (sources."decompress-response-6.0.0" // {
         dependencies = [
@@ -74236,6 +72681,7 @@ in
       sources."defer-to-connect-2.0.1"
       sources."define-data-property-1.1.4"
       sources."define-lazy-prop-2.0.0"
+      sources."define-properties-1.2.1"
       (sources."del-6.1.1" // {
         dependencies = [
           sources."rimraf-3.0.2"
@@ -74257,7 +72703,7 @@ in
       sources."duplexer3-0.1.5"
       sources."eastasianwidth-0.2.0"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.4.710"
+      sources."electron-to-chromium-1.4.789"
       sources."emoji-regex-9.2.2"
       sources."emojis-list-3.0.0"
       sources."encodeurl-1.0.2"
@@ -74267,13 +72713,17 @@ in
         ];
       })
       sources."end-of-stream-1.4.4"
-      sources."enhanced-resolve-5.12.0"
+      sources."enhanced-resolve-5.16.1"
       sources."entities-2.2.0"
       sources."env-editor-0.4.2"
       sources."eol-0.9.1"
+      sources."es-abstract-1.23.3"
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
-      sources."es-module-lexer-1.4.1"
+      sources."es-module-lexer-1.5.3"
+      sources."es-object-atoms-1.0.0"
+      sources."es-set-tostringtag-2.0.3"
+      sources."es-to-primitive-1.2.1"
       sources."escalade-3.1.2"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-1.0.5"
@@ -74304,26 +72754,25 @@ in
       })
       (sources."expo-48.0.21" // {
         dependencies = [
-          sources."@babel/runtime-7.24.0"
+          sources."@babel/runtime-7.24.6"
           (sources."@expo/config-8.0.5" // {
             dependencies = [
               sources."semver-7.3.2"
             ];
           })
-          sources."@expo/config-plugins-6.0.2"
-          sources."@expo/config-types-48.0.0"
-          sources."commander-7.2.0"
-          (sources."cross-spawn-6.0.5" // {
+          (sources."@expo/config-plugins-6.0.2" // {
             dependencies = [
-              sources."semver-5.7.2"
+              sources."semver-7.6.2"
             ];
           })
+          sources."@expo/config-types-48.0.0"
+          sources."commander-7.2.0"
+          sources."cross-spawn-6.0.5"
           sources."expo-modules-autolinking-1.2.0"
           sources."fs-extra-9.1.0"
-          sources."lru-cache-6.0.0"
           sources."path-key-2.0.1"
           sources."regenerator-runtime-0.14.1"
-          sources."semver-7.6.0"
+          sources."semver-5.7.2"
           sources."shebang-command-1.2.0"
           sources."shebang-regex-1.0.0"
           sources."uuid-3.4.0"
@@ -74338,8 +72787,7 @@ in
           sources."@expo/config-types-48.0.0"
           sources."expo-constants-14.3.0"
           sources."expo-file-system-15.3.0"
-          sources."lru-cache-6.0.0"
-          sources."semver-7.6.0"
+          sources."semver-7.6.2"
           sources."uuid-3.4.0"
         ];
       })
@@ -74348,8 +72796,7 @@ in
           sources."@expo/config-8.0.5"
           sources."@expo/config-plugins-6.0.2"
           sources."@expo/config-types-48.0.0"
-          sources."lru-cache-6.0.0"
-          sources."semver-7.6.0"
+          sources."semver-7.6.2"
           sources."uuid-3.4.0"
         ];
       })
@@ -74401,13 +72848,14 @@ in
       sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.3.2"
       sources."fast-json-stable-stringify-2.1.0"
+      sources."fast-uri-2.3.0"
       sources."fastq-1.17.1"
       sources."faye-websocket-0.11.4"
       sources."fbemitter-3.0.0"
       sources."fbjs-3.0.5"
       sources."fbjs-css-vars-1.0.2"
       sources."fetch-retry-4.1.1"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       (sources."finalhandler-1.1.2" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -74416,9 +72864,8 @@ in
           sources."statuses-1.5.0"
         ];
       })
-      (sources."find-babel-config-1.2.0" // {
+      (sources."find-babel-config-1.2.2" // {
         dependencies = [
-          sources."json5-0.5.1"
           sources."path-exists-3.0.0"
         ];
       })
@@ -74427,6 +72874,7 @@ in
       sources."find-yarn-workspace-root-2.0.0"
       sources."follow-redirects-1.15.6"
       sources."fontfaceobserver-2.3.0"
+      sources."for-each-0.3.3"
       (sources."foreground-child-3.1.1" // {
         dependencies = [
           sources."signal-exit-4.1.0"
@@ -74442,18 +72890,22 @@ in
         ];
       })
       sources."fs-minipass-2.1.0"
-      sources."fs-monkey-1.0.5"
+      sources."fs-monkey-1.0.6"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.2"
+      sources."function.prototype.name-1.1.6"
+      sources."functions-have-names-1.2.3"
       sources."gensync-1.0.0-beta.2"
       sources."get-intrinsic-1.2.4"
       sources."get-port-3.2.0"
       sources."get-stream-5.2.0"
+      sources."get-symbol-description-1.0.2"
       sources."getenv-1.0.0"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.2"
       sources."glob-to-regexp-0.4.1"
       sources."globals-11.12.0"
+      sources."globalthis-1.0.4"
       sources."globby-11.1.0"
       sources."gopd-1.0.1"
       sources."got-11.8.6"
@@ -74461,10 +72913,12 @@ in
       sources."graphql-15.8.0"
       sources."graphql-tag-2.12.6"
       sources."handle-thing-2.0.1"
+      sources."has-bigints-1.0.2"
       sources."has-flag-3.0.0"
       sources."has-property-descriptors-1.0.2"
       sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
+      sources."has-tostringtag-1.0.2"
       sources."hasbin-1.2.3"
       sources."hashids-1.1.4"
       sources."hasown-2.0.2"
@@ -74502,12 +72956,19 @@ in
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
       sources."internal-ip-4.3.0"
+      sources."internal-slot-1.0.7"
       sources."invariant-2.2.4"
       sources."ip-regex-2.1.0"
       sources."ipaddr.js-1.9.1"
+      sources."is-array-buffer-3.0.4"
+      sources."is-bigint-1.0.4"
       sources."is-binary-path-2.1.0"
+      sources."is-boolean-object-1.1.2"
       sources."is-buffer-1.1.6"
+      sources."is-callable-1.2.7"
       sources."is-core-module-2.13.1"
+      sources."is-data-view-1.0.1"
+      sources."is-date-object-1.0.5"
       sources."is-docker-2.2.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
@@ -74518,7 +72979,9 @@ in
           sources."is-glob-2.0.1"
         ];
       })
+      sources."is-negative-zero-2.0.3"
       sources."is-number-7.0.0"
+      sources."is-number-object-1.0.7"
       sources."is-path-cwd-2.2.0"
       (sources."is-path-in-cwd-2.1.0" // {
         dependencies = [
@@ -74551,13 +73014,19 @@ in
           sources."responselike-1.0.2"
         ];
       })
+      sources."is-regex-1.1.4"
       sources."is-root-2.1.0"
+      sources."is-shared-array-buffer-1.0.3"
       sources."is-stream-2.0.1"
+      sources."is-string-1.0.7"
+      sources."is-symbol-1.0.4"
+      sources."is-typed-array-1.1.13"
       sources."is-valid-path-0.1.1"
+      sources."is-weakref-1.0.2"
       sources."is-wsl-2.2.0"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
-      sources."jackspeak-2.3.6"
+      sources."jackspeak-3.2.3"
       (sources."jest-worker-27.5.1" // {
         dependencies = [
           sources."has-flag-4.0.0"
@@ -74565,7 +73034,7 @@ in
         ];
       })
       sources."jimp-compact-0.16.1"
-      sources."joi-17.12.2"
+      sources."joi-17.13.1"
       sources."join-component-1.1.0"
       sources."js-tokens-4.0.0"
       (sources."js-yaml-3.14.1" // {
@@ -74575,7 +73044,7 @@ in
       })
       sources."jsesc-2.5.2"
       sources."json-buffer-3.0.1"
-      sources."json-parse-even-better-errors-3.0.1"
+      sources."json-parse-even-better-errors-2.3.1"
       (sources."json-schema-deref-sync-0.13.0" // {
         dependencies = [
           sources."clone-2.1.2"
@@ -74613,7 +73082,7 @@ in
       sources."loose-envify-1.4.0"
       sources."lower-case-2.0.2"
       sources."lowercase-keys-2.0.0"
-      sources."lru-cache-10.2.0"
+      sources."lru-cache-10.2.2"
       (sources."make-dir-3.1.0" // {
         dependencies = [
           sources."semver-6.3.1"
@@ -74631,13 +73100,13 @@ in
       sources."merge2-1.4.1"
       sources."methods-1.1.2"
       sources."metro-react-native-babel-preset-0.73.9"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."mime-2.6.0"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
       sources."mimic-fn-1.2.0"
       sources."mimic-response-1.0.1"
-      (sources."mini-css-extract-plugin-2.8.1" // {
+      (sources."mini-css-extract-plugin-2.9.0" // {
         dependencies = [
           sources."ajv-keywords-5.1.0"
           sources."schema-utils-4.2.0"
@@ -74670,7 +73139,7 @@ in
       sources."no-case-3.0.4"
       sources."node-fetch-2.7.0"
       sources."node-forge-0.10.0"
-      sources."node-gyp-build-4.8.0"
+      sources."node-gyp-build-4.8.1"
       sources."node-html-parser-5.4.2"
       sources."node-releases-2.0.14"
       sources."normalize-path-3.0.0"
@@ -74690,6 +73159,8 @@ in
       sources."nullthrows-1.1.1"
       sources."object-assign-4.1.1"
       sources."object-inspect-1.13.1"
+      sources."object-keys-1.1.1"
+      sources."object.assign-4.1.5"
       sources."obuf-1.1.2"
       sources."on-finished-2.4.1"
       sources."on-headers-1.0.2"
@@ -74756,14 +73227,14 @@ in
       sources."path-is-inside-1.0.2"
       sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
-      (sources."path-scurry-1.10.1" // {
+      (sources."path-scurry-1.11.1" // {
         dependencies = [
-          sources."minipass-7.0.4"
+          sources."minipass-7.1.2"
         ];
       })
       sources."path-to-regexp-0.1.7"
       sources."path-type-4.0.0"
-      sources."picocolors-1.0.0"
+      sources."picocolors-1.0.1"
       sources."picomatch-2.3.1"
       sources."pify-4.0.1"
       sources."pinkie-2.0.4"
@@ -74793,7 +73264,8 @@ in
         ];
       })
       sources."pngjs-3.4.0"
-      sources."postcss-8.4.36"
+      sources."possible-typed-array-names-1.0.0"
+      sources."postcss-8.4.38"
       sources."postcss-calc-8.2.4"
       sources."postcss-colormin-5.3.1"
       sources."postcss-convert-values-5.1.3"
@@ -74807,9 +73279,9 @@ in
       sources."postcss-minify-gradients-5.1.1"
       sources."postcss-minify-params-5.1.4"
       sources."postcss-minify-selectors-5.2.1"
-      sources."postcss-modules-extract-imports-3.0.0"
-      sources."postcss-modules-local-by-default-4.0.4"
-      sources."postcss-modules-scope-3.1.1"
+      sources."postcss-modules-extract-imports-3.1.0"
+      sources."postcss-modules-local-by-default-4.0.5"
+      sources."postcss-modules-scope-3.2.0"
       sources."postcss-modules-values-4.0.0"
       sources."postcss-normalize-charset-5.1.0"
       sources."postcss-normalize-display-values-5.1.0"
@@ -74823,7 +73295,7 @@ in
       sources."postcss-ordered-values-5.1.3"
       sources."postcss-reduce-initial-5.1.2"
       sources."postcss-reduce-transforms-5.1.0"
-      sources."postcss-selector-parser-6.0.16"
+      sources."postcss-selector-parser-6.1.0"
       sources."postcss-svgo-5.1.0"
       sources."postcss-unique-selectors-5.1.1"
       sources."postcss-value-parser-4.2.0"
@@ -74870,6 +73342,7 @@ in
       sources."regenerate-unicode-properties-10.1.1"
       sources."regenerator-runtime-0.13.11"
       sources."regenerator-transform-0.15.2"
+      sources."regexp.prototype.flags-1.5.2"
       sources."regexpu-core-5.3.2"
       sources."registry-auth-token-3.3.2"
       sources."registry-url-3.1.0"
@@ -74903,10 +73376,16 @@ in
       })
       sources."router-ips-1.0.0"
       sources."run-parallel-1.2.0"
+      (sources."safe-array-concat-1.1.2" // {
+        dependencies = [
+          sources."isarray-2.0.5"
+        ];
+      })
       sources."safe-buffer-5.2.1"
       sources."safe-json-stringify-1.2.0"
+      sources."safe-regex-test-1.0.3"
       sources."safer-buffer-2.1.2"
-      sources."sax-1.3.0"
+      sources."sax-1.4.1"
       (sources."schema-utils-2.7.1" // {
         dependencies = [
           sources."ajv-6.12.6"
@@ -74960,6 +73439,7 @@ in
         ];
       })
       sources."set-function-length-1.2.2"
+      sources."set-function-name-2.0.2"
       sources."setimmediate-1.0.5"
       sources."setprototypeof-1.2.0"
       sources."shebang-command-2.0.0"
@@ -74978,7 +73458,7 @@ in
       sources."sockjs-0.3.24"
       sources."source-list-map-2.0.1"
       sources."source-map-0.6.1"
-      sources."source-map-js-1.1.0"
+      sources."source-map-js-1.2.0"
       (sources."source-map-loader-3.0.2" // {
         dependencies = [
           sources."iconv-lite-0.6.3"
@@ -75017,6 +73497,9 @@ in
           sources."emoji-regex-8.0.0"
         ];
       })
+      sources."string.prototype.trim-1.2.9"
+      sources."string.prototype.trimend-1.0.8"
+      sources."string.prototype.trimstart-1.0.8"
       (sources."string_decoder-1.1.1" // {
         dependencies = [
           sources."safe-buffer-5.1.2"
@@ -75042,9 +73525,9 @@ in
         dependencies = [
           sources."brace-expansion-2.0.1"
           sources."commander-4.1.1"
-          sources."glob-10.3.10"
-          sources."minimatch-9.0.3"
-          sources."minipass-7.0.4"
+          sources."glob-10.4.1"
+          sources."minimatch-9.0.4"
+          sources."minipass-7.1.2"
         ];
       })
       sources."sudo-prompt-9.1.1"
@@ -75062,7 +73545,7 @@ in
         ];
       })
       sources."tapable-2.2.1"
-      (sources."tar-6.2.0" // {
+      (sources."tar-6.2.1" // {
         dependencies = [
           sources."minipass-5.0.0"
           sources."mkdirp-1.0.4"
@@ -75077,7 +73560,7 @@ in
         ];
       })
       sources."terminal-link-2.1.1"
-      (sources."terser-5.29.2" // {
+      (sources."terser-5.31.0" // {
         dependencies = [
           sources."commander-2.20.3"
           sources."source-map-support-0.5.21"
@@ -75101,15 +73584,21 @@ in
       sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.1"
       sources."tr46-0.0.3"
-      sources."traverse-0.6.8"
+      sources."traverse-0.6.9"
       sources."tree-kill-1.2.2"
       sources."ts-interface-checker-0.1.13"
       sources."tslib-2.6.2"
       sources."turndown-7.0.0"
       sources."type-fest-0.12.0"
       sources."type-is-1.6.18"
+      sources."typed-array-buffer-1.0.2"
+      sources."typed-array-byte-length-1.0.1"
+      sources."typed-array-byte-offset-1.0.2"
+      sources."typed-array-length-1.0.6"
       sources."typedarray-0.0.6"
-      sources."ua-parser-js-1.0.37"
+      sources."typedarray.prototype.slice-1.0.3"
+      sources."ua-parser-js-1.0.38"
+      sources."unbox-primitive-1.0.2"
       sources."undici-types-5.26.5"
       sources."unicode-canonical-property-names-ecmascript-2.0.0"
       sources."unicode-match-property-ecmascript-2.0.0"
@@ -75121,7 +73610,7 @@ in
       sources."universalify-2.0.1"
       sources."unpipe-1.0.0"
       sources."untildify-3.0.3"
-      sources."update-browserslist-db-1.0.13"
+      sources."update-browserslist-db-1.0.16"
       sources."update-check-1.5.3"
       sources."uri-js-4.4.1"
       sources."url-join-4.0.0"
@@ -75131,7 +73620,7 @@ in
           sources."prepend-http-2.0.0"
         ];
       })
-      sources."utf-8-validate-6.0.3"
+      sources."utf-8-validate-6.0.4"
       sources."util-deprecate-1.0.2"
       sources."utila-0.4.0"
       sources."utils-merge-1.0.1"
@@ -75143,34 +73632,32 @@ in
       sources."wbuf-1.7.3"
       sources."wcwidth-1.0.1"
       sources."webidl-conversions-3.0.1"
-      (sources."webpack-5.90.3" // {
+      (sources."webpack-5.91.0" // {
         dependencies = [
           sources."ajv-6.12.6"
-          sources."enhanced-resolve-5.16.0"
-          sources."json-parse-even-better-errors-2.3.1"
           sources."json-schema-traverse-0.4.1"
           sources."schema-utils-3.3.0"
         ];
       })
-      (sources."webpack-dev-middleware-5.3.3" // {
+      (sources."webpack-dev-middleware-5.3.4" // {
         dependencies = [
           sources."ajv-keywords-5.1.0"
           sources."schema-utils-4.2.0"
         ];
       })
-      (sources."webpack-dev-server-4.15.1" // {
+      (sources."webpack-dev-server-4.15.2" // {
         dependencies = [
           sources."@types/retry-0.12.0"
           sources."ajv-keywords-5.1.0"
           sources."content-disposition-0.5.4"
-          sources."cookie-0.5.0"
+          sources."cookie-0.6.0"
           sources."debug-2.6.9"
           sources."default-gateway-6.0.3"
           sources."execa-5.1.1"
-          sources."express-4.18.3"
+          sources."express-4.19.2"
           sources."finalhandler-1.2.0"
           sources."get-stream-6.0.1"
-          sources."ipaddr.js-2.1.0"
+          sources."ipaddr.js-2.2.0"
           sources."mimic-fn-2.1.0"
           sources."ms-2.0.0"
           sources."npm-run-path-4.0.1"
@@ -75192,6 +73679,8 @@ in
       sources."websocket-extensions-0.1.4"
       sources."whatwg-url-5.0.0"
       sources."which-2.0.2"
+      sources."which-boxed-primitive-1.0.2"
+      sources."which-typed-array-1.1.15"
       (sources."widest-line-3.1.0" // {
         dependencies = [
           sources."emoji-regex-8.0.0"
@@ -75220,7 +73709,7 @@ in
       })
       sources."wrappy-1.0.2"
       sources."write-file-atomic-2.4.3"
-      sources."ws-8.16.0"
+      sources."ws-8.17.0"
       (sources."xcode-3.0.1" // {
         dependencies = [
           sources."uuid-7.0.3"
@@ -75242,8 +73731,6 @@ in
       sources."yallist-4.0.0"
       sources."yaml-1.10.2"
       sources."yocto-queue-0.1.0"
-      sources."zod-3.22.4"
-      sources."zod-validation-error-1.3.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -75258,291 +73745,204 @@ in
   fast-cli = nodeEnv.buildNodePackage {
     name = "fast-cli";
     packageName = "fast-cli";
-    version = "3.2.0";
+    version = "4.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/fast-cli/-/fast-cli-3.2.0.tgz";
-      sha512 = "sA4bbCHFe8DqtRjlIVD5Hga+tDpYOgoOOG+NKyLFYJfLrxlmU28RmSjr+pC15q0xU67g7Ut3jDskasmjeLgRsg==";
+      url = "https://registry.npmjs.org/fast-cli/-/fast-cli-4.0.0.tgz";
+      sha512 = "S6X4cUjvbycsqJQnKACo/W20oxC2wtgQ37fP6G0t2IpI8M304PcCpO2D7hUx/JBhvjbh4I3Ta7myA72ZohMvwQ==";
     };
     dependencies = [
-      sources."@ampproject/remapping-2.3.0"
-      sources."@babel/code-frame-7.23.5"
-      sources."@babel/compat-data-7.23.5"
-      sources."@babel/core-7.24.0"
-      sources."@babel/generator-7.23.6"
-      sources."@babel/helper-annotate-as-pure-7.22.5"
-      sources."@babel/helper-compilation-targets-7.23.6"
-      sources."@babel/helper-environment-visitor-7.22.20"
-      sources."@babel/helper-function-name-7.23.0"
-      sources."@babel/helper-hoist-variables-7.22.5"
-      sources."@babel/helper-module-imports-7.22.15"
-      sources."@babel/helper-module-transforms-7.23.3"
-      sources."@babel/helper-plugin-utils-7.24.0"
-      sources."@babel/helper-simple-access-7.22.5"
-      sources."@babel/helper-split-export-declaration-7.22.6"
-      sources."@babel/helper-string-parser-7.23.4"
-      sources."@babel/helper-validator-identifier-7.22.20"
-      sources."@babel/helper-validator-option-7.23.5"
-      sources."@babel/helpers-7.24.0"
-      sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.24.0"
-      sources."@babel/plugin-proposal-object-rest-spread-7.20.7"
-      sources."@babel/plugin-syntax-jsx-7.23.3"
-      sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
-      sources."@babel/plugin-transform-destructuring-7.23.3"
-      sources."@babel/plugin-transform-parameters-7.23.3"
-      sources."@babel/plugin-transform-react-jsx-7.23.4"
-      sources."@babel/template-7.24.0"
-      sources."@babel/traverse-7.24.0"
-      sources."@babel/types-7.24.0"
-      sources."@jridgewell/gen-mapping-0.3.5"
-      sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.2.1"
-      sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.25"
-      sources."@types/minimist-1.2.5"
-      sources."@types/node-20.11.29"
-      sources."@types/normalize-package-data-2.4.4"
-      sources."@types/prop-types-15.7.11"
-      sources."@types/react-18.2.67"
-      sources."@types/scheduler-0.16.8"
-      sources."@types/yauzl-2.10.3"
-      sources."@types/yoga-layout-1.9.2"
-      sources."agent-base-6.0.2"
-      (sources."ansi-escapes-4.3.2" // {
+      sources."@alcalzone/ansi-tokenize-0.1.3"
+      sources."@babel/code-frame-7.24.6"
+      sources."@babel/helper-validator-identifier-7.24.6"
+      (sources."@babel/highlight-7.24.6" // {
         dependencies = [
-          sources."type-fest-0.21.3"
+          sources."ansi-styles-3.2.1"
+          sources."chalk-2.4.2"
+          sources."escape-string-regexp-1.0.5"
         ];
       })
-      sources."ansi-regex-5.0.1"
-      sources."ansi-styles-3.2.1"
-      sources."arrify-1.0.1"
-      sources."astral-regex-2.0.0"
-      sources."auto-bind-4.0.0"
-      sources."balanced-match-1.0.2"
+      sources."@puppeteer/browsers-2.2.3"
+      sources."@tootallnate/quickjs-emscripten-0.23.0"
+      sources."@types/node-20.14.1"
+      sources."@types/prop-types-15.7.12"
+      sources."@types/react-18.3.3"
+      sources."@types/yauzl-2.10.3"
+      sources."agent-base-7.1.1"
+      sources."ansi-escapes-7.0.0"
+      sources."ansi-regex-6.0.1"
+      sources."ansi-styles-6.2.1"
+      sources."argparse-2.0.1"
+      sources."ast-types-0.13.4"
+      sources."auto-bind-5.0.1"
+      sources."b4a-1.6.6"
       sources."base64-js-1.5.1"
-      sources."bl-4.1.0"
-      sources."brace-expansion-1.1.11"
-      sources."browserslist-4.23.0"
+      sources."basic-ftp-5.0.5"
       sources."buffer-5.7.1"
       sources."buffer-crc32-0.2.13"
       sources."bufferutil-4.0.8"
-      sources."caller-callsite-4.1.0"
-      sources."caller-path-3.0.1"
       sources."callsites-3.1.0"
-      sources."camelcase-5.3.1"
-      sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001599"
-      sources."chalk-2.4.2"
-      sources."chownr-1.1.4"
-      sources."ci-info-2.0.0"
-      sources."cli-boxes-2.2.1"
-      sources."cli-cursor-3.1.0"
+      sources."chalk-5.3.0"
+      sources."chromium-bidi-0.5.19"
+      sources."cli-boxes-3.0.0"
+      sources."cli-cursor-4.0.0"
       sources."cli-spinners-2.9.2"
-      sources."cli-truncate-2.1.0"
-      sources."code-excerpt-3.0.0"
+      (sources."cli-truncate-4.0.0" // {
+        dependencies = [
+          sources."slice-ansi-5.0.0"
+        ];
+      })
+      (sources."cliui-8.0.1" // {
+        dependencies = [
+          sources."ansi-regex-5.0.1"
+          sources."ansi-styles-4.3.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."emoji-regex-8.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
+          sources."wrap-ansi-7.0.0"
+        ];
+      })
+      sources."code-excerpt-4.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."commondir-1.0.1"
-      sources."concat-map-0.0.1"
-      sources."convert-source-map-2.0.0"
-      sources."convert-to-spaces-1.0.2"
-      sources."cross-fetch-3.1.5"
+      sources."convert-to-spaces-2.0.1"
+      sources."cosmiconfig-9.0.0"
       sources."csstype-3.1.3"
+      sources."data-uri-to-buffer-6.0.2"
       sources."debug-4.3.4"
-      sources."decamelize-1.2.0"
-      (sources."decamelize-keys-1.1.1" // {
-        dependencies = [
-          sources."map-obj-1.0.1"
-        ];
-      })
-      sources."delay-5.0.0"
-      sources."devtools-protocol-0.0.981744"
-      sources."electron-to-chromium-1.4.710"
-      sources."emoji-regex-8.0.0"
-      sources."encoding-0.1.13"
+      sources."degenerator-5.0.1"
+      sources."devtools-protocol-0.0.1286932"
+      sources."emoji-regex-10.3.0"
       sources."end-of-stream-1.4.4"
+      sources."env-paths-2.2.1"
+      sources."environment-1.1.0"
       sources."error-ex-1.3.2"
       sources."escalade-3.1.2"
-      sources."escape-string-regexp-1.0.5"
+      sources."escape-string-regexp-2.0.0"
+      sources."escodegen-2.1.0"
+      sources."esprima-4.0.1"
+      sources."estraverse-5.3.0"
+      sources."esutils-2.0.3"
       sources."extract-zip-2.0.1"
+      sources."fast-fifo-1.3.2"
       sources."fd-slicer-1.1.0"
-      sources."find-cache-dir-3.3.2"
-      sources."find-up-4.1.0"
-      sources."fs-constants-1.0.0"
-      sources."fs.realpath-1.0.0"
-      sources."function-bind-1.1.2"
-      sources."gensync-1.0.0-beta.2"
+      sources."fs-extra-11.2.0"
+      sources."get-caller-file-2.0.5"
+      sources."get-east-asian-width-1.2.0"
       sources."get-stream-5.2.0"
-      sources."glob-7.2.3"
-      sources."globals-11.12.0"
-      sources."hard-rejection-2.1.0"
+      sources."get-uri-6.0.3"
+      sources."graceful-fs-4.2.11"
       sources."has-flag-3.0.0"
-      sources."hasown-2.0.2"
-      (sources."hosted-git-info-4.1.0" // {
-        dependencies = [
-          sources."lru-cache-6.0.0"
-          sources."yallist-4.0.0"
-        ];
-      })
-      sources."https-proxy-agent-5.0.1"
-      sources."iconv-lite-0.6.3"
+      sources."http-proxy-agent-7.0.2"
+      sources."https-proxy-agent-7.0.4"
       sources."ieee754-1.2.1"
-      sources."import-jsx-4.0.1"
-      sources."indent-string-4.0.0"
-      sources."inflight-1.0.6"
-      sources."inherits-2.0.4"
-      (sources."ink-3.2.0" // {
-        dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.2"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."has-flag-4.0.0"
-          sources."supports-color-7.2.0"
-        ];
-      })
-      sources."ink-spinner-4.0.3"
+      sources."import-fresh-3.3.0"
+      sources."indent-string-5.0.0"
+      sources."ink-5.0.1"
+      sources."ink-spinner-5.0.0"
+      sources."ip-address-9.0.5"
       sources."is-arrayish-0.2.1"
-      sources."is-ci-2.0.0"
-      sources."is-core-module-2.13.1"
-      sources."is-fullwidth-code-point-3.0.0"
-      sources."is-plain-obj-1.1.0"
+      sources."is-fullwidth-code-point-4.0.0"
+      sources."is-in-ci-0.1.0"
       sources."js-tokens-4.0.0"
-      sources."jsesc-2.5.2"
+      sources."js-yaml-4.1.0"
+      sources."jsbn-1.1.0"
       sources."json-parse-even-better-errors-2.3.1"
-      sources."json5-2.2.3"
-      sources."kind-of-6.0.3"
+      sources."jsonfile-6.1.0"
       sources."lines-and-columns-1.2.4"
-      sources."locate-path-5.0.0"
       sources."lodash-4.17.21"
       sources."loose-envify-1.4.0"
-      sources."lru-cache-5.1.1"
-      sources."make-dir-3.1.0"
-      sources."map-obj-4.3.0"
-      (sources."meow-9.0.0" // {
-        dependencies = [
-          sources."type-fest-0.18.1"
-        ];
-      })
+      sources."lru-cache-7.18.3"
+      sources."meow-13.2.0"
       sources."mimic-fn-2.1.0"
-      sources."min-indent-1.0.1"
-      sources."minimatch-3.1.2"
-      sources."minimist-options-4.1.0"
-      sources."mkdirp-classic-0.5.3"
+      sources."mitt-3.0.1"
       sources."ms-2.1.2"
-      sources."node-fetch-2.6.7"
-      sources."node-gyp-build-4.8.0"
-      sources."node-releases-2.0.14"
-      (sources."normalize-package-data-3.0.3" // {
-        dependencies = [
-          sources."lru-cache-6.0.0"
-          sources."semver-7.6.0"
-          sources."yallist-4.0.0"
-        ];
-      })
-      sources."object-assign-4.1.1"
+      sources."netmask-2.0.2"
+      sources."node-gyp-build-4.8.1"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
-      sources."p-limit-2.3.0"
-      sources."p-locate-4.1.0"
-      sources."p-try-2.2.0"
+      sources."pac-proxy-agent-7.0.1"
+      sources."pac-resolver-7.0.1"
+      sources."parent-module-1.0.1"
       sources."parse-json-5.2.0"
-      sources."patch-console-1.0.0"
-      sources."path-exists-4.0.0"
-      sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.7"
+      sources."patch-console-2.0.0"
       sources."pend-1.2.0"
-      sources."picocolors-1.0.0"
-      sources."pkg-dir-4.2.0"
+      sources."picocolors-1.0.1"
       sources."progress-2.0.3"
+      sources."proxy-agent-6.4.0"
       sources."proxy-from-env-1.1.0"
       sources."pump-3.0.0"
-      (sources."puppeteer-13.7.0" // {
-        dependencies = [
-          sources."ws-8.5.0"
-        ];
-      })
-      sources."quick-lru-4.0.1"
-      sources."react-17.0.2"
-      sources."react-devtools-core-4.28.5"
-      sources."react-reconciler-0.26.2"
-      (sources."read-pkg-5.2.0" // {
+      sources."puppeteer-22.10.0"
+      sources."puppeteer-core-22.10.0"
+      sources."queue-tick-1.0.1"
+      sources."react-18.3.1"
+      (sources."react-devtools-core-4.28.5" // {
         dependencies = [
-          sources."hosted-git-info-2.8.9"
-          sources."normalize-package-data-2.5.0"
-          sources."semver-5.7.2"
-          sources."type-fest-0.6.0"
+          sources."utf-8-validate-5.0.10"
+          sources."ws-7.5.9"
         ];
       })
-      (sources."read-pkg-up-7.0.1" // {
+      sources."react-reconciler-0.29.2"
+      sources."require-directory-2.1.1"
+      sources."resolve-from-4.0.0"
+      sources."restore-cursor-4.0.0"
+      sources."scheduler-0.23.2"
+      (sources."semver-7.6.0" // {
         dependencies = [
-          sources."type-fest-0.8.1"
+          sources."lru-cache-6.0.0"
         ];
       })
-      sources."readable-stream-3.6.2"
-      sources."redent-3.0.0"
-      sources."resolve-1.22.8"
-      sources."resolve-from-3.0.0"
-      sources."restore-cursor-3.1.0"
-      sources."rimraf-3.0.2"
-      sources."safe-buffer-5.2.1"
-      sources."safer-buffer-2.1.2"
-      sources."scheduler-0.20.2"
-      sources."semver-6.3.1"
       sources."shell-quote-1.8.1"
       sources."signal-exit-3.0.7"
-      (sources."slice-ansi-3.0.0" // {
+      (sources."slice-ansi-7.1.0" // {
         dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
+          sources."is-fullwidth-code-point-5.0.0"
         ];
       })
-      sources."spdx-correct-3.2.0"
-      sources."spdx-exceptions-2.5.0"
-      sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.17"
-      (sources."stack-utils-2.0.6" // {
-        dependencies = [
-          sources."escape-string-regexp-2.0.0"
-        ];
-      })
-      sources."string-width-4.2.3"
-      sources."string_decoder-1.3.0"
-      sources."strip-ansi-6.0.1"
-      sources."strip-indent-3.0.0"
+      sources."smart-buffer-4.2.0"
+      sources."socks-2.8.3"
+      sources."socks-proxy-agent-8.0.3"
+      sources."source-map-0.6.1"
+      sources."sprintf-js-1.1.3"
+      sources."stack-utils-2.0.6"
+      sources."streamx-2.18.0"
+      sources."string-width-7.1.0"
+      sources."strip-ansi-7.1.0"
       sources."supports-color-5.5.0"
-      sources."supports-preserve-symlinks-flag-1.0.0"
-      sources."tar-fs-2.1.1"
-      sources."tar-stream-2.2.0"
+      sources."tar-fs-3.0.5"
+      sources."tar-stream-3.1.7"
+      sources."text-decoder-1.1.0"
       sources."through-2.3.8"
-      sources."to-fast-properties-2.0.0"
-      sources."tr46-0.0.3"
-      sources."trim-newlines-3.0.1"
-      sources."type-fest-0.12.0"
+      sources."tslib-2.6.2"
+      sources."type-fest-4.19.0"
+      sources."typescript-5.4.5"
       sources."unbzip2-stream-1.4.3"
       sources."undici-types-5.26.5"
-      sources."update-browserslist-db-1.0.13"
-      sources."utf-8-validate-5.0.10"
-      sources."util-deprecate-1.0.2"
-      sources."validate-npm-package-license-3.0.4"
-      sources."webidl-conversions-3.0.1"
-      sources."whatwg-url-5.0.0"
-      sources."widest-line-3.1.0"
-      (sources."wrap-ansi-6.2.0" // {
+      sources."unicorn-magic-0.2.0"
+      sources."universalify-2.0.1"
+      sources."urlpattern-polyfill-10.0.0"
+      sources."utf-8-validate-6.0.4"
+      sources."widest-line-5.0.0"
+      sources."wrap-ansi-9.0.0"
+      sources."wrappy-1.0.2"
+      sources."ws-8.17.0"
+      sources."y18n-5.0.8"
+      sources."yallist-4.0.0"
+      (sources."yargs-17.7.2" // {
         dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
+          sources."ansi-regex-5.0.1"
+          sources."emoji-regex-8.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
         ];
       })
-      sources."wrappy-1.0.2"
-      sources."ws-7.5.9"
-      sources."yallist-3.1.1"
-      sources."yargs-parser-20.2.9"
+      sources."yargs-parser-21.1.1"
       sources."yauzl-2.10.0"
-      sources."yoga-layout-prebuilt-1.10.0"
-      sources."zen-observable-0.8.15"
+      sources."yoga-wasm-web-0.3.3"
+      sources."zod-3.22.4"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -75557,10 +73957,10 @@ in
   fauna-shell = nodeEnv.buildNodePackage {
     name = "fauna-shell";
     packageName = "fauna-shell";
-    version = "1.2.1";
+    version = "1.3.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/fauna-shell/-/fauna-shell-1.2.1.tgz";
-      sha512 = "JY48qkliJbbrkdeUlKT8Z/NDyZCAsgsiGI+bXIy7tDwTURsNpQ4biNK2X5nqKgdNfULrRn6NkSessdcI+RnoHA==";
+      url = "https://registry.npmjs.org/fauna-shell/-/fauna-shell-1.3.0.tgz";
+      sha512 = "V3z3HudBRv8dsLgvyZIpj7AlUstu3n0uztAtYWblLMwbld1/7Az/1AIpWZRlweZJd8XkaCPbL10xXy/DeAqbqw==";
     };
     dependencies = [
       sources."@cspotcode/source-map-support-0.8.1"
@@ -75574,7 +73974,7 @@ in
       sources."@inquirer/prompts-3.3.2"
       sources."@inquirer/rawlist-1.2.16"
       sources."@inquirer/select-1.3.3"
-      sources."@inquirer/type-1.2.1"
+      sources."@inquirer/type-1.3.3"
       sources."@jridgewell/resolve-uri-3.1.2"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.9"
@@ -75582,7 +73982,7 @@ in
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
       sources."@oclif/color-1.0.13"
-      (sources."@oclif/core-2.15.0" // {
+      (sources."@oclif/core-2.16.0" // {
         dependencies = [
           sources."wrap-ansi-7.0.0"
         ];
@@ -75599,18 +73999,18 @@ in
       sources."@oclif/plugin-help-5.2.20"
       sources."@oclif/plugin-plugins-2.4.7"
       sources."@oclif/screen-1.0.4"
-      sources."@swc/core-1.4.8"
+      sources."@swc/core-1.5.24"
       sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.7"
-      sources."@swc/types-0.1.6"
-      sources."@swc/wasm-1.4.8"
-      sources."@tsconfig/node10-1.0.9"
+      sources."@swc/helpers-0.5.11"
+      sources."@swc/types-0.1.7"
+      sources."@swc/wasm-1.5.24"
+      sources."@tsconfig/node10-1.0.11"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
       sources."@types/cli-progress-3.11.5"
       sources."@types/mute-stream-0.0.4"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."@types/wrap-ansi-3.0.0"
       sources."acorn-8.11.3"
       sources."acorn-walk-8.3.2"
@@ -75636,7 +74036,7 @@ in
         ];
       })
       sources."brace-expansion-2.0.1"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."btoa-lite-1.0.0"
       sources."buffer-5.7.1"
       sources."camelcase-6.3.0"
@@ -75694,16 +74094,16 @@ in
       sources."create-require-1.1.1"
       sources."cross-fetch-3.1.8"
       sources."cross-spawn-7.0.3"
-      sources."csv-parse-5.5.5"
+      sources."csv-parse-5.5.6"
       sources."csv-stream-0.2.0"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."deep-is-0.1.4"
       sources."defaults-1.0.4"
       sources."delayed-stream-1.0.0"
       sources."diff-4.0.2"
       sources."dir-glob-3.0.1"
       sources."dotenv-8.6.0"
-      sources."ejs-3.1.9"
+      sources."ejs-3.1.10"
       sources."emoji-regex-8.0.0"
       (sources."encoding-0.1.13" // {
         dependencies = [
@@ -75729,7 +74129,7 @@ in
           sources."minimatch-5.1.6"
         ];
       })
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."fn-annotate-1.2.0"
       sources."form-data-4.0.0"
       sources."fs-extra-9.1.0"
@@ -75765,7 +74165,7 @@ in
       sources."is-unicode-supported-0.1.0"
       sources."is-wsl-2.2.0"
       sources."isexe-2.0.0"
-      sources."jake-10.8.7"
+      sources."jake-10.9.1"
       sources."js-yaml-3.14.1"
       sources."json-parse-better-errors-1.0.2"
       sources."jsonfile-6.1.0"
@@ -75777,10 +74177,9 @@ in
       })
       sources."lodash-4.17.21"
       sources."log-symbols-4.1.0"
-      sources."lru-cache-6.0.0"
       sources."make-error-1.3.6"
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
       sources."mimic-fn-2.1.0"
@@ -75826,7 +74225,7 @@ in
       sources."rxjs-7.8.1"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.6.0"
+      sources."semver-7.6.2"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-4.1.0"
@@ -75856,7 +74255,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."type-check-0.3.2"
       sources."type-fest-0.21.3"
-      sources."typescript-5.4.2"
+      sources."typescript-5.4.5"
       sources."undici-types-5.26.5"
       sources."universalify-2.0.1"
       sources."util-deprecate-1.0.2"
@@ -75869,7 +74268,6 @@ in
       sources."word-wrap-1.2.5"
       sources."wordwrap-1.0.0"
       sources."wrap-ansi-6.2.0"
-      sources."yallist-4.0.0"
       sources."yarn-1.22.22"
       sources."yn-3.1.1"
     ];
@@ -75941,6 +74339,7 @@ in
       sha512 = "+eT/06NHwPXfzUSe4vDjjam9gZtalhwDYOq0xX6va88BLZd8APbo17Ajkz4hdnr2Gpls5+xFUqMeiklAQtBHYQ==";
     };
     dependencies = [
+      sources."@inquirer/figures-1.0.3"
       sources."@ljharb/through-2.3.13"
       sources."aggregate-error-5.0.0"
       sources."ansi-escapes-4.3.2"
@@ -75970,9 +74369,9 @@ in
       sources."escape-string-regexp-5.0.0"
       sources."execa-8.0.1"
       sources."external-editor-3.1.0"
-      (sources."figures-3.2.0" // {
+      (sources."figures-5.0.0" // {
         dependencies = [
-          sources."escape-string-regexp-1.0.5"
+          sources."is-unicode-supported-1.3.0"
         ];
       })
       sources."fkill-9.0.0"
@@ -75992,7 +74391,7 @@ in
       sources."ieee754-1.2.1"
       sources."indent-string-5.0.0"
       sources."inherits-2.0.4"
-      (sources."inquirer-9.2.16" // {
+      (sources."inquirer-9.2.23" // {
         dependencies = [
           sources."ansi-regex-5.0.1"
           sources."emoji-regex-8.0.0"
@@ -76003,11 +74402,8 @@ in
       })
       (sources."inquirer-autocomplete-prompt-3.0.1" // {
         dependencies = [
-          sources."ansi-escapes-6.2.0"
-          sources."figures-5.0.0"
-          sources."is-unicode-supported-1.3.0"
+          sources."ansi-escapes-6.2.1"
           sources."run-async-2.4.1"
-          sources."type-fest-3.13.1"
         ];
       })
       sources."is-fullwidth-code-point-4.0.0"
@@ -76043,7 +74439,7 @@ in
       })
       sources."os-tmpdir-1.0.2"
       sources."path-key-3.1.1"
-      sources."picocolors-1.0.0"
+      sources."picocolors-1.0.1"
       sources."pid-port-1.0.0"
       sources."process-exists-5.0.0"
       sources."ps-list-8.1.1"
@@ -76117,12 +74513,12 @@ in
       sources."@ethereumjs/util-8.1.0"
       sources."@noble/curves-1.3.0"
       sources."@noble/hashes-1.3.3"
-      sources."@scure/base-1.1.5"
+      sources."@scure/base-1.1.6"
       sources."@scure/bip32-1.3.3"
       sources."@scure/bip39-1.2.2"
       sources."@types/atob-2.1.4"
       sources."@types/inquirer-6.5.0"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."@types/through-0.0.33"
       sources."ajv-6.12.6"
       sources."ansi-escapes-4.3.2"
@@ -76136,7 +74532,7 @@ in
       sources."at-least-node-1.0.0"
       sources."atob-2.1.2"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.12.0"
+      sources."aws4-1.13.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."binary-search-tree-0.2.5"
       sources."bluebird-3.7.2"
@@ -76167,7 +74563,11 @@ in
       })
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
-      sources."ethereum-bloom-filters-1.0.10"
+      (sources."ethereum-bloom-filters-1.1.0" // {
+        dependencies = [
+          sources."@noble/hashes-1.4.0"
+        ];
+      })
       sources."ethereum-cryptography-2.1.3"
       (sources."ethjs-unit-0.1.6" // {
         dependencies = [
@@ -76201,7 +74601,6 @@ in
       sources."is-typedarray-1.0.0"
       sources."is-wsl-2.2.0"
       sources."isstream-0.1.2"
-      sources."js-sha3-0.8.0"
       sources."js-yaml-3.14.1"
       sources."jsbn-0.1.1"
       sources."json-schema-0.4.0"
@@ -76383,7 +74782,11 @@ in
       sources."core-util-is-1.0.3"
       sources."crypto-random-string-1.0.0"
       sources."cycle-1.0.3"
-      sources."debug-2.6.9"
+      (sources."debug-2.6.9" // {
+        dependencies = [
+          sources."ms-2.0.0"
+        ];
+      })
       sources."decode-uri-component-0.2.2"
       sources."deep-equal-2.2.3"
       sources."define-data-property-1.1.4"
@@ -76501,25 +74904,17 @@ in
       sources."kind-of-6.0.3"
       sources."kuler-2.0.0"
       sources."lazy-1.0.11"
-      (sources."logform-2.6.0" // {
-        dependencies = [
-          sources."ms-2.1.3"
-        ];
-      })
+      sources."logform-2.6.0"
       sources."make-dir-1.3.0"
       sources."map-cache-0.2.2"
       sources."map-stream-0.1.0"
       sources."map-visit-1.0.0"
       sources."micromatch-3.1.10"
       sources."minimatch-3.1.2"
-      sources."minimist-0.0.10"
+      sources."minimist-1.2.8"
       sources."mixin-deep-1.3.2"
-      (sources."mkdirp-0.5.6" // {
-        dependencies = [
-          sources."minimist-1.2.8"
-        ];
-      })
-      sources."ms-2.0.0"
+      sources."mkdirp-0.5.6"
+      sources."ms-2.1.3"
       sources."mute-stream-0.0.8"
       sources."nan-2.19.0"
       sources."nanomatch-1.2.13"
@@ -76551,7 +74946,11 @@ in
       sources."object.pick-1.3.0"
       sources."once-1.4.0"
       sources."one-time-1.0.0"
-      sources."optimist-0.6.0"
+      (sources."optimist-0.6.0" // {
+        dependencies = [
+          sources."minimist-0.0.10"
+        ];
+      })
       sources."pascalcase-0.1.1"
       sources."path-dirname-1.0.2"
       sources."path-is-absolute-1.0.1"
@@ -76563,7 +74962,6 @@ in
       (sources."prettyjson-1.2.5" // {
         dependencies = [
           sources."colors-1.4.0"
-          sources."minimist-1.2.8"
         ];
       })
       sources."process-nextick-args-2.0.1"
@@ -76575,12 +74973,15 @@ in
       })
       sources."ps-tree-1.2.0"
       sources."read-1.0.7"
-      (sources."readable-stream-2.3.8" // {
+      sources."readable-stream-3.6.2"
+      (sources."readdirp-2.2.1" // {
         dependencies = [
           sources."isarray-1.0.0"
+          sources."readable-stream-2.3.8"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
         ];
       })
-      sources."readdirp-2.2.1"
       sources."regex-not-1.0.2"
       sources."regexp.prototype.flags-1.5.2"
       sources."remove-trailing-separator-1.1.0"
@@ -76590,7 +74991,7 @@ in
       sources."ret-0.1.15"
       sources."revalidator-0.1.8"
       sources."rimraf-2.7.1"
-      sources."safe-buffer-5.1.2"
+      sources."safe-buffer-5.2.1"
       sources."safe-regex-1.1.0"
       sources."safe-stable-stringify-2.4.3"
       sources."set-function-length-1.2.2"
@@ -76637,7 +75038,7 @@ in
       })
       sources."stop-iteration-iterator-1.0.0"
       sources."stream-combiner-0.0.4"
-      sources."string_decoder-1.1.1"
+      sources."string_decoder-1.3.0"
       sources."strip-json-comments-3.1.1"
       sources."text-hex-1.0.0"
       sources."through-2.3.8"
@@ -76678,17 +75079,12 @@ in
       sources."which-boxed-primitive-1.0.2"
       sources."which-collection-1.0.2"
       sources."which-typed-array-1.1.15"
-      (sources."winston-3.12.0" // {
+      (sources."winston-3.13.0" // {
         dependencies = [
           sources."async-3.2.5"
-          sources."readable-stream-3.6.2"
-        ];
-      })
-      (sources."winston-transport-4.7.0" // {
-        dependencies = [
-          sources."readable-stream-3.6.2"
         ];
       })
+      sources."winston-transport-4.7.0"
       sources."wordwrap-0.0.3"
       sources."wrappy-1.0.2"
       sources."write-file-atomic-2.4.3"
@@ -76707,10 +75103,10 @@ in
   fx = nodeEnv.buildNodePackage {
     name = "fx";
     packageName = "fx";
-    version = "33.0.0";
+    version = "34.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/fx/-/fx-33.0.0.tgz";
-      sha512 = "uW/UAi9G04+o7dD/RyIH7mP9Cyf12TdiaWQ19QbvnxkKQ2yiffXiZMz65zqbWMstLd2vwla++G9lMabG3nXxYQ==";
+      url = "https://registry.npmjs.org/fx/-/fx-34.0.0.tgz";
+      sha512 = "/fZih3/WLsrtlaj2mahjWxAmyuikmcl3D5kKPqLtFmEilLsy9wp0+/vEmfvYXXhwJc+ajtCFDCf+yttXmPMHSQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -76739,7 +75135,7 @@ in
       })
       sources."@types/bn.js-5.1.5"
       sources."@types/lru-cache-5.1.1"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."@types/seedrandom-3.0.1"
       sources."abstract-level-1.0.3"
       (sources."abstract-leveldown-7.2.0" // {
@@ -76761,7 +75157,7 @@ in
       sources."level-transcoder-1.0.1"
       sources."lodash-4.17.21"
       sources."module-error-1.0.2"
-      sources."node-gyp-build-4.8.0"
+      sources."node-gyp-build-4.8.1"
       sources."queue-microtask-1.2.3"
       sources."undici-types-5.26.5"
       sources."utf-8-validate-5.0.7"
@@ -76780,67 +75176,63 @@ in
   gatsby-cli = nodeEnv.buildNodePackage {
     name = "gatsby-cli";
     packageName = "gatsby-cli";
-    version = "5.13.2";
+    version = "5.13.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-5.13.2.tgz";
-      sha512 = "Wxsfgfp5jDciXOR00aKQk9SQANXoYaftNZz6LGGkRZcwMFjhPal1LdCioyy3sOXrRvB0uUsACrGLS1ghXxd2QA==";
+      url = "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-5.13.3.tgz";
+      sha512 = "JQTeivvZWuhxE1HRey2sRhwUmkCrs5478fiLR0XRFGin4X1ggCmrQx/DBkJP1TgktdPfNU8t987+slSnO2XzMA==";
     };
     dependencies = [
       sources."@ampproject/remapping-2.3.0"
-      (sources."@babel/code-frame-7.23.5" // {
-        dependencies = [
-          sources."chalk-2.4.2"
-        ];
-      })
-      sources."@babel/compat-data-7.23.5"
-      (sources."@babel/core-7.24.0" // {
+      sources."@babel/code-frame-7.24.6"
+      sources."@babel/compat-data-7.24.6"
+      (sources."@babel/core-7.24.6" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      sources."@babel/generator-7.23.6"
-      sources."@babel/helper-annotate-as-pure-7.22.5"
-      (sources."@babel/helper-compilation-targets-7.23.6" // {
+      sources."@babel/generator-7.24.6"
+      sources."@babel/helper-annotate-as-pure-7.24.6"
+      (sources."@babel/helper-compilation-targets-7.24.6" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      (sources."@babel/helper-create-class-features-plugin-7.24.0" // {
+      (sources."@babel/helper-create-class-features-plugin-7.24.6" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      sources."@babel/helper-environment-visitor-7.22.20"
-      sources."@babel/helper-function-name-7.23.0"
-      sources."@babel/helper-hoist-variables-7.22.5"
-      sources."@babel/helper-member-expression-to-functions-7.23.0"
-      sources."@babel/helper-module-imports-7.22.15"
-      sources."@babel/helper-module-transforms-7.23.3"
-      sources."@babel/helper-optimise-call-expression-7.22.5"
-      sources."@babel/helper-plugin-utils-7.24.0"
-      sources."@babel/helper-replace-supers-7.22.20"
-      sources."@babel/helper-simple-access-7.22.5"
-      sources."@babel/helper-skip-transparent-expression-wrappers-7.22.5"
-      sources."@babel/helper-split-export-declaration-7.22.6"
-      sources."@babel/helper-string-parser-7.23.4"
-      sources."@babel/helper-validator-identifier-7.22.20"
-      sources."@babel/helper-validator-option-7.23.5"
-      sources."@babel/helpers-7.24.0"
-      (sources."@babel/highlight-7.23.4" // {
+      sources."@babel/helper-environment-visitor-7.24.6"
+      sources."@babel/helper-function-name-7.24.6"
+      sources."@babel/helper-hoist-variables-7.24.6"
+      sources."@babel/helper-member-expression-to-functions-7.24.6"
+      sources."@babel/helper-module-imports-7.24.6"
+      sources."@babel/helper-module-transforms-7.24.6"
+      sources."@babel/helper-optimise-call-expression-7.24.6"
+      sources."@babel/helper-plugin-utils-7.24.6"
+      sources."@babel/helper-replace-supers-7.24.6"
+      sources."@babel/helper-simple-access-7.24.6"
+      sources."@babel/helper-skip-transparent-expression-wrappers-7.24.6"
+      sources."@babel/helper-split-export-declaration-7.24.6"
+      sources."@babel/helper-string-parser-7.24.6"
+      sources."@babel/helper-validator-identifier-7.24.6"
+      sources."@babel/helper-validator-option-7.24.6"
+      sources."@babel/helpers-7.24.6"
+      (sources."@babel/highlight-7.24.6" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.24.0"
-      sources."@babel/plugin-syntax-jsx-7.23.3"
-      sources."@babel/plugin-syntax-typescript-7.23.3"
-      sources."@babel/plugin-transform-modules-commonjs-7.23.3"
-      sources."@babel/plugin-transform-typescript-7.23.6"
-      sources."@babel/preset-typescript-7.23.3"
-      sources."@babel/runtime-7.24.0"
-      sources."@babel/template-7.24.0"
-      sources."@babel/traverse-7.24.0"
-      sources."@babel/types-7.24.0"
+      sources."@babel/parser-7.24.6"
+      sources."@babel/plugin-syntax-jsx-7.24.6"
+      sources."@babel/plugin-syntax-typescript-7.24.6"
+      sources."@babel/plugin-transform-modules-commonjs-7.24.6"
+      sources."@babel/plugin-transform-typescript-7.24.6"
+      sources."@babel/preset-typescript-7.24.6"
+      sources."@babel/runtime-7.24.6"
+      sources."@babel/template-7.24.6"
+      sources."@babel/traverse-7.24.6"
+      sources."@babel/types-7.24.6"
       sources."@hapi/hoek-9.3.0"
       sources."@hapi/topo-5.1.0"
       sources."@jridgewell/gen-mapping-0.3.5"
@@ -76866,7 +75258,7 @@ in
       sources."@types/common-tags-1.8.4"
       sources."@types/http-cache-semantics-4.0.4"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."@types/node-fetch-2.6.11"
       sources."@types/responselike-1.0.3"
       sources."@types/yoga-layout-1.9.2"
@@ -76890,7 +75282,7 @@ in
         ];
       })
       sources."camelcase-6.3.0"
-      sources."caniuse-lite-1.0.30001599"
+      sources."caniuse-lite-1.0.30001627"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -76933,7 +75325,7 @@ in
       sources."crypto-random-string-2.0.0"
       sources."css-select-4.3.0"
       sources."css-what-6.1.0"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."decamelize-1.2.0"
       (sources."decompress-response-6.0.0" // {
         dependencies = [
@@ -76948,12 +75340,12 @@ in
       sources."domhandler-4.3.1"
       sources."domutils-2.8.0"
       sources."dot-prop-5.3.0"
-      sources."electron-to-chromium-1.4.710"
+      sources."electron-to-chromium-1.4.789"
       sources."emoji-regex-8.0.0"
       sources."encoding-0.1.13"
       sources."end-of-stream-1.4.4"
       sources."entities-2.2.0"
-      sources."envinfo-7.11.1"
+      sources."envinfo-7.13.0"
       sources."escalade-3.1.2"
       sources."escape-string-regexp-1.0.5"
       (sources."execa-5.1.1" // {
@@ -77026,7 +75418,7 @@ in
       sources."is-wsl-2.2.0"
       sources."is64bit-2.0.0"
       sources."isexe-2.0.0"
-      sources."joi-17.12.2"
+      sources."joi-17.13.1"
       sources."js-tokens-4.0.0"
       sources."jsesc-2.5.2"
       sources."json-buffer-3.0.1"
@@ -77051,7 +75443,7 @@ in
       sources."mimic-fn-4.0.0"
       sources."mimic-response-1.0.1"
       sources."ms-2.1.2"
-      sources."msgpackr-1.10.1"
+      sources."msgpackr-1.10.2"
       sources."mute-stream-0.0.8"
       sources."node-addon-api-4.3.0"
       sources."node-fetch-2.7.0"
@@ -77080,7 +75472,7 @@ in
       sources."path-exists-4.0.0"
       sources."path-key-3.1.1"
       sources."peek-readable-4.1.0"
-      sources."picocolors-1.0.0"
+      sources."picocolors-1.0.1"
       sources."pretty-error-2.1.2"
       sources."progress-2.0.3"
       sources."prompts-2.4.2"
@@ -77116,12 +75508,7 @@ in
       sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      (sources."semver-7.6.0" // {
-        dependencies = [
-          sources."lru-cache-6.0.0"
-          sources."yallist-4.0.0"
-        ];
-      })
+      sources."semver-7.6.2"
       sources."set-blocking-2.0.0"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
@@ -77150,7 +75537,7 @@ in
       sources."undici-types-5.26.5"
       sources."unique-string-2.0.0"
       sources."universalify-2.0.1"
-      sources."update-browserslist-db-1.0.13"
+      sources."update-browserslist-db-1.0.16"
       sources."util-deprecate-1.0.2"
       sources."utila-0.4.0"
       sources."weak-lru-cache-1.2.2"
@@ -77243,7 +75630,7 @@ in
     };
     dependencies = [
       sources."async-2.6.4"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."lodash-4.17.21"
       sources."lodash.groupby-4.6.0"
       sources."microee-0.0.6"
@@ -77283,15 +75670,15 @@ in
   "@gitbeaker/cli" = nodeEnv.buildNodePackage {
     name = "_at_gitbeaker_slash_cli";
     packageName = "@gitbeaker/cli";
-    version = "40.0.1";
+    version = "40.0.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@gitbeaker/cli/-/cli-40.0.1.tgz";
-      sha512 = "6ERgsKFoVpHJAQ6dCKIfyGTBIGdvn3EhZomS0WYhfZEVXyyH0+JQ/grGE8+pTLuvk8dJan/SfDtRx8SjNoQjUg==";
+      url = "https://registry.npmjs.org/@gitbeaker/cli/-/cli-40.0.3.tgz";
+      sha512 = "1zR4KJ2Pv5nWwxt/5UvCmw8Z2u75fR+BbclTQ/esxMGhQCCtpuu/oWD96MkBaDqZoQqHHTTJOBZk3OCpa2CPdg==";
     };
     dependencies = [
-      sources."@gitbeaker/core-40.0.1"
-      sources."@gitbeaker/requester-utils-40.0.1"
-      sources."@gitbeaker/rest-40.0.1"
+      sources."@gitbeaker/core-40.0.3"
+      sources."@gitbeaker/requester-utils-40.0.3"
+      sources."@gitbeaker/rest-40.0.3"
       sources."ansi-styles-4.3.0"
       sources."call-bind-1.0.7"
       sources."chalk-4.1.2"
@@ -77310,7 +75697,7 @@ in
       sources."hasown-2.0.2"
       sources."object-inspect-1.13.1"
       sources."picomatch-browser-2.2.6"
-      sources."qs-6.12.0"
+      sources."qs-6.12.1"
       sources."rate-limiter-flexible-4.0.1"
       sources."set-function-length-1.2.2"
       sources."side-channel-1.0.6"
@@ -77562,18 +75949,9 @@ in
     };
     dependencies = [
       sources."@ardatan/aggregate-error-0.0.6"
-      (sources."@babel/code-frame-7.23.5" // {
-        dependencies = [
-          sources."ansi-styles-3.2.1"
-          sources."chalk-2.4.2"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."has-flag-3.0.0"
-          sources."supports-color-5.5.0"
-        ];
-      })
-      sources."@babel/helper-validator-identifier-7.22.20"
-      (sources."@babel/highlight-7.23.4" // {
+      sources."@babel/code-frame-7.24.6"
+      sources."@babel/helper-validator-identifier-7.24.6"
+      (sources."@babel/highlight-7.24.6" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -77680,7 +76058,7 @@ in
       sources."@nodelib/fs.walk-1.2.8"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."@types/parse-json-4.0.2"
       sources."@types/websocket-1.0.2"
       sources."abort-controller-3.0.0"
@@ -77702,13 +76080,13 @@ in
       sources."at-least-node-1.0.0"
       sources."available-typed-arrays-1.0.7"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.12.0"
+      sources."aws4-1.13.0"
       sources."backo2-1.0.2"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."buffer-5.7.1"
       sources."bufferutil-4.0.8"
       (sources."cacheable-request-6.1.0" // {
@@ -77762,7 +76140,7 @@ in
       sources."cross-spawn-6.0.5"
       sources."dashdash-1.14.1"
       sources."dataloader-2.0.0"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."decompress-response-3.3.0"
       sources."deep-equal-2.2.3"
       sources."deep-extend-0.6.0"
@@ -77802,7 +76180,7 @@ in
       sources."fastq-1.17.1"
       sources."figlet-1.5.0"
       sources."figures-3.2.0"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."filter-obj-2.0.2"
       sources."for-each-0.3.3"
       sources."forever-agent-0.6.1"
@@ -77951,7 +76329,7 @@ in
       })
       sources."merge2-1.4.1"
       sources."meros-1.1.4"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
       sources."mimic-fn-1.2.0"
@@ -77972,7 +76350,7 @@ in
       sources."node-emoji-1.10.0"
       sources."node-fetch-2.6.1"
       sources."node-fetch-h2-2.3.0"
-      sources."node-gyp-build-4.8.0"
+      sources."node-gyp-build-4.8.1"
       sources."node-readfiles-0.2.0"
       sources."normalize-path-2.1.1"
       sources."normalize-url-4.5.1"
@@ -78033,6 +76411,7 @@ in
       sources."path-key-2.0.1"
       sources."path-type-4.0.0"
       sources."performance-now-2.1.0"
+      sources."picocolors-1.0.1"
       sources."picomatch-2.3.1"
       sources."pluralize-8.0.0"
       sources."possible-typed-array-names-1.0.0"
@@ -78160,43 +76539,47 @@ in
   graphql-language-service-cli = nodeEnv.buildNodePackage {
     name = "graphql-language-service-cli";
     packageName = "graphql-language-service-cli";
-    version = "3.3.33";
+    version = "3.4.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/graphql-language-service-cli/-/graphql-language-service-cli-3.3.33.tgz";
-      sha512 = "CUva4Dubw/0VuUxMBlHvqwY4ZhPQKEQNvobFuAI5huiA/6S2ObFngEuh0uIuFRXfaC4I1tM5C6KKjZpD6HShFQ==";
+      url = "https://registry.npmjs.org/graphql-language-service-cli/-/graphql-language-service-cli-3.4.0.tgz";
+      sha512 = "2bNbTYHwggYp/VwnmBzq2UQjoqwnIiBE8nE4M6ikC/0AX7hzNlz7uoBbQ0guFIrJ8Z6fyA0PjU28YGs5g5TMvw==";
     };
     dependencies = [
       sources."@ampproject/remapping-2.3.0"
       sources."@ardatan/sync-fetch-0.0.1"
-      sources."@astrojs/compiler-2.7.0"
-      sources."@babel/code-frame-7.23.5"
-      sources."@babel/compat-data-7.23.5"
-      sources."@babel/core-7.24.0"
-      sources."@babel/generator-7.23.6"
-      sources."@babel/helper-compilation-targets-7.23.6"
-      sources."@babel/helper-environment-visitor-7.22.20"
-      sources."@babel/helper-function-name-7.23.0"
-      sources."@babel/helper-hoist-variables-7.22.5"
-      sources."@babel/helper-module-imports-7.22.15"
-      sources."@babel/helper-module-transforms-7.23.3"
-      sources."@babel/helper-plugin-utils-7.24.0"
-      sources."@babel/helper-simple-access-7.22.5"
-      sources."@babel/helper-split-export-declaration-7.22.6"
-      sources."@babel/helper-string-parser-7.23.4"
-      sources."@babel/helper-validator-identifier-7.22.20"
-      sources."@babel/helper-validator-option-7.23.5"
-      sources."@babel/helpers-7.24.0"
-      sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.24.0"
-      sources."@babel/plugin-syntax-import-assertions-7.23.3"
+      sources."@astrojs/compiler-2.8.0"
+      sources."@babel/code-frame-7.24.6"
+      sources."@babel/compat-data-7.24.6"
+      sources."@babel/core-7.24.6"
+      sources."@babel/generator-7.24.6"
+      (sources."@babel/helper-compilation-targets-7.24.6" // {
+        dependencies = [
+          sources."lru-cache-5.1.1"
+        ];
+      })
+      sources."@babel/helper-environment-visitor-7.24.6"
+      sources."@babel/helper-function-name-7.24.6"
+      sources."@babel/helper-hoist-variables-7.24.6"
+      sources."@babel/helper-module-imports-7.24.6"
+      sources."@babel/helper-module-transforms-7.24.6"
+      sources."@babel/helper-plugin-utils-7.24.6"
+      sources."@babel/helper-simple-access-7.24.6"
+      sources."@babel/helper-split-export-declaration-7.24.6"
+      sources."@babel/helper-string-parser-7.24.6"
+      sources."@babel/helper-validator-identifier-7.24.6"
+      sources."@babel/helper-validator-option-7.24.6"
+      sources."@babel/helpers-7.24.6"
+      sources."@babel/highlight-7.24.6"
+      sources."@babel/parser-7.24.6"
+      sources."@babel/plugin-syntax-import-assertions-7.24.6"
       sources."@babel/polyfill-7.12.1"
-      sources."@babel/template-7.24.0"
-      sources."@babel/traverse-7.24.0"
-      sources."@babel/types-7.24.0"
+      sources."@babel/template-7.24.6"
+      sources."@babel/traverse-7.24.6"
+      sources."@babel/types-7.24.6"
       sources."@graphql-tools/batch-execute-9.0.4"
       sources."@graphql-tools/code-file-loader-8.0.3"
-      sources."@graphql-tools/delegate-10.0.4"
-      sources."@graphql-tools/executor-1.2.2"
+      sources."@graphql-tools/delegate-10.0.11"
+      sources."@graphql-tools/executor-1.2.6"
       sources."@graphql-tools/executor-graphql-ws-1.1.2"
       sources."@graphql-tools/executor-http-1.0.9"
       sources."@graphql-tools/executor-legacy-ws-1.0.6"
@@ -78205,10 +76588,10 @@ in
       sources."@graphql-tools/import-7.0.1"
       sources."@graphql-tools/json-file-loader-8.0.1"
       sources."@graphql-tools/load-8.0.2"
-      sources."@graphql-tools/merge-9.0.3"
-      sources."@graphql-tools/schema-10.0.3"
+      sources."@graphql-tools/merge-9.0.4"
+      sources."@graphql-tools/schema-10.0.4"
       sources."@graphql-tools/url-loader-8.0.2"
-      sources."@graphql-tools/utils-10.1.2"
+      sources."@graphql-tools/utils-10.2.1"
       sources."@graphql-tools/wrap-10.0.5"
       sources."@graphql-typed-document-node/core-3.2.0"
       sources."@iarna/toml-2.2.5"
@@ -78222,36 +76605,44 @@ in
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
       sources."@pkgr/core-0.1.1"
-      sources."@repeaterjs/repeater-3.0.5"
+      sources."@repeaterjs/repeater-3.0.6"
       sources."@types/estree-1.0.5"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."@types/ws-8.5.10"
       sources."@types/yargs-16.0.5"
       sources."@types/yargs-parser-21.0.3"
-      sources."@vue/compiler-core-3.4.21"
-      sources."@vue/compiler-dom-3.4.21"
-      sources."@vue/compiler-sfc-3.4.21"
-      sources."@vue/compiler-ssr-3.4.21"
-      sources."@vue/shared-3.4.21"
+      (sources."@vue/compiler-core-3.4.27" // {
+        dependencies = [
+          sources."source-map-js-1.2.0"
+        ];
+      })
+      sources."@vue/compiler-dom-3.4.27"
+      (sources."@vue/compiler-sfc-3.4.27" // {
+        dependencies = [
+          sources."source-map-js-1.2.0"
+        ];
+      })
+      sources."@vue/compiler-ssr-3.4.27"
+      sources."@vue/shared-3.4.27"
       sources."@whatwg-node/events-0.1.1"
-      sources."@whatwg-node/fetch-0.9.17"
-      sources."@whatwg-node/node-fetch-0.5.8"
+      sources."@whatwg-node/fetch-0.9.18"
+      sources."@whatwg-node/node-fetch-0.5.11"
       sources."acorn-8.11.3"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-3.2.1"
       sources."argparse-2.0.1"
       sources."aria-query-5.3.0"
       sources."array-union-2.1.0"
-      sources."astrojs-compiler-sync-0.3.5"
+      sources."astrojs-compiler-sync-1.0.0"
       sources."axobject-query-4.0.0"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."browserslist-4.23.0"
       sources."bufferutil-4.0.8"
       sources."busboy-1.6.0"
       sources."callsites-3.1.0"
-      sources."caniuse-lite-1.0.30001599"
+      sources."caniuse-lite-1.0.30001627"
       sources."chalk-2.4.2"
       sources."cliui-7.0.4"
       (sources."code-red-1.0.4" // {
@@ -78269,13 +76660,13 @@ in
       sources."cross-inspect-1.0.0"
       sources."css-tree-2.3.1"
       sources."dataloader-2.2.2"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."dedent-js-1.0.1"
       sources."dequal-2.0.3"
       sources."dir-glob-3.0.1"
       sources."dotenv-10.0.0"
       sources."dset-3.1.3"
-      sources."electron-to-chromium-1.4.710"
+      sources."electron-to-chromium-1.4.789"
       sources."emoji-regex-8.0.0"
       sources."encoding-0.1.13"
       sources."entities-4.5.0"
@@ -78288,7 +76679,7 @@ in
       sources."fast-glob-3.3.2"
       sources."fast-querystring-1.1.2"
       sources."fastq-1.17.1"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."fs.realpath-1.0.0"
       sources."gensync-1.0.0-beta.2"
       sources."get-caller-file-2.0.5"
@@ -78302,9 +76693,9 @@ in
           sources."minimatch-4.2.3"
         ];
       })
-      sources."graphql-language-service-5.2.0"
-      sources."graphql-language-service-server-2.12.0"
-      sources."graphql-ws-5.15.0"
+      sources."graphql-language-service-5.2.1"
+      sources."graphql-language-service-server-2.13.0"
+      sources."graphql-ws-5.16.0"
       sources."has-flag-3.0.0"
       sources."iconv-lite-0.6.3"
       sources."ignore-5.3.1"
@@ -78331,12 +76722,12 @@ in
       sources."lines-and-columns-1.2.4"
       sources."locate-character-3.0.0"
       sources."lower-case-2.0.2"
-      sources."lru-cache-5.1.1"
-      sources."magic-string-0.30.8"
+      sources."lru-cache-10.2.2"
+      sources."magic-string-0.30.10"
       sources."mdn-data-2.0.30"
       sources."merge2-1.4.1"
       sources."meros-1.3.0"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."minimatch-3.1.2"
       sources."mkdirp-1.0.4"
       sources."ms-2.1.2"
@@ -78344,7 +76735,7 @@ in
       sources."no-case-3.0.4"
       sources."node-abort-controller-3.1.1"
       sources."node-fetch-2.7.0"
-      sources."node-gyp-build-4.8.0"
+      sources."node-gyp-build-4.8.1"
       sources."node-releases-2.0.14"
       sources."normalize-path-2.1.1"
       sources."nullthrows-1.1.1"
@@ -78360,11 +76751,11 @@ in
           sources."estree-walker-3.0.3"
         ];
       })
-      sources."picocolors-1.0.0"
+      sources."picocolors-1.0.1"
       sources."picomatch-2.3.1"
-      (sources."postcss-8.4.36" // {
+      (sources."postcss-8.4.38" // {
         dependencies = [
-          sources."source-map-js-1.1.0"
+          sources."source-map-js-1.2.0"
         ];
       })
       sources."queue-microtask-1.2.3"
@@ -78383,25 +76774,25 @@ in
       sources."string-width-4.2.3"
       sources."strip-ansi-6.0.1"
       sources."supports-color-5.5.0"
-      (sources."svelte-4.2.12" // {
+      (sources."svelte-4.2.17" // {
         dependencies = [
           sources."estree-walker-3.0.3"
         ];
       })
-      sources."svelte2tsx-0.7.4"
+      sources."svelte2tsx-0.7.9"
       sources."synckit-0.9.0"
       sources."to-fast-properties-2.0.0"
       sources."to-regex-range-5.0.1"
       sources."tr46-0.0.3"
       sources."tslib-2.6.2"
-      sources."typescript-5.4.2"
+      sources."typescript-5.4.5"
       sources."undici-types-5.26.5"
       sources."unixify-1.0.0"
-      sources."update-browserslist-db-1.0.13"
+      sources."update-browserslist-db-1.0.16"
       sources."urlpattern-polyfill-10.0.0"
-      sources."utf-8-validate-6.0.3"
+      sources."utf-8-validate-6.0.4"
       sources."value-or-promise-1.0.12"
-      sources."vscode-jsonrpc-8.2.0"
+      sources."vscode-jsonrpc-8.2.1"
       sources."vscode-languageserver-8.1.0"
       (sources."vscode-languageserver-protocol-3.17.3" // {
         dependencies = [
@@ -78421,7 +76812,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-8.16.0"
+      sources."ws-8.17.0"
       sources."y18n-5.0.8"
       sources."yallist-3.1.1"
       sources."yargs-16.2.0"
@@ -78450,11 +76841,11 @@ in
       sources."abbrev-1.1.1"
       sources."array-each-1.0.1"
       sources."array-slice-1.1.0"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."detect-file-1.0.0"
       sources."expand-tilde-2.0.2"
       sources."extend-3.0.2"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."findup-sync-4.0.0"
       sources."fined-1.2.0"
       sources."flagged-respawn-1.0.1"
@@ -78483,7 +76874,7 @@ in
       sources."liftup-3.0.1"
       sources."make-iterator-1.0.1"
       sources."map-cache-0.2.2"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."nopt-4.0.3"
       sources."object.defaults-1.1.0"
       sources."object.map-1.0.1"
@@ -78550,9 +76941,13 @@ in
       sources."call-bind-1.0.7"
       sources."content-disposition-0.5.4"
       sources."content-type-1.0.5"
-      sources."cookie-0.5.0"
+      sources."cookie-0.6.0"
       sources."cookie-signature-1.0.6"
-      sources."debug-2.6.9"
+      (sources."debug-2.6.9" // {
+        dependencies = [
+          sources."ms-2.0.0"
+        ];
+      })
       sources."define-data-property-1.1.4"
       sources."depd-2.0.0"
       sources."destroy-1.2.0"
@@ -78562,7 +76957,7 @@ in
       sources."es-errors-1.3.0"
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
-      sources."express-4.18.3"
+      sources."express-4.19.2"
       sources."express-ws-2.0.0"
       sources."finalhandler-1.2.0"
       sources."forwarded-0.2.0"
@@ -78585,7 +76980,7 @@ in
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
       sources."minimist-1.2.8"
-      sources."ms-2.0.0"
+      sources."ms-2.1.3"
       sources."negotiator-0.6.3"
       sources."object-inspect-1.13.1"
       sources."on-finished-2.4.1"
@@ -78598,11 +76993,7 @@ in
       sources."raw-body-2.5.2"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      (sources."send-0.18.0" // {
-        dependencies = [
-          sources."ms-2.1.3"
-        ];
-      })
+      sources."send-0.18.0"
       sources."serve-static-1.15.0"
       sources."set-function-length-1.2.2"
       sources."setprototypeof-1.2.0"
@@ -78629,421 +77020,156 @@ in
   gulp = nodeEnv.buildNodePackage {
     name = "gulp";
     packageName = "gulp";
-    version = "4.0.2";
+    version = "5.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz";
-      sha512 = "dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==";
+      url = "https://registry.npmjs.org/gulp/-/gulp-5.0.0.tgz";
+      sha512 = "S8Z8066SSileaYw1S2N1I64IUc/myI2bqe2ihOBzO6+nKpvNSg7ZcWJt/AwF8LC/NVN+/QZ560Cb/5OPsyhkhg==";
     };
     dependencies = [
-      sources."ansi-colors-1.1.0"
-      sources."ansi-gray-0.1.1"
-      sources."ansi-regex-2.1.1"
-      sources."ansi-wrap-0.1.0"
-      (sources."anymatch-2.0.0" // {
-        dependencies = [
-          sources."normalize-path-2.1.1"
-        ];
-      })
-      sources."append-buffer-1.0.2"
-      sources."archy-1.0.0"
-      sources."arr-diff-4.0.0"
-      sources."arr-filter-1.1.2"
-      sources."arr-flatten-1.1.0"
-      sources."arr-map-2.0.2"
-      sources."arr-union-3.1.0"
+      sources."@gulpjs/messages-1.1.0"
+      sources."@gulpjs/to-absolute-glob-4.0.0"
+      sources."ansi-regex-5.0.1"
+      sources."ansi-styles-4.3.0"
+      sources."anymatch-3.1.3"
       sources."array-each-1.0.1"
-      (sources."array-initial-1.1.0" // {
-        dependencies = [
-          sources."is-number-4.0.0"
-        ];
-      })
-      (sources."array-last-1.3.0" // {
-        dependencies = [
-          sources."is-number-4.0.0"
-        ];
-      })
       sources."array-slice-1.1.0"
-      (sources."array-sort-1.0.0" // {
-        dependencies = [
-          sources."kind-of-5.1.0"
-        ];
-      })
-      sources."array-unique-0.3.2"
-      sources."assign-symbols-1.0.0"
-      sources."async-done-1.3.2"
-      sources."async-each-1.0.6"
-      sources."async-settle-1.0.0"
-      sources."atob-2.1.2"
-      sources."bach-1.2.0"
-      sources."balanced-match-1.0.2"
-      (sources."base-0.11.2" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-        ];
-      })
-      sources."binary-extensions-1.13.1"
-      sources."bindings-1.5.0"
-      sources."brace-expansion-1.1.11"
-      (sources."braces-2.3.2" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      sources."buffer-equal-1.0.1"
-      sources."buffer-from-1.1.2"
-      sources."cache-base-1.0.1"
-      sources."call-bind-1.0.7"
-      sources."camelcase-3.0.0"
-      sources."chokidar-2.1.8"
-      (sources."class-utils-0.3.6" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."is-descriptor-0.1.7"
-        ];
-      })
-      sources."cliui-3.2.0"
+      sources."async-done-2.0.0"
+      sources."async-settle-2.0.0"
+      sources."b4a-1.6.6"
+      sources."bach-2.0.1"
+      sources."base64-js-1.5.1"
+      sources."binary-extensions-2.3.0"
+      sources."bl-5.1.0"
+      sources."braces-3.0.3"
+      sources."buffer-6.0.3"
+      sources."chalk-4.1.2"
+      sources."chokidar-3.6.0"
+      sources."cliui-7.0.4"
       sources."clone-2.1.2"
-      sources."clone-buffer-1.0.0"
       sources."clone-stats-1.0.0"
-      sources."cloneable-readable-1.1.3"
-      sources."code-point-at-1.1.0"
-      sources."collection-map-1.0.0"
-      sources."collection-visit-1.0.0"
-      sources."color-support-1.1.3"
-      sources."component-emitter-1.3.1"
-      sources."concat-map-0.0.1"
-      sources."concat-stream-1.6.2"
-      sources."convert-source-map-1.9.0"
-      sources."copy-descriptor-0.1.1"
-      (sources."copy-props-2.0.5" // {
-        dependencies = [
-          sources."is-plain-object-5.0.0"
-        ];
-      })
-      sources."core-util-is-1.0.3"
-      sources."d-1.0.2"
-      sources."debug-2.6.9"
-      sources."decamelize-1.2.0"
-      sources."decode-uri-component-0.2.2"
-      (sources."default-compare-1.0.0" // {
-        dependencies = [
-          sources."kind-of-5.1.0"
-        ];
-      })
-      sources."default-resolution-2.0.0"
-      sources."define-data-property-1.1.4"
-      sources."define-properties-1.2.1"
-      sources."define-property-2.0.2"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
+      sources."convert-source-map-2.0.0"
+      sources."copy-props-4.0.0"
       sources."detect-file-1.0.0"
-      sources."duplexify-3.7.1"
-      sources."each-props-1.3.2"
+      sources."each-props-3.0.0"
+      sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
-      sources."error-ex-1.3.2"
-      sources."es-define-property-1.0.0"
-      sources."es-errors-1.3.0"
-      sources."es5-ext-0.10.64"
-      sources."es6-iterator-2.0.3"
-      sources."es6-symbol-3.1.4"
-      sources."es6-weak-map-2.0.3"
-      sources."esniff-2.0.1"
-      sources."event-emitter-0.3.5"
-      (sources."expand-brackets-2.1.4" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."extend-shallow-2.0.1"
-          sources."is-descriptor-0.1.7"
-        ];
-      })
+      sources."escalade-3.1.2"
       sources."expand-tilde-2.0.2"
-      sources."ext-1.7.0"
       sources."extend-3.0.2"
-      (sources."extend-shallow-3.0.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-        ];
-      })
-      (sources."extglob-2.0.4" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      sources."fancy-log-1.3.3"
-      sources."fast-levenshtein-1.1.4"
-      sources."file-uri-to-path-1.0.0"
-      (sources."fill-range-4.0.0" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      sources."find-up-1.1.2"
-      sources."findup-sync-3.0.0"
-      sources."fined-1.2.0"
-      sources."flagged-respawn-1.0.1"
-      sources."flush-write-stream-1.1.1"
+      sources."fast-fifo-1.3.2"
+      sources."fast-levenshtein-3.0.0"
+      sources."fastest-levenshtein-1.0.16"
+      sources."fastq-1.17.1"
+      sources."fill-range-7.1.1"
+      sources."findup-sync-5.0.0"
+      sources."fined-2.0.0"
+      sources."flagged-respawn-2.0.0"
       sources."for-in-1.0.2"
       sources."for-own-1.0.0"
-      sources."fragment-cache-0.2.1"
-      sources."fs-mkdirp-stream-1.0.0"
-      sources."fs.realpath-1.0.0"
-      sources."fsevents-1.2.13"
+      sources."fs-mkdirp-stream-2.0.1"
       sources."function-bind-1.1.2"
-      sources."get-caller-file-1.0.3"
-      sources."get-intrinsic-1.2.4"
-      sources."get-value-2.0.6"
-      sources."glob-7.2.3"
-      (sources."glob-parent-3.1.0" // {
+      sources."get-caller-file-2.0.5"
+      sources."glob-parent-5.1.2"
+      (sources."glob-stream-8.0.2" // {
         dependencies = [
-          sources."is-glob-3.1.0"
+          sources."glob-parent-6.0.2"
         ];
       })
-      sources."glob-stream-6.1.0"
-      sources."glob-watcher-5.0.5"
+      sources."glob-watcher-6.0.0"
       sources."global-modules-1.0.0"
       sources."global-prefix-1.0.2"
-      sources."glogg-1.0.2"
-      sources."gopd-1.0.1"
+      sources."glogg-2.2.0"
       sources."graceful-fs-4.2.11"
-      sources."gulp-cli-2.3.0"
-      sources."gulplog-1.0.0"
-      sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.3"
-      sources."has-symbols-1.0.3"
-      sources."has-value-1.0.0"
-      (sources."has-values-1.0.0" // {
-        dependencies = [
-          sources."kind-of-4.0.0"
-        ];
-      })
+      sources."gulp-cli-3.0.0"
+      sources."gulplog-2.2.0"
+      sources."has-flag-4.0.0"
       sources."hasown-2.0.2"
       sources."homedir-polyfill-1.0.3"
-      sources."hosted-git-info-2.8.9"
-      sources."inflight-1.0.6"
+      sources."iconv-lite-0.6.3"
+      sources."ieee754-1.2.1"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
-      sources."interpret-1.4.0"
-      sources."invert-kv-1.0.0"
+      sources."interpret-3.1.1"
       sources."is-absolute-1.0.0"
-      sources."is-accessor-descriptor-1.0.1"
-      sources."is-arrayish-0.2.1"
-      sources."is-binary-path-1.0.1"
-      sources."is-buffer-1.1.6"
+      sources."is-binary-path-2.1.0"
       sources."is-core-module-2.13.1"
-      sources."is-data-descriptor-1.0.1"
-      sources."is-descriptor-1.0.3"
-      sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-1.0.0"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
       sources."is-negated-glob-1.0.0"
-      (sources."is-number-3.0.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."is-plain-object-2.0.4"
+      sources."is-number-7.0.0"
+      sources."is-plain-object-5.0.0"
       sources."is-relative-1.0.0"
       sources."is-unc-path-1.0.0"
-      sources."is-utf8-0.2.1"
       sources."is-valid-glob-1.0.0"
       sources."is-windows-1.0.2"
-      sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
-      sources."json-stable-stringify-without-jsonify-1.0.1"
-      sources."just-debounce-1.1.0"
-      sources."kind-of-6.0.3"
-      sources."last-run-1.1.1"
-      sources."lazystream-1.0.1"
-      sources."lcid-1.0.0"
-      sources."lead-1.0.0"
-      sources."liftoff-3.1.0"
-      sources."load-json-file-1.1.0"
-      sources."make-iterator-1.0.1"
+      sources."last-run-2.0.0"
+      sources."lead-4.0.0"
+      sources."liftoff-5.0.0"
       sources."map-cache-0.2.2"
-      sources."map-visit-1.0.0"
-      (sources."matchdep-2.0.0" // {
-        dependencies = [
-          sources."findup-sync-2.0.0"
-          sources."is-glob-3.1.0"
-        ];
-      })
-      sources."micromatch-3.1.10"
-      sources."minimatch-3.1.2"
-      (sources."mixin-deep-1.3.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-        ];
-      })
-      sources."ms-2.0.0"
-      sources."mute-stdout-1.0.1"
-      sources."nan-2.19.0"
-      sources."nanomatch-1.2.13"
-      sources."next-tick-1.1.0"
-      sources."normalize-package-data-2.5.0"
+      sources."micromatch-4.0.7"
+      sources."mute-stdout-2.0.0"
       sources."normalize-path-3.0.0"
-      sources."now-and-later-2.0.1"
-      sources."number-is-nan-1.0.1"
-      (sources."object-copy-0.1.0" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."is-descriptor-0.1.7"
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."object-keys-1.1.1"
-      sources."object-visit-1.0.1"
-      sources."object.assign-4.1.5"
+      sources."now-and-later-3.0.0"
       sources."object.defaults-1.1.0"
-      sources."object.map-1.0.1"
       sources."object.pick-1.3.0"
-      sources."object.reduce-1.0.1"
       sources."once-1.4.0"
-      sources."ordered-read-streams-1.0.1"
-      sources."os-locale-1.4.0"
       sources."parse-filepath-1.0.2"
-      sources."parse-json-2.2.0"
-      sources."parse-node-version-1.0.1"
       sources."parse-passwd-1.0.0"
-      sources."pascalcase-0.1.1"
-      sources."path-dirname-1.0.2"
-      sources."path-exists-2.1.0"
-      sources."path-is-absolute-1.0.1"
       sources."path-parse-1.0.7"
       sources."path-root-0.1.1"
       sources."path-root-regex-0.1.2"
-      sources."path-type-1.1.0"
-      sources."pify-2.3.0"
-      sources."pinkie-2.0.4"
-      sources."pinkie-promise-2.0.1"
-      sources."posix-character-classes-0.1.1"
-      sources."pretty-hrtime-1.0.3"
-      sources."process-nextick-args-2.0.1"
-      sources."pump-2.0.1"
-      sources."pumpify-1.5.1"
-      sources."read-pkg-1.1.0"
-      sources."read-pkg-up-1.0.1"
-      sources."readable-stream-2.3.8"
-      sources."readdirp-2.2.1"
-      sources."rechoir-0.6.2"
-      sources."regex-not-1.0.2"
-      sources."remove-bom-buffer-3.0.0"
-      sources."remove-bom-stream-1.2.0"
+      sources."picomatch-2.3.1"
+      sources."queue-tick-1.0.1"
+      sources."readable-stream-3.6.2"
+      sources."readdirp-3.6.0"
+      sources."rechoir-0.8.0"
       sources."remove-trailing-separator-1.1.0"
-      sources."repeat-element-1.1.4"
-      sources."repeat-string-1.6.1"
-      sources."replace-ext-1.0.1"
-      sources."replace-homedir-1.0.0"
+      sources."replace-ext-2.0.0"
+      sources."replace-homedir-2.0.0"
       sources."require-directory-2.1.1"
-      sources."require-main-filename-1.0.1"
       sources."resolve-1.22.8"
       sources."resolve-dir-1.0.1"
-      sources."resolve-options-1.1.0"
-      sources."resolve-url-0.2.1"
-      sources."ret-0.1.15"
-      sources."safe-buffer-5.1.2"
-      sources."safe-regex-1.1.0"
-      sources."semver-5.7.2"
-      sources."semver-greatest-satisfied-range-1.1.0"
-      sources."set-blocking-2.0.0"
-      sources."set-function-length-1.2.2"
-      (sources."set-value-2.0.1" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      (sources."snapdragon-0.8.2" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."extend-shallow-2.0.1"
-          sources."is-descriptor-0.1.7"
-        ];
-      })
-      (sources."snapdragon-node-2.1.1" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-        ];
-      })
-      (sources."snapdragon-util-3.0.1" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."source-map-0.5.7"
-      sources."source-map-resolve-0.5.3"
-      sources."source-map-url-0.4.1"
-      sources."sparkles-1.0.1"
-      sources."spdx-correct-3.2.0"
-      sources."spdx-exceptions-2.5.0"
-      sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.17"
-      sources."split-string-3.1.0"
-      sources."stack-trace-0.0.10"
-      (sources."static-extend-0.1.2" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."is-descriptor-0.1.7"
-        ];
-      })
+      sources."resolve-options-2.0.0"
+      sources."reusify-1.0.4"
+      sources."safe-buffer-5.2.1"
+      sources."safer-buffer-2.1.2"
+      sources."semver-6.3.1"
+      sources."semver-greatest-satisfied-range-2.0.0"
+      sources."sparkles-2.1.0"
+      sources."stream-composer-1.0.2"
       sources."stream-exhaust-1.0.2"
-      sources."stream-shift-1.0.3"
-      sources."string-width-1.0.2"
-      sources."string_decoder-1.1.1"
-      sources."strip-ansi-3.0.1"
-      sources."strip-bom-2.0.0"
+      sources."streamx-2.18.0"
+      sources."string-width-4.2.3"
+      sources."string_decoder-1.3.0"
+      sources."strip-ansi-6.0.1"
+      sources."supports-color-7.2.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
-      sources."sver-compat-1.5.0"
-      sources."through2-2.0.5"
-      sources."through2-filter-3.0.0"
-      sources."time-stamp-1.1.0"
-      sources."to-absolute-glob-2.0.2"
-      (sources."to-object-path-0.3.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."to-regex-3.0.2"
-      sources."to-regex-range-2.1.1"
-      sources."to-through-2.0.0"
-      sources."type-2.7.2"
-      sources."typedarray-0.0.6"
+      sources."sver-1.8.4"
+      sources."teex-1.0.1"
+      sources."text-decoder-1.1.0"
+      sources."to-regex-range-5.0.1"
+      sources."to-through-3.0.0"
       sources."unc-path-regex-0.1.2"
-      sources."undertaker-1.3.0"
-      sources."undertaker-registry-1.0.1"
-      sources."union-value-1.0.1"
-      sources."unique-stream-2.3.1"
-      (sources."unset-value-1.0.0" // {
-        dependencies = [
-          (sources."has-value-0.3.1" // {
-            dependencies = [
-              sources."isobject-2.1.0"
-            ];
-          })
-          sources."has-values-0.1.4"
-        ];
-      })
-      sources."upath-1.2.0"
-      sources."urix-0.1.0"
-      sources."use-3.1.1"
+      sources."undertaker-2.0.0"
+      sources."undertaker-registry-2.0.0"
       sources."util-deprecate-1.0.2"
-      sources."v8flags-3.2.0"
-      sources."validate-npm-package-license-3.0.4"
-      sources."value-or-function-3.0.0"
-      sources."vinyl-2.2.1"
-      sources."vinyl-fs-3.0.3"
-      (sources."vinyl-sourcemap-1.1.0" // {
-        dependencies = [
-          sources."normalize-path-2.1.1"
-        ];
-      })
+      sources."v8flags-4.0.1"
+      sources."value-or-function-4.0.0"
+      sources."vinyl-3.0.0"
+      sources."vinyl-contents-2.0.0"
+      sources."vinyl-fs-4.0.0"
+      sources."vinyl-sourcemap-2.0.0"
       sources."which-1.3.1"
-      sources."which-module-1.0.0"
-      sources."wrap-ansi-2.1.0"
+      sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
-      sources."xtend-4.0.2"
-      sources."y18n-3.2.2"
-      sources."yargs-7.1.2"
-      sources."yargs-parser-5.0.1"
+      sources."y18n-5.0.8"
+      sources."yargs-16.2.0"
+      sources."yargs-parser-20.2.9"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -79058,337 +77184,91 @@ in
   gulp-cli = nodeEnv.buildNodePackage {
     name = "gulp-cli";
     packageName = "gulp-cli";
-    version = "2.3.0";
+    version = "3.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz";
-      sha512 = "zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==";
+      url = "https://registry.npmjs.org/gulp-cli/-/gulp-cli-3.0.0.tgz";
+      sha512 = "RtMIitkT8DEMZZygHK2vEuLPqLPAFB4sntSxg4NoDta7ciwGZ18l7JuhCTiS5deOJi2IoK0btE+hs6R4sfj7AA==";
     };
     dependencies = [
-      sources."ansi-colors-1.1.0"
-      sources."ansi-gray-0.1.1"
-      sources."ansi-regex-2.1.1"
-      sources."ansi-wrap-0.1.0"
-      sources."archy-1.0.0"
-      sources."arr-diff-4.0.0"
-      sources."arr-flatten-1.1.0"
-      sources."arr-union-3.1.0"
+      sources."@gulpjs/messages-1.1.0"
+      sources."ansi-regex-5.0.1"
+      sources."ansi-styles-4.3.0"
       sources."array-each-1.0.1"
       sources."array-slice-1.1.0"
-      sources."array-sort-1.0.0"
-      sources."array-unique-0.3.2"
-      sources."assign-symbols-1.0.0"
-      sources."atob-2.1.2"
-      (sources."base-0.11.2" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-        ];
-      })
-      (sources."braces-2.3.2" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      sources."buffer-from-1.1.2"
-      sources."cache-base-1.0.1"
-      sources."call-bind-1.0.7"
-      sources."camelcase-3.0.0"
-      (sources."class-utils-0.3.6" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."is-descriptor-0.1.7"
-        ];
-      })
-      sources."cliui-3.2.0"
-      sources."code-point-at-1.1.0"
-      sources."collection-visit-1.0.0"
-      sources."color-support-1.1.3"
-      sources."component-emitter-1.3.1"
-      sources."concat-stream-1.6.2"
-      sources."copy-descriptor-0.1.1"
-      sources."copy-props-2.0.5"
-      sources."core-util-is-1.0.3"
-      sources."d-1.0.2"
-      sources."debug-2.6.9"
-      sources."decamelize-1.2.0"
-      sources."decode-uri-component-0.2.2"
-      sources."default-compare-1.0.0"
-      sources."define-data-property-1.1.4"
-      sources."define-properties-1.2.1"
-      sources."define-property-2.0.2"
+      sources."braces-3.0.3"
+      sources."chalk-4.1.2"
+      sources."cliui-7.0.4"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
+      sources."copy-props-4.0.0"
       sources."detect-file-1.0.0"
-      (sources."each-props-1.3.2" // {
-        dependencies = [
-          sources."is-plain-object-2.0.4"
-        ];
-      })
-      sources."error-ex-1.3.2"
-      sources."es-define-property-1.0.0"
-      sources."es-errors-1.3.0"
-      sources."es5-ext-0.10.64"
-      sources."es6-iterator-2.0.3"
-      sources."es6-symbol-3.1.4"
-      sources."esniff-2.0.1"
-      sources."event-emitter-0.3.5"
-      (sources."expand-brackets-2.1.4" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."extend-shallow-2.0.1"
-          sources."is-descriptor-0.1.7"
-        ];
-      })
+      sources."each-props-3.0.0"
+      sources."emoji-regex-8.0.0"
+      sources."escalade-3.1.2"
       sources."expand-tilde-2.0.2"
-      sources."ext-1.7.0"
       sources."extend-3.0.2"
-      (sources."extend-shallow-3.0.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-          sources."is-plain-object-2.0.4"
-        ];
-      })
-      (sources."extglob-2.0.4" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      sources."fancy-log-1.3.3"
-      (sources."fill-range-4.0.0" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      sources."find-up-1.1.2"
-      sources."findup-sync-3.0.0"
-      (sources."fined-1.2.0" // {
-        dependencies = [
-          sources."is-plain-object-2.0.4"
-        ];
-      })
-      sources."flagged-respawn-1.0.1"
+      sources."fill-range-7.1.1"
+      sources."findup-sync-5.0.0"
+      sources."fined-2.0.0"
+      sources."flagged-respawn-2.0.0"
       sources."for-in-1.0.2"
       sources."for-own-1.0.0"
-      sources."fragment-cache-0.2.1"
       sources."function-bind-1.1.2"
-      sources."get-caller-file-1.0.3"
-      sources."get-intrinsic-1.2.4"
-      sources."get-value-2.0.6"
+      sources."get-caller-file-2.0.5"
       sources."global-modules-1.0.0"
       sources."global-prefix-1.0.2"
-      sources."glogg-1.0.2"
-      sources."gopd-1.0.1"
-      sources."graceful-fs-4.2.11"
-      sources."gulplog-1.0.0"
-      sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.3"
-      sources."has-symbols-1.0.3"
-      sources."has-value-1.0.0"
-      (sources."has-values-1.0.0" // {
-        dependencies = [
-          sources."kind-of-4.0.0"
-        ];
-      })
+      sources."glogg-2.2.0"
+      sources."gulplog-2.2.0"
+      sources."has-flag-4.0.0"
       sources."hasown-2.0.2"
       sources."homedir-polyfill-1.0.3"
-      sources."hosted-git-info-2.8.9"
-      sources."inherits-2.0.4"
       sources."ini-1.3.8"
-      sources."interpret-1.4.0"
-      sources."invert-kv-1.0.0"
+      sources."interpret-3.1.1"
       sources."is-absolute-1.0.0"
-      sources."is-accessor-descriptor-1.0.1"
-      sources."is-arrayish-0.2.1"
-      sources."is-buffer-1.1.6"
       sources."is-core-module-2.13.1"
-      sources."is-data-descriptor-1.0.1"
-      sources."is-descriptor-1.0.3"
-      sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-1.0.0"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
-      (sources."is-number-3.0.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
+      sources."is-number-7.0.0"
       sources."is-plain-object-5.0.0"
       sources."is-relative-1.0.0"
       sources."is-unc-path-1.0.0"
-      sources."is-utf8-0.2.1"
       sources."is-windows-1.0.2"
-      sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
-      sources."kind-of-5.1.0"
-      sources."lcid-1.0.0"
-      (sources."liftoff-3.1.0" // {
-        dependencies = [
-          sources."is-plain-object-2.0.4"
-        ];
-      })
-      sources."load-json-file-1.1.0"
-      (sources."make-iterator-1.0.1" // {
-        dependencies = [
-          sources."kind-of-6.0.3"
-        ];
-      })
+      sources."liftoff-5.0.0"
       sources."map-cache-0.2.2"
-      sources."map-visit-1.0.0"
-      (sources."matchdep-2.0.0" // {
-        dependencies = [
-          sources."findup-sync-2.0.0"
-          sources."is-glob-3.1.0"
-        ];
-      })
-      (sources."micromatch-3.1.10" // {
-        dependencies = [
-          sources."kind-of-6.0.3"
-        ];
-      })
-      (sources."mixin-deep-1.3.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-          sources."is-plain-object-2.0.4"
-        ];
-      })
-      sources."ms-2.0.0"
-      sources."mute-stdout-1.0.1"
-      (sources."nanomatch-1.2.13" // {
-        dependencies = [
-          sources."kind-of-6.0.3"
-        ];
-      })
-      sources."next-tick-1.1.0"
-      sources."normalize-package-data-2.5.0"
-      sources."number-is-nan-1.0.1"
-      (sources."object-copy-0.1.0" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."is-descriptor-0.1.7"
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."object-keys-1.1.1"
-      sources."object-visit-1.0.1"
-      sources."object.assign-4.1.5"
+      sources."micromatch-4.0.7"
+      sources."mute-stdout-2.0.0"
       sources."object.defaults-1.1.0"
-      sources."object.map-1.0.1"
       sources."object.pick-1.3.0"
-      sources."os-locale-1.4.0"
       sources."parse-filepath-1.0.2"
-      sources."parse-json-2.2.0"
-      sources."parse-node-version-1.0.1"
       sources."parse-passwd-1.0.0"
-      sources."pascalcase-0.1.1"
-      sources."path-exists-2.1.0"
       sources."path-parse-1.0.7"
       sources."path-root-0.1.1"
       sources."path-root-regex-0.1.2"
-      sources."path-type-1.1.0"
-      sources."pify-2.3.0"
-      sources."pinkie-2.0.4"
-      sources."pinkie-promise-2.0.1"
-      sources."posix-character-classes-0.1.1"
-      sources."pretty-hrtime-1.0.3"
-      sources."process-nextick-args-2.0.1"
-      sources."read-pkg-1.1.0"
-      sources."read-pkg-up-1.0.1"
-      sources."readable-stream-2.3.8"
-      sources."rechoir-0.6.2"
-      sources."regex-not-1.0.2"
-      sources."remove-trailing-separator-1.1.0"
-      sources."repeat-element-1.1.4"
-      sources."repeat-string-1.6.1"
-      sources."replace-homedir-1.0.0"
+      sources."picomatch-2.3.1"
+      sources."rechoir-0.8.0"
+      sources."replace-homedir-2.0.0"
       sources."require-directory-2.1.1"
-      sources."require-main-filename-1.0.1"
       sources."resolve-1.22.8"
       sources."resolve-dir-1.0.1"
-      sources."resolve-url-0.2.1"
-      sources."ret-0.1.15"
-      sources."safe-buffer-5.1.2"
-      sources."safe-regex-1.1.0"
-      sources."semver-5.7.2"
-      sources."semver-greatest-satisfied-range-1.1.0"
-      sources."set-blocking-2.0.0"
-      sources."set-function-length-1.2.2"
-      (sources."set-value-2.0.1" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-          sources."is-plain-object-2.0.4"
-        ];
-      })
-      (sources."snapdragon-0.8.2" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."extend-shallow-2.0.1"
-          sources."is-descriptor-0.1.7"
-        ];
-      })
-      (sources."snapdragon-node-2.1.1" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-        ];
-      })
-      (sources."snapdragon-util-3.0.1" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."source-map-0.5.7"
-      sources."source-map-resolve-0.5.3"
-      sources."source-map-url-0.4.1"
-      sources."sparkles-1.0.1"
-      sources."spdx-correct-3.2.0"
-      sources."spdx-exceptions-2.5.0"
-      sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.17"
-      sources."split-string-3.1.0"
-      sources."stack-trace-0.0.10"
-      (sources."static-extend-0.1.2" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."is-descriptor-0.1.7"
-        ];
-      })
-      sources."string-width-1.0.2"
-      sources."string_decoder-1.1.1"
-      sources."strip-ansi-3.0.1"
-      sources."strip-bom-2.0.0"
+      sources."semver-6.3.1"
+      sources."semver-greatest-satisfied-range-2.0.0"
+      sources."sparkles-2.1.0"
+      sources."string-width-4.2.3"
+      sources."strip-ansi-6.0.1"
+      sources."supports-color-7.2.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
-      sources."sver-compat-1.5.0"
-      sources."time-stamp-1.1.0"
-      (sources."to-object-path-0.3.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."to-regex-3.0.2"
-      sources."to-regex-range-2.1.1"
-      sources."type-2.7.2"
-      sources."typedarray-0.0.6"
+      sources."sver-1.8.4"
+      sources."to-regex-range-5.0.1"
       sources."unc-path-regex-0.1.2"
-      sources."union-value-1.0.1"
-      (sources."unset-value-1.0.0" // {
-        dependencies = [
-          (sources."has-value-0.3.1" // {
-            dependencies = [
-              sources."isobject-2.1.0"
-            ];
-          })
-          sources."has-values-0.1.4"
-        ];
-      })
-      sources."urix-0.1.0"
-      sources."use-3.1.1"
-      sources."util-deprecate-1.0.2"
-      sources."v8flags-3.2.0"
-      sources."validate-npm-package-license-3.0.4"
+      sources."v8flags-4.0.1"
       sources."which-1.3.1"
-      sources."which-module-1.0.0"
-      sources."wrap-ansi-2.1.0"
-      sources."y18n-3.2.2"
-      sources."yargs-7.1.2"
-      sources."yargs-parser-5.0.1"
+      sources."wrap-ansi-7.0.0"
+      sources."y18n-5.0.8"
+      sources."yargs-16.2.0"
+      sources."yargs-parser-20.2.9"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -79458,7 +77338,7 @@ in
       sources."jp-kernel-2.0.0"
       sources."nan-2.17.0"
       sources."nel-1.3.0"
-      sources."node-gyp-build-4.8.0"
+      sources."node-gyp-build-4.8.1"
       sources."uuid-3.4.0"
       sources."zeromq-5.3.1"
     ];
@@ -79492,7 +77372,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.12.0"
+      sources."aws4-1.13.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."boolbase-1.0.0"
       sources."camelcase-1.2.1"
@@ -79765,7 +77645,7 @@ in
     };
     dependencies = [
       sources."@jcubic/lily-0.3.0"
-      sources."@types/jquery-3.5.29"
+      sources."@types/jquery-3.5.30"
       sources."@types/sizzle-2.3.8"
       sources."ansidec-0.3.4"
       sources."arch-2.2.0"
@@ -79774,14 +77654,17 @@ in
       sources."clipboardy-2.3.0"
       sources."clone-1.0.4"
       sources."combined-stream-1.0.8"
-      sources."coveralls-next-4.2.0"
+      sources."coveralls-next-4.2.1"
       sources."cross-spawn-6.0.5"
+      sources."data-uri-to-buffer-4.0.1"
       sources."decimal.js-10.3.1"
       sources."defaults-1.0.4"
       sources."delayed-stream-1.0.0"
       sources."end-of-stream-1.4.4"
       sources."execa-1.0.0"
+      sources."fetch-blob-3.2.0"
       sources."form-data-4.0.0"
+      sources."formdata-polyfill-4.0.10"
       sources."get-stream-4.1.0"
       sources."iconv-lite-0.6.3"
       sources."is-docker-2.2.1"
@@ -79789,7 +77672,7 @@ in
       sources."is-wsl-2.2.0"
       sources."isexe-2.0.0"
       sources."jquery-3.7.1"
-      sources."jquery.terminal-2.39.0"
+      sources."jquery.terminal-2.42.0"
       sources."js-yaml-4.1.0"
       sources."keyboardevent-key-polyfill-1.1.0"
       sources."lcov-parse-1.0.0"
@@ -79797,8 +77680,10 @@ in
       sources."log-driver-1.2.7"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
-      sources."minimist-1.2.7"
+      sources."minimist-1.2.8"
       sources."nice-try-1.0.5"
+      sources."node-domexception-1.0.0"
+      sources."node-fetch-3.3.2"
       sources."npm-run-path-2.0.2"
       sources."once-1.4.0"
       sources."p-finally-1.0.0"
@@ -79812,6 +77697,7 @@ in
       sources."signal-exit-3.0.7"
       sources."strip-eof-1.0.0"
       sources."wcwidth-1.0.1"
+      sources."web-streams-polyfill-3.3.3"
       sources."which-1.3.1"
       sources."wrappy-1.0.2"
       sources."xdg-basedir-4.0.0"
@@ -79829,26 +77715,26 @@ in
   intelephense = nodeEnv.buildNodePackage {
     name = "intelephense";
     packageName = "intelephense";
-    version = "1.10.2";
+    version = "1.10.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/intelephense/-/intelephense-1.10.2.tgz";
-      sha512 = "bvN8aH5mHnuQH0yAr2ZFwQPtC6nE3MfxQvtzjCICxwAMvdngJyUPFvFR8aFKhwgRYMNzVmIMZSOlx+3DJWviUA==";
+      url = "https://registry.npmjs.org/intelephense/-/intelephense-1.10.4.tgz";
+      sha512 = "YcSeqygon2uNn3GjQqxs3vSZQTvdbZ13WG54i+c0t6UcViEso/K5Vq9To/024h3OqCvJR2RlmunnEIuorvDqHg==";
     };
     dependencies = [
-      sources."@azure/abort-controller-2.1.0"
-      sources."@azure/core-auth-1.7.0"
+      sources."@azure/abort-controller-2.1.2"
+      sources."@azure/core-auth-1.7.2"
       (sources."@azure/core-rest-pipeline-1.10.1" // {
         dependencies = [
           sources."@azure/abort-controller-1.1.0"
         ];
       })
-      sources."@azure/core-tracing-1.1.0"
+      sources."@azure/core-tracing-1.1.2"
       (sources."@azure/core-util-1.2.0" // {
         dependencies = [
           sources."@azure/abort-controller-1.1.0"
         ];
       })
-      sources."@azure/logger-1.1.0"
+      sources."@azure/logger-1.1.2"
       sources."@azure/opentelemetry-instrumentation-azure-sdk-1.0.0-beta.5"
       sources."@bmewburn/js-beautify-1.14.9"
       sources."@bmewburn/vscode-html-languageserver-1.10.0"
@@ -79865,11 +77751,11 @@ in
       sources."@nodelib/fs.walk-1.2.8"
       sources."@one-ini/wasm-0.1.1"
       sources."@opentelemetry/api-1.8.0"
-      sources."@opentelemetry/core-1.22.0"
+      sources."@opentelemetry/core-1.24.1"
       sources."@opentelemetry/instrumentation-0.41.2"
-      sources."@opentelemetry/resources-1.22.0"
-      sources."@opentelemetry/sdk-trace-base-1.22.0"
-      sources."@opentelemetry/semantic-conventions-1.22.0"
+      sources."@opentelemetry/resources-1.24.1"
+      sources."@opentelemetry/sdk-trace-base-1.24.1"
+      sources."@opentelemetry/semantic-conventions-1.24.1"
       sources."@protobufjs/aspromise-1.1.2"
       sources."@protobufjs/base64-1.1.2"
       sources."@protobufjs/codegen-2.0.4"
@@ -79882,7 +77768,7 @@ in
       sources."@protobufjs/utf8-1.1.0"
       sources."@selderee/plugin-htmlparser2-0.11.0"
       sources."@tootallnate/once-2.0.0"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."@types/shimmer-1.0.5"
       sources."@vscode/l10n-0.0.16"
       sources."abbrev-2.0.0"
@@ -79906,14 +77792,14 @@ in
       })
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.12.0"
+      sources."aws4-1.13.0"
       sources."balanced-match-1.0.2"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-2.0.1"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."caseless-0.12.0"
       sources."chownr-2.0.0"
-      sources."cjs-module-lexer-1.2.3"
+      sources."cjs-module-lexer-1.3.1"
       (sources."cls-hooked-4.2.2" // {
         dependencies = [
           sources."semver-5.7.2"
@@ -79931,11 +77817,11 @@ in
       sources."core-util-is-1.0.2"
       sources."cross-spawn-7.0.3"
       sources."dashdash-1.14.1"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."deepmerge-4.3.1"
       sources."delayed-stream-1.0.0"
       sources."delegates-1.0.0"
-      sources."detect-libc-2.0.2"
+      sources."detect-libc-2.0.3"
       sources."diagnostic-channel-1.1.1"
       sources."diagnostic-channel-publishers-1.0.7"
       sources."dom-serializer-2.0.0"
@@ -79956,7 +77842,7 @@ in
       sources."fast-glob-3.3.2"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fastq-1.17.1"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."foreground-child-3.1.1"
       sources."forever-agent-0.6.1"
       sources."form-data-4.0.0"
@@ -79977,7 +77863,11 @@ in
         ];
       })
       sources."getpass-0.1.7"
-      sources."glob-10.3.10"
+      (sources."glob-10.4.1" // {
+        dependencies = [
+          sources."minimatch-9.0.4"
+        ];
+      })
       sources."glob-parent-5.1.2"
       sources."graceful-fs-4.2.11"
       sources."har-schema-2.0.0"
@@ -80002,7 +77892,7 @@ in
       sources."is-typedarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isstream-0.1.2"
-      sources."jackspeak-2.3.6"
+      sources."jackspeak-3.2.3"
       sources."jsbn-0.1.1"
       sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
@@ -80018,11 +77908,11 @@ in
         ];
       })
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
       sources."minimatch-9.0.1"
-      sources."minipass-7.0.4"
+      sources."minipass-7.1.2"
       (sources."minizlib-2.1.2" // {
         dependencies = [
           sources."minipass-3.3.6"
@@ -80033,7 +77923,7 @@ in
       sources."ms-2.1.2"
       sources."nan-2.19.0"
       sources."node-fetch-2.7.0"
-      sources."nopt-7.2.0"
+      sources."nopt-7.2.1"
       sources."npmlog-5.0.1"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
@@ -80042,7 +77932,11 @@ in
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
-      sources."path-scurry-1.10.1"
+      (sources."path-scurry-1.11.1" // {
+        dependencies = [
+          sources."lru-cache-10.2.2"
+        ];
+      })
       sources."peberminta-0.9.0"
       sources."performance-now-2.1.0"
       sources."picomatch-2.3.1"
@@ -80059,7 +77953,7 @@ in
           sources."uuid-3.4.0"
         ];
       })
-      sources."require-in-the-middle-7.2.1"
+      sources."require-in-the-middle-7.3.0"
       sources."resolve-1.22.8"
       sources."reusify-1.0.4"
       (sources."rimraf-3.0.2" // {
@@ -80100,7 +77994,7 @@ in
       })
       sources."strip-ansi-cjs-6.0.1"
       sources."supports-preserve-symlinks-flag-1.0.0"
-      (sources."tar-6.2.0" // {
+      (sources."tar-6.2.1" // {
         dependencies = [
           sources."minipass-5.0.0"
         ];
@@ -80113,19 +78007,19 @@ in
       sources."turndown-7.1.3"
       sources."turndown-plugin-gfm-1.0.2"
       sources."tweetnacl-0.14.5"
-      sources."typescript-5.4.2"
+      sources."typescript-5.4.5"
       sources."undici-types-5.26.5"
       sources."universalify-2.0.1"
       sources."uri-js-4.4.1"
       sources."util-deprecate-1.0.2"
       sources."uuid-8.3.2"
       sources."verror-1.10.0"
-      (sources."vscode-css-languageservice-6.2.12" // {
+      (sources."vscode-css-languageservice-6.2.14" // {
         dependencies = [
           sources."@vscode/l10n-0.0.18"
         ];
       })
-      (sources."vscode-html-languageservice-5.1.2" // {
+      (sources."vscode-html-languageservice-5.2.0" // {
         dependencies = [
           sources."@vscode/l10n-0.0.18"
         ];
@@ -80290,13 +78184,13 @@ in
       sources."@aws-sdk/service-error-classification-3.296.0"
       sources."@aws-sdk/shared-ini-file-loader-3.296.0"
       sources."@aws-sdk/signature-v4-3.296.0"
-      (sources."@aws-sdk/signature-v4-crt-3.535.0" // {
+      (sources."@aws-sdk/signature-v4-crt-3.587.0" // {
         dependencies = [
-          sources."@aws-sdk/middleware-sdk-s3-3.535.0"
-          sources."@aws-sdk/signature-v4-multi-region-3.535.0"
-          sources."@aws-sdk/types-3.535.0"
-          sources."@aws-sdk/util-arn-parser-3.535.0"
-          sources."@aws-sdk/util-user-agent-node-3.535.0"
+          sources."@aws-sdk/middleware-sdk-s3-3.587.0"
+          sources."@aws-sdk/signature-v4-multi-region-3.587.0"
+          sources."@aws-sdk/types-3.577.0"
+          sources."@aws-sdk/util-arn-parser-3.568.0"
+          sources."@aws-sdk/util-user-agent-node-3.587.0"
         ];
       })
       sources."@aws-sdk/signature-v4-multi-region-3.296.0"
@@ -80316,7 +78210,7 @@ in
       sources."@aws-sdk/util-endpoints-3.296.0"
       sources."@aws-sdk/util-format-url-3.296.0"
       sources."@aws-sdk/util-hex-encoding-3.295.0"
-      sources."@aws-sdk/util-locate-window-3.535.0"
+      sources."@aws-sdk/util-locate-window-3.568.0"
       sources."@aws-sdk/util-middleware-3.296.0"
       sources."@aws-sdk/util-retry-3.296.0"
       sources."@aws-sdk/util-stream-browser-3.296.0"
@@ -80328,7 +78222,7 @@ in
       sources."@aws-sdk/util-utf8-browser-3.259.0"
       sources."@aws-sdk/util-waiter-3.296.0"
       sources."@aws-sdk/xml-builder-3.295.0"
-      sources."@babel/runtime-7.24.0"
+      sources."@babel/runtime-7.24.6"
       sources."@braintree/sanitize-url-6.0.4"
       sources."@cronvel/get-pixels-3.4.1"
       sources."@gar/promisify-1.1.3"
@@ -80353,38 +78247,37 @@ in
         dependencies = [
           sources."brace-expansion-2.0.1"
           sources."glob-10.3.10"
-          sources."minimatch-9.0.3"
+          sources."minimatch-9.0.4"
         ];
       })
       sources."@mapbox/node-pre-gyp-1.0.11"
       sources."@npmcli/fs-1.1.1"
       sources."@npmcli/move-file-1.1.2"
-      sources."@smithy/abort-controller-2.2.0"
-      sources."@smithy/eventstream-codec-2.2.0"
-      sources."@smithy/fetch-http-handler-2.5.0"
-      sources."@smithy/is-array-buffer-2.2.0"
-      sources."@smithy/middleware-endpoint-2.5.0"
-      sources."@smithy/middleware-serde-2.3.0"
-      sources."@smithy/middleware-stack-2.2.0"
-      sources."@smithy/node-config-provider-2.3.0"
-      sources."@smithy/node-http-handler-2.5.0"
-      sources."@smithy/property-provider-2.2.0"
-      sources."@smithy/protocol-http-3.3.0"
-      sources."@smithy/querystring-builder-2.2.0"
-      sources."@smithy/querystring-parser-2.2.0"
-      sources."@smithy/shared-ini-file-loader-2.4.0"
-      sources."@smithy/signature-v4-2.2.0"
-      sources."@smithy/smithy-client-2.5.0"
-      sources."@smithy/types-2.12.0"
-      sources."@smithy/url-parser-2.2.0"
-      sources."@smithy/util-base64-2.3.0"
-      sources."@smithy/util-buffer-from-2.2.0"
-      sources."@smithy/util-config-provider-2.3.0"
-      sources."@smithy/util-hex-encoding-2.2.0"
-      sources."@smithy/util-middleware-2.2.0"
-      sources."@smithy/util-stream-2.2.0"
-      sources."@smithy/util-uri-escape-2.2.0"
-      sources."@smithy/util-utf8-2.3.0"
+      sources."@smithy/abort-controller-3.0.0"
+      sources."@smithy/fetch-http-handler-3.0.1"
+      sources."@smithy/is-array-buffer-3.0.0"
+      sources."@smithy/middleware-endpoint-3.0.1"
+      sources."@smithy/middleware-serde-3.0.0"
+      sources."@smithy/middleware-stack-3.0.0"
+      sources."@smithy/node-config-provider-3.1.0"
+      sources."@smithy/node-http-handler-3.0.0"
+      sources."@smithy/property-provider-3.1.0"
+      sources."@smithy/protocol-http-4.0.0"
+      sources."@smithy/querystring-builder-3.0.0"
+      sources."@smithy/querystring-parser-3.0.0"
+      sources."@smithy/shared-ini-file-loader-3.1.0"
+      sources."@smithy/signature-v4-3.0.0"
+      sources."@smithy/smithy-client-3.1.1"
+      sources."@smithy/types-3.0.0"
+      sources."@smithy/url-parser-3.0.0"
+      sources."@smithy/util-base64-3.0.0"
+      sources."@smithy/util-buffer-from-3.0.0"
+      sources."@smithy/util-config-provider-3.0.0"
+      sources."@smithy/util-hex-encoding-3.0.0"
+      sources."@smithy/util-middleware-3.0.0"
+      sources."@smithy/util-stream-3.0.1"
+      sources."@smithy/util-uri-escape-3.0.0"
+      sources."@smithy/util-utf8-3.0.0"
       sources."@tootallnate/once-2.0.0"
       sources."@types/d3-scale-4.0.8"
       sources."@types/d3-scale-chromatic-3.0.3"
@@ -80393,7 +78286,7 @@ in
       sources."@types/mdast-3.0.15"
       sources."@types/ms-0.7.34"
       sources."@types/nanoid-3.0.0"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."@types/unist-2.0.10"
       sources."@types/ws-8.5.10"
       sources."abab-2.0.6"
@@ -80424,7 +78317,7 @@ in
       sources."async-mutex-0.4.1"
       sources."asynckit-0.4.0"
       sources."available-typed-arrays-1.0.7"
-      sources."aws-crt-1.21.1"
+      sources."aws-crt-1.21.2"
       (sources."aws-sdk-2.1340.0" // {
         dependencies = [
           sources."buffer-4.9.2"
@@ -80436,8 +78329,8 @@ in
         ];
       })
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.12.0"
-      (sources."axios-1.6.8" // {
+      sources."aws4-1.13.0"
+      (sources."axios-1.7.2" // {
         dependencies = [
           sources."follow-redirects-1.15.6"
         ];
@@ -80456,7 +78349,7 @@ in
       })
       sources."bowser-2.11.0"
       sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."buffer-6.0.3"
       sources."buffer-from-1.1.2"
       sources."bufferutil-4.0.8"
@@ -80516,7 +78409,7 @@ in
       sources."crypto-js-4.2.0"
       sources."cssstyle-3.0.0"
       sources."cwise-compiler-1.1.3"
-      sources."cytoscape-3.28.1"
+      sources."cytoscape-3.29.2"
       sources."cytoscape-cose-bilkent-4.1.0"
       (sources."cytoscape-fcose-2.2.0" // {
         dependencies = [
@@ -80571,8 +78464,8 @@ in
       sources."dashdash-1.14.1"
       sources."data-urls-4.0.0"
       sources."datauri-4.1.0"
-      sources."dayjs-1.11.10"
-      sources."debug-4.3.4"
+      sources."dayjs-1.11.11"
+      sources."debug-4.3.5"
       sources."decimal.js-10.4.3"
       sources."decode-named-character-reference-1.0.2"
       sources."decode-uri-component-0.2.2"
@@ -80587,7 +78480,7 @@ in
       sources."delegates-1.0.0"
       sources."depd-1.1.2"
       sources."dequal-2.0.3"
-      sources."detect-libc-2.0.2"
+      sources."detect-libc-2.0.3"
       sources."diff-5.2.0"
       sources."diff-match-patch-1.0.5"
       (sources."dom-serializer-2.0.0" // {
@@ -80598,7 +78491,7 @@ in
       sources."domelementtype-2.3.0"
       sources."domexception-4.0.0"
       sources."domhandler-5.0.3"
-      sources."dompurify-3.0.9"
+      sources."dompurify-3.1.5"
       sources."domutils-3.1.0"
       sources."duplexify-3.7.1"
       sources."eastasianwidth-0.2.0"
@@ -80634,7 +78527,7 @@ in
       sources."fast-xml-parser-3.21.1"
       sources."fault-1.0.4"
       sources."file-type-10.11.0"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."filter-obj-1.1.0"
       sources."find-up-2.1.0"
       sources."follow-redirects-1.15.5"
@@ -80692,7 +78585,6 @@ in
       sources."has-unicode-2.0.1"
       sources."hasown-2.0.2"
       sources."he-1.2.0"
-      sources."heap-0.2.7"
       (sources."help-me-3.0.0" // {
         dependencies = [
           sources."readable-stream-3.6.2"
@@ -80942,7 +78834,7 @@ in
       sources."negotiator-0.6.3"
       sources."nextgen-events-1.5.3"
       sources."no-case-2.3.2"
-      sources."node-abi-3.56.0"
+      sources."node-abi-3.63.0"
       sources."node-addon-api-4.3.0"
       sources."node-bitmap-0.0.1"
       sources."node-emoji-1.11.0"
@@ -80961,7 +78853,7 @@ in
           sources."readable-stream-3.6.2"
         ];
       })
-      sources."node-gyp-build-4.8.0"
+      sources."node-gyp-build-4.8.1"
       (sources."node-notifier-10.0.1" // {
         dependencies = [
           sources."uuid-8.3.2"
@@ -80975,7 +78867,7 @@ in
       sources."npm-run-path-4.0.1"
       sources."npmlog-5.0.1"
       sources."number-allocator-1.0.14"
-      sources."nwsapi-2.2.7"
+      sources."nwsapi-2.2.10"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
       (sources."object-to-arguments-0.0.8" // {
@@ -81001,9 +78893,9 @@ in
       sources."path-exists-3.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
-      (sources."path-scurry-1.10.1" // {
+      (sources."path-scurry-1.11.1" // {
         dependencies = [
-          sources."lru-cache-10.2.0"
+          sources."lru-cache-10.2.2"
         ];
       })
       sources."performance-now-2.1.0"
@@ -81068,9 +78960,9 @@ in
       sources."sade-1.8.1"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."sax-1.3.0"
+      sources."sax-1.4.1"
       sources."saxes-6.0.0"
-      sources."semver-7.6.0"
+      sources."semver-7.6.2"
       sources."server-destroy-1.0.1"
       sources."set-blocking-2.0.0"
       sources."set-function-length-1.2.2"
@@ -81097,7 +78989,7 @@ in
         ];
       })
       sources."smart-buffer-4.2.0"
-      sources."socks-2.8.1"
+      sources."socks-2.8.3"
       sources."socks-proxy-agent-6.2.1"
       sources."source-map-0.6.1"
       sources."split-on-first-1.1.0"
@@ -81150,7 +79042,7 @@ in
       sources."strip-final-newline-2.0.0"
       sources."strip-json-comments-2.0.1"
       sources."strnum-1.0.5"
-      sources."stylis-4.3.1"
+      sources."stylis-4.3.2"
       sources."supports-color-7.2.0"
       sources."symbol-tree-3.2.4"
       sources."table-layout-0.4.5"
@@ -81189,7 +79081,7 @@ in
       })
       sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.1"
-      sources."tough-cookie-4.1.3"
+      sources."tough-cookie-4.1.4"
       sources."tr46-4.1.1"
       sources."tree-kit-0.8.7"
       sources."ts-dedent-2.2.0"
@@ -81218,7 +79110,7 @@ in
         ];
       })
       sources."url-parse-1.5.10"
-      sources."utf-8-validate-6.0.3"
+      sources."utf-8-validate-6.0.4"
       sources."util-0.12.5"
       sources."util-deprecate-1.0.2"
       sources."uuid-9.0.1"
@@ -81255,7 +79147,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-8.16.0"
+      sources."ws-8.17.0"
       sources."xml-name-validator-4.0.0"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
@@ -81299,24 +79191,24 @@ in
       sources."editorconfig-1.0.4"
       sources."emoji-regex-9.2.2"
       sources."foreground-child-3.1.1"
-      sources."glob-10.3.10"
+      (sources."glob-10.4.1" // {
+        dependencies = [
+          sources."minimatch-9.0.4"
+        ];
+      })
       sources."ini-1.3.8"
       sources."is-fullwidth-code-point-3.0.0"
       sources."isexe-2.0.0"
-      sources."jackspeak-2.3.6"
+      sources."jackspeak-3.2.3"
       sources."js-cookie-3.0.5"
-      sources."lru-cache-6.0.0"
+      sources."lru-cache-10.2.2"
       sources."minimatch-9.0.1"
-      sources."minipass-7.0.4"
-      sources."nopt-7.2.0"
+      sources."minipass-7.1.2"
+      sources."nopt-7.2.1"
       sources."path-key-3.1.1"
-      (sources."path-scurry-1.10.1" // {
-        dependencies = [
-          sources."lru-cache-10.2.0"
-        ];
-      })
+      sources."path-scurry-1.11.1"
       sources."proto-list-1.2.4"
-      sources."semver-7.6.0"
+      sources."semver-7.6.2"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-4.1.0"
@@ -81343,7 +79235,6 @@ in
           sources."strip-ansi-6.0.1"
         ];
       })
-      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -81379,35 +79270,36 @@ in
   jsdoc = nodeEnv.buildNodePackage {
     name = "jsdoc";
     packageName = "jsdoc";
-    version = "4.0.2";
+    version = "4.0.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.2.tgz";
-      sha512 = "e8cIg2z62InH7azBBi3EsSEqrKx+nUtAS5bBcYTSpZFA+vhNPyhv8PTFZ0WsjOPDj04/dOLlm08EDcQJDqaGQg==";
+      url = "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.3.tgz";
+      sha512 = "Nu7Sf35kXJ1MWDZIMAuATRQTg1iIPdzh7tqJ6jjvaU/GfDf+qi5UV8zJR3Mo+/pYFvm8mzay4+6O5EWigaQBQw==";
     };
     dependencies = [
-      sources."@babel/parser-7.24.0"
-      sources."@jsdoc/salty-0.2.7"
-      sources."@types/linkify-it-3.0.5"
-      sources."@types/markdown-it-12.2.3"
-      sources."@types/mdurl-1.0.5"
+      sources."@babel/parser-7.24.6"
+      sources."@jsdoc/salty-0.2.8"
+      sources."@types/linkify-it-5.0.0"
+      sources."@types/markdown-it-14.1.1"
+      sources."@types/mdurl-2.0.0"
       sources."argparse-2.0.1"
       sources."bluebird-3.7.2"
       sources."catharsis-0.9.0"
-      sources."entities-2.1.0"
+      sources."entities-4.5.0"
       sources."escape-string-regexp-2.0.0"
       sources."graceful-fs-4.2.11"
       sources."js2xmlparser-4.0.2"
       sources."klaw-3.0.0"
-      sources."linkify-it-3.0.3"
+      sources."linkify-it-5.0.0"
       sources."lodash-4.17.21"
-      sources."markdown-it-12.3.2"
+      sources."markdown-it-14.1.0"
       sources."markdown-it-anchor-8.6.7"
       sources."marked-4.3.0"
-      sources."mdurl-1.0.1"
+      sources."mdurl-2.0.0"
       sources."mkdirp-1.0.4"
+      sources."punycode.js-2.3.1"
       sources."requizzle-0.2.4"
       sources."strip-json-comments-3.1.1"
-      sources."uc.micro-1.0.6"
+      sources."uc.micro-2.1.0"
       sources."underscore-1.13.6"
       sources."xmlcreate-2.0.4"
     ];
@@ -81536,7 +79428,7 @@ in
       sources."commander-4.1.1"
       sources."component-emitter-1.3.1"
       sources."cookiejar-2.1.4"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."define-data-property-1.1.4"
       sources."delayed-stream-1.0.0"
       sources."dezalgo-1.0.4"
@@ -81558,7 +79450,6 @@ in
       sources."inherits-2.0.4"
       sources."js-yaml-3.14.1"
       sources."lodash-4.17.21"
-      sources."lru-cache-6.0.0"
       sources."methods-1.1.2"
       sources."mime-2.6.0"
       sources."mime-db-1.52.0"
@@ -81569,10 +79460,10 @@ in
       sources."once-1.4.0"
       sources."path-loader-1.0.12"
       sources."punycode-2.3.1"
-      sources."qs-6.12.0"
+      sources."qs-6.12.1"
       sources."readable-stream-3.6.2"
       sources."safe-buffer-5.2.1"
-      sources."semver-7.6.0"
+      sources."semver-7.6.2"
       sources."set-function-length-1.2.2"
       sources."side-channel-1.0.6"
       sources."slash-3.0.0"
@@ -81582,7 +79473,6 @@ in
       sources."uri-js-4.4.1"
       sources."util-deprecate-1.0.2"
       sources."wrappy-1.0.2"
-      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -81597,10 +79487,10 @@ in
   json-server = nodeEnv.buildNodePackage {
     name = "json-server";
     packageName = "json-server";
-    version = "1.0.0-alpha.23";
+    version = "1.0.0-beta.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/json-server/-/json-server-1.0.0-alpha.23.tgz";
-      sha512 = "FPL1veNELhkr3tttwbIutKPkc/AUfLWSmslTwLYYPzl9RbCJQrwSPJceYWg2LnK1cv20tcEMLI2Kxl1lHz155Q==";
+      url = "https://registry.npmjs.org/json-server/-/json-server-1.0.0-beta.1.tgz";
+      sha512 = "xOKYyxkVai66OTFZq5ulAaXYkqiKMbzVED9tRZ+CMg6v6iaSdIVYas5tIjSMw/mYwDL/nJFTCca308gaL0coyA==";
     };
     dependencies = [
       sources."@polka/url-1.0.0-next.25"
@@ -81624,18 +79514,18 @@ in
       sources."@tinyhttp/vary-0.1.3"
       sources."anymatch-3.1.3"
       sources."binary-extensions-2.3.0"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."chalk-5.3.0"
       sources."chokidar-3.6.0"
-      sources."dot-prop-8.0.2"
+      sources."dot-prop-9.0.0"
       sources."es-escape-html-0.1.1"
       sources."es-vary-0.1.2"
       sources."eta-3.4.0"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."glob-parent-5.1.2"
       sources."header-range-parser-1.1.3"
       sources."inflection-3.0.0"
-      sources."ipaddr.js-2.1.0"
+      sources."ipaddr.js-2.2.0"
       sources."is-binary-path-2.1.0"
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.3"
@@ -81651,15 +79541,21 @@ in
       sources."readdirp-3.6.0"
       sources."regexparam-2.0.2"
       sources."sirv-2.0.4"
-      sources."sort-on-6.0.0"
+      (sources."sort-on-6.0.0" // {
+        dependencies = [
+          sources."dot-prop-8.0.2"
+          sources."type-fest-3.13.1"
+        ];
+      })
       sources."steno-4.0.2"
       sources."to-regex-range-5.0.1"
       sources."totalist-3.0.1"
-      sources."type-fest-3.13.1"
+      sources."type-fest-4.19.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
-      description = "> [!IMPORTANT] > Viewing alpha v1 documentation – usable but expect breaking changes. For stable version, see [here](https://github.com/typicode/json-server/tree/v0)";
+      description = "[![Node.js CI](https://github.com/typicode/json-server/actions/workflows/node.js.yml/badge.svg)](https://github.com/typicode/json-server/actions/workflows/node.js.yml)";
+      homepage = "https://github.com/typicode/json-server#readme";
       license = "SEE LICENSE IN ./LICENSE";
     };
     production = true;
@@ -81719,7 +79615,7 @@ in
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.12.0"
+      sources."aws4-1.13.0"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -81777,7 +79673,7 @@ in
         ];
       })
       sources."content-type-1.0.5"
-      sources."cookie-0.5.0"
+      sources."cookie-0.6.0"
       sources."cookie-signature-1.0.6"
       sources."copy-descriptor-0.1.1"
       sources."core-util-is-1.0.3"
@@ -81811,7 +79707,7 @@ in
       sources."etag-1.8.1"
       sources."expand-brackets-0.1.5"
       sources."expand-range-1.8.2"
-      (sources."express-4.18.3" // {
+      (sources."express-4.19.2" // {
         dependencies = [
           sources."safe-buffer-5.2.1"
         ];
@@ -82129,7 +80025,7 @@ in
       sources."spdx-correct-3.2.0"
       sources."spdx-exceptions-2.5.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.17"
+      sources."spdx-license-ids-3.0.18"
       sources."split-string-3.1.0"
       sources."sshpk-1.18.0"
       (sources."static-extend-0.1.2" // {
@@ -82249,7 +80145,7 @@ in
         ];
       })
       sources."@oclif/screen-1.0.4"
-      (sources."@putdotio/api-client-8.47.0" // {
+      (sources."@putdotio/api-client-8.49.0" // {
         dependencies = [
           sources."axios-0.21.4"
         ];
@@ -82268,7 +80164,7 @@ in
           sources."ms-2.0.0"
         ];
       })
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."call-bind-1.0.7"
       sources."cardinal-2.1.1"
       sources."chalk-4.1.2"
@@ -82292,7 +80188,7 @@ in
       sources."cross-spawn-7.0.3"
       sources."d-1.0.2"
       sources."debounce-fn-3.0.1"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."define-data-property-1.1.4"
       sources."dir-glob-3.0.1"
       sources."dot-prop-5.3.0"
@@ -82320,7 +80216,7 @@ in
           sources."escape-string-regexp-1.0.5"
         ];
       })
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."find-up-3.0.0"
       sources."follow-redirects-1.15.6"
       sources."fs-extra-8.1.0"
@@ -82357,14 +80253,13 @@ in
       sources."jsonfile-4.0.0"
       sources."locate-path-3.0.0"
       sources."lodash-4.17.21"
-      sources."lru-cache-6.0.0"
       (sources."make-dir-3.1.0" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."mimic-fn-2.1.0"
       sources."moment-2.30.1"
       sources."ms-2.1.2"
@@ -82386,7 +80281,7 @@ in
       sources."picomatch-2.3.1"
       sources."pkg-up-3.1.0"
       sources."punycode-2.3.1"
-      sources."qs-6.12.0"
+      sources."qs-6.12.1"
       sources."queue-microtask-1.2.3"
       sources."redeyed-2.1.1"
       sources."restore-cursor-3.1.0"
@@ -82399,7 +80294,7 @@ in
         ];
       })
       sources."safer-buffer-2.1.2"
-      sources."semver-7.6.0"
+      sources."semver-7.6.2"
       sources."set-function-length-1.2.2"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
@@ -82415,7 +80310,7 @@ in
       sources."tmp-0.0.33"
       sources."to-regex-range-5.0.1"
       sources."tslib-2.6.2"
-      sources."type-2.7.2"
+      sources."type-2.7.3"
       sources."type-fest-0.21.3"
       sources."typedarray-to-buffer-3.1.5"
       sources."universalify-0.1.2"
@@ -82425,7 +80320,6 @@ in
       sources."widest-line-3.1.0"
       sources."wrap-ansi-7.0.0"
       sources."write-file-atomic-3.0.3"
-      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -82440,10 +80334,10 @@ in
   katex = nodeEnv.buildNodePackage {
     name = "katex";
     packageName = "katex";
-    version = "0.16.9";
+    version = "0.16.10";
     src = fetchurl {
-      url = "https://registry.npmjs.org/katex/-/katex-0.16.9.tgz";
-      sha512 = "fsSYjWS0EEOwvy81j3vRA8TEAhQhKiqO+FQaKWp0m39qwOzHVBgAUBIXWj1pB+O2W3fIpNa6Y9KSKCVbfPhyAQ==";
+      url = "https://registry.npmjs.org/katex/-/katex-0.16.10.tgz";
+      sha512 = "ZiqaC04tp2O5utMsl2TEZTXxa6WSC4yo0fv5ML++D3QZv/vx2Mct0mTlRx3O+uUkjfuAgOkzsCmq5MiUEsDDdA==";
     };
     dependencies = [
       sources."commander-8.3.0"
@@ -82468,42 +80362,42 @@ in
     };
     dependencies = [
       sources."@ampproject/remapping-2.3.0"
-      sources."@babel/cli-7.23.9"
-      sources."@babel/code-frame-7.23.5"
-      sources."@babel/compat-data-7.23.5"
-      (sources."@babel/core-7.24.0" // {
+      sources."@babel/cli-7.24.6"
+      sources."@babel/code-frame-7.24.6"
+      sources."@babel/compat-data-7.24.6"
+      (sources."@babel/core-7.24.6" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      sources."@babel/generator-7.23.6"
-      sources."@babel/helper-annotate-as-pure-7.22.5"
-      (sources."@babel/helper-compilation-targets-7.23.6" // {
+      sources."@babel/generator-7.24.6"
+      sources."@babel/helper-annotate-as-pure-7.24.6"
+      (sources."@babel/helper-compilation-targets-7.24.6" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      sources."@babel/helper-environment-visitor-7.22.20"
-      sources."@babel/helper-function-name-7.23.0"
-      sources."@babel/helper-hoist-variables-7.22.5"
-      sources."@babel/helper-module-imports-7.22.15"
-      sources."@babel/helper-module-transforms-7.23.3"
-      sources."@babel/helper-plugin-utils-7.24.0"
-      sources."@babel/helper-simple-access-7.22.5"
-      sources."@babel/helper-split-export-declaration-7.22.6"
-      sources."@babel/helper-string-parser-7.23.4"
-      sources."@babel/helper-validator-identifier-7.22.20"
-      sources."@babel/helper-validator-option-7.23.5"
-      sources."@babel/helpers-7.24.0"
-      sources."@babel/highlight-7.23.4"
-      sources."@babel/node-7.23.9"
-      sources."@babel/parser-7.24.0"
-      sources."@babel/plugin-syntax-jsx-7.23.3"
-      sources."@babel/plugin-transform-react-jsx-7.23.4"
-      sources."@babel/register-7.23.7"
-      sources."@babel/template-7.24.0"
-      sources."@babel/traverse-7.24.0"
-      sources."@babel/types-7.24.0"
+      sources."@babel/helper-environment-visitor-7.24.6"
+      sources."@babel/helper-function-name-7.24.6"
+      sources."@babel/helper-hoist-variables-7.24.6"
+      sources."@babel/helper-module-imports-7.24.6"
+      sources."@babel/helper-module-transforms-7.24.6"
+      sources."@babel/helper-plugin-utils-7.24.6"
+      sources."@babel/helper-simple-access-7.24.6"
+      sources."@babel/helper-split-export-declaration-7.24.6"
+      sources."@babel/helper-string-parser-7.24.6"
+      sources."@babel/helper-validator-identifier-7.24.6"
+      sources."@babel/helper-validator-option-7.24.6"
+      sources."@babel/helpers-7.24.6"
+      sources."@babel/highlight-7.24.6"
+      sources."@babel/node-7.24.6"
+      sources."@babel/parser-7.24.6"
+      sources."@babel/plugin-syntax-jsx-7.24.6"
+      sources."@babel/plugin-transform-react-jsx-7.24.6"
+      sources."@babel/register-7.24.6"
+      sources."@babel/template-7.24.6"
+      sources."@babel/traverse-7.24.6"
+      sources."@babel/types-7.24.6"
       sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
       sources."@jridgewell/set-array-1.2.1"
@@ -82511,14 +80405,12 @@ in
       sources."@jridgewell/trace-mapping-0.3.25"
       (sources."@mapbox/node-pre-gyp-1.0.11" // {
         dependencies = [
-          sources."lru-cache-6.0.0"
           (sources."make-dir-3.1.0" // {
             dependencies = [
               sources."semver-6.3.1"
             ];
           })
-          sources."semver-7.6.0"
-          sources."yallist-4.0.0"
+          sources."semver-7.6.2"
         ];
       })
       sources."@nodelib/fs.scandir-2.1.5"
@@ -82528,7 +80420,7 @@ in
       sources."@openpgp/wkd-client-0.0.3"
       sources."@peculiar/asn1-schema-2.3.8"
       sources."@peculiar/json-schema-1.1.12"
-      sources."@peculiar/webcrypto-1.4.5"
+      sources."@peculiar/webcrypto-1.5.0"
       sources."@tootallnate/once-1.1.2"
       sources."@xmpp/base64-0.13.1"
       sources."@xmpp/client-0.13.1"
@@ -82576,7 +80468,7 @@ in
       sources."array-buffer-byte-length-1.0.1"
       sources."array-flatten-1.1.1"
       sources."array-union-2.1.0"
-      sources."array.prototype.reduce-1.0.6"
+      sources."array.prototype.reduce-1.0.7"
       sources."arraybuffer.prototype.slice-1.0.3"
       sources."asn1.js-5.4.1"
       sources."asn1js-3.0.5"
@@ -82600,7 +80492,7 @@ in
         ];
       })
       sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."browser-or-node-1.3.0"
       sources."browser-process-hrtime-1.0.0"
       sources."browserslist-4.23.0"
@@ -82609,7 +80501,7 @@ in
       sources."bufferutil-4.0.8"
       sources."bytes-3.1.2"
       sources."call-bind-1.0.7"
-      sources."caniuse-lite-1.0.30001599"
+      sources."caniuse-lite-1.0.30001627"
       sources."canvas-2.11.2"
       sources."chalk-2.4.2"
       sources."chardet-1.6.1"
@@ -82621,16 +80513,16 @@ in
       sources."color-name-1.1.3"
       sources."color-support-1.1.3"
       sources."combined-stream-1.0.8"
-      sources."commander-4.1.1"
+      sources."commander-6.2.1"
       sources."commondir-1.0.1"
       sources."concat-map-0.0.1"
       sources."console-control-strings-1.1.0"
       sources."content-disposition-0.5.4"
       sources."content-type-1.0.5"
       sources."convert-source-map-2.0.0"
-      sources."cookie-0.5.0"
+      sources."cookie-0.6.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.36.1"
+      sources."core-js-3.37.1"
       sources."core-util-is-1.0.3"
       sources."cors-2.8.5"
       sources."create-hash-1.2.0"
@@ -82651,7 +80543,7 @@ in
       sources."data-view-buffer-1.0.1"
       sources."data-view-byte-length-1.0.1"
       sources."data-view-byte-offset-1.0.0"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."decimal.js-10.4.3"
       sources."decode-uri-component-0.2.2"
       sources."decompress-response-4.2.1"
@@ -82662,7 +80554,7 @@ in
       sources."delegates-1.0.0"
       sources."depd-2.0.0"
       sources."destroy-1.2.0"
-      sources."detect-libc-2.0.2"
+      sources."detect-libc-2.0.3"
       sources."dir-glob-3.0.1"
       sources."doipjs-0.15.7"
       (sources."domexception-2.0.1" // {
@@ -82672,13 +80564,13 @@ in
       })
       sources."dotenv-8.6.0"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.4.710"
+      sources."electron-to-chromium-1.4.789"
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."encoding-0.1.13"
       sources."end-of-stream-1.4.4"
       sources."enquirer-2.4.1"
-      sources."es-abstract-1.23.2"
+      sources."es-abstract-1.23.3"
       sources."es-array-method-boxes-properly-1.0.0"
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
@@ -82695,7 +80587,7 @@ in
       sources."etag-1.8.1"
       sources."events-3.3.0"
       sources."expand-template-2.0.3"
-      (sources."express-4.18.3" // {
+      (sources."express-4.19.2" // {
         dependencies = [
           sources."debug-2.6.9"
           sources."ms-2.0.0"
@@ -82704,7 +80596,7 @@ in
       sources."express-validator-6.15.0"
       sources."fast-glob-3.3.2"
       sources."fastq-1.17.1"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."filter-obj-1.1.0"
       (sources."finalhandler-1.2.0" // {
         dependencies = [
@@ -82753,7 +80645,7 @@ in
       sources."glob-7.2.3"
       sources."glob-parent-5.1.2"
       sources."globals-11.12.0"
-      sources."globalthis-1.0.3"
+      sources."globalthis-1.0.4"
       (sources."globby-11.1.0" // {
         dependencies = [
           sources."slash-3.0.0"
@@ -82845,7 +80737,7 @@ in
       sources."merge-options-3.0.4"
       sources."merge2-1.4.1"
       sources."methods-1.1.2"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."mime-1.6.0"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
@@ -82867,32 +80759,28 @@ in
       sources."nan-2.19.0"
       sources."napi-build-utils-1.0.2"
       sources."negotiator-0.6.3"
-      (sources."node-abi-3.56.0" // {
+      (sources."node-abi-3.63.0" // {
         dependencies = [
-          sources."lru-cache-6.0.0"
-          sources."semver-7.6.0"
-          sources."yallist-4.0.0"
+          sources."semver-7.6.2"
         ];
       })
       sources."node-environment-flags-1.0.6"
       sources."node-fetch-2.7.0"
-      sources."node-gyp-build-4.8.0"
+      sources."node-gyp-build-4.8.1"
       (sources."node-notifier-10.0.1" // {
         dependencies = [
-          sources."lru-cache-6.0.0"
-          sources."semver-7.6.0"
-          sources."yallist-4.0.0"
+          sources."semver-7.6.2"
         ];
       })
       sources."node-releases-2.0.14"
       sources."nopt-5.0.0"
       sources."npmlog-5.0.1"
-      sources."nwsapi-2.2.7"
+      sources."nwsapi-2.2.10"
       sources."object-assign-4.1.1"
       sources."object-inspect-1.13.1"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.5"
-      sources."object.getownpropertydescriptors-2.1.7"
+      sources."object.getownpropertydescriptors-2.1.8"
       sources."on-finished-2.4.1"
       sources."once-1.4.0"
       sources."openpgp-5.11.1"
@@ -82908,7 +80796,7 @@ in
       sources."path-parse-1.0.7"
       sources."path-to-regexp-0.1.7"
       sources."path-type-4.0.0"
-      sources."picocolors-1.0.0"
+      sources."picocolors-1.0.1"
       sources."picomatch-2.3.1"
       sources."pify-4.0.1"
       sources."pirates-4.0.6"
@@ -82933,10 +80821,8 @@ in
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
-          sources."lru-cache-6.0.0"
-          sources."semver-7.6.0"
+          sources."semver-7.6.2"
           sources."supports-color-7.2.0"
-          sources."yallist-4.0.0"
         ];
       })
       sources."possible-typed-array-names-1.0.0"
@@ -83030,14 +80916,14 @@ in
       sources."string-width-4.2.3"
       sources."string.prototype.trim-1.2.9"
       sources."string.prototype.trimend-1.0.8"
-      sources."string.prototype.trimstart-1.0.7"
+      sources."string.prototype.trimstart-1.0.8"
       sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.1"
       sources."strip-json-comments-2.0.1"
       sources."supports-color-5.5.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
       sources."symbol-tree-3.2.4"
-      (sources."tar-6.2.0" // {
+      (sources."tar-6.2.1" // {
         dependencies = [
           sources."yallist-4.0.0"
         ];
@@ -83051,7 +80937,7 @@ in
       sources."to-fast-properties-2.0.0"
       sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.1"
-      sources."tough-cookie-4.1.3"
+      sources."tough-cookie-4.1.4"
       sources."tr46-0.0.3"
       sources."tslib-2.6.2"
       sources."tunnel-agent-0.6.0"
@@ -83059,23 +80945,23 @@ in
       sources."typed-array-buffer-1.0.2"
       sources."typed-array-byte-length-1.0.1"
       sources."typed-array-byte-offset-1.0.2"
-      sources."typed-array-length-1.0.5"
+      sources."typed-array-length-1.0.6"
       sources."unbox-primitive-1.0.2"
       sources."universalify-0.2.0"
       sources."unpipe-1.0.0"
-      sources."update-browserslist-db-1.0.13"
+      sources."update-browserslist-db-1.0.16"
       sources."url-parse-1.5.10"
-      sources."utf-8-validate-6.0.3"
+      sources."utf-8-validate-6.0.4"
       sources."util-deprecate-1.0.2"
       sources."utils-merge-1.0.1"
       sources."uuid-8.3.2"
       sources."v8flags-3.2.0"
       sources."valid-url-1.0.9"
-      sources."validator-13.11.0"
+      sources."validator-13.12.0"
       sources."vary-1.1.2"
       sources."w3c-hr-time-1.0.2"
       sources."w3c-xmlserializer-2.0.0"
-      sources."webcrypto-core-1.7.8"
+      sources."webcrypto-core-1.8.0"
       sources."webidl-conversions-3.0.1"
       (sources."whatwg-encoding-1.0.5" // {
         dependencies = [
@@ -83096,7 +80982,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-8.16.0"
+      sources."ws-8.17.0"
       sources."xml-name-validator-3.0.0"
       sources."xmlchars-2.2.0"
       sources."y18n-5.0.8"
@@ -83117,10 +81003,10 @@ in
   lcov-result-merger = nodeEnv.buildNodePackage {
     name = "lcov-result-merger";
     packageName = "lcov-result-merger";
-    version = "5.0.0";
+    version = "5.0.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/lcov-result-merger/-/lcov-result-merger-5.0.0.tgz";
-      sha512 = "IIY0yhvNT2Zda6WKeTYZVK/bGTJeRyRY7KvoI490DUkPXZ1M7KfiiZxxxCuMoAfY3d+4a1ibS201+D6mj78AYA==";
+      url = "https://registry.npmjs.org/lcov-result-merger/-/lcov-result-merger-5.0.1.tgz";
+      sha512 = "i53RjTYfqbHgerqGtuJjDfARDU340zNxXrJudQZU3o8ak9rrx8FDQUKf38Cjm6MtbqonqiDFmoKuUe++uZbvOg==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.5"
@@ -83128,7 +81014,7 @@ in
       sources."@nodelib/fs.walk-1.2.8"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."cliui-7.0.4"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
@@ -83136,7 +81022,7 @@ in
       sources."escalade-3.1.2"
       sources."fast-glob-3.3.2"
       sources."fastq-1.17.1"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."get-caller-file-2.0.5"
       sources."glob-parent-5.1.2"
       sources."is-extglob-2.1.1"
@@ -83144,7 +81030,7 @@ in
       sources."is-glob-4.0.3"
       sources."is-number-7.0.0"
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."picomatch-2.3.1"
       sources."queue-microtask-1.2.3"
       sources."require-directory-2.1.1"
@@ -83171,24 +81057,15 @@ in
   lerna = nodeEnv.buildNodePackage {
     name = "lerna";
     packageName = "lerna";
-    version = "8.1.2";
+    version = "8.1.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/lerna/-/lerna-8.1.2.tgz";
-      sha512 = "RCyBAn3XsqqvHbz3TxLfD7ylqzCi1A2UJnFEZmhURgx589vM3qYWQa/uOMeEEf565q6cAdtmulITciX1wgkAtw==";
+      url = "https://registry.npmjs.org/lerna/-/lerna-8.1.3.tgz";
+      sha512 = "Dg/r1dGnRCXKsOUC3lol7o6ggYTA6WWiPQzZJNKqyygn4fzYGuA3Dro2d5677pajaqFnFA72mdCjzSyF16Vi2Q==";
     };
     dependencies = [
-      (sources."@babel/code-frame-7.23.5" // {
-        dependencies = [
-          sources."ansi-styles-3.2.1"
-          sources."chalk-2.4.2"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."has-flag-3.0.0"
-          sources."supports-color-5.5.0"
-        ];
-      })
-      sources."@babel/helper-validator-identifier-7.22.20"
-      (sources."@babel/highlight-7.23.4" // {
+      sources."@babel/code-frame-7.24.6"
+      sources."@babel/helper-validator-identifier-7.24.6"
+      (sources."@babel/highlight-7.24.6" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -83201,24 +81078,33 @@ in
       sources."@hutson/parse-repository-url-3.0.2"
       sources."@isaacs/cliui-8.0.2"
       sources."@jest/schemas-29.6.3"
-      sources."@lerna/create-8.1.2"
+      sources."@lerna/create-8.1.3"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@npmcli/agent-2.2.1"
-      sources."@npmcli/fs-3.1.0"
-      sources."@npmcli/git-5.0.4"
-      (sources."@npmcli/installed-package-contents-2.0.2" // {
+      sources."@npmcli/agent-2.2.2"
+      sources."@npmcli/fs-3.1.1"
+      (sources."@npmcli/git-5.0.7" // {
+        dependencies = [
+          sources."proc-log-4.2.0"
+        ];
+      })
+      (sources."@npmcli/installed-package-contents-2.1.0" // {
         dependencies = [
-          sources."npm-bundled-3.0.0"
+          sources."npm-bundled-3.0.1"
         ];
       })
       sources."@npmcli/node-gyp-3.0.0"
-      sources."@npmcli/promise-spawn-7.0.1"
+      sources."@npmcli/promise-spawn-7.0.2"
+      sources."@npmcli/redact-1.1.0"
       sources."@npmcli/run-script-7.0.2"
-      sources."@nrwl/devkit-18.1.2"
-      sources."@nrwl/tao-18.1.2"
-      sources."@nx/devkit-18.1.2"
+      sources."@nrwl/devkit-19.1.2"
+      sources."@nrwl/tao-19.1.2"
+      (sources."@nx/devkit-19.1.2" // {
+        dependencies = [
+          sources."minimatch-9.0.3"
+        ];
+      })
       sources."@octokit/auth-token-3.0.4"
       sources."@octokit/core-4.2.4"
       sources."@octokit/endpoint-7.0.6"
@@ -83238,14 +81124,14 @@ in
       sources."@octokit/tsconfig-1.0.2"
       sources."@octokit/types-9.3.2"
       sources."@sigstore/bundle-1.1.0"
-      sources."@sigstore/core-1.0.0"
+      sources."@sigstore/core-1.1.0"
       sources."@sigstore/protobuf-specs-0.2.1"
       (sources."@sigstore/sign-1.0.0" // {
         dependencies = [
           sources."agent-base-6.0.2"
           (sources."cacache-17.1.4" // {
             dependencies = [
-              sources."minipass-7.0.4"
+              sources."minipass-7.1.2"
             ];
           })
           sources."http-proxy-agent-5.0.0"
@@ -83259,33 +81145,33 @@ in
             ];
           })
           sources."socks-proxy-agent-7.0.0"
-          (sources."ssri-10.0.5" // {
+          (sources."ssri-10.0.6" // {
             dependencies = [
-              sources."minipass-7.0.4"
+              sources."minipass-7.1.2"
             ];
           })
         ];
       })
       sources."@sigstore/tuf-1.0.3"
-      (sources."@sigstore/verify-1.1.0" // {
+      (sources."@sigstore/verify-1.2.1" // {
         dependencies = [
-          sources."@sigstore/bundle-2.2.0"
-          sources."@sigstore/protobuf-specs-0.3.0"
+          sources."@sigstore/bundle-2.3.2"
+          sources."@sigstore/protobuf-specs-0.3.2"
         ];
       })
       sources."@sinclair/typebox-0.27.8"
-      sources."@swc-node/core-1.13.0"
-      sources."@swc-node/register-1.9.0"
+      sources."@swc-node/core-1.13.1"
+      sources."@swc-node/register-1.9.1"
       sources."@swc-node/sourcemap-support-0.5.0"
-      sources."@swc/core-1.4.8"
+      sources."@swc/core-1.5.24"
       sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.7"
-      sources."@swc/types-0.1.6"
+      sources."@swc/helpers-0.5.11"
+      sources."@swc/types-0.1.7"
       sources."@tootallnate/once-2.0.0"
       sources."@tufjs/canonical-json-1.0.0"
       (sources."@tufjs/models-1.0.4" // {
         dependencies = [
-          sources."minimatch-9.0.3"
+          sources."minimatch-9.0.4"
         ];
       })
       sources."@types/minimatch-3.0.5"
@@ -83299,11 +81185,11 @@ in
           sources."sprintf-js-1.0.3"
         ];
       })
-      sources."@zkochan/js-yaml-0.0.6"
+      sources."@zkochan/js-yaml-0.0.7"
       sources."JSONStream-1.3.5"
       sources."abbrev-2.0.0"
       sources."add-stream-1.0.0"
-      sources."agent-base-7.1.0"
+      sources."agent-base-7.1.1"
       sources."agentkeepalive-4.5.0"
       sources."aggregate-error-3.1.0"
       sources."ansi-colors-4.1.3"
@@ -83323,20 +81209,20 @@ in
       sources."arrify-1.0.1"
       sources."async-3.2.5"
       sources."asynckit-0.4.0"
-      sources."axios-1.6.8"
+      sources."axios-1.7.2"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."before-after-hook-2.2.3"
       sources."bl-4.1.0"
       sources."brace-expansion-2.0.1"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."buffer-5.7.1"
       sources."buffer-from-1.1.2"
       sources."builtins-1.0.3"
       sources."byte-size-8.1.1"
-      (sources."cacache-18.0.2" // {
+      (sources."cacache-18.0.3" // {
         dependencies = [
-          sources."ssri-10.0.5"
+          sources."ssri-10.0.6"
         ];
       })
       sources."callsites-3.1.0"
@@ -83399,12 +81285,13 @@ in
       })
       (sources."cross-spawn-7.0.3" // {
         dependencies = [
+          sources."isexe-2.0.0"
           sources."which-2.0.2"
         ];
       })
       sources."dargs-7.0.0"
       sources."dateformat-3.0.3"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.1" // {
         dependencies = [
@@ -83429,7 +81316,7 @@ in
       sources."dotenv-expand-10.0.0"
       sources."duplexer-0.1.2"
       sources."eastasianwidth-0.2.0"
-      sources."ejs-3.1.9"
+      sources."ejs-3.1.10"
       sources."emoji-regex-9.2.2"
       (sources."encoding-0.1.13" // {
         dependencies = [
@@ -83461,7 +81348,7 @@ in
           sources."minimatch-5.1.6"
         ];
       })
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."find-up-4.1.0"
       sources."flat-5.0.2"
       sources."follow-redirects-1.15.6"
@@ -83507,9 +81394,9 @@ in
       sources."git-up-7.0.0"
       sources."git-url-parse-13.1.0"
       sources."gitconfiglocal-1.0.0"
-      (sources."glob-10.3.10" // {
+      (sources."glob-10.4.1" // {
         dependencies = [
-          sources."minimatch-9.0.3"
+          sources."minimatch-9.0.4"
         ];
       })
       sources."glob-parent-5.1.2"
@@ -83583,10 +81470,10 @@ in
       sources."is-unicode-supported-0.1.0"
       sources."is-wsl-2.2.0"
       sources."isarray-1.0.0"
-      sources."isexe-2.0.0"
+      sources."isexe-3.1.1"
       sources."isobject-3.0.1"
-      sources."jackspeak-2.3.6"
-      (sources."jake-10.8.7" // {
+      sources."jackspeak-3.2.3"
+      (sources."jake-10.9.1" // {
         dependencies = [
           sources."brace-expansion-1.1.11"
           sources."minimatch-3.1.2"
@@ -83598,7 +81485,7 @@ in
       sources."js-yaml-4.1.0"
       sources."jsbn-1.1.0"
       sources."json-parse-better-errors-1.0.2"
-      sources."json-parse-even-better-errors-3.0.1"
+      sources."json-parse-even-better-errors-3.0.2"
       sources."json-stringify-safe-5.0.1"
       sources."json5-2.2.3"
       sources."jsonc-parser-3.2.0"
@@ -83618,7 +81505,7 @@ in
           sources."lru-cache-7.18.3"
           sources."normalize-package-data-5.0.0"
           sources."npm-package-arg-10.1.0"
-          sources."ssri-10.0.5"
+          sources."ssri-10.0.6"
         ];
       })
       sources."lines-and-columns-1.2.4"
@@ -83632,11 +81519,12 @@ in
       sources."lodash-4.17.21"
       sources."lodash.ismatch-4.4.0"
       sources."log-symbols-4.1.0"
-      sources."lru-cache-10.2.0"
+      sources."lru-cache-10.2.2"
       sources."make-dir-4.0.0"
-      (sources."make-fetch-happen-13.0.0" // {
+      (sources."make-fetch-happen-13.0.1" // {
         dependencies = [
-          sources."ssri-10.0.5"
+          sources."proc-log-4.2.0"
+          sources."ssri-10.0.6"
         ];
       })
       sources."map-obj-4.3.0"
@@ -83659,7 +81547,7 @@ in
       })
       sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
       sources."mimic-fn-2.1.0"
@@ -83671,9 +81559,9 @@ in
       })
       sources."minimist-1.2.8"
       sources."minimist-options-4.1.0"
-      sources."minipass-7.0.4"
+      sources."minipass-7.1.2"
       sources."minipass-collect-2.0.1"
-      sources."minipass-fetch-3.0.4"
+      sources."minipass-fetch-3.0.5"
       (sources."minipass-flush-1.0.5" // {
         dependencies = [
           sources."minipass-3.3.6"
@@ -83711,9 +81599,9 @@ in
       sources."negotiator-0.6.3"
       sources."neo-async-2.6.2"
       sources."node-fetch-2.6.7"
-      sources."node-gyp-10.0.1"
+      sources."node-gyp-10.1.0"
       sources."node-machine-id-1.1.12"
-      sources."nopt-7.2.0"
+      sources."nopt-7.2.1"
       (sources."normalize-package-data-3.0.3" // {
         dependencies = [
           sources."hosted-git-info-4.1.0"
@@ -83741,10 +81629,11 @@ in
           sources."npm-normalize-package-bin-1.0.1"
         ];
       })
-      (sources."npm-pick-manifest-9.0.0" // {
+      (sources."npm-pick-manifest-9.0.1" // {
         dependencies = [
-          sources."hosted-git-info-7.0.1"
-          sources."npm-package-arg-11.0.1"
+          sources."hosted-git-info-7.0.2"
+          sources."npm-package-arg-11.0.2"
+          sources."proc-log-4.2.0"
         ];
       })
       (sources."npm-registry-fetch-14.0.5" // {
@@ -83752,7 +81641,7 @@ in
           sources."agent-base-6.0.2"
           (sources."cacache-17.1.4" // {
             dependencies = [
-              sources."minipass-7.0.4"
+              sources."minipass-7.1.2"
             ];
           })
           sources."hosted-git-info-6.1.1"
@@ -83768,16 +81657,16 @@ in
           })
           sources."npm-package-arg-10.1.0"
           sources."socks-proxy-agent-7.0.0"
-          (sources."ssri-10.0.5" // {
+          (sources."ssri-10.0.6" // {
             dependencies = [
-              sources."minipass-7.0.4"
+              sources."minipass-7.1.2"
             ];
           })
         ];
       })
       sources."npm-run-path-4.0.1"
       sources."npmlog-6.0.2"
-      (sources."nx-18.1.2" // {
+      (sources."nx-19.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."cli-spinners-2.6.1"
@@ -83811,25 +81700,26 @@ in
       sources."p-timeout-3.2.0"
       sources."p-try-2.2.0"
       sources."p-waterfall-2.1.1"
-      (sources."pacote-17.0.6" // {
+      (sources."pacote-17.0.7" // {
         dependencies = [
-          sources."@sigstore/bundle-2.2.0"
-          sources."@sigstore/protobuf-specs-0.3.0"
-          sources."@sigstore/sign-2.2.3"
-          sources."@sigstore/tuf-2.3.1"
+          sources."@sigstore/bundle-2.3.2"
+          sources."@sigstore/protobuf-specs-0.3.2"
+          sources."@sigstore/sign-2.3.2"
+          sources."@sigstore/tuf-2.3.4"
           sources."@tufjs/canonical-json-2.0.0"
-          sources."@tufjs/models-2.0.0"
-          sources."hosted-git-info-7.0.1"
-          sources."ignore-walk-6.0.4"
-          sources."minimatch-9.0.3"
-          sources."normalize-package-data-6.0.0"
-          sources."npm-package-arg-11.0.1"
+          sources."@tufjs/models-2.0.1"
+          sources."hosted-git-info-7.0.2"
+          sources."ignore-walk-6.0.5"
+          sources."minimatch-9.0.4"
+          sources."normalize-package-data-6.0.1"
+          sources."npm-package-arg-11.0.2"
           sources."npm-packlist-8.0.2"
-          sources."npm-registry-fetch-16.1.0"
-          sources."read-package-json-7.0.0"
-          sources."sigstore-2.2.2"
-          sources."ssri-10.0.5"
-          sources."tuf-js-2.2.0"
+          sources."npm-registry-fetch-16.2.1"
+          sources."proc-log-4.2.0"
+          sources."read-package-json-7.0.1"
+          sources."sigstore-2.3.1"
+          sources."ssri-10.0.6"
+          sources."tuf-js-2.2.1"
         ];
       })
       sources."parent-module-1.0.1"
@@ -83843,12 +81733,13 @@ in
       sources."path-exists-4.0.0"
       sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
-      sources."path-scurry-1.10.1"
+      sources."path-scurry-1.11.1"
       (sources."path-type-3.0.0" // {
         dependencies = [
           sources."pify-3.0.0"
         ];
       })
+      sources."picocolors-1.0.1"
       sources."picomatch-2.3.1"
       sources."pify-5.0.0"
       sources."pirates-4.0.6"
@@ -83862,12 +81753,16 @@ in
       sources."process-nextick-args-2.0.1"
       sources."promise-inflight-1.0.1"
       sources."promise-retry-2.0.1"
-      sources."promzard-1.0.0"
+      (sources."promzard-1.0.2" // {
+        dependencies = [
+          sources."read-3.0.1"
+        ];
+      })
       sources."protocols-2.0.1"
       sources."proxy-from-env-1.1.0"
       sources."queue-microtask-1.2.3"
       sources."quick-lru-4.0.1"
-      sources."react-is-18.2.0"
+      sources."react-is-18.3.1"
       sources."read-2.1.0"
       sources."read-cmd-shim-4.0.0"
       (sources."read-package-json-6.0.4" // {
@@ -83918,11 +81813,7 @@ in
       sources."rxjs-7.8.1"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      (sources."semver-7.6.0" // {
-        dependencies = [
-          sources."lru-cache-6.0.0"
-        ];
-      })
+      sources."semver-7.6.2"
       sources."set-blocking-2.0.0"
       sources."shallow-clone-3.0.1"
       sources."shebang-command-2.0.0"
@@ -83933,7 +81824,7 @@ in
           sources."agent-base-6.0.2"
           (sources."cacache-17.1.4" // {
             dependencies = [
-              sources."minipass-7.0.4"
+              sources."minipass-7.1.2"
             ];
           })
           sources."http-proxy-agent-5.0.0"
@@ -83947,24 +81838,24 @@ in
             ];
           })
           sources."socks-proxy-agent-7.0.0"
-          (sources."ssri-10.0.5" // {
+          (sources."ssri-10.0.6" // {
             dependencies = [
-              sources."minipass-7.0.4"
+              sources."minipass-7.1.2"
             ];
           })
         ];
       })
       sources."slash-3.0.0"
       sources."smart-buffer-4.2.0"
-      sources."socks-2.8.1"
-      sources."socks-proxy-agent-8.0.2"
+      sources."socks-2.8.3"
+      sources."socks-proxy-agent-8.0.3"
       sources."sort-keys-2.0.0"
       sources."source-map-0.6.1"
       sources."source-map-support-0.5.21"
       sources."spdx-correct-3.2.0"
       sources."spdx-exceptions-2.5.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.17"
+      sources."spdx-license-ids-3.0.18"
       sources."split-1.0.1"
       sources."split2-3.2.2"
       sources."sprintf-js-1.1.3"
@@ -83993,10 +81884,14 @@ in
       sources."strong-log-transformer-2.1.0"
       sources."supports-color-7.2.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
-      (sources."tar-6.1.11" // {
+      (sources."tar-6.2.1" // {
         dependencies = [
-          sources."fs-minipass-2.1.0"
-          sources."minipass-3.3.6"
+          (sources."fs-minipass-2.1.0" // {
+            dependencies = [
+              sources."minipass-3.3.6"
+            ];
+          })
+          sources."minipass-5.0.0"
         ];
       })
       sources."tar-stream-2.2.0"
@@ -84021,7 +81916,7 @@ in
           sources."agent-base-6.0.2"
           (sources."cacache-17.1.4" // {
             dependencies = [
-              sources."minipass-7.0.4"
+              sources."minipass-7.1.2"
             ];
           })
           sources."http-proxy-agent-5.0.0"
@@ -84035,16 +81930,16 @@ in
             ];
           })
           sources."socks-proxy-agent-7.0.0"
-          (sources."ssri-10.0.5" // {
+          (sources."ssri-10.0.6" // {
             dependencies = [
-              sources."minipass-7.0.4"
+              sources."minipass-7.1.2"
             ];
           })
         ];
       })
       sources."type-fest-0.18.1"
       sources."typedarray-0.0.6"
-      sources."typescript-5.4.2"
+      sources."typescript-5.4.5"
       sources."uglify-js-3.17.4"
       sources."unique-filename-3.0.0"
       sources."unique-slug-4.0.0"
@@ -84056,17 +81951,13 @@ in
       sources."validate-npm-package-license-3.0.4"
       (sources."validate-npm-package-name-5.0.0" // {
         dependencies = [
-          sources."builtins-5.0.1"
+          sources."builtins-5.1.0"
         ];
       })
       sources."wcwidth-1.0.1"
       sources."webidl-conversions-3.0.1"
       sources."whatwg-url-5.0.0"
-      (sources."which-4.0.0" // {
-        dependencies = [
-          sources."isexe-3.1.1"
-        ];
-      })
+      sources."which-4.0.0"
       (sources."wide-align-1.1.5" // {
         dependencies = [
           sources."emoji-regex-8.0.0"
@@ -84150,7 +82041,7 @@ in
       sources."pify-4.0.1"
       sources."prr-1.0.1"
       sources."safer-buffer-2.1.2"
-      sources."sax-1.3.0"
+      sources."sax-1.4.1"
       sources."semver-5.7.2"
       sources."source-map-0.6.1"
       sources."tslib-2.6.2"
@@ -84500,7 +82391,7 @@ in
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.12.0"
+      sources."aws4-1.13.0"
       sources."backo2-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
@@ -84544,7 +82435,7 @@ in
         ];
       })
       sources."content-type-1.0.5"
-      sources."cookie-0.5.0"
+      sources."cookie-0.6.0"
       sources."cookie-signature-1.0.6"
       sources."copy-descriptor-0.1.1"
       sources."core-util-is-1.0.3"
@@ -84583,7 +82474,7 @@ in
       sources."etag-1.8.1"
       sources."expand-brackets-0.1.5"
       sources."expand-range-1.8.2"
-      (sources."express-4.18.3" // {
+      (sources."express-4.19.2" // {
         dependencies = [
           sources."safe-buffer-5.2.1"
         ];
@@ -84716,7 +82607,7 @@ in
         ];
       })
       sources."negotiator-0.6.3"
-      sources."node-gyp-build-4.8.0"
+      sources."node-gyp-build-4.8.1"
       sources."normalize-path-2.1.1"
       sources."oauth-sign-0.9.0"
       (sources."object-copy-0.1.0" // {
@@ -85004,7 +82895,7 @@ in
       sources."@types/commander-2.12.2"
       sources."@types/diff-3.5.8"
       sources."@types/get-stdin-5.0.1"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."commander-2.20.3"
       sources."diff-3.5.0"
       sources."get-stdin-5.0.1"
@@ -85076,14 +82967,14 @@ in
   markdown-link-check = nodeEnv.buildNodePackage {
     name = "markdown-link-check";
     packageName = "markdown-link-check";
-    version = "3.12.1";
+    version = "3.12.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.12.1.tgz";
-      sha512 = "qjaopy0tcZFKMhr+wAOQf7KyValRXygTOaZQ3Ka1rf+nyObIUdU9hUVY93gYysz8+hx92YnXnKh1dmNRPO/5bA==";
+      url = "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.12.2.tgz";
+      sha512 = "GWMwSvxuZn+uGGydi5yywnnDZy08SGps4I/63xqvWT7lxtH4cVLnhgZZYtEcPz/QvgPg9vbH2rvWpa29owMtHA==";
     };
     dependencies = [
       sources."@tootallnate/quickjs-emscripten-0.23.0"
-      sources."agent-base-7.1.0"
+      sources."agent-base-7.1.1"
       sources."ast-types-0.13.4"
       sources."async-3.2.5"
       sources."basic-ftp-5.0.5"
@@ -85091,11 +82982,11 @@ in
       sources."chalk-5.3.0"
       sources."cheerio-1.0.0-rc.12"
       sources."cheerio-select-2.1.0"
-      sources."commander-10.0.1"
+      sources."commander-12.1.0"
       sources."css-select-5.1.0"
       sources."css-what-6.1.0"
       sources."data-uri-to-buffer-6.0.2"
-      (sources."debug-4.3.4" // {
+      (sources."debug-4.3.5" // {
         dependencies = [
           sources."ms-2.1.2"
         ];
@@ -85128,7 +83019,7 @@ in
       sources."lodash-4.17.21"
       sources."lru-cache-7.18.3"
       sources."markdown-link-extractor-4.0.2"
-      sources."marked-12.0.1"
+      sources."marked-12.0.2"
       sources."ms-2.1.3"
       sources."needle-3.3.1"
       sources."netmask-2.0.2"
@@ -85142,10 +83033,10 @@ in
       sources."proxy-from-env-1.1.0"
       sources."punycode-2.3.1"
       sources."safer-buffer-2.1.2"
-      sources."sax-1.3.0"
+      sources."sax-1.4.1"
       sources."smart-buffer-4.2.0"
-      sources."socks-2.8.1"
-      sources."socks-proxy-agent-8.0.2"
+      sources."socks-2.8.3"
+      sources."socks-proxy-agent-8.0.3"
       sources."source-map-0.6.1"
       sources."sprintf-js-1.1.3"
       sources."tslib-2.6.2"
@@ -85190,7 +83081,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.12.0"
+      sources."aws4-1.13.0"
       sources."babel-code-frame-6.26.0"
       sources."balanced-match-1.0.2"
       sources."bcrypt-pbkdf-1.0.2"
@@ -85311,10 +83202,15 @@ in
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."inquirer-0.12.0"
+      (sources."inquirer-0.12.0" // {
+        dependencies = [
+          sources."is-fullwidth-code-point-1.0.0"
+          sources."string-width-1.0.2"
+        ];
+      })
       sources."interpret-1.4.0"
       sources."is-core-module-2.13.1"
-      sources."is-fullwidth-code-point-1.0.0"
+      sources."is-fullwidth-code-point-2.0.0"
       sources."is-my-ip-valid-1.0.1"
       sources."is-my-json-valid-2.20.6"
       sources."is-property-1.0.2"
@@ -85391,7 +83287,11 @@ in
       sources."qs-6.5.3"
       sources."readable-stream-2.3.8"
       sources."readline-1.3.0"
-      sources."readline2-1.0.1"
+      (sources."readline2-1.0.1" // {
+        dependencies = [
+          sources."is-fullwidth-code-point-1.0.0"
+        ];
+      })
       sources."rechoir-0.6.2"
       sources."replace-ext-0.0.1"
       sources."request-2.88.0"
@@ -85405,28 +83305,26 @@ in
       sources."rx-lite-3.1.2"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
-      sources."sax-1.3.0"
+      sources."sax-1.4.1"
       sources."set-function-length-1.2.2"
       sources."shelljs-0.7.8"
       sources."slice-ansi-0.0.4"
       sources."sparkles-1.0.1"
       sources."sprintf-js-1.0.3"
       sources."sshpk-1.18.0"
-      sources."string-width-1.0.2"
+      (sources."string-width-2.1.1" // {
+        dependencies = [
+          sources."ansi-regex-3.0.1"
+          sources."strip-ansi-4.0.0"
+        ];
+      })
       sources."string_decoder-1.1.1"
       sources."strip-ansi-3.0.1"
       sources."strip-bom-3.0.0"
       sources."strip-json-comments-2.0.1"
       sources."supports-color-2.0.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
-      (sources."table-3.8.3" // {
-        dependencies = [
-          sources."ansi-regex-3.0.1"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-2.1.1"
-          sources."strip-ansi-4.0.0"
-        ];
-      })
+      sources."table-3.8.3"
       sources."text-table-0.2.0"
       sources."through-2.3.8"
       sources."through2-2.0.5"
@@ -85440,7 +83338,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."twitter-1.7.1"
-      sources."type-2.7.2"
+      sources."type-2.7.3"
       sources."type-check-0.3.2"
       sources."typedarray-0.0.6"
       sources."uri-js-4.4.1"
@@ -85528,10 +83426,10 @@ in
   mocha = nodeEnv.buildNodePackage {
     name = "mocha";
     packageName = "mocha";
-    version = "10.3.0";
+    version = "10.4.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/mocha/-/mocha-10.3.0.tgz";
-      sha512 = "uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==";
+      url = "https://registry.npmjs.org/mocha/-/mocha-10.4.0.tgz";
+      sha512 = "eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==";
     };
     dependencies = [
       sources."ansi-colors-4.1.1"
@@ -85542,7 +83440,7 @@ in
       sources."balanced-match-1.0.2"
       sources."binary-extensions-2.3.0"
       sources."brace-expansion-2.0.1"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."browser-stdout-1.3.1"
       sources."camelcase-6.3.0"
       (sources."chalk-4.1.2" // {
@@ -85564,7 +83462,7 @@ in
       sources."emoji-regex-8.0.0"
       sources."escalade-3.1.2"
       sources."escape-string-regexp-4.0.0"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."find-up-5.0.0"
       sources."flat-5.0.2"
       sources."fs.realpath-1.0.0"
@@ -85640,7 +83538,7 @@ in
       sources."commander-2.20.3"
       sources."component-emitter-1.3.1"
       sources."cookiejar-2.1.4"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."define-data-property-1.1.4"
       sources."delayed-stream-1.0.0"
       sources."dezalgo-1.0.4"
@@ -85667,7 +83565,6 @@ in
         ];
       })
       sources."lodash-4.17.21"
-      sources."lru-cache-6.0.0"
       sources."methods-1.1.2"
       sources."mime-2.6.0"
       sources."mime-db-1.52.0"
@@ -85678,10 +83575,10 @@ in
       sources."once-1.4.0"
       sources."path-loader-1.0.12"
       sources."punycode-2.3.1"
-      sources."qs-6.12.0"
+      sources."qs-6.12.1"
       sources."readable-stream-3.6.2"
       sources."safe-buffer-5.2.1"
-      sources."semver-7.6.0"
+      sources."semver-7.6.2"
       sources."set-function-length-1.2.2"
       sources."side-channel-1.0.6"
       sources."slash-3.0.0"
@@ -85691,7 +83588,6 @@ in
       sources."uri-js-4.4.1"
       sources."util-deprecate-1.0.2"
       sources."wrappy-1.0.2"
-      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -85705,10 +83601,10 @@ in
   neovim = nodeEnv.buildNodePackage {
     name = "neovim";
     packageName = "neovim";
-    version = "5.0.1";
+    version = "5.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/neovim/-/neovim-5.0.1.tgz";
-      sha512 = "dGrk2r+uQDZHB8yFKBuHUBqwP1akbCGUQt+Re7nRaS3uhOvsKYUvikg5qBRdcxoWMvvHIqp1EVihskKAk93mPw==";
+      url = "https://registry.npmjs.org/neovim/-/neovim-5.1.0.tgz";
+      sha512 = "9eTxqknziWkN8CBOx1SKdK+0Dfp1NHKHKyJaeOYu+x6qjaV9z3hB211wKhLaFGtyYmGZxVaIe1aLtvuTHmuZTA==";
     };
     dependencies = [
       sources."@colors/colors-1.6.0"
@@ -85778,23 +83674,23 @@ in
   node-gyp = nodeEnv.buildNodePackage {
     name = "node-gyp";
     packageName = "node-gyp";
-    version = "10.0.1";
+    version = "10.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.1.tgz";
-      sha512 = "gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==";
+      url = "https://registry.npmjs.org/node-gyp/-/node-gyp-10.1.0.tgz";
+      sha512 = "B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==";
     };
     dependencies = [
       sources."@isaacs/cliui-8.0.2"
-      sources."@npmcli/agent-2.2.1"
-      sources."@npmcli/fs-3.1.0"
+      sources."@npmcli/agent-2.2.2"
+      sources."@npmcli/fs-3.1.1"
       sources."abbrev-2.0.0"
-      sources."agent-base-7.1.0"
+      sources."agent-base-7.1.1"
       sources."aggregate-error-3.1.0"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-6.2.1"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-2.0.1"
-      sources."cacache-18.0.2"
+      sources."cacache-18.0.3"
       sources."chownr-2.0.0"
       sources."clean-stack-2.2.0"
       sources."color-convert-2.0.1"
@@ -85804,7 +83700,7 @@ in
           sources."which-2.0.2"
         ];
       })
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."eastasianwidth-0.2.0"
       sources."emoji-regex-9.2.2"
       sources."env-paths-2.2.1"
@@ -85812,7 +83708,7 @@ in
       sources."exponential-backoff-3.1.1"
       sources."foreground-child-3.1.1"
       sources."fs-minipass-3.0.3"
-      sources."glob-10.3.10"
+      sources."glob-10.4.1"
       sources."graceful-fs-4.2.11"
       sources."http-cache-semantics-4.1.1"
       sources."http-proxy-agent-7.0.2"
@@ -85823,14 +83719,18 @@ in
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-lambda-1.0.1"
       sources."isexe-2.0.0"
-      sources."jackspeak-2.3.6"
+      sources."jackspeak-3.2.3"
       sources."jsbn-1.1.0"
-      sources."lru-cache-10.2.0"
-      sources."make-fetch-happen-13.0.0"
-      sources."minimatch-9.0.3"
-      sources."minipass-7.0.4"
+      sources."lru-cache-10.2.2"
+      (sources."make-fetch-happen-13.0.1" // {
+        dependencies = [
+          sources."proc-log-4.2.0"
+        ];
+      })
+      sources."minimatch-9.0.4"
+      sources."minipass-7.1.2"
       sources."minipass-collect-2.0.1"
-      sources."minipass-fetch-3.0.4"
+      sources."minipass-fetch-3.0.5"
       (sources."minipass-flush-1.0.5" // {
         dependencies = [
           sources."minipass-3.3.6"
@@ -85854,26 +83754,22 @@ in
       sources."mkdirp-1.0.4"
       sources."ms-2.1.2"
       sources."negotiator-0.6.3"
-      sources."nopt-7.2.0"
+      sources."nopt-7.2.1"
       sources."p-map-4.0.0"
       sources."path-key-3.1.1"
-      sources."path-scurry-1.10.1"
+      sources."path-scurry-1.11.1"
       sources."proc-log-3.0.0"
       sources."promise-retry-2.0.1"
       sources."retry-0.12.0"
-      (sources."semver-7.6.0" // {
-        dependencies = [
-          sources."lru-cache-6.0.0"
-        ];
-      })
+      sources."semver-7.6.2"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-4.1.0"
       sources."smart-buffer-4.2.0"
-      sources."socks-2.8.1"
-      sources."socks-proxy-agent-8.0.2"
+      sources."socks-2.8.3"
+      sources."socks-proxy-agent-8.0.3"
       sources."sprintf-js-1.1.3"
-      sources."ssri-10.0.5"
+      sources."ssri-10.0.6"
       sources."string-width-5.1.2"
       (sources."string-width-cjs-4.2.3" // {
         dependencies = [
@@ -85887,7 +83783,7 @@ in
         ];
       })
       sources."strip-ansi-cjs-6.0.1"
-      (sources."tar-6.2.0" // {
+      (sources."tar-6.2.1" // {
         dependencies = [
           (sources."fs-minipass-2.1.0" // {
             dependencies = [
@@ -85928,10 +83824,10 @@ in
   node-gyp-build = nodeEnv.buildNodePackage {
     name = "node-gyp-build";
     packageName = "node-gyp-build";
-    version = "4.8.0";
+    version = "4.8.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz";
-      sha512 = "u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==";
+      url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz";
+      sha512 = "OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -86004,7 +83900,7 @@ in
       sources."rimraf-2.7.1"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
-      sources."sax-1.3.0"
+      sources."sax-1.4.1"
       sources."semver-5.7.2"
       sources."set-blocking-2.0.0"
       sources."signal-exit-3.0.7"
@@ -86035,26 +83931,29 @@ in
   node-red = nodeEnv.buildNodePackage {
     name = "node-red";
     packageName = "node-red";
-    version = "3.1.7";
+    version = "3.1.9";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-red/-/node-red-3.1.7.tgz";
-      sha512 = "FQH9nEPNLjXrsSmcl8DL51htu800kW0BVvTmn4j0jldOiFZyW+LzmxVTp7HhLuG1MTMrYvjaimMcLbxTL8ytAA==";
+      url = "https://registry.npmjs.org/node-red/-/node-red-3.1.9.tgz";
+      sha512 = "SNuXZoplH/UewibVbe/UPyMhsmeuoCGjDVmBmWo+Wj8arE14PF1cOoTKdnbv5F/vPc1kbUvd0+oWCm9kv7wfkw==";
     };
     dependencies = [
-      sources."@babel/runtime-7.24.0"
+      sources."@babel/runtime-7.24.6"
       sources."@mapbox/node-pre-gyp-1.0.11"
-      sources."@node-red/editor-api-3.1.7"
-      sources."@node-red/editor-client-3.1.7"
-      (sources."@node-red/nodes-3.1.7" // {
+      (sources."@node-red/editor-api-3.1.9" // {
+        dependencies = [
+          sources."mime-3.0.0"
+        ];
+      })
+      sources."@node-red/editor-client-3.1.9"
+      (sources."@node-red/nodes-3.1.9" // {
         dependencies = [
           sources."cookie-0.5.0"
-          sources."iconv-lite-0.6.3"
           sources."media-typer-1.1.0"
         ];
       })
-      sources."@node-red/registry-3.1.7"
-      sources."@node-red/runtime-3.1.7"
-      sources."@node-red/util-3.1.7"
+      sources."@node-red/registry-3.1.9"
+      sources."@node-red/runtime-3.1.9"
+      sources."@node-red/util-3.1.9"
       sources."@sindresorhus/is-5.6.0"
       sources."@szmarczak/http-timer-5.0.1"
       sources."@types/http-cache-semantics-4.0.4"
@@ -86062,27 +83961,18 @@ in
       sources."accepts-1.3.8"
       sources."acorn-8.8.2"
       sources."acorn-walk-8.2.0"
-      (sources."agent-base-6.0.2" // {
-        dependencies = [
-          sources."debug-4.3.4"
-          sources."ms-2.1.2"
-        ];
-      })
+      sources."agent-base-6.0.2"
       sources."ajv-8.12.0"
       sources."ansi-colors-4.1.3"
       sources."ansi-regex-5.0.1"
       sources."append-field-1.0.0"
       sources."aproba-2.0.0"
-      (sources."are-we-there-yet-2.0.0" // {
-        dependencies = [
-          sources."readable-stream-3.6.2"
-        ];
-      })
+      sources."are-we-there-yet-2.0.0"
       sources."argparse-2.0.1"
       sources."array-flatten-1.1.1"
       sources."async-mutex-0.4.0"
       sources."asynckit-0.4.0"
-      sources."axios-1.6.8"
+      sources."axios-1.7.2"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       (sources."basic-auth-2.0.1" // {
@@ -86092,12 +83982,14 @@ in
       })
       sources."bcrypt-5.1.0"
       sources."bcryptjs-2.4.3"
-      (sources."bl-4.1.0" // {
+      sources."bl-4.1.0"
+      (sources."body-parser-1.20.2" // {
         dependencies = [
-          sources."readable-stream-3.6.2"
+          sources."debug-2.6.9"
+          sources."iconv-lite-0.4.24"
+          sources."ms-2.0.0"
         ];
       })
-      sources."body-parser-1.20.2"
       sources."boolbase-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."buffer-5.7.1"
@@ -86118,11 +84010,11 @@ in
       sources."combined-stream-1.0.8"
       sources."commist-1.1.0"
       sources."concat-map-0.0.1"
-      sources."concat-stream-1.6.2"
+      sources."concat-stream-2.0.0"
       sources."console-control-strings-1.1.0"
       sources."content-disposition-0.5.4"
       sources."content-type-1.0.5"
-      sources."cookie-0.4.2"
+      sources."cookie-0.6.0"
       (sources."cookie-parser-1.4.6" // {
         dependencies = [
           sources."cookie-0.4.1"
@@ -86134,7 +84026,7 @@ in
       sources."cronosjs-1.7.1"
       sources."css-select-4.3.0"
       sources."css-what-6.1.0"
-      sources."debug-2.6.9"
+      sources."debug-4.3.5"
       (sources."decompress-response-6.0.0" // {
         dependencies = [
           sources."mimic-response-3.1.0"
@@ -86147,24 +84039,16 @@ in
       sources."denque-2.1.0"
       sources."depd-2.0.0"
       sources."destroy-1.2.0"
-      sources."detect-libc-2.0.2"
+      sources."detect-libc-2.0.3"
       sources."dom-serializer-1.4.1"
       sources."domelementtype-2.3.0"
       sources."domhandler-4.3.1"
       sources."domutils-2.8.0"
-      (sources."duplexify-4.1.3" // {
-        dependencies = [
-          sources."readable-stream-3.6.2"
-        ];
-      })
+      sources."duplexify-4.1.3"
       sources."ee-first-1.1.1"
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
-      (sources."encoding-0.1.13" // {
-        dependencies = [
-          sources."iconv-lite-0.6.3"
-        ];
-      })
+      sources."encoding-0.1.13"
       sources."end-of-stream-1.4.4"
       sources."enquirer-2.4.1"
       sources."entities-2.2.0"
@@ -86172,30 +84056,35 @@ in
       sources."es-errors-1.3.0"
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
-      (sources."express-4.18.2" // {
+      (sources."express-4.19.2" // {
         dependencies = [
-          sources."body-parser-1.20.1"
-          sources."cookie-0.5.0"
-          sources."raw-body-2.5.1"
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      (sources."express-session-1.17.3" // {
+        dependencies = [
+          sources."cookie-0.4.2"
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
         ];
       })
-      sources."express-session-1.17.3"
       sources."fast-deep-equal-3.1.3"
-      sources."finalhandler-1.2.0"
+      (sources."finalhandler-1.2.0" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
       sources."follow-redirects-1.15.6"
       sources."form-data-4.0.0"
       sources."form-data-encoder-2.1.4"
       sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
-      (sources."fs-extra-11.1.1" // {
-        dependencies = [
-          sources."universalify-2.0.1"
-        ];
-      })
+      sources."fs-extra-11.1.1"
       (sources."fs-minipass-2.1.0" // {
         dependencies = [
           sources."minipass-3.3.6"
-          sources."yallist-4.0.0"
         ];
       })
       sources."fs.realpath-1.0.0"
@@ -86213,24 +84102,15 @@ in
       sources."has-unicode-2.0.1"
       sources."hash-sum-2.0.0"
       sources."hasown-2.0.2"
-      (sources."help-me-3.0.0" // {
-        dependencies = [
-          sources."readable-stream-3.6.2"
-        ];
-      })
+      sources."help-me-3.0.0"
       sources."hpagent-1.2.0"
       sources."htmlparser2-6.1.0"
       sources."http-cache-semantics-4.1.1"
       sources."http-errors-2.0.0"
       sources."http2-wrapper-2.2.1"
-      (sources."https-proxy-agent-5.0.1" // {
-        dependencies = [
-          sources."debug-4.3.4"
-          sources."ms-2.1.2"
-        ];
-      })
+      sources."https-proxy-agent-5.0.1"
       sources."i18next-21.10.0"
-      sources."iconv-lite-0.4.24"
+      sources."iconv-lite-0.6.3"
       sources."ieee754-1.2.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -86244,16 +84124,12 @@ in
       sources."json-schema-traverse-1.0.0"
       sources."json-stringify-safe-5.0.1"
       sources."jsonata-1.8.7"
-      (sources."jsonfile-6.1.0" // {
-        dependencies = [
-          sources."universalify-2.0.1"
-        ];
-      })
+      sources."jsonfile-6.1.0"
       sources."keyv-4.5.4"
       sources."leven-2.1.0"
       sources."lodash.clonedeep-4.5.0"
       sources."lowercase-keys-3.0.0"
-      sources."lru-cache-4.1.5"
+      sources."lru-cache-6.0.0"
       (sources."make-dir-3.1.0" // {
         dependencies = [
           sources."semver-6.3.1"
@@ -86262,65 +84138,58 @@ in
       sources."media-typer-0.3.0"
       (sources."memorystore-1.6.7" // {
         dependencies = [
-          sources."debug-4.3.4"
-          sources."ms-2.1.2"
+          sources."lru-cache-4.1.5"
+          sources."yallist-2.1.2"
         ];
       })
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
-      sources."mime-3.0.0"
+      sources."mime-1.6.0"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
       sources."mimic-response-4.0.0"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.8"
-      sources."minipass-4.2.8"
+      sources."minipass-5.0.0"
       (sources."minizlib-2.1.2" // {
         dependencies = [
           sources."minipass-3.3.6"
-          sources."yallist-4.0.0"
         ];
       })
-      sources."mkdirp-0.5.6"
+      sources."mkdirp-1.0.4"
       sources."moment-2.29.4"
       sources."moment-timezone-0.5.43"
-      (sources."mqtt-4.3.7" // {
-        dependencies = [
-          sources."concat-stream-2.0.0"
-          sources."debug-4.3.4"
-          sources."lru-cache-6.0.0"
-          sources."ms-2.1.2"
-          sources."readable-stream-3.6.2"
-          sources."yallist-4.0.0"
-        ];
-      })
-      (sources."mqtt-packet-6.10.0" // {
+      sources."mqtt-4.3.7"
+      sources."mqtt-packet-6.10.0"
+      sources."ms-2.1.2"
+      (sources."multer-1.4.5-lts.1" // {
         dependencies = [
-          sources."debug-4.3.4"
-          sources."ms-2.1.2"
+          sources."concat-stream-1.6.2"
+          sources."mkdirp-0.5.6"
+          sources."readable-stream-2.3.8"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
         ];
       })
-      sources."ms-2.0.0"
-      sources."multer-1.4.5-lts.1"
       sources."mustache-4.2.0"
       sources."mute-stream-0.0.8"
       sources."negotiator-0.6.3"
       sources."node-addon-api-5.1.0"
       sources."node-fetch-2.7.0"
-      sources."node-gyp-build-4.8.0"
-      sources."node-red-admin-3.1.2"
+      sources."node-gyp-build-4.8.1"
+      sources."node-red-admin-3.1.3"
       sources."node-watch-0.7.4"
       sources."nopt-5.0.0"
       sources."normalize-url-8.0.1"
       sources."npmlog-5.0.1"
       sources."nth-check-2.1.1"
-      (sources."number-allocator-1.0.14" // {
+      sources."number-allocator-1.0.14"
+      (sources."oauth2orize-1.11.1" // {
         dependencies = [
-          sources."debug-4.3.4"
-          sources."ms-2.1.2"
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
         ];
       })
-      sources."oauth2orize-1.11.1"
       sources."object-assign-4.1.1"
       sources."object-inspect-1.13.1"
       sources."on-finished-2.4.1"
@@ -86349,13 +84218,13 @@ in
       sources."quick-lru-5.1.1"
       sources."random-bytes-1.0.0"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.5.2"
-      sources."read-1.0.7"
-      (sources."readable-stream-2.3.8" // {
+      (sources."raw-body-2.5.2" // {
         dependencies = [
-          sources."safe-buffer-5.1.2"
+          sources."iconv-lite-0.4.24"
         ];
       })
+      sources."read-1.0.7"
+      sources."readable-stream-3.6.2"
       sources."regenerator-runtime-0.14.1"
       sources."reinterval-1.1.0"
       sources."require-from-string-2.0.2"
@@ -86366,16 +84235,15 @@ in
       sources."rimraf-3.0.2"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."sax-1.3.0"
-      (sources."semver-7.5.4" // {
-        dependencies = [
-          sources."lru-cache-6.0.0"
-          sources."yallist-4.0.0"
-        ];
-      })
+      sources."sax-1.4.1"
+      sources."semver-7.5.4"
       (sources."send-0.18.0" // {
         dependencies = [
-          sources."mime-1.6.0"
+          (sources."debug-2.6.9" // {
+            dependencies = [
+              sources."ms-2.0.0"
+            ];
+          })
           sources."ms-2.1.3"
         ];
       })
@@ -86385,29 +84253,20 @@ in
       sources."setprototypeof-1.2.0"
       sources."side-channel-1.0.6"
       sources."signal-exit-3.0.7"
-      (sources."split2-3.2.2" // {
-        dependencies = [
-          sources."readable-stream-3.6.2"
-        ];
-      })
+      sources."split2-3.2.2"
       sources."statuses-2.0.1"
       sources."stream-shift-1.0.3"
       sources."streamsearch-1.1.0"
       sources."string-width-4.2.3"
-      (sources."string_decoder-1.1.1" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
+      sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.1"
-      (sources."tar-6.1.13" // {
+      sources."tar-6.2.1"
+      sources."toidentifier-1.0.1"
+      (sources."tough-cookie-4.1.3" // {
         dependencies = [
-          sources."mkdirp-1.0.4"
-          sources."yallist-4.0.0"
+          sources."universalify-0.2.0"
         ];
       })
-      sources."toidentifier-1.0.1"
-      sources."tough-cookie-4.1.3"
       sources."tr46-0.0.3"
       sources."tslib-2.6.2"
       sources."type-is-1.6.18"
@@ -86415,7 +84274,7 @@ in
       sources."uglify-js-3.17.4"
       sources."uid-safe-2.1.5"
       sources."uid2-0.0.4"
-      sources."universalify-0.2.0"
+      sources."universalify-2.0.1"
       sources."unpipe-1.0.0"
       sources."uri-js-4.4.1"
       sources."url-parse-1.5.10"
@@ -86432,7 +84291,7 @@ in
       sources."xml2js-0.6.2"
       sources."xmlbuilder-11.0.1"
       sources."xtend-4.0.2"
-      sources."yallist-2.1.2"
+      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -86462,7 +84321,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.12.0"
+      sources."aws4-1.13.0"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
@@ -86596,7 +84455,7 @@ in
       sources."spdx-correct-3.2.0"
       sources."spdx-exceptions-2.5.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.17"
+      sources."spdx-license-ids-3.0.18"
       sources."sshpk-1.18.0"
       sources."ssri-5.3.0"
       sources."string-width-1.0.2"
@@ -86651,22 +84510,21 @@ in
   nodemon = nodeEnv.buildNodePackage {
     name = "nodemon";
     packageName = "nodemon";
-    version = "3.1.0";
+    version = "3.1.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/nodemon/-/nodemon-3.1.0.tgz";
-      sha512 = "xqlktYlDMCepBJd43ZQhjWwMw2obW/JRvkrLxq5RCNcuDDX1DbcPT+qT1IlIIdf+DhnWs90JpTMe+Y5KxOchvA==";
+      url = "https://registry.npmjs.org/nodemon/-/nodemon-3.1.3.tgz";
+      sha512 = "m4Vqs+APdKzDFpuaL9F9EVOF85+h070FnkHVEoU4+rmT6Vw0bmNl7s61VEkY/cJkL7RCv1p4urnUDUMrS5rk2w==";
     };
     dependencies = [
-      sources."abbrev-1.1.1"
       sources."anymatch-3.1.3"
       sources."balanced-match-1.0.2"
       sources."binary-extensions-2.3.0"
       sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."chokidar-3.6.0"
       sources."concat-map-0.0.1"
-      sources."debug-4.3.4"
-      sources."fill-range-7.0.1"
+      sources."debug-4.3.5"
+      sources."fill-range-7.1.1"
       sources."glob-parent-5.1.2"
       sources."has-flag-3.0.0"
       sources."ignore-by-default-1.0.1"
@@ -86674,21 +84532,18 @@ in
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.3"
       sources."is-number-7.0.0"
-      sources."lru-cache-6.0.0"
       sources."minimatch-3.1.2"
       sources."ms-2.1.2"
-      sources."nopt-1.0.10"
       sources."normalize-path-3.0.0"
       sources."picomatch-2.3.1"
       sources."pstree.remy-1.1.8"
       sources."readdirp-3.6.0"
-      sources."semver-7.6.0"
+      sources."semver-7.6.2"
       sources."simple-update-notifier-2.0.0"
       sources."supports-color-5.5.0"
       sources."to-regex-range-5.0.1"
-      sources."touch-3.1.0"
+      sources."touch-3.1.1"
       sources."undefsafe-2.0.5"
-      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -86703,25 +84558,21 @@ in
   np = nodeEnv.buildNodePackage {
     name = "np";
     packageName = "np";
-    version = "10.0.1";
+    version = "10.0.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/np/-/np-10.0.1.tgz";
-      sha512 = "3yP6WBrbyEvjTBpOxVYtinFf+vGfX+XNZXC1+Jjj/TWJjbt/GIpUz1BNvuCi7sqHtpVBJnnOIkH7yg3d1aK9lg==";
+      url = "https://registry.npmjs.org/np/-/np-10.0.5.tgz";
+      sha512 = "Tu270vVvsh92uh6XDXrGS6D94PhzxQYqM8uUxftYVp0B8qXl78dJRYwQ9wfYMOBB9ynlF79eWlUtPUxPzKGddQ==";
     };
     dependencies = [
-      (sources."@babel/code-frame-7.23.5" // {
-        dependencies = [
-          sources."chalk-2.4.2"
-          sources."escape-string-regexp-1.0.5"
-        ];
-      })
-      sources."@babel/helper-validator-identifier-7.22.20"
-      (sources."@babel/highlight-7.23.4" // {
+      sources."@babel/code-frame-7.24.6"
+      sources."@babel/helper-validator-identifier-7.24.6"
+      (sources."@babel/highlight-7.24.6" // {
         dependencies = [
           sources."chalk-2.4.2"
           sources."escape-string-regexp-1.0.5"
         ];
       })
+      sources."@inquirer/figures-1.0.3"
       sources."@ljharb/through-2.3.13"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
@@ -86760,9 +84611,8 @@ in
         ];
       })
       sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."buffer-5.7.1"
-      sources."builtins-5.0.1"
       sources."bundle-name-4.1.0"
       sources."cacheable-lookup-7.0.0"
       (sources."cacheable-request-10.2.14" // {
@@ -86840,12 +84690,12 @@ in
       sources."external-editor-3.1.0"
       sources."fast-glob-3.3.2"
       sources."fastq-1.17.1"
-      (sources."figures-3.2.0" // {
+      (sources."figures-1.7.0" // {
         dependencies = [
           sources."escape-string-regexp-1.0.5"
         ];
       })
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       (sources."find-up-4.1.0" // {
         dependencies = [
           sources."path-exists-4.0.0"
@@ -86884,17 +84734,17 @@ in
       sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."hasown-2.0.2"
-      sources."hosted-git-info-7.0.1"
+      sources."hosted-git-info-7.0.2"
       sources."http-cache-semantics-4.1.1"
       sources."http2-wrapper-2.2.1"
       sources."human-signals-5.0.0"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
       sources."ignore-5.3.1"
-      (sources."ignore-walk-6.0.4" // {
+      (sources."ignore-walk-6.0.5" // {
         dependencies = [
           sources."brace-expansion-2.0.1"
-          sources."minimatch-9.0.3"
+          sources."minimatch-9.0.4"
         ];
       })
       sources."import-fresh-3.3.0"
@@ -86910,11 +84760,11 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-4.1.1"
-      sources."inquirer-9.2.16"
+      sources."inquirer-9.2.23"
       (sources."inquirer-autosubmit-prompt-0.2.0" // {
         dependencies = [
           sources."ansi-escapes-3.2.0"
-          sources."ansi-regex-3.0.1"
+          sources."ansi-regex-4.1.1"
           sources."chalk-2.4.2"
           sources."cli-cursor-2.1.0"
           sources."cli-width-2.2.1"
@@ -86931,14 +84781,11 @@ in
           sources."signal-exit-3.0.7"
           (sources."string-width-2.1.1" // {
             dependencies = [
+              sources."ansi-regex-3.0.1"
               sources."strip-ansi-4.0.0"
             ];
           })
-          (sources."strip-ansi-5.2.0" // {
-            dependencies = [
-              sources."ansi-regex-4.1.1"
-            ];
-          })
+          sources."strip-ansi-5.2.0"
         ];
       })
       sources."is-arrayish-0.2.1"
@@ -86975,7 +84822,7 @@ in
       sources."json-buffer-3.0.1"
       sources."json-parse-even-better-errors-2.3.1"
       sources."keyv-4.5.4"
-      sources."ky-1.2.2"
+      sources."ky-1.3.0"
       sources."latest-version-7.0.0"
       sources."lines-and-columns-1.2.4"
       (sources."listr-0.14.3" // {
@@ -86992,6 +84839,8 @@ in
           sources."cli-width-3.0.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
+          sources."escape-string-regexp-1.0.5"
+          sources."figures-3.2.0"
           sources."has-flag-4.0.0"
           sources."inquirer-7.3.3"
           sources."mute-stream-0.0.8"
@@ -87007,7 +84856,6 @@ in
           sources."ansi-styles-2.2.1"
           sources."chalk-1.1.3"
           sources."escape-string-regexp-1.0.5"
-          sources."figures-1.7.0"
           sources."indent-string-3.2.0"
           sources."log-symbols-1.0.2"
           sources."strip-ansi-3.0.1"
@@ -87050,11 +84898,11 @@ in
         ];
       })
       sources."lowercase-keys-3.0.0"
-      sources."lru-cache-10.2.0"
+      sources."lru-cache-10.2.2"
       sources."meow-13.2.0"
       sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."mimic-fn-4.0.0"
       sources."mimic-function-5.0.1"
       sources."mimic-response-4.0.0"
@@ -87066,11 +84914,11 @@ in
           sources."type-fest-2.19.0"
         ];
       })
-      sources."normalize-package-data-6.0.0"
+      sources."normalize-package-data-6.0.1"
       sources."normalize-url-8.0.1"
       (sources."npm-name-8.0.0" // {
         dependencies = [
-          sources."p-map-7.0.1"
+          sources."p-map-7.0.2"
         ];
       })
       (sources."npm-run-path-5.3.0" // {
@@ -87115,6 +84963,7 @@ in
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
       sources."path-type-4.0.0"
+      sources."picocolors-1.0.1"
       sources."picomatch-2.3.1"
       sources."pkg-dir-8.0.0"
       sources."proto-list-1.2.4"
@@ -87128,13 +84977,13 @@ in
       })
       (sources."read-package-up-11.0.0" // {
         dependencies = [
-          sources."type-fest-4.12.0"
+          sources."type-fest-4.19.0"
         ];
       })
       (sources."read-pkg-9.0.1" // {
         dependencies = [
           sources."parse-json-8.1.0"
-          sources."type-fest-4.12.0"
+          sources."type-fest-4.19.0"
         ];
       })
       sources."readable-stream-3.6.2"
@@ -87168,11 +85017,7 @@ in
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."scoped-regex-3.0.0"
-      (sources."semver-7.6.0" // {
-        dependencies = [
-          sources."lru-cache-6.0.0"
-        ];
-      })
+      sources."semver-7.6.2"
       sources."semver-diff-4.0.0"
       sources."set-function-length-1.2.2"
       sources."shebang-command-2.0.0"
@@ -87183,7 +85028,7 @@ in
       sources."spdx-correct-3.2.0"
       sources."spdx-exceptions-2.5.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.17"
+      sources."spdx-license-ids-3.0.18"
       sources."string-width-4.2.3"
       sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.1"
@@ -87209,7 +85054,7 @@ in
       sources."tslib-1.14.1"
       sources."type-fest-0.21.3"
       sources."typedarray-to-buffer-3.1.5"
-      sources."typescript-5.4.2"
+      sources."typescript-5.4.5"
       sources."unicorn-magic-0.1.0"
       sources."unique-string-3.0.0"
       (sources."update-notifier-7.0.0" // {
@@ -87220,7 +85065,7 @@ in
       })
       sources."util-deprecate-1.0.2"
       sources."validate-npm-package-license-3.0.4"
-      sources."validate-npm-package-name-5.0.0"
+      sources."validate-npm-package-name-5.0.1"
       sources."wcwidth-1.0.1"
       sources."which-2.0.2"
       (sources."widest-line-4.0.1" // {
@@ -87245,7 +85090,6 @@ in
         ];
       })
       sources."xdg-basedir-5.1.0"
-      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -87260,10 +85104,10 @@ in
   npm = nodeEnv.buildNodePackage {
     name = "npm";
     packageName = "npm";
-    version = "10.5.0";
+    version = "10.8.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm/-/npm-10.5.0.tgz";
-      sha512 = "Ejxwvfh9YnWVU2yA5FzoYLTW52vxHCz+MHrOFg9Cc8IFgF/6f5AGPAvb5WTay5DIUP1NIfN3VBZ0cLlGO0Ys+A==";
+      url = "https://registry.npmjs.org/npm/-/npm-10.8.1.tgz";
+      sha512 = "Dp1C6SvSMYQI7YHq/y2l94uvI+59Eqbu1EpuKQHQ8p16txXRuRit5gH3Lnaagk2aXDIjg/Iru9pd05bnneKgdw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -87332,10 +85176,10 @@ in
   orval = nodeEnv.buildNodePackage {
     name = "orval";
     packageName = "orval";
-    version = "6.25.0";
+    version = "6.29.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/orval/-/orval-6.25.0.tgz";
-      sha512 = "UkM7QqIiRrFOnsGTNZUHilM6lXj1ZvGNoSC4pH3cYDH42oCgqI4GVfT5u35LJQNYtylTrFLydFRfssb05qwyhQ==";
+      url = "https://registry.npmjs.org/orval/-/orval-6.29.1.tgz";
+      sha512 = "hYGuPNucbHZeQgSpcoujuR6GzRKbHhl59zFMt6bxZd6XkeEONhGAqOLETAFQ9og/arOlPOMvchy6COCnrEKlRQ==";
     };
     dependencies = [
       sources."@apidevtools/json-schema-ref-parser-9.0.6"
@@ -87344,21 +85188,22 @@ in
       sources."@apidevtools/swagger-parser-10.1.0"
       sources."@asyncapi/specs-4.3.1"
       sources."@exodus/schemasafe-1.3.0"
-      sources."@ibm-cloud/openapi-ruleset-1.15.3"
-      sources."@ibm-cloud/openapi-ruleset-utilities-1.3.1"
+      sources."@ibm-cloud/openapi-ruleset-1.17.0"
+      sources."@ibm-cloud/openapi-ruleset-utilities-1.3.2"
       sources."@jsdevtools/ono-7.1.3"
       sources."@jsep-plugin/regex-1.0.3"
       sources."@jsep-plugin/ternary-1.1.3"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@orval/angular-6.25.0"
-      sources."@orval/axios-6.25.0"
-      sources."@orval/core-6.25.0"
-      sources."@orval/mock-6.25.0"
-      sources."@orval/query-6.25.0"
-      sources."@orval/swr-6.25.0"
-      sources."@orval/zod-6.25.0"
+      sources."@orval/angular-6.29.1"
+      sources."@orval/axios-6.29.1"
+      sources."@orval/core-6.29.1"
+      sources."@orval/hono-6.29.1"
+      sources."@orval/mock-6.29.1"
+      sources."@orval/query-6.29.1"
+      sources."@orval/swr-6.29.1"
+      sources."@orval/zod-6.29.1"
       sources."@stoplight/better-ajv-errors-1.0.3"
       sources."@stoplight/json-3.21.0"
       (sources."@stoplight/json-ref-readers-1.2.2" // {
@@ -87377,7 +85222,11 @@ in
       })
       sources."@stoplight/spectral-formats-1.6.0"
       sources."@stoplight/spectral-functions-1.7.2"
-      sources."@stoplight/spectral-parsers-1.0.3"
+      (sources."@stoplight/spectral-parsers-1.0.4" // {
+        dependencies = [
+          sources."@stoplight/types-14.1.1"
+        ];
+      })
       sources."@stoplight/spectral-ref-resolver-1.0.4"
       sources."@stoplight/spectral-rulesets-1.18.1"
       (sources."@stoplight/spectral-runtime-1.1.2" // {
@@ -87386,15 +85235,19 @@ in
         ];
       })
       sources."@stoplight/types-13.20.0"
-      sources."@stoplight/yaml-4.2.3"
-      sources."@stoplight/yaml-ast-parser-0.0.48"
+      (sources."@stoplight/yaml-4.3.0" // {
+        dependencies = [
+          sources."@stoplight/types-14.1.1"
+        ];
+      })
+      sources."@stoplight/yaml-ast-parser-0.0.50"
       sources."@types/es-aggregate-error-1.0.6"
       sources."@types/json-schema-7.0.15"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."@types/urijs-1.19.25"
       sources."abort-controller-3.0.0"
       sources."acorn-8.11.3"
-      sources."ajv-8.12.0"
+      sources."ajv-8.15.0"
       sources."ajv-draft-04-1.0.0"
       sources."ajv-errors-3.0.0"
       sources."ajv-formats-2.1.1"
@@ -87411,7 +85264,7 @@ in
       sources."balanced-match-1.0.2"
       sources."binary-extensions-2.3.0"
       sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."cac-6.7.14"
       sources."call-bind-1.0.7"
       sources."call-me-maybe-1.0.2"
@@ -87426,7 +85279,7 @@ in
       sources."data-view-buffer-1.0.1"
       sources."data-view-byte-length-1.0.1"
       sources."data-view-byte-offset-1.0.0"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."define-data-property-1.1.4"
       sources."define-properties-1.2.1"
       sources."dependency-graph-0.11.0"
@@ -87434,8 +85287,8 @@ in
       sources."emoji-regex-8.0.0"
       sources."encoding-0.1.13"
       sources."enquirer-2.4.1"
-      sources."es-abstract-1.23.2"
-      sources."es-aggregate-error-1.0.12"
+      sources."es-abstract-1.23.3"
+      sources."es-aggregate-error-1.0.13"
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
       sources."es-object-atoms-1.0.0"
@@ -87452,8 +85305,9 @@ in
       sources."fast-glob-3.3.2"
       sources."fast-memoize-2.5.2"
       sources."fast-safe-stringify-2.1.1"
+      sources."fast-uri-2.3.0"
       sources."fastq-1.17.1"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."find-up-5.0.0"
       sources."for-each-0.3.3"
       sources."fs-extra-11.2.0"
@@ -87465,7 +85319,7 @@ in
       sources."get-stream-6.0.1"
       sources."get-symbol-description-1.0.2"
       sources."glob-parent-5.1.2"
-      sources."globalthis-1.0.3"
+      sources."globalthis-1.0.4"
       sources."globby-11.1.0"
       sources."gopd-1.0.1"
       sources."graceful-fs-4.2.11"
@@ -87526,7 +85380,7 @@ in
       sources."loglevel-plugin-prefix-0.8.4"
       sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."mimic-fn-2.1.0"
       (sources."minimatch-6.2.0" // {
         dependencies = [
@@ -87554,9 +85408,9 @@ in
       sources."object.assign-4.1.5"
       sources."onetime-5.1.2"
       sources."openapi-types-12.1.3"
-      (sources."openapi3-ts-4.2.1" // {
+      (sources."openapi3-ts-4.2.2" // {
         dependencies = [
-          sources."yaml-2.4.1"
+          sources."yaml-2.4.3"
         ];
       })
       sources."p-limit-3.1.0"
@@ -87567,7 +85421,6 @@ in
       sources."picomatch-2.3.1"
       sources."pony-cause-1.1.1"
       sources."possible-typed-array-names-1.0.0"
-      sources."punycode-2.3.1"
       sources."queue-microtask-1.2.3"
       sources."readdirp-3.6.0"
       sources."reftools-1.1.9"
@@ -87599,7 +85452,7 @@ in
       sources."string-width-4.2.3"
       sources."string.prototype.trim-1.2.9"
       sources."string.prototype.trimend-1.0.8"
-      sources."string.prototype.trimstart-1.0.7"
+      sources."string.prototype.trimstart-1.0.8"
       sources."strip-ansi-6.0.1"
       sources."strip-final-newline-2.0.0"
       sources."supports-color-7.2.0"
@@ -87611,15 +85464,14 @@ in
       sources."typed-array-buffer-1.0.2"
       sources."typed-array-byte-length-1.0.1"
       sources."typed-array-byte-offset-1.0.2"
-      sources."typed-array-length-1.0.5"
-      sources."typescript-5.4.2"
+      sources."typed-array-length-1.0.6"
+      sources."typescript-5.4.5"
       sources."unbox-primitive-1.0.2"
       sources."undici-types-5.26.5"
       sources."universalify-2.0.1"
-      sources."uri-js-4.4.1"
       sources."urijs-1.19.11"
       sources."utility-types-3.11.0"
-      sources."validator-13.11.0"
+      sources."validator-13.12.0"
       sources."webidl-conversions-3.0.1"
       sources."whatwg-url-5.0.0"
       sources."which-2.0.2"
@@ -87651,17 +85503,19 @@ in
       sha512 = "W+gxAq7aQ9dJIg/XLKGcRT0cvnStFAQHPaI0pvD0U2l6IVLueUAm3nwN7lkY62zZNmlvNx6jNtE4wlbS+CyqSg==";
     };
     dependencies = [
-      (sources."@babel/code-frame-7.23.5" // {
-        dependencies = [
-          sources."chalk-2.4.2"
-        ];
-      })
-      sources."@babel/helper-validator-identifier-7.22.20"
-      (sources."@babel/highlight-7.23.4" // {
+      sources."@babel/code-frame-7.24.6"
+      sources."@babel/helper-validator-identifier-7.24.6"
+      (sources."@babel/highlight-7.24.6" // {
         dependencies = [
+          sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+          sources."has-flag-3.0.0"
+          sources."supports-color-5.5.0"
         ];
       })
+      sources."@isaacs/cliui-8.0.2"
       sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
       sources."@jridgewell/set-array-1.2.1"
@@ -87669,7 +85523,7 @@ in
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.25"
       sources."@lezer/common-1.2.1"
-      sources."@lezer/lr-1.4.0"
+      sources."@lezer/lr-1.4.1"
       sources."@lmdb/lmdb-darwin-arm64-2.8.5"
       sources."@lmdb/lmdb-darwin-x64-2.8.5"
       sources."@lmdb/lmdb-linux-arm-2.8.5"
@@ -87763,10 +85617,10 @@ in
       sources."@parcel/watcher-win32-ia32-2.4.1"
       sources."@parcel/watcher-win32-x64-2.4.1"
       sources."@parcel/workers-2.12.0"
-      sources."@swc/core-1.4.8"
+      sources."@swc/core-1.5.24"
       sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.7"
-      sources."@swc/types-0.1.6"
+      sources."@swc/helpers-0.5.11"
+      sources."@swc/types-0.1.7"
       sources."@trysound/sax-0.2.0"
       sources."abab-2.0.6"
       sources."abortcontroller-polyfill-1.7.5"
@@ -87778,7 +85632,8 @@ in
       })
       sources."acorn-walk-6.2.0"
       sources."ajv-6.12.6"
-      sources."ansi-styles-3.2.1"
+      sources."ansi-regex-5.0.1"
+      sources."ansi-styles-4.3.0"
       sources."argparse-2.0.1"
       sources."array-equal-1.0.2"
       sources."asn1-0.2.6"
@@ -87786,70 +85641,65 @@ in
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.12.0"
+      sources."aws4-1.13.0"
       sources."balanced-match-1.0.2"
       sources."base-x-3.0.9"
       sources."bcrypt-pbkdf-1.0.2"
       sources."boolbase-1.0.0"
       sources."brace-expansion-2.0.1"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."browser-process-hrtime-1.0.0"
       sources."browserslist-4.23.0"
       sources."buffer-from-1.1.2"
       sources."callsites-3.1.0"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001599"
+      sources."caniuse-lite-1.0.30001627"
       sources."caseless-0.12.0"
-      (sources."chalk-4.1.2" // {
-        dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."has-flag-4.0.0"
-          sources."supports-color-7.2.0"
-        ];
-      })
-      sources."chrome-trace-event-1.0.3"
+      sources."chalk-4.1.2"
+      sources."chrome-trace-event-1.0.4"
       sources."clone-2.1.2"
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
       sources."colord-2.9.3"
       sources."combined-stream-1.0.8"
       sources."commander-7.2.0"
       sources."concat-map-0.0.1"
       sources."core-util-is-1.0.2"
-      sources."cosmiconfig-8.3.6"
-      sources."css-declaration-sorter-7.1.1"
-      sources."css-select-5.1.0"
-      sources."css-tree-2.3.1"
+      sources."cosmiconfig-9.0.0"
+      sources."cross-spawn-7.0.3"
+      sources."css-declaration-sorter-7.2.0"
+      sources."css-select-4.3.0"
+      sources."css-tree-1.1.3"
       sources."css-what-6.1.0"
       sources."cssesc-3.0.0"
-      sources."cssnano-6.1.0"
-      sources."cssnano-preset-default-6.1.0"
-      sources."cssnano-utils-4.0.2"
-      (sources."csso-5.0.5" // {
-        dependencies = [
-          sources."css-tree-2.2.1"
-          sources."mdn-data-2.0.28"
-        ];
-      })
+      sources."cssnano-7.0.1"
+      sources."cssnano-preset-default-7.0.1"
+      sources."cssnano-utils-5.0.0"
+      sources."csso-4.2.0"
       sources."cssom-0.3.8"
       sources."cssstyle-1.4.0"
       sources."dashdash-1.14.1"
       sources."data-urls-1.1.0"
       sources."deep-is-0.1.4"
       sources."delayed-stream-1.0.0"
-      sources."detect-libc-2.0.2"
-      sources."dom-serializer-2.0.0"
+      sources."detect-libc-2.0.3"
+      (sources."dom-serializer-1.4.1" // {
+        dependencies = [
+          sources."entities-2.2.0"
+        ];
+      })
       sources."domelementtype-2.3.0"
       sources."domexception-1.0.1"
-      sources."domhandler-5.0.3"
-      sources."domutils-3.1.0"
+      sources."domhandler-4.3.1"
+      sources."domutils-2.8.0"
       sources."dotenv-7.0.0"
       sources."dotenv-expand-5.1.0"
+      sources."eastasianwidth-0.2.0"
       sources."ecc-jsbn-0.1.2"
-      sources."electron-to-chromium-1.4.710"
-      sources."entities-4.5.0"
+      sources."electron-to-chromium-1.4.789"
+      sources."emoji-regex-9.2.2"
+      sources."entities-3.0.1"
+      sources."env-paths-2.2.1"
       sources."error-ex-1.3.2"
       sources."escalade-3.1.2"
       sources."escape-string-regexp-1.0.5"
@@ -87862,36 +85712,40 @@ in
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
+      sources."foreground-child-3.1.1"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
       sources."fs.realpath-1.0.0"
       sources."get-port-4.2.0"
       sources."getpass-0.1.7"
-      sources."glob-8.1.0"
+      sources."glob-10.4.1"
       sources."globals-13.24.0"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
-      sources."has-flag-3.0.0"
+      sources."has-flag-4.0.0"
       sources."html-encoding-sniffer-1.0.2"
       sources."html-tags-1.2.0"
-      (sources."htmlnano-2.1.0" // {
-        dependencies = [
-          sources."svgo-3.2.0"
-        ];
-      })
-      (sources."htmlparser2-7.2.0" // {
+      (sources."htmlnano-2.1.1" // {
         dependencies = [
-          (sources."dom-serializer-1.4.1" // {
+          sources."css-select-5.1.0"
+          sources."css-tree-2.3.1"
+          (sources."csso-5.0.5" // {
             dependencies = [
-              sources."entities-2.2.0"
+              sources."css-tree-2.2.1"
+              sources."mdn-data-2.0.28"
             ];
           })
-          sources."domhandler-4.3.1"
-          sources."domutils-2.8.0"
-          sources."entities-3.0.1"
+          sources."dom-serializer-2.0.0"
+          sources."domhandler-5.0.3"
+          sources."domutils-3.1.0"
+          sources."entities-4.5.0"
+          sources."mdn-data-2.0.30"
+          sources."srcset-5.0.1"
+          sources."svgo-3.3.2"
         ];
       })
+      sources."htmlparser2-7.2.0"
       sources."http-signature-1.2.0"
       sources."iconv-lite-0.4.24"
       sources."import-fresh-3.3.0"
@@ -87901,12 +85755,15 @@ in
       sources."is-absolute-url-3.0.3"
       sources."is-arrayish-0.2.1"
       sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
       sources."is-html-1.1.0"
       sources."is-json-2.0.1"
       sources."is-number-7.0.0"
       sources."is-typedarray-1.0.0"
+      sources."isexe-2.0.0"
       sources."isstream-0.1.2"
+      sources."jackspeak-3.2.3"
       sources."js-tokens-4.0.0"
       sources."js-yaml-4.1.0"
       sources."jsbn-0.1.1"
@@ -87922,7 +85779,7 @@ in
       sources."json5-2.2.3"
       sources."jsprim-1.4.2"
       sources."levn-0.3.0"
-      (sources."lightningcss-1.24.1" // {
+      (sources."lightningcss-1.25.1" // {
         dependencies = [
           sources."detect-libc-1.0.3"
         ];
@@ -87934,20 +85791,21 @@ in
       sources."lodash.memoize-4.1.2"
       sources."lodash.sortby-4.7.0"
       sources."lodash.uniq-4.5.0"
-      sources."lru-cache-6.0.0"
-      sources."mdn-data-2.0.30"
-      sources."micromatch-4.0.5"
+      sources."lru-cache-10.2.2"
+      sources."mdn-data-2.0.14"
+      sources."micromatch-4.0.7"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
-      sources."minimatch-5.1.6"
-      sources."msgpackr-1.10.1"
+      sources."minimatch-9.0.4"
+      sources."minipass-7.1.2"
+      sources."msgpackr-1.10.2"
       sources."nanoid-3.3.7"
       sources."node-addon-api-6.1.0"
       sources."node-gyp-build-optional-packages-5.1.1"
       sources."node-releases-2.0.14"
       sources."nth-check-2.1.1"
       sources."nullthrows-1.1.1"
-      sources."nwsapi-2.2.7"
+      sources."nwsapi-2.2.10"
       sources."oauth-sign-0.9.0"
       sources."once-1.4.0"
       sources."optionator-0.8.3"
@@ -87956,44 +85814,58 @@ in
       sources."parse-json-5.2.0"
       sources."parse5-5.1.0"
       sources."path-is-absolute-1.0.1"
-      sources."path-type-4.0.0"
+      sources."path-key-3.1.1"
+      sources."path-scurry-1.11.1"
       sources."performance-now-2.1.0"
-      sources."picocolors-1.0.0"
+      sources."picocolors-1.0.1"
       sources."picomatch-2.3.1"
       sources."pn-1.1.0"
-      sources."postcss-8.4.36"
-      sources."postcss-calc-9.0.1"
-      sources."postcss-colormin-6.1.0"
-      sources."postcss-convert-values-6.1.0"
-      sources."postcss-discard-comments-6.0.2"
-      sources."postcss-discard-duplicates-6.0.3"
-      sources."postcss-discard-empty-6.0.3"
-      sources."postcss-discard-overridden-6.0.2"
-      sources."postcss-merge-longhand-6.0.4"
-      sources."postcss-merge-rules-6.1.0"
-      sources."postcss-minify-font-values-6.0.3"
-      sources."postcss-minify-gradients-6.0.3"
-      sources."postcss-minify-params-6.1.0"
-      sources."postcss-minify-selectors-6.0.3"
-      sources."postcss-normalize-charset-6.0.2"
-      sources."postcss-normalize-display-values-6.0.2"
-      sources."postcss-normalize-positions-6.0.2"
-      sources."postcss-normalize-repeat-style-6.0.2"
-      sources."postcss-normalize-string-6.0.2"
-      sources."postcss-normalize-timing-functions-6.0.2"
-      sources."postcss-normalize-unicode-6.1.0"
-      sources."postcss-normalize-url-6.0.2"
-      sources."postcss-normalize-whitespace-6.0.2"
-      sources."postcss-ordered-values-6.0.2"
-      sources."postcss-reduce-initial-6.1.0"
-      sources."postcss-reduce-transforms-6.0.2"
-      sources."postcss-selector-parser-6.0.16"
-      (sources."postcss-svgo-6.0.3" // {
-        dependencies = [
-          sources."svgo-3.2.0"
-        ];
-      })
-      sources."postcss-unique-selectors-6.0.3"
+      sources."postcss-8.4.38"
+      sources."postcss-calc-10.0.0"
+      sources."postcss-colormin-7.0.0"
+      sources."postcss-convert-values-7.0.0"
+      sources."postcss-discard-comments-7.0.0"
+      sources."postcss-discard-duplicates-7.0.0"
+      sources."postcss-discard-empty-7.0.0"
+      sources."postcss-discard-overridden-7.0.0"
+      sources."postcss-merge-longhand-7.0.0"
+      sources."postcss-merge-rules-7.0.0"
+      sources."postcss-minify-font-values-7.0.0"
+      sources."postcss-minify-gradients-7.0.0"
+      sources."postcss-minify-params-7.0.0"
+      sources."postcss-minify-selectors-7.0.0"
+      sources."postcss-normalize-charset-7.0.0"
+      sources."postcss-normalize-display-values-7.0.0"
+      sources."postcss-normalize-positions-7.0.0"
+      sources."postcss-normalize-repeat-style-7.0.0"
+      sources."postcss-normalize-string-7.0.0"
+      sources."postcss-normalize-timing-functions-7.0.0"
+      sources."postcss-normalize-unicode-7.0.0"
+      sources."postcss-normalize-url-7.0.0"
+      sources."postcss-normalize-whitespace-7.0.0"
+      sources."postcss-ordered-values-7.0.0"
+      sources."postcss-reduce-initial-7.0.0"
+      sources."postcss-reduce-transforms-7.0.0"
+      sources."postcss-selector-parser-6.1.0"
+      (sources."postcss-svgo-7.0.0" // {
+        dependencies = [
+          sources."css-select-5.1.0"
+          sources."css-tree-2.3.1"
+          (sources."csso-5.0.5" // {
+            dependencies = [
+              sources."css-tree-2.2.1"
+              sources."mdn-data-2.0.28"
+            ];
+          })
+          sources."dom-serializer-2.0.0"
+          sources."domhandler-5.0.3"
+          sources."domutils-3.1.0"
+          sources."entities-4.5.0"
+          sources."mdn-data-2.0.30"
+          sources."svgo-3.3.2"
+        ];
+      })
+      sources."postcss-unique-selectors-7.0.0"
       sources."postcss-value-parser-4.2.0"
       sources."posthtml-0.16.6"
       sources."posthtml-parser-0.11.0"
@@ -88001,9 +85873,9 @@ in
       sources."prelude-ls-1.1.2"
       sources."psl-1.9.0"
       sources."punycode-2.3.1"
-      (sources."purgecss-5.0.0" // {
+      (sources."purgecss-6.0.0" // {
         dependencies = [
-          sources."commander-9.5.0"
+          sources."commander-12.1.0"
         ];
       })
       sources."qs-6.5.3"
@@ -88018,31 +85890,36 @@ in
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."saxes-3.1.11"
-      sources."semver-7.6.0"
+      sources."semver-7.6.2"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
+      sources."signal-exit-4.1.0"
       sources."source-map-0.6.1"
-      sources."source-map-js-1.1.0"
+      sources."source-map-js-1.2.0"
       sources."source-map-support-0.5.21"
       sources."srcset-4.0.0"
       sources."sshpk-1.18.0"
       sources."stable-0.1.8"
       sources."stealthy-require-1.1.1"
-      sources."stylehacks-6.1.0"
-      sources."supports-color-5.5.0"
-      (sources."svgo-2.8.0" // {
+      sources."string-width-5.1.2"
+      (sources."string-width-cjs-4.2.3" // {
         dependencies = [
-          sources."css-select-4.3.0"
-          sources."css-tree-1.1.3"
-          sources."csso-4.2.0"
-          sources."dom-serializer-1.4.1"
-          sources."domhandler-4.3.1"
-          sources."domutils-2.8.0"
-          sources."entities-2.2.0"
-          sources."mdn-data-2.0.14"
+          sources."emoji-regex-8.0.0"
+          sources."strip-ansi-6.0.1"
+        ];
+      })
+      (sources."strip-ansi-7.1.0" // {
+        dependencies = [
+          sources."ansi-regex-6.0.1"
         ];
       })
+      sources."strip-ansi-cjs-6.0.1"
+      sources."stylehacks-7.0.0"
+      sources."supports-color-7.2.0"
+      sources."svgo-2.8.0"
       sources."symbol-tree-3.2.4"
       sources."term-size-2.2.1"
-      (sources."terser-5.29.2" // {
+      (sources."terser-5.31.0" // {
         dependencies = [
           sources."commander-2.20.3"
         ];
@@ -88056,7 +85933,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
       sources."type-fest-0.20.2"
-      sources."typescript-5.4.2"
+      sources."typescript-5.4.5"
       (sources."uncss-0.17.3" // {
         dependencies = [
           sources."brace-expansion-1.1.11"
@@ -88069,7 +85946,7 @@ in
         ];
       })
       sources."uniq-1.0.1"
-      sources."update-browserslist-db-1.0.13"
+      sources."update-browserslist-db-1.0.16"
       sources."uri-js-4.4.1"
       sources."util-deprecate-1.0.2"
       sources."utility-types-3.11.0"
@@ -88082,12 +85959,24 @@ in
       sources."whatwg-encoding-1.0.5"
       sources."whatwg-mimetype-2.3.0"
       sources."whatwg-url-7.1.0"
+      sources."which-2.0.2"
       sources."word-wrap-1.2.5"
+      (sources."wrap-ansi-8.1.0" // {
+        dependencies = [
+          sources."ansi-styles-6.2.1"
+        ];
+      })
+      (sources."wrap-ansi-cjs-7.0.0" // {
+        dependencies = [
+          sources."emoji-regex-8.0.0"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
+        ];
+      })
       sources."wrappy-1.0.2"
       sources."ws-6.2.2"
       sources."xml-name-validator-3.0.0"
       sources."xmlchars-2.2.0"
-      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -88124,7 +86013,7 @@ in
       sources."async-0.9.2"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.12.0"
+      sources."aws4-1.13.0"
       sources."babybird-0.0.1"
       sources."balanced-match-1.0.2"
       sources."bcrypt-pbkdf-1.0.2"
@@ -88162,7 +86051,7 @@ in
         ];
       })
       sources."content-type-git+https://github.com/wikimedia/content-type.git#master"
-      sources."cookie-0.5.0"
+      sources."cookie-0.6.0"
       sources."cookie-signature-1.0.6"
       sources."core-js-2.6.12"
       sources."core-util-is-1.0.2"
@@ -88189,7 +86078,7 @@ in
       sources."escape-html-1.0.3"
       sources."esprima-4.0.1"
       sources."etag-1.8.1"
-      (sources."express-4.18.3" // {
+      (sources."express-4.19.2" // {
         dependencies = [
           sources."content-type-1.0.5"
           sources."safe-buffer-5.2.1"
@@ -88254,7 +86143,6 @@ in
       sources."lodash-4.17.21"
       sources."lodash.clone-4.5.0"
       sources."lodash.clonedeep-4.5.0"
-      sources."lru-cache-6.0.0"
       sources."media-typer-0.3.0"
       sources."mediawiki-title-0.6.5"
       sources."merge-descriptors-1.0.1"
@@ -88273,7 +86161,7 @@ in
       sources."ncp-2.0.0"
       sources."negotiator-git+https://github.com/arlolra/negotiator.git#full-parse-access"
       sources."neo-async-2.6.2"
-      sources."node-gyp-build-4.8.0"
+      sources."node-gyp-build-4.8.1"
       sources."oauth-sign-0.9.0"
       sources."object-inspect-1.13.1"
       sources."object-keys-1.1.1"
@@ -88336,7 +86224,7 @@ in
       sources."serve-static-1.15.0"
       (sources."service-runner-2.9.0" // {
         dependencies = [
-          sources."semver-7.6.0"
+          sources."semver-7.6.2"
           sources."yargs-14.2.3"
         ];
       })
@@ -88381,7 +86269,6 @@ in
       sources."wrap-ansi-5.1.0"
       sources."wrappy-1.0.2"
       sources."y18n-4.0.3"
-      sources."yallist-4.0.0"
       (sources."yargs-13.3.2" // {
         dependencies = [
           sources."yargs-parser-13.1.2"
@@ -88413,7 +86300,7 @@ in
       sources."at-least-node-1.0.0"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."call-bind-1.0.7"
       sources."chalk-4.1.2"
       sources."ci-info-3.9.0"
@@ -88424,7 +86311,7 @@ in
       sources."define-data-property-1.1.4"
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."find-yarn-workspace-root-2.0.0"
       sources."fs-extra-9.1.0"
       sources."fs.realpath-1.0.0"
@@ -88449,8 +86336,7 @@ in
       sources."jsonfile-6.1.0"
       sources."jsonify-0.0.1"
       sources."klaw-sync-6.0.0"
-      sources."lru-cache-6.0.0"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.8"
       sources."object-keys-1.1.1"
@@ -88461,7 +86347,7 @@ in
       sources."path-key-3.1.1"
       sources."picomatch-2.3.1"
       sources."rimraf-2.7.1"
-      sources."semver-7.6.0"
+      sources."semver-7.6.2"
       sources."set-function-length-1.2.2"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
@@ -88472,8 +86358,7 @@ in
       sources."universalify-2.0.1"
       sources."which-2.0.2"
       sources."wrappy-1.0.2"
-      sources."yallist-4.0.0"
-      sources."yaml-2.4.1"
+      sources."yaml-2.4.3"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -88625,7 +86510,7 @@ in
       sources."internal-ip-1.2.0"
       sources."ip-1.1.9"
       sources."ip-set-1.0.2"
-      sources."ipaddr.js-2.1.0"
+      sources."ipaddr.js-2.2.0"
       sources."is-arguments-1.1.1"
       sources."is-arrayish-0.2.1"
       sources."is-core-module-2.13.1"
@@ -88754,7 +86639,7 @@ in
       sources."spdx-correct-3.2.0"
       sources."spdx-exceptions-2.5.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.17"
+      sources."spdx-license-ids-3.0.18"
       sources."speedometer-0.1.4"
       sources."stream-buffers-2.2.0"
       sources."string-width-1.0.2"
@@ -88837,7 +86722,7 @@ in
       sources."async-2.6.4"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.12.0"
+      sources."aws4-1.13.0"
       sources."backo2-1.0.2"
       sources."balanced-match-1.0.2"
       sources."base64-arraybuffer-0.1.4"
@@ -88904,7 +86789,7 @@ in
         ];
       })
       sources."content-type-1.0.5"
-      sources."cookie-0.5.0"
+      sources."cookie-0.6.0"
       sources."cookie-signature-1.0.6"
       sources."core-util-is-1.0.3"
       sources."crc-3.8.0"
@@ -88939,7 +86824,7 @@ in
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
       sources."events-3.3.0"
-      (sources."express-4.18.3" // {
+      (sources."express-4.19.2" // {
         dependencies = [
           sources."safe-buffer-5.2.1"
         ];
@@ -88951,7 +86836,11 @@ in
       sources."fifo-0.1.4"
       sources."finalhandler-1.2.0"
       sources."flatten-0.0.1"
-      sources."fluent-ffmpeg-2.1.2"
+      (sources."fluent-ffmpeg-2.1.3" // {
+        dependencies = [
+          sources."async-0.2.10"
+        ];
+      })
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
       sources."forwarded-0.2.0"
@@ -89049,7 +86938,7 @@ in
         ];
       })
       sources."negotiator-0.6.3"
-      sources."node-gyp-build-4.8.0"
+      sources."node-gyp-build-4.8.1"
       sources."normalize-path-3.0.0"
       sources."oauth-sign-0.9.0"
       sources."object-inspect-1.13.1"
@@ -89158,7 +87047,7 @@ in
       sources."statuses-2.0.1"
       (sources."string2compact-1.3.2" // {
         dependencies = [
-          sources."ipaddr.js-2.1.0"
+          sources."ipaddr.js-2.2.0"
         ];
       })
       sources."string_decoder-1.1.1"
@@ -89214,720 +87103,7 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
-  "pgrok-build-deps-../../tools/networking/pgrok/build-deps" = nodeEnv.buildNodePackage {
-    name = "pgrokd";
-    packageName = "pgrokd";
-    version = "1.4.1";
-    src = ../../tools/networking/pgrok/build-deps;
-    dependencies = [
-      sources."@aashutoshrathi/word-wrap-1.2.6"
-      sources."@adobe/css-tools-4.3.3"
-      sources."@alloc/quick-lru-5.2.0"
-      sources."@ampproject/remapping-2.3.0"
-      sources."@babel/code-frame-7.23.5"
-      sources."@babel/compat-data-7.23.5"
-      (sources."@babel/core-7.24.0" // {
-        dependencies = [
-          sources."@babel/generator-7.23.6"
-          sources."@babel/traverse-7.24.0"
-          sources."@babel/types-7.24.0"
-          sources."semver-6.3.1"
-        ];
-      })
-      sources."@babel/generator-7.17.7"
-      (sources."@babel/helper-compilation-targets-7.23.6" // {
-        dependencies = [
-          sources."lru-cache-5.1.1"
-          sources."semver-6.3.1"
-          sources."yallist-3.1.1"
-        ];
-      })
-      sources."@babel/helper-environment-visitor-7.22.20"
-      (sources."@babel/helper-function-name-7.23.0" // {
-        dependencies = [
-          sources."@babel/types-7.24.0"
-        ];
-      })
-      (sources."@babel/helper-hoist-variables-7.22.5" // {
-        dependencies = [
-          sources."@babel/types-7.24.0"
-        ];
-      })
-      (sources."@babel/helper-module-imports-7.22.15" // {
-        dependencies = [
-          sources."@babel/types-7.24.0"
-        ];
-      })
-      sources."@babel/helper-module-transforms-7.23.3"
-      sources."@babel/helper-plugin-utils-7.24.0"
-      (sources."@babel/helper-simple-access-7.22.5" // {
-        dependencies = [
-          sources."@babel/types-7.24.0"
-        ];
-      })
-      (sources."@babel/helper-split-export-declaration-7.22.6" // {
-        dependencies = [
-          sources."@babel/types-7.24.0"
-        ];
-      })
-      sources."@babel/helper-string-parser-7.23.4"
-      sources."@babel/helper-validator-identifier-7.22.20"
-      sources."@babel/helper-validator-option-7.23.5"
-      (sources."@babel/helpers-7.24.0" // {
-        dependencies = [
-          sources."@babel/generator-7.23.6"
-          sources."@babel/traverse-7.24.0"
-          sources."@babel/types-7.24.0"
-        ];
-      })
-      sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.24.0"
-      sources."@babel/plugin-transform-react-jsx-self-7.23.3"
-      sources."@babel/plugin-transform-react-jsx-source-7.23.3"
-      (sources."@babel/template-7.24.0" // {
-        dependencies = [
-          sources."@babel/types-7.24.0"
-        ];
-      })
-      (sources."@babel/traverse-7.23.2" // {
-        dependencies = [
-          sources."@babel/generator-7.23.6"
-          sources."@babel/types-7.24.0"
-        ];
-      })
-      sources."@babel/types-7.17.0"
-      (sources."@cspotcode/source-map-support-0.8.1" // {
-        dependencies = [
-          sources."@jridgewell/trace-mapping-0.3.9"
-        ];
-      })
-      sources."@esbuild/android-arm-0.18.20"
-      sources."@esbuild/android-arm64-0.18.20"
-      sources."@esbuild/android-x64-0.18.20"
-      sources."@esbuild/darwin-arm64-0.18.20"
-      sources."@esbuild/darwin-x64-0.18.20"
-      sources."@esbuild/freebsd-arm64-0.18.20"
-      sources."@esbuild/freebsd-x64-0.18.20"
-      sources."@esbuild/linux-arm-0.18.20"
-      sources."@esbuild/linux-arm64-0.18.20"
-      sources."@esbuild/linux-ia32-0.18.20"
-      sources."@esbuild/linux-loong64-0.18.20"
-      sources."@esbuild/linux-mips64el-0.18.20"
-      sources."@esbuild/linux-ppc64-0.18.20"
-      sources."@esbuild/linux-riscv64-0.18.20"
-      sources."@esbuild/linux-s390x-0.18.20"
-      sources."@esbuild/linux-x64-0.18.20"
-      sources."@esbuild/netbsd-x64-0.18.20"
-      sources."@esbuild/openbsd-x64-0.18.20"
-      sources."@esbuild/sunos-x64-0.18.20"
-      sources."@esbuild/win32-arm64-0.18.20"
-      sources."@esbuild/win32-ia32-0.18.20"
-      sources."@esbuild/win32-x64-0.18.20"
-      sources."@eslint-community/eslint-utils-4.4.0"
-      sources."@eslint-community/regexpp-4.10.0"
-      (sources."@eslint/eslintrc-2.1.4" // {
-        dependencies = [
-          sources."globals-13.24.0"
-        ];
-      })
-      sources."@eslint/js-8.44.0"
-      sources."@headlessui/react-1.7.18"
-      sources."@heroicons/react-2.0.18"
-      sources."@humanwhocodes/config-array-0.11.14"
-      sources."@humanwhocodes/module-importer-1.0.1"
-      sources."@humanwhocodes/object-schema-2.0.2"
-      (sources."@isaacs/cliui-8.0.2" // {
-        dependencies = [
-          sources."ansi-regex-6.0.1"
-          sources."strip-ansi-7.1.0"
-        ];
-      })
-      sources."@jridgewell/gen-mapping-0.3.5"
-      sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.2.1"
-      sources."@jridgewell/source-map-0.3.6"
-      sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.25"
-      sources."@nodelib/fs.scandir-2.1.5"
-      sources."@nodelib/fs.stat-2.0.5"
-      sources."@nodelib/fs.walk-1.2.8"
-      sources."@remix-run/router-1.8.0"
-      sources."@swc/core-1.4.8"
-      sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.7"
-      sources."@swc/types-0.1.6"
-      sources."@swc/wasm-1.4.8"
-      sources."@tailwindcss/forms-0.5.7"
-      sources."@tanstack/react-virtual-3.2.0"
-      sources."@tanstack/virtual-core-3.2.0"
-      sources."@trivago/prettier-plugin-sort-imports-4.2.1"
-      sources."@tsconfig/node10-1.0.9"
-      sources."@tsconfig/node12-1.0.11"
-      sources."@tsconfig/node14-1.0.3"
-      sources."@tsconfig/node16-1.0.4"
-      sources."@types/json-schema-7.0.15"
-      sources."@types/json5-0.0.29"
-      sources."@types/node-20.5.9"
-      sources."@types/normalize-package-data-2.4.4"
-      sources."@types/prop-types-15.7.11"
-      sources."@types/react-18.2.67"
-      sources."@types/react-dom-18.2.22"
-      sources."@types/scheduler-0.16.8"
-      sources."@types/semver-7.5.8"
-      sources."@typescript-eslint/eslint-plugin-6.0.0"
-      sources."@typescript-eslint/parser-6.0.0"
-      sources."@typescript-eslint/scope-manager-6.0.0"
-      sources."@typescript-eslint/type-utils-6.0.0"
-      sources."@typescript-eslint/types-6.0.0"
-      sources."@typescript-eslint/typescript-estree-6.0.0"
-      sources."@typescript-eslint/utils-6.0.0"
-      sources."@typescript-eslint/visitor-keys-6.0.0"
-      sources."@vitejs/plugin-react-4.0.4"
-      sources."@vue/compiler-core-3.4.21"
-      sources."@vue/compiler-dom-3.4.21"
-      sources."@vue/compiler-sfc-3.4.21"
-      sources."@vue/compiler-ssr-3.4.21"
-      sources."@vue/shared-3.4.21"
-      sources."acorn-8.11.3"
-      sources."acorn-jsx-5.3.2"
-      sources."acorn-walk-8.3.2"
-      sources."ajv-6.12.6"
-      sources."ansi-regex-5.0.1"
-      sources."ansi-styles-3.2.1"
-      sources."any-promise-1.3.0"
-      sources."anymatch-3.1.3"
-      sources."arg-5.0.2"
-      sources."argparse-2.0.1"
-      sources."array-buffer-byte-length-1.0.1"
-      sources."array-includes-3.1.7"
-      sources."array-union-2.1.0"
-      sources."array.prototype.findlastindex-1.2.4"
-      sources."array.prototype.flat-1.3.2"
-      sources."array.prototype.flatmap-1.3.2"
-      sources."array.prototype.tosorted-1.1.3"
-      sources."arraybuffer.prototype.slice-1.0.3"
-      sources."async-2.6.4"
-      sources."asynckit-0.4.0"
-      sources."autoprefixer-10.4.18"
-      sources."available-typed-arrays-1.0.7"
-      sources."axios-1.4.0"
-      sources."balanced-match-1.0.2"
-      sources."binary-extensions-2.3.0"
-      sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
-      sources."browserslist-4.23.0"
-      sources."buffer-from-1.1.2"
-      sources."builtin-modules-3.3.0"
-      sources."call-bind-1.0.7"
-      sources."callsites-3.1.0"
-      sources."camelcase-css-2.0.1"
-      sources."caniuse-lite-1.0.30001599"
-      sources."chalk-2.4.2"
-      sources."chokidar-3.6.0"
-      sources."ci-info-3.9.0"
-      sources."clean-regexp-1.0.0"
-      sources."client-only-0.0.1"
-      (sources."code-inspector-core-0.1.9" // {
-        dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.2"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."has-flag-4.0.0"
-          sources."supports-color-7.2.0"
-        ];
-      })
-      (sources."code-inspector-plugin-0.1.9" // {
-        dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.1"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."has-flag-4.0.0"
-          sources."supports-color-7.2.0"
-        ];
-      })
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
-      sources."combined-stream-1.0.8"
-      sources."commander-4.1.1"
-      sources."concat-map-0.0.1"
-      sources."convert-source-map-2.0.0"
-      sources."copy-anything-2.0.6"
-      sources."create-require-1.1.1"
-      sources."cross-spawn-7.0.3"
-      sources."cssesc-3.0.0"
-      sources."csstype-3.1.3"
-      sources."data-view-buffer-1.0.1"
-      sources."data-view-byte-length-1.0.1"
-      sources."data-view-byte-offset-1.0.0"
-      sources."debug-4.3.4"
-      sources."deep-is-0.1.4"
-      sources."define-data-property-1.1.4"
-      sources."define-properties-1.2.1"
-      sources."delayed-stream-1.0.0"
-      sources."detect-libc-1.0.3"
-      sources."didyoumean-1.2.2"
-      sources."diff-4.0.2"
-      sources."dir-glob-3.0.1"
-      sources."dlv-1.1.3"
-      sources."doctrine-3.0.0"
-      sources."eastasianwidth-0.2.0"
-      sources."electron-to-chromium-1.4.710"
-      sources."emoji-regex-9.2.2"
-      sources."entities-4.5.0"
-      sources."errno-0.1.8"
-      sources."error-ex-1.3.2"
-      sources."es-abstract-1.23.2"
-      sources."es-define-property-1.0.0"
-      sources."es-errors-1.3.0"
-      sources."es-iterator-helpers-1.0.18"
-      sources."es-object-atoms-1.0.0"
-      sources."es-set-tostringtag-2.0.3"
-      sources."es-shim-unscopables-1.0.2"
-      sources."es-to-primitive-1.2.1"
-      sources."esbuild-0.18.20"
-      sources."escalade-3.1.2"
-      sources."escape-string-regexp-1.0.5"
-      (sources."eslint-8.45.0" // {
-        dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.2"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."escape-string-regexp-4.0.0"
-          sources."eslint-scope-7.2.2"
-          sources."estraverse-5.3.0"
-          sources."glob-parent-6.0.2"
-          sources."globals-13.24.0"
-          sources."has-flag-4.0.0"
-          sources."supports-color-7.2.0"
-        ];
-      })
-      (sources."eslint-import-resolver-node-0.3.9" // {
-        dependencies = [
-          sources."debug-3.2.7"
-        ];
-      })
-      (sources."eslint-module-utils-2.8.1" // {
-        dependencies = [
-          sources."debug-3.2.7"
-        ];
-      })
-      (sources."eslint-plugin-import-2.28.1" // {
-        dependencies = [
-          sources."debug-3.2.7"
-          sources."doctrine-2.1.0"
-          sources."semver-6.3.1"
-        ];
-      })
-      (sources."eslint-plugin-react-7.33.2" // {
-        dependencies = [
-          sources."doctrine-2.1.0"
-          sources."estraverse-5.3.0"
-          sources."resolve-2.0.0-next.5"
-          sources."semver-6.3.1"
-        ];
-      })
-      sources."eslint-plugin-react-hooks-4.6.0"
-      sources."eslint-plugin-react-refresh-0.4.6"
-      (sources."eslint-plugin-unicorn-48.0.1" // {
-        dependencies = [
-          sources."jsesc-3.0.2"
-        ];
-      })
-      sources."eslint-scope-5.1.1"
-      sources."eslint-visitor-keys-3.4.3"
-      sources."espree-9.6.1"
-      (sources."esquery-1.5.0" // {
-        dependencies = [
-          sources."estraverse-5.3.0"
-        ];
-      })
-      (sources."esrecurse-4.3.0" // {
-        dependencies = [
-          sources."estraverse-5.3.0"
-        ];
-      })
-      sources."estraverse-4.3.0"
-      sources."estree-walker-2.0.2"
-      sources."esutils-2.0.3"
-      sources."fast-deep-equal-3.1.3"
-      sources."fast-glob-3.3.2"
-      sources."fast-json-stable-stringify-2.1.0"
-      sources."fast-levenshtein-2.0.6"
-      sources."fastq-1.17.1"
-      sources."file-entry-cache-6.0.1"
-      sources."fill-range-7.0.1"
-      sources."find-up-5.0.0"
-      sources."flat-cache-3.2.0"
-      sources."flatted-3.3.1"
-      sources."follow-redirects-1.15.6"
-      sources."for-each-0.3.3"
-      sources."foreground-child-3.1.1"
-      sources."form-data-4.0.0"
-      sources."fraction.js-4.3.7"
-      sources."fs.realpath-1.0.0"
-      sources."fsevents-2.3.3"
-      sources."function-bind-1.1.2"
-      sources."function.prototype.name-1.1.6"
-      sources."functions-have-names-1.2.3"
-      sources."gensync-1.0.0-beta.2"
-      sources."get-intrinsic-1.2.4"
-      sources."get-symbol-description-1.0.2"
-      sources."glob-7.2.3"
-      sources."glob-parent-5.1.2"
-      sources."globals-11.12.0"
-      sources."globalthis-1.0.3"
-      sources."globby-11.1.0"
-      sources."gopd-1.0.1"
-      sources."graceful-fs-4.2.11"
-      sources."grapheme-splitter-1.0.4"
-      sources."graphemer-1.4.0"
-      sources."has-1.0.4"
-      sources."has-bigints-1.0.2"
-      sources."has-flag-3.0.0"
-      sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.3"
-      sources."has-symbols-1.0.3"
-      sources."has-tostringtag-1.0.2"
-      sources."hasown-2.0.2"
-      sources."hosted-git-info-2.8.9"
-      sources."iconv-lite-0.6.3"
-      sources."ignore-5.3.1"
-      sources."image-size-0.5.5"
-      sources."immutable-4.3.5"
-      sources."import-fresh-3.3.0"
-      sources."imurmurhash-0.1.4"
-      sources."indent-string-4.0.0"
-      sources."inflight-1.0.6"
-      sources."inherits-2.0.4"
-      sources."internal-slot-1.0.7"
-      sources."is-array-buffer-3.0.4"
-      sources."is-arrayish-0.2.1"
-      sources."is-async-function-2.0.0"
-      sources."is-bigint-1.0.4"
-      sources."is-binary-path-2.1.0"
-      sources."is-boolean-object-1.1.2"
-      sources."is-builtin-module-3.2.1"
-      sources."is-callable-1.2.7"
-      sources."is-core-module-2.13.1"
-      sources."is-data-view-1.0.1"
-      sources."is-date-object-1.0.5"
-      sources."is-extglob-2.1.1"
-      sources."is-finalizationregistry-1.0.2"
-      sources."is-fullwidth-code-point-3.0.0"
-      sources."is-generator-function-1.0.10"
-      sources."is-glob-4.0.3"
-      sources."is-map-2.0.3"
-      sources."is-negative-zero-2.0.3"
-      sources."is-number-7.0.0"
-      sources."is-number-object-1.0.7"
-      sources."is-path-inside-3.0.3"
-      sources."is-regex-1.1.4"
-      sources."is-set-2.0.3"
-      sources."is-shared-array-buffer-1.0.3"
-      sources."is-string-1.0.7"
-      sources."is-symbol-1.0.4"
-      sources."is-typed-array-1.1.13"
-      sources."is-weakmap-2.0.2"
-      sources."is-weakref-1.0.2"
-      sources."is-weakset-2.0.3"
-      sources."is-what-3.14.1"
-      sources."isarray-2.0.5"
-      sources."isexe-2.0.0"
-      sources."iterator.prototype-1.1.2"
-      sources."jackspeak-2.3.6"
-      sources."javascript-natural-sort-0.7.1"
-      sources."jiti-1.21.0"
-      sources."js-tokens-4.0.0"
-      sources."js-yaml-4.1.0"
-      sources."jsesc-2.5.2"
-      sources."json-buffer-3.0.1"
-      sources."json-parse-even-better-errors-2.3.1"
-      sources."json-schema-traverse-0.4.1"
-      sources."json-stable-stringify-without-jsonify-1.0.1"
-      sources."json5-2.2.3"
-      sources."jsx-ast-utils-3.3.5"
-      sources."keyv-4.5.4"
-      (sources."less-4.2.0" // {
-        dependencies = [
-          sources."source-map-0.6.1"
-        ];
-      })
-      sources."levn-0.4.1"
-      sources."lightningcss-1.24.1"
-      sources."lilconfig-2.1.0"
-      sources."lines-and-columns-1.2.4"
-      sources."locate-path-6.0.0"
-      sources."lodash-4.17.21"
-      sources."lodash.merge-4.6.2"
-      sources."loose-envify-1.4.0"
-      sources."lru-cache-6.0.0"
-      sources."magic-string-0.30.8"
-      (sources."make-dir-2.1.0" // {
-        dependencies = [
-          sources."pify-4.0.1"
-          sources."semver-5.7.2"
-        ];
-      })
-      sources."make-error-1.3.6"
-      sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
-      sources."mime-1.6.0"
-      sources."mime-db-1.52.0"
-      sources."mime-types-2.1.35"
-      sources."min-indent-1.0.1"
-      sources."mini-svg-data-uri-1.4.4"
-      sources."minimatch-3.1.2"
-      sources."minimist-1.2.8"
-      sources."minipass-7.0.4"
-      sources."mkdirp-0.5.6"
-      sources."ms-2.1.2"
-      sources."mz-2.7.0"
-      sources."nanoid-3.3.7"
-      sources."natural-compare-1.4.0"
-      sources."natural-compare-lite-1.4.0"
-      sources."needle-3.3.1"
-      sources."node-releases-2.0.14"
-      (sources."normalize-package-data-2.5.0" // {
-        dependencies = [
-          sources."semver-5.7.2"
-        ];
-      })
-      sources."normalize-path-3.0.0"
-      sources."normalize-range-0.1.2"
-      sources."object-assign-4.1.1"
-      sources."object-hash-3.0.0"
-      sources."object-inspect-1.13.1"
-      sources."object-keys-1.1.1"
-      sources."object.assign-4.1.5"
-      sources."object.entries-1.1.8"
-      sources."object.fromentries-2.0.8"
-      sources."object.groupby-1.0.3"
-      sources."object.hasown-1.1.3"
-      sources."object.values-1.2.0"
-      sources."once-1.4.0"
-      sources."optionator-0.9.3"
-      sources."p-limit-3.1.0"
-      sources."p-locate-5.0.0"
-      sources."p-try-2.2.0"
-      sources."parent-module-1.0.1"
-      sources."parse-json-5.2.0"
-      sources."parse-node-version-1.0.1"
-      sources."path-exists-4.0.0"
-      sources."path-is-absolute-1.0.1"
-      sources."path-key-3.1.1"
-      sources."path-parse-1.0.7"
-      (sources."path-scurry-1.10.1" // {
-        dependencies = [
-          sources."lru-cache-10.2.0"
-        ];
-      })
-      sources."path-type-4.0.0"
-      sources."picocolors-1.0.0"
-      sources."picomatch-2.3.1"
-      sources."pify-2.3.0"
-      sources."pirates-4.0.6"
-      sources."pluralize-8.0.0"
-      (sources."portfinder-1.0.32" // {
-        dependencies = [
-          sources."debug-3.2.7"
-        ];
-      })
-      sources."possible-typed-array-names-1.0.0"
-      sources."postcss-8.4.36"
-      sources."postcss-import-15.1.0"
-      sources."postcss-js-4.0.1"
-      (sources."postcss-load-config-4.0.2" // {
-        dependencies = [
-          sources."lilconfig-3.1.1"
-        ];
-      })
-      sources."postcss-nested-6.0.1"
-      sources."postcss-selector-parser-6.0.16"
-      sources."postcss-value-parser-4.2.0"
-      sources."prelude-ls-1.2.1"
-      sources."prettier-3.0.3"
-      sources."prop-types-15.8.1"
-      sources."proxy-from-env-1.1.0"
-      sources."prr-1.0.1"
-      sources."punycode-2.3.1"
-      sources."queue-microtask-1.2.3"
-      sources."react-18.2.0"
-      sources."react-dom-18.2.0"
-      sources."react-is-16.13.1"
-      sources."react-refresh-0.14.0"
-      sources."react-router-6.15.0"
-      sources."react-router-dom-6.15.0"
-      sources."read-cache-1.0.0"
-      (sources."read-pkg-5.2.0" // {
-        dependencies = [
-          sources."type-fest-0.6.0"
-        ];
-      })
-      (sources."read-pkg-up-7.0.1" // {
-        dependencies = [
-          sources."find-up-4.1.0"
-          sources."locate-path-5.0.0"
-          sources."p-limit-2.3.0"
-          sources."p-locate-4.1.0"
-          sources."type-fest-0.8.1"
-        ];
-      })
-      sources."readdirp-3.6.0"
-      sources."reflect.getprototypeof-1.0.6"
-      sources."regexp-tree-0.1.27"
-      sources."regexp.prototype.flags-1.5.2"
-      (sources."regjsparser-0.10.0" // {
-        dependencies = [
-          sources."jsesc-0.5.0"
-        ];
-      })
-      sources."resolve-1.22.8"
-      sources."resolve-from-4.0.0"
-      sources."reusify-1.0.4"
-      sources."rimraf-3.0.2"
-      sources."rollup-3.29.4"
-      sources."run-parallel-1.2.0"
-      sources."safe-array-concat-1.1.2"
-      sources."safe-regex-test-1.0.3"
-      sources."safer-buffer-2.1.2"
-      sources."sass-1.72.0"
-      sources."sax-1.3.0"
-      sources."scheduler-0.23.0"
-      sources."semver-7.6.0"
-      sources."set-function-length-1.2.2"
-      sources."set-function-name-2.0.2"
-      sources."shebang-command-2.0.0"
-      sources."shebang-regex-3.0.0"
-      sources."side-channel-1.0.6"
-      sources."signal-exit-4.1.0"
-      sources."slash-3.0.0"
-      sources."source-map-0.5.7"
-      sources."source-map-js-1.1.0"
-      (sources."source-map-support-0.5.21" // {
-        dependencies = [
-          sources."source-map-0.6.1"
-        ];
-      })
-      sources."spdx-correct-3.2.0"
-      sources."spdx-exceptions-2.5.0"
-      sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.17"
-      (sources."string-width-5.1.2" // {
-        dependencies = [
-          sources."ansi-regex-6.0.1"
-          sources."strip-ansi-7.1.0"
-        ];
-      })
-      (sources."string-width-cjs-4.2.3" // {
-        dependencies = [
-          sources."emoji-regex-8.0.0"
-        ];
-      })
-      sources."string.prototype.matchall-4.0.10"
-      sources."string.prototype.trim-1.2.9"
-      sources."string.prototype.trimend-1.0.8"
-      sources."string.prototype.trimstart-1.0.7"
-      sources."strip-ansi-6.0.1"
-      sources."strip-ansi-cjs-6.0.1"
-      sources."strip-bom-3.0.0"
-      sources."strip-indent-3.0.0"
-      sources."strip-json-comments-3.1.1"
-      (sources."stylus-0.63.0" // {
-        dependencies = [
-          sources."source-map-0.7.4"
-        ];
-      })
-      (sources."sucrase-3.35.0" // {
-        dependencies = [
-          sources."brace-expansion-2.0.1"
-          sources."glob-10.3.10"
-          sources."minimatch-9.0.3"
-        ];
-      })
-      sources."sugarss-4.0.1"
-      sources."supports-color-5.5.0"
-      sources."supports-preserve-symlinks-flag-1.0.0"
-      (sources."tailwindcss-3.3.7" // {
-        dependencies = [
-          sources."glob-parent-6.0.2"
-        ];
-      })
-      (sources."terser-5.29.2" // {
-        dependencies = [
-          sources."commander-2.20.3"
-        ];
-      })
-      sources."text-table-0.2.0"
-      sources."thenify-3.3.1"
-      sources."thenify-all-1.6.0"
-      sources."to-fast-properties-2.0.0"
-      sources."to-regex-range-5.0.1"
-      sources."ts-api-utils-1.3.0"
-      sources."ts-interface-checker-0.1.13"
-      (sources."ts-node-10.9.2" // {
-        dependencies = [
-          sources."arg-4.1.3"
-        ];
-      })
-      (sources."tsconfig-paths-3.15.0" // {
-        dependencies = [
-          sources."json5-1.0.2"
-        ];
-      })
-      sources."tslib-2.6.2"
-      sources."type-check-0.4.0"
-      sources."type-fest-0.20.2"
-      sources."typed-array-buffer-1.0.2"
-      sources."typed-array-byte-length-1.0.1"
-      sources."typed-array-byte-offset-1.0.2"
-      sources."typed-array-length-1.0.5"
-      sources."typescript-5.0.4"
-      sources."unbox-primitive-1.0.2"
-      sources."update-browserslist-db-1.0.13"
-      sources."uri-js-4.4.1"
-      sources."util-deprecate-1.0.2"
-      sources."v8-compile-cache-lib-3.0.1"
-      sources."validate-npm-package-license-3.0.4"
-      sources."vite-4.4.12"
-      sources."vite-code-inspector-plugin-0.1.9"
-      sources."webpack-code-inspector-plugin-0.1.9"
-      sources."which-2.0.2"
-      sources."which-boxed-primitive-1.0.2"
-      sources."which-builtin-type-1.1.3"
-      sources."which-collection-1.0.2"
-      sources."which-typed-array-1.1.15"
-      (sources."wrap-ansi-8.1.0" // {
-        dependencies = [
-          sources."ansi-regex-6.0.1"
-          sources."ansi-styles-6.2.1"
-          sources."strip-ansi-7.1.0"
-        ];
-      })
-      (sources."wrap-ansi-cjs-7.0.0" // {
-        dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."emoji-regex-8.0.0"
-          sources."string-width-4.2.3"
-        ];
-      })
-      sources."wrappy-1.0.2"
-      sources."yallist-4.0.0"
-      sources."yaml-2.4.1"
-      sources."yn-3.1.1"
-      sources."yocto-queue-0.1.0"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
+
   pnpm = nodeEnv.buildNodePackage {
     name = "pnpm";
     packageName = "pnpm";
@@ -89968,7 +87144,7 @@ in
     meta = {
       description = "A T-SQL formatting utility in JS, transpiled from the C# library of the same name.";
       homepage = "https://github.com/TaoK/poor-mans-t-sql-formatter-npm-cli#readme";
-      license = "AGPL-3.0-only";
+      license = "AGPL-3.0";
     };
     production = true;
     bypassCache = true;
@@ -89977,15 +87153,15 @@ in
   postcss = nodeEnv.buildNodePackage {
     name = "postcss";
     packageName = "postcss";
-    version = "8.4.36";
+    version = "8.4.38";
     src = fetchurl {
-      url = "https://registry.npmjs.org/postcss/-/postcss-8.4.36.tgz";
-      sha512 = "/n7eumA6ZjFHAsbX30yhHup/IMkOmlmvtEi7P+6RMYf+bGJSUHc3geH4a0NSZxAz/RJfiS9tooCTs9LAVYUZKw==";
+      url = "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz";
+      sha512 = "Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==";
     };
     dependencies = [
       sources."nanoid-3.3.7"
-      sources."picocolors-1.0.0"
-      sources."source-map-js-1.1.0"
+      sources."picocolors-1.0.1"
+      sources."source-map-js-1.2.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -90014,20 +87190,22 @@ in
       sources."ansi-styles-4.3.0"
       sources."anymatch-3.1.3"
       sources."binary-extensions-2.3.0"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."chokidar-3.6.0"
       sources."cliui-8.0.1"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."dependency-graph-0.11.0"
       sources."emoji-regex-8.0.0"
+      sources."esbuild-0.20.2"
       sources."escalade-3.1.2"
       sources."fast-glob-3.3.2"
       sources."fastq-1.17.1"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."fs-extra-11.2.0"
       sources."get-caller-file-2.0.5"
       sources."get-stdin-9.0.0"
+      sources."get-tsconfig-4.7.5"
       sources."glob-parent-5.1.2"
       sources."globby-14.0.1"
       sources."graceful-fs-4.2.11"
@@ -90041,34 +87219,36 @@ in
       sources."jsonfile-6.1.0"
       sources."lilconfig-3.1.1"
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."nanoid-3.3.7"
       sources."normalize-path-3.0.0"
       sources."path-type-5.0.0"
-      sources."picocolors-1.0.0"
+      sources."picocolors-1.0.1"
       sources."picomatch-2.3.1"
       sources."pify-2.3.0"
-      sources."postcss-8.4.36"
-      sources."postcss-load-config-5.0.3"
+      sources."postcss-8.4.38"
+      sources."postcss-load-config-5.1.0"
       sources."postcss-reporter-7.1.0"
       sources."pretty-hrtime-1.0.3"
       sources."queue-microtask-1.2.3"
       sources."read-cache-1.0.0"
       sources."readdirp-3.6.0"
       sources."require-directory-2.1.1"
+      sources."resolve-pkg-maps-1.0.0"
       sources."reusify-1.0.4"
       sources."run-parallel-1.2.0"
       sources."slash-5.1.0"
-      sources."source-map-js-1.1.0"
+      sources."source-map-js-1.2.0"
       sources."string-width-4.2.3"
       sources."strip-ansi-6.0.1"
       sources."thenby-1.3.4"
       sources."to-regex-range-5.0.1"
+      sources."tsx-4.11.2"
       sources."unicorn-magic-0.1.0"
       sources."universalify-2.0.1"
       sources."wrap-ansi-7.0.0"
       sources."y18n-5.0.8"
-      sources."yaml-2.4.1"
+      sources."yaml-2.4.3"
       sources."yargs-17.7.2"
       sources."yargs-parser-21.1.1"
     ];
@@ -90097,7 +87277,7 @@ in
       sources."chownr-1.1.4"
       sources."decompress-response-6.0.0"
       sources."deep-extend-0.6.0"
-      sources."detect-libc-2.0.2"
+      sources."detect-libc-2.0.3"
       sources."end-of-stream-1.4.4"
       sources."expand-template-2.0.3"
       sources."fs-constants-1.0.0"
@@ -90105,18 +87285,17 @@ in
       sources."ieee754-1.2.1"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
-      sources."lru-cache-6.0.0"
       sources."mimic-response-3.1.0"
       sources."minimist-1.2.8"
       sources."mkdirp-classic-0.5.3"
       sources."napi-build-utils-1.0.2"
-      sources."node-abi-3.56.0"
+      sources."node-abi-3.63.0"
       sources."once-1.4.0"
       sources."pump-3.0.0"
       sources."rc-1.2.8"
       sources."readable-stream-3.6.2"
       sources."safe-buffer-5.2.1"
-      sources."semver-7.6.0"
+      sources."semver-7.6.2"
       sources."simple-concat-1.0.1"
       sources."simple-get-4.0.1"
       sources."string_decoder-1.3.0"
@@ -90126,7 +87305,6 @@ in
       sources."tunnel-agent-0.6.0"
       sources."util-deprecate-1.0.2"
       sources."wrappy-1.0.2"
-      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -90141,10 +87319,10 @@ in
   prettier = nodeEnv.buildNodePackage {
     name = "prettier";
     packageName = "prettier";
-    version = "3.2.5";
+    version = "3.3.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz";
-      sha512 = "3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==";
+      url = "https://registry.npmjs.org/prettier/-/prettier-3.3.0.tgz";
+      sha512 = "J9odKxERhCQ10OC2yb93583f6UnYutOeiV5i0zEDS7UGTdUt0u+y8erxl3lBKvwo/JHyyoEdXjwp4dke9oyZ/g==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -90167,7 +87345,7 @@ in
     dependencies = [
       sources."@taplo/core-0.1.1"
       sources."@taplo/lib-0.4.0-alpha.2"
-      sources."prettier-3.2.5"
+      sources."prettier-3.3.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -90182,17 +87360,17 @@ in
   prisma = nodeEnv.buildNodePackage {
     name = "prisma";
     packageName = "prisma";
-    version = "5.11.0";
+    version = "5.14.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/prisma/-/prisma-5.11.0.tgz";
-      sha512 = "KCLiug2cs0Je7kGkQBN9jDWoZ90ogE/kvZTUTgz2h94FEo8pczCkPH7fPNXkD1sGU7Yh65risGGD1HQ5DF3r3g==";
+      url = "https://registry.npmjs.org/prisma/-/prisma-5.14.0.tgz";
+      sha512 = "gCNZco7y5XtjrnQYeDJTiVZmT/ncqCr5RY1/Cf8X2wgLRmyh9ayPAGBNziI4qEE4S6SxCH5omQLVo9lmURaJ/Q==";
     };
     dependencies = [
-      sources."@prisma/debug-5.11.0"
-      sources."@prisma/engines-5.11.0"
-      sources."@prisma/engines-version-5.11.0-15.efd2449663b3d73d637ea1fd226bafbcf45b3102"
-      sources."@prisma/fetch-engine-5.11.0"
-      sources."@prisma/get-platform-5.11.0"
+      sources."@prisma/debug-5.14.0"
+      sources."@prisma/engines-5.14.0"
+      sources."@prisma/engines-version-5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48"
+      sources."@prisma/fetch-engine-5.14.0"
+      sources."@prisma/get-platform-5.14.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -90207,38 +87385,38 @@ in
   "@prisma/language-server" = nodeEnv.buildNodePackage {
     name = "_at_prisma_slash_language-server";
     packageName = "@prisma/language-server";
-    version = "5.11.0";
+    version = "5.14.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@prisma/language-server/-/language-server-5.11.0.tgz";
-      sha512 = "ufGtOeVuvTaAE8jUINtAhTQfDU6Td4gT6f1smwIffFQBkisjSb7XASI3/Cfa0+oTaRHh0kqfA2k6CW1pUdB/lg==";
+      url = "https://registry.npmjs.org/@prisma/language-server/-/language-server-5.14.0.tgz";
+      sha512 = "bukQelNJ8Kvj6+Rf7i8591DMu3X40DYUXGJ2eWSberZc+inbRBwlETMvzRgOoQkCVxWIt0FfFXudvatkGN5NHw==";
     };
     dependencies = [
       sources."@ampproject/remapping-2.3.0"
-      sources."@babel/code-frame-7.23.5"
-      sources."@babel/compat-data-7.23.5"
-      (sources."@babel/core-7.24.0" // {
+      sources."@babel/code-frame-7.24.6"
+      sources."@babel/compat-data-7.24.6"
+      (sources."@babel/core-7.24.6" // {
         dependencies = [
           sources."convert-source-map-2.0.0"
         ];
       })
-      sources."@babel/generator-7.23.6"
-      sources."@babel/helper-compilation-targets-7.23.6"
-      sources."@babel/helper-environment-visitor-7.22.20"
-      sources."@babel/helper-function-name-7.23.0"
-      sources."@babel/helper-hoist-variables-7.22.5"
-      sources."@babel/helper-module-imports-7.22.15"
-      sources."@babel/helper-module-transforms-7.23.3"
-      sources."@babel/helper-simple-access-7.22.5"
-      sources."@babel/helper-split-export-declaration-7.22.6"
-      sources."@babel/helper-string-parser-7.23.4"
-      sources."@babel/helper-validator-identifier-7.22.20"
-      sources."@babel/helper-validator-option-7.23.5"
-      sources."@babel/helpers-7.24.0"
-      sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.24.0"
-      sources."@babel/template-7.24.0"
-      sources."@babel/traverse-7.24.0"
-      sources."@babel/types-7.24.0"
+      sources."@babel/generator-7.24.6"
+      sources."@babel/helper-compilation-targets-7.24.6"
+      sources."@babel/helper-environment-visitor-7.24.6"
+      sources."@babel/helper-function-name-7.24.6"
+      sources."@babel/helper-hoist-variables-7.24.6"
+      sources."@babel/helper-module-imports-7.24.6"
+      sources."@babel/helper-module-transforms-7.24.6"
+      sources."@babel/helper-simple-access-7.24.6"
+      sources."@babel/helper-split-export-declaration-7.24.6"
+      sources."@babel/helper-string-parser-7.24.6"
+      sources."@babel/helper-validator-identifier-7.24.6"
+      sources."@babel/helper-validator-option-7.24.6"
+      sources."@babel/helpers-7.24.6"
+      sources."@babel/highlight-7.24.6"
+      sources."@babel/parser-7.24.6"
+      sources."@babel/template-7.24.6"
+      sources."@babel/traverse-7.24.6"
+      sources."@babel/types-7.24.6"
       sources."@istanbuljs/load-nyc-config-1.1.0"
       sources."@istanbuljs/schema-0.1.3"
       sources."@jridgewell/gen-mapping-0.3.5"
@@ -90246,7 +87424,7 @@ in
       sources."@jridgewell/set-array-1.2.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.25"
-      sources."@prisma/prisma-schema-wasm-5.11.0-15.efd2449663b3d73d637ea1fd226bafbcf45b3102"
+      sources."@prisma/prisma-schema-wasm-5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48"
       sources."@types/js-levenshtein-1.1.3"
       sources."aggregate-error-3.1.0"
       sources."ansi-regex-5.0.1"
@@ -90259,7 +87437,7 @@ in
       sources."browserslist-4.23.0"
       sources."caching-transform-4.0.0"
       sources."camelcase-5.3.1"
-      sources."caniuse-lite-1.0.30001599"
+      sources."caniuse-lite-1.0.30001627"
       sources."chalk-2.4.2"
       sources."clean-stack-2.2.0"
       sources."cliui-6.0.0"
@@ -90269,10 +87447,10 @@ in
       sources."concat-map-0.0.1"
       sources."convert-source-map-1.9.0"
       sources."cross-spawn-7.0.3"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."decamelize-1.2.0"
       sources."default-require-extensions-3.0.1"
-      sources."electron-to-chromium-1.4.710"
+      sources."electron-to-chromium-1.4.789"
       sources."emoji-regex-8.0.0"
       sources."es6-error-4.1.1"
       sources."escalade-3.1.2"
@@ -90308,11 +87486,9 @@ in
       (sources."istanbul-lib-report-3.0.1" // {
         dependencies = [
           sources."has-flag-4.0.0"
-          sources."lru-cache-6.0.0"
           sources."make-dir-4.0.0"
-          sources."semver-7.6.0"
+          sources."semver-7.6.2"
           sources."supports-color-7.2.0"
-          sources."yallist-4.0.0"
         ];
       })
       sources."istanbul-lib-source-maps-4.0.1"
@@ -90341,7 +87517,7 @@ in
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
-      sources."picocolors-1.0.0"
+      sources."picocolors-1.0.1"
       sources."pkg-dir-4.2.0"
       sources."process-on-spawn-1.0.0"
       sources."release-zalgo-1.0.0"
@@ -90365,7 +87541,7 @@ in
       sources."to-fast-properties-2.0.0"
       sources."type-fest-0.8.1"
       sources."typedarray-to-buffer-3.1.5"
-      sources."update-browserslist-db-1.0.13"
+      sources."update-browserslist-db-1.0.16"
       sources."uuid-8.3.2"
       sources."vscode-jsonrpc-8.1.0"
       sources."vscode-languageserver-8.1.0"
@@ -90425,10 +87601,10 @@ in
       sources."foreground-child-3.1.1"
       sources."fs.realpath-1.0.0"
       sources."gaze-1.1.3"
-      (sources."glob-10.3.10" // {
+      (sources."glob-10.4.1" // {
         dependencies = [
           sources."brace-expansion-2.0.1"
-          sources."minimatch-9.0.3"
+          sources."minimatch-9.0.4"
         ];
       })
       (sources."globule-1.3.4" // {
@@ -90440,16 +87616,16 @@ in
       sources."inherits-2.0.4"
       sources."is-fullwidth-code-point-3.0.0"
       sources."isexe-2.0.0"
-      sources."jackspeak-2.3.6"
+      sources."jackspeak-3.2.3"
       sources."keypress-0.2.1"
       sources."lodash-4.17.21"
-      sources."lru-cache-10.2.0"
+      sources."lru-cache-10.2.2"
       sources."minimatch-3.0.8"
-      sources."minipass-7.0.4"
+      sources."minipass-7.1.2"
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
-      sources."path-scurry-1.10.1"
+      sources."path-scurry-1.11.1"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-4.1.0"
@@ -90700,7 +87876,7 @@ in
         ];
       })
       sources."punycode-1.4.1"
-      sources."qs-6.12.0"
+      sources."qs-6.12.1"
       sources."querystring-es3-0.2.1"
       sources."randombytes-2.1.0"
       sources."randomfill-1.0.4"
@@ -90787,7 +87963,7 @@ in
       sources."isexe-2.0.0"
       sources."shell-quote-1.8.1"
       sources."uuid-9.0.1"
-      sources."vscode-jsonrpc-8.2.0"
+      sources."vscode-jsonrpc-8.2.1"
       sources."vscode-languageserver-8.1.0"
       (sources."vscode-languageserver-protocol-3.17.3" // {
         dependencies = [
@@ -90863,24 +88039,6 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
-  pyright = nodeEnv.buildNodePackage {
-    name = "pyright";
-    packageName = "pyright";
-    version = "1.1.354";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.354.tgz";
-      sha512 = "lUojJFZqg4St+4E2WrZbqODeqLvhuRJXRDros59bJcK485hXJLlCb3DzTd/9KYfaisf2TqvDV79qhc0grwyf/w==";
-    };
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "Type checker for the Python language";
-      homepage = "https://github.com/Microsoft/pyright#readme";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
   remod-cli = nodeEnv.buildNodePackage {
     name = "remod-cli";
     packageName = "remod-cli";
@@ -90890,9 +88048,8 @@ in
       sha512 = "QxvCtwgDBTeBC9V+niO9WPrnNKVEIa0osvdKhw2JkhOjFY0PK/vcFL5jrj7di6GurLIzdweXJgTWnQz2VljdQQ==";
     };
     dependencies = [
-      sources."@types/prop-types-15.7.11"
-      sources."@types/react-18.2.67"
-      sources."@types/scheduler-0.16.8"
+      sources."@types/prop-types-15.7.12"
+      sources."@types/react-18.3.3"
       sources."@types/yoga-layout-1.9.2"
       sources."ansi-escapes-4.3.2"
       sources."ansi-regex-5.0.1"
@@ -90995,7 +88152,7 @@ in
       sources."spdx-correct-3.2.0"
       sources."spdx-exceptions-2.5.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.17"
+      sources."spdx-license-ids-3.0.18"
       (sources."string-length-3.1.0" // {
         dependencies = [
           sources."ansi-regex-4.1.1"
@@ -91029,10 +88186,10 @@ in
   "reveal.js" = nodeEnv.buildNodePackage {
     name = "reveal.js";
     packageName = "reveal.js";
-    version = "5.0.5";
+    version = "5.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/reveal.js/-/reveal.js-5.0.5.tgz";
-      sha512 = "MPWPV/cRlkZhh72dAGYv/bUCr9ulwM2/ucCqiL/KN4tvhb6VvN49iwOyWHE08wppj8lMQXi2xbS3kyKgfyTYqg==";
+      url = "https://registry.npmjs.org/reveal.js/-/reveal.js-5.1.0.tgz";
+      sha512 = "KDt7m0+xwKV6nAZt4CNPVFBf42sTKRQapg0bGGKB5PKO5XvChnMfwlZkybydHiQJ7p5+6LbHKRGrhXODdoNIaA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -91047,10 +88204,10 @@ in
   rimraf = nodeEnv.buildNodePackage {
     name = "rimraf";
     packageName = "rimraf";
-    version = "5.0.5";
+    version = "5.0.7";
     src = fetchurl {
-      url = "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz";
-      sha512 = "CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==";
+      url = "https://registry.npmjs.org/rimraf/-/rimraf-5.0.7.tgz";
+      sha512 = "nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==";
     };
     dependencies = [
       sources."@isaacs/cliui-8.0.2"
@@ -91064,15 +88221,15 @@ in
       sources."eastasianwidth-0.2.0"
       sources."emoji-regex-9.2.2"
       sources."foreground-child-3.1.1"
-      sources."glob-10.3.10"
+      sources."glob-10.4.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."isexe-2.0.0"
-      sources."jackspeak-2.3.6"
-      sources."lru-cache-10.2.0"
-      sources."minimatch-9.0.3"
-      sources."minipass-7.0.4"
+      sources."jackspeak-3.2.3"
+      sources."lru-cache-10.2.2"
+      sources."minimatch-9.0.4"
+      sources."minipass-7.1.2"
       sources."path-key-3.1.1"
-      sources."path-scurry-1.10.1"
+      sources."path-scurry-1.11.1"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-4.1.0"
@@ -91113,10 +88270,10 @@ in
   rollup = nodeEnv.buildNodePackage {
     name = "rollup";
     packageName = "rollup";
-    version = "4.13.0";
+    version = "4.18.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz";
-      sha512 = "3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==";
+      url = "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz";
+      sha512 = "QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==";
     };
     dependencies = [
       sources."@types/estree-1.0.5"
@@ -91137,9 +88294,35 @@ in
     version = "0.3.1850";
     src = ../../applications/editors/vscode/extensions/rust-lang.rust-analyzer/build-deps;
     dependencies = [
-      sources."@aashutoshrathi/word-wrap-1.2.6"
+      sources."@azure/abort-controller-1.1.0"
+      (sources."@azure/core-auth-1.7.2" // {
+        dependencies = [
+          sources."@azure/abort-controller-2.1.2"
+        ];
+      })
+      (sources."@azure/core-client-1.9.2" // {
+        dependencies = [
+          sources."@azure/abort-controller-2.1.2"
+        ];
+      })
+      (sources."@azure/core-rest-pipeline-1.16.0" // {
+        dependencies = [
+          sources."@azure/abort-controller-2.1.2"
+        ];
+      })
+      sources."@azure/core-tracing-1.1.2"
+      (sources."@azure/core-util-1.9.0" // {
+        dependencies = [
+          sources."@azure/abort-controller-2.1.2"
+        ];
+      })
+      sources."@azure/identity-4.2.0"
+      sources."@azure/logger-1.1.2"
+      sources."@azure/msal-browser-3.16.0"
+      sources."@azure/msal-common-14.11.0"
+      sources."@azure/msal-node-2.9.1"
       sources."@eslint-community/eslint-utils-4.4.0"
-      sources."@eslint-community/regexpp-4.10.0"
+      sources."@eslint-community/regexpp-4.10.1"
       (sources."@eslint/eslintrc-2.1.4" // {
         dependencies = [
           sources."brace-expansion-1.1.11"
@@ -91148,7 +88331,7 @@ in
         ];
       })
       sources."@eslint/js-8.57.0"
-      sources."@hpcc-js/wasm-2.16.0"
+      sources."@hpcc-js/wasm-2.16.2"
       (sources."@humanwhocodes/config-array-0.11.14" // {
         dependencies = [
           sources."brace-expansion-1.1.11"
@@ -91156,12 +88339,11 @@ in
         ];
       })
       sources."@humanwhocodes/module-importer-1.0.1"
-      sources."@humanwhocodes/object-schema-2.0.2"
+      sources."@humanwhocodes/object-schema-2.0.3"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@tootallnate/once-1.1.2"
-      sources."@tsconfig/strictest-2.0.3"
+      sources."@tsconfig/strictest-2.0.5"
       sources."@types/json-schema-7.0.15"
       sources."@types/node-16.11.68"
       sources."@types/semver-7.5.8"
@@ -91179,52 +88361,56 @@ in
       sources."@typescript-eslint/utils-6.21.0"
       sources."@typescript-eslint/visitor-keys-6.21.0"
       sources."@ungap/structured-clone-1.2.0"
-      sources."@vscode/test-electron-2.3.9"
-      (sources."@vscode/vsce-2.24.0" // {
+      sources."@vscode/test-electron-2.4.0"
+      (sources."@vscode/vsce-2.26.1" // {
         dependencies = [
+          sources."ansi-styles-3.2.1"
           sources."brace-expansion-1.1.11"
+          sources."chalk-2.4.2"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
           sources."commander-6.2.1"
           sources."minimatch-3.1.2"
         ];
       })
       sources."acorn-8.11.3"
       sources."acorn-jsx-5.3.2"
-      sources."agent-base-6.0.2"
+      sources."agent-base-7.1.1"
       sources."ajv-6.12.6"
       sources."anser-2.1.1"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
       sources."argparse-2.0.1"
       sources."array-union-2.1.0"
-      sources."azure-devops-node-api-11.2.0"
+      sources."asynckit-0.4.0"
+      sources."azure-devops-node-api-12.5.0"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
-      (sources."bl-4.1.0" // {
+      (sources."bl-5.1.0" // {
         dependencies = [
           sources."readable-stream-3.6.2"
         ];
       })
       sources."boolbase-1.0.0"
       sources."brace-expansion-2.0.1"
-      sources."braces-3.0.2"
-      sources."buffer-5.7.1"
+      sources."braces-3.0.3"
+      sources."buffer-6.0.3"
       sources."buffer-crc32-0.2.13"
+      sources."buffer-equal-constant-time-1.0.1"
       sources."call-bind-1.0.7"
       sources."callsites-3.1.0"
-      (sources."chalk-2.4.2" // {
-        dependencies = [
-          sources."ansi-styles-3.2.1"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-        ];
-      })
+      sources."chalk-5.3.0"
       sources."cheerio-1.0.0-rc.12"
       sources."cheerio-select-2.1.0"
       sources."chownr-1.1.4"
       sources."ci-info-2.0.0"
+      sources."cli-cursor-4.0.0"
+      sources."cli-spinners-2.9.2"
       sources."cliui-8.0.1"
+      sources."cockatiel-3.1.3"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
+      sources."combined-stream-1.0.8"
       sources."commander-7.2.0"
       sources."concat-map-0.0.1"
       sources."core-util-is-1.0.3"
@@ -91247,7 +88433,7 @@ in
       sources."d3-force-3.0.0"
       sources."d3-format-3.1.0"
       sources."d3-geo-3.1.1"
-      sources."d3-graphviz-5.3.0"
+      sources."d3-graphviz-5.4.0"
       sources."d3-hierarchy-3.1.2"
       sources."d3-interpolate-3.0.1"
       sources."d3-path-3.1.0"
@@ -91263,19 +88449,23 @@ in
       sources."d3-timer-3.0.1"
       sources."d3-transition-3.0.1"
       sources."d3-zoom-3.0.0"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."decompress-response-6.0.0"
       sources."deep-extend-0.6.0"
       sources."deep-is-0.1.4"
       sources."define-data-property-1.1.4"
+      sources."define-lazy-prop-2.0.0"
       sources."delaunator-5.0.1"
-      sources."detect-libc-2.0.2"
+      sources."delayed-stream-1.0.0"
+      sources."detect-libc-2.0.3"
       sources."dir-glob-3.0.1"
       sources."doctrine-3.0.0"
       sources."dom-serializer-2.0.0"
       sources."domelementtype-2.3.0"
       sources."domhandler-5.0.3"
       sources."domutils-3.1.0"
+      sources."eastasianwidth-0.2.0"
+      sources."ecdsa-sig-formatter-1.0.11"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."entities-4.5.0"
@@ -91302,6 +88492,7 @@ in
       sources."esrecurse-4.3.0"
       sources."estraverse-5.3.0"
       sources."esutils-2.0.3"
+      sources."events-3.3.0"
       sources."expand-template-2.0.3"
       sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.3.2"
@@ -91310,11 +88501,12 @@ in
       sources."fastq-1.17.1"
       sources."fd-slicer-1.1.0"
       sources."file-entry-cache-6.0.1"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."find-up-5.0.0"
       sources."flat-cache-3.2.0"
       sources."flatted-3.3.1"
       sources."follow-redirects-1.15.6"
+      sources."form-data-4.0.0"
       sources."fs-constants-1.0.0"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.2"
@@ -91339,8 +88531,8 @@ in
       sources."hasown-2.0.2"
       sources."hosted-git-info-4.1.0"
       sources."htmlparser2-8.0.2"
-      sources."http-proxy-agent-4.0.1"
-      sources."https-proxy-agent-5.0.1"
+      sources."http-proxy-agent-7.0.2"
+      sources."https-proxy-agent-7.0.4"
       sources."iconv-lite-0.6.3"
       sources."ieee754-1.2.1"
       sources."ignore-5.3.1"
@@ -91352,11 +88544,15 @@ in
       sources."ini-1.3.8"
       sources."internmap-2.0.3"
       sources."is-ci-2.0.0"
+      sources."is-docker-2.2.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
+      sources."is-interactive-2.0.0"
       sources."is-number-7.0.0"
       sources."is-path-inside-3.0.3"
+      sources."is-unicode-supported-1.3.0"
+      sources."is-wsl-2.2.0"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."js-yaml-4.1.0"
@@ -91364,7 +88560,18 @@ in
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."jsonc-parser-3.2.1"
+      (sources."jsonwebtoken-9.0.2" // {
+        dependencies = [
+          sources."jws-3.2.2"
+        ];
+      })
       sources."jszip-3.10.1"
+      sources."jwa-1.4.1"
+      (sources."jws-4.0.0" // {
+        dependencies = [
+          sources."jwa-2.0.0"
+        ];
+      })
       sources."keytar-7.9.0"
       sources."keyv-4.5.4"
       sources."leven-3.1.0"
@@ -91372,7 +88579,15 @@ in
       sources."lie-3.3.0"
       sources."linkify-it-3.0.3"
       sources."locate-path-6.0.0"
+      sources."lodash.includes-4.3.0"
+      sources."lodash.isboolean-3.0.3"
+      sources."lodash.isinteger-4.0.4"
+      sources."lodash.isnumber-3.0.3"
+      sources."lodash.isplainobject-4.0.6"
+      sources."lodash.isstring-4.0.1"
       sources."lodash.merge-4.6.2"
+      sources."lodash.once-4.1.1"
+      sources."log-symbols-5.1.0"
       sources."lru-cache-6.0.0"
       (sources."markdown-it-12.3.2" // {
         dependencies = [
@@ -91381,8 +88596,11 @@ in
       })
       sources."mdurl-1.0.1"
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."mime-1.6.0"
+      sources."mime-db-1.52.0"
+      sources."mime-types-2.1.35"
+      sources."mimic-fn-2.1.0"
       sources."mimic-response-3.1.0"
       sources."minimatch-5.1.6"
       sources."minimist-1.2.8"
@@ -91391,13 +88609,23 @@ in
       sources."mute-stream-0.0.8"
       sources."napi-build-utils-1.0.2"
       sources."natural-compare-1.4.0"
-      sources."node-abi-3.56.0"
+      sources."node-abi-3.63.0"
       sources."node-addon-api-4.3.0"
       sources."nth-check-2.1.1"
       sources."object-inspect-1.13.1"
       sources."once-1.4.0"
-      sources."optionator-0.9.3"
-      (sources."ovsx-0.8.3" // {
+      sources."onetime-5.1.2"
+      sources."open-8.4.2"
+      sources."optionator-0.9.4"
+      (sources."ora-7.0.1" // {
+        dependencies = [
+          sources."ansi-regex-6.0.1"
+          sources."emoji-regex-10.3.0"
+          sources."string-width-6.1.0"
+          sources."strip-ansi-7.1.0"
+        ];
+      })
+      (sources."ovsx-0.8.4" // {
         dependencies = [
           sources."commander-6.2.1"
         ];
@@ -91421,17 +88649,18 @@ in
       sources."picomatch-2.3.1"
       sources."prebuild-install-7.1.2"
       sources."prelude-ls-1.2.1"
-      sources."prettier-3.2.5"
+      sources."prettier-3.3.0"
       sources."process-nextick-args-2.0.1"
       sources."pump-3.0.0"
       sources."punycode-2.3.1"
-      sources."qs-6.12.0"
+      sources."qs-6.12.1"
       sources."queue-microtask-1.2.3"
       sources."rc-1.2.8"
       sources."read-1.0.7"
       sources."readable-stream-2.3.8"
       sources."require-directory-2.1.1"
       sources."resolve-from-4.0.0"
+      sources."restore-cursor-4.0.0"
       sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
       sources."robust-predicates-3.0.2"
@@ -91439,16 +88668,19 @@ in
       sources."rw-1.3.3"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
-      sources."sax-1.3.0"
-      sources."semver-7.6.0"
+      sources."sax-1.4.1"
+      sources."semver-7.6.2"
       sources."set-function-length-1.2.2"
       sources."setimmediate-1.0.5"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."side-channel-1.0.6"
+      sources."signal-exit-3.0.7"
       sources."simple-concat-1.0.1"
       sources."simple-get-4.0.1"
       sources."slash-3.0.0"
+      sources."stdin-discarder-0.1.0"
+      sources."stoppable-1.1.0"
       sources."string-width-4.2.3"
       sources."string_decoder-1.1.1"
       sources."strip-ansi-6.0.1"
@@ -91457,6 +88689,8 @@ in
       sources."tar-fs-2.1.1"
       (sources."tar-stream-2.2.0" // {
         dependencies = [
+          sources."bl-4.1.0"
+          sources."buffer-5.7.1"
           sources."readable-stream-3.6.2"
         ];
       })
@@ -91470,17 +88704,19 @@ in
       sources."type-check-0.4.0"
       sources."type-fest-0.20.2"
       sources."typed-rest-client-1.8.11"
-      sources."typescript-5.4.2"
+      sources."typescript-5.4.5"
       sources."uc.micro-1.0.6"
       sources."underscore-1.13.6"
       sources."uri-js-4.4.1"
       sources."url-join-4.0.1"
       sources."util-deprecate-1.0.2"
+      sources."uuid-8.3.2"
       sources."vscode-jsonrpc-8.1.0"
       sources."vscode-languageclient-8.1.0"
       sources."vscode-languageserver-protocol-3.17.3"
       sources."vscode-languageserver-types-3.17.3"
       sources."which-2.0.2"
+      sources."word-wrap-1.2.5"
       sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
       sources."xml2js-0.5.0"
@@ -91503,19 +88739,19 @@ in
   sass = nodeEnv.buildNodePackage {
     name = "sass";
     packageName = "sass";
-    version = "1.72.0";
+    version = "1.77.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/sass/-/sass-1.72.0.tgz";
-      sha512 = "Gpczt3WA56Ly0Mn8Sl21Vj94s1axi9hDIzDFn9Ph9x3C3p4nNyvsqJoQyVXKou6cBlfFWEgRW4rT8Tb4i3XnVA==";
+      url = "https://registry.npmjs.org/sass/-/sass-1.77.4.tgz";
+      sha512 = "vcF3Ckow6g939GMA4PeU7b2K/9FALXk2KF9J87txdHzXbUF9XRQRwSxcAs/fGaTnJeBFd7UoV22j3lzMLdM0Pw==";
     };
     dependencies = [
       sources."anymatch-3.1.3"
       sources."binary-extensions-2.3.0"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."chokidar-3.6.0"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."glob-parent-5.1.2"
-      sources."immutable-4.3.5"
+      sources."immutable-4.3.6"
       sources."is-binary-path-2.1.0"
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.3"
@@ -91523,7 +88759,7 @@ in
       sources."normalize-path-3.0.0"
       sources."picomatch-2.3.1"
       sources."readdirp-3.6.0"
-      sources."source-map-js-1.1.0"
+      sources."source-map-js-1.2.0"
       sources."to-regex-range-5.0.1"
     ];
     buildInputs = globalBuildInputs;
@@ -91539,15 +88775,11 @@ in
   semver = nodeEnv.buildNodePackage {
     name = "semver";
     packageName = "semver";
-    version = "7.6.0";
+    version = "7.6.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz";
-      sha512 = "EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==";
+      url = "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz";
+      sha512 = "FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==";
     };
-    dependencies = [
-      sources."lru-cache-6.0.0"
-      sources."yallist-4.0.0"
-    ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "The semantic version parser used by npm.";
@@ -91561,15 +88793,15 @@ in
   serve = nodeEnv.buildNodePackage {
     name = "serve";
     packageName = "serve";
-    version = "14.2.1";
+    version = "14.2.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/serve/-/serve-14.2.1.tgz";
-      sha512 = "48er5fzHh7GCShLnNyPBRPEjs2I6QBozeGr02gaacROiyS/8ARADlj595j39iZXAqBbJHH/ivJJyPRWY9sQWZA==";
+      url = "https://registry.npmjs.org/serve/-/serve-14.2.3.tgz";
+      sha512 = "VqUFMC7K3LDGeGnJM9h56D3XGKb6KGgOw0cVNtA26yYXHCcpxf3xwCTUaQoWlVS7i8Jdh3GjQkOB23qsXyjoyQ==";
     };
     dependencies = [
-      sources."@zeit/schemas-2.29.0"
+      sources."@zeit/schemas-2.36.0"
       sources."accepts-1.3.8"
-      sources."ajv-8.11.0"
+      sources."ajv-8.12.0"
       (sources."ansi-align-3.0.1" // {
         dependencies = [
           sources."string-width-4.2.3"
@@ -91706,7 +88938,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.12.0"
+      sources."aws4-1.13.0"
       sources."base64-arraybuffer-0.1.2"
       sources."base64id-0.1.0"
       sources."bcrypt-nodejs-0.0.3"
@@ -91726,11 +88958,15 @@ in
       sources."component-inherit-0.0.3"
       sources."content-disposition-0.5.4"
       sources."content-type-1.0.5"
-      sources."cookie-0.5.0"
+      sources."cookie-0.6.0"
       sources."cookie-signature-1.0.6"
       sources."core-util-is-1.0.3"
       sources."dashdash-1.14.1"
-      sources."debug-2.6.9"
+      (sources."debug-2.6.9" // {
+        dependencies = [
+          sources."ms-2.0.0"
+        ];
+      })
       sources."define-data-property-1.1.4"
       sources."delayed-stream-1.0.0"
       sources."depd-2.0.0"
@@ -91765,7 +89001,7 @@ in
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
       sources."event-stream-3.3.5"
-      sources."express-4.18.3"
+      sources."express-4.19.2"
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
       sources."fast-deep-equal-3.1.3"
@@ -91823,7 +89059,7 @@ in
       sources."minimist-1.2.8"
       sources."mkdirp-0.5.6"
       sources."moment-2.7.0"
-      sources."ms-2.0.0"
+      sources."ms-2.1.3"
       sources."mute-stream-0.0.8"
       sources."nan-0.3.2"
       sources."negotiator-0.6.3"
@@ -91854,11 +89090,7 @@ in
       })
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      (sources."send-0.18.0" // {
-        dependencies = [
-          sources."ms-2.1.3"
-        ];
-      })
+      sources."send-0.18.0"
       sources."serve-static-1.15.0"
       sources."set-function-length-1.2.2"
       sources."setprototypeof-1.2.0"
@@ -92120,23 +89352,23 @@ in
       sha512 = "DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==";
     };
     dependencies = [
-      sources."@socket.io/component-emitter-3.1.0"
+      sources."@socket.io/component-emitter-3.1.2"
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.17"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."accepts-1.3.8"
       sources."base64id-2.0.0"
       sources."bufferutil-4.0.8"
       sources."cookie-0.4.2"
       sources."cors-2.8.5"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."engine.io-6.5.4"
       sources."engine.io-parser-5.2.2"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
       sources."ms-2.1.2"
       sources."negotiator-0.6.3"
-      sources."node-gyp-build-4.8.0"
+      sources."node-gyp-build-4.8.1"
       sources."object-assign-4.1.1"
       sources."socket.io-adapter-2.5.4"
       sources."socket.io-parser-4.2.4"
@@ -92164,18 +89396,9 @@ in
       sha512 = "CIlLQsG8ffQ2B+2A/s3rXiaTXDWlEKBMya64ajzDcpDZ8bpB5dOyznWQJB+lyUn6/lJ8P+5xe4jKO60S6yLoMw==";
     };
     dependencies = [
-      (sources."@babel/code-frame-7.23.5" // {
-        dependencies = [
-          sources."ansi-styles-3.2.1"
-          sources."chalk-2.4.2"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."has-flag-3.0.0"
-          sources."supports-color-5.5.0"
-        ];
-      })
-      sources."@babel/helper-validator-identifier-7.22.20"
-      (sources."@babel/highlight-7.23.4" // {
+      sources."@babel/code-frame-7.24.6"
+      sources."@babel/helper-validator-identifier-7.24.6"
+      (sources."@babel/highlight-7.24.6" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -92265,6 +89488,7 @@ in
       sources."p-locate-5.0.0"
       sources."parse-json-5.2.0"
       sources."path-exists-4.0.0"
+      sources."picocolors-1.0.1"
       sources."quick-lru-5.1.1"
       sources."read-pkg-6.0.0"
       sources."read-pkg-up-8.0.0"
@@ -92273,8 +89497,8 @@ in
       sources."restore-cursor-4.0.0"
       sources."round-to-6.0.0"
       sources."safe-buffer-5.2.1"
-      sources."sax-1.3.0"
-      sources."semver-7.6.0"
+      sources."sax-1.4.1"
+      sources."semver-7.6.2"
       sources."signal-exit-3.0.7"
       (sources."slice-ansi-5.0.0" // {
         dependencies = [
@@ -92284,7 +89508,7 @@ in
       sources."spdx-correct-3.2.0"
       sources."spdx-exceptions-2.5.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.17"
+      sources."spdx-license-ids-3.0.18"
       (sources."speedtest-net-1.6.2" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
@@ -92330,10 +89554,10 @@ in
   sql-formatter = nodeEnv.buildNodePackage {
     name = "sql-formatter";
     packageName = "sql-formatter";
-    version = "15.3.0";
+    version = "15.3.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/sql-formatter/-/sql-formatter-15.3.0.tgz";
-      sha512 = "1aDYVEX+dwOSCkRYns4HEGupRZoaivcsNpU4IzR+MVC+cWFYK9/dce7pr4aId4+ED2iK9PNs3j1Vdf8C+SIvDg==";
+      url = "https://registry.npmjs.org/sql-formatter/-/sql-formatter-15.3.1.tgz";
+      sha512 = "L/dqan+Hrt0PpPdCbHcI9bdfOvqaQZR7v5c5SWMJ3bUGQSezK09Mm9q2I3B4iObjaq7FyoldIM+fDSmfzGRXCA==";
     };
     dependencies = [
       sources."argparse-2.0.1"
@@ -92377,34 +89601,34 @@ in
   svelte-check = nodeEnv.buildNodePackage {
     name = "svelte-check";
     packageName = "svelte-check";
-    version = "3.6.7";
+    version = "3.8.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/svelte-check/-/svelte-check-3.6.7.tgz";
-      sha512 = "tKEjemK9FYCySAseCaIt+ps5o0XRvLC7ECjyJXXtO7vOQhR9E6JavgoUbGP1PCulD2OTcB/fi9RjV3nyF1AROw==";
+      url = "https://registry.npmjs.org/svelte-check/-/svelte-check-3.8.0.tgz";
+      sha512 = "7Nxn+3X97oIvMzYJ7t27w00qUf1Y52irE2RU2dQAd5PyvfGp4E7NLhFKVhb6PV2fx7dCRMpNKDIuazmGthjpSQ==";
     };
     dependencies = [
       sources."@ampproject/remapping-2.3.0"
-      sources."@babel/code-frame-7.23.5"
-      sources."@babel/compat-data-7.23.5"
-      sources."@babel/core-7.24.0"
-      sources."@babel/generator-7.23.6"
-      sources."@babel/helper-compilation-targets-7.23.6"
-      sources."@babel/helper-environment-visitor-7.22.20"
-      sources."@babel/helper-function-name-7.23.0"
-      sources."@babel/helper-hoist-variables-7.22.5"
-      sources."@babel/helper-module-imports-7.22.15"
-      sources."@babel/helper-module-transforms-7.23.3"
-      sources."@babel/helper-simple-access-7.22.5"
-      sources."@babel/helper-split-export-declaration-7.22.6"
-      sources."@babel/helper-string-parser-7.23.4"
-      sources."@babel/helper-validator-identifier-7.22.20"
-      sources."@babel/helper-validator-option-7.23.5"
-      sources."@babel/helpers-7.24.0"
-      sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.24.0"
-      sources."@babel/template-7.24.0"
-      sources."@babel/traverse-7.24.0"
-      sources."@babel/types-7.24.0"
+      sources."@babel/code-frame-7.24.6"
+      sources."@babel/compat-data-7.24.6"
+      sources."@babel/core-7.24.6"
+      sources."@babel/generator-7.24.6"
+      sources."@babel/helper-compilation-targets-7.24.6"
+      sources."@babel/helper-environment-visitor-7.24.6"
+      sources."@babel/helper-function-name-7.24.6"
+      sources."@babel/helper-hoist-variables-7.24.6"
+      sources."@babel/helper-module-imports-7.24.6"
+      sources."@babel/helper-module-transforms-7.24.6"
+      sources."@babel/helper-simple-access-7.24.6"
+      sources."@babel/helper-split-export-declaration-7.24.6"
+      sources."@babel/helper-string-parser-7.24.6"
+      sources."@babel/helper-validator-identifier-7.24.6"
+      sources."@babel/helper-validator-option-7.24.6"
+      sources."@babel/helpers-7.24.6"
+      sources."@babel/highlight-7.24.6"
+      sources."@babel/parser-7.24.6"
+      sources."@babel/template-7.24.6"
+      sources."@babel/traverse-7.24.6"
+      sources."@babel/types-7.24.6"
       sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
       sources."@jridgewell/set-array-1.2.1"
@@ -92432,12 +89656,12 @@ in
       sources."balanced-match-1.0.2"
       sources."binary-extensions-2.3.0"
       sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."browserslist-4.23.0"
       sources."buffer-crc32-0.2.13"
       sources."call-bind-1.0.7"
       sources."callsites-3.1.0"
-      sources."caniuse-lite-1.0.30001599"
+      sources."caniuse-lite-1.0.30001627"
       sources."chalk-2.4.2"
       sources."character-parser-2.2.0"
       sources."chokidar-3.6.0"
@@ -92449,28 +89673,30 @@ in
       sources."convert-source-map-2.0.0"
       sources."copy-anything-2.0.6"
       sources."css-3.0.0"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."decode-uri-component-0.2.2"
       sources."define-data-property-1.1.4"
       sources."dequal-2.0.3"
       sources."detect-indent-6.1.0"
       sources."doctypes-1.1.0"
-      sources."electron-to-chromium-1.4.710"
+      sources."electron-to-chromium-1.4.789"
       sources."errno-0.1.8"
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
       sources."es6-promise-3.3.1"
+      sources."esbuild-0.20.2"
       sources."escalade-3.1.2"
       sources."escape-string-regexp-1.0.5"
       sources."esm-env-1.0.0"
-      sources."esrap-1.2.1"
+      sources."esrap-1.2.2"
       sources."fast-glob-3.3.2"
       sources."fastq-1.17.1"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.2"
       sources."gensync-1.0.0-beta.2"
       sources."get-intrinsic-1.2.4"
+      sources."get-tsconfig-4.7.5"
       sources."glob-7.2.3"
       sources."glob-parent-5.1.2"
       sources."globals-11.12.0"
@@ -92484,7 +89710,7 @@ in
       sources."hasown-2.0.2"
       sources."iconv-lite-0.6.3"
       sources."image-size-0.5.5"
-      sources."immutable-4.3.5"
+      sources."immutable-4.3.6"
       sources."import-fresh-3.3.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -92508,14 +89734,14 @@ in
       sources."lilconfig-3.1.1"
       sources."locate-character-3.0.0"
       sources."lru-cache-5.1.1"
-      sources."magic-string-0.30.8"
+      sources."magic-string-0.30.10"
       (sources."make-dir-2.1.0" // {
         dependencies = [
           sources."semver-5.7.2"
         ];
       })
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."mime-1.6.0"
       sources."min-indent-1.0.1"
       sources."minimatch-3.1.2"
@@ -92533,17 +89759,17 @@ in
       sources."parse-node-version-1.0.1"
       sources."path-is-absolute-1.0.1"
       sources."path-parse-1.0.7"
-      sources."picocolors-1.0.0"
+      sources."picocolors-1.0.1"
       sources."picomatch-2.3.1"
       sources."pify-4.0.1"
-      sources."postcss-8.4.36"
-      sources."postcss-load-config-5.0.3"
+      sources."postcss-8.4.38"
+      sources."postcss-load-config-5.1.0"
       sources."promise-7.3.1"
       sources."prr-1.0.1"
-      sources."pug-3.0.2"
+      sources."pug-3.0.3"
       sources."pug-attrs-3.0.0"
-      sources."pug-code-gen-3.0.2"
-      sources."pug-error-2.0.0"
+      sources."pug-code-gen-3.0.3"
+      sources."pug-error-2.1.0"
       sources."pug-filters-4.0.0"
       sources."pug-lexer-5.0.1"
       sources."pug-linker-4.0.0"
@@ -92556,19 +89782,20 @@ in
       sources."readdirp-3.6.0"
       sources."resolve-1.22.8"
       sources."resolve-from-4.0.0"
+      sources."resolve-pkg-maps-1.0.0"
       sources."reusify-1.0.4"
       sources."rimraf-2.7.1"
       sources."run-parallel-1.2.0"
       sources."sade-1.8.1"
       sources."safer-buffer-2.1.2"
       sources."sander-0.5.1"
-      sources."sass-1.72.0"
-      sources."sax-1.3.0"
+      sources."sass-1.77.4"
+      sources."sax-1.4.1"
       sources."semver-6.3.1"
       sources."set-function-length-1.2.2"
       sources."sorcery-0.11.0"
       sources."source-map-0.6.1"
-      sources."source-map-js-1.1.0"
+      sources."source-map-js-1.2.0"
       sources."source-map-resolve-0.6.0"
       sources."strip-indent-3.0.0"
       (sources."stylus-0.55.0" // {
@@ -92583,23 +89810,24 @@ in
       sources."sugarss-4.0.1"
       sources."supports-color-5.5.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
-      (sources."svelte-5.0.0-next.80" // {
+      (sources."svelte-5.0.0-next.149" // {
         dependencies = [
           sources."acorn-8.11.3"
         ];
       })
-      sources."svelte-preprocess-5.1.3"
+      sources."svelte-preprocess-5.1.4"
       sources."to-fast-properties-2.0.0"
       sources."to-regex-range-5.0.1"
       sources."token-stream-1.0.0"
       sources."tslib-2.6.2"
-      sources."typescript-5.4.2"
-      sources."update-browserslist-db-1.0.13"
+      sources."tsx-4.11.2"
+      sources."typescript-5.4.5"
+      sources."update-browserslist-db-1.0.16"
       sources."void-elements-3.1.0"
       sources."with-7.0.2"
       sources."wrappy-1.0.2"
       sources."yallist-3.1.1"
-      sources."yaml-2.4.1"
+      sources."yaml-2.4.3"
       sources."zimmerframe-1.1.2"
     ];
     buildInputs = globalBuildInputs;
@@ -92612,271 +89840,13 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
-  svelte-language-server = nodeEnv.buildNodePackage {
-    name = "svelte-language-server";
-    packageName = "svelte-language-server";
-    version = "0.16.5";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/svelte-language-server/-/svelte-language-server-0.16.5.tgz";
-      sha512 = "gzGlDikWDQZn+ccX0hyCamzGuTEXMwGNiXOXiNBtK+HJg+aL7wKcHnjwHg72K4K5s85OIYZE0zUj6JXjkAJkKQ==";
-    };
-    dependencies = [
-      sources."@ampproject/remapping-2.3.0"
-      sources."@babel/code-frame-7.23.5"
-      sources."@babel/compat-data-7.23.5"
-      sources."@babel/core-7.24.0"
-      sources."@babel/generator-7.23.6"
-      sources."@babel/helper-compilation-targets-7.23.6"
-      sources."@babel/helper-environment-visitor-7.22.20"
-      sources."@babel/helper-function-name-7.23.0"
-      sources."@babel/helper-hoist-variables-7.22.5"
-      sources."@babel/helper-module-imports-7.22.15"
-      sources."@babel/helper-module-transforms-7.23.3"
-      sources."@babel/helper-simple-access-7.22.5"
-      sources."@babel/helper-split-export-declaration-7.22.6"
-      sources."@babel/helper-string-parser-7.23.4"
-      sources."@babel/helper-validator-identifier-7.22.20"
-      sources."@babel/helper-validator-option-7.23.5"
-      sources."@babel/helpers-7.24.0"
-      sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.24.0"
-      sources."@babel/template-7.24.0"
-      sources."@babel/traverse-7.24.0"
-      sources."@babel/types-7.24.0"
-      sources."@emmetio/abbreviation-2.3.3"
-      sources."@emmetio/css-abbreviation-2.1.8"
-      sources."@emmetio/scanner-1.0.4"
-      sources."@jridgewell/gen-mapping-0.3.5"
-      sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.2.1"
-      sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.25"
-      sources."@nodelib/fs.scandir-2.1.5"
-      sources."@nodelib/fs.stat-2.0.5"
-      sources."@nodelib/fs.walk-1.2.8"
-      sources."@types/pug-2.0.10"
-      (sources."@vscode/emmet-helper-2.8.4" // {
-        dependencies = [
-          sources."vscode-uri-2.1.2"
-        ];
-      })
-      sources."@vscode/l10n-0.0.18"
-      sources."acorn-7.4.1"
-      sources."ansi-styles-3.2.1"
-      sources."anymatch-3.1.3"
-      sources."asap-2.0.6"
-      sources."assert-never-1.2.1"
-      sources."atob-2.1.2"
-      sources."babel-walk-3.0.0-canary-5"
-      sources."balanced-match-1.0.2"
-      sources."binary-extensions-2.3.0"
-      sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
-      sources."browserslist-4.23.0"
-      sources."buffer-crc32-0.2.13"
-      sources."call-bind-1.0.7"
-      sources."caniuse-lite-1.0.30001599"
-      sources."chalk-2.4.2"
-      sources."character-parser-2.2.0"
-      sources."chokidar-3.6.0"
-      sources."coffeescript-2.7.0"
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
-      sources."concat-map-0.0.1"
-      sources."constantinople-4.0.1"
-      sources."convert-source-map-2.0.0"
-      sources."copy-anything-2.0.6"
-      sources."css-3.0.0"
-      sources."debug-4.3.4"
-      sources."decode-uri-component-0.2.2"
-      sources."dedent-js-1.0.1"
-      sources."define-data-property-1.1.4"
-      sources."detect-indent-6.1.0"
-      sources."doctypes-1.1.0"
-      sources."electron-to-chromium-1.4.710"
-      sources."emmet-2.4.7"
-      sources."errno-0.1.8"
-      sources."es-define-property-1.0.0"
-      sources."es-errors-1.3.0"
-      sources."es6-promise-3.3.1"
-      sources."escalade-3.1.2"
-      sources."escape-string-regexp-1.0.5"
-      sources."estree-walker-2.0.2"
-      sources."fast-glob-3.3.2"
-      sources."fastq-1.17.1"
-      sources."fill-range-7.0.1"
-      sources."fs.realpath-1.0.0"
-      sources."function-bind-1.1.2"
-      sources."gensync-1.0.0-beta.2"
-      sources."get-intrinsic-1.2.4"
-      sources."glob-7.2.3"
-      sources."glob-parent-5.1.2"
-      sources."globals-11.12.0"
-      sources."gopd-1.0.1"
-      sources."graceful-fs-4.2.11"
-      sources."has-flag-3.0.0"
-      sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.3"
-      sources."has-symbols-1.0.3"
-      sources."has-tostringtag-1.0.2"
-      sources."hasown-2.0.2"
-      sources."iconv-lite-0.6.3"
-      sources."image-size-0.5.5"
-      sources."immutable-4.3.5"
-      sources."inflight-1.0.6"
-      sources."inherits-2.0.4"
-      sources."is-binary-path-2.1.0"
-      sources."is-core-module-2.13.1"
-      sources."is-expression-4.0.0"
-      sources."is-extglob-2.1.1"
-      sources."is-glob-4.0.3"
-      sources."is-number-7.0.0"
-      sources."is-promise-2.2.2"
-      sources."is-regex-1.1.4"
-      sources."is-what-3.14.1"
-      sources."jiti-1.21.0"
-      sources."js-stringify-1.0.2"
-      sources."js-tokens-4.0.0"
-      sources."jsesc-2.5.2"
-      sources."json5-2.2.3"
-      sources."jsonc-parser-2.3.1"
-      sources."jstransformer-1.0.0"
-      sources."less-4.2.0"
-      sources."lilconfig-3.1.1"
-      sources."lodash-4.17.21"
-      sources."lower-case-2.0.2"
-      sources."lru-cache-5.1.1"
-      sources."magic-string-0.30.8"
-      (sources."make-dir-2.1.0" // {
-        dependencies = [
-          sources."semver-5.7.2"
-        ];
-      })
-      sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
-      sources."mime-1.6.0"
-      sources."min-indent-1.0.1"
-      sources."minimatch-3.1.2"
-      sources."minimist-1.2.8"
-      sources."mkdirp-0.5.6"
-      sources."ms-2.1.2"
-      sources."nanoid-3.3.7"
-      sources."needle-3.3.1"
-      sources."no-case-3.0.4"
-      sources."node-releases-2.0.14"
-      sources."normalize-path-3.0.0"
-      sources."object-assign-4.1.1"
-      sources."once-1.4.0"
-      sources."parse-node-version-1.0.1"
-      sources."pascal-case-3.1.2"
-      sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.7"
-      sources."picocolors-1.0.0"
-      sources."picomatch-2.3.1"
-      sources."pify-4.0.1"
-      sources."postcss-8.4.36"
-      sources."postcss-load-config-5.0.3"
-      sources."prettier-3.2.5"
-      sources."prettier-plugin-svelte-3.2.2"
-      sources."promise-7.3.1"
-      sources."prr-1.0.1"
-      sources."pug-3.0.2"
-      sources."pug-attrs-3.0.0"
-      sources."pug-code-gen-3.0.2"
-      sources."pug-error-2.0.0"
-      sources."pug-filters-4.0.0"
-      sources."pug-lexer-5.0.1"
-      sources."pug-linker-4.0.0"
-      sources."pug-load-3.0.0"
-      sources."pug-parser-6.0.0"
-      sources."pug-runtime-3.0.1"
-      sources."pug-strip-comments-2.0.0"
-      sources."pug-walk-2.0.0"
-      sources."queue-microtask-1.2.3"
-      sources."readdirp-3.6.0"
-      sources."resolve-1.22.8"
-      sources."reusify-1.0.4"
-      sources."rimraf-2.7.1"
-      sources."run-parallel-1.2.0"
-      sources."safer-buffer-2.1.2"
-      sources."sander-0.5.1"
-      sources."sass-1.72.0"
-      sources."sax-1.3.0"
-      sources."semver-6.3.1"
-      sources."set-function-length-1.2.2"
-      sources."sorcery-0.11.0"
-      sources."source-map-0.6.1"
-      sources."source-map-js-1.1.0"
-      sources."source-map-resolve-0.6.0"
-      sources."strip-indent-3.0.0"
-      (sources."stylus-0.55.0" // {
-        dependencies = [
-          sources."debug-3.1.0"
-          sources."mkdirp-1.0.4"
-          sources."ms-2.0.0"
-          sources."sax-1.2.4"
-          sources."source-map-0.7.4"
-        ];
-      })
-      sources."sugarss-4.0.1"
-      sources."supports-color-5.5.0"
-      sources."supports-preserve-symlinks-flag-1.0.0"
-      sources."svelte-3.59.2"
-      sources."svelte-preprocess-5.1.3"
-      sources."svelte2tsx-0.7.4"
-      sources."to-fast-properties-2.0.0"
-      sources."to-regex-range-5.0.1"
-      sources."token-stream-1.0.0"
-      sources."tslib-2.6.2"
-      sources."typescript-5.4.2"
-      (sources."typescript-auto-import-cache-0.3.2" // {
-        dependencies = [
-          sources."lru-cache-6.0.0"
-          sources."semver-7.6.0"
-          sources."yallist-4.0.0"
-        ];
-      })
-      sources."update-browserslist-db-1.0.13"
-      sources."void-elements-3.1.0"
-      (sources."vscode-css-languageservice-6.2.12" // {
-        dependencies = [
-          sources."vscode-languageserver-types-3.17.5"
-        ];
-      })
-      (sources."vscode-html-languageservice-5.1.2" // {
-        dependencies = [
-          sources."vscode-languageserver-types-3.17.5"
-        ];
-      })
-      sources."vscode-jsonrpc-8.0.2"
-      sources."vscode-languageserver-8.0.2"
-      sources."vscode-languageserver-protocol-3.17.2"
-      sources."vscode-languageserver-textdocument-1.0.11"
-      sources."vscode-languageserver-types-3.17.2"
-      sources."vscode-nls-5.2.0"
-      sources."vscode-uri-3.0.8"
-      sources."with-7.0.2"
-      sources."wrappy-1.0.2"
-      sources."yallist-3.1.1"
-      sources."yaml-2.4.1"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "A language server for Svelte";
-      homepage = "https://github.com/sveltejs/language-tools#readme";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
   svgo = nodeEnv.buildNodePackage {
     name = "svgo";
     packageName = "svgo";
-    version = "3.2.0";
+    version = "3.3.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/svgo/-/svgo-3.2.0.tgz";
-      sha512 = "4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==";
+      url = "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz";
+      sha512 = "OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==";
     };
     dependencies = [
       sources."@trysound/sax-0.2.0"
@@ -92898,8 +89868,8 @@ in
       sources."entities-4.5.0"
       sources."mdn-data-2.0.30"
       sources."nth-check-2.1.1"
-      sources."picocolors-1.0.0"
-      sources."source-map-js-1.1.0"
+      sources."picocolors-1.0.1"
+      sources."source-map-js-1.2.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -92914,37 +89884,37 @@ in
   tailwindcss = nodeEnv.buildNodePackage {
     name = "tailwindcss";
     packageName = "tailwindcss";
-    version = "3.4.1";
+    version = "3.4.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz";
-      sha512 = "qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==";
+      url = "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz";
+      sha512 = "U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==";
     };
     dependencies = [
       sources."@alloc/quick-lru-5.2.0"
-      sources."@cspotcode/source-map-support-0.8.1"
-      sources."@isaacs/cliui-8.0.2"
-      (sources."@jridgewell/gen-mapping-0.3.5" // {
+      (sources."@cspotcode/source-map-support-0.8.1" // {
         dependencies = [
-          sources."@jridgewell/trace-mapping-0.3.25"
+          sources."@jridgewell/trace-mapping-0.3.9"
         ];
       })
+      sources."@isaacs/cliui-8.0.2"
+      sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
       sources."@jridgewell/set-array-1.2.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.9"
+      sources."@jridgewell/trace-mapping-0.3.25"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@swc/core-1.4.8"
+      sources."@swc/core-1.5.24"
       sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.7"
-      sources."@swc/types-0.1.6"
-      sources."@swc/wasm-1.4.8"
-      sources."@tsconfig/node10-1.0.9"
+      sources."@swc/helpers-0.5.11"
+      sources."@swc/types-0.1.7"
+      sources."@swc/wasm-1.5.24"
+      sources."@tsconfig/node10-1.0.11"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."acorn-8.11.3"
       sources."acorn-walk-8.3.2"
       sources."ansi-regex-5.0.1"
@@ -92955,7 +89925,7 @@ in
       sources."balanced-match-1.0.2"
       sources."binary-extensions-2.3.0"
       sources."brace-expansion-2.0.1"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."camelcase-css-2.0.1"
       (sources."chokidar-3.6.0" // {
         dependencies = [
@@ -92979,10 +89949,10 @@ in
         ];
       })
       sources."fastq-1.17.1"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."foreground-child-3.1.1"
       sources."function-bind-1.1.2"
-      sources."glob-10.3.10"
+      sources."glob-10.4.1"
       sources."glob-parent-6.0.2"
       sources."hasown-2.0.2"
       sources."is-binary-path-2.1.0"
@@ -92992,16 +89962,16 @@ in
       sources."is-glob-4.0.3"
       sources."is-number-7.0.0"
       sources."isexe-2.0.0"
-      sources."jackspeak-2.3.6"
+      sources."jackspeak-3.2.3"
       sources."jiti-1.21.0"
       sources."lilconfig-2.1.0"
       sources."lines-and-columns-1.2.4"
-      sources."lru-cache-10.2.0"
+      sources."lru-cache-10.2.2"
       sources."make-error-1.3.6"
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
-      sources."minimatch-9.0.3"
-      sources."minipass-7.0.4"
+      sources."micromatch-4.0.7"
+      sources."minimatch-9.0.4"
+      sources."minipass-7.1.2"
       sources."mz-2.7.0"
       sources."nanoid-3.3.7"
       sources."normalize-path-3.0.0"
@@ -93009,12 +89979,12 @@ in
       sources."object-hash-3.0.0"
       sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
-      sources."path-scurry-1.10.1"
-      sources."picocolors-1.0.0"
+      sources."path-scurry-1.11.1"
+      sources."picocolors-1.0.1"
       sources."picomatch-2.3.1"
       sources."pify-2.3.0"
       sources."pirates-4.0.6"
-      sources."postcss-8.4.36"
+      sources."postcss-8.4.38"
       sources."postcss-import-15.1.0"
       sources."postcss-js-4.0.1"
       (sources."postcss-load-config-4.0.2" // {
@@ -93023,7 +89993,7 @@ in
         ];
       })
       sources."postcss-nested-6.0.1"
-      sources."postcss-selector-parser-6.0.16"
+      sources."postcss-selector-parser-6.1.0"
       sources."postcss-value-parser-4.2.0"
       sources."queue-microtask-1.2.3"
       sources."read-cache-1.0.0"
@@ -93034,7 +90004,7 @@ in
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-4.1.0"
-      sources."source-map-js-1.1.0"
+      sources."source-map-js-1.2.0"
       sources."string-width-5.1.2"
       (sources."string-width-cjs-4.2.3" // {
         dependencies = [
@@ -93060,7 +90030,7 @@ in
         ];
       })
       sources."tslib-2.6.2"
-      sources."typescript-5.4.2"
+      sources."typescript-5.4.5"
       sources."undici-types-5.26.5"
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-lib-3.0.1"
@@ -93074,7 +90044,7 @@ in
           sources."strip-ansi-6.0.1"
         ];
       })
-      sources."yaml-2.4.1"
+      sources."yaml-2.4.3"
       sources."yn-3.1.1"
     ];
     buildInputs = globalBuildInputs;
@@ -93097,7 +90067,7 @@ in
     };
     dependencies = [
       sources."node-addon-api-4.3.0"
-      sources."node-gyp-build-4.8.0"
+      sources."node-gyp-build-4.8.1"
       sources."q-1.5.1"
       sources."usb-1.9.2"
     ];
@@ -93160,1221 +90130,6 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
-  textlint = nodeEnv.buildNodePackage {
-    name = "textlint";
-    packageName = "textlint";
-    version = "14.0.4";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint/-/textlint-14.0.4.tgz";
-      sha512 = "xPQkC/BftPjizjs31wci/791EjwfN11iRLrNKiPVBogYd1r+6TnSxbCERZhgXCGcD9tEHss0kOYc0+vPEEG8jg==";
-    };
-    dependencies = [
-      sources."@aashutoshrathi/word-wrap-1.2.6"
-      sources."@azu/format-text-1.0.2"
-      sources."@azu/style-format-1.0.1"
-      sources."@textlint/ast-node-types-14.0.4"
-      sources."@textlint/ast-tester-14.0.4"
-      sources."@textlint/ast-traverse-14.0.4"
-      sources."@textlint/config-loader-14.0.4"
-      sources."@textlint/feature-flag-14.0.4"
-      sources."@textlint/fixer-formatter-14.0.4"
-      sources."@textlint/kernel-14.0.4"
-      sources."@textlint/linter-formatter-14.0.4"
-      sources."@textlint/markdown-to-ast-14.0.4"
-      sources."@textlint/module-interop-14.0.4"
-      sources."@textlint/source-code-fixer-14.0.4"
-      sources."@textlint/text-to-ast-14.0.4"
-      sources."@textlint/textlint-plugin-markdown-14.0.4"
-      sources."@textlint/textlint-plugin-text-14.0.4"
-      sources."@textlint/types-14.0.4"
-      sources."@textlint/utils-14.0.4"
-      sources."@types/mdast-3.0.15"
-      sources."@types/unist-2.0.10"
-      sources."ajv-8.12.0"
-      sources."ansi-regex-5.0.1"
-      sources."ansi-styles-4.3.0"
-      sources."argparse-1.0.10"
-      sources."astral-regex-2.0.0"
-      sources."bail-1.0.5"
-      sources."balanced-match-1.0.2"
-      sources."boundary-2.0.0"
-      sources."brace-expansion-1.1.11"
-      sources."ccount-1.1.0"
-      sources."chalk-4.1.2"
-      sources."character-entities-1.2.4"
-      sources."character-entities-legacy-1.1.4"
-      sources."character-reference-invalid-1.1.4"
-      sources."charenc-0.0.2"
-      sources."color-convert-2.0.1"
-      sources."color-name-1.1.4"
-      sources."concat-map-0.0.1"
-      sources."crypt-0.0.2"
-      sources."debug-4.3.4"
-      sources."deep-is-0.1.4"
-      sources."diff-5.2.0"
-      sources."emoji-regex-8.0.0"
-      sources."error-ex-1.3.2"
-      sources."escape-string-regexp-4.0.0"
-      sources."esprima-4.0.1"
-      sources."extend-3.0.2"
-      sources."fast-deep-equal-3.1.3"
-      sources."fast-equals-4.0.3"
-      sources."fast-levenshtein-2.0.6"
-      sources."fault-1.0.4"
-      sources."file-entry-cache-5.0.1"
-      sources."find-up-2.1.0"
-      sources."flat-cache-2.0.1"
-      sources."flatted-2.0.2"
-      sources."format-0.2.2"
-      sources."fs.realpath-1.0.0"
-      sources."function-bind-1.1.2"
-      sources."get-stdin-5.0.1"
-      sources."glob-7.2.3"
-      sources."graceful-fs-4.2.11"
-      sources."has-flag-4.0.0"
-      sources."hasown-2.0.2"
-      sources."hosted-git-info-2.8.9"
-      sources."inflight-1.0.6"
-      sources."inherits-2.0.4"
-      sources."is-alphabetical-1.0.4"
-      sources."is-alphanumerical-1.0.4"
-      sources."is-arrayish-0.2.1"
-      sources."is-buffer-2.0.5"
-      sources."is-core-module-2.13.1"
-      sources."is-decimal-1.0.4"
-      sources."is-fullwidth-code-point-3.0.0"
-      sources."is-hexadecimal-1.0.4"
-      sources."is-plain-obj-2.1.0"
-      sources."is-utf8-0.2.1"
-      sources."js-yaml-3.14.1"
-      sources."json-parse-better-errors-1.0.2"
-      sources."json-schema-traverse-1.0.0"
-      sources."json5-2.2.3"
-      sources."levn-0.4.1"
-      sources."load-json-file-1.1.0"
-      sources."locate-path-2.0.0"
-      sources."lodash-4.17.21"
-      sources."lodash.truncate-4.4.2"
-      sources."longest-streak-2.0.4"
-      sources."markdown-table-2.0.0"
-      (sources."md5-2.3.0" // {
-        dependencies = [
-          sources."is-buffer-1.1.6"
-        ];
-      })
-      sources."mdast-util-find-and-replace-1.1.1"
-      sources."mdast-util-footnote-0.1.7"
-      sources."mdast-util-from-markdown-0.8.5"
-      sources."mdast-util-frontmatter-0.2.0"
-      sources."mdast-util-gfm-0.1.2"
-      sources."mdast-util-gfm-autolink-literal-0.1.3"
-      sources."mdast-util-gfm-strikethrough-0.2.3"
-      sources."mdast-util-gfm-table-0.1.6"
-      sources."mdast-util-gfm-task-list-item-0.1.6"
-      sources."mdast-util-to-markdown-0.6.5"
-      sources."mdast-util-to-string-2.0.0"
-      sources."micromark-2.11.4"
-      sources."micromark-extension-footnote-0.3.2"
-      sources."micromark-extension-frontmatter-0.2.2"
-      sources."micromark-extension-gfm-0.3.3"
-      sources."micromark-extension-gfm-autolink-literal-0.5.7"
-      sources."micromark-extension-gfm-strikethrough-0.6.5"
-      sources."micromark-extension-gfm-table-0.4.3"
-      sources."micromark-extension-gfm-tagfilter-0.3.0"
-      sources."micromark-extension-gfm-task-list-item-0.3.3"
-      sources."minimatch-3.1.2"
-      sources."minimist-1.2.8"
-      sources."mkdirp-0.5.6"
-      sources."ms-2.1.2"
-      sources."normalize-package-data-2.5.0"
-      sources."once-1.4.0"
-      sources."optionator-0.9.3"
-      sources."p-limit-1.3.0"
-      sources."p-locate-2.0.0"
-      sources."p-try-1.0.0"
-      sources."parse-entities-2.0.0"
-      sources."parse-json-2.2.0"
-      sources."path-exists-3.0.0"
-      sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.7"
-      sources."path-to-glob-pattern-2.0.1"
-      sources."path-type-1.1.0"
-      sources."pify-2.3.0"
-      sources."pinkie-2.0.4"
-      sources."pinkie-promise-2.0.1"
-      sources."pluralize-2.0.0"
-      sources."prelude-ls-1.2.1"
-      sources."punycode-2.3.1"
-      (sources."rc-config-loader-4.1.3" // {
-        dependencies = [
-          sources."argparse-2.0.1"
-          sources."js-yaml-4.1.0"
-        ];
-      })
-      sources."read-pkg-1.1.0"
-      (sources."read-pkg-up-3.0.0" // {
-        dependencies = [
-          sources."load-json-file-4.0.0"
-          sources."parse-json-4.0.0"
-          sources."path-type-3.0.0"
-          sources."pify-3.0.0"
-          sources."read-pkg-3.0.0"
-          sources."strip-bom-3.0.0"
-        ];
-      })
-      sources."remark-footnotes-3.0.0"
-      sources."remark-frontmatter-3.0.0"
-      sources."remark-gfm-1.0.0"
-      sources."remark-parse-9.0.0"
-      sources."repeat-string-1.6.1"
-      sources."require-from-string-2.0.2"
-      sources."resolve-1.22.8"
-      sources."rimraf-2.6.3"
-      sources."semver-5.7.2"
-      sources."slice-ansi-4.0.0"
-      sources."spdx-correct-3.2.0"
-      sources."spdx-exceptions-2.5.0"
-      sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.17"
-      sources."sprintf-js-1.0.3"
-      sources."string-width-4.2.3"
-      sources."strip-ansi-6.0.1"
-      sources."strip-bom-2.0.0"
-      sources."structured-source-4.0.0"
-      sources."supports-color-7.2.0"
-      sources."supports-preserve-symlinks-flag-1.0.0"
-      sources."table-6.8.1"
-      sources."text-table-0.2.0"
-      sources."traverse-0.6.8"
-      sources."trough-1.0.5"
-      sources."try-resolve-1.0.1"
-      sources."type-check-0.4.0"
-      sources."unified-9.2.2"
-      sources."unique-concat-0.2.2"
-      sources."unist-util-is-4.1.0"
-      sources."unist-util-stringify-position-2.0.3"
-      sources."unist-util-visit-parents-3.1.1"
-      sources."uri-js-4.4.1"
-      sources."validate-npm-package-license-3.0.4"
-      sources."vfile-4.2.1"
-      sources."vfile-message-2.0.4"
-      sources."wrappy-1.0.2"
-      sources."write-1.0.3"
-      sources."zwitch-1.0.5"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "The pluggable linting tool for text and markdown.";
-      homepage = "https://github.com/textlint/textlint/";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  textlint-plugin-latex = nodeEnv.buildNodePackage {
-    name = "textlint-plugin-latex";
-    packageName = "textlint-plugin-latex";
-    version = "1.0.4";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-plugin-latex/-/textlint-plugin-latex-1.0.4.tgz";
-      sha512 = "ILjivll38Ry+R13ZYG8gGEjPxUP712MSZZIIqm7cV7iUIzysvKQyyf5hYHiNZD/+ijVzlje8RiB49IbvQ7K7mw==";
-    };
-    dependencies = [
-      sources."@textlint/ast-node-types-4.4.3"
-      sources."txt-to-ast-3.0.3"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "Latex plugin for [textlint](https://github.com/textlint/textlint &#34;textlint&#34;).";
-      homepage = "https://github.com/elzup/textlint-plugin-latex";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  textlint-rule-abbr-within-parentheses = nodeEnv.buildNodePackage {
-    name = "textlint-rule-abbr-within-parentheses";
-    packageName = "textlint-rule-abbr-within-parentheses";
-    version = "1.0.2";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-abbr-within-parentheses/-/textlint-rule-abbr-within-parentheses-1.0.2.tgz";
-      sha512 = "GcAtxXttLsZfN75tSCo3V8/RTlglvhnn7McNTgI0uS4ADr67RoD64bSVIs4p/nY3sMNsf1taPjKnhZIQLuVjZg==";
-    };
-    dependencies = [
-      sources."call-bind-1.0.7"
-      sources."define-data-property-1.1.4"
-      sources."define-properties-1.2.1"
-      sources."es-define-property-1.0.0"
-      sources."es-errors-1.3.0"
-      sources."function-bind-1.1.2"
-      sources."functions-have-names-1.2.3"
-      sources."get-intrinsic-1.2.4"
-      sources."gopd-1.0.1"
-      sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.3"
-      sources."has-symbols-1.0.3"
-      sources."hasown-2.0.2"
-      sources."match-index-1.0.3"
-      sources."object-keys-1.1.1"
-      sources."regexp.prototype.flags-1.5.2"
-      sources."set-function-length-1.2.2"
-      sources."set-function-name-2.0.2"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "textlint rule check that abbreviations within parentheses.";
-      homepage = "https://github.com/azu/textlint-rule-abbr-within-parentheses";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  textlint-rule-alex = nodeEnv.buildNodePackage {
-    name = "textlint-rule-alex";
-    packageName = "textlint-rule-alex";
-    version = "5.0.0";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-alex/-/textlint-rule-alex-5.0.0.tgz";
-      sha512 = "8HkUNY0HezGhzQbIMPvZBVdjKIkJ3Wqi29sSMM4Pc89Hdvcpn9Yr8YQoZi/mFn/njSKm/3AYtKoIMx4ziKDDqg==";
-    };
-    dependencies = [
-      sources."@babel/code-frame-7.23.5"
-      sources."@babel/helper-validator-identifier-7.22.20"
-      sources."@babel/highlight-7.23.4"
-      sources."@isaacs/cliui-8.0.2"
-      sources."@npmcli/config-6.4.1"
-      (sources."@npmcli/map-workspaces-3.0.4" // {
-        dependencies = [
-          sources."glob-10.3.10"
-          sources."minimatch-9.0.3"
-        ];
-      })
-      sources."@npmcli/name-from-folder-2.0.0"
-      sources."@pnpm/config.env-replace-1.1.0"
-      (sources."@pnpm/network.ca-file-1.0.2" // {
-        dependencies = [
-          sources."graceful-fs-4.2.10"
-        ];
-      })
-      sources."@pnpm/npm-conf-2.2.2"
-      sources."@sindresorhus/is-5.6.0"
-      sources."@szmarczak/http-timer-5.0.1"
-      sources."@textlint/ast-node-types-13.4.1"
-      sources."@types/acorn-4.0.6"
-      sources."@types/concat-stream-2.0.3"
-      sources."@types/debug-4.1.12"
-      sources."@types/estree-1.0.5"
-      sources."@types/estree-jsx-1.0.5"
-      sources."@types/hast-2.3.10"
-      sources."@types/http-cache-semantics-4.0.4"
-      sources."@types/is-empty-1.2.3"
-      sources."@types/mdast-3.0.15"
-      sources."@types/minimist-1.2.5"
-      sources."@types/ms-0.7.34"
-      sources."@types/nlcst-1.0.4"
-      sources."@types/node-18.19.25"
-      sources."@types/normalize-package-data-2.4.4"
-      sources."@types/supports-color-8.1.3"
-      sources."@types/unist-2.0.10"
-      sources."abbrev-2.0.0"
-      sources."acorn-8.11.3"
-      sources."acorn-jsx-5.3.2"
-      sources."alex-11.0.1"
-      (sources."ansi-align-3.0.1" // {
-        dependencies = [
-          sources."emoji-regex-8.0.0"
-          sources."string-width-4.2.3"
-          sources."strip-ansi-6.0.1"
-        ];
-      })
-      sources."ansi-regex-5.0.1"
-      sources."ansi-styles-3.2.1"
-      sources."array-iterate-2.0.1"
-      sources."arrify-1.0.1"
-      sources."bail-2.0.2"
-      sources."balanced-match-1.0.2"
-      sources."boundary-2.0.0"
-      (sources."boxen-7.1.1" // {
-        dependencies = [
-          sources."chalk-5.3.0"
-          sources."type-fest-2.19.0"
-        ];
-      })
-      sources."brace-expansion-2.0.1"
-      sources."bubble-stream-error-1.0.0"
-      sources."buffer-from-1.1.2"
-      sources."cacheable-lookup-7.0.0"
-      sources."cacheable-request-10.2.14"
-      sources."camelcase-7.0.1"
-      (sources."camelcase-keys-8.0.2" // {
-        dependencies = [
-          sources."type-fest-2.19.0"
-        ];
-      })
-      sources."ccount-2.0.1"
-      sources."chalk-2.4.2"
-      sources."character-entities-2.0.2"
-      sources."character-entities-html4-2.1.0"
-      sources."character-entities-legacy-3.0.0"
-      sources."character-reference-invalid-2.0.1"
-      sources."ci-info-4.0.0"
-      sources."cli-boxes-3.0.0"
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
-      sources."comma-separated-tokens-2.0.3"
-      (sources."concat-stream-2.0.0" // {
-        dependencies = [
-          sources."readable-stream-3.6.2"
-          sources."string_decoder-1.3.0"
-        ];
-      })
-      (sources."config-chain-1.1.13" // {
-        dependencies = [
-          sources."ini-1.3.8"
-        ];
-      })
-      sources."configstore-6.0.0"
-      sources."core-util-is-1.0.3"
-      sources."cross-spawn-7.0.3"
-      (sources."crypto-random-string-4.0.0" // {
-        dependencies = [
-          sources."type-fest-1.4.0"
-        ];
-      })
-      sources."cuss-2.2.0"
-      sources."debug-4.3.4"
-      sources."decamelize-6.0.0"
-      (sources."decamelize-keys-1.1.1" // {
-        dependencies = [
-          sources."decamelize-1.2.0"
-          sources."map-obj-1.0.1"
-        ];
-      })
-      sources."decode-named-character-reference-1.0.2"
-      (sources."decompress-response-6.0.0" // {
-        dependencies = [
-          sources."mimic-response-3.1.0"
-        ];
-      })
-      sources."deep-extend-0.6.0"
-      sources."defer-to-connect-2.0.1"
-      sources."dequal-2.0.3"
-      sources."diff-5.2.0"
-      sources."dot-prop-6.0.1"
-      sources."duplexer-0.1.2"
-      sources."eastasianwidth-0.2.0"
-      sources."emoji-regex-9.2.2"
-      sources."end-of-stream-1.4.4"
-      sources."error-ex-1.3.2"
-      sources."escape-goat-4.0.0"
-      sources."escape-string-regexp-1.0.5"
-      sources."estree-util-is-identifier-name-2.1.0"
-      sources."estree-util-visit-1.2.1"
-      sources."event-stream-3.1.7"
-      sources."extend-3.0.2"
-      sources."fault-2.0.1"
-      sources."find-up-6.3.0"
-      sources."foreground-child-3.1.1"
-      sources."form-data-encoder-2.1.4"
-      sources."format-0.2.2"
-      sources."from-0.1.7"
-      sources."fs.realpath-1.0.0"
-      sources."function-bind-1.1.2"
-      sources."get-stream-6.0.1"
-      sources."git-diff-tree-1.1.0"
-      sources."git-spawned-stream-1.0.1"
-      sources."glob-8.1.0"
-      (sources."global-dirs-3.0.1" // {
-        dependencies = [
-          sources."ini-2.0.0"
-        ];
-      })
-      sources."got-12.6.1"
-      sources."graceful-fs-4.2.11"
-      sources."hard-rejection-2.1.0"
-      sources."has-flag-3.0.0"
-      sources."has-yarn-3.0.0"
-      sources."hasown-2.0.2"
-      sources."hast-util-embedded-2.0.1"
-      sources."hast-util-from-parse5-7.1.2"
-      sources."hast-util-has-property-2.0.1"
-      sources."hast-util-is-body-ok-link-2.0.0"
-      sources."hast-util-is-element-2.1.3"
-      sources."hast-util-parse-selector-3.1.1"
-      sources."hast-util-phrasing-2.0.2"
-      sources."hast-util-to-nlcst-2.2.0"
-      sources."hast-util-to-string-2.0.0"
-      sources."hast-util-whitespace-2.0.1"
-      sources."hastscript-7.2.0"
-      sources."hosted-git-info-5.2.1"
-      sources."http-cache-semantics-4.1.1"
-      (sources."http2-wrapper-2.2.1" // {
-        dependencies = [
-          sources."quick-lru-5.1.1"
-        ];
-      })
-      sources."ignore-5.3.1"
-      sources."import-lazy-4.0.0"
-      sources."import-meta-resolve-2.2.2"
-      sources."imurmurhash-0.1.4"
-      sources."indent-string-5.0.0"
-      sources."inflight-1.0.6"
-      sources."inherits-2.0.4"
-      sources."ini-4.1.2"
-      sources."is-alphabetical-2.0.1"
-      sources."is-alphanumerical-2.0.1"
-      sources."is-arrayish-0.2.1"
-      sources."is-buffer-2.0.5"
-      (sources."is-ci-3.0.1" // {
-        dependencies = [
-          sources."ci-info-3.9.0"
-        ];
-      })
-      sources."is-core-module-2.13.1"
-      sources."is-decimal-2.0.1"
-      sources."is-empty-1.2.0"
-      sources."is-fullwidth-code-point-3.0.0"
-      sources."is-hexadecimal-2.0.1"
-      sources."is-installed-globally-0.4.0"
-      sources."is-npm-6.0.0"
-      sources."is-obj-2.0.0"
-      sources."is-path-inside-3.0.3"
-      sources."is-plain-obj-1.1.0"
-      sources."is-typedarray-1.0.0"
-      sources."is-yarn-global-0.4.1"
-      sources."isarray-0.0.1"
-      sources."isexe-2.0.0"
-      sources."jackspeak-2.3.6"
-      sources."js-tokens-4.0.0"
-      sources."json-buffer-3.0.1"
-      sources."json-parse-even-better-errors-2.3.1"
-      sources."keyv-4.5.4"
-      sources."kind-of-6.0.3"
-      sources."kleur-4.1.5"
-      sources."latest-version-7.0.0"
-      sources."limit-spawn-0.0.3"
-      sources."lines-and-columns-1.2.4"
-      sources."load-plugin-5.1.0"
-      sources."locate-path-7.2.0"
-      sources."longest-streak-3.1.0"
-      sources."lowercase-keys-3.0.0"
-      sources."lru-cache-7.18.3"
-      sources."map-obj-4.3.0"
-      sources."map-stream-0.1.0"
-      sources."markdown-table-3.0.3"
-      sources."mdast-comment-marker-2.1.2"
-      (sources."mdast-util-find-and-replace-2.2.2" // {
-        dependencies = [
-          sources."escape-string-regexp-5.0.0"
-        ];
-      })
-      sources."mdast-util-from-markdown-1.3.1"
-      sources."mdast-util-frontmatter-1.0.1"
-      sources."mdast-util-gfm-2.0.2"
-      sources."mdast-util-gfm-autolink-literal-1.0.3"
-      sources."mdast-util-gfm-footnote-1.0.2"
-      sources."mdast-util-gfm-strikethrough-1.0.3"
-      sources."mdast-util-gfm-table-1.0.7"
-      sources."mdast-util-gfm-task-list-item-1.0.2"
-      sources."mdast-util-mdx-2.0.1"
-      sources."mdast-util-mdx-expression-1.3.2"
-      sources."mdast-util-mdx-jsx-2.1.4"
-      sources."mdast-util-mdxjs-esm-1.3.1"
-      sources."mdast-util-phrasing-3.0.1"
-      sources."mdast-util-to-markdown-1.5.0"
-      sources."mdast-util-to-nlcst-5.2.1"
-      sources."mdast-util-to-string-3.2.0"
-      sources."meow-11.0.0"
-      sources."micromark-3.2.0"
-      sources."micromark-core-commonmark-1.1.0"
-      sources."micromark-extension-frontmatter-1.1.1"
-      sources."micromark-extension-gfm-2.0.3"
-      sources."micromark-extension-gfm-autolink-literal-1.0.5"
-      sources."micromark-extension-gfm-footnote-1.1.2"
-      sources."micromark-extension-gfm-strikethrough-1.0.7"
-      sources."micromark-extension-gfm-table-1.0.7"
-      sources."micromark-extension-gfm-tagfilter-1.0.2"
-      sources."micromark-extension-gfm-task-list-item-1.0.5"
-      sources."micromark-extension-mdx-expression-1.0.8"
-      sources."micromark-extension-mdx-jsx-1.0.5"
-      sources."micromark-extension-mdx-md-1.0.1"
-      sources."micromark-extension-mdxjs-1.0.1"
-      sources."micromark-extension-mdxjs-esm-1.0.5"
-      sources."micromark-factory-destination-1.1.0"
-      sources."micromark-factory-label-1.1.0"
-      sources."micromark-factory-mdx-expression-1.0.9"
-      sources."micromark-factory-space-1.1.0"
-      sources."micromark-factory-title-1.1.0"
-      sources."micromark-factory-whitespace-1.1.0"
-      sources."micromark-util-character-1.2.0"
-      sources."micromark-util-chunked-1.1.0"
-      sources."micromark-util-classify-character-1.1.0"
-      sources."micromark-util-combine-extensions-1.1.0"
-      sources."micromark-util-decode-numeric-character-reference-1.1.0"
-      sources."micromark-util-decode-string-1.1.0"
-      sources."micromark-util-encode-1.1.0"
-      sources."micromark-util-events-to-acorn-1.2.3"
-      sources."micromark-util-html-tag-name-1.2.0"
-      sources."micromark-util-normalize-identifier-1.1.0"
-      sources."micromark-util-resolve-all-1.1.0"
-      sources."micromark-util-sanitize-uri-1.2.0"
-      sources."micromark-util-subtokenize-1.1.0"
-      sources."micromark-util-symbol-1.1.0"
-      sources."micromark-util-types-1.1.0"
-      sources."mimic-response-4.0.0"
-      sources."min-indent-1.0.1"
-      sources."minimatch-5.1.6"
-      sources."minimist-1.2.8"
-      sources."minimist-options-4.1.0"
-      sources."minipass-7.0.4"
-      sources."mri-1.2.0"
-      sources."ms-2.1.2"
-      sources."nlcst-is-literal-2.1.1"
-      sources."nlcst-normalize-3.1.1"
-      sources."nlcst-search-3.1.1"
-      sources."nlcst-to-string-3.1.1"
-      sources."nopt-7.2.0"
-      sources."normalize-package-data-4.0.1"
-      sources."normalize-url-8.0.1"
-      sources."npm-normalize-package-bin-3.0.1"
-      sources."object-keys-0.4.0"
-      sources."once-1.4.0"
-      sources."p-cancelable-3.0.0"
-      sources."p-limit-4.0.0"
-      sources."p-locate-6.0.0"
-      sources."package-json-8.1.1"
-      (sources."parse-english-5.0.0" // {
-        dependencies = [
-          sources."nlcst-to-string-2.0.4"
-        ];
-      })
-      sources."parse-entities-4.0.1"
-      sources."parse-json-5.2.0"
-      (sources."parse-latin-5.0.1" // {
-        dependencies = [
-          sources."unist-util-modify-children-3.1.1"
-          sources."unist-util-visit-children-2.0.2"
-        ];
-      })
-      sources."parse5-6.0.1"
-      sources."path-exists-5.0.0"
-      sources."path-key-3.1.1"
-      (sources."path-scurry-1.10.1" // {
-        dependencies = [
-          sources."lru-cache-10.2.0"
-        ];
-      })
-      sources."pause-stream-0.0.11"
-      sources."pluralize-8.0.0"
-      sources."proc-log-3.0.0"
-      sources."process-nextick-args-1.0.7"
-      sources."property-information-6.4.1"
-      sources."proto-list-1.2.4"
-      sources."pump-1.0.3"
-      sources."pump-chain-1.0.0"
-      sources."pupa-3.1.0"
-      sources."quick-lru-6.1.2"
-      sources."quotation-2.0.3"
-      (sources."rc-1.2.8" // {
-        dependencies = [
-          sources."ini-1.3.8"
-        ];
-      })
-      (sources."read-package-json-fast-3.0.2" // {
-        dependencies = [
-          sources."json-parse-even-better-errors-3.0.1"
-        ];
-      })
-      (sources."read-pkg-7.1.0" // {
-        dependencies = [
-          sources."hosted-git-info-4.1.0"
-          sources."lru-cache-6.0.0"
-          sources."normalize-package-data-3.0.3"
-          sources."type-fest-2.19.0"
-        ];
-      })
-      (sources."read-pkg-up-9.1.0" // {
-        dependencies = [
-          sources."type-fest-2.19.0"
-        ];
-      })
-      sources."readable-stream-1.0.34"
-      sources."redent-4.0.0"
-      sources."registry-auth-token-5.0.2"
-      sources."registry-url-6.0.1"
-      sources."rehype-parse-8.0.5"
-      sources."rehype-retext-3.0.2"
-      sources."remark-frontmatter-4.0.1"
-      sources."remark-gfm-3.0.1"
-      sources."remark-mdx-2.0.0"
-      sources."remark-message-control-7.1.1"
-      sources."remark-parse-10.0.2"
-      sources."remark-retext-5.0.1"
-      sources."resolve-alpn-1.2.1"
-      sources."responselike-3.0.0"
-      sources."retext-english-4.1.0"
-      sources."retext-equality-6.6.0"
-      sources."retext-profanities-7.2.2"
-      sources."sade-1.8.1"
-      sources."safe-buffer-5.2.1"
-      (sources."semver-7.6.0" // {
-        dependencies = [
-          sources."lru-cache-6.0.0"
-        ];
-      })
-      sources."semver-diff-4.0.0"
-      sources."shebang-command-2.0.0"
-      sources."shebang-regex-3.0.0"
-      sources."signal-exit-4.1.0"
-      sources."sliced-1.0.1"
-      sources."space-separated-tokens-2.0.2"
-      (sources."spawn-to-readstream-0.1.3" // {
-        dependencies = [
-          sources."through2-0.4.2"
-        ];
-      })
-      sources."spdx-correct-3.2.0"
-      sources."spdx-exceptions-2.5.0"
-      sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.17"
-      sources."split-0.2.10"
-      (sources."split-transform-stream-0.1.1" // {
-        dependencies = [
-          sources."bubble-stream-error-0.0.1"
-          sources."through2-0.4.2"
-        ];
-      })
-      sources."stream-combiner-0.0.4"
-      sources."string-width-5.1.2"
-      (sources."string-width-cjs-4.2.3" // {
-        dependencies = [
-          sources."emoji-regex-8.0.0"
-          sources."strip-ansi-6.0.1"
-        ];
-      })
-      sources."string_decoder-0.10.31"
-      sources."stringify-entities-4.0.3"
-      (sources."strip-ansi-7.1.0" // {
-        dependencies = [
-          sources."ansi-regex-6.0.1"
-        ];
-      })
-      sources."strip-ansi-cjs-6.0.1"
-      sources."strip-indent-4.0.0"
-      sources."strip-json-comments-2.0.1"
-      sources."structured-source-4.0.0"
-      sources."supports-color-5.5.0"
-      (sources."textlint-rule-helper-2.3.1" // {
-        dependencies = [
-          sources."unist-util-is-4.1.0"
-          sources."unist-util-visit-2.0.3"
-          sources."unist-util-visit-parents-3.1.1"
-        ];
-      })
-      sources."through-2.3.8"
-      (sources."through2-2.0.0" // {
-        dependencies = [
-          sources."isarray-1.0.0"
-          sources."readable-stream-2.0.6"
-          sources."xtend-4.0.2"
-        ];
-      })
-      sources."to-vfile-7.2.4"
-      sources."trim-newlines-4.1.1"
-      sources."trough-2.2.0"
-      sources."type-fest-3.13.1"
-      sources."typedarray-0.0.6"
-      sources."typedarray-to-buffer-3.1.5"
-      sources."undici-types-5.26.5"
-      sources."unherit-3.0.1"
-      (sources."unified-10.1.2" // {
-        dependencies = [
-          sources."is-plain-obj-4.1.0"
-        ];
-      })
-      sources."unified-diff-4.0.1"
-      (sources."unified-engine-10.1.0" // {
-        dependencies = [
-          sources."is-plain-obj-4.1.0"
-          sources."lines-and-columns-2.0.4"
-          sources."parse-json-6.0.2"
-        ];
-      })
-      (sources."unified-message-control-4.0.0" // {
-        dependencies = [
-          sources."unist-util-visit-3.1.0"
-          sources."unist-util-visit-parents-4.1.1"
-        ];
-      })
-      sources."unique-string-3.0.0"
-      sources."unist-util-inspect-7.0.2"
-      sources."unist-util-is-5.2.1"
-      (sources."unist-util-modify-children-2.0.0" // {
-        dependencies = [
-          sources."array-iterate-1.1.4"
-        ];
-      })
-      sources."unist-util-position-4.0.4"
-      sources."unist-util-position-from-estree-1.1.2"
-      sources."unist-util-remove-position-4.0.2"
-      sources."unist-util-stringify-position-3.0.3"
-      sources."unist-util-visit-4.1.2"
-      sources."unist-util-visit-children-1.1.4"
-      sources."unist-util-visit-parents-5.1.3"
-      (sources."update-notifier-6.0.2" // {
-        dependencies = [
-          sources."chalk-5.3.0"
-        ];
-      })
-      sources."util-deprecate-1.0.2"
-      sources."uvu-0.5.6"
-      sources."validate-npm-package-license-3.0.4"
-      sources."vfile-5.3.7"
-      sources."vfile-find-up-6.1.0"
-      sources."vfile-location-4.1.0"
-      sources."vfile-message-3.1.4"
-      (sources."vfile-reporter-7.0.5" // {
-        dependencies = [
-          sources."supports-color-9.4.0"
-        ];
-      })
-      sources."vfile-sort-3.0.1"
-      sources."vfile-statistics-2.0.1"
-      sources."walk-up-path-3.0.1"
-      sources."web-namespaces-2.0.1"
-      sources."which-2.0.2"
-      sources."widest-line-4.0.1"
-      (sources."wrap-ansi-8.1.0" // {
-        dependencies = [
-          sources."ansi-styles-6.2.1"
-        ];
-      })
-      (sources."wrap-ansi-cjs-7.0.0" // {
-        dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."emoji-regex-8.0.0"
-          sources."string-width-4.2.3"
-          sources."strip-ansi-6.0.1"
-        ];
-      })
-      sources."wrappy-1.0.2"
-      (sources."write-file-atomic-3.0.3" // {
-        dependencies = [
-          sources."signal-exit-3.0.7"
-        ];
-      })
-      sources."xdg-basedir-5.1.0"
-      sources."xtend-2.1.2"
-      sources."yallist-4.0.0"
-      sources."yaml-2.4.1"
-      sources."yargs-parser-21.1.1"
-      sources."yocto-queue-1.0.0"
-      sources."zwitch-2.0.4"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "textlint rule for alex";
-      homepage = "https://github.com/textlint-rule/textlint-rule-alex";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  textlint-rule-common-misspellings = nodeEnv.buildNodePackage {
-    name = "textlint-rule-common-misspellings";
-    packageName = "textlint-rule-common-misspellings";
-    version = "1.0.1";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-common-misspellings/-/textlint-rule-common-misspellings-1.0.1.tgz";
-      sha512 = "f5KWhQFJzJBUX3RirAS25aSkAaaOHeSHtBeb7d49O+vxnAX3dZBS5DB/e5M1kR4tifW4qae64oqWZygoGYWkjQ==";
-    };
-    dependencies = [
-      sources."misspellings-1.1.0"
-      sources."textlint-rule-helper-1.2.0"
-      sources."unist-util-is-3.0.0"
-      sources."unist-util-visit-1.4.1"
-      sources."unist-util-visit-parents-2.1.2"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "textlint rule to check common misspellings";
-      homepage = "https://github.com/io-monad/textlint-rule-common-misspellings";
-      license = "GPL-3.0";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  textlint-rule-diacritics = nodeEnv.buildNodePackage {
-    name = "textlint-rule-diacritics";
-    packageName = "textlint-rule-diacritics";
-    version = "1.0.0";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-diacritics/-/textlint-rule-diacritics-1.0.0.tgz";
-      sha512 = "hhJvDZzhV+sKD7walPQ4VmWkBw5o1T/lFLRsoDsAJF+LYhD89R5/L4yFVtxFRUkP9VZ5cvoUIPkYjZvkPEawTA==";
-    };
-    dependencies = [
-      sources."match-casing-1.0.3"
-      sources."strip-json-comments-3.1.1"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "Textlint rule to check correct usage of diacritics";
-      homepage = "https://github.com/sapegin/textlint-rule-diacritics";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  textlint-rule-en-max-word-count = nodeEnv.buildNodePackage {
-    name = "textlint-rule-en-max-word-count";
-    packageName = "textlint-rule-en-max-word-count";
-    version = "2.0.1";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-en-max-word-count/-/textlint-rule-en-max-word-count-2.0.1.tgz";
-      sha512 = "gZMxUU+/O8QIchBQoo50QryknmMKahb2vBj89wVvk+Dhvp70nAJKSkpt2vjZVYBWCxpIKysQlwheBjrFZWpkfg==";
-    };
-    dependencies = [
-      sources."@textlint/ast-node-types-13.4.1"
-      sources."@types/unist-2.0.10"
-      sources."bail-1.0.5"
-      sources."boundary-2.0.0"
-      sources."ccount-1.1.0"
-      sources."comma-separated-tokens-1.0.8"
-      sources."extend-3.0.2"
-      sources."hast-util-from-parse5-5.0.3"
-      sources."hast-util-parse-selector-2.2.5"
-      sources."hastscript-5.1.2"
-      sources."is-buffer-2.0.5"
-      sources."is-plain-obj-2.1.0"
-      sources."parse5-5.1.1"
-      sources."property-information-5.6.0"
-      sources."rehype-parse-6.0.2"
-      sources."sentence-splitter-4.4.1"
-      sources."space-separated-tokens-1.1.5"
-      sources."structured-source-4.0.0"
-      sources."textlint-util-to-string-3.3.4"
-      sources."trough-1.0.5"
-      sources."unified-8.4.2"
-      sources."unist-util-stringify-position-2.0.3"
-      sources."vfile-4.2.1"
-      sources."vfile-message-2.0.4"
-      sources."web-namespaces-1.1.4"
-      sources."xtend-4.0.2"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "textlint rule that specify the maximum word count of a sentence.";
-      homepage = "https://github.com/textlint-rule/textlint-rule-en-max-word-count";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  textlint-rule-max-comma = nodeEnv.buildNodePackage {
-    name = "textlint-rule-max-comma";
-    packageName = "textlint-rule-max-comma";
-    version = "4.0.0";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-max-comma/-/textlint-rule-max-comma-4.0.0.tgz";
-      sha512 = "2vKKXNg1YuTqr9/FrHvOGEHFe+6lNSDtzuEv+KRB+tuaj++UNa/YPvyY34UdDYuHUSKNcYdto8GlIUhAJDW9WQ==";
-    };
-    dependencies = [
-      sources."@textlint/ast-node-types-13.4.1"
-      sources."@types/unist-2.0.10"
-      sources."bail-1.0.5"
-      sources."boundary-2.0.0"
-      sources."ccount-1.1.0"
-      sources."comma-separated-tokens-1.0.8"
-      sources."extend-3.0.2"
-      sources."hast-util-from-parse5-5.0.3"
-      sources."hast-util-parse-selector-2.2.5"
-      sources."hastscript-5.1.2"
-      sources."is-buffer-2.0.5"
-      sources."is-plain-obj-2.1.0"
-      sources."parse5-5.1.1"
-      sources."property-information-5.6.0"
-      sources."rehype-parse-6.0.2"
-      sources."sentence-splitter-5.0.0"
-      sources."space-separated-tokens-1.1.5"
-      sources."structured-source-4.0.0"
-      sources."textlint-util-to-string-3.3.4"
-      sources."trough-1.0.5"
-      sources."unified-8.4.2"
-      sources."unist-util-stringify-position-2.0.3"
-      sources."vfile-4.2.1"
-      sources."vfile-message-2.0.4"
-      sources."web-namespaces-1.1.4"
-      sources."xtend-4.0.2"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "textlint rule that limit maxinum comma(,) count of sentence.";
-      homepage = "https://github.com/azu/textlint-rule-max-comma#readme";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  textlint-rule-no-start-duplicated-conjunction = nodeEnv.buildNodePackage {
-    name = "textlint-rule-no-start-duplicated-conjunction";
-    packageName = "textlint-rule-no-start-duplicated-conjunction";
-    version = "2.0.2";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-no-start-duplicated-conjunction/-/textlint-rule-no-start-duplicated-conjunction-2.0.2.tgz";
-      sha512 = "HydBbkWjnMn4KrnlpnusY1BGjIG+64UySxRCvRphUAIiuJL2nbkdrIIiOjwfQhllKUa7Sf33bs6RAcbEWjZVfg==";
-    };
-    dependencies = [
-      sources."@textlint/ast-node-types-4.4.3"
-      sources."@types/unist-2.0.10"
-      sources."boundary-1.0.1"
-      sources."buffer-from-1.1.2"
-      sources."concat-stream-2.0.0"
-      sources."inherits-2.0.4"
-      sources."object-assign-4.1.1"
-      sources."object_values-0.1.2"
-      sources."readable-stream-3.6.2"
-      sources."safe-buffer-5.2.1"
-      sources."sentence-splitter-3.2.3"
-      sources."string_decoder-1.3.0"
-      sources."structured-source-3.0.2"
-      (sources."textlint-rule-helper-2.3.1" // {
-        dependencies = [
-          sources."@textlint/ast-node-types-13.4.1"
-          sources."boundary-2.0.0"
-          sources."structured-source-4.0.0"
-        ];
-      })
-      sources."typedarray-0.0.6"
-      sources."unist-util-is-4.1.0"
-      sources."unist-util-visit-2.0.3"
-      sources."unist-util-visit-parents-3.1.1"
-      sources."util-deprecate-1.0.2"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "textlint rule that check no start with duplicated conjunction.";
-      homepage = "https://github.com/textlint-rule/textlint-rule-no-start-duplicated-conjunction";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  textlint-rule-period-in-list-item = nodeEnv.buildNodePackage {
-    name = "textlint-rule-period-in-list-item";
-    packageName = "textlint-rule-period-in-list-item";
-    version = "1.0.1";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-period-in-list-item/-/textlint-rule-period-in-list-item-1.0.1.tgz";
-      sha512 = "dNPa4WzePcgsz8A+CxFGQgKNZCEvjjwMCu3DFcpYB4eKuhcSISEiS/mvEO42oGAALJluYdYVZxN3yMD6XzkLBA==";
-    };
-    dependencies = [
-      sources."check-ends-with-period-3.0.2"
-      sources."emoji-regex-10.3.0"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "textlint rule that check with or without period in list item.";
-      homepage = "https://github.com/textlint-rule/textlint-rule-period-in-list-item";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  textlint-rule-stop-words = nodeEnv.buildNodePackage {
-    name = "textlint-rule-stop-words";
-    packageName = "textlint-rule-stop-words";
-    version = "4.0.0";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-stop-words/-/textlint-rule-stop-words-4.0.0.tgz";
-      sha512 = "vP99cbTyapn+Hviom2doO3pJtjlhKlZvlHTf21zoB22CxJx2w3S7Ie169neB5U4Xsei+NodHf5tnwT933mO19A==";
-    };
-    dependencies = [
-      sources."@textlint/ast-node-types-13.4.1"
-      sources."@types/unist-2.0.10"
-      sources."boundary-2.0.0"
-      sources."lodash-4.17.21"
-      sources."split-lines-2.1.0"
-      sources."structured-source-4.0.0"
-      sources."textlint-rule-helper-2.3.1"
-      sources."unist-util-is-4.1.0"
-      sources."unist-util-visit-2.0.3"
-      sources."unist-util-visit-parents-3.1.1"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "Textlint rule to find filler words, buzzwords and chiches";
-      homepage = "https://github.com/sapegin/textlint-rule-stop-words";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  textlint-rule-terminology = nodeEnv.buildNodePackage {
-    name = "textlint-rule-terminology";
-    packageName = "textlint-rule-terminology";
-    version = "4.0.1";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-terminology/-/textlint-rule-terminology-4.0.1.tgz";
-      sha512 = "wKiVhc2B9HP2MFU4x7ZDx+oM5u43ETpKWTLHKvdhPRZ0+davi4M8mFmkZVovDIMO7igsGjixikcvFmnCMg3kmQ==";
-    };
-    dependencies = [
-      sources."@textlint/ast-node-types-13.4.1"
-      sources."@types/unist-2.0.10"
-      sources."boundary-2.0.0"
-      sources."lodash-4.17.21"
-      sources."strip-json-comments-3.1.1"
-      sources."structured-source-4.0.0"
-      sources."textlint-rule-helper-2.3.1"
-      sources."unist-util-is-4.1.0"
-      sources."unist-util-visit-2.0.3"
-      sources."unist-util-visit-parents-3.1.1"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "TextLint rule to check correct terms spelling";
-      homepage = "https://github.com/sapegin/textlint-rule-terminology";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  textlint-rule-unexpanded-acronym = nodeEnv.buildNodePackage {
-    name = "textlint-rule-unexpanded-acronym";
-    packageName = "textlint-rule-unexpanded-acronym";
-    version = "1.2.4";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-unexpanded-acronym/-/textlint-rule-unexpanded-acronym-1.2.4.tgz";
-      sha512 = "F1kV06CdonOM2awtXjCSRYUsRJfDfZIujQQo4zEMqNqD6UwpkapxpZOiwcwbeaQz00+17ljbJEoGqIe2XeiU+w==";
-    };
-    dependencies = [
-      sources."array-buffer-byte-length-1.0.1"
-      sources."array-includes-3.1.7"
-      sources."arraybuffer.prototype.slice-1.0.3"
-      sources."available-typed-arrays-1.0.7"
-      sources."call-bind-1.0.7"
-      sources."data-view-buffer-1.0.1"
-      sources."data-view-byte-length-1.0.1"
-      sources."data-view-byte-offset-1.0.0"
-      sources."define-data-property-1.1.4"
-      sources."define-properties-1.2.1"
-      sources."es-abstract-1.23.2"
-      sources."es-define-property-1.0.0"
-      sources."es-errors-1.3.0"
-      sources."es-object-atoms-1.0.0"
-      sources."es-set-tostringtag-2.0.3"
-      sources."es-to-primitive-1.2.1"
-      sources."for-each-0.3.3"
-      sources."function-bind-1.1.2"
-      sources."function.prototype.name-1.1.6"
-      sources."functions-have-names-1.2.3"
-      sources."get-intrinsic-1.2.4"
-      sources."get-symbol-description-1.0.2"
-      sources."globalthis-1.0.3"
-      sources."gopd-1.0.1"
-      sources."has-bigints-1.0.2"
-      sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.3"
-      sources."has-symbols-1.0.3"
-      sources."has-tostringtag-1.0.2"
-      sources."hasown-2.0.2"
-      sources."internal-slot-1.0.7"
-      sources."is-array-buffer-3.0.4"
-      sources."is-bigint-1.0.4"
-      sources."is-boolean-object-1.1.2"
-      sources."is-callable-1.2.7"
-      sources."is-capitalized-1.0.0"
-      sources."is-data-view-1.0.1"
-      sources."is-date-object-1.0.5"
-      sources."is-negative-zero-2.0.3"
-      sources."is-number-object-1.0.7"
-      sources."is-regex-1.1.4"
-      sources."is-shared-array-buffer-1.0.3"
-      sources."is-string-1.0.7"
-      sources."is-symbol-1.0.4"
-      sources."is-typed-array-1.1.13"
-      sources."is-weakref-1.0.2"
-      sources."isarray-2.0.5"
-      sources."object-inspect-1.13.1"
-      sources."object-keys-1.1.1"
-      sources."object.assign-4.1.5"
-      sources."possible-typed-array-names-1.0.0"
-      sources."regexp.prototype.flags-1.5.2"
-      sources."safe-array-concat-1.1.2"
-      sources."safe-regex-test-1.0.3"
-      sources."set-function-length-1.2.2"
-      sources."set-function-name-2.0.2"
-      sources."side-channel-1.0.6"
-      sources."string.prototype.trim-1.2.9"
-      sources."string.prototype.trimend-1.0.8"
-      sources."string.prototype.trimstart-1.0.7"
-      sources."typed-array-buffer-1.0.2"
-      sources."typed-array-byte-length-1.0.1"
-      sources."typed-array-byte-offset-1.0.2"
-      sources."typed-array-length-1.0.5"
-      sources."unbox-primitive-1.0.2"
-      sources."which-boxed-primitive-1.0.2"
-      sources."which-typed-array-1.1.15"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "textlint rule that check unexpanded acronym word.";
-      homepage = "https://github.com/textlint-rule/textlint-rule-unexpanded-acronym";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  textlint-rule-write-good = nodeEnv.buildNodePackage {
-    name = "textlint-rule-write-good";
-    packageName = "textlint-rule-write-good";
-    version = "2.0.0";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-write-good/-/textlint-rule-write-good-2.0.0.tgz";
-      sha512 = "yvOJavJD+PgyUzvsoLDDzDtgCVBva/HNhEvsFnYVugrWz0qy2hr+/4B4wkzjro4wfPbwz20GQe5h13N4DeUEeA==";
-    };
-    dependencies = [
-      sources."@textlint/ast-node-types-13.4.1"
-      sources."@types/unist-2.0.10"
-      sources."adverb-where-0.2.6"
-      sources."boundary-2.0.0"
-      sources."commander-2.20.3"
-      sources."e-prime-0.10.4"
-      sources."no-cliches-0.3.6"
-      sources."passive-voice-0.1.0"
-      sources."structured-source-4.0.0"
-      sources."textlint-rule-helper-2.3.1"
-      sources."too-wordy-0.3.6"
-      sources."unist-util-is-4.1.0"
-      sources."unist-util-visit-2.0.3"
-      sources."unist-util-visit-parents-3.1.1"
-      sources."weasel-words-0.1.1"
-      sources."write-good-1.0.8"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "textlint rule to check your English style with write good";
-      homepage = "https://github.com/textlint-rule/textlint-rule-write-good";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
   thelounge-plugin-closepms = nodeEnv.buildNodePackage {
     name = "thelounge-plugin-closepms";
     packageName = "thelounge-plugin-closepms";
@@ -94385,85 +90140,66 @@ in
     };
     dependencies = [
       sources."@fastify/busboy-1.0.0"
-      sources."@gar/promisify-1.1.3"
-      sources."@mapbox/node-pre-gyp-1.0.11"
-      sources."@npmcli/fs-1.1.1"
-      sources."@npmcli/move-file-1.1.2"
       sources."@sindresorhus/is-4.6.0"
-      sources."@socket.io/component-emitter-3.1.0"
+      sources."@socket.io/component-emitter-3.1.2"
       sources."@szmarczak/http-timer-4.0.6"
       sources."@tokenizer/token-0.3.0"
-      sources."@tootallnate/once-1.1.2"
       sources."@types/cacheable-request-6.0.3"
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.17"
       sources."@types/http-cache-semantics-4.0.4"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."@types/responselike-1.0.3"
-      sources."abbrev-1.1.1"
       sources."abstract-logging-2.0.1"
       sources."accepts-1.3.8"
       (sources."agent-base-6.0.2" // {
         dependencies = [
-          sources."debug-4.3.4"
+          sources."debug-4.3.5"
           sources."ms-2.1.2"
         ];
       })
-      sources."agentkeepalive-4.5.0"
-      sources."aggregate-error-3.1.0"
-      sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
-      sources."aproba-2.0.0"
-      sources."are-we-there-yet-2.0.0"
       sources."array-flatten-1.1.1"
       sources."asn1-0.2.6"
       sources."asn1.js-5.4.1"
       sources."assert-plus-1.0.0"
       sources."available-typed-arrays-1.0.7"
       sources."backoff-2.5.0"
-      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."base64id-2.0.0"
       sources."bcryptjs-2.4.3"
       sources."bn.js-4.12.0"
       sources."body-parser-1.19.2"
       sources."boolbase-1.0.0"
-      sources."brace-expansion-1.1.11"
       sources."buffer-6.0.3"
       sources."buffer-equal-constant-time-1.0.1"
       sources."bufferutil-4.0.8"
       sources."bytes-3.1.2"
-      (sources."cacache-15.3.0" // {
-        dependencies = [
-          sources."minipass-3.3.6"
-        ];
-      })
       sources."cacheable-lookup-5.0.4"
       sources."cacheable-request-7.0.4"
       sources."call-bind-1.0.7"
       sources."chalk-4.1.2"
-      sources."cheerio-1.0.0-rc.10"
-      sources."cheerio-select-1.6.0"
-      sources."chownr-2.0.0"
-      sources."clean-stack-2.2.0"
+      sources."cheerio-1.0.0-rc.12"
+      sources."cheerio-select-2.1.0"
       sources."clone-response-1.0.3"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."color-support-1.1.3"
       sources."commander-9.0.0"
-      sources."concat-map-0.0.1"
-      sources."console-control-strings-1.1.0"
       sources."content-disposition-0.5.4"
       sources."content-type-1.0.5"
       sources."cookie-0.4.2"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.36.1"
+      sources."core-js-3.37.1"
       sources."core-util-is-1.0.2"
       sources."cors-2.8.5"
-      sources."css-select-4.3.0"
+      sources."css-select-5.1.0"
       sources."css-what-6.1.0"
-      sources."debug-2.6.9"
+      (sources."debug-2.6.9" // {
+        dependencies = [
+          sources."ms-2.0.0"
+        ];
+      })
       (sources."decompress-response-6.0.0" // {
         dependencies = [
           sources."mimic-response-3.1.0"
@@ -94472,34 +90208,24 @@ in
       sources."deep-extend-0.6.0"
       sources."defer-to-connect-2.0.1"
       sources."define-data-property-1.1.4"
-      sources."delegates-1.0.0"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
-      sources."detect-libc-2.0.2"
-      sources."dom-serializer-1.4.1"
+      sources."dom-serializer-2.0.0"
       sources."domelementtype-2.3.0"
-      sources."domhandler-4.3.1"
-      sources."domutils-2.8.0"
+      sources."domhandler-5.0.3"
+      sources."domutils-3.1.0"
       sources."ecdsa-sig-formatter-1.0.11"
       sources."ee-first-1.1.1"
-      sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
-      (sources."encoding-0.1.13" // {
-        dependencies = [
-          sources."iconv-lite-0.6.3"
-        ];
-      })
       sources."end-of-stream-1.4.4"
       (sources."engine.io-6.4.2" // {
         dependencies = [
-          sources."debug-4.3.4"
+          sources."debug-4.3.5"
           sources."ms-2.1.2"
         ];
       })
       sources."engine.io-parser-5.0.7"
-      sources."entities-2.2.0"
-      sources."env-paths-2.2.1"
-      sources."err-code-2.0.3"
+      sources."entities-4.5.0"
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
       sources."escape-html-1.0.3"
@@ -94516,52 +90242,31 @@ in
       sources."for-each-0.3.3"
       sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
-      (sources."fs-minipass-2.1.0" // {
-        dependencies = [
-          sources."minipass-3.3.6"
-        ];
-      })
-      sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.2"
-      sources."gauge-3.0.2"
       sources."get-intrinsic-1.2.4"
       sources."get-stream-5.2.0"
-      sources."glob-7.2.3"
       sources."gopd-1.0.1"
       sources."got-11.8.5"
-      sources."graceful-fs-4.2.11"
       sources."grapheme-splitter-1.0.4"
       sources."has-flag-4.0.0"
       sources."has-property-descriptors-1.0.2"
       sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.2"
-      sources."has-unicode-2.0.1"
       sources."hasown-2.0.2"
-      sources."htmlparser2-6.1.0"
+      sources."htmlparser2-8.0.2"
       sources."http-cache-semantics-4.1.1"
       sources."http-errors-1.8.1"
-      (sources."http-proxy-agent-4.0.1" // {
-        dependencies = [
-          sources."debug-4.3.4"
-          sources."ms-2.1.2"
-        ];
-      })
       sources."http2-wrapper-1.0.3"
       sources."http_ece-1.1.0"
       (sources."https-proxy-agent-5.0.1" // {
         dependencies = [
-          sources."debug-4.3.4"
+          sources."debug-4.3.5"
           sources."ms-2.1.2"
         ];
       })
-      sources."humanize-ms-1.2.1"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
-      sources."imurmurhash-0.1.4"
-      sources."indent-string-4.0.0"
-      sources."infer-owner-1.0.4"
-      sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
       sources."ip-address-9.0.5"
@@ -94573,12 +90278,9 @@ in
       })
       sources."is-arguments-1.1.1"
       sources."is-callable-1.2.7"
-      sources."is-fullwidth-code-point-3.0.0"
       sources."is-generator-function-1.0.10"
-      sources."is-lambda-1.0.1"
       sources."is-typed-array-1.1.13"
       sources."is-utf8-0.2.1"
-      sources."isexe-2.0.0"
       sources."isomorphic-textencoder-1.0.1"
       sources."jsbn-1.1.0"
       sources."json-buffer-3.0.1"
@@ -94591,16 +90293,6 @@ in
       sources."lodash-4.17.21"
       sources."lowercase-keys-2.0.0"
       sources."lru-cache-6.0.0"
-      (sources."make-dir-3.1.0" // {
-        dependencies = [
-          sources."semver-6.3.1"
-        ];
-      })
-      (sources."make-fetch-happen-9.1.0" // {
-        dependencies = [
-          sources."minipass-3.3.6"
-        ];
-      })
       sources."media-typer-0.3.0"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
@@ -94610,77 +90302,29 @@ in
       sources."mime-types-2.1.34"
       sources."mimic-response-1.0.1"
       sources."minimalistic-assert-1.0.1"
-      sources."minimatch-3.1.2"
       sources."minimist-1.2.8"
-      sources."minipass-5.0.0"
-      (sources."minipass-collect-1.0.2" // {
-        dependencies = [
-          sources."minipass-3.3.6"
-        ];
-      })
-      (sources."minipass-fetch-1.4.1" // {
-        dependencies = [
-          sources."minipass-3.3.6"
-        ];
-      })
-      (sources."minipass-flush-1.0.5" // {
-        dependencies = [
-          sources."minipass-3.3.6"
-        ];
-      })
-      (sources."minipass-pipeline-1.2.4" // {
-        dependencies = [
-          sources."minipass-3.3.6"
-        ];
-      })
-      (sources."minipass-sized-1.0.3" // {
-        dependencies = [
-          sources."minipass-3.3.6"
-        ];
-      })
-      (sources."minizlib-2.1.2" // {
-        dependencies = [
-          sources."minipass-3.3.6"
-        ];
-      })
-      sources."mkdirp-1.0.4"
-      sources."ms-2.0.0"
+      sources."ms-2.1.3"
       sources."mute-stream-0.0.8"
       sources."negotiator-0.6.3"
-      sources."node-addon-api-4.3.0"
-      sources."node-fetch-2.7.0"
       sources."node-forge-1.3.0"
-      (sources."node-gyp-8.4.1" // {
-        dependencies = [
-          sources."are-we-there-yet-3.0.1"
-          sources."gauge-4.0.4"
-          sources."npmlog-6.0.2"
-        ];
-      })
-      sources."node-gyp-build-4.8.0"
-      sources."nopt-5.0.0"
+      sources."node-gyp-build-4.8.1"
       sources."normalize-url-6.1.0"
-      sources."npmlog-5.0.1"
       sources."nth-check-2.1.1"
       sources."object-assign-4.1.1"
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
       sources."p-cancelable-2.1.1"
       sources."p-finally-1.0.0"
-      sources."p-map-4.0.0"
       sources."p-try-2.2.0"
       sources."package-json-7.0.0"
-      sources."parse5-6.0.1"
-      sources."parse5-htmlparser2-tree-adapter-6.0.1"
+      sources."parse5-7.1.2"
+      sources."parse5-htmlparser2-tree-adapter-7.0.0"
       sources."parseurl-1.3.3"
-      sources."path-is-absolute-1.0.1"
       sources."path-to-regexp-0.1.7"
       sources."peek-readable-4.1.0"
       sources."pify-4.0.1"
       sources."possible-typed-array-names-1.0.0"
       sources."precond-0.2.3"
-      sources."promise-inflight-1.0.1"
-      sources."promise-retry-2.0.1"
       sources."proxy-addr-2.0.7"
       sources."pump-3.0.0"
       sources."qs-6.9.7"
@@ -94697,78 +90341,51 @@ in
       sources."registry-url-5.1.0"
       sources."resolve-alpn-1.2.1"
       sources."responselike-2.0.1"
-      sources."retry-0.12.0"
-      sources."rimraf-3.0.2"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.3.5"
-      (sources."send-0.17.2" // {
-        dependencies = [
-          sources."ms-2.1.3"
-        ];
-      })
+      sources."semver-7.5.2"
+      sources."send-0.17.2"
       sources."serve-static-1.14.2"
-      sources."set-blocking-2.0.0"
       sources."set-function-length-1.2.2"
       sources."setprototypeof-1.2.0"
-      sources."signal-exit-3.0.7"
       sources."smart-buffer-4.2.0"
       (sources."socket.io-4.6.1" // {
         dependencies = [
-          sources."debug-4.3.4"
+          sources."debug-4.3.5"
           sources."ms-2.1.2"
         ];
       })
       (sources."socket.io-adapter-2.5.4" // {
         dependencies = [
-          sources."debug-4.3.4"
+          sources."debug-4.3.5"
           sources."ms-2.1.2"
         ];
       })
       (sources."socket.io-parser-4.2.4" // {
         dependencies = [
-          sources."debug-4.3.4"
-          sources."ms-2.1.2"
-        ];
-      })
-      sources."socks-2.8.1"
-      (sources."socks-proxy-agent-6.2.1" // {
-        dependencies = [
-          sources."debug-4.3.4"
+          sources."debug-4.3.5"
           sources."ms-2.1.2"
         ];
       })
+      sources."socks-2.8.3"
       sources."sprintf-js-1.1.3"
-      sources."sqlite3-5.1.6"
-      (sources."ssri-8.0.1" // {
-        dependencies = [
-          sources."minipass-3.3.6"
-        ];
-      })
       sources."statuses-1.5.0"
       sources."stream-browserify-3.0.0"
-      sources."string-width-4.2.3"
       sources."string_decoder-1.3.0"
-      sources."strip-ansi-6.0.1"
       sources."strip-json-comments-2.0.1"
       sources."strip-outer-1.0.1"
       sources."strtok3-6.3.0"
       sources."supports-color-7.2.0"
-      sources."tar-6.2.0"
       sources."text-decoding-1.0.0"
-      sources."thelounge-4.4.1"
+      sources."thelounge-4.4.3"
       sources."tlds-1.228.0"
       sources."toidentifier-1.0.1"
       sources."token-types-4.2.1"
-      sources."tr46-0.0.3"
       sources."trim-repeated-1.0.0"
-      sources."tslib-2.6.2"
       sources."type-is-1.6.18"
       sources."ua-parser-js-1.0.33"
       sources."uc.micro-1.0.6"
       sources."undici-types-5.26.5"
-      sources."unique-filename-1.1.1"
-      sources."unique-slug-2.0.2"
       sources."unpipe-1.0.0"
       sources."urlsafe-base64-1.0.0"
       sources."utf-8-validate-5.0.10"
@@ -94784,11 +90401,7 @@ in
       })
       sources."verror-1.10.1"
       sources."web-push-3.4.5"
-      sources."webidl-conversions-3.0.1"
-      sources."whatwg-url-5.0.0"
-      sources."which-2.0.2"
       sources."which-typed-array-1.1.15"
-      sources."wide-align-1.1.5"
       sources."with-open-file-0.1.7"
       sources."wrappy-1.0.2"
       sources."ws-8.11.0"
@@ -94845,7 +90458,7 @@ in
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.12.0"
+      sources."aws4-1.13.0"
       sources."axios-0.19.2"
       sources."backo2-1.0.2"
       sources."backoff-2.5.0"
@@ -94860,6 +90473,8 @@ in
       (sources."body-parser-1.19.0" // {
         dependencies = [
           sources."debug-2.6.9"
+          sources."http-errors-1.7.2"
+          sources."inherits-2.0.3"
           sources."qs-6.7.0"
         ];
       })
@@ -94900,7 +90515,7 @@ in
       sources."content-type-1.0.5"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.36.1"
+      sources."core-js-3.37.1"
       sources."core-util-is-1.0.2"
       sources."css-select-1.2.0"
       sources."css-what-2.1.3"
@@ -95001,11 +90616,7 @@ in
       sources."hasown-2.0.2"
       sources."htmlparser2-3.10.1"
       sources."http-cache-semantics-4.1.1"
-      (sources."http-errors-1.7.2" // {
-        dependencies = [
-          sources."inherits-2.0.3"
-        ];
-      })
+      sources."http-errors-1.7.3"
       sources."http-signature-1.2.0"
       sources."http_ece-1.1.0"
       sources."https-proxy-agent-3.0.1"
@@ -95083,7 +90694,7 @@ in
         ];
       })
       sources."negotiator-0.6.3"
-      sources."node-gyp-build-4.8.0"
+      sources."node-gyp-build-4.8.1"
       (sources."node-pre-gyp-0.11.0" // {
         dependencies = [
           sources."semver-5.7.2"
@@ -95124,9 +90735,14 @@ in
       sources."psl-1.9.0"
       sources."pump-3.0.0"
       sources."punycode-2.3.1"
-      sources."qs-6.12.0"
+      sources."qs-6.12.1"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.0"
+      (sources."raw-body-2.4.0" // {
+        dependencies = [
+          sources."http-errors-1.7.2"
+          sources."inherits-2.0.3"
+        ];
+      })
       sources."rc-1.2.8"
       sources."read-1.0.7"
       sources."read-chunk-3.2.0"
@@ -95143,7 +90759,7 @@ in
       sources."rimraf-2.7.1"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."sax-1.3.0"
+      sources."sax-1.4.1"
       sources."semver-6.3.0"
       (sources."send-0.17.1" // {
         dependencies = [
@@ -95501,7 +91117,7 @@ in
       sources."@types/cacheable-request-6.0.3"
       sources."@types/http-cache-semantics-4.0.4"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."@types/responselike-1.0.3"
       sources."abbrev-1.1.1"
       sources."abstract-logging-2.0.1"
@@ -95513,7 +91129,7 @@ in
       sources."after-0.8.2"
       (sources."agent-base-6.0.2" // {
         dependencies = [
-          sources."debug-4.3.4"
+          sources."debug-4.3.5"
           sources."ms-2.1.2"
         ];
       })
@@ -95537,7 +91153,7 @@ in
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.12.0"
+      sources."aws4-1.13.0"
       sources."backo2-1.0.2"
       sources."backoff-2.5.0"
       sources."balanced-match-1.0.2"
@@ -95549,7 +91165,12 @@ in
       sources."blob-0.0.5"
       sources."block-stream-0.0.9"
       sources."bn.js-4.12.0"
-      sources."body-parser-1.19.0"
+      (sources."body-parser-1.19.0" // {
+        dependencies = [
+          sources."http-errors-1.7.2"
+          sources."inherits-2.0.3"
+        ];
+      })
       sources."boolbase-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."buffer-equal-constant-time-1.0.1"
@@ -95582,12 +91203,16 @@ in
       sources."content-type-1.0.5"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.36.1"
+      sources."core-js-3.37.1"
       sources."core-util-is-1.0.2"
       sources."css-select-1.2.0"
       sources."css-what-2.1.3"
       sources."dashdash-1.14.1"
-      sources."debug-2.6.9"
+      (sources."debug-2.6.9" // {
+        dependencies = [
+          sources."ms-2.0.0"
+        ];
+      })
       (sources."decompress-response-6.0.0" // {
         dependencies = [
           sources."mimic-response-3.1.0"
@@ -95615,13 +91240,13 @@ in
         dependencies = [
           sources."cookie-0.3.1"
           sources."debug-4.1.1"
-          sources."ms-2.1.3"
         ];
       })
       (sources."engine.io-client-3.4.4" // {
         dependencies = [
           sources."component-emitter-1.3.1"
           sources."debug-3.1.0"
+          sources."ms-2.0.0"
           sources."parseqs-0.0.6"
           sources."parseuri-0.0.6"
           sources."ws-6.1.4"
@@ -95669,17 +91294,13 @@ in
       sources."has-unicode-2.0.1"
       sources."htmlparser2-3.10.1"
       sources."http-cache-semantics-4.1.1"
-      (sources."http-errors-1.7.2" // {
-        dependencies = [
-          sources."inherits-2.0.3"
-        ];
-      })
+      sources."http-errors-1.7.3"
       sources."http-signature-1.2.0"
       sources."http2-wrapper-1.0.3"
       sources."http_ece-1.1.0"
       (sources."https-proxy-agent-5.0.1" // {
         dependencies = [
-          sources."debug-4.3.4"
+          sources."debug-4.3.5"
           sources."ms-2.1.2"
         ];
       })
@@ -95740,12 +91361,11 @@ in
       sources."minipass-2.9.0"
       sources."minizlib-1.3.3"
       sources."mkdirp-0.5.6"
-      sources."ms-2.0.0"
+      sources."ms-2.1.1"
       sources."mute-stream-0.0.8"
       (sources."needle-2.9.1" // {
         dependencies = [
           sources."debug-3.2.7"
-          sources."ms-2.1.3"
         ];
       })
       sources."negotiator-0.6.3"
@@ -95758,7 +91378,7 @@ in
           sources."tar-2.2.2"
         ];
       })
-      sources."node-gyp-build-4.8.0"
+      sources."node-gyp-build-4.8.1"
       (sources."node-pre-gyp-0.11.0" // {
         dependencies = [
           sources."semver-5.7.2"
@@ -95825,7 +91445,12 @@ in
       sources."qs-6.7.0"
       sources."quick-lru-5.1.1"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.0"
+      (sources."raw-body-2.4.0" // {
+        dependencies = [
+          sources."http-errors-1.7.2"
+          sources."inherits-2.0.3"
+        ];
+      })
       sources."rc-1.2.8"
       sources."read-1.0.7"
       sources."read-chunk-3.2.0"
@@ -95845,13 +91470,9 @@ in
       sources."rimraf-2.7.1"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."sax-1.3.0"
+      sources."sax-1.4.1"
       sources."semver-7.3.2"
-      (sources."send-0.17.1" // {
-        dependencies = [
-          sources."ms-2.1.1"
-        ];
-      })
+      sources."send-0.17.1"
       sources."serve-static-1.14.1"
       sources."set-blocking-2.0.0"
       sources."setprototypeof-1.1.1"
@@ -95859,7 +91480,6 @@ in
       (sources."socket.io-2.3.0" // {
         dependencies = [
           sources."debug-4.1.1"
-          sources."ms-2.1.3"
         ];
       })
       sources."socket.io-adapter-1.1.2"
@@ -95867,12 +91487,11 @@ in
         dependencies = [
           sources."base64-arraybuffer-0.1.5"
           sources."debug-4.1.1"
-          sources."ms-2.1.3"
+          sources."ms-2.0.0"
           (sources."socket.io-parser-3.3.3" // {
             dependencies = [
               sources."component-emitter-1.3.1"
               sources."debug-3.1.0"
-              sources."ms-2.0.0"
             ];
           })
         ];
@@ -95880,7 +91499,6 @@ in
       (sources."socket.io-parser-3.4.3" // {
         dependencies = [
           sources."debug-4.1.1"
-          sources."ms-2.1.3"
         ];
       })
       (sources."socksjs-0.5.0" // {
@@ -95970,7 +91588,7 @@ in
       sources."@types/cacheable-request-6.0.3"
       sources."@types/http-cache-semantics-4.0.4"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."@types/responselike-1.0.3"
       sources."abbrev-1.1.1"
       sources."abstract-logging-2.0.1"
@@ -95982,7 +91600,7 @@ in
       sources."after-0.8.2"
       (sources."agent-base-6.0.2" // {
         dependencies = [
-          sources."debug-4.3.4"
+          sources."debug-4.3.5"
           sources."ms-2.1.2"
         ];
       })
@@ -96006,7 +91624,7 @@ in
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.12.0"
+      sources."aws4-1.13.0"
       sources."backo2-1.0.2"
       sources."backoff-2.5.0"
       sources."balanced-match-1.0.2"
@@ -96018,7 +91636,12 @@ in
       sources."blob-0.0.5"
       sources."block-stream-0.0.9"
       sources."bn.js-4.12.0"
-      sources."body-parser-1.19.0"
+      (sources."body-parser-1.19.0" // {
+        dependencies = [
+          sources."http-errors-1.7.2"
+          sources."inherits-2.0.3"
+        ];
+      })
       sources."boolbase-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."buffer-equal-constant-time-1.0.1"
@@ -96051,12 +91674,16 @@ in
       sources."content-type-1.0.5"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.36.1"
+      sources."core-js-3.37.1"
       sources."core-util-is-1.0.2"
       sources."css-select-1.2.0"
       sources."css-what-2.1.3"
       sources."dashdash-1.14.1"
-      sources."debug-2.6.9"
+      (sources."debug-2.6.9" // {
+        dependencies = [
+          sources."ms-2.0.0"
+        ];
+      })
       (sources."decompress-response-6.0.0" // {
         dependencies = [
           sources."mimic-response-3.1.0"
@@ -96084,13 +91711,13 @@ in
         dependencies = [
           sources."cookie-0.3.1"
           sources."debug-4.1.1"
-          sources."ms-2.1.3"
         ];
       })
       (sources."engine.io-client-3.4.4" // {
         dependencies = [
           sources."component-emitter-1.3.1"
           sources."debug-3.1.0"
+          sources."ms-2.0.0"
           sources."parseqs-0.0.6"
           sources."parseuri-0.0.6"
           sources."ws-6.1.4"
@@ -96138,17 +91765,13 @@ in
       sources."has-unicode-2.0.1"
       sources."htmlparser2-3.10.1"
       sources."http-cache-semantics-4.1.1"
-      (sources."http-errors-1.7.2" // {
-        dependencies = [
-          sources."inherits-2.0.3"
-        ];
-      })
+      sources."http-errors-1.7.3"
       sources."http-signature-1.2.0"
       sources."http2-wrapper-1.0.3"
       sources."http_ece-1.1.0"
       (sources."https-proxy-agent-5.0.1" // {
         dependencies = [
-          sources."debug-4.3.4"
+          sources."debug-4.3.5"
           sources."ms-2.1.2"
         ];
       })
@@ -96209,12 +91832,11 @@ in
       sources."minipass-2.9.0"
       sources."minizlib-1.3.3"
       sources."mkdirp-0.5.6"
-      sources."ms-2.0.0"
+      sources."ms-2.1.1"
       sources."mute-stream-0.0.8"
       (sources."needle-2.9.1" // {
         dependencies = [
           sources."debug-3.2.7"
-          sources."ms-2.1.3"
         ];
       })
       sources."negotiator-0.6.3"
@@ -96227,7 +91849,7 @@ in
           sources."tar-2.2.2"
         ];
       })
-      sources."node-gyp-build-4.8.0"
+      sources."node-gyp-build-4.8.1"
       (sources."node-pre-gyp-0.11.0" // {
         dependencies = [
           sources."semver-5.7.2"
@@ -96294,7 +91916,12 @@ in
       sources."qs-6.7.0"
       sources."quick-lru-5.1.1"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.0"
+      (sources."raw-body-2.4.0" // {
+        dependencies = [
+          sources."http-errors-1.7.2"
+          sources."inherits-2.0.3"
+        ];
+      })
       sources."rc-1.2.8"
       sources."read-1.0.7"
       sources."read-chunk-3.2.0"
@@ -96314,13 +91941,9 @@ in
       sources."rimraf-2.7.1"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."sax-1.3.0"
+      sources."sax-1.4.1"
       sources."semver-7.3.2"
-      (sources."send-0.17.1" // {
-        dependencies = [
-          sources."ms-2.1.1"
-        ];
-      })
+      sources."send-0.17.1"
       sources."serve-static-1.14.1"
       sources."set-blocking-2.0.0"
       sources."setprototypeof-1.1.1"
@@ -96328,7 +91951,6 @@ in
       (sources."socket.io-2.3.0" // {
         dependencies = [
           sources."debug-4.1.1"
-          sources."ms-2.1.3"
         ];
       })
       sources."socket.io-adapter-1.1.2"
@@ -96336,12 +91958,11 @@ in
         dependencies = [
           sources."base64-arraybuffer-0.1.5"
           sources."debug-4.1.1"
-          sources."ms-2.1.3"
+          sources."ms-2.0.0"
           (sources."socket.io-parser-3.3.3" // {
             dependencies = [
               sources."component-emitter-1.3.1"
               sources."debug-3.1.0"
-              sources."ms-2.0.0"
             ];
           })
         ];
@@ -96349,7 +91970,6 @@ in
       (sources."socket.io-parser-3.4.3" // {
         dependencies = [
           sources."debug-4.1.1"
-          sources."ms-2.1.3"
         ];
       })
       (sources."socksjs-0.5.0" // {
@@ -96874,7 +92494,7 @@ in
       sources."supports-color-2.0.0"
       sources."temp-0.8.4"
       sources."tslib-1.14.1"
-      sources."typescript-5.4.2"
+      sources."typescript-5.4.5"
       sources."wordwrap-0.0.3"
       sources."wrappy-1.0.2"
     ];
@@ -96901,16 +92521,16 @@ in
       sources."@jridgewell/resolve-uri-3.1.2"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.9"
-      sources."@swc/core-1.4.8"
+      sources."@swc/core-1.5.24"
       sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.7"
-      sources."@swc/types-0.1.6"
-      sources."@swc/wasm-1.4.8"
-      sources."@tsconfig/node10-1.0.9"
+      sources."@swc/helpers-0.5.11"
+      sources."@swc/types-0.1.7"
+      sources."@swc/wasm-1.5.24"
+      sources."@tsconfig/node10-1.0.11"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."acorn-8.11.3"
       sources."acorn-walk-8.3.2"
       sources."arg-4.1.3"
@@ -96918,7 +92538,7 @@ in
       sources."diff-4.0.2"
       sources."make-error-1.3.6"
       sources."tslib-2.6.2"
-      sources."typescript-5.4.2"
+      sources."typescript-5.4.5"
       sources."undici-types-5.26.5"
       sources."v8-compile-cache-lib-3.0.1"
       sources."yn-3.1.1"
@@ -97010,27 +92630,26 @@ in
   unified-language-server = nodeEnv.buildNodePackage {
     name = "unified-language-server";
     packageName = "unified-language-server";
-    version = "4.0.0";
+    version = "4.0.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/unified-language-server/-/unified-language-server-4.0.0.tgz";
-      sha512 = "QuiszzQwHu8OOUHJpe7sM4UcF8C1zmjpvVZNPca2NE/jW2QVLmQ0iSyujdza/+spOoMwVmPIrv0Ws3Ew3RJO/w==";
+      url = "https://registry.npmjs.org/unified-language-server/-/unified-language-server-4.0.1.tgz";
+      sha512 = "cWjMoW3QcUCtJfQ1ifms2qz8fbO9fuT4YizOSDmv299khazt2e3e5jtJ1fUBBN1zKY/EWir7ZfK+4ffj5xe7Wg==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.23.5"
-      sources."@babel/helper-validator-identifier-7.22.20"
-      sources."@babel/highlight-7.23.4"
+      sources."@babel/code-frame-7.24.6"
+      sources."@babel/helper-validator-identifier-7.24.6"
+      sources."@babel/highlight-7.24.6"
       sources."@isaacs/cliui-8.0.2"
-      sources."@npmcli/config-6.4.1"
-      sources."@npmcli/map-workspaces-3.0.4"
+      sources."@npmcli/config-8.3.3"
+      sources."@npmcli/map-workspaces-3.0.6"
       sources."@npmcli/name-from-folder-2.0.0"
       sources."@types/concat-stream-2.0.3"
       sources."@types/debug-4.1.12"
       sources."@types/is-empty-1.2.3"
       sources."@types/ms-0.7.34"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."@types/supports-color-8.1.3"
       sources."@types/unist-3.0.2"
-      sources."@ungap/structured-clone-1.2.0"
       sources."abbrev-2.0.0"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-6.2.1"
@@ -97049,51 +92668,49 @@ in
       sources."color-name-1.1.4"
       sources."concat-stream-2.0.0"
       sources."cross-spawn-7.0.3"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."eastasianwidth-0.2.0"
       sources."emoji-regex-9.2.2"
       sources."error-ex-1.3.2"
       sources."escape-string-regexp-1.0.5"
+      sources."extend-3.0.2"
       sources."find-up-6.3.0"
       sources."foreground-child-3.1.1"
-      sources."glob-10.3.10"
+      sources."glob-10.4.1"
       sources."has-flag-3.0.0"
       sources."ignore-5.3.1"
-      sources."import-meta-resolve-2.2.2"
+      sources."import-meta-resolve-4.1.0"
       sources."inherits-2.0.4"
-      sources."ini-4.1.2"
+      sources."ini-4.1.3"
       sources."is-arrayish-0.2.1"
       sources."is-empty-1.2.0"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-plain-obj-4.1.0"
       sources."isexe-2.0.0"
-      sources."jackspeak-2.3.6"
+      sources."jackspeak-3.2.3"
       sources."js-tokens-4.0.0"
-      sources."json-parse-even-better-errors-3.0.1"
+      sources."json-parse-even-better-errors-3.0.2"
       sources."lines-and-columns-2.0.4"
-      sources."load-plugin-5.1.0"
+      sources."load-plugin-6.0.3"
       sources."locate-path-7.2.0"
-      sources."lru-cache-10.2.0"
-      sources."minimatch-9.0.3"
-      sources."minipass-7.0.4"
+      sources."lru-cache-10.2.2"
+      sources."minimatch-9.0.4"
+      sources."minipass-7.1.2"
       sources."ms-2.1.2"
-      sources."nopt-7.2.0"
+      sources."nopt-7.2.1"
       sources."npm-normalize-package-bin-3.0.1"
       sources."p-limit-4.0.0"
       sources."p-locate-6.0.0"
       sources."parse-json-7.1.1"
       sources."path-exists-5.0.0"
       sources."path-key-3.1.1"
-      sources."path-scurry-1.10.1"
-      sources."proc-log-3.0.0"
+      sources."path-scurry-1.11.1"
+      sources."picocolors-1.0.1"
+      sources."proc-log-4.2.0"
       sources."read-package-json-fast-3.0.2"
       sources."readable-stream-3.6.2"
       sources."safe-buffer-5.2.1"
-      (sources."semver-7.6.0" // {
-        dependencies = [
-          sources."lru-cache-6.0.0"
-        ];
-      })
+      sources."semver-7.6.2"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-4.1.0"
@@ -97116,20 +92733,14 @@ in
       sources."type-fest-3.13.1"
       sources."typedarray-0.0.6"
       sources."undici-types-5.26.5"
-      (sources."unified-engine-11.2.0" // {
-        dependencies = [
-          sources."@npmcli/config-8.2.0"
-          sources."import-meta-resolve-4.0.0"
-          sources."load-plugin-6.0.2"
-        ];
-      })
+      sources."unified-engine-11.2.1"
       sources."unist-util-inspect-8.0.0"
       sources."unist-util-lsp-2.1.0"
       sources."unist-util-stringify-position-4.0.0"
       sources."util-deprecate-1.0.2"
       sources."vfile-6.0.1"
       sources."vfile-message-4.0.2"
-      (sources."vfile-reporter-8.1.0" // {
+      (sources."vfile-reporter-8.1.1" // {
         dependencies = [
           sources."emoji-regex-10.3.0"
           sources."string-width-6.1.0"
@@ -97154,8 +92765,7 @@ in
           sources."strip-ansi-6.0.1"
         ];
       })
-      sources."yallist-4.0.0"
-      sources."yaml-2.4.1"
+      sources."yaml-2.4.3"
       sources."yocto-queue-1.0.0"
     ];
     buildInputs = globalBuildInputs;
@@ -97171,10 +92781,10 @@ in
   vega-cli = nodeEnv.buildNodePackage {
     name = "vega-cli";
     packageName = "vega-cli";
-    version = "5.28.0";
+    version = "5.29.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/vega-cli/-/vega-cli-5.28.0.tgz";
-      sha512 = "Rb0qwuLV71pkIXVdt78yTJh+KT9Q1avhdWIOwrrc/OHWwRowWlvtoc3pJBHXlGooDqj8gbMkU+MXR3ez2H8glQ==";
+      url = "https://registry.npmjs.org/vega-cli/-/vega-cli-5.29.0.tgz";
+      sha512 = "ndiQEjHrV0DkT7nWEroQerAuZwNZC3c9SZlmVh8a19vY9s/GsPfNdOq2apAN44mtruMtD3tzgajLLxEii7/wEA==";
     };
     dependencies = [
       sources."@mapbox/node-pre-gyp-1.0.11"
@@ -97211,15 +92821,16 @@ in
       sources."d3-path-3.1.0"
       sources."d3-quadtree-3.0.1"
       sources."d3-scale-4.0.2"
+      sources."d3-scale-chromatic-3.1.0"
       sources."d3-shape-3.2.0"
       sources."d3-time-3.1.0"
       sources."d3-time-format-4.1.0"
       sources."d3-timer-3.0.1"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."decompress-response-4.2.1"
       sources."delaunator-5.0.1"
       sources."delegates-1.0.0"
-      sources."detect-libc-2.0.2"
+      sources."detect-libc-2.0.3"
       sources."emoji-regex-8.0.0"
       sources."encoding-0.1.13"
       sources."escalade-3.1.2"
@@ -97239,7 +92850,6 @@ in
       sources."inherits-2.0.4"
       sources."internmap-2.0.3"
       sources."is-fullwidth-code-point-3.0.0"
-      sources."lru-cache-6.0.0"
       (sources."make-dir-3.1.0" // {
         dependencies = [
           sources."semver-6.3.1"
@@ -97269,7 +92879,7 @@ in
       sources."rw-1.3.3"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.6.0"
+      sources."semver-7.6.2"
       sources."set-blocking-2.0.0"
       sources."signal-exit-3.0.7"
       sources."simple-concat-1.0.1"
@@ -97277,7 +92887,7 @@ in
       sources."string-width-4.2.3"
       sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.1"
-      sources."tar-6.2.0"
+      sources."tar-6.2.1"
       (sources."topojson-client-3.1.0" // {
         dependencies = [
           sources."commander-2.20.3"
@@ -97285,11 +92895,11 @@ in
       })
       sources."tr46-0.0.3"
       sources."util-deprecate-1.0.2"
-      sources."vega-5.28.0"
+      sources."vega-5.29.0"
       sources."vega-canvas-1.2.7"
       sources."vega-crossfilter-4.1.1"
       sources."vega-dataflow-5.7.5"
-      sources."vega-encode-4.9.2"
+      sources."vega-encode-4.10.0"
       sources."vega-event-selector-3.0.1"
       sources."vega-expression-5.1.0"
       sources."vega-force-4.2.0"
@@ -97303,15 +92913,15 @@ in
       sources."vega-projection-1.6.0"
       sources."vega-regression-1.2.0"
       sources."vega-runtime-6.1.4"
-      sources."vega-scale-7.3.1"
-      sources."vega-scenegraph-4.11.2"
+      sources."vega-scale-7.4.0"
+      sources."vega-scenegraph-4.12.0"
       sources."vega-selections-5.4.2"
       sources."vega-statistics-1.9.0"
       sources."vega-time-2.1.1"
       sources."vega-transforms-4.11.1"
       sources."vega-typings-1.1.0"
       sources."vega-util-1.17.2"
-      sources."vega-view-5.12.0"
+      sources."vega-view-5.12.1"
       sources."vega-view-transforms-4.5.9"
       sources."vega-voronoi-4.2.2"
       sources."vega-wordcloud-4.1.4"
@@ -97338,10 +92948,10 @@ in
   vega-lite = nodeEnv.buildNodePackage {
     name = "vega-lite";
     packageName = "vega-lite";
-    version = "5.17.0";
+    version = "5.18.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/vega-lite/-/vega-lite-5.17.0.tgz";
-      sha512 = "PPm1HRdDFDdl2fga3cHm3lHjJV/xcB+Cn77xe7Av1yRLY1GMbPaJS42s+e7XHGmbeDee+H/KK9lUdQK28xs7nA==";
+      url = "https://registry.npmjs.org/vega-lite/-/vega-lite-5.18.1.tgz";
+      sha512 = "TcwEUqymDjLC+eWyXJzpOd7OnHvYH1SiVqjj9r22BSq5N0I6f0rodxtgQOoX3NJFpJp84E7V8o/jDVDjeo+zxA==";
     };
     dependencies = [
       sources."@types/estree-1.0.5"
@@ -97366,6 +92976,7 @@ in
       sources."d3-path-3.1.0"
       sources."d3-quadtree-3.0.1"
       sources."d3-scale-4.0.2"
+      sources."d3-scale-chromatic-3.1.0"
       sources."d3-shape-3.2.0"
       sources."d3-time-3.1.0"
       sources."d3-time-format-4.1.0"
@@ -97393,11 +93004,11 @@ in
       })
       sources."tr46-0.0.3"
       sources."tslib-2.6.2"
-      sources."vega-5.28.0"
+      sources."vega-5.29.0"
       sources."vega-canvas-1.2.7"
       sources."vega-crossfilter-4.1.1"
       sources."vega-dataflow-5.7.5"
-      sources."vega-encode-4.9.2"
+      sources."vega-encode-4.10.0"
       sources."vega-event-selector-3.0.1"
       sources."vega-expression-5.1.0"
       sources."vega-force-4.2.0"
@@ -97411,15 +93022,15 @@ in
       sources."vega-projection-1.6.0"
       sources."vega-regression-1.2.0"
       sources."vega-runtime-6.1.4"
-      sources."vega-scale-7.3.1"
-      sources."vega-scenegraph-4.11.2"
+      sources."vega-scale-7.4.0"
+      sources."vega-scenegraph-4.12.0"
       sources."vega-selections-5.4.2"
       sources."vega-statistics-1.9.0"
       sources."vega-time-2.1.1"
       sources."vega-transforms-4.11.1"
       sources."vega-typings-1.1.0"
       sources."vega-util-1.17.2"
-      sources."vega-view-5.12.0"
+      sources."vega-view-5.12.1"
       sources."vega-view-transforms-4.5.9"
       sources."vega-voronoi-4.2.2"
       sources."vega-wordcloud-4.1.4"
@@ -97443,10 +93054,10 @@ in
   vercel = nodeEnv.buildNodePackage {
     name = "vercel";
     packageName = "vercel";
-    version = "33.6.1";
+    version = "34.2.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/vercel/-/vercel-33.6.1.tgz";
-      sha512 = "Y21ViEdTuXLkvz1vEvm8jvOqU58G0fntPpST8Xr2eoshNyrgntIL0VlASrDzgEW2zkZ8gutrXFbD9Y4V8Uerrw==";
+      url = "https://registry.npmjs.org/vercel/-/vercel-34.2.4.tgz";
+      sha512 = "C6YQrshh+gpNngQf0Nj1Uhopj/hhxmsBaUKBj1M8vmY8p8d3EmgZ+Q/6erjnqY+S7+QLkEtp0st6wZ7VhA+hJQ==";
     };
     dependencies = [
       sources."@cspotcode/source-map-support-0.8.1"
@@ -97474,7 +93085,7 @@ in
             ];
           })
           sources."mkdirp-1.0.4"
-          sources."tar-6.2.0"
+          sources."tar-6.2.1"
         ];
       })
       sources."@nodelib/fs.scandir-2.1.5"
@@ -97482,52 +93093,52 @@ in
       sources."@nodelib/fs.walk-1.2.8"
       sources."@rollup/pluginutils-4.2.1"
       sources."@sinclair/typebox-0.25.24"
-      sources."@swc/core-1.4.8"
+      sources."@swc/core-1.5.24"
       sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.7"
-      sources."@swc/types-0.1.6"
-      sources."@swc/wasm-1.4.8"
+      sources."@swc/helpers-0.5.11"
+      sources."@swc/types-0.1.7"
+      sources."@swc/wasm-1.5.24"
       sources."@tootallnate/once-2.0.0"
       (sources."@ts-morph/common-0.11.1" // {
         dependencies = [
           sources."mkdirp-1.0.4"
         ];
       })
-      sources."@tsconfig/node10-1.0.9"
+      sources."@tsconfig/node10-1.0.11"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
       sources."@types/json-schema-7.0.15"
-      sources."@types/node-14.18.33"
-      sources."@vercel/build-utils-7.9.1"
+      sources."@types/node-16.18.11"
+      sources."@vercel/build-utils-8.2.1"
       sources."@vercel/error-utils-2.0.2"
       sources."@vercel/fun-1.1.0"
       sources."@vercel/gatsby-plugin-vercel-analytics-1.0.11"
-      (sources."@vercel/gatsby-plugin-vercel-builder-2.0.22" // {
+      (sources."@vercel/gatsby-plugin-vercel-builder-2.0.32" // {
         dependencies = [
           sources."fs-extra-11.1.0"
           sources."jsonfile-6.1.0"
           sources."universalify-2.0.1"
         ];
       })
-      sources."@vercel/go-3.0.5"
+      sources."@vercel/go-3.1.1"
       sources."@vercel/hydrogen-1.0.2"
-      sources."@vercel/next-4.1.6"
-      sources."@vercel/nft-0.26.4"
-      (sources."@vercel/node-3.0.24" // {
+      sources."@vercel/next-4.2.14"
+      sources."@vercel/nft-0.27.0"
+      (sources."@vercel/node-3.1.6" // {
         dependencies = [
           sources."async-listen-3.0.0"
           sources."node-fetch-2.6.9"
           sources."path-to-regexp-6.2.1"
         ];
       })
-      sources."@vercel/python-4.1.1"
-      (sources."@vercel/redwood-2.0.8" // {
+      sources."@vercel/python-4.3.0"
+      (sources."@vercel/redwood-2.0.9" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      sources."@vercel/remix-builder-2.1.4"
+      sources."@vercel/remix-builder-2.1.6"
       (sources."@vercel/routing-utils-3.1.0" // {
         dependencies = [
           sources."ajv-6.12.6"
@@ -97535,12 +93146,12 @@ in
           sources."path-to-regexp-6.1.0"
         ];
       })
-      sources."@vercel/ruby-2.0.5"
-      sources."@vercel/static-build-2.4.4"
+      sources."@vercel/ruby-2.1.0"
+      sources."@vercel/static-build-2.5.10"
       sources."@vercel/static-config-3.0.0"
       sources."abbrev-1.1.1"
       sources."acorn-8.11.3"
-      sources."acorn-import-attributes-1.9.2"
+      sources."acorn-import-attributes-1.9.5"
       sources."acorn-walk-8.3.2"
       sources."agent-base-6.0.2"
       sources."ajv-8.6.3"
@@ -97556,7 +93167,7 @@ in
       sources."binary-extensions-2.3.0"
       sources."bindings-1.5.0"
       sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."buffer-crc32-0.2.13"
       sources."bytes-3.1.0"
       sources."chokidar-3.3.1"
@@ -97573,7 +93184,7 @@ in
       sources."debug-4.1.1"
       sources."delegates-1.0.0"
       sources."depd-1.1.2"
-      sources."detect-libc-2.0.2"
+      sources."detect-libc-2.0.3"
       sources."diff-4.0.2"
       (sources."edge-runtime-2.5.9" // {
         dependencies = [
@@ -97620,7 +93231,7 @@ in
       sources."fastq-1.17.1"
       sources."fd-slicer-1.1.0"
       sources."file-uri-to-path-1.0.0"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."fs-extra-8.1.0"
       sources."fs-minipass-1.2.7"
       sources."fs.realpath-1.0.0"
@@ -97659,7 +93270,7 @@ in
       sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
       sources."micro-9.3.5-canary.3"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."mimic-fn-2.1.0"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.8"
@@ -97673,7 +93284,7 @@ in
       sources."mri-1.2.0"
       sources."ms-2.1.1"
       sources."node-fetch-2.6.7"
-      sources."node-gyp-build-4.8.0"
+      sources."node-gyp-build-4.8.1"
       sources."nopt-5.0.0"
       sources."normalize-path-3.0.0"
       sources."npm-run-path-4.0.1"
@@ -97805,20 +93416,9 @@ in
       sha512 = "61kbdO2COZWBMC4wq59QfDdev9ruXd0226f57DFJTFpFXv85S+qnHakQlAmbSYFFLGKcx95HB2UjnuQh4YRwFA==";
     };
     dependencies = [
-      sources."@aashutoshrathi/word-wrap-1.2.6"
-      (sources."@babel/code-frame-7.23.5" // {
-        dependencies = [
-          sources."ansi-styles-3.2.1"
-          sources."chalk-2.4.2"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."escape-string-regexp-1.0.5"
-          sources."has-flag-3.0.0"
-          sources."supports-color-5.5.0"
-        ];
-      })
-      sources."@babel/helper-validator-identifier-7.22.20"
-      (sources."@babel/highlight-7.23.4" // {
+      sources."@babel/code-frame-7.24.6"
+      sources."@babel/helper-validator-identifier-7.24.6"
+      (sources."@babel/highlight-7.24.6" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -97830,12 +93430,12 @@ in
         ];
       })
       sources."@eslint-community/eslint-utils-4.4.0"
-      sources."@eslint-community/regexpp-4.10.0"
+      sources."@eslint-community/regexpp-4.10.1"
       sources."@eslint/eslintrc-2.1.4"
       sources."@eslint/js-8.57.0"
       sources."@humanwhocodes/config-array-0.11.14"
       sources."@humanwhocodes/module-importer-1.0.1"
-      sources."@humanwhocodes/object-schema-2.0.2"
+      sources."@humanwhocodes/object-schema-2.0.3"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
@@ -97860,7 +93460,7 @@ in
       sources."concat-map-0.0.1"
       sources."cross-spawn-7.0.3"
       sources."cssesc-3.0.0"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."deep-is-0.1.4"
       sources."define-data-property-1.1.4"
       sources."diff-4.0.2"
@@ -97869,7 +93469,7 @@ in
       sources."es-errors-1.3.0"
       sources."escape-string-regexp-4.0.0"
       sources."eslint-8.57.0"
-      sources."eslint-plugin-vue-9.23.0"
+      sources."eslint-plugin-vue-9.26.0"
       sources."eslint-scope-7.2.2"
       sources."eslint-visitor-keys-3.4.3"
       sources."espree-9.6.1"
@@ -97926,7 +93526,6 @@ in
       sources."locate-path-6.0.0"
       sources."lodash-4.17.21"
       sources."lodash.merge-4.6.2"
-      sources."lru-cache-6.0.0"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.8"
       sources."mkdirp-0.5.6"
@@ -97935,7 +93534,7 @@ in
       sources."nth-check-2.1.1"
       sources."object-assign-4.1.1"
       sources."once-1.4.0"
-      sources."optionator-0.9.3"
+      sources."optionator-0.9.4"
       sources."p-limit-3.1.0"
       sources."p-locate-5.0.0"
       sources."parent-module-1.0.1"
@@ -97943,10 +93542,11 @@ in
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
-      sources."postcss-selector-parser-6.0.16"
+      sources."picocolors-1.0.1"
+      sources."postcss-selector-parser-6.1.0"
       sources."prelude-ls-1.2.1"
       sources."prettier-2.8.8"
-      sources."pug-error-2.0.0"
+      sources."pug-error-2.1.0"
       sources."pug-lexer-5.0.1"
       sources."punycode-2.3.1"
       sources."queue-microtask-1.2.3"
@@ -97955,7 +93555,7 @@ in
       sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
       sources."run-parallel-1.2.0"
-      sources."semver-7.6.0"
+      sources."semver-7.6.2"
       sources."set-function-length-1.2.2"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
@@ -97986,11 +93586,11 @@ in
       sources."typescript-4.9.5"
       sources."uri-js-4.4.1"
       sources."util-deprecate-1.0.2"
-      sources."vue-eslint-parser-9.4.2"
+      sources."vue-eslint-parser-9.4.3"
       sources."which-2.0.2"
+      sources."word-wrap-1.2.5"
       sources."wrappy-1.0.2"
       sources."xml-name-validator-4.0.0"
-      sources."yallist-4.0.0"
       sources."yocto-queue-0.1.0"
     ];
     buildInputs = globalBuildInputs;
@@ -98173,7 +93773,7 @@ in
       sha512 = "KX07T/WHnXfmoo2wvjLlx0eKeGIotB0C5GnfWVHylPfSa7BuNo0bktRCL2+zJ3g72IKc1psuRIGZIn7/soexag==";
     };
     dependencies = [
-      (sources."@babel/runtime-7.24.0" // {
+      (sources."@babel/runtime-7.24.6" // {
         dependencies = [
           sources."regenerator-runtime-0.14.1"
         ];
@@ -98209,19 +93809,7 @@ in
       sources."@jimp/tiff-0.16.13"
       sources."@jimp/types-0.16.13"
       sources."@jimp/utils-0.16.13"
-      sources."@resvg/resvg-js-2.6.0"
-      sources."@resvg/resvg-js-android-arm-eabi-2.6.0"
-      sources."@resvg/resvg-js-android-arm64-2.6.0"
-      sources."@resvg/resvg-js-darwin-arm64-2.6.0"
-      sources."@resvg/resvg-js-darwin-x64-2.6.0"
-      sources."@resvg/resvg-js-linux-arm-gnueabihf-2.6.0"
-      sources."@resvg/resvg-js-linux-arm64-gnu-2.6.0"
-      sources."@resvg/resvg-js-linux-arm64-musl-2.6.0"
-      sources."@resvg/resvg-js-linux-x64-gnu-2.6.0"
-      sources."@resvg/resvg-js-linux-x64-musl-2.6.0"
-      sources."@resvg/resvg-js-win32-arm64-msvc-2.6.0"
-      sources."@resvg/resvg-js-win32-ia32-msvc-2.6.0"
-      sources."@resvg/resvg-js-win32-x64-msvc-2.6.0"
+      sources."@resvg/resvg-js-2.6.2"
       sources."@tokenizer/token-0.3.0"
       sources."@types/node-16.9.1"
       sources."ansi-regex-5.0.1"
@@ -98280,7 +93868,7 @@ in
       sources."regenerator-runtime-0.13.11"
       sources."require-directory-2.1.1"
       sources."safe-buffer-5.2.1"
-      sources."sax-1.3.0"
+      sources."sax-1.4.1"
       sources."string-width-4.2.3"
       sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.1"
@@ -98317,10 +93905,10 @@ in
   webpack = nodeEnv.buildNodePackage {
     name = "webpack";
     packageName = "webpack";
-    version = "5.90.3";
+    version = "5.91.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz";
-      sha512 = "h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==";
+      url = "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz";
+      sha512 = "rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==";
     };
     dependencies = [
       sources."@jridgewell/gen-mapping-0.3.5"
@@ -98329,11 +93917,11 @@ in
       sources."@jridgewell/source-map-0.3.6"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.25"
-      sources."@types/eslint-8.56.5"
+      sources."@types/eslint-8.56.10"
       sources."@types/eslint-scope-3.7.7"
       sources."@types/estree-1.0.5"
       sources."@types/json-schema-7.0.15"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."@webassemblyjs/ast-1.12.1"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.6"
       sources."@webassemblyjs/helper-api-error-1.11.6"
@@ -98357,12 +93945,12 @@ in
       sources."ajv-keywords-3.5.2"
       sources."browserslist-4.23.0"
       sources."buffer-from-1.1.2"
-      sources."caniuse-lite-1.0.30001599"
-      sources."chrome-trace-event-1.0.3"
+      sources."caniuse-lite-1.0.30001627"
+      sources."chrome-trace-event-1.0.4"
       sources."commander-2.20.3"
-      sources."electron-to-chromium-1.4.710"
-      sources."enhanced-resolve-5.16.0"
-      sources."es-module-lexer-1.4.1"
+      sources."electron-to-chromium-1.4.789"
+      sources."enhanced-resolve-5.16.1"
+      sources."es-module-lexer-1.5.3"
       sources."escalade-3.1.2"
       sources."eslint-scope-5.1.1"
       (sources."esrecurse-4.3.0" // {
@@ -98386,7 +93974,7 @@ in
       sources."mime-types-2.1.35"
       sources."neo-async-2.6.2"
       sources."node-releases-2.0.14"
-      sources."picocolors-1.0.0"
+      sources."picocolors-1.0.1"
       sources."punycode-2.3.1"
       sources."randombytes-2.1.0"
       sources."safe-buffer-5.2.1"
@@ -98396,13 +93984,13 @@ in
       sources."source-map-support-0.5.21"
       sources."supports-color-8.1.1"
       sources."tapable-2.2.1"
-      sources."terser-5.29.2"
+      sources."terser-5.31.0"
       sources."terser-webpack-plugin-5.3.10"
       sources."undici-types-5.26.5"
-      sources."update-browserslist-db-1.0.13"
+      sources."update-browserslist-db-1.0.16"
       sources."uri-js-4.4.1"
       sources."watchpack-2.4.1"
-      sources."webpack-5.90.3"
+      sources."webpack-5.91.0"
       sources."webpack-sources-3.2.3"
     ];
     buildInputs = globalBuildInputs;
@@ -98431,11 +94019,11 @@ in
       sources."@jridgewell/source-map-0.3.6"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.25"
-      sources."@types/eslint-8.56.5"
+      sources."@types/eslint-8.56.10"
       sources."@types/eslint-scope-3.7.7"
       sources."@types/estree-1.0.5"
       sources."@types/json-schema-7.0.15"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."@webassemblyjs/ast-1.12.1"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.6"
       sources."@webassemblyjs/helper-api-error-1.11.6"
@@ -98462,16 +94050,16 @@ in
       sources."ajv-keywords-3.5.2"
       sources."browserslist-4.23.0"
       sources."buffer-from-1.1.2"
-      sources."caniuse-lite-1.0.30001599"
-      sources."chrome-trace-event-1.0.3"
+      sources."caniuse-lite-1.0.30001627"
+      sources."chrome-trace-event-1.0.4"
       sources."clone-deep-4.0.1"
       sources."colorette-2.0.20"
       sources."commander-10.0.1"
       sources."cross-spawn-7.0.3"
-      sources."electron-to-chromium-1.4.710"
-      sources."enhanced-resolve-5.16.0"
-      sources."envinfo-7.11.1"
-      sources."es-module-lexer-1.4.1"
+      sources."electron-to-chromium-1.4.789"
+      sources."enhanced-resolve-5.16.1"
+      sources."envinfo-7.13.0"
+      sources."es-module-lexer-1.5.3"
       sources."escalade-3.1.2"
       sources."eslint-scope-5.1.1"
       (sources."esrecurse-4.3.0" // {
@@ -98514,7 +94102,7 @@ in
       sources."path-exists-4.0.0"
       sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
-      sources."picocolors-1.0.0"
+      sources."picocolors-1.0.1"
       sources."pkg-dir-4.2.0"
       sources."punycode-2.3.1"
       sources."randombytes-2.1.0"
@@ -98533,17 +94121,17 @@ in
       sources."supports-color-8.1.1"
       sources."supports-preserve-symlinks-flag-1.0.0"
       sources."tapable-2.2.1"
-      (sources."terser-5.29.2" // {
+      (sources."terser-5.31.0" // {
         dependencies = [
           sources."commander-2.20.3"
         ];
       })
       sources."terser-webpack-plugin-5.3.10"
       sources."undici-types-5.26.5"
-      sources."update-browserslist-db-1.0.13"
+      sources."update-browserslist-db-1.0.16"
       sources."uri-js-4.4.1"
       sources."watchpack-2.4.1"
-      sources."webpack-5.90.3"
+      sources."webpack-5.91.0"
       sources."webpack-cli-5.1.4"
       sources."webpack-merge-5.10.0"
       sources."webpack-sources-3.2.3"
@@ -98563,10 +94151,10 @@ in
   webpack-dev-server = nodeEnv.buildNodePackage {
     name = "webpack-dev-server";
     packageName = "webpack-dev-server";
-    version = "5.0.3";
+    version = "5.0.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.0.3.tgz";
-      sha512 = "4aj4I8FJLsFbd4Vt6YBXC8CWrOOwviEI9DdVTu9hrgIBGWs4oKOVfDnaRc+vgf1JUSir1psph1ChPFDkTGHR2Q==";
+      url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.0.4.tgz";
+      sha512 = "dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==";
     };
     dependencies = [
       sources."@isaacs/cliui-8.0.2"
@@ -98576,28 +94164,31 @@ in
       sources."@jridgewell/source-map-0.3.6"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.25"
-      sources."@leichtgewicht/ip-codec-2.0.4"
+      sources."@jsonjoy.com/base64-1.1.2"
+      sources."@jsonjoy.com/json-pack-1.0.4"
+      sources."@jsonjoy.com/util-1.1.3"
+      sources."@leichtgewicht/ip-codec-2.0.5"
       sources."@types/body-parser-1.19.5"
       sources."@types/bonjour-3.5.13"
       sources."@types/connect-3.4.38"
       sources."@types/connect-history-api-fallback-1.5.4"
-      sources."@types/eslint-8.56.5"
+      sources."@types/eslint-8.56.10"
       sources."@types/eslint-scope-3.7.7"
       sources."@types/estree-1.0.5"
       sources."@types/express-4.17.21"
-      sources."@types/express-serve-static-core-4.17.43"
+      sources."@types/express-serve-static-core-4.19.3"
       sources."@types/http-errors-2.0.4"
       sources."@types/http-proxy-1.17.14"
       sources."@types/json-schema-7.0.15"
       sources."@types/mime-1.3.5"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."@types/node-forge-1.3.11"
-      sources."@types/qs-6.9.13"
+      sources."@types/qs-6.9.15"
       sources."@types/range-parser-1.2.7"
       sources."@types/retry-0.12.2"
       sources."@types/send-0.17.4"
       sources."@types/serve-index-1.9.4"
-      sources."@types/serve-static-1.15.5"
+      sources."@types/serve-static-1.15.7"
       sources."@types/sockjs-0.3.36"
       sources."@types/ws-8.5.10"
       sources."@webassemblyjs/ast-1.12.1"
@@ -98620,7 +94211,7 @@ in
       sources."accepts-1.3.8"
       sources."acorn-8.11.3"
       sources."acorn-import-assertions-1.9.0"
-      sources."ajv-8.12.0"
+      sources."ajv-8.15.0"
       sources."ajv-formats-2.1.1"
       sources."ajv-keywords-5.1.0"
       sources."ansi-html-community-0.0.8"
@@ -98638,16 +94229,16 @@ in
       })
       sources."bonjour-service-1.2.1"
       sources."brace-expansion-2.0.1"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."browserslist-4.23.0"
       sources."buffer-from-1.1.2"
       sources."bufferutil-4.0.8"
       sources."bundle-name-4.1.0"
       sources."bytes-3.0.0"
       sources."call-bind-1.0.7"
-      sources."caniuse-lite-1.0.30001599"
+      sources."caniuse-lite-1.0.30001627"
       sources."chokidar-3.6.0"
-      sources."chrome-trace-event-1.0.3"
+      sources."chrome-trace-event-1.0.4"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."colorette-2.0.20"
@@ -98661,7 +94252,7 @@ in
         ];
       })
       sources."content-type-1.0.5"
-      sources."cookie-0.5.0"
+      sources."cookie-0.6.0"
       sources."cookie-signature-1.0.6"
       sources."core-util-is-1.0.3"
       sources."cross-spawn-7.0.3"
@@ -98677,13 +94268,13 @@ in
       sources."dns-packet-5.6.1"
       sources."eastasianwidth-0.2.0"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.4.710"
+      sources."electron-to-chromium-1.4.789"
       sources."emoji-regex-9.2.2"
       sources."encodeurl-1.0.2"
-      sources."enhanced-resolve-5.16.0"
+      sources."enhanced-resolve-5.16.1"
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
-      sources."es-module-lexer-1.4.1"
+      sources."es-module-lexer-1.5.3"
       sources."escalade-3.1.2"
       sources."escape-html-1.0.3"
       sources."eslint-scope-5.1.1"
@@ -98697,15 +94288,16 @@ in
       sources."eventemitter3-4.0.7"
       sources."events-3.3.0"
       sources."execa-5.1.1"
-      (sources."express-4.18.3" // {
+      (sources."express-4.19.2" // {
         dependencies = [
           sources."safe-buffer-5.2.1"
         ];
       })
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
+      sources."fast-uri-2.3.0"
       sources."faye-websocket-0.11.4"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."finalhandler-1.2.0"
       sources."follow-redirects-1.15.6"
       (sources."foreground-child-3.1.1" // {
@@ -98718,7 +94310,7 @@ in
       sources."function-bind-1.1.2"
       sources."get-intrinsic-1.2.4"
       sources."get-stream-6.0.1"
-      sources."glob-10.3.10"
+      sources."glob-10.4.1"
       sources."glob-parent-5.1.2"
       sources."glob-to-regexp-0.4.1"
       sources."gopd-1.0.1"
@@ -98741,48 +94333,49 @@ in
       sources."http-proxy-1.18.1"
       sources."http-proxy-middleware-2.0.6"
       sources."human-signals-2.1.0"
+      sources."hyperdyperid-1.2.0"
       sources."iconv-lite-0.4.24"
       sources."inherits-2.0.4"
-      sources."ipaddr.js-2.1.0"
+      sources."ipaddr.js-2.2.0"
       sources."is-binary-path-2.1.0"
       sources."is-docker-3.0.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
       sources."is-inside-container-1.0.0"
-      sources."is-network-error-1.0.1"
+      sources."is-network-error-1.1.0"
       sources."is-number-7.0.0"
       sources."is-plain-obj-3.0.0"
       sources."is-stream-2.0.1"
       sources."is-wsl-3.1.0"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
-      sources."jackspeak-2.3.6"
+      sources."jackspeak-3.2.3"
       sources."jest-worker-27.5.1"
       sources."json-parse-even-better-errors-2.3.1"
       sources."json-schema-traverse-1.0.0"
       sources."launch-editor-2.6.1"
       sources."loader-runner-4.3.0"
-      sources."lru-cache-10.2.0"
+      sources."lru-cache-10.2.2"
       sources."media-typer-0.3.0"
-      sources."memfs-4.7.7"
+      sources."memfs-4.9.2"
       sources."merge-descriptors-1.0.1"
       sources."merge-stream-2.0.0"
       sources."methods-1.1.2"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."mime-1.6.0"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
       sources."mimic-fn-2.1.0"
       sources."minimalistic-assert-1.0.1"
-      sources."minimatch-9.0.3"
-      sources."minipass-7.0.4"
+      sources."minimatch-9.0.4"
+      sources."minipass-7.1.2"
       sources."ms-2.0.0"
       sources."multicast-dns-7.2.5"
       sources."negotiator-0.6.3"
       sources."neo-async-2.6.2"
       sources."node-forge-1.3.1"
-      sources."node-gyp-build-4.8.0"
+      sources."node-gyp-build-4.8.1"
       sources."node-releases-2.0.14"
       sources."normalize-path-3.0.0"
       sources."npm-run-path-4.0.1"
@@ -98795,9 +94388,9 @@ in
       sources."p-retry-6.2.0"
       sources."parseurl-1.3.3"
       sources."path-key-3.1.1"
-      sources."path-scurry-1.10.1"
+      sources."path-scurry-1.11.1"
       sources."path-to-regexp-0.1.7"
-      sources."picocolors-1.0.0"
+      sources."picocolors-1.0.1"
       sources."picomatch-2.3.1"
       sources."process-nextick-args-2.0.1"
       (sources."proxy-addr-2.0.7" // {
@@ -98819,7 +94412,7 @@ in
       sources."require-from-string-2.0.2"
       sources."requires-port-1.0.0"
       sources."retry-0.13.1"
-      sources."rimraf-5.0.5"
+      sources."rimraf-5.0.7"
       sources."run-applescript-7.0.0"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
@@ -98850,17 +94443,18 @@ in
       sources."side-channel-1.0.6"
       sources."signal-exit-3.0.7"
       sources."sockjs-0.3.24"
+      sources."sonic-forest-1.0.3"
       sources."source-map-0.6.1"
       sources."source-map-support-0.5.21"
       (sources."spdy-4.0.2" // {
         dependencies = [
-          sources."debug-4.3.4"
+          sources."debug-4.3.5"
           sources."ms-2.1.2"
         ];
       })
       (sources."spdy-transport-3.0.0" // {
         dependencies = [
-          sources."debug-4.3.4"
+          sources."debug-4.3.5"
           sources."ms-2.1.2"
         ];
       })
@@ -98882,7 +94476,7 @@ in
       sources."strip-final-newline-2.0.0"
       sources."supports-color-8.1.1"
       sources."tapable-2.2.1"
-      sources."terser-5.29.2"
+      sources."terser-5.31.0"
       (sources."terser-webpack-plugin-5.3.10" // {
         dependencies = [
           sources."ajv-6.12.6"
@@ -98891,23 +94485,25 @@ in
           sources."schema-utils-3.3.0"
         ];
       })
+      sources."thingies-1.21.0"
       sources."thunky-1.1.0"
       sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.1"
+      sources."tree-dump-1.0.1"
       sources."tslib-2.6.2"
       sources."type-is-1.6.18"
       sources."undici-types-5.26.5"
       sources."unpipe-1.0.0"
-      sources."update-browserslist-db-1.0.13"
+      sources."update-browserslist-db-1.0.16"
       sources."uri-js-4.4.1"
-      sources."utf-8-validate-6.0.3"
+      sources."utf-8-validate-6.0.4"
       sources."util-deprecate-1.0.2"
       sources."utils-merge-1.0.1"
       sources."uuid-8.3.2"
       sources."vary-1.1.2"
       sources."watchpack-2.4.1"
       sources."wbuf-1.7.3"
-      (sources."webpack-5.90.3" // {
+      (sources."webpack-5.91.0" // {
         dependencies = [
           sources."ajv-6.12.6"
           sources."ajv-keywords-3.5.2"
@@ -98915,7 +94511,7 @@ in
           sources."schema-utils-3.3.0"
         ];
       })
-      sources."webpack-dev-middleware-7.0.0"
+      sources."webpack-dev-middleware-7.2.1"
       sources."webpack-sources-3.2.3"
       sources."websocket-driver-0.7.4"
       sources."websocket-extensions-0.1.4"
@@ -98929,7 +94525,7 @@ in
           sources."strip-ansi-6.0.1"
         ];
       })
-      sources."ws-8.16.0"
+      sources."ws-8.17.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -98960,11 +94556,11 @@ in
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
       sources."@sindresorhus/merge-streams-2.3.0"
-      sources."@types/eslint-8.56.5"
+      sources."@types/eslint-8.56.10"
       sources."@types/eslint-scope-3.7.7"
       sources."@types/estree-1.0.5"
       sources."@types/json-schema-7.0.15"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."@webassemblyjs/ast-1.12.1"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.6"
       sources."@webassemblyjs/helper-api-error-1.11.6"
@@ -98984,18 +94580,18 @@ in
       sources."@xtuc/long-4.2.2"
       sources."acorn-8.11.3"
       sources."acorn-import-assertions-1.9.0"
-      sources."ajv-8.12.0"
+      sources."ajv-8.15.0"
       sources."ajv-formats-2.1.1"
       sources."ajv-keywords-5.1.0"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."browserslist-4.23.0"
       sources."buffer-from-1.1.2"
-      sources."caniuse-lite-1.0.30001599"
-      sources."chrome-trace-event-1.0.3"
+      sources."caniuse-lite-1.0.30001627"
+      sources."chrome-trace-event-1.0.4"
       sources."commander-2.20.3"
-      sources."electron-to-chromium-1.4.710"
-      sources."enhanced-resolve-5.16.0"
-      sources."es-module-lexer-1.4.1"
+      sources."electron-to-chromium-1.4.789"
+      sources."enhanced-resolve-5.16.1"
+      sources."es-module-lexer-1.5.3"
       sources."escalade-3.1.2"
       sources."eslint-scope-5.1.1"
       (sources."esrecurse-4.3.0" // {
@@ -99012,8 +94608,9 @@ in
         ];
       })
       sources."fast-json-stable-stringify-2.1.0"
+      sources."fast-uri-2.3.0"
       sources."fastq-1.17.1"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."glob-parent-6.0.2"
       sources."glob-to-regexp-0.4.1"
       sources."globby-14.0.1"
@@ -99029,14 +94626,14 @@ in
       sources."loader-runner-4.3.0"
       sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
+      sources."micromatch-4.0.7"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
       sources."neo-async-2.6.2"
       sources."node-releases-2.0.14"
       sources."normalize-path-3.0.0"
       sources."path-type-5.0.0"
-      sources."picocolors-1.0.0"
+      sources."picocolors-1.0.1"
       sources."picomatch-2.3.1"
       sources."punycode-2.3.1"
       sources."queue-microtask-1.2.3"
@@ -99052,7 +94649,7 @@ in
       sources."source-map-support-0.5.21"
       sources."supports-color-8.1.1"
       sources."tapable-2.2.1"
-      sources."terser-5.29.2"
+      sources."terser-5.31.0"
       (sources."terser-webpack-plugin-5.3.10" // {
         dependencies = [
           sources."ajv-6.12.6"
@@ -99064,10 +94661,10 @@ in
       sources."to-regex-range-5.0.1"
       sources."undici-types-5.26.5"
       sources."unicorn-magic-0.1.0"
-      sources."update-browserslist-db-1.0.13"
+      sources."update-browserslist-db-1.0.16"
       sources."uri-js-4.4.1"
       sources."watchpack-2.4.1"
-      (sources."webpack-5.90.3" // {
+      (sources."webpack-5.91.0" // {
         dependencies = [
           sources."ajv-6.12.6"
           sources."ajv-keywords-3.5.2"
@@ -99090,65 +94687,71 @@ in
   webtorrent-cli = nodeEnv.buildNodePackage {
     name = "webtorrent-cli";
     packageName = "webtorrent-cli";
-    version = "4.1.0";
+    version = "5.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webtorrent-cli/-/webtorrent-cli-4.1.0.tgz";
-      sha512 = "H0cQTp+GiyeasRKdpo3SUGoMJzM5NRnBSR/FhUwfY3COK9aTRVzv/+EWmdyilBzjbEro2F2gxIucLqz693JcMg==";
+      url = "https://registry.npmjs.org/webtorrent-cli/-/webtorrent-cli-5.1.0.tgz";
+      sha512 = "htNzXHf6sIDSsEVCPbVLe2/5o6bMWrvK2MfUaxEn6gTu0d1pBfBDyHertQ+9B1rWPtSQQHhyV6DekXz4HlpMLA==";
     };
     dependencies = [
-      sources."@leichtgewicht/ip-codec-2.0.4"
-      sources."@protobufjs/aspromise-1.1.2"
-      sources."@protobufjs/base64-1.1.2"
-      sources."@protobufjs/codegen-2.0.4"
-      sources."@protobufjs/eventemitter-1.1.0"
-      sources."@protobufjs/fetch-1.1.0"
-      sources."@protobufjs/float-1.0.2"
-      sources."@protobufjs/inquire-1.1.0"
-      sources."@protobufjs/path-1.1.2"
-      sources."@protobufjs/pool-1.1.0"
-      sources."@protobufjs/utf8-1.1.0"
-      sources."@types/long-4.0.2"
-      sources."@types/node-20.11.29"
+      (sources."@silentbot1/nat-api-0.4.7" // {
+        dependencies = [
+          sources."debug-4.3.5"
+          sources."ms-2.1.2"
+          sources."xml2js-0.6.2"
+        ];
+      })
+      sources."@thaunknown/idb-chunk-store-1.0.2"
+      (sources."@thaunknown/simple-peer-10.0.7" // {
+        dependencies = [
+          sources."debug-4.3.5"
+          sources."ms-2.1.2"
+        ];
+      })
+      (sources."@thaunknown/simple-websocket-9.1.1" // {
+        dependencies = [
+          sources."debug-4.3.5"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."@thaunknown/thirty-two-1.0.3"
       sources."@webtorrent/http-node-1.3.0"
-      sources."addr-to-ip-port-1.5.4"
-      sources."airplay-js-0.3.0"
+      sources."abort-controller-3.0.0"
+      sources."addr-to-ip-port-2.0.0"
       sources."ansi-escapes-4.3.2"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
       sources."b4a-1.6.6"
+      sources."bare-events-2.3.1"
+      sources."base64-arraybuffer-1.0.2"
       sources."base64-js-1.5.1"
-      sources."bencode-2.0.3"
+      sources."bencode-4.0.0"
       sources."bep53-range-1.1.1"
-      sources."binary-search-1.3.6"
       sources."bitfield-4.2.0"
-      (sources."bittorrent-dht-10.0.7" // {
+      (sources."bittorrent-dht-11.0.6" // {
         dependencies = [
-          sources."debug-4.3.4"
+          sources."debug-4.3.5"
           sources."ms-2.1.2"
         ];
       })
-      (sources."bittorrent-lsd-1.1.1" // {
+      (sources."bittorrent-lsd-2.0.0" // {
         dependencies = [
-          sources."debug-4.3.4"
+          sources."debug-4.3.5"
           sources."ms-2.1.2"
         ];
       })
       sources."bittorrent-peerid-1.3.6"
-      (sources."bittorrent-protocol-3.5.5" // {
+      (sources."bittorrent-protocol-4.1.12" // {
         dependencies = [
-          sources."debug-4.3.4"
+          sources."debug-4.3.5"
           sources."ms-2.1.2"
-          sources."readable-stream-3.6.2"
         ];
       })
-      (sources."bittorrent-tracker-9.19.0" // {
+      (sources."bittorrent-tracker-11.1.0" // {
         dependencies = [
           sources."clone-2.1.2"
-          sources."debug-4.3.4"
-          sources."decompress-response-6.0.0"
-          sources."mimic-response-3.1.0"
+          sources."debug-4.3.5"
+          sources."ip-2.0.1"
           sources."ms-2.1.2"
-          sources."simple-get-4.0.1"
         ];
       })
       (sources."bl-4.1.0" // {
@@ -99158,44 +94761,18 @@ in
       })
       sources."blob-to-buffer-1.2.9"
       sources."block-iterator-1.1.1"
-      (sources."block-stream2-2.1.0" // {
-        dependencies = [
-          sources."readable-stream-3.6.2"
-        ];
-      })
-      sources."bn.js-5.2.1"
-      sources."browserify-package-json-1.0.1"
       sources."buffer-5.7.1"
-      sources."buffer-alloc-1.2.0"
-      sources."buffer-alloc-unsafe-1.1.0"
-      sources."buffer-fill-1.0.0"
       sources."buffer-from-1.1.2"
-      sources."buffer-indexof-1.1.1"
       sources."bufferutil-4.0.8"
       sources."cache-chunk-store-3.2.2"
-      (sources."castv2-0.1.10" // {
-        dependencies = [
-          sources."debug-4.3.4"
-          sources."ms-2.1.2"
-        ];
-      })
-      sources."castv2-client-1.2.0"
       sources."chalk-4.1.2"
       sources."chardet-0.7.0"
       sources."charset-1.0.1"
+      sources."chownr-1.1.4"
       sources."chrome-dgram-3.0.6"
       sources."chrome-dns-1.0.1"
       sources."chrome-net-3.3.4"
-      (sources."chromecasts-1.10.2" // {
-        dependencies = [
-          sources."mime-1.6.0"
-        ];
-      })
-      (sources."chunk-store-stream-4.3.0" // {
-        dependencies = [
-          sources."readable-stream-3.6.2"
-        ];
-      })
+      sources."chunk-store-iterator-1.0.3"
       sources."cli-cursor-3.1.0"
       sources."cli-spinners-2.9.2"
       sources."cli-width-3.0.0"
@@ -99212,18 +94789,22 @@ in
       sources."concat-stream-1.6.2"
       sources."core-util-is-1.0.3"
       sources."cpus-1.0.3"
-      sources."create-torrent-5.0.9"
+      sources."create-torrent-6.0.17"
+      sources."cross-fetch-ponyfill-1.0.3"
+      sources."cross-spawn-7.0.3"
+      sources."data-uri-to-buffer-4.0.1"
       sources."debug-2.6.9"
       sources."decompress-response-3.3.0"
+      sources."deep-extend-0.6.0"
+      sources."default-gateway-6.0.3"
       sources."defaults-1.0.4"
       sources."define-lazy-prop-2.0.0"
+      sources."detect-libc-2.0.3"
       (sources."dlnacasts-0.1.0" // {
         dependencies = [
           sources."mime-1.6.0"
         ];
       })
-      sources."dns-packet-5.6.1"
-      sources."dns-txt-2.0.2"
       (sources."ecstatic-4.1.4" // {
         dependencies = [
           sources."mime-2.6.0"
@@ -99237,147 +94818,137 @@ in
       sources."escalade-3.1.2"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-1.0.5"
-      sources."events-3.3.0"
+      sources."event-target-shim-5.0.1"
+      sources."execa-5.1.1"
+      sources."expand-template-2.0.3"
       sources."external-editor-3.1.0"
-      sources."fast-blob-stream-1.1.1"
       sources."fast-fifo-1.3.2"
-      sources."fast-readable-async-iterator-1.1.2"
+      sources."fast-readable-async-iterator-2.0.0"
+      sources."fetch-blob-3.2.0"
       sources."figures-3.2.0"
+      sources."filename-reserved-regex-3.0.0"
+      sources."formdata-polyfill-4.0.10"
       sources."freelist-1.0.3"
-      (sources."fs-chunk-store-3.0.1" // {
+      (sources."fs-chunk-store-4.1.0" // {
         dependencies = [
           sources."thunky-1.1.0"
         ];
       })
-      sources."get-browser-rtc-1.1.0"
+      sources."fs-constants-1.0.0"
+      sources."fsa-chunk-store-1.1.5"
       sources."get-caller-file-2.0.5"
       sources."get-stdin-8.0.0"
+      sources."get-stream-6.0.1"
+      sources."github-from-package-0.0.0"
       sources."has-flag-4.0.0"
       sources."he-1.2.0"
       sources."http-parser-js-0.4.13"
+      sources."human-signals-2.1.0"
+      sources."hybrid-chunk-store-1.2.4"
       sources."iconv-lite-0.4.24"
+      sources."idb-6.1.5"
       sources."ieee754-1.2.1"
       sources."immediate-chunk-store-2.2.0"
       sources."inherits-2.0.4"
+      sources."ini-1.3.8"
       sources."inquirer-8.2.6"
       sources."ip-1.1.9"
       sources."ip-address-9.0.5"
       sources."ip-set-2.1.0"
-      sources."ipaddr.js-2.1.0"
-      sources."is-ascii-1.0.0"
+      sources."ipaddr.js-2.2.0"
       sources."is-docker-2.2.1"
       sources."is-file-1.0.0"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-interactive-1.0.0"
+      sources."is-stream-2.0.1"
       sources."is-unicode-supported-0.1.0"
       sources."is-wsl-2.2.0"
       sources."isarray-1.0.0"
+      sources."isexe-2.0.0"
       sources."join-async-iterator-1.1.1"
       sources."jsbn-1.1.0"
-      sources."junk-3.1.0"
+      sources."junk-4.0.1"
       sources."k-bucket-5.1.0"
       sources."k-rpc-5.1.0"
-      sources."k-rpc-socket-1.11.1"
-      sources."last-one-wins-1.0.4"
-      sources."limiter-1.1.5"
-      (sources."load-ip-set-2.2.1" // {
+      (sources."k-rpc-socket-1.11.1" // {
         dependencies = [
-          sources."decompress-response-6.0.0"
-          sources."mimic-response-3.1.0"
-          sources."simple-get-4.0.1"
+          sources."bencode-2.0.3"
         ];
       })
+      sources."last-one-wins-1.0.4"
+      sources."limiter-1.1.5"
+      sources."load-ip-set-3.0.1"
       sources."lodash-4.17.21"
       sources."log-symbols-4.1.0"
-      sources."long-4.0.0"
       sources."lru-3.1.0"
-      (sources."lt_donthave-1.0.1" // {
+      (sources."lt_donthave-2.0.1" // {
         dependencies = [
-          sources."debug-4.3.4"
+          sources."debug-4.3.5"
           sources."ms-2.1.2"
         ];
       })
       sources."magnet-uri-6.2.0"
-      sources."mdns-js-0.5.0"
-      sources."mdns-js-packet-0.2.0"
-      (sources."mediasource-2.4.0" // {
-        dependencies = [
-          sources."readable-stream-3.6.2"
-        ];
-      })
       sources."memory-chunk-store-1.3.5"
+      sources."merge-stream-2.0.0"
       sources."mime-3.0.0"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
       sources."minimist-1.2.8"
       sources."mkdirp-classic-0.5.3"
       sources."moment-2.30.1"
-      sources."mp4-box-encoding-1.4.1"
-      (sources."mp4-stream-3.1.3" // {
-        dependencies = [
-          sources."readable-stream-3.6.2"
-        ];
-      })
       sources."ms-2.0.0"
-      (sources."multicast-dns-7.2.5" // {
-        dependencies = [
-          sources."thunky-1.1.0"
-        ];
-      })
       sources."mute-stream-0.0.8"
-      sources."napi-macros-2.2.2"
+      sources."napi-build-utils-1.0.2"
       sources."netmask-2.0.2"
       sources."network-address-1.1.2"
-      sources."next-event-1.0.0"
-      sources."node-gyp-build-4.8.0"
+      sources."node-abi-3.63.0"
+      (sources."node-datachannel-0.9.1" // {
+        dependencies = [
+          sources."node-domexception-2.0.1"
+        ];
+      })
+      sources."node-domexception-1.0.0"
+      sources."node-fetch-3.3.2"
+      sources."node-gyp-build-4.8.1"
       sources."node-ssdp-2.9.1"
-      sources."nodebmc-0.0.7"
+      sources."npm-run-path-4.0.1"
       sources."on-finished-2.4.1"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
       sources."open-8.4.2"
       sources."ora-5.4.1"
       sources."os-tmpdir-1.0.2"
-      sources."package-json-versionify-1.0.4"
       (sources."parse-torrent-9.1.5" // {
         dependencies = [
+          sources."bencode-2.0.3"
           sources."decompress-response-6.0.0"
           sources."mimic-response-3.1.0"
           sources."simple-get-4.0.1"
         ];
       })
+      sources."path-key-3.1.1"
       sources."piece-length-2.0.1"
-      (sources."plist-with-patches-0.5.1" // {
+      (sources."prebuild-install-7.1.2" // {
         dependencies = [
-          sources."xmlbuilder-0.4.3"
+          sources."decompress-response-6.0.0"
+          sources."mimic-response-3.1.0"
+          sources."simple-get-4.0.1"
         ];
       })
       sources."prettier-bytes-1.0.4"
       sources."process-nextick-args-2.0.1"
-      sources."protobufjs-6.11.4"
       sources."pump-3.0.0"
-      sources."qap-3.3.1"
       sources."queue-microtask-1.2.3"
       sources."queue-tick-1.0.1"
-      sources."random-access-file-2.2.1"
-      sources."random-access-storage-1.4.3"
+      sources."random-access-file-4.0.7"
+      sources."random-access-storage-3.0.2"
       sources."random-iterate-1.0.1"
       sources."randombytes-2.1.0"
       sources."range-parser-1.2.1"
-      (sources."range-slice-stream-2.0.0" // {
-        dependencies = [
-          sources."readable-stream-3.6.2"
-        ];
-      })
+      sources."rc-1.2.8"
       sources."rc4-0.1.5"
       sources."readable-stream-2.3.8"
       sources."record-cache-1.2.0"
-      (sources."render-media-4.1.0" // {
-        dependencies = [
-          sources."debug-4.3.4"
-          sources."ms-2.1.2"
-        ];
-      })
       sources."require-directory-2.1.1"
       sources."restore-cursor-3.1.0"
       sources."run-async-2.4.1"
@@ -99389,98 +94960,84 @@ in
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
       sources."sax-1.1.4"
-      sources."semver-5.1.1"
+      sources."semver-7.6.2"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
       sources."signal-exit-3.0.7"
       sources."simple-concat-1.0.1"
       sources."simple-get-2.8.2"
-      (sources."simple-peer-9.11.1" // {
-        dependencies = [
-          sources."buffer-6.0.3"
-          sources."debug-4.3.4"
-          sources."ms-2.1.2"
-          sources."readable-stream-3.6.2"
-        ];
-      })
       sources."simple-sha1-3.1.0"
-      (sources."simple-websocket-9.1.0" // {
-        dependencies = [
-          sources."debug-4.3.4"
-          sources."ms-2.1.2"
-          sources."readable-stream-3.6.2"
-        ];
-      })
       sources."smart-buffer-4.2.0"
-      sources."socks-2.8.1"
+      sources."socks-2.8.3"
       sources."speed-limiter-1.0.2"
-      sources."speedometer-1.1.0"
       sources."split-1.0.1"
       sources."sprintf-js-1.1.3"
-      sources."stream-to-blob-2.0.1"
-      sources."stream-to-blob-url-3.0.2"
-      sources."stream-with-known-length-to-buffer-1.0.4"
-      sources."streamx-2.16.1"
+      sources."streamx-2.18.0"
       sources."string-width-4.2.3"
-      sources."string2compact-1.3.2"
+      sources."string2compact-2.0.1"
       sources."string_decoder-1.1.1"
       sources."strip-ansi-6.0.1"
+      sources."strip-final-newline-2.0.0"
+      sources."strip-json-comments-2.0.1"
       sources."supports-color-7.2.0"
+      sources."tar-fs-2.1.1"
+      (sources."tar-stream-2.2.0" // {
+        dependencies = [
+          sources."readable-stream-3.6.2"
+        ];
+      })
+      sources."text-decoder-1.1.0"
       sources."thirty-two-1.0.2"
       sources."through-2.3.8"
       sources."throughput-1.0.1"
       sources."thunky-0.1.0"
-      sources."timeout-refresh-1.0.3"
       sources."tmp-0.0.33"
-      sources."to-arraybuffer-1.0.1"
-      (sources."torrent-discovery-9.4.15" // {
+      (sources."torrent-discovery-11.0.6" // {
         dependencies = [
-          sources."debug-4.3.4"
+          sources."debug-4.3.5"
           sources."ms-2.1.2"
         ];
       })
-      sources."torrent-piece-2.0.1"
+      sources."torrent-piece-3.0.0"
       sources."tslib-2.6.2"
+      sources."tunnel-agent-0.6.0"
       sources."type-fest-0.21.3"
       sources."typedarray-0.0.6"
-      sources."uint64be-2.0.2"
-      sources."undici-types-5.26.5"
+      sources."uint8-util-2.2.5"
       sources."unordered-array-remove-1.0.2"
-      sources."unordered-set-2.0.1"
       sources."upnp-device-client-1.0.2"
       sources."upnp-mediarenderer-client-1.4.0"
       sources."url-join-4.0.1"
-      (sources."ut_metadata-3.5.2" // {
+      (sources."ut_metadata-4.0.3" // {
         dependencies = [
-          sources."debug-4.3.4"
+          sources."debug-4.3.5"
           sources."ms-2.1.2"
         ];
       })
-      sources."ut_pex-3.0.2"
-      sources."utf-8-validate-5.0.10"
+      sources."ut_pex-4.0.4"
+      sources."utf-8-validate-6.0.4"
       sources."util-deprecate-1.0.2"
-      (sources."utp-native-2.5.3" // {
-        dependencies = [
-          sources."readable-stream-3.6.2"
-        ];
-      })
-      sources."videostream-3.2.2"
       sources."vlc-command-1.2.0"
       sources."wcwidth-1.0.1"
-      (sources."webtorrent-1.9.7" // {
+      sources."web-streams-polyfill-3.3.3"
+      sources."webrtc-polyfill-1.1.6"
+      (sources."webtorrent-2.3.6" // {
         dependencies = [
-          sources."debug-4.3.4"
-          sources."decompress-response-6.0.0"
-          sources."mimic-response-3.1.0"
+          sources."bep53-range-2.0.0"
+          sources."debug-4.3.5"
+          sources."get-stdin-9.0.0"
+          sources."magnet-uri-7.0.5"
           sources."ms-2.1.2"
-          sources."simple-get-4.0.1"
+          sources."parse-torrent-11.0.16"
         ];
       })
+      sources."which-2.0.2"
       sources."winreg-1.2.5"
       sources."wrap-ansi-6.2.0"
       sources."wrappy-1.0.2"
-      sources."ws-7.5.9"
+      sources."ws-8.17.0"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
-      sources."xmldom-0.1.31"
       sources."y18n-5.0.8"
       sources."yargs-17.7.2"
       sources."yargs-parser-21.1.1"
@@ -99498,14 +95055,14 @@ in
   wrangler = nodeEnv.buildNodePackage {
     name = "wrangler";
     packageName = "wrangler";
-    version = "3.34.2";
+    version = "3.58.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/wrangler/-/wrangler-3.34.2.tgz";
-      sha512 = "j580WXlOe0GtYdcREym7FLcaaZq9+RZEBuzOtKXx74KKUlEC8cglgf5WWa2C2OpEtJCcrAieEHsNXe7mhy9knA==";
+      url = "https://registry.npmjs.org/wrangler/-/wrangler-3.58.0.tgz";
+      sha512 = "h9gWER7LXLnmHABDNP1p3aqXtchlvSBN8Dp22ZurnkxaLMZ3L3H1Ze1ftiFSs0VRWv0BUnz7AWIUqZmzuBY4Nw==";
     };
     dependencies = [
-      sources."@cloudflare/kv-asset-handler-0.3.1"
-      sources."@cloudflare/workers-types-4.20240314.0"
+      sources."@cloudflare/kv-asset-handler-0.3.2"
+      sources."@cloudflare/workers-types-4.20240603.0"
       sources."@cspotcode/source-map-support-0.8.1"
       sources."@esbuild-plugins/node-globals-polyfill-0.2.3"
       sources."@esbuild-plugins/node-modules-polyfill-0.2.2"
@@ -99535,7 +95092,7 @@ in
       sources."@jridgewell/resolve-uri-3.1.2"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.9"
-      sources."@types/node-20.11.29"
+      sources."@types/node-20.14.1"
       sources."@types/node-forge-1.3.11"
       sources."acorn-8.11.3"
       sources."acorn-walk-8.3.2"
@@ -99543,18 +95100,18 @@ in
       sources."as-table-1.0.55"
       sources."binary-extensions-2.3.0"
       sources."blake3-wasm-2.1.5"
-      sources."braces-3.0.2"
+      sources."braces-3.0.3"
       sources."bufferutil-4.0.8"
       sources."capnp-ts-0.7.0"
       sources."chokidar-3.6.0"
       sources."cookie-0.5.0"
       sources."data-uri-to-buffer-2.0.2"
-      sources."debug-4.3.4"
+      sources."debug-4.3.5"
       sources."esbuild-0.17.19"
       sources."escape-string-regexp-4.0.0"
       sources."estree-walker-0.6.1"
       sources."exit-hook-2.2.1"
-      sources."fill-range-7.0.1"
+      sources."fill-range-7.1.1"
       sources."fsevents-2.3.3"
       sources."function-bind-1.1.2"
       sources."get-source-2.0.12"
@@ -99568,15 +95125,15 @@ in
       sources."is-number-7.0.0"
       sources."magic-string-0.25.9"
       sources."mime-3.0.0"
-      sources."miniflare-3.20240304.2"
+      sources."miniflare-3.20240524.1"
       sources."ms-2.1.2"
       sources."mustache-4.2.0"
       sources."nanoid-3.3.7"
       sources."node-forge-1.3.1"
-      sources."node-gyp-build-4.8.0"
+      sources."node-gyp-build-4.8.1"
       sources."normalize-path-3.0.0"
       sources."path-parse-1.0.7"
-      sources."path-to-regexp-6.2.1"
+      sources."path-to-regexp-6.2.2"
       sources."picomatch-2.3.1"
       sources."printable-characters-1.0.42"
       sources."readdirp-3.6.0"
@@ -99593,14 +95150,14 @@ in
       sources."supports-preserve-symlinks-flag-1.0.0"
       sources."to-regex-range-5.0.1"
       sources."tslib-2.6.2"
-      sources."undici-5.28.3"
+      sources."undici-5.28.4"
       sources."undici-types-5.26.5"
-      sources."utf-8-validate-6.0.3"
-      sources."workerd-1.20240304.0"
-      sources."ws-8.16.0"
+      sources."utf-8-validate-6.0.4"
+      sources."workerd-1.20240524.0"
+      sources."ws-8.17.0"
       sources."xxhash-wasm-1.0.2"
       sources."youch-3.3.3"
-      sources."zod-3.22.4"
+      sources."zod-3.23.8"
     ];
     buildInputs = globalBuildInputs;
     meta = {
diff --git a/pkgs/development/node-packages/overrides.nix b/pkgs/development/node-packages/overrides.nix
index 1fcee6256b5dc..7021dbb0df1e4 100644
--- a/pkgs/development/node-packages/overrides.nix
+++ b/pkgs/development/node-packages/overrides.nix
@@ -40,14 +40,6 @@ final: prev: {
     };
   };
 
-  bash-language-server = prev.bash-language-server.override {
-    nativeBuildInputs = [ pkgs.buildPackages.makeWrapper ];
-    postInstall = ''
-      wrapProgram "$out/bin/bash-language-server" \
-        --prefix PATH : ${lib.makeBinPath [ pkgs.shellcheck ]}
-    '';
-  };
-
   bower2nix = prev.bower2nix.override {
     nativeBuildInputs = [ pkgs.buildPackages.makeWrapper ];
     postInstall = ''
@@ -65,7 +57,7 @@ final: prev: {
   fast-cli = prev.fast-cli.override {
     nativeBuildInputs = [ pkgs.buildPackages.makeWrapper ];
     prePatch = ''
-      export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1
+      export PUPPETEER_SKIP_DOWNLOAD=1
     '';
     postInstall = ''
       wrapProgram $out/bin/fast \
@@ -244,8 +236,51 @@ final: prev: {
     '';
   };
 
-  postcss-cli = prev.postcss-cli.override (oldAttrs: {
+  postcss-cli = prev.postcss-cli.override (oldAttrs: let
+    esbuild-version = (lib.findFirst (dep: dep.name == "esbuild") null oldAttrs.dependencies).version;
+    esbuild-linux-x64 = {
+      name = "_at_esbuild_slash_esbuild-linux-x64";
+      packageName = "@esbuild/linux-x64";
+      version = esbuild-version;
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-${esbuild-version}.tgz";
+        sha512 = "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==";
+      };
+    };
+    esbuild-linux-arm64 = {
+      name = "_at_esbuild_slash_esbuild-linux-arm64";
+      packageName = "@esbuild/linux-arm64";
+      version = esbuild-version;
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-${esbuild-version}.tgz";
+        sha512 = "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==";
+      };
+    };
+    esbuild-darwin-x64 = {
+      name = "_at_esbuild_slash_esbuild-darwin-x64";
+      packageName = "@esbuild/darwin-x64";
+      version = esbuild-version;
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-${esbuild-version}.tgz";
+        sha512 = "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==";
+      };
+    };
+    esbuild-darwin-arm64 = {
+      name = "_at_esbuild_slash_esbuild-darwin-arm64";
+      packageName = "@esbuild/darwin-arm64";
+      version = esbuild-version;
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-${esbuild-version}.tgz";
+        sha512 = "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==";
+      };
+    };
+  in{
     nativeBuildInputs = [ pkgs.buildPackages.makeWrapper ];
+    dependencies = oldAttrs.dependencies
+      ++ lib.optional (stdenv.isLinux && stdenv.isx86_64) esbuild-linux-x64
+      ++ lib.optional (stdenv.isLinux && stdenv.isAarch64) esbuild-linux-arm64
+      ++ lib.optional (stdenv.isDarwin && stdenv.isx86_64) esbuild-darwin-x64
+      ++ lib.optional (stdenv.isDarwin && stdenv.isAarch64) esbuild-darwin-arm64;
     postInstall = ''
       wrapProgram "$out/bin/postcss" \
         --prefix NODE_PATH : ${final.postcss}/lib/node_modules \
@@ -446,7 +481,7 @@ final: prev: {
         version = workerdVersion;
         src = fetchurl {
           url = "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-${workerdVersion}.tgz";
-          sha512 = "G1BEzbw9TFIeMvc425F145IetC7fuH4KOkGhseLq9y/mt5PfDWkghwmXSK+q0BiMwm0XAobtzVlHcEr2u4WlRQ==";
+          sha512 = "sha512-E8mj+HPBryKwaJAiNsYzXtVjKCL0KvUBZbtxJxlWM4mLSQhT+uwGT3nydb/hFY59rZnQgZslw0oqEWht5TEYiQ==";
         };
       };
       linuxWorkerdArm = {
@@ -456,7 +491,7 @@ final: prev: {
         version = workerdVersion;
         src = fetchurl {
           url = "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-${workerdVersion}.tgz";
-          sha512 = "LLk/d/y77TRu6QOG3CJUI2cD3Ff2lSg0ts6G83bsm9ZK+WKObWFFSPBy9l81m3EnlKFh7RZCzxN4J10kuDaO8w==";
+          sha512 = "sha512-/Fr1W671t2triNCDCBWdStxngnbUfZunZ/2e4kaMLzJDJLYDtYdmvOUCBDzUD4ssqmIMbn9RCQQ0U+CLEoqBqw==";
         };
       };
       darwinWorkerd = {
@@ -466,7 +501,7 @@ final: prev: {
         version = workerdVersion;
         src = fetchurl {
           url = "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-${workerdVersion}.tgz";
-          sha512 = "rfHlvsWzkqEEQNvm14AOE/BYHYzB9wxQHCaZZEgwOuTl5KpDcs9La0N0LaDTR78ESumIWOcifVmko2VTrZb7TQ==";
+          sha512 = "sha512-ATaXjefbTsrv4mpn4Fdua114RRDXcX5Ky+Mv+f4JTUllgalmqC4CYMN4jxRz9IpJU/fNMN8IEfvUyuJBAcl9Iw==";
         };
       };
       darwinWorkerdArm = {
@@ -476,7 +511,7 @@ final: prev: {
         version = workerdVersion;
         src = fetchurl {
           url = "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-${workerdVersion}.tgz";
-          sha512 = "IXGOxHsPdRYfAzcY6IroI1PDvx3hhXf18qFCloHp8Iw5bzLgq/PTjcp10Z/2xedZ2hVlfpHy1eEptsTmi9YeNw==";
+          sha512 = "sha512-wnbsZI4CS0QPCd+wnBHQ40C28A/2Qo4ESi1YhE2735G3UNcc876MWksZhsubd+XH0XPIra6eNFqyw6wRMpQOXA==";
         };
       };
 
diff --git a/pkgs/development/ocaml-modules/alcotest/default.nix b/pkgs/development/ocaml-modules/alcotest/default.nix
index d8310ce23eea7..f9f07aed0fbad 100644
--- a/pkgs/development/ocaml-modules/alcotest/default.nix
+++ b/pkgs/development/ocaml-modules/alcotest/default.nix
@@ -25,7 +25,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/mirage/alcotest";
-    description = "A lightweight and colourful test framework";
+    description = "Lightweight and colourful test framework";
     license = licenses.isc;
     maintainers = [ maintainers.ericbmerritt ];
   };
diff --git a/pkgs/development/ocaml-modules/angstrom-async/default.nix b/pkgs/development/ocaml-modules/angstrom-async/default.nix
index c603d1b21e572..92dd90ff22cbe 100644
--- a/pkgs/development/ocaml-modules/angstrom-async/default.nix
+++ b/pkgs/development/ocaml-modules/angstrom-async/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, buildDunePackage, angstrom, async }:
+{ lib, buildDunePackage, angstrom, async }:
 
 buildDunePackage rec {
   pname = "angstrom-async";
diff --git a/pkgs/development/ocaml-modules/angstrom-lwt-unix/default.nix b/pkgs/development/ocaml-modules/angstrom-lwt-unix/default.nix
index 2742b8515de79..2867e4b1a813f 100644
--- a/pkgs/development/ocaml-modules/angstrom-lwt-unix/default.nix
+++ b/pkgs/development/ocaml-modules/angstrom-lwt-unix/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, buildDunePackage, angstrom, lwt }:
+{ lib, buildDunePackage, angstrom, lwt }:
 
 buildDunePackage rec {
   pname = "angstrom-lwt-unix";
diff --git a/pkgs/development/ocaml-modules/angstrom-unix/default.nix b/pkgs/development/ocaml-modules/angstrom-unix/default.nix
index 04c380320199c..be34145463171 100644
--- a/pkgs/development/ocaml-modules/angstrom-unix/default.nix
+++ b/pkgs/development/ocaml-modules/angstrom-unix/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, buildDunePackage, angstrom }:
+{ lib, buildDunePackage, angstrom }:
 
 buildDunePackage rec {
   pname = "angstrom-unix";
diff --git a/pkgs/development/ocaml-modules/ansiterminal/default.nix b/pkgs/development/ocaml-modules/ansiterminal/default.nix
index 8b8833b14eb6e..7530e45ac853e 100644
--- a/pkgs/development/ocaml-modules/ansiterminal/default.nix
+++ b/pkgs/development/ocaml-modules/ansiterminal/default.nix
@@ -16,7 +16,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A module allowing to use the colors and cursor movements on ANSI terminals";
+    description = "Module allowing to use the colors and cursor movements on ANSI terminals";
     longDescription = ''
       ANSITerminal is a module allowing to use the colors and cursor
       movements on ANSI terminals. It also works on the windows shell (but
diff --git a/pkgs/development/ocaml-modules/apron/default.nix b/pkgs/development/ocaml-modules/apron/default.nix
index 5ad98224962e3..fb93fd2f18753 100644
--- a/pkgs/development/ocaml-modules/apron/default.nix
+++ b/pkgs/development/ocaml-modules/apron/default.nix
@@ -4,26 +4,23 @@
 
 stdenv.mkDerivation rec {
   pname = "ocaml${ocaml.version}-apron";
-  version = "0.9.14";
+  version = "0.9.15";
   src = fetchFromGitHub {
     owner = "antoinemine";
     repo = "apron";
     rev = "v${version}";
-    hash = "sha256-e8bSf0FPB6E3MFHHoSrE0x/6nrUStO+gOKxJ4LDHBi0=";
+    hash = "sha256-gHLCurydxX1pS66DTAWUJGl9Yqu9RWRjkZh6lXzM7YY=";
   };
 
   nativeBuildInputs = [ ocaml findlib perl ];
   buildInputs = [ gmp mpfr ppl camlidl flint pplite ];
   propagatedBuildInputs = [ mlgmpidl ];
 
-  # TODO: Doesn't produce the library correctly if true
-  strictDeps = false;
-
   outputs = [ "out" "dev" ];
 
   configurePhase = ''
     runHook preConfigure
-    ./configure -prefix $out ${lib.optionalString stdenv.isDarwin "-no-strip"}
+    ./configure -prefix $out ${lib.optionalString stdenv.isDarwin "--no-strip"}
     mkdir -p $out/lib/ocaml/${ocaml.version}/site-lib/stublibs
     runHook postConfigure
   '';
diff --git a/pkgs/development/ocaml-modules/asai/default.nix b/pkgs/development/ocaml-modules/asai/default.nix
index b089eba768742..fd7c9c4e5c637 100644
--- a/pkgs/development/ocaml-modules/asai/default.nix
+++ b/pkgs/development/ocaml-modules/asai/default.nix
@@ -27,7 +27,7 @@ buildDunePackage rec {
   ];
 
   meta = {
-    description = "A library for constructing and printing compiler diagnostics";
+    description = "Library for constructing and printing compiler diagnostics";
     homepage = "https://redprl.org/asai/asai/";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/bap/default.nix b/pkgs/development/ocaml-modules/bap/default.nix
index 0d2b4247bd423..bdbf9b65c3c01 100644
--- a/pkgs/development/ocaml-modules/bap/default.nix
+++ b/pkgs/development/ocaml-modules/bap/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchurl, fetchpatch
+{ lib, stdenv, fetchFromGitHub, fetchurl
 , ocaml, findlib, ocamlbuild, ocaml_oasis
 , bitstring, camlzip, cmdliner, core_kernel, ezjsonm, fileutils, mmap, lwt, ocamlgraph, ocurl, re, uri, zarith, piqi, piqi-ocaml, uuidm, llvm, frontc, ounit, ppx_jane, parsexp
 , utop, libxml2, ncurses
@@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--enable-everything ${disableIda} ${disableGhidra}" "--with-llvm-config=${llvm.dev}/bin/llvm-config" ];
 
   meta = with lib; {
-    description = "Platform for binary analysis. It is written in OCaml, but can be used from other languages.";
+    description = "Platform for binary analysis. It is written in OCaml, but can be used from other languages";
     homepage = "https://github.com/BinaryAnalysisPlatform/bap/";
     license = licenses.mit;
     maintainers = [ maintainers.maurer ];
diff --git a/pkgs/development/ocaml-modules/bigarray-overlap/default.nix b/pkgs/development/ocaml-modules/bigarray-overlap/default.nix
index 78a01b65f9bf2..a913b507eab4b 100644
--- a/pkgs/development/ocaml-modules/bigarray-overlap/default.nix
+++ b/pkgs/development/ocaml-modules/bigarray-overlap/default.nix
@@ -20,7 +20,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/dinosaure/overlap";
-    description = "A minimal library to know that 2 bigarray share physically the same memory or not";
+    description = "Minimal library to know that 2 bigarray share physically the same memory or not";
     license = licenses.mit;
     maintainers = [ maintainers.sternenseemann ];
   };
diff --git a/pkgs/development/ocaml-modules/binning/default.nix b/pkgs/development/ocaml-modules/binning/default.nix
index 244b96220f7b2..bf448970ef616 100644
--- a/pkgs/development/ocaml-modules/binning/default.nix
+++ b/pkgs/development/ocaml-modules/binning/default.nix
@@ -15,7 +15,7 @@ buildDunePackage rec {
   };
 
   meta = {
-    description = "A datastructure to accumulate values in bins";
+    description = "Datastructure to accumulate values in bins";
     license = lib.licenses.cecill-b;
     homepage = "https://github.com/pveber/binning/";
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/bisect_ppx/default.nix b/pkgs/development/ocaml-modules/bisect_ppx/default.nix
index 114e638fa6c44..ae70482fd4b2e 100644
--- a/pkgs/development/ocaml-modules/bisect_ppx/default.nix
+++ b/pkgs/development/ocaml-modules/bisect_ppx/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, fetchpatch, buildDunePackage, cmdliner, ppxlib }:
+{ lib, fetchFromGitHub, buildDunePackage, cmdliner, ppxlib }:
 
 buildDunePackage rec {
   pname = "bisect_ppx";
@@ -19,7 +19,7 @@ buildDunePackage rec {
   ];
 
   meta = with lib; {
-    description = "Bisect_ppx is a code coverage tool for OCaml and Reason. It helps you test thoroughly by showing what's not tested.";
+    description = "Bisect_ppx is a code coverage tool for OCaml and Reason. It helps you test thoroughly by showing what's not tested";
     homepage = "https://github.com/aantron/bisect_ppx";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/ocaml-modules/bistro/default.nix b/pkgs/development/ocaml-modules/bistro/default.nix
index fd409b51091d6..bb424a5ce9aeb 100644
--- a/pkgs/development/ocaml-modules/bistro/default.nix
+++ b/pkgs/development/ocaml-modules/bistro/default.nix
@@ -1,6 +1,4 @@
 { lib
-, ocaml
-, fetchpatch
 , fetchFromGitHub
 , buildDunePackage
 , base64
diff --git a/pkgs/development/ocaml-modules/bitv/default.nix b/pkgs/development/ocaml-modules/bitv/default.nix
index 25906f1432f06..1369ed078d6ec 100644
--- a/pkgs/development/ocaml-modules/bitv/default.nix
+++ b/pkgs/development/ocaml-modules/bitv/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   createFindlibDestdir = true;
 
   meta = {
-    description = "A bit vector library for OCaml";
+    description = "Bit vector library for OCaml";
     license = lib.licenses.lgpl21;
     homepage = "https://github.com/backtracking/bitv";
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/brr/default.nix b/pkgs/development/ocaml-modules/brr/default.nix
index 816a52bbab9ff..e010bedebb0ea 100644
--- a/pkgs/development/ocaml-modules/brr/default.nix
+++ b/pkgs/development/ocaml-modules/brr/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://erratique.ch/software/brr";
-    description = "A toolkit for programming browsers in OCaml";
+    description = "Toolkit for programming browsers in OCaml";
     license = lib.licenses.isc;
     maintainers = [ lib.maintainers.vbgl ];
     inherit (ocaml.meta) platforms;
diff --git a/pkgs/development/ocaml-modules/bytestring/default.nix b/pkgs/development/ocaml-modules/bytestring/default.nix
new file mode 100644
index 0000000000000..3714846ee6b5c
--- /dev/null
+++ b/pkgs/development/ocaml-modules/bytestring/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, ppxlib
+, rio
+, sedlex
+, spices
+, uutf
+, qcheck
+}:
+
+buildDunePackage rec {
+  pname = "bytestring";
+  version = "0.0.8";
+
+  minimalOCamlVersion = "5.1";
+
+  src = fetchurl {
+    url = "https://github.com/riot-ml/riot/releases/download/${version}/riot-${version}.tbz";
+    hash = "sha256-SsiDz53b9bMIT9Q3IwDdB3WKy98WSd9fiieU41qZpeE=";
+  };
+
+  propagatedBuildInputs = [
+    ppxlib
+    sedlex
+    spices
+    rio
+    uutf
+  ];
+
+  checkInputs = [
+    qcheck
+  ];
+
+  # Checks fail with OCaml 5.2
+  doCheck = false;
+
+  meta = {
+    description = "Efficient, immutable, pattern-matchable, UTF friendly byte strings";
+    homepage = "https://github.com/riot-ml/riot";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
+
diff --git a/pkgs/development/ocaml-modules/ca-certs-nss/default.nix b/pkgs/development/ocaml-modules/ca-certs-nss/default.nix
index 9129ad98ae6ae..308fcf3ac4c9b 100644
--- a/pkgs/development/ocaml-modules/ca-certs-nss/default.nix
+++ b/pkgs/development/ocaml-modules/ca-certs-nss/default.nix
@@ -14,13 +14,13 @@
 
 buildDunePackage rec {
   pname = "ca-certs-nss";
-  version = "3.98";
+  version = "3.101";
 
   minimalOCamlVersion = "4.08";
 
   src = fetchurl {
     url = "https://github.com/mirage/ca-certs-nss/releases/download/v${version}/ca-certs-nss-${version}.tbz";
-    hash = "sha256-N1/cz8e3KB3pBd5+ZV/JbuW6FaaVijNhok7QyMB7ppc=";
+    hash = "sha256-XE3201P5JXWMRLhCwAa6zwMHEwZjg3ORIKii7tmx/hI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/ocaml-modules/calendar/default.nix b/pkgs/development/ocaml-modules/calendar/default.nix
index 8fd3f5befef93..fcd8058d64c4f 100644
--- a/pkgs/development/ocaml-modules/calendar/default.nix
+++ b/pkgs/development/ocaml-modules/calendar/default.nix
@@ -16,7 +16,7 @@ buildDunePackage rec {
 
   meta = {
     inherit (src.meta) homepage;
-    description = "A library for handling dates and times";
+    description = "Library for handling dates and times";
     license = lib.licenses.lgpl21Plus;
     maintainers = [ lib.maintainers.gal_bolle ];
   };
diff --git a/pkgs/development/ocaml-modules/camlpdf/default.nix b/pkgs/development/ocaml-modules/camlpdf/default.nix
index 115bc5b2c55cd..dad901ba9c103 100644
--- a/pkgs/development/ocaml-modules/camlpdf/default.nix
+++ b/pkgs/development/ocaml-modules/camlpdf/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An OCaml library for reading, writing and modifying PDF files";
+    description = "OCaml library for reading, writing and modifying PDF files";
     homepage = "https://github.com/johnwhitington/camlpdf";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [vbgl];
diff --git a/pkgs/development/ocaml-modules/camlzip/default.nix b/pkgs/development/ocaml-modules/camlzip/default.nix
index 761453739e29a..3b038f4dfec3a 100644
--- a/pkgs/development/ocaml-modules/camlzip/default.nix
+++ b/pkgs/development/ocaml-modules/camlzip/default.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "http://cristal.inria.fr/~xleroy/software.html#camlzip";
-    description = "A library for handling ZIP and GZIP files in OCaml";
+    description = "Library for handling ZIP and GZIP files in OCaml";
     longDescription = ''
       This Objective Caml library provides easy access to compressed files in
       ZIP and GZIP format, as well as to Java JAR files.  It provides functions
diff --git a/pkgs/development/ocaml-modules/camomile/0.8.5.nix b/pkgs/development/ocaml-modules/camomile/0.8.5.nix
index 7726a95cece69..658daf61c81af 100644
--- a/pkgs/development/ocaml-modules/camomile/0.8.5.nix
+++ b/pkgs/development/ocaml-modules/camomile/0.8.5.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "https://github.com/yoriyuki/Camomile/tree/master/Camomile";
-    description = "A comprehensive Unicode library for OCaml";
+    description = "Comprehensive Unicode library for OCaml";
     license = lib.licenses.lgpl21;
     inherit (ocaml.meta) platforms;
     maintainers = [
diff --git a/pkgs/development/ocaml-modules/camomile/default.nix b/pkgs/development/ocaml-modules/camomile/default.nix
index b1178a4e8dd8a..e4856062adb16 100644
--- a/pkgs/development/ocaml-modules/camomile/default.nix
+++ b/pkgs/development/ocaml-modules/camomile/default.nix
@@ -52,6 +52,6 @@ buildDunePackage (params."${version}" // {
     homepage = "https://github.com/ocaml-community/Camomile";
     maintainers = [ lib.maintainers.vbgl ];
     license = lib.licenses.lgpl21;
-    description = "A Unicode library for OCaml";
+    description = "Unicode library for OCaml";
   };
 })
diff --git a/pkgs/development/ocaml-modules/cil/default.nix b/pkgs/development/ocaml-modules/cil/default.nix
index 7a8a3f2e70a4b..4cedb1291e1de 100644
--- a/pkgs/development/ocaml-modules/cil/default.nix
+++ b/pkgs/development/ocaml-modules/cil/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://kerneis.github.io/cil/";
-    description = "A front-end for the C programming language that facilitates program analysis and transformation";
+    description = "Front-end for the C programming language that facilitates program analysis and transformation";
     license = licenses.bsd3;
     maintainers = [ maintainers.vbgl ];
     platforms = ocaml.meta.platforms or [ ];
diff --git a/pkgs/development/ocaml-modules/cmdliner/1_0.nix b/pkgs/development/ocaml-modules/cmdliner/1_0.nix
index 718c6b95a0696..0265ed18ecb36 100644
--- a/pkgs/development/ocaml-modules/cmdliner/1_0.nix
+++ b/pkgs/development/ocaml-modules/cmdliner/1_0.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://erratique.ch/software/cmdliner";
-    description = "An OCaml module for the declarative definition of command line interfaces";
+    description = "OCaml module for the declarative definition of command line interfaces";
     license = licenses.isc;
     inherit (ocaml.meta) platforms;
     maintainers = [ maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/cmdliner/1_1.nix b/pkgs/development/ocaml-modules/cmdliner/1_1.nix
index 735496aa459ce..67d55bc756a9e 100644
--- a/pkgs/development/ocaml-modules/cmdliner/1_1.nix
+++ b/pkgs/development/ocaml-modules/cmdliner/1_1.nix
@@ -5,11 +5,11 @@ lib.throwIfNot (lib.versionAtLeast ocaml.version "4.08")
 
 stdenv.mkDerivation rec {
   pname = "cmdliner";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchurl {
     url = "https://erratique.ch/software/${pname}/releases/${pname}-${version}.tbz";
-    sha256 = "sha256-r+0QWJAoOU/W9k6XscYX4r5w3m017kfgQjXaMandAHg=";
+    sha256 = "sha256-joGA9XO0QPanqMII2rLK5KgjhP7HMtInhNG7bmQWjLs=";
   };
 
   nativeBuildInputs = [ ocaml ];
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://erratique.ch/software/cmdliner";
-    description = "An OCaml module for the declarative definition of command line interfaces";
+    description = "OCaml module for the declarative definition of command line interfaces";
     license = licenses.isc;
     inherit (ocaml.meta) platforms;
     maintainers = [ maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/coin/default.nix b/pkgs/development/ocaml-modules/coin/default.nix
index c9b6ad3128f38..3b746ccfbdce3 100644
--- a/pkgs/development/ocaml-modules/coin/default.nix
+++ b/pkgs/development/ocaml-modules/coin/default.nix
@@ -27,7 +27,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = {
-    description = "A library to normalize an KOI8-{U,R} input to Unicode";
+    description = "Library to normalize an KOI8-{U,R} input to Unicode";
     homepage = "https://github.com/mirage/coin";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ ];
diff --git a/pkgs/development/ocaml-modules/colors/default.nix b/pkgs/development/ocaml-modules/colors/default.nix
new file mode 100644
index 0000000000000..00ae0ff7cfe15
--- /dev/null
+++ b/pkgs/development/ocaml-modules/colors/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, mdx
+}:
+
+buildDunePackage rec {
+  pname = "colors";
+  version = "0.0.1";
+
+  minimalOCamlVersion = "4.13";
+
+  src = fetchurl {
+    url = "https://github.com/leostera/colors/releases/download/${version}/colors-${version}.tbz";
+    hash = "sha256-fY1j9FODVnifwsI8qkKm0QSmssgWqYFXJ7y8o7/KmEY=";
+  };
+
+  doCheck = true;
+
+  checkInputs = [
+    mdx
+  ];
+
+  nativeCheckInputs = [
+    mdx.bin
+  ];
+
+  meta = {
+    description = "Pure OCaml library for manipulating colors across color spaces";
+    homepage = "https://github.com/leostera/colors";
+    changelog = "https://github.com/leostera/colors/blob/${version}/CHANGES.md";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/conduit/async.nix b/pkgs/development/ocaml-modules/conduit/async.nix
index 5aaf16c46de53..9522dc552e8d9 100644
--- a/pkgs/development/ocaml-modules/conduit/async.nix
+++ b/pkgs/development/ocaml-modules/conduit/async.nix
@@ -23,6 +23,6 @@ buildDunePackage {
   ];
 
   meta = conduit.meta // {
-    description = "A network connection establishment library for Async";
+    description = "Network connection establishment library for Async";
   };
 }
diff --git a/pkgs/development/ocaml-modules/conduit/default.nix b/pkgs/development/ocaml-modules/conduit/default.nix
index 7a7ee238f10bd..a9fbb02c5fe91 100644
--- a/pkgs/development/ocaml-modules/conduit/default.nix
+++ b/pkgs/development/ocaml-modules/conduit/default.nix
@@ -17,7 +17,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ astring ipaddr ipaddr-sexp sexplib uri ppx_sexp_conv ];
 
   meta = {
-    description = "A network connection establishment library";
+    description = "Network connection establishment library";
     license = lib.licenses.isc;
     maintainers = with lib.maintainers; [ alexfmpe vbgl ];
     homepage = "https://github.com/mirage/ocaml-conduit";
diff --git a/pkgs/development/ocaml-modules/conduit/lwt-unix.nix b/pkgs/development/ocaml-modules/conduit/lwt-unix.nix
index 81a77f356aff9..144325e6c2b97 100644
--- a/pkgs/development/ocaml-modules/conduit/lwt-unix.nix
+++ b/pkgs/development/ocaml-modules/conduit/lwt-unix.nix
@@ -28,6 +28,6 @@ buildDunePackage {
   ];
 
   meta = conduit-lwt.meta // {
-    description = "A network connection establishment library for Lwt_unix";
+    description = "Network connection establishment library for Lwt_unix";
   };
 }
diff --git a/pkgs/development/ocaml-modules/conduit/lwt.nix b/pkgs/development/ocaml-modules/conduit/lwt.nix
index 641d57db10e39..bc64a7869e57e 100644
--- a/pkgs/development/ocaml-modules/conduit/lwt.nix
+++ b/pkgs/development/ocaml-modules/conduit/lwt.nix
@@ -9,6 +9,6 @@ buildDunePackage {
   propagatedBuildInputs = [ conduit lwt sexplib ];
 
   meta = conduit.meta // {
-    description = "A network connection establishment library for Lwt";
+    description = "Network connection establishment library for Lwt";
   };
 }
diff --git a/pkgs/development/ocaml-modules/conduit/mirage.nix b/pkgs/development/ocaml-modules/conduit/mirage.nix
index 79174261b9eb6..c4a7b304a6e89 100644
--- a/pkgs/development/ocaml-modules/conduit/mirage.nix
+++ b/pkgs/development/ocaml-modules/conduit/mirage.nix
@@ -20,6 +20,6 @@ buildDunePackage {
   ];
 
   meta = conduit-lwt.meta // {
-    description = "A network connection establishment library for MirageOS";
+    description = "Network connection establishment library for MirageOS";
   };
 }
diff --git a/pkgs/development/ocaml-modules/config-file/default.nix b/pkgs/development/ocaml-modules/config-file/default.nix
index b9dde0e6425f5..46d513f62ddec 100644
--- a/pkgs/development/ocaml-modules/config-file/default.nix
+++ b/pkgs/development/ocaml-modules/config-file/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://config-file.forge.ocamlcore.org/";
     platforms = ocaml.meta.platforms or [ ];
-    description = "An OCaml library used to manage the configuration file(s) of an application";
+    description = "OCaml library used to manage the configuration file(s) of an application";
     license = lib.licenses.lgpl2Plus;
     maintainers = with lib.maintainers; [ vbgl ];
   };
diff --git a/pkgs/development/ocaml-modules/config/default.nix b/pkgs/development/ocaml-modules/config/default.nix
new file mode 100644
index 0000000000000..43ad500602ee7
--- /dev/null
+++ b/pkgs/development/ocaml-modules/config/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, ppxlib
+, spices
+}:
+
+buildDunePackage rec {
+  pname = "config";
+  version = "0.0.3";
+
+  src = fetchurl {
+    url = "https://github.com/ocaml-sys/config.ml/releases/download/${version}/config-${version}.tbz";
+    hash = "sha256-bcRCfLX2ro8vnQTJiX2aYGJC+eD26vkPynMYg817YFM=";
+  };
+
+  propagatedBuildInputs = [
+    ppxlib
+    spices
+  ];
+
+  meta = {
+    description = "Ergonomic, lightweight conditional compilation through attributes";
+    homepage = "https://github.com/ocaml-sys/config.ml";
+    license = lib.licenses.mit;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/containers/data.nix b/pkgs/development/ocaml-modules/containers/data.nix
index 98b6ec750640f..5d09504945220 100644
--- a/pkgs/development/ocaml-modules/containers/data.nix
+++ b/pkgs/development/ocaml-modules/containers/data.nix
@@ -19,6 +19,6 @@ buildDunePackage {
   propagatedBuildInputs = [ containers ];
 
   meta = containers.meta // {
-    description = "A set of advanced datatypes for containers";
+    description = "Set of advanced datatypes for containers";
   };
 }
diff --git a/pkgs/development/ocaml-modules/containers/default.nix b/pkgs/development/ocaml-modules/containers/default.nix
index 654e86ab15175..252a61369febd 100644
--- a/pkgs/development/ocaml-modules/containers/default.nix
+++ b/pkgs/development/ocaml-modules/containers/default.nix
@@ -26,7 +26,7 @@ buildDunePackage rec {
 
   meta = {
     homepage = "https://github.com/c-cube/ocaml-containers";
-    description = "A modular standard library focused on data structures";
+    description = "Modular standard library focused on data structures";
     longDescription = ''
       Containers is a standard library (BSD license) focused on data structures,
       combinators and iterators, without dependencies on unix. Every module is
diff --git a/pkgs/development/ocaml-modules/cooltt/default.nix b/pkgs/development/ocaml-modules/cooltt/default.nix
index 8a9a4d95c1abc..cf322e74760d2 100644
--- a/pkgs/development/ocaml-modules/cooltt/default.nix
+++ b/pkgs/development/ocaml-modules/cooltt/default.nix
@@ -103,7 +103,7 @@ buildDunePackage {
 
   meta = with lib; {
     homepage = "https://github.com/RedPRL/cooltt";
-    description = "A cool implementation of normalization by evaluation (nbe) & elaboration for Cartesian cubical type theory";
+    description = "Cool implementation of normalization by evaluation (nbe) & elaboration for Cartesian cubical type theory";
     license = licenses.asl20;
     maintainers = with maintainers; [ moni ];
   };
diff --git a/pkgs/development/ocaml-modules/cryptokit/default.nix b/pkgs/development/ocaml-modules/cryptokit/default.nix
index c3e3e5da9f8da..e104f94d13a9c 100644
--- a/pkgs/development/ocaml-modules/cryptokit/default.nix
+++ b/pkgs/development/ocaml-modules/cryptokit/default.nix
@@ -26,7 +26,7 @@ buildDunePackage rec {
 
   meta = {
     homepage = "http://pauillac.inria.fr/~xleroy/software.html";
-    description = "A library of cryptographic primitives for OCaml";
+    description = "Library of cryptographic primitives for OCaml";
     license = lib.licenses.lgpl2Only;
     maintainers = [
       lib.maintainers.maggesi
diff --git a/pkgs/development/ocaml-modules/csv/default.nix b/pkgs/development/ocaml-modules/csv/default.nix
index 7510dcede3a95..0846a35798557 100644
--- a/pkgs/development/ocaml-modules/csv/default.nix
+++ b/pkgs/development/ocaml-modules/csv/default.nix
@@ -16,7 +16,7 @@ buildDunePackage rec {
   duneVersion = "3";
 
   meta = {
-    description = "A pure OCaml library to read and write CSV files";
+    description = "Pure OCaml library to read and write CSV files";
     license = lib.licenses.lgpl21;
     maintainers = [ lib.maintainers.vbgl ];
     homepage = "https://github.com/Chris00/ocaml-csv";
diff --git a/pkgs/development/ocaml-modules/cudf/default.nix b/pkgs/development/ocaml-modules/cudf/default.nix
index 18ea3defa1936..1be0a0e49ce22 100644
--- a/pkgs/development/ocaml-modules/cudf/default.nix
+++ b/pkgs/development/ocaml-modules/cudf/default.nix
@@ -23,7 +23,7 @@ buildDunePackage rec {
   doCheck = lib.versionAtLeast ocaml.version "4.08";
 
   meta = with lib; {
-    description = "A library for CUDF format";
+    description = "Library for CUDF format";
     homepage = "https://www.mancoosi.org/cudf/";
     downloadPage = "https://gforge.inria.fr/projects/cudf/";
     license = licenses.lgpl3;
diff --git a/pkgs/development/ocaml-modules/data-encoding/default.nix b/pkgs/development/ocaml-modules/data-encoding/default.nix
index f94abebbcbdf0..c9a102366fdcd 100644
--- a/pkgs/development/ocaml-modules/data-encoding/default.nix
+++ b/pkgs/development/ocaml-modules/data-encoding/default.nix
@@ -1,5 +1,4 @@
 { lib
-, fetchFromGitLab
 , buildDunePackage
 , ppx_hash
 , bigstringaf
diff --git a/pkgs/development/ocaml-modules/dates_calc/default.nix b/pkgs/development/ocaml-modules/dates_calc/default.nix
index 4a2b9f176822b..d577cd61664ac 100644
--- a/pkgs/development/ocaml-modules/dates_calc/default.nix
+++ b/pkgs/development/ocaml-modules/dates_calc/default.nix
@@ -25,7 +25,7 @@ buildDunePackage rec {
   ];
 
   meta = {
-    description = "A date calculation library";
+    description = "Date calculation library";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.niols ];
     homepage = "https://github.com/catalalang/dates-calc";
diff --git a/pkgs/development/ocaml-modules/directories/default.nix b/pkgs/development/ocaml-modules/directories/default.nix
index 509d5b2a1e4a8..79f994458ca6d 100644
--- a/pkgs/development/ocaml-modules/directories/default.nix
+++ b/pkgs/development/ocaml-modules/directories/default.nix
@@ -16,7 +16,7 @@ buildDunePackage rec {
 
   meta = {
     homepage = "https://github.com/ocamlpro/directories";
-    description = "An OCaml library that provides configuration, cache and data paths (and more!) following the suitable conventions on Linux, macOS and Windows";
+    description = "OCaml library that provides configuration, cache and data paths (and more!) following the suitable conventions on Linux, macOS and Windows";
     longDescription = ''
       directories is an OCaml library that provides configuration, cache and
       data paths (and more!) following the suitable conventions on Linux, macOS
diff --git a/pkgs/development/ocaml-modules/dns/default.nix b/pkgs/development/ocaml-modules/dns/default.nix
index 9012b9d8214ef..a4f1972745003 100644
--- a/pkgs/development/ocaml-modules/dns/default.nix
+++ b/pkgs/development/ocaml-modules/dns/default.nix
@@ -33,7 +33,7 @@ buildDunePackage rec {
   checkInputs = [ alcotest ];
 
   meta = {
-    description = "An Domain Name System (DNS) library";
+    description = "Domain Name System (DNS) library";
     homepage = "https://github.com/mirage/ocaml-dns";
     license = lib.licenses.bsd2;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/dns/mirage.nix b/pkgs/development/ocaml-modules/dns/mirage.nix
index 640578831b22a..aba32efe52459 100644
--- a/pkgs/development/ocaml-modules/dns/mirage.nix
+++ b/pkgs/development/ocaml-modules/dns/mirage.nix
@@ -14,6 +14,6 @@ buildDunePackage {
   ];
 
   meta = dns.meta // {
-    description = "An opinionated Domain Name System (DNS) library";
+    description = "Opinionated Domain Name System (DNS) library";
   };
 }
diff --git a/pkgs/development/ocaml-modules/dolmen/default.nix b/pkgs/development/ocaml-modules/dolmen/default.nix
index 1586474f3910b..fede56388a774 100644
--- a/pkgs/development/ocaml-modules/dolmen/default.nix
+++ b/pkgs/development/ocaml-modules/dolmen/default.nix
@@ -23,7 +23,7 @@ buildDunePackage rec {
   checkInputs = [ qcheck ];
 
   meta = {
-    description = "An OCaml library providing clean and flexible parsers for input languages";
+    description = "OCaml library providing clean and flexible parsers for input languages";
     license = lib.licenses.bsd2;
     maintainers = [ lib.maintainers.vbgl ];
     homepage = "https://github.com/Gbury/dolmen";
diff --git a/pkgs/development/ocaml-modules/dolmen/loop.nix b/pkgs/development/ocaml-modules/dolmen/loop.nix
index 11e49ad9ee8d9..19349bcb6e6aa 100644
--- a/pkgs/development/ocaml-modules/dolmen/loop.nix
+++ b/pkgs/development/ocaml-modules/dolmen/loop.nix
@@ -10,6 +10,6 @@ buildDunePackage {
   propagatedBuildInputs = [ dolmen dolmen_type gen pp_loc ];
 
   meta = dolmen.meta // {
-    description = "A tool library for automated deduction tools";
+    description = "Tool library for automated deduction tools";
   };
 }
diff --git a/pkgs/development/ocaml-modules/dolmen/type.nix b/pkgs/development/ocaml-modules/dolmen/type.nix
index ce2fe7616da4d..79b84fd1f0f06 100644
--- a/pkgs/development/ocaml-modules/dolmen/type.nix
+++ b/pkgs/development/ocaml-modules/dolmen/type.nix
@@ -10,6 +10,6 @@ buildDunePackage {
   propagatedBuildInputs = [ dolmen spelll uutf ];
 
   meta = dolmen.meta // {
-    description = "A typechecker for automated deduction languages";
+    description = "Typechecker for automated deduction languages";
   };
 }
diff --git a/pkgs/development/ocaml-modules/domain-local-await/default.nix b/pkgs/development/ocaml-modules/domain-local-await/default.nix
index a3ed0bcc3ed65..9b90e87aa5179 100644
--- a/pkgs/development/ocaml-modules/domain-local-await/default.nix
+++ b/pkgs/development/ocaml-modules/domain-local-await/default.nix
@@ -37,7 +37,7 @@ buildDunePackage rec {
   meta = {
     homepage = "https://github.com/ocaml-multicore/ocaml-${pname}";
     changelog = "https://github.com/ocaml-multicore/ocaml-${pname}/raw/v${version}/CHANGES.md";
-    description = "A scheduler independent blocking mechanism";
+    description = "Scheduler independent blocking mechanism";
     license = with lib.licenses; [ isc ];
     maintainers = with lib.maintainers; [ toastal ];
   };
diff --git a/pkgs/development/ocaml-modules/domain-local-timeout/default.nix b/pkgs/development/ocaml-modules/domain-local-timeout/default.nix
index f0a1874acad26..a8ba771399b7e 100644
--- a/pkgs/development/ocaml-modules/domain-local-timeout/default.nix
+++ b/pkgs/development/ocaml-modules/domain-local-timeout/default.nix
@@ -23,7 +23,7 @@ buildDunePackage rec {
 
   meta = {
     homepage = "https://github.com/ocaml-multicore/domain-local-timeout";
-    description = "A scheduler independent timeout mechanism";
+    description = "Scheduler independent timeout mechanism";
     license = lib.licenses.isc;
     maintainers = [ lib.maintainers.vbgl ];
   };
diff --git a/pkgs/development/ocaml-modules/domain_shims/default.nix b/pkgs/development/ocaml-modules/domain_shims/default.nix
index 5846d068ae541..4ccc6bbe90bdc 100644
--- a/pkgs/development/ocaml-modules/domain_shims/default.nix
+++ b/pkgs/development/ocaml-modules/domain_shims/default.nix
@@ -15,7 +15,7 @@ buildDunePackage rec {
 
   meta = {
     homepage = "https://gitlab.com/gasche/domain-shims/";
-    description = "A non-parallel implementation of Domains compatible with OCaml 4";
+    description = "Non-parallel implementation of Domains compatible with OCaml 4";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.vbgl ];
   };
diff --git a/pkgs/development/ocaml-modules/dtoa/default.nix b/pkgs/development/ocaml-modules/dtoa/default.nix
index 866375cc5bae1..c3297b9a525bd 100644
--- a/pkgs/development/ocaml-modules/dtoa/default.nix
+++ b/pkgs/development/ocaml-modules/dtoa/default.nix
@@ -17,7 +17,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/flowtype/ocaml-dtoa";
-    description = "Converts OCaml floats into strings (doubles to ascii, \"d to a\"), using the efficient Grisu3 algorithm.";
+    description = "Converts OCaml floats into strings (doubles to ascii, \"d to a\"), using the efficient Grisu3 algorithm";
     license = licenses.mit;
     maintainers = [ maintainers.eqyiel ];
   };
diff --git a/pkgs/development/ocaml-modules/dune-site/default.nix b/pkgs/development/ocaml-modules/dune-site/default.nix
index 9eb2dcba5a49b..f17cdd60d2e14 100644
--- a/pkgs/development/ocaml-modules/dune-site/default.nix
+++ b/pkgs/development/ocaml-modules/dune-site/default.nix
@@ -15,7 +15,7 @@ buildDunePackage rec {
   '';
 
   meta = with lib; {
-    description = "A library for embedding location information inside executable and libraries";
+    description = "Library for embedding location information inside executable and libraries";
     inherit (dune_3.meta) homepage;
     maintainers = with lib.maintainers; [ ];
     license = licenses.mit;
diff --git a/pkgs/development/ocaml-modules/easy-format/default.nix b/pkgs/development/ocaml-modules/easy-format/default.nix
index 7e3fe5f483ec2..7d178b7580629 100644
--- a/pkgs/development/ocaml-modules/easy-format/default.nix
+++ b/pkgs/development/ocaml-modules/easy-format/default.nix
@@ -22,7 +22,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A high-level and functional interface to the Format module of the OCaml standard library";
+    description = "High-level and functional interface to the Format module of the OCaml standard library";
     homepage = "https://github.com/ocaml-community/easy-format";
     license = licenses.bsd3;
     maintainers = [ maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/eio/default.nix b/pkgs/development/ocaml-modules/eio/default.nix
index d90b40d1fe2c8..60e09d35db7b1 100644
--- a/pkgs/development/ocaml-modules/eio/default.nix
+++ b/pkgs/development/ocaml-modules/eio/default.nix
@@ -1,6 +1,6 @@
 { lib
 , ocaml
-, version ? if lib.versionAtLeast ocaml.version "5.1" then "1.0" else "0.12"
+, version ? if lib.versionAtLeast ocaml.version "5.1" then "1.1" else "0.12"
 , buildDunePackage
 , bigstringaf
 , cstruct
@@ -24,9 +24,9 @@ let
       minimalOCamlVersion = "5.0";
       hash = "sha256-2EhHzoX/t4ZBSWrSS+PGq1zCxohc7a1q4lfsrFnZJqA=";
     };
-    "1.0" = {
+    "1.1" = {
       minimalOCamlVersion = "5.1";
-      hash = "sha256-2iYNnaOLPd6fMWZSogsTomHPkLhaJJisZpt9Vk5hlC0=";
+      hash = "sha256-NGEEiEB38UCzV04drMwCISlgxu/reTyAPj5ri6/qD6s=";
     };
   }."${version}";
 in
diff --git a/pkgs/development/ocaml-modules/eio/linux.nix b/pkgs/development/ocaml-modules/eio/linux.nix
index b376f709794a5..f6ed30d4e80d1 100644
--- a/pkgs/development/ocaml-modules/eio/linux.nix
+++ b/pkgs/development/ocaml-modules/eio/linux.nix
@@ -7,7 +7,7 @@
 
 buildDunePackage {
   pname = "eio_linux";
-  inherit (eio) meta src version;
+  inherit (eio) meta src patches version;
 
   minimalOCamlVersion = "5.0";
 
diff --git a/pkgs/development/ocaml-modules/eio/main.nix b/pkgs/development/ocaml-modules/eio/main.nix
index 410e535512755..a65b27b8db411 100644
--- a/pkgs/development/ocaml-modules/eio/main.nix
+++ b/pkgs/development/ocaml-modules/eio/main.nix
@@ -8,7 +8,7 @@
 
 buildDunePackage {
   pname = "eio_main";
-  inherit (eio) meta src version;
+  inherit (eio) meta src patches version;
 
   minimalOCamlVersion = "5.0";
 
diff --git a/pkgs/development/ocaml-modules/eio/posix.nix b/pkgs/development/ocaml-modules/eio/posix.nix
index cba34a0d63899..c18cdd506141e 100644
--- a/pkgs/development/ocaml-modules/eio/posix.nix
+++ b/pkgs/development/ocaml-modules/eio/posix.nix
@@ -10,7 +10,7 @@
 
 buildDunePackage {
   pname = "eio_posix";
-  inherit (eio) meta src version;
+  inherit (eio) meta src patches version;
 
   minimalOCamlVersion = "5.0";
 
diff --git a/pkgs/development/ocaml-modules/ezjsonm-encoding/default.nix b/pkgs/development/ocaml-modules/ezjsonm-encoding/default.nix
new file mode 100644
index 0000000000000..ec81d52da687e
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ezjsonm-encoding/default.nix
@@ -0,0 +1,20 @@
+{ lib, fetchurl, buildDunePackage, ezjsonm }:
+
+buildDunePackage rec {
+  pname = "ezjsonm-encoding";
+  version = "2.0.0";
+
+  src = fetchurl {
+    url = "https://github.com/lthms/ezjsonm-encoding/releases/download/${version}/ezjsonm-encoding-${version}.tbz";
+    hash = "sha256-e5OPcbbQLr16ANFNZ5i10LjlHgwcRTCYhyvOhVk22yI=";
+  };
+
+  propagatedBuildInputs = [ ezjsonm ];
+
+  meta = {
+    description = "Encoding combinators a la Data_encoding for Ezjsonm";
+    homepage = "https://github.com/lthms/ezjsonmi-encoding";
+    license = lib.licenses.mpl20;
+    maintainers = with lib.maintainers; [ fgaz ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/ezjsonm/default.nix b/pkgs/development/ocaml-modules/ezjsonm/default.nix
index ae66f5fbc0c2f..cde69a13e8bab 100644
--- a/pkgs/development/ocaml-modules/ezjsonm/default.nix
+++ b/pkgs/development/ocaml-modules/ezjsonm/default.nix
@@ -14,7 +14,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ jsonm hex sexplib0 ];
 
   meta = {
-    description = "An easy interface on top of the Jsonm library";
+    description = "Easy interface on top of the Jsonm library";
     homepage = "https://github.com/mirage/ezjsonm";
     license = lib.licenses.isc;
     maintainers = with lib.maintainers; [ vbgl ];
diff --git a/pkgs/development/ocaml-modules/facile/default.nix b/pkgs/development/ocaml-modules/facile/default.nix
index 488a7d151d1b1..ee8b7cb5319d7 100644
--- a/pkgs/development/ocaml-modules/facile/default.nix
+++ b/pkgs/development/ocaml-modules/facile/default.nix
@@ -20,6 +20,6 @@ buildDunePackage rec {
   meta = {
     homepage = "http://opti.recherche.enac.fr/facile/";
     license = lib.licenses.lgpl21Plus;
-    description = "A Functional Constraint Library";
+    description = "Functional Constraint Library";
   };
 }
diff --git a/pkgs/development/ocaml-modules/farfadet/default.nix b/pkgs/development/ocaml-modules/farfadet/default.nix
index a02866e3b4f0c..aa200f880e450 100644
--- a/pkgs/development/ocaml-modules/farfadet/default.nix
+++ b/pkgs/development/ocaml-modules/farfadet/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   inherit (topkg) buildPhase installPhase;
 
   meta = {
-    description = "A printf-like for Faraday library";
+    description = "Printf-like for Faraday library";
     homepage = "https://github.com/oklm-wsh/Farfadet";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/ffmpeg/default.nix b/pkgs/development/ocaml-modules/ffmpeg/default.nix
index 10e837dcd62c2..1ceea8a75f690 100644
--- a/pkgs/development/ocaml-modules/ffmpeg/default.nix
+++ b/pkgs/development/ocaml-modules/ffmpeg/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildDunePackage, fetchFromGitHub, callPackage
+{ lib, buildDunePackage, callPackage
 , ffmpeg-base ? callPackage ./base.nix { }
 , ffmpeg-avutil
 , ffmpeg-avcodec
diff --git a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-av.nix b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-av.nix
index b902f72bc1ec0..58055aa6698c3 100644
--- a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-av.nix
+++ b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-av.nix
@@ -1,4 +1,4 @@
-{ lib, buildDunePackage, dune-configurator, pkg-config, fetchFromGitHub, callPackage
+{ lib, buildDunePackage, dune-configurator, pkg-config, callPackage
 , AudioToolbox
 , ffmpeg-base ? callPackage ./base.nix { }
 , ffmpeg-avutil, ffmpeg-avcodec, ffmpeg
diff --git a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avcodec.nix b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avcodec.nix
index bce592a8a2c83..8f268d4d5ec2c 100644
--- a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avcodec.nix
+++ b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avcodec.nix
@@ -1,4 +1,4 @@
-{ lib, buildDunePackage, dune-configurator, pkg-config, fetchFromGitHub, callPackage
+{ lib, buildDunePackage, dune-configurator, pkg-config, callPackage
 , AudioToolbox
 , ffmpeg-base ? callPackage ./base.nix { }
 , ffmpeg-avutil, ffmpeg
diff --git a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avdevice.nix b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avdevice.nix
index 3d27ab803153c..c8a1bf9de5a1a 100644
--- a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avdevice.nix
+++ b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avdevice.nix
@@ -1,4 +1,4 @@
-{ lib, buildDunePackage, dune-configurator, pkg-config, fetchFromGitHub, callPackage
+{ lib, buildDunePackage, dune-configurator, pkg-config, callPackage
 , AppKit
 , AudioToolbox
 , AVFoundation
diff --git a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avfilter.nix b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avfilter.nix
index 524bc600093ef..89d9824839863 100644
--- a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avfilter.nix
+++ b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avfilter.nix
@@ -1,4 +1,4 @@
-{ lib, buildDunePackage, dune-configurator, pkg-config, fetchFromGitHub, callPackage
+{ lib, buildDunePackage, dune-configurator, pkg-config, callPackage
 , AppKit
 , CoreImage
 , ffmpeg-base ? callPackage ./base.nix { }
diff --git a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avutil.nix b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avutil.nix
index 6cd71ebd58eb5..8e299a536f635 100644
--- a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avutil.nix
+++ b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avutil.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, buildDunePackage, dune-configurator, pkg-config, fetchFromGitHub, callPackage
+{ lib, stdenv, buildDunePackage, dune-configurator, pkg-config, callPackage
 , AudioToolbox, VideoToolbox
 , ffmpeg-base ? callPackage ./base.nix { }
 , ffmpeg
diff --git a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swresample.nix b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swresample.nix
index a6012a44171d8..d21e0d02ad4c7 100644
--- a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swresample.nix
+++ b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swresample.nix
@@ -1,4 +1,4 @@
-{ lib, buildDunePackage, dune-configurator, pkg-config, fetchFromGitHub, callPackage
+{ lib, buildDunePackage, dune-configurator, pkg-config, callPackage
 , ffmpeg-base ? callPackage ./base.nix { }
 , ffmpeg-avutil, ffmpeg-avcodec, ffmpeg
 , stdenv
diff --git a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swscale.nix b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swscale.nix
index 773b10ee168c7..b03d87596b03c 100644
--- a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swscale.nix
+++ b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swscale.nix
@@ -1,4 +1,4 @@
-{ lib, buildDunePackage, dune-configurator, pkg-config, fetchFromGitHub, callPackage
+{ lib, buildDunePackage, dune-configurator, pkg-config, callPackage
 , ffmpeg-base ? callPackage ./base.nix { }
 , ffmpeg-avutil, ffmpeg
 , stdenv
diff --git a/pkgs/development/ocaml-modules/fix/default.nix b/pkgs/development/ocaml-modules/fix/default.nix
index ed4230fbd01dd..1d738dfb32cc6 100644
--- a/pkgs/development/ocaml-modules/fix/default.nix
+++ b/pkgs/development/ocaml-modules/fix/default.nix
@@ -17,7 +17,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://gitlab.inria.fr/fpottier/fix/";
-    description = "A simple OCaml module for computing the least solution of a system of monotone equations";
+    description = "Simple OCaml module for computing the least solution of a system of monotone equations";
     license = licenses.lgpl2Only;
     maintainers = with maintainers; [ vbgl ];
   };
diff --git a/pkgs/development/ocaml-modules/fpath/default.nix b/pkgs/development/ocaml-modules/fpath/default.nix
index 84f25fed28406..db742f9290294 100644
--- a/pkgs/development/ocaml-modules/fpath/default.nix
+++ b/pkgs/development/ocaml-modules/fpath/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   inherit (topkg) buildPhase installPhase;
 
   meta = {
-    description = "An OCaml module for handling file system paths with POSIX and Windows conventions";
+    description = "OCaml module for handling file system paths with POSIX and Windows conventions";
     homepage = "https://erratique.ch/software/fpath";
     license = lib.licenses.isc;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/functoria/default.nix b/pkgs/development/ocaml-modules/functoria/default.nix
index e126c707285ab..96fd6d0749ffc 100644
--- a/pkgs/development/ocaml-modules/functoria/default.nix
+++ b/pkgs/development/ocaml-modules/functoria/default.nix
@@ -12,11 +12,12 @@ buildDunePackage {
 
   propagatedBuildInputs = [ cmdliner rresult astring fmt logs bos fpath emile uri ];
 
-  doCheck = true;
+  # Tests are not compatible with cmdliner 1.3
+  doCheck = false;
   checkInputs = [ alcotest functoria-runtime ];
 
   meta = with lib; {
-    description = "A DSL to organize functor applications";
+    description = "DSL to organize functor applications";
     homepage    = "https://github.com/mirage/functoria";
     license     = licenses.isc;
     maintainers = [ maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/functory/default.nix b/pkgs/development/ocaml-modules/functory/default.nix
index 8a960dedcb5cc..0901de7c53b5d 100644
--- a/pkgs/development/ocaml-modules/functory/default.nix
+++ b/pkgs/development/ocaml-modules/functory/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://www.lri.fr/~filliatr/functory/";
-    description = "A distributed computing library for Objective Caml which facilitates distributed execution of parallelizable computations in a seamless fashion";
+    description = "Distributed computing library for Objective Caml which facilitates distributed execution of parallelizable computations in a seamless fashion";
     license = licenses.lgpl21;
     maintainers = [ maintainers.vbgl ];
     inherit (ocaml.meta) platforms;
diff --git a/pkgs/development/ocaml-modules/git/mirage.nix b/pkgs/development/ocaml-modules/git/mirage.nix
index ad5a399bda632..28c49b70b1837 100644
--- a/pkgs/development/ocaml-modules/git/mirage.nix
+++ b/pkgs/development/ocaml-modules/git/mirage.nix
@@ -91,6 +91,6 @@ buildDunePackage {
   ];
 
   meta = git.meta // {
-    description = "A package to use ocaml-git with MirageOS backend";
+    description = "Package to use ocaml-git with MirageOS backend";
   };
 }
diff --git a/pkgs/development/ocaml-modules/git/paf.nix b/pkgs/development/ocaml-modules/git/paf.nix
index 4806909962c09..9f38f0c8606a7 100644
--- a/pkgs/development/ocaml-modules/git/paf.nix
+++ b/pkgs/development/ocaml-modules/git/paf.nix
@@ -50,6 +50,6 @@ buildDunePackage {
   ];
 
   meta = git.meta // {
-    description = "A package to use HTTP-based ocaml-git with MirageOS backend";
+    description = "Package to use HTTP-based ocaml-git with MirageOS backend";
   };
 }
diff --git a/pkgs/development/ocaml-modules/git/unix.nix b/pkgs/development/ocaml-modules/git/unix.nix
index 28bfb40cf8cbc..adad5dc0792eb 100644
--- a/pkgs/development/ocaml-modules/git/unix.nix
+++ b/pkgs/development/ocaml-modules/git/unix.nix
@@ -1,11 +1,11 @@
-{ buildDunePackage, fetchpatch, git
+{ buildDunePackage, git
 , rresult, result, bigstringaf
 , fmt, bos, fpath, uri, digestif, logs, lwt
 , mirage-clock, mirage-clock-unix, astring, awa, cmdliner
 , decompress, domain-name, ipaddr, mtime
 , tcpip, awa-mirage, mirage-flow, mirage-unix
 , alcotest, alcotest-lwt, base64, cstruct
-, ke, mirage-crypto-rng, ocurl, git-binary
+, ke, mirage-crypto-rng, git-binary
 , ptime, mimic, ca-certs-nss, tls, tls-mirage
 , cacert, happy-eyeballs-lwt, git-mirage
 }:
diff --git a/pkgs/development/ocaml-modules/gluon/default.nix b/pkgs/development/ocaml-modules/gluon/default.nix
new file mode 100644
index 0000000000000..cb926cbb07094
--- /dev/null
+++ b/pkgs/development/ocaml-modules/gluon/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, bytestring
+, config
+, libc
+, rio
+, uri
+}:
+
+buildDunePackage rec {
+  pname = "gluon";
+  version = "0.0.9";
+
+  minimalOCamlVersion = "5.1";
+
+  src = fetchurl {
+    url = "https://github.com/riot-ml/gluon/releases/download/${version}/gluon-${version}.tbz";
+    hash = "sha256-YWJCPokY1A7TGqCGoxJl14oKDVeMNybEEB7KiK92WSo=";
+  };
+
+  buildInputs = [
+    config
+  ];
+
+  propagatedBuildInputs = [
+    bytestring
+    libc
+    rio
+    uri
+  ];
+
+  meta = {
+    description = "Minimal, portable, and fast API on top of the operating-system's evented I/O API";
+    homepage = "https://github.com/riot-ml/gluon";
+    changelog = "https://github.com/riot-ml/gluon/blob/${version}/CHANGES.md";
+    license = lib.licenses.mit;
+    maintainers = [ ];
+  };
+}
+
+
diff --git a/pkgs/development/ocaml-modules/gluten/default.nix b/pkgs/development/ocaml-modules/gluten/default.nix
index 5c55f2f09bfd1..1c8b2597b2bbb 100644
--- a/pkgs/development/ocaml-modules/gluten/default.nix
+++ b/pkgs/development/ocaml-modules/gluten/default.nix
@@ -7,11 +7,11 @@
 
 buildDunePackage rec {
   pname = "gluten";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchurl {
     url = "https://github.com/anmonteiro/gluten/releases/download/${version}/gluten-${version}.tbz";
-    hash = "sha256-mGKbbQSPMOumUCtxrAdoBt5y2RrkAf58spkUymTYhYM=";
+    hash = "sha256-VZcbMFDRv+TVSXG05wUYxaWbTnBSa43RiVx9OesPnZY=";
   };
 
   minimalOCamlVersion = "4.08";
@@ -24,7 +24,7 @@ buildDunePackage rec {
   doCheck = false; # No tests
 
   meta = {
-    description = "An implementation of a platform specific runtime code for driving network libraries based on state machines, such as http/af, h2 and websocketaf";
+    description = "Implementation of a platform specific runtime code for driving network libraries based on state machines, such as http/af, h2 and websocketaf";
     license = lib.licenses.bsd3;
     homepage = "https://github.com/anmonteiro/gluten";
     maintainers = with lib.maintainers; [ anmonteiro ];
diff --git a/pkgs/development/ocaml-modules/graphics/default.nix b/pkgs/development/ocaml-modules/graphics/default.nix
index 38db74fc9faf8..02edaded7c03d 100644
--- a/pkgs/development/ocaml-modules/graphics/default.nix
+++ b/pkgs/development/ocaml-modules/graphics/default.nix
@@ -17,7 +17,7 @@ buildDunePackage rec {
 
   meta = {
     homepage = "https://github.com/ocaml/graphics";
-    description = "A set of portable drawing primitives";
+    description = "Set of portable drawing primitives";
     license = lib.licenses.lgpl2;
   };
 }
diff --git a/pkgs/development/ocaml-modules/h2/default.nix b/pkgs/development/ocaml-modules/h2/default.nix
index 5ec66ae9235ef..e8d9d42ff602a 100644
--- a/pkgs/development/ocaml-modules/h2/default.nix
+++ b/pkgs/development/ocaml-modules/h2/default.nix
@@ -50,6 +50,6 @@ buildDunePackage rec {
   ];
 
   meta = hpack.meta // {
-    description = "A high-performance, memory-efficient, and scalable HTTP/2 library for OCaml";
+    description = "High-performance, memory-efficient, and scalable HTTP/2 library for OCaml";
   };
 }
diff --git a/pkgs/development/ocaml-modules/hpack/default.nix b/pkgs/development/ocaml-modules/hpack/default.nix
index 3b8057bf81c8b..eb42f51585893 100644
--- a/pkgs/development/ocaml-modules/hpack/default.nix
+++ b/pkgs/development/ocaml-modules/hpack/default.nix
@@ -26,7 +26,7 @@ buildDunePackage rec {
 
   meta = {
     license = lib.licenses.bsd3;
-    description = "An HPACK (Header Compression for HTTP/2) implementation in OCaml";
+    description = "HPACK (Header Compression for HTTP/2) implementation in OCaml";
     homepage = "https://github.com/anmonteiro/ocaml-h2";
     maintainers = with lib.maintainers; [
       sternenseemann
diff --git a/pkgs/development/ocaml-modules/httpaf/default.nix b/pkgs/development/ocaml-modules/httpaf/default.nix
index 6dce28fb20202..c4a3dd8e31723 100644
--- a/pkgs/development/ocaml-modules/httpaf/default.nix
+++ b/pkgs/development/ocaml-modules/httpaf/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, fetchpatch, buildDunePackage
+{ lib, fetchFromGitHub, buildDunePackage
 , angstrom, faraday, result, alcotest
 }:
 
@@ -20,7 +20,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = {
-    description = "A high-performance, memory-efficient, and scalable web server for OCaml";
+    description = "High-performance, memory-efficient, and scalable web server for OCaml";
     license = lib.licenses.bsd3;
     maintainers = [ lib.maintainers.vbgl ];
     inherit (src.meta) homepage;
diff --git a/pkgs/development/ocaml-modules/index/default.nix b/pkgs/development/ocaml-modules/index/default.nix
index 3cc3643429c72..edcb416194093 100644
--- a/pkgs/development/ocaml-modules/index/default.nix
+++ b/pkgs/development/ocaml-modules/index/default.nix
@@ -39,7 +39,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A platform-agnostic multi-level index";
+    description = "Platform-agnostic multi-level index";
     homepage = "https://github.com/mirage/index";
     license = licenses.mit;
     maintainers = with maintainers; [ vbgl ];
diff --git a/pkgs/development/ocaml-modules/inifiles/default.nix b/pkgs/development/ocaml-modules/inifiles/default.nix
index 9e3cf1f2ba1e3..a78e314b76656 100644
--- a/pkgs/development/ocaml-modules/inifiles/default.nix
+++ b/pkgs/development/ocaml-modules/inifiles/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   createFindlibDestdir = true;
 
   meta = {
-    description = "A small OCaml library to read and write .ini files";
+    description = "Small OCaml library to read and write .ini files";
     license = lib.licenses.lgpl21Plus;
     inherit (ocaml.meta) platforms;
   };
diff --git a/pkgs/development/ocaml-modules/ipaddr/cstruct.nix b/pkgs/development/ocaml-modules/ipaddr/cstruct.nix
index 07abfc9673436..cbad2d73e545f 100644
--- a/pkgs/development/ocaml-modules/ipaddr/cstruct.nix
+++ b/pkgs/development/ocaml-modules/ipaddr/cstruct.nix
@@ -14,6 +14,6 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = ipaddr.meta // {
-    description = "A library for manipulation of IP address representations using Cstructs";
+    description = "Library for manipulation of IP address representations using Cstructs";
   };
 }
diff --git a/pkgs/development/ocaml-modules/ipaddr/default.nix b/pkgs/development/ocaml-modules/ipaddr/default.nix
index 6e1170375dcdd..d579c22de1345 100644
--- a/pkgs/development/ocaml-modules/ipaddr/default.nix
+++ b/pkgs/development/ocaml-modules/ipaddr/default.nix
@@ -17,7 +17,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = macaddr.meta // {
-    description = "A library for manipulation of IP (and MAC) address representations ";
+    description = "Library for manipulation of IP (and MAC) address representations ";
     maintainers = with lib.maintainers; [ alexfmpe ericbmerritt ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/ipaddr/sexp.nix b/pkgs/development/ocaml-modules/ipaddr/sexp.nix
index a74236c5aa0cb..9484f8203cec9 100644
--- a/pkgs/development/ocaml-modules/ipaddr/sexp.nix
+++ b/pkgs/development/ocaml-modules/ipaddr/sexp.nix
@@ -15,6 +15,6 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = ipaddr.meta // {
-    description = "A library for manipulation of IP address representations usnig sexp";
+    description = "Library for manipulation of IP address representations usnig sexp";
   };
 }
diff --git a/pkgs/development/ocaml-modules/irmin/default.nix b/pkgs/development/ocaml-modules/irmin/default.nix
index 3f6e551e67139..fdd18aa5abe5c 100644
--- a/pkgs/development/ocaml-modules/irmin/default.nix
+++ b/pkgs/development/ocaml-modules/irmin/default.nix
@@ -38,6 +38,6 @@ buildDunePackage {
   doCheck = true;
 
   meta = ppx_irmin.meta // {
-    description = "A distributed database built on the same principles as Git";
+    description = "Distributed database built on the same principles as Git";
   };
 }
diff --git a/pkgs/development/ocaml-modules/javalib/default.nix b/pkgs/development/ocaml-modules/javalib/default.nix
index fbe2d71fcd008..e6685ec0b5589 100644
--- a/pkgs/development/ocaml-modules/javalib/default.nix
+++ b/pkgs/development/ocaml-modules/javalib/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = [ camlzip extlib ];
 
   meta = with lib; {
-    description = "A library that parses Java .class files into OCaml data structures";
+    description = "Library that parses Java .class files into OCaml data structures";
     homepage = "https://javalib-team.github.io/javalib/";
     license = licenses.lgpl3;
     maintainers = [ maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/jsonm/default.nix b/pkgs/development/ocaml-modules/jsonm/default.nix
index a6e136eddfc45..ada427aef8668 100644
--- a/pkgs/development/ocaml-modules/jsonm/default.nix
+++ b/pkgs/development/ocaml-modules/jsonm/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   inherit (topkg) buildPhase installPhase;
 
   meta = {
-    description = "An OCaml non-blocking streaming codec to decode and encode the JSON data format";
+    description = "OCaml non-blocking streaming codec to decode and encode the JSON data format";
     homepage = "https://erratique.ch/software/jsonm";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ vbgl ];
diff --git a/pkgs/development/ocaml-modules/junit/default.nix b/pkgs/development/ocaml-modules/junit/default.nix
index b71712aba9992..ff3c31519ed45 100644
--- a/pkgs/development/ocaml-modules/junit/default.nix
+++ b/pkgs/development/ocaml-modules/junit/default.nix
@@ -17,7 +17,7 @@ buildDunePackage (rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "ocaml-junit is an OCaml package for the creation of JUnit XML reports, proving a typed API to produce valid reports acceptable to Jenkins, comes with packages supporting OUnit and Alcotest.";
+    description = "ocaml-junit is an OCaml package for the creation of JUnit XML reports, proving a typed API to produce valid reports acceptable to Jenkins, comes with packages supporting OUnit and Alcotest";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ ];
     homepage = "https://github.com/Khady/ocaml-junit";
diff --git a/pkgs/development/ocaml-modules/lablgtk-extras/1.4.nix b/pkgs/development/ocaml-modules/lablgtk-extras/1.4.nix
index 3d5135d7439a3..6b8ee76985c79 100644
--- a/pkgs/development/ocaml-modules/lablgtk-extras/1.4.nix
+++ b/pkgs/development/ocaml-modules/lablgtk-extras/1.4.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     platforms = ocaml.meta.platforms or [ ];
     maintainers = with lib.maintainers; [ vbgl ];
     homepage = "http://gtk-extras.forge.ocamlcore.org/";
-    description = "A collection of libraries and modules useful when developing OCaml/LablGtk2 applications";
+    description = "Collection of libraries and modules useful when developing OCaml/LablGtk2 applications";
     license = lib.licenses.lgpl2Plus;
     branch = "1.4";
   };
diff --git a/pkgs/development/ocaml-modules/lablgtk-extras/default.nix b/pkgs/development/ocaml-modules/lablgtk-extras/default.nix
index 66728db655668..bca24a9240abf 100644
--- a/pkgs/development/ocaml-modules/lablgtk-extras/default.nix
+++ b/pkgs/development/ocaml-modules/lablgtk-extras/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     inherit (ocaml.meta) platforms;
     maintainers = with lib.maintainers; [ vbgl ];
     homepage = "https://framagit.org/zoggy/lablgtk-extras/";
-    description = "A collection of libraries and modules useful when developing OCaml/LablGtk2 applications";
+    description = "Collection of libraries and modules useful when developing OCaml/LablGtk2 applications";
     license = lib.licenses.lgpl2Plus;
   };
 }
diff --git a/pkgs/development/ocaml-modules/lablgtk/default.nix b/pkgs/development/ocaml-modules/lablgtk/default.nix
index 17e64cafb0776..fc3aebd33d23c 100644
--- a/pkgs/development/ocaml-modules/lablgtk/default.nix
+++ b/pkgs/development/ocaml-modules/lablgtk/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation {
   dontStrip = true;
 
   meta = with lib; {
-    description = "An OCaml interface to GTK";
+    description = "OCaml interface to GTK";
     homepage = "http://lablgtk.forge.ocamlcore.org/";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ maggesi roconnor vbgl ];
diff --git a/pkgs/development/ocaml-modules/landmarks-ppx/default.nix b/pkgs/development/ocaml-modules/landmarks-ppx/default.nix
index c55836a9b75e5..f15c86b9e1f31 100644
--- a/pkgs/development/ocaml-modules/landmarks-ppx/default.nix
+++ b/pkgs/development/ocaml-modules/landmarks-ppx/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, buildDunePackage, ocaml, landmarks, ppxlib }:
+{ lib, buildDunePackage, ocaml, landmarks, ppxlib }:
 
 buildDunePackage {
   pname = "landmarks-ppx";
diff --git a/pkgs/development/ocaml-modules/landmarks/default.nix b/pkgs/development/ocaml-modules/landmarks/default.nix
index d501e4e3c51a2..e25bf1ae79047 100644
--- a/pkgs/development/ocaml-modules/landmarks/default.nix
+++ b/pkgs/development/ocaml-modules/landmarks/default.nix
@@ -16,7 +16,7 @@ buildDunePackage {
     && lib.versionOlder ocaml.version "5.0";
 
   meta = with lib; {
-    description = "A Simple Profiling Library for OCaml";
+    description = "Simple Profiling Library for OCaml";
     maintainers = [ maintainers.kenran ];
     license = licenses.mit;
   };
diff --git a/pkgs/development/ocaml-modules/lem/default.nix b/pkgs/development/ocaml-modules/lem/default.nix
index b9e02eb97c091..1e797cbb7cb16 100644
--- a/pkgs/development/ocaml-modules/lem/default.nix
+++ b/pkgs/development/ocaml-modules/lem/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/rems-project/lem";
-    description = "A tool for lightweight executable mathematics";
+    description = "Tool for lightweight executable mathematics";
     mainProgram = "lem";
     maintainers = with maintainers; [ genericnerdyusername ];
     license = with licenses; [ bsd3 gpl2 ];
diff --git a/pkgs/development/ocaml-modules/letsencrypt/app.nix b/pkgs/development/ocaml-modules/letsencrypt/app.nix
index b2d8b3c220735..0b20eb5c3e6ad 100644
--- a/pkgs/development/ocaml-modules/letsencrypt/app.nix
+++ b/pkgs/development/ocaml-modules/letsencrypt/app.nix
@@ -42,7 +42,7 @@ buildDunePackage {
   ];
 
   meta = letsencrypt.meta // {
-    description = "An ACME client implementation of the ACME protocol (RFC 8555) for OCaml";
+    description = "ACME client implementation of the ACME protocol (RFC 8555) for OCaml";
     mainProgram = "oacmel";
   };
 }
diff --git a/pkgs/development/ocaml-modules/letsencrypt/dns.nix b/pkgs/development/ocaml-modules/letsencrypt/dns.nix
index 6465c8c722025..4f2f04843163e 100644
--- a/pkgs/development/ocaml-modules/letsencrypt/dns.nix
+++ b/pkgs/development/ocaml-modules/letsencrypt/dns.nix
@@ -30,6 +30,6 @@ buildDunePackage {
   ];
 
   meta = letsencrypt.meta // {
-    description = "A DNS solver for the ACME implementation in OCaml";
+    description = "DNS solver for the ACME implementation in OCaml";
   };
 }
diff --git a/pkgs/development/ocaml-modules/libc/default.nix b/pkgs/development/ocaml-modules/libc/default.nix
new file mode 100644
index 0000000000000..13e0f04ddfc78
--- /dev/null
+++ b/pkgs/development/ocaml-modules/libc/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, config
+}:
+
+buildDunePackage rec {
+  pname = "libc";
+  version = "0.0.1";
+
+  src = fetchurl {
+    url = "https://github.com/ocaml-sys/libc.ml/releases/download/${version}/libc-${version}.tbz";
+    hash = "sha256-e5x5Yae7V6qOpq+aLZaV+6L9ldy9qDqd9Kc8nkAsENg=";
+  };
+
+  buildInputs = [
+    config
+  ];
+
+  meta = {
+    description = "Raw definitions and bindings to platforms system libraries";
+    homepage = "https://github.com/ocaml-sys/libc.ml";
+    license = lib.licenses.mit;
+  };
+}
+
diff --git a/pkgs/development/ocaml-modules/linksem/default.nix b/pkgs/development/ocaml-modules/linksem/default.nix
index 751f4e14a2d30..2e88c7f0d45f8 100644
--- a/pkgs/development/ocaml-modules/linksem/default.nix
+++ b/pkgs/development/ocaml-modules/linksem/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/rems-project/linksem";
-    description = "A formalisation of substantial parts of ELF linking and DWARF debug information";
+    description = "Formalisation of substantial parts of ELF linking and DWARF debug information";
     maintainers = with maintainers; [ genericnerdyusername ];
     license = licenses.bsd2;
     platforms = ocaml.meta.platforms;
diff --git a/pkgs/development/ocaml-modules/lua-ml/default.nix b/pkgs/development/ocaml-modules/lua-ml/default.nix
index 5c48b763fc51b..bec9b9a998dc4 100644
--- a/pkgs/development/ocaml-modules/lua-ml/default.nix
+++ b/pkgs/development/ocaml-modules/lua-ml/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "An embeddable Lua 2.5 interpreter implemented in OCaml";
+    description = "Embeddable Lua 2.5 interpreter implemented in OCaml";
     inherit (src.meta) homepage;
     inherit (ocaml.meta) platforms;
     license = lib.licenses.bsd2;
diff --git a/pkgs/development/ocaml-modules/lwd/nottui-pretty.nix b/pkgs/development/ocaml-modules/lwd/nottui-pretty.nix
index 9a0267379dc2b..ac9b18ff3b4f9 100644
--- a/pkgs/development/ocaml-modules/lwd/nottui-pretty.nix
+++ b/pkgs/development/ocaml-modules/lwd/nottui-pretty.nix
@@ -11,7 +11,7 @@ buildDunePackage {
   propagatedBuildInputs = [ nottui ];
 
   meta = with lib; {
-    description = "A pretty-printer based on PPrint rendering UIs";
+    description = "Pretty-printer based on PPrint rendering UIs";
     license = licenses.mit;
     maintainers = [ maintainers.alizter ];
     homepage = "https://github.com/let-def/lwd";
diff --git a/pkgs/development/ocaml-modules/lwt-exit/default.nix b/pkgs/development/ocaml-modules/lwt-exit/default.nix
index 1b82c30028e97..52bcc0ab2de3a 100644
--- a/pkgs/development/ocaml-modules/lwt-exit/default.nix
+++ b/pkgs/development/ocaml-modules/lwt-exit/default.nix
@@ -28,7 +28,7 @@ buildDunePackage rec {
   doCheck = false;
 
   meta = {
-    description = "An opinionated clean-exit and signal-handling library for Lwt programs";
+    description = "Opinionated clean-exit and signal-handling library for Lwt programs";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.ulrikstrid ];
   };
diff --git a/pkgs/development/ocaml-modules/lwt/default.nix b/pkgs/development/ocaml-modules/lwt/default.nix
index 167df30ae3535..61cf05151a309 100644
--- a/pkgs/development/ocaml-modules/lwt/default.nix
+++ b/pkgs/development/ocaml-modules/lwt/default.nix
@@ -21,7 +21,7 @@ buildDunePackage rec {
 
   meta = {
     homepage = "https://ocsigen.org/lwt/";
-    description = "A cooperative threads library for OCaml";
+    description = "Cooperative threads library for OCaml";
     maintainers = [ lib.maintainers.vbgl ];
     license = lib.licenses.mit;
   };
diff --git a/pkgs/development/ocaml-modules/macaddr/cstruct.nix b/pkgs/development/ocaml-modules/macaddr/cstruct.nix
index 863491e0b7fb8..9fb3ce304d952 100644
--- a/pkgs/development/ocaml-modules/macaddr/cstruct.nix
+++ b/pkgs/development/ocaml-modules/macaddr/cstruct.nix
@@ -14,6 +14,6 @@ buildDunePackage {
   doCheck = true;
 
   meta = macaddr.meta // {
-    description = "A library for manipulation of MAC address representations using Cstructs";
+    description = "Library for manipulation of MAC address representations using Cstructs";
   };
 }
diff --git a/pkgs/development/ocaml-modules/macaddr/default.nix b/pkgs/development/ocaml-modules/macaddr/default.nix
index 28269ab6dfc95..4c405f2fff835 100644
--- a/pkgs/development/ocaml-modules/macaddr/default.nix
+++ b/pkgs/development/ocaml-modules/macaddr/default.nix
@@ -18,7 +18,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/mirage/ocaml-ipaddr";
-    description = "A library for manipulation of MAC address representations";
+    description = "Library for manipulation of MAC address representations";
     license = licenses.isc;
     maintainers = [ maintainers.alexfmpe ];
   };
diff --git a/pkgs/development/ocaml-modules/macaddr/sexp.nix b/pkgs/development/ocaml-modules/macaddr/sexp.nix
index 5d096dfececdb..62e2acba4d3e2 100644
--- a/pkgs/development/ocaml-modules/macaddr/sexp.nix
+++ b/pkgs/development/ocaml-modules/macaddr/sexp.nix
@@ -15,6 +15,6 @@ buildDunePackage {
   doCheck = true;
 
   meta = macaddr.meta // {
-    description = "A library for manipulation of MAC address representations using sexp";
+    description = "Library for manipulation of MAC address representations using sexp";
   };
 }
diff --git a/pkgs/development/ocaml-modules/magic-trace/default.nix b/pkgs/development/ocaml-modules/magic-trace/default.nix
index 8fdd92f813299..b4e1c557e8124 100644
--- a/pkgs/development/ocaml-modules/magic-trace/default.nix
+++ b/pkgs/development/ocaml-modules/magic-trace/default.nix
@@ -17,7 +17,7 @@
 
 buildDunePackage rec {
   pname = "magic-trace";
-  version = "1.2.1";
+  version = "1.2.3";
 
   minimalOCamlVersion = "4.12";
 
@@ -25,7 +25,7 @@ buildDunePackage rec {
     owner = "janestreet";
     repo = "magic-trace";
     rev = "v${version}";
-    hash = "sha256-/9TDjCG/06mhGyqbjAdUmk6fcaq9fNDqVSw51w5EEy4=";
+    hash = "sha256-cAoaAXZOeWNQh6emm17a9oCis8s4jJxPQMI/NfiUa7g=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/ocaml-modules/markup/default.nix b/pkgs/development/ocaml-modules/markup/default.nix
index 6f286346a9a03..2de510919edf1 100644
--- a/pkgs/development/ocaml-modules/markup/default.nix
+++ b/pkgs/development/ocaml-modules/markup/default.nix
@@ -20,7 +20,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/aantron/markup.ml/";
-    description = "A pair of best-effort parsers implementing the HTML5 and XML specifications";
+    description = "Pair of best-effort parsers implementing the HTML5 and XML specifications";
     license = licenses.mit;
     maintainers = with maintainers; [ gal_bolle ];
   };
diff --git a/pkgs/development/ocaml-modules/mccs/default.nix b/pkgs/development/ocaml-modules/mccs/default.nix
index 50abdf631db89..8a2f195c9445f 100644
--- a/pkgs/development/ocaml-modules/mccs/default.nix
+++ b/pkgs/development/ocaml-modules/mccs/default.nix
@@ -20,7 +20,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A library providing a multi criteria CUDF solver, part of MANCOOSI project.";
+    description = "Library providing a multi criteria CUDF solver, part of MANCOOSI project";
     downloadPage = "https://github.com/AltGr/ocaml-mccs";
     homepage = "https://www.i3s.unice.fr/~cpjm/misc/";
     license = with licenses; [ lgpl21 gpl3 ];
diff --git a/pkgs/development/ocaml-modules/memprof-limits/default.nix b/pkgs/development/ocaml-modules/memprof-limits/default.nix
new file mode 100644
index 0000000000000..768c044872820
--- /dev/null
+++ b/pkgs/development/ocaml-modules/memprof-limits/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildDunePackage, fetchFromGitLab, ocaml }:
+
+if !(lib.versionOlder ocaml.version "5.0.0") then
+  throw "memprof-limits is not available for OCaml ${ocaml.version}"
+else
+  buildDunePackage rec {
+    pname = "memprof-limits";
+    version = "0.2.1";
+
+    src = fetchFromGitLab rec {
+      owner = "gadmm";
+      repo = pname;
+      rev = "v${version}";
+      hash = "sha256-Pmuln5TihPoPZuehZlqPfERif6lf7O+0454kW9y3aKc=";
+    };
+
+    minimalOCamlVersion = "4.12";
+
+    meta = with lib; {
+      homepage = "https://ocaml.org/p/memprof-limits/latest";
+      description =
+        "Memory limits, allocation limits, and thread cancellation for OCaml";
+      license = licenses.lgpl3;
+      maintainers = with maintainers; [ alizter ];
+    };
+  }
diff --git a/pkgs/development/ocaml-modules/menhir/default.nix b/pkgs/development/ocaml-modules/menhir/default.nix
index a96f3ab9cfd9c..afe2d5cf593a2 100644
--- a/pkgs/development/ocaml-modules/menhir/default.nix
+++ b/pkgs/development/ocaml-modules/menhir/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitLab, buildDunePackage
+{ buildDunePackage
 , menhirLib, menhirSdk
 }:
 
@@ -12,7 +12,7 @@ buildDunePackage rec {
   buildInputs = [ menhirLib menhirSdk ];
 
   meta = menhirSdk.meta // {
-    description = "A LR(1) parser generator for OCaml";
+    description = "LR(1) parser generator for OCaml";
     mainProgram = "menhir";
   };
 }
diff --git a/pkgs/development/ocaml-modules/menhir/sdk.nix b/pkgs/development/ocaml-modules/menhir/sdk.nix
index cc699175af399..ad406c8a31dd2 100644
--- a/pkgs/development/ocaml-modules/menhir/sdk.nix
+++ b/pkgs/development/ocaml-modules/menhir/sdk.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitLab, buildDunePackage
+{ lib, buildDunePackage
 , menhirLib
 }:
 
diff --git a/pkgs/development/ocaml-modules/mimic/default.nix b/pkgs/development/ocaml-modules/mimic/default.nix
index 097ecb3135346..eb910c5a5b04d 100644
--- a/pkgs/development/ocaml-modules/mimic/default.nix
+++ b/pkgs/development/ocaml-modules/mimic/default.nix
@@ -32,7 +32,7 @@ buildDunePackage rec {
   ];
 
   meta = with lib; {
-    description = "A simple protocol dispatcher";
+    description = "Simple protocol dispatcher";
     license = licenses.isc;
     homepage = "https://github.com/mirage/ocaml-git";
     maintainers = [ maintainers.sternenseemann ];
diff --git a/pkgs/development/ocaml-modules/mimic/happy-eyeballs.nix b/pkgs/development/ocaml-modules/mimic/happy-eyeballs.nix
index 193509dd49036..569cc713fd1df 100644
--- a/pkgs/development/ocaml-modules/mimic/happy-eyeballs.nix
+++ b/pkgs/development/ocaml-modules/mimic/happy-eyeballs.nix
@@ -17,7 +17,7 @@ buildDunePackage {
   doCheck = false;
 
   meta = {
-    description = "A happy-eyeballs integration into mimic";
+    description = "Happy-eyeballs integration into mimic";
     maintainers = [ lib.maintainers.ulrikstrid ];
     inherit (mimic.meta) license homepage;
   };
diff --git a/pkgs/development/ocaml-modules/minisat/default.nix b/pkgs/development/ocaml-modules/minisat/default.nix
index 257bbde0531ca..3a7c222c95728 100644
--- a/pkgs/development/ocaml-modules/minisat/default.nix
+++ b/pkgs/development/ocaml-modules/minisat/default.nix
@@ -2,7 +2,7 @@
 
 buildDunePackage rec {
   pname = "minisat";
-  version = "0.5";
+  version = "0.6";
 
   minimalOCamlVersion = "4.05";
 
@@ -10,7 +10,7 @@ buildDunePackage rec {
     owner  = "c-cube";
     repo   = "ocaml-minisat";
     rev    = "v${version}";
-    hash   = "sha256-hqGSHxhT+Z2slRCIXnfYuasG1K3tVG/tsM0IXxmy9hQ=";
+    hash   = "sha256-dH0Ndlyo/DTZ6Ao1S478aBuxoZFSkRBi5HblkTWCPas=";
   };
 
   meta = {
diff --git a/pkgs/development/ocaml-modules/minttea/default.nix b/pkgs/development/ocaml-modules/minttea/default.nix
index 8d81317edd1f3..07084c12c8769 100644
--- a/pkgs/development/ocaml-modules/minttea/default.nix
+++ b/pkgs/development/ocaml-modules/minttea/default.nix
@@ -7,13 +7,13 @@
 
 buildDunePackage rec {
   pname = "minttea";
-  version = "0.0.1";
+  version = "0.0.3";
 
   minimalOCamlVersion = "5.1";
 
   src = fetchurl {
     url = "https://github.com/leostera/minttea/releases/download/${version}/minttea-${version}.tbz";
-    hash = "sha256-+4nVeYKx2A2i2nll/PbStcEa+Dvxd0T7e/KsdJqY4bI=";
+    hash = "sha256-WEaJVCCvsmKcF8+yzovljt8dGWaIv4UmAr74jq6Vo9M=";
   };
 
   propagatedBuildInputs = [
@@ -21,10 +21,8 @@ buildDunePackage rec {
     tty
   ];
 
-  doCheck = true;
-
   meta = {
-    description = "A fun, functional, and stateful way to build terminal apps in OCaml heavily inspired by Go's BubbleTea";
+    description = "Fun, functional, and stateful way to build terminal apps in OCaml heavily inspired by Go's BubbleTea";
     homepage = "https://github.com/leostera/minttea";
     changelog = "https://github.com/leostera/minttea/blob/${version}/CHANGES.md";
     license = lib.licenses.mit;
diff --git a/pkgs/development/ocaml-modules/mirage-crypto/rng.nix b/pkgs/development/ocaml-modules/mirage-crypto/rng.nix
index 5fd9e1289a6e7..79ff29a05de4e 100644
--- a/pkgs/development/ocaml-modules/mirage-crypto/rng.nix
+++ b/pkgs/development/ocaml-modules/mirage-crypto/rng.nix
@@ -15,6 +15,6 @@ buildDunePackage rec {
   strictDeps = true;
 
   meta = mirage-crypto.meta // {
-    description = "A cryptographically secure PRNG";
+    description = "Cryptographically secure PRNG";
   };
 }
diff --git a/pkgs/development/ocaml-modules/mirage-logs/default.nix b/pkgs/development/ocaml-modules/mirage-logs/default.nix
index e54a8bc1b3e2f..be9592fb374bd 100644
--- a/pkgs/development/ocaml-modules/mirage-logs/default.nix
+++ b/pkgs/development/ocaml-modules/mirage-logs/default.nix
@@ -20,7 +20,7 @@ buildDunePackage rec {
   checkInputs = [ alcotest ];
 
   meta = {
-    description = "A reporter for the Logs library that writes log messages to stderr, using a Mirage `CLOCK` to add timestamps";
+    description = "Reporter for the Logs library that writes log messages to stderr, using a Mirage `CLOCK` to add timestamps";
     homepage = "https://github.com/mirage/mirage-logs";
     license = lib.licenses.isc;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/mirage/default.nix b/pkgs/development/ocaml-modules/mirage/default.nix
index 410475b6b5c00..6342184e805db 100644
--- a/pkgs/development/ocaml-modules/mirage/default.nix
+++ b/pkgs/development/ocaml-modules/mirage/default.nix
@@ -34,6 +34,6 @@ buildDunePackage rec {
   '';
 
   meta = mirage-runtime.meta // {
-    description = "The MirageOS library operating system";
+    description = "MirageOS library operating system";
   };
 }
diff --git a/pkgs/development/ocaml-modules/mirage/runtime.nix b/pkgs/development/ocaml-modules/mirage/runtime.nix
index 627e9432efb56..d3b847d6da477 100644
--- a/pkgs/development/ocaml-modules/mirage/runtime.nix
+++ b/pkgs/development/ocaml-modules/mirage/runtime.nix
@@ -15,7 +15,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/mirage/mirage";
-    description = "The base MirageOS runtime library, part of every MirageOS unikernel";
+    description = "Base MirageOS runtime library, part of every MirageOS unikernel";
     license = licenses.isc;
     maintainers = with maintainers; [ sternenseemann ];
   };
diff --git a/pkgs/development/ocaml-modules/morbig/default.nix b/pkgs/development/ocaml-modules/morbig/default.nix
index 013fa2e233a1b..6b8adcf7429c1 100644
--- a/pkgs/development/ocaml-modules/morbig/default.nix
+++ b/pkgs/development/ocaml-modules/morbig/default.nix
@@ -28,7 +28,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/colis-anr/${pname}";
-    description = "A static parser for POSIX Shell";
+    description = "Static parser for POSIX Shell";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ niols ];
   };
diff --git a/pkgs/development/ocaml-modules/mparser/default.nix b/pkgs/development/ocaml-modules/mparser/default.nix
index 5f63a98a13097..602545382bc41 100644
--- a/pkgs/development/ocaml-modules/mparser/default.nix
+++ b/pkgs/development/ocaml-modules/mparser/default.nix
@@ -13,7 +13,7 @@ buildDunePackage rec {
   };
 
   meta = {
-    description = "A simple monadic parser combinator OCaml library";
+    description = "Simple monadic parser combinator OCaml library";
     license = lib.licenses.lgpl21Plus;
     homepage = "https://github.com/murmour/mparser";
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/mparser/pcre.nix b/pkgs/development/ocaml-modules/mparser/pcre.nix
index 0f26e140ed873..6656deef14710 100644
--- a/pkgs/development/ocaml-modules/mparser/pcre.nix
+++ b/pkgs/development/ocaml-modules/mparser/pcre.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, buildDunePackage, ocaml_pcre, mparser }:
+{ buildDunePackage, ocaml_pcre, mparser }:
 
 buildDunePackage rec {
   pname = "mparser-pcre";
diff --git a/pkgs/development/ocaml-modules/msat/default.nix b/pkgs/development/ocaml-modules/msat/default.nix
index d5893dc55e043..7cb512a942d11 100644
--- a/pkgs/development/ocaml-modules/msat/default.nix
+++ b/pkgs/development/ocaml-modules/msat/default.nix
@@ -28,7 +28,7 @@ buildDunePackage rec {
   nativeCheckInputs = [ mdx.bin ];
 
   meta = {
-    description = "A modular sat/smt solver with proof output.";
+    description = "Modular sat/smt solver with proof output";
     homepage = "https://gbury.github.io/mSAT/";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/note/default.nix b/pkgs/development/ocaml-modules/note/default.nix
index 9640a33569c44..11ab46a2af0dc 100644
--- a/pkgs/development/ocaml-modules/note/default.nix
+++ b/pkgs/development/ocaml-modules/note/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://erratique.ch/software/note";
-    description = "An OCaml module for functional reactive programming";
+    description = "OCaml module for functional reactive programming";
     license = lib.licenses.isc;
     maintainers = [ lib.maintainers.vbgl ];
     inherit (ocaml.meta) platforms;
diff --git a/pkgs/development/ocaml-modules/ocaml-monadic/default.nix b/pkgs/development/ocaml-modules/ocaml-monadic/default.nix
index 7201311a53350..50a04bbefab22 100644
--- a/pkgs/development/ocaml-modules/ocaml-monadic/default.nix
+++ b/pkgs/development/ocaml-modules/ocaml-monadic/default.nix
@@ -19,7 +19,7 @@ buildDunePackage rec {
 
   meta = {
     inherit (src.meta) homepage;
-    description = "A PPX extension to provide an OCaml-friendly monadic syntax";
+    description = "PPX extension to provide an OCaml-friendly monadic syntax";
     license = lib.licenses.bsd3;
     maintainers = [ lib.maintainers.vbgl ];
   };
diff --git a/pkgs/development/ocaml-modules/ocaml-protoc-plugin/default.nix b/pkgs/development/ocaml-modules/ocaml-protoc-plugin/default.nix
index 067b61212acec..c89d9d7219ac7 100644
--- a/pkgs/development/ocaml-modules/ocaml-protoc-plugin/default.nix
+++ b/pkgs/development/ocaml-modules/ocaml-protoc-plugin/default.nix
@@ -39,7 +39,7 @@ buildDunePackage rec {
   nativeCheckInputs = [ protobuf ];
 
   meta = {
-    description = "Maps google protobuf compiler to Ocaml types.";
+    description = "Maps google protobuf compiler to Ocaml types";
     homepage = "https://github.com/issuu/ocaml-protoc-plugin";
     license = lib.licenses.asl20;
     longDescription = ''
diff --git a/pkgs/development/ocaml-modules/ocaml-protoc/default.nix b/pkgs/development/ocaml-modules/ocaml-protoc/default.nix
index 301a0f2c9a61f..51ca531b0140e 100644
--- a/pkgs/development/ocaml-modules/ocaml-protoc/default.nix
+++ b/pkgs/development/ocaml-modules/ocaml-protoc/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, buildDunePackage
+{ lib, buildDunePackage
 , pbrt
 , stdlib-shims
 }:
@@ -14,6 +14,6 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = pbrt.meta // {
-    description = "A Protobuf Compiler for OCaml";
+    description = "Protobuf Compiler for OCaml";
   };
 }
diff --git a/pkgs/development/ocaml-modules/ocamlnet/default.nix b/pkgs/development/ocaml-modules/ocamlnet/default.nix
index c650155ff3822..7fb262a91ac44 100644
--- a/pkgs/development/ocaml-modules/ocamlnet/default.nix
+++ b/pkgs/development/ocaml-modules/ocamlnet/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://projects.camlcity.org/projects/ocamlnet.html";
-    description = "A library implementing Internet protocols (http, cgi, email, etc.) for OCaml";
+    description = "Library implementing Internet protocols (http, cgi, email, etc.) for OCaml";
     license = "Most Ocamlnet modules are released under the zlib/png license. The HTTP server module Nethttpd is, however, under the GPL.";
     inherit (ocaml.meta) platforms;
     maintainers = [
diff --git a/pkgs/development/ocaml-modules/ocp-ocamlres/default.nix b/pkgs/development/ocaml-modules/ocp-ocamlres/default.nix
index d5a70406e9c33..e8b705ebdd4d8 100644
--- a/pkgs/development/ocaml-modules/ocp-ocamlres/default.nix
+++ b/pkgs/development/ocaml-modules/ocp-ocamlres/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   preInstall = "mkdir -p $out/bin";
 
   meta = {
-    description = "A simple tool and library to embed files and directories inside OCaml executables";
+    description = "Simple tool and library to embed files and directories inside OCaml executables";
     homepage = "https://www.typerex.org/ocp-ocamlres.html";
     license = lib.licenses.lgpl3Plus;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/ocplib-simplex/default.nix b/pkgs/development/ocaml-modules/ocplib-simplex/default.nix
index 768c0baa6d229..930c78fb163d9 100644
--- a/pkgs/development/ocaml-modules/ocplib-simplex/default.nix
+++ b/pkgs/development/ocaml-modules/ocplib-simplex/default.nix
@@ -16,7 +16,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = {
-    description = "An OCaml library implementing a simplex algorithm, in a functional style, for solving systems of linear inequalities";
+    description = "OCaml library implementing a simplex algorithm, in a functional style, for solving systems of linear inequalities";
     homepage = "https://github.com/OCamlPro-Iguernlala/ocplib-simplex";
     license = lib.licenses.lgpl21Only;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/ocsigen-server/default.nix b/pkgs/development/ocaml-modules/ocsigen-server/default.nix
index 515fd218d8fca..b770c0d7d5d7a 100644
--- a/pkgs/development/ocaml-modules/ocsigen-server/default.nix
+++ b/pkgs/development/ocaml-modules/ocsigen-server/default.nix
@@ -61,7 +61,7 @@ buildDunePackage rec {
 
   meta = {
     homepage = "http://ocsigen.org/ocsigenserver/";
-    description = "A full featured Web server";
+    description = "Full featured Web server";
     longDescription =''
       A full featured Web server. It implements most features of the HTTP protocol, and has a very powerful extension mechanism that make very easy to plug your own OCaml modules for generating pages.
       '';
diff --git a/pkgs/development/ocaml-modules/odoc/default.nix b/pkgs/development/ocaml-modules/odoc/default.nix
index 96a1200a0f28c..58a52a04c1961 100644
--- a/pkgs/development/ocaml-modules/odoc/default.nix
+++ b/pkgs/development/ocaml-modules/odoc/default.nix
@@ -25,7 +25,7 @@ buildDunePackage rec {
   '';
 
   meta = {
-    description = "A documentation generator for OCaml";
+    description = "Documentation generator for OCaml";
     mainProgram = "odoc";
     license = lib.licenses.isc;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/otoml/default.nix b/pkgs/development/ocaml-modules/otoml/default.nix
index 0a25ac52148b1..10b8a03a1b187 100644
--- a/pkgs/development/ocaml-modules/otoml/default.nix
+++ b/pkgs/development/ocaml-modules/otoml/default.nix
@@ -24,7 +24,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ menhirLib uutf ];
 
   meta = {
-    description = "A TOML parsing and manipulation library for OCaml";
+    description = "TOML parsing and manipulation library for OCaml";
     changelog = "https://github.com/dmbaturin/otoml/raw/${version}/CHANGELOG.md";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/ounit2/default.nix b/pkgs/development/ocaml-modules/ounit2/default.nix
index a57a389541919..61c1615b58578 100644
--- a/pkgs/development/ocaml-modules/ounit2/default.nix
+++ b/pkgs/development/ocaml-modules/ounit2/default.nix
@@ -17,7 +17,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/gildor478/ounit";
-    description = "A unit test framework for OCaml";
+    description = "Unit test framework for OCaml";
     license = licenses.mit;
     maintainers = with maintainers; [ sternenseemann ];
   };
diff --git a/pkgs/development/ocaml-modules/owee/default.nix b/pkgs/development/ocaml-modules/owee/default.nix
index d6886c49ca5a0..67cdb3828f818 100644
--- a/pkgs/development/ocaml-modules/owee/default.nix
+++ b/pkgs/development/ocaml-modules/owee/default.nix
@@ -12,7 +12,7 @@ buildDunePackage rec {
   };
 
   meta = with lib; {
-    description = "An experimental OCaml library to work with DWARF format";
+    description = "Experimental OCaml library to work with DWARF format";
     homepage = "https://github.com/let-def/owee/";
     license = licenses.mit;
     maintainers = with maintainers; [ vbgl alizter ];
diff --git a/pkgs/development/ocaml-modules/owl/default.nix b/pkgs/development/ocaml-modules/owl/default.nix
index 22aa70d9ff1c5..178a4f6349b3d 100644
--- a/pkgs/development/ocaml-modules/owl/default.nix
+++ b/pkgs/development/ocaml-modules/owl/default.nix
@@ -1,6 +1,5 @@
 { buildDunePackage
 , dune-configurator
-, fetchFromGitHub
 , alcotest
 , ctypes
 , stdio
diff --git a/pkgs/development/ocaml-modules/paf/cohttp.nix b/pkgs/development/ocaml-modules/paf/cohttp.nix
index 2f2891493061c..0300076b52158 100644
--- a/pkgs/development/ocaml-modules/paf/cohttp.nix
+++ b/pkgs/development/ocaml-modules/paf/cohttp.nix
@@ -50,6 +50,6 @@ buildDunePackage {
   __darwinAllowLocalNetworking = true;
 
   meta = paf.meta // {
-    description = "A CoHTTP client with its HTTP/AF implementation";
+    description = "CoHTTP client with its HTTP/AF implementation";
   };
 }
diff --git a/pkgs/development/ocaml-modules/pcre/default.nix b/pkgs/development/ocaml-modules/pcre/default.nix
index ca3cc203f9689..9184b4dfd3756 100644
--- a/pkgs/development/ocaml-modules/pcre/default.nix
+++ b/pkgs/development/ocaml-modules/pcre/default.nix
@@ -19,7 +19,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://mmottl.github.io/pcre-ocaml";
-    description = "An efficient C-library for pattern matching with Perl-style regular expressions in OCaml";
+    description = "Efficient C-library for pattern matching with Perl-style regular expressions in OCaml";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ maggesi vbmithr ];
   };
diff --git a/pkgs/development/ocaml-modules/pgocaml/default.nix b/pkgs/development/ocaml-modules/pgocaml/default.nix
index 46b239a3d28a3..ba9a97fcaa0d1 100644
--- a/pkgs/development/ocaml-modules/pgocaml/default.nix
+++ b/pkgs/development/ocaml-modules/pgocaml/default.nix
@@ -19,7 +19,7 @@ buildDunePackage rec {
   ];
 
   meta = with lib; {
-    description = "An interface to PostgreSQL databases for OCaml applications";
+    description = "Interface to PostgreSQL databases for OCaml applications";
     homepage = "https://github.com/darioteixeira/pgocaml";
     license = licenses.lgpl2Only;
     maintainers = with maintainers; [ vbgl ];
diff --git a/pkgs/development/ocaml-modules/pgsolver/default.nix b/pkgs/development/ocaml-modules/pgsolver/default.nix
index 6653284ba4870..4bf765bc9cfc4 100644
--- a/pkgs/development/ocaml-modules/pgsolver/default.nix
+++ b/pkgs/development/ocaml-modules/pgsolver/default.nix
@@ -15,7 +15,7 @@ buildOasisPackage rec {
   propagatedBuildInputs = [ tcslib ocaml-sat-solvers ];
 
   meta = {
-    description = "A collection of tools for generating, manipulating and - most of all - solving parity games";
+    description = "Collection of tools for generating, manipulating and - most of all - solving parity games";
     homepage = "https://github.com/tcsprojects/pgsolver";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ mgttlinger ];
diff --git a/pkgs/development/ocaml-modules/piaf/default.nix b/pkgs/development/ocaml-modules/piaf/default.nix
index cf2dd146ccab5..46bb62a246692 100644
--- a/pkgs/development/ocaml-modules/piaf/default.nix
+++ b/pkgs/development/ocaml-modules/piaf/default.nix
@@ -50,7 +50,7 @@ buildDunePackage rec {
   doCheck = false;
 
   meta = {
-    description = "An HTTP library with HTTP/2 support written entirely in OCaml";
+    description = "HTTP library with HTTP/2 support written entirely in OCaml";
     homepage = "https://github.com/anmonteiro/piaf";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ anmonteiro ];
diff --git a/pkgs/development/ocaml-modules/piqi-ocaml/default.nix b/pkgs/development/ocaml-modules/piqi-ocaml/default.nix
index 39ae5a86c5982..ae1efafb22516 100644
--- a/pkgs/development/ocaml-modules/piqi-ocaml/default.nix
+++ b/pkgs/development/ocaml-modules/piqi-ocaml/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, ocaml, findlib, piqi, stdlib-shims, num }:
+{ lib, stdenv, fetchFromGitHub, ocaml, findlib, piqi, stdlib-shims, num }:
 
 stdenv.mkDerivation rec {
   version = "0.7.8";
diff --git a/pkgs/development/ocaml-modules/plotkicadsch/default.nix b/pkgs/development/ocaml-modules/plotkicadsch/default.nix
index 27b3a0ac5ee78..09593f835aef6 100644
--- a/pkgs/development/ocaml-modules/plotkicadsch/default.nix
+++ b/pkgs/development/ocaml-modules/plotkicadsch/default.nix
@@ -1,6 +1,5 @@
 { lib
 , buildDunePackage
-, fetchFromGitHub
 , substituteAll
 , base64
 , cmdliner
@@ -43,7 +42,7 @@ buildDunePackage rec {
   ];
 
   meta = with lib; {
-    description = "A tool to export Kicad Sch files to SVG pictures";
+    description = "Tool to export Kicad Sch files to SVG pictures";
     homepage = "https://github.com/jnavila/plotkicadsch";
     license = licenses.isc;
     maintainers = with maintainers; [ leungbk ];
diff --git a/pkgs/development/ocaml-modules/pprint/default.nix b/pkgs/development/ocaml-modules/pprint/default.nix
index 3a103ad41ae68..2fcb4dbf1fe7a 100644
--- a/pkgs/development/ocaml-modules/pprint/default.nix
+++ b/pkgs/development/ocaml-modules/pprint/default.nix
@@ -15,7 +15,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "An OCaml library for pretty-printing textual documents";
+    description = "OCaml library for pretty-printing textual documents";
     license = licenses.lgpl2Only;
     maintainers = [ maintainers.vbgl ];
   };
diff --git a/pkgs/development/ocaml-modules/ppx_bap/default.nix b/pkgs/development/ocaml-modules/ppx_bap/default.nix
index c0c5b9dfd13d0..13f9d3471fef2 100644
--- a/pkgs/development/ocaml-modules/ppx_bap/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_bap/default.nix
@@ -43,7 +43,7 @@ buildDunePackage rec {
   ];
 
   meta = {
-    description = "The set of ppx rewriters for BAP";
+    description = "Set of ppx rewriters for BAP";
     inherit (src.meta) homepage;
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/ppx_cstubs/default.nix b/pkgs/development/ocaml-modules/ppx_cstubs/default.nix
index 7cf1a0d869e34..189efc3a675dd 100644
--- a/pkgs/development/ocaml-modules/ppx_cstubs/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_cstubs/default.nix
@@ -1,4 +1,5 @@
 { lib
+, ocaml
 , fetchFromGitHub
 , buildDunePackage
 , bigarray-compat
@@ -12,6 +13,9 @@
 , findlib
 }:
 
+lib.throwIf (lib.versionAtLeast ocaml.version "5.2")
+  "ppx_cstubs is not available for OCaml ${ocaml.version}"
+
 buildDunePackage rec {
   pname = "ppx_cstubs";
   version = "0.7.0";
diff --git a/pkgs/development/ocaml-modules/ppx_deriving/default.nix b/pkgs/development/ocaml-modules/ppx_deriving/default.nix
index 314f52f40fc0a..1e79e8a1ffa88 100644
--- a/pkgs/development/ocaml-modules/ppx_deriving/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_deriving/default.nix
@@ -51,7 +51,7 @@ buildDunePackage rec {
   ];
 
   meta = with lib; {
-    description = "deriving is a library simplifying type-driven code generation on OCaml >=4.02.";
+    description = "deriving is a library simplifying type-driven code generation on OCaml >=4.02";
     maintainers = [ maintainers.maurer ];
     license = licenses.mit;
   };
diff --git a/pkgs/development/ocaml-modules/ppx_deriving_protobuf/default.nix b/pkgs/development/ocaml-modules/ppx_deriving_protobuf/default.nix
index d1e435c1bfc0c..00f2ee0f8317d 100644
--- a/pkgs/development/ocaml-modules/ppx_deriving_protobuf/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_deriving_protobuf/default.nix
@@ -19,7 +19,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/ocaml-ppx/ppx_deriving_protobuf";
-    description = "A Protocol Buffers codec generator for OCaml";
+    description = "Protocol Buffers codec generator for OCaml";
     license = licenses.mit;
     maintainers = [ maintainers.vyorkin ];
   };
diff --git a/pkgs/development/ocaml-modules/ppx_deriving_yaml/default.nix b/pkgs/development/ocaml-modules/ppx_deriving_yaml/default.nix
index 8106f4619d138..5fd645b52113a 100644
--- a/pkgs/development/ocaml-modules/ppx_deriving_yaml/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_deriving_yaml/default.nix
@@ -20,7 +20,7 @@ buildDunePackage rec {
   nativeCheckInputs = [ mdx.bin ];
 
   meta = {
-    description = "A YAML codec generator for OCaml";
+    description = "YAML codec generator for OCaml";
     homepage = "https://github.com/patricoferris/ppx_deriving_yaml";
     license = lib.licenses.isc;
     maintainers = [ ];
diff --git a/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix b/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix
index aa261f0bbb829..6e0fa39a0acf7 100644
--- a/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix
@@ -31,7 +31,7 @@ buildDunePackage rec {
   checkInputs = [ ounit ];
 
   meta = {
-    description = "A Yojson codec generator for OCaml >= 4.04";
+    description = "Yojson codec generator for OCaml >= 4.04";
     inherit (src.meta) homepage;
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/ppx_gen_rec/default.nix b/pkgs/development/ocaml-modules/ppx_gen_rec/default.nix
index 1da8a55225c22..ea2ea5be9db5f 100644
--- a/pkgs/development/ocaml-modules/ppx_gen_rec/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_gen_rec/default.nix
@@ -16,7 +16,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/flowtype/ocaml-ppx_gen_rec";
-    description = "A ppx rewriter that transforms a recursive module expression into a struct.";
+    description = "Ppx rewriter that transforms a recursive module expression into a struct";
     license = licenses.mit;
     maintainers = with maintainers; [ frontsideair ];
   };
diff --git a/pkgs/development/ocaml-modules/ppx_import/default.nix b/pkgs/development/ocaml-modules/ppx_import/default.nix
index 23454e2dadccf..7b74fb8a49a5a 100644
--- a/pkgs/development/ocaml-modules/ppx_import/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_import/default.nix
@@ -41,7 +41,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = {
-    description = "A syntax extension for importing declarations from interface files";
+    description = "Syntax extension for importing declarations from interface files";
     license = lib.licenses.mit;
     homepage = "https://github.com/ocaml-ppx/ppx_import";
   };
diff --git a/pkgs/development/ocaml-modules/ppx_monad/default.nix b/pkgs/development/ocaml-modules/ppx_monad/default.nix
index 6c71dcb26c5f4..d17de7a1033c9 100644
--- a/pkgs/development/ocaml-modules/ppx_monad/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_monad/default.nix
@@ -24,7 +24,7 @@ buildDunePackage rec {
   ];
 
   meta = {
-    description = "An OCaml Syntax Extension for all Monadic Syntaxes";
+    description = "OCaml Syntax Extension for all Monadic Syntaxes";
     license = lib.licenses.lgpl3Plus;
     maintainers = [ lib.maintainers.niols ];
     homepage = "https://github.com/niols/${pname}";
diff --git a/pkgs/development/ocaml-modules/ppx_yojson_conv/default.nix b/pkgs/development/ocaml-modules/ppx_yojson_conv/default.nix
index 3feeaa84ab479..27d07649d4082 100644
--- a/pkgs/development/ocaml-modules/ppx_yojson_conv/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_yojson_conv/default.nix
@@ -26,7 +26,7 @@ buildDunePackage rec {
   ];
 
   meta = with lib; {
-    description = "A PPX syntax extension that generates code for converting OCaml types to and from Yojson";
+    description = "PPX syntax extension that generates code for converting OCaml types to and from Yojson";
     homepage = "https://github.com/janestreet/ppx_yojson_conv";
     maintainers = with maintainers; [djacu];
     license = with licenses; [mit];
diff --git a/pkgs/development/ocaml-modules/pratter/default.nix b/pkgs/development/ocaml-modules/pratter/default.nix
index a2408a267ce3a..efd2fc6639c28 100644
--- a/pkgs/development/ocaml-modules/pratter/default.nix
+++ b/pkgs/development/ocaml-modules/pratter/default.nix
@@ -27,7 +27,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "An extended Pratt parser";
+    description = "Extended Pratt parser";
     homepage = "https://github.com/gabrielhdt/pratter";
     license = licenses.bsd3;
     changelog = "https://github.com/gabrielhdt/pratter/raw/${version}/CHANGELOG.md";
diff --git a/pkgs/development/ocaml-modules/prettym/default.nix b/pkgs/development/ocaml-modules/prettym/default.nix
index 0ec93f488eef1..a229eb9f35f16 100644
--- a/pkgs/development/ocaml-modules/prettym/default.nix
+++ b/pkgs/development/ocaml-modules/prettym/default.nix
@@ -39,7 +39,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = {
-    description = "A simple bounded encoder to serialize human readable values and respect the 80-column constraint";
+    description = "Simple bounded encoder to serialize human readable values and respect the 80-column constraint";
     license = lib.licenses.mit;
     homepage = "https://github.com/dinosaure/prettym";
     maintainers = with lib.maintainers; [ ];
diff --git a/pkgs/development/ocaml-modules/psmt2-frontend/default.nix b/pkgs/development/ocaml-modules/psmt2-frontend/default.nix
index ef88bdcdab7b8..6981726f6df72 100644
--- a/pkgs/development/ocaml-modules/psmt2-frontend/default.nix
+++ b/pkgs/development/ocaml-modules/psmt2-frontend/default.nix
@@ -16,7 +16,7 @@ buildDunePackage rec {
   nativeBuildInputs = [ menhir ];
 
   meta = {
-    description = "A simple parser and type-checker for polomorphic extension of the SMT-LIB 2 language";
+    description = "Simple parser and type-checker for polomorphic extension of the SMT-LIB 2 language";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.vbgl ];
     inherit (src.meta) homepage;
diff --git a/pkgs/development/ocaml-modules/pyml/default.nix b/pkgs/development/ocaml-modules/pyml/default.nix
index ed7f2ef559edf..d5840c8af53dd 100644
--- a/pkgs/development/ocaml-modules/pyml/default.nix
+++ b/pkgs/development/ocaml-modules/pyml/default.nix
@@ -1,7 +1,6 @@
 { buildDunePackage
 , lib
 , fetchFromGitHub
-, fetchpatch
 , utop
 , python3
 , stdcompat
diff --git a/pkgs/development/ocaml-modules/qcheck/lin.nix b/pkgs/development/ocaml-modules/qcheck/lin.nix
index 23164901ab6ea..460d15b288da9 100644
--- a/pkgs/development/ocaml-modules/qcheck/lin.nix
+++ b/pkgs/development/ocaml-modules/qcheck/lin.nix
@@ -12,6 +12,6 @@ buildDunePackage {
   doCheck = true;
 
   meta = qcheck-multicoretests-util.meta // {
-    description = "A multicore testing library for OCaml";
+    description = "Multicore testing library for OCaml";
   };
 }
diff --git a/pkgs/development/ocaml-modules/rdbg/default.nix b/pkgs/development/ocaml-modules/rdbg/default.nix
index 2813586180072..47504e4aa8888 100644
--- a/pkgs/development/ocaml-modules/rdbg/default.nix
+++ b/pkgs/development/ocaml-modules/rdbg/default.nix
@@ -22,7 +22,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/rdbg";
-    description = "A programmable debugger that targets reactive programs for which a rdbg-plugin exists. Currently two plugins exist : one for Lustre, and one for Lutin (nb: both are synchronous programming languages)";
+    description = "Programmable debugger that targets reactive programs for which a rdbg-plugin exists. Currently two plugins exist : one for Lustre, and one for Lutin (nb: both are synchronous programming languages)";
     license = lib.licenses.cecill21;
     maintainers = [ lib.maintainers.delta ];
   };
diff --git a/pkgs/development/ocaml-modules/reactivedata/default.nix b/pkgs/development/ocaml-modules/reactivedata/default.nix
index 49b1357f54918..243e0daf16318 100644
--- a/pkgs/development/ocaml-modules/reactivedata/default.nix
+++ b/pkgs/development/ocaml-modules/reactivedata/default.nix
@@ -16,7 +16,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ react ];
 
   meta = with lib; {
-    description = "An OCaml module for functional reactive programming (FRP) based on React";
+    description = "OCaml module for functional reactive programming (FRP) based on React";
     homepage = "https://github.com/ocsigen/reactiveData";
     license = licenses.lgpl21;
     maintainers = with maintainers; [ vbgl ];
diff --git a/pkgs/development/ocaml-modules/reason-native/console.nix b/pkgs/development/ocaml-modules/reason-native/console.nix
index b4b30cab4a0cb..a39ba9a7e3ec3 100644
--- a/pkgs/development/ocaml-modules/reason-native/console.nix
+++ b/pkgs/development/ocaml-modules/reason-native/console.nix
@@ -14,7 +14,7 @@
   };
 
   meta = {
-    description = "A library providing a web-influenced polymorphic console API for native Console.log(anything) with runtime printing";
+    description = "Library providing a web-influenced polymorphic console API for native Console.log(anything) with runtime printing";
     downloadPage = "https://github.com/reasonml/reason-native/tree/master/src/console";
     homepage = "https://reason-native.com/docs/console/";
   };
diff --git a/pkgs/development/ocaml-modules/reason-native/dir.nix b/pkgs/development/ocaml-modules/reason-native/dir.nix
index 6b2aa0c3cd8f5..8b09eafc36965 100644
--- a/pkgs/development/ocaml-modules/reason-native/dir.nix
+++ b/pkgs/development/ocaml-modules/reason-native/dir.nix
@@ -12,7 +12,7 @@
   ];
 
   meta = {
-    description = "A library that provides a consistent API for common system, user and application directories consistently on all platforms";
+    description = "Library that provides a consistent API for common system, user and application directories consistently on all platforms";
     downloadPage = "https://github.com/reasonml/reason-native/tree/master/src/dir";
   };
 }
diff --git a/pkgs/development/ocaml-modules/reason-native/fp.nix b/pkgs/development/ocaml-modules/reason-native/fp.nix
index 8ff2ed65c4c01..7df1c84e55cf9 100644
--- a/pkgs/development/ocaml-modules/reason-native/fp.nix
+++ b/pkgs/development/ocaml-modules/reason-native/fp.nix
@@ -8,7 +8,7 @@
   ];
 
   meta = {
-    description = "A library for creating and operating on file paths consistently on multiple platforms";
+    description = "Library for creating and operating on file paths consistently on multiple platforms";
     downloadPage = "https://github.com/reasonml/reason-native/tree/master/src/fp";
   };
 }
diff --git a/pkgs/development/ocaml-modules/reason-native/pastel.nix b/pkgs/development/ocaml-modules/reason-native/pastel.nix
index f2c975d938e0b..6d08243638cab 100644
--- a/pkgs/development/ocaml-modules/reason-native/pastel.nix
+++ b/pkgs/development/ocaml-modules/reason-native/pastel.nix
@@ -13,7 +13,7 @@
   ];
 
   meta = {
-    description = "A text formatting library that harnesses Reason JSX to provide intuitive terminal output. Like React but for CLI";
+    description = "Text formatting library that harnesses Reason JSX to provide intuitive terminal output. Like React but for CLI";
     downloadPage = "https://github.com/reasonml/reason-native/tree/master/src/pastel";
     homepage = "https://reason-native.com/docs/pastel/";
   };
diff --git a/pkgs/development/ocaml-modules/reason-native/qcheck-rely.nix b/pkgs/development/ocaml-modules/reason-native/qcheck-rely.nix
index 9d2770def09bc..ac645791f46c2 100644
--- a/pkgs/development/ocaml-modules/reason-native/qcheck-rely.nix
+++ b/pkgs/development/ocaml-modules/reason-native/qcheck-rely.nix
@@ -25,7 +25,7 @@
   ];
 
   meta = {
-    description = "A library containing custom Rely matchers allowing for easily using QCheck with Rely. QCheck is a 'QuickCheck inspired property-based testing for OCaml, and combinators to generate random values to run tests on'";
+    description = "Library containing custom Rely matchers allowing for easily using QCheck with Rely. QCheck is a 'QuickCheck inspired property-based testing for OCaml, and combinators to generate random values to run tests on'";
     downloadPage = "https://github.com/reasonml/reason-native/tree/master/src/qcheck-rely";
   };
 }
diff --git a/pkgs/development/ocaml-modules/reason-native/refmterr.nix b/pkgs/development/ocaml-modules/reason-native/refmterr.nix
index 3e517591b9e65..17c595d9e107d 100644
--- a/pkgs/development/ocaml-modules/reason-native/refmterr.nix
+++ b/pkgs/development/ocaml-modules/reason-native/refmterr.nix
@@ -15,7 +15,7 @@
   ];
 
   meta = {
-    description = "An error formatter tool for Reason and OCaml. Takes raw error output from compiler and converts to pretty output";
+    description = "Error formatter tool for Reason and OCaml. Takes raw error output from compiler and converts to pretty output";
     downloadPage = "https://github.com/reasonml/reason-native/tree/master/src/refmterr";
     homepage = "https://reason-native.com/docs/refmterr/";
   };
diff --git a/pkgs/development/ocaml-modules/reason-native/rely-junit-reporter.nix b/pkgs/development/ocaml-modules/reason-native/rely-junit-reporter.nix
index 8a7080f624df1..25d9cc2c5f70f 100644
--- a/pkgs/development/ocaml-modules/reason-native/rely-junit-reporter.nix
+++ b/pkgs/development/ocaml-modules/reason-native/rely-junit-reporter.nix
@@ -19,7 +19,7 @@
   ];
 
   meta = {
-    description = "A tool providing JUnit Reporter for Rely Testing Framework";
+    description = "Tool providing JUnit Reporter for Rely Testing Framework";
     downloadPage = "https://github.com/reasonml/reason-native/tree/master/src/rely-junit-reporter";
     homepage = "https://reason-native.com/docs/rely/";
   };
diff --git a/pkgs/development/ocaml-modules/reason-native/rely.nix b/pkgs/development/ocaml-modules/reason-native/rely.nix
index f29565f9c4630..40315a668ba90 100644
--- a/pkgs/development/ocaml-modules/reason-native/rely.nix
+++ b/pkgs/development/ocaml-modules/reason-native/rely.nix
@@ -15,7 +15,7 @@
   ];
 
   meta = {
-    description = "A Jest-inspired testing framework for native OCaml/Reason";
+    description = "Jest-inspired testing framework for native OCaml/Reason";
     downloadPage = "https://github.com/reasonml/reason-native/tree/master/src/rely";
     homepage = "https://reason-native.com/docs/rely/";
   };
diff --git a/pkgs/development/ocaml-modules/resource-pooling/default.nix b/pkgs/development/ocaml-modules/resource-pooling/default.nix
index 463f8b386f24c..79d5c6175a7b5 100644
--- a/pkgs/development/ocaml-modules/resource-pooling/default.nix
+++ b/pkgs/development/ocaml-modules/resource-pooling/default.nix
@@ -19,7 +19,7 @@ buildDunePackage rec {
 
   meta = {
     inherit (src.meta) homepage;
-    description = "A library for pooling resources like connections, threads, or similar";
+    description = "Library for pooling resources like connections, threads, or similar";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.vbgl ];
   };
diff --git a/pkgs/development/ocaml-modules/resto/default.nix b/pkgs/development/ocaml-modules/resto/default.nix
index 0d67ca947751a..43735de3e5068 100644
--- a/pkgs/development/ocaml-modules/resto/default.nix
+++ b/pkgs/development/ocaml-modules/resto/default.nix
@@ -19,7 +19,7 @@ buildDunePackage rec {
   doCheck = false;
 
   meta = {
-    description = "A minimal OCaml library for type-safe HTTP/JSON RPCs";
+    description = "Minimal OCaml library for type-safe HTTP/JSON RPCs";
     homepage = "https://gitlab.com/nomadic-labs/resto";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.ulrikstrid ];
diff --git a/pkgs/development/ocaml-modules/rio/default.nix b/pkgs/development/ocaml-modules/rio/default.nix
new file mode 100644
index 0000000000000..853670be35288
--- /dev/null
+++ b/pkgs/development/ocaml-modules/rio/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, cstruct
+}:
+
+buildDunePackage rec {
+  pname = "rio";
+  version = "0.0.8";
+
+  minimalOCamlVersion = "5.1";
+
+  src = fetchurl {
+    url = "https://github.com/riot-ml/riot/releases/download/${version}/riot-${version}.tbz";
+    hash = "sha256-SsiDz53b9bMIT9Q3IwDdB3WKy98WSd9fiieU41qZpeE=";
+  };
+
+  propagatedBuildInputs = [
+    cstruct
+  ];
+
+  meta = {
+    description = "Ergonomic, composable, efficient read/write streams";
+    homepage = "https://github.com/riot-ml/riot";
+    changelog = "https://github.com/riot-ml/riot/blob/${version}/CHANGES.md";
+    license = lib.licenses.mit;
+    maintainers = [ ];
+  };
+}
+
diff --git a/pkgs/development/ocaml-modules/riot/default.nix b/pkgs/development/ocaml-modules/riot/default.nix
index a6f599639111f..f7ead9e0a194e 100644
--- a/pkgs/development/ocaml-modules/riot/default.nix
+++ b/pkgs/development/ocaml-modules/riot/default.nix
@@ -1,42 +1,40 @@
 { lib
 , buildDunePackage
-, cstruct
 , fetchurl
-, mdx
-, poll
-, ptime
+, mirage-crypto-rng
+, mtime
+, gluon
+, randomconv
+, rio
 , telemetry
-, uri
+, tls
 }:
 
 buildDunePackage rec {
   pname = "riot";
-  version = "0.0.7";
+  version = "0.0.8";
 
   minimalOCamlVersion = "5.1";
 
   src = fetchurl {
     url = "https://github.com/leostera/riot/releases/download/${version}/riot-${version}.tbz";
-    hash = "sha256-t+PMBh4rZXi82dUljv3nLzZX5o1iagBbQ9FfGnr/dp4=";
+    hash = "sha256-SsiDz53b9bMIT9Q3IwDdB3WKy98WSd9fiieU41qZpeE=";
   };
 
   propagatedBuildInputs = [
-    cstruct
-    poll
-    ptime
+    gluon
+    mirage-crypto-rng
+    mtime
+    randomconv
+    rio
     telemetry
-    uri
-  ];
-
-  checkInputs = [
-    mdx
-    mdx.bin
+    tls
   ];
 
   doCheck = false; # fails on sandbox
 
   meta = {
-    description = "An actor-model multi-core scheduler for OCaml 5";
+    description = "Actor-model multi-core scheduler for OCaml 5";
     homepage = "https://github.com/leostera/riot";
     changelog = "https://github.com/leostera/riot/blob/${version}/CHANGES.md";
     license = lib.licenses.mit;
diff --git a/pkgs/development/ocaml-modules/rpclib/lwt.nix b/pkgs/development/ocaml-modules/rpclib/lwt.nix
index eacdcf303c2dd..a4a3e06bf1009 100644
--- a/pkgs/development/ocaml-modules/rpclib/lwt.nix
+++ b/pkgs/development/ocaml-modules/rpclib/lwt.nix
@@ -18,6 +18,6 @@ buildDunePackage {
   doCheck = true;
 
   meta = rpclib.meta // {
-    description = "A library to deal with RPCs in OCaml - Lwt interface";
+    description = "Library to deal with RPCs in OCaml - Lwt interface";
   };
 }
diff --git a/pkgs/development/ocaml-modules/safepass/default.nix b/pkgs/development/ocaml-modules/safepass/default.nix
index e8a50f45119e8..d60cfcdb12762 100644
--- a/pkgs/development/ocaml-modules/safepass/default.nix
+++ b/pkgs/development/ocaml-modules/safepass/default.nix
@@ -15,7 +15,7 @@ buildDunePackage rec {
 
   meta = {
     inherit (src.meta) homepage;
-    description = "An OCaml library offering facilities for the safe storage of user passwords";
+    description = "OCaml library offering facilities for the safe storage of user passwords";
     license = lib.licenses.lgpl21;
     maintainers = with lib.maintainers; [ vbgl ];
   };
diff --git a/pkgs/development/ocaml-modules/sail/default.nix b/pkgs/development/ocaml-modules/sail/default.nix
index 0e2dbda80d49d..a01afe5904a5e 100644
--- a/pkgs/development/ocaml-modules/sail/default.nix
+++ b/pkgs/development/ocaml-modules/sail/default.nix
@@ -73,7 +73,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/rems-project/sail";
-    description = "A language for describing the instruction-set architecture (ISA) semantics of processors";
+    description = "Language for describing the instruction-set architecture (ISA) semantics of processors";
     maintainers = with maintainers; [ genericnerdyusername ];
     license = licenses.bsd2;
   };
diff --git a/pkgs/development/ocaml-modules/sawja/default.nix b/pkgs/development/ocaml-modules/sawja/default.nix
index ab21f11fa31f0..465c568a1d1f9 100644
--- a/pkgs/development/ocaml-modules/sawja/default.nix
+++ b/pkgs/development/ocaml-modules/sawja/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation {
   propagatedBuildInputs = [ javalib ];
 
   meta = with lib; {
-    description = "A library written in OCaml, relying on Javalib to provide a high level representation of Java bytecode programs";
+    description = "Library written in OCaml, relying on Javalib to provide a high level representation of Java bytecode programs";
     homepage = "http://sawja.inria.fr/";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/sedlex/default.nix b/pkgs/development/ocaml-modules/sedlex/default.nix
index b4147f53c7e9a..b7303a425d623 100644
--- a/pkgs/development/ocaml-modules/sedlex/default.nix
+++ b/pkgs/development/ocaml-modules/sedlex/default.nix
@@ -78,7 +78,7 @@ buildDunePackage rec {
   meta = {
     homepage = "https://github.com/ocaml-community/sedlex";
     changelog = "https://github.com/ocaml-community/sedlex/raw/v${version}/CHANGES";
-    description = "An OCaml lexer generator for Unicode";
+    description = "OCaml lexer generator for Unicode";
     license = lib.licenses.mit;
     maintainers = [ ];
   };
diff --git a/pkgs/development/ocaml-modules/sel/default.nix b/pkgs/development/ocaml-modules/sel/default.nix
index 348421f53912c..e9742c9b42d57 100644
--- a/pkgs/development/ocaml-modules/sel/default.nix
+++ b/pkgs/development/ocaml-modules/sel/default.nix
@@ -20,7 +20,7 @@ buildDunePackage rec {
   ];
 
   meta = {
-    description = "A simple event library";
+    description = "Simple event library";
     homepage = "https://github.com/gares/sel/";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/spices/default.nix b/pkgs/development/ocaml-modules/spices/default.nix
new file mode 100644
index 0000000000000..a1d6b06d156bb
--- /dev/null
+++ b/pkgs/development/ocaml-modules/spices/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, colors
+, tty
+}:
+
+buildDunePackage rec {
+  pname = "spices";
+  version = "0.0.2";
+
+  minimalOCamlVersion = "5.1";
+
+  src = fetchurl {
+    url = "https://github.com/leostera/minttea/releases/download/${version}/minttea-${version}.tbz";
+    hash = "sha256-0eB7OuxcPdv9bf2aIQEeir44mQfx5W2AJj7Vb4pGtLI=";
+  };
+
+  propagatedBuildInputs = [
+    colors
+    tty
+  ];
+
+  doCheck = true;
+
+  meta = {
+    description = "Declarative styles for TUI applications";
+    homepage = "https://github.com/leostera/minttea";
+    changelog = "https://github.com/leostera/minttea/blob/${version}/CHANGES.md";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
+
diff --git a/pkgs/development/ocaml-modules/stdcompat/default.nix b/pkgs/development/ocaml-modules/stdcompat/default.nix
index 33e93967e192e..23eeca421f5ea 100644
--- a/pkgs/development/ocaml-modules/stdcompat/default.nix
+++ b/pkgs/development/ocaml-modules/stdcompat/default.nix
@@ -1,8 +1,12 @@
 { buildDunePackage
+, ocaml
 , lib
 , fetchurl
 }:
 
+lib.throwIf (lib.versionAtLeast ocaml.version "5.2")
+  "stdcompat is not available for OCaml ${ocaml.version}"
+
 buildDunePackage rec {
   pname = "stdcompat";
   version = "19";
diff --git a/pkgs/development/ocaml-modules/tcslib/default.nix b/pkgs/development/ocaml-modules/tcslib/default.nix
index 53bc8c9292cb5..1feff4e0a39b3 100644
--- a/pkgs/development/ocaml-modules/tcslib/default.nix
+++ b/pkgs/development/ocaml-modules/tcslib/default.nix
@@ -17,7 +17,7 @@ buildOasisPackage rec {
 
   meta = {
     homepage = "https://github.com/tcsprojects/tcslib";
-    description = "A multi-purpose library for OCaml";
+    description = "Multi-purpose library for OCaml";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ mgttlinger ];
   };
diff --git a/pkgs/development/ocaml-modules/telegraml/default.nix b/pkgs/development/ocaml-modules/telegraml/default.nix
index d58e6adfe2e5d..ed0dc49fa9e18 100644
--- a/pkgs/development/ocaml-modules/telegraml/default.nix
+++ b/pkgs/development/ocaml-modules/telegraml/default.nix
@@ -30,7 +30,7 @@ buildDunePackage rec {
   ];
 
   meta = with lib; {
-    description = "An OCaml library implementing the Telegram bot API";
+    description = "OCaml library implementing the Telegram bot API";
     homepage = "https://github.com/nv-vn/TelegraML/";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/ocaml-modules/telemetry/default.nix b/pkgs/development/ocaml-modules/telemetry/default.nix
index 85d6e067f60f8..d1a57745cefb7 100644
--- a/pkgs/development/ocaml-modules/telemetry/default.nix
+++ b/pkgs/development/ocaml-modules/telemetry/default.nix
@@ -14,7 +14,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = {
-    description = "A lightweight library for dispatching and handling events, with a focus on metrics and instrumentation";
+    description = "Lightweight library for dispatching and handling events, with a focus on metrics and instrumentation";
     homepage = "https://github.com/leostera/telemetry";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/thread-table/default.nix b/pkgs/development/ocaml-modules/thread-table/default.nix
index 36f1ca79b2708..155bca397ee69 100644
--- a/pkgs/development/ocaml-modules/thread-table/default.nix
+++ b/pkgs/development/ocaml-modules/thread-table/default.nix
@@ -30,7 +30,7 @@ buildDunePackage rec {
   meta = {
     homepage = "https://github.com/ocaml-multicore/ocaml-${pname}";
     changelog = "https://github.com/ocaml-multicore/ocaml-${pname}/raw/${version}/CHANGES.md";
-    description = "A lock-free thread-safe integer keyed hash table";
+    description = "Lock-free thread-safe integer keyed hash table";
     license = with lib.licenses; [ isc ];
     maintainers = with lib.maintainers; [ toastal ];
   };
diff --git a/pkgs/development/ocaml-modules/topkg/default.nix b/pkgs/development/ocaml-modules/topkg/default.nix
index 0baa38c806ef6..e0dbc77eafd99 100644
--- a/pkgs/development/ocaml-modules/topkg/default.nix
+++ b/pkgs/development/ocaml-modules/topkg/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
     homepage = "https://erratique.ch/software/topkg";
     license = lib.licenses.isc;
     maintainers = [ lib.maintainers.vbgl ];
-    description = "A packager for distributing OCaml software";
+    description = "Packager for distributing OCaml software";
     inherit (ocaml.meta) platforms;
   };
 }
diff --git a/pkgs/development/ocaml-modules/torch/default.nix b/pkgs/development/ocaml-modules/torch/default.nix
index 5acef0f2a72ca..f24a4fe968197 100644
--- a/pkgs/development/ocaml-modules/torch/default.nix
+++ b/pkgs/development/ocaml-modules/torch/default.nix
@@ -64,5 +64,6 @@ buildDunePackage rec {
     description = "Ocaml bindings to Pytorch";
     maintainers = [ maintainers.bcdarwin ];
     license = licenses.asl20;
+    broken = true; # Not compatible with libtorch ≥ 2.3.0
   };
 }
diff --git a/pkgs/development/ocaml-modules/trace/tef.nix b/pkgs/development/ocaml-modules/trace/tef.nix
index eeeda78f580d0..618009d11fa77 100644
--- a/pkgs/development/ocaml-modules/trace/tef.nix
+++ b/pkgs/development/ocaml-modules/trace/tef.nix
@@ -18,7 +18,7 @@ buildDunePackage {
   doCheck = true;
 
   meta = trace.meta // {
-    description = "A simple backend for trace, emitting Catapult JSON into a file";
+    description = "Simple backend for trace, emitting Catapult JSON into a file";
   };
 
 }
diff --git a/pkgs/development/ocaml-modules/tty/default.nix b/pkgs/development/ocaml-modules/tty/default.nix
index 8c5c1b47524af..649973df578be 100644
--- a/pkgs/development/ocaml-modules/tty/default.nix
+++ b/pkgs/development/ocaml-modules/tty/default.nix
@@ -22,7 +22,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = {
-    description = "A library for interacting with teletype and terminal emulators";
+    description = "Library for interacting with teletype and terminal emulators";
     homepage = "https://github.com/leostera/tty";
     changelog = "https://github.com/leostera/tty/blob/${version}/CHANGES.md";
     license = lib.licenses.mit;
diff --git a/pkgs/development/ocaml-modules/tyxml/default.nix b/pkgs/development/ocaml-modules/tyxml/default.nix
index 4cc5aa4cc42d7..d58cee2cad3c0 100644
--- a/pkgs/development/ocaml-modules/tyxml/default.nix
+++ b/pkgs/development/ocaml-modules/tyxml/default.nix
@@ -13,7 +13,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "http://ocsigen.org/tyxml/";
-    description = "A library that makes it almost impossible for your OCaml programs to generate wrong XML output, using static typing";
+    description = "Library that makes it almost impossible for your OCaml programs to generate wrong XML output, using static typing";
     license = licenses.lgpl21;
     maintainers = with maintainers; [
       gal_bolle vbgl
diff --git a/pkgs/development/ocaml-modules/ulex/default.nix b/pkgs/development/ocaml-modules/ulex/default.nix
index b871bc403ed80..910d75dcdc2bb 100644
--- a/pkgs/development/ocaml-modules/ulex/default.nix
+++ b/pkgs/development/ocaml-modules/ulex/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     inherit (src.meta) homepage;
-    description = "A lexer generator for Unicode and OCaml";
+    description = "Lexer generator for Unicode and OCaml";
     license = lib.licenses.mit;
     inherit (ocaml.meta) platforms;
     maintainers = [ lib.maintainers.roconnor ];
diff --git a/pkgs/development/ocaml-modules/unstrctrd/default.nix b/pkgs/development/ocaml-modules/unstrctrd/default.nix
index d1ac4ca9acf58..b9be734a40e87 100644
--- a/pkgs/development/ocaml-modules/unstrctrd/default.nix
+++ b/pkgs/development/ocaml-modules/unstrctrd/default.nix
@@ -38,7 +38,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = {
-    description = "A library for parsing email headers";
+    description = "Library for parsing email headers";
     homepage = "https://github.com/dinosaure/unstrctrd";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ ];
diff --git a/pkgs/development/ocaml-modules/uri/default.nix b/pkgs/development/ocaml-modules/uri/default.nix
index a5c89c76db27a..f8e8efdaae678 100644
--- a/pkgs/development/ocaml-modules/uri/default.nix
+++ b/pkgs/development/ocaml-modules/uri/default.nix
@@ -11,7 +11,7 @@ buildDunePackage rec {
 
   src = fetchurl {
     url = "https://github.com/mirage/ocaml-${pname}/releases/download/v${version}/${pname}-${version}.tbz";
-    sha256 = "0szifda6yism5vn5jdizkha3ad0xk6zw4xgfl8g77dnv83ci7h65";
+    sha256 = "cdabaf6ef5cd2161e59cc7b74c6e4a68ecb80a9f4e96002e338e1b6bf17adec4";
   };
 
   checkInputs = [ ounit ];
diff --git a/pkgs/development/ocaml-modules/uring/default.nix b/pkgs/development/ocaml-modules/uring/default.nix
index 9da63a8cd895c..c78e794b8034e 100644
--- a/pkgs/development/ocaml-modules/uring/default.nix
+++ b/pkgs/development/ocaml-modules/uring/default.nix
@@ -3,7 +3,6 @@
 , cstruct
 , dune-configurator
 , fetchurl
-, fetchpatch
 , fmt
 , optint
 , mdx
diff --git a/pkgs/development/ocaml-modules/uucd/default.nix b/pkgs/development/ocaml-modules/uucd/default.nix
index 3bad3a84945aa..847868032ca1b 100644
--- a/pkgs/development/ocaml-modules/uucd/default.nix
+++ b/pkgs/development/ocaml-modules/uucd/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = [ xmlm ];
 
   meta = with lib; {
-    description = "An OCaml module to decode the data of the Unicode character database from its XML representation";
+    description = "OCaml module to decode the data of the Unicode character database from its XML representation";
     homepage = webpage;
     inherit (ocaml.meta) platforms;
     maintainers = [ maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/uucp/default.nix b/pkgs/development/ocaml-modules/uucp/default.nix
index 7ef10660fbb2c..1703cac867f72 100644
--- a/pkgs/development/ocaml-modules/uucp/default.nix
+++ b/pkgs/development/ocaml-modules/uucp/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation {
   checkInputs = [ uucd ];
 
   meta = with lib; {
-    description = "An OCaml library providing efficient access to a selection of character properties of the Unicode character database";
+    description = "OCaml library providing efficient access to a selection of character properties of the Unicode character database";
     homepage = webpage;
     inherit (ocaml.meta) platforms;
     license = licenses.bsd3;
diff --git a/pkgs/development/ocaml-modules/uuidm/default.nix b/pkgs/development/ocaml-modules/uuidm/default.nix
index 949737d28ee07..83b8cacc77a0f 100644
--- a/pkgs/development/ocaml-modules/uuidm/default.nix
+++ b/pkgs/development/ocaml-modules/uuidm/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   inherit (topkg) buildPhase installPhase;
 
   meta = with lib; {
-    description = "An OCaml module implementing 128 bits universally unique identifiers version 3, 5 (name based with MD5, SHA-1 hashing) and 4 (random based) according to RFC 4122";
+    description = "OCaml module implementing 128 bits universally unique identifiers version 3, 5 (name based with MD5, SHA-1 hashing) and 4 (random based) according to RFC 4122";
     homepage = "https://erratique.ch/software/uuidm";
     license = licenses.bsd3;
     maintainers = [ maintainers.maurer ];
diff --git a/pkgs/development/ocaml-modules/uunf/default.nix b/pkgs/development/ocaml-modules/uunf/default.nix
index 4785bbd040516..2d473a4b83516 100644
--- a/pkgs/development/ocaml-modules/uunf/default.nix
+++ b/pkgs/development/ocaml-modules/uunf/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation {
   inherit (topkg) installPhase;
 
   meta = with lib; {
-    description = "An OCaml module for normalizing Unicode text";
+    description = "OCaml module for normalizing Unicode text";
     homepage = webpage;
     license = licenses.bsd3;
     maintainers = [ maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/uuseg/default.nix b/pkgs/development/ocaml-modules/uuseg/default.nix
index a277bffd85f31..9a8cfa29491f2 100644
--- a/pkgs/development/ocaml-modules/uuseg/default.nix
+++ b/pkgs/development/ocaml-modules/uuseg/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   inherit (topkg) installPhase;
 
   meta = with lib; {
-    description = "An OCaml library for segmenting Unicode text";
+    description = "OCaml library for segmenting Unicode text";
     homepage = webpage;
     license = licenses.bsd3;
     maintainers = [ maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/uuuu/default.nix b/pkgs/development/ocaml-modules/uuuu/default.nix
index ed38329ae22b6..6f0312cfb61a6 100644
--- a/pkgs/development/ocaml-modules/uuuu/default.nix
+++ b/pkgs/development/ocaml-modules/uuuu/default.nix
@@ -31,7 +31,7 @@ buildDunePackage rec {
   duneVersion = "3";
 
   meta = {
-    description = "A library to normalize an ISO-8859 input to Unicode code-point";
+    description = "Library to normalize an ISO-8859 input to Unicode code-point";
     homepage = "https://github.com/mirage/uuuu";
     license = lib.licenses.mit;
     maintainers = [ ];
diff --git a/pkgs/development/ocaml-modules/visitors/default.nix b/pkgs/development/ocaml-modules/visitors/default.nix
index 2187de4c7c42b..22762db02aa3f 100644
--- a/pkgs/development/ocaml-modules/visitors/default.nix
+++ b/pkgs/development/ocaml-modules/visitors/default.nix
@@ -22,7 +22,7 @@ buildDunePackage rec {
     homepage = "https://gitlab.inria.fr/fpottier/visitors";
     changelog = "https://gitlab.inria.fr/fpottier/visitors/-/raw/${version}/CHANGES.md";
     license = licenses.lgpl21;
-    description = "An OCaml syntax extension (technically, a ppx_deriving plugin) which generates object-oriented visitors for traversing and transforming data structures";
+    description = "OCaml syntax extension (technically, a ppx_deriving plugin) which generates object-oriented visitors for traversing and transforming data structures";
     maintainers = [ ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/wasm/default.nix b/pkgs/development/ocaml-modules/wasm/default.nix
index 2dc6122fa6207..95ba92c8bca30 100644
--- a/pkgs/development/ocaml-modules/wasm/default.nix
+++ b/pkgs/development/ocaml-modules/wasm/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "An executable and OCaml library to run, read and write Web Assembly (wasm) files and manipulate their AST";
+    description = "Executable and OCaml library to run, read and write Web Assembly (wasm) files and manipulate their AST";
     mainProgram = "wasm";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/webmachine/default.nix b/pkgs/development/ocaml-modules/webmachine/default.nix
index 9f8749cac9fd3..33436cd2c8c23 100644
--- a/pkgs/development/ocaml-modules/webmachine/default.nix
+++ b/pkgs/development/ocaml-modules/webmachine/default.nix
@@ -26,7 +26,7 @@ buildDunePackage rec {
   meta = {
     homepage = "https://github.com/inhabitedtype/ocaml-webmachine";
     license = lib.licenses.bsd3;
-    description = "A REST toolkit for OCaml";
+    description = "REST toolkit for OCaml";
     maintainers = [ lib.maintainers.vbgl ];
   };
 
diff --git a/pkgs/development/ocaml-modules/wtf8/default.nix b/pkgs/development/ocaml-modules/wtf8/default.nix
index fec6c433604eb..bc071f9305f80 100644
--- a/pkgs/development/ocaml-modules/wtf8/default.nix
+++ b/pkgs/development/ocaml-modules/wtf8/default.nix
@@ -15,7 +15,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/flowtype/ocaml-wtf8";
-    description = "WTF-8 is a superset of UTF-8 that allows unpaired surrogates.";
+    description = "WTF-8 is a superset of UTF-8 that allows unpaired surrogates";
     license = licenses.mit;
     maintainers = [ maintainers.eqyiel ];
   };
diff --git a/pkgs/development/ocaml-modules/xmlm/default.nix b/pkgs/development/ocaml-modules/xmlm/default.nix
index 82d64566b9a6f..35459d14024b0 100644
--- a/pkgs/development/ocaml-modules/xmlm/default.nix
+++ b/pkgs/development/ocaml-modules/xmlm/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   inherit (topkg) buildPhase installPhase;
 
   meta = with lib; {
-    description = "An OCaml streaming codec to decode and encode the XML data format";
+    description = "OCaml streaming codec to decode and encode the XML data format";
     homepage = webpage;
     license = licenses.isc;
     maintainers = [ maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/yojson/default.nix b/pkgs/development/ocaml-modules/yojson/default.nix
index c8600cf52b168..ec5c86036ad27 100644
--- a/pkgs/development/ocaml-modules/yojson/default.nix
+++ b/pkgs/development/ocaml-modules/yojson/default.nix
@@ -1,19 +1,18 @@
-{ lib, fetchurl, buildDunePackage, cppo, seq }:
+{ lib, fetchurl, buildDunePackage, seq }:
 
 buildDunePackage rec {
   pname = "yojson";
-  version = "2.1.2";
+  version = "2.2.0";
 
   src = fetchurl {
     url = "https://github.com/ocaml-community/yojson/releases/download/${version}/yojson-${version}.tbz";
-    hash = "sha256-WfLxq7/Ip8y9v2CIlOXHXop2AG40iZJURG+D4gDftPk=";
+    hash = "sha256-v9wzvvMUG7qaj6ZqiFtUsp9r+rRQBAiE3Yz3zex4RRk=";
   };
 
-  nativeBuildInputs = [ cppo ];
   propagatedBuildInputs = [ seq ];
 
   meta = with lib; {
-    description = "An optimized parsing and printing library for the JSON format";
+    description = "Optimized parsing and printing library for the JSON format";
     homepage = "https://github.com/ocaml-community/${pname}";
     license = licenses.bsd3;
     maintainers = [ maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/yuscii/default.nix b/pkgs/development/ocaml-modules/yuscii/default.nix
index 9dea11e62b35b..3080cb772e9e3 100644
--- a/pkgs/development/ocaml-modules/yuscii/default.nix
+++ b/pkgs/development/ocaml-modules/yuscii/default.nix
@@ -31,7 +31,7 @@ buildDunePackage rec {
   doCheck = lib.versionAtLeast ocaml.version "4.08";
 
   meta = {
-    description = "A simple mapper between UTF-7 to Unicode according RFC2152";
+    description = "Simple mapper between UTF-7 to Unicode according RFC2152";
     license = lib.licenses.mit;
     homepage = "https://github.com/mirage/yuscii";
     maintainers = with lib.maintainers; [ ];
diff --git a/pkgs/development/ocaml-modules/zelus/default.nix b/pkgs/development/ocaml-modules/zelus/default.nix
index d326e234c0d02..07d268d45de9a 100644
--- a/pkgs/development/ocaml-modules/zelus/default.nix
+++ b/pkgs/development/ocaml-modules/zelus/default.nix
@@ -33,7 +33,7 @@ buildDunePackage rec {
   ];
 
   meta = with lib; {
-    description = "A synchronous language with ODEs";
+    description = "Synchronous language with ODEs";
     homepage = "https://zelus.di.ens.fr";
     license = licenses.inria-zelus;
     mainProgram = "zeluc";
diff --git a/pkgs/development/octave-modules/fuzzy-logic-toolkit/default.nix b/pkgs/development/octave-modules/fuzzy-logic-toolkit/default.nix
index dc230ef18a86b..154fa4feee30f 100644
--- a/pkgs/development/octave-modules/fuzzy-logic-toolkit/default.nix
+++ b/pkgs/development/octave-modules/fuzzy-logic-toolkit/default.nix
@@ -16,6 +16,6 @@ buildOctavePackage rec {
     homepage = "https://octave.sourceforge.io/fuzzy-logic-toolkit/index.html";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ KarlJoad ];
-    description = "A mostly MATLAB-compatible fuzzy logic toolkit for Octave";
+    description = "Mostly MATLAB-compatible fuzzy logic toolkit for Octave";
   };
 }
diff --git a/pkgs/development/octave-modules/nan/default.nix b/pkgs/development/octave-modules/nan/default.nix
index e71d984a5eaca..59d71d8769e0b 100644
--- a/pkgs/development/octave-modules/nan/default.nix
+++ b/pkgs/development/octave-modules/nan/default.nix
@@ -21,6 +21,6 @@ buildOctavePackage rec {
     homepage = "https://octave.sourceforge.io/nan/index.html";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ KarlJoad ];
-    description = "A statistics and machine learning toolbox for data with and w/o missing values";
+    description = "Statistics and machine learning toolbox for data with and w/o missing values";
   };
 }
diff --git a/pkgs/development/octave-modules/netcdf/default.nix b/pkgs/development/octave-modules/netcdf/default.nix
index 1eed282535803..b2b7eeda42e92 100644
--- a/pkgs/development/octave-modules/netcdf/default.nix
+++ b/pkgs/development/octave-modules/netcdf/default.nix
@@ -21,6 +21,6 @@ buildOctavePackage rec {
     homepage = "https://octave.sourceforge.io/netcdf/index.html";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ KarlJoad ];
-    description = "A NetCDF interface for Octave";
+    description = "NetCDF interface for Octave";
   };
 }
diff --git a/pkgs/development/octave-modules/optiminterp/default.nix b/pkgs/development/octave-modules/optiminterp/default.nix
index d830c563f73c3..b1c676b149769 100644
--- a/pkgs/development/octave-modules/optiminterp/default.nix
+++ b/pkgs/development/octave-modules/optiminterp/default.nix
@@ -21,7 +21,7 @@ buildOctavePackage rec {
     homepage = "https://octave.sourceforge.io/optiminterp/index.html";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ KarlJoad ];
-    description = "An optimal interpolation toolbox for octave";
+    description = "Optimal interpolation toolbox for octave";
     longDescription = ''
        An optimal interpolation toolbox for octave. This package provides
        functions to perform a n-dimensional optimal interpolations of
diff --git a/pkgs/development/perl-modules/Bio-BigFile/default.nix b/pkgs/development/perl-modules/Bio-BigFile/default.nix
index 516b6d014c5a4..3c360c2396a8d 100644
--- a/pkgs/development/perl-modules/Bio-BigFile/default.nix
+++ b/pkgs/development/perl-modules/Bio-BigFile/default.nix
@@ -3,14 +3,12 @@
  IOString,
  buildPerlModule,
  fetchFromGitHub,
- fetchpatch,
  fetchurl,
  kent,
  lib,
  libmysqlclient,
  libpng,
  openssl,
- perl
 }:
 
 buildPerlModule rec {
diff --git a/pkgs/development/perl-modules/ImageExifTool/default.nix b/pkgs/development/perl-modules/ImageExifTool/default.nix
index b46ddbdc33679..08d207e3bbac1 100644
--- a/pkgs/development/perl-modules/ImageExifTool/default.nix
+++ b/pkgs/development/perl-modules/ImageExifTool/default.nix
@@ -34,7 +34,7 @@ buildPerlPackage rec {
   };
 
   meta = {
-    description = "A tool to read, write and edit EXIF meta information";
+    description = "Tool to read, write and edit EXIF meta information";
     longDescription = ''
       ExifTool is a platform-independent Perl library plus a command-line
       application for reading, writing and editing meta information in a wide
diff --git a/pkgs/development/perl-modules/Tirex/default.nix b/pkgs/development/perl-modules/Tirex/default.nix
index 655610e898f27..48e63bb5932c4 100644
--- a/pkgs/development/perl-modules/Tirex/default.nix
+++ b/pkgs/development/perl-modules/Tirex/default.nix
@@ -7,6 +7,7 @@
 , JSON
 , LWP
 , mapnik
+, boost
 , nix-update-script
 }:
 
@@ -22,11 +23,18 @@ buildPerlPackage rec {
   };
 
   patches = [
+    # Support Mapnik >= v4.0.0 (`mapnik/box2d.hpp` -> `mapnik/geometry/box2d.hpp`)
     # https://github.com/openstreetmap/tirex/pull/54
     (fetchpatch {
-      url = "https://github.com/openstreetmap/tirex/commit/da0c5db926bc0939c53dd902a969b689ccf9edde.patch";
+      url = "https://github.com/openstreetmap/tirex/commit/5f131231c9c12e88793afba471b150ca8af8d587.patch";
       hash = "sha256-bnL1ZGy8ZNSZuCRbZn59qRVLg3TL0GjFYnhRKroeVO0=";
     })
+    # Support Mapnik >= v4.0.0 (boost:filesystem no longer indirectly linked)
+    # https://github.com/openstreetmap/tirex/pull/59
+    (fetchpatch {
+      url = "https://github.com/openstreetmap/tirex/commit/137903be9b7b35dde4c7010e65faa16bcf6ad476.patch";
+      hash = "sha256-JDqwWVnzExPwLpzv4LbSmGYah956uko+Zdicahua9oQ=";
+    })
   ];
 
   buildInputs = [
@@ -35,6 +43,7 @@ buildPerlPackage rec {
     JSON
     LWP
     mapnik
+    boost
   ] ++ mapnik.buildInputs;
 
   installPhase = ''
diff --git a/pkgs/development/perl-modules/WWW-YoutubeViewer/default.nix b/pkgs/development/perl-modules/WWW-YoutubeViewer/default.nix
index 6ab6233fc7006..4916c9619c617 100644
--- a/pkgs/development/perl-modules/WWW-YoutubeViewer/default.nix
+++ b/pkgs/development/perl-modules/WWW-YoutubeViewer/default.nix
@@ -23,7 +23,7 @@ buildPerlPackage rec {
   '';
 
   meta = with lib; {
-    description = "A lightweight application for searching and streaming videos from YouTube";
+    description = "Lightweight application for searching and streaming videos from YouTube";
     homepage = "https://github.com/trizen/youtube-viewer";
     license = with licenses; [ artistic2 ];
     maintainers = with maintainers; [ woffs ];
diff --git a/pkgs/development/perl-modules/ham/default.nix b/pkgs/development/perl-modules/ham/default.nix
index 8d1fce1ab8979..b25adff4c800d 100644
--- a/pkgs/development/perl-modules/ham/default.nix
+++ b/pkgs/development/perl-modules/ham/default.nix
@@ -39,7 +39,7 @@ buildPerlPackage {
   '';
 
   meta = with lib; {
-    description = "A tool to manage big projects consisting of multiple loosely-coupled git repositories";
+    description = "Tool to manage big projects consisting of multiple loosely-coupled git repositories";
     homepage = "https://github.com/kernkonzept/ham";
     license = licenses.bsd2;
     maintainers = with maintainers; [ aw ];
diff --git a/pkgs/development/perl-modules/strip-nondeterminism/default.nix b/pkgs/development/perl-modules/strip-nondeterminism/default.nix
index 31b3fad47b456..e50d61b878980 100644
--- a/pkgs/development/perl-modules/strip-nondeterminism/default.nix
+++ b/pkgs/development/perl-modules/strip-nondeterminism/default.nix
@@ -60,7 +60,7 @@ buildPerlPackage rec {
   doInstallCheck = true;
 
   meta = with lib; {
-    description = "A Perl module for stripping bits of non-deterministic information";
+    description = "Perl module for stripping bits of non-deterministic information";
     mainProgram = "strip-nondeterminism";
     homepage = "https://reproducible-builds.org/";
     license = licenses.gpl3Only;
diff --git a/pkgs/development/php-packages/apcu/default.nix b/pkgs/development/php-packages/apcu/default.nix
index f8b8ff1d83b7e..9cfe9b96cf34d 100644
--- a/pkgs/development/php-packages/apcu/default.nix
+++ b/pkgs/development/php-packages/apcu/default.nix
@@ -3,8 +3,6 @@
   lib,
   pcre2,
   fetchFromGitHub,
-  php,
-  fetchpatch,
 }:
 
 let
diff --git a/pkgs/development/php-packages/box/default.nix b/pkgs/development/php-packages/box/default.nix
index 1407064044dcc..15a348ddf421a 100644
--- a/pkgs/development/php-packages/box/default.nix
+++ b/pkgs/development/php-packages/box/default.nix
@@ -19,7 +19,7 @@ php82.buildComposerProject (finalAttrs: {
 
   meta = {
     changelog = "https://github.com/box-project/box/releases/tag/${finalAttrs.version}";
-    description = "An application for building and managing Phars";
+    description = "Application for building and managing Phars";
     homepage = "https://github.com/box-project/box";
     license = lib.licenses.mit;
     mainProgram = "box";
diff --git a/pkgs/development/php-packages/composer-local-repo-plugin/composer.lock b/pkgs/development/php-packages/composer-local-repo-plugin/composer.lock
new file mode 100644
index 0000000000000..1cd1d3b233cdd
--- /dev/null
+++ b/pkgs/development/php-packages/composer-local-repo-plugin/composer.lock
@@ -0,0 +1,72 @@
+{
+    "_readme": [
+        "This file locks the dependencies of your project to a known state",
+        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+        "This file is @generated automatically"
+    ],
+    "content-hash": "04664aa86ba468bc6c83825839823dd7",
+    "packages": [
+        {
+            "name": "nix-community/composer-local-repo-plugin",
+            "version": "1.1.0",
+            "dist": {
+                "type": "path",
+                "url": "./src",
+                "reference": "56bd0f1fb990aa295ca43fc23141b7147a3b5490"
+            },
+            "require": {
+                "composer-plugin-api": "^2",
+                "php": ">= 7.2"
+            },
+            "require-dev": {
+                "composer/composer": "^2.6 || ^2.7",
+                "phpunit/phpunit": "^8"
+            },
+            "type": "composer-plugin",
+            "extra": {
+                "class": "NixCommunity\\ComposerLocalRepoPlugin\\Plugin"
+            },
+            "autoload": {
+                "psr-4": {
+                    "NixCommunity\\ComposerLocalRepoPlugin\\": "src"
+                }
+            },
+            "autoload-dev": {
+                "psr-4": {
+                    "test\\NixCommunity\\ComposerLocalRepoPlugin\\": "test"
+                }
+            },
+            "scripts": {
+                "changelog-unreleased": [
+                    "auto-changelog -c .auto-changelog -u"
+                ],
+                "changelog-version": [
+                    "auto-changelog -c .auto-changelog -v"
+                ]
+            },
+            "license": [
+                "MIT"
+            ],
+            "description": "A plugin for Composer which provides a command to create local Composer repository for your projects.",
+            "homepage": "https://github.com/nix-community/composer-local-repo-plugin",
+            "funding": [
+                {
+                    "type": "github",
+                    "url": "https://github.com/drupol"
+                }
+            ],
+            "transport-options": {
+                "relative": true
+            }
+        }
+    ],
+    "packages-dev": [],
+    "aliases": [],
+    "minimum-stability": "stable",
+    "stability-flags": [],
+    "prefer-stable": false,
+    "prefer-lowest": false,
+    "platform": [],
+    "platform-dev": [],
+    "plugin-api-version": "2.6.0"
+}
diff --git a/pkgs/development/php-packages/composer-local-repo-plugin/default.nix b/pkgs/development/php-packages/composer-local-repo-plugin/default.nix
new file mode 100644
index 0000000000000..d6199a5686595
--- /dev/null
+++ b/pkgs/development/php-packages/composer-local-repo-plugin/default.nix
@@ -0,0 +1,33 @@
+{
+  lib,
+  fetchFromGitHub,
+  php,
+}:
+
+let
+  version = "1.1.0";
+in
+php.buildComposerWithPlugin {
+  pname = "nix-community/composer-local-repo-plugin";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "nix-community";
+    repo = "composer-local-repo-plugin";
+    rev = version;
+    hash = "sha256-edbn07r/Uc1g0qOuVBZBs6N1bMN5kIfA1b4FCufdw5M=";
+  };
+
+  composerLock = ./composer.lock;
+  vendorHash = "sha256-SL3HiYTVaUwcEfnRO932MWgOP1VRkxTl3lxLbW0qiTY=";
+
+  meta = {
+    changelog = "https://github.com/nix-community/composer-local-repo-plugin/releases/tag/${version}";
+    description = "Composer plugin that facilitates the creation of a local composer type repository";
+    homepage = "https://github.com/nix-community/composer-local-repo-plugin";
+    license = lib.licenses.mit;
+    mainProgram = "composer";
+    maintainers = with lib.maintainers; [ drupol ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/php-packages/composer/default.nix b/pkgs/development/php-packages/composer/default.nix
index d98c3155bb91f..150d069ca67c7 100644
--- a/pkgs/development/php-packages/composer/default.nix
+++ b/pkgs/development/php-packages/composer/default.nix
@@ -1,7 +1,8 @@
 {
   lib,
-  callPackage,
+  stdenvNoCC,
   fetchFromGitHub,
+  callPackage,
   php,
   unzip,
   _7zz,
@@ -12,45 +13,102 @@
   makeBinaryWrapper,
 }:
 
-php.buildComposerProject (finalAttrs: {
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "composer";
+  version = "2.7.7";
+
   # Hash used by ../../../build-support/php/pkgs/composer-phar.nix to
   # use together with the version from this package to keep the
   # bootstrap phar file up-to-date together with the end user composer
   # package.
-  passthru.pharHash = "sha256-KdyaGe8zU12wYbMRgLKoM6fPjSz0FFszovg1BId7ugg=";
+  passthru.pharHash = "sha256-qrlAzVPShaVMUEZYIKIID8txgqS6Hl95Wr+xBBSktL4=";
 
   composer = callPackage ../../../build-support/php/pkgs/composer-phar.nix {
     inherit (finalAttrs) version;
     inherit (finalAttrs.passthru) pharHash;
   };
 
-  pname = "composer";
-  version = "2.7.6";
-
   src = fetchFromGitHub {
     owner = "composer";
     repo = "composer";
     rev = finalAttrs.version;
-    hash = "sha256-LZwg3PR3zl07Nb6MS8oKkRfjLgqtT/c4sfUOzWE4S+U=";
+    hash = "sha256-N8el4oyz3ZGIXN2qmpf6Df0SIjuc1GjyuMuQCcR/xN4=";
   };
 
   nativeBuildInputs = [ makeBinaryWrapper ];
 
-  postInstall = ''
+  buildInputs = [ php ];
+
+  vendor = stdenvNoCC.mkDerivation {
+    pname = "${finalAttrs.pname}-vendor";
+
+    inherit (finalAttrs) src version;
+
+    nativeBuildInputs = [
+      cacert
+      finalAttrs.composer
+    ];
+
+    dontPatchShebangs = true;
+    doCheck = true;
+
+    buildPhase = ''
+      runHook preBuild
+
+      composer install --no-dev --no-interaction --no-progress --optimize-autoloader
+
+      runHook postBuild
+    '';
+
+    checkPhase = ''
+      runHook preCheck
+
+      composer validate
+
+      runHook postCheck
+    '';
+
+    installPhase = ''
+      runHook preInstall
+
+      cp -ar . $out/
+
+      runHook postInstall
+    '';
+
+    env = {
+      COMPOSER_CACHE_DIR = "/dev/null";
+      COMPOSER_DISABLE_NETWORK = "0";
+      COMPOSER_HTACCESS_PROTECT = "0";
+      COMPOSER_MIRROR_PATH_REPOS = "1";
+      COMPOSER_ROOT_VERSION = finalAttrs.version;
+    };
+
+    outputHashMode = "recursive";
+    outputHashAlgo = "sha256";
+    outputHash = "sha256-AsuiTDXJs7jN4N/dJr10BT2PH0f6K2CWDvI8zQW5L9c=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out
+    cp -ar ${finalAttrs.vendor}/* $out/
+    chmod +w $out/bin
+
     wrapProgram $out/bin/composer \
       --prefix PATH : ${
         lib.makeBinPath [
           _7zz
-          cacert
           curl
           git
           unzip
           xz
         ]
       }
-  '';
 
-  vendorHash = "sha256-dNNV9fTyGyRoGeDV/vBjn0aMgkaUMsrKQv5AOoiYokQ=";
+    runHook postInstall
+  '';
 
   meta = {
     changelog = "https://github.com/composer/composer/releases/tag/${finalAttrs.version}";
diff --git a/pkgs/development/php-packages/cyclonedx-php-composer/composer.lock b/pkgs/development/php-packages/cyclonedx-php-composer/composer.lock
new file mode 100644
index 0000000000000..d57ce5b100d0e
--- /dev/null
+++ b/pkgs/development/php-packages/cyclonedx-php-composer/composer.lock
@@ -0,0 +1,571 @@
+{
+    "_readme": [
+        "This file locks the dependencies of your project to a known state",
+        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+        "This file is @generated automatically"
+    ],
+    "content-hash": "c949500f008befd2980bd7f80454c43b",
+    "packages": [
+        {
+            "name": "composer/spdx-licenses",
+            "version": "1.5.8",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/composer/spdx-licenses.git",
+                "reference": "560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a",
+                "reference": "560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^5.3.2 || ^7.0 || ^8.0"
+            },
+            "require-dev": {
+                "phpstan/phpstan": "^0.12.55",
+                "symfony/phpunit-bridge": "^4.2 || ^5"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "1.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Composer\\Spdx\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nils Adermann",
+                    "email": "naderman@naderman.de",
+                    "homepage": "http://www.naderman.de"
+                },
+                {
+                    "name": "Jordi Boggiano",
+                    "email": "j.boggiano@seld.be",
+                    "homepage": "http://seld.be"
+                },
+                {
+                    "name": "Rob Bast",
+                    "email": "rob.bast@gmail.com",
+                    "homepage": "http://robbast.nl"
+                }
+            ],
+            "description": "SPDX licenses list and validation library.",
+            "keywords": [
+                "license",
+                "spdx",
+                "validator"
+            ],
+            "support": {
+                "irc": "ircs://irc.libera.chat:6697/composer",
+                "issues": "https://github.com/composer/spdx-licenses/issues",
+                "source": "https://github.com/composer/spdx-licenses/tree/1.5.8"
+            },
+            "funding": [
+                {
+                    "url": "https://packagist.com",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/composer",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2023-11-20T07:44:33+00:00"
+        },
+        {
+            "name": "cyclonedx/cyclonedx-library",
+            "version": "v3.3.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/CycloneDX/cyclonedx-php-library.git",
+                "reference": "cad0f92b36c85f36b3d3c11ff96002af5f20cd10"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/CycloneDX/cyclonedx-php-library/zipball/cad0f92b36c85f36b3d3c11ff96002af5f20cd10",
+                "reference": "cad0f92b36c85f36b3d3c11ff96002af5f20cd10",
+                "shasum": ""
+            },
+            "require": {
+                "composer/spdx-licenses": "^1.5",
+                "ext-dom": "*",
+                "ext-json": "*",
+                "ext-libxml": "*",
+                "opis/json-schema": "^2.0",
+                "package-url/packageurl-php": "^1.0",
+                "php": "^8.1"
+            },
+            "require-dev": {
+                "ext-simplexml": "*",
+                "roave/security-advisories": "dev-latest"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.x-dev"
+                },
+                "composer-normalize": {
+                    "indent-size": 4,
+                    "indent-style": "space"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "CycloneDX\\Core\\": "src/Core/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Jan Kowalleck",
+                    "email": "jan.kowalleck@gmail.com",
+                    "homepage": "https://github.com/jkowalleck"
+                }
+            ],
+            "description": "Work with CycloneDX documents.",
+            "homepage": "https://github.com/CycloneDX/cyclonedx-php-library/#readme",
+            "keywords": [
+                "CycloneDX",
+                "HBOM",
+                "OBOM",
+                "SBOM",
+                "SaaSBOM",
+                "bill-of-materials",
+                "bom",
+                "models",
+                "normalizer",
+                "owasp",
+                "package-url",
+                "purl",
+                "serializer",
+                "software-bill-of-materials",
+                "spdx",
+                "validator",
+                "vdr",
+                "vex"
+            ],
+            "support": {
+                "docs": "https://cyclonedx-php-library.readthedocs.io",
+                "issues": "https://github.com/CycloneDX/cyclonedx-php-library/issues",
+                "source": "https://github.com/CycloneDX/cyclonedx-php-library/"
+            },
+            "funding": [
+                {
+                    "url": "https://owasp.org/donate/?reponame=www-project-cyclonedx&title=OWASP+CycloneDX",
+                    "type": "other"
+                }
+            ],
+            "time": "2024-05-06T13:34:55+00:00"
+        },
+        {
+            "name": "cyclonedx/cyclonedx-php-composer",
+            "version": "5.2.0",
+            "dist": {
+                "type": "path",
+                "url": "./src",
+                "reference": "88ae6a60b882d72668d409b0d4fcc9bfa0c66259"
+            },
+            "require": {
+                "composer-plugin-api": "^2.3",
+                "cyclonedx/cyclonedx-library": "^3.3",
+                "package-url/packageurl-php": "^1.0",
+                "php": "^8.1"
+            },
+            "require-dev": {
+                "composer/composer": "^2.3.0",
+                "roave/security-advisories": "dev-latest"
+            },
+            "type": "composer-plugin",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "4.x-dev"
+                },
+                "class": "CycloneDX\\Composer\\Plugin",
+                "composer-normalize": {
+                    "indent-size": 4,
+                    "indent-style": "space"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "CycloneDX\\Composer\\": "src/"
+                }
+            },
+            "autoload-dev": {
+                "psr-4": {
+                    "CycloneDX\\Tests\\": "tests/"
+                }
+            },
+            "scripts": {
+                "clean": [
+                    "rm -rf reports",
+                    "@php tools/psalm/vendor/vimeo/psalm/psalm --clear-cache",
+                    "@php tools/psalm/vendor/vimeo/psalm/psalm --clear-global-cache",
+                    "rm -rf .*.cache",
+                    "rm -rf .tmp"
+                ],
+                "cs-fix": [
+                    "@php tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/php-cs-fixer fix --diff"
+                ],
+                "dev-setup": [
+                    "@composer -d tools/composer-normalize update",
+                    "@composer -d tools/composer-require-checker update",
+                    "@composer -d tools/composer-unused update",
+                    "@composer -d tools/php-cs-fixer update",
+                    "@composer -d tools/psalm update",
+                    "@composer -d tools/phpunit update",
+                    "@composer update"
+                ],
+                "normalize": [
+                    "@composer -d tools/composer-normalize normalize --diff $PWD/composer.json"
+                ],
+                "test": [
+                    "@composer validate",
+                    "@test:psalm",
+                    "@test:phpunit",
+                    "@test:cs-fixer",
+                    "@test:composer-unused",
+                    "@test:composer-require-checker",
+                    "@test:composer-normalize"
+                ],
+                "test:composer-normalize": [
+                    "@composer -d tools/composer-normalize normalize --dry-run $PWD/composer.json"
+                ],
+                "test:composer-require-checker": [
+                    "@putenv XDEBUG_MODE=off",
+                    "@php tools/composer-require-checker/vendor/maglnet/composer-require-checker/bin/composer-require-checker check"
+                ],
+                "test:composer-unused": [
+                    "@php tools/composer-unused/vendor/icanhazstring/composer-unused/bin/composer-unused --excludeDir=tools"
+                ],
+                "test:cs-fixer": [
+                    "@php tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/php-cs-fixer fix --dry-run --diff"
+                ],
+                "test:phpunit": [
+                    "@php -d zend.assertions=1 -d assert.exception=1 -d display_errors=On -d error_reporting=-1 -d log_errors_max_len=0 -d memory_limit=-1 tools/phpunit/vendor/phpunit/phpunit/phpunit"
+                ],
+                "test:psalm": [
+                    "@php tools/psalm/vendor/vimeo/psalm/psalm"
+                ]
+            },
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Jan Kowalleck",
+                    "email": "jan.kowalleck@gmail.com",
+                    "homepage": "https://github.com/jkowalleck"
+                }
+            ],
+            "description": "Creates CycloneDX Software Bill-of-Materials (SBOM) from PHP Composer projects",
+            "homepage": "https://github.com/CycloneDX/cyclonedx-php-composer/#readme",
+            "keywords": [
+                "BOM",
+                "CycloneDX",
+                "PURL",
+                "SBOM",
+                "SPDX",
+                "bill-of-materials",
+                "composer",
+                "package-url",
+                "software-bill-of-materials"
+            ],
+            "support": {
+                "issues": "https://github.com/CycloneDX/cyclonedx-php-composer/issues",
+                "source": "https://github.com/CycloneDX/cyclonedx-php-composer/"
+            },
+            "funding": [
+                {
+                    "type": "other",
+                    "url": "https://owasp.org/donate/?reponame=www-project-cyclonedx&title=OWASP+CycloneDX"
+                }
+            ],
+            "transport-options": {
+                "relative": true
+            }
+        },
+        {
+            "name": "opis/json-schema",
+            "version": "2.3.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/opis/json-schema.git",
+                "reference": "c48df6d7089a45f01e1c82432348f2d5976f9bfb"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/opis/json-schema/zipball/c48df6d7089a45f01e1c82432348f2d5976f9bfb",
+                "reference": "c48df6d7089a45f01e1c82432348f2d5976f9bfb",
+                "shasum": ""
+            },
+            "require": {
+                "ext-json": "*",
+                "opis/string": "^2.0",
+                "opis/uri": "^1.0",
+                "php": "^7.4 || ^8.0"
+            },
+            "require-dev": {
+                "ext-bcmath": "*",
+                "ext-intl": "*",
+                "phpunit/phpunit": "^9.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Opis\\JsonSchema\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Sorin Sarca",
+                    "email": "sarca_sorin@hotmail.com"
+                },
+                {
+                    "name": "Marius Sarca",
+                    "email": "marius.sarca@gmail.com"
+                }
+            ],
+            "description": "Json Schema Validator for PHP",
+            "homepage": "https://opis.io/json-schema",
+            "keywords": [
+                "json",
+                "json-schema",
+                "schema",
+                "validation",
+                "validator"
+            ],
+            "support": {
+                "issues": "https://github.com/opis/json-schema/issues",
+                "source": "https://github.com/opis/json-schema/tree/2.3.0"
+            },
+            "time": "2022-01-08T20:38:03+00:00"
+        },
+        {
+            "name": "opis/string",
+            "version": "2.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/opis/string.git",
+                "reference": "9ebf1a1f873f502f6859d11210b25a4bf5d141e7"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/opis/string/zipball/9ebf1a1f873f502f6859d11210b25a4bf5d141e7",
+                "reference": "9ebf1a1f873f502f6859d11210b25a4bf5d141e7",
+                "shasum": ""
+            },
+            "require": {
+                "ext-iconv": "*",
+                "ext-json": "*",
+                "php": "^7.4 || ^8.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^9.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Opis\\String\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Marius Sarca",
+                    "email": "marius.sarca@gmail.com"
+                },
+                {
+                    "name": "Sorin Sarca",
+                    "email": "sarca_sorin@hotmail.com"
+                }
+            ],
+            "description": "Multibyte strings as objects",
+            "homepage": "https://opis.io/string",
+            "keywords": [
+                "multi-byte",
+                "opis",
+                "string",
+                "string manipulation",
+                "utf-8"
+            ],
+            "support": {
+                "issues": "https://github.com/opis/string/issues",
+                "source": "https://github.com/opis/string/tree/2.0.1"
+            },
+            "time": "2022-01-14T15:42:23+00:00"
+        },
+        {
+            "name": "opis/uri",
+            "version": "1.1.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/opis/uri.git",
+                "reference": "0f3ca49ab1a5e4a6681c286e0b2cc081b93a7d5a"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/opis/uri/zipball/0f3ca49ab1a5e4a6681c286e0b2cc081b93a7d5a",
+                "reference": "0f3ca49ab1a5e4a6681c286e0b2cc081b93a7d5a",
+                "shasum": ""
+            },
+            "require": {
+                "opis/string": "^2.0",
+                "php": "^7.4 || ^8.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^9"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Opis\\Uri\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Marius Sarca",
+                    "email": "marius.sarca@gmail.com"
+                },
+                {
+                    "name": "Sorin Sarca",
+                    "email": "sarca_sorin@hotmail.com"
+                }
+            ],
+            "description": "Build, parse and validate URIs and URI-templates",
+            "homepage": "https://opis.io",
+            "keywords": [
+                "URI Template",
+                "parse url",
+                "punycode",
+                "uri",
+                "uri components",
+                "url",
+                "validate uri"
+            ],
+            "support": {
+                "issues": "https://github.com/opis/uri/issues",
+                "source": "https://github.com/opis/uri/tree/1.1.0"
+            },
+            "time": "2021-05-22T15:57:08+00:00"
+        },
+        {
+            "name": "package-url/packageurl-php",
+            "version": "1.1.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/package-url/packageurl-php.git",
+                "reference": "32058ad61f0d8b457fa26e7860bbd8b903196d3f"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/package-url/packageurl-php/zipball/32058ad61f0d8b457fa26e7860bbd8b903196d3f",
+                "reference": "32058ad61f0d8b457fa26e7860bbd8b903196d3f",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.3 || ^8.0"
+            },
+            "require-dev": {
+                "ext-json": "*",
+                "phpunit/phpunit": "9.6.16",
+                "roave/security-advisories": "dev-latest"
+            },
+            "type": "library",
+            "extra": {
+                "composer-normalize": {
+                    "indent-size": 4,
+                    "indent-style": "space"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "PackageUrl\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Jan Kowalleck",
+                    "email": "jan.kowalleck@gmail.com",
+                    "homepage": "https://github.com/jkowalleck"
+                }
+            ],
+            "description": "Builder and parser based on the package URL (purl) specification.",
+            "homepage": "https://github.com/package-url/packageurl-php#readme",
+            "keywords": [
+                "package",
+                "package-url",
+                "packageurl",
+                "purl",
+                "url"
+            ],
+            "support": {
+                "issues": "https://github.com/package-url/packageurl-php/issues",
+                "source": "https://github.com/package-url/packageurl-php/tree/1.1.2"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sponsors/jkowalleck",
+                    "type": "github"
+                }
+            ],
+            "time": "2024-02-05T11:20:07+00:00"
+        }
+    ],
+    "packages-dev": [],
+    "aliases": [],
+    "minimum-stability": "stable",
+    "stability-flags": [],
+    "prefer-stable": false,
+    "prefer-lowest": false,
+    "platform": [],
+    "platform-dev": [],
+    "plugin-api-version": "2.6.0"
+}
diff --git a/pkgs/development/php-packages/cyclonedx-php-composer/default.nix b/pkgs/development/php-packages/cyclonedx-php-composer/default.nix
new file mode 100644
index 0000000000000..d3af20b63bc73
--- /dev/null
+++ b/pkgs/development/php-packages/cyclonedx-php-composer/default.nix
@@ -0,0 +1,33 @@
+{
+  lib,
+  fetchFromGitHub,
+  php,
+}:
+
+let
+  version = "5.2.0";
+in
+php.buildComposerWithPlugin {
+  pname = "cyclonedx/cyclonedx-php-composer";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "CycloneDX";
+    repo = "cyclonedx-php-composer";
+    rev = "v${version}";
+    hash = "sha256-0fb1QiuVJqcB7CAEyB0y60/O9iiibT06mccZYe52dFQ=";
+  };
+
+  composerLock = ./composer.lock;
+  vendorHash = "sha256-QPlHWXXksetNSsv3olmCtPA/VsFVPV09rYQEsPezZoE=";
+
+  meta = {
+    changelog = "https://github.com/CycloneDX/cyclonedx-php-composer/releases/tag/v${version}";
+    description = "Composer plugin that facilitates the creation of a CycloneDX Software Bill of Materials (SBOM) from PHP Composer projects";
+    homepage = "https://github.com/CycloneDX/cyclonedx-php-composer";
+    license = lib.licenses.asl20;
+    mainProgram = "composer";
+    maintainers = with lib.maintainers; [ drupol ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/php-packages/deployer/default.nix b/pkgs/development/php-packages/deployer/default.nix
index 6575338e4d649..5fc8cc5679df8 100644
--- a/pkgs/development/php-packages/deployer/default.nix
+++ b/pkgs/development/php-packages/deployer/default.nix
@@ -19,7 +19,7 @@ php.buildComposerProject (finalAttrs: {
 
   meta = {
     changelog = "https://github.com/deployphp/deployer/releases/tag/v${finalAttrs.version}";
-    description = "The PHP deployment tool with support for popular frameworks out of the box";
+    description = "PHP deployment tool with support for popular frameworks out of the box";
     homepage = "https://deployer.org/";
     license = lib.licenses.mit;
     mainProgram = "dep";
diff --git a/pkgs/development/php-packages/ds/default.nix b/pkgs/development/php-packages/ds/default.nix
index 6d44b0aaabcb0..a78974c42a0fe 100644
--- a/pkgs/development/php-packages/ds/default.nix
+++ b/pkgs/development/php-packages/ds/default.nix
@@ -24,7 +24,7 @@ buildPecl {
 
   meta = with lib; {
     changelog = "https://github.com/php-ds/ext-ds/releases/tag/v${version}";
-    description = "An extension providing efficient data structures for PHP";
+    description = "Extension providing efficient data structures for PHP";
     license = licenses.mit;
     homepage = "https://github.com/php-ds/ext-ds";
     maintainers = teams.php.members;
diff --git a/pkgs/development/php-packages/grpc/default.nix b/pkgs/development/php-packages/grpc/default.nix
index 5dcd2a4a33ef3..2a919990193c9 100644
--- a/pkgs/development/php-packages/grpc/default.nix
+++ b/pkgs/development/php-packages/grpc/default.nix
@@ -22,7 +22,7 @@ buildPecl {
   doCheck = true;
 
   meta = {
-    description = "A high performance, open source, general RPC framework that puts mobile and HTTP/2 first.";
+    description = "High performance, open source, general RPC framework that puts mobile and HTTP/2 first";
     homepage = "https://github.com/grpc/grpc/tree/master/src/php/ext/grpc";
     license = lib.licenses.asl20;
     maintainers = lib.teams.php.members;
diff --git a/pkgs/development/php-packages/grumphp/default.nix b/pkgs/development/php-packages/grumphp/default.nix
index 5a585bdca7d7b..e8506e9e008cb 100644
--- a/pkgs/development/php-packages/grumphp/default.nix
+++ b/pkgs/development/php-packages/grumphp/default.nix
@@ -6,20 +6,20 @@
 
 php.buildComposerProject (finalAttrs: {
   pname = "grumphp";
-  version = "2.5.0";
+  version = "2.6.0";
 
   src = fetchFromGitHub {
     owner = "phpro";
     repo = "grumphp";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-STTMqOzWE6c+EXA7PGoJTGVCyB3PtNVj5wSZ6igudro=";
+    hash = "sha256-W4LNzdgWxXDPL46/C8SX99lpRMp/xL5q5v6vX3H80XU=";
   };
 
-  vendorHash = "sha256-CrcDJb5SfTBxVkFPTLq0PSzqNtkZWDPkH0IW7Crr4Pw=";
+  vendorHash = "sha256-bpIG3P1BdsYNI59xANaihmjsT7WDKiss3mhi/brA0Mc=";
 
   meta = {
     changelog = "https://github.com/phpro/grumphp/releases/tag/v${finalAttrs.version}";
-    description = "A PHP code-quality tool";
+    description = "PHP code-quality tool";
     homepage = "https://github.com/phpro/grumphp";
     license = lib.licenses.mit;
     mainProgram = "grumphp";
diff --git a/pkgs/development/php-packages/mongodb/default.nix b/pkgs/development/php-packages/mongodb/default.nix
index 8a1b224627d0a..95b2929abca08 100644
--- a/pkgs/development/php-packages/mongodb/default.nix
+++ b/pkgs/development/php-packages/mongodb/default.nix
@@ -16,13 +16,13 @@
 
 buildPecl rec {
   pname = "mongodb";
-  version = "1.19.0";
+  version = "1.19.3";
 
   src = fetchFromGitHub {
     owner = "mongodb";
     repo = "mongo-php-driver";
     rev = version;
-    hash = "sha256-hog6bOKAhLwZMjrUD5yOJ607B1MLYaZJjq6CXIYPlH4=";
+    hash = "sha256-gpnL4mXOD/MDG7xWxUpLLKfRD2w6HqNokC5358OkFSg=";
     fetchSubmodules = true;
   };
 
@@ -43,7 +43,7 @@ buildPecl rec {
     ];
 
   meta = {
-    description = "The Official MongoDB PHP driver";
+    description = "Official MongoDB PHP driver";
     homepage = "https://github.com/mongodb/mongo-php-driver";
     license = lib.licenses.asl20;
     maintainers = lib.teams.php.members;
diff --git a/pkgs/development/php-packages/pcov/default.nix b/pkgs/development/php-packages/pcov/default.nix
index ccce782c168ab..1ee88135b3b13 100644
--- a/pkgs/development/php-packages/pcov/default.nix
+++ b/pkgs/development/php-packages/pcov/default.nix
@@ -24,7 +24,7 @@ buildPecl {
 
   meta = with lib; {
     changelog = "https://github.com/krakjoe/pcov/releases/tag/v${version}";
-    description = "A self contained php-code-coverage compatible driver for PHP.";
+    description = "Self contained php-code-coverage compatible driver for PHP";
     license = licenses.php301;
     homepage = "https://github.com/krakjoe/pcov";
     maintainers = teams.php.members;
diff --git a/pkgs/development/php-packages/pdlib/default.nix b/pkgs/development/php-packages/pdlib/default.nix
index b6b86b13393bd..75714ac706401 100644
--- a/pkgs/development/php-packages/pdlib/default.nix
+++ b/pkgs/development/php-packages/pdlib/default.nix
@@ -23,7 +23,7 @@ buildPecl {
   buildInputs = [ (dlib.override { guiSupport = true; }) ];
 
   meta = with lib; {
-    description = "A PHP extension for Dlib";
+    description = "PHP extension for Dlib";
     license = with licenses; [ mit ];
     homepage = "https://github.com/goodspb/pdlib";
     maintainers = lib.teams.php.members;
diff --git a/pkgs/development/php-packages/phalcon/default.nix b/pkgs/development/php-packages/phalcon/default.nix
index 09d35a40f0a3f..86252ec028e0a 100644
--- a/pkgs/development/php-packages/phalcon/default.nix
+++ b/pkgs/development/php-packages/phalcon/default.nix
@@ -29,7 +29,7 @@ buildPecl rec {
   sourceRoot = "${src.name}/build/phalcon";
 
   meta = with lib; {
-    description = "Phalcon is a full stack PHP framework offering low resource consumption and high performance.";
+    description = "Phalcon is a full stack PHP framework offering low resource consumption and high performance";
     license = licenses.bsd3;
     homepage = "https://phalcon.io";
     maintainers = teams.php.members ++ [ maintainers.krzaczek ];
diff --git a/pkgs/development/php-packages/phive/default.nix b/pkgs/development/php-packages/phive/default.nix
index 82b5681cb1682..292728654c7ef 100644
--- a/pkgs/development/php-packages/phive/default.nix
+++ b/pkgs/development/php-packages/phive/default.nix
@@ -19,7 +19,7 @@ php.buildComposerProject (finalAttrs: {
 
   meta = {
     changelog = "https://github.com/phar-io/phive/releases/tag/${finalAttrs.version}";
-    description = "The Phar Installation and Verification Environment (PHIVE)";
+    description = "Phar Installation and Verification Environment (PHIVE)";
     homepage = "https://github.com/phar-io/phive";
     license = lib.licenses.bsd3;
     mainProgram = "phive";
diff --git a/pkgs/development/php-packages/php-cs-fixer/composer.lock b/pkgs/development/php-packages/php-cs-fixer/composer.lock
index 240b714f8fedc..d33ffb2e20a73 100644
--- a/pkgs/development/php-packages/php-cs-fixer/composer.lock
+++ b/pkgs/development/php-packages/php-cs-fixer/composer.lock
@@ -4,20 +4,84 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "51f7af207f2db0d57a6e749c90fc8a2a",
+    "content-hash": "787d06b680629dbd19e87f55f7aa69b5",
     "packages": [
         {
+            "name": "clue/ndjson-react",
+            "version": "v1.3.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/clue/reactphp-ndjson.git",
+                "reference": "392dc165fce93b5bb5c637b67e59619223c931b0"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/clue/reactphp-ndjson/zipball/392dc165fce93b5bb5c637b67e59619223c931b0",
+                "reference": "392dc165fce93b5bb5c637b67e59619223c931b0",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3",
+                "react/stream": "^1.2"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35",
+                "react/event-loop": "^1.2"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Clue\\React\\NDJson\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Christian Lück",
+                    "email": "christian@clue.engineering"
+                }
+            ],
+            "description": "Streaming newline-delimited JSON (NDJSON) parser and encoder for ReactPHP.",
+            "homepage": "https://github.com/clue/reactphp-ndjson",
+            "keywords": [
+                "NDJSON",
+                "json",
+                "jsonlines",
+                "newline",
+                "reactphp",
+                "streaming"
+            ],
+            "support": {
+                "issues": "https://github.com/clue/reactphp-ndjson/issues",
+                "source": "https://github.com/clue/reactphp-ndjson/tree/v1.3.0"
+            },
+            "funding": [
+                {
+                    "url": "https://clue.engineering/support",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/clue",
+                    "type": "github"
+                }
+            ],
+            "time": "2022-12-23T10:58:28+00:00"
+        },
+        {
             "name": "composer/pcre",
-            "version": "3.1.1",
+            "version": "3.1.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/composer/pcre.git",
-                "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9"
+                "reference": "04229f163664973f68f38f6f73d917799168ef24"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/composer/pcre/zipball/00104306927c7a0919b4ced2aaa6782c1e61a3c9",
-                "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9",
+                "url": "https://api.github.com/repos/composer/pcre/zipball/04229f163664973f68f38f6f73d917799168ef24",
+                "reference": "04229f163664973f68f38f6f73d917799168ef24",
                 "shasum": ""
             },
             "require": {
@@ -59,7 +123,7 @@
             ],
             "support": {
                 "issues": "https://github.com/composer/pcre/issues",
-                "source": "https://github.com/composer/pcre/tree/3.1.1"
+                "source": "https://github.com/composer/pcre/tree/3.1.4"
             },
             "funding": [
                 {
@@ -75,7 +139,7 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2023-10-11T07:11:09+00:00"
+            "time": "2024-05-27T13:40:54+00:00"
         },
         {
             "name": "composer/semver",
@@ -160,16 +224,16 @@
         },
         {
             "name": "composer/xdebug-handler",
-            "version": "3.0.3",
+            "version": "3.0.5",
             "source": {
                 "type": "git",
                 "url": "https://github.com/composer/xdebug-handler.git",
-                "reference": "ced299686f41dce890debac69273b47ffe98a40c"
+                "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c",
-                "reference": "ced299686f41dce890debac69273b47ffe98a40c",
+                "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef",
+                "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef",
                 "shasum": ""
             },
             "require": {
@@ -180,7 +244,7 @@
             "require-dev": {
                 "phpstan/phpstan": "^1.0",
                 "phpstan/phpstan-strict-rules": "^1.1",
-                "symfony/phpunit-bridge": "^6.0"
+                "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5"
             },
             "type": "library",
             "autoload": {
@@ -204,9 +268,9 @@
                 "performance"
             ],
             "support": {
-                "irc": "irc://irc.freenode.org/composer",
+                "irc": "ircs://irc.libera.chat:6697/composer",
                 "issues": "https://github.com/composer/xdebug-handler/issues",
-                "source": "https://github.com/composer/xdebug-handler/tree/3.0.3"
+                "source": "https://github.com/composer/xdebug-handler/tree/3.0.5"
             },
             "funding": [
                 {
@@ -222,7 +286,115 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-02-25T21:32:43+00:00"
+            "time": "2024-05-06T16:37:16+00:00"
+        },
+        {
+            "name": "evenement/evenement",
+            "version": "v3.0.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/igorw/evenement.git",
+                "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/igorw/evenement/zipball/0a16b0d71ab13284339abb99d9d2bd813640efbc",
+                "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^9 || ^6"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Evenement\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Igor Wiedler",
+                    "email": "igor@wiedler.ch"
+                }
+            ],
+            "description": "Événement is a very simple event dispatching library for PHP",
+            "keywords": [
+                "event-dispatcher",
+                "event-emitter"
+            ],
+            "support": {
+                "issues": "https://github.com/igorw/evenement/issues",
+                "source": "https://github.com/igorw/evenement/tree/v3.0.2"
+            },
+            "time": "2023-08-08T05:53:35+00:00"
+        },
+        {
+            "name": "fidry/cpu-core-counter",
+            "version": "1.1.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/theofidry/cpu-core-counter.git",
+                "reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/f92996c4d5c1a696a6a970e20f7c4216200fcc42",
+                "reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.2 || ^8.0"
+            },
+            "require-dev": {
+                "fidry/makefile": "^0.2.0",
+                "fidry/php-cs-fixer-config": "^1.1.2",
+                "phpstan/extension-installer": "^1.2.0",
+                "phpstan/phpstan": "^1.9.2",
+                "phpstan/phpstan-deprecation-rules": "^1.0.0",
+                "phpstan/phpstan-phpunit": "^1.2.2",
+                "phpstan/phpstan-strict-rules": "^1.4.4",
+                "phpunit/phpunit": "^8.5.31 || ^9.5.26",
+                "webmozarts/strict-phpunit": "^7.5"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Fidry\\CpuCoreCounter\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Théo FIDRY",
+                    "email": "theo.fidry@gmail.com"
+                }
+            ],
+            "description": "Tiny utility to get the number of CPU cores.",
+            "keywords": [
+                "CPU",
+                "core"
+            ],
+            "support": {
+                "issues": "https://github.com/theofidry/cpu-core-counter/issues",
+                "source": "https://github.com/theofidry/cpu-core-counter/tree/1.1.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/theofidry",
+                    "type": "github"
+                }
+            ],
+            "time": "2024-02-07T09:43:46+00:00"
         },
         {
             "name": "psr/container",
@@ -378,17 +550,547 @@
             "time": "2021-07-14T16:41:46+00:00"
         },
         {
+            "name": "react/cache",
+            "version": "v1.2.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/reactphp/cache.git",
+                "reference": "d47c472b64aa5608225f47965a484b75c7817d5b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/reactphp/cache/zipball/d47c472b64aa5608225f47965a484b75c7817d5b",
+                "reference": "d47c472b64aa5608225f47965a484b75c7817d5b",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.0",
+                "react/promise": "^3.0 || ^2.0 || ^1.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "React\\Cache\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Christian Lück",
+                    "email": "christian@clue.engineering",
+                    "homepage": "https://clue.engineering/"
+                },
+                {
+                    "name": "Cees-Jan Kiewiet",
+                    "email": "reactphp@ceesjankiewiet.nl",
+                    "homepage": "https://wyrihaximus.net/"
+                },
+                {
+                    "name": "Jan Sorgalla",
+                    "email": "jsorgalla@gmail.com",
+                    "homepage": "https://sorgalla.com/"
+                },
+                {
+                    "name": "Chris Boden",
+                    "email": "cboden@gmail.com",
+                    "homepage": "https://cboden.dev/"
+                }
+            ],
+            "description": "Async, Promise-based cache interface for ReactPHP",
+            "keywords": [
+                "cache",
+                "caching",
+                "promise",
+                "reactphp"
+            ],
+            "support": {
+                "issues": "https://github.com/reactphp/cache/issues",
+                "source": "https://github.com/reactphp/cache/tree/v1.2.0"
+            },
+            "funding": [
+                {
+                    "url": "https://opencollective.com/reactphp",
+                    "type": "open_collective"
+                }
+            ],
+            "time": "2022-11-30T15:59:55+00:00"
+        },
+        {
+            "name": "react/child-process",
+            "version": "v0.6.5",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/reactphp/child-process.git",
+                "reference": "e71eb1aa55f057c7a4a0d08d06b0b0a484bead43"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/reactphp/child-process/zipball/e71eb1aa55f057c7a4a0d08d06b0b0a484bead43",
+                "reference": "e71eb1aa55f057c7a4a0d08d06b0b0a484bead43",
+                "shasum": ""
+            },
+            "require": {
+                "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
+                "php": ">=5.3.0",
+                "react/event-loop": "^1.2",
+                "react/stream": "^1.2"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35",
+                "react/socket": "^1.8",
+                "sebastian/environment": "^5.0 || ^3.0 || ^2.0 || ^1.0"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "React\\ChildProcess\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Christian Lück",
+                    "email": "christian@clue.engineering",
+                    "homepage": "https://clue.engineering/"
+                },
+                {
+                    "name": "Cees-Jan Kiewiet",
+                    "email": "reactphp@ceesjankiewiet.nl",
+                    "homepage": "https://wyrihaximus.net/"
+                },
+                {
+                    "name": "Jan Sorgalla",
+                    "email": "jsorgalla@gmail.com",
+                    "homepage": "https://sorgalla.com/"
+                },
+                {
+                    "name": "Chris Boden",
+                    "email": "cboden@gmail.com",
+                    "homepage": "https://cboden.dev/"
+                }
+            ],
+            "description": "Event-driven library for executing child processes with ReactPHP.",
+            "keywords": [
+                "event-driven",
+                "process",
+                "reactphp"
+            ],
+            "support": {
+                "issues": "https://github.com/reactphp/child-process/issues",
+                "source": "https://github.com/reactphp/child-process/tree/v0.6.5"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/WyriHaximus",
+                    "type": "github"
+                },
+                {
+                    "url": "https://github.com/clue",
+                    "type": "github"
+                }
+            ],
+            "time": "2022-09-16T13:41:56+00:00"
+        },
+        {
+            "name": "react/dns",
+            "version": "v1.12.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/reactphp/dns.git",
+                "reference": "c134600642fa615b46b41237ef243daa65bb64ec"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/reactphp/dns/zipball/c134600642fa615b46b41237ef243daa65bb64ec",
+                "reference": "c134600642fa615b46b41237ef243daa65bb64ec",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.0",
+                "react/cache": "^1.0 || ^0.6 || ^0.5",
+                "react/event-loop": "^1.2",
+                "react/promise": "^3.0 || ^2.7 || ^1.2.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36",
+                "react/async": "^4 || ^3 || ^2",
+                "react/promise-timer": "^1.9"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "React\\Dns\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Christian Lück",
+                    "email": "christian@clue.engineering",
+                    "homepage": "https://clue.engineering/"
+                },
+                {
+                    "name": "Cees-Jan Kiewiet",
+                    "email": "reactphp@ceesjankiewiet.nl",
+                    "homepage": "https://wyrihaximus.net/"
+                },
+                {
+                    "name": "Jan Sorgalla",
+                    "email": "jsorgalla@gmail.com",
+                    "homepage": "https://sorgalla.com/"
+                },
+                {
+                    "name": "Chris Boden",
+                    "email": "cboden@gmail.com",
+                    "homepage": "https://cboden.dev/"
+                }
+            ],
+            "description": "Async DNS resolver for ReactPHP",
+            "keywords": [
+                "async",
+                "dns",
+                "dns-resolver",
+                "reactphp"
+            ],
+            "support": {
+                "issues": "https://github.com/reactphp/dns/issues",
+                "source": "https://github.com/reactphp/dns/tree/v1.12.0"
+            },
+            "funding": [
+                {
+                    "url": "https://opencollective.com/reactphp",
+                    "type": "open_collective"
+                }
+            ],
+            "time": "2023-11-29T12:41:06+00:00"
+        },
+        {
+            "name": "react/event-loop",
+            "version": "v1.5.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/reactphp/event-loop.git",
+                "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/reactphp/event-loop/zipball/bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354",
+                "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
+            },
+            "suggest": {
+                "ext-pcntl": "For signal handling support when using the StreamSelectLoop"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "React\\EventLoop\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Christian Lück",
+                    "email": "christian@clue.engineering",
+                    "homepage": "https://clue.engineering/"
+                },
+                {
+                    "name": "Cees-Jan Kiewiet",
+                    "email": "reactphp@ceesjankiewiet.nl",
+                    "homepage": "https://wyrihaximus.net/"
+                },
+                {
+                    "name": "Jan Sorgalla",
+                    "email": "jsorgalla@gmail.com",
+                    "homepage": "https://sorgalla.com/"
+                },
+                {
+                    "name": "Chris Boden",
+                    "email": "cboden@gmail.com",
+                    "homepage": "https://cboden.dev/"
+                }
+            ],
+            "description": "ReactPHP's core reactor event loop that libraries can use for evented I/O.",
+            "keywords": [
+                "asynchronous",
+                "event-loop"
+            ],
+            "support": {
+                "issues": "https://github.com/reactphp/event-loop/issues",
+                "source": "https://github.com/reactphp/event-loop/tree/v1.5.0"
+            },
+            "funding": [
+                {
+                    "url": "https://opencollective.com/reactphp",
+                    "type": "open_collective"
+                }
+            ],
+            "time": "2023-11-13T13:48:05+00:00"
+        },
+        {
+            "name": "react/promise",
+            "version": "v3.2.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/reactphp/promise.git",
+                "reference": "8a164643313c71354582dc850b42b33fa12a4b63"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/reactphp/promise/zipball/8a164643313c71354582dc850b42b33fa12a4b63",
+                "reference": "8a164643313c71354582dc850b42b33fa12a4b63",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1.0"
+            },
+            "require-dev": {
+                "phpstan/phpstan": "1.10.39 || 1.4.10",
+                "phpunit/phpunit": "^9.6 || ^7.5"
+            },
+            "type": "library",
+            "autoload": {
+                "files": [
+                    "src/functions_include.php"
+                ],
+                "psr-4": {
+                    "React\\Promise\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Jan Sorgalla",
+                    "email": "jsorgalla@gmail.com",
+                    "homepage": "https://sorgalla.com/"
+                },
+                {
+                    "name": "Christian Lück",
+                    "email": "christian@clue.engineering",
+                    "homepage": "https://clue.engineering/"
+                },
+                {
+                    "name": "Cees-Jan Kiewiet",
+                    "email": "reactphp@ceesjankiewiet.nl",
+                    "homepage": "https://wyrihaximus.net/"
+                },
+                {
+                    "name": "Chris Boden",
+                    "email": "cboden@gmail.com",
+                    "homepage": "https://cboden.dev/"
+                }
+            ],
+            "description": "A lightweight implementation of CommonJS Promises/A for PHP",
+            "keywords": [
+                "promise",
+                "promises"
+            ],
+            "support": {
+                "issues": "https://github.com/reactphp/promise/issues",
+                "source": "https://github.com/reactphp/promise/tree/v3.2.0"
+            },
+            "funding": [
+                {
+                    "url": "https://opencollective.com/reactphp",
+                    "type": "open_collective"
+                }
+            ],
+            "time": "2024-05-24T10:39:05+00:00"
+        },
+        {
+            "name": "react/socket",
+            "version": "v1.15.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/reactphp/socket.git",
+                "reference": "216d3aec0b87f04a40ca04f481e6af01bdd1d038"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/reactphp/socket/zipball/216d3aec0b87f04a40ca04f481e6af01bdd1d038",
+                "reference": "216d3aec0b87f04a40ca04f481e6af01bdd1d038",
+                "shasum": ""
+            },
+            "require": {
+                "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
+                "php": ">=5.3.0",
+                "react/dns": "^1.11",
+                "react/event-loop": "^1.2",
+                "react/promise": "^3 || ^2.6 || ^1.2.1",
+                "react/stream": "^1.2"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36",
+                "react/async": "^4 || ^3 || ^2",
+                "react/promise-stream": "^1.4",
+                "react/promise-timer": "^1.10"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "React\\Socket\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Christian Lück",
+                    "email": "christian@clue.engineering",
+                    "homepage": "https://clue.engineering/"
+                },
+                {
+                    "name": "Cees-Jan Kiewiet",
+                    "email": "reactphp@ceesjankiewiet.nl",
+                    "homepage": "https://wyrihaximus.net/"
+                },
+                {
+                    "name": "Jan Sorgalla",
+                    "email": "jsorgalla@gmail.com",
+                    "homepage": "https://sorgalla.com/"
+                },
+                {
+                    "name": "Chris Boden",
+                    "email": "cboden@gmail.com",
+                    "homepage": "https://cboden.dev/"
+                }
+            ],
+            "description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP",
+            "keywords": [
+                "Connection",
+                "Socket",
+                "async",
+                "reactphp",
+                "stream"
+            ],
+            "support": {
+                "issues": "https://github.com/reactphp/socket/issues",
+                "source": "https://github.com/reactphp/socket/tree/v1.15.0"
+            },
+            "funding": [
+                {
+                    "url": "https://opencollective.com/reactphp",
+                    "type": "open_collective"
+                }
+            ],
+            "time": "2023-12-15T11:02:10+00:00"
+        },
+        {
+            "name": "react/stream",
+            "version": "v1.3.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/reactphp/stream.git",
+                "reference": "6fbc9672905c7d5a885f2da2fc696f65840f4a66"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/reactphp/stream/zipball/6fbc9672905c7d5a885f2da2fc696f65840f4a66",
+                "reference": "6fbc9672905c7d5a885f2da2fc696f65840f4a66",
+                "shasum": ""
+            },
+            "require": {
+                "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
+                "php": ">=5.3.8",
+                "react/event-loop": "^1.2"
+            },
+            "require-dev": {
+                "clue/stream-filter": "~1.2",
+                "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "React\\Stream\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Christian Lück",
+                    "email": "christian@clue.engineering",
+                    "homepage": "https://clue.engineering/"
+                },
+                {
+                    "name": "Cees-Jan Kiewiet",
+                    "email": "reactphp@ceesjankiewiet.nl",
+                    "homepage": "https://wyrihaximus.net/"
+                },
+                {
+                    "name": "Jan Sorgalla",
+                    "email": "jsorgalla@gmail.com",
+                    "homepage": "https://sorgalla.com/"
+                },
+                {
+                    "name": "Chris Boden",
+                    "email": "cboden@gmail.com",
+                    "homepage": "https://cboden.dev/"
+                }
+            ],
+            "description": "Event-driven readable and writable streams for non-blocking I/O in ReactPHP",
+            "keywords": [
+                "event-driven",
+                "io",
+                "non-blocking",
+                "pipe",
+                "reactphp",
+                "readable",
+                "stream",
+                "writable"
+            ],
+            "support": {
+                "issues": "https://github.com/reactphp/stream/issues",
+                "source": "https://github.com/reactphp/stream/tree/v1.3.0"
+            },
+            "funding": [
+                {
+                    "url": "https://opencollective.com/reactphp",
+                    "type": "open_collective"
+                }
+            ],
+            "time": "2023-06-16T10:52:11+00:00"
+        },
+        {
             "name": "sebastian/diff",
-            "version": "5.1.0",
+            "version": "5.1.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/diff.git",
-                "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f"
+                "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/fbf413a49e54f6b9b17e12d900ac7f6101591b7f",
-                "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f",
+                "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e",
+                "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e",
                 "shasum": ""
             },
             "require": {
@@ -396,7 +1098,7 @@
             },
             "require-dev": {
                 "phpunit/phpunit": "^10.0",
-                "symfony/process": "^4.2 || ^5"
+                "symfony/process": "^6.4"
             },
             "type": "library",
             "extra": {
@@ -434,7 +1136,7 @@
             "support": {
                 "issues": "https://github.com/sebastianbergmann/diff/issues",
                 "security": "https://github.com/sebastianbergmann/diff/security/policy",
-                "source": "https://github.com/sebastianbergmann/diff/tree/5.1.0"
+                "source": "https://github.com/sebastianbergmann/diff/tree/5.1.1"
             },
             "funding": [
                 {
@@ -442,20 +1144,20 @@
                     "type": "github"
                 }
             ],
-            "time": "2023-12-22T10:55:06+00:00"
+            "time": "2024-03-02T07:15:17+00:00"
         },
         {
             "name": "symfony/console",
-            "version": "v6.4.4",
+            "version": "v6.4.8",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/console.git",
-                "reference": "0d9e4eb5ad413075624378f474c4167ea202de78"
+                "reference": "be5854cee0e8c7b110f00d695d11debdfa1a2a91"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/console/zipball/0d9e4eb5ad413075624378f474c4167ea202de78",
-                "reference": "0d9e4eb5ad413075624378f474c4167ea202de78",
+                "url": "https://api.github.com/repos/symfony/console/zipball/be5854cee0e8c7b110f00d695d11debdfa1a2a91",
+                "reference": "be5854cee0e8c7b110f00d695d11debdfa1a2a91",
                 "shasum": ""
             },
             "require": {
@@ -520,7 +1222,7 @@
                 "terminal"
             ],
             "support": {
-                "source": "https://github.com/symfony/console/tree/v6.4.4"
+                "source": "https://github.com/symfony/console/tree/v6.4.8"
             },
             "funding": [
                 {
@@ -536,20 +1238,20 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2024-02-22T20:27:10+00:00"
+            "time": "2024-05-31T14:49:08+00:00"
         },
         {
             "name": "symfony/deprecation-contracts",
-            "version": "v3.4.0",
+            "version": "v3.5.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/deprecation-contracts.git",
-                "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf"
+                "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf",
-                "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf",
+                "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
+                "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
                 "shasum": ""
             },
             "require": {
@@ -558,7 +1260,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-main": "3.4-dev"
+                    "dev-main": "3.5-dev"
                 },
                 "thanks": {
                     "name": "symfony/contracts",
@@ -587,7 +1289,7 @@
             "description": "A generic function and convention to trigger deprecation notices",
             "homepage": "https://symfony.com",
             "support": {
-                "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0"
+                "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0"
             },
             "funding": [
                 {
@@ -603,20 +1305,20 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2023-05-23T14:45:45+00:00"
+            "time": "2024-04-18T09:32:20+00:00"
         },
         {
             "name": "symfony/event-dispatcher",
-            "version": "v6.4.3",
+            "version": "v6.4.8",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/event-dispatcher.git",
-                "reference": "ae9d3a6f3003a6caf56acd7466d8d52378d44fef"
+                "reference": "8d7507f02b06e06815e56bb39aa0128e3806208b"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/ae9d3a6f3003a6caf56acd7466d8d52378d44fef",
-                "reference": "ae9d3a6f3003a6caf56acd7466d8d52378d44fef",
+                "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/8d7507f02b06e06815e56bb39aa0128e3806208b",
+                "reference": "8d7507f02b06e06815e56bb39aa0128e3806208b",
                 "shasum": ""
             },
             "require": {
@@ -667,7 +1369,7 @@
             "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
             "homepage": "https://symfony.com",
             "support": {
-                "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.3"
+                "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.8"
             },
             "funding": [
                 {
@@ -683,20 +1385,20 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2024-01-23T14:51:35+00:00"
+            "time": "2024-05-31T14:49:08+00:00"
         },
         {
             "name": "symfony/event-dispatcher-contracts",
-            "version": "v3.4.0",
+            "version": "v3.5.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/event-dispatcher-contracts.git",
-                "reference": "a76aed96a42d2b521153fb382d418e30d18b59df"
+                "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df",
-                "reference": "a76aed96a42d2b521153fb382d418e30d18b59df",
+                "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50",
+                "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50",
                 "shasum": ""
             },
             "require": {
@@ -706,7 +1408,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-main": "3.4-dev"
+                    "dev-main": "3.5-dev"
                 },
                 "thanks": {
                     "name": "symfony/contracts",
@@ -743,7 +1445,7 @@
                 "standards"
             ],
             "support": {
-                "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.0"
+                "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0"
             },
             "funding": [
                 {
@@ -759,20 +1461,20 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2023-05-23T14:45:45+00:00"
+            "time": "2024-04-18T09:32:20+00:00"
         },
         {
             "name": "symfony/filesystem",
-            "version": "v6.4.3",
+            "version": "v6.4.8",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/filesystem.git",
-                "reference": "7f3b1755eb49297a0827a7575d5d2b2fd11cc9fb"
+                "reference": "4d37529150e7081c51b3c5d5718c55a04a9503f3"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/filesystem/zipball/7f3b1755eb49297a0827a7575d5d2b2fd11cc9fb",
-                "reference": "7f3b1755eb49297a0827a7575d5d2b2fd11cc9fb",
+                "url": "https://api.github.com/repos/symfony/filesystem/zipball/4d37529150e7081c51b3c5d5718c55a04a9503f3",
+                "reference": "4d37529150e7081c51b3c5d5718c55a04a9503f3",
                 "shasum": ""
             },
             "require": {
@@ -780,6 +1482,9 @@
                 "symfony/polyfill-ctype": "~1.8",
                 "symfony/polyfill-mbstring": "~1.8"
             },
+            "require-dev": {
+                "symfony/process": "^5.4|^6.4|^7.0"
+            },
             "type": "library",
             "autoload": {
                 "psr-4": {
@@ -806,7 +1511,7 @@
             "description": "Provides basic utilities for the filesystem",
             "homepage": "https://symfony.com",
             "support": {
-                "source": "https://github.com/symfony/filesystem/tree/v6.4.3"
+                "source": "https://github.com/symfony/filesystem/tree/v6.4.8"
             },
             "funding": [
                 {
@@ -822,20 +1527,20 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2024-01-23T14:51:35+00:00"
+            "time": "2024-05-31T14:49:08+00:00"
         },
         {
             "name": "symfony/finder",
-            "version": "v6.4.0",
+            "version": "v6.4.8",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/finder.git",
-                "reference": "11d736e97f116ac375a81f96e662911a34cd50ce"
+                "reference": "3ef977a43883215d560a2cecb82ec8e62131471c"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/finder/zipball/11d736e97f116ac375a81f96e662911a34cd50ce",
-                "reference": "11d736e97f116ac375a81f96e662911a34cd50ce",
+                "url": "https://api.github.com/repos/symfony/finder/zipball/3ef977a43883215d560a2cecb82ec8e62131471c",
+                "reference": "3ef977a43883215d560a2cecb82ec8e62131471c",
                 "shasum": ""
             },
             "require": {
@@ -870,7 +1575,7 @@
             "description": "Finds files and directories via an intuitive fluent interface",
             "homepage": "https://symfony.com",
             "support": {
-                "source": "https://github.com/symfony/finder/tree/v6.4.0"
+                "source": "https://github.com/symfony/finder/tree/v6.4.8"
             },
             "funding": [
                 {
@@ -886,20 +1591,20 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2023-10-31T17:30:12+00:00"
+            "time": "2024-05-31T14:49:08+00:00"
         },
         {
             "name": "symfony/options-resolver",
-            "version": "v6.4.0",
+            "version": "v6.4.8",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/options-resolver.git",
-                "reference": "22301f0e7fdeaacc14318928612dee79be99860e"
+                "reference": "22ab9e9101ab18de37839074f8a1197f55590c1b"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/options-resolver/zipball/22301f0e7fdeaacc14318928612dee79be99860e",
-                "reference": "22301f0e7fdeaacc14318928612dee79be99860e",
+                "url": "https://api.github.com/repos/symfony/options-resolver/zipball/22ab9e9101ab18de37839074f8a1197f55590c1b",
+                "reference": "22ab9e9101ab18de37839074f8a1197f55590c1b",
                 "shasum": ""
             },
             "require": {
@@ -937,7 +1642,7 @@
                 "options"
             ],
             "support": {
-                "source": "https://github.com/symfony/options-resolver/tree/v6.4.0"
+                "source": "https://github.com/symfony/options-resolver/tree/v6.4.8"
             },
             "funding": [
                 {
@@ -953,7 +1658,7 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2023-08-08T10:16:24+00:00"
+            "time": "2024-05-31T14:49:08+00:00"
         },
         {
             "name": "symfony/polyfill-ctype",
@@ -1431,16 +2136,16 @@
         },
         {
             "name": "symfony/process",
-            "version": "v6.4.4",
+            "version": "v6.4.8",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/process.git",
-                "reference": "710e27879e9be3395de2b98da3f52a946039f297"
+                "reference": "8d92dd79149f29e89ee0f480254db595f6a6a2c5"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/process/zipball/710e27879e9be3395de2b98da3f52a946039f297",
-                "reference": "710e27879e9be3395de2b98da3f52a946039f297",
+                "url": "https://api.github.com/repos/symfony/process/zipball/8d92dd79149f29e89ee0f480254db595f6a6a2c5",
+                "reference": "8d92dd79149f29e89ee0f480254db595f6a6a2c5",
                 "shasum": ""
             },
             "require": {
@@ -1472,7 +2177,7 @@
             "description": "Executes commands in sub-processes",
             "homepage": "https://symfony.com",
             "support": {
-                "source": "https://github.com/symfony/process/tree/v6.4.4"
+                "source": "https://github.com/symfony/process/tree/v6.4.8"
             },
             "funding": [
                 {
@@ -1488,25 +2193,26 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2024-02-20T12:31:00+00:00"
+            "time": "2024-05-31T14:49:08+00:00"
         },
         {
             "name": "symfony/service-contracts",
-            "version": "v3.4.1",
+            "version": "v3.5.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/service-contracts.git",
-                "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0"
+                "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/service-contracts/zipball/fe07cbc8d837f60caf7018068e350cc5163681a0",
-                "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0",
+                "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
+                "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
                 "shasum": ""
             },
             "require": {
                 "php": ">=8.1",
-                "psr/container": "^1.1|^2.0"
+                "psr/container": "^1.1|^2.0",
+                "symfony/deprecation-contracts": "^2.5|^3"
             },
             "conflict": {
                 "ext-psr": "<1.1|>=2"
@@ -1514,7 +2220,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-main": "3.4-dev"
+                    "dev-main": "3.5-dev"
                 },
                 "thanks": {
                     "name": "symfony/contracts",
@@ -1554,7 +2260,7 @@
                 "standards"
             ],
             "support": {
-                "source": "https://github.com/symfony/service-contracts/tree/v3.4.1"
+                "source": "https://github.com/symfony/service-contracts/tree/v3.5.0"
             },
             "funding": [
                 {
@@ -1570,20 +2276,20 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2023-12-26T14:02:43+00:00"
+            "time": "2024-04-18T09:32:20+00:00"
         },
         {
             "name": "symfony/stopwatch",
-            "version": "v6.4.3",
+            "version": "v6.4.8",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/stopwatch.git",
-                "reference": "416596166641f1f728b0a64f5b9dd07cceb410c1"
+                "reference": "63e069eb616049632cde9674c46957819454b8aa"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/stopwatch/zipball/416596166641f1f728b0a64f5b9dd07cceb410c1",
-                "reference": "416596166641f1f728b0a64f5b9dd07cceb410c1",
+                "url": "https://api.github.com/repos/symfony/stopwatch/zipball/63e069eb616049632cde9674c46957819454b8aa",
+                "reference": "63e069eb616049632cde9674c46957819454b8aa",
                 "shasum": ""
             },
             "require": {
@@ -1616,7 +2322,7 @@
             "description": "Provides a way to profile code",
             "homepage": "https://symfony.com",
             "support": {
-                "source": "https://github.com/symfony/stopwatch/tree/v6.4.3"
+                "source": "https://github.com/symfony/stopwatch/tree/v6.4.8"
             },
             "funding": [
                 {
@@ -1632,20 +2338,20 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2024-01-23T14:35:58+00:00"
+            "time": "2024-05-31T14:49:08+00:00"
         },
         {
             "name": "symfony/string",
-            "version": "v6.4.4",
+            "version": "v6.4.8",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/string.git",
-                "reference": "4e465a95bdc32f49cf4c7f07f751b843bbd6dcd9"
+                "reference": "a147c0f826c4a1f3afb763ab8e009e37c877a44d"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/string/zipball/4e465a95bdc32f49cf4c7f07f751b843bbd6dcd9",
-                "reference": "4e465a95bdc32f49cf4c7f07f751b843bbd6dcd9",
+                "url": "https://api.github.com/repos/symfony/string/zipball/a147c0f826c4a1f3afb763ab8e009e37c877a44d",
+                "reference": "a147c0f826c4a1f3afb763ab8e009e37c877a44d",
                 "shasum": ""
             },
             "require": {
@@ -1702,7 +2408,7 @@
                 "utf8"
             ],
             "support": {
-                "source": "https://github.com/symfony/string/tree/v6.4.4"
+                "source": "https://github.com/symfony/string/tree/v6.4.8"
             },
             "funding": [
                 {
@@ -1718,22 +2424,113 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2024-02-01T13:16:41+00:00"
+            "time": "2024-05-31T14:49:08+00:00"
         }
     ],
     "packages-dev": [
         {
+            "name": "colinodell/json5",
+            "version": "v2.3.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/colinodell/json5.git",
+                "reference": "15b063f8cb5e6deb15f0cd39123264ec0d19c710"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/colinodell/json5/zipball/15b063f8cb5e6deb15f0cd39123264ec0d19c710",
+                "reference": "15b063f8cb5e6deb15f0cd39123264ec0d19c710",
+                "shasum": ""
+            },
+            "require": {
+                "ext-json": "*",
+                "ext-mbstring": "*",
+                "php": "^7.1.3|^8.0"
+            },
+            "conflict": {
+                "scrutinizer/ocular": "1.7.*"
+            },
+            "require-dev": {
+                "mikehaertl/php-shellcommand": "^1.2.5",
+                "phpstan/phpstan": "^1.4",
+                "scrutinizer/ocular": "^1.6",
+                "squizlabs/php_codesniffer": "^2.3 || ^3.0",
+                "symfony/finder": "^4.4|^5.4|^6.0",
+                "symfony/phpunit-bridge": "^5.4|^6.0"
+            },
+            "bin": [
+                "bin/json5"
+            ],
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "3.0-dev"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "src/global.php"
+                ],
+                "psr-4": {
+                    "ColinODell\\Json5\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Colin O'Dell",
+                    "email": "colinodell@gmail.com",
+                    "homepage": "https://www.colinodell.com",
+                    "role": "Developer"
+                }
+            ],
+            "description": "UTF-8 compatible JSON5 parser for PHP",
+            "homepage": "https://github.com/colinodell/json5",
+            "keywords": [
+                "JSON5",
+                "json",
+                "json5_decode",
+                "json_decode"
+            ],
+            "support": {
+                "issues": "https://github.com/colinodell/json5/issues",
+                "source": "https://github.com/colinodell/json5/tree/v2.3.0"
+            },
+            "funding": [
+                {
+                    "url": "https://www.colinodell.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://www.paypal.me/colinpodell/10.00",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/colinodell",
+                    "type": "github"
+                },
+                {
+                    "url": "https://www.patreon.com/colinodell",
+                    "type": "patreon"
+                }
+            ],
+            "time": "2022-12-27T16:44:40+00:00"
+        },
+        {
             "name": "facile-it/paraunit",
-            "version": "2.3.1",
+            "version": "2.3.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/facile-it/paraunit.git",
-                "reference": "73dfb78ade299e8262faa837ff1684feefdcc3e6"
+                "reference": "f43232db312b55f7f36f918cff4dc4e0b60b314f"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/facile-it/paraunit/zipball/73dfb78ade299e8262faa837ff1684feefdcc3e6",
-                "reference": "73dfb78ade299e8262faa837ff1684feefdcc3e6",
+                "url": "https://api.github.com/repos/facile-it/paraunit/zipball/f43232db312b55f7f36f918cff4dc4e0b60b314f",
+                "reference": "f43232db312b55f7f36f918cff4dc4e0b60b314f",
                 "shasum": ""
             },
             "require": {
@@ -1756,16 +2553,16 @@
             },
             "require-dev": {
                 "facile-it/facile-coding-standard": "^1.0",
-                "jangregor/phpstan-prophecy": "^1.0.0",
-                "phpspec/prophecy": "dev-allow-phpunit-11 as 1.19",
-                "phpspec/prophecy-phpunit": "dev-allow-phpunit-11 as 2.2.0",
+                "jangregor/phpstan-prophecy": "dev-master as 1.1.0",
+                "phpspec/prophecy": "dev-master as 1.19",
+                "phpspec/prophecy-phpunit": "dev-master#0604e27 as 2.2.1",
                 "phpstan/extension-installer": "^1.0",
-                "phpstan/phpstan": "^1.10.4",
+                "phpstan/phpstan": "1.11.3",
                 "phpstan/phpstan-phpunit": "^1.1",
                 "phpunit/php-invoker": "^4.0||^5.0",
-                "psalm/plugin-phpunit": "^0.18",
+                "psalm/plugin-phpunit": "^0.19",
                 "psalm/plugin-symfony": "^5.0",
-                "rector/rector": "^0.15",
+                "rector/rector": "1.1.0",
                 "symfony/expression-language": "^4.4||^5.0||^6.0||^7.0",
                 "symfony/phpunit-bridge": "^6.4||^7.0",
                 "vimeo/psalm": "^5.5.0"
@@ -1811,9 +2608,9 @@
             ],
             "support": {
                 "issues": "https://github.com/facile-it/paraunit/issues",
-                "source": "https://github.com/facile-it/paraunit/tree/2.3.1"
+                "source": "https://github.com/facile-it/paraunit/tree/2.3.3"
             },
-            "time": "2024-02-06T09:05:40+00:00"
+            "time": "2024-06-06T12:44:27+00:00"
         },
         {
             "name": "guzzlehttp/guzzle",
@@ -2141,17 +2938,325 @@
             "time": "2023-12-03T20:05:35+00:00"
         },
         {
+            "name": "infection/abstract-testframework-adapter",
+            "version": "0.5.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/infection/abstract-testframework-adapter.git",
+                "reference": "18925e20d15d1a5995bb85c9dc09e8751e1e069b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/infection/abstract-testframework-adapter/zipball/18925e20d15d1a5995bb85c9dc09e8751e1e069b",
+                "reference": "18925e20d15d1a5995bb85c9dc09e8751e1e069b",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.4 || ^8.0"
+            },
+            "require-dev": {
+                "ergebnis/composer-normalize": "^2.8",
+                "friendsofphp/php-cs-fixer": "^2.17",
+                "phpunit/phpunit": "^9.5"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Infection\\AbstractTestFramework\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Maks Rafalko",
+                    "email": "maks.rafalko@gmail.com"
+                }
+            ],
+            "description": "Abstract Test Framework Adapter for Infection",
+            "support": {
+                "issues": "https://github.com/infection/abstract-testframework-adapter/issues",
+                "source": "https://github.com/infection/abstract-testframework-adapter/tree/0.5.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/infection",
+                    "type": "github"
+                },
+                {
+                    "url": "https://opencollective.com/infection",
+                    "type": "open_collective"
+                }
+            ],
+            "time": "2021-08-17T18:49:12+00:00"
+        },
+        {
+            "name": "infection/extension-installer",
+            "version": "0.1.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/infection/extension-installer.git",
+                "reference": "9b351d2910b9a23ab4815542e93d541e0ca0cdcf"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/infection/extension-installer/zipball/9b351d2910b9a23ab4815542e93d541e0ca0cdcf",
+                "reference": "9b351d2910b9a23ab4815542e93d541e0ca0cdcf",
+                "shasum": ""
+            },
+            "require": {
+                "composer-plugin-api": "^1.1 || ^2.0"
+            },
+            "require-dev": {
+                "composer/composer": "^1.9 || ^2.0",
+                "friendsofphp/php-cs-fixer": "^2.18, <2.19",
+                "infection/infection": "^0.15.2",
+                "php-coveralls/php-coveralls": "^2.4",
+                "phpstan/extension-installer": "^1.0",
+                "phpstan/phpstan": "^0.12.10",
+                "phpstan/phpstan-phpunit": "^0.12.6",
+                "phpstan/phpstan-strict-rules": "^0.12.2",
+                "phpstan/phpstan-webmozart-assert": "^0.12.2",
+                "phpunit/phpunit": "^9.5",
+                "vimeo/psalm": "^4.8"
+            },
+            "type": "composer-plugin",
+            "extra": {
+                "class": "Infection\\ExtensionInstaller\\Plugin"
+            },
+            "autoload": {
+                "psr-4": {
+                    "Infection\\ExtensionInstaller\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Maks Rafalko",
+                    "email": "maks.rafalko@gmail.com"
+                }
+            ],
+            "description": "Infection Extension Installer",
+            "support": {
+                "issues": "https://github.com/infection/extension-installer/issues",
+                "source": "https://github.com/infection/extension-installer/tree/0.1.2"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/infection",
+                    "type": "github"
+                },
+                {
+                    "url": "https://opencollective.com/infection",
+                    "type": "open_collective"
+                }
+            ],
+            "time": "2021-10-20T22:08:34+00:00"
+        },
+        {
+            "name": "infection/include-interceptor",
+            "version": "0.2.5",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/infection/include-interceptor.git",
+                "reference": "0cc76d95a79d9832d74e74492b0a30139904bdf7"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/infection/include-interceptor/zipball/0cc76d95a79d9832d74e74492b0a30139904bdf7",
+                "reference": "0cc76d95a79d9832d74e74492b0a30139904bdf7",
+                "shasum": ""
+            },
+            "require-dev": {
+                "friendsofphp/php-cs-fixer": "^2.16",
+                "infection/infection": "^0.15.0",
+                "phan/phan": "^2.4 || ^3",
+                "php-coveralls/php-coveralls": "^2.2",
+                "phpstan/phpstan": "^0.12.8",
+                "phpunit/phpunit": "^8.5",
+                "vimeo/psalm": "^3.8"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Infection\\StreamWrapper\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Maks Rafalko",
+                    "email": "maks.rafalko@gmail.com"
+                }
+            ],
+            "description": "Stream Wrapper: Include Interceptor. Allows to replace included (autoloaded) file with another one.",
+            "support": {
+                "issues": "https://github.com/infection/include-interceptor/issues",
+                "source": "https://github.com/infection/include-interceptor/tree/0.2.5"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/infection",
+                    "type": "github"
+                },
+                {
+                    "url": "https://opencollective.com/infection",
+                    "type": "open_collective"
+                }
+            ],
+            "time": "2021-08-09T10:03:57+00:00"
+        },
+        {
+            "name": "infection/infection",
+            "version": "0.27.11",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/infection/infection.git",
+                "reference": "6d55979c457eef2a5d0d80446c67ca533f201961"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/infection/infection/zipball/6d55979c457eef2a5d0d80446c67ca533f201961",
+                "reference": "6d55979c457eef2a5d0d80446c67ca533f201961",
+                "shasum": ""
+            },
+            "require": {
+                "colinodell/json5": "^2.2",
+                "composer-runtime-api": "^2.0",
+                "composer/xdebug-handler": "^2.0 || ^3.0",
+                "ext-dom": "*",
+                "ext-json": "*",
+                "ext-libxml": "*",
+                "ext-mbstring": "*",
+                "fidry/cpu-core-counter": "^0.4.0 || ^0.5.0 || ^1.0",
+                "infection/abstract-testframework-adapter": "^0.5.0",
+                "infection/extension-installer": "^0.1.0",
+                "infection/include-interceptor": "^0.2.5",
+                "justinrainbow/json-schema": "^5.2.10",
+                "nikic/php-parser": "^4.15.1",
+                "ondram/ci-detector": "^4.1.0",
+                "php": "^8.1",
+                "sanmai/later": "^0.1.1",
+                "sanmai/pipeline": "^5.1 || ^6",
+                "sebastian/diff": "^3.0.2 || ^4.0 || ^5.0 || ^6.0",
+                "symfony/console": "^5.4 || ^6.0 || ^7.0",
+                "symfony/filesystem": "^5.4 || ^6.0 || ^7.0",
+                "symfony/finder": "^5.4 || ^6.0 || ^7.0",
+                "symfony/process": "^5.4 || ^6.0 || ^7.0",
+                "thecodingmachine/safe": "^2.1.2",
+                "webmozart/assert": "^1.11"
+            },
+            "conflict": {
+                "antecedent/patchwork": "<2.1.25",
+                "dg/bypass-finals": "<1.4.1",
+                "phpunit/php-code-coverage": ">9,<9.1.4 || >9.2.17,<9.2.21"
+            },
+            "require-dev": {
+                "brianium/paratest": "^6.11",
+                "ext-simplexml": "*",
+                "fidry/makefile": "^1.0",
+                "helmich/phpunit-json-assert": "^3.0",
+                "phpspec/prophecy": "^1.15",
+                "phpspec/prophecy-phpunit": "^2.0",
+                "phpstan/extension-installer": "^1.1.0",
+                "phpstan/phpstan": "^1.10.15",
+                "phpstan/phpstan-phpunit": "^1.0.0",
+                "phpstan/phpstan-strict-rules": "^1.1.0",
+                "phpstan/phpstan-webmozart-assert": "^1.0.2",
+                "phpunit/phpunit": "^9.6",
+                "rector/rector": "^0.16.0",
+                "sidz/phpstan-rules": "^0.4.0",
+                "symfony/yaml": "^5.4 || ^6.0 || ^7.0",
+                "thecodingmachine/phpstan-safe-rule": "^1.2.0"
+            },
+            "bin": [
+                "bin/infection"
+            ],
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Infection\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Maks Rafalko",
+                    "email": "maks.rafalko@gmail.com",
+                    "homepage": "https://twitter.com/maks_rafalko"
+                },
+                {
+                    "name": "Oleg Zhulnev",
+                    "homepage": "https://github.com/sidz"
+                },
+                {
+                    "name": "Gert de Pagter",
+                    "homepage": "https://github.com/BackEndTea"
+                },
+                {
+                    "name": "Théo FIDRY",
+                    "email": "theo.fidry@gmail.com",
+                    "homepage": "https://twitter.com/tfidry"
+                },
+                {
+                    "name": "Alexey Kopytko",
+                    "email": "alexey@kopytko.com",
+                    "homepage": "https://www.alexeykopytko.com"
+                },
+                {
+                    "name": "Andreas Möller",
+                    "email": "am@localheinz.com",
+                    "homepage": "https://localheinz.com"
+                }
+            ],
+            "description": "Infection is a Mutation Testing framework for PHP. The mutation adequacy score can be used to measure the effectiveness of a test set in terms of its ability to detect faults.",
+            "keywords": [
+                "coverage",
+                "mutant",
+                "mutation framework",
+                "mutation testing",
+                "testing",
+                "unit testing"
+            ],
+            "support": {
+                "issues": "https://github.com/infection/infection/issues",
+                "source": "https://github.com/infection/infection/tree/0.27.11"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/infection",
+                    "type": "github"
+                },
+                {
+                    "url": "https://opencollective.com/infection",
+                    "type": "open_collective"
+                }
+            ],
+            "time": "2024-03-20T07:48:57+00:00"
+        },
+        {
             "name": "jean85/pretty-package-versions",
-            "version": "2.0.5",
+            "version": "2.0.6",
             "source": {
                 "type": "git",
                 "url": "https://github.com/Jean85/pretty-package-versions.git",
-                "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af"
+                "reference": "f9fdd29ad8e6d024f52678b570e5593759b550b4"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/ae547e455a3d8babd07b96966b17d7fd21d9c6af",
-                "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af",
+                "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/f9fdd29ad8e6d024f52678b570e5593759b550b4",
+                "reference": "f9fdd29ad8e6d024f52678b570e5593759b550b4",
                 "shasum": ""
             },
             "require": {
@@ -2159,9 +3264,9 @@
                 "php": "^7.1|^8.0"
             },
             "require-dev": {
-                "friendsofphp/php-cs-fixer": "^2.17",
+                "friendsofphp/php-cs-fixer": "^3.2",
                 "jean85/composer-provided-replaced-stub-package": "^1.0",
-                "phpstan/phpstan": "^0.12.66",
+                "phpstan/phpstan": "^1.4",
                 "phpunit/phpunit": "^7.5|^8.5|^9.4",
                 "vimeo/psalm": "^4.3"
             },
@@ -2195,21 +3300,21 @@
             ],
             "support": {
                 "issues": "https://github.com/Jean85/pretty-package-versions/issues",
-                "source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.5"
+                "source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.6"
             },
-            "time": "2021-10-08T21:21:46+00:00"
+            "time": "2024-03-08T09:58:59+00:00"
         },
         {
             "name": "justinrainbow/json-schema",
             "version": "v5.2.13",
             "source": {
                 "type": "git",
-                "url": "https://github.com/justinrainbow/json-schema.git",
+                "url": "https://github.com/jsonrainbow/json-schema.git",
                 "reference": "fbbe7e5d79f618997bc3332a6f49246036c45793"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/fbbe7e5d79f618997bc3332a6f49246036c45793",
+                "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/fbbe7e5d79f618997bc3332a6f49246036c45793",
                 "reference": "fbbe7e5d79f618997bc3332a6f49246036c45793",
                 "shasum": ""
             },
@@ -2264,8 +3369,8 @@
                 "schema"
             ],
             "support": {
-                "issues": "https://github.com/justinrainbow/json-schema/issues",
-                "source": "https://github.com/justinrainbow/json-schema/tree/v5.2.13"
+                "issues": "https://github.com/jsonrainbow/json-schema/issues",
+                "source": "https://github.com/jsonrainbow/json-schema/tree/v5.2.13"
             },
             "time": "2023-09-26T02:20:38+00:00"
         },
@@ -2428,27 +3533,25 @@
         },
         {
             "name": "nikic/php-parser",
-            "version": "v5.0.1",
+            "version": "v4.19.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/nikic/PHP-Parser.git",
-                "reference": "2218c2252c874a4624ab2f613d86ac32d227bc69"
+                "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/2218c2252c874a4624ab2f613d86ac32d227bc69",
-                "reference": "2218c2252c874a4624ab2f613d86ac32d227bc69",
+                "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4e1b88d21c69391150ace211e9eaf05810858d0b",
+                "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b",
                 "shasum": ""
             },
             "require": {
-                "ext-ctype": "*",
-                "ext-json": "*",
                 "ext-tokenizer": "*",
-                "php": ">=7.4"
+                "php": ">=7.1"
             },
             "require-dev": {
                 "ircmaxell/php-yacc": "^0.0.7",
-                "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
+                "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
             },
             "bin": [
                 "bin/php-parse"
@@ -2456,7 +3559,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "5.0-dev"
+                    "dev-master": "4.9-dev"
                 }
             },
             "autoload": {
@@ -2480,26 +3583,105 @@
             ],
             "support": {
                 "issues": "https://github.com/nikic/PHP-Parser/issues",
-                "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.1"
+                "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.1"
+            },
+            "time": "2024-03-17T08:10:35+00:00"
+        },
+        {
+            "name": "ondram/ci-detector",
+            "version": "4.2.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/OndraM/ci-detector.git",
+                "reference": "8b0223b5ed235fd377c75fdd1bfcad05c0f168b8"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/OndraM/ci-detector/zipball/8b0223b5ed235fd377c75fdd1bfcad05c0f168b8",
+                "reference": "8b0223b5ed235fd377c75fdd1bfcad05c0f168b8",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.4 || ^8.0"
+            },
+            "require-dev": {
+                "ergebnis/composer-normalize": "^2.13.2",
+                "lmc/coding-standard": "^3.0.0",
+                "php-parallel-lint/php-parallel-lint": "^1.2",
+                "phpstan/extension-installer": "^1.1.0",
+                "phpstan/phpstan": "^1.2.0",
+                "phpstan/phpstan-phpunit": "^1.0.0",
+                "phpunit/phpunit": "^9.6.13"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "OndraM\\CiDetector\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Ondřej Machulda",
+                    "email": "ondrej.machulda@gmail.com"
+                }
+            ],
+            "description": "Detect continuous integration environment and provide unified access to properties of current build",
+            "keywords": [
+                "CircleCI",
+                "Codeship",
+                "Wercker",
+                "adapter",
+                "appveyor",
+                "aws",
+                "aws codebuild",
+                "azure",
+                "azure devops",
+                "azure pipelines",
+                "bamboo",
+                "bitbucket",
+                "buddy",
+                "ci-info",
+                "codebuild",
+                "continuous integration",
+                "continuousphp",
+                "devops",
+                "drone",
+                "github",
+                "gitlab",
+                "interface",
+                "jenkins",
+                "pipelines",
+                "sourcehut",
+                "teamcity",
+                "travis"
+            ],
+            "support": {
+                "issues": "https://github.com/OndraM/ci-detector/issues",
+                "source": "https://github.com/OndraM/ci-detector/tree/4.2.0"
             },
-            "time": "2024-02-21T19:24:10+00:00"
+            "time": "2024-03-12T13:22:30+00:00"
         },
         {
             "name": "phar-io/manifest",
-            "version": "2.0.3",
+            "version": "2.0.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/phar-io/manifest.git",
-                "reference": "97803eca37d319dfa7826cc2437fc020857acb53"
+                "reference": "54750ef60c58e43759730615a392c31c80e23176"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53",
-                "reference": "97803eca37d319dfa7826cc2437fc020857acb53",
+                "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176",
+                "reference": "54750ef60c58e43759730615a392c31c80e23176",
                 "shasum": ""
             },
             "require": {
                 "ext-dom": "*",
+                "ext-libxml": "*",
                 "ext-phar": "*",
                 "ext-xmlwriter": "*",
                 "phar-io/version": "^3.0.1",
@@ -2540,9 +3722,15 @@
             "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
             "support": {
                 "issues": "https://github.com/phar-io/manifest/issues",
-                "source": "https://github.com/phar-io/manifest/tree/2.0.3"
+                "source": "https://github.com/phar-io/manifest/tree/2.0.4"
             },
-            "time": "2021-07-20T11:28:43+00:00"
+            "funding": [
+                {
+                    "url": "https://github.com/theseer",
+                    "type": "github"
+                }
+            ],
+            "time": "2024-03-03T12:33:53+00:00"
         },
         {
             "name": "phar-io/version",
@@ -2820,16 +4008,16 @@
         },
         {
             "name": "phpunit/php-code-coverage",
-            "version": "10.1.11",
+            "version": "10.1.14",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
-                "reference": "78c3b7625965c2513ee96569a4dbb62601784145"
+                "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/78c3b7625965c2513ee96569a4dbb62601784145",
-                "reference": "78c3b7625965c2513ee96569a4dbb62601784145",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/e3f51450ebffe8e0efdf7346ae966a656f7d5e5b",
+                "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b",
                 "shasum": ""
             },
             "require": {
@@ -2886,7 +4074,7 @@
             "support": {
                 "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
                 "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
-                "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.11"
+                "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.14"
             },
             "funding": [
                 {
@@ -2894,7 +4082,7 @@
                     "type": "github"
                 }
             ],
-            "time": "2023-12-21T15:38:30+00:00"
+            "time": "2024-03-12T15:33:41+00:00"
         },
         {
             "name": "phpunit/php-file-iterator",
@@ -3141,16 +4329,16 @@
         },
         {
             "name": "phpunit/phpunit",
-            "version": "10.5.11",
+            "version": "10.5.20",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/phpunit.git",
-                "reference": "0d968f6323deb3dbfeba5bfd4929b9415eb7a9a4"
+                "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0d968f6323deb3dbfeba5bfd4929b9415eb7a9a4",
-                "reference": "0d968f6323deb3dbfeba5bfd4929b9415eb7a9a4",
+                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/547d314dc24ec1e177720d45c6263fb226cc2ae3",
+                "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3",
                 "shasum": ""
             },
             "require": {
@@ -3222,7 +4410,7 @@
             "support": {
                 "issues": "https://github.com/sebastianbergmann/phpunit/issues",
                 "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
-                "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.11"
+                "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.20"
             },
             "funding": [
                 {
@@ -3238,7 +4426,7 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2024-02-25T14:05:00+00:00"
+            "time": "2024-04-24T06:32:35+00:00"
         },
         {
             "name": "psr/http-client",
@@ -3294,20 +4482,20 @@
         },
         {
             "name": "psr/http-factory",
-            "version": "1.0.2",
+            "version": "1.1.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/php-fig/http-factory.git",
-                "reference": "e616d01114759c4c489f93b099585439f795fe35"
+                "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35",
-                "reference": "e616d01114759c4c489f93b099585439f795fe35",
+                "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
+                "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.0.0",
+                "php": ">=7.1",
                 "psr/http-message": "^1.0 || ^2.0"
             },
             "type": "library",
@@ -3331,7 +4519,7 @@
                     "homepage": "https://www.php-fig.org/"
                 }
             ],
-            "description": "Common interfaces for PSR-7 HTTP message factories",
+            "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories",
             "keywords": [
                 "factory",
                 "http",
@@ -3343,9 +4531,9 @@
                 "response"
             ],
             "support": {
-                "source": "https://github.com/php-fig/http-factory/tree/1.0.2"
+                "source": "https://github.com/php-fig/http-factory"
             },
-            "time": "2023-04-10T20:10:41+00:00"
+            "time": "2024-04-15T12:06:14+00:00"
         },
         {
             "name": "psr/http-message",
@@ -3445,17 +4633,146 @@
             "time": "2019-03-08T08:55:37+00:00"
         },
         {
+            "name": "sanmai/later",
+            "version": "0.1.4",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sanmai/later.git",
+                "reference": "e24c4304a4b1349c2a83151a692cec0c10579f60"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sanmai/later/zipball/e24c4304a4b1349c2a83151a692cec0c10579f60",
+                "reference": "e24c4304a4b1349c2a83151a692cec0c10579f60",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.4"
+            },
+            "require-dev": {
+                "ergebnis/composer-normalize": "^2.8",
+                "friendsofphp/php-cs-fixer": "^3.35.1",
+                "infection/infection": ">=0.27.6",
+                "phan/phan": ">=2",
+                "php-coveralls/php-coveralls": "^2.0",
+                "phpstan/phpstan": ">=1.4.5",
+                "phpunit/phpunit": ">=9.5 <10",
+                "vimeo/psalm": ">=2"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "0.1.x-dev"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "src/functions.php"
+                ],
+                "psr-4": {
+                    "Later\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Alexey Kopytko",
+                    "email": "alexey@kopytko.com"
+                }
+            ],
+            "description": "Later: deferred wrapper object",
+            "support": {
+                "issues": "https://github.com/sanmai/later/issues",
+                "source": "https://github.com/sanmai/later/tree/0.1.4"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sanmai",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-10-24T00:25:28+00:00"
+        },
+        {
+            "name": "sanmai/pipeline",
+            "version": "v6.10",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sanmai/pipeline.git",
+                "reference": "cbd2ea30ba8bef596b8dad1adb9c92fb2987e430"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sanmai/pipeline/zipball/cbd2ea30ba8bef596b8dad1adb9c92fb2987e430",
+                "reference": "cbd2ea30ba8bef596b8dad1adb9c92fb2987e430",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.4 || ^8.0"
+            },
+            "require-dev": {
+                "ergebnis/composer-normalize": "^2.8",
+                "friendsofphp/php-cs-fixer": "^3.17",
+                "infection/infection": ">=0.10.5",
+                "league/pipeline": "^0.3 || ^1.0",
+                "phan/phan": ">=1.1",
+                "php-coveralls/php-coveralls": "^2.4.1",
+                "phpstan/phpstan": ">=0.10",
+                "phpunit/phpunit": ">=9.4",
+                "vimeo/psalm": ">=2"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "v6.x-dev"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "src/functions.php"
+                ],
+                "psr-4": {
+                    "Pipeline\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Alexey Kopytko",
+                    "email": "alexey@kopytko.com"
+                }
+            ],
+            "description": "General-purpose collections pipeline",
+            "support": {
+                "issues": "https://github.com/sanmai/pipeline/issues",
+                "source": "https://github.com/sanmai/pipeline/tree/v6.10"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sanmai",
+                    "type": "github"
+                }
+            ],
+            "time": "2024-03-16T01:33:30+00:00"
+        },
+        {
             "name": "sebastian/cli-parser",
-            "version": "2.0.0",
+            "version": "2.0.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/cli-parser.git",
-                "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae"
+                "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/efdc130dbbbb8ef0b545a994fd811725c5282cae",
-                "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae",
+                "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/c34583b87e7b7a8055bf6c450c2c77ce32a24084",
+                "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084",
                 "shasum": ""
             },
             "require": {
@@ -3490,7 +4807,8 @@
             "homepage": "https://github.com/sebastianbergmann/cli-parser",
             "support": {
                 "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
-                "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.0"
+                "security": "https://github.com/sebastianbergmann/cli-parser/security/policy",
+                "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.1"
             },
             "funding": [
                 {
@@ -3498,7 +4816,7 @@
                     "type": "github"
                 }
             ],
-            "time": "2023-02-03T06:58:15+00:00"
+            "time": "2024-03-02T07:12:49+00:00"
         },
         {
             "name": "sebastian/code-unit",
@@ -3748,16 +5066,16 @@
         },
         {
             "name": "sebastian/environment",
-            "version": "6.0.1",
+            "version": "6.1.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/environment.git",
-                "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951"
+                "reference": "8074dbcd93529b357029f5cc5058fd3e43666984"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/43c751b41d74f96cbbd4e07b7aec9675651e2951",
-                "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951",
+                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/8074dbcd93529b357029f5cc5058fd3e43666984",
+                "reference": "8074dbcd93529b357029f5cc5058fd3e43666984",
                 "shasum": ""
             },
             "require": {
@@ -3772,7 +5090,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-main": "6.0-dev"
+                    "dev-main": "6.1-dev"
                 }
             },
             "autoload": {
@@ -3800,7 +5118,7 @@
             "support": {
                 "issues": "https://github.com/sebastianbergmann/environment/issues",
                 "security": "https://github.com/sebastianbergmann/environment/security/policy",
-                "source": "https://github.com/sebastianbergmann/environment/tree/6.0.1"
+                "source": "https://github.com/sebastianbergmann/environment/tree/6.1.0"
             },
             "funding": [
                 {
@@ -3808,20 +5126,20 @@
                     "type": "github"
                 }
             ],
-            "time": "2023-04-11T05:39:26+00:00"
+            "time": "2024-03-23T08:47:14+00:00"
         },
         {
             "name": "sebastian/exporter",
-            "version": "5.1.1",
+            "version": "5.1.2",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/exporter.git",
-                "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc"
+                "reference": "955288482d97c19a372d3f31006ab3f37da47adf"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/64f51654862e0f5e318db7e9dcc2292c63cdbddc",
-                "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc",
+                "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/955288482d97c19a372d3f31006ab3f37da47adf",
+                "reference": "955288482d97c19a372d3f31006ab3f37da47adf",
                 "shasum": ""
             },
             "require": {
@@ -3878,7 +5196,7 @@
             "support": {
                 "issues": "https://github.com/sebastianbergmann/exporter/issues",
                 "security": "https://github.com/sebastianbergmann/exporter/security/policy",
-                "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.1"
+                "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.2"
             },
             "funding": [
                 {
@@ -3886,20 +5204,20 @@
                     "type": "github"
                 }
             ],
-            "time": "2023-09-24T13:22:09+00:00"
+            "time": "2024-03-02T07:17:12+00:00"
         },
         {
             "name": "sebastian/global-state",
-            "version": "6.0.1",
+            "version": "6.0.2",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/global-state.git",
-                "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4"
+                "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/7ea9ead78f6d380d2a667864c132c2f7b83055e4",
-                "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4",
+                "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/987bafff24ecc4c9ac418cab1145b96dd6e9cbd9",
+                "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9",
                 "shasum": ""
             },
             "require": {
@@ -3933,14 +5251,14 @@
                 }
             ],
             "description": "Snapshotting of global state",
-            "homepage": "http://www.github.com/sebastianbergmann/global-state",
+            "homepage": "https://www.github.com/sebastianbergmann/global-state",
             "keywords": [
                 "global state"
             ],
             "support": {
                 "issues": "https://github.com/sebastianbergmann/global-state/issues",
                 "security": "https://github.com/sebastianbergmann/global-state/security/policy",
-                "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.1"
+                "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.2"
             },
             "funding": [
                 {
@@ -3948,7 +5266,7 @@
                     "type": "github"
                 }
             ],
-            "time": "2023-07-19T07:19:23+00:00"
+            "time": "2024-03-02T07:19:19+00:00"
         },
         {
             "name": "sebastian/lines-of-code",
@@ -4294,16 +5612,16 @@
         },
         {
             "name": "symfony/config",
-            "version": "v6.4.4",
+            "version": "v6.4.8",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/config.git",
-                "reference": "6ea4affc27f2086c9d16b92ab5429ce1e3c38047"
+                "reference": "12e7e52515ce37191b193cf3365903c4f3951e35"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/config/zipball/6ea4affc27f2086c9d16b92ab5429ce1e3c38047",
-                "reference": "6ea4affc27f2086c9d16b92ab5429ce1e3c38047",
+                "url": "https://api.github.com/repos/symfony/config/zipball/12e7e52515ce37191b193cf3365903c4f3951e35",
+                "reference": "12e7e52515ce37191b193cf3365903c4f3951e35",
                 "shasum": ""
             },
             "require": {
@@ -4349,7 +5667,7 @@
             "description": "Helps you find, load, combine, autofill and validate configuration values of any kind",
             "homepage": "https://symfony.com",
             "support": {
-                "source": "https://github.com/symfony/config/tree/v6.4.4"
+                "source": "https://github.com/symfony/config/tree/v6.4.8"
             },
             "funding": [
                 {
@@ -4365,20 +5683,20 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2024-02-26T07:52:26+00:00"
+            "time": "2024-05-31T14:49:08+00:00"
         },
         {
             "name": "symfony/dependency-injection",
-            "version": "v6.4.4",
+            "version": "v6.4.8",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/dependency-injection.git",
-                "reference": "6236e5e843cb763e9d0f74245678b994afea5363"
+                "reference": "d3b618176e8c3a9e5772151c51eba0c52a0c771c"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/6236e5e843cb763e9d0f74245678b994afea5363",
-                "reference": "6236e5e843cb763e9d0f74245678b994afea5363",
+                "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/d3b618176e8c3a9e5772151c51eba0c52a0c771c",
+                "reference": "d3b618176e8c3a9e5772151c51eba0c52a0c771c",
                 "shasum": ""
             },
             "require": {
@@ -4430,7 +5748,7 @@
             "description": "Allows you to standardize and centralize the way objects are constructed in your application",
             "homepage": "https://symfony.com",
             "support": {
-                "source": "https://github.com/symfony/dependency-injection/tree/v6.4.4"
+                "source": "https://github.com/symfony/dependency-injection/tree/v6.4.8"
             },
             "funding": [
                 {
@@ -4446,20 +5764,20 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2024-02-22T20:27:10+00:00"
+            "time": "2024-05-31T14:49:08+00:00"
         },
         {
             "name": "symfony/var-dumper",
-            "version": "v6.4.4",
+            "version": "v6.4.8",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/var-dumper.git",
-                "reference": "b439823f04c98b84d4366c79507e9da6230944b1"
+                "reference": "ad23ca4312395f0a8a8633c831ef4c4ee542ed25"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/var-dumper/zipball/b439823f04c98b84d4366c79507e9da6230944b1",
-                "reference": "b439823f04c98b84d4366c79507e9da6230944b1",
+                "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ad23ca4312395f0a8a8633c831ef4c4ee542ed25",
+                "reference": "ad23ca4312395f0a8a8633c831ef4c4ee542ed25",
                 "shasum": ""
             },
             "require": {
@@ -4515,7 +5833,7 @@
                 "dump"
             ],
             "support": {
-                "source": "https://github.com/symfony/var-dumper/tree/v6.4.4"
+                "source": "https://github.com/symfony/var-dumper/tree/v6.4.8"
             },
             "funding": [
                 {
@@ -4531,20 +5849,20 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2024-02-15T11:23:52+00:00"
+            "time": "2024-05-31T14:49:08+00:00"
         },
         {
             "name": "symfony/var-exporter",
-            "version": "v6.4.4",
+            "version": "v6.4.8",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/var-exporter.git",
-                "reference": "0bd342e24aef49fc82a21bd4eedd3e665d177e5b"
+                "reference": "792ca836f99b340f2e9ca9497c7953948c49a504"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/var-exporter/zipball/0bd342e24aef49fc82a21bd4eedd3e665d177e5b",
-                "reference": "0bd342e24aef49fc82a21bd4eedd3e665d177e5b",
+                "url": "https://api.github.com/repos/symfony/var-exporter/zipball/792ca836f99b340f2e9ca9497c7953948c49a504",
+                "reference": "792ca836f99b340f2e9ca9497c7953948c49a504",
                 "shasum": ""
             },
             "require": {
@@ -4552,6 +5870,8 @@
                 "symfony/deprecation-contracts": "^2.5|^3"
             },
             "require-dev": {
+                "symfony/property-access": "^6.4|^7.0",
+                "symfony/serializer": "^6.4|^7.0",
                 "symfony/var-dumper": "^5.4|^6.0|^7.0"
             },
             "type": "library",
@@ -4590,7 +5910,7 @@
                 "serialize"
             ],
             "support": {
-                "source": "https://github.com/symfony/var-exporter/tree/v6.4.4"
+                "source": "https://github.com/symfony/var-exporter/tree/v6.4.8"
             },
             "funding": [
                 {
@@ -4606,20 +5926,20 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2024-02-26T08:37:45+00:00"
+            "time": "2024-05-31T14:49:08+00:00"
         },
         {
             "name": "symfony/yaml",
-            "version": "v6.4.3",
+            "version": "v6.4.8",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/yaml.git",
-                "reference": "d75715985f0f94f978e3a8fa42533e10db921b90"
+                "reference": "52903de178d542850f6f341ba92995d3d63e60c9"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/yaml/zipball/d75715985f0f94f978e3a8fa42533e10db921b90",
-                "reference": "d75715985f0f94f978e3a8fa42533e10db921b90",
+                "url": "https://api.github.com/repos/symfony/yaml/zipball/52903de178d542850f6f341ba92995d3d63e60c9",
+                "reference": "52903de178d542850f6f341ba92995d3d63e60c9",
                 "shasum": ""
             },
             "require": {
@@ -4662,7 +5982,7 @@
             "description": "Loads and dumps YAML files",
             "homepage": "https://symfony.com",
             "support": {
-                "source": "https://github.com/symfony/yaml/tree/v6.4.3"
+                "source": "https://github.com/symfony/yaml/tree/v6.4.8"
             },
             "funding": [
                 {
@@ -4678,20 +5998,159 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2024-01-23T14:51:35+00:00"
+            "time": "2024-05-31T14:49:08+00:00"
+        },
+        {
+            "name": "thecodingmachine/safe",
+            "version": "v2.5.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/thecodingmachine/safe.git",
+                "reference": "3115ecd6b4391662b4931daac4eba6b07a2ac1f0"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/3115ecd6b4391662b4931daac4eba6b07a2ac1f0",
+                "reference": "3115ecd6b4391662b4931daac4eba6b07a2ac1f0",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^8.0"
+            },
+            "require-dev": {
+                "phpstan/phpstan": "^1.5",
+                "phpunit/phpunit": "^9.5",
+                "squizlabs/php_codesniffer": "^3.2",
+                "thecodingmachine/phpstan-strict-rules": "^1.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.2.x-dev"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "deprecated/apc.php",
+                    "deprecated/array.php",
+                    "deprecated/datetime.php",
+                    "deprecated/libevent.php",
+                    "deprecated/misc.php",
+                    "deprecated/password.php",
+                    "deprecated/mssql.php",
+                    "deprecated/stats.php",
+                    "deprecated/strings.php",
+                    "lib/special_cases.php",
+                    "deprecated/mysqli.php",
+                    "generated/apache.php",
+                    "generated/apcu.php",
+                    "generated/array.php",
+                    "generated/bzip2.php",
+                    "generated/calendar.php",
+                    "generated/classobj.php",
+                    "generated/com.php",
+                    "generated/cubrid.php",
+                    "generated/curl.php",
+                    "generated/datetime.php",
+                    "generated/dir.php",
+                    "generated/eio.php",
+                    "generated/errorfunc.php",
+                    "generated/exec.php",
+                    "generated/fileinfo.php",
+                    "generated/filesystem.php",
+                    "generated/filter.php",
+                    "generated/fpm.php",
+                    "generated/ftp.php",
+                    "generated/funchand.php",
+                    "generated/gettext.php",
+                    "generated/gmp.php",
+                    "generated/gnupg.php",
+                    "generated/hash.php",
+                    "generated/ibase.php",
+                    "generated/ibmDb2.php",
+                    "generated/iconv.php",
+                    "generated/image.php",
+                    "generated/imap.php",
+                    "generated/info.php",
+                    "generated/inotify.php",
+                    "generated/json.php",
+                    "generated/ldap.php",
+                    "generated/libxml.php",
+                    "generated/lzf.php",
+                    "generated/mailparse.php",
+                    "generated/mbstring.php",
+                    "generated/misc.php",
+                    "generated/mysql.php",
+                    "generated/network.php",
+                    "generated/oci8.php",
+                    "generated/opcache.php",
+                    "generated/openssl.php",
+                    "generated/outcontrol.php",
+                    "generated/pcntl.php",
+                    "generated/pcre.php",
+                    "generated/pgsql.php",
+                    "generated/posix.php",
+                    "generated/ps.php",
+                    "generated/pspell.php",
+                    "generated/readline.php",
+                    "generated/rpminfo.php",
+                    "generated/rrd.php",
+                    "generated/sem.php",
+                    "generated/session.php",
+                    "generated/shmop.php",
+                    "generated/sockets.php",
+                    "generated/sodium.php",
+                    "generated/solr.php",
+                    "generated/spl.php",
+                    "generated/sqlsrv.php",
+                    "generated/ssdeep.php",
+                    "generated/ssh2.php",
+                    "generated/stream.php",
+                    "generated/strings.php",
+                    "generated/swoole.php",
+                    "generated/uodbc.php",
+                    "generated/uopz.php",
+                    "generated/url.php",
+                    "generated/var.php",
+                    "generated/xdiff.php",
+                    "generated/xml.php",
+                    "generated/xmlrpc.php",
+                    "generated/yaml.php",
+                    "generated/yaz.php",
+                    "generated/zip.php",
+                    "generated/zlib.php"
+                ],
+                "classmap": [
+                    "lib/DateTime.php",
+                    "lib/DateTimeImmutable.php",
+                    "lib/Exceptions/",
+                    "deprecated/Exceptions/",
+                    "generated/Exceptions/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "description": "PHP core functions that throw exceptions instead of returning FALSE on error",
+            "support": {
+                "issues": "https://github.com/thecodingmachine/safe/issues",
+                "source": "https://github.com/thecodingmachine/safe/tree/v2.5.0"
+            },
+            "time": "2023-04-05T11:54:14+00:00"
         },
         {
             "name": "theseer/tokenizer",
-            "version": "1.2.2",
+            "version": "1.2.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/theseer/tokenizer.git",
-                "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96"
+                "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
-                "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
+                "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+                "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
                 "shasum": ""
             },
             "require": {
@@ -4720,7 +6179,7 @@
             "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
             "support": {
                 "issues": "https://github.com/theseer/tokenizer/issues",
-                "source": "https://github.com/theseer/tokenizer/tree/1.2.2"
+                "source": "https://github.com/theseer/tokenizer/tree/1.2.3"
             },
             "funding": [
                 {
@@ -4728,7 +6187,65 @@
                     "type": "github"
                 }
             ],
-            "time": "2023-11-20T00:12:19+00:00"
+            "time": "2024-03-03T12:36:25+00:00"
+        },
+        {
+            "name": "webmozart/assert",
+            "version": "1.11.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/webmozarts/assert.git",
+                "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991",
+                "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991",
+                "shasum": ""
+            },
+            "require": {
+                "ext-ctype": "*",
+                "php": "^7.2 || ^8.0"
+            },
+            "conflict": {
+                "phpstan/phpstan": "<0.12.20",
+                "vimeo/psalm": "<4.6.1 || 4.6.2"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^8.5.13"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.10-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Webmozart\\Assert\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Bernhard Schussek",
+                    "email": "bschussek@gmail.com"
+                }
+            ],
+            "description": "Assertions to validate method input/output with nice error messages.",
+            "keywords": [
+                "assert",
+                "check",
+                "validate"
+            ],
+            "support": {
+                "issues": "https://github.com/webmozarts/assert/issues",
+                "source": "https://github.com/webmozarts/assert/tree/1.11.0"
+            },
+            "time": "2022-06-03T18:03:27+00:00"
         }
     ],
     "aliases": [],
diff --git a/pkgs/development/php-packages/php-cs-fixer/default.nix b/pkgs/development/php-packages/php-cs-fixer/default.nix
index 92f61c96166c3..ffb58ccaccf21 100644
--- a/pkgs/development/php-packages/php-cs-fixer/default.nix
+++ b/pkgs/development/php-packages/php-cs-fixer/default.nix
@@ -6,23 +6,23 @@
 
 php.buildComposerProject (finalAttrs: {
   pname = "php-cs-fixer";
-  version = "3.51.0";
+  version = "3.58.1";
 
   src = fetchFromGitHub {
     owner = "PHP-CS-Fixer";
     repo = "PHP-CS-Fixer";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-49MzEEHFbr4jRYALdFqcQAOoQ3btoPkI9bpYJSxxnTo=";
+    hash = "sha256-MBNFTHhApANDeHY0tTKbIP2EfVDH7mxwA42PKihzPug=";
   };
 
   # Missing `composer.lock` from the repository.
   # Issue open at https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7590
   composerLock = ./composer.lock;
-  vendorHash = "sha256-b0vrjv0dqQTD3nuo6nqpUtF4JkD8mj4OnNKKqp6hcvU=";
+  vendorHash = "sha256-dryqtCUr2xkZgDRLKpQjyEpLGz8WiHtLY4fF/pCR10w=";
 
   meta = {
     changelog = "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/releases/tag/v${finalAttrs.version}";
-    description = "A tool to automatically fix PHP coding standards issues";
+    description = "Tool to automatically fix PHP coding standards issues";
     homepage = "https://cs.symfony.com/";
     license = lib.licenses.mit;
     mainProgram = "php-cs-fixer";
diff --git a/pkgs/development/php-packages/php-parallel-lint/composer.lock b/pkgs/development/php-packages/php-parallel-lint/composer.lock
index c5403d92b62d4..0577f35d1ed90 100644
--- a/pkgs/development/php-packages/php-parallel-lint/composer.lock
+++ b/pkgs/development/php-packages/php-parallel-lint/composer.lock
@@ -4,349 +4,39 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "22c96862ce41ff63a0e4cc20b7aa9dd0",
+    "content-hash": "6af3d2163a5c70028dd91fd6716df630",
     "packages": [],
     "packages-dev": [
         {
-            "name": "dealerdirect/phpcodesniffer-composer-installer",
-            "version": "v0.7.2",
+            "name": "nette/tester",
+            "version": "v2.5.2",
             "source": {
                 "type": "git",
-                "url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git",
-                "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db"
+                "url": "https://github.com/nette/tester.git",
+                "reference": "328d7b64579cdbc82e0e01d92ea9c58b9cf0a327"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db",
-                "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db",
+                "url": "https://api.github.com/repos/nette/tester/zipball/328d7b64579cdbc82e0e01d92ea9c58b9cf0a327",
+                "reference": "328d7b64579cdbc82e0e01d92ea9c58b9cf0a327",
                 "shasum": ""
             },
             "require": {
-                "composer-plugin-api": "^1.0 || ^2.0",
-                "php": ">=5.3",
-                "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0"
+                "php": ">=8.0 <8.4"
             },
             "require-dev": {
-                "composer/composer": "*",
-                "php-parallel-lint/php-parallel-lint": "^1.3.1",
-                "phpcompatibility/php-compatibility": "^9.0"
-            },
-            "type": "composer-plugin",
-            "extra": {
-                "class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin"
-            },
-            "autoload": {
-                "psr-4": {
-                    "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Franck Nijhof",
-                    "email": "franck.nijhof@dealerdirect.com",
-                    "homepage": "http://www.frenck.nl",
-                    "role": "Developer / IT Manager"
-                },
-                {
-                    "name": "Contributors",
-                    "homepage": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer/graphs/contributors"
-                }
-            ],
-            "description": "PHP_CodeSniffer Standards Composer Installer Plugin",
-            "homepage": "http://www.dealerdirect.com",
-            "keywords": [
-                "PHPCodeSniffer",
-                "PHP_CodeSniffer",
-                "code quality",
-                "codesniffer",
-                "composer",
-                "installer",
-                "phpcbf",
-                "phpcs",
-                "plugin",
-                "qa",
-                "quality",
-                "standard",
-                "standards",
-                "style guide",
-                "stylecheck",
-                "tests"
-            ],
-            "support": {
-                "issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues",
-                "source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer"
-            },
-            "time": "2022-02-04T12:51:07+00:00"
-        },
-        {
-            "name": "doctrine/instantiator",
-            "version": "2.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/doctrine/instantiator.git",
-                "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
-                "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^8.1"
-            },
-            "require-dev": {
-                "doctrine/coding-standard": "^11",
-                "ext-pdo": "*",
-                "ext-phar": "*",
-                "phpbench/phpbench": "^1.2",
-                "phpstan/phpstan": "^1.9.4",
-                "phpstan/phpstan-phpunit": "^1.3",
-                "phpunit/phpunit": "^9.5.27",
-                "vimeo/psalm": "^5.4"
-            },
-            "type": "library",
-            "autoload": {
-                "psr-4": {
-                    "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Marco Pivetta",
-                    "email": "ocramius@gmail.com",
-                    "homepage": "https://ocramius.github.io/"
-                }
-            ],
-            "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
-            "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
-            "keywords": [
-                "constructor",
-                "instantiate"
-            ],
-            "support": {
-                "issues": "https://github.com/doctrine/instantiator/issues",
-                "source": "https://github.com/doctrine/instantiator/tree/2.0.0"
-            },
-            "funding": [
-                {
-                    "url": "https://www.doctrine-project.org/sponsorship.html",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://www.patreon.com/phpdoctrine",
-                    "type": "patreon"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
-                    "type": "tidelift"
-                }
-            ],
-            "time": "2022-12-30T00:23:10+00:00"
-        },
-        {
-            "name": "myclabs/deep-copy",
-            "version": "1.11.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/myclabs/DeepCopy.git",
-                "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
-                "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.1 || ^8.0"
-            },
-            "conflict": {
-                "doctrine/collections": "<1.6.8",
-                "doctrine/common": "<2.13.3 || >=3,<3.2.2"
-            },
-            "require-dev": {
-                "doctrine/collections": "^1.6.8",
-                "doctrine/common": "^2.13.3 || ^3.2.2",
-                "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
-            },
-            "type": "library",
-            "autoload": {
-                "files": [
-                    "src/DeepCopy/deep_copy.php"
-                ],
-                "psr-4": {
-                    "DeepCopy\\": "src/DeepCopy/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "Create deep copies (clones) of your objects",
-            "keywords": [
-                "clone",
-                "copy",
-                "duplicate",
-                "object",
-                "object graph"
-            ],
-            "support": {
-                "issues": "https://github.com/myclabs/DeepCopy/issues",
-                "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1"
-            },
-            "funding": [
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
-                    "type": "tidelift"
-                }
-            ],
-            "time": "2023-03-08T13:26:56+00:00"
-        },
-        {
-            "name": "nikic/php-parser",
-            "version": "v5.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/nikic/PHP-Parser.git",
-                "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4a21235f7e56e713259a6f76bf4b5ea08502b9dc",
-                "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc",
-                "shasum": ""
-            },
-            "require": {
-                "ext-ctype": "*",
-                "ext-json": "*",
-                "ext-tokenizer": "*",
-                "php": ">=7.4"
-            },
-            "require-dev": {
-                "ircmaxell/php-yacc": "^0.0.7",
-                "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
+                "ext-simplexml": "*",
+                "phpstan/phpstan": "^1.0"
             },
             "bin": [
-                "bin/php-parse"
-            ],
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "5.0-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "PhpParser\\": "lib/PhpParser"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
+                "src/tester"
             ],
-            "authors": [
-                {
-                    "name": "Nikita Popov"
-                }
-            ],
-            "description": "A PHP parser written in PHP",
-            "keywords": [
-                "parser",
-                "php"
-            ],
-            "support": {
-                "issues": "https://github.com/nikic/PHP-Parser/issues",
-                "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.0"
-            },
-            "time": "2024-01-07T17:17:35+00:00"
-        },
-        {
-            "name": "phar-io/manifest",
-            "version": "2.0.3",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/phar-io/manifest.git",
-                "reference": "97803eca37d319dfa7826cc2437fc020857acb53"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53",
-                "reference": "97803eca37d319dfa7826cc2437fc020857acb53",
-                "shasum": ""
-            },
-            "require": {
-                "ext-dom": "*",
-                "ext-phar": "*",
-                "ext-xmlwriter": "*",
-                "phar-io/version": "^3.0.1",
-                "php": "^7.2 || ^8.0"
-            },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "2.0.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Arne Blankerts",
-                    "email": "arne@blankerts.de",
-                    "role": "Developer"
-                },
-                {
-                    "name": "Sebastian Heuer",
-                    "email": "sebastian@phpeople.de",
-                    "role": "Developer"
-                },
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "Developer"
+                    "dev-master": "2.5-dev"
                 }
-            ],
-            "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
-            "support": {
-                "issues": "https://github.com/phar-io/manifest/issues",
-                "source": "https://github.com/phar-io/manifest/tree/2.0.3"
-            },
-            "time": "2021-07-20T11:28:43+00:00"
-        },
-        {
-            "name": "phar-io/version",
-            "version": "3.2.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/phar-io/version.git",
-                "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
             },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
-                "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.2 || ^8.0"
-            },
-            "type": "library",
             "autoload": {
                 "classmap": [
                     "src/"
@@ -354,72 +44,43 @@
             },
             "notification-url": "https://packagist.org/downloads/",
             "license": [
-                "BSD-3-Clause"
+                "BSD-3-Clause",
+                "GPL-2.0-only",
+                "GPL-3.0-only"
             ],
             "authors": [
                 {
-                    "name": "Arne Blankerts",
-                    "email": "arne@blankerts.de",
-                    "role": "Developer"
+                    "name": "David Grudl",
+                    "homepage": "https://davidgrudl.com"
                 },
                 {
-                    "name": "Sebastian Heuer",
-                    "email": "sebastian@phpeople.de",
-                    "role": "Developer"
+                    "name": "Miloslav Hůla",
+                    "homepage": "https://github.com/milo"
                 },
                 {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "Developer"
+                    "name": "Nette Community",
+                    "homepage": "https://nette.org/contributors"
                 }
             ],
-            "description": "Library for handling version information and constraints",
-            "support": {
-                "issues": "https://github.com/phar-io/version/issues",
-                "source": "https://github.com/phar-io/version/tree/3.2.1"
-            },
-            "time": "2022-02-21T01:04:05+00:00"
-        },
-        {
-            "name": "php-parallel-lint/php-code-style",
-            "version": "v2.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/php-parallel-lint/PHP-Code-Style.git",
-                "reference": "ffc9e7dd5ea867f7bf2983d922ba6f6697f1ee9b"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/php-parallel-lint/PHP-Code-Style/zipball/ffc9e7dd5ea867f7bf2983d922ba6f6697f1ee9b",
-                "reference": "ffc9e7dd5ea867f7bf2983d922ba6f6697f1ee9b",
-                "shasum": ""
-            },
-            "require": {
-                "dealerdirect/phpcodesniffer-composer-installer": "^0.7",
-                "phpcompatibility/php-compatibility": "^9.3",
-                "squizlabs/php_codesniffer": "^3.6.1"
-            },
-            "replace": {
-                "jakub-onderka/php-code-style": "*"
-            },
-            "type": "phpcodesniffer-standard",
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Jakub Onderka",
-                    "email": "jakub.onderka@gmail.com",
-                    "homepage": "http://www.acci.cz"
-                }
+            "description": "Nette Tester: enjoyable unit testing in PHP with code coverage reporter. 🍏🍏🍎🍏",
+            "homepage": "https://tester.nette.org",
+            "keywords": [
+                "Xdebug",
+                "assertions",
+                "clover",
+                "code coverage",
+                "nette",
+                "pcov",
+                "phpdbg",
+                "phpunit",
+                "testing",
+                "unit"
             ],
-            "description": "PHP_CodeSniffer rules for projects in the PHP Parallel Lint organisation",
             "support": {
-                "issues": "https://github.com/php-parallel-lint/PHP-Code-Style/issues",
-                "source": "https://github.com/php-parallel-lint/PHP-Code-Style/tree/v2.0"
+                "issues": "https://github.com/nette/tester/issues",
+                "source": "https://github.com/nette/tester/tree/v2.5.2"
             },
-            "time": "2021-12-18T02:45:56+00:00"
+            "time": "2024-01-08T11:41:26+00:00"
         },
         {
             "name": "php-parallel-lint/php-console-color",
@@ -523,1465 +184,17 @@
             "time": "2022-02-18T08:23:19+00:00"
         },
         {
-            "name": "phpcompatibility/php-compatibility",
-            "version": "9.3.5",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/PHPCompatibility/PHPCompatibility.git",
-                "reference": "9fb324479acf6f39452e0655d2429cc0d3914243"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/9fb324479acf6f39452e0655d2429cc0d3914243",
-                "reference": "9fb324479acf6f39452e0655d2429cc0d3914243",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3",
-                "squizlabs/php_codesniffer": "^2.3 || ^3.0.2"
-            },
-            "conflict": {
-                "squizlabs/php_codesniffer": "2.6.2"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.5 || ^5.0 || ^6.0 || ^7.0"
-            },
-            "suggest": {
-                "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically.",
-                "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
-            },
-            "type": "phpcodesniffer-standard",
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "LGPL-3.0-or-later"
-            ],
-            "authors": [
-                {
-                    "name": "Wim Godden",
-                    "homepage": "https://github.com/wimg",
-                    "role": "lead"
-                },
-                {
-                    "name": "Juliette Reinders Folmer",
-                    "homepage": "https://github.com/jrfnl",
-                    "role": "lead"
-                },
-                {
-                    "name": "Contributors",
-                    "homepage": "https://github.com/PHPCompatibility/PHPCompatibility/graphs/contributors"
-                }
-            ],
-            "description": "A set of sniffs for PHP_CodeSniffer that checks for PHP cross-version compatibility.",
-            "homepage": "http://techblog.wimgodden.be/tag/codesniffer/",
-            "keywords": [
-                "compatibility",
-                "phpcs",
-                "standards"
-            ],
-            "support": {
-                "issues": "https://github.com/PHPCompatibility/PHPCompatibility/issues",
-                "source": "https://github.com/PHPCompatibility/PHPCompatibility"
-            },
-            "time": "2019-12-27T09:44:58+00:00"
-        },
-        {
-            "name": "phpunit/php-code-coverage",
-            "version": "9.2.30",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
-                "reference": "ca2bd87d2f9215904682a9cb9bb37dda98e76089"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ca2bd87d2f9215904682a9cb9bb37dda98e76089",
-                "reference": "ca2bd87d2f9215904682a9cb9bb37dda98e76089",
-                "shasum": ""
-            },
-            "require": {
-                "ext-dom": "*",
-                "ext-libxml": "*",
-                "ext-xmlwriter": "*",
-                "nikic/php-parser": "^4.18 || ^5.0",
-                "php": ">=7.3",
-                "phpunit/php-file-iterator": "^3.0.3",
-                "phpunit/php-text-template": "^2.0.2",
-                "sebastian/code-unit-reverse-lookup": "^2.0.2",
-                "sebastian/complexity": "^2.0",
-                "sebastian/environment": "^5.1.2",
-                "sebastian/lines-of-code": "^1.0.3",
-                "sebastian/version": "^3.0.1",
-                "theseer/tokenizer": "^1.2.0"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "suggest": {
-                "ext-pcov": "PHP extension that provides line coverage",
-                "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "9.2-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
-            "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
-            "keywords": [
-                "coverage",
-                "testing",
-                "xunit"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
-                "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
-                "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.30"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2023-12-22T06:47:57+00:00"
-        },
-        {
-            "name": "phpunit/php-file-iterator",
-            "version": "3.0.6",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
-                "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
-                "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "FilterIterator implementation that filters files based on a list of suffixes.",
-            "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
-            "keywords": [
-                "filesystem",
-                "iterator"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
-                "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2021-12-02T12:48:52+00:00"
-        },
-        {
-            "name": "phpunit/php-invoker",
-            "version": "3.1.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-invoker.git",
-                "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
-                "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "ext-pcntl": "*",
-                "phpunit/phpunit": "^9.3"
-            },
-            "suggest": {
-                "ext-pcntl": "*"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Invoke callables with a timeout",
-            "homepage": "https://github.com/sebastianbergmann/php-invoker/",
-            "keywords": [
-                "process"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
-                "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-09-28T05:58:55+00:00"
-        },
-        {
-            "name": "phpunit/php-text-template",
-            "version": "2.0.4",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-text-template.git",
-                "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
-                "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Simple template engine.",
-            "homepage": "https://github.com/sebastianbergmann/php-text-template/",
-            "keywords": [
-                "template"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
-                "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-10-26T05:33:50+00:00"
-        },
-        {
-            "name": "phpunit/php-timer",
-            "version": "5.0.3",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-timer.git",
-                "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
-                "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "5.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Utility class for timing",
-            "homepage": "https://github.com/sebastianbergmann/php-timer/",
-            "keywords": [
-                "timer"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/php-timer/issues",
-                "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-10-26T13:16:10+00:00"
-        },
-        {
-            "name": "phpunit/phpunit",
-            "version": "9.6.16",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/phpunit.git",
-                "reference": "3767b2c56ce02d01e3491046f33466a1ae60a37f"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3767b2c56ce02d01e3491046f33466a1ae60a37f",
-                "reference": "3767b2c56ce02d01e3491046f33466a1ae60a37f",
-                "shasum": ""
-            },
-            "require": {
-                "doctrine/instantiator": "^1.3.1 || ^2",
-                "ext-dom": "*",
-                "ext-json": "*",
-                "ext-libxml": "*",
-                "ext-mbstring": "*",
-                "ext-xml": "*",
-                "ext-xmlwriter": "*",
-                "myclabs/deep-copy": "^1.10.1",
-                "phar-io/manifest": "^2.0.3",
-                "phar-io/version": "^3.0.2",
-                "php": ">=7.3",
-                "phpunit/php-code-coverage": "^9.2.28",
-                "phpunit/php-file-iterator": "^3.0.5",
-                "phpunit/php-invoker": "^3.1.1",
-                "phpunit/php-text-template": "^2.0.3",
-                "phpunit/php-timer": "^5.0.2",
-                "sebastian/cli-parser": "^1.0.1",
-                "sebastian/code-unit": "^1.0.6",
-                "sebastian/comparator": "^4.0.8",
-                "sebastian/diff": "^4.0.3",
-                "sebastian/environment": "^5.1.3",
-                "sebastian/exporter": "^4.0.5",
-                "sebastian/global-state": "^5.0.1",
-                "sebastian/object-enumerator": "^4.0.3",
-                "sebastian/resource-operations": "^3.0.3",
-                "sebastian/type": "^3.2",
-                "sebastian/version": "^3.0.2"
-            },
-            "suggest": {
-                "ext-soap": "To be able to generate mocks based on WSDL files",
-                "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
-            },
-            "bin": [
-                "phpunit"
-            ],
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "9.6-dev"
-                }
-            },
-            "autoload": {
-                "files": [
-                    "src/Framework/Assert/Functions.php"
-                ],
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "The PHP Unit Testing framework.",
-            "homepage": "https://phpunit.de/",
-            "keywords": [
-                "phpunit",
-                "testing",
-                "xunit"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/phpunit/issues",
-                "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
-                "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.16"
-            },
-            "funding": [
-                {
-                    "url": "https://phpunit.de/sponsors.html",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
-                    "type": "tidelift"
-                }
-            ],
-            "time": "2024-01-19T07:03:14+00:00"
-        },
-        {
-            "name": "sebastian/cli-parser",
-            "version": "1.0.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/cli-parser.git",
-                "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2",
-                "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Library for parsing CLI options",
-            "homepage": "https://github.com/sebastianbergmann/cli-parser",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
-                "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-09-28T06:08:49+00:00"
-        },
-        {
-            "name": "sebastian/code-unit",
-            "version": "1.0.8",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/code-unit.git",
-                "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120",
-                "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Collection of value objects that represent the PHP code units",
-            "homepage": "https://github.com/sebastianbergmann/code-unit",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/code-unit/issues",
-                "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-10-26T13:08:54+00:00"
-        },
-        {
-            "name": "sebastian/code-unit-reverse-lookup",
-            "version": "2.0.3",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
-                "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
-                "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Looks up which function or method a line of code belongs to",
-            "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
-                "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-09-28T05:30:19+00:00"
-        },
-        {
-            "name": "sebastian/comparator",
-            "version": "4.0.8",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/comparator.git",
-                "reference": "fa0f136dd2334583309d32b62544682ee972b51a"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a",
-                "reference": "fa0f136dd2334583309d32b62544682ee972b51a",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3",
-                "sebastian/diff": "^4.0",
-                "sebastian/exporter": "^4.0"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "4.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                },
-                {
-                    "name": "Jeff Welch",
-                    "email": "whatthejeff@gmail.com"
-                },
-                {
-                    "name": "Volker Dusch",
-                    "email": "github@wallbash.com"
-                },
-                {
-                    "name": "Bernhard Schussek",
-                    "email": "bschussek@2bepublished.at"
-                }
-            ],
-            "description": "Provides the functionality to compare PHP values for equality",
-            "homepage": "https://github.com/sebastianbergmann/comparator",
-            "keywords": [
-                "comparator",
-                "compare",
-                "equality"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/comparator/issues",
-                "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2022-09-14T12:41:17+00:00"
-        },
-        {
-            "name": "sebastian/complexity",
-            "version": "2.0.3",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/complexity.git",
-                "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a",
-                "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a",
-                "shasum": ""
-            },
-            "require": {
-                "nikic/php-parser": "^4.18 || ^5.0",
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Library for calculating the complexity of PHP code units",
-            "homepage": "https://github.com/sebastianbergmann/complexity",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/complexity/issues",
-                "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2023-12-22T06:19:30+00:00"
-        },
-        {
-            "name": "sebastian/diff",
-            "version": "4.0.5",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/diff.git",
-                "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131",
-                "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3",
-                "symfony/process": "^4.2 || ^5"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "4.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                },
-                {
-                    "name": "Kore Nordmann",
-                    "email": "mail@kore-nordmann.de"
-                }
-            ],
-            "description": "Diff implementation",
-            "homepage": "https://github.com/sebastianbergmann/diff",
-            "keywords": [
-                "diff",
-                "udiff",
-                "unidiff",
-                "unified diff"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/diff/issues",
-                "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2023-05-07T05:35:17+00:00"
-        },
-        {
-            "name": "sebastian/environment",
-            "version": "5.1.5",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/environment.git",
-                "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
-                "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "suggest": {
-                "ext-posix": "*"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "5.1-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Provides functionality to handle HHVM/PHP environments",
-            "homepage": "http://www.github.com/sebastianbergmann/environment",
-            "keywords": [
-                "Xdebug",
-                "environment",
-                "hhvm"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/environment/issues",
-                "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2023-02-03T06:03:51+00:00"
-        },
-        {
-            "name": "sebastian/exporter",
-            "version": "4.0.5",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/exporter.git",
-                "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
-                "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3",
-                "sebastian/recursion-context": "^4.0"
-            },
-            "require-dev": {
-                "ext-mbstring": "*",
-                "phpunit/phpunit": "^9.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "4.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                },
-                {
-                    "name": "Jeff Welch",
-                    "email": "whatthejeff@gmail.com"
-                },
-                {
-                    "name": "Volker Dusch",
-                    "email": "github@wallbash.com"
-                },
-                {
-                    "name": "Adam Harvey",
-                    "email": "aharvey@php.net"
-                },
-                {
-                    "name": "Bernhard Schussek",
-                    "email": "bschussek@gmail.com"
-                }
-            ],
-            "description": "Provides the functionality to export PHP variables for visualization",
-            "homepage": "https://www.github.com/sebastianbergmann/exporter",
-            "keywords": [
-                "export",
-                "exporter"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/exporter/issues",
-                "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2022-09-14T06:03:37+00:00"
-        },
-        {
-            "name": "sebastian/global-state",
-            "version": "5.0.6",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/global-state.git",
-                "reference": "bde739e7565280bda77be70044ac1047bc007e34"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34",
-                "reference": "bde739e7565280bda77be70044ac1047bc007e34",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3",
-                "sebastian/object-reflector": "^2.0",
-                "sebastian/recursion-context": "^4.0"
-            },
-            "require-dev": {
-                "ext-dom": "*",
-                "phpunit/phpunit": "^9.3"
-            },
-            "suggest": {
-                "ext-uopz": "*"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "5.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Snapshotting of global state",
-            "homepage": "http://www.github.com/sebastianbergmann/global-state",
-            "keywords": [
-                "global state"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/global-state/issues",
-                "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2023-08-02T09:26:13+00:00"
-        },
-        {
-            "name": "sebastian/lines-of-code",
-            "version": "1.0.4",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/lines-of-code.git",
-                "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5",
-                "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5",
-                "shasum": ""
-            },
-            "require": {
-                "nikic/php-parser": "^4.18 || ^5.0",
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Library for counting the lines of code in PHP source code",
-            "homepage": "https://github.com/sebastianbergmann/lines-of-code",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
-                "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2023-12-22T06:20:34+00:00"
-        },
-        {
-            "name": "sebastian/object-enumerator",
-            "version": "4.0.4",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/object-enumerator.git",
-                "reference": "5c9eeac41b290a3712d88851518825ad78f45c71"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71",
-                "reference": "5c9eeac41b290a3712d88851518825ad78f45c71",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3",
-                "sebastian/object-reflector": "^2.0",
-                "sebastian/recursion-context": "^4.0"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "4.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Traverses array structures and object graphs to enumerate all referenced objects",
-            "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
-                "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-10-26T13:12:34+00:00"
-        },
-        {
-            "name": "sebastian/object-reflector",
-            "version": "2.0.4",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/object-reflector.git",
-                "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
-                "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Allows reflection of object attributes, including inherited and non-public ones",
-            "homepage": "https://github.com/sebastianbergmann/object-reflector/",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
-                "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-10-26T13:14:26+00:00"
-        },
-        {
-            "name": "sebastian/recursion-context",
-            "version": "4.0.5",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/recursion-context.git",
-                "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
-                "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "4.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                },
-                {
-                    "name": "Jeff Welch",
-                    "email": "whatthejeff@gmail.com"
-                },
-                {
-                    "name": "Adam Harvey",
-                    "email": "aharvey@php.net"
-                }
-            ],
-            "description": "Provides functionality to recursively process PHP variables",
-            "homepage": "https://github.com/sebastianbergmann/recursion-context",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
-                "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2023-02-03T06:07:39+00:00"
-        },
-        {
-            "name": "sebastian/resource-operations",
-            "version": "3.0.3",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/resource-operations.git",
-                "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
-                "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Provides a list of PHP built-in functions that operate on resources",
-            "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/resource-operations/issues",
-                "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-09-28T06:45:17+00:00"
-        },
-        {
-            "name": "sebastian/type",
-            "version": "3.2.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/type.git",
-                "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
-                "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.5"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.2-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Collection of value objects that represent the types of the PHP type system",
-            "homepage": "https://github.com/sebastianbergmann/type",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/type/issues",
-                "source": "https://github.com/sebastianbergmann/type/tree/3.2.1"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2023-02-03T06:13:03+00:00"
-        },
-        {
-            "name": "sebastian/version",
-            "version": "3.0.2",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/version.git",
-                "reference": "c6c1022351a901512170118436c764e473f6de8c"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c",
-                "reference": "c6c1022351a901512170118436c764e473f6de8c",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Library that helps with managing the version number of Git-hosted PHP projects",
-            "homepage": "https://github.com/sebastianbergmann/version",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/version/issues",
-                "source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "time": "2020-09-28T06:39:44+00:00"
-        },
-        {
             "name": "squizlabs/php_codesniffer",
-            "version": "3.9.0",
+            "version": "3.10.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git",
-                "reference": "d63cee4890a8afaf86a22e51ad4d97c91dd4579b"
+                "reference": "8f90f7a53ce271935282967f53d0894f8f1ff877"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/d63cee4890a8afaf86a22e51ad4d97c91dd4579b",
-                "reference": "d63cee4890a8afaf86a22e51ad4d97c91dd4579b",
+                "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/8f90f7a53ce271935282967f53d0894f8f1ff877",
+                "reference": "8f90f7a53ce271935282967f53d0894f8f1ff877",
                 "shasum": ""
             },
             "require": {
@@ -2048,57 +261,7 @@
                     "type": "open_collective"
                 }
             ],
-            "time": "2024-02-16T15:06:51+00:00"
-        },
-        {
-            "name": "theseer/tokenizer",
-            "version": "1.2.2",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/theseer/tokenizer.git",
-                "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
-                "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
-                "shasum": ""
-            },
-            "require": {
-                "ext-dom": "*",
-                "ext-tokenizer": "*",
-                "ext-xmlwriter": "*",
-                "php": "^7.2 || ^8.0"
-            },
-            "type": "library",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Arne Blankerts",
-                    "email": "arne@blankerts.de",
-                    "role": "Developer"
-                }
-            ],
-            "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
-            "support": {
-                "issues": "https://github.com/theseer/tokenizer/issues",
-                "source": "https://github.com/theseer/tokenizer/tree/1.2.2"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/theseer",
-                    "type": "github"
-                }
-            ],
-            "time": "2023-11-20T00:12:19+00:00"
+            "time": "2024-05-22T21:24:41+00:00"
         }
     ],
     "aliases": [],
diff --git a/pkgs/development/php-packages/php-parallel-lint/default.nix b/pkgs/development/php-packages/php-parallel-lint/default.nix
index dc14ac21981e5..342e4158f07a3 100644
--- a/pkgs/development/php-packages/php-parallel-lint/default.nix
+++ b/pkgs/development/php-packages/php-parallel-lint/default.nix
@@ -6,17 +6,17 @@
 
 php.buildComposerProject (finalAttrs: {
   pname = "php-parallel-lint";
-  version = "1.3.2.999";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "php-parallel-lint";
     repo = "PHP-Parallel-Lint";
-    rev = "539292fea03d718cc86e7137ad72ea35b694f2bf";
-    hash = "sha256-VIBuS4PwRt20Ic5gYAXTv8p/5Nq/0B3VwMcp9zKbu5U=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-g5e/yfvfq55MQDux3JRDvhaYEay68Q4u1VfIwDRgv7I=";
   };
 
   composerLock = ./composer.lock;
-  vendorHash = "sha256-PHQ0N1eFCM4s/aPVpTsyZN5gnQpNe9Wfs6CG2RNxxbk=";
+  vendorHash = "sha256-NZLGeX1i+E621UGYeWn5tKufDbCLv4iD1VXJcnhfleY=";
 
   meta = {
     description = "Tool to check syntax of PHP files faster than serial check with fancier output";
diff --git a/pkgs/development/php-packages/phpstan/default.nix b/pkgs/development/php-packages/phpstan/default.nix
index 1016e27d8322d..d2e42454c102a 100644
--- a/pkgs/development/php-packages/phpstan/default.nix
+++ b/pkgs/development/php-packages/phpstan/default.nix
@@ -6,16 +6,16 @@
 
 php.buildComposerProject (finalAttrs: {
   pname = "phpstan";
-  version = "1.11.1";
+  version = "1.11.4";
 
   src = fetchFromGitHub {
     owner = "phpstan";
     repo = "phpstan-src";
     rev = finalAttrs.version;
-    hash = "sha256-CMIWxxryDDA38uyGl3SIooliU0ElAY1iAqnexn2Uq58=";
+    hash = "sha256-9scH169cOc4rFUqqs6gqySI9aGEU5Exi8v4VtG9ujY8=";
   };
 
-  vendorHash = "sha256-CSkwBBV6b2inpQu4TKBR23Du11mzr3rV6GtprzHAOgQ=";
+  vendorHash = "sha256-u1GS1gyuU6T1ZJ1BLZZ/KbMoPemoN8VSFeR63/KgIAA=";
   composerStrictValidation = false;
 
   meta = {
diff --git a/pkgs/development/php-packages/protobuf/default.nix b/pkgs/development/php-packages/protobuf/default.nix
index 4d84d91832143..2ce7b4e374556 100644
--- a/pkgs/development/php-packages/protobuf/default.nix
+++ b/pkgs/development/php-packages/protobuf/default.nix
@@ -13,7 +13,7 @@ buildPecl {
   buildInputs = [ pcre2 ];
 
   meta = with lib; {
-    description = "Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data.";
+    description = "Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data";
     license = licenses.bsd3;
     homepage = "https://developers.google.com/protocol-buffers/";
     maintainers = teams.php.members;
diff --git a/pkgs/development/php-packages/psalm/default.nix b/pkgs/development/php-packages/psalm/default.nix
index 842b96a828faf..ead6c98ed5d89 100644
--- a/pkgs/development/php-packages/psalm/default.nix
+++ b/pkgs/development/php-packages/psalm/default.nix
@@ -22,7 +22,7 @@ php.buildComposerProject (finalAttrs: {
 
   meta = {
     changelog = "https://github.com/vimeo/psalm/releases/tag/${finalAttrs.version}";
-    description = "A static analysis tool for finding errors in PHP applications";
+    description = "Static analysis tool for finding errors in PHP applications";
     homepage = "https://github.com/vimeo/psalm";
     license = lib.licenses.mit;
     mainProgram = "psalm";
diff --git a/pkgs/development/php-packages/psysh/default.nix b/pkgs/development/php-packages/psysh/default.nix
index 1e75910a496c6..6bcb55ebb712a 100644
--- a/pkgs/development/php-packages/psysh/default.nix
+++ b/pkgs/development/php-packages/psysh/default.nix
@@ -20,7 +20,7 @@ php.buildComposerProject (finalAttrs: {
 
   meta = {
     changelog = "https://github.com/bobthecow/psysh/releases/tag/v${finalAttrs.version}";
-    description = "PsySH is a runtime developer console, interactive debugger and REPL for PHP.";
+    description = "PsySH is a runtime developer console, interactive debugger and REPL for PHP";
     mainProgram = "psysh";
     license = lib.licenses.mit;
     homepage = "https://psysh.org/";
diff --git a/pkgs/development/php-packages/relay/default.nix b/pkgs/development/php-packages/relay/default.nix
index 3120607482c7b..56d826cb4b948 100644
--- a/pkgs/development/php-packages/relay/default.nix
+++ b/pkgs/development/php-packages/relay/default.nix
@@ -144,8 +144,7 @@ stdenv.mkDerivation (finalAttrs: {
       fi
 
       for source in ${lib.concatStringsSep " " (builtins.attrNames finalAttrs.passthru.updateables)}; do
-        update-source-version "$UPDATE_NIX_ATTR_PATH.updateables.$source" "0" "sha256-${lib.fakeSha256}"
-        update-source-version "$UPDATE_NIX_ATTR_PATH.updateables.$source" "$NEW_VERSION"
+        update-source-version "$UPDATE_NIX_ATTR_PATH.updateables.$source" "$NEW_VERSION" --ignore-same-version
       done
     '';
 
diff --git a/pkgs/development/php-packages/spx/default.nix b/pkgs/development/php-packages/spx/default.nix
index 10bf66272615a..5fa060223d02a 100644
--- a/pkgs/development/php-packages/spx/default.nix
+++ b/pkgs/development/php-packages/spx/default.nix
@@ -28,7 +28,7 @@ buildPecl {
 
   meta = {
     changelog = "https://github.com/NoiseByNorthwest/php-spx/releases/tag/${version}";
-    description = "A simple & straight-to-the-point PHP profiling extension with its built-in web UI";
+    description = "Simple & straight-to-the-point PHP profiling extension with its built-in web UI";
     homepage = "https://github.com/NoiseByNorthwest/php-spx";
     license = lib.licenses.php301;
     maintainers = with lib.maintainers; [ drupol ];
diff --git a/pkgs/development/php-packages/vld/default.nix b/pkgs/development/php-packages/vld/default.nix
index 6ae6a60005f2c..1771f7b21514c 100644
--- a/pkgs/development/php-packages/vld/default.nix
+++ b/pkgs/development/php-packages/vld/default.nix
@@ -24,7 +24,7 @@ buildPecl {
 
   meta = {
     changelog = "https://github.com/derickr/vld/releases/tag/${version}";
-    description = "The Vulcan Logic Dumper hooks into the Zend Engine and dumps all the opcodes (execution units) of a script.";
+    description = "Vulcan Logic Dumper hooks into the Zend Engine and dumps all the opcodes (execution units) of a script";
     homepage = "https://github.com/derickr/vld";
     license = lib.licenses.bsd2;
     maintainers = with lib.maintainers; [ gaelreyrol ];
diff --git a/pkgs/development/python-modules/aadict/default.nix b/pkgs/development/python-modules/aadict/default.nix
index 8cf5bd7ba4dd0..0988fab6d2389 100644
--- a/pkgs/development/python-modules/aadict/default.nix
+++ b/pkgs/development/python-modules/aadict/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "aadict" ];
 
   meta = with lib; {
-    description = "An auto-attribute dict (and a couple of other useful dict functions)";
+    description = "Auto-attribute dict (and a couple of other useful dict functions)";
     homepage = "https://github.com/metagriffin/aadict";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ glittershark ];
diff --git a/pkgs/development/python-modules/about-time/default.nix b/pkgs/development/python-modules/about-time/default.nix
index f666ed760fd61..24d92ea3b6851 100644
--- a/pkgs/development/python-modules/about-time/default.nix
+++ b/pkgs/development/python-modules/about-time/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "about_time" ];
 
   meta = with lib; {
-    description = "A cool helper for tracking time and throughput of code blocks, with beautiful human friendly renditions";
+    description = "Cool helper for tracking time and throughput of code blocks, with beautiful human friendly renditions";
     homepage = "https://github.com/rsalmei/about-time";
     license = licenses.mit;
     maintainers = with maintainers; [ thiagokokada ];
diff --git a/pkgs/development/python-modules/accelerate/default.nix b/pkgs/development/python-modules/accelerate/default.nix
index 9c3cf1171dca0..498de531b9c56 100644
--- a/pkgs/development/python-modules/accelerate/default.nix
+++ b/pkgs/development/python-modules/accelerate/default.nix
@@ -88,6 +88,7 @@ buildPythonPackage rec {
     ++ lib.optionals (pythonAtLeast "3.12") [
       # RuntimeError: Dynamo is not supported on Python 3.12+
       "test_convert_to_fp32"
+      "test_dynamo_extract_model"
       "test_send_to_device_compiles"
     ]
     ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
@@ -119,7 +120,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://huggingface.co/docs/accelerate";
-    description = "A simple way to train and use PyTorch models with multi-GPU, TPU, mixed-precision";
+    description = "Simple way to train and use PyTorch models with multi-GPU, TPU, mixed-precision";
     changelog = "https://github.com/huggingface/accelerate/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ bcdarwin ];
diff --git a/pkgs/development/python-modules/accessible-pygments/default.nix b/pkgs/development/python-modules/accessible-pygments/default.nix
index 0691be328f054..591e5c75db137 100644
--- a/pkgs/development/python-modules/accessible-pygments/default.nix
+++ b/pkgs/development/python-modules/accessible-pygments/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A collection of accessible pygments styles";
+    description = "Collection of accessible pygments styles";
     homepage = "https://github.com/Quansight-Labs/accessible-pygments";
     changelog = "https://github.com/Quansight-Labs/accessible-pygments/raw/v${version}/CHANGELOG.md";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/acme-tiny/default.nix b/pkgs/development/python-modules/acme-tiny/default.nix
index df1337a47df9e..c0ddb81a1920d 100644
--- a/pkgs/development/python-modules/acme-tiny/default.nix
+++ b/pkgs/development/python-modules/acme-tiny/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "acme_tiny" ];
 
   meta = with lib; {
-    description = "A tiny script to issue and renew TLS certs from Let's Encrypt";
+    description = "Tiny script to issue and renew TLS certs from Let's Encrypt";
     mainProgram = "acme-tiny";
     homepage = "https://github.com/diafygi/acme-tiny";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/adafruit-platformdetect/default.nix b/pkgs/development/python-modules/adafruit-platformdetect/default.nix
index 3e220a23092ff..81a48bcc62950 100644
--- a/pkgs/development/python-modules/adafruit-platformdetect/default.nix
+++ b/pkgs/development/python-modules/adafruit-platformdetect/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "adafruit-platformdetect";
-  version = "3.63.0";
+  version = "3.70.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "adafruit_platformdetect";
     inherit version;
-    hash = "sha256-bntcP/P0eoQsjIQQcJLtsXsPcSylKVNUp+f/RC/U5m4=";
+    hash = "sha256-hbvTu3rVleM6OFQb70mq1OlJoe3xpfRJ7JA6djvMr7U=";
   };
 
   build-system = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/adb-enhanced/default.nix b/pkgs/development/python-modules/adb-enhanced/default.nix
index ee26d23ce755c..7ef10347207c1 100644
--- a/pkgs/development/python-modules/adb-enhanced/default.nix
+++ b/pkgs/development/python-modules/adb-enhanced/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "adb-enhanced";
-  version = "2.5.22";
+  version = "2.5.24";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "ashishb";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-n1CME/swV+NsZdUfWwVY1qQeYzawwy+sm0mkRPQKm6A=";
+    hash = "sha256-0HxeL6VGM+HTiAxs3NFRcEFbmH9q+0/pJdGyF1hl4hU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/adb-homeassistant/default.nix b/pkgs/development/python-modules/adb-homeassistant/default.nix
index 2385862e703ed..a5f539d950292 100644
--- a/pkgs/development/python-modules/adb-homeassistant/default.nix
+++ b/pkgs/development/python-modules/adb-homeassistant/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage {
   '';
 
   meta = with lib; {
-    description = "A pure python implementation of the Android ADB and Fastboot protocols";
+    description = "Pure python implementation of the Android ADB and Fastboot protocols";
     homepage = "https://github.com/JeffLIrion/python-adb/tree/adb-homeassistant";
     license = licenses.asl20;
     maintainers = [ maintainers.makefu ];
diff --git a/pkgs/development/python-modules/add-trailing-comma/default.nix b/pkgs/development/python-modules/add-trailing-comma/default.nix
index 8b3fecc560013..08da1feadb118 100644
--- a/pkgs/development/python-modules/add-trailing-comma/default.nix
+++ b/pkgs/development/python-modules/add-trailing-comma/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A tool (and pre-commit hook) to automatically add trailing commas to calls and literals";
+    description = "Tool (and pre-commit hook) to automatically add trailing commas to calls and literals";
     mainProgram = "add-trailing-comma";
     homepage = "https://github.com/asottile/add-trailing-comma";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/advocate/default.nix b/pkgs/development/python-modules/advocate/default.nix
index 9ac86f369a6a9..a0954dae4439e 100644
--- a/pkgs/development/python-modules/advocate/default.nix
+++ b/pkgs/development/python-modules/advocate/default.nix
@@ -40,7 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/JordanMilne/Advocate";
-    description = "An SSRF-preventing wrapper around Python's requests library";
+    description = "SSRF-preventing wrapper around Python's requests library";
     license = licenses.asl20;
     maintainers = with maintainers; [ pborzenkov ];
   };
diff --git a/pkgs/development/python-modules/agate-sql/default.nix b/pkgs/development/python-modules/agate-sql/default.nix
index e0449f27c0f7b..7d357f49ff105 100644
--- a/pkgs/development/python-modules/agate-sql/default.nix
+++ b/pkgs/development/python-modules/agate-sql/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "agatesql" ];
 
   meta = with lib; {
-    description = "Adds SQL read/write support to agate.";
+    description = "Adds SQL read/write support to agate";
     homepage = "https://github.com/wireservice/agate-sql";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ vrthra ];
diff --git a/pkgs/development/python-modules/agent-py/default.nix b/pkgs/development/python-modules/agent-py/default.nix
index 3bcb124337b0b..eb1702d32709a 100644
--- a/pkgs/development/python-modules/agent-py/default.nix
+++ b/pkgs/development/python-modules/agent-py/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A python wrapper around the Agent REST API.";
+    description = "Python wrapper around the Agent REST API";
     homepage = "https://github.com/ispysoftware/agent-py";
     license = licenses.asl20;
     maintainers = with maintainers; [ jamiemagee ];
diff --git a/pkgs/development/python-modules/aigpy/default.nix b/pkgs/development/python-modules/aigpy/default.nix
index 3cc1946087d86..d8cadb97e1cc9 100644
--- a/pkgs/development/python-modules/aigpy/default.nix
+++ b/pkgs/development/python-modules/aigpy/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/AIGMix/AIGPY";
-    description = "A python library with miscellaneous tools";
+    description = "Python library with miscellaneous tools";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.misterio77 ];
     platforms = lib.platforms.all;
diff --git a/pkgs/development/python-modules/ailment/default.nix b/pkgs/development/python-modules/ailment/default.nix
index c64eece601c5e..22aef7748c3b4 100644
--- a/pkgs/development/python-modules/ailment/default.nix
+++ b/pkgs/development/python-modules/ailment/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "ailment";
-  version = "9.2.102";
+  version = "9.2.107";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = "ailment";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xHxWP16XbVcsT+UIyouqyhbnxPBNx7oH1unBhJU44fI=";
+    hash = "sha256-yEwSHmAxbbdLVFatG4pKJokatCkO4RCZUMVAoBSOwTI=";
   };
 
   build-system = [ setuptools ];
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ailment" ];
 
   meta = with lib; {
-    description = "The angr Intermediate Language";
+    description = "Angr Intermediate Language";
     homepage = "https://github.com/angr/ailment";
     license = with licenses; [ bsd2 ];
     maintainers = with maintainers; [ fab ];
diff --git a/pkgs/development/python-modules/aioairzone-cloud/default.nix b/pkgs/development/python-modules/aioairzone-cloud/default.nix
index 63815d39e47ad..f3304a4b617c0 100644
--- a/pkgs/development/python-modules/aioairzone-cloud/default.nix
+++ b/pkgs/development/python-modules/aioairzone-cloud/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "aioairzone-cloud";
-  version = "0.5.1";
+  version = "0.5.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "Noltari";
     repo = "aioairzone-cloud";
     rev = "refs/tags/${version}";
-    hash = "sha256-L5Gb+V0W+9duGV6lRc01jrAfh4U+MS77Y238EeXe0TU=";
+    hash = "sha256-06r6Q+MdEirLiPrx71NDp8oeRJzqgDg8FtXt46vHutE=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/aioaladdinconnect/default.nix b/pkgs/development/python-modules/aioaladdinconnect/default.nix
deleted file mode 100644
index 3925407abeab4..0000000000000
--- a/pkgs/development/python-modules/aioaladdinconnect/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{
-  lib,
-  aioboto3,
-  aiohttp,
-  buildPythonPackage,
-  fetchPypi,
-  pythonOlder,
-}:
-
-buildPythonPackage rec {
-  pname = "aioaladdinconnect";
-  version = "0.2.0";
-  format = "setuptools";
-
-  disabled = pythonOlder "3.7";
-
-  src = fetchPypi {
-    pname = "AIOAladdinConnect";
-    inherit version;
-    hash = "sha256-5vfw8SU3lWlPoMAR+byf8jpZrGmXTPoeO+DvPByjZnw=";
-  };
-
-  propagatedBuildInputs = [
-    aioboto3
-    aiohttp
-  ];
-
-  # Module has no tests
-  doCheck = false;
-
-  pythonImportsCheck = [ "AIOAladdinConnect" ];
-
-  meta = with lib; {
-    description = "Library for controlling Genie garage doors connected to Aladdin Connect devices";
-    homepage = "https://github.com/mkmer/AIOAladdinConnect";
-    changelog = "https://github.com/mkmer/AIOAladdinConnect/releases/tag/${version}";
-    license = with licenses; [ mit ];
-    maintainers = with maintainers; [ fab ];
-  };
-}
diff --git a/pkgs/development/python-modules/aioapns/default.nix b/pkgs/development/python-modules/aioapns/default.nix
index 1fe48c4462f26..ac728fa7e656a 100644
--- a/pkgs/development/python-modules/aioapns/default.nix
+++ b/pkgs/development/python-modules/aioapns/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "aioapns" ];
 
   meta = with lib; {
-    description = "An efficient APNs Client Library";
+    description = "Efficient APNs Client Library";
     homepage = "https://github.com/Fatal1ty/aioapns";
     changelog = "https://github.com/Fatal1ty/aioapns/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/aioautomower/default.nix b/pkgs/development/python-modules/aioautomower/default.nix
index 9cb79bf9d2fac..f300758aa8116 100644
--- a/pkgs/development/python-modules/aioautomower/default.nix
+++ b/pkgs/development/python-modules/aioautomower/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "aioautomower";
-  version = "2024.4.4";
+  version = "2024.5.1";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "Thomas55555";
     repo = "aioautomower";
     rev = "refs/tags/${version}";
-    hash = "sha256-/mwKomgY+yifN27bpCK9FjhbZRdllr471Ku+Kn2rUPM=";
+    hash = "sha256-SwRr8BJOchQ7qObgVkNGTkaFEx7wiB/EPedRG2csH+A=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/aiocache/default.nix b/pkgs/development/python-modules/aiocache/default.nix
index 17e60970e4fa8..54a2bfb88ef78 100644
--- a/pkgs/development/python-modules/aiocache/default.nix
+++ b/pkgs/development/python-modules/aiocache/default.nix
@@ -58,10 +58,15 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    # calls apache benchmark and fails, no usable output
+    # Test calls apache benchmark and fails, no usable output
     "test_concurrency_error_rates"
   ];
 
+  disabledTestPaths = [
+    # Benchmark and performance tests are not relevant for Nixpkgs
+    "tests/performance/"
+  ];
+
   preCheck = ''
     ${lib.getBin pkgs.redis}/bin/redis-server &
     REDIS_PID=$!
@@ -83,7 +88,7 @@ buildPythonPackage rec {
     description = "Python API Rate Limit Decorator";
     homepage = "https://github.com/aio-libs/aiocache";
     changelog = "https://github.com/aio-libs/aiocache/releases/tag/v${version}";
-    license = with licenses; [ bsd3 ];
+    license = licenses.bsd3;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/aioesphomeapi/default.nix b/pkgs/development/python-modules/aioesphomeapi/default.nix
index 665cc10fc58bb..371776aa17493 100644
--- a/pkgs/development/python-modules/aioesphomeapi/default.nix
+++ b/pkgs/development/python-modules/aioesphomeapi/default.nix
@@ -26,7 +26,7 @@
 
 buildPythonPackage rec {
   pname = "aioesphomeapi";
-  version = "24.3.0";
+  version = "24.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     owner = "esphome";
     repo = "aioesphomeapi";
     rev = "refs/tags/v${version}";
-    hash = "sha256-wQR3dwN5O++TdtQh+Wcj7c7TNMaRj2lMlOuXOAPVU0Q=";
+    hash = "sha256-i/tmPTDb5DJRSj//Ju9OERx8A9S69WkWyoN+j2MO6mI=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/aiogram/default.nix b/pkgs/development/python-modules/aiogram/default.nix
index e15d1a993dccd..e100d822d50c6 100644
--- a/pkgs/development/python-modules/aiogram/default.nix
+++ b/pkgs/development/python-modules/aiogram/default.nix
@@ -11,8 +11,10 @@
   gitUpdater,
   hatchling,
   magic-filter,
+  motor,
   pycryptodomex,
   pydantic,
+  pymongo,
   pytest-aiohttp,
   pytest-asyncio,
   pytest-lazy-fixture,
@@ -25,7 +27,7 @@
 
 buildPythonPackage rec {
   pname = "aiogram";
-  version = "3.6.0";
+  version = "3.7.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -34,7 +36,7 @@ buildPythonPackage rec {
     owner = "aiogram";
     repo = "aiogram";
     rev = "refs/tags/v${version}";
-    hash = "sha256-8hbB6/j9mWONFNpQuC3p91xnHR/74TWA9Cq8E+Gsnlw=";
+    hash = "sha256-GIfujywp+yYRQ4xm6O5GgTCMn6I3TSYE5epaqhMGGnE=";
   };
 
   build-system = [ hatchling ];
@@ -55,7 +57,9 @@ buildPythonPackage rec {
   nativeCheckInputs = [
     aiohttp-socks
     aresponses
+    motor
     pycryptodomex
+    pymongo
     pytest-aiohttp
     pytest-asyncio
     pytest-lazy-fixture
diff --git a/pkgs/development/python-modules/aiohttp-apispec/default.nix b/pkgs/development/python-modules/aiohttp-apispec/default.nix
index adcc1d17dbf58..9284686d3cab1 100644
--- a/pkgs/development/python-modules/aiohttp-apispec/default.nix
+++ b/pkgs/development/python-modules/aiohttp-apispec/default.nix
@@ -3,9 +3,7 @@
   aiohttp,
   apispec,
   buildPythonPackage,
-  callPackage,
   fetchFromGitHub,
-  fetchPypi,
   jinja2,
   packaging,
   pytest-aiohttp,
diff --git a/pkgs/development/python-modules/aiohttp-client-cache/default.nix b/pkgs/development/python-modules/aiohttp-client-cache/default.nix
index 999eb2dedf312..540a96a824dde 100644
--- a/pkgs/development/python-modules/aiohttp-client-cache/default.nix
+++ b/pkgs/development/python-modules/aiohttp-client-cache/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     url-normalize
   ];
   meta = with lib; {
-    description = "An async persistent cache for aiohttp requests";
+    description = "Async persistent cache for aiohttp requests";
     homepage = "https://pypi.org/project/aiohttp-client-cache/";
     license = licenses.mit;
     maintainers = with maintainers; [ seirl ];
diff --git a/pkgs/development/python-modules/aiohttp-fast-url-dispatcher/default.nix b/pkgs/development/python-modules/aiohttp-fast-url-dispatcher/default.nix
index 6fee93b33335f..8e4cd760a5f76 100644
--- a/pkgs/development/python-modules/aiohttp-fast-url-dispatcher/default.nix
+++ b/pkgs/development/python-modules/aiohttp-fast-url-dispatcher/default.nix
@@ -40,7 +40,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "aiohttp_fast_url_dispatcher" ];
 
   meta = with lib; {
-    description = "A faster URL dispatcher for aiohttp";
+    description = "Faster URL dispatcher for aiohttp";
     homepage = "https://github.com/bdraco/aiohttp-fast-url-dispatcher";
     changelog = "https://github.com/bdraco/aiohttp-fast-url-dispatcher/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/aiohttp-fast-zlib/default.nix b/pkgs/development/python-modules/aiohttp-fast-zlib/default.nix
new file mode 100644
index 0000000000000..e770098d63b3a
--- /dev/null
+++ b/pkgs/development/python-modules/aiohttp-fast-zlib/default.nix
@@ -0,0 +1,48 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  aiohttp,
+  isal,
+  zlib-ng,
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "aiohttp-fast-zlib";
+  version = "0.1.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "bdraco";
+    repo = "aiohttp-fast-zlib";
+    rev = "v${version}";
+    hash = "sha256-nR/0hVe5zAhLXu+kBOBH+whIjUV44c5yuNOj+Zl+eFo=";
+  };
+
+  postPatch = ''
+    sed -i "/addopts =/d" pyproject.toml
+  '';
+
+  build-system = [ poetry-core ];
+
+  dependencies = [ aiohttp ];
+
+  optional-dependencies = {
+    isal = [ isal ];
+    zlib_ng = [ zlib-ng ];
+  };
+
+  nativeCheckInputs = [ pytestCheckHook ] ++ lib.flatten (lib.attrValues optional-dependencies);
+
+  pythonImportsCheck = [ "aiohttp_fast_zlib" ];
+
+  meta = with lib; {
+    description = "Use the fastest installed zlib compatible library with aiohttp";
+    homepage = "https://github.com/bdraco/aiohttp-fast-zlib";
+    changelog = "https://github.com/bdraco/aiohttp-fast-zlib/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/python-modules/aiohttp-swagger/default.nix b/pkgs/development/python-modules/aiohttp-swagger/default.nix
index c97a3a27c7a34..0b7dc5c6ea2e2 100644
--- a/pkgs/development/python-modules/aiohttp-swagger/default.nix
+++ b/pkgs/development/python-modules/aiohttp-swagger/default.nix
@@ -54,6 +54,5 @@ buildPythonPackage rec {
     description = "Swagger API Documentation builder for aiohttp";
     homepage = "https://github.com/cr0hn/aiohttp-swagger";
     license = licenses.mit;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/aioitertools/default.nix b/pkgs/development/python-modules/aioitertools/default.nix
index 3f4870df41ad8..6d59d99d14c8a 100644
--- a/pkgs/development/python-modules/aioitertools/default.nix
+++ b/pkgs/development/python-modules/aioitertools/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   buildPythonPackage,
-  fetchpatch,
   fetchPypi,
   pythonOlder,
 
diff --git a/pkgs/development/python-modules/aiolifx-themes/default.nix b/pkgs/development/python-modules/aiolifx-themes/default.nix
index 284866dc921a6..8f30f735364b5 100644
--- a/pkgs/development/python-modules/aiolifx-themes/default.nix
+++ b/pkgs/development/python-modules/aiolifx-themes/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "aiolifx-themes";
-  version = "0.4.17";
+  version = "0.4.18";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "Djelibeybi";
     repo = "aiolifx-themes";
     rev = "refs/tags/v${version}";
-    hash = "sha256-nKzvdDzwizF1Db8qFQuOH7gLnYHmdCYdQZPN+gNg8mU=";
+    hash = "sha256-6oV6pyVwSS6sYrTokcJ/1KBkuv7EHNr+2bJ5ujengTY=";
   };
 
   prePatch = ''
diff --git a/pkgs/development/python-modules/aiolifx/default.nix b/pkgs/development/python-modules/aiolifx/default.nix
index 8f3a773b713e1..62853267d54b0 100644
--- a/pkgs/development/python-modules/aiolifx/default.nix
+++ b/pkgs/development/python-modules/aiolifx/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "aiolifx";
-  version = "1.0.2";
+  version = "1.0.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-E3UxNTqss3urpMTwhLhIoAnBekGOIyFy0+sOj3mGlss=";
+    hash = "sha256-Lzdd4UPyu3/avxKO0XPCFI8zhTjDF7zwSKf6RL1/k9M=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/aiomisc/default.nix b/pkgs/development/python-modules/aiomisc/default.nix
index 0b4bf7483d84a..0a7e40e46ed9a 100644
--- a/pkgs/development/python-modules/aiomisc/default.nix
+++ b/pkgs/development/python-modules/aiomisc/default.nix
@@ -22,14 +22,14 @@
 
 buildPythonPackage rec {
   pname = "aiomisc";
-  version = "17.5.19";
+  version = "17.5.24";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-0tcWfi4zxqDDMknDPOLNm+S+K1qmHQ5n/PqNFyNbwZg=";
+    hash = "sha256-9/7QI9z5dYADNRIWBelrUoNe/LaHqpb/Ch4e1Z9I1s4=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/aiomqtt/default.nix b/pkgs/development/python-modules/aiomqtt/default.nix
index a67df0b943d9a..6e074397fac85 100644
--- a/pkgs/development/python-modules/aiomqtt/default.nix
+++ b/pkgs/development/python-modules/aiomqtt/default.nix
@@ -48,7 +48,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "The idiomatic asyncio MQTT client, wrapped around paho-mqtt";
+    description = "Idiomatic asyncio MQTT client, wrapped around paho-mqtt";
     homepage = "https://github.com/sbtinstruments/aiomqtt";
     changelog = "https://github.com/sbtinstruments/aiomqtt/blob/${src.rev}/CHANGELOG.md";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/aiomysensors/default.nix b/pkgs/development/python-modules/aiomysensors/default.nix
index 5e3ca5a6089ec..f23adad066628 100644
--- a/pkgs/development/python-modules/aiomysensors/default.nix
+++ b/pkgs/development/python-modules/aiomysensors/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "aiomysensors";
-  version = "0.3.15";
+  version = "0.3.16";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "MartinHjelmare";
     repo = "aiomysensors";
     rev = "refs/tags/v${version}";
-    hash = "sha256-kgfz8VUTtOFN1hPkNJhPdRUKQn01BJn+92Ez6lgVGbc=";
+    hash = "sha256-1BpmjCgKiCZmBpBENlg79+I3UhkIxrgLAUD8ixpGUM8=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/aioopenexchangerates/default.nix b/pkgs/development/python-modules/aioopenexchangerates/default.nix
index fc5eb933a98e2..8f098bb091a8a 100644
--- a/pkgs/development/python-modules/aioopenexchangerates/default.nix
+++ b/pkgs/development/python-modules/aioopenexchangerates/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "aioopenexchangerates";
-  version = "0.4.11";
+  version = "0.4.12";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "MartinHjelmare";
     repo = "aioopenexchangerates";
     rev = "refs/tags/v${version}";
-    hash = "sha256-8AScYCDgv8Dkjt/0WJ4P2q2H9dykuq3w00qDDP8PiSs=";
+    hash = "sha256-A9d7nAqVwiIsS6f+A4PCGbONdhZb55JSmNuAFG990Ek=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/aioprometheus/default.nix b/pkgs/development/python-modules/aioprometheus/default.nix
index f12c4f1a722c2..0c74e4a6ac25e 100644
--- a/pkgs/development/python-modules/aioprometheus/default.nix
+++ b/pkgs/development/python-modules/aioprometheus/default.nix
@@ -51,7 +51,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "aioprometheus" ];
 
   meta = with lib; {
-    description = "A Prometheus Python client library for asyncio-based applications";
+    description = "Prometheus Python client library for asyncio-based applications";
     homepage = "https://github.com/claws/aioprometheus";
     changelog = "https://github.com/claws/aioprometheus/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/aioquic/default.nix b/pkgs/development/python-modules/aioquic/default.nix
index 4b909ecb4aca5..f3191a7f8ddff 100644
--- a/pkgs/development/python-modules/aioquic/default.nix
+++ b/pkgs/development/python-modules/aioquic/default.nix
@@ -4,7 +4,6 @@
   certifi,
   cryptography,
   fetchPypi,
-  fetchpatch,
   openssl,
   pylsqpack,
   pyopenssl,
@@ -16,26 +15,19 @@
 
 buildPythonPackage rec {
   pname = "aioquic";
-  version = "0.9.25";
+  version = "1.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-cHlceJBTJthVwq5SQHIjSq5YbHibgSkuJy0CHpsEMKM=";
+    hash = "sha256-7THCta+pjFtsr6TzYUnerx3/bFppcB6t0nFnQV+fFmA=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/aiortc/aioquic/commit/e899593805e0b31325a1d347504eb8e6100fe87d.diff";
-      hash = "sha256-TTpIIWX/R4k2KxhsN17O9cRW/dN0AARYnju8JTht3D8=";
-    })
-  ];
-
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     certifi
     cryptography
     pylsqpack
diff --git a/pkgs/development/python-modules/aiorecollect/default.nix b/pkgs/development/python-modules/aiorecollect/default.nix
index 9cb3cca5d666f..57a59497bbc62 100644
--- a/pkgs/development/python-modules/aiorecollect/default.nix
+++ b/pkgs/development/python-modules/aiorecollect/default.nix
@@ -4,7 +4,6 @@
   aresponses,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   freezegun,
   poetry-core,
   pytest-asyncio,
diff --git a/pkgs/development/python-modules/aioresponses/default.nix b/pkgs/development/python-modules/aioresponses/default.nix
index c95e48c4ba3e9..5b102d463171d 100644
--- a/pkgs/development/python-modules/aioresponses/default.nix
+++ b/pkgs/development/python-modules/aioresponses/default.nix
@@ -49,7 +49,7 @@ buildPythonPackage rec {
   ];
 
   meta = {
-    description = "A helper to mock/fake web requests in python aiohttp package";
+    description = "Helper to mock/fake web requests in python aiohttp package";
     homepage = "https://github.com/pnuckowski/aioresponses";
     license = lib.licenses.mit;
   };
diff --git a/pkgs/development/python-modules/aiortm/default.nix b/pkgs/development/python-modules/aiortm/default.nix
index 9e1384acc6792..4498c27080c38 100644
--- a/pkgs/development/python-modules/aiortm/default.nix
+++ b/pkgs/development/python-modules/aiortm/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "aiortm";
-  version = "0.8.13";
+  version = "0.8.14";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "MartinHjelmare";
     repo = "aiortm";
     rev = "refs/tags/v${version}";
-    hash = "sha256-JoolmxZFN0UG8wAMxMAYL8APFjpEcMECirCKUA/UBlY=";
+    hash = "sha256-x/QTmFNPnazyAmJQ9zLzAFB9V3NUwDeTJdrJqQ54jGE=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/aiortsp/default.nix b/pkgs/development/python-modules/aiortsp/default.nix
index 76d9f7a30486e..4bdf43d387666 100644
--- a/pkgs/development/python-modules/aiortsp/default.nix
+++ b/pkgs/development/python-modules/aiortsp/default.nix
@@ -40,7 +40,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "aiortsp" ];
 
   meta = with lib; {
-    description = "An Asyncio-based RTSP library";
+    description = "Asyncio-based RTSP library";
     homepage = "https://github.com/marss/aiortsp";
     changelog = "https://github.com/marss/aiortsp/blob/${src.rev}/CHANGELOG.rst";
     license = licenses.lgpl3Plus;
diff --git a/pkgs/development/python-modules/aioruuvigateway/default.nix b/pkgs/development/python-modules/aioruuvigateway/default.nix
index 2084d5d0bdf54..ac167e943bc59 100644
--- a/pkgs/development/python-modules/aioruuvigateway/default.nix
+++ b/pkgs/development/python-modules/aioruuvigateway/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "aioruuvigateway" ];
 
   meta = with lib; {
-    description = "An asyncio-native library for requesting data from a Ruuvi Gateway";
+    description = "Asyncio-native library for requesting data from a Ruuvi Gateway";
     homepage = "https://github.com/akx/aioruuvigateway";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
diff --git a/pkgs/development/python-modules/aiosasl/default.nix b/pkgs/development/python-modules/aiosasl/default.nix
index 81f96c4d1b1b1..fe977cc1bbec8 100644
--- a/pkgs/development/python-modules/aiosasl/default.nix
+++ b/pkgs/development/python-modules/aiosasl/default.nix
@@ -5,13 +5,16 @@
   fetchpatch,
   pyopenssl,
   pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "aiosasl";
   version = "0.5.0";
+  pyproject = true;
 
-  format = "setuptools";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "horazont";
@@ -28,6 +31,14 @@ buildPythonPackage rec {
     })
   ];
 
+  postPatch = ''
+    # https://github.com/horazont/aiosasl/issues/28
+    substituteInPlace tests/test_aiosasl.py \
+      --replace-fail "assertRaisesRegexp" "assertRaisesRegex"
+  '';
+
+  build-system = [ setuptools ];
+
   nativeCheckInputs = [
     pyopenssl
     pytestCheckHook
diff --git a/pkgs/development/python-modules/aioshelly/default.nix b/pkgs/development/python-modules/aioshelly/default.nix
index 0a648fa4f704c..359a1db2cb743 100644
--- a/pkgs/development/python-modules/aioshelly/default.nix
+++ b/pkgs/development/python-modules/aioshelly/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "aioshelly";
-  version = "10.0.0";
+  version = "10.0.1";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "home-assistant-libs";
     repo = "aioshelly";
     rev = "refs/tags/${version}";
-    hash = "sha256-HHFp1n0oTZznByGMH2DD/LnK8mSuAe7ex2dA951MtpY=";
+    hash = "sha256-+p+AFgqS/9rCDkIiNm4o7GhQ4dPfKl2s7ukEYaAdlgo=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/aioshutil/default.nix b/pkgs/development/python-modules/aioshutil/default.nix
index 599745e19180d..1aeccdce9fe9c 100644
--- a/pkgs/development/python-modules/aioshutil/default.nix
+++ b/pkgs/development/python-modules/aioshutil/default.nix
@@ -10,18 +10,23 @@
 
 buildPythonPackage rec {
   pname = "aioshutil";
-  version = "1.3";
-  format = "pyproject";
+  version = "1.4";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "kumaraditya303";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-XIGjiLjoyS/7vUDIyBPvHNMyHOBa0gsg/c/vGgrhZAg=";
+    repo = "aioshutil";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-OGxD7GusRcHpz7FdUpa/dJ6/jIAVexbTvXfouVw0C+I=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace-fail " --cov aioshutil --cov-report xml" ""
+  '';
+
   nativeBuildInputs = [ setuptools-scm ];
 
   nativeCheckInputs = [
@@ -29,17 +34,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  postPatch = ''
-    substituteInPlace setup.cfg \
-      --replace " --cov aioshutil --cov-report xml" ""
-  '';
-
   pythonImportsCheck = [ "aioshutil" ];
 
   meta = with lib; {
     description = "Asynchronous version of function of shutil module";
     homepage = "https://github.com/kumaraditya303/aioshutil";
-    license = with licenses; [ bsd3 ];
+    license = licenses.bsd3;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/aiosql/default.nix b/pkgs/development/python-modules/aiosql/default.nix
index 1ffaae51334c6..5afa301ea9efa 100644
--- a/pkgs/development/python-modules/aiosql/default.nix
+++ b/pkgs/development/python-modules/aiosql/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "aiosql";
-  version = "10.1";
+  version = "10.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     owner = "nackjicholson";
     repo = "aiosql";
     rev = "refs/tags/${version}";
-    hash = "sha256-KlDwvoU0GYCN+ZCp4pp557qf9ChceS4NeA0Yiq+g3YQ=";
+    hash = "sha256-o88pKxvK7fT+ocemiY58yA6fTmgg8+QsztHU3OvcDAo=";
   };
 
   sphinxRoot = "docs/source";
diff --git a/pkgs/development/python-modules/aiostream/default.nix b/pkgs/development/python-modules/aiostream/default.nix
index b787f69c1b745..98b2d3902fa41 100644
--- a/pkgs/development/python-modules/aiostream/default.nix
+++ b/pkgs/development/python-modules/aiostream/default.nix
@@ -5,29 +5,32 @@
   pytest-asyncio,
   pytestCheckHook,
   pythonOlder,
+  setuptools,
   typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "aiostream";
-  version = "0.5.2";
-  format = "setuptools";
+  version = "0.6.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "vxgmichel";
-    repo = pname;
+    repo = "aiostream";
     rev = "refs/tags/v${version}";
-    hash = "sha256-g2W2TtCh2ANPjeTdASVgEu+qKfz/Ugh1rDWJcFvOJpI=";
+    hash = "sha256-RJ+0o8w92GteMRPOIddCBQ4JApi5gXiwkJRNe9t2E7g=";
   };
 
   postPatch = ''
-    substituteInPlace setup.cfg \
-      --replace " --cov aiostream --cov-report html --cov-report term" ""
+    substituteInPlace pyproject.toml \
+      --replace-fail " --cov aiostream" ""
   '';
 
-  propagatedBuildInputs = [ typing-extensions ];
+  build-system = [ setuptools ];
+
+  dependencies = [ typing-extensions ];
 
   nativeCheckInputs = [
     pytest-asyncio
diff --git a/pkgs/development/python-modules/aioswitcher/default.nix b/pkgs/development/python-modules/aioswitcher/default.nix
index bd6b8df30a915..cfdde67b22dd6 100644
--- a/pkgs/development/python-modules/aioswitcher/default.nix
+++ b/pkgs/development/python-modules/aioswitcher/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "aioswitcher";
-  version = "3.4.2";
+  version = "3.4.3";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "TomerFi";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-UpwIzwOl1yKqK8KxFDXAWoZFkQ+1r1sUcDfx6AxRdNw=";
+    hash = "sha256-yKHSExtnO9m8Tc3BmCqV8tJs59ynKOqUmekaOatGRTc=";
   };
 
   __darwinAllowLocalNetworking = true;
diff --git a/pkgs/development/python-modules/aiowaqi/default.nix b/pkgs/development/python-modules/aiowaqi/default.nix
index d69377e8be8c7..370b28cb6f761 100644
--- a/pkgs/development/python-modules/aiowaqi/default.nix
+++ b/pkgs/development/python-modules/aiowaqi/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "aiowaqi";
-  version = "3.0.1";
+  version = "3.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -23,17 +23,17 @@ buildPythonPackage rec {
     owner = "joostlek";
     repo = "python-waqi";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+4l820FGQI66GGr+KGEeDmPUFwRrMNvYFJuSouesakY=";
+    hash = "sha256-YWTGEOSSkZ0XbZUE3k+Dn9qg8Pmwip9wCp8e/j1D9io=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "--cov" ""
+      --replace-fail "--cov" ""
   '';
 
-  nativeBuildInputs = [ poetry-core ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     yarl
   ];
diff --git a/pkgs/development/python-modules/aiowatttime/default.nix b/pkgs/development/python-modules/aiowatttime/default.nix
index 74e85adc69131..9932f9f822206 100644
--- a/pkgs/development/python-modules/aiowatttime/default.nix
+++ b/pkgs/development/python-modules/aiowatttime/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "aiowatttime";
-  version = "2023.12.0";
+  version = "2024.06.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.10";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "bachya";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-sodgFveVE2Z894z36AzXF6c3iI4UhaqMJK+H6CjsvGA=";
+    hash = "sha256-c5L+Nx+CoWEc6Bs61GOHPBelExe5I7EOlMQ+QV6nktI=";
   };
 
   nativeBuildInputs = [ poetry-core ];
diff --git a/pkgs/development/python-modules/aiowithings/default.nix b/pkgs/development/python-modules/aiowithings/default.nix
index 31d6af04cf35d..fe46582dbf299 100644
--- a/pkgs/development/python-modules/aiowithings/default.nix
+++ b/pkgs/development/python-modules/aiowithings/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "aiowithings";
-  version = "2.1.0";
+  version = "3.0.1";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "joostlek";
     repo = "python-withings";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+pIIVCR+QsW9M3pH9Ss3dMvkeKM1OdhQ1y+s/T6pHtk=";
+    hash = "sha256-Crc+OpkkRKHgrszXNuV2Q83IusOXt9y4IVTSz/w7l/Y=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/aioxmpp/default.nix b/pkgs/development/python-modules/aioxmpp/default.nix
index 1608a234e721f..9e770ae06522c 100644
--- a/pkgs/development/python-modules/aioxmpp/default.nix
+++ b/pkgs/development/python-modules/aioxmpp/default.nix
@@ -1,27 +1,32 @@
 {
   lib,
-  buildPythonPackage,
-  fetchFromGitHub,
-  aiosasl,
   aioopenssl,
+  aiosasl,
   babel,
+  buildPythonPackage,
   dnspython,
+  fetchFromGitHub,
   lxml,
   multidict,
-  pyasn1,
   pyasn1-modules,
+  pyasn1,
   pyopenssl,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  pythonRelaxDepsHook,
   pytz,
+  setuptools,
   sortedcollections,
   tzlocal,
-  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "aioxmpp";
   version = "0.13.3";
+  pyproject = true;
 
-  format = "setuptools";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "horazont";
@@ -30,7 +35,15 @@ buildPythonPackage rec {
     hash = "sha256-bQPKEM5eKhFI3Kx3U1espdxqjnG4yUgOXmYCrd98PDo=";
   };
 
-  propagatedBuildInputs = [
+  pythonRelaxDeps = [
+    "lxml"
+  ];
+
+  build-system = [ setuptools ];
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
+
+  dependencies = [
     aiosasl
     aioopenssl
     babel
@@ -60,12 +73,23 @@ buildPythonPackage rec {
   disabledTests = [
     # AttributeError: 'zoneinfo.ZoneInfo' object has no attribute 'normalize'
     "test_convert_field_datetime_default_locale"
+  ] ++ lib.optionals (pythonAtLeast "3.12") [
+    # asyncio issues
+    "test_is_abstract"
+    "Testbackground"
+    "TestCapturingXSO"
+    "Testcheck_x509"
+    "TestClient"
+    "TestIntegerType"
+    "TestStanzaStream"
+    "TestStanzaToken"
+    "TestXMLStream"
   ];
 
   meta = {
-    changelog = "https://github.com/horazont/aioxmpp/blob/${src.rev}/docs/api/changelog.rst";
     description = "Pure-python XMPP library for asyncio";
     homepage = "https://github.com/horazont/aioxmpp";
+    changelog = "https://github.com/horazont/aioxmpp/blob/${src.rev}/docs/api/changelog.rst";
     license = lib.licenses.lgpl3Plus;
     maintainers = with lib.maintainers; [ dotlambda ];
   };
diff --git a/pkgs/development/python-modules/aiozoneinfo/default.nix b/pkgs/development/python-modules/aiozoneinfo/default.nix
new file mode 100644
index 0000000000000..4f66cb62d444f
--- /dev/null
+++ b/pkgs/development/python-modules/aiozoneinfo/default.nix
@@ -0,0 +1,49 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  tzdata,
+}:
+
+buildPythonPackage rec {
+  pname = "aiozoneinfo";
+  version = "0.1.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "bluetooth-devices";
+    repo = "aiozoneinfo";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-gsU7dLLnV+KayfFcuhdcNZPk/XZHGhr6WXOQCIJvUHk=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail "--cov=aiozoneinfo --cov-report=term-missing:skip-covered" ""
+  '';
+
+  build-system = [ poetry-core ];
+
+  dependencies = [ tzdata ];
+
+  nativeCheckInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "aiozoneinfo" ];
+
+  meta = with lib; {
+    description = "Tools to fetch zoneinfo with asyncio";
+    homepage = "https://github.com/bluetooth-devices/aiozoneinfo";
+    changelog = "https://github.com/bluetooth-devices/aiozoneinfo/blob/${version}/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/alabaster/default.nix b/pkgs/development/python-modules/alabaster/default.nix
index 3d13eaee2d0d9..5c935659ca08b 100644
--- a/pkgs/development/python-modules/alabaster/default.nix
+++ b/pkgs/development/python-modules/alabaster/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/bitprophet/alabaster";
-    description = "A Sphinx theme";
+    description = "Sphinx theme";
     license = licenses.bsd3;
   };
 }
diff --git a/pkgs/development/python-modules/ale-py/default.nix b/pkgs/development/python-modules/ale-py/default.nix
index 269d42e737d33..14c3e7b939a6e 100644
--- a/pkgs/development/python-modules/ale-py/default.nix
+++ b/pkgs/development/python-modules/ale-py/default.nix
@@ -77,7 +77,7 @@ buildPythonPackage rec {
   disabledTests = [ "test_check_env" ];
 
   meta = {
-    description = "A simple framework that allows researchers and hobbyists to develop AI agents for Atari 2600 games";
+    description = "Simple framework that allows researchers and hobbyists to develop AI agents for Atari 2600 games";
     mainProgram = "ale-import-roms";
     homepage = "https://github.com/mgbellemare/Arcade-Learning-Environment";
     changelog = "https://github.com/Farama-Foundation/Arcade-Learning-Environment/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/alectryon/default.nix b/pkgs/development/python-modules/alectryon/default.nix
index 545bf0681b4ce..6f048b0412300 100644
--- a/pkgs/development/python-modules/alectryon/default.nix
+++ b/pkgs/development/python-modules/alectryon/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/cpitclaudel/alectryon";
-    description = "A collection of tools for writing technical documents that mix Coq code and prose";
+    description = "Collection of tools for writing technical documents that mix Coq code and prose";
     mainProgram = "alectryon";
     license = licenses.mit;
     maintainers = with maintainers; [ Zimmi48 ];
diff --git a/pkgs/development/python-modules/alembic/default.nix b/pkgs/development/python-modules/alembic/default.nix
index f56082213ec24..039f03baacfbb 100644
--- a/pkgs/development/python-modules/alembic/default.nix
+++ b/pkgs/development/python-modules/alembic/default.nix
@@ -55,7 +55,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://bitbucket.org/zzzeek/alembic";
-    description = "A database migration tool for SQLAlchemy";
+    description = "Database migration tool for SQLAlchemy";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
     mainProgram = "alembic";
diff --git a/pkgs/development/python-modules/alive-progress/default.nix b/pkgs/development/python-modules/alive-progress/default.nix
index 74572b2c16fa8..8f24c6c86dd49 100644
--- a/pkgs/development/python-modules/alive-progress/default.nix
+++ b/pkgs/development/python-modules/alive-progress/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "alive_progress" ];
 
   meta = with lib; {
-    description = "A new kind of Progress Bar, with real-time throughput, ETA, and very cool animations";
+    description = "New kind of Progress Bar, with real-time throughput, ETA, and very cool animations";
     homepage = "https://github.com/rsalmei/alive-progress";
     changelog = "https://github.com/rsalmei/alive-progress/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/allure-behave/default.nix b/pkgs/development/python-modules/allure-behave/default.nix
index ed238e86961ba..4b80c97c8777d 100644
--- a/pkgs/development/python-modules/allure-behave/default.nix
+++ b/pkgs/development/python-modules/allure-behave/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Allure behave integration.";
+    description = "Allure behave integration";
     homepage = "https://github.com/allure-framework/allure-python";
     license = licenses.asl20;
     maintainers = with maintainers; [ happysalada ];
diff --git a/pkgs/development/python-modules/altair/default.nix b/pkgs/development/python-modules/altair/default.nix
index 3dd6eca6de469..1859803202363 100644
--- a/pkgs/development/python-modules/altair/default.nix
+++ b/pkgs/development/python-modules/altair/default.nix
@@ -68,7 +68,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A declarative statistical visualization library for Python.";
+    description = "Declarative statistical visualization library for Python";
     homepage = "https://altair-viz.github.io";
     downloadPage = "https://github.com/altair-viz/altair";
     changelog = "https://altair-viz.github.io/releases/changes.html";
diff --git a/pkgs/development/python-modules/altgraph/default.nix b/pkgs/development/python-modules/altgraph/default.nix
index f06d76e993a4c..e45be70d4a08f 100644
--- a/pkgs/development/python-modules/altgraph/default.nix
+++ b/pkgs/development/python-modules/altgraph/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/ronaldoussoren/altgraph/tags${version}";
-    description = "A fork of graphlib: a graph (network) package for constructing graphs";
+    description = "Fork of graphlib: a graph (network) package for constructing graphs";
     longDescription = ''
       altgraph is a fork of graphlib: a graph (network) package for constructing graphs,
       BFS and DFS traversals, topological sort, shortest paths, etc. with graphviz output.
diff --git a/pkgs/development/python-modules/amaranth-boards/default.nix b/pkgs/development/python-modules/amaranth-boards/default.nix
index 0d21b69cdef60..3e9548bfe5b61 100644
--- a/pkgs/development/python-modules/amaranth-boards/default.nix
+++ b/pkgs/development/python-modules/amaranth-boards/default.nix
@@ -5,11 +5,12 @@
   amaranth,
   setuptools,
   setuptools-scm,
+  unstableGitUpdater,
 }:
 
 buildPythonPackage rec {
   pname = "amaranth-boards";
-  version = "0-unstable-2023-12-13";
+  version = "0-unstable-2024-05-01";
   pyproject = true;
   # python setup.py --version
   realVersion = "0.1.dev202+g${lib.substring 0 7 src.rev}";
@@ -17,8 +18,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "amaranth-lang";
     repo = "amaranth-boards";
-    rev = "170675812b71ee722bcf8ccdb88409a9ad97ffe2";
-    hash = "sha256-dwZCKMJnEY9RjzkcJ9r3TEC7W+Wfi/P7Hjl4/d60/qo=";
+    rev = "aba2300dc83216523e1c98fdb22471cb4bac5027";
+    hash = "sha256-IMhNMkOf6dg4Djyi39TDTpU0S3TQM1+e6TBoyiITaos=";
   };
 
   nativeBuildInputs = [
@@ -37,12 +38,13 @@ buildPythonPackage rec {
   # no tests
   doCheck = false;
 
+  passthru.updateScript = unstableGitUpdater { };
+
   meta = with lib; {
     description = "Board definitions for Amaranth HDL";
     homepage = "https://github.com/amaranth-lang/amaranth-boards";
     license = licenses.bsd2;
     maintainers = with maintainers; [
-      emily
       thoughtpolice
       pbsds
     ];
diff --git a/pkgs/development/python-modules/amaranth-soc/default.nix b/pkgs/development/python-modules/amaranth-soc/default.nix
index d7cd667ed7aa7..597a1829161fc 100644
--- a/pkgs/development/python-modules/amaranth-soc/default.nix
+++ b/pkgs/development/python-modules/amaranth-soc/default.nix
@@ -4,20 +4,24 @@
   fetchFromGitHub,
   amaranth,
   pdm-backend,
+  unstableGitUpdater,
 }:
 
 buildPythonPackage rec {
   pname = "amaranth-soc";
-  version = "0-unstable-2024-02-16";
+  version = "0.1a-unstable-2024-06-10";
   pyproject = true;
   # from `pdm show`
-  realVersion = "0.1a1.dev1+g${lib.substring 0 7 src.rev}";
+  realVersion = let
+     tag = builtins.elemAt (lib.splitString "-" version) 0;
+     rev = lib.substring 0 7 src.rev;
+    in "${tag}1.dev1+g${rev}";
 
   src = fetchFromGitHub {
     owner = "amaranth-lang";
     repo = "amaranth-soc";
-    rev = "9f46553aa4289e2a11788a73fade6410a371b162";
-    hash = "sha256-ZllDSrZEu16jZtbQ7crQSj3XCbsthueXtaAvyf45dmY=";
+    rev = "e1b842800533f44924f21c3867bc2290084d100f";
+    hash = "sha256-GAGQEncONY566v8hLjGeZ7CRlOt36vHg+0a5xcB+g1Y=";
   };
 
   nativeBuildInputs = [ pdm-backend ];
@@ -27,12 +31,13 @@ buildPythonPackage rec {
     export PDM_BUILD_SCM_VERSION="${realVersion}"
   '';
 
+  passthru.updateScript = unstableGitUpdater { tagPrefix = "v"; };
+
   meta = with lib; {
     description = "System on Chip toolkit for Amaranth HDL";
     homepage = "https://github.com/amaranth-lang/amaranth-soc";
     license = licenses.bsd2;
     maintainers = with maintainers; [
-      emily
       thoughtpolice
       pbsds
     ];
diff --git a/pkgs/development/python-modules/amaranth/default.nix b/pkgs/development/python-modules/amaranth/default.nix
index 9895d315c385f..1a096f01606f4 100644
--- a/pkgs/development/python-modules/amaranth/default.nix
+++ b/pkgs/development/python-modules/amaranth/default.nix
@@ -53,12 +53,11 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "amaranth" ];
 
   meta = with lib; {
-    description = "A modern hardware definition language and toolchain based on Python";
+    description = "Modern hardware definition language and toolchain based on Python";
     mainProgram = "amaranth-rpc";
     homepage = "https://amaranth-lang.org/docs/amaranth";
     license = licenses.bsd2;
     maintainers = with maintainers; [
-      emily
       thoughtpolice
       pbsds
     ];
diff --git a/pkgs/development/python-modules/amazon-kclpy/default.nix b/pkgs/development/python-modules/amazon-kclpy/default.nix
index 4a95e78603113..3186ade269996 100644
--- a/pkgs/development/python-modules/amazon-kclpy/default.nix
+++ b/pkgs/development/python-modules/amazon-kclpy/default.nix
@@ -2,45 +2,49 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  python,
+  fetchpatch,
+  setuptools,
   mock,
-  boto,
-  pytest,
+  boto3,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "amazon-kclpy";
-  version = "2.1.3";
-  format = "setuptools";
+  version = "2.1.4";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "amazon-kinesis-client-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-3BhccRJd6quElXZSix1aVIqWr9wdcTTziDhnIOLiPPo=";
+    hash = "sha256-TWIGu7WuoaPhk8cz+hMXvGLIPQ5kly8aj20ZtvTZzwg=";
   };
 
-  # argparse is just required for python2.6
-  prePatch = ''
-    substituteInPlace setup.py \
-      --replace "'argparse'," ""
-  '';
+  patches = [
+    (fetchpatch {
+      name = "remove-deprecated-boto.patch";
+      url = "https://github.com/awslabs/amazon-kinesis-client-python/commit/bd2c442cdd1b0e2c99d3471c1d3ffcc9161a7c42.patch";
+      hash = "sha256-5W0qItDGjx1F6IllzLH57XCpToKrAu9mTbzv/1wMXuY=";
+    })
+  ];
+
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     mock
-    boto
+    boto3
   ];
 
-  nativeCheckInputs = [ pytest ];
+  pythonImportsCheck = [ "amazon_kclpy" ];
 
-  checkPhase = ''
-    ${python.interpreter} -m pytest
-  '';
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Amazon Kinesis Client Library for Python";
     homepage = "https://github.com/awslabs/amazon-kinesis-client-python";
-    license = licenses.amazonsl;
+    license = licenses.asl20;
     maintainers = with maintainers; [ psyanticy ];
+    broken = true;
   };
 }
diff --git a/pkgs/development/python-modules/ambiclimate/default.nix b/pkgs/development/python-modules/ambiclimate/default.nix
deleted file mode 100644
index 54ff63a282e3d..0000000000000
--- a/pkgs/development/python-modules/ambiclimate/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{
-  lib,
-  buildPythonPackage,
-  fetchPypi,
-  aiohttp,
-  async-timeout,
-}:
-
-buildPythonPackage rec {
-  pname = "ambiclimate";
-  version = "0.2.1";
-  format = "setuptools";
-
-  src = fetchPypi {
-    pname = "Ambiclimate";
-    inherit version;
-    sha256 = "0vhmpazc2n7qyyh7wqsz635w0f8afk2i5d592ikb84bgnfn83483";
-  };
-
-  propagatedBuildInputs = [
-    aiohttp
-    async-timeout
-  ];
-
-  # tests are not present
-  doCheck = false;
-
-  pythonImportsCheck = [ "ambiclimate" ];
-
-  meta = with lib; {
-    description = "Python library to communicate with ambiclimate";
-    homepage = "https://github.com/Danielhiversen/pyAmbiclimate";
-    license = with licenses; [ mit ];
-    maintainers = with maintainers; [ fab ];
-  };
-}
diff --git a/pkgs/development/python-modules/amcrest/default.nix b/pkgs/development/python-modules/amcrest/default.nix
index 4fffb467ef73d..0a217c6f7832b 100644
--- a/pkgs/development/python-modules/amcrest/default.nix
+++ b/pkgs/development/python-modules/amcrest/default.nix
@@ -3,11 +3,10 @@
   argcomplete,
   buildPythonPackage,
   fetchFromGitHub,
+  fetchpatch2,
   httpx,
   mock,
   pytestCheckHook,
-  pythonAtLeast,
-  pythonOlder,
   requests,
   responses,
   setuptools,
@@ -20,9 +19,6 @@ buildPythonPackage rec {
   version = "1.9.8";
   pyproject = true;
 
-  # Still uses distutils, https://github.com/tchellomello/python-amcrest/issues/234
-  disabled = pythonOlder "3.7" || pythonAtLeast "3.12";
-
   src = fetchFromGitHub {
     owner = "tchellomello";
     repo = "python-amcrest";
@@ -30,6 +26,15 @@ buildPythonPackage rec {
     hash = "sha256-v0jWEZo06vltEq//suGrvJ/AeeDxUG5CCFhbf03q34w=";
   };
 
+  patches = [
+    (fetchpatch2 {
+      # https://github.com/tchellomello/python-amcrest/pull/235
+      name = "replace-distutils.patch";
+      url = "https://github.com/tchellomello/python-amcrest/commit/ec56049c0f5b49bc4c5bcf0acb7fea89ec1c1df4.patch";
+      hash = "sha256-ym+Bn795y+JqhNMk4NPnOVr3DwO9DkUV0d9LEaz3CMo=";
+    })
+  ];
+
   build-system = [ setuptools ];
 
   dependencies = [
diff --git a/pkgs/development/python-modules/angr/default.nix b/pkgs/development/python-modules/angr/default.nix
index b7f04cace7290..9f1ff6bf299c2 100644
--- a/pkgs/development/python-modules/angr/default.nix
+++ b/pkgs/development/python-modules/angr/default.nix
@@ -37,7 +37,7 @@
 
 buildPythonPackage rec {
   pname = "angr";
-  version = "9.2.102";
+  version = "9.2.107";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -46,7 +46,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = "angr";
     rev = "refs/tags/v${version}";
-    hash = "sha256-NZO4aQQfp+P9nbVr+cFd5Z2Ziz9cYzuLUi6nVY+Czr0=";
+    hash = "sha256-f4RiLXEp4q3V2SiX6OSLHbAVCaZ5GLOvqm1qmBAYIZ8=";
   };
 
   pythonRelaxDeps = [ "capstone" ];
diff --git a/pkgs/development/python-modules/anova-wifi/default.nix b/pkgs/development/python-modules/anova-wifi/default.nix
index 4f4c00cd7bed7..fa0b7074094a3 100644
--- a/pkgs/development/python-modules/anova-wifi/default.nix
+++ b/pkgs/development/python-modules/anova-wifi/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "anova-wifi";
-  version = "0.12.0";
+  version = "0.13.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "Lash-L";
     repo = "anova_wifi";
     rev = "refs/tags/v${version}";
-    hash = "sha256-0RRnQBLglPnPin9/gqWDKIsfi5V7ydrdDKwm93WEnvk=";
+    hash = "sha256-5BSkUg36k2gNfOrVNkeRwU/4SlfEua3ZU4KTZmKSq4Q=";
   };
 
   postPatch = ''
@@ -49,7 +49,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "anova_wifi" ];
 
   meta = with lib; {
-    description = "A Python package for reading anova sous vide api data";
+    description = "Python package for reading anova sous vide api data";
     homepage = "https://github.com/Lash-L/anova_wifi";
     changelog = "https://github.com/Lash-L/anova_wifi/releases/tag/v${version}";
     maintainers = with maintainers; [ jamiemagee ];
diff --git a/pkgs/development/python-modules/ansible-builder/default.nix b/pkgs/development/python-modules/ansible-builder/default.nix
index cb2fa593d3ae7..f5a67d28eddb6 100644
--- a/pkgs/development/python-modules/ansible-builder/default.nix
+++ b/pkgs/development/python-modules/ansible-builder/default.nix
@@ -36,7 +36,7 @@ python3Packages.buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "An Ansible execution environment builder";
+    description = "Ansible execution environment builder";
     homepage = "https://ansible-builder.readthedocs.io/en/stable/";
     license = licenses.asl20;
     maintainers = with maintainers; [ melkor333 ];
diff --git a/pkgs/development/python-modules/ansible-compat/default.nix b/pkgs/development/python-modules/ansible-compat/default.nix
index 77036d0cf8ef4..493204c867382 100644
--- a/pkgs/development/python-modules/ansible-compat/default.nix
+++ b/pkgs/development/python-modules/ansible-compat/default.nix
@@ -3,6 +3,7 @@
   buildPythonPackage,
   fetchPypi,
   ansible-core,
+  coreutils,
   flaky,
   pytest-mock,
   pytestCheckHook,
@@ -15,14 +16,15 @@
 
 buildPythonPackage rec {
   pname = "ansible-compat";
-  version = "4.1.11";
+  version = "24.6.1";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.10";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-s+n518OhzmIi3kROncb+zn66cKxk8qC+/cTi1UIBi0o=";
+    pname = "ansible_compat";
+    inherit version;
+    hash = "sha256-+T1MNH2OGQPCkkSUQcCamH1wNm+crfmv5eMtyKAZPKw=";
   };
 
   nativeBuildInputs = [
@@ -37,7 +39,8 @@ buildPythonPackage rec {
 
   preCheck = ''
     export HOME=$(mktemp -d)
-    export PATH=$PATH:$out/bin
+    substituteInPlace test/test_runtime.py \
+      --replace-fail "printenv" "${coreutils}/bin/printenv"
   '';
 
   nativeCheckInputs = [
@@ -58,7 +61,9 @@ buildPythonPackage rec {
     "test_install_collection_dest"
     "test_upgrade_collection"
     "test_require_collection_no_cache_dir"
-    "test_runtime"
+    "test_runtime_has_playbook"
+    "test_runtime_plugins"
+    "test_scan_sys_path"
   ];
 
   pythonImportsCheck = [ "ansible_compat" ];
@@ -68,6 +73,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/ansible/ansible-compat";
     changelog = "https://github.com/ansible/ansible-compat/releases/tag/v${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ dawidd6 ];
   };
 }
diff --git a/pkgs/development/python-modules/ansible-kernel/default.nix b/pkgs/development/python-modules/ansible-kernel/default.nix
index 9b01dbc0de0d3..3dd5dcba8463d 100644
--- a/pkgs/development/python-modules/ansible-kernel/default.nix
+++ b/pkgs/development/python-modules/ansible-kernel/default.nix
@@ -75,7 +75,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "An Ansible kernel for Jupyter";
+    description = "Ansible kernel for Jupyter";
     homepage = "https://github.com/ansible/ansible-jupyter-kernel";
     license = licenses.asl20;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/ansible-navigator/default.nix b/pkgs/development/python-modules/ansible-navigator/default.nix
index 326d5f51943aa..4f5dca37452f1 100644
--- a/pkgs/development/python-modules/ansible-navigator/default.nix
+++ b/pkgs/development/python-modules/ansible-navigator/default.nix
@@ -40,7 +40,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A text-based user interface (TUI) for Ansible.";
+    description = "Text-based user interface (TUI) for Ansible";
     homepage = "https://ansible.readthedocs.io/projects/navigator/";
     license = licenses.asl20;
     maintainers = with maintainers; [ melkor333 ];
diff --git a/pkgs/development/python-modules/ansible-vault-rw/default.nix b/pkgs/development/python-modules/ansible-vault-rw/default.nix
index 1deb67f015bb9..1a772b3c639f9 100644
--- a/pkgs/development/python-modules/ansible-vault-rw/default.nix
+++ b/pkgs/development/python-modules/ansible-vault-rw/default.nix
@@ -40,7 +40,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "This project aim to R/W an ansible-vault yaml file.";
+    description = "This project aim to R/W an ansible-vault yaml file";
     homepage = "https://github.com/tomoh1r/ansible-vault";
     changelog = "https://github.com/tomoh1r/ansible-vault/blob/master/CHANGES.txt";
     license = licenses.gpl3;
diff --git a/pkgs/development/python-modules/ansible/default.nix b/pkgs/development/python-modules/ansible/default.nix
index 1c6457a5f7699..d2b531a0066fe 100644
--- a/pkgs/development/python-modules/ansible/default.nix
+++ b/pkgs/development/python-modules/ansible/default.nix
@@ -22,7 +22,7 @@
 
 let
   pname = "ansible";
-  version = "9.5.1";
+  version = "9.6.0";
 in
 buildPythonPackage {
   inherit pname version;
@@ -32,7 +32,7 @@ buildPythonPackage {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-PCeLyWQrl/yVOyugW5nNgIAedb81Z9+qHLUTH+DsHs0=";
+    hash = "sha256-WHMqStdKdG0pns+ki3qRyyF+LAvTpEST8tnymvLzq2E=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/ansicolor/default.nix b/pkgs/development/python-modules/ansicolor/default.nix
index 8ec12d37f5989..95f78fcec2391 100644
--- a/pkgs/development/python-modules/ansicolor/default.nix
+++ b/pkgs/development/python-modules/ansicolor/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ansicolor" ];
 
   meta = with lib; {
-    description = "A library to produce ansi color output and colored highlighting and diffing";
+    description = "Library to produce ansi color output and colored highlighting and diffing";
     homepage = "https://github.com/numerodix/ansicolor/";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/ansiconv/default.nix b/pkgs/development/python-modules/ansiconv/default.nix
index 6f76b757524a4..4e5a82dc33398 100644
--- a/pkgs/development/python-modules/ansiconv/default.nix
+++ b/pkgs/development/python-modules/ansiconv/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytest ];
 
   meta = with lib; {
-    description = "A module for converting ANSI coded text and converts it to either plain text or HTML";
+    description = "Module for converting ANSI coded text and converts it to either plain text or HTML";
     homepage = "https://github.com/ansible/ansiconv";
     license = licenses.mit;
     maintainers = with maintainers; [ psyanticy ];
diff --git a/pkgs/development/python-modules/ansimarkup/default.nix b/pkgs/development/python-modules/ansimarkup/default.nix
index 06d84f4c6f52e..2f0a1f8501035 100644
--- a/pkgs/development/python-modules/ansimarkup/default.nix
+++ b/pkgs/development/python-modules/ansimarkup/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ansimarkup" ];
 
   meta = with lib; {
-    description = "An XML-like markup for producing colored terminal text.";
+    description = "XML-like markup for producing colored terminal text";
     homepage = "https://github.com/gvalkov/python-ansimarkup";
     license = licenses.bsd3;
     maintainers = with maintainers; [ cpcloud ];
diff --git a/pkgs/development/python-modules/anywidget/default.nix b/pkgs/development/python-modules/anywidget/default.nix
index dd45e8f4676e9..03b41c11e2515 100644
--- a/pkgs/development/python-modules/anywidget/default.nix
+++ b/pkgs/development/python-modules/anywidget/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "anywidget";
-  version = "0.9.11";
+  version = "0.9.12";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-WN3tjobsJ84odgyUVzF2YxE9mvYIlH7mqNDstSiyLNw=";
+    hash = "sha256-JYVbJJbcZUE1a20mygyflSUgO7fPKBf4S5O/4/U8+B4=";
   };
 
   # We do not need the jupyterlab build dependency, because we do not need to
diff --git a/pkgs/development/python-modules/apispec/default.nix b/pkgs/development/python-modules/apispec/default.nix
index 46fbf4371971f..f64100ce676d9 100644
--- a/pkgs/development/python-modules/apispec/default.nix
+++ b/pkgs/development/python-modules/apispec/default.nix
@@ -48,7 +48,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/marshmallow-code/apispec/blob/${version}/CHANGELOG.rst";
-    description = "A pluggable API specification generator with support for the OpenAPI Specification";
+    description = "Pluggable API specification generator with support for the OpenAPI Specification";
     homepage = "https://github.com/marshmallow-code/apispec";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/apkinspector/default.nix b/pkgs/development/python-modules/apkinspector/default.nix
index 925845c73da3f..95bffbe4854bd 100644
--- a/pkgs/development/python-modules/apkinspector/default.nix
+++ b/pkgs/development/python-modules/apkinspector/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "apkinspector";
-  version = "1.2.3";
+  version = "1.2.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "erev0s";
     repo = "apkInspector";
     rev = "refs/tags/v${version}";
-    hash = "sha256-n6uVyN5XBEM/nuN7mvhNRwMUgUT5abOsh3CbhKK6ifY=";
+    hash = "sha256-WVqaRWOLo8/Xav+AtaxE3EKR9lZe+Z+ep/K88FGbASg=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/aplpy/default.nix b/pkgs/development/python-modules/aplpy/default.nix
index ab718a1840701..f786f70b0c8a1 100644
--- a/pkgs/development/python-modules/aplpy/default.nix
+++ b/pkgs/development/python-modules/aplpy/default.nix
@@ -77,7 +77,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "aplpy" ];
 
   meta = with lib; {
-    description = "The Astronomical Plotting Library in Python";
+    description = "Astronomical Plotting Library in Python";
     homepage = "http://aplpy.github.io";
     license = licenses.mit;
     maintainers = with maintainers; [ smaret ];
diff --git a/pkgs/development/python-modules/appdirs/default.nix b/pkgs/development/python-modules/appdirs/default.nix
index 0e1cebb646ca8..dff911c89dae9 100644
--- a/pkgs/development/python-modules/appdirs/default.nix
+++ b/pkgs/development/python-modules/appdirs/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   };
 
   meta = {
-    description = "A python module for determining appropriate platform-specific dirs";
+    description = "Python module for determining appropriate platform-specific dirs";
     homepage = "https://github.com/ActiveState/appdirs";
     license = lib.licenses.mit;
   };
diff --git a/pkgs/development/python-modules/approvaltests/default.nix b/pkgs/development/python-modules/approvaltests/default.nix
index 650aa440170ee..b1fa512928c39 100644
--- a/pkgs/development/python-modules/approvaltests/default.nix
+++ b/pkgs/development/python-modules/approvaltests/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "approvaltests";
-  version = "11.2.1";
+  version = "12.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "approvals";
     repo = "ApprovalTests.Python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-oG1TH9F8IYDZWLuL2TIesNuZQVzGQRqkGk502HTG+O8=";
+    hash = "sha256-Hd0cEAL5RGmAhob1oZwOVC+eXOxc9OTeUnrTTNCpL2E=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/apricot-select/default.nix b/pkgs/development/python-modules/apricot-select/default.nix
index b50707e96e6fa..f05e9b8e5e95f 100644
--- a/pkgs/development/python-modules/apricot-select/default.nix
+++ b/pkgs/development/python-modules/apricot-select/default.nix
@@ -2,6 +2,7 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+  apricot-select,
   numba,
   numpy,
   pynose,
@@ -37,15 +38,15 @@ buildPythonPackage rec {
   dependencies = [
     numba
     numpy
+    scikit-learn
     scipy
+    torchvision
     tqdm
   ];
 
   nativeCheckInputs = [
     pynose
     pytestCheckHook
-    scikit-learn
-    torchvision
   ];
 
   pythonImportsCheck = [ "apricot" ];
@@ -56,6 +57,21 @@ buildPythonPackage rec {
     "tests/test_optimizers/test_knapsack_feature_based.py"
   ];
 
+  # NOTE: These tests seem to be flaky.
+  disabledTests = [
+    "test_digits_modular"
+    "test_digits_modular_object"
+    "test_digits_modular_sparse"
+    "test_digits_sqrt_modular"
+    "test_digits_sqrt_modular_object"
+    "test_digits_sqrt_modular_sparse"
+  ];
+
+  # NOTE: Tests are disabled by default because they can run for hours and timeout on Hydra.
+  doCheck = false;
+
+  passthru.tests.check = apricot-select.overridePythonAttrs { doCheck = true; };
+
   meta = with lib; {
     description = "Module for submodular optimization for the purpose of selecting subsets of massive data sets";
     homepage = "https://github.com/jmschrei/apricot";
diff --git a/pkgs/development/python-modules/apsw/default.nix b/pkgs/development/python-modules/apsw/default.nix
index 06cacee9f1bff..9f296b76055d3 100644
--- a/pkgs/development/python-modules/apsw/default.nix
+++ b/pkgs/development/python-modules/apsw/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "apsw";
-  version = "3.45.3.0";
+  version = "3.46.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "rogerbinns";
     repo = "apsw";
     rev = "refs/tags/${version}";
-    hash = "sha256-7z9JXJn2a6RJAc+7KrkzzScrNmbb06ud6L1rBinzkP8=";
+    hash = "sha256-x1nG13RDJ5fZ3Eds7yYKcFQ3B+5YKxvMvXrAbXw4bSc=";
   };
 
   build-system = [ setuptools ];
@@ -37,7 +37,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/rogerbinns/apsw/blob/${src.rev}/doc/changes.rst";
-    description = "A Python wrapper for the SQLite embedded relational database engine";
+    description = "Python wrapper for the SQLite embedded relational database engine";
     homepage = "https://github.com/rogerbinns/apsw";
     license = licenses.zlib;
     maintainers = with maintainers; [ gador ];
diff --git a/pkgs/development/python-modules/arcam-fmj/default.nix b/pkgs/development/python-modules/arcam-fmj/default.nix
index c7a2f75795070..1588d8f14eb74 100644
--- a/pkgs/development/python-modules/arcam-fmj/default.nix
+++ b/pkgs/development/python-modules/arcam-fmj/default.nix
@@ -4,6 +4,7 @@
   pythonAtLeast,
   pythonOlder,
   fetchFromGitHub,
+  setuptools,
   aiohttp,
   attrs,
   defusedxml,
@@ -14,8 +15,8 @@
 
 buildPythonPackage rec {
   pname = "arcam-fmj";
-  version = "1.4.0";
-  format = "setuptools";
+  version = "1.5.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -23,10 +24,12 @@ buildPythonPackage rec {
     owner = "elupus";
     repo = "arcam_fmj";
     rev = "refs/tags/${version}";
-    hash = "sha256-/A3Fs0JyzW05L80CtI07Y/kTTrIC6yqubJfYO0kAEf0=";
+    hash = "sha256-hBoUxY+xtW04UPUG2P8A8QQbHxGk0bjcrtXis6nlaGg=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     aiohttp
     attrs
     defusedxml
@@ -48,6 +51,7 @@ buildPythonPackage rec {
     "test_silent_server_disconnect"
     "test_heartbeat"
     "test_cancellation"
+    "test_unsupported_zone"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/archinfo/default.nix b/pkgs/development/python-modules/archinfo/default.nix
index 47eef407bcb7c..f5331820f72d7 100644
--- a/pkgs/development/python-modules/archinfo/default.nix
+++ b/pkgs/development/python-modules/archinfo/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "archinfo";
-  version = "9.2.102";
+  version = "9.2.107";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = "archinfo";
     rev = "refs/tags/v${version}";
-    hash = "sha256-aZwU/i1tBT6M5+PNR77vYzPKklWERXhvG1kknwC0RQQ=";
+    hash = "sha256-D29ddBceo4Bz3KUiQckdbV0e9uPXEOAAIHZrSpqw3BE=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/archspec/default.nix b/pkgs/development/python-modules/archspec/default.nix
index d0f7e0ac67e30..3c9c0f00f7d7f 100644
--- a/pkgs/development/python-modules/archspec/default.nix
+++ b/pkgs/development/python-modules/archspec/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "archspec";
-  version = "0.2.3";
+  version = "0.2.4";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -21,12 +21,12 @@ buildPythonPackage rec {
     repo = "archspec";
     rev = "refs/tags/v${version}";
     fetchSubmodules = true;
-    hash = "sha256-Ek+rmgvG6DbtxljAEHVac/JzNI1MaLpPu4G8nhaxzg8=";
+    hash = "sha256-Xg1XdmKk2b6fqzOdedU3SGIgy65CjExxDByt/Xvmr24=";
   };
 
-  nativeBuildInputs = [ poetry-core ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [ click ];
+  dependecies = [ click ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -37,7 +37,6 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library for detecting, labeling, and reasoning about microarchitectures";
-    mainProgram = "archspec";
     homepage = "https://archspec.readthedocs.io/";
     changelog = "https://github.com/archspec/archspec/releases/tag/v${version}";
     license = with licenses; [
@@ -45,5 +44,6 @@ buildPythonPackage rec {
       asl20
     ];
     maintainers = with maintainers; [ atila ];
+    mainProgram = "archspec";
   };
 }
diff --git a/pkgs/development/python-modules/area/default.nix b/pkgs/development/python-modules/area/default.nix
index d1e072de8d87a..39b0ccd26cc26 100644
--- a/pkgs/development/python-modules/area/default.nix
+++ b/pkgs/development/python-modules/area/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "Calculate the area inside of any GeoJSON geometry. This is a port of Mapbox’s geojson-area for Python.";
+    description = "Calculate the area inside of any GeoJSON geometry. This is a port of Mapbox’s geojson-area for Python";
     homepage = "https://github.com/scisco/area";
     license = licenses.bsd2;
   };
diff --git a/pkgs/development/python-modules/argh/default.nix b/pkgs/development/python-modules/argh/default.nix
index 145682871993c..9d4167a3ddf1d 100644
--- a/pkgs/development/python-modules/argh/default.nix
+++ b/pkgs/development/python-modules/argh/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchPypi,
-  fetchpatch,
   flit-core,
   iocapture,
   mock,
@@ -32,7 +31,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/neithere/argh/blob/v${version}/CHANGES";
     homepage = "https://github.com/neithere/argh";
-    description = "An unobtrusive argparse wrapper with natural syntax";
+    description = "Unobtrusive argparse wrapper with natural syntax";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ domenkozar ];
   };
diff --git a/pkgs/development/python-modules/argparse-manpage/default.nix b/pkgs/development/python-modules/argparse-manpage/default.nix
index 6236e4150a06d..77bd37acd6f67 100644
--- a/pkgs/development/python-modules/argparse-manpage/default.nix
+++ b/pkgs/development/python-modules/argparse-manpage/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "argparse-manpage";
-  version = "4.5";
+  version = "4.6";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "praiskup";
     repo = "argparse-manpage";
-    rev = "v${version}";
-    hash = "sha256-9lriW+Yx/6ysoumloQglDm5JEcKNUWm422B3P6IE/EE=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-2GJDFLCaPTb8sQCAv9qZ+pIysFE7IaKh9co3Mb8Dutc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/arpy/default.nix b/pkgs/development/python-modules/arpy/default.nix
index b1b8cbd68ddcb..819d4559dc948 100644
--- a/pkgs/development/python-modules/arpy/default.nix
+++ b/pkgs/development/python-modules/arpy/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "arpy" ];
 
   meta = with lib; {
-    description = "A library for accessing the archive files and reading the contents";
+    description = "Library for accessing the archive files and reading the contents";
     homepage = "https://github.com/viraptor/arpy";
     license = licenses.bsd2;
     maintainers = with maintainers; [ thornycrackers ];
diff --git a/pkgs/development/python-modules/ase/default.nix b/pkgs/development/python-modules/ase/default.nix
index 6bd5f58b4203a..b6b020c071219 100644
--- a/pkgs/development/python-modules/ase/default.nix
+++ b/pkgs/development/python-modules/ase/default.nix
@@ -1,5 +1,6 @@
 {
   lib,
+  stdenv,
   fetchPypi,
   buildPythonPackage,
   isPy27,
@@ -11,6 +12,7 @@
   flask,
   pillow,
   psycopg2,
+  tkinter,
   pytestCheckHook,
   pytest-mock,
   pytest-xdist,
@@ -37,6 +39,8 @@ buildPythonPackage rec {
     flask
     pillow
     psycopg2
+  ] ++ lib.optionals stdenv.isDarwin [
+    tkinter
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/asgineer/default.nix b/pkgs/development/python-modules/asgineer/default.nix
index b9b856fe4e1bd..f16cb368f4b8c 100644
--- a/pkgs/development/python-modules/asgineer/default.nix
+++ b/pkgs/development/python-modules/asgineer/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A really thin ASGI web framework";
+    description = "Really thin ASGI web framework";
     license = licenses.bsd2;
     homepage = "https://asgineer.readthedocs.io";
     maintainers = [ maintainers.matthiasbeyer ];
diff --git a/pkgs/development/python-modules/aspy-refactor-imports/default.nix b/pkgs/development/python-modules/aspy-refactor-imports/default.nix
index 7271669c8ff31..bcfb80b32e814 100644
--- a/pkgs/development/python-modules/aspy-refactor-imports/default.nix
+++ b/pkgs/development/python-modules/aspy-refactor-imports/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   disabledTests = lib.optionals stdenv.isDarwin [ "test_application_directory_case" ];
 
   meta = with lib; {
-    description = "Utilities for refactoring imports in python-like syntax.";
+    description = "Utilities for refactoring imports in python-like syntax";
     homepage = "https://github.com/asottile/aspy.refactor_imports";
     license = licenses.mit;
     maintainers = with maintainers; [ gador ];
diff --git a/pkgs/development/python-modules/aspy-yaml/default.nix b/pkgs/development/python-modules/aspy-yaml/default.nix
index 87f3d2f0ab818..5387b50c108d4 100644
--- a/pkgs/development/python-modules/aspy-yaml/default.nix
+++ b/pkgs/development/python-modules/aspy-yaml/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A few extensions to pyyaml";
+    description = "Few extensions to pyyaml";
     homepage = "https://github.com/asottile/aspy.yaml";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/asterisk-mbox/default.nix b/pkgs/development/python-modules/asterisk-mbox/default.nix
index d0a1b28536d0f..7b6af81ba0339 100644
--- a/pkgs/development/python-modules/asterisk-mbox/default.nix
+++ b/pkgs/development/python-modules/asterisk-mbox/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "asterisk_mbox" ];
 
   meta = with lib; {
-    description = "The client side of a client/server to interact with Asterisk voicemail mailboxes";
+    description = "Client side of a client/server to interact with Asterisk voicemail mailboxes";
     homepage = "https://github.com/PhracturedBlue/asterisk_mbox";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/asteroid-filterbanks/default.nix b/pkgs/development/python-modules/asteroid-filterbanks/default.nix
index e01ecde83cce6..9c41816421752 100644
--- a/pkgs/development/python-modules/asteroid-filterbanks/default.nix
+++ b/pkgs/development/python-modules/asteroid-filterbanks/default.nix
@@ -47,7 +47,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "asteroid_filterbanks" ];
 
   meta = with lib; {
-    description = "The PyTorch-based audio source separation toolkit for researchers";
+    description = "PyTorch-based audio source separation toolkit for researchers";
     homepage = "https://github.com/asteroid-team/asteroid-filterbanks";
     license = licenses.mit;
     maintainers = with maintainers; [ matthewcroughan ];
diff --git a/pkgs/development/python-modules/asteval/default.nix b/pkgs/development/python-modules/asteval/default.nix
index d625dfe3448ed..e9eed2ac38e0e 100644
--- a/pkgs/development/python-modules/asteval/default.nix
+++ b/pkgs/development/python-modules/asteval/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "asteval";
-  version = "0.9.32";
+  version = "0.9.33";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "lmfit";
     repo = "asteval";
     rev = "refs/tags/${version}";
-    hash = "sha256-3eML5lEKEUlp3Fwdgvk31an83x8no5ichskKvzYJDsE=";
+    hash = "sha256-j07HH84cn2AA5DyMcM7sXiBubCjZP67RJXVcErMPyBk=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/astroid/default.nix b/pkgs/development/python-modules/astroid/default.nix
index c1161eb1e58f9..123af54621648 100644
--- a/pkgs/development/python-modules/astroid/default.nix
+++ b/pkgs/development/python-modules/astroid/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/PyCQA/astroid/blob/${src.rev}/ChangeLog";
-    description = "An abstract syntax tree for Python with inference support";
+    description = "Abstract syntax tree for Python with inference support";
     homepage = "https://github.com/PyCQA/astroid";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/pkgs/development/python-modules/astropy-helpers/default.nix b/pkgs/development/python-modules/astropy-helpers/default.nix
index 6588d88009dcd..c803ac0449c37 100644
--- a/pkgs/development/python-modules/astropy-helpers/default.nix
+++ b/pkgs/development/python-modules/astropy-helpers/default.nix
@@ -3,6 +3,7 @@
   buildPythonPackage,
   fetchPypi,
   isPy3k,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -10,7 +11,8 @@ buildPythonPackage rec {
   version = "4.0.1";
   format = "setuptools";
 
-  disabled = !isPy3k;
+  # ModuleNotFoundError: No module named 'imp'
+  disabled = !isPy3k || pythonAtLeast "3.12";
 
   doCheck = false; # tests requires sphinx-astropy
 
diff --git a/pkgs/development/python-modules/asyncwhois/default.nix b/pkgs/development/python-modules/asyncwhois/default.nix
index 938ff02ce7e81..f2c341a3b593c 100644
--- a/pkgs/development/python-modules/asyncwhois/default.nix
+++ b/pkgs/development/python-modules/asyncwhois/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "asyncwhois";
-  version = "1.1.2";
+  version = "1.1.4";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "pogzyb";
     repo = "asyncwhois";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ESVgK4Z26OAamdHPEVxysnlJ0rEUlr8KNd24fawHuEg=";
+    hash = "sha256-BjHGp94vad5qTvffiU8ZEOxYeXNzQHlNq1SaxviYfps=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/atlassian-python-api/default.nix b/pkgs/development/python-modules/atlassian-python-api/default.nix
index 922f3831b5e04..78775f666f500 100644
--- a/pkgs/development/python-modules/atlassian-python-api/default.nix
+++ b/pkgs/development/python-modules/atlassian-python-api/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "atlassian-python-api";
-  version = "3.41.11";
+  version = "3.41.13";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "atlassian-api";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-yQqy+pFl5TK4CEUM+vpwl+pkUjBuc0xvqC9o1ZC5m7c=";
+    hash = "sha256-ldSiO9exbF89KDaspj3kIzAZzOfr/6ohlOyQ5mBxo/U=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/attacut/default.nix b/pkgs/development/python-modules/attacut/default.nix
index 70e8a98ccfd45..9724ac0a27418 100644
--- a/pkgs/development/python-modules/attacut/default.nix
+++ b/pkgs/development/python-modules/attacut/default.nix
@@ -64,7 +64,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "attacut" ];
 
   meta = with lib; {
-    description = "A Fast and Accurate Neural Thai Word Segmenter";
+    description = "Fast and Accurate Neural Thai Word Segmenter";
     homepage = "https://github.com/PyThaiNLP/attacut";
     license = licenses.mit;
     maintainers = with maintainers; [ vizid ];
diff --git a/pkgs/development/python-modules/attrdict/default.nix b/pkgs/development/python-modules/attrdict/default.nix
index fb7bc91ad1324..00c25a332e76f 100644
--- a/pkgs/development/python-modules/attrdict/default.nix
+++ b/pkgs/development/python-modules/attrdict/default.nix
@@ -41,7 +41,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "attrdict" ];
 
   meta = with lib; {
-    description = "A dict with attribute-style access";
+    description = "Dict with attribute-style access";
     homepage = "https://github.com/bcj/AttrDict";
     changelog = "https://github.com/bcj/AttrDict/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/aubio/default.nix b/pkgs/development/python-modules/aubio/default.nix
index f6766bd56a536..a5b03baad8d1c 100644
--- a/pkgs/development/python-modules/aubio/default.nix
+++ b/pkgs/development/python-modules/aubio/default.nix
@@ -2,6 +2,7 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+  fetchpatch,
   setuptools,
   numpy,
   pytestCheckHook,
@@ -21,6 +22,15 @@ buildPythonPackage rec {
     hash = "sha256-RvzhB1kQNP0IbAygwH2RBi/kSyuFPAHgsiCATPeMHTo=";
   };
 
+  patches = [
+    (fetchpatch {
+      # fix "incompatible function pointer types initializing 'PyUFuncGenericFunction'"
+      name = "const-function-signature.patch";
+      url = "https://github.com/aubio/aubio/commit/95ff046c698156f21e2ca0d1d8a02c23ab76969f.patch";
+      hash = "sha256-qKcIPjpcZUizSN/t96WOiOn+IlsrlC0+g7gW77KejH0=";
+    })
+  ];
+
   buildInputs = lib.optionals stdenv.isDarwin (
     with darwin.apple_sdk.frameworks;
     [
@@ -40,7 +50,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "aubio" ];
 
   meta = with lib; {
-    description = "a library for audio and music analysis";
+    description = "Library for audio and music analysis";
     homepage = "https://aubio.org";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/authcaptureproxy/default.nix b/pkgs/development/python-modules/authcaptureproxy/default.nix
index 5a7ca4f2bbc0d..7aa705244501b 100644
--- a/pkgs/development/python-modules/authcaptureproxy/default.nix
+++ b/pkgs/development/python-modules/authcaptureproxy/default.nix
@@ -57,7 +57,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/alandtse/auth_capture_proxy/releases/tag/v${version}";
-    description = "A proxy to capture authentication information from a webpage";
+    description = "Proxy to capture authentication information from a webpage";
     mainProgram = "auth_capture_proxy";
     homepage = "https://github.com/alandtse/auth_capture_proxy";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/authlib/default.nix b/pkgs/development/python-modules/authlib/default.nix
index cda09f45d17df..10596261a5f6d 100644
--- a/pkgs/development/python-modules/authlib/default.nix
+++ b/pkgs/development/python-modules/authlib/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "authlib";
-  version = "1.3.0";
+  version = "1.3.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "lepture";
     repo = "authlib";
     rev = "refs/tags/v${version}";
-    hash = "sha256-XHzABjGpZN6ilYuBYyGF3Xy/+AT2DXick8/A4JkyWBA=";
+    hash = "sha256-5AZca4APi2gLwj/AHtXOPzIFnJkCmK9mDV0bAAvIx8A=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/autopage/default.nix b/pkgs/development/python-modules/autopage/default.nix
index 99ed7cc7c02d7..8d2963037a349 100644
--- a/pkgs/development/python-modules/autopage/default.nix
+++ b/pkgs/development/python-modules/autopage/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "autopage" ];
 
   meta = with lib; {
-    description = "A library to provide automatic paging for console output";
+    description = "Library to provide automatic paging for console output";
     homepage = "https://github.com/zaneb/autopage";
     license = licenses.asl20;
     maintainers = teams.openstack.members;
diff --git a/pkgs/development/python-modules/autopep8/default.nix b/pkgs/development/python-modules/autopep8/default.nix
index 316d9edc1a1da..4088b131d4e3a 100644
--- a/pkgs/development/python-modules/autopep8/default.nix
+++ b/pkgs/development/python-modules/autopep8/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   glibcLocales,
   pycodestyle,
   pytestCheckHook,
@@ -38,7 +37,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/hhatto/autopep8/releases/tag/v${version}";
-    description = "A tool that automatically formats Python code to conform to the PEP 8 style guide";
+    description = "Tool that automatically formats Python code to conform to the PEP 8 style guide";
     homepage = "https://github.com/hhatto/autopep8";
     license = licenses.mit;
     mainProgram = "autopep8";
diff --git a/pkgs/development/python-modules/autotrash/default.nix b/pkgs/development/python-modules/autotrash/default.nix
new file mode 100644
index 0000000000000..1d0e28405c93f
--- /dev/null
+++ b/pkgs/development/python-modules/autotrash/default.nix
@@ -0,0 +1,33 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "autotrash";
+  version = "0.4.7";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "bneijt";
+    repo = "autotrash";
+    rev = "refs/tags/${version}";
+    hash = "sha256-qMU3jjBL5+fd9vKX5BIqES5AM8D/54aBOmdHFiBtfEo=";
+  };
+
+  build-system = [ poetry-core ];
+
+  pythonImportsCheck = [ "autotrash" ];
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    description = "Tool to automatically purge old trashed files";
+    license = licenses.gpl3Plus;
+    homepage = "https://bneijt.nl/pr/autotrash";
+    maintainers = with maintainers; [ sigmanificient ];
+    mainProgram = "autotrash";
+  };
+}
diff --git a/pkgs/development/python-modules/avro-python3/default.nix b/pkgs/development/python-modules/avro-python3/default.nix
index 921803ce1351b..df1e67017ab56 100644
--- a/pkgs/development/python-modules/avro-python3/default.nix
+++ b/pkgs/development/python-modules/avro-python3/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   doCheck = false; # No such file or directory: './run_tests.py
 
   meta = with lib; {
-    description = "A serialization and RPC framework";
+    description = "Serialization and RPC framework";
     mainProgram = "avro";
     homepage = "https://pypi.python.org/pypi/avro-python3/";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/avro3k/default.nix b/pkgs/development/python-modules/avro3k/default.nix
index 9b3ac0359f8a0..a2e9c344c5649 100644
--- a/pkgs/development/python-modules/avro3k/default.nix
+++ b/pkgs/development/python-modules/avro3k/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   doCheck = false; # No such file or directory: './run_tests.py
 
   meta = with lib; {
-    description = "A serialization and RPC framework";
+    description = "Serialization and RPC framework";
     mainProgram = "avro";
     homepage = "https://pypi.python.org/pypi/avro3k/";
   };
diff --git a/pkgs/development/python-modules/avwx-engine/default.nix b/pkgs/development/python-modules/avwx-engine/default.nix
index ccaaa09e5b099..0d0be882efe8f 100644
--- a/pkgs/development/python-modules/avwx-engine/default.nix
+++ b/pkgs/development/python-modules/avwx-engine/default.nix
@@ -3,11 +3,11 @@
   buildPythonPackage,
   fetchFromGitHub,
   geopy,
+  hatchling,
   httpx,
   numpy,
-  poetry-core,
-  pytestCheckHook,
   pytest-asyncio,
+  pytestCheckHook,
   python-dateutil,
   pythonOlder,
   rapidfuzz,
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "avwx-engine";
-  version = "1.8.28";
+  version = "1.9.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -28,14 +28,14 @@ buildPythonPackage rec {
     owner = "avwx-rest";
     repo = "avwx-engine";
     rev = "refs/tags/${version}";
-    hash = "sha256-sxOLhcmTJg/dTrtemr9BcfcBoHTP1eGo8U1ab8iSvUM=";
+    hash = "sha256-CUnUz2SsXtWaqGzaB1PH+EoHqebSue6e8GXhRZRcXLs=";
   };
 
   postPatch = ''
     sed -i -e "/--cov/d" -e "/--no-cov/d" pyproject.toml
   '';
 
-  build-system = [ poetry-core ];
+  build-system = [ hatchling ];
 
   dependencies = [
     geopy
diff --git a/pkgs/development/python-modules/awkward-cpp/default.nix b/pkgs/development/python-modules/awkward-cpp/default.nix
index e7a85e47a9a77..9b4a45c2f4053 100644
--- a/pkgs/development/python-modules/awkward-cpp/default.nix
+++ b/pkgs/development/python-modules/awkward-cpp/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "awkward-cpp";
-  version = "33";
+  version = "34";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-VQrevM0ynRjQLpUibQuJaYGI/TPkTwdFCULGkogZJ9g=";
+    hash = "sha256-OayBTXafOK3ppfbDm4Wwe7wFr1Y0L7FXQu3OEjf54Ek=";
   };
 
   build-system = [
@@ -35,11 +35,11 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "awkward_cpp" ];
 
-  meta = with lib; {
+  meta = {
     description = "CPU kernels and compiled extensions for Awkward Array";
     homepage = "https://github.com/scikit-hep/awkward";
     changelog = "https://github.com/scikit-hep/awkward/releases/tag/v${version}";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ veprbl ];
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ veprbl ];
   };
 }
diff --git a/pkgs/development/python-modules/awkward/default.nix b/pkgs/development/python-modules/awkward/default.nix
index d0d028be234a5..f7f613148f9e5 100644
--- a/pkgs/development/python-modules/awkward/default.nix
+++ b/pkgs/development/python-modules/awkward/default.nix
@@ -25,7 +25,7 @@
 
 buildPythonPackage rec {
   pname = "awkward";
-  version = "2.6.4";
+  version = "2.6.5";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "scikit-hep";
     repo = "awkward";
     rev = "refs/tags/v${version}";
-    hash = "sha256-hoNxNxWfoSlBg6CsKvgEknM4vd+rN/9EFD5nC2y45OA=";
+    hash = "sha256-HDO626bK5BH/mdLuGkeYIOz8X2N9/rkTLhQNzG1erYA=";
   };
 
   build-system = [
@@ -80,11 +80,11 @@ buildPythonPackage rec {
     # Disable tests dependending on jax on darwin
   ] ++ lib.optionals stdenv.isDarwin [ "tests/test_2603_custom_behaviors_with_jax.py" ];
 
-  meta = with lib; {
+  meta = {
     description = "Manipulate JSON-like data with NumPy-like idioms";
     homepage = "https://github.com/scikit-hep/awkward";
     changelog = "https://github.com/scikit-hep/awkward/releases/tag/v${version}";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ veprbl ];
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ veprbl ];
   };
 }
diff --git a/pkgs/development/python-modules/aws-encryption-sdk/default.nix b/pkgs/development/python-modules/aws-encryption-sdk/default.nix
index 2094ab1e3c4d2..35e3af8980d19 100644
--- a/pkgs/development/python-modules/aws-encryption-sdk/default.nix
+++ b/pkgs/development/python-modules/aws-encryption-sdk/default.nix
@@ -15,19 +15,19 @@
 
 buildPythonPackage rec {
   pname = "aws-encryption-sdk";
-  version = "3.2.0";
+  version = "3.3.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-QwT8+M4qo/qYsaz/ejvzzQUowynAxDe1Xg9Fa79iNH4=";
+    hash = "sha256-6yrboU9IHNg9cWmrjmQplIltOaSmTheWkEprSSVmE7A=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     attrs
     boto3
     cryptography
diff --git a/pkgs/development/python-modules/aws-lambda-builders/default.nix b/pkgs/development/python-modules/aws-lambda-builders/default.nix
index 4ef304c6c2a1b..97257d6108ffc 100644
--- a/pkgs/development/python-modules/aws-lambda-builders/default.nix
+++ b/pkgs/development/python-modules/aws-lambda-builders/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "aws-lambda-builders";
-  version = "1.49.0";
+  version = "1.50.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "awslabs";
     repo = "aws-lambda-builders";
     rev = "refs/tags/v${version}";
-    hash = "sha256-14qG3AuIlQI6n2XouPfUx7LNZqR0gSnI4OlkiYS62jA=";
+    hash = "sha256-GXpyO+Qd6NP5yxWn1kw34x+P5uyR0rcNlzwivT6eHdE=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/awscrt/default.nix b/pkgs/development/python-modules/awscrt/default.nix
index 05daf72893dfc..74d7a17a8f6c0 100644
--- a/pkgs/development/python-modules/awscrt/default.nix
+++ b/pkgs/development/python-modules/awscrt/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "awscrt";
-  version = "0.20.9";
+  version = "0.20.11";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-JDeFrJ7mSUXgR5wjhDJVRfKVl1dXQ86Ew3FVbRAU5j4=";
+    hash = "sha256-w9v7fxkJRXlS5kU3PnK2n5DFDEZe5qRtm73BKst5gDw=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [
diff --git a/pkgs/development/python-modules/ax/default.nix b/pkgs/development/python-modules/ax/default.nix
index ac6f96e48f2aa..dddcc6e1ebeb5 100644
--- a/pkgs/development/python-modules/ax/default.nix
+++ b/pkgs/development/python-modules/ax/default.nix
@@ -2,11 +2,13 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+  ax,
   botorch,
   ipywidgets,
   jinja2,
   pandas,
   plotly,
+  python,
   setuptools,
   setuptools-scm,
   typeguard,
@@ -79,6 +81,11 @@ buildPythonPackage rec {
   ];
   pythonImportsCheck = [ "ax" ];
 
+  # Many portions of the test suite fail under Python 3.12
+  doCheck = lib.versions.majorMinor python.version != "3.12";
+
+  passthru.tests.check = ax.overridePythonAttrs { doCheck = true; };
+
   meta = with lib; {
     description = "Ax is an accessible, general-purpose platform for understanding, managing, deploying, and automating adaptive experiments";
     homepage = "https://ax.dev/";
diff --git a/pkgs/development/python-modules/azure-eventgrid/default.nix b/pkgs/development/python-modules/azure-eventgrid/default.nix
index a124885aed001..786156d4c118f 100644
--- a/pkgs/development/python-modules/azure-eventgrid/default.nix
+++ b/pkgs/development/python-modules/azure-eventgrid/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "azure-eventgrid";
-  version = "4.19.0";
+  version = "4.20.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-a9fVQBbMo6Zwdp6WTYKiQBlqJcQRs+nxqKqBVcPbBew=";
+    hash = "sha256-we2rkHabxOei+wogN88EVXVNUK95NnTAiz/sIpMkjEw=";
   };
 
   build-system = [ setuptools ];
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "azure.eventgrid" ];
 
   meta = with lib; {
-    description = "A fully-managed intelligent event routing service that allows for uniform event consumption using a publish-subscribe model";
+    description = "Fully-managed intelligent event routing service that allows for uniform event consumption using a publish-subscribe model";
     homepage = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/eventgrid/azure-eventgrid";
     changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-eventgrid_${version}/sdk/eventgrid/azure-eventgrid/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/azure-eventhub/default.nix b/pkgs/development/python-modules/azure-eventhub/default.nix
index ceff113cc60af..1925ea45912bf 100644
--- a/pkgs/development/python-modules/azure-eventhub/default.nix
+++ b/pkgs/development/python-modules/azure-eventhub/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "azure-eventhub";
-  version = "5.11.7";
+  version = "5.12.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-C0Ywon7jrAxEjD8jdSHV3K71qKGnJBQjUGwEY3oKRLA=";
+    hash = "sha256-EqF/V51puTDZBuqVeuzEVoJ0/xrQn8qhiLt7/pvpsXY=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/azure-mgmt-netapp/default.nix b/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
index a9fe7b0ab5f4c..1fe67e96717be 100644
--- a/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
@@ -6,21 +6,24 @@
   azure-common,
   azure-mgmt-core,
   isodate,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-netapp";
-  version = "12.0.0";
-  format = "setuptools";
+  version = "13.0.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-bC7HZzIeUK4E6HcQgguB/sDr1G1kPkS/A43xZ6pBpyw=";
+    hash = "sha256-R322hzij1kcnrwxMClOzta40cMnd4w6bGnp5+p2pMQ8=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     azure-common
     azure-mgmt-core
     isodate
diff --git a/pkgs/development/python-modules/azure-mgmt-network/default.nix b/pkgs/development/python-modules/azure-mgmt-network/default.nix
index 7fe9320abaabe..9df7aa588c35d 100644
--- a/pkgs/development/python-modules/azure-mgmt-network/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-network/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-network";
-  version = "25.3.0";
+  version = "25.4.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-3OLK+xrg5WPgte/FN9yYp8Ctgk1CYeZL7XX3iBlt1cY=";
+    hash = "sha256-ozjmLYH9vwUPgCFDwoy5ZbB+3UOADvBQTN+muIVNdVQ=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/azure-monitor-ingestion/default.nix b/pkgs/development/python-modules/azure-monitor-ingestion/default.nix
index 43e3c13022b11..e77ae5df94d3d 100644
--- a/pkgs/development/python-modules/azure-monitor-ingestion/default.nix
+++ b/pkgs/development/python-modules/azure-monitor-ingestion/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "azure-monitor-ingestion";
-  version = "1.0.3";
+  version = "1.0.4";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-idAEqP+HaZs/0fzyBaqO8enTTySg88w3TSIUceiYdDs=";
+    hash = "sha256-JU11mTof5wfRmPAUrvWhT6pXDO5zabNbsDriqo+Zvnk=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/azure-multiapi-storage/default.nix b/pkgs/development/python-modules/azure-multiapi-storage/default.nix
index a3697ae4564d0..d03aaf12f9caf 100644
--- a/pkgs/development/python-modules/azure-multiapi-storage/default.nix
+++ b/pkgs/development/python-modules/azure-multiapi-storage/default.nix
@@ -47,7 +47,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Microsoft Azure Storage Client Library for Python with multi API version support.";
+    description = "Microsoft Azure Storage Client Library for Python with multi API version support";
     homepage = "https://github.com/Azure/azure-sdk-for-python";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
diff --git a/pkgs/development/python-modules/azure-servicebus/default.nix b/pkgs/development/python-modules/azure-servicebus/default.nix
index ba9864d8c128a..6e622d51794d0 100644
--- a/pkgs/development/python-modules/azure-servicebus/default.nix
+++ b/pkgs/development/python-modules/azure-servicebus/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "azure-servicebus";
-  version = "7.12.1";
+  version = "7.12.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-sRv1aer3fDDYp2+IuTwIcT/TYYjZzG2r9x6tsQ63Qvk=";
+    hash = "sha256-pqPF957VvvEB2ePjyYahA7IA4mxJU8R6UvVSx1fkXso=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-storage-queue/default.nix b/pkgs/development/python-modules/azure-storage-queue/default.nix
index 8f3a18b51c6ef..50f5d701138b5 100644
--- a/pkgs/development/python-modules/azure-storage-queue/default.nix
+++ b/pkgs/development/python-modules/azure-storage-queue/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "azure-storage-queue";
-  version = "12.9.0";
+  version = "12.10.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-mBAbDhfaDUcM9XALbEDP50Q57Dycds84OYCW5zcbnRs=";
+    hash = "sha256-dnuj1czNtPcJdOXOYdFkx6t0cyz7K0Qd2HN2aaIRbag=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/azure-synapse-artifacts/default.nix b/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
index 3e628b3cbeb1b..0cc9e72a984dd 100644
--- a/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
+++ b/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "azure-synapse-artifacts";
-  version = "0.18.0";
+  version = "0.19.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-qgiHMzW7T5NuQl0jwZheMXp7wHhNOHyH24J6wfc4VqQ=";
+    hash = "sha256-UvCSsiZ315IoDwvMI02JLJ9zjpPI4Ut0wZUQG5uicYQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/b2sdk/default.nix b/pkgs/development/python-modules/b2sdk/default.nix
index aa5fa2e2c40db..aa53bbe3ddc06 100644
--- a/pkgs/development/python-modules/b2sdk/default.nix
+++ b/pkgs/development/python-modules/b2sdk/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "b2sdk";
-  version = "2.2.1";
+  version = "2.3.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "Backblaze";
     repo = "b2-sdk-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ENEAynUd66sjS+/Qoy9qyffPpSvxdnY1Nwdi+JTE96I=";
+    hash = "sha256-Duva6rFYtMAfMYb2Ze8k3jIX8Ld8u4zdl7WXDbS0o64=";
   };
 
   build-system = [ pdm-backend ];
diff --git a/pkgs/development/python-modules/babelfish/default.nix b/pkgs/development/python-modules/babelfish/default.nix
index 292ddc5d26101..5f59c2b110532 100644
--- a/pkgs/development/python-modules/babelfish/default.nix
+++ b/pkgs/development/python-modules/babelfish/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://pypi.python.org/pypi/babelfish";
-    description = "A module to work with countries and languages";
+    description = "Module to work with countries and languages";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/backports-shutil-get-terminal-size/default.nix b/pkgs/development/python-modules/backports-shutil-get-terminal-size/default.nix
index 644ccaf657dd1..b70f3acaaea9c 100644
--- a/pkgs/development/python-modules/backports-shutil-get-terminal-size/default.nix
+++ b/pkgs/development/python-modules/backports-shutil-get-terminal-size/default.nix
@@ -29,7 +29,7 @@ else
     nativeCheckInputs = [ pytest ];
 
     meta = with lib; {
-      description = "A backport of the get_terminal_size function from Python 3.3’s shutil.";
+      description = "Backport of the get_terminal_size function from Python 3.3’s shutil";
       homepage = "https://github.com/chrippa/backports.shutil_get_terminal_size";
       license = with licenses; [ mit ];
       maintainers = teams.sage.members;
diff --git a/pkgs/development/python-modules/bambi/default.nix b/pkgs/development/python-modules/bambi/default.nix
index 9f051f511c4dd..f2447b2c9d125 100644
--- a/pkgs/development/python-modules/bambi/default.nix
+++ b/pkgs/development/python-modules/bambi/default.nix
@@ -87,5 +87,7 @@ buildPythonPackage rec {
     changelog = "https://github.com/bambinos/bambi/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ bcdarwin ];
+    # https://github.com/NixOS/nixpkgs/issues/310940
+    broken = true;
   };
 }
diff --git a/pkgs/development/python-modules/bandit/default.nix b/pkgs/development/python-modules/bandit/default.nix
index b81a24dbf48db..8495ccf626f7e 100644
--- a/pkgs/development/python-modules/bandit/default.nix
+++ b/pkgs/development/python-modules/bandit/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "bandit";
-  version = "1.7.8";
+  version = "1.7.9";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Nt5Q9yCFarJKJNuqX+4sZgUO2XwUd+ChFZ3qsXdeq2s=";
+    hash = "sha256-fDlaQ2dDAY974KTLsKTqm5ArbYcmTd7PjP3HO094/2E=";
   };
 
   nativeBuildInputs = [ pbr ];
diff --git a/pkgs/development/python-modules/bap/default.nix b/pkgs/development/python-modules/bap/default.nix
index 67460f40751bd..f598b1aa7907c 100644
--- a/pkgs/development/python-modules/bap/default.nix
+++ b/pkgs/development/python-modules/bap/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "Platform for binary analysis. It is written in OCaml, but can be used from other languages.";
+    description = "Platform for binary analysis. It is written in OCaml, but can be used from other languages";
     homepage = "https://github.com/BinaryAnalysisPlatform/bap/";
     maintainers = [ maintainers.maurer ];
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/basemap-data/default.nix b/pkgs/development/python-modules/basemap-data/default.nix
index af62404ff84e0..17963e1da7634 100644
--- a/pkgs/development/python-modules/basemap-data/default.nix
+++ b/pkgs/development/python-modules/basemap-data/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   buildPythonPackage,
-  fetchFromGitHub,
   pythonAtLeast,
   basemap,
   cython,
diff --git a/pkgs/development/python-modules/bash-kernel/default.nix b/pkgs/development/python-modules/bash-kernel/default.nix
index 8ed6a8c79cfee..0df270f8a2b7a 100644
--- a/pkgs/development/python-modules/bash-kernel/default.nix
+++ b/pkgs/development/python-modules/bash-kernel/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchPypi,
-  fetchpatch,
   flit-core,
   ipykernel,
   python,
diff --git a/pkgs/development/python-modules/batchspawner/default.nix b/pkgs/development/python-modules/batchspawner/default.nix
index d5cda51e3227e..d1844aaa144da 100644
--- a/pkgs/development/python-modules/batchspawner/default.nix
+++ b/pkgs/development/python-modules/batchspawner/default.nix
@@ -48,7 +48,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "batchspawner" ];
 
   meta = with lib; {
-    description = "A spawner for Jupyterhub to spawn notebooks using batch resource managers";
+    description = "Spawner for Jupyterhub to spawn notebooks using batch resource managers";
     mainProgram = "batchspawner-singleuser";
     homepage = "https://github.com/jupyterhub/batchspawner";
     changelog = "https://github.com/jupyterhub/batchspawner/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/baycomp/default.nix b/pkgs/development/python-modules/baycomp/default.nix
index c1ae4c14efb68..3eb45a2808eee 100644
--- a/pkgs/development/python-modules/baycomp/default.nix
+++ b/pkgs/development/python-modules/baycomp/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "baycomp" ];
 
   meta = {
-    description = "A library for Bayesian comparison of classifiers";
+    description = "Library for Bayesian comparison of classifiers";
     homepage = "https://github.com/janezd/baycomp";
     license = [ lib.licenses.mit ];
     maintainers = [ lib.maintainers.lucasew ];
diff --git a/pkgs/development/python-modules/bc-detect-secrets/default.nix b/pkgs/development/python-modules/bc-detect-secrets/default.nix
index 7e2a162df53f4..3054ff681076b 100644
--- a/pkgs/development/python-modules/bc-detect-secrets/default.nix
+++ b/pkgs/development/python-modules/bc-detect-secrets/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "bc-detect-secrets";
-  version = "1.5.10";
+  version = "1.5.12";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "bridgecrewio";
     repo = "detect-secrets";
     rev = "refs/tags/${version}";
-    hash = "sha256-b0t5xv4fWiErQsYvDKTJuweiGLqS2WpR9ECGo/cpvQ8=";
+    hash = "sha256-njTVA1H0QM0PHIHe/Vc4IJtbgTyWdytqPv0RRnTY6cw=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/bdffont/default.nix b/pkgs/development/python-modules/bdffont/default.nix
index cf0de4ceba09f..87e4ef29b81b2 100644
--- a/pkgs/development/python-modules/bdffont/default.nix
+++ b/pkgs/development/python-modules/bdffont/default.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "bdffont";
-  version = "0.0.24";
+  version = "0.0.26";
 
   disabled = pythonOlder "3.11";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-3HJwtBV78zsMUlmwJrPj74Vd5cru1zflvies5mNGcy4=";
+    hash = "sha256-Q8IqwJmAYFicTX7RrVU9UvGZX+oaPb0RKlIFwArktXk=";
   };
 
   format = "pyproject";
@@ -35,7 +35,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/TakWolf/bdffont";
-    description = "A library for manipulating .bdf format fonts";
+    description = "Library for manipulating .bdf format fonts";
     platforms = lib.platforms.all;
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ h7x4 ];
diff --git a/pkgs/development/python-modules/beaker/default.nix b/pkgs/development/python-modules/beaker/default.nix
index 4b1b91eeba0a8..64c3c65c743e4 100644
--- a/pkgs/development/python-modules/beaker/default.nix
+++ b/pkgs/development/python-modules/beaker/default.nix
@@ -72,7 +72,7 @@ buildPythonPackage rec {
   '';
 
   meta = {
-    description = "A Session and Caching library with WSGI Middleware";
+    description = "Session and Caching library with WSGI Middleware";
     homepage = "https://github.com/bbangert/beaker";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ domenkozar ];
diff --git a/pkgs/development/python-modules/beanhub-extract/default.nix b/pkgs/development/python-modules/beanhub-extract/default.nix
index 66c0e76dd5987..31ca5b48bca0d 100644
--- a/pkgs/development/python-modules/beanhub-extract/default.nix
+++ b/pkgs/development/python-modules/beanhub-extract/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "beanhub_extract" ];
 
   meta = {
-    description = "The simple library for extracting all kind of bank account transaction export files, mostly for beanhub-import to ingest and generate transactions";
+    description = "Simple library for extracting all kind of bank account transaction export files, mostly for beanhub-import to ingest and generate transactions";
     homepage = "https://github.com/LaunchPlatform/beanhub-extract/";
     changelog = "https://github.com/LaunchPlatform/beanhub-extract/releases/tag/${version}";
     license = with lib.licenses; [ mit ];
diff --git a/pkgs/development/python-modules/beanstalkc/default.nix b/pkgs/development/python-modules/beanstalkc/default.nix
index d5b4a294666e1..ce9d606553ef8 100644
--- a/pkgs/development/python-modules/beanstalkc/default.nix
+++ b/pkgs/development/python-modules/beanstalkc/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A simple beanstalkd client library for Python";
+    description = "Simple beanstalkd client library for Python";
     maintainers = with maintainers; [ aanderse ];
     license = licenses.asl20;
     homepage = "https://github.com/earl/beanstalkc";
diff --git a/pkgs/development/python-modules/bellows/default.nix b/pkgs/development/python-modules/bellows/default.nix
index 5d4c388033836..9d95e4ecd957b 100644
--- a/pkgs/development/python-modules/bellows/default.nix
+++ b/pkgs/development/python-modules/bellows/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "bellows";
-  version = "0.38.4";
+  version = "0.39.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "zigpy";
     repo = "bellows";
     rev = "refs/tags/${version}";
-    hash = "sha256-IyJQgKTRrff/LqY14IaATrJTkmVDEv0JFHAxCydNk7Y=";
+    hash = "sha256-e7DGAA2/6tc2+iH/14y/QT7k9a7pgrE5bplTPL3xm2Q=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/bencoder/default.nix b/pkgs/development/python-modules/bencoder/default.nix
index 6de70cb889616..971588282320a 100644
--- a/pkgs/development/python-modules/bencoder/default.nix
+++ b/pkgs/development/python-modules/bencoder/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A simple bencode decoder/encoder library in pure Python";
+    description = "Simple bencode decoder/encoder library in pure Python";
     homepage = "https://github.com/utdemir/bencoder";
     license = licenses.gpl2;
     maintainers = with maintainers; [ somasis ];
diff --git a/pkgs/development/python-modules/bentoml/default.nix b/pkgs/development/python-modules/bentoml/default.nix
index 439309b4bd420..ab5d4025dbf99 100644
--- a/pkgs/development/python-modules/bentoml/default.nix
+++ b/pkgs/development/python-modules/bentoml/default.nix
@@ -1,7 +1,10 @@
 {
   lib,
+  stdenv,
   buildPythonPackage,
   fetchFromGitHub,
+  pythonOlder,
+  pythonRelaxDepsHook,
   hatchling,
   hatch-vcs,
   aiohttp,
@@ -14,9 +17,11 @@
   deepmerge,
   fs,
   httpx,
+  httpx-ws,
   inflection,
   jinja2,
   numpy,
+  nvidia-ml-py,
   opentelemetry-api,
   opentelemetry-instrumentation,
   opentelemetry-instrumentation-aiohttp-client,
@@ -30,16 +35,16 @@
   pip-tools,
   prometheus-client,
   psutil,
-  nvidia-ml-py,
   python-dateutil,
   python-json-logger,
   python-multipart,
   pyyaml,
-  requests,
   rich,
   schema,
   simple-di,
   starlette,
+  tomli,
+  tomli-w,
   uvicorn,
   watchfiles,
   fs-s3fs,
@@ -49,7 +54,6 @@
   protobuf,
   grpcio-channelz,
   grpcio-reflection,
-  filetype,
   pillow,
   pydantic,
   pandas,
@@ -62,6 +66,8 @@
   tritonclient,
   # native check inputs
   pytestCheckHook,
+  pytest-xdist,
+  google-api-python-client,
   scikit-learn,
   lxml,
   orjson,
@@ -70,7 +76,7 @@
 }:
 
 let
-  version = "1.2.5";
+  version = "1.2.18";
   aws = [ fs-s3fs ];
   grpc = [
     grpcio
@@ -78,9 +84,7 @@ let
     opentelemetry-instrumentation-grpc
     protobuf
   ];
-  io-file = [ filetype ];
-  io-image = io-file ++ [ pillow ];
-  io-json = [ pydantic ];
+  io-image = [ pillow ];
   io-pandas = [
     pandas
     pyarrow
@@ -91,16 +95,14 @@ let
   # tracing-jaeger = [ opentelemetry-exporter-jaeger ];
   tracing-otlp = [ opentelemetry-exporter-otlp ];
   # tracing-zipkin = [ opentelemetry-exporter-zipkin ];
-  io = io-json ++ io-image ++ io-pandas ++ io-file;
+  io = io-image ++ io-pandas;
   tracing = tracing-otlp; # ++ tracing-zipkin ++ tracing-jaeger
   optional-dependencies = {
     all = aws ++ io ++ grpc ++ grpc-reflection ++ grpc-channelz ++ tracing ++ monitor-otlp;
     inherit
       aws
       grpc
-      io-file
       io-image
-      io-json
       io-pandas
       io
       grpc-reflection
@@ -109,37 +111,45 @@ let
       tracing-otlp
       tracing
       ;
-    triton = [
-      tritonclient
-    ] ++ tritonclient.optional-dependencies.http ++ tritonclient.optional-dependencies.grpc;
+    triton =
+      [ tritonclient ]
+      ++ lib.optionals stdenv.hostPlatform.isLinux (
+        tritonclient.optional-dependencies.http ++ tritonclient.optional-dependencies.grpc
+      );
   };
 in
 buildPythonPackage {
   pname = "bentoml";
   inherit version;
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "bentoml";
     repo = "BentoML";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GBKxyjCs02mxYiMK4GhgFUATRCUSVf8mFbWjuPVD7SU=";
+    hash = "sha256-giZteSikwS9YEcVMPCC9h2khbBgvUPRW1biAyixO13Y=";
   };
 
-  # https://github.com/bentoml/BentoML/pull/4227 should fix this test
-  postPatch = ''
-    substituteInPlace tests/unit/_internal/utils/test_analytics.py \
-      --replace "requests" "httpx"
-  '';
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
-  pythonRelaxDeps = [ "opentelemetry-semantic-conventions" ];
+  pythonRelaxDeps = [
+    "cattrs"
+    "nvidia-ml-py"
+    "opentelemetry-api"
+    "opentelemetry-instrumentation-aiohttp-client"
+    "opentelemetry-instrumentation-asgi"
+    "opentelemetry-instrumentation"
+    "opentelemetry-sdk"
+    "opentelemetry-semantic-conventions"
+    "opentelemetry-util-http"
+  ];
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
     hatch-vcs
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     attrs
     cattrs
@@ -150,9 +160,11 @@ buildPythonPackage {
     deepmerge
     fs
     httpx
+    httpx-ws
     inflection
     jinja2
     numpy
+    nvidia-ml-py
     opentelemetry-api
     opentelemetry-instrumentation
     opentelemetry-instrumentation-aiohttp-client
@@ -166,21 +178,21 @@ buildPythonPackage {
     pip-tools
     prometheus-client
     psutil
-    nvidia-ml-py
+    pydantic
     python-dateutil
     python-json-logger
     python-multipart
     pyyaml
-    requests
     rich
     schema
     simple-di
     starlette
+    tomli-w
     uvicorn
     watchfiles
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
-  passthru.optional-dependencies = optional-dependencies;
+  inherit optional-dependencies;
 
   pythonImportsCheck = [ "bentoml" ];
 
@@ -201,16 +213,16 @@ buildPythonPackage {
   ];
 
   nativeCheckInputs = [
-    pytestCheckHook
-    pandas
-    pydantic
-    scikit-learn
+    fastapi
+    google-api-python-client
     lxml
     orjson
-    pytest-asyncio
+    pandas
     pillow
-    fastapi
-    starlette
+    pytest-asyncio
+    pytest-xdist
+    pytestCheckHook
+    scikit-learn
   ] ++ optional-dependencies.grpc;
 
   meta = with lib; {
@@ -222,7 +234,8 @@ buildPythonPackage {
       happysalada
       natsukium
     ];
-    # https://github.com/bentoml/BentoML/issues/3885
-    broken = versionAtLeast pydantic.version "2";
+    # AttributeError: 'dict' object has no attribute 'schemas'
+    # https://github.com/bentoml/BentoML/issues/4290
+    broken = versionAtLeast cattrs.version "23.2";
   };
 }
diff --git a/pkgs/development/python-modules/berkeleydb/default.nix b/pkgs/development/python-modules/berkeleydb/default.nix
new file mode 100644
index 0000000000000..514a9b0c689ab
--- /dev/null
+++ b/pkgs/development/python-modules/berkeleydb/default.nix
@@ -0,0 +1,38 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pkgs,
+  python,
+}:
+
+buildPythonPackage rec {
+  pname = "berkeleydb";
+  version = "18.1.8";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-4YMaeQv9hVdA5cEvlS8Z9kbCaYBs/DYnda/Zh4zzJVc=";
+  };
+
+  build-system = [ setuptools ];
+
+  checkPhase = ''
+    ${python.interpreter} test.py
+  '';
+
+  # See: https://github.com/NixOS/nixpkgs/pull/311198/files#r1597746759
+  env = {
+    BERKELEYDB_INCDIR = "${lib.getDev pkgs.db}/include";
+    BERKELEYDB_LIBDIR = "${lib.getLib pkgs.db}/lib";
+  };
+
+  meta = with lib; {
+    description = "Python bindings for Oracle Berkeley DB";
+    homepage = "https://www.jcea.es/programacion/pybsddb.htm";
+    license = with licenses; [ bsd3 ];
+    maintainers = [ ];
+  };
+}
diff --git a/pkgs/development/python-modules/bespon/default.nix b/pkgs/development/python-modules/bespon/default.nix
index 212c32543da7e..2721bd0b4b1dc 100644
--- a/pkgs/development/python-modules/bespon/default.nix
+++ b/pkgs/development/python-modules/bespon/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "bespon" ];
   meta = with lib; {
-    description = "Encodes and decodes data in the BespON format.";
+    description = "Encodes and decodes data in the BespON format";
     homepage = "https://github.com/gpoore/bespon_py";
     license = licenses.bsd3;
     maintainers = with maintainers; [ synthetica ];
diff --git a/pkgs/development/python-modules/betacode/default.nix b/pkgs/development/python-modules/betacode/default.nix
index 225d7501787d2..24931f25029cb 100644
--- a/pkgs/development/python-modules/betacode/default.nix
+++ b/pkgs/development/python-modules/betacode/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ pygtrie ];
   meta = {
     homepage = "https://github.com/matgrioni/betacode";
-    description = "A small python package to flexibly convert from betacode to unicode and back.";
+    description = "Small python package to flexibly convert from betacode to unicode and back";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ kmein ];
   };
diff --git a/pkgs/development/python-modules/betamax-matchers/default.nix b/pkgs/development/python-modules/betamax-matchers/default.nix
index 74db60a0bf09b..210d463b23783 100644
--- a/pkgs/development/python-modules/betamax-matchers/default.nix
+++ b/pkgs/development/python-modules/betamax-matchers/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/sigmavirus24/betamax_matchers";
-    description = "A group of experimental matchers for Betamax";
+    description = "Group of experimental matchers for Betamax";
     license = licenses.asl20;
     maintainers = with maintainers; [ pSub ];
   };
diff --git a/pkgs/development/python-modules/betamax-serializers/default.nix b/pkgs/development/python-modules/betamax-serializers/default.nix
index 629f9d1ffe749..ca2494faa78f9 100644
--- a/pkgs/development/python-modules/betamax-serializers/default.nix
+++ b/pkgs/development/python-modules/betamax-serializers/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://gitlab.com/betamax/serializers";
-    description = "A set of third-party serializers for Betamax";
+    description = "Set of third-party serializers for Betamax";
     license = licenses.asl20;
   };
 }
diff --git a/pkgs/development/python-modules/betamax/default.nix b/pkgs/development/python-modules/betamax/default.nix
index ef870d8b12860..9c96a59cabc34 100644
--- a/pkgs/development/python-modules/betamax/default.nix
+++ b/pkgs/development/python-modules/betamax/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://betamax.readthedocs.org/en/latest/";
-    description = "A VCR imitation for requests";
+    description = "VCR imitation for requests";
     license = licenses.asl20;
     maintainers = with maintainers; [ pSub ];
   };
diff --git a/pkgs/development/python-modules/bidict/default.nix b/pkgs/development/python-modules/bidict/default.nix
index 4856e8fa26deb..f333f2f3dbca3 100644
--- a/pkgs/development/python-modules/bidict/default.nix
+++ b/pkgs/development/python-modules/bidict/default.nix
@@ -48,7 +48,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://bidict.readthedocs.io";
     changelog = "https://bidict.readthedocs.io/changelog.html";
-    description = "The bidirectional mapping library for Python.";
+    description = "Bidirectional mapping library for Python";
     license = licenses.mpl20;
     maintainers = with maintainers; [
       jab
diff --git a/pkgs/development/python-modules/bilibili-api-python/default.nix b/pkgs/development/python-modules/bilibili-api-python/default.nix
new file mode 100644
index 0000000000000..8adb7b664894c
--- /dev/null
+++ b/pkgs/development/python-modules/bilibili-api-python/default.nix
@@ -0,0 +1,76 @@
+{
+  aiohttp,
+  apscheduler,
+  beautifulsoup4,
+  brotli,
+  buildPythonPackage,
+  colorama,
+  fetchPypi,
+  httpx,
+  lib,
+  lxml,
+  pillow,
+  pycryptodomex,
+  pyyaml,
+  qrcode,
+  qrcode-terminal,
+  requests,
+  rsa,
+  setuptools,
+  setuptools-scm,
+  tqdm,
+  yarl,
+}:
+buildPythonPackage rec {
+  pname = "bilibili-api-python";
+  version = "16.2.0";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-ecv9lzp2L13seBosahgnglaZP8YZCD/13nlTPP8LCs0=";
+  };
+
+  postPatch = ''
+    # The upstream uses requirements.txt, which overly strict version constraints.
+    substituteInPlace requirements.txt \
+      --replace-fail "~=" ">="
+  '';
+
+  build-system = [
+    setuptools-scm
+    setuptools
+  ];
+
+  dependencies = [
+    aiohttp
+    beautifulsoup4
+    colorama
+    lxml
+    pyyaml
+    brotli
+    httpx
+    qrcode
+    requests
+    apscheduler
+    rsa
+    pillow
+    tqdm
+    yarl
+    pycryptodomex
+    qrcode-terminal
+  ];
+
+  # tests require network
+  doCheck = false;
+
+  pythonImportsCheck = [ "bilibili_api" ];
+
+  meta = {
+    changelog = "https://github.com/Nemo2011/bilibili-api/releases/tag/${version}";
+    description = "Python module providing convenient integration for various Bilibili API along with some additional common features";
+    homepage = "https://nemo2011.github.io/bilibili-api";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ moraxyc ];
+  };
+}
diff --git a/pkgs/development/python-modules/bimmer-connected/default.nix b/pkgs/development/python-modules/bimmer-connected/default.nix
index 9e32e58f16332..2b7f334b989d5 100644
--- a/pkgs/development/python-modules/bimmer-connected/default.nix
+++ b/pkgs/development/python-modules/bimmer-connected/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "bimmer-connected";
-  version = "0.15.2";
+  version = "0.15.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     owner = "bimmerconnected";
     repo = "bimmer_connected";
     rev = "refs/tags/${version}";
-    hash = "sha256-UCzPD+3v74eB32q0/blsyHAsN0yNskGky5nrBKzFFaE=";
+    hash = "sha256-0Z7W9Z5zl7N0WbvfOTs8wcloI5VfqrZ+OBWocFAnjwY=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/binwalk/default.nix b/pkgs/development/python-modules/binwalk/default.nix
index 1e3a4ec081877..0f3d10d2b3062 100644
--- a/pkgs/development/python-modules/binwalk/default.nix
+++ b/pkgs/development/python-modules/binwalk/default.nix
@@ -84,7 +84,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/ReFirmLabs/binwalk";
-    description = "A tool for searching a given binary image for embedded files";
+    description = "Tool for searching a given binary image for embedded files";
     mainProgram = "binwalk";
     maintainers = [ maintainers.koral ];
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/biom-format/default.nix b/pkgs/development/python-modules/biom-format/default.nix
index ca5ff3a83fb78..8588c88e97af6 100644
--- a/pkgs/development/python-modules/biom-format/default.nix
+++ b/pkgs/development/python-modules/biom-format/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   setuptools,
   cython,
   click,
@@ -15,25 +14,16 @@
 
 buildPythonPackage rec {
   pname = "biom-format";
-  version = "2.1.15";
+  version = "2.1.16";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "biocore";
     repo = "biom-format";
     rev = "refs/tags/${version}";
-    hash = "sha256-WRBc+C/UWme7wYogy4gH4KTIdIqU3KmBm2jWzGNxGQg=";
+    hash = "sha256-E/6dIN8tdsu6cBVBW/BOeAQwJB9XRRL3flQZSKqIZlc=";
   };
 
-  patches = [
-    # fixes a test, can be removed in next version after 2.1.15
-    (fetchpatch {
-      name = "fix-dataframe-comparison.patch";
-      url = "https://github.com/biocore/biom-format/commit/5d1c921ca2cde5d7332508503ce990a7209d1fdc.patch";
-      hash = "sha256-nyHi469ivjJSQ01yIk/6ZMXFdoo9wVuazJHnFdy2nBg=";
-    })
-  ];
-
   build-system = [
     setuptools
     cython
diff --git a/pkgs/development/python-modules/bjoern/default.nix b/pkgs/development/python-modules/bjoern/default.nix
index 3b79ab7dae7e1..ca8663c1d6560 100644
--- a/pkgs/development/python-modules/bjoern/default.nix
+++ b/pkgs/development/python-modules/bjoern/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/jonashaag/bjoern";
-    description = "A screamingly fast Python 2/3 WSGI server written in C";
+    description = "Screamingly fast Python 2/3 WSGI server written in C";
     license = licenses.bsd2;
     maintainers = with maintainers; [ cmcdragonkai ];
   };
diff --git a/pkgs/development/python-modules/black/default.nix b/pkgs/development/python-modules/black/default.nix
index 158d0698aaef9..d9d1980ed2d0b 100644
--- a/pkgs/development/python-modules/black/default.nix
+++ b/pkgs/development/python-modules/black/default.nix
@@ -107,7 +107,7 @@ buildPythonPackage rec {
   doCheck = !(stdenv.isLinux && stdenv.isAarch64);
 
   meta = with lib; {
-    description = "The uncompromising Python code formatter";
+    description = "Uncompromising Python code formatter";
     homepage = "https://github.com/psf/black";
     changelog = "https://github.com/psf/black/blob/${version}/CHANGES.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/bleach/default.nix b/pkgs/development/python-modules/bleach/default.nix
index 73d1e312a313e..00fcd0bf91257 100644
--- a/pkgs/development/python-modules/bleach/default.nix
+++ b/pkgs/development/python-modules/bleach/default.nix
@@ -48,7 +48,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "bleach" ];
 
   meta = with lib; {
-    description = "An easy, HTML5, whitelisting HTML sanitizer";
+    description = "Easy, HTML5, whitelisting HTML sanitizer";
     longDescription = ''
       Bleach is an HTML sanitizing library that escapes or strips markup and
       attributes based on a white list. Bleach can also linkify text safely,
diff --git a/pkgs/development/python-modules/blebox-uniapi/default.nix b/pkgs/development/python-modules/blebox-uniapi/default.nix
index 978d80cd9a84a..bf1b15ffcd639 100644
--- a/pkgs/development/python-modules/blebox-uniapi/default.nix
+++ b/pkgs/development/python-modules/blebox-uniapi/default.nix
@@ -6,6 +6,7 @@
   aiohttp,
   semver,
   deepmerge,
+  jmespath,
   pytest-asyncio,
   pytestCheckHook,
   pythonOlder,
@@ -13,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "blebox-uniapi";
-  version = "2.3.0";
+  version = "2.4.2";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -22,7 +23,7 @@ buildPythonPackage rec {
     owner = "blebox";
     repo = "blebox_uniapi";
     rev = "refs/tags/v${version}";
-    hash = "sha256-nqxbwHzx2cnojw/XX9XQoVvOCCd88tulY0m9xEHU3m4=";
+    hash = "sha256-/NXAyEv4RR12/aoSodKiexKlC83GB1YQVAii8vf6U8c=";
   };
 
   postPatch = ''
@@ -34,6 +35,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     aiohttp
+    jmespath
     semver
   ];
 
diff --git a/pkgs/development/python-modules/blessed/default.nix b/pkgs/development/python-modules/blessed/default.nix
index e78b9b0975243..6bb56aaab30e4 100644
--- a/pkgs/development/python-modules/blessed/default.nix
+++ b/pkgs/development/python-modules/blessed/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/jquast/blessed";
-    description = "A thin, practical wrapper around terminal capabilities in Python.";
+    description = "Thin, practical wrapper around terminal capabilities in Python";
     maintainers = with maintainers; [ eqyiel ];
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/blessings/default.nix b/pkgs/development/python-modules/blessings/default.nix
index 51815bdeeb55e..d4d4e887ce113 100644
--- a/pkgs/development/python-modules/blessings/default.nix
+++ b/pkgs/development/python-modules/blessings/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/erikrose/blessings";
-    description = "A thin, practical wrapper around terminal coloring, styling, and positioning";
+    description = "Thin, practical wrapper around terminal coloring, styling, and positioning";
     license = licenses.mit;
     maintainers = with maintainers; [ domenkozar ];
   };
diff --git a/pkgs/development/python-modules/bloodyad/default.nix b/pkgs/development/python-modules/bloodyad/default.nix
index 47ff7565a297a..3c28d13e6c21d 100644
--- a/pkgs/development/python-modules/bloodyad/default.nix
+++ b/pkgs/development/python-modules/bloodyad/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "bloodyad";
-  version = "2.0.3";
+  version = "2.0.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "CravateRouge";
     repo = "bloodyAD";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+Lw9Apm+zzUlM19fGgxOb2bTmmKQ1Nd7dUjF9rhHXKQ=";
+    hash = "sha256-VqjWv7z2mU0mLM6rM4KBLS4JZaM3DGRxjXXBJQQcu9I=";
   };
 
   build-system = [ hatchling ];
diff --git a/pkgs/development/python-modules/bluetooth-sensor-state-data/default.nix b/pkgs/development/python-modules/bluetooth-sensor-state-data/default.nix
index c242f7d8d5ccd..d3e3a36ff885e 100644
--- a/pkgs/development/python-modules/bluetooth-sensor-state-data/default.nix
+++ b/pkgs/development/python-modules/bluetooth-sensor-state-data/default.nix
@@ -11,38 +11,39 @@
 
 buildPythonPackage rec {
   pname = "bluetooth-sensor-state-data";
-  version = "1.6.2";
-  format = "pyproject";
+  version = "1.7.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "Bluetooth-Devices";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-NC0l3wbQKz4MVM0kHbXBAUol74ir7V/JQgeYCVuyRs4=";
+    repo = "bluetooth-sensor-state-data";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-phiK+2tULBE78d1X/TsaT2kLRHxiCiuLMkaI7S6tqJ8=";
   };
 
-  nativeBuildInputs = [ poetry-core ];
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail " --cov=bluetooth_sensor_state_data --cov-report=term-missing:skip-covered" ""
+  '';
+
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     home-assistant-bluetooth
     sensor-state-data
   ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace " --cov=bluetooth_sensor_state_data --cov-report=term-missing:skip-covered" ""
-  '';
-
   pythonImportsCheck = [ "bluetooth_sensor_state_data" ];
 
   meta = with lib; {
     description = "Models for storing and converting Bluetooth Sensor State Data";
     homepage = "https://github.com/bluetooth-devices/bluetooth-sensor-state-data";
-    license = with licenses; [ asl20 ];
+    changelog = "https://github.com/Bluetooth-Devices/bluetooth-sensor-state-data/releases/tag/v${version}";
+    license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/bnunicodenormalizer/default.nix b/pkgs/development/python-modules/bnunicodenormalizer/default.nix
index 96e6323c5e4a9..a3a53f7c0091b 100644
--- a/pkgs/development/python-modules/bnunicodenormalizer/default.nix
+++ b/pkgs/development/python-modules/bnunicodenormalizer/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "bnunicodenormalizer";
-  version = "0.1.6";
+  version = "0.1.7";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-qVC6+0SnAs25DFzKPHFUOoYPlrRvkGWFptjIVom8wJM=";
+    hash = "sha256-hqNInMgcc9KvtOJlvS0Ni8UvyKI3TiEMiZ4CYJQLwJE=";
   };
 
   nativeCheckInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/boltztrap2/default.nix b/pkgs/development/python-modules/boltztrap2/default.nix
index 7994a26618eeb..16e9c8f76d474 100644
--- a/pkgs/development/python-modules/boltztrap2/default.nix
+++ b/pkgs/development/python-modules/boltztrap2/default.nix
@@ -8,16 +8,18 @@
   matplotlib,
   ase,
   netcdf4,
-  pytest,
   pythonOlder,
   cython,
   cmake,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "boltztrap2";
   version = "24.1.1";
-  format = "setuptools";
+
+  pyproject = true;
+  build-system = [ setuptools ];
 
   disabled = pythonOlder "3.5";
 
@@ -27,6 +29,11 @@ buildPythonPackage rec {
     hash = "sha256-kgv4lPBxcBmRKihaTwPRz8bHTWAWUOGZADtJUb3y+C4=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace-fail "USE_CYTHON = False" "USE_CYTHON = True"
+  '';
+
   dontUseCmakeConfigure = true;
 
   nativeBuildInputs = [
@@ -34,7 +41,7 @@ buildPythonPackage rec {
     cython
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     spglib
     numpy
     scipy
diff --git a/pkgs/development/python-modules/bork/default.nix b/pkgs/development/python-modules/bork/default.nix
index d3368634604d5..b48ff6603f337 100644
--- a/pkgs/development/python-modules/bork/default.nix
+++ b/pkgs/development/python-modules/bork/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
   ];
 
   pythonRelaxDeps = [
+    "build"
     "packaging"
     "readme-renderer"
     "twine"
diff --git a/pkgs/development/python-modules/boto3-stubs/default.nix b/pkgs/development/python-modules/boto3-stubs/default.nix
index 6a6dc2ee0ef5e..4811bda0370fa 100644
--- a/pkgs/development/python-modules/boto3-stubs/default.nix
+++ b/pkgs/development/python-modules/boto3-stubs/default.nix
@@ -366,7 +366,7 @@
 
 buildPythonPackage rec {
   pname = "boto3-stubs";
-  version = "1.34.110";
+  version = "1.34.129";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -374,7 +374,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "boto3_stubs";
     inherit version;
-    hash = "sha256-S1Xvok7jS1T/5QaJnwvfqMqEMfbUuSItY0fdkOabpzU=";
+    hash = "sha256-CXHgszlO4agOSfTcLoUI3JqHi/kbNNlbsx6Mw0CdFvk=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/boto3/default.nix b/pkgs/development/python-modules/boto3/default.nix
index a98441952ed67..274f742015207 100644
--- a/pkgs/development/python-modules/boto3/default.nix
+++ b/pkgs/development/python-modules/boto3/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "boto3";
-  version = "1.34.58"; # N.B: if you change this, change botocore and awscli to a matching version
+  inherit (botocore) version; # N.B: botocore, boto3, awscli needs to be updated in lockstep, bump botocore version for updating these.
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "boto";
     repo = "boto3";
     rev = "refs/tags/${version}";
-    hash = "sha256-2L4pHjrDoy7dPZm0nx+NXZV/K3ZVx7FrNGYZTMrwAs4=";
+    hash = "sha256-1qnWJjYsDc70VkHYbKt0X26f0f4TugqMiS1FeaPjhq4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/botocore-stubs/default.nix b/pkgs/development/python-modules/botocore-stubs/default.nix
index 0528be59b90c4..ee72f50008bf6 100644
--- a/pkgs/development/python-modules/botocore-stubs/default.nix
+++ b/pkgs/development/python-modules/botocore-stubs/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "botocore-stubs";
-  version = "1.34.94";
+  version = "1.34.129";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "botocore_stubs";
     inherit version;
-    hash = "sha256-ZNgKNGfjsZk56cJ1CvMzKLMIf49SSZjb337RaCJ/UH0=";
+    hash = "sha256-Ub/NAA2bafFkucZMYhUYmvx6hgm8Jj+Tmr0QcEzah6Q=";
   };
 
   nativeBuildInputs = [ poetry-core ];
diff --git a/pkgs/development/python-modules/botocore/default.nix b/pkgs/development/python-modules/botocore/default.nix
index 4d2237c461f7d..3c71ca2f6b1b9 100644
--- a/pkgs/development/python-modules/botocore/default.nix
+++ b/pkgs/development/python-modules/botocore/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "botocore";
-  version = "1.34.87"; # N.B: if you change this, change boto3 and awscli to a matching version
+  version = "1.34.109"; # N.B: if you change this, change boto3 and awscli to a matching version
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-o6TYV/CUHZih5c6M1kw5BiJx/qC+TZ89DWr/bLWBI7k=";
+    hash = "sha256-gEghJSWXgh9yI8s7/KKipROuC7mnHo4iYFr/aGbhPnE=";
   };
 
   pythonRelaxDeps = [ "urllib3" ];
@@ -58,7 +58,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A low-level interface to a growing number of Amazon Web Services";
+    description = "Low-level interface to a growing number of Amazon Web Services";
     homepage = "https://github.com/boto/botocore";
     changelog = "https://github.com/boto/botocore/blob/${version}/CHANGELOG.rst";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/bottle/default.nix b/pkgs/development/python-modules/bottle/default.nix
index ece380e517e1a..2b7bff14c0075 100644
--- a/pkgs/development/python-modules/bottle/default.nix
+++ b/pkgs/development/python-modules/bottle/default.nix
@@ -45,7 +45,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://bottlepy.org/";
-    description = "A fast and simple micro-framework for small web-applications";
+    description = "Fast and simple micro-framework for small web-applications";
     mainProgram = "bottle.py";
     downloadPage = "https://github.com/bottlepy/bottle";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/bpython/default.nix b/pkgs/development/python-modules/bpython/default.nix
index 688f83ae24a1b..e6dd4a3f082b6 100644
--- a/pkgs/development/python-modules/bpython/default.nix
+++ b/pkgs/development/python-modules/bpython/default.nix
@@ -59,7 +59,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A fancy curses interface to the Python interactive interpreter";
+    description = "Fancy curses interface to the Python interactive interpreter";
     homepage = "https://bpython-interpreter.org/";
     license = licenses.mit;
     maintainers = with maintainers; [
diff --git a/pkgs/development/python-modules/branca/default.nix b/pkgs/development/python-modules/branca/default.nix
index 627939521ab30..4c16cd2a88937 100644
--- a/pkgs/development/python-modules/branca/default.nix
+++ b/pkgs/development/python-modules/branca/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "branca";
-  version = "0.7.2";
+  version = "0.8.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "python-visualization";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-ipu0JZIx/YgR7F5Z7sl/9YEEHkyiDllR5dHko7AlSe8=";
+    hash = "sha256-9imrW4u2Ea1q7VKgk6Vs8y2OiSzAPr3W6471pi/gVm4=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/brian2/default.nix b/pkgs/development/python-modules/brian2/default.nix
index 00ad6e4f979ca..aefe2b55500a3 100644
--- a/pkgs/development/python-modules/brian2/default.nix
+++ b/pkgs/development/python-modules/brian2/default.nix
@@ -47,7 +47,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A clock-driven simulator for spiking neural networks";
+    description = "Clock-driven simulator for spiking neural networks";
     homepage = "https://briansimulator.org/";
     license = licenses.cecill21;
     maintainers = with maintainers; [ jiegec ];
diff --git a/pkgs/development/python-modules/bring-api/default.nix b/pkgs/development/python-modules/bring-api/default.nix
index 8f7751dd912b0..7d08a68e0e62a 100644
--- a/pkgs/development/python-modules/bring-api/default.nix
+++ b/pkgs/development/python-modules/bring-api/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "bring-api";
-  version = "0.7.1";
+  version = "0.7.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "miaucl";
     repo = "bring-api";
     rev = "refs/tags/${version}";
-    hash = "sha256-ca6VNC1AG+BAzEhH+N3cwXL9pIBwAX6qLWMpgkEjn98=";
+    hash = "sha256-941IAVlLwfHCyqUu0AhdIfBjuT3pZpk98ZUssBVjEUA=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/broadbean/default.nix b/pkgs/development/python-modules/broadbean/default.nix
index 50bc96bdea6d1..93eca748c521f 100644
--- a/pkgs/development/python-modules/broadbean/default.nix
+++ b/pkgs/development/python-modules/broadbean/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchPypi,
-  fetchpatch,
   pythonOlder,
   setuptools,
   versioningit,
@@ -52,7 +51,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://qcodes.github.io/broadbean";
-    description = "A library for making pulses that can be leveraged with QCoDeS";
+    description = "Library for making pulses that can be leveraged with QCoDeS";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ evilmav ];
   };
diff --git a/pkgs/development/python-modules/brother/default.nix b/pkgs/development/python-modules/brother/default.nix
index e93d877286146..94380a638c639 100644
--- a/pkgs/development/python-modules/brother/default.nix
+++ b/pkgs/development/python-modules/brother/default.nix
@@ -2,6 +2,7 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+  freezegun,
   dacite,
   pysnmp-lextudio,
   pytest-asyncio,
@@ -9,11 +10,12 @@
   pytestCheckHook,
   pythonOlder,
   setuptools,
+  syrupy
 }:
 
 buildPythonPackage rec {
   pname = "brother";
-  version = "4.1.0";
+  version = "4.2.0";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -22,7 +24,7 @@ buildPythonPackage rec {
     owner = "bieniu";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-W7bakj/94l0pL5fOb+CK+Z6k1cbv/CY9XjXGYZfLFY4=";
+    hash = "sha256-5fd+UznnOFnqYL8CPX90Y2z6q35oUH638mz4l+Ux6oE=";
   };
 
   nativeBuildInputs = [ setuptools ];
@@ -33,9 +35,11 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
+    freezegun
     pytest-asyncio
     pytest-error-for-skips
     pytestCheckHook
+    syrupy
   ];
 
   pythonImportsCheck = [ "brother" ];
diff --git a/pkgs/development/python-modules/brotli-asgi/default.nix b/pkgs/development/python-modules/brotli-asgi/default.nix
index b3ee25c383b13..79d090f6127a4 100644
--- a/pkgs/development/python-modules/brotli-asgi/default.nix
+++ b/pkgs/development/python-modules/brotli-asgi/default.nix
@@ -44,7 +44,7 @@ buildPythonPackage {
   ];
 
   meta = with lib; {
-    description = "A compression AGSI middleware using brotli";
+    description = "Compression AGSI middleware using brotli";
     homepage = "https://github.com/fullonic/brotli-asgi";
     license = licenses.mit;
     maintainers = with maintainers; [ happysalada ];
diff --git a/pkgs/development/python-modules/bsddb3/default.nix b/pkgs/development/python-modules/bsddb3/default.nix
index fbf29c4f7eac0..af25971df03b8 100644
--- a/pkgs/development/python-modules/bsddb3/default.nix
+++ b/pkgs/development/python-modules/bsddb3/default.nix
@@ -1,11 +1,11 @@
 {
   lib,
   buildPythonPackage,
+  pythonAtLeast,
+  python,
   fetchPypi,
   setuptools,
   pkgs,
-  python,
-  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,11 +22,9 @@ buildPythonPackage rec {
 
   buildInputs = [ pkgs.db ];
 
-  doCheck = pythonOlder "3.12"; # distutils usage
-
-  checkPhase = ''
-    ${python.interpreter} test.py
-  '';
+  # See : https://github.com/NixOS/nixpkgs/pull/311198#discussion_r1599257522
+  # More details here : https://www.jcea.es/programacion/pybsddb.htm
+  disabled = pythonAtLeast "3.10";
 
   # Path to database need to be set.
   # Somehow the setup.py flag is not propagated.
@@ -36,6 +34,16 @@ buildPythonPackage rec {
     export BERKELEYDB_DIR=${pkgs.db.dev};
   '';
 
+  postPatch = ''
+    substituteInPlace test3.py \
+      --replace-fail "from distutils.util import get_platform" "from sysconfig import get_platform" \
+      --replace-fail "sys.config[0:3]" "sys.implementation.cache_tag"
+  '';
+
+  checkPhase = ''
+    ${python.interpreter} test.py
+  '';
+
   meta = with lib; {
     description = "Python bindings for Oracle Berkeley DB";
     homepage = "https://www.jcea.es/programacion/pybsddb.htm";
diff --git a/pkgs/development/python-modules/btest/default.nix b/pkgs/development/python-modules/btest/default.nix
index 7dba4cc9c1218..9b7b37125d975 100644
--- a/pkgs/development/python-modules/btest/default.nix
+++ b/pkgs/development/python-modules/btest/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Generic Driver for Powerful System Tests";
+    description = "Generic Driver for Powerful System Tests";
     homepage = "https://github.com/zeek/btest";
     changelog = "https://github.com/zeek/btest/blob/${version}/CHANGES";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/bthome-ble/default.nix b/pkgs/development/python-modules/bthome-ble/default.nix
index f0f92ec11904b..f070417ff7edf 100644
--- a/pkgs/development/python-modules/bthome-ble/default.nix
+++ b/pkgs/development/python-modules/bthome-ble/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "bthome-ble";
-  version = "3.9.0";
+  version = "3.9.3";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "Bluetooth-Devices";
     repo = "bthome-ble";
     rev = "refs/tags/v${version}";
-    hash = "sha256-umRPB0eUdFL4kIvqSfbw/Jzh7NZMY6WR4dK+1cyK3EI=";
+    hash = "sha256-T6R3w8ZatgB73/rM5GLS9dBp3E1rvbqHo+QS6GHHI4w=";
   };
 
   postPatch = ''
@@ -49,7 +49,7 @@ buildPythonPackage rec {
     description = "Library for BThome BLE devices";
     homepage = "https://github.com/Bluetooth-Devices/bthome-ble";
     changelog = "https://github.com/bluetooth-devices/bthome-ble/blob/v${version}/CHANGELOG.md";
-    license = with licenses; [ mit ];
+    license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/bugsnag/default.nix b/pkgs/development/python-modules/bugsnag/default.nix
index d6f2cc38be6ed..18466cb31cb39 100644
--- a/pkgs/development/python-modules/bugsnag/default.nix
+++ b/pkgs/development/python-modules/bugsnag/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "bugsnag";
-  version = "4.7.0";
+  version = "4.7.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+w0lI2goXYnfX2KB+DNFPXl6UCOhg5o17zggalyYXr8=";
+    hash = "sha256-mECP4X1KfzAKVlNUB6ZEi5hE2bUoxEUnkIho/DZG6HM=";
   };
 
   propagatedBuildInputs = [ webob ];
diff --git a/pkgs/development/python-modules/buienradar/default.nix b/pkgs/development/python-modules/buienradar/default.nix
index 7c65753d448f1..4ecf5a6abd221 100644
--- a/pkgs/development/python-modules/buienradar/default.nix
+++ b/pkgs/development/python-modules/buienradar/default.nix
@@ -13,15 +13,15 @@
 
 buildPythonPackage rec {
   pname = "buienradar";
-  version = "1.0.5";
+  version = "1.0.6";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "mjj4791";
     repo = "python-buienradar";
     # https://github.com/mjj4791/python-buienradar/issues/14
-    rev = "caa66ea855dbcc7cf6ee13291d9b2ed7ac01ef98";
-    hash = "sha256:0xz03xj5qjayriaah20adh0ycvlvb8jdvgh7w5gm236n64g6krj0";
+    rev = "6081a860e190eb59c2ea3ebdcb8a50f6133a0b53";
+    hash = "sha256-5bFGPR8StyQTMRcvECdHGC33oAR/9noeCbpwx3DSquQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/buildout/default.nix b/pkgs/development/python-modules/buildout/default.nix
index 3c7a39db19101..a653318ffe6f8 100644
--- a/pkgs/development/python-modules/buildout/default.nix
+++ b/pkgs/development/python-modules/buildout/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "zc.buildout" ];
 
   meta = with lib; {
-    description = "A software build and configuration system";
+    description = "Software build and configuration system";
     mainProgram = "buildout";
     downloadPage = "https://github.com/buildout/buildout";
     homepage = "https://www.buildout.org";
diff --git a/pkgs/development/python-modules/cached-property/default.nix b/pkgs/development/python-modules/cached-property/default.nix
index ae72420da0ac0..aab2647241626 100644
--- a/pkgs/development/python-modules/cached-property/default.nix
+++ b/pkgs/development/python-modules/cached-property/default.nix
@@ -44,7 +44,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "cached_property" ];
 
   meta = with lib; {
-    description = "A decorator for caching properties in classes";
+    description = "Decorator for caching properties in classes";
     homepage = "https://github.com/pydanny/cached-property";
     changelog = "https://github.com/pydanny/cached-property/releases/tag/${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/caio/default.nix b/pkgs/development/python-modules/caio/default.nix
index f8c3df017a8a9..936fcaf3e95e9 100644
--- a/pkgs/development/python-modules/caio/default.nix
+++ b/pkgs/development/python-modules/caio/default.nix
@@ -7,22 +7,25 @@
   pytest-aiohttp,
   pytestCheckHook,
   pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "caio";
-  version = "0.9.13";
-  format = "setuptools";
+  version = "0.9.17";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "mosquito";
-    repo = pname;
+    repo = "caio";
     rev = "refs/tags/${version}";
-    hash = "sha256-Q87NuL6yZ5uKImQqqdKTMWNyfUOb4NaZDEvNdqZbHDk=";
+    hash = "sha256-aTJ02dCLb3CsT6KmJxkmOzwtg5nuXeBwz+mT7ZTTU9o=";
   };
 
+  build-system = [ setuptools ];
+
   nativeCheckInputs = [
     aiomisc
     pytest-aiohttp
diff --git a/pkgs/development/python-modules/calysto-scheme/default.nix b/pkgs/development/python-modules/calysto-scheme/default.nix
index 884be17ae7489..8c857d45e4f9d 100644
--- a/pkgs/development/python-modules/calysto-scheme/default.nix
+++ b/pkgs/development/python-modules/calysto-scheme/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "calysto_scheme" ];
 
   meta = with lib; {
-    description = "A Scheme kernel for Jupyter that can use Python libraries";
+    description = "Scheme kernel for Jupyter that can use Python libraries";
     homepage = "https://github.com/Calysto/calysto_scheme";
     changelog = "https://github.com/Calysto/calysto_scheme/blob/${src.rev}/ChangeLog.md";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/camelot/default.nix b/pkgs/development/python-modules/camelot/default.nix
index 4331d564b716d..9903faf218071 100644
--- a/pkgs/development/python-modules/camelot/default.nix
+++ b/pkgs/development/python-modules/camelot/default.nix
@@ -1,12 +1,10 @@
 {
   lib,
-  stdenv,
   buildPythonPackage,
   chardet,
   openpyxl,
   charset-normalizer,
   fetchPypi,
-  fetchpatch,
   pythonOlder,
   pandas,
   tabulate,
@@ -48,7 +46,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "camelot" ];
 
   meta = with lib; {
-    description = "A Python library to extract tabular data from PDFs";
+    description = "Python library to extract tabular data from PDFs";
     mainProgram = "camelot";
     homepage = "http://camelot-py.readthedocs.io";
     changelog = "https://github.com/camelot-dev/camelot/blob/v${version}/HISTORY.md";
diff --git a/pkgs/development/python-modules/canals/default.nix b/pkgs/development/python-modules/canals/default.nix
index 3f358629c6155..938a6279e0026 100644
--- a/pkgs/development/python-modules/canals/default.nix
+++ b/pkgs/development/python-modules/canals/default.nix
@@ -60,7 +60,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "canals" ];
 
   meta = with lib; {
-    description = "A component orchestration engine";
+    description = "Component orchestration engine";
     homepage = "https://github.com/deepset-ai/canals";
     changelog = "https://github.com/deepset-ai/canals/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/canmatrix/default.nix b/pkgs/development/python-modules/canmatrix/default.nix
index 40407492fd630..634eec1da39d5 100644
--- a/pkgs/development/python-modules/canmatrix/default.nix
+++ b/pkgs/development/python-modules/canmatrix/default.nix
@@ -12,7 +12,9 @@
   pytestCheckHook,
   pythonOlder,
   pyyaml,
+  setuptools,
   six,
+  versioneer,
   xlrd,
   xlwt,
 }:
@@ -20,7 +22,7 @@
 buildPythonPackage rec {
   pname = "canmatrix";
   version = "1.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -32,11 +34,15 @@ buildPythonPackage rec {
   };
 
   postPatch = ''
-    substituteInPlace setup.py \
-      --replace "version = versioneer.get_version()" 'version = "${version}"'
+    # Remove vendorized versioneer.py
+    rm versioneer.py
   '';
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  nativeBuildInputs = [ versioneer ];
+
+  dependencies = [
     attrs
     click
     future
diff --git a/pkgs/development/python-modules/captcha/default.nix b/pkgs/development/python-modules/captcha/default.nix
index f0113c7920c9c..fae80969824ca 100644
--- a/pkgs/development/python-modules/captcha/default.nix
+++ b/pkgs/development/python-modules/captcha/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A captcha library that generates audio and image CAPTCHAs";
+    description = "Captcha library that generates audio and image CAPTCHAs";
     homepage = "https://github.com/lepture/captcha";
     license = licenses.bsd3;
     maintainers = with maintainers; [ Flakebi ];
diff --git a/pkgs/development/python-modules/cartopy/default.nix b/pkgs/development/python-modules/cartopy/default.nix
index 9df147a45c5fc..06437870fae56 100644
--- a/pkgs/development/python-modules/cartopy/default.nix
+++ b/pkgs/development/python-modules/cartopy/default.nix
@@ -2,8 +2,8 @@
   lib,
   buildPythonPackage,
   pythonOlder,
-  fetchPypi,
   fetchpatch,
+  fetchPypi,
   cython,
   setuptools-scm,
   geos,
@@ -36,6 +36,15 @@ buildPythonPackage rec {
     hash = "sha256-Ix83s1cB8rox2UlZzKdebaBMLuo6fxTOHHXuOw6udnY=";
   };
 
+  patches = [
+    # Some tests in the 0.23.0 release are failing due to missing network markers. Revisit after update.
+    (fetchpatch {
+      name = "mnt-add-missing-needs-network-markers.patch";
+      url = "https://github.com/SciTools/cartopy/commit/2403847ea69c3d95e899ad5d0cab32ac6017df0e.patch";
+      hash = "sha256-aGBUX4jFn7GgoqmHVC51DmS+ga3GcQGKfkut++x67Q0=";
+    })
+  ];
+
   nativeBuildInputs = [
     cython
     geos # for geos-config
@@ -85,7 +94,10 @@ buildPythonPackage rec {
     "'not network and not natural_earth'"
   ];
 
-  disabledTests = [ "test_gridliner_labels_bbox_style" ];
+  disabledTests = [
+    "test_gridliner_constrained_adjust_datalim"
+    "test_gridliner_labels_bbox_style"
+  ];
 
   meta = with lib; {
     description = "Process geospatial data to create maps and perform analyses";
diff --git a/pkgs/development/python-modules/casbin/default.nix b/pkgs/development/python-modules/casbin/default.nix
index 81c0dd3c24b6b..28843f9887755 100644
--- a/pkgs/development/python-modules/casbin/default.nix
+++ b/pkgs/development/python-modules/casbin/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "casbin";
-  version = "1.36.1";
+  version = "1.36.2";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -20,12 +20,12 @@ buildPythonPackage rec {
     owner = "casbin";
     repo = "pycasbin";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MeTOxDrk6pvJ1L9ZOKzWhXK8WXo0jWXGKEKR7y0ejbQ=";
+    hash = "sha256-RQYMQ1Zt+MJ3PyVGSTGo/Qi95M+NVGn7oC2gqXJdlEU=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     simpleeval
     wcmatch
   ];
diff --git a/pkgs/development/python-modules/cashews/default.nix b/pkgs/development/python-modules/cashews/default.nix
new file mode 100644
index 0000000000000..3d75bc80c4758
--- /dev/null
+++ b/pkgs/development/python-modules/cashews/default.nix
@@ -0,0 +1,70 @@
+{
+  bitarray,
+  buildPythonPackage,
+  dill,
+  diskcache,
+  fetchFromGitHub,
+  hiredis,
+  hypothesis,
+  lib,
+  pytest,
+  pytest-asyncio,
+  pytest-cov,
+  pytest-rerunfailures,
+  pytestCheckHook,
+  redis,
+  setuptools,
+  xxhash,
+}:
+
+buildPythonPackage rec {
+  pname = "cashews";
+  version = "7.1.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "Krukov";
+    repo = "cashews";
+    rev = "refs/tags/${version}";
+    hash = "sha256-VzIW6/xhKk+ZWd29BYQp6sjpBst8IVz8t/hCLc2LFT4=";
+  };
+
+  build-system = [ setuptools ];
+
+  passthru.optional-dependencies = {
+    dill = [ dill ];
+    diskcache = [ diskcache ];
+    redis = [ redis ];
+    speedup = [
+      bitarray
+      hiredis
+      xxhash
+    ];
+  };
+
+  nativeCheckInputs = [
+    hypothesis
+    pytest
+    pytest-asyncio
+    pytest-cov
+    pytest-rerunfailures
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # these tests require too many dependencies
+    "redis"
+    "diskcache"
+    "integration"
+  ];
+
+  pythonImportsCheck = [ "cashews" ];
+
+  meta = {
+    description = "Cache tools with async power";
+    homepage = "https://github.com/Krukov/cashews/";
+    changelog = "https://github.com/Krukov/cashews/releases/tag/${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ moraxyc ];
+  };
+}
diff --git a/pkgs/development/python-modules/cassandra-driver/default.nix b/pkgs/development/python-modules/cassandra-driver/default.nix
index 678720e7d3f36..c850c6a89dd0d 100644
--- a/pkgs/development/python-modules/cassandra-driver/default.nix
+++ b/pkgs/development/python-modules/cassandra-driver/default.nix
@@ -113,7 +113,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A Python client driver for Apache Cassandra";
+    description = "Python client driver for Apache Cassandra";
     homepage = "http://datastax.github.io/python-driver";
     changelog = "https://github.com/datastax/python-driver/blob/${version}/CHANGELOG.rst";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/castepxbin/default.nix b/pkgs/development/python-modules/castepxbin/default.nix
index 04e1611e812c3..7fa81bbbf9878 100644
--- a/pkgs/development/python-modules/castepxbin/default.nix
+++ b/pkgs/development/python-modules/castepxbin/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A collection of readers for CASTEP binary outputs";
+    description = "Collection of readers for CASTEP binary outputs";
     homepage = "https://github.com/zhubonan/castepxbin";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/catkin-pkg/default.nix b/pkgs/development/python-modules/catkin-pkg/default.nix
index c9ddf02b05f47..cc1b3a938c0d9 100644
--- a/pkgs/development/python-modules/catkin-pkg/default.nix
+++ b/pkgs/development/python-modules/catkin-pkg/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   disabledTestPaths = [ "test/test_flake8.py" ];
 
   meta = {
-    description = "Library for retrieving information about catkin packages.";
+    description = "Library for retrieving information about catkin packages";
     homepage = "http://wiki.ros.org/catkin_pkg";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ jnsgruk ];
diff --git a/pkgs/development/python-modules/certomancer/default.nix b/pkgs/development/python-modules/certomancer/default.nix
index 70735255db773..eb21bdeeee04e 100644
--- a/pkgs/development/python-modules/certomancer/default.nix
+++ b/pkgs/development/python-modules/certomancer/default.nix
@@ -1,57 +1,57 @@
 {
   lib,
-  asn1crypto,
   buildPythonPackage,
+  pythonOlder,
+  pythonAtLeast,
+  fetchFromGitHub,
+  # build-system
+  setuptools,
+  wheel,
+  # dependencies
+  asn1crypto,
   click,
   cryptography,
-  fetchFromGitHub,
-  freezegun,
+  python-dateutil,
+  pyyaml,
+  tzlocal,
+  # optional-dependencies
+  requests-mock,
   jinja2,
-  oscrypto,
+  werkzeug,
+  python-pkcs11,
+  # nativeCheckInputs
+  freezegun,
   pyhanko-certvalidator,
   pytest-aiohttp,
   pytestCheckHook,
-  python-dateutil,
-  python-pkcs11,
-  pythonOlder,
   pytz,
-  pyyaml,
   requests,
-  requests-mock,
-  setuptools,
-  tzlocal,
-  werkzeug,
-  wheel,
 }:
 
 buildPythonPackage rec {
   pname = "certomancer";
-  version = "0.11.0";
-  format = "pyproject";
+  version = "0.12.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  # https://github.com/MatthiasValvekens/certomancer/issues/12
+  disabled = pythonOlder "3.7" || pythonAtLeast "3.12";
 
   src = fetchFromGitHub {
     owner = "MatthiasValvekens";
     repo = "certomancer";
     rev = "refs/tags/v${version}";
-    hash = "sha256-UQV0Tk4C5b5iBZ34Je59gK2dLTaJusnpxdyNicIh2Q8=";
+    hash = "sha256-c2Fq4YTHQvhxuZrpKQYZvqHIMfubbkeKV4rctELLeJU=";
   };
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace ' "pytest-runner",' "" \
-  '';
-
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     wheel
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     asn1crypto
     click
-    oscrypto
+    cryptography
     python-dateutil
     pyyaml
     tzlocal
@@ -63,7 +63,6 @@ buildPythonPackage rec {
       jinja2
       werkzeug
     ];
-    pkcs12 = [ cryptography ];
     pkcs11 = [ python-pkcs11 ];
   };
 
@@ -83,11 +82,11 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "certomancer" ];
 
-  meta = with lib; {
+  meta = {
     description = "Quickly construct, mock & deploy PKI test configurations using simple declarative configuration";
     mainProgram = "certomancer";
     homepage = "https://github.com/MatthiasValvekens/certomancer";
-    license = licenses.mit;
-    maintainers = with maintainers; [ wolfangaukang ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ wolfangaukang ];
   };
 }
diff --git a/pkgs/development/python-modules/cf-xarray/default.nix b/pkgs/development/python-modules/cf-xarray/default.nix
index e2707a4d45f2c..f7ee7ccd18319 100644
--- a/pkgs/development/python-modules/cf-xarray/default.nix
+++ b/pkgs/development/python-modules/cf-xarray/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "cf-xarray";
-  version = "0.9.0";
+  version = "0.9.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "xarray-contrib";
     repo = "cf-xarray";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MlI5Wx0GOcXPRb/p0sPyAtbf84g3LQKVxCZLBfEIGLo=";
+    hash = "sha256-Og84lB99576G3IZz8LNafF86TyYP+ooe2tL8wb60RPw=";
   };
 
   nativeBuildInputs = [
@@ -67,7 +67,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "An accessor for xarray objects that interprets CF attributes";
+    description = "Accessor for xarray objects that interprets CF attributes";
     homepage = "https://github.com/xarray-contrib/cf-xarray";
     changelog = "https://github.com/xarray-contrib/cf-xarray/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/cfscrape/default.nix b/pkgs/development/python-modules/cfscrape/default.nix
index 9dba28f0cb371..4a1e79f898945 100644
--- a/pkgs/development/python-modules/cfscrape/default.nix
+++ b/pkgs/development/python-modules/cfscrape/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/Anorov/cloudflare-scrape";
-    description = "A Python module to bypass Cloudflare's anti-bot page";
+    description = "Python module to bypass Cloudflare's anti-bot page";
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/chainer/default.nix b/pkgs/development/python-modules/chainer/default.nix
index 1240d5ce2dc15..0ca1a23439418 100644
--- a/pkgs/development/python-modules/chainer/default.nix
+++ b/pkgs/development/python-modules/chainer/default.nix
@@ -61,7 +61,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "chainer" ];
 
   meta = with lib; {
-    description = "A flexible framework of neural networks for deep learning";
+    description = "Flexible framework of neural networks for deep learning";
     homepage = "https://chainer.org/";
     license = licenses.mit;
     maintainers = with maintainers; [ hyphon81 ];
diff --git a/pkgs/development/python-modules/chat-downloader/default.nix b/pkgs/development/python-modules/chat-downloader/default.nix
index fd694101a5aea..95e09e8db6e00 100644
--- a/pkgs/development/python-modules/chat-downloader/default.nix
+++ b/pkgs/development/python-modules/chat-downloader/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "chat_downloader" ];
 
   meta = with lib; {
-    description = "A simple tool used to retrieve chat messages from livestreams, videos, clips and past broadcasts";
+    description = "Simple tool used to retrieve chat messages from livestreams, videos, clips and past broadcasts";
     mainProgram = "chat_downloader";
     homepage = "https://github.com/xenova/chat-downloader";
     changelog = "https://github.com/xenova/chat-downloader/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/checkdmarc/default.nix b/pkgs/development/python-modules/checkdmarc/default.nix
index d7eb7a9c9afbb..bed41e7d9f471 100644
--- a/pkgs/development/python-modules/checkdmarc/default.nix
+++ b/pkgs/development/python-modules/checkdmarc/default.nix
@@ -58,7 +58,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A parser for SPF and DMARC DNS records";
+    description = "Parser for SPF and DMARC DNS records";
     mainProgram = "checkdmarc";
     homepage = "https://github.com/domainaware/checkdmarc";
     changelog = "https://github.com/domainaware/checkdmarc/blob/${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/cheetah3/default.nix b/pkgs/development/python-modules/cheetah3/default.nix
index 780e8a5fa26e9..6c89ea73cdbf5 100644
--- a/pkgs/development/python-modules/cheetah3/default.nix
+++ b/pkgs/development/python-modules/cheetah3/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "Cheetah" ];
 
   meta = with lib; {
-    description = "A template engine and code generation tool";
+    description = "Template engine and code generation tool";
     homepage = "http://www.cheetahtemplate.org/";
     changelog = "https://github.com/CheetahTemplate3/cheetah3/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/chess/default.nix b/pkgs/development/python-modules/chess/default.nix
index 14b08683b2fdd..50cb9306969f5 100644
--- a/pkgs/development/python-modules/chess/default.nix
+++ b/pkgs/development/python-modules/chess/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A chess library with move generation, move validation, and support for common formats";
+    description = "Chess library with move generation, move validation, and support for common formats";
     homepage = "https://github.com/niklasf/python-chess";
     changelog = "https://github.com/niklasf/python-chess/blob/v${version}/CHANGELOG.rst";
     license = licenses.gpl3Plus;
diff --git a/pkgs/development/python-modules/chevron/default.nix b/pkgs/development/python-modules/chevron/default.nix
index 442168ca1b843..3a178e38c786a 100644
--- a/pkgs/development/python-modules/chevron/default.nix
+++ b/pkgs/development/python-modules/chevron/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage {
 
   meta = with lib; {
     homepage = "https://github.com/noahmorrison/chevron";
-    description = "A python implementation of the mustache templating language";
+    description = "Python implementation of the mustache templating language";
     mainProgram = "chevron";
     license = licenses.mit;
     maintainers = with maintainers; [ dhkl ];
diff --git a/pkgs/development/python-modules/chex/default.nix b/pkgs/development/python-modules/chex/default.nix
index b9271d63d29a9..803c352c71549 100644
--- a/pkgs/development/python-modules/chex/default.nix
+++ b/pkgs/development/python-modules/chex/default.nix
@@ -49,7 +49,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Chex is a library of utilities for helping to write reliable JAX code.";
+    description = "Chex is a library of utilities for helping to write reliable JAX code";
     homepage = "https://github.com/deepmind/chex";
     changelog = "https://github.com/google-deepmind/chex/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/chromadb/default.nix b/pkgs/development/python-modules/chromadb/default.nix
index 471b6111a93d3..867a380d7897c 100644
--- a/pkgs/development/python-modules/chromadb/default.nix
+++ b/pkgs/development/python-modules/chromadb/default.nix
@@ -10,6 +10,7 @@
   fastapi,
   fetchFromGitHub,
   grpcio,
+  httpx,
   hypothesis,
   importlib-resources,
   kubernetes,
@@ -50,7 +51,7 @@
 
 buildPythonPackage rec {
   pname = "chromadb";
-  version = "0.5.0";
+  version = "0.5.3";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -59,13 +60,13 @@ buildPythonPackage rec {
     owner = "chroma-core";
     repo = "chroma";
     rev = "refs/tags/${version}";
-    hash = "sha256-gM+fexjwifF3evR8jZvMbIDz655RFKPUizrsB2q5tbw=";
+    hash = "sha256-czDL2b+Jj7mrYZCTfnaZArkOHBaWyTV0BTE2wvykHps=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-zyiFv/gswGupm7Y8BhviklqJzM914v0QyUsRwbGKZ48=";
+    hash = "sha256-eTVT1yowuDsajjceWojdUdX466FKneUt1i5QipBFdp4=";
   };
 
   pythonRelaxDeps = [ "orjson" ];
@@ -92,6 +93,7 @@ buildPythonPackage rec {
     chroma-hnswlib
     fastapi
     grpcio
+    httpx
     importlib-resources
     kubernetes
     mmh3
@@ -136,24 +138,31 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
+  disabledTests = [
+    # flaky / timing sensitive
+    "test_fastapi_server_token_authn_allows_when_it_should_allow"
+  ];
+
   disabledTestPaths = [
     # Tests require network access
-    "chromadb/test/property/test_cross_version_persist.py"
     "chromadb/test/auth/test_simple_rbac_authz.py"
+    "chromadb/test/db/test_system.py"
     "chromadb/test/ef/test_default_ef.py"
-    "chromadb/test/test_api.py"
     "chromadb/test/property/"
+    "chromadb/test/property/test_cross_version_persist.py"
     "chromadb/test/stress/"
+    "chromadb/test/test_api.py"
   ];
 
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
-    description = "The AI-native open-source embedding database";
-    mainProgram = "chroma";
+    description = "AI-native open-source embedding database";
     homepage = "https://github.com/chroma-core/chroma";
     changelog = "https://github.com/chroma-core/chroma/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "chroma";
+    broken = stdenv.isLinux && stdenv.isAarch64;
   };
 }
diff --git a/pkgs/development/python-modules/cinemagoer/default.nix b/pkgs/development/python-modules/cinemagoer/default.nix
index f9cfb30984c62..3aeb0be954242 100644
--- a/pkgs/development/python-modules/cinemagoer/default.nix
+++ b/pkgs/development/python-modules/cinemagoer/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "imdb" ]; # Former "imdbpy", upstream is yet to rename here
 
   meta = with lib; {
-    description = "A Python package for retrieving and managing the data of the IMDb movie database about movies and people";
+    description = "Python package for retrieving and managing the data of the IMDb movie database about movies and people";
     downloadPage = "https://github.com/cinemagoer/cinemagoer/";
     homepage = "https://cinemagoer.github.io/";
     license = licenses.gpl2Only;
diff --git a/pkgs/development/python-modules/circus/default.nix b/pkgs/development/python-modules/circus/default.nix
index 7445dd1a64653..9f36998e98678 100644
--- a/pkgs/development/python-modules/circus/default.nix
+++ b/pkgs/development/python-modules/circus/default.nix
@@ -6,6 +6,7 @@
   flit-core,
   psutil,
   pytestCheckHook,
+  pythonOlder,
   pyyaml,
   pyzmq,
   tornado,
@@ -14,16 +15,18 @@
 buildPythonPackage rec {
   pname = "circus";
   version = "0.18.0";
-  format = "pyproject";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-GTzoIk4GjO1mckz0gxBvtmdLUaV1g6waDn7Xp+6Mcas=";
   };
 
-  nativeBuildInputs = [ flit-core ];
+  build-system = [ flit-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     psutil
     pyzmq
     tornado
@@ -41,38 +44,39 @@ buildPythonPackage rec {
 
   disabledTests = [
     # these tests raise circus.tests.support.TimeoutException
-    "test_reload1"
-    "test_reload2"
+    "test_add_start"
+    "test_add"
+    "test_command_already_running"
+    "test_dummy"
+    "test_exits_within_graceful_timeout"
+    "test_full_stats"
+    "test_handler"
+    "test_handler"
+    "test_inherited"
+    "test_kills_after_graceful_timeout"
+    "test_launch_cli"
+    "test_max_age"
     "test_reload_sequential"
     "test_reload_uppercase"
     "test_reload_wid_1_worker"
     "test_reload_wid_4_workers"
-    "test_add"
-    "test_add_start"
-    "test_command_already_running"
-    "test_launch_cli"
-    "test_handler"
+    "test_reload1"
+    "test_reload2"
     "test_resource_watcher_max_cpu"
-    "test_resource_watcher_max_mem"
     "test_resource_watcher_max_mem_abs"
+    "test_resource_watcher_max_mem"
     "test_resource_watcher_min_cpu"
-    "test_resource_watcher_min_mem"
     "test_resource_watcher_min_mem_abs"
-    "test_full_stats"
-    "test_watchdog_discovery_found"
-    "test_watchdog_discovery_not_found"
-    "test_dummy"
-    "test_handler"
-    "test_stdin_socket"
-    "test_stop_and_restart"
-    "test_stream"
-    "test_inherited"
+    "test_resource_watcher_min_mem"
     "test_set_before_launch"
     "test_set_by_arbiter"
-    "test_max_age"
     "test_signal"
-    "test_exits_within_graceful_timeout"
-    "test_kills_after_graceful_timeout"
+    "test_stdin_socket"
+    "test_stop_and_restart"
+    "test_stream"
+    "test_venv"
+    "test_watchdog_discovery_found"
+    "test_watchdog_discovery_not_found"
     # this test requires socket communication
     "test_plugins"
   ];
@@ -80,8 +84,10 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "circus" ];
 
   meta = with lib; {
-    description = "A process and socket manager";
+    description = "Process and socket manager";
     homepage = "https://github.com/circus-tent/circus";
+    changelog = "https://github.com/circus-tent/circus/releases/tag/${version}";
     license = licenses.asl20;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/cirq-rigetti/default.nix b/pkgs/development/python-modules/cirq-rigetti/default.nix
index 54f0907e70062..932ab71a15003 100644
--- a/pkgs/development/python-modules/cirq-rigetti/default.nix
+++ b/pkgs/development/python-modules/cirq-rigetti/default.nix
@@ -1,7 +1,7 @@
 {
   buildPythonPackage,
   cirq-core,
-  requests,
+  lib,
   pytestCheckHook,
   attrs,
   certifi,
@@ -27,7 +27,7 @@
 buildPythonPackage rec {
   pname = "cirq-rigetti";
   format = "setuptools";
-  inherit (cirq-core) version src meta;
+  inherit (cirq-core) version src;
 
   disabled = pythonOlder "3.7";
 
@@ -84,4 +84,9 @@ buildPythonPackage rec {
 
   # cirq's importlib hook doesn't work here
   #pythonImportsCheck = [ "cirq_rigetti" ];
+
+  meta = cirq-core.meta // {
+    # ModuleNotFoundError: No module named 'pyquil.parser'
+    broken = lib.versionAtLeast pyquil.version "4";
+  };
 }
diff --git a/pkgs/development/python-modules/cjkwrap/default.nix b/pkgs/development/python-modules/cjkwrap/default.nix
index 811e0f6eeca0c..00854c3c0d692 100644
--- a/pkgs/development/python-modules/cjkwrap/default.nix
+++ b/pkgs/development/python-modules/cjkwrap/default.nix
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "cjkwrap" ];
 
   meta = with lib; {
-    description = "A library for wrapping and filling CJK text";
+    description = "Library for wrapping and filling CJK text";
     homepage = "https://f.gallai.re/cjkwrap";
     license = licenses.lgpl3Plus;
     maintainers = [ maintainers.kaction ];
diff --git a/pkgs/development/python-modules/clarabel/default.nix b/pkgs/development/python-modules/clarabel/default.nix
index 7dbd7a352b082..d81f01b34fc5f 100644
--- a/pkgs/development/python-modules/clarabel/default.nix
+++ b/pkgs/development/python-modules/clarabel/default.nix
@@ -12,18 +12,18 @@
 
 buildPythonPackage rec {
   pname = "clarabel";
-  version = "0.7.1";
+  version = "0.9.0";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-owqxNfR1xbx4Mp/X31dSkRVeYFW8rwISTrYQuK0XY5Y=";
+    hash = "sha256-DW0/6IAL5bS11AqOFL1JJmez5GzF2+N2d85e0l8HGdQ=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-Tg9K66WIIAZyua8QlKrlUnpRJRmuxe7ihIr2Vqg79NQ=";
+    hash = "sha256-NNvrDXBodrO3bxr4X1HEn5uHmHDJ1s9C70lPv7OkSCo=";
   };
 
   nativeBuildInputs = with rustPlatform; [
diff --git a/pkgs/development/python-modules/clarifai-grpc/default.nix b/pkgs/development/python-modules/clarifai-grpc/default.nix
index dfc183cb1d506..c6d737fd14045 100644
--- a/pkgs/development/python-modules/clarifai-grpc/default.nix
+++ b/pkgs/development/python-modules/clarifai-grpc/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "clarifai-grpc";
-  version = "10.3.4";
+  version = "10.5.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "Clarifai";
     repo = "clarifai-python-grpc";
     rev = "refs/tags/${version}";
-    hash = "sha256-1Yx00g2Cd9/41DZYK5cRwcFQv2qD6B4cl4cpVZ6slTA=";
+    hash = "sha256-IlMI4rD4bgAmsNCFpKJwEdZGiY4uCnBsoc2MYN8eXOs=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/claripy/default.nix b/pkgs/development/python-modules/claripy/default.nix
index d7e3079efdc30..3cc8b05aad735 100644
--- a/pkgs/development/python-modules/claripy/default.nix
+++ b/pkgs/development/python-modules/claripy/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "claripy";
-  version = "9.2.102";
+  version = "9.2.107";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = "claripy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-U7aN6MOptGjW61HDfZDM7Vit5G+rm1LujgHoo6oRX3s=";
+    hash = "sha256-89wh/SuwxOuORk3S42VA/cJh1GACFWB4ceUxp2OszQM=";
   };
 
   # z3 does not provide a dist-info, so python-runtime-deps-check will fail
diff --git a/pkgs/development/python-modules/cle/default.nix b/pkgs/development/python-modules/cle/default.nix
index d1d719e370f87..f828e4c4b2ea8 100644
--- a/pkgs/development/python-modules/cle/default.nix
+++ b/pkgs/development/python-modules/cle/default.nix
@@ -2,6 +2,7 @@
   lib,
   archinfo,
   buildPythonPackage,
+  cart,
   cffi,
   fetchFromGitHub,
   minidump,
@@ -18,14 +19,14 @@
 
 let
   # The binaries are following the argr projects release cycle
-  version = "9.2.102";
+  version = "9.2.107";
 
   # Binary files from https://github.com/angr/binaries (only used for testing and only here)
   binaries = fetchFromGitHub {
     owner = "angr";
     repo = "binaries";
     rev = "refs/tags/v${version}";
-    hash = "sha256-6FVxlQ1MiJP2mtu4V/mPAyaeCRdBp/sk+u4fdFqxTyA=";
+    hash = "sha256-7b3kjPoaJ9z1wdz125XsD0hj5FXj9DmUt8Hpqd/AjKs=";
   };
 in
 buildPythonPackage rec {
@@ -39,13 +40,14 @@ buildPythonPackage rec {
     owner = "angr";
     repo = "cle";
     rev = "refs/tags/v${version}";
-    hash = "sha256-BPKNrFBEKV8UuSdrl+HIgBqFClHTvRsGidz+X81bBLI=";
+    hash = "sha256-0dfnp0sIxO4Ln20c57Wb9B0E987v+xhrX53yriC+Qy0=";
   };
 
   build-system = [ setuptools ];
 
   dependencies = [
     archinfo
+    cart
     cffi
     minidump
     pefile
diff --git a/pkgs/development/python-modules/cleanlab/default.nix b/pkgs/development/python-modules/cleanlab/default.nix
index e90989967b110..b7c2070ebcea3 100644
--- a/pkgs/development/python-modules/cleanlab/default.nix
+++ b/pkgs/development/python-modules/cleanlab/default.nix
@@ -3,42 +3,45 @@
   buildPythonPackage,
   fetchFromGitHub,
   pythonOlder,
+  numpy,
   scikit-learn,
   termcolor,
   tqdm,
   pandas,
   setuptools,
   # test dependencies
+  datasets,
+  fasttext,
+  hypothesis,
+  keras,
+  matplotlib,
   pytestCheckHook,
   pytest-lazy-fixture,
+  skorch,
   tensorflow,
   torch,
-  datasets,
   torchvision,
-  keras,
-  fasttext,
-  hypothesis,
   wget,
-  matplotlib,
-  skorch,
 }:
 
 buildPythonPackage rec {
   pname = "cleanlab";
-  version = "2.6.1";
+  version = "2.6.5";
   pyproject = true;
-  disabled = pythonOlder "3.7";
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "cleanlab";
-    repo = pname;
+    repo = "cleanlab";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+uJtm/t6Ri25V/9N/2fcOgCOBaBy8PrsM/tO1uX7FEY=";
+    hash = "sha256-wehvGh27Ey1YK+eWTjT6jRwa7yqPpx3P0HUNePoljpw=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
+    numpy
     scikit-learn
     termcolor
     tqdm
@@ -53,18 +56,18 @@ buildPythonPackage rec {
   doCheck = true;
 
   nativeCheckInputs = [
+    datasets
+    fasttext
+    hypothesis
+    keras
+    matplotlib
     pytestCheckHook
     pytest-lazy-fixture
+    skorch
     tensorflow
     torch
-    datasets
     torchvision
-    keras
-    fasttext
-    hypothesis
     wget
-    matplotlib
-    skorch
   ];
 
   disabledTests = [
@@ -77,13 +80,15 @@ buildPythonPackage rec {
     "tests/test_dataset.py"
     # Requires the datasets we just prevented from downloading
     "tests/datalab/test_cleanvision_integration.py"
+    # Fails because of issues with the keras derivation
+    "tests/test_frameworks.py"
   ];
 
-  meta = with lib; {
-    description = "The standard data-centric AI package for data quality and machine learning with messy, real-world data and labels.";
+  meta = {
+    description = "Standard data-centric AI package for data quality and machine learning with messy, real-world data and labels";
     homepage = "https://github.com/cleanlab/cleanlab";
     changelog = "https://github.com/cleanlab/cleanlab/releases/tag/v${version}";
-    license = licenses.agpl3Only;
-    maintainers = with maintainers; [ happysalada ];
+    license = lib.licenses.agpl3Only;
+    maintainers = with lib.maintainers; [ happysalada ];
   };
 }
diff --git a/pkgs/development/python-modules/cli-ui/default.nix b/pkgs/development/python-modules/cli-ui/default.nix
new file mode 100644
index 0000000000000..88f152a6fc599
--- /dev/null
+++ b/pkgs/development/python-modules/cli-ui/default.nix
@@ -0,0 +1,47 @@
+{
+  lib,
+  python3Packages,
+  fetchPypi,
+  pytestCheckHook,
+  pythonRelaxDepsHook,
+  pythonOlder,
+  poetry-core,
+  colorama,
+  tabulate,
+  unidecode,
+}:
+python3Packages.buildPythonPackage rec {
+  pname = "cli-ui";
+  version = "0.17.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-L2flDPR052rRYMPmYLutmL+LjfuNhHdl86Jht+E8Bfo=";
+  };
+
+  pythonRelaxDeps = [ "tabulate" ];
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
+
+  build-system = [ poetry-core ];
+
+  dependencies = [
+    colorama
+    tabulate
+    unidecode
+  ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "cli_ui" ];
+
+  meta = with lib; {
+    description = "Build Nice User Interfaces In The Terminal";
+    homepage = "https://github.com/your-tools/python-cli-ui";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ slashformotion ];
+  };
+}
diff --git a/pkgs/development/python-modules/click-datetime/default.nix b/pkgs/development/python-modules/click-datetime/default.nix
index 54f531693588d..2203bfb829637 100644
--- a/pkgs/development/python-modules/click-datetime/default.nix
+++ b/pkgs/development/python-modules/click-datetime/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "click_datetime" ];
 
   meta = with lib; {
-    description = "Datetime type support for click.";
+    description = "Datetime type support for click";
     homepage = "https://github.com/click-contrib/click-datetime";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
diff --git a/pkgs/development/python-modules/click-plugins/default.nix b/pkgs/development/python-modules/click-plugins/default.nix
index 37804f1fdf180..e1c2702b3007f 100644
--- a/pkgs/development/python-modules/click-plugins/default.nix
+++ b/pkgs/development/python-modules/click-plugins/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytest ];
 
   meta = with lib; {
-    description = "An extension module for click to enable registering CLI commands";
+    description = "Extension module for click to enable registering CLI commands";
     homepage = "https://github.com/click-contrib/click-plugins";
     license = licenses.bsd3;
     maintainers = with maintainers; [ knedlsepp ];
diff --git a/pkgs/development/python-modules/click-shell/default.nix b/pkgs/development/python-modules/click-shell/default.nix
index 79883b9dc3a1a..593b035757b45 100644
--- a/pkgs/development/python-modules/click-shell/default.nix
+++ b/pkgs/development/python-modules/click-shell/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   preCheck = "export HOME=$(mktemp -d)";
 
   meta = with lib; {
-    description = "An extension to click that easily turns your click app into a shell utility";
+    description = "Extension to click that easily turns your click app into a shell utility";
     longDescription = ''
       This is an extension to click that easily turns your click app into a
       shell utility. It is built on top of the built in python cmd module,
diff --git a/pkgs/development/python-modules/clickclick/default.nix b/pkgs/development/python-modules/clickclick/default.nix
index a05570b39a336..117e5c0c41966 100644
--- a/pkgs/development/python-modules/clickclick/default.nix
+++ b/pkgs/development/python-modules/clickclick/default.nix
@@ -40,6 +40,5 @@ buildPythonPackage rec {
     description = "Click command line utilities";
     homepage = "https://github.com/hjacobs/python-clickclick/";
     license = licenses.asl20;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/clickgen/default.nix b/pkgs/development/python-modules/clickgen/default.nix
index b23f1d170b290..50b2f1b1d241b 100644
--- a/pkgs/development/python-modules/clickgen/default.nix
+++ b/pkgs/development/python-modules/clickgen/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "clickgen";
-  version = "2.2.2";
+  version = "2.2.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "ful1e5";
     repo = "clickgen";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Lsb0FvJohwsXofpcq7OgWfhl/3qVxAqY0wdvum6ywSQ=";
+    hash = "sha256-yFEkE1VyeHBuebpsumc6CTvv2kpAw7XAWlyUlXibqz0=";
   };
 
   propagatedBuildInputs = [
@@ -46,7 +46,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/ful1e5/clickgen";
-    description = "The hassle-free cursor building toolbox";
+    description = "Hassle-free cursor building toolbox";
     longDescription = ''
       clickgen is API for building X11 and Windows Cursors from
       .png files. clickgen is using anicursorgen and xcursorgen under the hood.
diff --git a/pkgs/development/python-modules/clickhouse-cli/default.nix b/pkgs/development/python-modules/clickhouse-cli/default.nix
index 76297631f5906..b444e17fbde4f 100644
--- a/pkgs/development/python-modules/clickhouse-cli/default.nix
+++ b/pkgs/development/python-modules/clickhouse-cli/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "clickhouse_cli" ];
 
   meta = with lib; {
-    description = "A third-party client for the Clickhouse DBMS server";
+    description = "Third-party client for the Clickhouse DBMS server";
     mainProgram = "clickhouse-cli";
     homepage = "https://github.com/hatarist/clickhouse-cli";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/clickhouse-connect/default.nix b/pkgs/development/python-modules/clickhouse-connect/default.nix
index c0cefdb58431d..967f1850c6987 100644
--- a/pkgs/development/python-modules/clickhouse-connect/default.nix
+++ b/pkgs/development/python-modules/clickhouse-connect/default.nix
@@ -24,7 +24,7 @@
 }:
 buildPythonPackage rec {
   pname = "clickhouse-connect";
-  version = "0.7.8";
+  version = "0.7.11";
 
   format = "setuptools";
 
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     repo = "clickhouse-connect";
     owner = "ClickHouse";
     rev = "refs/tags/v${version}";
-    hash = "sha256-tdf9aYKAFpRyaqGGNxXs4bzmY6mdhKZ5toFBJRmD2VY=";
+    hash = "sha256-Qh1F9dtDg19jr0ic3V+jH3pQczSMqVi7kxD6HG2llyA=";
   };
 
   nativeBuildInputs = [ cython ];
diff --git a/pkgs/development/python-modules/clikit/default.nix b/pkgs/development/python-modules/clikit/default.nix
index ec56458b06c7e..0ecca4ea0fa8b 100644
--- a/pkgs/development/python-modules/clikit/default.nix
+++ b/pkgs/development/python-modules/clikit/default.nix
@@ -62,7 +62,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/sdispater/clikit";
-    description = "A group of utilities to build beautiful and testable command line interfaces";
+    description = "Group of utilities to build beautiful and testable command line interfaces";
     license = licenses.mit;
     maintainers = with maintainers; [ jakewaksbaum ];
   };
diff --git a/pkgs/development/python-modules/clint/default.nix b/pkgs/development/python-modules/clint/default.nix
index 33a676719c4a8..87bc6568c5873 100644
--- a/pkgs/development/python-modules/clint/default.nix
+++ b/pkgs/development/python-modules/clint/default.nix
@@ -2,45 +2,26 @@
   lib,
   buildPythonPackage,
   fetchPypi,
-  python,
-  mock,
-  blessings,
-  nose,
-  pillow,
+  setuptools,
+  pytestCheckHook,
   args,
-  pkgs,
 }:
 
 buildPythonPackage rec {
   pname = "clint";
   version = "0.5.1";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1an5lkkqk1zha47198p42ji3m94xmzx1a03dn7866m87n4r4q8h5";
+    hash = "sha256-BSJMMrEHVWPQsW0AFfqvnaQ6ohTkohQOUfCHieekxao=";
   };
 
-  LC_ALL = "en_US.UTF-8";
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
-    pillow
-    blessings
-    args
-  ];
+  dependencies = [ args ];
 
-  # nose-progressive and clint are not actively maintained
-  # no longer compatible as behavior demand 2to3, which was removed
-  # in setuptools>=58
-  doCheck = false;
-  nativeCheckInputs = [
-    mock
-    nose
-    pkgs.glibcLocales
-  ];
-  checkPhase = ''
-    ${python.interpreter} test_clint.py
-  '';
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "clint" ];
 
diff --git a/pkgs/development/python-modules/cloup/default.nix b/pkgs/development/python-modules/cloup/default.nix
index 88ffe3d8b9fef..3d21118aca376 100644
--- a/pkgs/development/python-modules/cloup/default.nix
+++ b/pkgs/development/python-modules/cloup/default.nix
@@ -37,6 +37,6 @@ buildPythonPackage rec {
       Enriches Click with option groups, constraints, command aliases, help sections for subcommands, themes for --help and other stuff.
     '';
     license = licenses.bsd3;
-    maintainers = with maintainers; [ friedelino ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/clustershell/default.nix b/pkgs/development/python-modules/clustershell/default.nix
index 5617813d74434..284e5a0eb53ae 100644
--- a/pkgs/development/python-modules/clustershell/default.nix
+++ b/pkgs/development/python-modules/clustershell/default.nix
@@ -69,10 +69,9 @@ buildPythonPackage rec {
     rm tests/TaskDistantPdshMixin.py
     rm tests/TaskDistantPdshTest.py
     rm tests/TaskRLimitsTest.py
+    rm tests/TreeGatewayTest.py
 
     nosetests -v \
-      -e test_channel_ctl_shell_remote1 \
-      -e test_channel_ctl_shell_remote2 \
       -e test_fromall_grouplist \
       -e test_rank_placeholder \
       -e test_engine_on_the_fly_launch \
@@ -92,9 +91,6 @@ buildPythonPackage rec {
       -e testClushConfigSetRlimit  \
       -e testTimerInvalidateInHandler \
       -e testTimerSetNextFireInHandler \
-      -e test_channel_ctl_shell_mlocal1 \
-      -e test_channel_ctl_shell_mlocal2 \
-      -e test_channel_ctl_shell_mlocal3 \
       -e test_node_placeholder \
     tests/*.py
   '';
diff --git a/pkgs/development/python-modules/cmdstanpy/default.nix b/pkgs/development/python-modules/cmdstanpy/default.nix
index dfa19b74fb62a..49ac02e6e92eb 100644
--- a/pkgs/development/python-modules/cmdstanpy/default.nix
+++ b/pkgs/development/python-modules/cmdstanpy/default.nix
@@ -2,6 +2,7 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+  fetchpatch,
   substituteAll,
   cmdstan,
   pythonRelaxDepsHook,
@@ -17,14 +18,14 @@
 
 buildPythonPackage rec {
   pname = "cmdstanpy";
-  version = "1.2.1";
+  version = "1.2.3";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "stan-dev";
     repo = "cmdstanpy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-q+AFhWEzjYElJpiHT4h6YfZrwZJ56pv+8R+001vREyQ=";
+    hash = "sha256-PV7W1H4QYIOx1EHrGljrGUhCH1Y8ZPd9gEtCocc7x64=";
   };
 
   patches = [
@@ -32,6 +33,11 @@ buildPythonPackage rec {
       src = ./use-nix-cmdstan-path.patch;
       cmdstan = "${cmdstan}/opt/cmdstan";
     })
+    # Fix seed-dependent tests
+    (fetchpatch {
+      url = "https://github.com/stan-dev/cmdstanpy/commit/c72acd0b8123c02b47d5d583bdd7d8408b04562c.patch";
+      hash = "sha256-cliyDDko4spYa62DMwWBavy5pePkofJo4Kf8I0RzueM=";
+    })
   ];
 
   postPatch = ''
@@ -75,6 +81,9 @@ buildPythonPackage rec {
       # These tests use the flag -DSTAN_THREADS which doesn't work in cmdstan (missing file)
       "test_multi_proc_threads"
       "test_compile_force"
+      # These tests require a writeable cmdstan source directory
+      "test_pathfinder_threads"
+      "test_save_profile"
     ]
     ++ lib.optionals stdenv.isDarwin [
       "test_init_types" # CmdStan error: error during processing Operation not permitted
@@ -84,7 +93,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/stan-dev/cmdstanpy";
-    description = "A lightweight interface to Stan for Python users";
+    description = "Lightweight interface to Stan for Python users";
     changelog = "https://github.com/stan-dev/cmdstanpy/releases/tag/v${version}";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ tomasajt ];
diff --git a/pkgs/development/python-modules/cmigemo/default.nix b/pkgs/development/python-modules/cmigemo/default.nix
index ac2a0639f8b46..599f91f141067 100644
--- a/pkgs/development/python-modules/cmigemo/default.nix
+++ b/pkgs/development/python-modules/cmigemo/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     homepage = "https://github.com/mooz/python-cmigemo";
-    description = "A pure python binding for C/Migemo";
+    description = "Pure python binding for C/Migemo";
     license = licenses.mit;
     maintainers = with maintainers; [ illustris ];
   };
diff --git a/pkgs/development/python-modules/cmsis-pack-manager/default.nix b/pkgs/development/python-modules/cmsis-pack-manager/default.nix
index e3d3d9b0e004f..85ef05db3e523 100644
--- a/pkgs/development/python-modules/cmsis-pack-manager/default.nix
+++ b/pkgs/development/python-modules/cmsis-pack-manager/default.nix
@@ -64,7 +64,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Rust and Python module for handling CMSIS Pack files";
+    description = "Rust and Python module for handling CMSIS Pack files";
     homepage = "https://github.com/pyocd/cmsis-pack-manager";
     license = licenses.asl20;
     maintainers = with maintainers; [
diff --git a/pkgs/development/python-modules/cnvkit/default.nix b/pkgs/development/python-modules/cnvkit/default.nix
index 4769bd2e57c60..a1a5fb27770bc 100644
--- a/pkgs/development/python-modules/cnvkit/default.nix
+++ b/pkgs/development/python-modules/cnvkit/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   fetchFromGitHub,
-  fetchpatch,
   rPackages,
   buildPythonPackage,
   biopython,
@@ -76,7 +75,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://cnvkit.readthedocs.io";
-    description = "A Python library and command-line software toolkit to infer and visualize copy number from high-throughput DNA sequencing data";
+    description = "Python library and command-line software toolkit to infer and visualize copy number from high-throughput DNA sequencing data";
     changelog = "https://github.com/etal/cnvkit/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = [ maintainers.jbedo ];
diff --git a/pkgs/development/python-modules/co2signal/default.nix b/pkgs/development/python-modules/co2signal/default.nix
index 637fe81a9f8d9..726e5736a0eac 100644
--- a/pkgs/development/python-modules/co2signal/default.nix
+++ b/pkgs/development/python-modules/co2signal/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "CO2Signal" ];
 
   meta = with lib; {
-    description = "A package to access the CO2 Signal API ";
+    description = "Package to access the CO2 Signal API ";
     homepage = "https://github.com/danielsjf/CO2Signal";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ plabadens ];
diff --git a/pkgs/development/python-modules/coapthon3/default.nix b/pkgs/development/python-modules/coapthon3/default.nix
index 8d175e419c5b0..b565349584b38 100644
--- a/pkgs/development/python-modules/coapthon3/default.nix
+++ b/pkgs/development/python-modules/coapthon3/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "Python3 library to the CoAP protocol compliant with the RFC.";
+    description = "Python3 library to the CoAP protocol compliant with the RFC";
     license = licenses.mit;
     maintainers = with maintainers; [ urbas ];
   };
diff --git a/pkgs/development/python-modules/coffea/default.nix b/pkgs/development/python-modules/coffea/default.nix
index 244b95ec38ec1..e531471812840 100644
--- a/pkgs/development/python-modules/coffea/default.nix
+++ b/pkgs/development/python-modules/coffea/default.nix
@@ -35,7 +35,7 @@
 
 buildPythonPackage rec {
   pname = "coffea";
-  version = "2024.5.0";
+  version = "2024.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -44,7 +44,7 @@ buildPythonPackage rec {
     owner = "CoffeaTeam";
     repo = "coffea";
     rev = "refs/tags/v${version}";
-    hash = "sha256-FHE7/VL0mnf0eBPzCsrr8ISr7OmfFvI9xuV0CPa7JdU=";
+    hash = "sha256-MnAGtoev20Cn1WUmX8imUNQCJftU4jw+hInYI7dhb4M=";
   };
 
   build-system = [
@@ -94,11 +94,11 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  meta = with lib; {
+  meta = {
     description = "Basic tools and wrappers for enabling not-too-alien syntax when running columnar Collider HEP analysis";
     homepage = "https://github.com/CoffeaTeam/coffea";
     changelog = "https://github.com/CoffeaTeam/coffea/releases/tag/v${version}";
-    license = with licenses; [ bsd3 ];
-    maintainers = with maintainers; [ veprbl ];
+    license = with lib.licenses; [ bsd3 ];
+    maintainers = with lib.maintainers; [ veprbl ];
   };
 }
diff --git a/pkgs/development/python-modules/cogapp/default.nix b/pkgs/development/python-modules/cogapp/default.nix
index 684c36c4ef2da..84139b83f2530 100644
--- a/pkgs/development/python-modules/cogapp/default.nix
+++ b/pkgs/development/python-modules/cogapp/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A code generator for executing Python snippets in source files";
+    description = "Code generator for executing Python snippets in source files";
     homepage = "https://nedbatchelder.com/code/cog";
     license = licenses.mit;
     maintainers = with maintainers; [ lovek323 ];
diff --git a/pkgs/development/python-modules/colander/default.nix b/pkgs/development/python-modules/colander/default.nix
index ed7cfe9d02410..e3ddb2cf3c312 100644
--- a/pkgs/development/python-modules/colander/default.nix
+++ b/pkgs/development/python-modules/colander/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A simple schema-based serialization and deserialization library";
+    description = "Simple schema-based serialization and deserialization library";
     homepage = "https://github.com/Pylons/colander";
     license = licenses.free; # http://repoze.org/LICENSE.txt
     maintainers = with maintainers; [ domenkozar ];
diff --git a/pkgs/development/python-modules/color-operations/default.nix b/pkgs/development/python-modules/color-operations/default.nix
new file mode 100644
index 0000000000000..e92bcfe70b70d
--- /dev/null
+++ b/pkgs/development/python-modules/color-operations/default.nix
@@ -0,0 +1,58 @@
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+
+  # build-system
+  cython,
+  oldest-supported-numpy,
+  setuptools,
+
+  # dependencies
+  numpy,
+
+  # checks
+  colormath,
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "color-operations";
+  version = "0.1.4";
+  pyproject = true;
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "vincentsarago";
+    repo = "color-operations";
+    rev = "refs/tags/${version}";
+    hash = "sha256-qqOTmVYD3VfjeVJtYvDQw+cxjcTsmqTYQNL1qMX+fL4=";
+  };
+
+  build-system = [
+    cython
+    oldest-supported-numpy
+    setuptools
+  ];
+
+  dependencies = [ numpy ];
+
+  nativeCheckInputs = [
+    colormath
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    python setup.py build_ext --inplace
+  '';
+
+  pythonImportsCheck = [ "color_operations" ];
+
+  meta = {
+    description = "Apply basic color-oriented image operations. Fork of rio-color";
+    homepage = "https://github.com/vincentsarago/color-operations";
+    license = lib.licenses.mit;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/colorspacious/default.nix b/pkgs/development/python-modules/colorspacious/default.nix
index 00abd27fd8975..6e0762a814e0d 100644
--- a/pkgs/development/python-modules/colorspacious/default.nix
+++ b/pkgs/development/python-modules/colorspacious/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/njsmith/colorspacious";
-    description = "A powerful, accurate, and easy-to-use Python library for doing colorspace conversions ";
+    description = "Powerful, accurate, and easy-to-use Python library for doing colorspace conversions ";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ tbenst ];
   };
diff --git a/pkgs/development/python-modules/commoncode/default.nix b/pkgs/development/python-modules/commoncode/default.nix
index aa9203af4ba81..64be571561965 100644
--- a/pkgs/development/python-modules/commoncode/default.nix
+++ b/pkgs/development/python-modules/commoncode/default.nix
@@ -70,7 +70,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "commoncode" ];
 
   meta = with lib; {
-    description = "A set of common utilities, originally split from ScanCode";
+    description = "Set of common utilities, originally split from ScanCode";
     homepage = "https://github.com/nexB/commoncode";
     changelog = "https://github.com/nexB/commoncode/blob/v${version}/CHANGELOG.rst";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/compressai/default.nix b/pkgs/development/python-modules/compressai/default.nix
index 5baafb587fe46..4848df28167f5 100644
--- a/pkgs/development/python-modules/compressai/default.nix
+++ b/pkgs/development/python-modules/compressai/default.nix
@@ -82,7 +82,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A PyTorch library and evaluation platform for end-to-end compression research";
+    description = "PyTorch library and evaluation platform for end-to-end compression research";
     homepage = "https://github.com/InterDigitalInc/CompressAI";
     license = licenses.bsd3Clear;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/pkgs/development/python-modules/conda-libmamba-solver/default.nix b/pkgs/development/python-modules/conda-libmamba-solver/default.nix
index 050b99fe83b05..aff927bfc6a86 100644
--- a/pkgs/development/python-modules/conda-libmamba-solver/default.nix
+++ b/pkgs/development/python-modules/conda-libmamba-solver/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   pythonRemoveDeps = [ "conda" ];
 
   meta = {
-    description = "The libmamba based solver for conda.";
+    description = "Libmamba based solver for conda";
     homepage = "https://github.com/conda/conda-libmamba-solver";
     license = lib.licenses.bsd3;
     maintainers = [ lib.maintainers.ericthemagician ];
diff --git a/pkgs/development/python-modules/conda-package-streaming/default.nix b/pkgs/development/python-modules/conda-package-streaming/default.nix
index e849195f8461c..931da36132c21 100644
--- a/pkgs/development/python-modules/conda-package-streaming/default.nix
+++ b/pkgs/development/python-modules/conda-package-streaming/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "conda_package_streaming" ];
 
   meta = {
-    description = "An efficient library to read from new and old format .conda and .tar.bz2 conda packages.";
+    description = "Efficient library to read from new and old format .conda and .tar.bz2 conda packages";
     homepage = "https://github.com/conda/conda-package-streaming";
     license = lib.licenses.bsd3;
     maintainers = [ lib.maintainers.ericthemagician ];
diff --git a/pkgs/development/python-modules/confection/default.nix b/pkgs/development/python-modules/confection/default.nix
index 5093e543fd801..7f255c549ae41 100644
--- a/pkgs/development/python-modules/confection/default.nix
+++ b/pkgs/development/python-modules/confection/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "confection";
-  version = "0.1.4";
+  version = "0.1.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "explosion";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-PWtxLcnPd7V4yeHfOl1kYPr5UeqkYCfzGE/DoL94tq0=";
+    hash = "sha256-1XIo9Hg4whYS1AkFeX8nVnpv+IvnpmyydHYdVYS0xZc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/configargparse/default.nix b/pkgs/development/python-modules/configargparse/default.nix
index c8eed8d5bedc8..59f89df05231d 100644
--- a/pkgs/development/python-modules/configargparse/default.nix
+++ b/pkgs/development/python-modules/configargparse/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "configargparse" ];
 
   meta = with lib; {
-    description = "A drop-in replacement for argparse";
+    description = "Drop-in replacement for argparse";
     homepage = "https://github.com/bw2/ConfigArgParse";
     changelog = "https://github.com/bw2/ConfigArgParse/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/configclass/default.nix b/pkgs/development/python-modules/configclass/default.nix
index 8de9b1d95e887..8ddca65737d6d 100644
--- a/pkgs/development/python-modules/configclass/default.nix
+++ b/pkgs/development/python-modules/configclass/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "configclass" ];
 
   meta = with lib; {
-    description = "A Python to class to hold configuration values";
+    description = "Python to class to hold configuration values";
     homepage = "https://github.com/schettino72/configclass/";
     license = licenses.mit;
     maintainers = with maintainers; [ onny ];
diff --git a/pkgs/development/python-modules/configparser/default.nix b/pkgs/development/python-modules/configparser/default.nix
index 644f24a4573a2..efe6362da4803 100644
--- a/pkgs/development/python-modules/configparser/default.nix
+++ b/pkgs/development/python-modules/configparser/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "configparser";
-  version = "6.0.1";
+  version = "7.0.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "jaraco";
     repo = "configparser";
     rev = "refs/tags/v${version}";
-    hash = "sha256-r+poK+knBQi48Z1VrNFqUt9Qm9iGERAOTFa4bKfXi0g=";
+    hash = "sha256-OqlmAmBt4x+cJtK89dxsU7+Vn9wmGR9Djc59/ewHSxs=";
   };
 
   nativeBuildInputs = [
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "Updated configparser from Python 3.7 for Python 2.6+.";
+    description = "Updated configparser from Python 3.7 for Python 2.6+";
     homepage = "https://github.com/jaraco/configparser";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/confluent-kafka/default.nix b/pkgs/development/python-modules/confluent-kafka/default.nix
index 2159735ed2ebf..95cf2c7bf0b69 100644
--- a/pkgs/development/python-modules/confluent-kafka/default.nix
+++ b/pkgs/development/python-modules/confluent-kafka/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "confluent-kafka";
-  version = "2.3.0";
+  version = "2.4.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "confluentinc";
     repo = "confluent-kafka-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sPlLlp0niR45lQPCvVd6NPtGI1cFbmPeQpIF1RnnY0I=";
+    hash = "sha256-JlPWh46WjY4GHRKtamB+qigVvVzvbRagbigyCol6lfg=";
   };
 
   buildInputs = [ rdkafka ];
diff --git a/pkgs/development/python-modules/connexion/default.nix b/pkgs/development/python-modules/connexion/default.nix
index f48debb7582e4..6c8373b3fad24 100644
--- a/pkgs/development/python-modules/connexion/default.nix
+++ b/pkgs/development/python-modules/connexion/default.nix
@@ -95,6 +95,5 @@ buildPythonPackage rec {
     homepage = "https://github.com/spec-first/connexion";
     changelog = "https://github.com/spec-first/connexion/releases/tag/${version}";
     license = licenses.asl20;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/cons/default.nix b/pkgs/development/python-modules/cons/default.nix
index 2d516ac03f85c..a1a2b3ad856df 100644
--- a/pkgs/development/python-modules/cons/default.nix
+++ b/pkgs/development/python-modules/cons/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "cons" ];
 
   meta = with lib; {
-    description = "An implementation of Lisp/Scheme-like cons in Python";
+    description = "Implementation of Lisp/Scheme-like cons in Python";
     homepage = "https://github.com/pythological/python-cons";
     changelog = "https://github.com/pythological/python-cons/releases/tag/v${version}";
     license = licenses.gpl3Only;
diff --git a/pkgs/development/python-modules/construct-classes/default.nix b/pkgs/development/python-modules/construct-classes/default.nix
index e9daba610be8b..14026a1957f1e 100644
--- a/pkgs/development/python-modules/construct-classes/default.nix
+++ b/pkgs/development/python-modules/construct-classes/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "construct_classes" ];
 
   meta = with lib; {
-    description = "Parse your binary data into dataclasses.";
+    description = "Parse your binary data into dataclasses";
     homepage = "https://github.com/matejcik/construct-classes";
     license = licenses.mit;
     maintainers = with maintainers; [ prusnak ];
diff --git a/pkgs/development/python-modules/contexttimer/default.nix b/pkgs/development/python-modules/contexttimer/default.nix
index de9917f0b5685..1cba5807e96de 100644
--- a/pkgs/development/python-modules/contexttimer/default.nix
+++ b/pkgs/development/python-modules/contexttimer/default.nix
@@ -40,7 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/brouberol/contexttimer";
-    description = "A timer as a context manager";
+    description = "Timer as a context manager";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ atila ];
   };
diff --git a/pkgs/development/python-modules/cookiecutter/default.nix b/pkgs/development/python-modules/cookiecutter/default.nix
index 80c38fda9aa3b..5402b1764b00b 100644
--- a/pkgs/development/python-modules/cookiecutter/default.nix
+++ b/pkgs/development/python-modules/cookiecutter/default.nix
@@ -64,7 +64,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/audreyr/cookiecutter";
-    description = "A command-line utility that creates projects from project templates";
+    description = "Command-line utility that creates projects from project templates";
     mainProgram = "cookiecutter";
     license = licenses.bsd3;
     maintainers = with maintainers; [ kragniz ];
diff --git a/pkgs/development/python-modules/coredis/default.nix b/pkgs/development/python-modules/coredis/default.nix
index 753152f05ac83..f7e5824544d90 100644
--- a/pkgs/development/python-modules/coredis/default.nix
+++ b/pkgs/development/python-modules/coredis/default.nix
@@ -55,7 +55,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "An async redis client with support for redis server, cluster & sentinel";
+    description = "Async redis client with support for redis server, cluster & sentinel";
     homepage = "https://github.com/alisaifee/coredis";
     changelog = "https://github.com/alisaifee/coredis/blob/${src.rev}/HISTORY.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/cose/default.nix b/pkgs/development/python-modules/cose/default.nix
index 3c0deed50fe3c..6ddb5676bef6c 100644
--- a/pkgs/development/python-modules/cose/default.nix
+++ b/pkgs/development/python-modules/cose/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pycose" ];
 
   meta = with lib; {
-    description = "A Python implementation of the COSE specification";
+    description = "Python implementation of the COSE specification";
     homepage = "https://github.com/TimothyClaeys/pycose";
     license = licenses.bsd3;
     maintainers = with maintainers; [ t4ccer ];
diff --git a/pkgs/development/python-modules/courlan/default.nix b/pkgs/development/python-modules/courlan/default.nix
index fd2cfc01b6e8d..96df4e29269e7 100644
--- a/pkgs/development/python-modules/courlan/default.nix
+++ b/pkgs/development/python-modules/courlan/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "courlan";
-  version = "1.1.0";
+  version = "1.2.0";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-1wZoQzTxi+StofvVfyaArfADZkj22ECFL3pIItOt/Y0=";
+    hash = "sha256-DLycrIOXDGUbk3p4I6XZLL67a2AUVOoPtstNDuXRhF0=";
   };
 
   # Tests try to write to /tmp directly. use $TMPDIR instead.
diff --git a/pkgs/development/python-modules/cpyparsing/default.nix b/pkgs/development/python-modules/cpyparsing/default.nix
index 37cbd74567ee5..c2bb13f67bd58 100644
--- a/pkgs/development/python-modules/cpyparsing/default.nix
+++ b/pkgs/development/python-modules/cpyparsing/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "cpyparsing";
-  version = "2.4.7.2.3.2";
+  version = "2.4.7.2.3.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "evhub";
     repo = "cpyparsing";
     rev = "refs/tags/v${version}";
-    hash = "sha256-vnzZdJ7pZz1QxlTqw5UKjxB4GVcXuCfKWX4lu3ORWas=";
+    hash = "sha256-Ob3aSxJXM/J1KQ2dwxew9fH3g2WVU2KI6lynDz31r+Y=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/craft-application-1/default.nix b/pkgs/development/python-modules/craft-application-1/default.nix
index 49e1685e35f31..e47e502e09f25 100644
--- a/pkgs/development/python-modules/craft-application-1/default.nix
+++ b/pkgs/development/python-modules/craft-application-1/default.nix
@@ -70,7 +70,7 @@ buildPythonPackage rec {
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "The basis for Canonical craft applications";
+    description = "Basis for Canonical craft applications";
     homepage = "https://github.com/canonical/craft-application";
     changelog = "https://github.com/canonical/craft-application/releases/tag/${version}";
     license = lib.licenses.lgpl3Only;
diff --git a/pkgs/development/python-modules/craft-application/default.nix b/pkgs/development/python-modules/craft-application/default.nix
index 61699d21d6aed..d37e4e4063bf2 100644
--- a/pkgs/development/python-modules/craft-application/default.nix
+++ b/pkgs/development/python-modules/craft-application/default.nix
@@ -108,7 +108,7 @@ buildPythonPackage rec {
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "The basis for Canonical craft applications";
+    description = "Basis for Canonical craft applications";
     homepage = "https://github.com/canonical/craft-application";
     changelog = "https://github.com/canonical/craft-application/releases/tag/${version}";
     license = lib.licenses.lgpl3Only;
diff --git a/pkgs/development/python-modules/craft-archives/default.nix b/pkgs/development/python-modules/craft-archives/default.nix
index 1465d6d9957a2..19f0133c69963 100644
--- a/pkgs/development/python-modules/craft-archives/default.nix
+++ b/pkgs/development/python-modules/craft-archives/default.nix
@@ -62,7 +62,7 @@ buildPythonPackage rec {
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "A library for handling archives/repositories in Canonical craft applications";
+    description = "Library for handling archives/repositories in Canonical craft applications";
     homepage = "https://github.com/canonical/craft-archives";
     changelog = "https://github.com/canonical/craft-archives/releases/tag/${version}";
     license = lib.licenses.lgpl3Only;
diff --git a/pkgs/development/python-modules/craft-cli/default.nix b/pkgs/development/python-modules/craft-cli/default.nix
index c8cd94a8be3c1..d6900511af7ac 100644
--- a/pkgs/development/python-modules/craft-cli/default.nix
+++ b/pkgs/development/python-modules/craft-cli/default.nix
@@ -58,7 +58,7 @@ buildPythonPackage rec {
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "A CLI builder for Canonical's CLI Guidelines";
+    description = "CLI builder for Canonical's CLI Guidelines";
     homepage = "https://github.com/canonical/craft-cli";
     changelog = "https://github.com/canonical/craft-cli/releases/tag/${version}";
     license = lib.licenses.lgpl3Only;
diff --git a/pkgs/development/python-modules/craft-parts/default.nix b/pkgs/development/python-modules/craft-parts/default.nix
index 83fbd2f7bb021..3a137744d68f8 100644
--- a/pkgs/development/python-modules/craft-parts/default.nix
+++ b/pkgs/development/python-modules/craft-parts/default.nix
@@ -27,7 +27,7 @@
 
 buildPythonPackage rec {
   pname = "craft-parts";
-  version = "1.30.0";
+  version = "1.31.0";
 
   pyproject = true;
 
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     owner = "canonical";
     repo = "craft-parts";
     rev = "refs/tags/${version}";
-    hash = "sha256-JEf5JYDBH4Pm5ke++7GkpimM8Ec0dFe1GGxruntjmVE=";
+    hash = "sha256-DohH81xhUfZI3NfmX6aDaOC/QLiddsxPzrc1vgFECTg=";
   };
 
   patches = [ ./bash-path.patch ];
diff --git a/pkgs/development/python-modules/cram/default.nix b/pkgs/development/python-modules/cram/default.nix
index b8e38ffb1dabf..13ed15f5246da 100644
--- a/pkgs/development/python-modules/cram/default.nix
+++ b/pkgs/development/python-modules/cram/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   '';
 
   meta = {
-    description = "A simple testing framework for command line applications";
+    description = "Simple testing framework for command line applications";
     mainProgram = "cram";
     homepage = "https://bitheap.org/cram/";
     license = lib.licenses.gpl2Plus;
diff --git a/pkgs/development/python-modules/crate/default.nix b/pkgs/development/python-modules/crate/default.nix
index c770de8016804..ca4b0291ccd11 100644
--- a/pkgs/development/python-modules/crate/default.nix
+++ b/pkgs/development/python-modules/crate/default.nix
@@ -74,7 +74,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/crate/crate-python";
-    description = "A Python client library for CrateDB";
+    description = "Python client library for CrateDB";
     changelog = "https://github.com/crate/crate-python/blob/${version}/CHANGES.txt";
     license = licenses.asl20;
     maintainers = with maintainers; [ doronbehar ];
diff --git a/pkgs/development/python-modules/crc32c/default.nix b/pkgs/development/python-modules/crc32c/default.nix
index a4cf7924c9795..f5f44c351c15f 100644
--- a/pkgs/development/python-modules/crc32c/default.nix
+++ b/pkgs/development/python-modules/crc32c/default.nix
@@ -4,12 +4,13 @@
   fetchFromGitHub,
   pythonOlder,
   pytestCheckHook,
+  setuptools
 }:
 
 buildPythonPackage rec {
-  version = "2.3.post0";
+  version = "2.4";
   pname = "crc32c";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.5";
 
@@ -17,9 +18,11 @@ buildPythonPackage rec {
     owner = "ICRAR";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-lPEojWeAhfWpGR+k+Tuo4n68iZOk7lUDxjWXj5vN4I0=";
+    hash = "sha256-rWR2MtTLhqqvgdqEyevg/i8ZHM3OU1bJb27JkBx1J3w=";
   };
 
+  nativeBuildInputs = [ setuptools ];
+
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = {
diff --git a/pkgs/development/python-modules/credstash/default.nix b/pkgs/development/python-modules/credstash/default.nix
index dd950001c3d0d..930cbedd56cfb 100644
--- a/pkgs/development/python-modules/credstash/default.nix
+++ b/pkgs/development/python-modules/credstash/default.nix
@@ -59,7 +59,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A utility for managing secrets in the cloud using AWS KMS and DynamoDB";
+    description = "Utility for managing secrets in the cloud using AWS KMS and DynamoDB";
     homepage = "https://github.com/LuminalOSS/credstash";
     changelog = "https://github.com/fugue/credstash/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/criticality-score/default.nix b/pkgs/development/python-modules/criticality-score/default.nix
index 41b6b301f370e..dba803fe81279 100644
--- a/pkgs/development/python-modules/criticality-score/default.nix
+++ b/pkgs/development/python-modules/criticality-score/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "criticality_score" ];
 
   meta = with lib; {
-    description = "Python tool for computing the Open Source Project Criticality Score.";
+    description = "Python tool for computing the Open Source Project Criticality Score";
     mainProgram = "criticality_score";
     homepage = "https://github.com/ossf/criticality_score";
     changelog = "https://github.com/ossf/criticality_score/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/crossandra/default.nix b/pkgs/development/python-modules/crossandra/default.nix
new file mode 100644
index 0000000000000..423ee0aa3fc8a
--- /dev/null
+++ b/pkgs/development/python-modules/crossandra/default.nix
@@ -0,0 +1,39 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  result,
+  mypy
+}:
+
+buildPythonPackage rec {
+  pname = "crossandra";
+  version = "2.2.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "trag1c";
+    repo = "crossandra";
+    rev = "refs/tags/${version}";
+    hash = "sha256-/JhrjXRH7Rs2bUil9HRneBC9wlVYEyfwivjzb+eyRv8=";
+  };
+
+  build-system = [ setuptools mypy ];
+  dependencies = [ result ];
+
+  pythonImportsCheck = [ "crossandra" ];
+  prePatch = ''
+    # pythonRelaxDepsHook did not work
+    substituteInPlace pyproject.toml \
+      --replace-fail "result ~= 0.9.0" "result >= 0.9.0"
+  '';
+
+  meta = with lib; {
+    changelog = "https://github.com/trag1c/crossandra/blob/${src.rev}/CHANGELOG.md";
+    description = "Fast and simple enum/regex-based tokenizer with decent configurability";
+    license = licenses.mit;
+    homepage = "https://trag1c.github.io/crossandra";
+    maintainers = with maintainers; [ sigmanificient ];
+  };
+}
diff --git a/pkgs/development/python-modules/cryptography/default.nix b/pkgs/development/python-modules/cryptography/default.nix
index bd3de723a8a4f..0d7cdb92a683d 100644
--- a/pkgs/development/python-modules/cryptography/default.nix
+++ b/pkgs/development/python-modules/cryptography/default.nix
@@ -92,7 +92,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A package which provides cryptographic recipes and primitives";
+    description = "Package which provides cryptographic recipes and primitives";
     longDescription = ''
       Cryptography includes both high level recipes and low level interfaces to
       common cryptographic algorithms such as symmetric ciphers, message
diff --git a/pkgs/development/python-modules/cson/default.nix b/pkgs/development/python-modules/cson/default.nix
index 93ecd41a3ae6e..c32adee78e98b 100644
--- a/pkgs/development/python-modules/cson/default.nix
+++ b/pkgs/development/python-modules/cson/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "cson" ];
 
   meta = with lib; {
-    description = "A python parser for the Coffeescript Object Notation (CSON)";
+    description = "Python parser for the Coffeescript Object Notation (CSON)";
     homepage = "https://github.com/avakar/pycson";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ xworld21 ];
diff --git a/pkgs/development/python-modules/css-parser/default.nix b/pkgs/development/python-modules/css-parser/default.nix
index 35ecc0c6bda39..abb1130c702d0 100644
--- a/pkgs/development/python-modules/css-parser/default.nix
+++ b/pkgs/development/python-modules/css-parser/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "css_parser" ];
 
   meta = with lib; {
-    description = "A CSS Cascading Style Sheets library for Python";
+    description = "CSS Cascading Style Sheets library for Python";
     homepage = "https://github.com/ebook-utils/css-parser";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ jethro ];
diff --git a/pkgs/development/python-modules/csscompressor/default.nix b/pkgs/development/python-modules/csscompressor/default.nix
index 3756c5a60706b..d1a185bc8e435 100644
--- a/pkgs/development/python-modules/csscompressor/default.nix
+++ b/pkgs/development/python-modules/csscompressor/default.nix
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   doCheck = false; # No tests
 
   meta = with lib; {
-    description = "A python port of YUI CSS Compressor";
+    description = "Python port of YUI CSS Compressor";
     homepage = "https://pypi.python.org/pypi/csscompressor";
     license = licenses.bsd3;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/cssmin/default.nix b/pkgs/development/python-modules/cssmin/default.nix
index 874eebd00b157..84b4b9fe2964b 100644
--- a/pkgs/development/python-modules/cssmin/default.nix
+++ b/pkgs/development/python-modules/cssmin/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Python port of the YUI CSS compression algorithm";
+    description = "Python port of the YUI CSS compression algorithm";
     mainProgram = "cssmin";
     homepage = "https://github.com/zacharyvoase/cssmin";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/cssutils/default.nix b/pkgs/development/python-modules/cssutils/default.nix
index 5bf2525869154..55ac4c5489fce 100644
--- a/pkgs/development/python-modules/cssutils/default.nix
+++ b/pkgs/development/python-modules/cssutils/default.nix
@@ -46,7 +46,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "cssutils" ];
 
   meta = with lib; {
-    description = "A CSS Cascading Style Sheets library for Python";
+    description = "CSS Cascading Style Sheets library for Python";
     homepage = "https://github.com/jaraco/cssutils";
     changelog = "https://github.com/jaraco/cssutils/blob/${src.rev}/NEWS.rst";
     license = licenses.lgpl3Plus;
diff --git a/pkgs/development/python-modules/csv2md/default.nix b/pkgs/development/python-modules/csv2md/default.nix
new file mode 100644
index 0000000000000..43d3c816aa95a
--- /dev/null
+++ b/pkgs/development/python-modules/csv2md/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+}:
+
+buildPythonPackage rec {
+  pname = "csv2md";
+  version = "1.3.0";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "lzakharov";
+    repo = "csv2md";
+    rev = "v${version}";
+    hash = "sha256-INwZRbyJmyDd5SV7PBdqUc/3FO91upTgaxBfP/Giaw4=";
+  };
+
+  pythonImportsCheck = [ "csv2md" ];
+
+  meta = {
+    description = "Command line tool for converting CSV files into Markdown tables";
+    homepage = "https://github.com/lzakharov/csv2md";
+    changelog = "https://github.com/lzakharov/csv2md/releases/tag/v${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ t4ccer ];
+    mainProgram = "csv2md";
+  };
+}
diff --git a/pkgs/development/python-modules/cupy/default.nix b/pkgs/development/python-modules/cupy/default.nix
index 47f6f768b8d36..2388e215d929e 100644
--- a/pkgs/development/python-modules/cupy/default.nix
+++ b/pkgs/development/python-modules/cupy/default.nix
@@ -103,7 +103,7 @@ buildPythonPackage rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A NumPy-compatible matrix library accelerated by CUDA";
+    description = "NumPy-compatible matrix library accelerated by CUDA";
     homepage = "https://cupy.chainer.org/";
     changelog = "https://github.com/cupy/cupy/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/curio/default.nix b/pkgs/development/python-modules/curio/default.nix
index 03a5454f55cec..087d85405e260 100644
--- a/pkgs/development/python-modules/curio/default.nix
+++ b/pkgs/development/python-modules/curio/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   disabledTests =
     [
+      "test_cpu" # timing sensitive
       "test_aside_basic" # times out
       "test_write_timeout" # flaky, does not always time out
       "test_aside_cancel" # fails because modifies PYTHONPATH and cant find pytest
diff --git a/pkgs/development/python-modules/curl-cffi/default.nix b/pkgs/development/python-modules/curl-cffi/default.nix
index de769f3bcf3e6..82a521898a63d 100644
--- a/pkgs/development/python-modules/curl-cffi/default.nix
+++ b/pkgs/development/python-modules/curl-cffi/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "curl-cffi";
-  version = "0.6.4";
+  version = "0.7.0b4";
 
   src = fetchFromGitHub {
     owner = "yifeikong";
     repo = "curl_cffi";
     rev = "refs/tags/v${version}";
-    hash = "sha256-bNBpZAIdfub2osByo827RBw/gouCmNt8uVN0y1KdcUk=";
+    hash = "sha256-txrJNUzswAPeH4Iazn0iKJI0Rqk0HHRoDrtTfDHKMoo=";
   };
 
   patches = [ ./use-system-libs.patch ];
diff --git a/pkgs/development/python-modules/curvefitgui/default.nix b/pkgs/development/python-modules/curvefitgui/default.nix
new file mode 100644
index 0000000000000..5c5f2247e5530
--- /dev/null
+++ b/pkgs/development/python-modules/curvefitgui/default.nix
@@ -0,0 +1,47 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pythonAtLeast,
+  numpy,
+  scipy,
+  pyqt5,
+  matplotlib,
+}:
+
+buildPythonPackage {
+  pname = "curvefitgui";
+  version = "0-unstable-2021-08-25";
+  pyproject = true;
+  # For some reason, importing the main module makes the whole python
+  # interpreter crash! This needs further investigation, possibly the problem
+  # is with one of the dependencies.. See upstream report:
+  # https://github.com/moosepy/curvefitgui/issues/2
+  disabled = pythonAtLeast "3.12";
+
+  src = fetchFromGitHub {
+    owner = "moosepy";
+    repo = "curvefitgui";
+    rev = "5f1e7f3b95cd77d10bd8183c9a501e47ff94fad7";
+    hash = "sha256-oK0ROKxh/91OrHhuufG6pvc2EMBeMP8R5O+ED2thyW8=";
+  };
+
+  nativeBuildInputs = [ setuptools ];
+
+  propagatedBuildInputs = [
+    numpy
+    scipy
+    pyqt5
+    matplotlib
+  ];
+
+  pythonImportsCheck = [ "curvefitgui" ];
+
+  meta = {
+    description = "Graphical interface to the non-linear curvefit function scipy.optimise.curve_fit";
+    homepage = "https://github.com/moosepy/curvefitgui";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ doronbehar ];
+  };
+}
diff --git a/pkgs/development/python-modules/customtkinter/default.nix b/pkgs/development/python-modules/customtkinter/default.nix
index 2aa4364816b7a..9f4f3a27170b4 100644
--- a/pkgs/development/python-modules/customtkinter/default.nix
+++ b/pkgs/development/python-modules/customtkinter/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage {
   pythonImportsCheck = [ "customtkinter" ];
 
   meta = {
-    description = "A modern and customizable python UI-library based on Tkinter";
+    description = "Modern and customizable python UI-library based on Tkinter";
     homepage = "https://github.com/TomSchimansky/CustomTkinter";
     license = lib.licenses.mit;
     longDescription = ''
diff --git a/pkgs/development/python-modules/cvxpy/default.nix b/pkgs/development/python-modules/cvxpy/default.nix
index e172de7db811e..d6fce58eaa734 100644
--- a/pkgs/development/python-modules/cvxpy/default.nix
+++ b/pkgs/development/python-modules/cvxpy/default.nix
@@ -78,7 +78,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "cvxpy" ];
 
   meta = with lib; {
-    description = "A domain-specific language for modeling convex optimization problems in Python";
+    description = "Domain-specific language for modeling convex optimization problems in Python";
     homepage = "https://www.cvxpy.org/";
     downloadPage = "https://github.com/cvxpy/cvxpy//releases";
     changelog = "https://github.com/cvxpy/cvxpy/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/cx-freeze/default.nix b/pkgs/development/python-modules/cx-freeze/default.nix
index 1ff08634e50e4..d418b3b3c3049 100644
--- a/pkgs/development/python-modules/cx-freeze/default.nix
+++ b/pkgs/development/python-modules/cx-freeze/default.nix
@@ -53,7 +53,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A set of scripts and modules for freezing Python scripts into executables";
+    description = "Set of scripts and modules for freezing Python scripts into executables";
     homepage = "https://marcelotduarte.github.io/cx_Freeze/";
     changelog = "https://github.com/marcelotduarte/cx_Freeze/releases/tag/${version}";
     license = licenses.psfl;
diff --git a/pkgs/development/python-modules/cyclonedx-python-lib/default.nix b/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
index 4a2318693becc..30629ee89e91d 100644
--- a/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
+++ b/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
@@ -24,7 +24,7 @@
 
 buildPythonPackage rec {
   pname = "cyclonedx-python-lib";
-  version = "7.3.4";
+  version = "7.4.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -33,7 +33,7 @@ buildPythonPackage rec {
     owner = "CycloneDX";
     repo = "cyclonedx-python-lib";
     rev = "refs/tags/v${version}";
-    hash = "sha256-rFxCeQTCQSpg0LQYyOxhk150KOUyV9PXdXo1mOA0KPw=";
+    hash = "sha256-ATeSMS8WaJS/2CaeNQgaK/6zyQBw07+6YYTZdhZPJug=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/cyclopts/default.nix b/pkgs/development/python-modules/cyclopts/default.nix
new file mode 100644
index 0000000000000..479f57d744a20
--- /dev/null
+++ b/pkgs/development/python-modules/cyclopts/default.nix
@@ -0,0 +1,64 @@
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  docstring-parser,
+  fetchFromGitHub,
+  importlib-metadata,
+  poetry-core,
+  poetry-dynamic-versioning,
+  pydantic,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  rich,
+  rich-rst,
+  typing-extensions,
+}:
+
+buildPythonPackage rec {
+  pname = "cyclopts";
+  version = "2.7.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "BrianPugh";
+    repo = "cyclopts";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-oYYsHT8VZdqcOkMj++Bh7xjZ3JfJ9CiacFt92lBiQmc=";
+  };
+
+  build-system = [
+    poetry-core
+    poetry-dynamic-versioning
+  ];
+
+  dependencies = [
+    attrs
+    docstring-parser
+    importlib-metadata
+    rich
+    rich-rst
+    typing-extensions
+  ];
+
+  nativeCheckInputs = [
+    pydantic
+    pytest-mock
+    pytestCheckHook
+    pyyaml
+  ];
+
+  pythonImportsCheck = [ "cyclopts" ];
+
+  meta = with lib; {
+    description = "Module to create CLIs based on Python type hints";
+    homepage = "https://github.com/BrianPugh/cyclopts";
+    changelog = "https://github.com/BrianPugh/cyclopts/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/cython/0.nix b/pkgs/development/python-modules/cython/0.nix
index 689c029086a7c..8dc7db31fe3f4 100644
--- a/pkgs/development/python-modules/cython/0.nix
+++ b/pkgs/development/python-modules/cython/0.nix
@@ -95,7 +95,7 @@ buildPythonPackage rec {
 
   meta = {
     changelog = "https://github.com/cython/cython/blob/${version}/CHANGES.rst";
-    description = "An optimising static compiler for both the Python programming language and the extended Cython programming language";
+    description = "Optimising static compiler for both the Python programming language and the extended Cython programming language";
     homepage = "https://cython.org";
     license = lib.licenses.asl20;
   };
diff --git a/pkgs/development/python-modules/cython/default.nix b/pkgs/development/python-modules/cython/default.nix
index fdf7cecbe0bf9..1efad920d3447 100644
--- a/pkgs/development/python-modules/cython/default.nix
+++ b/pkgs/development/python-modules/cython/default.nix
@@ -82,7 +82,7 @@ buildPythonPackage rec {
 
   meta = {
     changelog = "https://github.com/cython/cython/blob/${version}/CHANGES.rst";
-    description = "An optimising static compiler for both the Python programming language and the extended Cython programming language";
+    description = "Optimising static compiler for both the Python programming language and the extended Cython programming language";
     homepage = "https://cython.org";
     license = lib.licenses.asl20;
   };
diff --git a/pkgs/development/python-modules/daemonocle/default.nix b/pkgs/development/python-modules/daemonocle/default.nix
index c9ea2009baebd..5e236996bc200 100644
--- a/pkgs/development/python-modules/daemonocle/default.nix
+++ b/pkgs/development/python-modules/daemonocle/default.nix
@@ -44,7 +44,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "daemonocle" ];
 
   meta = with lib; {
-    description = "A Python library for creating super fancy Unix daemons";
+    description = "Python library for creating super fancy Unix daemons";
     longDescription = ''
       daemonocle is a library for creating your own Unix-style daemons
       written in Python.  It solves many problems that other daemon
diff --git a/pkgs/development/python-modules/dahlia/default.nix b/pkgs/development/python-modules/dahlia/default.nix
new file mode 100644
index 0000000000000..3cb8900d3acb0
--- /dev/null
+++ b/pkgs/development/python-modules/dahlia/default.nix
@@ -0,0 +1,31 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+}:
+
+buildPythonPackage rec {
+  pname = "dahlia";
+  version = "3.0.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "dahlia-lib";
+    repo = "dahlia";
+    rev = "refs/tags/${version}";
+    hash = "sha256-t8m/7TSzVvETvn3Jar29jCh55Ti+B0NA8Az/8GHwQAg=";
+  };
+
+  build-system = [ poetry-core ];
+  pythonImportsCheck = [ "dahlia" ];
+
+  meta = with lib; {
+    changelog = "https://github.com/dahlia-lib/dahlia/blob/${src.rev}/CHANGELOG.md";
+    description = "Simple text formatting package, inspired by the game Minecraft";
+    license = licenses.mit;
+    homepage = "https://github.com/dahlia-lib/dahlia";
+    maintainers = with maintainers; [ sigmanificient ];
+    mainProgram = "dahlia";
+  };
+}
diff --git a/pkgs/development/python-modules/daphne/default.nix b/pkgs/development/python-modules/daphne/default.nix
index a5699289f24bd..0965dacd42326 100644
--- a/pkgs/development/python-modules/daphne/default.nix
+++ b/pkgs/development/python-modules/daphne/default.nix
@@ -10,24 +10,32 @@
   pytest-asyncio,
   pytestCheckHook,
   pythonOlder,
+  setuptools,
   twisted,
 }:
 
 buildPythonPackage rec {
   pname = "daphne";
-  version = "4.0.0";
-  format = "setuptools";
+  version = "4.1.2";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "django";
-    repo = pname;
-    rev = version;
-    hash = "sha256-vPMrmC2B0Pcvk8Y1FsJ4PXnzIMtPod7lL2u0IYNVUxc=";
+    repo = "daphne";
+    rev = "refs/tags/${version}";
+    hash = "sha256-RAK2CaKKVmVIv1MBK+9xyADOrHq664MQOry4KaGTNCw=";
   };
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace-fail "pytest-runner" ""
+  '';
+
+  build-system = [ setuptools ];
+
+  dependencies = [
     asgiref
     autobahn
     twisted
@@ -40,11 +48,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "pytest-runner" ""
-  '';
-
   # Most tests fail on darwin
   doCheck = !stdenv.isDarwin;
 
@@ -52,9 +55,10 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Django ASGI (HTTP/WebSocket) server";
-    mainProgram = "daphne";
     homepage = "https://github.com/django/daphne";
+    changelog = "https://github.com/django/daphne/blob/${version}/CHANGELOG.txt";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
+    mainProgram = "daphne";
   };
 }
diff --git a/pkgs/development/python-modules/daqp/default.nix b/pkgs/development/python-modules/daqp/default.nix
index 34bcdc4082e7e..4497d546714df 100644
--- a/pkgs/development/python-modules/daqp/default.nix
+++ b/pkgs/development/python-modules/daqp/default.nix
@@ -48,7 +48,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "daqp" ];
 
   meta = with lib; {
-    description = "A dual active-set algorithm for convex quadratic programming";
+    description = "Dual active-set algorithm for convex quadratic programming";
     homepage = "https://github.com/darnstrom/daqp";
     license = licenses.mit;
     maintainers = with maintainers; [ renesat ];
diff --git a/pkgs/development/python-modules/dash-bootstrap-components/default.nix b/pkgs/development/python-modules/dash-bootstrap-components/default.nix
new file mode 100644
index 0000000000000..9e6cfa1daaead
--- /dev/null
+++ b/pkgs/development/python-modules/dash-bootstrap-components/default.nix
@@ -0,0 +1,41 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  dash,
+  setuptools,
+  pythonOlder,
+}:
+
+buildPythonPackage rec {
+  pname = "dash-bootstrap-components";
+  version = "1.6.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "facultyai";
+    repo = "dash-bootstrap-components";
+    rev = "refs/tags/${version}";
+    hash = "sha256-6tx7rOB5FVj44NbTznyZd1Q0HOc8QdxiZOhja5kgpAE=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [ dash ];
+
+  # Tests a additional requirements
+  doCheck = false;
+
+  # Circular import
+  # pythonImportsCheck = [ "dash_bootstrap_components" ];
+
+  meta = with lib; {
+    description = "Bootstrap components for Plotly Dash";
+    homepage = "https://github.com/facultyai/dash-bootstrap-components";
+    changelog = "https://github.com/facultyai/dash-bootstrap-components/releases/tag/${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dash-core-components/default.nix b/pkgs/development/python-modules/dash-core-components/default.nix
index c7bcc5c2ae1e6..9d15db47e8bab 100644
--- a/pkgs/development/python-modules/dash-core-components/default.nix
+++ b/pkgs/development/python-modules/dash-core-components/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A dash component starter pack";
+    description = "Dash component starter pack";
     homepage = "https://dash.plot.ly/dash-core-components";
     license = licenses.mit;
     maintainers = [ maintainers.antoinerg ];
diff --git a/pkgs/development/python-modules/dash-table/default.nix b/pkgs/development/python-modules/dash-table/default.nix
index b4a59029afb6d..717ed9acd7d62 100644
--- a/pkgs/development/python-modules/dash-table/default.nix
+++ b/pkgs/development/python-modules/dash-table/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A First-Class Interactive DataTable for Dash";
+    description = "First-Class Interactive DataTable for Dash";
     homepage = "https://dash.plot.ly/datatable";
     license = licenses.mit;
     maintainers = [ maintainers.antoinerg ];
diff --git a/pkgs/development/python-modules/dash/default.nix b/pkgs/development/python-modules/dash/default.nix
index f6e9245d89bb7..125c25d8a6b59 100644
--- a/pkgs/development/python-modules/dash/default.nix
+++ b/pkgs/development/python-modules/dash/default.nix
@@ -37,7 +37,7 @@
 
 buildPythonPackage rec {
   pname = "dash";
-  version = "2.17.0";
+  version = "2.17.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -46,7 +46,7 @@ buildPythonPackage rec {
     owner = "plotly";
     repo = "dash";
     rev = "refs/tags/v${version}";
-    hash = "sha256-45nSQ3N7VcPsXthmMj3gMWFPi/i9z0peI1Wc6fUT7So=";
+    hash = "sha256-51/nMnXUhb+hTL4xS9x4urI+2eENo/8sEKtk/kt6xTk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/dask-awkward/default.nix b/pkgs/development/python-modules/dask-awkward/default.nix
index 4663d25cffcfc..99bf5858bf680 100644
--- a/pkgs/development/python-modules/dask-awkward/default.nix
+++ b/pkgs/development/python-modules/dask-awkward/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "dask-awkward";
-  version = "2024.3.0";
+  version = "2024.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -30,18 +30,18 @@ buildPythonPackage rec {
     owner = "dask-contrib";
     repo = "dask-awkward";
     rev = "refs/tags/${version}";
-    hash = "sha256-Lkbp/XrDHOekMpT71pbxtuozgzU9iiGF2GJZ+tuV/yM=";
+    hash = "sha256-m/KvPo4IGn19sA5RcA/+OhLMCDBU+9BbMQtK3gHOoEc=";
   };
 
   pythonRelaxDeps = [ "awkward" ];
 
-  nativeBuildInputs = [
+  build-system = [
     hatch-vcs
     hatchling
     pythonRelaxDepsHook
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     awkward
     cachetools
     dask
@@ -74,11 +74,11 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  meta = with lib; {
+  meta = {
     description = "Native Dask collection for awkward arrays, and the library to use it";
     homepage = "https://github.com/dask-contrib/dask-awkward";
     changelog = "https://github.com/dask-contrib/dask-awkward/releases/tag/${version}";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ veprbl ];
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ veprbl ];
   };
 }
diff --git a/pkgs/development/python-modules/dask-expr/default.nix b/pkgs/development/python-modules/dask-expr/default.nix
index 457a2b5ddf332..930581b563a61 100644
--- a/pkgs/development/python-modules/dask-expr/default.nix
+++ b/pkgs/development/python-modules/dask-expr/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "dask-expr";
-  version = "1.1.1";
+  version = "1.1.3";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "dask";
     repo = "dask-expr";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ltsRKbb/p+qHeNiX0oeZUKbbjPoPxSM4uFnWUFqoqhc=";
+    hash = "sha256-20gVzmOnVWoPGrGcLp8nhAoiHWunaYZIXOxYho7ZhUs=";
   };
 
   postPatch = ''
@@ -54,7 +54,7 @@ buildPythonPackage rec {
   __darwinAllowLocalNetworking = true;
 
   meta = {
-    description = "A rewrite of Dask DataFrame that includes query optimization and generally improved organization";
+    description = "Rewrite of Dask DataFrame that includes query optimization and generally improved organization";
     homepage = "https://github.com/dask/dask-expr";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ GaetanLepage ];
diff --git a/pkgs/development/python-modules/dask-gateway-server/default.nix b/pkgs/development/python-modules/dask-gateway-server/default.nix
index 86e3187ae9f95..9d90d292ea7a6 100644
--- a/pkgs/development/python-modules/dask-gateway-server/default.nix
+++ b/pkgs/development/python-modules/dask-gateway-server/default.nix
@@ -58,7 +58,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "dask_gateway_server" ];
 
   meta = with lib; {
-    description = "A multi-tenant server for securely deploying and managing multiple Dask clusters";
+    description = "Multi-tenant server for securely deploying and managing multiple Dask clusters";
     homepage = "https://gateway.dask.org/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/dask-gateway/default.nix b/pkgs/development/python-modules/dask-gateway/default.nix
index 56334adf6f015..79a1d54f4dc70 100644
--- a/pkgs/development/python-modules/dask-gateway/default.nix
+++ b/pkgs/development/python-modules/dask-gateway/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "dask_gateway" ];
 
   meta = with lib; {
-    description = "A client library for interacting with a dask-gateway server";
+    description = "Client library for interacting with a dask-gateway server";
     homepage = "https://gateway.dask.org/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/dask/default.nix b/pkgs/development/python-modules/dask/default.nix
index c713c7f2dd648..08ce62f9e701f 100644
--- a/pkgs/development/python-modules/dask/default.nix
+++ b/pkgs/development/python-modules/dask/default.nix
@@ -41,7 +41,7 @@
 let
   self = buildPythonPackage rec {
     pname = "dask";
-    version = "2024.5.1";
+    version = "2024.6.0";
     pyproject = true;
 
     disabled = pythonOlder "3.9";
@@ -50,7 +50,7 @@ let
       owner = "dask";
       repo = "dask";
       rev = "refs/tags/${version}";
-      hash = "sha256-FzvzmQa9kJAZw67HY+d+3uC6Bd246vp5QsyXepGnKH8=";
+      hash = "sha256-HtWxVWMk0G2OeBnZKLF5tuOohPbg20Ufl+VH/MX8vK0=";
     };
 
     build-system = [
diff --git a/pkgs/development/python-modules/dataclass-wizard/default.nix b/pkgs/development/python-modules/dataclass-wizard/default.nix
index 546f710a4370e..39f0f0aa39fa7 100644
--- a/pkgs/development/python-modules/dataclass-wizard/default.nix
+++ b/pkgs/development/python-modules/dataclass-wizard/default.nix
@@ -50,7 +50,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "dataclass_wizard" ];
 
   meta = with lib; {
-    description = "A set of simple, yet elegant wizarding tools for interacting with the Python dataclasses module";
+    description = "Set of simple, yet elegant wizarding tools for interacting with the Python dataclasses module";
     mainProgram = "wiz";
     homepage = "https://github.com/rnag/dataclass-wizard";
     changelog = "https://github.com/rnag/dataclass-wizard/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/dataclasses-json/default.nix b/pkgs/development/python-modules/dataclasses-json/default.nix
index 9c8c350185de6..bb8a949bc8ae2 100644
--- a/pkgs/development/python-modules/dataclasses-json/default.nix
+++ b/pkgs/development/python-modules/dataclasses-json/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "dataclasses-json";
-  version = "0.6.6";
+  version = "0.6.7";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "lidatong";
     repo = "dataclasses-json";
     rev = "refs/tags/v${version}";
-    hash = "sha256-JpZwRln7QC0SO/+8xFxc6xrC+ZBFSHVQ9NJscAO+Lf8=";
+    hash = "sha256-AH/T6pa/CHtQNox67fqqs/BBnUcmThvbnSHug2p33qM=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/datadog/default.nix b/pkgs/development/python-modules/datadog/default.nix
index 87fde9f88a24e..5103cc4df9477 100644
--- a/pkgs/development/python-modules/datadog/default.nix
+++ b/pkgs/development/python-modules/datadog/default.nix
@@ -58,7 +58,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "datadog" ];
 
   meta = with lib; {
-    description = "The Datadog Python library";
+    description = "Datadog Python library";
     homepage = "https://github.com/DataDog/datadogpy";
     changelog = "https://github.com/DataDog/datadogpy/blob/v${version}/CHANGELOG.md";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/datafusion/default.nix b/pkgs/development/python-modules/datafusion/default.nix
index 5210884325f4d..1b968fe500074 100644
--- a/pkgs/development/python-modules/datafusion/default.nix
+++ b/pkgs/development/python-modules/datafusion/default.nix
@@ -33,21 +33,21 @@ in
 
 buildPythonPackage rec {
   pname = "datafusion";
-  version = "35.0.0";
-  format = "pyproject";
+  version = "38.0.1";
+  pyproject = true;
 
   src = fetchFromGitHub {
     name = "datafusion-source";
     owner = "apache";
     repo = "arrow-datafusion-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-43XY7j/8x+7SCY4W8nysaeWax2nvTTHZXMmy3hSz6pI=";
+    hash = "sha256-rBS6i2HqpdhnhZZfO0ywL/e4a+rnUZkHzezKd8PuG80=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     name = "datafusion-cargo-deps";
     inherit src pname version;
-    hash = "sha256-YWAyEMojw0bc/fu5kIZKMNPEgsAIpWqjVNodWXbgTl4=";
+    hash = "sha256-M2ZNAFWdsnN9C4+YbqFxZVH9fHR10Bimf1Xzrd9oy9E=";
   };
 
   nativeBuildInputs = with rustPlatform; [
diff --git a/pkgs/development/python-modules/datasets/default.nix b/pkgs/development/python-modules/datasets/default.nix
index 4ba7b08c0fb03..6c3c9b11434ad 100644
--- a/pkgs/development/python-modules/datasets/default.nix
+++ b/pkgs/development/python-modules/datasets/default.nix
@@ -4,7 +4,6 @@
   buildPythonPackage,
   dill,
   fetchFromGitHub,
-  fetchpatch,
   fsspec,
   huggingface-hub,
   importlib-metadata,
@@ -22,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "datasets";
-  version = "2.19.0";
+  version = "2.19.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -31,7 +30,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-m3x3/MCezA0WjYKBa2F12emMZdwLKi/9bFBf59A4qs8=";
+    hash = "sha256-GicQopfQ6Ih9VEcLPAPlkvYAo2+aRqiFP1iGRM8/9m0=";
   };
 
   # remove pyarrow<14.0.1 vulnerability fix
diff --git a/pkgs/development/python-modules/datasette/default.nix b/pkgs/development/python-modules/datasette/default.nix
index e56f31449f097..199634e5c4755 100644
--- a/pkgs/development/python-modules/datasette/default.nix
+++ b/pkgs/development/python-modules/datasette/default.nix
@@ -30,7 +30,7 @@
 
 buildPythonPackage rec {
   pname = "datasette";
-  version = "0.64.6";
+  version = "0.64.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -39,7 +39,7 @@ buildPythonPackage rec {
     owner = "simonw";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-chU0AFaVfkJMRwraX/Ky0e6/g3ZSZ2efNIJ15veqFmg=";
+    hash = "sha256-MxTCVgV0xDKXiYOx6rh5v55uQqlf9Wd06wHfnhDS4Hk=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/datashape/default.nix b/pkgs/development/python-modules/datashape/default.nix
index 6f6651a6c6175..7077087d35875 100644
--- a/pkgs/development/python-modules/datashape/default.nix
+++ b/pkgs/development/python-modules/datashape/default.nix
@@ -7,6 +7,8 @@
   numpy,
   multipledispatch,
   python-dateutil,
+  setuptools,
+  versioneer,
 }:
 
 let
@@ -29,18 +31,28 @@ in
 buildPythonPackage rec {
   pname = "datashape";
   version = "0.5.4";
-  format = "setuptools";
+
+  pyproject = true;
+  build-system = [
+    setuptools
+    versioneer
+  ];
 
   src = fetcher {
     inherit pname version;
     sha256 = "0rhlj2kjj1vx5m73wnc5518rd6cs1zsbgpsvzk893n516k69shcf";
   };
 
+  postPatch = ''
+    # Remove vendorized versioneer.py
+    rm versioneer.py
+  '';
+
   nativeCheckInputs = [
     pytest
     mock
   ];
-  propagatedBuildInputs = [
+  dependencies = [
     numpy
     multipledispatch
     python-dateutil
@@ -58,7 +70,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/ContinuumIO/datashape";
-    description = "A data description language";
+    description = "Data description language";
     license = lib.licenses.bsd2;
   };
 }
diff --git a/pkgs/development/python-modules/dateutils/default.nix b/pkgs/development/python-modules/dateutils/default.nix
index 00fdccfffe8b2..9dbe3654a4019 100644
--- a/pkgs/development/python-modules/dateutils/default.nix
+++ b/pkgs/development/python-modules/dateutils/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "dateutils" ];
 
   meta = with lib; {
-    description = "Utilities for working with datetime objects.";
+    description = "Utilities for working with datetime objects";
     homepage = "https://github.com/jmcantrell/python-dateutils";
     license = licenses.bsd0;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/dazl/default.nix b/pkgs/development/python-modules/dazl/default.nix
index 70cd5116c5854..7613795fabe9a 100644
--- a/pkgs/development/python-modules/dazl/default.nix
+++ b/pkgs/development/python-modules/dazl/default.nix
@@ -36,7 +36,8 @@ buildPythonPackage rec {
   patches = [
     # Merged, remove this next release
     (fetchpatch {
-      url = "https://github.com/digital-asset/dazl-client/pull/428.patch";
+      name = "428.patch"; # https://github.com/digital-asset/dazl-client/pull/428
+      url = "https://github.com/digital-asset/dazl-client/commit/a68bad0471d22210f0abf31447a7732477de39d4.patch";
       sha256 = "sha256-Gx9W1XkvMPg8FAOAXijDF5QnMbntk5mR0q5+o5i2KAE=";
     })
   ];
diff --git a/pkgs/development/python-modules/dbt-core/default.nix b/pkgs/development/python-modules/dbt-core/default.nix
index aa510105bd5ea..2de11c94934d5 100644
--- a/pkgs/development/python-modules/dbt-core/default.nix
+++ b/pkgs/development/python-modules/dbt-core/default.nix
@@ -34,7 +34,7 @@
 
 buildPythonPackage rec {
   pname = "dbt-core";
-  version = "1.7.13";
+  version = "1.7.14";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -43,7 +43,7 @@ buildPythonPackage rec {
     owner = "dbt-labs";
     repo = "dbt-core";
     rev = "refs/tags/v${version}";
-    hash = "sha256-uai1ihdmJpFkQqpx7edWiwwy0ek4dbclR/2OuiNbaXM=";
+    hash = "sha256-4PydrJGhriGCB6oc4kQE8/a24Sn9cqZhoKsiBJuEDYM=";
   };
 
   sourceRoot = "${src.name}/core";
diff --git a/pkgs/development/python-modules/dbt-extractor/default.nix b/pkgs/development/python-modules/dbt-extractor/default.nix
index aa0cd12b86a00..2e3eecc5dfcdd 100644
--- a/pkgs/development/python-modules/dbt-extractor/default.nix
+++ b/pkgs/development/python-modules/dbt-extractor/default.nix
@@ -41,7 +41,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "dbt_extractor" ];
 
   meta = with lib; {
-    description = "A tool that processes the most common jinja value templates in dbt model files";
+    description = "Tool that processes the most common jinja value templates in dbt model files";
     homepage = "https://github.com/dbt-labs/dbt-extractor";
     changelog = "https://github.com/dbt-labs/dbt-extractor/blob/main/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/dbus-client-gen/default.nix b/pkgs/development/python-modules/dbus-client-gen/default.nix
index c95327a523738..bdc13650ff710 100644
--- a/pkgs/development/python-modules/dbus-client-gen/default.nix
+++ b/pkgs/development/python-modules/dbus-client-gen/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A Python Library for Generating D-Bus Client Code";
+    description = "Python Library for Generating D-Bus Client Code";
     homepage = "https://github.com/stratis-storage/dbus-client-gen";
     license = licenses.mpl20;
     maintainers = with maintainers; [ nickcao ];
diff --git a/pkgs/development/python-modules/dbus-deviation/default.nix b/pkgs/development/python-modules/dbus-deviation/default.nix
index 22cd4273fbc23..c804f94bc1b99 100644
--- a/pkgs/development/python-modules/dbus-deviation/default.nix
+++ b/pkgs/development/python-modules/dbus-deviation/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://tecnocode.co.uk/dbus-deviation/";
-    description = "A project for parsing D-Bus introspection XML and processing it in various ways";
+    description = "Project for parsing D-Bus introspection XML and processing it in various ways";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ lilyinstarlight ];
   };
diff --git a/pkgs/development/python-modules/dbus-next/default.nix b/pkgs/development/python-modules/dbus-next/default.nix
index c27dad1f3c1f0..572fa905e82de 100644
--- a/pkgs/development/python-modules/dbus-next/default.nix
+++ b/pkgs/development/python-modules/dbus-next/default.nix
@@ -44,7 +44,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A zero-dependency DBus library for Python with asyncio support";
+    description = "Zero-dependency DBus library for Python with asyncio support";
     homepage = "https://github.com/altdesktop/python-dbus-next";
     changelog = "https://github.com/altdesktop/python-dbus-next/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/dbus-python-client-gen/default.nix b/pkgs/development/python-modules/dbus-python-client-gen/default.nix
index af38a76b0e1c6..5b4bd5121d052 100644
--- a/pkgs/development/python-modules/dbus-python-client-gen/default.nix
+++ b/pkgs/development/python-modules/dbus-python-client-gen/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "dbus_python_client_gen" ];
 
   meta = with lib; {
-    description = "A Python library for generating dbus-python client code";
+    description = "Python library for generating dbus-python client code";
     homepage = "https://github.com/stratis-storage/dbus-python-client-gen";
     changelog = "https://github.com/stratis-storage/dbus-python-client-gen/blob/v${version}/CHANGES.txt";
     license = licenses.mpl20;
diff --git a/pkgs/development/python-modules/dbus-signature-pyparsing/default.nix b/pkgs/development/python-modules/dbus-signature-pyparsing/default.nix
index 2110bcebec72a..aa3892ee9aaa8 100644
--- a/pkgs/development/python-modules/dbus-signature-pyparsing/default.nix
+++ b/pkgs/development/python-modules/dbus-signature-pyparsing/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "dbus_signature_pyparsing" ];
 
   meta = with lib; {
-    description = "A Parser for a D-Bus Signature";
+    description = "Parser for a D-Bus Signature";
     homepage = "https://github.com/stratis-storage/dbus-signature-pyparsing";
     license = licenses.asl20;
     maintainers = with maintainers; [ nickcao ];
diff --git a/pkgs/development/python-modules/deap/default.nix b/pkgs/development/python-modules/deap/default.nix
index 3f9ba5b0fba2e..ec804ae1ba936 100644
--- a/pkgs/development/python-modules/deap/default.nix
+++ b/pkgs/development/python-modules/deap/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A novel evolutionary computation framework for rapid prototyping and testing of ideas";
+    description = "Novel evolutionary computation framework for rapid prototyping and testing of ideas";
     homepage = "https://github.com/DEAP/deap";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [
diff --git a/pkgs/development/python-modules/debtcollector/default.nix b/pkgs/development/python-modules/debtcollector/default.nix
index 573f41d0b1f56..5174c46c444a8 100644
--- a/pkgs/development/python-modules/debtcollector/default.nix
+++ b/pkgs/development/python-modules/debtcollector/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "debtcollector" ];
 
   meta = with lib; {
-    description = "A collection of Python deprecation patterns and strategies that help you collect your technical debt in a non-destructive manner";
+    description = "Collection of Python deprecation patterns and strategies that help you collect your technical debt in a non-destructive manner";
     homepage = "https://github.com/openstack/debtcollector";
     license = licenses.asl20;
     maintainers = teams.openstack.members;
diff --git a/pkgs/development/python-modules/debts/default.nix b/pkgs/development/python-modules/debts/default.nix
index b02e8924ed35d..36e51d2b4477b 100644
--- a/pkgs/development/python-modules/debts/default.nix
+++ b/pkgs/development/python-modules/debts/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "A simple library and cli-tool to help you solve some debts settlement scenarios";
+    description = "Simple library and cli-tool to help you solve some debts settlement scenarios";
     mainProgram = "debts";
     license = licenses.beerware;
     maintainers = [ maintainers.symphorien ];
diff --git a/pkgs/development/python-modules/debugpy/default.nix b/pkgs/development/python-modules/debugpy/default.nix
index 6a78092a08321..92f42bd90d64d 100644
--- a/pkgs/development/python-modules/debugpy/default.nix
+++ b/pkgs/development/python-modules/debugpy/default.nix
@@ -133,7 +133,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "debugpy" ];
 
   meta = with lib; {
-    description = "An implementation of the Debug Adapter Protocol for Python";
+    description = "Implementation of the Debug Adapter Protocol for Python";
     homepage = "https://github.com/microsoft/debugpy";
     changelog = "https://github.com/microsoft/debugpy/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/deebot-client/default.nix b/pkgs/development/python-modules/deebot-client/default.nix
index 17edaa445de76..697758093fef3 100644
--- a/pkgs/development/python-modules/deebot-client/default.nix
+++ b/pkgs/development/python-modules/deebot-client/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "deebot-client";
-  version = "7.2.0";
+  version = "8.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.12";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "DeebotUniverse";
     repo = "client.py";
     rev = "refs/tags/${version}";
-    hash = "sha256-5GALvd9p+ksxWqkfkSd07mPNzQSbdeGzrUjQU2nWs3g=";
+    hash = "sha256-iAUGk7ErRG7ZgvjbmEZRLAOFlMHKZ/iM8pkwAtFla2E=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/deep-chainmap/default.nix b/pkgs/development/python-modules/deep-chainmap/default.nix
index dbfec0b3bb976..15238b0f5f17c 100644
--- a/pkgs/development/python-modules/deep-chainmap/default.nix
+++ b/pkgs/development/python-modules/deep-chainmap/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   # See the guide for more information: https://nixos.org/nixpkgs/manual/#chap-meta
   meta = with lib; {
-    description = "A recursive subclass of ChainMap";
+    description = "Recursive subclass of ChainMap";
     homepage = "https://github.com/neutrinoceros/deep-chainmap";
     license = licenses.mit;
     maintainers = with maintainers; [ rehno-lindeque ];
diff --git a/pkgs/development/python-modules/deepdiff/default.nix b/pkgs/development/python-modules/deepdiff/default.nix
index dc82f82718322..e16fd6e90cc30 100644
--- a/pkgs/development/python-modules/deepdiff/default.nix
+++ b/pkgs/development/python-modules/deepdiff/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
   '';
 
   propagatedBuildInputs = [
+    click
     ordered-set
     orjson
   ];
diff --git a/pkgs/development/python-modules/deepdish/default.nix b/pkgs/development/python-modules/deepdish/default.nix
index 419a338d31cf0..04062db872a79 100644
--- a/pkgs/development/python-modules/deepdish/default.nix
+++ b/pkgs/development/python-modules/deepdish/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "Flexible HDF5 saving/loading and other data science tools from the University of Chicago.";
+    description = "Flexible HDF5 saving/loading and other data science tools from the University of Chicago";
     mainProgram = "ddls";
     homepage = "https://github.com/uchicago-cs/deepdish";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/deepl/default.nix b/pkgs/development/python-modules/deepl/default.nix
index 0377a8f5f28f8..aaa294f39ecbf 100644
--- a/pkgs/development/python-modules/deepl/default.nix
+++ b/pkgs/development/python-modules/deepl/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "deepl" ];
 
   meta = with lib; {
-    description = "A language translation API that allows other computer programs to send texts and documents to DeepL's servers and receive high-quality translations";
+    description = "Language translation API that allows other computer programs to send texts and documents to DeepL's servers and receive high-quality translations";
     mainProgram = "deepl";
     homepage = "https://github.com/DeepLcom/deepl-python";
     changelog = "https://github.com/DeepLcom/deepl-python/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/deepmerge/default.nix b/pkgs/development/python-modules/deepmerge/default.nix
index eb60165178403..4dffa0322f1e4 100644
--- a/pkgs/development/python-modules/deepmerge/default.nix
+++ b/pkgs/development/python-modules/deepmerge/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/toumorokoshi/deepmerge/releases/tag/v${version}";
-    description = "A toolset to deeply merge python dictionaries.";
+    description = "Toolset to deeply merge python dictionaries";
     downloadPage = "https://github.com/toumorokoshi/deepmerge";
     homepage = "http://deepmerge.readthedocs.io/en/latest/";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/deezer-py/default.nix b/pkgs/development/python-modules/deezer-py/default.nix
index af28e5f5b9a5b..48228fcace341 100644
--- a/pkgs/development/python-modules/deezer-py/default.nix
+++ b/pkgs/development/python-modules/deezer-py/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://gitlab.com/RemixDev/deezer-py";
-    description = "A wrapper for all Deezer's APIs";
+    description = "Wrapper for all Deezer's APIs";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ natto1784 ];
   };
diff --git a/pkgs/development/python-modules/deezer-python/default.nix b/pkgs/development/python-modules/deezer-python/default.nix
index 812f9eba2469d..0bd136e6fcebb 100644
--- a/pkgs/development/python-modules/deezer-python/default.nix
+++ b/pkgs/development/python-modules/deezer-python/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "deezer-python";
-  version = "6.1.1";
+  version = "6.2.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -23,15 +23,20 @@ buildPythonPackage rec {
     owner = "browniebroke";
     repo = "deezer-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-pzEXiWKMP2Wqme/pqfTMHxWH/4YcCS6u865wslHrUqI=";
+    hash = "sha256-Y1y8FBxpGpNIWCZbel9fdGLGC9VM9h1BvHtUxCZxp/A=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace " --cov=deezer" ""
+      --replace-fail " --cov=deezer" ""
   '';
 
-  nativeBuildInputs = [ poetry-core ];
+  build-system = [ poetry-core ];
+
+  dependencies = [
+    requests
+    tornado
+  ];
 
   nativeCheckInputs = [
     environs
@@ -40,11 +45,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  propagatedBuildInputs = [
-    requests
-    tornado
-  ];
-
   pythonImportsCheck = [ "deezer" ];
 
   disabledTests = [
diff --git a/pkgs/development/python-modules/defcon/default.nix b/pkgs/development/python-modules/defcon/default.nix
index d6298043cb001..309b02d14fa1b 100644
--- a/pkgs/development/python-modules/defcon/default.nix
+++ b/pkgs/development/python-modules/defcon/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A set of UFO based objects for use in font editing applications";
+    description = "Set of UFO based objects for use in font editing applications";
     homepage = "https://github.com/robotools/defcon";
     changelog = "https://github.com/robotools/defcon/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/dek/default.nix b/pkgs/development/python-modules/dek/default.nix
index 23d7ce5bd1c1c..811c406480a15 100644
--- a/pkgs/development/python-modules/dek/default.nix
+++ b/pkgs/development/python-modules/dek/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "dek" ];
 
   meta = with lib; {
-    description = "The decorator-decorator";
+    description = "Decorator-decorator";
     homepage = "https://github.com/rec/dek";
     changelog = "https://github.com/rec/dek/blob/${src.rev}/CHANGELOG";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/deltachat2/default.nix b/pkgs/development/python-modules/deltachat2/default.nix
new file mode 100644
index 0000000000000..78d10679a3079
--- /dev/null
+++ b/pkgs/development/python-modules/deltachat2/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, deltachat-rpc-server
+, libdeltachat
+, setuptools-scm
+, substituteAll
+}:
+
+buildPythonPackage rec {
+  pname = "deltachat2";
+  version = "0.6.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "adbenitez";
+    repo = "deltachat2";
+    rev = "refs/tags/${version}";
+    hash = "sha256-bp4bi+EeMaWP8zOaPp0eaPKn71F055QgMOOSDzIJUH4=";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./paths.patch;
+      deltachatrpcserver = lib.getExe deltachat-rpc-server;
+    })
+  ];
+
+  build-system = [
+    setuptools-scm
+  ];
+
+  pythonImportsCheck = [ "deltachat2" ];
+
+  meta = {
+    description = "Client library for Delta Chat core JSON-RPC interface";
+    homepage = "https://github.com/adbenitez/deltachat2";
+    license = lib.licenses.mpl20;
+    mainProgram = "deltachat2";
+    inherit (libdeltachat.meta) maintainers;
+  };
+}
diff --git a/pkgs/development/python-modules/deltachat2/paths.patch b/pkgs/development/python-modules/deltachat2/paths.patch
new file mode 100644
index 0000000000000..92cfe11fc6f0e
--- /dev/null
+++ b/pkgs/development/python-modules/deltachat2/paths.patch
@@ -0,0 +1,13 @@
+diff --git a/deltachat2/transport.py b/deltachat2/transport.py
+index a93dc7e..251947b 100644
+--- a/deltachat2/transport.py
++++ b/deltachat2/transport.py
+@@ -71,7 +71,7 @@ class IOTransport:
+             # `process_group` is not supported before Python 3.11.
+             kwargs = {"preexec_fn": os.setpgrp, **self._kwargs}  # noqa: PLW1509
+         self.process = subprocess.Popen(  # noqa: R1732
+-            "deltachat-rpc-server",
++            "@deltachatrpcserver@",
+             stdin=subprocess.PIPE,
+             stdout=subprocess.PIPE,
+             **kwargs,
diff --git a/pkgs/development/python-modules/deprecation/default.nix b/pkgs/development/python-modules/deprecation/default.nix
index 58b72b23f3244..7c3715cbfe785 100644
--- a/pkgs/development/python-modules/deprecation/default.nix
+++ b/pkgs/development/python-modules/deprecation/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ unittestCheckHook ];
 
   meta = with lib; {
-    description = "A library to handle automated deprecations";
+    description = "Library to handle automated deprecations";
     homepage = "https://deprecation.readthedocs.io/";
     license = licenses.asl20;
   };
diff --git a/pkgs/development/python-modules/detect-secrets/default.nix b/pkgs/development/python-modules/detect-secrets/default.nix
index a3a366d28be56..9fa8cb8d1590f 100644
--- a/pkgs/development/python-modules/detect-secrets/default.nix
+++ b/pkgs/development/python-modules/detect-secrets/default.nix
@@ -64,7 +64,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "detect_secrets" ];
 
   meta = with lib; {
-    description = "An enterprise friendly way of detecting and preventing secrets in code";
+    description = "Enterprise friendly way of detecting and preventing secrets in code";
     homepage = "https://github.com/Yelp/detect-secrets";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/devgoldyutils/default.nix b/pkgs/development/python-modules/devgoldyutils/default.nix
index 7175c35440b6a..fb70dba6d40c3 100644
--- a/pkgs/development/python-modules/devgoldyutils/default.nix
+++ b/pkgs/development/python-modules/devgoldyutils/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "devgoldyutils" ];
 
   meta = {
-    description = "A collection of utility functions for Python used by mov-cli";
+    description = "Collection of utility functions for Python used by mov-cli";
     homepage = "https://github.com/THEGOLDENPRO/devgoldyutils";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ roshaen ];
diff --git a/pkgs/development/python-modules/devito/default.nix b/pkgs/development/python-modules/devito/default.nix
index c8b2bae7cea6e..6a414f9cabb9b 100644
--- a/pkgs/development/python-modules/devito/default.nix
+++ b/pkgs/development/python-modules/devito/default.nix
@@ -26,7 +26,7 @@
 
 buildPythonPackage rec {
   pname = "devito";
-  version = "4.8.6";
+  version = "4.8.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     owner = "devitocodes";
     repo = "devito";
     rev = "refs/tags/v${version}";
-    hash = "sha256-unuJLp+zTyGpOk5O78xYbW6Zrzp60WyqgT9mf2YpTG4=";
+    hash = "sha256-UEj3WXRBaEOMX+wIDUjE6AP30QSSBUJHzNh3Kp/2AkE=";
   };
 
   pythonRemoveDeps = [
@@ -86,14 +86,16 @@ buildPythonPackage rec {
       "test_gs_parallel"
       "test_if_halo_mpi"
       "test_if_parallel"
+      "test_index_derivative"
       "test_init_omp_env_w_mpi"
       "test_loop_bounds_forward"
-      "test_mpi_nocomms"
+      "test_min_max_mpi"
       "test_mpi"
-      "test_index_derivative"
+      "test_mpi_nocomms"
       "test_new_distributor"
       "test_setupWOverQ"
       "test_shortcuts"
+      "test_stability_mpi"
       "test_subdomainset_mpi"
       "test_subdomains_mpi"
     ]
@@ -128,11 +130,11 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "devito" ];
 
-  meta = with lib; {
+  meta = {
     description = "Code generation framework for automated finite difference computation";
     homepage = "https://www.devitoproject.org/";
     changelog = "https://github.com/devitocodes/devito/releases/tag/v${version}";
-    license = licenses.mit;
-    maintainers = with maintainers; [ atila ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ atila ];
   };
 }
diff --git a/pkgs/development/python-modules/dicom2nifti/default.nix b/pkgs/development/python-modules/dicom2nifti/default.nix
index e2d8c01e98742..0e12fe09c775b 100644
--- a/pkgs/development/python-modules/dicom2nifti/default.nix
+++ b/pkgs/development/python-modules/dicom2nifti/default.nix
@@ -14,33 +14,36 @@
 
 buildPythonPackage rec {
   pname = "dicom2nifti";
-  version = "2.4.8";
-  format = "setuptools";
+  version = "2.4.11";
+  pyproject = true;
+
   disabled = pythonOlder "3.6";
 
   # no tests in PyPI dist
   src = fetchFromGitHub {
     owner = "icometrix";
     repo = pname;
-    rev = version;
-    hash = "sha256-2Pspxdeu3pHwXpbjS6bQQnvdeMuITRwYarPuLlmNcv8";
+    rev = "refs/tags/${version}";
+    hash = "sha256-/JauQZcCQDl1ukcSE3YPbf1SyhVxDNJUlqnFwdlwYQY=";
   };
 
+  build-system = [ setuptools ];
+
   propagatedBuildInputs = [
     gdcm
     nibabel
     numpy
     pydicom
     scipy
-    setuptools
   ];
 
   # python-gdcm just builds the python interface provided by the "gdcm" package, so
   # we should be able to replace "python-gdcm" with "gdcm" but this doesn't work
   # (similar to https://github.com/NixOS/nixpkgs/issues/84774)
   postPatch = ''
-    substituteInPlace setup.py --replace "python-gdcm" ""
-    substituteInPlace tests/test_generic.py --replace "from common" "from dicom2nifti.common"
+    substituteInPlace setup.py --replace-fail "python-gdcm" ""
+    substituteInPlace tests/test_generic.py --replace-fail "from common" "from dicom2nifti.common"
+    substituteInPlace tests/test_ge.py --replace-fail "import convert_generic" "import dicom2nifti.convert_generic as convert_generic"
   '';
 
   nativeCheckInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/diffusers/default.nix b/pkgs/development/python-modules/diffusers/default.nix
index 8762022b06511..23580b69ced68 100644
--- a/pkgs/development/python-modules/diffusers/default.nix
+++ b/pkgs/development/python-modules/diffusers/default.nix
@@ -1,13 +1,10 @@
 {
   lib,
-  stdenv,
   buildPythonPackage,
   pythonOlder,
   fetchFromGitHub,
-  fetchpatch,
   writeText,
   setuptools,
-  wheel,
   filelock,
   huggingface-hub,
   importlib-metadata,
@@ -38,11 +35,12 @@
   torchsde,
   transformers,
   pythonAtLeast,
+  diffusers,
 }:
 
 buildPythonPackage rec {
   pname = "diffusers";
-  version = "0.27.2";
+  version = "0.28.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -51,29 +49,10 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "diffusers";
     rev = "refs/tags/v${version}";
-    hash = "sha256-aRnbU3jN40xaCsoMFyRt1XB+hyIYMJP2b/T1yZho90c=";
+    hash = "sha256-q1Y7YJSTVkPZF7KeHdOwO7XgTDBvFGioLR57adc1P+o=";
   };
 
-  patches = [
-    # fix python3.12 build
-    (fetchpatch {
-      # https://github.com/huggingface/diffusers/pull/7455
-      name = "001-remove-distutils.patch";
-      url = "https://github.com/huggingface/diffusers/compare/363699044e365ef977a7646b500402fa585e1b6b...3c67864c5acb30413911730b1ed4a9ad47c0a15c.patch";
-      hash = "sha256-Qyvyp1GyTVXN+A+lA1r2hf887ubTtaUknbKd4r46NZQ=";
-    })
-    (fetchpatch {
-      # https://github.com/huggingface/diffusers/pull/7461
-      name = "002-fix-removed-distutils.patch";
-      url = "https://github.com/huggingface/diffusers/commit/efbbbc38e436a1abb1df41a6eccfd6f9f0333f97.patch";
-      hash = "sha256-scdtpX1RYFFEDHcaMb+gDZSsPafkvnIO/wQlpzrQhLA=";
-    })
-  ];
-
-  build-system = [
-    setuptools
-    wheel
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     filelock
@@ -108,8 +87,10 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "diffusers" ];
 
-  # tests crash due to torch segmentation fault
-  doCheck = !(stdenv.isLinux && stdenv.isAarch64);
+  # it takes a few hours
+  doCheck = false;
+
+  passthru.tests.pytest = diffusers.overridePythonAttrs { doCheck = true; };
 
   nativeCheckInputs = [
     parameterized
diff --git a/pkgs/development/python-modules/dinghy/default.nix b/pkgs/development/python-modules/dinghy/default.nix
index c207574ee36cf..451f4c6578f67 100644
--- a/pkgs/development/python-modules/dinghy/default.nix
+++ b/pkgs/development/python-modules/dinghy/default.nix
@@ -53,7 +53,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "dinghy.cli" ];
 
   meta = with lib; {
-    description = "A GitHub activity digest tool";
+    description = "GitHub activity digest tool";
     mainProgram = "dinghy";
     homepage = "https://github.com/nedbat/dinghy";
     changelog = "https://github.com/nedbat/dinghy/blob/${version}/CHANGELOG.rst";
diff --git a/pkgs/development/python-modules/diofant/default.nix b/pkgs/development/python-modules/diofant/default.nix
index 8dc4118beda47..9fa09e0df0704 100644
--- a/pkgs/development/python-modules/diofant/default.nix
+++ b/pkgs/development/python-modules/diofant/default.nix
@@ -55,7 +55,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "diofant" ];
 
   meta = with lib; {
-    description = "A Python CAS library";
+    description = "Python CAS library";
     homepage = "https://diofant.readthedocs.io/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ suhr ];
diff --git a/pkgs/development/python-modules/dissononce/default.nix b/pkgs/development/python-modules/dissononce/default.nix
index feff6a7f6bb0c..b4745c059465c 100644
--- a/pkgs/development/python-modules/dissononce/default.nix
+++ b/pkgs/development/python-modules/dissononce/default.nix
@@ -32,6 +32,6 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://pypi.org/project/dissononce/";
     license = licenses.mit;
-    description = "A python implementation for Noise Protocol Framework";
+    description = "Python implementation for Noise Protocol Framework";
   };
 }
diff --git a/pkgs/development/python-modules/distributed/default.nix b/pkgs/development/python-modules/distributed/default.nix
index 3cad3562be1ae..0d5da20cccfbe 100644
--- a/pkgs/development/python-modules/distributed/default.nix
+++ b/pkgs/development/python-modules/distributed/default.nix
@@ -26,7 +26,7 @@
 
 buildPythonPackage rec {
   pname = "distributed";
-  version = "2024.5.0";
+  version = "2024.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     owner = "dask";
     repo = "distributed";
     rev = "refs/tags/${version}";
-    hash = "sha256-9W5BpBQHw1ZXCOWiFPeIlMns/Yys1gtdwQ4Lhd7qjK8=";
+    hash = "sha256-8TShbpH+DB73G7D4pz8MHC/SPd3RaRttML0S4WaCE4k=";
   };
 
   postPatch = ''
@@ -76,11 +76,11 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "distributed" ];
 
-  meta = with lib; {
+  meta = {
     description = "Distributed computation in Python";
     homepage = "https://distributed.readthedocs.io/";
     changelog = "https://github.com/dask/distributed/blob/${version}/docs/source/changelog.rst";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ teh ];
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ teh ];
   };
 }
diff --git a/pkgs/development/python-modules/distro/default.nix b/pkgs/development/python-modules/distro/default.nix
index d32e5cac5d124..9c4a7a9e70ab3 100644
--- a/pkgs/development/python-modules/distro/default.nix
+++ b/pkgs/development/python-modules/distro/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/nir0s/distro";
-    description = "Linux Distribution - a Linux OS platform information API.";
+    description = "Linux Distribution - a Linux OS platform information API";
     mainProgram = "distro";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/django-annoying/default.nix b/pkgs/development/python-modules/django-annoying/default.nix
index 5e07a6f47f887..bfe0d6f944ba6 100644
--- a/pkgs/development/python-modules/django-annoying/default.nix
+++ b/pkgs/development/python-modules/django-annoying/default.nix
@@ -42,7 +42,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A django application that tries to eliminate annoying things in the Django framework";
+    description = "Django application that tries to eliminate annoying things in the Django framework";
     homepage = "https://skorokithakis.github.io/django-annoying/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ambroisie ];
diff --git a/pkgs/development/python-modules/django-appconf/default.nix b/pkgs/development/python-modules/django-appconf/default.nix
index 47a10b51a1422..c7dae9135674a 100644
--- a/pkgs/development/python-modules/django-appconf/default.nix
+++ b/pkgs/development/python-modules/django-appconf/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A helper class for handling configuration defaults of packaged apps gracefully";
+    description = "Helper class for handling configuration defaults of packaged apps gracefully";
     homepage = "https://django-appconf.readthedocs.org/";
     license = licenses.bsd2;
     maintainers = with maintainers; [ desiderius ];
diff --git a/pkgs/development/python-modules/django-auditlog/default.nix b/pkgs/development/python-modules/django-auditlog/default.nix
index d9b3cd5b3c561..387250090dedf 100644
--- a/pkgs/development/python-modules/django-auditlog/default.nix
+++ b/pkgs/development/python-modules/django-auditlog/default.nix
@@ -60,7 +60,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/jazzband/django-auditlog/blob/v${version}/CHANGELOG.md";
-    description = "A Django app that keeps a log of changes made to an object";
+    description = "Django app that keeps a log of changes made to an object";
     downloadPage = "https://github.com/jazzband/django-auditlog";
     license = licenses.mit;
     maintainers = with maintainers; [ leona ];
diff --git a/pkgs/development/python-modules/django-autocomplete-light/default.nix b/pkgs/development/python-modules/django-autocomplete-light/default.nix
index 3efc86bd3a7f4..eb83b99d8befb 100644
--- a/pkgs/development/python-modules/django-autocomplete-light/default.nix
+++ b/pkgs/development/python-modules/django-autocomplete-light/default.nix
@@ -67,7 +67,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "dal" ];
 
   meta = with lib; {
-    description = "A fresh approach to autocomplete implementations, specially for Django";
+    description = "Fresh approach to autocomplete implementations, specially for Django";
     homepage = "https://django-autocomplete-light.readthedocs.io";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ambroisie ];
diff --git a/pkgs/development/python-modules/django-cacheops/default.nix b/pkgs/development/python-modules/django-cacheops/default.nix
index 297542f9ff0b9..f7f15c540a999 100644
--- a/pkgs/development/python-modules/django-cacheops/default.nix
+++ b/pkgs/development/python-modules/django-cacheops/default.nix
@@ -70,7 +70,7 @@ buildPythonPackage rec {
   DJANGO_SETTINGS_MODULE = "tests.settings";
 
   meta = with lib; {
-    description = "A slick ORM cache with automatic granular event-driven invalidation for Django";
+    description = "Slick ORM cache with automatic granular event-driven invalidation for Django";
     homepage = "https://github.com/Suor/django-cacheops";
     changelog = "https://github.com/Suor/django-cacheops/blob/${version}/CHANGELOG";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/django-celery-results/default.nix b/pkgs/development/python-modules/django-celery-results/default.nix
index b1c69ae1080c1..92d2bf2355603 100644
--- a/pkgs/development/python-modules/django-celery-results/default.nix
+++ b/pkgs/development/python-modules/django-celery-results/default.nix
@@ -38,6 +38,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/celery/django-celery-results";
     changelog = "https://github.com/celery/django-celery-results/blob/v{version}/Changelog";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ babariviere ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/django-configurations/default.nix b/pkgs/development/python-modules/django-configurations/default.nix
index be220e0dc8985..5200ef0afc07e 100644
--- a/pkgs/development/python-modules/django-configurations/default.nix
+++ b/pkgs/development/python-modules/django-configurations/default.nix
@@ -50,7 +50,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "configurations" ];
 
   meta = with lib; {
-    description = "A helper for organizing Django settings";
+    description = "Helper for organizing Django settings";
     mainProgram = "django-cadmin";
     homepage = "https://django-configurations.readthedocs.io/";
     license = licenses.bsd0;
diff --git a/pkgs/development/python-modules/django-contrib-comments/default.nix b/pkgs/development/python-modules/django-contrib-comments/default.nix
index 05ce09663aa9f..ae5872b120b73 100644
--- a/pkgs/development/python-modules/django-contrib-comments/default.nix
+++ b/pkgs/development/python-modules/django-contrib-comments/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/django/django-contrib-comments";
-    description = "The code formerly known as django.contrib.comments";
+    description = "Code formerly known as django.contrib.comments";
     license = licenses.bsd0;
   };
 }
diff --git a/pkgs/development/python-modules/django-crispy-forms/default.nix b/pkgs/development/python-modules/django-crispy-forms/default.nix
index 8fbda6206e7c6..823bf6efd9940 100644
--- a/pkgs/development/python-modules/django-crispy-forms/default.nix
+++ b/pkgs/development/python-modules/django-crispy-forms/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "django-crispy-forms";
-  version = "2.1";
+  version = "2.2";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "django-crispy-forms";
     repo = "django-crispy-forms";
     rev = "refs/tags/${version}";
-    hash = "sha256-UQ5m0JWir20TdLgS+DVVLcMBlIEIfmzv8pkMJtaC0LA=";
+    hash = "sha256-6S/Pscwi6AEQnmJf6JTT5Q5vxoZ3PC65ZjT2XszwVZM=";
   };
 
   propagatedBuildInputs = [
@@ -41,7 +41,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "crispy_forms" ];
 
   meta = with lib; {
-    description = "The best way to have DRY Django forms.";
+    description = "Best way to have DRY Django forms";
     homepage = "https://django-crispy-forms.readthedocs.io/en/latest/";
     license = licenses.mit;
     maintainers = with maintainers; [ ambroisie ];
diff --git a/pkgs/development/python-modules/django-cryptography/default.nix b/pkgs/development/python-modules/django-cryptography/default.nix
index 74ede8be539eb..ffa5efa39aa55 100644
--- a/pkgs/development/python-modules/django-cryptography/default.nix
+++ b/pkgs/development/python-modules/django-cryptography/default.nix
@@ -4,7 +4,6 @@
   django,
   django-appconf,
   fetchFromGitHub,
-  fetchpatch,
   lib,
   python,
   pythonOlder,
@@ -47,7 +46,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/georgemarshall/django-cryptography";
-    description = "A set of primitives for performing cryptography in Django";
+    description = "Set of primitives for performing cryptography in Django";
     license = licenses.bsd3;
     maintainers = with maintainers; [ centromere ];
   };
diff --git a/pkgs/development/python-modules/django-dynamic-preferences/default.nix b/pkgs/development/python-modules/django-dynamic-preferences/default.nix
index 3b97a3ad8367d..28f9368de776b 100644
--- a/pkgs/development/python-modules/django-dynamic-preferences/default.nix
+++ b/pkgs/development/python-modules/django-dynamic-preferences/default.nix
@@ -2,6 +2,7 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+  pythonOlder,
 
   # dependencies
   django,
@@ -39,6 +40,11 @@ buildPythonPackage rec {
     pytest-django
   ];
 
+  pythonImportsCheck = [ "dynamic_preferences" ];
+
+  # Remove once https://github.com/agateblue/django-dynamic-preferences/issues/309 is fixed
+  doCheck = pythonOlder "3.12";
+
   env.DJANGO_SETTINGS = "tests.settings";
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/django-encrypted-model-fields/default.nix b/pkgs/development/python-modules/django-encrypted-model-fields/default.nix
index b08eb39fe2816..52109a7a529be 100644
--- a/pkgs/development/python-modules/django-encrypted-model-fields/default.nix
+++ b/pkgs/development/python-modules/django-encrypted-model-fields/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "encrypted_model_fields" ];
 
   meta = with lib; {
-    description = "A set of fields that wrap standard Django fields with encryption provided by the python cryptography library";
+    description = "Set of fields that wrap standard Django fields with encryption provided by the python cryptography library";
     homepage = "https://gitlab.com/lansharkconsulting/django/django-encrypted-model-fields";
     license = licenses.mit;
     maintainers = with maintainers; [ centromere ];
diff --git a/pkgs/development/python-modules/django-extensions/default.nix b/pkgs/development/python-modules/django-extensions/default.nix
index e95945db87a68..54f01c14c48f8 100644
--- a/pkgs/development/python-modules/django-extensions/default.nix
+++ b/pkgs/development/python-modules/django-extensions/default.nix
@@ -69,7 +69,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A collection of custom extensions for the Django Framework";
+    description = "Collection of custom extensions for the Django Framework";
     homepage = "https://github.com/django-extensions/django-extensions";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/django-formset-js-improved/default.nix b/pkgs/development/python-modules/django-formset-js-improved/default.nix
index b053510f4afe1..0f3a54b688e48 100644
--- a/pkgs/development/python-modules/django-formset-js-improved/default.nix
+++ b/pkgs/development/python-modules/django-formset-js-improved/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   doCheck = false; # no tests
 
   meta = with lib; {
-    description = "A wrapper for a JavaScript formset helper";
+    description = "Wrapper for a JavaScript formset helper";
     homepage = "https://github.com/pretix/django-formset-js";
     license = licenses.bsd2;
     maintainers = with maintainers; [ hexa ];
diff --git a/pkgs/development/python-modules/django-formtools/default.nix b/pkgs/development/python-modules/django-formtools/default.nix
index 266c710c68284..0bd2d30e34133 100644
--- a/pkgs/development/python-modules/django-formtools/default.nix
+++ b/pkgs/development/python-modules/django-formtools/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "formtools" ];
 
   meta = with lib; {
-    description = "A set of high-level abstractions for Django forms";
+    description = "Set of high-level abstractions for Django forms";
     homepage = "https://github.com/jazzband/django-formtools";
     changelog = "https://github.com/jazzband/django-formtools/blob/master/docs/changelog.rst";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/django-import-export/default.nix b/pkgs/development/python-modules/django-import-export/default.nix
index a57a770444eda..fd4be9238aaf6 100644
--- a/pkgs/development/python-modules/django-import-export/default.nix
+++ b/pkgs/development/python-modules/django-import-export/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "django-import-export";
-  version = "4.0.3";
+  version = "4.0.8";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "django-import-export";
     repo = "django-import-export";
     rev = "refs/tags/${version}";
-    hash = "sha256-ItJx9yJSy88/OvkpjGDWGBOMk5YlSquicSWi0tbKeWE=";
+    hash = "sha256-FejU0k2/fmR5QdAJy2xxx3MKgu89/pOj4cIWsMGUw0M=";
   };
 
   pythonRelaxDeps = [ "tablib" ];
diff --git a/pkgs/development/python-modules/django-ipware/default.nix b/pkgs/development/python-modules/django-ipware/default.nix
index 148620f78e2e5..c786de25abceb 100644
--- a/pkgs/development/python-modules/django-ipware/default.nix
+++ b/pkgs/development/python-modules/django-ipware/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   # django.core.exceptions.ImproperlyConfigured: Requested setting IPWARE_META_PRECEDENCE_ORDER, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
 
   meta = with lib; {
-    description = "A Django application to retrieve user's IP address";
+    description = "Django application to retrieve user's IP address";
     homepage = "https://github.com/un33k/django-ipware";
     changelog = "https://github.com/un33k/django-ipware/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/django-js-reverse/default.nix b/pkgs/development/python-modules/django-js-reverse/default.nix
index 9fedef235c113..3e344f881395d 100644
--- a/pkgs/development/python-modules/django-js-reverse/default.nix
+++ b/pkgs/development/python-modules/django-js-reverse/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   pythonAtLeast,
-  fetchpatch,
   fetchFromGitHub,
   python,
   django,
diff --git a/pkgs/development/python-modules/django-libsass/default.nix b/pkgs/development/python-modules/django-libsass/default.nix
index ada5f9e496f21..ee6631cd3a000 100644
--- a/pkgs/development/python-modules/django-libsass/default.nix
+++ b/pkgs/development/python-modules/django-libsass/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A django-compressor filter to compile SASS files using libsass";
+    description = "Django-compressor filter to compile SASS files using libsass";
     homepage = "https://github.com/torchbox/django-libsass";
     changelog = "https://github.com/torchbox/django-libsass/blob/${src.rev}/CHANGELOG.txt";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/django-markup/default.nix b/pkgs/development/python-modules/django-markup/default.nix
index c67cab8ad47a5..6d7dd7f594535 100644
--- a/pkgs/development/python-modules/django-markup/default.nix
+++ b/pkgs/development/python-modules/django-markup/default.nix
@@ -61,7 +61,7 @@ buildPythonPackage rec {
   env.DJANGO_SETTINGS_MODULE = "django_markup.tests";
 
   meta = with lib; {
-    description = "Generic Django application to convert text with specific markup to html.";
+    description = "Generic Django application to convert text with specific markup to html";
     homepage = "https://github.com/bartTC/django-markup";
     changelog = "https://github.com/bartTC/django-markup/blob/v${version}/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/django-modeltranslation/default.nix b/pkgs/development/python-modules/django-modeltranslation/default.nix
index eb6458d6a96cd..32e5d59b4de0d 100644
--- a/pkgs/development/python-modules/django-modeltranslation/default.nix
+++ b/pkgs/development/python-modules/django-modeltranslation/default.nix
@@ -11,7 +11,7 @@
 let
   # 0.18.12 was yanked from PyPI, it refers to this issue:
   # https://github.com/deschler/django-modeltranslation/issues/701
-  version = "0.18.13";
+  version = "0.19.2";
 in
 buildPythonPackage {
   pname = "django-modeltranslation";
@@ -21,7 +21,7 @@ buildPythonPackage {
     owner = "deschler";
     repo = "django-modeltranslation";
     rev = "refs/tags/v${version}";
-    hash = "sha256-9tfB5/XMLnwn+AgaT9TkHtc3HcHiD4pme/+BW1uztIs=";
+    hash = "sha256-l0NyHIDAv7qmwtbMcxdnHFExlLchdfkP4iX/1ABzcRA=";
   };
 
   # Remove all references to pytest-cov
diff --git a/pkgs/development/python-modules/django-nose/default.nix b/pkgs/development/python-modules/django-nose/default.nix
deleted file mode 100644
index 2f3d1da6fdf63..0000000000000
--- a/pkgs/development/python-modules/django-nose/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-  lib,
-  buildPythonPackage,
-  fetchPypi,
-  nose,
-  django,
-}:
-
-buildPythonPackage rec {
-  pname = "django-nose";
-  version = "1.4.7";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "a4885cd002d65fd2de96e2bb2563ef477c3fbe207009360c015fca5c3b5561b7";
-  };
-
-  # vast dependency list
-  doCheck = false;
-
-  propagatedBuildInputs = [
-    django
-    nose
-  ];
-
-  meta = with lib; {
-    description = "Provides all the goodness of nose in your Django tests";
-    homepage = "https://github.com/django-nose/django-nose";
-    license = licenses.bsd3;
-  };
-}
diff --git a/pkgs/development/python-modules/django-oauth-toolkit/default.nix b/pkgs/development/python-modules/django-oauth-toolkit/default.nix
index 01b81de8aa24b..fdde98dd5ee5f 100644
--- a/pkgs/development/python-modules/django-oauth-toolkit/default.nix
+++ b/pkgs/development/python-modules/django-oauth-toolkit/default.nix
@@ -20,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "django-oauth-toolkit";
-  version = "2.3.0";
+  version = "2.4.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "jazzband";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-oGg5MD9p4PSUVkt5pGLwjAF4SHHf4Aqr+/3FsuFaybY=";
+    hash = "sha256-nfLjjVp+6OsjFdJHUZ2gzZic/E/sCklj+YeFyb/EZdw=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/django-pattern-library/default.nix b/pkgs/development/python-modules/django-pattern-library/default.nix
index 79fb13d7fa18b..0aaa35f940dc0 100644
--- a/pkgs/development/python-modules/django-pattern-library/default.nix
+++ b/pkgs/development/python-modules/django-pattern-library/default.nix
@@ -1,7 +1,6 @@
 {
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   lib,
 
   # build-system
diff --git a/pkgs/development/python-modules/django-payments/default.nix b/pkgs/development/python-modules/django-payments/default.nix
index da8d85d1a3228..714bc0253bfec 100644
--- a/pkgs/development/python-modules/django-payments/default.nix
+++ b/pkgs/development/python-modules/django-payments/default.nix
@@ -67,7 +67,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "Universal payment handling for Django.";
+    description = "Universal payment handling for Django";
     homepage = "https://github.com/jazzband/django-payments/";
     changelog = "https://github.com/jazzband/django-payments/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/django-pglocks/default.nix b/pkgs/development/python-modules/django-pglocks/default.nix
index 4bea472194123..0142c0d5bcef4 100644
--- a/pkgs/development/python-modules/django-pglocks/default.nix
+++ b/pkgs/development/python-modules/django-pglocks/default.nix
@@ -12,7 +12,7 @@ buildPythonPackage rec {
   format = "setuptools";
 
   meta = {
-    description = "PostgreSQL locking context managers and functions for Django.";
+    description = "PostgreSQL locking context managers and functions for Django";
     homepage = "https://github.com/Xof/django-pglocks";
     license = lib.licenses.mit;
   };
diff --git a/pkgs/development/python-modules/django-phonenumber-field/default.nix b/pkgs/development/python-modules/django-phonenumber-field/default.nix
index 1d43f30bf3c34..e58bb4e81cffa 100644
--- a/pkgs/development/python-modules/django-phonenumber-field/default.nix
+++ b/pkgs/development/python-modules/django-phonenumber-field/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A django model and form field for normalised phone numbers using python-phonenumbers";
+    description = "Django model and form field for normalised phone numbers using python-phonenumbers";
     homepage = "https://github.com/stefanfoulis/django-phonenumber-field/";
     changelog = "https://github.com/stefanfoulis/django-phonenumber-field/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/django-picklefield/default.nix b/pkgs/development/python-modules/django-picklefield/default.nix
index fdd45ed5de823..fc9f0964259fa 100644
--- a/pkgs/development/python-modules/django-picklefield/default.nix
+++ b/pkgs/development/python-modules/django-picklefield/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A pickled object field for Django";
+    description = "Pickled object field for Django";
     homepage = "https://github.com/gintas/django-picklefield";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/django-pwa/default.nix b/pkgs/development/python-modules/django-pwa/default.nix
index a0d4ba872c954..134a84852f661 100644
--- a/pkgs/development/python-modules/django-pwa/default.nix
+++ b/pkgs/development/python-modules/django-pwa/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A Django app to include a manifest.json and Service Worker instance to enable progressive web app behavoir";
+    description = "Django app to include a manifest.json and Service Worker instance to enable progressive web app behavoir";
     homepage = "https://github.com/silviolleite/django-pwa";
     changelog = "https://github.com/silviolleite/django-pwa/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/django-q/default.nix b/pkgs/development/python-modules/django-q/default.nix
index 4f06fba1afc7a..99b8aec53a36d 100644
--- a/pkgs/development/python-modules/django-q/default.nix
+++ b/pkgs/development/python-modules/django-q/default.nix
@@ -79,7 +79,7 @@ buildPythonPackage rec {
   doCheck = !stdenv.isDarwin;
 
   meta = with lib; {
-    description = "A multiprocessing distributed task queue for Django";
+    description = "Multiprocessing distributed task queue for Django";
     homepage = "https://django-q.readthedocs.org";
     changelog = "https://github.com/Koed00/django-q/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/django-ranged-response/default.nix b/pkgs/development/python-modules/django-ranged-response/default.nix
index 7932cf7da8185..6391b3eb2091a 100644
--- a/pkgs/development/python-modules/django-ranged-response/default.nix
+++ b/pkgs/development/python-modules/django-ranged-response/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ django ];
 
   meta = with lib; {
-    description = "A modified FileResponse that returns `Content-Range` headers with the HTTP response, so browsers (read Safari 9+) that request the file, can stream the response properly";
+    description = "Modified FileResponse that returns `Content-Range` headers with the HTTP response, so browsers (read Safari 9+) that request the file, can stream the response properly";
     homepage = "https://github.com/wearespindle/django-ranged-fileresponse";
     license = licenses.mit;
     maintainers = with maintainers; [ mrmebelman ];
diff --git a/pkgs/development/python-modules/django-ratelimit/default.nix b/pkgs/development/python-modules/django-ratelimit/default.nix
new file mode 100644
index 0000000000000..ca0216a9de5c3
--- /dev/null
+++ b/pkgs/development/python-modules/django-ratelimit/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, buildPythonPackage
+, django
+, django-redis
+, fetchFromGitHub
+, pymemcache
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "django-ratelimit";
+  version = "4.1.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "jsocol";
+    repo = "django-ratelimit";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ZMtZSKOIIRSqH6eyC7bBeua7YLKyWW6NOXN/MDv9fy4=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    django
+    django-redis
+    pymemcache
+  ];
+
+  pythonImportsCheck = [
+    "django_ratelimit"
+  ];
+
+  checkPhase = ''
+    runHook preCheck
+
+    export DJANGO_SETTINGS_MODULE=test_settings
+    python -m django test django_ratelimit
+
+    runHook postCheck
+  '';
+
+
+  meta = with lib; {
+    description = "Cache-based rate-limiting for Django";
+    homepage = "https://github.com/jsocol/django-ratelimit";
+    changelog = "https://github.com/jsocol/django-ratelimit/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ derdennisop ];
+  };
+}
diff --git a/pkgs/development/python-modules/django-reversion/default.nix b/pkgs/development/python-modules/django-reversion/default.nix
index 43921c13b025a..4513056064aa4 100644
--- a/pkgs/development/python-modules/django-reversion/default.nix
+++ b/pkgs/development/python-modules/django-reversion/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "reversion" ];
 
   meta = with lib; {
-    description = "An extension to the Django web framework that provides comprehensive version control facilities";
+    description = "Extension to the Django web framework that provides comprehensive version control facilities";
     homepage = "https://github.com/etianen/django-reversion";
     changelog = "https://github.com/etianen/django-reversion/blob/v${version}/CHANGELOG.rst";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/django-scheduler/default.nix b/pkgs/development/python-modules/django-scheduler/default.nix
index 78177e56e46cf..0635f69631a22 100644
--- a/pkgs/development/python-modules/django-scheduler/default.nix
+++ b/pkgs/development/python-modules/django-scheduler/default.nix
@@ -42,7 +42,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "schedule" ];
 
   meta = with lib; {
-    description = "A calendar app for Django";
+    description = "Calendar app for Django";
     homepage = "https://github.com/llazzaro/django-scheduler";
     changelog = "https://github.com/llazzaro/django-scheduler/releases/tag/${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/django-scim2/default.nix b/pkgs/development/python-modules/django-scim2/default.nix
index 9b8276af2dc3b..2c9c2922f4812 100644
--- a/pkgs/development/python-modules/django-scim2/default.nix
+++ b/pkgs/development/python-modules/django-scim2/default.nix
@@ -52,7 +52,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/15five/django-scim2/blob/${src.rev}/CHANGES.txt";
-    description = "A SCIM 2.0 Service Provider Implementation (for Django)";
+    description = "SCIM 2.0 Service Provider Implementation (for Django)";
     homepage = "https://github.com/15five/django-scim2";
     license = licenses.mit;
     maintainers = with maintainers; [ s1341 ];
diff --git a/pkgs/development/python-modules/django-sesame/default.nix b/pkgs/development/python-modules/django-sesame/default.nix
index 71ee75a9f6b9a..5aad0ccdc321d 100644
--- a/pkgs/development/python-modules/django-sesame/default.nix
+++ b/pkgs/development/python-modules/django-sesame/default.nix
@@ -45,6 +45,5 @@ buildPythonPackage rec {
     homepage = "https://github.com/aaugustin/django-sesame";
     changelog = "https://github.com/aaugustin/django-sesame/blob/${version}/docs/changelog.rst";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/django-silk/default.nix b/pkgs/development/python-modules/django-silk/default.nix
index a5cbf8e8aa2a9..796e07c93a3e6 100644
--- a/pkgs/development/python-modules/django-silk/default.nix
+++ b/pkgs/development/python-modules/django-silk/default.nix
@@ -5,7 +5,6 @@
   django,
   factory-boy,
   fetchFromGitHub,
-  fetchpatch,
   freezegun,
   gprof2dot,
   jinja2,
diff --git a/pkgs/development/python-modules/django-sr/default.nix b/pkgs/development/python-modules/django-sr/default.nix
deleted file mode 100644
index 9d051f30695d0..0000000000000
--- a/pkgs/development/python-modules/django-sr/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{
-  lib,
-  buildPythonPackage,
-  fetchPypi,
-  django,
-  nose,
-}:
-
-buildPythonPackage rec {
-  pname = "django-sr";
-  version = "0.0.4";
-  format = "setuptools";
-
-  meta = {
-    description = "Django settings resolver";
-    homepage = "https://github.com/jespino/django-sr";
-    license = lib.licenses.bsd3;
-  };
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0d3yqppi1q3crcn9nxx58wzm4yw61d5m7435g6rb9wcamr9bi1im";
-  };
-
-  buildInputs = [
-    django
-    nose
-  ];
-  propagatedBuildInputs = [ django ];
-}
diff --git a/pkgs/development/python-modules/django-tagging/default.nix b/pkgs/development/python-modules/django-tagging/default.nix
index 9d18f03fe4e75..405e7c8069745 100644
--- a/pkgs/development/python-modules/django-tagging/default.nix
+++ b/pkgs/development/python-modules/django-tagging/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ django ];
 
   meta = {
-    description = "A generic tagging application for Django projects";
+    description = "Generic tagging application for Django projects";
     homepage = "https://github.com/Fantomas42/django-tagging";
   };
 }
diff --git a/pkgs/development/python-modules/django/3.nix b/pkgs/development/python-modules/django/3.nix
index 6fc23f3ede7a7..b4d478e3d8bd4 100644
--- a/pkgs/development/python-modules/django/3.nix
+++ b/pkgs/development/python-modules/django/3.nix
@@ -52,7 +52,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "django" ];
 
   meta = with lib; {
-    description = "A high-level Python Web framework";
+    description = "High-level Python Web framework";
     homepage = "https://www.djangoproject.com/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ georgewhewell ];
diff --git a/pkgs/development/python-modules/django/4.nix b/pkgs/development/python-modules/django/4.nix
index 11a2c7821c63f..2bc86f7579cce 100644
--- a/pkgs/development/python-modules/django/4.nix
+++ b/pkgs/development/python-modules/django/4.nix
@@ -142,7 +142,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://docs.djangoproject.com/en/${lib.versions.majorMinor version}/releases/${version}/";
-    description = "A high-level Python Web framework that encourages rapid development and clean, pragmatic design.";
+    description = "High-level Python Web framework that encourages rapid development and clean, pragmatic design";
     mainProgram = "django-admin";
     homepage = "https://www.djangoproject.com";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/django/5.nix b/pkgs/development/python-modules/django/5.nix
index ba599684fd717..6bb8432f149d6 100644
--- a/pkgs/development/python-modules/django/5.nix
+++ b/pkgs/development/python-modules/django/5.nix
@@ -3,7 +3,6 @@
   stdenv,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch2,
   pythonAtLeast,
   pythonOlder,
   substituteAll,
@@ -144,7 +143,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://docs.djangoproject.com/en/${lib.versions.majorMinor version}/releases/${version}/";
-    description = "A high-level Python Web framework that encourages rapid development and clean, pragmatic design.";
+    description = "High-level Python Web framework that encourages rapid development and clean, pragmatic design";
     homepage = "https://www.djangoproject.com";
     license = licenses.bsd3;
     maintainers = with maintainers; [ hexa ];
diff --git a/pkgs/development/python-modules/djangorestframework/default.nix b/pkgs/development/python-modules/djangorestframework/default.nix
index 6b969183d46ff..d151b538bf99c 100644
--- a/pkgs/development/python-modules/djangorestframework/default.nix
+++ b/pkgs/development/python-modules/djangorestframework/default.nix
@@ -2,20 +2,29 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  coreapi,
+  pythonOlder,
+
+  # build-system
+  setuptools,
+
+  # dependencies
   django,
+  pytz,
+
+  # tests
+  coreapi,
+  coreschema,
   django-guardian,
-  pythonOlder,
+  inflection,
+  psycopg2,
+  pytestCheckHook,
   pytest-django,
-  pytest7CheckHook,
-  pytz,
   pyyaml,
-  uritemplate,
 }:
 
 buildPythonPackage rec {
   pname = "djangorestframework";
-  version = "3.14.0";
+  version = "3.15.1";
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
@@ -23,28 +32,35 @@ buildPythonPackage rec {
     owner = "encode";
     repo = "django-rest-framework";
     rev = version;
-    hash = "sha256-Fnj0n3NS3SetOlwSmGkLE979vNJnYE6i6xwVBslpNz4=";
+    hash = "sha256-G914NvxRmKGkxrozoWNUIoI74YkYRbeNcQwIG4iSeXU=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
     django
     pytz
   ];
 
   nativeCheckInputs = [
     pytest-django
-    pytest7CheckHook
+    pytestCheckHook
 
     # optional tests
     coreapi
+    coreschema
     django-guardian
+    inflection
+    psycopg2
     pyyaml
-    uritemplate
   ];
 
   pythonImportsCheck = [ "rest_framework" ];
 
   meta = with lib; {
+    changelog = "https://github.com/encode/django-rest-framework/releases/tag/3.15.1";
     description = "Web APIs for Django, made easy";
     homepage = "https://www.django-rest-framework.org/";
     maintainers = with maintainers; [ desiderius ];
diff --git a/pkgs/development/python-modules/dlib/build-cores.patch b/pkgs/development/python-modules/dlib/build-cores.patch
index eebc69a330fa0..072519975c433 100644
--- a/pkgs/development/python-modules/dlib/build-cores.patch
+++ b/pkgs/development/python-modules/dlib/build-cores.patch
@@ -1,15 +1,17 @@
 diff --git a/setup.py b/setup.py
-index 0c8d8f16..565ef8ef 100644
+index 219583b..3ca5f88 100644
 --- a/setup.py
 +++ b/setup.py
-@@ -172,21 +172,7 @@ class CMakeBuild(build_ext):
+@@ -170,23 +170,7 @@ class CMakeBuild(build_ext):
          subprocess.check_call(cmake_build, cwd=build_folder)
  
  def num_available_cpu_cores(ram_per_build_process_in_gb):
 -    if 'TRAVIS' in os.environ and os.environ['TRAVIS']=='true':
 -        # When building on travis-ci, just use 2 cores since travis-ci limits
 -        # you to that regardless of what the hardware might suggest.
--        return 2 
+-        return 2
+-    elif 'CMAKE_BUILD_PARALLEL_LEVEL' in os.environ and os.environ['CMAKE_BUILD_PARALLEL_LEVEL'].isnumeric():
+-        return int(os.environ['CMAKE_BUILD_PARALLEL_LEVEL'])
 -    try:
 -        mem_bytes = os.sysconf('SC_PAGE_SIZE') * os.sysconf('SC_PHYS_PAGES')  
 -        mem_gib = mem_bytes/(1024.**3)
diff --git a/pkgs/development/python-modules/dllogger/default.nix b/pkgs/development/python-modules/dllogger/default.nix
index 8b8dace69c56f..df0b7cec7906b 100644
--- a/pkgs/development/python-modules/dllogger/default.nix
+++ b/pkgs/development/python-modules/dllogger/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "dllogger" ];
 
   meta = with lib; {
-    description = "A logging tool for deep learning";
+    description = "Logging tool for deep learning";
     homepage = "https://github.com/NVIDIA/dllogger";
     changelog = "https://github.com/NVIDIA/dllogger/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/dm-control/default.nix b/pkgs/development/python-modules/dm-control/default.nix
index 0d9c9d3f1c9ab..25a375bf7eb6f 100644
--- a/pkgs/development/python-modules/dm-control/default.nix
+++ b/pkgs/development/python-modules/dm-control/default.nix
@@ -30,7 +30,7 @@
 
 buildPythonPackage rec {
   pname = "dm-control";
-  version = "1.0.19";
+  version = "1.0.20";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -39,7 +39,7 @@ buildPythonPackage rec {
     owner = "google-deepmind";
     repo = "dm_control";
     rev = "refs/tags/${version}";
-    hash = "sha256-q9hY/icvc1tPI0xBYxExc2a+gv0i6utaB4GBnJwQPCw=";
+    hash = "sha256-huXvfQz7E+OCqRrhLC5dUaG/A2PQXrPBzseIFx7ZIeE=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/dm-haiku/default.nix b/pkgs/development/python-modules/dm-haiku/default.nix
index 21afa6fda3d7c..e5f44feb69c56 100644
--- a/pkgs/development/python-modules/dm-haiku/default.nix
+++ b/pkgs/development/python-modules/dm-haiku/default.nix
@@ -107,7 +107,7 @@ let
     });
 
     meta = with lib; {
-      description = "Haiku is a simple neural network library for JAX developed by some of the authors of Sonnet.";
+      description = "Haiku is a simple neural network library for JAX developed by some of the authors of Sonnet";
       homepage = "https://github.com/deepmind/dm-haiku";
       license = licenses.asl20;
       maintainers = with maintainers; [ ndl ];
diff --git a/pkgs/development/python-modules/dm-tree/default.nix b/pkgs/development/python-modules/dm-tree/default.nix
index 27befa4f77269..0cf64bc5da029 100644
--- a/pkgs/development/python-modules/dm-tree/default.nix
+++ b/pkgs/development/python-modules/dm-tree/default.nix
@@ -49,7 +49,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "Tree is a library for working with nested data structures.";
+    description = "Tree is a library for working with nested data structures";
     homepage = "https://github.com/deepmind/tree";
     license = licenses.asl20;
     maintainers = with maintainers; [
diff --git a/pkgs/development/python-modules/dmenu/default.nix b/pkgs/development/python-modules/dmenu/default.nix
index 1e5900870bbdf..747c666a94639 100644
--- a/pkgs/development/python-modules/dmenu/default.nix
+++ b/pkgs/development/python-modules/dmenu/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = {
-    description = "A Python wrapper for dmenu";
+    description = "Python wrapper for dmenu";
     homepage = "https://dmenu.readthedocs.io";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.nico202 ];
diff --git a/pkgs/development/python-modules/dnf-plugins-core/default.nix b/pkgs/development/python-modules/dnf-plugins-core/default.nix
index 4ad92ba664065..8c518bfe4f93f 100644
--- a/pkgs/development/python-modules/dnf-plugins-core/default.nix
+++ b/pkgs/development/python-modules/dnf-plugins-core/default.nix
@@ -23,7 +23,7 @@ in
 
 buildPythonPackage rec {
   pname = "dnf-plugins-core";
-  version = "4.7.0";
+  version = "4.8.0";
   format = "other";
 
   outputs = [
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     owner = "rpm-software-management";
     repo = "dnf-plugins-core";
     rev = "refs/tags/${version}";
-    hash = "sha256-AQnnXjkUajztbyoKzKhxiKxZsb2o2+7C15fsrxGkWcM=";
+    hash = "sha256-8RkTSO+F5fc3T8r79PRoW5KfEG2DmIzN2ylC9Np6LrQ=";
   };
 
   patches = [ ./fix-python-install-dir.patch ];
diff --git a/pkgs/development/python-modules/dnspython/default.nix b/pkgs/development/python-modules/dnspython/default.nix
index 745fd7c7a65d4..56098c6250c5b 100644
--- a/pkgs/development/python-modules/dnspython/default.nix
+++ b/pkgs/development/python-modules/dnspython/default.nix
@@ -63,7 +63,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "dns" ];
 
   meta = with lib; {
-    description = "A DNS toolkit for Python";
+    description = "DNS toolkit for Python";
     homepage = "https://www.dnspython.org";
     changelog = "https://github.com/rthalley/dnspython/blob/v${version}/doc/whatsnew.rst";
     license = with licenses; [ isc ];
diff --git a/pkgs/development/python-modules/docker-py/default.nix b/pkgs/development/python-modules/docker-py/default.nix
deleted file mode 100644
index 159722a7a7567..0000000000000
--- a/pkgs/development/python-modules/docker-py/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{
-  lib,
-  buildPythonPackage,
-  fetchPypi,
-  six,
-  requests,
-  websocket-client,
-  docker-pycreds,
-}:
-
-buildPythonPackage rec {
-  version = "1.10.6";
-  format = "setuptools";
-  pname = "docker-py";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "05f49f6hnl7npmi7kigg0ibqk8s3fhzx1ivvz1kqvlv4ay3paajc";
-  };
-
-  # The tests access the network.
-  doCheck = false;
-
-  propagatedBuildInputs = [
-    six
-    requests
-    websocket-client
-    docker-pycreds
-  ];
-
-  meta = {
-    description = "Python library for the Docker Remote API";
-    homepage = "https://github.com/docker/docker-py/";
-    license = lib.licenses.asl20;
-    maintainers = [ lib.maintainers.pmiddend ];
-  };
-}
diff --git a/pkgs/development/python-modules/docker-pycreds/default.nix b/pkgs/development/python-modules/docker-pycreds/default.nix
index ba6789aae7f5e..16b8a420f4a7f 100644
--- a/pkgs/development/python-modules/docker-pycreds/default.nix
+++ b/pkgs/development/python-modules/docker-pycreds/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ six ];
 
   meta = with lib; {
-    description = "Python bindings for the docker credentials store API.";
+    description = "Python bindings for the docker credentials store API";
     homepage = "https://github.com/shin-/dockerpy-creds";
     license = licenses.asl20;
   };
diff --git a/pkgs/development/python-modules/docker/default.nix b/pkgs/development/python-modules/docker/default.nix
index 38b3ab00e068b..93d09f2cfced3 100644
--- a/pkgs/development/python-modules/docker/default.nix
+++ b/pkgs/development/python-modules/docker/default.nix
@@ -2,12 +2,12 @@
   lib,
   stdenv,
   buildPythonPackage,
-  fetchPypi,
+  fetchFromGitHub,
   pythonOlder,
 
   # build-system
-  setuptools,
-  setuptools-scm,
+  hatchling,
+  hatch-vcs,
 
   # dependencies
   packaging,
@@ -24,29 +24,32 @@
 
 buildPythonPackage rec {
   pname = "docker";
-  version = "7.0.0";
-  format = "pyproject";
+  version = "7.1.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-Mjc2+5LNlBj8XnEzvJU+EanaBPRIP4KLUn21U/Hn5aM=";
+  src = fetchFromGitHub {
+    owner = "docker";
+    repo = "docker-py";
+    rev = "refs/tags/${version}";
+    hash = "sha256-sk6TZLek+fRkKq7kG9g6cR9lvfPC8v8qUXKb7Tq4pLU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-    setuptools-scm
+  build-system = [
+    hatchling
+    hatch-vcs
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     packaging
     requests
     urllib3
   ];
 
-  passthru.optional-dependencies = {
+  optional-dependencies = {
     ssh = [ paramiko ];
+    tls = [];
     websockets = [ websocket-client ];
   };
 
@@ -54,7 +57,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     pytestCheckHook
-  ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
+  ] ++ lib.flatten (lib.attrValues optional-dependencies);
 
   pytestFlagsArray = [ "tests/unit" ];
 
@@ -67,7 +70,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/docker/docker-py/releases/tag/${version}";
-    description = "An API client for docker written in Python";
+    description = "API client for docker written in Python";
     homepage = "https://github.com/docker/docker-py";
     license = licenses.asl20;
     maintainers = with maintainers; [ jonringer ];
diff --git a/pkgs/development/python-modules/dockerspawner/default.nix b/pkgs/development/python-modules/dockerspawner/default.nix
index bf3424578609e..199f73afeefed 100644
--- a/pkgs/development/python-modules/dockerspawner/default.nix
+++ b/pkgs/development/python-modules/dockerspawner/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "dockerspawner" ];
 
   meta = with lib; {
-    description = "A custom spawner for Jupyterhub";
+    description = "Custom spawner for Jupyterhub";
     homepage = "https://github.com/jupyterhub/dockerspawner";
     changelog = "https://github.com/jupyterhub/dockerspawner/blob/${version}/docs/source/changelog.md";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/docloud/default.nix b/pkgs/development/python-modules/docloud/default.nix
index 3d6888a0c0c37..5c7c57811543e 100644
--- a/pkgs/development/python-modules/docloud/default.nix
+++ b/pkgs/development/python-modules/docloud/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "docloud" ];
 
   meta = with lib; {
-    description = "The IBM Decision Optimization on Cloud Python client";
+    description = "IBM Decision Optimization on Cloud Python client";
     homepage = "https://onboarding-oaas.docloud.ibmcloud.com/software/analytics/docloud/";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
diff --git a/pkgs/development/python-modules/docx2txt/default.nix b/pkgs/development/python-modules/docx2txt/default.nix
index aaab023678c9c..75969bc1da3ff 100644
--- a/pkgs/development/python-modules/docx2txt/default.nix
+++ b/pkgs/development/python-modules/docx2txt/default.nix
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "docx2txt" ];
 
   meta = with lib; {
-    description = "A pure python-based utility to extract text and images from docx files";
+    description = "Pure python-based utility to extract text and images from docx files";
     mainProgram = "docx2txt";
     homepage = "https://github.com/ankushshah89/python-docx2txt";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/dogpile-cache/default.nix b/pkgs/development/python-modules/dogpile-cache/default.nix
index c31498f7f48a4..8fa2509927bc3 100644
--- a/pkgs/development/python-modules/dogpile-cache/default.nix
+++ b/pkgs/development/python-modules/dogpile-cache/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A caching front-end based on the Dogpile lock";
+    description = "Caching front-end based on the Dogpile lock";
     homepage = "https://github.com/sqlalchemy/dogpile.cache";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/dogtag-pki/default.nix b/pkgs/development/python-modules/dogtag-pki/default.nix
index 690e97fcb3d8b..f2077050314fb 100644
--- a/pkgs/development/python-modules/dogtag-pki/default.nix
+++ b/pkgs/development/python-modules/dogtag-pki/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "An enterprise-class Certificate Authority";
+    description = "Enterprise-class Certificate Authority";
     homepage = "https://github.com/dogtagpki/pki";
     license = licenses.gpl2;
     maintainers = with maintainers; [ s1341 ];
diff --git a/pkgs/development/python-modules/doit/default.nix b/pkgs/development/python-modules/doit/default.nix
index 78dbfe2e7bf48..4b49ba50fe470 100644
--- a/pkgs/development/python-modules/doit/default.nix
+++ b/pkgs/development/python-modules/doit/default.nix
@@ -59,7 +59,7 @@ let
 
     meta = with lib; {
       homepage = "https://pydoit.org/";
-      description = "A task management & automation tool";
+      description = "Task management & automation tool";
       mainProgram = "doit";
       license = licenses.mit;
       longDescription = ''
diff --git a/pkgs/development/python-modules/dokuwiki/default.nix b/pkgs/development/python-modules/dokuwiki/default.nix
index 64ad7b1d94784..698c370ce8e7b 100644
--- a/pkgs/development/python-modules/dokuwiki/default.nix
+++ b/pkgs/development/python-modules/dokuwiki/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/fmenabe/python-dokuwiki";
-    description = "A python module that aims to manage DokuWiki wikis by using the provided XML-RPC API";
+    description = "Python module that aims to manage DokuWiki wikis by using the provided XML-RPC API";
     license = licenses.mit;
     maintainers = with maintainers; [ netali ];
   };
diff --git a/pkgs/development/python-modules/dot2tex/default.nix b/pkgs/development/python-modules/dot2tex/default.nix
index 5fbe44c98d553..acd9bbc34a1f9 100644
--- a/pkgs/development/python-modules/dot2tex/default.nix
+++ b/pkgs/development/python-modules/dot2tex/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   buildPythonPackage,
-  fetchpatch,
   fetchPypi,
   substituteAll,
   pyparsing,
diff --git a/pkgs/development/python-modules/dparse/default.nix b/pkgs/development/python-modules/dparse/default.nix
index 82d49a3aabc19..59a19b30caeba 100644
--- a/pkgs/development/python-modules/dparse/default.nix
+++ b/pkgs/development/python-modules/dparse/default.nix
@@ -52,7 +52,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A parser for Python dependency files";
+    description = "Parser for Python dependency files";
     homepage = "https://github.com/pyupio/dparse";
     changelog = "https://github.com/pyupio/dparse/blob/${version}/HISTORY.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/dpath/default.nix b/pkgs/development/python-modules/dpath/default.nix
index 2a9409aa260ab..808a83238c36b 100644
--- a/pkgs/development/python-modules/dpath/default.nix
+++ b/pkgs/development/python-modules/dpath/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "dpath";
-  version = "2.1.6";
+  version = "2.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-8eB8cuhgXGqegLZLyPQnFN4Ip4nH3kF+ScP4ehlpLkc=";
+    hash = "sha256-NPfmMNxV6j8hnlVXJvXaS0sl8iADGcjmkCw5Qljdaj4=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/dploot/default.nix b/pkgs/development/python-modules/dploot/default.nix
index d8afa8317043f..4104ec2ac44b0 100644
--- a/pkgs/development/python-modules/dploot/default.nix
+++ b/pkgs/development/python-modules/dploot/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "dploot";
-  version = "2.7.1";
+  version = "2.7.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-vNL5xrZkfYO11i8ERqD9637vrMb3Gkmo3RjvQ1ONXbY=";
+    hash = "sha256-Vbaghcomf9gRso4DN/cpJ4j7t6AU2vg2OhucKbfS1hc=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/dropbox/default.nix b/pkgs/development/python-modules/dropbox/default.nix
index 7f6d7c08e1660..4e3683fc485b4 100644
--- a/pkgs/development/python-modules/dropbox/default.nix
+++ b/pkgs/development/python-modules/dropbox/default.nix
@@ -7,7 +7,6 @@
   requests,
   six,
   stone,
-  urllib3,
   mock,
   pytest-mock,
   pytestCheckHook,
@@ -18,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "dropbox";
-  version = "12.0.0";
+  version = "12.0.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -32,7 +31,7 @@ buildPythonPackage rec {
     owner = "dropbox";
     repo = "dropbox-sdk-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-0MDm6NB+0vkN8QRSHvuDYEyYhYQWQD4jsctyd5fLdwE=";
+    hash = "sha256-9Fsh06V226vIyJhrlLkh9Xr4UGoEIISnIFCtuKqI218=";
   };
 
   build-system = [ setuptools ];
@@ -41,7 +40,6 @@ buildPythonPackage rec {
     requests
     six
     stone
-    urllib3
   ];
 
   nativeCheckInputs = [
@@ -69,9 +67,7 @@ buildPythonPackage rec {
   # https://github.com/dropbox/dropbox-sdk-python/commit/75596daf316b4a806f18057e2797a15bdf83cf6d
   # This will be the last major version to support Python 2, so version bounds might be more reasonable again in the future.
   pythonRelaxDeps = [
-    "requests"
     "stone"
-    "urllib3"
   ];
 
   # Set SCOPED_USER_DROPBOX_TOKEN environment variable to a valid value.
diff --git a/pkgs/development/python-modules/ds4drv/default.nix b/pkgs/development/python-modules/ds4drv/default.nix
index 0eca163928fad..d4ebc468f9ef5 100644
--- a/pkgs/development/python-modules/ds4drv/default.nix
+++ b/pkgs/development/python-modules/ds4drv/default.nix
@@ -5,12 +5,15 @@
   evdev,
   pyudev,
   bluez,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "ds4drv";
   version = "0.5.1";
-  format = "setuptools";
+
+  pyproject = true;
+  build-system = [ setuptools ];
 
   # PyPi only carries py3 wheel
   src = fetchFromGitHub {
@@ -20,7 +23,12 @@ buildPythonPackage rec {
     sha256 = "0vinpla0apizzykcyfis79mrm1i6fhns83nkzw85svypdhkx2g8v";
   };
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    substituteInPlace ds4drv/config.py \
+      --replace-fail SafeConfigParser ConfigParser
+  '';
+
+  dependencies = [
     evdev
     pyudev
   ];
diff --git a/pkgs/development/python-modules/dscribe/default.nix b/pkgs/development/python-modules/dscribe/default.nix
new file mode 100644
index 0000000000000..0df77d3e68058
--- /dev/null
+++ b/pkgs/development/python-modules/dscribe/default.nix
@@ -0,0 +1,47 @@
+{ buildPythonPackage
+, lib
+, fetchFromGitHub
+, numpy
+, scipy
+, ase
+, joblib
+, sparse
+, pybind11
+, scikit-learn
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  name = "dscribe";
+  version = "2.1.1";
+
+  src = fetchFromGitHub {
+    owner = "singroup";
+    repo = "dscribe";
+    rev = "v${version}";
+    fetchSubmodules = true; # Bundles a specific version of Eigen
+    hash = "sha256-2JY24cR2ie4+4svVWC4rm3Iy6Wfg0n2vkINz032kPWc=";
+  };
+
+  pyproject = true;
+
+  build-system = [
+    pybind11
+  ];
+
+  dependencies = [
+    numpy
+    scipy
+    ase
+    joblib
+    sparse
+    scikit-learn
+  ];
+
+  meta = with lib; {
+    description = "Machine learning descriptors for atomistic systems";
+    homepage = "https://github.com/SINGROUP/dscribe";
+    license = licenses.asl20;
+    maintainers = [ maintainers.sheepforce ];
+  };
+}
diff --git a/pkgs/development/python-modules/dsmr-parser/default.nix b/pkgs/development/python-modules/dsmr-parser/default.nix
index a5a91f975c786..70cc28459df35 100644
--- a/pkgs/development/python-modules/dsmr-parser/default.nix
+++ b/pkgs/development/python-modules/dsmr-parser/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "dsmr-parser";
-  version = "1.4.0";
+  version = "1.4.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "ndokter";
     repo = "dsmr_parser";
     rev = "refs/tags/v${version}";
-    hash = "sha256-4L7hLDd/hYYdhnkcPRK48FnHutbyDXpnhQoVXUQLoDo=";
+    hash = "sha256-lP4KU3k7dGYHv24uNffTNe60u11Xg7YG05F/joVZu/Q=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dtw-python/default.nix b/pkgs/development/python-modules/dtw-python/default.nix
index 99567f3fd0c2f..a8481e78c7440 100644
--- a/pkgs/development/python-modules/dtw-python/default.nix
+++ b/pkgs/development/python-modules/dtw-python/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "dtw-python";
-  version = "1.4.2";
+  version = "1.4.4";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "DynamicTimeWarping";
     repo = "dtw-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Y0XzAPc2iJIp799gXTO7bUcHuOrDyqkd64DulLbdcAg=";
+    hash = "sha256-9+0NxQAvhVeH9RcBPTr1CjIjTqTsiUz68UIne5dErvw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/duckdb-engine/default.nix b/pkgs/development/python-modules/duckdb-engine/default.nix
index eb596f7413ecc..5b13f55ebed96 100644
--- a/pkgs/development/python-modules/duckdb-engine/default.nix
+++ b/pkgs/development/python-modules/duckdb-engine/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "duckdb-engine";
-  version = "0.12.0";
+  version = "0.12.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     repo = "duckdb_engine";
     owner = "Mause";
     rev = "refs/tags/v${version}";
-    hash = "sha256-cm0vbz0VZ2Ws6FDWJO16q4KZW2obs0CBNrfY9jmR+6A=";
+    hash = "sha256-+l6sRZHJnLfei1LR8WHqpC+0+91VLYKXn2e0w9+QRyk=";
   };
 
   nativeBuildInputs = [ poetry-core ];
diff --git a/pkgs/development/python-modules/duckduckgo-search/default.nix b/pkgs/development/python-modules/duckduckgo-search/default.nix
index a06c16586b0a3..f39a99ed5f309 100644
--- a/pkgs/development/python-modules/duckduckgo-search/default.nix
+++ b/pkgs/development/python-modules/duckduckgo-search/default.nix
@@ -6,44 +6,13 @@
   pythonOlder,
   setuptools,
   orjson,
+  pyreqwest-impersonate,
   curl-cffi,
 
-  # To build orjson
-  rustPlatform,
-
   # Optional dependencies
   lxml,
 }:
-let
-  curl-cffi_0_7_0 = curl-cffi.overrideAttrs (
-    final: old: {
-      version = "0.7.0b4";
-      src = fetchFromGitHub {
-        owner = "yifeikong";
-        repo = "curl_cffi";
-        rev = "v${final.version}";
-        hash = "sha256-txrJNUzswAPeH4Iazn0iKJI0Rqk0HHRoDrtTfDHKMoo=";
-      };
-    }
-  );
 
-  orjson_3_10_3 = orjson.overrideAttrs (
-    final: old: {
-      version = "3.10.3";
-      src = fetchFromGitHub {
-        owner = "ijl";
-        repo = "orjson";
-        rev = "refs/tags/${final.version}";
-        hash = "sha256-bK6wA8P/IXEbiuJAx7psd0nUUKjR1jX4scFfJr1MBAk=";
-      };
-      cargoDeps = rustPlatform.fetchCargoTarball {
-        inherit (final) src;
-        name = "${old.pname}-${final.version}";
-        hash = "sha256-ilGq+/gPSuNwURUWy2ZxInzmUv+PxYMxd8esxrMpr2o=";
-      };
-    }
-  );
-in
 buildPythonPackage rec {
   pname = "duckduckgo-search";
   version = "v5.3.1";
@@ -58,12 +27,13 @@ buildPythonPackage rec {
     hash = "sha256-T7rlB3dU7y+HbHr1Ss9KkejlXFORhnv9Va7cFTRtfQU=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     click
-    orjson_3_10_3
-    curl-cffi_0_7_0
+    curl-cffi
+    orjson
+    pyreqwest-impersonate
   ];
 
   passthru.optional-dependencies = {
diff --git a/pkgs/development/python-modules/duct-py/default.nix b/pkgs/development/python-modules/duct-py/default.nix
index d12eaec3d70d3..2d9b7ca504ce8 100644
--- a/pkgs/development/python-modules/duct-py/default.nix
+++ b/pkgs/development/python-modules/duct-py/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python library for running child processes";
+    description = "Python library for running child processes";
     homepage = "https://github.com/oconnor663/duct.py";
     license = licenses.mit;
     maintainers = with maintainers; [ zmitchell ];
diff --git a/pkgs/development/python-modules/duecredit/default.nix b/pkgs/development/python-modules/duecredit/default.nix
index 4952d45e8ef8e..5aa4505b91961 100644
--- a/pkgs/development/python-modules/duecredit/default.nix
+++ b/pkgs/development/python-modules/duecredit/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "duecredit";
-  version = "0.10.1";
+  version = "0.10.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-IQgrmEclF/USrTjn5A0BbJ5GHgXh1R/KPJx4K4FuUuY=";
+    hash = "sha256-/nOiDk+7LZcroB7fN97BsLoeZG7+XvTMrwxnJMoofUI=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/duet/default.nix b/pkgs/development/python-modules/duet/default.nix
index 5fcf6e85c8b0d..de9685345ba1d 100644
--- a/pkgs/development/python-modules/duet/default.nix
+++ b/pkgs/development/python-modules/duet/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A simple future-based async library for python";
+    description = "Simple future-based async library for python";
     homepage = "https://github.com/google/duet";
     maintainers = with maintainers; [ drewrisinger ];
   };
diff --git a/pkgs/development/python-modules/dunamai/default.nix b/pkgs/development/python-modules/dunamai/default.nix
index 6631ac27fda12..2ac7229c325b8 100644
--- a/pkgs/development/python-modules/dunamai/default.nix
+++ b/pkgs/development/python-modules/dunamai/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "dunamai";
-  version = "1.19.2";
+  version = "1.20.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "mtkennerly";
     repo = "dunamai";
     rev = "refs/tags/v${version}";
-    hash = "sha256-oLJlBytdp9uVdKEdYDMz/IYnPP7XVnCUcThKO3IiW10=";
+    hash = "sha256-K7G5BiUm8QTRbw0W3ebTld7CAZI8sYSnRsD7vQhCptE=";
   };
 
   nativeBuildInputs = [ poetry-core ];
diff --git a/pkgs/development/python-modules/dungeon-eos/default.nix b/pkgs/development/python-modules/dungeon-eos/default.nix
index 25ab02f7be55e..d4282575c88b2 100644
--- a/pkgs/development/python-modules/dungeon-eos/default.nix
+++ b/pkgs/development/python-modules/dungeon-eos/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/SkyTemple/dungeon-eos";
-    description = "A package that simulates PMD EoS dungeon generation";
+    description = "Package that simulates PMD EoS dungeon generation";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ marius851000 ];
   };
diff --git a/pkgs/development/python-modules/dwdwfsapi/default.nix b/pkgs/development/python-modules/dwdwfsapi/default.nix
index f903f7502147e..8f72d8c974b77 100644
--- a/pkgs/development/python-modules/dwdwfsapi/default.nix
+++ b/pkgs/development/python-modules/dwdwfsapi/default.nix
@@ -37,6 +37,5 @@ buildPythonPackage rec {
     homepage = "https://github.com/stephan192/dwdwfsapi";
     changelog = "https://github.com/stephan192/dwdwfsapi/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/dynalite-devices/default.nix b/pkgs/development/python-modules/dynalite-devices/default.nix
index 26cb2f39d9325..e1ede4c3046b7 100644
--- a/pkgs/development/python-modules/dynalite-devices/default.nix
+++ b/pkgs/development/python-modules/dynalite-devices/default.nix
@@ -41,7 +41,7 @@ buildPythonPackage rec {
   passthru.skipBulkUpdate = true;
 
   meta = with lib; {
-    description = "An unofficial Dynalite DyNET interface creating devices";
+    description = "Unofficial Dynalite DyNET interface creating devices";
     homepage = "https://github.com/ziv1234/python-dynalite-devices";
     changelog = "https://github.com/ziv1234/python-dynalite-devices/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/ecos/default.nix b/pkgs/development/python-modules/ecos/default.nix
index defeaeb95cb69..6daec8eb775d7 100644
--- a/pkgs/development/python-modules/ecos/default.nix
+++ b/pkgs/development/python-modules/ecos/default.nix
@@ -2,44 +2,43 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  nose,
-  numpy,
+  oldest-supported-numpy,
+  pytestCheckHook,
   pythonOlder,
   scipy,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "ecos";
-  version = "2.0.11";
-  format = "setuptools";
+  version = "2.0.13";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "embotech";
     repo = "ecos-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-jflmXR7fuGRSyI6NoQrHFvkKqF/D4iq47StNSCdLbqQ=";
+    hash = "sha256-3NcZBZ7fnwiMelGssa74b5PgmXmNZhP4etNRpyrCkpo=";
     fetchSubmodules = true;
   };
 
-  propagatedBuildInputs = [
-    numpy
+  build-system = [ setuptools ];
+
+  dependencies = [
+    oldest-supported-numpy
     scipy
   ];
 
-  nativeCheckInputs = [ nose ];
-
-  checkPhase = ''
-    cd ./src
-    nosetests test_interface.py test_interface_bb.py
-  '';
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "ecos" ];
 
   meta = with lib; {
     description = "Python interface for ECOS";
     homepage = "https://github.com/embotech/ecos-python";
+    changelog = "https://github.com/embotech/ecos-python/releases/tag/v${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ drewrisinger ];
   };
diff --git a/pkgs/development/python-modules/ed25519/default.nix b/pkgs/development/python-modules/ed25519/default.nix
index ca34e5dcfeb94..1f10b9be005d8 100644
--- a/pkgs/development/python-modules/ed25519/default.nix
+++ b/pkgs/development/python-modules/ed25519/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   pythonOlder,
   setuptools,
   versioneer,
diff --git a/pkgs/development/python-modules/editables/default.nix b/pkgs/development/python-modules/editables/default.nix
index 06b93554322de..32030cff7d467 100644
--- a/pkgs/development/python-modules/editables/default.nix
+++ b/pkgs/development/python-modules/editables/default.nix
@@ -9,14 +9,14 @@
 buildPythonPackage rec {
   pname = "editables";
   version = "0.5";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-MJYn2bXErcDmaNjG+nusG6fIxdQVwtJ/YPCB+OgNHeI=";
   };
 
-  nativeBuildInputs = [ flit-core ];
+  build-system = [ flit-core ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
@@ -25,10 +25,11 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "editables" ];
 
-  meta = with lib; {
+  meta = {
     description = "Editable installations";
-    maintainers = with maintainers; [ ];
     homepage = "https://github.com/pfmoore/editables";
-    license = licenses.mit;
+    changelog = "https://github.com/pfmoore/editables/blob/${version}/CHANGELOG.md";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ getchoo ];
   };
 }
diff --git a/pkgs/development/python-modules/edk2-pytool-library/default.nix b/pkgs/development/python-modules/edk2-pytool-library/default.nix
index 02803adea5e1a..1be006d1c05bd 100644
--- a/pkgs/development/python-modules/edk2-pytool-library/default.nix
+++ b/pkgs/development/python-modules/edk2-pytool-library/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "edk2-pytool-library";
-  version = "0.21.5";
+  version = "0.21.7";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "tianocore";
     repo = "edk2-pytool-library";
     rev = "refs/tags/v${version}";
-    hash = "sha256-4Sb8Lu/nYUXgGt9gVv+j32cwW7TjXfH8z+fwzKaOeM8=";
+    hash = "sha256-BWA0Irf6OpUGX/NkHMuxQ45QUr3PRdWLSEs9Bavk8RM=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/edlib/default.nix b/pkgs/development/python-modules/edlib/default.nix
index 50a773d15118c..64f9f96db4078 100644
--- a/pkgs/development/python-modules/edlib/default.nix
+++ b/pkgs/development/python-modules/edlib/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   pythonOlder,
-  fetchFromGitHub,
   edlib,
   cython,
   python,
diff --git a/pkgs/development/python-modules/eduvpn-common/use-nix-lib.patch b/pkgs/development/python-modules/eduvpn-common/use-nix-lib.patch
index a8f4975280c2f..ea40fe496e963 100644
--- a/pkgs/development/python-modules/eduvpn-common/use-nix-lib.patch
+++ b/pkgs/development/python-modules/eduvpn-common/use-nix-lib.patch
@@ -1,25 +1,10 @@
-diff --git a/eduvpn_common/loader.py b/eduvpn_common/loader.py
-index 673d180..195f8c1 100644
 --- a/eduvpn_common/loader.py
 +++ b/eduvpn_common/loader.py
-@@ -21,6 +21,7 @@ def load_lib() -> CDLL:
+@@ -22,6 +22,7 @@ def load_lib() -> CDLL:
      :return: The Go shared library loaded with cdll.LoadLibrary from ctypes
      :rtype: CDLL
      """
 +    return cdll.LoadLibrary("@libeduvpn-common@")
-     lib_prefixes = defaultdict(
-         lambda: "lib",
-         {
-diff --git a/setup.py b/setup.py
-index 0d23379..a9d7926 100755
---- a/setup.py
-+++ b/setup.py
-@@ -92,4 +92,6 @@ class bdist_wheel(_bdist_wheel):
-         self.exports_lib_path = "../../exports/lib"  # default
-
-     def run(self):
-+        _bdist_wheel.run(self)
-+        return
-         self.plat_name_supplied = True  # Force use platform
-
-         libpath = getlibpath(self.plat_name)
+     libfile = f"libeduvpn_common-{__version__}.so"
+ 
+     lib = None
diff --git a/pkgs/development/python-modules/effdet/default.nix b/pkgs/development/python-modules/effdet/default.nix
index 73e8892b7a411..30fcee96fb76c 100644
--- a/pkgs/development/python-modules/effdet/default.nix
+++ b/pkgs/development/python-modules/effdet/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage {
   pythonImportsCheck = [ "effdet" ];
 
   meta = {
-    description = "A PyTorch implementation of EfficientDet";
+    description = "PyTorch implementation of EfficientDet";
     homepage = "https://pypi.org/project/effdet";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ happysalada ];
diff --git a/pkgs/development/python-modules/eggdeps/default.nix b/pkgs/development/python-modules/eggdeps/default.nix
index 3ea2c4cccf04a..474c5fa036f7c 100644
--- a/pkgs/development/python-modules/eggdeps/default.nix
+++ b/pkgs/development/python-modules/eggdeps/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A tool which computes a dependency graph between active Python eggs";
+    description = "Tool which computes a dependency graph between active Python eggs";
     mainProgram = "eggdeps";
     homepage = "http://thomas-lotze.de/en/software/eggdeps/";
     license = licenses.zpl20;
diff --git a/pkgs/development/python-modules/eigenpy/default.nix b/pkgs/development/python-modules/eigenpy/default.nix
index 6a87f879db898..8cf0e827a8d3e 100644
--- a/pkgs/development/python-modules/eigenpy/default.nix
+++ b/pkgs/development/python-modules/eigenpy/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "eigenpy";
-  version = "3.5.1";
+  version = "3.6.0";
 
   src = fetchFromGitHub {
     owner = "stack-of-tasks";
     repo = "eigenpy";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-nTS9FNXGrak5g83BHHNSsk5V5khpOpRz5zWE8D1gDUo=";
+    hash = "sha256-S6kMfpTOMqJPIFgvdcHHFDvIl2b+GE8dhJH0QFDdC1c=";
   };
 
   outputs = [
diff --git a/pkgs/development/python-modules/einops/default.nix b/pkgs/development/python-modules/einops/default.nix
index e212894380ca3..4a6dfc6ab777e 100644
--- a/pkgs/development/python-modules/einops/default.nix
+++ b/pkgs/development/python-modules/einops/default.nix
@@ -55,6 +55,8 @@ buildPythonPackage rec {
 
   disabledTestPaths = [ "tests/test_layers.py" ];
 
+  __darwinAllowLocalNetworking = true;
+
   meta = with lib; {
     description = "Flexible and powerful tensor operations for readable and reliable code";
     homepage = "https://github.com/arogozhnikov/einops";
diff --git a/pkgs/development/python-modules/elastic-apm/default.nix b/pkgs/development/python-modules/elastic-apm/default.nix
index 25ef39efea064..93fd450edfa4b 100644
--- a/pkgs/development/python-modules/elastic-apm/default.nix
+++ b/pkgs/development/python-modules/elastic-apm/default.nix
@@ -33,7 +33,7 @@
 
 buildPythonPackage rec {
   pname = "elastic-apm";
-  version = "6.22.0";
+  version = "6.22.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -42,7 +42,7 @@ buildPythonPackage rec {
     owner = "elastic";
     repo = "apm-agent-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-VuVx+QUiV4M/ebyv2uF/YZwfvcaPDJAEi55fXfoIttU=";
+    hash = "sha256-nA+c2ycSVVJyfcNcj5W7Z2VSVcCzyCtoi3B/T4QZWnw=";
   };
 
   pythonRelaxDeps = [ "wrapt" ];
diff --git a/pkgs/development/python-modules/elastic-transport/default.nix b/pkgs/development/python-modules/elastic-transport/default.nix
index dac3236e6c7e2..4f569fc29a53e 100644
--- a/pkgs/development/python-modules/elastic-transport/default.nix
+++ b/pkgs/development/python-modules/elastic-transport/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "elastic-transport";
-  version = "8.13.0";
+  version = "8.13.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "elastic";
     repo = "elastic-transport-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-KmZCaAbzbfqbPwFuF43ckwgVhZVbPvwjF7uqPKHml9Q=";
+    hash = "sha256-zxx5BvqQf5ipaOANKpThWUTsfhDkNMJqUejAWH68wpo=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/elasticsearch-dsl/default.nix b/pkgs/development/python-modules/elasticsearch-dsl/default.nix
index a74a4b5e5a99d..14eee9278f20c 100644
--- a/pkgs/development/python-modules/elasticsearch-dsl/default.nix
+++ b/pkgs/development/python-modules/elasticsearch-dsl/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "elasticsearch-dsl";
-  version = "8.13.0";
+  version = "8.13.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-cy/IEae7B2O8P7WJLk6nzwbTG7o1XoezM1PpLfrNebQ=";
+    sha256 = "sha256-FTMFODQZp+5hulOG9P4iueIHMnmv75c01bWfXKtoL3o=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/elasticsearch8/default.nix b/pkgs/development/python-modules/elasticsearch8/default.nix
index 9b9f77d177b08..8c36c4af08d6e 100644
--- a/pkgs/development/python-modules/elasticsearch8/default.nix
+++ b/pkgs/development/python-modules/elasticsearch8/default.nix
@@ -4,29 +4,33 @@
   buildPythonPackage,
   elastic-transport,
   fetchPypi,
+  orjson,
   pythonOlder,
   requests,
+  setuptools,
   urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "elasticsearch8";
-  version = "8.13.0";
-  format = "setuptools";
+  version = "8.14.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-NWg+/dr8jXCCLeXBAXY1yL6/2CB0xCO5tswY4y/5erw=";
+    hash = "sha256-JiiJSjdWAocHvQ9RCGTUJD05hoSE23LYxvzMlELJUfM=";
   };
 
-  nativeBuildInputs = [ elastic-transport ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [ requests ];
+  dependencies = [ elastic-transport ];
 
   passthru.optional-dependencies = {
     async = [ aiohttp ];
+    requests = [ requests ];
+    orjson = [ orjson ];
   };
 
   # Check is disabled because running them destroy the content of the local cluster!
diff --git a/pkgs/development/python-modules/elkm1-lib/default.nix b/pkgs/development/python-modules/elkm1-lib/default.nix
index cf8c39c308dd9..a1c04262a5bb8 100644
--- a/pkgs/development/python-modules/elkm1-lib/default.nix
+++ b/pkgs/development/python-modules/elkm1-lib/default.nix
@@ -3,7 +3,6 @@
   async-timeout,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   poetry-core,
   pyserial-asyncio-fast,
   pytest-asyncio,
diff --git a/pkgs/development/python-modules/emcee/default.nix b/pkgs/development/python-modules/emcee/default.nix
index 2ef1bdcd2ed6b..be4fd02424677 100644
--- a/pkgs/development/python-modules/emcee/default.nix
+++ b/pkgs/development/python-modules/emcee/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "emcee";
-  version = "3.1.5";
+  version = "3.1.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "dfm";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-83v7O/eo8LQux75IkLWU8moj3rYiyRjZdNeAwtjrJ60=";
+    hash = "sha256-JVZK3kvDwWENho0OxZ9OxATcm3XpGmX+e7alPclRsHY=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/empy/default.nix b/pkgs/development/python-modules/empy/default.nix
index de755cd5ac738..ea80513816439 100644
--- a/pkgs/development/python-modules/empy/default.nix
+++ b/pkgs/development/python-modules/empy/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "em" ];
   meta = with lib; {
     homepage = "http://www.alcyone.com/software/empy/";
-    description = "A templating system for Python.";
+    description = "Templating system for Python";
     mainProgram = "em.py";
     maintainers = with maintainers; [ nkalupahana ];
     license = licenses.lgpl21Only;
diff --git a/pkgs/development/python-modules/entrance/default.nix b/pkgs/development/python-modules/entrance/default.nix
index a9e66690e659f..121c57a89106e 100644
--- a/pkgs/development/python-modules/entrance/default.nix
+++ b/pkgs/development/python-modules/entrance/default.nix
@@ -57,7 +57,7 @@ buildPythonPackage rec {
   prePatch = opts.prePatch;
 
   meta = with lib; {
-    description = "A server framework for web apps with an Elm frontend";
+    description = "Server framework for web apps with an Elm frontend";
     homepage = "https://github.com/ensoft/entrance";
     license = licenses.mit;
     maintainers = with maintainers; [ simonchatts ];
diff --git a/pkgs/development/python-modules/envisage/default.nix b/pkgs/development/python-modules/envisage/default.nix
index 5eab0a1a3ddac..94964c9a581a8 100644
--- a/pkgs/development/python-modules/envisage/default.nix
+++ b/pkgs/development/python-modules/envisage/default.nix
@@ -3,7 +3,6 @@
   apptools,
   buildPythonPackage,
   fetchPypi,
-  fetchpatch,
   ipython,
   pytestCheckHook,
   pythonAtLeast,
diff --git a/pkgs/development/python-modules/envoy-reader/default.nix b/pkgs/development/python-modules/envoy-reader/default.nix
index 53d67fba45068..3f91c0c69e6a7 100644
--- a/pkgs/development/python-modules/envoy-reader/default.nix
+++ b/pkgs/development/python-modules/envoy-reader/default.nix
@@ -4,7 +4,6 @@
   buildPythonPackage,
   envoy-utils,
   fetchFromGitHub,
-  fetchpatch,
   httpx,
   pyjwt,
   pytest-asyncio,
diff --git a/pkgs/development/python-modules/epitran/default.nix b/pkgs/development/python-modules/epitran/default.nix
index 8495d81d97237..f512ff0d0ccbb 100644
--- a/pkgs/development/python-modules/epitran/default.nix
+++ b/pkgs/development/python-modules/epitran/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   buildPythonPackage,
-  fetchPypi,
   fetchFromGitHub,
 
   unittestCheckHook,
diff --git a/pkgs/development/python-modules/equinox/default.nix b/pkgs/development/python-modules/equinox/default.nix
index 2ea869cee3406..d89a041be864f 100644
--- a/pkgs/development/python-modules/equinox/default.nix
+++ b/pkgs/development/python-modules/equinox/default.nix
@@ -65,7 +65,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A JAX library based around a simple idea: represent parameterised functions (such as neural networks) as PyTrees";
+    description = "JAX library based around a simple idea: represent parameterised functions (such as neural networks) as PyTrees";
     changelog = "https://github.com/patrick-kidger/equinox/releases/tag/v${version}";
     homepage = "https://github.com/patrick-kidger/equinox";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/esper/default.nix b/pkgs/development/python-modules/esper/default.nix
index f076672382319..5a284970e74fa 100644
--- a/pkgs/development/python-modules/esper/default.nix
+++ b/pkgs/development/python-modules/esper/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "esper";
-  version = "3.2";
+  version = "3.3";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "benmoran56";
     repo = "esper";
     rev = "refs/tags/v${version}";
-    hash = "sha256-oH3POxrQPge9BZHG5Y/n9/sWjiCA19mqpoCZfPM6BzA=";
+    hash = "sha256-DZAF2B40ulSn2MQadklT32Svcm1j0e/hIxrxISO07TI=";
   };
 
   build-system = [ flit-core ];
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "esper" ];
 
   meta = {
-    description = "An ECS (Entity Component System) for Python";
+    description = "ECS (Entity Component System) for Python";
     homepage = "https://github.com/benmoran56/esper";
     changelog = "https://github.com/benmoran56/esper/blob/${src.rev}/RELEASE_NOTES";
     license = lib.licenses.mit;
diff --git a/pkgs/development/python-modules/et-xmlfile/default.nix b/pkgs/development/python-modules/et-xmlfile/default.nix
index c595744c355e2..8d647852dfc3c 100644
--- a/pkgs/development/python-modules/et-xmlfile/default.nix
+++ b/pkgs/development/python-modules/et-xmlfile/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "et_xmlfile" ];
 
   meta = with lib; {
-    description = "An implementation of lxml.xmlfile for the standard library";
+    description = "Implementation of lxml.xmlfile for the standard library";
     longDescription = ''
       et_xmlfile is a low memory library for creating large XML files.
 
diff --git a/pkgs/development/python-modules/etcd/default.nix b/pkgs/development/python-modules/etcd/default.nix
index 939c752ba9859..355d6cd4fbaec 100644
--- a/pkgs/development/python-modules/etcd/default.nix
+++ b/pkgs/development/python-modules/etcd/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Python etcd client that just works";
+    description = "Python etcd client that just works";
     homepage = "https://github.com/dsoprea/PythonEtcdClient";
     license = licenses.gpl2;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/ete3/default.nix b/pkgs/development/python-modules/ete3/default.nix
index 4666b20946453..54864226c75ea 100644
--- a/pkgs/development/python-modules/ete3/default.nix
+++ b/pkgs/development/python-modules/ete3/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   ] ++ lib.optional withTreeVisualization pyqt5 ++ lib.optional withXmlSupport lxml;
 
   meta = with lib; {
-    description = "A Python framework for the analysis and visualization of trees";
+    description = "Python framework for the analysis and visualization of trees";
     mainProgram = "ete3";
     homepage = "http://etetoolkit.org/";
     license = licenses.gpl3Only;
diff --git a/pkgs/development/python-modules/etebase/default.nix b/pkgs/development/python-modules/etebase/default.nix
index 8bbe0f9d9f706..bb23e85534b8a 100644
--- a/pkgs/development/python-modules/etebase/default.nix
+++ b/pkgs/development/python-modules/etebase/default.nix
@@ -57,7 +57,7 @@ buildPythonPackage rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     homepage = "https://www.etebase.com/";
-    description = "A Python client library for Etebase";
+    description = "Python client library for Etebase";
     license = licenses.bsd3;
     maintainers = with maintainers; [ _3699n ];
   };
diff --git a/pkgs/development/python-modules/etesync/default.nix b/pkgs/development/python-modules/etesync/default.nix
index 95a7057eb1e2e..a871f3fb3a910 100644
--- a/pkgs/development/python-modules/etesync/default.nix
+++ b/pkgs/development/python-modules/etesync/default.nix
@@ -67,7 +67,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://www.etesync.com/";
-    description = "A python API to interact with an EteSync server.";
+    description = "Python API to interact with an EteSync server";
     license = licenses.lgpl3;
     maintainers = with maintainers; [ valodim ];
   };
diff --git a/pkgs/development/python-modules/eth-hash/default.nix b/pkgs/development/python-modules/eth-hash/default.nix
index 81f483fed9a95..7d75ccf1655e4 100644
--- a/pkgs/development/python-modules/eth-hash/default.nix
+++ b/pkgs/development/python-modules/eth-hash/default.nix
@@ -44,7 +44,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "The Ethereum hashing function keccak256";
+    description = "Ethereum hashing function keccak256";
     homepage = "https://github.com/ethereum/eth-hash";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/etils/default.nix b/pkgs/development/python-modules/etils/default.nix
index ad33c111ad92b..f1df16ed59337 100644
--- a/pkgs/development/python-modules/etils/default.nix
+++ b/pkgs/development/python-modules/etils/default.nix
@@ -29,14 +29,14 @@
 
 buildPythonPackage rec {
   pname = "etils";
-  version = "1.8.0";
+  version = "1.9.2";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+0ePV/7CAuJg5UyRkrMXaS/WPbLRHZk+cLzf+inMzVg=";
+    hash = "sha256-FdzTWsDAzCQEtGrAhGrzzE6Hb9PYDzb1eVHifoudY3k=";
   };
 
   nativeBuildInputs = [ flit-core ];
diff --git a/pkgs/development/python-modules/euclid3/default.nix b/pkgs/development/python-modules/euclid3/default.nix
index f07fe9f9ac526..f929b4b7c0a1b 100644
--- a/pkgs/development/python-modules/euclid3/default.nix
+++ b/pkgs/development/python-modules/euclid3/default.nix
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "euclid3" ];
 
   meta = with lib; {
-    description = "2D and 3D vector, matrix, quaternion and geometry module.";
+    description = "2D and 3D vector, matrix, quaternion and geometry module";
     homepage = "http://code.google.com/p/pyeuclid/";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [
diff --git a/pkgs/development/python-modules/eval-type-backport/default.nix b/pkgs/development/python-modules/eval-type-backport/default.nix
index 537d540928728..d74d24b58ac0e 100644
--- a/pkgs/development/python-modules/eval-type-backport/default.nix
+++ b/pkgs/development/python-modules/eval-type-backport/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = {
-    description = "Like `typing._eval_type`, but lets older Python versions use newer typing features.";
+    description = "Like `typing._eval_type`, but lets older Python versions use newer typing features";
     homepage = "https://github.com/alexmojaki/eval_type_backport";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ perchun ];
diff --git a/pkgs/development/python-modules/evaluate/default.nix b/pkgs/development/python-modules/evaluate/default.nix
index b300ca9bb7ece..9eeb02422a47d 100644
--- a/pkgs/development/python-modules/evaluate/default.nix
+++ b/pkgs/development/python-modules/evaluate/default.nix
@@ -3,8 +3,6 @@
   buildPythonPackage,
   fetchFromGitHub,
   pythonOlder,
-  pythonRelaxDepsHook,
-  cookiecutter,
   datasets,
   dill,
   fsspec,
@@ -14,32 +12,29 @@
   numpy,
   packaging,
   pandas,
-  pyarrow,
   requests,
-  responses,
+  setuptools,
   tqdm,
   xxhash,
 }:
 
 buildPythonPackage rec {
   pname = "evaluate";
-  version = "0.4.1";
-  format = "setuptools";
+  version = "0.4.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "huggingface";
-    repo = pname;
+    repo = "evaluate";
     rev = "refs/tags/v${version}";
-    hash = "sha256-axcJg0ZalEd4FOySCiFReKL7wmTCtLaw71YqyLHq8fc=";
+    hash = "sha256-CGBluY7wFr+RdUW4QTUN18z1WKAB104ayrkzzPZHZ/w=";
   };
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
-  pythonRelaxDeps = [ "responses" ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
-    cookiecutter
+  dependencies = [
     datasets
     numpy
     dill
@@ -51,8 +46,6 @@ buildPythonPackage rec {
     fsspec
     huggingface-hub
     packaging
-    pyarrow
-    responses
   ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   # most tests require internet access.
diff --git a/pkgs/development/python-modules/eventlet/default.nix b/pkgs/development/python-modules/eventlet/default.nix
index 3eb650b54a2f0..c73cb2a049516 100644
--- a/pkgs/development/python-modules/eventlet/default.nix
+++ b/pkgs/development/python-modules/eventlet/default.nix
@@ -70,7 +70,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/eventlet/eventlet/blob/v${version}/NEWS";
-    description = "A concurrent networking library for Python";
+    description = "Concurrent networking library for Python";
     homepage = "https://github.com/eventlet/eventlet/";
     license = licenses.mit;
     maintainers = with maintainers; [ SuperSandro2000 ];
diff --git a/pkgs/development/python-modules/ewmh/default.nix b/pkgs/development/python-modules/ewmh/default.nix
index d793eaada451e..9819f036887b7 100644
--- a/pkgs/development/python-modules/ewmh/default.nix
+++ b/pkgs/development/python-modules/ewmh/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/parkouss/pyewmh";
-    description = "An implementation of EWMH (Extended Window Manager Hints), based on Xlib";
+    description = "Implementation of EWMH (Extended Window Manager Hints), based on Xlib";
     license = lib.licenses.lgpl3Plus;
     maintainers = with lib.maintainers; [ bandresen ];
   };
diff --git a/pkgs/development/python-modules/exchangelib/default.nix b/pkgs/development/python-modules/exchangelib/default.nix
index 1e560b59895bd..1ee6dcfb3215e 100644
--- a/pkgs/development/python-modules/exchangelib/default.nix
+++ b/pkgs/development/python-modules/exchangelib/default.nix
@@ -29,7 +29,7 @@
 
 buildPythonPackage rec {
   pname = "exchangelib";
-  version = "5.4.0";
+  version = "5.4.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -38,7 +38,7 @@ buildPythonPackage rec {
     owner = "ecederstrand";
     repo = "exchangelib";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GBfSdX9gFLx+CCV8DWHWtVpWi6zI3fg/3g/MiIvRoVM=";
+    hash = "sha256-FPn2l+PkTXFqzjqF4kQ8KE49BXZUzDDIcFI3UqoxqQM=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/execnet/default.nix b/pkgs/development/python-modules/execnet/default.nix
index 5677c8002b3c5..5c67eb0444646 100644
--- a/pkgs/development/python-modules/execnet/default.nix
+++ b/pkgs/development/python-modules/execnet/default.nix
@@ -12,7 +12,7 @@
 buildPythonPackage rec {
   pname = "execnet";
   version = "2.1.1";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
@@ -31,7 +31,7 @@ buildPythonPackage rec {
       rm testing/test_multi.py
     '';
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
     hatch-vcs
   ];
@@ -57,11 +57,11 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  meta = with lib; {
-    changelog = "https://github.com/pytest-dev/execnet/blob/v${version}/CHANGELOG.rst";
+  meta = {
     description = "Distributed Python deployment and communication";
     homepage = "https://execnet.readthedocs.io/";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    changelog = "https://github.com/pytest-dev/execnet/blob/v${version}/CHANGELOG.rst";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ getchoo ];
   };
 }
diff --git a/pkgs/development/python-modules/experiment-utilities/default.nix b/pkgs/development/python-modules/experiment-utilities/default.nix
index 918114789b4db..816133f0b4a4b 100644
--- a/pkgs/development/python-modules/experiment-utilities/default.nix
+++ b/pkgs/development/python-modules/experiment-utilities/default.nix
@@ -63,7 +63,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "exputils" ];
 
   meta = with lib; {
-    description = "Various tools to run scientific computer experiments.";
+    description = "Various tools to run scientific computer experiments";
     homepage = "https://gitlab.inria.fr/creinke/exputils";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/pkgs/development/python-modules/explorerscript/default.nix b/pkgs/development/python-modules/explorerscript/default.nix
index 94831063d269e..9bc49b2ee6823 100644
--- a/pkgs/development/python-modules/explorerscript/default.nix
+++ b/pkgs/development/python-modules/explorerscript/default.nix
@@ -57,7 +57,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/SkyTemple/explorerscript";
-    description = "A programming language + compiler/decompiler for creating scripts for Pokémon Mystery Dungeon Explorers of Sky";
+    description = "Programming language + compiler/decompiler for creating scripts for Pokémon Mystery Dungeon Explorers of Sky";
     license = licenses.mit;
     maintainers = with maintainers; [ marius851000 ];
   };
diff --git a/pkgs/development/python-modules/extractcode/7z.nix b/pkgs/development/python-modules/extractcode/7z.nix
index e2c06ccb45196..bc1ae9e07ab99 100644
--- a/pkgs/development/python-modules/extractcode/7z.nix
+++ b/pkgs/development/python-modules/extractcode/7z.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "extractcode_7z" ];
 
   meta = with lib; {
-    description = "A ScanCode Toolkit plugin to provide pre-built binary libraries and utilities and their locations";
+    description = "ScanCode Toolkit plugin to provide pre-built binary libraries and utilities and their locations";
     homepage = "https://github.com/nexB/scancode-plugins/tree/main/builtins/extractcode_7z-linux";
     license = with licenses; [
       asl20
diff --git a/pkgs/development/python-modules/extractcode/libarchive.nix b/pkgs/development/python-modules/extractcode/libarchive.nix
index 71851bd2ae215..2168fc0f3b7a5 100644
--- a/pkgs/development/python-modules/extractcode/libarchive.nix
+++ b/pkgs/development/python-modules/extractcode/libarchive.nix
@@ -50,7 +50,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "extractcode_libarchive" ];
 
   meta = with lib; {
-    description = "A ScanCode Toolkit plugin to provide pre-built binary libraries and utilities and their locations";
+    description = "ScanCode Toolkit plugin to provide pre-built binary libraries and utilities and their locations";
     homepage = "https://github.com/nexB/scancode-plugins/tree/main/builtins/extractcode_libarchive-linux";
     license = with licenses; [
       asl20
diff --git a/pkgs/development/python-modules/eyed3/default.nix b/pkgs/development/python-modules/eyed3/default.nix
index 81bde19f033cc..3b9c528b85b19 100644
--- a/pkgs/development/python-modules/eyed3/default.nix
+++ b/pkgs/development/python-modules/eyed3/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python module and command line program for processing ID3 tags";
+    description = "Python module and command line program for processing ID3 tags";
     mainProgram = "eyeD3";
     homepage = "https://eyed3.nicfit.net/";
     license = licenses.gpl2;
diff --git a/pkgs/development/python-modules/face-recognition/default.nix b/pkgs/development/python-modules/face-recognition/default.nix
index 98d3ea63b6b98..ff50cce91dad0 100644
--- a/pkgs/development/python-modules/face-recognition/default.nix
+++ b/pkgs/development/python-modules/face-recognition/default.nix
@@ -44,6 +44,6 @@ buildPythonPackage rec {
     license = licenses.mit;
     homepage = "https://github.com/ageitgey/face_recognition";
     maintainers = with maintainers; [ ];
-    description = "The world's simplest facial recognition api for Python and the command line";
+    description = "World's simplest facial recognition api for Python and the command line";
   };
 }
diff --git a/pkgs/development/python-modules/face/default.nix b/pkgs/development/python-modules/face/default.nix
index e2ae2cf8263ed..731479b3bf4b1 100644
--- a/pkgs/development/python-modules/face/default.nix
+++ b/pkgs/development/python-modules/face/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A command-line interface parser and framework";
+    description = "Command-line interface parser and framework";
     longDescription = ''
       A command-line interface parser and framework, friendly for
       users, full-featured for developers.
diff --git a/pkgs/development/python-modules/falcon/default.nix b/pkgs/development/python-modules/falcon/default.nix
index d91c5323d009b..cb2ff6942eb24 100644
--- a/pkgs/development/python-modules/falcon/default.nix
+++ b/pkgs/development/python-modules/falcon/default.nix
@@ -90,7 +90,7 @@ buildPythonPackage rec {
     ];
 
   meta = with lib; {
-    description = "An unladen web framework for building APIs and app backends";
+    description = "Unladen web framework for building APIs and app backends";
     homepage = "https://falconframework.org/";
     license = licenses.asl20;
     maintainers = with maintainers; [ desiderius ];
diff --git a/pkgs/development/python-modules/faraday-agent-parameters-types/default.nix b/pkgs/development/python-modules/faraday-agent-parameters-types/default.nix
index 4970f246fab93..ac88fb2249be4 100644
--- a/pkgs/development/python-modules/faraday-agent-parameters-types/default.nix
+++ b/pkgs/development/python-modules/faraday-agent-parameters-types/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "faraday-agent-parameters-types";
-  version = "1.5.1";
+  version = "1.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "faraday_agent_parameters_types";
     inherit version;
-    hash = "sha256-Bh1s0IeUEa4EnGElQn5ruBxFSbcOqsrDqbw1nVjdi5s=";
+    hash = "sha256-yw4u1xhfY9WYLSf9CNAsiDpY7y2Llf8j4gDoNZjACw0=";
   };
 
   postPatch = ''
@@ -27,9 +27,9 @@ buildPythonPackage rec {
       --replace-warn '"pytest-runner",' ""
   '';
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     marshmallow
     packaging
   ];
@@ -50,7 +50,7 @@ buildPythonPackage rec {
     description = "Collection of Faraday agent parameters types";
     homepage = "https://github.com/infobyte/faraday_agent_parameters_types";
     changelog = "https://github.com/infobyte/faraday_agent_parameters_types/blob/${version}/CHANGELOG.md";
-    license = with licenses; [ gpl3Plus ];
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/faraday-plugins/default.nix b/pkgs/development/python-modules/faraday-plugins/default.nix
index ec509ea3841b3..7668dd48da547 100644
--- a/pkgs/development/python-modules/faraday-plugins/default.nix
+++ b/pkgs/development/python-modules/faraday-plugins/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "faraday-plugins";
-  version = "1.17.0";
+  version = "1.18.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -29,17 +29,17 @@ buildPythonPackage rec {
     owner = "infobyte";
     repo = "faraday_plugins";
     rev = "refs/tags/${version}";
-    hash = "sha256-EE61RPantD1u9NNhyPRjoRkBifM3u16b0BC2aQC8UBA=";
+    hash = "sha256-oYE7Iik0+CbOfxF9IeeZotpGqV8TTz15MxJEC4VBrhk=";
   };
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace-warn "version=version," "version='${version}',"
+      --replace-fail "version=version," "version='${version}',"
   '';
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     beautifulsoup4
     click
     colorama
@@ -73,10 +73,10 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Security tools report parsers for Faraday";
-    mainProgram = "faraday-plugins";
     homepage = "https://github.com/infobyte/faraday_plugins";
     changelog = "https://github.com/infobyte/faraday_plugins/releases/tag/${version}";
-    license = with licenses; [ gpl3Only ];
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "faraday-plugins";
   };
 }
diff --git a/pkgs/development/python-modules/fastai/default.nix b/pkgs/development/python-modules/fastai/default.nix
index e3c00f3948f77..884c51f65efc2 100644
--- a/pkgs/development/python-modules/fastai/default.nix
+++ b/pkgs/development/python-modules/fastai/default.nix
@@ -48,7 +48,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/fastai/fastai";
-    description = "The fastai deep learning library";
+    description = "Fastai deep learning library";
     mainProgram = "configure_accelerate";
     changelog = "https://github.com/fastai/fastai/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/fastcore/default.nix b/pkgs/development/python-modules/fastcore/default.nix
index a4f9560514be7..4bd725f1865d3 100644
--- a/pkgs/development/python-modules/fastcore/default.nix
+++ b/pkgs/development/python-modules/fastcore/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "fastcore";
-  version = "1.5.38";
+  version = "1.5.46";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "fastai";
     repo = "fastcore";
     rev = "refs/tags/${version}";
-    hash = "sha256-6b2EufBAWxKMRUGfhKq2ihRN5GRUjCeM0d8cbh7ZD8A=";
+    hash = "sha256-Jcnex5gDNTQqF0cL9FEdLx5vuNSsAicl0RvivC8QwSM=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/fastdiff/default.nix b/pkgs/development/python-modules/fastdiff/default.nix
index a2109cb6f6fd1..9ddf94d5020aa 100644
--- a/pkgs/development/python-modules/fastdiff/default.nix
+++ b/pkgs/development/python-modules/fastdiff/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "fastdiff" ];
 
   meta = with lib; {
-    description = "A fast native implementation of diff algorithm with a pure Python fallback";
+    description = "Fast native implementation of diff algorithm with a pure Python fallback";
     homepage = "https://github.com/syrusakbary/fastdiff";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/fastembed/default.nix b/pkgs/development/python-modules/fastembed/default.nix
index ec65b42d79e02..005e514ff3c23 100644
--- a/pkgs/development/python-modules/fastembed/default.nix
+++ b/pkgs/development/python-modules/fastembed/default.nix
@@ -1,22 +1,31 @@
 {
   lib,
   buildPythonPackage,
-  fetchFromGitHub,
-  huggingface-hub,
   pythonOlder,
+  fetchFromGitHub,
   pythonRelaxDepsHook,
+
+  # build-system
   poetry-core,
+
+  # dependencies
+  huggingface-hub,
+  loguru,
+  mmh3,
+  numpy,
   onnx,
   onnxruntime,
+  pillow,
+  pystemmer,
   requests,
+  snowballstemmer,
   tokenizers,
   tqdm,
-  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "fastembed";
-  version = "0.2.2";
+  version = "0.3.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,36 +34,42 @@ buildPythonPackage rec {
     owner = "qdrant";
     repo = "fastembed";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ufgco5wPBG19GM99rZV7LKQqEzzCv24I8026SMz0CH4=";
+    hash = "sha256-Tfj0YdUW/Nnvn4+RoOWj9l0gDkWbpVgiADA09ht4xxM=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-    pythonRelaxDepsHook
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
+
+  dependencies = [
     huggingface-hub
+    loguru
+    mmh3
+    numpy
     onnx
     onnxruntime
+    pillow
+    pystemmer
     requests
+    snowballstemmer
     tokenizers
     tqdm
   ];
 
   pythonImportsCheck = [ "fastembed" ];
 
-  pythonRelaxDeps = [ "huggingface-hub" ];
-
-  nativeCheckInputs = [ pytestCheckHook ];
+  pythonRelaxDeps = [ "onnxruntime" ];
 
   # there is one test and it requires network
   doCheck = false;
 
-  meta = with lib; {
+  meta = {
     description = "Fast, Accurate, Lightweight Python library to make State of the Art Embedding";
     homepage = "https://github.com/qdrant/fastembed";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ happysalada ];
+    changelog = "https://github.com/qdrant/fastembed/releases/tag/v${version}";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ happysalada ];
+    # terminate called after throwing an instance of 'onnxruntime::OnnxRuntimeException'
+    badPlatforms = [ "aarch64-linux" ];
   };
 }
diff --git a/pkgs/development/python-modules/faster-fifo/default.nix b/pkgs/development/python-modules/faster-fifo/default.nix
index 63f0011a17a4a..1b6d4a0ce90d2 100644
--- a/pkgs/development/python-modules/faster-fifo/default.nix
+++ b/pkgs/development/python-modules/faster-fifo/default.nix
@@ -2,8 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  stdenv,
-  gcc12Stdenv,
 
   # build-system
   cython,
@@ -14,22 +12,16 @@
   unittestCheckHook,
 }:
 
-let
-  stdenv' = if stdenv.isLinux then gcc12Stdenv else stdenv;
-in
 buildPythonPackage rec {
   pname = "faster-fifo";
-  version = "1.4.5";
+  version = "1.4.6";
   format = "pyproject";
 
-  # https://github.com/alex-petrenko/faster-fifo/issues/47\
-  stdenv = stdenv';
-
   src = fetchFromGitHub {
     owner = "alex-petrenko";
     repo = "faster-fifo";
     rev = "v${version}";
-    hash = "sha256-35kD+RWXwUXHG5leTVj4wY6hJAjDka69YczgSTIbCeg=";
+    hash = "sha256-vgaaIJTtNg2XqEZ9TB7tTMPJ9yMyWjtfdgNU/lcNLcg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/fastparquet/default.nix b/pkgs/development/python-modules/fastparquet/default.nix
index 40c841b385360..4add91da09261 100644
--- a/pkgs/development/python-modules/fastparquet/default.nix
+++ b/pkgs/development/python-modules/fastparquet/default.nix
@@ -1,62 +1,61 @@
 {
   lib,
   buildPythonPackage,
-  fetchFromGitHub,
-  python,
+  cramjam,
   cython,
-  oldest-supported-numpy,
-  setuptools,
-  setuptools-scm,
+  fetchFromGitHub,
+  fsspec,
+  git,
   numpy,
+  oldest-supported-numpy,
+  packaging,
   pandas,
-  cramjam,
-  fsspec,
-  thrift,
-  python-lzo,
   pytestCheckHook,
+  python-lzo,
+  python,
   pythonOlder,
-  packaging,
+  setuptools-scm,
+  setuptools,
   wheel,
 }:
 
 buildPythonPackage rec {
   pname = "fastparquet";
-  version = "2024.2.0";
+  version = "2024.5.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "dask";
     repo = "fastparquet";
     rev = "refs/tags/${version}";
-    hash = "sha256-e0gnC/HMYdrYdEwy6qNOD1J52xgN2x81oCG03YNsYjg=";
+    hash = "sha256-YiaVkpPzH8ZmTiEtCom9xLbKzByIt7Ilig/WlmGrYH4=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace-fail '"pytest-runner"' ""
-
-    sed -i \
-      -e "/pytest-runner/d" \
-      -e '/"git", "status"/d' setup.py
+      --replace-fail "numpy>=2.0.0rc1" "oldest-supported-numpy"
   '';
 
-  nativeBuildInputs = [
-    cython
-    oldest-supported-numpy
+  build-system = [
     setuptools
     setuptools-scm
     wheel
   ];
 
-  propagatedBuildInputs = [
+  nativeBuildInputs = [
+    cython
+    git
+    oldest-supported-numpy
+  ];
+
+  dependencies = [
     cramjam
     fsspec
     numpy
-    pandas
-    thrift
     packaging
+    pandas
   ];
 
   passthru.optional-dependencies = {
@@ -82,7 +81,8 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Implementation of the parquet format";
     homepage = "https://github.com/dask/fastparquet";
-    license = with licenses; [ asl20 ];
+    changelog = "https://github.com/dask/fastparquet/blob/${version}/docs/source/releasenotes.rst";
+    license = licenses.asl20;
     maintainers = with maintainers; [ veprbl ];
   };
 }
diff --git a/pkgs/development/python-modules/favicon/default.nix b/pkgs/development/python-modules/favicon/default.nix
index 69e9aa04d8467..46c9517337104 100644
--- a/pkgs/development/python-modules/favicon/default.nix
+++ b/pkgs/development/python-modules/favicon/default.nix
@@ -42,6 +42,5 @@ buildPythonPackage rec {
     homepage = "https://github.com/scottwernervt/favicon";
     changelog = "https://github.com/scottwernervt/favicon/blob/${version}/CHANGELOG.rst";
     license = licenses.mit;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/feedfinder2/default.nix b/pkgs/development/python-modules/feedfinder2/default.nix
index 9837e3c5f92a7..0858653d8f16a 100644
--- a/pkgs/development/python-modules/feedfinder2/default.nix
+++ b/pkgs/development/python-modules/feedfinder2/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "feedfinder2" ];
 
   meta = with lib; {
-    description = "A Python library for finding feed links on websites";
+    description = "Python library for finding feed links on websites";
     homepage = "https://github.com/dfm/feedfinder2";
     license = licenses.mit;
     maintainers = with maintainers; [ vizid ];
diff --git a/pkgs/development/python-modules/feedgen/default.nix b/pkgs/development/python-modules/feedgen/default.nix
index 6a4526ff9e731..5dba169171d6b 100644
--- a/pkgs/development/python-modules/feedgen/default.nix
+++ b/pkgs/development/python-modules/feedgen/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "Python module to generate ATOM feeds, RSS feeds and Podcasts.";
+    description = "Python module to generate ATOM feeds, RSS feeds and Podcasts";
     downloadPage = "https://github.com/lkiesow/python-feedgen/releases";
     homepage = "https://github.com/lkiesow/python-feedgen";
     license = with licenses; [
diff --git a/pkgs/development/python-modules/fenics/default.nix b/pkgs/development/python-modules/fenics/default.nix
index aa3233840f0bb..a5b9902fecf8b 100644
--- a/pkgs/development/python-modules/fenics/default.nix
+++ b/pkgs/development/python-modules/fenics/default.nix
@@ -120,7 +120,7 @@ let
       runHook postCheck
     '';
     meta = {
-      description = "A domain-specific language for finite element variational forms";
+      description = "Domain-specific language for finite element variational forms";
       homepage = "https://fenicsproject.org/";
       platforms = lib.platforms.all;
       license = lib.licenses.lgpl3;
@@ -155,7 +155,7 @@ let
       runHook postCheck
     '';
     meta = {
-      description = "A compiler for finite element variational forms";
+      description = "Compiler for finite element variational forms";
       homepage = "https://fenicsproject.org/";
       platforms = lib.platforms.all;
       license = lib.licenses.lgpl3;
@@ -241,7 +241,7 @@ let
       make runtests
     '';
     meta = {
-      description = "The FEniCS Problem Solving Environment in Python and C++";
+      description = "FEniCS Problem Solving Environment in Python and C++";
       homepage = "https://fenicsproject.org/";
       license = lib.licenses.lgpl3;
     };
diff --git a/pkgs/development/python-modules/ffmpy/default.nix b/pkgs/development/python-modules/ffmpy/default.nix
index 2aa81aed0357c..a14d17776dd40 100644
--- a/pkgs/development/python-modules/ffmpy/default.nix
+++ b/pkgs/development/python-modules/ffmpy/default.nix
@@ -57,7 +57,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A simple python interface for FFmpeg/FFprobe";
+    description = "Simple python interface for FFmpeg/FFprobe";
     homepage = "https://github.com/Ch00k/ffmpy";
     license = licenses.mit;
     maintainers = with maintainers; [ pbsds ];
diff --git a/pkgs/development/python-modules/fido2/default.nix b/pkgs/development/python-modules/fido2/default.nix
index 5ce442d56bd2d..8b5a06c4a1fc5 100644
--- a/pkgs/development/python-modules/fido2/default.nix
+++ b/pkgs/development/python-modules/fido2/default.nix
@@ -3,38 +3,33 @@
   buildPythonPackage,
   cryptography,
   fetchPypi,
-  mock,
   poetry-core,
-  pyfakefs,
+  pyscard,
   pythonOlder,
-  six,
-  unittestCheckHook,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "fido2";
   version = "1.1.3";
-  format = "pyproject";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-JhAPIm0SztYhymGYUozhft9nt430KHruEoX+481aqfw=";
   };
 
-  nativeBuildInputs = [ poetry-core ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    cryptography
-    six
-  ];
+  dependencies = [ cryptography ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-    mock
-    pyfakefs
-  ];
+  passthru.optional-dependencies = {
+    pcsc = [ pyscard ];
+  };
+
+  nativeCheckInputs = [ pytestCheckHook ];
 
   unittestFlagsArray = [ "-v" ];
 
diff --git a/pkgs/development/python-modules/filebrowser-safe/default.nix b/pkgs/development/python-modules/filebrowser-safe/default.nix
index d72f3b626e286..6e9d84b1763ed 100644
--- a/pkgs/development/python-modules/filebrowser-safe/default.nix
+++ b/pkgs/development/python-modules/filebrowser-safe/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A snapshot of django-filebrowser for the Mezzanine CMS";
+    description = "Snapshot of django-filebrowser for the Mezzanine CMS";
     longDescription = ''
       filebrowser-safe was created to provide a snapshot of the
       FileBrowser asset manager for Django, to be referenced as a
diff --git a/pkgs/development/python-modules/filelock/default.nix b/pkgs/development/python-modules/filelock/default.nix
index 328f352fea86c..bc17b09b7995b 100644
--- a/pkgs/development/python-modules/filelock/default.nix
+++ b/pkgs/development/python-modules/filelock/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/tox-dev/py-filelock/releases/tag/${version}";
-    description = "A platform independent file lock for Python";
+    description = "Platform independent file lock for Python";
     homepage = "https://github.com/benediktschmitt/py-filelock";
     license = licenses.unlicense;
     maintainers = with maintainers; [ hyphon81 ];
diff --git a/pkgs/development/python-modules/findimports/default.nix b/pkgs/development/python-modules/findimports/default.nix
index 35f2fd4aa81df..7eb31b29b69bc 100644
--- a/pkgs/development/python-modules/findimports/default.nix
+++ b/pkgs/development/python-modules/findimports/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "findimports";
-  version = "2.4.0";
+  version = "2.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "mgedmin";
     repo = "findimports";
     rev = "refs/tags/${version}";
-    hash = "sha256-ar05DYSc/raYC1RJyLCxDYnd7Zjx20aczywlb6wc67Y=";
+    hash = "sha256-kHm0TiLe7zvUnU6+MR1M0xOt0gpMDJ5FJ5+HgY0LPeo=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/findpython/default.nix b/pkgs/development/python-modules/findpython/default.nix
index 0b8e7b099109a..140c912543edb 100644
--- a/pkgs/development/python-modules/findpython/default.nix
+++ b/pkgs/development/python-modules/findpython/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage {
   pythonImportsCheck = [ "findpython" ];
 
   meta = with lib; {
-    description = "A utility to find python versions on your system";
+    description = "Utility to find python versions on your system";
     mainProgram = "findpython";
     homepage = "https://github.com/frostming/findpython";
     changelog = "https://github.com/frostming/findpython/releases/tag/${version}";
diff --git a/pkgs/development/python-modules/fingerprints/default.nix b/pkgs/development/python-modules/fingerprints/default.nix
index 8f9c118939c94..cf12acd2ade1d 100644
--- a/pkgs/development/python-modules/fingerprints/default.nix
+++ b/pkgs/development/python-modules/fingerprints/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "fingerprints" ];
 
   meta = with lib; {
-    description = "A library to generate entity fingerprints";
+    description = "Library to generate entity fingerprints";
     homepage = "https://github.com/alephdata/fingerprints";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/fints/default.nix b/pkgs/development/python-modules/fints/default.nix
index 25b906c7fe45b..098cbce956fec 100644
--- a/pkgs/development/python-modules/fints/default.nix
+++ b/pkgs/development/python-modules/fints/default.nix
@@ -42,7 +42,6 @@ buildPythonPackage rec {
     description = "Pure-python FinTS (formerly known as HBCI) implementation";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [
-      elohmeier
       dotlambda
     ];
   };
diff --git a/pkgs/development/python-modules/fipy/default.nix b/pkgs/development/python-modules/fipy/default.nix
index a2ee2dc24545e..a78c772c74a24 100644
--- a/pkgs/development/python-modules/fipy/default.nix
+++ b/pkgs/development/python-modules/fipy/default.nix
@@ -14,6 +14,7 @@
   stdenv,
   openssh,
   fetchFromGitHub,
+  pythonAtLeast,
   pythonOlder,
 }:
 
@@ -22,7 +23,10 @@ buildPythonPackage rec {
   version = "3.4.4";
   format = "setuptools";
 
-  disabled = pythonOlder "3.7";
+  # Python 3.12 is not yet supported.
+  # https://github.com/usnistgov/fipy/issues/997
+  # https://github.com/usnistgov/fipy/pull/1023
+  disabled = pythonOlder "3.7" || pythonAtLeast "3.12";
 
   src = fetchFromGitHub {
     owner = "usnistgov";
@@ -45,16 +49,22 @@ buildPythonPackage rec {
 
   nativeCheckInputs = lib.optionals (!stdenv.isDarwin) [ gmsh ];
 
+  # NOTE: Two of the doctests in fipy.matrices.scipyMatrix._ScipyMatrix.CSR fail, and there is no
+  # clean way to disable them.
+  doCheck = false;
+
   checkPhase = ''
     export OMPI_MCA_plm_rsh_agent=${openssh}/bin/ssh
     ${python.interpreter} setup.py test --modules
   '';
 
-  pythonImportsCheck = [ "fipy" ];
+  # NOTE: Importing fipy within the sandbox will fail because plm_rsh_agent isn't set and the process isn't able
+  # to start a daemon on the builder.
+  # pythonImportsCheck = [ "fipy" ];
 
   meta = with lib; {
     homepage = "https://www.ctcms.nist.gov/fipy/";
-    description = "A Finite Volume PDE Solver Using Python";
+    description = "Finite Volume PDE Solver Using Python";
     changelog = "https://github.com/usnistgov/fipy/blob/${version}/CHANGELOG.rst";
     license = licenses.free;
     maintainers = with maintainers; [ wd15 ];
diff --git a/pkgs/development/python-modules/fire/default.nix b/pkgs/development/python-modules/fire/default.nix
index d029080207787..5cce963a2dfcc 100644
--- a/pkgs/development/python-modules/fire/default.nix
+++ b/pkgs/development/python-modules/fire/default.nix
@@ -50,7 +50,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "fire" ];
 
   meta = with lib; {
-    description = "A library for automatically generating command line interfaces";
+    description = "Library for automatically generating command line interfaces";
     longDescription = ''
       Python Fire is a library for automatically generating command line
       interfaces (CLIs) from absolutely any Python object.
diff --git a/pkgs/development/python-modules/fireflyalgorithm/default.nix b/pkgs/development/python-modules/fireflyalgorithm/default.nix
index 5457ada70649d..9185b5a696861 100644
--- a/pkgs/development/python-modules/fireflyalgorithm/default.nix
+++ b/pkgs/development/python-modules/fireflyalgorithm/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "fireflyalgorithm" ];
 
   meta = with lib; {
-    description = "An implementation of the stochastic nature-inspired algorithm for optimization";
+    description = "Implementation of the stochastic nature-inspired algorithm for optimization";
     mainProgram = "firefly-algorithm";
     homepage = "https://github.com/firefly-cpp/FireflyAlgorithm";
     changelog = "https://github.com/firefly-cpp/FireflyAlgorithm/blob/${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/first/default.nix b/pkgs/development/python-modules/first/default.nix
index 195c996825e05..70edb11145427 100644
--- a/pkgs/development/python-modules/first/default.nix
+++ b/pkgs/development/python-modules/first/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "first" ];
 
   meta = with lib; {
-    description = "The function you always missed in Python";
+    description = "Function you always missed in Python";
     homepage = "https://github.com/hynek/first/";
     changelog = "https://github.com/hynek/first/blob/${version}/HISTORY.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/flake8-blind-except/default.nix b/pkgs/development/python-modules/flake8-blind-except/default.nix
index 41905af406abd..b3fe8f160cb84 100644
--- a/pkgs/development/python-modules/flake8-blind-except/default.nix
+++ b/pkgs/development/python-modules/flake8-blind-except/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "flake8_blind_except" ];
 
   meta = with lib; {
-    description = "A flake8 extension that checks for blind except: statements";
+    description = "Flake8 extension that checks for blind except: statements";
     homepage = "https://github.com/elijahandrews/flake8-blind-except";
     license = licenses.mit;
     maintainers = with maintainers; [ johbo ];
diff --git a/pkgs/development/python-modules/flake8-future-import/default.nix b/pkgs/development/python-modules/flake8-future-import/default.nix
index 6fb92de8b55f2..88d7f959b89a4 100644
--- a/pkgs/development/python-modules/flake8-future-import/default.nix
+++ b/pkgs/development/python-modules/flake8-future-import/default.nix
@@ -52,7 +52,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A flake8 extension to check for the imported __future__ modules to make it easier to have a consistent code base";
+    description = "Flake8 extension to check for the imported __future__ modules to make it easier to have a consistent code base";
     homepage = "https://github.com/xZise/flake8-future-import";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/flake8/default.nix b/pkgs/development/python-modules/flake8/default.nix
index 489c7b7f87f8e..3d2938f9e6fd8 100644
--- a/pkgs/development/python-modules/flake8/default.nix
+++ b/pkgs/development/python-modules/flake8/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "The modular source code checker: pep8, pyflakes and co";
+    description = "Modular source code checker: pep8, pyflakes and co";
     homepage = "https://github.com/PyCQA/flake8";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/flask-babel/default.nix b/pkgs/development/python-modules/flask-babel/default.nix
index f1e911f0e3213..dfeda89807aaf 100644
--- a/pkgs/development/python-modules/flask-babel/default.nix
+++ b/pkgs/development/python-modules/flask-babel/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
 
   # build-system
   poetry-core,
diff --git a/pkgs/development/python-modules/flask-bootstrap/default.nix b/pkgs/development/python-modules/flask-bootstrap/default.nix
index e994f021c068c..a34a1c2673b36 100644
--- a/pkgs/development/python-modules/flask-bootstrap/default.nix
+++ b/pkgs/development/python-modules/flask-bootstrap/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/mbr/flask-bootstrap";
-    description = "Ready-to-use Twitter-bootstrap for use in Flask.";
+    description = "Ready-to-use Twitter-bootstrap for use in Flask";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/flask-caching/default.nix b/pkgs/development/python-modules/flask-caching/default.nix
index 8ac772fdd091f..d21d3cedd4df7 100644
--- a/pkgs/development/python-modules/flask-caching/default.nix
+++ b/pkgs/development/python-modules/flask-caching/default.nix
@@ -56,7 +56,7 @@ buildPythonPackage rec {
     ];
 
   meta = with lib; {
-    description = "A caching extension for Flask";
+    description = "Caching extension for Flask";
     homepage = "https://github.com/pallets-eco/flask-caching";
     changelog = "https://github.com/pallets-eco/flask-caching/blob/v${version}/CHANGES.rst";
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/flask-cors/default.nix b/pkgs/development/python-modules/flask-cors/default.nix
index 32dfeecad6b45..9af0d44166f69 100644
--- a/pkgs/development/python-modules/flask-cors/default.nix
+++ b/pkgs/development/python-modules/flask-cors/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Flask extension adding a decorator for CORS support";
+    description = "Flask extension adding a decorator for CORS support";
     homepage = "https://github.com/corydolphin/flask-cors";
     changelog = "https://github.com/corydolphin/flask-cors/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/pkgs/development/python-modules/flask-expects-json/default.nix b/pkgs/development/python-modules/flask-expects-json/default.nix
index ed9e3c89844bc..a0598642d4971 100644
--- a/pkgs/development/python-modules/flask-expects-json/default.nix
+++ b/pkgs/development/python-modules/flask-expects-json/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/fischerfredl/flask-expects-json";
-    description = "Decorator for REST endpoints in flask. Validate JSON request data.";
+    description = "Decorator for REST endpoints in flask. Validate JSON request data";
     license = licenses.mit;
     maintainers = [ ];
   };
diff --git a/pkgs/development/python-modules/flask-limiter/default.nix b/pkgs/development/python-modules/flask-limiter/default.nix
index 88d7d34651369..3ccf3d41fcbb4 100644
--- a/pkgs/development/python-modules/flask-limiter/default.nix
+++ b/pkgs/development/python-modules/flask-limiter/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "flask-limiter";
-  version = "3.5.1";
+  version = "3.7.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "alisaifee";
     repo = "flask-limiter";
     rev = "refs/tags/${version}";
-    hash = "sha256-U7qgl8yg0ddKDPXqYE2Vqyc2ofxSP+6liWs5j4qD6fM=";
+    hash = "sha256-W40zuQ/xkoV35DXehwMUJwbX0grJMfRXawiPfpRKL/g=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/flask-mail/default.nix b/pkgs/development/python-modules/flask-mail/default.nix
index a9c7c0b414217..104d6f3da2b03 100644
--- a/pkgs/development/python-modules/flask-mail/default.nix
+++ b/pkgs/development/python-modules/flask-mail/default.nix
@@ -1,41 +1,40 @@
 {
   lib,
   buildPythonPackage,
-  fetchPypi,
+  fetchFromGitHub,
   blinker,
+  flit-core,
   flask,
-  mock,
-  nose,
-  speaklater,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "flask-mail";
-  version = "0.9.1";
-  format = "setuptools";
+  version = "0.10.0";
+  pyproject = true;
 
-  meta = {
-    description = "Flask-Mail is a Flask extension providing simple email sending capabilities.";
-    homepage = "https://pypi.python.org/pypi/Flask-Mail";
-    license = lib.licenses.bsd3;
+  src = fetchFromGitHub {
+    owner = "pallets-eco";
+    repo = "flask-mail";
+    rev = "refs/tags/${version}";
+    hash = "sha256-G2Z8dj1/IuLsZoNJVrL6LYu0XjTEHtWB9Z058aqG9Ic=";
   };
 
-  src = fetchPypi {
-    pname = "Flask-Mail";
-    inherit version;
-    hash = "sha256-IuXrmpQL9Ae88wQQ7MNwjzxWzESynDThcm/oUAaTX0E=";
-  };
+  build-system = [ flit-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     blinker
     flask
   ];
-  buildInputs = [
-    blinker
-    mock
-    nose
-    speaklater
-  ];
 
-  doCheck = false;
+  pythonImportsCheck = [ "flask_mail" ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  meta = {
+    description = "Flask extension providing simple email sending capabilities";
+    homepage = "https://github.com/pallets-eco/flask-mail";
+    changelog = "https://github.com/pallets-eco/flask-mail/blob/${src.rev}/CHANGES.md";
+    license = lib.licenses.bsd3;
+  };
 }
diff --git a/pkgs/development/python-modules/flask-mailman/default.nix b/pkgs/development/python-modules/flask-mailman/default.nix
index a3c1c3361f141..5727fd016da0f 100644
--- a/pkgs/development/python-modules/flask-mailman/default.nix
+++ b/pkgs/development/python-modules/flask-mailman/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/waynerv/flask-mailman";
-    description = "Flask extension providing simple email sending capabilities.";
+    description = "Flask extension providing simple email sending capabilities";
     license = licenses.bsd3;
     maintainers = with maintainers; [ gador ];
   };
diff --git a/pkgs/development/python-modules/flask-principal/default.nix b/pkgs/development/python-modules/flask-principal/default.nix
index dcde78d30e2d6..5fe11b282c0d6 100644
--- a/pkgs/development/python-modules/flask-principal/default.nix
+++ b/pkgs/development/python-modules/flask-principal/default.nix
@@ -1,34 +1,42 @@
 {
   lib,
   buildPythonPackage,
-  fetchPypi,
-  flask,
+  fetchFromGitHub,
   blinker,
-  nose,
+  flask,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "flask-principal";
   version = "0.4.0";
-  format = "setuptools";
+  pyproject = true;
 
-  src = fetchPypi {
-    pname = "Flask-Principal";
-    inherit version;
-    hash = "sha256-9dYTS1yuv9u4bzLVbRjuRLCAh2onJpVgqW6jX3XJlFM=";
+  src = fetchFromGitHub {
+    owner = "pallets-eco";
+    repo = "flask-principal";
+    rev = "refs/tags/${version}";
+    hash = "sha256-E9urzZc7/QtzAohSNAJsQtykrplb+MC189VGZI5kmEE=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     flask
     blinker
   ];
 
-  nativeCheckInputs = [ nose ];
+  pythonImportsCheck = [ "flask_principal" ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pytestFlagsArray = [ "test_principal.py" ];
 
   meta = with lib; {
     homepage = "http://packages.python.org/Flask-Principal/";
     description = "Identity management for flask";
-    license = licenses.bsd2;
+    license = licenses.mit;
     maintainers = with maintainers; [ abbradar ];
   };
 }
diff --git a/pkgs/development/python-modules/flask-seasurf/default.nix b/pkgs/development/python-modules/flask-seasurf/default.nix
index cf431b2a1d95f..4ea3134fefa8a 100644
--- a/pkgs/development/python-modules/flask-seasurf/default.nix
+++ b/pkgs/development/python-modules/flask-seasurf/default.nix
@@ -45,7 +45,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "flask_seasurf" ];
 
   meta = with lib; {
-    description = "A Flask extension for preventing cross-site request forgery";
+    description = "Flask extension for preventing cross-site request forgery";
     homepage = "https://github.com/maxcountryman/flask-seasurf";
     license = licenses.bsd3;
     maintainers = with maintainers; [ zhaofengli ];
diff --git a/pkgs/development/python-modules/flask-session-captcha/default.nix b/pkgs/development/python-modules/flask-session-captcha/default.nix
index 115867f1c63cc..675afdcb2b384 100644
--- a/pkgs/development/python-modules/flask-session-captcha/default.nix
+++ b/pkgs/development/python-modules/flask-session-captcha/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "flask_session_captcha" ];
 
   meta = with lib; {
-    description = "A captcha implemention for flask";
+    description = "Captcha implemention for flask";
     homepage = "https://github.com/Tethik/flask-session-captcha";
     changelog = "https://github.com/Tethik/flask-session-captcha/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/flask-session/default.nix b/pkgs/development/python-modules/flask-session/default.nix
index 8380a4247b23f..c781ba6e01c1e 100644
--- a/pkgs/development/python-modules/flask-session/default.nix
+++ b/pkgs/development/python-modules/flask-session/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "flask_session" ];
 
   meta = with lib; {
-    description = "A Flask extension that adds support for server-side sessions";
+    description = "Flask extension that adds support for server-side sessions";
     homepage = "https://github.com/pallets-eco/flask-session";
     changelog = "https://github.com/pallets-eco/flask-session/releases/tag/${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/flask-sslify/default.nix b/pkgs/development/python-modules/flask-sslify/default.nix
index 812f9f56b228b..f384c875a7704 100644
--- a/pkgs/development/python-modules/flask-sslify/default.nix
+++ b/pkgs/development/python-modules/flask-sslify/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "flask_sslify" ];
 
   meta = with lib; {
-    description = "A Flask extension that redirects all incoming requests to HTTPS";
+    description = "Flask extension that redirects all incoming requests to HTTPS";
     homepage = "https://github.com/kennethreitz42/flask-sslify";
     license = licenses.bsd2;
     maintainers = with maintainers; [ zhaofengli ];
diff --git a/pkgs/development/python-modules/flask-wtf/default.nix b/pkgs/development/python-modules/flask-wtf/default.nix
index e96119eee554c..487c2c997b8ee 100644
--- a/pkgs/development/python-modules/flask-wtf/default.nix
+++ b/pkgs/development/python-modules/flask-wtf/default.nix
@@ -48,7 +48,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Simple integration of Flask and WTForms.";
+    description = "Simple integration of Flask and WTForms";
     license = licenses.bsd3;
     maintainers = with maintainers; [
       mic92
diff --git a/pkgs/development/python-modules/flask/default.nix b/pkgs/development/python-modules/flask/default.nix
index 897c179615382..d8effec2045e5 100644
--- a/pkgs/development/python-modules/flask/default.nix
+++ b/pkgs/development/python-modules/flask/default.nix
@@ -74,7 +74,7 @@ buildPythonPackage rec {
       replaceStrings [ "." ] [ "-" ] version
     }";
     homepage = "https://flask.palletsprojects.com/";
-    description = "The Python micro framework for building web applications";
+    description = "Python micro framework for building web applications";
     mainProgram = "flask";
     longDescription = ''
       Flask is a lightweight WSGI web application framework. It is
diff --git a/pkgs/development/python-modules/flax/default.nix b/pkgs/development/python-modules/flax/default.nix
index 8d860b56886ff..7c443368bd41f 100644
--- a/pkgs/development/python-modules/flax/default.nix
+++ b/pkgs/development/python-modules/flax/default.nix
@@ -26,7 +26,7 @@
 
 buildPythonPackage rec {
   pname = "flax";
-  version = "0.8.3";
+  version = "0.8.4";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     owner = "google";
     repo = "flax";
     rev = "refs/tags/v${version}";
-    hash = "sha256-uDGTyksUZTTL6FiTJP+qteFLOjr75dcTj9yRJ6Jm8xU=";
+    hash = "sha256-ZwqKZdJ9LOfWTav5nE9xMsMw/DbryqQUuu5fqeugBzY=";
   };
 
   build-system = [
@@ -86,7 +86,7 @@ buildPythonPackage rec {
     # `tensorflow_datasets`, `vocabulary`) so the benefits of trying to run them
     # would be limited anyway.
     "examples/*"
-    "flax/experimental/nnx/examples/*"
+    "flax/nnx/examples/*"
     # See https://github.com/google/flax/issues/3232.
     "tests/jax_utils_test.py"
     # Requires tree
@@ -98,11 +98,11 @@ buildPythonPackage rec {
     "test_overwrite_checkpoints0"
   ];
 
-  meta = with lib; {
+  meta = {
     description = "Neural network library for JAX";
     homepage = "https://github.com/google/flax";
     changelog = "https://github.com/google/flax/releases/tag/v${version}";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ ndl ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ ndl ];
   };
 }
diff --git a/pkgs/development/python-modules/flet-core/default.nix b/pkgs/development/python-modules/flet-core/default.nix
index ce77c3a384569..dd65e60e13297 100644
--- a/pkgs/development/python-modules/flet-core/default.nix
+++ b/pkgs/development/python-modules/flet-core/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
 
   meta = {
     changelog = "https://github.com/flet-dev/flet/releases/tag/v${version}";
-    description = "The library is the foundation of Flet framework and is not intended to be used directly";
+    description = "Library is the foundation of Flet framework and is not intended to be used directly";
     homepage = "https://flet.dev/";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [
diff --git a/pkgs/development/python-modules/flet-runtime/default.nix b/pkgs/development/python-modules/flet-runtime/default.nix
index d9298e2065291..323e93e43ee15 100644
--- a/pkgs/development/python-modules/flet-runtime/default.nix
+++ b/pkgs/development/python-modules/flet-runtime/default.nix
@@ -41,7 +41,7 @@ buildPythonPackage rec {
 
   meta = {
     changelog = "https://github.com/flet-dev/flet/releases/tag/v${version}";
-    description = "A base package for Flet desktop and Flet mobile";
+    description = "Base package for Flet desktop and Flet mobile";
     homepage = "https://flet.dev/";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ lucasew ];
diff --git a/pkgs/development/python-modules/flet/default.nix b/pkgs/development/python-modules/flet/default.nix
index 1eca1d4f7f938..9f4ed972ed27a 100644
--- a/pkgs/development/python-modules/flet/default.nix
+++ b/pkgs/development/python-modules/flet/default.nix
@@ -65,7 +65,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "flet" ];
 
   meta = {
-    description = "A framework that enables you to easily build realtime web, mobile, and desktop apps in Python";
+    description = "Framework that enables you to easily build realtime web, mobile, and desktop apps in Python";
     homepage = "https://flet.dev/";
     changelog = "https://github.com/flet-dev/flet/releases/tag/v${version}";
     license = lib.licenses.asl20;
diff --git a/pkgs/development/python-modules/flickrapi/default.nix b/pkgs/development/python-modules/flickrapi/default.nix
index a24482decefad..9f55251a2c991 100644
--- a/pkgs/development/python-modules/flickrapi/default.nix
+++ b/pkgs/development/python-modules/flickrapi/default.nix
@@ -59,7 +59,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "flickrapi" ];
 
   meta = with lib; {
-    description = "A Python interface to the Flickr API";
+    description = "Python interface to the Flickr API";
     homepage = "https://stuvel.eu/flickrapi";
     license = licenses.psfl;
     maintainers = with maintainers; [ obadz ];
diff --git a/pkgs/development/python-modules/flit-scm/default.nix b/pkgs/development/python-modules/flit-scm/default.nix
index 6b4bf17ca8bef..0592be831f6d8 100644
--- a/pkgs/development/python-modules/flit-scm/default.nix
+++ b/pkgs/development/python-modules/flit-scm/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   doCheck = false; # no tests
 
   meta = with lib; {
-    description = "A PEP 518 build backend that uses setuptools_scm to generate a version file from your version control system, then flit to build the package.";
+    description = "PEP 518 build backend that uses setuptools_scm to generate a version file from your version control system, then flit to build the package";
     homepage = "https://gitlab.com/WillDaSilva/flit_scm";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
diff --git a/pkgs/development/python-modules/flit/default.nix b/pkgs/development/python-modules/flit/default.nix
index df53e3596d230..9284de7d11844 100644
--- a/pkgs/development/python-modules/flit/default.nix
+++ b/pkgs/development/python-modules/flit/default.nix
@@ -55,7 +55,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/pypa/flit/blob/${version}/doc/history.rst";
-    description = "A simple packaging tool for simple packages";
+    description = "Simple packaging tool for simple packages";
     mainProgram = "flit";
     homepage = "https://github.com/pypa/flit";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/fluent-logger/default.nix b/pkgs/development/python-modules/fluent-logger/default.nix
index 94f8c172ffd90..4314bc7377792 100644
--- a/pkgs/development/python-modules/fluent-logger/default.nix
+++ b/pkgs/development/python-modules/fluent-logger/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A structured logger for Fluentd (Python)";
+    description = "Structured logger for Fluentd (Python)";
     homepage = "https://github.com/fluent/fluent-logger-python";
     license = licenses.asl20;
   };
diff --git a/pkgs/development/python-modules/flufl/i18n.nix b/pkgs/development/python-modules/flufl/i18n.nix
index 830231b40f25a..a592c4a4ddb0b 100644
--- a/pkgs/development/python-modules/flufl/i18n.nix
+++ b/pkgs/development/python-modules/flufl/i18n.nix
@@ -41,7 +41,7 @@ buildPythonPackage rec {
   pythonNamespaces = [ "flufl" ];
 
   meta = with lib; {
-    description = "A high level API for internationalizing Python libraries and applications";
+    description = "High level API for internationalizing Python libraries and applications";
     homepage = "https://gitlab.com/warsaw/flufl.i18n";
     changelog = "https://gitlab.com/warsaw/flufl.i18n/-/raw/${version}/docs/NEWS.rst";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/fnv-hash-fast/default.nix b/pkgs/development/python-modules/fnv-hash-fast/default.nix
index fc7ac6abb0069..0f25cc83eac21 100644
--- a/pkgs/development/python-modules/fnv-hash-fast/default.nix
+++ b/pkgs/development/python-modules/fnv-hash-fast/default.nix
@@ -41,7 +41,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A fast version of fnv1a";
+    description = "Fast version of fnv1a";
     homepage = "https://github.com/bdraco/fnv-hash-fast";
     changelog = "https://github.com/bdraco/fnv-hash-fast/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/fontbakery/default.nix b/pkgs/development/python-modules/fontbakery/default.nix
index 89de0dbe68311..d985755364193 100644
--- a/pkgs/development/python-modules/fontbakery/default.nix
+++ b/pkgs/development/python-modules/fontbakery/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   callPackage,
-  fetchpatch,
   fetchPypi,
   axisregistry,
   babelfont,
diff --git a/pkgs/development/python-modules/fontfeatures/default.nix b/pkgs/development/python-modules/fontfeatures/default.nix
index 8902a962a910b..b6a4482b4ba40 100644
--- a/pkgs/development/python-modules/fontfeatures/default.nix
+++ b/pkgs/development/python-modules/fontfeatures/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchPypi,
-  fetchpatch,
   beziers,
   fonttools,
   fs,
diff --git a/pkgs/development/python-modules/fontmath/default.nix b/pkgs/development/python-modules/fontmath/default.nix
index 1b7a502d75ac0..e37bdd0ade4d1 100644
--- a/pkgs/development/python-modules/fontmath/default.nix
+++ b/pkgs/development/python-modules/fontmath/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A collection of objects that implement fast font, glyph, etc. math";
+    description = "Collection of objects that implement fast font, glyph, etc. math";
     homepage = "https://github.com/robotools/fontMath/";
     changelog = "https://github.com/robotools/fontMath/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/fontparts/default.nix b/pkgs/development/python-modules/fontparts/default.nix
index 2b98523b7eb43..d8eb655b49240 100644
--- a/pkgs/development/python-modules/fontparts/default.nix
+++ b/pkgs/development/python-modules/fontparts/default.nix
@@ -66,7 +66,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "An API for interacting with the parts of fonts during the font development process.";
+    description = "API for interacting with the parts of fonts during the font development process";
     homepage = "https://github.com/robotools/fontParts";
     changelog = "https://github.com/robotools/fontParts/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/fontpens/default.nix b/pkgs/development/python-modules/fontpens/default.nix
index 7dbf59b23b580..f7cd8e7de47da 100644
--- a/pkgs/development/python-modules/fontpens/default.nix
+++ b/pkgs/development/python-modules/fontpens/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
     ]);
 
   meta = with lib; {
-    description = "A collection of classes implementing the pen protocol for manipulating glyphs";
+    description = "Collection of classes implementing the pen protocol for manipulating glyphs";
     homepage = "https://github.com/robotools/fontPens";
     license = licenses.bsd3;
     maintainers = [ maintainers.sternenseemann ];
diff --git a/pkgs/development/python-modules/fonttools/default.nix b/pkgs/development/python-modules/fonttools/default.nix
index 3f8e7e299e907..1f7e3f04d0501 100644
--- a/pkgs/development/python-modules/fonttools/default.nix
+++ b/pkgs/development/python-modules/fonttools/default.nix
@@ -118,7 +118,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/fonttools/fonttools";
-    description = "A library to manipulate font files from Python";
+    description = "Library to manipulate font files from Python";
     changelog = "https://github.com/fonttools/fonttools/blob/${version}/NEWS.rst";
     license = licenses.mit;
     maintainers = [ maintainers.sternenseemann ];
diff --git a/pkgs/development/python-modules/foolscap/default.nix b/pkgs/development/python-modules/foolscap/default.nix
index 5c322bd8debde..5db308aa20cd5 100644
--- a/pkgs/development/python-modules/foolscap/default.nix
+++ b/pkgs/development/python-modules/foolscap/default.nix
@@ -1,32 +1,42 @@
 {
-  lib,
   buildPythonPackage,
   fetchPypi,
+  lib,
   mock,
   pyopenssl,
   pytestCheckHook,
   pythonOlder,
-  service-identity,
+  setuptools,
   six,
   twisted,
   txi2p-tahoe,
   txtorcon,
+  versioneer,
 }:
 
 buildPythonPackage rec {
   pname = "foolscap";
   version = "23.3.0";
 
-  disabled = pythonOlder "3.7";
+  pyproject = true;
+  build-system = [
+    setuptools
+    versioneer
+  ];
 
-  format = "setuptools";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-Vu7oXC1brsgBwr2q59TAgx8j1AFRbi5mjRNIWZTbkUU=";
   };
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    # Remove vendorized versioneer.py
+    rm versioneer.py
+  '';
+
+  dependencies = [
     six
     twisted
     pyopenssl
diff --git a/pkgs/development/python-modules/forbiddenfruit/default.nix b/pkgs/development/python-modules/forbiddenfruit/default.nix
index 48f68c49cf622..178f97c0f3d61 100644
--- a/pkgs/development/python-modules/forbiddenfruit/default.nix
+++ b/pkgs/development/python-modules/forbiddenfruit/default.nix
@@ -2,36 +2,48 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  nose,
+  pynose,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   version = "0.1.4";
-  format = "setuptools";
   pname = "forbiddenfruit";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "clarete";
     repo = "forbiddenfruit";
-    rev = version;
-    sha256 = "16chhrxbbmg6lfbzm532fq0v00z8qihcsj0kg2b5jlgnb6qijwn8";
+    rev = "refs/tags/${version}";
+    hash = "sha256-yHIZsVn2UVmWeBNIzWDE6AOwAXZilPqXo+bVtXqGkJk=";
   };
 
-  nativeCheckInputs = [ nose ];
+  build-system = [ setuptools ];
 
-  preBuild = ''
-    export FFRUIT_EXTENSION="true";
-  '';
+  env.FFRUIT_EXTENSION = "true";
+
+  pythonImportsCheck = [ "forbiddenfruit" ];
+
+  nativeCheckInputs = [ pynose ];
 
   # https://github.com/clarete/forbiddenfruit/pull/47 required to switch to pytest
   checkPhase = ''
+    runHook preCheck
+
     find ./build -name '*.so' -exec mv {} tests/unit \;
     nosetests
+
+    runHook postCheck
   '';
 
   meta = with lib; {
     description = "Patch python built-in objects";
     homepage = "https://github.com/clarete/forbiddenfruit";
-    license = licenses.mit;
+    changelog = "https://github.com/clarete/forbiddenfruit/releases/tag/${version}";
+    license = with licenses; [
+      mit
+      gpl3Plus
+    ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/formbox/default.nix b/pkgs/development/python-modules/formbox/default.nix
index 9888ab8d219c1..f3f1ce44febb9 100644
--- a/pkgs/development/python-modules/formbox/default.nix
+++ b/pkgs/development/python-modules/formbox/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "formbox" ];
 
   meta = with lib; {
-    description = "A script to format mbox as HTML/XML";
+    description = "Script to format mbox as HTML/XML";
     mainProgram = "formbox";
     homepage = "https://trong.loang.net/~cnx/formbox";
     license = licenses.agpl3Plus;
diff --git a/pkgs/development/python-modules/fpylll/default.nix b/pkgs/development/python-modules/fpylll/default.nix
index 52f59da895445..c1fcae710db87 100644
--- a/pkgs/development/python-modules/fpylll/default.nix
+++ b/pkgs/development/python-modules/fpylll/default.nix
@@ -77,7 +77,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A Python interface for fplll";
+    description = "Python interface for fplll";
     changelog = "https://github.com/fplll/fpylll/releases/tag/${version}";
     homepage = "https://github.com/fplll/fpylll";
     maintainers = teams.sage.members;
diff --git a/pkgs/development/python-modules/freud/default.nix b/pkgs/development/python-modules/freud/default.nix
new file mode 100644
index 0000000000000..e5b7767343676
--- /dev/null
+++ b/pkgs/development/python-modules/freud/default.nix
@@ -0,0 +1,90 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, cmake
+, cython
+, oldest-supported-numpy
+, scikit-build
+, setuptools
+, tbb
+, numpy
+, rowan
+, scipy
+, pytest
+, gsd
+, matplotlib
+, sympy
+}:
+
+buildPythonPackage rec {
+  pname = "freud";
+  version = "3.0.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "glotzerlab";
+    repo = "freud";
+    rev = "v${version}";
+    hash = "sha256-aKh2Gub1vU/wzvWkCl8yzlIswp8CtR975USiCr6ijUI=";
+    fetchSubmodules = true;
+  };
+  # Because we prefer to not `leaveDotGit`, we need to fool upstream into
+  # thinking we left the .git files in the submodules, so cmake won't think we
+  # didn't initialize them. Upstream doesn't support using the system wide
+  # installed version of these libraries, and it's probably aint's worth the
+  # hassle, because upstream also doesn't distribute all of these dependencies'
+  # libraries, and probably it uses only what it needs.
+  preConfigure = ''
+    touch extern/{voro++,fsph,Eigen}/.git
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    cython
+    oldest-supported-numpy
+    scikit-build
+    setuptools
+  ];
+  dontUseCmakeConfigure = true;
+  buildInputs = [
+    tbb
+  ];
+
+  propagatedBuildInputs = [
+    numpy
+    rowan
+    scipy
+  ];
+
+  nativeCheckInputs = [
+    # Encountering circular ImportError issues with pytestCheckHook, see also:
+    # https://github.com/NixOS/nixpkgs/issues/255262
+    pytest
+    gsd
+    matplotlib
+    sympy
+  ];
+  checkPhase = ''
+    runHook preCheck
+
+    pytest
+
+    runHook postCheck
+  '';
+  # Some tests fail on aarch64. If we could have used pytestCheckHook, we would
+  # have disabled only the tests that fail with the disabledTests attribute.
+  # But that is not possible unfortunately. See upstream report for the
+  # failure: https://github.com/glotzerlab/freud/issues/961
+  doCheck = !stdenv.isAarch64;
+
+  pythonImportsCheck = [ "freud" ];
+
+  meta = with lib; {
+    description = "Powerful, efficient particle trajectory analysis in scientific Python";
+    homepage = "https://github.com/glotzerlab/freud";
+    changelog = "https://github.com/glotzerlab/freud/blob/${src.rev}/ChangeLog.md";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ doronbehar ];
+  };
+}
diff --git a/pkgs/development/python-modules/frigidaire/default.nix b/pkgs/development/python-modules/frigidaire/default.nix
index b8c82f26cb2f7..89140e97a432e 100644
--- a/pkgs/development/python-modules/frigidaire/default.nix
+++ b/pkgs/development/python-modules/frigidaire/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "frigidaire";
-  version = "0.18.16";
+  version = "0.18.19";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "bm1549";
     repo = "frigidaire";
     rev = "refs/tags/${version}";
-    hash = "sha256-PQrQM9AuudDmmsmMcZJjBm+rLA/juDgr3+SORuVurqQ=";
+    hash = "sha256-wbYijFiMk+EIAjD6+mKt/c6JwN9oQLfeL1Pk30RbKKs=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/frozenlist2/default.nix b/pkgs/development/python-modules/frozenlist2/default.nix
index 5cb8d6bd67154..ca7ab067ea064 100644
--- a/pkgs/development/python-modules/frozenlist2/default.nix
+++ b/pkgs/development/python-modules/frozenlist2/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "frozenlist2" ];
 
   meta = with lib; {
-    description = "An immutable list for Python";
+    description = "Immutable list for Python";
     homepage = "https://github.com/rohanpm/frozenlist2";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ t4ccer ];
diff --git a/pkgs/development/python-modules/fschat/default.nix b/pkgs/development/python-modules/fschat/default.nix
index 3661d8ad68e6a..d086073f1a4d0 100644
--- a/pkgs/development/python-modules/fschat/default.nix
+++ b/pkgs/development/python-modules/fschat/default.nix
@@ -91,7 +91,7 @@ buildPythonPackage {
   doCheck = false;
 
   meta = with lib; {
-    description = "An open platform for training, serving, and evaluating large language models. Release repo for Vicuna and Chatbot Arena";
+    description = "Open platform for training, serving, and evaluating large language models. Release repo for Vicuna and Chatbot Arena";
     homepage = "https://github.com/lm-sys/FastChat";
     license = licenses.asl20;
     maintainers = with maintainers; [ happysalada ];
diff --git a/pkgs/development/python-modules/fsspec-xrootd/default.nix b/pkgs/development/python-modules/fsspec-xrootd/default.nix
index 47c63d508f1a6..9876b51a4ec6a 100644
--- a/pkgs/development/python-modules/fsspec-xrootd/default.nix
+++ b/pkgs/development/python-modules/fsspec-xrootd/default.nix
@@ -53,7 +53,7 @@ buildPythonPackage rec {
   disabledTestPaths = lib.optionals stdenv.hostPlatform.isDarwin [ "tests/test_basicio.py" ];
 
   meta = with lib; {
-    description = "An XRootD implementation for fsspec";
+    description = "XRootD implementation for fsspec";
     homepage = "https://github.com/CoffeaTeam/fsspec-xrootd";
     changelog = "https://github.com/CoffeaTeam/fsspec-xrootd/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/fsspec/default.nix b/pkgs/development/python-modules/fsspec/default.nix
index 88fb0bdcabf7e..735d0b115cd64 100644
--- a/pkgs/development/python-modules/fsspec/default.nix
+++ b/pkgs/development/python-modules/fsspec/default.nix
@@ -128,7 +128,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "fsspec" ];
 
   meta = with lib; {
-    description = "A specification that Python filesystems should adhere to";
+    description = "Specification that Python filesystems should adhere to";
     homepage = "https://github.com/fsspec/filesystem_spec";
     changelog = "https://github.com/fsspec/filesystem_spec/raw/${version}/docs/source/changelog.rst";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/fugashi/default.nix b/pkgs/development/python-modules/fugashi/default.nix
index 6bfbcdbba3e2b..99c0853b461c6 100644
--- a/pkgs/development/python-modules/fugashi/default.nix
+++ b/pkgs/development/python-modules/fugashi/default.nix
@@ -48,7 +48,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "fugashi" ];
 
   meta = with lib; {
-    description = "A Cython MeCab wrapper for fast, pythonic Japanese tokenization and morphological analysis";
+    description = "Cython MeCab wrapper for fast, pythonic Japanese tokenization and morphological analysis";
     homepage = "https://github.com/polm/fugashi";
     changelog = "https://github.com/polm/fugashi/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/functiontrace/default.nix b/pkgs/development/python-modules/functiontrace/default.nix
index e0ca06ba0b483..0982baa619e27 100644
--- a/pkgs/development/python-modules/functiontrace/default.nix
+++ b/pkgs/development/python-modules/functiontrace/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://functiontrace.com";
-    description = "The Python module for Functiontrace";
+    description = "Python module for Functiontrace";
     license = licenses.prosperity30;
     maintainers = with maintainers; [ mathiassven ];
   };
diff --git a/pkgs/development/python-modules/furo/default.nix b/pkgs/development/python-modules/furo/default.nix
index d2f20e92eeb89..190f54481679c 100644
--- a/pkgs/development/python-modules/furo/default.nix
+++ b/pkgs/development/python-modules/furo/default.nix
@@ -47,7 +47,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "furo" ];
 
   meta = with lib; {
-    description = "A clean customizable documentation theme for Sphinx";
+    description = "Clean customizable documentation theme for Sphinx";
     homepage = "https://github.com/pradyunsg/furo";
     changelog = "https://github.com/pradyunsg/furo/blob/${version}/docs/changelog.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/future-fstrings/default.nix b/pkgs/development/python-modules/future-fstrings/default.nix
index 1d6f5e52adad5..b9c347e647c43 100644
--- a/pkgs/development/python-modules/future-fstrings/default.nix
+++ b/pkgs/development/python-modules/future-fstrings/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/asottile/future-fstrings";
-    description = "A backport of fstrings to python<3.6";
+    description = "Backport of fstrings to python<3.6";
     mainProgram = "future-fstrings-show";
     license = licenses.mit;
     maintainers = with maintainers; [ nyanloutre ];
diff --git a/pkgs/development/python-modules/fx2/default.nix b/pkgs/development/python-modules/fx2/default.nix
index 6b2dcccc67af3..52711cead2d0b 100644
--- a/pkgs/development/python-modules/fx2/default.nix
+++ b/pkgs/development/python-modules/fx2/default.nix
@@ -46,6 +46,6 @@ buildPythonPackage rec {
     mainProgram = "fx2tool";
     homepage = "https://github.com/whitequark/libfx2";
     license = licenses.bsd0;
-    maintainers = with maintainers; [ emily ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/fyta-cli/default.nix b/pkgs/development/python-modules/fyta-cli/default.nix
index 79189827c7e93..6251d39ac2d0f 100644
--- a/pkgs/development/python-modules/fyta-cli/default.nix
+++ b/pkgs/development/python-modules/fyta-cli/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "fyta-cli";
-  version = "0.4.1";
+  version = "0.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "dontinelli";
     repo = "fyta_cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-eWuuHIq79n1oFsvBfVySfGCtHz+MlFRR3j8uqtVR+V0=";
+    hash = "sha256-v89rgchfrPa0gOCBLOUK+BalnfpXD1Yt877WuBbkH3Y=";
   };
 
   build-system = [ hatchling ];
diff --git a/pkgs/development/python-modules/galois/default.nix b/pkgs/development/python-modules/galois/default.nix
index aee28fb25159e..331785dd9e201 100644
--- a/pkgs/development/python-modules/galois/default.nix
+++ b/pkgs/development/python-modules/galois/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "galois";
-  version = "0.3.8";
+  version = "0.3.9";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "mhostetter";
     repo = "galois";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Nfr9gD2FLZ+KvHh1mcpReUWnzFr/NxpvperzZPoFeT4=";
+    hash = "sha256-vgOsFEocgBvYba9Aq4HDYsnK1w+iQm1QDTzln68Tqss=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/gardena-bluetooth/default.nix b/pkgs/development/python-modules/gardena-bluetooth/default.nix
index 5217bf09b2c83..d637618255275 100644
--- a/pkgs/development/python-modules/gardena-bluetooth/default.nix
+++ b/pkgs/development/python-modules/gardena-bluetooth/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "gardena-bluetooth";
-  version = "1.4.1";
+  version = "1.4.2";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "elupus";
     repo = "gardena-bluetooth";
     rev = "refs/tags/${version}";
-    hash = "sha256-WnurxoSzzNTNxz6S1HSKb/lTuOyox6fG2I0Hlj95Ub0=";
+    hash = "sha256-eze99JvNSwhot8t43oy30iaFrrkpeMNFyHvfQcA56IM=";
   };
 
   nativeBuildInputs = [ poetry-core ];
diff --git a/pkgs/development/python-modules/garminconnect/default.nix b/pkgs/development/python-modules/garminconnect/default.nix
index 8ca9ec7ba7d38..6bba760ec1c4d 100644
--- a/pkgs/development/python-modules/garminconnect/default.nix
+++ b/pkgs/development/python-modules/garminconnect/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "garminconnect";
-  version = "0.2.17";
+  version = "0.2.18";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "cyberjunky";
     repo = "python-garminconnect";
     rev = "refs/tags/${version}";
-    hash = "sha256-F853wLzcqD+cQdPdvgGcItL+v8nBPoRYSyLgOJ5ld1A=";
+    hash = "sha256-ElgSL4NuEYv/VHPZIQlDWehS4B03/PCM6uk3OhvnNjA=";
   };
 
   build-system = [ pdm-backend ];
diff --git a/pkgs/development/python-modules/gb-io/default.nix b/pkgs/development/python-modules/gb-io/default.nix
index 6ad0062004048..72504c986d2ef 100644
--- a/pkgs/development/python-modules/gb-io/default.nix
+++ b/pkgs/development/python-modules/gb-io/default.nix
@@ -44,7 +44,7 @@ buildPythonPackage rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     homepage = "https://github.com/althonos/gb-io.py";
-    description = "A Python interface to gb-io, a fast GenBank parser written in Rust";
+    description = "Python interface to gb-io, a fast GenBank parser written in Rust";
     license = licenses.mit;
     maintainers = with lib.maintainers; [ dlesl ];
   };
diff --git a/pkgs/development/python-modules/gdown/default.nix b/pkgs/development/python-modules/gdown/default.nix
index 74b8f050bda38..610a99aeaf894 100644
--- a/pkgs/development/python-modules/gdown/default.nix
+++ b/pkgs/development/python-modules/gdown/default.nix
@@ -48,7 +48,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "gdown" ];
 
   meta = with lib; {
-    description = "A CLI tool for downloading large files from Google Drive";
+    description = "CLI tool for downloading large files from Google Drive";
     mainProgram = "gdown";
     homepage = "https://github.com/wkentaro/gdown";
     changelog = "https://github.com/wkentaro/gdown/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/gemfileparser/default.nix b/pkgs/development/python-modules/gemfileparser/default.nix
index 73ef12c7496fd..b1b7d034ff591 100644
--- a/pkgs/development/python-modules/gemfileparser/default.nix
+++ b/pkgs/development/python-modules/gemfileparser/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "gemfileparser" ];
 
   meta = with lib; {
-    description = "A library to parse Ruby Gemfile, .gemspec and Cocoapod .podspec file using Python";
+    description = "Library to parse Ruby Gemfile, .gemspec and Cocoapod .podspec file using Python";
     homepage = "https://github.com/gemfileparser/gemfileparser";
     license = with licenses; [
       gpl3Plus
diff --git a/pkgs/development/python-modules/genie-partner-sdk/default.nix b/pkgs/development/python-modules/genie-partner-sdk/default.nix
new file mode 100644
index 0000000000000..0a70a198e25ab
--- /dev/null
+++ b/pkgs/development/python-modules/genie-partner-sdk/default.nix
@@ -0,0 +1,38 @@
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  hatchling,
+  aiohttp,
+  fetchPypi,
+}:
+
+buildPythonPackage rec {
+  pname = "genie-partner-sdk";
+  version = "1.0.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.11";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "genie_partner_sdk";
+    hash = "sha256-/Pu0pULepRpAdUfu2SQjK4xCSe3FWWNT9AqZEASoZSE=";
+  };
+
+  nativeBuildInputs = [ hatchling ];
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  # No tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "genie_partner_sdk" ];
+
+  meta = with lib; {
+    description = "An SDK to interact with the AladdinConnect (or OHD) partner API";
+    homepage = "https://github.com/Genie-Garage/aladdin-python-sdk";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ jamiemagee ];
+  };
+}
diff --git a/pkgs/development/python-modules/geodatasets/default.nix b/pkgs/development/python-modules/geodatasets/default.nix
new file mode 100644
index 0000000000000..306c152dffa9f
--- /dev/null
+++ b/pkgs/development/python-modules/geodatasets/default.nix
@@ -0,0 +1,54 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  geopandas,
+  pooch,
+  pyogrio,
+  setuptools-scm,
+}:
+
+buildPythonPackage rec {
+  pname = "geodatasets";
+  version = "2023.12.0";
+  pyproject = true;
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "geopandas";
+    repo = "geodatasets";
+    rev = version;
+    hash = "sha256-yecAky3lCKcSgW4kkYTBNnyKyIWnGSBL600wVgGN8CE=";
+  };
+
+  build-system = [ setuptools-scm ];
+
+  propagatedBuildInputs = [ pooch ];
+
+  nativeCheckInputs = [
+    geopandas
+    pyogrio
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    export HOME=$TMPDIR
+  '';
+
+  pytestFlagsArray = [
+    # disable tests which require network access
+    "-m 'not request'"
+  ];
+
+  pythonImportsCheck = [ "geodatasets" ];
+
+  meta = {
+    description = "Spatial data examples";
+    homepage = "https://geodatasets.readthedocs.io/";
+    license = lib.licenses.bsd3;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/geopandas/default.nix b/pkgs/development/python-modules/geopandas/default.nix
index 021292f8c4ac8..e4b958d424618 100644
--- a/pkgs/development/python-modules/geopandas/default.nix
+++ b/pkgs/development/python-modules/geopandas/default.nix
@@ -3,6 +3,7 @@
   stdenv,
   buildPythonPackage,
   fetchFromGitHub,
+  fetchpatch,
   pytestCheckHook,
   pythonOlder,
   setuptools,
@@ -29,6 +30,20 @@ buildPythonPackage rec {
     hash = "sha256-FBhPcae8bnNnsfr14I1p22VhoOf9USF9DAcrAqx+zso=";
   };
 
+  patches = [
+    # GDAL 3.9 compat for boolean array in shp
+    (fetchpatch {
+      url = "https://github.com/geopandas/geopandas/commit/f1be60532bed31cb410ce4db2da6b733bc8713c9.patch";
+      sha256 = "sha256-DZhC7sSOki0XTcojSRvVVSlsnYnxCw/Ee7vHBmDCsbA=";
+    })
+
+    # GDAL 3.9 compat for boolean array in shp for fiona
+    (fetchpatch {
+      url = "https://github.com/geopandas/geopandas/commit/1e08422d8aee4877752047a8a08f41e3a67188f2.patch";
+      sha256 = "sha256-SpNqe7jL1rA79YhhSUfEzt30plt56Tux5v1h7IHp31I=";
+    })
+  ];
+
   build-system = [ setuptools ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/gflags/default.nix b/pkgs/development/python-modules/gflags/default.nix
index bf6e28f889f73..7e205f85f8811 100644
--- a/pkgs/development/python-modules/gflags/default.nix
+++ b/pkgs/development/python-modules/gflags/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/google/python-gflags";
-    description = "A module for command line handling, similar to Google's gflags for C++";
+    description = "Module for command line handling, similar to Google's gflags for C++";
     license = lib.licenses.bsd3;
   };
 }
diff --git a/pkgs/development/python-modules/gguf/default.nix b/pkgs/development/python-modules/gguf/default.nix
index aac9050ce3104..f0edfa48049fa 100644
--- a/pkgs/development/python-modules/gguf/default.nix
+++ b/pkgs/development/python-modules/gguf/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A module for writing binary files in the GGUF format";
+    description = "Module for writing binary files in the GGUF format";
     homepage = "https://ggml.ai/";
     license = licenses.mit;
     maintainers = with maintainers; [ mitchmindtree ];
diff --git a/pkgs/development/python-modules/ghdiff/default.nix b/pkgs/development/python-modules/ghdiff/default.nix
index 6d80f36d6df09..6930655869d08 100644
--- a/pkgs/development/python-modules/ghdiff/default.nix
+++ b/pkgs/development/python-modules/ghdiff/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/kilink/ghdiff";
     license = licenses.mit;
-    description = "Generate Github-style HTML for unified diffs.";
+    description = "Generate Github-style HTML for unified diffs";
     mainProgram = "ghdiff";
     maintainers = [ maintainers.mic92 ];
   };
diff --git a/pkgs/development/python-modules/gidgethub/default.nix b/pkgs/development/python-modules/gidgethub/default.nix
index d6a71589362d6..ac7549c9891e6 100644
--- a/pkgs/development/python-modules/gidgethub/default.nix
+++ b/pkgs/development/python-modules/gidgethub/default.nix
@@ -49,7 +49,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "An async GitHub API library";
+    description = "Async GitHub API library";
     homepage = "https://github.com/brettcannon/gidgethub";
     license = licenses.asl20;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/gin-config/default.nix b/pkgs/development/python-modules/gin-config/default.nix
index 6f1dad68d0772..a64a1683d3730 100644
--- a/pkgs/development/python-modules/gin-config/default.nix
+++ b/pkgs/development/python-modules/gin-config/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/google/gin-config";
-    description = "Gin provides a lightweight configuration framework for Python, based on dependency injection.";
+    description = "Gin provides a lightweight configuration framework for Python, based on dependency injection";
     license = licenses.asl20;
     maintainers = with maintainers; [ jethro ];
   };
diff --git a/pkgs/development/python-modules/gistyc/default.nix b/pkgs/development/python-modules/gistyc/default.nix
index 1a3cf250b3c72..eaa216ee63c60 100644
--- a/pkgs/development/python-modules/gistyc/default.nix
+++ b/pkgs/development/python-modules/gistyc/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/ThomasAlbin/gistyc";
-    description = "A Python based GitHub GIST management tool";
+    description = "Python based GitHub GIST management tool";
     longDescription = ''
       gistyc is a Python-based library that enables developers to create, update
       and delete their GitHub GISTs. CLI capabilities allow you to execute the
diff --git a/pkgs/development/python-modules/git-find-repos/default.nix b/pkgs/development/python-modules/git-find-repos/default.nix
new file mode 100644
index 0000000000000..d97d153ee6c11
--- /dev/null
+++ b/pkgs/development/python-modules/git-find-repos/default.nix
@@ -0,0 +1,28 @@
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  setuptools-scm,
+}:
+buildPythonPackage rec {
+  pname = "git-find-repos";
+  version = "2.1.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "acroz";
+    repo = "git-find-repos";
+    rev = version;
+    sha256 = "sha256-4TuZlt6XH4//DBHPuIMl/i3Tp6Uft62dGCTAuZ2rseE=";
+  };
+
+  build-system = [ setuptools-scm ];
+
+  meta = {
+    description = "Simple CLI tool for finding git repositories";
+    homepage = "https://github.com/acroz/git-find-repos";
+    license = lib.licenses.mit;
+    mainProgram = "git-find-repos";
+    maintainers = [ lib.maintainers.yajo ];
+  };
+}
diff --git a/pkgs/development/python-modules/git-sweep/default.nix b/pkgs/development/python-modules/git-sweep/default.nix
index 5f45257ee2ef1..2adc0a2c9ed02 100644
--- a/pkgs/development/python-modules/git-sweep/default.nix
+++ b/pkgs/development/python-modules/git-sweep/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "gitsweep" ];
 
   meta = with lib; {
-    description = "A command-line tool that helps you clean up Git branches";
+    description = "Command-line tool that helps you clean up Git branches";
     mainProgram = "git-sweep";
     homepage = "https://github.com/arc90/git-sweep";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/git-url-parse/default.nix b/pkgs/development/python-modules/git-url-parse/default.nix
index ff7aba550593e..f49bf677ecc84 100644
--- a/pkgs/development/python-modules/git-url-parse/default.nix
+++ b/pkgs/development/python-modules/git-url-parse/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A simple GIT URL parser";
+    description = "Simple GIT URL parser";
     homepage = "https://github.com/coala/git-url-parse";
     changelog = "https://github.com/coala/git-url-parse/blob/${src.rev}/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/github-webhook/default.nix b/pkgs/development/python-modules/github-webhook/default.nix
index ab7d6b4c12acb..5f01cdb0536f1 100644
--- a/pkgs/development/python-modules/github-webhook/default.nix
+++ b/pkgs/development/python-modules/github-webhook/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A framework for writing webhooks for GitHub";
+    description = "Framework for writing webhooks for GitHub";
     homepage = "https://github.com/bloomberg/python-github-webhook";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/github3-py/default.nix b/pkgs/development/python-modules/github3-py/default.nix
index 2ffdcc6a3f00b..59535eb25a70e 100644
--- a/pkgs/development/python-modules/github3-py/default.nix
+++ b/pkgs/development/python-modules/github3-py/default.nix
@@ -61,7 +61,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github3py.readthedocs.org/en/master/";
-    description = "A wrapper for the GitHub API written in python";
+    description = "Wrapper for the GitHub API written in python";
     license = licenses.bsd3;
     maintainers = with maintainers; [ pSub ];
   };
diff --git a/pkgs/development/python-modules/githubkit/default.nix b/pkgs/development/python-modules/githubkit/default.nix
index 3a8f62f6a02d6..fe14c80356ae0 100644
--- a/pkgs/development/python-modules/githubkit/default.nix
+++ b/pkgs/development/python-modules/githubkit/default.nix
@@ -11,12 +11,13 @@
   pytest-xdist,
   pytestCheckHook,
   pythonOlder,
+  pythonRelaxDepsHook,
   typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "githubkit";
-  version = "0.11.4";
+  version = "0.11.5";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,7 +26,7 @@ buildPythonPackage rec {
     owner = "yanyongyu";
     repo = "githubkit";
     rev = "refs/tags/v${version}";
-    hash = "sha256-uxXRDavp5c3e1MOZR2B4wUxEHh6K81avTeaIVsOdup8=";
+    hash = "sha256-YlI5NEfZD+9I2Ikd/LyEq+MnsdYixi+UVNUP8mfFKc8=";
   };
 
   postPatch = ''
@@ -33,8 +34,12 @@ buildPythonPackage rec {
       --replace-fail "--cov=githubkit --cov-append --cov-report=term-missing" ""
   '';
 
+  pythonRelaxDeps = [ "hishel" ];
+
   build-system = [ poetry-core ];
 
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
+
   dependencies = [
     hishel
     httpx
diff --git a/pkgs/development/python-modules/gitignore-parser/default.nix b/pkgs/development/python-modules/gitignore-parser/default.nix
index d94af4ebb18d7..2db2f54c9094c 100644
--- a/pkgs/development/python-modules/gitignore-parser/default.nix
+++ b/pkgs/development/python-modules/gitignore-parser/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "gitignore_parser" ];
 
   meta = with lib; {
-    description = "A spec-compliant gitignore parser";
+    description = "Spec-compliant gitignore parser";
     homepage = "https://github.com/mherrmann/gitignore_parser";
     changelog = "https://github.com/mherrmann/gitignore_parser/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/glances-api/default.nix b/pkgs/development/python-modules/glances-api/default.nix
index a9a51a9723c65..bceb44eb0b6fd 100644
--- a/pkgs/development/python-modules/glances-api/default.nix
+++ b/pkgs/development/python-modules/glances-api/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "glances-api";
-  version = "0.7.0";
+  version = "0.8.0";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "home-assistant-ecosystem";
     repo = "python-glances-api";
     rev = "refs/tags/${version}";
-    hash = "sha256-BME73/xhNo+KmR5Fd/cFXieZ7fVTFukRg6Wkcw6r2cc=";
+    hash = "sha256-QAnwFX53jf7yWWa308/XTARNw5Qeo9K2zfD+6+HiFuM=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/glcontext/default.nix b/pkgs/development/python-modules/glcontext/default.nix
index db5530e3c5e8f..4ad9fa3060900 100644
--- a/pkgs/development/python-modules/glcontext/default.nix
+++ b/pkgs/development/python-modules/glcontext/default.nix
@@ -47,6 +47,6 @@ buildPythonPackage rec {
     description = "OpenGL implementation for ModernGL";
     license = licenses.mit;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ friedelino ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/gmpy2/default.nix b/pkgs/development/python-modules/gmpy2/default.nix
index 7bf82ed02b2dd..58f4cc08f6720 100644
--- a/pkgs/development/python-modules/gmpy2/default.nix
+++ b/pkgs/development/python-modules/gmpy2/default.nix
@@ -51,11 +51,17 @@ buildPythonPackage rec {
     mpmath
   ];
 
-  disabledTests = lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
-    # issue with some overflow logic
-    "test_mpz_to_bytes"
-    "test_mpz_from_bytes"
-  ];
+  disabledTests =
+    lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
+      # issue with some overflow logic
+      "test_mpz_to_bytes"
+      "test_mpz_from_bytes"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # TypeError: mpq() requires numeric or string argument
+      # not sure why it only fails on Darwin
+      "test_mpq_from_Decimal"
+    ];
 
   pythonImportsCheck = [ "gmpy2" ];
 
diff --git a/pkgs/development/python-modules/gnureadline/default.nix b/pkgs/development/python-modules/gnureadline/default.nix
index d2af97dc0839b..17f14f488944e 100644
--- a/pkgs/development/python-modules/gnureadline/default.nix
+++ b/pkgs/development/python-modules/gnureadline/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "The standard Python readline extension statically linked against the GNU readline library";
+    description = "Standard Python readline extension statically linked against the GNU readline library";
     homepage = "https://github.com/ludwigschwardt/python-gnureadline";
     license = licenses.gpl3;
   };
diff --git a/pkgs/development/python-modules/gocardless-pro/default.nix b/pkgs/development/python-modules/gocardless-pro/default.nix
index e903ab4877d93..8ae218aaa9227 100644
--- a/pkgs/development/python-modules/gocardless-pro/default.nix
+++ b/pkgs/development/python-modules/gocardless-pro/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "gocardless-pro";
-  version = "1.51.0";
+  version = "1.52.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "gocardless";
     repo = "gocardless-pro-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-4pyVcyEa8iex7ngTibxWYu4HeW+6V5OASkxqjHIOe2Y=";
+    hash = "sha256-Oi68s4x/rS8ahvJ9TsniYfDidCxtvcvsMwYhJirYlP0=";
   };
 
   propagatedBuildInputs = [
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A client library for the GoCardless Pro API";
+    description = "Client library for the GoCardless Pro API";
     homepage = "https://github.com/gocardless/gocardless-pro-python";
     changelog = "https://github.com/gocardless/gocardless-pro-python/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/goocalendar/default.nix b/pkgs/development/python-modules/goocalendar/default.nix
index efd9d7815976e..75111fd1bc78e 100644
--- a/pkgs/development/python-modules/goocalendar/default.nix
+++ b/pkgs/development/python-modules/goocalendar/default.nix
@@ -41,7 +41,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "goocalendar" ];
 
   meta = with lib; {
-    description = "A calendar widget for GTK using PyGoocanvas";
+    description = "Calendar widget for GTK using PyGoocanvas";
     homepage = "https://goocalendar.tryton.org/";
     changelog = "https://foss.heptapod.net/tryton/goocalendar/-/blob/${version}/CHANGELOG";
     license = licenses.gpl2Only;
diff --git a/pkgs/development/python-modules/goodwe/default.nix b/pkgs/development/python-modules/goodwe/default.nix
index d2e8b5495f14c..1616f17a48951 100644
--- a/pkgs/development/python-modules/goodwe/default.nix
+++ b/pkgs/development/python-modules/goodwe/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "goodwe";
-  version = "0.4.3";
+  version = "0.4.7";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "marcelblijleven";
     repo = "goodwe";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Hj/iTFGUqvMeFQso6wCbkUmoGOSCEtMsO8HaQ/UQKeM=";
+    hash = "sha256-Z+CTwG9aJ/HFnrWXJXpUDgh60/crxaBXJuBSozZIoxI=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/google-ai-generativelanguage/default.nix b/pkgs/development/python-modules/google-ai-generativelanguage/default.nix
index 9de834fab5d76..1ee6497fd1817 100644
--- a/pkgs/development/python-modules/google-ai-generativelanguage/default.nix
+++ b/pkgs/development/python-modules/google-ai-generativelanguage/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "google-ai-generativelanguage";
-  version = "0.6.4";
+  version = "0.6.5";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-F1CEjBKvlsskrhw90F5L/iSGfcRXcAntA+EELYQh6HQ=";
+    hash = "sha256-xAicJ3+k4mci92qwPuMDnyi+i/HJvigpSLlYOhVMbXk=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/google-api-python-client/default.nix b/pkgs/development/python-modules/google-api-python-client/default.nix
index e88ee4650f060..1a6ef5e6c9cff 100644
--- a/pkgs/development/python-modules/google-api-python-client/default.nix
+++ b/pkgs/development/python-modules/google-api-python-client/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "google-api-python-client";
-  version = "2.126.0";
+  version = "2.133.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-l8BBBjDivr0ZTZnpG9Yg2rW8a27AvwM/mpEJtwC4Oss=";
+    hash = "sha256-KTCSkFtmoEbTGHqZrEVOErAMwscERPJusvH5wagnILQ=";
   };
 
   build-system = [ setuptools ];
@@ -41,7 +41,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "googleapiclient" ];
 
   meta = with lib; {
-    description = "The official Python client library for Google's discovery based APIs";
+    description = "Official Python client library for Google's discovery based APIs";
     longDescription = ''
       These client libraries are officially supported by Google. However, the
       libraries are considered complete and are in maintenance mode. This means
diff --git a/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix b/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
index e7eaf3bd595e5..fbec33fc371c6 100644
--- a/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery-datatransfer";
-  version = "3.15.2";
+  version = "3.15.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-oX4E3G3PB9qqCo5ZWt+p702oV5KUzlIdXNczthJ73Q0=";
+    hash = "sha256-5MhO7TEgnEO0PwjdpzB+7AZmokMdjAh6z0poKtQfOrE=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/google-cloud-bigquery/default.nix b/pkgs/development/python-modules/google-cloud-bigquery/default.nix
index 8459a83ab4dc7..35de32bea6c51 100644
--- a/pkgs/development/python-modules/google-cloud-bigquery/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigquery/default.nix
@@ -30,14 +30,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery";
-  version = "3.23.0";
+  version = "3.24.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-fs2yB3J9UTsbzh8hPbuSbtLh1PASJ3jeAPDlbRnUegE=";
+    hash = "sha256-6V5vbgqjLmxFPUTisymJMf3XlHwwnqMpoxtv8fk54X4=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/google-cloud-bigtable/default.nix b/pkgs/development/python-modules/google-cloud-bigtable/default.nix
index dd6485aa5d24a..30c5087f0d4a2 100644
--- a/pkgs/development/python-modules/google-cloud-bigtable/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigtable/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigtable";
-  version = "2.23.1";
+  version = "2.24.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-FHWiK/zhY7XELN9O717AUyPuozWFUpT5zk4j+qIk8Cg=";
+    hash = "sha256-rOdfYso8UtZhnU/3rtmCEpyuUIuvd22BszMT9PnqXtQ=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/google-cloud-container/default.nix b/pkgs/development/python-modules/google-cloud-container/default.nix
index ac54e8078ddae..5ec6a9d49cd06 100644
--- a/pkgs/development/python-modules/google-cloud-container/default.nix
+++ b/pkgs/development/python-modules/google-cloud-container/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-container";
-  version = "2.45.0";
+  version = "2.47.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-8vaSLR+cIKohDpbC679cKydLsnBKhewtTpdBDymxjss=";
+    hash = "sha256-tvzOKTu2n5b9JDo9EJw48BUrJuOwOR9JK6PQyi44HfI=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/google-cloud-dlp/default.nix b/pkgs/development/python-modules/google-cloud-dlp/default.nix
index ae32dcec9bfea..3772f823e92ae 100644
--- a/pkgs/development/python-modules/google-cloud-dlp/default.nix
+++ b/pkgs/development/python-modules/google-cloud-dlp/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-dlp";
-  version = "3.17.0";
+  version = "3.18.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-YMUEBj8c154KA5Y/cm1gbypDxkfY4ncCq5wbym5rS9s=";
+    hash = "sha256-R0CMx16DmMfc6Tw/YqPthYKyDxJcyODdMxAVrj62L34=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/google-cloud-pubsub/default.nix b/pkgs/development/python-modules/google-cloud-pubsub/default.nix
index 079d482b35e7a..f9ce73cf823c2 100644
--- a/pkgs/development/python-modules/google-cloud-pubsub/default.nix
+++ b/pkgs/development/python-modules/google-cloud-pubsub/default.nix
@@ -18,14 +18,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-pubsub";
-  version = "2.21.1";
+  version = "2.21.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-MfzwdES3+BOmFsS2UOH78dyZigiP4AWadhZIVawX8Fw=";
+    hash = "sha256-30THmk17+1rfpnVBPjuRu74G6R0nFaFfklFAsFcVu30=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/google-generativeai/default.nix b/pkgs/development/python-modules/google-generativeai/default.nix
index a595dae0dc246..13f9386eb135c 100644
--- a/pkgs/development/python-modules/google-generativeai/default.nix
+++ b/pkgs/development/python-modules/google-generativeai/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "google-generativeai";
-  version = "0.5.4";
+  version = "0.7.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "google";
     repo = "generative-ai-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-g/strcvXNT21pD4Lt9sgFBgEgiFid+D/cUlTm6k3R6s=";
+    hash = "sha256-cK5Go5mFy+dC5/B4aMLDjZytNZn79r+ZvOEwAW0FPrI=";
   };
 
   pythonRelaxDeps = [ "google-ai-generativelanguage" ];
diff --git a/pkgs/development/python-modules/google-nest-sdm/default.nix b/pkgs/development/python-modules/google-nest-sdm/default.nix
index 162bd64c271fe..c7f48ed25d50a 100644
--- a/pkgs/development/python-modules/google-nest-sdm/default.nix
+++ b/pkgs/development/python-modules/google-nest-sdm/default.nix
@@ -7,7 +7,7 @@
   google-auth,
   google-auth-oauthlib,
   google-cloud-pubsub,
-  pydantic,
+  mashumaro,
   pytest-aiohttp,
   pytest-asyncio,
   pytestCheckHook,
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "google-nest-sdm";
-  version = "3.0.4";
+  version = "4.0.5";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "allenporter";
     repo = "python-google-nest-sdm";
     rev = "refs/tags/${version}";
-    hash = "sha256-zYHrS9y15dcyDhOoky7sB2BYkpTL3PoyNbNewKKl19E=";
+    hash = "sha256-SA2PlHiqvvbXmCg0WqehLDiIGEMDbzwbzbCX1klMHis=";
   };
 
   build-system = [ setuptools ];
@@ -37,7 +37,7 @@ buildPythonPackage rec {
     google-auth
     google-auth-oauthlib
     google-cloud-pubsub
-    pydantic
+    mashumaro
     requests-oauthlib
   ];
 
diff --git a/pkgs/development/python-modules/google-pasta/default.nix b/pkgs/development/python-modules/google-pasta/default.nix
index 7a25ad742a829..d9692217a5207 100644
--- a/pkgs/development/python-modules/google-pasta/default.nix
+++ b/pkgs/development/python-modules/google-pasta/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ six ];
 
   meta = {
-    description = "An AST-based Python refactoring library";
+    description = "AST-based Python refactoring library";
     homepage = "https://github.com/google/pasta";
     # Usually the tag message contains a one-line summary of the changes.
     changelog = "https://github.com/google/pasta/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/gophish/default.nix b/pkgs/development/python-modules/gophish/default.nix
new file mode 100644
index 0000000000000..8a7d8c90d487c
--- /dev/null
+++ b/pkgs/development/python-modules/gophish/default.nix
@@ -0,0 +1,65 @@
+{
+  lib,
+  appdirs,
+  buildPythonPackage,
+  certifi,
+  chardet,
+  fetchFromGitHub,
+  idna,
+  packaging,
+  pyparsing,
+  python-dateutil,
+  pythonOlder,
+  pythonRelaxDepsHook,
+  requests,
+  setuptools,
+  six,
+  urllib3,
+}:
+
+buildPythonPackage rec {
+  pname = "gophish";
+  version = "0.5.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "gophish";
+    repo = "api-client-python";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ITwwU/Xixyi9JSWbYf606HB7S5E4jiI0lEYcOdNg3mo=";
+  };
+
+  pythonRelaxDeps = true;
+
+  build-system = [ setuptools ];
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
+
+  dependencies = [
+    appdirs
+    certifi
+    chardet
+    idna
+    packaging
+    pyparsing
+    python-dateutil
+    requests
+    six
+    urllib3
+  ];
+
+  pythonImportsCheck = [ "gophish" ];
+
+  # Module has no test
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Module to interact with Gophish";
+    homepage = "https://github.com/gophish/api-client-python";
+    changelog = "https://github.com/gophish/api-client-python/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/gotenberg-client/default.nix b/pkgs/development/python-modules/gotenberg-client/default.nix
index 748682f327bfd..e2f3658e135a1 100644
--- a/pkgs/development/python-modules/gotenberg-client/default.nix
+++ b/pkgs/development/python-modules/gotenberg-client/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "gotenberg_client" ];
 
   meta = with lib; {
-    description = "A Python client for interfacing with the Gotenberg API";
+    description = "Python client for interfacing with the Gotenberg API";
     homepage = "https://github.com/stumpylog/gotenberg-client";
     changelog = "https://github.com/stumpylog/gotenberg-client/blob/${version}/CHANGELOG.md";
     license = licenses.mpl20;
diff --git a/pkgs/development/python-modules/govee-local-api/default.nix b/pkgs/development/python-modules/govee-local-api/default.nix
index 5b818ad25c4c5..fee6555d378f8 100644
--- a/pkgs/development/python-modules/govee-local-api/default.nix
+++ b/pkgs/development/python-modules/govee-local-api/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch2,
   poetry-core,
   pytestCheckHook,
   pythonOlder,
@@ -10,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "govee-local-api";
-  version = "1.4.5";
+  version = "1.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -19,17 +18,9 @@ buildPythonPackage rec {
     owner = "Galorhallen";
     repo = "govee-local-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-kmIuo/e3eLJTgmI+2Oq9Y0jov/133jXwgoBayGv33r4=";
+    hash = "sha256-L9c/58B50E5Kk44j9tvtDZ0+ncJZ4KubTz/U9FI71+E=";
   };
 
-  patches = [
-    (fetchpatch2 {
-      # configure pep517 build-backend
-      url = "https://github.com/Galorhallen/govee-local-api/commit/897a21ae723ff94343bbf4ba1541e3a1d3e03c94.patch";
-      hash = "sha256-/d5jGKGME768Ar+WWWQUByHJPGB31OHShI4oLjcMUIU=";
-    })
-  ];
-
   build-system = [ poetry-core ];
 
   nativeCheckInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/gpiozero/default.nix b/pkgs/development/python-modules/gpiozero/default.nix
index 149bf47e45224..f8314696f9fa4 100644
--- a/pkgs/development/python-modules/gpiozero/default.nix
+++ b/pkgs/development/python-modules/gpiozero/default.nix
@@ -63,7 +63,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A simple interface to GPIO devices with Raspberry Pi";
+    description = "Simple interface to GPIO devices with Raspberry Pi";
     homepage = "https://github.com/gpiozero/gpiozero";
     changelog = "https://github.com/gpiozero/gpiozero/blob/v${version}/docs/changelog.rst";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/gprof2dot/default.nix b/pkgs/development/python-modules/gprof2dot/default.nix
index 3baac43ae6175..e12d999dd82c4 100644
--- a/pkgs/development/python-modules/gprof2dot/default.nix
+++ b/pkgs/development/python-modules/gprof2dot/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "gprof2dot";
-  version = "2022.07.29";
+  version = "2024.06.06";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "jrfonseca";
     repo = "gprof2dot";
     rev = "refs/tags/${version}";
-    hash = "sha256-nIsBO6KTyG2VZZRXrkU/T/a9Ki1x6hda5Vv3rZv/mJM=";
+    hash = "sha256-6TTshVbfYh/2Ss1uysGW0nxmNQdIiAhe4LldMS7hpCo=";
   };
 
   makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ graphviz ]}" ];
diff --git a/pkgs/development/python-modules/gpsoauth/default.nix b/pkgs/development/python-modules/gpsoauth/default.nix
index cfda3e8db2d59..28d364c2650d9 100644
--- a/pkgs/development/python-modules/gpsoauth/default.nix
+++ b/pkgs/development/python-modules/gpsoauth/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "gpsoauth";
-  version = "1.1.0";
+  version = "1.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-BA+2aFxpFpi6cWGl4yepba7s7BmZ1ijvSBhtS23v3QM=";
+    hash = "sha256-WCAu0wM5fSkntGTcleJxS///haGw+Iv2jzrWOFnr5DU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/gpt-2-simple/default.nix b/pkgs/development/python-modules/gpt-2-simple/default.nix
index 109ee08b34fe6..d8561bf346e97 100644
--- a/pkgs/development/python-modules/gpt-2-simple/default.nix
+++ b/pkgs/development/python-modules/gpt-2-simple/default.nix
@@ -4,6 +4,7 @@
   fetchFromGitHub,
   regex,
   requests,
+  setuptools,
   tqdm,
   numpy,
   toposort,
@@ -13,7 +14,7 @@
 buildPythonPackage rec {
   pname = "gpt-2-simple";
   version = "0.8.1";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "minimaxir";
@@ -22,6 +23,8 @@ buildPythonPackage rec {
     hash = "sha256-WwD4sDcc28zXEOISJsq8e+rgaNrrgIy79Wa4J3E7Ovc=";
   };
 
+  build-system = [ setuptools ];
+
   propagatedBuildInputs = [
     regex
     requests
@@ -31,7 +34,7 @@ buildPythonPackage rec {
     tensorflow
   ];
 
-  dontCheck = true; # no tests in upstream
+  doCheck = false; # no tests in upstream
 
   meta = with lib; {
     description = "Easily retrain OpenAI's GPT-2 text-generating model on new texts";
diff --git a/pkgs/development/python-modules/gpustat/default.nix b/pkgs/development/python-modules/gpustat/default.nix
index d573948c2852a..c7a920a07f1a9 100644
--- a/pkgs/development/python-modules/gpustat/default.nix
+++ b/pkgs/development/python-modules/gpustat/default.nix
@@ -45,7 +45,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "gpustat" ];
 
   meta = with lib; {
-    description = "A simple command-line utility for querying and monitoring GPU status";
+    description = "Simple command-line utility for querying and monitoring GPU status";
     mainProgram = "gpustat";
     homepage = "https://github.com/wookayin/gpustat";
     changelog = "https://github.com/wookayin/gpustat/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/gpytorch/default.nix b/pkgs/development/python-modules/gpytorch/default.nix
index 2f7c4502bfe14..5c82e860ed5a3 100644
--- a/pkgs/development/python-modules/gpytorch/default.nix
+++ b/pkgs/development/python-modules/gpytorch/default.nix
@@ -50,7 +50,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A highly efficient and modular implementation of Gaussian Processes, with GPU acceleration";
+    description = "Highly efficient and modular implementation of Gaussian Processes, with GPU acceleration";
     homepage = "https://gpytorch.ai";
     license = licenses.mit;
     maintainers = with maintainers; [ veprbl ];
diff --git a/pkgs/development/python-modules/grad-cam/default.nix b/pkgs/development/python-modules/grad-cam/default.nix
index b069f3300164d..8e2c61075d98b 100644
--- a/pkgs/development/python-modules/grad-cam/default.nix
+++ b/pkgs/development/python-modules/grad-cam/default.nix
@@ -1,14 +1,15 @@
 {
   lib,
   buildPythonPackage,
-  fetchPypi,
   pythonOlder,
+  fetchPypi,
+  pythonRelaxDepsHook,
+  setuptools,
   matplotlib,
   numpy,
   opencv4,
   pillow,
   scikit-learn,
-  setuptools,
   torch,
   torchvision,
   ttach,
@@ -17,14 +18,14 @@
 
 buildPythonPackage rec {
   pname = "grad-cam";
-  version = "1.5.0";
+  version = "1.5.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-aw7Z/6/AMKH2PVBcOr8HxsmRDa6c3v8Xd4xa8HTiFGA=";
+    hash = "sha256-WhC3QjMDh4E8NnO8SyCtg9rFgDJkYP6/xdWNcTvlKFU=";
   };
 
   postPatch = ''
@@ -32,9 +33,19 @@ buildPythonPackage rec {
       --replace "opencv-python" "opencv"
   '';
 
-  nativeBuildInputs = [ setuptools ];
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "torchvision"
+  ];
+
+  build-system = [
+    setuptools
+  ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     matplotlib
     numpy
     opencv4
@@ -60,10 +71,10 @@ buildPythonPackage rec {
     "pytorch_grad_cam.utils.model_targets"
   ];
 
-  meta = with lib; {
-    description = "Advanced AI explainability for computer vision.";
+  meta = {
+    description = "Advanced AI explainability for computer vision";
     homepage = "https://jacobgil.github.io/pytorch-gradcam-book";
-    license = licenses.mit;
-    maintainers = with maintainers; [ bcdarwin ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ bcdarwin ];
   };
 }
diff --git a/pkgs/development/python-modules/gradient/default.nix b/pkgs/development/python-modules/gradient/default.nix
index be0c27eb49fde..36c3e2d82495d 100644
--- a/pkgs/development/python-modules/gradient/default.nix
+++ b/pkgs/development/python-modules/gradient/default.nix
@@ -73,7 +73,7 @@ buildPythonPackage rec {
   # ];
 
   meta = with lib; {
-    description = "The command line interface for Gradient";
+    description = "Command line interface for Gradient";
     mainProgram = "gradient";
     homepage = "https://github.com/Paperspace/gradient-cli";
     license = licenses.isc;
diff --git a/pkgs/development/python-modules/gradio-pdf/default.nix b/pkgs/development/python-modules/gradio-pdf/default.nix
index 2a054ff9dde5a..fc32e80a8c1bf 100644
--- a/pkgs/development/python-modules/gradio-pdf/default.nix
+++ b/pkgs/development/python-modules/gradio-pdf/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "gradio-pdf";
-  version = "0.0.7";
+  version = "0.0.11";
   format = "pyproject";
 
   src = fetchPypi {
     pname = "gradio_pdf";
     inherit version;
-    hash = "sha256-3OJiBnp79woCUtiNiaePwfJCAS42WYkv9GFeScesFv8=";
+    hash = "sha256-HCfjJdd9DIRqm/dS00xlU9AYGM7U/b3zNo2IgZHtasc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/gradio/client.nix b/pkgs/development/python-modules/gradio/client.nix
index ed16c4cbace60..768e5e3f99565 100644
--- a/pkgs/development/python-modules/gradio/client.nix
+++ b/pkgs/development/python-modules/gradio/client.nix
@@ -2,7 +2,7 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  gitUpdater,
+  nix-update-script,
   pythonOlder,
   pythonRelaxDepsHook,
   # pyproject
@@ -29,7 +29,7 @@
 
 buildPythonPackage rec {
   pname = "gradio-client";
-  version = "0.16.1";
+  version = "1.0.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -38,9 +38,10 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "gradio-app";
     repo = "gradio";
+    # not to be confused with @gradio/client@${version}
     rev = "refs/tags/gradio_client@${version}";
     sparseCheckout = [ "client/python" ];
-    hash = "sha256-SVUm9LrjYG0r3U1yOd3rctxVMYlnAOW+Opqy9c3osnw=";
+    hash = "sha256-nbOWg2ZPcXTft7e4tR5p5xecVU62en0hEdXqAgLDZF4=";
   };
   prePatch = ''
     cd client/python
@@ -97,7 +98,9 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  passthru.updateScript = gitUpdater { rev-prefix = "@gradio/client@"; };
+  passthru.updateScript = nix-update-script {
+    extraArgs = [ "--version-regex" "gradio_client@(.*)" ];
+  };
 
   meta = with lib; {
     homepage = "https://www.gradio.app/";
diff --git a/pkgs/development/python-modules/gradio/default.nix b/pkgs/development/python-modules/gradio/default.nix
index 3568ae9d1d82f..4d028da04e493 100644
--- a/pkgs/development/python-modules/gradio/default.nix
+++ b/pkgs/development/python-modules/gradio/default.nix
@@ -63,16 +63,15 @@
 
 buildPythonPackage rec {
   pname = "gradio";
-  version = "4.29.0";
+  version = "4.36.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
-  # We use the Pypi release, since it provides prebuilt webui assets,
-  # and upstream has stopped tagging releases since 3.41.0
+  # We use the Pypi release, since it provides prebuilt webui assets
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-17KT0b9kBO+xLgIgxfpwjETDoRM4aTJPlJv7HjkJXjo=";
+    hash = "sha256-crLSEVbTRnEjuubzD0Y/AC7wbicnZidDCPXtPKw3Vjs=";
   };
 
   # fix packaging.ParserSyntaxError, which can't handle comments
@@ -188,12 +187,64 @@ buildPythonPackage rec {
 
     # tests if pip and other tools are installed
     "test_get_executable_path"
+  ] ++ lib.optionals stdenv.isDarwin [
+    # flaky on darwin (depend on port availability)
+    "test_all_status_messages"
+    "test_async_generators"
+    "test_async_generators_interface"
+    "test_async_iterator_update_with_new_component"
+    "test_concurrency_limits"
+    "test_default_concurrency_limits"
+    "test_default_flagging_callback"
+    "test_end_to_end"
+    "test_end_to_end_cache_examples"
+    "test_event_data"
+    "test_every_does_not_block_queue"
+    "test_example_caching_relaunch"
+    "test_example_caching_relaunch"
+    "test_exit_called_at_launch"
+    "test_file_component_uploads"
+    "test_files_saved_as_file_paths"
+    "test_flagging_does_not_create_unnecessary_directories"
+    "test_flagging_no_permission_error_with_flagging_disabled"
+    "test_info_and_warning_alerts"
+    "test_info_isolation"
+    "test_launch_analytics_does_not_error_with_invalid_blocks"
+    "test_no_empty_audio_files"
+    "test_no_empty_image_files"
+    "test_no_empty_video_files"
+    "test_non_streaming_api"
+    "test_non_streaming_api_async"
+    "test_pil_images_hashed"
+    "test_progress_bar"
+    "test_progress_bar_track_tqdm"
+    "test_queue_when_using_auth"
+    "test_restart_after_close"
+    "test_set_share_in_colab"
+    "test_show_error"
+    "test_simple_csv_flagging_callback"
+    "test_single_request"
+    "test_socket_reuse"
+    "test_start_server"
+    "test_state_holder_is_used_in_postprocess"
+    "test_state_stored_up_to_capacity"
+    "test_static_files_single_app"
+    "test_streaming_api"
+    "test_streaming_api_async"
+    "test_streaming_api_with_additional_inputs"
+    "test_sync_generators"
+    "test_time_to_live_and_delete_callback_for_state"
+    "test_updates_stored_up_to_capacity"
+    "test_varying_output_forms_with_generators"
   ];
   disabledTestPaths = [
     # 100% touches network
     "test/test_networking.py"
     # makes pytest freeze 50% of the time
     "test/test_interfaces.py"
+  ] ++ lib.optionals stdenv.isDarwin [
+    # Network-related tests that are flaky on darwin (depend on port availability)
+    "test/test_routes.py"
   ];
   pytestFlagsArray = [
     "-x" # abort on first failure
@@ -201,8 +252,6 @@ buildPythonPackage rec {
     #"-W" "ignore" # uncomment for debugging help
   ];
 
-  __darwinAllowLocalNetworking = true;
-
   # check the binary works outside the build env
   doInstallCheck = true;
   postInstallCheck = ''
diff --git a/pkgs/development/python-modules/grafanalib/default.nix b/pkgs/development/python-modules/grafanalib/default.nix
index 61a992cb51393..4e03786a71479 100644
--- a/pkgs/development/python-modules/grafanalib/default.nix
+++ b/pkgs/development/python-modules/grafanalib/default.nix
@@ -2,7 +2,6 @@
   attrs,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchPypi,
   lib,
   pytestCheckHook,
   pythonOlder,
diff --git a/pkgs/development/python-modules/grammalecte/default.nix b/pkgs/development/python-modules/grammalecte/default.nix
index 316bd97fe392e..5167b6112731b 100644
--- a/pkgs/development/python-modules/grammalecte/default.nix
+++ b/pkgs/development/python-modules/grammalecte/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   disabled = !isPy3k;
 
   meta = {
-    description = "An open source grammar and typographic corrector for the French language";
+    description = "Open source grammar and typographic corrector for the French language";
     homepage = "https://grammalecte.net";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ apeyroux ];
diff --git a/pkgs/development/python-modules/graph-tool/default.nix b/pkgs/development/python-modules/graph-tool/default.nix
index 460adeaa54e50..126a259a95653 100644
--- a/pkgs/development/python-modules/graph-tool/default.nix
+++ b/pkgs/development/python-modules/graph-tool/default.nix
@@ -2,15 +2,17 @@
   buildPythonPackage,
   lib,
   fetchurl,
+  stdenv,
 
   autoreconfHook,
-  boost,
+  boost185,
   cairomm,
   cgal,
   expat,
   gmp,
   gobject-introspection,
   gtk3,
+  llvmPackages,
   matplotlib,
   mpfr,
   numpy,
@@ -20,35 +22,55 @@
   python,
   scipy,
   sparsehash,
+  gitUpdater,
 }:
 
+let
+  # graph-tool doesn't build against boost181 on Darwin
+  boost = boost185.override {
+    enablePython = true;
+    inherit python;
+  };
+in
 buildPythonPackage rec {
   pname = "graph-tool";
+  version = "2.70";
   format = "other";
-  version = "2.45";
 
   src = fetchurl {
     url = "https://downloads.skewed.de/graph-tool/graph-tool-${version}.tar.bz2";
-    hash = "sha256-+S2nrM/aArKXke/k8LPtkzKfJyMq9NOvwHySQh7Ghmg=";
+    hash = "sha256-hohGgOnxP1nb8NfkDRYPJ08sx0EH8PxX7Rblk1PLlIk=";
   };
 
+  # Remove error messages about tput during build process without adding ncurses,
+  # and replace unavailable git commit hash and date.
+  postPatch = ''
+    substituteInPlace configure.ac \
+      --replace-fail 'tput setaf $1' : \
+      --replace-fail 'tput sgr0' : \
+      --replace-fail \
+        "\"esyscmd(git show | head -n 1 | sed 's/commit //' |  grep -o -e '.\{8\}' | head -n 1 |tr -d '\n')\"" \
+        '["(nixpkgs-${version})"]' \
+      --replace-fail \
+        "\"esyscmd(git log -1 | head -n 3 | grep 'Date:' | sed s/'Date:   '// | tr -d '\n')\"" \
+        '["(unavailable)"]'
+  '';
+
   configureFlags = [
     "--with-python-module-path=$(out)/${python.sitePackages}"
     "--with-boost-libdir=${boost}/lib"
-    "--with-expat=${expat}"
     "--with-cgal=${cgal}"
-    "--enable-openmp"
   ];
 
   enableParallelBuilding = true;
 
-  nativeBuildInputs = [
+  build-system = [
     autoreconfHook
     pkg-config
   ];
 
-  # https://git.skewed.de/count0/graph-tool/-/wikis/installation-instructions#manual-compilation
-  propagatedBuildInputs = [
+  # https://graph-tool.skewed.de/installation.html#manual-compilation
+  dependencies = [
     boost
     cairomm
     cgal
@@ -63,12 +85,20 @@ buildPythonPackage rec {
     pygobject3
     scipy
     sparsehash
-  ];
+  ] ++ lib.optionals stdenv.cc.isClang [ llvmPackages.openmp ];
+
+  pythonImportsCheck = [ "graph_tool" ];
+
+  passthru.updateScript = gitUpdater {
+    url = "https://git.skewed.de/count0/graph-tool";
+    rev-prefix = "release-";
+  };
 
-  meta = with lib; {
+  meta = {
     description = "Python module for manipulation and statistical analysis of graphs";
     homepage = "https://graph-tool.skewed.de";
-    license = licenses.lgpl3Plus;
-    maintainers = with maintainers; [ ];
+    changelog = "https://git.skewed.de/count0/graph-tool/commits/release-${version}";
+    license = lib.licenses.lgpl3Plus;
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/graphene-django/default.nix b/pkgs/development/python-modules/graphene-django/default.nix
index 8453df70b0315..254b2ae16a53f 100644
--- a/pkgs/development/python-modules/graphene-django/default.nix
+++ b/pkgs/development/python-modules/graphene-django/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "graphene-django";
-  version = "3.2.1";
+  version = "3.2.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "graphql-python";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-wzU9U4mYvBf43qBQi20ewKtmw1eFskQk+nnsdaM7HQM=";
+    hash = "sha256-12ue7Pq7TFMSBAfaj8Si6KrpuKYp5T2EEesJpc8wRho=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/graphql-relay/default.nix b/pkgs/development/python-modules/graphql-relay/default.nix
index f34b86e5d4a63..75b0471211765 100644
--- a/pkgs/development/python-modules/graphql-relay/default.nix
+++ b/pkgs/development/python-modules/graphql-relay/default.nix
@@ -51,7 +51,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "graphql_relay" ];
 
   meta = with lib; {
-    description = "A library to help construct a graphql-py server supporting react-relay";
+    description = "Library to help construct a graphql-py server supporting react-relay";
     homepage = "https://github.com/graphql-python/graphql-relay-py/";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/graphtage/default.nix b/pkgs/development/python-modules/graphtage/default.nix
index 2bc77466146ec..7ecdeb1adf846 100644
--- a/pkgs/development/python-modules/graphtage/default.nix
+++ b/pkgs/development/python-modules/graphtage/default.nix
@@ -47,7 +47,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "graphtage" ];
 
   meta = with lib; {
-    description = "A utility to diff tree-like files such as JSON and XML";
+    description = "Utility to diff tree-like files such as JSON and XML";
     mainProgram = "graphtage";
     homepage = "https://github.com/trailofbits/graphtage";
     changelog = "https://github.com/trailofbits/graphtage/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/grappelli-safe/default.nix b/pkgs/development/python-modules/grappelli-safe/default.nix
index ca940f212b45b..8c7207f8a6b0f 100644
--- a/pkgs/development/python-modules/grappelli-safe/default.nix
+++ b/pkgs/development/python-modules/grappelli-safe/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "grappelli_safe" ];
 
   meta = with lib; {
-    description = "A snapshot of django-grappelli for the Mezzanine CMS";
+    description = "Snapshot of django-grappelli for the Mezzanine CMS";
     longDescription = ''
       grappelli_safe was created to provide a snapshot of the
       Grappelli admin skin for Django, to be referenced as a
diff --git a/pkgs/development/python-modules/graspologic/default.nix b/pkgs/development/python-modules/graspologic/default.nix
index de84669d5869d..891af40a779d6 100644
--- a/pkgs/development/python-modules/graspologic/default.nix
+++ b/pkgs/development/python-modules/graspologic/default.nix
@@ -54,7 +54,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://graspologic.readthedocs.io";
-    description = "A package for graph statistical algorithms";
+    description = "Package for graph statistical algorithms";
     license = licenses.asl20; # changing to `licenses.mit` in next release
     maintainers = with maintainers; [ bcdarwin ];
     # graspologic-native is not available
diff --git a/pkgs/development/python-modules/greynoise/default.nix b/pkgs/development/python-modules/greynoise/default.nix
index 80cc088e7c91a..44eadbdb6d3ca 100644
--- a/pkgs/development/python-modules/greynoise/default.nix
+++ b/pkgs/development/python-modules/greynoise/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "greynoise";
-  version = "2.1.0";
+  version = "2.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "GreyNoise-Intelligence";
     repo = "pygreynoise";
     rev = "refs/tags/v${version}";
-    hash = "sha256-bMQfGkCjMBimNaYzSi78GaLiDiLdmxMB8RfFCVTxD5U=";
+    hash = "sha256-jsLvq0GndprdYL5mxHDRtZmNkeKT/rIV+dAnRPEmsV8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/griffe/default.nix b/pkgs/development/python-modules/griffe/default.nix
index 2fd12f9386745..64694b89471cb 100644
--- a/pkgs/development/python-modules/griffe/default.nix
+++ b/pkgs/development/python-modules/griffe/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "griffe";
-  version = "0.45.1";
+  version = "0.47.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "mkdocstrings";
     repo = "griffe";
     rev = "refs/tags/${version}";
-    hash = "sha256-NmCnhImkdo2zAHhl2fLknV0rXXmJ9A+FL1uXUBF4IPk=";
+    hash = "sha256-NkS8cD0G/nbquQfMVcdbTLnJx26PQnqWB8UnBTNIBdE=";
   };
 
   build-system = [ pdm-backend ];
diff --git a/pkgs/development/python-modules/gruut/default.nix b/pkgs/development/python-modules/gruut/default.nix
index 487c4e377a3b2..995357abff7e6 100644
--- a/pkgs/development/python-modules/gruut/default.nix
+++ b/pkgs/development/python-modules/gruut/default.nix
@@ -96,7 +96,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "gruut" ];
 
   meta = with lib; {
-    description = "A tokenizer, text cleaner, and phonemizer for many human languages";
+    description = "Tokenizer, text cleaner, and phonemizer for many human languages";
     mainProgram = "gruut";
     homepage = "https://github.com/rhasspy/gruut";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/gspread/default.nix b/pkgs/development/python-modules/gspread/default.nix
index b3ec185add2b4..d07e08d3eba96 100644
--- a/pkgs/development/python-modules/gspread/default.nix
+++ b/pkgs/development/python-modules/gspread/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "gspread";
-  version = "6.1.0";
+  version = "6.1.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "burnash";
     repo = "gspread";
     rev = "refs/tags/v${version}";
-    hash = "sha256-kuXPX+VY0qz4fldGYPbzZMFx+blzsmueews1W+AjQb0=";
+    hash = "sha256-hvT4e1l3MTT3WMDSfKvZ7BU8dzkzgPROHrnx5mKyCR4=";
   };
 
   nativeBuildInputs = [ flit-core ];
diff --git a/pkgs/development/python-modules/gssapi/default.nix b/pkgs/development/python-modules/gssapi/default.nix
index ab8ea417d800f..44a7b87ec7c3b 100644
--- a/pkgs/development/python-modules/gssapi/default.nix
+++ b/pkgs/development/python-modules/gssapi/default.nix
@@ -55,6 +55,9 @@ buildPythonPackage rec {
 
   buildInputs = lib.optionals stdenv.isDarwin [ GSS ];
 
+  # k5test is marked as broken on darwin
+  doCheck = !stdenv.isDarwin;
+
   nativeCheckInputs = [
     k5test
     parameterized
diff --git a/pkgs/development/python-modules/gst-python/default.nix b/pkgs/development/python-modules/gst-python/default.nix
index 77e37baa7c0d5..f2cc5a2edfac1 100644
--- a/pkgs/development/python-modules/gst-python/default.nix
+++ b/pkgs/development/python-modules/gst-python/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "gst-python";
-  version = "1.24.2";
+  version = "1.24.3";
 
   format = "other";
 
@@ -26,7 +26,7 @@ buildPythonPackage rec {
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/gst-python/${pname}-${version}.tar.xz";
-    hash = "sha256-vZDzvIrxfc478mtmU377SVGGn/zmQD9ZhGG5heKy144=";
+    hash = "sha256-7Ns+K6lOosgrk6jHFdWn4E+XJqiDjAprF2lJKP0ehZU=";
   };
 
   # Python 2.x is not supported.
diff --git a/pkgs/development/python-modules/gtts/default.nix b/pkgs/development/python-modules/gtts/default.nix
index 9662eaf6055ba..c4fc265a14fb8 100644
--- a/pkgs/development/python-modules/gtts/default.nix
+++ b/pkgs/development/python-modules/gtts/default.nix
@@ -54,7 +54,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "gtts" ];
 
   meta = with lib; {
-    description = "A Python library and CLI tool to interface with Google Translate text-to-speech API";
+    description = "Python library and CLI tool to interface with Google Translate text-to-speech API";
     mainProgram = "gtts-cli";
     homepage = "https://gtts.readthedocs.io";
     changelog = "https://gtts.readthedocs.io/en/latest/changelog.html";
diff --git a/pkgs/development/python-modules/guessit/default.nix b/pkgs/development/python-modules/guessit/default.nix
index 5fc4c0a5cbcdf..ec73362550396 100644
--- a/pkgs/development/python-modules/guessit/default.nix
+++ b/pkgs/development/python-modules/guessit/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "guessit" ];
 
   meta = with lib; {
-    description = "A Python library that extracts as much information as possible from a video filename";
+    description = "Python library that extracts as much information as possible from a video filename";
     mainProgram = "guessit";
     homepage = "https://guessit-io.github.io/guessit/";
     changelog = "https://github.com/guessit-io/guessit/raw/v${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/guidance/default.nix b/pkgs/development/python-modules/guidance/default.nix
index 92b2d244e9cc5..cd0897ee20eda 100644
--- a/pkgs/development/python-modules/guidance/default.nix
+++ b/pkgs/development/python-modules/guidance/default.nix
@@ -95,7 +95,7 @@ buildPythonPackage rec {
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
-    description = "A guidance language for controlling large language models";
+    description = "Guidance language for controlling large language models";
     homepage = "https://github.com/guidance-ai/guidance";
     changelog = "https://github.com/guidance-ai/guidance/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/gunicorn/default.nix b/pkgs/development/python-modules/gunicorn/default.nix
index 9489be94213c6..25296b64d9baa 100644
--- a/pkgs/development/python-modules/gunicorn/default.nix
+++ b/pkgs/development/python-modules/gunicorn/default.nix
@@ -38,11 +38,11 @@ buildPythonPackage rec {
       --replace "--cov=gunicorn --cov-report=xml" ""
   '';
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [ packaging ];
+  dependencies = [ packaging ];
 
-  passthru.optional-dependencies = {
+  optional-dependencies = {
     gevent = [ gevent ];
     eventlet = [ eventlet ];
     tornado = [ tornado ];
@@ -52,16 +52,14 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "gunicorn" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
+  nativeCheckInputs = [ pytestCheckHook ] ++ lib.flatten (lib.attrValues optional-dependencies);
 
-  meta = with lib; {
-    changelog = "https://github.com/benoitc/gunicorn/releases/tag/${version}";
-    homepage = "https://github.com/benoitc/gunicorn";
+  meta = {
     description = "gunicorn 'Green Unicorn' is a WSGI HTTP Server for UNIX, fast clients and sleepy applications";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    homepage = "https://github.com/benoitc/gunicorn";
+    changelog = "https://github.com/benoitc/gunicorn/releases/tag/${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ getchoo ];
     mainProgram = "gunicorn";
   };
 }
diff --git a/pkgs/development/python-modules/gvm-tools/default.nix b/pkgs/development/python-modules/gvm-tools/default.nix
index 35cd9afd44031..8e1e2124c1036 100644
--- a/pkgs/development/python-modules/gvm-tools/default.nix
+++ b/pkgs/development/python-modules/gvm-tools/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "gvm-tools";
-  version = "24.3.0";
+  version = "24.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "greenbone";
     repo = "gvm-tools";
     rev = "refs/tags/v${version}";
-    hash = "sha256-LLXMdT1q6IWsbsRjflpGN5pcjUCXWzdFK3gMw4mBm0U=";
+    hash = "sha256-R8wpkzL2QxGdvc6vWtrbIGEiryc+QQ3OitdxMcpH+F4=";
   };
 
   __darwinAllowLocalNetworking = true;
diff --git a/pkgs/development/python-modules/gym/default.nix b/pkgs/development/python-modules/gym/default.nix
index a4da585c77403..fa8394411a951 100644
--- a/pkgs/development/python-modules/gym/default.nix
+++ b/pkgs/development/python-modules/gym/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "gym" ];
 
   meta = with lib; {
-    description = "A toolkit for developing and comparing your reinforcement learning agents";
+    description = "Toolkit for developing and comparing your reinforcement learning agents";
     homepage = "https://gym.openai.com/";
     license = licenses.mit;
     maintainers = with maintainers; [ hyphon81 ];
diff --git a/pkgs/development/python-modules/gymnasium/default.nix b/pkgs/development/python-modules/gymnasium/default.nix
index 4a4a67cbefd13..5cb114c51490c 100644
--- a/pkgs/development/python-modules/gymnasium/default.nix
+++ b/pkgs/development/python-modules/gymnasium/default.nix
@@ -80,7 +80,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A standard API for reinforcement learning and a diverse set of reference environments (formerly Gym)";
+    description = "Standard API for reinforcement learning and a diverse set of reference environments (formerly Gym)";
     homepage = "https://github.com/Farama-Foundation/Gymnasium";
     license = licenses.mit;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/pkgs/development/python-modules/gyp/default.nix b/pkgs/development/python-modules/gyp/default.nix
index 2ee6b13160eb6..ad9fb88eb7bac 100644
--- a/pkgs/development/python-modules/gyp/default.nix
+++ b/pkgs/development/python-modules/gyp/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage {
   '';
 
   meta = with lib; {
-    description = "A tool to generate native build files";
+    description = "Tool to generate native build files";
     mainProgram = "gyp";
     homepage = "https://gyp.gsrc.io";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/ha-philipsjs/default.nix b/pkgs/development/python-modules/ha-philipsjs/default.nix
index 939dfdd8afca1..800c28f0651ac 100644
--- a/pkgs/development/python-modules/ha-philipsjs/default.nix
+++ b/pkgs/development/python-modules/ha-philipsjs/default.nix
@@ -9,23 +9,26 @@
   pytestCheckHook,
   pythonOlder,
   respx,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "ha-philipsjs";
-  version = "3.1.1";
-  format = "setuptools";
+  version = "3.2.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "danielperna84";
-    repo = pname;
+    repo = "ha-philipsjs";
     rev = "refs/tags/${version}";
-    hash = "sha256-r8uqToxkJg9j89UUZpxsPXutWPefAYDW95zFBKU9Al4=";
+    hash = "sha256-zP8cuXdhvCDvnbc20GbFwgickdqeJ17b0vk0zK8ze9Q=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     cryptography
     httpx
   ];
@@ -40,7 +43,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "haphilipsjs" ];
 
   meta = with lib; {
-    description = "Python library to interact with Philips TVs with jointSPACE API";
+    description = "Library to interact with Philips TVs with jointSPACE API";
     homepage = "https://github.com/danielperna84/ha-philipsjs";
     changelog = "https://github.com/danielperna84/ha-philipsjs/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/habitipy/default.nix b/pkgs/development/python-modules/habitipy/default.nix
index 20017eb2a2b9e..980dc0726991b 100644
--- a/pkgs/development/python-modules/habitipy/default.nix
+++ b/pkgs/development/python-modules/habitipy/default.nix
@@ -6,23 +6,26 @@
   requests,
   setuptools,
   hypothesis,
-  pynose,
+  pytestCheckHook,
   responses,
 }:
 
 buildPythonPackage rec {
   pname = "habitipy";
-  version = "0.3.0";
-  format = "setuptools";
+  version = "0.3.1";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "ASMfreaK";
     repo = "habitipy";
-    rev = "v${version}";
-    sha256 = "1vf485z5m4h61p64zr3sgkcil2s3brq7dja4n7m49d1fvzcirylv";
+    # TODO: https://github.com/ASMfreaK/habitipy/issues/27
+    rev = "faaca8840575fe8b807bf17acea6266d5ce92a99";
+    hash = "sha256-BGFUAntSNH0YYWn9nfKjIlpevF7MFs0csCPSp6IT6Ro=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     plumbum
     requests
     setuptools
@@ -30,14 +33,21 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     hypothesis
-    pynose
+    pytestCheckHook
     responses
   ];
 
-  checkPhase = ''
-    HOME=$TMPDIR nosetests
+  preCheck = ''
+    export HOME=$TMPDIR
   '';
 
+  disabledTests = [
+    # network access
+    "test_content_cache"
+    # hypothesis.errors.InvalidArgument: tests/test_cli.py::test_data is a function that returns a Hypothesis strategy, but pytest has collected it as a test function.
+    "test_data"
+  ];
+
   pythonImportsCheck = [ "habitipy" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/habluetooth/default.nix b/pkgs/development/python-modules/habluetooth/default.nix
index fc2761b3778ea..4a1f28a60b432 100644
--- a/pkgs/development/python-modules/habluetooth/default.nix
+++ b/pkgs/development/python-modules/habluetooth/default.nix
@@ -18,16 +18,16 @@
 
 buildPythonPackage rec {
   pname = "habluetooth";
-  version = "2.8.1";
+  version = "3.1.1";
   pyproject = true;
 
-  disabled = pythonOlder "3.10";
+  disabled = pythonOlder "3.11";
 
   src = fetchFromGitHub {
     owner = "Bluetooth-Devices";
     repo = "habluetooth";
     rev = "refs/tags/v${version}";
-    hash = "sha256-2QiV32gDaoIBLUv/a3YzosFl6+E/nm0WoSUcTx9ph8s=";
+    hash = "sha256-HlQAYR+feu1awKFf11Q5Us4zSeHASu8OscJ8T8tlm5M=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/hahomematic/default.nix b/pkgs/development/python-modules/hahomematic/default.nix
index 15472bde797f3..9e48a5da5b9c0 100644
--- a/pkgs/development/python-modules/hahomematic/default.nix
+++ b/pkgs/development/python-modules/hahomematic/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "hahomematic";
-  version = "2024.4.12";
+  version = "2024.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.12";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "danielperna84";
     repo = "hahomematic";
     rev = "refs/tags/${version}";
-    hash = "sha256-iWl9kDLRh9CAk0tOibDOHcBV7lwVY/TWKYMBZW9G2k0=";
+    hash = "sha256-6WG8N4LcQ52mbrVP1aPL+xkpSQ9u3e0vV+Hf3ybh3mA=";
   };
 
   __darwinAllowLocalNetworking = true;
diff --git a/pkgs/development/python-modules/hakuin/default.nix b/pkgs/development/python-modules/hakuin/default.nix
new file mode 100644
index 0000000000000..d8b9ff2441d02
--- /dev/null
+++ b/pkgs/development/python-modules/hakuin/default.nix
@@ -0,0 +1,42 @@
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jinja2,
+  nltk,
+  setuptools,
+}:
+
+buildPythonPackage rec {
+  pname = "hakuin";
+  version = "0-unstable-2024-03-31";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "pruzko";
+    repo = "hakuin";
+    rev = "3b7b76dcbfb8ab2b98e6dee08df02158327af772";
+    hash = "sha256-tRjo9a0ZCBjKxbXTkiKFzfL4pL5awF5vXmsJlYxwoIw=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [
+    aiohttp
+    jinja2
+    nltk
+  ];
+
+  # Module has no test
+  doCheck = false;
+
+  pythonImportsCheck = [ "hakuin" ];
+
+  meta = with lib; {
+    description = "Blind SQL Injection optimization and automation framework";
+    homepage = "https://github.com/pruzko/hakuin";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/halo/default.nix b/pkgs/development/python-modules/halo/default.nix
index 939f55be774a3..a2372b73eb4cc 100644
--- a/pkgs/development/python-modules/halo/default.nix
+++ b/pkgs/development/python-modules/halo/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "halo" ];
 
   meta = with lib; {
-    description = "Beautiful Spinners for Terminal, IPython and Jupyter.";
+    description = "Beautiful Spinners for Terminal, IPython and Jupyter";
     homepage = "https://github.com/manrajgrover/halo";
     license = licenses.mit;
     maintainers = with maintainers; [ urbas ];
diff --git a/pkgs/development/python-modules/hass-nabucasa/default.nix b/pkgs/development/python-modules/hass-nabucasa/default.nix
index ecaa475906d68..8b9f883ce54c7 100644
--- a/pkgs/development/python-modules/hass-nabucasa/default.nix
+++ b/pkgs/development/python-modules/hass-nabucasa/default.nix
@@ -23,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "hass-nabucasa";
-  version = "0.81.0";
+  version = "0.81.1";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     owner = "nabucasa";
     repo = "hass-nabucasa";
     rev = "refs/tags/${version}";
-    hash = "sha256-61pdl9bjtvC9Fa7jCtSPEz/5PJiANmKqOSSHjK7is2s=";
+    hash = "sha256-/sY/JijBCcGcbMjoX0yuhFIWvU+TFVN8sRxBx+CDVVs=";
   };
 
   pythonRelaxDeps = [ "acme" ];
diff --git a/pkgs/development/python-modules/hassil/default.nix b/pkgs/development/python-modules/hassil/default.nix
index ff5c2f108e1a7..42c46fc3383a5 100644
--- a/pkgs/development/python-modules/hassil/default.nix
+++ b/pkgs/development/python-modules/hassil/default.nix
@@ -1,10 +1,13 @@
 {
   lib,
   buildPythonPackage,
-  fetchPypi,
+  fetchFromGitHub,
   pythonOlder,
 
-  # propagates
+  # build-system
+  setuptools,
+
+  # dependencies
   pyyaml,
   unicode-rbnf,
 
@@ -14,20 +17,24 @@
 
 let
   pname = "hassil";
-  version = "1.6.1";
+  version = "1.7.1";
 in
 buildPythonPackage {
   inherit pname version;
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-jkPo02Jy6UqyC5YvwMw+DDkT8rG5Xe4EiNVED/JHzKc=";
+  src = fetchFromGitHub {
+    owner = "home-assistant";
+    repo = "hassil";
+    rev = "refs/tags/${version}";
+    hash = "sha256-yrjzsJzyUFqTauEcNEOCQx2YxomkNS4J0JfQEQQ5m3E=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     pyyaml
     unicode-rbnf
   ];
diff --git a/pkgs/development/python-modules/hatch-odoo/default.nix b/pkgs/development/python-modules/hatch-odoo/default.nix
new file mode 100644
index 0000000000000..91a0ef99efbd6
--- /dev/null
+++ b/pkgs/development/python-modules/hatch-odoo/default.nix
@@ -0,0 +1,40 @@
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatch-vcs,
+  hatchling,
+  lib,
+  manifestoo-core,
+  pythonOlder,
+  tomli,
+}:
+buildPythonPackage rec {
+  pname = "hatch-odoo";
+  version = "0.1";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "acsone";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-+KM3tpeQ4e53bVhUeWUSfyuIzPRvWkjZi4S/gH4UHVY=";
+  };
+
+  buildInputs = [hatch-vcs];
+
+  propagatedBuildInputs =
+    [
+      hatchling
+      manifestoo-core
+    ]
+    ++ lib.optionals (pythonOlder "3.11") [
+      tomli
+    ];
+
+  meta = with lib; {
+    description = "A hatch plugin to develop and package Odoo projects";
+    homepage = "https://github.com/acsone/hatch-odoo";
+    license = licenses.mit;
+    maintainers = with maintainers; [yajo];
+  };
+}
diff --git a/pkgs/development/python-modules/hatch-vcs/default.nix b/pkgs/development/python-modules/hatch-vcs/default.nix
index 0a7f42232e410..ec89847abc248 100644
--- a/pkgs/development/python-modules/hatch-vcs/default.nix
+++ b/pkgs/development/python-modules/hatch-vcs/default.nix
@@ -38,13 +38,18 @@ buildPythonPackage rec {
     # incompatible with setuptools-scm>=7
     # https://github.com/ofek/hatch-vcs/issues/8
     "test_write"
+  ] ++ lib.optionals (pythonOlder "3.11") [
+    # https://github.com/pypa/setuptools_scm/issues/1038, fixed in setuptools_scm@8.1.0
+    "test_basic"
+    "test_root"
+    "test_metadata"
   ];
 
   pythonImportsCheck = [ "hatch_vcs" ];
 
   meta = with lib; {
     changelog = "https://github.com/ofek/hatch-vcs/releases/tag/v${version}";
-    description = "A plugin for Hatch that uses your preferred version control system (like Git) to determine project versions";
+    description = "Plugin for Hatch that uses your preferred version control system (like Git) to determine project versions";
     homepage = "https://github.com/ofek/hatch-vcs";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
diff --git a/pkgs/development/python-modules/hdate/default.nix b/pkgs/development/python-modules/hdate/default.nix
index a725414ece472..214aa83fbbc06 100644
--- a/pkgs/development/python-modules/hdate/default.nix
+++ b/pkgs/development/python-modules/hdate/default.nix
@@ -3,7 +3,8 @@
   astral,
   buildPythonPackage,
   fetchFromGitHub,
-  poetry-core,
+  pdm-backend,
+  pythonRelaxDepsHook,
   pytestCheckHook,
   pythonOlder,
   pytz,
@@ -11,27 +12,28 @@
 
 buildPythonPackage rec {
   pname = "hdate";
-  version = "0.10.4";
-  format = "pyproject";
+  version = "0.10.9";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "py-libhdate";
     repo = "py-libhdate";
     rev = "refs/tags/v${version}";
-    hash = "sha256-NF2ZA9ruW7sL2tLY11VAtyPRxGg2o5/mpv3ZsH/Zxb8=";
+    hash = "sha256-Cni8GegB8GAhtIKKCgSn3QavE/Gi9Rcm9v0grToMyq4=";
   };
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace 'pytz = ">= 2020.0"' 'pytz = "*"' \
-      --replace 'astral = {version = "^2.2", python = "^3.6"}' 'astral = "*"'
-  '';
+  pythonRelaxDeps = [
+    "astral"
+  ];
 
-  nativeBuildInputs = [ poetry-core ];
+  build-system = [
+    pdm-backend
+    pythonRelaxDepsHook
+  ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     astral
     pytz
   ];
@@ -46,7 +48,7 @@ buildPythonPackage rec {
     description = "Python module for Jewish/Hebrew date and Zmanim";
     homepage = "https://github.com/py-libhdate/py-libhdate";
     changelog = "https://github.com/py-libhdate/py-libhdate/releases/tag/v${version}";
-    license = with licenses; [ gpl3Plus ];
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/hdbscan/default.nix b/pkgs/development/python-modules/hdbscan/default.nix
index 99194c06e2ee7..77b3f348d001e 100644
--- a/pkgs/development/python-modules/hdbscan/default.nix
+++ b/pkgs/development/python-modules/hdbscan/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   buildPythonPackage,
-  fetchpatch,
   cython,
   numpy,
   pytestCheckHook,
@@ -15,12 +14,12 @@
 
 buildPythonPackage rec {
   pname = "hdbscan";
-  version = "0.8.33";
+  version = "0.8.36";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-V/q8Xw5F9I0kB7NccxGSq8iWN2QR/n5LuDb/oD04+Q0=";
+    hash = "sha256-05istp4MTr31OcK6WDnFIzYOyBTzAPqn8vh96PJXr1g=";
   };
 
   pythonRemoveDeps = [ "cython" ];
diff --git a/pkgs/development/python-modules/hdfs/default.nix b/pkgs/development/python-modules/hdfs/default.nix
index 18a75a338933c..c887d87178902 100644
--- a/pkgs/development/python-modules/hdfs/default.nix
+++ b/pkgs/development/python-modules/hdfs/default.nix
@@ -4,25 +4,27 @@
   fastavro,
   fetchFromGitHub,
   lib,
-  nose,
   pytestCheckHook,
   requests,
+  setuptools,
   six,
 }:
 
 buildPythonPackage rec {
   pname = "hdfs";
   version = "2.7.3";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "mtth";
-    repo = pname;
+    repo = "hdfs";
     rev = "refs/tags/v${version}";
     hash = "sha256-Pm2E8hB0wbu7npi/sLt9D8jQsH69qNOHLji9CYqST/8=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     docopt
     requests
     six
@@ -30,7 +32,6 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     fastavro
-    nose
     pytestCheckHook
   ];
 
@@ -42,5 +43,6 @@ buildPythonPackage rec {
     changelog = "https://github.com/mtth/hdfs/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ samuela ];
+    mainProgram = "hdfscli";
   };
 }
diff --git a/pkgs/development/python-modules/heapdict/default.nix b/pkgs/development/python-modules/heapdict/default.nix
index f503f8d5e2b03..e2a7aa3ed44c9 100644
--- a/pkgs/development/python-modules/heapdict/default.nix
+++ b/pkgs/development/python-modules/heapdict/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   doCheck = !isPy3k;
 
   meta = with lib; {
-    description = "a heap with decrease-key and increase-key operations.";
+    description = "Heap with decrease-key and increase-key operations";
     homepage = "http://stutzbachenterprises.com";
     license = licenses.bsd3;
     maintainers = with maintainers; [ teh ];
diff --git a/pkgs/development/python-modules/heatzypy/default.nix b/pkgs/development/python-modules/heatzypy/default.nix
index 843c8cbf1348b..78baf88849c7f 100644
--- a/pkgs/development/python-modules/heatzypy/default.nix
+++ b/pkgs/development/python-modules/heatzypy/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "heatzypy";
-  version = "2.5.4";
+  version = "2.5.5";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "Cyr-ius";
     repo = "heatzypy";
     rev = "refs/tags/${version}";
-    hash = "sha256-A01e3duNQmVv9vyOs6+gF/BdevLiYi/uXSq5bKmuRao=";
+    hash = "sha256-S1wIVeUTbtF5omImt38YNvZEutyCEYMGExccs0FIK44=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/hepunits/default.nix b/pkgs/development/python-modules/hepunits/default.nix
index 5056c6867868d..8664d4b23665b 100644
--- a/pkgs/development/python-modules/hepunits/default.nix
+++ b/pkgs/development/python-modules/hepunits/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "hepunits";
-  version = "2.3.3";
+  version = "2.3.4";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Z9fMd81U1ytpwmpo5e+teEK29o+ovGJ7uQ5BF3q+aUU=";
+    hash = "sha256-qEK4hqZ7oFY6NHFVJ3z9yPtnAggjNmG8urnyip34zWA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/herepy/default.nix b/pkgs/development/python-modules/herepy/default.nix
index e50103e8c74c9..64c39bb8f830a 100644
--- a/pkgs/development/python-modules/herepy/default.nix
+++ b/pkgs/development/python-modules/herepy/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "herepy";
-  version = "3.6.2";
+  version = "3.6.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "abdullahselek";
     repo = "HerePy";
     rev = "refs/tags/${version}";
-    hash = "sha256-+DI9wjYVAUKdGEXWhbV9Xp0oOazcB+sS89ugIZuZM2w=";
+    hash = "sha256-ht4EZBfREU7tDNo6tCPyECjm0H+yuhjsfJ60M4ss0jE=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/heudiconv/default.nix b/pkgs/development/python-modules/heudiconv/default.nix
index 8794192471baa..698bf15e02ec7 100644
--- a/pkgs/development/python-modules/heudiconv/default.nix
+++ b/pkgs/development/python-modules/heudiconv/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "heudiconv";
-  version = "1.1.3";
+  version = "1.1.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ktw/XrvA5G+DunjEB8LeQuQnjs6zQOKsZ+RGpzDZ5DQ=";
+    hash = "sha256-hCHG5zpoEx4w7Jq842RWwMtsn5NskPq/Wahp4neOun4=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/hidapi/default.nix b/pkgs/development/python-modules/hidapi/default.nix
index 97e913e687767..fe08c934ea61d 100644
--- a/pkgs/development/python-modules/hidapi/default.nix
+++ b/pkgs/development/python-modules/hidapi/default.nix
@@ -46,7 +46,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "hid" ];
 
   meta = with lib; {
-    description = "A Cython interface to the hidapi from https://github.com/libusb/hidapi";
+    description = "Cython interface to the hidapi from https://github.com/libusb/hidapi";
     homepage = "https://github.com/trezor/cython-hidapi";
     # license can actually be either bsd3 or gpl3
     # see https://github.com/trezor/cython-hidapi/blob/master/LICENSE-orig.txt
diff --git a/pkgs/development/python-modules/hikari-lightbulb/default.nix b/pkgs/development/python-modules/hikari-lightbulb/default.nix
index 3295dd637d8cb..9fb3952ce0a77 100644
--- a/pkgs/development/python-modules/hikari-lightbulb/default.nix
+++ b/pkgs/development/python-modules/hikari-lightbulb/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "lightbulb" ];
 
   meta = with lib; {
-    description = "A command handler for Hikari, the Python Discord API wrapper library";
+    description = "Command handler for Hikari, the Python Discord API wrapper library";
     longDescription = ''
       Lightbulb is designed to be an easy to use command handler library that integrates with the Discord API wrapper library for Python, Hikari.
 
diff --git a/pkgs/development/python-modules/hishel/default.nix b/pkgs/development/python-modules/hishel/default.nix
index 03dfcf4cf8ec7..229e8e72b4033 100644
--- a/pkgs/development/python-modules/hishel/default.nix
+++ b/pkgs/development/python-modules/hishel/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "hishel";
-  version = "0.0.26";
+  version = "0.0.27";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "karpetrosyan";
     repo = "hishel";
     rev = "refs/tags/${version}";
-    hash = "sha256-+HjVxcTbY9nRj2938fqguOXuTM3XzJWccx0J6RK2h4A=";
+    hash = "sha256-3iIQNtdd8sBGfNJrugjjWv4PQKhdFH+prw4poevh+O0=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/hist/default.nix b/pkgs/development/python-modules/hist/default.nix
index 0585fc4005263..063bc93b6aa8a 100644
--- a/pkgs/development/python-modules/hist/default.nix
+++ b/pkgs/development/python-modules/hist/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "hist";
-  version = "2.7.2";
+  version = "2.7.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-JrGrgQ2LECIttdFh1KyvZKqgT+a6rtKWbUHB2sVgHQY=";
+    hash = "sha256-+fm1aAmxkLtUZph4nMDX0ECTT8UUHSdjxuSdZegdvAs=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/hiyapyco/default.nix b/pkgs/development/python-modules/hiyapyco/default.nix
index b0c6e9f56f48c..24c1c400565dc 100644
--- a/pkgs/development/python-modules/hiyapyco/default.nix
+++ b/pkgs/development/python-modules/hiyapyco/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "hiyapyco";
-  version = "0.5.6";
+  version = "0.6.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "zerwes";
     repo = pname;
     rev = "refs/tags/release-${version}";
-    hash = "sha256-WBSOjOX4naa0XDTnO593EAvtz5EjVPWCbiZaPXdx0e4=";
+    hash = "sha256-F+OPoFEUTHWSo5Pc46Wwt4j/x7w0BjhJhpLEdNPr7H0=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/hjson/default.nix b/pkgs/development/python-modules/hjson/default.nix
index 46ae9f518a34d..a5caa19be3586 100644
--- a/pkgs/development/python-modules/hjson/default.nix
+++ b/pkgs/development/python-modules/hjson/default.nix
@@ -44,7 +44,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A user interface for JSON";
+    description = "User interface for JSON";
     homepage = "https://github.com/hjson/hjson-py";
     changelog = "https://github.com/hjson/hjson-py/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/hole/default.nix b/pkgs/development/python-modules/hole/default.nix
index 1558036c2149d..0f4b1aef89e26 100644
--- a/pkgs/development/python-modules/hole/default.nix
+++ b/pkgs/development/python-modules/hole/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "hole" ];
 
   meta = with lib; {
-    description = "Python API for interacting with a Pihole instance.";
+    description = "Python API for interacting with a Pihole instance";
     homepage = "https://github.com/home-assistant-ecosystem/python-hole";
     changelog = "https://github.com/home-assistant-ecosystem/python-hole/releases/tag/${version}";
     license = with licenses; [ mit ];
diff --git a/pkgs/development/python-modules/holidays/default.nix b/pkgs/development/python-modules/holidays/default.nix
index 54f00eef6b97d..50beaa7df2668 100644
--- a/pkgs/development/python-modules/holidays/default.nix
+++ b/pkgs/development/python-modules/holidays/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "holidays";
-  version = "0.49";
+  version = "0.51";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "vacanza";
     repo = "python-holidays";
     rev = "refs/tags/v${version}";
-    hash = "sha256-pO2365FS8Axo+dBSHmlnHtnXIExzSI86BVGD0DCN2KU=";
+    hash = "sha256-0zLoxXgp4gby2pj96CJ2TOZBMmzuWKczotma7Q/3/ys=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/hologram/default.nix b/pkgs/development/python-modules/hologram/default.nix
index df9584ed31c27..17e7b62e1f638 100644
--- a/pkgs/development/python-modules/hologram/default.nix
+++ b/pkgs/development/python-modules/hologram/default.nix
@@ -50,7 +50,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "hologram" ];
 
   meta = with lib; {
-    description = "A library for automatically generating Draft 7 JSON Schemas from Python dataclasses";
+    description = "Library for automatically generating Draft 7 JSON Schemas from Python dataclasses";
     homepage = "https://github.com/dbt-labs/hologram";
     license = licenses.mit;
     maintainers = with maintainers; [
diff --git a/pkgs/development/python-modules/home-assistant-bluetooth/default.nix b/pkgs/development/python-modules/home-assistant-bluetooth/default.nix
index fba93118b9de2..f155a5db19c39 100644
--- a/pkgs/development/python-modules/home-assistant-bluetooth/default.nix
+++ b/pkgs/development/python-modules/home-assistant-bluetooth/default.nix
@@ -31,6 +31,11 @@ buildPythonPackage rec {
     hash = "sha256-KTaZ3xbZpBIN5zP73YdJW6QeCQThGdqejnfWwvL+0R8=";
   };
 
+  patches = [
+    # https://github.com/home-assistant-libs/home-assistant-bluetooth/issues/38
+    ./habluetooth-3.0-compat.patch
+  ];
+
   postPatch = ''
     # drop pytest parametrization (coverage, etc.)
     sed -i '/addopts/d' pyproject.toml
diff --git a/pkgs/development/python-modules/home-assistant-bluetooth/habluetooth-3.0-compat.patch b/pkgs/development/python-modules/home-assistant-bluetooth/habluetooth-3.0-compat.patch
new file mode 100644
index 0000000000000..c56d890fd8aa9
--- /dev/null
+++ b/pkgs/development/python-modules/home-assistant-bluetooth/habluetooth-3.0-compat.patch
@@ -0,0 +1,50 @@
+diff --git a/tests/test_models.py b/tests/test_models.py
+index ecfd70c..b8001f2 100644
+--- a/tests/test_models.py
++++ b/tests/test_models.py
+@@ -88,6 +88,7 @@ def test_model_from_scanner():
+         "service_uuids": ["cba20d00-224d-11e6-9fb8-0002a5d5c51b"],
+         "source": "local",
+         "time": now,
++        "tx_power": -127,
+     }
+ 
+ 
+@@ -109,6 +110,7 @@ def test_construct_service_info_bleak():
+         advertisement=switchbot_adv,
+         connectable=False,
+         time=now,
++        tx_power=None,
+     )
+ 
+     assert service_info.service_uuids == ["cba20d00-224d-11e6-9fb8-0002a5d5c51b"]
+@@ -132,6 +134,7 @@ def test_construct_service_info_bleak():
+         "service_uuids": ["cba20d00-224d-11e6-9fb8-0002a5d5c51b"],
+         "source": "local",
+         "time": now,
++        "tx_power": None,
+     }
+ 
+ 
+@@ -165,6 +168,7 @@ def test_from_device_and_advertisement_data():
+         "service_uuids": ["cba20d00-224d-11e6-9fb8-0002a5d5c51b"],
+         "source": "local",
+         "time": now_monotonic,
++        "tx_power": -127,
+     }
+ 
+ 
+@@ -200,6 +204,7 @@ def test_pyobjc_compat():
+         advertisement=switchbot_adv,
+         connectable=False,
+         time=now,
++        tx_power=None,
+     )
+ 
+     assert service_info.service_uuids == ["cba20d00-224d-11e6-9fb8-0002a5d5c51b"]
+@@ -223,4 +228,5 @@ def test_pyobjc_compat():
+         "service_uuids": ["cba20d00-224d-11e6-9fb8-0002a5d5c51b"],
+         "source": "local",
+         "time": now,
++        "tx_power": None,
+     }
diff --git a/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix b/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix
index 52801ebe5d11f..e4425df5c63a3 100644
--- a/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix
+++ b/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "home-assistant-chip-clusters";
-  version = "2024.3.2";
+  version = "2024.5.2";
   format = "wheel";
 
   src = fetchPypi {
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     pname = "home_assistant_chip_clusters";
     dist = "py3";
     python = "py3";
-    hash = "sha256-Imdpqy7m81oxfkzj+82afSX9juK/SOCBIMoaPjK8G+Y=";
+    hash = "sha256-LP/Iw0dgm8TUws/SNUfg7b/OPIboCGB7JRiEwXNd+4A=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/home-assistant-chip-core/default.nix b/pkgs/development/python-modules/home-assistant-chip-core/default.nix
index f12f2e53592e6..0c2c6fda5ed85 100644
--- a/pkgs/development/python-modules/home-assistant-chip-core/default.nix
+++ b/pkgs/development/python-modules/home-assistant-chip-core/default.nix
@@ -29,7 +29,7 @@
 
 buildPythonPackage rec {
   pname = "home-assistant-chip-core";
-  version = "2024.3.2";
+  version = "2024.5.2";
   format = "wheel";
 
   disabled = pythonOlder "3.7";
@@ -40,11 +40,11 @@ buildPythonPackage rec {
         {
           "aarch64-linux" = {
             name = "aarch64";
-            hash = "sha256-li+fmEikVnTAkgQnoiWjoZaVRwGRadTYuQySR5s8VB4=";
+            hash = "sha256-4C3KHmFbbpeWvmfwoVcc8kWRw22sGJMyDKsUGcbch6U=";
           };
           "x86_64-linux" = {
             name = "x86_64";
-            hash = "sha256-iUKtAz00qFklTW2ilUPGAWhpqDmnLb6D3Zdy1oHpQl0=";
+            hash = "sha256-n+Dn0vL0uUEvXsoKegSpJIG2jHbXSrYv2NhL+ZeVHrk=";
           };
         }
         .${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
diff --git a/pkgs/development/python-modules/hpccm/default.nix b/pkgs/development/python-modules/hpccm/default.nix
index 2404e7a3888b6..1ab5e163a0bc4 100644
--- a/pkgs/development/python-modules/hpccm/default.nix
+++ b/pkgs/development/python-modules/hpccm/default.nix
@@ -1,29 +1,36 @@
 {
   lib,
-  fetchFromGitHub,
-  buildPythonPackage,
-  six,
   archspec,
-  pytestCheckHook,
+  buildPythonPackage,
+  fetchFromGitHub,
   pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  six,
 }:
 
 buildPythonPackage rec {
   pname = "hpccm";
-  version = "22.10.0";
-  format = "setuptools";
+  version = "23.11.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "NVIDIA";
     repo = "hpc-container-maker";
-    rev = "v${version}";
-    hash = "sha256-dLMbwtvn7HTVVlWHAzXU19ERdJxytf9NlnqMXW6ShKI=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-uB2+1Nc+SgPzB5hJI1L6yD8gn0hGOkIZF6rejq4rYg8=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     six
     archspec
   ];
+
   nativeCheckInputs = [
     pytestCheckHook
     pytest-xdist
@@ -39,10 +46,11 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "HPC Container Maker";
-    mainProgram = "hpccm";
     homepage = "https://github.com/NVIDIA/hpc-container-maker";
+    changelog = "https://github.com/NVIDIA/hpc-container-maker/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
-    platforms = platforms.x86;
     maintainers = with maintainers; [ atila ];
+    mainProgram = "hpccm";
+    platforms = platforms.x86;
   };
 }
diff --git a/pkgs/development/python-modules/hs-dbus-signature/default.nix b/pkgs/development/python-modules/hs-dbus-signature/default.nix
index f795b558a6127..2656b55e7f0f1 100644
--- a/pkgs/development/python-modules/hs-dbus-signature/default.nix
+++ b/pkgs/development/python-modules/hs-dbus-signature/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "hs_dbus_signature" ];
 
   meta = with lib; {
-    description = "A Hypothesis Strategy for Generating Arbitrary DBus Signatures";
+    description = "Hypothesis Strategy for Generating Arbitrary DBus Signatures";
     homepage = "https://github.com/stratis-storage/hs-dbus-signature";
     license = licenses.mpl20;
     maintainers = with maintainers; [ nickcao ];
diff --git a/pkgs/development/python-modules/hsaudiotag3k/default.nix b/pkgs/development/python-modules/hsaudiotag3k/default.nix
index 5323d83defd63..39d4546ee53ea 100644
--- a/pkgs/development/python-modules/hsaudiotag3k/default.nix
+++ b/pkgs/development/python-modules/hsaudiotag3k/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A pure Python library that lets one to read metadata from media files";
+    description = "Pure Python library that lets one to read metadata from media files";
     homepage = "http://hg.hardcoded.net/hsaudiotag/";
     license = licenses.bsd3;
   };
diff --git a/pkgs/development/python-modules/hstspreload/default.nix b/pkgs/development/python-modules/hstspreload/default.nix
index 692cd31354ed0..59da4385026f9 100644
--- a/pkgs/development/python-modules/hstspreload/default.nix
+++ b/pkgs/development/python-modules/hstspreload/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "hstspreload";
-  version = "2024.5.1";
+  version = "2024.6.1";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "sethmlarson";
     repo = "hstspreload";
     rev = "refs/tags/${version}";
-    hash = "sha256-Ut2VhU2+o4wm4WY4zz/25EyDLvrYoBu3iVFkx3FZVYo=";
+    hash = "sha256-eeZR+UDQ6Cp1WTcz2duSTgQ+7vrF9T08aVT0mJk6ctA=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/html2image/default.nix b/pkgs/development/python-modules/html2image/default.nix
index e7b4ca76aeba6..4d7252b1c3055 100644
--- a/pkgs/development/python-modules/html2image/default.nix
+++ b/pkgs/development/python-modules/html2image/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "html2image" ];
 
   meta = with lib; {
-    description = "A package acting as a wrapper around the headless mode of existing web browsers to generate images from URLs and from HTML+CSS strings or files";
+    description = "Package acting as a wrapper around the headless mode of existing web browsers to generate images from URLs and from HTML+CSS strings or files";
     homepage = "https://github.com/vgalin/html2image";
     changelog = "https://github.com/vgalin/html2image/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/htmlmin/default.nix b/pkgs/development/python-modules/htmlmin/default.nix
index 9c158ed41b89e..fd19103e41ace 100644
--- a/pkgs/development/python-modules/htmlmin/default.nix
+++ b/pkgs/development/python-modules/htmlmin/default.nix
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A configurable HTML Minifier with safety features";
+    description = "Configurable HTML Minifier with safety features";
     mainProgram = "htmlmin";
     homepage = "https://pypi.python.org/pypi/htmlmin";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/htseq/default.nix b/pkgs/development/python-modules/htseq/default.nix
index c62c2ecfa5196..f5327c0edb400 100644
--- a/pkgs/development/python-modules/htseq/default.nix
+++ b/pkgs/development/python-modules/htseq/default.nix
@@ -73,7 +73,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://htseq.readthedocs.io/";
-    description = "A framework to work with high-throughput sequencing data";
+    description = "Framework to work with high-throughput sequencing data";
     maintainers = with maintainers; [ unode ];
   };
 }
diff --git a/pkgs/development/python-modules/httmock/default.nix b/pkgs/development/python-modules/httmock/default.nix
index f1784f74c8ebb..6428b99868f2c 100644
--- a/pkgs/development/python-modules/httmock/default.nix
+++ b/pkgs/development/python-modules/httmock/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "httmock" ];
 
   meta = with lib; {
-    description = "A mocking library for requests";
+    description = "Mocking library for requests";
     homepage = "https://github.com/patrys/httmock";
     license = licenses.asl20;
     maintainers = with maintainers; [ nyanloutre ];
diff --git a/pkgs/development/python-modules/httpauth/default.nix b/pkgs/development/python-modules/httpauth/default.nix
index d984be30aa4b6..e99a7eaea0f5c 100644
--- a/pkgs/development/python-modules/httpauth/default.nix
+++ b/pkgs/development/python-modules/httpauth/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.3";
+  version = "0.4.1";
   format = "setuptools";
   pname = "httpauth";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0qas7876igyz978pgldp5r7n7pis8n4vf0v87gxr9l7p7if5lr3l";
+    sha256 = "sha256-C6rnFroAd5vOULBMwsLSyeSK5zPXOEgGHDSYt+Pm2dQ=";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/httpcore/default.nix b/pkgs/development/python-modules/httpcore/default.nix
index 2532df722a4aa..b1d64e6526be4 100644
--- a/pkgs/development/python-modules/httpcore/default.nix
+++ b/pkgs/development/python-modules/httpcore/default.nix
@@ -71,7 +71,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/encode/httpcore/blob/${version}/CHANGELOG.md";
-    description = "A minimal low-level HTTP client";
+    description = "Minimal low-level HTTP client";
     homepage = "https://github.com/encode/httpcore";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ris ];
diff --git a/pkgs/development/python-modules/httpie/default.nix b/pkgs/development/python-modules/httpie/default.nix
index 7fa008065a503..9802b960702f4 100644
--- a/pkgs/development/python-modules/httpie/default.nix
+++ b/pkgs/development/python-modules/httpie/default.nix
@@ -118,7 +118,7 @@ buildPythonPackage rec {
     ];
 
   meta = with lib; {
-    description = "A command line HTTP client whose goal is to make CLI human-friendly";
+    description = "Command line HTTP client whose goal is to make CLI human-friendly";
     homepage = "https://httpie.org/";
     changelog = "https://github.com/httpie/httpie/blob/${version}/CHANGELOG.md";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/httplib2/default.nix b/pkgs/development/python-modules/httplib2/default.nix
index edf6ef1d1a46f..303fccac56086 100644
--- a/pkgs/development/python-modules/httplib2/default.nix
+++ b/pkgs/development/python-modules/httplib2/default.nix
@@ -71,7 +71,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "httplib2" ];
 
   meta = with lib; {
-    description = "A comprehensive HTTP client library";
+    description = "Comprehensive HTTP client library";
     homepage = "https://github.com/httplib2/httplib2";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/pkgs/development/python-modules/httptools/default.nix b/pkgs/development/python-modules/httptools/default.nix
index d07ba18bdcccf..cc91c40429926 100644
--- a/pkgs/development/python-modules/httptools/default.nix
+++ b/pkgs/development/python-modules/httptools/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "httptools" ];
 
   meta = with lib; {
-    description = "A collection of framework independent HTTP protocol utils";
+    description = "Collection of framework independent HTTP protocol utils";
     homepage = "https://github.com/MagicStack/httptools";
     changelog = "https://github.com/MagicStack/httptools/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/httpx/default.nix b/pkgs/development/python-modules/httpx/default.nix
index d63e874be0062..4d4c264ea015e 100644
--- a/pkgs/development/python-modules/httpx/default.nix
+++ b/pkgs/development/python-modules/httpx/default.nix
@@ -108,7 +108,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/encode/httpx/blob/${src.rev}/CHANGELOG.md";
-    description = "The next generation HTTP client";
+    description = "Next generation HTTP client";
     mainProgram = "httpx";
     homepage = "https://github.com/encode/httpx";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/huey/default.nix b/pkgs/development/python-modules/huey/default.nix
index e67122d5f2b46..a17f2abbb970c 100644
--- a/pkgs/development/python-modules/huey/default.nix
+++ b/pkgs/development/python-modules/huey/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/coleifer/huey/blob/${src.rev}/CHANGELOG.md";
-    description = "A little task queue for python";
+    description = "Little task queue for python";
     homepage = "https://github.com/coleifer/huey";
     license = licenses.mit;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/hug/default.nix b/pkgs/development/python-modules/hug/default.nix
index 7540a8e749f23..2bd9cc3a20db3 100644
--- a/pkgs/development/python-modules/hug/default.nix
+++ b/pkgs/development/python-modules/hug/default.nix
@@ -57,7 +57,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python framework that makes developing APIs as simple as possible, but no simpler";
+    description = "Python framework that makes developing APIs as simple as possible, but no simpler";
     homepage = "https://github.com/hugapi/hug";
     license = licenses.mit;
     # Missing support for later falcon releases
diff --git a/pkgs/development/python-modules/huggingface-hub/default.nix b/pkgs/development/python-modules/huggingface-hub/default.nix
index c8a198c57bbae..0f09ffe98a4e3 100644
--- a/pkgs/development/python-modules/huggingface-hub/default.nix
+++ b/pkgs/development/python-modules/huggingface-hub/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "huggingface-hub";
-  version = "0.23.0";
+  version = "0.23.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "huggingface_hub";
     rev = "refs/tags/v${version}";
-    hash = "sha256-FfevPGec++3auA4Zxu84mhpD0RGatcPgDKi7LkmOVss=";
+    hash = "sha256-6UAuNKeltaclhnQ7J2X0EziGitROMKmOlIWGw87y66E=";
   };
 
   build-system = [ setuptools ];
@@ -44,12 +44,12 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "huggingface_hub" ];
 
-  meta = with lib; {
+  meta = {
     description = "Download and publish models and other files on the huggingface.co hub";
     mainProgram = "huggingface-cli";
     homepage = "https://github.com/huggingface/huggingface_hub";
     changelog = "https://github.com/huggingface/huggingface_hub/releases/tag/v${version}";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ GaetanLepage ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
   };
 }
diff --git a/pkgs/development/python-modules/humanfriendly/default.nix b/pkgs/development/python-modules/humanfriendly/default.nix
index 766fb13391597..8c217e3ac228b 100644
--- a/pkgs/development/python-modules/humanfriendly/default.nix
+++ b/pkgs/development/python-modules/humanfriendly/default.nix
@@ -2,18 +2,30 @@
   lib,
   buildPythonPackage,
   fetchPypi,
+  fetchpatch2,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "humanfriendly";
   version = "10.0";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc";
   };
 
+  patches = [
+    (fetchpatch2 {
+      # https://github.com/xolox/python-humanfriendly/pull/75
+      url = "https://github.com/musicinmybrain/python-humanfriendly/commit/13d05b8057010121acd2a402a337ef4ee5834062.patch";
+      hash = "sha256-m7cySiIx0gNhh6KKhT71DJFOtFu2Copk9ic2yaiCulk=";
+    })
+  ];
+
+  build-system = [ setuptools ];
+
   # humanfriendly tests depends on coloredlogs which itself depends on
   # humanfriendly. This lead to infinite recursion when trying to
   # build this package so we have to disable the test suite :(
diff --git a/pkgs/development/python-modules/hurry-filesize/default.nix b/pkgs/development/python-modules/hurry-filesize/default.nix
index fd33e6d9d2baf..e9eb079cf518b 100644
--- a/pkgs/development/python-modules/hurry-filesize/default.nix
+++ b/pkgs/development/python-modules/hurry-filesize/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "hurry.filesize" ];
 
   meta = with lib; {
-    description = "A simple Python library for human readable file sizes (or anything sized in bytes)";
+    description = "Simple Python library for human readable file sizes (or anything sized in bytes)";
     homepage = "https://pypi.org/project/hurry.filesize/";
     license = licenses.zpl21;
     maintainers = with maintainers; [ vizid ];
diff --git a/pkgs/development/python-modules/hvplot/default.nix b/pkgs/development/python-modules/hvplot/default.nix
index 9b0d0def53472..5a4881fefbf38 100644
--- a/pkgs/development/python-modules/hvplot/default.nix
+++ b/pkgs/development/python-modules/hvplot/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "hvplot.pandas" ];
 
   meta = with lib; {
-    description = "A high-level plotting API for the PyData ecosystem built on HoloViews";
+    description = "High-level plotting API for the PyData ecosystem built on HoloViews";
     homepage = "https://hvplot.pyviz.org";
     changelog = "https://github.com/holoviz/hvplot/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/hy/default.nix b/pkgs/development/python-modules/hy/default.nix
index 60f53c8b8a22c..8a8b29315f8e5 100644
--- a/pkgs/development/python-modules/hy/default.nix
+++ b/pkgs/development/python-modules/hy/default.nix
@@ -59,7 +59,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A LISP dialect embedded in Python";
+    description = "LISP dialect embedded in Python";
     homepage = "https://hylang.org/";
     changelog = "https://github.com/hylang/hy/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/hydra-core/default.nix b/pkgs/development/python-modules/hydra-core/default.nix
index c2b46a6c737da..ea72eddf47499 100644
--- a/pkgs/development/python-modules/hydra-core/default.nix
+++ b/pkgs/development/python-modules/hydra-core/default.nix
@@ -82,7 +82,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A framework for configuring complex applications";
+    description = "Framework for configuring complex applications";
     homepage = "https://hydra.cc";
     license = licenses.mit;
     maintainers = with maintainers; [ bcdarwin ];
diff --git a/pkgs/development/python-modules/hypercorn/default.nix b/pkgs/development/python-modules/hypercorn/default.nix
index 21e2f4f8d9498..2ac0cb8e381aa 100644
--- a/pkgs/development/python-modules/hypercorn/default.nix
+++ b/pkgs/development/python-modules/hypercorn/default.nix
@@ -57,7 +57,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/pgjones/hypercorn";
-    description = "The ASGI web server inspired by Gunicorn";
+    description = "ASGI web server inspired by Gunicorn";
     mainProgram = "hypercorn";
     license = licenses.mit;
     maintainers = with maintainers; [ dgliwka ];
diff --git a/pkgs/development/python-modules/hyperlink/default.nix b/pkgs/development/python-modules/hyperlink/default.nix
index cc060d6bbb4c9..579cfb065fa6c 100644
--- a/pkgs/development/python-modules/hyperlink/default.nix
+++ b/pkgs/development/python-modules/hyperlink/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ idna ] ++ lib.optionals isPy27 [ typing ];
 
   meta = with lib; {
-    description = "A featureful, correct URL for Python";
+    description = "Featureful, correct URL for Python";
     homepage = "https://github.com/python-hyper/hyperlink";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/development/python-modules/hyperscan/default.nix b/pkgs/development/python-modules/hyperscan/default.nix
index cfd771071d557..338ad67b966ad 100644
--- a/pkgs/development/python-modules/hyperscan/default.nix
+++ b/pkgs/development/python-modules/hyperscan/default.nix
@@ -45,7 +45,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A CPython extension for the Hyperscan regular expression matching library";
+    description = "CPython extension for the Hyperscan regular expression matching library";
     homepage = "https://github.com/darvid/python-hyperscan";
     changelog = "https://github.com/darvid/python-hyperscan/blob/${src.rev}/CHANGELOG.md";
     platforms = [
diff --git a/pkgs/development/python-modules/hypothesis/default.nix b/pkgs/development/python-modules/hypothesis/default.nix
index 8a00cae1e1a4a..a76b8e2ff29d3 100644
--- a/pkgs/development/python-modules/hypothesis/default.nix
+++ b/pkgs/development/python-modules/hypothesis/default.nix
@@ -23,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "hypothesis";
-  version = "6.100.1";
+  version = "6.103.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     owner = "HypothesisWorks";
     repo = "hypothesis";
     rev = "hypothesis-python-${version}";
-    hash = "sha256-3Mwa1nS6rvFBcU5QXLH4/wa38qCvDX9sRina1aJS1Rs=";
+    hash = "sha256-sll0GAI1nvBQvRqgpTkLpj7GQI988AftDQHV1zh2t1w=";
   };
 
   # I tried to package sphinx-selective-exclude, but it throws
@@ -73,16 +73,18 @@ buildPythonPackage rec {
   pytestFlagsArray = [ "tests/cover" ];
 
   disabledTests =
-    if (pythonOlder "3.10") then
-      [
-        # not sure why these tests fail with only 3.9
-        # FileNotFoundError: [Errno 2] No such file or directory: 'git'
-        "test_observability"
-        "test_assume_has_status_reason"
-        "test_observability_captures_stateful_reprs"
-      ]
-    else
-      null;
+    [
+      # racy, fails to find a file sometimes
+      "test_recreate_charmap"
+      "test_uses_cached_charmap"
+    ]
+    ++ lib.optionals (pythonOlder "3.10") [
+      # not sure why these tests fail with only 3.9
+      # FileNotFoundError: [Errno 2] No such file or directory: 'git'
+      "test_observability"
+      "test_assume_has_status_reason"
+      "test_observability_captures_stateful_reprs"
+    ];
 
   pythonImportsCheck = [ "hypothesis" ];
 
diff --git a/pkgs/development/python-modules/hyppo/default.nix b/pkgs/development/python-modules/hyppo/default.nix
index 896bbe640cc08..2d3f2563ad011 100644
--- a/pkgs/development/python-modules/hyppo/default.nix
+++ b/pkgs/development/python-modules/hyppo/default.nix
@@ -3,6 +3,7 @@
   buildPythonPackage,
   pythonOlder,
   fetchFromGitHub,
+  setuptools,
   pytestCheckHook,
   autograd,
   numba,
@@ -16,7 +17,7 @@
 buildPythonPackage rec {
   pname = "hyppo";
   version = "0.4.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
@@ -27,6 +28,14 @@ buildPythonPackage rec {
     hash = "sha256-QRE3oSxTEobTQ/7DzCAUOdjzIZmWUn9bgPmJWj6JuZg=";
   };
 
+  # some of the doctests (4/21) are broken, e.g. unbound variables, nondeterministic with insufficient tolerance, etc.
+  # (note upstream's .circleci/config.yml only tests test_*.py files despite their pytest.ini adding --doctest-modules)
+  postPatch = ''
+    substituteInPlace pytest.ini --replace-fail "addopts = --doctest-modules" ""
+  '';
+
+  build-system = [ setuptools ];
+
   propagatedBuildInputs = [
     autograd
     numba
@@ -40,15 +49,14 @@ buildPythonPackage rec {
     matplotlib
     seaborn
   ];
-  disabledTestPaths = [
-    "docs"
-    "benchmarks"
-    "examples"
+  pytestFlagsArray = [
+    "hyppo"
   ];
 
   meta = with lib; {
     homepage = "https://github.com/neurodata/hyppo";
     description = "Python package for multivariate hypothesis testing";
+    changelog = "https://github.com/neurodata/hyppo/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ bcdarwin ];
   };
diff --git a/pkgs/development/python-modules/i-pi/default.nix b/pkgs/development/python-modules/i-pi/default.nix
index d813098145c9f..03e1f5dd46139 100644
--- a/pkgs/development/python-modules/i-pi/default.nix
+++ b/pkgs/development/python-modules/i-pi/default.nix
@@ -41,7 +41,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A universal force engine for ab initio and force field driven (path integral) molecular dynamics";
+    description = "Universal force engine for ab initio and force field driven (path integral) molecular dynamics";
     license = with licenses; [
       gpl3Only
       mit
diff --git a/pkgs/development/python-modules/i2csense/default.nix b/pkgs/development/python-modules/i2csense/default.nix
index 42616579d5385..2aa74cedb2f8e 100644
--- a/pkgs/development/python-modules/i2csense/default.nix
+++ b/pkgs/development/python-modules/i2csense/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A library to handle i2c sensors with the Raspberry Pi";
+    description = "Library to handle i2c sensors with the Raspberry Pi";
     mainProgram = "i2csense";
     homepage = "https://github.com/azogue/i2csense";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/i3ipc/default.nix b/pkgs/development/python-modules/i3ipc/default.nix
index 5b0942ee615b9..05495e0ab2298 100644
--- a/pkgs/development/python-modules/i3ipc/default.nix
+++ b/pkgs/development/python-modules/i3ipc/default.nix
@@ -46,7 +46,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "An improved Python library to control i3wm and sway";
+    description = "Improved Python library to control i3wm and sway";
     homepage = "https://github.com/acrisci/i3ipc-python";
     license = licenses.bsd3;
     maintainers = with maintainers; [ vanzef ];
diff --git a/pkgs/development/python-modules/ibis-framework/default.nix b/pkgs/development/python-modules/ibis-framework/default.nix
index 596bba56f0ae4..abaabb11f1bb1 100644
--- a/pkgs/development/python-modules/ibis-framework/default.nix
+++ b/pkgs/development/python-modules/ibis-framework/default.nix
@@ -12,9 +12,7 @@
   datafusion,
   db-dtypes,
   duckdb,
-  duckdb-engine,
   filelock,
-  geoalchemy2,
   geopandas,
   google-cloud-bigquery,
   google-cloud-bigquery-storage,
@@ -51,9 +49,6 @@
   rich,
   shapely,
   snowflake-connector-python,
-  snowflake-sqlalchemy,
-  sqlalchemy,
-  sqlalchemy-views,
   sqlglot,
   sqlite,
   toolz,
@@ -72,25 +67,25 @@ let
     name = "ibis-testing-data";
     owner = "ibis-project";
     repo = "testing-data";
-    # https://github.com/ibis-project/ibis/blob/9.0.0/nix/overlay.nix#L20-L26
-    rev = "1922bd4617546b877e66e78bb2b87abeb510cf8e";
-    hash = "sha256-l5d7r/6Voy6N2pXq3IivLX3N0tNfKKwsbZXRexzc8Z8=";
+    # https://github.com/ibis-project/ibis/blob/9.1.0/nix/overlay.nix#L20-L26
+    rev = "6737d1cb5951cabaccd095a3ae62a93dbd11ecb9";
+    hash = "sha256-MoVTZPWh4KVlrICYACrgfeLdl/fqoa1iweNg3zUtdrs=";
   };
 in
 
 buildPythonPackage rec {
   pname = "ibis-framework";
-  version = "9.0.0";
+  version = "9.1.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.9";
+  disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     name = "ibis-source";
     repo = "ibis";
     owner = "ibis-project";
     rev = "refs/tags/${version}";
-    hash = "sha256-ebTYCBL1zm2Rmwg998x2kYvKhyQDk8Di1pcx5lR37xo=";
+    hash = "sha256-GmzmXzYMs7K7B//is3ZoD4muPAkb0tM56zFBbsA+NEo=";
   };
 
   nativeBuildInputs = [
@@ -98,7 +93,8 @@ buildPythonPackage rec {
     poetry-dynamic-versioning
   ];
 
-  POETRY_DYNAMIC_VERSIONING_BYPASS = version;
+  dontBypassPoetryDynamicVersioning = true;
+  env.POETRY_DYNAMIC_VERSIONING_BYPASS = lib.head (lib.strings.splitString "-" version);
 
   propagatedBuildInputs = [
     atpublic
@@ -138,28 +134,16 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    # breakage from sqlalchemy2 truediv changes
-    "test_tpc_h17"
     # tries to download duckdb extensions
     "test_attach_sqlite"
     "test_connect_extensions"
     "test_load_extension"
     "test_read_sqlite"
     "test_register_sqlite"
-    # duckdb does not respect sample_size=2 (reads 3 lines of csv).
-    "test_csv_reregister_schema"
-    # duckdb fails with:
-    # "This function can not be called with an active transaction!, commit or abort the existing one first"
-    "test_vectorized_udf"
+    # requires network connection
     "test_s3_403_fallback"
-    "test_map_merge_udf"
-    "test_udf"
-    "test_map_udf"
-    # DataFusion error
-    "datafusion"
-    # pluggy.PluggyTeardownRaisedWarning
-    "test_repr_png_is_not_none_in_not_interactive"
-    "test_interval_arithmetic"
+    # requires pytest 8.2+
+    "test_roundtrip_delta"
   ];
 
   # patch out tests that check formatting with black
@@ -191,78 +175,42 @@ buildPythonPackage rec {
         google-cloud-bigquery-storage
         pydata-google-auth
       ];
-      clickhouse = [
-        clickhouse-connect
-        sqlalchemy
-      ];
+      clickhouse = [ clickhouse-connect ];
       dask = [
         dask
         regex
+        packaging
       ];
       datafusion = [ datafusion ];
-      druid = [
-        pydruid
-        sqlalchemy
-      ];
-      duckdb = [
-        duckdb
-        duckdb-engine
-        sqlalchemy
-        sqlalchemy-views
-      ];
+      druid = [ pydruid ];
+      duckdb = [ duckdb ];
       flink = [ ];
       geospatial = [
-        geoalchemy2
         geopandas
         shapely
       ];
-      mssql = [
-        sqlalchemy
-        pyodbc
-        sqlalchemy-views
-      ];
-      mysql = [
-        sqlalchemy
-        pymysql
-        sqlalchemy-views
-      ];
+      mssql = [ pyodbc ];
+      mysql = [ pymysql ];
       oracle = [
-        sqlalchemy
         oracledb
         packaging
-        sqlalchemy-views
       ];
-      pandas = [ regex ];
+      pandas = [
+        regex
+        packaging
+      ];
       polars = [
         polars
         packaging
       ];
-      postgres = [
-        psycopg2
-        sqlalchemy
-        sqlalchemy-views
-      ];
+      postgres = [ psycopg2 ];
       pyspark = [
         pyspark
-        sqlalchemy
-        packaging
-      ];
-      snowflake = [
-        snowflake-connector-python
-        snowflake-sqlalchemy
-        sqlalchemy-views
         packaging
       ];
-      sqlite = [
-        regex
-        sqlalchemy
-        sqlalchemy-views
-      ];
-      trino = [
-        trino-python-client
-        sqlalchemy
-        sqlalchemy-views
-      ];
+      snowflake = [ snowflake-connector-python ];
+      sqlite = [ regex ];
+      trino = [ trino-python-client ];
       visualization = [ graphviz ];
       decompiler = [ black ];
       examples = [ pins ] ++ pins.optional-dependencies.gcs;
diff --git a/pkgs/development/python-modules/icalendar/default.nix b/pkgs/development/python-modules/icalendar/default.nix
index 2723cd3b4e839..9a3043affca1b 100644
--- a/pkgs/development/python-modules/icalendar/default.nix
+++ b/pkgs/development/python-modules/icalendar/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/collective/icalendar/blob/v${version}/CHANGES.rst";
-    description = "A parser/generator of iCalendar files";
+    description = "Parser/generator of iCalendar files";
     mainProgram = "icalendar";
     homepage = "https://github.com/collective/icalendar";
     license = licenses.bsd2;
diff --git a/pkgs/development/python-modules/icecream/default.nix b/pkgs/development/python-modules/icecream/default.nix
index 25ea5cf741775..c93fe2f7042d1 100644
--- a/pkgs/development/python-modules/icecream/default.nix
+++ b/pkgs/development/python-modules/icecream/default.nix
@@ -50,7 +50,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A little library for sweet and creamy print debugging";
+    description = "Little library for sweet and creamy print debugging";
     homepage = "https://github.com/gruns/icecream";
     license = licenses.mit;
     maintainers = with maintainers; [ renatoGarcia ];
diff --git a/pkgs/development/python-modules/ics/default.nix b/pkgs/development/python-modules/ics/default.nix
index c347b177587cd..2f973a6dc9812 100644
--- a/pkgs/development/python-modules/ics/default.nix
+++ b/pkgs/development/python-modules/ics/default.nix
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   version = "0.7.2";
   pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "ics-py";
@@ -25,9 +25,14 @@ buildPythonPackage rec {
     hash = "sha256-hdtnET7YfSb85+TGwpwzoxOfxPT7VSj9eKSiV6AXUS8=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace-fail "--pep8" ""
+  '';
+
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     attrs
     arrow
     tatsu
@@ -38,18 +43,13 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  postPatch = ''
-    # 0.8 will move to python-dateutil
-    substituteInPlace requirements.txt \
-      --replace "arrow>=0.11,<0.15" "arrow"
-    substituteInPlace setup.cfg --replace "--pep8" ""
-  '';
-
   disabledTests = [
     # Failure seems to be related to arrow > 1.0
     "test_event"
     # Broke with TatSu 5.7:
     "test_many_lines"
+    # AssertionError: 'Europe/Berlin' not found in "tzfile('Atlantic/Jan_Mayen')"
+    "test_timezone_not_dropped"
   ];
 
   pythonImportsCheck = [ "ics" ];
diff --git a/pkgs/development/python-modules/id/default.nix b/pkgs/development/python-modules/id/default.nix
index 2845f47ebc5f6..7ca8930f4fc46 100644
--- a/pkgs/development/python-modules/id/default.nix
+++ b/pkgs/development/python-modules/id/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "id" ];
 
   meta = with lib; {
-    description = "A tool for generating OIDC identities";
+    description = "Tool for generating OIDC identities";
     homepage = "https://github.com/di/id";
     changelog = "https://github.com/di/id/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/image-go-nord/default.nix b/pkgs/development/python-modules/image-go-nord/default.nix
index 55e07f3c96a1e..926d26aa2c26d 100644
--- a/pkgs/development/python-modules/image-go-nord/default.nix
+++ b/pkgs/development/python-modules/image-go-nord/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A tool that can convert rgb images to nordtheme palette";
+    description = "Tool that can convert rgb images to nordtheme palette";
     homepage = "https://github.com/Schrodinger-Hat/ImageGoNord-pip";
     license = licenses.mit;
     maintainers = with maintainers; [ kranzes ];
diff --git a/pkgs/development/python-modules/imagehash/default.nix b/pkgs/development/python-modules/imagehash/default.nix
index 069398ec9aec1..782aab2360d45 100644
--- a/pkgs/development/python-modules/imagehash/default.nix
+++ b/pkgs/development/python-modules/imagehash/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A Python Perceptual Image Hashing Module";
+    description = "Python Perceptual Image Hashing Module";
     mainProgram = "find_similar_images.py";
     homepage = "https://github.com/JohannesBuchner/imagehash";
     license = licenses.bsd2;
diff --git a/pkgs/development/python-modules/imaplib2/default.nix b/pkgs/development/python-modules/imaplib2/default.nix
index abb1d171cd6ca..5df25d7ca5ee0 100644
--- a/pkgs/development/python-modules/imaplib2/default.nix
+++ b/pkgs/development/python-modules/imaplib2/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "imaplib2" ];
 
   meta = with lib; {
-    description = "A threaded Python IMAP4 client";
+    description = "Threaded Python IMAP4 client";
     homepage = "https://github.com/jazzband/imaplib2";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/imbalanced-learn/default.nix b/pkgs/development/python-modules/imbalanced-learn/default.nix
index 2f3c8cf3b72a9..ee070a516981c 100644
--- a/pkgs/development/python-modules/imbalanced-learn/default.nix
+++ b/pkgs/development/python-modules/imbalanced-learn/default.nix
@@ -18,14 +18,14 @@
 
 buildPythonPackage rec {
   pname = "imbalanced-learn";
-  version = "0.12.2";
+  version = "0.12.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-qAxWztywcSTyZr5i06XSq1tXeZCac0P98bmTR5Zi9sE=";
+    hash = "sha256-WwB5agFBnpECvUJeJ8MZ1Y0fbPLfp1HgLtf07fZ8PBs=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/imia/default.nix b/pkgs/development/python-modules/imia/default.nix
index dbbc60a2088ae..1caa1f607f422 100644
--- a/pkgs/development/python-modules/imia/default.nix
+++ b/pkgs/development/python-modules/imia/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "imia" ];
 
   meta = with lib; {
-    description = "An authentication library for Starlette and FastAPI";
+    description = "Authentication library for Starlette and FastAPI";
     changelog = "https://github.com/alex-oleshkevich/imia/releases/tag/v${version}";
     homepage = "https://github.com/alex-oleshkevich/imia";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/iminuit/default.nix b/pkgs/development/python-modules/iminuit/default.nix
index cc999468fdd98..0cd1fdf91d0c3 100644
--- a/pkgs/development/python-modules/iminuit/default.nix
+++ b/pkgs/development/python-modules/iminuit/default.nix
@@ -21,14 +21,14 @@
 
 buildPythonPackage rec {
   pname = "iminuit";
-  version = "2.25.2";
+  version = "2.26.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-O/ihuWhlpgzt8pE19P6uCfp8ZiN9KfaN7WTpeoI6mz4=";
+    hash = "sha256-pRIz+/HC4AiqWE+e6mW2ww7VZiTk3qXU5TNwzNhMm04=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/immutabledict/default.nix b/pkgs/development/python-modules/immutabledict/default.nix
index d3dbedd3500bd..47e062ab35d67 100644
--- a/pkgs/development/python-modules/immutabledict/default.nix
+++ b/pkgs/development/python-modules/immutabledict/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A fork of frozendict, an immutable wrapper around dictionaries";
+    description = "Fork of frozendict, an immutable wrapper around dictionaries";
     homepage = "https://github.com/corenting/immutabledict";
     changelog = "https://github.com/corenting/immutabledict/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/immutables/default.nix b/pkgs/development/python-modules/immutables/default.nix
index 2c4abfb4b199f..8ea8d2a890201 100644
--- a/pkgs/development/python-modules/immutables/default.nix
+++ b/pkgs/development/python-modules/immutables/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "immutables" ];
 
   meta = with lib; {
-    description = "An immutable mapping type";
+    description = "Immutable mapping type";
     homepage = "https://github.com/MagicStack/immutables";
     changelog = "https://github.com/MagicStack/immutables/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
diff --git a/pkgs/development/python-modules/import-expression/default.nix b/pkgs/development/python-modules/import-expression/default.nix
index 4dc6d053154d3..3407aa277152c 100644
--- a/pkgs/development/python-modules/import-expression/default.nix
+++ b/pkgs/development/python-modules/import-expression/default.nix
@@ -1,7 +1,7 @@
 {
   lib,
   buildPythonPackage,
-  fetchFromGitHub,
+  fetchPypi,
   fetchpatch,
   pytestCheckHook,
   astunparse,
@@ -9,25 +9,17 @@
 }:
 buildPythonPackage rec {
   pname = "import-expression";
-  version = "1.1.4";
+  version = "1.1.5";
   pyproject = true;
 
-  src = fetchFromGitHub {
-    owner = "ioistired";
-    repo = "import-expression-parser";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-mll2NePB7fthzltLOk6D9BgaDpH6GaW4psqcGun/0qM=";
+  src = fetchPypi {
+    inherit version;
+    pname = "import_expression";
+    hash = "sha256-mVlYj8/I3LFEoHJRds/vbCjH2x/C1oNiUCXmh1FtQME=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/ioistired/import-expression-parser/commit/3daf968c3163b64685aa529740e132f0df5ab262.patch";
-      hash = "sha256-2Ubv3onor2D26udZbDDMb3iNLopEIRnIcO/X6WUVmJU=";
-    })
-  ];
-
-  nativeBuildInputs = [ setuptools ];
-  propagatedBuildInputs = [ astunparse ];
+  build-system = [ setuptools ];
+  dependencies = [ astunparse ];
   nativeCheckInputs = [ pytestCheckHook ];
   pytestFlagsArray = [ "tests.py" ];
 
diff --git a/pkgs/development/python-modules/importlab/default.nix b/pkgs/development/python-modules/importlab/default.nix
index 289aef8e505b9..72afded7d0c01 100644
--- a/pkgs/development/python-modules/importlab/default.nix
+++ b/pkgs/development/python-modules/importlab/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "importlab" ];
 
   meta = with lib; {
-    description = "A library that automatically infers dependencies for Python files";
+    description = "Library that automatically infers dependencies for Python files";
     mainProgram = "importlab";
     homepage = "https://github.com/google/importlab";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/imutils/default.nix b/pkgs/development/python-modules/imutils/default.nix
index e0ae10dbc16d5..03a1dd03a4262 100644
--- a/pkgs/development/python-modules/imutils/default.nix
+++ b/pkgs/development/python-modules/imutils/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/jrosebr1/imutils";
-    description = "A series of convenience functions to make basic image processing functions";
+    description = "Series of convenience functions to make basic image processing functions";
     mainProgram = "range-detector";
     license = licenses.mit;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/incomfort-client/default.nix b/pkgs/development/python-modules/incomfort-client/default.nix
index d0db1936ba06c..86f59510ba260 100644
--- a/pkgs/development/python-modules/incomfort-client/default.nix
+++ b/pkgs/development/python-modules/incomfort-client/default.nix
@@ -7,29 +7,31 @@
   pytest-asyncio,
   pytestCheckHook,
   pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "incomfort-client";
-  version = "0.5.0";
-  format = "setuptools";
+  version = "0.6.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "zxdavb";
-    repo = pname;
-    rev = "refs/tags/${version}";
-    hash = "sha256-kdPue3IfF85O+0dgvX+dN6S4WoQmjxdCfwfv83SnO8E=";
+    repo = "incomfort-client";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-2hTH0haG8ja0Hgomj7kbbHUij9w3jbhHeKeMCtsgeEE=";
   };
 
-  propagatedBuildInputs = [ aiohttp ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [ pytestCheckHook ];
+  dependencies = [ aiohttp ];
 
-  checkInputs = [
+  nativeCheckInputs = [
     aioresponses
     pytest-asyncio
+    pytestCheckHook
   ];
 
   pythonImportsCheck = [ "incomfortclient" ];
@@ -37,6 +39,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python module to poll Intergas boilers via a Lan2RF gateway";
     homepage = "https://github.com/zxdavb/incomfort-client";
+    changelog = "https://github.com/jbouwh/incomfort-client/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/inequality/default.nix b/pkgs/development/python-modules/inequality/default.nix
new file mode 100644
index 0000000000000..3e01771193099
--- /dev/null
+++ b/pkgs/development/python-modules/inequality/default.nix
@@ -0,0 +1,45 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  libpysal,
+  numpy,
+  scipy,
+  setuptools-scm,
+}:
+
+buildPythonPackage rec {
+  pname = "inequality";
+  version = "1.0.1";
+  pyproject = true;
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "pysal";
+    repo = "inequality";
+    rev = "v${version}";
+    hash = "sha256-dy1/KXnmIh5LnTxuyYfIvtt1p2CIpNQ970o5pTg6diQ=";
+  };
+
+  build-system = [ setuptools-scm ];
+
+  propagatedBuildInputs = [
+    libpysal
+    numpy
+    scipy
+  ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "inequality" ];
+
+  meta = {
+    description = "Spatial inequality analysis";
+    homepage = "https://github.com/pysal/inequality";
+    license = lib.licenses.bsd3;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/infinity/default.nix b/pkgs/development/python-modules/infinity/default.nix
index d86f1545d90b4..a2f24331a697c 100644
--- a/pkgs/development/python-modules/infinity/default.nix
+++ b/pkgs/development/python-modules/infinity/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "All-in-one infinity value for Python. Can be compared to any object.";
+    description = "All-in-one infinity value for Python. Can be compared to any object";
     homepage = "https://github.com/kvesteri/infinity";
     license = licenses.bsd3;
     maintainers = with maintainers; [ mupdt ];
diff --git a/pkgs/development/python-modules/inflection/default.nix b/pkgs/development/python-modules/inflection/default.nix
index 2b94703cee05a..effa0f2cd4e21 100644
--- a/pkgs/development/python-modules/inflection/default.nix
+++ b/pkgs/development/python-modules/inflection/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/jpvanhal/inflection";
-    description = "A port of Ruby on Rails inflector to Python";
+    description = "Port of Ruby on Rails inflector to Python";
     maintainers = with lib.maintainers; [
       NikolaMandic
       ilya-kolpakov
diff --git a/pkgs/development/python-modules/inifile/default.nix b/pkgs/development/python-modules/inifile/default.nix
index bc84917506495..b3ade47dcaf7b 100644
--- a/pkgs/development/python-modules/inifile/default.nix
+++ b/pkgs/development/python-modules/inifile/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A small INI library for Python";
+    description = "Small INI library for Python";
     homepage = "https://github.com/mitsuhiko/python-inifile";
     license = licenses.bsd0;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/inkex/default.nix b/pkgs/development/python-modules/inkex/default.nix
index 58602e0d415e7..15aaddd0069b8 100644
--- a/pkgs/development/python-modules/inkex/default.nix
+++ b/pkgs/development/python-modules/inkex/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   inkscape,
-  fetchFromGitLab,
   poetry-core,
   cssselect,
   lxml,
diff --git a/pkgs/development/python-modules/inline-snapshot/default.nix b/pkgs/development/python-modules/inline-snapshot/default.nix
new file mode 100644
index 0000000000000..37e3657815732
--- /dev/null
+++ b/pkgs/development/python-modules/inline-snapshot/default.nix
@@ -0,0 +1,73 @@
+{
+  lib,
+  asttokens,
+  black,
+  buildPythonPackage,
+  click,
+  dirty-equals,
+  executing,
+  fetchFromGitHub,
+  hypothesis,
+  poetry-core,
+  pyright,
+  pytest-subtests,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  rich,
+  time-machine,
+  toml,
+  types-toml,
+}:
+
+buildPythonPackage rec {
+  pname = "inline-snapshot";
+  version = "0.10.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "15r10nk";
+    repo = "inline-snapshot";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-19rvhqYkM3QiD0La5TRi/2uKza8HW/bnXeGAhOZ/bgs=";
+  };
+
+  build-system = [ poetry-core ];
+
+  dependencies = [
+    asttokens
+    black
+    click
+    executing
+    rich
+    toml
+    types-toml
+  ];
+
+  nativeCheckInputs = [
+    dirty-equals
+    hypothesis
+    pyright
+    pytest-subtests
+    pytest-xdist
+    pytestCheckHook
+    time-machine
+  ];
+
+  pythonImportsCheck = [ "inline_snapshot" ];
+
+  disabledTestPaths = [
+    # Tests don't play nice with pytest-xdist
+    "tests/test_typing.py"
+  ];
+
+  meta = with lib; {
+    description = "Create and update inline snapshots in Python tests";
+    homepage = "https://github.com/15r10nk/inline-snapshot/";
+    changelog = "https://github.com/15r10nk/inline-snapshot/blob/${version}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/inlinestyler/default.nix b/pkgs/development/python-modules/inlinestyler/default.nix
index 1d27acdfea0aa..3228d0f5b4554 100644
--- a/pkgs/development/python-modules/inlinestyler/default.nix
+++ b/pkgs/development/python-modules/inlinestyler/default.nix
@@ -53,7 +53,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A simple CSS inliner for generating HTML email messages";
+    description = "Simple CSS inliner for generating HTML email messages";
     homepage = "https://github.com/dlanger/inlinestyler";
     changelog = "https://github.com/dlanger/inlinestyler/blob/${src.rev}/CHANGELOG";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/inotify-simple/default.nix b/pkgs/development/python-modules/inotify-simple/default.nix
index 0b41c76d141b1..e5f523ffeb9ae 100644
--- a/pkgs/development/python-modules/inotify-simple/default.nix
+++ b/pkgs/development/python-modules/inotify-simple/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "inotify_simple" ];
 
   meta = with lib; {
-    description = "A simple Python wrapper around inotify";
+    description = "Simple Python wrapper around inotify";
     homepage = "https://github.com/chrisjbillington/inotify_simple";
     license = licenses.bsd2;
     maintainers = with maintainers; [ erikarvstedt ];
diff --git a/pkgs/development/python-modules/inquirer/default.nix b/pkgs/development/python-modules/inquirer/default.nix
index 5daa97ee5f403..15e24ce15769f 100644
--- a/pkgs/development/python-modules/inquirer/default.nix
+++ b/pkgs/development/python-modules/inquirer/default.nix
@@ -49,7 +49,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "inquirer" ];
 
   meta = with lib; {
-    description = "A collection of common interactive command line user interfaces, based on Inquirer.js";
+    description = "Collection of common interactive command line user interfaces, based on Inquirer.js";
     homepage = "https://github.com/magmax/python-inquirer";
     changelog = "https://github.com/magmax/python-inquirer/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/insegel/default.nix b/pkgs/development/python-modules/insegel/default.nix
index 774c06ffd590c..57f87a5a7b074 100644
--- a/pkgs/development/python-modules/insegel/default.nix
+++ b/pkgs/development/python-modules/insegel/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/autophagy/insegel";
-    description = "A monochrome 2 column Sphinx theme";
+    description = "Monochrome 2 column Sphinx theme";
     license = licenses.mit;
     maintainers = with maintainers; [ autophagy ];
   };
diff --git a/pkgs/development/python-modules/insightface/default.nix b/pkgs/development/python-modules/insightface/default.nix
index 1403f094807ab..1199e09eae0d9 100644
--- a/pkgs/development/python-modules/insightface/default.nix
+++ b/pkgs/development/python-modules/insightface/default.nix
@@ -19,12 +19,13 @@
   tensorboard,
   testers,
   tqdm,
+  stdenv,
 }:
 
 buildPythonPackage rec {
   pname = "insightface";
   version = "0.7.3";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -33,9 +34,9 @@ buildPythonPackage rec {
     hash = "sha256-8ZH3GWEuuzcBj0GTaBRQBUTND4bm/NZ2wCPzVMZo3fc=";
   };
 
-  nativeBuildInputs = [ cython ];
+  build-system = [ cython ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     easydict
     matplotlib
     mxnet
@@ -67,11 +68,13 @@ buildPythonPackage rec {
 
   doCheck = false; # Upstream has no tests
 
-  meta = with lib; {
+  meta = {
     description = "State-of-the-art 2D and 3D Face Analysis Project";
     mainProgram = "insightface-cli";
     homepage = "https://github.com/deepinsight/insightface";
-    license = licenses.mit;
-    maintainers = with maintainers; [ oddlama ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ oddlama ];
+    # terminate called after throwing an instance of 'onnxruntime::OnnxRuntimeException'
+    broken = stdenv.system == "aarch64-linux";
   };
 }
diff --git a/pkgs/development/python-modules/installer/default.nix b/pkgs/development/python-modules/installer/default.nix
index 83a23d963a96a..64e9a3191a674 100644
--- a/pkgs/development/python-modules/installer/default.nix
+++ b/pkgs/development/python-modules/installer/default.nix
@@ -51,7 +51,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A low-level library for installing a Python package from a wheel distribution";
+    description = "Low-level library for installing a Python package from a wheel distribution";
     homepage = "https://github.com/pypa/installer";
     changelog = "https://github.com/pypa/installer/blob/${src.rev}/docs/changelog.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix b/pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix
index 29420769833ed..946e807c44c45 100644
--- a/pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix
+++ b/pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   buildPythonPackage,
-  fetchpatch,
   fetchPypi,
   pythonOlder,
   setuptools,
@@ -28,7 +27,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/pyinsteon/insteon-panel/releases/tag/${version}";
-    description = "The Insteon frontend for Home Assistant";
+    description = "Insteon frontend for Home Assistant";
     homepage = "https://github.com/pyinsteon/insteon-panel";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/intake-parquet/default.nix b/pkgs/development/python-modules/intake-parquet/default.nix
index a1b241f92ce4d..fe6fa3b2a656d 100644
--- a/pkgs/development/python-modules/intake-parquet/default.nix
+++ b/pkgs/development/python-modules/intake-parquet/default.nix
@@ -1,13 +1,14 @@
 {
   lib,
   buildPythonPackage,
-  fetchFromGitHub,
-  pandas,
   dask,
   fastparquet,
+  fetchFromGitHub,
+  pandas,
   pyarrow,
-  setuptools,
   pythonOlder,
+  setuptools,
+  versioneer,
 }:
 
 buildPythonPackage rec {
@@ -28,11 +29,17 @@ buildPythonPackage rec {
     # Break circular dependency
     substituteInPlace requirements.txt \
       --replace-fail "intake" ""
+
+    # Remove vendorized versioneer.py
+    rm versioneer.py
   '';
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [
+    setuptools
+    versioneer
+  ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     pandas
     dask
     fastparquet
diff --git a/pkgs/development/python-modules/interegular/default.nix b/pkgs/development/python-modules/interegular/default.nix
index 6a005fd87ca41..5e61db9b2b912 100644
--- a/pkgs/development/python-modules/interegular/default.nix
+++ b/pkgs/development/python-modules/interegular/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "interegular" ];
 
   meta = with lib; {
-    description = "A library to check a subset of python regexes for intersections";
+    description = "Library to check a subset of python regexes for intersections";
     homepage = "https://github.com/MegaIng/interegular";
     license = licenses.mit;
     maintainers = with maintainers; [ lach ];
diff --git a/pkgs/development/python-modules/internetarchive/default.nix b/pkgs/development/python-modules/internetarchive/default.nix
index ec98b859147b9..f6f93c25a7732 100644
--- a/pkgs/development/python-modules/internetarchive/default.nix
+++ b/pkgs/development/python-modules/internetarchive/default.nix
@@ -64,7 +64,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "internetarchive" ];
 
   meta = with lib; {
-    description = "A Python and Command-Line Interface to Archive.org";
+    description = "Python and Command-Line Interface to Archive.org";
     homepage = "https://github.com/jjjake/internetarchive";
     changelog = "https://github.com/jjjake/internetarchive/blob/v${version}/HISTORY.rst";
     license = licenses.agpl3Plus;
diff --git a/pkgs/development/python-modules/interruptingcow/default.nix b/pkgs/development/python-modules/interruptingcow/default.nix
index a42b7bbc8917a..300b39b2d8021 100644
--- a/pkgs/development/python-modules/interruptingcow/default.nix
+++ b/pkgs/development/python-modules/interruptingcow/default.nix
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A watchdog that interrupts long running code";
+    description = "Watchdog that interrupts long running code";
     homepage = "https://bitbucket.org/evzijst/interruptingcow";
     license = licenses.mit;
     maintainers = with maintainers; [ benley ];
diff --git a/pkgs/development/python-modules/into-dbus-python/default.nix b/pkgs/development/python-modules/into-dbus-python/default.nix
index 4644453741e7e..004138c13bdb5 100644
--- a/pkgs/development/python-modules/into-dbus-python/default.nix
+++ b/pkgs/development/python-modules/into-dbus-python/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "into_dbus_python" ];
 
   meta = with lib; {
-    description = "A transformer to dbus-python types";
+    description = "Transformer to dbus-python types";
     homepage = "https://github.com/stratis-storage/into-dbus-python";
     license = licenses.asl20;
     maintainers = with maintainers; [ nickcao ];
diff --git a/pkgs/development/python-modules/invisible-watermark/default.nix b/pkgs/development/python-modules/invisible-watermark/default.nix
index 73f958a2503ac..968669ec92bcc 100644
--- a/pkgs/development/python-modules/invisible-watermark/default.nix
+++ b/pkgs/development/python-modules/invisible-watermark/default.nix
@@ -94,7 +94,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "imwatermark" ];
 
   meta = with lib; {
-    description = "A library for creating and decoding invisible image watermarks";
+    description = "Library for creating and decoding invisible image watermarks";
     mainProgram = "invisible-watermark";
     homepage = "https://github.com/ShieldMnt/invisible-watermark";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/iocapture/default.nix b/pkgs/development/python-modules/iocapture/default.nix
index 3263f2ef48918..a36a01eeeead9 100644
--- a/pkgs/development/python-modules/iocapture/default.nix
+++ b/pkgs/development/python-modules/iocapture/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "Capture stdout, stderr easily.";
+    description = "Capture stdout, stderr easily";
     homepage = "https://github.com/oinume/iocapture";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/ionhash/default.nix b/pkgs/development/python-modules/ionhash/default.nix
index 5ccb6a6529049..8d99e24101f35 100644
--- a/pkgs/development/python-modules/ionhash/default.nix
+++ b/pkgs/development/python-modules/ionhash/default.nix
@@ -46,5 +46,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/amzn/ion-hash-python";
     license = licenses.asl20;
     maintainers = [ maintainers.terlar ];
+    broken = true; # last successful build 2023-09-28
   };
 }
diff --git a/pkgs/development/python-modules/iopath/default.nix b/pkgs/development/python-modules/iopath/default.nix
index a5f6d75c9e930..ace7c4f03f09a 100644
--- a/pkgs/development/python-modules/iopath/default.nix
+++ b/pkgs/development/python-modules/iopath/default.nix
@@ -58,7 +58,7 @@ buildPythonPackage {
   };
 
   meta = with lib; {
-    description = "A python library that provides common I/O interface across different storage backends.";
+    description = "Python library that provides common I/O interface across different storage backends";
     homepage = "https://github.com/facebookresearch/iopath";
     changelog = "https://github.com/facebookresearch/iopath/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/ipfshttpclient/default.nix b/pkgs/development/python-modules/ipfshttpclient/default.nix
index 649e3d9b77760..e441273721725 100644
--- a/pkgs/development/python-modules/ipfshttpclient/default.nix
+++ b/pkgs/development/python-modules/ipfshttpclient/default.nix
@@ -88,7 +88,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ipfshttpclient" ];
 
   meta = with lib; {
-    description = "A python client library for the IPFS API";
+    description = "Python client library for the IPFS API";
     homepage = "https://github.com/ipfs-shipyard/py-ipfs-http-client";
     license = licenses.mit;
     maintainers = with maintainers; [
diff --git a/pkgs/development/python-modules/ipython-sql/default.nix b/pkgs/development/python-modules/ipython-sql/default.nix
index 9cdd6bc95a045..a65eac31eb3c4 100644
--- a/pkgs/development/python-modules/ipython-sql/default.nix
+++ b/pkgs/development/python-modules/ipython-sql/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sql" ];
 
   meta = with lib; {
-    description = "Introduces a %sql (or %%sql) magic.";
+    description = "Introduces a %sql (or %%sql) magic";
     homepage = "https://github.com/catherinedevlin/ipython-sql";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
diff --git a/pkgs/development/python-modules/ipyvuetify/default.nix b/pkgs/development/python-modules/ipyvuetify/default.nix
index a3d1e02ae8a44..63e3d23c433a4 100644
--- a/pkgs/development/python-modules/ipyvuetify/default.nix
+++ b/pkgs/development/python-modules/ipyvuetify/default.nix
@@ -47,7 +47,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ipyvuetify" ];
 
   meta = with lib; {
-    description = "Jupyter widgets based on Vuetify UI Components.";
+    description = "Jupyter widgets based on Vuetify UI Components";
     homepage = "https://github.com/mariobuikhuizen/ipyvuetify";
     license = licenses.mit;
     maintainers = with maintainers; [ drewrisinger ];
diff --git a/pkgs/development/python-modules/ipywidgets/default.nix b/pkgs/development/python-modules/ipywidgets/default.nix
index 493e32789a49d..8c985163653b0 100644
--- a/pkgs/development/python-modules/ipywidgets/default.nix
+++ b/pkgs/development/python-modules/ipywidgets/default.nix
@@ -17,12 +17,12 @@
 
 buildPythonPackage rec {
   pname = "ipywidgets";
-  version = "8.1.2";
+  version = "8.1.3";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-0Lm0Hkm66SaoZuYTo5sPAJd0XSufHz3UBmQbSlfsQsk=";
+    hash = "sha256-9fnuquCCsYI86erCV1JylS9A10iJOXKVbcCXAKY5LZw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/islpy/default.nix b/pkgs/development/python-modules/islpy/default.nix
index 83f0b26c0047b..d111e6b523d27 100644
--- a/pkgs/development/python-modules/islpy/default.nix
+++ b/pkgs/development/python-modules/islpy/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "islpy";
-  version = "2023.2.5";
+  version = "2024.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,8 +25,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "inducer";
     repo = "islpy";
-    rev = "v${version}";
-    hash = "sha256-0m41G5HlPrgt4rDY3Y9cKBJGHSnLg/R+IywBO1anRpQ=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-N5XI6V3BvNobCh7NAvtzVejtDMnlcb31S5gseyab1T0=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/isort/default.nix b/pkgs/development/python-modules/isort/default.nix
index 46b33b7173197..32ff65a391448 100644
--- a/pkgs/development/python-modules/isort/default.nix
+++ b/pkgs/development/python-modules/isort/default.nix
@@ -78,7 +78,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python utility / library to sort Python imports";
+    description = "Python utility / library to sort Python imports";
     homepage = "https://github.com/PyCQA/isort";
     license = licenses.mit;
     maintainers = with maintainers; [ couchemar ];
diff --git a/pkgs/development/python-modules/isosurfaces/default.nix b/pkgs/development/python-modules/isosurfaces/default.nix
index a7352c590bc10..7356db3a27449 100644
--- a/pkgs/development/python-modules/isosurfaces/default.nix
+++ b/pkgs/development/python-modules/isosurfaces/default.nix
@@ -33,6 +33,6 @@ buildPythonPackage rec {
       many far from the implicit surface.
     '';
     license = licenses.mit;
-    maintainers = with maintainers; [ friedelino ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/itemadapter/default.nix b/pkgs/development/python-modules/itemadapter/default.nix
index f47d229c2a32f..ac9250637a3ae 100644
--- a/pkgs/development/python-modules/itemadapter/default.nix
+++ b/pkgs/development/python-modules/itemadapter/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "itemadapter";
-  version = "0.8.0";
+  version = "0.9.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-d3WEhfsKwQcw1LExNj431ly42yRQv+x6V8PzJx9KSKk=";
+    hash = "sha256-5PlYpra29YMfogc3MBADGgvX7QQp3dCbUZecARR1yv0=";
   };
 
   # Infinite recursion with Scrapy
diff --git a/pkgs/development/python-modules/itemloaders/default.nix b/pkgs/development/python-modules/itemloaders/default.nix
index 09f08480f03b2..ac904ef15253e 100644
--- a/pkgs/development/python-modules/itemloaders/default.nix
+++ b/pkgs/development/python-modules/itemloaders/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "itemloaders";
-  version = "1.2.0";
+  version = "1.3.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "scrapy";
     repo = "itemloaders";
     rev = "refs/tags/v${version}";
-    hash = "sha256-DatHJnAIomVoN/GrDzM2fNnFHcXqo6zs3ucKCOCf9DU=";
+    hash = "sha256-u0/WsvLn2YlYd/FuH26T9qEGRGscipnOQbV9uPv4F+M=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/iterfzf/default.nix b/pkgs/development/python-modules/iterfzf/default.nix
new file mode 100644
index 0000000000000..099fad45d53e3
--- /dev/null
+++ b/pkgs/development/python-modules/iterfzf/default.nix
@@ -0,0 +1,62 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  fzf,
+  packaging,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+}:
+
+buildPythonPackage rec {
+  pname = "iterfzf";
+  version = "1.4.0.51.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "dahlia";
+    repo = "iterfzf";
+    rev = "refs/tags/${version}";
+    hash = "sha256-Xjk+r2PdIg+oULA5gfI129p1fNOO8RINNxP+pveiocM=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail 'dynamic = ["version"]' 'version = "${version}"' \
+      --replace-fail 'backend-path = ["."]' '# backend-path = ["."]' \
+      --replace-fail 'build-backend = "build_dist"' '# build-backend = "build_dist"'
+
+    substituteInPlace iterfzf/test_iterfzf.py \
+      --replace-fail 'executable="fzf"' 'executable="${fzf}/bin/fzf"'
+  '';
+
+  build-system = [
+    flit-core
+    setuptools
+    packaging
+  ];
+
+  dependencies = [ fzf ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  disabledTests = [
+    # AttributeError
+    "test_no_query"
+    "test_select_one_ambiguous"
+  ];
+
+  pythonImportsCheck = [ "iterfzf" ];
+
+  meta = with lib; {
+    description = "Pythonic interface to fzf, a CLI fuzzy finder";
+    homepage = "https://github.com/dahlia/iterfzf";
+    changelog = "https://github.com/dahlia/iterfzf/releases/tag/${version}";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/itunespy/default.nix b/pkgs/development/python-modules/itunespy/default.nix
index bae10c729876b..705c7e9b56b89 100644
--- a/pkgs/development/python-modules/itunespy/default.nix
+++ b/pkgs/development/python-modules/itunespy/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "itunespy" ];
 
   meta = with lib; {
-    description = "A simple library to fetch data from the iTunes Store API";
+    description = "Simple library to fetch data from the iTunes Store API";
     homepage = "https://github.com/sleepyfran/itunespy";
     license = licenses.mit;
     maintainers = with maintainers; [ j0hax ];
diff --git a/pkgs/development/python-modules/ixia/default.nix b/pkgs/development/python-modules/ixia/default.nix
new file mode 100644
index 0000000000000..ae07ed052eed0
--- /dev/null
+++ b/pkgs/development/python-modules/ixia/default.nix
@@ -0,0 +1,30 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+}:
+
+buildPythonPackage rec {
+  pname = "ixia";
+  version = "1.3.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "trag1c";
+    repo = "ixia";
+    rev = "refs/tags/${version}";
+    hash = "sha256-lsov5AIT5uRf9nmS8ZsFmInKUFAxUATTbpfhV1fabhA=";
+  };
+
+  build-system = [ poetry-core ];
+  pythonImportsCheck = [ "ixia" ];
+
+  meta = with lib; {
+    changelog = "https://github.com/trag1c/ixia/blob/${src.rev}/CHANGELOG.md";
+    description = "Connecting secrets' security with random's versatility";
+    license = licenses.mit;
+    homepage = "https://trag1c.github.io/ixia";
+    maintainers = with maintainers; [ sigmanificient ];
+  };
+}
diff --git a/pkgs/development/python-modules/jaxlib/default.nix b/pkgs/development/python-modules/jaxlib/default.nix
index 8366f11d8a268..c16aac4841d3b 100644
--- a/pkgs/development/python-modules/jaxlib/default.nix
+++ b/pkgs/development/python-modules/jaxlib/default.nix
@@ -68,7 +68,7 @@ let
   effectiveStdenv = if cudaSupport then cudaPackages.backendStdenv else inputs.stdenv;
 
   meta = with lib; {
-    description = "JAX is Autograd and XLA, brought together for high-performance machine learning research.";
+    description = "JAX is Autograd and XLA, brought together for high-performance machine learning research";
     homepage = "https://github.com/google/jax";
     license = licenses.asl20;
     maintainers = with maintainers; [ ndl ];
diff --git a/pkgs/development/python-modules/jc/default.nix b/pkgs/development/python-modules/jc/default.nix
index 23da7d1ca8001..9cf9bb7781433 100644
--- a/pkgs/development/python-modules/jc/default.nix
+++ b/pkgs/development/python-modules/jc/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "jc";
-  version = "1.25.2";
+  version = "1.25.3";
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "kellyjonbrazil";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-SDZ92m4TVH5/ldGkVZspzIrR0G1vHOv1OvAOSaWYkZ0=";
+    hash = "sha256-yp5533CzqJ++G6nHip1281ZkB4JyfLb3inR9BwDkxSs=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/jdcal/default.nix b/pkgs/development/python-modules/jdcal/default.nix
index 88557243d3a57..7303d46384de6 100644
--- a/pkgs/development/python-modules/jdcal/default.nix
+++ b/pkgs/development/python-modules/jdcal/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   '';
 
   meta = {
-    description = "A module containing functions for converting between Julian dates and calendar dates";
+    description = "Module containing functions for converting between Julian dates and calendar dates";
     homepage = "https://github.com/phn/jdcal";
     license = lib.licenses.bsd2;
     maintainers = with lib.maintainers; [ lihop ];
diff --git a/pkgs/development/python-modules/jedi-language-server/default.nix b/pkgs/development/python-modules/jedi-language-server/default.nix
index 2326fd0acb3a0..096c327ae9862 100644
--- a/pkgs/development/python-modules/jedi-language-server/default.nix
+++ b/pkgs/development/python-modules/jedi-language-server/default.nix
@@ -58,7 +58,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "jedi_language_server" ];
 
   meta = with lib; {
-    description = "A Language Server for the latest version(s) of Jedi";
+    description = "Language Server for the latest version(s) of Jedi";
     mainProgram = "jedi-language-server";
     homepage = "https://github.com/pappasam/jedi-language-server";
     changelog = "https://github.com/pappasam/jedi-language-server/blob/${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/jedi/default.nix b/pkgs/development/python-modules/jedi/default.nix
index 65475c1b2c0ac..b39ba3ce8a42e 100644
--- a/pkgs/development/python-modules/jedi/default.nix
+++ b/pkgs/development/python-modules/jedi/default.nix
@@ -55,7 +55,7 @@ buildPythonPackage rec {
     ];
 
   meta = with lib; {
-    description = "An autocompletion tool for Python that can be used for text editors";
+    description = "Autocompletion tool for Python that can be used for text editors";
     homepage = "https://github.com/davidhalter/jedi";
     changelog = "https://github.com/davidhalter/jedi/blob/${version}/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/jenkinsapi/default.nix b/pkgs/development/python-modules/jenkinsapi/default.nix
index f9a48a8338945..72cea1d05e4c5 100644
--- a/pkgs/development/python-modules/jenkinsapi/default.nix
+++ b/pkgs/development/python-modules/jenkinsapi/default.nix
@@ -53,7 +53,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python API for accessing resources on a Jenkins continuous-integration server";
+    description = "Python API for accessing resources on a Jenkins continuous-integration server";
     homepage = "https://github.com/salimfadhley/jenkinsapi";
     maintainers = with maintainers; [ drets ] ++ teams.deshaw.members;
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/jishaku/default.nix b/pkgs/development/python-modules/jishaku/default.nix
index 6bff78eceea86..bcb026bae11c5 100644
--- a/pkgs/development/python-modules/jishaku/default.nix
+++ b/pkgs/development/python-modules/jishaku/default.nix
@@ -62,7 +62,7 @@ buildPythonPackage rec {
   ];
 
   meta = {
-    description = "A debugging and testing cog for discord.py bots";
+    description = "Debugging and testing cog for discord.py bots";
     homepage = "https://jishaku.readthedocs.io/en/latest";
     changelog = "https://github.com/Gorialis/jishaku/releases/tag/${version}";
     maintainers = with lib.maintainers; [ lychee ];
diff --git a/pkgs/development/python-modules/jiwer/default.nix b/pkgs/development/python-modules/jiwer/default.nix
index 847c78c9d60b4..6d4fb7d8c971b 100644
--- a/pkgs/development/python-modules/jiwer/default.nix
+++ b/pkgs/development/python-modules/jiwer/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "jiwer" ];
 
   meta = with lib; {
-    description = "A simple and fast python package to evaluate an automatic speech recognition system";
+    description = "Simple and fast python package to evaluate an automatic speech recognition system";
     mainProgram = "jiwer";
     homepage = "https://github.com/jitsi/jiwer";
     changelog = "https://github.com/jitsi/jiwer/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/jmp/default.nix b/pkgs/development/python-modules/jmp/default.nix
index 40f267d61f004..b0ec259f0723c 100644
--- a/pkgs/development/python-modules/jmp/default.nix
+++ b/pkgs/development/python-modules/jmp/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "This library implements support for mixed precision training in JAX.";
+    description = "This library implements support for mixed precision training in JAX";
     homepage = "https://github.com/deepmind/jmp";
     license = licenses.asl20;
     maintainers = with maintainers; [ ndl ];
diff --git a/pkgs/development/python-modules/jpype1/default.nix b/pkgs/development/python-modules/jpype1/default.nix
index d0ffff24d8d3b..d9c55f2cbc9bd 100644
--- a/pkgs/development/python-modules/jpype1/default.nix
+++ b/pkgs/development/python-modules/jpype1/default.nix
@@ -36,6 +36,6 @@ buildPythonPackage rec {
       binaryBytecode
     ];
     license = licenses.asl20;
-    description = "A Python to Java bridge";
+    description = "Python to Java bridge";
   };
 }
diff --git a/pkgs/development/python-modules/json-stream-rs-tokenizer/default.nix b/pkgs/development/python-modules/json-stream-rs-tokenizer/default.nix
index 4baea78c89110..7187d7353fd09 100644
--- a/pkgs/development/python-modules/json-stream-rs-tokenizer/default.nix
+++ b/pkgs/development/python-modules/json-stream-rs-tokenizer/default.nix
@@ -62,7 +62,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A faster tokenizer for the json-stream Python library";
+    description = "Faster tokenizer for the json-stream Python library";
     homepage = "https://github.com/smheidrich/py-json-stream-rs-tokenizer";
     license = licenses.mit;
     maintainers = with maintainers; [ winter ];
diff --git a/pkgs/development/python-modules/json5/default.nix b/pkgs/development/python-modules/json5/default.nix
index 315037ca36482..fd8fb22ac0eaf 100644
--- a/pkgs/development/python-modules/json5/default.nix
+++ b/pkgs/development/python-modules/json5/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/dpranke/pyjson5";
-    description = "A Python implementation of the JSON5 data format";
+    description = "Python implementation of the JSON5 data format";
     mainProgram = "pyjson5";
     license = licenses.asl20;
     maintainers = with maintainers; [ veehaitch ];
diff --git a/pkgs/development/python-modules/jsonargparse/default.nix b/pkgs/development/python-modules/jsonargparse/default.nix
index dfe1e12df9009..ec01c1beffe3f 100644
--- a/pkgs/development/python-modules/jsonargparse/default.nix
+++ b/pkgs/development/python-modules/jsonargparse/default.nix
@@ -26,7 +26,7 @@
 
 buildPythonPackage rec {
   pname = "jsonargparse";
-  version = "4.28.0";
+  version = "4.30.0";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     owner = "omni-us";
     repo = "jsonargparse";
     rev = "refs/tags/v${version}";
-    hash = "sha256-iw6ntzFkvMg5baOgeUzf3qV1eGGqywINd7e6N781llQ=";
+    hash = "sha256-jeQOnJ8dLUbp60Nk5v4NYKVR8VYlGz08QHIfQotO2uY=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/jsonmerge/default.nix b/pkgs/development/python-modules/jsonmerge/default.nix
index 9f636ab57f4e1..5879be3b53592 100644
--- a/pkgs/development/python-modules/jsonmerge/default.nix
+++ b/pkgs/development/python-modules/jsonmerge/default.nix
@@ -26,6 +26,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/avian2/jsonmerge";
     changelog = "https://github.com/avian2/jsonmerge/blob/jsonmerge-${version}/ChangeLog";
     license = licenses.mit;
-    maintainers = with maintainers; [ emily ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/jsonpath-rw/default.nix b/pkgs/development/python-modules/jsonpath-rw/default.nix
index 7542e2f64e366..7a7f07f063b4d 100644
--- a/pkgs/development/python-modules/jsonpath-rw/default.nix
+++ b/pkgs/development/python-modules/jsonpath-rw/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/kennknowles/python-jsonpath-rw";
-    description = "A robust and significantly extended implementation of JSONPath for Python, with a clear AST for metaprogramming";
+    description = "Robust and significantly extended implementation of JSONPath for Python, with a clear AST for metaprogramming";
     mainProgram = "jsonpath.py";
     license = licenses.asl20;
   };
diff --git a/pkgs/development/python-modules/jsonpath/default.nix b/pkgs/development/python-modules/jsonpath/default.nix
index d290e59717a3f..be1054c04df73 100644
--- a/pkgs/development/python-modules/jsonpath/default.nix
+++ b/pkgs/development/python-modules/jsonpath/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   pytestFlagsArray = [ "test/test*.py" ];
 
   meta = with lib; {
-    description = "An XPath for JSON";
+    description = "XPath for JSON";
     homepage = "https://github.com/json-path/JsonPath";
     license = licenses.mit;
     maintainers = with maintainers; [ mic92 ];
diff --git a/pkgs/development/python-modules/jsonref/default.nix b/pkgs/development/python-modules/jsonref/default.nix
index 21b128697c5d6..9c5ce75a89b70 100644
--- a/pkgs/development/python-modules/jsonref/default.nix
+++ b/pkgs/development/python-modules/jsonref/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "jsonref" ];
 
   meta = with lib; {
-    description = "An implementation of JSON Reference for Python";
+    description = "Implementation of JSON Reference for Python";
     homepage = "https://github.com/gazpachoking/jsonref";
     changelog = "https://github.com/gazpachoking/jsonref/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/jsonrpc-async/default.nix b/pkgs/development/python-modules/jsonrpc-async/default.nix
index 1eba81e716f82..52224a0b8dcdf 100644
--- a/pkgs/development/python-modules/jsonrpc-async/default.nix
+++ b/pkgs/development/python-modules/jsonrpc-async/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "jsonrpc_async" ];
 
   meta = with lib; {
-    description = "A JSON-RPC client library for asyncio";
+    description = "JSON-RPC client library for asyncio";
     homepage = "https://github.com/emlove/jsonrpc-async";
     license = licenses.bsd3;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/pkgs/development/python-modules/jsonrpc-base/default.nix b/pkgs/development/python-modules/jsonrpc-base/default.nix
index c4b47c0fc6de2..2b4f81d0706ce 100644
--- a/pkgs/development/python-modules/jsonrpc-base/default.nix
+++ b/pkgs/development/python-modules/jsonrpc-base/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "jsonrpc_base" ];
 
   meta = with lib; {
-    description = "A JSON-RPC client library base interface";
+    description = "JSON-RPC client library base interface";
     homepage = "https://github.com/emlove/jsonrpc-base";
     license = licenses.bsd3;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/pkgs/development/python-modules/jsonrpc-websocket/default.nix b/pkgs/development/python-modules/jsonrpc-websocket/default.nix
index 11b5ceb52f6b9..1ec395bc5a505 100644
--- a/pkgs/development/python-modules/jsonrpc-websocket/default.nix
+++ b/pkgs/development/python-modules/jsonrpc-websocket/default.nix
@@ -46,7 +46,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "jsonrpc_websocket" ];
 
   meta = with lib; {
-    description = "A JSON-RPC websocket client library for asyncio";
+    description = "JSON-RPC websocket client library for asyncio";
     homepage = "https://github.com/emlove/jsonrpc-websocket";
     license = licenses.bsd3;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/pkgs/development/python-modules/jsonrpclib-pelix/default.nix b/pkgs/development/python-modules/jsonrpclib-pelix/default.nix
index 0903e7a1f12a1..5cf7fe1f5b803 100644
--- a/pkgs/development/python-modules/jsonrpclib-pelix/default.nix
+++ b/pkgs/development/python-modules/jsonrpclib-pelix/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "jsonrpclib-pelix";
-  version = "0.4.3.2";
+  version = "0.4.3.3";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-6eCzPvqPog2BfdeN/Z5M2zlnyKXTy1p4O+HugcSonHw=";
+    hash = "sha256-xJT+cQCxE5sTEUacKLwy0cuS5P8fRRH7cdaAcgXcN3M=";
   };
 
   doCheck = false; # test_suite="tests" in setup.py but no tests in pypi.
diff --git a/pkgs/development/python-modules/jsonschema/default.nix b/pkgs/development/python-modules/jsonschema/default.nix
index 6417618eaa8f4..c68b003bf52f8 100644
--- a/pkgs/development/python-modules/jsonschema/default.nix
+++ b/pkgs/development/python-modules/jsonschema/default.nix
@@ -92,7 +92,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "jsonschema" ];
 
   meta = with lib; {
-    description = "An implementation of JSON Schema validation";
+    description = "Implementation of JSON Schema validation";
     mainProgram = "jsonschema";
     homepage = "https://github.com/python-jsonschema/jsonschema";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/jsonstreams/default.nix b/pkgs/development/python-modules/jsonstreams/default.nix
index 3c545e39cdc5f..58c3513e1ee08 100644
--- a/pkgs/development/python-modules/jsonstreams/default.nix
+++ b/pkgs/development/python-modules/jsonstreams/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A JSON streaming writer";
+    description = "JSON streaming writer";
     homepage = "https://github.com/dcbaker/jsonstreams";
     license = licenses.mit;
     maintainers = with maintainers; [ chkno ];
diff --git a/pkgs/development/python-modules/jstyleson/default.nix b/pkgs/development/python-modules/jstyleson/default.nix
index da36508f3a1fe..c38e847872753 100644
--- a/pkgs/development/python-modules/jstyleson/default.nix
+++ b/pkgs/development/python-modules/jstyleson/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "jstyleson" ];
 
   meta = with lib; {
-    description = "A python library to parse JSON with js-style comments";
+    description = "Python library to parse JSON with js-style comments";
     homepage = "https://github.com/linjackson78/jstyleson";
     license = licenses.mit;
     maintainers = with maintainers; [ ambroisie ];
diff --git a/pkgs/development/python-modules/jug/default.nix b/pkgs/development/python-modules/jug/default.nix
index c20bb40b4de7f..ed62d63062217 100644
--- a/pkgs/development/python-modules/jug/default.nix
+++ b/pkgs/development/python-modules/jug/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "jug" ];
 
   meta = with lib; {
-    description = "A Task-Based Parallelization Framework";
+    description = "Task-Based Parallelization Framework";
     homepage = "https://jug.readthedocs.io/";
     changelog = "https://github.com/luispedro/jug/blob/v${version}/ChangeLog";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/jupyter-cache/default.nix b/pkgs/development/python-modules/jupyter-cache/default.nix
index 1b8b133242f94..1d57a7a5d8cfc 100644
--- a/pkgs/development/python-modules/jupyter-cache/default.nix
+++ b/pkgs/development/python-modules/jupyter-cache/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "jupyter_cache" ];
 
   meta = with lib; {
-    description = "A defined interface for working with a cache of jupyter notebooks";
+    description = "Defined interface for working with a cache of jupyter notebooks";
     mainProgram = "jcache";
     homepage = "https://github.com/executablebooks/jupyter-cache";
     changelog = "https://github.com/executablebooks/jupyter-cache/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/jupyter-client/default.nix b/pkgs/development/python-modules/jupyter-client/default.nix
index 0a43bcf920a7b..82778299c799c 100644
--- a/pkgs/development/python-modules/jupyter-client/default.nix
+++ b/pkgs/development/python-modules/jupyter-client/default.nix
@@ -14,18 +14,18 @@
 
 buildPythonPackage rec {
   pname = "jupyter-client";
-  version = "8.6.1";
+  version = "8.6.2";
   pyproject = true;
 
   src = fetchPypi {
     pname = "jupyter_client";
     inherit version;
-    hash = "sha256-6EJRXiurjhkYbYn9/qer0V453VgflOOZ8A4q9aFlLT8=";
+    hash = "sha256-K9oU1V7lulhVKoxTrkPSFa2YaIU0iSE/N9oGDO1U2N8=";
   };
 
-  nativeBuildInputs = [ hatchling ];
+  build-system = [ hatchling ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     jupyter-core
     python-dateutil
     pyzmq
@@ -43,5 +43,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/jupyter/jupyter_client";
     changelog = "https://github.com/jupyter/jupyter_client/blob/v${version}/CHANGELOG.md";
     license = lib.licenses.bsd3;
+    maintainers = lib.teams.jupyter.members;
   };
 }
diff --git a/pkgs/development/python-modules/jupyter-contrib-nbextensions/default.nix b/pkgs/development/python-modules/jupyter-contrib-nbextensions/default.nix
index d50dafd6fb751..622ad6ceff84f 100644
--- a/pkgs/development/python-modules/jupyter-contrib-nbextensions/default.nix
+++ b/pkgs/development/python-modules/jupyter-contrib-nbextensions/default.nix
@@ -49,7 +49,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "jupyter_contrib_nbextensions" ];
 
   meta = with lib; {
-    description = "A collection of various notebook extensions for Jupyter";
+    description = "Collection of various notebook extensions for Jupyter";
     homepage = "https://github.com/ipython-contrib/jupyter_contrib_nbextensions";
     license = licenses.bsd3;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/pkgs/development/python-modules/jupyter-nbextensions-configurator/default.nix b/pkgs/development/python-modules/jupyter-nbextensions-configurator/default.nix
index 5b1bed18d96eb..a1e54450fbcbc 100644
--- a/pkgs/development/python-modules/jupyter-nbextensions-configurator/default.nix
+++ b/pkgs/development/python-modules/jupyter-nbextensions-configurator/default.nix
@@ -2,40 +2,29 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   jupyter-contrib-core,
   jupyter-core,
   jupyter-server,
   notebook,
   pyyaml,
   tornado,
-  nose,
   pytestCheckHook,
   selenium,
 }:
 
 buildPythonPackage rec {
   pname = "jupyter-nbextensions-configurator";
-  version = "0.6.3";
-  format = "setuptools";
+  version = "0.6.4";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "jupyter-contrib";
     repo = "jupyter_nbextensions_configurator";
     rev = "refs/tags/${version}";
-    hash = "sha256-ovKYHATRAC5a5qTMv32ohU2gJd15/fRKXa5HI0zGp/0=";
+    hash = "sha256-U4M6pGV/DdE+DOVMVaoBXOhfRERt+yUa+gADgqRRLn4=";
   };
 
-  patches = [
-    # https://github.com/Jupyter-contrib/jupyter_nbextensions_configurator/pull/166
-    (fetchpatch {
-      name = "notebook-v7-compat.patch";
-      url = "https://github.com/Jupyter-contrib/jupyter_nbextensions_configurator/commit/a600cef9222ca0c61a6912eb29d8fa0323409705.patch";
-      hash = "sha256-Rt9r5ZOgnhBcs18+ET5+k0/t980I2DiVN8oHkGLp0iw=";
-    })
-  ];
-
-  propagatedBuildInputs = [
+  dependencies = [
     jupyter-contrib-core
     jupyter-core
     jupyter-server
@@ -45,7 +34,6 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
-    nose
     pytestCheckHook
     selenium
   ];
@@ -59,11 +47,12 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "jupyter_nbextensions_configurator" ];
 
-  meta = with lib; {
-    description = "A jupyter notebook serverextension providing config interfaces for nbextensions";
+  meta = {
+    description = "Jupyter notebook serverextension providing config interfaces for nbextensions";
     mainProgram = "jupyter-nbextensions_configurator";
     homepage = "https://github.com/jupyter-contrib/jupyter_nbextensions_configurator";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ GaetanLepage ];
+    changelog = "https://github.com/Jupyter-contrib/jupyter_nbextensions_configurator/releases/tag/${version}";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
   };
 }
diff --git a/pkgs/development/python-modules/jupyter-packaging/default.nix b/pkgs/development/python-modules/jupyter-packaging/default.nix
index a0f3174f1c682..b4220824ae93a 100644
--- a/pkgs/development/python-modules/jupyter-packaging/default.nix
+++ b/pkgs/development/python-modules/jupyter-packaging/default.nix
@@ -68,6 +68,5 @@ buildPythonPackage rec {
     description = "Jupyter Packaging Utilities";
     homepage = "https://github.com/jupyter/jupyter-packaging";
     license = licenses.bsd3;
-    maintainers = [ maintainers.elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/jupyter-server-fileid/default.nix b/pkgs/development/python-modules/jupyter-server-fileid/default.nix
index 1267f51e43aae..7f05c8c95863e 100644
--- a/pkgs/development/python-modules/jupyter-server-fileid/default.nix
+++ b/pkgs/development/python-modules/jupyter-server-fileid/default.nix
@@ -47,7 +47,7 @@ buildPythonPackage rec {
 
   meta = {
     changelog = "https://github.com/jupyter-server/jupyter_server_fileid/blob/${src.rev}/CHANGELOG.md";
-    description = "An extension that maintains file IDs for documents in a running Jupyter Server";
+    description = "Extension that maintains file IDs for documents in a running Jupyter Server";
     mainProgram = "jupyter-fileid";
     homepage = "https://github.com/jupyter-server/jupyter_server_fileid";
     license = lib.licenses.bsd3;
diff --git a/pkgs/development/python-modules/jupyter-server-terminals/default.nix b/pkgs/development/python-modules/jupyter-server-terminals/default.nix
index 321d02c1f1b85..91ca1fb69273a 100644
--- a/pkgs/development/python-modules/jupyter-server-terminals/default.nix
+++ b/pkgs/development/python-modules/jupyter-server-terminals/default.nix
@@ -48,7 +48,7 @@ let
 
     meta = with lib; {
       changelog = "https://github.com/jupyter-server/jupyter_server_terminals/releases/tag/v${version}";
-      description = "A Jupyter Server Extension Providing Support for Terminals";
+      description = "Jupyter Server Extension Providing Support for Terminals";
       homepage = "https://github.com/jupyter-server/jupyter_server_terminals";
       license = licenses.bsd3;
       maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/jupyter-server/default.nix b/pkgs/development/python-modules/jupyter-server/default.nix
index f13ff454e2c4d..7560b4a3c0ae1 100644
--- a/pkgs/development/python-modules/jupyter-server/default.nix
+++ b/pkgs/development/python-modules/jupyter-server/default.nix
@@ -35,14 +35,14 @@
 
 buildPythonPackage rec {
   pname = "jupyter-server";
-  version = "2.14.0";
+  version = "2.14.1";
   pyproject = true;
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     pname = "jupyter_server";
     inherit version;
-    hash = "sha256-ZZFUzqUSCDQ0/XyTt/4Il696L9C53UdJKCtC6qxK5nc=";
+    hash = "sha256-ElWNFY7HoGU7+WzCcrx6154BJ9UDuYLtFEOZNGaU9yY=";
   };
 
   nativeBuildInputs = [
@@ -125,7 +125,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/jupyter-server/jupyter_server/blob/v${version}/CHANGELOG.md";
-    description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications";
+    description = "Backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications";
     mainProgram = "jupyter-server";
     homepage = "https://github.com/jupyter-server/jupyter_server";
     license = licenses.bsdOriginal;
diff --git a/pkgs/development/python-modules/jupyter-ui-poll/default.nix b/pkgs/development/python-modules/jupyter-ui-poll/default.nix
index 0aafb336d6778..4a3c69c553046 100644
--- a/pkgs/development/python-modules/jupyter-ui-poll/default.nix
+++ b/pkgs/development/python-modules/jupyter-ui-poll/default.nix
@@ -9,29 +9,30 @@
 
 buildPythonPackage rec {
   pname = "jupyter-ui-poll";
-  version = "0.2.2";
-  format = "pyproject";
+  version = "1.0.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "Kirill888";
     repo = "jupyter-ui-poll";
     rev = "refs/tags/v${version}";
-    hash = "sha256-DWZFvzx0aNTmf1x8Rq19OT0PFRxdpKefWYFh8C116Fw";
+    hash = "sha256-mlgLd6uFDSxRBj4+Eidea2CE7FuG6NzJLWGec4KPd9k=";
   };
 
-  nativeBuildInputs = [ setuptools ];
-  propagatedBuildInputs = [ ipython ];
+  build-system = [ setuptools ];
+
+  dependencies = [ ipython ];
 
   doCheck = false; # no tests in package :(
   pythonImportsCheck = [ "jupyter_ui_poll" ];
 
-  meta = with lib; {
+  meta = {
     description = "Block jupyter cell execution while interacting with widgets";
     homepage = "https://github.com/Kirill888/jupyter-ui-poll";
     changelog = "https://github.com/Kirill888/jupyter-ui-poll/releases/tag/v${version}";
-    license = licenses.mit;
-    maintainers = with maintainers; [ bcdarwin ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ bcdarwin ];
   };
 }
diff --git a/pkgs/development/python-modules/jupyterhub/default.nix b/pkgs/development/python-modules/jupyterhub/default.nix
index 7a08e773646d9..543564b606eae 100644
--- a/pkgs/development/python-modules/jupyterhub/default.nix
+++ b/pkgs/development/python-modules/jupyterhub/default.nix
@@ -8,156 +8,127 @@
   certipy,
   configurable-http-proxy,
   cryptography,
-  entrypoints,
-  fetchPypi,
-  fetchzip,
+  fetchFromGitHub,
+  fetchNpmDeps,
+  idna,
   importlib-metadata,
   jinja2,
   jsonschema,
-  jupyter-telemetry,
+  jupyter-events,
   jupyterlab,
-  jupyter-core,
-  jupyter-server,
   mock,
   nbclassic,
-  nodePackages,
-  notebook,
+  nodejs,
+  npmHooks,
   oauthlib,
   packaging,
   pamela,
   playwright,
   prometheus-client,
+  pydantic,
   pytest-asyncio,
   pytestCheckHook,
   python-dateutil,
   pythonOlder,
   requests,
   requests-mock,
-  selenium,
+  setuptools,
+  setuptools-scm,
   sqlalchemy,
   tornado,
   traitlets,
   virtualenv,
 }:
 
-let
-  # js/css assets that setup.py tries to fetch via `npm install` when building
-  # from source. https://github.com/jupyterhub/jupyterhub/blob/master/package.json
-  bootstrap = fetchzip {
-    url = "https://registry.npmjs.org/bootstrap/-/bootstrap-3.4.1.tgz";
-    sha256 = "1ywmxqdccg0mgx0xknrn1hlrfnhcwphc12y9l91zizx26fqfmzgc";
-  };
-  font-awesome = fetchzip {
-    url = "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz";
-    sha256 = "1xnxbdlfdd60z5ix152m8r2kk9dkwlqwpypky1mm3dv64ajnzdbk";
-  };
-  jquery = fetchzip {
-    url = "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz";
-    sha256 = "0yi9ql493din1qa1s923nd5zvd0klk1sx00xj1wx2yambmq86vm9";
-  };
-  moment = fetchzip {
-    url = "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz";
-    sha256 = "0ifzzla4zffw23g3xvhwx3fj3jny6cjzxfzl1x0317q8wa0c7w5i";
-  };
-  requirejs = fetchzip {
-    url = "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz";
-    sha256 = "165hkli3qcd59cjqvli9r5f92i0h7czkmhcg1cgwamw2d0b7xibz";
-  };
-in
-
 buildPythonPackage rec {
   pname = "jupyterhub";
-  version = "4.1.5";
-  format = "setuptools";
+  version = "5.0.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-Y7ofxxhDbBUZRqWKO0A+xP6LP2JPsZW8HY5ww5sz4ZQ=";
+  src = fetchFromGitHub {
+    owner = "jupyterhub";
+    repo = "jupyterhub";
+    rev = "refs/tags/${version}";
+    hash = "sha256-YGDbyWe3JSXbluOX6qyLqzl92Z/f5sD/5TPc2LR7W80=";
   };
 
-  # Most of this only applies when building from source (e.g. js/css assets are
-  # pre-built and bundled in the official release tarball on pypi).
-  #
-  # Stuff that's always needed:
-  #   * At runtime, we need configurable-http-proxy, so we substitute the store
-  #     path.
-  #
-  # Other stuff that's only needed when building from source:
-  #   * js/css assets are fetched from npm.
-  #   * substitute store path for `lessc` commmand.
-  #   * set up NODE_PATH so `lessc` can find `less-plugin-clean-css`.
-  #   * don't run `npm install`.
-  preBuild = ''
-    export NODE_PATH=${nodePackages.less-plugin-clean-css}/lib/node_modules
+  npmDeps = fetchNpmDeps {
+    inherit src;
+    hash = "sha256-7G/Y2yaMi9cyf20/o8rLXKIE6SdZ74HSWJ3Wfypl4Cc=";
+  };
 
-    substituteInPlace jupyterhub/proxy.py --replace \
+  postPatch = ''
+    substituteInPlace jupyterhub/proxy.py --replace-fail \
       "'configurable-http-proxy'" \
       "'${configurable-http-proxy}/bin/configurable-http-proxy'"
 
-    substituteInPlace jupyterhub/tests/test_proxy.py --replace \
+    substituteInPlace jupyterhub/tests/test_proxy.py --replace-fail \
       "'configurable-http-proxy'" \
       "'${configurable-http-proxy}/bin/configurable-http-proxy'"
+  '';
 
-    substituteInPlace setup.py --replace \
-      "'npm'" "'true'"
-
-    declare -A deps
-    deps[bootstrap]=${bootstrap}
-    deps[font-awesome]=${font-awesome}
-    deps[jquery]=${jquery}
-    deps[moment]=${moment}
-    deps[requirejs]=${requirejs}
+  nativeBuildInputs = [
+    nodejs
+    npmHooks.npmConfigHook
+  ];
 
-    mkdir -p share/jupyter/hub/static/components
-    for dep in "''${!deps[@]}"; do
-      if [ ! -e share/jupyter/hub/static/components/$dep ]; then
-        cp -r ''${deps[$dep]} share/jupyter/hub/static/components/$dep
-      fi
-    done
-  '';
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
 
-  propagatedBuildInputs = [
-    alembic
-    async-generator
-    certipy
-    python-dateutil
-    entrypoints
-    jinja2
-    jupyter-telemetry
-    oauthlib
-    packaging
-    pamela
-    prometheus-client
-    requests
-    selenium
-    sqlalchemy
-    tornado
-    traitlets
-    jupyter-core
-    jupyter-server
-  ] ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
+  dependencies =
+    [
+      alembic
+      certipy
+      idna
+      jinja2
+      jupyter-events
+      oauthlib
+      packaging
+      pamela
+      prometheus-client
+      pydantic
+      python-dateutil
+      requests
+      sqlalchemy
+      tornado
+      traitlets
+    ]
+    ++ lib.optionals (pythonOlder "3.10") [
+      async-generator
+      importlib-metadata
+    ];
 
   nativeCheckInputs = [
     beautifulsoup4
     cryptography
-    notebook
     jsonschema
-    nbclassic
-    mock
     jupyterlab
+    mock
+    nbclassic
     playwright
-    pytest-asyncio
+    # require pytest-asyncio<0.23
+    # https://github.com/jupyterhub/jupyterhub/pull/4663
+    (pytest-asyncio.overrideAttrs (
+      final: prev: {
+        version = "0.21.2";
+        src = fetchFromGitHub {
+          inherit (prev.src) owner repo;
+          rev = "refs/tags/v${final.version}";
+          hash = "sha256-AVVvdo/CDF9IU6l779sLc7wKz5h3kzMttdDNTPLYxtQ=";
+        };
+      }
+    ))
     pytestCheckHook
     requests-mock
     virtualenv
   ];
 
   preCheck = ''
-    substituteInPlace jupyterhub/tests/test_spawner.py --replace \
-      "'jupyterhub-singleuser'" "'$out/bin/jupyterhub-singleuser'"
-    export PATH="$PATH:$out/bin";
+    export PATH=$out/bin:$PATH;
   '';
 
   disabledTests = [
@@ -195,7 +166,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Serves multiple Jupyter notebook instances";
-    homepage = "https://jupyter.org/";
+    homepage = "https://github.com/jupyterhub/jupyterhub";
     changelog = "https://github.com/jupyterhub/jupyterhub/blob/${version}/docs/source/reference/changelog.md";
     license = licenses.bsd3;
     maintainers = teams.jupyter.members;
diff --git a/pkgs/development/python-modules/jupyterlab-server/default.nix b/pkgs/development/python-modules/jupyterlab-server/default.nix
index 7aab011ea3b1a..c7ba03645aa3b 100644
--- a/pkgs/development/python-modules/jupyterlab-server/default.nix
+++ b/pkgs/development/python-modules/jupyterlab-server/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab-server";
-  version = "2.27.1";
+  version = "2.27.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -30,16 +30,16 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "jupyterlab_server";
     inherit version;
-    hash = "sha256-CXtaxwm2dscoSsnF43PxGTClYfUs1ahuT8flqcioYx0=";
+    hash = "sha256-FcuzSdxF6VTgm6z4G5+byxCBX/Zg+yA07NdBfbOn6ic=";
   };
 
   postPatch = ''
     sed -i "/timeout/d" pyproject.toml
   '';
 
-  nativeBuildInputs = [ hatchling ];
+  build-system = [ hatchling ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     babel
     jinja2
     json5
@@ -49,7 +49,7 @@ buildPythonPackage rec {
     requests
   ] ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
 
-  passthru.optional-dependencies = {
+  optional-dependencies = {
     openapi = [
       openapi-core
       ruamel-yaml
@@ -61,7 +61,7 @@ buildPythonPackage rec {
     pytestCheckHook
     requests-mock
     strict-rfc3339
-  ] ++ passthru.optional-dependencies.openapi;
+  ] ++ optional-dependencies.openapi;
 
   preCheck = ''
     export HOME=$(mktemp -d)
@@ -85,7 +85,7 @@ buildPythonPackage rec {
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
-    description = "A set of server components for JupyterLab and JupyterLab like applications";
+    description = "Set of server components for JupyterLab and JupyterLab like applications";
     homepage = "https://github.com/jupyterlab/jupyterlab_server";
     changelog = "https://github.com/jupyterlab/jupyterlab_server/blob/v${version}/CHANGELOG.md";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/jupyterlab-widgets/default.nix b/pkgs/development/python-modules/jupyterlab-widgets/default.nix
index 573d42bf44dcc..ea09f1c450657 100644
--- a/pkgs/development/python-modules/jupyterlab-widgets/default.nix
+++ b/pkgs/development/python-modules/jupyterlab-widgets/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab-widgets";
-  version = "3.0.10";
+  version = "3.0.11";
   pyproject = true;
 
   src = fetchPypi {
     pname = "jupyterlab_widgets";
     inherit version;
-    hash = "sha256-BPKsBJdnJ+T50PqRzcLxq4YPll5QTCnb1qZciCydBMA=";
+    hash = "sha256-3VrGeVk8lprynJvtBUwk8mhCuqUTUhFHNnVrwDXe7ic=";
   };
 
   # jupyterlab is required to build from source but we use the pre-build package
diff --git a/pkgs/development/python-modules/jupyterlab/default.nix b/pkgs/development/python-modules/jupyterlab/default.nix
index 7668dae613fd1..166a1bb82b3f0 100644
--- a/pkgs/development/python-modules/jupyterlab/default.nix
+++ b/pkgs/development/python-modules/jupyterlab/default.nix
@@ -21,22 +21,22 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab";
-  version = "4.2.0";
+  version = "4.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-NW6SBaaiq2icR8j+SRnbpsB243bQPya6rcBXSMJDXdU=";
+    hash = "sha256-oQ+3EIWmkAggxi1DMkAFBGQC/8jw/eaWED43I4qDlQc=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     hatch-jupyter-builder
     hatchling
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     async-lru
     httpx
     packaging
diff --git a/pkgs/development/python-modules/k5test/default.nix b/pkgs/development/python-modules/k5test/default.nix
index 3a6c340e00a70..a7366d3851fbe 100644
--- a/pkgs/development/python-modules/k5test/default.nix
+++ b/pkgs/development/python-modules/k5test/default.nix
@@ -44,6 +44,5 @@ buildPythonPackage rec {
     changelog = "https://github.com/pythongssapi/k5test/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
-    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/python-modules/kaitaistruct/default.nix b/pkgs/development/python-modules/kaitaistruct/default.nix
index 077d24f2462e3..24807eacdc001 100644
--- a/pkgs/development/python-modules/kaitaistruct/default.nix
+++ b/pkgs/development/python-modules/kaitaistruct/default.nix
@@ -5,6 +5,7 @@
   fetchFromGitHub,
   brotli,
   lz4,
+  setuptools,
 }:
 
 let
@@ -18,7 +19,7 @@ in
 buildPythonPackage rec {
   pname = "kaitaistruct";
   version = "0.10";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
@@ -30,13 +31,14 @@ buildPythonPackage rec {
     sed '32ipackages = kaitai/compress' -i setup.cfg
   '';
 
+  build-system = [ setuptools ];
+
   propagatedBuildInputs = [
     brotli
     lz4
   ];
 
-  # no tests
-  dontCheck = true;
+  doCheck = false; # no tests in upstream
 
   pythonImportsCheck = [
     "kaitaistruct"
diff --git a/pkgs/development/python-modules/kanidm/default.nix b/pkgs/development/python-modules/kanidm/default.nix
index e47f7b3f608d5..e565a00196789 100644
--- a/pkgs/development/python-modules/kanidm/default.nix
+++ b/pkgs/development/python-modules/kanidm/default.nix
@@ -21,7 +21,7 @@
 
 let
   pname = "kanidm";
-  version = "0.0.3-unstable-2023-08-23";
+  version = "1.0.0-2024-04-22";
 in
 buildPythonPackage rec {
   inherit pname version;
@@ -32,8 +32,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "kanidm";
     repo = "kanidm";
-    rev = "def4420c4c5c3ec4f9b02776e1d5fdb07aa3a729";
-    hash = "sha256-5qQb+Itguw2v1Wdvc2vp00zglfvNd3LFEDvaweRJcOc=";
+    rev = "a0f743d8c8e7a6b6b0775e64774fc5175464cab6";
+    hash = "sha256-W2v3/osDrjRQqz2DqoG90SGcu4K6G2ypMTfE6Xq5qNI=";
   };
 
   sourceRoot = "${src.name}/pykanidm";
diff --git a/pkgs/development/python-modules/karton-dashboard/default.nix b/pkgs/development/python-modules/karton-dashboard/default.nix
index bac655ec83414..96fba596da1ff 100644
--- a/pkgs/development/python-modules/karton-dashboard/default.nix
+++ b/pkgs/development/python-modules/karton-dashboard/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "karton-dashboard";
-  version = "1.5.0";
+  version = "1.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "CERT-Polska";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-O7Wrl9+RWkHPO0+9aue1Nlv0263qX8Thnh5FmnoKjxU=";
+    hash = "sha256-VzBC7IATF8QBtTXMv4vmorAzBlImEsayjenQ2Uz5jIo=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/kconfiglib/default.nix b/pkgs/development/python-modules/kconfiglib/default.nix
index f9bfb1d2dd1ba..12c7ba6170db8 100644
--- a/pkgs/development/python-modules/kconfiglib/default.nix
+++ b/pkgs/development/python-modules/kconfiglib/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A flexible Python 2/3 Kconfig implementation and library";
+    description = "Flexible Python 2/3 Kconfig implementation and library";
     homepage = "https://github.com/ulfalizer/Kconfiglib";
     license = licenses.isc;
     maintainers = with maintainers; [ teto ];
diff --git a/pkgs/development/python-modules/keep/default.nix b/pkgs/development/python-modules/keep/default.nix
index 6e9c15fd0fced..f4e0ab5f1250a 100644
--- a/pkgs/development/python-modules/keep/default.nix
+++ b/pkgs/development/python-modules/keep/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/orkohunter/keep";
-    description = "A Meta CLI toolkit: Personal shell command keeper and snippets manager";
+    description = "Meta CLI toolkit: Personal shell command keeper and snippets manager";
     mainProgram = "keep";
     platforms = platforms.all;
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/keepalive/default.nix b/pkgs/development/python-modules/keepalive/default.nix
index dd2c66c7d4039..1228dc78f28ee 100644
--- a/pkgs/development/python-modules/keepalive/default.nix
+++ b/pkgs/development/python-modules/keepalive/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "An HTTP handler for `urllib` that supports HTTP 1.1 and keepalive";
+    description = "HTTP handler for `urllib` that supports HTTP 1.1 and keepalive";
     homepage = "https://github.com/wikier/keepalive";
     license = licenses.lgpl21Plus;
   };
diff --git a/pkgs/development/python-modules/keras/default.nix b/pkgs/development/python-modules/keras/default.nix
index 89e0fdbe39232..4882b45aa4c90 100644
--- a/pkgs/development/python-modules/keras/default.nix
+++ b/pkgs/development/python-modules/keras/default.nix
@@ -1,55 +1,64 @@
 {
   lib,
   buildPythonPackage,
-  fetchPypi,
-  pytest,
-  pytest-cov,
-  pytest-xdist,
-  six,
-  numpy,
-  scipy,
-  pyyaml,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  absl-py,
+  dm-tree,
   h5py,
+  markdown-it-py,
+  ml-dtypes,
+  namex,
+  numpy,
   optree,
-  keras-applications,
-  keras-preprocessing,
+  rich,
+  tensorflow,
 }:
 
 buildPythonPackage rec {
   pname = "keras";
-  version = "3.2.1";
-  format = "wheel";
-
-  src = fetchPypi {
-    inherit format pname version;
-    hash = "sha256-C+HomwQeaXvlYthCLsuVjuVIGs/AiZEyAJJsVh0ligM=";
-    python = "py3";
-    dist = "py3";
+  version = "3.3.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "keras-team";
+    repo = "keras";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-hhY28Ocv4zacZiwFflJtufKpeKfH1MD1PZJ+NTJfpH0=";
   };
 
-  nativeCheckInputs = [
-    pytest
-    pytest-cov
-    pytest-xdist
+  build-system = [
+    setuptools
   ];
 
-  propagatedBuildInputs = [
-    six
-    pyyaml
-    numpy
-    scipy
+  dependencies = [
+    absl-py
+    dm-tree
     h5py
-    keras-applications
-    keras-preprocessing
+    markdown-it-py
+    ml-dtypes
+    namex
+    numpy
+    optree
+    rich
+    tensorflow
+  ];
+
+  pythonImportsCheck = [
+    "keras"
+    "keras._tf_keras"
   ];
 
   # Couldn't get tests working
   doCheck = false;
 
-  meta = with lib; {
-    description = "Deep Learning library for Theano and TensorFlow";
+  meta = {
+    description = "Multi-backend implementation of the Keras API, with support for TensorFlow, JAX, and PyTorch";
     homepage = "https://keras.io";
-    license = licenses.mit;
-    maintainers = with maintainers; [ NikolaMandic ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ NikolaMandic ];
   };
 }
diff --git a/pkgs/development/python-modules/keyutils/default.nix b/pkgs/development/python-modules/keyutils/default.nix
index e62e56c5da411..e9b09ba1e0ece 100644
--- a/pkgs/development/python-modules/keyutils/default.nix
+++ b/pkgs/development/python-modules/keyutils/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = {
-    description = "A set of python bindings for keyutils";
+    description = "Set of python bindings for keyutils";
     homepage = "https://github.com/sassoftware/python-keyutils";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ primeos ];
diff --git a/pkgs/development/python-modules/khanaa/default.nix b/pkgs/development/python-modules/khanaa/default.nix
index 3135e38d91730..91148489c9e81 100644
--- a/pkgs/development/python-modules/khanaa/default.nix
+++ b/pkgs/development/python-modules/khanaa/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "khanaa" ];
 
   meta = with lib; {
-    description = "A tool to make spelling Thai more convenient";
+    description = "Tool to make spelling Thai more convenient";
     homepage = "https://github.com/cakimpei/khanaa";
     changelog = "https://github.com/cakimpei/khanaa/blob/main/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/kinparse/default.nix b/pkgs/development/python-modules/kinparse/default.nix
index 7024ebd210035..a925347da3180 100644
--- a/pkgs/development/python-modules/kinparse/default.nix
+++ b/pkgs/development/python-modules/kinparse/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage {
   ];
 
   meta = with lib; {
-    description = "A Parser for KiCad EESCHEMA netlists";
+    description = "Parser for KiCad EESCHEMA netlists";
     mainProgram = "kinparse";
     homepage = "https://github.com/xesscorp/kinparse";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/kivy-garden/default.nix b/pkgs/development/python-modules/kivy-garden/default.nix
index 981586f4513cc..34792e64d1444 100644
--- a/pkgs/development/python-modules/kivy-garden/default.nix
+++ b/pkgs/development/python-modules/kivy-garden/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "The kivy garden installation script, split into its own package for convenient use in buildozer.";
+    description = "Kivy garden installation script, split into its own package for convenient use in buildozer";
     homepage = "https://github.com/kivy-garden/garden";
     license = licenses.mit;
     maintainers = with maintainers; [ risson ];
diff --git a/pkgs/development/python-modules/kivy/default.nix b/pkgs/development/python-modules/kivy/default.nix
index 9b39aa1fd058d..f71c8288c74eb 100644
--- a/pkgs/development/python-modules/kivy/default.nix
+++ b/pkgs/development/python-modules/kivy/default.nix
@@ -3,7 +3,6 @@
   stdenv,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   pkg-config,
   cython_0,
   docutils,
@@ -100,7 +99,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "kivy" ];
 
   meta = with lib; {
-    description = "Library for rapid development of hardware-accelerated multitouch applications.";
+    description = "Library for rapid development of hardware-accelerated multitouch applications";
     homepage = "https://pypi.python.org/pypi/kivy";
     license = licenses.mit;
     maintainers = with maintainers; [ risson ];
diff --git a/pkgs/development/python-modules/klaus/default.nix b/pkgs/development/python-modules/klaus/default.nix
index 71b0a485f10a0..73e9df8c0053f 100644
--- a/pkgs/development/python-modules/klaus/default.nix
+++ b/pkgs/development/python-modules/klaus/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "klaus";
-  version = "2.0.3";
+  version = "3.0.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "jonashaag";
     repo = pname;
     rev = version;
-    hash = "sha256-VAwIdmwdo/Rim2sVlR605Wo5/zkNOMiGkh40qLrENmU=";
+    hash = "sha256-BcLlvZ9Ip3laL0cLkqK+mhB+S7ubB4TuZ0VKXOOX3oA=";
   };
 
   prePatch = ''
@@ -53,7 +53,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "The first Git web viewer that Just Works";
+    description = "First Git web viewer that Just Works";
     mainProgram = "klaus";
     homepage = "https://github.com/jonashaag/klaus";
     license = licenses.isc;
diff --git a/pkgs/development/python-modules/knack/default.nix b/pkgs/development/python-modules/knack/default.nix
index 6aa3b3bf3f4e6..46005c96bee66 100644
--- a/pkgs/development/python-modules/knack/default.nix
+++ b/pkgs/development/python-modules/knack/default.nix
@@ -51,7 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/microsoft/knack";
-    description = "A Command-Line Interface framework";
+    description = "Command-Line Interface framework";
     changelog = "https://github.com/microsoft/knack/blob/v${version}/HISTORY.rst";
     platforms = platforms.all;
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/korean-lunar-calendar/default.nix b/pkgs/development/python-modules/korean-lunar-calendar/default.nix
index 92d725b150dde..98c04b0e66658 100644
--- a/pkgs/development/python-modules/korean-lunar-calendar/default.nix
+++ b/pkgs/development/python-modules/korean-lunar-calendar/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "korean_lunar_calendar" ];
 
   meta = with lib; {
-    description = "A library to convert Korean lunar-calendar to Gregorian calendar.";
+    description = "Library to convert Korean lunar-calendar to Gregorian calendar";
     homepage = "https://github.com/usingsky/korean_lunar_calendar_py";
     license = licenses.mit;
     maintainers = [ maintainers.ris ];
diff --git a/pkgs/development/python-modules/krfzf-py/default.nix b/pkgs/development/python-modules/krfzf-py/default.nix
index 29cec7c6c9f98..d1007876591fb 100644
--- a/pkgs/development/python-modules/krfzf-py/default.nix
+++ b/pkgs/development/python-modules/krfzf-py/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "fzf" ];
 
   meta = with lib; {
-    description = "A Pythonic Fzf Wrapper";
+    description = "Pythonic Fzf Wrapper";
     downloadPage = "https://github.com/justfoolingaround/fzf.py";
     homepage = "https://pypi.org/project/krfzf-py/";
     license = licenses.gpl3Only;
diff --git a/pkgs/development/python-modules/kserve/default.nix b/pkgs/development/python-modules/kserve/default.nix
index 7796f3bedd6e3..567467c7bf473 100644
--- a/pkgs/development/python-modules/kserve/default.nix
+++ b/pkgs/development/python-modules/kserve/default.nix
@@ -1,6 +1,7 @@
 {
   lib,
   buildPythonPackage,
+  pythonOlder,
   fetchFromGitHub,
   deprecation,
   poetry-core,
@@ -29,20 +30,23 @@
   boto3,
   botocore,
   google-cloud-storage,
+  grpcio-testing,
   pytestCheckHook,
   tomlkit,
 }:
 
 buildPythonPackage rec {
   pname = "kserve";
-  version = "0.12.1";
+  version = "0.13.0";
   pyproject = true;
 
+  disabled = pythonOlder "3.8";
+
   src = fetchFromGitHub {
     owner = "kserve";
     repo = "kserve";
     rev = "refs/tags/v${version}";
-    hash = "sha256-gKJkG8zJY1sGGpI27YZ/QnEPU8J7KHva3nI+JCglQaQ=";
+    hash = "sha256-Fu+1AR7FU4EQ+PhMneHFr3at3N9cN7V24wm/VOfY8GA=";
   };
 
   sourceRoot = "${src.name}/python/kserve";
@@ -93,6 +97,7 @@ buildPythonPackage rec {
     boto3
     botocore
     google-cloud-storage
+    grpcio-testing
     pytestCheckHook
     tomlkit
   ];
@@ -109,10 +114,11 @@ buildPythonPackage rec {
     "test_infer_v2"
   ];
 
-  meta = with lib; {
+  meta = {
     description = "Standardized Serverless ML Inference Platform on Kubernetes";
     homepage = "https://github.com/kserve/kserve/tree/master/python/kserve";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ GaetanLepage ];
+    changelog = "https://github.com/kserve/kserve/releases/tag/v${version}";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
   };
 }
diff --git a/pkgs/development/python-modules/lacuscore/default.nix b/pkgs/development/python-modules/lacuscore/default.nix
index 58bb71d9011ce..cd18863618ad5 100644
--- a/pkgs/development/python-modules/lacuscore/default.nix
+++ b/pkgs/development/python-modules/lacuscore/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "lacuscore";
-  version = "1.9.4";
+  version = "1.9.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "ail-project";
     repo = "LacusCore";
     rev = "refs/tags/v${version}";
-    hash = "sha256-wjkU9rZvR7fySeNvMizLYL3JwsfhicdtezWeuwMCHgM=";
+    hash = "sha256-SCObCYcZ+aDzWOkE5tzkKMkgAP/h7HDNyHXMFmYjiHQ=";
   };
 
   pythonRelaxDeps = [
@@ -55,7 +55,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "lacuscore" ];
 
   meta = with lib; {
-    description = "The modulable part of Lacus";
+    description = "Modulable part of Lacus";
     homepage = "https://github.com/ail-project/LacusCore";
     changelog = "https://github.com/ail-project/LacusCore/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/langchain-chroma/default.nix b/pkgs/development/python-modules/langchain-chroma/default.nix
new file mode 100644
index 0000000000000..fb11a1abeed4a
--- /dev/null
+++ b/pkgs/development/python-modules/langchain-chroma/default.nix
@@ -0,0 +1,52 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  chromadb,
+  langchain-core,
+  numpy,
+  poetry-core,
+  pytestCheckHook,
+  nix-update-script,
+}:
+
+buildPythonPackage rec {
+  pname = "langchain-chroma";
+  version = "0.1.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "langchain-ai";
+    repo = "langchain";
+    rev = "refs/tags/langchain-chroma==${version}";
+    hash = "sha256-PW4vfZVccuYnaR0jtOfHVaXXYoUyQbCfB8NwM+mXFGc=";
+  };
+
+  sourceRoot = "${src.name}/libs/partners/chroma";
+
+  build-system = [ poetry-core ];
+
+  dependencies = [
+    langchain-core
+    chromadb
+    numpy
+  ];
+
+  pythonImportsCheck = [ "langchain_chroma" ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  passthru.updateScript = nix-update-script {
+    extraArgs = [
+      "--version-regex"
+      "langchain-chroma==(.*)"
+    ];
+  };
+
+  meta = {
+    description = "Build context-aware reasoning applications";
+    homepage = "https://github.com/langchain-ai/langchain";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+  };
+}
diff --git a/pkgs/development/python-modules/langchain-community/default.nix b/pkgs/development/python-modules/langchain-community/default.nix
index e8e028570abd9..063ee482ddb5c 100644
--- a/pkgs/development/python-modules/langchain-community/default.nix
+++ b/pkgs/development/python-modules/langchain-community/default.nix
@@ -1,40 +1,55 @@
 {
   lib,
   buildPythonPackage,
-  fetchPypi,
+  fetchFromGitHub,
   poetry-core,
   pythonOlder,
   aiohttp,
   dataclasses-json,
+  duckdb-engine,
+  langchain,
   langchain-core,
   langsmith,
+  lark,
   numpy,
+  pandas,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
   pyyaml,
   requests,
+  requests-mock,
+  responses,
   sqlalchemy,
+  syrupy,
   tenacity,
+  toml,
   typer,
 }:
 
 buildPythonPackage rec {
   pname = "langchain-community";
-  version = "0.0.38";
+  version = "0.2.5";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    pname = "langchain_community";
-    inherit version;
-    hash = "sha256-En/Et1vGe2L+gnxmwC5xWnMP74/mm9ICPUZrqwa1gQ0=";
+  src = fetchFromGitHub {
+    owner = "langchain-ai";
+    repo = "langchain";
+    rev = "refs/tags/${pname}==${version}";
+    hash = "sha256-SVqhNfRAQoVyUsPw55ByPtVzU/h1II/ox8I79QJsci8=";
   };
 
+  sourceRoot = "${src.name}/libs/community";
+
   build-system = [ poetry-core ];
 
   dependencies = [
     aiohttp
     dataclasses-json
     langchain-core
+    langchain
     langsmith
     numpy
     pyyaml
@@ -49,13 +64,37 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "langchain_community" ];
 
-  # PyPI source does not have tests
-  doCheck = false;
+  nativeCheckInputs = [
+    duckdb-engine
+    lark
+    pandas
+    pytest-asyncio
+    pytest-mock
+    pytestCheckHook
+    requests-mock
+    responses
+    syrupy
+    toml
+  ];
+
+  pytestFlagsArray = [ "tests/unit_tests" ];
+
+  passthru = {
+    updateScript = langchain-core.updateScript;
+  };
+
+  __darwinAllowLocalNetworking = true;
+
+  disabledTests = [
+    # Test require network access
+    "test_ovhcloud_embed_documents"
+  ];
 
-  meta = with lib; {
+  meta = {
     description = "Community contributed LangChain integrations";
     homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/community";
-    license = licenses.mit;
-    maintainers = with maintainers; [ natsukium ];
+    changelog = "https://github.com/langchain-ai/langchain/releases/tag/v${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
   };
 }
diff --git a/pkgs/development/python-modules/langchain-core/default.nix b/pkgs/development/python-modules/langchain-core/default.nix
index 8cfa8cafd9ee1..954ddd477f4ae 100644
--- a/pkgs/development/python-modules/langchain-core/default.nix
+++ b/pkgs/development/python-modules/langchain-core/default.nix
@@ -1,33 +1,43 @@
 {
   lib,
-  anyio,
   buildPythonPackage,
-  fetchPypi,
+  fetchFromGitHub,
+  freezegun,
+  grandalf,
   jsonpatch,
   langsmith,
+  numpy,
   packaging,
   poetry-core,
   pydantic,
+  pytest-asyncio,
+  pytest-mock,
+  pytest-xdist,
+  pytestCheckHook,
   pythonOlder,
   pythonRelaxDepsHook,
   pyyaml,
-  requests,
+  syrupy,
   tenacity,
+  writeScript,
 }:
 
 buildPythonPackage rec {
   pname = "langchain-core";
-  version = "0.1.52";
+  version = "0.2.7";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    pname = "langchain_core";
-    inherit version;
-    hash = "sha256-CEw/xFL1ppZsKKs+xdvIuNJvw/YzeAc5KPTinZC2OT8=";
+  src = fetchFromGitHub {
+    owner = "langchain-ai";
+    repo = "langchain";
+    rev = "langchain-core==${version}";
+    hash = "sha256-MmWgnpOO+OWUyRUBqIKuIHG2/p8NfSlVJVbUXfF4spg=";
   };
 
+  sourceRoot = "${src.name}/libs/core";
+
   pythonRelaxDeps = [
     "langsmith"
     "packaging"
@@ -38,25 +48,54 @@ buildPythonPackage rec {
   nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
-    anyio
     jsonpatch
     langsmith
     packaging
     pydantic
     pyyaml
-    requests
     tenacity
   ];
 
   pythonImportsCheck = [ "langchain_core" ];
 
-  # PyPI source does not have tests
-  doCheck = false;
+  nativeCheckInputs = [
+    freezegun
+    grandalf
+    numpy
+    pytest-asyncio
+    pytest-mock
+    pytest-xdist
+    pytestCheckHook
+    syrupy
+  ];
+
+  pytestFlagsArray = [ "tests/unit_tests" ];
+
+  disabledTests = [
+    # Fail for an unclear reason with:
+    # AssertionError: assert '6a92363c-4ac...-d344769ab6ac' == '09af124a-2ed...-671c64c72b70'
+    "test_config_traceable_handoff"
+    "test_config_traceable_async_handoff"
+  ];
+
+  passthru = {
+    updateScript = writeScript "update.sh" ''
+      #!/usr/bin/env nix-shell
+      #!nix-shell -i bash -p nix-update
+
+      set -eu -o pipefail
+      nix-update --commit --version-regex 'langchain-core==(.*)' python3Packages.langchain-core
+      nix-update --commit --version-regex 'langchain-text-splitters==(.*)' python3Packages.langchain-text-splitters
+      nix-update --commit --version-regex 'langchain==(.*)' python3Packages.langchain
+      nix-update --commit --version-regex 'langchain-community==(.*)' python3Packages.langchain-community
+    '';
+  };
 
-  meta = with lib; {
+  meta = {
     description = "Building applications with LLMs through composability";
     homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/core";
-    license = licenses.mit;
-    maintainers = with maintainers; [ natsukium ];
+    changelog = "https://github.com/langchain-ai/langchain/releases/tag/v${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
   };
 }
diff --git a/pkgs/development/python-modules/langchain-text-splitters/default.nix b/pkgs/development/python-modules/langchain-text-splitters/default.nix
index 3f8fa837af7a3..d24c177a07125 100644
--- a/pkgs/development/python-modules/langchain-text-splitters/default.nix
+++ b/pkgs/development/python-modules/langchain-text-splitters/default.nix
@@ -1,42 +1,52 @@
 {
   lib,
   buildPythonPackage,
-  fetchPypi,
+  fetchFromGitHub,
   poetry-core,
   langchain-core,
-  lxml,
+  pytest-asyncio,
+  pytestCheckHook,
   pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "langchain-text-splitters";
-  version = "0.0.2";
+  version = "0.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
 
-  src = fetchPypi {
-    pname = "langchain_text_splitters";
-    inherit version;
-    hash = "sha256-rIkn3AugjrpwL2lhye19986tjeGan3EBqyteo0IBs8E=";
+  src = fetchFromGitHub {
+    owner = "langchain-ai";
+    repo = "langchain";
+    rev = "refs/tags/langchain-text-splitters==${version}";
+    hash = "sha256-5le+P+7iGjrTetnTHiJilqtc7G7kJbZnEsUgFyF2aQ8=";
   };
 
+  sourceRoot = "${src.name}/libs/text-splitters";
+
   build-system = [ poetry-core ];
 
-  dependencies = [
-    langchain-core
-    lxml
+  dependencies = [ langchain-core ];
+
+  pythonImportsCheck = [ "langchain_text_splitters" ];
+
+  nativeCheckInputs = [
+    pytest-asyncio
+    pytestCheckHook
   ];
 
-  # PyPI source does not have tests
-  doCheck = false;
+  pytestFlagsArray = [ "tests/unit_tests" ];
 
-  pythonImportsCheck = [ "langchain_text_splitters" ];
+  passthru = {
+    inherit (langchain-core) updateScript;
+  };
 
-  meta = with lib; {
+  meta = {
     description = "Build context-aware reasoning applications";
     homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/text-splitters";
-    license = licenses.mit;
-    maintainers = with maintainers; [ fab ];
+    changelog = "https://github.com/langchain-ai/langchain/releases/tag/${src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/langchain/default.nix b/pkgs/development/python-modules/langchain/default.nix
index 804f63a88e9ff..b6d34154583d2 100644
--- a/pkgs/development/python-modules/langchain/default.nix
+++ b/pkgs/development/python-modules/langchain/default.nix
@@ -2,29 +2,15 @@
   lib,
   aiohttp,
   async-timeout,
-  azure-core,
-  azure-cosmos,
-  azure-identity,
   bash,
   buildPythonPackage,
-  chardet,
-  clarifai,
-  cohere,
-  dataclasses-json,
-  esprima,
   fetchFromGitHub,
   freezegun,
-  huggingface-hub,
-  jsonpatch,
-  langchain-community,
   langchain-core,
   langchain-text-splitters,
   langsmith,
   lark,
-  manifest-ml,
-  nlpcloud,
   numpy,
-  openai,
   pandas,
   poetry-core,
   pydantic,
@@ -34,24 +20,18 @@
   pytestCheckHook,
   pythonOlder,
   pyyaml,
-  qdrant-client,
   requests-mock,
   requests,
   responses,
-  sentence-transformers,
   sqlalchemy,
   syrupy,
   tenacity,
-  tiktoken,
   toml,
-  torch,
-  transformers,
-  typer,
 }:
 
 buildPythonPackage rec {
   pname = "langchain";
-  version = "0.1.52";
+  version = "0.2.5";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -59,8 +39,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "langchain-ai";
     repo = "langchain";
-    rev = "refs/tags/langchain-core==${version}";
-    hash = "sha256-H8rtysRIwyuJEUFI93vid3MsqReyRCER88xztsuYpOc=";
+    rev = "refs/tags/langchain==${version}";
+    hash = "sha256-WaJRXvA/SImTSgAkk06vmOtTbsYYs8nTChFLzmsFz7Q=";
   };
 
   sourceRoot = "${src.name}/libs/langchain";
@@ -71,9 +51,6 @@ buildPythonPackage rec {
 
   dependencies = [
     aiohttp
-    dataclasses-json
-    jsonpatch
-    langchain-community
     langchain-core
     langchain-text-splitters
     langsmith
@@ -85,46 +62,6 @@ buildPythonPackage rec {
     tenacity
   ] ++ lib.optionals (pythonOlder "3.11") [ async-timeout ];
 
-  passthru.optional-dependencies = {
-    llms = [
-      clarifai
-      cohere
-      openai
-      # openlm
-      nlpcloud
-      huggingface-hub
-      manifest-ml
-      torch
-      transformers
-    ];
-    qdrant = [ qdrant-client ];
-    openai = [
-      openai
-      tiktoken
-    ];
-    text_helpers = [ chardet ];
-    clarifai = [ clarifai ];
-    cohere = [ cohere ];
-    docarray = [
-      # docarray
-    ];
-    embeddings = [ sentence-transformers ];
-    javascript = [ esprima ];
-    azure = [
-      azure-identity
-      azure-cosmos
-      openai
-      azure-core
-      # azure-ai-formrecognizer
-      # azure-ai-vision
-      # azure-cognitiveservices-speech
-      # azure-search-documents
-      # azure-ai-textanalytics
-    ];
-    all = [ ];
-    cli = [ typer ];
-  };
-
   nativeCheckInputs = [
     freezegun
     lark
@@ -166,12 +103,16 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "langchain" ];
 
-  meta = with lib; {
+  passthru = {
+    updateScript = langchain-core.updateScript;
+  };
+
+  meta = {
     description = "Building applications with LLMs through composability";
     homepage = "https://github.com/langchain-ai/langchain";
     changelog = "https://github.com/langchain-ai/langchain/releases/tag/v${version}";
-    license = licenses.mit;
-    maintainers = with maintainers; [ natsukium ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
     mainProgram = "langchain-server";
   };
 }
diff --git a/pkgs/development/python-modules/langfuse/default.nix b/pkgs/development/python-modules/langfuse/default.nix
new file mode 100644
index 0000000000000..ceff4e3ba26e3
--- /dev/null
+++ b/pkgs/development/python-modules/langfuse/default.nix
@@ -0,0 +1,63 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  backoff,
+  httpx,
+  idna,
+  langchain,
+  llama-index,
+  openai,
+  packaging,
+  poetry-core,
+  pydantic,
+  pythonRelaxDepsHook,
+  wrapt,
+}:
+
+buildPythonPackage rec {
+  pname = "langfuse";
+  version = "2.36.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "langfuse";
+    repo = "langfuse-python";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-qPSkATK+IRgtK43B9nr5rC3zZ7qm+/uBJrm7mVhZyUE=";
+  };
+
+  build-system = [ poetry-core ];
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
+
+  pythonRelaxDeps = [ "packaging" ];
+
+  dependencies = [
+    backoff
+    httpx
+    idna
+    packaging
+    pydantic
+    wrapt
+  ];
+
+  optional-dependencies = {
+    langchain = [ langchain ];
+    llama-index = [ llama-index ];
+    openai = [ openai ];
+  };
+
+  pythonImportsCheck = [ "langfuse" ];
+
+  # tests require network access and openai api key
+  doCheck = false;
+
+  meta = {
+    description = "Instrument your LLM app with decorators or low-level SDK and get detailed tracing/observability";
+    homepage = "https://github.com/langfuse/langfuse-python";
+    changelog = "https://github.com/langfuse/langfuse-python/releases/tag/${src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+  };
+}
diff --git a/pkgs/development/python-modules/langsmith/default.nix b/pkgs/development/python-modules/langsmith/default.nix
index 2685a5260c163..d86c96eb87ade 100644
--- a/pkgs/development/python-modules/langsmith/default.nix
+++ b/pkgs/development/python-modules/langsmith/default.nix
@@ -4,6 +4,7 @@
   anthropic,
   attr,
   buildPythonPackage,
+  dataclasses-json,
   fastapi,
   fetchFromGitHub,
   freezegun,
@@ -22,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "langsmith";
-  version = "0.1.60";
+  version = "0.1.77";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -31,17 +32,16 @@ buildPythonPackage rec {
     owner = "langchain-ai";
     repo = "langsmith-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-YoJ9rdbc4lcQ0ZxE0bYCa+VMKO2kqJRTpxZz4QGPzzM=";
+    hash = "sha256-Tkqo0BbBqFMsEDtEo0sVgSQOoa/J+ECw/7T7yALnL84=";
   };
 
   sourceRoot = "${src.name}/python";
 
   pythonRelaxDeps = [ "orjson" ];
 
-  build-system = [
-    poetry-core
-    pythonRelaxDepsHook
-  ];
+  build-system = [ poetry-core ];
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     orjson
@@ -51,6 +51,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     anthropic
+    dataclasses-json
     fastapi
     freezegun
     httpx
diff --git a/pkgs/development/python-modules/lark/default.nix b/pkgs/development/python-modules/lark/default.nix
index 327c41080b4a6..df891d96ed79b 100644
--- a/pkgs/development/python-modules/lark/default.nix
+++ b/pkgs/development/python-modules/lark/default.nix
@@ -42,7 +42,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A modern parsing library for Python, implementing Earley & LALR(1) and an easy interface";
+    description = "Modern parsing library for Python, implementing Earley & LALR(1) and an easy interface";
     homepage = "https://lark-parser.readthedocs.io/";
     changelog = "https://github.com/lark-parser/lark/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/laszip/default.nix b/pkgs/development/python-modules/laszip/default.nix
index bd9a89ce2414a..97c268d956ba0 100644
--- a/pkgs/development/python-modules/laszip/default.nix
+++ b/pkgs/development/python-modules/laszip/default.nix
@@ -7,7 +7,7 @@
   scikit-build-core,
   pybind11,
   cmake,
-  LASzip,
+  laszip,
   ninja,
   pythonOlder,
 }:
@@ -48,7 +48,7 @@ buildPythonPackage rec {
 
   dontUseCmakeConfigure = true;
 
-  buildInputs = [ LASzip ];
+  buildInputs = [ laszip ];
 
   # There are no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/latex2pydata/default.nix b/pkgs/development/python-modules/latex2pydata/default.nix
new file mode 100644
index 0000000000000..80005a173af04
--- /dev/null
+++ b/pkgs/development/python-modules/latex2pydata/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, setuptools
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "latex2pydata";
+  version = "0.4.0";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-Ega1cHSP187njyelb0yiCdpk08QZyObelRa2S79AE1E=";
+  };
+
+  build-system = [
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  meta = {
+    homepage = "https://github.com/gpoore/latex2pydata";
+    description = "Send data from LaTeX to Python using Python literal format";
+    license = lib.licenses.bsd3;
+    platforms = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ romildo ];
+  };
+}
diff --git a/pkgs/development/python-modules/laundrify-aio/default.nix b/pkgs/development/python-modules/laundrify-aio/default.nix
index dfbb99d33f0af..70244547abec0 100644
--- a/pkgs/development/python-modules/laundrify-aio/default.nix
+++ b/pkgs/development/python-modules/laundrify-aio/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "laundrify-aio";
-  version = "1.1.2";
+  version = "1.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "laundrify";
     repo = "laundrify-pypi";
     rev = "v${version}";
-    hash = "sha256-+dTvYn4hux3Y19kWZwxhdkBARmfD8SuNlYWM/ET9K2M=";
+    hash = "sha256-mIdw2167H4Ume/DqV+fjRiBrph+8Jj5EEUALDDj4ah8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/layoutparser/default.nix b/pkgs/development/python-modules/layoutparser/default.nix
index 12bba0a9ba719..3b6b8165aea2c 100644
--- a/pkgs/development/python-modules/layoutparser/default.nix
+++ b/pkgs/development/python-modules/layoutparser/default.nix
@@ -99,7 +99,7 @@ buildPythonPackage {
   passthru.optional-dependencies = optional-dependencies;
 
   meta = with lib; {
-    description = "A unified toolkit for Deep Learning Based Document Image Analysis";
+    description = "Unified toolkit for Deep Learning Based Document Image Analysis";
     homepage = "https://github.com/Layout-Parser/layout-parser";
     changelog = "https://github.com/Layout-Parser/layout-parser/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/lazr-restfulclient/default.nix b/pkgs/development/python-modules/lazr-restfulclient/default.nix
index 5e11150e91fea..e6f1e9f208ff3 100644
--- a/pkgs/development/python-modules/lazr-restfulclient/default.nix
+++ b/pkgs/development/python-modules/lazr-restfulclient/default.nix
@@ -47,7 +47,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "lazr.restfulclient" ];
 
   meta = with lib; {
-    description = "A programmable client library that takes advantage of the commonalities among";
+    description = "Programmable client library that takes advantage of the commonalities among";
     homepage = "https://launchpad.net/lazr.restfulclient";
     license = licenses.lgpl3;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/lazr-uri/default.nix b/pkgs/development/python-modules/lazr-uri/default.nix
index 5a5972edf9e4c..f714fa9ccd49f 100644
--- a/pkgs/development/python-modules/lazr-uri/default.nix
+++ b/pkgs/development/python-modules/lazr-uri/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ setuptools ];
 
   meta = with lib; {
-    description = "A self-contained, easily reusable library for parsing, manipulating";
+    description = "Self-contained, easily reusable library for parsing, manipulating";
     homepage = "https://launchpad.net/lazr.uri";
     license = licenses.lgpl3;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/lazy-imports/default.nix b/pkgs/development/python-modules/lazy-imports/default.nix
index f52e2cc7e0938..4efed32b70d66 100644
--- a/pkgs/development/python-modules/lazy-imports/default.nix
+++ b/pkgs/development/python-modules/lazy-imports/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage {
   ];
 
   meta = with lib; {
-    description = "Python tool to support lazy imports.";
+    description = "Python tool to support lazy imports";
     homepage = "https://github.com/telekom/lazy-imports";
     changelog = "https://github.com/telekom/lazy-imports/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/lazy-object-proxy/default.nix b/pkgs/development/python-modules/lazy-object-proxy/default.nix
index d8dbab409e3a2..33467e6f3b1e7 100644
--- a/pkgs/development/python-modules/lazy-object-proxy/default.nix
+++ b/pkgs/development/python-modules/lazy-object-proxy/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A fast and thorough lazy object proxy";
+    description = "Fast and thorough lazy object proxy";
     homepage = "https://github.com/ionelmc/python-lazy-object-proxy";
     license = with licenses; [ bsd2 ];
   };
diff --git a/pkgs/development/python-modules/lcgit/default.nix b/pkgs/development/python-modules/lcgit/default.nix
index 5164819073f01..01b5ddcbdefe0 100644
--- a/pkgs/development/python-modules/lcgit/default.nix
+++ b/pkgs/development/python-modules/lcgit/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "lcgit" ];
 
   meta = with lib; {
-    description = "A pythonic Linear Congruential Generator iterator";
+    description = "Pythonic Linear Congruential Generator iterator";
     homepage = "https://github.com/cisagov/lcgit";
     changelog = "https://github.com/cisagov/lcgit/releases/tag/v${version}";
     license = licenses.cc0;
diff --git a/pkgs/development/python-modules/ldap3/default.nix b/pkgs/development/python-modules/ldap3/default.nix
index 608656fbbbd36..7cf35cfe2c466 100644
--- a/pkgs/development/python-modules/ldap3/default.nix
+++ b/pkgs/development/python-modules/ldap3/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://pypi.python.org/pypi/ldap3";
-    description = "A strictly RFC 4510 conforming LDAP V3 pure Python client library";
+    description = "Strictly RFC 4510 conforming LDAP V3 pure Python client library";
     license = licenses.lgpl3;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/ldappool/default.nix b/pkgs/development/python-modules/ldappool/default.nix
index 3d56668c88149..8184d7cd433fc 100644
--- a/pkgs/development/python-modules/ldappool/default.nix
+++ b/pkgs/development/python-modules/ldappool/default.nix
@@ -45,7 +45,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ldappool" ];
 
   meta = with lib; {
-    description = "A simple connector pool for python-ldap";
+    description = "Simple connector pool for python-ldap";
     homepage = "https://opendev.org/openstack/ldappool/";
     license = with licenses; [
       mpl11
diff --git a/pkgs/development/python-modules/ldaptor/default.nix b/pkgs/development/python-modules/ldaptor/default.nix
index 44c4df313e9f7..1b9c9f6ec8a20 100644
--- a/pkgs/development/python-modules/ldaptor/default.nix
+++ b/pkgs/development/python-modules/ldaptor/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A Pure-Python Twisted library for LDAP";
+    description = "Pure-Python Twisted library for LDAP";
     homepage = "https://github.com/twisted/ldaptor";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/leb128/default.nix b/pkgs/development/python-modules/leb128/default.nix
index 9a955dff2a3b0..40ebe1d9fda87 100644
--- a/pkgs/development/python-modules/leb128/default.nix
+++ b/pkgs/development/python-modules/leb128/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "leb128" ];
 
   meta = with lib; {
-    description = "A utility to encode and decode Little Endian Base 128";
+    description = "Utility to encode and decode Little Endian Base 128";
     homepage = "https://github.com/mohanson/leb128";
     license = licenses.mit;
     maintainers = with maintainers; [ urlordjames ];
diff --git a/pkgs/development/python-modules/ledger-bitcoin/default.nix b/pkgs/development/python-modules/ledger-bitcoin/default.nix
index 3387a40cb2361..fc22db58923b0 100644
--- a/pkgs/development/python-modules/ledger-bitcoin/default.nix
+++ b/pkgs/development/python-modules/ledger-bitcoin/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ledger_bitcoin" ];
 
   meta = with lib; {
-    description = "Client library for Ledger Bitcoin application.";
+    description = "Client library for Ledger Bitcoin application";
     homepage = "https://github.com/LedgerHQ/app-bitcoin-new/tree/develop/bitcoin_client/ledger_bitcoin";
     license = licenses.asl20;
   };
diff --git a/pkgs/development/python-modules/ledgerblue/default.nix b/pkgs/development/python-modules/ledgerblue/default.nix
index 093002f65433f..0a1f6841d3909 100644
--- a/pkgs/development/python-modules/ledgerblue/default.nix
+++ b/pkgs/development/python-modules/ledgerblue/default.nix
@@ -24,14 +24,14 @@
 
 buildPythonPackage rec {
   pname = "ledgerblue";
-  version = "0.1.53";
+  version = "0.1.54";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-j5FCQnp+MNrJ8zgYeLRuWF+Gdq0FwJeBYyJALb+H8So=";
+    hash = "sha256-Hn99ST6RnER6XI6+rqA3O9/aC+whYoTOzeoHGF/fFz4=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/ledgercomm/default.nix b/pkgs/development/python-modules/ledgercomm/default.nix
index bf76775467b48..b23b296385586 100644
--- a/pkgs/development/python-modules/ledgercomm/default.nix
+++ b/pkgs/development/python-modules/ledgercomm/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ledgercomm" ];
 
   meta = with lib; {
-    description = "Python library to send and receive APDU through HID or TCP socket. It can be used with a Ledger Nano S/X or with the Speculos emulator.";
+    description = "Python library to send and receive APDU through HID or TCP socket. It can be used with a Ledger Nano S/X or with the Speculos emulator";
     mainProgram = "ledgercomm-send";
     homepage = "https://github.com/LedgerHQ/ledgercomm";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/ledgerwallet/default.nix b/pkgs/development/python-modules/ledgerwallet/default.nix
index b24d831b1e8fc..b2100be0cbe28 100644
--- a/pkgs/development/python-modules/ledgerwallet/default.nix
+++ b/pkgs/development/python-modules/ledgerwallet/default.nix
@@ -2,7 +2,6 @@
   lib,
   stdenv,
   fetchFromGitHub,
-  fetchpatch,
   buildPythonPackage,
   cryptography,
   click,
@@ -54,7 +53,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/LedgerHQ/ledgerctl";
-    description = "A library to control Ledger devices";
+    description = "Library to control Ledger devices";
     mainProgram = "ledgerctl";
     license = licenses.mit;
     maintainers = with maintainers; [
diff --git a/pkgs/development/python-modules/libcloud/default.nix b/pkgs/development/python-modules/libcloud/default.nix
index 4e6e7b30dde7c..8c3481cdecffb 100644
--- a/pkgs/development/python-modules/libcloud/default.nix
+++ b/pkgs/development/python-modules/libcloud/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "libcloud" ];
 
   meta = with lib; {
-    description = "A unified interface to many cloud providers";
+    description = "Unified interface to many cloud providers";
     homepage = "https://libcloud.apache.org/";
     changelog = "https://github.com/apache/libcloud/blob/v${version}/CHANGES.rst";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/libgpuarray/default.nix b/pkgs/development/python-modules/libgpuarray/default.nix
index d8518f30a0ae7..7645f8bc74276 100644
--- a/pkgs/development/python-modules/libgpuarray/default.nix
+++ b/pkgs/development/python-modules/libgpuarray/default.nix
@@ -86,7 +86,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/Theano/libgpuarray";
-    description = "Library to manipulate tensors on GPU.";
+    description = "Library to manipulate tensors on GPU";
     license = licenses.free;
     maintainers = with maintainers; [ artuuge ];
     platforms = platforms.unix;
diff --git a/pkgs/development/python-modules/libgravatar/default.nix b/pkgs/development/python-modules/libgravatar/default.nix
index 37d3373c7aa2f..57b799854854d 100644
--- a/pkgs/development/python-modules/libgravatar/default.nix
+++ b/pkgs/development/python-modules/libgravatar/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "libgravatar" ];
 
   meta = with lib; {
-    description = "A library that provides a Python 3 interface for the Gravatar API";
+    description = "Library that provides a Python 3 interface for the Gravatar API";
     homepage = "https://github.com/pabluk/libgravatar";
     changelog = "https://github.com/pabluk/libgravatar/releases/tag/${version}";
     license = licenses.gpl3Plus;
diff --git a/pkgs/development/python-modules/libkeepass/default.nix b/pkgs/development/python-modules/libkeepass/default.nix
index 90b6f78c69734..4b6faad610ecd 100644
--- a/pkgs/development/python-modules/libkeepass/default.nix
+++ b/pkgs/development/python-modules/libkeepass/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/libkeepass/libkeepass";
-    description = "A library to access KeePass 1.x/KeePassX (v3) and KeePass 2.x (v4) files";
+    description = "Library to access KeePass 1.x/KeePassX (v3) and KeePass 2.x (v4) files";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ jqueiroz ];
   };
diff --git a/pkgs/development/python-modules/libknot/default.nix b/pkgs/development/python-modules/libknot/default.nix
index eb7a21ea53ef4..60c282a1e59b9 100644
--- a/pkgs/development/python-modules/libknot/default.nix
+++ b/pkgs/development/python-modules/libknot/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "libknot";
-  version = "3.3.5";
+  version = "3.3.6";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-nEeDawZ/kChHQA3qoEKy+R+Uy7ogNL3ows3Yzs5OhpY=";
+    hash = "sha256-N96gdO5sezMyKt0QdX7ORg5DnEVSqb1j+WohvOHdYYU=";
   };
 
   postPatch = ''
@@ -26,7 +26,7 @@ buildPythonPackage rec {
       --replace "libknot.so%s" "${lib.getLib knot-dns}/lib/libknot.so%s"
   '';
 
-  nativeBuildInputs = [ hatchling ];
+  build-system = [ hatchling ];
 
   pythonImportsCheck = [ "libknot" ];
 
@@ -35,6 +35,5 @@ buildPythonPackage rec {
     homepage = "https://gitlab.nic.cz/knot/knot-dns/-/tree/master/python/libknot";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ hexa ];
-    mainProgram = "libknot";
   };
 }
diff --git a/pkgs/development/python-modules/liblarch/default.nix b/pkgs/development/python-modules/liblarch/default.nix
index a3854791e6677..1f891c126aef1 100644
--- a/pkgs/development/python-modules/liblarch/default.nix
+++ b/pkgs/development/python-modules/liblarch/default.nix
@@ -40,7 +40,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A python library built to easily handle data structure such are lists, trees and acyclic graphs";
+    description = "Python library built to easily handle data structure such are lists, trees and acyclic graphs";
     homepage = "https://github.com/getting-things-gnome/liblarch";
     downloadPage = "https://github.com/getting-things-gnome/liblarch/releases";
     license = licenses.lgpl3Plus;
diff --git a/pkgs/development/python-modules/libmambapy/default.nix b/pkgs/development/python-modules/libmambapy/default.nix
index 0466bebfe3099..73c31a259d9d5 100644
--- a/pkgs/development/python-modules/libmambapy/default.nix
+++ b/pkgs/development/python-modules/libmambapy/default.nix
@@ -85,7 +85,7 @@ buildPythonPackage rec {
   ];
 
   meta = {
-    description = "The python library for the fast Cross-Platform Package Manager";
+    description = "Python library for the fast Cross-Platform Package Manager";
     homepage = "https://github.com/mamba-org/mamba";
     license = lib.licenses.bsd3;
     maintainers = [ lib.maintainers.ericthemagician ];
diff --git a/pkgs/development/python-modules/libpysal/default.nix b/pkgs/development/python-modules/libpysal/default.nix
new file mode 100644
index 0000000000000..8ec004d6c4810
--- /dev/null
+++ b/pkgs/development/python-modules/libpysal/default.nix
@@ -0,0 +1,86 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  beautifulsoup4,
+  fiona,
+  geodatasets,
+  geopandas,
+  numpy,
+  packaging,
+  pandas,
+  platformdirs,
+  requests,
+  scikit-learn,
+  scipy,
+  setuptools-scm,
+  shapely,
+}:
+
+buildPythonPackage rec {
+  pname = "libpysal";
+  version = "4.11.0";
+  pyproject = true;
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "pysal";
+    repo = "libpysal";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-1JZ82wO0kisbTrhsn+BYeNZpkMJUEzuflQ6GqpAYH/c=";
+  };
+
+  build-system = [ setuptools-scm ];
+
+  propagatedBuildInputs = [
+    beautifulsoup4
+    fiona
+    geopandas
+    numpy
+    packaging
+    pandas
+    platformdirs
+    requests
+    scikit-learn
+    scipy
+    shapely
+  ];
+
+  nativeCheckInputs = [
+    geodatasets
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    export HOME=$TMPDIR
+  '';
+
+  # requires network access
+  disabledTestPaths = [
+    "libpysal/cg/tests/test_geoJSON.py"
+    "libpysal/examples/tests/test_available.py"
+    "libpysal/graph/tests/test_base.py"
+    "libpysal/graph/tests/test_builders.py"
+    "libpysal/graph/tests/test_contiguity.py"
+    "libpysal/graph/tests/test_kernel.py"
+    "libpysal/graph/tests/test_matching.py"
+    "libpysal/graph/tests/test_plotting.py"
+    "libpysal/graph/tests/test_triangulation.py"
+    "libpysal/graph/tests/test_utils.py"
+    "libpysal/graph/tests/test_set_ops.py"
+    "libpysal/weights/tests/test_contiguity.py"
+    "libpysal/weights/tests/test_util.py"
+  ];
+
+  pythonImportsCheck = [ "libpysal" ];
+
+  meta = {
+    description = "Library of spatial analysis functions";
+    homepage = "https://pysal.org/libpysal/";
+    license = lib.licenses.bsd3;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/libretranslate/default.nix b/pkgs/development/python-modules/libretranslate/default.nix
index 82e0377fe6eff..cc1e27a8db568 100644
--- a/pkgs/development/python-modules/libretranslate/default.nix
+++ b/pkgs/development/python-modules/libretranslate/default.nix
@@ -31,14 +31,14 @@
 
 buildPythonPackage rec {
   pname = "libretranslate";
-  version = "1.5.7";
+  version = "1.6.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "LibreTranslate";
     repo = "LibreTranslate";
     rev = "refs/tags/v${version}";
-    hash = "sha256-lOVi/809ig+KtiNwdt9Wovn+2Q8I6amps1sZ5JJy7WE=";
+    hash = "sha256-QH+H1UubDDv2SZa/razs+JYu4BbZzWHh7DLWfZEWCes=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/libtmux/default.nix b/pkgs/development/python-modules/libtmux/default.nix
index abd82ba2f25ec..0bb5cb5cda287 100644
--- a/pkgs/development/python-modules/libtmux/default.nix
+++ b/pkgs/development/python-modules/libtmux/default.nix
@@ -1,33 +1,34 @@
 {
   lib,
   stdenv,
-  fetchFromGitHub,
   buildPythonPackage,
+  fetchFromGitHub,
+  ncurses,
   poetry-core,
+  procps,
   pytest-rerunfailures,
   pytestCheckHook,
-  procps,
   tmux,
-  ncurses,
 }:
 
 buildPythonPackage rec {
   pname = "libtmux";
-  version = "0.36.0";
+  version = "0.37.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "tmux-python";
-    repo = pname;
+    repo = "libtmux";
     rev = "refs/tags/v${version}";
-    hash = "sha256-oJ2IGaPFMKA/amUEPZi1UO9vZtjPNQg3SIFjQWzUeSE=";
+    hash = "sha256-I0E6zkfQ6mx2svCaXEgKPhrrog3iLgXZ4E3CMMxPkIA=";
   };
 
   postPatch = ''
-    sed -i '/addopts/d' pyproject.toml
+    substituteInPlace pyproject.toml \
+      --replace-fail '"--doctest-docutils-modules",' ""
   '';
 
-  nativeBuildInputs = [ poetry-core ];
+  build-system = [ poetry-core ];
 
   nativeCheckInputs = [
     procps
@@ -53,7 +54,6 @@ buildPythonPackage rec {
 
   disabledTestPaths = lib.optionals stdenv.isDarwin [
     "tests/test_test.py"
-    "tests/legacy_api/test_test.py"
   ];
 
   pythonImportsCheck = [ "libtmux" ];
diff --git a/pkgs/development/python-modules/libvirt/default.nix b/pkgs/development/python-modules/libvirt/default.nix
index e5ccec9371eeb..f424240f91ea1 100644
--- a/pkgs/development/python-modules/libvirt/default.nix
+++ b/pkgs/development/python-modules/libvirt/default.nix
@@ -2,16 +2,17 @@
   lib,
   buildPythonPackage,
   fetchFromGitLab,
+  setuptools,
   pkg-config,
   lxml,
   libvirt,
-  nose,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "libvirt";
   version = "10.0.0";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchFromGitLab {
     owner = "libvirt";
@@ -20,16 +21,17 @@ buildPythonPackage rec {
     hash = "sha256-zl1Hfm7flRflNjIpLoLAlPDysYlieC05HEd/mzFW8pU=";
   };
 
+  build-system = [ setuptools ];
+
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
     libvirt
     lxml
   ];
 
-  nativeCheckInputs = [ nose ];
-  checkPhase = ''
-    nosetests
-  '';
+  pythonImportsCheck = [ "libvirt" ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     homepage = "https://libvirt.org/python.html";
diff --git a/pkgs/development/python-modules/life360/default.nix b/pkgs/development/python-modules/life360/default.nix
index 89a097d6e5652..7e001e79b5f5d 100644
--- a/pkgs/development/python-modules/life360/default.nix
+++ b/pkgs/development/python-modules/life360/default.nix
@@ -5,31 +5,34 @@
   fetchFromGitHub,
   pytestCheckHook,
   pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "life360";
-  version = "6.0.1";
-  format = "setuptools";
+  version = "7.0.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "pnbruckner";
-    repo = pname;
+    repo = "life360";
     rev = "refs/tags/v${version}";
-    hash = "sha256-USqSkjOHlH0K/RlRYpn/gz6dHW8/uEVpsc4HeUZ3Emg=";
+    hash = "sha256-GkCs479lXcnCvb5guxyc+ZuZdiH4n8uD2VbkC+yijgg=";
   };
 
-  propagatedBuildInputs = [ aiohttp ];
+  build-system = [ setuptools ];
 
-  # Project has no tests
+  dependencies = [ aiohttp ];
+
+  # Module has no tests
   doCheck = false;
 
   pythonImportsCheck = [ "life360" ];
 
   meta = with lib; {
-    description = "Python module to interact with Life360";
+    description = "Module to interact with Life360";
     homepage = "https://github.com/pnbruckner/life360";
     changelog = "https://github.com/pnbruckner/life360/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/lightgbm/default.nix b/pkgs/development/python-modules/lightgbm/default.nix
index 48dbe8b79229d..2b7e33347c945 100644
--- a/pkgs/development/python-modules/lightgbm/default.nix
+++ b/pkgs/development/python-modules/lightgbm/default.nix
@@ -109,7 +109,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "lightgbm" ];
 
   meta = {
-    description = "A fast, distributed, high performance gradient boosting (GBDT, GBRT, GBM or MART) framework";
+    description = "Fast, distributed, high performance gradient boosting (GBDT, GBRT, GBM or MART) framework";
     homepage = "https://github.com/Microsoft/LightGBM";
     changelog = "https://github.com/microsoft/LightGBM/releases/tag/v${version}";
     license = lib.licenses.mit;
diff --git a/pkgs/development/python-modules/lima/default.nix b/pkgs/development/python-modules/lima/default.nix
index 37c1fda1a41dc..76a47923b7795 100644
--- a/pkgs/development/python-modules/lima/default.nix
+++ b/pkgs/development/python-modules/lima/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "Lightweight Marshalling of Python 3 Objects.";
+    description = "Lightweight Marshalling of Python 3 Objects";
     homepage = "https://github.com/b6d/lima";
     license = licenses.mit;
     maintainers = with maintainers; [ zhaofengli ];
diff --git a/pkgs/development/python-modules/limnoria/default.nix b/pkgs/development/python-modules/limnoria/default.nix
index a45e6d7c3dc6d..050dcc565824d 100644
--- a/pkgs/development/python-modules/limnoria/default.nix
+++ b/pkgs/development/python-modules/limnoria/default.nix
@@ -56,7 +56,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A modified version of Supybot, an IRC bot";
+    description = "Modified version of Supybot, an IRC bot";
     homepage = "https://github.com/ProgVal/Limnoria";
     license = licenses.bsd3;
     maintainers = with maintainers; [ goibhniu ];
diff --git a/pkgs/development/python-modules/linear-operator/default.nix b/pkgs/development/python-modules/linear-operator/default.nix
index 9db833d1b0d3c..918a439c62799 100644
--- a/pkgs/development/python-modules/linear-operator/default.nix
+++ b/pkgs/development/python-modules/linear-operator/default.nix
@@ -52,7 +52,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A LinearOperator implementation to wrap the numerical nuts and bolts of GPyTorch";
+    description = "LinearOperator implementation to wrap the numerical nuts and bolts of GPyTorch";
     homepage = "https://github.com/cornellius-gp/linear_operator/";
     license = licenses.mit;
     maintainers = with maintainers; [ veprbl ];
diff --git a/pkgs/development/python-modules/linecache2/default.nix b/pkgs/development/python-modules/linecache2/default.nix
index 6c8268d3efb2e..2d183c3ef6904 100644
--- a/pkgs/development/python-modules/linecache2/default.nix
+++ b/pkgs/development/python-modules/linecache2/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A backport of linecache to older supported Pythons";
+    description = "Backport of linecache to older supported Pythons";
     homepage = "https://github.com/testing-cabal/linecache2";
     license = licenses.psfl;
   };
diff --git a/pkgs/development/python-modules/lineedit/default.nix b/pkgs/development/python-modules/lineedit/default.nix
index 242be583c638c..51f5e5a834071 100644
--- a/pkgs/development/python-modules/lineedit/default.nix
+++ b/pkgs/development/python-modules/lineedit/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "lineedit" ];
 
   meta = with lib; {
-    description = "A readline library based on prompt_toolkit which supports multiple modes";
+    description = "Readline library based on prompt_toolkit which supports multiple modes";
     homepage = "https://github.com/randy3k/lineedit";
     license = licenses.mit;
     maintainers = with maintainers; [ savyajha ];
diff --git a/pkgs/development/python-modules/lingva/default.nix b/pkgs/development/python-modules/lingva/default.nix
index 95bd168c39d01..153284d88125f 100644
--- a/pkgs/development/python-modules/lingva/default.nix
+++ b/pkgs/development/python-modules/lingva/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "lingva";
-  version = "5.0.2";
+  version = "5.0.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "vacanza";
     repo = "lingva";
     rev = "refs/tags/v${version}";
-    hash = "sha256-kr64L/DtEWZu9z2p90QJHnb/6LygwZgxE+rARbo0NYI=";
+    hash = "sha256-usJyEbHtwhsc0ulG9+7zJ/kDUFrxfqykZLOAWwzP+Dw=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/linode/default.nix b/pkgs/development/python-modules/linode/default.nix
index 392743fdd1633..07143b4c30f80 100644
--- a/pkgs/development/python-modules/linode/default.nix
+++ b/pkgs/development/python-modules/linode/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/ghickman/linode";
-    description = "A thin python wrapper around Linode's API";
+    description = "Thin python wrapper around Linode's API";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/litellm/default.nix b/pkgs/development/python-modules/litellm/default.nix
index 068566ea139f7..950563c88aecf 100644
--- a/pkgs/development/python-modules/litellm/default.nix
+++ b/pkgs/development/python-modules/litellm/default.nix
@@ -34,7 +34,7 @@
 
 buildPythonPackage rec {
   pname = "litellm";
-  version = "1.37.16";
+  version = "1.40.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -43,7 +43,7 @@ buildPythonPackage rec {
     owner = "BerriAI";
     repo = "litellm";
     rev = "refs/tags/v${version}";
-    hash = "sha256-WOkblyzncIn1F67qlh8rTosCal6j4zlXsHHrWbwhJOo=";
+    hash = "sha256-mXrLhgOETrkwHYSJSmEPvFwZiO0kx9FmXlTJN2WZ8WI=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/litemapy/default.nix b/pkgs/development/python-modules/litemapy/default.nix
index 6054593d7c2f8..38a234321e073 100644
--- a/pkgs/development/python-modules/litemapy/default.nix
+++ b/pkgs/development/python-modules/litemapy/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "litemapy" ];
 
   meta = with lib; {
-    description = "A Python library to read and edit Litematica's schematic file format";
+    description = "Python library to read and edit Litematica's schematic file format";
     homepage = "https://github.com/SmylerMC/litemapy";
     changelog = "https://github.com/SmylerMC/litemapy/blob/${src.rev}/CHANGELOG.md";
     license = licenses.gpl3Only;
diff --git a/pkgs/development/python-modules/llama-index-agent-openai/default.nix b/pkgs/development/python-modules/llama-index-agent-openai/default.nix
index 57e6554ba4b3a..7cd5fb8241c94 100644
--- a/pkgs/development/python-modules/llama-index-agent-openai/default.nix
+++ b/pkgs/development/python-modules/llama-index-agent-openai/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-agent-openai";
-  version = "0.2.5";
+  version = "0.2.7";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_agent_openai";
     inherit version;
-    hash = "sha256-RfTMZw0Deopn9UHTpNCV9/Ycr/btLCVwJEHrERbUtJU=";
+    hash = "sha256-E85TXwPjLIIXY8AeJq9CIvOYEXhiJBTThoAToZRugSQ=";
   };
 
   pythonRelaxDeps = [ "llama-index-llms-openai" ];
diff --git a/pkgs/development/python-modules/llama-index-core/default.nix b/pkgs/development/python-modules/llama-index-core/default.nix
index c5043d3d4a052..542aa1e9e184b 100644
--- a/pkgs/development/python-modules/llama-index-core/default.nix
+++ b/pkgs/development/python-modules/llama-index-core/default.nix
@@ -8,6 +8,7 @@
   fetchFromGitHub,
   fetchzip,
   fsspec,
+  jsonpath-ng,
   llamaindex-py-client,
   nest-asyncio,
   networkx,
@@ -23,10 +24,11 @@
   pythonOlder,
   pyyaml,
   requests,
-  tree-sitter,
+  spacy,
   sqlalchemy,
   tenacity,
   tiktoken,
+  tree-sitter,
   typing-inspect,
 }:
 
@@ -44,7 +46,7 @@ in
 
 buildPythonPackage rec {
   pname = "llama-index-core";
-  version = "0.10.36";
+  version = "0.10.46";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -53,7 +55,7 @@ buildPythonPackage rec {
     owner = "run-llama";
     repo = "llama_index";
     rev = "refs/tags/v${version}";
-    hash = "sha256-yP/60DLg43UOOogxbDvb1p5n8dnfBUjGhcfO5g5g0gA=";
+    hash = "sha256-k9SltX3QvrCYszyJqfpzhuI0JwpzsVTMkK3pIX/wyrg=";
   };
 
   sourceRoot = "${src.name}/${pname}";
@@ -80,6 +82,7 @@ buildPythonPackage rec {
     deprecated
     dirtyjson
     fsspec
+    jsonpath-ng
     llamaindex-py-client
     nest-asyncio
     networkx
@@ -90,6 +93,7 @@ buildPythonPackage rec {
     pillow
     pyyaml
     requests
+    spacy
     sqlalchemy
     tenacity
     tiktoken
diff --git a/pkgs/development/python-modules/llama-index-embeddings-gemini/default.nix b/pkgs/development/python-modules/llama-index-embeddings-gemini/default.nix
index ddbc8fc05e0f0..3bd7ddbef4601 100644
--- a/pkgs/development/python-modules/llama-index-embeddings-gemini/default.nix
+++ b/pkgs/development/python-modules/llama-index-embeddings-gemini/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-embeddings-gemini";
-  version = "0.1.6";
+  version = "0.1.8";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_embeddings_gemini";
     inherit version;
-    hash = "sha256-HYwYA67/7gDxE7ZxQkkyblgwE83gZXuDmUuseXujr5g=";
+    hash = "sha256-rQKyPqZnyVYH2h5TTVV53kYYldGURWARWjYBrBb4d5M=";
   };
 
   pythonRelaxDeps = [ "google-generativeai" ];
diff --git a/pkgs/development/python-modules/llama-index-embeddings-google/default.nix b/pkgs/development/python-modules/llama-index-embeddings-google/default.nix
index cebedfe90b629..87ed37e9601da 100644
--- a/pkgs/development/python-modules/llama-index-embeddings-google/default.nix
+++ b/pkgs/development/python-modules/llama-index-embeddings-google/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-embeddings-google";
-  version = "0.1.5";
+  version = "0.1.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_embeddings_google";
     inherit version;
-    hash = "sha256-mJ+H4klmGlpTGXLErlLNWH5IUpGyXnbAhNsgT5fwCHs=";
+    hash = "sha256-XPqZ+4aZfrTGU4sOLxMElG6kuGVJa8/3uxW+icSHpzQ=";
   };
 
   pythonRelaxDeps = [ "google-generativeai" ];
diff --git a/pkgs/development/python-modules/llama-index-embeddings-huggingface/default.nix b/pkgs/development/python-modules/llama-index-embeddings-huggingface/default.nix
index b501f11c3e5b4..4da4ef2ab654f 100644
--- a/pkgs/development/python-modules/llama-index-embeddings-huggingface/default.nix
+++ b/pkgs/development/python-modules/llama-index-embeddings-huggingface/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-embeddings-huggingface";
-  version = "0.2.0";
+  version = "0.2.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_embeddings_huggingface";
     inherit version;
-    hash = "sha256-3PCplFXzfE4aL91c1lyd0aRRu4aMP4DDNcTQybadAHE=";
+    hash = "sha256-Q7KXh0DSkpGuTHVmki0rHHVD3JeeJoeUtXjhoq37Qxk=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/llama-index-embeddings-openai/default.nix b/pkgs/development/python-modules/llama-index-embeddings-openai/default.nix
index 22b2b9f675789..f6027aee43f84 100644
--- a/pkgs/development/python-modules/llama-index-embeddings-openai/default.nix
+++ b/pkgs/development/python-modules/llama-index-embeddings-openai/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-embeddings-openai";
-  version = "0.1.9";
+  version = "0.1.10";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_embeddings_openai";
     inherit version;
-    hash = "sha256-D9KSsvmgrUU0p5DWN0cmvIhYUxiAh+sBgWfc8jlkOSQ=";
+    hash = "sha256-G8H8m0Z3OhKHDF0wl9NzXXyjOAXxJGKo41ropuXOHPY=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/llama-index-graph-stores-nebula/default.nix b/pkgs/development/python-modules/llama-index-graph-stores-nebula/default.nix
index 5bb617e53262f..cd093a05e17cf 100644
--- a/pkgs/development/python-modules/llama-index-graph-stores-nebula/default.nix
+++ b/pkgs/development/python-modules/llama-index-graph-stores-nebula/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-graph-stores-nebula";
-  version = "0.1.3";
+  version = "0.2.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_graph_stores_nebula";
     inherit version;
-    hash = "sha256-Mhej0nslypY1Z99VUrTgl4S9PlrBWbaKvANSwEKTMZk=";
+    hash = "sha256-wX/j4wSUp12QlXLy0B0dUB0V7zjDX75NBE9mNWbj0w8=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/llama-index-graph-stores-neo4j/default.nix b/pkgs/development/python-modules/llama-index-graph-stores-neo4j/default.nix
index 17ef629d06bec..71b90f73f1964 100644
--- a/pkgs/development/python-modules/llama-index-graph-stores-neo4j/default.nix
+++ b/pkgs/development/python-modules/llama-index-graph-stores-neo4j/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-graph-stores-neo4j";
-  version = "0.1.4";
+  version = "0.2.5";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_graph_stores_neo4j";
     inherit version;
-    hash = "sha256-zr3EAFuLzbQKnGPVE6BsLEtNpnfYhDq9brxWPFtQiG8=";
+    hash = "sha256-K+k3tsELhF6TXVK/voMRYpb0vVkGQpkzYnB9syCLmoY=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/llama-index-llms-ollama/default.nix b/pkgs/development/python-modules/llama-index-llms-ollama/default.nix
index 0a5cb7e3aede3..d8680ab104a19 100644
--- a/pkgs/development/python-modules/llama-index-llms-ollama/default.nix
+++ b/pkgs/development/python-modules/llama-index-llms-ollama/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-llms-ollama";
-  version = "0.1.4";
+  version = "0.1.5";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_llms_ollama";
     inherit version;
-    hash = "sha256-ebwZw9p1rfWrGjYd9aHF3CsubKOL1/Ei/mV4AgQxhtk=";
+    hash = "sha256-dWl9lshg2H6AzOkMnqQly9I2kYRY4P6q7gNZcGi6mEQ=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/llama-index-llms-openai/default.nix b/pkgs/development/python-modules/llama-index-llms-openai/default.nix
index a6987b224fc5d..0bcedaa6fbb59 100644
--- a/pkgs/development/python-modules/llama-index-llms-openai/default.nix
+++ b/pkgs/development/python-modules/llama-index-llms-openai/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-llms-openai";
-  version = "0.1.19";
+  version = "0.1.21";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_llms_openai";
     inherit version;
-    hash = "sha256-9htkqZeJLkJPs81UcJDSecWyEO8VthT8Od6FTTzKp+c=";
+    hash = "sha256-6dYxE1FgrIcJPNfVrj4yxN6/juqvop7kc5Z1hnFV13M=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/llama-index-readers-database/default.nix b/pkgs/development/python-modules/llama-index-readers-database/default.nix
index a0ded9aaddfea..b6c36bbabe85b 100644
--- a/pkgs/development/python-modules/llama-index-readers-database/default.nix
+++ b/pkgs/development/python-modules/llama-index-readers-database/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   buildPythonPackage,
-  fetchFromGitHub,
   fetchPypi,
   llama-index-core,
   poetry-core,
diff --git a/pkgs/development/python-modules/llama-index-readers-file/default.nix b/pkgs/development/python-modules/llama-index-readers-file/default.nix
index d0f42bec9eed4..95045b4d31546 100644
--- a/pkgs/development/python-modules/llama-index-readers-file/default.nix
+++ b/pkgs/development/python-modules/llama-index-readers-file/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-readers-file";
-  version = "0.1.22";
+  version = "0.1.25";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_readers_file";
     inherit version;
-    hash = "sha256-N95UrQz73GB8GVUyuaKSQXpHFPV3c1cLhwJ7jcOB8OI=";
+    hash = "sha256-I43dmKo3fWpEMiAT64SAVgN8gK2EVx6lv0UaZA//TVw=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/llama-index-readers-s3/default.nix b/pkgs/development/python-modules/llama-index-readers-s3/default.nix
index b43eb933ff780..893ea6338ee77 100644
--- a/pkgs/development/python-modules/llama-index-readers-s3/default.nix
+++ b/pkgs/development/python-modules/llama-index-readers-s3/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-readers-s3";
-  version = "0.1.7";
+  version = "0.1.8";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_readers_s3";
     inherit version;
-    hash = "sha256-xj7uRsc56Wv/SF4OPo/jc+43PabJ4vaM5HcxhnxTzY8=";
+    hash = "sha256-O8V9b52gcsWm0bfHlNThIvxPox7d+qK4KzvPWT0fkGc=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/llama-index-readers-twitter/default.nix b/pkgs/development/python-modules/llama-index-readers-twitter/default.nix
index aa51724306b77..168e3b6917571 100644
--- a/pkgs/development/python-modules/llama-index-readers-twitter/default.nix
+++ b/pkgs/development/python-modules/llama-index-readers-twitter/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   buildPythonPackage,
-  fetchFromGitHub,
   fetchPypi,
   llama-index-core,
   poetry-core,
diff --git a/pkgs/development/python-modules/llama-index-vector-stores-chroma/default.nix b/pkgs/development/python-modules/llama-index-vector-stores-chroma/default.nix
index 9a0dc4a656e8e..e08c5bdaedaa6 100644
--- a/pkgs/development/python-modules/llama-index-vector-stores-chroma/default.nix
+++ b/pkgs/development/python-modules/llama-index-vector-stores-chroma/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-vector-stores-chroma";
-  version = "0.1.8";
+  version = "0.1.9";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_vector_stores_chroma";
     inherit version;
-    hash = "sha256-nFdLrzcPr0Vry2e51eonOm+h8rT9IFpZxHtoESNkuec=";
+    hash = "sha256-alwnqzriXPUEvtlRPB8DU2XftXa4hv4zTUaQjKJKWc8=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/llama-index-vector-stores-postgres/default.nix b/pkgs/development/python-modules/llama-index-vector-stores-postgres/default.nix
index 15fcab2b3123c..63e8b5d9992d0 100644
--- a/pkgs/development/python-modules/llama-index-vector-stores-postgres/default.nix
+++ b/pkgs/development/python-modules/llama-index-vector-stores-postgres/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-vector-stores-postgres";
-  version = "0.1.7";
+  version = "0.1.11";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_vector_stores_postgres";
     inherit version;
-    hash = "sha256-00ccEfjYY8qrNYymHQ5w43w8zAHUAntO6oiwYUwaOVw=";
+    hash = "sha256-ziP/lUnFJpvcy6Y4h1uSH6qkpYHO+3U+mfg2XIJIeg4=";
   };
 
   pythonRemoveDeps = [ "psycopg2-binary" ];
diff --git a/pkgs/development/python-modules/llama-index-vector-stores-qdrant/default.nix b/pkgs/development/python-modules/llama-index-vector-stores-qdrant/default.nix
index 0f9459ac2d003..47fbc28659176 100644
--- a/pkgs/development/python-modules/llama-index-vector-stores-qdrant/default.nix
+++ b/pkgs/development/python-modules/llama-index-vector-stores-qdrant/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-vector-stores-qdrant";
-  version = "0.2.8";
+  version = "0.2.10";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_vector_stores_qdrant";
     inherit version;
-    hash = "sha256-qeKV7jlBTujUEYMcPCS+PAD6xRlTBVi/DGJZ/MSN64A=";
+    hash = "sha256-kFUZiE7rtVQQzaTstKOaM2XkKZQ7ydqVR/2xyPdVtt8=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/llama-index/default.nix b/pkgs/development/python-modules/llama-index/default.nix
index 800143b8277ab..575c61c89f41f 100644
--- a/pkgs/development/python-modules/llama-index/default.nix
+++ b/pkgs/development/python-modules/llama-index/default.nix
@@ -1,6 +1,8 @@
 {
   lib,
   buildPythonPackage,
+  poetry-core,
+  pythonRelaxDepsHook,
   llama-index-agent-openai,
   llama-index-cli,
   llama-index-core,
@@ -13,19 +15,26 @@
   llama-index-question-gen-openai,
   llama-index-readers-file,
   llama-index-readers-llama-parse,
-  poetry-core,
 }:
 
-buildPythonPackage rec {
+buildPythonPackage {
   pname = "llama-index";
 
   inherit (llama-index-core) version src meta;
 
   pyproject = true;
 
-  nativeBuildInputs = [ poetry-core ];
+  build-system = [ poetry-core ];
+
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "llama-index-core"
+  ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     llama-index-agent-openai
     llama-index-cli
     llama-index-core
diff --git a/pkgs/development/python-modules/llama-parse/default.nix b/pkgs/development/python-modules/llama-parse/default.nix
index e56d34436ce99..147183c046344 100644
--- a/pkgs/development/python-modules/llama-parse/default.nix
+++ b/pkgs/development/python-modules/llama-parse/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "llama-parse";
-  version = "0.4.3";
+  version = "0.4.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_parse";
     inherit version;
-    hash = "sha256-AYNhR7UjiHOySn3UHFq5QrAbCbktdVcPMM8oYcCEoOs=";
+    hash = "sha256-tFwtszoNa3otX1nj0Ox+5/gieoUuqlawSqErEvLA1SE=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/llmx/default.nix b/pkgs/development/python-modules/llmx/default.nix
new file mode 100644
index 0000000000000..d5ddcfdaec425
--- /dev/null
+++ b/pkgs/development/python-modules/llmx/default.nix
@@ -0,0 +1,73 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+  setuptools,
+  pythonOlder,
+  pydantic,
+  openai,
+  tiktoken,
+  diskcache,
+  cohere,
+  google-auth,
+  typer,
+  pyyaml,
+  transformers,
+  fastapi,
+  uvicorn,
+  accelerate,
+}:
+
+buildPythonPackage rec {
+  pname = "llmx";
+  version = "0.0.21a0";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-OEo6wIaDTktzAsP0rOmhxjFSHygTR/EpcRI6AXsu+6M=";
+  };
+
+  disabled = pythonOlder "3.9";
+
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
+  dependencies = [
+    pydantic
+    openai
+    tiktoken
+    diskcache
+    cohere
+    google-auth
+    typer
+    pyyaml
+  ];
+
+  passthru.optional-dependencies = {
+    web = [
+      fastapi
+      uvicorn
+    ];
+    transformers = [
+      accelerate
+      transformers
+    ] ++ transformers.optional-dependencies.torch;
+  };
+
+  # Tests of llmx try to access openai, google, etc.
+  doCheck = false;
+
+  pythonImportsCheck = [ "llmx" ];
+
+  meta = with lib; {
+    description = "Library for LLM Text Generation";
+    homepage = "https://github.com/victordibia/llmx";
+    mainProgram = "llmx";
+    license = licenses.mit;
+    maintainers = with maintainers; [ moraxyc ];
+  };
+}
diff --git a/pkgs/development/python-modules/llvmlite/default.nix b/pkgs/development/python-modules/llvmlite/default.nix
index 21736036bbbe9..5c3a03fe76817 100644
--- a/pkgs/development/python-modules/llvmlite/default.nix
+++ b/pkgs/development/python-modules/llvmlite/default.nix
@@ -58,7 +58,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/numba/llvmlite/blob/v${version}/CHANGE_LOG";
-    description = "A lightweight LLVM python binding for writing JIT compilers";
+    description = "Lightweight LLVM python binding for writing JIT compilers";
     downloadPage = "https://github.com/numba/llvmlite";
     homepage = "http://llvmlite.pydata.org/";
     license = licenses.bsd2;
diff --git a/pkgs/development/python-modules/lmcloud/default.nix b/pkgs/development/python-modules/lmcloud/default.nix
index cf98928e32acc..3bf4f38e5b5b6 100644
--- a/pkgs/development/python-modules/lmcloud/default.nix
+++ b/pkgs/development/python-modules/lmcloud/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "lmcloud";
-  version = "1.1.10";
+  version = "1.1.11";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "zweckj";
     repo = "lmcloud";
     rev = "refs/tags/v${version}";
-    hash = "sha256-oPUZ5EAvFhzMfAK5rbiy8O10FTSseWj7JHCZvZ/7PG4=";
+    hash = "sha256-NuqWzlTkarrLXgYV4Zzwlb++rV+6cpG97YZnDwi0m98=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/loadcredential/default.nix b/pkgs/development/python-modules/loadcredential/default.nix
index b0cc59754bb87..239f9ac16175f 100644
--- a/pkgs/development/python-modules/loadcredential/default.nix
+++ b/pkgs/development/python-modules/loadcredential/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "loadcredential" ];
 
   meta = {
-    description = "A simple python package to read credentials passed through systemd's LoadCredential, with a fallback on env variables ";
+    description = "Simple python package to read credentials passed through systemd's LoadCredential, with a fallback on env variables ";
     homepage = "https://github.com/Tom-Hubrecht/loadcredential";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ thubrecht ];
diff --git a/pkgs/development/python-modules/localstack-client/default.nix b/pkgs/development/python-modules/localstack-client/default.nix
index fe6a431ee7732..7befaa996a418 100644
--- a/pkgs/development/python-modules/localstack-client/default.nix
+++ b/pkgs/development/python-modules/localstack-client/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A lightweight Python client for LocalStack";
+    description = "Lightweight Python client for LocalStack";
     homepage = "https://github.com/localstack/localstack-python-client";
     license = licenses.asl20;
     maintainers = with maintainers; [ jonringer ];
diff --git a/pkgs/development/python-modules/localstack/default.nix b/pkgs/development/python-modules/localstack/default.nix
index 6a99d2b225563..0f9e77e86d3c8 100644
--- a/pkgs/development/python-modules/localstack/default.nix
+++ b/pkgs/development/python-modules/localstack/default.nix
@@ -66,7 +66,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A fully functional local Cloud stack";
+    description = "Fully functional local Cloud stack";
     homepage = "https://github.com/localstack/localstack";
     license = licenses.asl20;
     maintainers = with maintainers; [ jonringer ];
diff --git a/pkgs/development/python-modules/localzone/default.nix b/pkgs/development/python-modules/localzone/default.nix
index 02319312ce22f..3e7d91fe841ff 100644
--- a/pkgs/development/python-modules/localzone/default.nix
+++ b/pkgs/development/python-modules/localzone/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "localzone" ];
 
   meta = with lib; {
-    description = "A simple DNS library for managing zone files";
+    description = "Simple DNS library for managing zone files";
     homepage = "https://localzone.iomaestro.com";
     changelog = "https://github.com/ags-slc/localzone/blob/v${version}/CHANGELOG.rst";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/log-symbols/default.nix b/pkgs/development/python-modules/log-symbols/default.nix
index 3387508d87448..d479c450aaf72 100644
--- a/pkgs/development/python-modules/log-symbols/default.nix
+++ b/pkgs/development/python-modules/log-symbols/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "log_symbols" ];
 
   meta = with lib; {
-    description = "Colored Symbols for Various Log Levels.";
+    description = "Colored Symbols for Various Log Levels";
     homepage = "https://github.com/manrajgrover/py-log-symbols";
     license = licenses.mit;
     maintainers = with maintainers; [ urbas ];
diff --git a/pkgs/development/python-modules/logbook/default.nix b/pkgs/development/python-modules/logbook/default.nix
index 09153981a45d7..1d7de41098500 100644
--- a/pkgs/development/python-modules/logbook/default.nix
+++ b/pkgs/development/python-modules/logbook/default.nix
@@ -65,7 +65,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A logging replacement for Python";
+    description = "Logging replacement for Python";
     homepage = "https://logbook.readthedocs.io/";
     changelog = "https://github.com/getlogbook/logbook/blob/${version}/CHANGES";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/logi-circle/default.nix b/pkgs/development/python-modules/logi-circle/default.nix
index d8209f920399a..af73f77aadef1 100644
--- a/pkgs/development/python-modules/logi-circle/default.nix
+++ b/pkgs/development/python-modules/logi-circle/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "logi_circle" ];
 
   meta = {
-    description = "A Python library to communicate with Logi Circle cameras";
+    description = "Python library to communicate with Logi Circle cameras";
     homepage = "https://github.com/evanjd/python-logi-circle";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/loguru-logging-intercept/default.nix b/pkgs/development/python-modules/loguru-logging-intercept/default.nix
new file mode 100644
index 0000000000000..c25aa6dedda74
--- /dev/null
+++ b/pkgs/development/python-modules/loguru-logging-intercept/default.nix
@@ -0,0 +1,30 @@
+{
+  lib,
+  buildPythonPackage,
+  setuptools,
+  loguru,
+  fetchPypi,
+}:
+
+buildPythonPackage rec {
+  pname = "loguru-logging-intercept";
+  version = "0.1.4";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-ORPBqXtQdMqK0v6n+lBFbLUPR2SEpCpvj8w2KlBjAGQ=";
+  };
+
+  build-system = [ setuptools ];
+  dependencies = [ loguru ];
+
+  pythonImportsCheck = [ "loguru_logging_intercept" ];
+
+  meta = {
+    description = "Code to integrate Loguru with Python's standard logging module";
+    homepage = "https://github.com/MatthewScholefield/loguru-logging-intercept";
+    maintainers = with lib.maintainers; [ sigmanificient ];
+    license = lib.licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/loguru/default.nix b/pkgs/development/python-modules/loguru/default.nix
index b1a980782c742..b3ec041169fe6 100644
--- a/pkgs/development/python-modules/loguru/default.nix
+++ b/pkgs/development/python-modules/loguru/default.nix
@@ -7,6 +7,7 @@
   freezegun,
   pytestCheckHook,
   pythonOlder,
+  pytest-xdist
 }:
 
 buildPythonPackage rec {
@@ -25,6 +26,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     pytestCheckHook
+    pytest-xdist # massive speedup, not tested by upstream
     colorama
     freezegun
   ];
@@ -38,6 +40,8 @@ buildPythonPackage rec {
       # fails on some machine configurations
       # AssertionError: assert '' != ''
       "test_file_buffering"
+      # Slow test
+      "test_time_rotation"
     ]
     ++ lib.optionals stdenv.isDarwin [
       "test_rotation_and_retention"
diff --git a/pkgs/development/python-modules/loopy/default.nix b/pkgs/development/python-modules/loopy/default.nix
index 488d055b7213a..72268b19e6f11 100644
--- a/pkgs/development/python-modules/loopy/default.nix
+++ b/pkgs/development/python-modules/loopy/default.nix
@@ -62,7 +62,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = {
-    description = "A code generator for array-based code on CPUs and GPUs";
+    description = "Code generator for array-based code on CPUs and GPUs";
     homepage = "https://github.com/inducer/loopy";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ tomasajt ];
diff --git a/pkgs/development/python-modules/losant-rest/default.nix b/pkgs/development/python-modules/losant-rest/default.nix
index 21a2857119763..81157ed9d23e6 100644
--- a/pkgs/development/python-modules/losant-rest/default.nix
+++ b/pkgs/development/python-modules/losant-rest/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "losant-rest";
-  version = "1.19.6";
+  version = "1.19.7";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "Losant";
     repo = "losant-rest-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sbNR95FhcRhgHh/ulLC8lL6EHal0BBK3wP6i29VElmY=";
+    hash = "sha256-gn8YTnCAmAcmQxpgtitk2eRy3spveuU0peeHu/iSnCE=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/lsp-tree-sitter/default.nix b/pkgs/development/python-modules/lsp-tree-sitter/default.nix
new file mode 100644
index 0000000000000..2dc8597727590
--- /dev/null
+++ b/pkgs/development/python-modules/lsp-tree-sitter/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools-generate
+, setuptools-scm
+, colorama
+, jinja2
+, jsonschema
+, pygls
+, tree-sitter0_21
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "lsp-tree-sitter";
+  version = "0.0.15";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "neomutt";
+    repo = "lsp-tree-sitter";
+    rev = version;
+    hash = "sha256-yzScgix3BtSCBzlDoE1kMYGtVzkup/+ZK9L1C7VA3do=";
+  };
+
+  build-system = [
+    setuptools-generate
+    setuptools-scm
+  ];
+
+  dependencies = [
+    colorama
+    jinja2
+    jsonschema
+    pygls
+    # The build won't fail if we had used tree-sitter (version > 0.21), but
+    # this package is only a dependency of autotools-language-server which also
+    # depends on tree-sitter-languages which must use tree-sitter0_21 and not
+    # tree-sitter. Hence we avoid different tree-sitter versions dependency
+    # mismatch by defaulting here to this lower version.
+    tree-sitter0_21
+  ];
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "lsp_tree_sitter" ];
+
+  meta = with lib; {
+    description = "A library to create language servers";
+    homepage = "https://github.com/neomutt/lsp-tree-sitter";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ doronbehar ];
+  };
+}
diff --git a/pkgs/development/python-modules/lunarcalendar/default.nix b/pkgs/development/python-modules/lunarcalendar/default.nix
index 5baf5accd5332..7472ea07a751f 100644
--- a/pkgs/development/python-modules/lunarcalendar/default.nix
+++ b/pkgs/development/python-modules/lunarcalendar/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/wolfhong/LunarCalendar";
-    description = "A Lunar-Solar Converter, containing a number of lunar and solar festivals in China";
+    description = "Lunar-Solar Converter, containing a number of lunar and solar festivals in China";
     mainProgram = "lunar-find";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ tomasajt ];
diff --git a/pkgs/development/python-modules/lupa/default.nix b/pkgs/development/python-modules/lupa/default.nix
index 8029442c5bc3c..8985e3f99ba46 100644
--- a/pkgs/development/python-modules/lupa/default.nix
+++ b/pkgs/development/python-modules/lupa/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "lupa";
-  version = "2.1";
+  version = "2.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dgAwcS1SczlvXpY92HMa77WsZdku/4v4/UEkwWMP6VA=";
+    hash = "sha256-ZloAa8+Nmqzf25U4JLkp0GoMVZEKZitZvi8VerTIkk0=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/luqum/default.nix b/pkgs/development/python-modules/luqum/default.nix
index c92f1cc8f1b6a..e0c0f7566137d 100644
--- a/pkgs/development/python-modules/luqum/default.nix
+++ b/pkgs/development/python-modules/luqum/default.nix
@@ -48,7 +48,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A lucene query parser generating ElasticSearch queries";
+    description = "Lucene query parser generating ElasticSearch queries";
     homepage = "https://github.com/jurismarches/luqum";
     changelog = "https://github.com/jurismarches/luqum/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/lxmf/default.nix b/pkgs/development/python-modules/lxmf/default.nix
index 4e4147fc1bb04..d8538f1ccbc62 100644
--- a/pkgs/development/python-modules/lxmf/default.nix
+++ b/pkgs/development/python-modules/lxmf/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "lxmf";
-  version = "0.4.3";
+  version = "0.4.4";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "markqvist";
     repo = "lxmf";
     rev = "refs/tags/${version}";
-    hash = "sha256-8Usu2fecSnyVfGrEJED4qMBO5RwJjTq5c7svCTu445Q=";
+    hash = "sha256-O8uqGo4pgN1xb6/hwEb0B/ymeA9as9/mFj9t9dI4pNg=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/m2crypto/default.nix b/pkgs/development/python-modules/m2crypto/default.nix
index 8b87fc606c98e..88f09710151ff 100644
--- a/pkgs/development/python-modules/m2crypto/default.nix
+++ b/pkgs/development/python-modules/m2crypto/default.nix
@@ -48,7 +48,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "M2Crypto" ];
 
   meta = with lib; {
-    description = "A Python crypto and SSL toolkit";
+    description = "Python crypto and SSL toolkit";
     homepage = "https://gitlab.com/m2crypto/m2crypto";
     changelog = "https://gitlab.com/m2crypto/m2crypto/-/blob/${version}/CHANGES";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/macaddress/default.nix b/pkgs/development/python-modules/macaddress/default.nix
index feb4ad1865dc9..97d07f45d1c88 100644
--- a/pkgs/development/python-modules/macaddress/default.nix
+++ b/pkgs/development/python-modules/macaddress/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/mentalisttraceur/python-macaddress";
-    description = "A module for handling hardware identifiers like MAC addresses";
+    description = "Module for handling hardware identifiers like MAC addresses";
     license = licenses.bsd0;
     maintainers = with maintainers; [ netali ];
   };
diff --git a/pkgs/development/python-modules/macaroonbakery/default.nix b/pkgs/development/python-modules/macaroonbakery/default.nix
index eb1b50eb4a9b1..ed94e0261f9e5 100644
--- a/pkgs/development/python-modules/macaroonbakery/default.nix
+++ b/pkgs/development/python-modules/macaroonbakery/default.nix
@@ -50,7 +50,7 @@ buildPythonPackage rec {
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "A Python library for working with macaroons";
+    description = "Python library for working with macaroons";
     homepage = "https://github.com/go-macaroon-bakery/py-macaroon-bakery";
     changelog = "https://github.com/go-macaroon-bakery/py-macaroon-bakery/releases/tag/${version}";
     license = lib.licenses.lgpl3Only;
diff --git a/pkgs/development/python-modules/magic/default.nix b/pkgs/development/python-modules/magic/default.nix
index 5921a80ce11b9..fac5e681fbb83 100644
--- a/pkgs/development/python-modules/magic/default.nix
+++ b/pkgs/development/python-modules/magic/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Python wrapper around libmagic";
+    description = "Python wrapper around libmagic";
     homepage = "http://www.darwinsys.com/file/";
     license = licenses.lgpl2;
   };
diff --git a/pkgs/development/python-modules/mahotas/default.nix b/pkgs/development/python-modules/mahotas/default.nix
index 419c1c572de1b..144aae89c79d4 100644
--- a/pkgs/development/python-modules/mahotas/default.nix
+++ b/pkgs/development/python-modules/mahotas/default.nix
@@ -1,7 +1,6 @@
 {
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   pillow,
   scipy,
   numpy,
diff --git a/pkgs/development/python-modules/mail-parser/default.nix b/pkgs/development/python-modules/mail-parser/default.nix
index fe5d25411fa45..5a3084ae84cf9 100644
--- a/pkgs/development/python-modules/mail-parser/default.nix
+++ b/pkgs/development/python-modules/mail-parser/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A mail parser for python 2 and 3";
+    description = "Mail parser for python 2 and 3";
     mainProgram = "mailparser";
     homepage = "https://github.com/SpamScope/mail-parser";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/mailcap-fix/default.nix b/pkgs/development/python-modules/mailcap-fix/default.nix
index 2c582f3b28d5c..102d1f51a144a 100644
--- a/pkgs/development/python-modules/mailcap-fix/default.nix
+++ b/pkgs/development/python-modules/mailcap-fix/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A patched mailcap module that conforms to RFC 1524";
+    description = "Patched mailcap module that conforms to RFC 1524";
     homepage = "https://github.com/michael-lazar/mailcap_fix";
     license = licenses.unlicense;
   };
diff --git a/pkgs/development/python-modules/mailchimp/default.nix b/pkgs/development/python-modules/mailchimp/default.nix
index d8dc548c81364..fc7e4a212b7c6 100644
--- a/pkgs/development/python-modules/mailchimp/default.nix
+++ b/pkgs/development/python-modules/mailchimp/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A CLI client and Python API library for the MailChimp email platform";
+    description = "CLI client and Python API library for the MailChimp email platform";
     homepage = "http://apidocs.mailchimp.com/api/2.0/";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/mailsuite/default.nix b/pkgs/development/python-modules/mailsuite/default.nix
index c28126dd7199c..4b0aeca1431b2 100644
--- a/pkgs/development/python-modules/mailsuite/default.nix
+++ b/pkgs/development/python-modules/mailsuite/default.nix
@@ -42,7 +42,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = {
-    description = "A Python package to simplify receiving, parsing, and sending email";
+    description = "Python package to simplify receiving, parsing, and sending email";
     homepage = "https://seanthegeek.github.io/mailsuite/";
     maintainers = with lib.maintainers; [ talyz ];
     license = lib.licenses.asl20;
diff --git a/pkgs/development/python-modules/manifestoo-core/default.nix b/pkgs/development/python-modules/manifestoo-core/default.nix
index ce3cd3a6ef282..b3bdfbf34fab0 100644
--- a/pkgs/development/python-modules/manifestoo-core/default.nix
+++ b/pkgs/development/python-modules/manifestoo-core/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "manifestoo-core";
-  version = "1.5";
+  version = "1.6";
   format = "pyproject";
 
   src = fetchPypi {
     inherit version;
     pname = "manifestoo_core";
-    hash = "sha256-a3v2WfJ42bh2LlAsH9ekpLFsAlOiTTLGNknTW2mTxCI=";
+    hash = "sha256-gOWu01Z1lxhMJELyxvU5A5AskVEqCoLV/auydM5/QCE=";
   };
 
   nativeBuildInputs = [ hatch-vcs ];
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A library to reason about Odoo addons manifests";
+    description = "Library to reason about Odoo addons manifests";
     homepage = "https://github.com/acsone/manifestoo-core";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ yajo ];
diff --git a/pkgs/development/python-modules/manifestoo/default.nix b/pkgs/development/python-modules/manifestoo/default.nix
index 3ad97022c19a1..140c78d26632d 100644
--- a/pkgs/development/python-modules/manifestoo/default.nix
+++ b/pkgs/development/python-modules/manifestoo/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A tool to reason about Odoo addons manifests";
+    description = "Tool to reason about Odoo addons manifests";
     homepage = "https://github.com/acsone/manifestoo";
     license = licenses.mit;
     maintainers = with maintainers; [ yajo ];
diff --git a/pkgs/development/python-modules/manim/default.nix b/pkgs/development/python-modules/manim/default.nix
index d099cbb4b21e3..69aee1f41c3df 100644
--- a/pkgs/development/python-modules/manim/default.nix
+++ b/pkgs/development/python-modules/manim/default.nix
@@ -273,6 +273,6 @@ buildPythonPackage rec {
     '';
     homepage = "https://github.com/ManimCommunity/manim";
     license = licenses.mit;
-    maintainers = with maintainers; [ friedelino ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/manuel/default.nix b/pkgs/development/python-modules/manuel/default.nix
index cd6cb93535a90..89a7dc6605323 100644
--- a/pkgs/development/python-modules/manuel/default.nix
+++ b/pkgs/development/python-modules/manuel/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ zope-testing ];
 
   meta = with lib; {
-    description = "A documentation builder";
+    description = "Documentation builder";
     homepage = "https://pypi.python.org/pypi/manuel";
     license = licenses.zpl20;
   };
diff --git a/pkgs/development/python-modules/mapbox-earcut/default.nix b/pkgs/development/python-modules/mapbox-earcut/default.nix
index 9b3644f2f457b..b7fe03e24f8af 100644
--- a/pkgs/development/python-modules/mapbox-earcut/default.nix
+++ b/pkgs/development/python-modules/mapbox-earcut/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   buildPythonPackage,
-  fetchPypi,
   fetchFromGitHub,
   numpy,
   pybind11,
@@ -45,6 +44,6 @@ buildPythonPackage rec {
       library, which provides very fast and quite robust triangulation of 2D
       polygons.
     '';
-    maintainers = with maintainers; [ friedelino ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/mapclassify/default.nix b/pkgs/development/python-modules/mapclassify/default.nix
new file mode 100644
index 0000000000000..0045daf1bd9fd
--- /dev/null
+++ b/pkgs/development/python-modules/mapclassify/default.nix
@@ -0,0 +1,58 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  geopandas,
+  libpysal,
+  networkx,
+  numpy,
+  pandas,
+  scikit-learn,
+  scipy,
+  setuptools-scm,
+}:
+
+buildPythonPackage rec {
+  pname = "mapclassify";
+  version = "2.6.1";
+  pyproject = true;
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "pysal";
+    repo = "mapclassify";
+    rev = "v${version}";
+    hash = "sha256-lb2Ui6zdx6MQBtBrL/Xj9k7cm6De8aLEuBLZDhPPDnE=";
+  };
+
+  build-system = [ setuptools-scm ];
+
+  propagatedBuildInputs = [
+    networkx
+    numpy
+    pandas
+    scikit-learn
+    scipy
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    geopandas
+    libpysal
+  ];
+
+  # requires network access
+  disabledTestPaths = [ "mapclassify/tests/test_greedy.py" ];
+
+  pythonImportsCheck = [ "mapclassify" ];
+
+  meta = {
+    description = "Classification Schemes for Choropleth Maps";
+    homepage = "https://pysal.org/mapclassify/";
+    license = lib.licenses.bsd3;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/marimo/default.nix b/pkgs/development/python-modules/marimo/default.nix
index 36317c489c7b6..220affe7be676 100644
--- a/pkgs/development/python-modules/marimo/default.nix
+++ b/pkgs/development/python-modules/marimo/default.nix
@@ -17,19 +17,20 @@
   tomlkit,
   uvicorn,
   websockets,
+  pyyaml,
   pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "marimo";
-  version = "0.6.0";
+  version = "0.6.19";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-L6ICaaMRrMOr/d8CJGcXxOYCWTVh8ObckW7xNeLRB2Q=";
+    hash = "sha256-PQrqOqWhQ4sz2kSX8A4NWhLJegAkCBE7Im+u11KkmB0=";
   };
 
   build-system = [ setuptools ];
@@ -48,6 +49,7 @@ buildPythonPackage rec {
     tomlkit
     uvicorn
     websockets
+    pyyaml
   ];
 
   nativeCheckInputs = [ pytestCheckHook ];
@@ -55,7 +57,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "marimo" ];
 
   meta = with lib; {
-    description = "A reactive Python notebook that's reproducible, git-friendly, and deployable as scripts or apps";
+    description = "Reactive Python notebook that's reproducible, git-friendly, and deployable as scripts or apps";
     homepage = "https://github.com/marimo-team/marimo";
     changelog = "https://github.com/marimo-team/marimo/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/markdown-macros/default.nix b/pkgs/development/python-modules/markdown-macros/default.nix
index bc9d90eba0662..cc524efb5aa18 100644
--- a/pkgs/development/python-modules/markdown-macros/default.nix
+++ b/pkgs/development/python-modules/markdown-macros/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "An extension for python-markdown that makes writing trac-like macros easy";
+    description = "Extension for python-markdown that makes writing trac-like macros easy";
     homepage = "https://github.com/wnielson/markdown-macros";
     license = licenses.mit;
     maintainers = [ maintainers.abigailbuccaneer ];
diff --git a/pkgs/development/python-modules/markdown2/default.nix b/pkgs/development/python-modules/markdown2/default.nix
index 171b6b73a6f87..77f5fe0fc656a 100644
--- a/pkgs/development/python-modules/markdown2/default.nix
+++ b/pkgs/development/python-modules/markdown2/default.nix
@@ -45,7 +45,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/trentm/python-markdown2/blob/${src.rev}/CHANGES.md";
-    description = "A fast and complete Python implementation of Markdown";
+    description = "Fast and complete Python implementation of Markdown";
     mainProgram = "markdown2";
     homepage = "https://github.com/trentm/python-markdown2";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/markuppy/default.nix b/pkgs/development/python-modules/markuppy/default.nix
index ed24dc0741f6f..4b376f6894ece 100644
--- a/pkgs/development/python-modules/markuppy/default.nix
+++ b/pkgs/development/python-modules/markuppy/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "MarkupPy" ];
 
   meta = with lib; {
-    description = "An HTML/XML generator";
+    description = "HTML/XML generator";
     homepage = "https://github.com/tylerbakke/MarkupPy";
     license = licenses.mit;
     maintainers = with maintainers; [ sephi ];
diff --git a/pkgs/development/python-modules/mat2/default.nix b/pkgs/development/python-modules/mat2/default.nix
index c9229f2f49f7b..f1ca3d6d68808 100644
--- a/pkgs/development/python-modules/mat2/default.nix
+++ b/pkgs/development/python-modules/mat2/default.nix
@@ -102,7 +102,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A handy tool to trash your metadata";
+    description = "Handy tool to trash your metadata";
     homepage = "https://0xacab.org/jvoisin/mat2";
     changelog = "https://0xacab.org/jvoisin/mat2/-/blob/${version}/CHANGELOG.md";
     license = licenses.lgpl3Plus;
diff --git a/pkgs/development/python-modules/matchpy/default.nix b/pkgs/development/python-modules/matchpy/default.nix
index 96f749f85d674..aab6d31a18767 100644
--- a/pkgs/development/python-modules/matchpy/default.nix
+++ b/pkgs/development/python-modules/matchpy/default.nix
@@ -55,7 +55,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "matchpy" ];
 
   meta = with lib; {
-    description = "A library for pattern matching on symbolic expressions";
+    description = "Library for pattern matching on symbolic expressions";
     homepage = "https://github.com/HPAC/matchpy";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/matplotlib-sixel/default.nix b/pkgs/development/python-modules/matplotlib-sixel/default.nix
index 6d74b365f15f5..ac1b1a2563702 100644
--- a/pkgs/development/python-modules/matplotlib-sixel/default.nix
+++ b/pkgs/development/python-modules/matplotlib-sixel/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sixel" ];
 
   meta = with lib; {
-    description = "A sixel graphics backend for matplotlib";
+    description = "Sixel graphics backend for matplotlib";
     homepage = "https://github.com/jonathf/matplotlib-sixel";
     license = licenses.bsd3;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/pkgs/development/python-modules/matplotlib-venn/default.nix b/pkgs/development/python-modules/matplotlib-venn/default.nix
new file mode 100644
index 0000000000000..acc988b4e6614
--- /dev/null
+++ b/pkgs/development/python-modules/matplotlib-venn/default.nix
@@ -0,0 +1,40 @@
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  setuptools,
+  matplotlib,
+  numpy,
+  scipy,
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  version = "0.11.10";
+  pname = "matplotlib-venn";
+
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-kNDPsnnF273339ciwOJRWjf1NelJvK0XRIO8d343LmU=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [
+    matplotlib
+    numpy
+    scipy
+  ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  meta = {
+    description = "Functions for plotting area-proportional two- and three-way Venn diagrams in matplotlib";
+    homepage = "https://github.com/konstantint/matplotlib-venn";
+    changelog = "https://github.com/konstantint/matplotlib-venn/releases/tag/${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ moraxyc ];
+  };
+}
diff --git a/pkgs/development/python-modules/matrix-api-async/default.nix b/pkgs/development/python-modules/matrix-api-async/default.nix
index 2074c4d314fca..5bc3704441a39 100644
--- a/pkgs/development/python-modules/matrix-api-async/default.nix
+++ b/pkgs/development/python-modules/matrix-api-async/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "matrix_api_async" ];
 
   meta = with lib; {
-    description = "An asyncio wrapper of matrix_client.api";
+    description = "Asyncio wrapper of matrix_client.api";
     license = licenses.mit;
     homepage = "https://github.com/Cadair/matrix_api_async";
     maintainers = with maintainers; [ globin ];
diff --git a/pkgs/development/python-modules/matrix-nio/default.nix b/pkgs/development/python-modules/matrix-nio/default.nix
index 9a284a7f34785..ce9aded24b3b9 100644
--- a/pkgs/development/python-modules/matrix-nio/default.nix
+++ b/pkgs/development/python-modules/matrix-nio/default.nix
@@ -108,11 +108,10 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/poljar/matrix-nio";
     changelog = "https://github.com/poljar/matrix-nio/blob/${version}/CHANGELOG.md";
-    description = "A Python Matrix client library, designed according to sans I/O principles";
+    description = "Python Matrix client library, designed according to sans I/O principles";
     license = licenses.isc;
     maintainers = with maintainers; [
       tilpner
-      emily
       symphorien
     ];
   };
diff --git a/pkgs/development/python-modules/mattermostdriver/default.nix b/pkgs/development/python-modules/mattermostdriver/default.nix
index 9602e54eeb23d..fdf9e52963f4d 100644
--- a/pkgs/development/python-modules/mattermostdriver/default.nix
+++ b/pkgs/development/python-modules/mattermostdriver/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Python Mattermost Driver";
+    description = "Python Mattermost Driver";
     homepage = "https://github.com/Vaelor/python-mattermost-driver";
     license = licenses.mit;
     maintainers = with maintainers; [ globin ];
diff --git a/pkgs/development/python-modules/mbstrdecoder/default.nix b/pkgs/development/python-modules/mbstrdecoder/default.nix
index e1c28e53003d1..c7e3681d010dd 100644
--- a/pkgs/development/python-modules/mbstrdecoder/default.nix
+++ b/pkgs/development/python-modules/mbstrdecoder/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/thombashi/mbstrdecoder";
-    description = "A library for decoding multi-byte character strings";
+    description = "Library for decoding multi-byte character strings";
     maintainers = with maintainers; [ genericnerdyusername ];
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/mdformat-mkdocs/default.nix b/pkgs/development/python-modules/mdformat-mkdocs/default.nix
index f3b06888b6cb9..cd5a89c825122 100644
--- a/pkgs/development/python-modules/mdformat-mkdocs/default.nix
+++ b/pkgs/development/python-modules/mdformat-mkdocs/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "mdformat-mkdocs";
-  version = "2.0.11";
+  version = "2.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "KyleKing";
     repo = "mdformat-mkdocs";
     rev = "refs/tags/v${version}";
-    hash = "sha256-wx95Lsqgi7fM/1s6fSHxXOs396mIR9S9yCRebC2VFpI=";
+    hash = "sha256-hBkHVYlcHCXfE8Z2gLv6Rt0tQSkx2LYqbEtCncDByrI=";
   };
 
   nativeBuildInputs = [ flit-core ];
diff --git a/pkgs/development/python-modules/mdformat-tables/default.nix b/pkgs/development/python-modules/mdformat-tables/default.nix
index e1226229712c8..cf97895b53947 100644
--- a/pkgs/development/python-modules/mdformat-tables/default.nix
+++ b/pkgs/development/python-modules/mdformat-tables/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "mdformat_tables" ];
 
   meta = with lib; {
-    description = "An mdformat plugin for rendering tables";
+    description = "Mdformat plugin for rendering tables";
     homepage = "https://github.com/executablebooks/mdformat-tables";
     license = licenses.mit;
     maintainers = with maintainers; [
diff --git a/pkgs/development/python-modules/mdtraj/default.nix b/pkgs/development/python-modules/mdtraj/default.nix
index 0d2cb8f5125c9..7c7d95adf5d35 100644
--- a/pkgs/development/python-modules/mdtraj/default.nix
+++ b/pkgs/development/python-modules/mdtraj/default.nix
@@ -116,7 +116,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "mdtraj" ];
 
   meta = with lib; {
-    description = "An open library for the analysis of molecular dynamics trajectories";
+    description = "Open library for the analysis of molecular dynamics trajectories";
     homepage = "https://github.com/mdtraj/mdtraj";
     changelog = "https://github.com/mdtraj/mdtraj/releases/tag/${src.rev}";
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/python-modules/mdx-truly-sane-lists/default.nix b/pkgs/development/python-modules/mdx-truly-sane-lists/default.nix
index 07dc9f00277cf..7787892efdaa9 100644
--- a/pkgs/development/python-modules/mdx-truly-sane-lists/default.nix
+++ b/pkgs/development/python-modules/mdx-truly-sane-lists/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   markdown,
   python,
 }:
@@ -29,7 +28,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "Extension for Python-Markdown that makes lists truly sane.";
+    description = "Extension for Python-Markdown that makes lists truly sane";
     longDescription = ''
       Features custom indents for nested lists and fix for messy linebreaks and
       paragraphs between lists.
diff --git a/pkgs/development/python-modules/mecab-python3/default.nix b/pkgs/development/python-modules/mecab-python3/default.nix
index f448230821a79..5eebd19f53cff 100644
--- a/pkgs/development/python-modules/mecab-python3/default.nix
+++ b/pkgs/development/python-modules/mecab-python3/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "MeCab" ];
 
   meta = with lib; {
-    description = "A python wrapper for mecab: Morphological Analysis engine";
+    description = "Python wrapper for mecab: Morphological Analysis engine";
     homepage = "https://github.com/SamuraiT/mecab-python3";
     changelog = "https://github.com/SamuraiT/mecab-python3/releases/tag/v${version}";
     license = with licenses; [
diff --git a/pkgs/development/python-modules/mediapy/default.nix b/pkgs/development/python-modules/mediapy/default.nix
index aa5e7fc24c708..971fc02dda002 100644
--- a/pkgs/development/python-modules/mediapy/default.nix
+++ b/pkgs/development/python-modules/mediapy/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "mediapy";
-  version = "1.2.0";
+  version = "1.2.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-enxOx0hZ+fksk8ibsDWg0Bl/cJeSBHE37bN/D1ucECg=";
+    hash = "sha256-QtmhqpPBg1ULgk27Tw3l2mGqXITbjwHwY6zR8juQ7wo=";
   };
 
   nativeBuildInputs = [ flit-core ];
diff --git a/pkgs/development/python-modules/meeko/default.nix b/pkgs/development/python-modules/meeko/default.nix
index a1e49a19b9463..c422b962925c2 100644
--- a/pkgs/development/python-modules/meeko/default.nix
+++ b/pkgs/development/python-modules/meeko/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "meeko";
-  version = "0.5.0";
+  version = "0.5.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.5";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "forlilab";
     repo = "Meeko";
     rev = "refs/tags/v${version}";
-    hash = "sha256-pngFu6M63W26P7wd6FUNLuf0NikxtRtVR/pnR5PR6Wo=";
+    hash = "sha256-I/kAO0a6DbDqmzjS36ETuoH/Z1gR2eNpyE3herHDKMs=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/meep/default.nix b/pkgs/development/python-modules/meep/default.nix
index be76ee826ca78..fdb89697ce0c8 100644
--- a/pkgs/development/python-modules/meep/default.nix
+++ b/pkgs/development/python-modules/meep/default.nix
@@ -36,13 +36,13 @@ assert !lapack.isILP64;
 
 buildPythonPackage rec {
   pname = "meep";
-  version = "1.28.0";
+  version = "1.29.0";
 
   src = fetchFromGitHub {
     owner = "NanoComp";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-o/Xrd/Gn1RsbB+ZfggGH6/ugdsGtfTe2RgaHdpY5AyE=";
+    hash = "sha256-TB85obdk8pSWRaz3+3I6P6+dQtCHosWHRnKGck/wG9Q=";
   };
 
   format = "other";
diff --git a/pkgs/development/python-modules/meilisearch/default.nix b/pkgs/development/python-modules/meilisearch/default.nix
index 4ad70db3281b0..550d068d3b050 100644
--- a/pkgs/development/python-modules/meilisearch/default.nix
+++ b/pkgs/development/python-modules/meilisearch/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "meilisearch";
-  version = "0.31.1";
+  version = "0.31.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "meilisearch";
     repo = "meilisearch-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-rD9f0J8Ez+WrpEyDZa3GVuBxj6Kv7McBzIuk9RtsjHk=";
+    hash = "sha256-OGL7n4GIRrwU8OBdzi/H09lUy/Vue0bfHCLnztc4h5g=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/meld3/default.nix b/pkgs/development/python-modules/meld3/default.nix
index 53c268ca6a0d2..482fb76afee57 100644
--- a/pkgs/development/python-modules/meld3/default.nix
+++ b/pkgs/development/python-modules/meld3/default.nix
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "An HTML/XML templating engine used by supervisor";
+    description = "HTML/XML templating engine used by supervisor";
     homepage = "https://github.com/supervisor/meld3";
     license = licenses.free;
   };
diff --git a/pkgs/development/python-modules/memestra/default.nix b/pkgs/development/python-modules/memestra/default.nix
index 99e5a6df27855..d9add2a93460a 100644
--- a/pkgs/development/python-modules/memestra/default.nix
+++ b/pkgs/development/python-modules/memestra/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "memestra" ];
 
   meta = with lib; {
-    description = "A linter that tracks reference to deprecated functions.";
+    description = "Linter that tracks reference to deprecated functions";
     homepage = "https://github.com/QuantStack/memestra";
     license = licenses.bsd3;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/pkgs/development/python-modules/memory-allocator/default.nix b/pkgs/development/python-modules/memory-allocator/default.nix
index 79d421dfef60d..1dd2782396cfd 100644
--- a/pkgs/development/python-modules/memory-allocator/default.nix
+++ b/pkgs/development/python-modules/memory-allocator/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "An extension class to allocate memory easily with cython";
+    description = "Extension class to allocate memory easily with cython";
     homepage = "https://github.com/sagemath/memory_allocator/";
     maintainers = teams.sage.members;
     license = licenses.lgpl3Plus;
diff --git a/pkgs/development/python-modules/memory-profiler/default.nix b/pkgs/development/python-modules/memory-profiler/default.nix
index fe330f8f1c6d2..8e0736e99271a 100644
--- a/pkgs/development/python-modules/memory-profiler/default.nix
+++ b/pkgs/development/python-modules/memory-profiler/default.nix
@@ -21,7 +21,7 @@ python.pkgs.buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A module for monitoring memory usage of a process";
+    description = "Module for monitoring memory usage of a process";
     mainProgram = "mprof";
     longDescription = ''
       This is a python module for monitoring memory consumption of a process as
diff --git a/pkgs/development/python-modules/mercadopago/default.nix b/pkgs/development/python-modules/mercadopago/default.nix
index c3f97069751c9..2a760b321eff3 100644
--- a/pkgs/development/python-modules/mercadopago/default.nix
+++ b/pkgs/development/python-modules/mercadopago/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "mercadopago" ];
 
   meta = with lib; {
-    description = "This library provides developers with a simple set of bindings to help you integrate Mercado Pago API to a website and start receiving payments.";
+    description = "This library provides developers with a simple set of bindings to help you integrate Mercado Pago API to a website and start receiving payments";
     homepage = "https://www.mercadopago.com";
     changelog = "https://github.com/mercadopago/sdk-python/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/merge3/default.nix b/pkgs/development/python-modules/merge3/default.nix
index 1c4d10e319bdb..3d96e2e1108f7 100644
--- a/pkgs/development/python-modules/merge3/default.nix
+++ b/pkgs/development/python-modules/merge3/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "merge3";
-  version = "0.0.14";
+  version = "0.0.15";
 
   format = "pyproject";
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-MEBumThvSmUoD7nEPmgYkPoqHYOcrCdZ0VbHzBYDAVk=";
+    sha256 = "sha256-0+rCE9hNVt/J45VSrIJGx4YKlAlk6+7YqL5EIvZJK68=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/mergedb/default.nix b/pkgs/development/python-modules/mergedb/default.nix
index c9b92ba75df0b..cbf4baafc3551 100644
--- a/pkgs/development/python-modules/mergedb/default.nix
+++ b/pkgs/development/python-modules/mergedb/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "mergedb" ];
 
   meta = with lib; {
-    description = "A tool/library for deep merging YAML files";
+    description = "Tool/library for deep merging YAML files";
     mainProgram = "mergedb";
     homepage = "https://github.com/graysonhead/mergedb";
     license = licenses.gpl3Only;
diff --git a/pkgs/development/python-modules/mergedeep/default.nix b/pkgs/development/python-modules/mergedeep/default.nix
index 7dc4bb2d7e583..ebb396a990892 100644
--- a/pkgs/development/python-modules/mergedeep/default.nix
+++ b/pkgs/development/python-modules/mergedeep/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/clarketm/mergedeep";
-    description = "A deep merge function for python";
+    description = "Deep merge function for python";
     license = licenses.mit;
     maintainers = with maintainers; [ ris ];
   };
diff --git a/pkgs/development/python-modules/mergedict/default.nix b/pkgs/development/python-modules/mergedict/default.nix
index 2d268955bf7ac..d68c9d9af3618 100644
--- a/pkgs/development/python-modules/mergedict/default.nix
+++ b/pkgs/development/python-modules/mergedict/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "mergedict" ];
 
   meta = with lib; {
-    description = "A Python dict with a merge() method";
+    description = "Python dict with a merge() method";
     homepage = "https://github.com/schettino72/mergedict";
     license = licenses.mit;
     maintainers = with maintainers; [ onny ];
diff --git a/pkgs/development/python-modules/mesa/default.nix b/pkgs/development/python-modules/mesa/default.nix
index 7f13bcf6c53dc..003e4f9609d0c 100644
--- a/pkgs/development/python-modules/mesa/default.nix
+++ b/pkgs/development/python-modules/mesa/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/projectmesa/mesa";
-    description = "An agent-based modeling (or ABM) framework in Python";
+    description = "Agent-based modeling (or ABM) framework in Python";
     license = licenses.asl20;
     maintainers = [ maintainers.dpaetzel ];
     broken = true; # missing dependencies
diff --git a/pkgs/development/python-modules/meshio/default.nix b/pkgs/development/python-modules/meshio/default.nix
index 91346b9c6b182..6e9904267ece8 100644
--- a/pkgs/development/python-modules/meshio/default.nix
+++ b/pkgs/development/python-modules/meshio/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/nschloe/meshio";
-    description = "I/O for mesh files.";
+    description = "I/O for mesh files";
     mainProgram = "meshio";
     license = licenses.mit;
     maintainers = with maintainers; [ wd15 ];
diff --git a/pkgs/development/python-modules/meshtastic/default.nix b/pkgs/development/python-modules/meshtastic/default.nix
index 7fab04572aa61..8fc2d7919b7cc 100644
--- a/pkgs/development/python-modules/meshtastic/default.nix
+++ b/pkgs/development/python-modules/meshtastic/default.nix
@@ -4,6 +4,7 @@
   buildPythonPackage,
   dotmap,
   fetchFromGitHub,
+  packaging,
   pexpect,
   protobuf,
   pygatt,
@@ -39,6 +40,7 @@ buildPythonPackage rec {
   dependencies = [
     bleak
     dotmap
+    packaging
     pexpect
     protobuf
     pygatt
diff --git a/pkgs/development/python-modules/mhcflurry/default.nix b/pkgs/development/python-modules/mhcflurry/default.nix
index efc431db552e2..68b4624125a40 100644
--- a/pkgs/development/python-modules/mhcflurry/default.nix
+++ b/pkgs/development/python-modules/mhcflurry/default.nix
@@ -16,18 +16,18 @@
 
 buildPythonPackage rec {
   pname = "mhcflurry";
-  version = "2.1.0";
-  format = "setuptools";
+  version = "2.1.1";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "openvax";
-    repo = pname;
+    repo = "mhcflurry";
     rev = "refs/tags/v${version}";
-    hash = "sha256-VyPHcNlZYgNJZb2UBFX55x+nE0GnHixkcsiTNjDCju0=";
+    hash = "sha256-absIKvcFo6I1Uu0t+l8OLOU/AQ4kD295P4+KVwMAWMc=";
   };
 
   # keras and tensorflow are not in the official setup.py requirements but are required for the CLI utilities to run.
-  propagatedBuildInputs = [
+  dependencies = [
     appdirs
     keras
     mhcgnomes
@@ -82,10 +82,13 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "mhcflurry" ];
 
-  meta = with lib; {
+  meta = {
     description = "Peptide-MHC I binding affinity prediction";
     homepage = "https://github.com/openvax/mhcflurry";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ samuela ];
+    changelog = "https://github.com/openvax/mhcflurry/releases/tag/v${version}";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ samuela ];
+    # ModuleNotFoundError: No module named 'keras.api._v2' as tensorflow is too outdated
+    broken = true;
   };
 }
diff --git a/pkgs/development/python-modules/microsoft-kiota-abstractions/default.nix b/pkgs/development/python-modules/microsoft-kiota-abstractions/default.nix
index a92965db33987..dfe65b63c4549 100644
--- a/pkgs/development/python-modules/microsoft-kiota-abstractions/default.nix
+++ b/pkgs/development/python-modules/microsoft-kiota-abstractions/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "microsoft-kiota-abstractions";
-  version = "1.3.2";
+  version = "1.3.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "microsoft";
     repo = "kiota-abstractions-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-n9Erm21slKm+zDblhSHA5Cwxkyrcyx0w09ua3bUc5XI=";
+    hash = "sha256-TgHj5Ga6Aw/sN2Hobn0OocFB/iGRHTKEeOa2j2aqnRY=";
   };
 
   build-system = [ flit-core ];
diff --git a/pkgs/development/python-modules/midiutil/default.nix b/pkgs/development/python-modules/midiutil/default.nix
index 7c970c2b676ca..17e99c731a8f2 100644
--- a/pkgs/development/python-modules/midiutil/default.nix
+++ b/pkgs/development/python-modules/midiutil/default.nix
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/MarkCWirt/MIDIUtil";
-    description = "A pure python library for creating multi-track MIDI files";
+    description = "Pure python library for creating multi-track MIDI files";
     license = licenses.mit;
     maintainers = [ ];
   };
diff --git a/pkgs/development/python-modules/milc/default.nix b/pkgs/development/python-modules/milc/default.nix
index 67f39cc612fd5..4aaba74782ea7 100644
--- a/pkgs/development/python-modules/milc/default.nix
+++ b/pkgs/development/python-modules/milc/default.nix
@@ -41,7 +41,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "milc" ];
 
   meta = with lib; {
-    description = "An Opinionated Batteries-Included Python 3 CLI Framework";
+    description = "Opinionated Batteries-Included Python 3 CLI Framework";
     mainProgram = "milc-color";
     homepage = "https://milc.clueboard.co";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/milksnake/default.nix b/pkgs/development/python-modules/milksnake/default.nix
index b422dabc4fa3e..16b0bf2a95770 100644
--- a/pkgs/development/python-modules/milksnake/default.nix
+++ b/pkgs/development/python-modules/milksnake/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A python library that extends setuptools for binary extensions";
+    description = "Python library that extends setuptools for binary extensions";
     homepage = "https://github.com/getsentry/milksnake";
     license = licenses.asl20;
     maintainers = with maintainers; [ matthiasbeyer ];
diff --git a/pkgs/development/python-modules/minari/default.nix b/pkgs/development/python-modules/minari/default.nix
index 055db0926e1fd..fdf38918ff33a 100644
--- a/pkgs/development/python-modules/minari/default.nix
+++ b/pkgs/development/python-modules/minari/default.nix
@@ -75,7 +75,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A standard format for offline reinforcement learning datasets, with popular reference datasets and related utilities";
+    description = "Standard format for offline reinforcement learning datasets, with popular reference datasets and related utilities";
     homepage = "https://github.com/Farama-Foundation/Minari";
     changelog = "https://github.com/Farama-Foundation/Minari/releases/tag/v${version}";
     license = with licenses; [
diff --git a/pkgs/development/python-modules/minexr/default.nix b/pkgs/development/python-modules/minexr/default.nix
index 1a713a900f3d4..d99149d8b568b 100644
--- a/pkgs/development/python-modules/minexr/default.nix
+++ b/pkgs/development/python-modules/minexr/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Minimal, standalone OpenEXR reader for single-part, uncompressed scan line files.";
+    description = "Minimal, standalone OpenEXR reader for single-part, uncompressed scan line files";
     homepage = "https://github.com/cheind/py-minexr";
     license = licenses.mit;
     maintainers = with maintainers; [ lucasew ];
diff --git a/pkgs/development/python-modules/minichain/default.nix b/pkgs/development/python-modules/minichain/default.nix
index 8ccac591f165d..61792c468925a 100644
--- a/pkgs/development/python-modules/minichain/default.nix
+++ b/pkgs/development/python-modules/minichain/default.nix
@@ -65,7 +65,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A tiny library for coding with large language models";
+    description = "Tiny library for coding with large language models";
     homepage = "https://srush-minichain.hf.space";
     changelog = "https://github.com/srush/MiniChain/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/minimock/default.nix b/pkgs/development/python-modules/minimock/default.nix
index b3a1e6c367d5b..63e8ef0b37781 100644
--- a/pkgs/development/python-modules/minimock/default.nix
+++ b/pkgs/development/python-modules/minimock/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "minimock" ];
 
   meta = with lib; {
-    description = "A minimalistic mocking library";
+    description = "Minimalistic mocking library";
     homepage = "https://pypi.python.org/pypi/MiniMock";
     license = licenses.mit;
     maintainers = with maintainers; [ drewrisinger ];
diff --git a/pkgs/development/python-modules/minio/default.nix b/pkgs/development/python-modules/minio/default.nix
index 98910a55da2d2..17d7b4e3096b0 100644
--- a/pkgs/development/python-modules/minio/default.nix
+++ b/pkgs/development/python-modules/minio/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "minio";
-  version = "7.2.6";
+  version = "7.2.7";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "minio";
     repo = "minio-py";
     rev = "refs/tags/${version}";
-    hash = "sha256-zK+D2DNgh1cASdA2gstNW0ODUu7Dn6vMY01mcrdSSo0=";
+    hash = "sha256-Qb3KPwSODtIqwS4FfR+DHphx4duPsNdMlHt2rpdV2+Y=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/mip/default.nix b/pkgs/development/python-modules/mip/default.nix
index 536d8e7cf4978..16ecf80905aaf 100644
--- a/pkgs/development/python-modules/mip/default.nix
+++ b/pkgs/development/python-modules/mip/default.nix
@@ -85,7 +85,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://python-mip.com/";
-    description = "A collection of Python tools for the modeling and solution of Mixed-Integer Linear programs (MIPs)";
+    description = "Collection of Python tools for the modeling and solution of Mixed-Integer Linear programs (MIPs)";
     downloadPage = "https://github.com/coin-or/python-mip/releases";
     changelog = "https://github.com/coin-or/python-mip/releases/tag/${version}";
     license = licenses.epl20;
diff --git a/pkgs/development/python-modules/misaka/default.nix b/pkgs/development/python-modules/misaka/default.nix
index b8684ae29b4a6..11ac651828a54 100644
--- a/pkgs/development/python-modules/misaka/default.nix
+++ b/pkgs/development/python-modules/misaka/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A CFFI binding for Hoedown, a markdown parsing library";
+    description = "CFFI binding for Hoedown, a markdown parsing library";
     mainProgram = "misaka";
     homepage = "https://misaka.61924.nl";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/misoc/default.nix b/pkgs/development/python-modules/misoc/default.nix
index a008316e1243f..a7b2198041fb5 100644
--- a/pkgs/development/python-modules/misoc/default.nix
+++ b/pkgs/development/python-modules/misoc/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "misoc" ];
 
   meta = with lib; {
-    description = "The original high performance and small footprint system-on-chip based on Migen";
+    description = "Original high performance and small footprint system-on-chip based on Migen";
     homepage = "https://github.com/m-labs/misoc";
     license = licenses.bsd2;
     maintainers = with maintainers; [ doronbehar ];
diff --git a/pkgs/development/python-modules/mistune/default.nix b/pkgs/development/python-modules/mistune/default.nix
index 8db3bdb8ae25c..a3ed1114cb13d 100644
--- a/pkgs/development/python-modules/mistune/default.nix
+++ b/pkgs/development/python-modules/mistune/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/lepture/mistune/blob/${src.rev}/docs/changes.rst";
-    description = "A sane Markdown parser with useful plugins and renderers";
+    description = "Sane Markdown parser with useful plugins and renderers";
     homepage = "https://github.com/lepture/mistune";
     license = licenses.bsd3;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/mitmproxy-macos/default.nix b/pkgs/development/python-modules/mitmproxy-macos/default.nix
index 34989f1655994..08228102cf1bf 100644
--- a/pkgs/development/python-modules/mitmproxy-macos/default.nix
+++ b/pkgs/development/python-modules/mitmproxy-macos/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "mitmproxy_macos" ];
 
   meta = with lib; {
-    description = "The MacOS Rust bits in mitmproxy";
+    description = "MacOS Rust bits in mitmproxy";
     homepage = "https://github.com/mitmproxy/mitmproxy_rs/tree/main/mitmproxy-macos";
     changelog = "https://github.com/mitmproxy/mitmproxy_rs/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/mitmproxy-rs/default.nix b/pkgs/development/python-modules/mitmproxy-rs/default.nix
index 5b7296d81c98e..79941e67fd7b1 100644
--- a/pkgs/development/python-modules/mitmproxy-rs/default.nix
+++ b/pkgs/development/python-modules/mitmproxy-rs/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "mitmproxy_rs" ];
 
   meta = with lib; {
-    description = "The Rust bits in mitmproxy";
+    description = "Rust bits in mitmproxy";
     homepage = "https://github.com/mitmproxy/mitmproxy_rs";
     changelog = "https://github.com/mitmproxy/mitmproxy_rs/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/mitmproxy/default.nix b/pkgs/development/python-modules/mitmproxy/default.nix
index 32515800195fd..0a6864daea63b 100644
--- a/pkgs/development/python-modules/mitmproxy/default.nix
+++ b/pkgs/development/python-modules/mitmproxy/default.nix
@@ -46,7 +46,7 @@
 
 buildPythonPackage rec {
   pname = "mitmproxy";
-  version = "10.3.0";
+  version = "10.3.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -54,8 +54,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "mitmproxy";
     repo = "mitmproxy";
-    rev = "refs/tags/${version}";
-    hash = "sha256-YjvGsnpQQ8GWLyKmnd3lOxesnr+F2xCNXyahZh0JQnc=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-rIyRY1FolbdoaI4OgFG7D2/mot8NiRHalgittPzledw=";
   };
 
   nativeBuildInputs = [ pythonRelaxDepsHook ];
diff --git a/pkgs/development/python-modules/mizani/default.nix b/pkgs/development/python-modules/mizani/default.nix
index 1442938bea0ce..ecc1667175c2c 100644
--- a/pkgs/development/python-modules/mizani/default.nix
+++ b/pkgs/development/python-modules/mizani/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "mizani";
-  version = "0.11.3";
+  version = "0.11.4";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "has2k1";
     repo = "mizani";
     rev = "refs/tags/v${version}";
-    hash = "sha256-aEataiB432yKnQ80TxJvsU9DO9wI4ZVGq1k73qeuEv0=";
+    hash = "sha256-2XBvjlVSEjeNc7UlPZ00cNrWVuHh/FgDwkvWus7ndr4=";
   };
 
   build-system = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/mkdocs-autolinks-plugin/default.nix b/pkgs/development/python-modules/mkdocs-autolinks-plugin/default.nix
index 8ab108e710d97..8a4a98e994efa 100644
--- a/pkgs/development/python-modules/mkdocs-autolinks-plugin/default.nix
+++ b/pkgs/development/python-modules/mkdocs-autolinks-plugin/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "mkdocs_autolinks_plugin" ];
 
   meta = with lib; {
-    description = "An MkDocs plugin that simplifies relative linking between documents";
+    description = "MkDocs plugin that simplifies relative linking between documents";
     homepage = "https://github.com/zachhannum/mkdocs-autolinks-plugin";
     license = licenses.mit;
     maintainers = with maintainers; [ lucas-deangelis ];
diff --git a/pkgs/development/python-modules/mkdocs-drawio-exporter/default.nix b/pkgs/development/python-modules/mkdocs-drawio-exporter/default.nix
index 02064d5f4e0b3..44b0c28d6a682 100644
--- a/pkgs/development/python-modules/mkdocs-drawio-exporter/default.nix
+++ b/pkgs/development/python-modules/mkdocs-drawio-exporter/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "mkdocsdrawioexporter" ];
 
   meta = with lib; {
-    description = "Exports your Draw.io diagrams at build time for easier embedding into your documentation.";
+    description = "Exports your Draw.io diagrams at build time for easier embedding into your documentation";
     homepage = "https://github.com/LukeCarrier/mkdocs-drawio-exporter/";
     license = licenses.mit;
     maintainers = with maintainers; [ snpschaaf ];
diff --git a/pkgs/development/python-modules/mkdocs-exclude/default.nix b/pkgs/development/python-modules/mkdocs-exclude/default.nix
index 07060ef65225e..9958faed05c22 100644
--- a/pkgs/development/python-modules/mkdocs-exclude/default.nix
+++ b/pkgs/development/python-modules/mkdocs-exclude/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A mkdocs plugin to exclude files from input using globs or regexes.";
+    description = "Mkdocs plugin to exclude files from input using globs or regexes";
     homepage = "https://github.com/apenwarr/mkdocs-exclude";
     license = licenses.asl20;
     maintainers = with maintainers; [ kaction ];
diff --git a/pkgs/development/python-modules/mkdocs-git-revision-date-localized-plugin/default.nix b/pkgs/development/python-modules/mkdocs-git-revision-date-localized-plugin/default.nix
index 306369d5b7626..2b75fe35c0b77 100644
--- a/pkgs/development/python-modules/mkdocs-git-revision-date-localized-plugin/default.nix
+++ b/pkgs/development/python-modules/mkdocs-git-revision-date-localized-plugin/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "mkdocs-git-revision-date-localized-plugin";
-  version = "1.2.5";
+  version = "1.2.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "timvink";
     repo = "mkdocs-git-revision-date-localized-plugin";
     rev = "refs/tags/v${version}";
-    hash = "sha256-cezL65Wsdaa9W4dGLgTz1x3UFrDRDJaGuttr58CBcuw=";
+    hash = "sha256-1H8K9vXgxYQlEmcXKwZQbJCLu4TRyuqffUI+Gm3ECrE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/mkdocs-gitlab-plugin/default.nix b/pkgs/development/python-modules/mkdocs-gitlab-plugin/default.nix
index e27f4602cde22..45b87d4ba3f89 100644
--- a/pkgs/development/python-modules/mkdocs-gitlab-plugin/default.nix
+++ b/pkgs/development/python-modules/mkdocs-gitlab-plugin/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "mkdocs_gitlab_plugin" ];
 
   meta = with lib; {
-    description = "MkDocs plugin to transform strings such as #1234, %56, or !789 into links to a Gitlab repository.";
+    description = "MkDocs plugin to transform strings such as #1234, %56, or !789 into links to a Gitlab repository";
     homepage = "https://gitlab.inria.fr/vidjil/mkdocs-gitlab-plugin";
     license = licenses.mit;
     maintainers = with maintainers; [ snpschaaf ];
diff --git a/pkgs/development/python-modules/mkdocs-jupyter/default.nix b/pkgs/development/python-modules/mkdocs-jupyter/default.nix
index af9153f321814..9573329d6b593 100644
--- a/pkgs/development/python-modules/mkdocs-jupyter/default.nix
+++ b/pkgs/development/python-modules/mkdocs-jupyter/default.nix
@@ -53,6 +53,8 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "mkdocs_jupyter" ];
 
+  __darwinAllowLocalNetworking = true;
+
   meta = with lib; {
     description = "Use Jupyter Notebook in mkdocs";
     homepage = "https://github.com/danielfrg/mkdocs-jupyter";
diff --git a/pkgs/development/python-modules/mkdocs-macros/default.nix b/pkgs/development/python-modules/mkdocs-macros/default.nix
index fd447ed7d6c02..a8940953123b7 100644
--- a/pkgs/development/python-modules/mkdocs-macros/default.nix
+++ b/pkgs/development/python-modules/mkdocs-macros/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/fralau/mkdocs_macros_plugin";
-    description = "Create richer and more beautiful pages in MkDocs, by using variables and calls to macros in the markdown code.";
+    description = "Create richer and more beautiful pages in MkDocs, by using variables and calls to macros in the markdown code";
     license = licenses.mit;
     maintainers = with maintainers; [ tljuniper ];
   };
diff --git a/pkgs/development/python-modules/mkdocs-mermaid2-plugin/default.nix b/pkgs/development/python-modules/mkdocs-mermaid2-plugin/default.nix
index 15c65c6aee7d4..84a00dde6433e 100644
--- a/pkgs/development/python-modules/mkdocs-mermaid2-plugin/default.nix
+++ b/pkgs/development/python-modules/mkdocs-mermaid2-plugin/default.nix
@@ -42,7 +42,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "mermaid2" ];
 
   meta = with lib; {
-    description = "A MkDocs plugin for including mermaid graphs in markdown sources";
+    description = "MkDocs plugin for including mermaid graphs in markdown sources";
     homepage = "https://github.com/fralau/mkdocs-mermaid2-plugin";
     changelog = "https://github.com/fralau/mkdocs-mermaid2-plugin/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/mkdocs-minify-plugin/default.nix b/pkgs/development/python-modules/mkdocs-minify-plugin/default.nix
index 5ad7b5661625e..cf52a5b436bd3 100644
--- a/pkgs/development/python-modules/mkdocs-minify-plugin/default.nix
+++ b/pkgs/development/python-modules/mkdocs-minify-plugin/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "mkdocs" ];
 
   meta = with lib; {
-    description = "A mkdocs plugin to minify the HTML of a page before it is written to disk.";
+    description = "Mkdocs plugin to minify the HTML of a page before it is written to disk";
     homepage = "https://github.com/byrnereese/mkdocs-minify-plugin";
     license = licenses.mit;
     maintainers = with maintainers; [ tfc ];
diff --git a/pkgs/development/python-modules/mkdocs-redoc-tag/default.nix b/pkgs/development/python-modules/mkdocs-redoc-tag/default.nix
index a0cd6dff63ffc..9196077644e9e 100644
--- a/pkgs/development/python-modules/mkdocs-redoc-tag/default.nix
+++ b/pkgs/development/python-modules/mkdocs-redoc-tag/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A MkDocs plugin supports for add Redoc UI in page";
+    description = "MkDocs plugin supports for add Redoc UI in page";
     homepage = "https://github.com/blueswen/mkdocs-redoc-tag";
     changelog = "https://github.com/blueswen/mkdocs-redoc-tag/blob/v${version}/CHANGELOG";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/mkdocs-rss-plugin/default.nix b/pkgs/development/python-modules/mkdocs-rss-plugin/default.nix
index a11dd831e8bbb..f35fa16cd400e 100644
--- a/pkgs/development/python-modules/mkdocs-rss-plugin/default.nix
+++ b/pkgs/development/python-modules/mkdocs-rss-plugin/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "mkdocs-rss-plugin";
-  version = "1.12.2";
+  version = "1.13.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "Guts";
     repo = "mkdocs-rss-plugin";
     rev = "refs/tags/${version}";
-    hash = "sha256-CeVt4Vkr3tGvWsDQtw8eAaRS5jBeDei0TrS5rViSCaI=";
+    hash = "sha256-FxVyPks42hoj2y2epZjSNuTOvhDk3Vxm895a4teeSuw=";
   };
 
   postPatch = ''
@@ -49,7 +49,7 @@ buildPythonPackage rec {
   disabledTests = [
     # Tests require network access
     "test_plugin_config_through_mkdocs"
-    "test_remote_image_ok"
+    "test_remote_image"
   ];
 
   disabledTestPaths = [
diff --git a/pkgs/development/python-modules/mkdocs-swagger-ui-tag/default.nix b/pkgs/development/python-modules/mkdocs-swagger-ui-tag/default.nix
index 97212019f137a..78a1467554038 100644
--- a/pkgs/development/python-modules/mkdocs-swagger-ui-tag/default.nix
+++ b/pkgs/development/python-modules/mkdocs-swagger-ui-tag/default.nix
@@ -44,7 +44,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A MkDocs plugin supports for add Swagger UI in page";
+    description = "MkDocs plugin supports for add Swagger UI in page";
     homepage = "https://github.com/Blueswen/mkdocs-swagger-ui-tag";
     changelog = "https://github.com/blueswen/mkdocs-swagger-ui-tag/blob/v${version}/CHANGELOG";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/mkdocstrings-python/default.nix b/pkgs/development/python-modules/mkdocstrings-python/default.nix
index 5e634d2da0eaf..67ad47544107b 100644
--- a/pkgs/development/python-modules/mkdocstrings-python/default.nix
+++ b/pkgs/development/python-modules/mkdocstrings-python/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "mkdocstrings-python";
-  version = "1.10.2";
+  version = "1.10.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "mkdocstrings";
     repo = "python";
     rev = "refs/tags/${version}";
-    hash = "sha256-Dz74q7bsa8bInxn4RpP9MFXFDEL2yWifDe64K8AOl8k=";
+    hash = "sha256-OiG/dPsWO2Z4lGUlgPePRcsrotCu+fwesKhhh6YjmnU=";
   };
 
   build-system = [ pdm-backend ];
diff --git a/pkgs/development/python-modules/ml-collections/default.nix b/pkgs/development/python-modules/ml-collections/default.nix
index c03aefa92ee17..2efd63acb78b4 100644
--- a/pkgs/development/python-modules/ml-collections/default.nix
+++ b/pkgs/development/python-modules/ml-collections/default.nix
@@ -51,7 +51,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ml_collections" ];
 
   meta = with lib; {
-    description = "ML Collections is a library of Python collections designed for ML usecases.";
+    description = "ML Collections is a library of Python collections designed for ML usecases";
     homepage = "https://github.com/google/ml_collections";
     license = licenses.asl20;
     maintainers = with maintainers; [ samuela ];
diff --git a/pkgs/development/python-modules/ml-dtypes/default.nix b/pkgs/development/python-modules/ml-dtypes/default.nix
index 683514fabd2dd..0fd14edd7b215 100644
--- a/pkgs/development/python-modules/ml-dtypes/default.nix
+++ b/pkgs/development/python-modules/ml-dtypes/default.nix
@@ -54,7 +54,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ml_dtypes" ];
 
   meta = with lib; {
-    description = "A stand-alone implementation of several NumPy dtype extensions used in machine learning libraries";
+    description = "Stand-alone implementation of several NumPy dtype extensions used in machine learning libraries";
     homepage = "https://github.com/jax-ml/ml_dtypes";
     changelog = "https://github.com/jax-ml/ml_dtypes/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/mlx/default.nix b/pkgs/development/python-modules/mlx/default.nix
index 83860499fb3bf..c45e35af83822 100644
--- a/pkgs/development/python-modules/mlx/default.nix
+++ b/pkgs/development/python-modules/mlx/default.nix
@@ -80,7 +80,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/ml-explore/mlx";
-    description = "An array framework for Apple silicon";
+    description = "Array framework for Apple silicon";
     changelog = "https://github.com/ml-explore/mlx/releases/tag/v${version}";
     license = licenses.mit;
     platforms = [ "aarch64-darwin" ];
diff --git a/pkgs/development/python-modules/mlxtend/default.nix b/pkgs/development/python-modules/mlxtend/default.nix
index 7048829168b4e..85c5c05f4eae3 100644
--- a/pkgs/development/python-modules/mlxtend/default.nix
+++ b/pkgs/development/python-modules/mlxtend/default.nix
@@ -48,7 +48,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A library of Python tools and extensions for data science";
+    description = "Library of Python tools and extensions for data science";
     homepage = "https://github.com/rasbt/mlxtend";
     license = licenses.bsd3;
     maintainers = with maintainers; [ evax ];
diff --git a/pkgs/development/python-modules/mmcv/default.nix b/pkgs/development/python-modules/mmcv/default.nix
index a42ec4fe086fa..d552736a6920e 100644
--- a/pkgs/development/python-modules/mmcv/default.nix
+++ b/pkgs/development/python-modules/mmcv/default.nix
@@ -53,7 +53,7 @@ let
 in
 buildPythonPackage rec {
   pname = "mmcv";
-  version = "2.1.0";
+  version = "2.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -62,7 +62,7 @@ buildPythonPackage rec {
     owner = "open-mmlab";
     repo = "mmcv";
     rev = "refs/tags/v${version}";
-    hash = "sha256-an78tRvx18zQ5Q0ca74r4Oe2gJ9F9OfWXLbuP2+rL68=";
+    hash = "sha256-NNF9sLJWV1q6uBE73LUW4UWwYm4TBMTBJjJkFArBmsc=";
   };
 
   preConfigure =
@@ -133,7 +133,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "mmcv" ];
 
   meta = with lib; {
-    description = "A Foundational Library for Computer Vision Research";
+    description = "Foundational Library for Computer Vision Research";
     homepage = "https://github.com/open-mmlab/mmcv";
     changelog = "https://github.com/open-mmlab/mmcv/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
diff --git a/pkgs/development/python-modules/mmtf-python/default.nix b/pkgs/development/python-modules/mmtf-python/default.nix
index 0cf01c7bc6fbb..9e40d8a76adc3 100644
--- a/pkgs/development/python-modules/mmtf-python/default.nix
+++ b/pkgs/development/python-modules/mmtf-python/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "mmtf" ];
 
   meta = {
-    description = "The python implementation of the MMTF API, decoder and encoder";
+    description = "Python implementation of the MMTF API, decoder and encoder";
     homepage = "https://github.com/rcsb/mmtf-python";
     changelog = "https://github.com/rcsb/mmtf-python/releases/tag/v${version}";
     license = lib.licenses.asl20;
diff --git a/pkgs/development/python-modules/mne-python/default.nix b/pkgs/development/python-modules/mne-python/default.nix
index 03a7657031c6a..f471c1027dbf0 100644
--- a/pkgs/development/python-modules/mne-python/default.nix
+++ b/pkgs/development/python-modules/mne-python/default.nix
@@ -2,20 +2,18 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  setuptools,
-  setuptools-scm,
+  hatchling,
+  hatch-vcs,
   numpy,
   scipy,
   pytestCheckHook,
   pytest-timeout,
-  pytest-harvest,
   matplotlib,
   decorator,
   jinja2,
   pooch,
   tqdm,
   packaging,
-  importlib-resources,
   lazy-loader,
   h5io,
   pymatreader,
@@ -24,27 +22,27 @@
 
 buildPythonPackage rec {
   pname = "mne-python";
-  version = "1.6.1";
+  version = "1.7.1";
   pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "mne-tools";
     repo = "mne-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-U1aMqcUZ3BcwqwOYh/qfG5PhacwBVioAgNc52uaoJL0";
+    hash = "sha256-piCFynpKh7gTWIGh2g0gJICLS+eg/0XAxaDkyu7v5vs=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml  \
-      --replace "--cov-report=" ""  \
-      --replace "--cov-branch" ""
+      --replace-fail "--cov-report=" ""  \
+      --replace-fail "--cov-branch" ""
   '';
 
   nativeBuildInputs = [
-    setuptools
-    setuptools-scm
+    hatchling
+    hatch-vcs
   ];
 
   propagatedBuildInputs = [
@@ -57,19 +55,16 @@ buildPythonPackage rec {
     packaging
     jinja2
     lazy-loader
-  ] ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ];
+  ];
 
-  passthru.optional-dependencies = {
-    hdf5 = [
-      h5io
-      pymatreader
-    ];
-  };
+  passthru.optional-dependencies.hdf5 = [
+    h5io
+    pymatreader
+  ];
 
   nativeCheckInputs = [
     pytestCheckHook
     pytest-timeout
-    pytest-harvest
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
   preCheck = ''
diff --git a/pkgs/development/python-modules/mock-open/default.nix b/pkgs/development/python-modules/mock-open/default.nix
index 4b08c3d060271..3cf1095b20eab 100644
--- a/pkgs/development/python-modules/mock-open/default.nix
+++ b/pkgs/development/python-modules/mock-open/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/nivbend/mock-open";
-    description = "A better mock for file I/O";
+    description = "Better mock for file I/O";
     license = licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/mocket/default.nix b/pkgs/development/python-modules/mocket/default.nix
index 8376b690589d7..3a209f7a6a43f 100644
--- a/pkgs/development/python-modules/mocket/default.nix
+++ b/pkgs/development/python-modules/mocket/default.nix
@@ -103,7 +103,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/mindflayer/python-mocket/releases/tag/${version}";
-    description = "A socket mock framework for all kinds of sockets including web-clients";
+    description = "Socket mock framework for all kinds of sockets including web-clients";
     homepage = "https://github.com/mindflayer/python-mocket";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/mockfs/default.nix b/pkgs/development/python-modules/mockfs/default.nix
index e318e0beb31b5..7f069557ed7a0 100644
--- a/pkgs/development/python-modules/mockfs/default.nix
+++ b/pkgs/development/python-modules/mockfs/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A simple mock filesystem for use in unit tests";
+    description = "Simple mock filesystem for use in unit tests";
     homepage = "https://github.com/mockfs/mockfs";
     changelog = "https://github.com/mockfs/mockfs/blob/${src.rev}/CHANGES.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/moddb/default.nix b/pkgs/development/python-modules/moddb/default.nix
index 60229e37414a2..2846ef2d7a317 100644
--- a/pkgs/development/python-modules/moddb/default.nix
+++ b/pkgs/development/python-modules/moddb/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   doCheck = false; # Tests try to access the internet.
 
   meta = with lib; {
-    description = "A Python scrapper to access ModDB mods, games and more as objects";
+    description = "Python scrapper to access ModDB mods, games and more as objects";
     homepage = "https://github.com/ClementJ18/moddb";
     license = licenses.mit;
     maintainers = with maintainers; [ kranzes ];
diff --git a/pkgs/development/python-modules/model-bakery/default.nix b/pkgs/development/python-modules/model-bakery/default.nix
index 82b91dd10da51..0729ec702479a 100644
--- a/pkgs/development/python-modules/model-bakery/default.nix
+++ b/pkgs/development/python-modules/model-bakery/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "model-bakery";
-  version = "1.18.0";
+  version = "1.18.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "model-bakers";
     repo = "model_bakery";
     rev = "refs/tags/${version}";
-    hash = "sha256-mf6NV7r/9kDCRlszx/QGtfEsC1O/SATd6+EX+w7ptEQ=";
+    hash = "sha256-QsfVKPasGFzcLIwx7t9H9I2o2JNUFLKbKc86tntltg8=";
   };
 
   build-system = [ hatchling ];
diff --git a/pkgs/development/python-modules/model-checker/default.nix b/pkgs/development/python-modules/model-checker/default.nix
index 685282decd33e..a525adad59471 100644
--- a/pkgs/development/python-modules/model-checker/default.nix
+++ b/pkgs/development/python-modules/model-checker/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "model-checker";
-  version = "0.3.13";
+  version = "0.4.9";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "model_checker";
     inherit version;
-    hash = "sha256-3LVes+orRl8tNhhbUUDa1VM/tFf8Y1pAzKknmrjA6e4=";
+    hash = "sha256-BUkbCllM2qN5yKTvte2iwnmBXQAzu2N8LTGRfvOTKUQ=";
   };
 
   # z3 does not provide a dist-info, so python-runtime-deps-check will fail
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "model_checker" ];
 
   meta = with lib; {
-    description = "A hyperintensional theorem prover for counterfactual conditionals and modal operators";
+    description = "Hyperintensional theorem prover for counterfactual conditionals and modal operators";
     homepage = "https://pypi.org/project/model-checker/";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/pkgs/development/python-modules/modestmaps/default.nix b/pkgs/development/python-modules/modestmaps/default.nix
index 4e4be8310ccb3..24c4ef2b0bcd2 100644
--- a/pkgs/development/python-modules/modestmaps/default.nix
+++ b/pkgs/development/python-modules/modestmaps/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ pillow ];
 
   meta = with lib; {
-    description = "A library for building interactive maps";
+    description = "Library for building interactive maps";
     homepage = "http://modestmaps.com";
     license = licenses.bsd3;
   };
diff --git a/pkgs/development/python-modules/mohawk/default.nix b/pkgs/development/python-modules/mohawk/default.nix
index 97b44b6dc75d5..4fab29c45967a 100644
--- a/pkgs/development/python-modules/mohawk/default.nix
+++ b/pkgs/development/python-modules/mohawk/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   '';
 
   meta = {
-    description = "Python library for Hawk HTTP authorization.";
+    description = "Python library for Hawk HTTP authorization";
     homepage = "https://github.com/kumar303/mohawk";
     license = lib.licenses.mpl20;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/molbar/default.nix b/pkgs/development/python-modules/molbar/default.nix
new file mode 100644
index 0000000000000..ada2c6cfb5350
--- /dev/null
+++ b/pkgs/development/python-modules/molbar/default.nix
@@ -0,0 +1,73 @@
+{ buildPythonPackage
+, python
+, pythonRelaxDepsHook
+, lib
+, gfortran
+, fetchgit
+, cmake
+, ninja
+, networkx
+, numpy
+, pandas
+, scipy
+, tqdm
+, joblib
+, numba
+, ase
+, scikit-build
+, dscribe
+, pyyaml
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  name = "MolBar";
+  version = "1.1.1";
+
+  src = fetchgit {
+    url = "https://git.rwth-aachen.de/bannwarthlab/molbar";
+    rev = "release_v${version}";
+    hash = "sha256-AFp2x8gil6nbZbgTZmuv+QAMImUMryyCc1by9U/ukYE=";
+  };
+
+  pyproject = true;
+
+  nativeBuildInputs = [
+    gfortran
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [ "networkx" ];
+
+  build-system = [
+    cmake
+    scikit-build
+    ninja
+  ];
+
+  dependencies = [
+    networkx
+    numpy
+    pandas
+    scipy
+    tqdm
+    joblib
+    numba
+    ase
+    dscribe
+    pyyaml
+  ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  dontUseCmakeConfigure = true;
+
+  doCheck = false; # Doesn't find the fortran libs before installation
+
+  meta = with lib; {
+    description = "Unique molecular identifiers for molecular barcoding";
+    homepage = "https://git.rwth-aachen.de/bannwarthlab/molbar";
+    license = licenses.mit;
+    maintainers = [ maintainers.sheepforce ];
+  };
+}
diff --git a/pkgs/development/python-modules/molecule/default.nix b/pkgs/development/python-modules/molecule/default.nix
index 170d0bd2f7413..84cbbf48157b6 100644
--- a/pkgs/development/python-modules/molecule/default.nix
+++ b/pkgs/development/python-modules/molecule/default.nix
@@ -23,14 +23,14 @@
 
 buildPythonPackage rec {
   pname = "molecule";
-  version = "24.2.1";
+  version = "24.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-g1IrqpuRVg6phic8qxScORVpdunWEkVxciYyCTWtVuQ=";
+    hash = "sha256-jey0xoT8r7hae08DjaEl7UJb3RDbdr8M20E/m4TkG1g=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/momepy/default.nix b/pkgs/development/python-modules/momepy/default.nix
new file mode 100644
index 0000000000000..ebb110d12caa1
--- /dev/null
+++ b/pkgs/development/python-modules/momepy/default.nix
@@ -0,0 +1,57 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  geopandas,
+  inequality,
+  libpysal,
+  mapclassify,
+  networkx,
+  packaging,
+  pandas,
+  setuptools-scm,
+  shapely,
+  tqdm,
+}:
+
+buildPythonPackage rec {
+  pname = "momepy";
+  version = "0.7.0";
+  pyproject = true;
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "pysal";
+    repo = "momepy";
+    rev = "v${version}";
+    hash = "sha256-HVp2a0z+5fbfkNSxnTfZPCgG2SJMlKX/zso14M18mCk=";
+  };
+
+  build-system = [ setuptools-scm ];
+
+  propagatedBuildInputs = [
+    geopandas
+    inequality
+    libpysal
+    mapclassify
+    networkx
+    packaging
+    pandas
+    shapely
+    tqdm
+  ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "momepy" ];
+
+  meta = {
+    description = "Urban Morphology Measuring Toolkit";
+    homepage = "https://github.com/pysal/momepy";
+    license = lib.licenses.bsd3;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/mongoquery/default.nix b/pkgs/development/python-modules/mongoquery/default.nix
index 14f09137a1fee..551dd1bb4d561 100644
--- a/pkgs/development/python-modules/mongoquery/default.nix
+++ b/pkgs/development/python-modules/mongoquery/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "mongoquery" ];
 
   meta = with lib; {
-    description = "A python implementation of mongodb queries";
+    description = "Python implementation of mongodb queries";
     homepage = "https://github.com/kapouille/mongoquery";
     license = with licenses; [ unlicense ];
     maintainers = with maintainers; [ misuzu ];
diff --git a/pkgs/development/python-modules/monkeyhex/default.nix b/pkgs/development/python-modules/monkeyhex/default.nix
index 0a0089e9e321a..c07fe91a8c74b 100644
--- a/pkgs/development/python-modules/monkeyhex/default.nix
+++ b/pkgs/development/python-modules/monkeyhex/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "monkeyhex" ];
 
   meta = with lib; {
-    description = "A small library to assist users of the python shell who work in contexts where printed numbers are more usefully viewed in hexadecimal";
+    description = "Small library to assist users of the python shell who work in contexts where printed numbers are more usefully viewed in hexadecimal";
     homepage = "https://github.com/rhelmot/monkeyhex";
     license = licenses.mit;
     maintainers = [ maintainers.pamplemousse ];
diff --git a/pkgs/development/python-modules/monotonic/default.nix b/pkgs/development/python-modules/monotonic/default.nix
index 8041eb88b9026..8b138a383080d 100644
--- a/pkgs/development/python-modules/monotonic/default.nix
+++ b/pkgs/development/python-modules/monotonic/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "An implementation of time.monotonic() for Python 2 & < 3.3";
+    description = "Implementation of time.monotonic() for Python 2 & < 3.3";
     homepage = "https://github.com/atdt/monotonic";
     license = licenses.asl20;
   };
diff --git a/pkgs/development/python-modules/monty/default.nix b/pkgs/development/python-modules/monty/default.nix
index 8118a92acf2c1..0c7a285228d4a 100644
--- a/pkgs/development/python-modules/monty/default.nix
+++ b/pkgs/development/python-modules/monty/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "monty";
-  version = "2024.4.17";
+  version = "2024.5.24";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "materialsvirtuallab";
     repo = "monty";
     rev = "refs/tags/v${version}";
-    hash = "sha256-UqpRkw6F8RAvchq0HBSfdHHO8Lgg+yLdBku+wsPKg0E=";
+    hash = "sha256-c2RG38lsYWtwdCzrRTH/l9o4k6UPUOFC+wwV9zjoDvk=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/monzopy/default.nix b/pkgs/development/python-modules/monzopy/default.nix
index 1c4513ea04f6b..78b46a115f53c 100644
--- a/pkgs/development/python-modules/monzopy/default.nix
+++ b/pkgs/development/python-modules/monzopy/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "monzopy";
-  version = "1.2.0";
+  version = "1.3.1";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "JakeMartin-ICL";
     repo = "monzopy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-C2uJQWfDXQ19Tl4a8o3cjvCRDISRrexWZZmWPmNieS4=";
+    hash = "sha256-AoBfcQ0rilUPMvLCjU2Y+P/wVnb+I40vmq+5lS5eSto=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/more-properties/default.nix b/pkgs/development/python-modules/more-properties/default.nix
index 18167c4bbc57e..53e79468c66bc 100644
--- a/pkgs/development/python-modules/more-properties/default.nix
+++ b/pkgs/development/python-modules/more-properties/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "more_properties" ];
 
   meta = {
-    description = "A collection of property variants";
+    description = "Collection of property variants";
     homepage = "https://github.com/madman-bob/python-more-properties";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/morecantile/default.nix b/pkgs/development/python-modules/morecantile/default.nix
new file mode 100644
index 0000000000000..00a6a7c533b47
--- /dev/null
+++ b/pkgs/development/python-modules/morecantile/default.nix
@@ -0,0 +1,54 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  attrs,
+  click,
+  flit,
+  mercantile,
+  pydantic,
+  pyproj,
+  rasterio,
+}:
+
+buildPythonPackage rec {
+  pname = "morecantile";
+  version = "5.3.0";
+  pyproject = true;
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "developmentseed";
+    repo = "morecantile";
+    rev = version;
+    hash = "sha256-F7xYQrOngoRsZjmS6ZHRGN0/GD53AYcMQzyY1LZ1O7I=";
+  };
+
+  nativeBuildInputs = [ flit ];
+
+  propagatedBuildInputs = [
+    attrs
+    click
+    pydantic
+    pyproj
+  ];
+
+  nativeCheckInputs = [
+    mercantile
+    pytestCheckHook
+    rasterio
+  ];
+
+  pythonImportsCheck = [ "morecantile" ];
+
+  meta = {
+    description = "Construct and use map tile grids in different projection";
+    homepage = "https://developmentseed.org/morecantile/";
+    license = lib.licenses.mit;
+    maintainers = lib.teams.geospatial.members;
+    mainProgram = "morecantile";
+  };
+}
diff --git a/pkgs/development/python-modules/morfessor/default.nix b/pkgs/development/python-modules/morfessor/default.nix
index 07c552b88d718..c8e71ac20ed04 100644
--- a/pkgs/development/python-modules/morfessor/default.nix
+++ b/pkgs/development/python-modules/morfessor/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "morfessor" ];
 
   meta = with lib; {
-    description = "A tool for unsupervised and semi-supervised morphological segmentation";
+    description = "Tool for unsupervised and semi-supervised morphological segmentation";
     homepage = "https://github.com/aalto-speech/morfessor";
     license = licenses.bsd2;
     maintainers = with maintainers; [ misuzu ];
diff --git a/pkgs/development/python-modules/mouseinfo/default.nix b/pkgs/development/python-modules/mouseinfo/default.nix
index edb0785f93bf0..d33527b1ec543 100644
--- a/pkgs/development/python-modules/mouseinfo/default.nix
+++ b/pkgs/development/python-modules/mouseinfo/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "An application to display XY position and RGB color information for the pixel currently under the mouse. Works on Python 2 and 3.";
+    description = "Application to display XY position and RGB color information for the pixel currently under the mouse. Works on Python 2 and 3";
     homepage = "https://github.com/asweigart/mouseinfo";
     license = licenses.gpl3;
     maintainers = with maintainers; [ lucasew ];
diff --git a/pkgs/development/python-modules/mpd2/default.nix b/pkgs/development/python-modules/mpd2/default.nix
index ded51c51d0cc9..3f8b44f5dcf74 100644
--- a/pkgs/development/python-modules/mpd2/default.nix
+++ b/pkgs/development/python-modules/mpd2/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/Mic92/python-mpd2/blob/v${version}/doc/changes.rst";
-    description = "A Python client module for the Music Player Daemon";
+    description = "Python client module for the Music Player Daemon";
     homepage = "https://github.com/Mic92/python-mpd2";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [
diff --git a/pkgs/development/python-modules/mpi4py/default.nix b/pkgs/development/python-modules/mpi4py/default.nix
index 1c3d0a2f850f7..43c4040fba72d 100644
--- a/pkgs/development/python-modules/mpi4py/default.nix
+++ b/pkgs/development/python-modules/mpi4py/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   fetchPypi,
-  fetchpatch,
   python,
   buildPythonPackage,
   mpi,
diff --git a/pkgs/development/python-modules/mplhep/default.nix b/pkgs/development/python-modules/mplhep/default.nix
index bda83366dd6bc..1daa1bc2170fa 100644
--- a/pkgs/development/python-modules/mplhep/default.nix
+++ b/pkgs/development/python-modules/mplhep/default.nix
@@ -17,12 +17,12 @@
 
 buildPythonPackage rec {
   pname = "mplhep";
-  version = "0.3.48";
+  version = "0.3.49";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-rAIiaTTSf1xINdadjHk32KOpW4SMg8jdwFt8z1oiLis=";
+    hash = "sha256-Hxqk0eSEOWSpomrS/vTdJV9/1mKQ/yCJQOBpm9tAvqo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/mpmath/default.nix b/pkgs/development/python-modules/mpmath/default.nix
index 1cff95565d6c9..6f0f289e853b9 100644
--- a/pkgs/development/python-modules/mpmath/default.nix
+++ b/pkgs/development/python-modules/mpmath/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://mpmath.org/";
-    description = "A pure-Python library for multiprecision floating arithmetic";
+    description = "Pure-Python library for multiprecision floating arithmetic";
     license = licenses.bsd3;
     maintainers = with maintainers; [ lovek323 ];
     platforms = platforms.unix;
diff --git a/pkgs/development/python-modules/mpv/default.nix b/pkgs/development/python-modules/mpv/default.nix
index cda2eaa578e33..9f92995dd8bb2 100644
--- a/pkgs/development/python-modules/mpv/default.nix
+++ b/pkgs/development/python-modules/mpv/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "mpv";
-  version = "1.0.4";
+  version = "1.0.6";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "jaseg";
     repo = "python-mpv";
     rev = "v${version}";
-    hash = "sha256-qP5Biw4sTLioAhmMZX+Pemue2PWc3N7afAe38dwJv3U=";
+    hash = "sha256-1axVJ8XXs0ZPgsVux3+6YUm1KttLceZyyHOuUEHIFl4=";
   };
 
   nativeBuildInputs = [ setuptools ];
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "mpv" ];
 
   meta = with lib; {
-    description = "A python interface to the mpv media player";
+    description = "Python interface to the mpv media player";
     homepage = "https://github.com/jaseg/python-mpv";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ onny ];
diff --git a/pkgs/development/python-modules/mpyq/default.nix b/pkgs/development/python-modules/mpyq/default.nix
index 9e92598261e01..bbd0befe1415e 100644
--- a/pkgs/development/python-modules/mpyq/default.nix
+++ b/pkgs/development/python-modules/mpyq/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   };
 
   meta = {
-    description = "A Python library for extracting MPQ (MoPaQ) files.";
+    description = "Python library for extracting MPQ (MoPaQ) files";
     mainProgram = "mpyq";
     homepage = "https://github.com/eagleflo/mpyq";
     license = lib.licenses.bsd2;
diff --git a/pkgs/development/python-modules/msal-extensions/default.nix b/pkgs/development/python-modules/msal-extensions/default.nix
index 09afbcdc13846..7d2cfd7a70237 100644
--- a/pkgs/development/python-modules/msal-extensions/default.nix
+++ b/pkgs/development/python-modules/msal-extensions/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "msal_extensions" ];
 
   meta = with lib; {
-    description = "The Microsoft Authentication Library Extensions (MSAL-Extensions) for Python";
+    description = "Microsoft Authentication Library Extensions (MSAL-Extensions) for Python";
     homepage = "https://github.com/AzureAD/microsoft-authentication-extensions-for-python";
     changelog = "https://github.com/AzureAD/microsoft-authentication-extensions-for-python/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/msal/default.nix b/pkgs/development/python-modules/msal/default.nix
index 40e2abe609e56..07b88859e2edd 100644
--- a/pkgs/development/python-modules/msal/default.nix
+++ b/pkgs/development/python-modules/msal/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "msal";
-  version = "1.28.0";
+  version = "1.28.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-gLur40Vny3NO/S7BhpstmBlcknRVNp2Ad7PFQgiMXJ0=";
+    hash = "sha256-1yu/4tXC8lVfS8YgW+RFDd/RKXZhDdmhapqw8Fxotk0=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/mscerts/default.nix b/pkgs/development/python-modules/mscerts/default.nix
index c7579ed25d0cd..b607444fc27f8 100644
--- a/pkgs/development/python-modules/mscerts/default.nix
+++ b/pkgs/development/python-modules/mscerts/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "mscerts";
-  version = "2024.3.27";
+  version = "2024.5.29";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "ralphje";
     repo = "mscerts";
     rev = "refs/tags/${version}";
-    hash = "sha256-Hucf3tToYm3P6ebKNlUs5V+X1B95u9P2UC1yOItZOhc=";
+    hash = "sha256-1k0k5BSEyiJ1Brx7P+sgUQI63k1eT59edghnPVuCuZE=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/msg-parser/default.nix b/pkgs/development/python-modules/msg-parser/default.nix
index a013a99bba723..f2ebb4108970c 100644
--- a/pkgs/development/python-modules/msg-parser/default.nix
+++ b/pkgs/development/python-modules/msg-parser/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "Python module to read, parse and converting Microsoft Outlook MSG E-Mail files.";
+    description = "Python module to read, parse and converting Microsoft Outlook MSG E-Mail files";
     mainProgram = "msg_parser";
     homepage = "https://github.com/vikramarsid/msg_parser";
     license = licenses.bsd2;
diff --git a/pkgs/development/python-modules/msoffcrypto-tool/default.nix b/pkgs/development/python-modules/msoffcrypto-tool/default.nix
index 830a37164a5e0..1c709d57884d4 100644
--- a/pkgs/development/python-modules/msoffcrypto-tool/default.nix
+++ b/pkgs/development/python-modules/msoffcrypto-tool/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "msoffcrypto-tool";
-  version = "5.4.0";
+  version = "5.4.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "nolze";
     repo = "msoffcrypto-tool";
     rev = "refs/tags/v${version}";
-    hash = "sha256-1LTFwXTIvFdrYyI1pDUPzQHw3/043+FGHDnKYWaomY0=";
+    hash = "sha256-BVm4hMKvvNI3bJ82t4NIRcx8o8mgQgoulIerDwoVIT0=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/msrest/default.nix b/pkgs/development/python-modules/msrest/default.nix
index 2ffc88ae33d1d..5b01bf17d328a 100644
--- a/pkgs/development/python-modules/msrest/default.nix
+++ b/pkgs/development/python-modules/msrest/default.nix
@@ -74,7 +74,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "msrest" ];
 
   meta = with lib; {
-    description = "The runtime library for AutoRest generated Python clients";
+    description = "Runtime library for AutoRest generated Python clients";
     homepage = "https://github.com/Azure/msrest-for-python";
     license = licenses.mit;
     maintainers = with maintainers; [
diff --git a/pkgs/development/python-modules/msrestazure/default.nix b/pkgs/development/python-modules/msrestazure/default.nix
index 57597c3d381c5..7a5effd2a8758 100644
--- a/pkgs/development/python-modules/msrestazure/default.nix
+++ b/pkgs/development/python-modules/msrestazure/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "msrest" ];
 
   meta = with lib; {
-    description = "The runtime library 'msrestazure' for AutoRest generated Python clients";
+    description = "Runtime library 'msrestazure' for AutoRest generated Python clients";
     homepage = "https://azure.microsoft.com/en-us/develop/python/";
     license = licenses.mit;
     maintainers = with maintainers; [
diff --git a/pkgs/development/python-modules/mujoco/default.nix b/pkgs/development/python-modules/mujoco/default.nix
index 2ff364503060a..c7d8258e89797 100644
--- a/pkgs/development/python-modules/mujoco/default.nix
+++ b/pkgs/development/python-modules/mujoco/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "mujoco";
-  version = "3.1.5";
+  inherit (mujoco) version;
 
   pyproject = true;
 
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   # in the project's CI.
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-kJm6YAE0HMnji3uUuO96ZzRsdjj6PpT1IHQ6NXiR8pY=";
+    hash = "sha256-fPiIdSbwcedBHcAs4c1mXjm0tgg/3/Sf4TSKgtIxRlE=";
   };
 
   nativeBuildInputs = [
@@ -82,11 +82,14 @@ buildPythonPackage rec {
       ''
     );
 
-  meta = with lib; {
-    description = "Python bindings for MuJoCo: a general purpose physics simulator.";
+  meta = {
+    description = "Python bindings for MuJoCo: a general purpose physics simulator";
     homepage = "https://mujoco.org/";
     changelog = "https://github.com/google-deepmind/mujoco/releases/tag/${version}";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ tmplt ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [
+      GaetanLepage
+      tmplt
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/multipledispatch/default.nix b/pkgs/development/python-modules/multipledispatch/default.nix
index c7a4dc215b4d0..15ff5d914afd6 100644
--- a/pkgs/development/python-modules/multipledispatch/default.nix
+++ b/pkgs/development/python-modules/multipledispatch/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/mrocklin/multipledispatch/";
-    description = "A relatively sane approach to multiple dispatch in Python";
+    description = "Relatively sane approach to multiple dispatch in Python";
     license = lib.licenses.bsd3;
   };
 }
diff --git a/pkgs/development/python-modules/multiset/default.nix b/pkgs/development/python-modules/multiset/default.nix
index c18691e2d84be..917a8c7e3a0fa 100644
--- a/pkgs/development/python-modules/multiset/default.nix
+++ b/pkgs/development/python-modules/multiset/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "An implementation of a multiset";
+    description = "Implementation of a multiset";
     homepage = "https://github.com/wheerd/multiset";
     license = licenses.mit;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/munch/default.nix b/pkgs/development/python-modules/munch/default.nix
index a7d7371d5af8a..db4cfa8b35b69 100644
--- a/pkgs/development/python-modules/munch/default.nix
+++ b/pkgs/development/python-modules/munch/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A dot-accessible dictionary (a la JavaScript objects)";
+    description = "Dot-accessible dictionary (a la JavaScript objects)";
     license = licenses.mit;
     homepage = "https://github.com/Infinidat/munch";
   };
diff --git a/pkgs/development/python-modules/mung/default.nix b/pkgs/development/python-modules/mung/default.nix
index 214b5c77c15ec..236ab3aba46c1 100644
--- a/pkgs/development/python-modules/mung/default.nix
+++ b/pkgs/development/python-modules/mung/default.nix
@@ -9,7 +9,7 @@
   scikit-image,
 }:
 let
-  version = "1.2";
+  version = "1.2.1";
 in
 buildPythonPackage {
   pname = "mung";
@@ -20,7 +20,7 @@ buildPythonPackage {
     owner = "OMR-Research";
     repo = "mung";
     rev = "refs/tags/${version}";
-    hash = "sha256-NSKaJkJRevTy5gh6/ik8Qe46bOPdznsmXPgh7Xz7vXQ=";
+    hash = "sha256-QljGoZdUJRClQ/QzUsCKD0/ooWaFrKXI+93WFPvmIjE=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/mutag/default.nix b/pkgs/development/python-modules/mutag/default.nix
index c0a173a7da9cd..d5b6fe944ae27 100644
--- a/pkgs/development/python-modules/mutag/default.nix
+++ b/pkgs/development/python-modules/mutag/default.nix
@@ -2,30 +2,39 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  isPy3k,
   pyparsing,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage {
   pname = "mutag";
-  version = "0.0.2-2ffa0258ca";
-  format = "setuptools";
-  disabled = !isPy3k;
+  version = "0.0.2-unstable-2018-08-20";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "aroig";
     repo = "mutag";
-    rev = "2ffa0258cadaf79313241f43bf2c1caaf197d9c2";
-    hash = "sha256-YT3DGvYPyTuB70gg6p/3oXcTahEPcNuSIqe56xu3rSs=";
+    rev = "9425169eb5d4aa9eb09f2809a09b83855b3acbef";
+    hash = "sha256-fEMmFRoFyLkqusAuhdx3XEPaPsu1x86ACAz9Vkl9YfA=";
   };
 
-  propagatedBuildInputs = [ pyparsing ];
+  build-system = [ setuptools ];
+
+  dependencies = [ pyparsing ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "mutag" ];
 
   meta = with lib; {
+    description = "Script to change email tags in a mu indexed maildir";
     homepage = "https://github.com/aroig/mutag";
-    description = "A script to change email tags in a mu indexed maildir";
-    mainProgram = "mutag";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
+    mainProgram = "mutag";
   };
 }
diff --git a/pkgs/development/python-modules/mwcli/default.nix b/pkgs/development/python-modules/mwcli/default.nix
index c9636895d2315..613a52bd8a675 100644
--- a/pkgs/development/python-modules/mwcli/default.nix
+++ b/pkgs/development/python-modules/mwcli/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A set of helper functions and classes for mediawiki-utilities command-line utilities";
+    description = "Set of helper functions and classes for mediawiki-utilities command-line utilities";
     homepage = "https://github.com/mediawiki-utilities/python-mwcli";
     license = licenses.mit;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/pkgs/development/python-modules/mwtypes/default.nix b/pkgs/development/python-modules/mwtypes/default.nix
index 83a91b6d75964..e913286898294 100644
--- a/pkgs/development/python-modules/mwtypes/default.nix
+++ b/pkgs/development/python-modules/mwtypes/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "mwtypes" ];
 
   meta = with lib; {
-    description = "A set of classes for working with MediaWiki data types.";
+    description = "Set of classes for working with MediaWiki data types";
     homepage = "https://github.com/mediawiki-utilities/python-mwtypes";
     license = licenses.mit;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/pkgs/development/python-modules/mwxml/default.nix b/pkgs/development/python-modules/mwxml/default.nix
index 1a4217d6dfdf0..93090939a80ad 100644
--- a/pkgs/development/python-modules/mwxml/default.nix
+++ b/pkgs/development/python-modules/mwxml/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "mwxml" ];
 
   meta = with lib; {
-    description = "A set of utilities for processing MediaWiki XML dump data";
+    description = "Set of utilities for processing MediaWiki XML dump data";
     mainProgram = "mwxml";
     homepage = "https://github.com/mediawiki-utilities/python-mwxml";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/mygpoclient/default.nix b/pkgs/development/python-modules/mygpoclient/default.nix
index a3de65b76a69e..ed6b434eb7e9f 100644
--- a/pkgs/development/python-modules/mygpoclient/default.nix
+++ b/pkgs/development/python-modules/mygpoclient/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   doCheck = (!stdenv.isDarwin);
 
   meta = with lib; {
-    description = "A gpodder.net client library";
+    description = "Gpodder.net client library";
     longDescription = ''
       The mygpoclient library allows developers to utilize a Pythonic interface
       to the gpodder.net web services.
diff --git a/pkgs/development/python-modules/myhdl/default.nix b/pkgs/development/python-modules/myhdl/default.nix
index 83ae9f143f2ea..ec9dfcaf82766 100644
--- a/pkgs/development/python-modules/myhdl/default.nix
+++ b/pkgs/development/python-modules/myhdl/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A free, open-source package for using Python as a hardware description and verification language.";
+    description = "Free, open-source package for using Python as a hardware description and verification language";
     homepage = "https://www.myhdl.org/";
     license = licenses.lgpl21;
     maintainers = with maintainers; [ doronbehar ];
diff --git a/pkgs/development/python-modules/mypy/default.nix b/pkgs/development/python-modules/mypy/default.nix
index 8d55e3009416a..ffdd8bc5ac2c2 100644
--- a/pkgs/development/python-modules/mypy/default.nix
+++ b/pkgs/development/python-modules/mypy/default.nix
@@ -26,11 +26,12 @@
   filelock,
   pytest-xdist,
   pytestCheckHook,
+  nixosTests,
 }:
 
 buildPythonPackage rec {
   pname = "mypy";
-  version = "1.9.0";
+  version = "1.10.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -38,8 +39,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "python";
     repo = "mypy";
-    rev = "refs/tags/${version}";
-    hash = "sha256-uOOZX8bKRunTOgYVbmetu2m0B7kijxBgWdNiLCAhiQ4=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-NCnc4C/YFKHN/kT7RTFCYs/yC00Kt1E7mWCoQuUjxG8=";
   };
 
   build-system = [
@@ -118,6 +119,11 @@ buildPythonPackage rec {
       "mypyc/test/test_run.py"
     ];
 
+  passthru.tests = {
+    # Failing typing checks on the test-driver result in channel blockers.
+    inherit (nixosTests) nixos-test-driver;
+  };
+
   meta = with lib; {
     description = "Optional static typing for Python";
     homepage = "https://www.mypy-lang.org";
diff --git a/pkgs/development/python-modules/mysql-connector/default.nix b/pkgs/development/python-modules/mysql-connector/default.nix
index 57db1206a8fb4..b15a4559aa983 100644
--- a/pkgs/development/python-modules/mysql-connector/default.nix
+++ b/pkgs/development/python-modules/mysql-connector/default.nix
@@ -58,7 +58,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A MySQL driver";
+    description = "MySQL driver";
     longDescription = ''
       A MySQL driver that does not depend on MySQL C client libraries and
       implements the DB API v2.0 specification.
diff --git a/pkgs/development/python-modules/myst-docutils/default.nix b/pkgs/development/python-modules/myst-docutils/default.nix
index d4feaa4d0db38..e342450c0e45b 100644
--- a/pkgs/development/python-modules/myst-docutils/default.nix
+++ b/pkgs/development/python-modules/myst-docutils/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "myst_parser" ];
 
   meta = with lib; {
-    description = "An extended commonmark compliant parser, with bridges to docutils/sphinx.";
+    description = "Extended commonmark compliant parser, with bridges to docutils/sphinx";
     homepage = "https://github.com/executablebooks/MyST-Parser";
     license = licenses.mit;
     maintainers = with maintainers; [ dpausp ];
diff --git a/pkgs/development/python-modules/myst-nb/default.nix b/pkgs/development/python-modules/myst-nb/default.nix
index d1729c67f9dd1..c808871be493d 100644
--- a/pkgs/development/python-modules/myst-nb/default.nix
+++ b/pkgs/development/python-modules/myst-nb/default.nix
@@ -52,7 +52,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Jupyter Notebook Sphinx reader built on top of the MyST markdown parser";
+    description = "Jupyter Notebook Sphinx reader built on top of the MyST markdown parser";
     homepage = "https://github.com/executablebooks/MyST-NB";
     changelog = "https://github.com/executablebooks/MyST-NB/raw/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/naked/default.nix b/pkgs/development/python-modules/naked/default.nix
index 9314aab277b75..9c0c35b0b0e71 100644
--- a/pkgs/development/python-modules/naked/default.nix
+++ b/pkgs/development/python-modules/naked/default.nix
@@ -102,7 +102,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "Naked" ];
 
   meta = with lib; {
-    description = "A Python command line application framework";
+    description = "Python command line application framework";
     homepage = "https://github.com/chrissimpkins/naked";
     downloadPage = "https://github.com/chrissimpkins/naked/tags";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/nameko/default.nix b/pkgs/development/python-modules/nameko/default.nix
index 556ab2bcab0aa..b5d445c33f449 100644
--- a/pkgs/development/python-modules/nameko/default.nix
+++ b/pkgs/development/python-modules/nameko/default.nix
@@ -59,7 +59,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "nameko" ];
 
   meta = with lib; {
-    description = "A microservices framework that lets service developers concentrate on application logic and encourages testability";
+    description = "Microservices framework that lets service developers concentrate on application logic and encourages testability";
     mainProgram = "nameko";
     homepage = "https://www.nameko.io/";
     changelog = "https://github.com/nameko/nameko/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/namex/default.nix b/pkgs/development/python-modules/namex/default.nix
new file mode 100644
index 0000000000000..4e7fadf847962
--- /dev/null
+++ b/pkgs/development/python-modules/namex/default.nix
@@ -0,0 +1,36 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  wheel,
+}:
+
+buildPythonPackage rec {
+  pname = "namex";
+  version = "0.0.8";
+  pyproject = true;
+
+  # Not using fetchFromGitHub because the repo does not have any tag/release.
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-MqUPbFZcC7EKp2KYyVlQer3A6FDv4IXcOPNED8s6qQs=";
+  };
+
+  build-system = [
+    setuptools
+    wheel
+  ];
+
+  pythonImportsCheck = [ "namex" ];
+
+  # This packages has no tests.
+  doCheck = false;
+
+  meta = {
+    description = "Simple utility to separate the implementation of your Python package and its public API surface";
+    homepage = "https://github.com/fchollet/namex";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
+  };
+}
diff --git a/pkgs/development/python-modules/nanobind/default.nix b/pkgs/development/python-modules/nanobind/default.nix
index 9e632ff0f1b2a..b02f229ec136f 100644
--- a/pkgs/development/python-modules/nanobind/default.nix
+++ b/pkgs/development/python-modules/nanobind/default.nix
@@ -18,25 +18,26 @@
 }:
 buildPythonPackage rec {
   pname = "nanobind";
-  version = "1.9.2";
+  version = "2.0.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "wjakob";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-6swDqw7sEYOawQbNWD8VfSQoi+9wjhOhOOwPPkahDas=";
+    repo = "nanobind";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-yDFrhSIWywWw7ri5aHRPigi9ujDeazpJa4AVrkLx5BI=";
     fetchSubmodules = true;
   };
 
   disabled = pythonOlder "3.8";
 
-  nativeBuildInputs = [
+  build-system = [
     cmake
     ninja
     scikit-build
     setuptools
   ];
+
   buildInputs = [ eigen ];
   dontUseCmakeBuildDir = true;
 
@@ -51,13 +52,11 @@ buildPythonPackage rec {
     scipy
     torch
     tensorflow
-    # Uncomment at next release (1.9.3)
-    # See https://github.com/wjakob/nanobind/issues/578
-    # jax
-    # jaxlib
+    jax
+    jaxlib
   ];
 
-  meta = with lib; {
+  meta = {
     homepage = "https://github.com/wjakob/nanobind";
     changelog = "https://github.com/wjakob/nanobind/blob/${src.rev}/docs/changelog.rst";
     description = "Tiny and efficient C++/Python bindings";
@@ -68,7 +67,7 @@ buildPythonPackage rec {
       more efficient: bindings compile in a shorter amount of time, produce
       smaller binaries, and have better runtime performance.
     '';
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ parras ];
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ parras ];
   };
 }
diff --git a/pkgs/development/python-modules/nanoid/default.nix b/pkgs/development/python-modules/nanoid/default.nix
index 7bd738b253134..48d1f3f44411b 100644
--- a/pkgs/development/python-modules/nanoid/default.nix
+++ b/pkgs/development/python-modules/nanoid/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "nanoid" ];
 
   meta = with lib; {
-    description = "A tiny, secure, URL-friendly, unique string ID generator for Python";
+    description = "Tiny, secure, URL-friendly, unique string ID generator for Python";
     homepage = "https://github.com/puyuan/py-nanoid";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/napari-console/default.nix b/pkgs/development/python-modules/napari-console/default.nix
index 07b8d735736a1..a71cad588f1ea 100644
--- a/pkgs/development/python-modules/napari-console/default.nix
+++ b/pkgs/development/python-modules/napari-console/default.nix
@@ -41,7 +41,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "napari_console" ];
 
   meta = with lib; {
-    description = "A plugin that adds a console to napari";
+    description = "Plugin that adds a console to napari";
     homepage = "https://github.com/napari/napari-console";
     license = licenses.bsd3;
     maintainers = with maintainers; [ SomeoneSerge ];
diff --git a/pkgs/development/python-modules/napari-svg/default.nix b/pkgs/development/python-modules/napari-svg/default.nix
index fcbf8dd47a1d7..635d0063f9174 100644
--- a/pkgs/development/python-modules/napari-svg/default.nix
+++ b/pkgs/development/python-modules/napari-svg/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A plugin for writing svg files from napari";
+    description = "Plugin for writing svg files from napari";
     homepage = "https://github.com/napari/napari-svg";
     changelog = "https://github.com/napari/napari-svg/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/napari/default.nix b/pkgs/development/python-modules/napari/default.nix
index b5baed96a4417..93252b0e91091 100644
--- a/pkgs/development/python-modules/napari/default.nix
+++ b/pkgs/development/python-modules/napari/default.nix
@@ -103,7 +103,7 @@ mkDerivationWith buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A fast, interactive, multi-dimensional image viewer";
+    description = "Fast, interactive, multi-dimensional image viewer";
     homepage = "https://github.com/napari/napari";
     changelog = "https://github.com/napari/napari/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/natural/default.nix b/pkgs/development/python-modules/natural/default.nix
new file mode 100644
index 0000000000000..fc6bde5f8dc05
--- /dev/null
+++ b/pkgs/development/python-modules/natural/default.nix
@@ -0,0 +1,32 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, lib
+, setuptools
+, six
+, django
+}:
+buildPythonPackage rec {
+  pname = "natural";
+  version = "0.2.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "tehmaze";
+    repo = "natural";
+    rev = "refs/tags/${version}";
+    hash = "sha256-DERFKDGVUPcjYAxiTYWgWkPp+Myd/9CNytQWgRya570=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [ six ];
+
+  nativeCheckInputs = [ django ];
+
+  meta = {
+    description = "Convert data to their natural (human-readable) format";
+    homepage = "https://github.com/tehmaze/natural";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ sailord vinetos ];
+  };
+}
diff --git a/pkgs/development/python-modules/nbclassic/default.nix b/pkgs/development/python-modules/nbclassic/default.nix
index 6b9cfcd9ba6a2..6ac18bef59372 100644
--- a/pkgs/development/python-modules/nbclassic/default.nix
+++ b/pkgs/development/python-modules/nbclassic/default.nix
@@ -1,60 +1,43 @@
 {
   lib,
-  argon2-cffi,
   buildPythonPackage,
   fetchPypi,
+  babel,
   ipykernel,
   ipython-genutils,
-  jinja2,
-  jupyter-client,
-  jupyter-core,
+  jupyter-packaging,
   jupyter-server,
-  nbconvert,
-  nbformat,
   nest-asyncio,
   notebook-shim,
-  prometheus-client,
   pytest-jupyter,
   pytest-tornasync,
   pytestCheckHook,
   pythonOlder,
-  pyzmq,
-  send2trash,
-  terminado,
-  tornado,
-  traitlets,
 }:
 
 buildPythonPackage rec {
   pname = "nbclassic";
-  version = "1.0.0";
-  format = "setuptools";
+  version = "1.1.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-CuEesjGUVdgFWWvzIDNs2pVUtB2Zq5o8Mb+BgL/6MOM=";
+    hash = "sha256-d7d7qF+emI+brYXfNFtRTp5kx/DoIpkqsd9KeKxk/B4=";
   };
 
-  propagatedBuildInputs = [
-    argon2-cffi
+  build-system = [
+    babel
+    jupyter-packaging
+    jupyter-server
+  ];
+
+  dependencies = [
     ipykernel
     ipython-genutils
-    jinja2
-    jupyter-client
-    jupyter-core
-    jupyter-server
-    nbconvert
-    nbformat
     nest-asyncio
     notebook-shim
-    prometheus-client
-    pyzmq
-    send2trash
-    terminado
-    tornado
-    traitlets
   ];
 
   nativeCheckInputs = [
@@ -71,6 +54,5 @@ buildPythonPackage rec {
     description = "Jupyter lab environment notebook server extension";
     homepage = "https://github.com/jupyter/nbclassic";
     license = with licenses; [ bsd3 ];
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/nbclient/default.nix b/pkgs/development/python-modules/nbclient/default.nix
index 98540c2d85e4f..105108d3ab6b6 100644
--- a/pkgs/development/python-modules/nbclient/default.nix
+++ b/pkgs/development/python-modules/nbclient/default.nix
@@ -68,7 +68,7 @@ let
 
     meta = with lib; {
       homepage = "https://github.com/jupyter/nbclient";
-      description = "A client library for executing notebooks";
+      description = "Client library for executing notebooks";
       mainProgram = "jupyter-execute";
       license = licenses.bsd3;
       maintainers = [ ];
diff --git a/pkgs/development/python-modules/nbdev/default.nix b/pkgs/development/python-modules/nbdev/default.nix
index cd97c4b5380e0..e46087b9e5241 100644
--- a/pkgs/development/python-modules/nbdev/default.nix
+++ b/pkgs/development/python-modules/nbdev/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "nbdev";
-  version = "2.3.23";
+  version = "2.3.25";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+HbGHyJ2TX6qnBBPNivFVklrf+Ma2QM3u/2a67NxfIs=";
+    hash = "sha256-MntVdZ6LazdFCm+h5FaTxvzEwCtoJjrW/EJPTt2fdnU=";
   };
 
   nativeBuildInputs = [ pythonRelaxDepsHook ];
diff --git a/pkgs/development/python-modules/nbexec/default.nix b/pkgs/development/python-modules/nbexec/default.nix
index 05964e464144a..370de0db428c0 100644
--- a/pkgs/development/python-modules/nbexec/default.nix
+++ b/pkgs/development/python-modules/nbexec/default.nix
@@ -7,6 +7,7 @@
   jupyter-client,
   nbformat,
   nbconvert,
+  setuptools,
   # check inputs
   unittestCheckHook,
   ipykernel,
@@ -17,7 +18,7 @@ let
 in
 buildPythonPackage {
   inherit pname version;
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
@@ -28,7 +29,9 @@ buildPythonPackage {
     hash = "sha256-Vv6EHX6WlnSmzQAYlO1mHnz5t078z3RQfVfte1+X2pw=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     jupyter-client
     nbformat
     nbconvert
@@ -52,8 +55,10 @@ buildPythonPackage {
 
   pythonImportsCheck = [ "nbexec" ];
 
+  __darwinAllowLocalNetworking = true;
+
   meta = with lib; {
-    description = "A dead-simple tool for executing Jupyter notebooks from the command line.";
+    description = "Dead-simple tool for executing Jupyter notebooks from the command line";
     mainProgram = "nbexec";
     homepage = "https://github.com/jsvine/nbexec";
     changelog = "https://github.com/jsvine/nbexec/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/nbformat/default.nix b/pkgs/development/python-modules/nbformat/default.nix
index 3a03b9a3c26fc..e6eb3344e8d9a 100644
--- a/pkgs/development/python-modules/nbformat/default.nix
+++ b/pkgs/development/python-modules/nbformat/default.nix
@@ -49,7 +49,7 @@ buildPythonPackage rec {
   __darwinAllowLocalNetworking = true;
 
   meta = {
-    description = "The Jupyter Notebook format";
+    description = "Jupyter Notebook format";
     mainProgram = "jupyter-trust";
     homepage = "https://jupyter.org/";
     license = lib.licenses.bsd3;
diff --git a/pkgs/development/python-modules/nbmake/default.nix b/pkgs/development/python-modules/nbmake/default.nix
index be7d9d628cac4..bb050d9b89afb 100644
--- a/pkgs/development/python-modules/nbmake/default.nix
+++ b/pkgs/development/python-modules/nbmake/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "nbmake";
-  version = "1.5.3";
+  version = "1.5.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "treebeardtech";
     repo = "nbmake";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sX0YqyBchLlo0QPIpLvl11/gwoiZknG5rBDzmQKiXhs=";
+    hash = "sha256-OzjqpipFb5COhqc//Sg6OU65ShPrYe/KtxifToEXveg=";
   };
 
   build-system = [
@@ -60,11 +60,11 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  meta = with lib; {
+  meta = {
     description = "Pytest plugin for testing notebooks";
     homepage = "https://github.com/treebeardtech/nbmake";
     changelog = "https://github.com/treebeardtech/nbmake/releases/tag/v${version}";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ GaetanLepage ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
   };
 }
diff --git a/pkgs/development/python-modules/nbmerge/default.nix b/pkgs/development/python-modules/nbmerge/default.nix
index cadc1e2166e18..5b825fa91a513 100644
--- a/pkgs/development/python-modules/nbmerge/default.nix
+++ b/pkgs/development/python-modules/nbmerge/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "nbmerge" ];
 
   meta = {
-    description = "A tool to merge/concatenate Jupyter (IPython) notebooks";
+    description = "Tool to merge/concatenate Jupyter (IPython) notebooks";
     inherit (src.meta) homepage;
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ ];
diff --git a/pkgs/development/python-modules/nbtlib/default.nix b/pkgs/development/python-modules/nbtlib/default.nix
index b41ca72b11669..cb4a0ad4f6f31 100644
--- a/pkgs/development/python-modules/nbtlib/default.nix
+++ b/pkgs/development/python-modules/nbtlib/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "nbtlib" ];
 
   meta = with lib; {
-    description = "A python library to read and edit nbt data";
+    description = "Python library to read and edit nbt data";
     mainProgram = "nbt";
     homepage = "https://github.com/vberlier/nbtlib";
     changelog = "https://github.com/vberlier/nbtlib/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/nbval/default.nix b/pkgs/development/python-modules/nbval/default.nix
index 380a22e59dfdb..7cc16ab27ff29 100644
--- a/pkgs/development/python-modules/nbval/default.nix
+++ b/pkgs/development/python-modules/nbval/default.nix
@@ -65,7 +65,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "nbval" ];
 
   meta = with lib; {
-    description = "A py.test plugin to validate Jupyter notebooks";
+    description = "Py.test plugin to validate Jupyter notebooks";
     homepage = "https://github.com/computationalmodelling/nbval";
     changelog = "https://github.com/computationalmodelling/nbval/releases/tag/${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/nbxmpp/default.nix b/pkgs/development/python-modules/nbxmpp/default.nix
index e15a8a081d7a6..94715f4492035 100644
--- a/pkgs/development/python-modules/nbxmpp/default.nix
+++ b/pkgs/development/python-modules/nbxmpp/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "nbxmpp";
-  version = "4.5.4";
+  version = "5.0.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.10";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "gajim";
     repo = "python-nbxmpp";
     rev = "refs/tags/${version}";
-    hash = "sha256-n5Pzw8aikzCml+dOhkLoHR0ytFkEb4AYpw/bIpo6Wd4=";
+    hash = "sha256-WSeY9v1ELIZEWvbVHGZFq+8tZVVPkOwUwQ/4cOh8IwQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/nengo/default.nix b/pkgs/development/python-modules/nengo/default.nix
index 5d523ac0d3970..915663c0b13fc 100644
--- a/pkgs/development/python-modules/nengo/default.nix
+++ b/pkgs/development/python-modules/nengo/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "nengo" ];
 
   meta = with lib; {
-    description = "A Python library for creating and simulating large-scale brain models";
+    description = "Python library for creating and simulating large-scale brain models";
     homepage = "https://nengo.ai/";
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ arjix ];
diff --git a/pkgs/development/python-modules/neo4j/default.nix b/pkgs/development/python-modules/neo4j/default.nix
index bb1541fe72345..1dc1de3daab13 100644
--- a/pkgs/development/python-modules/neo4j/default.nix
+++ b/pkgs/development/python-modules/neo4j/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "neo4j";
-  version = "5.20.0";
+  version = "5.21.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "neo4j";
     repo = "neo4j-python-driver";
     rev = "refs/tags/${version}";
-    hash = "sha256-ebWEtsgVj2NLYAKe8z6ge6TvnPmXh0Mqkx0b+ZcOePY=";
+    hash = "sha256-SGRe5O+6HqLFu4VQc0QC+91KVjqKeqNt5hIBwophvP0=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/nestedtext/default.nix b/pkgs/development/python-modules/nestedtext/default.nix
index 0fd4faaa02b5a..39fa93e4a2cf5 100644
--- a/pkgs/development/python-modules/nestedtext/default.nix
+++ b/pkgs/development/python-modules/nestedtext/default.nix
@@ -62,7 +62,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "nestedtext" ];
 
   meta = with lib; {
-    description = "A human friendly data format";
+    description = "Human friendly data format";
     longDescription = ''
       NestedText is a file format for holding data that is to be entered,
       edited, or viewed by people. It allows data to be organized into a nested
diff --git a/pkgs/development/python-modules/netaddr/default.nix b/pkgs/development/python-modules/netaddr/default.nix
index 22ff0cf9949a3..a265984a800e8 100644
--- a/pkgs/development/python-modules/netaddr/default.nix
+++ b/pkgs/development/python-modules/netaddr/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "netaddr" ];
 
   meta = with lib; {
-    description = "A network address manipulation library for Python";
+    description = "Network address manipulation library for Python";
     mainProgram = "netaddr";
     homepage = "https://netaddr.readthedocs.io/";
     downloadPage = "https://github.com/netaddr/netaddr/releases";
diff --git a/pkgs/development/python-modules/netapp-ontap/default.nix b/pkgs/development/python-modules/netapp-ontap/default.nix
index 9b114fd1bb043..9a11c52d12dee 100644
--- a/pkgs/development/python-modules/netapp-ontap/default.nix
+++ b/pkgs/development/python-modules/netapp-ontap/default.nix
@@ -1,28 +1,33 @@
 {
   lib,
   buildPythonPackage,
-  fetchPypi,
   cliche,
+  fetchPypi,
   marshmallow,
-  pytestCheckHook,
+  pythonOlder,
   recline,
   requests,
   requests-toolbelt,
+  setuptools,
   urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "netapp-ontap";
-  version = "9.14.1.0";
-  format = "setuptools";
+  version = "9.15.1.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     pname = "netapp_ontap";
     inherit version;
-    sha256 = "sha256-nh7SHcyujTVXSgxQajRA4EueN6Hf8cKueQbsbnr6+qw=";
+    hash = "sha256-cw8wfMKBbzN4HWLg8Xxzpnv05atKWeTZlBaBIaNWTvo=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     marshmallow
     requests
     requests-toolbelt
@@ -32,16 +37,16 @@ buildPythonPackage rec {
     recline
   ];
 
-  # no tests in sdist and no other download available
+  # No tests in sdist and no other download available
   doCheck = false;
 
   pythonImportsCheck = [ "netapp_ontap" ];
 
   meta = with lib; {
-    description = "A library for working with ONTAP's REST APIs simply in Python";
-    mainProgram = "ontap-cli";
+    description = "Library for working with ONTAP's REST APIs simply in Python";
     homepage = "https://devnet.netapp.com/restapi.php";
     license = licenses.bsd3;
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "ontap-cli";
   };
 }
diff --git a/pkgs/development/python-modules/nettigo-air-monitor/default.nix b/pkgs/development/python-modules/nettigo-air-monitor/default.nix
index f450b85abd1e3..dc2c2a908a791 100644
--- a/pkgs/development/python-modules/nettigo-air-monitor/default.nix
+++ b/pkgs/development/python-modules/nettigo-air-monitor/default.nix
@@ -12,11 +12,12 @@
   pythonOlder,
   setuptools,
   syrupy,
+  tenacity,
 }:
 
 buildPythonPackage rec {
   pname = "nettigo-air-monitor";
-  version = "3.0.1";
+  version = "3.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -25,7 +26,7 @@ buildPythonPackage rec {
     owner = "bieniu";
     repo = "nettigo-air-monitor";
     rev = "refs/tags/${version}";
-    hash = "sha256-Ysvyg2cj09Bb+xpNPapYAQSBDKfGsYZcHj9xxIR8KGw=";
+    hash = "sha256-9LrzCUstzMTzt2qHzDsllyep5Rtt6vrrvVPRFILUtwA=";
   };
 
   build-system = [ setuptools ];
@@ -34,6 +35,7 @@ buildPythonPackage rec {
     aiohttp
     aqipy-atmotech
     dacite
+    tenacity
   ];
 
   nativeCheckInputs = [
@@ -44,6 +46,12 @@ buildPythonPackage rec {
     syrupy
   ];
 
+  disabledTests = [
+    # stuck in epoll
+    "test_retry_fail"
+    "test_retry_success"
+  ];
+
   pythonImportsCheck = [ "nettigo_air_monitor" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/newick/default.nix b/pkgs/development/python-modules/newick/default.nix
index 6fdfec5fb1eaf..ccda2606a56ff 100644
--- a/pkgs/development/python-modules/newick/default.nix
+++ b/pkgs/development/python-modules/newick/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "newick" ];
 
   meta = with lib; {
-    description = "A python package to read and write the Newick format";
+    description = "Python package to read and write the Newick format";
     homepage = "https://github.com/dlce-eva/python-newick";
     license = licenses.asl20;
     maintainers = with maintainers; [ alxsimon ];
diff --git a/pkgs/development/python-modules/nfcpy/default.nix b/pkgs/development/python-modules/nfcpy/default.nix
index c1fba877eeaaf..35500ccd6a11f 100644
--- a/pkgs/development/python-modules/nfcpy/default.nix
+++ b/pkgs/development/python-modules/nfcpy/default.nix
@@ -50,7 +50,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python module to read/write NFC tags or communicate with another NFC device";
+    description = "Python module to read/write NFC tags or communicate with another NFC device";
     homepage = "https://github.com/nfcpy/nfcpy";
     changelog = "https://github.com/nfcpy/nfcpy/blob/v${version}/HISTORY.rst";
     license = licenses.eupl11;
diff --git a/pkgs/development/python-modules/niaarm/default.nix b/pkgs/development/python-modules/niaarm/default.nix
index 09615a1a228ad..31060540d170c 100644
--- a/pkgs/development/python-modules/niaarm/default.nix
+++ b/pkgs/development/python-modules/niaarm/default.nix
@@ -45,7 +45,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "niaarm" ];
 
   meta = with lib; {
-    description = "A minimalistic framework for Numerical Association Rule Mining";
+    description = "Minimalistic framework for Numerical Association Rule Mining";
     mainProgram = "niaarm";
     homepage = "https://github.com/firefly-cpp/NiaARM";
     changelog = "https://github.com/firefly-cpp/NiaARM/blob/${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/niaclass/default.nix b/pkgs/development/python-modules/niaclass/default.nix
index f5c6d10f63028..b4fa278bfa011 100644
--- a/pkgs/development/python-modules/niaclass/default.nix
+++ b/pkgs/development/python-modules/niaclass/default.nix
@@ -52,7 +52,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "niaclass" ];
 
   meta = with lib; {
-    description = "A framework for solving classification tasks using Nature-inspired algorithms";
+    description = "Framework for solving classification tasks using Nature-inspired algorithms";
     homepage = "https://github.com/lukapecnik/NiaClass";
     changelog = "https://github.com/lukapecnik/NiaClass/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/nibe/default.nix b/pkgs/development/python-modules/nibe/default.nix
index e424523b6d8f0..79b7833c9efcb 100644
--- a/pkgs/development/python-modules/nibe/default.nix
+++ b/pkgs/development/python-modules/nibe/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "nibe";
-  version = "2.9.0";
+  version = "2.10.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -29,12 +29,12 @@ buildPythonPackage rec {
     owner = "yozik04";
     repo = "nibe";
     rev = "refs/tags/${version}";
-    hash = "sha256-j8P/lhBjlsmnOc4Cv/a2Hdf2EPO8CEpT4IOQHtiBgQA=";
+    hash = "sha256-rm0SV48vo68aiiFcvuSSGwCvQEsagIMh2EQXXmUU5dc=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     async-modbus
     async-timeout
     construct
@@ -62,7 +62,7 @@ buildPythonPackage rec {
     description = "Library for the communication with Nibe heatpumps";
     homepage = "https://github.com/yozik04/nibe";
     changelog = "https://github.com/yozik04/nibe/releases/tag/${version}";
-    license = with licenses; [ gpl3Plus ];
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/nilearn/default.nix b/pkgs/development/python-modules/nilearn/default.nix
index 89c0c71362475..87cd5e8961005 100644
--- a/pkgs/development/python-modules/nilearn/default.nix
+++ b/pkgs/development/python-modules/nilearn/default.nix
@@ -49,7 +49,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://nilearn.github.io";
-    description = "A module for statistical learning on neuroimaging data";
+    description = "Module for statistical learning on neuroimaging data";
     changelog = "https://github.com/nilearn/nilearn/releases/tag/${version}";
     license = licenses.bsd3;
   };
diff --git a/pkgs/development/python-modules/ninja/default.nix b/pkgs/development/python-modules/ninja/default.nix
index 03cce9fae9292..a735308e657e5 100644
--- a/pkgs/development/python-modules/ninja/default.nix
+++ b/pkgs/development/python-modules/ninja/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A small build system with a focus on speed";
+    description = "Small build system with a focus on speed";
     mainProgram = "ninja";
     longDescription = ''
       This is a stub of the ninja package on PyPI that uses the ninja program
diff --git a/pkgs/development/python-modules/niworkflows/default.nix b/pkgs/development/python-modules/niworkflows/default.nix
index 28e6cffca08b0..d6eb920d36d4c 100644
--- a/pkgs/development/python-modules/niworkflows/default.nix
+++ b/pkgs/development/python-modules/niworkflows/default.nix
@@ -30,14 +30,14 @@
 
 buildPythonPackage rec {
   pname = "niworkflows";
-  version = "1.10.1";
+  version = "1.10.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "nipreps";
     repo = "niworkflows";
     rev = "refs/tags/${version}";
-    hash = "sha256-ZOn3KSaPAA8zTdyexrjF9Wkb5C5qA/5eSJahg2DcX20=";
+    hash = "sha256-29ZxLuKrvgCIOMMCUpi0HHhlNlgqUrUrSCiikwecmKw=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/nocasedict/default.nix b/pkgs/development/python-modules/nocasedict/default.nix
index 0dc0ab862994e..22a9234125622 100644
--- a/pkgs/development/python-modules/nocasedict/default.nix
+++ b/pkgs/development/python-modules/nocasedict/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "nocasedict" ];
 
   meta = with lib; {
-    description = "A case-insensitive ordered dictionary for Python";
+    description = "Case-insensitive ordered dictionary for Python";
     homepage = "https://github.com/pywbem/nocasedict";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ freezeboy ];
diff --git a/pkgs/development/python-modules/nocaselist/default.nix b/pkgs/development/python-modules/nocaselist/default.nix
index 176426b101bb0..c8129568a5ce8 100644
--- a/pkgs/development/python-modules/nocaselist/default.nix
+++ b/pkgs/development/python-modules/nocaselist/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "nocaselist" ];
 
   meta = with lib; {
-    description = "A case-insensitive list for Python";
+    description = "Case-insensitive list for Python";
     homepage = "https://github.com/pywbem/nocaselist";
     changelog = "https://github.com/pywbem/nocaselist/blob/${version}/docs/changes.rst";
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/python-modules/nocturne/default.nix b/pkgs/development/python-modules/nocturne/default.nix
index f0a4978e45c15..0934e6fd2535d 100644
--- a/pkgs/development/python-modules/nocturne/default.nix
+++ b/pkgs/development/python-modules/nocturne/default.nix
@@ -55,7 +55,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "nocturne" ];
 
   meta = with lib; {
-    description = "A data-driven, fast driving simulator for multi-agent coordination under partial observability";
+    description = "Data-driven, fast driving simulator for multi-agent coordination under partial observability";
     homepage = "https://github.com/facebookresearch/nocturne";
     license = licenses.mit;
     maintainers = with maintainers; [ samuela ];
diff --git a/pkgs/development/python-modules/node-semver/default.nix b/pkgs/development/python-modules/node-semver/default.nix
index ca1d2493368da..90815a55efb6e 100644
--- a/pkgs/development/python-modules/node-semver/default.nix
+++ b/pkgs/development/python-modules/node-semver/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/podhmo/python-node-semver/blob/${version}/CHANGES.txt";
-    description = "A port of node-semver";
+    description = "Port of node-semver";
     homepage = "https://github.com/podhmo/python-semver";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/nodeenv/default.nix b/pkgs/development/python-modules/nodeenv/default.nix
index 32d5973f5cd6d..6ee3b9033f3dd 100644
--- a/pkgs/development/python-modules/nodeenv/default.nix
+++ b/pkgs/development/python-modules/nodeenv/default.nix
@@ -7,24 +7,28 @@
   python,
   pythonOlder,
   setuptools,
+  setuptools-scm,
   which,
 }:
 
 buildPythonPackage rec {
   pname = "nodeenv";
-  version = "1.8.0";
-  format = "setuptools";
+  version = "1.9.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "ekalinin";
-    repo = pname;
+    repo = "nodeenv";
     rev = "refs/tags/${version}";
-    hash = "sha256-aW/aNZbFXfP4bF/Nlvv419IDfaJRA1pJYM7awj+6Hz0=";
+    hash = "sha256-nud8HSfx1ri0UZf25VPCy7swfaSM13u5+HzozK+ikeY=";
   };
 
-  propagatedBuildInputs = [ setuptools ];
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
 
   nativeCheckInputs = [
     mock
diff --git a/pkgs/development/python-modules/noneprompt/default.nix b/pkgs/development/python-modules/noneprompt/default.nix
new file mode 100644
index 0000000000000..77cd491486959
--- /dev/null
+++ b/pkgs/development/python-modules/noneprompt/default.nix
@@ -0,0 +1,39 @@
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  poetry-core,
+  prompt-toolkit,
+  pythonOlder,
+}:
+
+buildPythonPackage rec {
+  pname = "noneprompt";
+  version = "0.1.9";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-M4uLuJqNIu818d7bOqfBsijPE5lzvcQ8X/w+72RFfbk=";
+  };
+
+  build-system = [ poetry-core ];
+
+  dependencies = [ prompt-toolkit ];
+
+  # no test
+  doCheck = false;
+
+  pythonImportsCheck = [ "noneprompt" ];
+
+  meta = {
+    description = "Prompt toolkit for console interaction";
+    homepage = "https://github.com/nonebot/noneprompt";
+    changelog = "https://github.com/nonebot/noneprompt/releases/tag/v${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ moraxyc ];
+    mainProgram = "noneprompt";
+  };
+}
diff --git a/pkgs/development/python-modules/nose-exclude/default.nix b/pkgs/development/python-modules/nose-exclude/default.nix
deleted file mode 100644
index 81d4e1a3cb750..0000000000000
--- a/pkgs/development/python-modules/nose-exclude/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-  stdenv,
-  lib,
-  buildPythonPackage,
-  fetchPypi,
-  nose,
-}:
-
-buildPythonPackage rec {
-  pname = "nose-exclude";
-  version = "0.5.0";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "f78fa8b41eeb815f0486414f710f1eea0949e346cfb11d59ba6295ed69e84304";
-  };
-
-  propagatedBuildInputs = [ nose ];
-
-  # "OSError: AF_UNIX path too long" for darwin
-  doCheck = !stdenv.isDarwin;
-
-  meta = {
-    license = lib.licenses.lgpl21;
-    description = "Exclude specific directories from nosetests runs";
-    homepage = "https://github.com/kgrandis/nose-exclude";
-  };
-}
diff --git a/pkgs/development/python-modules/nose-timer/default.nix b/pkgs/development/python-modules/nose-timer/default.nix
index 07854ada5e11b..a002e6bfb1dac 100644
--- a/pkgs/development/python-modules/nose-timer/default.nix
+++ b/pkgs/development/python-modules/nose-timer/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "nosetimer" ];
 
   meta = with lib; {
-    description = "A timer plugin for nosetests";
+    description = "Timer plugin for nosetests";
     homepage = "https://github.com/mahmoudimus/nose-timer";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
diff --git a/pkgs/development/python-modules/nose/default.nix b/pkgs/development/python-modules/nose/default.nix
index 6b6417348f637..f864cfb9125f3 100644
--- a/pkgs/development/python-modules/nose/default.nix
+++ b/pkgs/development/python-modules/nose/default.nix
@@ -52,7 +52,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     broken = isPyPy; # missing 2to3 conversion utility
-    description = "A unittest-based testing framework for python that makes writing and running tests easier";
+    description = "Unittest-based testing framework for python that makes writing and running tests easier";
     mainProgram = "nosetests";
     homepage = "https://nose.readthedocs.io/";
     license = licenses.lgpl3;
diff --git a/pkgs/development/python-modules/nosexcover/default.nix b/pkgs/development/python-modules/nosexcover/default.nix
deleted file mode 100644
index 0790e7aa227c0..0000000000000
--- a/pkgs/development/python-modules/nosexcover/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-  lib,
-  buildPythonPackage,
-  fetchPypi,
-  pythonAtLeast,
-  coverage,
-  nose,
-}:
-
-buildPythonPackage rec {
-  pname = "nosexcover";
-  version = "1.0.11";
-  format = "setuptools";
-
-  # requires the imp module
-  disabled = pythonAtLeast "3.12";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "298c3c655da587f6cab8a666e9f4b150320032431062dea91353988d45c8b883";
-  };
-
-  propagatedBuildInputs = [
-    coverage
-    nose
-  ];
-
-  meta = with lib; {
-    description = "Extends nose.plugins.cover to add Cobertura-style XML reports";
-    homepage = "https://github.com/cmheisel/nose-xcover/";
-    license = licenses.bsd3;
-  };
-}
diff --git a/pkgs/development/python-modules/notebook-shim/default.nix b/pkgs/development/python-modules/notebook-shim/default.nix
index 470c9d91586d6..11c17bd7516f7 100644
--- a/pkgs/development/python-modules/notebook-shim/default.nix
+++ b/pkgs/development/python-modules/notebook-shim/default.nix
@@ -47,6 +47,6 @@ buildPythonPackage rec {
     '';
     homepage = "https://github.com/jupyter/notebook_shim";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ friedelino ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/notebook/default.nix b/pkgs/development/python-modules/notebook/default.nix
index 6b18e51333017..8d9095bc3c111 100644
--- a/pkgs/development/python-modules/notebook/default.nix
+++ b/pkgs/development/python-modules/notebook/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "notebook";
-  version = "7.2.0";
-  disabled = pythonOlder "3.8";
+  version = "7.2.1";
+  pyproject = true;
 
-  format = "pyproject";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-NKK6SwitXRnskw23SE+3l0aheEvp4aX4IY+a+GVqFB8=";
+    hash = "sha256-Qoe22ll0CzIXPQHWQfdj0pL0nDDnpRuJxGuoRzEmNB4=";
   };
 
   postPatch = ''
@@ -32,13 +32,13 @@ buildPythonPackage rec {
       --replace "timeout = 300" ""
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     hatch-jupyter-builder
     hatchling
     jupyterlab
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     jupyter-server
     jupyterlab
     jupyterlab-server
diff --git a/pkgs/development/python-modules/notifications-python-client/default.nix b/pkgs/development/python-modules/notifications-python-client/default.nix
index 3ec2874c45917..1915ccd3fee98 100644
--- a/pkgs/development/python-modules/notifications-python-client/default.nix
+++ b/pkgs/development/python-modules/notifications-python-client/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "notifications-python-client";
-  version = "9.0.0";
+  version = "9.1.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "alphagov";
     repo = "notifications-python-client";
     rev = "refs/tags/${version}";
-    hash = "sha256-HDxCVwagHFenx0S2TPxiMIyyq4ovxe0yNi76sX2CC9s=";
+    hash = "sha256-qjiI+aTJLOz3XSTHKrpZrJ/wg1xP+V7ww0//xX3Kf1E=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/notmuch/default.nix b/pkgs/development/python-modules/notmuch/default.nix
index 6d8c415700d6e..eb5f017e0e3da 100644
--- a/pkgs/development/python-modules/notmuch/default.nix
+++ b/pkgs/development/python-modules/notmuch/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage {
   pythonImportsCheck = [ "notmuch" ];
 
   meta = with lib; {
-    description = "A Python wrapper around notmuch";
+    description = "Python wrapper around notmuch";
     homepage = "https://notmuchmail.org/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/nuitka/default.nix b/pkgs/development/python-modules/nuitka/default.nix
index 60ffcb13c044f..e4613db87f7f6 100644
--- a/pkgs/development/python-modules/nuitka/default.nix
+++ b/pkgs/development/python-modules/nuitka/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "nuitka";
-  version = "2.1.4";
+  version = "2.2.3";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Nuitka";
     repo = "Nuitka";
     rev = version;
-    hash = "sha256-bV5zTYwhR/3dTM1Ij+aC6TbcPODZ5buwQi7xN8axZi0=";
+    hash = "sha256-nKdCMgA92v9VsSgfktXDbSh3DyKsGlcTjpn0Y7u4rxU=";
   };
 
   # default lto off for darwin
diff --git a/pkgs/development/python-modules/numericalunits/default.nix b/pkgs/development/python-modules/numericalunits/default.nix
index 7b4c77d1f921c..922e26d3057be 100644
--- a/pkgs/development/python-modules/numericalunits/default.nix
+++ b/pkgs/development/python-modules/numericalunits/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "http://pypi.python.org/pypi/numericalunits";
-    description = "A package that lets you define quantities with unit";
+    description = "Package that lets you define quantities with unit";
     license = licenses.mit;
     maintainers = [ ];
   };
diff --git a/pkgs/development/python-modules/nunavut/default.nix b/pkgs/development/python-modules/nunavut/default.nix
index da474a88e727b..c6650b4324e47 100644
--- a/pkgs/development/python-modules/nunavut/default.nix
+++ b/pkgs/development/python-modules/nunavut/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "nunavut" ];
 
   meta = with lib; {
-    description = "A UAVCAN DSDL template engine";
+    description = "UAVCAN DSDL template engine";
     mainProgram = "nnvg";
     longDescription = ''
       It exposes a pydsdl abstract syntax tree to Jinja2 templates allowing
diff --git a/pkgs/development/python-modules/nvdlib/default.nix b/pkgs/development/python-modules/nvdlib/default.nix
index 2a7d4537d4aea..1d3a7b4a3e3c3 100644
--- a/pkgs/development/python-modules/nvdlib/default.nix
+++ b/pkgs/development/python-modules/nvdlib/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "nvdlib";
-  version = "0.7.6";
+  version = "0.7.7";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "Vehemont";
     repo = "nvdlib";
     rev = "refs/tags/v${version}";
-    hash = "sha256-p2xx+QC0P30FR+nMiFW/PoINbcTM49ufADW9B9u2WxI=";
+    hash = "sha256-/UmBNdch9yM6yCVcJbzsCx6om4XlqQa40X/fgEYgRuI=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/nvidia-ml-py/default.nix b/pkgs/development/python-modules/nvidia-ml-py/default.nix
index 1ca2a21d64f82..52e7c04ca060f 100644
--- a/pkgs/development/python-modules/nvidia-ml-py/default.nix
+++ b/pkgs/development/python-modules/nvidia-ml-py/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "nvidia-ml-py";
-  version = "12.550.52";
+  version = "12.555.43";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
     extension = "tar.gz";
-    hash = "sha256-3+3XFDNccuZaMshun12xzUlSbUTW2McoCdmWlY9zTAc=";
+    hash = "sha256-6efxLvHsI0uw3CLSvcdi/6+rOUvcRyoHpDd8lbv5Ov4=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/oauth2client/default.nix b/pkgs/development/python-modules/oauth2client/default.nix
index f79ed3c0926ff..c6fc4b6b290c9 100644
--- a/pkgs/development/python-modules/oauth2client/default.nix
+++ b/pkgs/development/python-modules/oauth2client/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A client library for OAuth 2.0";
+    description = "Client library for OAuth 2.0";
     homepage = "https://github.com/google/oauth2client/";
     license = licenses.bsd2;
   };
diff --git a/pkgs/development/python-modules/oauthenticator/default.nix b/pkgs/development/python-modules/oauthenticator/default.nix
index 267a9a7c4ab69..1f4ff0ea627f7 100644
--- a/pkgs/development/python-modules/oauthenticator/default.nix
+++ b/pkgs/development/python-modules/oauthenticator/default.nix
@@ -5,25 +5,30 @@
   fetchPypi,
   google-api-python-client,
   google-auth-oauthlib,
+  jsonschema,
   jupyterhub,
   mwoauth,
   pyjwt,
   pytest-asyncio,
   pytestCheckHook,
+  requests,
   requests-mock,
+  ruamel-yaml,
   setuptools,
+  tornado,
+  traitlets,
 }:
 
 buildPythonPackage rec {
   pname = "oauthenticator";
-  version = "16.3.0";
+  version = "16.3.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-QMddGJUfafXoBxMCjlx1lH45a4Bab3AP4j8Px7JxYaQ=";
+    hash = "sha256-gFhhOCcmorkrLxrup9fICh5ueCrc64fxfuZXTQG1tMk=";
   };
 
   postPatch = ''
@@ -34,8 +39,13 @@ buildPythonPackage rec {
   build-system = [ setuptools ];
 
   dependencies = [
+    jsonschema
     jupyterhub
     pyjwt
+    requests
+    ruamel-yaml
+    tornado
+    traitlets
   ];
 
   passthru.optional-dependencies = {
diff --git a/pkgs/development/python-modules/obfsproxy/default.nix b/pkgs/development/python-modules/obfsproxy/default.nix
index a6c54763e2e5b..c9b7f9f13c4cb 100644
--- a/pkgs/development/python-modules/obfsproxy/default.nix
+++ b/pkgs/development/python-modules/obfsproxy/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A pluggable transport proxy";
+    description = "Pluggable transport proxy";
     homepage = "https://www.torproject.org/projects/obfsproxy";
     maintainers = with maintainers; [ thoughtpolice ];
   };
diff --git a/pkgs/development/python-modules/ochre/default.nix b/pkgs/development/python-modules/ochre/default.nix
index e1e4e63b5ddf5..023fb09d1ef44 100644
--- a/pkgs/development/python-modules/ochre/default.nix
+++ b/pkgs/development/python-modules/ochre/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ochre" ];
 
   meta = with lib; {
-    description = "A down-to-earth approach to colors";
+    description = "Down-to-earth approach to colors";
     homepage = "https://github.com/getcuia/ochre";
     changelog = "https://github.com/getcuia/ochre/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/oci/default.nix b/pkgs/development/python-modules/oci/default.nix
index c09d9873c82f0..e9b5287193362 100644
--- a/pkgs/development/python-modules/oci/default.nix
+++ b/pkgs/development/python-modules/oci/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "oci";
-  version = "2.126.2";
+  version = "2.128.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "oracle";
     repo = "oci-python-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-eejIDpKpPekxrm1H9x2skxK67KNUm9mmrGM23hZ6ztM=";
+    hash = "sha256-Df8DwzB/pOyixBS5dx9MeBa8IsZw/8q1Dk8itmsHGSM=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/ocrmypdf/default.nix b/pkgs/development/python-modules/ocrmypdf/default.nix
index 50610647ac988..da509f319fab9 100644
--- a/pkgs/development/python-modules/ocrmypdf/default.nix
+++ b/pkgs/development/python-modules/ocrmypdf/default.nix
@@ -30,7 +30,7 @@
 
 buildPythonPackage rec {
   pname = "ocrmypdf";
-  version = "16.2.0";
+  version = "16.3.1";
 
   disabled = pythonOlder "3.10";
 
@@ -46,7 +46,7 @@ buildPythonPackage rec {
     postFetch = ''
       rm "$out/.git_archival.txt"
     '';
-    hash = "sha256-sqhuQ+no6UymxbVtDtWiYQK8kKpO1y37NxLDmRT1LEQ=";
+    hash = "sha256-AGBLxN4XVP298a2DS14nfpDFbYTCvX3gx/BNVAj0iH8=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/okonomiyaki/default.nix b/pkgs/development/python-modules/okonomiyaki/default.nix
index d68f9d5b92831..816b93c833a70 100644
--- a/pkgs/development/python-modules/okonomiyaki/default.nix
+++ b/pkgs/development/python-modules/okonomiyaki/default.nix
@@ -12,6 +12,7 @@
   mock,
   packaging,
   testfixtures,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -55,8 +56,9 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/enthought/okonomiyaki";
-    description = "An experimental library aimed at consolidating a lot of low-level code used for Enthought's eggs";
+    description = "Experimental library aimed at consolidating a lot of low-level code used for Enthought's eggs";
     maintainers = with maintainers; [ genericnerdyusername ];
     license = licenses.bsd3;
+    broken = pythonAtLeast "3.12"; # multiple tests are failing
   };
 }
diff --git a/pkgs/development/python-modules/ollama/default.nix b/pkgs/development/python-modules/ollama/default.nix
index 299af4e9c9641..fcfe041922622 100644
--- a/pkgs/development/python-modules/ollama/default.nix
+++ b/pkgs/development/python-modules/ollama/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "ollama";
-  version = "0.2.0";
+  version = "0.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "ollama";
     repo = "ollama-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-kfotKUUXBekUd0X32BYAjNWvQJO94bdEDCSrBg2yJRQ=";
+    hash = "sha256-+1qhmz5WehbtjE+Dh/WTsqpiAmTjJg+tBjvYRQYkYy0=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/ome-zarr/default.nix b/pkgs/development/python-modules/ome-zarr/default.nix
index d14f7a7cca0dc..297d35fb0deb4 100644
--- a/pkgs/development/python-modules/ome-zarr/default.nix
+++ b/pkgs/development/python-modules/ome-zarr/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "ome-zarr";
-  version = "0.8.3";
+  version = "0.9.0";
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "ome";
     repo = "ome-zarr-py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-JuNXVse/n/lFbNaLwMcir8NBHiRxcbYvtbxePwI6YoY=";
+    hash = "sha256-YOG9+ONf2OnkSZBL/Vb8Inebx4XDSGJb2fqypaWebhY=";
   };
 
   propagatedBuildInputs = [
@@ -82,7 +82,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Implementation of next-generation file format (NGFF) specifications for storing bioimaging data in the cloud.";
+    description = "Implementation of next-generation file format (NGFF) specifications for storing bioimaging data in the cloud";
     homepage = "https://pypi.org/project/ome-zarr";
     changelog = "https://github.com/ome/ome-zarr-py/blob/v${version}/CHANGELOG.md";
     license = licenses.bsd2;
diff --git a/pkgs/development/python-modules/oncalendar/default.nix b/pkgs/development/python-modules/oncalendar/default.nix
index 02c85147f9968..85d163a77eefa 100644
--- a/pkgs/development/python-modules/oncalendar/default.nix
+++ b/pkgs/development/python-modules/oncalendar/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "oncalendar" ];
 
   meta = with lib; {
-    description = "A systemd OnCalendar expression parser and evaluator";
+    description = "Systemd OnCalendar expression parser and evaluator";
     homepage = "https://github.com/cuu508/oncalendar";
     license = licenses.bsd3;
     maintainers = with maintainers; [ phaer ];
diff --git a/pkgs/development/python-modules/onetimepad/default.nix b/pkgs/development/python-modules/onetimepad/default.nix
index fd4d2312bbe22..affa6182b7d70 100644
--- a/pkgs/development/python-modules/onetimepad/default.nix
+++ b/pkgs/development/python-modules/onetimepad/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "onetimepad" ];
 
   meta = {
-    description = "A hacky implementation of one-time pad";
+    description = "Hacky implementation of one-time pad";
     mainProgram = "onetimepad";
     homepage = "https://jailuthra.in/onetimepad";
     license = lib.licenses.mit;
diff --git a/pkgs/development/python-modules/online-judge-tools/default.nix b/pkgs/development/python-modules/online-judge-tools/default.nix
index 00be2701e604e..3b24ba31d3560 100644
--- a/pkgs/development/python-modules/online-judge-tools/default.nix
+++ b/pkgs/development/python-modules/online-judge-tools/default.nix
@@ -4,32 +4,42 @@
   colorama,
   fetchFromGitHub,
   online-judge-api-client,
+  packaging,
   requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "online-judge-tools";
-  version = "11.5.1";
-  format = "setuptools";
+  version = "12.0.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "online-judge-tools";
     repo = "oj";
-    rev = "v${version}";
-    sha256 = "0zkzmmjgjb6lyrzq1ip54cpnp7al9a7mcyjyi5vx58bvnx3q0c6m";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-m6V4Sq3yU/KPnbpA0oCLI/qaSrAPA6TutcBL5Crb/Cc=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     colorama
     online-judge-api-client
+    packaging
     requests
   ];
 
+  pythonImportsCheck = [
+    "onlinejudge"
+    "onlinejudge_command"
+  ];
+
   # Requires internet access
   doCheck = false;
 
   meta = with lib; {
-    description = "Tools for various online judges. Download sample cases, generate additional test cases, test your code, and submit it.";
+    description = "Tools for various online judges. Download sample cases, generate additional test cases, test your code, and submit it";
     mainProgram = "oj";
     homepage = "https://github.com/online-judge-tools/oj";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/open-clip-torch/default.nix b/pkgs/development/python-modules/open-clip-torch/default.nix
index 0003c289adfff..7efac863326c2 100644
--- a/pkgs/development/python-modules/open-clip-torch/default.nix
+++ b/pkgs/development/python-modules/open-clip-torch/default.nix
@@ -80,7 +80,7 @@ buildPythonPackage rec {
     ];
 
   meta = with lib; {
-    description = "An open source implementation of CLIP";
+    description = "Open source implementation of CLIP";
     homepage = "https://github.com/mlfoundations/open_clip";
     license = licenses.asl20;
     maintainers = with maintainers; [ iynaix ];
diff --git a/pkgs/development/python-modules/openai-triton/bin.nix b/pkgs/development/python-modules/openai-triton/bin.nix
index e800b6521b243..ef95ac07244ae 100644
--- a/pkgs/development/python-modules/openai-triton/bin.nix
+++ b/pkgs/development/python-modules/openai-triton/bin.nix
@@ -80,7 +80,7 @@ buildPythonPackage rec {
     );
 
   meta = with lib; {
-    description = "A language and compiler for custom Deep Learning operations";
+    description = "Language and compiler for custom Deep Learning operations";
     homepage = "https://github.com/openai/triton/";
     changelog = "https://github.com/openai/triton/releases/tag/v${version}";
     # Includes NVIDIA's ptxas, but redistributions of the binary are not limited.
diff --git a/pkgs/development/python-modules/openai/default.nix b/pkgs/development/python-modules/openai/default.nix
index d29d6deec1293..82688e240206b 100644
--- a/pkgs/development/python-modules/openai/default.nix
+++ b/pkgs/development/python-modules/openai/default.nix
@@ -25,7 +25,7 @@
 
 buildPythonPackage rec {
   pname = "openai";
-  version = "1.28.0";
+  version = "1.34.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7.1";
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "openai";
     repo = "openai-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-zWvrLCAN/OsSiNLQ2jvEh9anoSpMXgEYhAFwh9btWEM=";
+    hash = "sha256-ES0lA/eMll35MhL1evegyp5VOIdHPTRF1Jckl+n250E=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/openapi3/default.nix b/pkgs/development/python-modules/openapi3/default.nix
index aa98a11f6bf47..ed2b1d5904aa6 100644
--- a/pkgs/development/python-modules/openapi3/default.nix
+++ b/pkgs/development/python-modules/openapi3/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/Dorthu/openapi3/releases/tag/${version}";
-    description = "A Python3 OpenAPI 3 Spec Parser";
+    description = "Python3 OpenAPI 3 Spec Parser";
     homepage = "https://github.com/Dorthu/openapi3";
     license = licenses.bsd3;
     maintainers = with maintainers; [ techknowlogick ];
diff --git a/pkgs/development/python-modules/opencensus/default.nix b/pkgs/development/python-modules/opencensus/default.nix
index ccf41cdf18397..dc52ff0d91802 100644
--- a/pkgs/development/python-modules/opencensus/default.nix
+++ b/pkgs/development/python-modules/opencensus/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "opencensus.common" ];
 
   meta = with lib; {
-    description = "A stats collection and distributed tracing framework";
+    description = "Stats collection and distributed tracing framework";
     homepage = "https://github.com/census-instrumentation/opencensus-python";
     license = licenses.asl20;
     maintainers = with maintainers; [ billhuang ];
diff --git a/pkgs/development/python-modules/openidc-client/default.nix b/pkgs/development/python-modules/openidc-client/default.nix
index 26820852206bd..99a00cde6621c 100644
--- a/pkgs/development/python-modules/openidc-client/default.nix
+++ b/pkgs/development/python-modules/openidc-client/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A CLI python OpenID Connect client with token caching and management";
+    description = "CLI python OpenID Connect client with token caching and management";
     homepage = "https://github.com/puiterwijk";
     license = licenses.mit;
     maintainers = with maintainers; [ disassembler ];
diff --git a/pkgs/development/python-modules/openrazer/daemon.nix b/pkgs/development/python-modules/openrazer/daemon.nix
index fb23b17b32615..f1af8a82faf71 100644
--- a/pkgs/development/python-modules/openrazer/daemon.nix
+++ b/pkgs/development/python-modules/openrazer/daemon.nix
@@ -6,58 +6,64 @@
   fetchFromGitHub,
   gobject-introspection,
   gtk3,
-  makeWrapper,
   pygobject3,
   pyudev,
   setproctitle,
   setuptools,
-  wrapGAppsHook3,
+  wrapGAppsNoGuiHook,
   notify2,
+  glib
 }:
 
 let
   common = import ./common.nix { inherit lib fetchFromGitHub; };
 in
-buildPythonPackage (
-  common
-  // {
-    pname = "openrazer-daemon";
-
-    outputs = [
-      "out"
-      "man"
-    ];
-
-    sourceRoot = "${common.src.name}/daemon";
-
-    postPatch = ''
-      substituteInPlace openrazer_daemon/daemon.py \
-        --replace-fail "plugdev" "openrazer"
-    '';
-
-    nativeBuildInputs = [ setuptools ];
-
-    propagatedBuildInputs = [
-      daemonize
-      dbus-python
-      gobject-introspection
-      gtk3
-      pygobject3
-      pyudev
-      setproctitle
-      notify2
-    ];
-
-    postInstall = ''
-      DESTDIR="$out" PREFIX="" make manpages install-resources install-systemd
-    '';
-
-    # no tests run
-    doCheck = false;
-
-    meta = common.meta // {
-      description = "An entirely open source user-space daemon that allows you to manage your Razer peripherals on GNU/Linux";
-      mainProgram = "openrazer-daemon";
-    };
-  }
-)
+buildPythonPackage (common // {
+  pname = "openrazer-daemon";
+
+  outputs = [
+    "out"
+    "man"
+  ];
+
+  sourceRoot = "${common.src.name}/daemon";
+
+  postPatch = ''
+    substituteInPlace openrazer_daemon/daemon.py \
+      --replace-fail "plugdev" "openrazer"
+  '';
+
+  nativeBuildInputs = [ setuptools wrapGAppsNoGuiHook gobject-introspection ];
+
+  buildInputs = [
+    glib
+    gtk3
+  ];
+
+  propagatedBuildInputs = [
+    daemonize
+    dbus-python
+    pygobject3
+    pyudev
+    setproctitle
+    notify2
+  ];
+
+  postInstall = ''
+    DESTDIR="$out" PREFIX="" make manpages install-resources install-systemd
+  '';
+
+  # no tests run
+  doCheck = false;
+
+  dontWrapGApps = true;
+
+  preFixup = ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
+  meta = common.meta // {
+    description = "Entirely open source user-space daemon that allows you to manage your Razer peripherals on GNU/Linux";
+    mainProgram = "openrazer-daemon";
+  };
+})
diff --git a/pkgs/development/python-modules/openrazer/pylib.nix b/pkgs/development/python-modules/openrazer/pylib.nix
index 96371319687dc..577f8595aba6b 100644
--- a/pkgs/development/python-modules/openrazer/pylib.nix
+++ b/pkgs/development/python-modules/openrazer/pylib.nix
@@ -30,7 +30,7 @@ buildPythonPackage (
     doCheck = false;
 
     meta = common.meta // {
-      description = "An entirely open source Python library that allows you to manage your Razer peripherals on GNU/Linux";
+      description = "Entirely open source Python library that allows you to manage your Razer peripherals on GNU/Linux";
     };
   }
 )
diff --git a/pkgs/development/python-modules/openrouteservice/default.nix b/pkgs/development/python-modules/openrouteservice/default.nix
index ff279f3e3f283..eae98abfeeb9f 100644
--- a/pkgs/development/python-modules/openrouteservice/default.nix
+++ b/pkgs/development/python-modules/openrouteservice/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/GIScience/openrouteservice-py";
-    description = "The Python API to consume openrouteservice(s) painlessly";
+    description = "Python API to consume openrouteservice(s) painlessly";
     license = licenses.asl20;
     maintainers = with maintainers; [ Scriptkiddi ];
   };
diff --git a/pkgs/development/python-modules/opensfm/default.nix b/pkgs/development/python-modules/opensfm/default.nix
index dc7f6d4163a8e..bd5b97ab2852a 100644
--- a/pkgs/development/python-modules/opensfm/default.nix
+++ b/pkgs/development/python-modules/opensfm/default.nix
@@ -3,7 +3,6 @@
   stdenv,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   cmake,
   opencv4,
   ceres-solver,
diff --git a/pkgs/development/python-modules/openstacksdk/default.nix b/pkgs/development/python-modules/openstacksdk/default.nix
index 569337cc0051f..47809462a26dd 100644
--- a/pkgs/development/python-modules/openstacksdk/default.nix
+++ b/pkgs/development/python-modules/openstacksdk/default.nix
@@ -55,7 +55,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "openstack" ];
 
   meta = with lib; {
-    description = "An SDK for building applications to work with OpenStack";
+    description = "SDK for building applications to work with OpenStack";
     mainProgram = "openstack-inventory";
     homepage = "https://github.com/openstack/openstacksdk";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/opentelemetry-exporter-prometheus/default.nix b/pkgs/development/python-modules/opentelemetry-exporter-prometheus/default.nix
index 933006554d866..ef0d80d4b65ce 100644
--- a/pkgs/development/python-modules/opentelemetry-exporter-prometheus/default.nix
+++ b/pkgs/development/python-modules/opentelemetry-exporter-prometheus/default.nix
@@ -4,6 +4,7 @@
   pythonOlder,
   hatchling,
   opentelemetry-api,
+  opentelemetry-instrumentation,
   opentelemetry-sdk,
   opentelemetry-test-utils,
   prometheus-client,
@@ -13,7 +14,9 @@
 buildPythonPackage {
   inherit (opentelemetry-api) src;
   pname = "opentelemetry-exporter-prometheus";
-  version = "0.44b0";
+  # This package is in the same repository as `opentelemetry-api`,
+  # but its version is synchronized with `opentelemetry-instrumentation` in another repository.
+  version = opentelemetry-instrumentation.version;
   pyproject = true;
 
   disabled = pythonOlder "3.8";
diff --git a/pkgs/development/python-modules/opentelemetry-semantic-conventions/default.nix b/pkgs/development/python-modules/opentelemetry-semantic-conventions/default.nix
index cadd60634ab2f..f4001c4f13b6b 100644
--- a/pkgs/development/python-modules/opentelemetry-semantic-conventions/default.nix
+++ b/pkgs/development/python-modules/opentelemetry-semantic-conventions/default.nix
@@ -4,13 +4,16 @@
   pythonOlder,
   hatchling,
   opentelemetry-api,
+  opentelemetry-instrumentation,
   pytestCheckHook,
 }:
 
 buildPythonPackage {
   inherit (opentelemetry-api) src;
   pname = "opentelemetry-semantic-conventions";
-  version = "0.44b0";
+  # This package is in the same repository as `opentelemetry-api`,
+  # but its version is synchronized with `opentelemetry-instrumentation` in another repository.
+  version = opentelemetry-instrumentation.version;
   pyproject = true;
 
   disabled = pythonOlder "3.8";
diff --git a/pkgs/development/python-modules/opentelemetry-test-utils/default.nix b/pkgs/development/python-modules/opentelemetry-test-utils/default.nix
index 64cca503a407c..b6af8dea4f4fc 100644
--- a/pkgs/development/python-modules/opentelemetry-test-utils/default.nix
+++ b/pkgs/development/python-modules/opentelemetry-test-utils/default.nix
@@ -5,13 +5,16 @@
   asgiref,
   hatchling,
   opentelemetry-api,
+  opentelemetry-instrumentation,
   opentelemetry-sdk,
 }:
 
 buildPythonPackage {
   inherit (opentelemetry-api) src;
   pname = "opentelemetry-test-utils";
-  version = "0.44b0";
+  # This package is in the same repository as `opentelemetry-api`,
+  # but its version is synchronized with `opentelemetry-instrumentation` in another repository.
+  version = opentelemetry-instrumentation.version;
   pyproject = true;
 
   disabled = pythonOlder "3.8";
diff --git a/pkgs/development/python-modules/opower/default.nix b/pkgs/development/python-modules/opower/default.nix
index d889c97c3278c..3aea4088e47a1 100644
--- a/pkgs/development/python-modules/opower/default.nix
+++ b/pkgs/development/python-modules/opower/default.nix
@@ -1,19 +1,20 @@
 {
   lib,
   aiohttp,
+  aiozoneinfo,
   arrow,
   buildPythonPackage,
   fetchFromGitHub,
   pyotp,
-  pytestCheckHook,
   python-dotenv,
+  pytestCheckHook,
   pythonOlder,
   setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "opower";
-  version = "0.4.5";
+  version = "0.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -22,19 +23,22 @@ buildPythonPackage rec {
     owner = "tronikos";
     repo = "opower";
     rev = "refs/tags/v${version}";
-    hash = "sha256-PBxxLbVOvJSFmDXgKeI5sICUR7NJGUEUUahK9eBsvbE=";
+    hash = "sha256-Rv5ttUUlBqa4yFEV5WWrZ+fhL/mrvjoYFsMN6xnFUhQ=";
   };
 
   build-system = [ setuptools ];
 
   dependencies = [
     aiohttp
+    aiozoneinfo
     arrow
     pyotp
-    python-dotenv
   ];
 
-  nativeCheckInputs = [ pytestCheckHook ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    python-dotenv
+  ];
 
   pythonImportsCheck = [ "opower" ];
 
diff --git a/pkgs/development/python-modules/optimum/default.nix b/pkgs/development/python-modules/optimum/default.nix
index bf0185b98c2ce..07c80298754a7 100644
--- a/pkgs/development/python-modules/optimum/default.nix
+++ b/pkgs/development/python-modules/optimum/default.nix
@@ -5,6 +5,7 @@
   pythonOlder,
   coloredlogs,
   datasets,
+  diffusers,
   evaluate,
   h5py,
   huggingface-hub,
@@ -13,6 +14,7 @@
   onnxruntime,
   packaging,
   protobuf,
+  setuptools,
   sympy,
   tensorflow,
   tf2onnx,
@@ -23,8 +25,8 @@
 
 buildPythonPackage rec {
   pname = "optimum";
-  version = "1.19.2";
-  format = "setuptools";
+  version = "1.20.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -32,10 +34,12 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "optimum";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GYgLh6vlOoVvTvhNPfBT4YEqRhB7gZMqlOuab6maVGU=";
+    hash = "sha256-aQNDVNWTgY2LEtug229SEZRMvKHpsQfiTPWW4Lh3hs4=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     coloredlogs
     datasets
     huggingface-hub
@@ -46,7 +50,7 @@ buildPythonPackage rec {
     transformers
   ] ++ transformers.optional-dependencies.sentencepiece;
 
-  passthru.optional-dependencies = {
+  optional-dependencies = {
     onnxruntime = [
       onnx
       onnxruntime
@@ -68,9 +72,7 @@ buildPythonPackage rec {
       h5py
       numpy
     ];
-    diffusers = [
-      # diffusers
-    ];
+    diffusers = [ diffusers ];
     intel = [
       # optimum-intel
     ];
diff --git a/pkgs/development/python-modules/optuna/default.nix b/pkgs/development/python-modules/optuna/default.nix
index 86b39519741f8..8ace135676fec 100644
--- a/pkgs/development/python-modules/optuna/default.nix
+++ b/pkgs/development/python-modules/optuna/default.nix
@@ -129,7 +129,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "optuna" ];
 
   meta = with lib; {
-    description = "A hyperparameter optimization framework";
+    description = "Hyperparameter optimization framework";
     homepage = "https://optuna.org/";
     changelog = "https://github.com/optuna/optuna/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/oracledb/default.nix b/pkgs/development/python-modules/oracledb/default.nix
index 356883e2c56ea..c1989cbe33b79 100644
--- a/pkgs/development/python-modules/oracledb/default.nix
+++ b/pkgs/development/python-modules/oracledb/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "oracledb";
-  version = "2.2.0";
+  version = "2.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-9Sx984sTJDtc5YNFe4B0ijRoK5u4Nw2iSXhotxl2eYs=";
+    hash = "sha256-hGTG8ClfMxja9sLHLIPC3Lw34T+P1E4+Of+GZfRC1rY=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/oras/default.nix b/pkgs/development/python-modules/oras/default.nix
index 16a8a9d9fd6b6..987b41dfaa2d6 100644
--- a/pkgs/development/python-modules/oras/default.nix
+++ b/pkgs/development/python-modules/oras/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "oras";
-  version = "0.1.29";
+  version = "0.1.30";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "oras-project";
     repo = "oras-py";
     rev = "refs/tags/${version}";
-    hash = "sha256-ZV+J5zqRBRIddWdmLzzjpZi3M5E/HfkG8lWK9xzy5tw=";
+    hash = "sha256-qdWGqa5W+WI+lQ2TDZUuJF7PSmkc1Kv7UbWL6+Rfyio=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/ordered-set/default.nix b/pkgs/development/python-modules/ordered-set/default.nix
index e45451f3276a1..adaaa210cdd41 100644
--- a/pkgs/development/python-modules/ordered-set/default.nix
+++ b/pkgs/development/python-modules/ordered-set/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ordered_set" ];
 
   meta = with lib; {
-    description = "A MutableSet that remembers its order, so that every entry has an index.";
+    description = "MutableSet that remembers its order, so that every entry has an index";
     homepage = "https://github.com/rspeer/ordered-set";
     license = licenses.mit;
     maintainers = with maintainers; [ MostAwesomeDude ];
diff --git a/pkgs/development/python-modules/orderedmultidict/default.nix b/pkgs/development/python-modules/orderedmultidict/default.nix
index 8abe7d5930659..1d625b114f236 100644
--- a/pkgs/development/python-modules/orderedmultidict/default.nix
+++ b/pkgs/development/python-modules/orderedmultidict/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ six ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   meta = with lib; {
-    description = "Ordered Multivalue Dictionary.";
+    description = "Ordered Multivalue Dictionary";
     homepage = "https://github.com/gruns/orderedmultidict";
     license = licenses.publicDomain;
     maintainers = with maintainers; [ vanzef ];
diff --git a/pkgs/development/python-modules/orderedset/default.nix b/pkgs/development/python-modules/orderedset/default.nix
index ce69d63b56ddc..a1835c6cdac6b 100644
--- a/pkgs/development/python-modules/orderedset/default.nix
+++ b/pkgs/development/python-modules/orderedset/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "An Ordered Set implementation in Cython";
+    description = "Ordered Set implementation in Cython";
     homepage = "https://pypi.python.org/pypi/orderedset";
     license = licenses.bsd3;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/orjson/default.nix b/pkgs/development/python-modules/orjson/default.nix
index 75440aeaa8606..5bb2acb5dfd8c 100644
--- a/pkgs/development/python-modules/orjson/default.nix
+++ b/pkgs/development/python-modules/orjson/default.nix
@@ -31,7 +31,7 @@
 
 buildPythonPackage rec {
   pname = "orjson";
-  version = "3.10.1";
+  version = "3.10.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -40,13 +40,13 @@ buildPythonPackage rec {
     owner = "ijl";
     repo = "orjson";
     rev = "refs/tags/${version}";
-    hash = "sha256-vEJriLd7f+zlYcMIyhDTkq2kmNc5MaNLHo0qMLS5hro=";
+    hash = "sha256-bK6wA8P/IXEbiuJAx7psd0nUUKjR1jX4scFfJr1MBAk=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-yQkpjedHwgsZiiZEzYV66aa9RepCFW0PBqtD29tfoMI=";
+    hash = "sha256-ilGq+/gPSuNwURUWy2ZxInzmUv+PxYMxd8esxrMpr2o=";
   };
 
   maturinBuildFlags = [ "--interpreter ${python.executable}" ];
diff --git a/pkgs/development/python-modules/orm/default.nix b/pkgs/development/python-modules/orm/default.nix
index 2744be988fe93..a498127b4f116 100644
--- a/pkgs/development/python-modules/orm/default.nix
+++ b/pkgs/development/python-modules/orm/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "orm" ];
 
   meta = with lib; {
-    description = "An async ORM";
+    description = "Async ORM";
     homepage = "https://github.com/encode/orm";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/osc/default.nix b/pkgs/development/python-modules/osc/default.nix
index eeb9f9df6f2a5..96533b823651e 100644
--- a/pkgs/development/python-modules/osc/default.nix
+++ b/pkgs/development/python-modules/osc/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "osc";
-  version = "1.6.1";
+  version = "1.7.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "openSUSE";
     repo = "osc";
     rev = version;
-    hash = "sha256-U76nAE7NdLIdrKzRC0sP8hy6G6A8Tr4Qe2PGZI2xvyk=";
+    hash = "sha256-ze5mgFU3jc+hB1W2ayj4i2dBFJ0CXsZULzbdFMz3G3Y=";
   };
 
   buildInputs = [ bashInteractive ]; # needed for bash-completion helper
diff --git a/pkgs/development/python-modules/oscpy/default.nix b/pkgs/development/python-modules/oscpy/default.nix
index 5f79ae15e73ff..9889b746405a2 100644
--- a/pkgs/development/python-modules/oscpy/default.nix
+++ b/pkgs/development/python-modules/oscpy/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "oscpy" ];
 
   meta = with lib; {
-    description = "A modern implementation of OSC for python2/3";
+    description = "Modern implementation of OSC for python2/3";
     mainProgram = "oscli";
     license = licenses.mit;
     homepage = "https://github.com/kivy/oscpy";
diff --git a/pkgs/development/python-modules/oslo-db/default.nix b/pkgs/development/python-modules/oslo-db/default.nix
index 3bb388329b658..6b2c64de5d0c7 100644
--- a/pkgs/development/python-modules/oslo-db/default.nix
+++ b/pkgs/development/python-modules/oslo-db/default.nix
@@ -21,13 +21,13 @@
 
 buildPythonPackage rec {
   pname = "oslo-db";
-  version = "15.0.0";
+  version = "15.1.0";
   pyproject = true;
 
   src = fetchPypi {
     pname = "oslo.db";
     inherit version;
-    hash = "sha256-6QJDUgX1xQtw7mNYY8i06lS9Hr4ABpXAZeMN1C2Xb/o=";
+    hash = "sha256-FqvjqOYf52zaLwPZx9xZEITRnvYU8xiHvylp7fsg6E4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/oslo-log/default.nix b/pkgs/development/python-modules/oslo-log/default.nix
index 9f18906cb8758..882131c7c60b9 100644
--- a/pkgs/development/python-modules/oslo-log/default.nix
+++ b/pkgs/development/python-modules/oslo-log/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "oslo-log";
-  version = "5.5.1";
+  version = "6.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "oslo.log";
     inherit version;
-    hash = "sha256-SEFIUSxdsqizXIPNmX6ZU3Vf2L+oqvbuDMjHrrdCkhA=";
+    hash = "sha256-ifDW+iy6goH4m1CKf+Sb+5far1XFJ4GH1FowaZceaH8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/osmpythontools/default.nix b/pkgs/development/python-modules/osmpythontools/default.nix
index abf38d4d4b797..b64ea716e5538 100644
--- a/pkgs/development/python-modules/osmpythontools/default.nix
+++ b/pkgs/development/python-modules/osmpythontools/default.nix
@@ -48,7 +48,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A library to access OpenStreetMap-related services";
+    description = "Library to access OpenStreetMap-related services";
     longDescription = ''
       The python package OSMPythonTools provides easy access to
       OpenStreetMap-related services, among them an Overpass endpoint,
diff --git a/pkgs/development/python-modules/osqp/default.nix b/pkgs/development/python-modules/osqp/default.nix
index 4d7cc0cad7958..5a47de2578467 100644
--- a/pkgs/development/python-modules/osqp/default.nix
+++ b/pkgs/development/python-modules/osqp/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "osqp";
-  version = "0.6.5";
+  version = "0.6.7";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-soEK7nviNzrdi2wL5a2ZuBAoh3SrykIXUcsDLWpa7e8=";
+    hash = "sha256-O3ARmFV6SZxg67U9fyUBkGSFXHMvTz+84gVdeJ5Tph0=";
   };
 
   dontUseCmakeConfigure = true;
@@ -67,7 +67,7 @@ buildPythonPackage rec {
     ];
 
   meta = with lib; {
-    description = "The Operator Splitting QP Solver";
+    description = "Operator Splitting QP Solver";
     longDescription = ''
       Numerical optimization package for solving problems in the form
         minimize        0.5 x' P x + q' x
diff --git a/pkgs/development/python-modules/outcome/default.nix b/pkgs/development/python-modules/outcome/default.nix
index 2cfcb84cac55d..e0e98cee88724 100644
--- a/pkgs/development/python-modules/outcome/default.nix
+++ b/pkgs/development/python-modules/outcome/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = {
-    description = "Capture the outcome of Python function calls.";
+    description = "Capture the outcome of Python function calls";
     homepage = "https://github.com/python-trio/outcome";
     license = with lib.licenses; [
       mit
diff --git a/pkgs/development/python-modules/outspin/default.nix b/pkgs/development/python-modules/outspin/default.nix
new file mode 100644
index 0000000000000..ae01566d9cd5e
--- /dev/null
+++ b/pkgs/development/python-modules/outspin/default.nix
@@ -0,0 +1,32 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "outspin";
+  version = "0.3.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "trag1c";
+    repo = "outspin";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-j+J3n/p+DcfnhGfC4/NDBDl5bF39L5kIPeGJW0Zm7ls=";
+  };
+
+  build-system = [ poetry-core ];
+  pythonImportsCheck = [ "outspin" ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    changelog = "https://github.com/trag1c/outspin/blob/${src.rev}/CHANGELOG.md";
+    description = "Conveniently read single char inputs in the console";
+    license = licenses.mit;
+    maintainers = with maintainers; [ sigmanificient ];
+  };
+}
diff --git a/pkgs/development/python-modules/overly/default.nix b/pkgs/development/python-modules/overly/default.nix
index 257c61254bc59..f234c910865eb 100644
--- a/pkgs/development/python-modules/overly/default.nix
+++ b/pkgs/development/python-modules/overly/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "overly" ];
 
   meta = {
-    description = "An overly configurable http server for client testing";
+    description = "Overly configurable http server for client testing";
     homepage = "https://github.com/theelous3/overly";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/owslib/default.nix b/pkgs/development/python-modules/owslib/default.nix
index e67dc18143fbc..645715a4f0af5 100644
--- a/pkgs/development/python-modules/owslib/default.nix
+++ b/pkgs/development/python-modules/owslib/default.nix
@@ -51,22 +51,10 @@ buildPythonPackage rec {
     export PY_IGNORE_IMPORTMISMATCH=1
   '';
 
-  disabledTests =
-    [
-      # Tests require network access
-      "test_ows_interfaces_wcs"
-      "test_wfs_110_remotemd"
-      "test_wfs_200_remotemd"
-      "test_wms_130_remotemd"
-      "test_wmts_example_informatievlaanderen"
-      "test_opensearch_creodias"
-    ]
-    ++ lib.optionals stdenv.isDarwin [
-      "test_ogcapi_processes_pygeoapi"
-      "test_ogcapi_records_pycsw"
-      "test_ogcapi_records_pygeoapi"
-      "test_wms_getfeatureinfo_130"
-    ];
+  pytestFlagsArray = [
+    # disable tests which require network access
+    "-m 'not online'"
+  ];
 
   meta = with lib; {
     description = "Client for Open Geospatial Consortium web service interface standards";
diff --git a/pkgs/development/python-modules/paddle2onnx/default.nix b/pkgs/development/python-modules/paddle2onnx/default.nix
index ce01eef3ec273..34278879ddd8f 100644
--- a/pkgs/development/python-modules/paddle2onnx/default.nix
+++ b/pkgs/development/python-modules/paddle2onnx/default.nix
@@ -1,12 +1,11 @@
 {
   lib,
-  stdenv,
   buildPythonPackage,
   fetchPypi,
   pythonOlder,
+  pythonAtLeast,
   python,
   onnx,
-  isPy311,
 }:
 let
   pname = "paddle2onnx";
@@ -30,7 +29,7 @@ buildPythonPackage {
     format
     ;
 
-  disabled = pythonOlder "3.8" || isPy311;
+  disabled = pythonOlder "3.8" || pythonAtLeast "3.11";
 
   propagatedBuildInputs = [ onnx ];
 
diff --git a/pkgs/development/python-modules/pagelabels/default.nix b/pkgs/development/python-modules/pagelabels/default.nix
index 32d791ce1c8a7..70f1e8d6670f7 100644
--- a/pkgs/development/python-modules/pagelabels/default.nix
+++ b/pkgs/development/python-modules/pagelabels/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "Python library to manipulate PDF page labels.";
+    description = "Python library to manipulate PDF page labels";
     homepage = "https://github.com/lovasoa/pagelabels-py";
     maintainers = with maintainers; [ teto ];
     license = licenses.gpl3;
diff --git a/pkgs/development/python-modules/palettable/default.nix b/pkgs/development/python-modules/palettable/default.nix
index 2ac4da95dca33..acdf8eaf3a82d 100644
--- a/pkgs/development/python-modules/palettable/default.nix
+++ b/pkgs/development/python-modules/palettable/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A library of color palettes";
+    description = "Library of color palettes";
     homepage = "https://jiffyclub.github.io/palettable/";
     changelog = "https://github.com/jiffyclub/palettable/blob/v${version}/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pandoc-attributes/default.nix b/pkgs/development/python-modules/pandoc-attributes/default.nix
index 128a3c905d499..8322f38835308 100644
--- a/pkgs/development/python-modules/pandoc-attributes/default.nix
+++ b/pkgs/development/python-modules/pandoc-attributes/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/aaren/pandoc-attributes";
-    description = "An Attribute class to be used with pandocfilters";
+    description = "Attribute class to be used with pandocfilters";
     license = lib.licenses.bsd2;
     maintainers = with lib.maintainers; [ vcanadi ];
   };
diff --git a/pkgs/development/python-modules/pandocfilters/default.nix b/pkgs/development/python-modules/pandocfilters/default.nix
index cbb3e702ff9fe..37ce5a14d7d06 100644
--- a/pkgs/development/python-modules/pandocfilters/default.nix
+++ b/pkgs/development/python-modules/pandocfilters/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A python module for writing pandoc filters, with a collection of examples";
+    description = "Python module for writing pandoc filters, with a collection of examples";
     homepage = "https://github.com/jgm/pandocfilters";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/panel/default.nix b/pkgs/development/python-modules/panel/default.nix
index 30c6c52c67807..ddf9e6d69f6d8 100644
--- a/pkgs/development/python-modules/panel/default.nix
+++ b/pkgs/development/python-modules/panel/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "panel";
-  version = "1.4.1";
+  version = "1.4.4";
 
   format = "wheel";
 
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   # tries to fetch even more artifacts
   src = fetchPypi {
     inherit pname version format;
-    hash = "sha256-x7ywbO2uY1r06bDXV/+X/7cs9f6jFawyDHeo8pLWZVE=";
+    hash = "sha256-tJu5Z2VnsMBzC/aTSMBXJHCAgRrsVjZN1Pz7qA5eCaA=";
     dist = "py3";
     python = "py3";
   };
@@ -54,7 +54,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A high level dashboarding library for python visualization libraries";
+    description = "High level dashboarding library for python visualization libraries";
     mainProgram = "panel";
     homepage = "https://github.com/holoviz/panel";
     changelog = "https://github.com/holoviz/panel/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/paperbush/default.nix b/pkgs/development/python-modules/paperbush/default.nix
new file mode 100644
index 0000000000000..e2a06a1f72d29
--- /dev/null
+++ b/pkgs/development/python-modules/paperbush/default.nix
@@ -0,0 +1,29 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+}:
+
+buildPythonPackage rec {
+  pname = "paperbush";
+  version = "0.2.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "trag1c";
+    repo = "paperbush";
+    rev = "refs/tags/${version}";
+    hash = "sha256-wJV+2aGK9eSw2iToiHh0I7vYAuND2pRYGhnf7CB1a+0=";
+  };
+
+  build-system = [ poetry-core ];
+  pythonImportsCheck = [ "paperbush" ];
+
+  meta = with lib; {
+    changelog = "https://github.com/trag1c/paperbush/blob/${src.rev}/CHANGELOG.md";
+    description = "Super concise argument parsing tool for Python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ sigmanificient ];
+  };
+}
diff --git a/pkgs/development/python-modules/papis-python-rofi/default.nix b/pkgs/development/python-modules/papis-python-rofi/default.nix
index 6ec1122950a31..c23b6cffa2a44 100644
--- a/pkgs/development/python-modules/papis-python-rofi/default.nix
+++ b/pkgs/development/python-modules/papis-python-rofi/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = {
-    description = "A Python module to make simple GUIs with Rofi";
+    description = "Python module to make simple GUIs with Rofi";
     homepage = "https://github.com/alejandrogallo/python-rofi";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.nico202 ];
diff --git a/pkgs/development/python-modules/para/default.nix b/pkgs/development/python-modules/para/default.nix
index 114c5bedcfe96..c5ef2bcdc1a75 100644
--- a/pkgs/development/python-modules/para/default.nix
+++ b/pkgs/development/python-modules/para/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "para" ];
 
   meta = with lib; {
-    description = "A set utilities that ake advantage of python's 'multiprocessing' module to distribute CPU-intensive tasks";
+    description = "Set utilities that ake advantage of python's 'multiprocessing' module to distribute CPU-intensive tasks";
     homepage = "https://pypi.org/project/para";
     license = licenses.mit;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/pkgs/development/python-modules/parfive/default.nix b/pkgs/development/python-modules/parfive/default.nix
index 8e788bc850b92..e0e55e49f35a8 100644
--- a/pkgs/development/python-modules/parfive/default.nix
+++ b/pkgs/development/python-modules/parfive/default.nix
@@ -52,7 +52,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "parfive" ];
 
   meta = with lib; {
-    description = "A HTTP and FTP parallel file downloader";
+    description = "HTTP and FTP parallel file downloader";
     mainProgram = "parfive";
     homepage = "https://parfive.readthedocs.io/";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/parsley/default.nix b/pkgs/development/python-modules/parsley/default.nix
index 2c8077c21555a..7da4675609d47 100644
--- a/pkgs/development/python-modules/parsley/default.nix
+++ b/pkgs/development/python-modules/parsley/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   meta = with lib; {
     license = licenses.mit;
     homepage = "https://launchpad.net/parsley";
-    description = "A parser generator library based on OMeta, and other useful parsing tools.";
+    description = "Parser generator library based on OMeta, and other useful parsing tools";
     maintainers = with maintainers; [ seppeljordan ];
   };
 }
diff --git a/pkgs/development/python-modules/parso/default.nix b/pkgs/development/python-modules/parso/default.nix
index bb0bf239d95aa..e39173147e7d2 100644
--- a/pkgs/development/python-modules/parso/default.nix
+++ b/pkgs/development/python-modules/parso/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchPypi,
-  fetchpatch,
   pythonAtLeast,
   pythonOlder,
   pytestCheckHook,
@@ -27,7 +26,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python Parser";
+    description = "Python Parser";
     homepage = "https://parso.readthedocs.io/en/latest/";
     changelog = "https://github.com/davidhalter/parso/blob/master/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/particle/default.nix b/pkgs/development/python-modules/particle/default.nix
index 519c1f8f5b467..49771e8728eac 100644
--- a/pkgs/development/python-modules/particle/default.nix
+++ b/pkgs/development/python-modules/particle/default.nix
@@ -3,7 +3,6 @@
   attrs,
   buildPythonPackage,
   deprecated,
-  fetchFromGitHub,
   fetchPypi,
   hatch-vcs,
   hatchling,
diff --git a/pkgs/development/python-modules/pasimple/default.nix b/pkgs/development/python-modules/pasimple/default.nix
index 30827419359e2..515fb636ae319 100644
--- a/pkgs/development/python-modules/pasimple/default.nix
+++ b/pkgs/development/python-modules/pasimple/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A python wrapper for the \"PulseAudio simple API\". Supports playing and recording audio via PulseAudio and PipeWire";
+    description = "Python wrapper for the \"PulseAudio simple API\". Supports playing and recording audio via PulseAudio and PipeWire";
     homepage = "https://github.com/henrikschnor/pasimple";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
diff --git a/pkgs/development/python-modules/passlib/default.nix b/pkgs/development/python-modules/passlib/default.nix
index 86ab1201969ba..786cfc618d5b2 100644
--- a/pkgs/development/python-modules/passlib/default.nix
+++ b/pkgs/development/python-modules/passlib/default.nix
@@ -55,7 +55,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A password hashing library for Python";
+    description = "Password hashing library for Python";
     homepage = "https://foss.heptapod.net/python-libs/passlib";
     license = licenses.bsdOriginal;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/pastescript/default.nix b/pkgs/development/python-modules/pastescript/default.nix
index 2d92ba445a24d..1fc44b80b6833 100644
--- a/pkgs/development/python-modules/pastescript/default.nix
+++ b/pkgs/development/python-modules/pastescript/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "pastescript";
-  version = "3.5.1";
+  version = "3.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "PasteScript";
     inherit version;
-    hash = "sha256-zRtgbNReloT/20SL1tmq70IN0u/n5rYsbTc6Rv9DyDU=";
+    hash = "sha256-HCLSt81TUWRr7tKMb3DrSipLklZR2a/Ko1AdBsq7UXE=";
   };
 
   propagatedBuildInputs = [
@@ -38,8 +38,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonNamespaces = [ "paste" ];
-
   disabledTestPaths = [ "appsetup/testfiles" ];
 
   pythonImportsCheck = [
@@ -49,7 +47,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A pluggable command-line frontend, including commands to setup package file layouts";
+    description = "Pluggable command-line frontend, including commands to setup package file layouts";
     mainProgram = "paster";
     homepage = "https://github.com/cdent/pastescript/";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/patch-ng/default.nix b/pkgs/development/python-modules/patch-ng/default.nix
index 02d84f3607f16..77b0b02fa0c84 100644
--- a/pkgs/development/python-modules/patch-ng/default.nix
+++ b/pkgs/development/python-modules/patch-ng/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "Library to parse and apply unified diffs.";
+    description = "Library to parse and apply unified diffs";
     homepage = "https://github.com/conan-io/python-patch";
     license = licenses.mit;
     maintainers = with maintainers; [ HaoZeke ];
diff --git a/pkgs/development/python-modules/patch/default.nix b/pkgs/development/python-modules/patch/default.nix
index 9a9d5288a5f4e..1dea1cf9f1784 100644
--- a/pkgs/development/python-modules/patch/default.nix
+++ b/pkgs/development/python-modules/patch/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A library to parse and apply unified diffs";
+    description = "Library to parse and apply unified diffs";
     homepage = "https://github.com/techtonik/python-patch/";
     license = licenses.mit;
     maintainers = [ maintainers.igsha ];
diff --git a/pkgs/development/python-modules/pathlib2/default.nix b/pkgs/development/python-modules/pathlib2/default.nix
index e3d870e052830..5cbe0f41d36f9 100644
--- a/pkgs/development/python-modules/pathlib2/default.nix
+++ b/pkgs/development/python-modules/pathlib2/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "This module offers classes representing filesystem paths with semantics appropriate for different operating systems.";
+    description = "This module offers classes representing filesystem paths with semantics appropriate for different operating systems";
     homepage = "https://pypi.org/project/pathlib2/";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/pathy/default.nix b/pkgs/development/python-modules/pathy/default.nix
index 3f09be6fb48cf..07e55245b3857 100644
--- a/pkgs/development/python-modules/pathy/default.nix
+++ b/pkgs/development/python-modules/pathy/default.nix
@@ -51,7 +51,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pathy" ];
 
   meta = with lib; {
-    description = "A Path interface for local and cloud bucket storage";
+    description = "Path interface for local and cloud bucket storage";
     mainProgram = "pathy";
     homepage = "https://github.com/justindujardin/pathy";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/patiencediff/default.nix b/pkgs/development/python-modules/patiencediff/default.nix
index cae4214075f46..075259be8124f 100644
--- a/pkgs/development/python-modules/patiencediff/default.nix
+++ b/pkgs/development/python-modules/patiencediff/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "patiencediff";
-  version = "0.2.14";
+  version = "0.2.15";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "breezy-team";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-KTOESjaj8fMxJZ7URqg6UMpiQppqZAlk4IPWEw4/Nvw=";
+    hash = "sha256-SFu1oN1yE9tKeBgWhgWjDpR31AptGrls0D5kKQed+HI=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/patsy/default.nix b/pkgs/development/python-modules/patsy/default.nix
index 89164e09a546f..d5acbee88521b 100644
--- a/pkgs/development/python-modules/patsy/default.nix
+++ b/pkgs/development/python-modules/patsy/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "patsy" ];
 
   meta = {
-    description = "A Python package for describing statistical models";
+    description = "Python package for describing statistical models";
     homepage = "https://github.com/pydata/patsy";
     license = lib.licenses.bsd2;
     maintainers = with lib.maintainers; [ ilya-kolpakov ];
diff --git a/pkgs/development/python-modules/paver/default.nix b/pkgs/development/python-modules/paver/default.nix
index de859540c5f2c..8eec65073f1c7 100644
--- a/pkgs/development/python-modules/paver/default.nix
+++ b/pkgs/development/python-modules/paver/default.nix
@@ -42,7 +42,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python-based build/distribution/deployment scripting tool";
+    description = "Python-based build/distribution/deployment scripting tool";
     mainProgram = "paver";
     homepage = "https://github.com/paver/paver";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/pcffont/default.nix b/pkgs/development/python-modules/pcffont/default.nix
index 448dd210fef8b..30c0c05cae0ef 100644
--- a/pkgs/development/python-modules/pcffont/default.nix
+++ b/pkgs/development/python-modules/pcffont/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "pcffont";
-  version = "0.0.13";
+  version = "0.0.14";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "TakWolf";
     repo = "pcffont";
     rev = "refs/tags/${version}";
-    hash = "sha256-DbPcE2Bx+V90s7P3Gq+Uz3iQNidwbNlp7zln8ykL7Sg=";
+    hash = "sha256-UIRhUlsRd3ICdLAjUasQ1NX5NofSKCEqa8cf1c1voGM=";
   };
 
   build-system = [ hatchling ];
diff --git a/pkgs/development/python-modules/pcpp/default.nix b/pkgs/development/python-modules/pcpp/default.nix
index 9ac56f890a57e..a0311740164d4 100644
--- a/pkgs/development/python-modules/pcpp/default.nix
+++ b/pkgs/development/python-modules/pcpp/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/ned14/pcpp";
-    description = "A C99 preprocessor written in pure Python";
+    description = "C99 preprocessor written in pure Python";
     mainProgram = "pcpp";
     license = licenses.bsd0;
     maintainers = with maintainers; [ rakesh4g ];
diff --git a/pkgs/development/python-modules/pdfplumber/default.nix b/pkgs/development/python-modules/pdfplumber/default.nix
index 1a28900924d5b..b42070e321707 100644
--- a/pkgs/development/python-modules/pdfplumber/default.nix
+++ b/pkgs/development/python-modules/pdfplumber/default.nix
@@ -2,6 +2,7 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+  ghostscript,
   jupyterlab,
   nbexec,
   pandas,
@@ -17,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "pdfplumber";
-  version = "0.11.0";
+  version = "0.11.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -26,7 +27,7 @@ buildPythonPackage rec {
     owner = "jsvine";
     repo = "pdfplumber";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sjiCxE2WcvBASANCeookNn1n9M+mY0/8QGOCen+pzqM=";
+    hash = "sha256-5A1hjmC6GCS0Uqq5AiCEGqDTwASbJBX0pJGNNyvP3+4=";
   };
 
   postPatch = ''
@@ -45,6 +46,7 @@ buildPythonPackage rec {
   '';
 
   nativeCheckInputs = [
+    ghostscript
     jupyterlab
     nbexec
     pandas
@@ -64,8 +66,8 @@ buildPythonPackage rec {
   disabledTestPaths = [
     # Tests requires pypdfium2
     "tests/test_display.py"
-    # Tests require Ghostscript
-    "tests/test_repair.py"
+    # Tests requires pypdfium2
+    "tests/test_issues.py"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pdfrw/default.nix b/pkgs/development/python-modules/pdfrw/default.nix
index 4feb27fdc3f57..d5c889185d0fe 100644
--- a/pkgs/development/python-modules/pdfrw/default.nix
+++ b/pkgs/development/python-modules/pdfrw/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "pdfrw is a pure Python library that reads and writes PDFs.";
+    description = "pdfrw is a pure Python library that reads and writes PDFs";
     homepage = "https://github.com/pmaupin/pdfrw";
     maintainers = with maintainers; [ teto ];
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pdm-backend/default.nix b/pkgs/development/python-modules/pdm-backend/default.nix
index 8cb78b449f015..714dff4c5a528 100644
--- a/pkgs/development/python-modules/pdm-backend/default.nix
+++ b/pkgs/development/python-modules/pdm-backend/default.nix
@@ -54,7 +54,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/pdm-project/pdm-backend";
     changelog = "https://github.com/pdm-project/pdm-backend/releases/tag/${version}";
-    description = "Yet another PEP 517 backend.";
+    description = "Yet another PEP 517 backend";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
   };
diff --git a/pkgs/development/python-modules/pdm-pep517/default.nix b/pkgs/development/python-modules/pdm-pep517/default.nix
index 9afd76c81a47d..0e08e9bd8a830 100644
--- a/pkgs/development/python-modules/pdm-pep517/default.nix
+++ b/pkgs/development/python-modules/pdm-pep517/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/pdm-project/pdm-pep517";
-    description = "Yet another PEP 517 backend.";
+    description = "Yet another PEP 517 backend";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
   };
diff --git a/pkgs/development/python-modules/pdoc-pyo3-sample-library/default.nix b/pkgs/development/python-modules/pdoc-pyo3-sample-library/default.nix
index 6d53750f528c0..cf53273f73bbd 100644
--- a/pkgs/development/python-modules/pdoc-pyo3-sample-library/default.nix
+++ b/pkgs/development/python-modules/pdoc-pyo3-sample-library/default.nix
@@ -40,7 +40,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = {
-    description = "A sample PyO3 library used in pdoc tests";
+    description = "Sample PyO3 library used in pdoc tests";
     homepage = "https://github.com/mitmproxy/pdoc-pyo3-sample-library";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.pbsds ];
diff --git a/pkgs/development/python-modules/pdoc3/default.nix b/pkgs/development/python-modules/pdoc3/default.nix
index c56a6a806519e..03fb3fd84c2f2 100644
--- a/pkgs/development/python-modules/pdoc3/default.nix
+++ b/pkgs/development/python-modules/pdoc3/default.nix
@@ -49,7 +49,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Auto-generate API documentation for Python projects.";
+    description = "Auto-generate API documentation for Python projects";
     homepage = "https://pdoc3.github.io/pdoc/";
     license = with licenses; [ agpl3Plus ];
     maintainers = with maintainers; [ catern ];
diff --git a/pkgs/development/python-modules/peaqevcore/default.nix b/pkgs/development/python-modules/peaqevcore/default.nix
index ff4baf1aa2be0..3c55be1d16698 100644
--- a/pkgs/development/python-modules/peaqevcore/default.nix
+++ b/pkgs/development/python-modules/peaqevcore/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "peaqevcore";
-  version = "19.10.8";
+  version = "19.10.12";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-H9AJErjJC/zo5Fy1sZFLw6GCMm4YirMzwWbAhzXM7mg=";
+    hash = "sha256-9k6bFEZychZXr/vE5AznQ36hhm/JXgjByM9wSZmyzts=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/peft/default.nix b/pkgs/development/python-modules/peft/default.nix
index 52a53cee9328d..76eaac3b2df22 100644
--- a/pkgs/development/python-modules/peft/default.nix
+++ b/pkgs/development/python-modules/peft/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "peft";
-  version = "0.10.0";
+  version = "0.11.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-Aln5WyDgNnxOUwyhOz9NGsnV1zXt/Rs57ULxR5ZJXNM=";
+    hash = "sha256-FV/S/N9wA+rUos/uQIzvPWmWCIFi8wi2Tt6jMzvYfYQ=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/pep8-naming/default.nix b/pkgs/development/python-modules/pep8-naming/default.nix
index 213436d6a9536..9ab07cfd76783 100644
--- a/pkgs/development/python-modules/pep8-naming/default.nix
+++ b/pkgs/development/python-modules/pep8-naming/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pep8-naming";
-  version = "0.13.3";
+  version = "0.14.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,8 +17,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "PyCQA";
     repo = pname;
-    rev = version;
-    hash = "sha256-l7zZUOMWyTxnTbkFkzfABY/eVMKnv0kNJ0UPzJo0W1Y=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-uIVk8+5rVEIBZLz70WUi0O6/Q9ERptJ3b7314gLPeHk=";
   };
 
   propagatedBuildInputs = [ flake8 ];
diff --git a/pkgs/development/python-modules/peppercorn/default.nix b/pkgs/development/python-modules/peppercorn/default.nix
index 64bd3c74b928f..1fb8d48a05e55 100644
--- a/pkgs/development/python-modules/peppercorn/default.nix
+++ b/pkgs/development/python-modules/peppercorn/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A library for converting a token stream into a data structure for use in web form posts";
+    description = "Library for converting a token stream into a data structure for use in web form posts";
     homepage = "https://docs.pylonsproject.org/projects/peppercorn/en/latest/";
     maintainers = with maintainers; [ domenkozar ];
     platforms = platforms.all;
diff --git a/pkgs/development/python-modules/permissionedforms/default.nix b/pkgs/development/python-modules/permissionedforms/default.nix
index 8577b09757cc3..8abf3f5abf997 100644
--- a/pkgs/development/python-modules/permissionedforms/default.nix
+++ b/pkgs/development/python-modules/permissionedforms/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "permissionedforms" ];
 
   meta = with lib; {
-    description = "A Django extension for creating forms that vary according to user permissions";
+    description = "Django extension for creating forms that vary according to user permissions";
     homepage = "https://github.com/wagtail/permissionedforms";
     changelog = "https://github.com/wagtail/permissionedforms/blob/v${version}/CHANGELOG.md";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/pettingzoo/default.nix b/pkgs/development/python-modules/pettingzoo/default.nix
index e90fd8f15bf62..1e03c7734dde4 100644
--- a/pkgs/development/python-modules/pettingzoo/default.nix
+++ b/pkgs/development/python-modules/pettingzoo/default.nix
@@ -123,7 +123,7 @@ buildPythonPackage rec {
     ];
 
   meta = with lib; {
-    description = "An API standard for multi-agent reinforcement learning environments, with popular reference environments and related utilities";
+    description = "API standard for multi-agent reinforcement learning environments, with popular reference environments and related utilities";
     homepage = "https://github.com/Farama-Foundation/PettingZoo";
     changelog = "https://github.com/Farama-Foundation/PettingZoo/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pex/default.nix b/pkgs/development/python-modules/pex/default.nix
index 3ef394f9bb347..24fdc105e18b0 100644
--- a/pkgs/development/python-modules/pex/default.nix
+++ b/pkgs/development/python-modules/pex/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "pex";
-  version = "2.3.1";
+  version = "2.4.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-0SZMkRYcIRObRUdEyAU+Jbiq0tFdqJIyGBtPOPP1RXU=";
+    hash = "sha256-WH6aklJP8Wk1XgxULedM/rIt6XWAV5ur9hOAta7TsD4=";
   };
 
   build-system = [ hatchling ];
diff --git a/pkgs/development/python-modules/pexif/default.nix b/pkgs/development/python-modules/pexif/default.nix
index 35949f3608d77..9b2f9e16ead9a 100644
--- a/pkgs/development/python-modules/pexif/default.nix
+++ b/pkgs/development/python-modules/pexif/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A module for editing JPEG EXIF data";
+    description = "Module for editing JPEG EXIF data";
     homepage = "http://www.benno.id.au/code/pexif/";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/pgmpy/default.nix b/pkgs/development/python-modules/pgmpy/default.nix
index ad6b248b0f391..d9505528c64b1 100644
--- a/pkgs/development/python-modules/pgmpy/default.nix
+++ b/pkgs/development/python-modules/pgmpy/default.nix
@@ -2,6 +2,7 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+  pythonAtLeast,
   pythonOlder,
   # build inputs
   networkx,
@@ -42,6 +43,14 @@ buildPythonPackage {
     hash = "sha256-d2TNcJQ82XxTWdetLgtKXRpFulAEEzrr+cyRewoA6YI=";
   };
 
+  # TODO: Remove this patch after updating to pgmpy 0.1.26.
+  # The PR https://github.com/pgmpy/pgmpy/pull/1745 will have been merged.
+  # It contains the fix below, among other things, which is why we do not use fetchpatch.
+  postPatch = lib.optionalString (pythonAtLeast "3.12") ''
+    substituteInPlace pgmpy/tests/test_estimators/test_MarginalEstimator.py \
+      --replace-fail 'self.assert_' 'self.assertTrue'
+  '';
+
   propagatedBuildInputs = [
     networkx
     numpy
diff --git a/pkgs/development/python-modules/phe/default.nix b/pkgs/development/python-modules/phe/default.nix
index 0cf03e077cdc7..0e9fa4b5be985 100644
--- a/pkgs/development/python-modules/phe/default.nix
+++ b/pkgs/development/python-modules/phe/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A library for Partially Homomorphic Encryption in Python";
+    description = "Library for Partially Homomorphic Encryption in Python";
     mainProgram = "pheutil";
     homepage = "https://github.com/data61/python-paillier";
     license = licenses.gpl3;
diff --git a/pkgs/development/python-modules/phpserialize/default.nix b/pkgs/development/python-modules/phpserialize/default.nix
index 66b068c9bb87c..89e7c9d30b555 100644
--- a/pkgs/development/python-modules/phpserialize/default.nix
+++ b/pkgs/development/python-modules/phpserialize/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = {
-    description = "A port of the serialize and unserialize functions of PHP to Python";
+    description = "Port of the serialize and unserialize functions of PHP to Python";
     homepage = "https://github.com/mitsuhiko/phpserialize";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ jluttine ];
diff --git a/pkgs/development/python-modules/piano-transcription-inference/default.nix b/pkgs/development/python-modules/piano-transcription-inference/default.nix
index 4dc5dd3f552b7..4727cee21c43b 100644
--- a/pkgs/development/python-modules/piano-transcription-inference/default.nix
+++ b/pkgs/development/python-modules/piano-transcription-inference/default.nix
@@ -72,7 +72,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "piano_transcription_inference" ];
 
   meta = with lib; {
-    description = "A piano transcription inference package";
+    description = "Piano transcription inference package";
     homepage = "https://github.com/qiuqiangkong/piano_transcription_inference";
     license = licenses.mit;
     maintainers = with maintainers; [ azuwis ];
diff --git a/pkgs/development/python-modules/piccolo-theme/default.nix b/pkgs/development/python-modules/piccolo-theme/default.nix
index 6bb794e7f567d..49dd8b2c3c4d7 100644
--- a/pkgs/development/python-modules/piccolo-theme/default.nix
+++ b/pkgs/development/python-modules/piccolo-theme/default.nix
@@ -2,32 +2,38 @@
   lib,
   buildPythonPackage,
   fetchPypi,
+  pythonOlder,
   sphinx,
 }:
 
 buildPythonPackage rec {
   pname = "piccolo-theme";
-  version = "0.22.0";
+  version = "0.23.0";
   format = "setuptools";
 
-  src = fetchPypi {
+  disabled = pythonOlder "3.9";
+
+ src = fetchPypi {
     pname = "piccolo_theme";
     inherit version;
-    hash = "sha256-TAbaUnPfAH17BYJqbkSYgNzwmpJkIXGCx1UkJmDML4g=";
+    hash = "sha256-jlnKZK2wuEM+n+3Y59U6+LyQJRBUwQAn0NarAGlNdx0=";
   };
 
-  propagatedBuildInputs = [ sphinx ];
+  dependencies = [ sphinx ];
+
+  # Module has no tests
+  doCheck = false;
 
   pythonImportsCheck = [ "piccolo_theme" ];
 
   meta = with lib; {
     description = "Clean and modern Sphinx theme";
     homepage = "https://piccolo-theme.readthedocs.io";
+    changelog = "https://github.com/piccolo-orm/piccolo_theme/releases/tag/${version}";
     license = with licenses; [
       mit
       asl20
     ];
     maintainers = with maintainers; [ loicreynier ];
-    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/python-modules/picos/default.nix b/pkgs/development/python-modules/picos/default.nix
index 7717cc5f0a605..5d5e715ec6486 100644
--- a/pkgs/development/python-modules/picos/default.nix
+++ b/pkgs/development/python-modules/picos/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A Python interface to conic optimization solvers";
+    description = "Python interface to conic optimization solvers";
     homepage = "https://gitlab.com/picos-api/picos";
     license = licenses.gpl3;
     maintainers = with maintainers; [ tobiasBora ];
diff --git a/pkgs/development/python-modules/pika-pool/default.nix b/pkgs/development/python-modules/pika-pool/default.nix
index c70311b694d54..42b52c525853b 100644
--- a/pkgs/development/python-modules/pika-pool/default.nix
+++ b/pkgs/development/python-modules/pika-pool/default.nix
@@ -26,6 +26,6 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/bninja/pika-pool";
     license = licenses.bsdOriginal;
-    description = "Pools for pikas.";
+    description = "Pools for pikas";
   };
 }
diff --git a/pkgs/development/python-modules/pilkit/default.nix b/pkgs/development/python-modules/pilkit/default.nix
index 8b7f47c3dc310..f8638d93578b2 100644
--- a/pkgs/development/python-modules/pilkit/default.nix
+++ b/pkgs/development/python-modules/pilkit/default.nix
@@ -42,7 +42,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pilkit" ];
 
   meta = with lib; {
-    description = "A collection of utilities and processors for the Python Imaging Library";
+    description = "Collection of utilities and processors for the Python Imaging Library";
     homepage = "https://github.com/matthewwithanm/pilkit/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ domenkozar ];
diff --git a/pkgs/development/python-modules/pillow-jpls/default.nix b/pkgs/development/python-modules/pillow-jpls/default.nix
index 5ebc80e264602..7aebaf432c001 100644
--- a/pkgs/development/python-modules/pillow-jpls/default.nix
+++ b/pkgs/development/python-modules/pillow-jpls/default.nix
@@ -78,7 +78,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pillow_jpls" ];
 
   meta = with lib; {
-    description = "A JPEG-LS plugin for the Python Pillow library";
+    description = "JPEG-LS plugin for the Python Pillow library";
     homepage = "https://github.com/planetmarshall/pillow-jpls";
     changelog = "https://github.com/planetmarshall/pillow-jpls/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/pillow-simd/default.nix b/pkgs/development/python-modules/pillow-simd/default.nix
index 39124771ee6fb..f061a17048b83 100644
--- a/pkgs/development/python-modules/pillow-simd/default.nix
+++ b/pkgs/development/python-modules/pillow-simd/default.nix
@@ -46,7 +46,7 @@ import ../pillow/generic.nix (
     meta = with lib; {
       broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
       homepage = "https://python-pillow.github.io/pillow-perf/";
-      description = "The friendly PIL fork - SIMD version";
+      description = "Friendly PIL fork - SIMD version";
       longDescription = ''
         Pillow-SIMD is "following" Pillow. Pillow-SIMD versions are 100% compatible drop-in replacements for Pillow of the same version.
 
diff --git a/pkgs/development/python-modules/pillow/default.nix b/pkgs/development/python-modules/pillow/default.nix
index fdff3709f3cda..420ed7bf53a62 100644
--- a/pkgs/development/python-modules/pillow/default.nix
+++ b/pkgs/development/python-modules/pillow/default.nix
@@ -59,7 +59,7 @@ import ./generic.nix (
 
     meta = with lib; {
       homepage = "https://python-pillow.org/";
-      description = "The friendly PIL fork (Python Imaging Library)";
+      description = "Friendly PIL fork (Python Imaging Library)";
       longDescription = ''
         The Python Imaging Library (PIL) adds image processing
         capabilities to your Python interpreter.  This library
diff --git a/pkgs/development/python-modules/pims/default.nix b/pkgs/development/python-modules/pims/default.nix
index 579035c1df5d2..ca8a72fff516b 100644
--- a/pkgs/development/python-modules/pims/default.nix
+++ b/pkgs/development/python-modules/pims/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pims";
-  version = "0.6.1";
+  version = "0.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "soft-matter";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-QdllA1QTSJ8vWaSJ0XoUanX53sb4RaOmdXBCFEsoWMU=";
+    hash = "sha256-3SBZk11w6eTZFmETMRJaYncxY38CYne1KzoF5oRgzuY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pinboard/default.nix b/pkgs/development/python-modules/pinboard/default.nix
index 6e8dacb5673a0..dd4e489defd63 100644
--- a/pkgs/development/python-modules/pinboard/default.nix
+++ b/pkgs/development/python-modules/pinboard/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Python wrapper for Pinboard.in";
+    description = "Python wrapper for Pinboard.in";
     mainProgram = "pinboard";
     maintainers = with maintainers; [ djanatyn ];
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/pinecone-client/default.nix b/pkgs/development/python-modules/pinecone-client/default.nix
index 84460718dfdb5..52acaacfb62ab 100644
--- a/pkgs/development/python-modules/pinecone-client/default.nix
+++ b/pkgs/development/python-modules/pinecone-client/default.nix
@@ -57,7 +57,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pinecone" ];
 
   meta = with lib; {
-    description = "The Pinecone python client";
+    description = "Pinecone python client";
     homepage = "https://www.pinecone.io/";
     changelog = "https://github.com/pinecone-io/pinecone-python-client/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pins/default.nix b/pkgs/development/python-modules/pins/default.nix
index 627bdd0e64e5f..30f9c503c34b1 100644
--- a/pkgs/development/python-modules/pins/default.nix
+++ b/pkgs/development/python-modules/pins/default.nix
@@ -28,7 +28,7 @@
 
 buildPythonPackage rec {
   pname = "pins";
-  version = "0.8.4";
+  version = "0.8.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -37,15 +37,15 @@ buildPythonPackage rec {
     owner = "rstudio";
     repo = "pins-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-rNIjHwFELHoxDxC/T5vPzHA6Ifjz01rJpTK6kjUxOIM=";
+    hash = "sha256-TRwdd0vxqXZgongjooJG5rzTnopUsjfl2I8z3nBocdg=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     appdirs
     fsspec
     humanize
diff --git a/pkgs/development/python-modules/pip/default.nix b/pkgs/development/python-modules/pip/default.nix
index 18b7ff1cacf8b..310de7c4c7174 100644
--- a/pkgs/development/python-modules/pip/default.nix
+++ b/pkgs/development/python-modules/pip/default.nix
@@ -97,7 +97,7 @@ buildPythonPackage rec {
   };
 
   meta = {
-    description = "The PyPA recommended tool for installing Python packages";
+    description = "PyPA recommended tool for installing Python packages";
     license = with lib.licenses; [ mit ];
     homepage = "https://pip.pypa.io/";
     changelog = "https://pip.pypa.io/en/stable/news/#v${lib.replaceStrings [ "." ] [ "-" ] version}";
diff --git a/pkgs/development/python-modules/pipdeptree/default.nix b/pkgs/development/python-modules/pipdeptree/default.nix
index 3aa70970fc65c..7414085188995 100644
--- a/pkgs/development/python-modules/pipdeptree/default.nix
+++ b/pkgs/development/python-modules/pipdeptree/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "pipdeptree";
-  version = "2.20.0";
+  version = "2.23.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "tox-dev";
     repo = "pipdeptree";
     rev = "refs/tags/${version}";
-    hash = "sha256-Mng5YUM2+T3OFrr4uGVvq5mP0aq10r21pp46tw6lLno=";
+    hash = "sha256-Er47yUaRCtTYQOhttOMIaM2EFf0l5rMH5YV1kpMCDls=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/pipenv-poetry-migrate/default.nix b/pkgs/development/python-modules/pipenv-poetry-migrate/default.nix
index 9bb75ce697c4c..38f6af66ad9d2 100644
--- a/pkgs/development/python-modules/pipenv-poetry-migrate/default.nix
+++ b/pkgs/development/python-modules/pipenv-poetry-migrate/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pipenv-poetry-migrate";
-  version = "0.5.6";
+  version = "0.5.7";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "yhino";
     repo = "pipenv-poetry-migrate";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+OkfuIwbDx6SN5lawDJZYBrjHn9rsT/FT+GQ2MOAtg0=";
+    hash = "sha256-u58+NRSV+mN6Vd1zyR2UM1rEbjZY1pNnLKSRj/JNxhU=";
   };
 
   nativeBuildInputs = [ poetry-core ];
diff --git a/pkgs/development/python-modules/pipetools/default.nix b/pkgs/development/python-modules/pipetools/default.nix
index 9003f61b28e89..8ef8830494e1e 100644
--- a/pkgs/development/python-modules/pipetools/default.nix
+++ b/pkgs/development/python-modules/pipetools/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pipetools" ];
 
   meta = {
-    description = "A library that enables function composition similar to using Unix pipes";
+    description = "Library that enables function composition similar to using Unix pipes";
     homepage = "https://0101.github.io/pipetools/";
     license = lib.licenses.mit;
   };
diff --git a/pkgs/development/python-modules/pivy/default.nix b/pkgs/development/python-modules/pivy/default.nix
index 2101b81f4826b..a5ad0d280fd81 100644
--- a/pkgs/development/python-modules/pivy/default.nix
+++ b/pkgs/development/python-modules/pivy/default.nix
@@ -62,7 +62,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/coin3d/pivy/";
-    description = "A Python binding for Coin";
+    description = "Python binding for Coin";
     license = licenses.bsd0;
     maintainers = with maintainers; [ gebner ];
   };
diff --git a/pkgs/development/python-modules/pixel-font-builder/default.nix b/pkgs/development/python-modules/pixel-font-builder/default.nix
index c38918280aa54..7033179d7370b 100644
--- a/pkgs/development/python-modules/pixel-font-builder/default.nix
+++ b/pkgs/development/python-modules/pixel-font-builder/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "pixel-font-builder";
-  version = "0.0.24";
+  version = "0.0.25";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pixel_font_builder";
     inherit version;
-    hash = "sha256-hBlTTIPx4TRgeXapVnSaKPUwseR3uYT0gcgKLGmmSZI=";
+    hash = "sha256-66mGZ7q64z+tTJSSveD7UCkTq7YXgsHTM25MqUSLfvM=";
   };
 
   pythonRelaxDeps = [ "fonttools" ];
@@ -53,7 +53,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/TakWolf/pixel-font-builder";
-    description = "A library that helps create pixel style fonts";
+    description = "Library that helps create pixel style fonts";
     platforms = lib.platforms.all;
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ h7x4 ];
diff --git a/pkgs/development/python-modules/pkgutil-resolve-name/default.nix b/pkgs/development/python-modules/pkgutil-resolve-name/default.nix
index d1117276a1df5..6c7a65e62a532 100644
--- a/pkgs/development/python-modules/pkgutil-resolve-name/default.nix
+++ b/pkgs/development/python-modules/pkgutil-resolve-name/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://pypi.org/project/pkgutil_resolve_name/";
-    description = "A backport of Python 3.9’s pkgutil.resolve_name.";
+    description = "Backport of Python 3.9’s pkgutil.resolve_name";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ yajo ];
   };
diff --git a/pkgs/development/python-modules/pkutils/default.nix b/pkgs/development/python-modules/pkutils/default.nix
index 9ad36f24c4e4d..a1f87f55e35a3 100644
--- a/pkgs/development/python-modules/pkutils/default.nix
+++ b/pkgs/development/python-modules/pkutils/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pkutils" ];
 
   meta = with lib; {
-    description = "A Python packaging utility library";
+    description = "Python packaging utility library";
     homepage = "https://github.com/reubano/pkutils/";
     license = licenses.mit;
     maintainers = with maintainers; [ drewrisinger ];
diff --git a/pkgs/development/python-modules/playwrightcapture/default.nix b/pkgs/development/python-modules/playwrightcapture/default.nix
index 6f36ec98ba899..e8d6af86ca19f 100644
--- a/pkgs/development/python-modules/playwrightcapture/default.nix
+++ b/pkgs/development/python-modules/playwrightcapture/default.nix
@@ -23,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "playwrightcapture";
-  version = "1.24.10";
+  version = "1.24.11";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     owner = "Lookyloo";
     repo = "PlaywrightCapture";
     rev = "refs/tags/v${version}";
-    hash = "sha256-kjh0ZrFS0jb4CYJfDosLiRffsVzF3/EWPYidBrhStIU=";
+    hash = "sha256-aDD+eovq6V7c69ORqekcfmDgTGJqvd2lYMIQ2+9TFYY=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/plotly/default.nix b/pkgs/development/python-modules/plotly/default.nix
index 541155fcf4ffc..98ade26c76949 100644
--- a/pkgs/development/python-modules/plotly/default.nix
+++ b/pkgs/development/python-modules/plotly/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "plotly";
-  version = "5.21.0";
+  version = "5.22.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-aSQ/jBZdS+JsDfHG8LeyWOLf7v4DJ2NAStfn+318IHM=";
+    hash = "sha256-hZ/a29hrV3CuJGblQrdhskfRxrSdrtdluVu4xwY+dGk=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pluginbase/default.nix b/pkgs/development/python-modules/pluginbase/default.nix
index 2ce4b65cd20a0..cc330ac93f9b6 100644
--- a/pkgs/development/python-modules/pluginbase/default.nix
+++ b/pkgs/development/python-modules/pluginbase/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/mitsuhiko/pluginbase";
-    description = "A support library for building plugins sytems in Python";
+    description = "Support library for building plugins sytems in Python";
     license = licenses.bsd3;
     platforms = platforms.all;
   };
diff --git a/pkgs/development/python-modules/plugnplay/default.nix b/pkgs/development/python-modules/plugnplay/default.nix
index 8ccc27e2145f9..4882641e538ea 100644
--- a/pkgs/development/python-modules/plugnplay/default.nix
+++ b/pkgs/development/python-modules/plugnplay/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "plugnplay" ];
 
   meta = with lib; {
-    description = "A Generic plug-in system for python applications";
+    description = "Generic plug-in system for python applications";
     homepage = "https://github.com/daltonmatos/plugnplay";
     license = licenses.gpl2Only;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/plugp100/default.nix b/pkgs/development/python-modules/plugp100/default.nix
new file mode 100644
index 0000000000000..cd2c09467ffd3
--- /dev/null
+++ b/pkgs/development/python-modules/plugp100/default.nix
@@ -0,0 +1,51 @@
+{
+  stdenv,
+  pkgs,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  certifi,
+  scapy,
+  urllib3,
+  semantic-version,
+  aiohttp,
+  jsons,
+  requests,
+  # Test inputs
+  pytestCheckHook,
+  pyyaml,
+  pytest-asyncio,
+  async-timeout,
+  }:
+
+buildPythonPackage rec {
+  pname = "plugp100";
+  version = "5.1.3";
+
+  src = fetchFromGitHub {
+    owner = "petretiandrea";
+    repo = "plugp100";
+    rev = version;
+    sha256 = "sha256-V+9cVBMN8H4oFU51T9BDrLF46xgQHqIsMj8nuPedUGA=";
+  };
+
+  propagatedBuildInputs =
+    [ certifi jsons requests aiohttp semantic-version scapy urllib3 pyyaml ];
+
+  nativeCheckInputs = [ pytestCheckHook pytest-asyncio async-timeout ];
+
+  disabledTestPaths = [
+    "tests/integration/"
+    "tests/unit/hub_child/"
+    "tests/unit/test_plug_strip.py"
+    "tests/unit/test_hub.py "
+    "tests/unit/test_klap_protocol.py"
+  ];
+
+  meta = with lib; {
+    description = "Python library to control Tapo Plug P100 devices";
+    homepage = "https://github.com/petretiandrea/plugp100";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ pyle ];
+  };
+}
diff --git a/pkgs/development/python-modules/plugwise/default.nix b/pkgs/development/python-modules/plugwise/default.nix
index eb9711c6ebd63..75c281ae22b9f 100644
--- a/pkgs/development/python-modules/plugwise/default.nix
+++ b/pkgs/development/python-modules/plugwise/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "plugwise";
-  version = "0.37.8";
+  version = "0.38.3";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "plugwise";
     repo = "python-plugwise";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Mh4BZ0Gnsy046I537R4SZ/rC9Jm7XjF0slAP/0e5Ov8=";
+    hash = "sha256-DFHKycFWtR8moLyGaiDVqnrlg+ydgR8/UVgkUpzqAuY=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/plux/default.nix b/pkgs/development/python-modules/plux/default.nix
index 5c0d6d1fb28c3..c889943748000 100644
--- a/pkgs/development/python-modules/plux/default.nix
+++ b/pkgs/development/python-modules/plux/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   pytestCheckHook,
   setuptools,
   stevedore,
diff --git a/pkgs/development/python-modules/plyer/default.nix b/pkgs/development/python-modules/plyer/default.nix
index 1bc2ff92675e7..6a77e4a56005a 100644
--- a/pkgs/development/python-modules/plyer/default.nix
+++ b/pkgs/development/python-modules/plyer/default.nix
@@ -3,7 +3,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   keyring,
   mock,
   pytestCheckHook,
diff --git a/pkgs/development/python-modules/plyplus/default.nix b/pkgs/development/python-modules/plyplus/default.nix
index c27e110f69af7..53761eb0a4d09 100644
--- a/pkgs/development/python-modules/plyplus/default.nix
+++ b/pkgs/development/python-modules/plyplus/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/erezsh/plyplus";
-    description = "A general-purpose parser built on top of PLY";
+    description = "General-purpose parser built on top of PLY";
     maintainers = with lib.maintainers; [ twey ];
     license = lib.licenses.mit;
   };
diff --git a/pkgs/development/python-modules/pmdarima/default.nix b/pkgs/development/python-modules/pmdarima/default.nix
index 094fd7984f9cd..0b03e9bcf6bb4 100644
--- a/pkgs/development/python-modules/pmdarima/default.nix
+++ b/pkgs/development/python-modules/pmdarima/default.nix
@@ -61,7 +61,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pmdarima" ];
 
   meta = with lib; {
-    description = "A statistical library designed to fill the void in Python's time series analysis capabilities, including the equivalent of R's auto.arima function";
+    description = "Statistical library designed to fill the void in Python's time series analysis capabilities, including the equivalent of R's auto.arima function";
     homepage = "https://github.com/alkaline-ml/pmdarima";
     changelog = "https://github.com/alkaline-ml/pmdarima/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pmw/default.nix b/pkgs/development/python-modules/pmw/default.nix
index b9eeab8f9dd77..98988926b21e4 100644
--- a/pkgs/development/python-modules/pmw/default.nix
+++ b/pkgs/development/python-modules/pmw/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = {
-    description = "A toolkit for building high-level compound widgets in Python using the Tkinter module";
+    description = "Toolkit for building high-level compound widgets in Python using the Tkinter module";
     homepage = "https://pmw.sourceforge.net/";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ mounium ];
diff --git a/pkgs/development/python-modules/pnglatex/default.nix b/pkgs/development/python-modules/pnglatex/default.nix
index 9b0ddae8c81d9..a46359bf76e52 100644
--- a/pkgs/development/python-modules/pnglatex/default.nix
+++ b/pkgs/development/python-modules/pnglatex/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/MaT1g3R/pnglatex";
-    description = "a small program that converts LaTeX snippets to png";
+    description = "Small program that converts LaTeX snippets to png";
     mainProgram = "pnglatex";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/pkgs/development/python-modules/poetry-semver/default.nix b/pkgs/development/python-modules/poetry-semver/default.nix
index 043a727828ab9..df4ef9c76f0e0 100644
--- a/pkgs/development/python-modules/poetry-semver/default.nix
+++ b/pkgs/development/python-modules/poetry-semver/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A semantic versioning library for Python.";
+    description = "Semantic versioning library for Python";
     homepage = "https://github.com/python-poetry/semver";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
diff --git a/pkgs/development/python-modules/polib/default.nix b/pkgs/development/python-modules/polib/default.nix
index f74bd2f23503b..c4f4726c5e891 100644
--- a/pkgs/development/python-modules/polib/default.nix
+++ b/pkgs/development/python-modules/polib/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A library to manipulate gettext files (po and mo files)";
+    description = "Library to manipulate gettext files (po and mo files)";
     homepage = "https://bitbucket.org/izi/polib/";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/polyswarm-api/default.nix b/pkgs/development/python-modules/polyswarm-api/default.nix
index cde3bcc8ca347..64aa9d27933ba 100644
--- a/pkgs/development/python-modules/polyswarm-api/default.nix
+++ b/pkgs/development/python-modules/polyswarm-api/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "polyswarm-api";
-  version = "3.6.0";
+  version = "3.7.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "polyswarm";
     repo = "polyswarm-api";
     rev = "refs/tags/${version}";
-    hash = "sha256-iY0I5z+aDLQekjgHT5v/ZprCkCgNPkyImmmaCQgnoYc=";
+    hash = "sha256-zEh8qus/+3mcAaY+SK6FLT6wB6UtGLKPoR1WVZdn9vM=";
   };
 
   pythonRelaxDeps = [ "future" ];
diff --git a/pkgs/development/python-modules/pooch/default.nix b/pkgs/development/python-modules/pooch/default.nix
index 91d277062392d..3aec7fe45c56b 100644
--- a/pkgs/development/python-modules/pooch/default.nix
+++ b/pkgs/development/python-modules/pooch/default.nix
@@ -72,7 +72,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A friend to fetch your data files.";
+    description = "Friend to fetch your data files";
     homepage = "https://github.com/fatiando/pooch";
     license = licenses.bsd3;
     maintainers = with maintainers; [ GuillaumeDesforges ];
diff --git a/pkgs/development/python-modules/portalocker/default.nix b/pkgs/development/python-modules/portalocker/default.nix
index 39d8a8e981e96..5092394d6af0f 100644
--- a/pkgs/development/python-modules/portalocker/default.nix
+++ b/pkgs/development/python-modules/portalocker/default.nix
@@ -48,7 +48,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/wolph/portalocker/releases/tag/v${version}";
-    description = "A library to provide an easy API to file locking";
+    description = "Library to provide an easy API to file locking";
     homepage = "https://github.com/WoLpH/portalocker";
     license = licenses.psfl;
     maintainers = with maintainers; [ jonringer ];
diff --git a/pkgs/development/python-modules/potr/default.nix b/pkgs/development/python-modules/potr/default.nix
index 4ead458882d90..f6e6f72755f89 100644
--- a/pkgs/development/python-modules/potr/default.nix
+++ b/pkgs/development/python-modules/potr/default.nix
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ pycrypto ];
 
   meta = with lib; {
-    description = "A pure Python OTR implementation";
+    description = "Pure Python OTR implementation";
     homepage = "http://python-otr.pentabarf.de/";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/powerline-mem-segment/default.nix b/pkgs/development/python-modules/powerline-mem-segment/default.nix
index 3e28906178095..99a38c7d6248b 100644
--- a/pkgs/development/python-modules/powerline-mem-segment/default.nix
+++ b/pkgs/development/python-modules/powerline-mem-segment/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "powerlinemem" ];
 
   meta = with lib; {
-    description = "Segment for Powerline showing the current memory usage in percent or absolute values.";
+    description = "Segment for Powerline showing the current memory usage in percent or absolute values";
     homepage = "https://github.com/mKaloer/powerline_mem_segment";
     license = licenses.asl20;
     maintainers = with maintainers; [ thomasjm ];
diff --git a/pkgs/development/python-modules/powerline/default.nix b/pkgs/development/python-modules/powerline/default.nix
index ed69345861215..6578c6f435596 100644
--- a/pkgs/development/python-modules/powerline/default.nix
+++ b/pkgs/development/python-modules/powerline/default.nix
@@ -51,7 +51,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/powerline/powerline";
-    description = "The ultimate statusline/prompt utility";
+    description = "Ultimate statusline/prompt utility";
     license = lib.licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/poyo/default.nix b/pkgs/development/python-modules/poyo/default.nix
index c3d1e18ed80b2..6b18f11fd5caf 100644
--- a/pkgs/development/python-modules/poyo/default.nix
+++ b/pkgs/development/python-modules/poyo/default.nix
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/hackebrot/poyo";
-    description = "A lightweight YAML Parser for Python";
+    description = "Lightweight YAML Parser for Python";
     license = licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/pplpy/default.nix b/pkgs/development/python-modules/pplpy/default.nix
index 6c1e7d193dbdd..98f97f9466ae7 100644
--- a/pkgs/development/python-modules/pplpy/default.nix
+++ b/pkgs/development/python-modules/pplpy/default.nix
@@ -66,7 +66,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A Python wrapper for ppl";
+    description = "Python wrapper for ppl";
     homepage = "https://gitlab.com/videlec/pplpy";
     maintainers = teams.sage.members;
     license = licenses.gpl3;
diff --git a/pkgs/development/python-modules/pprintpp/default.nix b/pkgs/development/python-modules/pprintpp/default.nix
index 0e058cab0560c..cd7e115d5aff2 100644
--- a/pkgs/development/python-modules/pprintpp/default.nix
+++ b/pkgs/development/python-modules/pprintpp/default.nix
@@ -57,7 +57,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A drop-in replacement for pprint that's actually pretty";
+    description = "Drop-in replacement for pprint that's actually pretty";
     homepage = "https://github.com/wolever/pprintpp";
     changelog = "https://github.com/wolever/pprintpp/blob/${version}/CHANGELOG.txt";
     license = licenses.bsd2;
diff --git a/pkgs/development/python-modules/ppscore/default.nix b/pkgs/development/python-modules/ppscore/default.nix
index 5593205dba6fb..f523ffce1c82d 100644
--- a/pkgs/development/python-modules/ppscore/default.nix
+++ b/pkgs/development/python-modules/ppscore/default.nix
@@ -2,6 +2,7 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+  pythonRelaxDepsHook,
   setuptools,
   pandas,
   pytestCheckHook,
@@ -23,7 +24,10 @@ buildPythonPackage rec {
     hash = "sha256-gJStsL8fN17kvXO8EH/NHGIBelPknJzYw5WEvHsFooU=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+    setuptools
+  ];
 
   propagatedBuildInputs = [
     pandas
@@ -32,6 +36,8 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ pytestCheckHook ];
 
+  pythonRelaxDeps = [ "pandas" ];
+
   pythonImportsCheck = [ "ppscore" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/priority/default.nix b/pkgs/development/python-modules/priority/default.nix
index 6ef47395e469e..5ba1bd0113127 100644
--- a/pkgs/development/python-modules/priority/default.nix
+++ b/pkgs/development/python-modules/priority/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A pure-Python implementation of the HTTP/2 priority tree";
+    description = "Pure-Python implementation of the HTTP/2 priority tree";
     homepage = "https://github.com/python-hyper/priority/";
     license = licenses.mit;
     maintainers = with maintainers; [ qyliss ];
diff --git a/pkgs/development/python-modules/prometheus-api-client/default.nix b/pkgs/development/python-modules/prometheus-api-client/default.nix
index 4319a62ea8a7f..27b3df9700a48 100644
--- a/pkgs/development/python-modules/prometheus-api-client/default.nix
+++ b/pkgs/development/python-modules/prometheus-api-client/default.nix
@@ -40,7 +40,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "prometheus_api_client" ];
 
   meta = with lib; {
-    description = "A Python wrapper for the Prometheus HTTP API";
+    description = "Python wrapper for the Prometheus HTTP API";
     longDescription = ''
       The prometheus-api-client library consists of multiple modules which
       assist in connecting to a Prometheus host, fetching the required metrics
diff --git a/pkgs/development/python-modules/prompthub-py/default.nix b/pkgs/development/python-modules/prompthub-py/default.nix
index efd1cdd3ec4ab..8becc3b2ac300 100644
--- a/pkgs/development/python-modules/prompthub-py/default.nix
+++ b/pkgs/development/python-modules/prompthub-py/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage {
   ];
 
   meta = with lib; {
-    description = "A simple client to fetch prompts from Prompt Hub using its REST API.";
+    description = "Simple client to fetch prompts from Prompt Hub using its REST API";
     homepage = "https://github.com/deepset-ai/prompthub-py";
     changelog = "https://github.com/deepset-ai/prompthub-py/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/prophet/default.nix b/pkgs/development/python-modules/prophet/default.nix
index 5a5f511fd305e..8f33fc7aa808d 100644
--- a/pkgs/development/python-modules/prophet/default.nix
+++ b/pkgs/development/python-modules/prophet/default.nix
@@ -66,7 +66,7 @@ buildPythonPackage rec {
 
   meta = {
     changelog = "https://github.com/facebook/prophet/releases/tag/${src.rev}";
-    description = "A tool for producing high quality forecasts for time series data that has multiple seasonality with linear or non-linear growth";
+    description = "Tool for producing high quality forecasts for time series data that has multiple seasonality with linear or non-linear growth";
     homepage = "https://facebook.github.io/prophet/";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ tomasajt ];
diff --git a/pkgs/development/python-modules/propka/default.nix b/pkgs/development/python-modules/propka/default.nix
index a96acf64f7a78..e9b93b3904679 100644
--- a/pkgs/development/python-modules/propka/default.nix
+++ b/pkgs/development/python-modules/propka/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "propka" ];
 
   meta = with lib; {
-    description = "A predictor of the pKa values of ionizable groups in proteins and protein-ligand complexes based in the 3D structure";
+    description = "Predictor of the pKa values of ionizable groups in proteins and protein-ligand complexes based in the 3D structure";
     mainProgram = "propka3";
     homepage = "https://github.com/jensengroup/propka";
     changelog = "https://github.com/jensengroup/propka/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/protobuf3-to-dict/default.nix b/pkgs/development/python-modules/protobuf3-to-dict/default.nix
index fcbc5804d18fe..e613c1d23eb28 100644
--- a/pkgs/development/python-modules/protobuf3-to-dict/default.nix
+++ b/pkgs/development/python-modules/protobuf3-to-dict/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A teeny Python library for creating Python dicts from protocol buffers and the reverse";
+    description = "Teeny Python library for creating Python dicts from protocol buffers and the reverse";
     homepage = "https://github.com/kaporzhu/protobuf-to-dict";
     license = licenses.publicDomain;
     maintainers = with maintainers; [ nequissimus ];
diff --git a/pkgs/development/python-modules/prox-tv/default.nix b/pkgs/development/python-modules/prox-tv/default.nix
index 030e5efef9c3a..bd8219751872e 100644
--- a/pkgs/development/python-modules/prox-tv/default.nix
+++ b/pkgs/development/python-modules/prox-tv/default.nix
@@ -45,7 +45,7 @@ buildPythonPackage {
 
   meta = with lib; {
     homepage = "https://github.com/albarji/proxTV";
-    description = "A toolbox for fast Total Variation proximity operators";
+    description = "Toolbox for fast Total Variation proximity operators";
     license = licenses.bsd2;
     maintainers = with maintainers; [ multun ];
   };
diff --git a/pkgs/development/python-modules/proxy-py/default.nix b/pkgs/development/python-modules/proxy-py/default.nix
index 384dd6c1ec080..6a09b16a5cd9c 100644
--- a/pkgs/development/python-modules/proxy-py/default.nix
+++ b/pkgs/development/python-modules/proxy-py/default.nix
@@ -4,7 +4,6 @@
   bash,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   gnumake,
   h2,
   hpack,
diff --git a/pkgs/development/python-modules/psd-tools/default.nix b/pkgs/development/python-modules/psd-tools/default.nix
index 9250aaacc4718..1f28bf2a244d9 100644
--- a/pkgs/development/python-modules/psd-tools/default.nix
+++ b/pkgs/development/python-modules/psd-tools/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "psd-tools";
-  version = "1.9.32";
+  version = "1.9.33";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "psd-tools";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-H235bZOzTxmmLEFje8hhYxrN4l1S34tD1LMhsymRy9w=";
+    hash = "sha256-4Y4VLfGwopfeIppxwvGKSuelUDAXg67rM/ES9BrTP24=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/psrpcore/default.nix b/pkgs/development/python-modules/psrpcore/default.nix
index 102d9ce9b7c0c..72c8da5f54078 100644
--- a/pkgs/development/python-modules/psrpcore/default.nix
+++ b/pkgs/development/python-modules/psrpcore/default.nix
@@ -1,5 +1,6 @@
 {
   lib,
+  stdenv,
   buildPythonPackage,
   cryptography,
   fetchFromGitHub,
@@ -42,5 +43,6 @@ buildPythonPackage rec {
     changelog = "https://github.com/jborean93/psrpcore/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/python-modules/psycopg2cffi/default.nix b/pkgs/development/python-modules/psycopg2cffi/default.nix
index ee7478e52594f..b8c86c970a841 100644
--- a/pkgs/development/python-modules/psycopg2cffi/default.nix
+++ b/pkgs/development/python-modules/psycopg2cffi/default.nix
@@ -59,7 +59,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "psycopg2cffi" ];
 
   meta = with lib; {
-    description = "An implementation of the psycopg2 module using cffi";
+    description = "Implementation of the psycopg2 module using cffi";
     homepage = "https://pypi.org/project/psycopg2cffi/";
     license = with licenses; [ lgpl3Plus ];
     maintainers = with maintainers; [ lovesegfault ];
diff --git a/pkgs/development/python-modules/ptable/default.nix b/pkgs/development/python-modules/ptable/default.nix
index 32f56a5bbec26..8847ef8a1bdc8 100644
--- a/pkgs/development/python-modules/ptable/default.nix
+++ b/pkgs/development/python-modules/ptable/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage {
 
   meta = with lib; {
     homepage = "https://github.com/kxxoling/PTable";
-    description = "A simple Python library designed to make it quick and easy to represent tabular data in visually appealing ASCII tables";
+    description = "Simple Python library designed to make it quick and easy to represent tabular data in visually appealing ASCII tables";
     mainProgram = "ptable";
     license = licenses.bsd3;
     maintainers = [ maintainers.mmahut ];
diff --git a/pkgs/development/python-modules/ptpython/default.nix b/pkgs/development/python-modules/ptpython/default.nix
index fdacceff4ad35..bd920162aad42 100644
--- a/pkgs/development/python-modules/ptpython/default.nix
+++ b/pkgs/development/python-modules/ptpython/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "ptpython";
-  version = "3.0.26";
+  version = "3.0.27";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-yPsUBlAtw0nZnFfq8G5xFvOy3qyU8C80K65ocIkJ90M=";
+    hash = "sha256-JLD9qUtz0cmaJ+b9DQi+by582nmi25lcfjx7ixJUutk=";
   };
 
   propagatedBuildInputs = [
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ptpython" ];
 
   meta = with lib; {
-    description = "An advanced Python REPL";
+    description = "Advanced Python REPL";
     homepage = "https://github.com/prompt-toolkit/ptpython";
     changelog = "https://github.com/prompt-toolkit/ptpython/blob/${version}/CHANGELOG";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/ptyprocess/default.nix b/pkgs/development/python-modules/ptyprocess/default.nix
index 7cdc7aebeba35..e707086e259cb 100644
--- a/pkgs/development/python-modules/ptyprocess/default.nix
+++ b/pkgs/development/python-modules/ptyprocess/default.nix
@@ -28,17 +28,17 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [ flit-core ];
+  build-system = [ flit-core ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "ptyprocess" ];
 
-  meta = with lib; {
+  meta = {
     description = "Run a subprocess in a pseudo terminal";
     homepage = "https://github.com/pexpect/ptyprocess";
     changelog = "https://github.com/pexpect/ptyprocess/releases/tag/${version}";
-    license = licenses.isc;
-    maintainers = with maintainers; [ ];
+    license = lib.licenses.isc;
+    maintainers = with lib.maintainers; [ getchoo ];
   };
 }
diff --git a/pkgs/development/python-modules/publicsuffixlist/default.nix b/pkgs/development/python-modules/publicsuffixlist/default.nix
index a693890d45668..9d594dbede783 100644
--- a/pkgs/development/python-modules/publicsuffixlist/default.nix
+++ b/pkgs/development/python-modules/publicsuffixlist/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "publicsuffixlist";
-  version = "0.10.0.20240515";
+  version = "0.10.1.20240618";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-0BlbqefYDjYRIWv5UgjTRInD12l1wGp+nnwJBE5vbXs=";
+    hash = "sha256-+wJoH/vCwNPmQlQfikDmnqbNQlMLA315N+U4Yvy/mMw=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/pudb/default.nix b/pkgs/development/python-modules/pudb/default.nix
index 31289a36c01f7..cfafbc0fb7a67 100644
--- a/pkgs/development/python-modules/pudb/default.nix
+++ b/pkgs/development/python-modules/pudb/default.nix
@@ -42,7 +42,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pudb" ];
 
   meta = with lib; {
-    description = "A full-screen, console-based Python debugger";
+    description = "Full-screen, console-based Python debugger";
     mainProgram = "pudb";
     homepage = "https://github.com/inducer/pudb";
     changelog = "https://github.com/inducer/pudb/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/pulumi-aws/default.nix b/pkgs/development/python-modules/pulumi-aws/default.nix
index 1cdaf24ae2a0c..9d1da8ffdf180 100644
--- a/pkgs/development/python-modules/pulumi-aws/default.nix
+++ b/pkgs/development/python-modules/pulumi-aws/default.nix
@@ -12,7 +12,7 @@
 buildPythonPackage rec {
   pname = "pulumi-aws";
   # Version is independant of pulumi's.
-  version = "6.37.0";
+  version = "6.38.0";
 
   pyproject = true;
   build-system = [ setuptools ];
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "pulumi";
     repo = "pulumi-aws";
     rev = "refs/tags/v${version}";
-    hash = "sha256-jThsT+OBBl3RQKLTxobXqgSlcyxYo5ZYsm+VaEwAJAk=";
+    hash = "sha256-sV8Gt8EZ1LPzRbnFoVIWjykiFK04UWQAjuF7hAmJBPk=";
   };
 
   sourceRoot = "${src.name}/sdk/python";
diff --git a/pkgs/development/python-modules/puremagic/default.nix b/pkgs/development/python-modules/puremagic/default.nix
index fc54dbdaa6ec1..b3bcbbacec39c 100644
--- a/pkgs/development/python-modules/puremagic/default.nix
+++ b/pkgs/development/python-modules/puremagic/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "puremagic";
-  version = "1.23";
+  version = "1.24";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "cdgriffith";
     repo = "puremagic";
     rev = "refs/tags/${version}";
-    hash = "sha256-DhOTx4Zpux2IiHkw/0nWwWfpnoqxrqqMJw4hrS4ZNGE=";
+    hash = "sha256-omVSSxMAQQm+Sy023xIGBYm55qrb1dbds1Jj9WCtNfw=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/pushbullet-py/default.nix b/pkgs/development/python-modules/pushbullet-py/default.nix
index a4e2c5d3da5e3..0b986dff66361 100644
--- a/pkgs/development/python-modules/pushbullet-py/default.nix
+++ b/pkgs/development/python-modules/pushbullet-py/default.nix
@@ -49,7 +49,7 @@ buildPythonPackage rec {
     ];
 
   meta = with lib; {
-    description = "A simple python client for pushbullet.com";
+    description = "Simple python client for pushbullet.com";
     homepage = "https://github.com/randomchars/pushbullet.py";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/pushover-complete/default.nix b/pkgs/development/python-modules/pushover-complete/default.nix
index 3a5059cce7d98..bd53166c58ff7 100644
--- a/pkgs/development/python-modules/pushover-complete/default.nix
+++ b/pkgs/development/python-modules/pushover-complete/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pushover_complete" ];
 
   meta = with lib; {
-    description = "A Python package for interacting with *all* aspects of the Pushover API";
+    description = "Python package for interacting with *all* aspects of the Pushover API";
     homepage = "https://github.com/scolby33/pushover_complete";
     license = licenses.mit;
     maintainers = [ maintainers.mic92 ];
diff --git a/pkgs/development/python-modules/py-air-control/default.nix b/pkgs/development/python-modules/py-air-control/default.nix
index 03eb3d3edd29f..73cac52da8284 100644
--- a/pkgs/development/python-modules/py-air-control/default.nix
+++ b/pkgs/development/python-modules/py-air-control/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "Command Line App for Controlling Philips Air Purifiers.";
+    description = "Command Line App for Controlling Philips Air Purifiers";
     license = licenses.mit;
     maintainers = with maintainers; [ urbas ];
   };
diff --git a/pkgs/development/python-modules/py-canary/default.nix b/pkgs/development/python-modules/py-canary/default.nix
index 44db50c93bfe5..ecfb6a8d072af 100644
--- a/pkgs/development/python-modules/py-canary/default.nix
+++ b/pkgs/development/python-modules/py-canary/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "py-canary";
-  version = "0.5.3";
+  version = "0.5.4";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "snjoetw";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-873XAf0jOX5pjrNRELEcTWCauk80FUYxTu7G7jc3MHE=";
+    hash = "sha256-zylWkssU85eSfR+Di7vQGTr6hOQkqXCObv/PCDHoKHA=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/py-deprecate/default.nix b/pkgs/development/python-modules/py-deprecate/default.nix
index 376bf132f17b5..c6c2c62ee0416 100644
--- a/pkgs/development/python-modules/py-deprecate/default.nix
+++ b/pkgs/development/python-modules/py-deprecate/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage {
   pythonImportsCheck = [ "deprecate" ];
 
   meta = with lib; {
-    description = "A module for marking deprecated functions or classes and re-routing to the new successors' instance. Used by torchmetrics";
+    description = "Module for marking deprecated functions or classes and re-routing to the new successors' instance. Used by torchmetrics";
     homepage = "https://borda.github.io/pyDeprecate/";
     license = licenses.asl20;
     maintainers = with maintainers; [ SomeoneSerge ];
diff --git a/pkgs/development/python-modules/py-lru-cache/default.nix b/pkgs/development/python-modules/py-lru-cache/default.nix
index e49c685cbe7be..a9d7488695017 100644
--- a/pkgs/development/python-modules/py-lru-cache/default.nix
+++ b/pkgs/development/python-modules/py-lru-cache/default.nix
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "An in-memory LRU cache for python";
+    description = "In-memory LRU cache for python";
     homepage = "https://github.com/stucchio/Python-LRU-cache";
     license = licenses.gpl3;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/py-partiql-parser/default.nix b/pkgs/development/python-modules/py-partiql-parser/default.nix
index 7dd7e6c739dec..f3978e4fb6957 100644
--- a/pkgs/development/python-modules/py-partiql-parser/default.nix
+++ b/pkgs/development/python-modules/py-partiql-parser/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "py_partiql_parser" ];
 
   meta = with lib; {
-    description = "A tokenizer/parser/executor for the PartiQL-language";
+    description = "Tokenizer/parser/executor for the PartiQL-language";
     homepage = "https://github.com/getmoto/py-partiql-parser";
     changelog = "https://github.com/getmoto/py-partiql-parser/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/py-pdf-parser/default.nix b/pkgs/development/python-modules/py-pdf-parser/default.nix
index f9556b698e277..2cc04d82a445f 100644
--- a/pkgs/development/python-modules/py-pdf-parser/default.nix
+++ b/pkgs/development/python-modules/py-pdf-parser/default.nix
@@ -48,7 +48,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A tool to help extracting information from structured PDFs";
+    description = "Tool to help extracting information from structured PDFs";
     homepage = "https://github.com/jstockwin/py-pdf-parser";
     changelog = "https://github.com/jstockwin/py-pdf-parser/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/py-slvs/default.nix b/pkgs/development/python-modules/py-slvs/default.nix
new file mode 100644
index 0000000000000..775de5a238bd1
--- /dev/null
+++ b/pkgs/development/python-modules/py-slvs/default.nix
@@ -0,0 +1,50 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  swig,
+  cmake,
+  ninja,
+  setuptools,
+  scikit-build,
+}:
+
+buildPythonPackage rec {
+  pname = "py-slvs";
+  version = "1.0.6";
+
+  src = fetchPypi {
+    pname = "py_slvs";
+    inherit version;
+    sha256 = "sha256-U6T/aXy0JTC1ptL5oBmch0ytSPmIkRA8XOi31NpArnI=";
+  };
+
+  pyproject = true;
+
+  nativeBuildInputs = [
+    swig
+  ];
+
+  build-system = [
+    cmake
+    ninja
+    setuptools
+    scikit-build
+  ];
+
+  dontUseCmakeConfigure = true;
+
+  pythonImportsCheck = [
+    "py_slvs"
+  ];
+
+  meta = {
+    description = "Python binding of SOLVESPACE geometry constraint solver";
+    homepage = "https://github.com/realthunder/slvs_py";
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [
+      traverseda
+    ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/py-sonic/default.nix b/pkgs/development/python-modules/py-sonic/default.nix
index af1315834fa44..5120e8a77b038 100644
--- a/pkgs/development/python-modules/py-sonic/default.nix
+++ b/pkgs/development/python-modules/py-sonic/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/crustymonkey/py-sonic";
-    description = "A python wrapper library for the Subsonic REST API";
+    description = "Python wrapper library for the Subsonic REST API";
     license = licenses.gpl3;
     maintainers = with maintainers; [ wenngle ];
   };
diff --git a/pkgs/development/python-modules/py-sr25519-bindings/default.nix b/pkgs/development/python-modules/py-sr25519-bindings/default.nix
index 04a037cd9a9bd..51915de513a78 100644
--- a/pkgs/development/python-modules/py-sr25519-bindings/default.nix
+++ b/pkgs/development/python-modules/py-sr25519-bindings/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   fetchFromGitHub,
-  fetchpatch,
   buildPythonPackage,
   pythonOlder,
   pytestCheckHook,
diff --git a/pkgs/development/python-modules/py-synologydsm-api/default.nix b/pkgs/development/python-modules/py-synologydsm-api/default.nix
index a6c8f33c64129..e81173c5cae00 100644
--- a/pkgs/development/python-modules/py-synologydsm-api/default.nix
+++ b/pkgs/development/python-modules/py-synologydsm-api/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "py-synologydsm-api";
-  version = "2.4.3";
+  version = "2.4.4";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "mib1185";
     repo = "py-synologydsm-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-KhYK72kIPeZ32bdJ+3j8rcq/LIrcuELQD+/OQYhktog=";
+    hash = "sha256-46KoOKBiulTYH2x8ftFPVDF0oeBG1Pe9PkonxIV7528=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/py3status/default.nix b/pkgs/development/python-modules/py3status/default.nix
index 7f838e5cd983f..d21e806016210 100644
--- a/pkgs/development/python-modules/py3status/default.nix
+++ b/pkgs/development/python-modules/py3status/default.nix
@@ -25,12 +25,12 @@
 
 buildPythonPackage rec {
   pname = "py3status";
-  version = "3.57";
+  version = "3.58";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-6l0l7sbPspdF/TYTOKaWsgOdpfDUs0PyFVKGUBNPwIA=";
+    hash = "sha256-SJScEz9WsqB0jRAHmUHpmnAbuqnRnHUUgc1rDN0tScw=";
   };
 
   nativeBuildInputs = [ hatchling ];
diff --git a/pkgs/development/python-modules/py4j/default.nix b/pkgs/development/python-modules/py4j/default.nix
index e49524d0ae6d5..9433dbdf37e3b 100644
--- a/pkgs/development/python-modules/py4j/default.nix
+++ b/pkgs/development/python-modules/py4j/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "Py4J enables Python programs running in a Python interpreter to dynamically access Java objects in a Java Virtual Machine. Methods are called as if the Java objects resided in the Python interpreter and Java collections can be accessed through standard Python collection methods. Py4J also enables Java programs to call back Python objects.";
+    description = "Py4J enables Python programs running in a Python interpreter to dynamically access Java objects in a Java Virtual Machine. Methods are called as if the Java objects resided in the Python interpreter and Java collections can be accessed through standard Python collection methods. Py4J also enables Java programs to call back Python objects";
     homepage = "https://www.py4j.org/";
     sourceProvenance = with sourceTypes; [
       fromSource
diff --git a/pkgs/development/python-modules/pyTelegramBotAPI/default.nix b/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
index 9659da0e0aaa0..e5f32b9507560 100644
--- a/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
+++ b/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "pytelegrambotapi";
-  version = "4.18.0";
+  version = "4.19.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "eternnoir";
     repo = "pyTelegramBotAPI";
     rev = "refs/tags/${version}";
-    hash = "sha256-MlKLLLoEbB+ju+ewYDSEUCLVpCt+MsRKzTDVDuxDr8I=";
+    hash = "sha256-vyhX6TG3B6f1u49ngzdaCOZwSnEUQ2XMiq80bqCSmxU=";
   };
 
   build-system = [ hatchling ];
diff --git a/pkgs/development/python-modules/pyahocorasick/default.nix b/pkgs/development/python-modules/pyahocorasick/default.nix
index 9ae189019fcb0..51ec19016c776 100644
--- a/pkgs/development/python-modules/pyahocorasick/default.nix
+++ b/pkgs/development/python-modules/pyahocorasick/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   pytestCheckHook,
   pythonOlder,
 }:
diff --git a/pkgs/development/python-modules/pyannote-metrics/default.nix b/pkgs/development/python-modules/pyannote-metrics/default.nix
index f5623e28b4404..314cc5110cf15 100644
--- a/pkgs/development/python-modules/pyannote-metrics/default.nix
+++ b/pkgs/development/python-modules/pyannote-metrics/default.nix
@@ -1,19 +1,20 @@
 {
   lib,
   buildPythonPackage,
+  docopt,
   fetchFromGitHub,
-  setuptools,
-  wheel,
+  matplotlib,
+  numpy,
+  pandas,
   pyannote-core,
   pyannote-database,
-  pandas,
-  scipy,
+  pythonOlder,
   scikit-learn,
-  docopt,
-  tabulate,
-  matplotlib,
+  scipy,
+  setuptools,
   sympy,
-  numpy,
+  tabulate,
+  versioneer,
 }:
 
 buildPythonPackage rec {
@@ -21,14 +22,26 @@ buildPythonPackage rec {
   version = "3.2.1";
   pyproject = true;
 
+  disabled = pythonOlder "3.8";
+
   src = fetchFromGitHub {
     owner = "pyannote";
     repo = "pyannote-metrics";
-    rev = version;
+    rev = "refs/tags/${version}";
     hash = "sha256-V4qyaCaFsoikfFILm2sccf6m7lqJSDTdLxS1sr/LXAY=";
   };
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    # Remove vendorized versioneer.py
+    rm versioneer.py
+  '';
+
+  build-system = [
+    setuptools
+    versioneer
+  ];
+
+  dependencies = [
     pyannote-core
     pyannote-database
     pandas
@@ -41,18 +54,14 @@ buildPythonPackage rec {
     numpy
   ];
 
-  nativeBuildInputs = [
-    setuptools
-    wheel
-  ];
-
   pythonImportsCheck = [ "pyannote.metrics" ];
 
   meta = with lib; {
-    description = "A toolkit for reproducible evaluation, diagnostic, and error analysis of speaker diarization systems";
-    mainProgram = "pyannote-metrics";
+    description = "Toolkit for reproducible evaluation, diagnostic, and error analysis of speaker diarization systems";
     homepage = "https://github.com/pyannote/pyannote-metrics";
+    changelog = "http://pyannote.github.io/pyannote-metrics/changelog.html";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    mainProgram = "pyannote-metrics";
   };
 }
diff --git a/pkgs/development/python-modules/pyarrow/default.nix b/pkgs/development/python-modules/pyarrow/default.nix
index 5c84f1259fc10..d275e44f649dc 100644
--- a/pkgs/development/python-modules/pyarrow/default.nix
+++ b/pkgs/development/python-modules/pyarrow/default.nix
@@ -171,7 +171,7 @@ buildPythonPackage rec {
     ];
 
   meta = with lib; {
-    description = "A cross-language development platform for in-memory data";
+    description = "Cross-language development platform for in-memory data";
     homepage = "https://arrow.apache.org/";
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/pkgs/development/python-modules/pyasn1-modules/default.nix b/pkgs/development/python-modules/pyasn1-modules/default.nix
index 1382c21849a6e..ed555556f84fb 100644
--- a/pkgs/development/python-modules/pyasn1-modules/default.nix
+++ b/pkgs/development/python-modules/pyasn1-modules/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pyasn1_modules" ];
 
   meta = with lib; {
-    description = "A collection of ASN.1-based protocols modules";
+    description = "Collection of ASN.1-based protocols modules";
     homepage = "https://github.com/pyasn1/pyasn1-modules";
     changelog = "https://github.com/pyasn1/pyasn1-modules/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/pyathena/default.nix b/pkgs/development/python-modules/pyathena/default.nix
index 38a4956c9a6db..8a81fa5b34f4c 100644
--- a/pkgs/development/python-modules/pyathena/default.nix
+++ b/pkgs/development/python-modules/pyathena/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "pyathena";
-  version = "3.8.2";
+  version = "3.8.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-uVYnhxQJy6BvSZ/7JbKZPtE+uJkOtEZrd3uTokfZ3f8=";
+    hash = "sha256-mcYIYOgww4UM0CAcdtOD12pp53clPdDqN85bLRHGDag=";
   };
 
   nativeBuildInputs = [ hatchling ];
diff --git a/pkgs/development/python-modules/pyautogui/default.nix b/pkgs/development/python-modules/pyautogui/default.nix
index 8742e6a0c14b1..a76479f797258 100644
--- a/pkgs/development/python-modules/pyautogui/default.nix
+++ b/pkgs/development/python-modules/pyautogui/default.nix
@@ -52,7 +52,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "PyAutoGUI lets Python control the mouse and keyboard, and other GUI automation tasks.";
+    description = "PyAutoGUI lets Python control the mouse and keyboard, and other GUI automation tasks";
     homepage = "https://github.com/asweigart/pyautogui";
     license = licenses.bsd3;
     maintainers = with maintainers; [ lucasew ];
diff --git a/pkgs/development/python-modules/pybids/default.nix b/pkgs/development/python-modules/pybids/default.nix
index 33a00bac9284e..df3af23c98f76 100644
--- a/pkgs/development/python-modules/pybids/default.nix
+++ b/pkgs/development/python-modules/pybids/default.nix
@@ -19,12 +19,12 @@
 
 buildPythonPackage rec {
   pname = "pybids";
-  version = "0.16.4";
+  version = "0.16.5";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-pahl8wi6Sf8AuVqkvi7H90ViHr+9utb14ZVmKK3rFm4=";
+    hash = "sha256-5MAp5CYlOh1WxsXOE/LHVNm/K4VGFaLKWaaKYwKjQIM=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/pybloom-live/default.nix b/pkgs/development/python-modules/pybloom-live/default.nix
index 40ef508360991..5000e4b72c635 100644
--- a/pkgs/development/python-modules/pybloom-live/default.nix
+++ b/pkgs/development/python-modules/pybloom-live/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pybloom_live" ];
 
   meta = with lib; {
-    description = "A Probabilistic data structure";
+    description = "Probabilistic data structure";
     homepage = "https://github.com/joseph-fox/python-bloomfilter";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/pkgs/development/python-modules/pybtex-docutils/default.nix b/pkgs/development/python-modules/pybtex-docutils/default.nix
index bd3ad62f172c7..e1651297a77c1 100644
--- a/pkgs/development/python-modules/pybtex-docutils/default.nix
+++ b/pkgs/development/python-modules/pybtex-docutils/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pybtex_docutils" ];
 
   meta = with lib; {
-    description = "A docutils backend for pybtex";
+    description = "Docutils backend for pybtex";
     homepage = "https://github.com/mcmtroffaes/pybtex-docutils";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/pybtex/default.nix b/pkgs/development/python-modules/pybtex/default.nix
index 5e622e15b0760..94df8e4f62bb6 100644
--- a/pkgs/development/python-modules/pybtex/default.nix
+++ b/pkgs/development/python-modules/pybtex/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://pybtex.org/";
-    description = "A BibTeX-compatible bibliography processor written in Python";
+    description = "BibTeX-compatible bibliography processor written in Python";
     license = licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/pycaption/default.nix b/pkgs/development/python-modules/pycaption/default.nix
index 609a3b0341801..61cde1daca706 100644
--- a/pkgs/development/python-modules/pycaption/default.nix
+++ b/pkgs/development/python-modules/pycaption/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "pycaption";
-  version = "2.2.7";
+  version = "2.2.11";
 
   disabled = pythonOlder "3.8";
 
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "pbs";
     repo = "pycaption";
     rev = "refs/tags/${version}";
-    hash = "sha256-0rh8w4zQN5qAIPwnm7FO6VyPxMdutYFflpY+xWdEm3M=";
+    hash = "sha256-ae3aldx/8nRnqut7py2KmqETQuAUt2wpDwFA/30UiGg=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/pycardano/default.nix b/pkgs/development/python-modules/pycardano/default.nix
index b178c139bd764..010a030693cb9 100644
--- a/pkgs/development/python-modules/pycardano/default.nix
+++ b/pkgs/development/python-modules/pycardano/default.nix
@@ -69,7 +69,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pycardano" ];
 
   meta = with lib; {
-    description = "A lightweight Cardano library in Python";
+    description = "Lightweight Cardano library in Python";
     homepage = "https://github.com/Python-Cardano/pycardano";
     license = licenses.mit;
     maintainers = with maintainers; [ t4ccer ];
diff --git a/pkgs/development/python-modules/pycategories/infix.nix b/pkgs/development/python-modules/pycategories/infix.nix
index 8057e0d6db2fb..e3c09476b4013 100644
--- a/pkgs/development/python-modules/pycategories/infix.nix
+++ b/pkgs/development/python-modules/pycategories/infix.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/borntyping/python-infix";
-    description = "A decorator that allows functions to be used as infix functions";
+    description = "Decorator that allows functions to be used as infix functions";
     license = lib.licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/pycfmodel/default.nix b/pkgs/development/python-modules/pycfmodel/default.nix
index f361b3803bcaf..a2798e8199e6f 100644
--- a/pkgs/development/python-modules/pycfmodel/default.nix
+++ b/pkgs/development/python-modules/pycfmodel/default.nix
@@ -6,26 +6,31 @@
   pydantic,
   pytestCheckHook,
   pythonOlder,
+  pythonRelaxDepsHook,
   setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pycfmodel";
-  version = "0.22.0";
+  version = "1.0.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "Skyscanner";
     repo = "pycfmodel";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-NLi94W99LhrBXNFItMfJczV9EZlgvmvkavrfDQJs0YU=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-iCjOSwW6rdG3H4e/B/um+QioP45nOr9OcPAwXxZs3mU=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  pythonRelaxDeps = [ "pydantic" ];
 
-  propagatedBuildInputs = [ pydantic ];
+  build-system = [ setuptools ];
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
+
+  dependencies = [ pydantic ];
 
   nativeCheckInputs = [
     httpx
@@ -39,6 +44,10 @@ buildPythonPackage rec {
     "test_valid_es_domain_from_aws_documentation_examples_resource_can_be_built"
     "test_valid_opensearch_domain_from_aws_documentation_examples_resource_can_be_built"
     "test_resolve_booleans_different_properties_for_generic_resource"
+    "test_loose_ip"
+    "test_extra_fields_not_allowed_s3_bucket"
+    "test_raise_error_if_invalid_fields_in_resource"
+    ""
   ];
 
   pythonImportsCheck = [ "pycfmodel" ];
@@ -49,6 +58,5 @@ buildPythonPackage rec {
     changelog = "https://github.com/Skyscanner/pycfmodel/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
-    broken = versionAtLeast pydantic.version "2";
   };
 }
diff --git a/pkgs/development/python-modules/pycomm3/default.nix b/pkgs/development/python-modules/pycomm3/default.nix
index ec80199a3af93..08c4281151932 100644
--- a/pkgs/development/python-modules/pycomm3/default.nix
+++ b/pkgs/development/python-modules/pycomm3/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python Ethernet/IP library for communicating with Allen-Bradley PLCs";
+    description = "Python Ethernet/IP library for communicating with Allen-Bradley PLCs";
     homepage = "https://github.com/ottowayi/pycomm3";
     changelog = "https://github.com/ottowayi/pycomm3/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pycrdt-websocket/default.nix b/pkgs/development/python-modules/pycrdt-websocket/default.nix
index 3ad166d575155..4e727cc583162 100644
--- a/pkgs/development/python-modules/pycrdt-websocket/default.nix
+++ b/pkgs/development/python-modules/pycrdt-websocket/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "pycrdt-websocket";
-  version = "0.13.4";
+  version = "0.13.5";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     owner = "jupyter-server";
     repo = "pycrdt-websocket";
     rev = "refs/tags/v${version}";
-    hash = "sha256-nkm1ZQ6bYBRDDoREovhEthDZoHApYxzAnwVgDgpWW/s=";
+    hash = "sha256-dzlmgxrdQ97+DO/vDtoX7PIOpngEE+FGUGq1vdVmhNw=";
   };
 
   build-system = [ hatchling ];
diff --git a/pkgs/development/python-modules/pycritty/default.nix b/pkgs/development/python-modules/pycritty/default.nix
index 733cd500acbdd..770d7c3ca29a2 100644
--- a/pkgs/development/python-modules/pycritty/default.nix
+++ b/pkgs/development/python-modules/pycritty/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pycritty" ];
 
   meta = with lib; {
-    description = "A CLI tool for changing your alacritty configuration on the fly";
+    description = "CLI tool for changing your alacritty configuration on the fly";
     mainProgram = "pycritty";
     homepage = "https://github.com/antoniosarosi/pycritty";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pycuda/default.nix b/pkgs/development/python-modules/pycuda/default.nix
index c436f0fc75205..145bdcaad36b8 100644
--- a/pkgs/development/python-modules/pycuda/default.nix
+++ b/pkgs/development/python-modules/pycuda/default.nix
@@ -74,7 +74,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/inducer/pycuda/";
-    description = "CUDA integration for Python.";
+    description = "CUDA integration for Python";
     license = licenses.mit;
     maintainers = with maintainers; [ artuuge ];
   };
diff --git a/pkgs/development/python-modules/pycycling/default.nix b/pkgs/development/python-modules/pycycling/default.nix
new file mode 100644
index 0000000000000..6f277cffc8ff4
--- /dev/null
+++ b/pkgs/development/python-modules/pycycling/default.nix
@@ -0,0 +1,33 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  bleak,
+}:
+
+buildPythonPackage rec {
+  pname = "pycycling";
+  version = "0.4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-yi3ZcyhhOtHp46MK0R15/dic+b1oYjy4tFVRH3ssbE8=";
+  };
+
+  build-system = [ setuptools ];
+
+  propagatedBuildInputs = [
+    bleak
+  ];
+
+  pythonImportsCheck = [ pname ];
+
+  meta = with lib; {
+    description = "Package for interacting with Bluetooth Low Energy (BLE) compatible bike trainers, power meters, radars and heart rate monitors";
+    homepage = "https://github.com/zacharyedwardbull/pycycling";
+    changelog = "https://github.com/zacharyedwardbull/pycycling/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ viraptor ];
+  };
+}
diff --git a/pkgs/development/python-modules/pycyphal/default.nix b/pkgs/development/python-modules/pycyphal/default.nix
index 62d87d25a933b..36d138b188cd1 100644
--- a/pkgs/development/python-modules/pycyphal/default.nix
+++ b/pkgs/development/python-modules/pycyphal/default.nix
@@ -80,7 +80,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pycyphal" ];
 
   meta = with lib; {
-    description = "A full-featured implementation of the Cyphal protocol stack in Python";
+    description = "Full-featured implementation of the Cyphal protocol stack in Python";
     longDescription = ''
       Cyphal is an open technology for real-time intravehicular distributed computing and communication based on modern networking standards (Ethernet, CAN FD, etc.).
     '';
diff --git a/pkgs/development/python-modules/pydal/default.nix b/pkgs/development/python-modules/pydal/default.nix
index 847744549dd9b..e425d21f52e0e 100644
--- a/pkgs/development/python-modules/pydal/default.nix
+++ b/pkgs/development/python-modules/pydal/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "pydal";
-  version = "20231114.3";
+  version = "20240601.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-xC0W/Knju205mu+yQ0wOcIYu4Tx1Q3hS9CGSBDLuX7E=";
+    hash = "sha256-t7Sl81YpdQZk4Q2ERz6jiJsD3ERmC8QVlr0d/RrNmhU=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/pydantic-yaml-0/default.nix b/pkgs/development/python-modules/pydantic-yaml-0/default.nix
index 411b56e8ee3cf..d225d0e07150f 100644
--- a/pkgs/development/python-modules/pydantic-yaml-0/default.nix
+++ b/pkgs/development/python-modules/pydantic-yaml-0/default.nix
@@ -55,7 +55,7 @@ buildPythonPackage rec {
   ];
 
   meta = {
-    description = "A small helper library that adds some YAML capabilities to pydantic";
+    description = "Small helper library that adds some YAML capabilities to pydantic";
     homepage = "https://github.com/NowanIlfideme/pydantic-yaml";
     changelog = "https://github.com/NowanIlfideme/pydantic-yaml/releases/tag/v${version}";
     license = lib.licenses.mit;
diff --git a/pkgs/development/python-modules/pydantic/1.nix b/pkgs/development/python-modules/pydantic/1.nix
index 72c09d5cdcf99..2b268d2bf543f 100644
--- a/pkgs/development/python-modules/pydantic/1.nix
+++ b/pkgs/development/python-modules/pydantic/1.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "pydantic";
-  version = "1.10.14";
+  version = "1.10.16";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "pydantic";
     repo = "pydantic";
     rev = "refs/tags/v${version}";
-    hash = "sha256-tcaHSPZggVwyzCgDmwOgcGqUmUrJOmkdSNudJTFQ3bc=";
+    hash = "sha256-dn/ZsxbkyK2sJxpo6IsoMBRjq1STdu+xuqHXoNG+Kzk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pydeconz/default.nix b/pkgs/development/python-modules/pydeconz/default.nix
index 40635ad93fcc4..68e31e0002701 100644
--- a/pkgs/development/python-modules/pydeconz/default.nix
+++ b/pkgs/development/python-modules/pydeconz/default.nix
@@ -9,36 +9,34 @@
   pytestCheckHook,
   pythonOlder,
   setuptools,
-  wheel,
 }:
 
 buildPythonPackage rec {
   pname = "pydeconz";
-  version = "115";
+  version = "116";
   pyproject = true;
 
-  disabled = pythonOlder "3.11";
+  disabled = pythonOlder "3.12";
 
   src = fetchFromGitHub {
     owner = "Kane610";
     repo = "deconz";
     rev = "refs/tags/v${version}";
-    hash = "sha256-NjzONVSJ4GEaIeC5ytnTi8JpZY1yIq3LN8vbMy3n0vs=";
+    hash = "sha256-XtcAs+xKSTJcQN0mCj6ewkT7owvA7nlZ8PhWfL9NZh8=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "--cov=pydeconz --cov-report term-missing" "" \
-      --replace "setuptools==" "setuptools>=" \
-      --replace "wheel==" "wheel>="
+      --replace-fail "--cov=pydeconz --cov-report term-missing" "" \
+      --replace-fail "setuptools==" "setuptools>=" \
+      --replace-fail "wheel==" "wheel>="
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
-    wheel
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     orjson
   ];
@@ -53,10 +51,10 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library wrapping the Deconz REST API";
-    mainProgram = "pydeconz";
     homepage = "https://github.com/Kane610/deconz";
     changelog = "https://github.com/Kane610/deconz/releases/tag/v${version}";
-    license = with licenses; [ mit ];
+    license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "pydeconz";
   };
 }
diff --git a/pkgs/development/python-modules/pydes/default.nix b/pkgs/development/python-modules/pydes/default.nix
index 60ed00802c873..e04090e686dbd 100644
--- a/pkgs/development/python-modules/pydes/default.nix
+++ b/pkgs/development/python-modules/pydes/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pyDes" ];
 
   meta = with lib; {
-    description = "A pure python module which implements the DES and Triple-DES encryption algorithms";
+    description = "Pure python module which implements the DES and Triple-DES encryption algorithms";
     homepage = "https://github.com/twhiteman/pyDes";
     license = licenses.mit;
     maintainers = with maintainers; [ j0hax ];
diff --git a/pkgs/development/python-modules/pydiscourse/default.nix b/pkgs/development/python-modules/pydiscourse/default.nix
index 255c362aaaa31..6b0aa9131b668 100644
--- a/pkgs/development/python-modules/pydiscourse/default.nix
+++ b/pkgs/development/python-modules/pydiscourse/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pydiscourse" ];
 
   meta = with lib; {
-    description = "A Python library for working with Discourse";
+    description = "Python library for working with Discourse";
     mainProgram = "pydiscoursecli";
     homepage = "https://github.com/pydiscourse/pydiscourse";
     changelog = "https://github.com/pydiscourse/pydiscourse/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/pydrawise/default.nix b/pkgs/development/python-modules/pydrawise/default.nix
index 6d1f6aff06bf6..b0e007460f9b8 100644
--- a/pkgs/development/python-modules/pydrawise/default.nix
+++ b/pkgs/development/python-modules/pydrawise/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "pydrawise";
-  version = "2024.4.1";
+  version = "2024.6.3";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "dknowles2";
     repo = "pydrawise";
     rev = "refs/tags/${version}";
-    hash = "sha256-rJul7UAhgB0a6+3buPlfjnhhy2QOo82gvmRtZB+vrko=";
+    hash = "sha256-y5+l9XSnKzrNrZQc+PklgjFtA32svzTPZz9PI1d8Pe4=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/pydub/default.nix b/pkgs/development/python-modules/pydub/default.nix
index 4210e7663eb0e..e9fa5c8f70632 100644
--- a/pkgs/development/python-modules/pydub/default.nix
+++ b/pkgs/development/python-modules/pydub/default.nix
@@ -7,6 +7,7 @@
   pytestCheckHook,
   pythonOlder,
   setuptools,
+  substituteAll,
 }:
 
 buildPythonPackage rec {
@@ -30,12 +31,18 @@ buildPythonPackage rec {
       url = "https://github.com/jiaaro/pydub/commit/66c1bf7813ae8621a71484fdcdf609734c0d8efd.patch";
       hash = "sha256-3OIzvTgGK3r4/s5y7izHvouB4uJEmjO6cgKvegtTf7A=";
     })
+    # Fix paths to ffmpeg, ffplay and ffprobe
+    (substituteAll {
+      src = ./ffmpeg-fix-path.patch;
+      ffmpeg = lib.getExe ffmpeg-full;
+      ffplay = lib.getExe' ffmpeg-full "ffplay";
+      ffprobe = lib.getExe' ffmpeg-full "ffprobe";
+    })
   ];
 
   nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
-    ffmpeg-full
     pytestCheckHook
   ];
 
diff --git a/pkgs/development/python-modules/pydub/ffmpeg-fix-path.patch b/pkgs/development/python-modules/pydub/ffmpeg-fix-path.patch
new file mode 100644
index 0000000000000..1da979dcec8e5
--- /dev/null
+++ b/pkgs/development/python-modules/pydub/ffmpeg-fix-path.patch
@@ -0,0 +1,28 @@
+diff --git a/pydub/utils.py b/pydub/utils.py
+index 2694f90..7764b3f 100644
+--- a/pydub/utils.py
++++ b/pydub/utils.py
+@@ -172,7 +172,7 @@ def get_encoder_name():
+     else:
+         # should raise exception
+         warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
+-        return "ffmpeg"
++        return "@ffmpeg@"
+
+
+ def get_player_name():
+@@ -186,7 +186,7 @@ def get_player_name():
+     else:
+         # should raise exception
+         warn("Couldn't find ffplay or avplay - defaulting to ffplay, but may not work", RuntimeWarning)
+-        return "ffplay"
++        return "@ffplay@"
+
+
+ def get_prober_name():
+@@ -200,7 +200,7 @@ def get_prober_name():
+     else:
+         # should raise exception
+         warn("Couldn't find ffprobe or avprobe - defaulting to ffprobe, but may not work", RuntimeWarning)
+-        return "ffprobe"
++        return "@ffprobe@"
diff --git a/pkgs/development/python-modules/pydy/default.nix b/pkgs/development/python-modules/pydy/default.nix
index 613bf25632144..d6e0d6bf9775b 100644
--- a/pkgs/development/python-modules/pydy/default.nix
+++ b/pkgs/development/python-modules/pydy/default.nix
@@ -6,6 +6,8 @@
   scipy,
   sympy,
   setuptools,
+  pynose,
+  cython,
 }:
 
 buildPythonPackage rec {
@@ -26,8 +28,18 @@ buildPythonPackage rec {
     sympy
   ];
 
-  # nose test does not support 3.10 or later
-  doCheck = false;
+  nativeCheckInputs = [
+    pynose
+    cython
+  ];
+
+  checkPhase = ''
+    runHook preCheck
+
+    nosetests pydy
+
+    runHook postCheck
+  '';
 
   pythonImportsCheck = [ "pydy" ];
 
diff --git a/pkgs/development/python-modules/pyeclib/default.nix b/pkgs/development/python-modules/pyeclib/default.nix
index 30d5f357e44d7..70fb7aeb59754 100644
--- a/pkgs/development/python-modules/pyeclib/default.nix
+++ b/pkgs/development/python-modules/pyeclib/default.nix
@@ -44,7 +44,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pyeclib" ];
 
   meta = with lib; {
-    description = "This library provides a simple Python interface for implementing erasure codes.";
+    description = "This library provides a simple Python interface for implementing erasure codes";
     homepage = "https://github.com/openstack/pyeclib";
     license = licenses.bsd2;
     maintainers = teams.openstack.members;
diff --git a/pkgs/development/python-modules/pyecowitt/default.nix b/pkgs/development/python-modules/pyecowitt/default.nix
index e39c70baca793..0786f87c7e293 100644
--- a/pkgs/development/python-modules/pyecowitt/default.nix
+++ b/pkgs/development/python-modules/pyecowitt/default.nix
@@ -4,23 +4,26 @@
   buildPythonPackage,
   fetchFromGitHub,
   pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pyecowitt";
   version = "0.21";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "garbled1";
-    repo = pname;
-    rev = version;
-    sha256 = "5VdVo6j2HZXSCWU4NvfWzyS/KJfVb7N1KSMeu8TvWaQ=";
+    repo = "pyecowitt";
+    rev = "refs/tags/${version}";
+    hash = "sha256-5VdVo6j2HZXSCWU4NvfWzyS/KJfVb7N1KSMeu8TvWaQ=";
   };
 
-  propagatedBuildInputs = [ aiohttp ];
+  build-system = [ setuptools ];
+
+  dependencies = [ aiohttp ];
 
   # Project thas no tests
   doCheck = false;
@@ -30,7 +33,8 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python module for the EcoWitt Protocol";
     homepage = "https://github.com/garbled1/pyecowitt";
-    license = with licenses; [ asl20 ];
+    changelog = "https://github.com/garbled1/pyecowitt/releases/tag/${version}";
+    license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/pyedimax/default.nix b/pkgs/development/python-modules/pyedimax/default.nix
index 350525b402865..dff8a0ffa899f 100644
--- a/pkgs/development/python-modules/pyedimax/default.nix
+++ b/pkgs/development/python-modules/pyedimax/default.nix
@@ -3,28 +3,35 @@
   buildPythonPackage,
   fetchPypi,
   requests,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pyedimax";
   version = "0.2.1";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1i3gr5vygqh2ryg67sl13aaql7nvf3nbybrg54628r4g7911b5rk";
+    hash = "sha256-M5cVQjqPZCQMKS8vv+xw2x6KlRqB6mOezwLi53fJb8Q=";
   };
 
-  propagatedBuildInputs = [ requests ];
+  build-system = [ setuptools ];
+
+  dependencies = [ requests ];
 
-  # Project has no tests
+  # Module has no tests
   doCheck = false;
+
   pythonImportsCheck = [ "pyedimax" ];
 
   meta = with lib; {
     description = "Python library for interfacing with the Edimax smart plugs";
     homepage = "https://github.com/andreipop2005/pyedimax";
-    license = with licenses; [ mit ];
+    license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/pyee/default.nix b/pkgs/development/python-modules/pyee/default.nix
index 18641a3b65c54..9da32d7034b83 100644
--- a/pkgs/development/python-modules/pyee/default.nix
+++ b/pkgs/development/python-modules/pyee/default.nix
@@ -45,7 +45,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pyee" ];
 
   meta = with lib; {
-    description = "A port of Node.js's EventEmitter to Python";
+    description = "Port of Node.js's EventEmitter to Python";
     homepage = "https://github.com/jfhbrook/pyee";
     license = licenses.mit;
     maintainers = with maintainers; [ kmein ];
diff --git a/pkgs/development/python-modules/pyefergy/default.nix b/pkgs/development/python-modules/pyefergy/default.nix
index 847c595d5ef5f..2370bd7e62780 100644
--- a/pkgs/development/python-modules/pyefergy/default.nix
+++ b/pkgs/development/python-modules/pyefergy/default.nix
@@ -3,33 +3,40 @@
   aiohttp,
   buildPythonPackage,
   fetchFromGitHub,
+  poetry-core,
+  poetry-dynamic-versioning,
+  pythonRelaxDepsHook,
   iso4217,
-  pytest-asyncio,
   pythonOlder,
   pytz,
 }:
 
 buildPythonPackage rec {
   pname = "pyefergy";
-  version = "22.1.1";
-  format = "setuptools";
+  version = "22.5.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "tkdrob";
-    repo = pname;
-    rev = version;
-    hash = "sha256-AdoM+PcVoajxhnEfkyN9UuNufChu8XGmZDLNC3mjrps=";
+    repo = "pyefergy";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-4M3r/+C42X95/7BGZAJbkXKKFEkGzLlvX0Ynv+eL8qc=";
   };
 
-  postPatch = ''
-    # setuptools.extern.packaging.version.InvalidVersion: Invalid version: 'master'
-    substituteInPlace setup.py \
-      --replace 'version="master",' 'version="${version}",'
-  '';
+  build-system = [
+    poetry-core
+    poetry-dynamic-versioning
+    pythonRelaxDepsHook
+  ];
+
+  pythonRemoveDeps = [
+    "codecov"
+    "types-pytz"
+  ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     iso4217
     pytz
@@ -41,6 +48,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pyefergy" ];
 
   meta = with lib; {
+    changelog = "https://github.com/tkdrob/pyefergy/releases/tag/v${version}";
     description = "Python API library for Efergy energy meters";
     homepage = "https://github.com/tkdrob/pyefergy";
     license = with licenses; [ mit ];
diff --git a/pkgs/development/python-modules/pyemd/default.nix b/pkgs/development/python-modules/pyemd/default.nix
index b156aed9174ab..16d5cde886911 100644
--- a/pkgs/development/python-modules/pyemd/default.nix
+++ b/pkgs/development/python-modules/pyemd/default.nix
@@ -41,7 +41,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A Python wrapper for Ofir Pele and Michael Werman's implementation of the Earth Mover's Distance";
+    description = "Python wrapper for Ofir Pele and Michael Werman's implementation of the Earth Mover's Distance";
     homepage = "https://github.com/wmayner/pyemd";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/pyemvue/default.nix b/pkgs/development/python-modules/pyemvue/default.nix
index fece41ed7d08a..641339d487a9d 100644
--- a/pkgs/development/python-modules/pyemvue/default.nix
+++ b/pkgs/development/python-modules/pyemvue/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/magico13/PyEmVue/releases/tag/v${version}";
-    description = "A Python library for reading data from the Emporia Vue energy monitoring system";
+    description = "Python library for reading data from the Emporia Vue energy monitoring system";
     homepage = "https://github.com/magico13/PyEmVue";
     license = licenses.mit;
     maintainers = with maintainers; [ presto8 ];
diff --git a/pkgs/development/python-modules/pyenvisalink/default.nix b/pkgs/development/python-modules/pyenvisalink/default.nix
index 54195b8eba57e..84167f4ae58d1 100644
--- a/pkgs/development/python-modules/pyenvisalink/default.nix
+++ b/pkgs/development/python-modules/pyenvisalink/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "pyenvisalink";
-  version = "4.6";
+  version = "4.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-CQvomHYNMrf0oQjNCcLyisxIV2+3TOgEPzA9seZYsOs=";
+    hash = "sha256-b5v/7+B/yyCnKrWCs0scAuIgV1wSLk6cVa57n+HncUw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyexcel-xls/default.nix b/pkgs/development/python-modules/pyexcel-xls/default.nix
index 36aefa650bb57..5ff87b2390eb7 100644
--- a/pkgs/development/python-modules/pyexcel-xls/default.nix
+++ b/pkgs/development/python-modules/pyexcel-xls/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   checkPhase = "nosetests --exclude test_issue_151";
 
   meta = {
-    description = "A wrapper library to read, manipulate and write data in xls using xlrd and xlwt";
+    description = "Wrapper library to read, manipulate and write data in xls using xlrd and xlwt";
     homepage = "http://docs.pyexcel.org/";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ ];
diff --git a/pkgs/development/python-modules/pyexploitdb/default.nix b/pkgs/development/python-modules/pyexploitdb/default.nix
index 4178d616ae8f0..c86678cbc499f 100644
--- a/pkgs/development/python-modules/pyexploitdb/default.nix
+++ b/pkgs/development/python-modules/pyexploitdb/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pyexploitdb";
-  version = "0.2.18";
+  version = "0.2.22";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pyExploitDb";
     inherit version;
-    hash = "sha256-pwlS0304aTSrGZFIj5f+jstcFwcy/liqQBW8p7hUhKE=";
+    hash = "sha256-zLGJ8MYfyXrJwy8GywOq9fM9rMMmRTgPrgiByGwQ+gM=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/pyfakewebcam/default.nix b/pkgs/development/python-modules/pyfakewebcam/default.nix
index 53b4434e3f70e..681b06644ac59 100644
--- a/pkgs/development/python-modules/pyfakewebcam/default.nix
+++ b/pkgs/development/python-modules/pyfakewebcam/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pyfakewebcam" ];
 
   meta = with lib; {
-    description = "A library for writing RGB frames to a fake webcam device on Linux";
+    description = "Library for writing RGB frames to a fake webcam device on Linux";
     homepage = "https://github.com/jremmons/pyfakewebcam";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ emilytrau ];
diff --git a/pkgs/development/python-modules/pyfftw/default.nix b/pkgs/development/python-modules/pyfftw/default.nix
deleted file mode 100644
index f7f5adede1d11..0000000000000
--- a/pkgs/development/python-modules/pyfftw/default.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{
-  lib,
-  buildPythonPackage,
-  fetchPypi,
-  fftw,
-  fftwFloat,
-  fftwLongDouble,
-  numpy,
-  scipy,
-  cython_0,
-  dask,
-}:
-
-buildPythonPackage rec {
-  version = "0.13.1";
-  pname = "pyFFTW";
-
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-CRVekKDG0MHy0fNmgYCn3pX7n4P+9RN6ES+wWXjocyA=";
-  };
-
-  preConfigure = ''
-    export LDFLAGS="-L${fftw.out}/lib -L${fftwFloat.out}/lib -L${fftwLongDouble.out}/lib"
-    export CFLAGS="-I${fftw.dev}/include -I${fftwFloat.dev}/include -I${fftwLongDouble.dev}/include"
-  '';
-
-  buildInputs = [
-    fftw
-    fftwFloat
-    fftwLongDouble
-  ];
-
-  propagatedBuildInputs = [
-    numpy
-    scipy
-    cython_0
-    dask
-  ];
-
-  # Tests cannot import pyfftw. pyfftw works fine though.
-  doCheck = false;
-  pythonImportsCheck = [ "pyfftw" ];
-
-  meta = with lib; {
-    description = "A pythonic wrapper around FFTW, the FFT library, presenting a unified interface for all the supported transforms";
-    homepage = "http://hgomersall.github.com/pyFFTW/";
-    license = with licenses; [
-      bsd2
-      bsd3
-    ];
-  };
-}
diff --git a/pkgs/development/python-modules/pyfireservicerota/default.nix b/pkgs/development/python-modules/pyfireservicerota/default.nix
index 741b11edfcffb..4042c0a235c53 100644
--- a/pkgs/development/python-modules/pyfireservicerota/default.nix
+++ b/pkgs/development/python-modules/pyfireservicerota/default.nix
@@ -3,7 +3,6 @@
   buildPythonPackage,
   pythonOlder,
   fetchPypi,
-  fetchpatch2,
   pdm-backend,
   pytz,
   oauthlib,
diff --git a/pkgs/development/python-modules/pyflakes/default.nix b/pkgs/development/python-modules/pyflakes/default.nix
index 63edc75d16dcb..aaf9e961cb23b 100644
--- a/pkgs/development/python-modules/pyflakes/default.nix
+++ b/pkgs/development/python-modules/pyflakes/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/PyCQA/pyflakes";
     changelog = "https://github.com/PyCQA/pyflakes/blob/${src.rev}/NEWS.rst";
-    description = "A simple program which checks Python source files for errors";
+    description = "Simple program which checks Python source files for errors";
     mainProgram = "pyflakes";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/pyfribidi/default.nix b/pkgs/development/python-modules/pyfribidi/default.nix
index 0a0826ee99c1d..59aef896beeec 100644
--- a/pkgs/development/python-modules/pyfribidi/default.nix
+++ b/pkgs/development/python-modules/pyfribidi/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ six ];
 
   meta = with lib; {
-    description = "A simple wrapper around fribidi";
+    description = "Simple wrapper around fribidi";
     homepage = "https://github.com/pediapress/pyfribidi";
     license = licenses.gpl2;
   };
diff --git a/pkgs/development/python-modules/pyfume/default.nix b/pkgs/development/python-modules/pyfume/default.nix
index 7a0aac4c01f44..1dd97fef2536c 100644
--- a/pkgs/development/python-modules/pyfume/default.nix
+++ b/pkgs/development/python-modules/pyfume/default.nix
@@ -42,7 +42,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pyfume" ];
 
   meta = with lib; {
-    description = "A Python package for fuzzy model estimation";
+    description = "Python package for fuzzy model estimation";
     homepage = "https://github.com/CaroFuchs/pyFUME";
     changelog = "https://github.com/CaroFuchs/pyFUME/releases/tag/${version}";
     license = with licenses; [ gpl3Only ];
diff --git a/pkgs/development/python-modules/pygame-gui/default.nix b/pkgs/development/python-modules/pygame-gui/default.nix
index f55ed21d2e3ee..e370c36bb4d7e 100644
--- a/pkgs/development/python-modules/pygame-gui/default.nix
+++ b/pkgs/development/python-modules/pygame-gui/default.nix
@@ -2,6 +2,7 @@
   lib,
   pkgs,
   buildPythonPackage,
+  nix-update-script,
   fetchFromGitHub,
   setuptools,
   pygame-ce,
@@ -11,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pygame-gui";
-  version = "0610";
+  version = "0611";
   pyproject = true;
   # nixpkgs-update: no auto update
 
@@ -19,7 +20,7 @@ buildPythonPackage rec {
     owner = "MyreMylar";
     repo = "pygame_gui";
     rev = "refs/tags/v_${version}";
-    hash = "sha256-PVNi/I174AyEEjc+N2UGtgOYSGAgVQbqrKkWZnjOxFY=";
+    hash = "sha256-bibw6RUQKsOsaISunVEdQCT39KnXJ2VKVrAqsPS+Lu8=";
   };
 
   nativeBuildInputs = [ setuptools ];
@@ -56,8 +57,12 @@ buildPythonPackage rec {
 
   disabledTestPaths = [ "tests/test_performance/test_text_performance.py" ];
 
+  passthru.updateScript = nix-update-script {
+    extraArgs = [ "--version-regex" "v_(.*)" ];
+  };
+
   meta = with lib; {
-    description = "A GUI system for pygame";
+    description = "GUI system for pygame";
     homepage = "https://github.com/MyreMylar/pygame_gui";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [
diff --git a/pkgs/development/python-modules/pygame-sdl2/default.nix b/pkgs/development/python-modules/pygame-sdl2/default.nix
index 2ef0a891790b3..f788c969a8f4e 100644
--- a/pkgs/development/python-modules/pygame-sdl2/default.nix
+++ b/pkgs/development/python-modules/pygame-sdl2/default.nix
@@ -57,7 +57,7 @@ buildPythonPackage {
   doCheck = isPy27; # python3 tests are non-functional
 
   meta = {
-    description = "A reimplementation of parts of pygame API using SDL2";
+    description = "Reimplementation of parts of pygame API using SDL2";
     homepage = "https://github.com/renpy/pygame_sdl2";
     license = with lib.licenses; [
       lgpl2
diff --git a/pkgs/development/python-modules/pygeos/default.nix b/pkgs/development/python-modules/pygeos/default.nix
deleted file mode 100644
index ebb90ee9fef7f..0000000000000
--- a/pkgs/development/python-modules/pygeos/default.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-{
-  lib,
-  buildPythonPackage,
-  fetchPypi,
-  python,
-  geos_3_11,
-  pytestCheckHook,
-  cython_0,
-  numpy,
-}:
-
-buildPythonPackage rec {
-  pname = "pygeos";
-  version = "0.14";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-MPvBf2SEQgC4UTO4hfz7ZVQbh3lTH270+P5GfT+6diM=";
-  };
-
-  nativeBuildInputs = [
-    geos_3_11 # for geos-config
-    cython_0
-  ];
-
-  propagatedBuildInputs = [ numpy ];
-
-  # The cythonized extensions are required to exist in the pygeos/ directory
-  # for the package to function. Therefore override of buildPhase was
-  # necessary.
-  buildPhase = ''
-    ${python.pythonOnBuildForHost.interpreter} setup.py build_ext --inplace
-    ${python.pythonOnBuildForHost.interpreter} setup.py bdist_wheel
-  '';
-
-  nativeCheckInputs = [ pytestCheckHook ];
-
-  pythonImportsCheck = [ "pygeos" ];
-
-  meta = with lib; {
-    description = "Wraps GEOS geometry functions in numpy ufuncs";
-    homepage = "https://github.com/pygeos/pygeos";
-    changelog = "https://github.com/pygeos/pygeos/blob/${version}/CHANGELOG.rst";
-    license = licenses.bsd3;
-    maintainers = teams.geospatial.members;
-  };
-}
diff --git a/pkgs/development/python-modules/pygetwindow/default.nix b/pkgs/development/python-modules/pygetwindow/default.nix
index fbbbce865c807..238bffdeb2765 100644
--- a/pkgs/development/python-modules/pygetwindow/default.nix
+++ b/pkgs/development/python-modules/pygetwindow/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ pyrect ];
 
   meta = with lib; {
-    description = "A simple, cross-platform module for obtaining GUI information on applications' windows.";
+    description = "Simple, cross-platform module for obtaining GUI information on applications' windows";
     homepage = "https://github.com/asweigart/PyGetWindow";
     license = licenses.bsd3;
     maintainers = with maintainers; [ lucasew ];
diff --git a/pkgs/development/python-modules/pygit2/default.nix b/pkgs/development/python-modules/pygit2/default.nix
index 7915a4bc4bfa6..c541fe5aac650 100644
--- a/pkgs/development/python-modules/pygit2/default.nix
+++ b/pkgs/development/python-modules/pygit2/default.nix
@@ -57,7 +57,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pygit2" ];
 
   meta = with lib; {
-    description = "A set of Python bindings to the libgit2 shared library";
+    description = "Set of Python bindings to the libgit2 shared library";
     homepage = "https://github.com/libgit2/pygit2";
     changelog = "https://github.com/libgit2/pygit2/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl2Only;
diff --git a/pkgs/development/python-modules/pyglet/default.nix b/pkgs/development/python-modules/pyglet/default.nix
index c9493e5c28857..5d86b61555a42 100644
--- a/pkgs/development/python-modules/pyglet/default.nix
+++ b/pkgs/development/python-modules/pyglet/default.nix
@@ -107,7 +107,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "http://www.pyglet.org/";
-    description = "A cross-platform windowing and multimedia library";
+    description = "Cross-platform windowing and multimedia library";
     license = licenses.bsd3;
     platforms = platforms.mesaPlatforms;
   };
diff --git a/pkgs/development/python-modules/pyglm/default.nix b/pkgs/development/python-modules/pyglm/default.nix
index 5524390866661..5074546308a1b 100644
--- a/pkgs/development/python-modules/pyglm/default.nix
+++ b/pkgs/development/python-modules/pyglm/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/Zuzu-Typ/PyGLM";
-    description = "An OpenGL Mathematics (GLM) library for Python written in C++";
+    description = "OpenGL Mathematics (GLM) library for Python written in C++";
     changelog = "https://github.com/Zuzu-Typ/PyGLM/releases/tag/${src.rev}";
     license = licenses.zlib;
     maintainers = with maintainers; [ sund3RRR ];
diff --git a/pkgs/development/python-modules/pygments-better-html/default.nix b/pkgs/development/python-modules/pygments-better-html/default.nix
index 378f99c934d4b..2f880a0ea8673 100644
--- a/pkgs/development/python-modules/pygments-better-html/default.nix
+++ b/pkgs/development/python-modules/pygments-better-html/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/Kwpolska/pygments_better_html";
-    description = "Improved line numbering for Pygments’ HTML formatter.";
+    description = "Improved line numbering for Pygments’ HTML formatter";
     license = licenses.bsd3;
     maintainers = with maintainers; [ hexa ];
   };
diff --git a/pkgs/development/python-modules/pygments-style-github/default.nix b/pkgs/development/python-modules/pygments-style-github/default.nix
index 1696609a61e29..3c6945e66dfeb 100644
--- a/pkgs/development/python-modules/pygments-style-github/default.nix
+++ b/pkgs/development/python-modules/pygments-style-github/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pygments_style_github" ];
 
   meta = with lib; {
-    description = "A port of the github color scheme for pygments";
+    description = "Port of the github color scheme for pygments";
     homepage = "https://github.com/hugomaiavieira/pygments-style-github";
     license = licenses.bsd3;
     maintainers = with maintainers; [ drupol ];
diff --git a/pkgs/development/python-modules/pygments/default.nix b/pkgs/development/python-modules/pygments/default.nix
index 784077e4dc0e4..82c0b2ec326ec 100644
--- a/pkgs/development/python-modules/pygments/default.nix
+++ b/pkgs/development/python-modules/pygments/default.nix
@@ -48,7 +48,7 @@ let
     meta = with lib; {
       changelog = "https://github.com/pygments/pygments/releases/tag/${version}";
       homepage = "https://pygments.org/";
-      description = "A generic syntax highlighter";
+      description = "Generic syntax highlighter";
       mainProgram = "pygmentize";
       license = licenses.bsd2;
       maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/pygmt/default.nix b/pkgs/development/python-modules/pygmt/default.nix
index e3a3b40d78b9d..90b00d9cd3440 100644
--- a/pkgs/development/python-modules/pygmt/default.nix
+++ b/pkgs/development/python-modules/pygmt/default.nix
@@ -63,7 +63,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pygmt" ];
 
   meta = with lib; {
-    description = "A Python interface for the Generic Mapping Tools";
+    description = "Python interface for the Generic Mapping Tools";
     homepage = "https://github.com/GenericMappingTools/pygmt";
     license = licenses.bsd3;
     changelog = "https://github.com/GenericMappingTools/pygmt/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/pygpgme/default.nix b/pkgs/development/python-modules/pygpgme/default.nix
index 2e7b49f802040..76eb40701cee1 100644
--- a/pkgs/development/python-modules/pygpgme/default.nix
+++ b/pkgs/development/python-modules/pygpgme/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://launchpad.net/pygpgme";
-    description = "A Python wrapper for the GPGME library";
+    description = "Python wrapper for the GPGME library";
     license = licenses.lgpl21;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/pygrok/default.nix b/pkgs/development/python-modules/pygrok/default.nix
index 674133cf7b3ea..3313a921808df 100644
--- a/pkgs/development/python-modules/pygrok/default.nix
+++ b/pkgs/development/python-modules/pygrok/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     maintainers = with maintainers; [ winpat ];
-    description = "A python implementation of jordansissel's grok regular expression library";
+    description = "Python implementation of jordansissel's grok regular expression library";
     homepage = "https://github.com/garyelephant/pygrok";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/development/python-modules/pygtail/default.nix b/pkgs/development/python-modules/pygtail/default.nix
index ee530694fd9b2..a2d4a41c80aeb 100644
--- a/pkgs/development/python-modules/pygtail/default.nix
+++ b/pkgs/development/python-modules/pygtail/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A library for reading log file lines that have not been read";
+    description = "Library for reading log file lines that have not been read";
     mainProgram = "pygtail";
     license = licenses.gpl2Plus;
     homepage = "https://github.com/bgreenlee/pygtail";
diff --git a/pkgs/development/python-modules/pygtkspellcheck/default.nix b/pkgs/development/python-modules/pygtkspellcheck/default.nix
index 09fdbc4e7593a..eb7f5491496d5 100644
--- a/pkgs/development/python-modules/pygtkspellcheck/default.nix
+++ b/pkgs/development/python-modules/pygtkspellcheck/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/koehlma/pygtkspellcheck";
-    description = "A Python spell-checking library for GtkTextViews based on Enchant";
+    description = "Python spell-checking library for GtkTextViews based on Enchant";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/pyhaversion/default.nix b/pkgs/development/python-modules/pyhaversion/default.nix
index 26aff0187e29e..c4c5417ae47bc 100644
--- a/pkgs/development/python-modules/pyhaversion/default.nix
+++ b/pkgs/development/python-modules/pyhaversion/default.nix
@@ -5,32 +5,35 @@
   awesomeversion,
   buildPythonPackage,
   fetchFromGitHub,
-  pythonOlder,
+  poetry-core,
   pytest-asyncio,
   pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "pyhaversion";
-  version = "23.1.0";
-  format = "setuptools";
+  version = "24.6.1";
+  pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.12";
 
   src = fetchFromGitHub {
     owner = "ludeeus";
-    repo = pname;
+    repo = "pyhaversion";
     rev = "refs/tags/${version}";
-    hash = "sha256-HMJqZn0yzN2dP5WTRCbem1Xw8nyH2Hy7oVP4kEKHHAo=";
+    hash = "sha256-UZ9236mERoz3WG9MfeN1ALKc8OjqpcbbIhiEsRYzn4I=";
   };
 
   postPatch = ''
     # Upstream doesn't set a version for the tagged releases
-    substituteInPlace setup.py \
-      --replace "main" ${version}
+    substituteInPlace pyproject.toml \
+      --replace-fail 'version = "0"' 'version = "${version}"'
   '';
 
-  propagatedBuildInputs = [
+  build-system = [ poetry-core ];
+
+  dependencies = [
     aiohttp
     awesomeversion
   ];
diff --git a/pkgs/development/python-modules/pyhocon/default.nix b/pkgs/development/python-modules/pyhocon/default.nix
index 81d30e3cea268..ce479ce4c2da4 100644
--- a/pkgs/development/python-modules/pyhocon/default.nix
+++ b/pkgs/development/python-modules/pyhocon/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pyhocon";
-  version = "0.3.60";
+  version = "0.3.61";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "chimpler";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-H460j/DjY1lltapva3l87oyOJVjzUE9Q/oKti3SsUyU=";
+    hash = "sha256-xXx30uxJ8+KPVdYC6yRzEDJbwYSzIO/Gy1xrehvI5ZE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyimpfuzzy/default.nix b/pkgs/development/python-modules/pyimpfuzzy/default.nix
index 7b42c7ec429d8..469fa542aa873 100644
--- a/pkgs/development/python-modules/pyimpfuzzy/default.nix
+++ b/pkgs/development/python-modules/pyimpfuzzy/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pyimpfuzzy" ];
 
   meta = with lib; {
-    description = "A Python module which calculates and compares the impfuzzy (import fuzzy hashing)";
+    description = "Python module which calculates and compares the impfuzzy (import fuzzy hashing)";
     homepage = "https://github.com/JPCERTCC/impfuzzy";
     license = licenses.gpl2Only;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/pyinfra/default.nix b/pkgs/development/python-modules/pyinfra/default.nix
index 4bea65f825119..80b1d43ef6ed7 100644
--- a/pkgs/development/python-modules/pyinfra/default.nix
+++ b/pkgs/development/python-modules/pyinfra/default.nix
@@ -6,7 +6,6 @@
   configparser,
   distro,
   fetchFromGitHub,
-  fetchpatch,
   gevent,
   jinja2,
   paramiko,
diff --git a/pkgs/development/python-modules/pyinstaller-versionfile/default.nix b/pkgs/development/python-modules/pyinstaller-versionfile/default.nix
index 09d9b25eacb44..8a0c51eef3dc4 100644
--- a/pkgs/development/python-modules/pyinstaller-versionfile/default.nix
+++ b/pkgs/development/python-modules/pyinstaller-versionfile/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   ];
 
   meta = {
-    description = "Create a windows version-file from a simple YAML file that can be used by PyInstaller.";
+    description = "Create a windows version-file from a simple YAML file that can be used by PyInstaller";
     mainProgram = "create-version-file";
     homepage = "https://pypi.org/project/pyinstaller-versionfile/";
     license = lib.licenses.mit;
diff --git a/pkgs/development/python-modules/pyinsteon/default.nix b/pkgs/development/python-modules/pyinsteon/default.nix
index 0f52f3dbf45ce..af11516e851a1 100644
--- a/pkgs/development/python-modules/pyinsteon/default.nix
+++ b/pkgs/development/python-modules/pyinsteon/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "pyinsteon";
-  version = "1.6.1";
+  version = "1.6.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "pyinsteon";
     repo = "pyinsteon";
     rev = "refs/tags/${version}";
-    hash = "sha256-s8YRDu+UpU1sisdscd87CpcLl3csOUDdIuKqx48GZsw=";
+    hash = "sha256-V1sYLKKlTMG9Km53uNCU34e8D/owxuDNT+HGZxtK21I=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/pyiqvia/default.nix b/pkgs/development/python-modules/pyiqvia/default.nix
index 2af120b22c2e5..dbc41c1c78516 100644
--- a/pkgs/development/python-modules/pyiqvia/default.nix
+++ b/pkgs/development/python-modules/pyiqvia/default.nix
@@ -6,7 +6,6 @@
   backoff,
   certifi,
   fetchFromGitHub,
-  fetchpatch,
   poetry-core,
   pytest-aiohttp,
   pytest-asyncio,
diff --git a/pkgs/development/python-modules/pyjnius/default.nix b/pkgs/development/python-modules/pyjnius/default.nix
index 3af30de86da6a..85ad161547d6a 100644
--- a/pkgs/development/python-modules/pyjnius/default.nix
+++ b/pkgs/development/python-modules/pyjnius/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "jnius" ];
 
   meta = with lib; {
-    description = "A Python module to access Java classes as Python classes using the Java Native Interface (JNI)";
+    description = "Python module to access Java classes as Python classes using the Java Native Interface (JNI)";
     homepage = "https://github.com/kivy/pyjnius";
     changelog = "https://github.com/kivy/pyjnius/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pyjson5/default.nix b/pkgs/development/python-modules/pyjson5/default.nix
index 19f933ddc3d9a..ea68a8ae8cf77 100644
--- a/pkgs/development/python-modules/pyjson5/default.nix
+++ b/pkgs/development/python-modules/pyjson5/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pyjson5" ];
 
   meta = with lib; {
-    description = "A JSON5 serializer and parser library";
+    description = "JSON5 serializer and parser library";
     homepage = "https://github.com/Kijewski/pyjson5";
     changelog = "https://github.com/Kijewski/pyjson5/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/pykalman/default.nix b/pkgs/development/python-modules/pykalman/default.nix
index 950e402df8bae..31eb43a15bd49 100644
--- a/pkgs/development/python-modules/pykalman/default.nix
+++ b/pkgs/development/python-modules/pykalman/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pykalman" ];
 
   meta = with lib; {
-    description = "An implementation of the Kalman Filter, Kalman Smoother, and EM algorithm in Python";
+    description = "Implementation of the Kalman Filter, Kalman Smoother, and EM algorithm in Python";
     homepage = "https://github.com/pykalman/pykalman";
     license = licenses.bsd2;
     maintainers = with maintainers; [ mbalatsko ];
diff --git a/pkgs/development/python-modules/pykdl/default.nix b/pkgs/development/python-modules/pykdl/default.nix
index c5eea5ede8041..6670f6d145d04 100644
--- a/pkgs/development/python-modules/pykdl/default.nix
+++ b/pkgs/development/python-modules/pykdl/default.nix
@@ -42,6 +42,8 @@ toPythonModule (
     ];
     propagatedBuildInputs = [ python ];
 
+    cmakeFlags = [ "-DPYTHON_EXECUTABLE=${lib.getExe python.pythonOnBuildForHost}" ];
+
     meta = with lib; {
       description = "Kinematics and Dynamics Library (Python bindings)";
       homepage = "https://www.orocos.org/kdl.html";
diff --git a/pkgs/development/python-modules/pykka/default.nix b/pkgs/development/python-modules/pykka/default.nix
index 0419b4c33bb1c..19cc38aba586c 100644
--- a/pkgs/development/python-modules/pykka/default.nix
+++ b/pkgs/development/python-modules/pykka/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://www.pykka.org/";
-    description = "A Python implementation of the actor model";
+    description = "Python implementation of the actor model";
     changelog = "https://github.com/jodal/pykka/releases/tag/v${version}";
     maintainers = with maintainers; [ ];
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/pykodi/default.nix b/pkgs/development/python-modules/pykodi/default.nix
index 7fa9788e09fca..f4f52879d7fe8 100644
--- a/pkgs/development/python-modules/pykodi/default.nix
+++ b/pkgs/development/python-modules/pykodi/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pykodi" ];
 
   meta = with lib; {
-    description = "An async python interface for Kodi over JSON-RPC";
+    description = "Async python interface for Kodi over JSON-RPC";
     homepage = "https://github.com/OnFreund/PyKodi";
     license = licenses.mit;
     maintainers = with maintainers; [ sephalon ];
diff --git a/pkgs/development/python-modules/pylast/default.nix b/pkgs/development/python-modules/pylast/default.nix
index 6c0f4e98c4f9a..19e1be9892f30 100644
--- a/pkgs/development/python-modules/pylast/default.nix
+++ b/pkgs/development/python-modules/pylast/default.nix
@@ -13,24 +13,24 @@
 
 buildPythonPackage rec {
   pname = "pylast";
-  version = "5.2.0";
-  format = "pyproject";
+  version = "5.3.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "pylast";
-    repo = pname;
+    repo = "pylast";
     rev = "refs/tags/${version}";
-    hash = "sha256-6yxsqruosSOJ5LeIBbvuEko4s9qU/ObNZiJD5YH/hvY=";
+    hash = "sha256-dgqTNISeyBkZ2m68pqw5rsoyPxLW4wWkv6iqq9bD5Ek=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     hatch-vcs
     hatchling
   ];
 
-  propagatedBuildInputs = [ httpx ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
+  dependencies = [ httpx ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -42,6 +42,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python interface to last.fm (and compatibles)";
     homepage = "https://github.com/pylast/pylast";
+    changelog = "https://github.com/pylast/pylast/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [
       fab
diff --git a/pkgs/development/python-modules/pylatex/default.nix b/pkgs/development/python-modules/pylatex/default.nix
index 9444fb0f29e31..ecd6adf3cdd2e 100644
--- a/pkgs/development/python-modules/pylatex/default.nix
+++ b/pkgs/development/python-modules/pylatex/default.nix
@@ -42,7 +42,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python library for creating LaTeX files and snippets";
+    description = "Python library for creating LaTeX files and snippets";
     homepage = "https://jeltef.github.io/PyLaTeX/current/";
     downloadPage = "https://github.com/JelteF/PyLaTeX/releases";
     changelog = "https://jeltef.github.io/PyLaTeX/current/changelog.html";
diff --git a/pkgs/development/python-modules/pylaunches/default.nix b/pkgs/development/python-modules/pylaunches/default.nix
index f044593ef5587..106ea7a998880 100644
--- a/pkgs/development/python-modules/pylaunches/default.nix
+++ b/pkgs/development/python-modules/pylaunches/default.nix
@@ -4,6 +4,7 @@
   aresponses,
   buildPythonPackage,
   fetchFromGitHub,
+  poetry-core,
   pytestCheckHook,
   pytest-asyncio,
   pythonOlder,
@@ -11,19 +12,27 @@
 
 buildPythonPackage rec {
   pname = "pylaunches";
-  version = "1.4.0";
-  format = "setuptools";
+  version = "2.0.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.11";
 
   src = fetchFromGitHub {
     owner = "ludeeus";
-    repo = pname;
-    rev = version;
-    sha256 = "sha256-bIcnYcbfAwjet3cg97y+ujFfY2916ANk4sw0sZoU59g=";
+    repo = "pylaunches";
+    rev = "refs/tags/${version}";
+    hash = "sha256-NewzzZuiXwaWU59bu+M2QcSfydL1khvw/YJkbZ58W2Q=";
   };
 
-  propagatedBuildInputs = [ aiohttp ];
+  postPatch = ''
+    # Upstream doesn't set version in the repo
+    substituteInPlace pyproject.toml \
+      --replace-fail 'version = "0"' 'version = "${version}"'
+  '';
+
+  build-system = [ poetry-core ];
+
+  dependencies = [ aiohttp ];
 
   nativeCheckInputs = [
     aresponses
@@ -31,18 +40,12 @@ buildPythonPackage rec {
     pytest-asyncio
   ];
 
-  postPatch = ''
-    # Upstream doesn't set version in the repo
-    substituteInPlace setup.py \
-      --replace 'version="main",' 'version="${version}",' \
-      --replace ', "pytest-runner"' ""
-  '';
-
   pythonImportsCheck = [ "pylaunches" ];
 
   meta = with lib; {
     description = "Python module to get information about upcoming space launches";
     homepage = "https://github.com/ludeeus/pylaunches";
+    changelog = "https://github.com/ludeeus/pylaunches/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/pylibacl/default.nix b/pkgs/development/python-modules/pylibacl/default.nix
index 1e11d80892dc6..e2f2efdef7a25 100644
--- a/pkgs/development/python-modules/pylibacl/default.nix
+++ b/pkgs/development/python-modules/pylibacl/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   buildInputs = with pkgs; [ acl ];
 
   meta = {
-    description = "A Python extension module for POSIX ACLs, it can be used to query, list, add, and remove ACLs from files and directories under operating systems that support them";
+    description = "Python extension module for POSIX ACLs, it can be used to query, list, add, and remove ACLs from files and directories under operating systems that support them";
     license = lib.licenses.lgpl21Plus;
   };
 }
diff --git a/pkgs/development/python-modules/pylibjpeg-libjpeg/default.nix b/pkgs/development/python-modules/pylibjpeg-libjpeg/default.nix
index e3496f206cd69..892e24c621225 100644
--- a/pkgs/development/python-modules/pylibjpeg-libjpeg/default.nix
+++ b/pkgs/development/python-modules/pylibjpeg-libjpeg/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pylibjpeg-libjpeg";
-  version = "2.02";
+  version = "2.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -21,17 +21,17 @@ buildPythonPackage rec {
     owner = "pydicom";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-mGwku19Xe605fF3UU59712rYp+s/pP79lBRl79fhhTI=";
+    hash = "sha256-iU40QdAY5931YM3h3P+WCbiBfX88iVi2QdUvZLptsFs=";
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [
+  build-system = [
     cython
     poetry-core
     setuptools
   ];
 
-  propagatedBuildInputs = [ numpy ];
+  dependencies = [ numpy ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
@@ -40,7 +40,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "libjpeg" ];
 
   meta = with lib; {
-    description = "A JPEG, JPEG-LS and JPEG XT plugin for pylibjpeg";
+    description = "JPEG, JPEG-LS and JPEG XT plugin for pylibjpeg";
     homepage = "https://github.com/pydicom/pylibjpeg-libjpeg";
     changelog = "https://github.com/pydicom/pylibjpeg-libjpeg/releases/tag/v${version}";
     license = licenses.gpl3Only;
diff --git a/pkgs/development/python-modules/pylink-square/default.nix b/pkgs/development/python-modules/pylink-square/default.nix
index c3245c0e7b0d6..2e8121e0932f6 100644
--- a/pkgs/development/python-modules/pylink-square/default.nix
+++ b/pkgs/development/python-modules/pylink-square/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchPypi,
   mock,
   psutil,
   pytestCheckHook,
diff --git a/pkgs/development/python-modules/pylint-celery/default.nix b/pkgs/development/python-modules/pylint-celery/default.nix
index cb002a60a2a20..99ffa65d6cd70 100644
--- a/pkgs/development/python-modules/pylint-celery/default.nix
+++ b/pkgs/development/python-modules/pylint-celery/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Pylint plugin to analyze Celery applications";
+    description = "Pylint plugin to analyze Celery applications";
     homepage = "https://github.com/PyCQA/pylint-celery";
     license = licenses.gpl2;
     maintainers = with maintainers; [ kamadorueda ];
diff --git a/pkgs/development/python-modules/pylint-django/default.nix b/pkgs/development/python-modules/pylint-django/default.nix
index 13ddc4eabec4e..cac67ca5051ae 100644
--- a/pkgs/development/python-modules/pylint-django/default.nix
+++ b/pkgs/development/python-modules/pylint-django/default.nix
@@ -46,6 +46,8 @@ buildPythonPackage rec {
     "test_migrations_plugin"
     "func_noerror_model_unicode_lambda"
     "test_linter_should_be_pickleable_with_pylint_django_plugin_installed"
+    "func_noerror_model_fields"
+    "func_noerror_form_fields"
   ];
 
   pythonImportsCheck = [ "pylint_django" ];
diff --git a/pkgs/development/python-modules/pylint-flask/default.nix b/pkgs/development/python-modules/pylint-flask/default.nix
index be6f946166d17..375d1e1757745 100644
--- a/pkgs/development/python-modules/pylint-flask/default.nix
+++ b/pkgs/development/python-modules/pylint-flask/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pylint_flask" ];
 
   meta = with lib; {
-    description = "A Pylint plugin to analyze Flask applications";
+    description = "Pylint plugin to analyze Flask applications";
     homepage = "https://github.com/jschaf/pylint-flask";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ kamadorueda ];
diff --git a/pkgs/development/python-modules/pylint/default.nix b/pkgs/development/python-modules/pylint/default.nix
index cfa1b686a72a9..99f2ce5cf72a1 100644
--- a/pkgs/development/python-modules/pylint/default.nix
+++ b/pkgs/development/python-modules/pylint/default.nix
@@ -107,7 +107,7 @@ buildPythonPackage rec {
     ];
 
   meta = with lib; {
-    description = "A bug and style checker for Python";
+    description = "Bug and style checker for Python";
     homepage = "https://pylint.readthedocs.io/en/stable/";
     changelog = "https://github.com/pylint-dev/pylint/releases/tag/v${version}";
     longDescription = ''
diff --git a/pkgs/development/python-modules/pylion/default.nix b/pkgs/development/python-modules/pylion/default.nix
index db558c16856f8..92d6823ffe6d2 100644
--- a/pkgs/development/python-modules/pylion/default.nix
+++ b/pkgs/development/python-modules/pylion/default.nix
@@ -48,7 +48,7 @@ buildPythonPackage {
   '';
 
   meta = with lib; {
-    description = "A LAMMPS wrapper for molecular dynamics simulations of trapped ions";
+    description = "LAMMPS wrapper for molecular dynamics simulations of trapped ions";
     homepage = "https://bitbucket.org/dtrypogeorgos/pylion";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
diff --git a/pkgs/development/python-modules/pylpsd/default.nix b/pkgs/development/python-modules/pylpsd/default.nix
index 366ec999c5d54..f583391a0d432 100644
--- a/pkgs/development/python-modules/pylpsd/default.nix
+++ b/pkgs/development/python-modules/pylpsd/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Python implementation of the LPSD algorithm for computing power spectral density with logarithmically spaced points.";
+    description = "Python implementation of the LPSD algorithm for computing power spectral density with logarithmically spaced points";
     homepage = "https://github.com/bleykauf/py-lpsd";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
diff --git a/pkgs/development/python-modules/pylru/default.nix b/pkgs/development/python-modules/pylru/default.nix
index dd5db2771386b..d97af412e9390 100644
--- a/pkgs/development/python-modules/pylru/default.nix
+++ b/pkgs/development/python-modules/pylru/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pylru" ];
 
   meta = with lib; {
-    description = "A least recently used (LRU) cache implementation";
+    description = "Least recently used (LRU) cache implementation";
     homepage = "https://github.com/jlhutch/pylru";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ abbradar ];
diff --git a/pkgs/development/python-modules/pyls-flake8/default.nix b/pkgs/development/python-modules/pyls-flake8/default.nix
index 533ea616727f1..c8b8329797a60 100644
--- a/pkgs/development/python-modules/pyls-flake8/default.nix
+++ b/pkgs/development/python-modules/pyls-flake8/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/emanspeaks/pyls-flake8";
-    description = "A Flake8 plugin for the Python LSP Server.";
+    description = "Flake8 plugin for the Python LSP Server";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
   };
diff --git a/pkgs/development/python-modules/pylyrics/default.nix b/pkgs/development/python-modules/pylyrics/default.nix
index 4fbb9c8cfc925..00b9776380bba 100644
--- a/pkgs/development/python-modules/pylyrics/default.nix
+++ b/pkgs/development/python-modules/pylyrics/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Pythonic Implementation of lyrics.wikia.com for getting lyrics of songs ";
+    description = "Pythonic Implementation of lyrics.wikia.com for getting lyrics of songs ";
     homepage = "https://github.com/geekpradd/PyLyrics";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/pymatgen/default.nix b/pkgs/development/python-modules/pymatgen/default.nix
index 5547279c0654f..c1758da4db8e8 100644
--- a/pkgs/development/python-modules/pymatgen/default.nix
+++ b/pkgs/development/python-modules/pymatgen/default.nix
@@ -107,7 +107,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pymatgen" ];
 
   meta = with lib; {
-    description = "A robust materials analysis code that defines core object representations for structures and molecules";
+    description = "Robust materials analysis code that defines core object representations for structures and molecules";
     homepage = "https://pymatgen.org/";
     changelog = "https://github.com/materialsproject/pymatgen/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pymatreader/default.nix b/pkgs/development/python-modules/pymatreader/default.nix
index 8544d8afbb987..486e88a313a48 100644
--- a/pkgs/development/python-modules/pymatreader/default.nix
+++ b/pkgs/development/python-modules/pymatreader/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pymatreader" ];
 
   meta = with lib; {
-    description = "A python package to read all kinds and all versions of Matlab mat files";
+    description = "Python package to read all kinds and all versions of Matlab mat files";
     homepage = "https://gitlab.com/obob/pymatreader/";
     changelog = "https://gitlab.com/obob/pymatreader/-/blob/${src.rev}/CHANGELOG.md";
     license = licenses.bsd2;
diff --git a/pkgs/development/python-modules/pymatting/default.nix b/pkgs/development/python-modules/pymatting/default.nix
index 14acf4515b814..46c2ee9bd2dfa 100644
--- a/pkgs/development/python-modules/pymatting/default.nix
+++ b/pkgs/development/python-modules/pymatting/default.nix
@@ -45,7 +45,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python library for alpha matting";
+    description = "Python library for alpha matting";
     homepage = "https://github.com/pymatting/pymatting";
     changelog = "https://github.com/pymatting/pymatting/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pymbolic/default.nix b/pkgs/development/python-modules/pymbolic/default.nix
index 5b873c4e124d8..a5d2063c2b6b2 100644
--- a/pkgs/development/python-modules/pymbolic/default.nix
+++ b/pkgs/development/python-modules/pymbolic/default.nix
@@ -45,7 +45,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pymbolic" ];
 
   meta = with lib; {
-    description = "A package for symbolic computation";
+    description = "Package for symbolic computation";
     homepage = "https://documen.tician.de/pymbolic/";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/pymc/default.nix b/pkgs/development/python-modules/pymc/default.nix
index 91a56eb8c6c9e..0a0075ecf9e53 100644
--- a/pkgs/development/python-modules/pymc/default.nix
+++ b/pkgs/development/python-modules/pymc/default.nix
@@ -12,12 +12,13 @@
   rich,
   scipy,
   setuptools,
+  threadpoolctl,
   typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "pymc";
-  version = "5.15.0";
+  version = "5.15.1";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -26,7 +27,7 @@ buildPythonPackage rec {
     owner = "pymc-devs";
     repo = "pymc";
     rev = "refs/tags/v${version}";
-    hash = "sha256-9AqnJOm0yQOOoksg1lpI4EcduU5xDjnIplOzVJIwQFo=";
+    hash = "sha256-wVz/sn9XbbYMAfClRBx6iK9+UKzy5e2oyH5ABGfNCIM=";
   };
 
   postPatch = ''
@@ -45,6 +46,7 @@ buildPythonPackage rec {
     pytensor
     rich
     scipy
+    threadpoolctl
     typing-extensions
   ];
 
@@ -54,12 +56,12 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "pymc" ];
 
-  meta = with lib; {
+  meta = {
     description = "Bayesian estimation, particularly using Markov chain Monte Carlo (MCMC)";
     homepage = "https://github.com/pymc-devs/pymc";
     changelog = "https://github.com/pymc-devs/pymc/releases/tag/v${version}";
-    license = licenses.asl20;
-    maintainers = with maintainers; [
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [
       nidabdella
       ferrine
     ];
diff --git a/pkgs/development/python-modules/pymdstat/default.nix b/pkgs/development/python-modules/pymdstat/default.nix
index 96a17ca724f9d..ecc913b075b14 100644
--- a/pkgs/development/python-modules/pymdstat/default.nix
+++ b/pkgs/development/python-modules/pymdstat/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pymdstat" ];
 
   meta = with lib; {
-    description = "A pythonic library to parse Linux /proc/mdstat file";
+    description = "Pythonic library to parse Linux /proc/mdstat file";
     homepage = "https://github.com/nicolargo/pymdstat";
     maintainers = with maintainers; [ rhoriguchi ];
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pymetar/default.nix b/pkgs/development/python-modules/pymetar/default.nix
index fc9009e532918..3d4ba5a05089e 100644
--- a/pkgs/development/python-modules/pymetar/default.nix
+++ b/pkgs/development/python-modules/pymetar/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A command-line tool to show the weather report by a given station ID";
+    description = "Command-line tool to show the weather report by a given station ID";
     mainProgram = "pymetar";
     homepage = "https://github.com/klausman/pymetar";
     license = licenses.gpl2Plus;
diff --git a/pkgs/development/python-modules/pymetno/default.nix b/pkgs/development/python-modules/pymetno/default.nix
index 90d1a42112ea4..7c6d63bf2e54d 100644
--- a/pkgs/development/python-modules/pymetno/default.nix
+++ b/pkgs/development/python-modules/pymetno/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A library to communicate with the met.no API";
+    description = "Library to communicate with the met.no API";
     homepage = "https://github.com/Danielhiversen/pyMetno/";
     changelog = "https://github.com/Danielhiversen/pyMetno/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pymilter/default.nix b/pkgs/development/python-modules/pymilter/default.nix
index d26e354d54b27..32b7cfcc9bbcd 100644
--- a/pkgs/development/python-modules/pymilter/default.nix
+++ b/pkgs/development/python-modules/pymilter/default.nix
@@ -31,9 +31,9 @@ buildPythonPackage rec {
     pydns
   ];
   patches = [
-    (fetchpatch {
+    (fetchpatch { # https://github.com/sdgathman/pymilter/pull/57
       name = "Remove-calls-to-the-deprecated-method-assertEquals";
-      url = "https://github.com/sdgathman/pymilter/pull/57.patch";
+      url = "https://github.com/sdgathman/pymilter/commit/1ead9028fc63ae3ec6ea3b0c438e6ed088a2b20e.patch";
       hash = "sha256-/5LlDR15nMR3l7rkVjT3w4FbDTFAAgNdERWlPNL2TVg=";
     })
   ];
diff --git a/pkgs/development/python-modules/pymongo-inmemory/default.nix b/pkgs/development/python-modules/pymongo-inmemory/default.nix
index da76c5d01df3e..431b08d76af22 100644
--- a/pkgs/development/python-modules/pymongo-inmemory/default.nix
+++ b/pkgs/development/python-modules/pymongo-inmemory/default.nix
@@ -3,7 +3,6 @@
   buildPythonPackage,
   pythonOlder,
   fetchFromGitHub,
-  fetchpatch,
   poetry-core,
   pymongo,
   pytestCheckHook,
@@ -11,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pymongo-inmemory";
-  version = "0.4.1";
+  version = "0.4.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +19,7 @@ buildPythonPackage rec {
     owner = "kaizendorks";
     repo = "pymongo_inmemory";
     rev = "refs/tags/v${version}";
-    hash = "sha256-vYWVMSawk+03ie3PtqOyzd6wxiviq+IzyQ8bvEHNHfc=";
+    hash = "sha256-FDHHf9x62EqNcHjDF2vH8w8WG/15efEe+fDqGiiOe4A=";
   };
 
   postPatch = ''
@@ -56,7 +55,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/kaizendorks/pymongo_inmemory";
-    description = "A mongo mocking library with an ephemeral MongoDB running in memory";
+    description = "Mongo mocking library with an ephemeral MongoDB running in memory";
     maintainers = with lib.maintainers; [ pbsds ];
     license = lib.licenses.mit;
   };
diff --git a/pkgs/development/python-modules/pymsgbox/default.nix b/pkgs/development/python-modules/pymsgbox/default.nix
index 9da299bb9eac8..d33838cf5c849 100644
--- a/pkgs/development/python-modules/pymsgbox/default.nix
+++ b/pkgs/development/python-modules/pymsgbox/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pymsgbox" ];
 
   meta = with lib; {
-    description = "A simple, cross-platform, pure Python module for JavaScript-like message boxes";
+    description = "Simple, cross-platform, pure Python module for JavaScript-like message boxes";
     homepage = "https://github.com/asweigart/PyMsgBox";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jluttine ];
diff --git a/pkgs/development/python-modules/pynac/default.nix b/pkgs/development/python-modules/pynac/default.nix
index 0f1c016ad3dc3..0a5e1257a94c8 100644
--- a/pkgs/development/python-modules/pynac/default.nix
+++ b/pkgs/development/python-modules/pynac/default.nix
@@ -16,7 +16,7 @@ buildPythonPackage {
 
   meta = with lib; {
     homepage = "https://github.com/se-esss-litterbox/Pynac";
-    description = "A Python wrapper around the Dynac charged particle simulator";
+    description = "Python wrapper around the Dynac charged particle simulator";
     license = licenses.gpl3;
   };
 }
diff --git a/pkgs/development/python-modules/pynamecheap/default.nix b/pkgs/development/python-modules/pynamecheap/default.nix
index 6a974f1684688..adf63d29af72f 100644
--- a/pkgs/development/python-modules/pynamecheap/default.nix
+++ b/pkgs/development/python-modules/pynamecheap/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "Namecheap API client in Python.";
+    description = "Namecheap API client in Python";
     homepage = "https://github.com/Bemmu/PyNamecheap";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/pynanoleaf/default.nix b/pkgs/development/python-modules/pynanoleaf/default.nix
index a9864607599fd..892900c118ba5 100644
--- a/pkgs/development/python-modules/pynanoleaf/default.nix
+++ b/pkgs/development/python-modules/pynanoleaf/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/Oro/pynanoleaf";
-    description = "A Python3 wrapper for the Nanoleaf API, capable of controlling both Nanoleaf Aurora and Nanoleaf Canvas";
+    description = "Python3 wrapper for the Nanoleaf API, capable of controlling both Nanoleaf Aurora and Nanoleaf Canvas";
     license = licenses.mit;
     maintainers = with maintainers; [ oro ];
   };
diff --git a/pkgs/development/python-modules/pynetdicom/default.nix b/pkgs/development/python-modules/pynetdicom/default.nix
index d5126f11169c8..5c63fcae29ab0 100644
--- a/pkgs/development/python-modules/pynetdicom/default.nix
+++ b/pkgs/development/python-modules/pynetdicom/default.nix
@@ -3,19 +3,18 @@
   stdenv,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
+  poetry-core,
   pydicom,
   pyfakefs,
   pytestCheckHook,
   pythonAtLeast,
   pythonOlder,
-  setuptools,
   sqlalchemy,
 }:
 
 buildPythonPackage rec {
   pname = "pynetdicom";
-  version = "2.0.2";
+  version = "2.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -24,30 +23,10 @@ buildPythonPackage rec {
     owner = "pydicom";
     repo = "pynetdicom";
     rev = "refs/tags/v${version}";
-    hash = "sha256-/JWQUtFBW4uqCbs/nUxj1pRBfTCXV4wcqTkqvzpdFrM=";
+    hash = "sha256-gAgNSvNn5VsctqhbT/CzFVhwCEpZwGb1pOh0JwkuAW8=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "fix-python-3.11-test-attribute-errors.patch";
-      url = "https://github.com/pydicom/pynetdicom/pull/754/commits/2126bd932d6dfb3f07045eb9400acb7eaa1b3069.patch";
-      hash = "sha256-t6Lg0sTZSWIE5q5pkBvEoHDQ+cklDn8SgNBcFk1myp4=";
-    })
-    (fetchpatch {
-      # https://github.com/pydicom/pynetdicom/pull/848
-      name = "replace-setup-with-setup_method1.patch";
-      url = "https://github.com/pydicom/pynetdicom/commit/09b4e0901445d46868668bc69a7b4f7f00cf6cbb.patch";
-      hash = "sha256-1ea1A/LU6qY+hd23b6H4OkKHQ0hI2/MYgBgZUZE0kRU=";
-    })
-    (fetchpatch {
-      # https://github.com/pydicom/pynetdicom/pull/848
-      name = "replace-setup-with-setup_method2.patch";
-      url = "https://github.com/pydicom/pynetdicom/commit/3966c2d749eeda718caccf9a88a0495d1823825d.patch";
-      hash = "sha256-C4MSfwwxDgr5T0XQMlR5j2wElPu83TqPhjyNDvfBjJs=";
-    })
-  ];
-
-  build-system = [ setuptools ];
+  build-system = [ poetry-core ];
 
   dependencies = [ pydicom ];
 
diff --git a/pkgs/development/python-modules/pyngrok/default.nix b/pkgs/development/python-modules/pyngrok/default.nix
index 427b7245219fc..345f3cec33533 100644
--- a/pkgs/development/python-modules/pyngrok/default.nix
+++ b/pkgs/development/python-modules/pyngrok/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pyngrok" ];
 
   meta = with lib; {
-    description = "A Python wrapper for ngrok";
+    description = "Python wrapper for ngrok";
     homepage = "https://github.com/alexdlaird/pyngrok";
     changelog = "https://github.com/alexdlaird/pyngrok/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pynmeagps/default.nix b/pkgs/development/python-modules/pynmeagps/default.nix
index fa306cf7b52bc..6129f591009d1 100644
--- a/pkgs/development/python-modules/pynmeagps/default.nix
+++ b/pkgs/development/python-modules/pynmeagps/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pynmeagps";
-  version = "1.0.36";
+  version = "1.0.38";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,12 +18,12 @@ buildPythonPackage rec {
     owner = "semuconsulting";
     repo = "pynmeagps";
     rev = "refs/tags/v${version}";
-    hash = "sha256-n7dCr85TeBLxdrD1ZAA7PGJd9+3+xFJ8gjRU/JOFysY=";
+    hash = "sha256-sD33fcYqTGsLLSsz6ULM5FsHHen4uROJzaWGCDrIsFI=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace-fail "--cov --cov-report html --cov-fail-under 95" ""
+      --replace-fail "--cov --cov-report html --cov-fail-under 98" ""
   '';
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/pynput/default.nix b/pkgs/development/python-modules/pynput/default.nix
index 7cf59cda8eec7..ed6b964f0ca57 100644
--- a/pkgs/development/python-modules/pynput/default.nix
+++ b/pkgs/development/python-modules/pynput/default.nix
@@ -62,7 +62,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A library to control and monitor input devices";
+    description = "Library to control and monitor input devices";
     homepage = "https://github.com/moses-palmer/pynput";
     license = licenses.lgpl3;
     maintainers = with maintainers; [ nickhu ];
diff --git a/pkgs/development/python-modules/pynut2/default.nix b/pkgs/development/python-modules/pynut2/default.nix
index e49d8371cf4a5..44c687f125927 100644
--- a/pkgs/development/python-modules/pynut2/default.nix
+++ b/pkgs/development/python-modules/pynut2/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "API overhaul of PyNUT, a Python library to allow communication with NUT (Network UPS Tools) servers.";
+    description = "API overhaul of PyNUT, a Python library to allow communication with NUT (Network UPS Tools) servers";
     homepage = "https://github.com/mezz64/python-nut2";
     license = with licenses; [ gpl3Plus ];
     maintainers = [ maintainers.luker ];
diff --git a/pkgs/development/python-modules/pyocr/default.nix b/pkgs/development/python-modules/pyocr/default.nix
index 91366a33c9969..7df733b680a0f 100644
--- a/pkgs/development/python-modules/pyocr/default.nix
+++ b/pkgs/development/python-modules/pyocr/default.nix
@@ -55,7 +55,7 @@ buildPythonPackage rec {
   meta = with lib; {
     inherit (src.meta) homepage;
     changelog = "https://gitlab.gnome.org/World/OpenPaperwork/pyocr/-/blob/${version}/ChangeLog";
-    description = "A Python wrapper for Tesseract and Cuneiform";
+    description = "Python wrapper for Tesseract and Cuneiform";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [
       symphorien
diff --git a/pkgs/development/python-modules/pyogrio/default.nix b/pkgs/development/python-modules/pyogrio/default.nix
new file mode 100644
index 0000000000000..551fde29bafe8
--- /dev/null
+++ b/pkgs/development/python-modules/pyogrio/default.nix
@@ -0,0 +1,75 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  certifi,
+  cython,
+  gdal,
+  numpy,
+  packaging,
+  setuptools,
+  versioneer,
+  wheel,
+}:
+
+buildPythonPackage rec {
+  pname = "pyogrio";
+  version = "0.8.0";
+  pyproject = true;
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "geopandas";
+    repo = "pyogrio";
+    rev = "v${version}";
+    hash = "sha256-h4Rv5xOWSJSv0nLbosviz5EiF/IsZO5wzBel9YRd0Bg=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail "versioneer[toml]==0.28" "versioneer[toml]"
+  '' + lib.optionalString (!pythonOlder "3.12") ''
+    substituteInPlace setup.py \
+      --replace-fail "distutils" "setuptools._distutils"
+  '';
+
+  nativeBuildInputs = [
+    cython
+    gdal # for gdal-config
+    setuptools
+    versioneer
+    wheel
+  ] ++ versioneer.optional-dependencies.toml;
+
+  buildInputs = [ gdal ];
+
+  propagatedBuildInputs = [
+    certifi
+    numpy
+    packaging
+  ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  preCheck = ''
+    python setup.py build_ext --inplace
+  '';
+
+  pytestFlagsArray = [
+    # disable tests which require network access
+    "-m 'not network'"
+  ];
+
+  pythonImportsCheck = [ "pyogrio" ];
+
+  meta = {
+    description = "Vectorized spatial vector file format I/O using GDAL/OGR";
+    homepage = "https://pyogrio.readthedocs.io/";
+    changelog = "https://github.com/geopandas/pyogrio/blob/${src.rev}/CHANGES.md";
+    license = lib.licenses.mit;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/pyomo/default.nix b/pkgs/development/python-modules/pyomo/default.nix
index b96dcac4fd35e..f91ae1753966a 100644
--- a/pkgs/development/python-modules/pyomo/default.nix
+++ b/pkgs/development/python-modules/pyomo/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pyomo";
-  version = "6.7.2";
+  version = "6.7.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     repo = "pyomo";
     owner = "pyomo";
     rev = "refs/tags/${version}";
-    hash = "sha256-v3KVb9KZPbUlpRySzJV8dmApScKT06aJc8SULCHcnPI=";
+    hash = "sha256-6qpJH6WkrTzsDCtvoGMzZgw1UeSIIyI3jSA8JMsUC4E=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/pyopencl/default.nix b/pkgs/development/python-modules/pyopencl/default.nix
index d0a3ffba5c71c..ffce3a97b0c65 100644
--- a/pkgs/development/python-modules/pyopencl/default.nix
+++ b/pkgs/development/python-modules/pyopencl/default.nix
@@ -3,7 +3,6 @@
   stdenv,
   fetchPypi,
   buildPythonPackage,
-  fetchpatch,
   appdirs,
   cffi,
   decorator,
@@ -15,7 +14,6 @@
   opencl-headers,
   platformdirs,
   pybind11,
-  pytest,
   pytestCheckHook,
   pytools,
   setuptools,
diff --git a/pkgs/development/python-modules/pyopenweathermap/default.nix b/pkgs/development/python-modules/pyopenweathermap/default.nix
new file mode 100644
index 0000000000000..a683857c12bff
--- /dev/null
+++ b/pkgs/development/python-modules/pyopenweathermap/default.nix
@@ -0,0 +1,52 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  poetry-core,
+
+  # dependencies
+  aiohttp,
+
+  # tests
+  pytest-asyncio,
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "pyopenweathermap";
+  version = "0.0.10";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "freekode";
+    repo = "pyopenweathermap";
+    # https://github.com/freekode/pyopenweathermap/issues/2
+    rev = "refs/tags/v${version}";
+    hash = "sha256-wEcE4IYVvxEwW5Hhz+DqDIqbjd5/O1hEr7dGgiuMI00=";
+  };
+
+  build-system = [ poetry-core ];
+
+  dependencies = [ aiohttp ];
+
+  nativeCheckInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [
+    "-m"
+    "'not network'"
+  ];
+
+  pythonImportsCheck = [ "pyopenweathermap" ];
+
+  meta = with lib; {
+    description = "Python library for OpenWeatherMap API for Home Assistant";
+    homepage = "https://github.com/freekode/pyopenweathermap";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyorthanc/default.nix b/pkgs/development/python-modules/pyorthanc/default.nix
index 0c33fc2319744..a65d8d6b983bd 100644
--- a/pkgs/development/python-modules/pyorthanc/default.nix
+++ b/pkgs/development/python-modules/pyorthanc/default.nix
@@ -3,7 +3,6 @@
   buildPythonPackage,
   fetchFromGitHub,
   pythonOlder,
-  pythonRelaxDepsHook,
   poetry-core,
   httpx,
   pydicom,
@@ -11,30 +10,25 @@
 
 buildPythonPackage rec {
   pname = "pyorthanc";
-  version = "1.16.1";
+  version = "1.18.0";
   disabled = pythonOlder "3.8";
 
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "gacou54";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-6l3L0YUAqedyRjlQ6K3SaAMdGK2C0AeKpJj6MyXi4RA=";
+    hash = "sha256-ObZjTiEB4a7ForsugzKZDdIsTEWOX1zbv53ZJ4AllHE=";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     httpx
     pydicom
   ];
 
-  pythonRelaxDeps = [ "httpx" ];
-
   doCheck = false; # requires orthanc server (not in Nixpkgs)
 
   pythonImportsCheck = [ "pyorthanc" ];
diff --git a/pkgs/development/python-modules/pyoverkiz/default.nix b/pkgs/development/python-modules/pyoverkiz/default.nix
index aa2048ea50c4b..e006bbcefd514 100644
--- a/pkgs/development/python-modules/pyoverkiz/default.nix
+++ b/pkgs/development/python-modules/pyoverkiz/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "pyoverkiz";
-  version = "1.13.10";
+  version = "1.13.11";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "iMicknl";
     repo = "python-overkiz-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-05S0tCfCXgvkheUBVDGX8my0c7SCi/ran2emjaGWd9s=";
+    hash = "sha256-N1PcyaVvPBX9ahHedR7pow6jAKwVOMmKqddWhYLtT8w=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pypdf/default.nix b/pkgs/development/python-modules/pypdf/default.nix
index c8e89bb74b366..3ecbde22d6900 100644
--- a/pkgs/development/python-modules/pypdf/default.nix
+++ b/pkgs/development/python-modules/pypdf/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch2,
   pythonOlder,
 
   # build-system
@@ -28,7 +27,7 @@
 
 buildPythonPackage rec {
   pname = "pypdf";
-  version = "4.1.0";
+  version = "4.2.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
@@ -37,18 +36,9 @@ buildPythonPackage rec {
     rev = "refs/tags/${version}";
     # fetch sample files used in tests
     fetchSubmodules = true;
-    hash = "sha256-Z3flDC102FwEaNtef0YAfmAFSxpimQNyxt9tRfpKueg=";
+    hash = "sha256-ksLpxfRxrNVXezF0VjbAqadpF6bv/SAOOnCKabhugo0=";
   };
 
-  patches = [
-    (fetchpatch2 {
-      # add missing test marker on networked test
-      url = "https://github.com/py-pdf/pypdf/commit/f43268734a529d4098e6258bf346148fd24c54f0.patch";
-      includes = [ "tests/test_generic.py" ];
-      hash = "sha256-Ow32UB4crs3OgT+AmA9TNmcO5Y9SoSahybzD3AmWmVk=";
-    })
-  ];
-
   outputs = [
     "out"
     "doc"
@@ -90,18 +80,11 @@ buildPythonPackage rec {
     "'not enable_socket'"
   ];
 
-  disabledTests = [
-    # requires fpdf2 which we don't package yet
-    "test_compression"
-    # infinite recursion when including fpdf2
-    "test_merging_many_temporary_files"
-  ];
-
   meta = with lib; {
-    description = "A pure-python PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files";
+    description = "Pure-python PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files";
     homepage = "https://github.com/py-pdf/pypdf";
     changelog = "https://github.com/py-pdf/pypdf/blob/${src.rev}/CHANGELOG.md";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ javaes ];
   };
 }
diff --git a/pkgs/development/python-modules/pypdf2/default.nix b/pkgs/development/python-modules/pypdf2/default.nix
index caf9223b03394..d40c07114504f 100644
--- a/pkgs/development/python-modules/pypdf2/default.nix
+++ b/pkgs/development/python-modules/pypdf2/default.nix
@@ -1,18 +1,17 @@
 {
-  lib,
   buildPythonPackage,
   fetchPypi,
   flit-core,
+  lib,
   pythonOlder,
   typing-extensions,
-  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "pypdf2";
   version = "3.0.1";
 
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchPypi {
     pname = "PyPDF2";
@@ -22,14 +21,15 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.10") [ typing-extensions ];
+  dependencies = lib.optionals (pythonOlder "3.10") [ typing-extensions ];
 
-  nativeCheckInputs = [ unittestCheckHook ];
+  # no test
+  doCheck = false;
 
   pythonImportsCheck = [ "PyPDF2" ];
 
   meta = with lib; {
-    description = "A Pure-Python library built as a PDF toolkit";
+    description = "Pure-Python library built as a PDF toolkit";
     homepage = "https://pypdf2.readthedocs.io/";
     changelog = "https://github.com/py-pdf/PyPDF2/raw/${version}/CHANGELOG.md";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/pypdf3/default.nix b/pkgs/development/python-modules/pypdf3/default.nix
index 069dde65468f9..f611eb5ae0b9f 100644
--- a/pkgs/development/python-modules/pypdf3/default.nix
+++ b/pkgs/development/python-modules/pypdf3/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ tqdm ];
 
   meta = with lib; {
-    description = "A Pure-Python library built as a PDF toolkit";
+    description = "Pure-Python library built as a PDF toolkit";
     homepage = "https://github.com/sfneal/PyPDF3";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ambroisie ];
diff --git a/pkgs/development/python-modules/pyperscan/default.nix b/pkgs/development/python-modules/pyperscan/default.nix
index 8659fb7937a00..fae3060a744a6 100644
--- a/pkgs/development/python-modules/pyperscan/default.nix
+++ b/pkgs/development/python-modules/pyperscan/default.nix
@@ -11,20 +11,20 @@
 
 buildPythonPackage rec {
   pname = "pyperscan";
-  version = "0.2.2";
+  version = "0.3.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "vlaci";
     repo = "pyperscan";
     rev = "v${version}";
-    hash = "sha256-ioNGEmWy+lEzazF1RzMFS06jYLNYll3QSlWAF0AoU7Y=";
+    hash = "sha256-uGZ0XFxnZHSLEWcwoHVd+xMulDRqEIrQ5Lf7886GdlM=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-2zppyxJ+XaI/JCkp7s27/jgtSbwxnI4Yil5KT8WgrVI=";
+    hash = "sha256-a4jNofPIHoKwsD82y2hG2QPu+eM5D7FSGCm2nDo2cLA=";
   };
 
   nativeBuildInputs = with rustPlatform; [
@@ -37,14 +37,12 @@ buildPythonPackage rec {
 
   buildInputs = [ vectorscan ] ++ lib.optional stdenv.isDarwin libiconv;
 
-  # Disable default features to use the system vectorscan library instead of a vendored one.
-  maturinBuildFlags = [ "--no-default-features" ];
-
   pythonImportsCheck = [ "pyperscan" ];
 
   meta = with lib; {
-    description = "a hyperscan binding for Python, which supports vectorscan";
-    homepage = "https://github.com/vlaci/pyperscan";
+    description = "Hyperscan binding for Python, which supports vectorscan";
+    homepage = "https://vlaci.github.io/pyperscan/";
+    changelog = "https://github.com/vlaci/pyperscan/releases/tag/${src.rev}";
     platforms = platforms.unix;
     license = with licenses; [
       asl20 # or
diff --git a/pkgs/development/python-modules/pypika/default.nix b/pkgs/development/python-modules/pypika/default.nix
index b55a2c9c59730..1acaee0a89f2b 100644
--- a/pkgs/development/python-modules/pypika/default.nix
+++ b/pkgs/development/python-modules/pypika/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A python SQL query builder";
+    description = "Python SQL query builder";
     homepage = "https://github.com/kayak/pypika";
     license = licenses.asl20;
     maintainers = with maintainers; [ blaggacao ];
diff --git a/pkgs/development/python-modules/pyproj/default.nix b/pkgs/development/python-modules/pyproj/default.nix
index f76fd0e0f4f5e..4b3a6fedd0301 100644
--- a/pkgs/development/python-modules/pyproj/default.nix
+++ b/pkgs/development/python-modules/pyproj/default.nix
@@ -2,17 +2,18 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  python,
-  proj,
+  fetchpatch,
+  pytestCheckHook,
   pythonOlder,
   substituteAll,
+
+  certifi,
   cython,
-  pytestCheckHook,
   mock,
-  certifi,
   numpy,
-  shapely,
   pandas,
+  proj,
+  shapely,
   xarray,
 }:
 
@@ -36,6 +37,12 @@ buildPythonPackage rec {
       proj = proj;
       projdev = proj.dev;
     })
+
+    # fix test failure caused by update of EPSG DB
+    (fetchpatch {
+      url = "https://github.com/pyproj4/pyproj/commit/3f7c7e5bcec33d9b2f37ceb03c484ea318dff3ce.patch";
+      hash = "sha256-0J8AlInuhFDAYIBJAJ00XbqIanJY/D8xPVwlOapmLDE=";
+    })
   ];
 
   nativeBuildInputs = [ cython ];
@@ -44,11 +51,11 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ certifi ];
 
   nativeCheckInputs = [
-    pytestCheckHook
     mock
     numpy
-    shapely
     pandas
+    pytestCheckHook
+    shapely
     xarray
   ];
 
diff --git a/pkgs/development/python-modules/pyptlib/default.nix b/pkgs/development/python-modules/pyptlib/default.nix
index 565cbbf9be597..04a7a13248a2f 100644
--- a/pkgs/development/python-modules/pyptlib/default.nix
+++ b/pkgs/development/python-modules/pyptlib/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://pypi.org/project/pyptlib/";
-    description = "A python implementation of the Pluggable Transports for Circumvention specification for Tor";
+    description = "Python implementation of the Pluggable Transports for Circumvention specification for Tor";
     license = licenses.bsd2;
   };
 }
diff --git a/pkgs/development/python-modules/pypugjs/default.nix b/pkgs/development/python-modules/pypugjs/default.nix
index 11a38454837c3..32a93e89c57a1 100644
--- a/pkgs/development/python-modules/pypugjs/default.nix
+++ b/pkgs/development/python-modules/pypugjs/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "pypugjs";
-  version = "5.9.12";
+  version = "5.10.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "kakulukia";
     repo = "pypugjs";
-    rev = "v${version}";
-    hash = "sha256-6tIhKCa8wg01gNFygCS6GdUHfbWBu7wOZeMkCExRR34=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-W+EVNxT2OimNENHe4lJDn6Wm1EbBysGuCD3/Wkdew/U=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyqrcode/default.nix b/pkgs/development/python-modules/pyqrcode/default.nix
index 1c97917bd46d0..c624964eecf3e 100644
--- a/pkgs/development/python-modules/pyqrcode/default.nix
+++ b/pkgs/development/python-modules/pyqrcode/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A QR code generator written purely in Python with SVG, EPS, PNG and terminal output";
+    description = "QR code generator written purely in Python with SVG, EPS, PNG and terminal output";
     homepage = "https://github.com/mnooner256/pyqrcode";
     license = licenses.bsd3;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/pyqtdarktheme/default.nix b/pkgs/development/python-modules/pyqtdarktheme/default.nix
index 9771dc04c76d3..2d48412270719 100644
--- a/pkgs/development/python-modules/pyqtdarktheme/default.nix
+++ b/pkgs/development/python-modules/pyqtdarktheme/default.nix
@@ -55,7 +55,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A flat dark theme for PySide and PyQt";
+    description = "Flat dark theme for PySide and PyQt";
     homepage = "https://pyqtdarktheme.readthedocs.io/en/stable";
     license = licenses.mit;
     maintainers = with maintainers; [ paveloom ];
diff --git a/pkgs/development/python-modules/pyquaternion/default.nix b/pkgs/development/python-modules/pyquaternion/default.nix
index 35d5a0442be5d..ac374c9572bb4 100644
--- a/pkgs/development/python-modules/pyquaternion/default.nix
+++ b/pkgs/development/python-modules/pyquaternion/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pyquaternion" ];
 
   meta = with lib; {
-    description = "Library for representing and using quaternions.";
+    description = "Library for representing and using quaternions";
     homepage = "http://kieranwynn.github.io/pyquaternion/";
     license = licenses.mit;
     maintainers = with maintainers; [ lucasew ];
diff --git a/pkgs/development/python-modules/pyquery/default.nix b/pkgs/development/python-modules/pyquery/default.nix
index 1f1d25ee605e6..e066b9258411e 100644
--- a/pkgs/development/python-modules/pyquery/default.nix
+++ b/pkgs/development/python-modules/pyquery/default.nix
@@ -60,7 +60,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A jquery-like library for Python";
+    description = "Jquery-like library for Python";
     homepage = "https://github.com/gawel/pyquery";
     changelog = "https://github.com/gawel/pyquery/blob/${version}/CHANGES.rst";
     license = licenses.bsd0;
diff --git a/pkgs/development/python-modules/pyquil/default.nix b/pkgs/development/python-modules/pyquil/default.nix
index dc718777af700..77f2f3df334ed 100644
--- a/pkgs/development/python-modules/pyquil/default.nix
+++ b/pkgs/development/python-modules/pyquil/default.nix
@@ -3,7 +3,6 @@
   buildPythonPackage,
   deprecated,
   fetchFromGitHub,
-  importlib-metadata,
   ipython,
   lark,
   matplotlib-inline,
@@ -12,7 +11,6 @@
   numpy,
   packaging,
   poetry-core,
-  pydantic,
   pytest-asyncio,
   pytest-mock,
   pytestCheckHook,
@@ -27,20 +25,21 @@
   types-deprecated,
   types-python-dateutil,
   types-retry,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "pyquil";
-  version = "4.8.0";
+  version = "4.9.2";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "rigetti";
     repo = "pyquil";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MGI+R3oteqDWsXP+SlAGSRGiQiAj44YG6V7o90A4Krc=";
+    hash = "sha256-TxmQ9QXTTr4Xv37WmgArfK8Q5H1zAu8qx8wRsvK+vVM=";
   };
 
   pythonRelaxDeps = [
@@ -61,7 +60,6 @@ buildPythonPackage rec {
     networkx
     numpy
     packaging
-    pydantic
     qcs-sdk-python
     rpcq
     scipy
@@ -69,7 +67,8 @@ buildPythonPackage rec {
     types-deprecated
     types-python-dateutil
     types-retry
-  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
+    typing-extensions
+  ];
 
   nativeCheckInputs = [
     nest-asyncio
diff --git a/pkgs/development/python-modules/pyrabbit2/default.nix b/pkgs/development/python-modules/pyrabbit2/default.nix
index 606303f8d166a..cd1da7f061843 100644
--- a/pkgs/development/python-modules/pyrabbit2/default.nix
+++ b/pkgs/development/python-modules/pyrabbit2/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ requests ];
 
   meta = with lib; {
-    description = "A Pythonic interface to the RabbitMQ Management HTTP API";
+    description = "Pythonic interface to the RabbitMQ Management HTTP API";
     homepage = "https://github.com/deslum/pyrabbit2";
     license = licenses.mit;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/pyramid-exclog/default.nix b/pkgs/development/python-modules/pyramid-exclog/default.nix
index 3b89ba49594a9..b88777f8692da 100644
--- a/pkgs/development/python-modules/pyramid-exclog/default.nix
+++ b/pkgs/development/python-modules/pyramid-exclog/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pyramid_exclog" ];
 
   meta = with lib; {
-    description = "A package which logs to a Python logger when an exception is raised by a Pyramid application";
+    description = "Package which logs to a Python logger when an exception is raised by a Pyramid application";
     homepage = "https://docs.pylonsproject.org/";
     license = licenses.bsd0;
     maintainers = with maintainers; [ domenkozar ];
diff --git a/pkgs/development/python-modules/pyregion/default.nix b/pkgs/development/python-modules/pyregion/default.nix
index 50d66c8e7319d..d096a5d0c7b85 100644
--- a/pkgs/development/python-modules/pyregion/default.nix
+++ b/pkgs/development/python-modules/pyregion/default.nix
@@ -3,7 +3,6 @@
   stdenv,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   # needed to build
   cython,
   oldest-supported-numpy,
diff --git a/pkgs/development/python-modules/pyreqwest-impersonate/default.nix b/pkgs/development/python-modules/pyreqwest-impersonate/default.nix
new file mode 100644
index 0000000000000..39e57b633170e
--- /dev/null
+++ b/pkgs/development/python-modules/pyreqwest-impersonate/default.nix
@@ -0,0 +1,61 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  rustPlatform,
+  pytest,
+  runCommand,
+  boringssl,
+}:
+
+let
+  # boring-sys expects the static libraries in build/ instead of lib/
+  boringssl-wrapper = runCommand "boringssl-wrapper" { } ''
+    mkdir $out
+    cd $out
+    ln -s ${boringssl.out}/lib build
+    ln -s ${boringssl.dev}/include include
+  '';
+in
+buildPythonPackage rec {
+  pname = "pyreqwest-impersonate";
+  version = "0.4.7";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "deedy5";
+    repo = "pyreqwest_impersonate";
+    rev = "v${version}";
+    hash = "sha256-ck5RqSUgnLAjZ+1A1wQRyRMahJRq3nzYvE+WBpu6wk0=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-eGmx4ftS1D7qb2pPZxp4XE44teXcRwKs3tcKm8otsaM=";
+  };
+
+  nativeBuildInputs = [
+    rustPlatform.bindgenHook
+    rustPlatform.cargoSetupHook
+    rustPlatform.maturinBuildHook
+  ];
+
+  env.BORING_BSSL_PATH = boringssl-wrapper;
+
+  optional-dependencies = {
+    dev = [ pytest ];
+  };
+
+  # Test use network
+  doCheck = false;
+
+  pythonImportsCheck = [ "pyreqwest_impersonate" ];
+
+  meta = {
+    description = "HTTP client that can impersonate web browsers (Chrome/Edge/OkHttp/Safari), mimicking their headers and TLS/JA3/JA4/HTTP2 fingerprints";
+    homepage = "https://github.com/deedy5/pyreqwest_impersonate";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ drupol ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyring-buffer/default.nix b/pkgs/development/python-modules/pyring-buffer/default.nix
index b693c40150c96..afe261fa46019 100644
--- a/pkgs/development/python-modules/pyring-buffer/default.nix
+++ b/pkgs/development/python-modules/pyring-buffer/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pyring_buffer" ];
 
   meta = with lib; {
-    description = "A pure Python ring buffer for bytes";
+    description = "Pure Python ring buffer for bytes";
     homepage = "https://github.com/rhasspy/pyring-buffer";
     changelog = "https://github.com/rhasspy/pyring-buffer/blob/${src.rev}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/pyrisco/default.nix b/pkgs/development/python-modules/pyrisco/default.nix
index 129d5935fb351..f01ff7b0f2e44 100644
--- a/pkgs/development/python-modules/pyrisco/default.nix
+++ b/pkgs/development/python-modules/pyrisco/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pyrisco";
-  version = "0.6.2";
+  version = "0.6.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "OnFreund";
     repo = "pyrisco";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sksM84BvBVfegYtRo1NNRbDvqNCr/V4K2Ol9X2Il8D0=";
+    hash = "sha256-E/KVQSoyJWJJ+UFtu3SzJDfXu2cj7A0puYgcUxrHKRo=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/pyro-api/default.nix b/pkgs/development/python-modules/pyro-api/default.nix
index a3260a8aabdcb..c5f2ea37e0c80 100644
--- a/pkgs/development/python-modules/pyro-api/default.nix
+++ b/pkgs/development/python-modules/pyro-api/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = {
-    description = "Generic API for dispatch to Pyro backends.";
+    description = "Generic API for dispatch to Pyro backends";
     homepage = "http://pyro.ai";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ georgewhewell ];
diff --git a/pkgs/development/python-modules/pyrtlsdr/default.nix b/pkgs/development/python-modules/pyrtlsdr/default.nix
index 4097cfddbdfea..21a3b1b4bd1ab 100644
--- a/pkgs/development/python-modules/pyrtlsdr/default.nix
+++ b/pkgs/development/python-modules/pyrtlsdr/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchPypi,
-  fetchpatch,
   rtl-sdr,
   setuptools,
   pythonOlder,
diff --git a/pkgs/development/python-modules/pyrympro/default.nix b/pkgs/development/python-modules/pyrympro/default.nix
new file mode 100644
index 0000000000000..70ed0c42a0e63
--- /dev/null
+++ b/pkgs/development/python-modules/pyrympro/default.nix
@@ -0,0 +1,39 @@
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pythonOlder,
+}:
+
+buildPythonPackage rec {
+  pname = "pyrympro";
+  version = "0.0.8";
+  pyproject = true;
+
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "OnFreund";
+    repo = "pyrympro";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-mRvKLPgtBgmFDTHqra7GslxsgsJpQ2w/DE0Zgz5jujk=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [ aiohttp ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "pyrympro" ];
+
+  meta = with lib; {
+    description = "Module to interact with Read Your Meter Pro";
+    homepage = "https://github.com/OnFreund/pyrympro";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pysam/default.nix b/pkgs/development/python-modules/pysam/default.nix
index 198dd2e5426fd..05efd63de69f9 100644
--- a/pkgs/development/python-modules/pysam/default.nix
+++ b/pkgs/development/python-modules/pysam/default.nix
@@ -76,7 +76,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A python module for reading, manipulating and writing genome data sets";
+    description = "Python module for reading, manipulating and writing genome data sets";
     downloadPage = "https://github.com/pysam-developers/pysam";
     homepage = "https://pysam.readthedocs.io/";
     maintainers = with maintainers; [ unode ];
diff --git a/pkgs/development/python-modules/pysaml2/default.nix b/pkgs/development/python-modules/pysaml2/default.nix
index 9087ad0873625..91fda24bfef6b 100644
--- a/pkgs/development/python-modules/pysaml2/default.nix
+++ b/pkgs/development/python-modules/pysaml2/default.nix
@@ -4,7 +4,6 @@
   cryptography,
   defusedxml,
   fetchFromGitHub,
-  fetchPypi,
   paste,
   poetry-core,
   pyasn1,
diff --git a/pkgs/development/python-modules/pysc2/default.nix b/pkgs/development/python-modules/pysc2/default.nix
index 0ce857f1eae17..3ee18d12e4de7 100644
--- a/pkgs/development/python-modules/pysc2/default.nix
+++ b/pkgs/development/python-modules/pysc2/default.nix
@@ -55,7 +55,7 @@ buildPythonPackage {
   ];
 
   meta = {
-    description = "Starcraft II environment and library for training agents.";
+    description = "Starcraft II environment and library for training agents";
     homepage = "https://github.com/deepmind/pysc2";
     license = lib.licenses.asl20;
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/python-modules/pyscf/default.nix b/pkgs/development/python-modules/pyscf/default.nix
index 8bf556ac0cbac..f44ea70eee547 100644
--- a/pkgs/development/python-modules/pyscf/default.nix
+++ b/pkgs/development/python-modules/pyscf/default.nix
@@ -16,18 +16,18 @@
 
 buildPythonPackage rec {
   pname = "pyscf";
-  version = "2.5.0";
+  version = "2.6.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "pyscf";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-UCchzoYsqeIGViewPf4KedmhYktXLmp5Me4lzb1i8p0=";
+    hash = "sha256-y1RQKxFfhOC6+vUMJiXexaZeYZhav5t30XP7jooJ//0=";
   };
 
   # setup.py calls Cmake and passes the arguments in CMAKE_CONFIGURE_ARGS to cmake.
-  nativeBuildInputs = [ cmake ];
+  build-system = [ cmake ];
   dontUseCmakeConfigure = true;
   preConfigure = ''
     export CMAKE_CONFIGURE_ARGS="-DBUILD_LIBCINT=0 -DBUILD_LIBXC=0 -DBUILD_XCFUN=0"
@@ -41,7 +41,7 @@ buildPythonPackage rec {
     xcfun
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     cppe
     h5py
     numpy
diff --git a/pkgs/development/python-modules/pyschemes/default.nix b/pkgs/development/python-modules/pyschemes/default.nix
index cd4fd12c7b6e1..5c7bc1afb9605 100644
--- a/pkgs/development/python-modules/pyschemes/default.nix
+++ b/pkgs/development/python-modules/pyschemes/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pyschemes" ];
 
   meta = with lib; {
-    description = "A library for validating data structures in Python";
+    description = "Library for validating data structures in Python";
     homepage = "https://github.com/spy16/pyschemes";
     license = licenses.wtfpl;
     maintainers = with maintainers; [ gador ];
diff --git a/pkgs/development/python-modules/pyschlage/default.nix b/pkgs/development/python-modules/pyschlage/default.nix
index 340a2546c6538..649618409a634 100644
--- a/pkgs/development/python-modules/pyschlage/default.nix
+++ b/pkgs/development/python-modules/pyschlage/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pyschlage";
-  version = "2024.2.0";
+  version = "2024.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "dknowles2";
     repo = "pyschlage";
     rev = "refs/tags/${version}";
-    hash = "sha256-kjAV7VHKp7WpT6dNjuzYMTlcXbyIB2MNZQXOckDLWF8=";
+    hash = "sha256-mfrESWXkGV6r+VNw1dHRpIEtfZsLdsCf3D74ydgcy58=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyscreeze/default.nix b/pkgs/development/python-modules/pyscreeze/default.nix
index 465e3c9634b63..51898b3ed9254 100644
--- a/pkgs/development/python-modules/pyscreeze/default.nix
+++ b/pkgs/development/python-modules/pyscreeze/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ pillow ];
 
   meta = with lib; {
-    description = "PyScreeze is a simple, cross-platform screenshot module for Python 2 and 3.";
+    description = "PyScreeze is a simple, cross-platform screenshot module for Python 2 and 3";
     homepage = "https://github.com/asweigart/pyscreeze";
     license = licenses.bsd3;
     maintainers = with maintainers; [ lucasew ];
diff --git a/pkgs/development/python-modules/pyscss/default.nix b/pkgs/development/python-modules/pyscss/default.nix
index a8f41698c27b0..46261614492b5 100644
--- a/pkgs/development/python-modules/pyscss/default.nix
+++ b/pkgs/development/python-modules/pyscss/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Scss compiler for Python";
+    description = "Scss compiler for Python";
     homepage = "https://pyscss.readthedocs.org/en/latest/";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/pysdl2/default.nix b/pkgs/development/python-modules/pysdl2/default.nix
index b55eb16e03e13..7854f24654320 100644
--- a/pkgs/development/python-modules/pysdl2/default.nix
+++ b/pkgs/development/python-modules/pysdl2/default.nix
@@ -57,7 +57,7 @@ buildPythonPackage rec {
   ];
 
   meta = {
-    description = "A wrapper around the SDL2 library and as such similar to the discontinued PySDL project";
+    description = "Wrapper around the SDL2 library and as such similar to the discontinued PySDL project";
     homepage = "https://github.com/marcusva/py-sdl2";
     license = lib.licenses.publicDomain;
     maintainers = with lib.maintainers; [ pmiddend ];
diff --git a/pkgs/development/python-modules/pysendfile/default.nix b/pkgs/development/python-modules/pysendfile/default.nix
index 0edd04ae331a2..9bc9363e022e7 100644
--- a/pkgs/development/python-modules/pysendfile/default.nix
+++ b/pkgs/development/python-modules/pysendfile/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sendfile" ];
 
   meta = with lib; {
-    description = "A Python interface to sendfile(2)";
+    description = "Python interface to sendfile(2)";
     homepage = "https://github.com/giampaolo/pysendfile";
     changelog = "https://github.com/giampaolo/pysendfile/blob/release-${version}/HISTORY.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pyserial-asyncio-fast/default.nix b/pkgs/development/python-modules/pyserial-asyncio-fast/default.nix
index ad4421a5382b7..882c761d191e6 100644
--- a/pkgs/development/python-modules/pyserial-asyncio-fast/default.nix
+++ b/pkgs/development/python-modules/pyserial-asyncio-fast/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "pyserial-asyncio-fast";
-  version = "0.11";
+  version = "0.12";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "bdraco";
     repo = "pyserial-asyncio-fast";
     rev = version;
-    hash = "sha256-B1CLk7ggI7l+DaMDlnMjl2tfh+evvaf1nxzBpmqMBZk=";
+    hash = "sha256-37dbJq+9Ex+/uiRR2esgOP15CjySA0MLvxnjiPDTF08=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pysftp/default.nix b/pkgs/development/python-modules/pysftp/default.nix
index 1e1c3656ad952..08ea007ba7b13 100644
--- a/pkgs/development/python-modules/pysftp/default.nix
+++ b/pkgs/development/python-modules/pysftp/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://bitbucket.org/dundeemt/pysftp";
-    description = "A friendly face on SFTP";
+    description = "Friendly face on SFTP";
     license = licenses.mit;
     longDescription = ''
       A simple interface to SFTP. The module offers high level abstractions
diff --git a/pkgs/development/python-modules/pyside6/default.nix b/pkgs/development/python-modules/pyside6/default.nix
index 5f5285cccfb2a..0144c91bd3e9e 100644
--- a/pkgs/development/python-modules/pyside6/default.nix
+++ b/pkgs/development/python-modules/pyside6/default.nix
@@ -13,6 +13,12 @@ stdenv.mkDerivation rec {
 
   inherit (shiboken6) version src;
 
+  patches = [
+    # stripped down version of https://github.com/pyside/pyside-setup/commit/a0d68856d67ce6e178e3cfc2fccc236707e02fcd
+    # FIXME: remove in next release
+    ./qt-6.7.1.patch
+  ];
+
   sourceRoot = "pyside-setup-everywhere-src-${version}/sources/${pname}";
 
   # FIXME: cmake/Macros/PySideModules.cmake supposes that all Qt frameworks on macOS
diff --git a/pkgs/development/python-modules/pyside6/qt-6.7.1.patch b/pkgs/development/python-modules/pyside6/qt-6.7.1.patch
new file mode 100644
index 0000000000000..8a5ece82d9cea
--- /dev/null
+++ b/pkgs/development/python-modules/pyside6/qt-6.7.1.patch
@@ -0,0 +1,87 @@
+--- a/PySide6/QtMultimedia/CMakeLists.txt
++++ b/PySide6/QtMultimedia/CMakeLists.txt
+@@ -12,6 +12,7 @@ ${QtMultimedia_GEN_DIR}/qaudioinput_wrapper.cpp
+ ${QtMultimedia_GEN_DIR}/qaudiooutput_wrapper.cpp
+ ${QtMultimedia_GEN_DIR}/qaudiosink_wrapper.cpp
+ ${QtMultimedia_GEN_DIR}/qaudiosource_wrapper.cpp
++${QtMultimedia_GEN_DIR}/qaudio_wrapper.cpp
+ ${QtMultimedia_GEN_DIR}/qcameraformat_wrapper.cpp
+ ${QtMultimedia_GEN_DIR}/qcameradevice_wrapper.cpp
+ ${QtMultimedia_GEN_DIR}/qcamera_wrapper.cpp
+@@ -28,7 +29,6 @@ ${QtMultimedia_GEN_DIR}/qmediatimerange_wrapper.cpp
+ ${QtMultimedia_GEN_DIR}/qmediatimerange_interval_wrapper.cpp
+ ${QtMultimedia_GEN_DIR}/qscreencapture_wrapper.cpp
+ ${QtMultimedia_GEN_DIR}/qsoundeffect_wrapper.cpp
+-${QtMultimedia_GEN_DIR}/qtaudio_wrapper.cpp
+ ${QtMultimedia_GEN_DIR}/qtvideo_wrapper.cpp
+ ${QtMultimedia_GEN_DIR}/qvideoframe_wrapper.cpp
+ ${QtMultimedia_GEN_DIR}/qvideoframeformat_wrapper.cpp
+diff --git a/PySide6/QtMultimedia/typesystem_multimedia.xml b/PySide6/QtMultimedia/typesystem_multimedia.xml
+index dd58f41cc..d37eb15fd 100644
+--- a/PySide6/QtMultimedia/typesystem_multimedia.xml
++++ b/PySide6/QtMultimedia/typesystem_multimedia.xml
+@@ -9,7 +9,7 @@
+     <load-typesystem name="QtGui/typesystem_gui.xml" generate="no"/>
+     <load-typesystem name="QtNetwork/typesystem_network.xml" generate="no"/>
+ 
+-    <namespace-type name="QtAudio">
++    <namespace-type name="QAudio">
+         <enum-type name="Error"/>
+         <enum-type name="State"/>
+         <enum-type name="VolumeScale"/>
+@@ -65,9 +65,6 @@
+         </modify-argument>
+       </modify-function>
+       <modify-function signature="stop()" allow-thread="true"/>
+-      <!-- FIXME PYSIDE 7: Remove this (QT6_DECL_NEW_OVERLOAD_TAIL) -->
+-      <declare-function signature="state()const" return-type="QtAudio::State"/>
+-      <declare-function signature="error()const" return-type="QtAudio::Error"/>
+     </object-type>
+ 
+     <object-type name="QAudioSink">
+@@ -82,9 +79,6 @@
+         </modify-argument>
+       </modify-function>
+       <modify-function signature="stop()" allow-thread="true"/>
+-      <!-- FIXME PYSIDE 7: Remove this (QT6_DECL_NEW_OVERLOAD_TAIL) -->
+-      <declare-function signature="state()const" return-type="QtAudio::State"/>
+-      <declare-function signature="error()const" return-type="QtAudio::Error"/>
+     </object-type>
+ 
+     <object-type name="QCamera">
+diff --git a/PySide6/glue/qtmultimedia.cpp b/PySide6/glue/qtmultimedia.cpp
+index d193b1bd3..ac8434b97 100644
+--- a/PySide6/glue/qtmultimedia.cpp
++++ b/PySide6/glue/qtmultimedia.cpp
+@@ -2,6 +2,7 @@
+ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+ 
+ // @snippet qvideoframe-bits
++#include "object.h"
+ %BEGIN_ALLOW_THREADS
+ %RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(%1);
+ %END_ALLOW_THREADS
+@@ -23,5 +24,5 @@ const auto size = %CPPSELF.byteCount();
+ 
+ // @snippet qtaudio-namespace-compatibility-alias
+ Py_INCREF(pyType);
+-PyModule_AddObject(module, "QAudio", reinterpret_cast<PyObject *>(pyType));
++PyModule_AddObject(module, "QtAudio", reinterpret_cast<PyObject *>(pyType));
+ // @snippet qtaudio-namespace-compatibility-alias
+diff --git a/libpyside/signalmanager.cpp b/libpyside/signalmanager.cpp
+index 625e4a405..557f130e0 100644
+--- a/libpyside/signalmanager.cpp
++++ b/libpyside/signalmanager.cpp
+@@ -813,11 +813,6 @@ static PyObject *parseArguments(const QMetaMethod &method, void **args)
+     for (qsizetype i = 0; i < argsSize; ++i) {
+         void *data = args[i+1];
+         auto param = paramTypes.at(i);
+-#if QT_VERSION < QT_VERSION_CHECK(7, 0, 0)
+-        // Qt 6.7 renamed namespace "QAudio"->"QtAudio" except for signals
+-        if (param.startsWith("QAudio::"_ba))
+-            param.insert(1, 't');
+-#endif
+         Shiboken::Conversions::SpecificConverter converter(param.constData());
+         if (!converter) {
+             PyErr_SetString(PyExc_TypeError, msgCannotConvertParameter(method, i).constData());
+
diff --git a/pkgs/development/python-modules/pysigma/default.nix b/pkgs/development/python-modules/pysigma/default.nix
index 5816b43926ac0..6fbb4b8b93ed3 100644
--- a/pkgs/development/python-modules/pysigma/default.nix
+++ b/pkgs/development/python-modules/pysigma/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   jinja2,
   packaging,
   poetry-core,
@@ -16,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "pysigma";
-  version = "0.11.5";
+  version = "0.11.7";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,7 +24,7 @@ buildPythonPackage rec {
     owner = "SigmaHQ";
     repo = "pySigma";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Mr4etI6VNPWDVZj4A9j3Ka9v+BpFC75MLXppYELIWrg=";
+    hash = "sha256-vc2f5qrPHSU/CUENj+MuD0rjsEj68JPnL39fuOOcRCU=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/pysim/default.nix b/pkgs/development/python-modules/pysim/default.nix
index 4ced4a03f2dd0..8cbe3dd854b9b 100644
--- a/pkgs/development/python-modules/pysim/default.nix
+++ b/pkgs/development/python-modules/pysim/default.nix
@@ -61,7 +61,7 @@ buildPythonPackage {
   pythonImportsCheck = [ "pySim" ];
 
   meta = with lib; {
-    description = "A python tool to program SIMs / USIMs / ISIMs.";
+    description = "Python tool to program SIMs / USIMs / ISIMs";
     homepage = "https://github.com/osmocom/pysim";
     license = licenses.gpl2;
     maintainers = with maintainers; [
diff --git a/pkgs/development/python-modules/pysmartdl/default.nix b/pkgs/development/python-modules/pysmartdl/default.nix
index 9ac9b0f70aaa9..d8920c500f93e 100644
--- a/pkgs/development/python-modules/pysmartdl/default.nix
+++ b/pkgs/development/python-modules/pysmartdl/default.nix
@@ -40,7 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/iTaybb/pySmartDL";
-    description = "A Smart Download Manager for Python";
+    description = "Smart Download Manager for Python";
     changelog = "https://github.com/iTaybb/pySmartDL/blob/${src.rev}/ChangeLog.txt";
     license = licenses.unlicense;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/pysmf/default.nix b/pkgs/development/python-modules/pysmf/default.nix
index aaecbda85151f..dfa1075f08163 100644
--- a/pkgs/development/python-modules/pysmf/default.nix
+++ b/pkgs/development/python-modules/pysmf/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://das.nasophon.de/pysmf/";
-    description = "Python extension module for reading and writing Standard MIDI Files, based on libsmf.";
+    description = "Python extension module for reading and writing Standard MIDI Files, based on libsmf";
     license = licenses.bsd2;
     maintainers = [ ];
   };
diff --git a/pkgs/development/python-modules/pysnmp/default.nix b/pkgs/development/python-modules/pysnmp/default.nix
index 8ec379771f0dc..7bc9db63943a9 100644
--- a/pkgs/development/python-modules/pysnmp/default.nix
+++ b/pkgs/development/python-modules/pysnmp/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "http://snmplabs.com/pysnmp/index.html";
-    description = "A pure-Python SNMPv1/v2c/v3 library";
+    description = "Pure-Python SNMPv1/v2c/v3 library";
     license = licenses.bsd2;
     maintainers = with maintainers; [
       primeos
diff --git a/pkgs/development/python-modules/pysnooper/default.nix b/pkgs/development/python-modules/pysnooper/default.nix
index 1c8da7080490e..c8f3ca8bb96ed 100644
--- a/pkgs/development/python-modules/pysnooper/default.nix
+++ b/pkgs/development/python-modules/pysnooper/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pysnooper" ];
 
   meta = with lib; {
-    description = "A poor man's debugger for Python";
+    description = "Poor man's debugger for Python";
     homepage = "https://github.com/cool-RR/PySnooper";
     license = licenses.mit;
     maintainers = with maintainers; [ seqizz ];
diff --git a/pkgs/development/python-modules/pysolcast/default.nix b/pkgs/development/python-modules/pysolcast/default.nix
index 3123b1f392c68..cb5c822820b1f 100644
--- a/pkgs/development/python-modules/pysolcast/default.nix
+++ b/pkgs/development/python-modules/pysolcast/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "pysolcast";
-  version = "2.0.2";
+  version = "2.0.3";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "mcaulifn";
     repo = "solcast";
     rev = "refs/tags/v${version}";
-    hash = "sha256-DXJkbAlkxBjUEbziFNdr8SilB2GRUoAwvrr0HY56Deg=";
+    hash = "sha256-BMM6eDloyLee7mkwUE9HpWcRUE62y43YivRjDbwAqIk=";
   };
 
   pythonRelaxDeps = [ "responses" ];
diff --git a/pkgs/development/python-modules/pysonos/default.nix b/pkgs/development/python-modules/pysonos/default.nix
index 6112f081434a1..a95787c5444a6 100644
--- a/pkgs/development/python-modules/pysonos/default.nix
+++ b/pkgs/development/python-modules/pysonos/default.nix
@@ -45,7 +45,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A SoCo fork with fixes for Home Assistant";
+    description = "SoCo fork with fixes for Home Assistant";
     homepage = "https://github.com/amelchio/pysonos";
     license = licenses.mit;
     maintainers = with maintainers; [ juaningan ];
diff --git a/pkgs/development/python-modules/pystac/default.nix b/pkgs/development/python-modules/pystac/default.nix
new file mode 100644
index 0000000000000..eb7f653db9de0
--- /dev/null
+++ b/pkgs/development/python-modules/pystac/default.nix
@@ -0,0 +1,53 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  html5lib,
+  jsonschema,
+  pytest-cov,
+  pytest-mock,
+  pytest-recording,
+  python-dateutil,
+  requests-mock,
+  setuptools,
+}:
+
+buildPythonPackage rec {
+  pname = "pystac";
+  version = "1.10.1";
+  pyproject = true;
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "stac-utils";
+    repo = "pystac";
+    rev = "v${version}";
+    hash = "sha256-zJGDhKRX50Muo1YDEzfwypMLISnYBYKkPvUULYkUf68=";
+  };
+
+  build-system = [ setuptools ];
+
+  propagatedBuildInputs = [ python-dateutil ];
+
+  nativeCheckInputs = [
+    html5lib
+    jsonschema
+    pytestCheckHook
+    pytest-cov
+    pytest-mock
+    pytest-recording
+    requests-mock
+  ];
+
+  pythonImportsCheck = [ "pystac" ];
+
+  meta = {
+    description = "Python library for working with any SpatioTemporal Asset Catalog (STAC)";
+    homepage = "https://github.com/stac-utils/pystac";
+    license = lib.licenses.asl20;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/pystache/default.nix b/pkgs/development/python-modules/pystache/default.nix
index c7b5ae45e377c..9088f2c503aff 100644
--- a/pkgs/development/python-modules/pystache/default.nix
+++ b/pkgs/development/python-modules/pystache/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pystache" ];
 
   meta = with lib; {
-    description = "A framework-agnostic, logic-free templating system inspired by ctemplate and et";
+    description = "Framework-agnostic, logic-free templating system inspired by ctemplate and et";
     homepage = "https://github.com/defunkt/pystache";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/pystray/default.nix b/pkgs/development/python-modules/pystray/default.nix
index 07cd05cad5277..a448933fcc78f 100644
--- a/pkgs/development/python-modules/pystray/default.nix
+++ b/pkgs/development/python-modules/pystray/default.nix
@@ -2,6 +2,7 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+  fetchpatch,
   pillow,
   xlib,
   six,
@@ -15,19 +16,28 @@
 
 buildPythonPackage rec {
   pname = "pystray";
-  version = "0.19.2";
-  format = "pyproject";
+  version = "0.19.5";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "moses-palmer";
     repo = "pystray";
     rev = "v${version}";
-    hash = "sha256-8B178MSe4ujlnGBmQhIu+BoAh1doP9V5cL0ermLQTvs=";
+    hash = "sha256-CZhbaXwKFrRBEomzfFPMQdMkTOl5lbgI64etfDRiRu4=";
   };
 
+  patches = [
+    # fix test_menu_construct_from_none test case
+    # https://github.com/moses-palmer/pystray/pull/133
+    (fetchpatch {
+      url = "https://github.com/moses-palmer/pystray/commit/813007e3034d950d93a2f3e5b029611c3c9c98ad.patch";
+      hash = "sha256-m2LfZcWXSfgxb73dac21VDdMDVz3evzcCz5QjdnfM1U=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "'sphinx >=1.3.1'" ""
+      --replace-fail "'sphinx >=1.3.1'" ""
   '';
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pysubs2/default.nix b/pkgs/development/python-modules/pysubs2/default.nix
index a7095361c7519..8025a0e160e48 100644
--- a/pkgs/development/python-modules/pysubs2/default.nix
+++ b/pkgs/development/python-modules/pysubs2/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/tkarabela/pysubs2";
-    description = "A Python library for editing subtitle files";
+    description = "Python library for editing subtitle files";
     mainProgram = "pysubs2";
     license = licenses.mit;
     maintainers = with maintainers; [ Benjamin-L ];
diff --git a/pkgs/development/python-modules/pyswitchbot/default.nix b/pkgs/development/python-modules/pyswitchbot/default.nix
index 335f0b8239a7e..44a1bbf9fd227 100644
--- a/pkgs/development/python-modules/pyswitchbot/default.nix
+++ b/pkgs/development/python-modules/pyswitchbot/default.nix
@@ -15,21 +15,21 @@
 
 buildPythonPackage rec {
   pname = "pyswitchbot";
-  version = "0.45.0";
+  version = "0.47.2";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "Danielhiversen";
     repo = "pySwitchbot";
     rev = "refs/tags/${version}";
-    hash = "sha256-lQVUHZvAZ4J0DLlUl30dSz2wwXKb9MK5prkXvub0yNI=";
+    hash = "sha256-89bFP/7ovsPj7htFGXrYR4jhm1E/ph47f4qZCKf1hfY=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     bleak
     bleak-retry-connector
     boto3
diff --git a/pkgs/development/python-modules/pytablewriter/default.nix b/pkgs/development/python-modules/pytablewriter/default.nix
index ad88c83a52025..1b074f1b8584f 100644
--- a/pkgs/development/python-modules/pytablewriter/default.nix
+++ b/pkgs/development/python-modules/pytablewriter/default.nix
@@ -104,7 +104,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A library to write a table in various formats";
+    description = "Library to write a table in various formats";
     homepage = "https://github.com/thombashi/pytablewriter";
     changelog = "https://github.com/thombashi/pytablewriter/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pytensor/default.nix b/pkgs/development/python-modules/pytensor/default.nix
index 5c3329af5e10c..6b529ddb810d4 100644
--- a/pkgs/development/python-modules/pytensor/default.nix
+++ b/pkgs/development/python-modules/pytensor/default.nix
@@ -15,7 +15,6 @@
   jax,
   jaxlib,
   numba,
-  numba-scipy,
   pytest-mock,
   pytestCheckHook,
   pythonOlder,
@@ -24,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "pytensor";
-  version = "2.20.0";
+  version = "2.22.1";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -33,7 +32,7 @@ buildPythonPackage rec {
     owner = "pymc-devs";
     repo = "pytensor";
     rev = "refs/tags/rel-${version}";
-    hash = "sha256-bvkOMer+zYSsiU4a147eUEZjjUeTVpb9f/hepMZZ3sE=";
+    hash = "sha256-FG95+3g+DcqQkyJX3PavfyUWTINFLrgAPTaHYN/jk90=";
   };
 
   postPatch = ''
@@ -88,13 +87,13 @@ buildPythonPackage rec {
     "tests/sparse/sandbox/"
   ];
 
-  meta = with lib; {
+  meta = {
     description = "Python library to define, optimize, and efficiently evaluate mathematical expressions involving multi-dimensional arrays";
     mainProgram = "pytensor-cache";
     homepage = "https://github.com/pymc-devs/pytensor";
     changelog = "https://github.com/pymc-devs/pytensor/releases";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [
       bcdarwin
       ferrine
     ];
diff --git a/pkgs/development/python-modules/pytesseract/default.nix b/pkgs/development/python-modules/pytesseract/default.nix
index d8e68f3a920b5..ac5a88e436912 100644
--- a/pkgs/development/python-modules/pytesseract/default.nix
+++ b/pkgs/development/python-modules/pytesseract/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://pypi.org/project/pytesseract/";
     license = licenses.asl20;
-    description = "A Python wrapper for Google Tesseract";
+    description = "Python wrapper for Google Tesseract";
     mainProgram = "pytesseract";
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/pytest-astropy-header/default.nix b/pkgs/development/python-modules/pytest-astropy-header/default.nix
index edaa756b78705..8b87d4422b579 100644
--- a/pkgs/development/python-modules/pytest-astropy-header/default.nix
+++ b/pkgs/development/python-modules/pytest-astropy-header/default.nix
@@ -2,9 +2,7 @@
   lib,
   buildPythonPackage,
   fetchPypi,
-  fetchpatch,
   pytest,
-  pytest-cov,
   pytestCheckHook,
   numpy,
   setuptools-scm,
diff --git a/pkgs/development/python-modules/pytest-black/default.nix b/pkgs/development/python-modules/pytest-black/default.nix
index e608f24f30fb0..920f4c755aea0 100644
--- a/pkgs/development/python-modules/pytest-black/default.nix
+++ b/pkgs/development/python-modules/pytest-black/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pytest_black" ];
 
   meta = with lib; {
-    description = "A pytest plugin to enable format checking with black";
+    description = "Pytest plugin to enable format checking with black";
     homepage = "https://github.com/shopkeep/pytest-black";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
diff --git a/pkgs/development/python-modules/pytest-catchlog/default.nix b/pkgs/development/python-modules/pytest-catchlog/default.nix
index 41cb34b61068b..e4e2dffdbb29f 100644
--- a/pkgs/development/python-modules/pytest-catchlog/default.nix
+++ b/pkgs/development/python-modules/pytest-catchlog/default.nix
@@ -27,6 +27,6 @@ buildPythonPackage rec {
   meta = with lib; {
     license = licenses.mit;
     homepage = "https://pypi.python.org/pypi/pytest-catchlog/";
-    description = "py.test plugin to catch log messages. This is a fork of pytest-capturelog.";
+    description = "py.test plugin to catch log messages. This is a fork of pytest-capturelog";
   };
 }
diff --git a/pkgs/development/python-modules/pytest-cid/default.nix b/pkgs/development/python-modules/pytest-cid/default.nix
index 85dd4123d8d1e..b73648e2a673a 100644
--- a/pkgs/development/python-modules/pytest-cid/default.nix
+++ b/pkgs/development/python-modules/pytest-cid/default.nix
@@ -40,7 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/ntninja/pytest-cid";
-    description = "A simple wrapper around py-cid for easily writing tests involving CIDs in datastructures";
+    description = "Simple wrapper around py-cid for easily writing tests involving CIDs in datastructures";
     license = licenses.mpl20;
     maintainers = with maintainers; [ Luflosi ];
   };
diff --git a/pkgs/development/python-modules/pytest-dotenv/default.nix b/pkgs/development/python-modules/pytest-dotenv/default.nix
index e093feed1ca23..7f9a678468b8b 100644
--- a/pkgs/development/python-modules/pytest-dotenv/default.nix
+++ b/pkgs/development/python-modules/pytest-dotenv/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytest ];
 
   meta = with lib; {
-    description = "A pytest plugin that parses environment files before running tests";
+    description = "Pytest plugin that parses environment files before running tests";
     homepage = "https://github.com/quiqua/pytest-dotenv";
     license = licenses.mit;
     maintainers = with maintainers; [ cleeyv ];
diff --git a/pkgs/development/python-modules/pytest-emoji/default.nix b/pkgs/development/python-modules/pytest-emoji/default.nix
index bfd8ea7b85347..ef490315240c1 100644
--- a/pkgs/development/python-modules/pytest-emoji/default.nix
+++ b/pkgs/development/python-modules/pytest-emoji/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A pytest plugin that adds emojis to test result report";
+    description = "Pytest plugin that adds emojis to test result report";
     homepage = "https://github.com/hackebrot/pytest-emoji";
     changelog = "https://github.com/hackebrot/pytest-emoji/releases/tag/0.2.0";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pytest-fixture-config/default.nix b/pkgs/development/python-modules/pytest-fixture-config/default.nix
index 5be97cd7471ce..ebc3fcdc4ba4a 100644
--- a/pkgs/development/python-modules/pytest-fixture-config/default.nix
+++ b/pkgs/development/python-modules/pytest-fixture-config/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "Simple configuration objects for Py.test fixtures. Allows you to skip tests when their required config variables aren’t set.";
+    description = "Simple configuration objects for Py.test fixtures. Allows you to skip tests when their required config variables aren’t set";
     homepage = "https://github.com/manahl/pytest-plugins";
     license = licenses.mit;
     maintainers = with maintainers; [ ryansydnor ];
diff --git a/pkgs/development/python-modules/pytest-flask/default.nix b/pkgs/development/python-modules/pytest-flask/default.nix
index 0076502ff8789..477be61ebefd2 100644
--- a/pkgs/development/python-modules/pytest-flask/default.nix
+++ b/pkgs/development/python-modules/pytest-flask/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   pytestFlagsArray = lib.optionals stdenv.isDarwin [ "--ignore=tests/test_live_server.py" ];
 
   meta = with lib; {
-    description = "A set of pytest fixtures to test Flask applications";
+    description = "Set of pytest fixtures to test Flask applications";
     homepage = "https://pytest-flask.readthedocs.io/";
     changelog = "https://github.com/pytest-dev/pytest-flask/blob/${version}/docs/changelog.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pytest-httpbin/default.nix b/pkgs/development/python-modules/pytest-httpbin/default.nix
index 7674158066022..8d7f98c78ffe8 100644
--- a/pkgs/development/python-modules/pytest-httpbin/default.nix
+++ b/pkgs/development/python-modules/pytest-httpbin/default.nix
@@ -7,13 +7,13 @@
   pytestCheckHook,
   pythonOlder,
   requests,
-  six,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pytest-httpbin";
   version = "2.0.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -24,12 +24,11 @@ buildPythonPackage rec {
     hash = "sha256-tq9nz2na94HkLACt7xB1MUanh9/JOoe2vyEm5sAq0/4=";
   };
 
+  build-system = [ setuptools ];
+
   buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    httpbin
-    six
-  ];
+  propagatedBuildInputs = [ httpbin ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -39,6 +38,8 @@ buildPythonPackage rec {
   disabledTests = [
     # incompatible with flask 2.3
     "test_redirect_location_is_https_for_secure_server"
+    # Timeout on Hydra
+    "test_dont_crash_on_handshake_timeout"
   ];
 
   __darwinAllowLocalNetworking = true;
@@ -48,6 +49,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Test your HTTP library against a local copy of httpbin.org";
     homepage = "https://github.com/kevin1024/pytest-httpbin";
+    changelog = "https://github.com/kevin1024/pytest-httpbin/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/pytest-md-report/default.nix b/pkgs/development/python-modules/pytest-md-report/default.nix
index a7b71fd760ae6..8a624e6e48dfc 100644
--- a/pkgs/development/python-modules/pytest-md-report/default.nix
+++ b/pkgs/development/python-modules/pytest-md-report/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pytest_md_report" ];
 
   meta = with lib; {
-    description = "A pytest plugin to make a test results report with Markdown table format";
+    description = "Pytest plugin to make a test results report with Markdown table format";
     homepage = "https://github.com/thombashi/pytest-md-report";
     changelog = "https://github.com/thombashi/pytest-md-report/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pytest-mockservers/default.nix b/pkgs/development/python-modules/pytest-mockservers/default.nix
index bf89bed0ab608..3ab4e4e63cbf3 100644
--- a/pkgs/development/python-modules/pytest-mockservers/default.nix
+++ b/pkgs/development/python-modules/pytest-mockservers/default.nix
@@ -49,7 +49,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pytest_mockservers" ];
 
   meta = with lib; {
-    description = "A set of fixtures to test your requests to HTTP/UDP servers";
+    description = "Set of fixtures to test your requests to HTTP/UDP servers";
     homepage = "https://github.com/Gr1N/pytest-mockservers";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/pkgs/development/python-modules/pytest-notebook/default.nix b/pkgs/development/python-modules/pytest-notebook/default.nix
index 52ce73e015266..f65d7efd9ea2d 100644
--- a/pkgs/development/python-modules/pytest-notebook/default.nix
+++ b/pkgs/development/python-modules/pytest-notebook/default.nix
@@ -75,6 +75,8 @@ buildPythonPackage rec {
     "test_run_pass_with_meta"
   ];
 
+  __darwinAllowLocalNetworking = true;
+
   meta = {
     changelog = "https://github.com/chrisjsewell/pytest-notebook/blob/${src.rev}/docs/source/changelog.md";
     description = "Pytest plugin for regression testing and regenerating Jupyter Notebooks";
diff --git a/pkgs/development/python-modules/pytest-parallel/default.nix b/pkgs/development/python-modules/pytest-parallel/default.nix
index 8f10b942f3098..a2cbf09d3b557 100644
--- a/pkgs/development/python-modules/pytest-parallel/default.nix
+++ b/pkgs/development/python-modules/pytest-parallel/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage {
   ];
 
   meta = with lib; {
-    description = "A pytest plugin for parallel and concurrent testing";
+    description = "Pytest plugin for parallel and concurrent testing";
     homepage = "https://github.com/kevlened/pytest-parallelt";
     changelog = "https://github.com/kevlened/pytest-parallel/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pytest-raises/default.nix b/pkgs/development/python-modules/pytest-raises/default.nix
index 84c8ee1909661..16d4c681f21ce 100644
--- a/pkgs/development/python-modules/pytest-raises/default.nix
+++ b/pkgs/development/python-modules/pytest-raises/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "An implementation of pytest.raises as a pytest.mark fixture";
+    description = "Implementation of pytest.raises as a pytest.mark fixture";
     homepage = "https://github.com/Lemmons/pytest-raises";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/pkgs/development/python-modules/pytest-recording/default.nix b/pkgs/development/python-modules/pytest-recording/default.nix
index e28f9ebf052e3..1f8e84466847b 100644
--- a/pkgs/development/python-modules/pytest-recording/default.nix
+++ b/pkgs/development/python-modules/pytest-recording/default.nix
@@ -54,7 +54,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pytest_recording" ];
 
   meta = with lib; {
-    description = "A pytest plugin that allows you recording of network interactions via VCR.py";
+    description = "Pytest plugin that allows you recording of network interactions via VCR.py";
     homepage = "https://github.com/kiwicom/pytest-recording";
     license = licenses.mit;
     maintainers = with maintainers; [ jbgosselin ];
diff --git a/pkgs/development/python-modules/pytest-server-fixtures/default.nix b/pkgs/development/python-modules/pytest-server-fixtures/default.nix
index 1466371e1af44..11f67121f4f74 100644
--- a/pkgs/development/python-modules/pytest-server-fixtures/default.nix
+++ b/pkgs/development/python-modules/pytest-server-fixtures/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   buildPythonPackage,
-  fetchFromGitHub,
   future,
   psutil,
   pytest,
diff --git a/pkgs/development/python-modules/pytest-shutil/default.nix b/pkgs/development/python-modules/pytest-shutil/default.nix
index 9c5bffacb431c..613b3e382d406 100644
--- a/pkgs/development/python-modules/pytest-shutil/default.nix
+++ b/pkgs/development/python-modules/pytest-shutil/default.nix
@@ -63,7 +63,7 @@ buildPythonPackage rec {
     ];
 
   meta = with lib; {
-    description = "A goodie-bag of unix shell and environment tools for py.test";
+    description = "Goodie-bag of unix shell and environment tools for py.test";
     homepage = "https://github.com/manahl/pytest-plugins";
     maintainers = with maintainers; [ ryansydnor ];
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pytest-snapshot/default.nix b/pkgs/development/python-modules/pytest-snapshot/default.nix
index 1e76535680cac..aafe4b5b93ec8 100644
--- a/pkgs/development/python-modules/pytest-snapshot/default.nix
+++ b/pkgs/development/python-modules/pytest-snapshot/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pytest_snapshot" ];
 
   meta = with lib; {
-    description = "A plugin to enable snapshot testing with pytest";
+    description = "Plugin to enable snapshot testing with pytest";
     homepage = "https://github.com/joseph-roitman/pytest-snapshot/";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/pytest-spec/default.nix b/pkgs/development/python-modules/pytest-spec/default.nix
index 2a90d45a6ea1a..1325f6f52d095 100644
--- a/pkgs/development/python-modules/pytest-spec/default.nix
+++ b/pkgs/development/python-modules/pytest-spec/default.nix
@@ -42,7 +42,7 @@ buildPythonPackage {
   pythonImportsCheck = [ "pytest_spec" ];
 
   meta = {
-    description = "A pytest plugin to display test execution output like a SPECIFICATION";
+    description = "Pytest plugin to display test execution output like a SPECIFICATION";
     homepage = "https://github.com/pchomik/pytest-spec";
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ tomasajt ];
diff --git a/pkgs/development/python-modules/pytest-subprocess/default.nix b/pkgs/development/python-modules/pytest-subprocess/default.nix
index 4557e7fe4576a..c4e8afe59ad99 100644
--- a/pkgs/development/python-modules/pytest-subprocess/default.nix
+++ b/pkgs/development/python-modules/pytest-subprocess/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   pytestFlagsArray = [ "-W ignore::DeprecationWarning" ];
 
   meta = with lib; {
-    description = "A plugin to fake subprocess for pytest";
+    description = "Plugin to fake subprocess for pytest";
     homepage = "https://github.com/aklajnert/pytest-subprocess";
     changelog = "https://github.com/aklajnert/pytest-subprocess/blob/${version}/HISTORY.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pytest-sugar/default.nix b/pkgs/development/python-modules/pytest-sugar/default.nix
index 91446a6e77345..b90b2a30e5ca0 100644
--- a/pkgs/development/python-modules/pytest-sugar/default.nix
+++ b/pkgs/development/python-modules/pytest-sugar/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A plugin that changes the default look and feel of pytest";
+    description = "Plugin that changes the default look and feel of pytest";
     homepage = "https://github.com/Frozenball/pytest-sugar";
     changelog = "https://github.com/Teemu/pytest-sugar/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/pytest-test-utils/default.nix b/pkgs/development/python-modules/pytest-test-utils/default.nix
index 6c50a815fa288..3d2c0ecc35876 100644
--- a/pkgs/development/python-modules/pytest-test-utils/default.nix
+++ b/pkgs/development/python-modules/pytest-test-utils/default.nix
@@ -4,7 +4,6 @@
   fetchFromGitHub,
   setuptools,
   setuptools-scm,
-  wheel,
   pytestCheckHook,
   pytest,
   pythonOlder,
@@ -12,22 +11,21 @@
 
 buildPythonPackage rec {
   pname = "pytest-test-utils";
-  version = "0.0.8";
-  format = "pyproject";
+  version = "0.1.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "iterative";
-    repo = pname;
+    repo = "pytest-test-utils";
     rev = "refs/tags/${version}";
-    hash = "sha256-5gB+hnJR2+NQd/n7RGrX1bzfKt8Np7IbWw61SZgNVJY=";
+    hash = "sha256-19oNAFff++7ntMdlnMXYc2w5I+EzGwWJh+rB1IjNZGk=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
-    wheel
   ];
 
   buildInputs = [ pytest ];
@@ -39,6 +37,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Pytest utilities for tests";
     homepage = "https://github.com/iterative/pytest-test-utils";
+    changelog = "https://github.com/iterative/pytest-test-utils/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/pytest-testinfra/default.nix b/pkgs/development/python-modules/pytest-testinfra/default.nix
index d9743ad803e69..888233166693c 100644
--- a/pkgs/development/python-modules/pytest-testinfra/default.nix
+++ b/pkgs/development/python-modules/pytest-testinfra/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "pytest-testinfra";
-  version = "10.1.0";
+  version = "10.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-93Qzm5R3Ws3zqMSjeTqOrS6N/HD/NLd4vhWquhQPoZ4=";
+    hash = "sha256-qHbxRToBtY2U2dk23VA0TCwBrHiAorQdFb3yM67Zzx8=";
   };
 
   build-system = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/pytest-tornado/default.nix b/pkgs/development/python-modules/pytest-tornado/default.nix
index 57922bf4b04d5..b4851ea3a50a1 100644
--- a/pkgs/development/python-modules/pytest-tornado/default.nix
+++ b/pkgs/development/python-modules/pytest-tornado/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ tornado ];
 
   meta = with lib; {
-    description = "A py.test plugin providing fixtures and markers to simplify testing of asynchronous tornado applications.";
+    description = "Py.test plugin providing fixtures and markers to simplify testing of asynchronous tornado applications";
     homepage = "https://github.com/eugeniy/pytest-tornado";
     license = licenses.asl20;
   };
diff --git a/pkgs/development/python-modules/pytest-twisted/default.nix b/pkgs/development/python-modules/pytest-twisted/default.nix
index 306d7a06a4c97..fa80566a13364 100644
--- a/pkgs/development/python-modules/pytest-twisted/default.nix
+++ b/pkgs/development/python-modules/pytest-twisted/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pytest_twisted" ];
 
   meta = with lib; {
-    description = "A twisted plugin for py.test";
+    description = "Twisted plugin for py.test";
     homepage = "https://github.com/pytest-dev/pytest-twisted";
     license = licenses.bsd3;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/pytest-virtualenv/default.nix b/pkgs/development/python-modules/pytest-virtualenv/default.nix
index 494209517eb31..fa276e748cddc 100644
--- a/pkgs/development/python-modules/pytest-virtualenv/default.nix
+++ b/pkgs/development/python-modules/pytest-virtualenv/default.nix
@@ -40,7 +40,7 @@ buildPythonPackage rec {
   disabledTestPaths = [ "tests/integration/*" ];
 
   meta = with lib; {
-    description = "Create a Python virtual environment in your test that cleans up on teardown. The fixture has utility methods to install packages and list what’s installed.";
+    description = "Create a Python virtual environment in your test that cleans up on teardown. The fixture has utility methods to install packages and list what’s installed";
     homepage = "https://github.com/manahl/pytest-plugins";
     license = licenses.mit;
     maintainers = with maintainers; [ ryansydnor ];
diff --git a/pkgs/development/python-modules/pytest-voluptuous/default.nix b/pkgs/development/python-modules/pytest-voluptuous/default.nix
index c22d2d463b723..dd5f6afd24112 100644
--- a/pkgs/development/python-modules/pytest-voluptuous/default.nix
+++ b/pkgs/development/python-modules/pytest-voluptuous/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   pytestFlagsArray = [ "tests/test_plugin.py" ];
 
   meta = with lib; {
-    description = "A pytest plugin for asserting data against voluptuous schema";
+    description = "Pytest plugin for asserting data against voluptuous schema";
     homepage = "https://github.com/F-Secure/pytest-voluptuous";
     changelog = "https://github.com/F-Secure/pytest-voluptuous/blob/${version}/CHANGELOG.rst";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/pytest-xvfb/default.nix b/pkgs/development/python-modules/pytest-xvfb/default.nix
index b665ea25a3b25..b011f081b984d 100644
--- a/pkgs/development/python-modules/pytest-xvfb/default.nix
+++ b/pkgs/development/python-modules/pytest-xvfb/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ pyvirtualdisplay ];
 
   meta = with lib; {
-    description = "A pytest plugin to run Xvfb for tests";
+    description = "Pytest plugin to run Xvfb for tests";
     homepage = "https://github.com/The-Compiler/pytest-xvfb";
     changelog = "https://github.com/The-Compiler/pytest-xvfb/blob/v${version}/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/python-box/default.nix b/pkgs/development/python-modules/python-box/default.nix
index 1167204729bc7..7d1e2c47c9018 100644
--- a/pkgs/development/python-modules/python-box/default.nix
+++ b/pkgs/development/python-modules/python-box/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "python-box";
-  version = "7.1.1";
+  version = "7.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "cdgriffith";
     repo = "Box";
     rev = "refs/tags/${version}";
-    hash = "sha256-oxT2y3um6BZ3bwYa+LWBoTgU+9b+V7XtQdCdECU3Gu0=";
+    hash = "sha256-5aORpuh0ezA3mUEpAPANDkdeN8ujNRfCUCV5qamMk68=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/python-constraint/default.nix b/pkgs/development/python-modules/python-constraint/default.nix
index cd54dc4b0b529..2a9dfd05a4599 100644
--- a/pkgs/development/python-modules/python-constraint/default.nix
+++ b/pkgs/development/python-modules/python-constraint/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   dontUseSetuptoolsCheck = true;
 
   meta = with lib; {
-    description = "Constraint Solving Problem resolver for Python.";
+    description = "Constraint Solving Problem resolver for Python";
     homepage = "https://labix.org/doc/constraint/";
     downloadPage = "https://github.com/python-constraint/python-constraint/releases";
     license = licenses.bsd2;
diff --git a/pkgs/development/python-modules/python-crontab/default.nix b/pkgs/development/python-modules/python-crontab/default.nix
index 08ca5de2b71e0..55522bc960b57 100644
--- a/pkgs/development/python-modules/python-crontab/default.nix
+++ b/pkgs/development/python-modules/python-crontab/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "python-crontab";
-  version = "3.0.0";
+  version = "3.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-eft0ZQOd39T7k9By1u4NRcGsi/FZfwaG6hT9Q2Hbo3k=";
+    hash = "sha256-9OoWBdJFM7Z/p6Y07ybLWaXy55VPbmd9LXoiKZWaL8g=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/python-csxcad/default.nix b/pkgs/development/python-modules/python-csxcad/default.nix
index 1208aa47cc82e..364b266a9c73b 100644
--- a/pkgs/development/python-modules/python-csxcad/default.nix
+++ b/pkgs/development/python-modules/python-csxcad/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   buildPythonPackage,
-  fetchFromGitHub,
   cython,
   openems,
   csxcad,
diff --git a/pkgs/development/python-modules/python-daemon/default.nix b/pkgs/development/python-modules/python-daemon/default.nix
index 802abf87d0867..bb6cf5d94ea1f 100644
--- a/pkgs/development/python-modules/python-daemon/default.nix
+++ b/pkgs/development/python-modules/python-daemon/default.nix
@@ -8,9 +8,7 @@
   testscenarios,
   testtools,
   twine,
-  python,
   pythonOlder,
-  fetchpatch,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/python-editor/default.nix b/pkgs/development/python-modules/python-editor/default.nix
index f466115a27a6b..21ae55ef67015 100644
--- a/pkgs/development/python-modules/python-editor/default.nix
+++ b/pkgs/development/python-modules/python-editor/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage {
   doCheck = false;
 
   meta = with lib; {
-    description = "A library that provides the `editor` module for programmatically";
+    description = "Library that provides the `editor` module for programmatically";
     homepage = "https://github.com/fmoo/python-editor";
     license = licenses.asl20;
   };
diff --git a/pkgs/development/python-modules/python-etcd/default.nix b/pkgs/development/python-modules/python-etcd/default.nix
index 14c26b2e899bd..b9dcd8aaee394 100644
--- a/pkgs/development/python-modules/python-etcd/default.nix
+++ b/pkgs/development/python-modules/python-etcd/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A python client for Etcd";
+    description = "Python client for Etcd";
     homepage = "https://github.com/jplana/python-etcd";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/python-ethtool/default.nix b/pkgs/development/python-modules/python-ethtool/default.nix
index d028d1af2429d..b140db8c9f220 100644
--- a/pkgs/development/python-modules/python-ethtool/default.nix
+++ b/pkgs/development/python-modules/python-ethtool/default.nix
@@ -31,6 +31,5 @@ buildPythonPackage rec {
     description = "Python bindings for the ethtool kernel interface";
     homepage = "https://github.com/fedora-python/python-ethtool";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/python-fontconfig/default.nix b/pkgs/development/python-modules/python-fontconfig/default.nix
index 2f90ca56dac6a..314f733ca1706 100644
--- a/pkgs/development/python-modules/python-fontconfig/default.nix
+++ b/pkgs/development/python-modules/python-fontconfig/default.nix
@@ -1,12 +1,13 @@
 {
-  lib,
   buildPythonPackage,
+  cython,
   fetchPypi,
+  fetchpatch,
   fontconfig,
-  python,
-  cython,
   freefont_ttf,
+  lib,
   makeFontsConf,
+  python,
 }:
 
 let
@@ -25,6 +26,16 @@ buildPythonPackage rec {
   buildInputs = [ fontconfig ];
   nativeBuildInputs = [ cython ];
 
+  patches = [
+    # distutils has been removed since python 3.12
+    # See https://github.com/vayn/python-fontconfig/pull/10
+    (fetchpatch {
+      name = "no-distutils.patch";
+      url = "https://github.com/vayn/python-fontconfig/commit/15e1a72c90e93a665569e0ba771ae53c7c8020c8.patch";
+      hash = "sha256-2mAemltWh3+LV4FDOg6uSD09zok3Eyd+v1WJJdouOV8=";
+    })
+  ];
+
   preBuild = ''
     ${python.pythonOnBuildForHost.interpreter} setup.py build_ext -i
   '';
diff --git a/pkgs/development/python-modules/python-fullykiosk/default.nix b/pkgs/development/python-modules/python-fullykiosk/default.nix
index 8bb0eac6da139..3e3a65ff9815e 100644
--- a/pkgs/development/python-modules/python-fullykiosk/default.nix
+++ b/pkgs/development/python-modules/python-fullykiosk/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "python-fullykiosk";
-  version = "0.0.12";
+  version = "0.0.13";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "cgarwood";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-88PsJ1qAlOpxDtZyQe8pFC2Y3ygg3boiPxmYad58Fm8=";
+    hash = "sha256-GElLaSSr/EEhtjgasP2C79kf+HluVPuQ21I8La7IvLs=";
   };
 
   propagatedBuildInputs = [ aiohttp ];
diff --git a/pkgs/development/python-modules/python-gvm/default.nix b/pkgs/development/python-modules/python-gvm/default.nix
index 6d79230236894..098bc746f5539 100644
--- a/pkgs/development/python-modules/python-gvm/default.nix
+++ b/pkgs/development/python-modules/python-gvm/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "python-gvm";
-  version = "24.3.0";
+  version = "24.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "greenbone";
     repo = "python-gvm";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GIEsP8+RJMIehsBbZWpIRXCdqxm042lPbYTHY7/fknM=";
+    hash = "sha256-4Wa8O6kt4FsQk6VvE1dCdl9hQReO3YCf/4hTGcGaQxE=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/python-hglib/default.nix b/pkgs/development/python-modules/python-hglib/default.nix
index fb7d6ba231596..528316240c0a2 100644
--- a/pkgs/development/python-modules/python-hglib/default.nix
+++ b/pkgs/development/python-modules/python-hglib/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "hglib" ];
 
   meta = with lib; {
-    description = "Library with a fast, convenient interface to Mercurial. It uses Mercurial’s command server for communication with hg.";
+    description = "Library with a fast, convenient interface to Mercurial. It uses Mercurial’s command server for communication with hg";
     homepage = "https://www.mercurial-scm.org/wiki/PythonHglibs";
     license = licenses.mit;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/python-hl7/default.nix b/pkgs/development/python-modules/python-hl7/default.nix
index 1844f6dd33671..b194bd7ca38bc 100644
--- a/pkgs/development/python-modules/python-hl7/default.nix
+++ b/pkgs/development/python-modules/python-hl7/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "hl7" ];
 
   meta = with lib; {
-    description = "A simple library for parsing messages of Health Level 7 (HL7) version 2.x into Python objects";
+    description = "Simple library for parsing messages of Health Level 7 (HL7) version 2.x into Python objects";
     mainProgram = "mllp_send";
     homepage = "https://python-hl7.readthedocs.org";
     changelog = "https://python-hl7.readthedocs.io/en/latest/changelog.html";
diff --git a/pkgs/development/python-modules/python-homewizard-energy/default.nix b/pkgs/development/python-modules/python-homewizard-energy/default.nix
index 7a79c8648a5c7..a25cae986a2da 100644
--- a/pkgs/development/python-modules/python-homewizard-energy/default.nix
+++ b/pkgs/development/python-modules/python-homewizard-energy/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "python-homewizard-energy";
-  version = "5.0.0";
+  version = "6.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "DCSBL";
     repo = "python-homewizard-energy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-z9JJHS7w/lugV23xJjWHBWVQp38J3CKtj4IuDvpPQJw=";
+    hash = "sha256-tOoNC9MysL5PcIa1N/GjzNy+4+ovZGQznYYDt1o6f4c=";
   };
 
   postPatch = ''
@@ -31,9 +31,9 @@ buildPythonPackage rec {
       --replace-fail 'version = "0.0.0"' 'version = "${version}"'
   '';
 
-  nativeBuildInputs = [ poetry-core ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     async-timeout
   ];
diff --git a/pkgs/development/python-modules/python-ipware/default.nix b/pkgs/development/python-modules/python-ipware/default.nix
index 4b57186303206..9e63a766bc0f6 100644
--- a/pkgs/development/python-modules/python-ipware/default.nix
+++ b/pkgs/development/python-modules/python-ipware/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ unittestCheckHook ];
 
   meta = with lib; {
-    description = "A python package for server applications to retrieve client's IP address";
+    description = "Python package for server applications to retrieve client's IP address";
     homepage = "https://github.com/un33k/python-ipware";
     changelog = "https://github.com/un33k/python-ipware/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/python-ironicclient/default.nix b/pkgs/development/python-modules/python-ironicclient/default.nix
index 703be62e30517..e684cbbd34ce8 100644
--- a/pkgs/development/python-modules/python-ironicclient/default.nix
+++ b/pkgs/development/python-modules/python-ironicclient/default.nix
@@ -2,8 +2,6 @@
   lib,
   buildPythonPackage,
   fetchPypi,
-  pbr,
-  appdirs,
   cliff,
   dogpile-cache,
   jsonschema,
@@ -11,12 +9,14 @@
   openstacksdk,
   osc-lib,
   oslo-utils,
+  oslotest,
+  pbr,
+  platformdirs,
   pyyaml,
   requests,
-  stevedore,
-  stestr,
   requests-mock,
-  oslotest,
+  stestr,
+  stevedore,
 }:
 
 buildPythonPackage rec {
@@ -30,8 +30,6 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    pbr
-    appdirs
     cliff
     dogpile-cache
     jsonschema
@@ -39,6 +37,8 @@ buildPythonPackage rec {
     openstacksdk
     osc-lib
     oslo-utils
+    pbr
+    platformdirs
     pyyaml
     requests
     stevedore
@@ -57,7 +57,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ironicclient" ];
 
   meta = with lib; {
-    description = "A client for OpenStack bare metal provisioning API, includes a Python module (ironicclient) and CLI (baremetal).";
+    description = "Client for OpenStack bare metal provisioning API, includes a Python module (ironicclient) and CLI (baremetal)";
     mainProgram = "baremetal";
     homepage = "https://github.com/openstack/python-ironicclient";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/python-jose/default.nix b/pkgs/development/python-modules/python-jose/default.nix
index 92f2bd6ce9b33..271115978bb98 100644
--- a/pkgs/development/python-modules/python-jose/default.nix
+++ b/pkgs/development/python-modules/python-jose/default.nix
@@ -79,7 +79,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/mpdavis/python-jose/releases/tag/${version}";
     homepage = "https://github.com/mpdavis/python-jose";
-    description = "A JOSE implementation in Python";
+    description = "JOSE implementation in Python";
     license = licenses.mit;
     maintainers = with maintainers; [ jhhuh ];
   };
diff --git a/pkgs/development/python-modules/python-jsonrpc-server/default.nix b/pkgs/development/python-modules/python-jsonrpc-server/default.nix
index db3374cea17fe..dd82fbca2cb46 100644
--- a/pkgs/development/python-modules/python-jsonrpc-server/default.nix
+++ b/pkgs/development/python-modules/python-jsonrpc-server/default.nix
@@ -40,7 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/palantir/python-jsonrpc-server";
-    description = "A Python 2 and 3 asynchronous JSON RPC server";
+    description = "Python 2 and 3 asynchronous JSON RPC server";
     license = licenses.mit;
     maintainers = [ maintainers.mic92 ];
   };
diff --git a/pkgs/development/python-modules/python-linux-procfs/default.nix b/pkgs/development/python-modules/python-linux-procfs/default.nix
index 0b074adf94a5c..f4306acedf710 100644
--- a/pkgs/development/python-modules/python-linux-procfs/default.nix
+++ b/pkgs/development/python-modules/python-linux-procfs/default.nix
@@ -26,6 +26,5 @@ buildPythonPackage rec {
     mainProgram = "pflags";
     homepage = "https://git.kernel.org/pub/scm/libs/python/python-linux-procfs/python-linux-procfs.git/";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/python-magic/default.nix b/pkgs/development/python-modules/python-magic/default.nix
index 14f35b2d795f9..24c828a80eb03 100644
--- a/pkgs/development/python-modules/python-magic/default.nix
+++ b/pkgs/development/python-modules/python-magic/default.nix
@@ -48,7 +48,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A python interface to the libmagic file type identification library";
+    description = "Python interface to the libmagic file type identification library";
     homepage = "https://github.com/ahupp/python-magic";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/python-mapnik/default.nix b/pkgs/development/python-modules/python-mapnik/default.nix
index a68a618ccd463..d2d0ae00f08cd 100644
--- a/pkgs/development/python-modules/python-mapnik/default.nix
+++ b/pkgs/development/python-modules/python-mapnik/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   substituteAll,
   isPyPy,
   python,
@@ -24,21 +23,20 @@
   sqlite,
   nose,
   pytestCheckHook,
-  stdenv,
+  darwin,
+  sparsehash,
 }:
 
 buildPythonPackage rec {
   pname = "python-mapnik";
-  version = "unstable-2023-02-23";
+  version = "3.0.16-unstable-2024-02-22";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "mapnik";
     repo = "python-mapnik";
-    # Use proj6 branch in order to support Proj >= 6 (excluding commits after 2023-02-23)
-    # https://github.com/mapnik/python-mapnik/compare/master...proj6
-    rev = "687b2c72a24c59d701d62e4458c380f8c54f0549";
-    hash = "sha256-q3Snd3K/JndckwAVwSKU+kFK5E1uph78ty7mwVo/7Ik=";
+    rev = "5ab32f0209909cc98c26e1d86ce0c8ef29a9bf3d";
+    hash = "sha256-OqijA1WcyBcyWO8gntqp+xNIaV1Jqa0n1eMDip2OCvY=";
     # Only needed for test data
     fetchSubmodules = true;
   };
@@ -50,8 +48,13 @@ buildPythonPackage rec {
       src = ./find-libmapnik.patch;
       libmapnik = "${mapnik}/lib";
     })
+    # Use `std::optional` rather than `boost::optional`
+    # https://github.com/mapnik/python-mapnik/commit/e9f88a95a03dc081826a69da67bbec3e4cccd5eb
+    ./python-mapnik_std_optional.patch
   ];
 
+  stdenv = if python.stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else python.stdenv;
+
   nativeBuildInputs = [
     mapnik # for mapnik_config
     pkg-config
@@ -71,6 +74,7 @@ buildPythonPackage rec {
     zlib
     libxml2
     sqlite
+    sparsehash
   ];
 
   propagatedBuildInputs = [
@@ -108,14 +112,19 @@ buildPythonPackage rec {
   # https://github.com/mapnik/python-mapnik/issues/255
   disabledTests = [
     "test_geometry_type"
-    "test_marker_ellipse_render1"
-    "test_marker_ellipse_render2"
-    "test_normalizing_definition"
     "test_passing_pycairo_context_pdf"
     "test_pdf_printing"
-    "test_visual_zoom_all_rendering2"
-    "test_wgs84_inverse_forward"
-  ] ++ lib.optionals stdenv.isDarwin [ "test_passing_pycairo_context_svg" ];
+    "test_render_with_scale_factor"
+  ] ++ lib.optionals stdenv.isDarwin [
+    "test_passing_pycairo_context_png"
+    "test_passing_pycairo_context_svg"
+    "test_pycairo_pdf_surface1"
+    "test_pycairo_pdf_surface2"
+    "test_pycairo_pdf_surface3"
+    "test_pycairo_svg_surface1"
+    "test_pycairo_svg_surface2"
+    "test_pycairo_svg_surface3"
+  ];
 
   pythonImportsCheck = [ "mapnik" ];
 
diff --git a/pkgs/development/python-modules/python-mapnik/python-mapnik_std_optional.patch b/pkgs/development/python-modules/python-mapnik/python-mapnik_std_optional.patch
new file mode 100644
index 0000000000000..c285e77ca57b6
--- /dev/null
+++ b/pkgs/development/python-modules/python-mapnik/python-mapnik_std_optional.patch
@@ -0,0 +1,176 @@
+diff --git a/src/mapnik_image.cpp b/src/mapnik_image.cpp
+index 9add692c9..488427b56 100644
+--- a/src/mapnik_image.cpp
++++ b/src/mapnik_image.cpp
+@@ -230,7 +230,7 @@ unsigned get_type(mapnik::image_any & im)
+ 
+ std::shared_ptr<image_any> open_from_file(std::string const& filename)
+ {
+-    boost::optional<std::string> type = type_from_filename(filename);
++    auto type = type_from_filename(filename);
+     if (type)
+     {
+         std::unique_ptr<image_reader> reader(get_image_reader(filename,*type));
+diff --git a/src/mapnik_layer.cpp b/src/mapnik_layer.cpp
+index 4fc7ea579..fbd277a81 100644
+--- a/src/mapnik_layer.cpp
++++ b/src/mapnik_layer.cpp
+@@ -95,7 +95,7 @@ struct layer_pickle_suite : boost::python::pickle_suite
+ 
+ std::vector<std::string> & (mapnik::layer::*_styles_)() = &mapnik::layer::styles;
+ 
+-void set_maximum_extent(mapnik::layer & l, boost::optional<mapnik::box2d<double> > const& box)
++void set_maximum_extent(mapnik::layer & l, std::optional<mapnik::box2d<double> > const& box)
+ {
+     if (box)
+     {
+@@ -107,7 +107,7 @@ void set_maximum_extent(mapnik::layer & l, boost::optional<mapnik::box2d<double>
+     }
+ }
+ 
+-void set_buffer_size(mapnik::layer & l, boost::optional<int> const& buffer_size)
++void set_buffer_size(mapnik::layer & l, std::optional<int> const& buffer_size)
+ {
+     if (buffer_size)
+     {
+@@ -121,7 +121,7 @@ void set_buffer_size(mapnik::layer & l, boost::optional<int> const& buffer_size)
+ 
+ PyObject * get_buffer_size(mapnik::layer & l)
+ {
+-    boost::optional<int> buffer_size = l.buffer_size();
++    std::optional<int> buffer_size = l.buffer_size();
+     if (buffer_size)
+     {
+ #if PY_VERSION_HEX >= 0x03000000
+diff --git a/src/mapnik_map.cpp b/src/mapnik_map.cpp
+index 3587e5d8a..cfa523b03 100644
+--- a/src/mapnik_map.cpp
++++ b/src/mapnik_map.cpp
+@@ -105,7 +105,7 @@ mapnik::featureset_ptr query_map_point(mapnik::Map const& m, int index, double x
+     return m.query_map_point(idx, x, y);
+ }
+ 
+-void set_maximum_extent(mapnik::Map & m, boost::optional<mapnik::box2d<double> > const& box)
++void set_maximum_extent(mapnik::Map & m, std::optional<mapnik::box2d<double> > const& box)
+ {
+     if (box)
+     {
+diff --git a/src/python_optional.hpp b/src/python_optional.hpp
+index d690b7c51..9d86c340e 100644
+--- a/src/python_optional.hpp
++++ b/src/python_optional.hpp
+@@ -28,7 +28,7 @@
+ #include <mapnik/util/noncopyable.hpp>
+ #pragma GCC diagnostic pop
+ 
+-// boost::optional<T> to/from converter from John Wiegley
++// std::optional<T> to/from converter from John Wiegley
+ 
+ template <typename T, typename TfromPy>
+ struct object_from_python
+@@ -54,7 +54,7 @@ struct python_optional : public mapnik::util::noncopyable
+ {
+     struct optional_to_python
+     {
+-        static PyObject * convert(const boost::optional<T>& value)
++        static PyObject * convert(const std::optional<T>& value)
+         {
+             return (value ? boost::python::to_python_value<T>()(*value) :
+                     boost::python::detail::none());
+@@ -90,9 +90,9 @@ struct python_optional : public mapnik::util::noncopyable
+                                     data)->storage.bytes;
+ 
+             if (data->convertible == source)        // == None
+-                new (storage) boost::optional<T>(); // A Boost uninitialized value
++                new (storage) std::optional<T>(); // A Boost uninitialized value
+             else
+-                new (storage) boost::optional<T>(*static_cast<T *>(data->convertible));
++                new (storage) std::optional<T>(*static_cast<T *>(data->convertible));
+ 
+             data->convertible = storage;
+         }
+@@ -100,18 +100,18 @@ struct python_optional : public mapnik::util::noncopyable
+ 
+     explicit python_optional()
+     {
+-        register_python_conversion<boost::optional<T>,
++        register_python_conversion<std::optional<T>,
+             optional_to_python, optional_from_python>();
+     }
+ };
+ 
+-// to/from boost::optional<bool>
++// to/from std::optional<bool>
+ template <>
+ struct python_optional<float> : public mapnik::util::noncopyable
+ {
+     struct optional_to_python
+     {
+-        static PyObject * convert(const boost::optional<float>& value)
++        static PyObject * convert(const std::optional<float>& value)
+         {
+             return (value ? PyFloat_FromDouble(*value) :
+                     boost::python::detail::none());
+@@ -133,30 +133,30 @@ struct python_optional<float> : public mapnik::util::noncopyable
+                               boost::python::converter::rvalue_from_python_stage1_data * data)
+         {
+             using namespace boost::python::converter;
+-            void * const storage = ((rvalue_from_python_storage<boost::optional<bool> > *)
++            void * const storage = ((rvalue_from_python_storage<std::optional<bool> > *)
+                                     data)->storage.bytes;
+             if (source == Py_None)  // == None
+-                new (storage) boost::optional<float>(); // A Boost uninitialized value
++                new (storage) std::optional<float>(); // A Boost uninitialized value
+             else
+-                new (storage) boost::optional<float>(PyFloat_AsDouble(source));
++                new (storage) std::optional<float>(PyFloat_AsDouble(source));
+             data->convertible = storage;
+         }
+     };
+ 
+     explicit python_optional()
+     {
+-        register_python_conversion<boost::optional<float>,
++        register_python_conversion<std::optional<float>,
+             optional_to_python, optional_from_python>();
+     }
+ };
+ 
+-// to/from boost::optional<float>
++// to/from std::optional<float>
+ template <>
+ struct python_optional<bool> : public mapnik::util::noncopyable
+ {
+     struct optional_to_python
+     {
+-        static PyObject * convert(const boost::optional<bool>& value)
++        static PyObject * convert(const std::optional<bool>& value)
+         {
+             if (value)
+             {
+@@ -181,13 +181,13 @@ struct python_optional<bool> : public mapnik::util::noncopyable
+                               boost::python::converter::rvalue_from_python_stage1_data * data)
+         {
+             using namespace boost::python::converter;
+-            void * const storage = ((rvalue_from_python_storage<boost::optional<bool> > *)
++            void * const storage = ((rvalue_from_python_storage<std::optional<bool> > *)
+                                     data)->storage.bytes;
+             if (source == Py_None)  // == None
+-                new (storage) boost::optional<bool>(); // A Boost uninitialized value
++                new (storage) std::optional<bool>(); // A Boost uninitialized value
+             else
+             {
+-                new (storage) boost::optional<bool>(source == Py_True ? true : false);
++                new (storage) std::optional<bool>(source == Py_True ? true : false);
+             }
+             data->convertible = storage;
+         }
+@@ -195,7 +195,7 @@ struct python_optional<bool> : public mapnik::util::noncopyable
+ 
+     explicit python_optional()
+     {
+-        register_python_conversion<boost::optional<bool>,
++        register_python_conversion<std::optional<bool>,
+             optional_to_python, optional_from_python>();
+     }
+ };
diff --git a/pkgs/development/python-modules/python-matter-server/default.nix b/pkgs/development/python-modules/python-matter-server/default.nix
index 8c86581d6d9a2..e981e6ce8c6a7 100644
--- a/pkgs/development/python-modules/python-matter-server/default.nix
+++ b/pkgs/development/python-modules/python-matter-server/default.nix
@@ -34,13 +34,13 @@
 let
   paaCerts = stdenvNoCC.mkDerivation rec {
     pname = "matter-server-paa-certificates";
-    version = "1.2.0.1";
+    version = "1.3.0.0";
 
     src = fetchFromGitHub {
       owner = "project-chip";
       repo = "connectedhomeip";
       rev = "refs/tags/v${version}";
-      hash = "sha256-p3P0n5oKRasYz386K2bhN3QVfN6oFndFIUWLEUWB0ss=";
+      hash = "sha256-5MI6r0KhSTzolesTQ8YWeoko64jFu4jHfO5KOOKpV0A=";
     };
 
     installPhase = ''
@@ -56,8 +56,8 @@ in
 
 buildPythonPackage rec {
   pname = "python-matter-server";
-  version = "5.10.0";
-  format = "pyproject";
+  version = "6.1.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.10";
 
@@ -65,7 +65,7 @@ buildPythonPackage rec {
     owner = "home-assistant-libs";
     repo = "python-matter-server";
     rev = "refs/tags/${version}";
-    hash = "sha256-rfpGclSgCBTxlTgVqgNz3ixoldB9M+6mLmogkNDDdWs=";
+    hash = "sha256-sY/FaMZ3p/AC63t1ku1Khgqi71G7u2O+ZPTuMPHFkuk=";
   };
 
   patches = [
@@ -81,14 +81,14 @@ buildPythonPackage rec {
       --replace '--cov' ""
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     pythonRelaxDepsHook
   ];
 
   pythonRelaxDeps = [ "home-assistant-chip-clusters" ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     aiorun
     async-timeout
@@ -98,7 +98,7 @@ buildPythonPackage rec {
     home-assistant-chip-clusters
   ];
 
-  passthru.optional-dependencies = {
+  optional-dependencies = {
     server = [
       cryptography
       home-assistant-chip-core
@@ -109,11 +109,11 @@ buildPythonPackage rec {
   nativeCheckInputs = [
     pytest-aiohttp
     pytestCheckHook
-  ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
+  ] ++ lib.flatten (lib.attrValues optional-dependencies);
 
   preCheck =
     let
-      pythonEnv = python.withPackages (_: propagatedBuildInputs ++ nativeCheckInputs ++ [ pytest ]);
+      pythonEnv = python.withPackages (_: dependencies ++ nativeCheckInputs ++ [ pytest ]);
     in
     ''
       export PYTHONPATH=${pythonEnv}/${python.sitePackages}
diff --git a/pkgs/development/python-modules/python-matter-server/link-paa-root-certs.patch b/pkgs/development/python-modules/python-matter-server/link-paa-root-certs.patch
index 6c52715950562..f7b09bb0aff62 100644
--- a/pkgs/development/python-modules/python-matter-server/link-paa-root-certs.patch
+++ b/pkgs/development/python-modules/python-matter-server/link-paa-root-certs.patch
@@ -1,3 +1,13 @@
+From f45cf9898f2e5a3a4c2b73a9ed84c4a037a85a1e Mon Sep 17 00:00:00 2001
+From: Matt Leon <ml@mattleon.com>
+Date: Sat, 1 Jun 2024 23:28:41 -0400
+Subject: [PATCH] Symlink PAA root certificates to nix store
+
+---
+ matter_server/server/const.py                    | 2 ++
+ matter_server/server/helpers/paa_certificates.py | 6 ++++++
+ 2 files changed, 8 insertions(+)
+
 diff --git a/matter_server/server/const.py b/matter_server/server/const.py
 index 8cca3cf..43f02f5 100644
 --- a/matter_server/server/const.py
@@ -12,19 +22,19 @@ index 8cca3cf..43f02f5 100644
      .parent.resolve()
      .parent.resolve()
 diff --git a/matter_server/server/helpers/paa_certificates.py b/matter_server/server/helpers/paa_certificates.py
-index e530838..fdd6025 100644
+index de60c78..185e54c 100644
 --- a/matter_server/server/helpers/paa_certificates.py
 +++ b/matter_server/server/helpers/paa_certificates.py
-@@ -64,6 +64,8 @@ async def fetch_dcl_certificates(
-     fetch_production_certificates: bool = True,
+@@ -105,6 +105,8 @@ async def fetch_dcl_certificates(
+     base_url: str,
  ) -> int:
      """Fetch DCL PAA Certificates."""
 +    return 0
 +
-     LOGGER.info("Fetching the latest PAA root certificates from DCL.")
      fetch_count: int = 0
-     base_urls = set()
-@@ -124,6 +126,8 @@ async def fetch_dcl_certificates(
+ 
+     try:
+@@ -151,6 +153,8 @@ async def fetch_dcl_certificates(
  
  async def fetch_git_certificates(paa_root_cert_dir: Path) -> int:
      """Fetch Git PAA Certificates."""
@@ -33,12 +43,15 @@ index e530838..fdd6025 100644
      fetch_count = 0
      LOGGER.info("Fetching the latest PAA root certificates from Git.")
  
-@@ -159,6 +163,8 @@ async def fetch_certificates(
+@@ -185,6 +189,8 @@ async def fetch_certificates(
      fetch_production_certificates: bool = True,
  ) -> int:
      """Fetch PAA Certificates."""
 +    return 0
 +
      loop = asyncio.get_running_loop()
+     paa_root_cert_dir_version = paa_root_cert_dir / ".version"
  
-     if not paa_root_cert_dir.is_dir():
+-- 
+2.44.1
+
diff --git a/pkgs/development/python-modules/python-mimeparse/default.nix b/pkgs/development/python-modules/python-mimeparse/default.nix
index eb9a69e0fea99..4b7ef603297d3 100644
--- a/pkgs/development/python-modules/python-mimeparse/default.nix
+++ b/pkgs/development/python-modules/python-mimeparse/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A module provides basic functions for parsing mime-type names and matching them against a list of media-ranges";
+    description = "Module provides basic functions for parsing mime-type names and matching them against a list of media-ranges";
     homepage = "https://github.com/dbtsai/python-mimeparse";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/python-motionmount/default.nix b/pkgs/development/python-modules/python-motionmount/default.nix
index 8e1ba0bb644ec..de451018a874f 100644
--- a/pkgs/development/python-modules/python-motionmount/default.nix
+++ b/pkgs/development/python-modules/python-motionmount/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "python-motionmount";
-  version = "1.0.1";
+  version = "2.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "vogelsproducts";
     repo = "python-MotionMount";
     rev = "refs/tags/${version}";
-    hash = "sha256-F/nFo/PivnIogVwEh6MsQZQWg95kQMr6pZuf0SZa3n4=";
+    hash = "sha256-jmHFsJwnmdSUKz2W9pWtc9KpUAs6QWnO2V5KROwmTGs=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/python-multipart/default.nix b/pkgs/development/python-modules/python-multipart/default.nix
index 84b187a3ce680..3703e12757626 100644
--- a/pkgs/development/python-modules/python-multipart/default.nix
+++ b/pkgs/development/python-modules/python-multipart/default.nix
@@ -50,7 +50,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A streaming multipart parser for Python";
+    description = "Streaming multipart parser for Python";
     homepage = "https://github.com/andrew-d/python-multipart";
     license = licenses.asl20;
     maintainers = with maintainers; [ ris ];
diff --git a/pkgs/development/python-modules/python-musicpd/default.nix b/pkgs/development/python-modules/python-musicpd/default.nix
index 45846d2995172..673a9723397d6 100644
--- a/pkgs/development/python-modules/python-musicpd/default.nix
+++ b/pkgs/development/python-modules/python-musicpd/default.nix
@@ -2,6 +2,7 @@
   lib,
   buildPythonPackage,
   fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -14,12 +15,14 @@ buildPythonPackage rec {
     sha256 = "sha256-/FdM0UolVqhJNpS60Q/nra1hSHKL/LiSMX7/Hcipwco=";
   };
 
-  format = "setuptools";
+  pyproject = true;
+
+  build-system = [ setuptools ];
 
   doCheck = true;
 
   meta = with lib; {
-    description = "An MPD (Music Player Daemon) client library written in pure Python.";
+    description = "MPD (Music Player Daemon) client library written in pure Python";
     homepage = "https://gitlab.com/kaliko/python-musicpd";
     license = licenses.lgpl3Plus;
     maintainers = with lib.maintainers; [ apfelkuchen6 ];
diff --git a/pkgs/development/python-modules/python-ndn/default.nix b/pkgs/development/python-modules/python-ndn/default.nix
index 897bd8c8de150..ad3d7fd724bc0 100644
--- a/pkgs/development/python-modules/python-ndn/default.nix
+++ b/pkgs/development/python-modules/python-ndn/default.nix
@@ -52,7 +52,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ndn" ];
 
   meta = with lib; {
-    description = "An NDN client library with AsyncIO support";
+    description = "NDN client library with AsyncIO support";
     homepage = "https://github.com/named-data/python-ndn";
     changelog = "https://github.com/named-data/python-ndn/blob/${src.rev}/CHANGELOG.rst";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/python-packer/default.nix b/pkgs/development/python-modules/python-packer/default.nix
index ecba77e1b84ac..851cae395ad40 100644
--- a/pkgs/development/python-modules/python-packer/default.nix
+++ b/pkgs/development/python-modules/python-packer/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "An interface for packer.io";
+    description = "Interface for packer.io";
     homepage = "https://github.com/nir0s/python-packer";
     license = licenses.asl20;
     maintainers = with maintainers; [ psyanticy ];
diff --git a/pkgs/development/python-modules/python-roborock/default.nix b/pkgs/development/python-modules/python-roborock/default.nix
index 1417b78a9235c..261624e1902f5 100644
--- a/pkgs/development/python-modules/python-roborock/default.nix
+++ b/pkgs/development/python-modules/python-roborock/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "python-roborock";
-  version = "2.2.2";
+  version = "2.3.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "humbertogontijo";
     repo = "python-roborock";
     rev = "refs/tags/v${version}";
-    hash = "sha256-W/42NUs3fQKCxM6hlJTmNQ7E8FevxO3XJCOYyZHQsqs=";
+    hash = "sha256-YjD/aTSUeVuMyrdC2dcKgIqeBC+8NircRFLh2+mbD+8=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/python-rtmidi/default.nix b/pkgs/development/python-modules/python-rtmidi/default.nix
index a91ffec78c29f..95c047de31dbd 100644
--- a/pkgs/development/python-modules/python-rtmidi/default.nix
+++ b/pkgs/development/python-modules/python-rtmidi/default.nix
@@ -63,7 +63,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "rtmidi" ];
 
   meta = with lib; {
-    description = "A Python binding for the RtMidi C++ library implemented using Cython";
+    description = "Python binding for the RtMidi C++ library implemented using Cython";
     homepage = "https://github.com/SpotlightKid/python-rtmidi";
     changelog = "https://github.com/SpotlightKid/python-rtmidi/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/python-secp256k1-cardano/default.nix b/pkgs/development/python-modules/python-secp256k1-cardano/default.nix
index f21326d516854..1328dc98ae357 100644
--- a/pkgs/development/python-modules/python-secp256k1-cardano/default.nix
+++ b/pkgs/development/python-modules/python-secp256k1-cardano/default.nix
@@ -38,7 +38,7 @@ python3.pkgs.buildPythonPackage {
 
   meta = {
     homepage = "https://github.com/OpShin/python-secp256k1";
-    description = "A fork of python-secp256k1, fixing the commit hash of libsecp256k1 to a Cardano compatible version";
+    description = "Fork of python-secp256k1, fixing the commit hash of libsecp256k1 to a Cardano compatible version";
     license = with lib.licenses; [ mit ];
     maintainers = with lib.maintainers; [ t4ccer ];
   };
diff --git a/pkgs/development/python-modules/python-string-utils/default.nix b/pkgs/development/python-modules/python-string-utils/default.nix
index 1e962148703cc..537f5f1f9a756 100644
--- a/pkgs/development/python-modules/python-string-utils/default.nix
+++ b/pkgs/development/python-modules/python-string-utils/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A handy Python library to validate, manipulate and generate strings.";
+    description = "Handy Python library to validate, manipulate and generate strings";
     homepage = "https://github.com/daveoncode/python-string-utils";
     license = licenses.mit;
     maintainers = with maintainers; [ teto ];
diff --git a/pkgs/development/python-modules/python-swiftclient/default.nix b/pkgs/development/python-modules/python-swiftclient/default.nix
index 481b70972d2cd..9f4fca6cc4382 100644
--- a/pkgs/development/python-modules/python-swiftclient/default.nix
+++ b/pkgs/development/python-modules/python-swiftclient/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "python-swiftclient";
-  version = "4.5.0";
+  version = "4.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-8qCIflo5KXq8BDJRrj+QiRTOFEei+NLcpWcWGGCBQr0=";
+    hash = "sha256-1NGFQEE4k/wWrYd5HXQPgj92NDXoIS5o61PWDaJjgjM=";
   };
 
   # remove duplicate script that will be created by setuptools from the
diff --git a/pkgs/development/python-modules/python-telegram-bot/default.nix b/pkgs/development/python-modules/python-telegram-bot/default.nix
index 8cd1dc5ec7ffc..26df7c0567d91 100644
--- a/pkgs/development/python-modules/python-telegram-bot/default.nix
+++ b/pkgs/development/python-modules/python-telegram-bot/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "python-telegram-bot";
-  version = "21.2";
+  version = "21.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "python-telegram-bot";
     repo = "python-telegram-bot";
     rev = "refs/tags/v${version}";
-    hash = "sha256-l5twJbyZh30+pt9DsCpQRuSav8qYNGlIhQW0qY9BmO4=";
+    hash = "sha256-eyIRZkt1ea2L20ryogKrmSx/+xL2fhNXcf3vUnuS9vo=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/python-trovo/default.nix b/pkgs/development/python-modules/python-trovo/default.nix
index 0458711c584e8..f2af3cbb53d27 100644
--- a/pkgs/development/python-modules/python-trovo/default.nix
+++ b/pkgs/development/python-modules/python-trovo/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "trovoApi" ];
 
   meta = with lib; {
-    description = "A Python wrapper for the Trovo API";
+    description = "Python wrapper for the Trovo API";
     homepage = "https://codeberg.org/wolfangaukang/python-trovo";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ wolfangaukang ];
diff --git a/pkgs/development/python-modules/python-twitter/default.nix b/pkgs/development/python-modules/python-twitter/default.nix
index b085ed0caee8e..c61d726b71616 100644
--- a/pkgs/development/python-modules/python-twitter/default.nix
+++ b/pkgs/development/python-modules/python-twitter/default.nix
@@ -1,22 +1,25 @@
 {
-  lib,
   buildPythonPackage,
   fetchFromGitHub,
   fetchpatch,
   filetype,
   future,
   hypothesis,
+  lib,
   pytestCheckHook,
   pythonOlder,
   requests,
   requests-oauthlib,
   responses,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "python-twitter";
   version = "3.5";
-  format = "setuptools";
+
+  pyproject = true;
+  build-system = [ setuptools ];
 
   disabled = pythonOlder "3.7";
 
@@ -35,7 +38,7 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     filetype
     future
     requests
@@ -53,6 +56,11 @@ buildPythonPackage rec {
       --replace "'pytest-runner'" ""
   '';
 
+  disabledTests = [
+    # AttributeError: 'FileCacheTest' object has no attribute 'assert_'
+    "test_filecache"
+  ];
+
   pythonImportsCheck = [ "twitter" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/python-u2flib-server/default.nix b/pkgs/development/python-modules/python-u2flib-server/default.nix
index d64370a3e095e..e1b44777dfeea 100644
--- a/pkgs/development/python-modules/python-u2flib-server/default.nix
+++ b/pkgs/development/python-modules/python-u2flib-server/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
 
   # propagates
   cryptography,
diff --git a/pkgs/development/python-modules/python-utils/default.nix b/pkgs/development/python-modules/python-utils/default.nix
index a5b5537868c70..8fc1bcc15bcfc 100644
--- a/pkgs/development/python-modules/python-utils/default.nix
+++ b/pkgs/development/python-modules/python-utils/default.nix
@@ -1,6 +1,5 @@
 {
   lib,
-  stdenv,
   buildPythonPackage,
   fetchFromGitHub,
   loguru,
@@ -45,8 +44,8 @@ buildPythonPackage rec {
 
   pytestFlagsArray = [ "_python_utils_tests" ];
 
-  disabledTests = lib.optionals stdenv.isDarwin [
-    # Flaky tests on darwin
+  disabledTests = [
+    # Flaky tests
     "test_timeout_generator"
   ];
 
diff --git a/pkgs/development/python-modules/python-vipaccess/default.nix b/pkgs/development/python-modules/python-vipaccess/default.nix
index 8e13a0b0b142b..b0d9e090e0ddd 100644
--- a/pkgs/development/python-modules/python-vipaccess/default.nix
+++ b/pkgs/development/python-modules/python-vipaccess/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A free software implementation of Symantec's VIP Access application and protocol";
+    description = "Free software implementation of Symantec's VIP Access application and protocol";
     mainProgram = "vipaccess";
     homepage = "https://github.com/dlenski/python-vipaccess";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/python-youtube/default.nix b/pkgs/development/python-modules/python-youtube/default.nix
index b7e50995f7e00..3b48fde0c3e94 100644
--- a/pkgs/development/python-modules/python-youtube/default.nix
+++ b/pkgs/development/python-modules/python-youtube/default.nix
@@ -45,7 +45,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A simple Python wrapper around for YouTube Data API";
+    description = "Simple Python wrapper around for YouTube Data API";
     homepage = "https://github.com/sns-sdks/python-youtube";
     changelog = "https://github.com/sns-sdks/python-youtube/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/python3-application/default.nix b/pkgs/development/python-modules/python3-application/default.nix
index b508ca98ba9f7..b761430a270e9 100644
--- a/pkgs/development/python-modules/python3-application/default.nix
+++ b/pkgs/development/python-modules/python3-application/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A collection of modules that are useful when building python applications";
+    description = "Collection of modules that are useful when building python applications";
     homepage = "https://github.com/AGProjects/python3-application";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [
diff --git a/pkgs/development/python-modules/python3-eventlib/default.nix b/pkgs/development/python-modules/python3-eventlib/default.nix
index 1a0830a3b8172..0181dfebb87ec 100644
--- a/pkgs/development/python-modules/python3-eventlib/default.nix
+++ b/pkgs/development/python-modules/python3-eventlib/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "eventlib" ];
 
   meta = with lib; {
-    description = "A networking library written in Python";
+    description = "Networking library written in Python";
     homepage = "https://github.com/AGProjects/python3-eventlib";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ chanley ];
diff --git a/pkgs/development/python-modules/pythondialog/default.nix b/pkgs/development/python-modules/pythondialog/default.nix
index 5205e34ea44c0..59d7e96a6b628 100644
--- a/pkgs/development/python-modules/pythondialog/default.nix
+++ b/pkgs/development/python-modules/pythondialog/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A Python interface to the UNIX dialog utility and mostly-compatible programs";
+    description = "Python interface to the UNIX dialog utility and mostly-compatible programs";
     homepage = "http://pythondialog.sourceforge.net/";
     license = licenses.lgpl3;
   };
diff --git a/pkgs/development/python-modules/pythran/default.nix b/pkgs/development/python-modules/pythran/default.nix
index dbf1f0f50527f..e99283bc49ae7 100644
--- a/pkgs/development/python-modules/pythran/default.nix
+++ b/pkgs/development/python-modules/pythran/default.nix
@@ -3,7 +3,6 @@
   python,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   isPy3k,
   substituteAll,
 
diff --git a/pkgs/development/python-modules/pytikz-allefeld/default.nix b/pkgs/development/python-modules/pytikz-allefeld/default.nix
index 141d91953a7bb..31cc3dabb1b42 100644
--- a/pkgs/development/python-modules/pytikz-allefeld/default.nix
+++ b/pkgs/development/python-modules/pytikz-allefeld/default.nix
@@ -51,7 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/allefeld/pytikz";
-    description = "A Python interface to TikZ";
+    description = "Python interface to TikZ";
     license = licenses.gpl3;
     maintainers = with maintainers; [ pbsds ];
     broken = stdenv.isDarwin;
diff --git a/pkgs/development/python-modules/pytimeparse2/default.nix b/pkgs/development/python-modules/pytimeparse2/default.nix
index 546f0a3201f6c..75d1ff0f53fe9 100644
--- a/pkgs/development/python-modules/pytimeparse2/default.nix
+++ b/pkgs/development/python-modules/pytimeparse2/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pytimeparse2" ];
 
   meta = with lib; {
-    description = "A pytimeparse based project with the aim of optimizing functionality and providing stable support";
+    description = "Pytimeparse based project with the aim of optimizing functionality and providing stable support";
     homepage = "https://github.com/onegreyonewhite/pytimeparse2";
     license = licenses.mit;
     maintainers = with maintainers; [ gador ];
diff --git a/pkgs/development/python-modules/pytm/default.nix b/pkgs/development/python-modules/pytm/default.nix
index 07b386e043d35..dd22bbf5b88ea 100644
--- a/pkgs/development/python-modules/pytm/default.nix
+++ b/pkgs/development/python-modules/pytm/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pytm" ];
 
   meta = with lib; {
-    description = "A Pythonic framework for threat modeling";
+    description = "Pythonic framework for threat modeling";
     homepage = "https://owasp.org/www-project-pytm/";
     license = with licenses; [
       capec
diff --git a/pkgs/development/python-modules/pytomlpp/default.nix b/pkgs/development/python-modules/pytomlpp/default.nix
index 6ea09930e0aac..98b20b6ffc460 100644
--- a/pkgs/development/python-modules/pytomlpp/default.nix
+++ b/pkgs/development/python-modules/pytomlpp/default.nix
@@ -55,7 +55,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pytomlpp" ];
 
   meta = with lib; {
-    description = "A python wrapper for tomlplusplus";
+    description = "Python wrapper for tomlplusplus";
     homepage = "https://github.com/bobfang1992/pytomlpp";
     license = licenses.mit;
     maintainers = with maintainers; [ evils ];
diff --git a/pkgs/development/python-modules/pytools/default.nix b/pkgs/development/python-modules/pytools/default.nix
index 3f7c35ff4bdc6..1de63995bf297 100644
--- a/pkgs/development/python-modules/pytools/default.nix
+++ b/pkgs/development/python-modules/pytools/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/inducer/pytools/";
-    description = "Miscellaneous Python lifesavers.";
+    description = "Miscellaneous Python lifesavers";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ artuuge ];
   };
diff --git a/pkgs/development/python-modules/pytorch-lightning/default.nix b/pkgs/development/python-modules/pytorch-lightning/default.nix
index 1a8a7226033a0..80462a073b477 100644
--- a/pkgs/development/python-modules/pytorch-lightning/default.nix
+++ b/pkgs/development/python-modules/pytorch-lightning/default.nix
@@ -2,12 +2,12 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  pythonOlder,
   fsspec,
   lightning-utilities,
   numpy,
   packaging,
   pyyaml,
+  setuptools,
   tensorboardx,
   torch,
   torchmetrics,
@@ -21,21 +21,23 @@
 
 buildPythonPackage rec {
   pname = "pytorch-lightning";
-  version = "2.2.4";
-  format = "pyproject";
+  version = "2.2.5";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Lightning-AI";
     repo = "pytorch-lightning";
     rev = "refs/tags/${version}";
-    hash = "sha256-IkoSID7nEPbKrhEMlo/UaMcF80HYldvndFA54DoHT+M=";
+    hash = "sha256-2O6Gr9BdjI/WTU0+KTfOQG31xzHyBeqxGv97f3WxUMs=";
   };
 
   preConfigure = ''
     export PACKAGE_NAME=pytorch
   '';
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     fsspec
     numpy
     packaging
@@ -61,7 +63,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Lightweight PyTorch wrapper for machine learning researchers";
-    homepage = "https://pytorch-lightning.readthedocs.io";
+    homepage = "https://github.com/Lightning-AI/pytorch-lightning";
+    changelog = "https://github.com/Lightning-AI/pytorch-lightning/releases/tag/${src.rev}";
     license = licenses.asl20;
     maintainers = with maintainers; [ tbenst ];
   };
diff --git a/pkgs/development/python-modules/pytransportnswv2/default.nix b/pkgs/development/python-modules/pytransportnswv2/default.nix
index 2f4bc7370976c..e2e8c0c81e248 100644
--- a/pkgs/development/python-modules/pytransportnswv2/default.nix
+++ b/pkgs/development/python-modules/pytransportnswv2/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "pytransportnswv2";
-  version = "0.3.0";
+  version = "0.4.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-9bpIu+Uc6eFSEGeEfpVwfrhvLekR8qOd571qMnLTpVg=";
+    hash = "sha256-LbFBzC7kGa2qz+XQZDmjhE2FhmScesx5jtLtkV0hlg8=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/pytricia/default.nix b/pkgs/development/python-modules/pytricia/default.nix
index f2543f4a72d88..f906b58fe0af4 100644
--- a/pkgs/development/python-modules/pytricia/default.nix
+++ b/pkgs/development/python-modules/pytricia/default.nix
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A library for fast IP address lookup in Python";
+    description = "Library for fast IP address lookup in Python";
     homepage = "https://github.com/jsommers/pytricia";
     license = with licenses; [ lgpl3Plus ];
     maintainers = with maintainers; [ mkg ];
diff --git a/pkgs/development/python-modules/pytrydan/default.nix b/pkgs/development/python-modules/pytrydan/default.nix
index 6ee8162b4ba06..87cac954c486a 100644
--- a/pkgs/development/python-modules/pytrydan/default.nix
+++ b/pkgs/development/python-modules/pytrydan/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "pytrydan";
-  version = "0.6.1";
+  version = "0.7.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "dgomes";
     repo = "pytrydan";
     rev = "refs/tags/v${version}";
-    hash = "sha256-5sTHfxNV4JEonGke8ZZ/pXoLA15iCuJ/iSW1XwFMltg=";
+    hash = "sha256-9TZZ4J3fIUGaeWYd5kP9eFABvL/95muD7sDevUaGprQ=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pytubefix/default.nix b/pkgs/development/python-modules/pytubefix/default.nix
new file mode 100644
index 0000000000000..185d481f754dc
--- /dev/null
+++ b/pkgs/development/python-modules/pytubefix/default.nix
@@ -0,0 +1,28 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+}:
+
+buildPythonPackage rec {
+  pname = "pytubefix";
+  version = "5.6.3";
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-qYNIQhwSZ3ZG3WMY6qCul1OEno1PWgMlfcFSxN3c6aw=";
+  };
+
+  nativeBuildInputs = [ setuptools-scm ];
+
+  pythonImportsCheck = [ "pytubefix" ];
+
+  meta = {
+    homepage = "https://github.com/JuanBindez/pytubefix";
+    description = "Pytube fork with additional features and fixes";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ roshaen ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytun/default.nix b/pkgs/development/python-modules/pytun/default.nix
index ab11320ec4369..166afc4544339 100644
--- a/pkgs/development/python-modules/pytun/default.nix
+++ b/pkgs/development/python-modules/pytun/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "pytun";
-  version = "2.3.0";
+  version = "2.4.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "montag451";
     repo = "pytun";
-    sha256 = "1cqq8aci38058fjh4a0xf21wac177fw576p2yjl2b8jd9rnsqbl5";
+    sha256 = "sha256-DZ7CoLi6LPhuc55HF9dtek+/N4A29ecnZn7bk7jweuI=";
   };
 
   # Test directory contains examples, not tests.
diff --git a/pkgs/development/python-modules/pyturbojpeg/default.nix b/pkgs/development/python-modules/pyturbojpeg/default.nix
index dea91c9c4469b..42533a50005a2 100644
--- a/pkgs/development/python-modules/pyturbojpeg/default.nix
+++ b/pkgs/development/python-modules/pyturbojpeg/default.nix
@@ -40,7 +40,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "turbojpeg" ];
 
   meta = with lib; {
-    description = "A Python wrapper of libjpeg-turbo for decoding and encoding JPEG image";
+    description = "Python wrapper of libjpeg-turbo for decoding and encoding JPEG image";
     homepage = "https://github.com/lilohuang/PyTurboJPEG";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/pyuca/default.nix b/pkgs/development/python-modules/pyuca/default.nix
index 0886412054ac5..e4a7a2a0b5f14 100644
--- a/pkgs/development/python-modules/pyuca/default.nix
+++ b/pkgs/development/python-modules/pyuca/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ unittestCheckHook ];
 
   meta = with lib; {
-    description = "A Python implementation of the Unicode Collation Algorithm";
+    description = "Python implementation of the Unicode Collation Algorithm";
     homepage = "https://github.com/jtauber/pyuca";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
diff --git a/pkgs/development/python-modules/pyvcd/default.nix b/pkgs/development/python-modules/pyvcd/default.nix
index 1a1e912c9b502..3b4c2db066360 100644
--- a/pkgs/development/python-modules/pyvcd/default.nix
+++ b/pkgs/development/python-modules/pyvcd/default.nix
@@ -32,7 +32,6 @@ buildPythonPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [
       sb0
-      emily
     ];
   };
 }
diff --git a/pkgs/development/python-modules/pyvex/default.nix b/pkgs/development/python-modules/pyvex/default.nix
index 8537a3240814a..53ea4ed0c94f0 100644
--- a/pkgs/development/python-modules/pyvex/default.nix
+++ b/pkgs/development/python-modules/pyvex/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "pyvex";
-  version = "9.2.102";
+  version = "9.2.107";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-P16jsBmFkuzMHcVTvGEK7/SzIkVpFJsUlxFeHCHivig=";
+    hash = "sha256-e8DZgHCVUcAEgo9IR7Ut/v580//oeH9l1MwGSe/RThw=";
   };
 
   build-system = [ setuptools ];
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   preBuild = ''
     export CC=${stdenv.cc.targetPrefix}cc
     substituteInPlace pyvex_c/Makefile \
-      --replace 'AR=ar' 'AR=${stdenv.cc.targetPrefix}ar'
+      --replace-fail 'AR=ar' 'AR=${stdenv.cc.targetPrefix}ar'
   '';
 
   # No tests are available on PyPI, GitHub release has tests
diff --git a/pkgs/development/python-modules/pyvips/default.nix b/pkgs/development/python-modules/pyvips/default.nix
index 023e1bb796363..7fc07f20a61a6 100644
--- a/pkgs/development/python-modules/pyvips/default.nix
+++ b/pkgs/development/python-modules/pyvips/default.nix
@@ -55,7 +55,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pyvips" ];
 
   meta = with lib; {
-    description = "A python wrapper for libvips";
+    description = "Python wrapper for libvips";
     homepage = "https://github.com/libvips/pyvips";
     changelog = "https://github.com/libvips/pyvips/blob/v${version}/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pyvis/default.nix b/pkgs/development/python-modules/pyvis/default.nix
index d7bc582a551c2..ae152c2286aca 100644
--- a/pkgs/development/python-modules/pyvis/default.nix
+++ b/pkgs/development/python-modules/pyvis/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   fetchFromGitHub,
-  fetchpatch,
   buildPythonPackage,
   setuptools,
   networkx,
diff --git a/pkgs/development/python-modules/pyvista/default.nix b/pkgs/development/python-modules/pyvista/default.nix
index 2f17321b60102..87bdf41a841c8 100644
--- a/pkgs/development/python-modules/pyvista/default.nix
+++ b/pkgs/development/python-modules/pyvista/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "pyvista";
-  version = "0.43.8";
+  version = "0.43.9";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-ZAj0aIinaVet/zK8yF1LrB63hrb2dTmTROA8uNl0yug=";
+    hash = "sha256-Trtf898ctSO3lyXC9aVy8Yrh4dCuNBvPiGKzG+D8m5o=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/pyvo/default.nix b/pkgs/development/python-modules/pyvo/default.nix
index 382877c477d8b..f5f79271998c1 100644
--- a/pkgs/development/python-modules/pyvo/default.nix
+++ b/pkgs/development/python-modules/pyvo/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchPypi,
-  fetchpatch,
   astropy,
   pillow,
   pythonOlder,
@@ -10,24 +9,28 @@
   pytest-astropy,
   requests,
   requests-mock,
+  setuptools,
   setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "pyvo";
-  version = "1.5.1";
-  format = "setuptools";
+  version = "1.5.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.8"; # according to setup.cfg
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ByCBD+e3ZrpT0Q6dnkuyO8lnwVGm85LiKmy/4NRTpjI=";
+    hash = "sha256-uKJMRNrOXGB7HZOv0CV9FfoQnx6GV3I0fqlJ7qAcj3E=";
   };
 
-  nativeBuildInputs = [ setuptools-scm ];
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     astropy
     requests
   ];
diff --git a/pkgs/development/python-modules/pywerview/default.nix b/pkgs/development/python-modules/pywerview/default.nix
index 3e92420c5423f..edd1534e6f667 100644
--- a/pkgs/development/python-modules/pywerview/default.nix
+++ b/pkgs/development/python-modules/pywerview/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "pywerview";
-  version = "0.6";
+  version = "0.6.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "the-useless-one";
     repo = "pywerview";
     rev = "refs/tags/v${version}";
-    hash = "sha256-WZE6qWq9v4A78YELMEcbgyufBRrVFRTqlhGmknpKn1Y=";
+    hash = "sha256-hsilBqk73txYIlgRtbn/l/kWORMGft7ne5BffchDLPc=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/pywlroots/default.nix b/pkgs/development/python-modules/pywlroots/default.nix
index 4d9522b98bb1e..2e2d887b4c792 100644
--- a/pkgs/development/python-modules/pywlroots/default.nix
+++ b/pkgs/development/python-modules/pywlroots/default.nix
@@ -21,14 +21,14 @@
 
 buildPythonPackage rec {
   pname = "pywlroots";
-  version = "0.16.8";
+  version = "0.17.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-jAkDZKAm75MlAMNuX+21ZV6kHb53zgIOJctJC2bXH1k=";
+    hash = "sha256-cssr4UBIwMvInM8bV4YwE6mXf9USSMMAzMcgAefEPbs=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/python-modules/pyxattr/default.nix b/pkgs/development/python-modules/pyxattr/default.nix
index 5c2489000feae..67fd9778ebb3b 100644
--- a/pkgs/development/python-modules/pyxattr/default.nix
+++ b/pkgs/development/python-modules/pyxattr/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   buildInputs = with pkgs; [ attr ];
 
   meta = with lib; {
-    description = "A Python extension module which gives access to the extended attributes for filesystem objects available in some operating systems";
+    description = "Python extension module which gives access to the extended attributes for filesystem objects available in some operating systems";
     license = licenses.lgpl21Plus;
     inherit (pkgs.attr.meta) platforms;
   };
diff --git a/pkgs/development/python-modules/pyxlsb/default.nix b/pkgs/development/python-modules/pyxlsb/default.nix
index a6d14a1aff3c0..36e33930d47d4 100644
--- a/pkgs/development/python-modules/pyxlsb/default.nix
+++ b/pkgs/development/python-modules/pyxlsb/default.nix
@@ -22,6 +22,5 @@ buildPythonPackage rec {
     description = "Excel 2007-2010 Binary Workbook (xlsb) parser";
     homepage = "https://github.com/willtrnr/pyxlsb";
     license = licenses.lgpl3Plus;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/pyxnat/default.nix b/pkgs/development/python-modules/pyxnat/default.nix
index b905ba64bead3..b6f0944cfa5ac 100644
--- a/pkgs/development/python-modules/pyxnat/default.nix
+++ b/pkgs/development/python-modules/pyxnat/default.nix
@@ -9,13 +9,14 @@
   networkx,
   pandas,
   requests,
-  six,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pyxnat";
-  version = "1.6";
-  format = "setuptools";
+  version = "1.6.2";
+  pyproject = true;
+
   disabled = pythonOlder "3.8";
 
   # PyPI dist missing test configuration files:
@@ -23,21 +24,19 @@ buildPythonPackage rec {
     owner = "pyxnat";
     repo = "pyxnat";
     rev = "refs/tags/${version}";
-    hash = "sha256-QejYisvQFN7CsDOx9wAgTHmRZcSEqgIr8twG4XucfZ4=";
+    hash = "sha256-21nTIYbIYlFWNJTxqsuijamqRunpdc7/VBawvrWadWI=";
   };
 
+  build-system = [ setuptools ];
+
   propagatedBuildInputs = [
     lxml
     requests
-    six
   ];
 
-  # future is not used, and pathlib is installed part of python38+
-  # w/o an external package
+  # pathlib is installed part of python38+ w/o an external package
   prePatch = ''
-    substituteInPlace setup.py \
-      --replace "pathlib>=1.0" "" \
-      --replace "future>=0.16" ""
+    substituteInPlace setup.py --replace-fail "pathlib>=1.0" ""
     sed -i '/--cov/d' setup.cfg
   '';
 
@@ -52,15 +51,24 @@ buildPythonPackage rec {
   '';
   pytestFlagsArray = [ "pyxnat" ];
   disabledTestPaths = [
-    # try to access network even though PYXNAT_SKIP_NETWORK_TESTS is set:
+    # require a running local XNAT instance e.g. in a docker container:
+    "pyxnat/tests/attributes_test.py"
+    "pyxnat/tests/custom_variables_test.py"
+    "pyxnat/tests/interfaces_test.py"
     "pyxnat/tests/pipelines_test.py"
+    "pyxnat/tests/provenance_test.py"
+    "pyxnat/tests/prearchive_test.py"
+    "pyxnat/tests/repr_test.py"
+    "pyxnat/tests/resources_test.py"
     "pyxnat/tests/search_test.py"
+    "pyxnat/tests/sessionmirror_test.py"
+    "pyxnat/tests/test_resource_functions.py"
     "pyxnat/tests/user_and_project_management_test.py"
   ];
   disabledTests = [
     # try to access network even though PYXNAT_SKIP_NETWORK_TESTS is set:
-    "test_ashs_volumes"
     "test_inspector_structure"
+    "test_project_manager"
   ];
 
   pythonImportsCheck = [ "pyxnat" ];
diff --git a/pkgs/development/python-modules/pyyaml/default.nix b/pkgs/development/python-modules/pyyaml/default.nix
index 8c6279b3ed09b..7e81354ceae0b 100644
--- a/pkgs/development/python-modules/pyyaml/default.nix
+++ b/pkgs/development/python-modules/pyyaml/default.nix
@@ -40,7 +40,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "yaml" ];
 
   meta = with lib; {
-    description = "The next generation YAML parser and emitter for Python";
+    description = "Next generation YAML parser and emitter for Python";
     homepage = "https://github.com/yaml/pyyaml";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/pyzbar/default.nix b/pkgs/development/python-modules/pyzbar/default.nix
index 44fb1c613a403..3a5c0b6ff36f7 100644
--- a/pkgs/development/python-modules/pyzbar/default.nix
+++ b/pkgs/development/python-modules/pyzbar/default.nix
@@ -49,7 +49,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pyzbar" ];
 
   meta = with lib; {
-    description = "Read one-dimensional barcodes and QR codes from Python using the zbar library.";
+    description = "Read one-dimensional barcodes and QR codes from Python using the zbar library";
     homepage = "https://github.com/NaturalHistoryMuseum/pyzbar";
     license = licenses.mit;
     maintainers = with maintainers; [ gador ];
diff --git a/pkgs/development/python-modules/qbittorrent-api/default.nix b/pkgs/development/python-modules/qbittorrent-api/default.nix
index e9c1c73609cf5..58043ccccd51b 100644
--- a/pkgs/development/python-modules/qbittorrent-api/default.nix
+++ b/pkgs/development/python-modules/qbittorrent-api/default.nix
@@ -11,12 +11,13 @@
 
 buildPythonPackage rec {
   pname = "qbittorrent-api";
-  version = "2024.3.60";
+  version = "2024.5.63";
   pyproject = true;
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-gnT19BKyPqzcRK1aKsC97NxktR4aqPd3LOlVo9/1gJY=";
+    pname = "qbittorrent_api";
+    inherit version;
+    hash = "sha256-zTAS8EL7lOnVIcQGttxSJgDv0YFNSy08kAxoEOn8viw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/qcodes-contrib-drivers/default.nix b/pkgs/development/python-modules/qcodes-contrib-drivers/default.nix
index 10ae5affa430c..eb9d0e74021ec 100644
--- a/pkgs/development/python-modules/qcodes-contrib-drivers/default.nix
+++ b/pkgs/development/python-modules/qcodes-contrib-drivers/default.nix
@@ -1,39 +1,44 @@
 {
   lib,
-  fetchFromGitHub,
-  pythonOlder,
   buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
   setuptools,
   versioningit,
+  cffi,
   qcodes,
   packaging,
+  pandas,
   pytestCheckHook,
   pytest-mock,
   pyvisa-sim,
+  stdenv,
 }:
 
 buildPythonPackage rec {
   pname = "qcodes-contrib-drivers";
-  version = "0.21.0";
+  version = "0.22.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.8";
-  format = "pyproject";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "QCoDeS";
     repo = "Qcodes_contrib_drivers";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-7WkG6Bq4J4PU4eWX52RaupQ8cNzE+sJ7s3PoXFRxG2w=";
+    sha256 = "sha256-/W5oC5iqYifMR3/s7aSQ2yTJNmkemkc0KVxIU0Es3zY=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     versioningit
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
+    cffi
     qcodes
     packaging
+    pandas
   ];
 
   nativeCheckInputs = [
@@ -44,17 +49,20 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "qcodes_contrib_drivers" ];
 
-  # should be fixed starting with 0.19.0, remove at next release
-  disabledTestPaths = [ "qcodes_contrib_drivers/tests/test_Keysight_M3201A.py" ];
+  disabledTests = lib.optionals (stdenv.hostPlatform.system == "x86_64-darwin") [
+    # At index 13 diff: 'sour6:volt 0.29000000000000004' != 'sour6:volt 0.29'
+    "test_stability_diagram_external"
+  ];
 
   postInstall = ''
     export HOME="$TMPDIR"
   '';
 
-  meta = with lib; {
+  meta = {
     description = "User contributed drivers for QCoDeS";
     homepage = "https://github.com/QCoDeS/Qcodes_contrib_drivers";
-    license = licenses.mit;
-    maintainers = with maintainers; [ evilmav ];
+    changelog = "https://github.com/QCoDeS/Qcodes_contrib_drivers/releases/tag/v${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ evilmav ];
   };
 }
diff --git a/pkgs/development/python-modules/qcodes/default.nix b/pkgs/development/python-modules/qcodes/default.nix
index a33da9b4bedd0..ede69b5ebeb61 100644
--- a/pkgs/development/python-modules/qcodes/default.nix
+++ b/pkgs/development/python-modules/qcodes/default.nix
@@ -1,55 +1,69 @@
 {
   lib,
-  broadbean,
   buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+
+  # build-system
+  setuptools,
+  versioningit,
+  wheel,
+
+  # dependencies
+  broadbean,
   cf-xarray,
   dask,
-  deepdiff,
-  fetchFromGitHub,
   h5netcdf,
   h5py,
-  hypothesis,
-  importlib-metadata,
   ipykernel,
   ipython,
   ipywidgets,
   jsonschema,
-  lxml,
   matplotlib,
   numpy,
-  opencensus,
-  opencensus-ext-azure,
   opentelemetry-api,
   packaging,
   pandas,
   pillow,
-  pip,
-  pytest-asyncio,
-  pytest-mock,
-  pytest-rerunfailures,
-  pytest-xdist,
-  pytestCheckHook,
-  pythonOlder,
+  pyarrow,
   pyvisa,
-  pyvisa-sim,
-  rsa,
   ruamel-yaml,
-  setuptools,
-  sphinx,
   tabulate,
   tqdm,
   typing-extensions,
   uncertainties,
-  versioningit,
   websockets,
-  wheel,
   wrapt,
   xarray,
+  importlib-metadata,
+
+  # optional-dependencies
+  jinja2,
+  nbsphinx,
+  pyvisa-sim,
+  scipy,
+  sphinx,
+  sphinx-issues,
+  sphinx-rtd-theme,
+  towncrier,
+  opencensus,
+  opencensus-ext-azure,
+
+  # checks
+  deepdiff,
+  hypothesis,
+  lxml,
+  pip,
+  pytest-asyncio,
+  pytest-mock,
+  pytest-rerunfailures,
+  pytest-xdist,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "qcodes";
-  version = "0.44.1";
+  version = "0.45.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -58,16 +72,16 @@ buildPythonPackage rec {
     owner = "microsoft";
     repo = "Qcodes";
     rev = "refs/tags/v${version}";
-    hash = "sha256-AggAVq/yfJUZRwoQb29QoIbVIAdV3solKCjivqucLZk=";
+    hash = "sha256-H91CpvxGQW0X+m/jlqXMc1RdI9w62lt5jgYOxZ2iPQg=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     versioningit
     wheel
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     broadbean
     cf-xarray
     dask
@@ -79,14 +93,12 @@ buildPythonPackage rec {
     jsonschema
     matplotlib
     numpy
-    opencensus
-    opencensus-ext-azure
     opentelemetry-api
     packaging
     pandas
     pillow
+    pyarrow
     pyvisa
-    rsa
     ruamel-yaml
     tabulate
     tqdm
@@ -97,6 +109,34 @@ buildPythonPackage rec {
     xarray
   ] ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
 
+  optional-dependencies = {
+    docs = [
+      # autodocsumm
+      jinja2
+      nbsphinx
+      pyvisa-sim
+      # qcodes-loop
+      scipy
+      sphinx
+      # sphinx-favicon
+      sphinx-issues
+      # sphinx-jsonschema
+      sphinx-rtd-theme
+      # sphinxcontrib-towncrier
+      towncrier
+    ];
+    loop = [
+      # qcodes-loop
+    ];
+    opencensus = [
+      opencensus
+      opencensus-ext-azure
+    ];
+    zurichinstruments = [
+      # zhinst-qcodes
+    ];
+  };
+
   nativeCheckInputs = [
     deepdiff
     hypothesis
@@ -160,12 +200,12 @@ buildPythonPackage rec {
     export HOME="$TMPDIR"
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Python-based data acquisition framework";
     changelog = "https://github.com/QCoDeS/Qcodes/releases/tag/v${version}";
     downloadPage = "https://github.com/QCoDeS/Qcodes";
     homepage = "https://qcodes.github.io/Qcodes/";
-    license = licenses.mit;
-    maintainers = with maintainers; [ evilmav ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ evilmav ];
   };
 }
diff --git a/pkgs/development/python-modules/qcs-api-client/default.nix b/pkgs/development/python-modules/qcs-api-client/default.nix
index c884dfe01e628..0847a10ce625c 100644
--- a/pkgs/development/python-modules/qcs-api-client/default.nix
+++ b/pkgs/development/python-modules/qcs-api-client/default.nix
@@ -24,16 +24,16 @@
 
 buildPythonPackage rec {
   pname = "qcs-api-client";
-  version = "0.25.0";
+  version = "0.25.1";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "rigetti";
     repo = "qcs-api-client-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-dKjiicrPLRlaIwHwSqpY5dBMTzrZD4xfw3h54IN3rh0=";
+    hash = "sha256-GtHAV4BvBdexjJxlT1jcNklSogYor2aWoQI2QNs/dOQ=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/qcs-sdk-python/Cargo.lock b/pkgs/development/python-modules/qcs-sdk-python/Cargo.lock
index 0c1265d5ac40c..fc65e87b236e6 100644
--- a/pkgs/development/python-modules/qcs-sdk-python/Cargo.lock
+++ b/pkgs/development/python-modules/qcs-sdk-python/Cargo.lock
@@ -912,7 +912,7 @@ dependencies = [
  "futures-sink",
  "futures-util",
  "http",
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
  "slab",
  "tokio",
  "tokio-util",
@@ -1180,9 +1180,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.2.5"
+version = "2.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
 dependencies = [
  "equivalent",
  "hashbrown 0.14.3",
@@ -1901,7 +1901,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
 dependencies = [
  "fixedbitset",
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
 ]
 
 [[package]]
@@ -2124,7 +2124,7 @@ dependencies = [
 
 [[package]]
 name = "qcs"
-version = "0.21.4"
+version = "0.21.7"
 dependencies = [
  "assert2",
  "async-trait",
@@ -2136,7 +2136,7 @@ dependencies = [
  "float-cmp",
  "futures",
  "hex",
- "indexmap 1.9.3",
+ "indexmap 2.2.6",
  "insta",
  "itertools 0.11.0",
  "lazy_static",
@@ -2260,7 +2260,7 @@ dependencies = [
 
 [[package]]
 name = "qcs-sdk-python"
-version = "0.17.4"
+version = "0.17.7"
 dependencies = [
  "async-trait",
  "numpy",
@@ -2290,11 +2290,11 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
 
 [[package]]
 name = "quil-rs"
-version = "0.23.0"
-source = "git+https://github.com/rigetti/quil-rs?tag=quil-py/v0.7.0#3bb618124c2165b7329c58c0f217d8ee9d816e67"
+version = "0.25.1"
+source = "git+https://github.com/rigetti/quil-rs?tag=quil-py/v0.9.1#4179fb03feff6b83edfb7a0448b0b3967ed28212"
 dependencies = [
  "approx",
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
  "itertools 0.12.1",
  "lexical",
  "ndarray",
@@ -3381,7 +3381,7 @@ version = "0.19.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
  "serde",
  "serde_spanned",
  "toml_datetime",
@@ -3394,7 +3394,7 @@ version = "0.22.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c12219811e0c1ba077867254e5ad62ee2c9c190b0d957110750ac0cda1ae96cd"
 dependencies = [
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
  "serde",
  "serde_spanned",
  "toml_datetime",
diff --git a/pkgs/development/python-modules/qcs-sdk-python/default.nix b/pkgs/development/python-modules/qcs-sdk-python/default.nix
index d63eb97b9faa5..b47603e24a55e 100644
--- a/pkgs/development/python-modules/qcs-sdk-python/default.nix
+++ b/pkgs/development/python-modules/qcs-sdk-python/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "qcs-sdk-python";
-  version = "0.17.4";
+  version = "0.17.7";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,13 +24,13 @@ buildPythonPackage rec {
     owner = "rigetti";
     repo = "qcs-sdk-rust";
     rev = "python/v${version}";
-    hash = "sha256-Z/NK+xnugFieJqAbvGaVvxUaz9RC1vpWb4ydZTVbZeU=";
+    hash = "sha256-6Rh5gQH+ObpWGR9rYJfkXnGfG1GjKLn+ckiR7RhKzoE=";
   };
 
   cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "quil-rs-0.23.0" = "sha256-l9wj1j7PJ5L497dPlkEpJ4ctAfjUIada5Vbn2h5ioVE=";
+      "quil-rs-0.25.1" = "sha256-zC4DEjCN6y9XeZlzmXHSTbVTpFQ4Srozix89IHDhHXc=";
     };
   };
 
diff --git a/pkgs/development/python-modules/qdarkstyle/default.nix b/pkgs/development/python-modules/qdarkstyle/default.nix
index e492d99c70ff2..80dca57b1d6a1 100644
--- a/pkgs/development/python-modules/qdarkstyle/default.nix
+++ b/pkgs/development/python-modules/qdarkstyle/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A dark stylesheet for Python and Qt applications";
+    description = "Dark stylesheet for Python and Qt applications";
     homepage = "https://github.com/ColinDuquesnoy/QDarkStyleSheet";
     license = licenses.mit;
     maintainers = with maintainers; [ nyanloutre ];
diff --git a/pkgs/development/python-modules/qdldl/default.nix b/pkgs/development/python-modules/qdldl/default.nix
index 7b8d4b1fdb385..86054ca65b9d9 100644
--- a/pkgs/development/python-modules/qdldl/default.nix
+++ b/pkgs/development/python-modules/qdldl/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A free LDL factorization routine";
+    description = "Free LDL factorization routine";
     homepage = "https://github.com/oxfordcontrol/qdldl";
     downloadPage = "https://github.com/oxfordcontrol/qdldl-python";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/qds-sdk/default.nix b/pkgs/development/python-modules/qds-sdk/default.nix
index 78e2c12c66a2e..34876b7aaa856 100644
--- a/pkgs/development/python-modules/qds-sdk/default.nix
+++ b/pkgs/development/python-modules/qds-sdk/default.nix
@@ -42,7 +42,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "qds_sdk" ];
 
   meta = with lib; {
-    description = "A Python module that provides the tools you need to authenticate with, and use the Qubole Data Service API";
+    description = "Python module that provides the tools you need to authenticate with, and use the Qubole Data Service API";
     homepage = "https://github.com/qubole/qds-sdk-py";
     license = licenses.asl20;
     maintainers = with maintainers; [ shahrukh330 ];
diff --git a/pkgs/development/python-modules/qgrid/default.nix b/pkgs/development/python-modules/qgrid/default.nix
index 5fa79708ffa73..e409345bcd7ad 100644
--- a/pkgs/development/python-modules/qgrid/default.nix
+++ b/pkgs/development/python-modules/qgrid/default.nix
@@ -4,6 +4,7 @@
   fetchpatch,
   fetchPypi,
   ipywidgets,
+  looseversion,
   notebook,
   pandas,
   pytestCheckHook,
@@ -12,7 +13,7 @@
 buildPythonPackage rec {
   pname = "qgrid";
   version = "1.3.1";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
@@ -28,8 +29,14 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    substituteInPlace qgrid/grid.py \
+      --replace-fail "from distutils.version import LooseVersion" "from looseversion import LooseVersion"
+  '';
+
+  dependencies = [
     ipywidgets
+    looseversion
     notebook
     pandas
   ];
@@ -48,10 +55,10 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "qgrid" ];
 
-  meta = with lib; {
-    description = "An interactive grid for sorting, filtering, and editing DataFrames in Jupyter notebooks";
+  meta = {
+    description = "Interactive grid for sorting, filtering, and editing DataFrames in Jupyter notebooks";
     homepage = "https://github.com/quantopian/qgrid";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ GaetanLepage ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
   };
 }
diff --git a/pkgs/development/python-modules/qiling/default.nix b/pkgs/development/python-modules/qiling/default.nix
index 584cca959d6e2..34de987c8e4ef 100644
--- a/pkgs/development/python-modules/qiling/default.nix
+++ b/pkgs/development/python-modules/qiling/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   capstone,
-  fetchFromGitHub,
   fetchPypi,
   gevent,
   keystone-engine,
diff --git a/pkgs/development/python-modules/qimage2ndarray/default.nix b/pkgs/development/python-modules/qimage2ndarray/default.nix
index 346f7084e497a..23e66a6c374a2 100644
--- a/pkgs/development/python-modules/qimage2ndarray/default.nix
+++ b/pkgs/development/python-modules/qimage2ndarray/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/hmeine/qimage2ndarray";
-    description = "A small python extension for quickly converting between QImages and numpy.ndarrays (in both directions)";
+    description = "Small python extension for quickly converting between QImages and numpy.ndarrays (in both directions)";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ tbenst ];
   };
diff --git a/pkgs/development/python-modules/qiskit-aer/default.nix b/pkgs/development/python-modules/qiskit-aer/default.nix
index 7106f74578a36..18bd47bf5bf70 100644
--- a/pkgs/development/python-modules/qiskit-aer/default.nix
+++ b/pkgs/development/python-modules/qiskit-aer/default.nix
@@ -1,10 +1,8 @@
 {
-  stdenv,
   lib,
   pythonOlder,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   # C Inputs
   blas,
   catch2,
@@ -26,7 +24,6 @@
   fixtures,
   pytest-timeout,
   qiskit-terra,
-  setuptools,
   testtools,
 }:
 
diff --git a/pkgs/development/python-modules/qiskit-terra/default.nix b/pkgs/development/python-modules/qiskit-terra/default.nix
index f30549131f843..44ae18a933d08 100644
--- a/pkgs/development/python-modules/qiskit-terra/default.nix
+++ b/pkgs/development/python-modules/qiskit-terra/default.nix
@@ -214,7 +214,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "Provides the foundations for Qiskit.";
+    description = "Provides the foundations for Qiskit";
     longDescription = ''
       Allows the user to write quantum circuits easily, and takes care of the constraints of real hardware.
     '';
diff --git a/pkgs/development/python-modules/qmk-dotty-dict/default.nix b/pkgs/development/python-modules/qmk-dotty-dict/default.nix
index abceedd5a8f52..3e19b7bce5f12 100644
--- a/pkgs/development/python-modules/qmk-dotty-dict/default.nix
+++ b/pkgs/development/python-modules/qmk-dotty-dict/default.nix
@@ -30,6 +30,6 @@ buildPythonPackage rec {
       some non-UTF8 locale settings.
     '';
     license = licenses.mit;
-    maintainers = with maintainers; [ babariviere ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/qpageview/default.nix b/pkgs/development/python-modules/qpageview/default.nix
index 9f5148e0996ab..68e7c6a309d20 100644
--- a/pkgs/development/python-modules/qpageview/default.nix
+++ b/pkgs/development/python-modules/qpageview/default.nix
@@ -29,7 +29,7 @@ python3Packages.buildPythonPackage rec {
   pythonImportsCheck = [ "qpageview" ];
 
   meta = with lib; {
-    description = "A page-based viewer widget for Qt5/PyQt5";
+    description = "Page-based viewer widget for Qt5/PyQt5";
     homepage = "https://github.com/frescobaldi/qpageview";
     changelog = "https://github.com/frescobaldi/qpageview/blob/${src.rev}/ChangeLog";
     license = licenses.gpl3Only;
diff --git a/pkgs/development/python-modules/qrcode-terminal/default.nix b/pkgs/development/python-modules/qrcode-terminal/default.nix
new file mode 100644
index 0000000000000..2ec58510c7070
--- /dev/null
+++ b/pkgs/development/python-modules/qrcode-terminal/default.nix
@@ -0,0 +1,38 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  qrcode,
+  pillow,
+}:
+buildPythonPackage rec {
+  pname = "qrcode-terminal";
+  version = "0.8";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-Hitp5mK5NG6Y3ZWYMDPp1Dz/BkPYr9oSYF9RVCjmZsA=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [
+    qrcode
+    pillow
+  ];
+
+  # have no test
+  doCheck = false;
+
+  pythonImportsCheck = [ "qrcode_terminal" ];
+
+  meta = {
+    description = "Display QRCode in Terminal";
+    homepage = "https://github.com/alishtory/qrcode-terminal";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ moraxyc ];
+    mainProgram = "qrcode-terminal-py";
+  };
+}
diff --git a/pkgs/development/python-modules/qscintilla-qt5/default.nix b/pkgs/development/python-modules/qscintilla-qt5/default.nix
index c55289e806546..bab2320b0d6ff 100644
--- a/pkgs/development/python-modules/qscintilla-qt5/default.nix
+++ b/pkgs/development/python-modules/qscintilla-qt5/default.nix
@@ -78,7 +78,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "PyQt5.Qsci" ];
 
   meta = with lib; {
-    description = "A Python binding to QScintilla, Qt based text editing control";
+    description = "Python binding to QScintilla, Qt based text editing control";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ lsix ];
     homepage = "https://www.riverbankcomputing.com/software/qscintilla/";
diff --git a/pkgs/development/python-modules/qtile-extras/default.nix b/pkgs/development/python-modules/qtile-extras/default.nix
index 84cc437e48ca4..28da64efdc1d4 100644
--- a/pkgs/development/python-modules/qtile-extras/default.nix
+++ b/pkgs/development/python-modules/qtile-extras/default.nix
@@ -11,6 +11,7 @@
   pytest-asyncio,
   pytest-lazy-fixture,
   pytestCheckHook,
+  python-dateutil,
   qtile,
   requests,
   setuptools-scm,
@@ -19,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "qtile-extras";
-  version = "0.25.0";
+  version = "0.26.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "elParaguayo";
     repo = "qtile-extras";
     rev = "refs/tags/v${version}";
-    hash = "sha256-OYzSKOVg4D5gKxaEreclYq3D16dl8ddLipSdifokDNY=";
+    hash = "sha256-ywqZggn1k7zezk5CS1y6EWZfLoIWMHmGO8mvqxBaB9g=";
   };
 
   build-system = [ setuptools-scm ];
@@ -41,6 +42,7 @@ buildPythonPackage rec {
     pytest-asyncio
     pytest-lazy-fixture
     pytestCheckHook
+    python-dateutil
     qtile
     requests
     xorgserver
diff --git a/pkgs/development/python-modules/qtile/default.nix b/pkgs/development/python-modules/qtile/default.nix
index 0935969e4db4e..e65aad91904a7 100644
--- a/pkgs/development/python-modules/qtile/default.nix
+++ b/pkgs/development/python-modules/qtile/default.nix
@@ -4,9 +4,9 @@
   fetchFromGitHub,
   cairocffi,
   dbus-next,
-  dbus-python,
   glib,
   iwlib,
+  libcst,
   libdrm,
   libinput,
   libxkbcommon,
@@ -17,7 +17,7 @@
   psutil,
   pulsectl-asyncio,
   pygobject3,
-  python-dateutil,
+  pytz,
   pywayland,
   pywlroots,
   pyxdg,
@@ -30,18 +30,19 @@
   xcffib,
   xkbcommon,
   nixosTests,
+  extraPackages ? [ ],
 }:
 
 buildPythonPackage rec {
   pname = "qtile";
-  version = "0.25.0";
+  version = "0.26.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "qtile";
     repo = "qtile";
     rev = "refs/tags/v${version}";
-    hash = "sha256-j5hpXfUSDUT9nBr6CafIzqdTYQxSWok+ZlQA7bGdVvk=";
+    hash = "sha256-htgrfGBGRlJSm88mmwW92ikXR/M1lr0OTom16TIvdpo=";
   };
 
   patches = [
@@ -50,14 +51,14 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace libqtile/pangocffi.py \
-      --replace libgobject-2.0.so.0 ${glib.out}/lib/libgobject-2.0.so.0 \
-      --replace libpangocairo-1.0.so.0 ${pango.out}/lib/libpangocairo-1.0.so.0 \
-      --replace libpango-1.0.so.0 ${pango.out}/lib/libpango-1.0.so.0
+      --replace-fail libgobject-2.0.so.0 ${glib.out}/lib/libgobject-2.0.so.0 \
+      --replace-fail libpangocairo-1.0.so.0 ${pango.out}/lib/libpangocairo-1.0.so.0 \
+      --replace-fail libpango-1.0.so.0 ${pango.out}/lib/libpango-1.0.so.0
     substituteInPlace libqtile/backend/x11/xcursors.py \
-      --replace libxcb-cursor.so.0 ${xcbutilcursor.out}/lib/libxcb-cursor.so.0
+      --replace-fail libxcb-cursor.so.0 ${xcbutilcursor.out}/lib/libxcb-cursor.so.0
     substituteInPlace libqtile/backend/wayland/cffi/build.py \
-        --replace /usr/include/pixman-1 ${lib.getDev pixman}/include \
-        --replace /usr/include/libdrm ${lib.getDev libdrm}/include/libdrm
+        --replace-fail /usr/include/pixman-1 ${lib.getDev pixman}/include \
+        --replace-fail /usr/include/libdrm ${lib.getDev libdrm}/include/libdrm
   '';
 
   build-system = [
@@ -66,16 +67,16 @@ buildPythonPackage rec {
     pkg-config
   ];
 
-  dependencies = [
+  dependencies = extraPackages ++ [
     (cairocffi.override { withXcffib = true; })
     dbus-next
-    dbus-python
     iwlib
+    libcst
     mpd2
     psutil
     pulsectl-asyncio
     pygobject3
-    python-dateutil
+    pytz
     pywayland
     pywlroots
     pyxdg
@@ -97,10 +98,15 @@ buildPythonPackage rec {
     providedSessions = [ "qtile" ];
   };
 
+  postInstall = ''
+    install resources/qtile.desktop -Dt $out/share/xsessions
+    install resources/qtile-wayland.desktop -Dt $out/share/wayland-sessions
+  '';
+
   meta = with lib; {
     homepage = "http://www.qtile.org/";
     license = licenses.mit;
-    description = "A small, flexible, scriptable tiling window manager written in Python";
+    description = "Small, flexible, scriptable tiling window manager written in Python";
     mainProgram = "qtile";
     platforms = platforms.linux;
     maintainers = with maintainers; [
diff --git a/pkgs/development/python-modules/qtile/wrapper.nix b/pkgs/development/python-modules/qtile/wrapper.nix
deleted file mode 100644
index b4f6e4c2e23b2..0000000000000
--- a/pkgs/development/python-modules/qtile/wrapper.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ python3 }:
-
-(python3.withPackages (_: [ python3.pkgs.qtile ])).overrideAttrs (_: {
-  # restore some qtile attrs, beautify name
-  inherit (python3.pkgs.qtile) pname version meta;
-  name = with python3.pkgs.qtile; "${pname}-${version}";
-  passthru.unwrapped = python3.pkgs.qtile;
-})
diff --git a/pkgs/development/python-modules/quantile-forest/default.nix b/pkgs/development/python-modules/quantile-forest/default.nix
index 0b6d5df933b17..e38a6175c09d5 100644
--- a/pkgs/development/python-modules/quantile-forest/default.nix
+++ b/pkgs/development/python-modules/quantile-forest/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "quantile-forest";
-  version = "1.3.5";
+  version = "1.3.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "zillow";
     repo = "quantile-forest";
     rev = "refs/tags/v${version}";
-    hash = "sha256-0zlj9nks5KsgsLSflRW+4uiYlYVQsF0HMkZ3zG3if2E=";
+    hash = "sha256-cYi4idA6gcUd/aVMlIwlCB/jdKpxZtc6xQEhxNSY08Y=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/quart/default.nix b/pkgs/development/python-modules/quart/default.nix
index bf4e2708721ba..0388b58a34c99 100644
--- a/pkgs/development/python-modules/quart/default.nix
+++ b/pkgs/development/python-modules/quart/default.nix
@@ -79,7 +79,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "An async Python micro framework for building web applications";
+    description = "Async Python micro framework for building web applications";
     mainProgram = "quart";
     homepage = "https://github.com/pallets/quart/";
     changelog = "https://github.com/pallets/quart/blob/${src.rev}/CHANGES.rst";
diff --git a/pkgs/development/python-modules/quaternion/default.nix b/pkgs/development/python-modules/quaternion/default.nix
index ac3a9a2959c7d..fac428090a518 100644
--- a/pkgs/development/python-modules/quaternion/default.nix
+++ b/pkgs/development/python-modules/quaternion/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A package add built-in support for quaternions to numpy";
+    description = "Package add built-in support for quaternions to numpy";
     homepage = "https://github.com/moble/quaternion";
     license = licenses.mit;
     maintainers = [ maintainers.ocfox ];
diff --git a/pkgs/development/python-modules/queuelib/default.nix b/pkgs/development/python-modules/queuelib/default.nix
index 3f7c802cde560..9274a8157d977 100644
--- a/pkgs/development/python-modules/queuelib/default.nix
+++ b/pkgs/development/python-modules/queuelib/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   buildInputs = [ pytest ];
 
   meta = with lib; {
-    description = "A collection of persistent (disk-based) queues for Python";
+    description = "Collection of persistent (disk-based) queues for Python";
     homepage = "https://github.com/scrapy/queuelib";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/quil/default.nix b/pkgs/development/python-modules/quil/default.nix
index 1d77ff861e48a..c1530c320617c 100644
--- a/pkgs/development/python-modules/quil/default.nix
+++ b/pkgs/development/python-modules/quil/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "quil";
-  version = "0.7.1";
+  version = "0.9.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,21 +22,17 @@ buildPythonPackage rec {
     owner = "rigetti";
     repo = "quil-rs";
     rev = "quil-py/v${version}";
-    hash = "sha256-GFePbCJnVbzL4cpQ7fy1tk2l7NhAyTVW63lVYTv0/Oo=";
+    hash = "sha256-c9nFF74Mr6S2b7NthRVUnarwxFZ9s5RUaoxYruE6QvI=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     name = "${pname}-${version}";
     inherit src;
-    hash = "sha256-catUGCFbkvov1z52f6eyxogflu61VcjIItgEVEWzkpY=";
+    hash = "sha256-FNkXdBLfKnrD9aUe25uJHi+TtApgFSCryYCY1r8ebho=";
   };
 
   buildAndTestSubdir = "quil-py";
 
-  preConfigure = ''
-    cargo metadata --offline
-  '';
-
   build-system = [
     rustPlatform.cargoSetupHook
     rustPlatform.maturinBuildHook
diff --git a/pkgs/development/python-modules/quixote/default.nix b/pkgs/development/python-modules/quixote/default.nix
index 557a59390fb93..cfbabdb57e449 100644
--- a/pkgs/development/python-modules/quixote/default.nix
+++ b/pkgs/development/python-modules/quixote/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A small and flexible Python Web application framework";
+    description = "Small and flexible Python Web application framework";
     homepage = "https://pypi.org/project/Quixote/";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/pkgs/development/python-modules/qutip/default.nix b/pkgs/development/python-modules/qutip/default.nix
index 6884ca0fe925c..8cc5ccba6c306 100644
--- a/pkgs/development/python-modules/qutip/default.nix
+++ b/pkgs/development/python-modules/qutip/default.nix
@@ -1,6 +1,5 @@
 {
   lib,
-  stdenv,
   buildPythonPackage,
   cvxopt,
   cvxpy,
@@ -9,18 +8,20 @@
   ipython,
   matplotlib,
   numpy,
+  oldest-supported-numpy,
   packaging,
   pytest-rerunfailures,
   pytestCheckHook,
   python,
   pythonOlder,
   scipy,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "qutip";
-  version = "4.7.5";
-  format = "setuptools";
+  version = "5.0.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -28,10 +29,14 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-4nXZPZFu9L+Okha3qvPil1KvLGO1EbrzotQjqQ8r9l8=";
+    hash = "sha256-lMPzgmUaoEQB5TzmqEJFiFTuS3AGpyMMjPHlPUKTLvk=";
   };
 
-  nativeBuildInputs = [ cython_0 ];
+  nativeBuildInputs = [
+    cython_0
+    setuptools
+    oldest-supported-numpy
+  ];
 
   propagatedBuildInputs = [
     numpy
@@ -44,9 +49,6 @@ buildPythonPackage rec {
     pytest-rerunfailures
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  # Disabling OpenMP support on Darwin.
-  setupPyGlobalFlags = lib.optionals (!stdenv.isDarwin) [ "--with-openmp" ];
-
   # QuTiP tries to access the home directory to create an rc file for us.
   # We need to go to another directory to run the tests from there.
   # This is due to the Cython-compiled modules not being in the correct location
diff --git a/pkgs/development/python-modules/radian/default.nix b/pkgs/development/python-modules/radian/default.nix
index 22aad3efdc690..fd185ac7be4bd 100644
--- a/pkgs/development/python-modules/radian/default.nix
+++ b/pkgs/development/python-modules/radian/default.nix
@@ -71,7 +71,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "radian" ];
 
   meta = with lib; {
-    description = "A 21 century R console";
+    description = "21 century R console";
     mainProgram = "radian";
     homepage = "https://github.com/randy3k/radian";
     changelog = "https://github.com/randy3k/radian/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/ramlfications/default.nix b/pkgs/development/python-modules/ramlfications/default.nix
index 43aac163dc2fb..108ad1470c706 100644
--- a/pkgs/development/python-modules/ramlfications/default.nix
+++ b/pkgs/development/python-modules/ramlfications/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A Python RAML parser.";
+    description = "Python RAML parser";
     mainProgram = "ramlfications";
     homepage = "https://ramlfications.readthedocs.org";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/range-typed-integers/default.nix b/pkgs/development/python-modules/range-typed-integers/default.nix
index 68367e974ea52..912bee04ffc74 100644
--- a/pkgs/development/python-modules/range-typed-integers/default.nix
+++ b/pkgs/development/python-modules/range-typed-integers/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   checkInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A package provides integer types that have a specific range of valid values";
+    description = "Package provides integer types that have a specific range of valid values";
     homepage = "https://github.com/theCapypara/range-typed-integers";
     license = [ licenses.mit ];
     maintainers = with maintainers; [ marius851000 ];
diff --git a/pkgs/development/python-modules/rank-bm25/default.nix b/pkgs/development/python-modules/rank-bm25/default.nix
index 1d6d5e3bcd078..7318aa2a79346 100644
--- a/pkgs/development/python-modules/rank-bm25/default.nix
+++ b/pkgs/development/python-modules/rank-bm25/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage {
   pythonImportsCheck = [ "rank_bm25" ];
 
   meta = with lib; {
-    description = "A Collection of BM25 Algorithms in Python";
+    description = "Collection of BM25 Algorithms in Python";
     homepage = "https://github.com/dorianbrown/rank_bm25";
     changelog = "https://github.com/dorianbrown/rank_bm25/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/rapidfuzz/default.nix b/pkgs/development/python-modules/rapidfuzz/default.nix
index 747611f2b17b0..325c476000044 100644
--- a/pkgs/development/python-modules/rapidfuzz/default.nix
+++ b/pkgs/development/python-modules/rapidfuzz/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "rapidfuzz";
-  version = "3.9.1";
+  version = "3.9.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     owner = "maxbachmann";
     repo = "RapidFuzz";
     rev = "refs/tags/v${version}";
-    hash = "sha256-HwTVaPFVktdt1/MfNYajRqVr9uSg6oc++yVvY0WC9AQ=";
+    hash = "sha256-G1WveLVoeWkaKrHRFgCt8HVBnBYNdCb7/JVCm0L4dv8=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/rapidgzip/default.nix b/pkgs/development/python-modules/rapidgzip/default.nix
index 46b3ae0730b32..77d710a944ea8 100644
--- a/pkgs/development/python-modules/rapidgzip/default.nix
+++ b/pkgs/development/python-modules/rapidgzip/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "rapidgzip";
-  version = "0.13.3";
+  version = "0.14.2";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-3PvBRYswEtnAZerRD18laW6pQ8i6cgRgGZy+bgSOaI0=";
+    hash = "sha256-84NiaaOBw6kqBwVfVTcnaebRaQH5bg9JvxohwQkYZAk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/rapidocr-onnxruntime/default.nix b/pkgs/development/python-modules/rapidocr-onnxruntime/default.nix
new file mode 100644
index 0000000000000..48209fc9efca3
--- /dev/null
+++ b/pkgs/development/python-modules/rapidocr-onnxruntime/default.nix
@@ -0,0 +1,129 @@
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  fetchzip,
+  substitute,
+  pythonRelaxDepsHook,
+  pytestCheckHook,
+
+  setuptools,
+  pyclipper,
+  opencv4,
+  numpy,
+  six,
+  shapely,
+  pyyaml,
+  pillow,
+  onnxruntime,
+}:
+let
+  version = "1.3.22";
+
+  src = fetchFromGitHub {
+    owner = "RapidAI";
+    repo = "RapidOCR";
+    rev = "v${version}";
+    hash = "sha256-8h4DFhnI9imr+bYQZdlrl8UKUdpwnGK+SGxLXSMmcag=";
+  };
+
+  models = fetchzip {
+    url = "https://github.com/RapidAI/RapidOCR/releases/download/v1.1.0/required_for_whl_v1.3.0.zip";
+    hash = "sha256-j/0nzyvu/HfNTt5EZ+2Phe5dkyPOdQw/OZTz0yS63aA=";
+    stripRoot = false;
+  } + "/required_for_whl_v1.3.0/resources/models";
+in
+buildPythonPackage {
+  pname = "rapidocr-onnxruntime";
+  inherit version src;
+  pyproject = true;
+
+  sourceRoot = "${src.name}/python";
+
+  # HACK:
+  # Upstream uses a very unconventional structure to organize the packages, and we have to coax the
+  # existing infrastructure to work with it.
+  # See https://github.com/RapidAI/RapidOCR/blob/02829ef986bc2a5c4f33e9c45c9267bcf2d07a1d/.github/workflows/gen_whl_to_pypi_rapidocr_ort.yml#L80-L92
+  # for the "intended" way of building this package.
+
+  # The setup.py supplied by upstream tries to determine the current version by
+  # fetching the latest version of the package from PyPI, and then bumping the version number.
+  # This is not allowed in the Nix build environment as we do not have internet access,
+  # hence we patch that out and get the version from the build environment directly.
+  patches = [
+    (substitute {
+      src = ./setup-py-override-version-checking.patch;
+      substitutions = [
+        "--subst-var-by"
+        "version"
+        version
+      ];
+    })
+  ];
+
+  postPatch = ''
+    mv setup_onnxruntime.py setup.py
+    mkdir -p rapidocr_onnxruntime/models
+
+    ln -s ${models}/* rapidocr_onnxruntime/models
+
+    # Magic patch from upstream - what does this even do??
+    echo "from .rapidocr_onnxruntime.main import RapidOCR, VisRes" > __init__.py
+  '';
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
+
+  # Upstream expects the source files to be under rapidocr_onnxruntime/rapidocr_onnxruntime
+  # instead of rapidocr_onnxruntime for the wheel to build correctly.
+  preBuild = ''
+    mkdir rapidocr_onnxruntime_t
+    mv rapidocr_onnxruntime rapidocr_onnxruntime_t
+    mv rapidocr_onnxruntime_t rapidocr_onnxruntime
+  '';
+
+  # Revert the above hack
+  postBuild = ''
+    mv rapidocr_onnxruntime rapidocr_onnxruntime_t
+    mv rapidocr_onnxruntime_t/* .
+  '';
+
+  build-system = [ setuptools ];
+
+  dependencies = [
+    pyclipper
+    opencv4
+    numpy
+    six
+    shapely
+    pyyaml
+    pillow
+    onnxruntime
+  ];
+
+  # Remove because we have adopted the `opencv4` as an attribute name.
+  pythonRemoveDeps = [ "opencv-python" ];
+
+  pythonImportsCheck = [ "rapidocr_onnxruntime" ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  # These are tests for different backends.
+  disabledTestPaths = [
+    "tests/test_vino.py"
+    "tests/test_paddle.py"
+  ];
+
+  meta = {
+    # This seems to be related to https://github.com/microsoft/onnxruntime/issues/10038
+    # Also some related issue: https://github.com/NixOS/nixpkgs/pull/319053#issuecomment-2167713362
+    broken = (stdenv.isLinux && stdenv.isAarch64);
+    changelog = "https://github.com/RapidAI/RapidOCR/releases/tag/v${version}";
+    description = "Cross platform OCR Library based on OnnxRuntime";
+    homepage = "https://github.com/RapidAI/RapidOCR";
+    license = with lib.licenses; [ asl20 ];
+    maintainers = with lib.maintainers; [ pluiedev ];
+    mainProgram = "rapidocr_onnxruntime";
+  };
+}
diff --git a/pkgs/development/python-modules/rapidocr-onnxruntime/setup-py-override-version-checking.patch b/pkgs/development/python-modules/rapidocr-onnxruntime/setup-py-override-version-checking.patch
new file mode 100644
index 0000000000000..227618c2a60ca
--- /dev/null
+++ b/pkgs/development/python-modules/rapidocr-onnxruntime/setup-py-override-version-checking.patch
@@ -0,0 +1,30 @@
+diff --git a/setup_onnxruntime.py b/setup_onnxruntime.py
+index cd698d1..c6e8a33 100644
+--- a/setup_onnxruntime.py
++++ b/setup_onnxruntime.py
+@@ -6,7 +6,6 @@ from pathlib import Path
+ from typing import List, Union
+ 
+ import setuptools
+-from get_pypi_latest_version import GetPyPiLatestVersion
+ 
+ 
+ def read_txt(txt_path: Union[Path, str]) -> List[str]:
+@@ -26,16 +25,7 @@ def get_readme():
+ 
+ MODULE_NAME = "rapidocr_onnxruntime"
+ 
+-obtainer = GetPyPiLatestVersion()
+-latest_version = obtainer(MODULE_NAME)
+-VERSION_NUM = obtainer.version_add_one(latest_version)
+-
+-if len(sys.argv) > 2:
+-    match_str = " ".join(sys.argv[2:])
+-    matched_versions = obtainer.extract_version(match_str)
+-    if matched_versions:
+-        VERSION_NUM = matched_versions
+-sys.argv = sys.argv[:2]
++VERSION_NUM = "@version@"
+ 
+ project_urls = {
+     "Documentation": "https://rapidai.github.io/RapidOCRDocs/docs/install_usage/rapidocr/usage/",
diff --git a/pkgs/development/python-modules/rasterio/default.nix b/pkgs/development/python-modules/rasterio/default.nix
index 158394a3b3312..d7ab45fd4732d 100644
--- a/pkgs/development/python-modules/rasterio/default.nix
+++ b/pkgs/development/python-modules/rasterio/default.nix
@@ -99,6 +99,12 @@ buildPythonPackage rec {
   disabledTests = [
     # flaky
     "test_outer_boundless_pixel_fidelity"
+
+    # Failing with GDAL 3.9.
+    # Fixed in https://github.com/rasterio/rasterio/commit/24d0845e576158217f6541c3c81b163d873a994d
+    # Re-enable in next rasterio update.
+    "test_create_sidecar_mask"
+    "test_update_tags"
   ] ++ lib.optionals stdenv.isDarwin [ "test_reproject_error_propagation" ];
 
   pythonImportsCheck = [ "rasterio" ];
diff --git a/pkgs/development/python-modules/ratarmount/default.nix b/pkgs/development/python-modules/ratarmount/default.nix
index b5ef1f623db99..8e32579cb7378 100644
--- a/pkgs/development/python-modules/ratarmount/default.nix
+++ b/pkgs/development/python-modules/ratarmount/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "ratarmount";
-  version = "0.15.0";
+  version = "0.15.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-2slLshH07O+4PIU3dF9vX2ZcXjaUVyTFYc59LL2J5iY=";
+    hash = "sha256-hprXZGgE2fpg8Km3gWO60e7teUB4Age5skNPc4p+wIg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/rauth/default.nix b/pkgs/development/python-modules/rauth/default.nix
index a5456603e0a70..05580a029e321 100644
--- a/pkgs/development/python-modules/rauth/default.nix
+++ b/pkgs/development/python-modules/rauth/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python library for OAuth 1.0/a, 2.0, and Ofly";
+    description = "Python library for OAuth 1.0/a, 2.0, and Ofly";
     homepage = "https://github.com/litl/rauth";
     changelog = "https://github.com/litl/rauth/blob/${src.rev}/CHANGELOG";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/ray/binary-hashes.nix b/pkgs/development/python-modules/ray/binary-hashes.nix
index 7edac88e63066..45e06d9caff8d 100644
--- a/pkgs/development/python-modules/ray/binary-hashes.nix
+++ b/pkgs/development/python-modules/ray/binary-hashes.nix
@@ -1,8 +1,8 @@
 {
   cp310 = {
-    hash = "sha256-y3T30qpaIeX53LMVpPm96CIyjna6lc0Lo3DP2gmKZ/Q=";
+    hash = "sha256-e0B3uGc5Yp4BC8bQAaiQCaouH+qUxAjA7jB2f8DA6m0=";
   };
   cp311 = {
-    hash = "sha256-x9FDjLqHJuyaWclpZOAHtgoHKENmR/SMODIoaSwvLuA=";
+    hash = "sha256-cZX0rjCgfyGqAM99lFZI7WlotjyksCpb3H/DCFP0lBA=";
   };
 }
diff --git a/pkgs/development/python-modules/ray/default.nix b/pkgs/development/python-modules/ray/default.nix
index 98acc7ff2c4e1..f6c09b8afae00 100644
--- a/pkgs/development/python-modules/ray/default.nix
+++ b/pkgs/development/python-modules/ray/default.nix
@@ -53,7 +53,7 @@
 
 let
   pname = "ray";
-  version = "2.10.0";
+  version = "2.24.0";
 in
 buildPythonPackage rec {
   inherit pname version;
@@ -122,7 +122,7 @@ buildPythonPackage rec {
     "virtualenv"
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     attrs
     aiohttp
     aiohttp-cors
@@ -158,12 +158,12 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "ray" ];
 
-  meta = with lib; {
-    description = "A unified framework for scaling AI and Python applications";
+  meta = {
+    description = "Unified framework for scaling AI and Python applications";
     homepage = "https://github.com/ray-project/ray";
     changelog = "https://github.com/ray-project/ray/releases/tag/ray-${version}";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ billhuang ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ billhuang ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/development/python-modules/raylib-python-cffi/default.nix b/pkgs/development/python-modules/raylib-python-cffi/default.nix
new file mode 100644
index 0000000000000..f1d46c1822d14
--- /dev/null
+++ b/pkgs/development/python-modules/raylib-python-cffi/default.nix
@@ -0,0 +1,57 @@
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  cffi,
+  pkg-config,
+  glfw,
+  libffi,
+  raylib,
+  physac,
+  raygui,
+  lib
+}:
+
+buildPythonPackage rec {
+  pname = "raylib-python-cffi";
+  version = "5.0.0.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "electronstudio";
+    repo = "raylib-python-cffi";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-DlnZRJZ0ZnkLii09grA/lGsJHPUYrbaJ55BVWJ8JzfM=";
+  };
+
+  build-system = [ setuptools ];
+  dependencies = [ cffi ];
+
+  patches = [
+    # This patch fixes to the builder script function to call pkg-config
+    # using the library name rather than searching only through raylib
+    ./fix_pyray_builder.patch
+  ];
+
+  nativeBuildInputs = [ pkg-config ];
+
+  # tests require a graphic environment
+  doCheck = false;
+
+  pythonImportsCheck = [ "pyray" ];
+
+  buildInputs = [
+    glfw
+    libffi
+    raylib
+    physac
+    raygui
+  ];
+
+  meta = {
+    description = "Python CFFI bindings for Raylib";
+    homepage = "https://electronstudio.github.io/raylib-python-cffi";
+    license = lib.licenses.epl20;
+    maintainers = with lib.maintainers; [ sigmanificient ];
+  };
+}
diff --git a/pkgs/development/python-modules/raylib-python-cffi/fix_pyray_builder.patch b/pkgs/development/python-modules/raylib-python-cffi/fix_pyray_builder.patch
new file mode 100644
index 0000000000000..0d167e2b0795a
--- /dev/null
+++ b/pkgs/development/python-modules/raylib-python-cffi/fix_pyray_builder.patch
@@ -0,0 +1,61 @@
+--- a/raylib/build.py	2024-05-18 18:36:26.911488056 +0200
++++ b/raylib/build.py	2024-05-18 18:40:04.770587090 +0200
+@@ -32,8 +32,8 @@
+     return subprocess.run(['pkg-config', '--exists', 'raylib'], text=True, stdout=subprocess.PIPE).returncode == 0
+ 
+ 
+-def get_the_include_path():
+-    return subprocess.run(['pkg-config', '--variable=includedir', 'raylib'], text=True,
++def get_the_include_path(libname):
++    return subprocess.run(['pkg-config', '--variable=includedir', libname], text=True,
+                           stdout=subprocess.PIPE).stdout.strip()
+ 
+ 
+@@ -106,9 +106,9 @@
+     if not check_raylib_installed():
+         raise Exception("ERROR: raylib not found by pkg-config.  Please install pkg-config and Raylib.")
+ 
+-    raylib_h = get_the_include_path() + "/raylib.h"
+-    rlgl_h = get_the_include_path() + "/rlgl.h"
+-    raymath_h = get_the_include_path() + "/raymath.h"
++    raylib_h = get_the_include_path("raylib") + "/raylib.h"
++    rlgl_h = get_the_include_path("raylib") + "/rlgl.h"
++    raymath_h = get_the_include_path("raylib") + "/raymath.h"
+ 
+     if not os.path.isfile(raylib_h):
+         raise Exception("ERROR: " + raylib_h + " not found.  Please install Raylib.")
+@@ -125,13 +125,13 @@
+     #include "raymath.h"
+     """
+ 
+-    glfw3_h = get_the_include_path() + "/GLFW/glfw3.h"
++    glfw3_h = get_the_include_path("glfw3") + "/GLFW/glfw3.h"
+     if check_header_exists(glfw3_h):
+         ffi_includes += """
+         #include "GLFW/glfw3.h"
+         """
+ 
+-    raygui_h = get_the_include_path() + "/raygui.h"
++    raygui_h = get_the_include_path("raygui") + "/raygui.h"
+     if check_header_exists(raygui_h):
+         ffi_includes += """
+         #define RAYGUI_IMPLEMENTATION
+@@ -139,7 +139,7 @@
+         #include "raygui.h"
+         """
+ 
+-    physac_h = get_the_include_path() + "/physac.h"
++    physac_h = get_the_include_path("physac") + "/physac.h"
+     if check_header_exists(physac_h):
+         ffi_includes += """
+         #define PHYSAC_IMPLEMENTATION
+@@ -172,7 +172,7 @@
+ 
+     ffibuilder.set_source("raylib._raylib_cffi",
+                           ffi_includes,
+-                          include_dirs=[get_the_include_path()],
++                          include_dirs=[get_the_include_path("libffi")],
+                           extra_link_args=extra_link_args,
+                           extra_compile_args=extra_compile_args,
+                           libraries=libraries)
+
diff --git a/pkgs/development/python-modules/recommonmark/default.nix b/pkgs/development/python-modules/recommonmark/default.nix
index 644c366274494..0569adc5b93ec 100644
--- a/pkgs/development/python-modules/recommonmark/default.nix
+++ b/pkgs/development/python-modules/recommonmark/default.nix
@@ -40,7 +40,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "recommonmark" ];
 
   meta = {
-    description = "A docutils-compatibility bridge to CommonMark";
+    description = "Docutils-compatibility bridge to CommonMark";
     homepage = "https://github.com/rtfd/recommonmark";
     license = lib.licenses.mit;
   };
diff --git a/pkgs/development/python-modules/regress/default.nix b/pkgs/development/python-modules/regress/default.nix
index b6a77758fa619..e59496b767d12 100644
--- a/pkgs/development/python-modules/regress/default.nix
+++ b/pkgs/development/python-modules/regress/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "Python bindings to the Rust regress crate, exposing ECMA regular expressions.";
+    description = "Python bindings to the Rust regress crate, exposing ECMA regular expressions";
     homepage = "https://github.com/Julian/regress";
     license = licenses.mit;
     maintainers = [ maintainers.matthiasbeyer ];
diff --git a/pkgs/development/python-modules/relatorio/default.nix b/pkgs/development/python-modules/relatorio/default.nix
index 740f4658c202e..9595e8e176879 100644
--- a/pkgs/development/python-modules/relatorio/default.nix
+++ b/pkgs/development/python-modules/relatorio/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   meta = {
     homepage = "https://relatorio.tryton.org/";
     changelog = "https://hg.tryton.org/relatorio/file/${version}/CHANGELOG";
-    description = "A templating library able to output odt and pdf files";
+    description = "Templating library able to output odt and pdf files";
     mainProgram = "relatorio-render";
     maintainers = with lib.maintainers; [ johbo ];
     license = lib.licenses.gpl2Plus;
diff --git a/pkgs/development/python-modules/releases/default.nix b/pkgs/development/python-modules/releases/default.nix
index 324a4017a10e0..2db172bdeb5be 100644
--- a/pkgs/development/python-modules/releases/default.nix
+++ b/pkgs/development/python-modules/releases/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "releases" ];
 
   meta = with lib; {
-    description = "A Sphinx extension for changelog manipulation";
+    description = "Sphinx extension for changelog manipulation";
     homepage = "https://github.com/bitprophet/releases";
     license = licenses.bsd2;
     maintainers = with maintainers; [ samuela ];
diff --git a/pkgs/development/python-modules/remote-pdb/default.nix b/pkgs/development/python-modules/remote-pdb/default.nix
index 796875196a21a..c17f48d451554 100644
--- a/pkgs/development/python-modules/remote-pdb/default.nix
+++ b/pkgs/development/python-modules/remote-pdb/default.nix
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     hash = "sha256-/7RysJOJigU4coC6d/Ob2lrtw8u8nLZI8wBk4oEEY3g=";
   };
   meta = with lib; {
-    description = "Remote vanilla PDB (over TCP sockets).";
+    description = "Remote vanilla PDB (over TCP sockets)";
     homepage = "https://github.com/ionelmc/python-remote-pdb";
     license = licenses.bsd2;
     maintainers = with maintainers; [ mic92 ];
diff --git a/pkgs/development/python-modules/renault-api/default.nix b/pkgs/development/python-modules/renault-api/default.nix
index 61362a5021f61..a295c2654513d 100644
--- a/pkgs/development/python-modules/renault-api/default.nix
+++ b/pkgs/development/python-modules/renault-api/default.nix
@@ -19,8 +19,8 @@
 
 buildPythonPackage rec {
   pname = "renault-api";
-  version = "0.2.2";
-  format = "pyproject";
+  version = "0.2.3";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -28,24 +28,19 @@ buildPythonPackage rec {
     owner = "hacf-fr";
     repo = "renault-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-FZ1VNO8gEH7HJRu9EVuKIwSQbceG720tCVqAPqHwISQ=";
+    hash = "sha256-+QqiD4mMfzlHmSiriaS0JzbMdOGCG7cg/xv6zJaPSOU=";
   };
 
   build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     cryptography
     marshmallow-dataclass
     pyjwt
   ];
 
-  dependencies = [
-    aioresponses
-    pytest-asyncio
-  ];
-
-  passthru.optional-dependencies = {
+  optional-dependencies = {
     cli = [
       click
       dateparser
@@ -54,11 +49,11 @@ buildPythonPackage rec {
   };
 
   nativeCheckInputs = [
+    aioresponses
+    pytest-asyncio
     pytestCheckHook
     typeguard
-  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
-
-  pytestFlagsArray = [ "--asyncio-mode=auto" ];
+  ] ++ lib.flatten (lib.attrValues optional-dependencies);
 
   pythonImportsCheck = [ "renault_api" ];
 
diff --git a/pkgs/development/python-modules/reolink-aio/default.nix b/pkgs/development/python-modules/reolink-aio/default.nix
index 65746304921a9..e681e1f6d5550 100644
--- a/pkgs/development/python-modules/reolink-aio/default.nix
+++ b/pkgs/development/python-modules/reolink-aio/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "reolink-aio";
-  version = "0.8.10";
+  version = "0.9.3";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "starkillerOG";
     repo = "reolink_aio";
     rev = "refs/tags/${version}";
-    hash = "sha256-qawrTTLp+qFUVn5TUQ73TcPu37c0EywzJl+8oFW8L04=";
+    hash = "sha256-tCT43wbDScL/aoQFmLPkrw59a88f4qpNeNa0Q27H9wA=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/repath/default.nix b/pkgs/development/python-modules/repath/default.nix
index 4704f6856b40b..88eb3ad0c3a2f 100644
--- a/pkgs/development/python-modules/repath/default.nix
+++ b/pkgs/development/python-modules/repath/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "repath" ];
 
   meta = {
-    description = "A port of the node module path-to-regexp to Python";
+    description = "Port of the node module path-to-regexp to Python";
     homepage = "https://github.com/nickcoutsos/python-repath";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.heyimnova ];
diff --git a/pkgs/development/python-modules/repl-python-wakatime/default.nix b/pkgs/development/python-modules/repl-python-wakatime/default.nix
new file mode 100644
index 0000000000000..72bdb809a8cb6
--- /dev/null
+++ b/pkgs/development/python-modules/repl-python-wakatime/default.nix
@@ -0,0 +1,52 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  ipython,
+  keyring,
+  ptpython,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-generate,
+  setuptools-scm,
+}:
+
+buildPythonPackage rec {
+  pname = "repl-python-wakatime";
+  version = "0.0.11";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-HoCdeo03Lf3g5Xg0GgAyWOu2PtGqy33vg5bQrfkEPkE=";
+  };
+
+  build-system = [
+    setuptools
+    setuptools-scm
+    setuptools-generate
+  ];
+
+  dependencies = [
+    ptpython
+    ipython
+  ];
+
+  nativeCheckInputs = [
+    keyring
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "repl_python_wakatime" ];
+
+  meta = with lib; {
+    description = "Python REPL plugin for automatic time tracking and metrics generated from your programming activity";
+    homepage = "https://github.com/wakatime/repl-python-wakatime";
+    changelog = "https://github.com/wakatime/repl-python-wakatime/releases/tag/${version}";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ jfvillablanca ];
+  };
+}
diff --git a/pkgs/development/python-modules/reportengine/default.nix b/pkgs/development/python-modules/reportengine/default.nix
index c472594486f4a..ec88a805dd736 100644
--- a/pkgs/development/python-modules/reportengine/default.nix
+++ b/pkgs/development/python-modules/reportengine/default.nix
@@ -46,7 +46,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "reportengine" ];
 
   meta = with lib; {
-    description = "A framework for declarative data analysis";
+    description = "Framework for declarative data analysis";
     homepage = "https://github.com/NNPDF/reportengine/";
     license = with licenses; [ gpl2Only ];
     maintainers = with maintainers; [ veprbl ];
diff --git a/pkgs/development/python-modules/reportlab/default.nix b/pkgs/development/python-modules/reportlab/default.nix
index 6a94ba77e0435..48e0065bc564a 100644
--- a/pkgs/development/python-modules/reportlab/default.nix
+++ b/pkgs/development/python-modules/reportlab/default.nix
@@ -60,7 +60,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "An Open Source Python library for generating PDFs and graphics";
+    description = "Open Source Python library for generating PDFs and graphics";
     homepage = "https://www.reportlab.com/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/repoze-lru/default.nix b/pkgs/development/python-modules/repoze-lru/default.nix
index 7578cf0877d72..1fbfd29947366 100644
--- a/pkgs/development/python-modules/repoze-lru/default.nix
+++ b/pkgs/development/python-modules/repoze-lru/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   pythonNamespaces = [ "repoze" ];
 
   meta = with lib; {
-    description = "A tiny LRU cache implementation and decorator";
+    description = "Tiny LRU cache implementation and decorator";
     homepage = "http://www.repoze.org/";
     changelog = "https://github.com/repoze/repoze.lru/blob/${version}/CHANGES.rst";
     license = licenses.bsd0;
diff --git a/pkgs/development/python-modules/reprshed/default.nix b/pkgs/development/python-modules/reprshed/default.nix
index 196e9b5c6b77e..fb05ed5726250 100644
--- a/pkgs/development/python-modules/reprshed/default.nix
+++ b/pkgs/development/python-modules/reprshed/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/mentalisttraceur/python-reprshed";
-    description = "A toolshed for writing great __repr__ methods quickly and easily";
+    description = "Toolshed for writing great __repr__ methods quickly and easily";
     license = licenses.bsd0;
     maintainers = with maintainers; [ netali ];
   };
diff --git a/pkgs/development/python-modules/reqif/default.nix b/pkgs/development/python-modules/reqif/default.nix
index f07d88a5f3fa7..e8fb4e1e9665e 100644
--- a/pkgs/development/python-modules/reqif/default.nix
+++ b/pkgs/development/python-modules/reqif/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "reqif";
-  version = "0.0.40";
+  version = "0.0.42";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "strictdoc-project";
     repo = "reqif";
     rev = "refs/tags/${version}";
-    hash = "sha256-VQvwynFv/DN5RHT00rxtDcJ9wsEpKdsh3rdyUakBr2Q=";
+    hash = "sha256-cQhis7jrcly3cw2LRv7hpPBFAB0Uag69czf+wJvbh/Q=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/requests-file/default.nix b/pkgs/development/python-modules/requests-file/default.nix
index 2c57e46c5696e..d76cdfbdaefb0 100644
--- a/pkgs/development/python-modules/requests-file/default.nix
+++ b/pkgs/development/python-modules/requests-file/default.nix
@@ -1,21 +1,26 @@
 {
   lib,
-  fetchPypi,
+  fetchFromGitHub,
   buildPythonPackage,
   setuptools,
   setuptools-scm,
   pytestCheckHook,
+  pythonOlder,
   requests,
 }:
 
 buildPythonPackage rec {
   pname = "requests-file";
-  version = "2.0.0";
+  version = "2.1.0";
   pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-IMWTFinFWP2lZsrMEM/izVAkM+Yo9WjDTIDZagzJWXI=";
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "dashea";
+    repo = "requests-file";
+    rev = "refs/tags/${version}";
+    hash = "sha256-JtdtE44yiw2mLMZ0bJv0QiGWb7f8ywPLF7+BUufh/g4=";
   };
 
   build-system = [
@@ -23,7 +28,7 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [ requests ];
+  dependencies = [ requests ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
@@ -32,6 +37,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Transport adapter for fetching file:// URLs with the requests python library";
     homepage = "https://github.com/dashea/requests-file";
+    changelog = "https://github.com/dashea/requests-file/blob/${version}/CHANGES.rst";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/requests-gssapi/default.nix b/pkgs/development/python-modules/requests-gssapi/default.nix
index b6b4e272dd5af..b3d78e8a1250b 100644
--- a/pkgs/development/python-modules/requests-gssapi/default.nix
+++ b/pkgs/development/python-modules/requests-gssapi/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   pythonImportCheck = [ "requests_gssapi" ];
 
   meta = with lib; {
-    description = "A GSSAPI authentication handler for python-requests";
+    description = "GSSAPI authentication handler for python-requests";
     homepage = "https://github.com/pythongssapi/requests-gssapi";
     changelog = "https://github.com/pythongssapi/requests-gssapi/blob/v${version}/HISTORY.rst";
     license = licenses.isc;
diff --git a/pkgs/development/python-modules/requests-hawk/default.nix b/pkgs/development/python-modules/requests-hawk/default.nix
index 1bc8862dd3534..9f3fbb94670d8 100644
--- a/pkgs/development/python-modules/requests-hawk/default.nix
+++ b/pkgs/development/python-modules/requests-hawk/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Hawk authentication strategy for the requests python library.";
+    description = "Hawk authentication strategy for the requests python library";
     homepage = "https://github.com/mozilla-services/requests-hawk";
     license = licenses.asl20;
     maintainers = with maintainers; [ austinbutler ];
diff --git a/pkgs/development/python-modules/requests-kerberos/default.nix b/pkgs/development/python-modules/requests-kerberos/default.nix
index 69c401ff3619e..a6207d93ad32d 100644
--- a/pkgs/development/python-modules/requests-kerberos/default.nix
+++ b/pkgs/development/python-modules/requests-kerberos/default.nix
@@ -46,7 +46,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "requests_kerberos" ];
 
   meta = with lib; {
-    description = "An authentication handler for using Kerberos with Python Requests";
+    description = "Authentication handler for using Kerberos with Python Requests";
     homepage = "https://github.com/requests/requests-kerberos";
     license = licenses.isc;
     maintainers = with maintainers; [ catern ];
diff --git a/pkgs/development/python-modules/requests-pkcs12/default.nix b/pkgs/development/python-modules/requests-pkcs12/default.nix
index f98c85a0b7455..550465962e313 100644
--- a/pkgs/development/python-modules/requests-pkcs12/default.nix
+++ b/pkgs/development/python-modules/requests-pkcs12/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "requests-pkcs12";
-  version = "1.24";
+  version = "1.25";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "m-click";
     repo = "requests_pkcs12";
     rev = version;
-    hash = "sha256-JLFUdg7kbjhlpGgrQ29U1TRTKhjDlvMGc/FRE+awfLc=";
+    hash = "sha256-ukS0vxG2Rd71GsF1lmpsDSM2JovwqhXsaAnZdF8WGQo=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/requests-unixsocket/default.nix b/pkgs/development/python-modules/requests-unixsocket/default.nix
index fd39f2c23cd48..12708f749bbef 100644
--- a/pkgs/development/python-modules/requests-unixsocket/default.nix
+++ b/pkgs/development/python-modules/requests-unixsocket/default.nix
@@ -26,6 +26,12 @@ buildPythonPackage rec {
       url = "https://github.com/msabramo/requests-unixsocket/commit/39b9c64847a52ddc8c6d14ff414a6a7a3f6358d9.patch";
       hash = "sha256-DFtjhk33JLCu7FW6XI7uf2klNmwzvh2QNwxUb4W223Q=";
     })
+    # https://github.com/msabramo/requests-unixsocket/pull/72
+    (fetchpatch {
+      name = "requests-2.32-compatibility.patch";
+      url = "https://github.com/msabramo/requests-unixsocket/commit/8b02ed531d8def03b4cf767e8a925be09db43dff.patch";
+      hash = "sha256-rCmdCPGB2gf+aY/AikSCPuzGCYf1GFWcUKraqgS26vc=";
+    })
   ];
 
   nativeBuildInputs = [ pbr ];
diff --git a/pkgs/development/python-modules/requests/default.nix b/pkgs/development/python-modules/requests/default.nix
index 3c4be1f8c1f6f..a483d00695188 100644
--- a/pkgs/development/python-modules/requests/default.nix
+++ b/pkgs/development/python-modules/requests/default.nix
@@ -7,7 +7,6 @@
   chardet,
   charset-normalizer,
   fetchPypi,
-  fetchpatch,
   idna,
   pysocks,
   pytest-mock,
@@ -19,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "requests";
-  version = "2.31.0";
+  version = "2.32.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -28,7 +27,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-lCxadY+Y15Dq7Ropy27vx/+w0c968Fw9J5Flbb1q0eE=";
+    hash = "sha256-VTZUF3NOsYJVWQqf+euX6eHaho1MzWQCOZ6vaK8gp2A=";
   };
 
   dependencies = [
diff --git a/pkgs/development/python-modules/requestsexceptions/default.nix b/pkgs/development/python-modules/requestsexceptions/default.nix
index 8a5580baa6c96..d545693191273 100644
--- a/pkgs/development/python-modules/requestsexceptions/default.nix
+++ b/pkgs/development/python-modules/requestsexceptions/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "Import exceptions from potentially bundled packages in requests.";
+    description = "Import exceptions from potentially bundled packages in requests";
     homepage = "https://pypi.python.org/pypi/requestsexceptions";
     license = licenses.asl20;
     maintainers = with maintainers; [ makefu ];
diff --git a/pkgs/development/python-modules/reretry/default.nix b/pkgs/development/python-modules/reretry/default.nix
index a4ec197c350cc..240a37a611ec3 100644
--- a/pkgs/development/python-modules/reretry/default.nix
+++ b/pkgs/development/python-modules/reretry/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "An easy to use retry decorator.";
+    description = "Easy to use retry decorator";
     homepage = "https://github.com/leshchenko1979/reretry";
     license = licenses.asl20;
     maintainers = with maintainers; [ renatoGarcia ];
diff --git a/pkgs/development/python-modules/resend/default.nix b/pkgs/development/python-modules/resend/default.nix
index bbcb620123fc6..68af7fcca2774 100644
--- a/pkgs/development/python-modules/resend/default.nix
+++ b/pkgs/development/python-modules/resend/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "resend";
-  version = "1.1.0";
+  version = "2.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "resend";
     repo = "resend-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xLrqkOHdynlwuY3+9aHWgCz8TX9v4RiVCvvPtu6k14c=";
+    hash = "sha256-AYCymWYibCeBG8B5uqqslEMF/Rdz9NAGC1D422FPKmU=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/resize-right/default.nix b/pkgs/development/python-modules/resize-right/default.nix
index b7541e0c6a657..43afc063867a8 100644
--- a/pkgs/development/python-modules/resize-right/default.nix
+++ b/pkgs/development/python-modules/resize-right/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "The correct way to resize images or tensors. For Numpy or Pytorch (differentiable";
+    description = "Correct way to resize images or tensors. For Numpy or Pytorch (differentiable";
     homepage = "https://github.com/assafshocher/ResizeRight";
     license = licenses.mit;
     maintainers = teams.tts.members;
diff --git a/pkgs/development/python-modules/returns/default.nix b/pkgs/development/python-modules/returns/default.nix
index a468f377387fd..27fa225ba7d05 100644
--- a/pkgs/development/python-modules/returns/default.nix
+++ b/pkgs/development/python-modules/returns/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "returns";
-  version = "0.22.0";
+  version = "0.23.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "dry-python";
     repo = "returns";
     rev = "refs/tags/${version}";
-    hash = "sha256-0eFirhBsj8SWfoAPWEMuFa+EvBgHKpNeKVj3qJ4L6hE=";
+    hash = "sha256-4ZP/wvPgqQQec/BaXuL9r7BEc2G+LztMdFul0NeEJTc=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/reuse/default.nix b/pkgs/development/python-modules/reuse/default.nix
index e697d8b26210f..5ef01b9dd974e 100644
--- a/pkgs/development/python-modules/reuse/default.nix
+++ b/pkgs/development/python-modules/reuse/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "reuse" ];
 
   meta = with lib; {
-    description = "A tool for compliance with the REUSE Initiative recommendations";
+    description = "Tool for compliance with the REUSE Initiative recommendations";
     homepage = "https://github.com/fsfe/reuse-tool";
     changelog = "https://github.com/fsfe/reuse-tool/blob/v${version}/CHANGELOG.md";
     license = with licenses; [
diff --git a/pkgs/development/python-modules/rfc7464/default.nix b/pkgs/development/python-modules/rfc7464/default.nix
index e6c3c85bfb540..1765b46be03e9 100644
--- a/pkgs/development/python-modules/rfc7464/default.nix
+++ b/pkgs/development/python-modules/rfc7464/default.nix
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/moshez/rfc7464";
-    description = "RFC 7464 is a proposed standard for streaming JSON documents.";
+    description = "RFC 7464 is a proposed standard for streaming JSON documents";
     license = [ licenses.mit ];
     maintainers = with maintainers; [ shlevy ];
   };
diff --git a/pkgs/development/python-modules/rich-argparse/default.nix b/pkgs/development/python-modules/rich-argparse/default.nix
index 459c5db23f99a..8edcfa9fbd951 100644
--- a/pkgs/development/python-modules/rich-argparse/default.nix
+++ b/pkgs/development/python-modules/rich-argparse/default.nix
@@ -3,33 +3,35 @@
   buildPythonPackage,
   fetchFromGitHub,
   hatchling,
-  rich,
   pytestCheckHook,
+  pythonOlder,
+  rich,
 }:
 
 buildPythonPackage rec {
   pname = "rich-argparse";
-  version = "1.4.0";
-  format = "pyproject";
+  version = "1.5.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "hamdanal";
     repo = "rich-argparse";
     rev = "refs/tags/v${version}";
-    hash = "sha256-iQ8x8UM0zmb2qYUpSh6RSEaBMrDpwY0ZHaJ9GJqn4Hs=";
+    hash = "sha256-kHGNjVx3d+JSsN/BpNua2rGD5S5sBfJvh1NyqQnziBI=";
   };
 
-  propagatedBuildInputs = [
-    hatchling
-    rich
-  ];
+  build-system = [ hatchling ];
+
+  dependencies = [ rich ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "rich_argparse" ];
 
   meta = with lib; {
-    description = "Format argparse help output using rich.";
+    description = "Format argparse help output using rich";
     homepage = "https://github.com/hamdanal/rich-argparse";
     changelog = "https://github.com/hamdanal/rich-argparse/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/rich-pixels/default.nix b/pkgs/development/python-modules/rich-pixels/default.nix
index 470d450b0904d..cda87a534fc40 100644
--- a/pkgs/development/python-modules/rich-pixels/default.nix
+++ b/pkgs/development/python-modules/rich-pixels/default.nix
@@ -3,54 +3,47 @@
   buildPythonPackage,
   fetchFromGitHub,
   fetchpatch,
-  poetry-core,
-  pytestCheckHook,
-  syrupy,
+  hatchling,
   pillow,
-  rich,
+  pytestCheckHook,
+  pythonOlder,
   pythonRelaxDepsHook,
+  rich,
+  syrupy,
 }:
 
 buildPythonPackage rec {
   pname = "rich-pixels";
-  version = "2.2.0";
-  format = "pyproject";
+  version = "3.0.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "darrenburns";
     repo = "rich-pixels";
-    rev = version;
-    hash = "sha256-fbpnHEfBPWLSYhgETqKbdmmzt7Lu/4oKgetjgNvv04c=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-Sqs0DOyxJBfZmm/SVSTMSmaaeRlusiSp6VBnJjKYjgQ=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "fix-version.patch";
-      url = "https://github.com/darrenburns/rich-pixels/commit/ff1cc3fef789321831f29e9bf282ae6b337eddb2.patch";
-      hash = "sha256-58ZHBNg1RCuOfuE034qF1SbAgoiWMNlSG3c5pCSLUyI=";
-    })
-  ];
-
-  nativeBuildInputs = [
-    poetry-core
-    pythonRelaxDepsHook
-  ];
-
-  nativeCheckInputs = [ pytestCheckHook ];
+  pythonRelaxDeps = [ "pillow" ];
 
-  checkInputs = [ syrupy ];
+  build-system = [ hatchling ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     pillow
     rich
   ];
 
-  pythonRelaxDeps = [ "pillow" ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    syrupy
+  ];
 
   pythonImportsCheck = [ "rich_pixels" ];
 
   meta = with lib; {
-    description = "A Rich-compatible library for writing pixel images and ASCII art to the terminal";
+    description = "Rich-compatible library for writing pixel images and ASCII art to the terminal";
     homepage = "https://github.com/darrenburns/rich-pixels";
     changelog = "https://github.com/darrenburns/rich-pixels/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/rich-rst/default.nix b/pkgs/development/python-modules/rich-rst/default.nix
index ef101fd2fccc2..067b7c39cbc0a 100644
--- a/pkgs/development/python-modules/rich-rst/default.nix
+++ b/pkgs/development/python-modules/rich-rst/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "rich-rst";
-  version = "1.3.0";
+  version = "1.3.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "wasi-master";
     repo = "rich-rst";
     rev = "refs/tags/v${version}";
-    hash = "sha256-A3SPbu1N5X55c32S8z8UPpmniJT+mdqfb1+zQEJMA5k=";
+    hash = "sha256-jbzGTEth5Qoc0ORFCS3sZMrGUpoQQOVsd+l3/zMWy20=";
   };
 
   build-system = [ setuptools ];
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "rich_rst" ];
 
   meta = with lib; {
-    description = "A beautiful reStructuredText renderer for rich";
+    description = "Beautiful reStructuredText renderer for rich";
     homepage = "https://github.com/wasi-master/rich-rst";
     license = licenses.mit;
     maintainers = with maintainers; [ joelkoen ];
diff --git a/pkgs/development/python-modules/rio-tiler/default.nix b/pkgs/development/python-modules/rio-tiler/default.nix
new file mode 100644
index 0000000000000..757dd7c5e1745
--- /dev/null
+++ b/pkgs/development/python-modules/rio-tiler/default.nix
@@ -0,0 +1,65 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  attrs,
+  boto3,
+  cachetools,
+  color-operations,
+  hatchling,
+  httpx,
+  morecantile,
+  numexpr,
+  numpy,
+  pydantic,
+  pystac,
+  rasterio,
+  rioxarray,
+}:
+
+buildPythonPackage rec {
+  pname = "rio-tiler";
+  version = "6.6.1";
+  pyproject = true;
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "cogeotiff";
+    repo = "rio-tiler";
+    rev = version;
+    hash = "sha256-MR6kyoGM3uXt6JiIEfGcsmTmxqlLxUF9Wn+CFuK5LtQ=";
+  };
+
+  build-system = [ hatchling ];
+
+  propagatedBuildInputs = [
+    attrs
+    cachetools
+    color-operations
+    httpx
+    morecantile
+    numexpr
+    numpy
+    pydantic
+    pystac
+    rasterio
+  ];
+
+  nativeCheckInputs = [
+    boto3
+    pytestCheckHook
+    rioxarray
+  ];
+
+  pythonImportsCheck = [ "rio_tiler" ];
+
+  meta = with lib; {
+    description = "User friendly Rasterio plugin to read raster datasets";
+    homepage = "https://cogeotiff.github.io/rio-tiler/";
+    license = licenses.bsd3;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/rioxarray/default.nix b/pkgs/development/python-modules/rioxarray/default.nix
new file mode 100644
index 0000000000000..1b3325e4576fd
--- /dev/null
+++ b/pkgs/development/python-modules/rioxarray/default.nix
@@ -0,0 +1,67 @@
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  # build-system
+  setuptools,
+  # dependencies
+  numpy,
+  packaging,
+  pyproj,
+  rasterio,
+  xarray,
+  # tests
+  dask,
+  netcdf4,
+  pytestCheckHook,
+  stdenv,
+}:
+
+buildPythonPackage rec {
+  pname = "rioxarray";
+  version = "0.15.5";
+  pyproject = true;
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "corteva";
+    repo = "rioxarray";
+    rev = "refs/tags/${version}";
+    hash = "sha256-bumFZQktgUqo2lyoLtDXkh6Vv5oS/wobqYpvNYy7La0=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [
+    numpy
+    packaging
+    pyproj
+    rasterio
+    xarray
+  ];
+
+  nativeCheckInputs = [
+    dask
+    netcdf4
+    pytestCheckHook
+  ];
+
+  disabledTests =
+    [ "test_clip_geojson__no_drop" ]
+    ++ lib.optionals (stdenv.hostPlatform.system == "aarch64-linux") [
+      # numerical errors
+      "test_clip_geojson"
+      "test_open_rasterio_mask_chunk_clip"
+    ];
+
+  pythonImportsCheck = [ "rioxarray" ];
+
+  meta = {
+    description = "geospatial xarray extension powered by rasterio";
+    homepage = "https://corteva.github.io/rioxarray/";
+    changelog = "https://github.com/corteva/rioxarray/releases/tag/${version}";
+    license = lib.licenses.asl20;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/ripe-atlas-sagan/default.nix b/pkgs/development/python-modules/ripe-atlas-sagan/default.nix
index cbedf4f3cffc4..c6d36a7b8849e 100644
--- a/pkgs/development/python-modules/ripe-atlas-sagan/default.nix
+++ b/pkgs/development/python-modules/ripe-atlas-sagan/default.nix
@@ -46,7 +46,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ripe.atlas.sagan" ];
 
   meta = with lib; {
-    description = "A parsing library for RIPE Atlas measurements results";
+    description = "Parsing library for RIPE Atlas measurements results";
     homepage = "https://github.com/RIPE-NCC/ripe-atlas-sagan";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ raitobezarius ];
diff --git a/pkgs/development/python-modules/ripser/default.nix b/pkgs/development/python-modules/ripser/default.nix
index 136d40c0d9191..75790f1e3cc50 100644
--- a/pkgs/development/python-modules/ripser/default.nix
+++ b/pkgs/development/python-modules/ripser/default.nix
@@ -44,7 +44,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ripser" ];
 
   meta = with lib; {
-    description = "A Lean Persistent Homology Library for Python";
+    description = "Lean Persistent Homology Library for Python";
     homepage = "https://ripser.scikit-tda.org";
     changelog = "https://github.com/scikit-tda/ripser.py/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/riscv-config/default.nix b/pkgs/development/python-modules/riscv-config/default.nix
index dbbf8f7b29d6f..b8762769b10cb 100644
--- a/pkgs/development/python-modules/riscv-config/default.nix
+++ b/pkgs/development/python-modules/riscv-config/default.nix
@@ -3,7 +3,6 @@
   buildPythonPackage,
   cerberus,
   fetchFromGitHub,
-  fetchpatch,
   pythonOlder,
   pyyaml,
   ruamel-yaml,
@@ -13,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "riscv-config";
-  version = "3.18.2";
+  version = "3.18.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -22,7 +21,7 @@ buildPythonPackage rec {
     owner = "riscv-software-src";
     repo = "riscv-config";
     rev = "refs/tags/${version}";
-    hash = "sha256-ADmf7EN3D+8isZRFx6WRMYq91YHunGavuwy3a3M3gCc=";
+    hash = "sha256-eaHi6ezgU8gQYH97gCS2TzEzIP3F4zfn7uiA/To2Gmc=";
   };
 
   pythonRelaxDeps = [ "pyyaml" ];
diff --git a/pkgs/development/python-modules/riscv-isac/default.nix b/pkgs/development/python-modules/riscv-isac/default.nix
index be15c5d53807c..5c6e305715eed 100644
--- a/pkgs/development/python-modules/riscv-isac/default.nix
+++ b/pkgs/development/python-modules/riscv-isac/default.nix
@@ -50,7 +50,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "riscv_isac" ];
 
   meta = with lib; {
-    description = "An ISA coverage extraction tool";
+    description = "ISA coverage extraction tool";
     mainProgram = "riscv_isac";
     homepage = "https://github.com/riscv/riscv-isac";
     changelog = "https://github.com/riscv-software-src/riscv-isac/blob/${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/rnginline/default.nix b/pkgs/development/python-modules/rnginline/default.nix
index 9346594b28b86..c868150bb98bd 100644
--- a/pkgs/development/python-modules/rnginline/default.nix
+++ b/pkgs/development/python-modules/rnginline/default.nix
@@ -49,7 +49,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "rnginline" ];
 
   meta = with lib; {
-    description = "A Python library and command-line tool for loading multi-file RELAX NG schemas from arbitary URLs, and flattening them into a single RELAX NG schema";
+    description = "Python library and command-line tool for loading multi-file RELAX NG schemas from arbitary URLs, and flattening them into a single RELAX NG schema";
     homepage = "https://github.com/h4l/rnginline";
     changelog = "https://github.com/h4l/rnginline/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/robotframework-seleniumlibrary/default.nix b/pkgs/development/python-modules/robotframework-seleniumlibrary/default.nix
index d025d3761215b..f535055d32013 100644
--- a/pkgs/development/python-modules/robotframework-seleniumlibrary/default.nix
+++ b/pkgs/development/python-modules/robotframework-seleniumlibrary/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "robotframework-seleniumlibrary";
-  version = "6.3.0";
+  version = "6.4.0";
   pyproject = true;
 
   # no tests included in PyPI tarball
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "robotframework";
     repo = "SeleniumLibrary";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-/bYk8S9fGTsftBokz1FH+7HwdhhtAvZgtQscUESTsjY=";
+    sha256 = "sha256-Rjbdn1WXdXLn//HLtHwVrlLD+3vw9mgre/0wvMb+xbc=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/robotframework/default.nix b/pkgs/development/python-modules/robotframework/default.nix
index ea323ac634556..b961d6ca07263 100644
--- a/pkgs/development/python-modules/robotframework/default.nix
+++ b/pkgs/development/python-modules/robotframework/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "robotframework";
-  version = "7.0";
+  version = "7.0.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "robotframework";
     repo = "robotframework";
     rev = "refs/tags/v${version}";
-    hash = "sha256-IyOm2MTHj2rOew/IkyGIfI4XZSFU88+Tx8KHKIRT2G4=";
+    hash = "sha256-pr7x40ja1DwMPffmXQ2W53g1wuD0p63f+6ATfXhqGvE=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/robotstatuschecker/default.nix b/pkgs/development/python-modules/robotstatuschecker/default.nix
index 4c49e2108f6fc..927dcf59c2169 100644
--- a/pkgs/development/python-modules/robotstatuschecker/default.nix
+++ b/pkgs/development/python-modules/robotstatuschecker/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A tool for checking that Robot Framework test cases have expected statuses and log messages";
+    description = "Tool for checking that Robot Framework test cases have expected statuses and log messages";
     homepage = "https://github.com/robotframework/statuschecker";
     license = licenses.asl20;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/roku/default.nix b/pkgs/development/python-modules/roku/default.nix
index 262f31dd53062..5041ec57ab1a1 100644
--- a/pkgs/development/python-modules/roku/default.nix
+++ b/pkgs/development/python-modules/roku/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "roku" ];
 
   meta = with lib; {
-    description = "Screw remotes. Control your Roku with Python.";
+    description = "Screw remotes. Control your Roku with Python";
     homepage = "https://github.com/jcarbaugh/python-roku";
     license = licenses.bsd3;
   };
diff --git a/pkgs/development/python-modules/rollbar/default.nix b/pkgs/development/python-modules/rollbar/default.nix
index 323f123377e6f..40e97073c7bce 100644
--- a/pkgs/development/python-modules/rollbar/default.nix
+++ b/pkgs/development/python-modules/rollbar/default.nix
@@ -4,7 +4,6 @@
   blinker,
   buildPythonPackage,
   fetchPypi,
-  fetchpatch,
   httpx,
   mock,
   pytestCheckHook,
diff --git a/pkgs/development/python-modules/ronin/default.nix b/pkgs/development/python-modules/ronin/default.nix
index 7de9b522aa647..63d6d419cf14f 100644
--- a/pkgs/development/python-modules/ronin/default.nix
+++ b/pkgs/development/python-modules/ronin/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/tliron/ronin/";
-    description = "A straightforward but powerful build system based on Ninja and Python";
+    description = "Straightforward but powerful build system based on Ninja and Python";
     license = licenses.asl20;
     maintainers = with maintainers; [ AndersonTorres ];
   };
diff --git a/pkgs/development/python-modules/rotary-embedding-torch/default.nix b/pkgs/development/python-modules/rotary-embedding-torch/default.nix
index f644d299470a2..3724cb4adedde 100644
--- a/pkgs/development/python-modules/rotary-embedding-torch/default.nix
+++ b/pkgs/development/python-modules/rotary-embedding-torch/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "rotary-embedding-torch";
-  version = "0.6.1";
+  version = "0.6.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "lucidrains";
     repo = "rotary-embedding-torch";
     rev = "refs/tags/${version}";
-    hash = "sha256-/gVBQ9lUzVN/eEtm6qPajw0TZs87JOC7d02qnQ8sdVk=";
+    hash = "sha256-AR/zQFH0uvPrCp61XLiRBiAO3ZnD4jVaDXN00hXDlnI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/routeros-api/default.nix b/pkgs/development/python-modules/routeros-api/default.nix
index 1f5812b44c1a1..2d6208ce27b1e 100644
--- a/pkgs/development/python-modules/routeros-api/default.nix
+++ b/pkgs/development/python-modules/routeros-api/default.nix
@@ -2,36 +2,40 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  six,
+  pythonOlder,
   mock,
+  setuptools,
   tox,
 }:
 
 buildPythonPackage rec {
   pname = "routeros-api";
-  version = "0.17.0";
-  format = "setuptools";
+  version = "0.18.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
 
-  # N.B. The version published on PyPI is missing tests.
   src = fetchFromGitHub {
     owner = "socialwifi";
-    repo = pname;
-    rev = version;
-    sha256 = "wpIfeYZ1w/yoNCHLYFVjn0O4Rb+N5lfvYzhGuN+HDTA=";
+    repo = "routeros-api";
+    rev = "refs/tags/${version}";
+    hash = "sha256-6IpoByG3YhHh2dPS18ufaoI1vzTZBsZa9WNHS/fImrg=";
   };
 
+  build-system = [ setuptools ];
+
   nativeCheckInputs = [
     mock
     tox
   ];
 
-  propagatedBuildInputs = [ six ];
+  pythonImportsCheck = [ "routeros_api" ];
 
   meta = with lib; {
-    description = "Python API to RouterBoard devices produced by MikroTik.";
+    description = "Python API to RouterBoard devices produced by MikroTik";
     homepage = "https://github.com/socialwifi/RouterOS-api";
+    changelog = "https://github.com/socialwifi/RouterOS-api/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ quentin ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/python-modules/rowan/default.nix b/pkgs/development/python-modules/rowan/default.nix
new file mode 100644
index 0000000000000..d8fe055a99387
--- /dev/null
+++ b/pkgs/development/python-modules/rowan/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, pytestCheckHook
+, scipy
+, numpy
+}:
+
+buildPythonPackage rec {
+  pname = "rowan";
+  version = "1.3.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "glotzerlab";
+    repo = "rowan";
+    rev = "v${version}";
+    hash = "sha256-klIqyX04w1xYmYtAbLF5jwpcJ83oKOaENboxyCL70EY=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    scipy
+  ];
+
+  propagatedBuildInputs = [
+    numpy
+  ];
+
+  pythonImportsCheck = [ "rowan" ];
+
+  meta = with lib; {
+    description = "Python package for working with quaternions";
+    homepage = "https://github.com/glotzerlab/rowan";
+    changelog = "https://github.com/glotzerlab/rowan/blob/${src.rev}/ChangeLog.rst";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ doronbehar ];
+  };
+}
diff --git a/pkgs/development/python-modules/rpcq/default.nix b/pkgs/development/python-modules/rpcq/default.nix
index fafcc896262e7..63b90d423dd0a 100644
--- a/pkgs/development/python-modules/rpcq/default.nix
+++ b/pkgs/development/python-modules/rpcq/default.nix
@@ -56,7 +56,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "rpcq" ];
 
   meta = with lib; {
-    description = "The RPC framework and message specification for rigetti Quantum Cloud services";
+    description = "RPC framework and message specification for rigetti Quantum Cloud services";
     homepage = "https://github.com/rigetti/rpcq";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
diff --git a/pkgs/development/python-modules/rpi-gpio2/default.nix b/pkgs/development/python-modules/rpi-gpio2/default.nix
deleted file mode 100644
index f24f6a5f6fe99..0000000000000
--- a/pkgs/development/python-modules/rpi-gpio2/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{
-  lib,
-  libgpiod,
-  buildPythonPackage,
-  fetchFromGitHub,
-}:
-
-buildPythonPackage rec {
-  pname = "rpi-gpio2";
-  version = "0.4.0";
-  format = "setuptools";
-
-  # PyPi source does not work for some reason
-  src = fetchFromGitHub {
-    owner = "underground-software";
-    repo = "RPi.GPIO2";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-CNnej67yTh3C8n4cCA7NW97rlfIDrrlepRNDkv+BUeY=";
-  };
-
-  propagatedBuildInputs = [ libgpiod ];
-
-  # Disable checks because they need to run on the specific platform
-  doCheck = false;
-
-  meta = with lib; {
-    homepage = "https://github.com/underground-software/RPi.GPIO2";
-    description = ''
-      Compatibility layer between RPi.GPIO syntax and libgpiod semantics
-    '';
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ onny ];
-  };
-}
diff --git a/pkgs/development/python-modules/rply/default.nix b/pkgs/development/python-modules/rply/default.nix
index 1685aadd922be..037bbca05e522 100644
--- a/pkgs/development/python-modules/rply/default.nix
+++ b/pkgs/development/python-modules/rply/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A python Lex/Yacc that works with RPython";
+    description = "Python Lex/Yacc that works with RPython";
     homepage = "https://github.com/alex/rply";
     license = licenses.bsd3;
     maintainers = with maintainers; [ nixy ];
diff --git a/pkgs/development/python-modules/rpy2/default.nix b/pkgs/development/python-modules/rpy2/default.nix
index 65ae9652cd06b..1fd58cb565fe1 100644
--- a/pkgs/development/python-modules/rpy2/default.nix
+++ b/pkgs/development/python-modules/rpy2/default.nix
@@ -3,9 +3,9 @@
   lib,
   buildPythonPackage,
   fetchPypi,
-  fetchpatch,
   isPyPy,
   R,
+  libdeflate,
   rWrapper,
   rPackages,
   pcre,
@@ -54,6 +54,7 @@ buildPythonPackage rec {
       bzip2
       zlib
       icu
+      libdeflate
     ]
     ++ (with rPackages; [
       # packages expected by the test framework
@@ -88,6 +89,13 @@ buildPythonPackage rec {
 
   doCheck = !stdenv.isDarwin;
 
+  # https://github.com/rpy2/rpy2/issues/1111
+  disabledTests = [
+    "test_parse_incomplete_error"
+    "test_parse_error"
+    "test_parse_error_when_evaluting"
+  ];
+
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = {
diff --git a/pkgs/development/python-modules/rsa/default.nix b/pkgs/development/python-modules/rsa/default.nix
index 3c9e029b12f10..e6ae0e7fd61eb 100644
--- a/pkgs/development/python-modules/rsa/default.nix
+++ b/pkgs/development/python-modules/rsa/default.nix
@@ -41,6 +41,6 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://stuvel.eu/rsa";
     license = licenses.asl20;
-    description = "A pure-Python RSA implementation";
+    description = "Pure-Python RSA implementation";
   };
 }
diff --git a/pkgs/development/python-modules/rst2ansi/default.nix b/pkgs/development/python-modules/rst2ansi/default.nix
index d1a03b5db5829..c7b99f6bfd683 100644
--- a/pkgs/development/python-modules/rst2ansi/default.nix
+++ b/pkgs/development/python-modules/rst2ansi/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ docutils ];
 
   meta = with lib; {
-    description = "A rst converter to ansi-decorated console output";
+    description = "Rst converter to ansi-decorated console output";
     mainProgram = "rst2ansi";
     homepage = "https://github.com/Snaipe/python-rst-to-ansi";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/rtp/default.nix b/pkgs/development/python-modules/rtp/default.nix
index b06327f1c38e3..dbafa102ea1d6 100644
--- a/pkgs/development/python-modules/rtp/default.nix
+++ b/pkgs/development/python-modules/rtp/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "rtp" ];
 
   meta = with lib; {
-    description = "A library for decoding/encoding rtp packets";
+    description = "Library for decoding/encoding rtp packets";
     homepage = "https://github.com/bbc/rd-apmm-python-lib-rtp";
     license = licenses.asl20;
     maintainers = with maintainers; [ fleaz ];
diff --git a/pkgs/development/python-modules/rtslib/default.nix b/pkgs/development/python-modules/rtslib/default.nix
index 23ec072489945..d4643c8839c1c 100644
--- a/pkgs/development/python-modules/rtslib/default.nix
+++ b/pkgs/development/python-modules/rtslib/default.nix
@@ -26,9 +26,10 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python object API for managing the Linux LIO kernel target";
+    description = "Python object API for managing the Linux LIO kernel target";
     mainProgram = "targetctl";
     homepage = "https://github.com/open-iscsi/rtslib-fb";
     license = licenses.asl20;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/python-modules/rubicon-objc/default.nix b/pkgs/development/python-modules/rubicon-objc/default.nix
index 5695642e4f563..9b558e9a9fec4 100644
--- a/pkgs/development/python-modules/rubicon-objc/default.nix
+++ b/pkgs/development/python-modules/rubicon-objc/default.nix
@@ -47,7 +47,7 @@ buildPythonPackage rec {
   __darwinAllowLocalNetworking = true;
 
   meta = {
-    description = "A bridge interface between Python and Objective-C";
+    description = "Bridge interface between Python and Objective-C";
     homepage = "https://github.com/beeware/rubicon-objc/";
     changelog = "https://github.com/beeware/rubicon-objc/releases/tag/v${version}";
     license = lib.licenses.bsd3;
diff --git a/pkgs/development/python-modules/rustworkx/default.nix b/pkgs/development/python-modules/rustworkx/default.nix
index 3cc2ffe95109d..b0be3a51573cb 100644
--- a/pkgs/development/python-modules/rustworkx/default.nix
+++ b/pkgs/development/python-modules/rustworkx/default.nix
@@ -49,7 +49,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "rustworkx" ];
 
   meta = with lib; {
-    description = "A high performance Python graph library implemented in Rust";
+    description = "High performance Python graph library implemented in Rust";
     homepage = "https://github.com/Qiskit/rustworkx";
     license = licenses.asl20;
     maintainers = with maintainers; [ raitobezarius ];
diff --git a/pkgs/development/python-modules/ruyaml/default.nix b/pkgs/development/python-modules/ruyaml/default.nix
index 6256f3556107c..0bcd0dd7a71dc 100644
--- a/pkgs/development/python-modules/ruyaml/default.nix
+++ b/pkgs/development/python-modules/ruyaml/default.nix
@@ -3,7 +3,6 @@
   buildPythonPackage,
   distro,
   fetchFromGitHub,
-  fetchpatch,
   pytestCheckHook,
   pythonOlder,
   setuptools-scm,
diff --git a/pkgs/development/python-modules/s2clientprotocol/default.nix b/pkgs/development/python-modules/s2clientprotocol/default.nix
index 0ee5f15a24fb5..ea4dc582c5474 100644
--- a/pkgs/development/python-modules/s2clientprotocol/default.nix
+++ b/pkgs/development/python-modules/s2clientprotocol/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   buildInputs = [ protobuf ];
 
   meta = {
-    description = "StarCraft II - client protocol.";
+    description = "StarCraft II - client protocol";
     homepage = "https://github.com/Blizzard/sc2client-proto";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ ];
diff --git a/pkgs/development/python-modules/s3fs/default.nix b/pkgs/development/python-modules/s3fs/default.nix
index fb06d2e73aee8..5869e9af74d99 100644
--- a/pkgs/development/python-modules/s3fs/default.nix
+++ b/pkgs/development/python-modules/s3fs/default.nix
@@ -41,7 +41,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "s3fs" ];
 
   meta = with lib; {
-    description = "A Pythonic file interface for S3";
+    description = "Pythonic file interface for S3";
     homepage = "https://github.com/fsspec/s3fs";
     changelog = "https://github.com/fsspec/s3fs/raw/${version}/docs/source/changelog.rst";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/sabctools/default.nix b/pkgs/development/python-modules/sabctools/default.nix
index 05812deb884da..b41c3c18a799c 100644
--- a/pkgs/development/python-modules/sabctools/default.nix
+++ b/pkgs/development/python-modules/sabctools/default.nix
@@ -7,12 +7,12 @@
 }:
 buildPythonPackage rec {
   pname = "sabctools";
-  version = "8.1.0"; # needs to match version sabnzbd expects, e.g. https://github.com/sabnzbd/sabnzbd/blob/4.0.x/requirements.txt#L3
+  version = "8.2.0"; # needs to match version sabnzbd expects, e.g. https://github.com/sabnzbd/sabnzbd/blob/4.0.x/requirements.txt#L3
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-PYfbmR9wT3SHT+oFyQF2F13g7FgdvY/l9p0D65c/+RU=";
+    hash = "sha256-dOMNZoKWQxHJt6yHiNKVtpnYvLJkK8nktOm+djsSTcM=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/sacn/default.nix b/pkgs/development/python-modules/sacn/default.nix
index 309e43fb3e745..58e87ec60ed1d 100644
--- a/pkgs/development/python-modules/sacn/default.nix
+++ b/pkgs/development/python-modules/sacn/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sacn" ];
 
   meta = with lib; {
-    description = "A simple ANSI E1.31 (aka sACN) module";
+    description = "Simple ANSI E1.31 (aka sACN) module";
     homepage = "https://github.com/Hundemeier/sacn";
     changelog = "https://github.com/Hundemeier/sacn/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/safety/default.nix b/pkgs/development/python-modules/safety/default.nix
index 49e5da716a85d..2399e4e977feb 100644
--- a/pkgs/development/python-modules/safety/default.nix
+++ b/pkgs/development/python-modules/safety/default.nix
@@ -25,7 +25,7 @@
 
 buildPythonPackage rec {
   pname = "safety";
-  version = "3.2.0";
+  version = "3.2.3";
 
   disabled = pythonOlder "3.7";
 
@@ -33,7 +33,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-i9XKtfPYphzg6m6Y8mfBAG0FYJfEXGRP7nr+/31ZScE=";
+    hash = "sha256-QUFUk08XJ9r4pkc0k5RP7LOAVAw/AIddwa43c4L32D8=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/saneyaml/default.nix b/pkgs/development/python-modules/saneyaml/default.nix
index db4e2c5fc842f..5fca7e223f6b4 100644
--- a/pkgs/development/python-modules/saneyaml/default.nix
+++ b/pkgs/development/python-modules/saneyaml/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "saneyaml" ];
 
   meta = with lib; {
-    description = "A PyYaml wrapper with sane behaviour to read and write readable YAML safely";
+    description = "PyYaml wrapper with sane behaviour to read and write readable YAML safely";
     homepage = "https://github.com/nexB/saneyaml";
     license = licenses.asl20;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/sanic/default.nix b/pkgs/development/python-modules/sanic/default.nix
index 33779a6f61917..939d68c5f3feb 100644
--- a/pkgs/development/python-modules/sanic/default.nix
+++ b/pkgs/development/python-modules/sanic/default.nix
@@ -3,7 +3,6 @@
   stdenv,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   pythonAtLeast,
 
   # build-system
diff --git a/pkgs/development/python-modules/sarif-tools/default.nix b/pkgs/development/python-modules/sarif-tools/default.nix
index e9784e366049e..20fdc0343457d 100644
--- a/pkgs/development/python-modules/sarif-tools/default.nix
+++ b/pkgs/development/python-modules/sarif-tools/default.nix
@@ -54,7 +54,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sarif" ];
 
   meta = {
-    description = "A set of command line tools and Python library for working with SARIF files";
+    description = "Set of command line tools and Python library for working with SARIF files";
     homepage = "https://github.com/microsoft/sarif-tools";
     changelog = "https://github.com/microsoft/sarif-tools/releases/tag/v${version}";
     license = lib.licenses.mit;
diff --git a/pkgs/development/python-modules/scalene/default.nix b/pkgs/development/python-modules/scalene/default.nix
index 2abf29f662054..1d635edbedd9d 100644
--- a/pkgs/development/python-modules/scalene/default.nix
+++ b/pkgs/development/python-modules/scalene/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   hypothesis,
-  fetchpatch,
   fetchPypi,
   setuptools,
   setuptools-scm,
diff --git a/pkgs/development/python-modules/scapy/default.nix b/pkgs/development/python-modules/scapy/default.nix
index 5211392f612cc..2b643a089512b 100644
--- a/pkgs/development/python-modules/scapy/default.nix
+++ b/pkgs/development/python-modules/scapy/default.nix
@@ -97,7 +97,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "scapy" ];
 
   meta = with lib; {
-    description = "A Python-based network packet manipulation program and library";
+    description = "Python-based network packet manipulation program and library";
     mainProgram = "scapy";
     longDescription = ''
       Scapy is a powerful Python-based interactive packet manipulation program
diff --git a/pkgs/development/python-modules/schema-salad/default.nix b/pkgs/development/python-modules/schema-salad/default.nix
index 8d267299add02..0010df2ab13c7 100644
--- a/pkgs/development/python-modules/schema-salad/default.nix
+++ b/pkgs/development/python-modules/schema-salad/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "schema-salad";
-  version = "8.5.20240410123758";
+  version = "8.5.20240503091721";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "common-workflow-language";
     repo = "schema_salad";
     rev = "refs/tags/${version}";
-    hash = "sha256-AgXqeiA4sP7KBnUpb2uMWq45G0LhJ5uLtORrOG4UuB0=";
+    hash = "sha256-VbEIkWzg6kPnJWqbvlfsD83oS0VQasGQo+pUIPiGjhU=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/schemdraw/default.nix b/pkgs/development/python-modules/schemdraw/default.nix
index 3649c23aaa06c..7dc5c17713729 100644
--- a/pkgs/development/python-modules/schemdraw/default.nix
+++ b/pkgs/development/python-modules/schemdraw/default.nix
@@ -61,7 +61,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "schemdraw" ];
 
   meta = with lib; {
-    description = "A package for producing high-quality electrical circuit schematic diagrams";
+    description = "Package for producing high-quality electrical circuit schematic diagrams";
     homepage = "https://schemdraw.readthedocs.io/en/latest/";
     changelog = "https://schemdraw.readthedocs.io/en/latest/changes.html";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/scikit-build-core/default.nix b/pkgs/development/python-modules/scikit-build-core/default.nix
index 4061b3698a9cb..91795a3484a58 100644
--- a/pkgs/development/python-modules/scikit-build-core/default.nix
+++ b/pkgs/development/python-modules/scikit-build-core/default.nix
@@ -85,7 +85,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "scikit_build_core" ];
 
   meta = with lib; {
-    description = "A next generation Python CMake adaptor and Python API for plugins";
+    description = "Next generation Python CMake adaptor and Python API for plugins";
     homepage = "https://github.com/scikit-build/scikit-build-core";
     changelog = "https://github.com/scikit-build/scikit-build-core/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
diff --git a/pkgs/development/python-modules/scikit-fmm/default.nix b/pkgs/development/python-modules/scikit-fmm/default.nix
index c1a9ba9abcab7..b5ee709b7f62d 100644
--- a/pkgs/development/python-modules/scikit-fmm/default.nix
+++ b/pkgs/development/python-modules/scikit-fmm/default.nix
@@ -1,7 +1,9 @@
 {
   lib,
   buildPythonPackage,
+  fetchpatch,
   fetchPypi,
+  meson-python,
   numpy,
   python,
 }:
@@ -9,14 +11,42 @@
 buildPythonPackage rec {
   pname = "scikit-fmm";
   version = "2023.4.2";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-14ccR/ggdyq6kvJWUe8U5NJ96M45PArjwCqzxuJCPAs=";
   };
 
-  propagatedBuildInputs = [ numpy ];
+  # TODO: Remove these patches after another stable release is made.
+  # For now, these allow us to build with Python 3.12+ by switching to Meson
+  # and off the deprecated distutils.
+  patches = [
+    (fetchpatch {
+      name = "first-try-at-meson-build.patch";
+      hash = "sha256-Kclg4YrQZL6ZSVsLh6X6DqdztPjDK35L5dp5PqYjzaY=";
+      url = "https://github.com/scikit-fmm/scikit-fmm/commit/a52c0eccb70077553607a5084152316d136b668b.patch";
+    })
+    (fetchpatch {
+      name = "work-in-progress-on-meson-build.patch";
+      hash = "sha256-WvSwBz7exqe1H+CqdoMfT5jEoIHnyt/nbc/CryuEKiA=";
+      url = "https://github.com/scikit-fmm/scikit-fmm/commit/db0e7a5f51541745027c3d081d7841e74587793e.patch";
+    })
+    (fetchpatch {
+      name = "re-cythonize-the-heap-wrapper.patch";
+      hash = "sha256-ro97+06R0szXQ9I8/sR4JAnFxoQwJeiImDcl1Yp9P0Y=";
+      url = "https://github.com/scikit-fmm/scikit-fmm/commit/4168323e209343facd5f6ba93a85893242e781a2.patch";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail "oldest-supported-numpy" "numpy"
+  '';
+
+  build-system = [ meson-python ];
+
+  dependencies = [ numpy ];
 
   checkPhase = ''
     mkdir testdir; cd testdir
@@ -24,7 +54,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A Python extension module which implements the fast marching method";
+    description = "Python extension module which implements the fast marching method";
     homepage = "https://github.com/scikit-fmm/scikit-fmm";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/scikit-hep-testdata/default.nix b/pkgs/development/python-modules/scikit-hep-testdata/default.nix
index c3c76512492b9..aedf88316a465 100644
--- a/pkgs/development/python-modules/scikit-hep-testdata/default.nix
+++ b/pkgs/development/python-modules/scikit-hep-testdata/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "scikit-hep-testdata";
-  version = "0.4.44";
+  version = "0.4.45";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "scikit-hep";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-7a1F7180mnbMiEwRWzDQt2EhRsleSoVhWtTc+5DR/2o=";
+    hash = "sha256-Kpn7Z+LJPZ9rNxQLXFtACJvfpRdDs58cy+1QlbbODLA=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
@@ -39,7 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/scikit-hep/scikit-hep-testdata";
-    description = "A common package to provide example files (e.g., ROOT) for testing and developing packages against";
+    description = "Common package to provide example files (e.g., ROOT) for testing and developing packages against";
     changelog = "https://github.com/scikit-hep/scikit-hep-testdata/releases/tag/v${version}";
     license = licenses.bsd3;
     maintainers = with maintainers; [ veprbl ];
diff --git a/pkgs/development/python-modules/scikit-learn-extra/default.nix b/pkgs/development/python-modules/scikit-learn-extra/default.nix
index 5674bb68068f7..a7472648fd173 100644
--- a/pkgs/development/python-modules/scikit-learn-extra/default.nix
+++ b/pkgs/development/python-modules/scikit-learn-extra/default.nix
@@ -62,7 +62,7 @@ buildPythonPackage rec {
   ];
 
   meta = {
-    description = "A set of tools for scikit-learn";
+    description = "Set of tools for scikit-learn";
     homepage = "https://github.com/scikit-learn-contrib/scikit-learn-extra";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ yl3dy ];
diff --git a/pkgs/development/python-modules/scikit-learn/default.nix b/pkgs/development/python-modules/scikit-learn/default.nix
index 819337e3da472..591df46640db0 100644
--- a/pkgs/development/python-modules/scikit-learn/default.nix
+++ b/pkgs/development/python-modules/scikit-learn/default.nix
@@ -43,6 +43,7 @@ buildPythonPackage rec {
   '';
 
   buildInputs = [
+    numpy.blas
     pillow
     glibcLocales
   ] ++ lib.optionals stdenv.cc.isClang [ llvmPackages.openmp ];
@@ -60,8 +61,6 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [ numpy.blas ];
-
   dependencies = [
     joblib
     numpy
@@ -112,7 +111,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sklearn" ];
 
   meta = with lib; {
-    description = "A set of python modules for machine learning and data mining";
+    description = "Set of python modules for machine learning and data mining";
     changelog =
       let
         major = versions.major version;
diff --git a/pkgs/development/python-modules/scikit-misc/default.nix b/pkgs/development/python-modules/scikit-misc/default.nix
index 483acaa5de969..5b6e9f347b3c6 100644
--- a/pkgs/development/python-modules/scikit-misc/default.nix
+++ b/pkgs/development/python-modules/scikit-misc/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   cython,
   gfortran,
   git,
diff --git a/pkgs/development/python-modules/scikit-rf/default.nix b/pkgs/development/python-modules/scikit-rf/default.nix
index cd1f0ff3e1ec1..1f14444417e4f 100644
--- a/pkgs/development/python-modules/scikit-rf/default.nix
+++ b/pkgs/development/python-modules/scikit-rf/default.nix
@@ -99,7 +99,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "skrf" ];
 
   meta = with lib; {
-    description = "A Python library for RF/Microwave engineering";
+    description = "Python library for RF/Microwave engineering";
     homepage = "https://scikit-rf.org/";
     changelog = "https://github.com/scikit-rf/scikit-rf/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/scikits-odes/default.nix b/pkgs/development/python-modules/scikits-odes/default.nix
index 62fb8963c271a..7d2c270482e7b 100644
--- a/pkgs/development/python-modules/scikits-odes/default.nix
+++ b/pkgs/development/python-modules/scikits-odes/default.nix
@@ -45,7 +45,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A scikit offering extra ode/dae solvers, as an extension to what is available in scipy";
+    description = "Scikit offering extra ode/dae solvers, as an extension to what is available in scipy";
     homepage = "https://github.com/bmcage/odes";
     license = licenses.bsd3;
     maintainers = with maintainers; [ idontgetoutmuch ];
diff --git a/pkgs/development/python-modules/scikits-samplerate/default.nix b/pkgs/development/python-modules/scikits-samplerate/default.nix
deleted file mode 100644
index b2cd98d477de8..0000000000000
--- a/pkgs/development/python-modules/scikits-samplerate/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{
-  lib,
-  buildPythonPackage,
-  numpy,
-  libsamplerate,
-  fetchFromGitHub,
-}:
-
-buildPythonPackage {
-  pname = "scikits-samplerate";
-  version = "0.3.3";
-  format = "setuptools";
-
-  src = fetchFromGitHub {
-    owner = "cournape";
-    repo = "samplerate";
-    rev = "a536c97eb2d6195b5f266ea3cc3a35364c4c2210";
-    hash = "sha256-7x03Q6VXfP9p8HCk15IDZ9HeqTyi5F1AlGX/otdh8VU=";
-  };
-
-  buildInputs = [ libsamplerate ];
-
-  propagatedBuildInputs = [ numpy ];
-
-  preConfigure = ''
-    cat > site.cfg << END
-    [samplerate]
-    library_dirs=${libsamplerate.out}/lib
-    include_dirs=${lib.getDev libsamplerate}/include
-    END
-  '';
-
-  doCheck = false;
-
-  meta = with lib; {
-    homepage = "https://github.com/cournape/samplerate";
-    description = "High quality sampling rate convertion from audio data in numpy arrays";
-    license = licenses.gpl2;
-  };
-}
diff --git a/pkgs/development/python-modules/scim2-filter-parser/default.nix b/pkgs/development/python-modules/scim2-filter-parser/default.nix
index d3fcb5e4ddae0..4ea0d1a6c7d5d 100644
--- a/pkgs/development/python-modules/scim2-filter-parser/default.nix
+++ b/pkgs/development/python-modules/scim2-filter-parser/default.nix
@@ -52,7 +52,7 @@ buildPythonPackage rec {
   ] ++ passthru.optional-dependencies.django-query;
 
   meta = with lib; {
-    description = "A customizable parser/transpiler for SCIM2.0 filters";
+    description = "Customizable parser/transpiler for SCIM2.0 filters";
     homepage = "https://github.com/15five/scim2-filter-parser";
     changelog = "https://github.com/15five/scim2-filter-parser/blob/${version}/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/scipy/default.nix b/pkgs/development/python-modules/scipy/default.nix
index 19bba41bfa501..1bd02b708089e 100644
--- a/pkgs/development/python-modules/scipy/default.nix
+++ b/pkgs/development/python-modules/scipy/default.nix
@@ -38,8 +38,8 @@ let
   #     nix-shell maintainers/scripts/update.nix --argstr package python3.pkgs.scipy
   #
   # The update script uses sed regexes to replace them with the updated hashes.
-  version = "1.13.0";
-  srcHash = "sha256-HaYk92hOREHMOXppK+Bs9DrBu9KUVUsZ0KV+isTofUo=";
+  version = "1.13.1";
+  srcHash = "sha256-KpTvBJhiJ/IBjIFQhvS+NhRP3tbyXU5gQnAiFv47sKU=";
   datasetsHashes = {
     ascent = "1qjp35ncrniq9rhzb14icwwykqg2208hcssznn3hz27w39615kh3";
     ecg = "1bwbjp43b7znnwha5hv6wiz3g0bhwrpqpi75s12zidxrbwvd62pj";
@@ -80,12 +80,6 @@ buildPythonPackage {
       hash = "sha256-Vf6/hhwu6X5s8KWhq8bUZKtSkdVu/GtEpGtj8Olxe7s=";
       excludes = [ "doc/source/dev/contributor/meson_advanced.rst" ];
     })
-    # Fix for https://github.com/scipy/scipy/issues/20300 until 1.13.1 is
-    # released. Patch is based upon:
-    # https://github.com/scipy/pocketfft/commit/9367142748fcc9696a1c9e5a99b76ed9897c9daa
-    # Couldn't use fetchpatch because it is a submodule of scipy, and
-    # extraPrefix doesn't fit this purpose.
-    ./pocketfft-aligned_alloc.patch
   ];
 
   # Upstream says in a comment in their pyproject.toml that building against
diff --git a/pkgs/development/python-modules/scipy/pocketfft-aligned_alloc.patch b/pkgs/development/python-modules/scipy/pocketfft-aligned_alloc.patch
deleted file mode 100644
index 80b047c7061c5..0000000000000
--- a/pkgs/development/python-modules/scipy/pocketfft-aligned_alloc.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From fbe3c10d117de98d80a86a10f76d4cd74efc55a8 Mon Sep 17 00:00:00 2001
-From: Martin Reinecke <martin@mpa-garching.mpg.de>
-Date: Fri, 22 Mar 2024 10:53:05 +0100
-Subject: [PATCH] unconditionaly disable use of aligned_alloc
-
----
- pocketfft_hdronly.h | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/scipy/_lib/pocketfft/pocketfft_hdronly.h b/scipy/_lib/pocketfft/pocketfft_hdronly.h
-index 6c98f2d..66eea06 100644
---- a/scipy/_lib/pocketfft/pocketfft_hdronly.h
-+++ b/scipy/_lib/pocketfft/pocketfft_hdronly.h
-@@ -152,11 +152,11 @@ template<> struct VLEN<double> { static constexpr size_t val=2; };
- #endif
- #endif
- 
--// the __MINGW32__ part in the conditional below works around the problem that
--// the standard C++ library on Windows does not provide aligned_alloc() even
--// though the MinGW compiler and MSVC may advertise C++17 compliance.
--// aligned_alloc is only supported from MacOS 10.15.
--#if (__cplusplus >= 201703L) && (!defined(__MINGW32__)) && (!defined(_MSC_VER)) && (__MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_15)
-+// std::aligned_alloc is a bit cursed ... it doesn't exist on MacOS < 10.15
-+// and in musl, and other OSes seem to have even more peculiarities.
-+// Let's unconditionally work around it for now.
-+# if 0
-+//#if (__cplusplus >= 201703L) && (!defined(__MINGW32__)) && (!defined(_MSC_VER)) && (__MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_15)
- inline void *aligned_alloc(size_t align, size_t size)
-   {
-   // aligned_alloc() requires that the requested size is a multiple of "align"
diff --git a/pkgs/development/python-modules/scooby/default.nix b/pkgs/development/python-modules/scooby/default.nix
index 1626e4a48e7a3..90be3a6538722 100644
--- a/pkgs/development/python-modules/scooby/default.nix
+++ b/pkgs/development/python-modules/scooby/default.nix
@@ -55,7 +55,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/banesullivan/scooby/releases/tag/v${version}";
-    description = "A lightweight tool for reporting Python package versions and hardware resources";
+    description = "Lightweight tool for reporting Python package versions and hardware resources";
     mainProgram = "scooby";
     homepage = "https://github.com/banesullivan/scooby";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/scour/default.nix b/pkgs/development/python-modules/scour/default.nix
index 0eaf84083caa5..645ded228605b 100644
--- a/pkgs/development/python-modules/scour/default.nix
+++ b/pkgs/development/python-modules/scour/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "An SVG Optimizer / Cleaner ";
+    description = "SVG Optimizer / Cleaner ";
     mainProgram = "scour";
     homepage = "https://github.com/scour-project/scour";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/scp/default.nix b/pkgs/development/python-modules/scp/default.nix
index 3a434a496cf35..cf95431301a7c 100644
--- a/pkgs/development/python-modules/scp/default.nix
+++ b/pkgs/development/python-modules/scp/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "scp";
-  version = "0.14.5";
+  version = "0.15.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ZPABWJmz0hLLgIjn1A668Ghoif8OJD1cEkLv6LUPBT4=";
+    hash = "sha256-8bIumTISPM8X7r8Z4JU8bpFI9Yn5PZG4cpQaaWMFyD8=";
   };
 
   propagatedBuildInputs = [ paramiko ];
diff --git a/pkgs/development/python-modules/scrap-engine/default.nix b/pkgs/development/python-modules/scrap-engine/default.nix
index fadb7ba399d64..d1ca60e1bf435 100644
--- a/pkgs/development/python-modules/scrap-engine/default.nix
+++ b/pkgs/development/python-modules/scrap-engine/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     maintainers = with maintainers; [ fgaz ];
-    description = "A 2D ascii game engine for the terminal";
+    description = "2D ascii game engine for the terminal";
     homepage = "https://github.com/lxgr-linux/scrap_engine";
     license = licenses.gpl3Only;
   };
diff --git a/pkgs/development/python-modules/scrapy/default.nix b/pkgs/development/python-modules/scrapy/default.nix
index 9c688c7445d31..c97b5fc5598a4 100644
--- a/pkgs/development/python-modules/scrapy/default.nix
+++ b/pkgs/development/python-modules/scrapy/default.nix
@@ -5,8 +5,8 @@
   buildPythonPackage,
   cryptography,
   cssselect,
-  fetchPypi,
-  fetchpatch,
+  defusedxml,
+  fetchFromGitHub,
   glibcLocales,
   installShellFiles,
   itemadapter,
@@ -28,32 +28,25 @@
   testfixtures,
   tldextract,
   twisted,
+  uvloop,
   w3lib,
   zope-interface,
 }:
 
 buildPythonPackage rec {
   pname = "scrapy";
-  version = "2.11.1";
+  version = "2.11.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    inherit version;
-    pname = "Scrapy";
-    hash = "sha256-czoDnHQj5StpvygQtTMgk9TkKoSEYDWcB7Auz/j3Pr4=";
+  src = fetchFromGitHub {
+    owner = "scrapy";
+    repo = "scrapy";
+    rev = "refs/tags/${version}";
+    hash = "sha256-EaO1kQ3VSTwEW+r0kSKycOxHNTPwwCVjch1ZBrTU0qQ=";
   };
 
-  patches = [
-    # https://github.com/scrapy/scrapy/pull/6316
-    # fix test_get_func_args. remove on next update
-    (fetchpatch {
-      name = "test_get_func_args.patch";
-      url = "https://github.com/scrapy/scrapy/commit/b1fe97dc6c8509d58b29c61cf7801eeee1b409a9.patch";
-      hash = "sha256-POlmsuW4SD9baKwZieKfmlp2vtdlb7aKQ62VOmNXsr0=";
-    })
-  ];
 
   nativeBuildInputs = [
     installShellFiles
@@ -63,6 +56,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     cryptography
     cssselect
+    defusedxml
     itemadapter
     itemloaders
     lxml
@@ -87,6 +81,7 @@ buildPythonPackage rec {
     pytestCheckHook
     sybil
     testfixtures
+    uvloop
   ];
 
   LC_ALL = "en_US.UTF-8";
@@ -101,11 +96,6 @@ buildPythonPackage rec {
 
   disabledTests =
     [
-      # It's unclear if the failures are related to libxml2, https://github.com/NixOS/nixpkgs/pull/123890
-      "test_nested_css"
-      "test_nested_xpath"
-      "test_flavor_detection"
-      "test_follow_whitespace"
       # Requires network access
       "AnonymousFTPTestCase"
       "FTPFeedStorageTest"
@@ -119,14 +109,6 @@ buildPythonPackage rec {
       "test_timeout_download_from_spider_server_hangs"
       "test_unbounded_response"
       "CookiesMiddlewareTest"
-      # Depends on uvloop
-      "test_asyncio_enabled_reactor_different_loop"
-      "test_asyncio_enabled_reactor_same_loop"
-      # Fails with AssertionError
-      "test_peek_fifo"
-      "test_peek_one_element"
-      "test_peek_lifo"
-      "test_callback_kwargs"
       # Test fails on Hydra
       "test_start_requests_laziness"
     ]
diff --git a/pkgs/development/python-modules/screed/default.nix b/pkgs/development/python-modules/screed/default.nix
index 5663de6dfa28e..68dfdfb88c763 100644
--- a/pkgs/development/python-modules/screed/default.nix
+++ b/pkgs/development/python-modules/screed/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A simple read-only sequence database, designed for short reads";
+    description = "Simple read-only sequence database, designed for short reads";
     mainProgram = "screed";
     homepage = "https://pypi.org/project/screed/";
     maintainers = with maintainers; [ luizirber ];
diff --git a/pkgs/development/python-modules/scripttest/default.nix b/pkgs/development/python-modules/scripttest/default.nix
index 452b17c8a1425..9583ae6b28d97 100644
--- a/pkgs/development/python-modules/scripttest/default.nix
+++ b/pkgs/development/python-modules/scripttest/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A library for testing interactive command-line applications";
+    description = "Library for testing interactive command-line applications";
     homepage = "https://pypi.org/project/scripttest/";
     maintainers = with maintainers; [ ];
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/sdkmanager/default.nix b/pkgs/development/python-modules/sdkmanager/default.nix
index 9208a146faf67..b83579ae3a73a 100644
--- a/pkgs/development/python-modules/sdkmanager/default.nix
+++ b/pkgs/development/python-modules/sdkmanager/default.nix
@@ -41,7 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://gitlab.com/fdroid/sdkmanager";
-    description = "A drop-in replacement for sdkmanager from the Android SDK written in Python";
+    description = "Drop-in replacement for sdkmanager from the Android SDK written in Python";
     mainProgram = "sdkmanager";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ linsui ];
diff --git a/pkgs/development/python-modules/sdnotify/default.nix b/pkgs/development/python-modules/sdnotify/default.nix
index 7f191ced6ba8a..08ef15ac3dcf0 100644
--- a/pkgs/development/python-modules/sdnotify/default.nix
+++ b/pkgs/development/python-modules/sdnotify/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A pure Python implementation of systemd's service notification protocol";
+    description = "Pure Python implementation of systemd's service notification protocol";
     homepage = "https://github.com/bb4242/sdnotify";
     license = licenses.mit;
     maintainers = with maintainers; [ pmiddend ];
diff --git a/pkgs/development/python-modules/seabreeze/default.nix b/pkgs/development/python-modules/seabreeze/default.nix
index e6907f9c5f7a8..fe084d9b820ed 100644
--- a/pkgs/development/python-modules/seabreeze/default.nix
+++ b/pkgs/development/python-modules/seabreeze/default.nix
@@ -70,7 +70,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/ap--/python-seabreeze";
-    description = "A python library to access Ocean Optics spectrometers";
+    description = "Python library to access Ocean Optics spectrometers";
     maintainers = [ ];
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/securityreporter/default.nix b/pkgs/development/python-modules/securityreporter/default.nix
index e8ec6c6510cfa..3826f8397f5d6 100644
--- a/pkgs/development/python-modules/securityreporter/default.nix
+++ b/pkgs/development/python-modules/securityreporter/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "securityreporter";
-  version = "1.0.2";
+  version = "1.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "dongit-org";
     repo = "python-reporter";
     rev = "refs/tags/v${version}";
-    hash = "sha256-mBZVsoDnDRYHdcFzi4kuwmAJDRdpysUbNRcDzIhYRGY=";
+    hash = "sha256-Ddq1qjaQemawK+u3ArlsChrkzRbcuaj5LrswyTGwTrg=";
   };
 
   build-system = [ poetry-core ];
@@ -42,7 +42,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python wrapper for the Reporter API";
+    description = "Python wrapper for the Reporter API";
     homepage = "https://github.com/dongit-org/python-reporter";
     changelog = "https://github.com/dongit-org/python-reporter/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/seekpath/default.nix b/pkgs/development/python-modules/seekpath/default.nix
index 16b1c0a838b96..356a4d2b42747 100644
--- a/pkgs/development/python-modules/seekpath/default.nix
+++ b/pkgs/development/python-modules/seekpath/default.nix
@@ -44,7 +44,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A module to obtain and visualize band paths in the Brillouin zone of crystal structures.";
+    description = "Module to obtain and visualize band paths in the Brillouin zone of crystal structures";
     homepage = "https://github.com/giovannipizzi/seekpath";
     license = licenses.mit;
     maintainers = with maintainers; [ psyanticy ];
diff --git a/pkgs/development/python-modules/semantic-version/default.nix b/pkgs/development/python-modules/semantic-version/default.nix
index e869cbd5b71cc..26f33ea2a3682 100644
--- a/pkgs/development/python-modules/semantic-version/default.nix
+++ b/pkgs/development/python-modules/semantic-version/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "semantic_version" ];
 
   meta = with lib; {
-    description = "A library implementing the 'SemVer' scheme";
+    description = "Library implementing the 'SemVer' scheme";
     homepage = "https://github.com/rbarrois/python-semanticversion/";
     license = licenses.bsd2;
     maintainers = with maintainers; [
diff --git a/pkgs/development/python-modules/sepaxml/default.nix b/pkgs/development/python-modules/sepaxml/default.nix
index 6977f292e359e..d1e12b2ae1fad 100644
--- a/pkgs/development/python-modules/sepaxml/default.nix
+++ b/pkgs/development/python-modules/sepaxml/default.nix
@@ -39,6 +39,5 @@ buildPythonPackage rec {
     description = "SEPA Direct Debit XML generation in python";
     homepage = "https://github.com/raphaelm/python-sepaxml/";
     license = licenses.mit;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/seqeval/default.nix b/pkgs/development/python-modules/seqeval/default.nix
index ee0bd4bcdfba0..aa9cd7c01fa9b 100644
--- a/pkgs/development/python-modules/seqeval/default.nix
+++ b/pkgs/development/python-modules/seqeval/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python framework for sequence labeling evaluation";
+    description = "Python framework for sequence labeling evaluation";
     homepage = "https://github.com/chakki-works/seqeval";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/serpent/default.nix b/pkgs/development/python-modules/serpent/default.nix
index f14259c3432ab..529eb8bfdfeb4 100644
--- a/pkgs/development/python-modules/serpent/default.nix
+++ b/pkgs/development/python-modules/serpent/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A simple serialization library based on ast.literal_eval";
+    description = "Simple serialization library based on ast.literal_eval";
     homepage = "https://github.com/irmen/Serpent";
     license = licenses.mit;
     maintainers = with maintainers; [ prusnak ];
diff --git a/pkgs/development/python-modules/serverfiles/default.nix b/pkgs/development/python-modules/serverfiles/default.nix
index 67fcf88e6b7a4..5decec746d7b6 100644
--- a/pkgs/development/python-modules/serverfiles/default.nix
+++ b/pkgs/development/python-modules/serverfiles/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ unittestCheckHook ];
 
   meta = {
-    description = "An utility that accesses files on a HTTP server and stores them locally for reuse";
+    description = "Utility that accesses files on a HTTP server and stores them locally for reuse";
     homepage = "https://github.com/biolab/serverfiles";
     license = [ lib.licenses.gpl3Plus ];
     maintainers = [ lib.maintainers.lucasew ];
diff --git a/pkgs/development/python-modules/shap/default.nix b/pkgs/development/python-modules/shap/default.nix
index 7c21be0e36898..65f6a1628a98d 100644
--- a/pkgs/development/python-modules/shap/default.nix
+++ b/pkgs/development/python-modules/shap/default.nix
@@ -143,7 +143,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "shap" ];
 
   meta = with lib; {
-    description = "A unified approach to explain the output of any machine learning model";
+    description = "Unified approach to explain the output of any machine learning model";
     homepage = "https://github.com/slundberg/shap";
     changelog = "https://github.com/slundberg/shap/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/shazamio/default.nix b/pkgs/development/python-modules/shazamio/default.nix
index eaf3e2290108e..bfa3f7c9211a5 100644
--- a/pkgs/development/python-modules/shazamio/default.nix
+++ b/pkgs/development/python-modules/shazamio/default.nix
@@ -68,7 +68,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "shazamio" ];
 
   meta = with lib; {
-    description = "A free asynchronous library from reverse engineered Shazam API";
+    description = "Free asynchronous library from reverse engineered Shazam API";
     homepage = "https://github.com/dotX12/ShazamIO";
     changelog = "https://github.com/dotX12/ShazamIO/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/shiboken2/default.nix b/pkgs/development/python-modules/shiboken2/default.nix
index 5d313334ae3a5..abf29ffaff97e 100644
--- a/pkgs/development/python-modules/shiboken2/default.nix
+++ b/pkgs/development/python-modules/shiboken2/default.nix
@@ -7,6 +7,7 @@
   qt5,
   libxcrypt,
   llvmPackages_15,
+  pythonAtLeast,
 }:
 
 stdenv.mkDerivation {
@@ -58,6 +59,6 @@ stdenv.mkDerivation {
     ];
     homepage = "https://wiki.qt.io/Qt_for_Python";
     maintainers = with maintainers; [ gebner ];
-    broken = stdenv.isDarwin;
+    broken = stdenv.isDarwin || pythonAtLeast "3.12";
   };
 }
diff --git a/pkgs/development/python-modules/shiboken6/default.nix b/pkgs/development/python-modules/shiboken6/default.nix
index 98ebbecd521de..5bf11c0a14a59 100644
--- a/pkgs/development/python-modules/shiboken6/default.nix
+++ b/pkgs/development/python-modules/shiboken6/default.nix
@@ -1,6 +1,7 @@
 {
   lib,
   fetchurl,
+  fetchpatch,
   llvmPackages,
   python,
   cmake,
@@ -23,7 +24,16 @@ stdenv'.mkDerivation rec {
 
   sourceRoot = "pyside-setup-everywhere-src-${version}/sources/${pname}";
 
-  patches = [ ./fix-include-qt-headers.patch ];
+  patches = [
+    ./fix-include-qt-headers.patch
+    # Remove this patch when updating to 6.8.0
+    (fetchpatch {
+      name = "backwards-compatibility-with-6.6.x.patch";
+      url = "https://code.qt.io/cgit/pyside/pyside-setup.git/patch/?id=4f9a20e3635f4f0957e0774588b1d9156e88a572";
+      hash = "sha256-B2jhLWopgaSF/rUXMZFPZArDUNojlBgn7kdVyQull+I=";
+      stripLen = 2;
+    })
+  ];
 
   nativeBuildInputs = [
     cmake
diff --git a/pkgs/development/python-modules/shimmy/default.nix b/pkgs/development/python-modules/shimmy/default.nix
index 6604fc134f620..f1db250e1de2d 100644
--- a/pkgs/development/python-modules/shimmy/default.nix
+++ b/pkgs/development/python-modules/shimmy/default.nix
@@ -89,7 +89,7 @@ buildPythonPackage rec {
 
   meta = {
     changelog = "https://github.com/Farama-Foundation/Shimmy/releases/tag/v${version}";
-    description = "An API conversion tool for popular external reinforcement learning environments";
+    description = "API conversion tool for popular external reinforcement learning environments";
     homepage = "https://github.com/Farama-Foundation/Shimmy";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ GaetanLepage ];
diff --git a/pkgs/development/python-modules/sigstore/default.nix b/pkgs/development/python-modules/sigstore/default.nix
index 804e2fb69d897..56d7ecd6c5e94 100644
--- a/pkgs/development/python-modules/sigstore/default.nix
+++ b/pkgs/development/python-modules/sigstore/default.nix
@@ -78,7 +78,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A codesigning tool for Python packages";
+    description = "Codesigning tool for Python packages";
     homepage = "https://github.com/sigstore/sigstore-python";
     changelog = "https://github.com/sigstore/sigstore-python/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/simanneal/default.nix b/pkgs/development/python-modules/simanneal/default.nix
index 0c2392b54bc1f..2bd0bd80be065 100644
--- a/pkgs/development/python-modules/simanneal/default.nix
+++ b/pkgs/development/python-modules/simanneal/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   checkPhase = "pytest tests";
 
   meta = with lib; {
-    description = "A python implementation of the simulated annealing optimization technique";
+    description = "Python implementation of the simulated annealing optimization technique";
     homepage = "https://github.com/perrygeo/simanneal";
     license = licenses.isc;
     maintainers = with maintainers; [ veprbl ];
diff --git a/pkgs/development/python-modules/simple-salesforce/default.nix b/pkgs/development/python-modules/simple-salesforce/default.nix
index 2a0d1646aea8a..c529e2ab04ae8 100644
--- a/pkgs/development/python-modules/simple-salesforce/default.nix
+++ b/pkgs/development/python-modules/simple-salesforce/default.nix
@@ -51,7 +51,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "simple_salesforce" ];
 
   meta = with lib; {
-    description = "A very simple Salesforce.com REST API client for Python";
+    description = "Very simple Salesforce.com REST API client for Python";
     homepage = "https://github.com/simple-salesforce/simple-salesforce";
     changelog = "https://github.com/simple-salesforce/simple-salesforce/blob/v${version}/CHANGES";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/simple-term-menu/default.nix b/pkgs/development/python-modules/simple-term-menu/default.nix
index a7f86b176d2d3..ea67d21d5adc9 100644
--- a/pkgs/development/python-modules/simple-term-menu/default.nix
+++ b/pkgs/development/python-modules/simple-term-menu/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Python package which creates simple interactive menus on the command line";
+    description = "Python package which creates simple interactive menus on the command line";
     mainProgram = "simple-term-menu";
     homepage = "https://github.com/IngoMeyer441/simple-term-menu";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/simple-websocket-server/default.nix b/pkgs/development/python-modules/simple-websocket-server/default.nix
index 82426c4748470..e7e2c0af5ae4e 100644
--- a/pkgs/development/python-modules/simple-websocket-server/default.nix
+++ b/pkgs/development/python-modules/simple-websocket-server/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage {
   doCheck = false; # no tests
 
   meta = with lib; {
-    description = "A python based websocket server that is simple and easy to use";
+    description = "Python based websocket server that is simple and easy to use";
     homepage = "https://github.com/dpallot/simple-websocket-server/";
     license = licenses.mit;
     maintainers = with maintainers; [ rvolosatovs ];
diff --git a/pkgs/development/python-modules/simpleaudio/default.nix b/pkgs/development/python-modules/simpleaudio/default.nix
index 36c9e5acc6952..71d9cb43c06dd 100644
--- a/pkgs/development/python-modules/simpleaudio/default.nix
+++ b/pkgs/development/python-modules/simpleaudio/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/hamiltron/py-simple-audio";
-    description = "A simple audio playback Python extension - cross-platform, asynchronous, dependency-free";
+    description = "Simple audio playback Python extension - cross-platform, asynchronous, dependency-free";
     license = licenses.mit;
     maintainers = with maintainers; [ lucus16 ];
   };
diff --git a/pkgs/development/python-modules/simpleitk/default.nix b/pkgs/development/python-modules/simpleitk/default.nix
index 82a402f5280e8..e69f39820c476 100644
--- a/pkgs/development/python-modules/simpleitk/default.nix
+++ b/pkgs/development/python-modules/simpleitk/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   pythonOlder,
-  fetchFromGitHub,
   cmake,
   swig4,
   elastix,
diff --git a/pkgs/development/python-modules/simplekv/default.nix b/pkgs/development/python-modules/simplekv/default.nix
index 22851e6da57b4..24598ed8bf03e 100644
--- a/pkgs/development/python-modules/simplekv/default.nix
+++ b/pkgs/development/python-modules/simplekv/default.nix
@@ -41,7 +41,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A simple key-value store for binary data";
+    description = "Simple key-value store for binary data";
     homepage = "https://github.com/mbr/simplekv";
     changelog = "https://github.com/mbr/simplekv/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/simplemma/default.nix b/pkgs/development/python-modules/simplemma/default.nix
index d96e4b19121e9..e31fe1873f189 100644
--- a/pkgs/development/python-modules/simplemma/default.nix
+++ b/pkgs/development/python-modules/simplemma/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "simplemma";
-  version = "0.9.1";
+  version = "1.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -17,8 +17,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "adbar";
     repo = "simplemma";
-    rev = "v${version}";
-    hash = "sha256-2IvAJ+tRnlYISymYXznCGAoUTKkM/PoYwpZpuMSXRYQ=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-lhk6QrBg0m8orYHphnP+YiCnJFE44buyp3NQbz0U550=";
   };
 
   nativeCheckInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/simplenote/default.nix b/pkgs/development/python-modules/simplenote/default.nix
index 7ba87116c401b..d717ab1b32b81 100644
--- a/pkgs/development/python-modules/simplenote/default.nix
+++ b/pkgs/development/python-modules/simplenote/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ ];
 
   meta = with lib; {
-    description = "A python library for the simplenote.com web service";
+    description = "Python library for the simplenote.com web service";
     homepage = "http://readthedocs.org/docs/simplenotepy/en/latest/api.html";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/single-version/default.nix b/pkgs/development/python-modules/single-version/default.nix
index 72f1c003f99e0..e08878e89f581 100644
--- a/pkgs/development/python-modules/single-version/default.nix
+++ b/pkgs/development/python-modules/single-version/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   poetry-core,
   pytestCheckHook,
 }:
diff --git a/pkgs/development/python-modules/siobrultech-protocols/default.nix b/pkgs/development/python-modules/siobrultech-protocols/default.nix
index fbbe312b654a8..4bdb5917ecbe2 100644
--- a/pkgs/development/python-modules/siobrultech-protocols/default.nix
+++ b/pkgs/development/python-modules/siobrultech-protocols/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Sans-I/O Python client library for Brultech Devices";
+    description = "Sans-I/O Python client library for Brultech Devices";
     homepage = "https://github.com/sdwilsh/siobrultech-protocols";
     changelog = "https://github.com/sdwilsh/siobrultech-protocols/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/sjcl/default.nix b/pkgs/development/python-modules/sjcl/default.nix
index c291b56aa40e3..cca5d21cec0b0 100644
--- a/pkgs/development/python-modules/sjcl/default.nix
+++ b/pkgs/development/python-modules/sjcl/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sjcl" ];
 
   meta = with lib; {
-    description = "Decrypt and encrypt messages compatible to the \"Stanford Javascript Crypto Library (SJCL)\" message format. This is a wrapper around pycrypto.";
+    description = "Decrypt and encrypt messages compatible to the \"Stanford Javascript Crypto Library (SJCL)\" message format. This is a wrapper around pycrypto";
     homepage = "https://github.com/berlincode/sjcl";
     license = licenses.bsd3;
     maintainers = with maintainers; [ binsky ];
diff --git a/pkgs/development/python-modules/skein/default.nix b/pkgs/development/python-modules/skein/default.nix
index f66e153130bcd..e9016bb32ac75 100644
--- a/pkgs/development/python-modules/skein/default.nix
+++ b/pkgs/development/python-modules/skein/default.nix
@@ -70,7 +70,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://jcristharif.com/skein";
-    description = "A tool and library for easily deploying applications on Apache YARN";
+    description = "Tool and library for easily deploying applications on Apache YARN";
     mainProgram = "skein";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [
diff --git a/pkgs/development/python-modules/skl2onnx/default.nix b/pkgs/development/python-modules/skl2onnx/default.nix
index e696834b13e1d..32c482e71064c 100644
--- a/pkgs/development/python-modules/skl2onnx/default.nix
+++ b/pkgs/development/python-modules/skl2onnx/default.nix
@@ -16,12 +16,12 @@
 
 buildPythonPackage rec {
   pname = "skl2onnx";
-  version = "1.16.0";
+  version = "1.17.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-M3Cz1AZc4txZM4eMMnP0rqQflFzGUUVDsTrS1X82nOU=";
+    hash = "sha256-cSfchORw9In2gJTM//mlqBW2CfcA1D5wjm9lijOwZAM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/skytemple-dtef/default.nix b/pkgs/development/python-modules/skytemple-dtef/default.nix
index 5a7622e8c0292..f1320e68a867d 100644
--- a/pkgs/development/python-modules/skytemple-dtef/default.nix
+++ b/pkgs/development/python-modules/skytemple-dtef/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "skytemple_dtef" ];
 
   meta = with lib; {
-    description = "A format for standardized rule-based tilesets with 256 adjacency combinations";
+    description = "Format for standardized rule-based tilesets with 256 adjacency combinations";
     homepage = "https://github.com/SkyTemple/skytemple-dtef";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ marius851000 ];
diff --git a/pkgs/development/python-modules/slack-bolt/default.nix b/pkgs/development/python-modules/slack-bolt/default.nix
index 8b2e41c782c42..d4f5eb2af44d8 100644
--- a/pkgs/development/python-modules/slack-bolt/default.nix
+++ b/pkgs/development/python-modules/slack-bolt/default.nix
@@ -121,7 +121,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "slack_bolt" ];
 
   meta = with lib; {
-    description = "A framework to build Slack apps using Python";
+    description = "Framework to build Slack apps using Python";
     homepage = "https://github.com/slackapi/bolt-python";
     changelog = "https://github.com/slackapi/bolt-python/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/slack-sdk/default.nix b/pkgs/development/python-modules/slack-sdk/default.nix
index 4ef216531c622..cce3de84a0e87 100644
--- a/pkgs/development/python-modules/slack-sdk/default.nix
+++ b/pkgs/development/python-modules/slack-sdk/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "slack-sdk";
-  version = "3.27.2";
+  version = "3.29.0";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "slackapi";
     repo = "python-slack-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-1I08OUseiwCN9vUd56f9IFzCSB9kGjTLojyWm2dIimE=";
+    hash = "sha256-49dSRg0nrTXuXfnrC2/3p/zYMxouXO9FLqSBSxg4TcU=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/slackclient/default.nix b/pkgs/development/python-modules/slackclient/default.nix
index b1e7982079339..a53a43ce80c57 100644
--- a/pkgs/development/python-modules/slackclient/default.nix
+++ b/pkgs/development/python-modules/slackclient/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "slackclient";
-  version = "3.27.2";
+  version = "3.28.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "slackapi";
     repo = "python-slack-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-1I08OUseiwCN9vUd56f9IFzCSB9kGjTLojyWm2dIimE=";
+    hash = "sha256-rsJLjqP1XT1JkFz3iQovF58XdkmVcL+jfjiiI9SqonE=";
   };
 
   propagatedBuildInputs = [
@@ -82,7 +82,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "slack" ];
 
   meta = with lib; {
-    description = "A client for Slack, which supports the Slack Web API and Real Time Messaging (RTM) API";
+    description = "Client for Slack, which supports the Slack Web API and Real Time Messaging (RTM) API";
     homepage = "https://github.com/slackapi/python-slackclient";
     changelog = "https://github.com/slackapi/python-slack-sdk/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/slicer/default.nix b/pkgs/development/python-modules/slicer/default.nix
index 8f7a27e31c538..79e514f7ee9be 100644
--- a/pkgs/development/python-modules/slicer/default.nix
+++ b/pkgs/development/python-modules/slicer/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   dos2unix,
-  fetchpatch,
   fetchPypi,
   pytestCheckHook,
   pythonOlder,
diff --git a/pkgs/development/python-modules/slicerator/default.nix b/pkgs/development/python-modules/slicerator/default.nix
index bb292b2432a03..d76fb9fa16792 100644
--- a/pkgs/development/python-modules/slicerator/default.nix
+++ b/pkgs/development/python-modules/slicerator/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A lazy-loading, fancy-sliceable iterable";
+    description = "Lazy-loading, fancy-sliceable iterable";
     homepage = "https://github.com/soft-matter/slicerator";
     license = licenses.bsdOriginal;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/sly/default.nix b/pkgs/development/python-modules/sly/default.nix
index fd9aff0819de9..6087af1deee5f 100644
--- a/pkgs/development/python-modules/sly/default.nix
+++ b/pkgs/development/python-modules/sly/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "An improved PLY implementation of lex and yacc for Python 3";
+    description = "Improved PLY implementation of lex and yacc for Python 3";
     homepage = "https://github.com/dabeaz/sly";
     license = licenses.bsd3;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/smmap/default.nix b/pkgs/development/python-modules/smmap/default.nix
index eaaa36a22c952..27ae1788145fd 100644
--- a/pkgs/development/python-modules/smmap/default.nix
+++ b/pkgs/development/python-modules/smmap/default.nix
@@ -3,8 +3,7 @@
   fetchPypi,
   buildPythonPackage,
   setuptools,
-  nosexcover,
-  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,14 +16,14 @@ buildPythonPackage rec {
     hash = "sha256-jXkCjqbMEx2l6rCZpdlamY1DxneZVv/+O0VQQJEQdto=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
-  doCheck = pythonOlder "3.12";
+  pythonImportsCheck = [ "smmap" ];
 
-  nativeCheckInputs = [ nosexcover ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = {
-    description = "A pure python implementation of a sliding window memory map manager";
+    description = "Pure python implementation of a sliding window memory map manager";
     homepage = "https://github.com/gitpython-developers/smmap";
     maintainers = [ ];
     license = lib.licenses.bsd3;
diff --git a/pkgs/development/python-modules/smtpdfix/default.nix b/pkgs/development/python-modules/smtpdfix/default.nix
index 67be67fb5ac78..51346fe358aa4 100644
--- a/pkgs/development/python-modules/smtpdfix/default.nix
+++ b/pkgs/development/python-modules/smtpdfix/default.nix
@@ -42,7 +42,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "An SMTP server for use as a pytest fixture for testing";
+    description = "SMTP server for use as a pytest fixture for testing";
     homepage = "https://github.com/bebleo/smtpdfix";
     changelog = "https://github.com/bebleo/smtpdfix/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/snakemake-interface-report-plugins/default.nix b/pkgs/development/python-modules/snakemake-interface-report-plugins/default.nix
index 31f2798de8218..c20a0ad122462 100644
--- a/pkgs/development/python-modules/snakemake-interface-report-plugins/default.nix
+++ b/pkgs/development/python-modules/snakemake-interface-report-plugins/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "snakemake_interface_report_plugins" ];
 
   meta = with lib; {
-    description = "The interface for Snakemake report plugins";
+    description = "Interface for Snakemake report plugins";
     homepage = "https://github.com/snakemake/snakemake-interface-report-plugins";
     license = licenses.mit;
     maintainers = with maintainers; [ veprbl ];
diff --git a/pkgs/development/python-modules/snakemake-storage-plugin-s3/default.nix b/pkgs/development/python-modules/snakemake-storage-plugin-s3/default.nix
index 865f9df8fbd2b..bd0e8f6a59515 100644
--- a/pkgs/development/python-modules/snakemake-storage-plugin-s3/default.nix
+++ b/pkgs/development/python-modules/snakemake-storage-plugin-s3/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "snakemake_storage_plugin_s3" ];
 
   meta = with lib; {
-    description = "A Snakemake storage plugin for S3 API storage (AWS S3, MinIO, etc.)";
+    description = "Snakemake storage plugin for S3 API storage (AWS S3, MinIO, etc.)";
     homepage = "https://github.com/snakemake/snakemake-storage-plugin-s3";
     license = licenses.mit;
     maintainers = with maintainers; [ veprbl ];
diff --git a/pkgs/development/python-modules/snakemake-storage-plugin-xrootd/default.nix b/pkgs/development/python-modules/snakemake-storage-plugin-xrootd/default.nix
index c5d22431f4334..264dcf516d17d 100644
--- a/pkgs/development/python-modules/snakemake-storage-plugin-xrootd/default.nix
+++ b/pkgs/development/python-modules/snakemake-storage-plugin-xrootd/default.nix
@@ -40,7 +40,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "snakemake_storage_plugin_xrootd" ];
 
   meta = with lib; {
-    description = "A Snakemake storage plugin for handling input and output via XRootD";
+    description = "Snakemake storage plugin for handling input and output via XRootD";
     homepage = "https://github.com/snakemake/snakemake-storage-plugin-xrootd";
     license = licenses.mit;
     maintainers = with maintainers; [ veprbl ];
diff --git a/pkgs/development/python-modules/snap-helpers/default.nix b/pkgs/development/python-modules/snap-helpers/default.nix
index 7470baa097c9f..a1a9ef70c1888 100644
--- a/pkgs/development/python-modules/snap-helpers/default.nix
+++ b/pkgs/development/python-modules/snap-helpers/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "Interact with snap configuration and properties from inside a snap.";
+    description = "Interact with snap configuration and properties from inside a snap";
     homepage = "https://github.com/albertodonato/snap-helpers";
     changelog = "https://github.com/albertodonato/snap-helpers/releases/tag/${version}";
     license = lib.licenses.lgpl3Only;
diff --git a/pkgs/development/python-modules/snorkel/default.nix b/pkgs/development/python-modules/snorkel/default.nix
index 4a13f3e121954..91c650aa657c2 100644
--- a/pkgs/development/python-modules/snorkel/default.nix
+++ b/pkgs/development/python-modules/snorkel/default.nix
@@ -61,7 +61,7 @@ buildPythonPackage {
   ] ++ dask.optional-dependencies.distributed;
 
   meta = with lib; {
-    description = "A system for quickly generating training data with weak supervision";
+    description = "System for quickly generating training data with weak supervision";
     homepage = "https://github.com/snorkel-team/snorkel";
     changelog = "https://github.com/snorkel/snorkel/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/snscrape/default.nix b/pkgs/development/python-modules/snscrape/default.nix
index e449ed2f479ae..2b9f149e20c89 100644
--- a/pkgs/development/python-modules/snscrape/default.nix
+++ b/pkgs/development/python-modules/snscrape/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "snscrape" ];
 
   meta = with lib; {
-    description = "A social networking service scraper";
+    description = "Social networking service scraper";
     mainProgram = "snscrape";
     homepage = "https://github.com/JustAnotherArchivist/snscrape";
     license = licenses.gpl3Plus;
diff --git a/pkgs/development/python-modules/socketio-client/default.nix b/pkgs/development/python-modules/socketio-client/default.nix
index 0ac94dcb80a26..4f71777668217 100644
--- a/pkgs/development/python-modules/socketio-client/default.nix
+++ b/pkgs/development/python-modules/socketio-client/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "socketIO_client" ];
 
   meta = with lib; {
-    description = "A socket.io client library for protocol 1.x";
+    description = "Socket.io client library for protocol 1.x";
     homepage = "https://github.com/invisibleroads/socketIO-client";
     license = licenses.mit;
     maintainers = with maintainers; [ raitobezarius ];
diff --git a/pkgs/development/python-modules/solax/default.nix b/pkgs/development/python-modules/solax/default.nix
index 12671a9f5fcf2..7fa65384766a0 100644
--- a/pkgs/development/python-modules/solax/default.nix
+++ b/pkgs/development/python-modules/solax/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "solax";
-  version = "3.1.0";
+  version = "3.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-vc1NAbcQQxjpXnjZvTsnebzMc/LoMwBveDHBxBbhnEo=";
+    hash = "sha256-OgQ320UBDChQXPFMeulDx8NKNvajr399tuoAmsIEhFg=";
   };
 
   build-system = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/sounddevice/default.nix b/pkgs/development/python-modules/sounddevice/default.nix
index 7e312c1225d07..a4140a8a7f8af 100644
--- a/pkgs/development/python-modules/sounddevice/default.nix
+++ b/pkgs/development/python-modules/sounddevice/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "sounddevice";
-  version = "0.4.6";
+  version = "0.4.7";
   format = "setuptools";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Mja3jxXwQVvfAGpiDO8HPQwFIoUdZvSpYe1tjrFIL+k=";
+    hash = "sha256-abOGgY1QotUYYH1LlzRC6NUkdgx81si4vgPYyY/EvOc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/soundfile/default.nix b/pkgs/development/python-modules/soundfile/default.nix
index 83caeb5774b8f..819975014f147 100644
--- a/pkgs/development/python-modules/soundfile/default.nix
+++ b/pkgs/development/python-modules/soundfile/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   propagatedNativeBuildInputs = [ cffi ];
 
   meta = {
-    description = "An audio library based on libsndfile, CFFI and NumPy";
+    description = "Audio library based on libsndfile, CFFI and NumPy";
     license = lib.licenses.bsd3;
     homepage = "https://github.com/bastibe/python-soundfile";
   };
diff --git a/pkgs/development/python-modules/soupsieve/default.nix b/pkgs/development/python-modules/soupsieve/default.nix
index 87d203fbd5715..96dfbe9d8440b 100644
--- a/pkgs/development/python-modules/soupsieve/default.nix
+++ b/pkgs/development/python-modules/soupsieve/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   # pythonImportsCheck = [ "soupsieve" ];
 
   meta = with lib; {
-    description = "A CSS4 selector implementation for Beautiful Soup";
+    description = "CSS4 selector implementation for Beautiful Soup";
     license = licenses.mit;
     homepage = "https://github.com/facelessuser/soupsieve";
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/spacy-transformers/annotation-test/default.nix b/pkgs/development/python-modules/spacy-transformers/annotation-test/default.nix
index 51d0388f72ca0..d6d1094447d24 100644
--- a/pkgs/development/python-modules/spacy-transformers/annotation-test/default.nix
+++ b/pkgs/development/python-modules/spacy-transformers/annotation-test/default.nix
@@ -1,4 +1,5 @@
 {
+  lib,
   stdenv,
   pytest,
   spacy-models,
@@ -7,7 +8,12 @@
 stdenv.mkDerivation {
   name = "spacy-transformers-annotation-test";
 
-  src = ./.;
+  src = lib.fileset.toSource {
+    root = ./.;
+    fileset = lib.fileset.unions [
+      ./annotate.py
+    ];
+  };
 
   dontConfigure = true;
   dontBuild = true;
diff --git a/pkgs/development/python-modules/spacy/annotation-test/default.nix b/pkgs/development/python-modules/spacy/annotation-test/default.nix
index 02aad304a1e68..cb8a97aa568fc 100644
--- a/pkgs/development/python-modules/spacy/annotation-test/default.nix
+++ b/pkgs/development/python-modules/spacy/annotation-test/default.nix
@@ -1,4 +1,5 @@
 {
+  lib,
   stdenv,
   pytest,
   spacy-models,
@@ -7,7 +8,12 @@
 stdenv.mkDerivation {
   name = "spacy-annotation-test";
 
-  src = ./.;
+  src = lib.fileset.toSource {
+    root  = ./.;
+    fileset = lib.fileset.unions [
+      ./annotate.py
+    ];
+  };
 
   dontConfigure = true;
   dontBuild = true;
diff --git a/pkgs/development/python-modules/spark-parser/default.nix b/pkgs/development/python-modules/spark-parser/default.nix
index 005a55b7f3026..3543cc0abadbc 100644
--- a/pkgs/development/python-modules/spark-parser/default.nix
+++ b/pkgs/development/python-modules/spark-parser/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ click ];
 
   meta = with lib; {
-    description = "An Early-Algorithm Context-free grammar Parser";
+    description = "Early-Algorithm Context-free grammar Parser";
     mainProgram = "spark-parser-coverage";
     homepage = "https://github.com/rocky/python-spark";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/sparklines/default.nix b/pkgs/development/python-modules/sparklines/default.nix
index 15181f436e678..9b7c002e40fc7 100644
--- a/pkgs/development/python-modules/sparklines/default.nix
+++ b/pkgs/development/python-modules/sparklines/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "sparklines";
-  version = "0.4.2";
+  version = "0.5.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "deeplook";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "1hfxp5c4wbyddy7fgmnda819w3dia3i6gqb2323dr2z016p84r7l";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-oit1bDqP96wwfTRCV8V0N9P/+pkdW2WYOWT6u3lb4Xs=";
   };
 
   propagatedBuildInputs = [ future ];
diff --git a/pkgs/development/python-modules/sparse/default.nix b/pkgs/development/python-modules/sparse/default.nix
index b81bb12acf3f6..cfd6569472052 100644
--- a/pkgs/development/python-modules/sparse/default.nix
+++ b/pkgs/development/python-modules/sparse/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "sparse";
-  version = "0.15.1";
+  version = "0.15.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-lzrcuIqNuOPYBHlTMx4m0/ZKVlf5tGprhZxHZjw+75k=";
+    hash = "sha256-1LHFfST/D2Ty/VtalbSbf7hO0geibX1Yzidk3MXHK4Q=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/spatial-image/default.nix b/pkgs/development/python-modules/spatial-image/default.nix
index e226796808b9d..6209ebc4de5cc 100644
--- a/pkgs/development/python-modules/spatial-image/default.nix
+++ b/pkgs/development/python-modules/spatial-image/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "spatial-image";
-  version = "1.0.0";
+  version = "1.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "spatial-image";
     repo = "spatial-image";
     rev = "refs/tags/v${version}";
-    hash = "sha256-nCsxPhIgGmZZntYbhQ3KnzptcKdN288eNixbQDgECSQ=";
+    hash = "sha256-yIAqHhq2naTA8PdLOdrNSrhEOhRwlFD6x9dH4xDVt9Y=";
   };
 
   nativeBuildInputs = [ flit-core ];
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "spatial_image" ];
 
   meta = with lib; {
-    description = "A multi-dimensional spatial image data structure for scientific Python";
+    description = "Multi-dimensional spatial image data structure for scientific Python";
     homepage = "https://github.com/spatial-image/spatial-image";
     changelog = "https://github.com/spatial-image/spatial-image/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/spectral-cube/default.nix b/pkgs/development/python-modules/spectral-cube/default.nix
index c55e100a8002c..444761c461590 100644
--- a/pkgs/development/python-modules/spectral-cube/default.nix
+++ b/pkgs/development/python-modules/spectral-cube/default.nix
@@ -1,24 +1,31 @@
 {
   lib,
   stdenv,
-  aplpy,
-  astropy,
   buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+
+  # build-system
+  setuptools-scm,
+
+  # dependencies
+  astropy,
   casa-formats-io,
   dask,
-  fetchPypi,
   joblib,
+  looseversion,
+  radio-beam,
+
+  # checks
+  aplpy,
   pytest-astropy,
   pytestCheckHook,
-  pythonOlder,
-  radio-beam,
-  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "spectral-cube";
   version = "0.6.5";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -27,14 +34,17 @@ buildPythonPackage rec {
     hash = "sha256-gJzrr3+/FsQN/HHDERxf/NECArwOaTqFwmI/Q2Z9HTM=";
   };
 
-  nativeBuildInputs = [ setuptools-scm ];
+  patches = [ ./distutils-looseversion.patch ];
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools-scm ];
+
+  dependencies = [
     astropy
     casa-formats-io
-    radio-beam
-    joblib
     dask
+    joblib
+    looseversion
+    radio-beam
   ];
 
   nativeCheckInputs = [
@@ -54,11 +64,11 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "spectral_cube" ];
 
-  meta = with lib; {
+  meta = {
     description = "Library for reading and analyzing astrophysical spectral data cubes";
     homepage = "https://spectral-cube.readthedocs.io";
     changelog = "https://github.com/radio-astro-tools/spectral-cube/releases/tag/v${version}";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ smaret ];
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ smaret ];
   };
 }
diff --git a/pkgs/development/python-modules/spectral-cube/distutils-looseversion.patch b/pkgs/development/python-modules/spectral-cube/distutils-looseversion.patch
new file mode 100644
index 0000000000000..857d37a1a88ab
--- /dev/null
+++ b/pkgs/development/python-modules/spectral-cube/distutils-looseversion.patch
@@ -0,0 +1,152 @@
+diff --git a/spectral_cube/conftest.py b/spectral_cube/conftest.py
+index 0d7c158..6fac9b4 100644
+--- a/spectral_cube/conftest.py
++++ b/spectral_cube/conftest.py
+@@ -4,7 +4,7 @@
+ from __future__ import print_function, absolute_import, division
+ 
+ import os
+-from distutils.version import LooseVersion
++from looseversion import LooseVersion
+ from astropy.units.equivalencies import pixel_scale
+ 
+ # Import casatools and casatasks here if available as they can otherwise
+diff --git a/spectral_cube/lower_dimensional_structures.py b/spectral_cube/lower_dimensional_structures.py
+index f0e3745..1b1e1f8 100644
+--- a/spectral_cube/lower_dimensional_structures.py
++++ b/spectral_cube/lower_dimensional_structures.py
+@@ -526,7 +526,7 @@ class Projection(LowerDimensionalObject, SpatialCoordMixinClass,
+                               " installed.")
+ 
+         # Need version > 0.2 to work with cubes
+-        from distutils.version import LooseVersion
++        from looseversion import LooseVersion
+         if LooseVersion(version) < "0.3":
+             raise Warning("Requires version >=0.3 of reproject. The current "
+                           "version is: {}".format(version))
+diff --git a/spectral_cube/np_compat.py b/spectral_cube/np_compat.py
+index ed4a134..39aa320 100644
+--- a/spectral_cube/np_compat.py
++++ b/spectral_cube/np_compat.py
+@@ -1,7 +1,7 @@
+ from __future__ import print_function, absolute_import, division
+ 
+ import numpy as np
+-from distutils.version import LooseVersion
++from looseversion import LooseVersion
+ 
+ def allbadtonan(function):
+     """
+diff --git a/spectral_cube/spectral_cube.py b/spectral_cube/spectral_cube.py
+index 771a2d4..af752b4 100644
+--- a/spectral_cube/spectral_cube.py
++++ b/spectral_cube/spectral_cube.py
+@@ -57,7 +57,7 @@ from .spectral_axis import (determine_vconv_from_ctype, get_rest_value_from_wcs,
+                             doppler_beta, doppler_gamma, doppler_z)
+ from .io.core import SpectralCubeRead, SpectralCubeWrite
+ 
+-from distutils.version import LooseVersion
++from looseversion import LooseVersion
+ 
+ 
+ __all__ = ['BaseSpectralCube', 'SpectralCube', 'VaryingResolutionSpectralCube']
+@@ -2659,7 +2659,7 @@ class BaseSpectralCube(BaseNDClass, MaskableArrayMixinClass,
+ 
+         reproj_kwargs = kwargs
+         # Need version > 0.2 to work with cubes, >= 0.5 for memmap
+-        from distutils.version import LooseVersion
++        from looseversion import LooseVersion
+         if LooseVersion(version) < "0.5":
+             raise Warning("Requires version >=0.5 of reproject. The current "
+                           "version is: {}".format(version))
+diff --git a/spectral_cube/tests/test_masks.py b/spectral_cube/tests/test_masks.py
+index c38ba27..1d6895d 100644
+--- a/spectral_cube/tests/test_masks.py
++++ b/spectral_cube/tests/test_masks.py
+@@ -14,7 +14,7 @@ from .. import (BooleanArrayMask, LazyMask, LazyComparisonMask,
+                 FunctionMask, CompositeMask)
+ from ..masks import is_broadcastable_and_smaller, dims_to_skip, view_of_subset
+ 
+-from distutils.version import LooseVersion
++from looseversion import LooseVersion
+ 
+ 
+ def test_spectral_cube_mask():
+diff --git a/spectral_cube/tests/test_moments.py b/spectral_cube/tests/test_moments.py
+index 3043dd5..7e05c5b 100644
+--- a/spectral_cube/tests/test_moments.py
++++ b/spectral_cube/tests/test_moments.py
+@@ -1,7 +1,7 @@
+ from __future__ import print_function, absolute_import, division
+ 
+ import warnings
+-from distutils.version import LooseVersion
++from looseversion import LooseVersion
+ 
+ import pytest
+ import numpy as np
+diff --git a/spectral_cube/tests/test_performance.py b/spectral_cube/tests/test_performance.py
+index bdee040..a778abc 100644
+--- a/spectral_cube/tests/test_performance.py
++++ b/spectral_cube/tests/test_performance.py
+@@ -20,7 +20,7 @@ except ImportError:
+ 
+ # The comparison of Quantities in test_memory_usage
+ # fail with older versions of numpy
+-from distutils.version import LooseVersion
++from looseversion import LooseVersion
+ 
+ NPY_VERSION_CHECK = LooseVersion(np.version.version) >= "1.13"
+ 
+diff --git a/spectral_cube/tests/test_regrid.py b/spectral_cube/tests/test_regrid.py
+index 496ddd5..5b1fec7 100644
+--- a/spectral_cube/tests/test_regrid.py
++++ b/spectral_cube/tests/test_regrid.py
+@@ -18,7 +18,7 @@ except ImportError:
+ 
+ # The comparison of Quantities in test_memory_usage
+ # fail with older versions of numpy
+-from distutils.version import LooseVersion
++from looseversion import LooseVersion
+ 
+ NPY_VERSION_CHECK = LooseVersion(np.version.version) >= "1.13"
+ 
+diff --git a/spectral_cube/tests/test_spectral_cube.py b/spectral_cube/tests/test_spectral_cube.py
+index 9ebeb7d..93e5647 100644
+--- a/spectral_cube/tests/test_spectral_cube.py
++++ b/spectral_cube/tests/test_spectral_cube.py
+@@ -6,7 +6,7 @@ import operator
+ import itertools
+ import warnings
+ import mmap
+-from distutils.version import LooseVersion
++from looseversion import LooseVersion
+ import sys
+ 
+ import pytest
+diff --git a/spectral_cube/tests/test_subcubes.py b/spectral_cube/tests/test_subcubes.py
+index 6f74f68..217c324 100644
+--- a/spectral_cube/tests/test_subcubes.py
++++ b/spectral_cube/tests/test_subcubes.py
+@@ -1,7 +1,7 @@
+ from __future__ import print_function, absolute_import, division
+ 
+ import pytest
+-from distutils.version import LooseVersion
++from looseversion import LooseVersion
+ 
+ from astropy import units as u
+ from astropy import wcs
+diff --git a/spectral_cube/tests/test_visualization.py b/spectral_cube/tests/test_visualization.py
+index 85ea038..0ac8d58 100644
+--- a/spectral_cube/tests/test_visualization.py
++++ b/spectral_cube/tests/test_visualization.py
+@@ -1,7 +1,7 @@
+ from __future__ import print_function, absolute_import, division
+ 
+ import pytest
+-from distutils.version import LooseVersion
++from looseversion import LooseVersion
+ 
+ from .test_spectral_cube import cube_and_raw
+ 
diff --git a/pkgs/development/python-modules/speechbrain/default.nix b/pkgs/development/python-modules/speechbrain/default.nix
index e3b7c76dc38f6..4705db0866d5e 100644
--- a/pkgs/development/python-modules/speechbrain/default.nix
+++ b/pkgs/development/python-modules/speechbrain/default.nix
@@ -47,7 +47,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "speechbrain" ];
 
   meta = with lib; {
-    description = "A PyTorch-based Speech Toolkit";
+    description = "PyTorch-based Speech Toolkit";
     homepage = "https://speechbrain.github.io";
     changelog = "https://github.com/speechbrain/speechbrain/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/speg/default.nix b/pkgs/development/python-modules/speg/default.nix
index d9351287e48ae..d47382a5c213c 100644
--- a/pkgs/development/python-modules/speg/default.nix
+++ b/pkgs/development/python-modules/speg/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A PEG-based parser interpreter with memoization (in time)";
+    description = "PEG-based parser interpreter with memoization (in time)";
     homepage = "https://github.com/avakar/speg";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ xworld21 ];
diff --git a/pkgs/development/python-modules/sphinx-argparse/default.nix b/pkgs/development/python-modules/sphinx-argparse/default.nix
index 32f30925fefcd..8a88c346dbac4 100644
--- a/pkgs/development/python-modules/sphinx-argparse/default.nix
+++ b/pkgs/development/python-modules/sphinx-argparse/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sphinxarg" ];
 
   meta = {
-    description = "A sphinx extension that automatically documents argparse commands and options";
+    description = "Sphinx extension that automatically documents argparse commands and options";
     homepage = "https://github.com/ashb/sphinx-argparse";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ clacke ];
diff --git a/pkgs/development/python-modules/sphinx-basic-ng/default.nix b/pkgs/development/python-modules/sphinx-basic-ng/default.nix
index 1c29a543b5a04..9afde893cfde9 100644
--- a/pkgs/development/python-modules/sphinx-basic-ng/default.nix
+++ b/pkgs/development/python-modules/sphinx-basic-ng/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sphinx_basic_ng" ];
 
   meta = with lib; {
-    description = "A modernised skeleton for Sphinx themes";
+    description = "Modernised skeleton for Sphinx themes";
     homepage = "https://sphinx-basic-ng.readthedocs.io/en/latest/";
     license = licenses.mit;
     maintainers = with maintainers; [ Luflosi ];
diff --git a/pkgs/development/python-modules/sphinx-book-theme/default.nix b/pkgs/development/python-modules/sphinx-book-theme/default.nix
index 5aa26c22a8a46..5c65ccaeb4124 100644
--- a/pkgs/development/python-modules/sphinx-book-theme/default.nix
+++ b/pkgs/development/python-modules/sphinx-book-theme/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "sphinx-book-theme";
-  version = "1.1.2";
+  version = "1.1.3";
 
   format = "wheel";
 
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     dist = "py3";
     python = "py3";
     pname = "sphinx_book_theme";
-    hash = "sha256-zudERm/eSPUDArhRKRsgiqZ+cmyjG3o7+5tuahRWY+A=";
+    hash = "sha256-pVSpp6w4gZeah6KxD2M6oqVwbnIhihD3G+OLPJ6DGuk=";
   };
 
   propagatedBuildInputs = [
@@ -36,7 +36,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A clean book theme for scientific explanations and documentation with Sphinx";
+    description = "Clean book theme for scientific explanations and documentation with Sphinx";
     homepage = "https://github.com/executablebooks/sphinx-book-theme";
     changelog = "https://github.com/executablebooks/sphinx-book-theme/raw/v${version}/CHANGELOG.md";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/sphinx-codeautolink/default.nix b/pkgs/development/python-modules/sphinx-codeautolink/default.nix
index c6d03a6e92e50..9353abc077774 100644
--- a/pkgs/development/python-modules/sphinx-codeautolink/default.nix
+++ b/pkgs/development/python-modules/sphinx-codeautolink/default.nix
@@ -52,7 +52,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sphinx_codeautolink" ];
 
   meta = with lib; {
-    description = "A sphinx extension that makes code examples clickable";
+    description = "Sphinx extension that makes code examples clickable";
     homepage = "https://github.com/felix-hilden/sphinx-codeautolink";
     license = licenses.mit;
     maintainers = with maintainers; [ kaction ];
diff --git a/pkgs/development/python-modules/sphinx-copybutton/default.nix b/pkgs/development/python-modules/sphinx-copybutton/default.nix
index bc1a56ddd9d65..67216681b75e3 100644
--- a/pkgs/development/python-modules/sphinx-copybutton/default.nix
+++ b/pkgs/development/python-modules/sphinx-copybutton/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sphinx_copybutton" ];
 
   meta = with lib; {
-    description = "A small sphinx extension to add a \"copy\" button to code blocks";
+    description = "Small sphinx extension to add a \"copy\" button to code blocks";
     homepage = "https://github.com/executablebooks/sphinx-copybutton";
     license = licenses.mit;
     maintainers = with maintainers; [ Luflosi ];
diff --git a/pkgs/development/python-modules/sphinx-design/default.nix b/pkgs/development/python-modules/sphinx-design/default.nix
index 1c7db81d2b2c6..2b6fbde61ad3d 100644
--- a/pkgs/development/python-modules/sphinx-design/default.nix
+++ b/pkgs/development/python-modules/sphinx-design/default.nix
@@ -9,16 +9,16 @@
 
 buildPythonPackage rec {
   pname = "sphinx-design";
-  version = "0.5.0";
+  version = "0.6.0";
 
   format = "pyproject";
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit version;
     pname = "sphinx_design";
-    hash = "sha256-6OUTrOpvktFcbeOzTpVEWPJFuOdhtFtjlQ9lNzNSqwA=";
+    hash = "sha256-7I48XFn+1ASbOlouIJNg/qsxgpNGtfagx8NCuJQIIZI=";
   };
 
   nativeBuildInputs = [ flit-core ];
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sphinx_design" ];
 
   meta = with lib; {
-    description = "A sphinx extension for designing beautiful, view size responsive web components";
+    description = "Sphinx extension for designing beautiful, view size responsive web components";
     homepage = "https://github.com/executablebooks/sphinx-design";
     changelog = "https://github.com/executablebooks/sphinx-design/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/sphinx-external-toc/default.nix b/pkgs/development/python-modules/sphinx-external-toc/default.nix
index 3e2887aecb6b6..051da27792f8a 100644
--- a/pkgs/development/python-modules/sphinx-external-toc/default.nix
+++ b/pkgs/development/python-modules/sphinx-external-toc/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sphinx_external_toc" ];
 
   meta = with lib; {
-    description = "A sphinx extension that allows the site-map to be defined in a single YAML file";
+    description = "Sphinx extension that allows the site-map to be defined in a single YAML file";
     mainProgram = "sphinx-etoc";
     homepage = "https://github.com/executablebooks/sphinx-external-toc";
     changelog = "https://github.com/executablebooks/sphinx-external-toc/raw/v${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/sphinx-hoverxref/default.nix b/pkgs/development/python-modules/sphinx-hoverxref/default.nix
index 055d32ed8b8e7..643e3111311d1 100644
--- a/pkgs/development/python-modules/sphinx-hoverxref/default.nix
+++ b/pkgs/development/python-modules/sphinx-hoverxref/default.nix
@@ -58,7 +58,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "hoverxref" ];
 
   meta = with lib; {
-    description = "A sphinx extension for creating tooltips on the cross references of the documentation";
+    description = "Sphinx extension for creating tooltips on the cross references of the documentation";
     longDescription = ''
       sphinx-hoverxref is a Sphinx extension to show a floating window
       (tooltips or modal dialogues) on the cross references of the
diff --git a/pkgs/development/python-modules/sphinx-issues/default.nix b/pkgs/development/python-modules/sphinx-issues/default.nix
index 791cb37bdf5aa..ea8f4268fb973 100644
--- a/pkgs/development/python-modules/sphinx-issues/default.nix
+++ b/pkgs/development/python-modules/sphinx-issues/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/sloria/sphinx-issues";
-    description = "Sphinx extension for linking to your project's issue tracker.";
+    description = "Sphinx extension for linking to your project's issue tracker";
     license = licenses.mit;
     maintainers = with maintainers; [ kaction ];
   };
diff --git a/pkgs/development/python-modules/sphinx-material/default.nix b/pkgs/development/python-modules/sphinx-material/default.nix
index 766a7c25fee6a..c7faabcd5d8d5 100644
--- a/pkgs/development/python-modules/sphinx-material/default.nix
+++ b/pkgs/development/python-modules/sphinx-material/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sphinx_material" ];
 
   meta = with lib; {
-    description = "A material-based, responsive theme inspired by mkdocs-material";
+    description = "Material-based, responsive theme inspired by mkdocs-material";
     homepage = "https://bashtage.github.io/sphinx-material";
     license = licenses.mit;
     maintainers = with maintainers; [ FlorianFranzen ];
diff --git a/pkgs/development/python-modules/sphinx-mdinclude/default.nix b/pkgs/development/python-modules/sphinx-mdinclude/default.nix
index 905a4f88ac878..0ac245d87bfd5 100644
--- a/pkgs/development/python-modules/sphinx-mdinclude/default.nix
+++ b/pkgs/development/python-modules/sphinx-mdinclude/default.nix
@@ -40,7 +40,7 @@ buildPythonPackage rec {
     broken = true; # https://github.com/omnilib/sphinx-mdinclude/issues/22
     homepage = "https://github.com/omnilib/sphinx-mdinclude";
     changelog = "https://github.com/omnilib/sphinx-mdinclude/blob/v${version}/CHANGELOG.md";
-    description = "Sphinx extension for including or writing pages in Markdown format.";
+    description = "Sphinx extension for including or writing pages in Markdown format";
     longDescription = ''
       A simple Sphinx extension that enables including Markdown documents from within
       reStructuredText.
diff --git a/pkgs/development/python-modules/sphinx-notfound-page/default.nix b/pkgs/development/python-modules/sphinx-notfound-page/default.nix
index e4cebe21a5e24..58c81240c42a6 100644
--- a/pkgs/development/python-modules/sphinx-notfound-page/default.nix
+++ b/pkgs/development/python-modules/sphinx-notfound-page/default.nix
@@ -54,7 +54,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "notfound" ];
 
   meta = with lib; {
-    description = "A sphinx extension to create a custom 404 page with absolute URLs hardcoded";
+    description = "Sphinx extension to create a custom 404 page with absolute URLs hardcoded";
     homepage = "https://github.com/readthedocs/sphinx-notfound-page";
     changelog = "https://github.com/readthedocs/sphinx-notfound-page/blob/${version}/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/sphinx-prompt/default.nix b/pkgs/development/python-modules/sphinx-prompt/default.nix
index c37fba66c8d9e..2d7a0074ede84 100644
--- a/pkgs/development/python-modules/sphinx-prompt/default.nix
+++ b/pkgs/development/python-modules/sphinx-prompt/default.nix
@@ -58,7 +58,7 @@ buildPythonPackage rec {
   passthru.skipBulkUpdate = true;
 
   meta = with lib; {
-    description = "A sphinx extension for creating unselectable prompt";
+    description = "Sphinx extension for creating unselectable prompt";
     homepage = "https://github.com/sbrunner/sphinx-prompt";
     license = licenses.bsd3;
     maintainers = with maintainers; [ kaction ];
diff --git a/pkgs/development/python-modules/sphinx-rtd-dark-mode/default.nix b/pkgs/development/python-modules/sphinx-rtd-dark-mode/default.nix
index ba95c5aea22d6..98b962b1f4b79 100644
--- a/pkgs/development/python-modules/sphinx-rtd-dark-mode/default.nix
+++ b/pkgs/development/python-modules/sphinx-rtd-dark-mode/default.nix
@@ -40,7 +40,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sphinx_rtd_dark_mode" ];
 
   meta = with lib; {
-    description = "Adds a toggleable dark mode to the Read the Docs theme for Sphinx.";
+    description = "Adds a toggleable dark mode to the Read the Docs theme for Sphinx";
     homepage = "https://github.com/MrDogeBro/sphinx_rtd_dark_mode";
     changelog = "https://github.com/MrDogeBro/sphinx_rtd_dark_mode/releases/tag/v${version}";
     maintainers = with maintainers; [ wolfgangwalther ];
diff --git a/pkgs/development/python-modules/sphinx-tabs/default.nix b/pkgs/development/python-modules/sphinx-tabs/default.nix
index 4aa456e667cf5..9b8538408a7df 100644
--- a/pkgs/development/python-modules/sphinx-tabs/default.nix
+++ b/pkgs/development/python-modules/sphinx-tabs/default.nix
@@ -53,7 +53,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sphinx_tabs" ];
 
   meta = with lib; {
-    description = "A sphinx extension for creating tabbed content when building HTML.";
+    description = "Sphinx extension for creating tabbed content when building HTML";
     homepage = "https://github.com/executablebooks/sphinx-tabs";
     license = licenses.mit;
     maintainers = with maintainers; [ kaction ];
diff --git a/pkgs/development/python-modules/sphinx-version-warning/default.nix b/pkgs/development/python-modules/sphinx-version-warning/default.nix
index c98f4806d1286..6856bcd4fee7d 100644
--- a/pkgs/development/python-modules/sphinx-version-warning/default.nix
+++ b/pkgs/development/python-modules/sphinx-version-warning/default.nix
@@ -62,7 +62,7 @@ buildPythonPackage {
   pythonImportsCheck = [ "versionwarning" ];
 
   meta = with lib; {
-    description = "A sphinx extension to show a warning banner at the top of your documentation";
+    description = "Sphinx extension to show a warning banner at the top of your documentation";
     homepage = "https://github.com/humitos/sphinx-version-warning";
     changelog = "https://github.com/humitos/sphinx-version-warning/blob/${version}/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/sphinxawesome-theme/default.nix b/pkgs/development/python-modules/sphinxawesome-theme/default.nix
new file mode 100644
index 0000000000000..8d073b7fe123f
--- /dev/null
+++ b/pkgs/development/python-modules/sphinxawesome-theme/default.nix
@@ -0,0 +1,36 @@
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  poetry-core,
+  sphinx,
+  beautifulsoup4,
+  pythonRelaxDepsHook
+}:
+
+buildPythonPackage rec {
+  pname = "sphinxawesome-theme";
+  version = "5.2.0";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit version;
+    pname = "sphinxawesome_theme";
+    hash = "sha256-wk8eXAueR1OA0W/F8fO/2ElVgX2gkF2V9+IICdfNPF0=";
+  };
+
+  build-system = [ poetry-core pythonRelaxDepsHook ];
+  dependencies = [
+    sphinx
+    beautifulsoup4
+  ];
+
+  pythonRelaxDeps = [ "sphinx" ];
+
+  meta = {
+    description = "Awesome Sphinx Theme";
+    homepage = "https://sphinxawesome.xyz/";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [sigmanificient];
+  };
+}
diff --git a/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix b/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix
index e15f826c78764..c190e1e625a58 100644
--- a/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   pythonNamespaces = [ "sphinxcontrib" ];
 
   meta = with lib; {
-    description = "A Sphinx extension for BibTeX style citations";
+    description = "Sphinx extension for BibTeX style citations";
     homepage = "https://github.com/mcmtroffaes/sphinxcontrib-bibtex";
     license = licenses.bsd2;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/sphinxcontrib-devhelp/default.nix b/pkgs/development/python-modules/sphinxcontrib-devhelp/default.nix
index 64cb1b549b4b9..d2daaded5b90b 100644
--- a/pkgs/development/python-modules/sphinxcontrib-devhelp/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-devhelp/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   pythonNamespaces = [ "sphinxcontrib" ];
 
   meta = with lib; {
-    description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document.";
+    description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document";
     homepage = "https://github.com/sphinx-doc/sphinxcontrib-devhelp";
     license = licenses.bsd2;
     maintainers = teams.sphinx.members;
diff --git a/pkgs/development/python-modules/sphinxcontrib-ditaa/default.nix b/pkgs/development/python-modules/sphinxcontrib-ditaa/default.nix
new file mode 100644
index 0000000000000..db263eab0f5b2
--- /dev/null
+++ b/pkgs/development/python-modules/sphinxcontrib-ditaa/default.nix
@@ -0,0 +1,42 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  unittestCheckHook,
+  setuptools,
+  sphinx,
+  ditaa,
+}:
+
+buildPythonPackage rec {
+  pname = "sphinxcontrib-ditaa";
+  version = "1.0.2";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-V/LhOwWbOP3olYC+ypFqxsp0VrLXBsPd6p3UiQ5fW9M=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [
+    sphinx
+    ditaa
+  ];
+
+  # no tests provided
+  doCheck = false;
+
+  # ? needs docutils exported as runtime dep
+  #pythonImportsCheck = [ "sphinxcontrib.ditaa" ];
+
+  pythonNamespaces = [ "sphinxcontrib" ];
+
+  meta = {
+    description = "Sphinx ditaa extension";
+    homepage = "https://pypi.org/project/sphinxcontrib-ditaa";
+    maintainers = with lib.maintainers; [ rconybea ];
+    license = lib.licenses.bsd2;
+  };
+}
diff --git a/pkgs/development/python-modules/sphinxcontrib-jsmath/default.nix b/pkgs/development/python-modules/sphinxcontrib-jsmath/default.nix
index bf30b5f8f3936..9ce7c66abc997 100644
--- a/pkgs/development/python-modules/sphinxcontrib-jsmath/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-jsmath/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   pythonNamespaces = [ "sphinxcontrib" ];
 
   meta = with lib; {
-    description = "sphinxcontrib-jsmath is a sphinx extension which renders display math in HTML via JavaScript.";
+    description = "sphinxcontrib-jsmath is a sphinx extension which renders display math in HTML via JavaScript";
     homepage = "https://github.com/sphinx-doc/sphinxcontrib-jsmath";
     license = licenses.bsd0;
     maintainers = teams.sphinx.members;
diff --git a/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix b/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
index eebc7ed12ba04..1076db106fcb9 100644
--- a/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
@@ -3,7 +3,6 @@
   buildPythonPackage,
   deepmerge,
   fetchPypi,
-  fetchpatch,
   isPy27,
   setuptools-scm,
   jsonschema,
diff --git a/pkgs/development/python-modules/sphinxcontrib-plantuml/default.nix b/pkgs/development/python-modules/sphinxcontrib-plantuml/default.nix
index 6f9a3ecf2d49e..0d4735caa6d02 100644
--- a/pkgs/development/python-modules/sphinxcontrib-plantuml/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-plantuml/default.nix
@@ -2,6 +2,7 @@
   lib,
   buildPythonPackage,
   fetchPypi,
+  setuptools,
   sphinx,
   plantuml,
   pythonOlder,
@@ -9,20 +10,23 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-plantuml";
-  version = "0.29";
-  format = "setuptools";
+  version = "0.30";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-l6Tyomr5HbiHcMz4o7LgMwW82n7EGn+Wn8jLJ7hKPEQ=";
+    hash = "sha256-KhJmykO930RkCuRBBwA99EkN4rPDFUoNYnz7Y+mhab8=";
   };
 
-  propagatedBuildInputs = [
-    sphinx
-    plantuml
-  ];
+  build-system = [ setuptools ];
+
+  dependencies = [ sphinx ];
+
+  propagatedBuildInputs = [ plantuml ];
+
+  pythonImportsCheck = [ "sphinxcontrib.plantuml" ];
 
   # No tests included.
   doCheck = false;
diff --git a/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix b/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix
index 125dfa1a0e66d..402432dd1e498 100644
--- a/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   pythonNamespaces = [ "sphinxcontrib" ];
 
   meta = with lib; {
-    description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document.";
+    description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document";
     homepage = "https://github.com/sphinx-doc/sphinxcontrib-qthelp";
     license = licenses.bsd2;
     maintainers = teams.sphinx.members;
diff --git a/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix b/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix
index 5403d7fb01b58..99b4d5e5867f4 100644
--- a/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   pythonNamespaces = [ "sphinxcontrib" ];
 
   meta = with lib; {
-    description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle).";
+    description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)";
     homepage = "https://github.com/sphinx-doc/sphinxcontrib-serializinghtml";
     license = licenses.bsd2;
     maintainers = teams.sphinx.members;
diff --git a/pkgs/development/python-modules/sphinxcontrib-wavedrom/default.nix b/pkgs/development/python-modules/sphinxcontrib-wavedrom/default.nix
index 746bdf78a1794..45cf5dda26cf5 100644
--- a/pkgs/development/python-modules/sphinxcontrib-wavedrom/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-wavedrom/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   pythonNamespaces = [ "sphinxcontrib" ];
 
   meta = with lib; {
-    description = "A sphinx extension that allows including wavedrom diagrams by using its text-based representation";
+    description = "Sphinx extension that allows including wavedrom diagrams by using its text-based representation";
     homepage = "https://github.com/bavovanachte/sphinx-wavedrom";
     license = licenses.mit;
     maintainers = with maintainers; [ fsagbuya ];
diff --git a/pkgs/development/python-modules/spinners/default.nix b/pkgs/development/python-modules/spinners/default.nix
index 15fa7bd0a560a..a5dcf83a68c12 100644
--- a/pkgs/development/python-modules/spinners/default.nix
+++ b/pkgs/development/python-modules/spinners/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "spinners" ];
 
   meta = with lib; {
-    description = "Spinners for the Terminal.";
+    description = "Spinners for the Terminal";
     homepage = "https://github.com/manrajgrover/py-spinners";
     license = licenses.mit;
     maintainers = with maintainers; [ urbas ];
diff --git a/pkgs/development/python-modules/spsdk/default.nix b/pkgs/development/python-modules/spsdk/default.nix
index fdc74f982c293..0e0d56aa027e9 100644
--- a/pkgs/development/python-modules/spsdk/default.nix
+++ b/pkgs/development/python-modules/spsdk/default.nix
@@ -59,6 +59,7 @@ buildPythonPackage rec {
     "click"
     "cryptography"
     "platformdirs"
+    "requests"
     "typing-extensions"
   ];
 
diff --git a/pkgs/development/python-modules/spyder-kernels/default.nix b/pkgs/development/python-modules/spyder-kernels/default.nix
index fdabd3466b923..f872e2d2bcee6 100644
--- a/pkgs/development/python-modules/spyder-kernels/default.nix
+++ b/pkgs/development/python-modules/spyder-kernels/default.nix
@@ -1,6 +1,7 @@
 {
   lib,
   buildPythonPackage,
+  setuptools,
   cloudpickle,
   fetchPypi,
   ipykernel,
@@ -15,17 +16,20 @@
 
 buildPythonPackage rec {
   pname = "spyder-kernels";
-  version = "2.5.1";
-  format = "setuptools";
+  version = "2.5.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-BQQqP5eyXxfN+o11AR/Xmq8CdSM0ip3/8PWiC92wubA=";
+    pname = "spyder_kernels";
+    inherit version;
+    hash = "sha256-cfJSkA4CsDlIIMxwSfie1yUkP2/M9kC3bdMpIDxBOWA=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     cloudpickle
     ipykernel
     ipython
@@ -36,23 +40,17 @@ buildPythonPackage rec {
     wurlitzer
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "ipykernel>=6.16.1,<7" "ipykernel" \
-      --replace "ipython>=7.31.1,<8" "ipython"
-  '';
-
   # No tests
   doCheck = false;
 
   pythonImportsCheck = [ "spyder_kernels" ];
 
-  meta = with lib; {
+  meta = {
     description = "Jupyter kernels for Spyder's console";
     homepage = "https://docs.spyder-ide.org/current/ipythonconsole.html";
     downloadPage = "https://github.com/spyder-ide/spyder-kernels/releases";
     changelog = "https://github.com/spyder-ide/spyder-kernels/blob/v${version}/CHANGELOG.md";
-    license = licenses.mit;
-    maintainers = with maintainers; [ gebner ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ gebner ];
   };
 }
diff --git a/pkgs/development/python-modules/spyder/default.nix b/pkgs/development/python-modules/spyder/default.nix
index 70a882fa68abe..eafc959eb8820 100644
--- a/pkgs/development/python-modules/spyder/default.nix
+++ b/pkgs/development/python-modules/spyder/default.nix
@@ -44,14 +44,14 @@
 
 buildPythonPackage rec {
   pname = "spyder";
-  version = "5.5.4";
+  version = "5.5.5";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-UiIyoFREfd3gV0uhSgZ8TVFQiP3yprrBZDOm3+8Dge0=";
+    hash = "sha256-Y+JZO/LfWi1QzoSSV1uDI4zxLcte0HwVMNmBK0aXgd4=";
   };
 
   patches = [ ./dont-clear-pythonpath.patch ];
@@ -103,15 +103,6 @@ buildPythonPackage rec {
   # There is no test for spyder
   doCheck = false;
 
-  postPatch = ''
-    # Remove dependency on pyqtwebengine
-    # This is still part of the pyqt 5.11 version we have in nixpkgs
-    sed -i /pyqtwebengine/d setup.py
-    substituteInPlace setup.py \
-      --replace "qdarkstyle>=3.0.2,<3.1.0" "qdarkstyle" \
-      --replace "ipython>=7.31.1,<8.0.0" "ipython"
-  '';
-
   postInstall = ''
     # Add Python libs to env so Spyder subprocesses
     # created to run compute kernels don't fail with ImportErrors
@@ -124,7 +115,7 @@ buildPythonPackage rec {
     makeWrapperArgs+=("''${qtWrapperArgs[@]}")
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Scientific python development environment";
     mainProgram = "spyder";
     longDescription = ''
@@ -135,8 +126,8 @@ buildPythonPackage rec {
     homepage = "https://www.spyder-ide.org/";
     downloadPage = "https://github.com/spyder-ide/spyder/releases";
     changelog = "https://github.com/spyder-ide/spyder/blob/master/CHANGELOG.md";
-    license = licenses.mit;
-    maintainers = with maintainers; [ gebner ];
-    platforms = platforms.linux;
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ gebner ];
+    platforms = lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/python-modules/sqids/default.nix b/pkgs/development/python-modules/sqids/default.nix
index a407afb415e0c..c9e587555700a 100644
--- a/pkgs/development/python-modules/sqids/default.nix
+++ b/pkgs/development/python-modules/sqids/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://sqids.org/python";
-    description = "A library that lets you generate short YouTube-looking IDs from numbers";
+    description = "Library that lets you generate short YouTube-looking IDs from numbers";
     license = with licenses; mit;
     maintainers = with maintainers; [ panicgh ];
   };
diff --git a/pkgs/development/python-modules/sqlalchemy-citext/default.nix b/pkgs/development/python-modules/sqlalchemy-citext/default.nix
index 42ec3ba43aee1..0c0d631bf1512 100644
--- a/pkgs/development/python-modules/sqlalchemy-citext/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy-citext/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "citext" ];
 
   meta = with lib; {
-    description = "A sqlalchemy plugin that allows postgres use of CITEXT";
+    description = "Sqlalchemy plugin that allows postgres use of CITEXT";
     homepage = "https://github.com/mahmoudimus/sqlalchemy-citext";
     license = licenses.mit;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/sqlalchemy-utils/default.nix b/pkgs/development/python-modules/sqlalchemy-utils/default.nix
index 36f8b3ad9c927..e4865cd091af8 100644
--- a/pkgs/development/python-modules/sqlalchemy-utils/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy-utils/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchPypi,
-  fetchpatch,
   pythonOlder,
 
   # runtime
diff --git a/pkgs/development/python-modules/sqlalchemy/1_4.nix b/pkgs/development/python-modules/sqlalchemy/1_4.nix
index 17d3b2d6db384..376570156dbdf 100644
--- a/pkgs/development/python-modules/sqlalchemy/1_4.nix
+++ b/pkgs/development/python-modules/sqlalchemy/1_4.nix
@@ -102,7 +102,7 @@ buildPythonPackage rec {
     changelog = "https://github.com/sqlalchemy/sqlalchemy/releases/tag/rel_${
       builtins.replaceStrings [ "." ] [ "_" ] version
     }";
-    description = "The Database Toolkit for Python";
+    description = "Database Toolkit for Python";
     homepage = "https://github.com/sqlalchemy/sqlalchemy";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/sqlalchemy/default.nix b/pkgs/development/python-modules/sqlalchemy/default.nix
index 4a8c781e2e922..0c9ddbe507445 100644
--- a/pkgs/development/python-modules/sqlalchemy/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy/default.nix
@@ -114,7 +114,7 @@ buildPythonPackage rec {
     changelog = "https://github.com/sqlalchemy/sqlalchemy/releases/tag/rel_${
       builtins.replaceStrings [ "." ] [ "_" ] version
     }";
-    description = "The Python SQL toolkit and Object Relational Mapper";
+    description = "Python SQL toolkit and Object Relational Mapper";
     homepage = "http://www.sqlalchemy.org/";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/sqlglot/default.nix b/pkgs/development/python-modules/sqlglot/default.nix
index c64ca9588c774..f146f9d8a7f5e 100644
--- a/pkgs/development/python-modules/sqlglot/default.nix
+++ b/pkgs/development/python-modules/sqlglot/default.nix
@@ -47,7 +47,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sqlglot" ];
 
   meta = with lib; {
-    description = "A no dependency Python SQL parser, transpiler, and optimizer";
+    description = "No dependency Python SQL parser, transpiler, and optimizer";
     homepage = "https://github.com/tobymao/sqlglot";
     changelog = "https://github.com/tobymao/sqlglot/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/sqlite-anyio/default.nix b/pkgs/development/python-modules/sqlite-anyio/default.nix
index 80926de7f47a9..bc9fd2ffcb230 100644
--- a/pkgs/development/python-modules/sqlite-anyio/default.nix
+++ b/pkgs/development/python-modules/sqlite-anyio/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "sqlite-anyio";
-  version = "0.2.0";
+  version = "0.2.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "davidbrochart";
     repo = "sqlite-anyio";
     rev = "refs/tags/v${version}";
-    hash = "sha256-6khHta7Rzp3g8G/xZnsNZuURFB35JyHz04NTzNJIiBw=";
+    hash = "sha256-lOUGT9SUxvzTvTDpiwx7Oa+0o3/lnrJ9xxMYFQAmFZk=";
   };
 
   build-system = [ hatchling ];
@@ -37,6 +37,8 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Asynchronous client for SQLite using AnyIO";
     homepage = "https://github.com/davidbrochart/sqlite-anyio";
+    changelog = "https://github.com/davidbrochart/sqlite-anyio/releases/tag/v${version}";
     license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/sqlite-migrate/default.nix b/pkgs/development/python-modules/sqlite-migrate/default.nix
index 28f7726f06387..8c1d58d9dc017 100644
--- a/pkgs/development/python-modules/sqlite-migrate/default.nix
+++ b/pkgs/development/python-modules/sqlite-migrate/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sqlite_migrate" ];
 
   meta = with lib; {
-    description = "A simple database migration system for SQLite, based on sqlite-utils";
+    description = "Simple database migration system for SQLite, based on sqlite-utils";
     homepage = "https://github.com/simonw/sqlite-migrate";
     changelog = "https://github.com/simonw/sqlite-migrate/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/sqlite-utils/default.nix b/pkgs/development/python-modules/sqlite-utils/default.nix
index 4719a7d71417f..99800ceadbcfc 100644
--- a/pkgs/development/python-modules/sqlite-utils/default.nix
+++ b/pkgs/development/python-modules/sqlite-utils/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchPypi,
-  fetchpatch,
   pythonOlder,
   click,
   click-default-group,
diff --git a/pkgs/development/python-modules/sqlmodel/default.nix b/pkgs/development/python-modules/sqlmodel/default.nix
index 55bf943264de7..cad54edc8ebbb 100644
--- a/pkgs/development/python-modules/sqlmodel/default.nix
+++ b/pkgs/development/python-modules/sqlmodel/default.nix
@@ -1,20 +1,23 @@
 {
   lib,
   buildPythonPackage,
+  black,
+  jinja2,
   dirty-equals,
   fastapi,
   fetchFromGitHub,
+  fetchpatch,
   pdm-backend,
   pydantic,
   pytest-asyncio,
-  pytest7CheckHook,
+  pytestCheckHook,
   pythonOlder,
   sqlalchemy,
 }:
 
 buildPythonPackage rec {
   pname = "sqlmodel";
-  version = "0.0.18";
+  version = "0.0.19";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -23,9 +26,17 @@ buildPythonPackage rec {
     owner = "tiangolo";
     repo = "sqlmodel";
     rev = "refs/tags/${version}";
-    hash = "sha256-2ens+wEFJThccBTBeBy8j1AzKJtebg3dJTGG6+Cpt+Q=";
+    hash = "sha256-Fr/umAgTbcfBtui+V/ncp4no+pquLExB/dInSFhsgGc=";
   };
 
+  patches = [
+    (fetchpatch { # https://github.com/tiangolo/sqlmodel/pull/969
+      name = "passthru-environ-variables.patch";
+      url = "https://github.com/tiangolo/sqlmodel/pull/969/commits/42d33049e9e4182b78914ad41d1e3d30125126ba.patch";
+      hash = "sha256-dPuFCFUnmTpduxn45tE8XUP0Jlwjwmwe+zFaKSganOg=";
+    })
+  ];
+
   build-system = [ pdm-backend ];
 
   dependencies = [
@@ -34,10 +45,12 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
+    black
+    jinja2
     dirty-equals
     fastapi
     pytest-asyncio
-    pytest7CheckHook
+    pytestCheckHook
   ];
 
   pythonImportsCheck = [ "sqlmodel" ];
diff --git a/pkgs/development/python-modules/srt/default.nix b/pkgs/development/python-modules/srt/default.nix
index ba2eff598fd40..d4ae26479ca60 100644
--- a/pkgs/development/python-modules/srt/default.nix
+++ b/pkgs/development/python-modules/srt/default.nix
@@ -25,8 +25,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/cdown/srt";
-    description = "A tiny but featureful Python library for parsing, modifying, and composing SRT files";
+    description = "Tiny but featureful Python library for parsing, modifying, and composing SRT files";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ friedelino ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/ssdpy/default.nix b/pkgs/development/python-modules/ssdpy/default.nix
index 33c153f4d01b3..8cadb4ec74fa9 100644
--- a/pkgs/development/python-modules/ssdpy/default.nix
+++ b/pkgs/development/python-modules/ssdpy/default.nix
@@ -41,7 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/MoshiBin/ssdpy/releases/tag/${version}";
-    description = "A lightweight, compatible SSDP library for Python";
+    description = "Lightweight, compatible SSDP library for Python";
     homepage = "https://github.com/MoshiBin/ssdpy";
     license = licenses.mit;
     maintainers = with maintainers; [ mjm ];
diff --git a/pkgs/development/python-modules/sse-starlette/default.nix b/pkgs/development/python-modules/sse-starlette/default.nix
index d2fc7de38bb17..baeaf9436c5ca 100644
--- a/pkgs/development/python-modules/sse-starlette/default.nix
+++ b/pkgs/development/python-modules/sse-starlette/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "sse-starlette";
-  version = "2.1.0";
+  version = "2.1.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "sysid";
     repo = "sse-starlette";
     rev = "refs/tags/v${version}";
-    hash = "sha256-gBkEs1jSKIOme2rbLf+pM3jFDgJkxyU92q+GsUsp8Eo=";
+    hash = "sha256-/aL0IkMdHNt7Ms1Et+xf00B9FGI31FuHAiJbxVMm3w0=";
   };
 
   build-system = [ pdm-backend ];
diff --git a/pkgs/development/python-modules/sslib/default.nix b/pkgs/development/python-modules/sslib/default.nix
index e9d11ee01e8e6..422a775e1ef51 100644
--- a/pkgs/development/python-modules/sslib/default.nix
+++ b/pkgs/development/python-modules/sslib/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/jqueiroz/python-sslib";
-    description = "A Python3 library for sharing secrets";
+    description = "Python3 library for sharing secrets";
     license = licenses.mit;
     maintainers = with maintainers; [ jqueiroz ];
   };
diff --git a/pkgs/development/python-modules/starlette-wtf/default.nix b/pkgs/development/python-modules/starlette-wtf/default.nix
index 8f735518d717a..9396dba186d76 100644
--- a/pkgs/development/python-modules/starlette-wtf/default.nix
+++ b/pkgs/development/python-modules/starlette-wtf/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A simple tool for integrating Starlette and WTForms";
+    description = "Simple tool for integrating Starlette and WTForms";
     changelog = "https://github.com/muicss/starlette-wtf/blob/v${version}/CHANGELOG.md";
     homepage = "https://github.com/muicss/starlette-wtf";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/starlette/default.nix b/pkgs/development/python-modules/starlette/default.nix
index 0fa7ded655d29..ef5ed3f808a9a 100644
--- a/pkgs/development/python-modules/starlette/default.nix
+++ b/pkgs/development/python-modules/starlette/default.nix
@@ -75,7 +75,7 @@ buildPythonPackage rec {
     changelog = "https://www.starlette.io/release-notes/#${lib.replaceStrings [ "." ] [ "" ] version}";
     downloadPage = "https://github.com/encode/starlette";
     homepage = "https://www.starlette.io/";
-    description = "The little ASGI framework that shines";
+    description = "Little ASGI framework that shines";
     license = licenses.bsd3;
     maintainers = with maintainers; [ wd15 ];
   };
diff --git a/pkgs/development/python-modules/stashy/default.nix b/pkgs/development/python-modules/stashy/default.nix
index 7ff9f137f1f65..96903ff8e51f1 100644
--- a/pkgs/development/python-modules/stashy/default.nix
+++ b/pkgs/development/python-modules/stashy/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "stashy" ];
 
   meta = with lib; {
-    description = "Python client for the Atlassian Bitbucket Server (formerly known as Stash) REST API.";
+    description = "Python client for the Atlassian Bitbucket Server (formerly known as Stash) REST API";
     homepage = "https://github.com/cosmin/stashy";
     license = licenses.asl20;
     maintainers = with maintainers; [ mupdt ];
diff --git a/pkgs/development/python-modules/static3/default.nix b/pkgs/development/python-modules/static3/default.nix
index 0658238861e1c..050fb2119daee 100644
--- a/pkgs/development/python-modules/static3/default.nix
+++ b/pkgs/development/python-modules/static3/default.nix
@@ -44,7 +44,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/rmohr/static3/releases/tag/v${version}";
-    description = "A really simple WSGI way to serve static (or mixed) content";
+    description = "Really simple WSGI way to serve static (or mixed) content";
     mainProgram = "static";
     homepage = "https://github.com/rmohr/static3";
     license = licenses.lgpl21Only;
diff --git a/pkgs/development/python-modules/staticjinja/default.nix b/pkgs/development/python-modules/staticjinja/default.nix
index 128d5ad7e0e93..2967f11b9aa67 100644
--- a/pkgs/development/python-modules/staticjinja/default.nix
+++ b/pkgs/development/python-modules/staticjinja/default.nix
@@ -59,7 +59,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A library and cli tool that makes it easy to build static sites using Jinja2";
+    description = "Library and cli tool that makes it easy to build static sites using Jinja2";
     mainProgram = "staticjinja";
     homepage = "https://staticjinja.readthedocs.io/en/latest/";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/staticmap/default.nix b/pkgs/development/python-modules/staticmap/default.nix
index 5a1194f577bdf..2136f016fc2c0 100644
--- a/pkgs/development/python-modules/staticmap/default.nix
+++ b/pkgs/development/python-modules/staticmap/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A small, python-based library for creating map images with lines and markers";
+    description = "Small, python-based library for creating map images with lines and markers";
     homepage = "https://pypi.org/project/staticmap/";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ traxys ];
diff --git a/pkgs/development/python-modules/statistics/default.nix b/pkgs/development/python-modules/statistics/default.nix
index bdbf1895198f9..4f43cb0120b01 100644
--- a/pkgs/development/python-modules/statistics/default.nix
+++ b/pkgs/development/python-modules/statistics/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = {
-    description = "A Python 2.* port of 3.4 Statistics Module";
+    description = "Python 2.* port of 3.4 Statistics Module";
     homepage = "https://github.com/digitalemagine/py-statistics";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ ];
diff --git a/pkgs/development/python-modules/statsd/default.nix b/pkgs/development/python-modules/statsd/default.nix
index 146044070985e..1f6e5df951125 100644
--- a/pkgs/development/python-modules/statsd/default.nix
+++ b/pkgs/development/python-modules/statsd/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     maintainers = with maintainers; [ domenkozar ];
-    description = "A simple statsd client";
+    description = "Simple statsd client";
     license = licenses.mit;
     homepage = "https://github.com/jsocol/pystatsd";
   };
diff --git a/pkgs/development/python-modules/std-uritemplate/default.nix b/pkgs/development/python-modules/std-uritemplate/default.nix
index 5b5d2faa301c7..83c17826ff281 100644
--- a/pkgs/development/python-modules/std-uritemplate/default.nix
+++ b/pkgs/development/python-modules/std-uritemplate/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "std-uritemplate";
-  version = "0.0.57";
+  version = "1.0.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "std_uritemplate";
     inherit version;
-    hash = "sha256-9K3HF67BOFYuZSuV2nT8aBWpQiMdlxMUhWuB9DTBuUw=";
+    hash = "sha256-Mf7o2nDbj663cdC6OfXIK/newY1NKnUpWTniowXlNvE=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/stdlib-list/default.nix b/pkgs/development/python-modules/stdlib-list/default.nix
index f045376a1c9f0..9c739a6ec1997 100644
--- a/pkgs/development/python-modules/stdlib-list/default.nix
+++ b/pkgs/development/python-modules/stdlib-list/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/pypi/stdlib-list/releases/tag/v${version}";
-    description = "A list of Python Standard Libraries";
+    description = "List of Python Standard Libraries";
     homepage = "https://github.com/jackmaney/python-stdlib-list";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/steamship/default.nix b/pkgs/development/python-modules/steamship/default.nix
index 0a01663b83ebf..b1f2fb5001956 100644
--- a/pkgs/development/python-modules/steamship/default.nix
+++ b/pkgs/development/python-modules/steamship/default.nix
@@ -50,7 +50,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "steamship" ];
 
   meta = with lib; {
-    description = "The fastest way to add language AI to your product";
+    description = "Fastest way to add language AI to your product";
     homepage = "https://www.steamship.com/";
     changelog = "https://github.com/steamship-core/python-client/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/stemming/default.nix b/pkgs/development/python-modules/stemming/default.nix
index 005f34c59f033..98ef1eea9b092 100644
--- a/pkgs/development/python-modules/stemming/default.nix
+++ b/pkgs/development/python-modules/stemming/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage {
   pythonImportsCheck = [ "stemming" ];
 
   meta = with lib; {
-    description = "Python implementations of various stemming algorithms.";
+    description = "Python implementations of various stemming algorithms";
     homepage = "https://github.com/nmstoker/stemming";
     license = licenses.unlicense;
     maintainers = with maintainers; [ happysalada ];
diff --git a/pkgs/development/python-modules/stestr/default.nix b/pkgs/development/python-modules/stestr/default.nix
index 499084b67e493..57c1723b86c30 100644
--- a/pkgs/development/python-modules/stestr/default.nix
+++ b/pkgs/development/python-modules/stestr/default.nix
@@ -56,7 +56,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "stestr" ];
 
   meta = with lib; {
-    description = "A parallel Python test runner built around subunit";
+    description = "Parallel Python test runner built around subunit";
     mainProgram = "stestr";
     homepage = "https://github.com/mtreinish/stestr";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/stim/default.nix b/pkgs/development/python-modules/stim/default.nix
index bbb7904ec5dae..9d1cda9a761fb 100644
--- a/pkgs/development/python-modules/stim/default.nix
+++ b/pkgs/development/python-modules/stim/default.nix
@@ -64,7 +64,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A tool for high performance simulation and analysis of quantum stabilizer circuits, especially quantum error correction (QEC) circuits";
+    description = "Tool for high performance simulation and analysis of quantum stabilizer circuits, especially quantum error correction (QEC) circuits";
     mainProgram = "stim";
     homepage = "https://github.com/quantumlib/stim";
     changelog = "https://github.com/quantumlib/Stim/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/stm32loader/default.nix b/pkgs/development/python-modules/stm32loader/default.nix
index 9434e25ecc31d..6578e3c119575 100644
--- a/pkgs/development/python-modules/stm32loader/default.nix
+++ b/pkgs/development/python-modules/stm32loader/default.nix
@@ -50,6 +50,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/florisla/stm32loader";
     changelog = "https://github.com/florisla/stm32loader/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ emily ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/stone/default.nix b/pkgs/development/python-modules/stone/default.nix
index 5f374859e0170..174cca93a355b 100644
--- a/pkgs/development/python-modules/stone/default.nix
+++ b/pkgs/development/python-modules/stone/default.nix
@@ -1,11 +1,12 @@
 {
-  lib,
   buildPythonPackage,
   fetchFromGitHub,
+  fetchpatch,
+  lib,
   mock,
+  packaging,
   ply,
   pytestCheckHook,
-  pythonAtLeast,
   pythonOlder,
   setuptools,
   six,
@@ -16,8 +17,23 @@ buildPythonPackage rec {
   version = "3.3.6";
   pyproject = true;
 
-  # distutils removal, https://github.com/dropbox/stone/issues/323
-  disabled = pythonOlder "3.7" || pythonAtLeast "3.12";
+  disabled = pythonOlder "3.7";
+
+  patches = [
+    # fix distutils issue
+    # fix versions in tests to conform pep 440
+    # See https://github.com/dropbox/stone/pull/334
+    (fetchpatch {
+      name = "no-distutils.patch";
+      url = "https://github.com/dropbox/stone/commit/f772d8d3b7e2ce62b14b4fb208a478bc8e54c7f2.patch";
+      hash = "sha256-SH4gG5S13n/pXppm62LvH9poGfeQGGonW7bkzdYh73Q=";
+    })
+    (fetchpatch {
+      name = "fix-test-pep-440.patch";
+      url = "https://github.com/dropbox/stone/commit/f36de56b1f87eae61829258b2f16aa8319bbcc5c.patch";
+      hash = "sha256-sBJukNk02RmQQza1qhLAkyx1OJRck0/zQOeRaXD9tkY=";
+    })
+  ];
 
   src = fetchFromGitHub {
     owner = "dropbox";
@@ -36,6 +52,7 @@ buildPythonPackage rec {
   dependencies = [
     ply
     six
+    packaging
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/stransi/default.nix b/pkgs/development/python-modules/stransi/default.nix
index 02c7d82275cb2..52e6ee474549f 100644
--- a/pkgs/development/python-modules/stransi/default.nix
+++ b/pkgs/development/python-modules/stransi/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "stransi" ];
 
   meta = with lib; {
-    description = "A lightweight Python parser library for ANSI escape code sequences";
+    description = "Lightweight Python parser library for ANSI escape code sequences";
     homepage = "https://github.com/getcuia/stransi";
     changelog = "https://github.com/getcuia/stransi/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/strategies/default.nix b/pkgs/development/python-modules/strategies/default.nix
index 3af0ab14e23a2..07aa6b8f00db3 100644
--- a/pkgs/development/python-modules/strategies/default.nix
+++ b/pkgs/development/python-modules/strategies/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytest ];
 
   meta = {
-    description = "A Python library for control flow programming";
+    description = "Python library for control flow programming";
     homepage = "https://github.com/logpy/strategies";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ suhr ];
diff --git a/pkgs/development/python-modules/strawberry-graphql/default.nix b/pkgs/development/python-modules/strawberry-graphql/default.nix
index 92658dce50867..0ec6c7bfc616e 100644
--- a/pkgs/development/python-modules/strawberry-graphql/default.nix
+++ b/pkgs/development/python-modules/strawberry-graphql/default.nix
@@ -15,6 +15,7 @@
   flask,
   freezegun,
   graphql-core,
+  inline-snapshot,
   libcst,
   opentelemetry-api,
   opentelemetry-sdk,
@@ -43,16 +44,16 @@
 
 buildPythonPackage rec {
   pname = "strawberry-graphql";
-  version = "0.219.2";
-  format = "pyproject";
+  version = "0.235.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "strawberry-graphql";
     repo = "strawberry";
     rev = "refs/tags/${version}";
-    hash = "sha256-uIUETjzuDnlQp6wM7uxyLRSMT5uyrXFrI9NilcjP0BU=";
+    hash = "sha256-M9GwddyLfwGhA1z+imEOiNrXYFM2gFT9IcFf/8cRHAE=";
   };
 
   patches = [
@@ -62,22 +63,16 @@ buildPythonPackage rec {
       url = "https://github.com/strawberry-graphql/strawberry/commit/710bb96f47c244e78fc54c921802bcdb48f5f421.patch";
       hash = "sha256-ekUZ2hDPCqwXp9n0YjBikwSkhCmVKUzQk7LrPECcD7Y=";
     })
-    (fetchpatch {
-      # https://github.com/strawberry-graphql/strawberry/pull/3255
-      name = "fix-tests-with-pydantic_2.patch";
-      url = "https://github.com/strawberry-graphql/strawberry/commit/0a0dc284ee6d31d4e82ac7ff1ed9fea4dff39fa6.patch";
-      hash = "sha256-LACWD7XA6YL/apJwhpx3LPCKxKUfa+XWyTLK+Zkxlaw=";
-    })
   ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "--emoji --mypy-ini-file=mypy.ini" "" \
+      --replace-fail "--emoji" "" \
   '';
 
-  nativeBuildInputs = [ poetry-core ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     graphql-core
     python-dateutil
     typing-extensions
@@ -135,9 +130,8 @@ buildPythonPackage rec {
       rich
       libcst
     ];
-    # starlite = [
-    #   starlite
-    # ];
+    # starlite = [ starlite ];
+    # litestar = [ litestar ];
     pyinstrument = [ pyinstrument ];
   };
 
@@ -145,6 +139,7 @@ buildPythonPackage rec {
     daphne
     email-validator
     freezegun
+    inline-snapshot
     pytest-asyncio
     pytest-emoji
     pytest-mock
@@ -161,7 +156,6 @@ buildPythonPackage rec {
     "tests/django/test_dataloaders.py"
     "tests/exceptions/"
     "tests/http/"
-    "tests/mypy/test_plugin.py" # avoid dependency on mypy
     "tests/schema/extensions/"
     "tests/schema/test_dataloaders.py"
     "tests/schema/test_lazy/"
@@ -169,16 +163,17 @@ buildPythonPackage rec {
     "tests/test_dataloaders.py"
     "tests/utils/test_pretty_print.py"
     "tests/websockets/test_graphql_transport_ws.py"
+    "tests/litestar/"
   ];
 
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
-    description = "A GraphQL library for Python that leverages type annotations";
-    mainProgram = "strawberry";
+    description = "GraphQL library for Python that leverages type annotations";
     homepage = "https://strawberry.rocks";
     changelog = "https://github.com/strawberry-graphql/strawberry/blob/${version}/CHANGELOG.md";
-    license = with licenses; [ mit ];
+    license = licenses.mit;
     maintainers = with maintainers; [ izorkin ];
+    mainProgram = "strawberry";
   };
 }
diff --git a/pkgs/development/python-modules/strct/default.nix b/pkgs/development/python-modules/strct/default.nix
index f0a7a6bdf2dc7..eff84c1f1dcb2 100644
--- a/pkgs/development/python-modules/strct/default.nix
+++ b/pkgs/development/python-modules/strct/default.nix
@@ -46,7 +46,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A small pure-python package for data structure related utility functions";
+    description = "Small pure-python package for data structure related utility functions";
     homepage = "https://github.com/shaypal5/strct";
     license = licenses.mit;
     maintainers = with maintainers; [ pbsds ];
diff --git a/pkgs/development/python-modules/streamlit/default.nix b/pkgs/development/python-modules/streamlit/default.nix
index 5c477b62579ce..0880b4b9957c2 100644
--- a/pkgs/development/python-modules/streamlit/default.nix
+++ b/pkgs/development/python-modules/streamlit/default.nix
@@ -34,14 +34,14 @@
 
 buildPythonPackage rec {
   pname = "streamlit";
-  version = "1.34.0";
+  version = "1.35.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-E1o7eaaGsxMrc/IERQrW6IneBPM0nWkpJeCfDiHnS1I=";
+    hash = "sha256-Z51Vu2GJdD9gar8GlmI98L/SI6bQyNlrjWBnjUiR0tY=";
   };
 
   nativeBuildInputs = [
@@ -89,7 +89,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://streamlit.io/";
     changelog = "https://github.com/streamlit/streamlit/releases/tag/${version}";
-    description = "The fastest way to build custom ML tools";
+    description = "Fastest way to build custom ML tools";
     mainProgram = "streamlit";
     maintainers = with maintainers; [
       natsukium
diff --git a/pkgs/development/python-modules/stringly/default.nix b/pkgs/development/python-modules/stringly/default.nix
index 7d830ff2f839a..c7637bb082c7c 100644
--- a/pkgs/development/python-modules/stringly/default.nix
+++ b/pkgs/development/python-modules/stringly/default.nix
@@ -1,6 +1,5 @@
 {
   lib,
-  python,
   buildPythonPackage,
   fetchPypi,
   typing-extensions,
@@ -20,10 +19,6 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ typing-extensions ];
 
-  checkPhase = ''
-    ${python.interpreter} -m unittest
-  '';
-
   meta = with lib; {
     description = "Stringly: Human Readable Object Serialization";
     homepage = "https://github.com/evalf/stringly";
diff --git a/pkgs/development/python-modules/stripe/default.nix b/pkgs/development/python-modules/stripe/default.nix
index dd709fd48f33d..51b956b1a547f 100644
--- a/pkgs/development/python-modules/stripe/default.nix
+++ b/pkgs/development/python-modules/stripe/default.nix
@@ -10,19 +10,19 @@
 
 buildPythonPackage rec {
   pname = "stripe";
-  version = "9.6.0";
+  version = "9.9.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-kwXYSc6nFdxZxeOdAYkUdbguEO252V7h2BiUV+XeeS8=";
+    hash = "sha256-xC2Pa0RjpU86AlWBgQ9OYy4tWnHeYQD8WV11WB9ppJI=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     requests
     typing-extensions
   ];
diff --git a/pkgs/development/python-modules/striprtf/default.nix b/pkgs/development/python-modules/striprtf/default.nix
index 2aef6241833a8..94afa18cf9faf 100644
--- a/pkgs/development/python-modules/striprtf/default.nix
+++ b/pkgs/development/python-modules/striprtf/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/joshy/striprtf/blob/v${version}/CHANGELOG.md";
     homepage = "https://github.com/joshy/striprtf";
-    description = "A simple library to convert rtf to text";
+    description = "Simple library to convert rtf to text";
     mainProgram = "striprtf";
     maintainers = with maintainers; [ aanderse ];
     license = with licenses; [ bsd3 ];
diff --git a/pkgs/development/python-modules/stups-cli-support/default.nix b/pkgs/development/python-modules/stups-cli-support/default.nix
index 58e8243ed022f..ef36962843072 100644
--- a/pkgs/development/python-modules/stups-cli-support/default.nix
+++ b/pkgs/development/python-modules/stups-cli-support/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Helper library for all STUPS command line tools.";
+    description = "Helper library for all STUPS command line tools";
     homepage = "https://github.com/zalando-stups/stups-cli-support";
     license = licenses.asl20;
     maintainers = [ maintainers.mschuwalow ];
diff --git a/pkgs/development/python-modules/stups-fullstop/default.nix b/pkgs/development/python-modules/stups-fullstop/default.nix
index 4b6ea65bf9219..2b4efbaacb2fe 100644
--- a/pkgs/development/python-modules/stups-fullstop/default.nix
+++ b/pkgs/development/python-modules/stups-fullstop/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Convenience command line tool for fullstop. audit reporting.";
+    description = "Convenience command line tool for fullstop. audit reporting";
     homepage = "https://github.com/zalando-stups/stups-fullstop-cli";
     license = licenses.asl20;
     maintainers = [ maintainers.mschuwalow ];
diff --git a/pkgs/development/python-modules/stups-tokens/default.nix b/pkgs/development/python-modules/stups-tokens/default.nix
index 7668e55aa8959..6201fa99cab33 100644
--- a/pkgs/development/python-modules/stups-tokens/default.nix
+++ b/pkgs/development/python-modules/stups-tokens/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python library that keeps OAuth 2.0 service access tokens in memory for your usage.";
+    description = "Python library that keeps OAuth 2.0 service access tokens in memory for your usage";
     homepage = "https://github.com/zalando-stups/python-tokens";
     license = licenses.asl20;
     maintainers = [ maintainers.mschuwalow ];
diff --git a/pkgs/development/python-modules/stups-zign/default.nix b/pkgs/development/python-modules/stups-zign/default.nix
index 08875ffb58d2d..c6fb2495dd27a 100644
--- a/pkgs/development/python-modules/stups-zign/default.nix
+++ b/pkgs/development/python-modules/stups-zign/default.nix
@@ -46,7 +46,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "OAuth2 token management command line utility.";
+    description = "OAuth2 token management command line utility";
     homepage = "https://github.com/zalando-stups/zign";
     license = licenses.asl20;
     maintainers = [ maintainers.mschuwalow ];
diff --git a/pkgs/development/python-modules/stytra/default.nix b/pkgs/development/python-modules/stytra/default.nix
index a05f5ee001a64..94f14cc090523 100644
--- a/pkgs/development/python-modules/stytra/default.nix
+++ b/pkgs/development/python-modules/stytra/default.nix
@@ -85,7 +85,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A modular package to control stimulation and track behaviour";
+    description = "Modular package to control stimulation and track behaviour";
     homepage = "https://github.com/portugueslab/stytra";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ tbenst ];
diff --git a/pkgs/development/python-modules/subprocess-tee/default.nix b/pkgs/development/python-modules/subprocess-tee/default.nix
index 6d3c91c42f225..7c95ab66fbd8f 100644
--- a/pkgs/development/python-modules/subprocess-tee/default.nix
+++ b/pkgs/development/python-modules/subprocess-tee/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/pycontribs/subprocess-tee";
-    description = "A subprocess.run drop-in replacement that supports a tee mode";
+    description = "Subprocess.run drop-in replacement that supports a tee mode";
     license = licenses.mit;
     maintainers = with maintainers; [ putchar ];
   };
diff --git a/pkgs/development/python-modules/sunweg/default.nix b/pkgs/development/python-modules/sunweg/default.nix
index f0c7b9e004877..10603bb5cd344 100644
--- a/pkgs/development/python-modules/sunweg/default.nix
+++ b/pkgs/development/python-modules/sunweg/default.nix
@@ -4,13 +4,14 @@
   fetchFromGitHub,
   pytestCheckHook,
   pythonOlder,
+  python-dateutil,
   requests,
   setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "sunweg";
-  version = "2.1.1";
+  version = "3.0.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,12 +20,15 @@ buildPythonPackage rec {
     owner = "rokam";
     repo = "sunweg";
     rev = "refs/tags/${version}";
-    hash = "sha256-fgNtxCBIuNulCfuDaEsM7kL1WpwNE9O+JQ1DMZrz5jA=";
+    hash = "sha256-9VzDOl393+jm6Nf40X4ZPMBbRc6KOwOQkpTNoqBsw1M=";
   };
 
   nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [ requests ];
+  propagatedBuildInputs = [
+    python-dateutil
+    requests
+  ];
 
   # Module has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/superqt/default.nix b/pkgs/development/python-modules/superqt/default.nix
index a54f3df4a7f59..c2fbba8406847 100644
--- a/pkgs/development/python-modules/superqt/default.nix
+++ b/pkgs/development/python-modules/superqt/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "superqt";
-  version = "0.6.6";
+  version = "0.6.7";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "pyapp-kit";
     repo = "superqt";
     rev = "refs/tags/v${version}";
-    hash = "sha256-AJXX460sm0rrimizkiBIjYFRtWbscEjlwo5ZLcgjzcA=";
+    hash = "sha256-/VR9Lc1x+7J/3zyo/eBFBvGkPXzpTfPpNAvNhSzWio8=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/supervise-api/default.nix b/pkgs/development/python-modules/supervise-api/default.nix
index 6cc5c46a84832..9ef2083eb0ce4 100644
--- a/pkgs/development/python-modules/supervise-api/default.nix
+++ b/pkgs/development/python-modules/supervise-api/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "supervise_api" ];
 
   meta = {
-    description = "An API for running processes safely and securely";
+    description = "API for running processes safely and securely";
     homepage = "https://github.com/catern/supervise";
     license = lib.licenses.mit;
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/python-modules/supervisor/default.nix b/pkgs/development/python-modules/supervisor/default.nix
index 38a6fcd7f6605..e75998606b63a 100644
--- a/pkgs/development/python-modules/supervisor/default.nix
+++ b/pkgs/development/python-modules/supervisor/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "supervisor" ];
 
   meta = with lib; {
-    description = "A system for controlling process state under UNIX";
+    description = "System for controlling process state under UNIX";
     homepage = "http://supervisord.org/";
     changelog = "https://github.com/Supervisor/supervisor/blob/${version}/CHANGES.rst";
     license = licenses.free; # http://www.repoze.org/LICENSE.txt
diff --git a/pkgs/development/python-modules/survey/default.nix b/pkgs/development/python-modules/survey/default.nix
index e7b302949b0bb..6c787abb71d17 100644
--- a/pkgs/development/python-modules/survey/default.nix
+++ b/pkgs/development/python-modules/survey/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "survey";
-  version = "5.3.0";
+  version = "5.3.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-jMTtsrEdt3NPy8NfeNPX4YNwjH2gaQfO89Iag/MBS+A=";
+    hash = "sha256-uNx8Ij28Li9QQjq/S6OP5kft2K8pDu2NyBK6BP/xcw8=";
   };
 
   build-system = [
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "survey" ];
 
   meta = with lib; {
-    description = "A simple library for creating beautiful interactive prompts";
+    description = "Simple library for creating beautiful interactive prompts";
     homepage = "https://github.com/Exahilosys/survey";
     changelog = "https://github.com/Exahilosys/survey/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/sv-ttk/default.nix b/pkgs/development/python-modules/sv-ttk/default.nix
index 72a99226a5d33..542ef1d2ed272 100644
--- a/pkgs/development/python-modules/sv-ttk/default.nix
+++ b/pkgs/development/python-modules/sv-ttk/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sv_ttk" ];
 
   meta = with lib; {
-    description = "A gorgeous theme for Tkinter/ttk, based on the Sun Valley visual style";
+    description = "Gorgeous theme for Tkinter/ttk, based on the Sun Valley visual style";
     homepage = "https://github.com/rdbende/Sun-Valley-ttk-theme";
     changelog = "https://github.com/rdbende/Sun-Valley-ttk-theme/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/svg2tikz/default.nix b/pkgs/development/python-modules/svg2tikz/default.nix
index de3e1c96770a2..8d143ee4d58a0 100644
--- a/pkgs/development/python-modules/svg2tikz/default.nix
+++ b/pkgs/development/python-modules/svg2tikz/default.nix
@@ -7,30 +7,39 @@
   inkex,
   lxml,
   pytestCheckHook,
+  pythonRelaxDepsHook,
 }:
 
 buildPythonPackage rec {
   pname = "svg2tikz";
-  version = "3.0.1";
+  version = "3.1.0";
 
   disabled = pythonOlder "3.7";
 
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "xyz2tex";
     repo = "svg2tikz";
     rev = "refs/tags/v${version}";
-    hash = "sha256-hvGvJFxhu7llj+tFfZvz12dZ8QYjY7zcLzB5S44l+IM=";
+    hash = "sha256-lL+CQGZMK+rxjw2kTNE6kK3FCt6ARsAD6ROMsXWwDCs=";
   };
 
-  nativeBuildInputs = [ poetry-core ];
+  build-system = [
+    poetry-core
+  ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     inkex
     lxml
   ];
 
+  pythonRelaxDeps = [
+    "lxml"
+  ];
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
+
   nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "svg2tikz" ];
diff --git a/pkgs/development/python-modules/svgelements/default.nix b/pkgs/development/python-modules/svgelements/default.nix
index 239b7db7f67ac..7e4709ff5a08f 100644
--- a/pkgs/development/python-modules/svgelements/default.nix
+++ b/pkgs/development/python-modules/svgelements/default.nix
@@ -2,6 +2,7 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+  fetchpatch,
   setuptools,
   wheel,
   anyio,
@@ -25,7 +26,15 @@ buildPythonPackage rec {
     hash = "sha256-nx2sGXeeh8S17TfRDFifQbdSxc4YGsDNnrPSSbxv7S4=";
   };
 
-  nativeBuildInputs = [
+  patches = [
+    (fetchpatch {
+      name = "fix-assert-tests";
+      url = "https://github.com/meerk40t/svgelements/commit/23da98941a94cf1afed39c10750222ccfee73c9f.patch";
+      hash = "sha256-/53w4eWlaSNEQxuoAxPrN2HciZ3Az2A2SKcIAlNgKAs=";
+    })
+  ];
+
+  build-system = [
     setuptools
     wheel
   ];
@@ -42,10 +51,10 @@ buildPythonPackage rec {
     scipy
   ];
 
-  meta = with lib; {
+  meta = {
     description = "SVG Parsing for Elements, Paths, and other SVG Objects";
     homepage = "https://github.com/meerk40t/svgelements";
-    license = licenses.mit;
-    maintainers = with maintainers; [ GaetanLepage ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
   };
 }
diff --git a/pkgs/development/python-modules/svglib/default.nix b/pkgs/development/python-modules/svglib/default.nix
index 1fd3ba62686b5..ab8978e144c96 100644
--- a/pkgs/development/python-modules/svglib/default.nix
+++ b/pkgs/development/python-modules/svglib/default.nix
@@ -44,7 +44,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "svglib.svglib" ];
 
   meta = with lib; {
-    description = "A pure-Python library for reading and converting SVG";
+    description = "Pure-Python library for reading and converting SVG";
     mainProgram = "svg2pdf";
     homepage = "https://github.com/deeplook/svglib";
     changelog = "https://github.com/deeplook/svglib/blob/v${version}/CHANGELOG.rst";
diff --git a/pkgs/development/python-modules/svgwrite/default.nix b/pkgs/development/python-modules/svgwrite/default.nix
index c3aa97ce3f919..24bb2622ecc19 100644
--- a/pkgs/development/python-modules/svgwrite/default.nix
+++ b/pkgs/development/python-modules/svgwrite/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python library to create SVG drawings";
+    description = "Python library to create SVG drawings";
     homepage = "https://github.com/mozman/svgwrite";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/swagger-ui-bundle/default.nix b/pkgs/development/python-modules/swagger-ui-bundle/default.nix
index d58bf4d9a4f05..b71ae59cca9ba 100644
--- a/pkgs/development/python-modules/swagger-ui-bundle/default.nix
+++ b/pkgs/development/python-modules/swagger-ui-bundle/default.nix
@@ -35,6 +35,5 @@ buildPythonPackage rec {
     description = "bundled swagger-ui pip package";
     homepage = "https://github.com/dtkav/swagger_ui_bundle";
     license = licenses.asl20;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/switchbot-api/default.nix b/pkgs/development/python-modules/switchbot-api/default.nix
index 97773311cc7d6..06eae69b07e78 100644
--- a/pkgs/development/python-modules/switchbot-api/default.nix
+++ b/pkgs/development/python-modules/switchbot-api/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "switchbot_api" ];
 
   meta = with lib; {
-    description = "An asynchronous library to use Switchbot API";
+    description = "Asynchronous library to use Switchbot API";
     homepage = "https://github.com/SeraphicCorp/py-switchbot-api";
     changelog = "https://github.com/SeraphicCorp/py-switchbot-api/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/sympy/default.nix b/pkgs/development/python-modules/sympy/default.nix
index 94720dec3bfb5..2337f161b5b75 100644
--- a/pkgs/development/python-modules/sympy/default.nix
+++ b/pkgs/development/python-modules/sympy/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A Python library for symbolic mathematics";
+    description = "Python library for symbolic mathematics";
     mainProgram = "isympy";
     homepage = "https://www.sympy.org/";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/syncedlyrics/default.nix b/pkgs/development/python-modules/syncedlyrics/default.nix
index 5505bb03f75c7..9b2fb010b04ad 100644
--- a/pkgs/development/python-modules/syncedlyrics/default.nix
+++ b/pkgs/development/python-modules/syncedlyrics/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "syncedlyrics";
-  version = "0.9.0";
+  version = "0.10.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "rtcq";
     repo = "syncedlyrics";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Q0Hu403Hxr4iDuZfGQjgTSuNMVgsqd9zLRl9Vc1YzyQ=";
+    hash = "sha256-jqd68Npt7qq9aMWO3AVR4JRAs9avO4x9u+MC/brU1Cw=";
   };
 
   build-system = [
@@ -44,10 +44,10 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module to get LRC format (synchronized) lyrics";
-    mainProgram = "syncedlyrics";
     homepage = "https://github.com/rtcq/syncedlyrics";
     changelog = "https://github.com/rtcq/syncedlyrics/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "syncedlyrics";
   };
 }
diff --git a/pkgs/development/python-modules/synergy/default.nix b/pkgs/development/python-modules/synergy/default.nix
index 8befef11f7913..12dacb1586e10 100644
--- a/pkgs/development/python-modules/synergy/default.nix
+++ b/pkgs/development/python-modules/synergy/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "synergy" ];
 
   meta = with lib; {
-    description = "A Python library for calculating, analyzing, and visualizing drug combination synergy";
+    description = "Python library for calculating, analyzing, and visualizing drug combination synergy";
     homepage = "https://github.com/djwooten/synergy";
     maintainers = [ maintainers.ivar ];
     license = licenses.gpl3Plus;
diff --git a/pkgs/development/python-modules/tabcmd/default.nix b/pkgs/development/python-modules/tabcmd/default.nix
index 956e71bff6054..e713fef830a78 100644
--- a/pkgs/development/python-modules/tabcmd/default.nix
+++ b/pkgs/development/python-modules/tabcmd/default.nix
@@ -26,14 +26,14 @@
 
 buildPythonPackage rec {
   pname = "tabcmd";
-  version = "2.0.13";
+  version = "2.0.14";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-f9zoYeb4RzcCtgcCYYvvuCuFrjqpP3Fhv38bUWH24+g=";
+    hash = "sha256-wyfKy0g2btdNMNviCd7brB+lwZvPcZ3/DnymdVjCGFg=";
   };
 
   prePatch = ''
@@ -93,7 +93,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "tabcmd" ];
 
   meta = with lib; {
-    description = "A command line client for working with Tableau Server";
+    description = "Command line client for working with Tableau Server";
     homepage = "https://github.com/tableau/tabcmd";
     changelog = "https://github.com/tableau/tabcmd/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/tableaudocumentapi/default.nix b/pkgs/development/python-modules/tableaudocumentapi/default.nix
index f1a6882345a8f..1d9b22ce5b4e7 100644
--- a/pkgs/development/python-modules/tableaudocumentapi/default.nix
+++ b/pkgs/development/python-modules/tableaudocumentapi/default.nix
@@ -5,12 +5,16 @@
   lxml,
   pytestCheckHook,
   pythonOlder,
+  fetchpatch,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "tableaudocumentapi";
   version = "0.11";
-  format = "setuptools";
+
+  pyproject = true;
+  build-system = [ setuptools ];
 
   disabled = pythonOlder "3.7";
 
@@ -18,8 +22,17 @@ buildPythonPackage rec {
     inherit pname version;
     hash = "sha256-g6V1UBf+P21FcZkR3PHoUmdmrQwEvjdd1VKhvNmvOys=";
   };
-
-  propagatedBuildInputs = [ lxml ];
+  patches = [
+    # distutils has been removed since python 3.12
+    # see https://github.com/tableau/document-api-python/pull/255
+    (fetchpatch {
+      name = "no-distutils.patch";
+      url = "https://github.com/tableau/document-api-python/pull/255/commits/59280bbe073060d1249e6404e11303ed6faa84f6.patch";
+      hash = "sha256-mjIF9iP1BQXvqkS0jYNTm8otkhSKLj2b2iHSMZ2K0iI=";
+    })
+  ];
+
+  dependencies = [ lxml ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/tabledata/default.nix b/pkgs/development/python-modules/tabledata/default.nix
index db3ae35215168..49769b3f0e51e 100644
--- a/pkgs/development/python-modules/tabledata/default.nix
+++ b/pkgs/development/python-modules/tabledata/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/thombashi/tabledata";
-    description = "A library to represent tabular data";
+    description = "Library to represent tabular data";
     changelog = "https://github.com/thombashi/tabledata/releases/tag/v${version}";
     maintainers = with maintainers; [ genericnerdyusername ];
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/tabula-py/default.nix b/pkgs/development/python-modules/tabula-py/default.nix
index 4556443136b2f..0299d511c25a8 100644
--- a/pkgs/development/python-modules/tabula-py/default.nix
+++ b/pkgs/development/python-modules/tabula-py/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "tabula-py";
-  version = "2.9.1";
+  version = "2.9.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "chezou";
     repo = "tabula-py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-C06du4mhpnF2qxcEMZxp5O/8xpNaj9Jp8LFaxBkGF/Q=";
+    hash = "sha256-dEcVIlK3M7zqRMN7W7mnnMPWhM2A4/qvf0aY61ko4yE=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/tappy/default.nix b/pkgs/development/python-modules/tappy/default.nix
index 5c464707f2cc6..916ac21e3d8ec 100644
--- a/pkgs/development/python-modules/tappy/default.nix
+++ b/pkgs/development/python-modules/tappy/default.nix
@@ -3,18 +3,33 @@
   buildPythonPackage,
   pythonOlder,
   fetchPypi,
+  setuptools,
+  pyyaml,
+  more-itertools,
   pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "tap.py";
   version = "3.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3c0cd45212ad5a25b35445964e2517efa000a118a1bfc3437dae828892eaf1e1";
+    hash = "sha256-PAzUUhKtWiWzVEWWTiUX76AAoRihv8NDfa6CiJLq8eE=";
+  };
+
+  build-system = [
+    setuptools
+  ];
+
+  optional-dependencies = {
+    yaml = [
+      pyyaml
+      more-itertools
+    ];
   };
 
   nativeCheckInputs = [ pytestCheckHook ];
@@ -22,9 +37,10 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "tap" ];
 
   meta = with lib; {
-    description = "A set of tools for working with the Test Anything Protocol (TAP) in Python";
+    description = "Set of tools for working with the Test Anything Protocol (TAP) in Python";
     homepage = "https://github.com/python-tap/tappy";
     changelog = "https://tappy.readthedocs.io/en/latest/releases.html";
+    mainProgram = "tappy";
     license = licenses.bsd2;
     maintainers = with maintainers; [ sfrijters ];
   };
diff --git a/pkgs/development/python-modules/taskw/default.nix b/pkgs/development/python-modules/taskw/default.nix
index e04f9c0284b52..97b3031c067e7 100644
--- a/pkgs/development/python-modules/taskw/default.nix
+++ b/pkgs/development/python-modules/taskw/default.nix
@@ -2,6 +2,7 @@
   lib,
   buildPythonPackage,
   fetchPypi,
+  pythonAtLeast,
 
   # build-system
   setuptools,
@@ -23,6 +24,9 @@ buildPythonPackage rec {
   version = "2.0.0";
   pyproject = true;
 
+  # ModuleNotFoundError: No module named 'distutils'
+  disabled = pythonAtLeast "3.12";
+
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-EQm9+b3nqbMqUAejAsh4MD/2UYi2QiWsdKMomkxUi90=";
diff --git a/pkgs/development/python-modules/tatsu/default.nix b/pkgs/development/python-modules/tatsu/default.nix
index 026a6976b6a26..d1d7697331d01 100644
--- a/pkgs/development/python-modules/tatsu/default.nix
+++ b/pkgs/development/python-modules/tatsu/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "tatsu";
-  version = "5.12.0";
+  version = "5.12.1";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "neogeny";
     repo = "TatSu";
     rev = "refs/tags/v${version}";
-    hash = "sha256-55sTUqNwfWg5h9msByq2RuVx/z23ST7p7pA/ZsIeYr8=";
+    hash = "sha256-dY+hvNwYrkKko9A5yRT0EWYlvVu3OrhJMzk/8cjzuUo=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/tblib/default.nix b/pkgs/development/python-modules/tblib/default.nix
index 6c9e38cc1f0d9..86a036c47d5da 100644
--- a/pkgs/development/python-modules/tblib/default.nix
+++ b/pkgs/development/python-modules/tblib/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   nativeBuildInputs = [ setuptools ];
 
   meta = with lib; {
-    description = "Traceback fiddling library. Allows you to pickle tracebacks.";
+    description = "Traceback fiddling library. Allows you to pickle tracebacks";
     homepage = "https://github.com/ionelmc/python-tblib";
     license = licenses.bsd2;
     maintainers = with maintainers; [ teh ];
diff --git a/pkgs/development/python-modules/tbm-utils/default.nix b/pkgs/development/python-modules/tbm-utils/default.nix
index 7f4963ca6dba3..fbd675bd2ebf9 100644
--- a/pkgs/development/python-modules/tbm-utils/default.nix
+++ b/pkgs/development/python-modules/tbm-utils/default.nix
@@ -80,7 +80,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "tbm_utils" ];
 
   meta = with lib; {
-    description = "A commonly-used set of utilities";
+    description = "Commonly-used set of utilities";
     homepage = "https://github.com/thebigmunch/tbm-utils";
     changelog = "https://github.com/thebigmunch/tbm-utils/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/tcolorpy/default.nix b/pkgs/development/python-modules/tcolorpy/default.nix
index 86a19e2fa4de4..ab7b6bc198de2 100644
--- a/pkgs/development/python-modules/tcolorpy/default.nix
+++ b/pkgs/development/python-modules/tcolorpy/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/thombashi/tcolorpy";
-    description = "A library to apply true color for terminal text";
+    description = "Library to apply true color for terminal text";
     maintainers = with maintainers; [ genericnerdyusername ];
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/tcxreader/default.nix b/pkgs/development/python-modules/tcxreader/default.nix
index 4bb0e58857b56..9bcab11b58822 100644
--- a/pkgs/development/python-modules/tcxreader/default.nix
+++ b/pkgs/development/python-modules/tcxreader/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "tcxreader" ];
 
   meta = with lib; {
-    description = "A reader for Garmin’s TCX file format";
+    description = "Reader for Garmin’s TCX file format";
     homepage = "https://github.com/alenrajsp/tcxreader";
     changelog = "https://github.com/alenrajsp/tcxreader/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/telepath/default.nix b/pkgs/development/python-modules/telepath/default.nix
index da8d120554be9..3af1ba09950f5 100644
--- a/pkgs/development/python-modules/telepath/default.nix
+++ b/pkgs/development/python-modules/telepath/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "telepath" ];
 
   meta = with lib; {
-    description = "A library for exchanging data between Python and JavaScript";
+    description = "Library for exchanging data between Python and JavaScript";
     homepage = "https://github.com/wagtail/telepath";
     changelog = "https://github.com/wagtail/telepath/blob/v${version}/CHANGELOG.md";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/teletype/default.nix b/pkgs/development/python-modules/teletype/default.nix
index 570bd2cb831be..73aa506b29aa1 100644
--- a/pkgs/development/python-modules/teletype/default.nix
+++ b/pkgs/development/python-modules/teletype/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "teletype" ];
 
   meta = with lib; {
-    description = "A high-level cross platform tty library";
+    description = "High-level cross platform tty library";
     homepage = "https://github.com/jkwill87/teletype";
     license = licenses.mit;
     maintainers = with maintainers; [ urlordjames ];
diff --git a/pkgs/development/python-modules/tempest/default.nix b/pkgs/development/python-modules/tempest/default.nix
index 66ebd1bfefab9..66b7e1aee3db9 100644
--- a/pkgs/development/python-modules/tempest/default.nix
+++ b/pkgs/development/python-modules/tempest/default.nix
@@ -32,14 +32,14 @@
 
 buildPythonPackage rec {
   pname = "tempest";
-  version = "38.0.0";
+  version = "39.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-2WmSN4NrH5/y5iAuYaaVuZkuh1ym14jFj7OXw8Jfxtc=";
+    hash = "sha256-l4qKbTfQRWiRsoHN9fiAAiGMGP+q3gwRH1pMSXV/eSU=";
   };
 
   nativeBuildInputs = [ setuptools ];
@@ -89,7 +89,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "tempest" ];
 
   meta = with lib; {
-    description = "An OpenStack integration test suite that runs against live OpenStack cluster and validates an OpenStack deployment";
+    description = "OpenStack integration test suite that runs against live OpenStack cluster and validates an OpenStack deployment";
     homepage = "https://github.com/openstack/tempest";
     license = licenses.asl20;
     maintainers = teams.openstack.members;
diff --git a/pkgs/development/python-modules/tempita/default.nix b/pkgs/development/python-modules/tempita/default.nix
index 7f3148c4ed262..718eeb93eb2dd 100644
--- a/pkgs/development/python-modules/tempita/default.nix
+++ b/pkgs/development/python-modules/tempita/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage {
 
   meta = {
     homepage = "https://github.com/agramfort/tempita";
-    description = "A very small text templating language";
+    description = "Very small text templating language";
     license = lib.licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix b/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
index 1eee4a02da4f9..2ba8856349ac2 100644
--- a/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
+++ b/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "tencentcloud-sdk-python";
-  version = "3.0.1152";
+  version = "3.0.1171";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "TencentCloud";
     repo = "tencentcloud-sdk-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-pmmZnTvZwpVD/ECjKzA6LQ2c7McYznJMlKabcYwh3LY=";
+    hash = "sha256-8ZjC4gfTVLuH8b90xzURHhowFS/vdXBjWP64ZoiM7/E=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/tensorboard-plugin-profile/default.nix b/pkgs/development/python-modules/tensorboard-plugin-profile/default.nix
index 5429cd58176ba..9719d1d0c6a0b 100644
--- a/pkgs/development/python-modules/tensorboard-plugin-profile/default.nix
+++ b/pkgs/development/python-modules/tensorboard-plugin-profile/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Profile Tensorboard Plugin.";
+    description = "Profile Tensorboard Plugin";
     homepage = "http://tensorflow.org";
     license = licenses.asl20;
     maintainers = with maintainers; [ ndl ];
diff --git a/pkgs/development/python-modules/tensorboard-plugin-wit/default.nix b/pkgs/development/python-modules/tensorboard-plugin-wit/default.nix
index 202361ef032a0..4a5760e3e92ed 100644
--- a/pkgs/development/python-modules/tensorboard-plugin-wit/default.nix
+++ b/pkgs/development/python-modules/tensorboard-plugin-wit/default.nix
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "What-If Tool TensorBoard plugin.";
+    description = "What-If Tool TensorBoard plugin";
     homepage = "http://tensorflow.org";
     license = licenses.asl20;
     maintainers = with maintainers; [ ndl ];
diff --git a/pkgs/development/python-modules/tensordict/default.nix b/pkgs/development/python-modules/tensordict/default.nix
index a3b39969be6a1..bd35eff65707e 100644
--- a/pkgs/development/python-modules/tensordict/default.nix
+++ b/pkgs/development/python-modules/tensordict/default.nix
@@ -54,22 +54,28 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  # RuntimeError: internal error
-  disabledTests = lib.optionals (stdenv.hostPlatform.system == "aarch64-linux") [
-    "test_add_scale_sequence"
-    "test_modules"
-    "test_setattr"
-  ];
+  disabledTests =
+    # Hangs forever
+    [ "test_copy_onto" ]
+    ++ lib.optionals (stdenv.hostPlatform.system == "aarch64-linux") [
+      # RuntimeError: internal error
+      "test_add_scale_sequence"
+      "test_modules"
+      "test_setattr"
+
+      # _queue.Empty errors in multiprocessing tests
+      "test_isend"
+    ];
 
   # ModuleNotFoundError: No module named 'torch._C._distributed_c10d'; 'torch._C' is not a package
   disabledTestPaths = lib.optionals stdenv.isDarwin [ "test/test_distributed.py" ];
 
-  meta = with lib; {
-    description = "A pytorch dedicated tensor container";
+  meta = {
+    description = "Pytorch dedicated tensor container";
     changelog = "https://github.com/pytorch/tensordict/releases/tag/v${version}";
     homepage = "https://github.com/pytorch/tensordict";
-    license = licenses.mit;
-    maintainers = with maintainers; [ GaetanLepage ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
     # No python 3.12 support yet: https://github.com/pytorch/rl/issues/2035
     broken = pythonAtLeast "3.12";
   };
diff --git a/pkgs/development/python-modules/tensorflow-estimator/bin.nix b/pkgs/development/python-modules/tensorflow-estimator/bin.nix
index 908a29370f954..7146208c4d653 100644
--- a/pkgs/development/python-modules/tensorflow-estimator/bin.nix
+++ b/pkgs/development/python-modules/tensorflow-estimator/bin.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "TensorFlow Estimator is a high-level API that encapsulates model training, evaluation, prediction, and exporting.";
+    description = "TensorFlow Estimator is a high-level API that encapsulates model training, evaluation, prediction, and exporting";
     homepage = "http://tensorflow.org";
     license = licenses.asl20;
     maintainers = with maintainers; [ jyp ];
diff --git a/pkgs/development/python-modules/tensorly/default.nix b/pkgs/development/python-modules/tensorly/default.nix
index 9e3ff72609cf4..20bd49a8a9bad 100644
--- a/pkgs/development/python-modules/tensorly/default.nix
+++ b/pkgs/development/python-modules/tensorly/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "tensorly";
-  version = "0.8.1";
+  version = "0.8.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-hwpdExW/ESOavFkL3old1Efo5WC+PYmcgJp5/oLelaA=";
+    hash = "sha256-kYKyLY2V6M53co+26ZTZP4U6bHkFebKI5Uhh1x1/N58=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/termgraph/default.nix b/pkgs/development/python-modules/termgraph/default.nix
index 4498caec91833..b2ae6ae1f979b 100644
--- a/pkgs/development/python-modules/termgraph/default.nix
+++ b/pkgs/development/python-modules/termgraph/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "termgraph" ];
 
   meta = with lib; {
-    description = "A python command-line tool which draws basic graphs in the terminal";
+    description = "Python command-line tool which draws basic graphs in the terminal";
     mainProgram = "termgraph";
     homepage = "https://github.com/mkaz/termgraph";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/terminaltexteffects/default.nix b/pkgs/development/python-modules/terminaltexteffects/default.nix
new file mode 100644
index 0000000000000..8cea46f094e66
--- /dev/null
+++ b/pkgs/development/python-modules/terminaltexteffects/default.nix
@@ -0,0 +1,36 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+}:
+
+buildPythonPackage rec {
+  pname = "terminaltexteffects";
+  version = "0.10.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+   # no tests on pypi, no tags on github
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-NyWPfdgLeXAxKPJOzB7j4aT+zjrURN59CGcv0Vt99y0=";
+  };
+
+  build-system = [ poetry-core ];
+
+  pythonImportsCheck = [ "terminaltexteffects" ];
+
+  meta = with lib; {
+    description = "A collection of visual effects that can be applied to terminal piped stdin text";
+    homepage = "https://chrisbuilds.github.io/terminaltexteffects";
+    changelog = "https://chrisbuilds.github.io/terminaltexteffects/changeblog/";
+    license = licenses.mit;
+    platforms = with platforms; unix;
+    maintainers = with maintainers; [ qwqawawow ];
+    mainProgram = "tte";
+  };
+}
diff --git a/pkgs/development/python-modules/tern/default.nix b/pkgs/development/python-modules/tern/default.nix
index ab0b909f9e029..978ba12ee1a1a 100644
--- a/pkgs/development/python-modules/tern/default.nix
+++ b/pkgs/development/python-modules/tern/default.nix
@@ -57,7 +57,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "tern" ];
 
   meta = with lib; {
-    description = "A software composition analysis tool and Python library that generates a Software Bill of Materials for container images and Dockerfiles";
+    description = "Software composition analysis tool and Python library that generates a Software Bill of Materials for container images and Dockerfiles";
     mainProgram = "tern";
     homepage = "https://github.com/tern-tools/tern";
     changelog = "https://github.com/tern-tools/tern/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/tesla-fleet-api/default.nix b/pkgs/development/python-modules/tesla-fleet-api/default.nix
index b0776b1a221a9..4be63b1b4b4b2 100644
--- a/pkgs/development/python-modules/tesla-fleet-api/default.nix
+++ b/pkgs/development/python-modules/tesla-fleet-api/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "tesla-fleet-api";
-  version = "0.5.12";
+  version = "0.6.1";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "Teslemetry";
     repo = "python-tesla-fleet-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sUylNOgQzAMdo71eauUYXd4ssZmFwHvnDwF7SEatNAI=";
+    hash = "sha256-dCkk0ikg8KvB7us4mEcUQ1q3JIRoNbSE6STVZXRBErE=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/teslajsonpy/default.nix b/pkgs/development/python-modules/teslajsonpy/default.nix
index bbfabbefd78a6..a6d0ea2e8ee66 100644
--- a/pkgs/development/python-modules/teslajsonpy/default.nix
+++ b/pkgs/development/python-modules/teslajsonpy/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "teslajsonpy";
-  version = "3.10.3";
+  version = "3.12.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "zabuldon";
     repo = "teslajsonpy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-g5csh014gXdYJ28cBn0Frk5g3zFuZ9ufrypcLcNPwg0=";
+    hash = "sha256-oIuIE5N/cHCEP3azMrwNiknP4q3rDxg4BiFQiJqcFkc=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/tess/default.nix b/pkgs/development/python-modules/tess/default.nix
index a1d8af16fd5f9..d0443f82392a9 100644
--- a/pkgs/development/python-modules/tess/default.nix
+++ b/pkgs/development/python-modules/tess/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage {
   ];
 
   meta = with lib; {
-    description = "A module for calculating and analyzing Voronoi tessellations";
+    description = "Module for calculating and analyzing Voronoi tessellations";
     homepage = "https://tess.readthedocs.org";
     license = licenses.bsd3;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/tesserocr/default.nix b/pkgs/development/python-modules/tesserocr/default.nix
index 2c98d482cf925..f1b795fb641ce 100644
--- a/pkgs/development/python-modules/tesserocr/default.nix
+++ b/pkgs/development/python-modules/tesserocr/default.nix
@@ -49,7 +49,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/sirfz/tesserocr/releases/tag/v${version}";
-    description = "A simple, Pillow-friendly, wrapper around the tesseract-ocr API for Optical Character Recognition (OCR)";
+    description = "Simple, Pillow-friendly, wrapper around the tesseract-ocr API for Optical Character Recognition (OCR)";
     homepage = "https://github.com/sirfz/tesserocr";
     license = licenses.mit;
     maintainers = with maintainers; [ mtrsk ];
diff --git a/pkgs/development/python-modules/testbook/default.nix b/pkgs/development/python-modules/testbook/default.nix
index eb124f6442074..3e6661ceb687b 100644
--- a/pkgs/development/python-modules/testbook/default.nix
+++ b/pkgs/development/python-modules/testbook/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "testbook" ];
 
   meta = with lib; {
-    description = "A unit testing framework extension for testing code in Jupyter Notebooks";
+    description = "Unit testing framework extension for testing code in Jupyter Notebooks";
     homepage = "https://testbook.readthedocs.io/";
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ djacu ];
diff --git a/pkgs/development/python-modules/testcontainers/default.nix b/pkgs/development/python-modules/testcontainers/default.nix
index e4757b756b045..362a4f36b94ed 100644
--- a/pkgs/development/python-modules/testcontainers/default.nix
+++ b/pkgs/development/python-modules/testcontainers/default.nix
@@ -12,16 +12,16 @@
 
 buildPythonPackage rec {
   pname = "testcontainers";
-  version = "4.4.1";
-  disabled = pythonOlder "3.9";
-
+  version = "4.5.1";
   pyproject = true;
 
+  disabled = pythonOlder "3.9";
+
   src = fetchFromGitHub {
     owner = "testcontainers";
     repo = "testcontainers-python";
     rev = "refs/tags/testcontainers-v${version}";
-    hash = "sha256-osWppbptWpBSHcrHlAqNpn6j2n/qQ7iCobH3TVqB2bc=";
+    hash = "sha256-7QlT3ibSUDeC+aWi2MCagLkomXG3/VU1xHQ7Xgoh/Pw=";
   };
 
   postPatch = ''
@@ -43,12 +43,10 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "testcontainers" ];
 
-  meta = with lib; {
-    description = ''
-      Allows using docker containers for functional and integration testing
-    '';
+  meta = {
+    description = "Allows using docker containers for functional and integration testing";
     homepage = "https://github.com/testcontainers/testcontainers-python";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ onny ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ onny ];
   };
 }
diff --git a/pkgs/development/python-modules/testfixtures/default.nix b/pkgs/development/python-modules/testfixtures/default.nix
index 57e1f49ceedb9..e95952f940103 100644
--- a/pkgs/development/python-modules/testfixtures/default.nix
+++ b/pkgs/development/python-modules/testfixtures/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "testfixtures";
-  version = "8.1.0";
+  version = "8.3.0";
   pyproject = true;
   # DO NOT CONTACT upstream.
   # https://github.com/simplistix/ is only concerned with internal CI process.
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-gISJkDBIWcOito3+S8r3e25kJaOSUEe8JaUnVSd7+m0=";
+    hash = "sha256-1MC4SvLyZ2EPkIAJtQ1vmDpOWK3iLGe6tnh7WkAtWcA=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/testrail-api/default.nix b/pkgs/development/python-modules/testrail-api/default.nix
index f14156ff21460..cbad3f993bc9f 100644
--- a/pkgs/development/python-modules/testrail-api/default.nix
+++ b/pkgs/development/python-modules/testrail-api/default.nix
@@ -40,7 +40,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "testrail_api" ];
 
   meta = with lib; {
-    description = "A Python wrapper of the TestRail API";
+    description = "Python wrapper of the TestRail API";
     homepage = "https://github.com/tolstislon/testrail-api";
     changelog = "https://github.com/tolstislon/ytestrail-api/releases/tag/${version}";
     license = with licenses; [ mit ];
diff --git a/pkgs/development/python-modules/testrepository/default.nix b/pkgs/development/python-modules/testrepository/default.nix
index fb0f06d8bb104..9217aff5a8ff1 100644
--- a/pkgs/development/python-modules/testrepository/default.nix
+++ b/pkgs/development/python-modules/testrepository/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A database of test results which can be used as part of developer workflow";
+    description = "Database of test results which can be used as part of developer workflow";
     mainProgram = "testr";
     homepage = "https://pypi.python.org/pypi/testrepository";
     license = licenses.bsd2;
diff --git a/pkgs/development/python-modules/testscenarios/default.nix b/pkgs/development/python-modules/testscenarios/default.nix
index 665224348436b..f46f4e2f2c1ac 100644
--- a/pkgs/development/python-modules/testscenarios/default.nix
+++ b/pkgs/development/python-modules/testscenarios/default.nix
@@ -49,7 +49,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A pyunit extension for dependency injection";
+    description = "Pyunit extension for dependency injection";
     homepage = "https://github.com/testing-cabal/testscenarios";
     license = licenses.asl20;
   };
diff --git a/pkgs/development/python-modules/testtools/default.nix b/pkgs/development/python-modules/testtools/default.nix
index 96f9dc61712e2..b097963861c5b 100644
--- a/pkgs/development/python-modules/testtools/default.nix
+++ b/pkgs/development/python-modules/testtools/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = {
-    description = "A set of extensions to the Python standard library's unit testing framework";
+    description = "Set of extensions to the Python standard library's unit testing framework";
     homepage = "https://pypi.python.org/pypi/testtools";
     license = lib.licenses.mit;
   };
diff --git a/pkgs/development/python-modules/text-unidecode/default.nix b/pkgs/development/python-modules/text-unidecode/default.nix
index afd32047d5372..dd72689635ee6 100644
--- a/pkgs/development/python-modules/text-unidecode/default.nix
+++ b/pkgs/development/python-modules/text-unidecode/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "The most basic Text::Unidecode port";
+    description = "Most basic Text::Unidecode port";
     homepage = "https://github.com/kmike/text-unidecode";
     license = licenses.artistic1;
   };
diff --git a/pkgs/development/python-modules/textparser/default.nix b/pkgs/development/python-modules/textparser/default.nix
index 550c7f2c9af44..f0f2e0b16a3d9 100644
--- a/pkgs/development/python-modules/textparser/default.nix
+++ b/pkgs/development/python-modules/textparser/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/eerimoq/textparser";
-    description = "A text parser";
+    description = "Text parser";
     license = licenses.mit;
     maintainers = with maintainers; [ gray-heron ];
   };
diff --git a/pkgs/development/python-modules/textual-dev/default.nix b/pkgs/development/python-modules/textual-dev/default.nix
index 41fcf67a54044..0e2b1c4884bee 100644
--- a/pkgs/development/python-modules/textual-dev/default.nix
+++ b/pkgs/development/python-modules/textual-dev/default.nix
@@ -6,11 +6,8 @@
   fetchFromGitHub,
   msgpack,
   poetry-core,
-  pytest-aiohttp,
-  pytestCheckHook,
   pythonOlder,
   textual,
-  time-machine,
   typing-extensions,
 }:
 
@@ -28,9 +25,9 @@ buildPythonPackage rec {
     hash = "sha256-QnMKVt1WxnwGnZFNb7Gbus7xewGvyG5xJ0hIKKK5hug=";
   };
 
-  nativeBuildInputs = [ poetry-core ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     click
     msgpack
@@ -38,19 +35,17 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  nativeCheckInputs = [
-    pytest-aiohttp
-    pytestCheckHook
-    time-machine
-  ];
+  # Tests require a running textual WS server
+  doCheck = false;
 
   pythonImportsCheck = [ "textual_dev" ];
 
   meta = with lib; {
     description = "Development tools for Textual";
-    mainProgram = "textual";
     homepage = "https://github.com/Textualize/textual-dev";
+    changelog = "https://github.com/Textualize/textual-dev/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ yannip ];
+    mainProgram = "textual";
   };
 }
diff --git a/pkgs/development/python-modules/textual/default.nix b/pkgs/development/python-modules/textual/default.nix
index 859f3508e3a40..c6a677f4c65a7 100644
--- a/pkgs/development/python-modules/textual/default.nix
+++ b/pkgs/development/python-modules/textual/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "textual";
-  version = "0.53.1";
+  version = "0.68.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "Textualize";
     repo = "textual";
     rev = "refs/tags/v${version}";
-    hash = "sha256-73qEogHe69B66r4EJOj2RAP95O5z7v/UYARTIEPxrcA=";
+    hash = "sha256-nxQVxe7lXMcxyqh4SWcQ/A6eQcEzkSshKmpweHpn7JE=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/tf-keras/default.nix b/pkgs/development/python-modules/tf-keras/default.nix
new file mode 100644
index 0000000000000..0e04011592109
--- /dev/null
+++ b/pkgs/development/python-modules/tf-keras/default.nix
@@ -0,0 +1,55 @@
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  pythonRelaxDepsHook,
+  setuptools,
+  wheel,
+  numpy,
+  tensorflow,
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "tf-keras";
+  version = "2.16.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchPypi {
+    pname = "tf_keras";
+    inherit version;
+    hash = "sha256-21OJHxrJgZfCrM7ZjNyowGuoJVZVpst+uV7UlnYRgoA=";
+  };
+
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "tensorflow"
+  ];
+
+  build-system = [
+    setuptools
+    wheel
+  ];
+
+  dependencies = [
+    numpy
+    tensorflow
+  ];
+
+  pythonImportsCheck = [ "tf_keras" ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  meta = {
+    description = "Deep learning for humans";
+    homepage = "https://pypi.org/project/tf-keras/";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
+  };
+}
diff --git a/pkgs/development/python-modules/tf2onnx/default.nix b/pkgs/development/python-modules/tf2onnx/default.nix
index cd7489b538b40..7c1926a11cbd7 100644
--- a/pkgs/development/python-modules/tf2onnx/default.nix
+++ b/pkgs/development/python-modules/tf2onnx/default.nix
@@ -79,5 +79,10 @@ buildPythonPackage rec {
     homepage = "https://github.com/onnx/tensorflow-onnx";
     license = licenses.asl20;
     maintainers = with maintainers; [ happysalada ];
+    # Duplicated `protobuf` in the derivation:
+    # - version 4.24.4 (from onnx), the default version of protobuf in nixpkgs
+    # - version 4.21.12 (from tensorflow), pinned as such because tensorflow is outdated and does
+    #   not support more recent versions of protobuf
+    broken = true;
   };
 }
diff --git a/pkgs/development/python-modules/theano-pymc/default.nix b/pkgs/development/python-modules/theano-pymc/default.nix
deleted file mode 100644
index 31c08585e0064..0000000000000
--- a/pkgs/development/python-modules/theano-pymc/default.nix
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  lib,
-  fetchPypi,
-  buildPythonPackage,
-  pythonOlder,
-  pandas,
-  numpy,
-  scipy,
-  filelock,
-  pytest,
-  nose,
-  parameterized,
-}:
-
-buildPythonPackage rec {
-  pname = "theano-pymc";
-  version = "1.1.2";
-  format = "setuptools";
-  disabled = pythonOlder "3.6";
-
-  src = fetchPypi {
-    pname = "Theano-PyMC";
-    inherit version;
-    sha256 = "5da6c2242ea72a991c8446d7fe7d35189ea346ef7d024c890397011114bf10fc";
-  };
-
-  # No need for coverage stats in Nix builds
-  postPatch = ''
-    substituteInPlace setup.py --replace ", 'pytest-cov'" ""
-  '';
-
-  propagatedBuildInputs = [
-    pandas
-    numpy
-    scipy
-    filelock
-  ];
-
-  # The test suite is computationally intensive and test failures are not
-  # indicative for package usability hence tests are disabled by default.
-  doCheck = false;
-  pythonImportsCheck = [ "theano" ];
-
-  meta = {
-    description = "PyMC theano fork";
-    homepage = "https://github.com/majidaldo/Theano-PyMC";
-    license = lib.licenses.asl20;
-    maintainers = with lib.maintainers; [ nidabdella ];
-    broken = true;
-  };
-}
diff --git a/pkgs/development/python-modules/theano/default.nix b/pkgs/development/python-modules/theano/default.nix
deleted file mode 100644
index 8d10dc61a9a18..0000000000000
--- a/pkgs/development/python-modules/theano/default.nix
+++ /dev/null
@@ -1,117 +0,0 @@
-{
-  lib,
-  stdenv,
-  runCommandCC,
-  fetchPypi,
-  buildPythonPackage,
-  isPyPy,
-  pythonOlder,
-  isPy3k,
-  nose,
-  numpy,
-  scipy,
-  setuptools,
-  six,
-  libgpuarray,
-  config,
-  cudaSupport ? config.cudaSupport,
-  cudaPackages ? { },
-  cudnnSupport ? cudaSupport,
-}:
-
-let
-  inherit (cudaPackages) cudatoolkit cudnn;
-in
-
-assert cudnnSupport -> cudaSupport;
-
-let
-  wrapped =
-    command: buildTop: buildInputs:
-    runCommandCC "${command}-wrapped" { inherit buildInputs; } ''
-      type -P '${command}' || { echo '${command}: not found'; exit 1; }
-      cat > "$out" <<EOF
-      #!$(type -P bash)
-      $(declare -xp | sed -e '/^[^=]\+="\('"''${NIX_STORE//\//\\/}"'\|[^\/]\)/!d')
-      declare -x NIX_BUILD_TOP="${buildTop}"
-      $(type -P '${command}') "\$@"
-      EOF
-      chmod +x "$out"
-    '';
-
-  # Theano spews warnings and disabled flags if the compiler isn't named g++
-  cxx_compiler_name =
-    if stdenv.cc.isGNU then
-      "g++"
-    else if stdenv.cc.isClang then
-      "clang++"
-    else
-      throw "Unknown C++ compiler";
-  cxx_compiler = wrapped cxx_compiler_name "\\$HOME/.theano" (
-    lib.optional cudaSupport libgpuarray_ ++ lib.optional cudnnSupport cudnn
-  );
-
-  # We need to be careful with overriding Python packages within the package set
-  # as this can lead to collisions!
-  libgpuarray_ = libgpuarray.override { inherit cudaSupport cudaPackages; };
-in
-buildPythonPackage rec {
-  pname = "theano";
-  version = "1.0.5";
-  format = "setuptools";
-
-  disabled = isPyPy || pythonOlder "2.6";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "129f43ww2a6badfdr6b88kzjzz2b0wk0dwkvwb55z6dsagfkk53f";
-  };
-
-  postPatch =
-    ''
-      substituteInPlace theano/configdefaults.py \
-        --replace 'StrParam(param, is_valid=warn_cxx)' 'StrParam('\'''${cxx_compiler}'\''', is_valid=warn_cxx)' \
-        --replace 'rc == 0 and config.cxx != ""' 'config.cxx != ""'
-    ''
-    + lib.optionalString cudaSupport ''
-      substituteInPlace theano/configdefaults.py \
-        --replace 'StrParam(get_cuda_root)' 'StrParam('\'''${cudatoolkit}'\''')'
-    ''
-    + lib.optionalString cudnnSupport ''
-      substituteInPlace theano/configdefaults.py \
-        --replace 'StrParam(default_dnn_base_path)' 'StrParam('\'''${cudnn}'\''')'
-    '';
-
-  # needs to be postFixup so it runs before pythonImportsCheck even when
-  # doCheck = false (meaning preCheck would be disabled)
-  postFixup = ''
-    mkdir -p check-phase
-    export HOME=$(pwd)/check-phase
-  '';
-  doCheck = false;
-  # takes far too long, also throws "TypeError: sort() missing 1 required positional argument: 'a'"
-  # when run from the installer, and testing with Python 3.5 hits github.com/Theano/Theano/issues/4276,
-  # the fix for which hasn't been merged yet.
-
-  # keep Nose around since running the tests by hand is possible from Python or bash
-  nativeCheckInputs = [ nose ];
-  # setuptools needed for cuda support
-  propagatedBuildInputs = [
-    libgpuarray_
-    numpy
-    numpy.blas
-    scipy
-    setuptools
-    six
-  ];
-
-  pythonImportsCheck = [ "theano" ];
-
-  meta = with lib; {
-    homepage = "https://github.com/Theano/Theano";
-    description = "A Python library for large-scale array computation";
-    license = licenses.bsd3;
-    maintainers = [ ];
-    broken = true;
-  };
-}
diff --git a/pkgs/development/python-modules/threadloop/default.nix b/pkgs/development/python-modules/threadloop/default.nix
index c6fce7e1b4997..9b548f1a9127b 100644
--- a/pkgs/development/python-modules/threadloop/default.nix
+++ b/pkgs/development/python-modules/threadloop/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "threadloop" ];
 
   meta = with lib; {
-    description = "A library to run tornado coroutines from synchronous Python";
+    description = "Library to run tornado coroutines from synchronous Python";
     homepage = "https://github.com/GoodPete/threadloop";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/thrift/default.nix b/pkgs/development/python-modules/thrift/default.nix
index 37ea571250527..f33ba9cfa2f64 100644
--- a/pkgs/development/python-modules/thrift/default.nix
+++ b/pkgs/development/python-modules/thrift/default.nix
@@ -2,20 +2,28 @@
   lib,
   buildPythonPackage,
   fetchPypi,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
   six,
 }:
 
 buildPythonPackage rec {
   pname = "thrift";
   version = "0.20.0";
-  format = "setuptools";
+  pyproject = true;
+
+  # Still uses distutils
+  disabled = pythonOlder "3.7" || pythonAtLeast "3.12";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-TdZi6t9riuvopBcpUnvWmt9s6qKoaBy+9k0Sc7Po/ro=";
   };
 
-  propagatedBuildInputs = [ six ];
+  build-system = [ setuptools ];
+
+  dependencies = [ six ];
 
   # No tests. Breaks when not disabling.
   doCheck = false;
diff --git a/pkgs/development/python-modules/throttler/default.nix b/pkgs/development/python-modules/throttler/default.nix
index e42a9d48fae02..4dc15bffedae1 100644
--- a/pkgs/development/python-modules/throttler/default.nix
+++ b/pkgs/development/python-modules/throttler/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
   pytestFlagsArray = [ "tests/" ];
 
   meta = with lib; {
-    description = "Zero-dependency Python package for easy throttling with asyncio support.";
+    description = "Zero-dependency Python package for easy throttling with asyncio support";
     homepage = "https://github.com/uburuntu/throttler";
     license = licenses.mit;
     maintainers = with maintainers; [ renatoGarcia ];
diff --git a/pkgs/development/python-modules/thttp/default.nix b/pkgs/development/python-modules/thttp/default.nix
index fe755ea20efab..afda125c5d4e6 100644
--- a/pkgs/development/python-modules/thttp/default.nix
+++ b/pkgs/development/python-modules/thttp/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "thttp" ];
 
   meta = with lib; {
-    description = "A lightweight wrapper around urllib";
+    description = "Lightweight wrapper around urllib";
     homepage = "https://github.com/sesh/thttp";
     changelog = "https://github.com/sesh/thttp/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/tika-client/default.nix b/pkgs/development/python-modules/tika-client/default.nix
index c99ce3fe20f63..ec9c4a0f4dd17 100644
--- a/pkgs/development/python-modules/tika-client/default.nix
+++ b/pkgs/development/python-modules/tika-client/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   doChecks = false;
 
   meta = with lib; {
-    description = "A modern Python REST client for Apache Tika server";
+    description = "Modern Python REST client for Apache Tika server";
     homepage = "https://github.com/stumpylog/tika-client";
     changelog = "https://github.com/stumpylog/tika-client/blob/${version}/CHANGELOG.md";
     license = licenses.mpl20;
diff --git a/pkgs/development/python-modules/tika/default.nix b/pkgs/development/python-modules/tika/default.nix
index 7152da2c881fb..8d2148523f814 100644
--- a/pkgs/development/python-modules/tika/default.nix
+++ b/pkgs/development/python-modules/tika/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ pname ];
 
   meta = with lib; {
-    description = "A Python binding to the Apache Tika™ REST services";
+    description = "Python binding to the Apache Tika™ REST services";
     mainProgram = "tika-python";
     homepage = "https://github.com/chrismattmann/tika-python";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/tiktoken/default.nix b/pkgs/development/python-modules/tiktoken/default.nix
index 1a386a2bacf68..d7b8b6c1c631f 100644
--- a/pkgs/development/python-modules/tiktoken/default.nix
+++ b/pkgs/development/python-modules/tiktoken/default.nix
@@ -70,7 +70,7 @@ buildPythonPackage {
   pythonImportsCheck = [ "tiktoken" ];
 
   meta = with lib; {
-    description = "tiktoken is a fast BPE tokeniser for use with OpenAI's models.";
+    description = "tiktoken is a fast BPE tokeniser for use with OpenAI's models";
     homepage = "https://github.com/openai/tiktoken";
     license = licenses.mit;
     maintainers = with maintainers; [ happysalada ];
diff --git a/pkgs/development/python-modules/tilestache/default.nix b/pkgs/development/python-modules/tilestache/default.nix
index 3fac56f31be5d..23fe0e26ea7cb 100644
--- a/pkgs/development/python-modules/tilestache/default.nix
+++ b/pkgs/development/python-modules/tilestache/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A tile server for rendered geographic data";
+    description = "Tile server for rendered geographic data";
     homepage = "http://tilestache.org";
     license = licenses.bsd3;
   };
diff --git a/pkgs/development/python-modules/timecop/default.nix b/pkgs/development/python-modules/timecop/default.nix
index 443b609fb4c4f..8099f646606cb 100644
--- a/pkgs/development/python-modules/timecop/default.nix
+++ b/pkgs/development/python-modules/timecop/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "timecop" ];
 
   meta = with lib; {
-    description = "A port of the most excellent TimeCop Ruby Gem for Python";
+    description = "Port of the most excellent TimeCop Ruby Gem for Python";
     homepage = "https://github.com/bluekelp/pytimecop";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ zakame ];
diff --git a/pkgs/development/python-modules/timezonefinder/default.nix b/pkgs/development/python-modules/timezonefinder/default.nix
index 07f8fce863e93..38662f50d8f7d 100644
--- a/pkgs/development/python-modules/timezonefinder/default.nix
+++ b/pkgs/development/python-modules/timezonefinder/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "timezonefinder";
-  version = "6.5.0";
+  version = "6.5.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "jannikmi";
     repo = "timezonefinder";
     rev = "refs/tags/${version}";
-    hash = "sha256-V5g1zTdXWeJba71/eUGQbF9XOhMQuzivtGkqGD4OHMY=";
+    hash = "sha256-KVjAK4r+cRrX7U6MT0P7hH/TX6kMDv2DaSa456YG4sA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/timm/default.nix b/pkgs/development/python-modules/timm/default.nix
index be58f447dba4d..a02c90152435a 100644
--- a/pkgs/development/python-modules/timm/default.nix
+++ b/pkgs/development/python-modules/timm/default.nix
@@ -5,6 +5,7 @@
   fetchFromGitHub,
   pdm-backend,
   huggingface-hub,
+  numpy,
   pyyaml,
   safetensors,
   torch,
@@ -16,22 +17,23 @@
 
 buildPythonPackage rec {
   pname = "timm";
-  version = "1.0.3";
+  version = "1.0.7";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "huggingface";
     repo = "pytorch-image-models";
     rev = "refs/tags/v${version}";
-    hash = "sha256-h2J1v2zXUMGRKBBqq+RnxrXKOzlD5RRrVoODWSuj9Ms=";
+    hash = "sha256-0o88gOZvHXblGPwyRIz2D3sD7wdg0J0knrAFlognEOY=";
   };
 
   build-system = [ pdm-backend ];
 
   dependencies = [
     huggingface-hub
+    numpy
     pyyaml
     safetensors
     torch
diff --git a/pkgs/development/python-modules/timy/default.nix b/pkgs/development/python-modules/timy/default.nix
new file mode 100644
index 0000000000000..3fb4096bb5196
--- /dev/null
+++ b/pkgs/development/python-modules/timy/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "timy";
+  version = "0.4.2";
+
+  src = fetchFromGitHub {
+    owner = "ramonsaraiva";
+    repo = "timy";
+    rev = "36a97e55f058de002a0da4f2a8e18c00d944821c";
+    hash = "sha256-4Opaph8Q1tQH+C/Epur8AA26RN4vO944DjCg0zDJqxM=";
+  };
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Minimalist measurement of python code time";
+    homepage = "https://github.com/ramonsaraiva/timy";
+    license = licenses.mit;
+    maintainers = with maintainers; [ flandweber ];
+  };
+}
diff --git a/pkgs/development/python-modules/tinygrad/default.nix b/pkgs/development/python-modules/tinygrad/default.nix
index 82a57f7d7f08b..cd322ecfacde9 100644
--- a/pkgs/development/python-modules/tinygrad/default.nix
+++ b/pkgs/development/python-modules/tinygrad/default.nix
@@ -1,12 +1,25 @@
 {
   lib,
+  config,
   buildPythonPackage,
   fetchFromGitHub,
+  substituteAll,
+  addDriverRunpath,
+  cudaSupport ? config.cudaSupport,
+  rocmSupport ? config.rocmSupport,
+  cudaPackages,
+  ocl-icd,
+  stdenv,
+  rocmPackages,
+  # build-system
   setuptools,
   wheel,
-  gpuctypes,
+  # dependencies
   numpy,
   tqdm,
+  # nativeCheckInputs
+  clang,
+  hexdump,
   hypothesis,
   librosa,
   onnx,
@@ -22,30 +35,67 @@
 
 buildPythonPackage rec {
   pname = "tinygrad";
-  version = "0.8.0";
+  version = "0.9.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "tinygrad";
     repo = "tinygrad";
     rev = "refs/tags/v${version}";
-    hash = "sha256-QAccZ79qUbe27yUykIf22WdkxYUlOffnMlShakKfp60=";
+    hash = "sha256-opBxciETZruZjHqz/3vO7rogzjvVJKItulIiok/Zs2Y=";
   };
 
-  nativeBuildInputs = [
+  patches = [
+    (substituteAll {
+      src = ./fix-dlopen-cuda.patch;
+      inherit (addDriverRunpath) driverLink;
+      libnvrtc =
+        if cudaSupport then
+          "${lib.getLib cudaPackages.cuda_nvrtc}/lib/libnvrtc.so"
+        else
+          "Please import nixpkgs with `config.cudaSupport = true`";
+    })
+  ];
+
+  postPatch =
+    ''
+      substituteInPlace tinygrad/runtime/autogen/opencl.py \
+        --replace-fail "ctypes.util.find_library('OpenCL')" "'${ocl-icd}/lib/libOpenCL.so'"
+    ''
+    # hipGetDevicePropertiesR0600 is a symbol from rocm-6. We are currently at rocm-5.
+    # We are not sure that this works. Remove when rocm gets updated to version 6.
+    + lib.optionalString rocmSupport ''
+      substituteInPlace extra/hip_gpu_driver/hip_ioctl.py \
+        --replace-fail "processor = platform.processor()" "processor = ${stdenv.hostPlatform.linuxArch}"
+      substituteInPlace tinygrad/runtime/autogen/hip.py \
+        --replace-fail "/opt/rocm/lib/libamdhip64.so" "${rocmPackages.clr}/lib/libamdhip64.so" \
+        --replace-fail "/opt/rocm/lib/libhiprtc.so" "${rocmPackages.clr}/lib/libhiprtc.so" \
+        --replace-fail "hipGetDevicePropertiesR0600" "hipGetDeviceProperties"
+
+      substituteInPlace tinygrad/runtime/autogen/comgr.py \
+        --replace-fail "/opt/rocm/lib/libamd_comgr.so" "${rocmPackages.rocm-comgr}/lib/libamd_comgr.so"
+    '';
+
+  build-system = [
     setuptools
     wheel
   ];
 
-  propagatedBuildInputs = [
-    gpuctypes
-    numpy
-    tqdm
-  ];
+  dependencies =
+    [
+      numpy
+      tqdm
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # pyobjc-framework-libdispatch
+      # pyobjc-framework-metal
+    ];
 
   pythonImportsCheck = [ "tinygrad" ];
 
   nativeCheckInputs = [
+    clang
+    hexdump
     hypothesis
     librosa
     onnx
@@ -63,50 +113,68 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
-  disabledTests = [
-    # Require internet access
-    "test_benchmark_openpilot_model"
-    "test_bn_alone"
-    "test_bn_linear"
-    "test_bn_mnist"
-    "test_car"
-    "test_chicken"
-    "test_chicken_bigbatch"
-    "test_conv_mnist"
-    "testCopySHMtoDefault"
-    "test_data_parallel_resnet"
-    "test_e2e_big"
-    "test_fetch_small"
-    "test_huggingface_enet_safetensors"
-    "test_linear_mnist"
-    "test_load_convnext"
-    "test_load_enet"
-    "test_load_enet_alt"
-    "test_load_llama2bfloat"
-    "test_load_resnet"
-    "test_openpilot_model"
-    "test_resnet"
-    "test_shufflenet"
-    "test_transcribe_batch12"
-    "test_transcribe_batch21"
-    "test_transcribe_file1"
-    "test_transcribe_file2"
-    "test_transcribe_long"
-    "test_transcribe_long_no_batch"
-    "test_vgg7"
-  ];
+  disabledTests =
+    [
+      # Require internet access
+      "test_benchmark_openpilot_model"
+      "test_bn_alone"
+      "test_bn_linear"
+      "test_bn_mnist"
+      "test_car"
+      "test_chicken"
+      "test_chicken_bigbatch"
+      "test_conv_mnist"
+      "testCopySHMtoDefault"
+      "test_data_parallel_resnet"
+      "test_e2e_big"
+      "test_fetch_small"
+      "test_huggingface_enet_safetensors"
+      "test_linear_mnist"
+      "test_load_convnext"
+      "test_load_enet"
+      "test_load_enet_alt"
+      "test_load_llama2bfloat"
+      "test_load_resnet"
+      "test_openpilot_model"
+      "test_resnet"
+      "test_shufflenet"
+      "test_transcribe_batch12"
+      "test_transcribe_batch21"
+      "test_transcribe_file1"
+      "test_transcribe_file2"
+      "test_transcribe_long"
+      "test_transcribe_long_no_batch"
+      "test_vgg7"
+    ]
+    # Fail on aarch64-linux with AssertionError
+    ++ lib.optionals (stdenv.hostPlatform.system == "aarch64-linux") [
+      "test_casts_to"
+      "test_casts_to"
+      "test_int8_to_uint16_negative"
+      "test_casts_to"
+      "test_casts_to"
+      "test_casts_from"
+      "test_casts_to"
+      "test_int8"
+      "test_casts_to"
+    ];
 
-  disabledTestPaths = [
-    "test/extra/test_lr_scheduler.py"
-    "test/models/test_mnist.py"
-    "test/models/test_real_world.py"
-  ];
+  disabledTestPaths =
+    [
+      # Require internet access
+      "test/models/test_mnist.py"
+      "test/models/test_real_world.py"
+      "test/testextra/test_lr_scheduler.py"
+    ]
+    ++ lib.optionals (!rocmSupport) [ "extra/hip_gpu_driver/" ];
 
   meta = with lib; {
-    description = "A simple and powerful neural network framework";
+    description = "Simple and powerful neural network framework";
     homepage = "https://github.com/tinygrad/tinygrad";
     changelog = "https://github.com/tinygrad/tinygrad/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ GaetanLepage ];
+    # Requires unpackaged pyobjc-framework-libdispatch and pyobjc-framework-metal
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/python-modules/gpuctypes/fix-dlopen-cuda.patch b/pkgs/development/python-modules/tinygrad/fix-dlopen-cuda.patch
index 8d3b69e35e110..6b77173b4eccf 100644
--- a/pkgs/development/python-modules/gpuctypes/fix-dlopen-cuda.patch
+++ b/pkgs/development/python-modules/tinygrad/fix-dlopen-cuda.patch
@@ -1,9 +1,9 @@
-diff --git a/gpuctypes/cuda.py b/gpuctypes/cuda.py
-index acba81c..aac5fc7 100644
---- a/gpuctypes/cuda.py
-+++ b/gpuctypes/cuda.py
-@@ -143,9 +143,25 @@ def char_pointer_cast(string, encoding='utf-8'):
- 
+diff --git a/tinygrad/runtime/autogen/cuda.py b/tinygrad/runtime/autogen/cuda.py
+index 359083a9..3cd5f7be 100644
+--- a/tinygrad/runtime/autogen/cuda.py
++++ b/tinygrad/runtime/autogen/cuda.py
+@@ -143,10 +143,25 @@ def char_pointer_cast(string, encoding='utf-8'):
+     return ctypes.cast(string, ctypes.POINTER(ctypes.c_char))
  
  
 +NAME_TO_PATHS = {
@@ -19,9 +19,9 @@ index acba81c..aac5fc7 100644
 +        try:
 +            return ctypes.CDLL(candidate)
 +        except OSError:
-+	     pass
++	        pass
 +    raise RuntimeError(f"{name} not found")
-+
+ 
  _libraries = {}
 -_libraries['libcuda.so'] = ctypes.CDLL(ctypes.util.find_library('cuda'))
 -_libraries['libnvrtc.so'] = ctypes.CDLL(ctypes.util.find_library('nvrtc'))
diff --git a/pkgs/development/python-modules/tinytuya/default.nix b/pkgs/development/python-modules/tinytuya/default.nix
index c2d4889077acb..cb9b37a01a84d 100644
--- a/pkgs/development/python-modules/tinytuya/default.nix
+++ b/pkgs/development/python-modules/tinytuya/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "tinytuya";
-  version = "1.13.2";
+  version = "1.14.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "jasonacox";
     repo = "tinytuya";
     rev = "refs/tags/v${version}";
-    hash = "sha256-44x5P+Ej/d6B5n53iDuLDBzkeZZvArpcgzXLJBcIJe0=";
+    hash = "sha256-ytM7S0V/hDOCb3RyzAXZEd2zV/sMVQPrah/2zRACMsQ=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/tkinter/default.nix b/pkgs/development/python-modules/tkinter/default.nix
index 17b1188695f9d..beba9834e703c 100644
--- a/pkgs/development/python-modules/tkinter/default.nix
+++ b/pkgs/development/python-modules/tkinter/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage {
 
   meta = py.meta // {
     # Based on first sentence from https://docs.python.org/3/library/tkinter.html
-    description = "The standard Python interface to the Tcl/Tk GUI toolkit";
+    description = "Standard Python interface to the Tcl/Tk GUI toolkit";
     longDescription = ''
       The tkinter package (“Tk interface”) is the standard Python interface to
       the Tcl/Tk GUI toolkit. Both Tk and tkinter are available on most Unix
diff --git a/pkgs/development/python-modules/tlds/default.nix b/pkgs/development/python-modules/tlds/default.nix
index 5efe067d2ed3b..b1248d18b283b 100644
--- a/pkgs/development/python-modules/tlds/default.nix
+++ b/pkgs/development/python-modules/tlds/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Automatically updated list of valid TLDs taken directly from IANA";
-    homepage = "https://github.com/mweinelt/tlds";
+    homepage = "https://github.com/kichik/tlds";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
   };
diff --git a/pkgs/development/python-modules/tlslite-ng/default.nix b/pkgs/development/python-modules/tlslite-ng/default.nix
index bfad6ff0a0878..266acc638b8fc 100644
--- a/pkgs/development/python-modules/tlslite-ng/default.nix
+++ b/pkgs/development/python-modules/tlslite-ng/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   buildInputs = [ ecdsa ];
 
   meta = with lib; {
-    description = "Pure python implementation of SSL and TLS.";
+    description = "Pure python implementation of SSL and TLS";
     homepage = "https://pypi.python.org/pypi/tlslite-ng";
     license = licenses.lgpl2;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/tlslite/default.nix b/pkgs/development/python-modules/tlslite/default.nix
index b974ad27f8d3c..069377735f6b9 100644
--- a/pkgs/development/python-modules/tlslite/default.nix
+++ b/pkgs/development/python-modules/tlslite/default.nix
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A pure Python implementation of SSL and TLS";
+    description = "Pure Python implementation of SSL and TLS";
     homepage = "https://pypi.python.org/pypi/tlslite";
     license = licenses.bsd3;
   };
diff --git a/pkgs/development/python-modules/todoist/default.nix b/pkgs/development/python-modules/todoist/default.nix
index d5f8bdf31c2b2..e276725a53a89 100644
--- a/pkgs/development/python-modules/todoist/default.nix
+++ b/pkgs/development/python-modules/todoist/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "todoist" ];
 
   meta = with lib; {
-    description = "The official Todoist Python API library";
+    description = "Official Todoist Python API library";
     homepage = "https://todoist-python.readthedocs.io/";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/tokenize-rt/default.nix b/pkgs/development/python-modules/tokenize-rt/default.nix
index 3f25d158b872b..1634f76813630 100644
--- a/pkgs/development/python-modules/tokenize-rt/default.nix
+++ b/pkgs/development/python-modules/tokenize-rt/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A wrapper around the stdlib `tokenize` which roundtrips";
+    description = "Wrapper around the stdlib `tokenize` which roundtrips";
     mainProgram = "tokenize-rt";
     homepage = "https://github.com/asottile/tokenize-rt";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/tokenizers/default.nix b/pkgs/development/python-modules/tokenizers/default.nix
index 18ccce25f08d5..cda6f1b7a58ef 100644
--- a/pkgs/development/python-modules/tokenizers/default.nix
+++ b/pkgs/development/python-modules/tokenizers/default.nix
@@ -99,12 +99,6 @@ buildPythonPackage rec {
       Security
     ];
 
-  # Cargo.lock is outdated
-  # TODO: remove at next release
-  preConfigure = ''
-    cargo update --offline
-  '';
-
   dependencies = [
     numpy
     huggingface-hub
diff --git a/pkgs/development/python-modules/tokenlib/default.nix b/pkgs/development/python-modules/tokenlib/default.nix
index 1b0641574eec3..59a19b81a3f92 100644
--- a/pkgs/development/python-modules/tokenlib/default.nix
+++ b/pkgs/development/python-modules/tokenlib/default.nix
@@ -4,25 +4,40 @@
   fetchFromGitHub,
   requests,
   webob,
+  fetchpatch,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "tokenlib";
-  version = "0.3.1";
-  format = "setuptools";
+  version = "2.0.0";
+
+  pyproject = true;
+  build-system = [ setuptools ];
 
   src = fetchFromGitHub {
     owner = "mozilla-services";
-    repo = pname;
-    rev = "refs/tags/${version}";
-    sha256 = "0bq6dqyfwh29pg8ngmrm4mx4q27an9lsj0p9l79p9snn4g2rxzc8";
+    repo = "tokenlib";
+    rev = "${version}";
+    hash = "sha256-+KybaLb4XAcuBARJUhL5gK71jfNMb8YL8dV5Vzf7yXI=";
   };
 
-  propagatedBuildInputs = [
+  patches = [
+    # fix wrong function name in tests
+    # See https://github.com/mozilla-services/tokenlib/pull/9
+    (fetchpatch {
+      url = "https://github.com/mozilla-services/tokenlib/pull/9/commits/cb7ef761f82f36e40069bd1b8684eec05af3b8a3.patch";
+      hash = "sha256-hc+iydxZu9bFqBD0EQDWMkRs2ibqNAhx6Qxjh6ppKNw=";
+    })
+  ];
+
+  dependencies = [
     requests
     webob
   ];
 
+  pythonImportsCheck = [ "tokenlib" ];
+
   meta = with lib; {
     homepage = "https://github.com/mozilla-services/tokenlib";
     description = "Generic support library for signed-token-based auth schemes";
diff --git a/pkgs/development/python-modules/tololib/default.nix b/pkgs/development/python-modules/tololib/default.nix
index 2ab0dbd7c89ae..03bb2f2ea81e7 100644
--- a/pkgs/development/python-modules/tololib/default.nix
+++ b/pkgs/development/python-modules/tololib/default.nix
@@ -3,7 +3,6 @@
   stdenv,
   buildPythonPackage,
   fetchFromGitLab,
-  fetchpatch,
   pytestCheckHook,
   pythonOlder,
   setuptools-scm,
diff --git a/pkgs/development/python-modules/toml-adapt/default.nix b/pkgs/development/python-modules/toml-adapt/default.nix
index eac465d67ddcc..8d6184cbc5738 100644
--- a/pkgs/development/python-modules/toml-adapt/default.nix
+++ b/pkgs/development/python-modules/toml-adapt/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "toml_adapt" ];
 
   meta = with lib; {
-    description = "A simple Command-line interface for manipulating toml files";
+    description = "Simple Command-line interface for manipulating toml files";
     homepage = "https://github.com/firefly-cpp/toml-adapt";
     changelog = "https://github.com/firefly-cpp/toml-adapt/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/toml/default.nix b/pkgs/development/python-modules/toml/default.nix
index 9932db2b5caba..883bfeaeed6db 100644
--- a/pkgs/development/python-modules/toml/default.nix
+++ b/pkgs/development/python-modules/toml/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "a Python library for parsing and creating TOML";
+    description = "Python library for parsing and creating TOML";
     homepage = "https://github.com/uiri/toml";
     license = licenses.mit;
     maintainers = with maintainers; [ twey ];
diff --git a/pkgs/development/python-modules/tomli-w/default.nix b/pkgs/development/python-modules/tomli-w/default.nix
index 40b3162dd3a62..c864dfe142656 100644
--- a/pkgs/development/python-modules/tomli-w/default.nix
+++ b/pkgs/development/python-modules/tomli-w/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "tomli_w" ];
 
   meta = with lib; {
-    description = "A write-only counterpart to Tomli, which is a read-only TOML parser";
+    description = "Write-only counterpart to Tomli, which is a read-only TOML parser";
     homepage = "https://github.com/hukkin/tomli-w";
     license = licenses.mit;
     maintainers = with maintainers; [ lovesegfault ];
diff --git a/pkgs/development/python-modules/tomli/default.nix b/pkgs/development/python-modules/tomli/default.nix
index 407d4c76b560a..74a9f78b2e4ba 100644
--- a/pkgs/development/python-modules/tomli/default.nix
+++ b/pkgs/development/python-modules/tomli/default.nix
@@ -42,7 +42,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A Python library for parsing TOML, fully compatible with TOML v1.0.0";
+    description = "Python library for parsing TOML, fully compatible with TOML v1.0.0";
     homepage = "https://github.com/hukkin/tomli";
     license = licenses.mit;
     maintainers = with maintainers; [ veehaitch ];
diff --git a/pkgs/development/python-modules/toposort/default.nix b/pkgs/development/python-modules/toposort/default.nix
index 6b223545e1a92..f7d1a069434a9 100644
--- a/pkgs/development/python-modules/toposort/default.nix
+++ b/pkgs/development/python-modules/toposort/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "toposort" ];
 
   meta = with lib; {
-    description = "A topological sort algorithm";
+    description = "Topological sort algorithm";
     homepage = "https://pypi.python.org/pypi/toposort/";
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
diff --git a/pkgs/development/python-modules/torch/bin.nix b/pkgs/development/python-modules/torch/bin.nix
index 7f90712f50db8..f9d5cd97c183a 100644
--- a/pkgs/development/python-modules/torch/bin.nix
+++ b/pkgs/development/python-modules/torch/bin.nix
@@ -27,7 +27,7 @@ let
   pyVerNoDot = builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion;
   srcs = import ./binary-hashes.nix version;
   unsupported = throw "Unsupported system";
-  version = "2.3.0";
+  version = "2.3.1";
 in
 buildPythonPackage {
   inherit version;
@@ -75,7 +75,7 @@ buildPythonPackage {
     "libcuda.so.1"
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     future
     numpy
     pyyaml
@@ -97,12 +97,29 @@ buildPythonPackage {
     addAutoPatchelfSearchPath "$out/${python.sitePackages}/torch/lib"
   '';
 
+  # See https://github.com/NixOS/nixpkgs/issues/296179
+  #
+  # This is a quick hack to add `libnvrtc` to the runpath so that torch can find
+  # it when it is needed at runtime.
+  extraRunpaths = lib.optionals stdenv.hostPlatform.isLinux [ "${lib.getLib cudaPackages.cuda_nvrtc}/lib" ];
+  postPhases = lib.optionals stdenv.isLinux [ "postPatchelfPhase" ];
+  postPatchelfPhase = ''
+    while IFS= read -r -d $'\0' elf ; do
+      for extra in $extraRunpaths ; do
+        echo patchelf "$elf" --add-rpath "$extra" >&2
+        patchelf "$elf" --add-rpath "$extra"
+      done
+    done < <(
+      find "''${!outputLib}" "$out" -type f -iname '*.so' -print0
+    )
+  '';
+
   # The wheel-binary is not stripped to avoid the error of `ImportError: libtorch_cuda_cpp.so: ELF load command address/offset not properly aligned.`.
   dontStrip = true;
 
   pythonImportsCheck = [ "torch" ];
 
-  meta = with lib; {
+  meta = {
     description = "PyTorch: Tensors and Dynamic neural networks in Python with strong GPU acceleration";
     homepage = "https://pytorch.org/";
     changelog = "https://github.com/pytorch/pytorch/releases/tag/v${version}";
@@ -111,18 +128,18 @@ buildPythonPackage {
     # https://www.intel.com/content/www/us/en/developer/articles/license/onemkl-license-faq.html
     # torch's license is BSD3.
     # torch-bin used to vendor CUDA. It still links against CUDA and MKL.
-    license = with licenses; [
+    license = with lib.licenses; [
       bsd3
       issl
       unfreeRedistributable
     ];
-    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     platforms = [
       "aarch64-darwin"
       "aarch64-linux"
       "x86_64-linux"
     ];
     hydraPlatforms = [ ]; # output size 3.2G on 1.11.0
-    maintainers = with maintainers; [ junjihashimoto ];
+    maintainers = with lib.maintainers; [ junjihashimoto ];
   };
 }
diff --git a/pkgs/development/python-modules/torch/binary-hashes.nix b/pkgs/development/python-modules/torch/binary-hashes.nix
index 8a355c9f0d792..8d41a4c1eeca3 100644
--- a/pkgs/development/python-modules/torch/binary-hashes.nix
+++ b/pkgs/development/python-modules/torch/binary-hashes.nix
@@ -7,81 +7,81 @@
 
 version:
 builtins.getAttr version {
-  "2.3.0" = {
+  "2.3.1" = {
     x86_64-linux-38 = {
-      name = "torch-2.3.0-cp38-cp38-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torch-2.3.0%2Bcu121-cp38-cp38-linux_x86_64.whl";
-      hash = "sha256-lZi5WfVk7j6+NgOwugHSQXTKgBb+ypgQTwMB8UkGF8o=";
+      name = "torch-2.3.1-cp38-cp38-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torch-2.3.1%2Bcu121-cp38-cp38-linux_x86_64.whl";
+      hash = "sha256-TkEPNC/YbHO+oO0kVQnV/15od72lSySfdaM9U1yHfy8=";
     };
     x86_64-linux-39 = {
-      name = "torch-2.3.0-cp39-cp39-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torch-2.3.0%2Bcu121-cp39-cp39-linux_x86_64.whl";
-      hash = "sha256-PMFeTCaCqFUYEhogUNa+eXbZj8SEO7wTtvW+4nWhtu4=";
+      name = "torch-2.3.1-cp39-cp39-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torch-2.3.1%2Bcu121-cp39-cp39-linux_x86_64.whl";
+      hash = "sha256-3+phA2LA4qX/KNMi1qpl1l4D4TNJlhGaWjdwx9GCGsQ=";
     };
     x86_64-linux-310 = {
-      name = "torch-2.3.0-cp310-cp310-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torch-2.3.0%2Bcu121-cp310-cp310-linux_x86_64.whl";
-      hash = "sha256-ChKqmqa8RC3/iCOsi0jZkf0HcVYuqjhZP5yBltZfcAc=";
+      name = "torch-2.3.1-cp310-cp310-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torch-2.3.1%2Bcu121-cp310-cp310-linux_x86_64.whl";
+      hash = "sha256-8N610vkypo7VRiW6FA7dvyryK+l47hm5tjyYat1kJbI=";
     };
     x86_64-linux-311 = {
-      name = "torch-2.3.0-cp311-cp311-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torch-2.3.0%2Bcu121-cp311-cp311-linux_x86_64.whl";
-      hash = "sha256-XffjyzlhAYqJHk7e8eC8HzMEqNlD+BskqMa/aHykmmc=";
+      name = "torch-2.3.1-cp311-cp311-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torch-2.3.1%2Bcu121-cp311-cp311-linux_x86_64.whl";
+      hash = "sha256-kl40rwkFBipItPgtDmZWNBrU1iaDSmqCRe9OruU3XJg=";
     };
     x86_64-linux-312 = {
-      name = "torch-2.3.0-cp312-cp312-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torch-2.3.0%2Bcu121-cp312-cp312-linux_x86_64.whl";
-      hash = "sha256-8VtvVJ7rxuayKyZ1Tk8dfkRpvNLUuh6qtXJorYC8ypY=";
+      name = "torch-2.3.1-cp312-cp312-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torch-2.3.1%2Bcu121-cp312-cp312-linux_x86_64.whl";
+      hash = "sha256-s8WG9Ksl6D7//M+5cHnpEyUym8IoFmVVxLuTlXdT1Oo=";
     };
     aarch64-darwin-38 = {
-      name = "torch-2.3.0-cp38-none-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.3.0-cp38-none-macosx_11_0_arm64.whl";
-      hash = "sha256-aun2SwlRa6pO+JCvBnLcmBwgsfDYKc4RXUQgokfoj7o=";
+      name = "torch-2.3.1-cp38-none-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp38-none-macosx_11_0_arm64.whl";
+      hash = "sha256-vuC9M9xYqo/Ip1J4dum5oOgSrQgSIFSlv/LOWr8AWxA=";
     };
     aarch64-darwin-39 = {
-      name = "torch-2.3.0-cp39-none-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.3.0-cp39-none-macosx_11_0_arm64.whl";
-      hash = "sha256-dg+L7f9QbOnm4QNJj5senhWAngCDaFlMOma/dKilE4A=";
+      name = "torch-2.3.1-cp39-none-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp39-none-macosx_11_0_arm64.whl";
+      hash = "sha256-K7WveAxVvmj+EA/rBSjS7eus4dVcsuNR3nNYCbpzkes=";
     };
     aarch64-darwin-310 = {
-      name = "torch-2.3.0-cp310-none-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.3.0-cp310-none-macosx_11_0_arm64.whl";
-      hash = "sha256-dY75ON6HomU7unS5H3A0WMFVafFWK/S2xjxi2cWgwfU=";
+      name = "torch-2.3.1-cp310-none-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp310-none-macosx_11_0_arm64.whl";
+      hash = "sha256-fAmpQ2J3hChIS8+ZX2AEsElSEGruDvRf8LS6tIT1SY0=";
     };
     aarch64-darwin-311 = {
-      name = "torch-2.3.0-cp311-none-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.3.0-cp311-none-macosx_11_0_arm64.whl";
-      hash = "sha256-0k4ygibY4q98+A/LHS8dEI4N4yd3+rSqorN7l2XYvnM=";
+      name = "torch-2.3.1-cp311-none-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp311-none-macosx_11_0_arm64.whl";
+      hash = "sha256-p91O04itHz1QK/CUU9X+WWx7Eh3n4M+soeIBd4Lpu6w=";
     };
     aarch64-darwin-312 = {
-      name = "torch-2.3.0-cp312-none-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.3.0-cp312-none-macosx_11_0_arm64.whl";
-      hash = "sha256-3KmGIUJns0Blp5AAzuVCMuYrQd/x7Cyrmrw/yLPe4K0=";
+      name = "torch-2.3.1-cp312-none-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp312-none-macosx_11_0_arm64.whl";
+      hash = "sha256-PDM9wuvBiVYVFO2gboHfIr+Ptk4jhHRrLLnwT5bR1Mg=";
     };
     aarch64-linux-38 = {
-      name = "torch-2.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
-      hash = "sha256-RunxqfQgKcBuY/v5yXE0PYsqCIZyO8T/McZ6m3pHNXM=";
+      name = "torch-2.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      hash = "sha256-O3wUmPkE9n6x4zHy6+h0J3GiznG57pvAHelnJX6IHH0=";
     };
     aarch64-linux-39 = {
-      name = "torch-2.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
-      hash = "sha256-N7zdkm811ccvGm0oIpczJEuyZTqPp3nEwQ3ZfjMNa6I=";
+      name = "torch-2.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      hash = "sha256-22v/S6YnO1muRD3gS1rcNtakC7KJiGYTO/8tUvJ26v4=";
     };
     aarch64-linux-310 = {
-      name = "torch-2.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
-      hash = "sha256-fiTBOMO6zIxRHGuCEfCcO/VH08vjdWMhrOwb3OQP7Gs=";
+      name = "torch-2.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      hash = "sha256-ZUT98pAYZowKbUobzJVZgsGtpwgGKBsBDLqTvc+9zyI=";
     };
     aarch64-linux-311 = {
-      name = "torch-2.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
-      hash = "sha256-FHmS068B4/KncqaId+iTeYnlfEIluCpJidPNlYLIvNE=";
+      name = "torch-2.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      hash = "sha256-Kq8ON3NMvF/mv8yBraNuy7iZ1N2+E0mL2EqsqKkchig=";
     };
     aarch64-linux-312 = {
-      name = "torch-2.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
-      hash = "sha256-bhOCYa8GzZAqgmUmCCreU0tmCTudj2/y1AHOQ5qiNQw=";
+      name = "torch-2.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      hash = "sha256-d9LeGklaHAf1ksM4oNWS5VzAudL4ADCeRqDqLA46KRk=";
     };
   };
 }
diff --git a/pkgs/development/python-modules/torch/default.nix b/pkgs/development/python-modules/torch/default.nix
index f6f66aa9d0b44..d5d7e823bed7c 100644
--- a/pkgs/development/python-modules/torch/default.nix
+++ b/pkgs/development/python-modules/torch/default.nix
@@ -201,12 +201,13 @@ let
       MPISupport && cudaSupport && (mpi.cudatoolkit != cudaPackages.cudatoolkit);
     "Magma cudaPackages does not match cudaPackages" =
       cudaSupport && (effectiveMagma.cudaPackages != cudaPackages);
+    "Rocm support is currently broken because `rocmPackages.hipblaslt` is unpackaged. (2024-06-09)" = rocmSupport;
   };
 in
 buildPythonPackage rec {
   pname = "torch";
   # Don't forget to update torch-bin to the same version.
-  version = "2.3.0";
+  version = "2.3.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8.0";
@@ -224,7 +225,7 @@ buildPythonPackage rec {
     repo = "pytorch";
     rev = "refs/tags/v${version}";
     fetchSubmodules = true;
-    hash = "sha256-UmH4Mv5QL7Mz4Y4pvxn8F1FGBR/UzYZjE2Ys8Oc0FWQ=";
+    hash = "sha256-vpgtOqzIDKgRuqdT8lB/g6j+oMIH1RPxdbjtlzZFjV8=";
   };
 
   patches =
@@ -498,7 +499,7 @@ buildPythonPackage rec {
     ++ lib.optionals MPISupport [ mpi ]
     ++ lib.optionals rocmSupport [ rocmtoolkit_joined ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     astunparse
     cffi
     click
@@ -611,6 +612,23 @@ buildPythonPackage rec {
       install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libshm.dylib
     '';
 
+  # See https://github.com/NixOS/nixpkgs/issues/296179
+  #
+  # This is a quick hack to add `libnvrtc` to the runpath so that torch can find
+  # it when it is needed at runtime.
+  extraRunpaths = lib.optionals cudaSupport [ "${lib.getLib cudaPackages.cuda_nvrtc}/lib" ];
+  postPhases = lib.optionals stdenv.isLinux [ "postPatchelfPhase" ];
+  postPatchelfPhase = ''
+    while IFS= read -r -d $'\0' elf ; do
+      for extra in $extraRunpaths ; do
+        echo patchelf "$elf" --add-rpath "$extra" >&2
+        patchelf "$elf" --add-rpath "$extra"
+      done
+    done < <(
+      find "''${!outputLib}" "$out" -type f -iname '*.so' -print0
+    )
+  '';
+
   # Builds in 2+h with 2 cores, and ~15m with a big-parallel builder.
   requiredSystemFeatures = [ "big-parallel" ];
 
@@ -628,18 +646,18 @@ buildPythonPackage rec {
     cudaCapabilities = if cudaSupport then supportedCudaCapabilities else [ ];
   };
 
-  meta = with lib; {
+  meta = {
     changelog = "https://github.com/pytorch/pytorch/releases/tag/v${version}";
     # keep PyTorch in the description so the package can be found under that name on search.nixos.org
     description = "PyTorch: Tensors and Dynamic neural networks in Python with strong GPU acceleration";
     homepage = "https://pytorch.org/";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [
       teh
       thoughtpolice
       tscholak
     ]; # tscholak esp. for darwin-related builds
-    platforms = with platforms; linux ++ lib.optionals (!cudaSupport && !rocmSupport) darwin;
+    platforms = with lib.platforms; linux ++ lib.optionals (!cudaSupport && !rocmSupport) darwin;
     broken = builtins.any trivial.id (builtins.attrValues brokenConditions);
   };
 }
diff --git a/pkgs/development/python-modules/torchaudio/bin.nix b/pkgs/development/python-modules/torchaudio/bin.nix
index d90ce73c4eac1..be9710041f9cd 100644
--- a/pkgs/development/python-modules/torchaudio/bin.nix
+++ b/pkgs/development/python-modules/torchaudio/bin.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "torchaudio";
-  version = "2.3.0";
+  version = "2.3.1";
   format = "wheel";
 
   src =
@@ -68,20 +68,20 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "torchaudio" ];
 
-  meta = with lib; {
+  meta = {
     description = "PyTorch audio library";
     homepage = "https://pytorch.org/";
     changelog = "https://github.com/pytorch/audio/releases/tag/v${version}";
     # Includes CUDA and Intel MKL, but redistributions of the binary are not limited.
     # https://docs.nvidia.com/cuda/eula/index.html
     # https://www.intel.com/content/www/us/en/developer/articles/license/onemkl-license-faq.html
-    license = licenses.bsd3;
-    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    license = lib.licenses.bsd3;
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     platforms = [
       "aarch64-linux"
       "x86_64-linux"
       "aarch64-darwin"
     ];
-    maintainers = with maintainers; [ junjihashimoto ];
+    maintainers = with lib.maintainers; [ junjihashimoto ];
   };
 }
diff --git a/pkgs/development/python-modules/torchaudio/binary-hashes.nix b/pkgs/development/python-modules/torchaudio/binary-hashes.nix
index 9b2e40a38242b..bce74eff052ee 100644
--- a/pkgs/development/python-modules/torchaudio/binary-hashes.nix
+++ b/pkgs/development/python-modules/torchaudio/binary-hashes.nix
@@ -7,81 +7,81 @@
 
 version:
 builtins.getAttr version {
-  "2.3.0" = {
+  "2.3.1" = {
     x86_64-linux-38 = {
-      name = "torchaudio-2.3.0-cp38-cp38-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.3.0%2Bcu121-cp38-cp38-linux_x86_64.whl";
-      hash = "sha256-Q/Iv/36izuH9uzAqE26aC51XFTUXaaYn1JDGfKzsCfQ=";
+      name = "torchaudio-2.3.1-cp38-cp38-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.3.1%2Bcu121-cp38-cp38-linux_x86_64.whl";
+      hash = "sha256-4QoP0bNR6EnnzZ4ekw3KP/uMow+WI5vqEx8YP2WUXNs=";
     };
     x86_64-linux-39 = {
-      name = "torchaudio-2.3.0-cp39-cp39-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.3.0%2Bcu121-cp39-cp39-linux_x86_64.whl";
-      hash = "sha256-4n2qE/jPQ8sLyq81TIEj7qlpBsg/FDNCZiCSvMH7atc=";
+      name = "torchaudio-2.3.1-cp39-cp39-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.3.1%2Bcu121-cp39-cp39-linux_x86_64.whl";
+      hash = "sha256-bOv8CdkcpAPASLnPKuPWS09UzzGghYTQ0/v3+VAewNw=";
     };
     x86_64-linux-310 = {
-      name = "torchaudio-2.3.0-cp310-cp310-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.3.0%2Bcu121-cp310-cp310-linux_x86_64.whl";
-      hash = "sha256-OLSTk/jDItyqKdGeWsv1oLGXjPG3GURatnDx+0huOqY=";
+      name = "torchaudio-2.3.1-cp310-cp310-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.3.1%2Bcu121-cp310-cp310-linux_x86_64.whl";
+      hash = "sha256-C0I/SuM1bxH2cj6MdyCKw/k2Gk+UHkzAjYbDLBN1lLw=";
     };
     x86_64-linux-311 = {
-      name = "torchaudio-2.3.0-cp311-cp311-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.3.0%2Bcu121-cp311-cp311-linux_x86_64.whl";
-      hash = "sha256-jdZpE+ewjGPHayGwcGEwwkruTtStwLwS+NYt+YtcbqA=";
+      name = "torchaudio-2.3.1-cp311-cp311-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.3.1%2Bcu121-cp311-cp311-linux_x86_64.whl";
+      hash = "sha256-LZE2vzybarltxC8m9suDbUXRFfV2bhav9Sg1yOfN5WU=";
     };
     x86_64-linux-312 = {
-      name = "torchaudio-2.3.0-cp312-cp312-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.3.0%2Bcu121-cp312-cp312-linux_x86_64.whl";
-      hash = "sha256-IA7PUlHYPRTook/X9V3odqrSVR/5jqvxzdhCeQXJXFU=";
+      name = "torchaudio-2.3.1-cp312-cp312-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.3.1%2Bcu121-cp312-cp312-linux_x86_64.whl";
+      hash = "sha256-sAdz3eOqMNmxuYh1ZQQo+/tp/jC5jrtc7/vY/GHegSU=";
     };
     aarch64-darwin-38 = {
-      name = "torchaudio-2.3.0-cp38-cp38-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.0-cp38-cp38-macosx_11_0_arm64.whl";
-      hash = "sha256-e6kyZUVdw2M4XpjAz8rrWGt0Aa+KLIJIEe4UZhNKTzA=";
+      name = "torchaudio-2.3.1-cp38-cp38-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp38-cp38-macosx_11_0_arm64.whl";
+      hash = "sha256-zkXgWs1URpbGpvAj1P6GFK3ldRV5mhEDskGOhUg41KU=";
     };
     aarch64-darwin-39 = {
-      name = "torchaudio-2.3.0-cp39-cp39-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.0-cp39-cp39-macosx_11_0_arm64.whl";
-      hash = "sha256-9Lkzd28go2r13cV5aPyz2jTdA4gduNZ2Dz4RdoA7nPg=";
+      name = "torchaudio-2.3.1-cp39-cp39-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp39-cp39-macosx_11_0_arm64.whl";
+      hash = "sha256-NujAtlMlccJ6CKQNrkKM00ryJQB/FbzXcnJkO2JmuB0=";
     };
     aarch64-darwin-310 = {
-      name = "torchaudio-2.3.0-cp310-cp310-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.0-cp310-cp310-macosx_11_0_arm64.whl";
-      hash = "sha256-NCEI2oOqGaRXyaEosSBvrbYDdTtRzKAiufWFqsL0dUw=";
+      name = "torchaudio-2.3.1-cp310-cp310-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp310-cp310-macosx_11_0_arm64.whl";
+      hash = "sha256-H5E0sn5afwweMzgvwP4njlNpV2jLCvAujSK1AGx0oq0=";
     };
     aarch64-darwin-311 = {
-      name = "torchaudio-2.3.0-cp311-cp311-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.0-cp311-cp311-macosx_11_0_arm64.whl";
-      hash = "sha256-NByjBIzm7cxzFRmzAYfwsTrLJFxO/hb5JfafnVM1RuE=";
+      name = "torchaudio-2.3.1-cp311-cp311-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp311-cp311-macosx_11_0_arm64.whl";
+      hash = "sha256-AZhPODmMpemOz7/q+3KuWyEx0LuKpGS1d3rds+SCaHc=";
     };
     aarch64-darwin-312 = {
-      name = "torchaudio-2.3.0-cp312-cp312-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.0-cp312-cp312-macosx_11_0_arm64.whl";
-      hash = "sha256-U1FEovu6lfuzuIMiT/z0R4jkzsurvknEoa4+enT3FIU=";
+      name = "torchaudio-2.3.1-cp312-cp312-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp312-cp312-macosx_11_0_arm64.whl";
+      hash = "sha256-XjZoVCCgehdhRunW4PqCJRmPEm4WegB4VTj4U4B+LUM=";
     };
     aarch64-linux-38 = {
-      name = "torchaudio-2.3.0-cp38-cp38-manylinux2014_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.0-cp38-cp38-linux_aarch64.whl";
-      hash = "sha256-7Rhm9QjcaJxPaC0zCy7UyDEI01hl5PuJQxgZNk2K2e0=";
+      name = "torchaudio-2.3.1-cp38-cp38-manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp38-cp38-linux_aarch64.whl";
+      hash = "sha256-n9D0u8P9WF+9fZdqmI/m54P8suDbnXDaxg9AvgcsZQQ=";
     };
     aarch64-linux-39 = {
-      name = "torchaudio-2.3.0-cp39-cp39-manylinux2014_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.0-cp39-cp39-linux_aarch64.whl";
-      hash = "sha256-0kO7ih7iY8LNr7n+7RVpw3QtgTVzHo94GN4S9ODIPig=";
+      name = "torchaudio-2.3.1-cp39-cp39-manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp39-cp39-linux_aarch64.whl";
+      hash = "sha256-TjvKIy+CDGoPpTlEJAdsxRn64yKI5/9vbWi9cXlNw1Q=";
     };
     aarch64-linux-310 = {
-      name = "torchaudio-2.3.0-cp310-cp310-manylinux2014_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.0-cp310-cp310-linux_aarch64.whl";
-      hash = "sha256-5btQt6SHTtlwhsnlFt2QsQPZVO3LXtSzb0/CLEAApac=";
+      name = "torchaudio-2.3.1-cp310-cp310-manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp310-cp310-linux_aarch64.whl";
+      hash = "sha256-a1fnc6rXJ0PVCmSnQCoGy4vfzHCe/G2MJkKdlA5niOI=";
     };
     aarch64-linux-311 = {
-      name = "torchaudio-2.3.0-cp311-cp311-manylinux2014_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.0-cp311-cp311-linux_aarch64.whl";
-      hash = "sha256-Ye2wKunA7+pDmfnB+JlgETayTzXUMFSChOqOr2zL474=";
+      name = "torchaudio-2.3.1-cp311-cp311-manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp311-cp311-linux_aarch64.whl";
+      hash = "sha256-yMcnyDQYJb0Y2RAXxMAPNrU7CPIXbNub3LDe8cRQsh0=";
     };
     aarch64-linux-312 = {
-      name = "torchaudio-2.3.0-cp312-cp312-manylinux2014_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.0-cp312-cp312-linux_aarch64.whl";
-      hash = "sha256-ZoqLaU5VIs/yjNXgLQGqG3XOlAqp+0BICJK9xiOxc10=";
+      name = "torchaudio-2.3.1-cp312-cp312-manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp312-cp312-linux_aarch64.whl";
+      hash = "sha256-Qq9sekMOYmjywCjgYHjUE5ErXsbvoooJfr3Tw8eWWd8=";
     };
   };
 }
diff --git a/pkgs/development/python-modules/torchaudio/default.nix b/pkgs/development/python-modules/torchaudio/default.nix
index 849335f0778ff..3252a5b19cfaf 100644
--- a/pkgs/development/python-modules/torchaudio/default.nix
+++ b/pkgs/development/python-modules/torchaudio/default.nix
@@ -72,14 +72,14 @@ let
 in
 buildPythonPackage rec {
   pname = "torchaudio";
-  version = "2.3.0";
+  version = "2.3.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pytorch";
     repo = "audio";
     rev = "refs/tags/v${version}";
-    hash = "sha256-8EPoZ/dfxrQjdtE0rZ+2pOaXxlyhRuweYnVuA9i0Fgc=";
+    hash = "sha256-PYaqRNKIhQ1DnFRZYyJJfBszVM2Bmu7A/lvvzJ6lL3g=";
   };
 
   patches = [ ./0001-setup.py-propagate-cmakeFlags.patch ];
@@ -133,7 +133,7 @@ buildPythonPackage rec {
     torch.cxxdev
   ];
 
-  propagatedBuildInputs = [ torch ];
+  dependencies = [ torch ];
 
   BUILD_SOX = 0;
   BUILD_KALDI = 0;
@@ -149,16 +149,16 @@ buildPythonPackage rec {
 
   doCheck = false; # requires sox backend
 
-  meta = with lib; {
+  meta = {
     description = "PyTorch audio library";
     homepage = "https://pytorch.org/";
     changelog = "https://github.com/pytorch/audio/releases/tag/v${version}";
-    license = licenses.bsd2;
+    license = lib.licenses.bsd2;
     platforms = [
       "aarch64-darwin"
       "aarch64-linux"
       "x86_64-linux"
     ];
-    maintainers = with maintainers; [ junjihashimoto ];
+    maintainers = with lib.maintainers; [ junjihashimoto ];
   };
 }
diff --git a/pkgs/development/python-modules/torchio/default.nix b/pkgs/development/python-modules/torchio/default.nix
index 6b02f66a0c301..79d245c926d25 100644
--- a/pkgs/development/python-modules/torchio/default.nix
+++ b/pkgs/development/python-modules/torchio/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "torchio";
-  version = "0.19.5";
+  version = "0.19.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "fepegar";
     repo = "torchio";
     rev = "refs/tags/v${version}";
-    hash = "sha256-RqKJStUZhnSmsifn3WjYLfmRkkme+GOe6dp0E0MW9tE=";
+    hash = "sha256-FlsjDgthXDGVjj4L0Yw+8UzBROw9jiM4Z+qi67D5ygU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/torchrl/default.nix b/pkgs/development/python-modules/torchrl/default.nix
index 6951192f52c48..e075696881104 100644
--- a/pkgs/development/python-modules/torchrl/default.nix
+++ b/pkgs/development/python-modules/torchrl/default.nix
@@ -150,10 +150,14 @@ buildPythonPackage rec {
     "test_trans_parallel_env_check"
     "test_trans_serial_env_check"
     "test_transform_env"
+
+    # undeterministic
+    "test_distributed_collector_updatepolicy"
+    "test_timeit"
   ];
 
   meta = with lib; {
-    description = "A modular, primitive-first, python-first PyTorch library for Reinforcement Learning";
+    description = "Modular, primitive-first, python-first PyTorch library for Reinforcement Learning";
     homepage = "https://github.com/pytorch/rl";
     changelog = "https://github.com/pytorch/rl/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/torchsnapshot/default.nix b/pkgs/development/python-modules/torchsnapshot/default.nix
index 62f6fd6b24def..dc1e66156a7ec 100644
--- a/pkgs/development/python-modules/torchsnapshot/default.nix
+++ b/pkgs/development/python-modules/torchsnapshot/default.nix
@@ -57,7 +57,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A performant, memory-efficient checkpointing library for PyTorch applications, designed with large, complex distributed workloads in mind";
+    description = "Performant, memory-efficient checkpointing library for PyTorch applications, designed with large, complex distributed workloads in mind";
     homepage = "https://github.com/pytorch/torchsnapshot/";
     changelog = "https://github.com/pytorch/torchsnapshot/releases/tag/${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/torchsummary/default.nix b/pkgs/development/python-modules/torchsummary/default.nix
new file mode 100644
index 0000000000000..8805e8fa2117b
--- /dev/null
+++ b/pkgs/development/python-modules/torchsummary/default.nix
@@ -0,0 +1,34 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  torch,
+}:
+
+buildPythonPackage rec {
+  pname = "torchsummary";
+  version = "1.5.1";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-mBv2ieIuDPf5XHRgAvIKJK0mqmudhhE0oUvGzpIjBZA=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [ torch ];
+
+  # no tests in pypi tarball
+  doCheck = false;
+
+  pythonImportsCheck = [ "torchsummary" ];
+
+  meta = {
+    description = "Model summary in PyTorch similar to `model.summary()` in Keras";
+    homepage = "https://github.com/sksq96/pytorch-summary";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ tomasajt ];
+  };
+}
diff --git a/pkgs/development/python-modules/torchvision/bin.nix b/pkgs/development/python-modules/torchvision/bin.nix
index 3e81dbed27195..fc731fae2e07e 100644
--- a/pkgs/development/python-modules/torchvision/bin.nix
+++ b/pkgs/development/python-modules/torchvision/bin.nix
@@ -17,7 +17,7 @@ let
   pyVerNoDot = builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion;
   srcs = import ./binary-hashes.nix version;
   unsupported = throw "Unsupported system";
-  version = "0.18.0";
+  version = "0.18.1";
 in
 buildPythonPackage {
   inherit version;
@@ -44,7 +44,7 @@ buildPythonPackage {
     addOpenGLRunpath
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     pillow
     torch-bin
   ];
@@ -58,20 +58,20 @@ buildPythonPackage {
     addAutoPatchelfSearchPath "${torch-bin}/${python.sitePackages}/torch"
   '';
 
-  meta = with lib; {
+  meta = {
     description = "PyTorch vision library";
     homepage = "https://pytorch.org/";
     changelog = "https://github.com/pytorch/vision/releases/tag/v${version}";
     # Includes CUDA and Intel MKL, but redistributions of the binary are not limited.
     # https://docs.nvidia.com/cuda/eula/index.html
     # https://www.intel.com/content/www/us/en/developer/articles/license/onemkl-license-faq.html
-    license = licenses.bsd3;
-    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    license = lib.licenses.bsd3;
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     platforms = [
       "aarch64-darwin"
       "x86_64-linux"
       "aarch64-linux"
     ];
-    maintainers = with maintainers; [ junjihashimoto ];
+    maintainers = with lib.maintainers; [ junjihashimoto ];
   };
 }
diff --git a/pkgs/development/python-modules/torchvision/binary-hashes.nix b/pkgs/development/python-modules/torchvision/binary-hashes.nix
index a5f047ff3c343..c3283f1c90b61 100644
--- a/pkgs/development/python-modules/torchvision/binary-hashes.nix
+++ b/pkgs/development/python-modules/torchvision/binary-hashes.nix
@@ -7,81 +7,81 @@
 
 version:
 builtins.getAttr version {
-  "0.18.0" = {
+  "0.18.1" = {
     x86_64-linux-38 = {
-      name = "torchvision-0.18.0-cp38-cp38-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torchvision-0.18.0%2Bcu121-cp38-cp38-linux_x86_64.whl";
-      hash = "sha256-wkg7LMYiePuqa2fSqdgI0kUET4tkqCFZbq5o7GoNXtA=";
+      name = "torchvision-0.18.1-cp38-cp38-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchvision-0.18.1%2Bcu121-cp38-cp38-linux_x86_64.whl";
+      hash = "sha256-ruiWHcuKQY6S0G1LPpr1KYcpOkjBQjHDxQyO6jdB5BI=";
     };
     x86_64-linux-39 = {
-      name = "torchvision-0.18.0-cp39-cp39-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torchvision-0.18.0%2Bcu121-cp39-cp39-linux_x86_64.whl";
-      hash = "sha256-G/4MZ/1UYaOlk/jxfhVE8Hpr1mhuFVIA3SRJRwdPzVE=";
+      name = "torchvision-0.18.1-cp39-cp39-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchvision-0.18.1%2Bcu121-cp39-cp39-linux_x86_64.whl";
+      hash = "sha256-Hr9du9869EbITkK68u2+sb1vsMydO0kBr5acg5HRSl4=";
     };
     x86_64-linux-310 = {
-      name = "torchvision-0.18.0-cp310-cp310-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torchvision-0.18.0%2Bcu121-cp310-cp310-linux_x86_64.whl";
-      hash = "sha256-E+G0jcXOQcy4EAqz3Sb98x2PHpBOzyhlrFJEkwE9DfU=";
+      name = "torchvision-0.18.1-cp310-cp310-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchvision-0.18.1%2Bcu121-cp310-cp310-linux_x86_64.whl";
+      hash = "sha256-6VulosYWk5KB4Bur8RZk1tFyXoG7pX74H4HD5X5NQVE=";
     };
     x86_64-linux-311 = {
-      name = "torchvision-0.18.0-cp311-cp311-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torchvision-0.18.0%2Bcu121-cp311-cp311-linux_x86_64.whl";
-      hash = "sha256-HlFneVIPySFX1sskWsD9P3mHL+gchLhZOo8umYEG9bE=";
+      name = "torchvision-0.18.1-cp311-cp311-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchvision-0.18.1%2Bcu121-cp311-cp311-linux_x86_64.whl";
+      hash = "sha256-KyrsLGjguhf57tiSF5b6Lbx6ST3qejtF0lwFWtQXSGg=";
     };
     x86_64-linux-312 = {
-      name = "torchvision-0.18.0-cp312-cp312-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torchvision-0.18.0%2Bcu121-cp312-cp312-linux_x86_64.whl";
-      hash = "sha256-cA9gGb6+6eDuiwvL2xWIgJyUouuUeh/eLgatw0tg2io=";
+      name = "torchvision-0.18.1-cp312-cp312-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchvision-0.18.1%2Bcu121-cp312-cp312-linux_x86_64.whl";
+      hash = "sha256-zo1bmSBW8GQKOe9XNDQuQ8pKgBVH3if7jbwwVdk0WUc=";
     };
     aarch64-darwin-38 = {
-      name = "torchvision-0.18.0-cp38-cp38-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.0-cp38-cp38-macosx_11_0_arm64.whl";
-      hash = "sha256-IRWhkGwBX12pzu3ECpgzE7D9biyKFxCKkpkXBvUfaYc=";
+      name = "torchvision-0.18.1-cp38-cp38-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp38-cp38-macosx_11_0_arm64.whl";
+      hash = "sha256-scOGT6k3jIi86K0O81mfTyU5eJfOYS4cJFx0uXCS814=";
     };
     aarch64-darwin-39 = {
-      name = "torchvision-0.18.0-cp39-cp39-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.0-cp39-cp39-macosx_11_0_arm64.whl";
-      hash = "sha256-deIuz0ShO4+VuK1CHAJhKC2FnGGBa62soZWeBzzN1pE=";
+      name = "torchvision-0.18.1-cp39-cp39-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp39-cp39-macosx_11_0_arm64.whl";
+      hash = "sha256-l1uFlMD1KIh1QIrLt0lG7qeGxbAI0SnA0EXQ6tI3Qrw=";
     };
     aarch64-darwin-310 = {
-      name = "torchvision-0.18.0-cp310-cp310-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.0-cp310-cp310-macosx_11_0_arm64.whl";
-      hash = "sha256-3WFiij0YnGhSoS3F7UzS7s5m0tZ/Nahmyxbx3LBsjGI=";
+      name = "torchvision-0.18.1-cp310-cp310-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp310-cp310-macosx_11_0_arm64.whl";
+      hash = "sha256-PmlOVLBUja2ZwSr2vwyOTzNQE305Hc0ZryKhxfiTIrM=";
     };
     aarch64-darwin-311 = {
-      name = "torchvision-0.18.0-cp311-cp311-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.0-cp311-cp311-macosx_11_0_arm64.whl";
-      hash = "sha256-aJalIWi+/hEF+zyTNShzkO0ifnHR5OxNaLYuijCZ/Ak=";
+      name = "torchvision-0.18.1-cp311-cp311-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp311-cp311-macosx_11_0_arm64.whl";
+      hash = "sha256-gLXXlN0P26eHrcIvGjZ6Xq1FIydoZHPLJg3ZQ2S8VqY=";
     };
     aarch64-darwin-312 = {
-      name = "torchvision-0.18.0-cp312-cp312-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.0-cp312-cp312-macosx_11_0_arm64.whl";
-      hash = "sha256-652DwOHbtU7LD7BMh/eGMz46b7i5xACsp8MQgfmqVwc=";
+      name = "torchvision-0.18.1-cp312-cp312-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp312-cp312-macosx_11_0_arm64.whl";
+      hash = "sha256-K+bwv3xFXImlGh27b2aNNsbtxHn0mskS10XRDfVxVlc=";
     };
     aarch64-linux-38 = {
-      name = "torchvision-0.18.0-cp38-cp38-linux_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.0-cp38-cp38-linux_aarch64.whl";
-      hash = "sha256-kl0KgszPb5hsGLKbQ5KpQttly9tzwToSnISTgi65428=";
+      name = "torchvision-0.18.1-cp38-cp38-linux_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp38-cp38-linux_aarch64.whl";
+      hash = "sha256-lybDFqJQHfhQPlpdxGpjGv1MUVqViXLlt/e5yH0hJcA=";
     };
     aarch64-linux-39 = {
-      name = "torchvision-0.18.0-cp39-cp39-linux_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.0-cp39-cp39-linux_aarch64.whl";
-      hash = "sha256-Nu/YcAHGvuI4PgQ+RqAlr/sDF5dHyPR3e5kYUn/851Y=";
+      name = "torchvision-0.18.1-cp39-cp39-linux_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp39-cp39-linux_aarch64.whl";
+      hash = "sha256-VL/NNSq7OW1cnCN9IAFnwXi9E2BRsTjh6O9GzjZ8J3M=";
     };
     aarch64-linux-310 = {
-      name = "torchvision-0.18.0-cp310-cp310-linux_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.0-cp310-cp310-linux_aarch64.whl";
-      hash = "sha256-Uzf2rPof6VnVyzQNAaAGFNazHOekgkzLlUNahcUnO5U=";
+      name = "torchvision-0.18.1-cp310-cp310-linux_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp310-cp310-linux_aarch64.whl";
+      hash = "sha256-Vz/1I8c5QF7bCF9ly1kvSC0oow4psL5MS6CAQLOueF8=";
     };
     aarch64-linux-311 = {
-      name = "torchvision-0.18.0-cp311-cp311-linux_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.0-cp311-cp311-linux_aarch64.whl";
-      hash = "sha256-5aJNYgzqFKS7ifJKorUGIwwKFqOtpX/FOtgM/SVqISg=";
+      name = "torchvision-0.18.1-cp311-cp311-linux_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp311-cp311-linux_aarch64.whl";
+      hash = "sha256-zrmTqILxrnrjc+05wo1+PoAiBbDlmn7YTvQCjwu6jX8=";
     };
     aarch64-linux-312 = {
-      name = "torchvision-0.18.0-cp312-cp312-linux_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.0-cp312-cp312-linux_aarch64.whl";
-      hash = "sha256-qWSvvH3fUKRrlBR39sNXKbQW3u3ROXVr79SIJF4uIm0=";
+      name = "torchvision-0.18.1-cp312-cp312-linux_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp312-cp312-linux_aarch64.whl";
+      hash = "sha256-E9JNkE9l5i1moeDEH67GMLwZOGe4pKARZnaeio6N+Ok=";
     };
   };
 }
diff --git a/pkgs/development/python-modules/torchvision/default.nix b/pkgs/development/python-modules/torchvision/default.nix
index 91a269170e3bf..ea0453b8bc597 100644
--- a/pkgs/development/python-modules/torchvision/default.nix
+++ b/pkgs/development/python-modules/torchvision/default.nix
@@ -18,7 +18,7 @@ let
   inherit (cudaPackages) backendStdenv;
 
   pname = "torchvision";
-  version = "0.18.0";
+  version = "0.18.1";
 in
 buildPythonPackage {
   inherit pname version;
@@ -27,7 +27,7 @@ buildPythonPackage {
     owner = "pytorch";
     repo = "vision";
     rev = "refs/tags/v${version}";
-    hash = "sha256-VWbalbLSV5a+t9eAO7QzQ/e11KkhGg6MHgd5vXcAUXc=";
+    hash = "sha256-aFm6CyoMA8HtpOAVF5Q35n3JRaOXYswWEqfooORUKsw=";
   };
 
   nativeBuildInputs = [
@@ -42,7 +42,7 @@ buildPythonPackage {
     torch.cxxdev
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     numpy
     pillow
     torch
@@ -73,11 +73,11 @@ buildPythonPackage {
 
   nativeCheckInputs = [ pytest ];
 
-  meta = with lib; {
+  meta = {
     description = "PyTorch vision library";
     homepage = "https://pytorch.org/";
-    license = licenses.bsd3;
-    platforms = with platforms; linux ++ lib.optionals (!cudaSupport) darwin;
-    maintainers = with maintainers; [ ericsagnes ];
+    license = lib.licenses.bsd3;
+    platforms = with lib.platforms; linux ++ lib.optionals (!cudaSupport) darwin;
+    maintainers = with lib.maintainers; [ ericsagnes ];
   };
 }
diff --git a/pkgs/development/python-modules/tornado/4.nix b/pkgs/development/python-modules/tornado/4.nix
index c534ae800ed9d..0381e25d953e8 100644
--- a/pkgs/development/python-modules/tornado/4.nix
+++ b/pkgs/development/python-modules/tornado/4.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   __darwinAllowLocalNetworking = true;
 
   meta = {
-    description = "A web framework and asynchronous networking library";
+    description = "Web framework and asynchronous networking library";
     homepage = "https://www.tornadoweb.org/";
     license = lib.licenses.asl20;
   };
diff --git a/pkgs/development/python-modules/tornado/5.nix b/pkgs/development/python-modules/tornado/5.nix
index 13d5515d87878..a1b0d8979e208 100644
--- a/pkgs/development/python-modules/tornado/5.nix
+++ b/pkgs/development/python-modules/tornado/5.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   __darwinAllowLocalNetworking = true;
 
   meta = {
-    description = "A web framework and asynchronous networking library";
+    description = "Web framework and asynchronous networking library";
     homepage = "https://www.tornadoweb.org/";
     license = lib.licenses.asl20;
   };
diff --git a/pkgs/development/python-modules/tornado/default.nix b/pkgs/development/python-modules/tornado/default.nix
index a986c5327ec71..afb6eeef5db39 100644
--- a/pkgs/development/python-modules/tornado/default.nix
+++ b/pkgs/development/python-modules/tornado/default.nix
@@ -66,7 +66,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A web framework and asynchronous networking library";
+    description = "Web framework and asynchronous networking library";
     homepage = "https://www.tornadoweb.org/";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/torrent-parser/default.nix b/pkgs/development/python-modules/torrent-parser/default.nix
index b3e868aa76b64..baa2fbe76b214 100644
--- a/pkgs/development/python-modules/torrent-parser/default.nix
+++ b/pkgs/development/python-modules/torrent-parser/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "torrent_parser" ];
 
   meta = {
-    description = "A .torrent file parser and creator for both Python 2 and 3";
+    description = ".torrent file parser and creator for both Python 2 and 3";
     mainProgram = "pytp";
     homepage = "https://github.com/7sDream/torrent_parser";
     changelog = "https://github.com/7sDream/torrent_parser/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/tox/default.nix b/pkgs/development/python-modules/tox/default.nix
index 9ebfe0cf1d7dc..b143ab8d8563d 100644
--- a/pkgs/development/python-modules/tox/default.nix
+++ b/pkgs/development/python-modules/tox/default.nix
@@ -25,14 +25,14 @@
 
 buildPythonPackage rec {
   pname = "tox";
-  version = "4.15.0";
+  version = "4.15.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "tox-dev";
     repo = "tox";
     rev = "refs/tags/${version}";
-    hash = "sha256-aKk3a0RAcLyrHK6I3Q7rcBdZVJGNBXsBqA8N7Kpdrms=";
+    hash = "sha256-BLOxyvcC3ngQDVSMaw/NfLVbFkIHbTmhUOOVBqlcK/Q=";
   };
 
   postPatch = ''
@@ -68,7 +68,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/tox-dev/tox/releases/tag/${version}";
-    description = "A generic virtualenv management and test command line tool";
+    description = "Generic virtualenv management and test command line tool";
     mainProgram = "tox";
     homepage = "https://github.com/tox-dev/tox";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/tpm2-pytss/default.nix b/pkgs/development/python-modules/tpm2-pytss/default.nix
index 48e02d477885c..02494a535bfd6 100644
--- a/pkgs/development/python-modules/tpm2-pytss/default.nix
+++ b/pkgs/development/python-modules/tpm2-pytss/default.nix
@@ -40,10 +40,9 @@ buildPythonPackage rec {
     [
       # Fix hardcoded `fapi-config.json` configuration path
       ./fapi-config.patch
-      (fetchurl {
-        url = "https://github.com/tpm2-software/tpm2-pytss/pull/571/commits/b02fdc8e259fe977c1065389c042be69e2985bdf.patch";
-        hash = "sha256-+jZFv+s9p52JxtUcNeJx7ayzKDVtPoQSSGgyZqPDuEc=";
-      })
+      # Backport for https://github.com/tpm2-software/tpm2-pytss/pull/576
+      # This is likely to be dropped with the next major release (>= 2.3)
+      ./pr576-backport.patch
     ]
     ++ lib.optionals isCross [
       # pytss will regenerate files from headers of tpm2-tss.
diff --git a/pkgs/development/python-modules/tpm2-pytss/pr576-backport.patch b/pkgs/development/python-modules/tpm2-pytss/pr576-backport.patch
new file mode 100644
index 0000000000000..ee04701f39314
--- /dev/null
+++ b/pkgs/development/python-modules/tpm2-pytss/pr576-backport.patch
@@ -0,0 +1,117 @@
+Backport for https://github.com/tpm2-software/tpm2-pytss/pull/576 on 2.2.1
+
+diff --git a/scripts/prepare_headers.py b/scripts/prepare_headers.py
+index 6ca9b64..a7529b3 100644
+--- a/scripts/prepare_headers.py
++++ b/scripts/prepare_headers.py
+@@ -32,6 +32,7 @@ def remove_common_guards(s):
+ 
+     # Restructure #defines with ...
+     s = re.sub("(#define [A-Za-z0-9_]+) +\(\(.*?\) \(.*?\)\)", "\g<1>...", s)
++    s = re.sub("(#define [A-Za-z0-9_]+) +\(\(\(.*?\) .*\)", "\g<1>...", s)
+     s = re.sub("(#define [A-Za-z0-9_]+) +\(\(.*?\).*?\) ", "\g<1>...", s)
+     s = re.sub(
+         "(#define [A-Za-z0-9_]+) .*\n.*?.*\)\)", "\g<1>...", s, flags=re.MULTILINE
+diff --git a/src/tpm2_pytss/internal/crypto.py b/src/tpm2_pytss/internal/crypto.py
+index 42030c5..f9d8c34 100644
+--- a/src/tpm2_pytss/internal/crypto.py
++++ b/src/tpm2_pytss/internal/crypto.py
+@@ -25,6 +25,7 @@ from cryptography.hazmat.backends import default_backend
+ from cryptography.exceptions import UnsupportedAlgorithm, InvalidSignature
+ from typing import Tuple, Type, Any
+ import secrets
++import inspect
+ import sys
+ 
+ _curvetable = (
+diff --git a/test/test_encoding.py b/test/test_encoding.py
+index 1f58562..8cf4b51 100644
+--- a/test/test_encoding.py
++++ b/test/test_encoding.py
+@@ -1406,7 +1406,7 @@ class ToolsTest(TSS2_BaseTest):
+     def test_tools_decode_tpm2b_name(self):
+         if not self.has_tools:
+             self.skipTest("tools not in path")
+-        key = ec.generate_private_key(ec.SECP256R1).public_key()
++        key = ec.generate_private_key(ec.SECP256R1()).public_key()
+         kb = key.public_bytes(
+             serialization.Encoding.PEM, serialization.PublicFormat.SubjectPublicKeyInfo
+         )
+diff --git a/test/test_fapi.py b/test/test_fapi.py
+index f702fc9..6b77c66 100644
+--- a/test/test_fapi.py
++++ b/test/test_fapi.py
+@@ -13,7 +13,7 @@ from cryptography.hazmat.primitives.asymmetric.padding import PSS
+ 
+ from tpm2_pytss import *
+ 
+-from tpm2_pytss.internal.utils import is_bug_fixed, _lib_version_atleast
++from tpm2_pytss.internal.utils import is_bug_fixed
+ 
+ from .TSS2_BaseTest import TpmSimulator
+ from tpm2_pytss.TSS2_Exception import TSS2_Exception
+@@ -614,8 +614,7 @@ class Common:
+         self.fapi.sign(key_path, b"\x22" * 32)
+ 
+     @pytest.mark.skipif(
+-        _lib_version_atleast("tss2-fapi", "4.0.1-170")
+-        or not is_bug_fixed(fixed_in="3.2", backports=["2.4.7", "3.0.5", "3.1.1"]),
++        not is_bug_fixed(fixed_in="3.2", backports=["2.4.7", "3.0.5", "3.1.1"]),
+         reason="tpm2-tss bug, see #2084",
+     )
+     def test_write_authorize_nv(self, esys):
+@@ -662,8 +661,7 @@ class Common:
+             self.fapi.quote(path=key_path, pcrs=[7, 9])
+ 
+     @pytest.mark.skipif(
+-        _lib_version_atleast("tss2-fapi", "4.0.1-170")
+-        or not is_bug_fixed(fixed_in="3.2", backports=["2.4.7", "3.0.5", "3.1.1"]),
++        not is_bug_fixed(fixed_in="3.2", backports=["2.4.7", "3.0.5", "3.1.1"]),
+         reason="tpm2-tss bug, see #2084",
+     )
+     def test_authorize_policy(self, sign_key):
+@@ -728,9 +726,7 @@ class Common:
+             self.fapi.quote(path=key_path, pcrs=[7, 9])
+ 
+     @pytest.mark.skipif(
+-        _lib_version_atleast("tss2-fapi", "4.0.1-170")
+-        or not is_bug_fixed(fixed_in="3.2"),
+-        reason="tpm2-tss bug, see #2080",
++        not is_bug_fixed(fixed_in="3.2"), reason="tpm2-tss bug, see #2080"
+     )
+     def test_policy_signed(self, cryptography_key):
+         # create external signing key used by the signing authority external to the TPM
+@@ -792,10 +788,6 @@ class Common:
+         with pytest.raises(TSS2_Exception):
+             self.fapi.sign(path=key_path, digest=b"\x11" * 32)
+ 
+-    @pytest.mark.skipif(
+-        _lib_version_atleast("tss2-fapi", "4.0.1-170"),
+-        reason="issue on master branch.",
+-    )
+     def test_policy_branched(self):
+         pcr_index = 15
+         pcr_data = b"ABCDEF"
+@@ -913,8 +905,7 @@ class Common:
+         self.fapi.delete(path=nv_path)
+ 
+     @pytest.mark.skipif(
+-        _lib_version_atleast("tss2-fapi", "4.0.1-170")
+-        or not is_bug_fixed(fixed_in="3.2", backports=["2.4.7", "3.0.5", "3.1.1"]),
++        not is_bug_fixed(fixed_in="3.2", backports=["2.4.7", "3.0.5", "3.1.1"]),
+         reason="tpm2-tss bug, see #2089",
+     )
+     def test_policy_action(self):
+diff --git a/test/test_policy.py b/test/test_policy.py
+index f18aa8a..5f56e21 100644
+--- a/test/test_policy.py
++++ b/test/test_policy.py
+@@ -47,7 +47,7 @@ class TestPolicy(TSS2_EsapiTest):
+         super().setUp()
+         self._has_secp192r1 = True
+         try:
+-            ec.generate_private_key(ec.SECP192R1)
++            ec.generate_private_key(ec.SECP192R1())
+         except Exception:
+             self._has_secp192r1 = False
+ 
diff --git a/pkgs/development/python-modules/tqdm/default.nix b/pkgs/development/python-modules/tqdm/default.nix
index 9d5e813fcc694..4c3e8230fba72 100644
--- a/pkgs/development/python-modules/tqdm/default.nix
+++ b/pkgs/development/python-modules/tqdm/default.nix
@@ -57,7 +57,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "tqdm" ];
 
   meta = with lib; {
-    description = "A Fast, Extensible Progress Meter";
+    description = "Fast, Extensible Progress Meter";
     mainProgram = "tqdm";
     homepage = "https://github.com/tqdm/tqdm";
     changelog = "https://tqdm.github.io/releases/";
diff --git a/pkgs/development/python-modules/traceback2/default.nix b/pkgs/development/python-modules/traceback2/default.nix
index 0398aea1dd74f..a0b3eef17ab51 100644
--- a/pkgs/development/python-modules/traceback2/default.nix
+++ b/pkgs/development/python-modules/traceback2/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A backport of traceback to older supported Pythons";
+    description = "Backport of traceback to older supported Pythons";
     homepage = "https://pypi.python.org/pypi/traceback2/";
     license = licenses.psfl;
   };
diff --git a/pkgs/development/python-modules/trainer/default.nix b/pkgs/development/python-modules/trainer/default.nix
index e2c16943fffc9..117e954e7f308 100644
--- a/pkgs/development/python-modules/trainer/default.nix
+++ b/pkgs/development/python-modules/trainer/default.nix
@@ -2,6 +2,7 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+  fetchpatch,
 
   coqpit,
   fsspec,
@@ -30,6 +31,14 @@ buildPythonPackage {
     hash = "sha256-z6TOzWqE3NytkdG3nUzh9GpFVGQEXFyzSQ8gvdB4wiw=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "add-support-for-python312.patch";
+      hash = "sha256-V5RPn/2pGKzQrf/SIRU3imo6nBhpBEJpI7HsFYbVZj4=";
+      url = "https://github.com/coqui-ai/Trainer/commit/0278012c7e6f5972b656d11757add4ab89f6d272.patch";
+    })
+  ];
+
   postPatch = ''
     sed -i 's/^protobuf.*/protobuf/' requirements.txt
   '';
@@ -55,7 +64,7 @@ buildPythonPackage {
   pythonImportsCheck = [ "trainer" ];
 
   meta = with lib; {
-    description = "A general purpose model trainer, as flexible as it gets";
+    description = "General purpose model trainer, as flexible as it gets";
     homepage = "https://github.com/coqui-ai/Trainer";
     changelog = "https://github.com/coqui-ai/Trainer/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/transformers/default.nix b/pkgs/development/python-modules/transformers/default.nix
index 5db1c4b3b12ff..f730d649361b8 100644
--- a/pkgs/development/python-modules/transformers/default.nix
+++ b/pkgs/development/python-modules/transformers/default.nix
@@ -55,7 +55,7 @@
 
 buildPythonPackage rec {
   pname = "transformers";
-  version = "4.41.0";
+  version = "4.41.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -64,7 +64,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "transformers";
     rev = "refs/tags/v${version}";
-    hash = "sha256-FUYQeEksjDasFvQraycNFAx3cLHfDdPpgZssqN8OIJw=";
+    hash = "sha256-Y3WYO+63n/ATT9RmRJ9JLuhFWUiuBO4NL2KzvzELi+M=";
   };
 
   build-system = [ setuptools ];
@@ -186,14 +186,14 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "transformers" ];
 
-  meta = with lib; {
+  meta = {
     homepage = "https://github.com/huggingface/transformers";
     description = "Natural Language Processing for TensorFlow 2.0 and PyTorch";
     mainProgram = "transformers-cli";
     changelog = "https://github.com/huggingface/transformers/releases/tag/v${version}";
-    license = licenses.asl20;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [
+    license = lib.licenses.asl20;
+    platforms = lib.platforms.unix;
+    maintainers = with lib.maintainers; [
       pashashocky
       happysalada
     ];
diff --git a/pkgs/development/python-modules/transitions/default.nix b/pkgs/development/python-modules/transitions/default.nix
index 2425625f0a282..0f7310ca5c1fe 100644
--- a/pkgs/development/python-modules/transitions/default.nix
+++ b/pkgs/development/python-modules/transitions/default.nix
@@ -57,7 +57,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/pytransitions/transitions";
-    description = "A lightweight, object-oriented finite state machine implementation in Python";
+    description = "Lightweight, object-oriented finite state machine implementation in Python";
     changelog = "https://github.com/pytransitions/transitions/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/translatehtml/default.nix b/pkgs/development/python-modules/translatehtml/default.nix
index c1364ff8806f3..da93e4d8484bb 100644
--- a/pkgs/development/python-modules/translatehtml/default.nix
+++ b/pkgs/development/python-modules/translatehtml/default.nix
@@ -46,7 +46,7 @@ buildPythonPackage rec {
   doCheck = false; # no tests
 
   meta = with lib; {
-    description = "Translate HTML using Beautiful Soup and Argos Translate.";
+    description = "Translate HTML using Beautiful Soup and Argos Translate";
     homepage = "https://www.argosopentech.com";
     license = licenses.mit;
     maintainers = with maintainers; [ misuzu ];
diff --git a/pkgs/development/python-modules/translatepy/default.nix b/pkgs/development/python-modules/translatepy/default.nix
index 8207afb52a01b..499a47c2b999b 100644
--- a/pkgs/development/python-modules/translatepy/default.nix
+++ b/pkgs/development/python-modules/translatepy/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "translatepy" ];
 
   meta = with lib; {
-    description = "A module grouping multiple translation APIs";
+    description = "Module grouping multiple translation APIs";
     mainProgram = "translatepy";
     homepage = "https://github.com/Animenosekai/translate";
     license = with licenses; [ agpl3Only ];
diff --git a/pkgs/development/python-modules/tree-sitter-html/Cargo.lock b/pkgs/development/python-modules/tree-sitter-html/Cargo.lock
new file mode 100644
index 0000000000000..e34eb1cd132d0
--- /dev/null
+++ b/pkgs/development/python-modules/tree-sitter-html/Cargo.lock
@@ -0,0 +1,71 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.98"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
+
+[[package]]
+name = "memchr"
+version = "2.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
+
+[[package]]
+name = "regex"
+version = "1.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
+
+[[package]]
+name = "tree-sitter"
+version = "0.22.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df7cc499ceadd4dcdf7ec6d4cbc34ece92c3fa07821e287aedecd4416c516dca"
+dependencies = [
+ "cc",
+ "regex",
+]
+
+[[package]]
+name = "tree-sitter-html"
+version = "0.20.3"
+dependencies = [
+ "cc",
+ "tree-sitter",
+]
diff --git a/pkgs/development/python-modules/tree-sitter-html/default.nix b/pkgs/development/python-modules/tree-sitter-html/default.nix
new file mode 100644
index 0000000000000..2085ef7bad575
--- /dev/null
+++ b/pkgs/development/python-modules/tree-sitter-html/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, cargo
+, rustPlatform
+, rustc
+, setuptools
+, wheel
+, tree-sitter
+}:
+
+buildPythonPackage rec {
+  pname = "tree-sitter-html";
+  version = "0.20.3";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "tree-sitter";
+    repo = "tree-sitter-html";
+    rev = "v${version}";
+    hash = "sha256-sHy3fVWemJod18HCQ8zBC/LpeCCPH0nzhI1wrkCg8nw=";
+  };
+
+  cargoDeps = rustPlatform.importCargoLock {
+    lockFile = ./Cargo.lock;
+  };
+
+  postPatch = ''
+    ln -s ${./Cargo.lock} Cargo.lock
+  '';
+
+  build-system = [
+    cargo
+    rustPlatform.cargoSetupHook
+    rustc
+    setuptools
+    wheel
+  ];
+
+  passthru.optional-dependencies = {
+    core = [
+      tree-sitter
+    ];
+  };
+
+  # There are no tests
+  doCheck = false;
+  pythonImportsCheck = [ "tree_sitter_html" ];
+
+  meta = with lib; {
+    description = "HTML grammar for tree-sitter";
+    homepage = "https://github.com/tree-sitter/tree-sitter-html";
+    license = licenses.mit;
+    maintainers = with maintainers; [ doronbehar ];
+  };
+}
diff --git a/pkgs/development/python-modules/tree-sitter-javascript/Cargo.lock b/pkgs/development/python-modules/tree-sitter-javascript/Cargo.lock
new file mode 100644
index 0000000000000..2a6627a051151
--- /dev/null
+++ b/pkgs/development/python-modules/tree-sitter-javascript/Cargo.lock
@@ -0,0 +1,71 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.98"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
+
+[[package]]
+name = "memchr"
+version = "2.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
+
+[[package]]
+name = "regex"
+version = "1.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
+
+[[package]]
+name = "tree-sitter"
+version = "0.22.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df7cc499ceadd4dcdf7ec6d4cbc34ece92c3fa07821e287aedecd4416c516dca"
+dependencies = [
+ "cc",
+ "regex",
+]
+
+[[package]]
+name = "tree-sitter-javascript"
+version = "0.21.3"
+dependencies = [
+ "cc",
+ "tree-sitter",
+]
diff --git a/pkgs/development/python-modules/tree-sitter-javascript/default.nix b/pkgs/development/python-modules/tree-sitter-javascript/default.nix
new file mode 100644
index 0000000000000..50b115c4e7ef8
--- /dev/null
+++ b/pkgs/development/python-modules/tree-sitter-javascript/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, cargo
+, rustPlatform
+, rustc
+, setuptools
+, wheel
+, tree-sitter
+}:
+
+buildPythonPackage rec {
+  pname = "tree-sitter-javascript";
+  version = "0.21.3";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "tree-sitter";
+    repo = "tree-sitter-javascript";
+    rev = "v${version}";
+    hash = "sha256-jsdY9Pd9WqZuBYtk088mx1bRQadC6D2/tGGVY+ZZ0J4=";
+  };
+
+  cargoDeps = rustPlatform.importCargoLock {
+    # Upstream doesn't track a Cargo.lock file unfortunatly, but they barely
+    # have rust dependencies so it doesn't cost us too much.
+    lockFile = ./Cargo.lock;
+  };
+
+  postPatch = ''
+    ln -s ${./Cargo.lock} Cargo.lock
+  '';
+
+  build-system = [
+    cargo
+    rustPlatform.cargoSetupHook
+    rustc
+    setuptools
+    wheel
+  ];
+
+  passthru.optional-dependencies = {
+    core = [
+      tree-sitter
+    ];
+  };
+
+  # There are no tests
+  doCheck = false;
+  pythonImportsCheck = [ "tree_sitter_javascript" ];
+
+  meta = with lib; {
+    description = "JavaScript and JSX grammar for tree-sitter";
+    homepage = "https://github.com/tree-sitter/tree-sitter-javascript";
+    license = licenses.mit;
+    maintainers = with maintainers; [ doronbehar ];
+  };
+}
diff --git a/pkgs/development/python-modules/tree-sitter-json/Cargo.lock b/pkgs/development/python-modules/tree-sitter-json/Cargo.lock
new file mode 100644
index 0000000000000..1b9b095b26378
--- /dev/null
+++ b/pkgs/development/python-modules/tree-sitter-json/Cargo.lock
@@ -0,0 +1,71 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.98"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
+
+[[package]]
+name = "memchr"
+version = "2.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
+
+[[package]]
+name = "regex"
+version = "1.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
+
+[[package]]
+name = "tree-sitter"
+version = "0.22.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df7cc499ceadd4dcdf7ec6d4cbc34ece92c3fa07821e287aedecd4416c516dca"
+dependencies = [
+ "cc",
+ "regex",
+]
+
+[[package]]
+name = "tree-sitter-json"
+version = "0.21.0"
+dependencies = [
+ "cc",
+ "tree-sitter",
+]
diff --git a/pkgs/development/python-modules/tree-sitter-json/default.nix b/pkgs/development/python-modules/tree-sitter-json/default.nix
new file mode 100644
index 0000000000000..acf574bef1d98
--- /dev/null
+++ b/pkgs/development/python-modules/tree-sitter-json/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, cargo
+, rustPlatform
+, rustc
+, setuptools
+, wheel
+, tree-sitter
+}:
+
+buildPythonPackage rec {
+  pname = "tree-sitter-json";
+  version = "0.21.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "tree-sitter";
+    repo = "tree-sitter-json";
+    rev = "v${version}";
+    hash = "sha256-waejAbS7MjrE7w03MPqvBRpEpqTcKc6RgKCVSYaDV1Y=";
+  };
+
+  cargoDeps = rustPlatform.importCargoLock {
+    # Upstream doesn't track a Cargo.lock file unfortunatly, but they barely
+    # have rust dependencies so it doesn't cost us too much.
+    lockFile = ./Cargo.lock;
+  };
+
+  postPatch = ''
+    ln -s ${./Cargo.lock} Cargo.lock
+  '';
+
+  build-system = [
+    cargo
+    rustPlatform.cargoSetupHook
+    rustc
+    setuptools
+    wheel
+  ];
+
+  passthru.optional-dependencies = {
+    core = [
+      tree-sitter
+    ];
+  };
+
+  # There are no tests
+  doCheck = false;
+  pythonImportsCheck = [ "tree_sitter_json" ];
+
+  meta = with lib; {
+    description = "JSON grammar for tree-sitter";
+    homepage = "https://github.com/tree-sitter/tree-sitter-json";
+    license = licenses.mit;
+    maintainers = with maintainers; [ doronbehar ];
+  };
+}
diff --git a/pkgs/development/python-modules/tree-sitter-languages/default.nix b/pkgs/development/python-modules/tree-sitter-languages/default.nix
new file mode 100644
index 0000000000000..a118e4ffe0cca
--- /dev/null
+++ b/pkgs/development/python-modules/tree-sitter-languages/default.nix
@@ -0,0 +1,68 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, wheel
+, cython
+, tree-sitter0_21
+, pytestCheckHook
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "tree-sitter-languages";
+  version = "1.10.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "grantjenks";
+    repo = "py-tree-sitter-languages";
+    rev = "v${version}";
+    hash = "sha256-wKU2c8QRBKFVFqg+DAeH5+cwm5jpDLmPZG3YBUsh/lM=";
+    # Use git, to also fetch tree-sitter repositories that upstream puts their
+    # hases in the repository as well, in repos.txt.
+    forceFetchGit = true;
+    postFetch = ''
+      cd $out
+      substitute build.py get-repos.py \
+        --replace-fail "from tree_sitter import Language" "" \
+        --replace-fail 'print(f"{sys.argv[0]}: Building", languages_filename)' "exit(0)"
+      ${python.pythonOnBuildForHost.interpreter} get-repos.py
+      rm -rf vendor/*/.git
+    '';
+  };
+
+  build-system = [
+    setuptools
+    wheel
+    cython
+  ];
+  dependencies = [
+    # https://github.com/grantjenks/py-tree-sitter-languages/issues/67
+    tree-sitter0_21
+  ];
+  # Generate languages.so file (build won't fail without this, but tests will).
+  preBuild = ''
+    ${python.pythonOnBuildForHost.interpreter} build.py
+  '';
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+  # Without cd $out, tests fail to import the compiled cython extensions.
+  # Without copying the ./tests/ directory to $out, pytest won't detect the
+  # tests and run them. See also:
+  # https://github.com/NixOS/nixpkgs/issues/255262
+  preCheck = ''
+    cp -r tests $out/${python.sitePackages}/tree_sitter_languages
+    cd $out
+  '';
+
+  pythonImportsCheck = [ "tree_sitter_languages" ];
+
+  meta = with lib; {
+    description = "Binary Python wheels for all tree sitter languages";
+    homepage = "https://github.com/grantjenks/py-tree-sitter-languages";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ doronbehar ];
+  };
+}
diff --git a/pkgs/development/python-modules/tree-sitter-python/Cargo.lock b/pkgs/development/python-modules/tree-sitter-python/Cargo.lock
new file mode 100644
index 0000000000000..001baef04472e
--- /dev/null
+++ b/pkgs/development/python-modules/tree-sitter-python/Cargo.lock
@@ -0,0 +1,71 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.98"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
+
+[[package]]
+name = "memchr"
+version = "2.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
+
+[[package]]
+name = "regex"
+version = "1.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
+
+[[package]]
+name = "tree-sitter"
+version = "0.22.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df7cc499ceadd4dcdf7ec6d4cbc34ece92c3fa07821e287aedecd4416c516dca"
+dependencies = [
+ "cc",
+ "regex",
+]
+
+[[package]]
+name = "tree-sitter-python"
+version = "0.21.0"
+dependencies = [
+ "cc",
+ "tree-sitter",
+]
diff --git a/pkgs/development/python-modules/tree-sitter-python/default.nix b/pkgs/development/python-modules/tree-sitter-python/default.nix
new file mode 100644
index 0000000000000..e42136f5c2ada
--- /dev/null
+++ b/pkgs/development/python-modules/tree-sitter-python/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, cargo
+, rustPlatform
+, rustc
+, setuptools
+, wheel
+, tree-sitter
+}:
+
+buildPythonPackage rec {
+  pname = "tree-sitter-python";
+  version = "0.21.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "tree-sitter";
+    repo = "tree-sitter-python";
+    rev = "v${version}";
+    hash = "sha256-ZQ949GbgzZ/W667J+ekvQbs4bGnbDO+IWejivhxPZXM=";
+  };
+
+  cargoDeps = rustPlatform.importCargoLock {
+    # Upstream doesn't track a Cargo.lock file unfortunatly, but they barely
+    # have rust dependencies so it doesn't cost us too much.
+    lockFile = ./Cargo.lock;
+  };
+
+  postPatch = ''
+    ln -s ${./Cargo.lock} Cargo.lock
+  '';
+
+  build-system = [
+    cargo
+    rustPlatform.cargoSetupHook
+    rustc
+    setuptools
+    wheel
+  ];
+
+  passthru.optional-dependencies = {
+    core = [
+      tree-sitter
+    ];
+  };
+
+  # There are no tests
+  doCheck = false;
+  pythonImportsCheck = [ "tree_sitter_python" ];
+
+  meta = with lib; {
+    description = "Python grammar for tree-sitter";
+    homepage = "https://github.com/tree-sitter/tree-sitter-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ doronbehar ];
+  };
+}
diff --git a/pkgs/development/python-modules/tree-sitter-rust/Cargo.lock b/pkgs/development/python-modules/tree-sitter-rust/Cargo.lock
new file mode 100644
index 0000000000000..406fa5fc19bbe
--- /dev/null
+++ b/pkgs/development/python-modules/tree-sitter-rust/Cargo.lock
@@ -0,0 +1,71 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.98"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
+
+[[package]]
+name = "memchr"
+version = "2.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
+
+[[package]]
+name = "regex"
+version = "1.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
+
+[[package]]
+name = "tree-sitter"
+version = "0.22.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df7cc499ceadd4dcdf7ec6d4cbc34ece92c3fa07821e287aedecd4416c516dca"
+dependencies = [
+ "cc",
+ "regex",
+]
+
+[[package]]
+name = "tree-sitter-rust"
+version = "0.21.2"
+dependencies = [
+ "cc",
+ "tree-sitter",
+]
diff --git a/pkgs/development/python-modules/tree-sitter-rust/default.nix b/pkgs/development/python-modules/tree-sitter-rust/default.nix
new file mode 100644
index 0000000000000..b2c85aa9c5c1e
--- /dev/null
+++ b/pkgs/development/python-modules/tree-sitter-rust/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, cargo
+, rustPlatform
+, rustc
+, setuptools
+, wheel
+, tree-sitter
+}:
+
+buildPythonPackage rec {
+  pname = "tree-sitter-rust";
+  version = "0.21.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "tree-sitter";
+    repo = "tree-sitter-rust";
+    rev = "v${version}";
+    hash = "sha256-4CTh6fKSV8TuMHLAfEKWsAeCqeCM2uo6hVmF5KWhyPY=";
+  };
+
+  cargoDeps = rustPlatform.importCargoLock {
+    # Upstream doesn't track a Cargo.lock file unfortunatly, but they barely
+    # have rust dependencies so it doesn't cost us too much.
+    lockFile = ./Cargo.lock;
+  };
+
+  postPatch = ''
+    ln -s ${./Cargo.lock} Cargo.lock
+  '';
+
+  build-system = [
+    cargo
+    rustPlatform.cargoSetupHook
+    rustc
+    setuptools
+    wheel
+  ];
+
+
+  passthru.optional-dependencies = {
+    core = [
+      tree-sitter
+    ];
+  };
+
+  # There are no tests
+  doCheck = false;
+  pythonImportsCheck = [ "tree_sitter_rust" ];
+
+  meta = with lib; {
+    description = "Rust grammar for tree-sitter";
+    homepage = "https://github.com/tree-sitter/tree-sitter-rust";
+    license = licenses.mit;
+    maintainers = with maintainers; [ doronbehar ];
+  };
+}
diff --git a/pkgs/development/python-modules/tree-sitter/default.nix b/pkgs/development/python-modules/tree-sitter/default.nix
index 91bbe16a52f41..fdaa03554433a 100644
--- a/pkgs/development/python-modules/tree-sitter/default.nix
+++ b/pkgs/development/python-modules/tree-sitter/default.nix
@@ -2,15 +2,19 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   pytestCheckHook,
   pythonOlder,
   setuptools,
+  tree-sitter-python,
+  tree-sitter-rust,
+  tree-sitter-html,
+  tree-sitter-javascript,
+  tree-sitter-json,
 }:
 
 buildPythonPackage rec {
   pname = "tree-sitter";
-  version = "0.21.1";
+  version = "0.22.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,26 +23,25 @@ buildPythonPackage rec {
     owner = "tree-sitter";
     repo = "py-tree-sitter";
     rev = "refs/tags/v${version}";
-    hash = "sha256-U4ZdU0lxjZO/y0q20bG5CLKipnfpaxzV3AFR6fGS7m4=";
+    hash = "sha256-4lxE8oDFE0X7YAnB72PKIaHIqovWSM5QnFo0grPAtKU=";
     fetchSubmodules = true;
   };
 
-  patches = [
-    #  Replace distutils with setuptools, https://github.com/tree-sitter/py-tree-sitter/pull/214
-    (fetchpatch {
-      name = "replace-distutils.patch";
-      url = "https://github.com/tree-sitter/py-tree-sitter/commit/80d3cae493c4a47e49cc1d2ebab0a8eaf7617825.patch";
-      hash = "sha256-00coI8/COpYMiSflAECwh6yJCMJj/ucFEn18Npj2g+Q=";
-    })
-  ];
-
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [ pytestCheckHook ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    tree-sitter-python
+    tree-sitter-rust
+    tree-sitter-html
+    tree-sitter-javascript
+    tree-sitter-json
+  ];
 
   pythonImportsCheck = [ "tree_sitter" ];
 
   preCheck = ''
+    # https://github.com/NixOS/nixpkgs/issues/255262#issuecomment-1721265871
     rm -r tree_sitter
   '';
 
diff --git a/pkgs/development/python-modules/tree-sitter0_21/default.nix b/pkgs/development/python-modules/tree-sitter0_21/default.nix
new file mode 100644
index 0000000000000..665f7d6b56ce9
--- /dev/null
+++ b/pkgs/development/python-modules/tree-sitter0_21/default.nix
@@ -0,0 +1,44 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  pythonAtLeast,
+  setuptools,
+}:
+
+buildPythonPackage rec {
+  pname = "tree-sitter0_21";
+  version = "0.21.3";
+  pyproject = true;
+
+  # https://github.com/tree-sitter/py-tree-sitter/issues/209
+  disabled = pythonAtLeast "3.12" || pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "tree-sitter";
+    repo = "py-tree-sitter";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-HT1sRzDFpeelWCq1ZMeRmoUg0a3SBR7bZKxBqn4fb2g=";
+    fetchSubmodules = true;
+  };
+
+  build-system = [ setuptools ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "tree_sitter" ];
+
+  preCheck = ''
+    rm -r tree_sitter
+  '';
+
+  meta = with lib; {
+    description = "Python bindings to the Tree-sitter parsing library";
+    homepage = "https://github.com/tree-sitter/py-tree-sitter";
+    changelog = "https://github.com/tree-sitter/py-tree-sitter/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/treelib/default.nix b/pkgs/development/python-modules/treelib/default.nix
index 490bba2fa3b3f..213823da0e283 100644
--- a/pkgs/development/python-modules/treelib/default.nix
+++ b/pkgs/development/python-modules/treelib/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "treelib" ];
 
   meta = with lib; {
-    description = "An efficient implementation of tree data structure in python 2/3";
+    description = "Efficient implementation of tree data structure in python 2/3";
     homepage = "https://github.com/caesar0301/treelib";
     changelog = "https://github.com/caesar0301/treelib/releases/tag/${src.rev}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/treelog/default.nix b/pkgs/development/python-modules/treelog/default.nix
index 87ef2eca9f147..7739b8253bb42 100644
--- a/pkgs/development/python-modules/treelog/default.nix
+++ b/pkgs/development/python-modules/treelog/default.nix
@@ -1,6 +1,5 @@
 {
   lib,
-  python,
   buildPythonPackage,
   fetchPypi,
   typing-extensions,
@@ -20,10 +19,6 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ typing-extensions ];
 
-  checkPhase = ''
-    ${python.interpreter} -m unittest
-  '';
-
   meta = with lib; {
     description = "Logging framework that organizes messages in a tree structure";
     homepage = "https://github.com/evalf/treelog";
diff --git a/pkgs/development/python-modules/treeo/default.nix b/pkgs/development/python-modules/treeo/default.nix
index 785ba18c670b2..bca135f92a177 100644
--- a/pkgs/development/python-modules/treeo/default.nix
+++ b/pkgs/development/python-modules/treeo/default.nix
@@ -44,7 +44,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "treeo" ];
 
   meta = with lib; {
-    description = "A small library for creating and manipulating custom JAX Pytree classes.";
+    description = "Small library for creating and manipulating custom JAX Pytree classes";
     homepage = "https://github.com/cgarciae/treeo";
     license = licenses.mit;
     maintainers = with maintainers; [ ndl ];
diff --git a/pkgs/development/python-modules/trfl/default.nix b/pkgs/development/python-modules/trfl/default.nix
index a0041be98eabb..1e8120bdec681 100644
--- a/pkgs/development/python-modules/trfl/default.nix
+++ b/pkgs/development/python-modules/trfl/default.nix
@@ -72,5 +72,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/deepmind/trfl";
     license = licenses.asl20;
     maintainers = with maintainers; [ onny ];
+    # ModuleNotFoundError: No module named 'keras.api._v2' as tensorflow is too outdated
+    broken = true;
   };
 }
diff --git a/pkgs/development/python-modules/trimesh/default.nix b/pkgs/development/python-modules/trimesh/default.nix
index 8758b6c538411..daa6282fb1a3e 100644
--- a/pkgs/development/python-modules/trimesh/default.nix
+++ b/pkgs/development/python-modules/trimesh/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "trimesh";
-  version = "4.4.0";
+  version = "4.4.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-2vblZxXeLpPdkF6Sb5uxDSPcQVf5ckqnyqtdDiiWPlY=";
+    hash = "sha256-dn/jyGa6dObZqdIWw07MHP4vvz8SmmwR1ZhxcFpZGro=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/trio/default.nix b/pkgs/development/python-modules/trio/default.nix
index 5fc2e6cd2e306..b4e37ee448f6a 100644
--- a/pkgs/development/python-modules/trio/default.nix
+++ b/pkgs/development/python-modules/trio/default.nix
@@ -97,7 +97,7 @@ buildPythonPackage rec {
 
   meta = {
     changelog = "https://github.com/python-trio/trio/blob/v${version}/docs/source/history.rst";
-    description = "An async/await-native I/O library for humans and snake people";
+    description = "Async/await-native I/O library for humans and snake people";
     homepage = "https://github.com/python-trio/trio";
     license = with lib.licenses; [
       mit
diff --git a/pkgs/development/python-modules/troposphere/default.nix b/pkgs/development/python-modules/troposphere/default.nix
index cd1126da2eac2..42326544c3405 100644
--- a/pkgs/development/python-modules/troposphere/default.nix
+++ b/pkgs/development/python-modules/troposphere/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "troposphere";
-  version = "4.7.0";
+  version = "4.8.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "cloudtools";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-9zzbBtIJ4v+eI0eJZ6vGUABN4i9GLJcMAzerRSnzpqQ=";
+    hash = "sha256-JmoPXYEqaFxDIW8NmmZ8VpKX9gfZ1rVFu+dPZOL7C5k=";
   };
 
   propagatedBuildInputs = [ cfn-flip ] ++ lib.optionals (pythonOlder "3.8") [ typing-extensions ];
diff --git a/pkgs/development/python-modules/trueskill/default.nix b/pkgs/development/python-modules/trueskill/default.nix
index 35f9d239451af..8013f252ac9e7 100644
--- a/pkgs/development/python-modules/trueskill/default.nix
+++ b/pkgs/development/python-modules/trueskill/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "The video game rating system";
+    description = "Video game rating system";
     homepage = "https://trueskill.org";
     license = licenses.bsd3;
     maintainers = with maintainers; [ eadwu ];
diff --git a/pkgs/development/python-modules/truststore/default.nix b/pkgs/development/python-modules/truststore/default.nix
index 53635bcb19685..820d823f81468 100644
--- a/pkgs/development/python-modules/truststore/default.nix
+++ b/pkgs/development/python-modules/truststore/default.nix
@@ -13,21 +13,21 @@
 
 buildPythonPackage rec {
   pname = "truststore";
-  version = "0.8.0";
-  format = "pyproject";
+  version = "0.9.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "sethmlarson";
-    repo = pname;
+    repo = "truststore";
     rev = "refs/tags/v${version}";
-    hash = "sha256-K11nHzpckNR8pqmgLOo/yCJ2cNQnqPHgjMDPQkpeRkQ=";
+    hash = "sha256-BP88oQ363XFuRMKZqW8wSm1wl5upU+yEgmwktv65JOU=";
   };
 
-  nativeBuildInputs = [ flit-core ];
+  build-system = [ flit-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     httpx
     pyopenssl
@@ -35,14 +35,14 @@ buildPythonPackage rec {
     trustme
   ];
 
-  # tests requires networking
+  # Tests requires networking
   doCheck = false;
 
   pythonImportsCheck = [ "truststore" ];
 
   meta = with lib; {
-    homepage = "https://github.com/sethmlarson/truststore";
     description = "Verify certificates using native system trust stores";
+    homepage = "https://github.com/sethmlarson/truststore";
     changelog = "https://github.com/sethmlarson/truststore/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ anthonyroussel ];
diff --git a/pkgs/development/python-modules/trytond/default.nix b/pkgs/development/python-modules/trytond/default.nix
index e554513c72d02..c29aa09876c1e 100644
--- a/pkgs/development/python-modules/trytond/default.nix
+++ b/pkgs/development/python-modules/trytond/default.nix
@@ -1,5 +1,6 @@
 {
   lib,
+  stdenv,
   buildPythonPackage,
   fetchPypi,
   pythonOlder,
@@ -26,14 +27,14 @@
 
 buildPythonPackage rec {
   pname = "trytond";
-  version = "7.2.1";
+  version = "7.2.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-gIWWzm7emSwgKoO5geNIXUqKNsDiq6fle5OHb+KvhLE=";
+    hash = "sha256-rpHDbWNfMRrNOH/iXKmt45FxwInIENgCiUQtcCPvQgU=";
   };
 
   propagatedBuildInputs =
@@ -76,7 +77,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "The server of the Tryton application platform";
+    description = "Server of the Tryton application platform";
     longDescription = ''
       The server for Tryton, a three-tier high-level general purpose
       application platform under the license GPL-3 written in Python and using
@@ -88,6 +89,7 @@ buildPythonPackage rec {
     homepage = "http://www.tryton.org/";
     changelog = "https://foss.heptapod.net/tryton/tryton/-/blob/trytond-${version}/trytond/CHANGELOG?ref_type=tags";
     license = licenses.gpl3Plus;
+    broken = stdenv.isDarwin;
     maintainers = with maintainers; [
       udono
       johbo
diff --git a/pkgs/development/python-modules/tskit/default.nix b/pkgs/development/python-modules/tskit/default.nix
index 7a7f9e4be687f..0299fea08e5aa 100644
--- a/pkgs/development/python-modules/tskit/default.nix
+++ b/pkgs/development/python-modules/tskit/default.nix
@@ -2,7 +2,7 @@
   lib,
   buildPythonPackage,
   fetchPypi,
-  setuptools-scm,
+  setuptools,
   pythonOlder,
   numpy,
   jsonschema,
@@ -11,20 +11,21 @@
 
 buildPythonPackage rec {
   pname = "tskit";
-  version = "0.5.6";
-  format = "pyproject";
+  version = "0.5.7";
+  pyproject = true;
+
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-3f4hPxywY822mCF3IwooBezX38fM1zAm4Th4q//SzkY=";
+    hash = "sha256-yD+2W1tzzi+5wFoZrqNe+jJLpWyx6ZILBgKivDE+wiM=";
   };
 
-  nativeBuildInputs = [ setuptools-scm ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
-    numpy
+  dependencies = [
     jsonschema
+    numpy
     svgwrite
   ];
 
@@ -34,11 +35,11 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "tskit" ];
 
-  meta = with lib; {
-    description = "The tree sequence toolkit";
+  meta = {
+    description = "Tree sequence toolkit";
     mainProgram = "tskit";
     homepage = "https://github.com/tskit-dev/tskit";
-    license = licenses.mit;
-    maintainers = with maintainers; [ alxsimon ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ alxsimon ];
   };
 }
diff --git a/pkgs/development/python-modules/ttn-client/default.nix b/pkgs/development/python-modules/ttn-client/default.nix
index b2d3e35875a82..8c875737a62bd 100644
--- a/pkgs/development/python-modules/ttn-client/default.nix
+++ b/pkgs/development/python-modules/ttn-client/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "ttn-client";
-  version = "0.0.4";
+  version = "1.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "angelnu";
     repo = "thethingsnetwork_python_client";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ZLSMxFyzfPtz51fsY2wgucHzcAnSrL7VPOuW7DXTNbQ=";
+    hash = "sha256-AVEPOsEV/oJ5qM0w18dokH2R6zr1kvvJ1diR7GWqJwg=";
   };
 
   nativeBuildInputs = [ hatchling ];
diff --git a/pkgs/development/python-modules/tubes/default.nix b/pkgs/development/python-modules/tubes/default.nix
index 7d593371d11e6..df51ef91265ae 100644
--- a/pkgs/development/python-modules/tubes/default.nix
+++ b/pkgs/development/python-modules/tubes/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "tubes" ];
 
   meta = with lib; {
-    description = "a data-processing and flow-control engine for event-driven programs";
+    description = "Data-processing and flow-control engine for event-driven programs";
     homepage = "https://github.com/twisted/tubes";
     license = licenses.mit;
     maintainers = with maintainers; [ exarkun ];
diff --git a/pkgs/development/python-modules/tuya-device-sharing-sdk/default.nix b/pkgs/development/python-modules/tuya-device-sharing-sdk/default.nix
index 3179f22b5a5ef..c831f7a0108cd 100644
--- a/pkgs/development/python-modules/tuya-device-sharing-sdk/default.nix
+++ b/pkgs/development/python-modules/tuya-device-sharing-sdk/default.nix
@@ -9,14 +9,14 @@
 }:
 let
   pname = "tuya-device-sharing-sdk";
-  version = "0.2.0";
+  version = "0.1.9";
 in
 buildPythonPackage {
   inherit pname version;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-fu8zh59wlnxtstNbNL8mIm10tiXy22oPbi6oUy5x8c8=";
+    hash = "sha256-mBKR+ttBo0VF33pEmYdjbyM4bGgyDiYexIIsf8mXZW4=";
   };
 
   # workaround needed, upstream issue: https://github.com/tuya/tuya-device-sharing-sdk/issues/10
diff --git a/pkgs/development/python-modules/tweedledum/default.nix b/pkgs/development/python-modules/tweedledum/default.nix
index ccefd1df6a8a9..f31bee02bc17d 100644
--- a/pkgs/development/python-modules/tweedledum/default.nix
+++ b/pkgs/development/python-modules/tweedledum/default.nix
@@ -40,7 +40,7 @@ buildPythonPackage rec {
   pytestFlagsArray = [ "python/test" ];
 
   meta = with lib; {
-    description = "A library for synthesizing and manipulating quantum circuits";
+    description = "Library for synthesizing and manipulating quantum circuits";
     homepage = "https://github.com/boschmitt/tweedledum";
     license = licenses.mit;
     maintainers = with maintainers; [ drewrisinger ];
diff --git a/pkgs/development/python-modules/twilio/default.nix b/pkgs/development/python-modules/twilio/default.nix
index 5558ce327290d..204637733d55e 100644
--- a/pkgs/development/python-modules/twilio/default.nix
+++ b/pkgs/development/python-modules/twilio/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "twilio";
-  version = "9.0.5";
+  version = "9.2.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "twilio";
     repo = "twilio-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-q7tY44L8KA29HeoLBJf75Xp3IZSiT5DOkhtZ+7BD7Hg=";
+    hash = "sha256-vENcbkWXSdhHv3QYjhu8j2UmzmEFHaSD0xDb2pbxqMM=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/twill/default.nix b/pkgs/development/python-modules/twill/default.nix
index 08e8ad74de225..3077cee0c6d10 100644
--- a/pkgs/development/python-modules/twill/default.nix
+++ b/pkgs/development/python-modules/twill/default.nix
@@ -49,7 +49,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "twill" ];
 
   meta = with lib; {
-    description = "A simple scripting language for Web browsing";
+    description = "Simple scripting language for Web browsing";
     homepage = "https://twill-tools.github.io/twill/";
     changelog = "https://github.com/twill-tools/twill/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/txgithub/default.nix b/pkgs/development/python-modules/txgithub/default.nix
index ccd68920145aa..98530fb9f413a 100644
--- a/pkgs/development/python-modules/txgithub/default.nix
+++ b/pkgs/development/python-modules/txgithub/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "GitHub API client implemented using Twisted.";
+    description = "GitHub API client implemented using Twisted";
     homepage = "https://github.com/tomprince/txgithub";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/txrequests/default.nix b/pkgs/development/python-modules/txrequests/default.nix
index db158401d3406..aeabc80a94259 100644
--- a/pkgs/development/python-modules/txrequests/default.nix
+++ b/pkgs/development/python-modules/txrequests/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ unittestCheckHook ];
 
   meta = with lib; {
-    description = "Asynchronous Python HTTP for Humans.";
+    description = "Asynchronous Python HTTP for Humans";
     homepage = "https://github.com/tardyp/txrequests";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/txtai/default.nix b/pkgs/development/python-modules/txtai/default.nix
index a6f36840e0b65..a689f4381d6cf 100644
--- a/pkgs/development/python-modules/txtai/default.nix
+++ b/pkgs/development/python-modules/txtai/default.nix
@@ -50,9 +50,11 @@
   xmltodict,
   # native check inputs
   unittestCheckHook,
+
+  pythonAtLeast,
 }:
 let
-  version = "7.1.0";
+  version = "7.2.0";
   api = [
     aiohttp
     fastapi
@@ -154,7 +156,7 @@ buildPythonPackage {
     owner = "neuml";
     repo = "txtai";
     rev = "refs/tags/v${version}";
-    hash = "sha256-L+L2jRkCQKOgd1k3N4mft0Kt6kvCN81lgSQUjoon5rk=";
+    hash = "sha256-2d31wzUz0/FcrejDIog2EI4BXgjd7XXpN4tRXpLk5DI=";
   };
 
   nativeBuildInputs = [ pythonRelaxDepsHook ];
@@ -195,11 +197,13 @@ buildPythonPackage {
     "-v"
   ];
 
-  meta = with lib; {
+  meta = {
     description = "Semantic search and workflows powered by language models";
     changelog = "https://github.com/neuml/txtai/releases/tag/v${version}";
     homepage = "https://github.com/neuml/txtai";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ happysalada ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ happysalada ];
+    # This should be addressed in a newer version, but we first need to wait for python311Packages.faiss to be updated
+    broken = pythonAtLeast "3.12";
   };
 }
diff --git a/pkgs/development/python-modules/typecode/libmagic.nix b/pkgs/development/python-modules/typecode/libmagic.nix
index 189c82b35d0bb..7d1add320b4cb 100644
--- a/pkgs/development/python-modules/typecode/libmagic.nix
+++ b/pkgs/development/python-modules/typecode/libmagic.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "typecode_libmagic" ];
 
   meta = with lib; {
-    description = "A ScanCode Toolkit plugin to provide pre-built binary libraries and utilities and their locations";
+    description = "ScanCode Toolkit plugin to provide pre-built binary libraries and utilities and their locations";
     homepage = "https://github.com/nexB/scancode-plugins/tree/main/builtins/typecode_libmagic-linux";
     license = licenses.asl20;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/typer-shell/default.nix b/pkgs/development/python-modules/typer-shell/default.nix
new file mode 100644
index 0000000000000..bb195d121fb62
--- /dev/null
+++ b/pkgs/development/python-modules/typer-shell/default.nix
@@ -0,0 +1,59 @@
+{
+  lib,
+  buildPythonPackage,
+  click,
+  click-shell,
+  fetchFromGitHub,
+  iterfzf,
+  poetry-core,
+  pythonRelaxDepsHook,
+  pythonOlder,
+  pyyaml,
+  rich,
+  typer,
+}:
+
+buildPythonPackage rec {
+  pname = "typer-shell";
+  version = "0.1.9";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "FergusFettes";
+    repo = "typer-shell";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-y66Je9E0IWDuGrHtd1D8zP7E0EVfvrF3KOlA2dRFU+s=";
+  };
+
+  pythonRelaxDeps = [
+    "iterfzf"
+    "typer"
+  ];
+
+  build-system = [ poetry-core ];
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
+
+  dependencies = [
+    click
+    click-shell
+    iterfzf
+    pyyaml
+    rich
+    typer
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "typer_shell" ];
+
+  meta = with lib; {
+    description = "Library for making beautiful shells/REPLs with Typer";
+    homepage = "https://github.com/FergusFettes/typer-shell";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/types-aiobotocore-packages/default.nix b/pkgs/development/python-modules/types-aiobotocore-packages/default.nix
index dc8f4c86cb2fb..b7ae5e53db882 100644
--- a/pkgs/development/python-modules/types-aiobotocore-packages/default.nix
+++ b/pkgs/development/python-modules/types-aiobotocore-packages/default.nix
@@ -1,5 +1,6 @@
 {
   lib,
+  stdenv,
   aiobotocore,
   botocore,
   buildPythonPackage,
@@ -8,1450 +9,1452 @@
   setuptools,
   typing-extensions,
 }:
+
 let
   toUnderscore = str: builtins.replaceStrings [ "-" ] [ "_" ] str;
-
   buildTypesAiobotocorePackage =
     serviceName: version: hash:
     buildPythonPackage rec {
       pname = "types-aiobotocore-${serviceName}";
       inherit version;
       pyproject = true;
-
       disabled = pythonOlder "3.7";
 
-      src = fetchPypi { inherit pname version hash; };
+      oldStylePackages = [ "gamesparks" "iot-roborunner" "macie" ];
 
+      src = fetchPypi {
+        pname = if builtins.elem serviceName oldStylePackages then
+            "types-aiobotocore-${serviceName}"
+          else
+            "types_aiobotocore_${toUnderscore serviceName}";
+        inherit version hash;
+      };
       build-system = [ setuptools ];
-
       dependencies = [
         aiobotocore
         botocore
       ] ++ lib.optionals (pythonOlder "3.12") [ typing-extensions ];
-
-      # Project has no tests
+      # Module has no tests
       doCheck = false;
-
       pythonImportsCheck = [ "types_aiobotocore_${toUnderscore serviceName}" ];
-
       meta = with lib; {
         description = "Type annotations for aiobotocore ${serviceName}";
         homepage = "https://github.com/youtype/mypy_boto3_builder";
-        license = with licenses; [ mit ];
+        license = licenses.mit;
         maintainers = with maintainers; [ mbalatsko ];
       };
     };
 in
 rec {
   types-aiobotocore-accessanalyzer =
-    buildTypesAiobotocorePackage "accessanalyzer" "2.11.2"
-      "sha256-hUS1ZTj9CbC74Aiinmeh2BEQ2KymcqxuYVSeD12s5xg";
+    buildTypesAiobotocorePackage "accessanalyzer" "2.13.0"
+      "sha256-2rGRzXYKK3p9OCb0navkEMfhOD5KHkn8wcBPL1LaNSw=";
 
   types-aiobotocore-account =
-    buildTypesAiobotocorePackage "account" "2.11.2"
-      "sha256-XtL7R0UrgI/9rSxfNYbA0Lez+DiVyB7R+rhn49Nxerc=";
+    buildTypesAiobotocorePackage "account" "2.13.0"
+      "sha256-AZFkiL11ITJ7BqrQ2n6O36KZTkEnHfWPgCfrNujkSUM=";
 
   types-aiobotocore-acm =
-    buildTypesAiobotocorePackage "acm" "2.11.2"
-      "sha256-vpE1GuvKFPsBf3rTk5V6B4ujFGaHE3wk9yN3j0sM0bo=";
+    buildTypesAiobotocorePackage "acm" "2.13.0"
+      "sha256-3ix+COBwfB2vw9SZdg4VWTll8xnJHklVHGxzETuARIk=";
 
   types-aiobotocore-acm-pca =
-    buildTypesAiobotocorePackage "acm-pca" "2.11.2"
-      "sha256-g9a2ad5hZonlKWGnLQchfT5CAgwqsvseeQBQemCSCQw=";
+    buildTypesAiobotocorePackage "acm-pca" "2.13.0"
+      "sha256-ZnVAvkJfc0T4bjEA2nCXz3HRkqYc25Y/J+1+rs5BP3s=";
 
   types-aiobotocore-alexaforbusiness =
-    buildTypesAiobotocorePackage "alexaforbusiness" "2.12.3"
-      "sha256-eSIy045Ai6VGJTJbCq7sOEskFByShCv1D8S+XyCdP8g=";
+    buildTypesAiobotocorePackage "alexaforbusiness" "2.13.0"
+      "sha256-+w/InoQR2aZ5prieGhgEEp7auBiSSghG5zIIHY5Kyao=";
 
   types-aiobotocore-amp =
-    buildTypesAiobotocorePackage "amp" "2.12.3"
-      "sha256-Q9LX7O74paxJtFgBXpmMHmE5Oymr+KsKc7/a4LkxXsc=";
+    buildTypesAiobotocorePackage "amp" "2.13.0"
+      "sha256-WTFXRsPvia7R7E0E1eUj70j+0gfSz7357jW8rRtjF4M=";
 
   types-aiobotocore-amplify =
-    buildTypesAiobotocorePackage "amplify" "2.12.3"
-      "sha256-/2Ic2KPevRUyQyv2w95ESlGLa1z+j6c7wqO7sJhkglk=";
+    buildTypesAiobotocorePackage "amplify" "2.13.0"
+      "sha256-aTDO+xerXkn8pXEaaP5AMjIxN5WfHjsrwhg+mywYshM=";
 
   types-aiobotocore-amplifybackend =
-    buildTypesAiobotocorePackage "amplifybackend" "2.12.3"
-      "sha256-Z/yUxzo0dmcZbguurdnkplc1xF7Ro7t0Fpp4frqo8fw=";
+    buildTypesAiobotocorePackage "amplifybackend" "2.13.0"
+      "sha256-SjPzrFsewsxhtFZ9I+M8TdogzhIHZ5+EQDezOKjxjzI=";
 
   types-aiobotocore-amplifyuibuilder =
-    buildTypesAiobotocorePackage "amplifyuibuilder" "2.12.3"
-      "sha256-Nziq7FXFXAGfzV36uLVoXJP3N/gA3ydhR1zOL2DAi50=";
+    buildTypesAiobotocorePackage "amplifyuibuilder" "2.13.0"
+      "sha256-X7rXIFPTWoLSH8qeEr82lasrMWmMxIcvf54GqFhrBuI=";
 
   types-aiobotocore-apigateway =
-    buildTypesAiobotocorePackage "apigateway" "2.12.3"
-      "sha256-2k0txnK7EV4REsOEynvy1+twaP5rJVI6yIBO59LSKww=";
+    buildTypesAiobotocorePackage "apigateway" "2.13.0"
+      "sha256-MeO+lzOoycmkMyYRo5oGv38imF3FxE3PqldSByd80IM=";
 
   types-aiobotocore-apigatewaymanagementapi =
-    buildTypesAiobotocorePackage "apigatewaymanagementapi" "2.12.3"
-      "sha256-0GVRVAWl4NrqJScy69zhNt/sFq03gquN2CbEPoja1ug=";
+    buildTypesAiobotocorePackage "apigatewaymanagementapi" "2.13.0"
+      "sha256-nzo28vBn5eB6DTBJd0MKqnWglnVnFvTctK6AvdUUIl4=";
 
   types-aiobotocore-apigatewayv2 =
-    buildTypesAiobotocorePackage "apigatewayv2" "2.12.3"
-      "sha256-+CpKEb30BCdrRAE/3xO3wIBxMXLTyCOJxu4YScDDk6k=";
+    buildTypesAiobotocorePackage "apigatewayv2" "2.13.0"
+      "sha256-09iYkY/l9OlvJ8G6t2RDjidefo7xRcCNvHXwNuct+eM=";
 
   types-aiobotocore-appconfig =
-    buildTypesAiobotocorePackage "appconfig" "2.12.3"
-      "sha256-/90wLlLiPLTKxnAqgqhTbtc1hmSalzwD8yHh7/shrFs=";
+    buildTypesAiobotocorePackage "appconfig" "2.13.0"
+      "sha256-LcRjuQxaVqSaBL2o5zZSwJcFvWpnJppGWrodhxVTylw=";
 
   types-aiobotocore-appconfigdata =
-    buildTypesAiobotocorePackage "appconfigdata" "2.12.3"
-      "sha256-KXNCQswudY3MGCBd37kGXuG6TJz3jzD7Y3LsWLvWPYw=";
+    buildTypesAiobotocorePackage "appconfigdata" "2.13.0"
+      "sha256-GdNvsp/kLjvbk0AXe81RU0OpOy8rNtsYbUCzzsbNqak=";
 
   types-aiobotocore-appfabric =
-    buildTypesAiobotocorePackage "appfabric" "2.12.3"
-      "sha256-1pfpKQ0tmQU3Rm8DGPfDsALecd9XUeeQq/H8Tnp9v4A=";
+    buildTypesAiobotocorePackage "appfabric" "2.13.0"
+      "sha256-Zjrdq4psuqLpx5Dfc+jFz1bJjr6aN/lw4cxdrP1FxYc=";
 
   types-aiobotocore-appflow =
-    buildTypesAiobotocorePackage "appflow" "2.12.3"
-      "sha256-c7pC0InqhtHuDKlEln9lt3tQL6w7Af9vxXuIZnhrdqY=";
+    buildTypesAiobotocorePackage "appflow" "2.13.0"
+      "sha256-3FzQHi9zHeIOw+4VC+4ad+tcgqHkIOnVbwLIDOX29qY=";
 
   types-aiobotocore-appintegrations =
-    buildTypesAiobotocorePackage "appintegrations" "2.12.3"
-      "sha256-lJJXK+Wy6PvAQaCrKDe2GdHEjkuIY+mFmQt62xj21y4=";
+    buildTypesAiobotocorePackage "appintegrations" "2.13.0"
+      "sha256-w8A+hrPeNSIHHcybIYHX3Yv14eAsJeVE5oQaRlqC7cc=";
 
   types-aiobotocore-application-autoscaling =
-    buildTypesAiobotocorePackage "application-autoscaling" "2.12.3"
-      "sha256-n1EMzB6uPQtYz4sSx6uvhk3ONjX9olg+5OkJoX6QUUo=";
+    buildTypesAiobotocorePackage "application-autoscaling" "2.13.0"
+      "sha256-dY3cmGpEBK0IR6A32rv3rQlA0HPRVEQ38uRF1tVHpkE=";
 
   types-aiobotocore-application-insights =
-    buildTypesAiobotocorePackage "application-insights" "2.12.3"
-      "sha256-m9STzjg6PfbKi4mxM28Nh5eDVPPaoSjwLhy6bJ5z8vg=";
+    buildTypesAiobotocorePackage "application-insights" "2.13.0"
+      "sha256-rMjqSqhjIVRwDGWuMh/l42R40HDH/YNO61GJecPS8ns=";
 
   types-aiobotocore-applicationcostprofiler =
-    buildTypesAiobotocorePackage "applicationcostprofiler" "2.12.3"
-      "sha256-fOZzzkp4q11/pM7tFVsUCuxcAbp09icWOq7Ys89u8Q0=";
+    buildTypesAiobotocorePackage "applicationcostprofiler" "2.13.0"
+      "sha256-bwkDaXZzvzs+o1xc7Iw49Q/OkDqgGkERsmc5mg5cDGU=";
 
   types-aiobotocore-appmesh =
-    buildTypesAiobotocorePackage "appmesh" "2.12.3"
-      "sha256-Ovib8qtm+ZCIJ/cQwVB5ksmYpeO8xDoIvkgvnRhL2jY=";
+    buildTypesAiobotocorePackage "appmesh" "2.13.0"
+      "sha256-Q8EH1n2JyREf6C16pa1aaI3G12OtUODcRtffVq4T/kI=";
 
   types-aiobotocore-apprunner =
-    buildTypesAiobotocorePackage "apprunner" "2.12.3"
-      "sha256-hRsWYed0ZwgfgkXRAuVfsmAuaJqTYogLVXtQkDGskMI=";
+    buildTypesAiobotocorePackage "apprunner" "2.13.0"
+      "sha256-jUYqurcU2DLVlWwEglTQciaukFTv27k54AuuROfcySE=";
 
   types-aiobotocore-appstream =
-    buildTypesAiobotocorePackage "appstream" "2.12.3"
-      "sha256-cpXkWYtPnkVDGbkhgy8s5DgvEHYLRe5Huygkfk/W998=";
+    buildTypesAiobotocorePackage "appstream" "2.13.0"
+      "sha256-Zlt7YYpOwMDM3QKu0w+dbdQ+hyEVY7LiZmAj6pwAbpA=";
 
   types-aiobotocore-appsync =
-    buildTypesAiobotocorePackage "appsync" "2.12.3"
-      "sha256-Dem6NGryjCUzQBMCXCNFvop51KhdmIopDUjI2OofEGA=";
+    buildTypesAiobotocorePackage "appsync" "2.13.0"
+      "sha256-8/BY5YO5fpICY/sr65eNlask8ndV2XvywOlx2OrtHyI=";
 
   types-aiobotocore-arc-zonal-shift =
-    buildTypesAiobotocorePackage "arc-zonal-shift" "2.12.3"
-      "sha256-qAMj0+7ywqR/89lUUyRcaqPdVgbARYLdjqMFKOuohZI=";
+    buildTypesAiobotocorePackage "arc-zonal-shift" "2.13.0"
+      "sha256-ekiWpPFp19h60dcWlDh4kDxwKGHMQnGktqf79lyKRl8=";
 
   types-aiobotocore-athena =
-    buildTypesAiobotocorePackage "athena" "2.12.3"
-      "sha256-D1RbyLJdOrMm1dGq6FiRPYEZ1pbMTA14tJEyukqtFXs=";
+    buildTypesAiobotocorePackage "athena" "2.13.0"
+      "sha256-fgYlxpwdOFJJT3M7KL3ZptXAA3Kh5bqI49dlpDTqb/c=";
 
   types-aiobotocore-auditmanager =
-    buildTypesAiobotocorePackage "auditmanager" "2.12.3"
-      "sha256-Oqr3fp5uXPeleOlSFGzqeS7yUcqI+WJlPsLsYTBWfp4=";
+    buildTypesAiobotocorePackage "auditmanager" "2.13.0"
+      "sha256-KSB1DTKg4lqffLOznLbWVkoyJzlzY4vBY/yDs5iU4Zw=";
 
   types-aiobotocore-autoscaling =
-    buildTypesAiobotocorePackage "autoscaling" "2.12.3"
-      "sha256-f32qZpqQ27sujqeA5V7opwQ2LBLuLgcKEvYxgn53Z/A=";
+    buildTypesAiobotocorePackage "autoscaling" "2.13.0"
+      "sha256-TJ7kUw4+I4ULd0C6h1jPxSXcdQdKVCex4kCKDaoh4VA=";
 
   types-aiobotocore-autoscaling-plans =
-    buildTypesAiobotocorePackage "autoscaling-plans" "2.12.3"
-      "sha256-gZItvHv6bKmUJo7N68E43nNipGuVPru1FpirryM613A=";
+    buildTypesAiobotocorePackage "autoscaling-plans" "2.13.0"
+      "sha256-gwrLUcGcLzrHUcr2IC00n5AARmomcplngo4Wen/KLSI=";
 
   types-aiobotocore-backup =
-    buildTypesAiobotocorePackage "backup" "2.12.3"
-      "sha256-n7TwvQPRPpjucEdl8oqhRCyuoUobC94eoaxo3fUcX0k=";
+    buildTypesAiobotocorePackage "backup" "2.13.0"
+      "sha256-zvzQxpvc9BLRhyEFJuGy+eWXBp164g4GNK0h6MlmOus=";
 
   types-aiobotocore-backup-gateway =
-    buildTypesAiobotocorePackage "backup-gateway" "2.12.3"
-      "sha256-y5tONAuzm2ReIX2ZbXkgCdm1mdOwELVTiI/E88y3RRM=";
+    buildTypesAiobotocorePackage "backup-gateway" "2.13.0"
+      "sha256-aEb7RKPyB2bqBY0stzW4pQs7bxo/p2k48/+L5C5YGzg=";
 
   types-aiobotocore-backupstorage =
-    buildTypesAiobotocorePackage "backupstorage" "2.12.3"
-      "sha256-XMNbgsaMB1xCMffocyb8Qm/vVgwUFJ3HR7vjS4WNJjg=";
+    buildTypesAiobotocorePackage "backupstorage" "2.13.0"
+      "sha256-YUKtBdBrdwL2yqDqOovvzDPbcv/sD8JLRnKz3Oh7iSU=";
 
   types-aiobotocore-batch =
-    buildTypesAiobotocorePackage "batch" "2.12.3"
-      "sha256-+agBXcUaXKm0gmrLk5S5CUaivA7UOxQegBFXRwNIRoI=";
+    buildTypesAiobotocorePackage "batch" "2.13.0"
+      "sha256-pbtnM1AriZtRP/HJc41dDlobc3xSsTfTp/zJocuKlg8=";
 
   types-aiobotocore-billingconductor =
-    buildTypesAiobotocorePackage "billingconductor" "2.12.3"
-      "sha256-188KzcjDcJF5uoBKsFNBSxrFThz8HzuF20dUA4+2aqY=";
+    buildTypesAiobotocorePackage "billingconductor" "2.13.0"
+      "sha256-xF44RthHgDDS5ByOypisgNuc+WEMVNrv5HLGzYR9JYE=";
 
   types-aiobotocore-braket =
-    buildTypesAiobotocorePackage "braket" "2.12.3"
-      "sha256-Q17Y1YmrT8DdP/iqeXXFg+Nixx6602jVp7EvwglZXHA=";
+    buildTypesAiobotocorePackage "braket" "2.13.0"
+      "sha256-HrvVOyhXIyyYeWOUGd7/j8Tzl3jTLntxxjvy/Mc7wrE=";
 
   types-aiobotocore-budgets =
-    buildTypesAiobotocorePackage "budgets" "2.12.3"
-      "sha256-R1qcbs1TFd/hqXBbE1byIBHfhX71LXITICQtT1y2E0w=";
+    buildTypesAiobotocorePackage "budgets" "2.13.0"
+      "sha256-xz4ufUY8jlYNfM3s+v1eKTfwd4kNILHyc/R2RnDomJ0=";
 
   types-aiobotocore-ce =
-    buildTypesAiobotocorePackage "ce" "2.12.3"
-      "sha256-zpwmqCaymuhlXNQFmOXRwedgyJXqnbKQkzaJVmL+YcI=";
+    buildTypesAiobotocorePackage "ce" "2.13.0"
+      "sha256-v5BUWy2kn0FCu3Megiz14zRNMz5FA8sU70JAseQ+ta4=";
 
   types-aiobotocore-chime =
-    buildTypesAiobotocorePackage "chime" "2.12.3"
-      "sha256-qoOzWvS2oU27h0G3rDJrD3A7uDTT1nE3r91Jurs1VL8=";
+    buildTypesAiobotocorePackage "chime" "2.13.0"
+      "sha256-77yNiBRXsIHdzq0l3OuDcpgLP+Os8fQ0BHD2mbG6318=";
 
   types-aiobotocore-chime-sdk-identity =
-    buildTypesAiobotocorePackage "chime-sdk-identity" "2.12.3"
-      "sha256-c4lXCVVtzb1nYHpHCkC6GhaKAGh59f10HOF4pt6jDZQ=";
+    buildTypesAiobotocorePackage "chime-sdk-identity" "2.13.0"
+      "sha256-XNCLUW6nzzZjyvHCaaIJ/T4gTM8N+442xCeL8XBNTsI=";
 
   types-aiobotocore-chime-sdk-media-pipelines =
-    buildTypesAiobotocorePackage "chime-sdk-media-pipelines" "2.12.3"
-      "sha256-UiUNm5obofAynGBDUU9dDTnALCgquEeD0CWikJoffcg=";
+    buildTypesAiobotocorePackage "chime-sdk-media-pipelines" "2.13.0"
+      "sha256-qbOkIqemaH4TCqW2/6gYTyfPOlwHyRPLmz5f88HI+b0=";
 
   types-aiobotocore-chime-sdk-meetings =
-    buildTypesAiobotocorePackage "chime-sdk-meetings" "2.12.3"
-      "sha256-PRgs4jqH+H77oq8TJnp8BvxFe+VeGAt2HJqGAswsJ48=";
+    buildTypesAiobotocorePackage "chime-sdk-meetings" "2.13.0"
+      "sha256-TVZRLx8lI0yZN6nOtdq3WhF6OkUFMWGTp25351JTE5E=";
 
   types-aiobotocore-chime-sdk-messaging =
-    buildTypesAiobotocorePackage "chime-sdk-messaging" "2.12.3"
-      "sha256-jhelKCrofsCsoEiQCgkgbmyxPDEzRmrflzsOYEG5VBg=";
+    buildTypesAiobotocorePackage "chime-sdk-messaging" "2.13.0"
+      "sha256-48fjMzUahQ7P4cC0b5JG8czayHNAWuVvgD6v7/LTkjU=";
 
   types-aiobotocore-chime-sdk-voice =
-    buildTypesAiobotocorePackage "chime-sdk-voice" "2.12.3"
-      "sha256-ycz16wpxuooSUJNo2EF578mQ/vuN19wORbRO4KIYAlw=";
+    buildTypesAiobotocorePackage "chime-sdk-voice" "2.13.0"
+      "sha256-lxDHSs3VxWJ4Evu9msY3f9rWb+Fm8yrrsZy8usMu4vE=";
 
   types-aiobotocore-cleanrooms =
-    buildTypesAiobotocorePackage "cleanrooms" "2.12.3"
-      "sha256-chPRscE8/t0zweeG2oI9Ffe9MhUfro3r67WPQMRrVVI=";
+    buildTypesAiobotocorePackage "cleanrooms" "2.13.0"
+      "sha256-AVUVMbvgYxkc8ksqwoFTyjxUbb79Yl4577Scavnj0Cs=";
 
   types-aiobotocore-cloud9 =
-    buildTypesAiobotocorePackage "cloud9" "2.12.3"
-      "sha256-MsppSKc4o0kkEn+YS8fjmRHMMHCk/vp7MzwWSeMbfO8=";
+    buildTypesAiobotocorePackage "cloud9" "2.13.0"
+      "sha256-AYixLXRtXT24h3mFOQ2cWfTLNbXQHmGPnx/VZ7IK4ow=";
 
   types-aiobotocore-cloudcontrol =
-    buildTypesAiobotocorePackage "cloudcontrol" "2.12.3"
-      "sha256-QtvI10XobuCCTdbJZk1JV8rbUnaKp1NhTQA4pOrl/8A=";
+    buildTypesAiobotocorePackage "cloudcontrol" "2.13.0"
+      "sha256-FBRfBadhpoAcLMgAe7hAJbTtjgPRPSlJESuDZPriGv0=";
 
   types-aiobotocore-clouddirectory =
-    buildTypesAiobotocorePackage "clouddirectory" "2.12.3"
-      "sha256-mrLk190wtLVLBY9oLKCBcGgNRRsOF4SAxMnyDvHif2U=";
+    buildTypesAiobotocorePackage "clouddirectory" "2.13.0"
+      "sha256-ELw+jWSGWPeQJNiv18908fodXCKE8/sJ0/wzOgkixuA=";
 
   types-aiobotocore-cloudformation =
-    buildTypesAiobotocorePackage "cloudformation" "2.12.3"
-      "sha256-vjNBwP+SPBXBO9c7W+zOm800kNDfQYHs58ERS82/Hvk=";
+    buildTypesAiobotocorePackage "cloudformation" "2.13.0"
+      "sha256-8s+cGZ339c8Xf/AGFR6Y6Fsdz1pOW3KlYKAuo1e12Ss=";
 
   types-aiobotocore-cloudfront =
-    buildTypesAiobotocorePackage "cloudfront" "2.12.3"
-      "sha256-xD0zbOk1Vjzr3DslNSQqFBIIN4NliV3rVlAmUcgfp7E=";
+    buildTypesAiobotocorePackage "cloudfront" "2.13.0"
+      "sha256-9uGsmz+S8Te3/hOZoIZIqLg0EG3Mz/fM1k8LWSe4rLY=";
 
   types-aiobotocore-cloudhsm =
-    buildTypesAiobotocorePackage "cloudhsm" "2.12.3"
-      "sha256-PXuzI5csFVH9FbW7U0p71U9N3Avmjy0SK4ULdnqyWv4=";
+    buildTypesAiobotocorePackage "cloudhsm" "2.13.0"
+      "sha256-/uqAAVrtejrLdZEFrDhK84nhhr8An4Ha2O6HbcnfPL0=";
 
   types-aiobotocore-cloudhsmv2 =
-    buildTypesAiobotocorePackage "cloudhsmv2" "2.12.3"
-      "sha256-FBC4K4XZglWNdXvaf5vgk0KwlaO4HgQ+CsTxX8RpJSY=";
+    buildTypesAiobotocorePackage "cloudhsmv2" "2.13.0"
+      "sha256-/QZuBKPxLDmZXB15Mlia4nKhVpDniavrHbjsdtg+61g=";
 
   types-aiobotocore-cloudsearch =
-    buildTypesAiobotocorePackage "cloudsearch" "2.12.3"
-      "sha256-0bIEY8/+KkoRXyaxV3XlsvNbhZGgi5Yfkaoe2G8Hx7U=";
+    buildTypesAiobotocorePackage "cloudsearch" "2.13.0"
+      "sha256-TJ8gYpQgqtIJv6COksxKzv0QvlMrnGJF6+vclKxkONM=";
 
   types-aiobotocore-cloudsearchdomain =
-    buildTypesAiobotocorePackage "cloudsearchdomain" "2.12.3"
-      "sha256-sQJloZGuAt3FDiVu0rXB4fs6LQ8Ypwanbhk905JlAWE=";
+    buildTypesAiobotocorePackage "cloudsearchdomain" "2.13.0"
+      "sha256-wzMsnA1GbS8VIc0wCL9hWdsYV/ygCYmorBzEjbQbhTc=";
 
   types-aiobotocore-cloudtrail =
-    buildTypesAiobotocorePackage "cloudtrail" "2.12.3"
-      "sha256-kir3GveVZbvSEjnna0xKETIA/qKLgCZUxQ95WCw25vY=";
+    buildTypesAiobotocorePackage "cloudtrail" "2.13.0"
+      "sha256-2XXac5p2UGkczHqR0h3Nf8Q6pAcfML3b9pMwEXwz2XM=";
 
   types-aiobotocore-cloudtrail-data =
-    buildTypesAiobotocorePackage "cloudtrail-data" "2.12.3"
-      "sha256-o+CM6IzDuQJz/Hcmzs4Z//21ujWzILBVN+TpfW0BnAc=";
+    buildTypesAiobotocorePackage "cloudtrail-data" "2.13.0"
+      "sha256-VcJu3TW7Ha8VBZoJSH3owe6ufCSoIYQqfOfEg1Trx5Y=";
 
   types-aiobotocore-cloudwatch =
-    buildTypesAiobotocorePackage "cloudwatch" "2.12.3"
-      "sha256-s0smSONUSY6hwm81yQXTa0hOe+0FfYHWJ+a2V8vWtnQ=";
+    buildTypesAiobotocorePackage "cloudwatch" "2.13.0"
+      "sha256-BPWVovVZAd/sif+YTkGM/WpOoJp6uwpUMeKmGFd/LGg=";
 
   types-aiobotocore-codeartifact =
-    buildTypesAiobotocorePackage "codeartifact" "2.12.3"
-      "sha256-ueY0F1OWpMsFOOSzsE+P4aJ4r0R5UhoefuNyBL5kFSQ=";
+    buildTypesAiobotocorePackage "codeartifact" "2.13.0"
+      "sha256-kNaKAn54V5xhQv1faxjrhChZ7icBAJJZTqibSdwYTk4=";
 
   types-aiobotocore-codebuild =
-    buildTypesAiobotocorePackage "codebuild" "2.12.3"
-      "sha256-FdTkOmj1ISBgBTcdf0z5QK/LxvsTobvKMqAd4hFK9bc=";
+    buildTypesAiobotocorePackage "codebuild" "2.13.0"
+      "sha256-myGVjxJ/1CvAt913JQXE9/7pGW8anI4F2JrEX7lgaOQ=";
 
   types-aiobotocore-codecatalyst =
-    buildTypesAiobotocorePackage "codecatalyst" "2.12.3"
-      "sha256-J4kvblSIcjSsdtTIcxFEO5Dhno8Q8yrD1t/CYr4wmaQ=";
+    buildTypesAiobotocorePackage "codecatalyst" "2.13.0"
+      "sha256-gCJYgtZcErsh6e/dupRxG2tDdau4wB9nT+HJdRgI6gc=";
 
   types-aiobotocore-codecommit =
-    buildTypesAiobotocorePackage "codecommit" "2.12.3"
-      "sha256-ipolOmnH/0M8Y+GY8qoOPhoDfs1nqMqoMotT2n/BSB8=";
+    buildTypesAiobotocorePackage "codecommit" "2.13.0"
+      "sha256-rcJSBY35FT2aG91rsZqxS3QwYkP9MBfCQLAgR8ZZ60g=";
 
   types-aiobotocore-codedeploy =
-    buildTypesAiobotocorePackage "codedeploy" "2.12.3"
-      "sha256-aEIj+XsEq35mzKliuUICkIoJV3Mx+l7kd+pFP+mX+Us=";
+    buildTypesAiobotocorePackage "codedeploy" "2.13.0"
+      "sha256-pjVsGz/wmxwm3r1a5M9oMqRYACXpzsBJZR62GFQKw9Q=";
 
   types-aiobotocore-codeguru-reviewer =
-    buildTypesAiobotocorePackage "codeguru-reviewer" "2.12.3"
-      "sha256-UxR7jMxmKeqo2dazqRsnGCHmeycL2uwmuOxzN2Ug06I=";
+    buildTypesAiobotocorePackage "codeguru-reviewer" "2.13.0"
+      "sha256-t+ZK1nVpuAEzTzokBQ+HDd9pbRNv/Z+AsYA+3+nHKLE=";
 
   types-aiobotocore-codeguru-security =
-    buildTypesAiobotocorePackage "codeguru-security" "2.12.3"
-      "sha256-Dn8upHxWZMl5QRye+v47vlgi/SqhQi8PUOcVX8no7zQ=";
+    buildTypesAiobotocorePackage "codeguru-security" "2.13.0"
+      "sha256-Or5a/BiJnYMvXDZvCRJ59GsvYr8Um/ziypVohwarFYg=";
 
   types-aiobotocore-codeguruprofiler =
-    buildTypesAiobotocorePackage "codeguruprofiler" "2.12.3"
-      "sha256-s1hhUmQ09fkP7DRGAoajbBrIr8AWioJBXO6vC/kbk9s=";
+    buildTypesAiobotocorePackage "codeguruprofiler" "2.13.0"
+      "sha256-UZHJByboBKeyGYF6SfdFzcuZKAUOyK8Uh92cdQ4Z36g=";
 
   types-aiobotocore-codepipeline =
-    buildTypesAiobotocorePackage "codepipeline" "2.12.3"
-      "sha256-pS8TgS/thI4GJY7TqdSLFjnWltjZraE8QDV02GlL0Zc=";
+    buildTypesAiobotocorePackage "codepipeline" "2.13.0"
+      "sha256-9ewkKGfQeeIPLYsgiq3RI2f8Q+g1/QFaqTvcqpXtPt8=";
 
   types-aiobotocore-codestar =
-    buildTypesAiobotocorePackage "codestar" "2.12.3"
-      "sha256-jciY4abtX0IMbxCGPrOshFQE8jNyqDS67UqUgt0UYe4=";
+    buildTypesAiobotocorePackage "codestar" "2.13.0"
+      "sha256-nvkAGHA2VL7tGHz/VZiWHKRcHDN87eDq8js127VlZMk=";
 
   types-aiobotocore-codestar-connections =
-    buildTypesAiobotocorePackage "codestar-connections" "2.12.3"
-      "sha256-W1/tJKDFRpHB1hsguuAbDCHe+lzh0UAIWlqYVS83MyI=";
+    buildTypesAiobotocorePackage "codestar-connections" "2.13.0"
+      "sha256-huStUWVW5h9PPm4k0IjZoS7mBXYEf1nuc/BbYASjJYo=";
 
   types-aiobotocore-codestar-notifications =
-    buildTypesAiobotocorePackage "codestar-notifications" "2.12.3"
-      "sha256-1r65KMMX+A6Ww3+MgG9kIXH48zI9yxt/FbNXq7ATACs=";
+    buildTypesAiobotocorePackage "codestar-notifications" "2.13.0"
+      "sha256-9Amvc3yj1khFTLpYsqUGPlTRCjbW3J9Y7Htr9gkSEAQ=";
 
   types-aiobotocore-cognito-identity =
-    buildTypesAiobotocorePackage "cognito-identity" "2.12.3"
-      "sha256-Njd/E0EgRqq69EhYhbrmcu71GFvoqG9vI61i4RXIInQ=";
+    buildTypesAiobotocorePackage "cognito-identity" "2.13.0"
+      "sha256-Vr+ZB3RAWOdioDoKn6O8LCQGqM67x+3Yvq6DvYjwbSQ=";
 
   types-aiobotocore-cognito-idp =
-    buildTypesAiobotocorePackage "cognito-idp" "2.12.3"
-      "sha256-eFjfo4grkBO9FGUySGAOclXUjJ+RzaeI0FG7GqZweNc=";
+    buildTypesAiobotocorePackage "cognito-idp" "2.13.0"
+      "sha256-ryZ+wZ3acevXf3gIZV37Lb2t5LGtz6RVrKok6OUYt7Q=";
 
   types-aiobotocore-cognito-sync =
-    buildTypesAiobotocorePackage "cognito-sync" "2.12.3"
-      "sha256-wSOf6kdxIA2oe2a06c9MuIxnvmPb1UZoY+TPKKWNgfA=";
+    buildTypesAiobotocorePackage "cognito-sync" "2.13.0"
+      "sha256-XnAF9Zz+BslG+teKTgWVKqBKxv159gJqRVvP3fF2BU4=";
 
   types-aiobotocore-comprehend =
-    buildTypesAiobotocorePackage "comprehend" "2.12.3"
-      "sha256-TSZn6O5sSqutb+hcA5tJWplkN8jN7q1uVfQyoK6p+sM=";
+    buildTypesAiobotocorePackage "comprehend" "2.13.0"
+      "sha256-NzcktZnXaylZ0OzDWQV9r7G+Yk/QJvqApcBOggk5yg4=";
 
   types-aiobotocore-comprehendmedical =
-    buildTypesAiobotocorePackage "comprehendmedical" "2.12.3"
-      "sha256-foykefLjYtgroFE14HAKJ0qK/vL7U6LGGP3z8P/ZV9E=";
+    buildTypesAiobotocorePackage "comprehendmedical" "2.13.0"
+      "sha256-cn1rch5FwLmFJPM5G8YmKzRuZ5VEyB1vkapOeSg0QEA=";
 
   types-aiobotocore-compute-optimizer =
-    buildTypesAiobotocorePackage "compute-optimizer" "2.12.3"
-      "sha256-HM7wBstqaO6pnvXHGTgiIa1FcdJGImW/2BFl/stRJ/w=";
+    buildTypesAiobotocorePackage "compute-optimizer" "2.13.0"
+      "sha256-e+WsU3fcS7Al+IEibaxaM7lYFFHJNEaW2ULd37wA17o=";
 
   types-aiobotocore-config =
-    buildTypesAiobotocorePackage "config" "2.12.3"
-      "sha256-Ab7L47TU/w5Mk36MJGb3VfHG1wXyHmePDaP37FnQikM=";
+    buildTypesAiobotocorePackage "config" "2.13.0"
+      "sha256-wWrYX1uqUkHegLr3bjyP3TZjBst6+dCMEpK1lXVnMo0=";
 
   types-aiobotocore-connect =
-    buildTypesAiobotocorePackage "connect" "2.12.3"
-      "sha256-R+p+mV/+SMFaWczEwECfoReQ9KBswiYj0jGysFPn/LQ=";
+    buildTypesAiobotocorePackage "connect" "2.13.0"
+      "sha256-OfnncqMXbS7bH7VqKlvMNuj4ixmoli3MlDxrMq1Zmj0=";
 
   types-aiobotocore-connect-contact-lens =
-    buildTypesAiobotocorePackage "connect-contact-lens" "2.12.3"
-      "sha256-KuyJAoend5pAMEEh1EbqUuhWwoFSI5QyJhL/T4fg3vA=";
+    buildTypesAiobotocorePackage "connect-contact-lens" "2.13.0"
+      "sha256-PEOGQ3/cMA2JxN87CyJx4FeuY2l6YP9ZMsVlZQuVnOI=";
 
   types-aiobotocore-connectcampaigns =
-    buildTypesAiobotocorePackage "connectcampaigns" "2.12.3"
-      "sha256-8RDp99dyEgxBQNJbQXMxU6Td6rCKBaOtvk22mGVkMpo=";
+    buildTypesAiobotocorePackage "connectcampaigns" "2.13.0"
+      "sha256-pdEDzu2cBdsdDZ9MBkuXXXouIWLczlnQLLLrJ2ZrdvE=";
 
   types-aiobotocore-connectcases =
-    buildTypesAiobotocorePackage "connectcases" "2.12.3"
-      "sha256-ka9T0Ln54mHiPec74fHYkOBL3RbJJ+hVOSkqh35LBXs=";
+    buildTypesAiobotocorePackage "connectcases" "2.13.0"
+      "sha256-7HQAZPgHTGNmE3cZKsPE3Q1FSD1DOpxhmgx7k2VvRfI=";
 
   types-aiobotocore-connectparticipant =
-    buildTypesAiobotocorePackage "connectparticipant" "2.12.3"
-      "sha256-nAUWrVmTO2PbB4aJERZaZ2NBdE/fH5pyj2UYPxn1BJ0=";
+    buildTypesAiobotocorePackage "connectparticipant" "2.13.0"
+      "sha256-mxTtpPu8ejJhwBUqpIJld9tQgx2+KdZDCWLxgz3KIbI=";
 
   types-aiobotocore-controltower =
-    buildTypesAiobotocorePackage "controltower" "2.12.3"
-      "sha256-tXkoU2hPbB0IYR0QP9yKSLwRknrIcupeeIjHoZD8id4=";
+    buildTypesAiobotocorePackage "controltower" "2.13.0"
+      "sha256-BpX2KPUIEzev3J59SjXr2+87So9AYcPP4NqqqYxg7nM=";
 
   types-aiobotocore-cur =
-    buildTypesAiobotocorePackage "cur" "2.12.3"
-      "sha256-DbLeEVfr1xXtwIT9eqBY6+Enk1AFfF4ChzOeSO2jSc8=";
+    buildTypesAiobotocorePackage "cur" "2.13.0"
+      "sha256-R23tUBiFw3XIwd5dPEKosq+JjOcaan4mefgrnb/tnZ4=";
 
   types-aiobotocore-customer-profiles =
-    buildTypesAiobotocorePackage "customer-profiles" "2.12.3"
-      "sha256-TpmMtpIVdE2SPr+ZaKHUoNqJQFoglcyF4pBIn0jkW9Q=";
+    buildTypesAiobotocorePackage "customer-profiles" "2.13.0"
+      "sha256-g52TkGMLMtLZceDfPEuT/+A/uiVdqnZODxzJUwihin0=";
 
   types-aiobotocore-databrew =
-    buildTypesAiobotocorePackage "databrew" "2.12.3"
-      "sha256-fKUL2ZJgytMhv4rni6lD92M1uh1vnUfFcjh30Tdfofk=";
+    buildTypesAiobotocorePackage "databrew" "2.13.0"
+      "sha256-Gejx2MwkOofstb/goBp0C9qSWcpLW2E5Fgn46VAtK0w=";
 
   types-aiobotocore-dataexchange =
-    buildTypesAiobotocorePackage "dataexchange" "2.12.3"
-      "sha256-x5t5rK4UQ4ltFqSB2dyG6NXrzoJLPBBF8Ovn8Fka8Mo=";
+    buildTypesAiobotocorePackage "dataexchange" "2.13.0"
+      "sha256-fQzxx8jCPu4/TdtNrOQITAEFGzyPccCNK6diQu/4Imo=";
 
   types-aiobotocore-datapipeline =
-    buildTypesAiobotocorePackage "datapipeline" "2.12.3"
-      "sha256-eMMWqVDoEmIJV3P4aA15bXsWEJ1cBpcvFf6elzvKBsM=";
+    buildTypesAiobotocorePackage "datapipeline" "2.13.0"
+      "sha256-GTh5tb9BwtM2zNvAQ47DvwlbgwNhOuL9Vofq3MVJ7ic=";
 
   types-aiobotocore-datasync =
-    buildTypesAiobotocorePackage "datasync" "2.12.3"
-      "sha256-TMD7XAqQivkQJbwBr6B4s629euXQyvxglG+hFhH7C8s=";
+    buildTypesAiobotocorePackage "datasync" "2.13.0"
+      "sha256-wdInWu2P70+17ir7mpBK/qO7+sT5bp/lKIkOQwfk3tk=";
 
   types-aiobotocore-dax =
-    buildTypesAiobotocorePackage "dax" "2.12.3"
-      "sha256-JV8EpsEUOmeGEvSmb2zUboota0wu99TcvBcwkYGFa50=";
+    buildTypesAiobotocorePackage "dax" "2.13.0"
+      "sha256-qFfp+vOsmY43ipbENzgzQXBoNnTQ+jFXyxe9QL7y58c=";
 
   types-aiobotocore-detective =
-    buildTypesAiobotocorePackage "detective" "2.12.3"
-      "sha256-1SRrURvp+hOnYWZsANu8waOJJ4SUBzGPAEFwNFyW4zc=";
+    buildTypesAiobotocorePackage "detective" "2.13.0"
+      "sha256-K9ofKUFMP3qY86xRNgpjZen6R1gOcvVZ0ry9A7geTKQ=";
 
   types-aiobotocore-devicefarm =
-    buildTypesAiobotocorePackage "devicefarm" "2.12.3"
-      "sha256-3XTNHMYWlZUK7o7XQYpnsCq3FHBYuXJ6y2iVM+caKcc=";
+    buildTypesAiobotocorePackage "devicefarm" "2.13.0"
+      "sha256-hfqMkbY/VKpx9Ew0Li9eCiBN17LK/UOZWYpoAZ2IaQo=";
 
   types-aiobotocore-devops-guru =
-    buildTypesAiobotocorePackage "devops-guru" "2.12.3"
-      "sha256-kfeH7r2zaNw3gDH7QqKe2x93kEfzeUMY5aBOJFDz3vE=";
+    buildTypesAiobotocorePackage "devops-guru" "2.13.0"
+      "sha256-nQv5dFtxEwm1PJExUdId8LOXF/stNBIg96wgJJb+nYQ=";
 
   types-aiobotocore-directconnect =
-    buildTypesAiobotocorePackage "directconnect" "2.12.3"
-      "sha256-0fsNThA4QJhTC8JlTJviOv+GwrMvVQxoddvRX4+Nrtk=";
+    buildTypesAiobotocorePackage "directconnect" "2.13.0"
+      "sha256-Gc5vGyASaYsEqYRGX9fbIuOYNVKzdjFYXd20U1Wo8BM=";
 
   types-aiobotocore-discovery =
-    buildTypesAiobotocorePackage "discovery" "2.12.3"
-      "sha256-acjirpyoMe2Mq72IuGHb85q/B0UHhQ2wEJO9Cy+OHmQ=";
+    buildTypesAiobotocorePackage "discovery" "2.13.0"
+      "sha256-Hjq8egh2iPANaq4LehzVS/kMX/Uh0/S7YFFPDuTA+N4=";
 
   types-aiobotocore-dlm =
-    buildTypesAiobotocorePackage "dlm" "2.12.3"
-      "sha256-Z4V00bBobcChsYr6MPJ+pwCV1VJwHVMeks2URMVGzgk=";
+    buildTypesAiobotocorePackage "dlm" "2.13.0"
+      "sha256-fS4Y28YisR0C3MQWQsBwCfKfqaffZCbHu6sZZeao/ds=";
 
   types-aiobotocore-dms =
-    buildTypesAiobotocorePackage "dms" "2.12.3"
-      "sha256-JG8rHk86RHyCEeLPGHERMZ1f+gBAcS+TI+RSfxVWkdI=";
+    buildTypesAiobotocorePackage "dms" "2.13.0"
+      "sha256-BzWDZW/196ajDFw47jOZyTJPcZkAHKgzMYU4NmKeyUg=";
 
   types-aiobotocore-docdb =
-    buildTypesAiobotocorePackage "docdb" "2.12.3"
-      "sha256-t6ybt/wp+YL2qNyI89RzijJT1qPX6cBykQ803F81Q/0=";
+    buildTypesAiobotocorePackage "docdb" "2.13.0"
+      "sha256-oTf+KiNaXrDYdMCZMF+O/tAPmsybWldtT86WhnreN20=";
 
   types-aiobotocore-docdb-elastic =
-    buildTypesAiobotocorePackage "docdb-elastic" "2.12.3"
-      "sha256-MI9e+SYSjbO8PMRFa8VSyAfoupTb8wzhO+DXCcQgu3Q=";
+    buildTypesAiobotocorePackage "docdb-elastic" "2.13.0"
+      "sha256-xK+ixxVGf6Hr/NJGu4k4vlq8V5cpSPViHKsfjusQaKY=";
 
   types-aiobotocore-drs =
-    buildTypesAiobotocorePackage "drs" "2.12.3"
-      "sha256-qsyiQH75/L2HPM/QrQ5nrf9Bh+7xClIQggCWSA/7xho=";
+    buildTypesAiobotocorePackage "drs" "2.13.0"
+      "sha256-v/h5WFjIR51RjwCn02abRfo8fu+tnncldVPd71xJt7s=";
 
   types-aiobotocore-ds =
-    buildTypesAiobotocorePackage "ds" "2.12.3"
-      "sha256-ms93yRBMH/9hVVyN5jGZqP6Su4qdP/oKRHyAMlM5Nis=";
+    buildTypesAiobotocorePackage "ds" "2.13.0"
+      "sha256-Em0eoBCYM0HmkJBgVJKsEyLZDhVu2zW9OKZ5TEQ1xEE=";
 
   types-aiobotocore-dynamodb =
-    buildTypesAiobotocorePackage "dynamodb" "2.12.3"
-      "sha256-sBsjF7ZIldzEN6LyXy9r9zmeKMEX8QXQE7GKYmXrYPg=";
+    buildTypesAiobotocorePackage "dynamodb" "2.13.0"
+      "sha256-AXclEe7W1pqC8JVsOY9afICCUT7lIcwR7De0JMuPbSM=";
 
   types-aiobotocore-dynamodbstreams =
-    buildTypesAiobotocorePackage "dynamodbstreams" "2.12.3"
-      "sha256-0SZQFZf19WRnNA0uTbOoHxfuVZ/Oo4HgttiJcJ+ec3s=";
+    buildTypesAiobotocorePackage "dynamodbstreams" "2.13.0"
+      "sha256-QETi2ToYBF8UQq1+aNW3ZaNEI+haQTQq76yes/U/dpk=";
 
   types-aiobotocore-ebs =
-    buildTypesAiobotocorePackage "ebs" "2.12.3"
-      "sha256-nGyIT/TXqUMRWwA5tIDie1ktVwy0tspw3avgJ//kW5k=";
+    buildTypesAiobotocorePackage "ebs" "2.13.0"
+      "sha256-Oftnt6MpThaa3USfEGZeAvx0pCiY0vQImtNWVwk3ACs=";
 
   types-aiobotocore-ec2 =
-    buildTypesAiobotocorePackage "ec2" "2.12.3"
-      "sha256-8OPqG7wMdu92O0BfGb9zI5Wj+NFA25jWZN0dvzQV0Yo=";
+    buildTypesAiobotocorePackage "ec2" "2.13.0"
+      "sha256-GvUGSs/nQTL3VJpVsFx9mAI9nBx+gnk6yhwRfTpSiSk=";
 
   types-aiobotocore-ec2-instance-connect =
-    buildTypesAiobotocorePackage "ec2-instance-connect" "2.12.3"
-      "sha256-Va2yM0tmcIj4b2wXUzWyhuhv5lhcfCslR0h0C7A5EsY=";
+    buildTypesAiobotocorePackage "ec2-instance-connect" "2.13.0"
+      "sha256-P3kqtbGfUKRCJzZqPjg5DpuUADyo9OQvBzqX+e6eoZw=";
 
   types-aiobotocore-ecr =
-    buildTypesAiobotocorePackage "ecr" "2.12.3"
-      "sha256-FshaLIdFjrTh/bxE9X2to7OMqORJUl/THmE4rhIFbFI=";
+    buildTypesAiobotocorePackage "ecr" "2.13.0"
+      "sha256-Qv3/a0zCZZ7HSH/egZeRBb+8QnWWVIq4FI+UnA/l7Ls=";
 
   types-aiobotocore-ecr-public =
-    buildTypesAiobotocorePackage "ecr-public" "2.12.3"
-      "sha256-GXZ0wSgko3LNMoWFdGAk75Z/ALecaJNJjog9zog+0pY=";
+    buildTypesAiobotocorePackage "ecr-public" "2.13.0"
+      "sha256-yKGswYQKMKkagsVI9Kxae04Xrdrn8dXZSy0BkQ6RzG0=";
 
   types-aiobotocore-ecs =
-    buildTypesAiobotocorePackage "ecs" "2.12.3"
-      "sha256-JumaYfl8+YpgxAnxZF+1IW4Xhw4UuT2wxX979xbGFqc=";
+    buildTypesAiobotocorePackage "ecs" "2.13.0"
+      "sha256-6Bc80WQMAmA8LzLEC/ADFz1kc7oRQLYb7YZH8FOfmVs=";
 
   types-aiobotocore-efs =
-    buildTypesAiobotocorePackage "efs" "2.12.3"
-      "sha256-Ea6AgjHGqrUNP8TF6PFNStVAuRED80agLuzhjdkIUM4=";
+    buildTypesAiobotocorePackage "efs" "2.13.0"
+      "sha256-NIB1DC4qaMXEwrDOHcnRAifKUH0LouzyKlCd7448PZk=";
 
   types-aiobotocore-eks =
-    buildTypesAiobotocorePackage "eks" "2.12.3"
-      "sha256-JceWf2TRg+t55trAJhFAp4YVarc56ZiZYdjB7lhP/cc=";
+    buildTypesAiobotocorePackage "eks" "2.13.0"
+      "sha256-isdFNO1MOrx3O9l4DWjUN/GmfJk2PnprHrAfeaLDkgA=";
 
   types-aiobotocore-elastic-inference =
-    buildTypesAiobotocorePackage "elastic-inference" "2.12.3"
-      "sha256-hhgI8CplzvzbKVPB43udHODE+td4B4Tdk2vls+JNyn4=";
+    buildTypesAiobotocorePackage "elastic-inference" "2.13.0"
+      "sha256-886NH6Lg6mLHdVCRqZ/c+z1DgQ6Yy5DYX7Gd9kf3lMg=";
 
   types-aiobotocore-elasticache =
-    buildTypesAiobotocorePackage "elasticache" "2.12.3"
-      "sha256-DnZqKJCvFFzgjncV6w+Cxi7HTtA7A7t/RGJyQ9icYos=";
+    buildTypesAiobotocorePackage "elasticache" "2.13.0"
+      "sha256-8vm8VQENdxdjhMEg7I9SyQX//LLnKE++SvIRhyCgb7Q=";
 
   types-aiobotocore-elasticbeanstalk =
-    buildTypesAiobotocorePackage "elasticbeanstalk" "2.12.3"
-      "sha256-HC3+b8rFuJshIax6g8oLFMSxxHcbYHP3HDvP2u3UX3U=";
+    buildTypesAiobotocorePackage "elasticbeanstalk" "2.13.0"
+      "sha256-L8/0MxGvGLTfwrNSPyYVtfz46TXJVPn+0pBGPs+SwGo=";
 
   types-aiobotocore-elastictranscoder =
-    buildTypesAiobotocorePackage "elastictranscoder" "2.12.3"
-      "sha256-jXW3LMDaQgXL7QVUJ0OxEUaNfPED5GjXefbWzzf+MGA=";
+    buildTypesAiobotocorePackage "elastictranscoder" "2.13.0"
+      "sha256-UiN9U4WpqgBs8fCcteUTz7bzwFBwJV7mpOMvEZIy7r8=";
 
   types-aiobotocore-elb =
-    buildTypesAiobotocorePackage "elb" "2.12.3"
-      "sha256-L5be76HYM3piIMrbP0QiaLKc6YOdqPMR52fBuNkpLx4=";
+    buildTypesAiobotocorePackage "elb" "2.13.0"
+      "sha256-ok+Ystctf+09dxI2Q+lXeucckPQZSJSyx6fbPsYgOn4=";
 
   types-aiobotocore-elbv2 =
-    buildTypesAiobotocorePackage "elbv2" "2.12.3"
-      "sha256-MCM9zyNpUUt4aAO04aMmPzg+r71VqQzeV4eH+ukBZiw=";
+    buildTypesAiobotocorePackage "elbv2" "2.13.0"
+      "sha256-e8UsYdshyUhdyGxo6ZNhYMw3H5MyL2NjZ6IVDoJN1/0=";
 
   types-aiobotocore-emr =
-    buildTypesAiobotocorePackage "emr" "2.12.3"
-      "sha256-5hCuf3QgmnKhaI8L5BmZfOztgsB9Quy/Zwwu3vutKj0=";
+    buildTypesAiobotocorePackage "emr" "2.13.0"
+      "sha256-k+/+TC9m2v7t9O+etubXMGrD1FJ2Ul2eGYf2MwPYDyc=";
 
   types-aiobotocore-emr-containers =
-    buildTypesAiobotocorePackage "emr-containers" "2.12.3"
-      "sha256-Qq8koQIHkd4ZsuYfAnW7wpCgRzpGaFyKRCN5WQBIqJY=";
+    buildTypesAiobotocorePackage "emr-containers" "2.13.0"
+      "sha256-LFmBCNyHEG5j0oK3waIrVQd1KeE7sd50JdD5J+rjxX4=";
 
   types-aiobotocore-emr-serverless =
-    buildTypesAiobotocorePackage "emr-serverless" "2.12.3"
-      "sha256-b5iOWjrnxCT/enOPOixlD4tdav5DMavg32xlqE2u4DY=";
+    buildTypesAiobotocorePackage "emr-serverless" "2.13.0"
+      "sha256-Y0LOqCJs15OO+n3vmIi0g2DU3DLzus1lvZXQU1FjDVI=";
 
   types-aiobotocore-entityresolution =
-    buildTypesAiobotocorePackage "entityresolution" "2.12.3"
-      "sha256-aIFYYN2GPbDYPjQsbm9D6WPNRAGmFpfkQPhLYwGwZH8=";
+    buildTypesAiobotocorePackage "entityresolution" "2.13.0"
+      "sha256-L1y4kgUBTQx4DfFP9/Yegz0T8I5Qcvv6Ll99NFCuC0Q=";
 
   types-aiobotocore-es =
-    buildTypesAiobotocorePackage "es" "2.12.3"
-      "sha256-xVn8IRXYklNychp8P8z79yVVwlCYzvhmnhSgq9LJv8Y=";
+    buildTypesAiobotocorePackage "es" "2.13.0"
+      "sha256-N1u90rw2M4Sr6CQgB3tXBAmXX/Qu5jG8QHfRn4gmxxU=";
 
   types-aiobotocore-events =
-    buildTypesAiobotocorePackage "events" "2.12.3"
-      "sha256-8n9aFOaZYqQvwnb1Yt509JhZjNisL+dY3PVqkxbwbQA=";
+    buildTypesAiobotocorePackage "events" "2.13.0"
+      "sha256-3E01v7MvD0NC5QXMG7zQ1m66sa9oo6VAzVqMwQaUQ04=";
 
   types-aiobotocore-evidently =
-    buildTypesAiobotocorePackage "evidently" "2.12.3"
-      "sha256-8QZLlmUwuveQf1dXbJZGUJC2XiKA4vrdxG6Ee9F+jPA=";
+    buildTypesAiobotocorePackage "evidently" "2.13.0"
+      "sha256-KDJlHpf+95/H7axc65nY2XNTtxSUox2iAG2SQkRw600=";
 
   types-aiobotocore-finspace =
-    buildTypesAiobotocorePackage "finspace" "2.12.3"
-      "sha256-icXRzSXSn/M50jVun2Evm1QB9m9feFGWazKSvZwCa30=";
+    buildTypesAiobotocorePackage "finspace" "2.13.0"
+      "sha256-or5hhp/ZxYw5DN6LUpAqcR/2bDmRppT1a/9L0+mRcSA=";
 
   types-aiobotocore-finspace-data =
-    buildTypesAiobotocorePackage "finspace-data" "2.12.3"
-      "sha256-dPw16YNaK5CvMNWxdkK0vNVzXcDY3hocWr9ffg2vtGI=";
+    buildTypesAiobotocorePackage "finspace-data" "2.13.0"
+      "sha256-80Y0tP4x+fWeJg+zaS/c3TxYflD8Hto7vNNuDqApRrg=";
 
   types-aiobotocore-firehose =
-    buildTypesAiobotocorePackage "firehose" "2.12.3"
-      "sha256-xcFTvd7d+lrXiJ4SlxiznwFfFRHnxmTZk6vwVurICvc=";
+    buildTypesAiobotocorePackage "firehose" "2.13.0"
+      "sha256-Wtz55HZjmJwAcZhhuGGq4U+LGg+/xfADcXXCtgNVpGQ=";
 
   types-aiobotocore-fis =
-    buildTypesAiobotocorePackage "fis" "2.12.3"
-      "sha256-ivJ/ekU1qvjuOXnLNXUUoGp/xc0DtHnqh4QwqUyIwk8=";
+    buildTypesAiobotocorePackage "fis" "2.13.0"
+      "sha256-8O3BKG+R6CL7CSYWcxPrKfcsJGkSoIbI0DTOXLzS2/Q=";
 
   types-aiobotocore-fms =
-    buildTypesAiobotocorePackage "fms" "2.12.3"
-      "sha256-ddMnkPvFyn2HG88pYapA3TWbOgV6DRLbnSWdd5CauyM=";
+    buildTypesAiobotocorePackage "fms" "2.13.0"
+      "sha256-lUo54nWEsFMcNDC7rpBFc3VhNjafUax1Utc76BWd/bM=";
 
   types-aiobotocore-forecast =
-    buildTypesAiobotocorePackage "forecast" "2.12.3"
-      "sha256-RvaEG2bWIOOOdPOk1A/CW+UTtYMuQ3ZyD0tYfLzOhfc=";
+    buildTypesAiobotocorePackage "forecast" "2.13.0"
+      "sha256-LB2Ms4okxEMMOEwMd8/JykfnzmsOKRsSOF92UAlI+Kw=";
 
   types-aiobotocore-forecastquery =
-    buildTypesAiobotocorePackage "forecastquery" "2.12.3"
-      "sha256-I5vvbmW1BO0ZfKkQEXAhcGb8Q9DMKXDR9AYFcAm6bLM=";
+    buildTypesAiobotocorePackage "forecastquery" "2.13.0"
+      "sha256-atPLPwuCkYDv3vyYQuj9+2VkLx4tL0q5/S8g24oapSY=";
 
   types-aiobotocore-frauddetector =
-    buildTypesAiobotocorePackage "frauddetector" "2.12.3"
-      "sha256-NGi+3jWxWPMlsKGDjdWzcORI6ElDbtVexeVQh71cego=";
+    buildTypesAiobotocorePackage "frauddetector" "2.13.0"
+      "sha256-2XZkPccKpLYIXNKhIRuheJVnAOLr2f8mya/vuefX0d4=";
 
   types-aiobotocore-fsx =
-    buildTypesAiobotocorePackage "fsx" "2.12.3"
-      "sha256-1vl16o9foO6wmumbOvgF3FA8vEOjpCmkcHaktY8pEYY=";
+    buildTypesAiobotocorePackage "fsx" "2.13.0"
+      "sha256-Sxhfg/weC3nSRYdT2BnPiL1zzHMtXV0X0iDar2LQFiY=";
 
   types-aiobotocore-gamelift =
-    buildTypesAiobotocorePackage "gamelift" "2.12.3"
-      "sha256-FARwguNmU+BDV5XyJSL4dqGESEoKmXPjVoPU6ktzRIg=";
+    buildTypesAiobotocorePackage "gamelift" "2.13.0"
+      "sha256-UowdjQc9yaP5Y9XCcynACAUrHJzFZXeeCRWT8NvSLhs=";
 
   types-aiobotocore-gamesparks =
     buildTypesAiobotocorePackage "gamesparks" "2.7.0"
       "sha256-oVbKtuLMPpCQcZYx/cH1Dqjv/t6/uXsveflfFVqfN+8=";
 
   types-aiobotocore-glacier =
-    buildTypesAiobotocorePackage "glacier" "2.12.3"
-      "sha256-Xpob7f0ucl+F+X++5GAdQ4B0IgF4YM7oRFFbm77n4LI=";
+    buildTypesAiobotocorePackage "glacier" "2.13.0"
+      "sha256-lJNVoAMtqdFmzFX9RKmVoW0Ww0EGRWFrB4HpD8EL7i8=";
 
   types-aiobotocore-globalaccelerator =
-    buildTypesAiobotocorePackage "globalaccelerator" "2.12.3"
-      "sha256-aMaPlDZGLvuPDjH5p8bKU0JYRImjheJnpP2oKshtVDY=";
+    buildTypesAiobotocorePackage "globalaccelerator" "2.13.0"
+      "sha256-vYJcni53gQDsns8fPNQTsbSIu2pKlfHOi+Y6ZBsIlrQ=";
 
   types-aiobotocore-glue =
-    buildTypesAiobotocorePackage "glue" "2.12.3"
-      "sha256-d9rFpL4iv1k2zJgE8qQymisVDuOJMEL6ZuQkuV78d0U=";
+    buildTypesAiobotocorePackage "glue" "2.13.0"
+      "sha256-lpk9u8K+XKTHa/U0y42B6WJ/LMH9Sftp958PbwTeJiE=";
 
   types-aiobotocore-grafana =
-    buildTypesAiobotocorePackage "grafana" "2.12.3"
-      "sha256-jmavkKefg/AZMrhU1bhI6Njy78MDNrT+3riIaKIAUlY=";
+    buildTypesAiobotocorePackage "grafana" "2.13.0"
+      "sha256-mnCvxOER/AasPUVwwfLl/jYsb/HgU6n2nJs5vtCgD0Y=";
 
   types-aiobotocore-greengrass =
-    buildTypesAiobotocorePackage "greengrass" "2.12.3"
-      "sha256-zvg/8evrSn14vr9RJXeI4YVOiwva8GwdnCHKkfMygKk=";
+    buildTypesAiobotocorePackage "greengrass" "2.13.0"
+      "sha256-pEBpwnQBOwzbr76xdEggj9Nrp7aPJjRHGV0lpU45GDY=";
 
   types-aiobotocore-greengrassv2 =
-    buildTypesAiobotocorePackage "greengrassv2" "2.12.3"
-      "sha256-3DHm+EPlUQA3LHs1Pbi+B9ipCGg/sN7F5etOzJoXTMY=";
+    buildTypesAiobotocorePackage "greengrassv2" "2.13.0"
+      "sha256-PiioTpD0PMyQStz7C4PP7/jPhCFGPGAJmV6tEroM8TE=";
 
   types-aiobotocore-groundstation =
-    buildTypesAiobotocorePackage "groundstation" "2.12.3"
-      "sha256-0n8ec0H/Nz7Z5Dl7cK/BdxCSIv+wmP/jsS+uL9+ar9Q=";
+    buildTypesAiobotocorePackage "groundstation" "2.13.0"
+      "sha256-doSLPlEx0bEJHGMPDSUXWRmuJwdfiOaDCxkd32kFU/Y=";
 
   types-aiobotocore-guardduty =
-    buildTypesAiobotocorePackage "guardduty" "2.12.3"
-      "sha256-POI2RmnRoUfjx74/MC/Nf9bqxsn3jUnkzHwuY5b7Oy4=";
+    buildTypesAiobotocorePackage "guardduty" "2.13.0"
+      "sha256-HyptnMArByCpLsFRTZWFHIptEaPLujUiyGHDUshW+3w=";
 
   types-aiobotocore-health =
-    buildTypesAiobotocorePackage "health" "2.12.3"
-      "sha256-5sa+9i8KahglRVdJnTqp8zYUHfvGq4GCfcMYhd2qJdU=";
+    buildTypesAiobotocorePackage "health" "2.13.0"
+      "sha256-o+AKZJnVXd/MDaP0Ws2ImRHmudPJkmJIinNtE1HLX90=";
 
   types-aiobotocore-healthlake =
-    buildTypesAiobotocorePackage "healthlake" "2.12.3"
-      "sha256-CQDgDkaJ0hbmsRMxxBXGBOzn2XU5DG4uBFUOl3P4XwY=";
+    buildTypesAiobotocorePackage "healthlake" "2.13.0"
+      "sha256-whj5Wf3XLhhzJz0pH9ewMrrReI+8UiVmnuU9oi+0KRM=";
 
   types-aiobotocore-honeycode =
-    buildTypesAiobotocorePackage "honeycode" "2.12.3"
-      "sha256-NDecqTRmki4/c55vpjW8aCLW9fkKvkDRHAMrf54P9cM=";
+    buildTypesAiobotocorePackage "honeycode" "2.13.0"
+      "sha256-DeeheoQeFEcDH21DSNs2kSR1rjnPLtTgz0yNCFnE+Io=";
 
   types-aiobotocore-iam =
-    buildTypesAiobotocorePackage "iam" "2.12.3"
-      "sha256-0zxf9IpiVF1nxY+Cfk631+vTtjojo8Ky4M69zfU62MQ=";
+    buildTypesAiobotocorePackage "iam" "2.13.0"
+      "sha256-zT6k0pAwR3ActVWyUsE5blqv78xHuQGQlJKvjqI06Os=";
 
   types-aiobotocore-identitystore =
-    buildTypesAiobotocorePackage "identitystore" "2.12.3"
-      "sha256-GZnXAGM2WMamZkyHmxb/+uRfUtLmmXCkN1yRgUmO1pE=";
+    buildTypesAiobotocorePackage "identitystore" "2.13.0"
+      "sha256-rmrC8PXW1KyrZo0T2pA9bsHCGSR3DIPYP827jCPR7Ao=";
 
   types-aiobotocore-imagebuilder =
-    buildTypesAiobotocorePackage "imagebuilder" "2.12.3"
-      "sha256-ValWGfzRPnhA2HVwF/bHfCEv/NCOYoOjVPplRomIXgw=";
+    buildTypesAiobotocorePackage "imagebuilder" "2.13.0"
+      "sha256-rP9XtYKaG8sCSeF0HTGCLofTIbg0iyCjozqUAwQvOFk=";
 
   types-aiobotocore-importexport =
-    buildTypesAiobotocorePackage "importexport" "2.12.3"
-      "sha256-o609SDjx1+dzBTmNSGuoh8H6XLfZLJgaqUJVEmG3gzU=";
+    buildTypesAiobotocorePackage "importexport" "2.13.0"
+      "sha256-iZHJ4C/Ai7cSnWQsUsb9D1eMr8+17XQr+okJkb6KquM=";
 
   types-aiobotocore-inspector =
-    buildTypesAiobotocorePackage "inspector" "2.12.3"
-      "sha256-ymj+ugkTQkGEloCtdnFsmwXtLmMnpgxsgINsZjCnPCI=";
+    buildTypesAiobotocorePackage "inspector" "2.13.0"
+      "sha256-uVr5nzXn9/OlJgcGckH6Qi5eOWULyhwBbDehHxMHk60=";
 
   types-aiobotocore-inspector2 =
-    buildTypesAiobotocorePackage "inspector2" "2.12.3"
-      "sha256-+kC/viBAYxGSP80pStaSD6bIXN5pdwu96NA6lcfIWzM=";
+    buildTypesAiobotocorePackage "inspector2" "2.13.0"
+      "sha256-BENRjvjKgd9fy4zt1LXqcDhUhK/OJG5FyIaSRl+NnPA=";
 
   types-aiobotocore-internetmonitor =
-    buildTypesAiobotocorePackage "internetmonitor" "2.12.3"
-      "sha256-iCVPf+7LtTfRvrX7vKt2DNkfw1xdTCpzlqvA2w4LsjQ=";
+    buildTypesAiobotocorePackage "internetmonitor" "2.13.0"
+      "sha256-bhC316GPUqjSpmrsyZAZgCHcPGubEBXqXsueTnXaAOg=";
 
   types-aiobotocore-iot =
-    buildTypesAiobotocorePackage "iot" "2.12.3"
-      "sha256-YJSr/C6V7yASlg2Ifif8lAYsy9zOo9ficn0DWmWIZB8=";
+    buildTypesAiobotocorePackage "iot" "2.13.0"
+      "sha256-xXYong7il5S1cjAJUJe1d4gSkn+6c/eBe7FIjEmNYl4=";
 
   types-aiobotocore-iot-data =
-    buildTypesAiobotocorePackage "iot-data" "2.12.3"
-      "sha256-7LJRrYAcyil9Trw8gCu7lOkrdcSW5yQeZOrQ1bPL+qE=";
+    buildTypesAiobotocorePackage "iot-data" "2.13.0"
+      "sha256-bQah1T+GlZryFRE8Z7vpNUEVJmXjCX05GWYR5Y8KANk=";
 
   types-aiobotocore-iot-jobs-data =
-    buildTypesAiobotocorePackage "iot-jobs-data" "2.12.3"
-      "sha256-An0qRP6UxBOHwkQ7e/a0ZN9c0drgC8uYz1xXslEwStc=";
+    buildTypesAiobotocorePackage "iot-jobs-data" "2.13.0"
+      "sha256-0lWhcUjZ4R8etiKugTuELzpbF/7+7rfbAsXAmB8OXRM=";
 
   types-aiobotocore-iot-roborunner =
     buildTypesAiobotocorePackage "iot-roborunner" "2.12.2"
       "sha256-O/nGvYfUibI4EvHgONtkYHFv/dZSpHCehXjietPiMJo=";
 
   types-aiobotocore-iot1click-devices =
-    buildTypesAiobotocorePackage "iot1click-devices" "2.12.3"
-      "sha256-5PQV2KlzOpRWkeJhsPFwCZ8iZQp+flTH1UUGn3q3/7k=";
+    buildTypesAiobotocorePackage "iot1click-devices" "2.13.0"
+      "sha256-Ge098mg+jeOxwpBr3BMELnRD0cqZqmRSArHh/m2OsBE=";
 
   types-aiobotocore-iot1click-projects =
-    buildTypesAiobotocorePackage "iot1click-projects" "2.12.3"
-      "sha256-FuC8skyo0yoqd+He5cOKlUUnPiGk9I8vUen0uj5Eqcc=";
+    buildTypesAiobotocorePackage "iot1click-projects" "2.13.0"
+      "sha256-hf5aYWELJQniMsldhHv25/2Rqk3SnSGbJ0OBsdDO/us=";
 
   types-aiobotocore-iotanalytics =
-    buildTypesAiobotocorePackage "iotanalytics" "2.12.3"
-      "sha256-EPHXokF9XO/0EAOnOyhp2MUfs7UHozFKYbWqPeDFweQ=";
+    buildTypesAiobotocorePackage "iotanalytics" "2.13.0"
+      "sha256-T784XUsVCpZKSfl8JtrCA8zYieE7WRFUS0GjGkiMb7M=";
 
   types-aiobotocore-iotdeviceadvisor =
-    buildTypesAiobotocorePackage "iotdeviceadvisor" "2.12.3"
-      "sha256-iZVZJZFCrwmKpYglS/UT4Qew1GdttI7rwn+XduS2DPc=";
+    buildTypesAiobotocorePackage "iotdeviceadvisor" "2.13.0"
+      "sha256-vY8bUjfix0ooShceyA56KkI3VvTQhWQdO2KAFOQK/fs=";
 
   types-aiobotocore-iotevents =
-    buildTypesAiobotocorePackage "iotevents" "2.12.3"
-      "sha256-bxW0Wtqua7ny+kv8bSdyss/MFxLWDMqCxbojBsjtNY4=";
+    buildTypesAiobotocorePackage "iotevents" "2.13.0"
+      "sha256-x7GlfEgtPacEjliok6xIqJ0wYC/AZqYDHPiGrXRmpGg=";
 
   types-aiobotocore-iotevents-data =
-    buildTypesAiobotocorePackage "iotevents-data" "2.12.3"
-      "sha256-jOVKCfHNJmfGHnqG/y75qz6hsYUWrD911KCV3amWldc=";
+    buildTypesAiobotocorePackage "iotevents-data" "2.13.0"
+      "sha256-eCf9pN4Xra2TTjes8hDFegbkmM/pz1onMS5ntJKE1E0=";
 
   types-aiobotocore-iotfleethub =
-    buildTypesAiobotocorePackage "iotfleethub" "2.12.3"
-      "sha256-gp2YjRDGXRFBrHnzs5m/SsugG7U6hh3NvYG8ym5/2FU=";
+    buildTypesAiobotocorePackage "iotfleethub" "2.13.0"
+      "sha256-VMIE+miyZDZRG9BYy/q6Y+FQngScblfnL3UKQVY0VhA=";
 
   types-aiobotocore-iotfleetwise =
-    buildTypesAiobotocorePackage "iotfleetwise" "2.12.3"
-      "sha256-YHZZUZmmmE6T8Z+Vvh4SZEf5xrzzObLKP6EuGY+aIaI=";
+    buildTypesAiobotocorePackage "iotfleetwise" "2.13.0"
+      "sha256-rVC6BOWbPKiivjAyqGlG1sYPwAPMDfy0puzrk+2ow+U=";
 
   types-aiobotocore-iotsecuretunneling =
-    buildTypesAiobotocorePackage "iotsecuretunneling" "2.12.3"
-      "sha256-Bx43NAwPTlPqZrV3SN39amD0on7RJvvXC27QJ9kShWY=";
+    buildTypesAiobotocorePackage "iotsecuretunneling" "2.13.0"
+      "sha256-XtNzPH9a+FZg6RgXuJFkkHj4utt84u/PYWpHz3fQOC8=";
 
   types-aiobotocore-iotsitewise =
-    buildTypesAiobotocorePackage "iotsitewise" "2.12.3"
-      "sha256-fXmG7vvCgM24P+WwPgVlh+uVJdzT3r5dgEf5eU2763w=";
+    buildTypesAiobotocorePackage "iotsitewise" "2.13.0"
+      "sha256-52y4FXYR7Hk3pjNe8Er9j94tGuLnPKx2sf+YJtyg8Sg=";
 
   types-aiobotocore-iotthingsgraph =
-    buildTypesAiobotocorePackage "iotthingsgraph" "2.12.3"
-      "sha256-1rdcWFEfM9paoGxm3NhS/A5tDMCgCoMkGeXUG49i238=";
+    buildTypesAiobotocorePackage "iotthingsgraph" "2.13.0"
+      "sha256-GZBsVNbdQ8J936kW8UfVfOwIw9ftEttSl942pcDxr4A=";
 
   types-aiobotocore-iottwinmaker =
-    buildTypesAiobotocorePackage "iottwinmaker" "2.12.3"
-      "sha256-AEp5cF3vVj5t/M7J4hSuk7KsUIKN9sSpSk2XfH4w8Hk=";
+    buildTypesAiobotocorePackage "iottwinmaker" "2.13.0"
+      "sha256-hE+juDpyRZ0zPsSGMGt037o7NLN0z7Co7m+HCKSh5Fc=";
 
   types-aiobotocore-iotwireless =
-    buildTypesAiobotocorePackage "iotwireless" "2.12.3"
-      "sha256-LfmlJGalNaiZB1UAqG1XwDPNBKxz0hO2S9EiTakmtmA=";
+    buildTypesAiobotocorePackage "iotwireless" "2.13.0"
+      "sha256-O8F7NN8hkQiDJNy8Y3Cx1w1WwUGH0y9YtGIz8Wcj1/E=";
 
   types-aiobotocore-ivs =
-    buildTypesAiobotocorePackage "ivs" "2.12.3"
-      "sha256-vxFbBTyf0psVvc0N8kAEJrX/JumRoWD5GKQ2JmkJkPg=";
+    buildTypesAiobotocorePackage "ivs" "2.13.0"
+      "sha256-dZHvgOfBn61k6VMcFGBmBZ4BrR1TUgTPx55Rvw3+isc=";
 
   types-aiobotocore-ivs-realtime =
-    buildTypesAiobotocorePackage "ivs-realtime" "2.12.3"
-      "sha256-78x0QtBZsBztNaAqiUCtosIf+Lm3DCJqVerRBOLiEXs=";
+    buildTypesAiobotocorePackage "ivs-realtime" "2.13.0"
+      "sha256-LF9SEkOMDBq2yvlQHPBx4pLByEzRtgOZS8x1btm0snc=";
 
   types-aiobotocore-ivschat =
-    buildTypesAiobotocorePackage "ivschat" "2.12.3"
-      "sha256-/yakndOCbZlLhARZ6jd6eG0YLRZjg8Igw4Fc15obqRo=";
+    buildTypesAiobotocorePackage "ivschat" "2.13.0"
+      "sha256-Bv5lSIWGbFJxpMK//ZUm8ewaf0d7XuAgZcYA1EghVtA=";
 
   types-aiobotocore-kafka =
-    buildTypesAiobotocorePackage "kafka" "2.12.3"
-      "sha256-oayTFZfzOURWDfzexxrHxV/JdJDXAmk9LupPWMFZpkc=";
+    buildTypesAiobotocorePackage "kafka" "2.13.0"
+      "sha256-5hMlJfYR8qYQg9S12xwKHxIt7Grv3F0CwUE/p0WP2ZU=";
 
   types-aiobotocore-kafkaconnect =
-    buildTypesAiobotocorePackage "kafkaconnect" "2.12.3"
-      "sha256-pA6EEsfS9W1uK7s92CGqZtk3o+GUI92T/lFOqCQotTI=";
+    buildTypesAiobotocorePackage "kafkaconnect" "2.13.0"
+      "sha256-ecnz27IztSMrBt4xc4DsZbNpliciSswNIOHT3t6tTXg=";
 
   types-aiobotocore-kendra =
-    buildTypesAiobotocorePackage "kendra" "2.12.3"
-      "sha256-RPSoV974cSYfPL1cFnpZjcMQeSENxThtG44zWUemN9E=";
+    buildTypesAiobotocorePackage "kendra" "2.13.0"
+      "sha256-nhKOiHgIC59fwH1HTLusuTgiaOJ5KidRm9DHuGQmQnE=";
 
   types-aiobotocore-kendra-ranking =
-    buildTypesAiobotocorePackage "kendra-ranking" "2.12.3"
-      "sha256-A5o/guqeDNvH27DCB5SAJuOmgSMYSrJjru5qn3sOL6k=";
+    buildTypesAiobotocorePackage "kendra-ranking" "2.13.0"
+      "sha256-FBQDcjY3tx1M3012LzP2FO/1z9WQ9xihburpWv9Tq78=";
 
   types-aiobotocore-keyspaces =
-    buildTypesAiobotocorePackage "keyspaces" "2.12.3"
-      "sha256-1gACiFQAo1iCzITBQIcRNId8S2t3L7ga8MiC1oKQX58=";
+    buildTypesAiobotocorePackage "keyspaces" "2.13.0"
+      "sha256-rEOkdFru0ZbjPWLvC9TlAd46r9bviqEmpKPvL0MqhjI=";
 
   types-aiobotocore-kinesis =
-    buildTypesAiobotocorePackage "kinesis" "2.12.3"
-      "sha256-jcFBnfzUcCyWt5qOgiCx/2Lbf2QEGW4G7JjTNclGy/k=";
+    buildTypesAiobotocorePackage "kinesis" "2.13.0"
+      "sha256-0f/Nl7BqZ+AFAJrckS1DtZGl3QNWCIsJAusVgkXuTvQ=";
 
   types-aiobotocore-kinesis-video-archived-media =
-    buildTypesAiobotocorePackage "kinesis-video-archived-media" "2.12.3"
-      "sha256-DkvRjmHxmyj3TWQK5FxsgpU8vm+I7d7dibkI6rwGg8c=";
+    buildTypesAiobotocorePackage "kinesis-video-archived-media" "2.13.0"
+      "sha256-nl6GBcrpUaBWghji5309vsHGxWuRHe8R1Z0w1OSpf2k=";
 
   types-aiobotocore-kinesis-video-media =
-    buildTypesAiobotocorePackage "kinesis-video-media" "2.12.3"
-      "sha256-cDko/AYbz8KLxheVLhGhYr9eUOxB6R3JCoNCXyOBL48=";
+    buildTypesAiobotocorePackage "kinesis-video-media" "2.13.0"
+      "sha256-EX0Wq0B/2gOhX6ekSDpWUsC57wrVPBXakf7zjLql7i0=";
 
   types-aiobotocore-kinesis-video-signaling =
-    buildTypesAiobotocorePackage "kinesis-video-signaling" "2.12.3"
-      "sha256-f/8FAIf6DFf0ly5qRhG+kFHYzs4whggUsxhphA2bPuM=";
+    buildTypesAiobotocorePackage "kinesis-video-signaling" "2.13.0"
+      "sha256-2YYJskPHKJJGwvfWKT3CA2XZFcJ//dSroaZj8Z3Zz/M=";
 
   types-aiobotocore-kinesis-video-webrtc-storage =
-    buildTypesAiobotocorePackage "kinesis-video-webrtc-storage" "2.12.3"
-      "sha256-dIvQeCqeL+oBy0N+uTcBTbkkNfGfrgKwGYrI8XaLeYQ=";
+    buildTypesAiobotocorePackage "kinesis-video-webrtc-storage" "2.13.0"
+      "sha256-TPueQ1LwzxJVM11CfA5Uy+s1wgZ4cFtFg2h9lwX/Bqk=";
 
   types-aiobotocore-kinesisanalytics =
-    buildTypesAiobotocorePackage "kinesisanalytics" "2.12.3"
-      "sha256-nEc26wCazquuuiOVbWWpa7ab4ZQE0TElsWrbIuL2VHE=";
+    buildTypesAiobotocorePackage "kinesisanalytics" "2.13.0"
+      "sha256-MrjUkjhU9spam5WRWNMNrEaUV+VDj5bLb4jEOpxSnic=";
 
   types-aiobotocore-kinesisanalyticsv2 =
-    buildTypesAiobotocorePackage "kinesisanalyticsv2" "2.12.3"
-      "sha256-MX/moxuQphb6YaO3BeuMhDyvuYG8WEevYizg0yQq4Pw=";
+    buildTypesAiobotocorePackage "kinesisanalyticsv2" "2.13.0"
+      "sha256-ApnELs3BVh05bLJvzFfLgbn1kY2IjItbjZh8xw90UPo=";
 
   types-aiobotocore-kinesisvideo =
-    buildTypesAiobotocorePackage "kinesisvideo" "2.12.3"
-      "sha256-G3kO0yM3jbw1RdRo5JX7Ju2vzsR+7GXeLjyoPGFIEQg=";
+    buildTypesAiobotocorePackage "kinesisvideo" "2.13.0"
+      "sha256-+xPIVVF1QdCbs/yaWKlD5WHc400MwV01BJAKlau85I4=";
 
   types-aiobotocore-kms =
-    buildTypesAiobotocorePackage "kms" "2.12.3"
-      "sha256-6JfxOXCsDjP0QqYqXBiPXp3R31mBL6Z4xUwXMFHGgdI=";
+    buildTypesAiobotocorePackage "kms" "2.13.0"
+      "sha256-Vc7G2TRaxerOVf+wG6T5gHqR0atMP0SdehJe+55GZZc=";
 
   types-aiobotocore-lakeformation =
-    buildTypesAiobotocorePackage "lakeformation" "2.12.3"
-      "sha256-KuXvIcrlvCA7ATv6az1Oeoe0CCysnCUb/B/D9+pd/Q0=";
+    buildTypesAiobotocorePackage "lakeformation" "2.13.0"
+      "sha256-os4//4oH0mvWDeA8TyuZc3WL4Zqs2blepwLx+3W/RKw=";
 
   types-aiobotocore-lambda =
-    buildTypesAiobotocorePackage "lambda" "2.12.3"
-      "sha256-4RSFi2CyKz/0Y3d9xIYM6CpOONTLP1X8rJqzJolVdck=";
+    buildTypesAiobotocorePackage "lambda" "2.13.0"
+      "sha256-M1j3PX0xDOwp6N2kPR2B9q0hzKZ8SlGkNlRNQHl4F3o=";
 
   types-aiobotocore-lex-models =
-    buildTypesAiobotocorePackage "lex-models" "2.12.3"
-      "sha256-EoASjvQ8uJy15SVq5vNek+vMqNgU40/Rj1i1NwWDHuk=";
+    buildTypesAiobotocorePackage "lex-models" "2.13.0"
+      "sha256-i/nA25zWKIpg25TJJqKnFaudaSUjbPc7PHXtixu3rIE=";
 
   types-aiobotocore-lex-runtime =
-    buildTypesAiobotocorePackage "lex-runtime" "2.12.3"
-      "sha256-JbL9RhcnbNll+68jzuiF6coqdMYeYLYkuPJz85Q4gAg=";
+    buildTypesAiobotocorePackage "lex-runtime" "2.13.0"
+      "sha256-0R7Z1p9CVjtWKlhs1n4jDMDheOQXn5jrbxIGK6Hz3+A=";
 
   types-aiobotocore-lexv2-models =
-    buildTypesAiobotocorePackage "lexv2-models" "2.12.3"
-      "sha256-cTndR1V9msDL+8NIqp6HRvSmP/rhZlwVuZwLKBoitZA=";
+    buildTypesAiobotocorePackage "lexv2-models" "2.13.0"
+      "sha256-aLJfuoQrT10rDwqZXGdE8d5WQ5GnSwAhO3ttX4ZhdG8=";
 
   types-aiobotocore-lexv2-runtime =
-    buildTypesAiobotocorePackage "lexv2-runtime" "2.12.3"
-      "sha256-V/PGGRZDXhilxUE5YslkyiJYWulQkEsxQZbaAbPP/cU=";
+    buildTypesAiobotocorePackage "lexv2-runtime" "2.13.0"
+      "sha256-7LXp7pXpgCx083rzIeytSzoRKsI9Lry/k356/mwlWQM=";
 
   types-aiobotocore-license-manager =
-    buildTypesAiobotocorePackage "license-manager" "2.12.3"
-      "sha256-zA+rcTsvrOFB1/st0q9vK4L0YZTGVlk0XNl5gxcxSK0=";
+    buildTypesAiobotocorePackage "license-manager" "2.13.0"
+      "sha256-ayM9VLN9jAmJeMXWmJwa5knSIK/goX+IFP5IJyaYYN0=";
 
   types-aiobotocore-license-manager-linux-subscriptions =
-    buildTypesAiobotocorePackage "license-manager-linux-subscriptions" "2.12.3"
-      "sha256-vGzT4Q90+FeF8tELo3zWp90MqrbNJ95kzovjFbnz9LY=";
+    buildTypesAiobotocorePackage "license-manager-linux-subscriptions" "2.13.0"
+      "sha256-gbVx6et48YFYzqqhhHg1OhhbYBCTUOv7me9mxcFEx/w=";
 
   types-aiobotocore-license-manager-user-subscriptions =
-    buildTypesAiobotocorePackage "license-manager-user-subscriptions" "2.12.3"
-      "sha256-qI9Pw+lK7JGSKEl+wxZz1CmG7UG1AsDmxkHuYY/sQxQ=";
+    buildTypesAiobotocorePackage "license-manager-user-subscriptions" "2.13.0"
+      "sha256-Nm50NIyIhRJ7zy/riVNYZhGW4iJXV1BZdHukpFFQi+c=";
 
   types-aiobotocore-lightsail =
-    buildTypesAiobotocorePackage "lightsail" "2.12.3"
-      "sha256-hl58xChUqHdkl0KtZjMetrR+am1gHIPZtSfRXSQg6ac=";
+    buildTypesAiobotocorePackage "lightsail" "2.13.0"
+      "sha256-POUIiTtEa85VA6s7FtwP8TSNdo1MNe+6IWIDDIKpFMs=";
 
   types-aiobotocore-location =
-    buildTypesAiobotocorePackage "location" "2.12.3"
-      "sha256-nTBbzRhNWl5B1tGlaQVd0eKbnBvy/8fmDZ4kY9de4cU=";
+    buildTypesAiobotocorePackage "location" "2.13.0"
+      "sha256-nVxbggkxC82171TDifKU7NRcohmiWdGKBbAY6cNLZkM=";
 
   types-aiobotocore-logs =
-    buildTypesAiobotocorePackage "logs" "2.12.3"
-      "sha256-mmmR4vLdjfNys1uXGMbvF84/CrI6GKNH/tRkneHI9PQ=";
+    buildTypesAiobotocorePackage "logs" "2.13.0"
+      "sha256-rwImBaQiRyo/FMibogZwe+cuJVNkKCK05R7O6RFt1hc=";
 
   types-aiobotocore-lookoutequipment =
-    buildTypesAiobotocorePackage "lookoutequipment" "2.12.3"
-      "sha256-rSoOIJywU+Vzh73LQac0ugfiu2r25SHdsgIjHmmHZnw=";
+    buildTypesAiobotocorePackage "lookoutequipment" "2.13.0"
+      "sha256-eOB6McK2F4B2c1vQmc26OsU/N8HAVtm3ZUBSZzkRyUA=";
 
   types-aiobotocore-lookoutmetrics =
-    buildTypesAiobotocorePackage "lookoutmetrics" "2.12.3"
-      "sha256-hrVID1/a/McspXe+Tl6VPTApYJpjERa1Hb4QmTtWpBM=";
+    buildTypesAiobotocorePackage "lookoutmetrics" "2.13.0"
+      "sha256-mTfRSAwyOYBk3fcPgcwilZ0o7sEB1U5msLt9AOzUNnY=";
 
   types-aiobotocore-lookoutvision =
-    buildTypesAiobotocorePackage "lookoutvision" "2.12.3"
-      "sha256-KYxkVAaRxZxCHz4FBFNaZUrSLbtumaU1Qh3w467nPjo=";
+    buildTypesAiobotocorePackage "lookoutvision" "2.13.0"
+      "sha256-JyMI0ldwLZcY20vTs5lIda2EjRhnzyJVw3/EQKkxPQs=";
 
   types-aiobotocore-m2 =
-    buildTypesAiobotocorePackage "m2" "2.12.3"
-      "sha256-1f6YJ6a9OqmJ1szPMao5l3zAs97grpDr4SvldDNohV4=";
+    buildTypesAiobotocorePackage "m2" "2.13.0"
+      "sha256-CAqHIVnso4h6Vw7nK3Oy1BbMxywPmHt6oaJcpCQk6GM=";
 
   types-aiobotocore-machinelearning =
-    buildTypesAiobotocorePackage "machinelearning" "2.12.3"
-      "sha256-0b6bNQvxR+OJd/hyM47qAM5/B0ALYEkWJqO5OosKOtw=";
+    buildTypesAiobotocorePackage "machinelearning" "2.13.0"
+      "sha256-MIqF9A9KPW2yzWHeEhX8usTtT92GuAEKAYf9FhjxW90=";
 
   types-aiobotocore-macie =
     buildTypesAiobotocorePackage "macie" "2.7.0"
       "sha256-hJJtGsK2b56nKX1ZhiarC+ffyjHYWRiC8II4oyDZWWw=";
 
   types-aiobotocore-macie2 =
-    buildTypesAiobotocorePackage "macie2" "2.12.3"
-      "sha256-sd30ATrunzj5kqZDJLGd7sGdxtpBcR0Kl1qG2QhqeFk=";
+    buildTypesAiobotocorePackage "macie2" "2.13.0"
+      "sha256-83zr/u4Q6KhFm3Id0nY6yVAtBZhD45jWXaqRdyPftNU=";
 
   types-aiobotocore-managedblockchain =
-    buildTypesAiobotocorePackage "managedblockchain" "2.12.3"
-      "sha256-8uZkHItyZfvSv8rr2PKYLHVDHxeL/f/Z8mcHYXBsiXw=";
+    buildTypesAiobotocorePackage "managedblockchain" "2.13.0"
+      "sha256-ZaQSNpRsGarE8NCcoafeRokn2HfdKApexxLwcz7rUVM=";
 
   types-aiobotocore-managedblockchain-query =
-    buildTypesAiobotocorePackage "managedblockchain-query" "2.12.3"
-      "sha256-n3hInygsT+Zkl4TTjZ7gtkvT7npEvvl6HoNpRW0kI2M=";
+    buildTypesAiobotocorePackage "managedblockchain-query" "2.13.0"
+      "sha256-kjxNEPAKBHsCKnJI+WgdVhEmrVURHfyUUwHOLSNazn0=";
 
   types-aiobotocore-marketplace-catalog =
-    buildTypesAiobotocorePackage "marketplace-catalog" "2.12.3"
-      "sha256-GkzlSr5zRispSfeIe2pmOMlLhxoBctn9EM1VXTnMSkg=";
+    buildTypesAiobotocorePackage "marketplace-catalog" "2.13.0"
+      "sha256-LG6cM9E5KgkMR2On3Z45UN3VgfcBtIPtBpt8OmTbhP8=";
 
   types-aiobotocore-marketplace-entitlement =
-    buildTypesAiobotocorePackage "marketplace-entitlement" "2.12.3"
-      "sha256-61Sgh1moietvRwtc2SrJhWZ5y1ZobI+CiIlL+zkbbgE=";
+    buildTypesAiobotocorePackage "marketplace-entitlement" "2.13.0"
+      "sha256-jPzcbqjrCS22zhDmrOK9KOvYv7y15iY88FSad2t9Dyc=";
 
   types-aiobotocore-marketplacecommerceanalytics =
-    buildTypesAiobotocorePackage "marketplacecommerceanalytics" "2.12.3"
-      "sha256-//+fB39zKqT9n+KIa9fMHoj4Oq5S5bq1vwsnEorPS2g=";
+    buildTypesAiobotocorePackage "marketplacecommerceanalytics" "2.13.0"
+      "sha256-Mtpin8e/YS95wDCII4w4lD9KiL4jXyYbeEDEGaLb38U=";
 
   types-aiobotocore-mediaconnect =
-    buildTypesAiobotocorePackage "mediaconnect" "2.12.3"
-      "sha256-DoIwvqLsCmcUR4UaEvTShKf6sYs3iQDyWkuDxz//cB8=";
+    buildTypesAiobotocorePackage "mediaconnect" "2.13.0"
+      "sha256-/fpb6bsagRYCil2SOWviJjdqNEMJjD7WMemzRf7C63o=";
 
   types-aiobotocore-mediaconvert =
-    buildTypesAiobotocorePackage "mediaconvert" "2.12.3"
-      "sha256-ESAo1QuHtL7T5fZMP15bwxtjDdymDOmz0MX/mcDd82s=";
+    buildTypesAiobotocorePackage "mediaconvert" "2.13.0"
+      "sha256-MSL3mYBrUDBeLitsWfR3Q2mwRzpoclL/oJkaFxc6TTw=";
 
   types-aiobotocore-medialive =
-    buildTypesAiobotocorePackage "medialive" "2.12.3"
-      "sha256-ZF+D7dzjmQNntkyM271BePIbCchA3o1naO/sChfYrGo=";
+    buildTypesAiobotocorePackage "medialive" "2.13.0"
+      "sha256-hZGqU1HI/0et9myUffbJDHFhsCkpl8x5M+iNgsxeNnk=";
 
   types-aiobotocore-mediapackage =
-    buildTypesAiobotocorePackage "mediapackage" "2.12.3"
-      "sha256-OiwnSNch2kbYfNbKNCPSrhg+9yAe4sktibGEQ3MPyXI=";
+    buildTypesAiobotocorePackage "mediapackage" "2.13.0"
+      "sha256-HD2rT2bgrFPGQQrHicz/1jnP9pbLnp+KN/kdA+Dp12U=";
 
   types-aiobotocore-mediapackage-vod =
-    buildTypesAiobotocorePackage "mediapackage-vod" "2.12.3"
-      "sha256-tmBmDVpO4hTT8xMuFpeAl1Gx+m+MacalYwdxKO8k8o4=";
+    buildTypesAiobotocorePackage "mediapackage-vod" "2.13.0"
+      "sha256-iXg4JDx3U42iwFVrpHHqk6yhCnHA0g9NA+f25BR85Ws=";
 
   types-aiobotocore-mediapackagev2 =
-    buildTypesAiobotocorePackage "mediapackagev2" "2.12.3"
-      "sha256-siRePAYIWMPCaivNTOCjhfafut6sQzFYqpiGO4rO+v8=";
+    buildTypesAiobotocorePackage "mediapackagev2" "2.13.0"
+      "sha256-B91QlIhMp9hGgJsToYseTQSB4n3Sgei4Bdgl3RmU5cw=";
 
   types-aiobotocore-mediastore =
-    buildTypesAiobotocorePackage "mediastore" "2.12.3"
-      "sha256-S5o0T8mUQ1ppq4vPdNeBr5FjcNpRtFPRQG4C/MZye2U=";
+    buildTypesAiobotocorePackage "mediastore" "2.13.0"
+      "sha256-2UwHy/6Ni/6rmd+OW1FKXp2jSDueGntuVInNt2kbHR8=";
 
   types-aiobotocore-mediastore-data =
-    buildTypesAiobotocorePackage "mediastore-data" "2.12.3"
-      "sha256-q4AFkM7keYfHWmnFOM5r1xHpVEnDjWsAmyATcfC7264=";
+    buildTypesAiobotocorePackage "mediastore-data" "2.13.0"
+      "sha256-L+Lo4cSR905FO7fkyFgJAhJ7JXmwpZY6yrAs3sI9Pow=";
 
   types-aiobotocore-mediatailor =
-    buildTypesAiobotocorePackage "mediatailor" "2.12.3"
-      "sha256-PLyaXf2/hrmo4YGS6KY8aXyhEv5ewGPWVsGoHS0Ui2g=";
+    buildTypesAiobotocorePackage "mediatailor" "2.13.0"
+      "sha256-eLnheUZLKCaklJuihJbnOi/nK/4G4QWpnpz8PWRYDa0=";
 
   types-aiobotocore-medical-imaging =
-    buildTypesAiobotocorePackage "medical-imaging" "2.12.3"
-      "sha256-3ZFHete+MHeUGomdkD54eCqwDfshP+5Vtf+jTOkRZww=";
+    buildTypesAiobotocorePackage "medical-imaging" "2.13.0"
+      "sha256-5r6e/tA+U8IJhX89/aQBSnEzOECDFqIoQ1t906c8p8s=";
 
   types-aiobotocore-memorydb =
-    buildTypesAiobotocorePackage "memorydb" "2.12.3"
-      "sha256-PB1wrc6y3enPpB+Wk3ciL7F1dgU8bqRxE5FarSaV/80=";
+    buildTypesAiobotocorePackage "memorydb" "2.13.0"
+      "sha256-2IKR1goAmHifDr1emN4VORd9WV1rZMbfEapVc+TQ9WE=";
 
   types-aiobotocore-meteringmarketplace =
-    buildTypesAiobotocorePackage "meteringmarketplace" "2.12.3"
-      "sha256-rKVoKaY63jArGx0R5Y9Xnp7OoztedmbshmB9d338LzM=";
+    buildTypesAiobotocorePackage "meteringmarketplace" "2.13.0"
+      "sha256-M/B4jn9RFGHHa1xbC7JeCQdKPqC7eU2Dv8wEIH0J9jQ=";
 
   types-aiobotocore-mgh =
-    buildTypesAiobotocorePackage "mgh" "2.12.3"
-      "sha256-bUWSyqyUMzvSQSMkqEPJYjhLoAXG1hUcIqHY5bpAito=";
+    buildTypesAiobotocorePackage "mgh" "2.13.0"
+      "sha256-mzvCnITcMJzMfpfRQFyIVpbtfVPY4qy5OLyb3UIlqUo=";
 
   types-aiobotocore-mgn =
-    buildTypesAiobotocorePackage "mgn" "2.12.3"
-      "sha256-I/NeUqOmAXeiF1Sej2LJkMOgKw1Lz4c7YrNJMf+Q4Ac=";
+    buildTypesAiobotocorePackage "mgn" "2.13.0"
+      "sha256-RejNbn28WmZ+ioSAKYFIegfC1AkbkRWLd65IwnWgzHY=";
 
   types-aiobotocore-migration-hub-refactor-spaces =
-    buildTypesAiobotocorePackage "migration-hub-refactor-spaces" "2.12.3"
-      "sha256-0mOX1FRHqlY4FggS/ieTRzc6I4dwoNT6syl0lUiSnFs=";
+    buildTypesAiobotocorePackage "migration-hub-refactor-spaces" "2.13.0"
+      "sha256-HR9zSE6SOLTYqQZV+RowVCV+YfVafbuCvfNvrNYUVgo=";
 
   types-aiobotocore-migrationhub-config =
-    buildTypesAiobotocorePackage "migrationhub-config" "2.12.3"
-      "sha256-CiobxWUFRuAI5qKFDO1zRQj5Xtp+RzMVjwGm2ZSBijY=";
+    buildTypesAiobotocorePackage "migrationhub-config" "2.13.0"
+      "sha256-WWfZkvq+OgnYGrTRcJfLJCZGsjpUy2AsEMkTyb+CUcs=";
 
   types-aiobotocore-migrationhuborchestrator =
-    buildTypesAiobotocorePackage "migrationhuborchestrator" "2.12.3"
-      "sha256-SZ+e7oEbPvRY8J6jLePeoG7osJv7zPtn9SV5z4cU4gU=";
+    buildTypesAiobotocorePackage "migrationhuborchestrator" "2.13.0"
+      "sha256-icVLvU1ZI1/5/owDALeg25qCK1Ny3PVrCvfydIfBCO8=";
 
   types-aiobotocore-migrationhubstrategy =
-    buildTypesAiobotocorePackage "migrationhubstrategy" "2.12.3"
-      "sha256-vO0Tjigj2x/HsA5gPsPU1peloI7GMvHXHe8dtsxSGTg=";
+    buildTypesAiobotocorePackage "migrationhubstrategy" "2.13.0"
+      "sha256-rgKjBmULUFRAFr8b6J9m58aoR2pKkSjLhJY7lkZOKRY=";
 
   types-aiobotocore-mobile =
-    buildTypesAiobotocorePackage "mobile" "2.12.3"
-      "sha256-s1ddYopINo+Q6T9QuD1sQ0P1UYgGxmYaSjxW6eCxK+Y=";
+    buildTypesAiobotocorePackage "mobile" "2.13.0"
+      "sha256-BICpQNN+Br+iDoMeTNSNyNacVgI1OrfcyZkDBl2SoUo=";
 
   types-aiobotocore-mq =
-    buildTypesAiobotocorePackage "mq" "2.12.3"
-      "sha256-tEvBlyvVNNDLRHe8UPzdjnq1hA5QqPDUdtuS2zj6zu0=";
+    buildTypesAiobotocorePackage "mq" "2.13.0"
+      "sha256-+Y1GRkcDbR4SXOIGneHepAS/qrgjnM7K26po8Nf1YsA=";
 
   types-aiobotocore-mturk =
-    buildTypesAiobotocorePackage "mturk" "2.12.3"
-      "sha256-59BieemJgQXv3YyitmffaeD7oxlQAKT8xX/E/VxG0JY=";
+    buildTypesAiobotocorePackage "mturk" "2.13.0"
+      "sha256-s3unZa/uhHtqArgIuBNoWcTnAFj9rduODKfs6gtc2fw=";
 
   types-aiobotocore-mwaa =
-    buildTypesAiobotocorePackage "mwaa" "2.12.3"
-      "sha256-ayUivauZR/s6ivrJA5DFviFgH/rq/f3KYGimULyoizY=";
+    buildTypesAiobotocorePackage "mwaa" "2.13.0"
+      "sha256-ZS8XXr4rroDTCDSuPep8kG7e/h8v9i7499UJrQfgEDk=";
 
   types-aiobotocore-neptune =
-    buildTypesAiobotocorePackage "neptune" "2.12.3"
-      "sha256-bzIzK9sKecGyKvEVWvgwis8Lm9HRP/y49MSnQQb1XGk=";
+    buildTypesAiobotocorePackage "neptune" "2.13.0"
+      "sha256-fvEnIIx66IrTx4exrIJm/KVytf0F+fb3RpmUVE2niXA=";
 
   types-aiobotocore-network-firewall =
-    buildTypesAiobotocorePackage "network-firewall" "2.12.3"
-      "sha256-2Ze/cG5ixrzYm0jZ4hByh7Wz3nAzH3/jyopgFyTUjdg=";
+    buildTypesAiobotocorePackage "network-firewall" "2.13.0"
+      "sha256-R12G5XKsP034MeJ2Tf2bctcrMVlfQ6o9ZDCBpdLN/+E=";
 
   types-aiobotocore-networkmanager =
-    buildTypesAiobotocorePackage "networkmanager" "2.12.3"
-      "sha256-F14ejhHjbv2BmfNng0hmI34+aA8pVCf4L+Cvn2Kx6Jc=";
+    buildTypesAiobotocorePackage "networkmanager" "2.13.0"
+      "sha256-H2tj/8DQqtT1GIZP1FmRuAR/bf5Q5d1VOoCcsgsQxJA=";
 
   types-aiobotocore-nimble =
-    buildTypesAiobotocorePackage "nimble" "2.12.3"
-      "sha256-8WpARJKsOatdQXzmFt30FFri8b1h3bBeyydbZ73kPMc=";
+    buildTypesAiobotocorePackage "nimble" "2.13.0"
+      "sha256-00Di+tYc0/CTTUOu1ax1lNp/2tfCvB58L9ETzqWEjRE=";
 
   types-aiobotocore-oam =
-    buildTypesAiobotocorePackage "oam" "2.12.3"
-      "sha256-qJlO69CxqQnDekL7KRoQEkDd3w5rCxwJ0Z6RRGZxVgU=";
+    buildTypesAiobotocorePackage "oam" "2.13.0"
+      "sha256-q9sBKS2BiiuCGvv+pkm/WSgN70a/KY7gLgxayG3yu98=";
 
   types-aiobotocore-omics =
-    buildTypesAiobotocorePackage "omics" "2.12.3"
-      "sha256-TA4kRoEoYZ6awy9TL550xT0sjVg2FEdfOQLrBEurCTo=";
+    buildTypesAiobotocorePackage "omics" "2.13.0"
+      "sha256-bNahQYb5iuNxk+XQSpf61w68hjGA6Hm62zr70Gj2UeU=";
 
   types-aiobotocore-opensearch =
-    buildTypesAiobotocorePackage "opensearch" "2.12.3"
-      "sha256-uDCRtJuEKNh1HuHCq+YjucLj4VAoHTiqVaOvVnTDJr8=";
+    buildTypesAiobotocorePackage "opensearch" "2.13.0"
+      "sha256-zpvBC/rJ/7+C1JDwpiZtksC964po0TuHPBeW6yvD5ww=";
 
   types-aiobotocore-opensearchserverless =
-    buildTypesAiobotocorePackage "opensearchserverless" "2.12.3"
-      "sha256-KMftaU+mCA1yUnZ1/N1C4N353Lulnmue1Y95GGmIAPg=";
+    buildTypesAiobotocorePackage "opensearchserverless" "2.13.0"
+      "sha256-E3N6ewi/YCAeoHBW5WS0FwkO5YjZURxUJhSnESWuG40=";
 
   types-aiobotocore-opsworks =
-    buildTypesAiobotocorePackage "opsworks" "2.12.3"
-      "sha256-0YVnEY6G5Huj3pnvouc6LaIPHb0uJdRkwF2/EPknFd0=";
+    buildTypesAiobotocorePackage "opsworks" "2.13.0"
+      "sha256-LGOxPGYIIXqu/+4SenVUAWhpo7xiSf76wkv8RmSaWro=";
 
   types-aiobotocore-opsworkscm =
-    buildTypesAiobotocorePackage "opsworkscm" "2.12.3"
-      "sha256-o+tbhUjox4tueImh0cWLqe8Z0xDaDmA1BGMUmFDoEkA=";
+    buildTypesAiobotocorePackage "opsworkscm" "2.13.0"
+      "sha256-inV4lalhHYvkbyIHcG3DQfAllLSW15sUYHr9b0yhg0g=";
 
   types-aiobotocore-organizations =
-    buildTypesAiobotocorePackage "organizations" "2.12.3"
-      "sha256-uZ/hxE2GOIPcbtlyG82sBA+uT4RxAORvck4WjghJ+kg=";
+    buildTypesAiobotocorePackage "organizations" "2.13.0"
+      "sha256-KjQ+zOmxStuXKokL3R1JfZhKwEpH/FRhfhpfz78rZw0=";
 
   types-aiobotocore-osis =
-    buildTypesAiobotocorePackage "osis" "2.12.3"
-      "sha256-kxa5cYYzTSpPmLHV+1ZKjBAC4S9ITmT0p/NI34rQwSs=";
+    buildTypesAiobotocorePackage "osis" "2.13.0"
+      "sha256-LfEOIg6J72v6JBlpl5QFEuqxA28CWJCP+bkhtIvQB6c=";
 
   types-aiobotocore-outposts =
-    buildTypesAiobotocorePackage "outposts" "2.12.3"
-      "sha256-Xf3CuvPjTQODNeSmI+meP7aHj9a26lPGWQ7nWfc/FjE=";
+    buildTypesAiobotocorePackage "outposts" "2.13.0"
+      "sha256-Ss1iKr7EUhLXTT/bSM63HX01NNuKtpKWLodVaZIfNso=";
 
   types-aiobotocore-panorama =
-    buildTypesAiobotocorePackage "panorama" "2.12.3"
-      "sha256-nzkVKxoLpkEBthjyO4d2m8QsEVz2pYsjfBC0sGsTkrY=";
+    buildTypesAiobotocorePackage "panorama" "2.13.0"
+      "sha256-POEZh26xXi3VJWuGaWjf4r8XHL9RKdrEkpb3gqAWWOQ=";
 
   types-aiobotocore-payment-cryptography =
-    buildTypesAiobotocorePackage "payment-cryptography" "2.12.3"
-      "sha256-7H0ew8JQNCUkbNiqCH4jCoO883j5y1hbxXqwwJARuTs=";
+    buildTypesAiobotocorePackage "payment-cryptography" "2.13.0"
+      "sha256-3X8YP4T3ZhW4QG9eUZDK/YEH4GrqsjlYKcajkx3EwrQ=";
 
   types-aiobotocore-payment-cryptography-data =
-    buildTypesAiobotocorePackage "payment-cryptography-data" "2.12.3"
-      "sha256-awVZZf6o0VRTqOl1myJggGdCmwoC5XBTlYSeupceWr0=";
+    buildTypesAiobotocorePackage "payment-cryptography-data" "2.13.0"
+      "sha256-jk2OPWSuPMSU5N4dGhEKacjcker9fWnvKqFAB0CR71o=";
 
   types-aiobotocore-personalize =
-    buildTypesAiobotocorePackage "personalize" "2.12.3"
-      "sha256-j+q16/K4NSdsLmt+vXF3SEy2Kde+/6BxEZ05zOOPI2w=";
+    buildTypesAiobotocorePackage "personalize" "2.13.0"
+      "sha256-ev7xOsnF0HscpYbp8P4tcHCs9NepHHWU0LCetScAlx0=";
 
   types-aiobotocore-personalize-events =
-    buildTypesAiobotocorePackage "personalize-events" "2.12.3"
-      "sha256-YY3hOmgc5ZU1rrN5cbHoIS54eby1AM2vYPz//fGH7Mw=";
+    buildTypesAiobotocorePackage "personalize-events" "2.13.0"
+      "sha256-l3p0VtDiGp8FyXjDjSgiX2IjvLizx9kkv3EvJEIFNBI=";
 
   types-aiobotocore-personalize-runtime =
-    buildTypesAiobotocorePackage "personalize-runtime" "2.12.3"
-      "sha256-D8k7Ui77IvVkpODg7p8SQLO7We3/EYhZaHODsJskJgc=";
+    buildTypesAiobotocorePackage "personalize-runtime" "2.13.0"
+      "sha256-f79eCbB0RFbcNbmPFWpT830y+42QXb5+dM1WTab9cP0=";
 
   types-aiobotocore-pi =
-    buildTypesAiobotocorePackage "pi" "2.12.3"
-      "sha256-sOLfoF0t58cvdvB8LModo1fs8cPovn9gkg0d0opDj1c=";
+    buildTypesAiobotocorePackage "pi" "2.13.0"
+      "sha256-DzpcGn4lfHbUysUx2S2mcSOOTJJhYS0soEFDapYADkE=";
 
   types-aiobotocore-pinpoint =
-    buildTypesAiobotocorePackage "pinpoint" "2.12.3"
-      "sha256-YMB/QCn6zawXBB2Fw4he6CIdZFMz4s91IZIbx1W5RwU=";
+    buildTypesAiobotocorePackage "pinpoint" "2.13.0"
+      "sha256-9CUdzl8WKlgOZK6ovzTT7Kjt9/RuUiER0LAR/T1Su1Q=";
 
   types-aiobotocore-pinpoint-email =
-    buildTypesAiobotocorePackage "pinpoint-email" "2.12.3"
-      "sha256-7MCEh3ICp+3qD6Uijk4/wpEzaP56khP7lG/1RJ26IJg=";
+    buildTypesAiobotocorePackage "pinpoint-email" "2.13.0"
+      "sha256-57zdAVy4B/Xvr2g81zB4z7pkvrQgcCPq+AhV305OS1Y=";
 
   types-aiobotocore-pinpoint-sms-voice =
-    buildTypesAiobotocorePackage "pinpoint-sms-voice" "2.12.3"
-      "sha256-qCnMdlF9VwoTpXxgMObmOa61xzj8NHQoxJriMEbWUPs=";
+    buildTypesAiobotocorePackage "pinpoint-sms-voice" "2.13.0"
+      "sha256-E6p9sQx8+NPVMXMxD8c1UdZrHYH4Qd0A80JHGFhA7ss=";
 
   types-aiobotocore-pinpoint-sms-voice-v2 =
-    buildTypesAiobotocorePackage "pinpoint-sms-voice-v2" "2.12.3"
-      "sha256-eWOhKQR0tTlqLKCmy3zWvRsg5Y0zRKxtQPM8DGEbvuE=";
+    buildTypesAiobotocorePackage "pinpoint-sms-voice-v2" "2.13.0"
+      "sha256-aXh055/gbJJCyG5QVXpIKqw+coxVBGmhw2VPdvZnBik=";
 
   types-aiobotocore-pipes =
-    buildTypesAiobotocorePackage "pipes" "2.12.3"
-      "sha256-kKpp8rQ/co4tJhi1xpuEaIpICy+8sM4grp6bu9HsGMw=";
+    buildTypesAiobotocorePackage "pipes" "2.13.0"
+      "sha256-c42b0kDLfRBE+lJ7r/GUqYqj7Dl/z0aUbpg4y2XEoAU=";
 
   types-aiobotocore-polly =
-    buildTypesAiobotocorePackage "polly" "2.12.3"
-      "sha256-lwU91zv+IhHXBoGtioox9iB7lqGxXwf+s3A43qDZFRw=";
+    buildTypesAiobotocorePackage "polly" "2.13.0"
+      "sha256-be+Ul5pZYU3EuBoSriRHdOECu+8FcIBu/hHsBtMSrCM=";
 
   types-aiobotocore-pricing =
-    buildTypesAiobotocorePackage "pricing" "2.12.3"
-      "sha256-n3bM48N4nqgXA5XQ+2lHgqyfADGP8pt8MDcpd3Afdbc=";
+    buildTypesAiobotocorePackage "pricing" "2.13.0"
+      "sha256-6nulrxv3q74k1Mld1/JtGFx+EQCDuFecxskw1aZvZ3M=";
 
   types-aiobotocore-privatenetworks =
-    buildTypesAiobotocorePackage "privatenetworks" "2.12.3"
-      "sha256-EvxCTzjfaxz3sj7S39I1MvOUo5n4vnc4h0X4bWevSwE=";
+    buildTypesAiobotocorePackage "privatenetworks" "2.13.0"
+      "sha256-dB0R/ZUIIgEyWmlvbrFxh53C3Xq92EGrObd/FiQJlOU=";
 
   types-aiobotocore-proton =
-    buildTypesAiobotocorePackage "proton" "2.12.3"
-      "sha256-/0MAjPO7xXsuePNUGpqpSOORe6GsH8IpbZUj4F9+Jp0=";
+    buildTypesAiobotocorePackage "proton" "2.13.0"
+      "sha256-Urwvd8q8FOwhYhl1oi8onuP3r1Qu3V7kCgfH7mN5t8g=";
 
   types-aiobotocore-qldb =
-    buildTypesAiobotocorePackage "qldb" "2.12.3"
-      "sha256-2LbMUzIge0Jf+iGDI06ne7QP3EMoiVY3m1KOniiRnsw=";
+    buildTypesAiobotocorePackage "qldb" "2.13.0"
+      "sha256-36D0kXk4qitMvkA7If8bZUUdnntEkXFeg2txUzjFzJc=";
 
   types-aiobotocore-qldb-session =
-    buildTypesAiobotocorePackage "qldb-session" "2.12.3"
-      "sha256-Ooj8lzd48n+tcICQgAJT9z//7r+obDdv4jvTNTAhzCw=";
+    buildTypesAiobotocorePackage "qldb-session" "2.13.0"
+      "sha256-39psT/kzcSLJqP3Wy08GBZ9/4guzw/x+ndbNYuLP1ns=";
 
   types-aiobotocore-quicksight =
-    buildTypesAiobotocorePackage "quicksight" "2.12.3"
-      "sha256-aZGpaXSomaU0+oFEEuN1C/1zjA4UAz4vn/Nu2JJThrA=";
+    buildTypesAiobotocorePackage "quicksight" "2.13.0"
+      "sha256-15z6hK1P9LREE8ehE+SzTR6BZqUzkFLjw/x3UGuRNAw=";
 
   types-aiobotocore-ram =
-    buildTypesAiobotocorePackage "ram" "2.12.3"
-      "sha256-bauCdG3Qf4Uiyw0szQL7SBm7QmYSmcDAOW2nW23xlQ0=";
+    buildTypesAiobotocorePackage "ram" "2.13.0"
+      "sha256-LlVfeu1m0FROsfyWrLcZRFU0cZivHfuLIZNbpLhXvuU=";
 
   types-aiobotocore-rbin =
-    buildTypesAiobotocorePackage "rbin" "2.12.3"
-      "sha256-zitp/IE5zJL0qKF5TM3nQdUA1qgSeCSGcK/WS3niRUA=";
+    buildTypesAiobotocorePackage "rbin" "2.13.0"
+      "sha256-AdwPPoUy7jnSTdnAR1w2m9b+txQagRaBUWr8/TOuTjU=";
 
   types-aiobotocore-rds =
-    buildTypesAiobotocorePackage "rds" "2.12.3"
-      "sha256-scJBwjmxy+UmivIBKl5ncB0/JQSeSwSh3wA30EWH/+o=";
+    buildTypesAiobotocorePackage "rds" "2.13.0"
+      "sha256-tq4SeOB2pAsw7p+zHp7l3A9rkCu8Gx9/shuYA0W3gbY=";
 
   types-aiobotocore-rds-data =
-    buildTypesAiobotocorePackage "rds-data" "2.12.3"
-      "sha256-KmEecWh2Z0O6eoRjEClzDC/Vp3qYwrPtdIW6ty2/jM4=";
+    buildTypesAiobotocorePackage "rds-data" "2.13.0"
+      "sha256-n8y+lLePLNr0OQG8V0orUolAk25T9+zjOESwL7hzx0U=";
 
   types-aiobotocore-redshift =
-    buildTypesAiobotocorePackage "redshift" "2.12.3"
-      "sha256-H0GqZM72tVXcvs6ciE9wcqOAQfECU84iKn2VdGaNhIg=";
+    buildTypesAiobotocorePackage "redshift" "2.13.0"
+      "sha256-6wjuDJGyF08s0iVFiz/ZemBxz76ZMiMBO+JBGcBhUL0=";
 
   types-aiobotocore-redshift-data =
-    buildTypesAiobotocorePackage "redshift-data" "2.12.3"
-      "sha256-3eJxMH1JvdJ1n9XnC/6+q7rT5ipaUE/J5G++O1MGf40=";
+    buildTypesAiobotocorePackage "redshift-data" "2.13.0"
+      "sha256-YRCKvcxvjYvLjvh5s02A9EihxBqTsGMDgByhqbFhlmY=";
 
   types-aiobotocore-redshift-serverless =
-    buildTypesAiobotocorePackage "redshift-serverless" "2.12.3"
-      "sha256-+KyAzCuPDV9QTx5COJZjGRpiciYdSHDaaulH++s8Olk=";
+    buildTypesAiobotocorePackage "redshift-serverless" "2.13.0"
+      "sha256-w3xyGATAH0dku7XD4qBR8x4YW9n1lBkxCm45b6oZYw4=";
 
   types-aiobotocore-rekognition =
-    buildTypesAiobotocorePackage "rekognition" "2.12.3"
-      "sha256-AZ3tTUTTQsxIDn7hmq5DkepvOGRA/OBGC7O0Y9ZCqb4=";
+    buildTypesAiobotocorePackage "rekognition" "2.13.0"
+      "sha256-c/74cWPIFaFqZO2/KwuBFzDRFXUN6mGEU4+dhlmZL2c=";
 
   types-aiobotocore-resiliencehub =
-    buildTypesAiobotocorePackage "resiliencehub" "2.12.3"
-      "sha256-mAKlLfWNTYpYA7QJl6VLHv9Kl4xNXKsRFZJbCEpLjdI=";
+    buildTypesAiobotocorePackage "resiliencehub" "2.13.0"
+      "sha256-KWIljOtiUP4vnED4jhtEK+o8KkNd5144rHrGGOFEzSo=";
 
   types-aiobotocore-resource-explorer-2 =
-    buildTypesAiobotocorePackage "resource-explorer-2" "2.12.3"
-      "sha256-Tc2AoAADC9+ElCBKqATsRqAlq12gNcJKr7evJpbZejg=";
+    buildTypesAiobotocorePackage "resource-explorer-2" "2.13.0"
+      "sha256-7TABg31imqlKbOpfhHfEsvBWiuSvXFQXBV5sy4Vypdw=";
 
   types-aiobotocore-resource-groups =
-    buildTypesAiobotocorePackage "resource-groups" "2.12.3"
-      "sha256-U02sdfU+FPpcKf7KP4WEIhwbew7CHnXUhE497fYmEXk=";
+    buildTypesAiobotocorePackage "resource-groups" "2.13.0"
+      "sha256-n94mli/2Ugq3wfsB7nY6xMG/w4mPnpna7nzKd8tuH9s=";
 
   types-aiobotocore-resourcegroupstaggingapi =
-    buildTypesAiobotocorePackage "resourcegroupstaggingapi" "2.12.3"
-      "sha256-Ydf20+setw1400AydFrUHUWQdvNE4g2x23Q9Vn+FG+0=";
+    buildTypesAiobotocorePackage "resourcegroupstaggingapi" "2.13.0"
+      "sha256-TUX08CfZ+ts1c8nnUVQTXueX7A6Kv/+8gVxvIs/r1vs=";
 
   types-aiobotocore-robomaker =
-    buildTypesAiobotocorePackage "robomaker" "2.12.3"
-      "sha256-trj8NpEEUJTB0WEzX1XyVQtofWH/j52oNb9CKL/lpSQ=";
+    buildTypesAiobotocorePackage "robomaker" "2.13.0"
+      "sha256-Rkys6ilXRFonXAt/w97LYfBbqASrs9pLiB79wgzIXxk=";
 
   types-aiobotocore-rolesanywhere =
-    buildTypesAiobotocorePackage "rolesanywhere" "2.12.3"
-      "sha256-xd23IpWelx5jtNTBWtCJZEIG4m/o0dpHlXi82goX8m8=";
+    buildTypesAiobotocorePackage "rolesanywhere" "2.13.0"
+      "sha256-nN6qqN6uhy0NvrubHlYjLurHZxbKqmdMMBS3GM0wcXQ=";
 
   types-aiobotocore-route53 =
-    buildTypesAiobotocorePackage "route53" "2.12.3"
-      "sha256-oEyb1NE+3wDStkvUX0gtJ6Bzp/oHIUw1gyQVdFv0PXw=";
+    buildTypesAiobotocorePackage "route53" "2.13.0"
+      "sha256-CCG6vttkC1uj7gxRxO7xFnd35gAfhhLm5Dj7VVeJEHc=";
 
   types-aiobotocore-route53-recovery-cluster =
-    buildTypesAiobotocorePackage "route53-recovery-cluster" "2.12.3"
-      "sha256-lnWLEXErO3LO4teDnVnkGRawfEXdh2EgkDL9RVp941Q=";
+    buildTypesAiobotocorePackage "route53-recovery-cluster" "2.13.0"
+      "sha256-CQUSDYfeW4Esvi3gTae4xaYZTA6ylPriWV81S6+NeNQ=";
 
   types-aiobotocore-route53-recovery-control-config =
-    buildTypesAiobotocorePackage "route53-recovery-control-config" "2.12.3"
-      "sha256-FsnXHspKP62zQiB0zhX28V3yeLAMNqMW6JHTVtGVjsk=";
+    buildTypesAiobotocorePackage "route53-recovery-control-config" "2.13.0"
+      "sha256-8chbPLryP96xhv2Y6mPLYnAmUp7tz1KL14EB9OED3aA=";
 
   types-aiobotocore-route53-recovery-readiness =
-    buildTypesAiobotocorePackage "route53-recovery-readiness" "2.12.3"
-      "sha256-mAWpWgYqjnoIHJzw3nNNQA5m5bQd+mkU1536hDb2K+w=";
+    buildTypesAiobotocorePackage "route53-recovery-readiness" "2.13.0"
+      "sha256-gaFNIBWhLBXgSdvrztz702QROQbkwd0+VTAjV0zme2Q=";
 
   types-aiobotocore-route53domains =
-    buildTypesAiobotocorePackage "route53domains" "2.12.3"
-      "sha256-sm1A/O/k62QDcmrhv5mpHZ3YqixRWcPnV2VEL9AfkFs=";
+    buildTypesAiobotocorePackage "route53domains" "2.13.0"
+      "sha256-JvPF9T7h4Vz/9lXQ+JZr+NtmUHj2JTcpdUPq1hH9Z0Y=";
 
   types-aiobotocore-route53resolver =
-    buildTypesAiobotocorePackage "route53resolver" "2.12.3"
-      "sha256-wZVYaDPSU5d0xTeCJQcPi0hiLRt4pvrbMozalM3fIUA=";
+    buildTypesAiobotocorePackage "route53resolver" "2.13.0"
+      "sha256-cnyN8S4V+wdlhqhWLwOBlsZxL7LEXy/hPI14+xwCP1o=";
 
   types-aiobotocore-rum =
-    buildTypesAiobotocorePackage "rum" "2.12.3"
-      "sha256-IMk/fTHusesqUz0k9KC0TIDcCiShh+DSdQowOBBpeJg=";
+    buildTypesAiobotocorePackage "rum" "2.13.0"
+      "sha256-xEkOqe5WtYJArHH7MIluw/ANTxo2/Yrh4XZoFW12fAM=";
 
   types-aiobotocore-s3 =
-    buildTypesAiobotocorePackage "s3" "2.12.3"
-      "sha256-UcY0A+OAG3Dfi6HfH2leuknKraIHceX6pWcPsXElzX8=";
+    buildTypesAiobotocorePackage "s3" "2.13.0"
+      "sha256-ENUvZw4nCFffkH2VCfTKg2gzvATLXqh+SbXdPdowJbI=";
 
   types-aiobotocore-s3control =
-    buildTypesAiobotocorePackage "s3control" "2.12.3"
-      "sha256-SSD5mCt392ZE0SmypwASM1HeuqnNFbnBjsI/8Uwy+Y0=";
+    buildTypesAiobotocorePackage "s3control" "2.13.0"
+      "sha256-55qykWmSOXfwrZuLq6xgyPSLp+fW1k4sOm9Az8SPAls=";
 
   types-aiobotocore-s3outposts =
-    buildTypesAiobotocorePackage "s3outposts" "2.12.3"
-      "sha256-iFrAYHvNIpgH+M6HeuogIZJiRiyzLhuOboEF3ipCCug=";
+    buildTypesAiobotocorePackage "s3outposts" "2.13.0"
+      "sha256-ZGWo0IqJls/dZp0nHCjL7kxHoqHThm0IrNH81ecaHiA=";
 
   types-aiobotocore-sagemaker =
-    buildTypesAiobotocorePackage "sagemaker" "2.12.3"
-      "sha256-DTUta+jol6bEAisciUDPaiubNdc7CE1DC2njjPVCuEw=";
+    buildTypesAiobotocorePackage "sagemaker" "2.13.0"
+      "sha256-UEmw6ehUWFpNECvB5fg9hy4MzsSUYbypb+NPwshH97I=";
 
   types-aiobotocore-sagemaker-a2i-runtime =
-    buildTypesAiobotocorePackage "sagemaker-a2i-runtime" "2.12.3"
-      "sha256-+DV7vYutJqk3pcA8gaXVQW2foTKD07elUUFyMi13QT8=";
+    buildTypesAiobotocorePackage "sagemaker-a2i-runtime" "2.13.0"
+      "sha256-0gSeq5TGWisG+7juOwMikhMcZRyVj1K996sHUuQJhJg=";
 
   types-aiobotocore-sagemaker-edge =
-    buildTypesAiobotocorePackage "sagemaker-edge" "2.12.3"
-      "sha256-SFZJnRXUDM5qlvMf6nTso38RmBXKbN3xqOdXFwoCOEc=";
+    buildTypesAiobotocorePackage "sagemaker-edge" "2.13.0"
+      "sha256-BhDbkVmqNNw3thOA7dDBf2wsGsOYnT5jsgXvMiQlSp4=";
 
   types-aiobotocore-sagemaker-featurestore-runtime =
-    buildTypesAiobotocorePackage "sagemaker-featurestore-runtime" "2.12.3"
-      "sha256-PnVM2KeIEodV1RVmiXv6Zh80NfnzxV3ih3RpNYJlnzw=";
+    buildTypesAiobotocorePackage "sagemaker-featurestore-runtime" "2.13.0"
+      "sha256-bPXKu5HDDvU9wPb5Av6n2C1sszO1zAfC395oC1x11yA=";
 
   types-aiobotocore-sagemaker-geospatial =
-    buildTypesAiobotocorePackage "sagemaker-geospatial" "2.12.3"
-      "sha256-Lg2PR/AB5yqsRwUWZfIf7vP7Ig2G8APEZRzCXUm0H48=";
+    buildTypesAiobotocorePackage "sagemaker-geospatial" "2.13.0"
+      "sha256-1mXX7egH6VDSUPnxmSAeBUm4tqh9CS+tDjdu+j/tPWo=";
 
   types-aiobotocore-sagemaker-metrics =
-    buildTypesAiobotocorePackage "sagemaker-metrics" "2.12.3"
-      "sha256-Iv6JOyRcAfkaNdq/m2ot/e8CTZREWIE7V+tEsZNZ3HY=";
+    buildTypesAiobotocorePackage "sagemaker-metrics" "2.13.0"
+      "sha256-wt0NAOC+pb6XTD59ZNLksByX4FwAmrQ2HErj15FUA2E=";
 
   types-aiobotocore-sagemaker-runtime =
-    buildTypesAiobotocorePackage "sagemaker-runtime" "2.12.3"
-      "sha256-/jd4KgxRbV9IzTGDm0BkcQ5UIaRpDyLBUFZXLsaYzA4=";
+    buildTypesAiobotocorePackage "sagemaker-runtime" "2.13.0"
+      "sha256-csZFZFJwaxrWFmhzQjdw7DHfTxdfEt41GUh2OQ52wkg=";
 
   types-aiobotocore-savingsplans =
-    buildTypesAiobotocorePackage "savingsplans" "2.12.3"
-      "sha256-PgrfYlgmvM7QtF0E1z4xi8gGK+ixZykxvdEMpTz3SZw=";
+    buildTypesAiobotocorePackage "savingsplans" "2.13.0"
+      "sha256-WAPagWtRhqsmwrCXGNTai/uargonI8p9PMx6ER3gUus=";
 
   types-aiobotocore-scheduler =
-    buildTypesAiobotocorePackage "scheduler" "2.12.3"
-      "sha256-jXpQJ1Uw2nOVZpkXtUf1mCrS9YykBJcvVMCp5Jz9558=";
+    buildTypesAiobotocorePackage "scheduler" "2.13.0"
+      "sha256-AjAj8QHxU0aOqWMt98M+Qe5v6Dc72ftWuaQ7omTlkRg=";
 
   types-aiobotocore-schemas =
-    buildTypesAiobotocorePackage "schemas" "2.12.3"
-      "sha256-PiRnAEU/+r/VT3SiboaUpU9FRyOs/3Wj5wCJDyzKZNU=";
+    buildTypesAiobotocorePackage "schemas" "2.13.0"
+      "sha256-liVnb5YGMACt8P3NXYudpY8Ai5bVqZuv3Q0/WNrLCHg=";
 
   types-aiobotocore-sdb =
-    buildTypesAiobotocorePackage "sdb" "2.12.3"
-      "sha256-17iQmuTvmeMDkz3fRxYlE/JcCy/XTuCNmlG5EGGY1S8=";
+    buildTypesAiobotocorePackage "sdb" "2.13.0"
+      "sha256-Yl/GGw/5EUPuIsPUbrG+g1icYqlewsFLwFdvUCnrT4E=";
 
   types-aiobotocore-secretsmanager =
-    buildTypesAiobotocorePackage "secretsmanager" "2.12.3"
-      "sha256-Yk0GEeSSl3Bhx9w/uRrrl9oNjpdw4ekye1Ia38fpvXE=";
+    buildTypesAiobotocorePackage "secretsmanager" "2.13.0"
+      "sha256-v0mr8Z2VMpMzPVbnxCoGJ4Oc2Az2QI3Emnci4UMe6sc=";
 
   types-aiobotocore-securityhub =
-    buildTypesAiobotocorePackage "securityhub" "2.12.3"
-      "sha256-iZzzocPVbiWn6ZaHOEu42hcOLJyjgIRWCJpeSiQE3I4=";
+    buildTypesAiobotocorePackage "securityhub" "2.13.0"
+      "sha256-lwsfWc2pkCpsX84z1CfwbWjORqwv+ULpe96Gl4063Fk=";
 
   types-aiobotocore-securitylake =
-    buildTypesAiobotocorePackage "securitylake" "2.12.3"
-      "sha256-q9e+7s3//qaswRo1wwIIhtEz7qszUKuHXXG3n4z8piE=";
+    buildTypesAiobotocorePackage "securitylake" "2.13.0"
+      "sha256-viS9OU1nyW8tk4c0G4oWh48APJf39s/P2Vqo2iLJXbg=";
 
   types-aiobotocore-serverlessrepo =
-    buildTypesAiobotocorePackage "serverlessrepo" "2.12.3"
-      "sha256-sqFr4/WFedUrgVK9PAVffaA4lhEK510679P/RoTv4xw=";
+    buildTypesAiobotocorePackage "serverlessrepo" "2.13.0"
+      "sha256-09grClFgCl+HJX5jmttq7y1HRDuBIn0z16dHO4iRmB4=";
 
   types-aiobotocore-service-quotas =
-    buildTypesAiobotocorePackage "service-quotas" "2.12.3"
-      "sha256-vCRTtFjQfCe38y/wZaxjIfHRLzkqAakDf/sNXtU2TOY=";
+    buildTypesAiobotocorePackage "service-quotas" "2.13.0"
+      "sha256-IKxnbv5AnPFS2MnkruYX3BsQTwrj/dnWhDURTD1/rcU=";
 
   types-aiobotocore-servicecatalog =
-    buildTypesAiobotocorePackage "servicecatalog" "2.12.3"
-      "sha256-9EXbCcvcrXmKktoZXp+LdKXQOi6V9VKHrFVR++XGhOI=";
+    buildTypesAiobotocorePackage "servicecatalog" "2.13.0"
+      "sha256-VhxY09Y/GdngzaNQClwDBxrIsxGGUPnUfhnIEmoFa08=";
 
   types-aiobotocore-servicecatalog-appregistry =
-    buildTypesAiobotocorePackage "servicecatalog-appregistry" "2.12.3"
-      "sha256-VenvRShJhVaZHkM0MN+iEZHGeOeqbAYneRW0lB4+fww=";
+    buildTypesAiobotocorePackage "servicecatalog-appregistry" "2.13.0"
+      "sha256-TCuTVU3ibRuJxqo0YofFDHkKhsqPErqdSIEks1lFGxE=";
 
   types-aiobotocore-servicediscovery =
-    buildTypesAiobotocorePackage "servicediscovery" "2.12.3"
-      "sha256-fK38DE6aGY03HmtIBBhyxX4pjA3XOiKKZJ2iMJeZDP8=";
+    buildTypesAiobotocorePackage "servicediscovery" "2.13.0"
+      "sha256-22jlffIHiNjCGc7Vfz5HhLPrquy/3qTB2MRtjOvKHkk=";
 
   types-aiobotocore-ses =
-    buildTypesAiobotocorePackage "ses" "2.12.3"
-      "sha256-oYoq9cMFB7qKjUccWa4iunjlwizUA/pevKcQiHS68wY=";
+    buildTypesAiobotocorePackage "ses" "2.13.0"
+      "sha256-4pjWdJ2/5iUM6YOs8lhApi0zDFnsrt9Nja3W59sNZpw=";
 
   types-aiobotocore-sesv2 =
-    buildTypesAiobotocorePackage "sesv2" "2.12.3"
-      "sha256-JR16UIvxYyWR+T7Ar9ft8rwxZrqwyzKy5pVJMi6kzbA=";
+    buildTypesAiobotocorePackage "sesv2" "2.13.0"
+      "sha256-Cfmcdmx6SjcL+26o1T6yyC/KDYBx/B0jn4wYZizWTuw=";
 
   types-aiobotocore-shield =
-    buildTypesAiobotocorePackage "shield" "2.12.3"
-      "sha256-tuzWmBEyMr9k4isVkg5ybz7NBwKl5udmHHdokUVILog=";
+    buildTypesAiobotocorePackage "shield" "2.13.0"
+      "sha256-7fo5XF4RMTKWHqDknStr/3T++TCDJvkxXGTw8l2y3n8=";
 
   types-aiobotocore-signer =
-    buildTypesAiobotocorePackage "signer" "2.12.3"
-      "sha256-jy6cpicBp423tHyp6ALwPro0CwPddDfQHdo9KBOOtLo=";
+    buildTypesAiobotocorePackage "signer" "2.13.0"
+      "sha256-Z7q+pNHlTSyagYUkCIQwsOgNousT7s7VnNEyGqi9LqM=";
 
   types-aiobotocore-simspaceweaver =
-    buildTypesAiobotocorePackage "simspaceweaver" "2.12.3"
-      "sha256-fDVnFlLYm+8lfSVfFAGu5sjqrVIjmC0WCPpPbIhyf9w=";
+    buildTypesAiobotocorePackage "simspaceweaver" "2.13.0"
+      "sha256-+0aYuQO2nN1nyNFwSL1Fh/CWfLWkb7tu2ZAPtwG5vxw=";
 
   types-aiobotocore-sms =
-    buildTypesAiobotocorePackage "sms" "2.12.3"
-      "sha256-RF91H0JiSTScbqvFbKHkid/Wp7+Qr/qLc6UT9bltEdY=";
+    buildTypesAiobotocorePackage "sms" "2.13.0"
+      "sha256-K+l4X7/2e4iv1kip9iPZUj22/HsJhhQGZ0H7rUHg/5g=";
 
   types-aiobotocore-sms-voice =
-    buildTypesAiobotocorePackage "sms-voice" "2.12.3"
-      "sha256-nT82/oiMPjWyVbwWLhLjRoQoEMZERe2ET2ti2OnefQw=";
+    buildTypesAiobotocorePackage "sms-voice" "2.13.0"
+      "sha256-6j+YcV4oEB5rZ6k2+Jlzn0irZCd5f1tIIASjKFNkMx4=";
 
   types-aiobotocore-snow-device-management =
-    buildTypesAiobotocorePackage "snow-device-management" "2.12.3"
-      "sha256-ama8FOWJb2czu+++Ps1nSKCnwZxMk9SP0OGHzX02x7Y=";
+    buildTypesAiobotocorePackage "snow-device-management" "2.13.0"
+      "sha256-gWuBHbxl8UkEUL2FQ/Gfb1rKmFNHrON72Bo1lxRbwYU=";
 
   types-aiobotocore-snowball =
-    buildTypesAiobotocorePackage "snowball" "2.12.3"
-      "sha256-elqHFPOYXK8xx1XC5yDkcPJPyY2x0/FKt3Kor+gPk9s=";
+    buildTypesAiobotocorePackage "snowball" "2.13.0"
+      "sha256-gpaamDvztO5syi72/O721Li1YUmjnWbsT2fxTi8TfKQ=";
 
   types-aiobotocore-sns =
-    buildTypesAiobotocorePackage "sns" "2.12.3"
-      "sha256-HfqnblwWhnFpVfFe6a4OLPQXuSZB+SzKRS5u39viIjE=";
+    buildTypesAiobotocorePackage "sns" "2.13.0"
+      "sha256-39J795V0hlag4UXJPL95hwp/nvYsRKrrFfCA/DSh4Dk=";
 
   types-aiobotocore-sqs =
-    buildTypesAiobotocorePackage "sqs" "2.12.3"
-      "sha256-m4tcWZXlixyURA7V1bJvThC1VydPmalqIdz7JrqsEl0=";
+    buildTypesAiobotocorePackage "sqs" "2.13.0"
+      "sha256-/rlkm98WGctndpPkt1ffkeK1+EVBecwouhTK2ycdenU=";
 
   types-aiobotocore-ssm =
-    buildTypesAiobotocorePackage "ssm" "2.12.3"
-      "sha256-Zl8oXCdd7lPPNpIF27EPUfPcTVnwfjCBKfS1/t0ta60=";
+    buildTypesAiobotocorePackage "ssm" "2.13.0"
+      "sha256-Mw6f1xt421x+gA/pmhD9XXDMAIKsDG/oN8/wBVnaRxw=";
 
   types-aiobotocore-ssm-contacts =
-    buildTypesAiobotocorePackage "ssm-contacts" "2.12.3"
-      "sha256-TYFO1JBWesLY+oNg+k4IdR5OOtrddgUgDn7ONGARRKU=";
+    buildTypesAiobotocorePackage "ssm-contacts" "2.13.0"
+      "sha256-lSwXwyKhLxHwAV8Qdkq0IlDg6UnhlBBjFJthHjSv4TY=";
 
   types-aiobotocore-ssm-incidents =
-    buildTypesAiobotocorePackage "ssm-incidents" "2.12.3"
-      "sha256-IzUQDV1C6TGKT+UXA2c9C6HVBlrg3qHynH/+7klH/6E=";
+    buildTypesAiobotocorePackage "ssm-incidents" "2.13.0"
+      "sha256-O4f9e6TkSssRfRW1DWRabocBjElEPyZNbZQwKiGtEmM=";
 
   types-aiobotocore-ssm-sap =
-    buildTypesAiobotocorePackage "ssm-sap" "2.12.3"
-      "sha256-xaXFwmc+VBX005jom+oYI0fjqebI2BN7Mj14+dVXGQE=";
+    buildTypesAiobotocorePackage "ssm-sap" "2.13.0"
+      "sha256-m9FxXdOGc4VrM552FB1QIpLnX0dIT+wcK7zWyXLqCm4=";
 
   types-aiobotocore-sso =
-    buildTypesAiobotocorePackage "sso" "2.12.3"
-      "sha256-ZC4pgxkd0NM+jxOrdiZCoMv39N5dp6yvCfcbkuWxKkE=";
+    buildTypesAiobotocorePackage "sso" "2.13.0"
+      "sha256-biwuRY/iWsjeX61+TXeFmiUbxjPpCuSCrFXXcvwQFW4=";
 
   types-aiobotocore-sso-admin =
-    buildTypesAiobotocorePackage "sso-admin" "2.12.3"
-      "sha256-chLpz3GeLrw6SbnmqeZntzFZb8YseYXswmlU1icccMs=";
+    buildTypesAiobotocorePackage "sso-admin" "2.13.0"
+      "sha256-8K0aNHqTSthROSsUNjoUqeqlkW5ieJx5tjngkNZ+aPY=";
 
   types-aiobotocore-sso-oidc =
-    buildTypesAiobotocorePackage "sso-oidc" "2.12.3"
-      "sha256-P7D0/lG3YJbQi12viIdd/Ykl3PCC1u/EAE0oqZv0zAk=";
+    buildTypesAiobotocorePackage "sso-oidc" "2.13.0"
+      "sha256-cHmk1b0IOwKUKq+QWj6BtkVj1sUI2goELu+uOG1WSX4=";
 
   types-aiobotocore-stepfunctions =
-    buildTypesAiobotocorePackage "stepfunctions" "2.12.3"
-      "sha256-sYm/6MQNZfRL88M6JPhgZUrPV0r2kWfiNT9nPQB1Uwo=";
+    buildTypesAiobotocorePackage "stepfunctions" "2.13.0"
+      "sha256-MFlLufnrOZuVEz0X4saMIZ6NOmoOZz4ErhGu2qmIU+M=";
 
   types-aiobotocore-storagegateway =
-    buildTypesAiobotocorePackage "storagegateway" "2.12.3"
-      "sha256-bdVAioN/pPSA3Ma7PPFhAVL4L1E7clZJzPct0k7ABp8=";
+    buildTypesAiobotocorePackage "storagegateway" "2.13.0"
+      "sha256-NQpTnbyABcbdDOiqNowjyp8eE1FHiiNBP3WfzQuvIWU=";
 
   types-aiobotocore-sts =
-    buildTypesAiobotocorePackage "sts" "2.12.3"
-      "sha256-aQyVJ9UWizJuKDkko6+xHNIONLq3hI+rQfHsPaW6JVU=";
+    buildTypesAiobotocorePackage "sts" "2.13.0"
+      "sha256-l6LidYUiTrHzuCLlLAU+8XHHpMjy6csClPvGOf7o8Zk=";
 
   types-aiobotocore-support =
-    buildTypesAiobotocorePackage "support" "2.12.3"
-      "sha256-pJg8YolBrgYx0FwW3J60x2S9H4XymC0XlBBilb1YIEY=";
+    buildTypesAiobotocorePackage "support" "2.13.0"
+      "sha256-6Y2NJj3bs88agfiUEzMgl/1Zkci45hoVtNIClzcar/Q=";
 
   types-aiobotocore-support-app =
-    buildTypesAiobotocorePackage "support-app" "2.12.3"
-      "sha256-NMG419sd7+MjfBEGjaDYcr7kHCE3R3wAY5rFLzfIg18=";
+    buildTypesAiobotocorePackage "support-app" "2.13.0"
+      "sha256-awkyq4V50G0l5epg1BFD54kMXEYrHe8iso8zlrobvF8=";
 
   types-aiobotocore-swf =
-    buildTypesAiobotocorePackage "swf" "2.12.3"
-      "sha256-HFcaf+erCthcjXILJYmkH1YDM6xGR1DVi9xd61/UmUc=";
+    buildTypesAiobotocorePackage "swf" "2.13.0"
+      "sha256-CIAMqHhr0E0SFz9IyS2fOn/44Xi8oo0WPvVKNsByTfo=";
 
   types-aiobotocore-synthetics =
-    buildTypesAiobotocorePackage "synthetics" "2.12.3"
-      "sha256-91qq9ziYFML/0rdn3SP8glsG9mW1LUjvqPlNDt4Fbwo=";
+    buildTypesAiobotocorePackage "synthetics" "2.13.0"
+      "sha256-1jMVFO/QbT+hh+jYt42E9DWV4uIoamdG5NjqdkOqovI=";
 
   types-aiobotocore-textract =
-    buildTypesAiobotocorePackage "textract" "2.12.3"
-      "sha256-WQFJaP++IIr0eWa810stZzMM0gW5Cxh3CPVTfuFzhYg=";
+    buildTypesAiobotocorePackage "textract" "2.13.0"
+      "sha256-qqgWwtB+7ZvjfQP5JOUrszNtZTDXf44Lb2jrnpQAxmM=";
 
   types-aiobotocore-timestream-query =
-    buildTypesAiobotocorePackage "timestream-query" "2.12.3"
-      "sha256-TOXo/JhCp8+dD0umfIuokpF/lmUgFfsMLOoLtkiZNpg=";
+    buildTypesAiobotocorePackage "timestream-query" "2.13.0"
+      "sha256-9FxDlKjBAlhb+Nu1d3A8AGyvaFXk6ejQI2b7f47SguQ=";
 
   types-aiobotocore-timestream-write =
-    buildTypesAiobotocorePackage "timestream-write" "2.12.3"
-      "sha256-teNvXZu8T74wuYy13s9UvT2sBc/Q8pT27Mj0lP1uDa0=";
+    buildTypesAiobotocorePackage "timestream-write" "2.13.0"
+      "sha256-yrloTL8MYnHkeVEF2Bp8i2QQ3Yh0IRGiY/VGih41lJQ=";
 
   types-aiobotocore-tnb =
-    buildTypesAiobotocorePackage "tnb" "2.12.3"
-      "sha256-y3efi+c+4NOXvdnc+y/PMD2CuFuLDGU9HwFUgkNV8HU=";
+    buildTypesAiobotocorePackage "tnb" "2.13.0"
+      "sha256-Ln5KwCFTs+7T/ONaVj9TeBmSxsOCxXdUokiCa83ozzg=";
 
   types-aiobotocore-transcribe =
-    buildTypesAiobotocorePackage "transcribe" "2.12.3"
-      "sha256-RdPWi2yNUdoDh3vrQGJx7BoF8tfYO2h9e0juwuNZTPY=";
+    buildTypesAiobotocorePackage "transcribe" "2.13.0"
+      "sha256-IFlZRCvhK1vZSB4uHwPa1CP678E8UboL4geqHHivrg4=";
 
   types-aiobotocore-transfer =
-    buildTypesAiobotocorePackage "transfer" "2.12.3"
-      "sha256-svX7Mr99aXUcYxtuFDAuEYvBF16IJqWbRNjubgxtRww=";
+    buildTypesAiobotocorePackage "transfer" "2.13.0"
+      "sha256-IouagvvqSdfFQ5ZryCukEBXSryTHxT34z4aQu4vG/E4=";
 
   types-aiobotocore-translate =
-    buildTypesAiobotocorePackage "translate" "2.12.3"
-      "sha256-AY9NzJprshQe5UPAERG+DquylhKLtec05KMjM+CfJx4=";
+    buildTypesAiobotocorePackage "translate" "2.13.0"
+      "sha256-Th2TUSe1gS/hvUEP8UOx3Yxyse7JEtccznZB4TSDlxQ=";
 
   types-aiobotocore-verifiedpermissions =
-    buildTypesAiobotocorePackage "verifiedpermissions" "2.12.3"
-      "sha256-bH15twDf36YZuWTGhIdl2XsV9CYxrTRstI8+9otJA0A=";
+    buildTypesAiobotocorePackage "verifiedpermissions" "2.13.0"
+      "sha256-rgjP4mUyhAa8hqnsR+EkNHY4U58Vd90xOcj/WZT3Q1E=";
 
   types-aiobotocore-voice-id =
-    buildTypesAiobotocorePackage "voice-id" "2.12.3"
-      "sha256-BA/JY5cusubF2NYIFOotM14O6YHEmcP9PX59ksnj8e0=";
+    buildTypesAiobotocorePackage "voice-id" "2.13.0"
+      "sha256-4ECIbOcUc7DlARzgd+mE0bFr8QDVrpW2ZmMWiFDmIu0=";
 
   types-aiobotocore-vpc-lattice =
-    buildTypesAiobotocorePackage "vpc-lattice" "2.12.3"
-      "sha256-YYH5fIP+7yWLwm/UlAfdQWACsXXuyqGPNVWx1ZTsKq8=";
+    buildTypesAiobotocorePackage "vpc-lattice" "2.13.0"
+      "sha256-H4kG7rpxijqag14yZmNYmSxdSkRcAQw3tD/EVglkMJc=";
 
   types-aiobotocore-waf =
-    buildTypesAiobotocorePackage "waf" "2.12.3"
-      "sha256-3vNi+7zjFmOsphhkiCe3sL3xGc6vJn+QxXfnJiGzeRE=";
+    buildTypesAiobotocorePackage "waf" "2.13.0"
+      "sha256-1W4gNPVBvTCSZiC12iymw2LBRwr7i2MlimBStcjinRY=";
 
   types-aiobotocore-waf-regional =
-    buildTypesAiobotocorePackage "waf-regional" "2.12.3"
-      "sha256-v/NoOoMS6KwZotYZsCIqwQ3EkUusaK5YuCnQz3eBhz8=";
+    buildTypesAiobotocorePackage "waf-regional" "2.13.0"
+      "sha256-xRQlOmoSW0w1L/jvS5aUkh3+mwCFMDem4MR8GmXTLDk=";
 
   types-aiobotocore-wafv2 =
-    buildTypesAiobotocorePackage "wafv2" "2.12.3"
-      "sha256-DI5GBYssyNe5yDUD9EF4+waE1d/SD6iDyNK93Hhbl38=";
+    buildTypesAiobotocorePackage "wafv2" "2.13.0"
+      "sha256-AE1njAVbSJZf2Ce5ra6ARUnqOb/FKQpA8mN2TpFiwJ4=";
 
   types-aiobotocore-wellarchitected =
-    buildTypesAiobotocorePackage "wellarchitected" "2.12.3"
-      "sha256-g+EwfgHlhvFWHlQsjZriiPHFF+VzLlMAo9LtX+AImlc=";
+    buildTypesAiobotocorePackage "wellarchitected" "2.13.0"
+      "sha256-gwk2sUPHH7+k4NcHXMmnSV2lDVZbgZcTJZY8QScoQhY=";
 
   types-aiobotocore-wisdom =
-    buildTypesAiobotocorePackage "wisdom" "2.12.3"
-      "sha256-EHqZb51vIHt4ox9Zd9G/Hl6KGWd7vIipjYn+ru3zwTw=";
+    buildTypesAiobotocorePackage "wisdom" "2.13.0"
+      "sha256-kLp8W+KROrwxNC4hgD41EVtjQuw+CPjgbbz2vFec8Us=";
 
   types-aiobotocore-workdocs =
-    buildTypesAiobotocorePackage "workdocs" "2.12.3"
-      "sha256-/lVbhKOMtyTSZEEgzKH2DySZM1+Jv3LM4TJAauTWyLc=";
+    buildTypesAiobotocorePackage "workdocs" "2.13.0"
+      "sha256-kcFiysNx0GmHJdhgiuAcNWX+WM7p6410oxv11d6nAi8=";
 
   types-aiobotocore-worklink =
-    buildTypesAiobotocorePackage "worklink" "2.12.3"
-      "sha256-agu/CSxY1gjcVTU42I2DR9Rxrk0c9GANXJe16Nx4U1I=";
+    buildTypesAiobotocorePackage "worklink" "2.13.0"
+      "sha256-du7dFEEWnVCZKIOK63SxyakQRXGqqBWUhRPQ7hcsvPo=";
 
   types-aiobotocore-workmail =
-    buildTypesAiobotocorePackage "workmail" "2.12.3"
-      "sha256-XYf1bnCmYZI51uvJY9IG+imcUyqNO1AUc3gWF/jMhkA=";
+    buildTypesAiobotocorePackage "workmail" "2.13.0"
+      "sha256-OtL2BuB9ORvHBjbkgTRcnwyt8g5hml/eIR3JZh5XAE0=";
 
   types-aiobotocore-workmailmessageflow =
-    buildTypesAiobotocorePackage "workmailmessageflow" "2.12.3"
-      "sha256-qMBxt5KkYqfDqWAFJVdch2edQCIl+lP5lyjAGkMriN8=";
+    buildTypesAiobotocorePackage "workmailmessageflow" "2.13.0"
+      "sha256-qCxrMdw7XIUfBnpkUP6CuV3qzaJIDGNEHynh38VxH/c=";
 
   types-aiobotocore-workspaces =
-    buildTypesAiobotocorePackage "workspaces" "2.12.3"
-      "sha256-KLg4Q2VvinCIBhqD33CnpXqSjaex8JlN0vh1BIq1bpE=";
+    buildTypesAiobotocorePackage "workspaces" "2.13.0"
+      "sha256-hP+dRmyRoNOyUXLOtZk92glo80ZJ5RL98++8BWv4dPk=";
 
   types-aiobotocore-workspaces-web =
-    buildTypesAiobotocorePackage "workspaces-web" "2.12.3"
-      "sha256-y+iQviR02Kuy0czNmKJOefkI9AVBgGGXGm8DQPxVoXM=";
+    buildTypesAiobotocorePackage "workspaces-web" "2.13.0"
+      "sha256-no1EEOjNvuRNXlWnOxIQ7ULXyfPzIEAFLfaIDRt4/gg=";
 
   types-aiobotocore-xray =
-    buildTypesAiobotocorePackage "xray" "2.12.3"
-      "sha256-l89VAkb3pdSU559nWIaipZOYsRG1DGz1wEDKOyehe0Q=";
+    buildTypesAiobotocorePackage "xray" "2.13.0"
+      "sha256-Uq7grT2EwFiVvBQNlSFIn00A/gN2Co3DU4fYsW0Bc6U=";
 }
diff --git a/pkgs/development/python-modules/types-aiobotocore/default.nix b/pkgs/development/python-modules/types-aiobotocore/default.nix
index 0c1a13950b7e3..45f86523ac3a6 100644
--- a/pkgs/development/python-modules/types-aiobotocore/default.nix
+++ b/pkgs/development/python-modules/types-aiobotocore/default.nix
@@ -1,16 +1,15 @@
 {
   lib,
+  aiobotocore,
+  botocore-stubs,
+  botocore,
   buildPythonPackage,
   fetchPypi,
   setuptools,
-  botocore-stubs,
-  typing-extensions,
   types-aiobotocore-accessanalyzer,
   types-aiobotocore-account,
-  types-aiobotocore-acm,
   types-aiobotocore-acm-pca,
-  aiobotocore,
-  botocore,
+  types-aiobotocore-acm,
   types-aiobotocore-alexaforbusiness,
   types-aiobotocore-amp,
   types-aiobotocore-amplify,
@@ -34,22 +33,22 @@
   types-aiobotocore-arc-zonal-shift,
   types-aiobotocore-athena,
   types-aiobotocore-auditmanager,
-  types-aiobotocore-autoscaling,
   types-aiobotocore-autoscaling-plans,
-  types-aiobotocore-backup,
+  types-aiobotocore-autoscaling,
   types-aiobotocore-backup-gateway,
+  types-aiobotocore-backup,
   types-aiobotocore-backupstorage,
   types-aiobotocore-batch,
   types-aiobotocore-billingconductor,
   types-aiobotocore-braket,
   types-aiobotocore-budgets,
   types-aiobotocore-ce,
-  types-aiobotocore-chime,
   types-aiobotocore-chime-sdk-identity,
   types-aiobotocore-chime-sdk-media-pipelines,
   types-aiobotocore-chime-sdk-meetings,
   types-aiobotocore-chime-sdk-messaging,
   types-aiobotocore-chime-sdk-voice,
+  types-aiobotocore-chime,
   types-aiobotocore-cleanrooms,
   types-aiobotocore-cloud9,
   types-aiobotocore-cloudcontrol,
@@ -60,8 +59,8 @@
   types-aiobotocore-cloudhsmv2,
   types-aiobotocore-cloudsearch,
   types-aiobotocore-cloudsearchdomain,
-  types-aiobotocore-cloudtrail,
   types-aiobotocore-cloudtrail-data,
+  types-aiobotocore-cloudtrail,
   types-aiobotocore-cloudwatch,
   types-aiobotocore-codeartifact,
   types-aiobotocore-codebuild,
@@ -72,9 +71,9 @@
   types-aiobotocore-codeguru-security,
   types-aiobotocore-codeguruprofiler,
   types-aiobotocore-codepipeline,
-  types-aiobotocore-codestar,
   types-aiobotocore-codestar-connections,
   types-aiobotocore-codestar-notifications,
+  types-aiobotocore-codestar,
   types-aiobotocore-cognito-identity,
   types-aiobotocore-cognito-idp,
   types-aiobotocore-cognito-sync,
@@ -82,8 +81,8 @@
   types-aiobotocore-comprehendmedical,
   types-aiobotocore-compute-optimizer,
   types-aiobotocore-config,
-  types-aiobotocore-connect,
   types-aiobotocore-connect-contact-lens,
+  types-aiobotocore-connect,
   types-aiobotocore-connectcampaigns,
   types-aiobotocore-connectcases,
   types-aiobotocore-connectparticipant,
@@ -102,17 +101,17 @@
   types-aiobotocore-discovery,
   types-aiobotocore-dlm,
   types-aiobotocore-dms,
-  types-aiobotocore-docdb,
   types-aiobotocore-docdb-elastic,
+  types-aiobotocore-docdb,
   types-aiobotocore-drs,
   types-aiobotocore-ds,
   types-aiobotocore-dynamodb,
   types-aiobotocore-dynamodbstreams,
   types-aiobotocore-ebs,
-  types-aiobotocore-ec2,
   types-aiobotocore-ec2-instance-connect,
-  types-aiobotocore-ecr,
+  types-aiobotocore-ec2,
   types-aiobotocore-ecr-public,
+  types-aiobotocore-ecr,
   types-aiobotocore-ecs,
   types-aiobotocore-efs,
   types-aiobotocore-eks,
@@ -122,15 +121,15 @@
   types-aiobotocore-elastictranscoder,
   types-aiobotocore-elb,
   types-aiobotocore-elbv2,
-  types-aiobotocore-emr,
   types-aiobotocore-emr-containers,
   types-aiobotocore-emr-serverless,
+  types-aiobotocore-emr,
   types-aiobotocore-entityresolution,
   types-aiobotocore-es,
   types-aiobotocore-events,
   types-aiobotocore-evidently,
-  types-aiobotocore-finspace,
   types-aiobotocore-finspace-data,
+  types-aiobotocore-finspace,
   types-aiobotocore-firehose,
   types-aiobotocore-fis,
   types-aiobotocore-fms,
@@ -158,16 +157,16 @@
   types-aiobotocore-inspector,
   types-aiobotocore-inspector2,
   types-aiobotocore-internetmonitor,
-  types-aiobotocore-iot,
   types-aiobotocore-iot-data,
   types-aiobotocore-iot-jobs-data,
   types-aiobotocore-iot-roborunner,
+  types-aiobotocore-iot,
   types-aiobotocore-iot1click-devices,
   types-aiobotocore-iot1click-projects,
   types-aiobotocore-iotanalytics,
   types-aiobotocore-iotdeviceadvisor,
-  types-aiobotocore-iotevents,
   types-aiobotocore-iotevents-data,
+  types-aiobotocore-iotevents,
   types-aiobotocore-iotfleethub,
   types-aiobotocore-iotfleetwise,
   types-aiobotocore-iotsecuretunneling,
@@ -175,19 +174,19 @@
   types-aiobotocore-iotthingsgraph,
   types-aiobotocore-iottwinmaker,
   types-aiobotocore-iotwireless,
-  types-aiobotocore-ivs,
   types-aiobotocore-ivs-realtime,
+  types-aiobotocore-ivs,
   types-aiobotocore-ivschat,
   types-aiobotocore-kafka,
   types-aiobotocore-kafkaconnect,
-  types-aiobotocore-kendra,
   types-aiobotocore-kendra-ranking,
+  types-aiobotocore-kendra,
   types-aiobotocore-keyspaces,
-  types-aiobotocore-kinesis,
   types-aiobotocore-kinesis-video-archived-media,
   types-aiobotocore-kinesis-video-media,
   types-aiobotocore-kinesis-video-signaling,
   types-aiobotocore-kinesis-video-webrtc-storage,
+  types-aiobotocore-kinesis,
   types-aiobotocore-kinesisanalytics,
   types-aiobotocore-kinesisanalyticsv2,
   types-aiobotocore-kinesisvideo,
@@ -198,9 +197,9 @@
   types-aiobotocore-lex-runtime,
   types-aiobotocore-lexv2-models,
   types-aiobotocore-lexv2-runtime,
-  types-aiobotocore-license-manager,
   types-aiobotocore-license-manager-linux-subscriptions,
   types-aiobotocore-license-manager-user-subscriptions,
+  types-aiobotocore-license-manager,
   types-aiobotocore-lightsail,
   types-aiobotocore-location,
   types-aiobotocore-logs,
@@ -211,19 +210,19 @@
   types-aiobotocore-machinelearning,
   types-aiobotocore-macie,
   types-aiobotocore-macie2,
-  types-aiobotocore-managedblockchain,
   types-aiobotocore-managedblockchain-query,
+  types-aiobotocore-managedblockchain,
   types-aiobotocore-marketplace-catalog,
   types-aiobotocore-marketplace-entitlement,
   types-aiobotocore-marketplacecommerceanalytics,
   types-aiobotocore-mediaconnect,
   types-aiobotocore-mediaconvert,
   types-aiobotocore-medialive,
-  types-aiobotocore-mediapackage,
   types-aiobotocore-mediapackage-vod,
+  types-aiobotocore-mediapackage,
   types-aiobotocore-mediapackagev2,
-  types-aiobotocore-mediastore,
   types-aiobotocore-mediastore-data,
+  types-aiobotocore-mediastore,
   types-aiobotocore-mediatailor,
   types-aiobotocore-medical-imaging,
   types-aiobotocore-memorydb,
@@ -252,31 +251,31 @@
   types-aiobotocore-osis,
   types-aiobotocore-outposts,
   types-aiobotocore-panorama,
-  types-aiobotocore-payment-cryptography,
   types-aiobotocore-payment-cryptography-data,
-  types-aiobotocore-personalize,
+  types-aiobotocore-payment-cryptography,
   types-aiobotocore-personalize-events,
   types-aiobotocore-personalize-runtime,
+  types-aiobotocore-personalize,
   types-aiobotocore-pi,
-  types-aiobotocore-pinpoint,
   types-aiobotocore-pinpoint-email,
-  types-aiobotocore-pinpoint-sms-voice,
   types-aiobotocore-pinpoint-sms-voice-v2,
+  types-aiobotocore-pinpoint-sms-voice,
+  types-aiobotocore-pinpoint,
   types-aiobotocore-pipes,
   types-aiobotocore-polly,
   types-aiobotocore-pricing,
   types-aiobotocore-privatenetworks,
   types-aiobotocore-proton,
-  types-aiobotocore-qldb,
   types-aiobotocore-qldb-session,
+  types-aiobotocore-qldb,
   types-aiobotocore-quicksight,
   types-aiobotocore-ram,
   types-aiobotocore-rbin,
-  types-aiobotocore-rds,
   types-aiobotocore-rds-data,
-  types-aiobotocore-redshift,
+  types-aiobotocore-rds,
   types-aiobotocore-redshift-data,
   types-aiobotocore-redshift-serverless,
+  types-aiobotocore-redshift,
   types-aiobotocore-rekognition,
   types-aiobotocore-resiliencehub,
   types-aiobotocore-resource-explorer-2,
@@ -284,23 +283,23 @@
   types-aiobotocore-resourcegroupstaggingapi,
   types-aiobotocore-robomaker,
   types-aiobotocore-rolesanywhere,
-  types-aiobotocore-route53,
   types-aiobotocore-route53-recovery-cluster,
   types-aiobotocore-route53-recovery-control-config,
   types-aiobotocore-route53-recovery-readiness,
+  types-aiobotocore-route53,
   types-aiobotocore-route53domains,
   types-aiobotocore-route53resolver,
   types-aiobotocore-rum,
   types-aiobotocore-s3,
   types-aiobotocore-s3control,
   types-aiobotocore-s3outposts,
-  types-aiobotocore-sagemaker,
   types-aiobotocore-sagemaker-a2i-runtime,
   types-aiobotocore-sagemaker-edge,
   types-aiobotocore-sagemaker-featurestore-runtime,
   types-aiobotocore-sagemaker-geospatial,
   types-aiobotocore-sagemaker-metrics,
   types-aiobotocore-sagemaker-runtime,
+  types-aiobotocore-sagemaker,
   types-aiobotocore-savingsplans,
   types-aiobotocore-scheduler,
   types-aiobotocore-schemas,
@@ -310,32 +309,32 @@
   types-aiobotocore-securitylake,
   types-aiobotocore-serverlessrepo,
   types-aiobotocore-service-quotas,
-  types-aiobotocore-servicecatalog,
   types-aiobotocore-servicecatalog-appregistry,
+  types-aiobotocore-servicecatalog,
   types-aiobotocore-servicediscovery,
   types-aiobotocore-ses,
   types-aiobotocore-sesv2,
   types-aiobotocore-shield,
   types-aiobotocore-signer,
   types-aiobotocore-simspaceweaver,
-  types-aiobotocore-sms,
   types-aiobotocore-sms-voice,
+  types-aiobotocore-sms,
   types-aiobotocore-snow-device-management,
   types-aiobotocore-snowball,
   types-aiobotocore-sns,
   types-aiobotocore-sqs,
-  types-aiobotocore-ssm,
   types-aiobotocore-ssm-contacts,
   types-aiobotocore-ssm-incidents,
   types-aiobotocore-ssm-sap,
-  types-aiobotocore-sso,
+  types-aiobotocore-ssm,
   types-aiobotocore-sso-admin,
   types-aiobotocore-sso-oidc,
+  types-aiobotocore-sso,
   types-aiobotocore-stepfunctions,
   types-aiobotocore-storagegateway,
   types-aiobotocore-sts,
-  types-aiobotocore-support,
   types-aiobotocore-support-app,
+  types-aiobotocore-support,
   types-aiobotocore-swf,
   types-aiobotocore-synthetics,
   types-aiobotocore-textract,
@@ -348,8 +347,8 @@
   types-aiobotocore-verifiedpermissions,
   types-aiobotocore-voice-id,
   types-aiobotocore-vpc-lattice,
-  types-aiobotocore-waf,
   types-aiobotocore-waf-regional,
+  types-aiobotocore-waf,
   types-aiobotocore-wafv2,
   types-aiobotocore-wellarchitected,
   types-aiobotocore-wisdom,
@@ -357,19 +356,21 @@
   types-aiobotocore-worklink,
   types-aiobotocore-workmail,
   types-aiobotocore-workmailmessageflow,
-  types-aiobotocore-workspaces,
   types-aiobotocore-workspaces-web,
+  types-aiobotocore-workspaces,
   types-aiobotocore-xray,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "types-aiobotocore";
-  version = "2.12.3";
+  version = "2.13.0";
   pyproject = true;
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-h1dg3vgjPBYErgj8UKEcckCQuzGZr+VfhAuBS1biJ/M=";
+    pname = "types_aiobotocore";
+    inherit version;
+    hash = "sha256-CDDY60I1eMMIChOCvbSQi7ZsKSo0mlOccNlvjypq3+U=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/types-aiobotocore/update.sh b/pkgs/development/python-modules/types-aiobotocore/update.sh
index 4a5a75123c7c9..2ed7a430402c5 100755
--- a/pkgs/development/python-modules/types-aiobotocore/update.sh
+++ b/pkgs/development/python-modules/types-aiobotocore/update.sh
@@ -1,15 +1,17 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -i bash -p nix-update nixpkgs-fmt
+#!nix-shell -i bash -p nix-update nixfmt curl jq
 
 set -eu -o pipefail
 
 source_file=pkgs/development/python-modules/types-aiobotocore-packages/default.nix
 
-version="2.12.3"
-
 #nix-update python312Packages.types-aiobotocore --commit --build
 
 packages=(
+  types-aiobotocore-accessanalyzer
+  types-aiobotocore-account
+  types-aiobotocore-acm
+  types-aiobotocore-acm-pca
   types-aiobotocore-alexaforbusiness
   types-aiobotocore-amp
   types-aiobotocore-amplify
@@ -138,6 +140,7 @@ packages=(
   types-aiobotocore-frauddetector
   types-aiobotocore-fsx
   types-aiobotocore-gamelift
+  # types-aiobotocore-gamesparks  Obsolete, will be removed soon
   types-aiobotocore-glacier
   types-aiobotocore-globalaccelerator
   types-aiobotocore-glue
@@ -159,7 +162,7 @@ packages=(
   types-aiobotocore-iot
   types-aiobotocore-iot-data
   types-aiobotocore-iot-jobs-data
-  types-aiobotocore-iot-roborunner
+  # types-aiobotocore-iot-roborunner  Obsolete, will be removed soon
   types-aiobotocore-iot1click-devices
   types-aiobotocore-iot1click-projects
   types-aiobotocore-iotanalytics
@@ -207,6 +210,7 @@ packages=(
   types-aiobotocore-lookoutvision
   types-aiobotocore-m2
   types-aiobotocore-machinelearning
+  # types-aiobotocore-macie  Obsolete, will be removed soon
   types-aiobotocore-macie2
   types-aiobotocore-managedblockchain
   types-aiobotocore-managedblockchain-query
@@ -359,21 +363,34 @@ packages=(
   types-aiobotocore-xray
 )
 
+version=$(curl -s https://pypi.org/pypi/types-aiobotocore/json | jq -r '.info.version')
+echo "All types-aiobotocore-* packages will be updated to ${version}"
+
 for package in "${packages[@]}"; do
-  echo "Updating ${package}"
+  echo "Updating ${package} ..."
 
-  url="https://pypi.io/packages/source/t/${package}/${package}-${version}.tar.gz"
+  url="https://pypi.io/packages/source/t/${package}/${package//-/_}-${version}.tar.gz"
   hash=$(nix-prefetch-url --type sha256 $url)
   sri_hash="$(nix hash to-sri --type sha256 $hash)"
+  package_short="${package#types-aiobotocore-}"
 
-  awk -i inplace -v package="$package" -v new_version="$version" -v new_sha256="$sri_hash" '
-    $1 == package {
-      $5 = "\"" new_version "\"";
-      $6 = "\"" new_sha256 "\";";
-    }
-    {print}
-  ' $source_file
+  awk -i inplace -v pkg="$package" -v pkg_short="$package_short" -v ver="$version" -v hash="$sri_hash" '
+  {
+      # If the line contains the package name
+      if ($0 ~ "^\\s*" pkg "\\s*=") {
+          print $0
+          inside_block = 1
+      } else if (inside_block && $0 ~ "buildTypesAiobotocorePackage") {
+          print "    buildTypesAiobotocorePackage \"" "" pkg_short "\" \"" ver "\""
+      } else if (inside_block && $0 ~ "sha256-") {
+          print "      \"" hash "\";"
+          inside_block = 0
+      } else {
+          # Preserve blank lines to honor nixfmt
+          print $0
+      }
+  }' ${source_file}
 
 done
 
-nixpkgs-fmt ${source_file}
+nixfmt ${source_file}
diff --git a/pkgs/development/python-modules/types-awscrt/default.nix b/pkgs/development/python-modules/types-awscrt/default.nix
index a9f1eb3d4614c..112c19286a92b 100644
--- a/pkgs/development/python-modules/types-awscrt/default.nix
+++ b/pkgs/development/python-modules/types-awscrt/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "types-awscrt";
-  version = "0.20.9";
+  version = "0.20.12";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "types_awscrt";
     inherit version;
-    hash = "sha256-ZImKL0okaPZiM8uMKcX2bekHz4C6HvW7E1mu8vgbtSE=";
+    hash = "sha256-C+q93gIF3B2meepGT9P5i1cO9PD8glsVWpdPtRsh6Nk=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/types-pillow/default.nix b/pkgs/development/python-modules/types-pillow/default.nix
index c0c39acaf7ea9..c47eaf243b4b7 100644
--- a/pkgs/development/python-modules/types-pillow/default.nix
+++ b/pkgs/development/python-modules/types-pillow/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "types-pillow";
-  version = "10.2.0.20240415";
+  version = "10.2.0.20240520";
   format = "setuptools";
 
   src = fetchPypi {
     inherit version;
     pname = "types-Pillow";
-    hash = "sha256-3WBYAnY5vNxmuniyKMwl/a5CUkwhUMeMgE2kJ+fnbnA=";
+    hash = "sha256-EwuXkZVGX6HhZ22OgcnHwwMZ6OlbEvrpRejw1SUhMQc=";
   };
 
   # Modules doesn't have tests
diff --git a/pkgs/development/python-modules/types-requests/default.nix b/pkgs/development/python-modules/types-requests/default.nix
index 6cabdc3b89a5e..0d0cc3e6ecb39 100644
--- a/pkgs/development/python-modules/types-requests/default.nix
+++ b/pkgs/development/python-modules/types-requests/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "types-requests";
-  version = "2.31.0.20240406";
+  version = "2.32.0.20240602";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-RCjfM8VQOUXHSz9C6CsYHobse3JGIEGaKWbi3mBM4aE=";
+    hash = "sha256-P5jXu9DdlOvRD/Q6f74gw7hSisrObY76/vC2oYR5PwY=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/typesystem/default.nix b/pkgs/development/python-modules/typesystem/default.nix
index f46c81d24c1e0..9d0b250f35bc6 100644
--- a/pkgs/development/python-modules/typesystem/default.nix
+++ b/pkgs/development/python-modules/typesystem/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "typesystem" ];
 
   meta = with lib; {
-    description = "A type system library for Python";
+    description = "Type system library for Python";
     homepage = "https://github.com/encode/typesystem";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/typing-extensions/default.nix b/pkgs/development/python-modules/typing-extensions/default.nix
index fbe96efda4190..5ee8e67e3794d 100644
--- a/pkgs/development/python-modules/typing-extensions/default.nix
+++ b/pkgs/development/python-modules/typing-extensions/default.nix
@@ -4,6 +4,10 @@
   fetchPypi,
   flit-core,
   pythonOlder,
+
+  # reverse dependencies
+  mashumaro,
+  pydantic,
 }:
 
 buildPythonPackage rec {
@@ -27,6 +31,10 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "typing_extensions" ];
 
+  passthru.tests = {
+    inherit mashumaro pydantic;
+  };
+
   meta = with lib; {
     description = "Backported and Experimental Type Hints for Python";
     changelog = "https://github.com/python/typing_extensions/blob/${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/typing-validation/default.nix b/pkgs/development/python-modules/typing-validation/default.nix
index 3907fd33a81b0..01f9b43b4ba5e 100644
--- a/pkgs/development/python-modules/typing-validation/default.nix
+++ b/pkgs/development/python-modules/typing-validation/default.nix
@@ -46,7 +46,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "typing_validation" ];
 
   meta = with lib; {
-    description = "A simple library for runtime type-checking";
+    description = "Simple library for runtime type-checking";
     homepage = "https://github.com/hashberg-io/typing-validation";
     changelog = "https://github.com/hashberg-io/typing-validation/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/u-msgpack-python/default.nix b/pkgs/development/python-modules/u-msgpack-python/default.nix
index 9c7bb56583c65..3e1935cfd1ddc 100644
--- a/pkgs/development/python-modules/u-msgpack-python/default.nix
+++ b/pkgs/development/python-modules/u-msgpack-python/default.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ unittestCheckHook ];
 
   meta = {
-    description = "A portable, lightweight MessagePack serializer and deserializer written in pure Python";
+    description = "Portable, lightweight MessagePack serializer and deserializer written in pure Python";
     homepage = "https://github.com/vsergeev/u-msgpack-python";
     changelog = "https://github.com/vsergeev/u-msgpack-python/blob/v${version}/CHANGELOG.md";
     license = lib.licenses.mit;
diff --git a/pkgs/development/python-modules/ua-parser/default.nix b/pkgs/development/python-modules/ua-parser/default.nix
index 1130e508f9ba7..fa0dfffdf6b0e 100644
--- a/pkgs/development/python-modules/ua-parser/default.nix
+++ b/pkgs/development/python-modules/ua-parser/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ua_parser" ];
 
   meta = with lib; {
-    description = "A python implementation of the UA Parser";
+    description = "Python implementation of the UA Parser";
     homepage = "https://github.com/ua-parser/uap-python";
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/pkgs/development/python-modules/uamqp/default.nix b/pkgs/development/python-modules/uamqp/default.nix
index 1e49b147a0e2d..0bde984b93e52 100644
--- a/pkgs/development/python-modules/uamqp/default.nix
+++ b/pkgs/development/python-modules/uamqp/default.nix
@@ -99,7 +99,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "uamqp" ];
 
   meta = with lib; {
-    description = "An AMQP 1.0 client library for Python";
+    description = "AMQP 1.0 client library for Python";
     homepage = "https://github.com/Azure/azure-uamqp-python";
     license = licenses.mit;
     maintainers = with maintainers; [ maxwilson ];
diff --git a/pkgs/development/python-modules/uarray/default.nix b/pkgs/development/python-modules/uarray/default.nix
index 57dbc81c632dc..731da3b75fbe3 100644
--- a/pkgs/development/python-modules/uarray/default.nix
+++ b/pkgs/development/python-modules/uarray/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   setuptools,
   setuptools-scm,
   matchpy,
diff --git a/pkgs/development/python-modules/ubelt/default.nix b/pkgs/development/python-modules/ubelt/default.nix
index 93bdde63ae7ed..85764d05986c2 100644
--- a/pkgs/development/python-modules/ubelt/default.nix
+++ b/pkgs/development/python-modules/ubelt/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "ubelt";
-  version = "1.3.5";
+  version = "1.3.6";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "Erotemic";
     repo = "ubelt";
     rev = "refs/tags/v${version}";
-    hash = "sha256-pwqqt5Syag4cO6a93+7ZE3eI61yTZGc+NEu/Y0i1U0k=";
+    hash = "sha256-ygoJqyTscfuZVDGVbrZobZFvlcuF4HavTU65tmhyU+w=";
   };
 
   nativeBuildInputs = [
@@ -62,7 +62,7 @@ buildPythonPackage rec {
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
-    description = "A Python utility library with a stdlib like feel and extra batteries. Paths, Progress, Dicts, Downloads, Caching, Hashing: ubelt makes it easy";
+    description = "Python utility library with a stdlib like feel and extra batteries. Paths, Progress, Dicts, Downloads, Caching, Hashing: ubelt makes it easy";
     homepage = "https://github.com/Erotemic/ubelt";
     changelog = "https://github.com/Erotemic/ubelt/blob/${src.rev}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/ucsmsdk/default.nix b/pkgs/development/python-modules/ucsmsdk/default.nix
index 56dcad45e690e..667ebeca93410 100644
--- a/pkgs/development/python-modules/ucsmsdk/default.nix
+++ b/pkgs/development/python-modules/ucsmsdk/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "ucsmsdk";
-  version = "0.9.17";
+  version = "0.9.18";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "CiscoUcs";
     repo = "ucsmsdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Ejn99MArKZjCHsl81WSHfpWV3Kz/mBrItIa0tPVProU=";
+    hash = "sha256-9LCrjelxx8HxIEiSdsvtvm31XiE11Gnp0suapmo2L5Q=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ueberzug/default.nix b/pkgs/development/python-modules/ueberzug/default.nix
index 9fa1bd6716ca0..633e2d9d7db27 100644
--- a/pkgs/development/python-modules/ueberzug/default.nix
+++ b/pkgs/development/python-modules/ueberzug/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/seebye/ueberzug";
-    description = "An alternative for w3mimgdisplay";
+    description = "Alternative for w3mimgdisplay";
     mainProgram = "ueberzug";
     license = licenses.gpl3;
     maintainers = with maintainers; [ Br1ght0ne ];
diff --git a/pkgs/development/python-modules/ufo2ft/default.nix b/pkgs/development/python-modules/ufo2ft/default.nix
index 8eca7124349ca..af40d6be25039 100644
--- a/pkgs/development/python-modules/ufo2ft/default.nix
+++ b/pkgs/development/python-modules/ufo2ft/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "ufo2ft";
-  version = "3.2.2";
+  version = "3.2.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-5HWhRxKs4KQdC1v0LaLgndgMwtcGKLVz9tYtesdJ8Oo=";
+    hash = "sha256-LkrYKERPJrKsWAYnlJJlybNy93J+uStaHv35jcZpTrU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/uiprotect/default.nix b/pkgs/development/python-modules/uiprotect/default.nix
new file mode 100644
index 0000000000000..77a4f48428d2a
--- /dev/null
+++ b/pkgs/development/python-modules/uiprotect/default.nix
@@ -0,0 +1,93 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  poetry-core,
+
+  # dependencies
+  aiofiles,
+  aiohttp,
+  aioshutil,
+  async-timeout,
+  dateparser,
+  orjson,
+  packaging,
+  pillow,
+  platformdirs,
+  pydantic,
+  pyjwt,
+  rich,
+  typer,
+  yarl,
+
+  # tests
+  aiosqlite,
+  asttokens,
+  ffmpeg,
+  pytest-asyncio,
+  pytest-benchmark,
+  pytest-timeout,
+  pytest-xdist,
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "uiprotect";
+  version = "1.7.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "uilibs";
+    repo = "uiprotect";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-gr+P7V0vsmWha/Di3BGORjssCLz0lsufawzMZKOMYt0=";
+  };
+
+  postPatch = ''
+    sed -i "/addopts =/d" pyproject.toml
+  '';
+
+  build-system = [ poetry-core ];
+
+  dependencies = [
+    aiofiles
+    aiohttp
+    aioshutil
+    async-timeout
+    dateparser
+    orjson
+    packaging
+    pillow
+    platformdirs
+    pydantic
+    pyjwt
+    rich
+    typer
+    yarl
+  ];
+
+  nativeCheckInputs = [
+    aiosqlite
+    asttokens
+    ffmpeg # Required for command ffprobe
+    pytest-asyncio
+    pytest-benchmark
+    pytest-timeout
+    pytest-xdist
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [ "--benchmark-disable" ];
+
+  pythonImportsCheck = [ "uiprotect" ];
+
+  meta = with lib; {
+    description = "Python API for UniFi Protect (Unofficial";
+    homepage = "https://github.com/uilibs/uiprotect";
+    changelog = "https://github.com/uilibs/uiprotect/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/unearth/default.nix b/pkgs/development/python-modules/unearth/default.nix
index 085c5baf6ed0a..e9bb746f7d8e3 100644
--- a/pkgs/development/python-modules/unearth/default.nix
+++ b/pkgs/development/python-modules/unearth/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "unearth";
-  version = "0.15.2";
+  version = "0.15.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-OB8+aWnbCyjZ/C+/shaGBXm/NBvWlUcvLGLivM6ebT0=";
+    hash = "sha256-+9has/2wlvmcgmaiCnV4qPMTCtSfR86osTjACIg7e2E=";
   };
 
   build-system = [ pdm-backend ];
@@ -47,7 +47,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "unearth" ];
 
   meta = with lib; {
-    description = "A utility to fetch and download Python packages";
+    description = "Utility to fetch and download Python packages";
     mainProgram = "unearth";
     homepage = "https://github.com/frostming/unearth";
     changelog = "https://github.com/frostming/unearth/releases/tag/${version}";
diff --git a/pkgs/development/python-modules/unicode-rbnf/default.nix b/pkgs/development/python-modules/unicode-rbnf/default.nix
index 42f37883c9be3..a672feebf5ee5 100644
--- a/pkgs/development/python-modules/unicode-rbnf/default.nix
+++ b/pkgs/development/python-modules/unicode-rbnf/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/rhasspy/unicode-rbnf/blob/v${version}/CHANGELOG.md";
-    description = "A pure Python implementation of ICU's rule-based number format engine";
+    description = "Pure Python implementation of ICU's rule-based number format engine";
     homepage = "https://github.com/rhasspy/unicode-rbnf";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
diff --git a/pkgs/development/python-modules/unidata-blocks/default.nix b/pkgs/development/python-modules/unidata-blocks/default.nix
index 87e04c807a866..63752e22d462a 100644
--- a/pkgs/development/python-modules/unidata-blocks/default.nix
+++ b/pkgs/development/python-modules/unidata-blocks/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/TakWolf/unidata-blocks";
-    description = "A library that helps query unicode blocks by Blocks.txt";
+    description = "Library that helps query unicode blocks by Blocks.txt";
     platforms = lib.platforms.all;
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ h7x4 ];
diff --git a/pkgs/development/python-modules/unidic-lite/default.nix b/pkgs/development/python-modules/unidic-lite/default.nix
index 5551951aa0a17..3152b87253131 100644
--- a/pkgs/development/python-modules/unidic-lite/default.nix
+++ b/pkgs/development/python-modules/unidic-lite/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "unidic_lite" ];
 
   meta = with lib; {
-    description = "A small version of UniDic";
+    description = "Small version of UniDic";
     homepage = "https://github.com/polm/unidic-lite";
     license = licenses.mit;
     maintainers = teams.tts.members;
diff --git a/pkgs/development/python-modules/unifi/default.nix b/pkgs/development/python-modules/unifi/default.nix
index 08075f3f601b8..daebd11ee3c0a 100644
--- a/pkgs/development/python-modules/unifi/default.nix
+++ b/pkgs/development/python-modules/unifi/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "An API towards the Ubiquity Networks UniFi controller";
+    description = "API towards the Ubiquity Networks UniFi controller";
     homepage = "https://pypi.python.org/pypi/unifi/";
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/pkgs/development/python-modules/unique-log-filter/default.nix b/pkgs/development/python-modules/unique-log-filter/default.nix
index 9b4c7502cfb9d..45e86a083dadf 100644
--- a/pkgs/development/python-modules/unique-log-filter/default.nix
+++ b/pkgs/development/python-modules/unique-log-filter/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "unique_log_filter" ];
 
   meta = with lib; {
-    description = "A log filter that removes duplicate log messages";
+    description = "Log filter that removes duplicate log messages";
     homepage = "https://github.com/twizmwazin/unique_log_filter";
     changelog = "https://github.com/twizmwazin/unique_log_filter/releases/tag/v${version}";
     license = licenses.bsd2;
diff --git a/pkgs/development/python-modules/universal-silabs-flasher/default.nix b/pkgs/development/python-modules/universal-silabs-flasher/default.nix
index 56b6f22685ce5..e4b09034d18f3 100644
--- a/pkgs/development/python-modules/universal-silabs-flasher/default.nix
+++ b/pkgs/development/python-modules/universal-silabs-flasher/default.nix
@@ -27,14 +27,14 @@
 
 buildPythonPackage rec {
   pname = "universal-silabs-flasher";
-  version = "0.0.19";
+  version = "0.0.20";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "NabuCasa";
     repo = "universal-silabs-flasher";
     rev = "refs/tags/v${version}";
-    hash = "sha256-VoO9B27CNY2Cnt/Q2HsU6DVYkukQMgbIHc6xqfN0P7w=";
+    hash = "sha256-+wmBsb7zsN6vdNqUvozV317kEZCg1b+lBToRSdN2YM4=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/unrpa/default.nix b/pkgs/development/python-modules/unrpa/default.nix
index a7c959b2250c3..c64443ff66614 100644
--- a/pkgs/development/python-modules/unrpa/default.nix
+++ b/pkgs/development/python-modules/unrpa/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/Lattyware/unrpa";
     changelog = "https://github.com/Lattyware/unrpa/releases/tag/${version}";
-    description = "A program to extract files from the RPA archive format";
+    description = "Program to extract files from the RPA archive format";
     mainProgram = "unrpa";
     license = licenses.gpl3;
     maintainers = with maintainers; [ leo60228 ];
diff --git a/pkgs/development/python-modules/unstructured/default.nix b/pkgs/development/python-modules/unstructured/default.nix
index 8bd41b73b907d..38bfa9ac72087 100644
--- a/pkgs/development/python-modules/unstructured/default.nix
+++ b/pkgs/development/python-modules/unstructured/default.nix
@@ -57,7 +57,7 @@
   grpcio,
 }:
 let
-  version = "0.13.7";
+  version = "0.14.5";
   optional-dependencies = {
     huggingflace = [
       langdetect
@@ -100,7 +100,7 @@ buildPythonPackage {
     owner = "Unstructured-IO";
     repo = "unstructured";
     rev = "refs/tags/${version}";
-    hash = "sha256-Ekfa454mL7isMX79bd/YXPPHnetSzo1Mlg/XJakYyDM=";
+    hash = "sha256-LkzSFIQX9WaffUkQ7JWhK6cZfc7DngLYYOxe1Jl5+gA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/update-checker/default.nix b/pkgs/development/python-modules/update-checker/default.nix
index 2ab3be49010f2..848028378a452 100644
--- a/pkgs/development/python-modules/update-checker/default.nix
+++ b/pkgs/development/python-modules/update-checker/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A python module that will check for package updates";
+    description = "Python module that will check for package updates";
     homepage = "https://github.com/bboe/update_checker";
     license = licenses.bsd2;
   };
diff --git a/pkgs/development/python-modules/update-copyright/default.nix b/pkgs/development/python-modules/update-copyright/default.nix
index 5f33f95d086b6..1ad99b7ff4bd4 100644
--- a/pkgs/development/python-modules/update-copyright/default.nix
+++ b/pkgs/development/python-modules/update-copyright/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "An automatic copyright update tool";
+    description = "Automatic copyright update tool";
     mainProgram = "update-copyright.py";
     homepage = "http://blog.tremily.us/posts/update-copyright";
     license = licenses.gpl3;
diff --git a/pkgs/development/python-modules/uptime-kuma-api/default.nix b/pkgs/development/python-modules/uptime-kuma-api/default.nix
index 8b02737e76b42..7d1e6cb975f6a 100644
--- a/pkgs/development/python-modules/uptime-kuma-api/default.nix
+++ b/pkgs/development/python-modules/uptime-kuma-api/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Python wrapper for the Uptime Kuma Socket.IO API";
+    description = "Python wrapper for the Uptime Kuma Socket.IO API";
     homepage = "https://github.com/lucasheld/uptime-kuma-api";
     changelog = "https://github.com/lucasheld/uptime-kuma-api/blob/${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
diff --git a/pkgs/development/python-modules/uranium/default.nix b/pkgs/development/python-modules/uranium/default.nix
index 27c568516f313..3084b3018a0d0 100644
--- a/pkgs/development/python-modules/uranium/default.nix
+++ b/pkgs/development/python-modules/uranium/default.nix
@@ -55,7 +55,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A Python framework for building Desktop applications";
+    description = "Python framework for building Desktop applications";
     homepage = "https://github.com/Ultimaker/Uranium";
     license = licenses.lgpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/development/python-modules/uri-template/default.nix b/pkgs/development/python-modules/uri-template/default.nix
index d0aa125fcdc61..e37fd44391483 100644
--- a/pkgs/development/python-modules/uri-template/default.nix
+++ b/pkgs/development/python-modules/uri-template/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "uri_template" ];
 
   meta = with lib; {
-    description = "An implementation of RFC 6570 URI Templates";
+    description = "Implementation of RFC 6570 URI Templates";
     homepage = "https://github.com/plinss/uri_template/";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/urwid-mitmproxy/default.nix b/pkgs/development/python-modules/urwid-mitmproxy/default.nix
index f830a99066178..09e28d2839635 100644
--- a/pkgs/development/python-modules/urwid-mitmproxy/default.nix
+++ b/pkgs/development/python-modules/urwid-mitmproxy/default.nix
@@ -2,10 +2,7 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
-  glibcLocales,
   pythonOlder,
-  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/urwid-readline/default.nix b/pkgs/development/python-modules/urwid-readline/default.nix
index 3e1e009aa3828..72e17928a5f0d 100644
--- a/pkgs/development/python-modules/urwid-readline/default.nix
+++ b/pkgs/development/python-modules/urwid-readline/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A textbox edit widget for urwid that supports readline shortcuts";
+    description = "Textbox edit widget for urwid that supports readline shortcuts";
     homepage = "https://github.com/rr-/urwid_readline";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/urwid/default.nix b/pkgs/development/python-modules/urwid/default.nix
index b629fc39c0223..7e8091dac4dab 100644
--- a/pkgs/development/python-modules/urwid/default.nix
+++ b/pkgs/development/python-modules/urwid/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "urwid";
-  version = "2.6.12";
+  version = "2.6.14";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "urwid";
     repo = "urwid";
     rev = "refs/tags/${version}";
-    hash = "sha256-JGX9v/x8c7ayHnxVjC7u4YLs3OvZmTzPNFUfqGCeIRQ=";
+    hash = "sha256-UDYIAAAKmdqtTzV8yn1zkEH0PvOUmVXodxF1ZyubgE0=";
   };
 
   postPatch = ''
@@ -76,7 +76,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "urwid" ];
 
   meta = with lib; {
-    description = "A full-featured console (xterm et al.) user interface library";
+    description = "Full-featured console (xterm et al.) user interface library";
     changelog = "https://github.com/urwid/urwid/releases/tag/${version}";
     downloadPage = "https://github.com/urwid/urwid";
     homepage = "https://urwid.org/";
diff --git a/pkgs/development/python-modules/urwidgets/default.nix b/pkgs/development/python-modules/urwidgets/default.nix
index 248470bd8fe62..4a1bbdd9ff172 100644
--- a/pkgs/development/python-modules/urwidgets/default.nix
+++ b/pkgs/development/python-modules/urwidgets/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "urwidgets" ];
 
   meta = with lib; {
-    description = "A collection of widgets for urwid";
+    description = "Collection of widgets for urwid";
     homepage = "https://github.com/AnonymouX47/urwidgets";
     changelog = "https://github.com/AnonymouX47/urwidgets/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/us/default.nix b/pkgs/development/python-modules/us/default.nix
index 772e2f7360a21..1aa4d2bc8d18a 100644
--- a/pkgs/development/python-modules/us/default.nix
+++ b/pkgs/development/python-modules/us/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "us" ];
 
   meta = with lib; {
-    description = "A package for easily working with US and state metadata";
+    description = "Package for easily working with US and state metadata";
     mainProgram = "states";
     longDescription = ''
       All US states and territories, postal abbreviations, Associated Press style
diff --git a/pkgs/development/python-modules/user-agents/default.nix b/pkgs/development/python-modules/user-agents/default.nix
index 7a0fc42657a0f..1da16e9c68642 100644
--- a/pkgs/development/python-modules/user-agents/default.nix
+++ b/pkgs/development/python-modules/user-agents/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ ua-parser ];
 
   meta = with lib; {
-    description = "A Python library to identify devices by parsing user agent strings";
+    description = "Python library to identify devices by parsing user agent strings";
     homepage = "https://github.com/selwin/python-user-agents";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/development/python-modules/usort/default.nix b/pkgs/development/python-modules/usort/default.nix
index a32ad97cc4658..bfb650c91c0b6 100644
--- a/pkgs/development/python-modules/usort/default.nix
+++ b/pkgs/development/python-modules/usort/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "usort";
-  version = "1.0.7";
+  version = "1.0.8";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "facebook";
     repo = "usort";
     rev = "refs/tags/v${version}";
-    hash = "sha256-emnrghdsUs+VfvYiJExG13SKQNrXAEtGNAJQLScADnw=";
+    hash = "sha256-iezq2K+Rw0djyOoFm7tguw/vkkDSyrPZIfZPmaZvFpM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/uvicorn/default.nix b/pkgs/development/python-modules/uvicorn/default.nix
index 09a1ecdaaf223..48bd9e9ef85ec 100644
--- a/pkgs/development/python-modules/uvicorn/default.nix
+++ b/pkgs/development/python-modules/uvicorn/default.nix
@@ -68,7 +68,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://www.uvicorn.org/";
     changelog = "https://github.com/encode/uvicorn/blob/${src.rev}/CHANGELOG.md";
-    description = "The lightning-fast ASGI server";
+    description = "Lightning-fast ASGI server";
     mainProgram = "uvicorn";
     license = licenses.bsd3;
     maintainers = with maintainers; [ wd15 ];
diff --git a/pkgs/development/python-modules/varint/default.nix b/pkgs/development/python-modules/varint/default.nix
index 5c7426913f829..4430fd84f3182 100644
--- a/pkgs/development/python-modules/varint/default.nix
+++ b/pkgs/development/python-modules/varint/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "varint" ];
 
   meta = with lib; {
-    description = "A basic varint implementation in python";
+    description = "Basic varint implementation in python";
     homepage = "https://github.com/fmoo/python-varint";
     license = licenses.mit;
     maintainers = with maintainers; [ rakesh4g ];
diff --git a/pkgs/development/python-modules/vat-moss/default.nix b/pkgs/development/python-modules/vat-moss/default.nix
index 14115f3eb5d5a..a3fba68a65c0c 100644
--- a/pkgs/development/python-modules/vat-moss/default.nix
+++ b/pkgs/development/python-modules/vat-moss/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python library for dealing with VAT MOSS and Norway VAT on digital services. Includes VAT ID validation, rate calculation based on place of supply, exchange rate and currency tools for invoices";
+    description = "Python library for dealing with VAT MOSS and Norway VAT on digital services. Includes VAT ID validation, rate calculation based on place of supply, exchange rate and currency tools for invoices";
     homepage = "https://github.com/raphaelm/vat_moss-python";
     changelog = "https://github.com/raphaelm/vat_moss-python/blob/${src.rev}/changelog.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/vcard/default.nix b/pkgs/development/python-modules/vcard/default.nix
index df882ae250caf..41fecf60da031 100644
--- a/pkgs/development/python-modules/vcard/default.nix
+++ b/pkgs/development/python-modules/vcard/default.nix
@@ -2,14 +2,19 @@
   buildPythonPackage,
   fetchFromGitLab,
   lib,
+  nix-update-script,
   pytestCheckHook,
   python-dateutil,
   pythonAtLeast,
   pythonOlder,
 }:
-buildPythonPackage rec {
-  pname = "vcard";
+let
   version = "0.15.4";
+in
+buildPythonPackage {
+  inherit version;
+
+  pname = "vcard";
   format = "setuptools";
 
   disabled = pythonOlder "3.8" || pythonAtLeast "3.12";
@@ -27,6 +32,8 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "vcard" ];
 
+  passthru.updateScript = nix-update-script { };
+
   meta = {
     homepage = "https://gitlab.com/engmark/vcard";
     description = "vCard validator, class and utility functions";
diff --git a/pkgs/development/python-modules/vega-datasets/default.nix b/pkgs/development/python-modules/vega-datasets/default.nix
index 323aa20040c2f..09da2c1f0792f 100644
--- a/pkgs/development/python-modules/vega-datasets/default.nix
+++ b/pkgs/development/python-modules/vega-datasets/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
       tag = removeSuffix ".0" "v${version}";
     in
     {
-      description = "A Python package for offline access to vega datasets";
+      description = "Python package for offline access to vega datasets";
       homepage = "https://github.com/altair-viz/vega_datasets";
       changelog = "https://github.com/altair-viz/vega_datasets/blob/${tag}/CHANGES.md";
       license = licenses.mit;
diff --git a/pkgs/development/python-modules/vega/default.nix b/pkgs/development/python-modules/vega/default.nix
index f16347868e486..aa37f746a011e 100644
--- a/pkgs/development/python-modules/vega/default.nix
+++ b/pkgs/development/python-modules/vega/default.nix
@@ -69,7 +69,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "vega" ];
 
   meta = with lib; {
-    description = "An IPython/Jupyter widget for Vega and Vega-Lite";
+    description = "IPython/Jupyter widget for Vega and Vega-Lite";
     longDescription = ''
       To use this you have to enter a nix-shell with vega. Then run:
 
diff --git a/pkgs/development/python-modules/velbus-aio/default.nix b/pkgs/development/python-modules/velbus-aio/default.nix
index f754c828dea3d..d7ba738dd86fd 100644
--- a/pkgs/development/python-modules/velbus-aio/default.nix
+++ b/pkgs/development/python-modules/velbus-aio/default.nix
@@ -5,14 +5,14 @@
   fetchFromGitHub,
   pythonOlder,
   pyserial,
-  pyserial-asyncio,
+  pyserial-asyncio-fast,
   pytestCheckHook,
   setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "velbus-aio";
-  version = "2024.4.1";
+  version = "2024.5.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "Cereal2nd";
     repo = "velbus-aio";
     rev = "refs/tags/${version}";
-    hash = "sha256-rskWnH5zFvBuNL5eJ8O4D6htRP/XtFcq1xH8ZXzT1I4=";
+    hash = "sha256-rOuw1Iw6mGoXNSqxOlBappARzSGIlii03Hd8/3jWiQg=";
     fetchSubmodules = true;
   };
 
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   dependencies = [
     backoff
     pyserial
-    pyserial-asyncio
+    pyserial-asyncio-fast
   ];
 
   nativeCheckInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/venusian/default.nix b/pkgs/development/python-modules/venusian/default.nix
index 8870792aaf5e0..7dd1e7a818f9e 100644
--- a/pkgs/development/python-modules/venusian/default.nix
+++ b/pkgs/development/python-modules/venusian/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A library for deferring decorator actions";
+    description = "Library for deferring decorator actions";
     homepage = "https://pylonsproject.org/";
     license = licenses.bsd0;
     maintainers = with maintainers; [ domenkozar ];
diff --git a/pkgs/development/python-modules/verlib2/default.nix b/pkgs/development/python-modules/verlib2/default.nix
index a98383089f892..178568e87b009 100644
--- a/pkgs/development/python-modules/verlib2/default.nix
+++ b/pkgs/development/python-modules/verlib2/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "verlib2" ];
 
   meta = with lib; {
-    description = "A standalone variant of packaging.version, without anything else";
+    description = "Standalone variant of packaging.version, without anything else";
     homepage = "https://pypi.org/project/verlib2/";
     license = licenses.bsd2;
     maintainers = with maintainers; [ doronbehar ];
diff --git a/pkgs/development/python-modules/veryprettytable/default.nix b/pkgs/development/python-modules/veryprettytable/default.nix
index 3ee7590358137..01ee6b6930cc3 100644
--- a/pkgs/development/python-modules/veryprettytable/default.nix
+++ b/pkgs/development/python-modules/veryprettytable/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A simple Python library for easily displaying tabular data in a visually appealing ASCII table format";
+    description = "Simple Python library for easily displaying tabular data in a visually appealing ASCII table format";
     homepage = "https://github.com/smeggingsmegger/VeryPrettyTable";
     license = licenses.free;
   };
diff --git a/pkgs/development/python-modules/virtualenv/default.nix b/pkgs/development/python-modules/virtualenv/default.nix
index 54b6c320db6f2..97655d743f017 100644
--- a/pkgs/development/python-modules/virtualenv/default.nix
+++ b/pkgs/development/python-modules/virtualenv/default.nix
@@ -83,7 +83,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "virtualenv" ];
 
   meta = with lib; {
-    description = "A tool to create isolated Python environments";
+    description = "Tool to create isolated Python environments";
     mainProgram = "virtualenv";
     homepage = "http://www.virtualenv.org";
     changelog = "https://github.com/pypa/virtualenv/blob/${version}/docs/changelog.rst";
diff --git a/pkgs/development/python-modules/visions/default.nix b/pkgs/development/python-modules/visions/default.nix
new file mode 100644
index 0000000000000..6d3da09118f97
--- /dev/null
+++ b/pkgs/development/python-modules/visions/default.nix
@@ -0,0 +1,70 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pytestCheckHook
+, setuptools
+, attrs
+, imagehash
+, matplotlib
+, multimethod
+, networkx
+, numpy
+, pandas
+, pillow
+, pydot
+, pygraphviz
+, shapely
+}:
+
+buildPythonPackage rec {
+  pname = "visions";
+  version = "0.7.6";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "dylan-profiler";
+    repo = "visions";
+    rev = "5fe9dd0c2a5ada0162a005c880bac5296686a5aa";  # no 0.7.6 tag in github
+    hash = "sha256-SZzDXm+faAvrfSOT0fwwAf9IH7upNybwKxbjw1CrHj8=";
+  };
+
+  nativeBuildInputs = [ setuptools ];
+
+  propagatedBuildInputs = [
+    attrs
+    imagehash
+    multimethod
+    networkx
+    numpy
+    pandas
+  ];
+
+  passthru.optional-dependencies = {
+    type-geometry = [ shapely ];
+    type-image-path = [ imagehash pillow ];
+    plotting = [ matplotlib pydot pygraphviz ];
+  };
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+
+  disabledTestPaths = [
+    # requires running Apache Spark:
+    "tests/spark_/typesets/test_spark_standard_set.py"
+  ];
+
+  pythonImportsCheck = [
+    "visions"
+  ];
+
+  meta = with lib; {
+    description = "Type system for data analysis in Python";
+    homepage = "https://dylan-profiler.github.io/visions";
+    license = licenses.bsdOriginal;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/pkgs/development/python-modules/visitor/default.nix b/pkgs/development/python-modules/visitor/default.nix
index 95e9961303e0d..87c286c8e3425 100644
--- a/pkgs/development/python-modules/visitor/default.nix
+++ b/pkgs/development/python-modules/visitor/default.nix
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/mbr/visitor";
-    description = "A tiny pythonic visitor implementation";
+    description = "Tiny pythonic visitor implementation";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/viv-utils/default.nix b/pkgs/development/python-modules/viv-utils/default.nix
index cc4089cb35afc..59119f85cd2bb 100644
--- a/pkgs/development/python-modules/viv-utils/default.nix
+++ b/pkgs/development/python-modules/viv-utils/default.nix
@@ -13,14 +13,14 @@
 }:
 buildPythonPackage rec {
   pname = "viv-utils";
-  version = "0.7.9";
+  version = "0.7.10";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "williballenthin";
     repo = "viv-utils";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xM3jtA6fNk36+enL/EcQH59CNajYnGlEDu06QXIFz6A=";
+    hash = "sha256-pQAe4QuOcx5MG+slJkf4UU38TGt4pU0uVZr+vtwsWgM=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/vllm/default.nix b/pkgs/development/python-modules/vllm/default.nix
index 8b06a66c1d018..7ccab0a231293 100644
--- a/pkgs/development/python-modules/vllm/default.nix
+++ b/pkgs/development/python-modules/vllm/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   which,
   ninja,
   packaging,
@@ -145,7 +144,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "vllm" ];
 
   meta = with lib; {
-    description = "A high-throughput and memory-efficient inference and serving engine for LLMs";
+    description = "High-throughput and memory-efficient inference and serving engine for LLMs";
     changelog = "https://github.com/vllm-project/vllm/releases/tag/v${version}";
     homepage = "https://github.com/vllm-project/vllm";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/vmprof/default.nix b/pkgs/development/python-modules/vmprof/default.nix
index 667b3dfd166c4..e8b28062a829a 100644
--- a/pkgs/development/python-modules/vmprof/default.nix
+++ b/pkgs/development/python-modules/vmprof/default.nix
@@ -50,7 +50,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "vmprof" ];
 
   meta = with lib; {
-    description = "A vmprof client";
+    description = "Vmprof client";
     mainProgram = "vmprofshow";
     license = licenses.mit;
     homepage = "https://vmprof.readthedocs.org/";
diff --git a/pkgs/development/python-modules/vncdo/default.nix b/pkgs/development/python-modules/vncdo/default.nix
index 34b1dd36027df..76fb2fc98ef54 100644
--- a/pkgs/development/python-modules/vncdo/default.nix
+++ b/pkgs/development/python-modules/vncdo/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "vncdotool" ];
 
   meta = with lib; {
-    description = "A command line VNC client and Python library";
+    description = "Command line VNC client and Python library";
     homepage = "https://github.com/sibson/vncdotool";
     changelog = "https://github.com/sibson/vncdotool/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/vnoise/default.nix b/pkgs/development/python-modules/vnoise/default.nix
new file mode 100644
index 0000000000000..02f917bc17aca
--- /dev/null
+++ b/pkgs/development/python-modules/vnoise/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, numpy
+, pytestCheckHook
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "vnoise";
+  version = "0.1.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "plottertools";
+    repo = "vnoise";
+    rev = version;
+    hash = "sha256-nflAh3vj48wneM0wy/+M+XD6GC63KZEIFb1x4SS46YI=";
+  };
+
+  nativeBuildInputs = [ setuptools ];
+
+  propagatedBuildInputs = [ numpy ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "vnoise" ];
+
+  meta = with lib; {
+    description = "Vectorized, pure-Python Perlin noise library";
+    homepage = "https://github.com/plottertools/vnoise";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/development/python-modules/volatile/default.nix b/pkgs/development/python-modules/volatile/default.nix
index a6ccb842979c8..931980ebc356f 100644
--- a/pkgs/development/python-modules/volatile/default.nix
+++ b/pkgs/development/python-modules/volatile/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "volatile" ];
 
   meta = with lib; {
-    description = "A small extension for the tempfile module";
+    description = "Small extension for the tempfile module";
     homepage = "https://github.com/mbr/volatile";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/pkgs/development/python-modules/voluptuous-openapi/default.nix b/pkgs/development/python-modules/voluptuous-openapi/default.nix
new file mode 100644
index 0000000000000..a1f75cb60b01a
--- /dev/null
+++ b/pkgs/development/python-modules/voluptuous-openapi/default.nix
@@ -0,0 +1,43 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  setuptools,
+
+  # dependencies
+  voluptuous,
+
+  # tests
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "voluptuous-openapi";
+  version = "0.0.4";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "Shulyaka";
+    repo = "voluptuous-openapi";
+    # TODO: https://github.com/Shulyaka/voluptuous-openapi/commit/155f2dd6d55998c41aaafe0aa8a980f78f9e478b#commitcomment-142845137
+    rev = "155f2dd6d55998c41aaafe0aa8a980f78f9e478b";
+    hash = "sha256-ciAaWTltPKT9NzfxWoX6gk1gSMszQjVVimfn/0D+mfg=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [ voluptuous ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "voluptuous_openapi" ];
+
+  meta = with lib; {
+    description = "Convert voluptuous schemas to OpenAPI Schema object";
+    homepage = "https://github.com/Shulyaka/voluptuous-openapi";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/vowpalwabbit/default.nix b/pkgs/development/python-modules/vowpalwabbit/default.nix
index 55ce92388f505..dea16f654e2ee 100644
--- a/pkgs/development/python-modules/vowpalwabbit/default.nix
+++ b/pkgs/development/python-modules/vowpalwabbit/default.nix
@@ -66,7 +66,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "Vowpal Wabbit is a fast machine learning library for online learning, and this is the python wrapper for the project.";
+    description = "Vowpal Wabbit is a fast machine learning library for online learning, and this is the python wrapper for the project";
     homepage = "https://github.com/JohnLangford/vowpal_wabbit";
     license = licenses.bsd3;
     broken = stdenv.isAarch64;
diff --git a/pkgs/development/python-modules/vt-py/default.nix b/pkgs/development/python-modules/vt-py/default.nix
index adaf1ed7feb72..c0d6fa22c952f 100644
--- a/pkgs/development/python-modules/vt-py/default.nix
+++ b/pkgs/development/python-modules/vt-py/default.nix
@@ -3,6 +3,7 @@
   aiohttp,
   buildPythonPackage,
   fetchFromGitHub,
+  flask,
   pytest-asyncio,
   pytest-httpserver,
   pytestCheckHook,
@@ -13,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "vt-py";
-  version = "0.18.2";
+  version = "0.18.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -22,7 +23,7 @@ buildPythonPackage rec {
     owner = "VirusTotal";
     repo = "vt-py";
     rev = "refs/tags/${version}";
-    hash = "sha256-Uspd422JlBKlsD/K7NciYhYUb12wInN/Z7zTw7aYP28=";
+    hash = "sha256-Zu4lUniXfKaZ1SvX3YCzMLa76HgUWpmddV2N9buNS3o=";
   };
 
   postPatch = ''
@@ -39,6 +40,7 @@ buildPythonPackage rec {
   dependencies = [ aiohttp ];
 
   nativeCheckInputs = [
+    flask
     pytest-asyncio
     pytest-httpserver
     pytestCheckHook
diff --git a/pkgs/development/python-modules/vtjp/default.nix b/pkgs/development/python-modules/vtjp/default.nix
index 64060f2023678..cfc0aaf1b9069 100644
--- a/pkgs/development/python-modules/vtjp/default.nix
+++ b/pkgs/development/python-modules/vtjp/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "vasttrafik" ];
 
   meta = with lib; {
-    description = "A Python wrapper and cli for Västtrafik public API";
+    description = "Python wrapper and cli for Västtrafik public API";
     mainProgram = "vtjp";
     homepage = "https://github.com/Miicroo/python-vasttrafik";
     changelog = "https://github.com/Miicroo/python-vasttrafik/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/wagtail-factories/default.nix b/pkgs/development/python-modules/wagtail-factories/default.nix
index 1717f38b49a43..03c2c09a23184 100644
--- a/pkgs/development/python-modules/wagtail-factories/default.nix
+++ b/pkgs/development/python-modules/wagtail-factories/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "wagtail-factories";
-  version = "4.1.0";
+  version = "4.2.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     repo = pname;
     owner = "wagtail";
-    rev = "refs/tags/v${version}";
-    sha256 = "sha256-xNLHJ/8IZt3pzHAzr9swcL6GcIQyIjIFfoeHUW1i76U=";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-jo8VwrmxHBJnORmuR6eTLrf/eupNL2vhXcw81EzfTxM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/wagtail/default.nix b/pkgs/development/python-modules/wagtail/default.nix
index 220e9000f42c8..9a8e33a3d8c10 100644
--- a/pkgs/development/python-modules/wagtail/default.nix
+++ b/pkgs/development/python-modules/wagtail/default.nix
@@ -71,7 +71,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "wagtail" ];
 
   meta = with lib; {
-    description = "A Django content management system focused on flexibility and user experience";
+    description = "Django content management system focused on flexibility and user experience";
     mainProgram = "wagtail";
     homepage = "https://github.com/wagtail/wagtail";
     changelog = "https://github.com/wagtail/wagtail/blob/v${version}/CHANGELOG.txt";
diff --git a/pkgs/development/python-modules/waitress-django/default.nix b/pkgs/development/python-modules/waitress-django/default.nix
index e55be143380c0..9358f20e1a33d 100644
--- a/pkgs/development/python-modules/waitress-django/default.nix
+++ b/pkgs/development/python-modules/waitress-django/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage {
   doCheck = false;
 
   meta = with lib; {
-    description = "A waitress WSGI server serving django";
+    description = "Waitress WSGI server serving django";
     mainProgram = "waitress-serve-django";
     license = licenses.mit;
     maintainers = with maintainers; [ basvandijk ];
diff --git a/pkgs/development/python-modules/wallbox/default.nix b/pkgs/development/python-modules/wallbox/default.nix
index 2f522b0d77c08..e91470ecffe44 100644
--- a/pkgs/development/python-modules/wallbox/default.nix
+++ b/pkgs/development/python-modules/wallbox/default.nix
@@ -5,22 +5,27 @@
   fetchPypi,
   pythonOlder,
   requests,
+  setuptools,
   simplejson,
 }:
 
 buildPythonPackage rec {
   pname = "wallbox";
-  version = "0.6.0";
-  format = "setuptools";
+  version = "0.7.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-COZHMkAbTFZKi/b4e6toC4gPj1MPfGN4aBVi6SglrBI=";
+    hash = "sha256-8taZpC1N5ZsVurh10WosZvg7WDmord+PDfhHpRlfqBE=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
     aenum
     requests
     simplejson
diff --git a/pkgs/development/python-modules/wandb/default.nix b/pkgs/development/python-modules/wandb/default.nix
index bef6acb62ef52..a41f5b94632ad 100644
--- a/pkgs/development/python-modules/wandb/default.nix
+++ b/pkgs/development/python-modules/wandb/default.nix
@@ -297,6 +297,13 @@ buildPythonPackage rec {
     [
       # Timing sensitive
       "test_login_timeout"
+
+      # Tensorflow 2.13 is too old for the current version of keras
+      # ModuleNotFoundError: No module named 'keras.api._v2'
+      "test_saved_model_keras"
+      "test_sklearn_saved_model"
+      "test_pytorch_saved_model"
+      "test_tensorflow_keras_saved_model"
     ]
     ++ lib.optionals stdenv.isDarwin [
       # Disable test that fails on darwin due to issue with python3Packages.psutil:
@@ -310,7 +317,7 @@ buildPythonPackage rec {
   passthru.skipBulkUpdate = true;
 
   meta = with lib; {
-    description = "A CLI and library for interacting with the Weights and Biases API";
+    description = "CLI and library for interacting with the Weights and Biases API";
     homepage = "https://github.com/wandb/wandb";
     changelog = "https://github.com/wandb/wandb/raw/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/wasabi/default.nix b/pkgs/development/python-modules/wasabi/default.nix
index 5641063a91094..5081be3853d57 100644
--- a/pkgs/development/python-modules/wasabi/default.nix
+++ b/pkgs/development/python-modules/wasabi/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "wasabi";
-  version = "1.1.2";
+  version = "1.1.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Gq7zrOqjLtuckTMNKdOTbAw5/blldDVJwXPLVLFsMLU=";
+    hash = "sha256-S7MAjwA4CdsMPii02vIJBuqHGiu0P5kUGX1UD08uCHg=";
   };
 
   nativeCheckInputs = [
@@ -32,8 +32,10 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "wasabi" ];
 
+  __darwinAllowLocalNetworking = true;
+
   meta = with lib; {
-    description = "A lightweight console printing and formatting toolkit";
+    description = "Lightweight console printing and formatting toolkit";
     homepage = "https://github.com/ines/wasabi";
     changelog = "https://github.com/ines/wasabi/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/wasserstein/default.nix b/pkgs/development/python-modules/wasserstein/default.nix
index c4534dcdf5d03..c9a9495b42ef3 100644
--- a/pkgs/development/python-modules/wasserstein/default.nix
+++ b/pkgs/development/python-modules/wasserstein/default.nix
@@ -2,6 +2,7 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+  fetchpatch,
   numpy,
   llvmPackages,
   wurlitzer,
@@ -16,10 +17,17 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "pkomiske";
     repo = "Wasserstein";
-    rev = "89c2d6279a7e0aa3b56bcc8fb7b6009420f2563e"; # https://github.com/pkomiske/Wasserstein/issues/1
+    rev = "v${version}";
     hash = "sha256-s9en6XwvO/WPsF7/+SEmGePHZQgl7zLgu5sEn4nD9YE=";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/thaler-lab/Wasserstein/commit/8667d59dfdf89eabf01f3ae93b23a30a27c21c58.patch";
+      hash = "sha256-jp5updB3E1MYgLhBJwmBMTwBiFXtABMwTxt0G6xhoyA=";
+    })
+  ];
+
   buildInputs = [ llvmPackages.openmp ];
   propagatedBuildInputs = [
     numpy
diff --git a/pkgs/development/python-modules/watchdog-gevent/default.nix b/pkgs/development/python-modules/watchdog-gevent/default.nix
index fb5951a38ce4d..743a523a58653 100644
--- a/pkgs/development/python-modules/watchdog-gevent/default.nix
+++ b/pkgs/development/python-modules/watchdog-gevent/default.nix
@@ -51,7 +51,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "watchdog_gevent" ];
 
   meta = with lib; {
-    description = "A gevent-based observer for watchdog";
+    description = "Gevent-based observer for watchdog";
     homepage = "https://github.com/Bogdanp/watchdog_gevent";
     license = licenses.asl20;
     maintainers = with maintainers; [ traxys ];
diff --git a/pkgs/development/python-modules/watchdog/default.nix b/pkgs/development/python-modules/watchdog/default.nix
index f7879285e19fb..16be1cf5b48ca 100644
--- a/pkgs/development/python-modules/watchdog/default.nix
+++ b/pkgs/development/python-modules/watchdog/default.nix
@@ -4,7 +4,6 @@
   buildPythonPackage,
   CoreServices,
   eventlet,
-  fetchpatch,
   fetchPypi,
   flaky,
   pytest-timeout,
diff --git a/pkgs/development/python-modules/weasel/default.nix b/pkgs/development/python-modules/weasel/default.nix
index be8823a783dd9..244b2e9587ad7 100644
--- a/pkgs/development/python-modules/weasel/default.nix
+++ b/pkgs/development/python-modules/weasel/default.nix
@@ -64,7 +64,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A small and easy workflow system";
+    description = "Small and easy workflow system";
     mainProgram = "weasel";
     homepage = "https://github.com/explosion/weasel/";
     changelog = "https://github.com/explosion/weasel/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/weasyprint/default.nix b/pkgs/development/python-modules/weasyprint/default.nix
index 914da465b54c8..d07a93a3a8b43 100644
--- a/pkgs/development/python-modules/weasyprint/default.nix
+++ b/pkgs/development/python-modules/weasyprint/default.nix
@@ -98,6 +98,5 @@ buildPythonPackage rec {
     mainProgram = "weasyprint";
     homepage = "https://weasyprint.org/";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/weatherflow4py/default.nix b/pkgs/development/python-modules/weatherflow4py/default.nix
new file mode 100644
index 0000000000000..d3dd7c8fd6fb8
--- /dev/null
+++ b/pkgs/development/python-modules/weatherflow4py/default.nix
@@ -0,0 +1,54 @@
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  dataclasses-json,
+  fetchFromGitHub,
+  marshmallow,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  websockets,
+}:
+
+buildPythonPackage rec {
+  pname = "weatherflow4py";
+  version = "0.2.20";
+  pyproject = true;
+
+  disabled = pythonOlder "3.11";
+
+  src = fetchFromGitHub {
+    owner = "jeeftor";
+    repo = "weatherflow4py";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-kkNGhFhciOfhrbjxLM01YC2IRmkdKEbk4EUyDJZJuxU=";
+  };
+
+  build-system = [ poetry-core ];
+
+  dependencies = [
+    aiohttp
+    dataclasses-json
+    marshmallow
+    websockets
+  ];
+
+  nativeCheckInputs = [
+    aioresponses
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "weatherflow4py" ];
+
+  meta = with lib; {
+    description = "Module to interact with the WeatherFlow REST API";
+    homepage = "https://github.com/jeeftor/weatherflow4py";
+    changelog = "https://github.com/jeeftor/weatherflow4py/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/web3/default.nix b/pkgs/development/python-modules/web3/default.nix
index 25b273051e391..49415d090f5c6 100644
--- a/pkgs/development/python-modules/web3/default.nix
+++ b/pkgs/development/python-modules/web3/default.nix
@@ -66,7 +66,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "web3" ];
 
   meta = with lib; {
-    description = "A python interface for interacting with the Ethereum blockchain and ecosystem";
+    description = "Python interface for interacting with the Ethereum blockchain and ecosystem";
     homepage = "https://web3py.readthedocs.io/";
     license = licenses.mit;
     maintainers = with maintainers; [ hellwolf ];
diff --git a/pkgs/development/python-modules/webdataset/default.nix b/pkgs/development/python-modules/webdataset/default.nix
index 9851112649236..fa0e4ff82aa4e 100644
--- a/pkgs/development/python-modules/webdataset/default.nix
+++ b/pkgs/development/python-modules/webdataset/default.nix
@@ -85,7 +85,7 @@ buildPythonPackage rec {
     ];
 
   meta = with lib; {
-    description = "A high-performance Python-based I/O system for large (and small) deep learning problems, with strong support for PyTorch";
+    description = "High-performance Python-based I/O system for large (and small) deep learning problems, with strong support for PyTorch";
     mainProgram = "widsindex";
     homepage = "https://github.com/webdataset/webdataset";
     changelog = "https://github.com/webdataset/webdataset/releases/tag/${version}";
diff --git a/pkgs/development/python-modules/websockify/default.nix b/pkgs/development/python-modules/websockify/default.nix
index 470943793d7b5..fc1b3c7115188 100644
--- a/pkgs/development/python-modules/websockify/default.nix
+++ b/pkgs/development/python-modules/websockify/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "websockify";
-  version = "0.11.0";
+  version = "0.12.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "novnc";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-82Fk9qbiiCD5Rts1d14sK/njeN7DcjKMKPqE7S/1WHs=";
+    hash = "sha256-+qjWmCkXJj8J5OImMSjTwXWyApmJ883NMr0157iqPS4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/webssh/default.nix b/pkgs/development/python-modules/webssh/default.nix
index 53896c039da7f..b18dcd38c2a7e 100644
--- a/pkgs/development/python-modules/webssh/default.nix
+++ b/pkgs/development/python-modules/webssh/default.nix
@@ -18,6 +18,10 @@ buildPythonPackage rec {
     hash = "sha256-mRestRJukaf7ti3vIs/MM/R+zpGmK551j5HAM2chBsE=";
   };
 
+  patches = [
+    ./remove-typo-in-test-case.patch
+  ];
+
   propagatedBuildInputs = [
     paramiko
     tornado
@@ -27,11 +31,6 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "webssh" ];
 
-  disabledTests = [
-    # Test fails with AttributeError (possibly related to paramiko update)
-    "test_app_with_bad_host_key"
-  ];
-
   meta = with lib; {
     description = "Web based SSH client";
     mainProgram = "wssh";
diff --git a/pkgs/development/python-modules/webssh/remove-typo-in-test-case.patch b/pkgs/development/python-modules/webssh/remove-typo-in-test-case.patch
new file mode 100644
index 0000000000000..ac7bd94e5b39b
--- /dev/null
+++ b/pkgs/development/python-modules/webssh/remove-typo-in-test-case.patch
@@ -0,0 +1,18 @@
+---
+ tests/test_handler.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/test_handler.py b/tests/test_handler.py
+index a9ad924..950e672 100644
+--- a/tests/test_handler.py
++++ b/tests/test_handler.py
+@@ -336,5 +336,5 @@ class TestIndexHandler(unittest.TestCase):
+         ssh.exec_command.return_value = (stdin, stdout, stderr)
+ 
+         encoding = IndexHandler.get_default_encoding(handler, ssh)
+-        self.assertEquals("utf-8", encoding)
++        self.assertEqual("utf-8", encoding)
+ 
+-- 
+2.44.0
+
diff --git a/pkgs/development/python-modules/weconnect/default.nix b/pkgs/development/python-modules/weconnect/default.nix
index e653d684d4475..cba91268a5eb1 100644
--- a/pkgs/development/python-modules/weconnect/default.nix
+++ b/pkgs/development/python-modules/weconnect/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "weconnect";
-  version = "0.60.2";
+  version = "0.60.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "tillsteinbach";
     repo = "WeConnect-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-VM4qCe+VMnfKXioUHTjOeBSniwpq44fvbN1k1jG6puk=";
+    hash = "sha256-eIGzcuSKzcpE6UPQKmv0kcFcIFizWOunfOJDHfcw7Yk=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/werkzeug/default.nix b/pkgs/development/python-modules/werkzeug/default.nix
index 49d4f1898f831..43758f06157b5 100644
--- a/pkgs/development/python-modules/werkzeug/default.nix
+++ b/pkgs/development/python-modules/werkzeug/default.nix
@@ -85,7 +85,7 @@ buildPythonPackage rec {
       lib.replaceStrings [ "." ] [ "-" ] version
     }";
     homepage = "https://palletsprojects.com/p/werkzeug/";
-    description = "The comprehensive WSGI web application library";
+    description = "Comprehensive WSGI web application library";
     longDescription = ''
       Werkzeug is a comprehensive WSGI web application library. It
       began as a simple collection of various utilities for WSGI
diff --git a/pkgs/development/python-modules/wheel/default.nix b/pkgs/development/python-modules/wheel/default.nix
index e3df856893b77..754223e49adf6 100644
--- a/pkgs/development/python-modules/wheel/default.nix
+++ b/pkgs/development/python-modules/wheel/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/pypa/wheel";
-    description = "A built-package format for Python";
+    description = "Built-package format for Python";
     mainProgram = "wheel";
     longDescription = ''
       This library is the reference implementation of the Python wheel packaging standard,
diff --git a/pkgs/development/python-modules/wheezy-captcha/default.nix b/pkgs/development/python-modules/wheezy-captcha/default.nix
index 157a659f2fc27..4582ce93a6b4b 100644
--- a/pkgs/development/python-modules/wheezy-captcha/default.nix
+++ b/pkgs/development/python-modules/wheezy-captcha/default.nix
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://wheezycaptcha.readthedocs.io/en/latest/";
-    description = "A lightweight CAPTCHA library";
+    description = "Lightweight CAPTCHA library";
     license = licenses.mit;
     maintainers = with maintainers; [ Flakebi ];
   };
diff --git a/pkgs/development/python-modules/wheezy-template/default.nix b/pkgs/development/python-modules/wheezy-template/default.nix
index 52b3553666f67..506f909afac77 100644
--- a/pkgs/development/python-modules/wheezy-template/default.nix
+++ b/pkgs/development/python-modules/wheezy-template/default.nix
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://wheezytemplate.readthedocs.io/en/latest/";
-    description = "A lightweight template library";
+    description = "Lightweight template library";
     mainProgram = "wheezy.template";
     license = licenses.mit;
     maintainers = with maintainers; [ lilyinstarlight ];
diff --git a/pkgs/development/python-modules/whirlpool-sixth-sense/default.nix b/pkgs/development/python-modules/whirlpool-sixth-sense/default.nix
index b7ee6caf0333b..1a8782fdc4a25 100644
--- a/pkgs/development/python-modules/whirlpool-sixth-sense/default.nix
+++ b/pkgs/development/python-modules/whirlpool-sixth-sense/default.nix
@@ -15,16 +15,16 @@
 
 buildPythonPackage rec {
   pname = "whirlpool-sixth-sense";
-  version = "0.18.8";
+  version = "0.18.9";
   pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.11";
 
   src = fetchFromGitHub {
     owner = "abmantis";
     repo = "whirlpool-sixth-sense";
     rev = "refs/tags/${version}";
-    hash = "sha256-Nmjw6b1k5M4H23tJxUPPJ3JIkuK5ylqEeFp18cGz9pA=";
+    hash = "sha256-aDvUV83o/yKx15kenDGng5xh3LECLVlLWJlVe/y+1Co=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/widgetsnbextension/default.nix b/pkgs/development/python-modules/widgetsnbextension/default.nix
index bd82e62a5e32e..c0a6665a41ce7 100644
--- a/pkgs/development/python-modules/widgetsnbextension/default.nix
+++ b/pkgs/development/python-modules/widgetsnbextension/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "widgetsnbextension";
-  version = "4.0.10";
+  version = "4.0.11";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ZBlsX/O5qRg6jmmaQif7C3AC8lLIFAmOZsTRzQZEaI8=";
+    hash = "sha256-iyKo8ZEL/RiOWW/n/AXcvYfoEMikugEL2z2oZjc5hHQ=";
   };
 
   nativeBuildInputs = [ jupyter-packaging ];
diff --git a/pkgs/development/python-modules/wikipedia/default.nix b/pkgs/development/python-modules/wikipedia/default.nix
index 9db4f12099b77..93d23d7209a76 100644
--- a/pkgs/development/python-modules/wikipedia/default.nix
+++ b/pkgs/development/python-modules/wikipedia/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   unittestFlagsArray = [ "tests/ '*test.py'" ];
 
   meta = with lib; {
-    description = "A Pythonic wrapper for the Wikipedia API";
+    description = "Pythonic wrapper for the Wikipedia API";
     homepage = "https://github.com/goldsmith/Wikipedia";
     changelog = "https://github.com/goldsmith/Wikipedia/blob/master/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/wikitextparser/default.nix b/pkgs/development/python-modules/wikitextparser/default.nix
index ed3642d9ae3e1..df3ecfa5e2dcd 100644
--- a/pkgs/development/python-modules/wikitextparser/default.nix
+++ b/pkgs/development/python-modules/wikitextparser/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/5j9/wikitextparser";
-    description = "A simple parsing tool for MediaWiki's wikitext markup";
+    description = "Simple parsing tool for MediaWiki's wikitext markup";
     changelog = "https://github.com/5j9/wikitextparser/blob/v${version}/CHANGELOG.rst";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ rapiteanu ];
diff --git a/pkgs/development/python-modules/willow/default.nix b/pkgs/development/python-modules/willow/default.nix
index 48306d8ae1939..cc67f380517e3 100644
--- a/pkgs/development/python-modules/willow/default.nix
+++ b/pkgs/development/python-modules/willow/default.nix
@@ -53,7 +53,7 @@ buildPythonPackage rec {
   ] ++ passthru.optional-dependencies.heif;
 
   meta = with lib; {
-    description = "A Python image library that sits on top of Pillow, Wand and OpenCV";
+    description = "Python image library that sits on top of Pillow, Wand and OpenCV";
     homepage = "https://github.com/torchbox/Willow/";
     license = licenses.bsd2;
     maintainers = with maintainers; [ desiderius ];
diff --git a/pkgs/development/python-modules/wled/default.nix b/pkgs/development/python-modules/wled/default.nix
index c8eaedc383403..0836376c679da 100644
--- a/pkgs/development/python-modules/wled/default.nix
+++ b/pkgs/development/python-modules/wled/default.nix
@@ -1,24 +1,26 @@
 {
   lib,
   aiohttp,
+  aresponses,
   awesomeversion,
   backoff,
   buildPythonPackage,
   cachetools,
   fetchFromGitHub,
   poetry-core,
-  yarl,
-  aresponses,
   pytest-asyncio,
   pytest-xdist,
   pytestCheckHook,
   pythonOlder,
+  typer,
+  yarl,
+  zeroconf,
 }:
 
 buildPythonPackage rec {
   pname = "wled";
-  version = "0.17.1";
-  format = "pyproject";
+  version = "0.18.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.11";
 
@@ -26,19 +28,19 @@ buildPythonPackage rec {
     owner = "frenck";
     repo = "python-wled";
     rev = "refs/tags/v${version}";
-    hash = "sha256-9682AbcADhd9m5XrYeDFiX+sJCCe+pnuvntJDnpzJ+U=";
+    hash = "sha256-0BJgbyDhCPFlHxlEry7Rh/j0nv3D3kRhIqCSW+Irhqk=";
   };
 
   postPatch = ''
     # Upstream doesn't set a version for the pyproject.toml
     substituteInPlace pyproject.toml \
-      --replace "0.0.0" "${version}" \
-      --replace "--cov" ""
+      --replace-fail "0.0.0" "${version}" \
+      --replace-fail "--cov" ""
   '';
 
-  nativeBuildInputs = [ poetry-core ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     awesomeversion
     backoff
@@ -46,6 +48,13 @@ buildPythonPackage rec {
     yarl
   ];
 
+  passthru.optional-dependencies = {
+    cli = [
+      typer
+      zeroconf
+    ];
+  };
+
   nativeCheckInputs = [
     aresponses
     pytest-asyncio
diff --git a/pkgs/development/python-modules/wn/default.nix b/pkgs/development/python-modules/wn/default.nix
index 7d159fe192447..822a5740d2dd7 100644
--- a/pkgs/development/python-modules/wn/default.nix
+++ b/pkgs/development/python-modules/wn/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "wn" ];
 
   meta = with lib; {
-    description = "A modern, interlingual wordnet interface for Python";
+    description = "Modern, interlingual wordnet interface for Python";
     homepage = "https://github.com/goodmami/wn";
     changelog = "https://github.com/goodmami/wn/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/woodblock/default.nix b/pkgs/development/python-modules/woodblock/default.nix
index a0ccf59d04643..12c71c8c55a71 100644
--- a/pkgs/development/python-modules/woodblock/default.nix
+++ b/pkgs/development/python-modules/woodblock/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "woodblock" ];
 
   meta = with lib; {
-    description = "A framework to generate file carving test data";
+    description = "Framework to generate file carving test data";
     mainProgram = "woodblock";
     homepage = "https://github.com/fkie-cad/woodblock";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/wordfreq/default.nix b/pkgs/development/python-modules/wordfreq/default.nix
index 4627e2a1e005a..75c00bfea5fa9 100644
--- a/pkgs/development/python-modules/wordfreq/default.nix
+++ b/pkgs/development/python-modules/wordfreq/default.nix
@@ -47,7 +47,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A library for looking up the frequencies of words in many languages, based on many sources of data";
+    description = "Library for looking up the frequencies of words in many languages, based on many sources of data";
     homepage = "https://github.com/rspeer/wordfreq/";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/ws4py/default.nix b/pkgs/development/python-modules/ws4py/default.nix
index 69f04322bdead..fb53253c8c63c 100644
--- a/pkgs/development/python-modules/ws4py/default.nix
+++ b/pkgs/development/python-modules/ws4py/default.nix
@@ -41,7 +41,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ws4py" ];
 
   meta = with lib; {
-    description = "A WebSocket package for Python";
+    description = "WebSocket package for Python";
     homepage = "https://ws4py.readthedocs.org";
     changelog = "https://github.com/Lawouach/WebSocket-for-Python/blob/${version}/CHANGELOG.md";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/wsgitools/default.nix b/pkgs/development/python-modules/wsgitools/default.nix
index 17eb56ec4e2b1..83b33529214d3 100644
--- a/pkgs/development/python-modules/wsgitools/default.nix
+++ b/pkgs/development/python-modules/wsgitools/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     maintainers = with maintainers; [ clkamp ];
-    description = "A set of tools working with WSGI";
+    description = "Set of tools working with WSGI";
     longDescription = ''
       wsgitools is a set of tools working with WSGI (see PEP 333). It
       includes classes for filtering content, middlewares for caching,
diff --git a/pkgs/development/python-modules/wtforms/default.nix b/pkgs/development/python-modules/wtforms/default.nix
index 50a88ece4bfac..4712aefbed07a 100644
--- a/pkgs/development/python-modules/wtforms/default.nix
+++ b/pkgs/development/python-modules/wtforms/default.nix
@@ -52,7 +52,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "wtforms" ];
 
   meta = with lib; {
-    description = "A flexible forms validation and rendering library for Python";
+    description = "Flexible forms validation and rendering library for Python";
     homepage = "https://github.com/wtforms/wtforms";
     changelog = "https://github.com/wtforms/wtforms/blob/${version}/CHANGES.rst";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/wyoming/default.nix b/pkgs/development/python-modules/wyoming/default.nix
index 422ba89917d90..bc1eb85ab3ba0 100644
--- a/pkgs/development/python-modules/wyoming/default.nix
+++ b/pkgs/development/python-modules/wyoming/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "wyoming";
-  version = "1.5.3";
+  version = "1.5.4";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "rhasspy";
     repo = "wyoming";
     rev = "refs/tags/${version}";
-    hash = "sha256-SOPkvFMjoDQiWVP39+1Cx4fFmPH8wcBhZhaKapdZaeA=";
+    hash = "sha256-gx9IbFkwR5fiFFAZTiQKzBbVBJ/RYz29sztgbvAEeRQ=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/xapp/default.nix b/pkgs/development/python-modules/xapp/default.nix
index c1f1973957de7..631857b89d5b2 100644
--- a/pkgs/development/python-modules/xapp/default.nix
+++ b/pkgs/development/python-modules/xapp/default.nix
@@ -16,15 +16,15 @@
 
 buildPythonPackage rec {
   pname = "xapp";
-  version = "22";
+  version = "2.4.2";
 
   format = "other";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "python-xapp";
-    rev = "refs/tags/master.mint${version}";
-    hash = "sha256-2Gx85y0ARu6EfDYAT9ZL154RH0R1HY78tm3rceODnZU=";
+    rev = version;
+    hash = "sha256-Gbm4YT9ZyrROOAbKz5xYd9J9YG9cUL2Oo6dDCPciaBs=";
   };
 
   nativeBuildInputs = [
@@ -42,25 +42,22 @@ buildPythonPackage rec {
   ];
 
   postPatch = ''
-    substituteInPlace "xapp/os.py" --replace "/usr/bin/pkexec" "${polkit}/bin/pkexec"
-  '';
-
-  postInstall = ''
-    # This is typically set by pipInstallHook/eggInstallHook,
-    # so we have to do so manually when using meson.
-    # https://github.com/NixOS/nixpkgs/issues/175227
-    export PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH
+    substituteInPlace "xapp/os.py" \
+      --replace-fail "/usr/bin/pkexec" "${polkit}/bin/pkexec"
   '';
 
   doCheck = false;
   pythonImportsCheck = [ "xapp" ];
 
-  passthru.updateScript = gitUpdater { ignoredVersions = "^master.*"; };
+  passthru = {
+    updateScript = gitUpdater { ignoredVersions = "^master.*"; };
+    skipBulkUpdate = true; # This should be bumped as part of Cinnamon update.
+  };
 
   meta = with lib; {
     homepage = "https://github.com/linuxmint/python-xapp";
     description = "Cross-desktop libraries and common resources for python";
-    license = licenses.lgpl2;
+    license = licenses.lgpl2Plus;
     platforms = platforms.linux;
     maintainers = teams.cinnamon.members;
   };
diff --git a/pkgs/development/python-modules/xarray-dataclasses/default.nix b/pkgs/development/python-modules/xarray-dataclasses/default.nix
index 2c350bb034726..78de25f5bfbfc 100644
--- a/pkgs/development/python-modules/xarray-dataclasses/default.nix
+++ b/pkgs/development/python-modules/xarray-dataclasses/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "xarray-dataclasses";
-  version = "1.7.0";
+  version = "1.8.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "astropenguin";
     repo = "xarray-dataclasses";
     rev = "refs/tags/v${version}";
-    hash = "sha256-fyRUH6t2+9tsxRQFfJR2EHinYtwCmWeCB77kpmBgdBA=";
+    hash = "sha256-NZBWq1G63yef6h9TjRBfCqPzhaks0Cm7bUCJfIIpmcE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/xcffib/default.nix b/pkgs/development/python-modules/xcffib/default.nix
index 90890581dddc7..eac873777312f 100644
--- a/pkgs/development/python-modules/xcffib/default.nix
+++ b/pkgs/development/python-modules/xcffib/default.nix
@@ -46,7 +46,7 @@ buildPythonPackage rec {
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
-    description = "A drop in replacement for xpyb, an XCB python binding";
+    description = "Drop in replacement for xpyb, an XCB python binding";
     homepage = "https://github.com/tych0/xcffib";
     changelog = "https://github.com/tych0/xcffib/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/xdg-base-dirs/default.nix b/pkgs/development/python-modules/xdg-base-dirs/default.nix
index 35368db2dec70..e65785377a579 100644
--- a/pkgs/development/python-modules/xdg-base-dirs/default.nix
+++ b/pkgs/development/python-modules/xdg-base-dirs/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "An implementation of the XDG Base Directory Specification in Python";
+    description = "Implementation of the XDG Base Directory Specification in Python";
     homepage = "https://github.com/srstevenson/xdg-base-dirs";
     changelog = "https://github.com/srstevenson/xdg-base-dirs/releases/tag/${src.rev}";
     license = licenses.isc;
diff --git a/pkgs/development/python-modules/xdis/default.nix b/pkgs/development/python-modules/xdis/default.nix
index 20169ea57e7a2..ebbad75f84088 100644
--- a/pkgs/development/python-modules/xdis/default.nix
+++ b/pkgs/development/python-modules/xdis/default.nix
@@ -3,9 +3,7 @@
   buildPythonPackage,
   click,
   fetchFromGitHub,
-  fetchpatch,
   pytestCheckHook,
-  pythonAtLeast,
   pythonOlder,
   six,
 }:
diff --git a/pkgs/development/python-modules/xdoctest/default.nix b/pkgs/development/python-modules/xdoctest/default.nix
index 30be646bcf652..686c6e8b765e5 100644
--- a/pkgs/development/python-modules/xdoctest/default.nix
+++ b/pkgs/development/python-modules/xdoctest/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "xdoctest";
-  version = "1.1.3";
+  version = "1.1.5";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "Erotemic";
     repo = "xdoctest";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MOjT8adJoSxigSG2Gy5gqRfYswjUsgbBOV1ZU0LBDN8=";
+    hash = "sha256-lC4xX5V5iasQdR4tkLEvtMe/OjSp6+A7D2QGX6TFY4E=";
   };
 
   nativeBuildInputs = [
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "xdoctest" ];
 
   meta = with lib; {
-    description = "A rewrite of Python's builtin doctest module (with pytest plugin integration) with AST instead of REGEX";
+    description = "Rewrite of Python's builtin doctest module (with pytest plugin integration) with AST instead of REGEX";
     homepage = "https://github.com/Erotemic/xdoctest";
     changelog = "https://github.com/Erotemic/xdoctest/blob/${src.rev}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/xdot/default.nix b/pkgs/development/python-modules/xdot/default.nix
index c77f281ebd501..36c6913a70bd7 100644
--- a/pkgs/development/python-modules/xdot/default.nix
+++ b/pkgs/development/python-modules/xdot/default.nix
@@ -54,7 +54,7 @@ buildPythonPackage rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "An interactive viewer for graphs written in Graphviz's dot";
+    description = "Interactive viewer for graphs written in Graphviz's dot";
     mainProgram = "xdot";
     homepage = "https://github.com/jrfonseca/xdot.py";
     license = licenses.lgpl3Plus;
diff --git a/pkgs/development/python-modules/xhtml2pdf/default.nix b/pkgs/development/python-modules/xhtml2pdf/default.nix
index c6cf902cae78b..fcaee169841f7 100644
--- a/pkgs/development/python-modules/xhtml2pdf/default.nix
+++ b/pkgs/development/python-modules/xhtml2pdf/default.nix
@@ -74,7 +74,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A PDF generator using HTML and CSS";
+    description = "PDF generator using HTML and CSS";
     homepage = "https://github.com/xhtml2pdf/xhtml2pdf";
     changelog = "https://github.com/xhtml2pdf/xhtml2pdf/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/xlwt/default.nix b/pkgs/development/python-modules/xlwt/default.nix
index 67b2de049e873..b47a5c4e3cddb 100644
--- a/pkgs/development/python-modules/xlwt/default.nix
+++ b/pkgs/development/python-modules/xlwt/default.nix
@@ -1,32 +1,46 @@
 {
+  lib,
   buildPythonPackage,
   fetchPypi,
-  nose,
-  lib,
+  pynose,
+  setuptools,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "xlwt";
   version = "1.3.0";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c59912717a9b28f1a3c2a98fd60741014b06b043936dcecbc113eaaada156c88";
+    hash = "sha256-xZkScXqbKPGjwqmP1gdBAUsGsEOTbc7LwRPqqtoVbIg=";
   };
 
-  nativeCheckInputs = [ nose ];
+  build-system = [ setuptools ];
+
+  nativeCheckInputs = [ pynose ];
+
   checkPhase = ''
+    runHook preCheck
+
     nosetests -v
+
+    runHook postCheck
   '';
 
-  meta = {
+  pythonImportsCheck = [ "xlwt" ];
+
+  meta = with lib; {
     description = "Library to create spreadsheet files compatible with MS";
     homepage = "https://github.com/python-excel/xlwt";
-    license = with lib.licenses; [
+    license = with licenses; [
       bsdOriginal
       bsd3
-      lgpl21
+      lgpl21Plus
     ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/xml-marshaller/default.nix b/pkgs/development/python-modules/xml-marshaller/default.nix
index 1b73fe0155955..c56cd4e8130df 100644
--- a/pkgs/development/python-modules/xml-marshaller/default.nix
+++ b/pkgs/development/python-modules/xml-marshaller/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "xml_marshaller" ];
 
   meta = with lib; {
-    description = "This module allows one to marshal simple Python data types into a custom XML format.";
+    description = "This module allows one to marshal simple Python data types into a custom XML format";
     homepage = "https://www.python.org/community/sigs/current/xml-sig/";
     license = licenses.psfl;
     maintainers = with maintainers; [ mazurel ];
diff --git a/pkgs/development/python-modules/xmpppy/default.nix b/pkgs/development/python-modules/xmpppy/default.nix
new file mode 100644
index 0000000000000..648508d354140
--- /dev/null
+++ b/pkgs/development/python-modules/xmpppy/default.nix
@@ -0,0 +1,35 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  gitUpdater,
+  six,
+  setuptools,
+}:
+
+buildPythonPackage rec {
+  pname = "xmpppy";
+  version = "0.7.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "xmpppy";
+    repo = "xmpppy";
+    rev = "refs/tags/${version}";
+    hash = "sha256-SnzIjEWSCdiCtD8bmPTH02JprmZhrABB4HCqtt2RBuk=";
+  };
+
+  dependencies = [ six ];
+
+  build-system = [ setuptools ];
+
+  passthru.updateScript = gitUpdater { };
+
+  meta = with lib; {
+    description = "Python 2/3 implementation of XMPP";
+    homepage = "https://github.com/xmpppy/xmpppy";
+    changelog = "https://github.com/xmpppy/xmpppy/blob/${version}/CHANGES.rst";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ jopejoe1 ];
+  };
+}
diff --git a/pkgs/development/python-modules/xnatpy/default.nix b/pkgs/development/python-modules/xnatpy/default.nix
index bdd69ab8614c4..bd378229c9d32 100644
--- a/pkgs/development/python-modules/xnatpy/default.nix
+++ b/pkgs/development/python-modules/xnatpy/default.nix
@@ -41,7 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://xnat.readthedocs.io";
-    description = "A new XNAT client (distinct from pyxnat) that exposes XNAT objects/functions as Python objects/functions";
+    description = "New XNAT client (distinct from pyxnat) that exposes XNAT objects/functions as Python objects/functions";
     changelog = "https://gitlab.com/radiology/infrastructure/xnatpy/-/blob/${version}/CHANGELOG?ref_type=tags";
     license = licenses.asl20;
     maintainers = with maintainers; [ bcdarwin ];
diff --git a/pkgs/development/python-modules/xpybutil/default.nix b/pkgs/development/python-modules/xpybutil/default.nix
index aefae435af5ed..631cf33a77c27 100644
--- a/pkgs/development/python-modules/xpybutil/default.nix
+++ b/pkgs/development/python-modules/xpybutil/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/BurntSushi/xpybutil";
-    description = "An incomplete xcb-util port plus some extras";
+    description = "Incomplete xcb-util port plus some extras";
     license = licenses.wtfpl;
     maintainers = with maintainers; [ artturin ];
   };
diff --git a/pkgs/development/python-modules/xrootd/default.nix b/pkgs/development/python-modules/xrootd/default.nix
index cfba619fcf1ca..33b42f9f0f350 100644
--- a/pkgs/development/python-modules/xrootd/default.nix
+++ b/pkgs/development/python-modules/xrootd/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "The XRootD central repository";
+    description = "XRootD central repository";
     homepage = "https://github.com/xrootd/xrootd";
     changelog = "https://github.com/xrootd/xrootd/releases/tag/v${version}";
     license = licenses.gpl3Only;
diff --git a/pkgs/development/python-modules/xtensor-python/default.nix b/pkgs/development/python-modules/xtensor-python/default.nix
index 2467bac97096f..14d063a802d6a 100644
--- a/pkgs/development/python-modules/xtensor-python/default.nix
+++ b/pkgs/development/python-modules/xtensor-python/default.nix
@@ -13,20 +13,24 @@
 toPythonModule (
   stdenv.mkDerivation (finalAttrs: {
     pname = "xtensor-python";
-    version = "0.26.1";
+    version = "0.27.0";
 
     src = fetchFromGitHub {
       owner = "xtensor-stack";
       repo = "xtensor-python";
       rev = finalAttrs.version;
-      sha256 = "sha256-kLFt5Ah5/ZO6wfTZQviVXeIAVok+/F/XCwpgPSagOMo=";
+      hash = "sha256-Cy/aXuiriE/qxSd4Apipzak30DjgE7jX8ai1ThJ/VnE=";
     };
 
     nativeBuildInputs = [ cmake ];
     buildInputs = [ pybind11 ];
     nativeCheckInputs = [ gtest ];
     doCheck = true;
-    cmakeFlags = [ "-DBUILD_TESTS=${if finalAttrs.finalPackage.doCheck then "ON" else "OFF"}" ];
+    cmakeFlags = [
+      # Always build the tests, even if not running them, because testing whether
+      # they can be built is a test in itself.
+      "-DBUILD_TESTS=ON"
+    ];
 
     propagatedBuildInputs = [
       xtensor
diff --git a/pkgs/development/python-modules/xyzservices/default.nix b/pkgs/development/python-modules/xyzservices/default.nix
index 5d9e1d4d48e1d..1e808d5875376 100644
--- a/pkgs/development/python-modules/xyzservices/default.nix
+++ b/pkgs/development/python-modules/xyzservices/default.nix
@@ -12,7 +12,7 @@
 buildPythonPackage rec {
   pname = "xyzservices";
   version = "2024.4.0";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
@@ -24,9 +24,9 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  disabledTests = [
+  pytestFlagsArray = [
     # requires network connections
-    "test_free_providers"
+    "-m 'not request'"
   ];
 
   pythonImportsCheck = [ "xyzservices.providers" ];
@@ -37,11 +37,11 @@ buildPythonPackage rec {
     requests
   ];
 
-  meta = with lib; {
+  meta = {
     changelog = "https://github.com/geopandas/xyzservices/releases/tag/${version}";
     description = "Source of XYZ tiles providers";
     homepage = "https://github.com/geopandas/xyzservices";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+    license = lib.licenses.bsd3;
+    maintainers = lib.teams.geospatial.members;
   };
 }
diff --git a/pkgs/development/python-modules/yalexs/default.nix b/pkgs/development/python-modules/yalexs/default.nix
index 88b13859455dc..f3ee1d05772da 100644
--- a/pkgs/development/python-modules/yalexs/default.nix
+++ b/pkgs/development/python-modules/yalexs/default.nix
@@ -14,12 +14,13 @@
   pythonOlder,
   requests,
   requests-mock,
-  setuptools,
+  poetry-core,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "yalexs";
-  version = "3.1.0";
+  version = "6.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -28,16 +29,15 @@ buildPythonPackage rec {
     owner = "bdraco";
     repo = "yalexs";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+Sn+d6CuxIUEDLkDvcq7OT3AumElJFfWCwM02LPIeyg=";
+    hash = "sha256-xBBO0cXdOzt2ioMQzzdtSKB0WxOZBIb4PsiKoRrUUSc=";
   };
 
   postPatch = ''
-    # Not used requirement
-    substituteInPlace setup.py \
-      --replace-fail '"vol",' ""
+    substituteInPlace pyproject.toml \
+      --replace-fail "-v -Wdefault --cov=yalexs --cov-report=term-missing:skip-covered" ""
   '';
 
-  build-system = [ setuptools ];
+  build-system = [ poetry-core ];
 
   dependencies = [
     aiofiles
@@ -47,6 +47,7 @@ buildPythonPackage rec {
     pyjwt
     python-dateutil
     requests
+    typing-extensions
   ];
 
   # aiounittest is not supported on 3.12
diff --git a/pkgs/development/python-modules/yamale/default.nix b/pkgs/development/python-modules/yamale/default.nix
index b02cec6577cf3..87f27046f8aab 100644
--- a/pkgs/development/python-modules/yamale/default.nix
+++ b/pkgs/development/python-modules/yamale/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "yamale" ];
 
   meta = with lib; {
-    description = "A schema and validator for YAML";
+    description = "Schema and validator for YAML";
     homepage = "https://github.com/23andMe/Yamale";
     changelog = "https://github.com/23andMe/Yamale/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/yamllint/default.nix b/pkgs/development/python-modules/yamllint/default.nix
index 5784413e45e32..3a93c13a820a2 100644
--- a/pkgs/development/python-modules/yamllint/default.nix
+++ b/pkgs/development/python-modules/yamllint/default.nix
@@ -48,7 +48,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "yamllint" ];
 
   meta = with lib; {
-    description = "A linter for YAML files";
+    description = "Linter for YAML files";
     mainProgram = "yamllint";
     homepage = "https://github.com/adrienverge/yamllint";
     changelog = "https://github.com/adrienverge/yamllint/blob/v${version}/CHANGELOG.rst";
diff --git a/pkgs/development/python-modules/yamlloader/default.nix b/pkgs/development/python-modules/yamlloader/default.nix
index e7f586266b9ee..c84cfe202c25b 100644
--- a/pkgs/development/python-modules/yamlloader/default.nix
+++ b/pkgs/development/python-modules/yamlloader/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A case-insensitive list for Python";
+    description = "Case-insensitive list for Python";
     homepage = "https://github.com/Phynix/yamlloader";
     changelog = "https://github.com/Phynix/yamlloader/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/yara-python/default.nix b/pkgs/development/python-modules/yara-python/default.nix
index ae1b88bec239b..fb894f05c22af 100644
--- a/pkgs/development/python-modules/yara-python/default.nix
+++ b/pkgs/development/python-modules/yara-python/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "yara-python";
-  version = "4.5.0";
+  version = "4.5.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,18 +18,18 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "VirusTotal";
     repo = "yara-python";
-    rev = "v${version}";
-    hash = "sha256-RcrzzJQdzn+BXEp5M3ziGL6qSgfUN3wJ3JxwgjzVeuk=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-P+OQljzp+ZwVOXAgJqK7GNrqBep40MyVtMKDtT4ZUr8=";
   };
 
   # undefined symbol: yr_finalize
   # https://github.com/VirusTotal/yara-python/issues/7
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "include_dirs=['yara/libyara/include', 'yara/libyara/', '.']" "libraries = ['yara']"
+      --replace-fail "include_dirs=['yara/libyara/include', 'yara/libyara/', '.']" "libraries = ['yara']"
   '';
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
   buildInputs = [ yara ];
 
@@ -44,7 +44,8 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python interface for YARA";
     homepage = "https://github.com/VirusTotal/yara-python";
-    license = with licenses; [ asl20 ];
+    changelog = "https://github.com/VirusTotal/yara-python/releases/tag/v${version}";
+    license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/yaramod/default.nix b/pkgs/development/python-modules/yaramod/default.nix
index 63c4e14ba8142..477f5d776c906 100644
--- a/pkgs/development/python-modules/yaramod/default.nix
+++ b/pkgs/development/python-modules/yaramod/default.nix
@@ -21,7 +21,7 @@ let
 in
 buildPythonPackage rec {
   pname = "yaramod";
-  version = "3.21.0";
+  version = "3.22.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "avast";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-YkMDoFwWPrDhAgDnPpNCU1NlnAPhwYQF/KFaRFn+juQ=";
+    hash = "sha256-WyMMcKKBNnEb0tyE2EjOspgJve6NJZg9HxymovBy/u4=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/yarg/default.nix b/pkgs/development/python-modules/yarg/default.nix
index d14001935a4a9..9d8bf12c77f57 100644
--- a/pkgs/development/python-modules/yarg/default.nix
+++ b/pkgs/development/python-modules/yarg/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "An easy to use PyPI client";
+    description = "Easy to use PyPI client";
     homepage = "https://yarg.readthedocs.io";
     license = licenses.mit;
     maintainers = with maintainers; [ psyanticy ];
diff --git a/pkgs/development/python-modules/yasi/default.nix b/pkgs/development/python-modules/yasi/default.nix
index 4e9ddb82f180c..1c2fc835be579 100644
--- a/pkgs/development/python-modules/yasi/default.nix
+++ b/pkgs/development/python-modules/yasi/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "yasi" ];
 
   meta = with lib; {
-    description = "A dialect-aware s-expression indenter written in Python and newLISP";
+    description = "Dialect-aware s-expression indenter written in Python and newLISP";
     mainProgram = "yasi";
     homepage = "https://github.com/nkmathew/yasi-sexp-indenter";
     changelog = "https://github.com/nkmathew/yasi-sexp-indenter/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/ydata-profiling/default.nix b/pkgs/development/python-modules/ydata-profiling/default.nix
new file mode 100644
index 0000000000000..8ad3ac1967142
--- /dev/null
+++ b/pkgs/development/python-modules/ydata-profiling/default.nix
@@ -0,0 +1,103 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pytestCheckHook
+, dacite
+, htmlmin
+, imagehash
+, jinja2
+, matplotlib
+, multimethod
+, numba
+, numpy
+, pandas
+, phik
+, pyarrow
+, pydantic
+, pyyaml
+, requests
+, scipy
+, seaborn
+, statsmodels
+, tqdm
+, typeguard
+, visions
+, wordcloud
+}:
+
+buildPythonPackage rec {
+  pname = "ydata-profiling";
+  version = "4.8.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "ydataai";
+    repo = pname;
+    rev = "refs/tags/${version}";
+    hash = "sha256-tMwhoVnn65EvZK5NBvh/G36W8tH7I9qaL+NTK3IZVdI=";
+  };
+
+  preBuild = ''
+    echo ${version} > VERSION
+  '';
+
+  propagatedBuildInputs = [
+    dacite
+    htmlmin
+    imagehash
+    jinja2
+    matplotlib
+    multimethod
+    numba
+    numpy
+    pandas
+    phik
+    pydantic
+    pyyaml
+    requests
+    scipy
+    seaborn
+    statsmodels
+    tqdm
+    typeguard
+    visions
+    wordcloud
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    pyarrow
+  ];
+  disabledTestPaths = [
+    # needs Spark:
+    "tests/backends/spark_backend"
+    # try to download data:
+    "tests/issues"
+    "tests/unit/test_console.py"
+    "tests/unit/test_dataset_schema.py"
+    "tests/unit/test_modular.py"
+  ];
+  disabledTests = [
+    # try to download data:
+    "test_decorator"
+    "test_example"
+    "test_load"
+    "test_urls"
+  ];
+
+  pythonImportsCheck = [
+    "ydata_profiling"
+  ];
+
+  meta = with lib; {
+    description = "Create HTML profiling reports from Pandas DataFrames";
+    homepage = "https://ydata-profiling.ydata.ai";
+    changelog = "https://github.com/ydataai/ydata-profiling/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ bcdarwin ];
+    mainProgram = "ydata_profiling";
+  };
+}
diff --git a/pkgs/development/python-modules/yfinance/default.nix b/pkgs/development/python-modules/yfinance/default.nix
index bc270fbb8e65d..eb454cd9a4dc6 100644
--- a/pkgs/development/python-modules/yfinance/default.nix
+++ b/pkgs/development/python-modules/yfinance/default.nix
@@ -1,6 +1,5 @@
 {
   lib,
-  appdirs,
   beautifulsoup4,
   buildPythonPackage,
   cryptography,
@@ -12,14 +11,19 @@
   numpy,
   pandas,
   peewee,
+  platformdirs,
   pythonOlder,
+  pytz,
+  requests-cache,
+  requests-ratelimiter,
   requests,
+  scipy,
   setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "yfinance";
-  version = "0.2.38";
+  version = "0.2.40";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -28,13 +32,12 @@ buildPythonPackage rec {
     owner = "ranaroussi";
     repo = "yfinance";
     rev = "refs/tags/${version}";
-    hash = "sha256-ZGwtu2vLcE9pM73umhnFwSzjQnGjTOTtVF607ox7I6E=";
+    hash = "sha256-y3vcgPhksW8g0WpqVgJej7s+aIj9zaAjBjSm8d7yrjs=";
   };
 
   build-system = [ setuptools ];
 
   dependencies = [
-    appdirs
     beautifulsoup4
     cryptography
     frozendict
@@ -44,9 +47,21 @@ buildPythonPackage rec {
     numpy
     pandas
     peewee
+    platformdirs
+    pytz
     requests
   ];
 
+  passthru.optional-dependencies = {
+    nospam = [
+      requests-cache
+      requests-ratelimiter
+    ];
+    repair = [
+      scipy
+    ];
+  };
+
   # Tests require internet access
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/youless-api/default.nix b/pkgs/development/python-modules/youless-api/default.nix
index 5c923e0bb3130..d331e4f1771e5 100644
--- a/pkgs/development/python-modules/youless-api/default.nix
+++ b/pkgs/development/python-modules/youless-api/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "youless-api";
-  version = "1.1.1";
+  version = "2.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "gjong";
     repo = "youless-python-bridge";
     rev = "refs/tags/${version}";
-    hash = "sha256-J3YRRVcA4LYxuJMi//LJO8Qt8hapJruZGzONODE3SsQ=";
+    hash = "sha256-gygChn5yXuTrVGP82ijKJHcjEuNTu6ZNikc87n8WTrI=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/yowsup/default.nix b/pkgs/development/python-modules/yowsup/default.nix
index 0acf1adc235fa..dfe6cbf51f73b 100644
--- a/pkgs/development/python-modules/yowsup/default.nix
+++ b/pkgs/development/python-modules/yowsup/default.nix
@@ -47,7 +47,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/tgalal/yowsup";
-    description = "The python WhatsApp library";
+    description = "Python WhatsApp library";
     mainProgram = "yowsup-cli";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/ytmusicapi/default.nix b/pkgs/development/python-modules/ytmusicapi/default.nix
index edaae03db7cc6..b2a805bbf2402 100644
--- a/pkgs/development/python-modules/ytmusicapi/default.nix
+++ b/pkgs/development/python-modules/ytmusicapi/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "ytmusicapi";
-  version = "1.7.1";
+  version = "1.7.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "sigma67";
     repo = "ytmusicapi";
     rev = "refs/tags/${version}";
-    hash = "sha256-HMWb9NScT4rRMFsUXw6TW/T0P1eH0a46OegUZ0JceiE=";
+    hash = "sha256-a2EZ0uUwdP0QNQh9h4TG1lmPXkvrlDziKiUQwYENXwk=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/zarr/default.nix b/pkgs/development/python-modules/zarr/default.nix
index c863b5e624d98..10a2d5e0e4f6c 100644
--- a/pkgs/development/python-modules/zarr/default.nix
+++ b/pkgs/development/python-modules/zarr/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "zarr" ];
 
   meta = with lib; {
-    description = "An implementation of chunked, compressed, N-dimensional arrays for Python";
+    description = "Implementation of chunked, compressed, N-dimensional arrays for Python";
     homepage = "https://github.com/zarr-developers/zarr";
     changelog = "https://github.com/zarr-developers/zarr-python/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/zbaemon/default.nix b/pkgs/development/python-modules/zbaemon/default.nix
index dd9303bcf113c..7cbcc563280ed 100644
--- a/pkgs/development/python-modules/zbaemon/default.nix
+++ b/pkgs/development/python-modules/zbaemon/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A daemon process control library and tools for Unix-based systems";
+    description = "Daemon process control library and tools for Unix-based systems";
     homepage = "https://pypi.python.org/pypi/zdaemon";
     license = licenses.zpl20;
     maintainers = with maintainers; [ goibhniu ];
diff --git a/pkgs/development/python-modules/zcbor/default.nix b/pkgs/development/python-modules/zcbor/default.nix
index fec625f5f0c48..7ff878f490d86 100644
--- a/pkgs/development/python-modules/zcbor/default.nix
+++ b/pkgs/development/python-modules/zcbor/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "zcbor" ];
 
   meta = with lib; {
-    description = "A low footprint CBOR library in the C language (C++ compatible), tailored for use in microcontrollers";
+    description = "Low footprint CBOR library in the C language (C++ compatible), tailored for use in microcontrollers";
     mainProgram = "zcbor";
     homepage = "https://pypi.org/project/zcbor/";
     changelog = "https://github.com/NordicSemiconductor/zcbor/releases/tag/${version}";
diff --git a/pkgs/development/python-modules/zconfig/default.nix b/pkgs/development/python-modules/zconfig/default.nix
index 3fc0d7946757c..ee8eb919c3ebf 100644
--- a/pkgs/development/python-modules/zconfig/default.nix
+++ b/pkgs/development/python-modules/zconfig/default.nix
@@ -14,15 +14,14 @@
 
 buildPythonPackage rec {
   pname = "zconfig";
-  version = "4.0";
+  version = "4.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    pname = "ZConfig";
-    inherit version;
-    hash = "sha256-+NZC+6a6mNCGMb4sH3GtGVfAUf70qj0/ufHgjcYdAVY=";
+    inherit pname version;
+    hash = "sha256-tqed2hV/NpjIdo0s7cJjIW6K8kDTz50JoCpkKREU6yA=";
   };
 
   patches = lib.optional stdenv.hostPlatform.isMusl ./remove-setlocale-test.patch;
diff --git a/pkgs/development/python-modules/zdaemon/default.nix b/pkgs/development/python-modules/zdaemon/default.nix
index 2ea52b0486962..a66424b06ba03 100644
--- a/pkgs/development/python-modules/zdaemon/default.nix
+++ b/pkgs/development/python-modules/zdaemon/default.nix
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "zdaemon" ];
 
   meta = with lib; {
-    description = "A daemon process control library and tools for Unix-based systems";
+    description = "Daemon process control library and tools for Unix-based systems";
     mainProgram = "zdaemon";
     homepage = "https://pypi.python.org/pypi/zdaemon";
     changelog = "https://github.com/zopefoundation/zdaemon/blob/${version}/CHANGES.rst";
diff --git a/pkgs/development/python-modules/zephyr-python-api/default.nix b/pkgs/development/python-modules/zephyr-python-api/default.nix
index 3e14819e52245..9c6b37486336a 100644
--- a/pkgs/development/python-modules/zephyr-python-api/default.nix
+++ b/pkgs/development/python-modules/zephyr-python-api/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/nassauwinter/zephyr-python-api";
-    description = "A set of wrappers for Zephyr Scale (TM4J) REST API";
+    description = "Set of wrappers for Zephyr Scale (TM4J) REST API";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ rapiteanu ];
   };
diff --git a/pkgs/development/python-modules/zeroc-ice/default.nix b/pkgs/development/python-modules/zeroc-ice/default.nix
index f9b62c46603fe..b6b8d56f87d11 100644
--- a/pkgs/development/python-modules/zeroc-ice/default.nix
+++ b/pkgs/development/python-modules/zeroc-ice/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     broken = stdenv.isDarwin;
     homepage = "https://zeroc.com/";
     license = licenses.gpl2;
-    description = "Comprehensive RPC framework with support for Python, C++, .NET, Java, JavaScript and more.";
+    description = "Comprehensive RPC framework with support for Python, C++, .NET, Java, JavaScript and more";
     mainProgram = "slice2py";
     maintainers = with maintainers; [ abbradar ];
   };
diff --git a/pkgs/development/python-modules/zerorpc/default.nix b/pkgs/development/python-modules/zerorpc/default.nix
index 591af2fe6953d..25523376be32b 100644
--- a/pkgs/development/python-modules/zerorpc/default.nix
+++ b/pkgs/development/python-modules/zerorpc/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   doCheck = false; # pypi version doesn't include tests
 
   meta = with lib; {
-    description = "An easy to use, intuitive, and cross-language RPC";
+    description = "Easy to use, intuitive, and cross-language RPC";
     mainProgram = "zerorpc";
     homepage = "https://www.zerorpc.io";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/zha-quirks/default.nix b/pkgs/development/python-modules/zha-quirks/default.nix
index c512dd55bc1f9..9fca32df4185b 100644
--- a/pkgs/development/python-modules/zha-quirks/default.nix
+++ b/pkgs/development/python-modules/zha-quirks/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "zha-quirks";
-  version = "0.0.115";
+  version = "0.0.116";
   pyproject = true;
 
   disabled = pythonOlder "3.12";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "zigpy";
     repo = "zha-device-handlers";
     rev = "refs/tags/${version}";
-    hash = "sha256-qqPBCLYS6yLpK8PzC3atQ73yi15XE3ywIUBVO7JPYVE=";
+    hash = "sha256-dWKIKIN61Y2vSbC7maxe4DoSYsAqeGtyWksnvAc2Pa8=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/zha/default.nix b/pkgs/development/python-modules/zha/default.nix
index 7958be28794c2..f8ba88bdf0c64 100644
--- a/pkgs/development/python-modules/zha/default.nix
+++ b/pkgs/development/python-modules/zha/default.nix
@@ -27,7 +27,7 @@
 
 buildPythonPackage rec {
   pname = "zha";
-  version = "0.0.8";
+  version = "0.0.9";
   pyproject = true;
 
   disabled = pythonOlder "3.12";
@@ -36,7 +36,7 @@ buildPythonPackage rec {
     owner = "zigpy";
     repo = "zha";
     rev = "refs/tags/${version}";
-    hash = "sha256-xOaqwgL8NqB3pHNa6U/wextntI5aMivHLaIhSRqvgRU=";
+    hash = "sha256-wQY355KUsN91y3lgj9k3ceeHb6a0faxiguIFK4ZwPIE=";
   };
 
   postPatch = ''
@@ -47,8 +47,10 @@ buildPythonPackage rec {
 
   pythonRelaxDeps = [
     "bellows"
+    "pyserial-asyncio-fast"
     "universal-silabs-flasher"
     "zha-quirks"
+    "zigpy"
   ];
 
   nativeBuildInputs = [ pythonRelaxDepsHook ];
diff --git a/pkgs/development/python-modules/zict/default.nix b/pkgs/development/python-modules/zict/default.nix
index 057d1e0f4ad19..b2305bc243fdc 100644
--- a/pkgs/development/python-modules/zict/default.nix
+++ b/pkgs/development/python-modules/zict/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Mutable mapping tools.";
+    description = "Mutable mapping tools";
     homepage = "https://github.com/dask/zict";
     license = licenses.bsd3;
     maintainers = with maintainers; [ teh ];
diff --git a/pkgs/development/python-modules/zigpy-xbee/default.nix b/pkgs/development/python-modules/zigpy-xbee/default.nix
index fad394ac26622..0c627694f7d3f 100644
--- a/pkgs/development/python-modules/zigpy-xbee/default.nix
+++ b/pkgs/development/python-modules/zigpy-xbee/default.nix
@@ -51,7 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/zigpy/zigpy-xbee/releases/tag/${version}";
-    description = "A library which communicates with XBee radios for zigpy";
+    description = "Library which communicates with XBee radios for zigpy";
     homepage = "https://github.com/zigpy/zigpy-xbee";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ mvnetbiz ];
diff --git a/pkgs/development/python-modules/zigpy/default.nix b/pkgs/development/python-modules/zigpy/default.nix
index 5e70e78e4dc2c..48455b0a6e94b 100644
--- a/pkgs/development/python-modules/zigpy/default.nix
+++ b/pkgs/development/python-modules/zigpy/default.nix
@@ -26,7 +26,7 @@
 
 buildPythonPackage rec {
   pname = "zigpy";
-  version = "0.64.0";
+  version = "0.64.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     owner = "zigpy";
     repo = "zigpy";
     rev = "refs/tags/${version}";
-    hash = "sha256-4p/CUAZQLiADWzjXMOeYUX0OJgZczHrI2/sVRuXiFSI=";
+    hash = "sha256-9hPJZQfLevV6zl7JvLtCJSspGl87ORlWLXoVJmRcEJU=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/zipfile2/default.nix b/pkgs/development/python-modules/zipfile2/default.nix
index e16a0cc6b25b1..2d611e912c045 100644
--- a/pkgs/development/python-modules/zipfile2/default.nix
+++ b/pkgs/development/python-modules/zipfile2/default.nix
@@ -2,6 +2,7 @@
   buildPythonPackage,
   fetchFromGitHub,
   lib,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -22,8 +23,9 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/cournape/zipfile2";
-    description = "A backwards-compatible improved zipfile class";
+    description = "Backwards-compatible improved zipfile class";
     maintainers = with maintainers; [ genericnerdyusername ];
     license = licenses.psfl;
+    broken = pythonAtLeast "3.12"; # tests are failing because the signature of ZipInfo._decodeExtra changed
   };
 }
diff --git a/pkgs/development/python-modules/zipstream/default.nix b/pkgs/development/python-modules/zipstream/default.nix
deleted file mode 100644
index b48d65cf576ad..0000000000000
--- a/pkgs/development/python-modules/zipstream/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-  lib,
-  buildPythonPackage,
-  fetchPypi,
-  nose,
-}:
-
-buildPythonPackage rec {
-  pname = "zipstream";
-  version = "1.1.4";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "01im5anqdyggmwkigqcjg0qw2a5bnn84h33mfaqjjd69a28lpwif";
-  };
-
-  nativeCheckInputs = [ nose ];
-
-  meta = {
-    description = "A zip archive generator";
-    homepage = "https://github.com/allanlei/python-zipstream";
-    license = lib.licenses.gpl3Plus;
-    maintainers = with lib.maintainers; [ ];
-  };
-}
diff --git a/pkgs/development/python-modules/zlib-ng/default.nix b/pkgs/development/python-modules/zlib-ng/default.nix
index cf75f9fd51ebe..d8c926c4729b0 100644
--- a/pkgs/development/python-modules/zlib-ng/default.nix
+++ b/pkgs/development/python-modules/zlib-ng/default.nix
@@ -56,7 +56,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A drop-in replacement for Python's zlib and gzip modules using zlib-ng";
+    description = "Drop-in replacement for Python's zlib and gzip modules using zlib-ng";
     homepage = "https://github.com/pycompression/python-zlib-ng";
     changelog = "https://github.com/pycompression/python-zlib-ng/blob/${src.rev}/CHANGELOG.rst";
     license = licenses.psfl;
diff --git a/pkgs/development/python-modules/zm-py/default.nix b/pkgs/development/python-modules/zm-py/default.nix
index e1605701d3886..f7cba1ed5d772 100644
--- a/pkgs/development/python-modules/zm-py/default.nix
+++ b/pkgs/development/python-modules/zm-py/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "zoneminder" ];
 
   meta = with lib; {
-    description = "A loose python wrapper around the ZoneMinder REST API";
+    description = "Loose python wrapper around the ZoneMinder REST API";
     homepage = "https://github.com/rohankapoorcom/zm-py";
     changelog = "https://github.com/rohankapoorcom/zm-py/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/zope-contenttype/default.nix b/pkgs/development/python-modules/zope-contenttype/default.nix
index 4e0aeb9350563..d37de16fad17f 100644
--- a/pkgs/development/python-modules/zope-contenttype/default.nix
+++ b/pkgs/development/python-modules/zope-contenttype/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/zopefoundation/zope.contenttype";
-    description = "A utility module for content-type (MIME type) handling";
+    description = "Utility module for content-type (MIME type) handling";
     changelog = "https://github.com/zopefoundation/zope.contenttype/blob/${version}/CHANGES.rst";
     license = licenses.zpl21;
     maintainers = with maintainers; [ goibhniu ];
diff --git a/pkgs/development/python-modules/zope-event/default.nix b/pkgs/development/python-modules/zope-event/default.nix
index b0f2d02c56f98..95a3a7f182755 100644
--- a/pkgs/development/python-modules/zope-event/default.nix
+++ b/pkgs/development/python-modules/zope-event/default.nix
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "An event publishing system";
+    description = "Event publishing system";
     homepage = "https://pypi.org/project/zope.event/";
     license = licenses.zpl20;
     maintainers = with maintainers; [ goibhniu ];
diff --git a/pkgs/development/python-modules/zope-testrunner/default.nix b/pkgs/development/python-modules/zope-testrunner/default.nix
index 5fc0813c9d412..3ba806b9d1192 100644
--- a/pkgs/development/python-modules/zope-testrunner/default.nix
+++ b/pkgs/development/python-modules/zope-testrunner/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   doCheck = false; # custom test modifies sys.path
 
   meta = with lib; {
-    description = "A flexible test runner with layer support";
+    description = "Flexible test runner with layer support";
     mainProgram = "zope-testrunner";
     homepage = "https://pypi.python.org/pypi/zope.testrunner";
     license = licenses.zpl20;
diff --git a/pkgs/development/python-modules/zwave-js-server-python/default.nix b/pkgs/development/python-modules/zwave-js-server-python/default.nix
index a6c1e50e34d39..aed86231442be 100644
--- a/pkgs/development/python-modules/zwave-js-server-python/default.nix
+++ b/pkgs/development/python-modules/zwave-js-server-python/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "zwave-js-server-python";
-  version = "0.55.4";
+  version = "0.56.0";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "home-assistant-libs";
     repo = "zwave-js-server-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-wPvMgQR85yHC0k+ENj+r/ilcxmOipSFGkz8qBRLgPaY=";
+    hash = "sha256-PLXdK8fFwj0D8F/UD3nZUN6AEsxmJAuaOfJac+dN/sI=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python2-modules/configparser/default.nix b/pkgs/development/python2-modules/configparser/default.nix
index 0f3b6e0b49129..5cb0e9cf89617 100644
--- a/pkgs/development/python2-modules/configparser/default.nix
+++ b/pkgs/development/python2-modules/configparser/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "Updated configparser from Python 3.7 for Python 2.6+.";
+    description = "Updated configparser from Python 3.7 for Python 2.6+";
     license = licenses.mit;
     homepage = "https://github.com/jaraco/configparser";
   };
diff --git a/pkgs/development/python2-modules/filelock/default.nix b/pkgs/development/python2-modules/filelock/default.nix
index 401fdf582ffb1..fc787fab1b3e2 100644
--- a/pkgs/development/python2-modules/filelock/default.nix
+++ b/pkgs/development/python2-modules/filelock/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/benediktschmitt/py-filelock";
-    description = "A platform independent file lock for Python";
+    description = "Platform independent file lock for Python";
     license = licenses.unlicense;
     maintainers = with maintainers; [ henkkalkwater ];
   };
diff --git a/pkgs/development/python2-modules/hypothesis/default.nix b/pkgs/development/python2-modules/hypothesis/default.nix
index f1eb403d81096..06dd5930aae30 100644
--- a/pkgs/development/python2-modules/hypothesis/default.nix
+++ b/pkgs/development/python2-modules/hypothesis/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A Python library for property based testing";
+    description = "Python library for property based testing";
     homepage = "https://github.com/HypothesisWorks/hypothesis";
     license = licenses.mpl20;
   };
diff --git a/pkgs/development/python2-modules/pip/default.nix b/pkgs/development/python2-modules/pip/default.nix
index ba78377f5943a..0e5229c588445 100644
--- a/pkgs/development/python2-modules/pip/default.nix
+++ b/pkgs/development/python2-modules/pip/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = {
-    description = "The PyPA recommended tool for installing Python packages";
+    description = "PyPA recommended tool for installing Python packages";
     license = with lib.licenses; [ mit ];
     homepage = "https://pip.pypa.io/";
     priority = 10;
diff --git a/pkgs/development/python2-modules/pyparsing/default.nix b/pkgs/development/python2-modules/pyparsing/default.nix
index 5b61dc0c85b50..8a04747075450 100644
--- a/pkgs/development/python2-modules/pyparsing/default.nix
+++ b/pkgs/development/python2-modules/pyparsing/default.nix
@@ -37,7 +37,7 @@ let
 
     meta = with lib; {
       homepage = "https://github.com/pyparsing/pyparsing";
-      description = "An alternative approach to creating and executing simple grammars, vs. the traditional lex/yacc approach, or the use of regular expressions";
+      description = "Alternative approach to creating and executing simple grammars, vs. the traditional lex/yacc approach, or the use of regular expressions";
       license = licenses.mit;
     };
   };
diff --git a/pkgs/development/python2-modules/scandir/default.nix b/pkgs/development/python2-modules/scandir/default.nix
index e712cca8348d1..9c8396a191d1c 100644
--- a/pkgs/development/python2-modules/scandir/default.nix
+++ b/pkgs/development/python2-modules/scandir/default.nix
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   checkPhase = "${python.interpreter} test/run_tests.py";
 
   meta = with lib; {
-    description = "A better directory iterator and faster os.walk()";
+    description = "Better directory iterator and faster os.walk()";
     homepage = "https://github.com/benhoyt/scandir";
     license = licenses.gpl3;
     maintainers = with maintainers; [ abbradar ];
diff --git a/pkgs/development/python2-modules/wheel/default.nix b/pkgs/development/python2-modules/wheel/default.nix
index 8735a37b21ff7..5831e234fe1e5 100644
--- a/pkgs/development/python2-modules/wheel/default.nix
+++ b/pkgs/development/python2-modules/wheel/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/pypa/wheel";
-    description = "A built-package format for Python";
+    description = "Built-package format for Python";
     longDescription = ''
       This library is the reference implementation of the Python wheel packaging standard,
       as defined in PEP 427.
diff --git a/pkgs/development/r-modules/bioc-annotation-packages.nix b/pkgs/development/r-modules/bioc-annotation-packages.nix
index a681c47f12988..1c0c301df7445 100644
--- a/pkgs/development/r-modules/bioc-annotation-packages.nix
+++ b/pkgs/development/r-modules/bioc-annotation-packages.nix
@@ -4,14 +4,14 @@
 # Rscript generate-r-packages.R bioc-annotation >new && mv new bioc-annotation-packages.nix
 
 { self, derive }:
-let derive2 = derive { biocVersion = "3.18"; };
+let derive2 = derive { biocVersion = "3.19"; };
 in with self; {
   AHCytoBands = derive2 { name="AHCytoBands"; version="0.99.1"; sha256="0svxxhj3mh5gqik45ikcxnlhnma8n1c0rv8pycj2034cb9ms1dbv"; depends=[]; };
-  AHEnsDbs = derive2 { name="AHEnsDbs"; version="1.1.11"; sha256="1mh8aji48a6fad6bd1333qmc3dw7b5hf4v7xw0zhmfbnld64gz0s"; depends=[AnnotationHubData ensembldb]; };
-  AHLRBaseDbs = derive2 { name="AHLRBaseDbs"; version="1.7.0"; sha256="1nbgqv1c3nyhlniqvqdc5cf8kyys323z1ia5jw54hxwi1jdyclfg"; depends=[AnnotationHub]; };
-  AHMeSHDbs = derive2 { name="AHMeSHDbs"; version="1.7.0"; sha256="0hxik2xzvbgv6a936mvax5kyv65drr36r9rf7rlv124jinlbxw82"; depends=[AnnotationHub]; };
+  AHEnsDbs = derive2 { name="AHEnsDbs"; version="1.5.1"; sha256="02gvrlfld6y03gcw7931fplm220dhnhh12xljb0xm6f3inl0vwa6"; depends=[AnnotationHubData ensembldb]; };
+  AHLRBaseDbs = derive2 { name="AHLRBaseDbs"; version="1.8.0"; sha256="038i0338zyqzkvmhxcdiykb0rwa3bzi0vv18j643b1a64bsnvcxi"; depends=[AnnotationHub]; };
+  AHMeSHDbs = derive2 { name="AHMeSHDbs"; version="1.8.0"; sha256="09acd6xipzillw9z68nqqxjxa0hbshclv504na7l2dkhpppx6934"; depends=[AnnotationHub]; };
   AHPathbankDbs = derive2 { name="AHPathbankDbs"; version="0.99.5"; sha256="10wcrglm521xcrfbzc39dkbjvg1pkz0zq70vgnh68akiwmdirp89"; depends=[AnnotationHub]; };
-  AHPubMedDbs = derive2 { name="AHPubMedDbs"; version="1.7.0"; sha256="0a14xjhh95pwnyy4c1vij6p63pmgry8fffx4zbirczzzrxsc9cvp"; depends=[AnnotationHub]; };
+  AHPubMedDbs = derive2 { name="AHPubMedDbs"; version="1.8.0"; sha256="1p9jxs8ci4yv7yi4n86gpg49jigdmw0nrfnm8ls0jxwm0371vm7l"; depends=[AnnotationHub]; };
   AHWikipathwaysDbs = derive2 { name="AHWikipathwaysDbs"; version="0.99.4"; sha256="0vz3p9sx36bwzl9rq0ffh7klbq13pv2yhgjq1cjk7ll8z226c0q4"; depends=[AnnotationHub]; };
   AlphaMissense_v2023_hg19 = derive2 { name="AlphaMissense.v2023.hg19"; version="3.18.2"; sha256="0622yzywf3655rsh1ckmfvx0crm715a227bg5zz5znz7zfnlsl8y"; depends=[AnnotationHub GenomicScores]; };
   AlphaMissense_v2023_hg38 = derive2 { name="AlphaMissense.v2023.hg38"; version="3.18.2"; sha256="080c0282hcls96pd9mjljv2y1y6sy6nhqzlqwl5a2knq1aql4mna"; depends=[AnnotationHub GenomicScores]; };
@@ -133,6 +133,7 @@ in with self; {
   ChemmineDrugs = derive2 { name="ChemmineDrugs"; version="1.0.2"; sha256="0l47ac6lkycmghra2cbcdcxcv47ari8xg6lxpzilvkf4n6ld6064"; depends=[BiocGenerics ChemmineR RSQLite]; };
   DO_db = derive2 { name="DO.db"; version="2.9"; sha256="10bqqa124l61ivzy4mdd3z3ar9a6537qbxw23pc4y9w8a6dwnavn"; depends=[AnnotationDbi]; };
   ENCODExplorerData = derive2 { name="ENCODExplorerData"; version="0.99.5"; sha256="00gfm5l8pxrfs4cw4jlw6n0cz5s31isg69k833n89800v26w3kvh"; depends=[data_table jsonlite RCurl]; };
+  EPICv2manifest = derive2 { name="EPICv2manifest"; version="0.99.7"; sha256="1rskd8zhdxvvf119ngsmr6bzrmabhy5zqdh1w5azcyf4c39svp6k"; depends=[AnnotationHub]; };
   EnsDb_Hsapiens_v75 = derive2 { name="EnsDb.Hsapiens.v75"; version="2.99.0"; sha256="0jx6rf6v0j8yr07q3c1h7s121901dc400nm6xaiv4i7kb5czjn9c"; depends=[ensembldb]; };
   EnsDb_Hsapiens_v79 = derive2 { name="EnsDb.Hsapiens.v79"; version="2.99.0"; sha256="0k94iml0417m3k086d0bzd83fndyb2kn7pimsfzcdmafgy6sxwgg"; depends=[ensembldb]; };
   EnsDb_Hsapiens_v86 = derive2 { name="EnsDb.Hsapiens.v86"; version="2.99.0"; sha256="1gp7xrzddpvmh2vrcp571wyy00skxgxfl39ksj4h0hm1qay0fb2m"; depends=[ensembldb]; };
@@ -151,9 +152,9 @@ in with self; {
   FDb_UCSC_snp137common_hg19 = derive2 { name="FDb.UCSC.snp137common.hg19"; version="1.0.0"; sha256="1q1r7rk29q0zlzxz6fvfy1kjfli6wxzvhvhhfnf3z4ksy5332q63"; depends=[AnnotationDbi GenomicFeatures]; };
   FDb_UCSC_tRNAs = derive2 { name="FDb.UCSC.tRNAs"; version="1.0.1"; sha256="1dymdalx9fzrplxyc0fd9faa4r5jimi7zyry9k65lyz1pabpkwqz"; depends=[AnnotationDbi GenomicFeatures]; };
   GGHumanMethCancerPanelv1_db = derive2 { name="GGHumanMethCancerPanelv1.db"; version="1.4.1"; sha256="0ag1pkbh4mx4aplfrrz1q4f4cl05mczq9pcsfkd1071qk51dcwvx"; depends=[AnnotationDbi AnnotationForge org_Hs_eg_db]; };
-  GO_db = derive2 { name="GO.db"; version="3.18.0"; sha256="0znqa724jvrw2xx696n48lx83kzhivfr7fc9awzgm7nigwg3907m"; depends=[AnnotationDbi]; };
+  GO_db = derive2 { name="GO.db"; version="3.19.1"; sha256="199vk4y069yik7fn25pp73nkhs1vaw9km9rcmm1cirncwm2n0vhg"; depends=[AnnotationDbi]; };
   GeneSummary = derive2 { name="GeneSummary"; version="0.99.6"; sha256="0h6afrjb00afrcw6mwslxp7cmwfzp4qfxh0aa4f41kfjd3cymmp5"; depends=[]; };
-  GenomeInfoDbData = derive2 { name="GenomeInfoDbData"; version="1.2.11"; sha256="1hkvcrp4a2g3yl1h4k5zzj5fhp3d9a1amyn19zr62q9fhj3y47ri"; depends=[]; };
+  GenomeInfoDbData = derive2 { name="GenomeInfoDbData"; version="1.2.12"; sha256="0md3jl5bz4d2wkvf4yra7rydf5dgykrijrdqwwxc7f77l30nsmgp"; depends=[]; };
   GenomicState = derive2 { name="GenomicState"; version="0.99.15"; sha256="1r7z3n6wyrd2cclj5b7sg15wpmjdh9k5b1hjlw7jjx8j384l7l1h"; depends=[AnnotationDbi AnnotationHub bumphunter derfinder GenomeInfoDb GenomicFeatures IRanges org_Hs_eg_db rtracklayer]; };
   HDO_db = derive2 { name="HDO.db"; version="0.99.1"; sha256="14ngyxailmxrbxqqi9m7mchqcvchmbg7zm34i8a927b20s6z4z61"; depends=[AnnotationDbi]; };
   HPO_db = derive2 { name="HPO.db"; version="0.99.2"; sha256="1brzrnafvyh76h8a663gk5lprhixxpi9xi65vwgxwf7jh6yw0was"; depends=[AnnotationDbi AnnotationHub BiocFileCache DBI]; };
@@ -175,9 +176,11 @@ in with self; {
   IlluminaHumanMethylationEPICanno_ilm10b3_hg19 = derive2 { name="IlluminaHumanMethylationEPICanno.ilm10b3.hg19"; version="0.6.0"; sha256="1rdkvbpbz8a8bd9ipycfmgn8a3x519abhwywka21ii9ziv3s6ah6"; depends=[minfi]; };
   IlluminaHumanMethylationEPICanno_ilm10b4_hg19 = derive2 { name="IlluminaHumanMethylationEPICanno.ilm10b4.hg19"; version="0.6.0"; sha256="0687b4k8hwfc18qgdd9ypv1skp37jd204fszba0gmrv3dc92i09c"; depends=[minfi]; };
   IlluminaHumanMethylationEPICmanifest = derive2 { name="IlluminaHumanMethylationEPICmanifest"; version="0.3.0"; sha256="0alhjda5g186z8b1nsmnpfswrlj7prdz8mkwx60wkkl6hkcnk6p3"; depends=[minfi]; };
+  IlluminaHumanMethylationEPICv2anno_20a1_hg38 = derive2 { name="IlluminaHumanMethylationEPICv2anno.20a1.hg38"; version="1.0.0"; sha256="0vp4m3a7qal4d8qc9xaj7z3x484i33ix4c67qlbw0kskdir7rq5a"; depends=[minfi]; };
+  IlluminaHumanMethylationEPICv2manifest = derive2 { name="IlluminaHumanMethylationEPICv2manifest"; version="1.0.0"; sha256="1z4b15x8cai27cqhl2lhl02nx0lv8q5c1774vdvvdajx2hivn77l"; depends=[minfi]; };
   JASPAR2018 = derive2 { name="JASPAR2018"; version="1.1.1"; sha256="1iq5b51ryah2ccdx16yyigfa2jiapcpm94l6vgvd4v7b94jjp8l7"; depends=[]; };
   JASPAR2020 = derive2 { name="JASPAR2020"; version="0.99.10"; sha256="0nrp63z7q2ivv5h87f7inpp2qll2dfgj4227l4rbnzii38a2vfdr"; depends=[]; };
-  JASPAR2022 = derive2 { name="JASPAR2022"; version="0.99.7"; sha256="0sayaxsazcsbwdkisjfmkc01piahkqi9xks3rfj60cf56wrjlbpa"; depends=[BiocFileCache]; };
+  JASPAR2022 = derive2 { name="JASPAR2022"; version="0.99.8"; sha256="0di84aydk5brgdz1qh30fh1jizwd8w1rsz74mw4apv5s8ayryl48"; depends=[BiocFileCache]; };
   JASPAR2024 = derive2 { name="JASPAR2024"; version="0.99.6"; sha256="1l169kwymylqz67fz182fgq22nvg3cg12p2r8drgibs2d72khcpf"; depends=[BiocFileCache]; };
   JazaeriMetaData_db = derive2 { name="JazaeriMetaData.db"; version="3.2.3"; sha256="04lvcmm4ybxkfwgbiwcnpyj6kpbd0gd7jz6ijlbbvv6zdgdmvykb"; depends=[AnnotationDbi org_Hs_eg_db]; };
   LAPOINTE_db = derive2 { name="LAPOINTE.db"; version="3.2.3"; sha256="0960gy5p4ybs5zs6251cgc3nk5a9gsh1nh23gkbkr3gc8jddinfm"; depends=[AnnotationDbi org_Hs_eg_db]; };
@@ -198,7 +201,8 @@ in with self; {
   MafDb_gnomAD_r2_1_hs37d5 = derive2 { name="MafDb.gnomAD.r2.1.hs37d5"; version="3.10.0"; sha256="153dy3lx0islfdkmyik7lxp1w2yzb0bqmia673hlwi4rmvns112h"; depends=[BSgenome GenomeInfoDb GenomicRanges GenomicScores IRanges S4Vectors]; };
   MafDb_gnomADex_r2_1_GRCh38 = derive2 { name="MafDb.gnomADex.r2.1.GRCh38"; version="3.10.0"; sha256="1v0sdjmn9z8gqn4yj4v04zycj3ngr32r04zqmkp6y41hcgdr8lxw"; depends=[BSgenome GenomeInfoDb GenomicRanges GenomicScores IRanges S4Vectors]; };
   MafDb_gnomADex_r2_1_hs37d5 = derive2 { name="MafDb.gnomADex.r2.1.hs37d5"; version="3.10.0"; sha256="0y42ncmilijdxsgqsmskz7gff3il3fdf2kpflknmz1z9kybzaday"; depends=[BSgenome GenomeInfoDb GenomicRanges GenomicScores IRanges S4Vectors]; };
-  MafH5_gnomAD_v3_1_2_GRCh38 = derive2 { name="MafH5.gnomAD.v3.1.2.GRCh38"; version="3.15.0"; sha256="18hzw7f41ii16qpm3ch516b773900l1m1id5z6a763m01fg0mhiq"; depends=[BSgenome GenomeInfoDb GenomicRanges GenomicScores HDF5Array IRanges rhdf5 S4Vectors]; };
+  MafH5_gnomAD_v3_1_2_GRCh38 = derive2 { name="MafH5.gnomAD.v3.1.2.GRCh38"; version="3.15.1"; sha256="1q9hlva814sjfz8vm9bzw7xzppbcfy5qq7nnz9w742yr59cjb6mp"; depends=[BSgenome GenomeInfoDb GenomicRanges GenomicScores HDF5Array IRanges rhdf5 S4Vectors]; };
+  MafH5_gnomAD_v4_0_GRCh38 = derive2 { name="MafH5.gnomAD.v4.0.GRCh38"; version="3.19.0"; sha256="1hb905rvxvzh2nap52agcm488yarn2j99d23yxa133jw9d8a9zqk"; depends=[BSgenome GenomeInfoDb GenomicRanges GenomicScores HDF5Array IRanges rhdf5 S4Vectors]; };
   MmAgilentDesign026655_db = derive2 { name="MmAgilentDesign026655.db"; version="3.2.3"; sha256="00d0yjcb5id7zacx4bzdwy4q6f4qvnnx8ph4d4xz1fmcbspz2qiz"; depends=[AnnotationDbi org_Mm_eg_db]; };
   MoExExonProbesetLocation = derive2 { name="MoExExonProbesetLocation"; version="1.15.0"; sha256="0bvj3bji4bwwmxjz4b57n1aqypdibdmry30rfwmlxss1hav96sl7"; depends=[AnnotationDbi]; };
   Mu15v1_db = derive2 { name="Mu15v1.db"; version="3.2.3"; sha256="0qchqkbx6ybijab8qhflxj33kwksfll1d3d3917vydjac9fzw1lz"; depends=[AnnotationDbi org_Mm_eg_db]; };
@@ -206,9 +210,9 @@ in with self; {
   Mus_musculus = derive2 { name="Mus.musculus"; version="1.3.1"; sha256="143zdf83gbfqhy8jm9df7gzhw5q3a64jrjrxrzjf0zd76j8s8j6y"; depends=[AnnotationDbi GenomicFeatures GO_db org_Mm_eg_db OrganismDbi TxDb_Mmusculus_UCSC_mm10_knownGene]; };
   Norway981_db = derive2 { name="Norway981.db"; version="3.2.3"; sha256="04ngc2hilqi9m7933mnm7jcvkxlz68vqqh5b628db575vcxql9b9"; depends=[AnnotationDbi org_Hs_eg_db]; };
   OperonHumanV3_db = derive2 { name="OperonHumanV3.db"; version="3.2.3"; sha256="082gff88cwk2p50q8g9bixggacaclgqcvk6w5dc11h9fkgvd160i"; depends=[AnnotationDbi org_Hs_eg_db]; };
-  Orthology_eg_db = derive2 { name="Orthology.eg.db"; version="3.18.0"; sha256="11v6fm2403m32q9k70n5p839a4awks7avcfaa8rvrm59v0ab5czj"; depends=[AnnotationDbi]; };
+  Orthology_eg_db = derive2 { name="Orthology.eg.db"; version="3.19.1"; sha256="1zg50j46kka5y0mfgqw3vh5xibd3yk7ay051dnci6mgd7v9gns5w"; depends=[AnnotationDbi]; };
   PANTHER_db = derive2 { name="PANTHER.db"; version="1.0.12"; sha256="05ydg87cix86hp6hkkqmcniy69q5zyb3xyc3q7bykp26bvrgjvqq"; depends=[AnnotationDbi AnnotationHub BiocFileCache RSQLite]; };
-  PFAM_db = derive2 { name="PFAM.db"; version="3.18.0"; sha256="15m7qfvz53jkdmx90y7rvy62myr4y3hdy414yqi0w3ch32vy78nr"; depends=[AnnotationDbi]; };
+  PFAM_db = derive2 { name="PFAM.db"; version="3.19.1"; sha256="0jjba22p8x4cfnihsa3gah3amdr4yrqpfm0zfr990jcjkvf94wvk"; depends=[AnnotationDbi]; };
   POCRCannotation_db = derive2 { name="POCRCannotation.db"; version="3.2.3"; sha256="0ybvs4hrxpivdkhm0fxpib11vlxqqdk8prlyj78vj5qzyb3iy89d"; depends=[AnnotationDbi org_Hs_eg_db]; };
   PartheenMetaData_db = derive2 { name="PartheenMetaData.db"; version="3.2.3"; sha256="0d37c5b7s3fgkkvg7sj7gl9ksrjk5pyyv54vkys8w3qwgsm8yrdz"; depends=[AnnotationDbi org_Hs_eg_db]; };
   PolyPhen_Hsapiens_dbSNP131 = derive2 { name="PolyPhen.Hsapiens.dbSNP131"; version="1.0.2"; sha256="1kikygkli41sn3rqihz0924prmqg2264ifj29vmg1a7qccm0kf7c"; depends=[AnnotationDbi RSQLite VariantAnnotation]; };
@@ -227,7 +231,7 @@ in with self; {
   SNPlocs_Hsapiens_dbSNP150_GRCh38 = derive2 { name="SNPlocs.Hsapiens.dbSNP150.GRCh38"; version="0.99.20"; sha256="0jkwwgxxpm9ry8kizq8hs70sky41pks1ag40y5aqq91yjbpqlckj"; depends=[BiocGenerics BSgenome GenomeInfoDb GenomicRanges IRanges S4Vectors]; };
   SNPlocs_Hsapiens_dbSNP155_GRCh37 = derive2 { name="SNPlocs.Hsapiens.dbSNP155.GRCh37"; version="0.99.24"; sha256="0am2r8hn5ybxlvlw7c0i91n5xii0km3iy7d9a0wc9v1ykvk6qmgz"; depends=[BiocGenerics BSgenome GenomeInfoDb GenomicRanges IRanges S4Vectors]; };
   SNPlocs_Hsapiens_dbSNP155_GRCh38 = derive2 { name="SNPlocs.Hsapiens.dbSNP155.GRCh38"; version="0.99.24"; sha256="1yzywcyk1yngjys9pyykilzw0w4nfxdmwz04w3b17chsbxvckl5s"; depends=[BiocGenerics BSgenome GenomeInfoDb GenomicRanges IRanges S4Vectors]; };
-  SomaScan_db = derive2 { name="SomaScan.db"; version="0.99.7"; sha256="012v0ph9mkdl13111qamzkdfpdklbq94ry6scjhbhjqm4igmz79r"; depends=[AnnotationDbi DBI org_Hs_eg_db]; };
+  SomaScan_db = derive2 { name="SomaScan.db"; version="0.99.10"; sha256="1qk4frv4hn3pfwbhqd92r8d59ksvgzs9399w4ca7knmij6zzl73p"; depends=[AnnotationDbi DBI org_Hs_eg_db]; };
   TxDb_Athaliana_BioMart_plantsmart22 = derive2 { name="TxDb.Athaliana.BioMart.plantsmart22"; version="3.0.1"; sha256="0j2zr4cddad7z1lxx9m9kfgyy7jajjnblpk9j8igd39ia3ixrpzc"; depends=[AnnotationDbi GenomicFeatures]; };
   TxDb_Athaliana_BioMart_plantsmart25 = derive2 { name="TxDb.Athaliana.BioMart.plantsmart25"; version="3.1.3"; sha256="0a6v0l6p13zmiysi3k8dxzdlxng552qqj9rnlbdavdiidla0pvm3"; depends=[AnnotationDbi GenomicFeatures]; };
   TxDb_Athaliana_BioMart_plantsmart28 = derive2 { name="TxDb.Athaliana.BioMart.plantsmart28"; version="3.2.2"; sha256="1yjyvrbx55y024lqg3b2rlf8pngqw5xi3p83j5ipan05wf0aq6ir"; depends=[AnnotationDbi GenomicFeatures]; };
@@ -253,14 +257,14 @@ in with self; {
   TxDb_Hsapiens_UCSC_hg19_knownGene = derive2 { name="TxDb.Hsapiens.UCSC.hg19.knownGene"; version="3.2.2"; sha256="1sajhcqqwazgz2lqbik7rd935i7kpnh08zxbp2ra10j72yqy4g86"; depends=[AnnotationDbi GenomicFeatures]; };
   TxDb_Hsapiens_UCSC_hg19_lincRNAsTranscripts = derive2 { name="TxDb.Hsapiens.UCSC.hg19.lincRNAsTranscripts"; version="3.2.2"; sha256="0bmbp7kydvviczw8axgxq2wdlwq6fdas90jk9bg56avjq5syws2g"; depends=[AnnotationDbi GenomicFeatures]; };
   TxDb_Hsapiens_UCSC_hg38_knownGene = derive2 { name="TxDb.Hsapiens.UCSC.hg38.knownGene"; version="3.18.0"; sha256="0ak6acjll2djamakpn60ks47lfs2y0r8xwhjazj6fvch34xkc2d5"; depends=[AnnotationDbi GenomicFeatures]; };
-  TxDb_Hsapiens_UCSC_hg38_refGene = derive2 { name="TxDb.Hsapiens.UCSC.hg38.refGene"; version="3.18.0"; sha256="03wfafd03gni9wpavfwjzfjhx6z8hv4f4jnh4hkjbxqld32sg1kr"; depends=[AnnotationDbi GenomicFeatures]; };
+  TxDb_Hsapiens_UCSC_hg38_refGene = derive2 { name="TxDb.Hsapiens.UCSC.hg38.refGene"; version="3.19.0"; sha256="1ylqdh23767x20npbx0527r353h4kdhc2cz6s2xdadjm3ia8zynn"; depends=[AnnotationDbi GenomicFeatures]; };
   TxDb_Mmulatta_UCSC_rheMac10_refGene = derive2 { name="TxDb.Mmulatta.UCSC.rheMac10.refGene"; version="3.14.0"; sha256="12gxs6s57l22013g40b7hb09vxhmdri73cp9rgs2icb88p7sjlib"; depends=[AnnotationDbi GenomicFeatures]; };
   TxDb_Mmulatta_UCSC_rheMac3_refGene = derive2 { name="TxDb.Mmulatta.UCSC.rheMac3.refGene"; version="3.12.0"; sha256="1a0wbh4dajpgynmw2iwbvp836nklzlk0cfhqnwmqq9l4gzzh2w07"; depends=[AnnotationDbi GenomicFeatures]; };
   TxDb_Mmulatta_UCSC_rheMac8_refGene = derive2 { name="TxDb.Mmulatta.UCSC.rheMac8.refGene"; version="3.12.0"; sha256="1k7mq3p96wfd0694zw00hs4529zvv8nnfdwlsb94bn11qjhr1zrz"; depends=[AnnotationDbi GenomicFeatures]; };
   TxDb_Mmusculus_UCSC_mm10_ensGene = derive2 { name="TxDb.Mmusculus.UCSC.mm10.ensGene"; version="3.4.0"; sha256="0saxi1fdiwd38sfvy1rynd3v44rbp158jv6sjqcivvaqnd84zg9s"; depends=[AnnotationDbi GenomicFeatures]; };
   TxDb_Mmusculus_UCSC_mm10_knownGene = derive2 { name="TxDb.Mmusculus.UCSC.mm10.knownGene"; version="3.10.0"; sha256="0xs9npnhbwll7p62hibs02y4ac23jchdcr25i6a7qwq1kms82qk9"; depends=[AnnotationDbi GenomicFeatures]; };
   TxDb_Mmusculus_UCSC_mm39_knownGene = derive2 { name="TxDb.Mmusculus.UCSC.mm39.knownGene"; version="3.18.0"; sha256="061rfyddq15sz684jchvwxww1ipi94xljcgwbz4a92k8i9cnysva"; depends=[AnnotationDbi GenomicFeatures]; };
-  TxDb_Mmusculus_UCSC_mm39_refGene = derive2 { name="TxDb.Mmusculus.UCSC.mm39.refGene"; version="3.18.0"; sha256="0f7392c9zd5489jfsdxvwwmpnzscp70ayxv78gcg50m5mkgwaydv"; depends=[AnnotationDbi GenomicFeatures]; };
+  TxDb_Mmusculus_UCSC_mm39_refGene = derive2 { name="TxDb.Mmusculus.UCSC.mm39.refGene"; version="3.19.0"; sha256="1rhfr4s0lxz86vigrbyyx27q1gbg0g512ld0rkfv2vxwdbcl9hc0"; depends=[AnnotationDbi GenomicFeatures]; };
   TxDb_Mmusculus_UCSC_mm9_knownGene = derive2 { name="TxDb.Mmusculus.UCSC.mm9.knownGene"; version="3.2.2"; sha256="16bjxy00363hf91ik2mqlqls86i07gia72qh92xc3l1ncch61mx2"; depends=[AnnotationDbi GenomicFeatures]; };
   TxDb_Ptroglodytes_UCSC_panTro4_refGene = derive2 { name="TxDb.Ptroglodytes.UCSC.panTro4.refGene"; version="3.12.0"; sha256="036g5zn9rzy8qivb1snhpancsz1z60i3r7z3g91bgla4jpgwwjv6"; depends=[AnnotationDbi GenomicFeatures]; };
   TxDb_Ptroglodytes_UCSC_panTro5_refGene = derive2 { name="TxDb.Ptroglodytes.UCSC.panTro5.refGene"; version="3.12.0"; sha256="0yypv9iqn4i36hnvcr2lsfgaabl8g2pm72ya4psvia261jr2i12i"; depends=[AnnotationDbi GenomicFeatures]; };
@@ -285,15 +289,16 @@ in with self; {
   agprobe = derive2 { name="agprobe"; version="2.18.0"; sha256="1vnawamcpz16na8nmlq2czfxcr325fwdnngxl65mmnbd0f4lmy3k"; depends=[AnnotationDbi]; };
   alternativeSplicingEvents_hg19 = derive2 { name="alternativeSplicingEvents.hg19"; version="1.1.0"; sha256="0q90nw3ds66zbyn3ch19lq1qimd1hz1s3jyyd6zi3v10p5s8bm0y"; depends=[AnnotationHub]; };
   alternativeSplicingEvents_hg38 = derive2 { name="alternativeSplicingEvents.hg38"; version="1.1.0"; sha256="18qabggvs9mcg8fwd6prdca8lfxn9r9i0493l667n8jl9vy2pbfc"; depends=[AnnotationHub]; };
-  anopheles_db0 = derive2 { name="anopheles.db0"; version="3.18.0"; sha256="197p9dc3rn8vri3frmsrq9r033g2dd0dvbdabgcm8ailyphwpmqq"; depends=[AnnotationDbi]; };
-  arabidopsis_db0 = derive2 { name="arabidopsis.db0"; version="3.18.0"; sha256="1dv2vrzq6anf422jxa9vssvwc68m1x3cp9543liq3ajprz1alh35"; depends=[AnnotationDbi]; };
+  anopheles_db0 = derive2 { name="anopheles.db0"; version="3.19.1"; sha256="190yjnl86b6vm2xmdfm43hn5xy7jsf83rwd103v537y4qhxdy0yq"; depends=[AnnotationDbi]; };
+  arabidopsis_db0 = derive2 { name="arabidopsis.db0"; version="3.19.1"; sha256="1fi4akbk7yc6drkdwp0dfaxdn5axg1c5qp9b445318zszdylxbd3"; depends=[AnnotationDbi]; };
   ath1121501_db = derive2 { name="ath1121501.db"; version="3.13.0"; sha256="0v4vapbns71dpv09857lyrnliq202i8yi4ar9z81wbpbc22lhf0d"; depends=[AnnotationDbi org_At_tair_db]; };
   ath1121501cdf = derive2 { name="ath1121501cdf"; version="2.18.0"; sha256="1naq8f8dwgbmndx178nm2pw6hjx5ljx0w1wb4dfjifnl4bs5rqcc"; depends=[AnnotationDbi]; };
+  ath1121501frmavecs = derive2 { name="ath1121501frmavecs"; version="1.0.0"; sha256="0y3ka95aafiyily188536azvfqrsr2mbljhc696d2wlkjczbxq5i"; depends=[]; };
   ath1121501probe = derive2 { name="ath1121501probe"; version="2.18.0"; sha256="0a2nd8zhp3ybis780l3rrmwcxskbl3a111g8w6m8qfwsw5vnlqg1"; depends=[AnnotationDbi]; };
   barley1cdf = derive2 { name="barley1cdf"; version="2.18.0"; sha256="0rbij5cqr2sz33y5waybv85nrcgf70iwj5gk13g0xn9p1l1zxyn2"; depends=[AnnotationDbi]; };
   barley1probe = derive2 { name="barley1probe"; version="2.18.0"; sha256="1kh5r748b4vkmvlfaclmrh07ypbrzgxn90liqfz1rwkabh6rfk71"; depends=[AnnotationDbi]; };
   bovine_db = derive2 { name="bovine.db"; version="3.13.0"; sha256="06692b1n0lzhg0biixipsnwx33w9y8wkc7pc5q1lkjfzbmd2inml"; depends=[AnnotationDbi org_Bt_eg_db]; };
-  bovine_db0 = derive2 { name="bovine.db0"; version="3.18.0"; sha256="1s95x4hrv6r1mlsls2yfwbw1mn0jpqg7ancfcwc22p9pi962jjf8"; depends=[AnnotationDbi]; };
+  bovine_db0 = derive2 { name="bovine.db0"; version="3.19.1"; sha256="1qyhzbr81r302xnzg76njwj3b88rrbk02qsxsrg7728qwpwd412v"; depends=[AnnotationDbi]; };
   bovinecdf = derive2 { name="bovinecdf"; version="2.18.0"; sha256="13mf0yy0dypkm5n2ghl04xm6ayb9bn9qijqhgynksghi7s2k34mb"; depends=[AnnotationDbi]; };
   bovineprobe = derive2 { name="bovineprobe"; version="2.18.0"; sha256="0i4afa5dksnir2nfrfh2cynjm59sm6vfaqa9wyag8cxg7c2nlm1i"; depends=[AnnotationDbi]; };
   bsubtiliscdf = derive2 { name="bsubtiliscdf"; version="2.18.0"; sha256="1rihrjim37b49rhqr4nxga8sp67qri9xqlqc141mhbngh6cw3iyl"; depends=[AnnotationDbi]; };
@@ -302,7 +307,7 @@ in with self; {
   cadd_v1_6_hg19 = derive2 { name="cadd.v1.6.hg19"; version="3.18.1"; sha256="1g8pk1bmq2p6a7r1skfs54a2b8106znasympyz3dq3vahm5ia0dq"; depends=[AnnotationHub GenomicScores]; };
   cadd_v1_6_hg38 = derive2 { name="cadd.v1.6.hg38"; version="3.18.1"; sha256="0088wv3a082ircmgpx23822bvjwqd5jdvilkgvhaypksbnbdkq68"; depends=[AnnotationHub GenomicScores]; };
   canine_db = derive2 { name="canine.db"; version="3.13.0"; sha256="1x1mlh0p6r2l5kclarqwgiw9y64xc8jhp6252hhpl9bpnn638n3s"; depends=[AnnotationDbi org_Cf_eg_db]; };
-  canine_db0 = derive2 { name="canine.db0"; version="3.18.0"; sha256="1s88nj0ysvb7dwvxwkshy9w1a8qvaq3bkxki974zhhh42ssdxm2q"; depends=[AnnotationDbi]; };
+  canine_db0 = derive2 { name="canine.db0"; version="3.19.1"; sha256="0qagfxza04zncjrd97b0mrqrd5jchifv1pxbzv3npdp0801yym2f"; depends=[AnnotationDbi]; };
   canine2_db = derive2 { name="canine2.db"; version="3.13.0"; sha256="1xzz0vivdypwl6kaq2ba02jkpxw0r9r98297ilksdh8m71f244si"; depends=[AnnotationDbi org_Cf_eg_db]; };
   canine2cdf = derive2 { name="canine2cdf"; version="2.18.0"; sha256="077cmmnhjdk0vxjzm1kqf3q5kgx6chwkm59dr4s5dy019rqb6sqr"; depends=[AnnotationDbi]; };
   canine2probe = derive2 { name="canine2probe"; version="2.18.0"; sha256="1l849a1dqy4kpcsxs0lvb48ag81i0f0ys0w4757rw4kp8ry59z4b"; depends=[AnnotationDbi]; };
@@ -312,10 +317,10 @@ in with self; {
   celeganscdf = derive2 { name="celeganscdf"; version="2.18.0"; sha256="0a6w0a48azg0i21j3aqb7fnxck3ff9w3gsi89bnlfh0zx6pknx7p"; depends=[AnnotationDbi]; };
   celegansprobe = derive2 { name="celegansprobe"; version="2.18.0"; sha256="05k7si3f8pzkyb8jv0r2vkavbrqxsn4nawl92gcphfsylrwcddqb"; depends=[AnnotationDbi]; };
   chicken_db = derive2 { name="chicken.db"; version="3.13.0"; sha256="0szb7sgassw10kzm8iz8h3fdbxm6v0kz95yb3a9icj2chi5d1m2i"; depends=[AnnotationDbi org_Gg_eg_db]; };
-  chicken_db0 = derive2 { name="chicken.db0"; version="3.18.0"; sha256="1b2ypbjxmm6dg5dagc9cka9p1c9n6b9rjlw1ivcakbnpx7ipwkl2"; depends=[AnnotationDbi]; };
+  chicken_db0 = derive2 { name="chicken.db0"; version="3.19.1"; sha256="1qba9s4fmh17b3g6z6jfb2cdby0mhc80xjj0r9a2wvd8qlm5gyw1"; depends=[AnnotationDbi]; };
   chickencdf = derive2 { name="chickencdf"; version="2.18.0"; sha256="09hhim5s9xj7n2b5rhn1svf5qly2mn0rr2v2ls25hfzyrqcbxlz1"; depends=[AnnotationDbi]; };
   chickenprobe = derive2 { name="chickenprobe"; version="2.18.0"; sha256="1fdsiwfyg7fwslrr7xs3gny7sw24bzg5k1fvlyzb1477sgj0pid3"; depends=[AnnotationDbi]; };
-  chimp_db0 = derive2 { name="chimp.db0"; version="3.18.0"; sha256="1y5yi53hld1q3zi3z25zg68mb76nbh09yikn4x14q5rk2imjg9gm"; depends=[AnnotationDbi]; };
+  chimp_db0 = derive2 { name="chimp.db0"; version="3.19.1"; sha256="1vsb2235k00jxmff9i7lbc3kmiqkz5xvm21bzhryql7kgy5i64yf"; depends=[AnnotationDbi]; };
   chromhmmData = derive2 { name="chromhmmData"; version="0.99.2"; sha256="13g6x7lzmkz9qv7yr6ps8gsgilgr048lc7y0y7xsfa9ws3n08fzj"; depends=[]; };
   citruscdf = derive2 { name="citruscdf"; version="2.18.0"; sha256="1326mj1xf3k4v5iyyn46whx24qfng0x3cv6rvckdr1ycc1v887dn"; depends=[AnnotationDbi]; };
   citrusprobe = derive2 { name="citrusprobe"; version="2.18.0"; sha256="0bf1wic136cxwgs4j13wsyqasnyvr0jw1hzg6qizndmy7g8hrb87"; depends=[AnnotationDbi]; };
@@ -339,15 +344,15 @@ in with self; {
   ecoli2_db = derive2 { name="ecoli2.db"; version="3.13.0"; sha256="1i2arr26hch7lmx2bixzy4l0zaa0gynah4dfwa98cvb24ahqqj9f"; depends=[AnnotationDbi org_EcK12_eg_db]; };
   ecoli2cdf = derive2 { name="ecoli2cdf"; version="2.18.0"; sha256="1rkxrwadq9kg9685z9pg6rgc4bblkx5p3c6snsl4gv2k188dva9r"; depends=[AnnotationDbi]; };
   ecoli2probe = derive2 { name="ecoli2probe"; version="2.18.0"; sha256="11q4ka0ncjapahic49xdl9919vm9frrwlqgj101krgkg262lfm8n"; depends=[AnnotationDbi]; };
-  ecoliK12_db0 = derive2 { name="ecoliK12.db0"; version="3.18.0"; sha256="1x0jpi1j5nxvzirrjafg9w71glsshdbw98zrw1zzbp7gxrwxilpn"; depends=[AnnotationDbi]; };
-  ecoliSakai_db0 = derive2 { name="ecoliSakai.db0"; version="3.18.0"; sha256="0khajmjawf0gs7bi0m4pnzl1m7p76wdybv9h3fd3p1qjv5dyifwz"; depends=[AnnotationDbi]; };
+  ecoliK12_db0 = derive2 { name="ecoliK12.db0"; version="3.19.1"; sha256="0fi0cxl5hj5mx2z2r0j86qf3bfx1dz8abn86maim9b1l89whvqwd"; depends=[AnnotationDbi]; };
+  ecoliSakai_db0 = derive2 { name="ecoliSakai.db0"; version="3.19.1"; sha256="1kqpmmddqyfjx2y2kbp53mv1vazbjhpwl3crpx2iq0q1b2ynb63f"; depends=[AnnotationDbi]; };
   ecoliasv2cdf = derive2 { name="ecoliasv2cdf"; version="2.18.0"; sha256="16i6has9qgmzakcy24racc1h9j331wndv5c87qp5r1zrai61zyav"; depends=[AnnotationDbi]; };
   ecoliasv2probe = derive2 { name="ecoliasv2probe"; version="2.18.0"; sha256="1hfrnal170cdigc2fmnynb75jjsiq77p4x6ws9gah558hvx87nk3"; depends=[AnnotationDbi]; };
   ecolicdf = derive2 { name="ecolicdf"; version="2.18.0"; sha256="18g5prjykn356k35m131ifn128k5mhij2x26balqav0azigzjqsn"; depends=[AnnotationDbi]; };
   ecoliprobe = derive2 { name="ecoliprobe"; version="2.18.0"; sha256="17g5zxfzsak7a0w51irc0w1w2i5ngdkx9db6rhv1fyp8mfjgaphd"; depends=[AnnotationDbi]; };
   excluderanges = derive2 { name="excluderanges"; version="0.99.8"; sha256="19pdwlhqlz420yss371bsqhkx8c7wxr0sv4wsycnc0mlplwq4bsf"; depends=[GenomicRanges]; };
   fitCons_UCSC_hg19 = derive2 { name="fitCons.UCSC.hg19"; version="3.7.1"; sha256="19isa4x8js0pdb4k8a11bw3bzmzv6jc4jphzrvav7piqkvrgykzx"; depends=[BSgenome GenomeInfoDb GenomicRanges GenomicScores IRanges S4Vectors]; };
-  fly_db0 = derive2 { name="fly.db0"; version="3.18.0"; sha256="1pksr9jwdd5izf2yc7fb935pic84nvlxa458h0da9lryglc0w5rg"; depends=[AnnotationDbi]; };
+  fly_db0 = derive2 { name="fly.db0"; version="3.19.1"; sha256="0726vpqc092mq9j23ghvy5yjg3v6fm26fynlad5k4wshyfw1szxk"; depends=[AnnotationDbi]; };
   geneplast_data = derive2 { name="geneplast.data"; version="0.99.9"; sha256="1i31kx4kckfg965s9l3pilvmg847av3rpa05aql43259ccyng4hi"; depends=[ape BiocFileCache dplyr geneplast igraph purrr readr tibble tidyr treeio]; };
   geneplast_data_string_v91 = derive2 { name="geneplast.data.string.v91"; version="0.99.6"; sha256="0mc26d0sgmpmfmqsqinqv5k6vhg0hlc8hsjkcnvf369yav224nq1"; depends=[]; };
   genomewidesnp5Crlmm = derive2 { name="genomewidesnp5Crlmm"; version="1.0.6"; sha256="06dmwnjy3gb53y6nr02dmp22qzfl5d63wppazrabcqbzwimhnvp8"; depends=[]; };
@@ -480,7 +485,7 @@ in with self; {
   hugene20sttranscriptcluster_db = derive2 { name="hugene20sttranscriptcluster.db"; version="8.8.0"; sha256="00fjhz7gac0rssn3kplag68vfx7gimjrm4mc7z516bs013rppgsz"; depends=[AnnotationDbi org_Hs_eg_db]; };
   hugene21stprobeset_db = derive2 { name="hugene21stprobeset.db"; version="8.8.0"; sha256="0s4zl9lv5w3fkb9axhz9siliz73brwarw8a7cam1p9b2kmdrdqs0"; depends=[AnnotationDbi org_Hs_eg_db]; };
   hugene21sttranscriptcluster_db = derive2 { name="hugene21sttranscriptcluster.db"; version="8.8.0"; sha256="1g7yfva96vhkdvcvsjwsj7sy8q6kczd5rmcwrwjc73v9qi4ywgal"; depends=[AnnotationDbi org_Hs_eg_db]; };
-  human_db0 = derive2 { name="human.db0"; version="3.18.0"; sha256="0il4v5r03976qvfd4gq8wdgrp060c1byc3v6wx6yxcxk1wvp81zf"; depends=[AnnotationDbi]; };
+  human_db0 = derive2 { name="human.db0"; version="3.19.1"; sha256="006q28yvh8l5h7pa9qdhcvjd9049bzg1v5nnvphivwn186hv47ww"; depends=[AnnotationDbi]; };
   human1mduov3bCrlmm = derive2 { name="human1mduov3bCrlmm"; version="1.0.4"; sha256="1p7qpzk6svafgdafljhh4k0z7pcs78qmwwfd80r0a1yhkssmp0v9"; depends=[]; };
   human1mv1cCrlmm = derive2 { name="human1mv1cCrlmm"; version="1.0.3"; sha256="1qlph3qrjv52ddzlj8pwa93zzh70x4mbdrdr7q9pan427lpck9gx"; depends=[]; };
   human370quadv3cCrlmm = derive2 { name="human370quadv3cCrlmm"; version="1.0.3"; sha256="1chjx9vsmqz2whslw1l7jn7nfn7zx6pcjfmqqm9mh81i74rzrdik"; depends=[]; };
@@ -518,7 +523,7 @@ in with self; {
   m20kcod_db = derive2 { name="m20kcod.db"; version="3.4.0"; sha256="1p2sm5j4b50iqzwcb984qrh74c3hf6yml7b8mvxlhhhvxz4iy1np"; depends=[AnnotationDbi org_Mm_eg_db]; };
   maizecdf = derive2 { name="maizecdf"; version="2.18.0"; sha256="0yfz5gjhsq4wz6j63s1b1hxjz03gsmrlfs2cdc8smq6azp3zdid4"; depends=[AnnotationDbi]; };
   maizeprobe = derive2 { name="maizeprobe"; version="2.18.0"; sha256="01h5dv5i0zaqlphkii9ipxy9wswv1srgprrpr5vmi01c9d98qsk0"; depends=[AnnotationDbi]; };
-  malaria_db0 = derive2 { name="malaria.db0"; version="3.18.0"; sha256="1zp2j7vbws2a56xkngfl248xskpj5r58q7sxx6xjipdjk8n13vf3"; depends=[AnnotationDbi]; };
+  malaria_db0 = derive2 { name="malaria.db0"; version="3.19.1"; sha256="0gyx0s801pzhcaa0hqbcj69hjgz63b6d764wiflpdg90c79db2is"; depends=[AnnotationDbi]; };
   medicagocdf = derive2 { name="medicagocdf"; version="2.18.0"; sha256="1clz679cc887x98c6jk93cphijkbg5r2nd9idrj5901yvh6p9n5q"; depends=[AnnotationDbi]; };
   medicagoprobe = derive2 { name="medicagoprobe"; version="2.18.0"; sha256="0w6j1pfkvb3npc8srpjifq2ywnqxhc9q090jqzmkx22x36cw9cl5"; depends=[AnnotationDbi]; };
   metaboliteIDmapping = derive2 { name="metaboliteIDmapping"; version="1.0.0"; sha256="0nflpvla3wn8i2gaja5wwjkxk0jich95f5ws3rnhh2a6rx3xi3ql"; depends=[AnnotationHub]; };
@@ -573,7 +578,7 @@ in with self; {
   mogene20sttranscriptcluster_db = derive2 { name="mogene20sttranscriptcluster.db"; version="8.8.0"; sha256="1bpzpba9aifc7w6qbrh6rnc636k6z1r9gz03sxvc3aa3977p9xag"; depends=[AnnotationDbi org_Mm_eg_db]; };
   mogene21stprobeset_db = derive2 { name="mogene21stprobeset.db"; version="8.8.0"; sha256="172bhzqqw5hz76bw8vqwx2qpw4f6rwbcm6savmkxmmhzb2nq60z5"; depends=[AnnotationDbi org_Mm_eg_db]; };
   mogene21sttranscriptcluster_db = derive2 { name="mogene21sttranscriptcluster.db"; version="8.8.0"; sha256="02g2n5nkxi9lqw9h7sbkblk99zd57lkrldqb1fmi9zww59qwagrv"; depends=[AnnotationDbi org_Mm_eg_db]; };
-  mouse_db0 = derive2 { name="mouse.db0"; version="3.18.0"; sha256="092rjbkrqbkg1997vb4zpyjldv8c541kkx7q95pdpk5qx5aapwqy"; depends=[AnnotationDbi]; };
+  mouse_db0 = derive2 { name="mouse.db0"; version="3.19.1"; sha256="00payj4mc0z5s5iv8ai8w1vg2j68xi12qbg4yxcyjc69vslcgpv0"; depends=[AnnotationDbi]; };
   mouse4302_db = derive2 { name="mouse4302.db"; version="3.13.0"; sha256="0rf22kfj6y96ap0gcwq3mnpv6fj0yax37gf51sfi0wkmp95k7rcs"; depends=[AnnotationDbi org_Mm_eg_db]; };
   mouse4302cdf = derive2 { name="mouse4302cdf"; version="2.18.0"; sha256="1mpyma4x8zfs2fmmx57xw4cfs2cf9lhw71nc3icl72d7vmwidswc"; depends=[AnnotationDbi]; };
   mouse4302frmavecs = derive2 { name="mouse4302frmavecs"; version="1.5.0"; sha256="04clwkfz1gqqwrnqbavkka3hv480w6vi6c4q947qqnhw8j5jjp7s"; depends=[]; };
@@ -611,25 +616,26 @@ in with self; {
   nugomm1a520177probe = derive2 { name="nugomm1a520177probe"; version="3.4.0"; sha256="1n70k0mhv146983myjgk1cgkr9rmmcpqdv8wpkcr320qcvgf9bn7"; depends=[AnnotationDbi]; };
   oligoData = derive2 { name="oligoData"; version="1.8.0"; sha256="1d1yfms3jv2c4s255xnh8yxwijrj35skw3nxds7l46y88lg3qn8y"; depends=[oligo]; };
   ontoProcData = derive2 { name="ontoProcData"; version="0.99.9901"; sha256="16wwh539hdm89f1vxqfgjmlbqwadnr4xqap80annsqgfn90mi8rk"; depends=[]; };
-  org_Ag_eg_db = derive2 { name="org.Ag.eg.db"; version="3.18.0"; sha256="1j9bxz8ypv323wdsp0i0jxv70s14rkq40y1b2n665237rxh0zylz"; depends=[AnnotationDbi]; };
-  org_At_tair_db = derive2 { name="org.At.tair.db"; version="3.18.0"; sha256="13lrhfyppn5f5jbnnzqwvjfrmg96a687whv2ws2a3h73i18sxfl1"; depends=[AnnotationDbi]; };
-  org_Bt_eg_db = derive2 { name="org.Bt.eg.db"; version="3.18.0"; sha256="0fgrpjfrsw837ay9cq3wd6gp6sxvwjc7r9spfs4m89vqs2xb0bfc"; depends=[AnnotationDbi]; };
-  org_Ce_eg_db = derive2 { name="org.Ce.eg.db"; version="3.18.0"; sha256="1fsbrbby6ka2xdsbp8b10nid99w6lkvb7pyn8gv3dsn8p9p6mc5q"; depends=[AnnotationDbi]; };
-  org_Cf_eg_db = derive2 { name="org.Cf.eg.db"; version="3.18.0"; sha256="0cfj8cg85vgdz7skpvqkbp7a371w95jywwsjvb5am2wb5hzsnwnp"; depends=[AnnotationDbi]; };
-  org_Dm_eg_db = derive2 { name="org.Dm.eg.db"; version="3.18.0"; sha256="1n0rwynw3nl4js104295kff0jk8jwymjk8imm9di6dy6b9s3qsa6"; depends=[AnnotationDbi]; };
-  org_Dr_eg_db = derive2 { name="org.Dr.eg.db"; version="3.18.0"; sha256="1kk5jgbzcqhgwf5p4mpxswqhr9rkirm3fb7maflk61zcn6fs56zc"; depends=[AnnotationDbi]; };
-  org_EcK12_eg_db = derive2 { name="org.EcK12.eg.db"; version="3.18.0"; sha256="12lqv06n49lwczv5l4h5h6lbfbcqyg9j4csffcdx495scmhc06mc"; depends=[AnnotationDbi]; };
-  org_EcSakai_eg_db = derive2 { name="org.EcSakai.eg.db"; version="3.18.0"; sha256="03w6566b3gljs2sjz4ywjkvgr3s33n33877vvmgwapmdwvy6kfs6"; depends=[AnnotationDbi]; };
-  org_Gg_eg_db = derive2 { name="org.Gg.eg.db"; version="3.18.0"; sha256="035pxjcyyhv1nd177vp3kmjjfakzdyf0xmadqqih69almkrvd9yb"; depends=[AnnotationDbi]; };
-  org_Hs_eg_db = derive2 { name="org.Hs.eg.db"; version="3.18.0"; sha256="1jn556ql6xknfd34qz4bqh6bgc9rccmz6pk41p7ivlzlslz7bp21"; depends=[AnnotationDbi]; };
-  org_Mm_eg_db = derive2 { name="org.Mm.eg.db"; version="3.18.0"; sha256="0i35dfllh8wf7b61ajf33gvclzg3znyx3cgp30vs3hm8ys3nras1"; depends=[AnnotationDbi]; };
-  org_Mmu_eg_db = derive2 { name="org.Mmu.eg.db"; version="3.18.0"; sha256="1qj06dybpqv17vkmd2bk7x3f20a34p4ra054gywbp9klbgmrk60h"; depends=[AnnotationDbi]; };
+  org_Ag_eg_db = derive2 { name="org.Ag.eg.db"; version="3.19.1"; sha256="1j8aaraq4wrj633kwfldycsshyygx1k5bvacpha5qg6g7c00bb79"; depends=[AnnotationDbi]; };
+  org_At_tair_db = derive2 { name="org.At.tair.db"; version="3.19.1"; sha256="0g4b2h08z4fy2wq9nskgp3h5vffs9zk3xx1ax1l86wl16ji2591x"; depends=[AnnotationDbi]; };
+  org_Bt_eg_db = derive2 { name="org.Bt.eg.db"; version="3.19.1"; sha256="0rbbjv47fadc6jgpqrimsd91f35fw6sw8d805vf61nx5xhbl3lpc"; depends=[AnnotationDbi]; };
+  org_Ce_eg_db = derive2 { name="org.Ce.eg.db"; version="3.19.1"; sha256="0vg6nw4qzj8janmkv6k2z471m3l4xnd1h232h0w5i53b20c7p6ys"; depends=[AnnotationDbi]; };
+  org_Cf_eg_db = derive2 { name="org.Cf.eg.db"; version="3.19.1"; sha256="07grx4zgba2q4xgs9x7j3ryy12xkl32mzzgfgivxq68xg7ipj2fk"; depends=[AnnotationDbi]; };
+  org_Dm_eg_db = derive2 { name="org.Dm.eg.db"; version="3.19.1"; sha256="1sqw38z73sgq66x8qrb5xw0jxyimy7l1hs2iwm7xq9ylzrjw3yj0"; depends=[AnnotationDbi]; };
+  org_Dr_eg_db = derive2 { name="org.Dr.eg.db"; version="3.19.1"; sha256="041hp3xhkiwh8vb4zq5kwvrsmp8paqlri6gaj1qy0a5zjlkw0fl6"; depends=[AnnotationDbi]; };
+  org_EcK12_eg_db = derive2 { name="org.EcK12.eg.db"; version="3.19.1"; sha256="1af2yrbpn58z34jq39qmmwprzsffgxbrs84dsxny4rksa8k6j70s"; depends=[AnnotationDbi]; };
+  org_EcSakai_eg_db = derive2 { name="org.EcSakai.eg.db"; version="3.19.1"; sha256="02wbh31iqdywy0gqj43l9faijxagsa3fcgcx7y8mafwpgd7aqr7m"; depends=[AnnotationDbi]; };
+  org_Gg_eg_db = derive2 { name="org.Gg.eg.db"; version="3.19.1"; sha256="0fnxscjps85jmd683212hsp6rs5f4bybcxj8xfqggi4l87fkzng0"; depends=[AnnotationDbi]; };
+  org_Hs_eg_db = derive2 { name="org.Hs.eg.db"; version="3.19.1"; sha256="1xrbf0zmik1j70i6bg5wqvfwz4vcf3vgypan36r1lv6lspsfychr"; depends=[AnnotationDbi]; };
+  org_Mm_eg_db = derive2 { name="org.Mm.eg.db"; version="3.19.1"; sha256="12d8lrf6bxvqzfxzdbxqmjcywy2myhwhi99kxdwpijsczxxfikj7"; depends=[AnnotationDbi]; };
+  org_Mmu_eg_db = derive2 { name="org.Mmu.eg.db"; version="3.19.1"; sha256="0fz2rrw52nsa2mnl3gmx3ap9zjj0w37zyzwnvxzhmi6wmamr1nk4"; depends=[AnnotationDbi]; };
   org_Mxanthus_db = derive2 { name="org.Mxanthus.db"; version="1.0.27"; sha256="1jqwsdjz1d8fwqhq26lavb2kq739ddlb8khsh4b096vhnwv3dxg5"; depends=[AnnotationDbi AnnotationHub BiocFileCache BiocStyle]; };
-  org_Pt_eg_db = derive2 { name="org.Pt.eg.db"; version="3.18.0"; sha256="0fv0l1fj4d5fza936gx187z3b3yd8cjs0hlb3f9vrsv1zadr3yyf"; depends=[AnnotationDbi]; };
-  org_Rn_eg_db = derive2 { name="org.Rn.eg.db"; version="3.18.0"; sha256="1z9wsb7f67mggcsv27zrn50j5c9a3hxc4dygaj2nbma23zxbyjc3"; depends=[AnnotationDbi]; };
-  org_Sc_sgd_db = derive2 { name="org.Sc.sgd.db"; version="3.18.0"; sha256="15ngfqimrjpn2fxzngj5m3pvqivbq65010qdx33xs32ax48z6p2r"; depends=[AnnotationDbi]; };
-  org_Ss_eg_db = derive2 { name="org.Ss.eg.db"; version="3.18.0"; sha256="0jqrwh4h7shsni9zyygyggmwg89jsc90r7y0gali29yy8wa38h0q"; depends=[AnnotationDbi]; };
-  org_Xl_eg_db = derive2 { name="org.Xl.eg.db"; version="3.18.0"; sha256="01xr4cpjzdd1v0xw8dbmcjhmcwhi8b3vjhmgsx77c969w9sa0igr"; depends=[AnnotationDbi]; };
+  org_Pf_plasmo_db = derive2 { name="org.Pf.plasmo.db"; version="3.19.1"; sha256="1klkhazb4rbmnpp3ywj266202740p1c0xsi6dlz84r2cxsrvw1kn"; depends=[AnnotationDbi]; };
+  org_Pt_eg_db = derive2 { name="org.Pt.eg.db"; version="3.19.1"; sha256="1l17ys29ms7iiyflhbk47nvy069rrjpz2f1b5cbfklpr0lzy583b"; depends=[AnnotationDbi]; };
+  org_Rn_eg_db = derive2 { name="org.Rn.eg.db"; version="3.19.1"; sha256="0bq42q2j4jddzi2s4lzhmzplbhkd2drw6545ffhcpi4r7ryrzqkn"; depends=[AnnotationDbi]; };
+  org_Sc_sgd_db = derive2 { name="org.Sc.sgd.db"; version="3.19.1"; sha256="1sbjwyf0ibivdhhxsaljgqa4lqp3hcf8gcrlcm2vd78bfm5cm7bg"; depends=[AnnotationDbi]; };
+  org_Ss_eg_db = derive2 { name="org.Ss.eg.db"; version="3.19.1"; sha256="0cdql2zvgsrirpby6vahkfxqwnfpbs1hmfl55j8i4n4dv184cbhf"; depends=[AnnotationDbi]; };
+  org_Xl_eg_db = derive2 { name="org.Xl.eg.db"; version="3.19.1"; sha256="0xl3xg4sa5fc7ms6c61pq633y45p2ayh8l02ws1k2yadcmykajrh"; depends=[AnnotationDbi]; };
   paeg1acdf = derive2 { name="paeg1acdf"; version="2.18.0"; sha256="127pgxxp5wp3hgmafbzdzsk4gqnllq1m1gcsfyzkvpkvmbn4aa9n"; depends=[AnnotationDbi]; };
   paeg1aprobe = derive2 { name="paeg1aprobe"; version="2.18.0"; sha256="0hbyd402wf9nzy2g93nhnf2zsi9jvhgfk0llxlyfk0kqxs0y4byy"; depends=[AnnotationDbi]; };
   pd_081229_hg18_promoter_medip_hx1 = derive2 { name="pd.081229.hg18.promoter.medip.hx1"; version="0.99.4"; sha256="1h4925dmw0vfsnhllg55gswq3sxfmx9rcjzifdvgs9y27399psrr"; depends=[Biostrings DBI IRanges oligo oligoClasses RSQLite]; };
@@ -809,7 +815,7 @@ in with self; {
   phastCons35way_UCSC_mm39 = derive2 { name="phastCons35way.UCSC.mm39"; version="3.16.0"; sha256="0lniqakqxja8inq3gn168w1xja1m2kbmww0cw971smsnddypmig7"; depends=[AnnotationHub GenomicScores]; };
   phastCons7way_UCSC_hg38 = derive2 { name="phastCons7way.UCSC.hg38"; version="3.7.1"; sha256="105isdrb3nsy30wd8yy9vrrv8b7c8izc11xqqixg6rcriacd0rl0"; depends=[BSgenome GenomeInfoDb GenomicRanges GenomicScores IRanges S4Vectors]; };
   phyloP35way_UCSC_mm39 = derive2 { name="phyloP35way.UCSC.mm39"; version="3.16.0"; sha256="1n0iywfs23dhc54mapirvaqcbx38zjf8lknbsz80p5lxp24n2lf9"; depends=[AnnotationHub GenomicScores]; };
-  pig_db0 = derive2 { name="pig.db0"; version="3.18.0"; sha256="05lddwcf205gid4ppq9ch5bp7cjdm36c3hfsdm2jddh4a7nky4vz"; depends=[AnnotationDbi]; };
+  pig_db0 = derive2 { name="pig.db0"; version="3.19.1"; sha256="10s39hcyia1w2wik2yxlalnli8a3bw8siqbrnmfyh0hx50plhhmv"; depends=[AnnotationDbi]; };
   plasmodiumanophelescdf = derive2 { name="plasmodiumanophelescdf"; version="2.18.0"; sha256="1vs36091djinn3g6rjhmy9xfdyi58365zbcjc9mf50adnp2i5fq9"; depends=[AnnotationDbi]; };
   plasmodiumanophelesprobe = derive2 { name="plasmodiumanophelesprobe"; version="2.18.0"; sha256="03hfq51nrpmx8ihc48jiih6bk99irrgal9x7i7mgcv8xd508gcsy"; depends=[AnnotationDbi]; };
   poplarcdf = derive2 { name="poplarcdf"; version="2.18.0"; sha256="0j28czs936j2wgwp63qbwl1mjcflcrx7ir88jzxkkw7411ch1gl1"; depends=[AnnotationDbi]; };
@@ -839,7 +845,7 @@ in with self; {
   ragene20sttranscriptcluster_db = derive2 { name="ragene20sttranscriptcluster.db"; version="8.8.0"; sha256="1bi4wy0sbhsyavxwshxvf3iqmyz26q7y2vqp1h3rjshsjdmhfd0h"; depends=[AnnotationDbi org_Rn_eg_db]; };
   ragene21stprobeset_db = derive2 { name="ragene21stprobeset.db"; version="8.8.0"; sha256="1m0hd0nlav9dhqzvs5drl8q3llx2wjxdfvb24fmjnba4h769ns7k"; depends=[AnnotationDbi org_Rn_eg_db]; };
   ragene21sttranscriptcluster_db = derive2 { name="ragene21sttranscriptcluster.db"; version="8.8.0"; sha256="14hp03pizq7kprwk26s9w6s27zzbs2kk50qhjbiwic1xbrl0dp8a"; depends=[AnnotationDbi org_Rn_eg_db]; };
-  rat_db0 = derive2 { name="rat.db0"; version="3.18.0"; sha256="1g02gq0wwb1f7hmqcpd4ad59xn295zqg1hdzixn20wgkan5yd0ac"; depends=[AnnotationDbi]; };
+  rat_db0 = derive2 { name="rat.db0"; version="3.19.1"; sha256="0vl2an3b00h94z1ba29fz83q04p4n641qs4xgp53zz3jg8lgm4si"; depends=[AnnotationDbi]; };
   rat2302_db = derive2 { name="rat2302.db"; version="3.13.0"; sha256="1k2qm1rpq3xkj52m3n629r4qcqi2azdssb2i5shj9jdaqkmr43qc"; depends=[AnnotationDbi org_Rn_eg_db]; };
   rat2302cdf = derive2 { name="rat2302cdf"; version="2.18.0"; sha256="1748rc6yypd7y8wgr1qg632pcsxx0fkxjz6b3z4fhblgdllhy9wk"; depends=[AnnotationDbi]; };
   rat2302frmavecs = derive2 { name="rat2302frmavecs"; version="0.99.11"; sha256="0qy5hf86lrkn20yg6d46kcw9fjc0qhsbzbyavaj1v2zl34xvr1ii"; depends=[affy frma]; };
@@ -847,7 +853,7 @@ in with self; {
   ratCHRLOC = derive2 { name="ratCHRLOC"; version="2.1.6"; sha256="0mgk6lwvvdwjzjh4r1q1q6nfnx4vqx9iy6gmbrb9f31jf30hqnsb"; depends=[]; };
   rattoxfxcdf = derive2 { name="rattoxfxcdf"; version="2.18.0"; sha256="0q84lfaxnnj2zbm5q8xswa1md15fjj4i0djnqr835ixzn7px4yqn"; depends=[AnnotationDbi]; };
   rattoxfxprobe = derive2 { name="rattoxfxprobe"; version="2.18.0"; sha256="1kp159553rkcn9yh6x3yph3yjz2ja21wi9j5ax03qnhwlsl1x8ik"; depends=[AnnotationDbi]; };
-  reactome_db = derive2 { name="reactome.db"; version="1.86.2"; sha256="02p8ihds0hpcfj5mib0ifql9404svlavfyj36c15jzmbci0rnc8c"; depends=[AnnotationDbi]; };
+  reactome_db = derive2 { name="reactome.db"; version="1.88.0"; sha256="1fwbf53vklhvqa6n6pijb8xqyv2pap1hskkirnm5c42wmd6g4ql7"; depends=[AnnotationDbi]; };
   rgu34a_db = derive2 { name="rgu34a.db"; version="3.13.0"; sha256="1nl28gia0zh8xkfv8llxiysxk1k1gm6cs2wvl0n1xqhnr0rhla76"; depends=[AnnotationDbi org_Rn_eg_db]; };
   rgu34acdf = derive2 { name="rgu34acdf"; version="2.18.0"; sha256="08z9f16xp1m2mwl9vlmbffxl4zyyl8cgzf6wp66rrm32lvl0nbwq"; depends=[AnnotationDbi]; };
   rgu34aprobe = derive2 { name="rgu34aprobe"; version="2.18.0"; sha256="1gjxyq9128jgv3ic386f84rajgf3wz7yi2dja80y0ff4m0a48dlh"; depends=[AnnotationDbi]; };
@@ -861,7 +867,7 @@ in with self; {
   rgug4105a_db = derive2 { name="rgug4105a.db"; version="3.2.3"; sha256="0lq8k95qm0q7j65nf16p3f09dn9zs87n3k561wxrgi2lb0pf6j40"; depends=[AnnotationDbi org_Rn_eg_db]; };
   rgug4130a_db = derive2 { name="rgug4130a.db"; version="3.2.3"; sha256="0zlcn9spw23bj3px9z1l2f5afn09zbr6rv0nbd2h6dd12wrvy1zk"; depends=[AnnotationDbi org_Rn_eg_db]; };
   rgug4131a_db = derive2 { name="rgug4131a.db"; version="3.2.3"; sha256="1r272jf9cflf1yf4bznp4d59h7bd7adh1i3rf890h5ffc0xzf5cq"; depends=[AnnotationDbi org_Rn_eg_db]; };
-  rhesus_db0 = derive2 { name="rhesus.db0"; version="3.18.0"; sha256="08l0srvyac33z7ly90pscfh46ms4yfq2pqw502px095qpk0lfvz1"; depends=[AnnotationDbi]; };
+  rhesus_db0 = derive2 { name="rhesus.db0"; version="3.19.1"; sha256="1687fgxx9rj1ghjg7vhmli360algh6piwafdsi4l347sl1yhklcd"; depends=[AnnotationDbi]; };
   rhesuscdf = derive2 { name="rhesuscdf"; version="2.18.0"; sha256="0q2alkxm80wkzaf0q80df27q30qkswybavz05x6ywsihbs9h0nb8"; depends=[AnnotationDbi]; };
   rhesusprobe = derive2 { name="rhesusprobe"; version="2.18.0"; sha256="0fd8pvwvpcmx41k80nbccjxllh39fvjf7l9dr8facisl1x7gsfil"; depends=[AnnotationDbi]; };
   ri16cod_db = derive2 { name="ri16cod.db"; version="3.4.0"; sha256="1xz533vxjdyxx1wkks0kgk6b90sxs44iqcsvyds0xcm573bx8c6q"; depends=[AnnotationDbi org_Rn_eg_db]; };
@@ -884,7 +890,7 @@ in with self; {
   sugarcanecdf = derive2 { name="sugarcanecdf"; version="2.18.0"; sha256="0wghc6wr7iwkql63m3wibjjdcdpqd53z0g5rxdh553sjb0ca2n7z"; depends=[AnnotationDbi]; };
   sugarcaneprobe = derive2 { name="sugarcaneprobe"; version="2.18.0"; sha256="17zrydd8xd7m61bp750xlpcak0m3zgl0mvknz9s7mv2a35kp02ih"; depends=[AnnotationDbi]; };
   synaptome_data = derive2 { name="synaptome.data"; version="0.99.6"; sha256="00cqgx06wysz0qyicwnxlc8hpqkj5rwqlyfzsvy7agvcjjkarwg5"; depends=[AnnotationHub]; };
-  synaptome_db = derive2 { name="synaptome.db"; version="0.99.15"; sha256="111rg62l8f0k3m0fq8g63lg15agk9bkfcx5z990157cxs0rq07h3"; depends=[AnnotationHub DBI dbplyr dplyr igraph Rdpack RSQLite synaptome_data]; };
+  synaptome_db = derive2 { name="synaptome.db"; version="0.99.16"; sha256="0sd3kwhf9gh74j6qiaf1i2qzgn69i9yyvza26aysiplirbsy1jr0"; depends=[AnnotationHub DBI dbplyr dplyr igraph Rdpack RSQLite synaptome_data]; };
   targetscan_Hs_eg_db = derive2 { name="targetscan.Hs.eg.db"; version="0.6.1"; sha256="1p14jyhn1d2m6kww9vsb96263g8crnrff7qgyiz46pp9ww8mvxf4"; depends=[AnnotationDbi]; };
   targetscan_Mm_eg_db = derive2 { name="targetscan.Mm.eg.db"; version="0.6.1"; sha256="0ad6vxpwn9x82qcrpwcy1lwg0q3ik4vabxn01k6gwmbpvydz9cf5"; depends=[AnnotationDbi]; };
   test1cdf = derive2 { name="test1cdf"; version="2.18.0"; sha256="0nmkrp4b2p09pg8ndcnfv5y7w94xah6fa5pff60dp1s2s8dcgcr4"; depends=[AnnotationDbi]; };
@@ -901,8 +907,8 @@ in with self; {
   vitisviniferaprobe = derive2 { name="vitisviniferaprobe"; version="2.18.0"; sha256="1ggz1s37dwvrkhj4vx2civyhap7bgqsshy33lk14z4fjsayfi39a"; depends=[AnnotationDbi]; };
   wheatcdf = derive2 { name="wheatcdf"; version="2.18.0"; sha256="1gmbrdilqvm54h6nkb1cm01ki8aipiywd4qj8gpwlm2hqrimr8kr"; depends=[AnnotationDbi]; };
   wheatprobe = derive2 { name="wheatprobe"; version="2.18.0"; sha256="1fifi3pvzdrg356idwz0kx7qlf5mssdxlyvwpn3cjgw0z7n7cnw8"; depends=[AnnotationDbi]; };
-  worm_db0 = derive2 { name="worm.db0"; version="3.18.0"; sha256="1kiv5a7mxak12m58c7p9m10k4ip6v63ycgj9mfawa8i70cp1dvap"; depends=[AnnotationDbi]; };
-  xenopus_db0 = derive2 { name="xenopus.db0"; version="3.18.0"; sha256="1dacnx0bknhgdlaljm9r54dxxbw7vi6pgxhl2dmprkl9k02cc2q6"; depends=[AnnotationDbi]; };
+  worm_db0 = derive2 { name="worm.db0"; version="3.19.1"; sha256="1v24lpw3kfzlzq577vqpqy5bypwfkw1khag7smpq9bgv8dmfcx8r"; depends=[AnnotationDbi]; };
+  xenopus_db0 = derive2 { name="xenopus.db0"; version="3.19.1"; sha256="1d6bhq0ppgm087zkh4nmm3qx6f2mp0lblhzvayc6fqyzrzanvjiy"; depends=[AnnotationDbi]; };
   xenopuslaeviscdf = derive2 { name="xenopuslaeviscdf"; version="2.18.0"; sha256="1bcz1hr7gxw6ac4qvw0giph6hfcf5i9b11s274ypq512qc1d32iq"; depends=[AnnotationDbi]; };
   xenopuslaevisprobe = derive2 { name="xenopuslaevisprobe"; version="2.18.0"; sha256="0prb14zn2gvgxq8w0y21x1ng51cn3bgjhkppf7zkmnq1xkzvq0pw"; depends=[AnnotationDbi]; };
   xlaevis_db = derive2 { name="xlaevis.db"; version="3.2.3"; sha256="0cdi71c8pflb8n4yfxc0wmfi51w6z0dlz7nw5hv0hkx547v79d53"; depends=[AnnotationDbi org_Xl_eg_db]; };
@@ -914,7 +920,7 @@ in with self; {
   ye6100subbcdf = derive2 { name="ye6100subbcdf"; version="2.18.0"; sha256="1169hv56981b915rlr5w5sn6ppyjd8as7f4k1hbjzadrdrl3glwp"; depends=[AnnotationDbi]; };
   ye6100subccdf = derive2 { name="ye6100subccdf"; version="2.18.0"; sha256="0mhr4zd33gfvvivc17k7fb6nvmhq6h3q0xbx2zl09zd6qk09kizm"; depends=[AnnotationDbi]; };
   ye6100subdcdf = derive2 { name="ye6100subdcdf"; version="2.18.0"; sha256="11b1fflgc34lrj4yf1p7way5n83cm9c7znsbxpzlwddwyy8qib30"; depends=[AnnotationDbi]; };
-  yeast_db0 = derive2 { name="yeast.db0"; version="3.18.0"; sha256="1lrni3i2qljkrvpm63rrwhk52m2lr4ci82lxaczbk7spk8yr7mvy"; depends=[AnnotationDbi]; };
+  yeast_db0 = derive2 { name="yeast.db0"; version="3.19.1"; sha256="00zbg60zn0yzmfdm017al4hbncrlsdfb5syj8mfxha3522q1114h"; depends=[AnnotationDbi]; };
   yeast2_db = derive2 { name="yeast2.db"; version="3.13.0"; sha256="0aqbs3p6f3sc6nyggyk7gvg191b551rwq20009fnk0li50dg1ps6"; depends=[AnnotationDbi org_Sc_sgd_db]; };
   yeast2cdf = derive2 { name="yeast2cdf"; version="2.18.0"; sha256="0c68val9x8bfnv4xx0vag9dxwsx5q8dzbj0dpha3nshh12jw48w9"; depends=[AnnotationDbi]; };
   yeast2probe = derive2 { name="yeast2probe"; version="2.18.0"; sha256="125nif693qcmxc0nnnz917f9avggcdr8g9rfvx2qdc54a2l7vdb7"; depends=[AnnotationDbi]; };
@@ -923,7 +929,7 @@ in with self; {
   ygs98frmavecs = derive2 { name="ygs98frmavecs"; version="1.3.0"; sha256="1xrm1209xnknwvad7nvg1a0mbxz15z12yd4x5bia3cq03zcmzf9m"; depends=[]; };
   ygs98probe = derive2 { name="ygs98probe"; version="2.18.0"; sha256="0awf6z4j2vb2jk9a9j2r512yd3m31660y68pasa9mp488m270a3q"; depends=[AnnotationDbi]; };
   zebrafish_db = derive2 { name="zebrafish.db"; version="3.13.0"; sha256="13a65jxr3r5qjf82h1dr0k9qq20g14canqgqdd11k9gk5h31xhc7"; depends=[AnnotationDbi org_Dr_eg_db]; };
-  zebrafish_db0 = derive2 { name="zebrafish.db0"; version="3.18.0"; sha256="0qrd1b5l936jf30dnnmmi5fighwg4zmhz62acq6qzi4r7668g6sk"; depends=[AnnotationDbi]; };
+  zebrafish_db0 = derive2 { name="zebrafish.db0"; version="3.19.1"; sha256="1bg35zyxdvdhv0a1l5v61z6g0vz2h2ikad4lyv4akrmwndcrxijy"; depends=[AnnotationDbi]; };
   zebrafishcdf = derive2 { name="zebrafishcdf"; version="2.18.0"; sha256="0sq1xqhblbilvaiabhqyl9gxdj3jg576vgq8v0cls1zvvx0isrx0"; depends=[AnnotationDbi]; };
   zebrafishprobe = derive2 { name="zebrafishprobe"; version="2.18.0"; sha256="1pb8z2rdhq11hq391xyi236scyafbp56kbhhwsnha36yygz5drw0"; depends=[AnnotationDbi]; };
   LRBase_Ath_eg_db = derive2 { name="LRBase.Ath.eg.db"; version="2.0.1"; sha256="1f9yp9rfaydzz24bhl795379clcinibi4kavxzzavrvqfvkrgw84"; depends=[LRBaseDbi RSQLite]; broken = true; };
@@ -1021,7 +1027,6 @@ in with self; {
   SNPlocs_Hsapiens_dbSNP151_GRCh38 = derive2 { name="SNPlocs.Hsapiens.dbSNP151.GRCh38"; version="0.99.21"; sha256="19j5h0dgxd2iw35p6fblj8b3z2d92zmmp60khw5zs70scd5fs9pb"; depends=[BiocGenerics BSgenome GenomeInfoDb GenomicRanges IRanges S4Vectors]; broken = true; };
   XtraSNPlocs_Hsapiens_dbSNP141_GRCh38 = derive2 { name="XtraSNPlocs.Hsapiens.dbSNP141.GRCh38"; version="0.99.13"; sha256="1fidmrf0xr7wwd4v1y7x2wwyplplbs1z8jqpfdjpc8aclcy38m3f"; depends=[BSgenome GenomeInfoDb GenomicRanges IRanges S4Vectors]; broken = true; };
   greengenes13_5MgDb = derive2 { name="greengenes13.5MgDb"; version="2.0.0"; sha256="0j4pd653vlfpd9gq6gi459lra8xhyknjrzadkx9d3zjy0hcwpj7r"; depends=[]; broken = true; };
-  org_Pf_plasmo_db = derive2 { name="org.Pf.plasmo.db"; version="3.14.0"; sha256="1fs68n9xyia6v9jj8a91asmrirnh2xkqcgrjbzk7x6ss0rlwcl7w"; depends=[AnnotationDbi]; broken = true; };
   ribosomaldatabaseproject11_5MgDb = derive2 { name="ribosomaldatabaseproject11.5MgDb"; version="1.00.0"; sha256="04ppa4k8p54bmkq3jm41h0v4lb5hz95cmnakfzmqfml00ir04mxp"; depends=[]; broken = true; };
   silva128_1MgDb = derive2 { name="silva128.1MgDb"; version="1.00.0"; sha256="0pwwxxa55d3919rbczg5iskd03ignimk80m52kfi930b1kdg9qc2"; depends=[]; broken = true; };
 }
diff --git a/pkgs/development/r-modules/bioc-experiment-packages.nix b/pkgs/development/r-modules/bioc-experiment-packages.nix
index f891b4351481e..3cd77c6cf047a 100644
--- a/pkgs/development/r-modules/bioc-experiment-packages.nix
+++ b/pkgs/development/r-modules/bioc-experiment-packages.nix
@@ -4,445 +4,456 @@
 # Rscript generate-r-packages.R bioc-experiment >new && mv new bioc-experiment-packages.nix
 
 { self, derive }:
-let derive2 = derive { biocVersion = "3.18"; };
+let derive2 = derive { biocVersion = "3.19"; };
 in with self; {
-  ALL = derive2 { name="ALL"; version="1.44.0"; sha256="1ny5xv338a91gc88a1y5rrd27iawrrlmxhkidvc7xdsbrwd4flkc"; depends=[Biobase]; };
-  ALLMLL = derive2 { name="ALLMLL"; version="1.42.0"; sha256="1sq2j4gq78d68lqlqnd6nxi66gngzqyxicsyv85xp7dhcl59fwbm"; depends=[affy]; };
-  ARRmData = derive2 { name="ARRmData"; version="1.38.0"; sha256="0hlhc7kvw9n1bnbzingd1475qwivpx64sccnigdij8xdcm1mb4s7"; depends=[]; };
-  ASICSdata = derive2 { name="ASICSdata"; version="1.22.0"; sha256="01xm27j9c37vqpqz4d9v3bsji1z6ppgf64jja5dd4rz8i3gx9f68"; depends=[]; };
-  Affyhgu133A2Expr = derive2 { name="Affyhgu133A2Expr"; version="1.38.0"; sha256="1rvw1z3i8jz0x4ca2fy4xg2z97ffalh15prsd38sz4chj9cwybxc"; depends=[]; };
-  Affyhgu133Plus2Expr = derive2 { name="Affyhgu133Plus2Expr"; version="1.36.0"; sha256="10jilz65xba8a43zdvxksll9jpba9a1nj5w266d7laws056m4bh9"; depends=[]; };
-  Affyhgu133aExpr = derive2 { name="Affyhgu133aExpr"; version="1.40.0"; sha256="1kdp39k2s35jb3wp4qqm0lbrz94dxz1s9yygv8frfc70xv4hh7af"; depends=[]; };
-  AffymetrixDataTestFiles = derive2 { name="AffymetrixDataTestFiles"; version="0.40.0"; sha256="0h8i38qh3krw02v5x4rybh0pmfriy5l3ji6ahk2j0hgjfgq55z5b"; depends=[]; };
-  Affymoe4302Expr = derive2 { name="Affymoe4302Expr"; version="1.40.0"; sha256="01zgyp6yy980iyqan7f9qiv7pqzkr4cjli9q5ncig085afp2j88r"; depends=[]; };
-  AmpAffyExample = derive2 { name="AmpAffyExample"; version="1.42.0"; sha256="028473p5k69vmm8nh0qpmq30cyjcjaccclnsc7crr6brg2xjzcb6"; depends=[affy]; };
-  AneuFinderData = derive2 { name="AneuFinderData"; version="1.30.0"; sha256="03kp8qkqy2wph7lbzawgnh83qjm31ih1jp986qwphfhkfk125wg0"; depends=[]; };
-  AshkenazimSonChr21 = derive2 { name="AshkenazimSonChr21"; version="1.32.0"; sha256="0yin4q6bjhbh6a6xb62ac5w0kjb23y3kslrpkf9prr1cz42kvbjx"; depends=[]; };
-  AssessORFData = derive2 { name="AssessORFData"; version="1.20.0"; sha256="0lp80w5msdisic9j827wq7gsi9v6vnrchrlcmr2h5vd26plia98x"; depends=[DECIPHER]; };
-  BeadArrayUseCases = derive2 { name="BeadArrayUseCases"; version="1.40.0"; sha256="052r8snjwqzn49gjwv1fv5vhwl14vcmzwjxb4jgsbnb14wyhiliy"; depends=[beadarray GEOquery limma]; };
-  BeadSorted_Saliva_EPIC = derive2 { name="BeadSorted.Saliva.EPIC"; version="1.10.0"; sha256="088c6ikr7cslpx8yx89d3y00zigy6c21qa1m3dlrynghh7z8xi8w"; depends=[ExperimentHub minfi]; };
-  BioImageDbs = derive2 { name="BioImageDbs"; version="1.10.0"; sha256="1xgm9n01if7rb6lsgj4cg5dbjl8kq6zvkj4324vrwj1c1mdaa9nv"; depends=[animation AnnotationHub EBImage einsum ExperimentHub filesstrings magick magrittr markdown rmarkdown]; };
-  BioPlex = derive2 { name="BioPlex"; version="1.8.0"; sha256="0wwsbv4kyi67favswb5jrcgjv6a02s8gvwc23918y0rlcmkx07m7"; depends=[BiocFileCache GenomeInfoDb GenomicRanges GEOquery graph SummarizedExperiment]; };
-  BloodCancerMultiOmics2017 = derive2 { name="BloodCancerMultiOmics2017"; version="1.22.0"; sha256="1ya62fx76ifnbdbws51nw544n12sk4a35qichfc54v0ffbz0n38c"; depends=[beeswarm Biobase DESeq2 devtools dplyr ggdendro ggplot2 glmnet gtable ipflasso RColorBrewer reshape2 scales SummarizedExperiment survival tibble]; };
-  CCl4 = derive2 { name="CCl4"; version="1.40.0"; sha256="02fw0c7yy6vch31a726fpn163mi5zj13jvrpczqqshb2wz2qs58c"; depends=[Biobase limma]; };
-  CLL = derive2 { name="CLL"; version="1.42.0"; sha256="10l2a562l6hx32sxmvy8z59shq87v770rrh2fhddnj06dpx6n6cf"; depends=[affy Biobase]; };
-  CLLmethylation = derive2 { name="CLLmethylation"; version="1.22.0"; sha256="16k05g98j2zs8n827kvgishzcj0zcx12cwzvgznzjrwp56dl72xs"; depends=[ExperimentHub SummarizedExperiment]; };
-  COHCAPanno = derive2 { name="COHCAPanno"; version="1.38.0"; sha256="0f85l5alhzb14p30pmk11lv0wn6n4nsx8l9pc545fkwqdm5bsqh3"; depends=[]; };
-  CONFESSdata = derive2 { name="CONFESSdata"; version="1.30.0"; sha256="1gjsbrrz06qsa0lwjiil0qprhiajyy7im5wh6xks0ifs8rl9f9y4"; depends=[]; };
-  COPDSexualDimorphism_data = derive2 { name="COPDSexualDimorphism.data"; version="1.38.0"; sha256="1mkxf577xa7k1cflrwbdngj6kfhdz2a1dg04x849zm6ahmd3x9vf"; depends=[]; };
-  COSMIC_67 = derive2 { name="COSMIC.67"; version="1.38.0"; sha256="0c4nmzdhg2mam134j5p7g5h4g2f08aqj429b03cz83znqy4k25vl"; depends=[GenomicRanges SummarizedExperiment VariantAnnotation]; };
-  CRCL18 = derive2 { name="CRCL18"; version="1.22.0"; sha256="1wa9988sv5maml0v0n893m5vf773z0z530dpp5cjk02cd40npcrn"; depends=[Biobase]; };
-  CardinalWorkflows = derive2 { name="CardinalWorkflows"; version="1.34.0"; sha256="0cyzzyki6y2a7m4w7pk7x532a0i539irmpxbba3zs05cjs3213sb"; depends=[Cardinal]; };
-  CellMapperData = derive2 { name="CellMapperData"; version="1.28.0"; sha256="12mx1m4lm51y8pazmhrd8ickvvpa2sm9cg2znhs6pzmgc5bj09dx"; depends=[CellMapper ExperimentHub]; };
-  ChAMPdata = derive2 { name="ChAMPdata"; version="2.34.0"; sha256="175vsg2bh578fdrdchcma5q3jq7cfxa8b7g8954xv6fxrwcj0ffz"; depends=[BiocGenerics GenomicRanges]; };
-  ChIC_data = derive2 { name="ChIC.data"; version="1.22.0"; sha256="1akqpqw9ydf23whr346psciyyp9c3r0rsas1rkdkf8g5wrcj9vhk"; depends=[caret genomeIntervals randomForest]; };
-  ChIPXpressData = derive2 { name="ChIPXpressData"; version="1.40.0"; sha256="0i96lkgkzssrsa0gnc5l4f9j4x07cvq4s019v3b2fm5s288lvsnj"; depends=[bigmemory]; };
-  ChIPexoQualExample = derive2 { name="ChIPexoQualExample"; version="1.26.0"; sha256="1v35xq0a58kf0nabv3v6aiz9cd3gvwv0asmvq27ha0w1ngwd0dzk"; depends=[]; };
-  CluMSIDdata = derive2 { name="CluMSIDdata"; version="1.18.0"; sha256="0xahy0l8b8c7xgg6481vhliiis63brh3rszaj5d1f7sjbgzj7ahs"; depends=[]; };
-  CoSIAdata = derive2 { name="CoSIAdata"; version="1.2.0"; sha256="07x44vn6r1d0ixfzx9h3rzzn9gjjci59c41xhqn2b3k6f5c7fa9r"; depends=[ExperimentHub]; };
-  ConnectivityMap = derive2 { name="ConnectivityMap"; version="1.38.0"; sha256="0ixvmkyps62f10c0s4z0jas2106hnvijknai6abial6i3plffnsc"; depends=[]; };
-  CopyNeutralIMA = derive2 { name="CopyNeutralIMA"; version="1.20.0"; sha256="11l994nhi813qs1vmrqjgclw11k5hrsmcrlj5x5wqmqmnjjw1dsy"; depends=[ExperimentHub Rdpack]; };
-  CopyhelpeR = derive2 { name="CopyhelpeR"; version="1.34.0"; sha256="1zfsxi65lln93fb87l6fgp7vxldb4fvnf95h91dl424xyq6qjp1h"; depends=[]; };
-  DAPARdata = derive2 { name="DAPARdata"; version="1.32.1"; sha256="1iwiq5z1jnsrdp3pnhxlb2rvcfg91xp7xp2k0ry7r0gr9hjnnhr7"; depends=[MSnbase]; };
-  DExMAdata = derive2 { name="DExMAdata"; version="1.10.0"; sha256="1a2hrvbkhpwmjha0iwd17xv60d1cdl7iswc942bcac80mn6sw305"; depends=[Biobase]; };
-  DLBCL = derive2 { name="DLBCL"; version="1.42.2"; sha256="06x4jbyz0m9pzwxjl326rl5zahq5km5rryncbq99cz6mml2asn21"; depends=[Biobase graph]; };
-  DMRcatedata = derive2 { name="DMRcatedata"; version="2.20.3"; sha256="0fhk71j60s693vh333277ra0vgjys15h6r593v2j1y970650pq0a"; depends=[ExperimentHub GenomicFeatures Gviz IlluminaHumanMethylation450kanno_ilmn12_hg19 IlluminaHumanMethylationEPICanno_ilm10b4_hg19 plyr readxl rtracklayer]; };
-  DNAZooData = derive2 { name="DNAZooData"; version="1.2.0"; sha256="0d5466b830s82laamig1rw0p0n6i4npb11iyziv1sfvs4y8pbhl8"; depends=[BiocFileCache HiCExperiment rjson S4Vectors]; };
-  DeSousa2013 = derive2 { name="DeSousa2013"; version="1.38.0"; sha256="1xjygkr8rc1m9sv5bwph3wdf9hhcfdw8zji547nw0ayrg5d49689"; depends=[affy AnnotationDbi Biobase cluster ConsensusClusterPlus frma frmaTools gplots hgu133plus2_db hgu133plus2frmavecs pamr rgl ROCR siggenes survival sva]; };
-  DmelSGI = derive2 { name="DmelSGI"; version="1.34.0"; sha256="1qsvw7jrn070yfrgrkw9wsdb05g8ai5hmcqmyr78qs5qny0cz919"; depends=[abind gplots igraph knitr limma rhdf5 TSP]; };
-  DonaPLLP2013 = derive2 { name="DonaPLLP2013"; version="1.40.0"; sha256="0pxxg6rkdgafxj71mvlbm14vzv414hfh2p24rhyby7glrkzh2vq0"; depends=[EBImage]; };
-  DropletTestFiles = derive2 { name="DropletTestFiles"; version="1.12.0"; sha256="0a68xd9ks83a13s1cckmhrc50ijp7dw19yjf37v253q50xjp0z03"; depends=[AnnotationHub ExperimentHub S4Vectors]; };
-  DrugVsDiseasedata = derive2 { name="DrugVsDiseasedata"; version="1.38.0"; sha256="03g6syilb9v9cr2snh5w02ng6drff5i86drbmhv24yabwfgp3ndi"; depends=[]; };
-  DuoClustering2018 = derive2 { name="DuoClustering2018"; version="1.20.0"; sha256="0248jc4frjwbv5vq0483s2flbrnd70x4bkad7aphfxvrk897sn9v"; depends=[dplyr ExperimentHub ggplot2 ggthemes magrittr mclust purrr reshape2 tidyr viridis]; };
-  DvDdata = derive2 { name="DvDdata"; version="1.38.0"; sha256="16352h34az5sjq0bfgx9qs9njkn3nqws584cm1yydh2v60fclv63"; depends=[]; };
-  EGSEAdata = derive2 { name="EGSEAdata"; version="1.30.0"; sha256="0m281qwvz1cdfjf605czammw107x23pjpqh1adx5rvacpzgd8gli"; depends=[]; };
-  ELMER_data = derive2 { name="ELMER.data"; version="2.26.0"; sha256="0vwzj98pds0n3wc74y84d8srb1rvvf7kn7mjy4zf4d0qrp92sa94"; depends=[GenomicRanges]; };
-  EatonEtAlChIPseq = derive2 { name="EatonEtAlChIPseq"; version="0.40.0"; sha256="06mzals24cc4fl5j2w8mwa1s7q98qm80g7gnr5rz4hj66kmiak94"; depends=[GenomicRanges rtracklayer ShortRead]; };
-  EpiMix_data = derive2 { name="EpiMix.data"; version="1.4.0"; sha256="15qc8jjbv6b4nxszrj8lkj6cmbvvxlvknksp5pl13s3y176gm4d5"; depends=[ExperimentHub]; };
-  FANTOM3and4CAGE = derive2 { name="FANTOM3and4CAGE"; version="1.38.0"; sha256="01qz41q2cw4g7yg4nj7dlqsw6p8bh7dvm22a0vgp5dpm2pjagh15"; depends=[]; };
-  FIs = derive2 { name="FIs"; version="1.30.0"; sha256="0pnw0p2n9r1r0a7b1g32s7s2abbvdc976igdf48agkmilkhzpbb4"; depends=[]; };
-  FieldEffectCrc = derive2 { name="FieldEffectCrc"; version="1.12.0"; sha256="13xzypr95v5b3kynfn45b7rpg7kd0gcqmx3ap377plqs42nc7pa6"; depends=[AnnotationHub BiocStyle DESeq2 ExperimentHub RUnit SummarizedExperiment]; };
-  Fletcher2013a = derive2 { name="Fletcher2013a"; version="1.38.0"; sha256="04rvri7hcc5qd29c0xbkvjylh2x9flk7hf8rngd01fbhk9myxsaj"; depends=[Biobase gplots limma VennDiagram]; };
-  Fletcher2013b = derive2 { name="Fletcher2013b"; version="1.38.0"; sha256="1zp7wafibklwc7gr827yk1m6630c4r11nvy1i8jjhriqrjd4hnpn"; depends=[Fletcher2013a igraph RColorBrewer RedeR RTN]; };
-  FlowSorted_Blood_450k = derive2 { name="FlowSorted.Blood.450k"; version="1.40.0"; sha256="08xli4a24kkyy5q1ka0vyrpk11yfkyp0gxbs0k8khycppsq9s9sn"; depends=[minfi]; };
-  FlowSorted_Blood_EPIC = derive2 { name="FlowSorted.Blood.EPIC"; version="2.6.0"; sha256="0vfx1kpy02640nkkkpksisznybv0xb6jkvvkwsybsggcr2rdkl89"; depends=[AnnotationHub ExperimentHub genefilter minfi nlme quadprog S4Vectors SummarizedExperiment]; };
-  FlowSorted_CordBlood_450k = derive2 { name="FlowSorted.CordBlood.450k"; version="1.30.0"; sha256="04fx8mc21lflbxdz7fgz0jl30jk4gd09qqn5a654jlqhllnkg9rj"; depends=[minfi]; };
-  FlowSorted_CordBloodCombined_450k = derive2 { name="FlowSorted.CordBloodCombined.450k"; version="1.18.0"; sha256="0gl0dwhabdik17al1f1zq2vhg3bgbirxmsa1lxfv97vq08nqfshl"; depends=[AnnotationHub ExperimentHub IlluminaHumanMethylation450kanno_ilmn12_hg19 IlluminaHumanMethylationEPICanno_ilm10b4_hg19 minfi SummarizedExperiment]; };
-  FlowSorted_CordBloodNorway_450k = derive2 { name="FlowSorted.CordBloodNorway.450k"; version="1.28.0"; sha256="16hrhakaxhhilfy5gb0yrwijww8ph20i3qnfkrhhz6gjqh0iyri2"; depends=[minfi]; };
-  FlowSorted_DLPFC_450k = derive2 { name="FlowSorted.DLPFC.450k"; version="1.38.0"; sha256="0dj0gcz8mfd0ilihhysrbrzbkvfpwy1dx56g4dsizkg0k6aa8nha"; depends=[minfi]; };
-  GIGSEAdata = derive2 { name="GIGSEAdata"; version="1.20.0"; sha256="0qisi43rbjg9y2fglkri3bb1wxn4rcylhlidw2ml4bl7d36rfxdz"; depends=[]; };
-  GSBenchMark = derive2 { name="GSBenchMark"; version="1.22.0"; sha256="03ccpc69k0i0pffw0x0f49h71saz68chyppa8ncpyb5aj4lxp2gb"; depends=[]; };
-  GSE103322 = derive2 { name="GSE103322"; version="1.8.0"; sha256="018k8vkyr0cvycvkihkajf709jsw0y9mhf8yamzc72x5mwazwhym"; depends=[Biobase GEOquery]; };
-  GSE13015 = derive2 { name="GSE13015"; version="1.10.0"; sha256="1jc40g1gxz7rcxcgx11blx9li3fpa605rzs9k2glaglrp373r7dk"; depends=[Biobase GEOquery preprocessCore SummarizedExperiment]; };
-  GSE159526 = derive2 { name="GSE159526"; version="1.8.0"; sha256="0z8aywaihmrzfn0pzm5z7pxkpmkrar4090wavvy4vzkqbzdicv8r"; depends=[]; };
-  GSE62944 = derive2 { name="GSE62944"; version="1.30.0"; sha256="03wy4jjg6fh1fckmy0fqs776b3mhvrksk7hgkrjg7hr7p9b9dxwp"; depends=[Biobase GEOquery]; };
-  GSVAdata = derive2 { name="GSVAdata"; version="1.38.0"; sha256="1a9kspbmsnsrisy5xp5r3s1l7fz34v7riyiqn22hlc87zmnj7y5q"; depends=[Biobase GSEABase hgu95a_db]; };
-  GWASdata = derive2 { name="GWASdata"; version="1.40.0"; sha256="0lprcr2r0qzi7pa9pl6cp21z7vkjpn0d6ynnbbzji9ga82hd2njq"; depends=[GWASTools]; };
-  GenomicDistributionsData = derive2 { name="GenomicDistributionsData"; version="1.10.0"; sha256="1c9pqmdnnpm80zzsbl3j66xdwb3kzn7jkisx31sn5jaxzc660jc4"; depends=[AnnotationFilter AnnotationHub BSgenome data_table ensembldb ExperimentHub GenomeInfoDb GenomicFeatures GenomicRanges]; };
-  GeuvadisTranscriptExpr = derive2 { name="GeuvadisTranscriptExpr"; version="1.30.0"; sha256="12253pncfqvq7c1ajkdgfn4f861w2zk3j6p5xyra7c0d0z47a2b6"; depends=[]; };
-  HCAData = derive2 { name="HCAData"; version="1.18.0"; sha256="1rd1qra8g7dn9pg2mhh2j40p7p6ny838n4w6mx5ryw4xky95lf41"; depends=[AnnotationHub ExperimentHub HDF5Array SingleCellExperiment]; };
-  HCATonsilData = derive2 { name="HCATonsilData"; version="1.0.0"; sha256="1h5hrfslhyiqc855bb23rz9hahnpcy47h2lz1k0dj8glrjldq0jp"; depends=[base64enc ExperimentHub HDF5Array htmltools rmarkdown S4Vectors SingleCellExperiment SpatialExperiment SummarizedExperiment]; };
-  HD2013SGI = derive2 { name="HD2013SGI"; version="1.42.0"; sha256="1xxc85al19qxj17rj1k4q0xp3wgkxr007akmq3an7mqrah0y8hm8"; depends=[EBImage geneplotter gplots limma LSD RColorBrewer splots vcd]; };
-  HDCytoData = derive2 { name="HDCytoData"; version="1.22.1"; sha256="1048xgypsw257ihy0ysfxy5443dzhzp2rkjjvpivvrhw4dzl25ir"; depends=[ExperimentHub flowCore SummarizedExperiment]; };
-  HEEBOdata = derive2 { name="HEEBOdata"; version="1.40.0"; sha256="1xijrm32p191qydz1gkm8321b8ycb9h6y6m1qvc8shlhbbzw705h"; depends=[]; };
-  HIVcDNAvantWout03 = derive2 { name="HIVcDNAvantWout03"; version="1.42.0"; sha256="0kyblhc6fdc5c45qyqcr2qnmp1zrwdrc0j91fml04pw5yxrf6dw0"; depends=[]; };
-  HMP16SData = derive2 { name="HMP16SData"; version="1.22.0"; sha256="1ns7yyw0w8rrkw87awrrzxmb44gkkb1cn6j3cbzj8fbrd9whl30d"; depends=[AnnotationHub assertthat dplyr ExperimentHub kableExtra knitr magrittr readr S4Vectors stringr SummarizedExperiment tibble]; };
-  HMP2Data = derive2 { name="HMP2Data"; version="1.16.0"; sha256="1xrvslsybzy1zjvck6imrjxzd0hsiyx4ly71ndirxs7yhh13d1qk"; depends=[AnnotationHub assertthat data_table dplyr ExperimentHub kableExtra knitr magrittr MultiAssayExperiment phyloseq readr S4Vectors SummarizedExperiment]; };
-  HSMMSingleCell = derive2 { name="HSMMSingleCell"; version="1.22.0"; sha256="1nf6jsjvy3qacwz0dl5jc9h87xhj9q73b0g49c2yrxvv1dhayq0i"; depends=[]; };
-  HarmanData = derive2 { name="HarmanData"; version="1.30.0"; sha256="0mqv76lj2amb18k5533r6lc42g4a0jggcj7h2dh1lk1hl973asqg"; depends=[]; };
-  HarmonizedTCGAData = derive2 { name="HarmonizedTCGAData"; version="1.24.0"; sha256="1sfb7kzmwdvv71bf56z6sd81dfrs4v53igmnxphrvjiymdjxrb3b"; depends=[ExperimentHub]; };
-  HelloRangesData = derive2 { name="HelloRangesData"; version="1.28.0"; sha256="09jrcwrn5vjsva2fz28193llhrysswhxyq83rczi5dnimr5qqnxc"; depends=[]; };
-  HiBED = derive2 { name="HiBED"; version="1.0.0"; sha256="1cacjpghp5zbbcvn0fpfyhg56dx9bfa8d2qwf1dvbmwwcm85l0vw"; depends=[AnnotationHub dplyr FlowSorted_Blood_EPIC FlowSorted_DLPFC_450k minfi SummarizedExperiment tibble]; };
-  HiCDataHumanIMR90 = derive2 { name="HiCDataHumanIMR90"; version="1.22.0"; sha256="1jy5hpq8vdki23yy3ivlhqj6k80z1rnby4xrk83wk0rxiz4sdxix"; depends=[]; };
-  HiCDataLymphoblast = derive2 { name="HiCDataLymphoblast"; version="1.38.0"; sha256="1a6kf55sqqpqs3gk76np9payqj9i75ggn06iy46cazslnhnvmdvg"; depends=[]; };
-  HiContactsData = derive2 { name="HiContactsData"; version="1.4.0"; sha256="07i91rz7bn6g27wbjrwgck3mdmj8lrsdda6pza9k1ghh5zssrx7i"; depends=[AnnotationHub BiocFileCache ExperimentHub]; };
-  HighlyReplicatedRNASeq = derive2 { name="HighlyReplicatedRNASeq"; version="1.14.0"; sha256="1zz6xqn9amlh7v7v8c67i4n94lxc8w46g3gqnhbrlcpi6zid36a9"; depends=[ExperimentHub S4Vectors SummarizedExperiment]; };
-  Hiiragi2013 = derive2 { name="Hiiragi2013"; version="1.38.0"; sha256="04ywn2nw551x082v9pxglxl83kfccsds566lwkpa87098i4wdx85"; depends=[affy Biobase boot clue cluster genefilter geneplotter gplots gtools KEGGREST lattice latticeExtra MASS mouse4302_db RColorBrewer xtable]; };
-  HumanAffyData = derive2 { name="HumanAffyData"; version="1.28.0"; sha256="0g24nr0jdw6509xjski83jf2r35iklmnhqikmfr90ki4rn0fqar0"; depends=[Biobase ExperimentHub]; };
-  IHWpaper = derive2 { name="IHWpaper"; version="1.30.0"; sha256="06qbcnq2i0qjc4xqld3gd8746qpvxy4avqba82vzdk0h95kxirmj"; depends=[Biobase BiocGenerics BiocParallel cowplot DESeq2 dplyr fdrtool genefilter ggplot2 IHW qvalue Rcpp SummarizedExperiment]; };
-  ITALICSData = derive2 { name="ITALICSData"; version="2.40.0"; sha256="0fzx2qqykma2r2ds53wik4kb9a0wvybr63vf34s91731k21mgsqn"; depends=[]; };
-  Illumina450ProbeVariants_db = derive2 { name="Illumina450ProbeVariants.db"; version="1.38.0"; sha256="1h0qcdmyd22x5y5iwi1w89ppb1k3nb2awwim1lcxgdinab8km52b"; depends=[]; };
-  IlluminaDataTestFiles = derive2 { name="IlluminaDataTestFiles"; version="1.40.0"; sha256="08fb7aywjjka5lrpb46cd322sfnhcch5ilf5aq0a2sdq12m2psyi"; depends=[]; };
-  Iyer517 = derive2 { name="Iyer517"; version="1.44.0"; sha256="1zahcx2kjspm3bvgxklfgd34srlrxcq9xcj37qa20b08892llkk7"; depends=[Biobase]; };
-  JASPAR2014 = derive2 { name="JASPAR2014"; version="1.38.0"; sha256="1ha5nm4v28bfxxa6jqkag7hy0b7bph15v1qs8xwd9w2wam2znazx"; depends=[Biostrings]; };
-  JASPAR2016 = derive2 { name="JASPAR2016"; version="1.30.0"; sha256="0dyx29f7jnyqcj85j2yrl8jcphi2kymx2y2mk7ws25xcahl5zzpy"; depends=[]; };
-  KEGGandMetacoreDzPathwaysGEO = derive2 { name="KEGGandMetacoreDzPathwaysGEO"; version="1.22.0"; sha256="1rmn5zx5p4c8is5dd80nppl1r8ciyccwhiir0312bpaaplyc9qks"; depends=[Biobase BiocGenerics]; };
-  KEGGdzPathwaysGEO = derive2 { name="KEGGdzPathwaysGEO"; version="1.40.0"; sha256="05s6cq27cdw9w9laq5hxjiynjavd873w2idpwa1k4kw0rdsni8cb"; depends=[Biobase BiocGenerics]; };
-  KOdata = derive2 { name="KOdata"; version="1.28.0"; sha256="1dflsvfz7c2ahs60s4wx8mc9ar8qrz9ax8g9m67jchygcmqs4jla"; depends=[]; };
-  LRcellTypeMarkers = derive2 { name="LRcellTypeMarkers"; version="1.10.0"; sha256="1wad78cpgf9pl8hl4issb0k1m0dlrk0bradkdz5b5a5pamlwh82c"; depends=[ExperimentHub]; };
-  LiebermanAidenHiC2009 = derive2 { name="LiebermanAidenHiC2009"; version="0.40.0"; sha256="06qifvjaxjz51p2vkfdzxjbj5040772y3gzc0qpzsh5fapprkxv9"; depends=[IRanges KernSmooth]; };
-  ListerEtAlBSseq = derive2 { name="ListerEtAlBSseq"; version="1.34.0"; sha256="15v80d554pai4584dhy3nzwva38b9r6997br7xqysj7v8x2f4392"; depends=[methylPipe]; };
-  LungCancerACvsSCCGEO = derive2 { name="LungCancerACvsSCCGEO"; version="1.38.0"; sha256="1d0zfx6sqwanyh67996v008sjkscskm5z24n9siklc9w416nqa63"; depends=[]; };
-  LungCancerLines = derive2 { name="LungCancerLines"; version="0.40.0"; sha256="0yr7l7964nkwlz6s9hsdab2sihrngk9wqakrn4pm5h8m15f8ls46"; depends=[Rsamtools]; };
-  M3DExampleData = derive2 { name="M3DExampleData"; version="1.28.0"; sha256="0rp1zp14wvfwy67m0ph8amm41frj76gfylacdbdjyblcpdgzzlnq"; depends=[]; };
-  MACSdata = derive2 { name="MACSdata"; version="1.10.0"; sha256="117jy39rn972hzwcckx5wdsrsxfzhwbx4wb6air4l7xcb6qmfrj1"; depends=[]; };
-  MAQCsubset = derive2 { name="MAQCsubset"; version="1.40.0"; sha256="1qqn4mf2jrdkn28n1npzag50m24j29nm0adcj276s8fgwdayv434"; depends=[affy Biobase lumi]; };
-  MAQCsubsetILM = derive2 { name="MAQCsubsetILM"; version="1.40.0"; sha256="1bb158bmy7195wnj0wap08g621xbzflvj30pv4l7mwc54lm1vqfx"; depends=[Biobase lumi]; };
-  MEDIPSData = derive2 { name="MEDIPSData"; version="1.38.0"; sha256="1lrxg5vrfqxrnnpn8m3ypk3ikc6pa7pszxfi08gaa3a4c2glcc4m"; depends=[]; };
-  MEEBOdata = derive2 { name="MEEBOdata"; version="1.40.0"; sha256="0ni928njn0hm38njgbnz223pvpq1318si12z5d56h3cczi2f3a37"; depends=[]; };
-  MMAPPR2data = derive2 { name="MMAPPR2data"; version="1.16.0"; sha256="16ang08nc4jw8m4faacd0rhv47h5wlp771nd6d8bn1r6d5b9si3w"; depends=[Rsamtools]; };
-  MMDiffBamSubset = derive2 { name="MMDiffBamSubset"; version="1.38.0"; sha256="1awhcc4zjmzwqc35xv1l2alybbnv1b16bbxn85xywdq0qyj8zgxp"; depends=[]; };
-  MOFAdata = derive2 { name="MOFAdata"; version="1.18.0"; sha256="1pl593dlf87g88bdabqqn2a9b1vkgg4znp1l9wbyk49a35l2rqy1"; depends=[]; };
-  MSMB = derive2 { name="MSMB"; version="1.20.0"; sha256="1nq9y7c3y0q1040fzsg5hiavqq4n1778cry420f03db1yg40lns0"; depends=[tibble]; };
-  MUGAExampleData = derive2 { name="MUGAExampleData"; version="1.22.0"; sha256="1q8bqqpc14iymmmmv87yqzkpjlzq4r801hjav8kymsw66zlqi0rq"; depends=[]; };
-  MerfishData = derive2 { name="MerfishData"; version="1.4.1"; sha256="055wmm0r8wyv8i2kil5f5lh5n2kjw36q4yrpqswf0fvdsvvrpaak"; depends=[AnnotationHub BumpyMatrix EBImage ExperimentHub S4Vectors SingleCellExperiment SpatialExperiment SummarizedExperiment]; };
-  MetaGxBreast = derive2 { name="MetaGxBreast"; version="1.22.0"; sha256="0b0s7g4ijqlsfbr8wdrs1g54hba9ry6i1af71ly0v6l7ff0j65r1"; depends=[AnnotationHub Biobase ExperimentHub impute lattice SummarizedExperiment]; };
-  MetaGxOvarian = derive2 { name="MetaGxOvarian"; version="1.22.0"; sha256="0k144fi1i9c1rlsif2pfk4lyzk25lkpfp1c4yanqqzbij8z50y6k"; depends=[AnnotationHub Biobase ExperimentHub impute lattice SummarizedExperiment]; };
-  MetaGxPancreas = derive2 { name="MetaGxPancreas"; version="1.22.0"; sha256="0a5daghij0c6ykdh2vvd0gmrinqbvnn2hm8apga768ib04ylhb13"; depends=[AnnotationHub ExperimentHub impute S4Vectors SummarizedExperiment]; };
-  MetaScope = derive2 { name="MetaScope"; version="1.2.0"; sha256="0wpp2h3zldvcw9r8bjbbpcvkd3hgh11dp8qalcbm36kx4djc2d1a"; depends=[BiocFileCache Biostrings data_table dplyr ggplot2 magrittr Matrix MultiAssayExperiment Rbowtie2 readr rlang Rsamtools S4Vectors stringr SummarizedExperiment taxize tidyr]; };
-  MethylAidData = derive2 { name="MethylAidData"; version="1.34.0"; sha256="0kn20wsij54c3i2w3yai97qqmnbawsz0326ai5zrlkalkra4w1r9"; depends=[MethylAid]; };
-  MethylSeqData = derive2 { name="MethylSeqData"; version="1.12.0"; sha256="0bw450ada6nnz19d2b9qvx0szyldswrsmy21vsm0dw7idh4xfj6c"; depends=[ExperimentHub GenomeInfoDb GenomicRanges HDF5Array IRanges rhdf5 S4Vectors SummarizedExperiment]; };
-  MicrobiomeBenchmarkData = derive2 { name="MicrobiomeBenchmarkData"; version="1.4.0"; sha256="1546ccbnz86scdslf17rzsvyc7h0pb4mw77b17jicfwr8h4qff25"; depends=[ape BiocFileCache S4Vectors SummarizedExperiment TreeSummarizedExperiment]; };
-  MouseGastrulationData = derive2 { name="MouseGastrulationData"; version="1.16.0"; sha256="0m03wrqgfhlyc0rmjjcj8b9gcc2rv644hffnff3j1bnkjg5rldi0"; depends=[BiocGenerics BumpyMatrix ExperimentHub S4Vectors SingleCellExperiment SpatialExperiment SummarizedExperiment]; };
-  MouseThymusAgeing = derive2 { name="MouseThymusAgeing"; version="1.10.0"; sha256="19p7a0k565yz5201klib85z2gwqss0ywbv66sh0bvk4g5cmd9k0y"; depends=[BiocGenerics ExperimentHub S4Vectors SingleCellExperiment SummarizedExperiment]; };
-  NCIgraphData = derive2 { name="NCIgraphData"; version="1.38.0"; sha256="1haia26flsmh553z0pn4zh4s9w3smkl5q16hmz4vpfwkgc3f9506"; depends=[]; };
-  NGScopyData = derive2 { name="NGScopyData"; version="1.22.0"; sha256="0858c5cqkjlk55whiravwmnia26yfkgw4656zfscpdfz2n9xm50m"; depends=[]; };
-  NanoporeRNASeq = derive2 { name="NanoporeRNASeq"; version="1.12.0"; sha256="0jvwl6k12acinwsvs62vx7dpnhjbcvhf8sbdw13gwwknrn96hgh4"; depends=[ExperimentHub]; };
-  NestLink = derive2 { name="NestLink"; version="1.18.0"; sha256="1nr7ddlrbd4q963750x3cdnn7y6mf2y5q3v37ilhfplypnynlgy1"; depends=[AnnotationHub Biostrings ExperimentHub gplots protViz ShortRead]; };
-  NetActivityData = derive2 { name="NetActivityData"; version="1.4.0"; sha256="1h3ih2y9jl5d3xk5fydgs9s9bsny3lksn67jxmrksxxrabr5zknl"; depends=[]; };
-  Neve2006 = derive2 { name="Neve2006"; version="0.40.0"; sha256="0an77i7z2pqrgizd0z5n4iihg9zp3xbl8rgnfphsh9q3fbvwp185"; depends=[annotate Biobase hgu133a_db]; };
-  NxtIRFdata = derive2 { name="NxtIRFdata"; version="1.8.0"; sha256="0gvx81w5krzdzz4v09qlscr0hklzmxq2pz4slwwy1dflq0rjswk5"; depends=[BiocFileCache ExperimentHub R_utils rtracklayer]; };
-  OMICsPCAdata = derive2 { name="OMICsPCAdata"; version="1.20.0"; sha256="1jbdyxqyjp4yn6ywk80gin29wi5szwnz661l9hb8gcfbmhv5m1sv"; depends=[MultiAssayExperiment]; };
-  ObMiTi = derive2 { name="ObMiTi"; version="1.10.0"; sha256="1sgl38mbnv99miy6n2gps9r5dzhadf1gvin95nif379kdq6xl0nz"; depends=[ExperimentHub SummarizedExperiment]; };
-  OnassisJavaLibs = derive2 { name="OnassisJavaLibs"; version="1.24.0"; sha256="0ynb0n4d1ic1xhnwvqxvncr3vm5kwl3y0771rivrz6rrynfchy4c"; depends=[rJava]; };
-  PCHiCdata = derive2 { name="PCHiCdata"; version="1.30.0"; sha256="19xzn1agfn34y16prfcgwzbz40bw654zj28lhamiv2mvljxy60jx"; depends=[Chicago]; };
-  PREDAsampledata = derive2 { name="PREDAsampledata"; version="0.42.0"; sha256="1ps8m8g0s5vsxhhr80ylxcngnn7xipfc70cyxszwmhcwgy1ghwja"; depends=[affy annotate Biobase PREDA]; };
-  PWMEnrich_Dmelanogaster_background = derive2 { name="PWMEnrich.Dmelanogaster.background"; version="4.36.0"; sha256="02aiy2qb62r8qgi5gaj2scra46qgf4wh3lzpqvsxbi7c2glnp7ig"; depends=[PWMEnrich]; };
-  PWMEnrich_Hsapiens_background = derive2 { name="PWMEnrich.Hsapiens.background"; version="4.36.0"; sha256="0fr775h5k98xspmjpyf363dav38j7cixnmhapfsy8ijijyl4g8jw"; depends=[PWMEnrich]; };
-  PWMEnrich_Mmusculus_background = derive2 { name="PWMEnrich.Mmusculus.background"; version="4.36.0"; sha256="1gwmilyikslgp56xrff2sqqm32lmdq589cya19cm0yi7pa17fqdw"; depends=[PWMEnrich]; };
-  PasillaTranscriptExpr = derive2 { name="PasillaTranscriptExpr"; version="1.30.0"; sha256="17482ypqdvgc6p3fvkfdwfcpm3gn4rfd6zjsnlbqc99dpikq13sr"; depends=[]; };
-  PathNetData = derive2 { name="PathNetData"; version="1.38.0"; sha256="07wq6526ihrzmyk2rql0zpkr6qkg6rdkk2f03lxkaq7fsbidb03q"; depends=[]; };
-  PepsNMRData = derive2 { name="PepsNMRData"; version="1.20.0"; sha256="1xy05yd2nzrl2s0bjsr9y94rwcm68gglbijxplalyy3ppcwwm55c"; depends=[]; };
-  PhyloProfileData = derive2 { name="PhyloProfileData"; version="1.16.0"; sha256="1r51zrvm8n7w66ii97wz6ncz0d7s473ppdn8b958mh15w81rk5fr"; depends=[BiocStyle Biostrings ExperimentHub]; };
-  ProData = derive2 { name="ProData"; version="1.40.0"; sha256="099xf8143k2z74nb1hdlswrv1gjmg41255x0njxa4wzdwlpyp5k2"; depends=[Biobase]; };
-  PtH2O2lipids = derive2 { name="PtH2O2lipids"; version="1.28.0"; sha256="1rx0sg5nz7i20d74y0cq6nybc1q62h0d9rpi3dk02jfngk3zzb5d"; depends=[CAMERA LOBSTAHS xcms]; };
-  QDNAseq_hg19 = derive2 { name="QDNAseq.hg19"; version="1.32.0"; sha256="01fnbbkyfpim0xh6v0bm553pmrg9n3bnwn4adds0p47lai1n7dr8"; depends=[QDNAseq]; };
-  QDNAseq_mm10 = derive2 { name="QDNAseq.mm10"; version="1.32.0"; sha256="0x54ncmxqb1qci41qy7q9gskx7zp1rcpad3wvil023h81l1s5pg6"; depends=[QDNAseq]; };
-  QUBICdata = derive2 { name="QUBICdata"; version="1.30.0"; sha256="0apbndslrdrflmwvz456q31x3mr1p7v7kpbl0fp0hajadjb38aha"; depends=[]; };
-  RGMQLlib = derive2 { name="RGMQLlib"; version="1.22.0"; sha256="1sys8vji70mkd100zy84ywv6ralr5k7z1044rn03wp75s1h8klwy"; depends=[]; };
-  RITANdata = derive2 { name="RITANdata"; version="1.26.0"; sha256="0jkcf4g2h6bpx0v8ybwnrni3qq9hajxxprfq9pszpmf4xb9cmgs2"; depends=[]; };
-  RMassBankData = derive2 { name="RMassBankData"; version="1.40.0"; sha256="190q4q8201i1v3bb4snasxy2kbwvnppq9kpqmxa1hg9mlvk643fq"; depends=[]; };
-  RNAinteractMAPK = derive2 { name="RNAinteractMAPK"; version="1.40.0"; sha256="0s5bb73ixp2zhzj0ssq3kai6ijrpn9flg23f1n2vsi2vf66wfajj"; depends=[Biobase fields gdata genefilter lattice MASS RNAinteract sparseLDA]; };
-  RNAmodR_Data = derive2 { name="RNAmodR.Data"; version="1.16.0"; sha256="0p9x1j4ra11banvifh5z07i26b2s59b2knbgj44yx4qi0d3cnn81"; depends=[ExperimentHub ExperimentHubData]; };
-  RNAseqData_HNRNPC_bam_chr14 = derive2 { name="RNAseqData.HNRNPC.bam.chr14"; version="0.40.0"; sha256="1gdwsbkjnb3927ihq2gbwrksvhm61wm114bwhazypmpnnwcfv27f"; depends=[]; };
-  RRBSdata = derive2 { name="RRBSdata"; version="1.22.0"; sha256="1visrkyxljp3d7h7qgf72l71w91vah93qmi733s15zmsm090sf1c"; depends=[BiSeq]; };
-  RTCGA_CNV = derive2 { name="RTCGA.CNV"; version="1.30.0"; sha256="0akfifgkkhzrrw21gxm4h2liam5f7rd2ghidyr21c6660wg1444c"; depends=[RTCGA]; };
-  RTCGA_PANCAN12 = derive2 { name="RTCGA.PANCAN12"; version="1.30.0"; sha256="1iz72gbpm0msiasrc0xyiw9c3s2a59fgbz7kfrlwskspqvm9pvdl"; depends=[RTCGA]; };
-  RTCGA_RPPA = derive2 { name="RTCGA.RPPA"; version="1.30.0"; sha256="1ln4v06pf2skxaa0vcwp9m2vkczm5bc37kfczqg022n0fi7wa084"; depends=[RTCGA]; };
-  RTCGA_clinical = derive2 { name="RTCGA.clinical"; version="20151101.32.0"; sha256="0ivfq9z66v9a867v4c6581v7pmbcwy1g6fr5bgs1fp0n7rl6b15g"; depends=[RTCGA]; };
-  RTCGA_mRNA = derive2 { name="RTCGA.mRNA"; version="1.30.0"; sha256="1wf5rxxxa3qgihpa9hbcabryz74k3vc1yp2mscs4w0zdym48fw78"; depends=[RTCGA]; };
-  RTCGA_methylation = derive2 { name="RTCGA.methylation"; version="1.30.0"; sha256="1g543scp553gya9ax7c7rm93gra1mqhv93y8jj9hvv7sq5mx469j"; depends=[RTCGA]; };
-  RTCGA_miRNASeq = derive2 { name="RTCGA.miRNASeq"; version="1.30.0"; sha256="1hvb77c44vbhyqbpqrid5vrashqng3clpqm5svr7fq6xhqaj3v34"; depends=[RTCGA]; };
-  RTCGA_mutations = derive2 { name="RTCGA.mutations"; version="20151101.32.0"; sha256="1n265xk9rr491rlcgy98nvvxmnhjf9b4x80qbc9xlb0ks3hpgx13"; depends=[RTCGA]; };
-  RTCGA_rnaseq = derive2 { name="RTCGA.rnaseq"; version="20151101.32.0"; sha256="1nmn9dqp6kdsz7536wln8wv1ms8nlgys7xlmc555q1irc1pz4ksc"; depends=[RTCGA]; };
-  RUVnormalizeData = derive2 { name="RUVnormalizeData"; version="1.22.0"; sha256="1sqkvkwlvwwspj6xg3xq062s2brr6yjmhw5dlccrjff0qcc9w41p"; depends=[Biobase]; };
-  RcisTarget_hg19_motifDBs_cisbpOnly_500bp = derive2 { name="RcisTarget.hg19.motifDBs.cisbpOnly.500bp"; version="1.22.0"; sha256="0yhalgrj0p99ka7wfcnb70adjy4n7zlk9caxd5fk8hhspzkwzkfp"; depends=[data_table]; };
-  ReactomeGSA_data = derive2 { name="ReactomeGSA.data"; version="1.16.1"; sha256="18n4shnlbgz6vv63hljzcpz1yd2y4p0gwgj6i37lvr4p7hmg7bi3"; depends=[edgeR limma ReactomeGSA Seurat]; };
-  RegParallel = derive2 { name="RegParallel"; version="1.20.0"; sha256="0fxvzj5vgsdq2jm467a5ddya5p6603rzhklh8hmdn9d352yzy01i"; depends=[arm data_table doParallel foreach iterators stringr survival]; };
-  RforProteomics = derive2 { name="RforProteomics"; version="1.40.0"; sha256="11cjlhvk04r0flf0wr7n4qmlazaaw4kd5gs589h95mblsmk4andx"; depends=[BiocManager biocViews MSnbase R_utils]; };
-  RnBeads_hg19 = derive2 { name="RnBeads.hg19"; version="1.34.0"; sha256="0mv6pqkhwiwdq72dh0m79c7inpkvz8nwy4m8b93sjy1wi76wgci6"; depends=[GenomicRanges]; };
-  RnBeads_hg38 = derive2 { name="RnBeads.hg38"; version="1.34.0"; sha256="19l875n3injnn1af01jmlf62a6dgd9mn54ppcsy1x71wrcs1lk25"; depends=[GenomicRanges]; };
-  RnBeads_mm10 = derive2 { name="RnBeads.mm10"; version="2.10.0"; sha256="0x1nxgdwad42k39mrfilbi1kkm9avm0cbcrhsrxs67ajng9qmci8"; depends=[GenomicRanges]; };
-  RnBeads_mm9 = derive2 { name="RnBeads.mm9"; version="1.34.0"; sha256="1d7lshk5a8zn4wi4f5b8q4d206i379iv6gxxsbzygrlnk74j9kzf"; depends=[GenomicRanges]; };
-  RnBeads_rn5 = derive2 { name="RnBeads.rn5"; version="1.34.0"; sha256="182pdfi6dvz4r5v41r62d0rsxkm5vlrl7y6pwx9nx3h1gaiybl8s"; depends=[GenomicRanges]; };
-  RnaSeqSampleSizeData = derive2 { name="RnaSeqSampleSizeData"; version="1.34.0"; sha256="0p2q7phn40ax94yh43xg72fmnnljfi6cfiyaad39br1hi2b6hrjf"; depends=[edgeR]; };
-  SBGNview_data = derive2 { name="SBGNview.data"; version="1.16.0"; sha256="1nprhg7rkia9jwy8mqx7iqdh1qs81nk9al8fvv1ynq2cc9x77jfr"; depends=[bookdown knitr rmarkdown]; };
-  SCLCBam = derive2 { name="SCLCBam"; version="1.34.0"; sha256="0jnpg8qdbd5b6809glzg68n12bavnpqaaarn2vfv5c6055qg6jgy"; depends=[]; };
-  SFEData = derive2 { name="SFEData"; version="1.4.0"; sha256="0wkb27cs4zvvhclgk2slx8n7jx1mx3q87kn86n4rjdcx2074ndqz"; depends=[AnnotationHub BiocFileCache ExperimentHub]; };
-  SNAData = derive2 { name="SNAData"; version="1.48.0"; sha256="0qd48ggg1wjy5h47hzl9iqzy13gsxxn4f7fq4b0ra35vhckmcvyf"; depends=[graph]; };
-  SNAGEEdata = derive2 { name="SNAGEEdata"; version="1.38.0"; sha256="17wbf4xsljkryzjpk57kvjbiln0ig8d717j953wy0inz7vzdkpkn"; depends=[]; };
-  SNPhoodData = derive2 { name="SNPhoodData"; version="1.32.0"; sha256="0p8361lmlfz496ivw9qaqkg7b3hr4gb9g9r73fxp6amy2xncb00g"; depends=[]; };
-  STexampleData = derive2 { name="STexampleData"; version="1.10.1"; sha256="1fr29mnczvglpkwh4vdy6klahv014ikmxwx055x4grkxvygbqm23"; depends=[ExperimentHub SpatialExperiment]; };
-  SVM2CRMdata = derive2 { name="SVM2CRMdata"; version="1.34.0"; sha256="1k7cjakxcqq86xvx0d0799hb94hi7w05amd9yncd0nf4dcy6zm0f"; depends=[]; };
-  SimBenchData = derive2 { name="SimBenchData"; version="1.10.0"; sha256="1g5wff2hx3sra48wcvwh3hs9lpfavq2pqflcm9wfcch9y10m8iqd"; depends=[ExperimentHub S4Vectors]; };
-  Single_mTEC_Transcriptomes = derive2 { name="Single.mTEC.Transcriptomes"; version="1.30.0"; sha256="1w3f71mfq74sjlsasi87gvqs2mhny41zm22zswz9km5msi8r2wva"; depends=[]; };
-  SingleCellMultiModal = derive2 { name="SingleCellMultiModal"; version="1.14.0"; sha256="0kwff2nqv7nf7rqifyzr6klba6k1h29y4332b60k7hv3psjsm015"; depends=[AnnotationHub BiocBaseUtils BiocFileCache ExperimentHub HDF5Array Matrix MultiAssayExperiment S4Vectors SingleCellExperiment SpatialExperiment SummarizedExperiment]; };
-  SingleMoleculeFootprintingData = derive2 { name="SingleMoleculeFootprintingData"; version="1.10.0"; sha256="1chlik8ycsiw0kvxikiplb5xkj4afi4qniy666csyqlksaflr703"; depends=[ExperimentHub]; };
-  SomatiCAData = derive2 { name="SomatiCAData"; version="1.40.0"; sha256="0m92db12a9h7866l3vbvpqnxnvkbik8znh3l6qyl22l438wvd8b2"; depends=[]; };
-  SomaticCancerAlterations = derive2 { name="SomaticCancerAlterations"; version="1.38.0"; sha256="140bn20n60dnsb3li0ygnymfb7wwgh523yx8pmc6zvyx6izdg618"; depends=[GenomicRanges IRanges S4Vectors]; };
-  SpatialDatasets = derive2 { name="SpatialDatasets"; version="1.0.0"; sha256="1szsggymx05swr4i5mgxcxk7jbz8qh6xxwpnmmzajns03gmszggy"; depends=[ExperimentHub SpatialExperiment]; };
-  SpikeIn = derive2 { name="SpikeIn"; version="1.44.0"; sha256="04saqrdzl1irdbvgr9s86sgwsvnlp5l4xbx16wj41476rbzhg2aw"; depends=[affy]; };
-  SpikeInSubset = derive2 { name="SpikeInSubset"; version="1.42.0"; sha256="14w4g6n0nn1mg9wifqp2jrxb0hy2sqfcnycwhvir1znfck83fzir"; depends=[affy Biobase]; };
-  TBX20BamSubset = derive2 { name="TBX20BamSubset"; version="1.38.0"; sha256="1f09l2ihh80cqqg6sw5ypa51c1zsspkq2g06lbfi19zgllcfh80f"; depends=[Rsamtools xtable]; };
-  TCGAMethylation450k = derive2 { name="TCGAMethylation450k"; version="1.38.0"; sha256="0pz8xmi4zxp1qvpcwhf54sy5lhpaspdlad1dlrhxgjbfm8xl535q"; depends=[]; };
-  TCGAWorkflowData = derive2 { name="TCGAWorkflowData"; version="1.26.0"; sha256="03p3ifgr9w737v9dvx1qvj2kdyf1l9a2qnmwii0nmlak9dp1cc52"; depends=[SummarizedExperiment]; };
-  TCGAbiolinksGUI_data = derive2 { name="TCGAbiolinksGUI.data"; version="1.22.0"; sha256="04fmnqa95rb2lgflcg3d7kbz9jj990r9hlxwlhhzb79dv9wd1mfa"; depends=[]; };
-  TCGAcrcmRNA = derive2 { name="TCGAcrcmRNA"; version="1.22.0"; sha256="0vwd0pi8g4pmz8g61c0mr0njha6qsm5m1z7iyf0lnwrm6y6bv6px"; depends=[Biobase]; };
-  TCGAcrcmiRNA = derive2 { name="TCGAcrcmiRNA"; version="1.22.0"; sha256="0qrcj2mb58dwdwfpypnwyb2f7kcjjyqnyz4v42rc43r04xy14l2m"; depends=[Biobase]; };
-  TENxBUSData = derive2 { name="TENxBUSData"; version="1.16.0"; sha256="071qbq0avzbs6c64l6lrmrs1hmbrg98bnf91vpz4x7s0p5axx87n"; depends=[AnnotationHub BiocGenerics ExperimentHub]; };
-  TENxBrainData = derive2 { name="TENxBrainData"; version="1.22.0"; sha256="1ia7a6jq7giy130avgv5brffxk5r2yql7rjppxs9nab3a6y472yy"; depends=[AnnotationHub ExperimentHub HDF5Array SingleCellExperiment]; };
-  TENxPBMCData = derive2 { name="TENxPBMCData"; version="1.20.0"; sha256="09pgf31x1zqcrnvf2fwdbx4qn7pgsaby8damxcfq5xr3iksqhdwb"; depends=[AnnotationHub ExperimentHub HDF5Array SingleCellExperiment]; };
-  TENxVisiumData = derive2 { name="TENxVisiumData"; version="1.10.0"; sha256="0yi7axdam9b0ps0818cgygbmjcdknn032bm2snb6xf3g4i8n45f4"; depends=[ExperimentHub SpatialExperiment]; };
-  TMExplorer = derive2 { name="TMExplorer"; version="1.12.0"; sha256="0vi99vpbfzwwqpdxgjlhcr835nnbfngwz6fag9kvd7ndicb21zy4"; depends=[BiocFileCache Matrix SingleCellExperiment]; };
-  TabulaMurisData = derive2 { name="TabulaMurisData"; version="1.20.0"; sha256="1p0pyvgwzbnkx1687n2j7gxjzb5s49r1njklsff0di66m8nlis7k"; depends=[ExperimentHub]; };
-  TabulaMurisSenisData = derive2 { name="TabulaMurisSenisData"; version="1.8.0"; sha256="0f6gj56rgcv378ry4h1sgm3zhv083yh23qf1pj9rvabwhdfgk8p1"; depends=[AnnotationHub ExperimentHub gdata HDF5Array SingleCellExperiment SummarizedExperiment]; };
-  TargetScoreData = derive2 { name="TargetScoreData"; version="1.38.0"; sha256="19s1jxrh04gfkx7a9h59v6vl063wlf2j71bi6lxq9lm689y23z4k"; depends=[]; };
-  TargetSearchData = derive2 { name="TargetSearchData"; version="1.40.0"; sha256="12z820mwi779dlmg5hf1cq5gpvrxg9ijb38s43fbzzgagn25czff"; depends=[]; };
-  TimerQuant = derive2 { name="TimerQuant"; version="1.32.0"; sha256="18jl2x9ywfwm4ir2kwa9y4fq0lsz0295lx7f7qz08l4d1yrb1w4v"; depends=[deSolve dplyr ggplot2 gridExtra locfit shiny]; };
-  TumourMethData = derive2 { name="TumourMethData"; version="1.0.0"; sha256="100kw4552rc48sqpw9makyf9nwgrs049hkvbrd8zjmrf542cj9md"; depends=[ExperimentHub GenomicRanges HDF5Array R_utils rhdf5 SummarizedExperiment]; };
-  VariantToolsData = derive2 { name="VariantToolsData"; version="1.26.0"; sha256="0jj8wp2mp0xgd4hixyb59bykxbbpklncjj39ra5nyw4h4ziwrbfm"; depends=[BiocGenerics GenomicRanges VariantAnnotation]; };
-  VectraPolarisData = derive2 { name="VectraPolarisData"; version="1.6.0"; sha256="0zr94qgyj365sy7cyzjsm9zbxyv6zbd8lwfr1nqz0p6f6hb9b8qw"; depends=[ExperimentHub SpatialExperiment]; };
-  WES_1KG_WUGSC = derive2 { name="WES.1KG.WUGSC"; version="1.34.0"; sha256="1p8z4p1s5l4hlp78ifiy3gan1n8iljaafbqv88vxwbjh2x9gfnjl"; depends=[]; };
-  WGSmapp = derive2 { name="WGSmapp"; version="1.14.0"; sha256="0yv323mkv681f20dzjh1xaz19xbn4j777xxlmq27rvmk3j1vfah9"; depends=[GenomicRanges]; };
-  WeberDivechaLCdata = derive2 { name="WeberDivechaLCdata"; version="1.4.1"; sha256="00ws47shsfnwi6c3ah56bm6dvicfhfr50jadll613fddv7cxkfsw"; depends=[ExperimentHub SingleCellExperiment SpatialExperiment]; };
-  XhybCasneuf = derive2 { name="XhybCasneuf"; version="1.40.0"; sha256="1qzbsmqn9y1483108pzh8zkiw1q1xzghincrcmz8cl2a4q10hyxf"; depends=[affy ath1121501cdf RColorBrewer tinesath1cdf]; };
-  adductData = derive2 { name="adductData"; version="1.18.0"; sha256="16c79wy55p4ryglxph80dibfm1ni8c5yfk6fnmq064ihw4zwcld5"; depends=[AnnotationHub ExperimentHub]; };
-  affycompData = derive2 { name="affycompData"; version="1.40.0"; sha256="183wgbc4j7f9d4rwr9smndnmw1i390abak23wp6p02zk340qmvq4"; depends=[affycomp Biobase]; };
-  affydata = derive2 { name="affydata"; version="1.50.0"; sha256="1p9gqv8xnakwhf4sani09krlrq6qs4gr8yfjmi8g3s1zq4d32h1k"; depends=[affy]; };
-  airway = derive2 { name="airway"; version="1.22.0"; sha256="1xs5bw6azvcdwh9325alndzrp82alxxqwpkf60zsk2q7lv43nwbr"; depends=[SummarizedExperiment]; };
-  antiProfilesData = derive2 { name="antiProfilesData"; version="1.38.0"; sha256="0nbg37w6ij9vpj0mrbsx35naqv48kg8kkfl3x39ycbl860mrbr0b"; depends=[Biobase]; };
-  aracne_networks = derive2 { name="aracne.networks"; version="1.28.0"; sha256="16gy79hgy07kynjf2s1lrh6a86brhz1caylginmkw547hal43nvf"; depends=[viper]; };
-  bcellViper = derive2 { name="bcellViper"; version="1.38.0"; sha256="1q9ig5z03flq57nrhwnk6gdz4kamjmpwdfifwvnhac3l3f5z828h"; depends=[Biobase]; };
-  beadarrayExampleData = derive2 { name="beadarrayExampleData"; version="1.40.0"; sha256="1mb821p4hf9fmj0f7s0rxwbxv8kb5ln0x2gfnydg4jnyz7k9w5p8"; depends=[beadarray Biobase]; };
-  benchmarkfdrData2019 = derive2 { name="benchmarkfdrData2019"; version="1.16.0"; sha256="1p441c08bxx81z556n5wrzxkbq5g4lrwkp1wk7jh6zk6qs3jqg96"; depends=[ExperimentHub SummarizedExperiment]; };
-  beta7 = derive2 { name="beta7"; version="1.40.0"; sha256="1q77pmvjnwyi0hm0dmi45a5fcj1phhz9r2fvz4vnmq5b632zp30v"; depends=[marray]; };
-  biotmleData = derive2 { name="biotmleData"; version="1.26.0"; sha256="06lnkwqzsk4v241309w174ia6x8iksh7rvk3z8l0xr6hf31sg5gw"; depends=[]; };
-  biscuiteerData = derive2 { name="biscuiteerData"; version="1.16.0"; sha256="1wqdj1499psnf9y816k05m6h38yfsin4rwzqm1209ddxza6jbw1x"; depends=[AnnotationHub curl ExperimentHub GenomicRanges]; };
-  bladderbatch = derive2 { name="bladderbatch"; version="1.40.0"; sha256="19dgvdbxsswy1fl68wwf4ifplppm1blzjw1dr06mz0yjq80a7rvl"; depends=[Biobase]; };
-  blimaTestingData = derive2 { name="blimaTestingData"; version="1.22.0"; sha256="14rlw5xxgbybsrzmzncqwzkc617gfays5z8x6ifigfdlrp5h1rpl"; depends=[]; };
-  bodymapRat = derive2 { name="bodymapRat"; version="1.18.0"; sha256="1sfq6vxkb68l0q5qbnpm3fi53k4q9a890bv2ff9c6clhc42wx3h6"; depends=[ExperimentHub SummarizedExperiment]; };
-  breakpointRdata = derive2 { name="breakpointRdata"; version="1.20.0"; sha256="13w9vp436akpnywhsr6kz763c2yakrvpyiplggfb6w50wi2xm5xj"; depends=[]; };
-  breastCancerMAINZ = derive2 { name="breastCancerMAINZ"; version="1.40.0"; sha256="1nbvacb04ka0p88hailawz0i4472gaagxy0yw9qg83f9da1dzm4l"; depends=[]; };
-  breastCancerNKI = derive2 { name="breastCancerNKI"; version="1.40.0"; sha256="0q3lvq447jw3ny2896mz009x0ijdxgy4xgk4y00sv9nsbwic1ais"; depends=[]; };
-  breastCancerTRANSBIG = derive2 { name="breastCancerTRANSBIG"; version="1.40.0"; sha256="03q9y9cbipp8a275hcw5yzwx7l5qrc6fqzdy8vy7z5ij825ygnad"; depends=[]; };
-  breastCancerUNT = derive2 { name="breastCancerUNT"; version="1.40.0"; sha256="0p11hll0pjzycgqbjhcn06vcah7kfvxbzsrqvbwglajs0b5m6dra"; depends=[]; };
-  breastCancerUPP = derive2 { name="breastCancerUPP"; version="1.40.0"; sha256="0mi9dqbx7fyrxmc4l12c0x6i865f5691f94wzw88q2hwzzz80n6p"; depends=[]; };
-  breastCancerVDX = derive2 { name="breastCancerVDX"; version="1.40.0"; sha256="12r8zql30ssr0cxy8v1qawwsky54321c737ny19n2yrl7sm08gf0"; depends=[]; };
-  brgedata = derive2 { name="brgedata"; version="1.24.0"; sha256="0nplh5km45hdb001mc86fh9yyj56mfvcr2g0zffq0nbjlpvspz0i"; depends=[Biobase SummarizedExperiment]; };
-  bronchialIL13 = derive2 { name="bronchialIL13"; version="1.40.0"; sha256="110791bhnpzadc2ja8i59bix42ficqxqw3il8hnqb38i7c43w0zw"; depends=[affy]; };
-  bsseqData = derive2 { name="bsseqData"; version="0.40.0"; sha256="15fyv6l6bsa4fk4qxpfgxgw5aq1dd3pry84zapklijxm24g6yl6j"; depends=[bsseq]; };
-  cMap2data = derive2 { name="cMap2data"; version="1.38.0"; sha256="1d2yv9gq3w1b50f602ajbdqky5vwsh19qqg8a3czlphghrjrlfwd"; depends=[]; };
-  cancerdata = derive2 { name="cancerdata"; version="1.40.0"; sha256="1670df52ainxq220vzblrv2jml2bql8vid09b51dzhjhikwzxhs4"; depends=[Biobase]; };
-  ccTutorial = derive2 { name="ccTutorial"; version="1.40.0"; sha256="1rqblyk7389xqwzvib2xjyjrc8l3qd2g8z9vj96mrfyr8dpccjjs"; depends=[affy Biobase Ringo topGO]; };
-  ccdata = derive2 { name="ccdata"; version="1.28.0"; sha256="1vskwqb0n3qfgmakc8zlvfkag653gkz3l9j8lqnhxbbnnads738j"; depends=[]; };
-  celarefData = derive2 { name="celarefData"; version="1.20.0"; sha256="11vx5hmbjsfzyxgb8qzhy3f54krcp33h8ki61irxxl06q2n59928"; depends=[]; };
-  celldex = derive2 { name="celldex"; version="1.12.0"; sha256="1ckjdmiw9g1wdswijy3dvamv3kqi11j8b8p9dgr1yv5q2lfjbnwl"; depends=[AnnotationDbi AnnotationHub DelayedArray DelayedMatrixStats ExperimentHub S4Vectors SummarizedExperiment]; };
-  cfToolsData = derive2 { name="cfToolsData"; version="1.0.0"; sha256="0icr4llq99ghyvi8nsdfnp5sydh8icr23y8ar7jg0qpwiagdl3l9"; depends=[ExperimentHub]; };
-  chipenrich_data = derive2 { name="chipenrich.data"; version="2.26.0"; sha256="0hfisbzbhz501dvcwvx3cnag9643ydw6f0q122w7mrnzsag82013"; depends=[AnnotationDbi BiocGenerics GenomeInfoDb GenomicRanges IRanges readr rtracklayer S4Vectors]; };
-  chipseqDBData = derive2 { name="chipseqDBData"; version="1.18.0"; sha256="114645f6db8pp263g6h2gb2cwhdgqh8risssq2vfzzdv16qqw640"; depends=[AnnotationHub ExperimentHub Rsamtools S4Vectors]; };
-  chromstaRData = derive2 { name="chromstaRData"; version="1.28.0"; sha256="13xrdr9xrfysh714q4p00pgvwr6ryhvd3jinfqr1gb27s7bdvsi6"; depends=[]; };
-  clustifyrdatahub = derive2 { name="clustifyrdatahub"; version="1.12.0"; sha256="004g6s917ayxiixlc8zp4h7zai9amcm6bllr9mz5j9sgm8kd8px4"; depends=[ExperimentHub]; };
-  cnvGSAdata = derive2 { name="cnvGSAdata"; version="1.38.0"; sha256="1aask6cx972qw62p2p16n1sk0rjmrr9hhqlaaab52rn4lfdiaba2"; depends=[cnvGSA]; };
-  colonCA = derive2 { name="colonCA"; version="1.44.0"; sha256="0qkjmbyh5hwfjw657qam7xpjnym4qqbv1292fbqzwdyr0019jpfn"; depends=[Biobase]; };
-  crisprScoreData = derive2 { name="crisprScoreData"; version="1.6.0"; sha256="0rrwsfp8m8z389yfr8ls6wkz7faa2iz8pnljl2776qa3zgsfmhni"; depends=[AnnotationHub ExperimentHub]; };
-  curatedAdipoArray = derive2 { name="curatedAdipoArray"; version="1.14.0"; sha256="06dcb58i86gg4ar3hyh5w8kdqd0rf1ps7l021nfwklzm622b4wzc"; depends=[]; };
-  curatedAdipoChIP = derive2 { name="curatedAdipoChIP"; version="1.18.0"; sha256="16g8k2cvi890b9j30yzm7lxnxljl2k4x1yxvd8cg1ba94vzimw6k"; depends=[ExperimentHub SummarizedExperiment]; };
-  curatedAdipoRNA = derive2 { name="curatedAdipoRNA"; version="1.18.0"; sha256="1dy58ppw1ck89p036y6iml9210hv7f4zvsm0wi5m13b4ij7a749p"; depends=[SummarizedExperiment]; };
-  curatedBladderData = derive2 { name="curatedBladderData"; version="1.38.0"; sha256="1i9hbm8gh9f09fzyjga7rjps7hlbsivnnbpk8fgb0838msjq5bl2"; depends=[affy]; };
-  curatedBreastData = derive2 { name="curatedBreastData"; version="2.30.0"; sha256="127kjiqb2laz77cx9lr0rs43kgwxyi52rd7ivhfpcxhivsg4hcsr"; depends=[Biobase BiocStyle ggplot2 impute XML]; };
-  curatedCRCData = derive2 { name="curatedCRCData"; version="2.34.0"; sha256="1dqcdpzls41adih54wfpcb36mpysw0za14pz4wsjwisqnjwzpxvn"; depends=[BiocGenerics nlme]; };
-  curatedMetagenomicData = derive2 { name="curatedMetagenomicData"; version="3.10.0"; sha256="0fgvpxc1878lm8l0bib12zzwrgsap0vw4zn77qpz1mljnz43shcb"; depends=[AnnotationHub dplyr ExperimentHub magrittr mia purrr rlang S4Vectors stringr SummarizedExperiment tibble tidyr tidyselect TreeSummarizedExperiment]; };
-  curatedOvarianData = derive2 { name="curatedOvarianData"; version="1.40.1"; sha256="18163l0g3g042m2qgz143smxia3lp8v7rddkqmkg4hzns7baxfaa"; depends=[Biobase BiocGenerics]; };
-  curatedTBData = derive2 { name="curatedTBData"; version="1.8.0"; sha256="116ck61pw6diili326x0x8p7f8d5w624n4w3pd212vhq8555yrqs"; depends=[AnnotationHub ExperimentHub MultiAssayExperiment rlang]; };
-  curatedTCGAData = derive2 { name="curatedTCGAData"; version="1.24.1"; sha256="0hr66p8l54nzfsizcxxd2njy44xnia607wvfhrgv46f3f8s95z02"; depends=[AnnotationHub ExperimentHub HDF5Array MultiAssayExperiment S4Vectors SummarizedExperiment]; };
-  davidTiling = derive2 { name="davidTiling"; version="1.42.0"; sha256="1xfkyncwi9zrynk6dqsmacmkxx2qvj1axda3wn55b1vbw2wimpyf"; depends=[Biobase GO_db tilingArray]; };
-  depmap = derive2 { name="depmap"; version="1.16.0"; sha256="1vb3f5ar2jlkjyhp7rv4imlylinm6fi94ki277jgdaxn12v78qxj"; depends=[AnnotationHub dplyr ExperimentHub]; };
-  derfinderData = derive2 { name="derfinderData"; version="2.20.0"; sha256="1h8rl8mnxk2lsl8xa8mihvbd77yw32fpxdbhhn4rv1v8i5j35r7l"; depends=[]; };
-  diffloopdata = derive2 { name="diffloopdata"; version="1.30.0"; sha256="1f0gnwpjxkby7kd2bphnz4lv7gx9k297yqz0b954m7adp1sh6aqa"; depends=[]; };
-  diggitdata = derive2 { name="diggitdata"; version="1.34.0"; sha256="01r356zdy4pi8z90pbww8q7dfmq09zf148d5sq3w22z1ypsy6zm1"; depends=[Biobase viper]; };
-  dorothea = derive2 { name="dorothea"; version="1.14.1"; sha256="0bjmnqly57y69axnz5q2rqz7j7dnz1xzbhbzcalv99kybjiyqyb5"; depends=[bcellViper decoupleR dplyr magrittr]; };
-  dressCheck = derive2 { name="dressCheck"; version="0.40.0"; sha256="1mb6cmyf61rb7jdwczhzcvadgqijij53w03d87xq7zqsc7jxi9z3"; depends=[Biobase]; };
-  dyebiasexamples = derive2 { name="dyebiasexamples"; version="1.42.0"; sha256="06sp4fxsph3w84g960s65sy1vc032p2xj3sf0v94nh78f6myg0mj"; depends=[GEOquery marray]; };
-  easierData = derive2 { name="easierData"; version="1.8.0"; sha256="138x8i1zd4cvlawg9pa5ia1kmmdaxm0g9lkivzxl077s9vlpjp8d"; depends=[AnnotationHub ExperimentHub SummarizedExperiment]; };
-  ecoliLeucine = derive2 { name="ecoliLeucine"; version="1.42.0"; sha256="02v2hv8qcwdi2z531xqvnfdymzmd5qqp868arg5r0zcrzj5kkiaw"; depends=[affy ecolicdf]; };
-  emtdata = derive2 { name="emtdata"; version="1.10.0"; sha256="0fjqmg9w7c1lv0b0ldr26rxsly78sw2asj3hw8h8yd623g7bkddw"; depends=[edgeR ExperimentHub SummarizedExperiment]; };
-  epimutacionsData = derive2 { name="epimutacionsData"; version="1.6.0"; sha256="1gbh1ad0kqdmyrnmvrw5lbxlafvq12gqmbw9w3bxi7q1ahclh4yh"; depends=[]; };
-  estrogen = derive2 { name="estrogen"; version="1.48.0"; sha256="0nbyg1pj7vqxaxgznkhz2v14cq42gg8jkn5mbkd3nrz86slzkblm"; depends=[]; };
-  etec16s = derive2 { name="etec16s"; version="1.30.0"; sha256="1amhmhl74fyfvh4w1a0r0g7ahqm5yq16i87s4mzwvc03vslps143"; depends=[Biobase metagenomeSeq]; };
-  ewceData = derive2 { name="ewceData"; version="1.10.0"; sha256="1kgh5r0pplvblrrkf1qxg7c92psrwm2bjpbs30dp8mdsnjdahm9v"; depends=[ExperimentHub]; };
-  faahKO = derive2 { name="faahKO"; version="1.42.0"; sha256="0m3m9382b463wbl5hrzh04lp8h052gka8b7q69s740hlb91npjx7"; depends=[xcms]; };
-  fabiaData = derive2 { name="fabiaData"; version="1.40.0"; sha256="0alh11k7vj6ripj2017j6afa8wjb4xb03zfvrh10svsrr0a7qldv"; depends=[Biobase]; };
-  ffpeExampleData = derive2 { name="ffpeExampleData"; version="1.40.0"; sha256="16bxp2x0n77hzlf6m871wgprrhkydcbbnw88jp8nb7d0fl1vhxyr"; depends=[lumi]; };
-  fibroEset = derive2 { name="fibroEset"; version="1.44.0"; sha256="17dzp6gjfgsnvwplk3inf7s491brf1pnn1bq1a195s8m0r5kd946"; depends=[Biobase]; };
-  fission = derive2 { name="fission"; version="1.22.0"; sha256="0y07zj5iw6fmr397xkxijgfy8mmv1k42mqjfpmv01kb0hzayjj8n"; depends=[SummarizedExperiment]; };
-  flowPloidyData = derive2 { name="flowPloidyData"; version="1.28.0"; sha256="1r3w88d20jipmj7gchv0mmw9rbziq0s7vyvi5isc4lp59hc6m9h1"; depends=[]; };
-  flowWorkspaceData = derive2 { name="flowWorkspaceData"; version="3.14.0"; sha256="0wm0s1839c14b2y05b8nini2aqp39vl7ycsp1nz1y2amxirdfpyq"; depends=[]; };
-  fourDNData = derive2 { name="fourDNData"; version="1.2.0"; sha256="06dzm57f56y396py2mmfzls9yypkxzj032hpba8srq263zqpi9z0"; depends=[BiocFileCache GenomicRanges HiCExperiment IRanges S4Vectors]; };
-  frmaExampleData = derive2 { name="frmaExampleData"; version="1.38.0"; sha256="0sdh0ijkpni4xk07dyvkckr6k0dha6zbciggxaki61j99fs5nwsv"; depends=[]; };
-  furrowSeg = derive2 { name="furrowSeg"; version="1.30.0"; sha256="0vvr9x50yw7h5qcgcva2505cgqk276ci7yfbzvizn3mq4n2r3n3j"; depends=[abind dplyr EBImage locfit tiff]; };
-  gDNAinRNAseqData = derive2 { name="gDNAinRNAseqData"; version="1.2.0"; sha256="13v14dhwb1mkpxc5z08amqajhkncrkl38k4js48bp36s8lzb0zw8"; depends=[BiocGenerics ExperimentHub RCurl Rsamtools XML]; };
-  gDRtestData = derive2 { name="gDRtestData"; version="1.0.0"; sha256="0pwrypvc1hvrcd6dckiid5vjpwpcbw3vg61s88mms3kjs8163c0r"; depends=[checkmate]; };
-  gageData = derive2 { name="gageData"; version="2.40.0"; sha256="13g8hzkh34c0my75xnxdffa1d67xvn9hn592s25m18400lgsfif0"; depends=[]; };
-  gaschYHS = derive2 { name="gaschYHS"; version="1.40.0"; sha256="08dgm24ycsldp6pjqhflpxqm91yqp199n2j1fg9m4wrgbyakypkm"; depends=[Biobase]; };
-  gcspikelite = derive2 { name="gcspikelite"; version="1.40.0"; sha256="1yfmp96k1iy6sjyafs2sflflnmnq4czkjba61vzxb4alirra9jf5"; depends=[]; };
-  geneLenDataBase = derive2 { name="geneLenDataBase"; version="1.38.0"; sha256="0skycixz0qbm8cs10kgrkl1ab1qh0mz8641mf5194y839m81d060"; depends=[GenomicFeatures rtracklayer]; };
-  genomationData = derive2 { name="genomationData"; version="1.34.0"; sha256="044q01dbcd34lxgwpg76yk0msvx7gpiibiqxp6fr9jswq6izrzq7"; depends=[]; };
-  golubEsets = derive2 { name="golubEsets"; version="1.44.0"; sha256="1rwhb48wz20i06whxdj1cb6qjda545w4050y87c55h3xqcair3ya"; depends=[Biobase]; };
-  gpaExample = derive2 { name="gpaExample"; version="1.14.0"; sha256="0danfxw9jqlv9862pcf7sdaxnwxrpgs9gy38xpjzx3q25y4y1589"; depends=[]; };
-  grndata = derive2 { name="grndata"; version="1.34.0"; sha256="17g2jp99dl6kypzz4v2pf0h29vx16pwfw6apbhgggv1had9593nm"; depends=[]; };
-  h5vcData = derive2 { name="h5vcData"; version="2.22.0"; sha256="0pflrqg6yaiw7w9b8wazf74sdgx1fqgd0iz9cdq0bx4jnra5f0gz"; depends=[]; };
-  hapmap100khind = derive2 { name="hapmap100khind"; version="1.44.0"; sha256="1qzvf4g8rd85g3qxx5gckx4w1v258h9jd9dfcxbn39ghamqhy9yb"; depends=[]; };
-  hapmap100kxba = derive2 { name="hapmap100kxba"; version="1.44.0"; sha256="0743byawrk3azgrb1wdb16khd2pl887fxf4r7mf6zm08lgjyr3vv"; depends=[]; };
-  hapmap500knsp = derive2 { name="hapmap500knsp"; version="1.44.0"; sha256="1kla7h8hv6kyc9v6ra5scg3f1dlmw160wl5c1vqq9b6irqmrah6l"; depends=[]; };
-  hapmap500ksty = derive2 { name="hapmap500ksty"; version="1.44.0"; sha256="0g13vk2gnnmpm21fngr7cfhry3sacxmbxsym5wz4sibfv3d72n7r"; depends=[]; };
-  hapmapsnp5 = derive2 { name="hapmapsnp5"; version="1.44.0"; sha256="1486k3dlnvadxl8qphzria3qrw91x8j0b3k4di8c8s0fjkrfdh33"; depends=[]; };
-  hapmapsnp6 = derive2 { name="hapmapsnp6"; version="1.44.0"; sha256="1dx59dsm4pmca9xf5c2abk5clmczx2wh6j47xx8h064x3n5s611n"; depends=[]; };
-  harbChIP = derive2 { name="harbChIP"; version="1.40.0"; sha256="0xb553h6ffnik8c299h5imaabb2ca0fkqk0hrbs1a1acg11xqs32"; depends=[Biobase Biostrings IRanges]; };
-  healthyControlsPresenceChecker = derive2 { name="healthyControlsPresenceChecker"; version="1.6.0"; sha256="127p0wwqf0dx9c8y3rjmsw6nl9rczr72zn8dsqf92mdj13qpxi2m"; depends=[geneExpressionFromGEO GEOquery magrittr xml2]; };
-  healthyFlowData = derive2 { name="healthyFlowData"; version="1.40.0"; sha256="1w96g3m8kniz4nil682hz55pxhxgaqfgmfii990mrd0smirnckwx"; depends=[flowCore]; };
-  hgu133abarcodevecs = derive2 { name="hgu133abarcodevecs"; version="1.40.0"; sha256="1v8ssmzad3a1wwwh2rw9pkrcwjbbv9m2i5iqjsn0qmi7s9xpdn2z"; depends=[]; };
-  hgu133plus2CellScore = derive2 { name="hgu133plus2CellScore"; version="1.22.0"; sha256="08d6p5zmf674hj6qy6sz8n9fg70xr83y21d7ln22i9gzvvgbazpi"; depends=[Biobase]; };
-  hgu133plus2barcodevecs = derive2 { name="hgu133plus2barcodevecs"; version="1.40.0"; sha256="1c3432d28n4bj363s7h493izz865i2gfrs8x2fr6n2js9p4bz8bf"; depends=[]; };
-  hgu2beta7 = derive2 { name="hgu2beta7"; version="1.42.0"; sha256="1xxwj4d760y6ymw2ag5xqd212yb7wns2yaxgla62v3pcalvdccfp"; depends=[]; };
-  humanStemCell = derive2 { name="humanStemCell"; version="0.42.0"; sha256="0bywcagkg17gdcwbbw68fla1481llz96bhr3apbymvk8m4vbhlp0"; depends=[Biobase hgu133plus2_db]; };
-  imcdatasets = derive2 { name="imcdatasets"; version="1.10.0"; sha256="0yvii8qxgxabf9i2z5pz37dn9s6vw3g6z2k6c5k4rjns8wmvixps"; depends=[cytomapper DelayedArray ExperimentHub HDF5Array S4Vectors SingleCellExperiment SpatialExperiment]; };
-  kidpack = derive2 { name="kidpack"; version="1.44.0"; sha256="15c7ahrpjapqp90nanpkjb9hbcv42a84xg939fgpzkpgc7ch0m9k"; depends=[Biobase]; };
-  leeBamViews = derive2 { name="leeBamViews"; version="1.38.0"; sha256="0j7q5slcb59z6vf2z123h9ld0gaazsiih7an603id1bqjprkd74b"; depends=[Biobase BSgenome GenomicAlignments GenomicRanges IRanges Rsamtools S4Vectors]; };
-  leukemiasEset = derive2 { name="leukemiasEset"; version="1.38.0"; sha256="1srwn3sy929hskka9gfnqpjrh8xy0pz76ihq4amq8wbdawh1zv8b"; depends=[Biobase]; };
-  lumiBarnes = derive2 { name="lumiBarnes"; version="1.42.0"; sha256="1c27s7ajkmygfmd2g6dpsamwcm87xlxgr31wyn6g1rb7zw2zdpy2"; depends=[Biobase lumi]; };
-  lungExpression = derive2 { name="lungExpression"; version="0.40.0"; sha256="1kzf8lsl9sh0ikn9zx5sfj5z7ld94xldhmj7awvgp0bsbqlra2qc"; depends=[Biobase]; };
-  lydata = derive2 { name="lydata"; version="1.28.0"; sha256="0gwaiq16q1kfx533hymqnh6zk9nimljdbidvzb23bykj99kmsiqr"; depends=[]; };
-  mAPKLData = derive2 { name="mAPKLData"; version="1.34.0"; sha256="0vhysi7wyw7d3vbq4qcq3i3ic953awppg2bix40ywz1459b5p43g"; depends=[]; };
-  mCSEAdata = derive2 { name="mCSEAdata"; version="1.22.0"; sha256="0la86384k9f0r8mgh6an023bx1sjklglgm9rwzg33hcc58lb02ki"; depends=[GenomicRanges]; };
-  macrophage = derive2 { name="macrophage"; version="1.18.0"; sha256="10d69v34fhxfy4nhw8h50j4q5kblm032cmjnparxm5gm7ksiqwxy"; depends=[]; };
-  mammaPrintData = derive2 { name="mammaPrintData"; version="1.38.0"; sha256="0bm1lfdjhav34rqvkvygkllmwibjh0f34p58vml3ljjdhgghawrq"; depends=[]; };
-  maqcExpression4plex = derive2 { name="maqcExpression4plex"; version="1.46.0"; sha256="0ihwmzndj3yxs75x3h9w03ydvy08hmi0pzy561mjsyhdrrb8i4dc"; depends=[]; };
-  marinerData = derive2 { name="marinerData"; version="1.2.0"; sha256="00m1r6ijhykq96d86h17asngdm8a1ss2213nd6n6lsj4dshr74a0"; depends=[ExperimentHub]; };
-  mcsurvdata = derive2 { name="mcsurvdata"; version="1.20.0"; sha256="06k500vivc8anxv1x639acjv55w5r6pc2ghmszkh42h1q7a27r68"; depends=[AnnotationHub Biobase ExperimentHub]; };
-  metaMSdata = derive2 { name="metaMSdata"; version="1.38.0"; sha256="18gixjk80zzvjg39av6rhbl9zpvnx09fd6gcbnsjxag7vmk88d1d"; depends=[]; };
-  methylclockData = derive2 { name="methylclockData"; version="1.10.0"; sha256="0q4hiclws0fg03kwvbdwka024gghl1hbmmfficxfghslll78mc3y"; depends=[ExperimentHub ExperimentHubData]; };
-  miRNATarget = derive2 { name="miRNATarget"; version="1.40.0"; sha256="0qlazpmar9wi0gbh2qpkz8f44vzzg79iia1sgry42xbykx7bzx0y"; depends=[Biobase]; };
-  miRcompData = derive2 { name="miRcompData"; version="1.32.0"; sha256="15w8vldxp5wp0vqfy3k7s8imjvmdaibgiw0p2li5sx2j0g6i27g6"; depends=[]; };
-  microRNAome = derive2 { name="microRNAome"; version="1.24.0"; sha256="09b0260qxdhx7sax1xmg8nz8mf0nv4yh70ibd8cyxj8fpnzifnhh"; depends=[SummarizedExperiment]; };
-  microbiomeDataSets = derive2 { name="microbiomeDataSets"; version="1.10.0"; sha256="1i118r0wfq2y57h3m1l3nzhrixmkq0dsc1dfkbfi83xl29ijhjn9"; depends=[ape BiocGenerics Biostrings ExperimentHub MultiAssayExperiment SummarizedExperiment TreeSummarizedExperiment]; };
-  minfiData = derive2 { name="minfiData"; version="0.48.0"; sha256="12lhyv3zb8vps7v61zfm8sz4r18rpgphgy7nvdpj48dj3awdnpw8"; depends=[IlluminaHumanMethylation450kanno_ilmn12_hg19 IlluminaHumanMethylation450kmanifest minfi]; };
-  minfiDataEPIC = derive2 { name="minfiDataEPIC"; version="1.28.0"; sha256="1m2wl7x48rjjl3sh8r42wmw761r55821jjvbxjs7lycbmgd162ph"; depends=[IlluminaHumanMethylationEPICanno_ilm10b2_hg19 IlluminaHumanMethylationEPICmanifest minfi]; };
-  minionSummaryData = derive2 { name="minionSummaryData"; version="1.32.0"; sha256="1pkg77i5xi96yqn7i3xchwknh5lii35hyms8rjqqzamjr7g16ifs"; depends=[]; };
-  mosaicsExample = derive2 { name="mosaicsExample"; version="1.40.0"; sha256="02x97k7s5l3ca1xws4xplmc3x14wjy0rx1kl5jmy59ncc2lwik4r"; depends=[]; };
-  mouse4302barcodevecs = derive2 { name="mouse4302barcodevecs"; version="1.40.0"; sha256="1l2blxqsxy27lkrgd08r6a3j8va54hzhl5lx0i9bxpj1i9xiwkr6"; depends=[]; };
-  msPurityData = derive2 { name="msPurityData"; version="1.30.0"; sha256="1gf28bcj65vyvghdd2vqj3zsymw2y4jk8dhhkhh6ps18qh149ca0"; depends=[]; };
-  msd16s = derive2 { name="msd16s"; version="1.22.0"; sha256="0s7bbcxgly2xr21dkf88hpby5b4lhwy18jyji88dhqqq4jpbc8dk"; depends=[Biobase metagenomeSeq]; };
-  msdata = derive2 { name="msdata"; version="0.42.0"; sha256="1jm1zjqzkd0vy8ww0k0y1fgs6i9vkg7ir6dyga001n170g11vfzr"; depends=[]; };
-  msigdb = derive2 { name="msigdb"; version="1.10.0"; sha256="1fzgq31n059zhlkny3rfwfnriz81q9brk14r5yx2zhizlv8jcais"; depends=[AnnotationDbi AnnotationHub ExperimentHub GSEABase org_Hs_eg_db org_Mm_eg_db]; };
-  msqc1 = derive2 { name="msqc1"; version="1.30.0"; sha256="1s6wfmrss67qz8lsiqbm3bsvw3zm9pczv0w6712dd2bd2mf2lirg"; depends=[lattice]; };
-  mtbls2 = derive2 { name="mtbls2"; version="1.32.0"; sha256="1z4n5bykfk02b6gscwygy4r99fjk9cmiv8fzp2996q4mhzr7dh6c"; depends=[]; };
-  muscData = derive2 { name="muscData"; version="1.16.0"; sha256="01jmd59zk4fkny984wv9iwd9bq56cq4mnqz1x9wcjkmgk5bnvwxa"; depends=[ExperimentHub SingleCellExperiment]; };
-  mvoutData = derive2 { name="mvoutData"; version="1.38.0"; sha256="17rbb19wv8dzgkrkhgabm3fgr3l2gzvjl34ichlcfalaa17wci3w"; depends=[affy Biobase lumi]; };
-  nanotubes = derive2 { name="nanotubes"; version="1.18.0"; sha256="0ah7y051mk6pl96y6h9qlxk4gg2a7al8j9ccwk0fjl7v5fa1daya"; depends=[]; };
-  nullrangesData = derive2 { name="nullrangesData"; version="1.8.0"; sha256="0dd9d07z2k3n34wi5mynyghc0bsmyn5fhl0510ij7zbd58i520xy"; depends=[ExperimentHub GenomicRanges InteractionSet]; };
-  oct4 = derive2 { name="oct4"; version="1.18.0"; sha256="1kbv532sav3a0s1893hxjw7pf25lhff5kxnraq6h7h7vqqmim93j"; depends=[]; };
-  octad_db = derive2 { name="octad.db"; version="1.4.0"; sha256="03dih6cc71aj31l9s982qpdsyy51q83inykyz4a8pk81x3pld2n9"; depends=[ExperimentHub]; };
-  optimalFlowData = derive2 { name="optimalFlowData"; version="1.14.0"; sha256="0agaavlhsv1zk3xdwncn4nkz7q80bjnsg32msnnj8x79925hfgwq"; depends=[]; };
-  orthosData = derive2 { name="orthosData"; version="1.0.0"; sha256="0n9vkvfxah29cjfwnxjqw0kf5kdgjvx9394kgilnbskys95fh6v3"; depends=[AnnotationHub BiocFileCache ExperimentHub HDF5Array stringr SummarizedExperiment]; };
-  pRolocdata = derive2 { name="pRolocdata"; version="1.40.0"; sha256="0zjys778k9xydd6r1nvklz324mq688472b8i8d1nm8ayb880bi7i"; depends=[Biobase MSnbase]; };
-  parathyroidSE = derive2 { name="parathyroidSE"; version="1.40.0"; sha256="0lv7wlbdi05a3l4pv8x4cnc6jzqk1gb82rpmj1cv0nsq7gqhqscv"; depends=[SummarizedExperiment]; };
-  pasilla = derive2 { name="pasilla"; version="1.30.0"; sha256="0dga4bb7qjigy1m1yp4bs4frwynjqfy3dnnylx4maai9x2zlynd0"; depends=[DEXSeq]; };
-  pasillaBamSubset = derive2 { name="pasillaBamSubset"; version="0.40.0"; sha256="1lr7dn9s7i287k602xa1zyx5xs6wa3g58kmpamc3hcsi5nn1iv7x"; depends=[]; };
-  pcxnData = derive2 { name="pcxnData"; version="2.24.0"; sha256="0mhqgii84ncx2na49h3qvciqz7jfbbgil12i2cb4snlmxpa66k0j"; depends=[]; };
-  pd_atdschip_tiling = derive2 { name="pd.atdschip.tiling"; version="0.40.0"; sha256="03yvz9z4dmnm4cvfwkw3b7srmq7hmwk9y21lpsn5yz01wjp9wf6w"; depends=[Biostrings DBI IRanges oligo oligoClasses RSQLite S4Vectors]; };
-  pepDat = derive2 { name="pepDat"; version="1.22.0"; sha256="0ks5lxfwwgxfv0ls42fr5hj0iq2m6ylv13ybp8gq5r24p6hyigq3"; depends=[GenomicRanges]; };
-  plotgardenerData = derive2 { name="plotgardenerData"; version="1.8.0"; sha256="1c8004k5kqx1lryc7x57xvlqic7km11r2b723r5ar1x5mghl9lr3"; depends=[]; };
-  prebsdata = derive2 { name="prebsdata"; version="1.38.0"; sha256="1jszgh5sq0fls0484zfy41cpxwfg04pky54ma2r8v0x2aksb9fnv"; depends=[]; };
-  preciseTADhub = derive2 { name="preciseTADhub"; version="1.10.0"; sha256="006kdb7rv63jyn4xnvrk13s5by1m85jgnfs2594h51af4sgyd2id"; depends=[ExperimentHub]; };
-  prostateCancerCamcap = derive2 { name="prostateCancerCamcap"; version="1.30.0"; sha256="1962yhm8j1mb3yvdkvdn8i35dmwj69larlp201vwqr8a25l67isq"; depends=[Biobase]; };
-  prostateCancerGrasso = derive2 { name="prostateCancerGrasso"; version="1.30.0"; sha256="0mvlnfps3xa6039ysbp5hc8cy30masw9p1rhhms9f79m1xh3ldqr"; depends=[Biobase]; };
-  prostateCancerStockholm = derive2 { name="prostateCancerStockholm"; version="1.30.0"; sha256="19dkx1brrwjcrjyfhajiazfpy853kmqr10npzkarnb1fw3dhn9a9"; depends=[Biobase]; };
-  prostateCancerTaylor = derive2 { name="prostateCancerTaylor"; version="1.30.0"; sha256="0mccc3fwrnayjlpjyncizsrnnapgb7mhywvcdwlspp2ma0xzq2kw"; depends=[Biobase]; };
-  prostateCancerVarambally = derive2 { name="prostateCancerVarambally"; version="1.30.0"; sha256="10irpxg5gfj10s310irjh1lacg05s6073vfqlv5jmpwgjjz8g84m"; depends=[Biobase]; };
-  ptairData = derive2 { name="ptairData"; version="1.10.0"; sha256="11fxa0j4jl19ig21v00acbkapwi0y5d9n36q82pb8kz2krdaa9xc"; depends=[rhdf5 signal]; };
-  pumadata = derive2 { name="pumadata"; version="2.38.0"; sha256="0rc2qda3s3326g1ymychhxa3c1vb16vj7sllfqymridqwm907k0x"; depends=[Biobase oligo puma]; };
-  qPLEXdata = derive2 { name="qPLEXdata"; version="1.20.0"; sha256="0l6agwhqsm5z98j0hm1h7df6lrq7rgwch99a33532f5zmn6bq7xa"; depends=[dplyr knitr MSnbase qPLEXanalyzer]; };
-  rRDPData = derive2 { name="rRDPData"; version="1.22.0"; sha256="18k925rd7yslvc6gl9gn9fk7672w57327rsybi5vpphvpyqsqls1"; depends=[rRDP]; };
-  raerdata = derive2 { name="raerdata"; version="1.0.0"; sha256="0f8k9a714fc0wkrg2ja1193302q712aw6q4nv79qnvavqx12p0hi"; depends=[BiocGenerics ExperimentHub Rsamtools rtracklayer SingleCellExperiment]; };
-  rcellminerData = derive2 { name="rcellminerData"; version="2.24.0"; sha256="0fmidhiqaf2vrhz6b5qr7bhisqnr3vff1aczp02qfhj5zyrf2vp6"; depends=[Biobase]; };
-  restfulSEData = derive2 { name="restfulSEData"; version="1.24.0"; sha256="1ydi54mbvvsn73j955qjiqgpc2qvgdxfa9gsflx5cc14c0aqyb9h"; depends=[DelayedArray ExperimentHub HDF5Array SummarizedExperiment]; };
-  rheumaticConditionWOLLBOLD = derive2 { name="rheumaticConditionWOLLBOLD"; version="1.40.0"; sha256="0qaxxhn31kwny0327ki5yllp4cnljdqbqmrb0arx1qggbysb31gf"; depends=[]; };
-  sampleClassifierData = derive2 { name="sampleClassifierData"; version="1.26.0"; sha256="0ir21cvcqq9xh43pidh4lrm1slzknsjm9lad3qhh7dn2x5dg8p7p"; depends=[SummarizedExperiment]; };
-  scATAC_Explorer = derive2 { name="scATAC.Explorer"; version="1.8.0"; sha256="1qjacprh3q0g1fyq70akasfr66hxw2g8n1bwn4yhf798vly5ngf8"; depends=[BiocFileCache data_table Matrix S4Vectors SingleCellExperiment]; };
-  scMultiome = derive2 { name="scMultiome"; version="1.2.0"; sha256="0j9cwlnj0078yyzfjiwsadx34g1ddcrfm5xmzjv59dmk55iy59d7"; depends=[AnnotationHub AzureStor checkmate DelayedArray ExperimentHub GenomicRanges HDF5Array MultiAssayExperiment rhdf5 S4Vectors SingleCellExperiment SummarizedExperiment]; };
-  scRNAseq = derive2 { name="scRNAseq"; version="2.16.0"; sha256="0dbh3sqq7lkkdf7vls5qg7fbn6y74c7hsigb4d69pvk934ll88aw"; depends=[AnnotationDbi AnnotationHub BiocGenerics ensembldb ExperimentHub GenomicFeatures GenomicRanges S4Vectors SingleCellExperiment SummarizedExperiment]; };
-  scTHI_data = derive2 { name="scTHI.data"; version="1.14.0"; sha256="1y28wldw2xln9bp4hgymjdlgz9fjiyhb56kac6z7aiy1pifavw48"; depends=[]; };
-  scanMiRData = derive2 { name="scanMiRData"; version="1.8.0"; sha256="116v4l8rqg2lsadjhhhn40fdgfar6hbx5abri5kdq7bc5fagg957"; depends=[scanMiR]; };
-  scpdata = derive2 { name="scpdata"; version="1.10.0"; sha256="0zwwbqss2a6vkzhz517j89gf02z4f5b9kx5wbnyi2g15ihwlvaxr"; depends=[AnnotationHub ExperimentHub QFeatures S4Vectors SingleCellExperiment]; };
-  seq2pathway_data = derive2 { name="seq2pathway.data"; version="1.34.0"; sha256="0iaz4i5garvhai2bpwxm59h4qasbasv66a2b8mql2rqa4s6wnf0a"; depends=[]; };
-  seqCNA_annot = derive2 { name="seqCNA.annot"; version="1.38.0"; sha256="0kzmn5hx8ag02pz8b78cq7dbalw2w60y441cjyyvxjgycwcfvmvj"; depends=[]; };
-  seqc = derive2 { name="seqc"; version="1.36.0"; sha256="0zxmh69v45ys1hv9kkr7g6v67npcip6s11r3am502zq1dnk7khg1"; depends=[Biobase]; };
-  serumStimulation = derive2 { name="serumStimulation"; version="1.38.0"; sha256="0c6zg119rdmqhgrzi3s10856l9vyrqmd8c858hw20aiagvxn5nik"; depends=[]; };
-  sesameData = derive2 { name="sesameData"; version="1.20.0"; sha256="0a5xchdnlw9ixafk8p3ny58yqv74ba9j4z2sdyp990rbaqrx1gjw"; depends=[AnnotationHub ExperimentHub GenomeInfoDb GenomicRanges IRanges readr S4Vectors stringr]; };
-  seventyGeneData = derive2 { name="seventyGeneData"; version="1.38.2"; sha256="1zpks4fpwjb640pggwd1xldri2lf3fl8pcbvi244c6dgkf8nq93i"; depends=[]; };
-  shinyMethylData = derive2 { name="shinyMethylData"; version="1.22.0"; sha256="1i6ffgi79jgpkg6nhil7v7vi23yv2j7czzibj6dxdc0kpb1n0q1h"; depends=[]; };
-  signatureSearchData = derive2 { name="signatureSearchData"; version="1.16.0"; sha256="1xn0y7mcpk4s4x9azzabxfq0hxwlx7dvpb4yjrl3x8zcyk394s3z"; depends=[affy Biobase dplyr ExperimentHub limma magrittr R_utils rhdf5]; };
-  simpIntLists = derive2 { name="simpIntLists"; version="1.38.0"; sha256="1683dsi6bm45v5wk9fgvrmvap15w6gvwnfijg5ayj29shiaa2qif"; depends=[]; };
-  smokingMouse = derive2 { name="smokingMouse"; version="1.0.0"; sha256="0xm4a7yp6802xcmh29hwvlz39gqb5s380mzi5rck89fl6wjl4bf6"; depends=[]; };
-  spatialDmelxsim = derive2 { name="spatialDmelxsim"; version="1.8.0"; sha256="110anvdbsq8mh3ibfhps9hyfhlk2np4mjs224377s1sasmpzwbbb"; depends=[ExperimentHub SummarizedExperiment]; };
-  spatialLIBD = derive2 { name="spatialLIBD"; version="1.14.1"; sha256="0zqbnj55d06xai9qlg1hcy2kczjn6zxrhqwwsi18a36511qks5qb"; depends=[AnnotationHub benchmarkme BiocFileCache BiocGenerics cowplot DT edgeR ExperimentHub fields GenomicRanges ggplot2 golem IRanges jsonlite limma magick Matrix paletteer plotly png RColorBrewer rtracklayer S4Vectors scater scuttle sessioninfo shiny shinyWidgets SingleCellExperiment SpatialExperiment statmod SummarizedExperiment tibble viridisLite]; };
-  spqnData = derive2 { name="spqnData"; version="1.14.0"; sha256="0kvnkz71w1c7yhl4kqdj9j51d1ix2g7q3pqr2678f31hhw7yr1ck"; depends=[SummarizedExperiment]; };
-  stemHypoxia = derive2 { name="stemHypoxia"; version="1.38.0"; sha256="1ak78mvgm9dv80ji44b1cb4y8bq0l4k0cpx734m8dy8mr3i8nblw"; depends=[]; };
-  stjudem = derive2 { name="stjudem"; version="1.42.0"; sha256="0pcvvvaqalr5jklqy7vzxkp0cd9nj9dk941drgr7ndbqc2navz2c"; depends=[]; };
-  synapterdata = derive2 { name="synapterdata"; version="1.40.0"; sha256="1hl3r6smv25vhwxwrxw2c98db4c36392js49zj9kgf7c22qpyaqr"; depends=[synapter]; };
-  systemPipeRdata = derive2 { name="systemPipeRdata"; version="2.6.0"; sha256="004sjgvhn9hq14f4mwfakrkkm2mwr2bdcbld25b393in0k26r9hf"; depends=[BiocGenerics Biostrings jsonlite remotes]; };
-  tartare = derive2 { name="tartare"; version="1.16.0"; sha256="1w8z756s2c4vcxan8lid5mflyn8n718vhqn72x3mspg1pbb6k0l6"; depends=[AnnotationHub ExperimentHub]; };
-  timecoursedata = derive2 { name="timecoursedata"; version="1.12.0"; sha256="10i4wcdjqd2qh6rpl65xi5mj2hsam78hi3haqp4xhg0ha4f73nb3"; depends=[SummarizedExperiment]; };
-  tinesath1cdf = derive2 { name="tinesath1cdf"; version="1.40.0"; sha256="12db5w6fsmpjx2xgq7f3hp5czm21jp17826mi7jdz1c0217i1h4s"; depends=[]; };
-  tinesath1probe = derive2 { name="tinesath1probe"; version="1.40.0"; sha256="1s119zkz03rq0bs3fjx85rwr7f2fxk144ykvglbzz3m6wxwi94r9"; depends=[AnnotationDbi]; };
-  tissueTreg = derive2 { name="tissueTreg"; version="1.22.0"; sha256="17hjzwvk9pa1zhvmqrs99dnm428bm2br4xjmydp7d8j2mdsbkfs3"; depends=[]; };
-  tofsimsData = derive2 { name="tofsimsData"; version="1.30.0"; sha256="18fn2krbc1mg3phx1sjpshsq9n39jlm75n9s7615h4jdcky9gzld"; depends=[]; };
-  topdownrdata = derive2 { name="topdownrdata"; version="1.24.0"; sha256="01wxdwq87yan5a71z60bzs18w1ryjvgscnrrpdksqs56009k5992"; depends=[topdownr]; };
-  tuberculosis = derive2 { name="tuberculosis"; version="1.8.0"; sha256="15jmhn7lrdwz19hv076yf0g2wqw7c32vp4pjzj2151f4xzxrl1iz"; depends=[AnnotationHub dplyr ExperimentHub magrittr purrr rlang S4Vectors stringr SummarizedExperiment tibble tidyr]; };
-  tweeDEseqCountData = derive2 { name="tweeDEseqCountData"; version="1.40.0"; sha256="1s071578qldq564ylrkd9azn5519rdc3g1gdp9v8hj4zh8kza56v"; depends=[Biobase]; };
-  tximportData = derive2 { name="tximportData"; version="1.30.0"; sha256="0ksmg3gblkqzz40pzm35y6wghjmszrimdx7bxhq5jv4piqwii0hg"; depends=[]; };
-  vulcandata = derive2 { name="vulcandata"; version="1.24.0"; sha256="18wbxwwp7bsmdbn4g6d96x45b672fyrhlh38kbcz3j5dysdg1clr"; depends=[]; };
-  xcoredata = derive2 { name="xcoredata"; version="1.6.0"; sha256="1chcjylfdl07q19f924hsml22lbfcjrzndp1appi3q80hzbc3pz6"; depends=[ExperimentHub]; };
-  yeastCC = derive2 { name="yeastCC"; version="1.42.0"; sha256="1abl3jlwznzdmfpsqy0bfvrn6xx99yc8wz70s228lalvac4lqrfn"; depends=[Biobase]; };
-  yeastExpData = derive2 { name="yeastExpData"; version="0.48.0"; sha256="13hxrcsvxwjdr649xzl07fkl0mzx6j36hkmgmj9zj270gsvlchns"; depends=[graph]; };
-  yeastGSData = derive2 { name="yeastGSData"; version="0.40.0"; sha256="0i3fawlbxb6xc9wilxlc5gjr22ikp1x4rc2dich1cmpbjqd2zg1c"; depends=[]; };
-  yeastNagalakshmi = derive2 { name="yeastNagalakshmi"; version="1.38.0"; sha256="1d1y7xpggizgiv2qma31mlzri2jidir425q08fdnnm9ymcxx83z0"; depends=[]; };
-  yeastRNASeq = derive2 { name="yeastRNASeq"; version="0.40.0"; sha256="1b7bdbyzh6lx4qp4md9b7qxd433l8wpswfq0azxjdn33yryv8spm"; depends=[]; };
-  zebrafishRNASeq = derive2 { name="zebrafishRNASeq"; version="1.22.0"; sha256="0fhsg1j40rkzxphnq7gl98zyqijacmfrjf4ffmbvr70mxw3zysgz"; depends=[]; };
+  ALL = derive2 { name="ALL"; version="1.46.0"; sha256="1yl8b8q8i19kx4viwinhyq9xn9d4axlfgjvm7cpf7pys4krhnrha"; depends=[Biobase]; };
+  ALLMLL = derive2 { name="ALLMLL"; version="1.44.0"; sha256="0pmdw42wrmhqm3754s3kkz7wjih63h21zlrwl1b7lkli79vbzkpd"; depends=[affy]; };
+  ARRmData = derive2 { name="ARRmData"; version="1.40.0"; sha256="02y44d0dappc3srl2d7lgipm6a62gvd8vivzaq4594dnmy8rvkw3"; depends=[]; };
+  ASICSdata = derive2 { name="ASICSdata"; version="1.24.0"; sha256="03wlk2x9bz5xjhnfgxl5zdagnwm60f23bz1qhlgqfs94zfay0jrq"; depends=[]; };
+  Affyhgu133A2Expr = derive2 { name="Affyhgu133A2Expr"; version="1.40.0"; sha256="0l55wr09j2p8dkzx8cas2whf404anf477h2bmpv267mglrs1sp32"; depends=[]; };
+  Affyhgu133Plus2Expr = derive2 { name="Affyhgu133Plus2Expr"; version="1.38.0"; sha256="04cxyjk1dhal8iapfilzck8kxpw8jvswxxb7fhnbxqghwlhjg617"; depends=[]; };
+  Affyhgu133aExpr = derive2 { name="Affyhgu133aExpr"; version="1.42.0"; sha256="047yza31rrdmzjbg6chqrz61fh7j1a013fww5nj1nwp60rd6iln1"; depends=[]; };
+  AffymetrixDataTestFiles = derive2 { name="AffymetrixDataTestFiles"; version="0.42.0"; sha256="1ijprvhbhq68v2g8z9yqwwqw2lz4f4a2pa7lnq2vhf54p9s96sn1"; depends=[]; };
+  Affymoe4302Expr = derive2 { name="Affymoe4302Expr"; version="1.42.0"; sha256="11n5mx1m21j6cc4qrwzrxj3749zc42b1ivwnp47cf55h6j2c3rgm"; depends=[]; };
+  AmpAffyExample = derive2 { name="AmpAffyExample"; version="1.44.0"; sha256="0j5alica5z8fzcwiva3dg1wmncwwkchb7avwvhszk7p7ym0s983q"; depends=[affy]; };
+  AneuFinderData = derive2 { name="AneuFinderData"; version="1.32.0"; sha256="1qysi874hsa4a7xz0na0cxv0sx02d3b74h77s30mfww1wsg8jy69"; depends=[]; };
+  AshkenazimSonChr21 = derive2 { name="AshkenazimSonChr21"; version="1.34.0"; sha256="0bm2f7pnxibgcsi5kghjzmin01sirprym5i94qsiga7c6dknqgmn"; depends=[]; };
+  AssessORFData = derive2 { name="AssessORFData"; version="1.21.0"; sha256="10rbwdcjqfhq9ramrzfxd3bl2q2nqminsj3pigid6fmvyg0ykfhk"; depends=[DECIPHER]; };
+  BeadArrayUseCases = derive2 { name="BeadArrayUseCases"; version="1.42.0"; sha256="1s62vqvl3zxf97syp5lymacah594m8szk23skl4bk88jkzkkx6a5"; depends=[beadarray GEOquery limma]; };
+  BeadSorted_Saliva_EPIC = derive2 { name="BeadSorted.Saliva.EPIC"; version="1.12.0"; sha256="1pjnamvgx9w3g40j82rbdysbarx11gm8k6lb3vhkgb2nxv1vij84"; depends=[ExperimentHub minfi]; };
+  BioImageDbs = derive2 { name="BioImageDbs"; version="1.12.0"; sha256="1cs6c80h34xbzpsgrpy5aj1f0nlxmy713jj1q5g156z5kiz3mzwc"; depends=[animation AnnotationHub EBImage einsum ExperimentHub filesstrings magick magrittr markdown rmarkdown]; };
+  BioPlex = derive2 { name="BioPlex"; version="1.10.0"; sha256="1bkakf7yi1lhwc48pmwifk7qdnc9hzaqnlcni7sy0ypwgb1mfsh7"; depends=[BiocFileCache GenomeInfoDb GenomicRanges GEOquery graph SummarizedExperiment]; };
+  BloodCancerMultiOmics2017 = derive2 { name="BloodCancerMultiOmics2017"; version="1.24.0"; sha256="16c6nirflpj0zf2wrj0hb5xcq2168si95np3sm76r3kvwlr48zm7"; depends=[beeswarm Biobase DESeq2 devtools dplyr ggdendro ggplot2 glmnet gtable ipflasso RColorBrewer reshape2 scales SummarizedExperiment survival tibble]; };
+  CCl4 = derive2 { name="CCl4"; version="1.42.0"; sha256="0n3kx176if48gmw3qd5knlv5q7v7738c54ix8cwr2xhsqc7ah800"; depends=[Biobase limma]; };
+  CLL = derive2 { name="CLL"; version="1.44.0"; sha256="18bjaqf6cjvjfcp80b5zmb48qbywacqs6aiarsh6ksq2yj4np4zs"; depends=[affy Biobase]; };
+  CLLmethylation = derive2 { name="CLLmethylation"; version="1.24.0"; sha256="0pafgk4sagyrsddzg5a0nigs518ki2rikhkj02mngh9x4kipkhip"; depends=[ExperimentHub SummarizedExperiment]; };
+  COHCAPanno = derive2 { name="COHCAPanno"; version="1.40.0"; sha256="0gdb08vxna4rhf5lyhjr9prww58sikjiv49i4sy6hgj5a1chz288"; depends=[]; };
+  CONFESSdata = derive2 { name="CONFESSdata"; version="1.32.0"; sha256="0xmbgr6iq4nzxw8gvb099c65bxsc0aqfwn55l2hyr7zskqc3apka"; depends=[]; };
+  COPDSexualDimorphism_data = derive2 { name="COPDSexualDimorphism.data"; version="1.40.0"; sha256="0wxhsj29yycmfgwl1sxz3yynwwwccxs1n9kcvdd6940jm4rz8nvq"; depends=[]; };
+  COSMIC_67 = derive2 { name="COSMIC.67"; version="1.40.0"; sha256="0b9w91qvxakrwwgkzfmhd7ily9yy5jmwimiykckksrhf1fr7i7zp"; depends=[GenomicRanges SummarizedExperiment VariantAnnotation]; };
+  CRCL18 = derive2 { name="CRCL18"; version="1.24.0"; sha256="1f513yxinql9qnxmlcfarhn840bxkbwxjqs661c9zliah26hv2wp"; depends=[Biobase]; };
+  CardinalWorkflows = derive2 { name="CardinalWorkflows"; version="1.36.0"; sha256="09b0a7ss64mx0ag6rwa7nld0hfzhrr7pfy4iimd0isfz1hm55kd8"; depends=[Cardinal]; };
+  CellMapperData = derive2 { name="CellMapperData"; version="1.30.0"; sha256="1rw0793g5bj1zwa5wi4f9d7l3y29c88c2s16ia0ph1j72zr0vyrn"; depends=[CellMapper ExperimentHub]; };
+  ChAMPdata = derive2 { name="ChAMPdata"; version="2.36.0"; sha256="0x006ilgqrf15135ivxv8qrcyhssl1w6pm1gpnna96za58l2f2rr"; depends=[BiocGenerics GenomicRanges]; };
+  ChIPXpressData = derive2 { name="ChIPXpressData"; version="1.42.0"; sha256="0jfiii3akdsg4drj3x3rmjakzr85bhzdxl5w433qkrzb4dm724q0"; depends=[bigmemory]; };
+  ChIPexoQualExample = derive2 { name="ChIPexoQualExample"; version="1.28.0"; sha256="07m4515g0gq4qv7yyx0qy0y4c2zb1dm30yhkzh43z34m6rkgsf1f"; depends=[]; };
+  ChimpHumanBrainData = derive2 { name="ChimpHumanBrainData"; version="1.42.0"; sha256="04cixcachip43kynlz4l6fh1y0wdzijgipvkz5rvlhqca7mpdqss"; depends=[affy hexbin limma qvalue statmod]; };
+  CluMSIDdata = derive2 { name="CluMSIDdata"; version="1.20.0"; sha256="01r4cfy0ny5vh0x1ihkynyxfxgjsprhim7913vzj0d1kgdkzdr6z"; depends=[]; };
+  CoSIAdata = derive2 { name="CoSIAdata"; version="1.4.0"; sha256="1mld9j54ywkgz63brf8lmfi57f1hmclyv3m9lw201wyni48nx377"; depends=[ExperimentHub]; };
+  ConnectivityMap = derive2 { name="ConnectivityMap"; version="1.40.0"; sha256="1i7bv10kmmgb355nmp3qsm9awcba69h8chhvcmw718hg5x2axrdh"; depends=[]; };
+  CopyNeutralIMA = derive2 { name="CopyNeutralIMA"; version="1.22.0"; sha256="12pw212lrqsas08hzan6sh56iasx74adbnngvyj2dllgc30971i8"; depends=[ExperimentHub Rdpack]; };
+  CopyhelpeR = derive2 { name="CopyhelpeR"; version="1.36.0"; sha256="1ijlba601wknkj6ybbnarcdw1z54f76gkdgynpry1v8jpbpvcadr"; depends=[]; };
+  CytoMethIC = derive2 { name="CytoMethIC"; version="1.0.0"; sha256="19ms0i2rs0b3lbg71m3k43hy0wx45yif6pv3nnchbafysnlzp04n"; depends=[BiocManager BiocParallel ExperimentHub sesame sesameData tibble]; };
+  DAPARdata = derive2 { name="DAPARdata"; version="1.34.0"; sha256="055rlbc2sky8am6vcz09vxpj8n34y3lmajlp8n6zz086w7fgfd8d"; depends=[MSnbase]; };
+  DExMAdata = derive2 { name="DExMAdata"; version="1.12.0"; sha256="17gm48hawh42cdbqr1bbrb7nccx3lwan8nca353vyj43pjr3s46n"; depends=[Biobase]; };
+  DLBCL = derive2 { name="DLBCL"; version="1.44.0"; sha256="0sakxhj192khn777aspzzckrjnzi89ng5wnzvzxgfdbpwh2nfl4d"; depends=[Biobase graph]; };
+  DMRcatedata = derive2 { name="DMRcatedata"; version="2.22.0"; sha256="119r3c2yc5hbj5x0h7r930rwhp0k5rsnfmbmvl2rhz02wq2ychhy"; depends=[ExperimentHub GenomicFeatures Gviz IlluminaHumanMethylation450kanno_ilmn12_hg19 IlluminaHumanMethylationEPICanno_ilm10b4_hg19 plyr readxl rtracklayer]; };
+  DNAZooData = derive2 { name="DNAZooData"; version="1.4.0"; sha256="1bs2pnak2v2szp7zly8ysf8pqh7f70w70cbqqzvnxlf35npv7cxd"; depends=[BiocFileCache HiCExperiment rjson S4Vectors]; };
+  DeSousa2013 = derive2 { name="DeSousa2013"; version="1.40.0"; sha256="1icjl4rr8jk16hs8ri925v3gf9lasi4x39yf5a7av39byb2zwqif"; depends=[affy AnnotationDbi Biobase cluster ConsensusClusterPlus frma frmaTools gplots hgu133plus2_db hgu133plus2frmavecs pamr rgl ROCR siggenes survival sva]; };
+  DmelSGI = derive2 { name="DmelSGI"; version="1.36.0"; sha256="0xjj2ky0k8vazw97qsaf79c6cc3whxg0n5v6lrj6slk4hyfcmbw4"; depends=[abind gplots igraph knitr limma rhdf5 TSP]; };
+  DonaPLLP2013 = derive2 { name="DonaPLLP2013"; version="1.42.0"; sha256="0mcz0vdawz62qpdz8dmw359qim0b5wy42wp5r0h5pw05fh03b9bp"; depends=[EBImage]; };
+  DropletTestFiles = derive2 { name="DropletTestFiles"; version="1.14.0"; sha256="1n98mgzc6dscm6wy18mf0l5l5bvx3m35xdniarv83j8302xra9n1"; depends=[AnnotationHub ExperimentHub S4Vectors]; };
+  DrugVsDiseasedata = derive2 { name="DrugVsDiseasedata"; version="1.40.0"; sha256="0pmydn60f80ga6la6gxn1l1baw22kqqf1v2gbcniq7qm5axj6vh2"; depends=[]; };
+  DuoClustering2018 = derive2 { name="DuoClustering2018"; version="1.22.0"; sha256="042v3dpirp68qsdbhygvx3apx94xxdmzpm0swii30kzkw1r1xfck"; depends=[dplyr ExperimentHub ggplot2 ggthemes magrittr mclust purrr reshape2 tidyr viridis]; };
+  DvDdata = derive2 { name="DvDdata"; version="1.40.0"; sha256="0l298n6fj57yz6ml5xp1gmwxkj200pwsijbxxf2k8f028m4igy0k"; depends=[]; };
+  EGSEAdata = derive2 { name="EGSEAdata"; version="1.32.0"; sha256="0448hr7zz1wibi8l3plb9hsr6x0a7hz0pmqchhbzbsqwjjdrsgid"; depends=[]; };
+  ELMER_data = derive2 { name="ELMER.data"; version="2.28.0"; sha256="1ppmdqc0j3hkngg0nzx18vw8sgnfbrhxyb3l1l5mhv3gq02rslxz"; depends=[GenomicRanges]; };
+  EatonEtAlChIPseq = derive2 { name="EatonEtAlChIPseq"; version="0.42.0"; sha256="109law5cc64xipwqyanw71h8v5nx08s1iaskh05hm1w18dsjxff1"; depends=[GenomicRanges rtracklayer ShortRead]; };
+  EpiMix_data = derive2 { name="EpiMix.data"; version="1.6.0"; sha256="037kp9ziawdxfxydg4jb64k6klv9j78wp45gi72prisl4hj5hlp3"; depends=[ExperimentHub]; };
+  FANTOM3and4CAGE = derive2 { name="FANTOM3and4CAGE"; version="1.40.0"; sha256="0vmpgq694jvrcbnx2ik7cyq2axfm7xl3sibd2b9k3dpxaw62gipm"; depends=[]; };
+  FIs = derive2 { name="FIs"; version="1.32.0"; sha256="0l084k6p8nsnv51fxb55lass72qhjm4ff84i4y3if5p29gzl8frz"; depends=[]; };
+  FieldEffectCrc = derive2 { name="FieldEffectCrc"; version="1.14.0"; sha256="0g9b5a7l802z6g2s95x4m914hwwn5qqnlxvag3qbvy3bhwx3xyi6"; depends=[AnnotationHub BiocStyle DESeq2 ExperimentHub RUnit SummarizedExperiment]; };
+  Fletcher2013a = derive2 { name="Fletcher2013a"; version="1.40.0"; sha256="0l839hd76xr94qjcnscr9c40nvsx99ir6vsy1zx6dn7cha52mpar"; depends=[Biobase gplots limma VennDiagram]; };
+  Fletcher2013b = derive2 { name="Fletcher2013b"; version="1.40.0"; sha256="0agnkc207bma3h89xxrzcywny664f42vfd63qnmyda4kvdvvk0km"; depends=[Fletcher2013a igraph RColorBrewer RedeR RTN]; };
+  FlowSorted_Blood_450k = derive2 { name="FlowSorted.Blood.450k"; version="1.42.0"; sha256="0lc45dg5jq0kqycpsggrhi5fa4xj1ciqrj6iw548ccjgdyy2w1xh"; depends=[minfi]; };
+  FlowSorted_Blood_EPIC = derive2 { name="FlowSorted.Blood.EPIC"; version="2.8.0"; sha256="1b0azyslk2g08i6v1vv2niw32f0zqasw85b9klw83zdy2f5dcdvh"; depends=[AnnotationHub ExperimentHub genefilter minfi nlme quadprog S4Vectors SummarizedExperiment]; };
+  FlowSorted_CordBlood_450k = derive2 { name="FlowSorted.CordBlood.450k"; version="1.32.0"; sha256="1bbx2s8vzkawwpywcc33xbgjbc134q6fqgnflk30sfq1pfpxcmsm"; depends=[minfi]; };
+  FlowSorted_CordBloodCombined_450k = derive2 { name="FlowSorted.CordBloodCombined.450k"; version="1.20.0"; sha256="14486v4cs3j1jmifsgy3ihpm5x7i9581yz4bwsl3h2a7p86cdsbv"; depends=[AnnotationHub ExperimentHub IlluminaHumanMethylation450kanno_ilmn12_hg19 IlluminaHumanMethylationEPICanno_ilm10b4_hg19 minfi SummarizedExperiment]; };
+  FlowSorted_CordBloodNorway_450k = derive2 { name="FlowSorted.CordBloodNorway.450k"; version="1.30.0"; sha256="1r78j0786bl9420cxcmhw07bzakl71r2kar41bwkd6xwfpj2znj5"; depends=[minfi]; };
+  FlowSorted_DLPFC_450k = derive2 { name="FlowSorted.DLPFC.450k"; version="1.40.0"; sha256="0h21h2nywy9dfqw3d1xw87wah19nidl8k7d0zqpqxql6agr1p92j"; depends=[minfi]; };
+  GIGSEAdata = derive2 { name="GIGSEAdata"; version="1.22.0"; sha256="1pwi3bn7xj2m7kg02dwn17rnhirl2qf1d67p2m9194f3iwy4vrp8"; depends=[]; };
+  GSBenchMark = derive2 { name="GSBenchMark"; version="1.24.0"; sha256="1al1k9c513l3if8kag24dkrmr6m8ajck30gd8yqkcncsrrgc769j"; depends=[]; };
+  GSE103322 = derive2 { name="GSE103322"; version="1.10.0"; sha256="0iv75phj9s8yyk0h3mnv12aak26kspbqhxvc4dbjjdd4g6jawlgv"; depends=[Biobase GEOquery]; };
+  GSE13015 = derive2 { name="GSE13015"; version="1.12.0"; sha256="0l1v30g1g93wk5bnhkw52pwypby6n0rxpp11aw93j733whn9j2y4"; depends=[Biobase GEOquery preprocessCore SummarizedExperiment]; };
+  GSE159526 = derive2 { name="GSE159526"; version="1.10.0"; sha256="1j8dy1zrw4isscspzb83n7k0x8yaf97zyyfyjh26ff7l997cqdvk"; depends=[]; };
+  GSE62944 = derive2 { name="GSE62944"; version="1.32.0"; sha256="041sby283m8ajb96gdg3zcrs0l6760svx8wijxfabq9dygiiaqp8"; depends=[Biobase GEOquery]; };
+  GSVAdata = derive2 { name="GSVAdata"; version="1.40.0"; sha256="0d1xgjizi58hwbralla62jch3kl4bqx0dg0lhh0h1bk9jyicyqjy"; depends=[Biobase GSEABase hgu95a_db]; };
+  GWASdata = derive2 { name="GWASdata"; version="1.42.0"; sha256="08w9qlf6vprvf383mji0hhzpn65jicqmkbljqndh7r7s4hp1z9jr"; depends=[GWASTools]; };
+  GenomicDistributionsData = derive2 { name="GenomicDistributionsData"; version="1.12.0"; sha256="16cj8w6n053aciz9wclppmc22b9s4a9lh58r6wi2lhs0sp7iirzn"; depends=[AnnotationFilter AnnotationHub BSgenome data_table ensembldb ExperimentHub GenomeInfoDb GenomicFeatures GenomicRanges]; };
+  GeuvadisTranscriptExpr = derive2 { name="GeuvadisTranscriptExpr"; version="1.32.0"; sha256="1n9yq4lqs6v9qdw9rm9hy8dww6n5axpkncms2drkjn2hv8xlqgj8"; depends=[]; };
+  HCAData = derive2 { name="HCAData"; version="1.20.0"; sha256="1kdp9iwn0vy7hlxyh09vrl6cwj7ajy2zqk23w3rxa5py710prp1q"; depends=[AnnotationHub ExperimentHub HDF5Array SingleCellExperiment]; };
+  HCATonsilData = derive2 { name="HCATonsilData"; version="1.2.0"; sha256="1wg0mvc3gwf80bgsfkvdcnnzy7qbnffbbrcy3f87jyw4a20irpp1"; depends=[base64enc ExperimentHub HDF5Array htmltools rmarkdown S4Vectors SingleCellExperiment SpatialExperiment SummarizedExperiment]; };
+  HD2013SGI = derive2 { name="HD2013SGI"; version="1.44.0"; sha256="0r4nlbz7b70z1ii9wisk8nj218m2j5qmpfj8k2sp8k723gmsg4x0"; depends=[EBImage geneplotter gplots limma LSD RColorBrewer splots vcd]; };
+  HDCytoData = derive2 { name="HDCytoData"; version="1.24.0"; sha256="0pmzgp7x1zam3b7agi8mdq14qmx8nln9lnhiglax2pvg2a5n4ii4"; depends=[ExperimentHub flowCore SummarizedExperiment]; };
+  HEEBOdata = derive2 { name="HEEBOdata"; version="1.42.0"; sha256="0nkggzidbzya9g7v412iwjkm6pah5siha1jai48k3hhfa4i51jj7"; depends=[]; };
+  HIVcDNAvantWout03 = derive2 { name="HIVcDNAvantWout03"; version="1.44.0"; sha256="1mrza15digswpqszff88caclfwbwxql7dx6gih4gz72cnpyx3fpj"; depends=[]; };
+  HMP16SData = derive2 { name="HMP16SData"; version="1.24.0"; sha256="16x7mw5bdsyda1qv0v739pkr8lxq8hga84vhmaa8qnx45pwqyyh0"; depends=[AnnotationHub assertthat dplyr ExperimentHub kableExtra knitr magrittr readr S4Vectors stringr SummarizedExperiment tibble]; };
+  HMP2Data = derive2 { name="HMP2Data"; version="1.18.0"; sha256="014bf29kg9dizi3p0fdxrs42bf9a0dc2f7zd7yxzvzs3jqvniji2"; depends=[AnnotationHub assertthat data_table dplyr ExperimentHub kableExtra knitr magrittr MultiAssayExperiment phyloseq readr S4Vectors SummarizedExperiment]; };
+  HSMMSingleCell = derive2 { name="HSMMSingleCell"; version="1.24.0"; sha256="18p8hk2dq26pp4fvcf1m8wsvj1mn66i8nr900knl2n9vs09j70wy"; depends=[]; };
+  HarmanData = derive2 { name="HarmanData"; version="1.32.0"; sha256="1bf9jl9gl10gawv835hp8wxzzs1v9g3y3qzpki63j3dw5yssazh5"; depends=[]; };
+  HarmonizedTCGAData = derive2 { name="HarmonizedTCGAData"; version="1.26.0"; sha256="1zi0605nq51zpgap9jsbkilpxalwlpld0crvxivk6pmgrbavvlf7"; depends=[ExperimentHub]; };
+  HelloRangesData = derive2 { name="HelloRangesData"; version="1.30.0"; sha256="19gk0xhvpnqqrr6pxiwyyhszi93pjjfiknfj1gvzdrj81p06qhbh"; depends=[]; };
+  HiBED = derive2 { name="HiBED"; version="1.2.0"; sha256="0sqxlm2nn8g7qfwhndf79dg7v57ngmznr0b297v59nhhpigs1g2q"; depends=[AnnotationHub dplyr FlowSorted_Blood_EPIC FlowSorted_DLPFC_450k minfi SummarizedExperiment tibble]; };
+  HiCDataHumanIMR90 = derive2 { name="HiCDataHumanIMR90"; version="1.24.0"; sha256="1xndbds4clzpblc6gjz7lr48pkvi3j2m0a9jzavff45ds7aa6jxk"; depends=[]; };
+  HiCDataLymphoblast = derive2 { name="HiCDataLymphoblast"; version="1.40.0"; sha256="1sb384dca5n1lanv5k4idjx1b1hmvfdv1xp14m8k00gcnacgj9v3"; depends=[]; };
+  HiContactsData = derive2 { name="HiContactsData"; version="1.6.0"; sha256="0q92gvvlx4zx6sxi9sdzwjmwvdzaw6fj0nkr5d4h8j0hv7ycylmi"; depends=[AnnotationHub BiocFileCache ExperimentHub]; };
+  HighlyReplicatedRNASeq = derive2 { name="HighlyReplicatedRNASeq"; version="1.16.0"; sha256="01b09hk33p14lfrrpk0agi6prf9wbv6zs0qn07jdsm63vmawscds"; depends=[ExperimentHub S4Vectors SummarizedExperiment]; };
+  Hiiragi2013 = derive2 { name="Hiiragi2013"; version="1.40.0"; sha256="0xn3ayh2x04cvwrr476k8vlp8lhk5lxaqg01a0ynkrrc4scf2f99"; depends=[affy Biobase boot clue cluster genefilter geneplotter gplots gtools KEGGREST lattice latticeExtra MASS mouse4302_db RColorBrewer xtable]; };
+  HumanAffyData = derive2 { name="HumanAffyData"; version="1.30.0"; sha256="0jnikpd3djps3wp4vd3l9911jkzfm8h5pp0gv8l9bx5s2skkdrw1"; depends=[Biobase ExperimentHub]; };
+  IHWpaper = derive2 { name="IHWpaper"; version="1.32.0"; sha256="0s3x2chbr8ik3rhgzmfhaq8xlsnnkzfhjh4p327sn5aar6xhaj67"; depends=[Biobase BiocGenerics BiocParallel cowplot DESeq2 dplyr fdrtool genefilter ggplot2 IHW qvalue Rcpp SummarizedExperiment]; };
+  ITALICSData = derive2 { name="ITALICSData"; version="2.42.0"; sha256="1d0awis142kgx9hi0dggl6gqg17m0awqzn8ncpqh2lwaka372dq8"; depends=[]; };
+  Illumina450ProbeVariants_db = derive2 { name="Illumina450ProbeVariants.db"; version="1.40.0"; sha256="1jpknhp624753rhalf81kvl02k4wj19xpncagzf85c878953vph0"; depends=[]; };
+  IlluminaDataTestFiles = derive2 { name="IlluminaDataTestFiles"; version="1.42.0"; sha256="0xmyhqaa34chd2fxzbs7rk72wyx086cfhnjjh4lwjmb8acbp9xi8"; depends=[]; };
+  Iyer517 = derive2 { name="Iyer517"; version="1.46.0"; sha256="0b9j6bc0dfx5mqyd7z7bzmfp6s59cy4dqr1pxzjy05yyfznbc72p"; depends=[Biobase]; };
+  JASPAR2014 = derive2 { name="JASPAR2014"; version="1.40.0"; sha256="0m4g6vp78zsnzkfjmjfjwvd04505lz55njm7ml7dycwv6lmaxivk"; depends=[Biostrings]; };
+  JASPAR2016 = derive2 { name="JASPAR2016"; version="1.32.0"; sha256="09q5m71drbp64n26plr0a9bz71akcs4g7pqqyjmsmjrzi40kx7hr"; depends=[]; };
+  JohnsonKinaseData = derive2 { name="JohnsonKinaseData"; version="1.0.0"; sha256="1ry5p2zll8hazxil4sa57v50b7xr9bk4p5a509i4mvasb089al3l"; depends=[BiocParallel checkmate dplyr ExperimentHub purrr stringr tidyr]; };
+  KEGGandMetacoreDzPathwaysGEO = derive2 { name="KEGGandMetacoreDzPathwaysGEO"; version="1.24.0"; sha256="1fqybcvwa8dls2kv8mkdydmkw0bzihr3xp3m853mffkdjjsrzkyk"; depends=[Biobase BiocGenerics]; };
+  KEGGdzPathwaysGEO = derive2 { name="KEGGdzPathwaysGEO"; version="1.42.0"; sha256="1mbvy9x8zp02337sw92hh00vvqcamldqdsdy4zp53qiskrpidkdc"; depends=[Biobase BiocGenerics]; };
+  KOdata = derive2 { name="KOdata"; version="1.30.0"; sha256="1ia8fyas2yfird4a0md85s3ak96hb1pdrvay48zzsmhmpgf1yj44"; depends=[]; };
+  LRcellTypeMarkers = derive2 { name="LRcellTypeMarkers"; version="1.12.0"; sha256="1cghhh1rv8w7819dzi982q862m6yj62pckx8r925j2di1him9db8"; depends=[ExperimentHub]; };
+  LiebermanAidenHiC2009 = derive2 { name="LiebermanAidenHiC2009"; version="0.42.0"; sha256="0hx2lfpidg54r6kslz3yx6d1lv4vjdrk6s2whii0070hbr18lvjj"; depends=[IRanges KernSmooth]; };
+  ListerEtAlBSseq = derive2 { name="ListerEtAlBSseq"; version="1.36.0"; sha256="0j4vvac93m8vqidwvqczggkfdk07dabycqprhsnmj8f0g8hpaq9v"; depends=[methylPipe]; };
+  LungCancerACvsSCCGEO = derive2 { name="LungCancerACvsSCCGEO"; version="1.40.0"; sha256="1h0m67ak452bbza0s3dsmh2vi9wdi1mgl4bvflhin1gxcgb6fk6p"; depends=[]; };
+  LungCancerLines = derive2 { name="LungCancerLines"; version="0.42.0"; sha256="0gmjpagl71vddsvcx3iwql175lv0lc5m6j071wnwh10z59a9jams"; depends=[Rsamtools]; };
+  M3DExampleData = derive2 { name="M3DExampleData"; version="1.30.0"; sha256="0g7p7vn2im6d4gamalfm2lcssdg874fgb23wra5c34dzrzz9nr0v"; depends=[]; };
+  MACSdata = derive2 { name="MACSdata"; version="1.12.0"; sha256="0wffmyshsylf118xfcdyl8bd5xy9gz726lpx3avmxz3a8x917vbr"; depends=[]; };
+  MAQCsubset = derive2 { name="MAQCsubset"; version="1.42.0"; sha256="0x59gbv91d90hasa2gwkv00c06zp8fj4fk18386ajfag0wpvpb2n"; depends=[affy Biobase lumi]; };
+  MEDIPSData = derive2 { name="MEDIPSData"; version="1.40.0"; sha256="0x9317wgrhvqwh87d1vls5m06jyzsli2yhkc345n6iwxzz3a0brr"; depends=[]; };
+  MEEBOdata = derive2 { name="MEEBOdata"; version="1.42.0"; sha256="1cj563a0fjwdrbrwnfzk7l79mjg95hanp5rs6rvjz30b8s5gmwqm"; depends=[]; };
+  MMAPPR2data = derive2 { name="MMAPPR2data"; version="1.18.0"; sha256="0rbi0psjwk0jgjpliv0hhjvq9wmwb8w4wgqw45wqba6qfpm70wya"; depends=[Rsamtools]; };
+  MMDiffBamSubset = derive2 { name="MMDiffBamSubset"; version="1.40.0"; sha256="1psm5f7wrqwqwxzkmqkaz629i1d7zn2s5zs6sgmhijqp7rzhmhc4"; depends=[]; };
+  MOFAdata = derive2 { name="MOFAdata"; version="1.20.0"; sha256="1sjpvs2vdmmrr5mkk734502lhs3nr3n0brscvh77y1n42abxy26x"; depends=[]; };
+  MSMB = derive2 { name="MSMB"; version="1.22.0"; sha256="0kwjdgf526q63kln6j7a0v6v14x1qx5hlpannpb5grah2lyxz4rw"; depends=[tibble]; };
+  MUGAExampleData = derive2 { name="MUGAExampleData"; version="1.24.0"; sha256="0mrap1whvlzlmbrfg611cq3c9a1w2pq3wmijk842cybsx8az59xd"; depends=[]; };
+  MerfishData = derive2 { name="MerfishData"; version="1.6.0"; sha256="1i8war9rg7fwjdfhj5xa6sp3lmp30j0di04gckskmz6pk9pjjg4r"; depends=[AnnotationHub BumpyMatrix EBImage ExperimentHub S4Vectors SingleCellExperiment SpatialExperiment SummarizedExperiment]; };
+  MetaGxBreast = derive2 { name="MetaGxBreast"; version="1.24.0"; sha256="05cz500r6fhlq5pfviiqj8cfv173027dqsdvhvvi57cbbx3qqn6r"; depends=[AnnotationHub Biobase ExperimentHub impute lattice SummarizedExperiment]; };
+  MetaGxOvarian = derive2 { name="MetaGxOvarian"; version="1.24.0"; sha256="01cnm2rf6ls1q5plgazxqkrrw3b6mcrxbq0wrmi0ra8daqh6asi7"; depends=[AnnotationHub Biobase ExperimentHub impute lattice SummarizedExperiment]; };
+  MetaGxPancreas = derive2 { name="MetaGxPancreas"; version="1.24.0"; sha256="150i72jrq3qshsh0m20kxdcx7zxz1cgvlk0y2nxnacs1xbdnywxv"; depends=[AnnotationHub ExperimentHub impute S4Vectors SummarizedExperiment]; };
+  MetaScope = derive2 { name="MetaScope"; version="1.4.0"; sha256="1kaisvhp66g95w4dycw8jzsxh00f2c193rjcla6l5k2dn5rnsyr9"; depends=[BiocFileCache Biostrings data_table dplyr ggplot2 magrittr Matrix MultiAssayExperiment Rbowtie2 readr rlang Rsamtools S4Vectors stringr SummarizedExperiment taxize tibble tidyr]; };
+  MethylAidData = derive2 { name="MethylAidData"; version="1.36.0"; sha256="1f328mhf9b64scr45c9sshcgnsw9lb1g9in22xx2sak40dspjx2a"; depends=[MethylAid]; };
+  MethylSeqData = derive2 { name="MethylSeqData"; version="1.14.0"; sha256="197347pavq9hjcpwa9lq66lyjr1jb7mymd9pjz01rr9f77d7rqq5"; depends=[ExperimentHub GenomeInfoDb GenomicRanges HDF5Array IRanges rhdf5 S4Vectors SummarizedExperiment]; };
+  MicrobiomeBenchmarkData = derive2 { name="MicrobiomeBenchmarkData"; version="1.6.0"; sha256="00lr183x24yx4xd9cpxvzkcxmqp4dinfi1nz2arqqxnbfcp2s25j"; depends=[ape BiocFileCache S4Vectors SummarizedExperiment TreeSummarizedExperiment]; };
+  MouseAgingData = derive2 { name="MouseAgingData"; version="1.0.0"; sha256="1867xjhwbsjlzlm8fq0j8ggbhhym427l7vcx9i9g6zwkda7p64x3"; depends=[AnnotationHub ExperimentHub SingleCellExperiment]; };
+  MouseGastrulationData = derive2 { name="MouseGastrulationData"; version="1.18.0"; sha256="0adw98vym1jir1jrzaws7zrlfvls6rfl8bvkpq5sjy4crb33lxy2"; depends=[BiocGenerics BumpyMatrix ExperimentHub S4Vectors SingleCellExperiment SpatialExperiment SummarizedExperiment]; };
+  MouseThymusAgeing = derive2 { name="MouseThymusAgeing"; version="1.12.0"; sha256="1vkbfni6zyr9qhzxfgfj7c5y639amsgbi3chcnsch36r35bnaxp2"; depends=[BiocGenerics ExperimentHub S4Vectors SingleCellExperiment SummarizedExperiment]; };
+  NCIgraphData = derive2 { name="NCIgraphData"; version="1.40.0"; sha256="0macj01775q3dzqhvsbfb2gkz0s8w49vgbfh2nhpgfykwzx5bwjm"; depends=[]; };
+  NGScopyData = derive2 { name="NGScopyData"; version="1.24.0"; sha256="1j780dkzv08ajyz0c9dh2ygqsyycyhnzvxl1jrc3gvxdddr1syvj"; depends=[]; };
+  NanoporeRNASeq = derive2 { name="NanoporeRNASeq"; version="1.14.0"; sha256="0lpjxpw5jd4zj9pjd3xjcaxkcn135rbhz628zpl44qrdnmyjg2wk"; depends=[ExperimentHub]; };
+  NestLink = derive2 { name="NestLink"; version="1.20.0"; sha256="1yh1nivipyrx3h0par8cf943licl1rs47jvfwz1392hi09vji15j"; depends=[AnnotationHub Biostrings ExperimentHub gplots protViz ShortRead]; };
+  NetActivityData = derive2 { name="NetActivityData"; version="1.6.0"; sha256="1jcj9k5mzf30wimwwv4gix85n597bv20bjh32nrha2yqiihp9k34"; depends=[]; };
+  Neve2006 = derive2 { name="Neve2006"; version="0.42.0"; sha256="0w3ph610lhxyg1knhsnnxpw32sw2n5p57svpbhqm3zmphx29nw3h"; depends=[annotate Biobase hgu133a_db]; };
+  NxtIRFdata = derive2 { name="NxtIRFdata"; version="1.10.0"; sha256="0qwqpzaqp9m8202sp7pdpii90j9yh97ipk36ivh9ba3s05agwq8p"; depends=[BiocFileCache ExperimentHub R_utils rtracklayer]; };
+  OMICsPCAdata = derive2 { name="OMICsPCAdata"; version="1.22.0"; sha256="0p0pjgffxc72b3wx6wnn0d0wc27qdp5z6my1xr19604drn7sd20x"; depends=[MultiAssayExperiment]; };
+  ObMiTi = derive2 { name="ObMiTi"; version="1.12.0"; sha256="061qyy69wlr5zhp3m499lq83dq7rwch8ll3a10vwmmwx1l40n8xa"; depends=[ExperimentHub SummarizedExperiment]; };
+  OnassisJavaLibs = derive2 { name="OnassisJavaLibs"; version="1.26.0"; sha256="1j2nyrkx9ish1v2yvr8wsahhclpy2mvdnrwnk19fkv8kr1hjwjws"; depends=[rJava]; };
+  PCHiCdata = derive2 { name="PCHiCdata"; version="1.32.0"; sha256="12nzy9m96jsal7sfqqdi8q7vq9rb4jc5h3hbl11aq4ik66048dyh"; depends=[Chicago]; };
+  PREDAsampledata = derive2 { name="PREDAsampledata"; version="0.44.0"; sha256="0ydb4y2s8kshia7k6mr941f1fc7nsqahm1g86ig3wpcq7al33z1b"; depends=[affy annotate Biobase PREDA]; };
+  PWMEnrich_Dmelanogaster_background = derive2 { name="PWMEnrich.Dmelanogaster.background"; version="4.38.0"; sha256="1wnm4jq5lzz50wzsz9v0kw104c1m67j68qlq6773ikdblsrlq23x"; depends=[PWMEnrich]; };
+  PWMEnrich_Hsapiens_background = derive2 { name="PWMEnrich.Hsapiens.background"; version="4.38.0"; sha256="0fjzlnzv4fk9a90vnl39shx6d84bv61rc3hda6h18md5al202jyj"; depends=[PWMEnrich]; };
+  PWMEnrich_Mmusculus_background = derive2 { name="PWMEnrich.Mmusculus.background"; version="4.38.0"; sha256="0w815iqjfv0f0kybr84y3q4xsvxihixbiljsdz09xgafam3l80a3"; depends=[PWMEnrich]; };
+  PasillaTranscriptExpr = derive2 { name="PasillaTranscriptExpr"; version="1.32.0"; sha256="0pwqfmcm0cw0z42571fa8w2lpy5mx516mckvk1dwys2yzdhjj24a"; depends=[]; };
+  PathNetData = derive2 { name="PathNetData"; version="1.40.0"; sha256="1pa6hrkyz1byldlch3h7brw2klxi9v2gg97j6814qiqiv84ms90y"; depends=[]; };
+  PepsNMRData = derive2 { name="PepsNMRData"; version="1.22.0"; sha256="1yzdpfbfivkyvnw76c24j2rbwfkjsnh0blv2z9x8aj1s0b3m5rjy"; depends=[]; };
+  PhyloProfileData = derive2 { name="PhyloProfileData"; version="1.18.0"; sha256="1bnzrqcyvhr4cnxkiwlpw5rjhrkbs6lm050yjnm79b2gd2whyk81"; depends=[BiocStyle Biostrings ExperimentHub]; };
+  ProData = derive2 { name="ProData"; version="1.42.0"; sha256="0ysmv66irrq7q8yzk77kkcrxdrcs1pa0z20dfhcsaqkd84yn74jz"; depends=[Biobase]; };
+  PtH2O2lipids = derive2 { name="PtH2O2lipids"; version="1.30.0"; sha256="0garsf77h2nb1zcy3z8ypk3c95pjjnzhxvfwlznn4i1l6qi45mds"; depends=[CAMERA LOBSTAHS xcms]; };
+  QDNAseq_hg19 = derive2 { name="QDNAseq.hg19"; version="1.34.0"; sha256="054c565wqr3cadym8kmf0wm0k2n3ri6x4bla4zyhra0v8cz6axjb"; depends=[QDNAseq]; };
+  QDNAseq_mm10 = derive2 { name="QDNAseq.mm10"; version="1.34.0"; sha256="08lj3vcnjg38fnnppa3nsg8sw6gfhklak9prpjxig9yzcg4pggwx"; depends=[QDNAseq]; };
+  QUBICdata = derive2 { name="QUBICdata"; version="1.32.0"; sha256="0gdsyvfrwsbbm786bkkqxxsc5s3wpn7fyhf4f227gr8sg3l7fkbi"; depends=[]; };
+  RGMQLlib = derive2 { name="RGMQLlib"; version="1.24.0"; sha256="09149yaw2gpypp0m7cghbjqksbj0ncly8fxlv1n7l2s8kaq5jkdq"; depends=[]; };
+  RITANdata = derive2 { name="RITANdata"; version="1.28.0"; sha256="0k1rziwpb26y19j2cii9y2vffr0sdkskll41njwpkl5mla5bzylv"; depends=[]; };
+  RLHub = derive2 { name="RLHub"; version="1.9.0"; sha256="0hm3wplzmmzsygz8dalwf6y798p4g2bssjdsg51w17s2mgm4hl98"; depends=[AnnotationHub ExperimentHub]; };
+  RMassBankData = derive2 { name="RMassBankData"; version="1.42.0"; sha256="10g42s6wq66fhvrxcwxf08073scpkinfldwwdl03r7lxy1wka426"; depends=[]; };
+  RNAinteractMAPK = derive2 { name="RNAinteractMAPK"; version="1.42.0"; sha256="0vm20x1lfgl671rrwvxybcwjgk7falb3d5xi6hiq9jivvbms9120"; depends=[Biobase fields gdata genefilter lattice MASS RNAinteract sparseLDA]; };
+  RNAmodR_Data = derive2 { name="RNAmodR.Data"; version="1.18.0"; sha256="0k5ykbry5si0wc6f1am3ln9pcl842hjrpmmw15j9sm565k5pmvmf"; depends=[ExperimentHub ExperimentHubData]; };
+  RNAseqData_HNRNPC_bam_chr14 = derive2 { name="RNAseqData.HNRNPC.bam.chr14"; version="0.42.0"; sha256="1xc5ya20nnrhdkib7590zv5g8q6cppd6qiwglxc6fj26ncdj6s73"; depends=[]; };
+  RRBSdata = derive2 { name="RRBSdata"; version="1.24.0"; sha256="1s6fjkz0dld7mlb1ylqmrw63jk3k0162rv2li6zkz66gc4aq10p0"; depends=[BiSeq]; };
+  RTCGA_CNV = derive2 { name="RTCGA.CNV"; version="1.32.0"; sha256="0ll5zj9d9d3ykkkq7iqq5sfvz8i4dc297nwkjpvjxrlazw28iiyl"; depends=[RTCGA]; };
+  RTCGA_PANCAN12 = derive2 { name="RTCGA.PANCAN12"; version="1.32.0"; sha256="0rmgg5j4rzqg78i43l9975vhdnh8r23lz78fkwwa94ihpqv1pbic"; depends=[RTCGA]; };
+  RTCGA_RPPA = derive2 { name="RTCGA.RPPA"; version="1.32.0"; sha256="158m31hysybyh3ha5n324srrxzc76bkv9fpblida2znv9sni6c52"; depends=[RTCGA]; };
+  RTCGA_clinical = derive2 { name="RTCGA.clinical"; version="20151101.34.0"; sha256="1s7fss644wkrvimqp2h3hq14gr0gjdqyj92hcrzff2qwyy5fzhky"; depends=[RTCGA]; };
+  RTCGA_mRNA = derive2 { name="RTCGA.mRNA"; version="1.32.0"; sha256="1anwv8cg38lpwfyxicqi8kml9q9gigrc7bzmp163322lxaq79c1q"; depends=[RTCGA]; };
+  RTCGA_methylation = derive2 { name="RTCGA.methylation"; version="1.32.0"; sha256="04q23w331vjmmmy2iy79grkgdn03iz53vw8npwx2wq1w8if8xdi4"; depends=[RTCGA]; };
+  RTCGA_miRNASeq = derive2 { name="RTCGA.miRNASeq"; version="1.32.0"; sha256="1bgcgsx01s7p24014rp8jiklmml822hxabrgf4xxagx4jzr91fxn"; depends=[RTCGA]; };
+  RTCGA_mutations = derive2 { name="RTCGA.mutations"; version="20151101.34.0"; sha256="19las4v4zg8wbb52wa4zmwpfpn80pyjp1kyvqkhgvpd8m3dj7951"; depends=[RTCGA]; };
+  RTCGA_rnaseq = derive2 { name="RTCGA.rnaseq"; version="20151101.34.0"; sha256="03kr2l5l5a7v98rna3a43543b7pqcwc7zhawnh92g3rdabk03w9s"; depends=[RTCGA]; };
+  RUVnormalizeData = derive2 { name="RUVnormalizeData"; version="1.24.0"; sha256="0w62ybdiq0dwd11ld48kl178qpd53xbfl51z2jwpi2pj1b86fg9l"; depends=[Biobase]; };
+  RcisTarget_hg19_motifDBs_cisbpOnly_500bp = derive2 { name="RcisTarget.hg19.motifDBs.cisbpOnly.500bp"; version="1.24.0"; sha256="170wjqnrvmdjcpx0bwwky3j7cxhbqvch781dzl6il2igca9kbqhq"; depends=[data_table]; };
+  ReactomeGSA_data = derive2 { name="ReactomeGSA.data"; version="1.18.0"; sha256="1410ks6s7albf6sly8ry0ln58ws9jlfn62amniqqsg46kx4xc4bh"; depends=[edgeR limma ReactomeGSA Seurat]; };
+  RegParallel = derive2 { name="RegParallel"; version="1.22.0"; sha256="0zaask3zpbqh6pmrx4hsi5wz7kkfhbl15xzhz10s8h9m739wm8c0"; depends=[arm data_table doParallel foreach iterators stringr survival]; };
+  RforProteomics = derive2 { name="RforProteomics"; version="1.42.0"; sha256="0irg6wrwy82xhlkgj1vphh6ncp9s6qcpp40mxv1vq969qjjchkk9"; depends=[BiocManager biocViews MSnbase R_utils]; };
+  RnBeads_hg19 = derive2 { name="RnBeads.hg19"; version="1.36.0"; sha256="0yn7n3zv9i76abx9wp0vw6wa7iylbrj2ffhzbc3irc104id0i4f9"; depends=[GenomicRanges]; };
+  RnBeads_hg38 = derive2 { name="RnBeads.hg38"; version="1.36.0"; sha256="05ffx8a76z9nnl3qhfjf6vfnnc2pqkw2jy4pc0wgqc1y3w9vg60l"; depends=[GenomicRanges]; };
+  RnBeads_mm10 = derive2 { name="RnBeads.mm10"; version="2.12.0"; sha256="151ivmy35ff850f1ij403bj5g9jhw8r515jjqbvq182x1cygbdfl"; depends=[GenomicRanges]; };
+  RnBeads_mm9 = derive2 { name="RnBeads.mm9"; version="1.36.0"; sha256="1bd5jai5jk1d3mqbx7x05ypfxma8s330na9n5bb9qzwxq7imd50b"; depends=[GenomicRanges]; };
+  RnBeads_rn5 = derive2 { name="RnBeads.rn5"; version="1.36.0"; sha256="098vy604ca0g408hl2g0p6kh2zzvzvbmyhbr0z081rbdpvzlnf4f"; depends=[GenomicRanges]; };
+  RnaSeqSampleSizeData = derive2 { name="RnaSeqSampleSizeData"; version="1.36.0"; sha256="1gm55gmsxna8a53k7a7yd99nzc4mg1kw7l5lnmkipa03lafa2yff"; depends=[edgeR]; };
+  SBGNview_data = derive2 { name="SBGNview.data"; version="1.18.0"; sha256="1hycjipfz6lr1hs1r7g65l565pcx77sz8bjacg5gdcv3rs1by2ql"; depends=[bookdown knitr rmarkdown]; };
+  SCLCBam = derive2 { name="SCLCBam"; version="1.36.0"; sha256="18im1j8j1y4hva4wg6vki59j1bifz9apijyi44wngsx68z19az35"; depends=[]; };
+  SFEData = derive2 { name="SFEData"; version="1.6.0"; sha256="03f7f9jrdszvwqgskk12jqw8mvyrrhcjd5v1nzdiy3csg2fa7nbs"; depends=[AnnotationHub BiocFileCache ExperimentHub]; };
+  SNAData = derive2 { name="SNAData"; version="1.50.0"; sha256="1l3g5gsiv5s83b6406s23snf62zav75s28nq68s8czbm1rsv6xw5"; depends=[graph]; };
+  SNAGEEdata = derive2 { name="SNAGEEdata"; version="1.40.0"; sha256="00m10r01sx027pnahw5ck1paplqpwsyq11dkacxq21ssvlc8kbl6"; depends=[]; };
+  SNPhoodData = derive2 { name="SNPhoodData"; version="1.34.0"; sha256="0r036vskwlk0mp7bgcbvr7iwffcm7g7imzwh5gri05j5p0rhny72"; depends=[]; };
+  STexampleData = derive2 { name="STexampleData"; version="1.12.3"; sha256="1c9lbghi1ybilrc7yiff12sjyaqpr8095wdvz941lnf3cmgci79q"; depends=[ExperimentHub SingleCellExperiment SpatialExperiment]; };
+  SVM2CRMdata = derive2 { name="SVM2CRMdata"; version="1.36.0"; sha256="18pd61cg12ghi8kjh1cjyrd248r20l39drbg9vpqmmcpai5f45wy"; depends=[]; };
+  SimBenchData = derive2 { name="SimBenchData"; version="1.12.0"; sha256="0a3q2ajr0pzwdabx306c8bia25cbih3hfzd5jgm2cx9f5i37f11v"; depends=[ExperimentHub S4Vectors]; };
+  Single_mTEC_Transcriptomes = derive2 { name="Single.mTEC.Transcriptomes"; version="1.32.0"; sha256="0h54w7lc8v5jicm6xf5i16pi8rw2fxqvssf7a0ql9qa6bv4c7sqy"; depends=[]; };
+  SingleCellMultiModal = derive2 { name="SingleCellMultiModal"; version="1.16.0"; sha256="1kzfzprma01ppbpbzgfgaa3dins2915n3wqsrqapcxfks7zvaciq"; depends=[AnnotationHub BiocBaseUtils BiocFileCache ExperimentHub HDF5Array Matrix MultiAssayExperiment S4Vectors SingleCellExperiment SpatialExperiment SummarizedExperiment]; };
+  SingleMoleculeFootprintingData = derive2 { name="SingleMoleculeFootprintingData"; version="1.12.0"; sha256="0xdi5rpqpj07h8j1n7wxfsmvrp6zsnc5rq1b2frdp8x3xdlf5dxn"; depends=[ExperimentHub]; };
+  SomatiCAData = derive2 { name="SomatiCAData"; version="1.42.0"; sha256="01k9s97rd78pciv4yaij07zzrijvfidpg6hh4h67mnxc90pg3r8w"; depends=[]; };
+  SomaticCancerAlterations = derive2 { name="SomaticCancerAlterations"; version="1.40.0"; sha256="11jvin7y5ys1lxwfjrwb4vw4gcpj09y0n6rhs87w27gcpj4dk7dm"; depends=[GenomicRanges IRanges S4Vectors]; };
+  SpatialDatasets = derive2 { name="SpatialDatasets"; version="1.2.0"; sha256="0qg9x657kamqqcifziagp3qrk5h2zh16jl8dprzl7nnrxhp0cra2"; depends=[ExperimentHub SpatialExperiment]; };
+  SpikeIn = derive2 { name="SpikeIn"; version="1.46.0"; sha256="1bnhag1cck99k6mgfnqddjxjhmpgax76p28hm686jkil416y0y47"; depends=[affy]; };
+  SpikeInSubset = derive2 { name="SpikeInSubset"; version="1.44.0"; sha256="118v972wwq4h2ww2nlb7mzva3d38c4hzmbq0v28500q2zc1ykv4l"; depends=[affy Biobase]; };
+  SubcellularSpatialData = derive2 { name="SubcellularSpatialData"; version="1.0.0"; sha256="0lyg6hiv8ch7c8a7zzi02c9fmq2zqif88khhslj15gvg5dznw79v"; depends=[dplyr hexbin Matrix SpatialExperiment]; };
+  TBX20BamSubset = derive2 { name="TBX20BamSubset"; version="1.40.0"; sha256="0hxmizdgrbv6vqlxj6hn4wiazjf3cwaaq17pagqmjlfxbqb4mlzk"; depends=[Rsamtools xtable]; };
+  TCGAMethylation450k = derive2 { name="TCGAMethylation450k"; version="1.40.0"; sha256="1c2jgrh5fsnq4d8aw8p1147jsdz8yi60i3naxsd8kj3s9mn1vfn2"; depends=[]; };
+  TCGAWorkflowData = derive2 { name="TCGAWorkflowData"; version="1.28.0"; sha256="0sg9zn06rf63n9z6qggxwrh5mxjg0gq1zjj1fn141d7xdbw1j784"; depends=[SummarizedExperiment]; };
+  TCGAbiolinksGUI_data = derive2 { name="TCGAbiolinksGUI.data"; version="1.24.0"; sha256="1r36f7nvvjjgkgmhha81n2iyr9k4nzy0qkkblm483rgzxav4gqa6"; depends=[]; };
+  TCGAcrcmRNA = derive2 { name="TCGAcrcmRNA"; version="1.24.0"; sha256="07sszvf7wd50gj5sgkj4di9a5y4yqcgi9ykssmp9n16bam1xp0a8"; depends=[Biobase]; };
+  TCGAcrcmiRNA = derive2 { name="TCGAcrcmiRNA"; version="1.24.0"; sha256="0jc6shc18kvd69v8wrgifg3cvi5idv1hlnd4x93njxbj9yyxr8xd"; depends=[Biobase]; };
+  TENxBUSData = derive2 { name="TENxBUSData"; version="1.18.0"; sha256="19a909cs0z8zy6vwlxxgk76ybj9yrhsxd2z8narf50rv96nyid0s"; depends=[AnnotationHub BiocGenerics ExperimentHub]; };
+  TENxBrainData = derive2 { name="TENxBrainData"; version="1.24.0"; sha256="1kb5i3xrins9jd40xzyi4sj9nks83vzw1w8pk7ji6kgyjdgm1by6"; depends=[AnnotationHub ExperimentHub HDF5Array SingleCellExperiment]; };
+  TENxPBMCData = derive2 { name="TENxPBMCData"; version="1.22.0"; sha256="089q81wiq7flr1a72gmj7y1ds73zzc2h96pnjm7s5sbysgy4jgx9"; depends=[AnnotationHub ExperimentHub HDF5Array SingleCellExperiment]; };
+  TENxVisiumData = derive2 { name="TENxVisiumData"; version="1.12.0"; sha256="08jcq5vq0ki4q6ndpm3799kwiy62j446v4kbfdfw7j7rwgjmhjhs"; depends=[ExperimentHub SpatialExperiment]; };
+  TENxXeniumData = derive2 { name="TENxXeniumData"; version="1.0.0"; sha256="1zjyry8m4f8xw6apib90rv8lyxhpdy3nqgawshhslv8w8qwk3xs9"; depends=[BumpyMatrix ExperimentHub SpatialExperiment SpatialFeatureExperiment SummarizedExperiment]; };
+  TMExplorer = derive2 { name="TMExplorer"; version="1.14.0"; sha256="0qxm46dryq7c4xrbkhgbfqxqn0p7x1nxklqhkdw8qmklszc2b870"; depends=[BiocFileCache Matrix SingleCellExperiment]; };
+  TabulaMurisData = derive2 { name="TabulaMurisData"; version="1.22.0"; sha256="0gnv8yfksrc59prki6w6xa5pw5nszxkx88i5av3ln21hq5idj4cm"; depends=[ExperimentHub]; };
+  TabulaMurisSenisData = derive2 { name="TabulaMurisSenisData"; version="1.10.0"; sha256="1b1aj06qacvzpabz8r0vkqpm0pp48vx26xx84h5ihzg9232wrqmy"; depends=[AnnotationHub ExperimentHub gdata HDF5Array SingleCellExperiment SummarizedExperiment]; };
+  TargetScoreData = derive2 { name="TargetScoreData"; version="1.40.0"; sha256="18y7vidhgkhpr9nlhxwhhi7z07vj6ii1vwl9c8dyyhzfc8icsmsn"; depends=[]; };
+  TargetSearchData = derive2 { name="TargetSearchData"; version="1.42.0"; sha256="0dzb1jazdwx37kx0xwvv9i7rfq1712bifz542x4liahvxjgz7prg"; depends=[]; };
+  TimerQuant = derive2 { name="TimerQuant"; version="1.34.0"; sha256="1gjnfmsbcj8ndj1fssclzlb5qd482c38gpi0q4x7ls98bk42r44x"; depends=[deSolve dplyr ggplot2 gridExtra locfit shiny]; };
+  TransOmicsData = derive2 { name="TransOmicsData"; version="1.0.1"; sha256="0sfpks0wfzlrh5qqg0id5c99l1dzj2l1nd5h3shjhp0lm4f5v8w0"; depends=[S4Vectors]; };
+  TumourMethData = derive2 { name="TumourMethData"; version="1.2.0"; sha256="1xwm2amlb1vrf3hpdw9387nglc6pbxxdxik56byr5p8856fkjdav"; depends=[ExperimentHub GenomicRanges HDF5Array R_utils rhdf5 SummarizedExperiment]; };
+  VariantToolsData = derive2 { name="VariantToolsData"; version="1.28.0"; sha256="0k8fg4bhghva32qk4l6r4g6asdkyl2afx0frbk0f57b2hqix69fb"; depends=[BiocGenerics GenomicRanges VariantAnnotation]; };
+  VectraPolarisData = derive2 { name="VectraPolarisData"; version="1.8.0"; sha256="13r0r1whcxzzhlsa3bjsq9kp3csgnynbcrxj06v5s73xf8xify00"; depends=[ExperimentHub SpatialExperiment]; };
+  WES_1KG_WUGSC = derive2 { name="WES.1KG.WUGSC"; version="1.36.0"; sha256="1yv62ydvlsl52awzn2nsa52vaz4naf4biw57awpmz0cp4rb68kdb"; depends=[]; };
+  WGSmapp = derive2 { name="WGSmapp"; version="1.16.0"; sha256="0k4zyj9dn5x710a1vv11156brz52yf9lzmlmx9axcfsch5dcvi7x"; depends=[GenomicRanges]; };
+  WeberDivechaLCdata = derive2 { name="WeberDivechaLCdata"; version="1.6.0"; sha256="0nkh8c329n0jh33wa0knnwi9vvk8na1d3lpm3g5lrzl8624kdllv"; depends=[ExperimentHub SingleCellExperiment SpatialExperiment]; };
+  XhybCasneuf = derive2 { name="XhybCasneuf"; version="1.42.0"; sha256="0n0k6h9b9gkywy6cmlx15g09287aqzvc228j3jgjkv0ljbwsq756"; depends=[affy ath1121501cdf RColorBrewer tinesath1cdf]; };
+  adductData = derive2 { name="adductData"; version="1.20.0"; sha256="1ydd7zxag0cmw7mj38srqs4w6lbp1ic5i8s1ay6pifv14arcncrz"; depends=[AnnotationHub ExperimentHub]; };
+  affycompData = derive2 { name="affycompData"; version="1.42.0"; sha256="16fri51jhp0lm3aj9hw2s6jzxjlxz2qbd36j9zcbcs7sb6jh42jy"; depends=[affycomp Biobase]; };
+  affydata = derive2 { name="affydata"; version="1.52.0"; sha256="0srmrb2pf5dhjfm1l1jd06jgnah16qxillxi5zjr8vq7pgvw8x4b"; depends=[affy]; };
+  airway = derive2 { name="airway"; version="1.24.0"; sha256="0yj9ac58iplcakzw6yyglyiwwhiyslp2hlnszhp3258grvbfvcby"; depends=[SummarizedExperiment]; };
+  antiProfilesData = derive2 { name="antiProfilesData"; version="1.40.0"; sha256="1mlps08fra7ssbymwf260c43skp2pzw477mp090ycfaj8ncdzqqp"; depends=[Biobase]; };
+  aracne_networks = derive2 { name="aracne.networks"; version="1.30.0"; sha256="1xfzs1n9wis3r0q4g0hg4amhx4zldbslidx1i4d90vcrgzfdh4x6"; depends=[viper]; };
+  bcellViper = derive2 { name="bcellViper"; version="1.40.0"; sha256="0mx92gs9065lz0c01mzng9snalvmdb3xbsm1r3f6fnhg478da4yq"; depends=[Biobase]; };
+  beadarrayExampleData = derive2 { name="beadarrayExampleData"; version="1.42.0"; sha256="0l5n1d7x4gc3w2kc6vq0gqxp1wdpa2sn5k75yf5fc802m11nrkd1"; depends=[beadarray Biobase]; };
+  benchmarkfdrData2019 = derive2 { name="benchmarkfdrData2019"; version="1.18.0"; sha256="1k8gpql57jps51bh5kdn5j5mgz36a369p4sz37sbqkfrskfs8m91"; depends=[ExperimentHub SummarizedExperiment]; };
+  beta7 = derive2 { name="beta7"; version="1.42.0"; sha256="0c7zal2hk7knw2mcfkfh7svz3b6nz98y895mhl3ari986wqpj4nv"; depends=[marray]; };
+  biotmleData = derive2 { name="biotmleData"; version="1.28.0"; sha256="0c50778lwkapgvwn7nvhjyn7irxn85d97mfyawgfgs9kzyfxx1a3"; depends=[]; };
+  biscuiteerData = derive2 { name="biscuiteerData"; version="1.18.0"; sha256="1qv2ajy312diacb3mihc3q7hrrlq48k5vd9v0g6w38cqz6gnz0as"; depends=[AnnotationHub curl ExperimentHub GenomicRanges]; };
+  bladderbatch = derive2 { name="bladderbatch"; version="1.42.0"; sha256="00cgkpa6mb32q3xl5clkpdh5rkwx7c81rxmyh2qr0jpwpmd3gjwc"; depends=[Biobase]; };
+  blimaTestingData = derive2 { name="blimaTestingData"; version="1.24.0"; sha256="0414hiah3yzkcdayb43vz5dafv6samaczg556wyl7ig2275k3q6h"; depends=[]; };
+  bodymapRat = derive2 { name="bodymapRat"; version="1.20.0"; sha256="15kjgqq7lq94pjqg380swqrkv684kgbpkaikfxxdx4cpgx8sjzn7"; depends=[ExperimentHub SummarizedExperiment]; };
+  breakpointRdata = derive2 { name="breakpointRdata"; version="1.22.0"; sha256="1hm190ji3s451x2hchmpyzx6v4n8p1n6fdqg7cbzmj19rzsb4wha"; depends=[]; };
+  breastCancerMAINZ = derive2 { name="breastCancerMAINZ"; version="1.42.0"; sha256="1i2h0f38skkv1m5gas15jdjw4jl8ma4w1sv74j1x9g1zfl9xq3rg"; depends=[]; };
+  breastCancerNKI = derive2 { name="breastCancerNKI"; version="1.42.0"; sha256="0vnwyqn5wg9iqmgb6zx6rciw62n8bxkdyfxlaggl35dpwwpzdb2f"; depends=[]; };
+  breastCancerTRANSBIG = derive2 { name="breastCancerTRANSBIG"; version="1.42.0"; sha256="0s2h6qy19jnk5s23r0vkv6j77n5qr7ncanmkz0ybx5qyfyicz9m4"; depends=[]; };
+  breastCancerUNT = derive2 { name="breastCancerUNT"; version="1.42.0"; sha256="0i8xw534hywfa382nyfy94g2fk0nfaid306dxrlijkfbs2b24dy9"; depends=[]; };
+  breastCancerUPP = derive2 { name="breastCancerUPP"; version="1.42.0"; sha256="183dy6c3wqc2m65vihdn840wvnq64vwndwcfsvhw39znqpszhs9k"; depends=[]; };
+  breastCancerVDX = derive2 { name="breastCancerVDX"; version="1.42.0"; sha256="0mvm2a77mss85vi8x3i35d54z70advyshsmadhl6aysrzfiw5ifd"; depends=[]; };
+  brgedata = derive2 { name="brgedata"; version="1.26.0"; sha256="1h2ka8k12lx4326y50scw80n21xkf67ks7kqs2ss6sbwd536gm61"; depends=[Biobase SummarizedExperiment]; };
+  bronchialIL13 = derive2 { name="bronchialIL13"; version="1.42.0"; sha256="0g1cfhfjycpv1jmba5jddff88m7pbz1l02kci9w73qzjcnqgpp12"; depends=[affy]; };
+  bsseqData = derive2 { name="bsseqData"; version="0.42.0"; sha256="06k6r288bqi9dshpdz6qlz0d3p1srz8yc1b0xrar9wy5fckdb97d"; depends=[bsseq]; };
+  cMap2data = derive2 { name="cMap2data"; version="1.40.0"; sha256="1vaqqszdx3bfdqm3ckn12w9f474wnyqyi7kz0wrj1y50wnwpm38f"; depends=[]; };
+  cancerdata = derive2 { name="cancerdata"; version="1.42.0"; sha256="1jgcg16v09wpga5zivx221mz2bnl37gwpjhlmq9a8h5vxlqcb9wl"; depends=[Biobase]; };
+  ccdata = derive2 { name="ccdata"; version="1.30.0"; sha256="0q77dk9rifwpp1c2ga1y3yxf1dwvlkmmn5sw285a1c5h6pipxsj3"; depends=[]; };
+  celarefData = derive2 { name="celarefData"; version="1.22.0"; sha256="1njq6i1803avcn2h9p3d2cnp8viwv7jak1b5kfqhcvl8jwwxlr59"; depends=[]; };
+  celldex = derive2 { name="celldex"; version="1.14.0"; sha256="155hnh62ra06b52xk78f111b10gm34d1djvl5w5mabvrk4vknwj6"; depends=[alabaster_base alabaster_matrix alabaster_se AnnotationDbi AnnotationHub DBI DelayedArray DelayedMatrixStats ExperimentHub gypsum jsonlite Matrix RSQLite S4Vectors SummarizedExperiment]; };
+  cfToolsData = derive2 { name="cfToolsData"; version="1.2.0"; sha256="0hhc9fn6rm9dnzlvs3lk5v0h5m76knl5nblnda26a36wdwz547ld"; depends=[ExperimentHub]; };
+  chipenrich_data = derive2 { name="chipenrich.data"; version="2.28.0"; sha256="1kpc3ljayxycadshdgyzkbagh4vd7cmyqqccy61269skpasdnwbv"; depends=[AnnotationDbi BiocGenerics GenomeInfoDb GenomicRanges IRanges readr rtracklayer S4Vectors]; };
+  chipseqDBData = derive2 { name="chipseqDBData"; version="1.20.0"; sha256="16mfq2mdwrc40i6wyjc9g897sk2rk0way6shc0nw9d1fkf4fsf8l"; depends=[AnnotationHub ExperimentHub Rsamtools S4Vectors]; };
+  chromstaRData = derive2 { name="chromstaRData"; version="1.30.0"; sha256="0v28zg8z5b72hci7rqbvjvcgp979zxnq6xgck4baypmkj9ac5wn3"; depends=[]; };
+  clustifyrdatahub = derive2 { name="clustifyrdatahub"; version="1.14.0"; sha256="1asssxa8kw2r5ai14kg06ajzkqfmqfvrp6ydjwgf8pkyc4m53r4p"; depends=[ExperimentHub]; };
+  cnvGSAdata = derive2 { name="cnvGSAdata"; version="1.40.0"; sha256="19dskn9kjk1phn2xlsx4wikwvagv48av6ar845hzwwyq7rzllyy6"; depends=[cnvGSA]; };
+  colonCA = derive2 { name="colonCA"; version="1.46.0"; sha256="17h4vcpvll01ggp280bspxsl1swiakfabs6n73874sjnik64wp2q"; depends=[Biobase]; };
+  crisprScoreData = derive2 { name="crisprScoreData"; version="1.8.0"; sha256="1a5ji6zbvnlbdzcqj4arpi6am7vaq31brxaxawr93knpy4lksd4f"; depends=[AnnotationHub ExperimentHub]; };
+  curatedAdipoArray = derive2 { name="curatedAdipoArray"; version="1.16.0"; sha256="0gs68q5gfn0ba6y0p429s8v989cfnnlii9066wvqgd8ixqcig66i"; depends=[]; };
+  curatedAdipoChIP = derive2 { name="curatedAdipoChIP"; version="1.20.0"; sha256="1yzxz6wjddf4mn6yw8zlz2yq6rhfs0639widql99hjclni1llxkc"; depends=[ExperimentHub SummarizedExperiment]; };
+  curatedAdipoRNA = derive2 { name="curatedAdipoRNA"; version="1.20.0"; sha256="1q22clkypj8y6am609h4748z2jc2lhhm8kdcv9s3dzx272dmm0w5"; depends=[SummarizedExperiment]; };
+  curatedBladderData = derive2 { name="curatedBladderData"; version="1.40.0"; sha256="0ma11myfh5kddksn81rspjq7l44vn0mgz2c98krpdgfv8qynf6ky"; depends=[affy]; };
+  curatedBreastData = derive2 { name="curatedBreastData"; version="2.32.0"; sha256="0zglh1h9hw6rnpdl4v5v7cmzgcvxa0phfixfwwmi8il0rn40jd68"; depends=[Biobase BiocStyle ggplot2 impute XML]; };
+  curatedCRCData = derive2 { name="curatedCRCData"; version="2.35.0"; sha256="1q6xmp32w39jsw7jrphpygyv63vd640nmpz69nlhhisbbpjd259c"; depends=[BiocGenerics nlme]; };
+  curatedMetagenomicData = derive2 { name="curatedMetagenomicData"; version="3.12.0"; sha256="1hp1s5v567xidmmpn6jv7i3fid5hwg3i43y9471aabq00nsg67b1"; depends=[AnnotationHub dplyr ExperimentHub magrittr mia purrr rlang S4Vectors stringr SummarizedExperiment tibble tidyr tidyselect TreeSummarizedExperiment]; };
+  curatedOvarianData = derive2 { name="curatedOvarianData"; version="1.42.0"; sha256="0rigr8nwcr60vp164hyjw20dw54mwlfg71m4naiz6m1v47d7cg1i"; depends=[Biobase BiocGenerics]; };
+  curatedPCaData = derive2 { name="curatedPCaData"; version="1.0.0"; sha256="0wqvg0z19lxyqbbsl7fbq12jgycpqycx45vy24z4sph48kz2ag3w"; depends=[AnnotationHub ExperimentHub MultiAssayExperiment RaggedExperiment rlang S4Vectors]; };
+  curatedTBData = derive2 { name="curatedTBData"; version="2.0.0"; sha256="03wmr9iyhqwbpmp7azq9im5waxy4viqhx0lsmqpk2bsijmigrg0z"; depends=[AnnotationHub ExperimentHub MultiAssayExperiment rlang]; };
+  curatedTCGAData = derive2 { name="curatedTCGAData"; version="1.26.0"; sha256="1xdygjwqgy6kjjxzvsy25bckc0f8j5m42wrj1vrnwy5fp0q7y287"; depends=[AnnotationHub ExperimentHub HDF5Array MultiAssayExperiment S4Vectors SummarizedExperiment]; };
+  davidTiling = derive2 { name="davidTiling"; version="1.44.0"; sha256="06r600sn2ga5jrwahxh3ysv4c713sxi0g6y6v46zpcwilkj10gp3"; depends=[Biobase GO_db tilingArray]; };
+  depmap = derive2 { name="depmap"; version="1.18.0"; sha256="0imajc5kiqf45sjwxagvg5bjvmnrzrk3ls4bflwxj9rnd84v2r62"; depends=[AnnotationHub BiocFileCache curl dplyr ExperimentHub httr2 tibble]; };
+  derfinderData = derive2 { name="derfinderData"; version="2.22.0"; sha256="14gyw3cii7np0rw9j39hcrij9kcybbrwxwz9qa4wx98ddzfixrcn"; depends=[]; };
+  diffloopdata = derive2 { name="diffloopdata"; version="1.32.0"; sha256="0qhbdq5j900nmpfbz3bcr4jn9zd43fnr7rd94lsv69dpjmsv7ikw"; depends=[]; };
+  diggitdata = derive2 { name="diggitdata"; version="1.36.0"; sha256="0js94wbi9rfsmwj7q8mbh2fimwpiw45ahb1a1g0300zxzf9y61ax"; depends=[Biobase viper]; };
+  dorothea = derive2 { name="dorothea"; version="1.16.0"; sha256="08s961ra7f6q4dag39rgdrg5minvzm58g22r8xkwfiw0hfavacbg"; depends=[bcellViper decoupleR dplyr magrittr]; };
+  dressCheck = derive2 { name="dressCheck"; version="0.42.0"; sha256="1i6lcf8lxp0v0lpkckx3yhzyzj841w3x6qj3kaxls4bfkzr3hls6"; depends=[Biobase]; };
+  dyebiasexamples = derive2 { name="dyebiasexamples"; version="1.44.0"; sha256="1ihkhfhgqywnp2vxrqpzvm5w3ncy6acwcns2ah1fm8xsq1bvcs5v"; depends=[GEOquery marray]; };
+  easierData = derive2 { name="easierData"; version="1.10.0"; sha256="0l6qhlaa02d2sqaa0yfxqqm1giga5jppq74sfgrih1ccqh348am7"; depends=[AnnotationHub ExperimentHub SummarizedExperiment]; };
+  ecoliLeucine = derive2 { name="ecoliLeucine"; version="1.44.0"; sha256="09pk2ay2j5gvk60vavs03cgfhma8bvsynxabkfcvr1hkl87qfl2k"; depends=[affy ecolicdf]; };
+  emtdata = derive2 { name="emtdata"; version="1.12.0"; sha256="0b3hvggndw3bzddk0vflbn0wx8fr08b6nphjhil1wqlyp3535xk4"; depends=[edgeR ExperimentHub SummarizedExperiment]; };
+  epimutacionsData = derive2 { name="epimutacionsData"; version="1.8.0"; sha256="06z3lxp8lsr2nqw3yqiddy3h4y6iid3n7s1ykbaz0dpm05vdq8i2"; depends=[]; };
+  estrogen = derive2 { name="estrogen"; version="1.50.0"; sha256="077mr5xz2w90iik8r6jraip377dbily14rnkpc7njicqnnq1d6m7"; depends=[]; };
+  etec16s = derive2 { name="etec16s"; version="1.32.0"; sha256="0hlvvmgm42g0lzsb5kljdfs0fcdpwwz3b3h7x88szg7fzqlvainz"; depends=[Biobase metagenomeSeq]; };
+  ewceData = derive2 { name="ewceData"; version="1.12.0"; sha256="1xk4i38a1yb3zx42hfh2b427y28103h2mpjvxa03fnwkl0lcb46j"; depends=[ExperimentHub]; };
+  faahKO = derive2 { name="faahKO"; version="1.44.0"; sha256="0bd93q332m7agqgsfkgsp87wv5fx6g2qsgn2z2n0bfsn3vmjjzc4"; depends=[xcms]; };
+  fabiaData = derive2 { name="fabiaData"; version="1.42.0"; sha256="1wzq802q1i52jh82yh9i2kdbya7qrmcjr646dc78vr6vng2k541s"; depends=[Biobase]; };
+  ffpeExampleData = derive2 { name="ffpeExampleData"; version="1.42.0"; sha256="1dzrbqlgh114m4lvikp638bqmw0yq3rwz9bpb1cfbpqlyji97wx7"; depends=[lumi]; };
+  fibroEset = derive2 { name="fibroEset"; version="1.46.0"; sha256="09lpn8s95rbbmv0zk3mg512ddxdv7gpp16hqyh7krsrfr9r8kjxs"; depends=[Biobase]; };
+  fission = derive2 { name="fission"; version="1.24.0"; sha256="095fd01jd105826gpv038zwj7p4iz7drbm3gy6r0w329xlv4lpp2"; depends=[SummarizedExperiment]; };
+  flowPloidyData = derive2 { name="flowPloidyData"; version="1.30.0"; sha256="1qlwv4v1mgxk444scdvmdpak0rpph51mc4al1qfbavd34l4yq6zc"; depends=[]; };
+  flowWorkspaceData = derive2 { name="flowWorkspaceData"; version="3.16.0"; sha256="11p2b85h8dmajj0pakmb7i4lr2rx9ghlm8sy3pa696hpqnszimjl"; depends=[]; };
+  fourDNData = derive2 { name="fourDNData"; version="1.4.0"; sha256="1lixqb8n99w0qwr6hi5sql2r84dnp4zc7lqd6lhj0mgpya85b5zr"; depends=[BiocFileCache GenomicRanges HiCExperiment IRanges S4Vectors]; };
+  frmaExampleData = derive2 { name="frmaExampleData"; version="1.40.0"; sha256="1dgirbhamg53dmfwc76s5ivclxmy7sjhjm9crzwrj1bzl6056cr3"; depends=[]; };
+  furrowSeg = derive2 { name="furrowSeg"; version="1.32.0"; sha256="125wyqi4h7kkrhbcn4gknwlw6panian2hfsapwyqfxz0mg6ssg5z"; depends=[abind dplyr EBImage locfit tiff]; };
+  gDNAinRNAseqData = derive2 { name="gDNAinRNAseqData"; version="1.4.0"; sha256="0wpv9p96qxnk22p7ili8ic4gr8p3wb6jfn4v9f0d4kn385vvfwyp"; depends=[BiocGenerics ExperimentHub RCurl Rsamtools XML]; };
+  gDRtestData = derive2 { name="gDRtestData"; version="1.2.0"; sha256="0kdlqbs5qj6svnhsrhnsd644kcxyd8haws5h4djm4gplyx6vwqyj"; depends=[checkmate data_table]; };
+  gageData = derive2 { name="gageData"; version="2.42.0"; sha256="1kbs0fz1jnx3grd9mpclbahwbp3749ipwfs8ggl9299bhjrgh9i6"; depends=[]; };
+  gaschYHS = derive2 { name="gaschYHS"; version="1.42.0"; sha256="01r25gx65a9lcjzbjm6gckzy3hyr70cxswxkvprsbphh7pkll3np"; depends=[Biobase]; };
+  gcspikelite = derive2 { name="gcspikelite"; version="1.42.0"; sha256="0cphbkq13jknmzs6qyv3cj1m73a1wncnj7znjnymbc0ha7rwcd5i"; depends=[]; };
+  geneLenDataBase = derive2 { name="geneLenDataBase"; version="1.40.1"; sha256="0c8f0sqgrg7rc2vs9id9xzbwwv3zhy6ylqiisji20rw9ipzgv7k8"; depends=[GenomicFeatures rtracklayer txdbmaker]; };
+  genomationData = derive2 { name="genomationData"; version="1.36.0"; sha256="16mghhik2xzin14d7mqlwfy2dah3ccnga947z9id44vyz906wws7"; depends=[]; };
+  golubEsets = derive2 { name="golubEsets"; version="1.46.0"; sha256="1rv5y7cj4rpdg8vl0qd3071d12rvgqcffqsf1gx8kmdgz13hi4gl"; depends=[Biobase]; };
+  gpaExample = derive2 { name="gpaExample"; version="1.16.0"; sha256="0q87x5k8ql01k9m503k87wn5pkrygrilqrsb0aix7xjpxa8aia1n"; depends=[]; };
+  grndata = derive2 { name="grndata"; version="1.36.0"; sha256="1qkxpljvm9sipphgjygnrynbslyv5rlpvfy34q6w1rqhf6qv0n89"; depends=[]; };
+  h5vcData = derive2 { name="h5vcData"; version="2.24.0"; sha256="04ymiclfwwp68h8pzpxrfrb5x9njqknhyhihbcj4v51qzx0y4jid"; depends=[]; };
+  hapmap100khind = derive2 { name="hapmap100khind"; version="1.46.0"; sha256="0a8j45fxr3sm4q689v29n9gj60g21pk3ixhv7s9plig12ma7nfnz"; depends=[]; };
+  hapmap100kxba = derive2 { name="hapmap100kxba"; version="1.46.0"; sha256="1afvfh6mckyi575qlp579p1akya4q7h0c9zp28s7n5nyljmh572i"; depends=[]; };
+  hapmap500knsp = derive2 { name="hapmap500knsp"; version="1.46.0"; sha256="0lbrn02lyca76xk2h2iddxpkvsj2kvz37m1dn0l5pwbz6igpllqp"; depends=[]; };
+  hapmap500ksty = derive2 { name="hapmap500ksty"; version="1.46.0"; sha256="0lnzwdcjz5f9imqprkh9qxrakg8qdh3j83bq5qaaq54mdh76kd68"; depends=[]; };
+  hapmapsnp5 = derive2 { name="hapmapsnp5"; version="1.46.0"; sha256="03pmlz3cskxf683dpdns258gh8rv33amzpvb9mabbg0jagg2b9lw"; depends=[]; };
+  hapmapsnp6 = derive2 { name="hapmapsnp6"; version="1.46.0"; sha256="15npa8h6qpp1i0ir2y6knvzb5f4rn9zimyl6sw24ccqbvimjkf7f"; depends=[]; };
+  harbChIP = derive2 { name="harbChIP"; version="1.42.0"; sha256="1pliyvn6g3gbkiinz4q24ajmq0apw035a2c9xq6b91ccm8m7ddrk"; depends=[Biobase Biostrings IRanges]; };
+  healthyControlsPresenceChecker = derive2 { name="healthyControlsPresenceChecker"; version="1.8.0"; sha256="14gq24z99l04kcn13414zjn17184l3p5l6draxwy3820m9sijzgq"; depends=[geneExpressionFromGEO GEOquery magrittr xml2]; };
+  healthyFlowData = derive2 { name="healthyFlowData"; version="1.42.0"; sha256="01hq1nchjyzps5nvsvpgxrw1vds92fv0sggzlls21ggrjhyrx8kp"; depends=[flowCore]; };
+  hgu133abarcodevecs = derive2 { name="hgu133abarcodevecs"; version="1.42.0"; sha256="1p9l32lhk5cvqfgxkk3bdz4s9dcyczh9b0a8rvb2cf6zz0i3l6fh"; depends=[]; };
+  hgu133plus2CellScore = derive2 { name="hgu133plus2CellScore"; version="1.24.0"; sha256="0akf6y1pwjiffhxgd2s01kmw4aylbfbh9hv8yyfvm3r72j07lbvs"; depends=[Biobase]; };
+  hgu133plus2barcodevecs = derive2 { name="hgu133plus2barcodevecs"; version="1.42.0"; sha256="0d6jcyb1v58f1p76mng0l327v6i1cskrgcj4p2r9z2pjbgyicgq2"; depends=[]; };
+  hgu2beta7 = derive2 { name="hgu2beta7"; version="1.44.0"; sha256="0wlkv4yppzg520zbhk7v19jfxbiran9di0bm10bfb9lizdszwd75"; depends=[]; };
+  homosapienDEE2CellScore = derive2 { name="homosapienDEE2CellScore"; version="1.0.0"; sha256="1vwasylfqv4xgmhkzykdwhlxh0kk4pl4bcndx5dpn7i386zp6chs"; depends=[BiocGenerics DESeq2 ExperimentHub getDEE2 MatrixGenerics Rtsne S4Vectors SummarizedExperiment]; };
+  humanStemCell = derive2 { name="humanStemCell"; version="0.44.0"; sha256="0yr4z1j4xaxaby3ka9k6h5bshzn78ymp0ic0ycblbl6zzr0vzym2"; depends=[Biobase hgu133plus2_db]; };
+  imcdatasets = derive2 { name="imcdatasets"; version="1.12.0"; sha256="135sffkn322g6zp6wz6ri2cg4wj9pwadmv4b6zaaxwximpx5xy04"; depends=[cytomapper DelayedArray ExperimentHub HDF5Array S4Vectors SingleCellExperiment SpatialExperiment]; };
+  kidpack = derive2 { name="kidpack"; version="1.46.0"; sha256="0802kn1n9ivjil19faphg4z4iy0y7n1hmixd9bkfv7livfl8yn0b"; depends=[Biobase]; };
+  leeBamViews = derive2 { name="leeBamViews"; version="1.40.0"; sha256="15prksw8pi302i8qpw3skwljyj3hfm9wld2lzpcgz7nnpzrqm8bc"; depends=[Biobase BSgenome GenomicAlignments GenomicRanges IRanges Rsamtools S4Vectors]; };
+  leukemiasEset = derive2 { name="leukemiasEset"; version="1.40.0"; sha256="0r5dmd9m8fcbdns3r1vsw4xmxdbjp5gf4klsb148rpgmp5avjar4"; depends=[Biobase]; };
+  lumiBarnes = derive2 { name="lumiBarnes"; version="1.44.0"; sha256="0in8rkcg1r7mjq3fzhyc8446dc09b1mm371vd6l0x541sj7x4n50"; depends=[Biobase lumi]; };
+  lungExpression = derive2 { name="lungExpression"; version="0.42.0"; sha256="1r4xn6r0vwnkfbi49gjrxgdscqdpwpfwzb61mrxa9m1hgjy1dr80"; depends=[Biobase]; };
+  lydata = derive2 { name="lydata"; version="1.30.0"; sha256="1f13r5krfqc2f4gc03dxk8ajxlm62yxif03m0nx8lqxvijgm4abq"; depends=[]; };
+  mCSEAdata = derive2 { name="mCSEAdata"; version="1.24.0"; sha256="0364bvsx286nsnyp5mh2i7i71dpdlpgn0907hnpxck1hcw19npnn"; depends=[GenomicRanges]; };
+  macrophage = derive2 { name="macrophage"; version="1.20.0"; sha256="11ydl4srfxbcqnb42kwk783xd74231g6vgp1f0qs3hl8slc1hk1w"; depends=[]; };
+  mammaPrintData = derive2 { name="mammaPrintData"; version="1.40.0"; sha256="1vna6vg7md9pl9hfrvbb4pi2rpnm0pm9l3ndh8ifdhqrz2vjhfpz"; depends=[]; };
+  maqcExpression4plex = derive2 { name="maqcExpression4plex"; version="1.48.0"; sha256="086pkn4x1nr7qqhawhyxdcrh9pnsqdpfgy07zxyf1i2by3b7b0v9"; depends=[]; };
+  marinerData = derive2 { name="marinerData"; version="1.4.0"; sha256="1blrqzi840vcvdslyxkljbc2ihbx7yvvfxmxcs2kq8590jagl425"; depends=[ExperimentHub]; };
+  mcsurvdata = derive2 { name="mcsurvdata"; version="1.22.0"; sha256="1pf4vljmfbks31rdhb1088x2lyck5bj1a5ci1z6qam8yi4kzgh1y"; depends=[AnnotationHub Biobase ExperimentHub]; };
+  metaMSdata = derive2 { name="metaMSdata"; version="1.40.0"; sha256="12x7p2jyzggjfb7v2ax9by5hly84jjkkm6fq3i2ycyryjl8f0p6s"; depends=[]; };
+  methylclockData = derive2 { name="methylclockData"; version="1.12.0"; sha256="1bwrgib7k71i4i6iq4l71n0z9adq3bg9k8j10bpi79ygn9169np5"; depends=[ExperimentHub ExperimentHubData]; };
+  miRNATarget = derive2 { name="miRNATarget"; version="1.42.0"; sha256="1l8k9j7gwmg5ml68j0rj903im8q74ksanzfarwcx0hdxx4srsv2j"; depends=[Biobase]; };
+  miRcompData = derive2 { name="miRcompData"; version="1.34.0"; sha256="17cg4j5lgn5wf0dcrb71sqf8amkjql5zgvjr85szxlzimkjykfyd"; depends=[]; };
+  microRNAome = derive2 { name="microRNAome"; version="1.26.0"; sha256="0ry0pi7gcdwgfij7sw96pv9krqyq1lx5n81c1prhla45q26w9zpc"; depends=[SummarizedExperiment]; };
+  microbiomeDataSets = derive2 { name="microbiomeDataSets"; version="1.12.0"; sha256="0ng0sbdn3y2h7dyn42rq5ci12xx5y3hqb87n7xi7lc1gp1pcxcf2"; depends=[ape BiocGenerics Biostrings ExperimentHub MultiAssayExperiment SummarizedExperiment TreeSummarizedExperiment]; };
+  minfiData = derive2 { name="minfiData"; version="0.50.0"; sha256="1myxv7cqh7d1rjav9qhwqsmw3s1xh3zm34vbxwprqaqg87dg4bw0"; depends=[IlluminaHumanMethylation450kanno_ilmn12_hg19 IlluminaHumanMethylation450kmanifest minfi]; };
+  minfiDataEPIC = derive2 { name="minfiDataEPIC"; version="1.30.0"; sha256="1sgcw9gdlgk6dyzw61c0k2q26w7vzbqzyrl5qimx466x76knz4hj"; depends=[IlluminaHumanMethylationEPICanno_ilm10b2_hg19 IlluminaHumanMethylationEPICmanifest minfi]; };
+  minionSummaryData = derive2 { name="minionSummaryData"; version="1.34.0"; sha256="0mmj48c1djl026g7ckn5k7shvyy7xa0fp7nsavm15a8l4blbq1ri"; depends=[]; };
+  mosaicsExample = derive2 { name="mosaicsExample"; version="1.42.0"; sha256="0sy85jkl5z82a7y3fg8a1mfq5cpjq2c5arvwplz427rsi02ppqan"; depends=[]; };
+  mouse4302barcodevecs = derive2 { name="mouse4302barcodevecs"; version="1.42.0"; sha256="1bdcfbjpz60fldj8xq3hwgvdqmv5axc8cl2l57i4xk4piggah22r"; depends=[]; };
+  msPurityData = derive2 { name="msPurityData"; version="1.32.0"; sha256="0pbdx6pg3cdwx6qngn01w46bvvqv2hhyicgi39y182gbwliv0fxl"; depends=[]; };
+  msd16s = derive2 { name="msd16s"; version="1.24.0"; sha256="16ska3qh5bav3y891gz805pj638j4kx73izv8krpqgpycin719ar"; depends=[Biobase metagenomeSeq]; };
+  msdata = derive2 { name="msdata"; version="0.44.0"; sha256="0g7mlgks3nfnfipnybs7pvsnmrvmq8888g39badca8pi73q1cm25"; depends=[]; };
+  msigdb = derive2 { name="msigdb"; version="1.12.0"; sha256="080wm9sjwqhaxqx1r3kly1bi1gvkssqpsadnvabx11w493356qr0"; depends=[AnnotationDbi AnnotationHub ExperimentHub GSEABase org_Hs_eg_db org_Mm_eg_db]; };
+  msqc1 = derive2 { name="msqc1"; version="1.32.0"; sha256="1wac6i792ndmv98rb3k7pz07q4l830yhkfs89ahlcalrah6m9cld"; depends=[lattice]; };
+  mtbls2 = derive2 { name="mtbls2"; version="1.34.0"; sha256="0bycprz32ihj7kzy5f31275sd4b855nd9vm34447x5y33wdiq9b9"; depends=[]; };
+  muleaData = derive2 { name="muleaData"; version="1.0.0"; sha256="0n5q0whp2fad980b72b9z85swkm8dc2r888javkzhb5c9sajz1w0"; depends=[]; };
+  multiWGCNAdata = derive2 { name="multiWGCNAdata"; version="1.2.0"; sha256="1hpm0hf8yh3308rlfcm5f9hi1mcwgcij1baikrx4nrwn7fgi30l3"; depends=[ExperimentHub]; };
+  muscData = derive2 { name="muscData"; version="1.18.0"; sha256="1snpzvmxrpzspfl5gy18w2mcdpszq7wn2l3z1mbvjdp8ffh4qv00"; depends=[ExperimentHub SingleCellExperiment]; };
+  mvoutData = derive2 { name="mvoutData"; version="1.40.0"; sha256="01rxr4867w2zcy4gmcg868g2xqal5vb4xw2izfmcwplxah5380wv"; depends=[affy Biobase lumi]; };
+  nanotubes = derive2 { name="nanotubes"; version="1.20.0"; sha256="0gsgs0i3117753pxypr2q8pc3zc8bd3fkp5xj30jx142wvi4y0al"; depends=[]; };
+  nullrangesData = derive2 { name="nullrangesData"; version="1.10.0"; sha256="099ynygy9ld7ckzh38rf5nglx70mjwha0jz3ngn85ncnaz64cw26"; depends=[ExperimentHub GenomicRanges InteractionSet]; };
+  oct4 = derive2 { name="oct4"; version="1.20.0"; sha256="0q6q5zg33fxq9cjnxdbc53q4wqsqcgid8ax0z2b8sbyv86knj620"; depends=[]; };
+  octad_db = derive2 { name="octad.db"; version="1.6.0"; sha256="1n8zwjhf7s61gaqr1zs5gvc5l3xsbzilj38lpsh8k80y175msgbx"; depends=[ExperimentHub]; };
+  optimalFlowData = derive2 { name="optimalFlowData"; version="1.16.0"; sha256="0b5r3hqs2pnj2s9qizrqpkkidq3r5ig75rmk1ygsppad0dl98qyh"; depends=[]; };
+  orthosData = derive2 { name="orthosData"; version="1.2.0"; sha256="000jqijl7mpp0qfgg0aqx7jzn5bviybp2ndxmikyn0rmcvi9057k"; depends=[AnnotationHub BiocFileCache ExperimentHub HDF5Array stringr SummarizedExperiment]; };
+  pRolocdata = derive2 { name="pRolocdata"; version="1.42.0"; sha256="0drc8srg2frzjpq7j00pfr1371n0jiry5gz1rz2hbagcz2q51aad"; depends=[Biobase MSnbase]; };
+  parathyroidSE = derive2 { name="parathyroidSE"; version="1.42.0"; sha256="183cyn1i0i2p8npajwmbwzr2ncrrzwgpvh8adhjxzrdqkn3qdnr5"; depends=[SummarizedExperiment]; };
+  pasilla = derive2 { name="pasilla"; version="1.32.0"; sha256="0r5i64125qq5z4c8zliazsi68035d1bsz6ingzqdh37m8prdw1cr"; depends=[DEXSeq]; };
+  pasillaBamSubset = derive2 { name="pasillaBamSubset"; version="0.42.0"; sha256="0q0wawb4hj45lm9z8h0q905dvmx13x25cv64qmm1nf0342m8gccn"; depends=[]; };
+  pcxnData = derive2 { name="pcxnData"; version="2.25.0"; sha256="1mlqkxlkqfb8x5jp2fdx5nfrpfh8g3lghfj6sqkaf958n5yl1dg3"; depends=[]; };
+  pd_atdschip_tiling = derive2 { name="pd.atdschip.tiling"; version="0.42.0"; sha256="17sf3x7mhkjk605hmc0idx1d3pbx49hyfaxzifkc6bq1mmq5113x"; depends=[Biostrings DBI IRanges oligo oligoClasses RSQLite S4Vectors]; };
+  pepDat = derive2 { name="pepDat"; version="1.24.0"; sha256="01svdmjhijbmjypp9hzninmagjl24zk4kjigmrjiasfski8yjln5"; depends=[GenomicRanges]; };
+  plotgardenerData = derive2 { name="plotgardenerData"; version="1.10.0"; sha256="14y5hh4r7j7kkbh7kl6wwh6xyva9pbqxzz4ch7dp7p0kj5kgh52s"; depends=[]; };
+  prebsdata = derive2 { name="prebsdata"; version="1.40.0"; sha256="0agdmcin4mqigrpm004wvaqd9ciy2kc7di1yiycgdnd4ccglhllk"; depends=[]; };
+  preciseTADhub = derive2 { name="preciseTADhub"; version="1.12.0"; sha256="0449ppjh29rwykf5i2c8f8sfy9s87p2kxgvylfa016x3g2gbnygw"; depends=[ExperimentHub]; };
+  prostateCancerCamcap = derive2 { name="prostateCancerCamcap"; version="1.32.0"; sha256="03pfci7cx5r2lagfzi0j8b2ry9s6c211qamfqlqrx5siw0yxllrx"; depends=[Biobase]; };
+  prostateCancerGrasso = derive2 { name="prostateCancerGrasso"; version="1.32.0"; sha256="11sl00lfi85gpwh2619w3z54vb0mw05bwcgdblg1c6wnrn17qd9h"; depends=[Biobase]; };
+  prostateCancerStockholm = derive2 { name="prostateCancerStockholm"; version="1.32.0"; sha256="02kcm3wvz4wrdnn4cfna67gqx7p8765j4j0cl7x08j7qjlnsnq2z"; depends=[Biobase]; };
+  prostateCancerTaylor = derive2 { name="prostateCancerTaylor"; version="1.32.0"; sha256="1ynjyrcp7d8ywzlfkv2909r1l3ihap4yiamq0jrqa27xh6lvpqfd"; depends=[Biobase]; };
+  prostateCancerVarambally = derive2 { name="prostateCancerVarambally"; version="1.32.0"; sha256="1f0wzm4hlax0dcx3ibssiq1nmli8zhrp7b2r1znjs38v2p5skx53"; depends=[Biobase]; };
+  ptairData = derive2 { name="ptairData"; version="1.12.0"; sha256="1w7j8zx0x0kihsv295l389vlxii72z22gyi2mhdfviyay7g4n2gd"; depends=[rhdf5 signal]; };
+  pumadata = derive2 { name="pumadata"; version="2.40.0"; sha256="0ryrlsfyc64kbcn6mhq5xv09n9dv58d6azhywx21kg01iayrmnvb"; depends=[Biobase oligo puma]; };
+  qPLEXdata = derive2 { name="qPLEXdata"; version="1.22.0"; sha256="1a8mzbll0s9w82y4sy153jna6677sdpp3bfzs83qaqpnjymjzfpc"; depends=[dplyr knitr MSnbase qPLEXanalyzer]; };
+  rRDPData = derive2 { name="rRDPData"; version="1.24.0"; sha256="030hnp9sghl0f2wfg243ll6myp9gr5zzbwlfzaz8m7q8xk2if363"; depends=[rRDP]; };
+  raerdata = derive2 { name="raerdata"; version="1.2.0"; sha256="15j7sw3kvgqqb7m4y4kn40p8g8s1f204lfnb5zskkjfakj6c2j03"; depends=[BiocGenerics ExperimentHub Rsamtools rtracklayer SingleCellExperiment]; };
+  rcellminerData = derive2 { name="rcellminerData"; version="2.26.0"; sha256="1al3v586q2ak77hjbl3xlvrxqs3xid8y06lf601c5diyrd7vp7r7"; depends=[Biobase]; };
+  restfulSEData = derive2 { name="restfulSEData"; version="1.26.0"; sha256="17ia2d5g0zawfpcqvpncw05qshhn09p05j2frxmz0mwjfp7mya27"; depends=[DelayedArray ExperimentHub HDF5Array SummarizedExperiment]; };
+  rheumaticConditionWOLLBOLD = derive2 { name="rheumaticConditionWOLLBOLD"; version="1.42.0"; sha256="0s75faby72cv6i1y1mj5d3qfvfp6907jinnfm17zvgdvcl0xx06h"; depends=[]; };
+  sampleClassifierData = derive2 { name="sampleClassifierData"; version="1.28.0"; sha256="0bjncqk3h11gcsg8zp64f22xjsbgr20dqangg7h84d9m0rr6x0kg"; depends=[SummarizedExperiment]; };
+  scATAC_Explorer = derive2 { name="scATAC.Explorer"; version="1.10.0"; sha256="0s2w9b9bb1bzqnlhlrgvp17bifhryvymzaid02ypkqaql06d6nyx"; depends=[BiocFileCache data_table Matrix S4Vectors SingleCellExperiment]; };
+  scMultiome = derive2 { name="scMultiome"; version="1.4.0"; sha256="1fiivxs35zanssfkjv83fa898fjr93xgq5g2i9m2qkv2pxqlyan8"; depends=[AnnotationHub AzureStor checkmate DelayedArray ExperimentHub GenomicRanges HDF5Array MultiAssayExperiment rhdf5 S4Vectors SingleCellExperiment SummarizedExperiment]; };
+  scRNAseq = derive2 { name="scRNAseq"; version="2.18.0"; sha256="0jsq037ba4xsb3bwwf021jw2hqv30vb5nrjag97xadx75z5fzqlr"; depends=[alabaster_base alabaster_matrix alabaster_sce AnnotationDbi AnnotationHub BiocGenerics DBI DelayedArray ensembldb ExperimentHub GenomicFeatures GenomicRanges gypsum jsonlite Matrix RSQLite S4Vectors SingleCellExperiment SparseArray SummarizedExperiment]; };
+  scTHI_data = derive2 { name="scTHI.data"; version="1.16.0"; sha256="03zixwlainshb8q3jsb6w9vah790vq17p742fpa2h8f0vcamqxa4"; depends=[]; };
+  scaeData = derive2 { name="scaeData"; version="1.0.0"; sha256="0ghd2qyc9kz2d0g0whdy7cpys7j265iq9w7a02mnfwk8s0vplrk5"; depends=[ExperimentHub]; };
+  scanMiRData = derive2 { name="scanMiRData"; version="1.10.0"; sha256="1h7bla3l5mmydwz6pgq6ja560r02i741k0259f3a5lf07y4rdab6"; depends=[scanMiR]; };
+  scpdata = derive2 { name="scpdata"; version="1.12.0"; sha256="1mn3a27wmdsn582v6ajavn2fxqqqlv79zyy40zfg6pnza19izpbx"; depends=[AnnotationHub ExperimentHub QFeatures S4Vectors SingleCellExperiment]; };
+  seq2pathway_data = derive2 { name="seq2pathway.data"; version="1.36.0"; sha256="0i45qxvbirh4l048a2hzk9iahydsgk6az0yjlfsypa0zq6hcz3cj"; depends=[]; };
+  seqc = derive2 { name="seqc"; version="1.38.0"; sha256="0g1zwzm38xqdpzfhpbwlw8zcdl8lvyd7pfncgwk7y50w1mblxqah"; depends=[Biobase]; };
+  serumStimulation = derive2 { name="serumStimulation"; version="1.40.0"; sha256="1lkwx3gc7c6scznaf1z62szi4mb944dg1jprp8zlmm51a73w9kp9"; depends=[]; };
+  sesameData = derive2 { name="sesameData"; version="1.22.0"; sha256="05k67isysszzfkkbi811dkab0cmxnwz81p2ldcqz3gsq5qin3p1g"; depends=[AnnotationHub ExperimentHub GenomeInfoDb GenomicRanges IRanges readr S4Vectors stringr]; };
+  seventyGeneData = derive2 { name="seventyGeneData"; version="1.40.0"; sha256="0yy9pywbr5fjkjc2gaaf8cfw5q2barw1a3yin99a7sphq062lfvj"; depends=[]; };
+  shinyMethylData = derive2 { name="shinyMethylData"; version="1.24.0"; sha256="17l63xmdi6zhaqggw45nhpiclag96xjbkngmcqhihfykkrgbb18p"; depends=[]; };
+  signatureSearchData = derive2 { name="signatureSearchData"; version="1.18.0"; sha256="11y1dbixj9b91whzq4lrmad5f4f6gqdv70ar4rg20ql1699dx5l5"; depends=[affy Biobase dplyr ExperimentHub limma magrittr R_utils rhdf5]; };
+  simpIntLists = derive2 { name="simpIntLists"; version="1.40.0"; sha256="03d7whna1h2ffgci060gqfdwbjwmjg6q3yfd8l6vc25kiblc4igp"; depends=[]; };
+  smokingMouse = derive2 { name="smokingMouse"; version="1.2.0"; sha256="1z3kbmlqylmaingkcdm6wxlx848zipqfh6kha7f55s6aklgcv5d7"; depends=[]; };
+  spatialDmelxsim = derive2 { name="spatialDmelxsim"; version="1.10.0"; sha256="172hgg2wxjc32950lga8fqwygd6x07i0ilsvfp46sd7nmysy6cpn"; depends=[ExperimentHub SummarizedExperiment]; };
+  spatialLIBD = derive2 { name="spatialLIBD"; version="1.16.2"; sha256="0bbwh9mfz7iscv8a1jlc7g1c452hv4qr95hwv3z6h2mqf8pcr5g8"; depends=[AnnotationHub benchmarkme BiocFileCache BiocGenerics cowplot DT edgeR ExperimentHub fields GenomicRanges ggplot2 golem IRanges jsonlite limma magick Matrix MatrixGenerics paletteer plotly png RColorBrewer rlang rtracklayer S4Vectors scater scuttle sessioninfo shiny shinyWidgets SingleCellExperiment SpatialExperiment statmod SummarizedExperiment tibble viridisLite]; };
+  spqnData = derive2 { name="spqnData"; version="1.16.0"; sha256="047dbhcfqs0zddmnfpabpjhym86m5zlxnwccidkx0b131wxb22gv"; depends=[SummarizedExperiment]; };
+  stemHypoxia = derive2 { name="stemHypoxia"; version="1.40.0"; sha256="0i8rvz2l6hgzd4zcmfzszjck0riy2m34qf2nidrxx6bjza4iqwpy"; depends=[]; };
+  synapterdata = derive2 { name="synapterdata"; version="1.42.0"; sha256="0p6rrnqvdifrajil2akjvrzjm1k7gyywspg5cb5p2k62lyz0f06k"; depends=[synapter]; };
+  systemPipeRdata = derive2 { name="systemPipeRdata"; version="2.8.0"; sha256="131p4s5cgm75f32a5dzyj059aznxjcy76h7h8dbccblqlqxgx1ix"; depends=[BiocGenerics Biostrings jsonlite remotes]; };
+  tartare = derive2 { name="tartare"; version="1.18.0"; sha256="1wxq6sfzdah29ql9q7w3d35x7bf1bh1417ih55rg07qbs8cnxb9v"; depends=[AnnotationHub ExperimentHub]; };
+  timecoursedata = derive2 { name="timecoursedata"; version="1.14.0"; sha256="0wjfc5awj4spvwwj3mp1bn3dqngjdnfz7bnlv7azqxmnd4q72ckr"; depends=[SummarizedExperiment]; };
+  tinesath1cdf = derive2 { name="tinesath1cdf"; version="1.42.0"; sha256="0anb8n6kni2i56rhhd6wlvq7am6jifiqfmm6v54yh96i2m3gsbq9"; depends=[]; };
+  tinesath1probe = derive2 { name="tinesath1probe"; version="1.42.0"; sha256="0jcjzgazj3z4ls2b0mhi15n1vh4adxv2ysm6x3r8w4a4hzm4gnmg"; depends=[AnnotationDbi]; };
+  tissueTreg = derive2 { name="tissueTreg"; version="1.24.0"; sha256="0wv7hlq4v69gwypg9lvkcxf7w191iq8j5rzh2gqvg25ajxhm0bwl"; depends=[]; };
+  tofsimsData = derive2 { name="tofsimsData"; version="1.32.0"; sha256="02svkikiw72lpnsm3w333py7gwc52qi3qina215rp7fknrsqrw07"; depends=[]; };
+  topdownrdata = derive2 { name="topdownrdata"; version="1.26.0"; sha256="13vcis52fadfpahw31v2z3p2q47d4yp7yl719mibkwga9iyklgva"; depends=[topdownr]; };
+  tuberculosis = derive2 { name="tuberculosis"; version="1.10.0"; sha256="1l9gm8jlvall905053mmbn0wd053ssnsxy74gza37w669il85awn"; depends=[AnnotationHub dplyr ExperimentHub magrittr purrr rlang S4Vectors stringr SummarizedExperiment tibble tidyr]; };
+  tweeDEseqCountData = derive2 { name="tweeDEseqCountData"; version="1.42.0"; sha256="01cgv28yyqjg8f86dskafb3xy4ylcl4schcad44f9jpvc6zk48qs"; depends=[Biobase]; };
+  tximportData = derive2 { name="tximportData"; version="1.32.0"; sha256="15wy0dhs9sbz27ii64b4i0zxlsm6v75m2f32gisdy9f6gnbgwkjg"; depends=[]; };
+  vulcandata = derive2 { name="vulcandata"; version="1.26.0"; sha256="13cdb630w1xy734h15dgpzzk64g1rpr5xwh9q2hvs1z3ljyws8qd"; depends=[]; };
+  xcoredata = derive2 { name="xcoredata"; version="1.8.0"; sha256="0sn3h2c0h9jpdp17jcxskcqjy31vx6wz2d5xb98ag19cfbimv3nl"; depends=[ExperimentHub]; };
+  yeastCC = derive2 { name="yeastCC"; version="1.44.0"; sha256="1y3k3dvxrv68pcsdqhyvhxvwnmhm0iv7yr3rc6b0gm8g2nv9kcqm"; depends=[Biobase]; };
+  yeastExpData = derive2 { name="yeastExpData"; version="0.50.0"; sha256="1ila3h87j9l37nvwhabrayxawx3mcklhlr3y9cqzpwkg7iayrplf"; depends=[graph]; };
+  yeastGSData = derive2 { name="yeastGSData"; version="0.42.0"; sha256="1m3hrjmibmp8zzcc6acg6m21zq83rpnclya4ivivj60nw6ardbkr"; depends=[]; };
+  yeastNagalakshmi = derive2 { name="yeastNagalakshmi"; version="1.40.0"; sha256="16n48lcyl63cmlc796xizf19rmm5qmdic0msaadz12wh743phh3a"; depends=[]; };
+  yeastRNASeq = derive2 { name="yeastRNASeq"; version="0.42.0"; sha256="1jk6451ypys3xskmlm6xpvjxxzrx1g0hnzfcsahf3gqgg63pfj7h"; depends=[]; };
+  zebrafishRNASeq = derive2 { name="zebrafishRNASeq"; version="1.24.1"; sha256="0khmilw21jnq2ivl7bh7fwz9nxlphljl5fh4w28q9gzydrv0vxci"; depends=[]; };
   ABAData = derive2 { name="ABAData"; version="1.24.0"; sha256="1wgniq7ibvjj6dx63ixr3i5yclqmg94qpifzfbzzn9yjj3wnikzr"; depends=[]; broken = true; };
-  ChimpHumanBrainData = derive2 { name="ChimpHumanBrainData"; version="1.38.0"; sha256="1hgc2a7wsbw5ivdjknv82p3pvznq29lm8g4fdxy6dyr781xghs0w"; depends=[affy hexbin limma qvalue statmod]; broken = true; };
+  ChIC_data = derive2 { name="ChIC.data"; version="1.22.0"; sha256="1akqpqw9ydf23whr346psciyyp9c3r0rsas1rkdkf8g5wrcj9vhk"; depends=[caret genomeIntervals randomForest]; broken = true; };
   DREAM4 = derive2 { name="DREAM4"; version="1.31.0"; sha256="11ypc84agvq0q0v7bk0b25cm48awxay5hhhjd95gw9s7jk196i2p"; depends=[SummarizedExperiment]; broken = true; };
   MAQCsubsetAFX = derive2 { name="MAQCsubsetAFX"; version="1.30.0"; sha256="14mwg96g7aza81vc3hpmb41scmygl8vnsi6s8p48c8v92106asmb"; depends=[affy Biobase]; broken = true; };
+  MAQCsubsetILM = derive2 { name="MAQCsubsetILM"; version="1.40.0"; sha256="1bb158bmy7195wnj0wap08g621xbzflvj30pv4l7mwc54lm1vqfx"; depends=[Biobase lumi]; broken = true; };
   MIGSAdata = derive2 { name="MIGSAdata"; version="1.24.0"; sha256="1s7fyf8n86a3znacjjs0zf22amw4rlgnvw2idld0np0yz81ggzs2"; depends=[]; broken = true; };
   MSstatsBioData = derive2 { name="MSstatsBioData"; version="1.13.0"; sha256="1jzypgfmd6d0fdj9ycp4jwihjpxyinr5kwi2x2dg2z6hvxx97gb8"; depends=[]; broken = true; };
-  RLHub = derive2 { name="RLHub"; version="1.6.0"; sha256="1lx4w9m5ddzx3v4ky7yxiq7ydd0dl7xfh9fcmf53apc6fnql13h2"; depends=[AnnotationHub ExperimentHub]; broken = true; };
   RNASeqRData = derive2 { name="RNASeqRData"; version="1.16.0"; sha256="17c5fvyqxdsg7wl0hy0i28z0kf2lmjg36lfrmsv51kzklsc6ykrp"; depends=[]; broken = true; };
   SCATEData = derive2 { name="SCATEData"; version="1.10.0"; sha256="0p0y8mkcg99dpwvp7spxx047kyr7mdflnnlfpb4i232q0yxz2z03"; depends=[ExperimentHub GenomicAlignments GenomicRanges]; broken = true; };
   alpineData = derive2 { name="alpineData"; version="1.26.0"; sha256="1337y1y8q5y8yh2r2bji8fz3nhcxbn5s6pfnnkb8kvg8r0avgmkz"; depends=[AnnotationHub ExperimentHub GenomicAlignments]; broken = true; };
   brainImageRdata = derive2 { name="brainImageRdata"; version="1.12.0"; sha256="072x7yn1ambf6hfpir6qdxl8bybv64blpbi1jdp0bvqlk66zs7zv"; depends=[ExperimentHub]; broken = true; };
+  ccTutorial = derive2 { name="ccTutorial"; version="1.40.0"; sha256="1rqblyk7389xqwzvib2xjyjrc8l3qd2g8z9vj96mrfyr8dpccjjs"; depends=[affy Biobase Ringo topGO]; broken = true; };
   gatingMLData = derive2 { name="gatingMLData"; version="2.38.0"; sha256="1dhm48nrh1y0x6p50045cn6f21bg35i0b4z7bjymn9aw0n9r5fyk"; depends=[]; broken = true; };
+  mAPKLData = derive2 { name="mAPKLData"; version="1.34.0"; sha256="0vhysi7wyw7d3vbq4qcq3i3ic953awppg2bix40ywz1459b5p43g"; depends=[]; broken = true; };
   plasFIA = derive2 { name="plasFIA"; version="1.26.0"; sha256="0vbqjbfc75pb2gk49sl6aihmvcc38ylngyr1bgdvdxr0xh11imv0"; depends=[proFIA]; broken = true; };
   ppiData = derive2 { name="ppiData"; version="0.34.0"; sha256="10xbp12wim5kj1h2vkxn9x22fd92s2038w653y81jwbh2hyidybf"; depends=[AnnotationDbi graph]; broken = true; };
   pwrEWAS_data = derive2 { name="pwrEWAS.data"; version="1.14.0"; sha256="1bldyvjsv5wwzasg9sbsivyi7m2ypc17mqjglsl22fjkykm92h4s"; depends=[ExperimentHub]; broken = true; };
+  seqCNA_annot = derive2 { name="seqCNA.annot"; version="1.38.0"; sha256="0kzmn5hx8ag02pz8b78cq7dbalw2w60y441cjyyvxjgycwcfvmvj"; depends=[]; broken = true; };
+  stjudem = derive2 { name="stjudem"; version="1.42.0"; sha256="0pcvvvaqalr5jklqy7vzxkp0cd9nj9dk941drgr7ndbqc2navz2c"; depends=[]; broken = true; };
   tcgaWGBSData_hg19 = derive2 { name="tcgaWGBSData.hg19"; version="1.12.0"; sha256="1kmh4iyh2h7vc1mlwb3sridn4nwkqdschz5md5dk53mxkn2wxcmi"; depends=[bsseq ExperimentHub knitr]; broken = true; };
 }
diff --git a/pkgs/development/r-modules/bioc-packages.nix b/pkgs/development/r-modules/bioc-packages.nix
index 982c6b793749b..e942433e9a421 100644
--- a/pkgs/development/r-modules/bioc-packages.nix
+++ b/pkgs/development/r-modules/bioc-packages.nix
@@ -4,2205 +4,2222 @@
 # Rscript generate-r-packages.R bioc >new && mv new bioc-packages.nix
 
 { self, derive }:
-let derive2 = derive { biocVersion = "3.18"; };
+let derive2 = derive { biocVersion = "3.19"; };
 in with self; {
-  ABSSeq = derive2 { name="ABSSeq"; version="1.56.0"; sha256="0y8j66yargvipwxg2ffcs62idk5q5r8vracfldbd1x5rgq7lf6nq"; depends=[limma locfit]; };
-  ABarray = derive2 { name="ABarray"; version="1.70.0"; sha256="0p9q2x6n6n1d4w2hfbhhj54qflc6rf1w1qm9p2zqv9fcrm3g153v"; depends=[Biobase multtest]; };
-  ACE = derive2 { name="ACE"; version="1.20.0"; sha256="0ll0lksz6nzfj5ivmyrp5w24bhfl083amjpr0m8qlzpdw6k3wi98"; depends=[Biobase GenomicRanges ggplot2 QDNAseq]; };
-  ACME = derive2 { name="ACME"; version="2.58.0"; sha256="0cy1f4ki4j7yxc9cws5s17ljd4ac0yxhijms0pm31im81qz2djax"; depends=[Biobase BiocGenerics]; };
-  ADAM = derive2 { name="ADAM"; version="1.18.0"; sha256="0gz3mpkj1q4j7w08ylfzclpa6saxsz7wyp0cldllhxpcj9lxljs5"; depends=[dplyr DT GO_db KEGGREST knitr pbapply Rcpp stringr SummarizedExperiment]; };
-  ADAMgui = derive2 { name="ADAMgui"; version="1.18.0"; sha256="10m5dplkzxsxm7dxcmybihv81yflm3f7q6fmgb1dvwr8lsn1dm03"; depends=[ADAM colorRamps data_table dplyr DT ggplot2 ggpubr ggrepel ggsignif GO_db gridExtra knitr RColorBrewer reshape2 shiny shinyjs stringi stringr testthat varhandle]; };
-  ADImpute = derive2 { name="ADImpute"; version="1.12.0"; sha256="0299yyin2j8577db2w6mrxmsq68cjlzwyh7z1wvhbj0n1p75r871"; depends=[BiocParallel checkmate data_table DrImpute kernlab MASS Matrix rsvd S4Vectors SAVER SingleCellExperiment SummarizedExperiment]; };
-  ADaCGH2 = derive2 { name="ADaCGH2"; version="2.42.0"; sha256="0lzgn4zqckv37jsgd1azvshblb38khrlcncm98g74qhkswqj5wx3"; depends=[aCGH bit cluster DNAcopy ff GLAD snapCGH tilingArray waveslim]; };
-  AGDEX = derive2 { name="AGDEX"; version="1.50.0"; sha256="06z74p3khw3r8dnwrpyyikq3ifcdvffxgfwcic9j8vc9s8pf921s"; depends=[Biobase GSEABase]; };
-  AHMassBank = derive2 { name="AHMassBank"; version="1.2.1"; sha256="1lkv6zkwgnyjpr2vqbmpbz79h6f42s3ksy0ix0hbxdi3aalgyfgf"; depends=[AnnotationHubData]; };
-  AIMS = derive2 { name="AIMS"; version="1.34.0"; sha256="0fmzyd8vypcfadqfa8w11mxr12h4a9shgiqpi2n2y150fvhlqf6c"; depends=[Biobase e1071]; };
-  ALDEx2 = derive2 { name="ALDEx2"; version="1.34.0"; sha256="0wchlw9dprw7vkw26h26ypx06xv2j0cxbidw61pcqaxmrrh14dhz"; depends=[BiocParallel directlabels GenomicRanges IRanges lattice latticeExtra multtest Rfast S4Vectors SummarizedExperiment zCompositions]; };
-  AMARETTO = derive2 { name="AMARETTO"; version="1.18.0"; sha256="1h0ci2sak2x5dhcshmgk4hy53ggjvrz3kaj61m47w5fjkj0lz79s"; depends=[BiocFileCache callr circlize ComplexHeatmap curatedTCGAData doParallel dplyr DT foreach ggplot2 glmnet gridExtra httr impute knitr limma Matrix matrixStats MultiAssayExperiment Rcpp readr reshape2 rmarkdown tibble]; };
-  AMOUNTAIN = derive2 { name="AMOUNTAIN"; version="1.28.0"; sha256="1c65vn2k3hzzymik9ia7nk32sf0hr83q27yzf561a1hgv3m67d65"; depends=[]; };
-  ANCOMBC = derive2 { name="ANCOMBC"; version="2.4.0"; sha256="1m63k1b9xh5mv4zb5m9nlrdcqkh2h477x1zyfk8j89idcvk9jil7"; depends=[CVXR DescTools doParallel doRNG energy foreach gtools Hmisc lme4 lmerTest MASS Matrix mia multcomp nloptr Rdpack S4Vectors SingleCellExperiment SummarizedExperiment TreeSummarizedExperiment]; };
-  ANF = derive2 { name="ANF"; version="1.24.1"; sha256="0yal8lbillhj3zi2rcdk7k9r748jxm3196z54y1674qxzpvp24rk"; depends=[Biobase igraph MASS RColorBrewer survival]; };
-  APAlyzer = derive2 { name="APAlyzer"; version="1.16.0"; sha256="1jzl274ikk6xp0lq9lr8gfw6f58nn5zs9ifj5mgwsj2vf0ma4mzc"; depends=[DESeq2 dplyr GenomicAlignments GenomicFeatures GenomicRanges ggplot2 ggrepel HybridMTest repmis Rsamtools Rsubread rtracklayer SummarizedExperiment tidyr VariantAnnotation]; };
-  APL = derive2 { name="APL"; version="1.6.1"; sha256="0g5h2mcqvsgiy8l8vlbwm6cqnywyhyc2j2id6pw7xvzd1xm5gb8i"; depends=[ggplot2 ggrepel magrittr org_Hs_eg_db org_Mm_eg_db plotly reticulate rlang Seurat SingleCellExperiment SummarizedExperiment topGO viridisLite]; };
-  ARRmNormalization = derive2 { name="ARRmNormalization"; version="1.42.0"; sha256="1fd1pfw2ggqb0k2npvibfy8liix57m01cxfxp10shvfbzjjy4wjm"; depends=[ARRmData]; };
-  ASAFE = derive2 { name="ASAFE"; version="1.28.0"; sha256="13pn2s59npp8lhc2sk9sa7dq8fy6jlq22c71n3rcjgxrrh690nb8"; depends=[]; };
-  ASEB = derive2 { name="ASEB"; version="1.46.3"; sha256="1da6ld3ij55l3saj05ink8i1f6gqwyrv896qh8g94dmh6vzn2xbr"; depends=[]; };
-  ASGSCA = derive2 { name="ASGSCA"; version="1.36.0"; sha256="13nk19rccrp0xl1s5gjwydpl1ayc7zc2izjrij9iz7fh2r79gn7f"; depends=[MASS Matrix]; };
-  ASICS = derive2 { name="ASICS"; version="2.18.1"; sha256="0sii6sg20l6mfm8cj8zas2dm3wq6fwcwanav6fl7wkv8msk02sxb"; depends=[BiocParallel ggplot2 glmnet gridExtra Matrix mvtnorm PepsNMR plyr quadprog ropls SummarizedExperiment zoo]; };
-  ASSET = derive2 { name="ASSET"; version="2.20.0"; sha256="0mm15i59vsnz8zh2d10xnab3a6kq08hwd3pzm3r12g4wcrdsxfxc"; depends=[MASS msm rmeta]; };
-  ASSIGN = derive2 { name="ASSIGN"; version="1.38.0"; sha256="15brzfi9ain84171c72w3hzpmjz93g57zz228cbxm3k2s9kn8h7w"; depends=[ggplot2 gplots msm Rlab sva yaml]; };
-  ASURAT = derive2 { name="ASURAT"; version="1.6.0"; sha256="0lxl7wgkys6n6xrh2wcp0p2bf33qdd1f3px3nkzk0yk6dvz715v7"; depends=[circlize cluster ComplexHeatmap plot3D Rcpp S4Vectors SingleCellExperiment SummarizedExperiment]; };
-  ASpli = derive2 { name="ASpli"; version="2.12.0"; sha256="0rj103vvff2c20r018491i71393x0idq22ri4zg3qibx2accd7jy"; depends=[AnnotationDbi BiocGenerics BiocStyle data_table DT edgeR GenomicAlignments GenomicFeatures GenomicRanges Gviz htmltools igraph IRanges limma MASS pbmcapply Rsamtools S4Vectors tidyr UpSetR]; };
-  ATACCoGAPS = derive2 { name="ATACCoGAPS"; version="1.4.0"; sha256="1v9a9hv9s0iv542n4q7d03axf5vnaj3x75chw7f1w1fg1vgb5bna"; depends=[BSgenome_Hsapiens_UCSC_hg19 BSgenome_Mmusculus_UCSC_mm10 chromVAR CoGAPS dplyr fgsea GeneOverlap GenomicFeatures GenomicRanges gplots gtools Homo_sapiens IRanges JASPAR2016 motifmatchr msigdbr Mus_musculus projectR rGREAT stringr TFBSTools tidyverse]; };
-  ATACseqQC = derive2 { name="ATACseqQC"; version="1.26.0"; sha256="1b53rkhyqnyh5vangh3hy4yccx1yackwbv1pxdimbp840ji6d122"; depends=[BiocGenerics Biostrings BSgenome ChIPpeakAnno edgeR GenomeInfoDb GenomicAlignments GenomicRanges GenomicScores IRanges KernSmooth limma motifStack preseqR randomForest Rsamtools rtracklayer S4Vectors]; };
-  ATACseqTFEA = derive2 { name="ATACseqTFEA"; version="1.4.0"; sha256="1cz2vhg1w62xb3vl7sqhwdzvf9ixv5685lrnp2l1m6xvg4q8wzjw"; depends=[BiocGenerics dplyr GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 ggrepel IRanges limma Matrix motifmatchr pracma Rsamtools S4Vectors SummarizedExperiment TFBSTools]; };
-  AUCell = derive2 { name="AUCell"; version="1.24.0"; sha256="1d1icbq8i7mwsc7lv9pn4r0vs7azx1lwng5p3ghnray1ygqclbi0"; depends=[BiocGenerics data_table DelayedArray DelayedMatrixStats GSEABase Matrix mixtools R_utils shiny SummarizedExperiment]; };
-  AWFisher = derive2 { name="AWFisher"; version="1.16.0"; sha256="10c5qi040z2w46k7qdcd2yap11mzllllrbr0nx7gd9gfzwlx089s"; depends=[edgeR limma]; };
-  AffiXcan = derive2 { name="AffiXcan"; version="1.20.0"; sha256="1f508sz5vsmmmvp2mcyd2l4hislg2xhnn11xxva010l3i7by8c2r"; depends=[BiocParallel crayon MultiAssayExperiment SummarizedExperiment]; };
-  AffyRNADegradation = derive2 { name="AffyRNADegradation"; version="1.48.0"; sha256="0i7929cyqvbx81v1d629g53480m48cbdpxfv0k6lwjfzf4yvazhf"; depends=[affy]; };
-  AgiMicroRna = derive2 { name="AgiMicroRna"; version="2.52.0"; sha256="0cimi60asz5mmrq2qmnyqq9x5yg14cc67j8135x9zlklblsfyf35"; depends=[affy affycoretools Biobase limma preprocessCore]; };
-  AllelicImbalance = derive2 { name="AllelicImbalance"; version="1.40.0"; sha256="0p7l856a46zzla8brsg901pmh5738j63h7h7rn3da94ny8k417mf"; depends=[AnnotationDbi BiocGenerics Biostrings BSgenome GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges gridExtra Gviz IRanges lattice latticeExtra nlme Rsamtools S4Vectors seqinr SummarizedExperiment VariantAnnotation]; };
-  AlphaBeta = derive2 { name="AlphaBeta"; version="1.16.0"; sha256="0zja8mysw0ljkvk6vqdx4c9wpf45zs64iyazh90mlf6xhbrvqfvq"; depends=[BiocParallel data_table dplyr expm ggplot2 gtools igraph optimx plotly stringr]; };
-  AlpsNMR = derive2 { name="AlpsNMR"; version="4.4.0"; sha256="0141kayx20mm8skqr2210bpl76ra560ik7gf71iar03r3izcfczq"; depends=[baseline BiocParallel cli dplyr fs future generics ggplot2 glue htmltools magrittr matrixStats mixOmics pcaPP purrr readxl reshape2 rlang rmarkdown scales signal speaq stringr tibble tidyr tidyselect vctrs]; };
-  AnVIL = derive2 { name="AnVIL"; version="1.14.2"; sha256="1vfriymy1v3mxahfdf4sd6rawi0qy7vzxrymi852w49fmy54bgp7"; depends=[BiocManager dplyr DT futile_logger htmltools httr jsonlite miniUI rapiclient rlang shiny tibble tidyr tidyselect]; };
-  AnVILBilling = derive2 { name="AnVILBilling"; version="1.12.0"; sha256="1b90q6nvf6mzq1r9r679b33k6pqywwnjwkfdhfc3kp5i0d3xfh4s"; depends=[bigrquery DBI dplyr DT ggplot2 lubridate magrittr plotly shiny shinytoastr]; };
-  AnVILPublish = derive2 { name="AnVILPublish"; version="1.12.0"; sha256="0yk5v4863h58795apffj6hp6iikgw5jx220s9f3j2fvvdpv3z995"; depends=[AnVIL httr jsonlite readr rmarkdown whisker yaml]; };
-  AnVILWorkflow = derive2 { name="AnVILWorkflow"; version="1.2.0"; sha256="15yvpmpkii030v13bixhdj4g8b1qwjn9cm8k4rbpz6iqngaa4w5i"; depends=[AnVIL httr jsonlite]; };
-  Anaquin = derive2 { name="Anaquin"; version="2.26.0"; sha256="1f2xf1i9l1s7433mvqjsralpm77qg0m73dw1rq9jsxbpk1f502ld"; depends=[DESeq2 ggplot2 knitr locfit plyr qvalue ROCR]; };
-  AneuFinder = derive2 { name="AneuFinder"; version="1.30.0"; sha256="0x7v60j1c1g12qlqxgshpmbnwzjbmlnkrfh60wl43inr0wyllq1l"; depends=[AneuFinderData bamsignals BiocGenerics Biostrings cowplot DNAcopy doParallel ecp foreach GenomeInfoDb GenomicAlignments GenomicRanges ggdendro ggplot2 ggrepel IRanges mclust reshape2 Rsamtools S4Vectors]; };
-  AnnotationDbi = derive2 { name="AnnotationDbi"; version="1.64.1"; sha256="1bdr303a2z03c8vc8q95a4a4a8i956vimia5yik78yddd1ig9gq3"; depends=[Biobase BiocGenerics DBI IRanges KEGGREST RSQLite S4Vectors]; };
-  AnnotationFilter = derive2 { name="AnnotationFilter"; version="1.26.0"; sha256="0cd2vcnx0pn5wba3x5q32vddjjp7fvix7yd7jrwv07a2fkv9c4p5"; depends=[GenomicRanges lazyeval]; };
-  AnnotationForge = derive2 { name="AnnotationForge"; version="1.44.0"; sha256="0dbbg0wvk1ndv20d5j80waaz0z1bsp7y2k2m17jly4ax2hc5frc9"; depends=[AnnotationDbi Biobase BiocGenerics DBI RCurl RSQLite S4Vectors XML]; };
-  AnnotationHub = derive2 { name="AnnotationHub"; version="3.10.0"; sha256="1mx3vip1rx5lq0vnkxpmkyksnq4vygmww85vxq3spr0fah1pwnkr"; depends=[AnnotationDbi BiocFileCache BiocGenerics BiocManager BiocVersion curl dplyr httr interactiveDisplayBase rappdirs RSQLite S4Vectors yaml]; };
-  AnnotationHubData = derive2 { name="AnnotationHubData"; version="1.32.1"; sha256="09x2njf32lvj2irpjffjn2bsh42zkchirb7779xfyh745iis57mm"; depends=[AnnotationDbi AnnotationForge AnnotationHub Biobase BiocCheck BiocGenerics BiocManager biocViews Biostrings DBI futile_logger GenomeInfoDb GenomicFeatures GenomicRanges graph IRanges jsonlite OrganismDbi RCurl Rsamtools RSQLite rtracklayer S4Vectors XML]; };
-  ArrayExpress = derive2 { name="ArrayExpress"; version="1.62.0"; sha256="0cnb6r6rqbz5qph32aa1mghr0w2rhl6znyiblj0cbkv45mx2k4jr"; depends=[Biobase httr jsonlite limma oligo rlang]; };
-  AssessORF = derive2 { name="AssessORF"; version="1.20.0"; sha256="0v64d3nmvcj6bz8zplyqzslm7kz6j3y0nl316h76g094hify64lk"; depends=[Biostrings DECIPHER GenomicRanges IRanges]; };
-  BADER = derive2 { name="BADER"; version="1.40.0"; sha256="0zmf7a7lwsnk9gcg48vmzdvfmzhvnbawwg77pb4gy3cw9sjdz5ym"; depends=[]; };
-  BAGS = derive2 { name="BAGS"; version="2.42.0"; sha256="0356ragpcldr48yycqj91sn3bcqvvfp5spv2z02r8g6hs0dndwdh"; depends=[Biobase breastCancerVDX]; };
-  BANDITS = derive2 { name="BANDITS"; version="1.18.1"; sha256="0y81m37c5irpaw9pfm5b672wk804n4x1g9g5pfh1dp7pggfwbf1z"; depends=[BiocParallel data_table doParallel doRNG DRIMSeq foreach ggplot2 MASS R_utils Rcpp RcppArmadillo]; };
-  BASiCS = derive2 { name="BASiCS"; version="2.14.0"; sha256="0kf215n151sxphc5w9h4i2xsk7lmysi4abwcpyz4slbwhpki3ac8"; depends=[assertthat Biobase BiocGenerics BiocParallel coda cowplot ggExtra ggplot2 hexbin MASS Matrix matrixStats posterior Rcpp RcppArmadillo reshape2 S4Vectors scran scuttle SingleCellExperiment SummarizedExperiment viridis]; };
-  BASiCStan = derive2 { name="BASiCStan"; version="1.4.0"; sha256="01pa2sjmn6asbchxm0gdb8nyzsc73pay26jpv6fnl3gijiwm2xii"; depends=[BASiCS BH glmGamPoi Rcpp RcppEigen RcppParallel rstan rstantools scran scuttle SingleCellExperiment StanHeaders SummarizedExperiment]; };
-  BBCAnalyzer = derive2 { name="BBCAnalyzer"; version="1.32.0"; sha256="108jcgsf5hyj348y17hcw8m3zcfjgzpx8nz4n5jgxp2lgxjyizy1"; depends=[Biostrings GenomicRanges IRanges Rsamtools SummarizedExperiment VariantAnnotation]; };
-  BCRANK = derive2 { name="BCRANK"; version="1.64.0"; sha256="1m1ccacryf8wjzp0d37n9n1kpa6734ddb8nvv1sy0sz5gplrars9"; depends=[Biostrings]; };
-  BEARscc = derive2 { name="BEARscc"; version="1.22.0"; sha256="0lxnmfqnvkdvyhmpqx4nxr8swvsadfx98rpzfz5r6xdkd3alizv8"; depends=[data_table ggplot2 SingleCellExperiment]; };
-  BEAT = derive2 { name="BEAT"; version="1.40.0"; sha256="1kxclpl92pvdxydginp6wj9kvrxy4sh7650fb6vm3cxsnzzbs9xs"; depends=[Biostrings BSgenome GenomicRanges ShortRead]; };
-  BEclear = derive2 { name="BEclear"; version="2.18.0"; sha256="1a8jmlx17qcx9qzcaxbnlk6qji6hqxcnzmr8zvar9jrfhx0cv9x1"; depends=[abind BiocParallel data_table dixonTest futile_logger ids Matrix Rcpp Rdpack]; };
-  BG2 = derive2 { name="BG2"; version="1.2.0"; sha256="1r4qvqgpjw760mnbcb5xas23mnbvy64098b81467fsc0cjwrps6w"; depends=[caret GA MASS Matrix memoise]; };
-  BHC = derive2 { name="BHC"; version="1.54.0"; sha256="1m289q9bs7i7d15g5mzdmzw7yppnqspr8illkya8kxlv1i2sify1"; depends=[]; };
-  BLMA = derive2 { name="BLMA"; version="1.26.0"; sha256="1avidkxgdm6klxwzyaaniff7ajbkj6aw5ypk3qk3zscj6rd5ark2"; depends=[Biobase graph GSA limma metafor PADOG ROntoTools]; };
-  BOBaFIT = derive2 { name="BOBaFIT"; version="1.6.0"; sha256="1h9s0ff31glbbamw5pjyiv4m9v4pp7mm64mmdp55yqfrnhbgy6hi"; depends=[dplyr GenomicRanges ggbio ggforce ggplot2 magrittr NbClust plyranges stringr tidyr]; };
-  BPRMeth = derive2 { name="BPRMeth"; version="1.28.0"; sha256="0ic9yh9r2wvrrjq82jivpfyav6ah2g2fk8pbfa86dapaq8lwvabf"; depends=[assertthat BiocStyle cowplot data_table doParallel e1071 earth foreach GenomicRanges ggplot2 IRanges kernlab magrittr MASS matrixcalc mvtnorm randomForest Rcpp RcppArmadillo S4Vectors truncnorm]; };
-  BRAIN = derive2 { name="BRAIN"; version="1.48.0"; sha256="05s22lh1p4plb4n69ndbwhv0k86kwyg75sv9bxja4y1xnkidfq8f"; depends=[Biostrings lattice PolynomF]; };
-  BRGenomics = derive2 { name="BRGenomics"; version="1.14.1"; sha256="09kpb9jn84np1z8k72ngsbd0xx6v0x3kcl738wizr64w0j9zhlla"; depends=[DESeq2 GenomeInfoDb GenomicAlignments GenomicRanges IRanges Rsamtools rtracklayer S4Vectors SummarizedExperiment]; };
-  BSgenome = derive2 { name="BSgenome"; version="1.70.2"; sha256="02qrqg7lfisj44gvlfn1gkhxxjqdh11q28inxggfpcda9b67j61d"; depends=[BiocGenerics BiocIO Biostrings GenomeInfoDb GenomicRanges IRanges matrixStats Rsamtools rtracklayer S4Vectors XVector]; };
-  BSgenomeForge = derive2 { name="BSgenomeForge"; version="1.2.1"; sha256="0wgs8j7kr6cma3h7gw9sjdm9k8jmfa9yjkzp6hmrv1p7nm3cbian"; depends=[Biobase BiocGenerics Biostrings BSgenome GenomeInfoDb IRanges rtracklayer S4Vectors]; };
-  BUMHMM = derive2 { name="BUMHMM"; version="1.26.0"; sha256="0ap8z0rk2w6ja19md4fa4h8lv2gxz12k5a7r4s5chbf4f7k2a480"; depends=[Biostrings devtools gtools IRanges stringi SummarizedExperiment]; };
-  BUS = derive2 { name="BUS"; version="1.58.0"; sha256="154fhml5x1j6yypazvjahzr9fhfqrwi3486x8bm3nqx9n4sfpn0v"; depends=[infotheo minet]; };
-  BUScorrect = derive2 { name="BUScorrect"; version="1.20.0"; sha256="0l3hbx2j9cm73fvyam6bpjzikg4ai4n8rqwfwmpqifaqcmfd4qgf"; depends=[gplots SummarizedExperiment]; };
-  BUSpaRse = derive2 { name="BUSpaRse"; version="1.16.1"; sha256="1wqc20vc3dk6a83p7i23w7vbjxr982f0gdk39vq9kyj57k7ya9sb"; depends=[AnnotationDbi AnnotationFilter BH BiocGenerics biomaRt Biostrings BSgenome dplyr ensembldb GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 IRanges magrittr Matrix plyranges Rcpp RcppArmadillo RcppProgress S4Vectors stringr tibble tidyr zeallot]; };
-  BUSseq = derive2 { name="BUSseq"; version="1.8.0"; sha256="1pmi2mbnpdxp4q2kh0h68bjq6j0rrh8nnlxidfk92gw058vhbv60"; depends=[gplots S4Vectors SingleCellExperiment SummarizedExperiment]; };
-  BaalChIP = derive2 { name="BaalChIP"; version="1.28.0"; sha256="0d08mp12lw4qdy7w7i474ywcy2zgv940nc44w0gbb9h9dfl22crv"; depends=[coda doBy doParallel foreach GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 IRanges reshape2 Rsamtools scales]; };
-  BadRegionFinder = derive2 { name="BadRegionFinder"; version="1.30.0"; sha256="17smlghl8s667n6cjx64mqli9drmv0pkq51mhjlyjy2v019im7l9"; depends=[biomaRt GenomicRanges Rsamtools S4Vectors VariantAnnotation]; };
-  BaseSpaceR = derive2 { name="BaseSpaceR"; version="1.46.0"; sha256="1ldsgrhxb1nm8xj7mws461apjknp9c2bhq3738f63i2qj9g25j4g"; depends=[RCurl RJSONIO]; };
-  Basic4Cseq = derive2 { name="Basic4Cseq"; version="1.38.0"; sha256="1vlrrkg885w77w34m2q8hngr95hhh5bkw9hrzyhnp39igjkcwqx4"; depends=[Biostrings BSgenome_Ecoli_NCBI_20080805 caTools GenomicAlignments GenomicRanges RCircos]; };
-  BasicSTARRseq = derive2 { name="BasicSTARRseq"; version="1.30.0"; sha256="1dw6bv1qk2bn0l3m458sqgvm3s1karh4n3431pl7r0jj2r3mr6xa"; depends=[GenomeInfoDb GenomicAlignments GenomicRanges IRanges S4Vectors]; };
-  BatchQC = derive2 { name="BatchQC"; version="1.30.0"; sha256="1xfa4g32b7vzj2l8bv0fa1xb15vlk7x933g2wxx4qz78a2wkd6yq"; depends=[corpcor ggvis gplots heatmaply knitr limma Matrix matrixStats MCMCpack moments pander reshape2 rmarkdown shiny sva]; };
-  BayesKnockdown = derive2 { name="BayesKnockdown"; version="1.28.0"; sha256="1argd4gfld2yb0vvpgb5k7m6agmi58712f6g5dj4gnb7kg4rp1l8"; depends=[Biobase]; };
-  BayesSpace = derive2 { name="BayesSpace"; version="1.12.0"; sha256="1mqgsylnrvf197cin5zzihjv31bm2q0m5a612ncbglys6n1jd105"; depends=[assertthat BiocFileCache BiocSingular coda DirichletReg ggplot2 Matrix mclust purrr Rcpp RcppArmadillo RcppDist RcppProgress RCurl rhdf5 S4Vectors scales scater scran SingleCellExperiment SummarizedExperiment xgboost]; };
-  BeadDataPackR = derive2 { name="BeadDataPackR"; version="1.54.0"; sha256="0sfpdpw6qqffzb9skzx9w1ggcixc3wry9c6f2kwpsykbdsnk90xz"; depends=[]; };
-  BgeeCall = derive2 { name="BgeeCall"; version="1.18.1"; sha256="1ipypkyfqx6mahiwl0gzdsi7z9j9cm5rgfw4ybgh6blfq8kg9qyk"; depends=[biomaRt Biostrings data_table dplyr GenomicFeatures jsonlite rhdf5 rslurm rtracklayer sjmisc tximport]; };
-  BgeeDB = derive2 { name="BgeeDB"; version="2.28.0"; sha256="1ahip21wihwg9yhq0ya1cyzd2cq423hz9pd6iql6y3yhld4j5rnn"; depends=[Biobase curl data_table digest dplyr graph R_utils RCurl RSQLite tidyr topGO]; };
-  BiFET = derive2 { name="BiFET"; version="1.22.0"; sha256="056zqlql39q44snvx5nzc5snrihpr1kj3jdbpbb401hxi9r64f4r"; depends=[GenomicRanges poibin]; };
-  BiGGR = derive2 { name="BiGGR"; version="1.38.0"; sha256="1pdsxkh9fkgn80f7p21902pb6xp2qafq10p29ifb55qwz8gma2ff"; depends=[hyperdraw hypergraph LIM limSolve rsbml stringr]; };
-  BiRewire = derive2 { name="BiRewire"; version="3.34.0"; sha256="1h5pmd38b9zpbz1nngmk1s0cag4z0vx93yi2n7r85nca9z02cxad"; depends=[igraph Matrix Rtsne slam]; };
-  BiSeq = derive2 { name="BiSeq"; version="1.42.0"; sha256="0ajx73bnx36cik70p4lbbnsr36ly88y57qqlp0mqbmn2mzqv5ajg"; depends=[betareg Biobase BiocGenerics Formula GenomeInfoDb GenomicRanges globaltest IRanges lokern rtracklayer S4Vectors SummarizedExperiment]; };
-  BicARE = derive2 { name="BicARE"; version="1.60.0"; sha256="10inwxl1cmkdp8037wcwkj5wzxsrrcysxfbqhnkh7pzhzvwnzz9h"; depends=[Biobase GO_db GSEABase multtest]; };
-  BindingSiteFinder = derive2 { name="BindingSiteFinder"; version="2.0.0"; sha256="1af4q8hzdjbi058a5l70jps5r7k3nccs8096gsfhgqfc9vanv6dy"; depends=[ComplexHeatmap dplyr forcats GenomeInfoDb GenomicFeatures GenomicRanges ggdist ggforce ggplot2 IRanges kableExtra lifecycle matrixStats plyr RColorBrewer rlang rtracklayer S4Vectors tibble tidyr]; };
-  BioCartaImage = derive2 { name="BioCartaImage"; version="1.0.0"; sha256="0xp0znvlgh29f3y4n4gjc66c17jpifxk0ik49dqrdn6q1p2cbcv9"; depends=[magick]; };
-  BioCor = derive2 { name="BioCor"; version="1.26.0"; sha256="0710dl05hs590fimp3dhg5hzvk6s79i0kwk6w6sj59pcawx2l6il"; depends=[BiocParallel GSEABase Matrix]; };
-  BioMVCClass = derive2 { name="BioMVCClass"; version="1.70.0"; sha256="04ckv1y5iqawd0dvnn0bbpnmyys0ivcmf0my6dld3hib3idjzwfx"; depends=[Biobase graph MVCClass Rgraphviz]; };
-  BioNAR = derive2 { name="BioNAR"; version="1.4.4"; sha256="1gnsg5ljvsf77rfidrcq42xprs3a7kj6nfx6nxixvd8hzr65myjd"; depends=[AnnotationDbi clusterCons cowplot data_table dplyr fgsea ggplot2 ggrepel GO_db igraph latex2exp Matrix minpack_lm org_Hs_eg_db poweRlaw Rdpack RSpectra rSpectral scales stringr viridis WGCNA]; };
-  BioNERO = derive2 { name="BioNERO"; version="1.10.1"; sha256="0dxn4pijr6gsqybl8x3ix1xydizg7gzfp72risk37zc5i4xk2lca"; depends=[BiocParallel ComplexHeatmap dynamicTreeCut GENIE3 ggdendro ggnetwork ggplot2 ggrepel igraph intergraph matrixStats minet NetRep patchwork RColorBrewer reshape2 rlang SummarizedExperiment sva WGCNA]; };
-  BioNet = derive2 { name="BioNet"; version="1.62.0"; sha256="122rj6rg4j9q9brhxyrbkc91fml3davk044s2yxwyjnwn2yjw0bq"; depends=[AnnotationDbi Biobase graph igraph RBGL]; };
-  BioNetStat = derive2 { name="BioNetStat"; version="1.22.0"; sha256="1rbb36v64b9xbk2dsf6wsyrhwwbkysrj8fp1g22y3gisdk170sg8"; depends=[BiocParallel DT ggplot2 Hmisc igraph knitr markdown pathview pheatmap plyr psych RColorBrewer RJSONIO rmarkdown shiny shinyBS whisker yaml]; };
-  BioQC = derive2 { name="BioQC"; version="1.30.0"; sha256="15kmg102259h2yl3b6ncq2p545kdac4hk4kwm1s5492y5rg7qkla"; depends=[Biobase edgeR Rcpp]; };
-  BioTIP = derive2 { name="BioTIP"; version="1.16.0"; sha256="1bbjfv3bi20xlk8h7r5ipav6mfs27lmj0zjb5mk1gmp071dmnk0y"; depends=[cluster GenomicRanges igraph MASS psych scran stringr]; };
-  Biobase = derive2 { name="Biobase"; version="2.62.0"; sha256="0znkawzr3hgbp2dkdk30ziqa6ylbq2nf0xmz4vi089cw9763lxgg"; depends=[BiocGenerics]; };
-  BiocBaseUtils = derive2 { name="BiocBaseUtils"; version="1.4.0"; sha256="189jz8krhv0vdnk47m3cmy95zfg3l328w6dbhg6djvlkca17i275"; depends=[]; };
-  BiocBook = derive2 { name="BiocBook"; version="1.0.0"; sha256="0lk4rm5q8q5xkiayg6chb7xdagjyz66wga9v3yl4nwangk0rfsil"; depends=[available BiocGenerics cli dplyr gert gh gitcreds glue httr purrr quarto renv rlang rprojroot stringr tibble usethis yaml]; };
-  BiocCheck = derive2 { name="BiocCheck"; version="1.38.2"; sha256="1pkh7b27ynzpdfvyzqg36jm885r5lf2zw9rppdpj31rcv1640s0k"; depends=[BiocBaseUtils BiocFileCache BiocManager biocViews callr codetools graph httr2 knitr rvest stringdist]; };
-  BiocFHIR = derive2 { name="BiocFHIR"; version="1.4.0"; sha256="1syp4yc7kdzywln1lscr5a6f20nl7jjw86sbxj2ci1f01wbiq63w"; depends=[BiocBaseUtils dplyr DT graph jsonlite shiny tidyr visNetwork]; };
-  BiocFileCache = derive2 { name="BiocFileCache"; version="2.10.1"; sha256="044kh1rfgb608y2v4wzbzddirhw5crj3k6i28wr78qgnzqc89mdm"; depends=[curl DBI dbplyr dplyr filelock httr RSQLite]; };
-  BiocGenerics = derive2 { name="BiocGenerics"; version="0.48.1"; sha256="0av525j9l0y3kjdy5wl6s35sh4nsabmdclq3687l5258kmq2dq8k"; depends=[]; };
-  BiocHail = derive2 { name="BiocHail"; version="1.2.0"; sha256="02dss0xbrxl1l6py9xmag1f5vqr031n343jk2jcf4idn4zr02s6m"; depends=[basilisk BiocFileCache BiocGenerics dplyr reticulate]; };
-  BiocHubsShiny = derive2 { name="BiocHubsShiny"; version="1.2.0"; sha256="1sz27svvpvcys4b9p53da1javkh5k9235pzsjvn2wx76gi6b1jkj"; depends=[AnnotationHub DT ExperimentHub htmlwidgets S4Vectors shiny shinyAce shinyjs shinythemes shinytoastr]; };
-  BiocIO = derive2 { name="BiocIO"; version="1.12.0"; sha256="0bn2jknvj2ag1yv67kjqr7gsq771rmqv3my9njjkwcc9nzrxzhbp"; depends=[BiocGenerics S4Vectors]; };
-  BiocNeighbors = derive2 { name="BiocNeighbors"; version="1.20.2"; sha256="0lvsw920i75di5pwq7yvk8wcxp01wrh7863xmwbrmk5jrvl3y4h4"; depends=[BiocParallel Matrix Rcpp RcppHNSW S4Vectors]; };
-  BiocOncoTK = derive2 { name="BiocOncoTK"; version="1.22.2"; sha256="0yx32yj9bw78nhbv1yvgs26sxdmnava1a89g9hs4ai26c1hy150s"; depends=[bigrquery car ComplexHeatmap curatedTCGAData DBI dplyr DT GenomicFeatures GenomicRanges ggplot2 ggpubr graph httr IRanges magrittr MASS plyr Rgraphviz rjson S4Vectors scales shiny SummarizedExperiment]; };
-  BiocParallel = derive2 { name="BiocParallel"; version="1.36.0"; sha256="19h80qf0zdxfg3pkcwwywh9gg0ymv92n51qpimnw4c3w5iaszy6b"; depends=[BH codetools cpp11 futile_logger snow]; };
-  BiocPkgTools = derive2 { name="BiocPkgTools"; version="1.20.0"; sha256="0swi6xiads31xcndc2cfzh0ivdl0wc88s83s1p1gxh51rgmgkb14"; depends=[BiocFileCache BiocManager biocViews dplyr DT gh graph htmltools htmlwidgets httr igraph jsonlite magrittr RBGL readr rlang rorcid rvest stringr tibble xml2]; };
-  BiocSet = derive2 { name="BiocSet"; version="1.16.1"; sha256="1qmi6b0hrfzj7ixcbxlsxyy3qg7d2qrq8jcjrjrgfyrgcfws46qd"; depends=[AnnotationDbi BiocIO dplyr KEGGREST ontologyIndex plyr rlang S4Vectors tibble tidyr]; };
-  BiocSingular = derive2 { name="BiocSingular"; version="1.18.0"; sha256="0z1p02329wk2x058ij42q5pyvp0vhsihaxmizgzcj4sww6i28j33"; depends=[beachmat BiocGenerics BiocParallel DelayedArray irlba Matrix Rcpp rsvd S4Vectors ScaledMatrix]; };
-  BiocSklearn = derive2 { name="BiocSklearn"; version="1.24.0"; sha256="01q9i3ncgi5ddkpvh47y061n8s7cvl19xlra6j591h0lxm65a6yx"; depends=[basilisk reticulate SummarizedExperiment]; };
-  BiocStyle = derive2 { name="BiocStyle"; version="2.30.0"; sha256="17pkdi3vn62pw1nzmgz0i45czynqjchq078ij8v1xvflg6lf7flw"; depends=[BiocManager bookdown knitr rmarkdown yaml]; };
-  BiocVersion = derive2 { name="BiocVersion"; version="3.18.1"; sha256="15wr651ylbx3am213dsy5kdr1xc8r5c9rfq5ydxzqlmxzjgymj55"; depends=[]; };
-  BiocWorkflowTools = derive2 { name="BiocWorkflowTools"; version="1.28.0"; sha256="0mh7lsiprshq56ns3b8pbv1j1mjcbdzqydvli0ynmvf5smn2j4m5"; depends=[BiocStyle bookdown git2r httr knitr rmarkdown rstudioapi stringr usethis]; };
-  Biostrings = derive2 { name="Biostrings"; version="2.70.3"; sha256="1704fn4dlswy5silmw2ri4yjbibqv249cnrb5mdgiwjh7l51w725"; depends=[BiocGenerics crayon GenomeInfoDb IRanges S4Vectors XVector]; };
-  BloodGen3Module = derive2 { name="BloodGen3Module"; version="1.10.0"; sha256="0nzgqpgdjz0vqrijnwgpr4z41jwrf7bkrzfb1y6a04d3lrm6xmbc"; depends=[circlize ComplexHeatmap ExperimentHub ggplot2 gtools limma matrixStats preprocessCore randomcoloR reshape2 SummarizedExperiment testthat V8]; };
-  BridgeDbR = derive2 { name="BridgeDbR"; version="2.12.0"; sha256="01y20lnna6fw6pgc1p0760kql120f0rjy9dicl97c8iv25m3kwzp"; depends=[curl rJava]; };
-  BrowserViz = derive2 { name="BrowserViz"; version="2.24.0"; sha256="1m4wvpzfhcfpn4slms8584pv5wa467fd4avk7wk5my1ifnwwjvr5"; depends=[BiocGenerics httpuv jsonlite]; };
-  BubbleTree = derive2 { name="BubbleTree"; version="2.32.0"; sha256="0a4jnchzxfvh6k9dlhlkf5lshqmj33w3lqjdyz414ka6jlh8jwpq"; depends=[Biobase BiocGenerics BiocStyle biovizBase dplyr e1071 GenomicRanges ggplot2 gridExtra gtable gtools IRanges limma magrittr plyr RColorBrewer WriteXLS]; };
-  BufferedMatrix = derive2 { name="BufferedMatrix"; version="1.66.0"; sha256="1a3jrx2ym4ja6vhqnpm1w6c54df4y71qrcp91kkzc4g8k7ab8nhr"; depends=[]; };
-  BufferedMatrixMethods = derive2 { name="BufferedMatrixMethods"; version="1.66.0"; sha256="023bpc3sakvxmdv1zxxwqwrgr8ap6p16jb15935v29qrwss643w9"; depends=[BufferedMatrix]; };
-  BumpyMatrix = derive2 { name="BumpyMatrix"; version="1.10.0"; sha256="0ic87fjxwb39nmys09zb6k3ghcx8mmmj9pifljs10449i2lgzl2r"; depends=[IRanges Matrix S4Vectors]; };
-  CAEN = derive2 { name="CAEN"; version="1.10.0"; sha256="0mw2vy7s9iihbzg6zfccn99607bkvqga0iynl1kgc1bwvl7zlam4"; depends=[PoiClaClu SummarizedExperiment]; };
-  CAFE = derive2 { name="CAFE"; version="1.38.0"; sha256="1an1190g6b0xi36lmh8mnqas7bv5b9khcp4jsqnd04w22d4xf3jw"; depends=[affy annotate Biobase biovizBase GenomicRanges ggbio ggplot2 gridExtra IRanges]; };
-  CAGEfightR = derive2 { name="CAGEfightR"; version="1.22.0"; sha256="0hbxrzsg4iqiwn74pha804xfy2ab9ijfxpv2g4ksqjv53pihkzc0"; depends=[assertthat BiocGenerics BiocParallel GenomeInfoDb GenomicAlignments GenomicFeatures GenomicFiles GenomicInteractions GenomicRanges Gviz InteractionSet IRanges Matrix pryr rtracklayer S4Vectors SummarizedExperiment]; };
-  CAGEr = derive2 { name="CAGEr"; version="2.8.0"; sha256="131ab9dfckvw8mg22ics6mknfmspb1aaysmqgaxxc3rzf81d7w3q"; depends=[BiocGenerics BiocParallel BSgenome CAGEfightR data_table DelayedArray DelayedMatrixStats formula_tools GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 gtools IRanges KernSmooth memoise MultiAssayExperiment plyr reshape2 Rsamtools rtracklayer S4Vectors som stringdist stringi SummarizedExperiment vegan VGAM]; };
-  CAMERA = derive2 { name="CAMERA"; version="1.58.0"; sha256="1pa4ha4r8n3gpl0iqpzrax56nwcqf0i6mldsrlvn194024xma721"; depends=[Biobase graph Hmisc igraph RBGL xcms]; };
-  CARNIVAL = derive2 { name="CARNIVAL"; version="2.12.0"; sha256="0yqanic5y2wy8p729iw8yb1b09chv2y15qfnlbkymq9j12m28v4v"; depends=[dplyr igraph lpSolve readr rjson rmarkdown stringr tibble tidyr]; };
-  CATALYST = derive2 { name="CATALYST"; version="1.26.0"; sha256="0dfg9ib0imk8bmhycqrspnn8yvfdlchwvx39wgqxi5fb9zrppfz4"; depends=[circlize ComplexHeatmap ConsensusClusterPlus cowplot data_table dplyr drc flowCore FlowSOM ggplot2 ggrepel ggridges gridExtra Matrix matrixStats nnls purrr RColorBrewer reshape2 Rtsne S4Vectors scales scater SingleCellExperiment SummarizedExperiment]; };
-  CBEA = derive2 { name="CBEA"; version="1.2.0"; sha256="0w76bp2jhd4dyfrj66cmairx9k920n24prgy051m83xmda5l3v9b"; depends=[BiocParallel BiocSet dplyr fitdistrplus generics glue goftest lmom magrittr mixtools Rcpp rlang SummarizedExperiment tibble tidyr TreeSummarizedExperiment]; };
-  CBNplot = derive2 { name="CBNplot"; version="1.2.1"; sha256="0f5wklg8ipfj7lb2sag0cg9yghl6m4jxyn834zwa52gk546fdcgd"; depends=[BiocFileCache bnlearn clusterProfiler depmap dplyr enrichplot ExperimentHub ggdist ggforce ggplot2 ggraph graphite graphlayouts igraph magrittr oaqc org_Hs_eg_db patchwork purrr pvclust reshape2 rlang Rmpfr stringr tidyr]; };
-  CCPROMISE = derive2 { name="CCPROMISE"; version="1.28.0"; sha256="12fldnqhg1ds3frjh1vppaqgkf94v9q38hzc36jcq20gdin13i5s"; depends=[Biobase CCP GSEABase PROMISE]; };
-  CCPlotR = derive2 { name="CCPlotR"; version="1.0.0"; sha256="1c393aa102w0qk97pb0mknf9lx6h1s47gj4zbckbdxsivxm5hzjp"; depends=[circlize ComplexHeatmap dplyr forcats ggbump ggh4x ggplot2 ggraph ggtext igraph patchwork plyr RColorBrewer scales scatterpie stringr tibble tidyr viridis]; };
-  CDI = derive2 { name="CDI"; version="1.0.2"; sha256="0zxflvhqcgyjn1rxg4x1l7m30jw8mvml5v2j4zzqxixn63rmjmxg"; depends=[BiocParallel ggplot2 ggsci matrixStats reshape2 Seurat SeuratObject SingleCellExperiment SummarizedExperiment]; };
-  CEMiTool = derive2 { name="CEMiTool"; version="1.26.1"; sha256="1ca5wlw5n0h9py82d9v60r8y985gg7jk9vvk6zdnbrrip5q0pdin"; depends=[clusterProfiler data_table dplyr DT fastcluster fgsea ggdendro ggplot2 ggpmisc ggrepel ggthemes gridExtra gtable htmltools igraph intergraph knitr matrixStats network pracma rmarkdown scales sna stringr WGCNA]; };
-  CFAssay = derive2 { name="CFAssay"; version="1.36.0"; sha256="0fhkds47w2h2y9angk52w2iwj6agc870m79shvp2pkq1jl9ika24"; depends=[]; };
-  CGEN = derive2 { name="CGEN"; version="3.38.0"; sha256="052yxwzk26kh2kmwdrvgj4nkxpmfqr3fiwcpqjy1r1swhgzxc29n"; depends=[mvtnorm survival]; };
-  CGHbase = derive2 { name="CGHbase"; version="1.62.0"; sha256="1iw03gq1kvmn9a6h0kw389l9i7h99fbxcsag9f3gkfznjv0vp5k4"; depends=[Biobase marray]; };
-  CGHcall = derive2 { name="CGHcall"; version="2.64.0"; sha256="1x2zfr40bm42zd1bljwpbz3cz1q23a3yy1g277lwsp78gxbn3zly"; depends=[Biobase CGHbase DNAcopy impute snowfall]; };
-  CGHnormaliter = derive2 { name="CGHnormaliter"; version="1.56.0"; sha256="18wnrp689pi7llg23nwf52r0kbx9ziyhvqg0c2k47h7kkypwf1gn"; depends=[Biobase CGHbase CGHcall]; };
-  CGHregions = derive2 { name="CGHregions"; version="1.60.0"; sha256="1dcwacqymv7c73xyw5l7nvvih9ilf5nqcy93xlk5bgvaf9irmgff"; depends=[Biobase CGHbase]; };
-  CHETAH = derive2 { name="CHETAH"; version="1.18.0"; sha256="0y76gk17sjiw28f4cs670f3z3s94iyp293r4w79gs66jfmkhp5s6"; depends=[bioDist corrplot cowplot dendextend ggplot2 pheatmap plotly reshape2 S4Vectors shiny SingleCellExperiment SummarizedExperiment]; };
-  CHRONOS = derive2 { name="CHRONOS"; version="1.30.0"; sha256="16r409ygnlrwd8aa274klvx2w2m2mh7mfjwfa5949753zgzn1mfz"; depends=[biomaRt circlize doParallel foreach graph igraph openxlsx RBGL RCurl rJava XML]; };
-  CIMICE = derive2 { name="CIMICE"; version="1.10.0"; sha256="0n2bjyqwgpvl2b609v6qk84h4vc3476l71c0cslvkk9n78kpqvmk"; depends=[assertthat dplyr expm ggcorrplot ggplot2 ggraph glue igraph maftools Matrix networkD3 purrr tidygraph tidyr visNetwork]; };
-  CINdex = derive2 { name="CINdex"; version="1.30.0"; sha256="15g2hmy136zj1fay6sj0qv4xkk2crhi16cxymd0b3i7r8qimv2vp"; depends=[bitops dplyr GenomeInfoDb GenomicRanges gplots gridExtra IRanges png S4Vectors som stringr]; };
-  CMA = derive2 { name="CMA"; version="1.60.0"; sha256="04amq5xdml3zkkhfyrp7my4wnsihaq00hig95cnxrnn84vlbszbv"; depends=[Biobase]; };
-  CNAnorm = derive2 { name="CNAnorm"; version="1.48.0"; sha256="01dr5yja660vq2akmb5gjgjsgqb9420vxhig7iqw2a2igwvk60h5"; depends=[DNAcopy]; };
-  CNEr = derive2 { name="CNEr"; version="1.38.0"; sha256="0kpz15l3yz26s2kskxk4093313c7vwi131y24wbpcdahicpqys2m"; depends=[annotate BiocGenerics Biostrings DBI GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 GO_db IRanges KEGGREST poweRlaw R_utils readr reshape2 RSQLite rtracklayer S4Vectors XVector]; };
-  CNORdt = derive2 { name="CNORdt"; version="1.44.0"; sha256="03kc07ji829drirgc1gfw2spkpj8rc16r0by8l392hqrdyl5xxwc"; depends=[abind CellNOptR]; };
-  CNORfeeder = derive2 { name="CNORfeeder"; version="1.42.0"; sha256="0qg1wxyykdmi3dspxb4s9sb3rp0hzhqg1aq4fvwfk827740y1fb1"; depends=[CellNOptR graph]; };
-  CNORfuzzy = derive2 { name="CNORfuzzy"; version="1.44.0"; sha256="1mbhr078i20rf3222lpr5ijiy07pp07c4larfnm0zrdv7wabij87"; depends=[CellNOptR nloptr]; };
-  CNORode = derive2 { name="CNORode"; version="1.44.0"; sha256="0dmxhmvv2nyhwhjslwlhaf29fy5yl8f6q84cc2zaf41milx0avl7"; depends=[CellNOptR genalg knitr]; };
-  CNTools = derive2 { name="CNTools"; version="1.58.0"; sha256="1jv46vrbqj2z6b6q5psbwh32sidaraklhnz6n3iqhmhs4dyf67g4"; depends=[genefilter]; };
-  CNVMetrics = derive2 { name="CNVMetrics"; version="1.6.0"; sha256="16n44dc6dnzv9z6nag5zp6pajvwnr2plprcy73i6lwmmg7w89nwm"; depends=[BiocParallel GenomicRanges gridExtra IRanges magrittr pheatmap rBeta2009 S4Vectors]; };
-  CNVPanelizer = derive2 { name="CNVPanelizer"; version="1.34.0"; sha256="15h8pkgp6g6sbiyk4q53s36w7szms66pa1hj2z32rhn4ys07indn"; depends=[BiocGenerics exomeCopy foreach GenomeInfoDb GenomicRanges ggplot2 gplots IRanges NOISeq openxlsx plyr reshape2 Rsamtools S4Vectors shiny shinyFiles shinyjs stringr testthat]; };
-  CNVRanger = derive2 { name="CNVRanger"; version="1.18.1"; sha256="1wrq316nacvmd2hjqvx6iw3223x8hif17ka96raavpr43ss5slk2"; depends=[BiocGenerics BiocParallel data_table edgeR GDSArray gdsfmt GenomeInfoDb GenomicRanges IRanges lattice limma plyr qqman RaggedExperiment rappdirs reshape2 S4Vectors SNPRelate SummarizedExperiment]; };
-  CNVfilteR = derive2 { name="CNVfilteR"; version="1.16.0"; sha256="1ggsy5l81w67544qg2w1i8k6ahyxmmml9xwl8216aqhhh5dz19ba"; depends=[assertthat Biostrings CopyNumberPlots GenomeInfoDb GenomicRanges IRanges karyoploteR pracma regioneR Rsamtools SummarizedExperiment VariantAnnotation]; };
-  CNViz = derive2 { name="CNViz"; version="1.10.0"; sha256="0wxavpmjljvrw5vxwnylxw9q85p48qa8zyz4i2ac77gd34777dls"; depends=[CopyNumberPlots dplyr DT GenomicRanges karyoploteR magrittr plotly scales shiny]; };
-  CNVrd2 = derive2 { name="CNVrd2"; version="1.40.0"; sha256="0a67rngcar0zlr71jzi6hfwk51x31x5aff9px1v6fmzmiazhppnn"; depends=[DNAcopy ggplot2 gridExtra IRanges rjags Rsamtools VariantAnnotation]; };
-  COCOA = derive2 { name="COCOA"; version="2.16.0"; sha256="0j52y22q8kmqvji7lls6x767qb066a28xvpwlj473041xv0nyqjh"; depends=[Biobase BiocGenerics ComplexHeatmap data_table fitdistrplus GenomicRanges ggplot2 IRanges MIRA S4Vectors simpleCache tidyr]; };
-  CODEX = derive2 { name="CODEX"; version="1.34.0"; sha256="0gliqm2xsh67b9pgfyxca6wqwbfwvwdn6wmj20js62wcf4ql1f2x"; depends=[Biostrings BSgenome_Hsapiens_UCSC_hg19 GenomeInfoDb IRanges Rsamtools S4Vectors]; };
-  COHCAP = derive2 { name="COHCAP"; version="1.48.0"; sha256="1czbmjmrldp4xwf2pi542aqxxgjg34bvky716fjf5y3zxp4j5pnd"; depends=[BH COHCAPanno gplots RColorBrewer Rcpp RcppArmadillo WriteXLS]; };
-  COMPASS = derive2 { name="COMPASS"; version="1.40.0"; sha256="1a7f6jsp4r7z49mskbfdshngqwmjqs0bp3skbnbkzfqfb8mh7gl1"; depends=[abind BiocStyle clue coda data_table dplyr foreach knitr magrittr pdist plyr RColorBrewer Rcpp reshape2 rlang rmarkdown scales tidyr]; };
-  CONFESS = derive2 { name="CONFESS"; version="1.30.0"; sha256="07llqgib7aqqn5m1zkmydh7cd9zpcskh87196079gssiyk8yd3w2"; depends=[changepoint cluster contrast data_table EBImage ecp flexmix flowClust flowCore flowMeans flowMerge flowPeaks foreach ggplot2 limma MASS moments outliers plotrix raster readbitmap reshape2 SamSPECTRAL waveslim wavethresh zoo]; };
-  CONSTANd = derive2 { name="CONSTANd"; version="1.10.0"; sha256="0q0yskigdadjnhjfwsjmi84cp4w3jax7r3wddpswkahb42z86l6r"; depends=[]; };
-  CORREP = derive2 { name="CORREP"; version="1.68.0"; sha256="1ida60gpbkr5iyn74y6df8gd0znjkzbidyi7sz4my47fw4j8wrin"; depends=[e1071]; };
-  COSNet = derive2 { name="COSNet"; version="1.36.0"; sha256="1w6j2ybqvrh750af924pbw13x93fm8q035skbv088abpj8hxh72n"; depends=[]; };
-  COTAN = derive2 { name="COTAN"; version="2.2.3"; sha256="12q5qcxa9qrykwqdl83c2bkg2y732qaw1fxb55fdh62l53xr2352"; depends=[assertthat BiocSingular circlize ComplexHeatmap dendextend dplyr ggplot2 ggrepel ggthemes Matrix parallelDist parallelly PCAtools plyr RColorBrewer Rfast rlang scales Seurat stringr tibble tidyr umap withr zeallot]; };
-  CRISPRseek = derive2 { name="CRISPRseek"; version="1.42.0"; sha256="0dlcjqsl2agpd855jlnkdw8rljhc0f7lpn0qixy0vh2xyd38d3bv"; depends=[BiocGenerics Biostrings BSgenome data_table DelayedArray dplyr GenomeInfoDb GenomicRanges hash IRanges keras mltools reticulate rhdf5 S4Vectors seqinr XVector]; };
-  CRImage = derive2 { name="CRImage"; version="1.50.0"; sha256="0yvl7lb6l6sy5i8s82j2gm79fi160dpvhvsg0p725a1d8jvgjxic"; depends=[aCGH DNAcopy e1071 EBImage foreach MASS sgeostat]; };
-  CSAR = derive2 { name="CSAR"; version="1.54.0"; sha256="1i6mp2i1dx73pz4cibakdlffbwnagnm3jrx7v6dg5jdghqp9mnhn"; depends=[GenomeInfoDb GenomicRanges IRanges S4Vectors]; };
-  CSSQ = derive2 { name="CSSQ"; version="1.14.0"; sha256="0n4ar1g9s127iqxxsh0f551y9rc9f9sa1y6lrwdbwyd94j44m3in"; depends=[GenomicAlignments GenomicFeatures GenomicRanges ggplot2 IRanges Rsamtools rtracklayer S4Vectors SummarizedExperiment]; };
-  CTDquerier = derive2 { name="CTDquerier"; version="2.10.0"; sha256="1p00dxjkij8fp1x1ywp4s5gb1qqmxwpj790akf2ym9p3axcysmiq"; depends=[BiocFileCache ggplot2 gridExtra igraph RCurl S4Vectors stringdist stringr]; };
-  CTSV = derive2 { name="CTSV"; version="1.4.0"; sha256="00nc3zk07719fz0s4ji8yp79jcs18qpdq99s5kjks2gsfcs31ay9"; depends=[BiocParallel knitr pscl qvalue SpatialExperiment SummarizedExperiment]; };
-  CTdata = derive2 { name="CTdata"; version="1.2.0"; sha256="1gf5n85b9srdnj2nc0aqn8j6zjhhbvdn2k11im23f19vz6msvzw6"; depends=[ExperimentHub]; };
-  CaDrA = derive2 { name="CaDrA"; version="1.0.2"; sha256="0y00xjnb8ljzm3mfyba3bpv0cq904d1n6z2avs1rfzpclrdns440"; depends=[doParallel ggplot2 gplots gtable MASS misc3d plyr ppcor R_cache reshape2 SummarizedExperiment]; };
-  Cardinal = derive2 { name="Cardinal"; version="3.4.3"; sha256="0zn0as9nm4xl765qy76snl61vdzdl4ib5q2ca9bvg76m5km6hip1"; depends=[Biobase BiocGenerics BiocParallel CardinalIO EBImage irlba magrittr Matrix matter mclust nlme ProtGenerics S4Vectors signal viridisLite]; };
-  CardinalIO = derive2 { name="CardinalIO"; version="1.0.0"; sha256="0krx56cs2b73wpkp99y019ix2maa44bwpxw5qx2i86qj3c89lmn6"; depends=[matter ontologyIndex S4Vectors]; };
-  Category = derive2 { name="Category"; version="2.68.0"; sha256="19qyxqky1gsrjylmc2h0sndbqlk2ibrps7123gqwn19p8kg4nhf0"; depends=[annotate AnnotationDbi Biobase BiocGenerics DBI genefilter graph GSEABase Matrix RBGL]; };
-  CausalR = derive2 { name="CausalR"; version="1.34.0"; sha256="18g4z9jwbxay29fyd25dhl7bbrns3sfbn2fczcwm8q6nwqdpj93v"; depends=[igraph]; };
-  CeTF = derive2 { name="CeTF"; version="1.14.0"; sha256="11s0mdwn7d1k9kjwj4l3a2l3l5v1bihqfngfmg25sw7h57gacl6j"; depends=[circlize clusterProfiler ComplexHeatmap DESeq2 dplyr GenomicTools_fileHandler GGally ggnetwork ggplot2 ggpubr ggrepel igraph Matrix network Rcpp RcppArmadillo RCy3 S4Vectors SummarizedExperiment]; };
-  CellBarcode = derive2 { name="CellBarcode"; version="1.8.1"; sha256="0h4mhzzrdcing9dxknhcrq2556ij68dq9hbx1sd226nrxmdw984v"; depends=[BH Biostrings Ckmeans_1d_dp data_table egg ggplot2 magrittr plyr Rcpp Rsamtools S4Vectors seqinr ShortRead stringr zlibbioc]; };
-  CellBench = derive2 { name="CellBench"; version="1.18.0"; sha256="18q0qyc1k5d48vyhfzby8mz59ha5xl3mgflp6d7rdwv02340cipn"; depends=[assertthat BiocFileCache BiocGenerics BiocParallel dplyr glue lubridate magrittr memoise purrr rappdirs rlang SingleCellExperiment tibble tidyr tidyselect]; };
-  CellMapper = derive2 { name="CellMapper"; version="1.28.0"; sha256="1ra9kw0waq5vn4hdzz3rpcy5vrd6k35m474r827a0j2avsmhgvwv"; depends=[S4Vectors]; };
-  CellMixS = derive2 { name="CellMixS"; version="1.18.0"; sha256="0dimxhhk96lzrsi52ppgd7p6rcip81cjwzynlk6afgd2f0da45p4"; depends=[BiocGenerics BiocNeighbors BiocParallel cowplot dplyr ggplot2 ggridges kSamples magrittr purrr scater SingleCellExperiment SummarizedExperiment tidyr viridis]; };
-  CellNOptR = derive2 { name="CellNOptR"; version="1.48.0"; sha256="015k6jn12svxfdxsw9zmdsjsa74yv8dqg0pp4pvdsqs9q13jlc14"; depends=[ggplot2 graph igraph RBGL RCurl Rgraphviz rmarkdown stringi stringr XML]; };
-  CellScore = derive2 { name="CellScore"; version="1.22.0"; sha256="0sjh00gv71vnvwl9lvha2kpbqcfyvbgfxxdi5gwq9iln08mcl3sh"; depends=[Biobase gplots lsa RColorBrewer squash SummarizedExperiment]; };
-  CellTrails = derive2 { name="CellTrails"; version="1.20.0"; sha256="1paqgvbkdmn2dacj392haassxhg3fx47srm6whgz3nlh26hvpimm"; depends=[Biobase BiocGenerics cba dendextend dtw EnvStats ggplot2 ggrepel igraph maptree mgcv reshape2 Rtsne SingleCellExperiment SummarizedExperiment]; };
-  CellaRepertorium = derive2 { name="CellaRepertorium"; version="1.12.0"; sha256="0k9sxh0b9g2841zpkbmcc65v0kfyv1i6sxzdmbr49nzzm27xlbh2"; depends=[BiocGenerics Biostrings dplyr forcats generics glue Matrix progress purrr Rcpp reshape2 rlang S4Vectors stringr tibble tidyr]; };
-  CelliD = derive2 { name="CelliD"; version="1.10.1"; sha256="13hwxhdp268h3n8d8wgr75i60apa9mama9bg049yz7c6mj5ixd1v"; depends=[BiocParallel data_table fastmatch fgsea ggplot2 glue irlba Matrix matrixStats pbapply Rcpp RcppArmadillo reticulate Rtsne scater Seurat SingleCellExperiment stringr SummarizedExperiment tictoc umap]; };
-  Cepo = derive2 { name="Cepo"; version="1.8.0"; sha256="0s1zra4msgbp37r5lp0zs9j2aq054rcmrmhwi3liwp4wkvjbshw8"; depends=[BiocParallel DelayedArray DelayedMatrixStats dplyr ggplot2 GSEABase HDF5Array patchwork reshape2 rlang S4Vectors SingleCellExperiment SummarizedExperiment]; };
-  CexoR = derive2 { name="CexoR"; version="1.40.0"; sha256="0rfb4vmgmk608l5kd9yxfny87krc2sc79rww0sh9cbcw5yicsr64"; depends=[genomation GenomeInfoDb GenomicRanges idr IRanges RColorBrewer Rsamtools rtracklayer S4Vectors]; };
-  ChAMP = derive2 { name="ChAMP"; version="2.32.0"; sha256="1gdcdx34bxffd6ch354qx7yjngx3lj9chv5frwjyk56jq12vjjk7"; depends=[bumphunter ChAMPdata combinat dendextend DMRcate DNAcopy doParallel DT GenomicRanges ggplot2 globaltest goseq Hmisc Illumina450ProbeVariants_db IlluminaHumanMethylation450kmanifest IlluminaHumanMethylationEPICanno_ilm10b4_hg19 IlluminaHumanMethylationEPICmanifest illuminaio impute isva kpmt limma marray matrixStats minfi missMethyl plotly plyr preprocessCore prettydoc quadprog qvalue RColorBrewer rmarkdown RPMM shiny shinythemes sva wateRmelon]; };
-  ChIPComp = derive2 { name="ChIPComp"; version="1.32.0"; sha256="061d2z1rrcyad6cf19si14ab9a3dxdi17sfbkx3vx8kdsfs3djy9"; depends=[BiocGenerics BSgenome_Hsapiens_UCSC_hg19 BSgenome_Mmusculus_UCSC_mm9 GenomeInfoDb GenomicRanges IRanges limma Rsamtools rtracklayer S4Vectors]; };
-  ChIPQC = derive2 { name="ChIPQC"; version="1.38.0"; sha256="0a4kx2s2hyqs061550klfafkzk68563wbgyk4xihxaihdh03qghj"; depends=[Biobase BiocGenerics BiocParallel chipseq DiffBind GenomicAlignments GenomicFeatures GenomicRanges ggplot2 gtools IRanges Nozzle_R1 reshape2 Rsamtools S4Vectors TxDb_Celegans_UCSC_ce6_ensGene TxDb_Dmelanogaster_UCSC_dm3_ensGene TxDb_Hsapiens_UCSC_hg18_knownGene TxDb_Hsapiens_UCSC_hg19_knownGene TxDb_Mmusculus_UCSC_mm10_knownGene TxDb_Mmusculus_UCSC_mm9_knownGene TxDb_Rnorvegicus_UCSC_rn4_ensGene]; };
-  ChIPXpress = derive2 { name="ChIPXpress"; version="1.46.0"; sha256="042jc6vz44pcr7pm44byk8mc7vzf7w42nnms9ckd9ayzwb0w8q25"; depends=[affy biganalytics bigmemory Biobase ChIPXpressData frma GEOquery]; };
-  ChIPanalyser = derive2 { name="ChIPanalyser"; version="1.24.0"; sha256="1janbfc51pyrj89k10fmhxlx3zh8bscl83d0yj9pdpzkmsks248v"; depends=[BiocManager Biostrings BSgenome GenomeInfoDb GenomicRanges IRanges RColorBrewer RcppRoll ROCR rtracklayer S4Vectors]; };
-  ChIPexoQual = derive2 { name="ChIPexoQual"; version="1.26.0"; sha256="04dhkm8cq87x3c9f114z6q1pcw77xgs33rmhgzk4ajzxywhklq4j"; depends=[BiocParallel biovizBase broom data_table dplyr GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 hexbin IRanges RColorBrewer rmarkdown Rsamtools S4Vectors scales viridis]; };
-  ChIPpeakAnno = derive2 { name="ChIPpeakAnno"; version="3.36.1"; sha256="1jmg958v8ai9v3mpizj24nc0vsl564inndm0irflprs1ky90k8vl"; depends=[AnnotationDbi BiocGenerics biomaRt Biostrings DBI dplyr ensembldb GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 graph InteractionSet IRanges KEGGREST matrixStats multtest RBGL regioneR Rsamtools rtracklayer S4Vectors SummarizedExperiment VennDiagram]; };
-  ChIPseeker = derive2 { name="ChIPseeker"; version="1.38.0"; sha256="0bx85y5888w85miif73y0yd9j4kdmjn1cfck1xshnqnsrh7p3m50"; depends=[AnnotationDbi aplot BiocGenerics boot dplyr enrichplot GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 gplots gtools IRanges magrittr plotrix rtracklayer S4Vectors tibble TxDb_Hsapiens_UCSC_hg19_knownGene yulab_utils]; };
-  ChIPseqR = derive2 { name="ChIPseqR"; version="1.56.0"; sha256="1m1x2v2wzmnqnl55wy2ky4f8p4fyynk1ffz82m5rnbm3265j6whn"; depends=[BiocGenerics Biostrings fBasics GenomicRanges HilbertVis IRanges S4Vectors ShortRead timsac]; };
-  ChIPsim = derive2 { name="ChIPsim"; version="1.56.0"; sha256="0y5fy34rhxqbyhh27bkkzhgc49c2iy48qm4bggwzcwmrlcfh1ydx"; depends=[Biostrings IRanges ShortRead XVector]; };
-  ChemmineOB = derive2 { name="ChemmineOB"; version="1.40.0"; sha256="0mfajzwzldmra6g5kni5yw7m2n719456p1vd3hxx2r7l1phdjixi"; depends=[BH BiocGenerics Rcpp zlibbioc]; };
-  ChemmineR = derive2 { name="ChemmineR"; version="3.54.0"; sha256="1328mwmghflrvir1i3crlq8q36wq60x2an11saabg63hnx4paa81"; depends=[base64enc BH BiocGenerics DBI digest DT ggplot2 gridExtra jsonlite png Rcpp RCurl rjson rsvg stringi]; };
-  Chicago = derive2 { name="Chicago"; version="1.30.0"; sha256="1mcpx785ag0jcsh08df34hx3wp55zd1vggnl3fflkinb78178n38"; depends=[data_table Delaporte Hmisc MASS matrixStats]; };
-  ChromHeatMap = derive2 { name="ChromHeatMap"; version="1.56.0"; sha256="0zbpy4cxpgn6lcx413315jy00rmssdgk7rbyxr5sqraj82kamcbw"; depends=[annotate AnnotationDbi Biobase BiocGenerics GenomicRanges IRanges rtracklayer]; };
-  ChromSCape = derive2 { name="ChromSCape"; version="1.12.0"; sha256="1cgq33shlx105h8xcjif6vz4qw91r1c82fw26nnrpbl5z070vq3l"; depends=[batchelor BiocParallel colorRamps colourpicker ConsensusClusterPlus coop DelayedArray dplyr DT edgeR forcats fs GenomicRanges gggenes ggplot2 ggrepel gridExtra IRanges irlba jsonlite kableExtra Matrix matrixTests msigdbr plotly qs qualV Rcpp rlist Rsamtools rtracklayer Rtsne S4Vectors scater scran shiny shinycssloaders shinydashboard shinydashboardPlus shinyFiles shinyhelper shinyjs shinyWidgets SingleCellExperiment stringdist stringr SummarizedExperiment tibble tidyr umap viridis]; };
-  CircSeqAlignTk = derive2 { name="CircSeqAlignTk"; version="1.4.0"; sha256="0p129nsshb4xahicsyfbpc5w1v6n68xppfl39yxg61ndd15324rm"; depends=[BiocGenerics Biostrings dplyr ggplot2 IRanges magrittr Rbowtie2 Rhisat2 rlang Rsamtools S4Vectors ShortRead tidyr]; };
-  CiteFuse = derive2 { name="CiteFuse"; version="1.14.0"; sha256="1jymchrl107b50q6kn5kfa3js9c8s667p2y0zh2q4y21b6n3v3id"; depends=[compositions cowplot dbscan ggplot2 ggraph ggridges gridExtra igraph Matrix mixtools pheatmap randomForest Rcpp reshape2 rhdf5 rlang Rtsne S4Vectors scales scran SingleCellExperiment SummarizedExperiment uwot]; };
-  ClassifyR = derive2 { name="ClassifyR"; version="3.6.5"; sha256="1a5isn0hhmjp1a7jskwb1qg0lgaf17zlzc9rc60mzw0mixwmhqfi"; depends=[BiocParallel dplyr genefilter generics ggplot2 ggpubr ggupset MultiAssayExperiment ranger reshape2 rlang S4Vectors survival tidyr]; };
-  Clomial = derive2 { name="Clomial"; version="1.38.0"; sha256="1z4cv68cdvqx1z8n8wgr74pdrbgqcm968qk7l8dv0za0164ala23"; depends=[matrixStats permute]; };
-  CluMSID = derive2 { name="CluMSID"; version="1.18.0"; sha256="0iy53ccvwwgg58b16z0haw3yxcg62hfshx9dlkcxmr75i2v1zrpy"; depends=[ape Biobase dbscan GGally ggplot2 gplots MSnbase mzR network plotly RColorBrewer S4Vectors sna]; };
-  ClustIRR = derive2 { name="ClustIRR"; version="1.0.0"; sha256="1rxq6pqpfxghf7n8l4qcq605iss9axk168bb8y8ycwfixs42fk7m"; depends=[future future_apply igraph stringdist visNetwork]; };
-  ClusterJudge = derive2 { name="ClusterJudge"; version="1.24.0"; sha256="1g5r281dcqqr7rsk6xfj53fc9qqa15aiz4cxiyx92jq3a432kwl9"; depends=[httr infotheo jsonlite lattice latticeExtra]; };
-  ClusterSignificance = derive2 { name="ClusterSignificance"; version="1.30.0"; sha256="1jyw2b6m9zvzsvd82iq75ifqfdl5xxbi4xqx5wn99pqwj72y4094"; depends=[pracma princurve RColorBrewer scatterplot3d]; };
-  CoCiteStats = derive2 { name="CoCiteStats"; version="1.74.0"; sha256="18ddqwxj16wnwnvc187281a2vhxg63hm2rlq0dx0whzwmdrpm83l"; depends=[AnnotationDbi org_Hs_eg_db]; };
-  CoGAPS = derive2 { name="CoGAPS"; version="3.22.0"; sha256="0zsilwawwngnl5cahvcmvhgkcnjqplr3b4711zkjdyhalzs4hr95"; depends=[BH BiocParallel biomaRt cluster dplyr fgsea forcats ggplot2 gplots msigdbr RColorBrewer Rcpp rhdf5 S4Vectors SingleCellExperiment SummarizedExperiment]; };
-  CoSIA = derive2 { name="CoSIA"; version="1.2.0"; sha256="14d7l88346wkh4fj9y4f2lywfqbawz60z86f6wm2r2vh8zhcbk8i"; depends=[AnnotationDbi annotationTools biomaRt dplyr ExperimentHub ggplot2 homologene magrittr org_Ce_eg_db org_Dm_eg_db org_Dr_eg_db org_Hs_eg_db org_Mm_eg_db org_Rn_eg_db plotly RColorBrewer readr stringr tibble tidyr tidyselect]; };
-  Cogito = derive2 { name="Cogito"; version="1.8.0"; sha256="1c576f0hcsqva4vj6h1kgahl2srh11dlsmnpvcpmw9pjm3q0j1dd"; depends=[AnnotationDbi BiocManager entropy GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 jsonlite magrittr rmarkdown S4Vectors TxDb_Mmusculus_UCSC_mm9_knownGene]; };
-  ComPrAn = derive2 { name="ComPrAn"; version="1.10.0"; sha256="06waqsvxgp6aashqi74f66k0bpljm5x2xl7rmlbvzyyx51cd055k"; depends=[data_table dplyr DT forcats ggplot2 magrittr purrr RColorBrewer rio rlang scales shiny shinydashboard shinyjs stringr tibble tidyr VennDiagram]; };
-  ComplexHeatmap = derive2 { name="ComplexHeatmap"; version="2.18.0"; sha256="0zzp0kci5daffpyv56advdcs05pz3nmjn07bmm7r3hwpk0nr3fcf"; depends=[circlize clue codetools colorspace digest doParallel foreach GetoptLong GlobalOptions IRanges matrixStats png RColorBrewer]; };
-  CompoundDb = derive2 { name="CompoundDb"; version="1.6.0"; sha256="1fbh1wxrhsi759c5gh68grm4588vb2rgpvi5j891jlvi5wsm5g53"; depends=[AnnotationFilter Biobase BiocGenerics BiocParallel ChemmineR DBI dbplyr dplyr IRanges jsonlite MetaboCoreUtils MsCoreUtils ProtGenerics RSQLite S4Vectors Spectra tibble xml2]; };
-  ConsensusClusterPlus = derive2 { name="ConsensusClusterPlus"; version="1.66.0"; sha256="11xcz9b4mg3inz8c8f2vckgai67s740qjyynjim4ahf9zd0j7rxs"; depends=[ALL Biobase cluster]; };
-  CopyNumberPlots = derive2 { name="CopyNumberPlots"; version="1.18.0"; sha256="1sic65ws7bgww5zr56w9nan9wm60q238id6l0lhrzq6jadz6yc8s"; depends=[cn_mops GenomeInfoDb GenomicRanges IRanges karyoploteR regioneR rhdf5 Rsamtools SummarizedExperiment VariantAnnotation]; };
-  CoreGx = derive2 { name="CoreGx"; version="2.6.1"; sha256="16i8xq98vg8xgscwj0w9bsq68vjmhsvwwdw66kcphvf3jjfmn1rv"; depends=[bench Biobase BiocGenerics BiocParallel BumpyMatrix checkmate crayon data_table glue lsa MatrixGenerics MultiAssayExperiment piano rlang S4Vectors SummarizedExperiment]; };
-  Cormotif = derive2 { name="Cormotif"; version="1.48.0"; sha256="1abyr210zhl1nl3xi6ayqmyx454qrsqz9bkb8i05xg29yxyj3awv"; depends=[affy limma]; };
-  CoverageView = derive2 { name="CoverageView"; version="1.40.0"; sha256="1sj1vr84nsbygkh5mmp7zm21zzk4zcw3bwcvcazmy54zs553blpf"; depends=[GenomicAlignments GenomicRanges IRanges Rsamtools rtracklayer S4Vectors]; };
-  CrispRVariants = derive2 { name="CrispRVariants"; version="1.30.0"; sha256="1bsvl0sn2frfddvy32m8a1dh6p9vfa3q0kkl3jx0il1igl4q5dfw"; depends=[AnnotationDbi BiocParallel Biostrings GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 gridExtra IRanges reshape2 Rsamtools S4Vectors]; };
-  CuratedAtlasQueryR = derive2 { name="CuratedAtlasQueryR"; version="1.0.1"; sha256="0iqrf3fdimvldzsvm6yg2c6g5bk50hh2yihzcfawwxnr6y2r39yn"; depends=[assertthat BiocGenerics cli DBI dbplyr dplyr duckdb glue HDF5Array httr purrr rlang S4Vectors Seurat SeuratObject SingleCellExperiment stringr SummarizedExperiment tibble]; };
-  CyTOFpower = derive2 { name="CyTOFpower"; version="1.8.0"; sha256="0mv1467mbfa9k1dylbnls6ql2zi8ky1a9xqxjxih69d0ylpvbc9i"; depends=[CytoGLMM diffcyt dplyr DT ggplot2 magrittr rlang shiny shinyFeedback shinyjs shinyMatrix SummarizedExperiment tibble tidyr]; };
-  CytoDx = derive2 { name="CytoDx"; version="1.22.0"; sha256="18sb7jjdpdy6sl7snjg8qxwd1mlis9wlcyrbzd41x5nrljvb3sqd"; depends=[doParallel dplyr flowCore glmnet rpart rpart_plot]; };
-  CytoGLMM = derive2 { name="CytoGLMM"; version="1.10.0"; sha256="0fwjjhc2554qawnds3v75wycwhzinbnmq208k4mcmh6gpnkpsqdr"; depends=[BiocParallel caret cowplot doParallel dplyr factoextra flexmix ggplot2 ggrepel logging magrittr MASS Matrix mbest pheatmap RColorBrewer rlang stringr strucchange tibble tidyr]; };
-  CytoML = derive2 { name="CytoML"; version="2.14.0"; sha256="0wq9ganas6l2jw8bnajr7vwli35kykpgv2lca4qh79nfgxlicff9"; depends=[BH Biobase cpp11 cytolib data_table dplyr flowCore flowWorkspace ggcyto graph jsonlite openCyto RBGL Rgraphviz Rhdf5lib RProtoBufLib tibble XML yaml]; };
-  CytoPipeline = derive2 { name="CytoPipeline"; version="1.2.0"; sha256="14jnlglc9sd5sdrrl66vymjpww10ilq29ws6jc2gii19arxzdhl0"; depends=[BiocFileCache BiocParallel diagram flowAI flowCore ggcyto ggplot2 jsonlite PeacoQC rlang scales withr]; };
-  CytoPipelineGUI = derive2 { name="CytoPipelineGUI"; version="1.0.0"; sha256="09fr9830kwa3jrlr8m2svn4v68dn5p00d1i7gl8vm0xj36q6ii8q"; depends=[CytoPipeline flowCore ggplot2 plotly shiny]; };
-  DAMEfinder = derive2 { name="DAMEfinder"; version="1.14.0"; sha256="0mbm884dm30b4fwf3qr1w96j18dxdmr2bn11dw83hh0wrbhp8njm"; depends=[BiocGenerics Biostrings bumphunter cowplot GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 IRanges limma plyr readr reshape2 Rsamtools S4Vectors stringr SummarizedExperiment VariantAnnotation]; };
-  DAPAR = derive2 { name="DAPAR"; version="1.34.6"; sha256="1nv0zd88frq3m228i91xqvcfck189l3grbpzgzah6b5psf60wyy4"; depends=[AnnotationDbi apcluster Biobase cluster clusterProfiler cp4p DAPARdata dendextend diptest doParallel dplyr factoextra FactoMineR forcats foreach ggplot2 gplots graph highcharter igraph imp4p impute knitr limma lme4 Matrix Mfuzz MSnbase multcomp norm openxlsx org_Sc_sgd_db preprocessCore purrr RColorBrewer readxl reshape2 scales stringr tibble tidyr tidyverse vioplot visNetwork vsn]; };
-  DART = derive2 { name="DART"; version="1.50.0"; sha256="0730qa3viyhfgrl8p288isq4midmzb9nf8q60m5rrnk7maa2q8gf"; depends=[igraph]; };
-  DCATS = derive2 { name="DCATS"; version="1.0.0"; sha256="0m77g0xa4v7vxgcxzj2g0nchii7a5cilbxs2ijp5m56wa2chi000"; depends=[aod e1071 matrixStats MCMCpack robustbase]; };
-  DECIPHER = derive2 { name="DECIPHER"; version="2.30.0"; sha256="1ri8ldx3dqcpfvn3mz0022f77zi6ki04mh27qp132bbrjkj6zl79"; depends=[Biostrings DBI IRanges RSQLite S4Vectors XVector]; };
-  DEFormats = derive2 { name="DEFormats"; version="1.30.0"; sha256="138kcpk6mfk7rw3xnlhvkrcb3nlpq0j2pgkhhmqnglvl1rbipf2f"; depends=[checkmate data_table DESeq2 edgeR GenomicRanges S4Vectors SummarizedExperiment]; };
-  DEGraph = derive2 { name="DEGraph"; version="1.54.0"; sha256="1cxyh9xsf1w4f1vk63vpxz3kgbrhb6xfrzj2s4vxb751621ybf57"; depends=[graph KEGGgraph lattice mvtnorm NCIgraph R_methodsS3 R_utils RBGL Rgraphviz rrcov]; };
-  DEGreport = derive2 { name="DEGreport"; version="1.38.5"; sha256="0s0d40ac1da73w7j96lb20wchgs4c2svfrafsgi9mx5hiswfz25z"; depends=[Biobase BiocGenerics broom circlize cluster ComplexHeatmap ConsensusClusterPlus cowplot dendextend DESeq2 dplyr edgeR ggdendro ggplot2 ggrepel knitr logging magrittr psych RColorBrewer reshape rlang S4Vectors scales stringi stringr SummarizedExperiment tibble tidyr]; };
-  DEGseq = derive2 { name="DEGseq"; version="1.56.1"; sha256="0yk5shwp78s01570rd08w3hpdhhj9lnq37rhy6rxxpj696srri4j"; depends=[qvalue]; };
-  DELocal = derive2 { name="DELocal"; version="1.2.0"; sha256="1hghgqb3ipbb7kd21k2xinbwmzcgdj0ys8s5qn98lkm4cqjszvq7"; depends=[DESeq2 dplyr ggplot2 limma matrixStats reshape2 SummarizedExperiment]; };
-  DEP = derive2 { name="DEP"; version="1.24.0"; sha256="1c5xj1w1gqginp5m4n4pbfkp2f5mqmc96l6d43agvam9g626r4b5"; depends=[assertthat circlize cluster ComplexHeatmap dplyr DT fdrtool ggplot2 ggrepel gridExtra imputeLCMD limma MSnbase purrr RColorBrewer readr rmarkdown shiny shinydashboard SummarizedExperiment tibble tidyr vsn]; };
-  DEScan2 = derive2 { name="DEScan2"; version="1.22.0"; sha256="0nzmg43vczv0dg3jpms0xw2lj7jw44r0gicm13fdikb9859iiraj"; depends=[BiocGenerics BiocParallel ChIPpeakAnno data_table DelayedArray GenomeInfoDb GenomicAlignments GenomicRanges glue IRanges plyr Rcpp RcppArmadillo rtracklayer S4Vectors SummarizedExperiment]; };
-  DESeq2 = derive2 { name="DESeq2"; version="1.42.1"; sha256="1s104b9k45b7kjrk56yw2yi4gi716nkcwnpqj4vj9w17xsb5m6zp"; depends=[Biobase BiocGenerics BiocParallel GenomicRanges ggplot2 IRanges locfit MatrixGenerics matrixStats Rcpp RcppArmadillo S4Vectors SummarizedExperiment]; };
-  DESpace = derive2 { name="DESpace"; version="1.2.1"; sha256="1397wn7wsbmyiz73q2vjwhjz3q8sxba4psd656dvk22095k3grbz"; depends=[assertthat BiocGenerics BiocParallel cowplot data_table dplyr edgeR ggforce ggnewscale ggplot2 ggpubr limma Matrix patchwork S4Vectors scales SpatialExperiment SummarizedExperiment]; };
-  DEWSeq = derive2 { name="DEWSeq"; version="1.16.2"; sha256="0qhz616m69n72g6781zzn7ykbd03d8irnvcd3kg0aapzn725icy1"; depends=[BiocGenerics BiocParallel data_table DESeq2 GenomeInfoDb GenomicRanges R_utils S4Vectors SummarizedExperiment]; };
-  DEXSeq = derive2 { name="DEXSeq"; version="1.48.0"; sha256="1q59agaidf0nkq599iz54a253sjxzillj39za86ihfj5xws24f8w"; depends=[AnnotationDbi Biobase BiocGenerics BiocParallel biomaRt DESeq2 genefilter geneplotter GenomicRanges hwriter IRanges RColorBrewer Rsamtools S4Vectors statmod stringr SummarizedExperiment]; };
-  DEqMS = derive2 { name="DEqMS"; version="1.20.0"; sha256="1r4069jm5xjwgh7x4ysdmsablp38jbjj7yq1vab3r4zh1bpirjw5"; depends=[ggplot2 limma matrixStats]; };
-  DEsingle = derive2 { name="DEsingle"; version="1.22.0"; sha256="0bfagw0nmzr7rfki2z78wgl5ikwzc143d3qlbcraci63lbm6ywb9"; depends=[bbmle BiocParallel gamlss MASS Matrix maxLik pscl VGAM]; };
-  DEsubs = derive2 { name="DEsubs"; version="1.28.0"; sha256="1bdv9fbqgw9q5xc16xlac04j1xcmlqkp2703dg7cr9acy2dgh5q8"; depends=[circlize DESeq2 EBSeq edgeR ggplot2 graph igraph jsonlite limma locfit Matrix NBPSeq pheatmap RBGL]; };
-  DExMA = derive2 { name="DExMA"; version="1.10.7"; sha256="12nvk3cfsxhkma9ypyndyd4i493x7h66nrx0lvniqs599a9x67yw"; depends=[Biobase bnstruct DExMAdata GEOquery impute limma pheatmap plyr RColorBrewer scales snpStats sva swamp]; };
-  DFP = derive2 { name="DFP"; version="1.60.0"; sha256="1mnf92lg5daz4rf6ss2b3f923ybs6d3xyjz8plg0h8yfgm97yd0x"; depends=[Biobase]; };
-  DIAlignR = derive2 { name="DIAlignR"; version="2.10.0"; sha256="1xqyksb8m67rwfxrz7gx5vjm0787ci94djpl236xf73a1xjp6xbq"; depends=[ape bit64 data_table DBI dplyr ggplot2 magrittr mzR phangorn pracma Rcpp RcppEigen reticulate rlang RMSNumpress RSQLite signal tidyr zoo]; };
-  DMCFB = derive2 { name="DMCFB"; version="1.16.1"; sha256="0j00hnb30anbf7lh3qiv9d7ffxs4ipjdg3w1g0pmqigp1n5ig9vw"; depends=[arm benchmarkme BiocParallel data_table fastDummies GenomicRanges IRanges MASS matrixStats rtracklayer S4Vectors speedglm SummarizedExperiment tibble]; };
-  DMCHMM = derive2 { name="DMCHMM"; version="1.24.0"; sha256="1kw1n6zfxiafmvk1m0ap8jwp1ffp719j8lqf0dgpkjnj4apkl75f"; depends=[BiocParallel calibrate fdrtool GenomicRanges IRanges multcomp rtracklayer S4Vectors SummarizedExperiment]; };
-  DMRScan = derive2 { name="DMRScan"; version="1.24.0"; sha256="04w30bxgpxhm40sal9np23vlzh4x7pihnnmzdk0lkbm1z7a60mbd"; depends=[GenomeInfoDb GenomicRanges IRanges MASS Matrix mvtnorm RcppRoll]; };
-  DMRcaller = derive2 { name="DMRcaller"; version="1.34.0"; sha256="1zw9as8dmcadjpdh59a5ap7bli8jp1cg1rafmlpkmiibwdgpbnfm"; depends=[betareg GenomicRanges IRanges Rcpp RcppRoll S4Vectors]; };
-  DMRcate = derive2 { name="DMRcate"; version="2.16.1"; sha256="19dxpmjjg8v2l71yjjlfj0ycvmhi9rk04q59nwjcp0aw8nvk6l3w"; depends=[biomaRt bsseq edgeR ExperimentHub GenomeInfoDb GenomicRanges Gviz IRanges limma minfi missMethyl plyr S4Vectors SummarizedExperiment]; };
-  DNABarcodeCompatibility = derive2 { name="DNABarcodeCompatibility"; version="1.18.0"; sha256="0cj5d21l7zpp4sbkpxgph4q3n1pq3klg9xn8kn6hlm2h6i3j39g7"; depends=[DNABarcodes dplyr numbers purrr stringr tidyr]; };
-  DNABarcodes = derive2 { name="DNABarcodes"; version="1.32.0"; sha256="12x4k55kshvwyzl83zkgkp0ylryr8wd3kz44ngp60k4pkwhkl9h9"; depends=[BH Matrix Rcpp]; };
-  DNAcopy = derive2 { name="DNAcopy"; version="1.76.0"; sha256="0hyjin75v8l2a8qymsd6rjb8m7svv2q07s6z1dllqag09wja1yfz"; depends=[]; };
-  DNAfusion = derive2 { name="DNAfusion"; version="1.4.0"; sha256="07921k8bjca4m0wfrn8q33pfvj5ivvmq6bvkwl1aq1n642k12zk8"; depends=[bamsignals BiocBaseUtils BiocGenerics GenomicAlignments GenomicFeatures GenomicRanges IRanges Rsamtools S4Vectors TxDb_Hsapiens_UCSC_hg38_knownGene]; };
-  DNAshapeR = derive2 { name="DNAshapeR"; version="1.30.0"; sha256="0jlfzq2na3hymqsi5ranj2aif7y48ry3zv7h8m9nzzq7sfr0vmnk"; depends=[Biostrings fields GenomicRanges Rcpp]; };
-  DOSE = derive2 { name="DOSE"; version="3.28.2"; sha256="0kk4l8cxyvcq4cjjnb59zajf4ci0igml13582qqn8123cqkbf8pf"; depends=[AnnotationDbi BiocParallel fgsea ggplot2 GOSemSim HDO_db qvalue reshape2 yulab_utils]; };
-  DRIMSeq = derive2 { name="DRIMSeq"; version="1.30.0"; sha256="1nf044cfqywfnglm081xbppamva87z2j2xz0f51z8mra11apj6i6"; depends=[BiocGenerics BiocParallel edgeR GenomicRanges ggplot2 IRanges limma MASS reshape2 S4Vectors]; };
-  DSS = derive2 { name="DSS"; version="2.50.1"; sha256="1wjd428kz2w3n4ak13h3i1yknm03fh911jrcy2hkcip4z5cssla0"; depends=[Biobase BiocParallel bsseq]; };
-  DTA = derive2 { name="DTA"; version="2.48.0"; sha256="1ymav0m09cmp54pl5ik67lwhn8k5fwvmplwvs2vy9falyqwrp1wj"; depends=[LSD scatterplot3d]; };
-  DaMiRseq = derive2 { name="DaMiRseq"; version="2.14.0"; sha256="1mrslrvjf792dzajas4gfq2fir646lknrdg1wvhz513ww645kp38"; depends=[arm caret corrplot DESeq2 e1071 EDASeq edgeR FactoMineR FSelector ggplot2 Hmisc ineq kknn limma lubridate MASS pheatmap pls plsVarSel plyr randomForest RColorBrewer reshape2 RSNNS SummarizedExperiment sva]; };
-  DeMAND = derive2 { name="DeMAND"; version="1.32.0"; sha256="05pczvfzakpbas3xh7igm1w27xf56mmpq72mav4pi5lhdj30w2hc"; depends=[KernSmooth]; };
-  DeMixT = derive2 { name="DeMixT"; version="1.18.0"; sha256="0agnak3x4zm5qfp220wdg0w68l46m5awsxrjfh025mqk6mn6vvbn"; depends=[base64enc dendextend DSS ggplot2 KernSmooth knitr matrixcalc matrixStats psych Rcpp rmarkdown SummarizedExperiment sva truncdist]; };
-  DeconRNASeq = derive2 { name="DeconRNASeq"; version="1.44.0"; sha256="1k5xrx97w9g0jfvjzawyfsqyz2fj9r463nj849djxgmcw8vp53vg"; depends=[ggplot2 limSolve pcaMethods]; };
-  DeepBlueR = derive2 { name="DeepBlueR"; version="1.27.0"; sha256="03v1ag250zq8wj3fxnsg2ii8l93vq6dg9dxqyiqdjnbvxc0y26xg"; depends=[data_table diffr dplyr filehash foreach GenomeInfoDb GenomicRanges R_utils RCurl rjson rtracklayer settings stringr withr XML]; };
-  DeepPINCS = derive2 { name="DeepPINCS"; version="1.10.0"; sha256="0xnqqv37h1k5ffhicqgxnqlwhi2cj8gakkgp04hlby4cjsfhd4a2"; depends=[CatEncoders keras matlab PRROC purrr rcdk reticulate stringdist tensorflow tokenizers ttgsea webchem]; };
-  DegNorm = derive2 { name="DegNorm"; version="1.12.0"; sha256="1d2pdcfz4i94125cc35r0xsd1px718wh1910ixs0zlyzy032vpnz"; depends=[data_table doParallel foreach GenomicAlignments GenomicFeatures GenomicRanges ggplot2 heatmaply IRanges plotly plyr Rcpp RcppArmadillo Rsamtools S4Vectors viridis]; };
-  DelayedArray = derive2 { name="DelayedArray"; version="0.28.0"; sha256="0mf30vdns64mpm11zcz9qx6nh5clr6krjvcmr7dqv2xg5ig0a1f7"; depends=[BiocGenerics IRanges Matrix MatrixGenerics S4Arrays S4Vectors SparseArray]; };
-  DelayedDataFrame = derive2 { name="DelayedDataFrame"; version="1.18.0"; sha256="0hz1p2j3xqy08a6ja3sx4vp7yxbhxh29arh0ymnnvqnpf64lhxnb"; depends=[BiocGenerics DelayedArray S4Vectors]; };
-  DelayedMatrixStats = derive2 { name="DelayedMatrixStats"; version="1.24.0"; sha256="18r5rfx46lac0kaakha4gqs4pj8vb39z0908gpclmp3ajca4hzb1"; depends=[DelayedArray IRanges Matrix MatrixGenerics S4Vectors sparseMatrixStats]; };
-  DelayedRandomArray = derive2 { name="DelayedRandomArray"; version="1.10.0"; sha256="0ls464l4y8hzgxrjh1rxgzr3hzkc3m710m970lz83iyf7a6rsb6z"; depends=[BH DelayedArray dqrng Rcpp]; };
-  DelayedTensor = derive2 { name="DelayedTensor"; version="1.8.0"; sha256="0fjvgvix0v5z8zkd0nzyvifkgq9p8706pk526ph42fsp7pfawxjf"; depends=[BiocSingular DelayedArray DelayedRandomArray einsum HDF5Array irlba Matrix rTensor]; };
-  DepInfeR = derive2 { name="DepInfeR"; version="1.6.0"; sha256="0ad9q2k7vv11893kx8dxrx4ibixw5yfcyh7cxcf3x197gsik78mq"; depends=[BiocParallel glmnet matrixStats]; };
-  DepecheR = derive2 { name="DepecheR"; version="1.18.0"; sha256="1b3c1wg5xnhh4bdcjls26j6nsp0vx1g5y3grqv7x4ds01vmh3q2w"; depends=[beanplot collapse doSNOW dplyr FNN foreach ggplot2 gmodels gplots MASS matrixStats mixOmics moments Rcpp RcppEigen reshape2 robustbase viridis]; };
-  DiffBind = derive2 { name="DiffBind"; version="3.12.0"; sha256="1nlcx4fl1cpcg38cn9p55f75bv6pcg6h2jv4z94g2b7g1gwjd686"; depends=[amap apeglm ashr BiocParallel DESeq2 dplyr GenomicAlignments GenomicRanges ggplot2 ggrepel gplots GreyListChIP IRanges lattice limma locfit RColorBrewer Rcpp Rhtslib Rsamtools S4Vectors SummarizedExperiment systemPipeR]; };
-  DiffLogo = derive2 { name="DiffLogo"; version="2.26.0"; sha256="1il66knfk9b6a0n4zray6zzm49xzywi1snzb88d04mn0qi387nik"; depends=[cba]; };
-  DifferentialRegulation = derive2 { name="DifferentialRegulation"; version="2.0.3"; sha256="04dg67z5s37618sip5wfawvhp3lavnnids69c0ff5l2bh7v5gm43"; depends=[BANDITS data_table doParallel doRNG foreach ggplot2 gridExtra MASS Matrix Rcpp RcppArmadillo SingleCellExperiment SummarizedExperiment tximport]; };
-  Dino = derive2 { name="Dino"; version="1.8.0"; sha256="1px8ahrw3p7p21nmkjk0m3d0msifnsmxz17p4qqfjbfyx8j8y9yf"; depends=[BiocParallel BiocSingular Matrix matrixStats S4Vectors scran Seurat SingleCellExperiment SummarizedExperiment]; };
-  Director = derive2 { name="Director"; version="1.28.0"; sha256="0q32s05xjksjbawd5kdh8hdhm0wdr9pg7crk0ip56f549rm7wqir"; depends=[htmltools]; };
-  DirichletMultinomial = derive2 { name="DirichletMultinomial"; version="1.44.0"; sha256="1rvic3acrf4qdag423f8xa6bnqrqr31vj7k4l7a5kzf1fjm359wy"; depends=[BiocGenerics IRanges S4Vectors]; };
-  DiscoRhythm = derive2 { name="DiscoRhythm"; version="1.18.0"; sha256="0vv2bhv081qm30iwf7mb23mzyxkmpr7qpxji8568jhxiqxx8xsyg"; depends=[BiocGenerics BiocStyle broom data_table dplyr DT ggExtra ggplot2 gridExtra heatmaply kableExtra knitr magick matrixStats matrixTests MetaCycle plotly reshape2 rmarkdown S4Vectors shiny shinyBS shinycssloaders shinydashboard shinyjs SummarizedExperiment UpSetR VennDiagram viridis zip]; };
-  DominoEffect = derive2 { name="DominoEffect"; version="1.22.0"; sha256="00a7rc3q1pk626n5bk1f6ry9b7m44f5g5r29l2v8w7s8r3zfqvzh"; depends=[AnnotationDbi biomaRt Biostrings data_table GenomeInfoDb GenomicRanges IRanges SummarizedExperiment VariantAnnotation]; };
-  Doscheda = derive2 { name="Doscheda"; version="1.24.0"; sha256="1hdqh4br4r57haw2zm4svv2akh0adfcb4lx2zichj0iv88sjnzl1"; depends=[affy calibrate corrgram drc DT ggplot2 gridExtra httr jsonlite limma matrixStats prodlim readxl reshape2 shiny shinydashboard stringr vsn]; };
-  DriverNet = derive2 { name="DriverNet"; version="1.42.0"; sha256="1wna2jpilb3lhrz2f5py32ixm6wmda68a0abkc375dl92mxivfpf"; depends=[]; };
-  DropletUtils = derive2 { name="DropletUtils"; version="1.22.0"; sha256="0bnxk72a0ygh4nqwyjzzi79zc4md8pwk0pr6jn43in0wdk054wf6"; depends=[beachmat BH BiocGenerics BiocParallel DelayedArray DelayedMatrixStats dqrng edgeR GenomicRanges HDF5Array IRanges Matrix R_utils Rcpp rhdf5 Rhdf5lib S4Vectors scuttle SingleCellExperiment SummarizedExperiment]; };
-  DrugVsDisease = derive2 { name="DrugVsDisease"; version="2.44.0"; sha256="1g9i9r5bxvq1kk7vqx5jv4b61svxc1w0kh0fkjj3hbv8b1rh7aar"; depends=[affy annotate ArrayExpress BiocGenerics biomaRt cMap2data DrugVsDiseasedata GEOquery hgu133a_db hgu133a2_db hgu133plus2_db limma qvalue RUnit xtable]; };
-  Dune = derive2 { name="Dune"; version="1.14.0"; sha256="1k0lp6sv8sml55dmhlzs4jnwvglc6dba7sn7w4j5h96d5bzav184"; depends=[aricode BiocParallel dplyr gganimate ggplot2 magrittr purrr RColorBrewer SummarizedExperiment tidyr]; };
-  DynDoc = derive2 { name="DynDoc"; version="1.80.0"; sha256="0d2axaszy7rpi47yg4vhd1z70m53nx40znapgg5pq6ahrx7if5f1"; depends=[]; };
-  EBImage = derive2 { name="EBImage"; version="4.44.0"; sha256="0jdi5cn4v5ll43xb3l6sy062snd5p9n2nrryc5aqd2ki18mdmghy"; depends=[abind BiocGenerics fftwtools htmltools htmlwidgets jpeg locfit png RCurl tiff]; };
-  EBSEA = derive2 { name="EBSEA"; version="1.30.0"; sha256="1yasczqxx8vvh2h3nlnx99y0yyyyvv4qyfahs9c90yl5gk9xhwx3"; depends=[DESeq2 EmpiricalBrownsMethod]; };
-  EBSeq = derive2 { name="EBSeq"; version="2.0.0"; sha256="07x9fh8akgiixsv1xddkvs2q8xxfsibas01kdx0kw6wak3nihn4w"; depends=[BH blockmodeling gplots Rcpp RcppEigen testthat]; };
-  EBSeqHMM = derive2 { name="EBSeqHMM"; version="1.35.0"; sha256="1vgpda6h9caq67iqdd88mrhq8502jc056zf8fgwfgd8z9cayhsdn"; depends=[EBSeq]; };
-  EBarrays = derive2 { name="EBarrays"; version="2.66.0"; sha256="1m8dy1lmx9m8p5jjk0i7yllb4pvq77kynszk1nz8cc1niz6xs47q"; depends=[Biobase cluster lattice]; };
-  EBcoexpress = derive2 { name="EBcoexpress"; version="1.46.0"; sha256="0d8y193wpg8zi627bwl6dqbk3fdclfb8v9vsx9c0d6r1qldyrvqr"; depends=[EBarrays mclust minqa]; };
-  EDASeq = derive2 { name="EDASeq"; version="2.36.0"; sha256="0xvi5mynkf1n74bn2k6gxmyhp1piwzsljd37biibdfzy14r1ir08"; depends=[AnnotationDbi aroma_light Biobase BiocGenerics BiocManager biomaRt Biostrings GenomicFeatures GenomicRanges IRanges Rsamtools ShortRead]; };
-  EDIRquery = derive2 { name="EDIRquery"; version="1.2.0"; sha256="1qavmcr2a59b9bxqvvbqj37pr3iq7xmal51r7zc9cr4ya52ihqm7"; depends=[GenomicRanges InteractionSet readr tibble tictoc]; };
-  EGAD = derive2 { name="EGAD"; version="1.30.0"; sha256="0j9vh489mrg1vl8hb8imppi1x5p0lmys1xi445x2l1ar93fr6f55"; depends=[Biobase GEOquery gplots igraph impute limma MASS plyr RColorBrewer RCurl zoo]; };
-  EGSEA = derive2 { name="EGSEA"; version="1.30.1"; sha256="1wvj51xfbr38lj7ypphy274f9jybs6ywjknczfxrbsaiq5awvkab"; depends=[AnnotationDbi Biobase DT edgeR EGSEAdata gage ggplot2 globaltest gplots GSVA HTMLUtils htmlwidgets hwriter limma metap org_Hs_eg_db org_Mm_eg_db org_Rn_eg_db PADOG pathview plotly RColorBrewer safe stringi topGO]; };
-  ELMER = derive2 { name="ELMER"; version="2.26.0"; sha256="0xx2hh4jj2bg951agf90s4a4p3i5qbmrysn6h0dy5269vclzwcwh"; depends=[biomaRt circlize ComplexHeatmap DelayedArray doParallel downloader dplyr ELMER_data GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 ggpubr ggrepel gridExtra Gviz IRanges lattice magrittr Matrix MultiAssayExperiment plotly plyr progress purrr readr reshape reshape2 rmarkdown rtracklayer rvest S4Vectors scales stringr SummarizedExperiment TCGAbiolinks tibble tidyr xml2]; };
-  EMDomics = derive2 { name="EMDomics"; version="2.32.0"; sha256="152rhw499kkv8pzl4i5d0zmkprjzkqj4n36fxsq6n6b5kxigp56j"; depends=[BiocParallel CDFt emdist ggplot2 matrixStats preprocessCore]; };
-  ENmix = derive2 { name="ENmix"; version="1.38.01"; sha256="1wh9lri9dp3904c2n6562z7p9gqx39dmag55imx8zrqnayxamc03"; depends=[AnnotationHub Biobase doParallel dynamicTreeCut ExperimentHub foreach genefilter geneplotter gplots gtools illuminaio impute IRanges irlba matrixStats minfi quadprog RPMM S4Vectors SummarizedExperiment]; };
-  ERSSA = derive2 { name="ERSSA"; version="1.20.0"; sha256="1ipzxlv454nykff3cn84fp7awv1iv92hb227570rn16kqj8j0pln"; depends=[apeglm BiocParallel DESeq2 edgeR ggplot2 plyr RColorBrewer]; };
-  EWCE = derive2 { name="EWCE"; version="1.10.2"; sha256="0gnmq9f58idw9jlcyqfri98kdm0jqi3gmqzc90bqda49mj34ynn7"; depends=[BiocParallel data_table DelayedArray dplyr ewceData ggplot2 HGNChelper limma Matrix orthogene reshape2 RNOmni SingleCellExperiment stringr SummarizedExperiment]; };
-  EmpiricalBrownsMethod = derive2 { name="EmpiricalBrownsMethod"; version="1.30.0"; sha256="03rs0i1m4qrjmv1xscwa6va7vyixghgbrwsbmnj5ri5bcwppjv7g"; depends=[]; };
-  EnMCB = derive2 { name="EnMCB"; version="1.14.0"; sha256="18xb943r7szyrgfn8dcq9ajfp465vsz0l32sdy1wclkb9i77jmr7"; depends=[BiocFileCache boot e1071 ggplot2 glmnet igraph Matrix mboost rms survival survivalROC survivalsvm]; };
-  EnhancedVolcano = derive2 { name="EnhancedVolcano"; version="1.20.0"; sha256="097w3957m47m03iy8xc1m7pdgm3qy0kzqbllic8pd79qglrla802"; depends=[ggplot2 ggrepel]; };
-  EnrichedHeatmap = derive2 { name="EnrichedHeatmap"; version="1.32.0"; sha256="0j87x26qimsx4gi311bm1g9bldwq9r4z3aflxf8p91zlavjbv8zp"; depends=[circlize ComplexHeatmap GenomicRanges GetoptLong IRanges locfit matrixStats Rcpp]; };
-  EnrichmentBrowser = derive2 { name="EnrichmentBrowser"; version="2.32.0"; sha256="1lvk6l9phsxsyhbdq389yj4x4vx0p5yq0nv59i02mvj6cd4n1yq4"; depends=[AnnotationDbi BiocFileCache BiocManager edgeR GO_db graph graphite GSEABase hwriter KEGGgraph KEGGREST limma pathview Rgraphviz S4Vectors safe SPIA SummarizedExperiment]; };
-  EpiCompare = derive2 { name="EpiCompare"; version="1.6.7"; sha256="1vaxxikfvmi5n8s80df7sb2jqdvc8q66ybw8hshp79f98aiczfgc"; depends=[AnnotationHub BiocGenerics BRGenomics ChIPseeker data_table downloadthis genomation GenomeInfoDb GenomicRanges ggplot2 htmltools IRanges plotly reshape2 rmarkdown rtracklayer stringr]; };
-  EpiDISH = derive2 { name="EpiDISH"; version="2.18.0"; sha256="170ym3y6gd1kxghz2g5ynvgi1wrxx87b568cjcvzidpqkrkg87s6"; depends=[e1071 locfdr MASS Matrix matrixStats quadprog stringr]; };
-  EpiMix = derive2 { name="EpiMix"; version="1.4.0"; sha256="1yrhc4nk95racnddxfyp98v543hdakqmiy9z9a83hfdr8bln8hq1"; depends=[AnnotationDbi AnnotationHub Biobase biomaRt data_table doParallel doSNOW downloader dplyr ELMER_data EpiMix_data ExperimentHub foreach GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 impute IRanges limma plyr progress R_matlab RColorBrewer RCurl rlang RPMM S4Vectors SummarizedExperiment tibble tidyr]; };
-  EpiTxDb = derive2 { name="EpiTxDb"; version="1.14.1"; sha256="0ql7qwk4hw1gv66n64ygj0yvinab42dhcacczcgb7mrwiwsmyhmd"; depends=[AnnotationDbi BiocFileCache BiocGenerics Biostrings curl DBI GenomeInfoDb GenomicFeatures GenomicRanges httr IRanges Modstrings RSQLite S4Vectors tRNAdbImport xml2]; };
-  EventPointer = derive2 { name="EventPointer"; version="3.10.0"; sha256="15v2dbbllsy33hypsgcwcldm7m0bf282l4pwfsvm14v8mv4nv7p4"; depends=[abind affxparser Biostrings BSgenome cobs doParallel fgsea foreach GenomeInfoDb GenomicFeatures GenomicRanges glmnet graph igraph IRanges iterators limma lpSolve MASS Matrix matrixStats nnls poibin prodlim qvalue RBGL rhdf5 S4Vectors SGSeq speedglm stringr SummarizedExperiment tximport]; };
-  ExCluster = derive2 { name="ExCluster"; version="1.20.0"; sha256="0wfyfl4bvh6v993w76jxaicnsdvllhcnjv0z93ljlimj988mpxdl"; depends=[GenomicRanges IRanges matrixStats Rsubread rtracklayer]; };
-  ExiMiR = derive2 { name="ExiMiR"; version="2.44.0"; sha256="0wk6wz123590b4mf0kf7g3cf0mkb74hhiwpqgsywc2sgs75n2b8h"; depends=[affy affyio Biobase limma preprocessCore]; };
-  ExperimentHub = derive2 { name="ExperimentHub"; version="2.10.0"; sha256="1prl24sg5l142155z3iaxrvig2wv2xqajq02nj30jjjih4p4936w"; depends=[AnnotationHub BiocFileCache BiocGenerics BiocManager rappdirs S4Vectors]; };
-  ExperimentHubData = derive2 { name="ExperimentHubData"; version="1.28.0"; sha256="0msg3wpz1ppvwc4dsm9bz9h4y4hz67xr1xwp4vv4100sg0i5v9jn"; depends=[AnnotationHubData BiocGenerics BiocManager curl DBI ExperimentHub httr S4Vectors]; };
-  ExperimentSubset = derive2 { name="ExperimentSubset"; version="1.12.0"; sha256="0andnybl0yfg53v4j865rjjy1s9l3hnwvkapdz0ixmi87bwxnshw"; depends=[Matrix S4Vectors SingleCellExperiment SpatialExperiment SummarizedExperiment TreeSummarizedExperiment]; };
-  ExploreModelMatrix = derive2 { name="ExploreModelMatrix"; version="1.14.0"; sha256="131ic20k6x27pziy3gdvjmrhdsxrslas6a6z4qwhjqg4ff8vz4r3"; depends=[cowplot dplyr DT ggplot2 limma magrittr MASS rintrojs S4Vectors scales shiny shinydashboard shinyjs tibble tidyr]; };
-  ExpressionAtlas = derive2 { name="ExpressionAtlas"; version="1.30.0"; sha256="1rrzz4m5ldawmd70j6cx6ihca6blkjixif1hdyfb475d0kbqwshh"; depends=[Biobase BiocStyle httr jsonlite limma RCurl S4Vectors SummarizedExperiment XML xml2]; };
-  FEAST = derive2 { name="FEAST"; version="1.10.0"; sha256="1makgf3djjl0k0wz26krgwghk829xly04kqa230kr212ch0z5r76"; depends=[BiocParallel irlba matrixStats mclust SC3 SingleCellExperiment SummarizedExperiment TSCAN]; };
-  FELLA = derive2 { name="FELLA"; version="1.22.0"; sha256="0dmjv7yv7fxh3yssdpfmq4kkh9lhh7lmxaxky1klxmh26x7c0972"; depends=[igraph KEGGREST Matrix plyr]; };
-  FGNet = derive2 { name="FGNet"; version="3.36.0"; sha256="1s8j49mzr1ljy8g3ph17v0pkrdkj9sm3292dhm2y6adac8fhdkhp"; depends=[hwriter igraph plotrix png R_utils RColorBrewer reshape2 XML]; };
-  FISHalyseR = derive2 { name="FISHalyseR"; version="1.36.0"; sha256="1y8gsgd0jzc98mhnrx1xwxpqsdwm43l13fr9c7nxrh6c90rxq6i7"; depends=[abind EBImage]; };
-  FLAMES = derive2 { name="FLAMES"; version="1.8.0"; sha256="0937zag0h4bvpapld267s5gz36h8zgjrgvbng9m7czdd8w6064ns"; depends=[bambu basilisk BiocGenerics Biostrings circlize ComplexHeatmap cowplot dplyr DropletUtils future GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggbio ggplot2 gridExtra igraph jsonlite magrittr Matrix MultiAssayExperiment RColorBrewer Rcpp reticulate Rhtslib Rsamtools rtracklayer S4Vectors scater scran scuttle SingleCellExperiment stringr SummarizedExperiment tidyr withr zlibbioc]; };
-  FRASER = derive2 { name="FRASER"; version="1.14.1"; sha256="13s3pwsh3fb4ym5q29fq81cl6jin3gh59pq9gh5crpqxpr6aij9w"; depends=[AnnotationDbi BBmisc Biobase BiocGenerics BiocParallel biomaRt BSgenome cowplot data_table DelayedArray DelayedMatrixStats extraDistr generics GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 ggrepel HDF5Array IRanges matrixStats OUTRIDER pcaMethods pheatmap plotly PRROC R_utils RColorBrewer Rcpp RcppArmadillo rhdf5 Rsamtools Rsubread S4Vectors SummarizedExperiment tibble VGAM]; };
-  FRGEpistasis = derive2 { name="FRGEpistasis"; version="1.38.0"; sha256="1rmr91916v5x3c2k3cl4kpzicgrqrb62ws355w4k3gnldki84c72"; depends=[fda MASS]; };
-  FamAgg = derive2 { name="FamAgg"; version="1.30.0"; sha256="10khlziwvizhcw35ja41694m89nqbihfxazw0dka1xdwdz17fj8x"; depends=[BiocGenerics gap igraph kinship2 Matrix survey]; };
-  FastqCleaner = derive2 { name="FastqCleaner"; version="1.20.0"; sha256="0v672v07591zwd48x1qbnrjg62xs0kldhi88vyi8f1ladcnk7zl4"; depends=[Biostrings DT htmltools IRanges Rcpp S4Vectors shiny shinyBS ShortRead]; };
-  FeatSeekR = derive2 { name="FeatSeekR"; version="1.2.0"; sha256="0nxp961sbp43qnlyzh7ln4cixzr652ixngjqbl6zb8dc74hpmbaf"; depends=[MASS pheatmap pracma SummarizedExperiment]; };
-  FilterFFPE = derive2 { name="FilterFFPE"; version="1.12.0"; sha256="0qx529j65d47xz30zw9l671359v0cdag37692zg7v4g6pmzdz0fh"; depends=[doParallel foreach GenomicRanges IRanges Rsamtools S4Vectors]; };
-  FindIT2 = derive2 { name="FindIT2"; version="1.8.0"; sha256="1zhc8lwi1yasz1iz5l47i0cqp0jrb8l7dii43v6arc9ay4mfa7w7"; depends=[BiocGenerics BiocParallel dplyr GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 ggrepel glmnet IRanges MultiAssayExperiment patchwork progress purrr qvalue rlang rtracklayer S4Vectors stringr SummarizedExperiment tibble tidyr withr]; };
-  FitHiC = derive2 { name="FitHiC"; version="1.28.0"; sha256="0ygcq3xi55swsmysn539cr3m504rfb6zm30w747pa46r63dfjda7"; depends=[data_table fdrtool Rcpp]; };
-  FlowSOM = derive2 { name="FlowSOM"; version="2.10.0"; sha256="170xz3b4kfsxpqirfz9vk4j8dkdmz4qd0a1nm3yaya1rddpg9m3l"; depends=[BiocGenerics colorRamps ConsensusClusterPlus dplyr flowCore ggforce ggnewscale ggplot2 ggpubr igraph magrittr rlang Rtsne tidyr XML]; };
-  FunChIP = derive2 { name="FunChIP"; version="1.28.0"; sha256="1qhwabm7vgjqmgxdla6qs70sncvzjc8qh5vpq5xqp50hk1lli7f1"; depends=[doParallel fda foreach GenomeInfoDb GenomicAlignments GenomicRanges RColorBrewer Rcpp Rsamtools shiny]; };
-  FuseSOM = derive2 { name="FuseSOM"; version="1.4.0"; sha256="1mrb8rgrfn0mivczyw1k00rpkh6wh1v4fvxbdsq1r5jf0n0sgyil"; depends=[analogue cluster coop diptest fastcluster FCPS fpc ggplot2 ggplotify ggpubr pheatmap proxy psych Rcpp S4Vectors stringr SummarizedExperiment]; };
-  GA4GHclient = derive2 { name="GA4GHclient"; version="1.26.0"; sha256="0s0d1m340v4nhms3mj1w126s003kmyfimnc1m6fj61glq8w8566j"; depends=[BiocGenerics Biostrings dplyr GenomeInfoDb GenomicRanges httr IRanges jsonlite S4Vectors VariantAnnotation]; };
-  GA4GHshiny = derive2 { name="GA4GHshiny"; version="1.24.0"; sha256="05wm2qj6cr81l9d1wk1xk1f02c3777k3hkjz4nwj65rsfph2g39f"; depends=[AnnotationDbi BiocGenerics dplyr DT GA4GHclient GenomeInfoDb GenomicFeatures openxlsx purrr S4Vectors shiny shinyjs shinythemes tidyr]; };
-  GARS = derive2 { name="GARS"; version="1.22.0"; sha256="0p6r48k6yljwqj13yfdlk2s97fmmwwdpyzwsmpi26p5j9q6352pl"; depends=[cluster DaMiRseq ggplot2 MLSeq SummarizedExperiment]; };
-  GAprediction = derive2 { name="GAprediction"; version="1.28.0"; sha256="1nn67bnb4h6z7xdi8ngjw3lkz6wjn6fzcxlhl46wnzg01hiqvjwz"; depends=[glmnet Matrix]; };
-  GBScleanR = derive2 { name="GBScleanR"; version="1.6.0"; sha256="19v3w4f8d0011c70x47bfiaqybdj52hya2nw18zsbggpcp8l8hn7"; depends=[expm gdsfmt ggplot2 Rcpp RcppParallel SeqArray tidyr]; };
-  GDCRNATools = derive2 { name="GDCRNATools"; version="1.22.0"; sha256="1d98q3hgkfl53k50ag8yfkdq9sjb65qmyvd9z2dnil1p1kksxz9x"; depends=[BiocParallel biomaRt clusterProfiler DESeq2 DOSE DT edgeR GenomicDataCommons ggplot2 gplots jsonlite limma org_Hs_eg_db pathview rjson shiny survival survminer XML]; };
-  GDSArray = derive2 { name="GDSArray"; version="1.22.0"; sha256="132xam32zh9bwh08ar593bwzn2icdwppr1ahfmkgvknpf94wg288"; depends=[BiocGenerics DelayedArray gdsfmt S4Vectors SeqArray SNPRelate]; };
-  GEM = derive2 { name="GEM"; version="1.28.0"; sha256="1hzhjpq396a8h05m0j9yz641wz3hz2j3wr5va695cixs3m8gpgpg"; depends=[ggplot2]; };
-  GENESIS = derive2 { name="GENESIS"; version="2.32.0"; sha256="1ccxl1a277s80i8qbvkcqajgwbl90rbjv3dhfzcq4dm6gqw805l9"; depends=[Biobase BiocGenerics BiocParallel data_table gdsfmt GenomicRanges GWASTools igraph IRanges Matrix reshape2 S4Vectors SeqArray SeqVarTools SNPRelate]; };
-  GENIE3 = derive2 { name="GENIE3"; version="1.24.0"; sha256="0bsid8qhcqgalqghr2b2592pzm4viyi7wq8h5dmhrrl7gky8l60k"; depends=[dplyr reshape2]; };
-  GEOexplorer = derive2 { name="GEOexplorer"; version="1.8.0"; sha256="1jhjsjqbd2hx0axf55k0q4ls21bb3p1x9y9k5s4sb6wanmpgiqpw"; depends=[Biobase car DT edgeR enrichR factoextra GEOquery ggplot2 heatmaply htmltools httr impute knitr limma markdown pheatmap plotly R_utils readxl scales shiny shinybusy shinycssloaders shinyHeatmaply stringr sva umap xfun XML xml2]; };
-  GEOfastq = derive2 { name="GEOfastq"; version="1.10.0"; sha256="0j3x5q531yzma852wqrm2g5m643hjg0laa91n6a5r8zcr14f2kw6"; depends=[doParallel foreach plyr RCurl rvest stringr xml2]; };
-  GEOmetadb = derive2 { name="GEOmetadb"; version="1.64.0"; sha256="11z6fq12kk7v0aqx1fi4bqhq6zhiq101hs6b6fgabqnjy7f96azq"; depends=[GEOquery RSQLite]; };
-  GEOquery = derive2 { name="GEOquery"; version="2.70.0"; sha256="1xjfh9lx2cfwzkk61pdarajsa86nzhy3dz7r4zws20pz4xkhwv87"; depends=[Biobase curl data_table dplyr limma magrittr R_utils readr tidyr xml2]; };
-  GEOsubmission = derive2 { name="GEOsubmission"; version="1.54.0"; sha256="03icqyknc0kli12ybnk08pqhinagn8d7m73dyl90wnpc87sm8lqw"; depends=[affy Biobase]; };
-  GEWIST = derive2 { name="GEWIST"; version="1.46.0"; sha256="02abx3zr4vyklc4d611ygy8g0msl4ir7d6fh9gp0lx1bscvqraa0"; depends=[car]; };
-  GGPA = derive2 { name="GGPA"; version="1.14.0"; sha256="08xbxbqq9vm1i3y99n72v4m7crf18wq7mk21psm7jpp7b0k8f0xr"; depends=[GGally matrixStats network Rcpp RcppArmadillo scales sna]; };
-  GIGSEA = derive2 { name="GIGSEA"; version="1.20.0"; sha256="08039jcq5jxq343ig56x22w1yqwnmd5wz65r3ipldp7dcrm2ccfp"; depends=[locfdr MASS Matrix]; };
-  GISPA = derive2 { name="GISPA"; version="1.26.0"; sha256="19vbcfdf959xs6kgds37ij3qay9x61dzrlvcs238m7hywl4dn3lz"; depends=[Biobase changepoint data_table genefilter GSEABase HH lattice latticeExtra plyr scatterplot3d]; };
-  GLAD = derive2 { name="GLAD"; version="2.66.0"; sha256="04wyzn56crz7sa453qj07p90vvg8nwrqz54m9ms9vf9z8adpck51"; depends=[aws]; };
-  GMRP = derive2 { name="GMRP"; version="1.30.0"; sha256="15d4yr2lvdap8ypqxl83n44v58spq1ffa42pcp37jbsymwg4azx9"; depends=[diagram GenomicRanges plotrix]; };
-  GNET2 = derive2 { name="GNET2"; version="1.18.0"; sha256="1735aywf8k9ivq6s39lc9ws35sk936c9k1m25fgc23ryw4bkr1rn"; depends=[DiagrammeR dplyr ggplot2 igraph matrixStats Rcpp reshape2 SummarizedExperiment xgboost]; };
-  GNOSIS = derive2 { name="GNOSIS"; version="1.0.0"; sha256="0dv0ikznabg3lihwhx33ciy9glfqbg1lgd42qzw67gk4zin5jxdf"; depends=[car cBioPortalData compareGroups dashboardthemes DescTools DT fabricatr fontawesome maftools magrittr operator_tools partykit RColorBrewer reshape2 rpart rstatix shiny shinycssloaders shinydashboard shinydashboardPlus shinyjs shinylogs shinymeta shinyWidgets survival survminer tidyverse]; };
-  GOSemSim = derive2 { name="GOSemSim"; version="2.28.1"; sha256="0p8368ia4ib61m1p8apk2d21lhdi62rfg04zl4190w6xv87k49xx"; depends=[AnnotationDbi GO_db Rcpp rlang yulab_utils]; };
-  GOSim = derive2 { name="GOSim"; version="1.40.0"; sha256="1izsjs3li1qcp2nfy7zk3zbf3hh7kq75r78ijbn5yln9fgs6mbv1"; depends=[annotate AnnotationDbi cluster corpcor flexmix GO_db graph Matrix org_Hs_eg_db RBGL Rcpp topGO]; };
-  GOTHiC = derive2 { name="GOTHiC"; version="1.38.0"; sha256="1cfbbx1vp19rxvjya3f1ij0gn36fcychfa5fhq71lrc31x9z6kf0"; depends=[BiocGenerics BiocManager Biostrings BSgenome data_table GenomeInfoDb GenomicRanges ggplot2 IRanges Rsamtools rtracklayer S4Vectors ShortRead]; };
-  GOexpress = derive2 { name="GOexpress"; version="1.36.0"; sha256="17zchlp8c9yikkacimvgrkyijmnlj60vp4bk0rvm2brcff0cxywb"; depends=[Biobase biomaRt ggplot2 gplots randomForest RColorBrewer RCurl stringr]; };
-  GOfuncR = derive2 { name="GOfuncR"; version="1.22.2"; sha256="004483q584530mh5nb28ppa8wllkd639n9yyw309acs2s4rc7saa"; depends=[AnnotationDbi GenomicRanges gtools IRanges mapplots Rcpp vioplot]; };
-  GOpro = derive2 { name="GOpro"; version="1.28.0"; sha256="1shgn74ix5kj0f8pxm1f3pisg1x40dss51xjihlk3cjkypil3ark"; depends=[AnnotationDbi BH dendextend doParallel foreach GO_db IRanges MultiAssayExperiment org_Hs_eg_db Rcpp S4Vectors]; };
-  GOstats = derive2 { name="GOstats"; version="2.68.0"; sha256="1v10ss1gf4a3qp6hbwa2f0la9sgiwhszg4c45qd6gv0dja2v30fs"; depends=[annotate AnnotationDbi AnnotationForge Biobase Category GO_db graph RBGL Rgraphviz]; };
-  GOsummaries = derive2 { name="GOsummaries"; version="2.37.0"; sha256="1r2a1bym6hwhah4gq47j7983znwsl3fwbhx9lw9j1nxm4ip0d7nr"; depends=[ggplot2 gProfileR gtable limma plyr Rcpp reshape2]; };
-  GPA = derive2 { name="GPA"; version="1.14.0"; sha256="09cc0i4dw8dsrcms927bmzlz3pa9qwg1j3ibl769v0qhbfblnqla"; depends=[DT ggplot2 ggrepel plyr Rcpp shiny shinyBS vegan]; };
-  GRENITS = derive2 { name="GRENITS"; version="1.54.0"; sha256="1f3b2fnywxikf3h623fd5hbxpq4lslfa2i7z4qjn7dyxj4swv3a1"; depends=[ggplot2 Rcpp RcppArmadillo reshape2]; };
-  GRaNIE = derive2 { name="GRaNIE"; version="1.6.1"; sha256="1v9p7nsf5ccykpb3njdmggdqdzjwksv89g6wzrqii1m1jz9nq7v8"; depends=[AnnotationHub biomaRt Biostrings checkmate circlize colorspace ComplexHeatmap data_table DESeq2 dplyr ensembldb forcats futile_logger GenomeInfoDb GenomicRanges ggplot2 gridExtra igraph limma magrittr Matrix matrixStats patchwork progress RColorBrewer readr reshape2 rlang S4Vectors scales stringr SummarizedExperiment tibble tidyr tidyselect topGO viridis]; };
-  GRmetrics = derive2 { name="GRmetrics"; version="1.28.0"; sha256="0r5wbwk8l46sdh3860hm6q1vvqb2fizwvp9cx1nbl4725y688di9"; depends=[drc ggplot2 plotly S4Vectors SummarizedExperiment]; };
-  GSALightning = derive2 { name="GSALightning"; version="1.30.0"; sha256="1hf950j4n7a00qlil841kpc7n00rszb530v73hyd9sya78yn3saz"; depends=[data_table Matrix]; };
-  GSAR = derive2 { name="GSAR"; version="1.36.0"; sha256="18bd5hsag1jicggqrc3kmn70vmaxdqkwyngmnzv511v26nq3qv1f"; depends=[igraph]; };
-  GSCA = derive2 { name="GSCA"; version="2.32.0"; sha256="068zr4rzjafqrxhd9ajyrw896dfh6q97sghl8p7ik9d8074m1y2b"; depends=[ggplot2 gplots RColorBrewer reshape2 rhdf5 shiny sp]; };
-  GSEABase = derive2 { name="GSEABase"; version="1.64.0"; sha256="1y7z3627shskwss8bzjz1xm02rv4s7cdi91v1xqdsbdayjkrh1nb"; depends=[annotate AnnotationDbi Biobase BiocGenerics graph XML]; };
-  GSEABenchmarkeR = derive2 { name="GSEABenchmarkeR"; version="1.22.0"; sha256="14g147qamfcg91fmg4dsmzbcw7j0a826i40k57za3zkr0qxjpf0g"; depends=[AnnotationDbi AnnotationHub Biobase BiocFileCache BiocParallel edgeR EnrichmentBrowser ExperimentHub KEGGandMetacoreDzPathwaysGEO KEGGdzPathwaysGEO S4Vectors SummarizedExperiment]; };
-  GSEAlm = derive2 { name="GSEAlm"; version="1.62.0"; sha256="0imaj5g7x2qnzqzdf4kgf7jgq6myyylphgnflgnprc0fys2l5qq8"; depends=[Biobase]; };
-  GSEAmining = derive2 { name="GSEAmining"; version="1.12.0"; sha256="1n2szlv5jsr4h6dnf6d326lym3nbkaslr56dmggm699j7bb661wn"; depends=[dendextend dplyr ggplot2 ggwordcloud gridExtra rlang stringr tibble tidytext]; };
-  GSRI = derive2 { name="GSRI"; version="2.50.0"; sha256="0y9cmxwv3x766m5aa0spqljnm1sh8zis1wlaa2585crdciqki39l"; depends=[Biobase fdrtool genefilter GSEABase les]; };
-  GSReg = derive2 { name="GSReg"; version="1.36.0"; sha256="0hclk184ckblf464w2fgvjga5h4831j4srz9813ggm0q8raa7a4v"; depends=[AnnotationDbi GenomicFeatures Homo_sapiens org_Hs_eg_db]; };
-  GSVA = derive2 { name="GSVA"; version="1.50.1"; sha256="0ld0bbl6ar3yhi6ncg9d8q60hg4m4v5kphl044fw63l19ixln7cf"; depends=[Biobase BiocParallel BiocSingular DelayedArray DelayedMatrixStats GSEABase HDF5Array IRanges Matrix S4Vectors SingleCellExperiment sparseMatrixStats SummarizedExperiment]; };
-  GSgalgoR = derive2 { name="GSgalgoR"; version="1.12.0"; sha256="1yzx8dk26cmyr3xcnvm0s13avbc0r2yd1ccrk87frv8xnd0hrl0i"; depends=[cluster doParallel foreach matchingR nsga2R proxy survival]; };
-  GUIDEseq = derive2 { name="GUIDEseq"; version="1.32.0"; sha256="123r4wcc9nxzjdp5jfil5y2l3c3gc470xyq14mh8lv5g7drixc6m"; depends=[BiocGenerics Biostrings BSgenome ChIPpeakAnno CRISPRseek data_table dplyr GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 hash IRanges limma matrixStats multtest openxlsx patchwork purrr rio rlang Rsamtools S4Vectors stringr tidyr]; };
-  GWAS_BAYES = derive2 { name="GWAS.BAYES"; version="1.12.0"; sha256="1v3zp4n7p27mdylagz6i0n36pvqd2sy869l1mjldp9j1ypcqnysb"; depends=[caret GA limma MASS Matrix memoise]; };
-  GWASTools = derive2 { name="GWASTools"; version="1.48.0"; sha256="1rjgdcw65zmmg5dy9mdaz720nvqk03bfsfvkdsa1wwhvlnxmscp8"; depends=[Biobase data_table DBI DNAcopy gdsfmt GWASExactHW lmtest logistf quantsmooth RSQLite sandwich survival]; };
-  GWENA = derive2 { name="GWENA"; version="1.12.0"; sha256="0mjlqkdsy9d82mg655ydw0cb2vb70jf2xsnbjgjfqjpb1j7qn5hd"; depends=[cluster dplyr dynamicTreeCut ggplot2 gprofiler2 igraph magrittr matrixStats NetRep purrr RColorBrewer rlist stringr SummarizedExperiment tibble tidyr WGCNA]; };
-  GateFinder = derive2 { name="GateFinder"; version="1.22.0"; sha256="0854gknmhz2rrliklzr5cz1miqza2249i5nhhkav78fw5pk5gqsl"; depends=[diptest flowCore flowFP mvoutlier splancs]; };
-  GenProSeq = derive2 { name="GenProSeq"; version="1.6.0"; sha256="17rqr4k9n0mkwii48phsh9z3qv1xp1pvk5bcs53mav9z9x24fij6"; depends=[CatEncoders DeepPINCS keras mclust reticulate tensorflow ttgsea word2vec]; };
-  GenVisR = derive2 { name="GenVisR"; version="1.34.0"; sha256="0mlv0r2f6800z8v96ba5227svp9r5cyhr8ijs072qw4g30h6mcpa"; depends=[AnnotationDbi BiocGenerics biomaRt Biostrings BSgenome data_table DBI GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 gridExtra gtable gtools IRanges plyr reshape2 Rsamtools scales VariantAnnotation viridis]; };
-  GeneBreak = derive2 { name="GeneBreak"; version="1.32.0"; sha256="1vsk891b4200cgia1dgz72nj11iq9r7wfz1j18a673qxj08505wn"; depends=[CGHbase CGHcall GenomicRanges QDNAseq]; };
-  GeneExpressionSignature = derive2 { name="GeneExpressionSignature"; version="1.48.0"; sha256="0h58p1jzppz16l85498fa7kl8zwnrbilp9x09sby9lalkcdrzvry"; depends=[Biobase]; };
-  GeneGA = derive2 { name="GeneGA"; version="1.52.0"; sha256="0k848y1kw9iq8wv5hfk2ylykj22mnrpj5881d47mkgii4j6l2ika"; depends=[hash seqinr]; };
-  GeneGeneInteR = derive2 { name="GeneGeneInteR"; version="1.28.0"; sha256="1bfz7i8cbn0ddnyb3dnj8xrb1r6jsxf4hplxacis7yi6l1vylvzy"; depends=[data_table FactoMineR GenomicRanges igraph IRanges kernlab mvtnorm Rsamtools snpStats]; };
-  GeneMeta = derive2 { name="GeneMeta"; version="1.74.0"; sha256="1m08gd0n1j21s9p8ppvqzzplwrnpknb5lprg07zlsr4c78fb0mgg"; depends=[Biobase genefilter]; };
-  GeneNetworkBuilder = derive2 { name="GeneNetworkBuilder"; version="1.44.0"; sha256="0gz7lmn5qspnak3mcbjpbvy5436d8p15pq46877xykv9anry6z0v"; depends=[graph htmlwidgets plyr Rcpp Rgraphviz rjson XML]; };
-  GeneOverlap = derive2 { name="GeneOverlap"; version="1.38.0"; sha256="074d3inz8sh8xxjliisa0p99rgy6r9fg9ljaka5bf1waxwpknzpw"; depends=[gplots RColorBrewer]; };
-  GeneRegionScan = derive2 { name="GeneRegionScan"; version="1.58.0"; sha256="1zq9gnp81swpd88flr344snnn3mlhihrma5k0j95m4mi1g6sp3j6"; depends=[affxparser Biobase Biostrings RColorBrewer S4Vectors]; };
-  GeneSelectMMD = derive2 { name="GeneSelectMMD"; version="2.46.0"; sha256="09d9dy85bdq86h429ycvqwnz2zpnn3p405l1x1b8p53g6g525d9a"; depends=[Biobase limma MASS]; };
-  GeneStructureTools = derive2 { name="GeneStructureTools"; version="1.22.0"; sha256="07l3702hdxqd4bm8rd4ac69z0j30dxrk8k2srvli99dp5w7cqby3"; depends=[Biostrings BSgenome_Mmusculus_UCSC_mm10 data_table GenomicRanges Gviz IRanges plyr rtracklayer S4Vectors stringdist stringr]; };
-  GeneTonic = derive2 { name="GeneTonic"; version="2.6.0"; sha256="1mdhs8ak72dxf30xiwjs6hdpkz6hxbzbxqr495l3vm2az6738y5l"; depends=[AnnotationDbi backbone bs4Dash circlize colorspace colourpicker ComplexHeatmap ComplexUpset dendextend DESeq2 dplyr DT dynamicTreeCut expm ggforce ggplot2 ggrepel ggridges GO_db igraph matrixStats plotly RColorBrewer rintrojs rlang rmarkdown S4Vectors scales shiny shinyAce shinycssloaders shinyWidgets SummarizedExperiment tidyr tippy viridis visNetwork]; };
-  GeneticsPed = derive2 { name="GeneticsPed"; version="1.64.0"; sha256="0bsrgdryh8qdmsfsmd046rl04za9pkbgi034qmisbq9m1w5i9my8"; depends=[gdata genetics MASS]; };
-  GenomAutomorphism = derive2 { name="GenomAutomorphism"; version="1.4.0"; sha256="0hpicwmlzlpgbqprzmq1ip9fnznvn2h8axa02rr5s7dk7ynidwcq"; depends=[BiocGenerics BiocParallel Biostrings data_table doParallel dplyr foreach GenomeInfoDb GenomicRanges IRanges numbers S4Vectors]; };
-  GenomeInfoDb = derive2 { name="GenomeInfoDb"; version="1.38.8"; sha256="126qq2549h3dpjiq36709pym5bfwk6jqbz5q2sb5hl8lwm1apv8w"; depends=[BiocGenerics GenomeInfoDbData IRanges RCurl S4Vectors]; };
-  GenomicAlignments = derive2 { name="GenomicAlignments"; version="1.38.2"; sha256="0i4n735xabdhlg7w2yd31lg65s9b6w12fhzij91hbcp0hs40fvw1"; depends=[BiocGenerics BiocParallel Biostrings GenomeInfoDb GenomicRanges IRanges Rsamtools S4Vectors SummarizedExperiment]; };
-  GenomicDataCommons = derive2 { name="GenomicDataCommons"; version="1.26.0"; sha256="1inikcczkhav6h6a46ix9ixkf7b1n8rf766m5hmhmx09sspzsm5w"; depends=[dplyr GenomicRanges httr IRanges jsonlite magrittr rappdirs readr rlang tibble tidyr xml2]; };
-  GenomicDistributions = derive2 { name="GenomicDistributions"; version="1.10.0"; sha256="0w6janm5awf15n0l6jhh9k371dcx2ad1rqf0gdqfi2asaafzbgrx"; depends=[Biostrings broom data_table dplyr GenomeInfoDb GenomicRanges ggplot2 IRanges plyr reshape2 scales]; };
-  GenomicFeatures = derive2 { name="GenomicFeatures"; version="1.54.4"; sha256="0g2fv4r82ql7p2allapmgs2bj4ad70c8030vzkml7ghrxsgrryp3"; depends=[AnnotationDbi Biobase BiocGenerics BiocIO biomaRt Biostrings DBI GenomeInfoDb GenomicRanges httr IRanges rjson RSQLite rtracklayer S4Vectors XVector]; };
-  GenomicFiles = derive2 { name="GenomicFiles"; version="1.38.0"; sha256="1kvys60hhb0ndjvjdanfgciq3jc42iag8r0a199gv6w5bjaxp6wm"; depends=[BiocGenerics BiocParallel GenomeInfoDb GenomicAlignments GenomicRanges IRanges MatrixGenerics Rsamtools rtracklayer S4Vectors SummarizedExperiment VariantAnnotation]; };
-  GenomicInteractionNodes = derive2 { name="GenomicInteractionNodes"; version="1.6.0"; sha256="0160xjki6cf0x4dqp2wmszala35wp77jz5qp2c3ppl07l8dm21jc"; depends=[AnnotationDbi GenomeInfoDb GenomicFeatures GenomicRanges GO_db graph IRanges RBGL S4Vectors]; };
-  GenomicInteractions = derive2 { name="GenomicInteractions"; version="1.36.0"; sha256="13rnxig22agykzv3q7wm4wr9c5aw56q6q1zv8m5g5ngjcssy8l4c"; depends=[Biobase BiocGenerics data_table dplyr GenomeInfoDb GenomicRanges ggplot2 gridExtra Gviz igraph InteractionSet IRanges Rsamtools rtracklayer S4Vectors stringr]; };
-  GenomicOZone = derive2 { name="GenomicOZone"; version="1.16.0"; sha256="1dr10qwwnk4qz9n0yk7q6yrrwplhx8rnnrn9p521a551jyn0yw38"; depends=[biomaRt Ckmeans_1d_dp GenomeInfoDb GenomicRanges ggbio ggplot2 gridExtra IRanges lsr plyr Rdpack S4Vectors]; };
-  GenomicPlot = derive2 { name="GenomicPlot"; version="1.0.5"; sha256="1662y1sk3sayw0717byrd7z40y2kr8xl0aifadsx90f0zb802a2m"; depends=[BiocGenerics circlize ComplexHeatmap cowplot dplyr edgeR genomation GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 ggplotify ggpubr ggsci ggsignif IRanges plyranges RCAS Rsamtools rtracklayer scales tidyr VennDiagram viridis]; };
-  GenomicRanges = derive2 { name="GenomicRanges"; version="1.54.1"; sha256="1vrs3r8dyhhwj0s3vwvr168s84x5hj10lnpg1xf5c2kbj26bdv0w"; depends=[BiocGenerics GenomeInfoDb IRanges S4Vectors XVector]; };
-  GenomicScores = derive2 { name="GenomicScores"; version="2.14.3"; sha256="0rhyfbm5whz4jygar9cqcrfy92h1lyam5wd8d9svhh80f15v53m9"; depends=[AnnotationHub Biobase BiocFileCache BiocGenerics BiocManager Biostrings DelayedArray GenomeInfoDb GenomicRanges HDF5Array httr IRanges rhdf5 S4Vectors XML]; };
-  GenomicSuperSignature = derive2 { name="GenomicSuperSignature"; version="1.10.0"; sha256="0aq6919aqd0wp4z98isvq5gyydcxjq1ihsvi4nky9s5lrsibdpn0"; depends=[Biobase BiocFileCache ComplexHeatmap dplyr flextable ggplot2 ggpubr irlba plotly S4Vectors SummarizedExperiment]; };
-  GenomicTuples = derive2 { name="GenomicTuples"; version="1.36.0"; sha256="1bw8ki8xap7v4n3lcwvbybv6rf0jwzdyjsnhabrvs8x43prl5h6x"; depends=[BiocGenerics data_table GenomeInfoDb GenomicRanges IRanges Rcpp S4Vectors]; };
-  GeoDiff = derive2 { name="GeoDiff"; version="1.8.0"; sha256="1z3x8xcjl5kr4wyamhxf1p5mc28pc0cmv0j9nzzbzvz6mkf0ma1y"; depends=[Biobase GeomxTools lme4 Matrix NanoStringNCTools plyr Rcpp RcppArmadillo robust roptim testthat withr]; };
-  GeoTcgaData = derive2 { name="GeoTcgaData"; version="2.2.0"; sha256="1mlbi8f32mhkwdkrl95krjx6vckb4k8rs9drf521rm933qjjhz07"; depends=[cqn data_table plyr SummarizedExperiment topconfects]; };
-  GeomxTools = derive2 { name="GeomxTools"; version="3.6.2"; sha256="01lixadi4w7wsv39k51mimm88bc8hqfmcnbl16x28nzw91qfnmnj"; depends=[Biobase BiocGenerics data_table dplyr EnvStats GGally ggplot2 lmerTest NanoStringNCTools readxl reshape2 rjson rlang S4Vectors SeuratObject stringr]; };
-  GladiaTOX = derive2 { name="GladiaTOX"; version="1.18.0"; sha256="01hb21j4pi59ix2ffj8aalc1zq382zw3n2gfaxqng78gadi1ck2n"; depends=[brew data_table DBI ggplot2 ggrepel numDeriv RColorBrewer RCurl RJSONIO RMariaDB RSQLite stringr tidyr XML xtable]; };
-  Glimma = derive2 { name="Glimma"; version="2.12.0"; sha256="0pkh15jjjb83pq7d49yzwb2gyc95x4rww78qnzpdrzhycgmcapii"; depends=[DESeq2 edgeR htmlwidgets jsonlite limma S4Vectors SummarizedExperiment]; };
-  GloScope = derive2 { name="GloScope"; version="1.0.0"; sha256="1zjj0pk2i0c6ivx05kyn1hd1pwnjdrx24dyf6gxg1q8hvdbpz7q2"; depends=[BiocParallel FNN ggplot2 MASS mclust mvnfast RANN rlang SingleCellExperiment]; };
-  GlobalAncova = derive2 { name="GlobalAncova"; version="4.20.0"; sha256="0j1ma04zjsvf668idms8hx1vnw3sh5yy8fbhwscyk1qbfy708cfh"; depends=[annotate AnnotationDbi Biobase corpcor dendextend globaltest GSEABase VGAM]; };
-  GmicR = derive2 { name="GmicR"; version="1.16.0"; sha256="1aglik6ywfwr6qpjb6b5ykg02x1k9q4v83liw29dahh74hp7rdzz"; depends=[AnnotationDbi ape bnlearn Category data_table doParallel DT foreach GOstats gRain gRbase GSEABase org_Hs_eg_db org_Mm_eg_db reshape2 shiny WGCNA]; };
-  GraphAT = derive2 { name="GraphAT"; version="1.74.0"; sha256="1r5jz6w2cnc96arbilzgapp8xbn3kpv8jjamy58wycxqsj468p8f"; depends=[graph MCMCpack]; };
-  GraphAlignment = derive2 { name="GraphAlignment"; version="1.66.0"; sha256="0gjij3nvmm5bd4bi5ljgjm6fj610jdbhdasx48jl6l366a06si0s"; depends=[]; };
-  GraphPAC = derive2 { name="GraphPAC"; version="1.44.0"; sha256="1dz88vy85njw8lsr2y14fwjb3rnlr808xyw3aw8k8vavn6y82v5a"; depends=[igraph iPAC RMallow TSP]; };
-  GreyListChIP = derive2 { name="GreyListChIP"; version="1.34.0"; sha256="1k974cvfbkl8ffn7k2la843bv2pf33cr5f6fahiiy24d68lxwifr"; depends=[BSgenome GenomeInfoDb GenomicAlignments GenomicRanges MASS Rsamtools rtracklayer SummarizedExperiment]; };
-  Guitar = derive2 { name="Guitar"; version="2.18.0"; sha256="09i6j8dcmzvd9gh9629523hw0hbng18jdqw5gf1r31ck8m8wwmnc"; depends=[AnnotationDbi dplyr GenomicFeatures GenomicRanges ggplot2 knitr magrittr rtracklayer]; };
-  Gviz = derive2 { name="Gviz"; version="1.46.1"; sha256="0an8hd2g2hp3p1vfsmxq77fm71xlf5g73j4w5mcy28x1aj073zxf"; depends=[AnnotationDbi Biobase BiocGenerics biomaRt Biostrings biovizBase BSgenome digest ensembldb GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges IRanges lattice latticeExtra matrixStats RColorBrewer Rsamtools rtracklayer S4Vectors XVector]; };
-  HDF5Array = derive2 { name="HDF5Array"; version="1.30.1"; sha256="17cjjlgbp5kj0cpjm6915wy4cm6h5wl6d59j4na1s6kvgxx95qd0"; depends=[BiocGenerics DelayedArray IRanges Matrix rhdf5 rhdf5filters Rhdf5lib S4Arrays S4Vectors]; };
-  HDTD = derive2 { name="HDTD"; version="1.36.0"; sha256="0y243fava1n8ivnd7y2grmllj358k1rva4axrlyyy8y9z9krkyr2"; depends=[Rcpp RcppArmadillo]; };
-  HELP = derive2 { name="HELP"; version="1.60.0"; sha256="0q55prngrr04w5ma255k50yyzq13aqxmvk2yi12j4m4315h35ciz"; depends=[Biobase]; };
-  HEM = derive2 { name="HEM"; version="1.74.0"; sha256="1zii27ihz42117mw6ipa1djv4nr1zlh3xkybp8ic2m143q1s7jsq"; depends=[Biobase]; };
-  HERON = derive2 { name="HERON"; version="1.0.0"; sha256="0jz3c2mjgrqr9l0nz9y89qbxfbv94s745rc7vi1wgnij1ia6b8xi"; depends=[cluster data_table GenomicRanges harmonicmeanp IRanges limma Matrix matrixStats metap S4Vectors spdep SummarizedExperiment]; };
-  HGC = derive2 { name="HGC"; version="1.10.0"; sha256="1x8j0x2yf0k6ngsgrnaq5rp2z50dfhffbnaqdn5pi5kr31mncnf9"; depends=[ape dendextend dplyr ggplot2 Matrix mclust patchwork RANN Rcpp RcppEigen]; };
-  HIBAG = derive2 { name="HIBAG"; version="1.38.2"; sha256="095x8qli3l33w88dhhpx1hjfk64y2hqr6dpdq7ig39lv9nnxbvxc"; depends=[RcppParallel]; };
-  HIPPO = derive2 { name="HIPPO"; version="1.14.0"; sha256="0flxpyji8c6z7cllpav0js3sk47r6qja1m7pcwmz2ch6aia11k0s"; depends=[dplyr ggplot2 ggrepel gridExtra irlba magrittr Matrix reshape2 rlang Rtsne SingleCellExperiment umap]; };
-  HIREewas = derive2 { name="HIREewas"; version="1.20.0"; sha256="1vq9hqdyz26q27h1vjs2p5kq4m97qdi06j4wsiw38vigj4q1s2yw"; depends=[gplots quadprog]; };
-  HMMcopy = derive2 { name="HMMcopy"; version="1.44.0"; sha256="1nhm8bv6p5zcs7f9p1hqzyjgya6v3q8rl13blh135pk9gxjiad2c"; depends=[data_table]; };
-  HPAanalyze = derive2 { name="HPAanalyze"; version="1.20.0"; sha256="1xsln9sbflfvnm7fygh7lp1b6qc0wcrxyhz1sh2cfbwchx75hdhz"; depends=[dplyr ggplot2 gridExtra openxlsx tibble xml2]; };
-  HPiP = derive2 { name="HPiP"; version="1.8.0"; sha256="0xsnjyzhzwfaiglyws8kqk9xnqzsjmmx7hmynr1dxrsmp57dracf"; depends=[caret corrplot dplyr ggplot2 httr igraph magrittr MCL pROC protr PRROC purrr readr stringr tibble tidyr]; };
-  HTSFilter = derive2 { name="HTSFilter"; version="1.42.0"; sha256="1n3s24z6c9l7n3ri053rgxpj2xm7v9llhdqwnzb5ajvarkiikl6l"; depends=[Biobase BiocParallel DESeq2 edgeR]; };
-  HTSeqGenie = derive2 { name="HTSeqGenie"; version="4.32.0"; sha256="1n2kj66m7r6fxzkh99fyl14glcdkr8ba1ywi5kqlr09msckg1ngw"; depends=[BiocGenerics BiocParallel Biostrings Cairo chipseq GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges gmapR hwriter IRanges Rsamtools rtracklayer S4Vectors ShortRead SummarizedExperiment VariantAnnotation VariantTools]; };
-  HTqPCR = derive2 { name="HTqPCR"; version="1.56.0"; sha256="14cff36ikbqhd5xizihpxzsv9jimcpbgnd381jd154pgi60bil0m"; depends=[affy Biobase gplots limma RColorBrewer]; };
-  Harman = derive2 { name="Harman"; version="1.30.0"; sha256="1kfraxmkqkqn8j3lj1lfb7i18q8iyprih1wvr0dnx6prvz8wjl1p"; depends=[Ckmeans_1d_dp matrixStats Rcpp]; };
-  HarmonizR = derive2 { name="HarmonizR"; version="1.0.0"; sha256="1gsgqirwk6p1babwidlhdmj6ilx2z8qlwi8b2vdxxjzxz9gqa9lj"; depends=[doParallel foreach janitor limma plyr seriation SummarizedExperiment sva]; };
-  Harshlight = derive2 { name="Harshlight"; version="1.74.0"; sha256="1djs95l04b3qrqcb7jkzhfmxzbsn2riyydz8p2lmilg6z9rkdqx7"; depends=[affy altcdfenvs Biobase]; };
-  Heatplus = derive2 { name="Heatplus"; version="3.10.0"; sha256="1vs7x4dc2vrfi2wi300bjr2hl1wwp4v27sgzycr6qv6x2nx9i5xq"; depends=[RColorBrewer]; };
-  HelloRanges = derive2 { name="HelloRanges"; version="1.28.0"; sha256="0pzx5hixkyqqqgd2r7l9j0vhd7w5b0hlkkaxsfa7jvcizjbv3lgh"; depends=[BiocGenerics BiocIO Biostrings BSgenome docopt GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges IRanges Rsamtools rtracklayer S4Vectors SummarizedExperiment VariantAnnotation]; };
-  Herper = derive2 { name="Herper"; version="1.12.0"; sha256="02jypf2bzaqqdlx32cgvpf8vw13ax51nkibg36fkvh69prz17nq4"; depends=[reticulate rjson withr]; };
-  HiCBricks = derive2 { name="HiCBricks"; version="1.20.0"; sha256="0590ihwsmw1b5fj54jmlpy24mhsnpphazlzi20hvjy7j3yjzzzzg"; depends=[BiocParallel curl data_table digest GenomeInfoDb GenomicRanges ggplot2 IRanges jsonlite R_utils R6 RColorBrewer readr reshape2 rhdf5 S4Vectors scales stringr tibble viridis]; };
-  HiCDCPlus = derive2 { name="HiCDCPlus"; version="1.10.0"; sha256="02n5pn4l1i6aybw60nmmf8665djxp9nypv076bmvjv19kmbm7kr7"; depends=[bbmle Biostrings BSgenome data_table dplyr GenomeInfoDb GenomicInteractions GenomicRanges InteractionSet IRanges MASS pscl R_utils Rcpp rlang rtracklayer S4Vectors tibble tidyr]; };
-  HiCDOC = derive2 { name="HiCDOC"; version="1.4.1"; sha256="1pq6rlf0nm39dq8k1n0024qqp21ka4cn4a072dr1aa370s9lcin4"; depends=[BiocGenerics BiocParallel cowplot data_table GenomeInfoDb GenomicRanges ggplot2 gridExtra gtools InteractionSet multiHiCcompare pbapply Rcpp S4Vectors SummarizedExperiment zlibbioc]; };
-  HiCExperiment = derive2 { name="HiCExperiment"; version="1.2.0"; sha256="12pif6yf4dg9s3bc24ibbbz9al0dx597g6kylwf7591s46z1m6mi"; depends=[BiocGenerics BiocIO BiocParallel dplyr GenomeInfoDb GenomicRanges InteractionSet IRanges Matrix rhdf5 S4Vectors strawr vroom]; };
-  HiCcompare = derive2 { name="HiCcompare"; version="1.24.0"; sha256="1b38vdzdxzwhba33g7dnhiszlmfr8cwli971jmzyljjcfmsa1g2d"; depends=[BiocParallel data_table dplyr GenomicRanges ggplot2 gridExtra gtools InteractionSet IRanges KernSmooth mgcv pheatmap rhdf5 S4Vectors]; };
-  HiContacts = derive2 { name="HiContacts"; version="1.4.0"; sha256="0adbyny0ji0a83rc12adbh2fws1x157wabv65d7gx0kwyz3jrzby"; depends=[BiocGenerics BiocIO BiocParallel dplyr GenomeInfoDb GenomicRanges ggplot2 ggrastr HiCExperiment InteractionSet IRanges Matrix readr RSpectra S4Vectors scales stringr SummarizedExperiment tibble tidyr]; };
-  HiCool = derive2 { name="HiCool"; version="1.2.0"; sha256="0ilmps2wp7jm3hmlkrgnsrfzg4ianr25aawbh15x070sp2jsmmnj"; depends=[basilisk BiocIO dplyr GenomicRanges HiCExperiment InteractionSet IRanges plotly reticulate rmarkdown rmdformats S4Vectors sessioninfo stringr vroom]; };
-  HiLDA = derive2 { name="HiLDA"; version="1.16.0"; sha256="0midjn8jhvm4cqljfi44jh850bl7drl7k22iwf1y7352jb1mjz84"; depends=[abind BiocGenerics Biostrings BSgenome_Hsapiens_UCSC_hg19 cowplot forcats GenomicFeatures GenomicRanges ggplot2 R2jags Rcpp S4Vectors stringr tidyr TxDb_Hsapiens_UCSC_hg19_knownGene XVector]; };
-  HiTC = derive2 { name="HiTC"; version="1.46.0"; sha256="16svq29fm9xl3rl9v6lyxf564manvp8ryxj1mbxc4pb360wmi780"; depends=[Biostrings GenomeInfoDb GenomicRanges IRanges Matrix RColorBrewer rtracklayer]; };
-  HilbertCurve = derive2 { name="HilbertCurve"; version="1.32.0"; sha256="04575v4ha4znp7nc6irs79rldr8sp85785l362yx3hlz70hkg8n8"; depends=[circlize GenomicRanges HilbertVis IRanges png polylabelr]; };
-  HilbertVis = derive2 { name="HilbertVis"; version="1.60.0"; sha256="1mb0011g4hp7bbx2qh29j9026yspw8ril7kszddy8n11wkgs9iwn"; depends=[lattice]; };
-  HilbertVisGUI = derive2 { name="HilbertVisGUI"; version="1.60.0"; sha256="091jy4vixx9xw763mj5faxj02w07bqjk5myb75nban66yggxz5c2"; depends=[HilbertVis]; };
-  HubPub = derive2 { name="HubPub"; version="1.10.1"; sha256="1a73vmqb95251i7ksgd28vjmgyjb5111b78hl2pfr9nwmdmwafjn"; depends=[available aws_s3 BiocManager biocthis dplyr fs usethis]; };
-  HumanTranscriptomeCompendium = derive2 { name="HumanTranscriptomeCompendium"; version="1.17.0"; sha256="013lxz0hki13xsmx0j9m2r2hw203jnbnm0sjaaypi79m9p52maav"; depends=[S4Vectors shiny ssrch SummarizedExperiment]; };
-  HybridMTest = derive2 { name="HybridMTest"; version="1.46.0"; sha256="1jkihcad453d7jqb78fl03yfqz169jz75c40y53569ndp2j4rg71"; depends=[Biobase fdrtool MASS survival]; };
-  IFAA = derive2 { name="IFAA"; version="1.4.0"; sha256="09078d14zpck9ld3mmrav2g1s3fp33k40lbnlqjdfsq8myqpnf2x"; depends=[DescTools doParallel doRNG foreach glmnet HDCI mathjaxr Matrix MatrixExtra parallelly S4Vectors stringr SummarizedExperiment]; };
-  IHW = derive2 { name="IHW"; version="1.30.0"; sha256="1pix38lg9snw0jdihh8sifnmckyw1lniwp95r93ca524g6swfc8b"; depends=[BiocGenerics fdrtool lpsymphony slam]; };
-  ILoReg = derive2 { name="ILoReg"; version="1.12.1"; sha256="0y6qyrwkfihgx0lakv36h9kh8y2i1xxjanvrjwysmj9r266wfnpd"; depends=[aricode cluster cowplot dendextend DescTools doRNG doSNOW dplyr fastcluster foreach ggplot2 LiblineaR Matrix parallelDist pheatmap plyr reshape2 RSpectra Rtsne S4Vectors scales SingleCellExperiment SparseM SummarizedExperiment umap]; };
-  IMAS = derive2 { name="IMAS"; version="1.26.0"; sha256="0c9ky8p0fjncn9wqx7s6ya2n1kixhakhm6ij3ccaacb8aaj97gaa"; depends=[AnnotationDbi BiocGenerics BiocParallel doParallel foreach GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggfortify ggplot2 gridExtra IRanges IVAS lattice lme4 Matrix Rsamtools S4Vectors survival]; };
-  IMMAN = derive2 { name="IMMAN"; version="1.22.0"; sha256="0wsv4hcvsdfm3npqh8qiqrl2bg95sqyrjxnv2xqa19niqbk6jlss"; depends=[Biostrings igraph seqinr STRINGdb]; };
-  IMPCdata = derive2 { name="IMPCdata"; version="1.38.0"; sha256="0wlq95fi46zzk99mq1zh9rndl4d76ybvdxv0c5xi9gj71smd6sym"; depends=[rjson]; };
-  INDEED = derive2 { name="INDEED"; version="2.16.0"; sha256="0338jf6dhskjp714ccbwizb02q8j45qr9wy3m69jv7r8c3f9r0xm"; depends=[devtools glasso igraph visNetwork]; };
-  INPower = derive2 { name="INPower"; version="1.38.0"; sha256="0mk6lz0lsr34q3h6s5gd63jxl23fabc19zvjrk9w2anzxhnz7809"; depends=[mvtnorm]; };
-  INSPEcT = derive2 { name="INSPEcT"; version="1.32.1"; sha256="04znack6p50cmc2qyk4hf45m6v70p0bv7h3xs87j0x0h4mb920ch"; depends=[Biobase BiocGenerics BiocParallel DESeq2 deSolve GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges IRanges KernSmooth plgem pROC readxl rootSolve Rsamtools rtracklayer S4Vectors shiny SummarizedExperiment TxDb_Mmusculus_UCSC_mm9_knownGene]; };
-  INTACT = derive2 { name="INTACT"; version="1.2.0"; sha256="0azm7yh5zjzi3rhkajncckr1cxq5l2h3wicfn8g28mmgp71xxcc0"; depends=[bdsmatrix numDeriv SQUAREM]; };
-  IONiseR = derive2 { name="IONiseR"; version="2.26.0"; sha256="1y595hq40kpsasp74wsbf3ngd2rrriqg65z9y4svcwdygj03pgrz"; depends=[BiocGenerics BiocParallel Biostrings bit64 dplyr ggplot2 magrittr rhdf5 ShortRead stringr tibble tidyr XVector]; };
-  IPO = derive2 { name="IPO"; version="1.28.0"; sha256="0w9izdj3mg053xbb107qg6jk7rgkb0vhx7ji4l27fac8ynhh89dg"; depends=[BiocParallel CAMERA rsm xcms]; };
-  IRanges = derive2 { name="IRanges"; version="2.36.0"; sha256="0rhh82hrsm32bdjamfah84p7zi8fvr4shyq2rdjfxzdp9qy5rh2q"; depends=[BiocGenerics S4Vectors]; };
-  ISAnalytics = derive2 { name="ISAnalytics"; version="1.12.0"; sha256="0y8m3d3mkzashyzw4b2rajwgrxmnbn4izfdc1g5m4wdyzcwa7pkd"; depends=[bslib datamods dplyr DT forcats fs ggplot2 ggrepel glue lifecycle lubridate purrr readr readxl rlang shiny shinyWidgets stringr tibble tidyr]; };
-  ISLET = derive2 { name="ISLET"; version="1.4.0"; sha256="0dgjq159b4qd6f2f2x6lcpp9d22p1d5wrnhvcl1kzr1fdkqn6q3w"; depends=[abind BiocGenerics BiocParallel lme4 Matrix nnls purrr SummarizedExperiment]; };
-  ISoLDE = derive2 { name="ISoLDE"; version="1.30.0"; sha256="1b8xrdyds2082f1j7yn160y1h4vad6z01rf4lmbh474k9wwwxfpd"; depends=[]; };
-  ITALICS = derive2 { name="ITALICS"; version="2.62.0"; sha256="0zk9n94nqw6vpw908ka32zppxwqkki9krzxib06y1nic3bri3w9i"; depends=[affxparser DBI GLAD ITALICSData oligo oligoClasses pd_mapping50k_xba240]; };
-  IVAS = derive2 { name="IVAS"; version="2.22.0"; sha256="1sw2gqy0gy4src45ha42ngppg038imyj5hbr602amq0ni9nnnl3p"; depends=[AnnotationDbi Biobase BiocGenerics BiocParallel doParallel foreach GenomeInfoDb GenomicFeatures GenomicRanges ggfortify ggplot2 IRanges lme4 Matrix S4Vectors]; };
-  IWTomics = derive2 { name="IWTomics"; version="1.26.0"; sha256="0mzwpbvpl73yjn91l5gp94xwrm3gdr918g72ap07g8ch8dvf9bj7"; depends=[fda GenomicRanges gtable IRanges KernSmooth S4Vectors]; };
-  Icens = derive2 { name="Icens"; version="1.74.0"; sha256="0fz66bchf41jzgabs1s8drpi3f7g27lid5g50lxwh6ph3i02cpaw"; depends=[survival]; };
-  IdeoViz = derive2 { name="IdeoViz"; version="1.37.0"; sha256="1bhari5ghag5f5dlrgm79hckbh0bamd9567z04qi0spnfr97wf3s"; depends=[Biobase GenomeInfoDb GenomicRanges IRanges RColorBrewer rtracklayer]; };
-  IgGeneUsage = derive2 { name="IgGeneUsage"; version="1.16.0"; sha256="08qy3vw1v8ik1z80ds7hmxbpalssnqlrkkb0wsr78vzffll5yrjc"; depends=[BH Rcpp RcppEigen RcppParallel reshape2 rstan rstantools StanHeaders SummarizedExperiment tidyr]; };
-  ImmuneSpaceR = derive2 { name="ImmuneSpaceR"; version="1.30.0"; sha256="0lhilrh4xyw1cvqnx4b6g0llm9b1i4l2r476d4hmypkkgl25q8n7"; depends=[Biobase curl data_table digest flowCore flowWorkspace ggplot2 gplots heatmaply httr jsonlite pheatmap plotly preprocessCore R6 Rlabkey rmarkdown scales]; };
-  InPAS = derive2 { name="InPAS"; version="2.10.0"; sha256="06a5lqx5ybcyv7szw50x686cib4mwyh9h5fpiqgy4whlxsr8sjiy"; depends=[AnnotationDbi batchtools Biobase Biostrings BSgenome cleanUpdTSeq depmixS4 dplyr flock future future_apply GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 IRanges limma magrittr parallelly plyranges preprocessCore readr reshape2 RSQLite S4Vectors]; };
-  InTAD = derive2 { name="InTAD"; version="1.22.0"; sha256="01vwvv6cggflgwskb8kyf0izzz0dq1yyk05d9k2c6z59gqindi2n"; depends=[Biobase BiocGenerics GenomicRanges ggplot2 ggpubr IRanges mclust MultiAssayExperiment qvalue rtracklayer S4Vectors SummarizedExperiment]; };
-  Informeasure = derive2 { name="Informeasure"; version="1.12.1"; sha256="0yzi6llgv2sz0yigrcdhann0h4mfvz2x5khpgfr3ncypz92kd0f8"; depends=[entropy]; };
-  IntEREst = derive2 { name="IntEREst"; version="1.26.0"; sha256="0gs7bcizksc16xw6wig5af28whv31qf09wh4sj5s4i37642rs7zf"; depends=[BiocGenerics BiocParallel Biostrings DBI DESeq2 DEXSeq edgeR GenomicAlignments GenomicFeatures GenomicFiles GenomicRanges IRanges RMySQL Rsamtools S4Vectors seqinr seqLogo SummarizedExperiment]; };
-  IntOMICS = derive2 { name="IntOMICS"; version="1.2.0"; sha256="1qhni8p8zap9szi499jrdxkacdrb7vdd4va5h4n0kdi4qr80vrzh"; depends=[bestNormalize bnlearn bnstruct cowplot ggplot2 ggraph gplots igraph matrixStats numbers RColorBrewer rlang SummarizedExperiment]; };
-  InterCellar = derive2 { name="InterCellar"; version="2.8.0"; sha256="1xbrvjy7pdb94lb0arcwj1h4r6skj7cv0diwialwpi8mi3nzwj9j"; depends=[biomaRt circlize colorspace colourpicker ComplexHeatmap config data_table dendextend dplyr DT factoextra fmsb fs ggplot2 golem htmltools htmlwidgets igraph plotly plyr readxl rlang scales shiny shinyalert shinycssloaders shinydashboard shinyFeedback shinyFiles signal tibble tidyr umap visNetwork wordcloud2]; };
-  InterMineR = derive2 { name="InterMineR"; version="1.24.0"; sha256="1rfqzmc7pl13g5n41rdcxy4k69qhmwgq8jci1v6j8cppzqi641ni"; depends=[Biostrings GenomicRanges httr igraph IRanges RCurl RJSONIO S4Vectors sqldf SummarizedExperiment XML xml2]; };
-  InteractionSet = derive2 { name="InteractionSet"; version="1.30.0"; sha256="0mpgxcwhb734pyn6bj93xknb704yrjkprxpa7kqwl24rbqyjydqs"; depends=[BiocGenerics GenomeInfoDb GenomicRanges IRanges Matrix Rcpp S4Vectors SummarizedExperiment]; };
-  InteractiveComplexHeatmap = derive2 { name="InteractiveComplexHeatmap"; version="1.10.0"; sha256="14hyq6szlj4xpd8yxwfli61g1mrc5s5r4m9l9c788z42jzq5jkkp"; depends=[clisymbols ComplexHeatmap digest fontawesome GetoptLong htmltools IRanges jsonlite kableExtra RColorBrewer S4Vectors shiny svglite]; };
-  IntramiRExploreR = derive2 { name="IntramiRExploreR"; version="1.24.0"; sha256="1hk6za3csxzz7qz6vqbm7iyqgrbk73p06mallincqzwx1dnzdpj7"; depends=[FGNet igraph knitr]; };
-  IsoBayes = derive2 { name="IsoBayes"; version="1.0.1"; sha256="134ncn81zd56k8qg92h5pz1cr07pij73bmam23h4ddxv22vahcwb"; depends=[data_table doParallel doRNG foreach ggplot2 glue HDInterval iterators Rcpp RcppArmadillo S4Vectors SummarizedExperiment]; };
-  IsoCorrectoR = derive2 { name="IsoCorrectoR"; version="1.20.0"; sha256="0q14xj8ai88z8w6rywkm59hwhgqljihl2g5lgrrdzi2wh47ab4z5"; depends=[dplyr magrittr pracma quadprog readr readxl stringr tibble WriteXLS]; };
-  IsoCorrectoRGUI = derive2 { name="IsoCorrectoRGUI"; version="1.18.0"; sha256="1h6p9k0y1id6n2gjybyj44hpw32v74yyhcs5iy4qzhd62nmdalwr"; depends=[IsoCorrectoR readxl tcltk2]; };
-  IsoformSwitchAnalyzeR = derive2 { name="IsoformSwitchAnalyzeR"; version="2.2.0"; sha256="1yin2jv06g3jrzadq6yjcr14jz1zzwyxipzna5csgr013dkkrl8h"; depends=[Biobase BiocGenerics BiocParallel Biostrings BSgenome DBI DEXSeq dplyr edgeR futile_logger GenomeInfoDb GenomicRanges ggplot2 gridExtra IRanges limma magrittr pfamAnalyzeR plyr RColorBrewer RCurl readr reshape2 rtracklayer S4Vectors satuRn stringr SummarizedExperiment sva tibble tidyr tximeta tximport VennDiagram XVector]; };
-  KBoost = derive2 { name="KBoost"; version="1.10.0"; sha256="1sbd104v35wbx148csavk6d1vi8nh53knj4jvl0454q49x2dlchi"; depends=[]; };
-  KCsmart = derive2 { name="KCsmart"; version="2.60.0"; sha256="081j7n4c03pvwq5p99cb9y9acy13isvcrrnk5yqrxzyh95n13wbr"; depends=[BiocGenerics KernSmooth multtest siggenes]; };
-  KEGGREST = derive2 { name="KEGGREST"; version="1.42.0"; sha256="05fc1i1bcdvvy4mr4m2cdqxd3jrj1rxkxy7c43yrliv5dlikyb07"; depends=[Biostrings httr png]; };
-  KEGGgraph = derive2 { name="KEGGgraph"; version="1.62.0"; sha256="0i9iqr87mqih0rkbjx3wa383x4yfyzpcb0b0xzairbqgygvcq4kl"; depends=[graph RCurl Rgraphviz XML]; };
-  KEGGlincs = derive2 { name="KEGGlincs"; version="1.28.0"; sha256="06rgmq28g1hw8r6isn1f5y9jiszmckvbicdlkna9x9wh9jzp0q5i"; depends=[AnnotationDbi gtools hgu133a_db httr igraph KEGGgraph KEGGREST KOdata org_Hs_eg_db plyr RJSONIO XML]; };
-  KinSwingR = derive2 { name="KinSwingR"; version="1.20.0"; sha256="04vy8da4cza30ivf8jbrmysz71i7dwp787fazn4xr83jvs5vxgp5"; depends=[BiocParallel data_table sqldf]; };
-  KnowSeq = derive2 { name="KnowSeq"; version="1.16.0"; sha256="0665wwm8skhh7vqgg2kx2izbd3ks0zkar1m73fqj33rx7fjrqbzb"; depends=[caret cqn e1071 edgeR ggplot2 gridExtra Hmisc httr jsonlite kernlab limma praznik R_utils randomForest reshape2 rlist rmarkdown stringr sva XML]; };
-  LACE = derive2 { name="LACE"; version="2.6.1"; sha256="02xxf0l8z6zgdmxf6nfw9vizah38i2midqgdl11iwn72ybbgcamq"; depends=[biomaRt bsplus callr configr curl data_table data_tree doParallel dplyr DT forcats foreach fs ggplot2 htmltools htmlwidgets igraph jsonlite logr Matrix purrr RColorBrewer readr Rfast shiny shinyBS shinydashboard shinyFiles shinyjs shinythemes shinyvalidate sortable stringi stringr SummarizedExperiment svglite tidyr]; };
-  LBE = derive2 { name="LBE"; version="1.70.0"; sha256="0fvjgrxdkw6nnrbgk554cgmmlz33gia15pmsmwkv98phrwhhv6cr"; depends=[]; };
-  LEA = derive2 { name="LEA"; version="3.14.0"; sha256="1rhlrcp9rzf64rkabgk3gd8jqdg8ldwpkxvpfb6g49bgpkg1h6b1"; depends=[]; };
-  LOBSTAHS = derive2 { name="LOBSTAHS"; version="1.28.0"; sha256="0gbyd341hjsvkl9axb8mpyyaaks8kl5s10k1kx1hzgrfhcrm0s6d"; depends=[CAMERA xcms]; };
-  LOLA = derive2 { name="LOLA"; version="1.32.0"; sha256="0w3c1bywch6629h8dbjvi24mrpxkwbaj5vaxrvyvx7a31k04zjqc"; depends=[BiocGenerics data_table GenomicRanges IRanges reshape2 S4Vectors]; };
-  LPE = derive2 { name="LPE"; version="1.76.0"; sha256="0ihsyamx3zk0830bs2bfpl4ich30cs6hmr7q2l6x6b5ycgsvbdq9"; depends=[]; };
-  LPEadj = derive2 { name="LPEadj"; version="1.62.0"; sha256="17m5lclr2rwb2z0i230gsxkccysmpcvsp4kxjpdjhvnikfm46ssp"; depends=[LPE]; };
-  LRBaseDbi = derive2 { name="LRBaseDbi"; version="2.12.1"; sha256="11kwqpnymck0qkb5g6k6r4yiz6w0zvy08y2hgh2xxz0cms1vpkq5"; depends=[AnnotationDbi Biobase DBI RSQLite]; };
-  LRcell = derive2 { name="LRcell"; version="1.10.0"; sha256="19p5vwsr1hq6p02g6alysm7maalrlpg8lg8r76ffsbh1wqj776fp"; depends=[AnnotationHub BiocParallel dplyr ExperimentHub ggplot2 ggrepel magrittr]; };
-  LedPred = derive2 { name="LedPred"; version="1.36.0"; sha256="1nfsqz03xaychi6qf4cdjqb28253hdnswl6wvc3jgnjilh8xc8mm"; depends=[akima e1071 ggplot2 irr jsonlite plot3D plyr RCurl ROCR testthat]; };
-  LinTInd = derive2 { name="LinTInd"; version="1.6.0"; sha256="0bk7l81x8rm13ps8n1jvd20fnl9si1139r61vzb5z0l3h3v1m9da"; depends=[ape BiocGenerics Biostrings cowplot data_tree dplyr ggnewscale ggplot2 ggtree IRanges networkD3 pheatmap purrr reshape2 rlist S4Vectors stringdist stringr]; };
-  LineagePulse = derive2 { name="LineagePulse"; version="1.21.0"; sha256="09x1i7slysqf3dpjzck6rgfzhyswaj0kk8i047yscg8fcaksbmqg"; depends=[BiocParallel circlize ComplexHeatmap ggplot2 gplots knitr Matrix RColorBrewer SingleCellExperiment SummarizedExperiment]; };
-  LinkHD = derive2 { name="LinkHD"; version="1.16.0"; sha256="1ic1vymbp2cxxq0xkh1szw8ldc197599511azc7k6h4d42rbw74f"; depends=[cluster data_table emmeans ggplot2 ggpubr gridExtra MultiAssayExperiment reshape2 rio scales vegan]; };
-  Linnorm = derive2 { name="Linnorm"; version="2.26.0"; sha256="1ax5zmby8zw0mgxjd8yhlk4ai0s03zq59qwzqgv8zqlms8yjpvs2"; depends=[amap apcluster ellipse fastcluster fpc ggdendro ggplot2 gmodels igraph limma MASS mclust Rcpp RcppArmadillo Rtsne statmod vegan zoo]; };
-  LiquidAssociation = derive2 { name="LiquidAssociation"; version="1.56.0"; sha256="00k20l2cw54wzji18jdf9716xpza0h1pdh7n8d0v3krvlmiiz3zb"; depends=[Biobase geepack org_Sc_sgd_db yeastCC]; };
-  LoomExperiment = derive2 { name="LoomExperiment"; version="1.20.0"; sha256="0mwc5f15s5lw36jdjz3pzm0d5bck0hbsalbcyy1zyq0pqa2lyl7k"; depends=[BiocIO DelayedArray GenomicRanges HDF5Array Matrix rhdf5 S4Vectors SingleCellExperiment stringr SummarizedExperiment]; };
-  LymphoSeq = derive2 { name="LymphoSeq"; version="1.30.0"; sha256="18g6s1fd274qrrn20w02hqav5ff53g5c61v1ygv12z370n835g42"; depends=[Biostrings circlize data_table dplyr ggplot2 ggtree ineq LymphoSeqDB msa phangorn plyr RColorBrewer reshape stringdist UpSetR VennDiagram]; };
-  M3C = derive2 { name="M3C"; version="1.24.0"; sha256="0q6npc5pglmhzm9270pi11kbp5wg3ncvflp4rhv3w778qza2zlk1"; depends=[cluster corpcor doParallel doSNOW foreach ggplot2 Matrix matrixcalc Rtsne umap]; };
-  M3Drop = derive2 { name="M3Drop"; version="1.28.0"; sha256="0xn458kc7hwhlf1jfzz6x5wlzb5pps2fa2n52jsp9zifsrk2zpkz"; depends=[bbmle gplots Hmisc irlba Matrix matrixStats numDeriv RColorBrewer reldist statmod]; };
-  MACSQuantifyR = derive2 { name="MACSQuantifyR"; version="1.16.0"; sha256="0y9xjk06lxf9bwlpzf73xj175858hpdgcyqdk9qjzlik0g1aksd1"; depends=[ggplot2 ggrepel gridExtra lattice latticeExtra png prettydoc readxl rmarkdown rvest xml2]; };
-  MACSr = derive2 { name="MACSr"; version="1.10.0"; sha256="1mnbxhmgh8ca5drspvsskf554kp31a2s35f9f05j49zzjrzma74p"; depends=[AnnotationHub basilisk ExperimentHub reticulate S4Vectors]; };
-  MADSEQ = derive2 { name="MADSEQ"; version="1.28.0"; sha256="10bgj9z1l0l9nmz8hdag9ngy9xwz1hj1jvhk26y2pqli6d6448yx"; depends=[Biostrings BSgenome BSgenome_Hsapiens_UCSC_hg19 coda GenomeInfoDb GenomicAlignments GenomicRanges IRanges preprocessCore rjags Rsamtools rtracklayer S4Vectors SummarizedExperiment VariantAnnotation vcfR VGAM zlibbioc]; };
-  MAGAR = derive2 { name="MAGAR"; version="1.10.0"; sha256="1yk3c2gkkvbzvf4svixbg5mnb7hrdiyxprf9ixaqhhs2jic88cms"; depends=[argparse bigstatsr crlmm data_table doParallel ff HDF5Array igraph impute jsonlite plyr reshape2 rjson RnBeads RnBeads_hg19 snpStats UpSetR]; };
-  MAGeCKFlute = derive2 { name="MAGeCKFlute"; version="2.6.0"; sha256="0bjylxdaw5695673yqrgx37s475w035djr9az3s1z9xd89ksv0xr"; depends=[Biobase clusterProfiler depmap DOSE enrichplot ggplot2 ggrepel gridExtra msigdbr pathview reshape2]; };
-  MAI = derive2 { name="MAI"; version="1.8.0"; sha256="0wiax2lij7k00havwzja120fvn65wkq57mv7kvwkgfya97k73g27"; depends=[caret doParallel e1071 foreach future future_apply missForest pcaMethods S4Vectors SummarizedExperiment tidyverse]; };
-  MAIT = derive2 { name="MAIT"; version="1.36.0"; sha256="1kljw50mzdmd9b35qjkagzilhhdf4dzv8n96g36jj7k4952d1h6g"; depends=[agricolae CAMERA caret class e1071 gplots MASS pls plsgenomics Rcpp xcms]; };
-  MANOR = derive2 { name="MANOR"; version="1.74.0"; sha256="10zf6c1vx6cp4wg6axpmbpxk2hlmf6mga7rdh765fznwb71r4h0x"; depends=[GLAD]; };
-  MAST = derive2 { name="MAST"; version="1.28.0"; sha256="17iycxxp6jb56ra21546kh2zlrm8by2vrlvsxvx8xmbpk32fb4lp"; depends=[abind Biobase BiocGenerics data_table ggplot2 Matrix plyr progress reshape2 S4Vectors SingleCellExperiment stringr SummarizedExperiment]; };
-  MBASED = derive2 { name="MBASED"; version="1.36.0"; sha256="0gdjpp8g1wbyzriv3mgny0hxnas71gdv8f1mykmja65wr9lhkx8x"; depends=[BiocGenerics BiocParallel GenomicRanges RUnit SummarizedExperiment]; };
-  MBAmethyl = derive2 { name="MBAmethyl"; version="1.36.0"; sha256="022w2lvdzrwvnrcr80gmnypxk0djyp3w5qi4ml1bkh1ixhdbic47"; depends=[]; };
-  MBCB = derive2 { name="MBCB"; version="1.56.0"; sha256="1hjylg7rkynwgxvh07rcwzg1awfcv7xvg2l5pyzyl7fxgczmn7px"; depends=[preprocessCore tcltk2]; };
-  MBECS = derive2 { name="MBECS"; version="1.6.0"; sha256="1j7vb26n2fnf5fkk8hfz552yx91g4zg719alhg4hg2vvjd1qx2l1"; depends=[cluster dplyr ggplot2 gridExtra limma lme4 lmerTest magrittr Matrix pheatmap phyloseq rmarkdown ruv sva tibble tidyr vegan]; };
-  MBQN = derive2 { name="MBQN"; version="2.14.0"; sha256="0shy9b1qj5fr7qs6c03ygqs3whv2d4ik59qxsgmcs880rhxxw4x2"; depends=[BiocFileCache ggplot2 limma PairedData preprocessCore rappdirs RCurl rmarkdown SummarizedExperiment xml2]; };
-  MBttest = derive2 { name="MBttest"; version="1.30.0"; sha256="1m7byr93kbb7d2nx3cv2v72vg8rwvr5b59n6wpdlx1lg167dlp2k"; depends=[gplots gtools]; };
-  MCbiclust = derive2 { name="MCbiclust"; version="1.26.0"; sha256="1jbhlykxb0l28mmlzmh4pa85jh95jd9imvy2jp7rpkgmjdi8ndrb"; depends=[AnnotationDbi BiocParallel cluster GGally ggplot2 GO_db org_Hs_eg_db scales WGCNA]; };
-  MDTS = derive2 { name="MDTS"; version="1.22.0"; sha256="1d898xiwjmn1lhy6gdav7p0f7w1wrhi5545j6fi835nhfw53mphj"; depends=[Biostrings DNAcopy GenomicAlignments GenomicRanges IRanges Rsamtools stringr]; };
-  MEAL = derive2 { name="MEAL"; version="1.32.0"; sha256="0vwb3wag7hsi25c9r4j1yp0lh5ssgnrdbw3f5gbkxswd3vi8sh2p"; depends=[Biobase BiocGenerics GenomicRanges ggplot2 Gviz IRanges isva limma matrixStats minfi missMethyl MultiDataSet permute S4Vectors SmartSVA SummarizedExperiment vegan]; };
-  MEAT = derive2 { name="MEAT"; version="1.14.0"; sha256="0hd1yv7vfxifhadn6v8wvri96j0v3b3wma0245ky9svh79baswd0"; depends=[dplyr dynamicTreeCut glmnet impute minfi RPMM stringr SummarizedExperiment tibble wateRmelon]; };
-  MEB = derive2 { name="MEB"; version="1.16.0"; sha256="18vf3cyw5ld7a95ksa4g2v0rrcrdk0dyw0jjiyywd1kmnkkv8s8g"; depends=[e1071 edgeR scater SingleCellExperiment SummarizedExperiment wrswoR]; };
-  MEDIPS = derive2 { name="MEDIPS"; version="1.54.0"; sha256="17girgyqcb6mxwkmbxdg7fn7sg2jddf5xgy7yl11gwa5a3k42ph8"; depends=[biomaRt Biostrings BSgenome DNAcopy edgeR GenomicRanges gtools IRanges preprocessCore Rsamtools rtracklayer]; };
-  MEDME = derive2 { name="MEDME"; version="1.62.0"; sha256="01fyrfx7mfz2qb0lj92cxj2piy78zqfpi7gnw2x2bn4mdjqpqpjh"; depends=[Biostrings drc MASS]; };
-  MEIGOR = derive2 { name="MEIGOR"; version="1.36.2"; sha256="09jxgppgshslj7fq6znh8qg81ys5mr0irqhbsaq9bpsbkq2d181b"; depends=[CNORode deSolve Rsolnp snowfall]; };
-  MGFM = derive2 { name="MGFM"; version="1.36.0"; sha256="02a1w5m9840s0x700dwvpvq7f96fyygdjpsrcfxdfsr491zamc2r"; depends=[annotate AnnotationDbi]; };
-  MGFR = derive2 { name="MGFR"; version="1.28.0"; sha256="08k1as0wh1a2z1d2m659y6khl2cqa6v6p6sxf913ak4kk3ibab0a"; depends=[annotate biomaRt]; };
-  MICSQTL = derive2 { name="MICSQTL"; version="1.0.0"; sha256="1q711hvhf1cjvkyvifxcl5xmyrr4rxj6djxiqqdsyrwffsj9iy7g"; depends=[BiocParallel dirmult ggplot2 ggpubr ggridges glue magrittr nnls purrr S4Vectors SummarizedExperiment TCA TOAST]; };
-  MIRA = derive2 { name="MIRA"; version="1.24.0"; sha256="03srd513r7l5xpvbv03vksddw1hqiwpqxzims85jvzdl2fvyikx2"; depends=[Biobase BiocGenerics bsseq data_table GenomicRanges ggplot2 IRanges S4Vectors]; };
-  MLInterfaces = derive2 { name="MLInterfaces"; version="1.82.0"; sha256="0aga7xhx5d1xp09n2im7yqi9y1b3v22l554hi35ahg2lwwvxjiw1"; depends=[annotate Biobase BiocGenerics cluster fpc gbm gdata genefilter ggvis hwriter magrittr MASS mlbench pls RColorBrewer Rcpp rpart sfsmisc shiny SummarizedExperiment threejs]; };
-  MLP = derive2 { name="MLP"; version="1.50.0"; sha256="0hh6q2x841dhdig1f2fg4y8wn1q25lvdznh0630qsz9ciaig94wh"; depends=[AnnotationDbi gplots]; };
-  MLSeq = derive2 { name="MLSeq"; version="2.20.0"; sha256="1q6qwizqyfplyvkhbkp4m4ssmglkr26xdp8r79ana06hrc3k6hin"; depends=[Biobase caret DESeq2 edgeR foreach ggplot2 limma pamr plyr sSeq SummarizedExperiment testthat VennDiagram xtable]; };
-  MMDiff2 = derive2 { name="MMDiff2"; version="1.30.0"; sha256="0lamw826kl57ffascr54cvjmxi70gqx21nnsfhdadbkqvzrcfwyh"; depends=[Biobase Biostrings BSgenome GenomicRanges ggplot2 locfit RColorBrewer Rsamtools S4Vectors shiny]; };
-  MMUPHin = derive2 { name="MMUPHin"; version="1.16.0"; sha256="0lhvsx5yjvqh5d3h860sv8cf3h73nrzvljpkqrd9ks0irc4gcm6d"; depends=[cowplot dplyr fpc ggplot2 igraph Maaslin2 metafor stringr tidyr]; };
-  MODA = derive2 { name="MODA"; version="1.28.0"; sha256="1axm6lfg6wv3rm35ajsc4cjaqbriyb4hzj3sr8ks6h131fn7sjw2"; depends=[AMOUNTAIN cluster dynamicTreeCut igraph RColorBrewer WGCNA]; };
-  MOFA2 = derive2 { name="MOFA2"; version="1.12.1"; sha256="1vryfj2ikc0c3md2pg4jyg0n3jj6lh0rwm9069v42172pbwc0ikp"; depends=[basilisk corrplot cowplot DelayedArray dplyr forcats ggplot2 ggrepel HDF5Array magrittr pheatmap RColorBrewer reshape2 reticulate rhdf5 Rtsne stringi tidyr uwot]; };
-  MOGAMUN = derive2 { name="MOGAMUN"; version="1.12.0"; sha256="0x7waxamd7hykjcphx4xhl392rjfp2pkhn98gpg60224am7yclav"; depends=[BiocParallel igraph RCy3 RUnit stringr]; };
-  MOMA = derive2 { name="MOMA"; version="1.14.0"; sha256="1ksh2ikbzppcdncy0fi09kpkm13jrmnv7azpgjy51qns0525c9fc"; depends=[circlize cluster ComplexHeatmap dplyr ggplot2 magrittr MKmisc MultiAssayExperiment qvalue RColorBrewer readr reshape2 rlang stringr tibble tidyr]; };
-  MOSim = derive2 { name="MOSim"; version="1.16.0"; sha256="0pwxkkkbw65142xp26lig3xmfcc11sb1kz68qnif716jqzd2y5a9"; depends=[Biobase dplyr ggplot2 HiddenMarkov IRanges lazyeval matrixStats purrr rlang S4Vectors scales stringi stringr tibble tidyr zoo]; };
-  MPFE = derive2 { name="MPFE"; version="1.38.0"; sha256="08y87lg3xysycya2x5xz9ybm3x4vz7kblan9xaa42nf6fy92fs5i"; depends=[]; };
-  MPRAnalyze = derive2 { name="MPRAnalyze"; version="1.20.0"; sha256="06v3lppp2qxpj0snrn42yyljkpsb5xd7gd6ziiiizs62wahg6g29"; depends=[BiocParallel progress SummarizedExperiment]; };
-  MQmetrics = derive2 { name="MQmetrics"; version="1.10.0"; sha256="15jkmdj2k5h8vbi332y7b4xzm2330g2s13l6lf2d1v9pg5aqrisq"; depends=[cowplot dplyr ggforce gghalves ggplot2 ggpubr ggrepel gridExtra gtable knitr magrittr plyr purrr RColorBrewer readr reshape2 rlang rmarkdown scales stringr tidyr]; };
-  MSA2dist = derive2 { name="MSA2dist"; version="1.6.0"; sha256="1y1d6rp9bcx9acc21rak0dh93dm06f7qv6zzy5nqd1dgs77vhb1s"; depends=[ape Biostrings doParallel dplyr foreach GenomicRanges IRanges Rcpp RcppThread rlang seqinr stringi stringr tibble tidyr]; };
-  MSPrep = derive2 { name="MSPrep"; version="1.12.0"; sha256="1fbnvsrs1mka3ssr9imk0zgsjjrbl5nczhg1g8hzmvw7dj5fijhi"; depends=[crmn dplyr magrittr missForest pcaMethods preprocessCore rlang S4Vectors stringr SummarizedExperiment sva tibble tidyr VIM]; };
-  MSnID = derive2 { name="MSnID"; version="1.36.0"; sha256="1hmfh7v7p5d741x2wh1njqwkmfmf3xmwkqy88kalrcjzrdwfpv9b"; depends=[AnnotationDbi AnnotationHub Biobase BiocGenerics BiocStyle Biostrings data_table doParallel dplyr foreach ggplot2 iterators msmsTests MSnbase mzID mzR ProtGenerics purrr R_cache Rcpp reshape2 rlang RUnit stringr tibble xtable]; };
-  MSnbase = derive2 { name="MSnbase"; version="2.28.1"; sha256="1622mmm5n8yl4qjq8bda7689qdfz1rhyxyh8s3q5475al1d0mpsl"; depends=[affy Biobase BiocGenerics BiocParallel digest ggplot2 impute IRanges lattice MALDIquant MASS MsCoreUtils mzID mzR pcaMethods plyr ProtGenerics Rcpp S4Vectors scales vsn XML]; };
-  MSstats = derive2 { name="MSstats"; version="4.10.1"; sha256="1y6063n1f00qn7hwsj87phdhi2bgp4frbmzkas2c1ps0ck83az17"; depends=[checkmate data_table ggplot2 ggrepel gplots htmltools limma lme4 marray MASS MSstatsConvert plotly preprocessCore Rcpp RcppArmadillo statmod survival]; };
-  MSstatsBig = derive2 { name="MSstatsBig"; version="1.0.0"; sha256="0gaf22l8ccqff4vfy72s6swfp0p6675a83n1himpmh0nyb1mkwal"; depends=[arrow DBI dplyr MSstats MSstatsConvert readr sparklyr]; };
-  MSstatsConvert = derive2 { name="MSstatsConvert"; version="1.12.1"; sha256="0psb7qm79nc6z8cp5fs8imnjxj2s5m2yvj7xr7kg8i2618jz83wa"; depends=[checkmate data_table log4r stringi]; };
-  MSstatsLOBD = derive2 { name="MSstatsLOBD"; version="1.10.0"; sha256="1pvpvp3m76vrc1kwl8rniglkzqg8d6dv8kjidmp7mbpixljfa9yq"; depends=[ggplot2 minpack_lm Rcpp]; };
-  MSstatsLiP = derive2 { name="MSstatsLiP"; version="1.8.1"; sha256="1n9z1xirkkglvivc19zqqvk5jwgzsm9424phldfj080p0aibjkmn"; depends=[Biostrings checkmate data_table dplyr factoextra ggplot2 ggpubr gridExtra MSstats MSstatsConvert MSstatsPTM purrr Rcpp scales stringr tibble tidyr tidyverse]; };
-  MSstatsPTM = derive2 { name="MSstatsPTM"; version="2.4.4"; sha256="1v3b4a1q6zb12k80gcv8x2nwcya1n2jyzzli1wy1qwha56mxg8im"; depends=[Biostrings checkmate data_table dplyr ggplot2 ggrepel gridExtra MSstats MSstatsConvert MSstatsTMT Rcpp stringi stringr]; };
-  MSstatsQC = derive2 { name="MSstatsQC"; version="2.20.0"; sha256="0lf12y4v4fjm105lnpvh832y018cnn7zxkvjncb4xy5qgvy59n42"; depends=[dplyr ggExtra ggplot2 MSnbase plotly qcmetrics]; };
-  MSstatsQCgui = derive2 { name="MSstatsQCgui"; version="1.22.0"; sha256="033ld5kns6w0gi8h7fzwvhv297kk9dqay31i1336ab9zss3l7wyp"; depends=[dplyr ggExtra gridExtra MSstatsQC plotly shiny]; };
-  MSstatsShiny = derive2 { name="MSstatsShiny"; version="1.4.3"; sha256="0wga58icd7n75n6bdsk29sw1sq9dsydq29z0qvnvq623zwxq7yg3"; depends=[data_table dplyr DT ggplot2 ggrepel gplots Hmisc htmltools marray mockery MSstats MSstatsConvert MSstatsPTM MSstatsTMT plotly readxl shiny shinyBS shinybusy shinyjs tidyr uuid]; };
-  MSstatsTMT = derive2 { name="MSstatsTMT"; version="2.10.0"; sha256="00ykgnzwx15szwiqlcdfpnfh40mryj3zlbix3pysxj44svvz1vz4"; depends=[checkmate data_table ggplot2 limma lme4 lmerTest MSstats MSstatsConvert]; };
-  MVCClass = derive2 { name="MVCClass"; version="1.76.0"; sha256="16finp6q89n6x5q2v1khpfp5ys7d4dvlh3kacv5qbdh1bsb3fpax"; depends=[]; };
-  MWASTools = derive2 { name="MWASTools"; version="1.26.0"; sha256="0h7c0w9adxrrbn7kd1p7pldcgwv3hmq957zkaa1q9asgdzmf4jd5"; depends=[boot car ComplexHeatmap ggplot2 glm2 gridExtra igraph KEGGgraph KEGGREST ppcor qvalue RCurl SummarizedExperiment]; };
-  Maaslin2 = derive2 { name="Maaslin2"; version="1.16.0"; sha256="1d95dv46b36ncwb7zdn0wvshg4v73qjfs3hij0jmbkkxvf2il9iq"; depends=[biglm car chemometrics cplm data_table dplyr edgeR ggplot2 glmmTMB hash lme4 lmerTest logging MASS metagenomeSeq optparse pbapply pcaPP pheatmap pscl robustbase tibble vegan]; };
-  Macarron = derive2 { name="Macarron"; version="1.6.0"; sha256="19zn8s6d6g9zaid77nkpy0fcvmvkxpgjzj435p8lj068mw4pi9b7"; depends=[BiocParallel data_table DelayedArray dynamicTreeCut ff logging Maaslin2 plyr psych RCurl RJSONIO SummarizedExperiment WGCNA xml2]; };
-  MantelCorr = derive2 { name="MantelCorr"; version="1.72.0"; sha256="0jzng0vwsm47kjrvig57zkynvz71kz4xvi4fn4an71927mgh52j0"; depends=[]; };
-  MassArray = derive2 { name="MassArray"; version="1.54.0"; sha256="1d1b1rvicm2p96qz47svwxl1jky37p7653545fh6j8nhzqlk68ng"; depends=[]; };
-  MassSpecWavelet = derive2 { name="MassSpecWavelet"; version="1.68.0"; sha256="044rz2xsz2v8i9ha20hxn2cwf7wa74p5f25jql8ancp6r3gim9sy"; depends=[]; };
-  MatrixGenerics = derive2 { name="MatrixGenerics"; version="1.14.0"; sha256="14x5jib5xh2006lg96v3b9n2pnbjcbsd5igqybqsv0c53rk9394d"; depends=[matrixStats]; };
-  MatrixQCvis = derive2 { name="MatrixQCvis"; version="1.10.0"; sha256="0drpj0n1rvm77ls1rjkp17hi5x4rhwvjs6mywscsphn57xkjwjv9"; depends=[ComplexHeatmap dplyr ExperimentHub ggplot2 Hmisc htmlwidgets impute imputeLCMD limma MASS pcaMethods plotly proDA rlang rmarkdown Rtsne shiny shinydashboard shinyhelper shinyjs SummarizedExperiment tibble tidyr umap UpSetR vsn]; };
-  MatrixRider = derive2 { name="MatrixRider"; version="1.34.0"; sha256="021z613zvk00j3bh4gx2lml4b2lbs7s5x582f7yb0x8k9mi1wij3"; depends=[Biostrings IRanges S4Vectors TFBSTools XVector]; };
-  MeSHDbi = derive2 { name="MeSHDbi"; version="1.38.0"; sha256="132lmrfkjsdivavzksvbiwfskbmvybrgcm2ym2b9gghinldyfjr8"; depends=[AnnotationDbi Biobase RSQLite]; };
-  MeasurementError_cor = derive2 { name="MeasurementError.cor"; version="1.74.0"; sha256="0hpcd026pw9xk0g2z25b7236daimy9rn21l3v58icrdzkgxk2xif"; depends=[]; };
-  Melissa = derive2 { name="Melissa"; version="1.18.0"; sha256="0zz27dff78p5hysfvwqjjjjl6x5d5z222pfdx9cni4qnib4v1s36"; depends=[assertthat BiocStyle BPRMeth cowplot data_table doParallel foreach GenomicRanges ggplot2 magrittr matrixcalc mclust MCMCpack mvtnorm ROCR truncnorm]; };
-  Mergeomics = derive2 { name="Mergeomics"; version="1.30.0"; sha256="0q324acmy6g02wq6s9qw0n643dfjl7cf9v1y7crk27liaqm0sj03"; depends=[]; };
-  MesKit = derive2 { name="MesKit"; version="1.12.0"; sha256="16gwrj7i70bnfp69vaal08sq8brcwjj48jaaizz5ch8i9rwhwyb6"; depends=[AnnotationDbi ape Biostrings circlize ComplexHeatmap cowplot data_table dplyr ggplot2 ggrepel ggridges IRanges mclust phangorn pracma RColorBrewer S4Vectors tidyr]; };
-  MetCirc = derive2 { name="MetCirc"; version="1.32.0"; sha256="1ilv3g6p1mjss6a0jc7ik2kr4h3gjsm1z6aawvs9wq4jcpy2d8r5"; depends=[amap circlize ggplot2 MsCoreUtils S4Vectors scales shiny Spectra]; };
-  MetID = derive2 { name="MetID"; version="1.20.0"; sha256="13d5d6fansnqsv0bm4mxz6jwb41kkn0ay3p6s6w6j8xksaafl7ql"; depends=[ChemmineR devtools igraph Matrix stringr]; };
-  MetNet = derive2 { name="MetNet"; version="1.20.0"; sha256="17086dx5zdcp5lflhrzfpcjxbimrkq4ylxgiwjb6r2qwkhx9vq44"; depends=[BiocParallel bnlearn corpcor dplyr GeneNet GENIE3 ggplot2 parmigene psych rlang S4Vectors stabs SummarizedExperiment tibble tidyr]; };
-  MetaCyto = derive2 { name="MetaCyto"; version="1.24.0"; sha256="17fwdzxp9v9sm4rbyhh2zv5jhx1ax8cxls2b3g3yp9xk2hgwf816"; depends=[cluster fastcluster flowCore FlowSOM ggplot2 metafor tidyr]; };
-  MetaNeighbor = derive2 { name="MetaNeighbor"; version="1.22.0"; sha256="0y8nk9jq0z48phg13mf6hsfg8l54w6z6b67g0k1c9gmsb7aqq04d"; depends=[beanplot dplyr ggplot2 gplots igraph Matrix matrixStats RColorBrewer SingleCellExperiment SummarizedExperiment tibble tidyr]; };
-  MetaPhOR = derive2 { name="MetaPhOR"; version="1.4.0"; sha256="1nzwhjcs35bz626b1i3akdfvvshmw3aj6ghrgsfhir4fw8rvdig5"; depends=[clusterProfiler ggplot2 ggrepel pheatmap RCy3 RecordLinkage stringr]; };
-  MetaboAnnotation = derive2 { name="MetaboAnnotation"; version="1.6.1"; sha256="1galm8z0gz6mkqy9gr6ynhbpxbxngbrvg6p6kp3mywn6h9m7p8vv"; depends=[AnnotationHub BiocGenerics BiocParallel CompoundDb MetaboCoreUtils MsCoreUtils ProtGenerics QFeatures S4Vectors Spectra SummarizedExperiment]; };
-  MetaboCoreUtils = derive2 { name="MetaboCoreUtils"; version="1.10.0"; sha256="0bs24dwqlm8isp231jds51l7v16q0gjli1qmhjxyva3qmi5yb4dl"; depends=[MsCoreUtils]; };
-  MetaboSignal = derive2 { name="MetaboSignal"; version="1.32.1"; sha256="1x28992n37fxqhxi9kaj80457lr8dzy780k8ja27gniid4x20gdm"; depends=[AnnotationDbi biomaRt EnsDb_Hsapiens_v75 hpar igraph KEGGgraph KEGGREST MWASTools mygene org_Hs_eg_db RCurl]; };
-  MethPed = derive2 { name="MethPed"; version="1.30.0"; sha256="1xhaf7zhwga86max98hi5zq4d7dl8rcvky3p9pxzw7ld5s6n9r2j"; depends=[Biobase randomForest]; };
-  MethReg = derive2 { name="MethReg"; version="1.12.0"; sha256="1hql25dlvr7f923zngyymacdpz3zvsrzzvmc4rdc5a7w4y7ibl2n"; depends=[AnnotationHub DelayedArray dplyr ExperimentHub GenomicRanges ggplot2 ggpubr IRanges MASS Matrix plyr progress pscl readr rlang S4Vectors sesame sesameData sfsmisc stringr SummarizedExperiment tibble tidyr]; };
-  MethTargetedNGS = derive2 { name="MethTargetedNGS"; version="1.34.0"; sha256="05s8zpiqpw5qx5k2qf3vkxj69ag67gkl5mb8dxq7jpwzx51kdvwc"; depends=[Biostrings gplots seqinr stringr]; };
-  MethylAid = derive2 { name="MethylAid"; version="1.36.0"; sha256="0mzml9j6f7yycf9747ikkpfvxnwji07h8jhwa9a54ix2d0wyxk3d"; depends=[Biobase BiocGenerics BiocParallel ggplot2 gridBase hexbin matrixStats minfi RColorBrewer shiny SummarizedExperiment]; };
-  MethylMix = derive2 { name="MethylMix"; version="2.32.0"; sha256="14qh696ya8g1ay4iwypcacfrvql3iw9b0pp7mn85hb5ppfsrjqfr"; depends=[data_table digest foreach ggplot2 impute limma R_matlab RColorBrewer RCurl RPMM]; };
-  MethylSeekR = derive2 { name="MethylSeekR"; version="1.42.0"; sha256="0zsiaqz7awb94cazm3dn1bykwjgaw674q14p05dfgjpyjr7zxdgf"; depends=[BSgenome geneplotter GenomicRanges IRanges mhsmm rtracklayer]; };
-  Mfuzz = derive2 { name="Mfuzz"; version="2.62.0"; sha256="0v2l3fi9331lxfam6az265rfk52g4n75hh4rg12ykhp86ihplzpf"; depends=[Biobase e1071 tkWidgets]; };
-  MiChip = derive2 { name="MiChip"; version="1.56.0"; sha256="0ig5c7fbgjpabvx7m5x6ki08cg0vdhkyd8g5yb36y2w580qi55sn"; depends=[Biobase]; };
-  MiPP = derive2 { name="MiPP"; version="1.74.0"; sha256="1zv1yx310mjzm215vr78765s3dl8srs6mrs20dajnim09qkfshc2"; depends=[Biobase e1071 MASS]; };
-  MiRaGE = derive2 { name="MiRaGE"; version="1.44.0"; sha256="1zl1xpcgsdrlfvrfbxlgz9y09mrqv91128xywajbaljrb8r2wqka"; depends=[AnnotationDbi Biobase BiocGenerics BiocManager S4Vectors]; };
-  MicrobiomeProfiler = derive2 { name="MicrobiomeProfiler"; version="1.8.0"; sha256="1xl1kx89jgf68gdq23aflgcfyqy584gdm35237dvbqgra4aizlad"; depends=[clusterProfiler config DT enrichplot ggplot2 golem gson htmltools magrittr shiny shinycustomloader shinyWidgets]; };
-  MicrobiotaProcess = derive2 { name="MicrobiotaProcess"; version="1.14.0"; sha256="0gkjg3pqdwfxf203wwxags1xh91rb2rry5f6j1y8ah2bsky15z0l"; depends=[ape Biostrings cli coin data_table dplyr dtplyr foreach ggfun ggplot2 ggrepel ggsignif ggstar ggtree ggtreeExtra magrittr MASS patchwork pillar plyr rlang SummarizedExperiment tibble tidyr tidyselect tidytree treeio vegan zoo]; };
-  MineICA = derive2 { name="MineICA"; version="1.42.0"; sha256="1czahm7d4cyic4n2h60pkyymapw79v1dd34qc3c6his9h33mhw35"; depends=[annotate AnnotationDbi Biobase BiocGenerics biomaRt cluster colorspace fastICA foreach fpc ggplot2 GOstats graph gtools Hmisc igraph JADE lumi lumiHumanAll_db marray mclust plyr RColorBrewer Rgraphviz scales xtable]; };
-  MinimumDistance = derive2 { name="MinimumDistance"; version="1.46.0"; sha256="1gbvjq5xk7q1m10m8mmy2fxrh49q25xik0jmvjln8lng8n98xviz"; depends=[Biobase BiocGenerics data_table DNAcopy ff foreach GenomeInfoDb GenomicRanges IRanges lattice MatrixGenerics matrixStats oligoClasses S4Vectors SummarizedExperiment VanillaICE]; };
-  MobilityTransformR = derive2 { name="MobilityTransformR"; version="1.6.0"; sha256="1292fk08zi1zf0hdj56vzdgv9h9nr16vmbzypqkam7lvqqnig49h"; depends=[MetaboCoreUtils MSnbase Spectra xcms]; };
-  ModCon = derive2 { name="ModCon"; version="1.10.0"; sha256="179z85phvkpld0hirigx2nf2sy0y0jsqxgml4s1rkircfm6768jw"; depends=[data_table]; };
-  Modstrings = derive2 { name="Modstrings"; version="1.18.0"; sha256="1jjawwkvdx02ss2vw4ah2b8psgxr01z6r1rkr2pnkmrp2ma7ygks"; depends=[BiocGenerics Biostrings crayon GenomicRanges IRanges S4Vectors stringi stringr XVector]; };
-  MoleculeExperiment = derive2 { name="MoleculeExperiment"; version="1.2.2"; sha256="1863f9ig7j5q7dnrdx3lbwck4g48ac81yqa2054fyhq9xcqaxa2b"; depends=[BiocParallel cli data_table dplyr EBImage ggplot2 magrittr Matrix purrr rhdf5 rjson rlang S4Vectors SpatialExperiment terra]; };
-  Moonlight2R = derive2 { name="Moonlight2R"; version="1.0.0"; sha256="02g9dszw9f1q0maxm4ik7p22w4flxv1wx95dy6i541kh26ma61p3"; depends=[AnnotationHub Biobase circlize clusterProfiler ComplexHeatmap doParallel DOSE dplyr easyPubMed foreach fuzzyjoin GenomicRanges GEOquery gplots HiveR magrittr org_Hs_eg_db parmigene purrr qpdf randomForest RColorBrewer readr RISmed rtracklayer seqminer stringr tibble tidyHeatmap tidyr]; };
-  MoonlightR = derive2 { name="MoonlightR"; version="1.28.0"; sha256="1zmmxjig7kmfw50p7pdy0v6p3kcfjl655svg8yrlap9y750bywzr"; depends=[Biobase circlize clusterProfiler doParallel DOSE foreach GEOquery gplots HiveR limma parmigene randomForest RColorBrewer RISmed SummarizedExperiment TCGAbiolinks]; };
-  Motif2Site = derive2 { name="Motif2Site"; version="1.6.0"; sha256="0s659f3py10d4qwvv325jydix6wjndhwnhi89jip5r8nqp6svih4"; depends=[BiocGenerics Biostrings BSgenome edgeR GenomeInfoDb GenomicAlignments GenomicRanges IRanges MASS mixtools S4Vectors]; };
-  MotifDb = derive2 { name="MotifDb"; version="1.44.0"; sha256="1z72f5f3sh2ak6zjcfc6j6rblkllmdkli0kb57nwxg2j5hrys3xr"; depends=[BiocGenerics Biostrings GenomicRanges IRanges rtracklayer S4Vectors splitstackshape]; };
-  MouseFM = derive2 { name="MouseFM"; version="1.12.0"; sha256="1mr0mm9hsb672sx0zin3mcz4sswydp4j3vb0sqy83169pbkd1050"; depends=[biomaRt curl data_table dplyr GenomeInfoDb GenomicRanges ggplot2 gtools httr IRanges jsonlite reshape2 rlist scales tidyr]; };
-  MsBackendMassbank = derive2 { name="MsBackendMassbank"; version="1.10.1"; sha256="18s754jp3nlczmlyva2izr9qf2d9hmpnns3g6rpqy2nxj6zsqxdd"; depends=[BiocParallel DBI IRanges MsCoreUtils ProtGenerics S4Vectors Spectra]; };
-  MsBackendMgf = derive2 { name="MsBackendMgf"; version="1.10.0"; sha256="0yzxfar77j0byq91hpnffgzvi3i7c06i2lm0myq4dg2b228hxqyl"; depends=[BiocParallel IRanges MsCoreUtils S4Vectors Spectra]; };
-  MsBackendMsp = derive2 { name="MsBackendMsp"; version="1.6.0"; sha256="1z36lsgmn2gbwmmazxj51rf7bkjk6b6kkfpqp71c05k40vc8nx4y"; depends=[BiocParallel IRanges MsCoreUtils S4Vectors Spectra]; };
-  MsBackendRawFileReader = derive2 { name="MsBackendRawFileReader"; version="1.8.1"; sha256="0kh740c3d59a8l5b19j1mxyzvpla915a9p7qalmqn6qk5dmnjd30"; depends=[BiocParallel IRanges MsCoreUtils rawrr S4Vectors Spectra]; };
-  MsBackendSql = derive2 { name="MsBackendSql"; version="1.2.0"; sha256="1j484ypgcyhgpvb8m97d954bljddl87hw6vzrcz610jbi26m7ia0"; depends=[BiocGenerics BiocParallel data_table DBI IRanges MsCoreUtils progress ProtGenerics S4Vectors Spectra]; };
-  MsCoreUtils = derive2 { name="MsCoreUtils"; version="1.14.1"; sha256="0l6rdkpg89pds3n5y4khvaifgbvm38n0vlpi15h97rnk8x461rsz"; depends=[clue MASS Rcpp S4Vectors]; };
-  MsDataHub = derive2 { name="MsDataHub"; version="1.2.0"; sha256="03fkikbz13vfcdlca7kassprjjf2gb8jmism3kinpf0x291fc7cr"; depends=[ExperimentHub]; };
-  MsExperiment = derive2 { name="MsExperiment"; version="1.4.0"; sha256="06m0i60zh3xjqmsz6dpp0il833xzdfj0fm6xbhl7kmicvfrcnyfg"; depends=[IRanges ProtGenerics QFeatures S4Vectors Spectra SummarizedExperiment]; };
-  MsFeatures = derive2 { name="MsFeatures"; version="1.10.0"; sha256="0vpsc7i6j2skn6wba178iy406yvd4p8xf3lq2qmm2inimxl983cs"; depends=[MsCoreUtils ProtGenerics SummarizedExperiment]; };
-  MsQuality = derive2 { name="MsQuality"; version="1.2.1"; sha256="1505n807w2q0l9nczxniscy28kyc0rhpdpcbkmv9lh04hp128xq3"; depends=[BiocParallel ggplot2 htmlwidgets msdata MsExperiment plotly ProtGenerics rmzqc shiny shinydashboard Spectra stringr tibble tidyr]; };
-  MuData = derive2 { name="MuData"; version="1.6.0"; sha256="0fifviwyryms2355gv2m2psn7nkgswzpfa53q4ybrh05qigb2hsx"; depends=[DelayedArray Matrix MultiAssayExperiment rhdf5 S4Vectors SingleCellExperiment SummarizedExperiment]; };
-  Mulcom = derive2 { name="Mulcom"; version="1.52.0"; sha256="15svf18a5r4hdpc69wmbihdg6hns5mmzrklh0sd6wjq72z8ij3j5"; depends=[Biobase fields]; };
-  MultiAssayExperiment = derive2 { name="MultiAssayExperiment"; version="1.28.0"; sha256="0dmhqymh800mljcpdf817nbyg20czp8y9bg13p3r4bfj6axxckch"; depends=[Biobase BiocBaseUtils BiocGenerics DelayedArray GenomicRanges IRanges S4Vectors SummarizedExperiment tidyr]; };
-  MultiBaC = derive2 { name="MultiBaC"; version="1.12.0"; sha256="1mwfibakrxgs3r572bqqqmzq7ys6cs0bpn0wfrcb08ww2197xc4j"; depends=[ggplot2 Matrix MultiAssayExperiment pcaMethods plotrix ropls]; };
-  MultiDataSet = derive2 { name="MultiDataSet"; version="1.30.0"; sha256="1n17bpzj95hkljvgqpyv92jm4bk1d3j3mdg7106pb3dffvwv52sk"; depends=[Biobase BiocGenerics GenomicRanges ggplot2 ggrepel IRanges limma qqman S4Vectors SummarizedExperiment]; };
-  MultiMed = derive2 { name="MultiMed"; version="2.24.0"; sha256="0fxfhqyald2z7g3yqw9w1haxhlfvcfrxwlljg2s0a9b7rpryq14r"; depends=[]; };
-  MultiRNAflow = derive2 { name="MultiRNAflow"; version="1.0.0"; sha256="1vbqhd3hbna8l643v6q2la90pkbwa8whxvndyb9snqavwbqq2zjy"; depends=[Biobase ComplexHeatmap DESeq2 factoextra FactoMineR ggalluvial ggplot2 ggrepel ggsci gprofiler2 Mfuzz plot3D plot3Drgl plyr RColorBrewer reshape2 rlang S4Vectors scales SummarizedExperiment UpSetR]; };
-  MultimodalExperiment = derive2 { name="MultimodalExperiment"; version="1.2.0"; sha256="19jpax2l69dayhm9pddbg4q7bq9c4xaxdfif93pw6kq63l8g2c1d"; depends=[BiocGenerics IRanges MultiAssayExperiment S4Vectors]; };
-  MungeSumstats = derive2 { name="MungeSumstats"; version="1.10.1"; sha256="0q7ifxxi1bgis1l24dna6xwra48c4lajajs48vlwj3iaa5nsicfk"; depends=[Biostrings BSgenome data_table dplyr GenomeInfoDb GenomicRanges googleAuthR httr IRanges jsonlite magrittr R_utils RCurl rtracklayer stringr VariantAnnotation]; };
-  MutationalPatterns = derive2 { name="MutationalPatterns"; version="3.12.0"; sha256="19ya4ax6pa727hdn0118l9pwa9dxgh89dz54mm66dawxga3jhar4"; depends=[BiocGenerics Biostrings BSgenome cowplot dplyr GenomeInfoDb GenomicRanges ggalluvial ggdendro ggplot2 IRanges magrittr NMF pracma purrr RColorBrewer S4Vectors stringr tibble tidyr VariantAnnotation]; };
-  NADfinder = derive2 { name="NADfinder"; version="1.26.0"; sha256="1ig27q6cww3b0gjxd3abj026znry32q4jfmgv2wh1icb2rp1xxxq"; depends=[ATACseqQC baseline BiocGenerics corrplot csaw EmpiricalBrownsMethod GenomeInfoDb GenomicAlignments GenomicRanges IRanges limma metap Rsamtools rtracklayer S4Vectors signal SummarizedExperiment trackViewer]; };
-  NBAMSeq = derive2 { name="NBAMSeq"; version="1.18.0"; sha256="0msk3hpm4169q1ldfmi1kfh1b5q1wah8x2shlcsmgr2987vl4war"; depends=[BiocParallel DESeq2 genefilter mgcv S4Vectors SummarizedExperiment]; };
-  NCIgraph = derive2 { name="NCIgraph"; version="1.50.0"; sha256="12k9r30a36vn7vpzl0vrhsgyjjm64n5x0c7jfmq2f6c0qkxfn6v6"; depends=[graph KEGGgraph R_oo RBGL RCy3]; };
-  NOISeq = derive2 { name="NOISeq"; version="2.46.0"; sha256="0qs0sc47n3p9wmf5cmc39cb30i8pbsyizhr29b3ld197pi1ba5wb"; depends=[Biobase Matrix]; };
-  NPARC = derive2 { name="NPARC"; version="1.14.0"; sha256="014zrhmkhfhiblahq124qm8ws2m595ycji9jcpxg9l895nagpx9h"; depends=[BiocParallel broom dplyr magrittr MASS rlang tidyr]; };
-  NTW = derive2 { name="NTW"; version="1.52.0"; sha256="17327zp220xzfg5f48kkfkmmwdk75gggp56nirj7lywwwp2mx76s"; depends=[mvtnorm]; };
-  NanoMethViz = derive2 { name="NanoMethViz"; version="2.8.1"; sha256="0rwwb8y99h5rq1fxyqs7j3kc2vfmjxkbiv2wp7ndp373xjij0rcz"; depends=[AnnotationDbi assertthat BiocSingular Biostrings bsseq cli cpp11 data_table dbscan dplyr e1071 forcats fs GenomicRanges ggplot2 ggrastr glue IRanges limma patchwork purrr R_utils Rcpp readr rlang Rsamtools S4Vectors scales scico stringr SummarizedExperiment tibble tidyr withr zlibbioc]; };
-  NanoStringDiff = derive2 { name="NanoStringDiff"; version="1.32.0"; sha256="08xq7yiga7225ld9xz7wwshb541kr5fclci94w4vzg13hwvs6x6v"; depends=[Biobase matrixStats Rcpp]; };
-  NanoStringNCTools = derive2 { name="NanoStringNCTools"; version="1.10.0"; sha256="0zrv51vbsdf2m74bd0syd0qka9f4fm0i3479z2w4p1k5ima7az5j"; depends=[Biobase BiocGenerics Biostrings ggbeeswarm ggiraph ggplot2 ggthemes IRanges pheatmap RColorBrewer S4Vectors]; };
-  NanoTube = derive2 { name="NanoTube"; version="1.8.0"; sha256="1wdhg25hmgypr5y18x88sgjdf296k5ci0k9fvbjhsi75dsyy00bv"; depends=[Biobase fgsea ggplot2 limma reshape]; };
-  Nebulosa = derive2 { name="Nebulosa"; version="1.12.1"; sha256="11wn6l27cshhb1djsgqaqr8d33j4bipy0w0gafp3fkvg7mnpnhps"; depends=[ggplot2 ggrastr ks Matrix patchwork SeuratObject SingleCellExperiment SummarizedExperiment]; };
-  NetActivity = derive2 { name="NetActivity"; version="1.4.0"; sha256="0jij69065vkmr7ba898h44vyacpkmbqc1pr3c6frvwjqwazvdr4k"; depends=[airway DelayedArray DelayedMatrixStats DESeq2 NetActivityData SummarizedExperiment]; };
-  NetPathMiner = derive2 { name="NetPathMiner"; version="1.38.0"; sha256="1nppjwxvd8qgajhcs2yzch3k1r1mvvqb9sy94cpr74iga8m487nh"; depends=[igraph]; };
-  NetSAM = derive2 { name="NetSAM"; version="1.42.0"; sha256="1y9k37pq10dp5bp847hlsr2sl71ygvzsd4naqg65lpklg9zrc8la"; depends=[AnnotationDbi biomaRt DBI doParallel foreach GO_db igraph R2HTML seriation survival WGCNA]; };
-  NeuCA = derive2 { name="NeuCA"; version="1.8.1"; sha256="0763s4lii2wjd42b0gi4s0h7n4as0b3dbyz5v1n5ax22dpn2snj8"; depends=[e1071 kableExtra keras limma SingleCellExperiment]; };
-  NewWave = derive2 { name="NewWave"; version="1.12.0"; sha256="1d3kvrkjl9dhwxsvr69zryp4mz6dggzgzrbiab5wkm3n9qvvgf84"; depends=[BiocSingular DelayedArray irlba Matrix SharedObject SingleCellExperiment SummarizedExperiment]; };
-  NoRCE = derive2 { name="NoRCE"; version="1.14.0"; sha256="1b21mmmn26q17si2m1h8635a3ksnn38ajlm4mv41vaii7v8h11zv"; depends=[AnnotationDbi biomaRt DBI dbplyr dplyr GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 GO_db igraph IRanges KEGGREST png RCurl reactome_db readr reshape2 RSQLite rtracklayer rWikiPathways S4Vectors stringr SummarizedExperiment tidyr zlibbioc]; };
-  NormalyzerDE = derive2 { name="NormalyzerDE"; version="1.20.0"; sha256="1cgm9iivnn1xx1m0shac4i8cm9ar2f965wyrs6ifj41n0scqyns2"; depends=[ape Biobase car ggforce ggplot2 limma MASS matrixStats preprocessCore SummarizedExperiment vsn]; };
-  NormqPCR = derive2 { name="NormqPCR"; version="1.48.0"; sha256="19iw77aqv4j54m3f955xm4bg4jbxy0aavqys0dias26f4x8a29n7"; depends=[Biobase qpcR RColorBrewer ReadqPCR]; };
-  NuPoP = derive2 { name="NuPoP"; version="2.10.0"; sha256="1kmnm3dyscbavdkfwwp0s7xqngz6gma7475f891jgsav12xh7zwf"; depends=[]; };
-  OCplus = derive2 { name="OCplus"; version="1.76.0"; sha256="16pcqcbw8xha1xi4a03f9hpfcp1qx6qcssh1hz99sjjj5zila8rp"; depends=[interp multtest]; };
-  OGRE = derive2 { name="OGRE"; version="1.6.0"; sha256="1m7nq27wfajaggbbrgdjxf8hmf4ppjm5sxyp5rhg090286xb093i"; depends=[AnnotationHub assertthat data_table DT GenomeInfoDb GenomicRanges ggplot2 Gviz IRanges rtracklayer S4Vectors shiny shinyBS shinydashboard shinyFiles tidyr]; };
-  OLIN = derive2 { name="OLIN"; version="1.80.0"; sha256="1wsja358i36kxqnc632hpf87v7ikss8vxplbbg1m9cgy6hg9d0yr"; depends=[limma locfit marray]; };
-  OLINgui = derive2 { name="OLINgui"; version="1.76.0"; sha256="07ivdgfa471n67mx93yr66x0gx4ldym8wcxavkqj7xlx2dcmm677"; depends=[marray OLIN tkWidgets widgetTools]; };
-  OMICsPCA = derive2 { name="OMICsPCA"; version="1.20.0"; sha256="0dmqv5k00nxwryc5093y2z25zcnwz5rvndsfirpzh0276x2fbhis"; depends=[cluster clValid corrplot cowplot data_table factoextra FactoMineR fpc GenomeInfoDb ggplot2 HelloRanges IRanges kableExtra magick MASS MultiAssayExperiment NbClust OMICsPCAdata pdftools PerformanceAnalytics reshape2 rgl rmarkdown rtracklayer tidyr]; };
-  OPWeight = derive2 { name="OPWeight"; version="1.24.0"; sha256="1gchiws3h190xh13v3iry96mc27fan7lf82laxc78p9h1kcn1bcs"; depends=[MASS qvalue tibble]; };
-  ORFhunteR = derive2 { name="ORFhunteR"; version="1.10.0"; sha256="0qg69zp85ggnzhjh8y3zfbdpqi5awsqaga9q970g8793xwkpa6dr"; depends=[Biostrings BSgenome_Hsapiens_UCSC_hg38 data_table Peptides randomForest Rcpp rtracklayer stringr xfun]; };
-  ORFik = derive2 { name="ORFik"; version="1.22.2"; sha256="0wxgccq9bay64aypnqli6d97fk8mcxgzdyrww81zi5cn0c6ca07y"; depends=[AnnotationDbi BiocGenerics BiocParallel biomaRt biomartr Biostrings BSgenome cowplot curl data_table DESeq2 downloader fst GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 gridExtra httr IRanges jsonlite R_utils Rcpp RCurl Rsamtools rtracklayer S4Vectors SummarizedExperiment withr XML xml2]; };
-  OSAT = derive2 { name="OSAT"; version="1.50.0"; sha256="0kga066z3yn2c94kgfvl2a4dklgys064jbml7ccxbf3dzqgivxm1"; depends=[]; };
-  OTUbase = derive2 { name="OTUbase"; version="1.52.0"; sha256="0j38wvsfmkvnrmfi2i8vawq8w46i5yrcqn7hikqbv83x47bzspzg"; depends=[Biobase Biostrings IRanges S4Vectors ShortRead vegan]; };
-  OUTRIDER = derive2 { name="OUTRIDER"; version="1.20.0"; sha256="1yrsykqascy0533wwd0c8b6h1gn0bpzxik1jv0vp2055pzb2z4yc"; depends=[BBmisc BiocGenerics BiocParallel data_table DESeq2 generics GenomicFeatures GenomicRanges ggplot2 heatmaply IRanges matrixStats pcaMethods pheatmap plotly plyr PRROC RColorBrewer Rcpp RcppArmadillo reshape2 S4Vectors scales SummarizedExperiment]; };
-  OVESEG = derive2 { name="OVESEG"; version="1.18.0"; sha256="10pax0snvz5rk3siidaydgcb0cl0phx5wxdshzn3lbkfpw0psvj0"; depends=[BiocParallel fdrtool limma Rcpp SummarizedExperiment]; };
-  OmaDB = derive2 { name="OmaDB"; version="2.18.0"; sha256="1ngy8m94nq3nxxsj5vmvj86z3yrkfl1am14szn4w39q7spdlzcg7"; depends=[ape Biostrings GenomicRanges httr IRanges jsonlite plyr topGO]; };
-  OmicCircos = derive2 { name="OmicCircos"; version="1.40.0"; sha256="1nsznyfkrbmgcr1fbpirzsy4sriw9knnxczdggfxbmkf0hd5a89c"; depends=[GenomicRanges]; };
-  Omixer = derive2 { name="Omixer"; version="1.12.0"; sha256="02k6qvx4qxlcwp6qxx87a4rgmrqjp13w9xghc09zw4bzikwxnl0s"; depends=[dplyr forcats ggplot2 gridExtra magrittr readr stringr tibble tidyselect]; };
-  OmnipathR = derive2 { name="OmnipathR"; version="3.10.1"; sha256="1wbzb4kh7bzsvixr3vxzih9rfkpjx00f33i0yl0dqj0yixnrghwr"; depends=[checkmate crayon curl digest dplyr httr igraph jsonlite later logger lubridate magrittr progress purrr rappdirs readr readxl rlang rmarkdown rvest stringi stringr tibble tidyr tidyselect withr xml2 yaml]; };
-  OncoScore = derive2 { name="OncoScore"; version="1.30.0"; sha256="1v6x896ksp1qhgw3rbqciv9a0ivjvfhi6pdslyq6b9g1k5wranrk"; depends=[biomaRt]; };
-  OncoSimulR = derive2 { name="OncoSimulR"; version="4.4.0"; sha256="16rvb5jp7fif00i2yvlc0ksr6x5q5y3qy6zlv03c9b90inlnfgvk"; depends=[car data_table dplyr ggplot2 ggrepel graph gtools igraph RColorBrewer Rcpp Rgraphviz smatr stringr]; };
-  OpenStats = derive2 { name="OpenStats"; version="1.14.0"; sha256="1x5b3c8z2l6y6q6p2d9zmbci3xqxgiam4yd877ggxlirycnv20gv"; depends=[AICcmodavg car Hmisc jsonlite knitr MASS nlme rlist summarytools]; };
-  OrderedList = derive2 { name="OrderedList"; version="1.74.0"; sha256="0pp27bp0vbwicd9qlwx4mym6rxfvrki113wk2gwrcc8j6pmwchpa"; depends=[Biobase twilight]; };
-  Organism_dplyr = derive2 { name="Organism.dplyr"; version="1.30.1"; sha256="1s55fiqgxrdznn43qhm5yv9gp8d1msr2f39wxih0b5bm4wxhkq45"; depends=[AnnotationDbi AnnotationFilter BiocFileCache DBI dbplyr dplyr GenomeInfoDb GenomicFeatures GenomicRanges IRanges rlang RSQLite S4Vectors tibble]; };
-  OrganismDbi = derive2 { name="OrganismDbi"; version="1.44.0"; sha256="0g75y21lqmwsh28nx99zp2gxr6rhlhbw76f66qx5hrh6bm2zpm7j"; depends=[AnnotationDbi Biobase BiocGenerics BiocManager DBI GenomicFeatures GenomicRanges graph IRanges RBGL S4Vectors]; };
-  Oscope = derive2 { name="Oscope"; version="1.32.0"; sha256="1li2l9mdq2q0580a7qzvfid5n15v62fr9ys87j42k3l2w5a26smf"; depends=[BiocParallel cluster EBSeq testthat]; };
-  OutSplice = derive2 { name="OutSplice"; version="1.2.0"; sha256="1ssah22igm7mmpjs3qdcnc7d6ysvb5vl3van18vdqmv1njdf7804"; depends=[AnnotationDbi GenomicFeatures GenomicRanges IRanges org_Hs_eg_db Repitools S4Vectors TxDb_Hsapiens_UCSC_hg19_knownGene TxDb_Hsapiens_UCSC_hg38_knownGene]; };
-  PAA = derive2 { name="PAA"; version="1.36.0"; sha256="0jfvkgpw60p8p1lmlkzrv4iv8fshpn74q1v8crsm098gz1x0n052"; depends=[e1071 gplots gtools limma MASS mRMRe randomForest Rcpp ROCR sva]; };
-  PADOG = derive2 { name="PADOG"; version="1.44.0"; sha256="0yyca2k5fml0gc69i3fa67f7avkb7md0ylb0rvnhmf4srgb7ca67"; depends=[AnnotationDbi Biobase doRNG foreach GSA hgu133a_db hgu133plus2_db KEGGdzPathwaysGEO KEGGREST limma nlme]; };
-  PAIRADISE = derive2 { name="PAIRADISE"; version="1.18.0"; sha256="1z17cxvsvi7lapbrqglsl126djlsqp4bwfagvhpi8hrpg85fqppr"; depends=[abind BiocParallel nloptr S4Vectors SummarizedExperiment]; };
-  PANR = derive2 { name="PANR"; version="1.48.0"; sha256="0w7x8lldarjgl7a0pbkyphrhkv18ngcc1psx1j1v20c8bxdidbws"; depends=[igraph MASS pvclust RedeR]; };
-  PAST = derive2 { name="PAST"; version="1.18.0"; sha256="11vbgj1961ml6jvynsap6rybirijjs125v9m15knvirb8l7fa265"; depends=[doParallel dplyr foreach GenomicRanges ggplot2 iterators qvalue rlang rtracklayer S4Vectors]; };
-  PCAN = derive2 { name="PCAN"; version="1.30.0"; sha256="0hsxy2xny0ds712dniw8szlnnn9cpxn23hdzxashn5qh688xjwyk"; depends=[BiocParallel]; };
-  PCAtools = derive2 { name="PCAtools"; version="2.14.0"; sha256="18rzv4kldjmm2zvz9pzrpspig2hy6mcvb45hgmw49ba4jdcxh31s"; depends=[beachmat BH BiocParallel BiocSingular cowplot DelayedArray DelayedMatrixStats dqrng ggplot2 ggrepel lattice Matrix Rcpp reshape2]; };
-  PDATK = derive2 { name="PDATK"; version="1.10.0"; sha256="0jxah3jwwpkzp50gyc1200ndmwvn5s59pvv1c3xcnr8d8wyvsb5a"; depends=[BiocGenerics BiocParallel caret clusterRepro ConsensusClusterPlus CoreGx data_table dplyr genefu ggplot2 ggplotify igraph MatrixGenerics matrixStats MultiAssayExperiment piano plyr pROC RColorBrewer reportROC rlang S4Vectors scales SummarizedExperiment survcomp survival survminer switchBox verification]; };
-  PECA = derive2 { name="PECA"; version="1.38.0"; sha256="05znla8cngj9k7yfx3k9wqcyrbp05f0dpddjvncgcnazp5jvq1g8"; depends=[affy aroma_affymetrix aroma_core genefilter limma preprocessCore ROTS]; };
-  PICS = derive2 { name="PICS"; version="2.46.0"; sha256="0rpdi8s5l9hz5p1r688ngqq07cddqjcbl3ingl4a0jhl8k3rrznb"; depends=[GenomicAlignments GenomicRanges IRanges Rsamtools]; };
-  PING = derive2 { name="PING"; version="2.46.0"; sha256="1i5vcjplck3phgwy72rcpi2xf4nwkd57lv81pl7wx2lr4yls7jw3"; depends=[BiocGenerics BSgenome fda GenomicRanges Gviz IRanges PICS S4Vectors]; };
-  PLPE = derive2 { name="PLPE"; version="1.62.0"; sha256="0ygh6awl73h0ykzcng6l2gxphgjivgswbk76xmlq53458sz12kv1"; depends=[Biobase LPE MASS]; };
-  POMA = derive2 { name="POMA"; version="1.12.0"; sha256="08drgm5n5b6qhxs6znc9adfl8rlfrsqbv9j0lsj7lbi2kism1xc3"; depends=[broom caret ComplexHeatmap dbscan DESeq2 dplyr ggplot2 ggrepel glasso glmnet impute limma magrittr mixOmics randomForest RankProd rmarkdown SummarizedExperiment tibble tidyr uwot vegan]; };
-  POWSC = derive2 { name="POWSC"; version="1.10.0"; sha256="1qkbzc61kr5kpc4z2z8yfhwvxyvhm6x297zfjzn6a1c16g3hy3p0"; depends=[Biobase ggplot2 limma MAST pheatmap RColorBrewer SingleCellExperiment SummarizedExperiment]; };
-  PPInfer = derive2 { name="PPInfer"; version="1.28.0"; sha256="141hc0gl52869labiryr8ar763hqrxqxjxbi6s1nlj96d601s8sm"; depends=[biomaRt fgsea ggplot2 httr igraph kernlab STRINGdb yeastExpData]; };
-  PREDA = derive2 { name="PREDA"; version="1.48.0"; sha256="1n8nlkhfbhisq62b382ydj9k4yrpiq0niqhj56rj3vz9p56gkx1p"; depends=[annotate Biobase lokern multtest]; };
-  PROMISE = derive2 { name="PROMISE"; version="1.54.0"; sha256="0hscmk80mk47ay9l0s1jw1z9zaxxxv5r1n0057pmlpwbxvsck94p"; depends=[Biobase GSEABase]; };
-  PROPER = derive2 { name="PROPER"; version="1.34.0"; sha256="1fmj6g9rjxr4i0480gzwfnmz0pn66pbyz3cy1wxwwfhpna24bi62"; depends=[edgeR]; };
-  PROPS = derive2 { name="PROPS"; version="1.24.0"; sha256="1kc2f3syvm16hckv8bgipbmjfvdfhkz1zlm8hhyc6hvqhvl81973"; depends=[Biobase bnlearn reshape2 sva]; };
-  PROcess = derive2 { name="PROcess"; version="1.78.0"; sha256="0hwhkz5qnwwgzmjf44qqfnrbqg8gl20rk0dc1ymjyah79lyn1vpj"; depends=[Icens]; };
-  PSEA = derive2 { name="PSEA"; version="1.36.0"; sha256="02gnxacnpzz74bk4y4nkd6pd8y8abi0988zf03x1mcgnn7hk1s2y"; depends=[Biobase MASS]; };
-  PSMatch = derive2 { name="PSMatch"; version="1.6.0"; sha256="0l13zbi011a793wlp9rfhgrixp7szj0zbn24yjw764527x66qxyj"; depends=[BiocGenerics BiocParallel igraph Matrix MsCoreUtils ProtGenerics QFeatures S4Vectors]; };
-  PWMEnrich = derive2 { name="PWMEnrich"; version="4.38.0"; sha256="1s0hvqsvsfvhhyli238z8zbwnwmsi97gm3n83wv326zhzacmdxhf"; depends=[BiocGenerics Biostrings evd gdata S4Vectors seqLogo]; };
-  PanViz = derive2 { name="PanViz"; version="1.4.0"; sha256="19aj5d9dhhzyylr2rlxq52ss82h5rvkc816661j45qcrcbm62ld0"; depends=[colorspace data_table dplyr easycsv futile_logger igraph magrittr RColorBrewer rentrez rlang stringr tibble tidyr]; };
-  PanomiR = derive2 { name="PanomiR"; version="1.6.0"; sha256="0xbmqm61gfqk25mq97bb5bsda329jpn89k7dnm4qqjb35plswg38"; depends=[clusterProfiler dplyr forcats GSEABase igraph limma metap org_Hs_eg_db preprocessCore RColorBrewer rlang tibble withr]; };
-  Path2PPI = derive2 { name="Path2PPI"; version="1.32.0"; sha256="1pjm0p91ins34fnhwkay0jnjms5fjpfw990mz343vr8s6ab83m89"; depends=[igraph]; };
-  PathNet = derive2 { name="PathNet"; version="1.42.0"; sha256="1ivyr2f19dqzis1l6r1d695i20ymwq4ldgszbkraxbj1vzk51fpw"; depends=[]; };
-  PathoStat = derive2 { name="PathoStat"; version="1.28.0"; sha256="16c54dkfv81rmfx2yrd0mi9ppv1kbqgvv6fi8y52cjzdk7rgpaxk"; depends=[ape BiocStyle ComplexHeatmap corpcor DESeq2 devtools dplyr DT edgeR ggplot2 glmnet gmodels knitr limma matrixStats phyloseq plotly plyr RColorBrewer rentrez reshape2 ROCR scales shiny shinyjs tidyr vegan webshot XML]; };
-  PeacoQC = derive2 { name="PeacoQC"; version="1.12.0"; sha256="1108ni9lypy2p5xpv0zd68vaxnjz7sdpdi4vhpa1df1jwn91g6qw"; depends=[circlize ComplexHeatmap flowCore flowWorkspace ggplot2 gridExtra plyr]; };
-  PepsNMR = derive2 { name="PepsNMR"; version="1.20.0"; sha256="013jw9l7r87j4bmpjrvq5qn91kp44wj5vd68cl5axbqhjg7fq4ww"; depends=[ggplot2 gridExtra Matrix matrixStats ptw reshape2]; };
-  PhIPData = derive2 { name="PhIPData"; version="1.10.0"; sha256="14m8qbv6aspgj8ba78g91cgrfv44v8cq1xn6993qzkwdp94hxhwg"; depends=[BiocFileCache BiocGenerics cli edgeR GenomicRanges IRanges S4Vectors SummarizedExperiment]; };
-  PharmacoGx = derive2 { name="PharmacoGx"; version="3.6.0"; sha256="1nhv8rncjmbg21pc14n8crjknwdjf53yfmj4sk970qp6pryqs75p"; depends=[Biobase BiocGenerics BiocParallel boot caTools checkmate coop CoreGx data_table downloader ggplot2 jsonlite magicaxis MultiAssayExperiment RColorBrewer Rcpp reshape2 S4Vectors SummarizedExperiment]; };
-  PhenStat = derive2 { name="PhenStat"; version="2.38.0"; sha256="16gh4qmp1r7hbfvnk38fzk0pg1xp9hnxixaa084c1pra5m9zrm7w"; depends=[car corrplot ggplot2 graph knitr lme4 logistf MASS msgps nlme nortest pingr reshape SmoothWin]; };
-  PhenoGeneRanker = derive2 { name="PhenoGeneRanker"; version="1.10.0"; sha256="1912cbyr3qwyn4mbr1zarzh1rr9n4birfdx8fq8swhc9pjdrbydv"; depends=[doParallel dplyr foreach igraph Matrix]; };
-  PhosR = derive2 { name="PhosR"; version="1.12.0"; sha256="1wjnc0i062kwdzz2hxavxifgfl47pk98s57z7av974vz9aa64v7b"; depends=[BiocGenerics circlize dendextend dplyr e1071 GGally ggdendro ggplot2 ggpubr ggtext igraph limma network pcaMethods pheatmap preprocessCore RColorBrewer reshape2 rlang ruv S4Vectors stringi SummarizedExperiment tidyr]; };
-  PhyloProfile = derive2 { name="PhyloProfile"; version="1.16.3"; sha256="07wyacs8gyf7pdj41cwx3nvifmmxhlq1vsps2qw0f2xa8zi0iwnr"; depends=[ape BiocStyle bioDist Biostrings colourpicker data_table DT energy ExperimentHub ggplot2 gridExtra OmaDB pbapply plyr RColorBrewer RCurl shiny shinyBS shinycssloaders shinyFiles shinyjs stringr xml2 yaml zoo]; };
-  Pi = derive2 { name="Pi"; version="2.14.0"; sha256="16jh7p3f6nk2hwvp44b9sas1dl618m520xj553x9dkaj77jmzp6d"; depends=[BiocGenerics caret dplyr GenomeInfoDb GenomicRanges ggnetwork ggplot2 ggrepel glmnet igraph IRanges lattice MASS Matrix osfr plot3D purrr randomForest RCircos readr ROCR scales supraHex tibble tidyr]; };
-  Pigengene = derive2 { name="Pigengene"; version="1.28.0"; sha256="0sh9q6qx4ycgdhpdvh026hqcxyy6jnbz5inb5r2acj5n5sza0xbk"; depends=[BiocStyle bnlearn C50 clusterProfiler DBI DOSE dplyr gdata ggplot2 GO_db graph impute MASS matrixStats openxlsx partykit pheatmap preprocessCore ReactomePA Rgraphviz WGCNA]; };
-  PloGO2 = derive2 { name="PloGO2"; version="1.14.0"; sha256="0r0zf8dfb4pv4hv5fp5v61i3q5bnzwxws1v3cnx7l64b0hjl2ffi"; depends=[GO_db GOstats httr lattice openxlsx xtable]; };
-  PoDCall = derive2 { name="PoDCall"; version="1.10.1"; sha256="095nb16h3zbh35shv8skkndiav4qsg17fa8381ca4mmhc6jdsqzd"; depends=[diptest DT ggplot2 gridExtra LaplacesDemon mclust purrr readr rlist shiny shinyjs]; };
-  PrInCE = derive2 { name="PrInCE"; version="1.18.0"; sha256="0qzsrmn3dww1yklf4d1pk9grbiij5fqpsnhxz2fqkb3r0xyrnqm6"; depends=[Biobase dplyr forecast Hmisc LiblineaR magrittr MSnbase naivebayes progress purrr ranger Rdpack robustbase speedglm tester tidyr]; };
-  Prostar = derive2 { name="Prostar"; version="1.34.6"; sha256="12k5mgm052r6447w5jgz9ml4fd7x85q7r6jpzi2cj5msnv7nl7i4"; depends=[colourpicker DAPAR DAPARdata data_table DT future ggplot2 gplots gtools highcharter htmlwidgets knitr later markdown promises R_utils rclipboard RColorBrewer rhandsontable sass shiny shinyAce shinyBS shinycssloaders shinyjqui shinyjs shinythemes shinyTree shinyWidgets tibble vioplot webshot XML]; };
-  ProtGenerics = derive2 { name="ProtGenerics"; version="1.34.0"; sha256="1gjva76nxa9nzzmc9hya3bq7hswfmjd768v21f6m3gyygxvl581m"; depends=[]; };
-  ProteoDisco = derive2 { name="ProteoDisco"; version="1.8.0"; sha256="02d477mk43ci9vl1g1rp8zjw6635772pkyjnda87ms4as9jrxcw6"; depends=[BiocGenerics BiocParallel Biostrings checkmate cleaver dplyr GenomeInfoDb GenomicFeatures GenomicRanges IRanges ParallelLogger plyr rlang S4Vectors tibble tidyr VariantAnnotation XVector]; };
-  ProteoMM = derive2 { name="ProteoMM"; version="1.20.0"; sha256="0fgypbamsk8sh63s1nfda40f962ff5mi2qh0b8gaq20z6pkywk04"; depends=[biomaRt gdata ggplot2 ggrepel gtools matrixStats]; };
-  PureCN = derive2 { name="PureCN"; version="2.8.1"; sha256="0hi1f1j2xlvlngf6pz28b6l9rcb1kkvlx5hg2zrlb8wd1gijxb7j"; depends=[Biobase BiocGenerics Biostrings data_table DNAcopy futile_logger GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 gridExtra IRanges Matrix mclust RColorBrewer rhdf5 Rsamtools rtracklayer S4Vectors SummarizedExperiment VariantAnnotation VGAM]; };
-  Pviz = derive2 { name="Pviz"; version="1.36.0"; sha256="17aggsyc82mpya27771sal2k03hvqmi4yxf8cqnknmakf9ylm9la"; depends=[Biostrings biovizBase data_table GenomicRanges Gviz IRanges]; };
-  QDNAseq = derive2 { name="QDNAseq"; version="1.38.0"; sha256="1n2qngqqw3hfv1yscksnpg8wslc85dlvaqw1hz2qvsxf1gcq2mks"; depends=[Biobase CGHbase CGHcall DNAcopy future_apply GenomicRanges IRanges matrixStats R_utils Rsamtools]; };
-  QFeatures = derive2 { name="QFeatures"; version="1.12.0"; sha256="1g744fpb6g690bjbjs4v2899wwv6qc7n5cyq977pm8f3wln0m7mx"; depends=[AnnotationFilter Biobase BiocGenerics igraph IRanges lazyeval MsCoreUtils MultiAssayExperiment plotly ProtGenerics S4Vectors SummarizedExperiment]; };
-  QSutils = derive2 { name="QSutils"; version="1.20.0"; sha256="1313mja7ikn7j1bn1rai4xm5wfiv11b2xp5xcnk9rpqcy0nb2r6r"; depends=[ape BiocGenerics Biostrings psych]; };
-  QTLExperiment = derive2 { name="QTLExperiment"; version="1.0.0"; sha256="0x6ciqw7hk94yvnf3qdnlg9zbc7s71b4gx22il8s6zv33js6y8cx"; depends=[ashr BiocGenerics checkmate collapse dplyr rlang S4Vectors SummarizedExperiment tibble tidyr vroom]; };
-  QUBIC = derive2 { name="QUBIC"; version="1.30.0"; sha256="12iyng6x692a9iqy5rzbm9zgjz4nnw2839z6f8l5cys1rch4xvpv"; depends=[biclust Matrix Rcpp RcppArmadillo]; };
-  Qtlizer = derive2 { name="Qtlizer"; version="1.16.0"; sha256="0gcvapgig22nxc0hsc516cdpjpykz0v7xgxb6y6g6ibqi1vyd5gl"; depends=[curl GenomicRanges httr stringi]; };
-  QuartPAC = derive2 { name="QuartPAC"; version="1.34.0"; sha256="08af130jngr2080khlxan245y9m4573qnc1mvcnk76q9wppq5y64"; depends=[data_table GraphPAC iPAC SpacePAC]; };
-  QuasR = derive2 { name="QuasR"; version="1.42.1"; sha256="0695pjvp742qn629kxly4a9crbg6vakdx1ygnyshprjsz6xz2vnn"; depends=[AnnotationDbi Biobase BiocGenerics BiocParallel Biostrings BSgenome GenomeInfoDb GenomicFeatures GenomicFiles GenomicRanges IRanges Rbowtie Rhtslib Rsamtools rtracklayer S4Vectors ShortRead]; };
-  QuaternaryProd = derive2 { name="QuaternaryProd"; version="1.36.0"; sha256="01xpfpa0pwi9fc4lp0yqw21j8mrmbwwfanxp48qlmplv9x86b36h"; depends=[dplyr Rcpp yaml]; };
-  R3CPET = derive2 { name="R3CPET"; version="1.34.1"; sha256="0b0rv6s66ysfwsd7bx6fhq4jb0wp4dsvq5qv1qai54i26via6qa8"; depends=[BiocGenerics clValid data_table GenomeInfoDb GenomicRanges ggbio ggplot2 Hmisc igraph IRanges pheatmap Rcpp RCurl reshape2 S4Vectors]; };
-  R453Plus1Toolbox = derive2 { name="R453Plus1Toolbox"; version="1.52.0"; sha256="0n72123n0gvhr36k6lcafa8mpr73i06jlz37599b0p6gdlj1r0gd"; depends=[Biobase BiocGenerics biomaRt Biostrings BSgenome GenomicRanges IRanges R2HTML Rsamtools S4Vectors ShortRead SummarizedExperiment TeachingDemos VariantAnnotation xtable XVector]; };
-  R4RNA = derive2 { name="R4RNA"; version="1.30.0"; sha256="1qmr1s7z2f126wkwxjpr9fvak4i7mzgvfflkycgavbdqshn1rk6l"; depends=[Biostrings]; };
-  RAIDS = derive2 { name="RAIDS"; version="1.0.0"; sha256="16apik3ykk1n1l4c15wh3f1r30w712vl8j7cpg7bnc29yy8yn202"; depends=[AnnotationDbi AnnotationFilter BSgenome class ensembldb gdsfmt GENESIS GenomicRanges IRanges MatrixGenerics pROC rlang S4Vectors SNPRelate VariantAnnotation]; };
-  RAREsim = derive2 { name="RAREsim"; version="1.6.0"; sha256="0gr1vvqkdza317lrjr0m8316m2a7dirdhvl8xdqfl60vpwisiclg"; depends=[nloptr]; };
-  RBGL = derive2 { name="RBGL"; version="1.78.0"; sha256="0hxhl1l6qdi355w5y7fdq8vlba2pknfizggkgr2fp8f1f3zqh494"; depends=[BH graph]; };
-  RBM = derive2 { name="RBM"; version="1.34.0"; sha256="0ykwlcfymkv4pvjvkbih0926xrfzwvyijqi3gq6myk4aixhqxh4b"; depends=[limma marray]; };
-  RBioFormats = derive2 { name="RBioFormats"; version="1.2.0"; sha256="0ny3mkc9cnyqqf3cxibzrncyzqd3ws5f7hd8kck0ag0fabqyp1pm"; depends=[EBImage rJava S4Vectors]; };
-  RBioinf = derive2 { name="RBioinf"; version="1.62.0"; sha256="1ibnbzww5alix1sl2r1bbsgz7zgi5q6xcxnvfl6lf3kbicwvs82y"; depends=[graph]; };
-  RCAS = derive2 { name="RCAS"; version="1.28.3"; sha256="1d9icr17xwdmgm6b8ihrwxsg1fp342c2p9f8yqdjm2y52z88gmpd"; depends=[BiocGenerics Biostrings BSgenome BSgenome_Hsapiens_UCSC_hg19 cowplot data_table DT genomation GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 gprofiler2 IRanges knitr pbapply pheatmap plotly plotrix proxy ranger rmarkdown RSQLite rtracklayer S4Vectors seqLogo]; };
-  RCASPAR = derive2 { name="RCASPAR"; version="1.48.0"; sha256="00p11iac87ldd1hhkvl4sfpxznycp381w5m88xc20r3na7jgz9h7"; depends=[]; };
-  RCM = derive2 { name="RCM"; version="1.18.0"; sha256="1yg6iqpfv56ysk8xz1ddi222qmmly02h6s09bbk4w4qygg5glyrv"; depends=[alabama DBI edgeR ggplot2 MASS nleqslv phyloseq RColorBrewer reshape2 tensor tseries VGAM]; };
-  RCX = derive2 { name="RCX"; version="1.6.0"; sha256="0dq0hrlb4c049ggan3rsh15q3864aak4ndgg84i0sh12kpa4hdmy"; depends=[igraph jsonlite plyr]; };
-  RCy3 = derive2 { name="RCy3"; version="2.22.1"; sha256="0qkjprf2p641j3a60av1l87pd6p17za5w6bp9qyah97jmm19za7m"; depends=[base64enc base64url BiocGenerics fs glue gplots graph httr IRdisplay IRkernel RColorBrewer RCurl RJSONIO stringi uuid XML]; };
-  RCyjs = derive2 { name="RCyjs"; version="2.24.0"; sha256="0d5v1ngz0mgs2r35jm46wn24rpy7cd21d0ycvahp5zdl4kvrrb7i"; depends=[base64enc BiocGenerics BrowserViz graph httpuv]; };
-  RDRToolbox = derive2 { name="RDRToolbox"; version="1.52.0"; sha256="1k1a0h18i5c3brvs9ibj16llxflrs0y72yjnnc5z9x4xc267m4y9"; depends=[MASS rgl]; };
-  REBET = derive2 { name="REBET"; version="1.20.0"; sha256="038b5i9rlp96klwmym5s089ghd47r6rn7k5vjznlvsyqz93x5pxv"; depends=[ASSET]; };
-  REDseq = derive2 { name="REDseq"; version="1.48.0"; sha256="1nb4c9mpp8wwnfvxqda07qfjdhzwapdqbn2ksi4v3fll4vp1gvp9"; depends=[AnnotationDbi BiocGenerics Biostrings BSgenome BSgenome_Celegans_UCSC_ce2 ChIPpeakAnno IRanges multtest]; };
-  REMP = derive2 { name="REMP"; version="1.26.0"; sha256="196yxbdi0pkckpj7plz43r6zaasy9ndqbwc9mfwd6k4aps1c0r4i"; depends=[AnnotationHub BiocGenerics BiocParallel Biostrings BSgenome caret doParallel foreach GenomeInfoDb GenomicRanges impute IRanges iterators kernlab minfi org_Hs_eg_db ranger readr rtracklayer S4Vectors settings SummarizedExperiment]; };
-  RESOLVE = derive2 { name="RESOLVE"; version="1.4.0"; sha256="1mzkdaqpzfmcxmz5hc6r2qd0hrp4j2vbv90is7nd5x8s2z8adq9z"; depends=[Biostrings BSgenome BSgenome_Hsapiens_1000genomes_hs37d5 data_table GenomeInfoDb GenomicRanges ggplot2 glmnet gridExtra IRanges lsa MutationalPatterns nnls reshape2 S4Vectors]; };
-  RGMQL = derive2 { name="RGMQL"; version="1.22.1"; sha256="1ynk4wg91w8278bzwap65qv3f1myn0wzgirk8kay5f389wma8127"; depends=[BiocGenerics data_table dplyr GenomicRanges glue httr plyr RGMQLlib rJava rtracklayer S4Vectors xml2]; };
-  RGSEA = derive2 { name="RGSEA"; version="1.36.0"; sha256="1llzp1d4g4d2ifjbhc4akdihnbj80zck23r9qwzaa5i5wky1b09b"; depends=[BiocGenerics]; };
-  RGraph2js = derive2 { name="RGraph2js"; version="1.30.0"; sha256="0c0dfrfphsbx3pqa7knm35m9v4sqm12bgh8608p7y1fmhrfiz3cc"; depends=[digest graph rjson whisker]; };
-  RITAN = derive2 { name="RITAN"; version="1.26.0"; sha256="05bfl9794h2mrm3d1a1d7bspl6dx2hhgjkip6x0fw1z1kv1mkpr2"; depends=[AnnotationFilter BgeeDB dynamicTreeCut EnsDb_Hsapiens_v86 ensembldb GenomicFeatures ggplot2 gplots gridExtra gsubfn hash igraph knitr linkcomm MCL plotrix png RColorBrewer reshape2 RITANdata sqldf STRINGdb]; };
-  RIVER = derive2 { name="RIVER"; version="1.26.0"; sha256="1kczfywccgfa4xkqspr1995g5s4aajbbbjfvzvcssnwdxb8vv9g8"; depends=[Biobase ggplot2 glmnet pROC]; };
-  RImmPort = derive2 { name="RImmPort"; version="1.30.0"; sha256="0wxx5x1za1rcvx5344ns4938bc89ccd22zbdszh7nxpy07h8142h"; depends=[data_table DBI dplyr plyr reshape2 RSQLite sqldf]; };
-  RJMCMCNucleosomes = derive2 { name="RJMCMCNucleosomes"; version="1.26.0"; sha256="009sqq0wq84f5gdpcwbzjajlnhfi03q5qidvyhv2mx3i20c1k81a"; depends=[BiocGenerics BiocParallel consensusSeekeR GenomeInfoDb GenomicRanges IRanges Rcpp S4Vectors]; };
-  RLMM = derive2 { name="RLMM"; version="1.64.0"; sha256="0mwk6nxclqhgg13lnyjdlk8c07kkp4b4fnifb0az0q5jw8hzwxg0"; depends=[MASS]; };
-  RLSeq = derive2 { name="RLSeq"; version="1.5.2"; sha256="0nhip321gbv6phwdwi3qkbmhnfh7fhb9md6xs4lklskwkkrd7s1q"; depends=[AnnotationHub aws_s3 callr caretEnsemble circlize ComplexHeatmap dplyr GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 ggplotify ggprism pheatmap RColorBrewer regioneR rtracklayer valr VennDiagram]; };
-  RLassoCox = derive2 { name="RLassoCox"; version="1.10.0"; sha256="0gj923b103bavhg0r1lmlxc23884gpliywq2d5bjv3bfikvbyd4h"; depends=[glmnet igraph Matrix survival]; };
-  RMassBank = derive2 { name="RMassBank"; version="3.12.0"; sha256="0zf9945vzpla0qrq602v80wwz9m6rqs5fif55w5s8diphd7rqv57"; depends=[assertthat Biobase ChemmineOB ChemmineR data_table digest enviPat glue httr logger MSnbase mzR R_utils rcdk Rcpp readJDX rjson S4Vectors webchem XML yaml]; };
-  RNAAgeCalc = derive2 { name="RNAAgeCalc"; version="1.14.0"; sha256="1cr84fxyc0sgc1d3wh8damq41jhmfb6khx9wj0khfqhwyffj1jkj"; depends=[AnnotationDbi ggplot2 impute org_Hs_eg_db recount SummarizedExperiment]; };
-  RNASeqPower = derive2 { name="RNASeqPower"; version="1.42.0"; sha256="09hixgpg32fggw1v7x4msgyvpb3ygrnk3cqnx9hm32556vgg9a94"; depends=[]; };
-  RNAdecay = derive2 { name="RNAdecay"; version="1.22.2"; sha256="1nzbq211mj0v66ddw16gh4vcbxar4bh094gf2hl8rqkyn1ck1vn7"; depends=[ggplot2 gplots nloptr scales TMB]; };
-  RNAinteract = derive2 { name="RNAinteract"; version="1.50.0"; sha256="0xndds71xbx6slvsr9i1jpm8zlm5ljasimgp1dlvgyvc9bdsmnbl"; depends=[abind Biobase cellHTS2 geneplotter gplots hwriter ICS ICSNP lattice latticeExtra limma locfit RColorBrewer splots]; };
-  RNAmodR = derive2 { name="RNAmodR"; version="1.16.0"; sha256="0mdk2cg63dxlpcx2q93h0p9j78mz39q0hx7n53272wxgmw6a4bpp"; depends=[BiocGenerics BiocParallel Biostrings BSgenome colorRamps GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 Gviz IRanges matrixStats Modstrings RColorBrewer reshape2 ROCR Rsamtools rtracklayer S4Vectors]; };
-  RNAmodR_AlkAnilineSeq = derive2 { name="RNAmodR.AlkAnilineSeq"; version="1.16.0"; sha256="1q6g08m7lwbjlr6f2ws3j83hf43w8bknigz6qf6454l6fqlsdddm"; depends=[BiocGenerics GenomicRanges Gviz IRanges RNAmodR S4Vectors]; };
-  RNAmodR_ML = derive2 { name="RNAmodR.ML"; version="1.16.0"; sha256="0vd18yz8lpmxv26gzf7ldkciwf5c2m0dslbbi1i0c255h5sgw0dr"; depends=[BiocGenerics GenomicRanges IRanges ranger RNAmodR S4Vectors]; };
-  RNAmodR_RiboMethSeq = derive2 { name="RNAmodR.RiboMethSeq"; version="1.16.0"; sha256="0r6bkp993x9i0j59xavxlwgf28kh5ww8cs391c4wnxqg57k0m9g3"; depends=[BiocGenerics GenomicRanges Gviz IRanges RNAmodR S4Vectors]; };
-  RNAsense = derive2 { name="RNAsense"; version="1.16.0"; sha256="1axxanhr17w33b8qdrmc1c4qysq4c37g1aafihamls5894v9m3n8"; depends=[ggplot2 NBPSeq qvalue SummarizedExperiment]; };
-  RNAseqCovarImpute = derive2 { name="RNAseqCovarImpute"; version="1.0.2"; sha256="0pnn219r5rl726nrh9axa82sv4867imk5j065xxx5samc6gbwqzi"; depends=[Biobase BiocParallel dplyr edgeR foreach limma magrittr mice rlang]; };
-  ROC = derive2 { name="ROC"; version="1.78.0"; sha256="12msc6skvcx4ajk20l71k32rj8lsiafjxwcsrd51kyy5x2yj2v4m"; depends=[knitr]; };
-  ROCpAI = derive2 { name="ROCpAI"; version="1.14.0"; sha256="0lwm4iijkiqg6zqyzc8fbczmln3sb30s09j2762xbhz3fjqa4daz"; depends=[boot fission knitr SummarizedExperiment]; };
-  ROSeq = derive2 { name="ROSeq"; version="1.14.0"; sha256="14qj8c2pw4i9n0hqj0lxnb85pwlmgn0a8jws8zpafk5ij93hy76y"; depends=[edgeR limma pbmcapply]; };
-  ROTS = derive2 { name="ROTS"; version="1.30.0"; sha256="1zd5w3mq0vjs3ivdb23x6d28sqq0dsfv13d64k1yijr4vdk3wvp6"; depends=[Biobase Rcpp]; };
-  ROntoTools = derive2 { name="ROntoTools"; version="2.30.0"; sha256="1p7vhl29gjkrf3ivh82c46i1kyy5hryd72vv4ar0x4b2vhwk40xi"; depends=[boot graph KEGGgraph KEGGREST Rgraphviz]; };
-  RPA = derive2 { name="RPA"; version="1.58.0"; sha256="0l2jrc17w4dbkknfn5rnkcym66ijb504w439isp1h6k0s600i2yl"; depends=[affy BiocGenerics BiocStyle phyloseq rmarkdown]; };
-  RProtoBufLib = derive2 { name="RProtoBufLib"; version="2.14.1"; sha256="015yaci2wimax2p772mndmy76qsj307rk4y71r5s8jcb0nwr0qg2"; depends=[]; };
-  RRHO = derive2 { name="RRHO"; version="1.42.0"; sha256="0933g6z7lj2gd8jn1s6i95szhlq18bk7gnygaxfbryj4746bc4l4"; depends=[VennDiagram]; };
-  RSVSim = derive2 { name="RSVSim"; version="1.42.0"; sha256="0zrikys3d3h2sshy94fkisq6ry1ig3limir27nrykrrx1gvlvs6l"; depends=[Biostrings GenomicRanges IRanges ShortRead]; };
-  RSeqAn = derive2 { name="RSeqAn"; version="1.22.0"; sha256="0ww8j6x037d8nffixb8yjrma62v1al2bmy9l5ipb4schy4263zr4"; depends=[Rcpp]; };
-  RTCA = derive2 { name="RTCA"; version="1.54.0"; sha256="1ibg8vln7mrgbvx1zqgvdljyamzxpzj8a0yls3b3shnwj86h333z"; depends=[Biobase gtools RColorBrewer]; };
-  RTCGA = derive2 { name="RTCGA"; version="1.32.0"; sha256="1lzdwkisvzj1wyx3wx4ll1c2j9ww3xz8kpbngmpf8cdrw4h3jrg1"; depends=[assertthat data_table dplyr ggplot2 ggthemes htmltools knitr purrr RCurl rmarkdown rvest scales stringi survival survminer viridis XML xml2]; };
-  RTCGAToolbox = derive2 { name="RTCGAToolbox"; version="2.32.1"; sha256="1a38b30nsg2bnlnijf4aa4rn4db2y4v86awfbf6a6qzqwlzknrcq"; depends=[BiocGenerics data_table DelayedArray GenomeInfoDb GenomicRanges httr RaggedExperiment RCurl RJSONIO rvest S4Vectors stringr SummarizedExperiment TCGAutils]; };
-  RTN = derive2 { name="RTN"; version="2.26.0"; sha256="1mlhbhvrbm4ac77vilw33i0xsc98wzx9dik8dg2yk4jakljqc0y5"; depends=[car data_table igraph IRanges limma minet mixtools pheatmap pwr RedeR S4Vectors snow SummarizedExperiment viper]; };
-  RTNduals = derive2 { name="RTNduals"; version="1.26.0"; sha256="0ai85037l94m41lbr53p8lck5sn2ijsxwnjh2ana4ydnhgl18j8i"; depends=[RTN]; };
-  RTNsurvival = derive2 { name="RTNsurvival"; version="1.26.0"; sha256="1v0hw8kk34f5kk5aysd2qsxmaxalipbq505my65ycif6ymy846kd"; depends=[data_table dunn_test egg ggplot2 pheatmap RColorBrewer RTN RTNduals scales survival]; };
-  RTopper = derive2 { name="RTopper"; version="1.48.0"; sha256="0jjrxckza2qd66995hjd0k626s8hf6p8g0hp5vjimbb9ciy3bax6"; depends=[Biobase limma multtest]; };
-  RUVSeq = derive2 { name="RUVSeq"; version="1.36.0"; sha256="04byggwsvmqrl77268smbas0wax460cdshmp4v5iqc5fghl7n0p2"; depends=[Biobase EDASeq edgeR MASS]; };
-  RUVcorr = derive2 { name="RUVcorr"; version="1.34.0"; sha256="1mzysavs3bflj24qb03lg3kp54ka0kqmcb0r5fk6wz74bx19wl7q"; depends=[BiocParallel bladderbatch corrplot gridExtra lattice MASS psych reshape2 snowfall]; };
-  RUVnormalize = derive2 { name="RUVnormalize"; version="1.36.0"; sha256="0amazkib807ny32s9gp7bj5yfqwg38j3ycr6f675a4dcm9ik64l9"; depends=[Biobase RUVnormalizeData]; };
-  RVS = derive2 { name="RVS"; version="1.24.0"; sha256="0pgx000vigsjmxy37qbwnf7xwsc5l04r1rw8vk684f01f0rk4f55"; depends=[GENLIB gRain kinship2 snpStats]; };
-  RadioGx = derive2 { name="RadioGx"; version="2.6.0"; sha256="0ykmvva5h1y7x9bxhqqfc18car9nasy06v1jjban7dlm95dl8nmk"; depends=[assertthat Biobase BiocGenerics BiocParallel caTools CoreGx data_table downloader magicaxis matrixStats RColorBrewer reshape2 S4Vectors scales SummarizedExperiment]; };
-  RaggedExperiment = derive2 { name="RaggedExperiment"; version="1.26.0"; sha256="07wx2icvxgrds1w7cx9pn99z6rzk2ih938j8g1laxmgx9sya74v6"; depends=[BiocBaseUtils BiocGenerics GenomeInfoDb GenomicRanges IRanges Matrix MatrixGenerics S4Vectors SummarizedExperiment]; };
-  RandomWalkRestartMH = derive2 { name="RandomWalkRestartMH"; version="1.22.0"; sha256="0mvh22p0dliwapdgbl5r93dpjdfnvnxdv5ig3y9gd2ndn32h1cyc"; depends=[igraph Matrix]; };
-  RankProd = derive2 { name="RankProd"; version="3.28.0"; sha256="139q9aw4mbq1ld5z7hfs1nxcg5bw6igfcd4mx3acsndmanb47im4"; depends=[gmp Rmpfr]; };
-  RareVariantVis = derive2 { name="RareVariantVis"; version="2.30.0"; sha256="0mz2c4dldl1z30s5hq4fazz7rpb4vyhknh9mfq89sr5d8z2akmjr"; depends=[BiocGenerics BSgenome BSgenome_Hsapiens_UCSC_hg19 GenomeInfoDb GenomicFeatures GenomicRanges GenomicScores googleVis gtools IRanges phastCons100way_UCSC_hg19 S4Vectors SummarizedExperiment TxDb_Hsapiens_UCSC_hg19_knownGene VariantAnnotation]; };
-  Rarr = derive2 { name="Rarr"; version="1.2.0"; sha256="1ysc3p9i6igzf4bfdigrl5jpxmb52zqhvx6hh0ba22ld5p2r4xcr"; depends=[httr jsonlite paws_storage R_utils stringr]; };
-  RbcBook1 = derive2 { name="RbcBook1"; version="1.70.0"; sha256="0xbz0qv232jq975fs3by1v5fmgm1phyadnd02bw1a45yk5n2sw0i"; depends=[Biobase graph rpart]; };
-  Rbec = derive2 { name="Rbec"; version="1.10.0"; sha256="1hji3v0y5j6m1m13jz576hid5kh7v4msj3g17jn1f4cwr9mysr63"; depends=[dada2 doParallel foreach ggplot2 Rcpp readr]; };
-  Rbowtie = derive2 { name="Rbowtie"; version="1.42.0"; sha256="1arwr8gisc5g9bwxlachf3lvxpd2767ahnwdf2p1lidwpfism8l8"; depends=[]; };
-  Rbowtie2 = derive2 { name="Rbowtie2"; version="2.8.0"; sha256="0dx1psk6f27p1kiw4qwj1nf55gpqgisibzipvlnn5m9q3q8g70gv"; depends=[magrittr Rsamtools]; };
-  Rbwa = derive2 { name="Rbwa"; version="1.6.0"; sha256="0wk77v53avp9lalg8j0sdxfsplxywsdsdpq1aapja2i4ffimnzkr"; depends=[]; };
-  Rcollectl = derive2 { name="Rcollectl"; version="1.2.0"; sha256="1v551pb459da2845457ds49mmshpb9bljn1kp1k4k6p1ccf9pdqm"; depends=[ggplot2 lubridate processx]; };
-  Rcpi = derive2 { name="Rcpi"; version="1.38.0"; sha256="1wnbw2vq8ydwjbfpwhv6wkfrmwh4h265bbh7m19qm59vxvv5n22s"; depends=[Biostrings doParallel foreach GOSemSim RCurl rjson rlang]; };
-  Rcwl = derive2 { name="Rcwl"; version="1.18.0"; sha256="11vq3ymwi6aj2ci7z6nqy8b5hjfqgp42sgxx04nn1ipziq9n67va"; depends=[basilisk batchtools BiocParallel codetools DiagrammeR R_utils S4Vectors shiny yaml]; };
-  RcwlPipelines = derive2 { name="RcwlPipelines"; version="1.18.1"; sha256="1nf985hmyr9a6k7p1k3qjl736v9md5p45w9cfikpln128flk7c35"; depends=[BiocFileCache git2r httr rappdirs Rcwl S4Vectors]; };
-  Rdisop = derive2 { name="Rdisop"; version="1.62.0"; sha256="1jz063hsrrbrqqx8p5yknagw19hsw51arck591h95dckncxd0006"; depends=[Rcpp]; };
-  ReQON = derive2 { name="ReQON"; version="1.48.0"; sha256="0w28b3ma8r8rshijdm5jj1z64v91my7hcvw18r9pdwjprh05bw0g"; depends=[rJava Rsamtools seqbias]; };
-  ReUseData = derive2 { name="ReUseData"; version="1.2.2"; sha256="1yrdnjv005ffcq96hfl9a4j426fd8df9pqwmwkjv76xwcdp6l3h0"; depends=[basilisk BiocFileCache jsonlite Rcwl RcwlPipelines S4Vectors yaml]; };
-  ReactomeContentService4R = derive2 { name="ReactomeContentService4R"; version="1.10.0"; sha256="0vcn24phqb2rgqvlqczwi042vxv82hl98wsa59r324gi00ipi7wh"; depends=[data_table doParallel foreach httr jsonlite magick]; };
-  ReactomeGSA = derive2 { name="ReactomeGSA"; version="1.16.1"; sha256="0p73p60hh5kicxi2ad4yhs3ggw82ymhw5p1xhc4rk842qbcamags"; depends=[dplyr ggplot2 gplots httr jsonlite progress RColorBrewer tidyr]; };
-  ReactomeGraph4R = derive2 { name="ReactomeGraph4R"; version="1.10.0"; sha256="0gjlsv72lx60w9kbq76vz2ll12r6h11xmzkiw5d48vj88a9g5svl"; depends=[data_table doParallel foreach getPass jsonlite magrittr neo4r purrr ReactomeContentService4R rlang]; };
-  ReactomePA = derive2 { name="ReactomePA"; version="1.46.0"; sha256="0kflwlmyckyivr8xh7fsmpl7jfkq5kavwpkswmvdfqckbd0n9xsc"; depends=[AnnotationDbi DOSE enrichplot ggplot2 ggraph graphite gson igraph reactome_db]; };
-  ReadqPCR = derive2 { name="ReadqPCR"; version="1.48.0"; sha256="19w6a5az79av860pdhr8zl5kn2la910pq83vk3f0m1pr8fsnnc93"; depends=[Biobase]; };
-  RedeR = derive2 { name="RedeR"; version="2.6.1"; sha256="1px84wgs1li7cafgbr33b1hj7w31ijjcq1jaklcdvgp8cw45hvz7"; depends=[igraph]; };
-  RedisParam = derive2 { name="RedisParam"; version="1.4.0"; sha256="0h902fs5lwjn3c85cl9hrq7ky67zlr3254m885dg9v8904zsgisy"; depends=[BiocParallel futile_logger redux withr]; };
-  RegionalST = derive2 { name="RegionalST"; version="1.0.1"; sha256="18d4abfmv4yqvbnaqajakyxrmy2x639xx4hzp2i31gij0qm2p0wv"; depends=[assertthat BayesSpace colorspace dplyr fgsea ggplot2 gridExtra magrittr RColorBrewer S4Vectors scater Seurat shiny SingleCellExperiment SummarizedExperiment tibble TOAST]; };
-  RepViz = derive2 { name="RepViz"; version="1.18.0"; sha256="1qdsvhxcgsjvafabxc0cc9jn7m8dp48ar4idvc2b0m1h03wmd2ww"; depends=[biomaRt GenomicRanges IRanges Rsamtools S4Vectors]; };
-  Repitools = derive2 { name="Repitools"; version="1.48.0"; sha256="0pkj5pgrm76hmhfm1jjdszir8v3ilrdzf7n7ir22f3hs2g10zby0"; depends=[BiocGenerics Biostrings BSgenome cluster DNAcopy edgeR GenomeInfoDb GenomicAlignments GenomicRanges gplots gsmoothr IRanges MASS Ringo Rsamtools Rsolnp rtracklayer S4Vectors]; };
-  ReportingTools = derive2 { name="ReportingTools"; version="2.42.3"; sha256="109vmrdsjdjnfrlcdyadzbwz9a50hqaahf7dawwxkbbh4mmdih78"; depends=[annotate AnnotationDbi Biobase BiocGenerics Category DESeq2 edgeR ggbio ggplot2 GOstats GSEABase hwriter IRanges knitr lattice limma PFAM_db R_utils XML]; };
-  ResidualMatrix = derive2 { name="ResidualMatrix"; version="1.12.0"; sha256="06py71xbygfwq55kawh2x340idrf5mmxmnsz5m6lph2ka086dc5v"; depends=[DelayedArray Matrix S4Vectors]; };
-  Rfastp = derive2 { name="Rfastp"; version="1.12.0"; sha256="0pngcnm95dkxbhqdks96rka912wk0j3m64n4xzbp76x9zngcsq4q"; depends=[ggplot2 Rcpp reshape2 Rhtslib rjson zlibbioc]; };
-  RgnTX = derive2 { name="RgnTX"; version="1.4.0"; sha256="0xh1j2dffg8qgjf8s042saavw6rz2mm2136krn7s8a5dndr77i1d"; depends=[GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 IRanges regioneR S4Vectors TxDb_Hsapiens_UCSC_hg19_knownGene]; };
-  Rgraphviz = derive2 { name="Rgraphviz"; version="2.46.0"; sha256="03l6yr76inv4fivy10g0h2qafgywrcjnnhs694lwqz1y6r0gm1sy"; depends=[graph]; };
-  Rhdf5lib = derive2 { name="Rhdf5lib"; version="1.24.2"; sha256="0b2g57dxvzmnq6dig4dz7cy8lpy3q7fih5q643i5xjcds2cj6lk5"; depends=[]; };
-  Rhisat2 = derive2 { name="Rhisat2"; version="1.18.0"; sha256="1pxlpwqzbdii0b1swy9vcq905934yfmyqwfx2j3f7n5n4dgglc2q"; depends=[GenomicFeatures GenomicRanges SGSeq]; };
-  Rhtslib = derive2 { name="Rhtslib"; version="2.4.1"; sha256="089b5amwxwac6wvdnndy9inc218919q9dz9x58i2cp7il18vjd0c"; depends=[zlibbioc]; };
-  RiboCrypt = derive2 { name="RiboCrypt"; version="1.8.0"; sha256="198jsia292c5zxq22nc0favc3awvk9dp2ar6mcc7rvkvxny14cvg"; depends=[BiocGenerics BiocParallel Biostrings bslib data_table dplyr GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 htmlwidgets httr IRanges jsonlite knitr markdown NGLVieweR ORFik plotly RCurl rlang shiny shinycssloaders shinyhelper shinyjqui stringr]; };
-  RiboDiPA = derive2 { name="RiboDiPA"; version="1.10.0"; sha256="006yq094gym1dcixccs7n9fjv3xhdqqsbwx1dpqfas5x7vz27i0g"; depends=[BiocFileCache BiocGenerics data_table DESeq2 doParallel elitism foreach GenomicAlignments GenomicFeatures GenomicRanges ggplot2 IRanges matrixStats qvalue Rcpp reldist Rsamtools S4Vectors]; };
-  RiboProfiling = derive2 { name="RiboProfiling"; version="1.32.0"; sha256="1bd37ypxsj9p94p2851hhc9ind59b5pkg1lyalha1nfw5gf8iay3"; depends=[BiocGenerics Biostrings data_table GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggbio ggplot2 IRanges plyr reshape2 Rsamtools rtracklayer S4Vectors sqldf]; };
-  Ringo = derive2 { name="Ringo"; version="1.66.0"; sha256="1ch0akd4k1i4401jwxll5awlq7g12pw7x0kidarn5zva08jgiixd"; depends=[Biobase BiocGenerics genefilter lattice limma Matrix RColorBrewer vsn]; };
-  Risa = derive2 { name="Risa"; version="1.44.0"; sha256="140q4x4sl7mffpglwy7hx0z5la2rkq0p1j22k36a4h1073wcpc2q"; depends=[affy Biobase biocViews Rcpp xcms]; };
-  Rmagpie = derive2 { name="Rmagpie"; version="1.58.0"; sha256="0z55j3b2cpb5g14yvpc40y1099rrslhrcmnkj7x4hv7jgi0bvrd2"; depends=[Biobase e1071 kernlab pamr]; };
-  Rmmquant = derive2 { name="Rmmquant"; version="1.20.0"; sha256="18r3jbi2ylgzl6v42blffcz60alfvkyqprhbq05xrg1hn1w95hc4"; depends=[apeglm BiocStyle DESeq2 devtools GenomicRanges org_Mm_eg_db Rcpp S4Vectors SummarizedExperiment TBX20BamSubset TxDb_Mmusculus_UCSC_mm9_knownGene]; };
-  RnBeads = derive2 { name="RnBeads"; version="2.20.0"; sha256="15z7l4nmpy01xm19717l27nwf3rfsn6wjv211fn2y4ls40mz75qp"; depends=[BiocGenerics cluster ff fields GenomicRanges ggplot2 gplots gridExtra illuminaio IRanges limma MASS matrixStats methylumi plyr S4Vectors]; };
-  RnaSeqSampleSize = derive2 { name="RnaSeqSampleSize"; version="2.12.0"; sha256="1c07wsq002zh44s85j429qfxwyy9f2fn599mdq46r1lq511c8z7q"; depends=[biomaRt dplyr edgeR ggplot2 ggpubr heatmap3 KEGGREST matlab Rcpp recount RnaSeqSampleSizeData SummarizedExperiment tidyr tidyselect]; };
-  Rnits = derive2 { name="Rnits"; version="1.36.0"; sha256="095r211s7829gslb61sck92sh23w6ikiksaxakmdczs34l3s5jlp"; depends=[affy Biobase boot ggplot2 impute limma qvalue reshape2]; };
-  RolDE = derive2 { name="RolDE"; version="1.6.0"; sha256="0g6wjg3pacwlncsb9ws584hxqv40kadwcak1g1z1lnj57kq99dh8"; depends=[doParallel doRNG foreach matrixStats nlme qvalue rngtools ROTS SummarizedExperiment]; };
-  Rqc = derive2 { name="Rqc"; version="1.36.0"; sha256="0hrhfgv0b9ycw2vmzkpmrv9m9jvvq1n6asnxnrgvzlz81xak84ic"; depends=[BiocGenerics BiocParallel BiocStyle Biostrings biovizBase GenomicAlignments GenomicFiles ggplot2 IRanges knitr markdown plyr Rcpp reshape2 Rsamtools S4Vectors shiny ShortRead]; };
-  Rsamtools = derive2 { name="Rsamtools"; version="2.18.0"; sha256="0bcapiwdzv7rqgs4hmw7hq290r3pz5vvhg4apxard0yybq83na1g"; depends=[BiocGenerics BiocParallel Biostrings bitops GenomeInfoDb GenomicRanges IRanges Rhtslib S4Vectors XVector zlibbioc]; };
-  Rsubread = derive2 { name="Rsubread"; version="2.16.1"; sha256="0rgfl1kmgf2f0lpj2fzgjvdm5d7swp9wz86jl8q9mydw6z49nxz8"; depends=[Matrix]; };
-  Rtpca = derive2 { name="Rtpca"; version="1.12.0"; sha256="14xs427ws2ak3bxf5rbxnnr74ckgswglwwxbqpwhyzbglbk683pc"; depends=[Biobase dplyr fdrtool ggplot2 pROC tibble tidyr]; };
-  Rtreemix = derive2 { name="Rtreemix"; version="1.64.0"; sha256="0pfabbiam424gwxfv11xfx2c5yn70rw97jddlmwlaz9jlbv98zz5"; depends=[Biobase graph Hmisc]; };
-  Rvisdiff = derive2 { name="Rvisdiff"; version="1.0.0"; sha256="1si4znpjqj2690fibhmdzwy3ln90xbx6ykvnq3xwn6v0mgnaz8kn"; depends=[edgeR]; };
-  S4Arrays = derive2 { name="S4Arrays"; version="1.2.1"; sha256="1z6kcgjb5fzslr02vmsvchbilrhwpgh1ghk1zmlq0h0lyzncaapd"; depends=[abind BiocGenerics crayon IRanges Matrix S4Vectors]; };
-  S4Vectors = derive2 { name="S4Vectors"; version="0.40.2"; sha256="10lryil0psfyal0006rbhj0dbxyn8f7mpp11h758zc217cxsdnac"; depends=[BiocGenerics]; };
-  SAIGEgds = derive2 { name="SAIGEgds"; version="2.2.1"; sha256="0068rjyphkhna734m68lriqjcwafgzvpvw7mgv48j9aghjiycfxr"; depends=[gdsfmt Matrix Rcpp RcppArmadillo RcppParallel SeqArray]; };
-  SANTA = derive2 { name="SANTA"; version="2.38.0"; sha256="0gm9i0pj3c9sir8pmh12b62ah6x1gvy1lrp9hc6hg9rkh4gpyr0y"; depends=[igraph Matrix]; };
-  SARC = derive2 { name="SARC"; version="1.0.0"; sha256="043sxjf0ppy7q5r49pd57dychygzhff4g4m5bnbkz88wp7njq0sz"; depends=[data_table DescTools GenomicFeatures GenomicRanges ggplot2 gridExtra gtable IRanges metap multtest plotly plyranges RaggedExperiment RColorBrewer reshape2 scales tidyverse]; };
-  SBGNview = derive2 { name="SBGNview"; version="1.16.0"; sha256="01adszv87yjg6gn8pp8b76i1xqvxrnnkfb7h4va450dcz1f3hzvs"; depends=[AnnotationDbi bookdown httr igraph KEGGREST knitr pathview Rdpack rmarkdown rsvg SBGNview_data SummarizedExperiment xml2]; };
-  SBMLR = derive2 { name="SBMLR"; version="1.98.0"; sha256="1clhrzrgwfrljg3ssz20nw4jk9nyjswiqclad6hwxj5aidndig1a"; depends=[deSolve XML]; };
-  SC3 = derive2 { name="SC3"; version="1.30.0"; sha256="055h6j3yxahgfa97c7p3jk6qvy66p20xv53xi06j9cszrqwjh06g"; depends=[BiocGenerics cluster doParallel doRNG e1071 foreach ggplot2 pheatmap Rcpp RcppArmadillo robustbase ROCR rrcov S4Vectors shiny SingleCellExperiment SummarizedExperiment WriteXLS]; };
-  SCAN_UPC = derive2 { name="SCAN.UPC"; version="2.44.0"; sha256="0dcwrifpxkhsx4f72cgjwkwlakzzzsvnsm5kjnmh2n8py5d0b7iy"; depends=[affy affyio Biobase Biostrings foreach GEOquery IRanges MASS oligo sva]; };
-  SCANVIS = derive2 { name="SCANVIS"; version="1.16.0"; sha256="1y1lrkalcsl31rsyzdvjzj2zfpjki56jvphi758z8w49d920jn5y"; depends=[IRanges plotrix RCurl rtracklayer]; };
-  SCArray = derive2 { name="SCArray"; version="1.10.0"; sha256="194zcw12jnsssizkw7hjgv1ja3gpnfc4kbhnh56j9apc6yr3q9ab"; depends=[BiocParallel BiocSingular DelayedArray DelayedMatrixStats gdsfmt Matrix S4Vectors SingleCellExperiment SummarizedExperiment]; };
-  SCArray_sat = derive2 { name="SCArray.sat"; version="1.2.1"; sha256="0lk887vbvdaydw9nmdsajkhrrn16ab3h0zkymmc46g22p4yqfxbp"; depends=[BiocGenerics BiocParallel BiocSingular DelayedArray gdsfmt Matrix S4Vectors SCArray Seurat SeuratObject SummarizedExperiment]; };
-  SCBN = derive2 { name="SCBN"; version="1.20.0"; sha256="1sxm0qmnz1cxxwdgskwrjf2iqz8fj7x1df2c88h53n05q8amxx48"; depends=[]; };
-  SCFA = derive2 { name="SCFA"; version="1.12.0"; sha256="17bpmypgcx9wcrnalwc7sm0dzxg7w454riksxm34kjw2jdh1ql78"; depends=[BiocParallel cluster coro glmnet igraph Matrix matrixStats psych RhpcBLASctl survival torch]; };
-  SCOPE = derive2 { name="SCOPE"; version="1.14.0"; sha256="1snr6f62cvz9jxrgqrhinc9nnp5fanmps99sn1ki8bwwglak0c2v"; depends=[BiocGenerics Biostrings BSgenome BSgenome_Hsapiens_UCSC_hg19 DescTools DNAcopy doParallel foreach GenomeInfoDb GenomicRanges gplots IRanges RColorBrewer Rsamtools S4Vectors]; };
-  SCnorm = derive2 { name="SCnorm"; version="1.24.0"; sha256="1d1p0gd9n7r51vac8gaq9igpg508hi46fafp2nk3ffm35qw9v211"; depends=[BiocGenerics BiocParallel cluster data_table forcats ggplot2 moments quantreg S4Vectors SingleCellExperiment SummarizedExperiment]; };
-  SDAMS = derive2 { name="SDAMS"; version="1.22.0"; sha256="0lmjirlly0rpy47vr4qkxdpabzfbffvsj7wfxln0dy4j5i70mj6y"; depends=[qvalue SummarizedExperiment trust]; };
-  SELEX = derive2 { name="SELEX"; version="1.34.0"; sha256="0m4ah03s1ywxpc3rdxx5bd1a9zx54wxn5lacxvmw7sd52xgm9xnj"; depends=[Biostrings rJava]; };
-  SEtools = derive2 { name="SEtools"; version="1.16.0"; sha256="01vrn6q2zm9nimhz194q8kvr4pc2szk0hhj2bkns7qji9h385sc4"; depends=[BiocParallel circlize data_table DESeq2 edgeR Matrix openxlsx pheatmap S4Vectors sechm SummarizedExperiment sva]; };
-  SGCP = derive2 { name="SGCP"; version="1.2.0"; sha256="1cc0brhw77b73nircb3n2ghbihdjmk7l11s8nmkvljydx6b52sja"; depends=[annotate caret DescTools dplyr expm genefilter ggplot2 ggridges GO_db GOstats graph openxlsx org_Hs_eg_db plyr RColorBrewer reshape2 Rgraphviz RSpectra SummarizedExperiment xtable]; };
-  SGSeq = derive2 { name="SGSeq"; version="1.36.0"; sha256="1h44r0frrw54s9nqa539ifg270ggmm634gj9cyhn4z7nhxxh134c"; depends=[AnnotationDbi BiocGenerics Biostrings GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges igraph IRanges Rsamtools rtracklayer RUnit S4Vectors SummarizedExperiment]; };
-  SIAMCAT = derive2 { name="SIAMCAT"; version="2.6.0"; sha256="09m0qjgd6rmqdqxb55g004azjvjm8abfylgrp3k7qlbql5b087bw"; depends=[beanplot corrplot glmnet gridBase gridExtra infotheo lgr LiblineaR lmerTest matrixStats mlr3 mlr3learners mlr3tuning paradox phyloseq pROC progress PRROC RColorBrewer scales stringr]; };
-  SICtools = derive2 { name="SICtools"; version="1.32.0"; sha256="0bcajjvkaxmr8bdij8xln7a3nmxbm7jkjvg2v6p8kd0xr3q9a70q"; depends=[Biostrings doParallel GenomicRanges IRanges matrixStats plyr Rsamtools stringr]; };
-  SIM = derive2 { name="SIM"; version="1.72.0"; sha256="0ygc7xb3ywp24b3qgsmigvb81p46rbgb2yglwig1fjzjw920fvfk"; depends=[globaltest quantreg quantsmooth]; };
-  SIMAT = derive2 { name="SIMAT"; version="1.34.0"; sha256="1n96ydczx3frb01ww3qj5ad18dbxr8ak3bi44lgnb71lalw2489x"; depends=[ggplot2 mzR Rcpp reshape2]; };
-  SIMD = derive2 { name="SIMD"; version="1.20.0"; sha256="0am1k5k2ma6nwc5ryil01fvmq8bchqkr4nn7yl5z2l5p5dnvwkwj"; depends=[edgeR methylMnM statmod]; };
-  SIMLR = derive2 { name="SIMLR"; version="1.28.0"; sha256="1whg4z0m8j3f1vx473xdblkx8dzl3qmj9lnd52bvkxms9013mysy"; depends=[Matrix pracma Rcpp RcppAnnoy RSpectra]; };
-  SLqPCR = derive2 { name="SLqPCR"; version="1.68.0"; sha256="1p6fi4i1xq7gkbci9ay9nn70fm5qm7r1xj3mfiksmjdsagz51jfp"; depends=[]; };
-  SMAD = derive2 { name="SMAD"; version="1.18.0"; sha256="167hwqv02q9crzlby5kgdzqsyd6h2hwav35bvxh2wn4skg6mfyc7"; depends=[dplyr magrittr Rcpp RcppAlgos tidyr]; };
-  SMAP = derive2 { name="SMAP"; version="1.66.0"; sha256="0m6jvb3jpnk36cv8grj1s3af6nm9xnn3x0mxkrwfbpgzvcn5735n"; depends=[]; };
-  SMITE = derive2 { name="SMITE"; version="1.30.0"; sha256="0hz0wjfw43l1s3hdmwvpy3623ps8alhblc1lb06dnx0pa7r3gljd"; depends=[AnnotationDbi Biobase BioNet geneLenDataBase GenomicRanges ggplot2 goseq Hmisc igraph IRanges KEGGREST org_Hs_eg_db plyr reactome_db S4Vectors scales]; };
-  SNAGEE = derive2 { name="SNAGEE"; version="1.42.0"; sha256="1mchl07vkdai2w9f65620say9p1gsqxbfcylawncixjir0nj7w8h"; depends=[SNAGEEdata]; };
-  SNPRelate = derive2 { name="SNPRelate"; version="1.36.1"; sha256="0d15r7qwwrr6m9saikx4x6hj56kb3p2w3v1awkgm3wfqfgdf1pin"; depends=[gdsfmt]; };
-  SNPediaR = derive2 { name="SNPediaR"; version="1.28.0"; sha256="1pibr18xxq4q1rrsz0cvnajkfp6gv6n5c8i12cj0s8b280yllkg1"; depends=[jsonlite RCurl]; };
-  SNPhood = derive2 { name="SNPhood"; version="1.32.0"; sha256="0af73i20bj15v3s6zfmbmdcc2iy3mvqdkkkjs3c1hij3xl8l9vif"; depends=[BiocGenerics BiocParallel Biostrings checkmate cluster data_table DESeq2 GenomeInfoDb GenomicRanges ggplot2 gridExtra IRanges lattice RColorBrewer reshape2 Rsamtools S4Vectors scales SummarizedExperiment VariantAnnotation]; };
-  SOMNiBUS = derive2 { name="SOMNiBUS"; version="1.10.0"; sha256="12ds311rk4ln2hahnyqwdxzvfkpcd4lhfhrv1qhn8rmjy5blnijg"; depends=[annotatr BiocManager bsseq data_table GenomeInfoDb GenomicRanges ggplot2 IRanges Matrix mgcv reshape2 rtracklayer S4Vectors tidyr VGAM yaml]; };
-  SPEM = derive2 { name="SPEM"; version="1.42.0"; sha256="1iycjss3m3z0q0jfgzwa2jxzrnbskvsza2y852k18mmvzby4gsbs"; depends=[Biobase Rsolnp]; };
-  SPIA = derive2 { name="SPIA"; version="2.54.0"; sha256="091plgvpsmv4x6h19awqkiqdkxjdn9jm5mh52y7m77qgybnjpsm5"; depends=[KEGGgraph]; };
-  SPIAT = derive2 { name="SPIAT"; version="1.4.2"; sha256="1frzvyxyf2nvbzqwf73b9lq4jcfcl6ld2k471c13wj1vng476d7j"; depends=[apcluster dbscan dittoSeq dplyr ggplot2 gridExtra gtools mmand pracma RANN raster reshape2 rlang sp SpatialExperiment spatstat_explore spatstat_geom SummarizedExperiment tibble vroom]; };
-  SPLINTER = derive2 { name="SPLINTER"; version="1.28.0"; sha256="1nlyq1ljbark29bkf5qc7p1r37ndicv2rb4zn9w33qzpl9rcc1zx"; depends=[biomaRt Biostrings BSgenome_Mmusculus_UCSC_mm9 GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 googleVis Gviz IRanges plyr S4Vectors seqLogo stringr]; };
-  SPOTlight = derive2 { name="SPOTlight"; version="1.6.7"; sha256="1xksds1mv5y1jfpl36bjk0mwm1nsp5f6qc234nahj82dz4adrwaq"; depends=[ggplot2 Matrix matrixStats NMF nnls SingleCellExperiment sparseMatrixStats]; };
-  SPsimSeq = derive2 { name="SPsimSeq"; version="1.12.0"; sha256="0cfh6hdzxylm7y1clza0blcx5pq1l6cwrflw8mlfqaasiw46jiqn"; depends=[edgeR fitdistrplus Hmisc limma mvtnorm phyloseq SingleCellExperiment WGCNA]; };
-  SQLDataFrame = derive2 { name="SQLDataFrame"; version="1.16.1"; sha256="0k9m440dnsbbzz2mxqhy54syimy8ryzx528nsbm65ppslk52p36l"; depends=[BiocGenerics DBI dbplyr dplyr lazyeval RSQLite S4Vectors tibble]; };
-  SQUADD = derive2 { name="SQUADD"; version="1.52.0"; sha256="0vg7mhx2aldk53jdgy4k8yk3jyjwklmp13mxch7cxinr8bzbyjh6"; depends=[RColorBrewer]; };
-  SRAdb = derive2 { name="SRAdb"; version="1.64.0"; sha256="1pvyakg4pj61m2nwk0pljvalimr5r4siwx76a6yszqlrgphmxbg5"; depends=[GEOquery graph RCurl RSQLite]; };
-  STATegRa = derive2 { name="STATegRa"; version="1.38.0"; sha256="0p2h6bq6fzab2rs3sb6194nqjk0jav6asc6h8zmzpm2fk5ciq1dk"; depends=[affy Biobase calibrate edgeR foreach ggplot2 gplots gridExtra limma MASS]; };
-  STRINGdb = derive2 { name="STRINGdb"; version="2.14.3"; sha256="06bckzczg2rspazcbpp3v265c1dkr9l1vpdhkc7gdn2dk960jlkh"; depends=[gplots hash httr igraph plotrix plyr png RColorBrewer sqldf]; };
-  STdeconvolve = derive2 { name="STdeconvolve"; version="1.6.0"; sha256="16vw0y8ywsjspjmra94hl854ckdga6zfg5klpjp9w9vxsl75wb0p"; depends=[BiocParallel clue ggplot2 liger Matrix mgcv reshape2 scatterpie slam topicmodels viridis]; };
-  SUITOR = derive2 { name="SUITOR"; version="1.4.0"; sha256="0aqh8sfkzwfws735k7b7r54cd3gq07fi1gvl2n377rx91qqkdy6w"; depends=[BiocParallel ggplot2]; };
-  SVMDO = derive2 { name="SVMDO"; version="1.2.8"; sha256="1pp2d40i69xkjqk4cdga0ql26gf6j323h95c9idmikb2l2pjg3hj"; depends=[AnnotationDbi BSDA caret caTools data_table DOSE dplyr e1071 golem klaR nortest org_Hs_eg_db shiny shinyFiles shinytitle sjmisc SummarizedExperiment survival]; };
-  SWATH2stats = derive2 { name="SWATH2stats"; version="1.32.1"; sha256="14ksg02cpp40pbk6qid4j94lcjzrqb4ry5rxr3914fr04y85jg3x"; depends=[biomaRt data_table ggplot2 reshape2]; };
-  SamSPECTRAL = derive2 { name="SamSPECTRAL"; version="1.56.0"; sha256="1w3lddbqy52b34430kyal2h86xb34bi7l8f30pjgv0kjwd24i0a9"; depends=[]; };
-  Scale4C = derive2 { name="Scale4C"; version="1.24.0"; sha256="0rjlyh0m1vk75316zhqcv4j4jjdqgwnkqym03qcqnqb06fzjxxkr"; depends=[GenomicRanges IRanges smoothie SummarizedExperiment]; };
-  ScaledMatrix = derive2 { name="ScaledMatrix"; version="1.10.0"; sha256="1aigca0s8cmi46458pl9p9vwlkrmqawbgi0xmbwslz646x2s2h4a"; depends=[DelayedArray Matrix S4Vectors]; };
-  Sconify = derive2 { name="Sconify"; version="1.22.0"; sha256="1pbgigqbvvaz5ywsmp4j83ivcmpzw4x2915pf12aafxmc28xzkky"; depends=[dplyr flowCore FNN ggplot2 magrittr readr Rtsne tibble]; };
-  ScreenR = derive2 { name="ScreenR"; version="1.4.0"; sha256="122vzawz6bpaqnv9mxn56a9n3158v6yz3qb0z9h6fb99r59q7cm1"; depends=[dplyr edgeR ggplot2 ggvenn limma magrittr patchwork purrr rlang scales stringr tibble tidyr tidyselect]; };
-  SemDist = derive2 { name="SemDist"; version="1.36.0"; sha256="160zf6913hrjgb8qnynm5nx21a1317sfsr57qjbz1sbd3pmcz1iz"; depends=[annotate AnnotationDbi GO_db]; };
-  SeqArray = derive2 { name="SeqArray"; version="1.42.2"; sha256="1bwqyvvfwwscznwi1bm4wh2pqf0fmq68g7siwbbw5ypj087ibnnm"; depends=[Biostrings gdsfmt GenomeInfoDb GenomicRanges IRanges S4Vectors]; };
-  SeqGSEA = derive2 { name="SeqGSEA"; version="1.42.0"; sha256="0gg6v2r78gskmpdcdc4km82mcyz2p8b2rmmdkh47bp0sa4pr4j61"; depends=[Biobase biomaRt DESeq2 doParallel]; };
-  SeqGate = derive2 { name="SeqGate"; version="1.12.0"; sha256="0pkyvws1iq1gjs3qdqxsnhq4ywg3zy6qa121y3g6xyfqviq27hv3"; depends=[BiocManager GenomicRanges S4Vectors SummarizedExperiment]; };
-  SeqSQC = derive2 { name="SeqSQC"; version="1.24.0"; sha256="0vjah085hr50pvkgm2sscpa97fvhsglcwvj5jb08v2liz1vzm3zb"; depends=[e1071 ExperimentHub gdsfmt GenomicRanges GGally ggplot2 IRanges RColorBrewer reshape2 rmarkdown S4Vectors SNPRelate]; };
-  SeqVarTools = derive2 { name="SeqVarTools"; version="1.40.0"; sha256="19f2k5daysj81ghr9625yk6ls008x83dlxsi1qyl5w9fgl8zwc1b"; depends=[Biobase BiocGenerics data_table gdsfmt GenomicRanges GWASExactHW IRanges logistf Matrix S4Vectors SeqArray]; };
-  SharedObject = derive2 { name="SharedObject"; version="1.16.0"; sha256="08gwk107j43qca3sgi20fiziq9xaf88z1j91d2xrzpgijbs01zbp"; depends=[BH BiocGenerics Rcpp]; };
-  ShortRead = derive2 { name="ShortRead"; version="1.60.0"; sha256="0fgiszb5qhplppfngpi4s33sx62ff5sdhd6n31a3b6l7fnlvk51m"; depends=[Biobase BiocGenerics BiocParallel Biostrings GenomeInfoDb GenomicAlignments GenomicRanges hwriter IRanges lattice latticeExtra Rhtslib Rsamtools S4Vectors XVector zlibbioc]; };
-  SiPSiC = derive2 { name="SiPSiC"; version="1.2.2"; sha256="0mdpspmnhp7rnm7k0zmgdfbdkqh3cnrsianxv1s0r1jlnqfhbhm7"; depends=[Matrix SingleCellExperiment]; };
-  SigCheck = derive2 { name="SigCheck"; version="2.34.0"; sha256="1lnsdcq1j8ih1l4r0c1i21qgcafl3wsyancy6svj7crg1fxndarc"; depends=[Biobase BiocParallel e1071 MLInterfaces survival]; };
-  SigFuge = derive2 { name="SigFuge"; version="1.40.0"; sha256="010ma9z6y1qxd8sm009vk1qb65p1n2vbwyz3agvzlj2xzjd0aamj"; depends=[GenomicRanges ggplot2 matlab reshape sigclust]; };
-  SigsPack = derive2 { name="SigsPack"; version="1.16.0"; sha256="1sdjgc1c0xpx7xk6rp4l95dknr92b097rhk7q28893xglx1khizm"; depends=[Biobase Biostrings BSgenome GenomeInfoDb GenomicRanges quadprog rtracklayer SummarizedExperiment VariantAnnotation]; };
-  SimBindProfiles = derive2 { name="SimBindProfiles"; version="1.40.0"; sha256="0adcyw4x7yw4v20bwx4fzrhqd7g1r9fhpr1nqqnwkg44b51rdm6z"; depends=[Biobase limma mclust Ringo]; };
-  SimBu = derive2 { name="SimBu"; version="1.4.3"; sha256="1zlb8r441pz1sp9wj3ylz65xzry1jd4y6f97nl9qwyqvyxf0nb63"; depends=[basilisk BiocParallel data_table dplyr ggplot2 Matrix phyloseq proxyC RColorBrewer RCurl reticulate sparseMatrixStats SummarizedExperiment tidyr]; };
-  SimFFPE = derive2 { name="SimFFPE"; version="1.14.0"; sha256="0qnj0lj08sqaihx83fvkszp0nqsyc3azfwiyzzdcp42np7k7w375"; depends=[Biostrings doParallel dplyr foreach GenomicRanges IRanges Rsamtools truncnorm]; };
-  SingleCellExperiment = derive2 { name="SingleCellExperiment"; version="1.24.0"; sha256="0q44n97mly1ldh52r0sb1jwhz8bn4n7sfw99qs5h4s44w9s0fry4"; depends=[BiocGenerics DelayedArray GenomicRanges S4Vectors SummarizedExperiment]; };
-  SingleCellSignalR = derive2 { name="SingleCellSignalR"; version="1.14.0"; sha256="0y8f761n0bkwd3smisxzhzpfd2lgzgxvg29j4xz7c604lx91zn0h"; depends=[BiocManager circlize data_table edgeR foreach gplots igraph limma multtest pheatmap Rtsne scran stringr]; };
-  SingleMoleculeFootprinting = derive2 { name="SingleMoleculeFootprinting"; version="1.10.0"; sha256="15mhir2mlyq0qqadm6b1856z40dm1fmvzq8br07vqdmq5q7dzx95"; depends=[BiocGenerics Biostrings BSgenome data_table GenomeInfoDb GenomicRanges IRanges plyr QuasR RColorBrewer]; };
-  SingleR = derive2 { name="SingleR"; version="2.4.1"; sha256="0zlv45diasff5ipxp99dddswclrzzdcmkqp278fm2cj7aibvb3sd"; depends=[beachmat BiocNeighbors BiocParallel BiocSingular DelayedArray DelayedMatrixStats Matrix Rcpp S4Vectors SummarizedExperiment]; };
-  SomaticSignatures = derive2 { name="SomaticSignatures"; version="2.38.0"; sha256="0s9kjjh1n4a55ycjvcw8ymjcclcj8b35aygx4x1k5af1hf3f7wyb"; depends=[Biobase Biostrings GenomeInfoDb GenomicRanges ggbio ggplot2 IRanges NMF pcaMethods proxy reshape2 S4Vectors VariantAnnotation]; };
-  SpacePAC = derive2 { name="SpacePAC"; version="1.40.0"; sha256="0b9gpv1jr09cd7q8n63jln13dh2gxp463wlxf4gjm628bxnd4ld2"; depends=[iPAC]; };
-  Spaniel = derive2 { name="Spaniel"; version="1.16.0"; sha256="0chdzslsgy0vy14hbzwsgvx48gibldnpk8dax01znzpckn7cydza"; depends=[dplyr DropletUtils ggplot2 igraph jpeg jsonlite magrittr png S4Vectors scater scran Seurat shiny SingleCellExperiment SummarizedExperiment]; };
-  SparseArray = derive2 { name="SparseArray"; version="1.2.4"; sha256="0gz1j8g020bp88i5idrhj9qrixgar3wvxxna46ds60q6d8lsn4vi"; depends=[BiocGenerics IRanges Matrix MatrixGenerics matrixStats S4Arrays S4Vectors XVector]; };
-  SparseSignatures = derive2 { name="SparseSignatures"; version="2.12.0"; sha256="1mw13hhfh4810czvdyr7yfz1ydnjdyil4fx1xr1nq5p940pv6kq3"; depends=[Biostrings BSgenome data_table GenomeInfoDb GenomicRanges ggplot2 gridExtra IRanges NMF nnlasso nnls reshape2]; };
-  SpatialCPie = derive2 { name="SpatialCPie"; version="1.18.0"; sha256="10ypjra117w1n5344vjdn44rzwk8yf32y9lyig5i8nch386bli85"; depends=[colorspace data_table digest dplyr ggforce ggiraph ggplot2 ggrepel igraph lpSolve purrr readr rlang shiny shinycssloaders shinyjs shinyWidgets SummarizedExperiment tibble tidyr tidyselect zeallot]; };
-  SpatialDecon = derive2 { name="SpatialDecon"; version="1.12.3"; sha256="0myaf95pq12x9kjzn695k122v921znslp65hpcxw8yjxvjjd02vn"; depends=[Biobase GeomxTools logNormReg Matrix repmis SeuratObject]; };
-  SpatialExperiment = derive2 { name="SpatialExperiment"; version="1.12.0"; sha256="1s42jzq95f662h39zmbf06qmrrglbch8sgygpnwqblrjbrqgm7n4"; depends=[BiocFileCache BiocGenerics magick rjson S4Vectors SingleCellExperiment SummarizedExperiment]; };
-  SpatialFeatureExperiment = derive2 { name="SpatialFeatureExperiment"; version="1.4.0"; sha256="1ys7rkamcqpcby95vrskqmm4xka84vvv79k1svxnjsl4plwpqzx6"; depends=[BiocGenerics BiocNeighbors BiocParallel Matrix rjson rlang S4Vectors sf SingleCellExperiment SpatialExperiment spdep SummarizedExperiment terra]; };
-  SpatialOmicsOverlay = derive2 { name="SpatialOmicsOverlay"; version="1.2.1"; sha256="0smwr332zxxi6wp0xsxwj2bp42jn92n7wdbhdf3dmmcgwbgd3z37"; depends=[base64enc Biobase BiocFileCache data_table dplyr EBImage GeomxTools ggplot2 ggtext magick pbapply plotrix RBioFormats readxl S4Vectors scattermore stringr XML]; };
-  SpeCond = derive2 { name="SpeCond"; version="1.56.0"; sha256="1g3qjqlxnkqjin8qyq2h5qrski6slc3bwbwqfrnlykhshmrj148q"; depends=[Biobase fields hwriter mclust RColorBrewer]; };
-  Spectra = derive2 { name="Spectra"; version="1.12.0"; sha256="07zs9x5fzxzwicjc5x29sv33yidmq1ar70ss91py094zbw9i63qy"; depends=[BiocGenerics BiocParallel fs IRanges MetaboCoreUtils MsCoreUtils ProtGenerics S4Vectors]; };
-  SpectralTAD = derive2 { name="SpectralTAD"; version="1.18.0"; sha256="0f22j4n3zzgd01snh254yhsa6z3qzaa2i8ylc9bc6jj9ifivn43q"; depends=[BiocParallel cluster dplyr GenomicRanges HiCcompare magrittr Matrix PRIMME]; };
-  SpidermiR = derive2 { name="SpidermiR"; version="1.32.0"; sha256="07s421c8ashww8x99ac18fy1lvjl4zmm3jsz0fggw1gvii172c1x"; depends=[AnnotationDbi gdata httr igraph miRNAtap miRNAtap_db org_Hs_eg_db]; };
-  SpliceWiz = derive2 { name="SpliceWiz"; version="1.4.1"; sha256="0hkly0wi7nqwsnqf0pqr48q3qpq1sjyzsfpbar7qzwhar9xmcr2p"; depends=[AnnotationHub BiocFileCache BiocGenerics BiocParallel Biostrings BSgenome data_table DelayedArray DelayedMatrixStats DT fst genefilter GenomeInfoDb GenomicRanges ggplot2 HDF5Array heatmaply htmltools IRanges magrittr matrixStats NxtIRFdata ompBAM patchwork pheatmap plotly progress R_utils RColorBrewer Rcpp RcppProgress rhandsontable rhdf5 rtracklayer rvest S4Vectors scales shiny shinydashboard shinyFiles shinyWidgets stringi SummarizedExperiment zlibbioc]; };
-  SplicingFactory = derive2 { name="SplicingFactory"; version="1.10.0"; sha256="0vk2cy7h9pypm6sk885y5i7gxj7dz8h690zd51la6ygjffnw4jwi"; depends=[SummarizedExperiment]; };
-  SplicingGraphs = derive2 { name="SplicingGraphs"; version="1.42.0"; sha256="1nayd64paddq4qm0k6m6lhjdy7rbz16ma394a81j10l12h378p34"; depends=[BiocGenerics BiocParallel GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges graph igraph IRanges Rgraphviz Rsamtools S4Vectors]; };
-  SpotClean = derive2 { name="SpotClean"; version="1.4.1"; sha256="06na6hbzb9sf7gq86b9zb08hfy2pflxsgql1clwdn63b4bhrxc34"; depends=[dplyr ggplot2 Matrix RColorBrewer readbitmap rhdf5 rjson rlang S4Vectors Seurat SpatialExperiment SummarizedExperiment tibble viridis]; };
-  StarBioTrek = derive2 { name="StarBioTrek"; version="1.28.0"; sha256="0cpgn0zcimg18yybfgrjzdczsinvx6n81jjm850gbi76ararq8sc"; depends=[AnnotationDbi e1071 ggplot2 graphite igraph MLmetrics reshape2 ROCR SpidermiR]; };
-  Statial = derive2 { name="Statial"; version="1.4.5"; sha256="1hrjkncgd1vppbxc66vp1i5kliqpdp0m4w7wqc48zw8pnns4555q"; depends=[BiocParallel concaveman data_table dplyr ggplot2 limma magrittr plotly purrr ranger S4Vectors SingleCellExperiment SpatialExperiment spatstat_explore spatstat_geom stringr SummarizedExperiment tibble tidyr tidyselect]; };
-  Streamer = derive2 { name="Streamer"; version="1.48.0"; sha256="0qijx9bf681xll75vwfzg14xnnlyb5svb8slanhzjw9czxr4axmb"; depends=[BiocGenerics graph RBGL]; };
-  Structstrings = derive2 { name="Structstrings"; version="1.18.0"; sha256="10j1khhjd30wn9yfz4jhgx34z0yyijgwgydr8ric52337vwpx6dl"; depends=[BiocGenerics Biostrings crayon IRanges S4Vectors stringi stringr XVector]; };
-  StructuralVariantAnnotation = derive2 { name="StructuralVariantAnnotation"; version="1.18.0"; sha256="1h3l3xbxwf2w2dl0qz72v68h5g77zhd2rr0g86l2dhn67mhy8ml2"; depends=[assertthat BiocGenerics Biostrings dplyr GenomeInfoDb GenomicFeatures GenomicRanges IRanges rlang rtracklayer S4Vectors stringr SummarizedExperiment VariantAnnotation]; };
-  SubCellBarCode = derive2 { name="SubCellBarCode"; version="1.18.0"; sha256="12a0ma7xdmmnr5ib0lvmk6981jyy8ypb2y0a1vq48f3ygnhpdfw3"; depends=[AnnotationDbi caret e1071 ggplot2 ggrepel gridExtra networkD3 org_Hs_eg_db Rtsne scatterplot3d]; };
-  SummarizedBenchmark = derive2 { name="SummarizedBenchmark"; version="2.20.0"; sha256="16gzlkyf76fcd46ck417sxh86smivmaggqvyg0v9v0f4jac7610g"; depends=[BiocGenerics BiocParallel crayon digest dplyr ggplot2 mclust rlang S4Vectors sessioninfo stringr SummarizedExperiment tibble tidyr UpSetR]; };
-  SummarizedExperiment = derive2 { name="SummarizedExperiment"; version="1.32.0"; sha256="1949k2658drmcrrr7v6748b40g2qym39n0ch50jxf0xmmlb1r04z"; depends=[Biobase BiocGenerics DelayedArray GenomeInfoDb GenomicRanges IRanges Matrix MatrixGenerics S4Arrays S4Vectors]; };
-  Summix = derive2 { name="Summix"; version="2.8.0"; sha256="09bihbw5lhkrj88gmbcm63canvrsakwmddhb30j3vyppxbj2jvkp"; depends=[nloptr]; };
-  SwathXtend = derive2 { name="SwathXtend"; version="2.24.0"; sha256="0fwv3phxbana637ydvlidhsrmq5x2vwcad4gj7mx2lbayk6k7dhm"; depends=[e1071 lattice openxlsx VennDiagram]; };
-  SynExtend = derive2 { name="SynExtend"; version="1.14.0"; sha256="1vyi532mqj01szvjbfaxmyyyh1gcdb3pdrdvk1h1jbc2k1rmlk7n"; depends=[Biostrings DECIPHER IRanges S4Vectors]; };
-  SynMut = derive2 { name="SynMut"; version="1.18.0"; sha256="02mpbivm30y102g64cyzky675dblln5w8ar3wv44k2rlgdvm4xfm"; depends=[BiocGenerics Biostrings seqinr stringr]; };
-  TADCompare = derive2 { name="TADCompare"; version="1.12.1"; sha256="0n590a6mal49w6yjxbp7ldb4f78b0bkmzk080a5frfcm6mlmkyba"; depends=[cluster cowplot dplyr ggplot2 ggpubr HiCcompare magrittr Matrix PRIMME RColorBrewer reshape2 tidyr]; };
-  TAPseq = derive2 { name="TAPseq"; version="1.14.1"; sha256="14df2wp3ll87lzcww5lxic4y2ymyzmidibrf5dmgplkgxrnhypgg"; depends=[BiocGenerics BiocParallel Biostrings BSgenome dplyr GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges IRanges S4Vectors tidyr]; };
-  TBSignatureProfiler = derive2 { name="TBSignatureProfiler"; version="1.14.0"; sha256="0cixafwsp7fd5j0zfrf63vsljv9ryj3bd0idy3jcg6gip1l92bnn"; depends=[ASSIGN BiocParallel ComplexHeatmap DESeq2 DT edgeR gdata ggplot2 GSVA magrittr RColorBrewer reshape2 rlang ROCit S4Vectors singscore SummarizedExperiment]; };
-  TCC = derive2 { name="TCC"; version="1.42.0"; sha256="0yy960fkfral1jr1myja40wmb5pzh6drigdsh62azylb3d9a7cmk"; depends=[baySeq DESeq2 edgeR ROC]; };
-  TCGAbiolinks = derive2 { name="TCGAbiolinks"; version="2.30.0"; sha256="1k8xiv4bmil420176ckfda2r6y0s46dk1cm8dbywav86q28bmzzx"; depends=[biomaRt data_table downloader dplyr GenomicRanges ggplot2 httr IRanges jsonlite knitr plyr purrr R_utils readr rvest S4Vectors stringr SummarizedExperiment TCGAbiolinksGUI_data tibble tidyr XML xml2]; };
-  TCGAutils = derive2 { name="TCGAutils"; version="1.22.2"; sha256="16pcz52ynx0syb5bcnkywllqxcfp7jipqgzgjr7q70k1z13ah7a3"; depends=[AnnotationDbi BiocBaseUtils BiocGenerics GenomeInfoDb GenomicDataCommons GenomicFeatures GenomicRanges IRanges MultiAssayExperiment RaggedExperiment rvest S4Vectors stringr SummarizedExperiment xml2]; };
-  TCseq = derive2 { name="TCseq"; version="1.26.0"; sha256="0k97bxzwx3wj5jf558a5z51cjb841ga34lxgss3im1awcs99m3vn"; depends=[BiocGenerics cluster e1071 edgeR GenomicAlignments GenomicRanges ggplot2 IRanges locfit reshape2 Rsamtools SummarizedExperiment]; };
-  TDbasedUFE = derive2 { name="TDbasedUFE"; version="1.2.0"; sha256="1n0ljmifcj38lbmyi1vaw05pxim8mvm75zbr42sl1n3p4vyrkvb6"; depends=[GenomicRanges MOFAdata readr rTensor shiny tximport tximportData]; };
-  TDbasedUFEadv = derive2 { name="TDbasedUFEadv"; version="1.2.0"; sha256="07r45zv33rlmahcwrhvkr0m437p86yc7hampa91ddk19rh7x1151"; depends=[Biobase DOSE enrichplot enrichR GenomicRanges hash RTCGA rTensor shiny STRINGdb TDbasedUFE]; };
-  TEKRABber = derive2 { name="TEKRABber"; version="1.6.0"; sha256="0l0ri7dg7jc3k7xyhwkf5rnmsgm4192143vxzc1j6fqhjl4q95bl"; depends=[apeglm biomaRt DESeq2 dplyr magrittr Rcpp SCBN]; };
-  TENxIO = derive2 { name="TENxIO"; version="1.4.0"; sha256="1191xc69nqqzpm6l24k9bil2nzkjvximjrnkg61byivp45zf9v5y"; depends=[BiocBaseUtils BiocGenerics BiocIO GenomeInfoDb GenomicRanges Matrix MatrixGenerics R_utils RCurl readr S4Vectors SingleCellExperiment SummarizedExperiment]; };
-  TEQC = derive2 { name="TEQC"; version="4.24.0"; sha256="0n5zw3ylkqikq0b1wwla89v8h4fksn2r7dcs57ljwkva03zlp9fa"; depends=[Biobase BiocGenerics hwriter IRanges Rsamtools]; };
-  TFARM = derive2 { name="TFARM"; version="1.24.0"; sha256="1yjf1ck99hicm8fc14bd1rlkfx7infcy7iwh9dxrws6lggg1xh90"; depends=[arules fields GenomicRanges gplots stringr]; };
-  TFBSTools = derive2 { name="TFBSTools"; version="1.40.0"; sha256="18msr889nygk1c3wsjxc9bv989zakkl9f1h2a6cnfy8rxhbxpvwq"; depends=[Biobase BiocGenerics BiocParallel Biostrings BSgenome caTools CNEr DBI DirichletMultinomial GenomeInfoDb GenomicRanges gtools IRanges RSQLite rtracklayer S4Vectors seqLogo TFMPvalue XML XVector]; };
-  TFEA_ChIP = derive2 { name="TFEA.ChIP"; version="1.22.0"; sha256="0fawr8g13kw06z4a0k2vk38mgs4lv0ichrx0qxvn2qnbkx12f40g"; depends=[biomaRt dplyr GenomicFeatures GenomicRanges IRanges org_Hs_eg_db R_utils]; };
-  TFHAZ = derive2 { name="TFHAZ"; version="1.24.0"; sha256="0084ida6g6sr2y56vi7wfxg5wy4wcg6jiqzjcw52pg14j7ha5qli"; depends=[GenomicRanges IRanges ORFik S4Vectors]; };
-  TFutils = derive2 { name="TFutils"; version="1.22.0"; sha256="0f1rimk2qsfvyznm70zqa5xjcm21fz66fwyf1i48f7pfdwykbzig"; depends=[AnnotationDbi BiocFileCache dplyr DT GSEABase httr magrittr miniUI org_Hs_eg_db readxl rjson Rsamtools shiny]; };
-  TIN = derive2 { name="TIN"; version="1.34.0"; sha256="0spk4zxx6w26wncnbp26fsiqs8i5ggh7wq3b8w61chl6klxx8nbb"; depends=[aroma_affymetrix data_table impute squash stringr WGCNA]; };
-  TMixClust = derive2 { name="TMixClust"; version="1.24.0"; sha256="0qcdm3mv7yx48gz0af7h7bcgisyq3vn2qvbxzcim0fp4p9cgwrm2"; depends=[Biobase BiocParallel cluster flexclust gss mvtnorm SPEM zoo]; };
-  TNBC_CMS = derive2 { name="TNBC.CMS"; version="1.18.0"; sha256="1syygq9br5icbjbmi1kq9gs7g3bw1vzmy8mlf8ga2rk1lw6ika90"; depends=[e1071 forestplot GGally ggplot2 ggpubr GSVA pheatmap pracma quadprog R_utils RColorBrewer SummarizedExperiment survival]; };
-  TOAST = derive2 { name="TOAST"; version="1.16.0"; sha256="00wpgs2zdrgrh9xmp6m5h9xgv85mhdi36qvwg9gwbz9i7cfabmy1"; depends=[corpcor doParallel EpiDISH GGally ggplot2 limma nnls quadprog SummarizedExperiment tidyr]; };
-  TOP = derive2 { name="TOP"; version="1.2.0"; sha256="0dnvxjsqfamcyzhwdaw8dxzw0y4sv9kmfjirhvwdzpprp4230wzh"; depends=[assertthat caret ClassifyR directPA doParallel dplyr ggnewscale ggplot2 ggraph ggrepel ggthemes glmnet Hmisc igraph latex2exp limma magrittr plotly pROC purrr reshape2 statmod stringr survival tibble tidygraph tidyr]; };
-  TPP = derive2 { name="TPP"; version="3.30.0"; sha256="10lfvd2mrqdpbmsx7whkyawzjm7qr4ral669038lsjds2zf0ihk6"; depends=[Biobase biobroom broom data_table doParallel dplyr foreach futile_logger ggplot2 gridExtra knitr limma magrittr MASS mefa nls2 openxlsx plyr purrr RColorBrewer RCurl reshape2 rmarkdown stringr tibble tidyr VennDiagram VGAM]; };
-  TPP2D = derive2 { name="TPP2D"; version="1.18.0"; sha256="0iaf34zk99bgdbnx4ygbpz7pgn3qblq1rdb5z6i80wh59y4519ff"; depends=[BiocParallel doParallel dplyr foreach ggplot2 limma MASS openxlsx RCurl stringr tidyr]; };
-  TREG = derive2 { name="TREG"; version="1.6.0"; sha256="0zxbqnwwl2a9d7v0a2gn132vw8f2xw0gdig48r47gzc91bn0fsz5"; depends=[Matrix purrr rafalib SummarizedExperiment]; };
-  TRESS = derive2 { name="TRESS"; version="1.8.0"; sha256="1vlvfacr7q9m1phrfs4xj51i6ia54scv53zbwqq58ri06m4whcl7"; depends=[AnnotationDbi GenomicFeatures GenomicRanges IRanges Matrix matrixStats Rsamtools rtracklayer S4Vectors]; };
-  TRONCO = derive2 { name="TRONCO"; version="2.34.0"; sha256="0d48hwpl561ns5fyr0z046mqnz6790fqszwyxll1dh0mjilslahc"; depends=[bnlearn circlize doParallel foreach gridExtra gtable gtools igraph iterators R_matlab RColorBrewer Rgraphviz scales xtable]; };
-  TSAR = derive2 { name="TSAR"; version="1.0.0"; sha256="1kghp5w3fpbhj01hmz6q8zm72pa4c3vwwhqvvb0jax1p56ny6xdw"; depends=[dplyr ggplot2 ggpubr jsonlite magrittr mgcv minpack_lm openxlsx plotly readxl rhandsontable shiny shinyjs shinyWidgets stringr tidyr]; };
-  TSCAN = derive2 { name="TSCAN"; version="1.40.1"; sha256="0dgfqhq5ynjj11hscccab1ijhly2j1dmj9yhhpib83ivpj7l3cws"; depends=[combinat DelayedArray fastICA ggplot2 gplots igraph Matrix mclust mgcv plyr S4Vectors shiny SingleCellExperiment SummarizedExperiment TrajectoryUtils]; };
-  TTMap = derive2 { name="TTMap"; version="1.24.0"; sha256="1qsja2byl2skdb8qhrp3jia234ynzrzkn658abqf8ycc04nd8xwp"; depends=[Biobase colorRamps rgl SummarizedExperiment]; };
-  TVTB = derive2 { name="TVTB"; version="1.28.0"; sha256="11s5v2q02q9rmrry70zdsp8z1dx3mdgkgf9v1c9jilrj7ays2000"; depends=[AnnotationFilter BiocGenerics BiocParallel Biostrings ensembldb ensemblVEP GenomeInfoDb GenomicRanges GGally ggplot2 Gviz IRanges limma reshape2 Rsamtools S4Vectors SummarizedExperiment VariantAnnotation]; };
-  TargetDecoy = derive2 { name="TargetDecoy"; version="1.8.0"; sha256="03y4s21kbyj7kcsr86zjib0abz8cn5xg89lpss7ykdrrgmh2g0jb"; depends=[ggplot2 ggpubr miniUI mzID mzR shiny]; };
-  TargetScore = derive2 { name="TargetScore"; version="1.40.0"; sha256="0lrnxdry9yrhxbrmvfhgmkmj0nfqq50sa0xdq8caypz996dkz4qi"; depends=[Matrix pracma]; };
-  TargetSearch = derive2 { name="TargetSearch"; version="2.4.2"; sha256="1f6dw6jgbf22szg2kjmrrc9vggm5ihyawxp245gidsfxhz875ycq"; depends=[assertthat ncdf4]; };
-  TileDBArray = derive2 { name="TileDBArray"; version="1.12.0"; sha256="1mx1mmwgh3p8mpwrbpzv31zmq7la7pxnwqmcm91svnxkd36061wj"; depends=[DelayedArray Rcpp S4Vectors tiledb]; };
-  TimiRGeN = derive2 { name="TimiRGeN"; version="1.11.0"; sha256="104j3rdl1mfklqvpsr753zlplr001cqbkphbhf2xrcfw8si7bgr2"; depends=[biomaRt clusterProfiler dplyr FreqProf ggdendro gghighlight ggplot2 gplots gtools igraph Mfuzz MultiAssayExperiment RCy3 readxl reshape2 rWikiPathways scales stringr tidyr]; };
-  TissueEnrich = derive2 { name="TissueEnrich"; version="1.22.0"; sha256="13wcph6vy17y9xh16zrwn6dvqsm7lzgi9lkmz05bhqvlrmqxhn6j"; depends=[dplyr ensurer ggplot2 GSEABase SummarizedExperiment tidyr]; };
-  TitanCNA = derive2 { name="TitanCNA"; version="1.40.0"; sha256="1n82j9sgaizykgxs8i7dc4jbxxxhmqng850qyzzglzliyq8859nz"; depends=[BiocGenerics data_table dplyr foreach GenomeInfoDb GenomicRanges IRanges VariantAnnotation]; };
-  TnT = derive2 { name="TnT"; version="1.24.0"; sha256="1y4v2rphdils0rvkjsyfynncvmn1js1n5d5qhqmc2v8rhh1wjyv5"; depends=[Biobase data_table GenomeInfoDb GenomicRanges htmlwidgets IRanges jsonlite knitr S4Vectors]; };
-  ToxicoGx = derive2 { name="ToxicoGx"; version="2.6.0"; sha256="0cwgf2ha1lm8v1hxmgn0y4j47laz23kcf10nj394wdfd6ymgm2mq"; depends=[assertthat Biobase BiocGenerics BiocParallel caTools CoreGx data_table downloader dplyr ggplot2 jsonlite limma magrittr reshape2 S4Vectors scales SummarizedExperiment tibble tidyr]; };
-  TrajectoryGeometry = derive2 { name="TrajectoryGeometry"; version="1.10.1"; sha256="11lgcffh6pbjxlb20dhh34yvvs4iz9s6d32dn9lkn1z7b79x6vsd"; depends=[ggplot2 pracma rgl]; };
-  TrajectoryUtils = derive2 { name="TrajectoryUtils"; version="1.10.1"; sha256="178v5r0nck9ils5k7hj92x7z1xk5zq6zyc78wqnz7s3shbnq9ld7"; depends=[igraph Matrix S4Vectors SingleCellExperiment SummarizedExperiment]; };
-  TransView = derive2 { name="TransView"; version="1.46.0"; sha256="0knd6rxlgqrzacxax42zxm7k64kc5wqdsy7wanngc3psqla8g96m"; depends=[BiocGenerics GenomicRanges gplots IRanges Rhtslib S4Vectors zlibbioc]; };
-  TreeAndLeaf = derive2 { name="TreeAndLeaf"; version="1.14.0"; sha256="131nbrngjldn0p5ghdr4rvwx3p5r04rdg5cqx61qvyja77nakpb1"; depends=[ape igraph RedeR]; };
-  TreeSummarizedExperiment = derive2 { name="TreeSummarizedExperiment"; version="2.10.0"; sha256="1yvqixlivapasx0ircfhmc8ckr7sw86d9vfvnqj97p4r667x6z6g"; depends=[ape BiocGenerics BiocParallel Biostrings dplyr IRanges rlang S4Vectors SingleCellExperiment SummarizedExperiment treeio]; };
-  Trendy = derive2 { name="Trendy"; version="1.24.1"; sha256="13plnyrr00m34dc25wqbk3ikxfd118vaz39z88ikhwa566k8kw5w"; depends=[BiocParallel DT gplots magrittr S4Vectors segmented shiny shinyFiles SummarizedExperiment]; };
-  TurboNorm = derive2 { name="TurboNorm"; version="1.50.0"; sha256="0mwqd2y8h2g9lsjnkd9k2na7g5zrj89cs4balzyk45dbk8qvy5yk"; depends=[affy convert lattice limma marray]; };
-  TypeInfo = derive2 { name="TypeInfo"; version="1.68.0"; sha256="1r299hi7kia0m6yhqc6n0qxzdbhk2lqrsnxgjiicgddy095cq1gs"; depends=[]; };
-  UCell = derive2 { name="UCell"; version="2.6.2"; sha256="00v4b91f7y3zyndbl4wlfay8wljnqypfc05vrw15yr62d9smd35d"; depends=[BiocNeighbors BiocParallel data_table Matrix SingleCellExperiment SummarizedExperiment]; };
-  UMI4Cats = derive2 { name="UMI4Cats"; version="1.12.0"; sha256="1imsndzvgz2ibhnb9y0cilr1kdkqnww9ncy1clviqjcb37iqy6w1"; depends=[annotate BiocFileCache BiocGenerics Biostrings BSgenome cowplot DESeq2 dplyr fda GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 IRanges magick magrittr org_Hs_eg_db R_utils rappdirs Rbowtie2 RColorBrewer regioneR reshape2 rlang Rsamtools S4Vectors scales ShortRead stringr SummarizedExperiment TxDb_Hsapiens_UCSC_hg19_knownGene zoo]; };
-  UNDO = derive2 { name="UNDO"; version="1.44.0"; sha256="0lj8y4fcfl91g3mf4mnixg509m7viwx5fcwmsbzw3a71anmgcifi"; depends=[Biobase BiocGenerics boot MASS nnls]; };
-  Ularcirc = derive2 { name="Ularcirc"; version="1.20.0"; sha256="1f4vcrmxsv1daqdrdw4kzqjawi03m9n6s1dvrhn4v3dq3y7sc9hi"; depends=[AnnotationDbi AnnotationHub BiocGenerics Biostrings BSgenome data_table DT GenomeInfoDb GenomeInfoDbData GenomicAlignments GenomicFeatures GenomicRanges ggplot2 ggrepel gsubfn mirbase_db moments Organism_dplyr plotgardener R_utils S4Vectors shiny shinydashboard shinyFiles shinyjs yaml]; };
-  UniProt_ws = derive2 { name="UniProt.ws"; version="2.42.0"; sha256="0qpp6r705llmlf38a8nvgr1q198lj7bwrlvnph4mcyb9sz82ra3d"; depends=[AnnotationDbi BiocBaseUtils BiocFileCache BiocGenerics httpcache httr jsonlite progress rjsoncons RSQLite]; };
-  Uniquorn = derive2 { name="Uniquorn"; version="2.22.0"; sha256="1rd0jk7ifc2mhsslgf7nc9mz3nbqbm6svv86lv8y2j3y4iyivgwp"; depends=[data_table doParallel foreach GenomicRanges IRanges R_utils stringr VariantAnnotation WriteXLS]; };
-  VAExprs = derive2 { name="VAExprs"; version="1.8.0"; sha256="0m150khl1zlhx43br4j7m9sgwav3qsam27hdxfz5pa5acy1hd87r"; depends=[CatEncoders DeepPINCS DiagrammeR keras mclust purrr scater SingleCellExperiment SummarizedExperiment tensorflow]; };
-  VCFArray = derive2 { name="VCFArray"; version="1.18.0"; sha256="0b2dnhr9nivkprk92zvmvyqcsf074dyp5x25hi77kzklvlip1a0h"; depends=[BiocGenerics DelayedArray GenomicFiles GenomicRanges Rsamtools S4Vectors VariantAnnotation]; };
-  VDJdive = derive2 { name="VDJdive"; version="1.4.0"; sha256="1sd6gip0j77zsfq68dgxq1szp6vl4j7g2dvnsi1903691r6wdfkf"; depends=[BiocParallel cowplot ggplot2 gridExtra IRanges Matrix RColorBrewer Rcpp S4Vectors SingleCellExperiment SummarizedExperiment]; };
-  VERSO = derive2 { name="VERSO"; version="1.12.0"; sha256="1wddzvvhmwv4y7zd1lg02zgmm3pwyz8nkn9c9vx55pnwa4p97igj"; depends=[ape data_tree Rfast]; };
-  VaSP = derive2 { name="VaSP"; version="1.14.0"; sha256="0y5kc6dw2ll2c48avnvcw94iv6z6m89cghzlwwys0yawsgzj6pfy"; depends=[ballgown cluster GenomeInfoDb GenomicAlignments GenomicRanges IRanges matrixStats Rsamtools S4Vectors]; };
-  VanillaICE = derive2 { name="VanillaICE"; version="1.64.1"; sha256="112dkp3j13vy41cgvxlm09v2ns7vcsf7qqdkvrp1qfqv143212si"; depends=[Biobase BiocGenerics BSgenome_Hsapiens_UCSC_hg18 crlmm data_table foreach GenomeInfoDb GenomicRanges IRanges lattice MatrixGenerics matrixStats oligoClasses S4Vectors SummarizedExperiment]; };
-  VarCon = derive2 { name="VarCon"; version="1.10.0"; sha256="19xwdbnrn407hsm67lrv4hsb04pi78y6ap917zxb8knjwi6wfy6l"; depends=[Biostrings BSgenome GenomicRanges ggplot2 IRanges shiny shinycssloaders shinyFiles]; };
-  VariantAnnotation = derive2 { name="VariantAnnotation"; version="1.48.1"; sha256="0l9xkrvsrc3m65kdjcyir6jkpa718g7idziwr0pp5yaj84bd3xia"; depends=[AnnotationDbi Biobase BiocGenerics Biostrings BSgenome DBI GenomeInfoDb GenomicFeatures GenomicRanges IRanges MatrixGenerics Rhtslib Rsamtools rtracklayer S4Vectors SummarizedExperiment XVector zlibbioc]; };
-  VariantExperiment = derive2 { name="VariantExperiment"; version="1.16.0"; sha256="1ibw2qzab9drn4y95k2s9aam0f2vimzjbq1kkpsqnm206051flwb"; depends=[Biostrings DelayedArray DelayedDataFrame GDSArray gdsfmt GenomicRanges IRanges S4Vectors SeqArray SNPRelate SummarizedExperiment]; };
-  VariantFiltering = derive2 { name="VariantFiltering"; version="1.38.0"; sha256="01czx88dzqm8qv44kyy1n7b999wgfklxzgvmjh10chf677phnzsr"; depends=[AnnotationDbi Biobase BiocGenerics BiocParallel Biostrings BSgenome DT GenomeInfoDb GenomicFeatures GenomicRanges GenomicScores graph Gviz IRanges RBGL Rsamtools S4Vectors shiny shinyjs shinythemes shinyTree SummarizedExperiment VariantAnnotation XVector]; };
-  VariantTools = derive2 { name="VariantTools"; version="1.44.0"; sha256="1ibg4cdpbv4ph3y4r90j8zfwr1cy1z33p4bazhzyi2zv3xa1nrq6"; depends=[Biobase BiocGenerics BiocParallel Biostrings BSgenome GenomeInfoDb GenomicFeatures GenomicRanges IRanges Matrix Rsamtools rtracklayer S4Vectors VariantAnnotation]; };
-  VegaMC = derive2 { name="VegaMC"; version="3.40.0"; sha256="1s9vz2kjavsf7ja5bqmvcylawjh4gz3chvr251xgiq56n7wmyq08"; depends=[Biobase biomaRt]; };
-  VennDetail = derive2 { name="VennDetail"; version="1.18.0"; sha256="09w3i0dp2lhjj4m62ql7ad98kflsyys73xnw76jj97cyqa0mgsxr"; depends=[dplyr futile_logger ggplot2 magrittr purrr tibble UpSetR VennDiagram]; };
-  ViSEAGO = derive2 { name="ViSEAGO"; version="1.16.0"; sha256="1c20kbr640l69psbrn5a7xmrv6hgzyznmwdvbxbhdn96i1cirxk4"; depends=[AnnotationDbi AnnotationForge biomaRt data_table dendextend DiagrammeR DT dynamicTreeCut fgsea ggplot2 GO_db GOSemSim heatmaply htmlwidgets igraph plotly processx R_utils RColorBrewer scales topGO UpSetR]; };
-  Voyager = derive2 { name="Voyager"; version="1.4.0"; sha256="0f7m8zs3ycb3hsk00qkpq196nagrm5cnz5383n21jlxil5q6ajp0"; depends=[BiocParallel bluster ggnewscale ggplot2 lifecycle Matrix matrixStats patchwork rlang RSpectra S4Vectors scales scico sf SingleCellExperiment SpatialExperiment SpatialFeatureExperiment spdep SummarizedExperiment terra]; };
-  VplotR = derive2 { name="VplotR"; version="1.12.1"; sha256="0x6cdikwgva91xcqss69j28x27pzkpbac1c178x773nzxrybsh7v"; depends=[cowplot GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 IRanges magrittr RColorBrewer reshape2 Rsamtools S4Vectors zoo]; };
-  Wrench = derive2 { name="Wrench"; version="1.20.0"; sha256="11g6a2315hllf197ssccybhv6i7p48n7bv2amzpgxs7bs7qg3k9d"; depends=[limma locfit matrixStats]; };
-  XDE = derive2 { name="XDE"; version="2.48.0"; sha256="0xnxbyrdafcx5dqms0sqp70bm62w1g92mjidmj99jm50ymjxpfl9"; depends=[Biobase BiocGenerics genefilter GeneMeta gtools mvtnorm RColorBrewer siggenes]; };
-  XINA = derive2 { name="XINA"; version="1.20.0"; sha256="1cnw2zbjfs8qcgqrx557g00m59h5pldcx788v9r4gn2f70rx7vx3"; depends=[alluvial ggplot2 gridExtra igraph mclust plyr STRINGdb]; };
-  XNAString = derive2 { name="XNAString"; version="1.10.0"; sha256="0g47fdbgpvprx71qng0kdqicv2p0gk5pyx0c0zpa6ffv5mbhjhy4"; depends=[Biostrings BSgenome data_table formattable future_apply GenomicRanges IRanges Rcpp S4Vectors stringi stringr]; };
-  XVector = derive2 { name="XVector"; version="0.42.0"; sha256="0h03imdl0pyy714kmddsdnsv69bd8kr7bhi9wq9z18y8ahg5cqx1"; depends=[BiocGenerics IRanges S4Vectors zlibbioc]; };
-  Xeva = derive2 { name="Xeva"; version="1.18.0"; sha256="1qyr1caf63f0sc6mrww6sdn7hh44r90rz6xdslm26b1827gz9zfn"; depends=[BBmisc Biobase ComplexHeatmap doParallel downloader ggplot2 nlme PharmacoGx Rmisc scales]; };
-  YAPSA = derive2 { name="YAPSA"; version="1.28.0"; sha256="07dxhaywad9ivkrc454hhizfw6a5yvarrc5fp5za2jgsznv408wl"; depends=[Biostrings BSgenome_Hsapiens_UCSC_hg19 circlize ComplexHeatmap corrplot dendextend doParallel dplyr GenomeInfoDb GenomicRanges GetoptLong ggbeeswarm ggplot2 gridExtra gtrellis KEGGREST limSolve magrittr PMCMRplus pracma reshape2 SomaticSignatures VariantAnnotation]; };
-  ZygosityPredictor = derive2 { name="ZygosityPredictor"; version="1.2.0"; sha256="00vwrz9f8bcrksb41vklx1w8wp44vvbp5jac5bw5c405arman9nc"; depends=[DelayedArray dplyr GenomicAlignments GenomicRanges igraph IRanges purrr Rsamtools stringr tibble VariantAnnotation]; };
-  a4 = derive2 { name="a4"; version="1.50.1"; sha256="0sibsmn7ma2imhfn2pn1fvy6hinzlmsczmx944fzg0aj1lpjcdqr"; depends=[a4Base a4Classif a4Core a4Preproc a4Reporting]; };
-  a4Base = derive2 { name="a4Base"; version="1.50.0"; sha256="0hin5lpwa7cxa862jh3y7d8kq3q9bv76ri08b27jxzyr5p7xwcr2"; depends=[a4Core a4Preproc annaffy Biobase genefilter glmnet gplots limma mpm multtest]; };
-  a4Classif = derive2 { name="a4Classif"; version="1.50.0"; sha256="1wxkyqyhb3mj04kmaisd09dapywjpc081ihaig5rs04k611ddvhi"; depends=[a4Core a4Preproc Biobase glmnet pamr ROCR varSelRF]; };
-  a4Core = derive2 { name="a4Core"; version="1.50.0"; sha256="0iismcsnkyb7m4dwmxw5pyvscj2bhp6zw9hpdb2ff91viynbknq1"; depends=[Biobase glmnet]; };
-  a4Preproc = derive2 { name="a4Preproc"; version="1.50.0"; sha256="19nf3bc0gdwixif50f3bs47a1kw1w1lir1dz4l8zqdp3h8gfmj60"; depends=[Biobase BiocGenerics]; };
-  a4Reporting = derive2 { name="a4Reporting"; version="1.50.0"; sha256="16lgbwsgwp77x9a8c3hr1aqhp36skzz72xhbzm0a7w3kagmd8gn6"; depends=[xtable]; };
-  aCGH = derive2 { name="aCGH"; version="1.80.0"; sha256="1qckqdil1cq8lbrj9di96w9934r1fp48xpmfdwp4f2vw9pjadi1q"; depends=[Biobase cluster multtest survival]; };
-  abseqR = derive2 { name="abseqR"; version="1.20.0"; sha256="0s865nahgm0by2nvjydkjlhkj2sxmrvcrhw7rmm46ld4g10xsrc8"; depends=[BiocParallel BiocStyle circlize flexdashboard ggcorrplot ggdendro ggplot2 gridExtra knitr plotly plyr png RColorBrewer reshape2 rmarkdown stringr vegan VennDiagram]; };
-  acde = derive2 { name="acde"; version="1.32.0"; sha256="1rqyjj4lgqxs372qx8p3qx2napww0djh4jz8hzgv86x9r202kk9p"; depends=[boot]; };
-  adSplit = derive2 { name="adSplit"; version="1.72.0"; sha256="0av0kji4r788cn5808g13svqpydq6xk4d2awpzpsckz7xbjyx0ya"; depends=[AnnotationDbi Biobase cluster GO_db KEGGREST multtest]; };
-  adductomicsR = derive2 { name="adductomicsR"; version="1.18.0"; sha256="0fb670gxzl5aq6vmb5d2l04r0408gxrqs06k1a3b3pzkdbd7qxwm"; depends=[adductData ade4 AnnotationHub bootstrap data_table doSNOW dplyr DT ExperimentHub fastcluster foreach fpc mzR OrgMassSpecR pastecs pracma RcppEigen reshape2 rvest smoother zoo]; };
-  adverSCarial = derive2 { name="adverSCarial"; version="1.0.0"; sha256="1ynd51ldy7xpnlxzchyi7pgh81wwz2vqvgn9810c2rwm5n6hqv0a"; depends=[DelayedArray gtools S4Vectors]; };
-  affxparser = derive2 { name="affxparser"; version="1.74.0"; sha256="18qjdsgkmdhwv2c4sbixp7fn69sbjdipn363jnms95dksdj2xvr9"; depends=[]; };
-  affy = derive2 { name="affy"; version="1.80.0"; sha256="0lsvcv7nprmsh62d0r2v44a5n915crvv1cbj9ba6fdggj7wp8zyk"; depends=[affyio Biobase BiocGenerics BiocManager preprocessCore zlibbioc]; };
-  affyContam = derive2 { name="affyContam"; version="1.60.0"; sha256="1jxp4qacclfl07ig8dfwy5gpnsqrfqnjbci1a7znc7acqg0kv0zv"; depends=[affy affydata Biobase]; };
-  affyILM = derive2 { name="affyILM"; version="1.54.0"; sha256="1sbgc787gvcnpjhm0hv80rsms679wlvphq2ch7s28zdlaa2vz7sv"; depends=[affxparser affy Biobase gcrma]; };
-  affyPLM = derive2 { name="affyPLM"; version="1.78.0"; sha256="0l7rfwj1bdkk9vd5j0zby2ijpapmd5k0s6l84zy4ld47vabxyaa6"; depends=[affy Biobase BiocGenerics gcrma preprocessCore zlibbioc]; };
-  affycomp = derive2 { name="affycomp"; version="1.78.0"; sha256="0818mgwny9hznw7lawrvmk11nwy0wxgjnlkf083vv3js4aq31gfp"; depends=[Biobase]; };
-  affycoretools = derive2 { name="affycoretools"; version="1.74.0"; sha256="0bgv8a7hf8ns472zfryf255zqdikjv08np6k6hkpvyivad25vpwy"; depends=[affy AnnotationDbi Biobase BiocGenerics DBI edgeR gcrma ggplot2 Glimma GOstats gplots hwriter lattice limma oligoClasses ReportingTools RSQLite S4Vectors xtable]; };
-  affyio = derive2 { name="affyio"; version="1.72.0"; sha256="01shv7936cb5yynxkdssczl752ayv2rx4qkrkddqhi5smksw13z9"; depends=[zlibbioc]; };
-  affylmGUI = derive2 { name="affylmGUI"; version="1.76.0"; sha256="1431zmh9van9605lh0i96as48zih17s3cfhjw94v37rswfq09fkg"; depends=[affy affyio affyPLM AnnotationDbi BiocGenerics BiocManager gcrma limma R2HTML tkrplot xtable]; };
-  aggregateBioVar = derive2 { name="aggregateBioVar"; version="1.12.0"; sha256="1i04hhncz9lhjp730gyknd8v7zakz1whc2a5pw3pn37h8k9mq5la"; depends=[Matrix rlang S4Vectors SingleCellExperiment SummarizedExperiment tibble]; };
-  agilp = derive2 { name="agilp"; version="3.34.0"; sha256="0xbbcmnbnj7y3a1wndv6zhqhrwdpdj6207wh4n0qz794akciw84a"; depends=[]; };
-  airpart = derive2 { name="airpart"; version="1.10.0"; sha256="1bdlg078nlpibbn3y1cbkglhlm440crx3alzhv9k0psv6arg2kqb"; depends=[apeglm clue ComplexHeatmap dplyr dynamicTreeCut emdbook forestplot ggplot2 lpSolve matrixStats mclust pbapply plyr RColorBrewer rlang S4Vectors scater SingleCellExperiment smurf SummarizedExperiment]; };
-  alabaster = derive2 { name="alabaster"; version="1.2.0"; sha256="0l40hl5jwsyxnkqbzsmc8k8bvyi88rfhaiaj74aba04jqj4ga23d"; depends=[alabaster_base alabaster_bumpy alabaster_mae alabaster_matrix alabaster_ranges alabaster_sce alabaster_se alabaster_spatial alabaster_string alabaster_vcf]; };
-  alabaster_base = derive2 { name="alabaster.base"; version="1.2.1"; sha256="1vpzc7h8589v49jyjgca2wyb1q548xfqnslvblmvamv28z3x2053"; depends=[alabaster_schemas jsonlite jsonvalidate Rcpp rhdf5 Rhdf5lib S4Vectors]; };
-  alabaster_bumpy = derive2 { name="alabaster.bumpy"; version="1.2.0"; sha256="0z95qbg1nl5zq5wbq351mn5i3vh0ilr9g330cqc2j1ng9rjhr5cf"; depends=[alabaster_base BiocGenerics BumpyMatrix IRanges Matrix S4Vectors]; };
-  alabaster_files = derive2 { name="alabaster.files"; version="1.0.0"; sha256="104ar597n91nhlvcvx0pl4wrymlnflvg76gfj6kjgy55q6v53i2j"; depends=[alabaster_base BiocGenerics Biostrings Rsamtools rtracklayer S4Vectors]; };
-  alabaster_mae = derive2 { name="alabaster.mae"; version="1.2.0"; sha256="1ag8g2076gzhzf8iqjszq8r4jirzqsx2hf2bkdg5x30q5g03d4ii"; depends=[alabaster_base alabaster_se MultiAssayExperiment S4Vectors]; };
-  alabaster_matrix = derive2 { name="alabaster.matrix"; version="1.2.0"; sha256="0ghgz4vys64y4z3i8bcnbz3mkwig0mhh2zf5ig59xvqn6k0xbvx5"; depends=[alabaster_base BiocGenerics DelayedArray HDF5Array Matrix rhdf5 S4Vectors SparseArray]; };
-  alabaster_ranges = derive2 { name="alabaster.ranges"; version="1.2.0"; sha256="0p66n4sarzgr5pl9qhy9rjycb4s1xcigj6b1hk0fwqvmkpgfs53d"; depends=[alabaster_base BiocGenerics GenomeInfoDb GenomicRanges IRanges S4Vectors]; };
-  alabaster_sce = derive2 { name="alabaster.sce"; version="1.2.0"; sha256="1gk4iy7f9kvn0dsl8mkwrjd40yrjmy806yfjsmliih6s3vgmwcvz"; depends=[alabaster_base alabaster_se SingleCellExperiment]; };
-  alabaster_schemas = derive2 { name="alabaster.schemas"; version="1.2.0"; sha256="0swpd4jxf75g3p4yxscb0f3q74qm1sy3jjr5y55wqkb5c22lmmy1"; depends=[]; };
-  alabaster_se = derive2 { name="alabaster.se"; version="1.2.0"; sha256="14rvdyd4b1ck303n18nfsvrxmjgpikhrj308gmn3g7158q8zfdwx"; depends=[alabaster_base alabaster_matrix alabaster_ranges BiocGenerics GenomicRanges IRanges S4Vectors SummarizedExperiment]; };
-  alabaster_spatial = derive2 { name="alabaster.spatial"; version="1.2.0"; sha256="1jdhiqypsagzpa669l6sm7y1hpz6i6mjck47yvv3f7xja3pwz66x"; depends=[alabaster_base alabaster_sce jsonlite S4Vectors SpatialExperiment SummarizedExperiment]; };
-  alabaster_string = derive2 { name="alabaster.string"; version="1.2.0"; sha256="1gppm56mzf1by8gs37aabd03hamyghlg2vv3z95r4alb515rfgmm"; depends=[alabaster_base Biostrings]; };
-  alabaster_vcf = derive2 { name="alabaster.vcf"; version="1.2.0"; sha256="0xzwcn112bp3mz8g1wmnkklsjm4p2hs237mgv9vxfsb6022njci9"; depends=[alabaster_base alabaster_se alabaster_string Rsamtools S4Vectors VariantAnnotation]; };
-  alevinQC = derive2 { name="alevinQC"; version="1.18.0"; sha256="0lhbh9xgkbrad9fqvxl4c6y0f2kgibn6sinp8znysk5m9z0ngpwp"; depends=[cowplot dplyr DT GGally ggplot2 Rcpp rjson rlang rmarkdown shiny shinydashboard tximport]; };
-  altcdfenvs = derive2 { name="altcdfenvs"; version="2.64.0"; sha256="17kgiqa5dbfp74jrm565wlx9sj4ydbds2y8ahs7dikvdvm725qsn"; depends=[affy Biobase BiocGenerics Biostrings hypergraph makecdfenv S4Vectors]; };
-  amplican = derive2 { name="amplican"; version="1.24.0"; sha256="0xsw6226yyyl5zgmcyfim6dxj04zrpzbd1288l0hysq1s3b1yslw"; depends=[BiocGenerics BiocParallel Biostrings cluster data_table dplyr GenomeInfoDb GenomicRanges ggplot2 ggthemes gridExtra gtable IRanges knitr Matrix matrixStats Rcpp rmarkdown S4Vectors ShortRead stringr waffle]; };
-  animalcules = derive2 { name="animalcules"; version="1.18.3"; sha256="0j8fa5cr6s20bgw7v62by61q7nk8iw64v4wshwbd2cc36gr7s3c8"; depends=[ape assertthat caret covr DESeq2 dplyr DT forcats ggplot2 GUniFrac lattice limma magrittr Matrix MultiAssayExperiment plotly rentrez reshape2 ROCit S4Vectors scales shiny shinyjs SummarizedExperiment tibble tsne umap vegan XML]; };
-  annaffy = derive2 { name="annaffy"; version="1.74.0"; sha256="1mdv0x9lnr0bm96h5f9104nqg2j6cjqvp5prrxx10j0d6464vmkw"; depends=[AnnotationDbi Biobase BiocManager DBI GO_db]; };
-  annmap = derive2 { name="annmap"; version="1.44.0"; sha256="1gf0qdhj4ijgb6b67fh94zx084k5r87la3d7vc0qxs413rvr4mj8"; depends=[Biobase BiocGenerics DBI digest genefilter GenomicRanges IRanges lattice RMySQL Rsamtools]; };
-  annotate = derive2 { name="annotate"; version="1.80.0"; sha256="10mdlbgbvdj967bih6wpvxmy91r10p8frhgcwv8mhv4g94ardasd"; depends=[AnnotationDbi Biobase BiocGenerics DBI httr XML xtable]; };
-  annotationTools = derive2 { name="annotationTools"; version="1.76.0"; sha256="0g086rj06k3wac24zx66dw1yc1bzv25bmlbjbpcpgdcmyjb1i8sf"; depends=[Biobase]; };
-  annotatr = derive2 { name="annotatr"; version="1.28.0"; sha256="16nkxnbsmr0y6km794x2iwbkyrkf0svg6ln3qkqnw0a47a3cbm65"; depends=[AnnotationDbi AnnotationHub dplyr GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 IRanges readr regioneR reshape2 rtracklayer S4Vectors]; };
-  anota = derive2 { name="anota"; version="1.50.0"; sha256="1b1r7jwilwvl89fw3rqascyhy8wnm8y81lnx85pwjk55ld56jlb1"; depends=[multtest qvalue]; };
-  anota2seq = derive2 { name="anota2seq"; version="1.24.0"; sha256="0kyxwhj5vq5z4v3x3hfb9ks3h37axqskyj9rzyj2bzsy2yk9hajn"; depends=[DESeq2 edgeR limma multtest qvalue RColorBrewer SummarizedExperiment]; };
-  antiProfiles = derive2 { name="antiProfiles"; version="1.42.0"; sha256="14lzyq08gnm9r99xwaqh50sz0dwzhmiyyylkg239dlbw80zmv404"; depends=[locfit matrixStats]; };
-  apComplex = derive2 { name="apComplex"; version="2.68.0"; sha256="1y3c3358y7ynn5lj2gcy9ll2gxnnlv689pj0bgr2gsnhbss1kw1r"; depends=[graph org_Sc_sgd_db RBGL Rgraphviz]; };
-  apeglm = derive2 { name="apeglm"; version="1.24.0"; sha256="0cj9yzmh9w3fk3rxmk2k5j55r42mmz9znszmr4l160mr23alkzx4"; depends=[emdbook GenomicRanges Rcpp RcppEigen RcppNumerical SummarizedExperiment]; };
-  appreci8R = derive2 { name="appreci8R"; version="1.20.2"; sha256="0qra6g6s4j8by9ils0i8j56q7922ilsjivh97f6ng01ikyg3s02j"; depends=[Biostrings BSgenome BSgenome_Hsapiens_UCSC_hg19 COSMIC_67 DT GenomicFeatures GenomicRanges GenomicScores Homo_sapiens IRanges MafDb_1Kgenomes_phase3_hs37d5 MafDb_ExAC_r1_0_hs37d5 MafDb_gnomADex_r2_1_hs37d5 openxlsx PolyPhen_Hsapiens_dbSNP131 rentrez Rsamtools S4Vectors seqinr shiny shinyjs SIFT_Hsapiens_dbSNP137 SNPlocs_Hsapiens_dbSNP144_GRCh37 stringr SummarizedExperiment TxDb_Hsapiens_UCSC_hg19_knownGene VariantAnnotation XtraSNPlocs_Hsapiens_dbSNP144_GRCh37]; };
-  aroma_light = derive2 { name="aroma.light"; version="3.32.0"; sha256="1i6rml0slfsf01a3sphyzrxp2z759psq5bv9cfy5dxx44fnav8b8"; depends=[matrixStats R_methodsS3 R_oo R_utils]; };
-  arrayMvout = derive2 { name="arrayMvout"; version="1.60.0"; sha256="0z3ksx0yigan5aiq7vsdx78khlrcdxa4yd5b46rfn83gsrjbxzhz"; depends=[affy affyContam Biobase lumi mdqc parody]; };
-  arrayQuality = derive2 { name="arrayQuality"; version="1.80.0"; sha256="1bm46zf5c1i7fd848bqajv3agl05b93xsvam7034033ypyx6bf1z"; depends=[gridBase hexbin limma marray RColorBrewer]; };
-  arrayQualityMetrics = derive2 { name="arrayQualityMetrics"; version="3.58.0"; sha256="1k80ih7r3hf48r9rp9dl2wl8m17620dqr4fch49kdsq97hm5q5dm"; depends=[affy affyPLM beadarray Biobase genefilter gridSVG Hmisc hwriter lattice latticeExtra limma RColorBrewer setRNG svglite vsn XML]; };
-  artMS = derive2 { name="artMS"; version="1.20.0"; sha256="19zd0p37pqk01ns2krjj80mz2c07b8q5qbcdi8czd0vvwkp1cxq7"; depends=[AnnotationDbi bit64 circlize cluster corrplot data_table dplyr getopt ggdendro ggplot2 ggrepel gplots limma MSstats openxlsx org_Hs_eg_db pheatmap plotly plyr RColorBrewer scales seqinr stringr tidyr UpSetR VennDiagram yaml]; };
-  atSNP = derive2 { name="atSNP"; version="1.18.0"; sha256="1nksx6al1cr6apknvrabi3gdbr7m61ms81nmkq4qykx5aysmp8mv"; depends=[BiocFileCache BiocParallel BSgenome data_table ggplot2 lifecycle motifStack rappdirs Rcpp testthat]; };
-  atena = derive2 { name="atena"; version="1.8.0"; sha256="1qfgy76d65hbx32fw1yf20n1vavylcafb9fgqqp02r455vk3xzng"; depends=[AnnotationHub BiocGenerics BiocParallel GenomeInfoDb GenomicAlignments GenomicRanges IRanges Matrix matrixStats Rsamtools S4Vectors sparseMatrixStats SQUAREM SummarizedExperiment]; };
-  attract = derive2 { name="attract"; version="1.54.0"; sha256="0lk8gfbccrxly7gn629497sxz0mj3m9wcwdahqv1m7l6fjnf5563"; depends=[AnnotationDbi Biobase cluster GOstats KEGGREST limma org_Hs_eg_db reactome_db]; };
-  autonomics = derive2 { name="autonomics"; version="1.10.2"; sha256="1chgsckv6vvx8sxfbd7ds0pm67w2yaijzf68j8zm7pplz44kr9m9"; depends=[abind assertive_base assertive_files assertive_numbers assertive_sets BiocFileCache BiocGenerics bit64 colorspace data_table dplyr edgeR ggplot2 ggrepel gridExtra limma magrittr matrixStats MultiAssayExperiment pcaMethods R_utils rappdirs readxl rlang S4Vectors scales stringi SummarizedExperiment tidyr]; };
-  awst = derive2 { name="awst"; version="1.10.0"; sha256="0hry7ynv69hqbwyhlsilf1f9w8yadidbn2ckm5dx9mnb5ihgkyvj"; depends=[SummarizedExperiment]; };
-  bacon = derive2 { name="bacon"; version="1.30.0"; sha256="065b4xf5i1bx08494nm3r497bs47s5vf99l2g37nlpvxf7pypvrz"; depends=[BiocParallel ellipse ggplot2]; };
-  ballgown = derive2 { name="ballgown"; version="2.34.0"; sha256="1r3qz6y97zhp7swcv2ls1h6cz0l66y5ap00wx9wlqxv14sljd135"; depends=[Biobase GenomeInfoDb GenomicRanges IRanges limma RColorBrewer rtracklayer S4Vectors sva]; };
-  bambu = derive2 { name="bambu"; version="3.4.0"; sha256="02pcab8jfwlx4y00yky63anba61bb1h884m0f6ajvasfpgl30w6i"; depends=[BiocGenerics BiocParallel BSgenome data_table dplyr GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges IRanges Rcpp RcppArmadillo Rsamtools S4Vectors SummarizedExperiment tidyr xgboost]; };
-  bamsignals = derive2 { name="bamsignals"; version="1.34.0"; sha256="1qv2gydn8awrkbhdrgxm8zxpicphqc29rwzkj3vyaa9glmnx2y34"; depends=[BiocGenerics GenomicRanges IRanges Rcpp Rhtslib zlibbioc]; };
-  bandle = derive2 { name="bandle"; version="1.6.0"; sha256="1hszmd73axh1mg3zgj7i11fz03cg2v5xjaf7kx5npbdgi3yd4b2b"; depends=[BH Biobase BiocParallel BiocStyle circlize dplyr ggalluvial ggplot2 ggrepel knitr lbfgs MSnbase plyr pRoloc pRolocdata Rcpp RcppArmadillo rlang robustbase S4Vectors tidyr]; };
-  banocc = derive2 { name="banocc"; version="1.26.0"; sha256="0y6mizkbx3s2x6465g53q87q0sixxrxhjvjmvwiilhirxf4x7hgp"; depends=[coda mvtnorm rstan stringr]; };
-  barcodetrackR = derive2 { name="barcodetrackR"; version="1.10.0"; sha256="1w5p6dqagf3g27ymqsxdim0qhnwm11rrs3nnpp4mj8jcxm8wjsh9"; depends=[circlize cowplot dplyr ggdendro ggplot2 ggridges magrittr plyr proxy RColorBrewer rlang S4Vectors scales shiny SummarizedExperiment tibble tidyr vegan viridis]; };
-  basecallQC = derive2 { name="basecallQC"; version="1.26.0"; sha256="0ak5rbrzbazz48x75alihzmlgll46l2hnyh11pf5n7gvws6skrps"; depends=[data_table dplyr DT ggplot2 knitr lazyeval magrittr prettydoc raster rmarkdown ShortRead stringr tidyr XML yaml]; };
-  basilisk = derive2 { name="basilisk"; version="1.14.3"; sha256="0hmx2jpfmjv87mp99mzbbzg00m6arpkpc5prkfav065iwjqbqnpd"; depends=[basilisk_utils dir_expiry reticulate]; };
-  basilisk_utils = derive2 { name="basilisk.utils"; version="1.14.1"; sha256="19m4h90rkk6mizllkih2xmxag8nb45qss3vydkkyj62s5zjhfh27"; depends=[dir_expiry]; };
-  batchelor = derive2 { name="batchelor"; version="1.18.1"; sha256="1z4ddkdd3mzqg0c6l94qmrdwrm7427k5xiwzgkzx43gh1j4911d5"; depends=[beachmat BiocGenerics BiocNeighbors BiocParallel BiocSingular DelayedArray DelayedMatrixStats igraph Matrix Rcpp ResidualMatrix S4Vectors ScaledMatrix scuttle SingleCellExperiment SummarizedExperiment]; };
-  bayNorm = derive2 { name="bayNorm"; version="1.20.0"; sha256="01lv4w1x43x3f9sdrqikhsr1gdvkgqzrgcd9wnjj76qsljn57ifq"; depends=[BB BiocParallel doSNOW fitdistrplus foreach iterators locfit MASS Matrix Rcpp RcppArmadillo RcppProgress SingleCellExperiment SummarizedExperiment]; };
-  baySeq = derive2 { name="baySeq"; version="2.36.0"; sha256="1b5vvzl0kkm6kb03vr6m6sdlr3azpc24933a7ayxkiffmf2wbi0g"; depends=[abind edgeR GenomicRanges]; };
-  bcSeq = derive2 { name="bcSeq"; version="1.24.0"; sha256="050rh9ina8wlkk6d66l2y81vblgyldsyy9fqxk7kpnzmjani919k"; depends=[Biostrings Matrix Rcpp]; };
-  beachmat = derive2 { name="beachmat"; version="2.18.1"; sha256="1kz8jn3kaqrhvk1dd92l7w45mmwabcqb0508fv4i4w307ja8xk2l"; depends=[BiocGenerics DelayedArray Matrix Rcpp SparseArray]; };
-  beachmat_hdf5 = derive2 { name="beachmat.hdf5"; version="1.0.0"; sha256="1ihx1c7j1k52c45f6q17iwvrnym3fdx93lhxk73la6ig6q6y0p85"; depends=[beachmat DelayedArray HDF5Array Rcpp Rhdf5lib]; };
-  beadarray = derive2 { name="beadarray"; version="2.52.0"; sha256="0qwka7549mlv2x80bjrzdsy4a6h35yxrhj2cxss9aigwsbjb7sjr"; depends=[AnnotationDbi BeadDataPackR Biobase BiocGenerics GenomicRanges ggplot2 hexbin illuminaio IRanges limma reshape2]; };
-  beadarraySNP = derive2 { name="beadarraySNP"; version="1.68.0"; sha256="1vrizh7fpzv1w2gki0qxhphrfj1jj6m6bjsjsbw0b4n4invybzps"; depends=[Biobase quantsmooth]; };
-  beer = derive2 { name="beer"; version="1.6.0"; sha256="1dapyrp1rdy2smi6v7cvj1wv5mhrkvv3sz1aqpim8vf18f9132py"; depends=[BiocParallel cli edgeR PhIPData progressr rjags SummarizedExperiment]; };
-  benchdamic = derive2 { name="benchdamic"; version="1.8.2"; sha256="036593sjn1ijx95rz6jfkhmkdjlyqlpxlip6d7cgmzal8v76srb4"; depends=[ALDEx2 ANCOMBC BiocParallel cowplot dearseq DESeq2 edgeR ggdendro ggplot2 ggridges GUniFrac limma lme4 Maaslin2 MAST metagenomeSeq MGLM MicrobiomeStat mixOmics NOISeq phyloseq plyr RColorBrewer reshape2 Seurat SummarizedExperiment tidytext TreeSummarizedExperiment zinbwave]; };
-  bgx = derive2 { name="bgx"; version="1.68.3"; sha256="1a3hq2i1mxf6dpkk82b6y88q5fcjbqpdcxqplkfp5d2slzsqc3jp"; depends=[affy Biobase gcrma Rcpp]; };
-  bigmelon = derive2 { name="bigmelon"; version="1.28.0"; sha256="1j80f7k39p23s6fym3nia73g8d1v44hdiv73igcq6fnsllxg40hr"; depends=[Biobase BiocGenerics gdsfmt GEOquery illuminaio methylumi minfi wateRmelon]; };
-  bioCancer = derive2 { name="bioCancer"; version="1.30.8"; sha256="19630ybvly13qw2dhcnh3wicw7hnjyvw37v4hz640pkp4nsdparn"; depends=[AlgDesign AnnotationDbi Biobase cBioPortalData clusterProfiler DiagrammeR DOSE dplyr DT geNetClassifier GO_db htmlwidgets org_Bt_eg_db org_Hs_eg_db plyr r_import R_methodsS3 R_oo radiant_data reactome_db ReactomePA shiny shinythemes tibble tidyr visNetwork XML]; };
-  bioDist = derive2 { name="bioDist"; version="1.74.0"; sha256="0ngpysb89wag4wvcq83ddjxhy1zhl32b2fy2fg5laa4g8xfrqaxz"; depends=[Biobase KernSmooth]; };
-  bioassayR = derive2 { name="bioassayR"; version="1.40.0"; sha256="1mm1nzdz9cl8mf33yiyaspqkx4sbqhhs6m9jfgl42fhscrhaxfsi"; depends=[BiocGenerics ChemmineR DBI Matrix rjson RSQLite XML]; };
-  biobroom = derive2 { name="biobroom"; version="1.34.0"; sha256="1ivclipy2igf8ax7f0pqrcqflcm7h0a8ny6nfa0200vp99an8ymf"; depends=[Biobase broom dplyr tidyr]; };
-  biobtreeR = derive2 { name="biobtreeR"; version="1.14.0"; sha256="18p5r67ppkw8wxxkrj76q68ljlhdbhar5hc89ffdsgr3zzdyk875"; depends=[httpuv httr jsonlite stringi]; };
-  biocGraph = derive2 { name="biocGraph"; version="1.64.0"; sha256="1yy0bwvfa5b531jvmbiwrd4xg8cdvrgwr8l6bxasrh6yrbv8drml"; depends=[BiocGenerics geneplotter graph Rgraphviz]; };
-  biocViews = derive2 { name="biocViews"; version="1.70.0"; sha256="0fpka47shrxcbc1k057f5zv79406daic0y34v8p5lsvxbgzh0m8b"; depends=[Biobase BiocManager graph RBGL RCurl RUnit XML]; };
-  biocthis = derive2 { name="biocthis"; version="1.12.0"; sha256="0lxcsw70ib8wvkp3ii1l8vd4g2ddhj6g0x22dwcmwacr2myk3bg8"; depends=[BiocManager fs glue rlang styler usethis]; };
-  biodb = derive2 { name="biodb"; version="1.10.0"; sha256="18w062s0wwdisl6a9a79in6h4052x3janinc5isip0x6p9g9d9bk"; depends=[BiocFileCache chk git2r jsonlite lgr lifecycle openssl plyr progress R6 rappdirs Rcpp RCurl RSQLite stringr testthat withr XML yaml]; };
-  biodbChebi = derive2 { name="biodbChebi"; version="1.8.0"; sha256="0ic7dpjl0fxsqx51x8zjmf46ganx2imr64n93s79admwrcwbc33b"; depends=[biodb R6]; };
-  biodbExpasy = derive2 { name="biodbExpasy"; version="1.6.0"; sha256="1y8f1iy3ircwxcwc6aymmi0q8yx91mh1c17y7drxp2b3pcbhgly1"; depends=[biodb chk R6 stringr]; };
-  biodbHmdb = derive2 { name="biodbHmdb"; version="1.8.0"; sha256="1kymxi6kzv13gkvvhlfz8fkgac4ww05svxvy4zw6clwnh9gv3lwy"; depends=[biodb R6 Rcpp testthat zip]; };
-  biodbKegg = derive2 { name="biodbKegg"; version="1.8.0"; sha256="07hvk0sab9m5df1y7v5ndkn7m4l24w6cy4bvyvx3445c1bljqwmf"; depends=[biodb chk lifecycle R6]; };
-  biodbLipidmaps = derive2 { name="biodbLipidmaps"; version="1.8.0"; sha256="10zz8wri5pmz0329bygpg0a20yphsx04gwhv41hy5x0z86sx55xs"; depends=[biodb lifecycle R6]; };
-  biodbMirbase = derive2 { name="biodbMirbase"; version="1.5.0"; sha256="17clip9l8as9pz390bqgj07jxp1rijis2f5hj53s6vqaqmiyz4il"; depends=[biodb chk R6 stringr]; };
-  biodbNcbi = derive2 { name="biodbNcbi"; version="1.6.0"; sha256="1qkcpk81j6wzqvfa78sv01a51sgcgyfjdkwm4izgkb5qblwy17c5"; depends=[biodb chk R6 XML]; };
-  biodbNci = derive2 { name="biodbNci"; version="1.6.0"; sha256="1djdfw3xks6wr20igrnj9ph8awrdnyxyiac3377wn3nc4sq87rax"; depends=[biodb chk R6 Rcpp testthat]; };
-  biodbUniprot = derive2 { name="biodbUniprot"; version="1.8.0"; sha256="19jq0s3s2hpwnwxws5zx9d569djfrqf5npsw49fq1v9zx4g903g1"; depends=[biodb R6]; };
-  biomaRt = derive2 { name="biomaRt"; version="2.58.2"; sha256="03hl64j7fknw4gzw9w653zzw5gdxyi7r95vxr5ksz0m3n9xdv124"; depends=[AnnotationDbi BiocFileCache digest httr progress rappdirs stringr XML xml2]; };
-  biomformat = derive2 { name="biomformat"; version="1.30.0"; sha256="1ccnrz8rkg533kil3sc8wnjqsmiyrpqqmk7av7ls01avglcjdjq1"; depends=[jsonlite Matrix plyr rhdf5]; };
-  biomvRCNS = derive2 { name="biomvRCNS"; version="1.42.2"; sha256="1imni8lpjzf53w2q34ql0j9rwq6drbzxvs0nhzf6s172iqym2hq3"; depends=[GenomicRanges Gviz IRanges mvtnorm]; };
-  biosigner = derive2 { name="biosigner"; version="1.30.0"; sha256="1j3wkqvha6pzd6d3wm2q4lihn8p9ycw0wmddjqpnqvglb1x7c0f8"; depends=[Biobase e1071 MultiAssayExperiment MultiDataSet randomForest ropls SummarizedExperiment]; };
-  biotmle = derive2 { name="biotmle"; version="1.26.0"; sha256="0h796sxv7fvwx9m8ikamf3bvaac7rimp33lv1j3ngsjifigdkvfy"; depends=[assertthat BiocGenerics BiocParallel dplyr drtmle ggplot2 ggsci limma S4Vectors SummarizedExperiment superheat tibble]; };
-  biovizBase = derive2 { name="biovizBase"; version="1.50.0"; sha256="01hli49aq1fjjgpk465znq1ki0qi7nxg71pqg18fz6nblg3ny9z5"; depends=[AnnotationDbi AnnotationFilter BiocGenerics Biostrings dichromat ensembldb GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges Hmisc IRanges RColorBrewer rlang Rsamtools S4Vectors scales SummarizedExperiment VariantAnnotation]; };
-  biscuiteer = derive2 { name="biscuiteer"; version="1.16.0"; sha256="1q90p14qj5plz6cbvwxq875y29in6jg7adyni5wd33pf9i4gsxzi"; depends=[Biobase BiocGenerics BiocParallel biscuiteerData bsseq data_table DelayedMatrixStats dmrseq GenomeInfoDb GenomicRanges gtools HDF5Array Homo_sapiens impute IRanges Matrix matrixStats Mus_musculus QDNAseq qualV R_utils readr Rsamtools rtracklayer S4Vectors SummarizedExperiment VariantAnnotation]; };
-  blacksheepr = derive2 { name="blacksheepr"; version="1.16.0"; sha256="10a2nwks2kmdx8xpk1zbrmxvi4wsmdsyxkg4a45s6n67213qx4ir"; depends=[circlize ComplexHeatmap pasilla RColorBrewer SummarizedExperiment viridis]; };
-  blima = derive2 { name="blima"; version="1.36.0"; sha256="15p2792sf1mh11vna5807cw9kki2v5bc57w8lchgkkv2fy7a5l3i"; depends=[beadarray Biobase BiocGenerics Rcpp]; };
-  bluster = derive2 { name="bluster"; version="1.12.0"; sha256="16zkv567d39258syhfb215y04sq3pnfjh9pgbp5z85hcfpz4qmhc"; depends=[BiocNeighbors BiocParallel cluster igraph Matrix Rcpp S4Vectors]; };
-  bnbc = derive2 { name="bnbc"; version="1.24.2"; sha256="0fv8a3v37y5bs9gvk95d2k1yp989sc99r57pbdysadnb463ss6gv"; depends=[BiocGenerics data_table EBImage GenomeInfoDb GenomicRanges HiCBricks IRanges matrixStats preprocessCore Rcpp rhdf5 S4Vectors SummarizedExperiment sva]; };
-  bnem = derive2 { name="bnem"; version="1.10.0"; sha256="0wl5r6bxd315n1kdh1cjqvrmnxbvbjriq6n6djk43bvj5b7i8c5s"; depends=[affy binom Biobase CellNOptR cluster epiNEM flexclust graph limma matrixStats mnem RColorBrewer Rgraphviz rmarkdown snowfall sva vsn]; };
-  borealis = derive2 { name="borealis"; version="1.6.0"; sha256="1432frd73ysjayppdql2ffaf5dwwvqm5sr3rd7dj824qpdi1g9a4"; depends=[Biobase bsseq cowplot doParallel dplyr DSS foreach gamlss gamlss_dist GenomicRanges ggplot2 plyr purrr R_utils rlang snow]; };
-  brainflowprobes = derive2 { name="brainflowprobes"; version="1.16.0"; sha256="06gga72ns7h9c6mdbvbj8afpkyizg7maazriilvaq433h6s1pgqb"; depends=[Biostrings BSgenome_Hsapiens_UCSC_hg19 bumphunter cowplot derfinder derfinderPlot GenomicRanges GenomicState ggplot2 RColorBrewer]; };
-  branchpointer = derive2 { name="branchpointer"; version="1.28.0"; sha256="104v99nnhkyfmnv5dalz4gimbx0z9xv8l9bwq1v8sf8m1fdlqz3k"; depends=[biomaRt Biostrings BSgenome_Hsapiens_UCSC_hg38 caret cowplot data_table gbm GenomeInfoDb GenomicRanges ggplot2 IRanges kernlab plyr rtracklayer S4Vectors stringr]; };
-  breakpointR = derive2 { name="breakpointR"; version="1.20.0"; sha256="1jhgimybc2ib201k6vs5nfyi1whpkkzn7nj562yhz74208fx793a"; depends=[BiocGenerics breakpointRdata cowplot doParallel foreach GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 gtools IRanges Rsamtools S4Vectors]; };
-  brendaDb = derive2 { name="brendaDb"; version="1.16.0"; sha256="1hsd66wz3frg4z423358mxj4d7nmhmsyjlqkh5q4gdsasr4wx88y"; depends=[BiocFileCache BiocParallel crayon dplyr magrittr purrr rappdirs Rcpp rlang stringr tibble tidyr]; };
-  bsseq = derive2 { name="bsseq"; version="1.38.0"; sha256="0afpzr52mf2ab7gr9swdf6609787ymw8s8wksis0d4ap0y0wdgg0"; depends=[beachmat Biobase BiocGenerics BiocParallel Biostrings BSgenome data_table DelayedArray DelayedMatrixStats GenomeInfoDb GenomicRanges gtools HDF5Array IRanges limma locfit permute R_utils Rcpp rhdf5 S4Vectors scales SummarizedExperiment]; };
-  bugsigdbr = derive2 { name="bugsigdbr"; version="1.8.4"; sha256="03jwdkjq8cy9x2a6m805498wxgkmvz1c35bs5xykmr0cdd8kds53"; depends=[BiocFileCache]; };
-  bumphunter = derive2 { name="bumphunter"; version="1.44.0"; sha256="0vnm0m9abf8478f7lair58vw1v4mxj8sbmrxcpf8622ygf2na4qc"; depends=[AnnotationDbi BiocGenerics doRNG foreach GenomeInfoDb GenomicFeatures GenomicRanges IRanges iterators limma locfit matrixStats S4Vectors]; };
-  cBioPortalData = derive2 { name="cBioPortalData"; version="2.14.2"; sha256="1bb7p6bbizyq0ap39fc11vfqpgfrcj7xr6avjm09vydmafi8s0q6"; depends=[AnVIL BiocFileCache digest dplyr GenomeInfoDb GenomicRanges httr IRanges MultiAssayExperiment RaggedExperiment readr RTCGAToolbox S4Vectors SummarizedExperiment TCGAutils tibble tidyr]; };
-  cTRAP = derive2 { name="cTRAP"; version="1.20.0"; sha256="0f0qdm1kih9vpz911ms23056vsg6ss9f6hkrvmw0sr1idcpzq92a"; depends=[AnnotationDbi AnnotationHub binr cowplot data_table dplyr DT fastmatch fgsea ggplot2 ggrepel highcharter htmltools httr limma pbapply purrr qs R_utils readxl reshape2 rhdf5 rlang scales shiny shinycssloaders tibble]; };
-  cageminer = derive2 { name="cageminer"; version="1.8.0"; sha256="1bd13lwxwp8qj86bg3njcsryl2zz83xr8kmph189z6wypi606zyw"; depends=[BioNERO GenomeInfoDb GenomicRanges ggbio ggplot2 ggtext IRanges reshape2 rlang]; };
-  calm = derive2 { name="calm"; version="1.16.0"; sha256="130288ihhf2grmpzrizhrhspq5y9m82f3yji6fhvrh2kbczjr7fv"; depends=[mgcv]; };
-  canceR = derive2 { name="canceR"; version="1.36.7"; sha256="04vifanjabys6cqm7ln4n4szmqzs36kga75frwazbkc2a51g1lnm"; depends=[Biobase cBioPortalData circlize dplyr Formula geNetClassifier GSEABase phenoTest plyr R_methodsS3 R_oo rpart RUnit survival tidyr tkrplot]; };
-  cancerclass = derive2 { name="cancerclass"; version="1.46.0"; sha256="0v1js5nsgmz6sxl6nbp4hhx12z84xps9kh03xxp0rbhl9g9kjq8f"; depends=[binom Biobase]; };
-  cardelino = derive2 { name="cardelino"; version="1.4.0"; sha256="0y4d3db01jwahz01hx3dswc4gg0x5k7325v4n1illgw3ddj2mvgn"; depends=[combinat GenomeInfoDb GenomicRanges ggplot2 ggtree Matrix matrixStats pheatmap S4Vectors snpStats VariantAnnotation vcfR]; };
-  casper = derive2 { name="casper"; version="2.36.0"; sha256="0csh68x4qbhzsszlr2rb23q9a1mzsibqm9ljbglc5asy1m316601"; depends=[Biobase BiocGenerics coda EBarrays gaga GenomeInfoDb GenomicFeatures GenomicRanges gtools IRanges limma mgcv Rsamtools rtracklayer S4Vectors sqldf survival VGAM]; };
-  categoryCompare = derive2 { name="categoryCompare"; version="1.46.0"; sha256="03daa0kqw4fwg8rv0l87qvw0324wa00jzp5hc8x4pqpw1flg2g84"; depends=[annotate AnnotationDbi Biobase BiocGenerics Category colorspace GOstats graph GSEABase hwriter RCy3]; };
-  cbaf = derive2 { name="cbaf"; version="1.24.0"; sha256="1z68iv8322b9xrqcnvjg1yapnwwsis3zbk48ax5br0avlrwgv6hi"; depends=[BiocFileCache cBioPortalData genefilter gplots openxlsx RColorBrewer]; };
-  cbpManager = derive2 { name="cbpManager"; version="1.10.0"; sha256="1157gaqyrqsw31p34ylrr4j2hla2q5xyswv70zy80ij71ykwps7a"; depends=[basilisk dplyr DT htmltools jsonlite magrittr markdown plyr rapportools reticulate rintrojs rlang shiny shinyBS shinycssloaders shinydashboard vroom]; };
-  ccImpute = derive2 { name="ccImpute"; version="1.4.0"; sha256="0v27y9i6872p11gwg4pq0xzdd66pk7wsc21ig8n12w7lq898nwhj"; depends=[BiocParallel matrixStats Rcpp RcppEigen SIMLR]; };
-  ccfindR = derive2 { name="ccfindR"; version="1.22.0"; sha256="1qsgpsrxhacg3sm9afi2x0d0aadvwibzjh40qkwgmq3smfv9an01"; depends=[ape gtools irlba Matrix RColorBrewer Rcpp RcppEigen Rdpack Rmpi Rtsne S4Vectors SingleCellExperiment SummarizedExperiment]; };
-  ccmap = derive2 { name="ccmap"; version="1.28.0"; sha256="0fmb5d9mqwh227sw3skksfqx7cp6bfwnslhffh8v9byjz99vkcli"; depends=[AnnotationDbi BiocManager ccdata data_table doParallel foreach lsa xgboost]; };
-  ccrepe = derive2 { name="ccrepe"; version="1.38.1"; sha256="1hkhxhzbry612p0lc3blmxnx3cb70x8473x6ghwgi7v71f01agbq"; depends=[infotheo]; };
-  ceRNAnetsim = derive2 { name="ceRNAnetsim"; version="1.14.1"; sha256="13ng9h1q30qm62n2q4yh8lghxjyv34xz5pgwi1bai7ib4i5b7wks"; depends=[dplyr furrr future ggplot2 ggraph igraph purrr rlang tibble tidygraph tidyr]; };
-  celaref = derive2 { name="celaref"; version="1.20.0"; sha256="1wjyh98y4n24gaw9g9f988d51239imqf2jh7bycyl1yi8r57r8ds"; depends=[BiocGenerics DelayedArray dplyr ggplot2 magrittr MAST Matrix readr rlang S4Vectors SummarizedExperiment tibble]; };
-  celda = derive2 { name="celda"; version="1.18.1"; sha256="1wvqxp9fwd0jfjwnhjzmmw2yzgz2gzlm2hnij6xylz41s7al6gdp"; depends=[circlize ComplexHeatmap data_table dbscan DelayedArray digest doParallel enrichR foreach ggplot2 ggrepel gridExtra gtable Matrix matrixStats MCMCprecision plyr RColorBrewer Rcpp RcppEigen reshape2 Rtsne S4Vectors scales scater scran SingleCellExperiment stringr SummarizedExperiment uwot withr]; };
-  cellHTS2 = derive2 { name="cellHTS2"; version="2.66.0"; sha256="1cw9k0p67fjcjaykfa9s6fhp07mrliyyzhl9ac3874kvmi2qiavj"; depends=[Biobase BiocGenerics Category genefilter GSEABase hwriter locfit RColorBrewer splots vsn]; };
-  cellbaseR = derive2 { name="cellbaseR"; version="1.26.0"; sha256="16jypif8cnx03m206n1am52avwmfdnbplygxlainn3wqxgm5gr9y"; depends=[BiocParallel data_table doParallel foreach httr jsonlite pbapply R_utils Rsamtools tidyr]; };
-  cellity = derive2 { name="cellity"; version="1.30.0"; sha256="1wdc3f93cwgqrln39c8c2nyi77kh8qrzis4qb8bxldkhf0s6vlb5"; depends=[AnnotationDbi e1071 ggplot2 mvoutlier org_Hs_eg_db org_Mm_eg_db robustbase topGO]; };
-  cellmigRation = derive2 { name="cellmigRation"; version="1.10.0"; sha256="0l7awcn1bjfp23f9si2f1wkyrla0zk9h8qsg8dx3jqd5wgdrivcm"; depends=[doParallel FactoMineR FME foreach Hmisc matrixStats reshape2 sp SpatialTools tiff vioplot]; };
-  cellscape = derive2 { name="cellscape"; version="1.26.0"; sha256="1556acixb5bpcba8shhfkyk2074sm1gdzw24v93nmqns8zkx00jw"; depends=[dplyr gtools htmlwidgets jsonlite reshape2 stringr]; };
-  cellxgenedp = derive2 { name="cellxgenedp"; version="1.6.1"; sha256="0f9dzlw0mgv6chmxq348n91ylbscfqv4hx4q49bgpinsc3yp1vdj"; depends=[curl dplyr DT httr jsonlite rjsoncons shiny]; };
-  censcyt = derive2 { name="censcyt"; version="1.10.0"; sha256="0wfxvppvk8zk6dmk57mgckkh37b56whfcykdgmjkyhzqkimwflj0"; depends=[BiocParallel broom_mixed diffcyt dirmult dplyr edgeR fitdistrplus lme4 magrittr MASS mice multcomp purrr rlang S4Vectors stringr SummarizedExperiment survival tibble tidyr]; };
-  cfDNAPro = derive2 { name="cfDNAPro"; version="1.8.0"; sha256="0zqqchzv9izsdnca5i8df9ccs5wsfmqvcd2mfh8psq66fxmj9kzj"; depends=[BiocGenerics BSgenome_Hsapiens_NCBI_GRCh38 BSgenome_Hsapiens_UCSC_hg19 BSgenome_Hsapiens_UCSC_hg38 dplyr GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 IRanges magrittr plyranges quantmod rlang Rsamtools stringr tibble]; };
-  cfTools = derive2 { name="cfTools"; version="1.2.0"; sha256="11nj6g2qxxr6s11432wsna3ma2k9dyp7w76iamj0z80wnbvmicfz"; depends=[basilisk BH cfToolsData GenomicRanges R_utils Rcpp]; };
-  cfdnakit = derive2 { name="cfdnakit"; version="1.0.0"; sha256="0p74f274hk3w1y5rx06sdq36wddzd6wmhyla4l29fb87wmpfhidk"; depends=[Biobase dplyr GenomeInfoDb GenomicRanges ggplot2 IRanges magrittr PSCBS QDNAseq rlang Rsamtools S4Vectors]; };
-  cghMCR = derive2 { name="cghMCR"; version="1.60.0"; sha256="0isblsgxaj7751lm8fsq94nzp03yhwycfmdrarb6lz9kwk8b177r"; depends=[BiocGenerics CNTools DNAcopy limma]; };
-  chihaya = derive2 { name="chihaya"; version="1.2.0"; sha256="0mg27phk4z8kdldjsi8c32p67i3dpbk332agljv33a89672z54zi"; depends=[DelayedArray HDF5Array Matrix Rcpp rhdf5 Rhdf5lib]; };
-  chimeraviz = derive2 { name="chimeraviz"; version="1.28.0"; sha256="08w3dd1dlvkvdcgykh8hf95g405q6095cmyg6nhmml4rahaf08fz"; depends=[AnnotationDbi AnnotationFilter BiocStyle Biostrings checkmate data_table dplyr DT ensembldb GenomeInfoDb GenomicAlignments GenomicRanges graph gtools Gviz IRanges magick org_Hs_eg_db org_Mm_eg_db plyr RCircos RColorBrewer Rgraphviz rmarkdown Rsamtools S4Vectors]; };
-  chipenrich = derive2 { name="chipenrich"; version="2.26.0"; sha256="11kmv963x88ngarcsxw6pc42nhwiy4147kjl14d9qn9zcpky40d3"; depends=[AnnotationDbi BiocGenerics chipenrich_data GenomeInfoDb GenomicRanges IRanges lattice latticeExtra MASS mgcv org_Dm_eg_db org_Dr_eg_db org_Hs_eg_db org_Mm_eg_db org_Rn_eg_db plyr rms rtracklayer S4Vectors stringr]; };
-  chipseq = derive2 { name="chipseq"; version="1.52.0"; sha256="1fw99xnll4jwdmp49jh59zxcbp3qs2850pjdg403sv4cg1bgfdyi"; depends=[BiocGenerics GenomicRanges IRanges lattice S4Vectors ShortRead]; };
-  chopsticks = derive2 { name="chopsticks"; version="1.68.0"; sha256="02w8w28lwn5qxyiaf9aw850b46amw8413bbhy7nhfa1h17429q2z"; depends=[survival]; };
-  chromDraw = derive2 { name="chromDraw"; version="2.32.0"; sha256="16697g01gn79jq5b42fcxmscwkfx2p90zxpzw0akfz7dxx4izp3f"; depends=[GenomicRanges Rcpp]; };
-  chromPlot = derive2 { name="chromPlot"; version="1.30.0"; sha256="1xqqil19igqr5wymhmkh2m2iyj98k5x8k4k1s218rzx39yfamq7y"; depends=[biomaRt GenomicRanges]; };
-  chromVAR = derive2 { name="chromVAR"; version="1.24.0"; sha256="1vy650625b9b2dgnkgh5h0kw5bkdvfin133091asf1nw4jgnn1vx"; depends=[BiocGenerics BiocParallel Biostrings BSgenome DT GenomeInfoDb GenomicRanges ggplot2 IRanges Matrix miniUI nabor plotly RColorBrewer Rcpp RcppArmadillo Rsamtools Rtsne S4Vectors shiny SummarizedExperiment TFBSTools]; };
-  chromstaR = derive2 { name="chromstaR"; version="1.28.0"; sha256="1yykcqxp8y7by4jgh6dfl25m0pnghj36qy21990n2sdfv1kpg2x6"; depends=[bamsignals BiocGenerics chromstaRData doParallel foreach GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 IRanges mvtnorm reshape2 Rsamtools S4Vectors]; };
-  cicero = derive2 { name="cicero"; version="1.20.0"; sha256="19vn31w74r45pq5m9pn5db1sz1qg757mghzzs933cdssnqf4m6y5"; depends=[assertthat Biobase BiocGenerics data_table dplyr FNN GenomicRanges ggplot2 glasso Gviz igraph IRanges Matrix monocle plyr reshape2 S4Vectors stringi stringr tibble tidyr VGAM]; };
-  circRNAprofiler = derive2 { name="circRNAprofiler"; version="1.16.0"; sha256="098fbrszph5cnh4n9zjhj92sg1bi6h6k57wm2vlaqkq0nab63r63"; depends=[AnnotationHub Biostrings BSgenome BSgenome_Hsapiens_UCSC_hg19 DESeq2 dplyr edgeR GenomeInfoDb GenomicRanges ggplot2 gwascat IRanges magrittr R_utils readr reshape2 rlang rtracklayer S4Vectors seqinr stringi stringr universalmotif]; };
-  cisPath = derive2 { name="cisPath"; version="1.42.0"; sha256="00xnaravzyc8lh94iapyy9g5fc5w9yzf8bgz8cjxcy0js9996h8n"; depends=[]; };
-  cleanUpdTSeq = derive2 { name="cleanUpdTSeq"; version="1.40.0"; sha256="0yhbzzx8i1pilrv970prjrnjfb38vwygyxqarli81v6rmn344ps9"; depends=[Biostrings BSgenome BSgenome_Drerio_UCSC_danRer7 e1071 GenomeInfoDb GenomicRanges IRanges S4Vectors seqinr stringr]; };
-  cleaver = derive2 { name="cleaver"; version="1.40.0"; sha256="0r1a0rncxnrfmj81ghz3jhj3r2lyhilcr1c33z9igdlbgqh7whak"; depends=[Biostrings IRanges S4Vectors]; };
-  clevRvis = derive2 { name="clevRvis"; version="1.2.0"; sha256="0p7m7hc21qmicm33g8wr8gdmh0b0fm87xa6srirvsmkbbblly35l"; depends=[colorspace colourpicker cowplot dplyr DT ggiraph ggnewscale ggplot2 ggraph htmlwidgets igraph magrittr patchwork purrr R_utils readr readxl shiny shinycssloaders shinydashboard shinyhelper shinyWidgets tibble]; };
-  cliProfiler = derive2 { name="cliProfiler"; version="1.8.0"; sha256="0zv7y5cdv409cimc7n6v6h8i2pgy2pmr364vvlv0pgvpld3239yl"; depends=[Biostrings BSgenome dplyr GenomicRanges ggplot2 rtracklayer S4Vectors]; };
-  clippda = derive2 { name="clippda"; version="1.52.0"; sha256="11pxmsspiyvych0qzvmjkcvk6pqbh2pf0pvaghcdbs5480gn9awg"; depends=[Biobase lattice limma rgl scatterplot3d statmod]; };
-  clipper = derive2 { name="clipper"; version="1.42.0"; sha256="05hhvy0sv7l69laj4ah5vg56inzf2qb4lfc7hd71ifsw7cwyx8ql"; depends=[Biobase corpcor graph gRbase igraph KEGGgraph Matrix qpgraph Rcpp]; };
-  cliqueMS = derive2 { name="cliqueMS"; version="1.16.0"; sha256="1829i6vqplqyvibb7x6ahb7xk0z2s8amivjldnvr17d7hpggmqma"; depends=[BH igraph matrixStats MSnbase Rcpp RcppArmadillo xcms]; };
-  clst = derive2 { name="clst"; version="1.50.0"; sha256="0lbjjkcsrz6h2akr1022v0mv1ryywba57hg84yzdzmv389r0jj42"; depends=[lattice ROC]; };
-  clstutils = derive2 { name="clstutils"; version="1.50.0"; sha256="0wl1s23hmj7v3247lry9kp124kajn69b0dm3qm9fr7imlyadn666"; depends=[ape clst lattice rjson RSQLite]; };
-  clustComp = derive2 { name="clustComp"; version="1.30.0"; sha256="1jwx8k18qgyyadda89crc66b9sjq7yr2f0ym9p5s5cpc48dlyg55"; depends=[sm]; };
-  clusterExperiment = derive2 { name="clusterExperiment"; version="2.22.0"; sha256="1qnxrdpp75m342q4chwaig413l52giz1h7nd4p9y4b472dqx9hh4"; depends=[ape BiocGenerics BiocSingular cluster DelayedArray edgeR HDF5Array kernlab limma locfdr Matrix matrixStats mbkmeans NMF phylobase pracma RColorBrewer Rcpp S4Vectors scales SingleCellExperiment stringr SummarizedExperiment zinbwave]; };
-  clusterProfiler = derive2 { name="clusterProfiler"; version="4.10.1"; sha256="1jwi9029dy7ga4hv75grib7wdaghslwh4qk5awhgw3192a0qcixf"; depends=[AnnotationDbi DOSE downloader dplyr enrichplot GO_db GOSemSim gson httr igraph magrittr plyr qvalue rlang tidyr yulab_utils]; };
-  clusterSeq = derive2 { name="clusterSeq"; version="1.26.0"; sha256="0fl9ycd10rbghgxq7gnfwy9i3vcxndx8grhpvk46zlxb2spa5lvf"; depends=[baySeq BiocGenerics BiocParallel]; };
-  clusterStab = derive2 { name="clusterStab"; version="1.74.0"; sha256="10xk9654zhan2ssbj5r147z4ic2jl29h5jnhc711w4fg8xrrgpa8"; depends=[Biobase]; };
-  clustifyr = derive2 { name="clustifyr"; version="1.14.0"; sha256="0cfpjwaab7cswbi7wk58hn3wa9xh84l1sdi3jjkrx7hpm4q4kspn"; depends=[cowplot dplyr entropy fgsea ggplot2 httr Matrix matrixStats proxy rlang S4Vectors scales SingleCellExperiment stringr SummarizedExperiment tibble tidyr]; };
-  cmapR = derive2 { name="cmapR"; version="1.14.0"; sha256="02nwmgzb1765z79mnp0fp6gdfl42iglhw5xd145incvn7zhf9a4m"; depends=[data_table flowCore matrixStats rhdf5 SummarizedExperiment]; };
-  cn_farms = derive2 { name="cn.farms"; version="1.50.0"; sha256="1banis7clrcvv73n0idjay9izmnr1p5qq5ggq26kwmwx3knlfpzr"; depends=[affxparser Biobase DBI DNAcopy ff lattice oligo oligoClasses preprocessCore snow]; };
-  cn_mops = derive2 { name="cn.mops"; version="1.48.0"; sha256="0ygzvxlklfhmq6wpwzcjrwdyyskb2hgm9icpl7ngzjk2s9p18knf"; depends=[Biobase BiocGenerics exomeCopy GenomeInfoDb GenomicRanges IRanges Rsamtools S4Vectors]; };
-  cnvGSA = derive2 { name="cnvGSA"; version="1.46.0"; sha256="1knx58gc3r1j7ixzc4jf76hg52ssxzjinsjhmkpimdcmq7azdv3s"; depends=[brglm doParallel foreach GenomicRanges splitstackshape]; };
-  coGPS = derive2 { name="coGPS"; version="1.46.0"; sha256="0lhp3a8nrnm3k7gmxfbnkvqsnnkky0h6g1842nnh2agf2gc7xmx7"; depends=[]; };
-  coMET = derive2 { name="coMET"; version="1.34.0"; sha256="1pkhnfcvrbj9y88qbbvly4arbz22x8zkx0jsvsmn5klg4xp11fdz"; depends=[biomaRt corrplot GenomicRanges gridExtra Gviz hash IRanges psych rtracklayer S4Vectors]; };
-  coMethDMR = derive2 { name="coMethDMR"; version="1.6.0"; sha256="1pmshw18iyvgxmzhhid6276adhjw5hwfhladcd207qg927rnvlm5"; depends=[AnnotationHub BiocParallel bumphunter ExperimentHub GenomicRanges IRanges lmerTest]; };
-  coRdon = derive2 { name="coRdon"; version="1.20.0"; sha256="18q39xxfbfak6qx3vwpksrngkimppvarck98yhp4bv0mwpvcsg0b"; depends=[Biobase Biostrings data_table dplyr ggplot2 purrr stringr]; };
-  codelink = derive2 { name="codelink"; version="1.70.0"; sha256="145psgig0nvgq4zjpdv5m9rqlwn3vva06vznzymwvdcipcb9vllm"; depends=[annotate Biobase BiocGenerics limma]; };
-  cogena = derive2 { name="cogena"; version="1.36.0"; sha256="0i0bglq3dkrprxm3yw0np65gy0mk50wsrzm0lpglfin9hyws3hzf"; depends=[amap apcluster Biobase biwt class cluster corrplot devtools doParallel dplyr fastcluster foreach ggplot2 gplots kohonen mclust reshape2 stringr tibble tidyr]; };
-  cogeqc = derive2 { name="cogeqc"; version="1.6.2"; sha256="11hysp7nwgw03rr4kpmfg0ma150aiapkj1rrjvszfdj8b9vvywmx"; depends=[Biostrings ggbeeswarm ggplot2 ggtree igraph jsonlite patchwork reshape2 rlang scales]; };
-  cola = derive2 { name="cola"; version="2.8.0"; sha256="0wrh606i0d372wi809fg7vpz9v7zn3pvqc551lnxyafczl6j5hy4"; depends=[BiocGenerics brew circlize clue cluster ComplexHeatmap crayon digest doParallel doRNG eulerr foreach GetoptLong GlobalOptions httr impute irlba knitr markdown matrixStats mclust microbenchmark png RColorBrewer Rcpp skmeans xml2]; };
-  comapr = derive2 { name="comapr"; version="1.6.1"; sha256="13kiaa4r8i27mrxsssw075cscsvvak9j4l5cnqw66h1x4ca1f45c"; depends=[BiocParallel circlize dplyr foreach GenomeInfoDb GenomicRanges ggplot2 gridExtra Gviz IRanges Matrix plotly plyr RColorBrewer reshape2 rlang S4Vectors scales SummarizedExperiment tidyr]; };
-  combi = derive2 { name="combi"; version="1.14.0"; sha256="1qhmfadhsi62k4mhwj16xx7pqdpgybmm70vpzfw146mwi2fwi0bs"; depends=[alabama BB Biobase cobs DBI ggplot2 limma Matrix nleqslv phyloseq reshape2 SummarizedExperiment tensor vegan]; };
-  compEpiTools = derive2 { name="compEpiTools"; version="1.36.0"; sha256="19dvbpqcb4rwhw1hh4g18zbw1s72xplhph8lbwvim18h9wrw292f"; depends=[AnnotationDbi BiocGenerics Biostrings GenomeInfoDb GenomicFeatures GenomicRanges GO_db gplots IRanges methylPipe Rsamtools S4Vectors topGO XVector]; };
-  compSPOT = derive2 { name="compSPOT"; version="1.0.0"; sha256="13qsqvj4ijxr8xlg0lbj187g2vkwip9yj4g6mb1hzlng6d4ja4bb"; depends=[data_table ggplot2 ggpubr gridExtra magrittr plotly]; };
-  compcodeR = derive2 { name="compcodeR"; version="1.38.0"; sha256="011y57ly6c72p8ch1384d6v30mnihr7si0sbk86v0ii1ymmlbva3"; depends=[ape caTools edgeR ggplot2 gplots gtools KernSmooth knitr lattice limma markdown MASS matrixStats modeest phylolm rmarkdown ROCR shiny shinydashboard sm stringr vioplot]; };
-  concordexR = derive2 { name="concordexR"; version="1.2.0"; sha256="06yp4q4kllprbjvqk6jcxgmc6rmhipgqxkk5ghrkz0fn0x7wcsdw"; depends=[BiocParallel cli DelayedArray ggplot2 Matrix pheatmap rlang scales]; };
-  condiments = derive2 { name="condiments"; version="1.10.0"; sha256="1jx3gfy5pcpc8wimamvpw7zbjiyzzcbfkqlqn9rjs63lg04gqrm0"; depends=[BiocParallel distinct dplyr Ecume igraph magrittr matrixStats mgcv pbapply RANN SingleCellExperiment slingshot SummarizedExperiment TrajectoryUtils]; };
-  consICA = derive2 { name="consICA"; version="2.0.0"; sha256="0xi21ww9vh1m8b6agk2fnyvdj3aks1pv68rx4j512736rrgmhq50"; depends=[BiocParallel fastICA ggplot2 GO_db graph org_Hs_eg_db pheatmap Rfast sm SummarizedExperiment survival topGO]; };
-  consensus = derive2 { name="consensus"; version="1.20.0"; sha256="1gcm5ghvjq41s5v1iazvyal73agnjw6wlhvq4q6n9bdmc6p72xbl"; depends=[gplots matrixStats RColorBrewer]; };
-  consensusDE = derive2 { name="consensusDE"; version="1.20.0"; sha256="00y5iizshr8j3xjaza6gcnihdhq4174kzc6008zy10cc1swjyrg4"; depends=[airway AnnotationDbi Biobase BiocGenerics BiocParallel Biostrings data_table dendextend DESeq2 EDASeq edgeR EnsDb_Hsapiens_v86 ensembldb GenomicAlignments GenomicFeatures limma org_Hs_eg_db pcaMethods RColorBrewer Rsamtools RUVSeq S4Vectors SummarizedExperiment TxDb_Dmelanogaster_UCSC_dm3_ensGene]; };
-  consensusOV = derive2 { name="consensusOV"; version="1.24.0"; sha256="0dsxxxi8ig3alx6ggfdj0xycc4dx796c2hranar1hx7xaxfz5yl3"; depends=[Biobase gdata genefu GSVA limma matrixStats randomForest]; };
-  consensusSeekeR = derive2 { name="consensusSeekeR"; version="1.30.0"; sha256="0ddv5rwb4jwvykwpv8zdmbvw88c6k9hwzf8csj5ylywkr5b6z8nf"; depends=[BiocGenerics BiocParallel GenomeInfoDb GenomicRanges IRanges rtracklayer S4Vectors stringr]; };
-  contiBAIT = derive2 { name="contiBAIT"; version="1.30.0"; sha256="1asyfx0mbg0pli2g533xmlppfw0s0f1y4vf2rfrnai4chsh1rh0k"; depends=[BH BiocGenerics BiocParallel clue cluster colorspace data_table diagram DNAcopy exomeCopy GenomicAlignments GenomicFiles GenomicRanges ggplot2 gplots gtools IRanges Rcpp reshape2 Rsamtools rtracklayer S4Vectors TSP]; };
-  conumee = derive2 { name="conumee"; version="1.36.0"; sha256="1wn80253wpmvx09203nm2azfkfqz46g79pj1b38lc4nd7gzhlnp7"; depends=[DNAcopy GenomeInfoDb GenomicRanges IlluminaHumanMethylation450kanno_ilmn12_hg19 IlluminaHumanMethylation450kmanifest IlluminaHumanMethylationEPICanno_ilm10b2_hg19 IlluminaHumanMethylationEPICmanifest IRanges minfi rtracklayer]; };
-  convert = derive2 { name="convert"; version="1.78.0"; sha256="1sx4b3winpal84i689nkv1l3xhqzc2qlhwsdkkxhvkyrz7q64dcj"; depends=[Biobase limma marray]; };
-  copa = derive2 { name="copa"; version="1.70.0"; sha256="05063is251m505i3pqfz4srh5hdchkmb8r4nd3f2ahdznb6hbwjf"; depends=[Biobase]; };
-  corral = derive2 { name="corral"; version="1.12.0"; sha256="0j4krd9rafx373c620700154dh07r8ncckxqxa1nzkyrgw1zspbc"; depends=[ggplot2 ggthemes gridExtra irlba Matrix MultiAssayExperiment pals reshape2 SingleCellExperiment SummarizedExperiment transport]; };
-  coseq = derive2 { name="coseq"; version="1.26.0"; sha256="1f850bzykgxc3zdpd8y0wll2i1kmf6rmx7nl7hqa6nhva6g18gd8"; depends=[BiocParallel capushe compositions corrplot DESeq2 e1071 edgeR ggplot2 HTSCluster HTSFilter mvtnorm Rmixmod S4Vectors scales SummarizedExperiment]; };
-  cosmiq = derive2 { name="cosmiq"; version="1.36.0"; sha256="1mrczwiy1nbqv2qcvc7vmh7mfzg3ywdy4cfb7nmblm0rjd9rs7g9"; depends=[faahKO MassSpecWavelet pracma Rcpp xcms]; };
-  cosmosR = derive2 { name="cosmosR"; version="1.10.0"; sha256="0y1qhasidhg0fywm65jn1qy1786kj45cl8zvgz5vbzdg8anbz5af"; depends=[CARNIVAL decoupleR dorothea dplyr GSEABase igraph progress purrr rlang stringr visNetwork]; };
-  countsimQC = derive2 { name="countsimQC"; version="1.20.0"; sha256="02lswhazdgdyrn0vvv9i338av873l0a3ky8bjxm74a2s5aifmw3b"; depends=[caTools DESeq2 dplyr DT edgeR genefilter GenomeInfoDbData ggplot2 ragg randtests rmarkdown SummarizedExperiment tidyr]; };
-  covEB = derive2 { name="covEB"; version="1.28.0"; sha256="0a04h3xbdqqszzsa30yrifrgxn8r6jjvb0hs7r4kvxjg3c6nmwfk"; depends=[Biobase gsl igraph LaplacesDemon Matrix mvtnorm]; };
-  covRNA = derive2 { name="covRNA"; version="1.28.0"; sha256="1rkla4i86dwaqkjax2p1p6wlg1mxdpxvad097x1fa7dm5g2r3w04"; depends=[ade4 Biobase genefilter]; };
-  cpvSNP = derive2 { name="cpvSNP"; version="1.34.0"; sha256="1bvc87rspc1p240m1cc6rqgdpk4hpbk3hgz6l5s95srmw1gmzg48"; depends=[BiocParallel corpcor GenomicFeatures ggplot2 GSEABase plyr]; };
-  cqn = derive2 { name="cqn"; version="1.48.0"; sha256="0q5nf5a3yiii8r449dblckfhzi9gcxxc11sswlqxd5skbgw53yf8"; depends=[mclust nor1mix preprocessCore quantreg]; };
-  crisprBase = derive2 { name="crisprBase"; version="1.6.0"; sha256="1j6rrslqvjbnz8i4c21as5is6l2q12p8i93yzs371qfwhq1cydw0"; depends=[BiocGenerics Biostrings GenomicRanges IRanges S4Vectors stringr]; };
-  crisprBowtie = derive2 { name="crisprBowtie"; version="1.6.0"; sha256="1rh25h9ckyrm8jfxb5pmhaqhldkhdkgfv8c74ckj0q9sqlrq3mfa"; depends=[BiocGenerics Biostrings BSgenome crisprBase GenomeInfoDb GenomicRanges IRanges Rbowtie readr stringr]; };
-  crisprBwa = derive2 { name="crisprBwa"; version="1.6.0"; sha256="19c9g233ymms085sx6v77m89rfm6g0nzarr7pgj4i9p7y5n3cj29"; depends=[BiocGenerics BSgenome crisprBase GenomeInfoDb Rbwa readr stringr]; };
-  crisprDesign = derive2 { name="crisprDesign"; version="1.4.0"; sha256="1864ciggilcpxp3qi5b6hqfdj9l0w3r3q2n991gx4dmifvj601cj"; depends=[AnnotationDbi BiocGenerics Biostrings BSgenome crisprBase crisprBowtie crisprScore GenomeInfoDb GenomicFeatures GenomicRanges IRanges Matrix MatrixGenerics rtracklayer S4Vectors VariantAnnotation]; };
-  crisprScore = derive2 { name="crisprScore"; version="1.6.0"; sha256="0a1qdjgy9j5dl5j5g15mjik3a9p42jqk00i8s342mghcrk44r9yy"; depends=[basilisk basilisk_utils BiocGenerics Biostrings crisprScoreData IRanges randomForest reticulate stringr XVector]; };
-  crisprVerse = derive2 { name="crisprVerse"; version="1.4.0"; sha256="1cbqj7vnv3qy6w5g9h9fcfi5fnff2zyji2v2i1rc4nfbw1pdy8cv"; depends=[BiocManager cli crisprBase crisprBowtie crisprDesign crisprScore crisprScoreData crisprViz rlang]; };
-  crisprViz = derive2 { name="crisprViz"; version="1.4.0"; sha256="17lkam2b5j8waf81y5jylj4s4ydswhkkzrjvrggw6bgjkw1wg3y7"; depends=[BiocGenerics Biostrings BSgenome crisprBase crisprDesign GenomeInfoDb GenomicFeatures GenomicRanges Gviz IRanges S4Vectors]; };
-  crlmm = derive2 { name="crlmm"; version="1.60.0"; sha256="1pw7v4z9x002nfr816nqwgk8rgifrdmwg1d6x7rb5j66kcb1sbkj"; depends=[affyio beanplot Biobase BiocGenerics ellipse ff foreach illuminaio lattice limma matrixStats mvtnorm oligoClasses preprocessCore RcppEigen VGAM]; };
-  crossmeta = derive2 { name="crossmeta"; version="1.28.0"; sha256="18q6v0bhxhmd05h7w9rg3gp5226hy5xw0na93fsvgdi01vmm6zmx"; depends=[affxparser affy AnnotationDbi Biobase BiocGenerics BiocManager data_table DBI DT edgeR fdrtool GEOquery limma matrixStats metaMA miniUI oligo RCurl reader readxl RSQLite shiny shinyBS shinyjs shinypanel shinyWidgets stringr sva tibble XML]; };
-  csaw = derive2 { name="csaw"; version="1.36.1"; sha256="02sabpma6k87kzlrl4msh7l672bgbswvvlyr0nqmpw419h3znr7z"; depends=[BiocGenerics BiocParallel edgeR GenomeInfoDb GenomicRanges IRanges limma Matrix metapod Rcpp Rhtslib Rsamtools S4Vectors SummarizedExperiment zlibbioc]; };
-  csdR = derive2 { name="csdR"; version="1.8.0"; sha256="1rp40fj7mpxvy2lm76vsfpjacmlrz4h2viqkbkfz6mq5v6vw6kvh"; depends=[glue matrixStats Rcpp RhpcBLASctl WGCNA]; };
-  ctc = derive2 { name="ctc"; version="1.76.0"; sha256="10a83rr0qhnzdhvlbyn0y690hxnl8q86z47dpimr6sq41w463im3"; depends=[amap]; };
-  ctsGE = derive2 { name="ctsGE"; version="1.28.0"; sha256="1g1m87piqllylradccv8ggqzbcha4jbmwlllgfv3n0w70iil5297"; depends=[ccaPP ggplot2 limma reshape2 shiny stringr]; };
-  cummeRbund = derive2 { name="cummeRbund"; version="2.44.0"; sha256="1a5x3jzagd1a385yk1brs4say02r0l21qqjak4cl6fsv8ihhy05s"; depends=[Biobase BiocGenerics fastcluster ggplot2 Gviz plyr reshape2 RSQLite rtracklayer S4Vectors]; };
-  customCMPdb = derive2 { name="customCMPdb"; version="1.12.0"; sha256="15dk28w5z00z6bycy264b35jh29195hhxrab01qcrjdyjjvxixs7"; depends=[AnnotationHub BiocFileCache ChemmineR rappdirs RSQLite XML]; };
-  customProDB = derive2 { name="customProDB"; version="1.42.1"; sha256="1z2i7cxh88hsz54ijng4il0yc8rwbhf083sni4n3xg5238s9rgi8"; depends=[AhoCorasickTrie AnnotationDbi biomaRt Biostrings DBI GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges IRanges plyr RCurl Rsamtools RSQLite rtracklayer S4Vectors stringr VariantAnnotation]; };
-  cyanoFilter = derive2 { name="cyanoFilter"; version="1.10.0"; sha256="08lx2cwybpa07ds9klwp5sjf9gd06v8d5g9xcm5r7bisj3s8h19y"; depends=[Biobase cytometree flowClust flowCore flowDensity GGally ggplot2 mrfDepth]; };
-  cycle = derive2 { name="cycle"; version="1.56.0"; sha256="0h30bv2gwpx04gp2wzifbqdf6s1qck3lhrs58rv3ak0q2frqk3yn"; depends=[Biobase Mfuzz]; };
-  cydar = derive2 { name="cydar"; version="1.26.0"; sha256="01g3bs7hbnjlvsg3h65bwr1vzx7azkyq9w0b0ww4bmlllgwy2qfs"; depends=[Biobase BiocGenerics BiocNeighbors BiocParallel flowCore Rcpp S4Vectors shiny SingleCellExperiment SummarizedExperiment viridis]; };
-  cytoKernel = derive2 { name="cytoKernel"; version="1.8.0"; sha256="18h696rdkny9n903nk580knq3sca4ih4v6phszy1jdmjmkliknc1"; depends=[ashr BiocParallel circlize ComplexHeatmap data_table dplyr magrittr Rcpp rlang S4Vectors SummarizedExperiment]; };
-  cytoMEM = derive2 { name="cytoMEM"; version="1.6.0"; sha256="0fq8wjjrr2mlpsb4bd2r1m1c2whm5ryjlfsm8s27hy73m2j3xg5y"; depends=[flowCore gplots matrixStats]; };
-  cytofQC = derive2 { name="cytofQC"; version="1.2.0"; sha256="11xhplp1r7g93j1mwahsy50q0iaw8x16h4w5r4knxylblsxb5wix"; depends=[CATALYST e1071 EZtune flowCore gbm ggplot2 hrbrthemes matrixStats randomForest rmarkdown S4Vectors SingleCellExperiment ssc SummarizedExperiment]; };
-  cytolib = derive2 { name="cytolib"; version="2.14.1"; sha256="1kagik93ddcl3m1i2bqzzlh18lbxywfn3pxmp47p45kayzxzldrf"; depends=[BH Rhdf5lib RProtoBufLib]; };
-  cytomapper = derive2 { name="cytomapper"; version="1.14.0"; sha256="0fz1wjhyhxb8yhrzwr03dnb7hybx1bf4prd3yixp4qi1ac2s4pp9"; depends=[BiocParallel DelayedArray EBImage ggbeeswarm ggplot2 HDF5Array matrixStats nnls raster RColorBrewer rhdf5 S4Vectors shiny shinydashboard SingleCellExperiment SpatialExperiment SummarizedExperiment svglite svgPanZoom viridis]; };
-  cytoviewer = derive2 { name="cytoviewer"; version="1.2.0"; sha256="0vk7fj3qm0pslb8l80nbqzh7liyg7vmv35wqr94hvq230q92j958"; depends=[archive colourpicker cytomapper EBImage RColorBrewer S4Vectors shiny shinycssloaders shinydashboard SingleCellExperiment SummarizedExperiment svglite svgPanZoom viridis]; };
-  dStruct = derive2 { name="dStruct"; version="1.8.0"; sha256="0a2blaswj9y5ba2kwa49194dqbpvn04l7ll6pckb4l6xx8xi2dr8"; depends=[ggplot2 IRanges purrr reshape2 rlang S4Vectors zoo]; };
-  daMA = derive2 { name="daMA"; version="1.74.0"; sha256="1ckk8h6adylaxq6bh14ym9vvrrhsfglnaigqz16v96vsj8q9i336"; depends=[MASS]; };
-  dada2 = derive2 { name="dada2"; version="1.30.0"; sha256="0rvnwbknvwksm50f4rw9965gnhy13rjgdfvv428xsqixgkkkyrf6"; depends=[BiocGenerics Biostrings ggplot2 IRanges Rcpp RcppParallel reshape2 ShortRead XVector]; };
-  dagLogo = derive2 { name="dagLogo"; version="1.40.0"; sha256="1p9qkfsznwyisi94md29hmq6q26qrgda8r5hhvwfynr8mr11f5k3"; depends=[BiocGenerics biomaRt Biostrings httr motifStack pheatmap UniProt_ws]; };
-  dcGSA = derive2 { name="dcGSA"; version="1.30.0"; sha256="08h3bc8g7md1iakzhkq47rppvazaz5lkfjhhjq0fvdbns0hk2w6i"; depends=[BiocParallel Matrix]; };
-  dcanr = derive2 { name="dcanr"; version="1.18.0"; sha256="02ssbp4qvzzrz8a20vwhjj69v0hv8zkf39cnv4c5r2cp2yb8ywyw"; depends=[circlize doRNG foreach igraph Matrix plyr RColorBrewer reshape2 stringr]; };
-  dce = derive2 { name="dce"; version="1.10.0"; sha256="0xyh1624pc1h1zrlr24yrknbf1xvqk2fiiy40xj30mw1100i9ric"; depends=[assertthat dplyr edgeR epiNEM expm ggplot2 ggraph glm2 glue graph graphite harmonicmeanp igraph logger magrittr MASS Matrix metap mnem naturalsort org_Hs_eg_db pcalg ppcor purrr reshape2 Rgraphviz rlang shadowtext tidygraph tidyverse]; };
-  ddCt = derive2 { name="ddCt"; version="1.58.0"; sha256="1lgkcrjbifw91bkj96gy8zgcqbap2ilikdrhhkga1jzsbbmzzab5"; depends=[Biobase BiocGenerics lattice RColorBrewer xtable]; };
-  ddPCRclust = derive2 { name="ddPCRclust"; version="1.22.0"; sha256="0cfdy5kjd1nyysnnm955zcvac6m626wzpk794iz85mw0pr7mlx2c"; depends=[clue flowCore flowDensity flowPeaks ggplot2 openxlsx plotrix R_utils SamSPECTRAL]; };
-  dearseq = derive2 { name="dearseq"; version="1.14.0"; sha256="1ldxw457zsfphm6izxz2kvxy3719gszhxb8mymx8njg6islljy27"; depends=[CompQuadForm dplyr ggplot2 KernSmooth magrittr matrixStats patchwork pbapply reshape2 rlang scattermore statmod survey tibble viridisLite]; };
-  debCAM = derive2 { name="debCAM"; version="1.20.0"; sha256="1swqqrlwin2i2qq46qyfziblbfsfyd5hf6w39hygp7fdkpic14b7"; depends=[apcluster Biobase BiocParallel corpcor DMwR2 geometry NMF nnls pcaPP rJava SummarizedExperiment]; };
-  debrowser = derive2 { name="debrowser"; version="1.30.2"; sha256="0fm5xjsxxc1yqzpxxxwdvi21gjq6qdgp6pqv6a5x2410y2dyghjx"; depends=[annotate AnnotationDbi apeglm ashr clusterProfiler colourpicker DESeq2 DOSE DT edgeR enrichplot GenomicRanges ggplot2 gplots Harman heatmaply igraph IRanges jsonlite limma org_Hs_eg_db org_Mm_eg_db pathview plotly RColorBrewer RCurl reshape2 S4Vectors shiny shinyBS shinydashboard shinyjs stringi SummarizedExperiment sva]; };
-  decompTumor2Sig = derive2 { name="decompTumor2Sig"; version="2.18.0"; sha256="13vwrg82zprb9h72azdqd0rkm5k2xm4mw7viawbzwkkqvg6azsdj"; depends=[BiocGenerics Biostrings BSgenome_Hsapiens_UCSC_hg19 data_table GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 ggseqlogo gridExtra Matrix plyr quadprog readxl S4Vectors SummarizedExperiment TxDb_Hsapiens_UCSC_hg19_knownGene VariantAnnotation]; };
-  decontX = derive2 { name="decontX"; version="1.0.0"; sha256="1675kwnhi1zhksxc365wih908lmfrhfpxlig5k80fipg0g1530b8"; depends=[BH celda dbscan DelayedArray ggplot2 Matrix MCMCprecision patchwork plyr Rcpp RcppEigen RcppParallel reshape2 rstan rstantools S4Vectors scater Seurat SingleCellExperiment StanHeaders SummarizedExperiment withr]; };
-  decontam = derive2 { name="decontam"; version="1.22.0"; sha256="0m4zd6qxsrp7w9a8psg8xcrviim6plwgwn4rgdxy8ag0c442fsvk"; depends=[ggplot2 reshape2]; };
-  deconvR = derive2 { name="deconvR"; version="1.8.0"; sha256="0pl4nwaf8swwz9nl2ynf9mm38d0x223gpz89qrj03yihxszy2n13"; depends=[assertthat BiocGenerics data_table dplyr e1071 foreach GenomicRanges IRanges magrittr MASS matrixStats methylKit minfi nnls quadprog rsq S4Vectors tidyr]; };
-  decoupleR = derive2 { name="decoupleR"; version="2.8.0"; sha256="1vnlrkza33nb80qf810yfz66m3j84p8chhfdxak5lvpciqwx7dh9"; depends=[broom dplyr magrittr Matrix purrr rlang stringr tibble tidyr tidyselect withr]; };
-  deepSNV = derive2 { name="deepSNV"; version="1.48.0"; sha256="16dkjqy9ba5v8nikaxdjcz7rr60dg46sfsgrjjlp82rf3256bf8r"; depends=[Biostrings GenomicRanges IRanges Rhtslib SummarizedExperiment VariantAnnotation VGAM]; };
-  deltaCaptureC = derive2 { name="deltaCaptureC"; version="1.16.0"; sha256="1mapr2c1q444f2jq2mhr4bwx629qzwlbhsvisv7gcmmplsxn3f3b"; depends=[DESeq2 GenomicRanges ggplot2 IRanges SummarizedExperiment tictoc]; };
-  deltaGseg = derive2 { name="deltaGseg"; version="1.42.0"; sha256="05q2b8cm60j4a4mz5b5786vcd8fwzsaz77l467ymk2v6g2lr0ndf"; depends=[changepoint fBasics ggplot2 pvclust reshape scales tseries wavethresh]; };
-  demuxSNP = derive2 { name="demuxSNP"; version="1.0.0"; sha256="183s8i5gzjw55szp0pv47x442zk10swc8g6k1mpjv6qkxjdr3n4c"; depends=[BiocGenerics class combinat demuxmix ensembldb GenomeInfoDb IRanges Matrix MatrixGenerics SingleCellExperiment SummarizedExperiment VariantAnnotation]; };
-  demuxmix = derive2 { name="demuxmix"; version="1.4.0"; sha256="10wa5nshp3j9llnsb8qbjd3nsrk16cng0wikr2qnrn5wjwvl2xbw"; depends=[ggplot2 gridExtra MASS Matrix]; };
-  densvis = derive2 { name="densvis"; version="1.12.1"; sha256="11a112r2ckzphqj3r3fxvablzwgri0j5lx3ggh1z6pfnv113xxwj"; depends=[assertthat basilisk irlba Rcpp reticulate Rtsne]; };
-  derfinder = derive2 { name="derfinder"; version="1.36.0"; sha256="0rj3szlpbxiwj3rajmr6ccnbs1mkcskql12iip8zgswmhz76rxh1"; depends=[AnnotationDbi BiocGenerics BiocParallel bumphunter derfinderHelper GenomeInfoDb GenomicAlignments GenomicFeatures GenomicFiles GenomicRanges Hmisc IRanges qvalue Rsamtools rtracklayer S4Vectors]; };
-  derfinderHelper = derive2 { name="derfinderHelper"; version="1.36.0"; sha256="01vq8xnszxqhijranzaciapw8mcn6px0jhx9zb9lyqhsvaffjh5r"; depends=[IRanges Matrix S4Vectors]; };
-  derfinderPlot = derive2 { name="derfinderPlot"; version="1.36.0"; sha256="1kzndvxj1cggyymifksydkif47z1r4z9lqcz3f0ni2a515q52acg"; depends=[derfinder GenomeInfoDb GenomicFeatures GenomicRanges ggbio ggplot2 IRanges limma plyr RColorBrewer reshape2 S4Vectors scales]; };
-  destiny = derive2 { name="destiny"; version="3.16.0"; sha256="06xwyqlsas98lxmd0qw5ysjwbk397kyapd5jq5pzjrynsj4r9xn6"; depends=[Biobase BiocGenerics ggplot_multistats ggplot2 ggthemes irlba knn_covertree Matrix pcaMethods proxy Rcpp RcppEigen RcppHNSW RSpectra scales scatterplot3d SingleCellExperiment smoother SummarizedExperiment tidyr tidyselect VIM]; };
-  diffGeneAnalysis = derive2 { name="diffGeneAnalysis"; version="1.84.0"; sha256="17ads5a8pxmw0a8jbrj4xzg64937q72qs8vi8m4841hdnlxd68b0"; depends=[minpack_lm]; };
-  diffHic = derive2 { name="diffHic"; version="1.34.0"; sha256="1dcrbwvp8mq7bmp8lk8z9sa890685d5z86jflbfqs4hs16jm0ny0"; depends=[BiocGenerics Biostrings BSgenome csaw edgeR GenomeInfoDb GenomicRanges InteractionSet IRanges limma locfit Rcpp rhdf5 Rhtslib Rsamtools rtracklayer S4Vectors SummarizedExperiment zlibbioc]; };
-  diffUTR = derive2 { name="diffUTR"; version="1.10.0"; sha256="0zf6hr66wppjwyqb4i1k2l916pbfvpp0bbp7fs743h2bq551d74j"; depends=[ComplexHeatmap DEXSeq dplyr edgeR ensembldb GenomeInfoDb GenomicRanges ggplot2 ggrepel IRanges limma matrixStats Rsubread rtracklayer S4Vectors stringi SummarizedExperiment viridisLite]; };
-  diffcoexp = derive2 { name="diffcoexp"; version="1.22.0"; sha256="0hgf6x850b0315c26nik0fbdnd0p6fmviz8651abvmw96jy29g43"; depends=[BiocGenerics DiffCorr igraph psych SummarizedExperiment WGCNA]; };
-  diffcyt = derive2 { name="diffcyt"; version="1.22.1"; sha256="1lg7c33mdnp35b15n7ydmz4wgkgls6ii3r1q699i4ifxcgxjm8pj"; depends=[circlize ComplexHeatmap dplyr edgeR flowCore FlowSOM limma lme4 magrittr multcomp reshape2 S4Vectors SummarizedExperiment tidyr]; };
-  diffuStats = derive2 { name="diffuStats"; version="1.22.0"; sha256="0pysp8l747cvjk13334rkf6rg38l86bykf87csnyinc921i45iry"; depends=[checkmate expm igraph MASS Matrix plyr precrec Rcpp RcppArmadillo RcppParallel]; };
-  diggit = derive2 { name="diggit"; version="1.34.0"; sha256="15f4mcd9rx7a6ihpwv78l8mjnm087fbppmlvm1isvwgp6qaqjxgh"; depends=[Biobase ks viper]; };
-  dir_expiry = derive2 { name="dir.expiry"; version="1.10.0"; sha256="191b8qhldxvsw09l2c0ffc1ldmx0mqxgsx6m074f28l01d3c1d9q"; depends=[filelock]; };
-  discordant = derive2 { name="discordant"; version="1.26.0"; sha256="04hakn499fmcszk618z0y60xsrm1m9jcn7dxvblqvypasvvvbh1j"; depends=[Biobase biwt dplyr gtools MASS Rcpp]; };
-  distinct = derive2 { name="distinct"; version="1.14.5"; sha256="14kq3vq6006r8wjwgkbl1dc2l89jd434anhdfwaz7gi63bw52hq2"; depends=[doParallel doRNG foreach ggplot2 limma Matrix Rcpp RcppArmadillo scater SingleCellExperiment SummarizedExperiment]; };
-  dittoSeq = derive2 { name="dittoSeq"; version="1.14.3"; sha256="019fdjjgzh15pbp8m16g73whbjffpm4p7hwk1nz85yc2yr1381zi"; depends=[colorspace cowplot ggplot2 ggrepel ggridges gridExtra pheatmap reshape2 S4Vectors SingleCellExperiment SummarizedExperiment]; };
-  divergence = derive2 { name="divergence"; version="1.18.0"; sha256="0n6mh253kyvlf43zc8j4dmnjsz45n843pyfzpxnxzk3jdbw050wx"; depends=[SummarizedExperiment]; };
-  dks = derive2 { name="dks"; version="1.48.0"; sha256="0xswv7bjz0c2czrwzbaxf8fnb3k7bx129lzvp6f34c3gm4kbj1sd"; depends=[cubature]; };
-  dmrseq = derive2 { name="dmrseq"; version="1.22.1"; sha256="10ps9k5cp2adpx91g23gc9hl1qzzax5w1mxjcjaii7knkh70cz3p"; depends=[AnnotationHub annotatr BiocParallel bsseq bumphunter DelayedMatrixStats GenomeInfoDb GenomicRanges ggplot2 IRanges locfit matrixStats nlme outliers RColorBrewer rtracklayer S4Vectors]; };
-  doppelgangR = derive2 { name="doppelgangR"; version="1.30.0"; sha256="0hahrj5c7fxsz91pkhrii46xwkri468mkb3wca469cqgw2nm1ihd"; depends=[Biobase BiocParallel digest impute mnormt SummarizedExperiment sva]; };
-  doseR = derive2 { name="doseR"; version="1.18.0"; sha256="08wmzhaiva0bbyrnbnaf8av537abnk916fxfqy21cz52hr317v8n"; depends=[digest edgeR lme4 matrixStats mclust RUnit S4Vectors SummarizedExperiment]; };
-  doubletrouble = derive2 { name="doubletrouble"; version="1.2.5"; sha256="1zdajr92fz1k0w5crc0vcvdvxvrx6rx9cvrlsivjbsk53hjcxjn3"; depends=[AnnotationDbi BiocParallel Biostrings GenomicFeatures GenomicRanges ggplot2 mclust MSA2dist rlang syntenet]; };
-  drawProteins = derive2 { name="drawProteins"; version="1.22.2"; sha256="1mc8j149szhmyd9kakbq8h6b75xvvxk7bq5c4yxs1na39a9a84ki"; depends=[dplyr ggplot2 httr readr tidyr]; };
-  dreamlet = derive2 { name="dreamlet"; version="1.0.3"; sha256="01qfcbk7gpz7pgi4dkpgvpf4pvh8sh5ys3nzrp0cvq12nmzcm89m"; depends=[ashr beachmat BiocGenerics BiocParallel broom data_table DelayedArray DelayedMatrixStats dplyr edgeR ggbeeswarm ggplot2 ggrepel GSEABase gtools IRanges irlba limma lme4 mashr MASS Matrix MatrixGenerics metafor purrr Rcpp Rdpack remaCor reshape2 rlang S4Vectors scattermore SingleCellExperiment sparseMatrixStats SummarizedExperiment tidyr variancePartition zenith]; };
-  drugTargetInteractions = derive2 { name="drugTargetInteractions"; version="1.10.1"; sha256="035g95v297mqzjgjk6s50c19n3hswhzkndkval3yklliycgbd92s"; depends=[AnnotationFilter BiocFileCache biomaRt dplyr ensembldb rappdirs RSQLite S4Vectors UniProt_ws]; };
-  dupRadar = derive2 { name="dupRadar"; version="1.32.0"; sha256="067hyf4pfsza2vpjc88wb95mynrmfz1wd5sc3yd69x09w4c1iz20"; depends=[KernSmooth Rsubread]; };
-  dyebias = derive2 { name="dyebias"; version="1.62.0"; sha256="0wph2a830n5bszlby55ia4gay8mly3gg6q0ngw4ma0ycdvkh3glx"; depends=[Biobase marray]; };
-  easier = derive2 { name="easier"; version="1.8.0"; sha256="0llgg9hvadi3daw3j4vh41ivjw7q2x3l9rgxd49lpzdfd5v13kv1"; depends=[BiocParallel coin decoupleR DESeq2 dorothea dplyr easierData ggplot2 ggpubr ggrepel magrittr matrixStats progeny quantiseqr reshape2 rlang ROCR rstatix tibble tidyr]; };
-  easyRNASeq = derive2 { name="easyRNASeq"; version="2.38.0"; sha256="0hirbj98kq1gvf56adr60jidij9mgqv3s0fqh3m97m5zf928l2pz"; depends=[Biobase BiocFileCache BiocGenerics BiocParallel biomaRt Biostrings edgeR GenomeInfoDb genomeIntervals GenomicAlignments GenomicRanges IRanges locfit LSD rappdirs Rsamtools S4Vectors ShortRead SummarizedExperiment]; };
-  easylift = derive2 { name="easylift"; version="1.0.0"; sha256="1xdb8xp8f3hy0mv62z3chx7zi2nfzfijc4pwl8dn71q05lj8jh1n"; depends=[BiocFileCache GenomeInfoDb GenomicRanges R_utils rtracklayer]; };
-  easyreporting = derive2 { name="easyreporting"; version="1.14.0"; sha256="0y2sjs1vc8qar9ns48xhcx9pjkxlw5zs0yg2ddprby42asds53ci"; depends=[rlang rmarkdown shiny]; };
-  ecolitk = derive2 { name="ecolitk"; version="1.74.0"; sha256="1kdq5a8r6lzvrcafp4r2spslnkxaz5a4csmwi9mpn4h9sjgxbw53"; depends=[Biobase]; };
-  edge = derive2 { name="edge"; version="2.34.0"; sha256="1slfbrj9syad9mjr0q9cg9glc363ggsn2qz2yx90m3cpiwvq8qxb"; depends=[Biobase MASS qvalue snm sva]; };
-  edgeR = derive2 { name="edgeR"; version="4.0.16"; sha256="0jflbh1wsszz98y0y294g69mm81fwwxfbhpi3kmdncin8bwf8ifi"; depends=[limma locfit Rcpp]; };
-  eds = derive2 { name="eds"; version="1.4.0"; sha256="0xdipsv2s5vl754i37xlsim8b2saz3p0355fbmn0iyc626bj00ya"; depends=[Matrix Rcpp]; };
-  eiR = derive2 { name="eiR"; version="1.42.0"; sha256="0hz4d0did83jjl8x3j5bm2rd6vsbi6b7zsc2k5bhcax280jq3hjk"; depends=[BiocGenerics ChemmineR DBI digest RcppAnnoy RCurl RUnit snow snowfall]; };
-  eisaR = derive2 { name="eisaR"; version="1.14.1"; sha256="0bg28252qvvzhw39vyqc0mv96bc78a995k6g5am6bzfkclgd2nri"; depends=[BiocGenerics edgeR GenomicRanges IRanges limma S4Vectors SummarizedExperiment]; };
-  enhancerHomologSearch = derive2 { name="enhancerHomologSearch"; version="1.8.3"; sha256="1lw8ql80rvdavavm2hmkxpbamxsab6njwcr35qmi185rddd58z42"; depends=[BiocFileCache BiocGenerics BiocParallel Biostrings BSgenome GenomeInfoDb GenomicRanges httr IRanges jsonlite Matrix motifmatchr Rcpp rtracklayer S4Vectors]; };
-  enrichTF = derive2 { name="enrichTF"; version="1.18.0"; sha256="0lhmlxw7mpb76w2agm25v5qzxgf28wfw2xc0fnlqn2sbbfj295y9"; depends=[BiocGenerics BSgenome clusterProfiler GenomeInfoDb GenomicRanges ggplot2 ggpubr heatmap3 IRanges JASPAR2018 magrittr motifmatchr pipeFrame R_utils rmarkdown rtracklayer S4Vectors TFBSTools]; };
-  enrichViewNet = derive2 { name="enrichViewNet"; version="1.0.0"; sha256="0475c20q3sc9srgqrkpabspcqlsbh63r4nfl3qjr97nsj5jxsywv"; depends=[enrichplot gprofiler2 jsonlite RCy3 strex stringr]; };
-  enrichplot = derive2 { name="enrichplot"; version="1.22.0"; sha256="05ps96adbn4h8i0mqflzm1h6chjlrmfz6hx393232bhb995jfllx"; depends=[aplot DOSE ggfun ggnewscale ggplot2 ggraph ggtree GOSemSim igraph magrittr plyr purrr RColorBrewer reshape2 rlang scatterpie shadowtext yulab_utils]; };
-  ensemblVEP = derive2 { name="ensemblVEP"; version="1.44.0"; sha256="1kglg8gxaaihs1m621rrwiw4874k4vkm27s7522vc8qd0frzjm66"; depends=[BiocGenerics Biostrings GenomeInfoDb GenomicRanges S4Vectors SummarizedExperiment VariantAnnotation]; };
-  ensembldb = derive2 { name="ensembldb"; version="2.26.0"; sha256="010fp03x1splddxmhpxlfv1i3paqgbcxm7l9z2lmm6zfixhb158a"; depends=[AnnotationDbi AnnotationFilter Biobase BiocGenerics Biostrings curl DBI GenomeInfoDb GenomicFeatures GenomicRanges IRanges ProtGenerics Rsamtools RSQLite rtracklayer S4Vectors]; };
-  epiNEM = derive2 { name="epiNEM"; version="1.26.0"; sha256="02v3p3jdwrizx42ddkzhaz2hhvamdy4vdk16hq79kx12aqgniplf"; depends=[BoolNet e1071 graph gtools igraph latex2exp lattice latticeExtra minet mnem pcalg RColorBrewer]; };
-  epialleleR = derive2 { name="epialleleR"; version="1.10.0"; sha256="1zdgjmdxzpk8r3hnx413r7m7srmadx9fi694ib4ry89h5ky6ckqx"; depends=[BH BiocGenerics data_table GenomeInfoDb GenomicRanges Rcpp Rhtslib SummarizedExperiment VariantAnnotation zlibbioc]; };
-  epidecodeR = derive2 { name="epidecodeR"; version="1.10.0"; sha256="0187186mxflij9kf89sbbj30yk9bdfjhmcy2vrykx8rq4vn9rs4p"; depends=[dplyr EnvStats GenomicRanges ggplot2 ggpubr IRanges rstatix rtracklayer]; };
-  epigenomix = derive2 { name="epigenomix"; version="1.42.0"; sha256="08q57qbrw4z69dzdsivl9a5r9iin84f2rbkdinm4vdnh7zlma7ab"; depends=[beadarray Biobase BiocGenerics GenomeInfoDb GenomicRanges IRanges MCMCpack Rsamtools S4Vectors SummarizedExperiment]; };
-  epigraHMM = derive2 { name="epigraHMM"; version="1.10.0"; sha256="0x7phf7hak1mvlpswdkk18dqas0yri874h8h97lw0is7f70vvxrn"; depends=[bamsignals csaw data_table GenomeInfoDb GenomicRanges ggplot2 ggpubr GreyListChIP IRanges limma magrittr MASS Matrix pheatmap Rcpp RcppArmadillo rhdf5 Rhdf5lib Rsamtools rtracklayer S4Vectors scales SummarizedExperiment]; };
-  epimutacions = derive2 { name="epimutacions"; version="1.6.1"; sha256="1gkq4fhk406cdkmydbvpgp22v4q9wb1ahddblwdvnha1vnraypga"; depends=[AnnotationDbi AnnotationHub BiocGenerics BiocParallel biomaRt bumphunter ensembldb epimutacionsData ExperimentHub GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 ggrepel gridExtra Gviz Homo_sapiens IlluminaHumanMethylation450kanno_ilmn12_hg19 IlluminaHumanMethylation450kmanifest IlluminaHumanMethylationEPICanno_ilm10b2_hg19 IlluminaHumanMethylationEPICmanifest IRanges isotree matrixStats minfi purrr reshape2 robustbase rtracklayer S4Vectors SummarizedExperiment tibble TxDb_Hsapiens_UCSC_hg18_knownGene TxDb_Hsapiens_UCSC_hg19_knownGene TxDb_Hsapiens_UCSC_hg38_knownGene]; };
-  epistack = derive2 { name="epistack"; version="1.8.0"; sha256="0m7j1dxqmzfz4b6wkb0zczz5pzy4g23l80qpmwrdffn2m3q2r2vk"; depends=[BiocGenerics GenomicRanges IRanges plotrix S4Vectors SummarizedExperiment]; };
-  epistasisGA = derive2 { name="epistasisGA"; version="1.4.0"; sha256="0dnq5a40cjrmr2r8dzc479jvazscv8nyzrsb15n7y0sp6g6nfj11"; depends=[batchtools BH bigmemory BiocParallel data_table ggplot2 igraph matrixStats qgraph Rcpp RcppArmadillo survival]; };
-  epivizr = derive2 { name="epivizr"; version="2.32.0"; sha256="093i6j073ny5j1zl9spsrcclqi7ylfij2pn00s89k0pqc9bs85rj"; depends=[bumphunter epivizrData epivizrServer GenomeInfoDb GenomicRanges IRanges S4Vectors]; };
-  epivizrChart = derive2 { name="epivizrChart"; version="1.24.0"; sha256="17v454wxbdz5696q3dm606r3n3lfabdpi8mh8shmv7a6kvm5pyvq"; depends=[BiocGenerics epivizrData epivizrServer htmltools rjson]; };
-  epivizrData = derive2 { name="epivizrData"; version="1.30.0"; sha256="0r93s1nb7vj49c2biqpzbwpf68jaslxklha98aicq7ddxzdg1yl0"; depends=[Biobase ensembldb epivizrServer GenomeInfoDb GenomicFeatures GenomicRanges IRanges OrganismDbi S4Vectors SummarizedExperiment]; };
-  epivizrServer = derive2 { name="epivizrServer"; version="1.30.0"; sha256="03dmgiifs39vy5igbjjy6xlaz5bzc1zgjsr32afn0vdbyq678fry"; depends=[httpuv mime R6 rjson]; };
-  epivizrStandalone = derive2 { name="epivizrStandalone"; version="1.30.0"; sha256="0k7s3agkhf89pwkfjcg54ywnfl2anxwvgb4kws6iamyk4q337fz3"; depends=[BiocGenerics epivizr epivizrServer GenomeInfoDb GenomicFeatures git2r S4Vectors]; };
-  erccdashboard = derive2 { name="erccdashboard"; version="1.36.0"; sha256="12smnn06i8mj5rq51hsmay7nz8f1hg19xxdbwax511l96mjjrq2p"; depends=[edgeR ggplot2 gplots gridExtra gtools limma locfit MASS plyr qvalue reshape2 ROCR scales stringr]; };
-  erma = derive2 { name="erma"; version="1.18.0"; sha256="0vapjfzhwlzxd049fsr00jd7lp48h9qwd95m2sqhqryqz1vsi7hz"; depends=[AnnotationDbi Biobase BiocGenerics BiocParallel GenomeInfoDb GenomicFiles GenomicRanges ggplot2 Homo_sapiens IRanges rtracklayer S4Vectors shiny SummarizedExperiment]; };
-  esATAC = derive2 { name="esATAC"; version="1.24.0"; sha256="1922xgk3zq9r9j5r76ha5a7lpmxbix10i84yckg94k1i4bm71c51"; depends=[AnnotationDbi BiocGenerics BiocManager Biostrings BSgenome ChIPseeker clusterProfiler corrplot digest GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 igraph IRanges JASPAR2018 knitr magrittr motifmatchr pipeFrame R_utils Rbowtie2 Rcpp rJava rmarkdown Rsamtools rtracklayer S4Vectors ShortRead TFBSTools VennDiagram]; };
-  escape = derive2 { name="escape"; version="1.12.0"; sha256="0bmin69ax7l5x3a0k9mv183277a0hl4znx02y79v2ilkgqkdm7fn"; depends=[BiocParallel broom data_table dplyr ggplot2 ggridges GSEABase GSVA Matrix MatrixGenerics msigdbr patchwork reshape2 rlang SingleCellExperiment stringr SummarizedExperiment UCell]; };
-  escheR = derive2 { name="escheR"; version="1.2.0"; sha256="0hb1kkd1c57wpyfng5rmbnfqcl6dv84smxv5dj103ki3h56v55yr"; depends=[ggplot2 rlang SingleCellExperiment SpatialExperiment SummarizedExperiment]; };
-  esetVis = derive2 { name="esetVis"; version="1.28.2"; sha256="1yb0z3q056rl41g4igww7d66w9qwdd6z2cfjyr3185z53za39a3l"; depends=[Biobase hexbin MASS MLP mpm Rtsne]; };
-  eudysbiome = derive2 { name="eudysbiome"; version="1.32.0"; sha256="0any342ja9y45h2adzz7aj358psydgk6379kmgrvfwmwjnrdblkx"; depends=[Biostrings plyr R_utils Rsamtools]; };
-  evaluomeR = derive2 { name="evaluomeR"; version="1.18.0"; sha256="06nri3a6y9vp5frk2d3vvyqnm9jgdrfl3qlldka6dpmynyfdw04i"; depends=[class cluster corrplot flexmix fpc ggdendro ggplot2 kableExtra MASS matrixStats mclust MultiAssayExperiment plotrix prabclus randomForest Rdpack reshape2 SummarizedExperiment]; };
-  exomeCopy = derive2 { name="exomeCopy"; version="1.48.0"; sha256="1d3qkr05q8nl3fj0y4qib0q37pwjh004p746nnzk8fmms75l1p11"; depends=[GenomeInfoDb GenomicRanges IRanges Rsamtools]; };
-  exomePeak2 = derive2 { name="exomePeak2"; version="1.14.3"; sha256="1hvz18hlvljbv0cmdlxzvsl2ysb5m0c5qq2y8jxzsby3zxlqplph"; depends=[BiocGenerics BiocParallel Biostrings BSgenome DESeq2 GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 IRanges magrittr mclust Rsamtools rtracklayer S4Vectors speedglm SummarizedExperiment]; };
-  extraChIPs = derive2 { name="extraChIPs"; version="1.6.1"; sha256="16bfm0qa83p1ph9vl113i6xalprmww1b2hgksckil8rgqbbgqrls"; depends=[BiocIO BiocParallel broom ComplexUpset csaw dplyr edgeR EnrichedHeatmap forcats GenomeInfoDb GenomicInteractions GenomicRanges ggforce ggplot2 ggrepel ggside glue Gviz InteractionSet IRanges limma matrixStats patchwork RColorBrewer rlang Rsamtools rtracklayer S4Vectors scales stringr SummarizedExperiment tibble tidyr tidyselect vctrs VennDiagram]; };
-  fCCAC = derive2 { name="fCCAC"; version="1.28.0"; sha256="0xz7c62nm8imcf0d2i3n4b9x31y0xpdb5hgp2cxgz0vl902wc00k"; depends=[ComplexHeatmap fda genomation GenomicRanges ggplot2 IRanges RColorBrewer S4Vectors]; };
-  fCI = derive2 { name="fCI"; version="1.32.0"; sha256="1c17xi34j5y5ic3wr1rypzpcmxr5j81b331pz89c4n2y4fs6dghz"; depends=[FNN gtools psych rgl VennDiagram zoo]; };
-  fabia = derive2 { name="fabia"; version="2.48.0"; sha256="1i64dxl7xr6k04hgg231hx11d2xl2kl59svqg90xrykjxy3j6v49"; depends=[Biobase]; };
-  factDesign = derive2 { name="factDesign"; version="1.78.0"; sha256="0nnjsfvn8abjkjm4f2phwb9cfk6qp4nx1nqqvz20lwhb76xq7ydh"; depends=[Biobase]; };
-  factR = derive2 { name="factR"; version="1.4.0"; sha256="1r4r7qqnjf0gfizaqbsjf8rragbmnrf9p5xfyizx6ipzsggzadxv"; depends=[BiocGenerics BiocParallel Biostrings crayon data_table dplyr drawProteins GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 IRanges pbapply purrr RCurl rlang rtracklayer S4Vectors stringr tibble tidyr wiggleplotr XML]; };
-  famat = derive2 { name="famat"; version="1.12.0"; sha256="01pp56ckabvxd2v5kc5kzxbzh3f9kkqdb9w5i8z7z0c0x4497nnj"; depends=[BiasedUrn clusterProfiler dplyr DT GO_db gprofiler2 KEGGREST magrittr mgcv ontologyIndex org_Hs_eg_db plotly reactome_db rWikiPathways shiny shinyBS shinydashboard stringr tidyr]; };
-  fastLiquidAssociation = derive2 { name="fastLiquidAssociation"; version="1.38.0"; sha256="1l1fv0sjdw1j3ckywqczhxd0dnxp29rkvi7fcl9pkg7ph04w9x5s"; depends=[doParallel Hmisc impute LiquidAssociation preprocessCore WGCNA]; };
-  fastreeR = derive2 { name="fastreeR"; version="1.6.0"; sha256="1nvcq1c6snw9468mjcqxn9bdmbb7slwpbwx80mmsj6859cikd2d5"; depends=[ape data_table dynamicTreeCut R_utils rJava stringr]; };
-  fastseg = derive2 { name="fastseg"; version="1.48.0"; sha256="10g9mdh7nzdz2b1k5gg5hk35lpapcnbs3p3z17k15aq040lpm236"; depends=[Biobase BiocGenerics GenomicRanges IRanges S4Vectors]; };
-  fcScan = derive2 { name="fcScan"; version="1.16.0"; sha256="0hhad9vg43j0yz8fp2w7qdhvdy77yr7anv0fi170042x3piq1q7r"; depends=[doParallel foreach GenomicRanges IRanges plyr rtracklayer SummarizedExperiment VariantAnnotation]; };
-  fdrame = derive2 { name="fdrame"; version="1.74.0"; sha256="03fs7k26m70wq7rkaf4syzirjylxql2jfk8gaqih1xa5mazf0gsw"; depends=[]; };
-  fedup = derive2 { name="fedup"; version="1.10.0"; sha256="00prfzq9yjn8gls3xl1ihfwc8sz6y16rqvihi2y84lwi8nxihii6"; depends=[data_table dplyr forcats ggplot2 ggthemes openxlsx RColorBrewer RCy3 tibble]; };
-  fenr = derive2 { name="fenr"; version="1.0.5"; sha256="06cjlnrhsmg1xwqkv61vajfhm1k6b1gz8jswlkck7c6zwxf8f7mv"; depends=[assertthat BiocFileCache biomaRt dplyr ggplot2 httr2 progress purrr readr rlang rvest shiny stringr tibble tidyr tidyselect]; };
-  ffpe = derive2 { name="ffpe"; version="1.46.0"; sha256="1nmb27vxldjxkqk2ghfwlsv3wwxvl0xqz53zqlxc4i3q5a8p0dhf"; depends=[affy Biobase BiocGenerics lumi methylumi sfsmisc TTR]; };
-  fgga = derive2 { name="fgga"; version="1.10.2"; sha256="1cbd3gbs2414mfjb275jhvvm9h2fh4d27qpj0sngylzc33m6sdfp"; depends=[BiocFileCache curl e1071 graph gRbase igraph jsonlite RBGL]; };
-  fgsea = derive2 { name="fgsea"; version="1.28.0"; sha256="0sykd4ingpw41615hbr3vw9yd1ks225hdb5qxnhbk4m4wxj814ql"; depends=[BH BiocParallel cowplot data_table fastmatch ggplot2 Matrix Rcpp scales]; };
-  fishpond = derive2 { name="fishpond"; version="2.8.0"; sha256="04vl4cp0izghm7h4xk7x48lqkq0dpl47dkd068lva33jygwwpvcz"; depends=[abind GenomicRanges gtools IRanges jsonlite Matrix matrixStats qvalue S4Vectors SingleCellExperiment SummarizedExperiment svMisc]; };
-  flagme = derive2 { name="flagme"; version="1.58.0"; sha256="1giqdl9prv04jp655a736gvc7xygld5v7k7vrz5c3vdrw4sgw628"; depends=[CAMERA gcspikelite gplots MASS SparseM xcms]; };
-  flowAI = derive2 { name="flowAI"; version="1.32.0"; sha256="1bi13f8q7267lai71sl640w9zgd5a1iln5r4ri2dcskkwb2qxzkz"; depends=[changepoint flowCore ggplot2 knitr plyr RColorBrewer reshape2 rmarkdown scales]; };
-  flowBeads = derive2 { name="flowBeads"; version="1.40.0"; sha256="0hqb67lq519dn5psn7maqs7lvkcr8a132i0zgni0zd29vsyhfg6l"; depends=[Biobase flowCore knitr rrcov xtable]; };
-  flowBin = derive2 { name="flowBin"; version="1.38.0"; sha256="0cp000006z5x5a36dy9ish64ny82wi69k2biz7z64dishmnx0295"; depends=[BiocGenerics class flowCore flowFP limma snow]; };
-  flowCHIC = derive2 { name="flowCHIC"; version="1.36.0"; sha256="0sfb1jd0cj4y3yzgkxzwgb7p569c9sisvv2j5146890c4qg44n75"; depends=[EBImage flowCore ggplot2 hexbin vegan]; };
-  flowClean = derive2 { name="flowClean"; version="1.40.0"; sha256="0983l1anrnbrmrmkw527m4w39dgbxsmwrmbvpb99sbzxfvyjj00a"; depends=[bit changepoint flowCore sfsmisc]; };
-  flowClust = derive2 { name="flowClust"; version="3.40.0"; sha256="1xg0hdxh0c1c1wc6d8gcynq8168hi61c3gjdf1223qvqwc39nsby"; depends=[Biobase BiocGenerics flowCore graph]; };
-  flowCore = derive2 { name="flowCore"; version="2.14.2"; sha256="1q47c6pyvcglxs1qga2814b7i84kmm5sncsnl0fhpa9zhx1sjka5"; depends=[BH Biobase BiocGenerics cpp11 cytolib matrixStats Rcpp RProtoBufLib S4Vectors]; };
-  flowCut = derive2 { name="flowCut"; version="1.12.0"; sha256="08n0rir4yhrq490assxzm9v70ydwcasnph0ib5kdz8iq4529an60"; depends=[Cairo e1071 flowCore flowDensity]; };
-  flowCyBar = derive2 { name="flowCyBar"; version="1.38.0"; sha256="0zcq9qw583q4583k6d0lz01qzbsfvwnvwq3bymn9494n25p64ad1"; depends=[gplots vegan]; };
-  flowDensity = derive2 { name="flowDensity"; version="1.36.1"; sha256="0w2msvkgm4j1jy397zxpcri77y1fip42yq20sd8d8z66qwmi1fg2"; depends=[car flowCore flowViz gplots polyclip]; };
-  flowFP = derive2 { name="flowFP"; version="1.60.0"; sha256="0d6q253ix0x8s6x4mky6cpa43i3dmpgfwx0v215g0r3sjk8g337m"; depends=[Biobase BiocGenerics flowCore flowViz]; };
-  flowGate = derive2 { name="flowGate"; version="1.2.0"; sha256="0liw8fyssd0x9isd92m4b1bv2p059c8x1mri8byrvc6la9lqf69m"; depends=[BiocManager dplyr flowCore flowWorkspace ggcyto ggplot2 purrr rlang shiny tibble]; };
-  flowGraph = derive2 { name="flowGraph"; version="1.10.0"; sha256="1sjnr15qvz3yh455gs3y32xfq1cvzwr41rswmp9ampk4rkayh8nz"; depends=[data_table effsize furrr future ggiraph ggplot2 ggrepel gridExtra htmlwidgets igraph Matrix matrixStats purrr Rdpack stringi stringr visNetwork]; };
-  flowMatch = derive2 { name="flowMatch"; version="1.38.0"; sha256="1vvww8ajjzlfqhsgf9if4zszmnv9ink9rnhw0bgw4p6j89j0mb1h"; depends=[Biobase flowCore Rcpp]; };
-  flowMeans = derive2 { name="flowMeans"; version="1.62.0"; sha256="06n35c5fdkd3l8d5q8a23yslanirwhbf07b4f0zmf9a43zi642bv"; depends=[Biobase feature flowCore rrcov]; };
-  flowMerge = derive2 { name="flowMerge"; version="2.50.0"; sha256="00b7vpqlc583jfkkxyx8hbc7y9yvbadizyinzsq6zj6szzja5myb"; depends=[feature flowClust flowCore foreach graph Rgraphviz rrcov snow]; };
-  flowPeaks = derive2 { name="flowPeaks"; version="1.48.0"; sha256="1yzszarb14pw1lrqali5ws5l8zg0dksnn27x1mwxjb4cgqyazfl4"; depends=[]; };
-  flowPloidy = derive2 { name="flowPloidy"; version="1.28.0"; sha256="1rpmarsfp2p96kfa713f74242mawgfa1xkgb5hnynrf3q54s6y1h"; depends=[car caTools flowCore knitr minpack_lm rmarkdown shiny]; };
-  flowPlots = derive2 { name="flowPlots"; version="1.50.0"; sha256="1ldqgkmcrl1d021g5wcn366dgkjy221hiiyvs96il1zk7854rj4s"; depends=[]; };
-  flowSpecs = derive2 { name="flowSpecs"; version="1.16.0"; sha256="0da4xy4cqfwha731k3wxw97bx2jjikc689w1r17rna8vky2kb8yc"; depends=[Biobase BiocGenerics BiocParallel flowCore ggplot2 reshape2 zoo]; };
-  flowStats = derive2 { name="flowStats"; version="4.14.1"; sha256="1q4m6arasq60w0x24qjxbfckfgcpfk428fca733i0q2mgv1mll05"; depends=[Biobase BiocGenerics clue cluster corpcor fda flowCore flowViz flowWorkspace KernSmooth ks lattice MASS mnormt ncdfFlow RColorBrewer rrcov]; };
-  flowTime = derive2 { name="flowTime"; version="1.26.0"; sha256="137885mixx11wv05v258wgzppfqbars2kyzgh7m6kf38q8asx2yj"; depends=[dplyr flowCore magrittr plyr rlang tibble]; };
-  flowTrans = derive2 { name="flowTrans"; version="1.54.0"; sha256="0qfvb3gyx919w5zxaj54apm9cd754klzq4nqd1q4w5z81abhxizz"; depends=[flowClust flowCore flowViz]; };
-  flowVS = derive2 { name="flowVS"; version="1.34.0"; sha256="19jlpwxjif9nmci914pdfw9g6ik58aaswj7f3pvzisyby3zxxdqs"; depends=[flowCore flowStats flowViz]; };
-  flowViz = derive2 { name="flowViz"; version="1.66.0"; sha256="1hn021p2220a47qzlya8qabc9xgmxk9gcs505m7wx6gx6ysdn418"; depends=[Biobase flowCore hexbin IDPmisc KernSmooth lattice latticeExtra MASS RColorBrewer]; };
-  flowWorkspace = derive2 { name="flowWorkspace"; version="4.14.3"; sha256="07hnzvzis6425j5kabdrp49wicd331k7kmkk2r7ydchxxlndz3ww"; depends=[BH Biobase BiocGenerics cpp11 cytolib data_table DelayedArray dplyr flowCore ggplot2 graph matrixStats ncdfFlow RBGL Rgraphviz Rhdf5lib RProtoBufLib S4Vectors scales XML]; };
-  flowcatchR = derive2 { name="flowcatchR"; version="1.36.0"; sha256="0yp4bic5150in52dkzpf7x5w3hzbg058wbnanhh4p53mm9drwmy6"; depends=[abind BiocParallel colorRamps EBImage plotly shiny]; };
-  fmcsR = derive2 { name="fmcsR"; version="1.44.0"; sha256="17il9mi1iagl474ia1lz0ajx1wq67jw5famkr1fmjlis8ymw8hnd"; depends=[BiocGenerics ChemmineR RUnit]; };
-  fmrs = derive2 { name="fmrs"; version="1.12.0"; sha256="1qsp7rwpnhb0dmjhcjv2qwvyvrrdf1pnnigddq9k9s13lk6nd5ba"; depends=[survival]; };
-  fobitools = derive2 { name="fobitools"; version="1.10.0"; sha256="13kd2bzm8w3h23d1289q3zc5c3fz8pchhp2c301qx4b24ip17s09"; depends=[clisymbols crayon dplyr fgsea ggplot2 ggraph magrittr ontologyIndex purrr RecordLinkage stringr textclean tictoc tidygraph tidyr vroom]; };
-  frenchFISH = derive2 { name="frenchFISH"; version="1.14.0"; sha256="00z60wd14fzdcn3j9893j8n06w1ng4vl4wkwln6qnsi4pkbq7k09"; depends=[MCMCpack NHPoisson]; };
-  frma = derive2 { name="frma"; version="1.54.0"; sha256="0m1d548shx0lwnhbv6sfg6qx777kd24nr4lhcrnkyag842rr6b97"; depends=[affy Biobase BiocGenerics DBI MASS oligo oligoClasses preprocessCore]; };
-  frmaTools = derive2 { name="frmaTools"; version="1.54.0"; sha256="0zwi4fbdz0znav1ac00kz4lh63jksdp6vrz1mfmk2bgmwgrf7npx"; depends=[affy Biobase DBI preprocessCore]; };
-  funtooNorm = derive2 { name="funtooNorm"; version="1.26.0"; sha256="1g6xja6n10m5pv3z6giriia278b8805f4gkq5dfmc7qxm946s0gy"; depends=[GenomeInfoDb IlluminaHumanMethylation450kanno_ilmn12_hg19 IlluminaHumanMethylation450kmanifest matrixStats minfi pls]; };
-  gCrisprTools = derive2 { name="gCrisprTools"; version="2.8.0"; sha256="00zm8lj859xpd4dic7ac0834qvzpw82mfncz0sxj6vb7f9a247d9"; depends=[Biobase ComplexHeatmap ggplot2 limma rmarkdown RobustRankAggreg SummarizedExperiment]; };
-  gDNAx = derive2 { name="gDNAx"; version="1.0.2"; sha256="1c4s02pqzx5ny6q2fq6zda44vgl63asiaka7k3w9c63frdrl58zz"; depends=[AnnotationDbi AnnotationHub BiocGenerics BiocParallel Biostrings bitops GenomeInfoDb GenomicAlignments GenomicFeatures GenomicFiles GenomicRanges IRanges plotrix RColorBrewer Rsamtools S4Vectors SummarizedExperiment]; };
-  gDR = derive2 { name="gDR"; version="1.0.0"; sha256="0zg5jdyd1n3dxrwg80cywxd47m5acj9c8cx98jjp530h62mypld9"; depends=[gDRcore gDRimport gDRutils]; };
-  gDRcore = derive2 { name="gDRcore"; version="1.0.1"; sha256="09gs01hbmb7jpv1s40h8xinfzk2i6x7aw2kgy60cwllcb7z60ilc"; depends=[BiocParallel BumpyMatrix checkmate data_table futile_logger gDRutils MultiAssayExperiment purrr S4Vectors stringr SummarizedExperiment]; };
-  gDRimport = derive2 { name="gDRimport"; version="1.0.0"; sha256="1lwyn86c3ag3fg5fdd099mw9lkamydjh7jkrg9frz3a7r1s7x6j6"; depends=[assertthat BumpyMatrix checkmate CoreGx data_table futile_logger gDRutils magrittr MultiAssayExperiment openxlsx PharmacoGx readxl rio S4Vectors stringi SummarizedExperiment tibble XML yaml]; };
-  gDRstyle = derive2 { name="gDRstyle"; version="1.0.0"; sha256="17s9670w15ms001nps92b9vqa792a4hqg7as5b8l6pqlbcdb4g7m"; depends=[BiocCheck BiocManager desc git2r lintr pkgbuild rcmdcheck remotes rjson withr yaml]; };
-  gDRutils = derive2 { name="gDRutils"; version="1.0.0"; sha256="1wzl36zqkxhjr6n5g6cfgi3vn3p30wfpl83z2g18pzs312xx2sxh"; depends=[BiocParallel BumpyMatrix checkmate data_table drc jsonlite jsonvalidate magrittr MultiAssayExperiment S4Vectors stringr SummarizedExperiment]; };
-  gaga = derive2 { name="gaga"; version="2.48.0"; sha256="1fqhzbf59z511z838zd1g4xnzw4a6xlpssgvqbjxgx22l7iqgy1c"; depends=[Biobase coda EBarrays mgcv]; };
-  gage = derive2 { name="gage"; version="2.52.0"; sha256="0bm5hvy3cdcm46527w45mnnnk95qm28xzdk1m53615gh55ix4iy8"; depends=[AnnotationDbi GO_db graph KEGGREST]; };
-  gaggle = derive2 { name="gaggle"; version="1.70.0"; sha256="16jajl03nf8fk29vd4bkj4f1156258skkw3p884ad946ifvabznd"; depends=[graph rJava RUnit]; };
-  garfield = derive2 { name="garfield"; version="1.30.0"; sha256="01la01rgs3lfv29la514y5502chl62b66ji51nlmdb8zjhvfshaq"; depends=[]; };
-  gatom = derive2 { name="gatom"; version="1.0.0"; sha256="0yl88gbn85mpv2n70wgmnbi3wgh8vjhxvzd064azf2g0yj50mqn8"; depends=[BioNet data_table GGally ggplot2 htmltools htmlwidgets igraph intergraph mwcsr network plyr pryr shinyCyJS sna XML]; };
-  gcapc = derive2 { name="gcapc"; version="1.26.0"; sha256="0dlwp4ry8p0jrx3j2falz8inkqlvmlkri3x002gbrml4w6ghvjy1"; depends=[BiocGenerics Biostrings BSgenome GenomeInfoDb GenomicAlignments GenomicRanges IRanges MASS matrixStats Rsamtools S4Vectors]; };
-  gcatest = derive2 { name="gcatest"; version="2.2.0"; sha256="0hngq6fj86akm5fd4rzd31y06an4r00blcfwzb65b0wlqsg79gkv"; depends=[lfa]; };
-  gcrma = derive2 { name="gcrma"; version="2.74.0"; sha256="07ina8w8p5bm382v452i2wpmv90gvgli393lsgp7xy0h9in7h6yg"; depends=[affy affyio Biobase BiocManager Biostrings XVector]; };
-  gdsfmt = derive2 { name="gdsfmt"; version="1.38.0"; sha256="03qgiww523kijrkciln3fw3djn20rnvwz2j0i3p518h6fbl7vlpm"; depends=[]; };
-  geNetClassifier = derive2 { name="geNetClassifier"; version="1.42.0"; sha256="1k61aka780xmf1vhqm6zvzjr2626hv71f8gp1s81az939crxlrqd"; depends=[Biobase e1071 EBarrays minet]; };
-  gemini = derive2 { name="gemini"; version="1.16.0"; sha256="1c58kjvb9nps1ycgfkjv0i8rzkgv6q0rnz9av3yswvn9kah64gkd"; depends=[dplyr ggplot2 magrittr mixtools pbmcapply scales]; };
-  gemma_R = derive2 { name="gemma.R"; version="2.0.0"; sha256="1kcms1bzvkfkf080hm0y8d61v62vnczbwmsincw39xmnnlhga905"; depends=[assertthat Biobase bit64 data_table digest glue httr jsonlite lubridate magrittr memoise rappdirs rlang S4Vectors stringr SummarizedExperiment tibble tidyr]; };
-  genArise = derive2 { name="genArise"; version="1.78.0"; sha256="16b1gsdfr1r3yzinfj934igdc8rsn237wf55wwv4vb4f5b1y35g0"; depends=[locfit tkrplot xtable]; };
-  geneAttribution = derive2 { name="geneAttribution"; version="1.28.0"; sha256="0kkbxz3ig50afl1jhkxxlmsbzvkzqjv5mbankw1a9aqrj1dvnvn0"; depends=[BiocGenerics GenomeInfoDb GenomicFeatures GenomicRanges IRanges org_Hs_eg_db rtracklayer]; };
-  geneClassifiers = derive2 { name="geneClassifiers"; version="1.26.0"; sha256="07vzzcb8apxr5vx4gfqk1li2x7265yp5mbkmj23z0sfs4idmz97m"; depends=[Biobase BiocGenerics]; };
-  geneRecommender = derive2 { name="geneRecommender"; version="1.74.0"; sha256="1wpykqwld94grkza2f8fz7d0vlq64bvki3gcfyjz13xi5kb2s849"; depends=[Biobase]; };
-  geneRxCluster = derive2 { name="geneRxCluster"; version="1.38.0"; sha256="08niw9hvg1r255aajn7q5m7gm4ihjiiqbs7wxkpxb5rr8cvx8nlc"; depends=[GenomicRanges IRanges]; };
-  geneXtendeR = derive2 { name="geneXtendeR"; version="1.28.0"; sha256="0binfml9aa9fk2r0kj1w2dnmqlvw4s2s66vvrsqi1l566j19c668"; depends=[AnnotationDbi BiocStyle data_table dplyr GO_db networkD3 org_Rn_eg_db RColorBrewer rtracklayer SnowballC tm wordcloud]; };
-  genefilter = derive2 { name="genefilter"; version="1.84.0"; sha256="0q80z872d3z1jy69b53qxzvmshf5zx4qssmp4gj7fwdpfxj9qqjw"; depends=[annotate AnnotationDbi Biobase MatrixGenerics survival]; };
-  genefu = derive2 { name="genefu"; version="2.34.0"; sha256="0qynw8n6714pxwwfh33cqmp9lfp6jhz44l6pkkncd7zi1a64fmdv"; depends=[AIMS amap biomaRt iC10 impute limma mclust survcomp]; };
-  geneplast = derive2 { name="geneplast"; version="1.28.0"; sha256="10z2w652x9b3n7mjhj99ig3sclrk4h4j7vlrgv21bwy3fx6h25f2"; depends=[ape data_table igraph snow]; };
-  geneplotter = derive2 { name="geneplotter"; version="1.80.0"; sha256="0zvb84jlsvmr2dvwyy4xjqv353qrxpls0v2vz0nmj1q4m7lrpl1k"; depends=[annotate AnnotationDbi Biobase BiocGenerics lattice RColorBrewer]; };
-  genoCN = derive2 { name="genoCN"; version="1.54.0"; sha256="124za7wdmv76xv34syaspvdya5zi624yar5mp4pjxbwr5dcyxpgk"; depends=[]; };
-  genomation = derive2 { name="genomation"; version="1.34.0"; sha256="1vbpx187m5d5g307f4jiwyy1sw4jgj1s18622y3a458ixv540zkc"; depends=[Biostrings BSgenome data_table GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 gridBase impute IRanges matrixStats plotrix plyr Rcpp readr reshape2 Rsamtools rtracklayer S4Vectors seqPattern]; };
-  genomeIntervals = derive2 { name="genomeIntervals"; version="1.58.0"; sha256="029d53kbscvj39c7kpvd7w6fyyv324ymn38ar4l50g75j0hkj58r"; depends=[BiocGenerics GenomeInfoDb GenomicRanges intervals IRanges S4Vectors]; };
-  genomes = derive2 { name="genomes"; version="3.32.0"; sha256="03ygc3xp7z1likl79lk01554y4f52rr4285vmjvdnvwmxx3zfk85"; depends=[curl readr]; };
-  genomicInstability = derive2 { name="genomicInstability"; version="1.8.0"; sha256="14l7ixzp8wv9fb5pg5ldqsvn8c7dz8rjxrmy1pcc9qjk06m758ql"; depends=[checkmate mixtools SummarizedExperiment]; };
-  gep2pep = derive2 { name="gep2pep"; version="1.22.0"; sha256="0m9s8jj6xknbidrzpl2xf9xaq5w72dk09ils7jkw86zsiscr8l20"; depends=[Biobase digest foreach GSEABase iterators repo rhdf5 XML]; };
-  gespeR = derive2 { name="gespeR"; version="1.34.0"; sha256="1cpin91yha24maawpzqvxqir8s65v14rf1cl3ikiwcrwawq89f2a"; depends=[Biobase biomaRt cellHTS2 doParallel dplyr foreach ggplot2 glmnet Matrix reshape2]; };
-  getDEE2 = derive2 { name="getDEE2"; version="1.12.0"; sha256="1h433vz9nrsr7v26davf8wmqz6z9qckqxi8884yfgr8234z9dkk8"; depends=[htm2txt SummarizedExperiment]; };
-  geva = derive2 { name="geva"; version="1.10.0"; sha256="0gk8ypzhixjp0nx4ww7xi39fgmid0yng6h3qsh5bl198j4ib1r3r"; depends=[dbscan fastcluster matrixStats]; };
-  gg4way = derive2 { name="gg4way"; version="1.0.2"; sha256="1dy0kb2lvgsjx1pb7xys468cyppn13cm7c96z795gzy9w1nippig"; depends=[DESeq2 dplyr edgeR ggplot2 ggrepel glue janitor limma magrittr purrr rlang scales stringr tibble tidyr]; };
-  ggbio = derive2 { name="ggbio"; version="1.50.0"; sha256="1chs58ifpwz4crcl5ymnb8ah3wf2jrn9lla3ljsywqiqn0r3i1am"; depends=[AnnotationDbi AnnotationFilter Biobase BiocGenerics Biostrings biovizBase BSgenome ensembldb GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges GGally ggplot2 gridExtra gtable Hmisc IRanges OrganismDbi reshape2 rlang Rsamtools rtracklayer S4Vectors scales SummarizedExperiment VariantAnnotation]; };
-  ggcyto = derive2 { name="ggcyto"; version="1.30.2"; sha256="0ig23b6apyp35rxxiqd5nw46yjm2784njlafsgw98akhl8ck0g7n"; depends=[data_table flowCore flowWorkspace ggplot2 gridExtra hexbin ncdfFlow plyr RColorBrewer rlang scales]; };
-  ggkegg = derive2 { name="ggkegg"; version="1.0.13"; sha256="0bm437braigzraaxd4im7qnvhylc5b09qvs1yqnjmfr5jycihjfd"; depends=[AnnotationDbi BiocFileCache data_table dplyr GetoptLong ggplot2 ggraph gtable igraph magick org_Hs_eg_db patchwork shadowtext stringr tibble tidygraph XML]; };
-  ggmanh = derive2 { name="ggmanh"; version="1.6.0"; sha256="1j2qi5rp6z3442vs2r198swjz4mvf8lnvssf42jq86faan9jx10h"; depends=[gdsfmt ggplot2 ggrepel RColorBrewer rlang scales SeqArray]; };
-  ggmsa = derive2 { name="ggmsa"; version="1.8.0"; sha256="1arznacrg8x8cq5k8gibnmkf1gc7bqxj5syvv0vbfibfplmschsi"; depends=[aplot Biostrings dplyr ggalt ggforce ggplot2 ggtree magrittr R4RNA RColorBrewer seqmagick statebins tidyr]; };
-  ggsc = derive2 { name="ggsc"; version="1.0.2"; sha256="18s8ml11ikw9f223fv4glz7c0hizdvqks0z0nz7vbfbhc43nv2p5"; depends=[cli dplyr ggplot2 Rcpp RcppArmadillo RcppParallel rlang scattermore Seurat SingleCellExperiment SummarizedExperiment tibble tidydr tidyr yulab_utils]; };
-  ggspavis = derive2 { name="ggspavis"; version="1.8.1"; sha256="060x7r74d23fpf782xs8306pfbyfywghbds5mw5i8i1wcc7ifxrx"; depends=[ggplot2 ggside SingleCellExperiment SpatialExperiment SummarizedExperiment]; };
-  ggtree = derive2 { name="ggtree"; version="3.10.1"; sha256="1p475vh567q4szb8hy2qk72pvqh5rlbyqfjcdd0i83fa2y4bi31d"; depends=[ape aplot cli dplyr ggfun ggplot2 magrittr purrr rlang scales tidyr tidytree treeio yulab_utils]; };
-  ggtreeDendro = derive2 { name="ggtreeDendro"; version="1.4.0"; sha256="0gnznbv4959mp76wdz9ma64xina97mb7ndzg2vjni0cr9p1prrxc"; depends=[ggplot2 ggtree tidytree]; };
-  ggtreeExtra = derive2 { name="ggtreeExtra"; version="1.12.0"; sha256="0q8k81mq5q9fym4zyrkzapgyww23lkxpkyj2s9r1y0ciclk90zdc"; depends=[cli ggnewscale ggplot2 ggtree magrittr rlang tidytree]; };
-  girafe = derive2 { name="girafe"; version="1.54.0"; sha256="09sax6vqfrzj17q6szzszxn1qhhsv4jkryv3sbijxbk45scmjrj4"; depends=[Biobase BiocGenerics Biostrings genomeIntervals intervals IRanges Rsamtools S4Vectors ShortRead]; };
-  glmGamPoi = derive2 { name="glmGamPoi"; version="1.14.3"; sha256="0lbsavr9mhka8s7i056h4jjb1v36v3sshrhdz74n8qadm7fy59l5"; depends=[beachmat BiocGenerics DelayedArray DelayedMatrixStats HDF5Array MatrixGenerics matrixStats Rcpp RcppArmadillo rlang SingleCellExperiment SummarizedExperiment vctrs]; };
-  glmSparseNet = derive2 { name="glmSparseNet"; version="1.20.1"; sha256="09cma62cj9wpgd3pm2j9azj7wvwfnk13715qnlzrk1ika4qkzl9l"; depends=[biomaRt digest dplyr forcats futile_logger futile_options ggplot2 glmnet glue httr Matrix MultiAssayExperiment readr reshape2 stringr SummarizedExperiment survminer]; };
-  globalSeq = derive2 { name="globalSeq"; version="1.30.0"; sha256="1b0qjcwrm8svck7ykz9h2vrcc06cag2dczxlzd13arqhr4d1a6p7"; depends=[]; };
-  globaltest = derive2 { name="globaltest"; version="5.56.0"; sha256="14kcsx1gynl0fijq67qb5zvfxn4yqj8809p7535y455rd0vddp5r"; depends=[annotate AnnotationDbi Biobase survival]; };
-  gmapR = derive2 { name="gmapR"; version="1.44.0"; sha256="08l0937r0zzb8n2h7c8ydia9c63rng4pw63pbwm4i9d8cbzp0hcs"; depends=[Biobase BiocGenerics BiocParallel Biostrings BSgenome GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges IRanges Rsamtools rtracklayer S4Vectors VariantAnnotation]; };
-  gmoviz = derive2 { name="gmoviz"; version="1.14.0"; sha256="070r948gm4i5l4mnskl2agmfjpihvjpw2zgdji2z2dp0lh5d4bwn"; depends=[BiocGenerics Biostrings circlize colorspace ComplexHeatmap GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges gridBase IRanges pracma Rsamtools rtracklayer S4Vectors]; };
-  goProfiles = derive2 { name="goProfiles"; version="1.64.0"; sha256="14h8phx5qp8xismvf290bja4wv4g71k24iiv2nmqsac5myr402kw"; depends=[AnnotationDbi Biobase CompQuadForm GO_db stringr]; };
-  goSTAG = derive2 { name="goSTAG"; version="1.26.0"; sha256="0pnqg3yki19xv3icqqayw75wpq3d5cx0z97qspmh9c3i5p05341f"; depends=[AnnotationDbi biomaRt GO_db memoise]; };
-  goSorensen = derive2 { name="goSorensen"; version="1.4.0"; sha256="1q6isry70rczq4dj5ibwf9xzw7vkcws57h9p6dr16l2ij6b524dx"; depends=[clusterProfiler GO_db goProfiles org_Hs_eg_db stringr]; };
-  goTools = derive2 { name="goTools"; version="1.76.0"; sha256="1qfl4617zwrl7nd56q1flzhzh9shhcs49m8s3327bpz0xpvc56vc"; depends=[AnnotationDbi GO_db]; };
-  goseq = derive2 { name="goseq"; version="1.54.0"; sha256="0waw5hhxh8yab8fqw9gnd3l39s6wkmp8690rhs4llarpqz6ssrhk"; depends=[AnnotationDbi BiasedUrn BiocGenerics geneLenDataBase GO_db mgcv]; };
-  gpls = derive2 { name="gpls"; version="1.74.0"; sha256="1z6mdqcjwqby2hv8x9380q9qsm9y2kqaqln9bqxcrsxj3bpgwsj0"; depends=[]; };
-  gpuMagic = derive2 { name="gpuMagic"; version="1.18.0"; sha256="0x5d94imcxg4m5whyhmlxgixxcn4qmh3jfm7kplhi78fb6abmrql"; depends=[BiocGenerics Deriv DescTools digest pryr Rcpp stringr]; };
-  granulator = derive2 { name="granulator"; version="1.10.0"; sha256="0sv8r5sqxay3f0g59kgabrdjzv0j7czs10sm2c9k18fjs6cn08h1"; depends=[cowplot dplyr dtangle e1071 epiR ggplot2 ggplotify limSolve magrittr MASS nnls pheatmap purrr rlang tibble tidyr]; };
-  graper = derive2 { name="graper"; version="1.18.0"; sha256="0ghr5dfm7iv9hhjlmzcshi0g3w5m4iikqrm3sb7kxnb364gpj27b"; depends=[BH cowplot ggplot2 Matrix matrixStats Rcpp RcppArmadillo]; };
-  graph = derive2 { name="graph"; version="1.80.0"; sha256="0p7g7ykpkngbs3h1dsackfy93l8lvc301lr64ffsiaw60gllcx01"; depends=[BiocGenerics]; };
-  graphite = derive2 { name="graphite"; version="1.48.0"; sha256="1h8j10jx02zsxs6rzids3gy4xchdhgzkifa5grrfbn8faf9ycy2n"; depends=[AnnotationDbi graph httr purrr rappdirs rlang]; };
-  groHMM = derive2 { name="groHMM"; version="1.36.0"; sha256="15ibdbpj7vqypxfnp2w06w9lync11z3azzss6s97xhadkgsbw4vq"; depends=[GenomeInfoDb GenomicAlignments GenomicRanges IRanges MASS rtracklayer S4Vectors]; };
-  gscreend = derive2 { name="gscreend"; version="1.16.1"; sha256="1ghdv2a3arpx075866zizinynhi2037qsdz6j5b0qyhr4gv9l65h"; depends=[BiocParallel fGarch nloptr SummarizedExperiment]; };
-  gsean = derive2 { name="gsean"; version="1.22.0"; sha256="15rargfrhgrxaad4sza6w80mlgmrwq18yzhi99282rzm1s7rxd5r"; depends=[fgsea PPInfer]; };
-  gtrellis = derive2 { name="gtrellis"; version="1.34.0"; sha256="022wn0l2wfizlz6d5plkphjsjbmxw2wcvxrzr4vanczjzzyxv5c5"; depends=[circlize GenomicRanges GetoptLong IRanges]; };
-  gwascat = derive2 { name="gwascat"; version="2.34.0"; sha256="028n8v1pgkr1q5s9wslql8ayk1cbx6a9a2rjka9pdwz6rq1iyagy"; depends=[AnnotationDbi AnnotationHub BiocFileCache Biostrings GenomeInfoDb GenomicFeatures GenomicRanges IRanges readr S4Vectors snpStats VariantAnnotation]; };
-  gwasurvivr = derive2 { name="gwasurvivr"; version="1.20.0"; sha256="0wdp5zvf0iawfc2y16hh5p9cag86m8g1sd6q0l0wha5i1w84yzcd"; depends=[GWASTools matrixStats SNPRelate SummarizedExperiment survival VariantAnnotation]; };
-  h5vc = derive2 { name="h5vc"; version="2.36.0"; sha256="0h3vffm1yadryxqjz6x7lapx9ysmmmqvc6m1ayw3cfzswkqfd86z"; depends=[abind BatchJobs BiocParallel Biostrings GenomeInfoDb GenomicRanges ggplot2 gridExtra h5vcData IRanges reshape rhdf5 Rhtslib Rsamtools S4Vectors]; };
-  hapFabia = derive2 { name="hapFabia"; version="1.44.0"; sha256="0mmpwbpi2z8cj7xssxrwbyzcr47szywf0bm9d9vnwkl0z6awmxfz"; depends=[Biobase fabia]; };
-  hca = derive2 { name="hca"; version="1.10.1"; sha256="0xb7lhdsxjzjyxgzk5qxh6nlzxz2gdrv1pi72gq72zrdsnfzn4y7"; depends=[BiocFileCache digest dplyr DT httr jsonlite miniUI readr shiny tibble tidyr]; };
-  heatmaps = derive2 { name="heatmaps"; version="1.26.0"; sha256="1b52a0rlziaxwbsxmvd43g4ilr5n1vx6gz4azsnlp5hpmw524mdq"; depends=[BiocGenerics Biostrings EBImage GenomeInfoDb GenomicRanges IRanges KernSmooth Matrix plotrix RColorBrewer]; };
-  hermes = derive2 { name="hermes"; version="1.6.1"; sha256="1a7pn5cg773v2m0mk5611ilfyr1mbnl9ami2j5wpfliq44iv16ny"; depends=[assertthat Biobase BiocGenerics biomaRt checkmate circlize ComplexHeatmap DESeq2 dplyr edgeR EnvStats forcats GenomicRanges ggfortify ggplot2 ggrepel IRanges lifecycle limma magrittr matrixStats MultiAssayExperiment purrr R6 Rdpack rlang S4Vectors SummarizedExperiment tidyr]; };
-  hiAnnotator = derive2 { name="hiAnnotator"; version="1.36.0"; sha256="072nhfbzwkl26nrzrfgph56ygjwyldj1qfviv7xj3bpqcz6fhq9y"; depends=[BSgenome dplyr foreach GenomicRanges ggplot2 iterators rtracklayer scales]; };
-  hiReadsProcessor = derive2 { name="hiReadsProcessor"; version="1.38.0"; sha256="0dkg4hq43radr7yhyh9hhjyib3220rc0s1v4kzxaxxl05ylj92ds"; depends=[BiocGenerics BiocParallel Biostrings dplyr GenomicAlignments GenomicRanges hiAnnotator readxl sonicLength]; };
-  hicVennDiagram = derive2 { name="hicVennDiagram"; version="1.0.2"; sha256="06rg50r2p02m6zhxn2hni8qignwh6p65qqi4p4pniwh11y8w0c6s"; depends=[ComplexUpset eulerr ggplot2 htmlwidgets InteractionSet reshape2 rtracklayer S4Vectors svglite]; };
-  hierGWAS = derive2 { name="hierGWAS"; version="1.32.0"; sha256="0g8lkymr18jfvswwi0qfv44vwzpf3pzjs61zlqn67yr6jpsak34g"; depends=[fastcluster fmsb glmnet]; };
-  hierinf = derive2 { name="hierinf"; version="1.20.0"; sha256="1ahb8ijyghz10zq71dqfscmwbwb3i20b3ai5l3nyja78616viprf"; depends=[fmsb glmnet]; };
-  hipathia = derive2 { name="hipathia"; version="3.2.0"; sha256="1lq0xcwjvgcm8l2kzaxf44ng1h57i63xylyv813pq9szma3zl8bx"; depends=[AnnotationHub coin DelayedArray dplyr ggplot2 ggpubr igraph limma matrixStats MetBrewer MultiAssayExperiment preprocessCore reshape2 S4Vectors servr SummarizedExperiment tibble visNetwork]; };
-  hmdbQuery = derive2 { name="hmdbQuery"; version="1.22.0"; sha256="0x50m4i7drygj340j5jbcfv6ddal8fab2afdrr5wzax8xn1ygmm9"; depends=[S4Vectors XML]; };
-  hoodscanR = derive2 { name="hoodscanR"; version="1.0.0"; sha256="1gyzb6vfzg95yc7w05z5apgbyk6al2k4mr2m83k0p19niy9v7ryd"; depends=[circlize ComplexHeatmap ggplot2 knitr RANN Rcpp rlang rmarkdown scico SpatialExperiment SummarizedExperiment]; };
-  hopach = derive2 { name="hopach"; version="2.62.0"; sha256="1v0rqk7757l8samyqd05dpplg6pdrss4nk7fi2hwfkj1vf5wz14s"; depends=[Biobase BiocGenerics cluster]; };
-  hpar = derive2 { name="hpar"; version="1.44.0"; sha256="19jdy0q3larl5lxjzqlnyynq9rya56fyvf1yx9pwsyag1c148z08"; depends=[ExperimentHub]; };
-  hummingbird = derive2 { name="hummingbird"; version="1.12.0"; sha256="1hpbdmdymlnpdqnpq3y4iw9i44vgf399862xw50sjhm7r4d6p3hh"; depends=[GenomicRanges IRanges Rcpp SummarizedExperiment]; };
-  hypeR = derive2 { name="hypeR"; version="2.0.0"; sha256="0axkk4qbj29g2f332qmi0wmsbkh9p3sykn7l1r9wamf46dfc1m8z"; depends=[BiocStyle dplyr ggforce ggplot2 htmltools httr igraph kableExtra magrittr msigdbr openxlsx purrr R6 reactable reshape2 rlang rmarkdown scales shiny stringr visNetwork]; };
-  hyperdraw = derive2 { name="hyperdraw"; version="1.54.0"; sha256="1lgfpw9f7095lgk46gdpxq3z52c24xw4ajl7yid3pcgw19bfcgk5"; depends=[graph hypergraph Rgraphviz]; };
-  hypergraph = derive2 { name="hypergraph"; version="1.74.0"; sha256="16bjjfzcndjfqsywzw2cn551fgqlnll2gi975w0qqxhkh3jssgmi"; depends=[graph]; };
-  iASeq = derive2 { name="iASeq"; version="1.46.0"; sha256="0y4lq8s9dr9jjsipfdf126g27065k5hg2vvj3q72jwqmkhymdw1m"; depends=[]; };
-  iBBiG = derive2 { name="iBBiG"; version="1.46.0"; sha256="15m83fy8l3qbwbg35935q4w1kbwv0ki4pwdikxfaqs99xx915ajs"; depends=[ade4 biclust xtable]; };
-  iBMQ = derive2 { name="iBMQ"; version="1.42.0"; sha256="1hc6ki98b8n0x46psjz46lk8rdlm5rj7plq8fd6fv9z0xix898iq"; depends=[Biobase ggplot2]; };
-  iCARE = derive2 { name="iCARE"; version="1.30.0"; sha256="0qh63swkzsyi8cdabil49mbgcz9ry26vmjkrpc0jcqyqjsihxs27"; depends=[gtools Hmisc plotrix]; };
-  iCNV = derive2 { name="iCNV"; version="1.22.0"; sha256="11d0pmn0ywqg2gvwjn7yv3xdi9i1fpfpnbzh31jws0629fw5v3h9"; depends=[CODEX data_table dplyr fields ggplot2 rlang tidyr truncnorm]; };
-  iCOBRA = derive2 { name="iCOBRA"; version="1.30.0"; sha256="1f0j10wha60vv592vsnv2pcqwz7g2fkld8pnar9rpwwb7qd0wcnf"; depends=[dplyr DT ggplot2 limma markdown reshape2 ROCR scales shiny shinyBS shinydashboard UpSetR]; };
-  iCheck = derive2 { name="iCheck"; version="1.32.0"; sha256="1x4f5wacsgjl4lq93gav0ljc5xgqra65dzrw9y1zzw5cm4z33wyq"; depends=[affy Biobase GeneSelectMMD gplots limma lmtest lumi MASS preprocessCore randomForest rgl scatterplot3d]; };
-  iChip = derive2 { name="iChip"; version="1.56.0"; sha256="07z5lcfy89mmsjnnx44lwfds3bim7z050sr4fdzy2sixbfbypxzy"; depends=[limma]; };
-  iClusterPlus = derive2 { name="iClusterPlus"; version="1.38.0"; sha256="0p56w6431jg921416dkyiykccvr7alq6x6r1gcx5d9hkcpyncks1"; depends=[]; };
-  iGC = derive2 { name="iGC"; version="1.32.0"; sha256="0gvb1cvhmcz4vnhlb2s0nsp71jr98irdqb5mchd5rpk0jysg24dr"; depends=[data_table plyr]; };
-  iNETgrate = derive2 { name="iNETgrate"; version="1.0.0"; sha256="1zagf0i7akv40jf7inypbxrzdmjg2n26lckqcmiajivb7kfzv1pp"; depends=[BiocStyle caret GenomicRanges glmnet gplots Homo_sapiens igraph matrixStats minfi Pigengene Rfast SummarizedExperiment survival tidyr tidyselect WGCNA]; };
-  iPAC = derive2 { name="iPAC"; version="1.46.0"; sha256="0bn7lfg6mp38y9n10fcdcqak9l4hi3prcmky64gxclbl5cqnan68"; depends=[Biostrings gdata multtest scatterplot3d]; };
-  iPath = derive2 { name="iPath"; version="1.8.0"; sha256="09jkl14wgzq0zfj74vivavyz00lx8zxyml62zf3nk8nmfwpckj2k"; depends=[BiocParallel ggplot2 ggpubr matrixStats mclust Rcpp RcppArmadillo survival survminer]; };
-  iSEE = derive2 { name="iSEE"; version="2.14.0"; sha256="0khysw2nj83sn2vgzjn76qrqfkiqwn5yc11c6x5l2zpllvzfrcj4"; depends=[BiocGenerics circlize colourpicker ComplexHeatmap DT ggplot2 ggrepel igraph mgcv rintrojs S4Vectors shiny shinyAce shinydashboard shinyjs shinyWidgets SingleCellExperiment SummarizedExperiment vipor viridisLite]; };
-  iSEEde = derive2 { name="iSEEde"; version="1.0.0"; sha256="15926dl2ricrfa43pknm1xi0lp4808grih3d27i9hnlxzxvhbhlw"; depends=[DESeq2 edgeR iSEE S4Vectors shiny SummarizedExperiment]; };
-  iSEEhex = derive2 { name="iSEEhex"; version="1.4.0"; sha256="1frjayfr9rmwf2ank9n8slbkzcyk90azism88262gkypxk2g7npr"; depends=[ggplot2 hexbin iSEE shiny SummarizedExperiment]; };
-  iSEEhub = derive2 { name="iSEEhub"; version="1.4.0"; sha256="16889vcdjbd2sxshqxzkdnza1x269dm2h12985qrbkk1ja3bdpzw"; depends=[AnnotationHub BiocManager DT ExperimentHub iSEE rintrojs S4Vectors shiny shinydashboard shinyjs SingleCellExperiment SummarizedExperiment]; };
-  iSEEindex = derive2 { name="iSEEindex"; version="1.0.0"; sha256="1qp3nnxn020frf4gjx1327dl60d2gl06qfallaaxcas14jgj7p1d"; depends=[BiocFileCache DT iSEE paws_storage rintrojs shiny shinydashboard shinyjs SingleCellExperiment stringr SummarizedExperiment urltools]; };
-  iSEEpathways = derive2 { name="iSEEpathways"; version="1.0.0"; sha256="0avi7g37px8p1h0wp7q63hnp47gph0yhc694p0gfzl24kvnmshgf"; depends=[ggplot2 iSEE S4Vectors shiny shinyWidgets SummarizedExperiment]; };
-  iSEEu = derive2 { name="iSEEu"; version="1.14.0"; sha256="0xg6b9cpxjacmhjbzmjql2ywjfq2g441v2b7f2cj4gqx6flajv70"; depends=[colourpicker DT ggplot2 IRanges iSEE iSEEhex S4Vectors shiny shinyAce SingleCellExperiment SummarizedExperiment]; };
-  iSeq = derive2 { name="iSeq"; version="1.54.0"; sha256="1mc6xl5jyvllq9w6k67rz10hapg86fw0jwjcy4f5m8p5w12lh3rg"; depends=[]; };
-  iasva = derive2 { name="iasva"; version="1.20.0"; sha256="1q5z3qgrv16nlqars0ziwyb116bykcd5jkkqm2lvxbw6yyam6pk2"; depends=[BiocParallel cluster irlba SummarizedExperiment]; };
-  ibh = derive2 { name="ibh"; version="1.50.0"; sha256="1jppg7r2xckw6pki3vj0j46v19ryhqsr05rk43vjfz876myprnkd"; depends=[simpIntLists]; };
-  icetea = derive2 { name="icetea"; version="1.20.0"; sha256="0lrf0mdmqyfr5zmi10rrgn31g63sh4a2wi6svi406pi656z4rzhr"; depends=[BiocGenerics BiocParallel Biostrings csaw DESeq2 edgeR GenomicAlignments GenomicFeatures GenomicRanges ggplot2 IRanges limma Rsamtools rtracklayer S4Vectors ShortRead SummarizedExperiment TxDb_Dmelanogaster_UCSC_dm6_ensGene VariantAnnotation]; };
-  ideal = derive2 { name="ideal"; version="1.26.0"; sha256="0k1wxfww3dgfpfllpb1xxn1yjwmrkwf907njg9l85gm997smvdf9"; depends=[AnnotationDbi base64enc BiocParallel DESeq2 dplyr DT GenomicRanges ggplot2 ggrepel GO_db goseq GOstats gplots heatmaply IHW IRanges knitr limma pcaExplorer pheatmap plotly rentrez rintrojs rlang rmarkdown S4Vectors shiny shinyAce shinyBS shinydashboard stringr SummarizedExperiment topGO UpSetR]; };
-  idiogram = derive2 { name="idiogram"; version="1.78.0"; sha256="06x2h5m5i72jp9r7f5c40cqblb5mxapka4vcih6z0638xalkay74"; depends=[annotate Biobase plotrix]; };
-  idpr = derive2 { name="idpr"; version="1.12.0"; sha256="0q7vk77s9q75a6k3rhcg06ywp611dyfi9hsgr4rzrwi1qfr943ma"; depends=[Biostrings dplyr ggplot2 jsonlite magrittr plyr rlang]; };
-  idr2d = derive2 { name="idr2d"; version="1.16.0"; sha256="06vvc590i73zkm1scq3zgyvc1qdx8s7h0w12v27axacw551639n0"; depends=[dplyr futile_logger GenomeInfoDb GenomicRanges ggplot2 idr IRanges magrittr reticulate scales stringr]; };
-  igvR = derive2 { name="igvR"; version="1.22.0"; sha256="0cjilipjcjkgs0gc9lwdzlr2qrv3qyd0vv67awb18algcfsl93mk"; depends=[BiocGenerics BrowserViz GenomicAlignments GenomicRanges httpuv httr RColorBrewer rtracklayer VariantAnnotation]; };
-  illuminaio = derive2 { name="illuminaio"; version="0.44.0"; sha256="15i47b995dqh0dlg60lss5vgj31as3cwhb2z5fqbnknx3lj7s6rl"; depends=[base64]; };
-  imcRtools = derive2 { name="imcRtools"; version="1.8.0"; sha256="06hca7ri6qigpr2wbiy7pwfxpx915dkccnsiyd5n76awv5rww8w2"; depends=[abind BiocNeighbors BiocParallel concaveman cytomapper data_table distances dplyr DT EBImage ggplot2 ggraph igraph magrittr MatrixGenerics pheatmap readr RTriangle S4Vectors scuttle sf SingleCellExperiment SpatialExperiment stringr SummarizedExperiment tidygraph tidyselect viridis vroom]; };
-  immunoClust = derive2 { name="immunoClust"; version="1.34.0"; sha256="1lm62kzf5w1z52ii92mrh6hq6py7b32rrxxwgbw0iqw2329nwqdz"; depends=[flowCore lattice]; };
-  immunotation = derive2 { name="immunotation"; version="1.10.0"; sha256="10k5gsi1ijddyp61xsc4301r264ns5hshsf88vi4scv6lhha8s69"; depends=[curl ggplot2 maps ontologyIndex readr rlang rvest stringr tidyr xml2]; };
-  impute = derive2 { name="impute"; version="1.76.0"; sha256="0q7mnx99ndna1r2r0v7jc3w8ly8qw33flwbgkcvrfhk6dzvbn4pl"; depends=[]; };
-  infercnv = derive2 { name="infercnv"; version="1.18.1"; sha256="1d9in3hs2n91pv498715d3qi82c7xsnm42vnzgfyz096zjghgp7a"; depends=[ape argparse BiocGenerics caTools coda coin digest doParallel dplyr edgeR fastcluster fitdistrplus foreach futile_logger future ggplot2 gplots gridExtra HiddenMarkov igraph Matrix parallelDist phyclust RANN RColorBrewer reshape2 rjags Seurat SingleCellExperiment SummarizedExperiment tidyr]; };
-  infinityFlow = derive2 { name="infinityFlow"; version="1.12.0"; sha256="0p41b1y22sjhxx8q1qzhgb7wr0wsbazlyn7cg9ipz8m9v5xg7idf"; depends=[Biobase flowCore generics gtools matlab pbapply png raster uwot xgboost]; };
-  intansv = derive2 { name="intansv"; version="1.42.0"; sha256="0i542gpjibppnvq5afnp9i68jvab6k6w7xj7gdy4jkck6gm12g71"; depends=[BiocGenerics GenomicRanges ggbio IRanges plyr]; };
-  interacCircos = derive2 { name="interacCircos"; version="1.12.0"; sha256="08szyplv7b4xl6jq71ghaknc8fyr2h16lzllc4w8svkhainkvsbw"; depends=[htmlwidgets plyr RColorBrewer]; };
-  interactiveDisplay = derive2 { name="interactiveDisplay"; version="1.40.0"; sha256="0w81c5kc48gjavln50ysgr3vaf8s4fb6632ckzb1q225j9ik2gia"; depends=[AnnotationDbi BiocGenerics Category ggplot2 gridSVG interactiveDisplayBase plyr RColorBrewer reshape2 shiny XML]; };
-  interactiveDisplayBase = derive2 { name="interactiveDisplayBase"; version="1.40.0"; sha256="14cw90qlp8y4k0fs7xim8qvhzwbb8sn334mc72fkxg1h4bs8bxjw"; depends=[BiocGenerics DT shiny]; };
-  ipdDb = derive2 { name="ipdDb"; version="1.20.0"; sha256="15m020ilwa6jwj4x4xji7rrb4x7h5q2sm5xsgbipryx7hzvwz1am"; depends=[AnnotationDbi AnnotationHub assertthat Biostrings DBI GenomicRanges IRanges RSQLite]; };
-  isobar = derive2 { name="isobar"; version="1.48.0"; sha256="13b3a5q3nn8x7aqbg4mjwigxh3wcblnhiq18fxpzxd89kgklf1f7"; depends=[Biobase biomaRt distr ggplot2 plyr]; };
-  isomiRs = derive2 { name="isomiRs"; version="1.30.0"; sha256="1m72a7m0rn0q33nv9gb193gv8f4wrhxrjr837b4am7shv6lklj48"; depends=[AnnotationDbi assertive_sets Biobase BiocGenerics broom cluster cowplot DEGreport DESeq2 dplyr GenomicRanges GGally ggplot2 gplots gridExtra gtools IRanges limma RColorBrewer readr reshape rlang S4Vectors stringr SummarizedExperiment tibble tidyr]; };
-  iterClust = derive2 { name="iterClust"; version="1.24.0"; sha256="0k2hcc7g4ynd9jrk8f286y6gwc4bfs4bnfs8qpj2i8zamwdaldng"; depends=[Biobase cluster]; };
-  iterativeBMA = derive2 { name="iterativeBMA"; version="1.60.0"; sha256="04awfmpk4vi09wk256l0fsy40pn79kjfkj8k2ri8zjgjng8yf5ns"; depends=[Biobase BMA leaps]; };
-  iterativeBMAsurv = derive2 { name="iterativeBMAsurv"; version="1.60.0"; sha256="1i4kz882lzilz5gsxcw036hxvx3kh5v2xhqbaj2mrhh3lc8a1s89"; depends=[BMA leaps survival]; };
-  ivygapSE = derive2 { name="ivygapSE"; version="1.24.0"; sha256="0zrysavdj8af8c2k4mncyvy7355fdw4xnz6h8i79l650qi8hmlrd"; depends=[ggplot2 hwriter plotly S4Vectors shiny SummarizedExperiment survival survminer UpSetR]; };
-  karyoploteR = derive2 { name="karyoploteR"; version="1.28.0"; sha256="0jr9lp250s9066hh40vxb6c6yhdd8yrnk0zklwylkf3jpbdgl621"; depends=[AnnotationDbi bamsignals bezier biovizBase digest GenomeInfoDb GenomicFeatures GenomicRanges IRanges memoise regioneR Rsamtools rtracklayer S4Vectors VariantAnnotation]; };
-  katdetectr = derive2 { name="katdetectr"; version="1.4.0"; sha256="0i1aq7binhlqbknpwcpj4nn4dh3x6i9brg4yvgcz13rd1ak08p9z"; depends=[Biobase BiocParallel BSgenome BSgenome_Hsapiens_UCSC_hg19 BSgenome_Hsapiens_UCSC_hg38 changepoint changepoint_np checkmate dplyr GenomeInfoDb GenomicRanges ggplot2 ggtext IRanges maftools plyranges Rdpack rlang S4Vectors tibble tidyr VariantAnnotation]; };
-  kebabs = derive2 { name="kebabs"; version="1.36.0"; sha256="17lilr40qdz8vjsb7m4il2q44rd6pskw8bhzxybq8rhd83c15753"; depends=[apcluster Biostrings e1071 IRanges kernlab LiblineaR Matrix Rcpp S4Vectors XVector]; };
-  keggorthology = derive2 { name="keggorthology"; version="2.54.0"; sha256="0nb6q4l8hzbfjs2njdqwbn5g2vayfc41bbxf8dsfy1njm3r1km29"; depends=[AnnotationDbi DBI graph hgu95av2_db]; };
-  kissDE = derive2 { name="kissDE"; version="1.22.0"; sha256="0zq0wll048rnqxhwby29g70d8clxz4qdqfp0kxq6gbd9l6xyq511"; depends=[ade4 aods3 Biobase DESeq2 doParallel DSS DT factoextra foreach ggplot2 gplots matrixStats shiny shinycssloaders]; };
-  lapmix = derive2 { name="lapmix"; version="1.68.0"; sha256="1kw4jqjfkpk2rhdxgypmamkmzl9w5csasncw4kbw1vjzbjzihfyl"; depends=[Biobase]; };
-  ldblock = derive2 { name="ldblock"; version="1.32.0"; sha256="1caxzc99kga2c90m2ydmnvcd8lfp0igmmickpl0ikrhwjlbfnc0p"; depends=[BiocGenerics httr Matrix rlang]; };
-  lefser = derive2 { name="lefser"; version="1.12.1"; sha256="0aywwinp4wwwa12rq60gpfk5gn28zyimayxakgj4lhfwjk0byz8m"; depends=[coin ggplot2 MASS S4Vectors SummarizedExperiment]; };
-  lemur = derive2 { name="lemur"; version="1.0.5"; sha256="1079s7m749fsg37wmwq57i7hf7ba8mz64m404sybajal8k0p4j20"; depends=[BiocGenerics BiocNeighbors DelayedMatrixStats glmGamPoi harmony HDF5Array irlba limma Matrix MatrixGenerics matrixStats Rcpp RcppArmadillo rlang S4Vectors SingleCellExperiment SummarizedExperiment vctrs]; };
-  les = derive2 { name="les"; version="1.52.0"; sha256="00xay71lzqh59bzpm5y7y6i8p39m5dag0qzpd51jkbkbwhdg95f6"; depends=[boot fdrtool gplots RColorBrewer]; };
-  levi = derive2 { name="levi"; version="1.20.0"; sha256="0p5hmj0jskwag9ay1b3njf25ajns2317dkv2l9z56xqlgnr4lycz"; depends=[colorspace dplyr DT ggplot2 httr igraph knitr RColorBrewer Rcpp reshape2 rmarkdown shiny shinydashboard shinyjs testthat xml2]; };
-  lfa = derive2 { name="lfa"; version="2.2.0"; sha256="1xrwvw7227znd1h7426k8l86197yc24b4v608issh5fqglmhljns"; depends=[corpcor RSpectra]; };
-  limma = derive2 { name="limma"; version="3.58.1"; sha256="01byjnhhjyxk9x871rk8bgqq6lkp1a6dylqbdphpzp88b1jf2f9m"; depends=[statmod]; };
-  limmaGUI = derive2 { name="limmaGUI"; version="1.78.0"; sha256="1psx743jn36hw1np6k613wajs17rhnyny4rs0cp297z3wgv2ra86"; depends=[limma R2HTML tkrplot xtable]; };
-  lineagespot = derive2 { name="lineagespot"; version="1.6.0"; sha256="0yvw47ha9g1sywici5dkyb90d2sw0ypcddn1x2gls6y45l2wh1i6"; depends=[data_table httr MatrixGenerics stringr SummarizedExperiment VariantAnnotation]; };
-  lionessR = derive2 { name="lionessR"; version="1.16.0"; sha256="0pm4jn5jzv38d6cfxn1cjw03wm47il308jr01labfw2ya2ris24z"; depends=[S4Vectors SummarizedExperiment]; };
-  lipidr = derive2 { name="lipidr"; version="2.16.0"; sha256="1jrs44553d3d7sljgkxpwnaqv1ym6j9rhwv6i764744pmijhbmbh"; depends=[data_table dplyr fgsea forcats ggplot2 imputeLCMD limma magrittr rlang ropls S4Vectors SummarizedExperiment tidyr]; };
-  lisaClust = derive2 { name="lisaClust"; version="1.10.1"; sha256="1cmqvslb0f46b01d40zh3f7m95f4szhs44wwhiv0n9ppibx13mgk"; depends=[BiocGenerics BiocParallel class concaveman data_table dplyr ggplot2 pheatmap purrr S4Vectors SingleCellExperiment SpatialExperiment spatstat_explore spatstat_geom spatstat_random spicyR SummarizedExperiment tidyr]; };
-  lmdme = derive2 { name="lmdme"; version="1.44.0"; sha256="1k0ilpy29kn2v7md0ayylg8az3dj8jrjgb0jv1vbx28abfqri02s"; depends=[limma pls stemHypoxia]; };
-  loci2path = derive2 { name="loci2path"; version="1.22.0"; sha256="0im1s5wngnvkza62fh1qpp64fq5p4y556c1251v26230kppdmkas"; depends=[BiocParallel data_table GenomicRanges pheatmap RColorBrewer S4Vectors wordcloud]; };
-  logicFS = derive2 { name="logicFS"; version="2.22.0"; sha256="138w02qhmshd72ljh0mq7y6rg9yk818b74milmawvil4fx9k2dvq"; depends=[LogicReg mcbiopi survival]; };
-  lpNet = derive2 { name="lpNet"; version="2.34.2"; sha256="0l48xd3jfn9hw9s8bm3r9vqj2icsc7jk9q58g19ic533w0nk70pc"; depends=[KEGGgraph lpSolve]; };
-  lpsymphony = derive2 { name="lpsymphony"; version="1.30.0"; sha256="1946wlw9zvyxdd99rs2rliks54ff5dkibavxd48aj7cqjsjh6b7g"; depends=[]; };
-  lumi = derive2 { name="lumi"; version="2.54.0"; sha256="0iwkag84w1sc703jcdfx0h799hlchdiqvlps8g8lwmil5b0xlsw5"; depends=[affy annotate AnnotationDbi Biobase DBI GenomicFeatures GenomicRanges KernSmooth lattice MASS methylumi mgcv nleqslv preprocessCore RSQLite]; };
-  m6Aboost = derive2 { name="m6Aboost"; version="1.8.0"; sha256="0sssf37pjnn4iafhf6jkcms00lzwmxb8qbzn76spm135fkyljm7k"; depends=[adabag Biostrings BSgenome dplyr ExperimentHub GenomicRanges IRanges rtracklayer S4Vectors]; };
-  mBPCR = derive2 { name="mBPCR"; version="1.56.0"; sha256="03h1wxjhvk19rrl9h8hpp78c9srxablv9sx6vjm868w12az4x0qh"; depends=[Biobase GWASTools oligoClasses]; };
-  mCSEA = derive2 { name="mCSEA"; version="1.22.0"; sha256="1icvd7v8zhp420wq3776lixf7hzjwyfhc9h3micl4cg8hxz0r8kc"; depends=[biomaRt fgsea GenomicFeatures GenomicRanges ggplot2 Gviz Homo_sapiens IRanges limma mCSEAdata S4Vectors SummarizedExperiment]; };
-  maCorrPlot = derive2 { name="maCorrPlot"; version="1.72.0"; sha256="0gpj4r9fnv4dlqkzyq47n0n9dwzd9d6ry46vzxlkdjla811wz3pb"; depends=[lattice]; };
-  maPredictDSC = derive2 { name="maPredictDSC"; version="1.40.0"; sha256="099pmf3jdpnsvcg46q09pr2qdh0znzr2dcrlbh61ys1yh12vplf5"; depends=[affy AnnotationDbi caret class e1071 gcrma hgu133plus2_db limma LungCancerACvsSCCGEO MASS ROC ROCR]; };
-  maSigPro = derive2 { name="maSigPro"; version="1.74.0"; sha256="02i2gnfj54z8j4ir93ambf25wz609aqh22bkwid0wca895nrarx8"; depends=[Biobase MASS mclust venn]; };
-  macat = derive2 { name="macat"; version="1.76.0"; sha256="1xmlh1bnhaxp2zjimrhyzz0ldl2sv4j0lrrvqdhlk8jbm5j4hzy8"; depends=[annotate Biobase]; };
-  made4 = derive2 { name="made4"; version="1.76.0"; sha256="03fhiszlmjh8nvz3gppf45r9kpcjrdb601ar17c4f2aygjpkf0cg"; depends=[ade4 Biobase gplots RColorBrewer scatterplot3d SummarizedExperiment]; };
-  maftools = derive2 { name="maftools"; version="2.18.0"; sha256="025wlqnx13ldzyrf72mrfj492d62i4xyjbhpmgavgld0jwfmr3ga"; depends=[data_table DNAcopy RColorBrewer Rhtslib survival zlibbioc]; };
-  magpie = derive2 { name="magpie"; version="1.2.0"; sha256="0qn62kllwd2ip2iszvxwr8088n5r0krnja80gw1xhfzs6s2gxcbi"; depends=[AnnotationDbi aod BiocParallel DESeq2 GenomicFeatures GenomicRanges IRanges Matrix matrixStats openxlsx RColorBrewer reshape2 Rsamtools rtracklayer S4Vectors TRESS]; };
-  magrene = derive2 { name="magrene"; version="1.4.0"; sha256="0y3q5pdvcp1ns00ycmqilf9fbgl57j9917vck7anib9sqkbdncgf"; depends=[BiocParallel]; };
-  makecdfenv = derive2 { name="makecdfenv"; version="1.78.0"; sha256="0mggcw0390i1y2wn4k8570gjmbsx6hbipi8fkhz2zj9icsx89x1l"; depends=[affy affyio Biobase zlibbioc]; };
-  mapscape = derive2 { name="mapscape"; version="1.26.0"; sha256="157xi3r5fjsby2affd5yq112i6w80g8q3xiv4s7xg6zy57309f4k"; depends=[base64enc htmlwidgets jsonlite stringr]; };
-  mariner = derive2 { name="mariner"; version="1.2.0"; sha256="12zj4y6fy38r6iiz7gp9z9sdz99ixy43is9hwp4l026q401ckdqh"; depends=[abind assertthat BiocGenerics BiocManager BiocParallel colourvalues data_table dbscan DelayedArray GenomeInfoDb GenomicRanges glue HDF5Array InteractionSet IRanges magrittr plotgardener plyranges progress purrr RColorBrewer rhdf5 rlang S4Vectors strawr SummarizedExperiment]; };
-  marr = derive2 { name="marr"; version="1.12.0"; sha256="1q9xbyc9wsrhpirddnhpnw0z33cpjzj3689vgpnxdkx9s64jr1ld"; depends=[dplyr ggplot2 magrittr Rcpp rlang S4Vectors SummarizedExperiment]; };
-  marray = derive2 { name="marray"; version="1.80.0"; sha256="1gj4mdbni5fk2z3zrk2cnhy610ihhhwjb9l1crglkklwxhkqlkvd"; depends=[limma]; };
-  martini = derive2 { name="martini"; version="1.22.0"; sha256="0ffpbn93jlig43m0gzfi0vgqr6kn013xbsfgd8wlpg34saz3x1y4"; depends=[igraph Matrix memoise Rcpp RcppEigen snpStats]; };
-  maser = derive2 { name="maser"; version="1.20.0"; sha256="0h7x1fyfvnjc30w9ydbnlqijz58q2kcxv4yy784rf4adsrdhwh45"; depends=[BiocGenerics data_table dplyr DT GenomeInfoDb GenomicRanges ggplot2 Gviz IRanges reshape2 rtracklayer]; };
-  maskBAD = derive2 { name="maskBAD"; version="1.46.0"; sha256="11kr4ali92scgsfm6757ylmvcvxsxvgh7pdlj77bwprgvsl53x5y"; depends=[affy gcrma]; };
-  massiR = derive2 { name="massiR"; version="1.38.0"; sha256="16v0fydncmaa4xqg2m6mg1h5n9b3fc3r9mmxl1ip7ylr836v2g5l"; depends=[Biobase cluster diptest gplots]; };
-  mastR = derive2 { name="mastR"; version="1.2.3"; sha256="0870g11mk90v1gh1cp37x93kqhb93jjnfis1qfhny194340v3c28"; depends=[AnnotationDbi Biobase dplyr edgeR ggplot2 ggpubr GSEABase limma Matrix msigdb org_Hs_eg_db patchwork SeuratObject SingleCellExperiment SummarizedExperiment tidyr]; };
-  matchBox = derive2 { name="matchBox"; version="1.44.0"; sha256="185idvl851zsdh10f6dz8sff5anxq8apmf7awg9vq0j8mrpd149i"; depends=[]; };
-  matter = derive2 { name="matter"; version="2.4.1"; sha256="08sgag1x5krwbknd45q4s9pj1dlsq1w50i8iw6imgrid2484q14c"; depends=[biglm BiocGenerics BiocParallel digest irlba Matrix ProtGenerics]; };
-  mbQTL = derive2 { name="mbQTL"; version="1.2.0"; sha256="01j7mrjdgf5pv8599a08wq2bnpzxg7k6jm7s1vpnragssp4ml7jh"; depends=[broom dplyr ggplot2 MatrixEQTL metagenomeSeq pheatmap readxl stringr tidyr]; };
-  mbkmeans = derive2 { name="mbkmeans"; version="1.18.0"; sha256="1x7azijfs28iz2w40b9hnpgwh4jxgihl8cj6h91b2wgz79sq649l"; depends=[beachmat benchmarkme BiocParallel ClusterR DelayedArray Matrix Rcpp RcppArmadillo Rhdf5lib S4Vectors SingleCellExperiment SummarizedExperiment]; };
-  mdp = derive2 { name="mdp"; version="1.22.0"; sha256="0zislz6737kddhcz5chns12p8aaqybmg7gyww1n1f3zhy1m9rfzx"; depends=[ggplot2 gridExtra]; };
-  mdqc = derive2 { name="mdqc"; version="1.64.0"; sha256="0q6ig9qdf2s9329wysrvgh13yq5c7n76as2c3mahqm78xb0mpplf"; depends=[cluster MASS]; };
-  megadepth = derive2 { name="megadepth"; version="1.12.0"; sha256="0g9d4q6vh2ys1la15fqgbc4ckfbjbzzaqa49x9liqrhpnrp59vc3"; depends=[cmdfun dplyr fs GenomicRanges magrittr readr xfun]; };
-  memes = derive2 { name="memes"; version="1.10.0"; sha256="11c7smsggxrg3v0awkx9j4gy8gr986yncqcqr01xjldzvz0b2r25"; depends=[Biostrings cmdfun dplyr GenomicRanges ggplot2 ggseqlogo magrittr matrixStats patchwork processx purrr readr rlang tibble tidyr universalmotif usethis xml2]; };
-  meshes = derive2 { name="meshes"; version="1.28.0"; sha256="0l1l679qjpf5i8d86rmlziam1x67pnymj1iqcmbci20rqr415i3j"; depends=[AnnotationDbi AnnotationHub DOSE enrichplot GOSemSim MeSHDbi yulab_utils]; };
-  meshr = derive2 { name="meshr"; version="2.8.0"; sha256="10ss1ydyxwiijq3212lswzwfhy1d5mdmgbjfaj8gdnvznnxfzs6l"; depends=[BiocGenerics BiocStyle Category fdrtool knitr markdown MeSHDbi rmarkdown RSQLite S4Vectors]; };
-  messina = derive2 { name="messina"; version="1.38.0"; sha256="09c5jrxis9iza5lp7m3k4q4vwy4jlvl6vzd52nvayx8mbk5jcf2f"; depends=[foreach ggplot2 plyr Rcpp survival]; };
-  metaCCA = derive2 { name="metaCCA"; version="1.30.0"; sha256="1mxybpdqmg9w3q36g0xwx4vl006v5nfgj7cmfjm9r1khka8vij13"; depends=[]; };
-  metaMS = derive2 { name="metaMS"; version="1.38.0"; sha256="0l3fi4gp77a8vbhi3k5syaz0ycr9f3ch0dkqripbq8sw076cdh2r"; depends=[BiocGenerics CAMERA Matrix robustbase xcms]; };
-  metaSeq = derive2 { name="metaSeq"; version="1.42.0"; sha256="1xvlyg83jd0ykb3c3kvm05s9919bsmc6v324n3da231c2vpyzl0n"; depends=[NOISeq Rcpp snow]; };
-  metabCombiner = derive2 { name="metabCombiner"; version="1.12.0"; sha256="1iiizafp002xdy4lyj6h26izn1jmcydrw0h61c4i6n60fmaksjdq"; depends=[caret dplyr matrixStats mgcv rlang S4Vectors tidyr]; };
-  metabinR = derive2 { name="metabinR"; version="1.4.0"; sha256="0i9kg4ca7l66zljydl9v6aa07rzwp3nq9cagm8dniq54qm59s93l"; depends=[rJava]; };
-  metabolomicsWorkbenchR = derive2 { name="metabolomicsWorkbenchR"; version="1.12.0"; sha256="1fgciy2phpvv1jki47cijpcdfjpw92isj424wxn1ld3r7q4kn4b3"; depends=[data_table httr jsonlite MultiAssayExperiment struct SummarizedExperiment]; };
-  metabomxtr = derive2 { name="metabomxtr"; version="1.36.0"; sha256="130zh8r7cpgwp15nk98ymj734q24aa6aakqyvxra3nmn82d0fi4w"; depends=[Biobase BiocParallel Formula ggplot2 multtest optimx plyr]; };
-  metagene2 = derive2 { name="metagene2"; version="1.18.0"; sha256="1w4k4hhs28n2yjp2i96550zfiz6f679nkad3n2i4gm54yz42z4a0"; depends=[BiocParallel data_table dplyr GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 IRanges magrittr purrr R6 reshape2 Rsamtools rtracklayer]; };
-  metagenomeSeq = derive2 { name="metagenomeSeq"; version="1.43.0"; sha256="1m19qkwrbfr4yhbr1izfjka3brn1qasqql6alczv55l5h52m4s4b"; depends=[Biobase foreach glmnet gplots limma Matrix matrixStats RColorBrewer Wrench]; };
-  metahdep = derive2 { name="metahdep"; version="1.60.0"; sha256="0hd91zd99c0dkzw419p3m8dyy1fm6ivg9ba654acqz5zxiav1agv"; depends=[]; };
-  metapod = derive2 { name="metapod"; version="1.10.1"; sha256="05cy3xvj78n2p9l2pxfys7aczr51gm2ywprn4qmzr7ppb6rq5f66"; depends=[Rcpp]; };
-  metapone = derive2 { name="metapone"; version="1.8.0"; sha256="14038jfkyh2hgqdmii3nfwfj7idy1sqm5ac3lczn480lzf90frjg"; depends=[BiocParallel fdrtool fgsea fields ggplot2 ggrepel markdown]; };
-  metaseqR2 = derive2 { name="metaseqR2"; version="1.14.0"; sha256="1sg9a8v6ij6g3xmr55xngaj2l2y6zcf56gz17mzqpkgx0jfq1465"; depends=[ABSSeq Biobase BiocGenerics BiocParallel biomaRt Biostrings corrplot DESeq2 DSS DT EDASeq edgeR genefilter GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges gplots harmonicmeanp heatmaply htmltools httr IRanges jsonlite lattice limma locfit log4r magrittr MASS Matrix NBPSeq pander qvalue rmarkdown rmdformats Rsamtools RSQLite rtracklayer S4Vectors stringr SummarizedExperiment survcomp VennDiagram vsn yaml zoo]; };
-  methInheritSim = derive2 { name="methInheritSim"; version="1.24.0"; sha256="11sgw15dc0dl4wx3z5wwsk4qdccd91hjg66i1rwhcf1v08xw2w8w"; depends=[BiocGenerics GenomeInfoDb GenomicRanges IRanges methylKit msm S4Vectors]; };
-  methimpute = derive2 { name="methimpute"; version="1.24.0"; sha256="0sdvxbkivkpsg22s4vxhds9z8m5nxrsn8khcv04jm3cf8x1zzvqn"; depends=[Biostrings data_table GenomeInfoDb GenomicRanges ggplot2 IRanges minpack_lm Rcpp reshape2]; };
-  methrix = derive2 { name="methrix"; version="1.16.0"; sha256="1yydmp3iaxbny25mfr3018f1kjvqi6zhrh0c8hvzznbkvyxvgkn2"; depends=[BSgenome data_table DelayedArray DelayedMatrixStats GenomicRanges ggplot2 HDF5Array IRanges matrixStats rtracklayer S4Vectors SummarizedExperiment]; };
-  methylCC = derive2 { name="methylCC"; version="1.16.0"; sha256="1grb6d83gi4583jzg12wqkgr1dp2bxysdwd4lirzvnvhpwnfmbhw"; depends=[Biobase bsseq bumphunter dplyr FlowSorted_Blood_450k genefilter GenomicRanges IlluminaHumanMethylation450kanno_ilmn12_hg19 IlluminaHumanMethylation450kmanifest IRanges magrittr minfi plyranges quadprog S4Vectors]; };
-  methylGSA = derive2 { name="methylGSA"; version="1.20.0"; sha256="037wfcdva8jqfrmy7kkdzp74izw2lgnawhg5576p66qvp1fwf2gi"; depends=[AnnotationDbi BiocParallel clusterProfiler ggplot2 GO_db IlluminaHumanMethylation450kanno_ilmn12_hg19 IlluminaHumanMethylationEPICanno_ilm10b4_hg19 missMethyl org_Hs_eg_db reactome_db RobustRankAggreg shiny stringr]; };
-  methylInheritance = derive2 { name="methylInheritance"; version="1.26.0"; sha256="0aiv9cy2fg5vgnkihqyyp9476d36n7spyfbvq8cnhhhka7q771iy"; depends=[BiocParallel GenomicRanges ggplot2 gridExtra IRanges methylKit rebus S4Vectors]; };
-  methylKit = derive2 { name="methylKit"; version="1.28.0"; sha256="0y45wa45kblm2g3nylvybvyfc34sjlynhsz3dirhs1favb83sdiv"; depends=[data_table emdbook fastseg GenomeInfoDb GenomicRanges gtools IRanges KernSmooth limma mclust mgcv qvalue R_utils Rcpp Rhtslib Rsamtools rtracklayer S4Vectors zlibbioc]; };
-  methylMnM = derive2 { name="methylMnM"; version="1.40.0"; sha256="0nbn6xdv8wcs7bxaym2nc3ryhjj574pamm66yc3blx413q5wfsnq"; depends=[edgeR statmod]; };
-  methylPipe = derive2 { name="methylPipe"; version="1.36.0"; sha256="1ayy6jf0jrd2lk16j3a7k3qnm8h8w76bkb7gsvx1bbchsk050880"; depends=[BiocGenerics Biostrings data_table GenomeInfoDb GenomicAlignments GenomicRanges gplots Gviz IRanges marray Rsamtools S4Vectors SummarizedExperiment]; };
-  methylSig = derive2 { name="methylSig"; version="1.14.0"; sha256="1v8pfv5c7i9r1vrrbdi75w79gazq4qma4wpgzq1bhba3pjh8w1bc"; depends=[bsseq DelayedArray DelayedMatrixStats DSS GenomeInfoDb GenomicRanges IRanges S4Vectors]; };
-  methylclock = derive2 { name="methylclock"; version="1.8.0"; sha256="1njym21ndva58kg7gqfw1d7ri4421rilflg1kn8hbgyayjrlhcl1"; depends=[Biobase devtools dplyr dynamicTreeCut ExperimentHub ggplot2 ggpmisc ggpubr gridExtra impute methylclockData minfi PerformanceAnalytics planet preprocessCore quadprog Rcpp RPMM tibble tidyr tidyverse]; };
-  methylscaper = derive2 { name="methylscaper"; version="1.10.0"; sha256="1akigwx3k0xdnq70219qg69nvmshbryq0z6glq1dz2wic4gghdlw"; depends=[BiocParallel Biostrings data_table Rfast seqinr seriation shiny shinyFiles shinyjs SummarizedExperiment]; };
-  methylumi = derive2 { name="methylumi"; version="2.48.0"; sha256="1vracrvy56kk3hc9midxdaxhad2zf1lspn0zzxjjbsyzx3r0ip0n"; depends=[annotate AnnotationDbi Biobase BiocGenerics FDb_InfiniumMethylation_hg19 genefilter GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 illuminaio IRanges lattice matrixStats minfi reshape2 S4Vectors scales SummarizedExperiment]; };
-  mfa = derive2 { name="mfa"; version="1.24.0"; sha256="0h8qsl62zqn0d2mwxqn246khdfay85alf6p39yp94qv90kvgp62f"; depends=[Biobase coda dplyr ggmcmc ggplot2 magrittr MCMCglmm MCMCpack Rcpp tibble]; };
-  mgsa = derive2 { name="mgsa"; version="1.50.0"; sha256="130d3k6m78k67qikwzisabqdmb9s2z5d2dypv8ia0lhyp77yk8b9"; depends=[gplots]; };
-  miQC = derive2 { name="miQC"; version="1.10.0"; sha256="131pnlkk72b4x42aij8bwq8rknfxk0hz1lj6rlvgy2w95fbs12g0"; depends=[flexmix ggplot2 SingleCellExperiment]; };
-  miRLAB = derive2 { name="miRLAB"; version="1.32.0"; sha256="18rhi4bk1rxnsdbrgnyqdrs4h4nbvb7ndvz4rz8mgj1f2nnr1fc5"; depends=[Category ctc dplyr energy entropy glmnet GOstats gplots Hmisc httr impute InvariantCausalPrediction limma org_Hs_eg_db pcalg RCurl stringr SummarizedExperiment TCGAbiolinks]; };
-  miRNAmeConverter = derive2 { name="miRNAmeConverter"; version="1.30.0"; sha256="1ndd80xsq7qjgmn738nf5vhz68mxni1waah6iwd57iiyl45fkj29"; depends=[AnnotationDbi DBI miRBaseVersions_db reshape2]; };
-  miRNApath = derive2 { name="miRNApath"; version="1.62.0"; sha256="1rmhx8qb9lk67icacsl5klvl16rkdlpln1pahdjn2rcnn0j4ry59"; depends=[]; };
-  miRNAtap = derive2 { name="miRNAtap"; version="1.36.0"; sha256="1jc9xlhfp8pcnrrrgf7pdzgfz6sl617czv6mp74ydsnl0yc33hnj"; depends=[AnnotationDbi DBI plyr RSQLite sqldf stringr]; };
-  miRcomp = derive2 { name="miRcomp"; version="1.32.0"; sha256="04qpmxj75fh7g67vw5vp79aj5b4n4ppm228ykah5pnpk0swf4kpm"; depends=[Biobase KernSmooth miRcompData]; };
-  mia = derive2 { name="mia"; version="1.10.0"; sha256="044spfxsf7xijnbh0933cwdkycmg05zsfqhbx5pkfajysh6w5cxp"; depends=[ape BiocGenerics BiocParallel Biostrings bluster DECIPHER decontam DelayedArray DelayedMatrixStats DirichletMultinomial dplyr IRanges MASS MatrixGenerics MultiAssayExperiment rlang S4Vectors scater scuttle SingleCellExperiment SummarizedExperiment tibble tidyr TreeSummarizedExperiment vegan]; };
-  miaSim = derive2 { name="miaSim"; version="1.8.0"; sha256="1k53d71jpm3a8vd5f5b0s2v7d722k3jvay2g782p28i73q77scxk"; depends=[deSolve MatrixGenerics poweRlaw S4Vectors SummarizedExperiment TreeSummarizedExperiment]; };
-  miaViz = derive2 { name="miaViz"; version="1.10.0"; sha256="1i6ihx6r33lg0cw7k0mhzygsglfzwvmvwi49ilc32lh3lflqqksp"; depends=[ape BiocGenerics BiocParallel DelayedArray DirichletMultinomial dplyr ggnewscale ggplot2 ggraph ggrepel ggtree mia purrr rlang S4Vectors scater SingleCellExperiment SummarizedExperiment tibble tidygraph tidyr tidytree TreeSummarizedExperiment viridis]; };
-  microRNA = derive2 { name="microRNA"; version="1.60.0"; sha256="0sn8a95yjvr7vn2imvymlfpldqrsd25c7p1q64ihhkvz4kbjb1zv"; depends=[Biostrings]; };
-  microSTASIS = derive2 { name="microSTASIS"; version="1.2.0"; sha256="0rm202xdjr24521sw004w7fk0p325dwxiykyx90d6dif9xjrg94w"; depends=[BiocParallel ggplot2 ggside rlang stringr TreeSummarizedExperiment]; };
-  microbiome = derive2 { name="microbiome"; version="1.24.0"; sha256="0xmkwf7v89nwlpjrzqxv87lbsn6za99v7f0yxkgzfk5n6fadrf05"; depends=[Biostrings compositions dplyr ggplot2 phyloseq reshape2 Rtsne scales tibble tidyr vegan]; };
-  microbiomeDASim = derive2 { name="microbiomeDASim"; version="1.16.0"; sha256="1wc15hymh7vzdxd6pxwdlxikpppdyi1pgjc0vmj7wa3y4d11v0pk"; depends=[Biobase ggplot2 MASS Matrix metagenomeSeq mvtnorm pbapply phyloseq tmvtnorm]; };
-  microbiomeExplorer = derive2 { name="microbiomeExplorer"; version="1.12.0"; sha256="0byy4r5fhvhwnlxnhb0gbiskjq2q3gj3ibh4anlxpzv55q4shrsd"; depends=[Biobase biomformat broom car DESeq2 dplyr DT forcats heatmaply knitr limma lubridate magrittr matrixStats metagenomeSeq plotly purrr RColorBrewer readr reshape2 rlang rmarkdown shiny shinycssloaders shinydashboard shinyjs shinyWidgets stringr tibble tidyr vegan]; };
-  microbiomeMarker = derive2 { name="microbiomeMarker"; version="1.8.0"; sha256="15qsal51b29ryxvjvfqwx7xh525cg3scv7kn6fh9rwdpi97hx7ff"; depends=[ALDEx2 ANCOMBC Biobase BiocGenerics BiocParallel biomformat Biostrings caret coin ComplexHeatmap DESeq2 dplyr edgeR ggplot2 ggsignif ggtree IRanges limma magrittr MASS metagenomeSeq multtest patchwork phyloseq plotROC pROC purrr rlang S4Vectors tibble tidyr tidytree vegan yaml]; };
-  midasHLA = derive2 { name="midasHLA"; version="1.10.0"; sha256="02971sczxayglv6fa5yc8gx9w8r6vxsyc29qv1is7jj0yr14dq27"; depends=[assertthat broom dplyr formattable HardyWeinberg kableExtra knitr magrittr MultiAssayExperiment qdapTools rlang S4Vectors stringi SummarizedExperiment tibble]; };
-  miloR = derive2 { name="miloR"; version="1.10.0"; sha256="1hnvw9x0xwjb0br4yvzkzn73nvm8p3j3wmcw8jrid105j0fz6vcj"; depends=[BiocGenerics BiocNeighbors BiocParallel BiocSingular cowplot dplyr edgeR ggbeeswarm ggplot2 ggraph ggrepel gtools igraph irlba limma Matrix matrixStats patchwork RColorBrewer S4Vectors SingleCellExperiment stringr SummarizedExperiment tibble tidyr]; };
-  mimager = derive2 { name="mimager"; version="1.26.0"; sha256="00qwk5gbrgwsz1hdn3kj3pc8jn20ljlcz43cqan8x9ffkhj4axhh"; depends=[affy affyPLM Biobase BiocGenerics DBI gtable oligo oligoClasses preprocessCore S4Vectors scales]; };
-  mina = derive2 { name="mina"; version="1.10.0"; sha256="07znbjz4rcs478crp3yyawg06g6z8181arj1kmhs70id687lh0l8"; depends=[apcluster biganalytics bigmemory foreach ggplot2 Hmisc MCL parallelDist plyr Rcpp RcppArmadillo RcppParallel reshape2 RSpectra stringr]; };
-  minet = derive2 { name="minet"; version="3.60.0"; sha256="17v2x7cyw74h0zfsz33pyl1kqk976pdzw7mrgprz9l7w5120niw5"; depends=[infotheo]; };
-  minfi = derive2 { name="minfi"; version="1.48.0"; sha256="13lldzj68vmmmrp5fi2rfxbchbivaa1scq56hl0v9mxxicw72a0x"; depends=[beanplot Biobase BiocGenerics BiocParallel Biostrings bumphunter data_table DelayedArray DelayedMatrixStats genefilter GenomeInfoDb GenomicRanges GEOquery HDF5Array illuminaio IRanges lattice limma MASS mclust nlme nor1mix preprocessCore quadprog RColorBrewer reshape S4Vectors siggenes SummarizedExperiment]; };
-  mirIntegrator = derive2 { name="mirIntegrator"; version="1.32.0"; sha256="1wpdyk97ca0jw8k6n11cy1imy2y3s15hvdv068sp87bapjzfj2fi"; depends=[AnnotationDbi ggplot2 graph org_Hs_eg_db Rgraphviz ROntoTools]; };
-  mirTarRnaSeq = derive2 { name="mirTarRnaSeq"; version="1.10.0"; sha256="0lfx1vp689nvmjz2c5sfdy8ww36nrcnjmliv0d7440bc1rk4lywl"; depends=[assertthat caTools corrplot data_table dplyr ggplot2 MASS pheatmap pscl purrr R_utils reshape2 viridis]; };
-  missMethyl = derive2 { name="missMethyl"; version="1.36.0"; sha256="1nv4rm5pbx0s7m5zak3jzmwz4pkf8ghkj0ckdcsnmw3k364ny856"; depends=[AnnotationDbi BiasedUrn Biobase BiocGenerics GenomicRanges GO_db IlluminaHumanMethylation450kanno_ilmn12_hg19 IlluminaHumanMethylation450kmanifest IlluminaHumanMethylationEPICanno_ilm10b4_hg19 IlluminaHumanMethylationEPICmanifest IRanges limma methylumi minfi org_Hs_eg_db ruv S4Vectors statmod stringr SummarizedExperiment]; };
-  missRows = derive2 { name="missRows"; version="1.22.0"; sha256="13xfzfi6xvcjb7i3dvd606vs1l2dwj2srxfqs26prc6qz064qjpy"; depends=[ggplot2 gtools MultiAssayExperiment plyr S4Vectors]; };
-  mistyR = derive2 { name="mistyR"; version="1.10.0"; sha256="128ggdhsm9d1sslahvzzhqb73s16vf7474sxc9lcajy5l4m3rw7k"; depends=[assertthat caret deldir digest distances dplyr filelock furrr ggplot2 purrr R_utils ranger readr ridge rlang rlist stringr tibble tidyr tidyselect withr]; };
-  mitch = derive2 { name="mitch"; version="1.14.0"; sha256="0i64zzr04zpl3rcm93sl5bhwfam3n378p4frgqrgypm21aycisx2"; depends=[beeswarm echarts4r GGally ggplot2 gplots gridExtra kableExtra knitr MASS plyr reshape2 rmarkdown]; };
-  mitoClone2 = derive2 { name="mitoClone2"; version="1.8.1"; sha256="18zkfnz099p4xh8qkxc2xj75ndraby8ycz6dfq281ly6inyd58r6"; depends=[deepSNV GenomicRanges ggplot2 pheatmap reshape2 Rhtslib S4Vectors]; };
-  mixOmics = derive2 { name="mixOmics"; version="6.26.0"; sha256="0ifi89s611kblncnpvsrbl6sq2zi36binz63njrhya9wkyaxj6pc"; depends=[BiocParallel corpcor dplyr ellipse ggplot2 ggrepel gridExtra igraph lattice MASS matrixStats rARPACK RColorBrewer reshape2 tidyr]; };
-  mnem = derive2 { name="mnem"; version="1.18.0"; sha256="1p6da0jl3c9yx68bzc41z3xry8vf399fzinf01c20yfql4g17c07"; depends=[cluster data_table e1071 flexclust ggplot2 graph lattice Linnorm matrixStats naturalsort Rcpp RcppEigen Rgraphviz snowfall tsne wesanderson]; };
-  moanin = derive2 { name="moanin"; version="1.10.0"; sha256="1k9m0q1bpbdpb2hm57y0lygx1mj0q1xh30x9sz7s5q9fpnabybrh"; depends=[ClusterR edgeR limma MASS matrixStats NMI reshape2 S4Vectors SummarizedExperiment topGO viridis zoo]; };
-  mogsa = derive2 { name="mogsa"; version="1.36.0"; sha256="0byq6cq9hs4ryhhx6i1ll8cr3i1072ifp9v98p3xvcgfaqig6ydw"; depends=[Biobase BiocGenerics cluster corpcor genefilter gplots graphite GSEABase svd]; };
-  monaLisa = derive2 { name="monaLisa"; version="1.8.0"; sha256="1gk1h6z84ybmxl856mmyvxm7434aq1sh8bbl35if7awzkj436hkr"; depends=[BiocGenerics BiocParallel Biostrings BSgenome circlize ComplexHeatmap GenomeInfoDb GenomicRanges glmnet IRanges S4Vectors stabs SummarizedExperiment TFBSTools vioplot XVector]; };
-  monocle = derive2 { name="monocle"; version="2.30.0"; sha256="0i1qnmiaf3gf8955nlqzd81xzg4siliq154k699jmsz0fyyykia1"; depends=[Biobase BiocGenerics biocViews cluster combinat DDRTree dplyr fastICA ggplot2 HSMMSingleCell igraph irlba leidenbase limma MASS Matrix matrixStats pheatmap plyr proxy RANN Rcpp reshape2 Rtsne slam stringr tibble VGAM viridis]; };
-  mosaics = derive2 { name="mosaics"; version="2.40.0"; sha256="1si5f9w7jfdnfspnwghny78gdc4xbbq1gaiia2yl43v9236fk6q5"; depends=[GenomeInfoDb GenomicAlignments GenomicRanges IRanges lattice MASS Rcpp Rsamtools S4Vectors]; };
-  mosbi = derive2 { name="mosbi"; version="1.8.0"; sha256="1vpkkc4c35plalah133fy5wfga8j2qrl53q7086x40812mpmc1yc"; depends=[akmbiclust BH biclust fabia igraph isa2 QUBIC RColorBrewer Rcpp RcppParallel xml2]; };
-  motifStack = derive2 { name="motifStack"; version="1.46.0"; sha256="10hmqwkysifd59as9zx00p3gj595lwj30ywn9pqb1920q6f5mx2i"; depends=[ade4 Biostrings ggplot2 htmlwidgets TFBSTools XML]; };
-  motifbreakR = derive2 { name="motifbreakR"; version="2.16.0"; sha256="02i3hkffhhsbzmn97mv8wc2px5caq9xnp45z0l53dp1jxbmms1h0"; depends=[BiocGenerics BiocParallel Biostrings BSgenome GenomeInfoDb GenomicRanges Gviz IRanges matrixStats MotifDb motifStack rtracklayer S4Vectors stringr SummarizedExperiment TFMPvalue VariantAnnotation]; };
-  motifcounter = derive2 { name="motifcounter"; version="1.26.0"; sha256="0ng283g3shm2aahyjn29mxv3f30xfncc8gg99wchzcrlm5cgwpy7"; depends=[Biostrings]; };
-  motifmatchr = derive2 { name="motifmatchr"; version="1.24.0"; sha256="13kkg9xpyvgqpsaz5f96pd43i8a45jrbnzqmax793zkv4ai8p16j"; depends=[Biostrings BSgenome GenomeInfoDb GenomicRanges IRanges Matrix Rcpp RcppArmadillo Rsamtools S4Vectors SummarizedExperiment TFBSTools]; };
-  mpra = derive2 { name="mpra"; version="1.24.0"; sha256="0zadlalkswj0793b66fs6cxincnhn245xdkz32ngcahqdfiv7kbq"; depends=[BiocGenerics limma S4Vectors scales statmod SummarizedExperiment]; };
-  msImpute = derive2 { name="msImpute"; version="1.12.0"; sha256="1akrn8k8k1s69gq2gpn1dw206cjd5xry3q2cfvhmxca8nhs7zpb0"; depends=[data_table dplyr FNN limma matrixStats mvtnorm pdist reticulate scran softImpute tidyr]; };
-  msPurity = derive2 { name="msPurity"; version="1.28.0"; sha256="14klzkpii892yn08kg9hwkwiprfrpfgn4dj52dyw8k4k30vri3gw"; depends=[DBI dbplyr doSNOW dplyr fastcluster foreach ggplot2 magrittr mzR plyr Rcpp reshape2 RSQLite stringr]; };
-  msa = derive2 { name="msa"; version="1.34.0"; sha256="1csa8j64xrfr6kdnndr3876bplclca9wf6ydy9kg97xsjq7gz8q5"; depends=[BiocGenerics Biostrings IRanges Rcpp S4Vectors]; };
-  msgbsR = derive2 { name="msgbsR"; version="1.26.0"; sha256="0m88mpr74r531gs8nlicr5bp8d4qyj7449mdn6pzkqpvx10ncrf6"; depends=[BSgenome easyRNASeq edgeR GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggbio ggplot2 IRanges plyr R_utils Rsamtools S4Vectors SummarizedExperiment]; };
-  mslp = derive2 { name="mslp"; version="1.4.0"; sha256="1i4afr1kvbwpp4xnijhdqhmn4cy82b8j97by50gwm63696g7qr6k"; depends=[data_table doRNG fmsb foreach magrittr org_Hs_eg_db pROC randomForest RankProd]; };
-  msmsEDA = derive2 { name="msmsEDA"; version="1.40.0"; sha256="0xxjkr3x654n61q2yda09cghvssyx4ml9g22gfzfhbzjp8j7pm2c"; depends=[gplots MASS MSnbase RColorBrewer]; };
-  msmsTests = derive2 { name="msmsTests"; version="1.40.0"; sha256="0dif4yvm9hfrnamjph5xa9cbf41f2v8lbgyr88f11alwwbf0dg69"; depends=[edgeR msmsEDA MSnbase qvalue]; };
-  msqrob2 = derive2 { name="msqrob2"; version="1.10.0"; sha256="1g2a01cxjmfbjhx0rr2dq1wl8vq9llhpyq8qwn36jz6s0k32b2f5"; depends=[BiocParallel codetools limma lme4 MASS Matrix MultiAssayExperiment purrr QFeatures SummarizedExperiment]; };
-  multiClust = derive2 { name="multiClust"; version="1.32.0"; sha256="0lmnmh365dzk50klcgi1fqkhk7myjcvmkc29vwzs56ljd2zlw0hm"; depends=[amap cluster ctc dendextend mclust survival]; };
-  multiGSEA = derive2 { name="multiGSEA"; version="1.12.0"; sha256="0p9x69ybwss3bdsym78ajlkwx7vgj4nfvyig9drij524r90kfpd8"; depends=[AnnotationDbi dplyr fgsea graphite magrittr metaboliteIDmapping metap rappdirs rlang]; };
-  multiHiCcompare = derive2 { name="multiHiCcompare"; version="1.20.0"; sha256="152h62f41r2lay2zpnllsfamy0m63w5bi5gnyy7q32rhmq9z2k3b"; depends=[aggregation BiocParallel data_table dplyr edgeR GenomeInfoDb GenomeInfoDbData GenomicRanges HiCcompare pbapply pheatmap qqman]; };
-  multiMiR = derive2 { name="multiMiR"; version="1.24.0"; sha256="0mxih9nfjmgq3zd2c08ahwhnx3ahynj9phyrii6chllm3jcsfx15"; depends=[AnnotationDbi BiocGenerics dplyr purrr RCurl tibble XML]; };
-  multiWGCNA = derive2 { name="multiWGCNA"; version="1.0.0"; sha256="1jp8amw31l45b2h9b138rmbzc43xx2swfs5pnlqladnnzwsbxvn3"; depends=[cowplot data_table dcanr dplyr flashClust ggalluvial ggplot2 ggrepel igraph patchwork readr reshape2 scales stringr SummarizedExperiment WGCNA]; };
-  multicrispr = derive2 { name="multicrispr"; version="1.12.9"; sha256="1rqd4l7gh48kviy9r5g5v6iq36p1h3gid9f250ps3zygc809garm"; depends=[BiocGenerics Biostrings BSgenome CRISPRseek data_table GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 karyoploteR magrittr plyranges Rbowtie reticulate rtracklayer stringi tidyr tidyselect]; };
-  multiscan = derive2 { name="multiscan"; version="1.62.0"; sha256="09shs3hpa285v3hsbrncljxs02dm10qcbnnx9ss6b16gbs6d34wi"; depends=[Biobase]; };
-  multtest = derive2 { name="multtest"; version="2.58.0"; sha256="0s8x2rg2xp6awg2cikybgxrxpi9f91jah7dskk5dnfkazd20di4j"; depends=[Biobase BiocGenerics MASS survival]; };
-  mumosa = derive2 { name="mumosa"; version="1.10.0"; sha256="1mmhfy8lh1yd02vgw9bg32850sb5l875as8bv3xgq55c78ishlgv"; depends=[batchelor beachmat BiocGenerics BiocNeighbors BiocParallel BiocSingular DelayedArray DelayedMatrixStats igraph IRanges Matrix metapod S4Vectors ScaledMatrix scran scuttle SingleCellExperiment SummarizedExperiment uwot]; };
-  muscat = derive2 { name="muscat"; version="1.16.0"; sha256="0vasr9rwnfjxbb3y2saq7gqzis5xyamgvns2rlywdxv1jm0nr8y3"; depends=[BiocParallel blme ComplexHeatmap data_table DESeq2 dplyr edgeR ggplot2 glmmTMB limma lme4 lmerTest Matrix matrixStats progress purrr S4Vectors scales scater sctransform scuttle SingleCellExperiment SummarizedExperiment variancePartition viridis]; };
-  muscle = derive2 { name="muscle"; version="3.44.0"; sha256="0wmj0bjwr6lf7lp4bwnv94rwl2ibvdb50fwriiy742q1mm8b765x"; depends=[Biostrings]; };
-  musicatk = derive2 { name="musicatk"; version="1.12.0"; sha256="0ql8lxc8148w8692w93v2c3x87zzy6m2v5df1krhsaswyl0anpkc"; depends=[Biostrings BSgenome BSgenome_Hsapiens_UCSC_hg19 BSgenome_Hsapiens_UCSC_hg38 BSgenome_Mmusculus_UCSC_mm10 BSgenome_Mmusculus_UCSC_mm9 cluster ComplexHeatmap data_table decompTumor2Sig deconstructSigs dplyr factoextra GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 ggpubr ggrepel gridExtra gtools IRanges maftools magrittr MASS matrixTests MCMCprecision NMF philentropy plotly rlang S4Vectors shiny stringi stringr SummarizedExperiment tibble tidyr tidyverse topicmodels TxDb_Hsapiens_UCSC_hg19_knownGene TxDb_Hsapiens_UCSC_hg38_knownGene uwot VariantAnnotation]; };
-  mygene = derive2 { name="mygene"; version="1.38.0"; sha256="1a0jhcapr78yyx3z5dfsnz7bb9ahvnjq0qj9zzvdzyaxnzw0wvjm"; depends=[GenomicFeatures Hmisc httr jsonlite plyr S4Vectors sqldf]; };
-  myvariant = derive2 { name="myvariant"; version="1.32.0"; sha256="0az7a7hg4xk0lrvnq3zk5zwyf8zdyby19xzwy73zzgqiaha0b245"; depends=[GenomeInfoDb Hmisc httr jsonlite magrittr plyr S4Vectors VariantAnnotation]; };
-  mzID = derive2 { name="mzID"; version="1.40.0"; sha256="1rgkd9iv0lxj1zxh96sifwa312ivw5kl5jw82ma4fmapr4iqhzsh"; depends=[doParallel foreach iterators plyr ProtGenerics XML]; };
-  mzR = derive2 { name="mzR"; version="2.36.0"; sha256="0z6ckp69syrdzhp6n4n399k2lar3w4n2d1ji2f90951c4ds6hkh8"; depends=[Biobase BiocGenerics ncdf4 ProtGenerics Rcpp Rhdf5lib]; };
-  nanotatoR = derive2 { name="nanotatoR"; version="1.18.0"; sha256="1nnh4g4b7k6mp922pr52sxlrh6wvfyx7jhckmwrd12l1yjq010pb"; depends=[AnnotationDbi curl dplyr GenomicRanges hash httr knitr openxlsx org_Hs_eg_db rentrez rlang stringr testthat tidyverse XML]; };
-  ncGTW = derive2 { name="ncGTW"; version="1.16.0"; sha256="1dlfdzxkjy9yihd3acpr4ynj1s4387xihscx5qz0r463fcz6kr1y"; depends=[BiocParallel Rcpp xcms]; };
-  ncRNAtools = derive2 { name="ncRNAtools"; version="1.12.0"; sha256="13skjmd3v0ysc4hj3lr3f3i07dy6gqswr44mh0289cs0x65s1xis"; depends=[GenomicRanges ggplot2 httr IRanges S4Vectors xml2]; };
-  ncdfFlow = derive2 { name="ncdfFlow"; version="2.48.0"; sha256="0z9vgd8v69iq8gv23iiaxrk77j2aq8y2n5k8x9jmxphbm0cm19a0"; depends=[BH Biobase BiocGenerics cpp11 flowCore Rhdf5lib zlibbioc]; };
-  ndexr = derive2 { name="ndexr"; version="1.24.0"; sha256="1sm7j8jqpmvdbrmxys17cg8nyisjy39vi1b16c4kdcvb97b4r2vj"; depends=[httr jsonlite plyr RCX tidyr]; };
-  nearBynding = derive2 { name="nearBynding"; version="1.12.0"; sha256="114saana5jbb0bkpnaw0f52pnic5p7gsixcl34jqw5q4pdzwfz5z"; depends=[BiocGenerics dplyr GenomeInfoDb GenomicRanges ggplot2 gplots magrittr matrixStats plyranges R_utils rlang Rsamtools rtracklayer S4Vectors transport TxDb_Hsapiens_UCSC_hg19_knownGene TxDb_Hsapiens_UCSC_hg38_knownGene]; };
-  nempi = derive2 { name="nempi"; version="1.10.0"; sha256="0z12kw9iihmcgq5hy4vl914d39ghba3dmlk01rwyj5gnkac233yf"; depends=[e1071 epiNEM matrixStats mnem naturalsort nnet randomForest]; };
-  netDx = derive2 { name="netDx"; version="1.14.0"; sha256="0plq4fz6fjgcri6swpfbffpcim52r5qws6g9fb36s4y8fvpjarpw"; depends=[bigmemory BiocFileCache combinat doParallel foreach GenomeInfoDb GenomicRanges ggplot2 glmnet httr igraph IRanges MultiAssayExperiment plotrix pracma rappdirs RColorBrewer reshape2 ROCR Rtsne S4Vectors]; };
-  netOmics = derive2 { name="netOmics"; version="1.8.0"; sha256="03nyjvcr2hldsfifj0dix1bc79z05i9x2hgc5z2g9hd1jyijljyd"; depends=[AnnotationDbi dplyr ggplot2 GO_db gprofiler2 igraph magrittr minet purrr RandomWalkRestartMH tibble tidyr]; };
-  netSmooth = derive2 { name="netSmooth"; version="1.22.0"; sha256="1wkjpxk9aw1w65kxf07rw1aj64bg9c75rx88vxxrniq89iwfynwl"; depends=[cluster clusterExperiment data_table DelayedArray entropy HDF5Array Matrix scater SingleCellExperiment SummarizedExperiment]; };
-  netZooR = derive2 { name="netZooR"; version="1.6.0"; sha256="1fkq1vrdflli3vq3m4p375z3n7s4wd62ah94sp5j6szhnrz4fybh"; depends=[AnnotationDbi assertthat Biobase data_table doParallel dplyr foreach ggdendro ggplot2 GO_db GOstats gplots igraph MASS Matrix matrixcalc matrixStats nnet org_Hs_eg_db pandaR penalized RCy3 reshape reshape2 reticulate STRINGdb tidyr vegan viridisLite yarn]; };
-  netbiov = derive2 { name="netbiov"; version="1.36.0"; sha256="0igqb3wdxvjrbh4w664934yycac3qwcyfhmsz4cf2h5rif23xagf"; depends=[igraph]; };
-  netboost = derive2 { name="netboost"; version="2.10.0"; sha256="1cmyh47d61saz2a47gp5a04kf5ajd2ghscm8lvrpichm1743hsm2"; depends=[BiocStyle colorspace dynamicTreeCut impute R_utils Rcpp RcppParallel WGCNA]; };
-  nethet = derive2 { name="nethet"; version="1.34.0"; sha256="0js6vky7ilgz60kp62l3jh841lx4f1fdikklk0b3qa6fxvv6kshj"; depends=[CompQuadForm GeneNet ggm ggplot2 glasso glmnet GSA huge ICSNP limma mclust multtest mvtnorm network]; };
-  netprioR = derive2 { name="netprioR"; version="1.28.0"; sha256="02hb9jxplby5yjghycfx9cd53b9kal5ma2hwllljfp0j7iv5cfwi"; depends=[doParallel dplyr foreach ggplot2 gridExtra Matrix pROC sparseMVN]; };
-  netresponse = derive2 { name="netresponse"; version="1.62.0"; sha256="1sdmx9zah59p52sjay94zgpqbghsgx0gsgg25rdh5ayp3hy8n3z3"; depends=[BiocStyle ggplot2 graph igraph mclust minet plyr qvalue RColorBrewer reshape2 Rgraphviz rmarkdown]; };
-  ngsReports = derive2 { name="ngsReports"; version="2.4.0"; sha256="0phlm6qsvd1kzk25678lr105srwvs3hvxksjg7jlq901vnl1bhdb"; depends=[BiocGenerics Biostrings checkmate dplyr DT forcats ggdendro ggplot2 jsonlite lifecycle lubridate pander patchwork plotly readr reshape2 rlang rmarkdown scales stringr tibble tidyr tidyselect zoo]; };
-  nipalsMCIA = derive2 { name="nipalsMCIA"; version="1.0.0"; sha256="1jvbr9zxl1y0whdav26jx7fhlj4lp22pmjx8aa0id651nc76nsc3"; depends=[ComplexHeatmap dplyr fgsea ggplot2 MultiAssayExperiment pracma rlang RSpectra scales SummarizedExperiment]; };
-  nnNorm = derive2 { name="nnNorm"; version="2.66.0"; sha256="0wf48cfmmp6dljsw1iw92avk1b76z0qv9wg8lr09xpcp61ahpjnn"; depends=[marray nnet]; };
-  nnSVG = derive2 { name="nnSVG"; version="1.6.4"; sha256="02x043azyvz9kqgp3hh7avi4gcf1ywl3fpc630vl24rk9pn2rb6b"; depends=[BiocParallel BRISC Matrix matrixStats SingleCellExperiment SpatialExperiment SummarizedExperiment]; };
-  nondetects = derive2 { name="nondetects"; version="2.32.0"; sha256="0302mg5pbvbzp9rhm6wg4lfa7c7lkndysx35x8b1zskc4b1v76cv"; depends=[arm Biobase HTqPCR limma mvtnorm]; };
-  normalize450K = derive2 { name="normalize450K"; version="1.30.0"; sha256="027j1pm3l5aq5wzzqfw6rxzwiw6ir7haxwb8jc9d0h4hi7csngiw"; depends=[Biobase illuminaio quadprog]; };
-  normr = derive2 { name="normr"; version="1.28.0"; sha256="05xlqg5d5m3kd6mc8lnq7kg90bwwk5vb3d6c99pqnwr98mw5sm8k"; depends=[bamsignals GenomeInfoDb GenomicRanges IRanges qvalue Rcpp rtracklayer]; };
-  npGSEA = derive2 { name="npGSEA"; version="1.38.0"; sha256="0m53l08fz5fsip9hc65cgabwd1xrpdj8fmywklsip467k4fw7zdw"; depends=[Biobase BiocGenerics GSEABase]; };
-  nuCpos = derive2 { name="nuCpos"; version="1.20.0"; sha256="1qnmmxlabah0w4dpin4s02jzcwxk86djgal7m4s4fymh9gc3yi5q"; depends=[]; };
-  nucleR = derive2 { name="nucleR"; version="2.34.0"; sha256="12jy9s03saxcmvbh82ip8r803j3bz8kkzvgs45zl4mqjv1gsf07p"; depends=[Biobase BiocGenerics Biostrings dplyr GenomeInfoDb GenomicRanges ggplot2 IRanges magrittr Rsamtools S4Vectors ShortRead]; };
-  nucleoSim = derive2 { name="nucleoSim"; version="1.30.0"; sha256="1a0fnx97q6fgfsnplw016xk0hq5vrn9sbk11rbfbwk58kx6jzfgg"; depends=[IRanges S4Vectors]; };
-  nullranges = derive2 { name="nullranges"; version="1.8.0"; sha256="13k2ij87fw902w0f0322wk3xnjcbsnbfimvanvxxlnv0yr9d9nva"; depends=[data_table GenomeInfoDb GenomicRanges ggplot2 ggridges InteractionSet IRanges plyranges progress rlang S4Vectors scales]; };
-  occugene = derive2 { name="occugene"; version="1.62.0"; sha256="04aw765wkp8j9cgl317bxvybhqnl85zn1gjzlx8n043i8jp915pn"; depends=[]; };
-  octad = derive2 { name="octad"; version="1.4.0"; sha256="01fm8zz50phrnj1x69992zynv82xhh2zn1m7d0zax13mscsdyfbp"; depends=[AnnotationHub Biobase data_table DESeq2 dplyr EDASeq edgeR ExperimentHub foreach ggplot2 GSVA htmlwidgets httr limma magrittr octad_db plotly reshape2 Rfast rhdf5 RUVSeq S4Vectors]; };
-  odseq = derive2 { name="odseq"; version="1.30.0"; sha256="07k7029s53wi02my3c492ihc0k8wrd6ninj97mkgbq7m20si3bid"; depends=[kebabs mclust msa]; };
-  oligo = derive2 { name="oligo"; version="1.66.0"; sha256="0pqn5qslynylx235wknwj71a6j7xf5i6pb7wjm00jwrdbqwvdlp6"; depends=[affxparser affyio Biobase BiocGenerics Biostrings DBI ff oligoClasses preprocessCore RSQLite zlibbioc]; };
-  oligoClasses = derive2 { name="oligoClasses"; version="1.64.0"; sha256="1gdvjvyjfpvvrqyj9rq1l4dnq00hr8vr8knnlb9gnjk21sbcf1d7"; depends=[affyio Biobase BiocGenerics BiocManager Biostrings DBI ff foreach GenomicRanges IRanges RSQLite S4Vectors SummarizedExperiment]; };
-  omada = derive2 { name="omada"; version="1.4.0"; sha256="0nk6rsk8m4w32447adwz87vq5gnh8ymgzdqn4621hkwr123q85fx"; depends=[clValid diceR dplyr fpc genieclust ggplot2 glmnet kernlab pdfCluster Rcpp reshape]; };
-  omicRexposome = derive2 { name="omicRexposome"; version="1.24.3"; sha256="0nzpqdcpcvf2qjzrzbj27n7b2hkz668829sj2jir9dc86mv8daya"; depends=[Biobase ggplot2 ggrepel gridExtra isva limma MultiDataSet omicade4 PMA rexposome SmartSVA stringr SummarizedExperiment sva]; };
-  omicade4 = derive2 { name="omicade4"; version="1.42.0"; sha256="0i4ln95ayl1irr8sr3639x35ilysdi663kksw7g93q1ry91yav8r"; depends=[ade4 Biobase made4]; };
-  omicplotR = derive2 { name="omicplotR"; version="1.22.0"; sha256="0zqzzb463656dn9lhnmbfzxyl4qj5hqcnyd5jrxrk88v5lyy0hb1"; depends=[ALDEx2 compositions DT jsonlite knitr matrixStats rmarkdown shiny vegan zCompositions]; };
-  omicsPrint = derive2 { name="omicsPrint"; version="1.22.0"; sha256="0vax74j75id747ia0fy5zqvb0zb7bm8fmk3cysxlqlhzq8pbswhn"; depends=[MASS matrixStats MultiAssayExperiment RaggedExperiment SummarizedExperiment]; };
-  omicsViewer = derive2 { name="omicsViewer"; version="1.6.0"; sha256="1madi9s3g6sfcd141rn7v7phm4bppbhalhdkp1gcdjmm18xgg8z5"; depends=[beeswarm Biobase curl DT fastmatch fgsea flatxml ggplot2 ggseqlogo htmlwidgets httr Matrix matrixStats networkD3 openxlsx plotly psych RColorBrewer reshape2 ROCR RSQLite S4Vectors shiny shinybusy shinycssloaders shinyjs shinythemes shinyWidgets stringr SummarizedExperiment survival survminer]; };
-  ompBAM = derive2 { name="ompBAM"; version="1.6.0"; sha256="1z5vw3pwdjszcgm33hsnyl8ffjcpq5ld3y8c0kzp9j33b8jm76lr"; depends=[Rcpp zlibbioc]; };
-  oncomix = derive2 { name="oncomix"; version="1.24.0"; sha256="0a1i3bhzjbq22cg9c9dqx722hlsf4ivli3wz2wnyrigj76jmmfq2"; depends=[ggplot2 ggrepel mclust RColorBrewer SummarizedExperiment]; };
-  oncoscanR = derive2 { name="oncoscanR"; version="1.4.0"; sha256="19wzm5rlddwcmldrnhl0q5ddiybgk9nv9fvbmrvas0bzk1n6han8"; depends=[GenomicRanges IRanges magrittr readr S4Vectors]; };
-  onlineFDR = derive2 { name="onlineFDR"; version="2.10.0"; sha256="03dq7pwhamhwzlx8rzyrhsvy12r405dm1zfviivkdff8gqxlzwgm"; depends=[progress Rcpp RcppProgress]; };
-  ontoProc = derive2 { name="ontoProc"; version="1.24.0"; sha256="15dzpjj2fvj6k2pzv6sw02a5py547wa4f9arj4rqrjrsvwwm1l9q"; depends=[AnnotationHub Biobase BiocFileCache dplyr DT graph igraph magrittr ontologyIndex ontologyPlot Rgraphviz S4Vectors shiny SummarizedExperiment]; };
-  openCyto = derive2 { name="openCyto"; version="2.14.0"; sha256="12b4a65zgswzddkfdyl4j06qp7w9lkxv4h05m4z8hfff8c9x5bls"; depends=[BH Biobase BiocGenerics cpp11 data_table flowClust flowCore flowViz flowWorkspace graph ncdfFlow RBGL RColorBrewer]; };
-  openPrimeR = derive2 { name="openPrimeR"; version="1.24.0"; sha256="0jpq68pr7ky7ak4jj8hz25n8kq75jwdg0jz5sy9j4kx9gs0njl4d"; depends=[ape BiocGenerics Biostrings DECIPHER digest distr distrEx dplyr fitdistrplus foreach GenomicRanges ggplot2 Hmisc IRanges lpSolveAPI magrittr openxlsx plyr RColorBrewer reshape2 S4Vectors scales seqinr stringdist stringr uniqtag XML]; };
-  openPrimeRui = derive2 { name="openPrimeRui"; version="1.24.0"; sha256="1vymiz4zxh2d6paff29fm04h73wj1wdbrjl417lmxxn6pnffmdil"; depends=[DT openPrimeR rmarkdown shiny shinyBS shinyjs]; };
-  oposSOM = derive2 { name="oposSOM"; version="2.20.0"; sha256="0h8c1a0v4izqlkg0jkzzxn885h5whr3i9pna6vbpf0rlrp2lkfxj"; depends=[ape Biobase biomaRt fastICA fdrtool graph igraph pixmap png Rcpp RcppParallel RCurl scatterplot3d tsne XML]; };
-  oppar = derive2 { name="oppar"; version="1.30.0"; sha256="0a6hhgcklwjvi7i3p9i6c9dfrxam5vxjj9fws3vnig8353zc35p2"; depends=[Biobase GSEABase GSVA]; };
-  oppti = derive2 { name="oppti"; version="1.16.0"; sha256="0cn7pv1pjajh7kylfi4v8xx53bwcp34325hfg5aq5bz5ncsfwxlk"; depends=[devtools ggplot2 knitr limma parallelDist pheatmap RColorBrewer reshape]; };
-  optimalFlow = derive2 { name="optimalFlow"; version="1.14.0"; sha256="0ghwdj48xqgnzmg1hcl0xplsmwbc1blnd8l3kkyf8058m0m0lymr"; depends=[dbscan doParallel dplyr ellipse flowMeans foreach optimalFlowData randomForest Rfast rgl rlang robustbase transport]; };
-  orthogene = derive2 { name="orthogene"; version="1.8.0"; sha256="0kw2bd0196g15ghf5fnl79gvs9py221zalv2jz52vc3k871b0wi8"; depends=[babelgene data_table DelayedArray dplyr ggplot2 ggpubr ggtree gprofiler2 grr homologene jsonlite Matrix patchwork repmis]; };
-  orthos = derive2 { name="orthos"; version="1.0.1"; sha256="0siblsmbswcbbzgd03hh50bcq0qhn2a7ia2mbkaps3z7dx4k0ywb"; depends=[AnnotationHub basilisk BiocParallel colorspace cowplot DelayedArray dplyr ExperimentHub ggplot2 ggpubr ggrepel ggsci HDF5Array keras orthosData plyr reticulate rlang S4Vectors SummarizedExperiment tensorflow tidyr]; };
-  pRoloc = derive2 { name="pRoloc"; version="1.42.0"; sha256="14xdkcg92k0cn62vgaadmmfa1qz2r67xnn3lsrgps960gi66w2ps"; depends=[Biobase BiocGenerics BiocParallel biomaRt caret class coda dendextend e1071 FNN ggplot2 gtools hexbin kernlab knitr LaplacesDemon lattice MASS mclust mixtools MLInterfaces MSnbase mvtnorm nnet plyr proxy randomForest RColorBrewer Rcpp RcppArmadillo sampling scales]; };
-  pRolocGUI = derive2 { name="pRolocGUI"; version="2.12.0"; sha256="0m493r27n4aq7ig95gnn0di09qmcvmnzrdbks0lr2zd4p032l5gx"; depends=[Biobase BiocGenerics colorspace colourpicker dplyr DT ggplot2 MSnbase pRoloc scales shiny shinydashboard shinydashboardPlus shinyhelper shinyjs shinyWidgets]; };
-  packFinder = derive2 { name="packFinder"; version="1.14.0"; sha256="1s3sqwhzf7ll8kp5wg2riv3yxwbrssh9qpyjis83n3a19qi64jz6"; depends=[ape Biostrings GenomicRanges IRanges kmer S4Vectors]; };
-  padma = derive2 { name="padma"; version="1.12.0"; sha256="03b6zaas11i9aywlrpdhv6sv0cv6347yrw24hfpj8fym14sj67xd"; depends=[FactoMineR MultiAssayExperiment S4Vectors SummarizedExperiment]; };
-  pageRank = derive2 { name="pageRank"; version="1.12.0"; sha256="0qvcbcil6kvfvk460lzpj43h0vw2mqc967c3kfnycylwxdcgkqd1"; depends=[GenomicRanges igraph motifmatchr]; };
-  paircompviz = derive2 { name="paircompviz"; version="1.40.0"; sha256="1wi93vii4k84fp5ygvmakdw9jhl4qbnwjhfnxi0p7mv4sxxivxb4"; depends=[Rgraphviz]; };
-  pairedGSEA = derive2 { name="pairedGSEA"; version="1.2.0"; sha256="1lcp5ghbf6vabiy9661qrqn5nfl71ay64q7cf3iz9hhwip61xbdy"; depends=[aggregation BiocParallel DESeq2 DEXSeq fgsea ggplot2 limma S4Vectors SummarizedExperiment sva]; };
-  pairkat = derive2 { name="pairkat"; version="1.8.0"; sha256="14vad3fd9588yqh1cc52p43kpp5avnw10zdff4gzwgpx9yars7xs"; depends=[CompQuadForm data_table igraph KEGGREST magrittr SummarizedExperiment tibble]; };
-  pandaR = derive2 { name="pandaR"; version="1.34.0"; sha256="1562dv98hrh61n8p48779cr1824qy2jjnqgv4pmpxbnihmk3mrnw"; depends=[Biobase BiocGenerics ggplot2 hexbin igraph matrixStats plyr reshape RUnit]; };
-  panelcn_mops = derive2 { name="panelcn.mops"; version="1.24.0"; sha256="1b86bgnb0cr20ymp3zx75c178p7bjvfid6k43ip3cm7vzx86f1cv"; depends=[cn_mops GenomeInfoDb GenomicRanges IRanges Rsamtools S4Vectors]; };
-  panp = derive2 { name="panp"; version="1.72.0"; sha256="1s069hlvbxgi37bx3h7bj8k5a94b0ndkvzjp2j5fji8y72f0sfzj"; depends=[affy Biobase]; };
-  pareg = derive2 { name="pareg"; version="1.6.0"; sha256="0cvj8jx80q3d21icy9k88kc6xcb44fxmpq4sqdijglrjl7l1l2pn"; depends=[basilisk devtools doFuture doRNG DOSE dplyr foreach future ggplot2 ggraph ggrepel glue hms igraph keras logger magrittr Matrix nloptr progress proxy purrr reticulate rlang stringr tensorflow tfprobability tibble tidygraph tidyr]; };
-  parglms = derive2 { name="parglms"; version="1.34.0"; sha256="05mrnddprcwl0m701fn2h1higy47yi2fmwwzd3zq1nr2qsacnpn1"; depends=[BatchJobs BiocGenerics doParallel foreach]; };
-  parody = derive2 { name="parody"; version="1.60.0"; sha256="05mhbkhyh92bwmx37fpviprr9i4z0i6g24l71zk17gq0f8hwb4jj"; depends=[]; };
-  partCNV = derive2 { name="partCNV"; version="1.0.0"; sha256="15caglc8xs4441va2p8bd2pbz4jvlczy4hjnky7i280zzrjqx52a"; depends=[AnnotationHub data_table depmixS4 GenomicRanges magrittr Seurat SingleCellExperiment]; };
-  pathRender = derive2 { name="pathRender"; version="1.70.0"; sha256="04ij9f9vnzj4qzk8cgvrkd0jhjx4qh5g3cv25drd230v5x492lhz"; depends=[AnnotationDbi cMAP graph RColorBrewer Rgraphviz]; };
-  pathifier = derive2 { name="pathifier"; version="1.40.0"; sha256="0y5hc1d5026kh3i05qpsjigfzhlp4h2f87ny08qbf3k9x7lndpbn"; depends=[princurve R_oo]; };
-  pathview = derive2 { name="pathview"; version="1.42.0"; sha256="17kl7yvpjhsb52kz1pw3jnk6s480lnpvvh9rragndixsl8bkmqmc"; depends=[AnnotationDbi graph KEGGgraph KEGGREST org_Hs_eg_db png Rgraphviz XML]; };
-  pathwayPCA = derive2 { name="pathwayPCA"; version="1.18.0"; sha256="14d0anbfwxd666gyhgnqjayr1ivhayq2a8cpgi0w1ycpsbylylp4"; depends=[lars survival]; };
-  paxtoolsr = derive2 { name="paxtoolsr"; version="1.36.0"; sha256="07rkyn3i6v98lkjz13la0x1g81zhnyyr44jdid5c2dydlfpchl7h"; depends=[httr igraph jsonlite plyr R_utils rappdirs readr rJava rjson XML]; };
-  pcaExplorer = derive2 { name="pcaExplorer"; version="2.28.0"; sha256="0ihc9jqjy0nl4pfgcxczfdf973nb99325agk73y0222ad1mpkc07"; depends=[AnnotationDbi base64enc biomaRt DESeq2 DT genefilter GenomicRanges ggplot2 ggrepel GO_db GOstats heatmaply IRanges knitr limma NMF pheatmap plotly plyr rmarkdown S4Vectors scales shiny shinyAce shinyBS shinydashboard SummarizedExperiment threejs tidyr topGO]; };
-  pcaMethods = derive2 { name="pcaMethods"; version="1.94.0"; sha256="1asm4iafdzm98iv2j9sxvn5y9ss2p679cx7gwjipq8mf1d7bzfp0"; depends=[Biobase BiocGenerics MASS Rcpp]; };
-  pcxn = derive2 { name="pcxn"; version="2.24.0"; sha256="1m8vs3bk7grc1mj4rh6vr50al0m1a79f6icbycfqfi1cqgz9pmi7"; depends=[pcxnData pheatmap]; };
-  pdInfoBuilder = derive2 { name="pdInfoBuilder"; version="1.66.0"; sha256="1bcmd6g6qmddcxyafqmrk4zv8n14mjkim87ks8ha3rjyg5cpc9cs"; depends=[affxparser Biobase BiocGenerics Biostrings DBI IRanges oligo oligoClasses RSQLite S4Vectors]; };
-  peakPantheR = derive2 { name="peakPantheR"; version="1.16.1"; sha256="087i47mzv7cs403injzryf6vxil4p2all4vvznfd10z879zkl7gr"; depends=[bslib doParallel DT foreach ggplot2 gridExtra lubridate minpack_lm MSnbase mzR pracma scales shiny shinycssloaders stringr XML]; };
-  peco = derive2 { name="peco"; version="1.14.0"; sha256="0jhz9y6d9sfc6azw74rx5lcf421a3i9pb936rghlym8n24b72jvl"; depends=[assertthat circular conicfit doParallel foreach genlasso scater SingleCellExperiment SummarizedExperiment]; };
-  pengls = derive2 { name="pengls"; version="1.8.0"; sha256="1b5xibq5z4lq6qr4s37r9w5ax2vci89a1hfi66l4xvbpm76zlckh"; depends=[BiocParallel glmnet nlme]; };
-  pepStat = derive2 { name="pepStat"; version="1.36.0"; sha256="0rd1zwjnp0zmigscx38xzys29jqpkkg9fp24asvqikm1v3gpli3l"; depends=[Biobase data_table fields GenomicRanges ggplot2 IRanges limma plyr]; };
-  pepXMLTab = derive2 { name="pepXMLTab"; version="1.36.0"; sha256="1d0n27xfyqdxayc9s1w5j2pj7x82kwh80kszr46f30yhfd61l6j4"; depends=[XML]; };
-  periodicDNA = derive2 { name="periodicDNA"; version="1.12.0"; sha256="08qf0sqy71cr2y9xj596igm4j7zym9ny5q6xd67jrp5iqwysyfzq"; depends=[BiocParallel Biostrings BSgenome cowplot GenomeInfoDb GenomicRanges ggplot2 IRanges magrittr rtracklayer S4Vectors zoo]; };
-  pfamAnalyzeR = derive2 { name="pfamAnalyzeR"; version="1.2.0"; sha256="0qxxp7kfwbb9q471mgwc4bd8dmyid56ddyzw2jlg4gb1wcq9py67"; depends=[dplyr magrittr readr stringr tibble]; };
-  pgca = derive2 { name="pgca"; version="1.26.0"; sha256="0sp0rhrs36hhyydswi00321cw13m4hcyf6a430wc4xsmia29463s"; depends=[]; };
-  phantasus = derive2 { name="phantasus"; version="1.22.2"; sha256="1ynwx1bbzj1xm6hci4kxqgmzargarg85saqz1219axj1gsyhljfn"; depends=[AnnotationDbi assertthat Biobase ccaPP curl data_table DESeq2 edgeR fgsea GEOquery ggplot2 gtable htmltools httpuv httr jsonlite limma Matrix opencpu pheatmap protolite rhdf5 Rook scales stringr svglite]; };
-  phantasusLite = derive2 { name="phantasusLite"; version="1.0.0"; sha256="0pq50l0lnx3b8v95k37cj7dcm60ggar0zs6j4qv3qpjd37aqqbwa"; depends=[Biobase data_table httr rhdf5client stringr]; };
-  phemd = derive2 { name="phemd"; version="1.18.0"; sha256="174jp26insq2mwf9yw9bls4i9b2a8vccfkrg2h1dzvyyk513bi83"; depends=[Biobase BiocGenerics cluster cowplot destiny ggplot2 igraph maptree monocle phateR pheatmap pracma RANN RColorBrewer reticulate Rtsne S4Vectors scatterplot3d Seurat SingleCellExperiment SummarizedExperiment transport VGAM]; };
-  phenoTest = derive2 { name="phenoTest"; version="1.50.0"; sha256="0hrmbjanc5sscwc6948w5np4phz4ax8qldasi4cg5n0x18hqr3h5"; depends=[annotate AnnotationDbi Biobase biomaRt BMA Category ellipse genefilter ggplot2 gplots GSEABase Heatplus hgu133a_db Hmisc hopach limma mgcv survival xtable]; };
-  phenomis = derive2 { name="phenomis"; version="1.4.0"; sha256="1zfrw4s01l030i4kpn07kw4gg9324s8aikkvv0pqm1jlv1ajj01g"; depends=[Biobase biodb biodbChebi data_table futile_logger ggplot2 ggrepel htmlwidgets igraph limma MultiAssayExperiment MultiDataSet plotly PMCMRplus ranger RColorBrewer ropls SummarizedExperiment tibble tidyr VennDiagram]; };
-  phenopath = derive2 { name="phenopath"; version="1.26.0"; sha256="114wpnsszivxjp5q0xr7vz4g249dhxzx9aqvcx3bky5s7vqf9q94"; depends=[dplyr ggplot2 Rcpp SummarizedExperiment tibble tidyr]; };
-  philr = derive2 { name="philr"; version="1.28.0"; sha256="1kd7j8ah7v15xdkks4bjww72pbb45b2nvjygk65wnjc8qs53zngw"; depends=[ape ggplot2 ggtree phangorn tidyr]; };
-  phosphonormalizer = derive2 { name="phosphonormalizer"; version="1.26.0"; sha256="1xs9vdf0kh2dpnbn1cdfw64gq4nzawm53vrlq83qhccfgfxvvx9i"; depends=[matrixStats plyr]; };
-  phyloseq = derive2 { name="phyloseq"; version="1.46.0"; sha256="06gnpjcniqm8i52xh9xl3nn0wm9nn9rkqd3w3fjv7ii142xypjln"; depends=[ade4 ape Biobase BiocGenerics biomformat Biostrings cluster data_table foreach ggplot2 igraph multtest plyr reshape2 scales vegan]; };
-  piano = derive2 { name="piano"; version="2.18.0"; sha256="0rw55ig3pbvi2kyg10rx60ldcncsd4gki2h1zpr1nhmqg3fv0l5y"; depends=[Biobase BiocGenerics DT fgsea gplots htmlwidgets igraph marray relations scales shiny shinydashboard shinyjs visNetwork]; };
-  pickgene = derive2 { name="pickgene"; version="1.74.0"; sha256="0dp862069sxyaxmniszn9hggpjqch3dg9s3q5f7iqdb9gijvz8jx"; depends=[MASS]; };
-  pipeComp = derive2 { name="pipeComp"; version="1.12.0"; sha256="0wf2vw4r83l6jwdp9i57g7rv69j9wg6rzcamsvb3ksxfj0yjsf6r"; depends=[aricode BiocParallel circlize clue cluster ComplexHeatmap cowplot dplyr ggplot2 intrinsicDimension knitr Matrix matrixStats randomcoloR RColorBrewer reshape2 Rtsne S4Vectors scales scater scran Seurat SingleCellExperiment SummarizedExperiment uwot viridisLite]; };
-  pipeFrame = derive2 { name="pipeFrame"; version="1.18.0"; sha256="1vvxjb0hzr1y09yl39lsayvpy15mc3199s6khgh3v8416mhxhwn9"; depends=[Biostrings BSgenome digest GenomeInfoDb magrittr rmarkdown visNetwork]; };
-  planet = derive2 { name="planet"; version="1.10.0"; sha256="10imcjax2ymqwkrx1li5dmi0yy42nn4gl029czgrsnk8fcfkijmj"; depends=[dplyr magrittr tibble]; };
-  planttfhunter = derive2 { name="planttfhunter"; version="1.2.0"; sha256="18p9ms5vz8bis6v07dh9zn3qm0bck71p1rflzslcqgnx2y8icnc7"; depends=[Biostrings SummarizedExperiment]; };
-  plasmut = derive2 { name="plasmut"; version="1.0.0"; sha256="1b27ykiraprda3a1sg008wrkkm5vmbhb5mf3sxgg0b136ldfqv1h"; depends=[dplyr tibble]; };
-  plgem = derive2 { name="plgem"; version="1.74.0"; sha256="0s5hia3xvddi0gaawcr5zsh34v6sh2zdi5gsjis8ar2g2p7agqgg"; depends=[Biobase MASS]; };
-  plier = derive2 { name="plier"; version="1.72.0"; sha256="1a4sb7ni6byzdhh5wkfg7z47za8cr6q85b7349wz02c87axjhn31"; depends=[affy Biobase]; };
-  plotGrouper = derive2 { name="plotGrouper"; version="1.20.0"; sha256="0f3vnv6kmx62rfxdqfyn1j8npda18ry39y1cxxdghpxbnvl9678d"; depends=[colourpicker dplyr egg ggplot2 ggpubr gridExtra gtable Hmisc magrittr readr readxl rlang scales shiny shinythemes stringr tibble tidyr]; };
-  plotgardener = derive2 { name="plotgardener"; version="1.8.2"; sha256="0mh025ki2i35pm5a51sy5nak1h2ygzakphjj74n0d0732a00xykj"; depends=[curl data_table dplyr GenomeInfoDb GenomicRanges ggplotify IRanges plyranges purrr RColorBrewer Rcpp rlang strawr withr]; };
-  plyinteractions = derive2 { name="plyinteractions"; version="1.0.0"; sha256="1f11mnaykvr1knzymr73ivrfwnsbnr8gdb4wl3hr5g0p2mhl3ir6"; depends=[BiocGenerics dplyr GenomeInfoDb GenomicRanges InteractionSet IRanges plyranges rlang S4Vectors tibble tidyselect]; };
-  plyranges = derive2 { name="plyranges"; version="1.22.0"; sha256="1z4pc9slbd6ji3c6g9flxhvvf0anjmywrlnjblv1mpgsh88avp7w"; depends=[BiocGenerics dplyr GenomeInfoDb GenomicAlignments GenomicRanges IRanges magrittr rlang Rsamtools rtracklayer S4Vectors tidyselect]; };
-  pmm = derive2 { name="pmm"; version="1.34.0"; sha256="0hcm03z7z4fsxlr0g1jwpqmwmq17pzagwkfds70p0ldixrs5zfrw"; depends=[lme4]; };
-  pmp = derive2 { name="pmp"; version="1.14.1"; sha256="03zk1p952p938vhiw5s71kqh7bi88xb2rh6gp104fcb8z4lj2sqb"; depends=[ggplot2 impute matrixStats missForest pcaMethods reshape2 S4Vectors SummarizedExperiment]; };
-  podkat = derive2 { name="podkat"; version="1.34.0"; sha256="0003237bhwyrvlfsb5vncbq76l74i9y0cvh0zmbfpbqz8d72nf98"; depends=[Biobase BiocGenerics Biostrings BSgenome GenomeInfoDb GenomicRanges IRanges Matrix Rcpp Rhtslib Rsamtools]; };
-  pogos = derive2 { name="pogos"; version="1.22.0"; sha256="0rx60m4jmw8a7ha6nkszachk4dl0bjv0n4mvgvi2kiy7a3s3p6zp"; depends=[ggplot2 httr ontoProc rjson S4Vectors shiny]; };
-  polyester = derive2 { name="polyester"; version="1.38.0"; sha256="1iycdxj0jhh2faclfzflp2cjc2zmxmhy03avv75h0qg3j5kf35l4"; depends=[Biostrings IRanges limma logspline S4Vectors zlibbioc]; };
-  powerTCR = derive2 { name="powerTCR"; version="1.22.0"; sha256="06fmphdq95pjbbvm8m8h1wajbp3vhl0zj7ddbzks9fy7ankp1n3i"; depends=[cubature doParallel evmix foreach magrittr purrr truncdist vegan VGAM]; };
-  ppcseq = derive2 { name="ppcseq"; version="1.10.0"; sha256="01g67bskk71imkb04ln3cngbdf23lvaaldsvbrrk6sym51l3c3mn"; depends=[benchmarkme BH dplyr edgeR foreach ggplot2 lifecycle magrittr purrr Rcpp RcppEigen RcppParallel rlang rstan rstantools StanHeaders tibble tidybayes tidyr]; };
-  pqsfinder = derive2 { name="pqsfinder"; version="2.18.0"; sha256="0bm4rp6dvk9y8i3mj762rjjna9w75j6ggkkd60aqddidx4dicc6b"; depends=[BH Biostrings GenomicRanges IRanges Rcpp S4Vectors]; };
-  pram = derive2 { name="pram"; version="1.18.0"; sha256="1zid1ra1b6qa6c8xw5z9jclkkjv5r61rzhw0xikm5mamg4mhvv4x"; depends=[BiocGenerics BiocParallel data_table GenomeInfoDb GenomicAlignments GenomicRanges IRanges Rsamtools rtracklayer S4Vectors]; };
-  prebs = derive2 { name="prebs"; version="1.42.0"; sha256="1zg73x9ygllxrjhswvz9bv5lacnfxlaq56y34j6zkvj3zmcpqx4g"; depends=[affy Biobase GenomeInfoDb GenomicAlignments GenomicRanges IRanges RPA S4Vectors]; };
-  preciseTAD = derive2 { name="preciseTAD"; version="1.12.0"; sha256="1vf71x59wghiq78ns0xfr587rarzpcnzkik78xghnpkidk16183s"; depends=[caret cluster dbscan doSNOW e1071 foreach GenomicRanges gtools IRanges ModelMetrics pbapply pROC PRROC randomForest rCGH S4Vectors]; };
-  preprocessCore = derive2 { name="preprocessCore"; version="1.64.0"; sha256="15fy3vwnjx6rwrkhbwxyvdykkfdis8c0m18x6y7irvyij9lm6x1y"; depends=[]; };
-  primirTSS = derive2 { name="primirTSS"; version="1.20.0"; sha256="1gzswcihphq6vc9n0cshsf8nznysa1f738cv6l9mjkzshj2f3bxq"; depends=[BiocGenerics Biostrings BSgenome_Hsapiens_UCSC_hg38 dplyr GenomicRanges GenomicScores Gviz IRanges JASPAR2018 phastCons100way_UCSC_hg38 purrr R_utils rtracklayer S4Vectors shiny stringr TFBSTools tibble tidyr]; };
-  proActiv = derive2 { name="proActiv"; version="1.12.0"; sha256="00cm99hgcrirdj1xrkg06q2r7idy0fajw8k33934m2622si7lwhj"; depends=[AnnotationDbi BiocParallel data_table DESeq2 dplyr GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 gplots IRanges rlang S4Vectors scales SummarizedExperiment tibble]; };
-  proBAMr = derive2 { name="proBAMr"; version="1.36.0"; sha256="0jn0cv48nfykyilmbbpdapxwfslrdby2j83s7f2mm3hbrikvk11r"; depends=[AnnotationDbi Biostrings GenomicFeatures GenomicRanges IRanges rtracklayer]; };
-  proDA = derive2 { name="proDA"; version="1.16.0"; sha256="08zs0lapq9qynivrainh29l0flz0g6w68xzdf13hr9y1lizs11vp"; depends=[BiocGenerics extraDistr S4Vectors SummarizedExperiment]; };
-  procoil = derive2 { name="procoil"; version="2.30.0"; sha256="020sj33sj333cb5bvvld7rsxc8kwzkl996y11f6n8h5zs3flqbn1"; depends=[Biostrings kebabs S4Vectors]; };
-  profileScoreDist = derive2 { name="profileScoreDist"; version="1.30.0"; sha256="1x34mqb7d5zb1nqp6zh2s3bx95qxaizyn6bi11vs84qvp4myqmws"; depends=[BiocGenerics Rcpp]; };
-  profileplyr = derive2 { name="profileplyr"; version="1.18.0"; sha256="1cng4l5b1mfx3iqx7gis3p9s0iyhrjm554gcdhg15hpydapgx7nv"; depends=[BiocGenerics BiocParallel ChIPseeker circlize ComplexHeatmap dplyr EnrichedHeatmap GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 IRanges magrittr org_Hs_eg_db org_Mm_eg_db pheatmap R_utils rGREAT rjson rlang Rsamtools rtracklayer S4Vectors soGGi SummarizedExperiment tidyr tiff TxDb_Hsapiens_UCSC_hg19_knownGene TxDb_Hsapiens_UCSC_hg38_knownGene TxDb_Mmusculus_UCSC_mm10_knownGene TxDb_Mmusculus_UCSC_mm9_knownGene]; };
-  progeny = derive2 { name="progeny"; version="1.24.0"; sha256="1plgwi2fmx7bh648fqpzzfqnh84fsgnn5jfcbdf9yia6zzigicql"; depends=[Biobase decoupleR dplyr ggplot2 ggrepel gridExtra reshape2 tidyr]; };
-  projectR = derive2 { name="projectR"; version="1.18.0"; sha256="1jg8nkkh8xc2fiw94h69saira55gm9qjjiv206cac9hi49fjw1k8"; depends=[cluster cowplot dplyr ggalluvial ggplot2 ggrepel limma Matrix MatrixModels NMF RColorBrewer reshape2 ROCR scales tsne umap viridis]; };
-  protGear = derive2 { name="protGear"; version="1.6.0"; sha256="0r8md32vxjzarjldr9vsh3k0ms4zgqm9c7pp2flanbyinnqlfnxv"; depends=[Biobase data_table dplyr factoextra FactoMineR flexdashboard genefilter GGally ggplot2 ggpubr gtools htmltools Kendall knitr limma magrittr MASS pheatmap plotly plyr purrr readr remotes rlang rmarkdown shiny shinydashboard styler tibble tidyr vsn]; };
-  proteinProfiles = derive2 { name="proteinProfiles"; version="1.42.0"; sha256="152nv9m4pzq7jh37xl4shv5g71w490cxqcah2lqprpgd6mwc5ac1"; depends=[]; };
-  psichomics = derive2 { name="psichomics"; version="1.28.1"; sha256="1kajq0xx3k4zwfk1kzh96av1a8zjs58iphvf034xnpdqkjxgj07c"; depends=[AnnotationDbi AnnotationHub BiocFileCache cluster colourpicker data_table digest dplyr DT edgeR fastICA fastmatch ggplot2 ggrepel highcharter htmltools httr jsonlite limma pairsD3 plyr purrr R_utils Rcpp recount reshape2 Rfast shiny shinyBS shinyjs stringr SummarizedExperiment survival XML xtable]; };
-  psygenet2r = derive2 { name="psygenet2r"; version="1.34.1"; sha256="08qjzj76vf89l0v8lfchrryvqpb049za0qpgldxzr8kxwzqx1bl5"; depends=[BgeeDB Biobase biomaRt ggplot2 GO_db igraph labeling RCurl reshape2 stringr topGO]; };
-  ptairMS = derive2 { name="ptairMS"; version="1.10.0"; sha256="0qjnbx91vdj6hbiri7nh3q53p8hi0vnjxq8hcwrsqa5ar70k38hz"; depends=[Biobase bit64 chron data_table doParallel DT enviPat foreach ggplot2 ggpubr gridExtra Hmisc minpack_lm MSnbase plotly Rcpp rhdf5 rlang scales shiny shinyscreenshot signal]; };
-  puma = derive2 { name="puma"; version="3.44.0"; sha256="1s50gf44psg01p8c84rp89hkic7bcxyk9wyzq8b7xphvilgy4gdk"; depends=[affy affyio Biobase mclust oligo oligoClasses]; };
-  pvac = derive2 { name="pvac"; version="1.50.0"; sha256="073ah4d92kqgaxcbyvn7v17bfj0303g5zmdwpmm73rgxl9zj2idd"; depends=[affy Biobase]; };
-  pvca = derive2 { name="pvca"; version="1.42.0"; sha256="0l2d8yqbqb9ra04adzlldjkcnpmd01ziia40k4p5z265f0apxwvc"; depends=[Biobase lme4 Matrix vsn]; };
-  pwOmics = derive2 { name="pwOmics"; version="1.34.0"; sha256="0sq98v0ln6y0mnl5xhk90j66zzvxwgbzr15xcbyn1f51a9jil21l"; depends=[AnnotationDbi AnnotationHub Biobase BiocGenerics biomaRt data_table GenomicRanges gplots graph igraph rBiopaxParser STRINGdb]; };
-  qPLEXanalyzer = derive2 { name="qPLEXanalyzer"; version="1.20.0"; sha256="1iy4d6nlbvinqqjynlixv2j3fy2vnyrjgs39kn5grj1sivbykr46"; depends=[assertthat Biobase BiocGenerics Biostrings dplyr ggdendro ggplot2 IRanges limma magrittr MSnbase preprocessCore purrr RColorBrewer readr rlang scales stringr tibble tidyr tidyselect]; };
-  qckitfastq = derive2 { name="qckitfastq"; version="1.18.0"; sha256="0fa9cg8nmsch13snk5n81zvm7f2d1ddhlbfxx9dl8g7kam2lc6i1"; depends=[data_table dplyr ggplot2 magrittr Rcpp reshape2 rlang RSeqAn seqTools zlibbioc]; };
-  qcmetrics = derive2 { name="qcmetrics"; version="1.40.1"; sha256="09z3j1xml3yn7lwmd4rfxiz6yws3qkzdxhfvd68hw6k0xjlziglk"; depends=[Biobase knitr pander S4Vectors xtable]; };
-  qmtools = derive2 { name="qmtools"; version="1.6.0"; sha256="0p1455wsl8ca2rjzvzv2ifwlfa3jy4pp2nqxd3kd6w9wyp839q05"; depends=[ggplot2 heatmaply igraph limma MsCoreUtils patchwork rlang scales SummarizedExperiment VIM]; };
-  qpcrNorm = derive2 { name="qpcrNorm"; version="1.60.0"; sha256="0isjj3r89r49jrb0nh8im4kj22hjyic27j9s14n5z7rhkmsn3yac"; depends=[affy Biobase limma]; };
-  qpgraph = derive2 { name="qpgraph"; version="2.36.0"; sha256="03vk1msbgph6ig3hz34p1lb0rv7y1x8ylmm80d1n3yhmk61q1jd4"; depends=[annotate AnnotationDbi Biobase BiocParallel GenomeInfoDb GenomicFeatures GenomicRanges graph IRanges Matrix mvtnorm qtl Rgraphviz S4Vectors]; };
-  qsea = derive2 { name="qsea"; version="1.28.0"; sha256="0iz12lasqnqc05bwyf6m8816ra9krvz3c12bx7d7gn3p6v3xl6r7"; depends=[BiocGenerics BiocParallel Biostrings BSgenome GenomeInfoDb GenomicRanges gtools HMMcopy IRanges limma Rsamtools rtracklayer S4Vectors zoo]; };
-  qsmooth = derive2 { name="qsmooth"; version="1.18.0"; sha256="1bwg9m0w5kwv2xggnif1a2qsq5wwl50k4d4bdvi3bx28hrznig71"; depends=[Hmisc SummarizedExperiment sva]; };
-  qsvaR = derive2 { name="qsvaR"; version="1.6.0"; sha256="1n018awki3m58r63l7rihzc19si1ri4bwvskdjgys6j2dsrc9wsc"; depends=[ggplot2 SummarizedExperiment sva]; };
-  quantiseqr = derive2 { name="quantiseqr"; version="1.10.0"; sha256="01aysyskglbwk6m5m4y8aiav5w60kf2gk8jswlks7zf1c5j02l4y"; depends=[Biobase ggplot2 limSolve MASS preprocessCore rlang SummarizedExperiment tidyr]; };
-  quantro = derive2 { name="quantro"; version="1.36.0"; sha256="032qxwgldl1hbgsgb5q3fi7nfg1nx3k0yppqkvim5cif613m1nzq"; depends=[Biobase doParallel foreach ggplot2 iterators minfi RColorBrewer]; };
-  quantsmooth = derive2 { name="quantsmooth"; version="1.68.0"; sha256="050nnwhxk3ld615f6ij4cc3d6wzrrxykvv02fr20fg5gzdj0z08a"; depends=[quantreg]; };
-  qusage = derive2 { name="qusage"; version="2.36.0"; sha256="1qqsj92fq32j4rbmrnkabnjbyn786c4vxp7qcf99zlpdv0k8ladw"; depends=[Biobase emmeans fftw limma nlme]; };
-  qvalue = derive2 { name="qvalue"; version="2.34.0"; sha256="10v5khnrs1fa84d430zy52f9466rwb1byaw1l3c9nivbhmaxhvyi"; depends=[ggplot2 reshape2]; };
-  r3Cseq = derive2 { name="r3Cseq"; version="1.48.0"; sha256="1llkfcy13h0c973703jmpgp2n6xxfsizb9iw1wxzgkbp1v0iy268"; depends=[Biostrings data_table GenomeInfoDb GenomicRanges IRanges qvalue RColorBrewer Rsamtools rtracklayer sqldf VGAM]; };
-  rBiopaxParser = derive2 { name="rBiopaxParser"; version="2.42.0"; sha256="1zya8r9h93jcpggjlj3v363jmxzwah4mrn2kr2i65lp9lsbb4p17"; depends=[data_table XML]; };
-  rCGH = derive2 { name="rCGH"; version="1.32.0"; sha256="1b1n8g0bwkxq090jk330r75sh7aamfbx7d09i784mhaqnrrmfy1z"; depends=[aCGH affy AnnotationDbi DNAcopy GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 IRanges lattice limma mclust org_Hs_eg_db plyr shiny TxDb_Hsapiens_UCSC_hg18_knownGene TxDb_Hsapiens_UCSC_hg19_knownGene TxDb_Hsapiens_UCSC_hg38_knownGene]; };
-  rDGIdb = derive2 { name="rDGIdb"; version="1.28.0"; sha256="1g4bnf21wygch93j3v0wrpf6qbmcs3alxhbdh8zi874iqv5mfncc"; depends=[httr jsonlite]; };
-  rGADEM = derive2 { name="rGADEM"; version="2.50.0"; sha256="14jcsqb56vn67hjmcjjnwswzbilsarkk8kblc715c7da72q7fzpn"; depends=[Biostrings BSgenome GenomicRanges IRanges seqLogo]; };
-  rGREAT = derive2 { name="rGREAT"; version="2.4.0"; sha256="09fvmfiavawfwbxaj1585l2n00fibx9z3r17dv06hc6b40a1sa12"; depends=[AnnotationDbi circlize digest doParallel DT foreach GenomeInfoDb GenomicFeatures GenomicRanges GetoptLong GlobalOptions GO_db IRanges org_Hs_eg_db progress RColorBrewer Rcpp RCurl rjson S4Vectors shiny TxDb_Hsapiens_UCSC_hg19_knownGene TxDb_Hsapiens_UCSC_hg38_knownGene]; };
-  rGenomeTracks = derive2 { name="rGenomeTracks"; version="1.8.0"; sha256="0hdvqri97pbin5hj687ng9alw0wsyh7jx9sfl4n46i1kwlb56ijk"; depends=[imager reticulate rGenomeTracksData]; };
-  rRDP = derive2 { name="rRDP"; version="1.36.0"; sha256="0y7l4qqsqfn3l9wvd89vffijqlwkabizidia6sq953f4hardcmrc"; depends=[Biostrings]; };
-  rSWeeP = derive2 { name="rSWeeP"; version="1.14.0"; sha256="0r1n5j2g7d5cnd5cwyg40k0r3jmfv21aq8qd566kcd62wl537zim"; depends=[pracma]; };
-  rScudo = derive2 { name="rScudo"; version="1.18.1"; sha256="167khkv93xlx7vdqg4k5b0gyk9v8vl4w30dfbfbrrrzcdzb8h444"; depends=[Biobase BiocGenerics igraph S4Vectors stringr SummarizedExperiment]; };
-  rTRM = derive2 { name="rTRM"; version="1.40.0"; sha256="1qs74lvl5grc8dh9v8awyia9rjbgic7kf4c7ff61dmdglwwjkqak"; depends=[AnnotationDbi DBI igraph RSQLite]; };
-  rTRMui = derive2 { name="rTRMui"; version="1.40.0"; sha256="1kp27wmqb6hrd2zghss36sail03acdvf3md44xvij2c0q1xn5pxm"; depends=[MotifDb org_Hs_eg_db org_Mm_eg_db rTRM shiny]; };
-  rWikiPathways = derive2 { name="rWikiPathways"; version="1.22.1"; sha256="1d4kjdqafkky99w6mx32bc2p7m4lfrq8f7sdg8ixzgnw5w5kppwp"; depends=[data_table dplyr httr lubridate purrr RCurl readr rjson stringr tidyr XML]; };
-  raer = derive2 { name="raer"; version="1.0.2"; sha256="0jh2hpv0mrhxnpks00b8ap3ad784sjlc75lnybqgifvpkvbnyl13"; depends=[BiocGenerics BiocParallel Biostrings BSgenome cli data_table GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges IRanges Matrix R_utils Rhtslib Rsamtools rtracklayer S4Vectors SingleCellExperiment SummarizedExperiment]; };
-  rain = derive2 { name="rain"; version="1.36.0"; sha256="0cf98khyjdnm1qpdnbmk9wnc2yicjddsq61dzp59z9sr0gqbljmy"; depends=[gmp multtest]; };
-  ramr = derive2 { name="ramr"; version="1.10.0"; sha256="1j32jg5z77wic1radm7kxqzvx14bc5llaad1j21s3g825z5g98y4"; depends=[BiocGenerics doParallel doRNG EnvStats ExtDist foreach GenomicRanges ggplot2 IRanges matrixStats reshape2 S4Vectors]; };
-  ramwas = derive2 { name="ramwas"; version="1.26.0"; sha256="0nldil34iji00flczvcmkrkfl8ywi7ms96ki28ywf0lcrjdc8hjb"; depends=[BiocGenerics biomaRt Biostrings digest filematrix GenomicAlignments glmnet KernSmooth Rsamtools]; };
-  randPack = derive2 { name="randPack"; version="1.48.0"; sha256="1qf188l25n8rzg8lzqnbkz73xwvjcj5s0x9sr5qgxy95jbf0qqfk"; depends=[Biobase]; };
-  randRotation = derive2 { name="randRotation"; version="1.14.0"; sha256="0lsw29mhzq017j22a3wb3dlyyrads8c2bkdb5m1bhsiwgg124wsr"; depends=[Rdpack]; };
-  rawrr = derive2 { name="rawrr"; version="1.10.2"; sha256="1wygx3qpsl518wgjhcp69r5bkcg7k30jafl9zzbd6m972mbc6pqh"; depends=[]; };
-  rbsurv = derive2 { name="rbsurv"; version="2.60.0"; sha256="01ksmdhzj8ra2is2j9np1l4b96kxyrmbvnfzmmvc43n7fvbv9ach"; depends=[Biobase survival]; };
-  rcellminer = derive2 { name="rcellminer"; version="2.24.0"; sha256="1h2x16b8ad27mmdhx8ary5l2wsgarfldi93ib3iv0iaj7ip2nvjw"; depends=[Biobase ggplot2 gplots rcellminerData shiny stringr]; };
-  rebook = derive2 { name="rebook"; version="1.12.0"; sha256="0ybd6klki4drb0kq45sf36vz2811cr9qmizi9vjf2j6ab7x3m0b4"; depends=[BiocStyle dir_expiry filelock knitr rmarkdown]; };
-  receptLoss = derive2 { name="receptLoss"; version="1.14.0"; sha256="0rdapj58cfxl7jv5bk4jradx6rzq7g3r3vv7p0zwvl0b16ixgcjc"; depends=[dplyr ggplot2 magrittr SummarizedExperiment tidyr]; };
-  reconsi = derive2 { name="reconsi"; version="1.14.0"; sha256="1siwbbrlbqid8vwf0a4rx9y0h1w21lh4y51jm83dfspnhh2dvya9"; depends=[ggplot2 ks Matrix matrixStats phyloseq reshape2]; };
-  recount = derive2 { name="recount"; version="1.28.0"; sha256="1nn2fr4ycr7ki9kf00g4lhz1g46lnd9jf813x2ss7ryfzkrkfq7g"; depends=[BiocParallel derfinder downloader GenomeInfoDb GenomicRanges GEOquery IRanges RCurl rentrez rtracklayer S4Vectors SummarizedExperiment]; };
-  recount3 = derive2 { name="recount3"; version="1.12.0"; sha256="0zn4jl197wgri3kyvhh2p3s15fzl66km6kbl2yczy000fhryfijl"; depends=[BiocFileCache data_table GenomicRanges httr Matrix R_utils rtracklayer S4Vectors sessioninfo SummarizedExperiment]; };
-  recountmethylation = derive2 { name="recountmethylation"; version="1.12.0"; sha256="1zv72m9n1vwv1qvlv1700vxlxrwzncjqqf8lqac4792aqwykl78l"; depends=[basilisk BiocFileCache DelayedMatrixStats HDF5Array minfi R_utils RCurl reticulate rhdf5 S4Vectors]; };
-  recoup = derive2 { name="recoup"; version="1.30.0"; sha256="1c2kpqbvax1wms0d1mxv8vyqmj9h1xn3wxzqnvd2xwfhy57k29kw"; depends=[BiocGenerics biomaRt Biostrings circlize ComplexHeatmap GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 httr IRanges Rsamtools RSQLite rtracklayer S4Vectors stringr]; };
-  regionReport = derive2 { name="regionReport"; version="1.36.0"; sha256="1nki9k66fv77499zvi7k1vlnxwfiyp09ylirqvavjlgyb9j6avk7"; depends=[BiocStyle DEFormats derfinder DESeq2 GenomeInfoDb GenomicRanges knitr knitrBootstrap RefManageR rmarkdown S4Vectors SummarizedExperiment]; };
-  regionalpcs = derive2 { name="regionalpcs"; version="1.0.0"; sha256="0ga0x7k4ll656i40caa06jz3yd9hsvvynr0ypw58yznwamixssp1"; depends=[dplyr GenomicRanges PCAtools tibble]; };
-  regioneR = derive2 { name="regioneR"; version="1.34.0"; sha256="1qcgbj7d2fngs3p9a9apnj14x35kc651fy3m0651dnqrxz8j5yij"; depends=[Biostrings BSgenome GenomeInfoDb GenomicRanges IRanges memoise rtracklayer S4Vectors]; };
-  regioneReloaded = derive2 { name="regioneReloaded"; version="1.4.0"; sha256="05ac0ba7zl0sb1b2nrihpwa8y4ys5zwn2qgg7mzaj9vapscyw0sl"; depends=[cluster ggplot2 ggrepel RColorBrewer regioneR reshape2 Rtsne scales umap]; };
-  regsplice = derive2 { name="regsplice"; version="1.28.1"; sha256="0rljzhpwyl36rqbzfb2cwmq97p2qwrh5wxis276n1ssgzd0lpwcm"; depends=[edgeR glmnet limma pbapply S4Vectors SummarizedExperiment]; };
-  regutools = derive2 { name="regutools"; version="1.14.0"; sha256="1mvlihb4ps8616wvs9vyg4x6h1h6gj8psy3bmqmj5y6lb09dgfs5"; depends=[AnnotationDbi AnnotationHub BiocFileCache Biostrings DBI GenomicRanges Gviz IRanges RCy3 RSQLite S4Vectors]; };
-  restfulSE = derive2 { name="restfulSE"; version="1.24.0"; sha256="0i40yfvynxy34jfkvzyvjwvxf89zi4pvy9m9i0bk93l17gyhnjyl"; depends=[AnnotationDbi AnnotationHub bigrquery Biobase DBI DelayedArray dplyr ExperimentHub GO_db magrittr reshape2 rhdf5client rlang S4Vectors SummarizedExperiment]; };
-  retrofit = derive2 { name="retrofit"; version="1.2.0"; sha256="0rsrj70xbzdvbv34p9r0cgw2gkknmccrpsyykhm3l1c1aa1hh8md"; depends=[Rcpp]; };
-  rexposome = derive2 { name="rexposome"; version="1.24.1"; sha256="16bshcja07s500xcibr8yqlmbzp7plq1fqajj4gj1gvqi7bix8j4"; depends=[Biobase circlize corrplot FactoMineR ggplot2 ggrepel ggridges glmnet gplots gridExtra gtools Hmisc imputeLCMD lme4 lsr mice pryr reshape2 S4Vectors scales scatterplot3d stringr]; };
-  rfPred = derive2 { name="rfPred"; version="1.40.0"; sha256="10llzfwjdwppqs8mskn3ivifc743vf79fkw8cicqv29nc80r8p7h"; depends=[data_table GenomeInfoDb GenomicRanges IRanges Rsamtools]; };
-  rfaRm = derive2 { name="rfaRm"; version="1.14.2"; sha256="0piry7i6m1sikckpq9v5a83bx5j0hi5k52ycs2sf9s23i19kv5bb"; depends=[Biostrings data_table httr IRanges jsonlite magick rsvg rvest S4Vectors stringi xml2]; };
-  rgoslin = derive2 { name="rgoslin"; version="1.6.0"; sha256="06riq52zrjmp0hf3ik5hra3b0dawaqggagaq3ixz54bbx7nriv6w"; depends=[dplyr Rcpp]; };
-  rgsepd = derive2 { name="rgsepd"; version="1.34.0"; sha256="1g1h66hbb29hsvjzdyg4s84ihifpqjw0xqm1rrcaqd5l60n8mx4j"; depends=[AnnotationDbi biomaRt DESeq2 GO_db goseq gplots org_Hs_eg_db SummarizedExperiment]; };
-  rhdf5 = derive2 { name="rhdf5"; version="2.46.1"; sha256="0yfy0y9ywzbbdmvvraxmizv3w2x1iznhfys6hhwyi644pxh4k3xn"; depends=[rhdf5filters Rhdf5lib S4Vectors]; };
-  rhdf5client = derive2 { name="rhdf5client"; version="1.24.0"; sha256="0mjijy15gbdp85nnb10xpz95g2wvcy0mfcwx9sl38k1wqx6i86s4"; depends=[data_table DelayedArray httr rjson]; };
-  rhdf5filters = derive2 { name="rhdf5filters"; version="1.14.1"; sha256="0cqf7k19k4m4swd2c1wd9cyzw9k90s3d3jq0hijjwvza50nn2dk6"; depends=[Rhdf5lib]; };
-  riboSeqR = derive2 { name="riboSeqR"; version="1.36.0"; sha256="1cigbp3pc70ipja9mmprkrs91723r1zwgxbzyp87n5mb0i4q8xqh"; depends=[abind baySeq GenomeInfoDb GenomicRanges IRanges Rsamtools seqLogo]; };
-  ribor = derive2 { name="ribor"; version="1.14.0"; sha256="12hnrw5y776k0kvd5n661gqq97zgx7vk0xbil21rqlm4cgnfplza"; depends=[dplyr ggplot2 hash rhdf5 rlang S4Vectors tidyr yaml]; };
-  ribosomeProfilingQC = derive2 { name="ribosomeProfilingQC"; version="1.14.1"; sha256="0k910g7z767d9b3hnph707sfx7b50mm9z98bcwqag8n43k50qin7"; depends=[AnnotationDbi BiocGenerics Biostrings BSgenome cluster EDASeq GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggfittext ggplot2 ggrepel IRanges motifStack Rsamtools Rsubread rtracklayer RUVSeq S4Vectors scales XVector]; };
-  rifi = derive2 { name="rifi"; version="1.6.0"; sha256="0d0nwwz66sasg7nisakqbknz2sgjj7ky3sa1rqhhp1gncwrmbsl2"; depends=[car cowplot doMC dplyr egg foreach ggplot2 nls2 nnet reshape2 rlang rtracklayer S4Vectors scales stringr SummarizedExperiment tibble]; };
-  rifiComparative = derive2 { name="rifiComparative"; version="1.2.0"; sha256="16byiqq5d9lk8dkf5ij86l1dhlzjhry0dwnrsg1ci1np1mqwnx9i"; depends=[cowplot devtools doMC dplyr DTA egg foreach ggplot2 ggrepel LSD nnet reshape2 rlang rtracklayer S4Vectors scales stringr SummarizedExperiment tibble writexl]; };
-  rmelting = derive2 { name="rmelting"; version="1.18.0"; sha256="14cimxjdzan3nidzjxvndpp75r04xxnqw522a9bnvyjy9cfjfa54"; depends=[Rdpack rJava]; };
-  rmspc = derive2 { name="rmspc"; version="1.8.0"; sha256="0fkigy33rn5vrpz4603d2npcc4k271hm3wz6cbwrgngvzk731ggq"; depends=[BiocManager GenomicRanges processx rtracklayer stringr]; };
-  rnaEditr = derive2 { name="rnaEditr"; version="1.12.0"; sha256="04aayj38kwq4v43dkmi5cddkasp1vn4iy1k3zdgywhzj4j9lyhbv"; depends=[BiocGenerics bumphunter corrplot GenomeInfoDb GenomicRanges IRanges logistf plyr S4Vectors survival]; };
-  rnaseqcomp = derive2 { name="rnaseqcomp"; version="1.32.0"; sha256="0ynlpl3x51b1ayrjs7vgd173nh7avdxc78rlfdfabvb4xx5mc0dy"; depends=[RColorBrewer]; };
-  roar = derive2 { name="roar"; version="1.38.0"; sha256="0pibk6zdqlbm0rxnb95pd94v6lbg67rwmjnpfxizq7wv36pw6kdr"; depends=[BiocGenerics GenomeInfoDb GenomicAlignments GenomicRanges IRanges rtracklayer S4Vectors SummarizedExperiment]; };
-  roastgsa = derive2 { name="roastgsa"; version="1.0.0"; sha256="1dk1b0xhglnhd1x50qyr55h2kdqyma685pgdv1bmw8sl0xhq6pbh"; depends=[Biobase ggplot2 gplots limma RColorBrewer]; };
-  rols = derive2 { name="rols"; version="2.30.2"; sha256="1fhrjp1sqp28gb2fp93risjrjqhs9h7w7vid1h1h7w7s34al802b"; depends=[Biobase BiocGenerics httr2 jsonlite]; };
-  ropls = derive2 { name="ropls"; version="1.34.0"; sha256="1k3j1cbapzqk0qr3v4gijskp487xyz2n4lv4kia9y5pmplddxp7v"; depends=[Biobase ggplot2 MultiAssayExperiment MultiDataSet plotly SummarizedExperiment]; };
-  rprimer = derive2 { name="rprimer"; version="1.6.0"; sha256="1h47cxa6zi40qir768zblkfjp04928ap1lc1axrcgvpjx70wc9k3"; depends=[Biostrings bslib DT ggplot2 IRanges mathjaxr patchwork reshape2 S4Vectors shiny shinycssloaders shinyFeedback]; };
-  rpx = derive2 { name="rpx"; version="2.10.0"; sha256="03hxvq5gqchspcm2rg554i7p6zfy62ygl8509ir5ag9b6vkr5ia8"; depends=[BiocFileCache curl jsonlite RCurl xml2]; };
-  rqt = derive2 { name="rqt"; version="1.28.0"; sha256="02yvwp68c0xx1wa41hfwmq5zjskqk3jg6z1hvivi6x3l5g2xfwah"; depends=[car CompQuadForm glmnet Matrix metap pls ropls RUnit SummarizedExperiment]; };
-  rqubic = derive2 { name="rqubic"; version="1.48.0"; sha256="0f0if8b50ljdz2i7435knylx52wndilsvjmlj31gcqy5i3k6mz9y"; depends=[biclust Biobase BiocGenerics]; };
-  rrvgo = derive2 { name="rrvgo"; version="1.14.2"; sha256="0m7zpn9c0nzsrswz5nzwsrjzmddqd109973z0crcza5zhgq5j0qh"; depends=[AnnotationDbi ggplot2 ggrepel GO_db GOSemSim pheatmap shiny tm treemap umap wordcloud]; };
-  rsbml = derive2 { name="rsbml"; version="2.60.0"; sha256="0pvj0qgc6hd02g9ppfc610gvfn412rw69rxh43y4dr3n894kdm2i"; depends=[BiocGenerics graph]; };
-  rsemmed = derive2 { name="rsemmed"; version="1.12.0"; sha256="114nnx0m7w0bsdlw2imn8dwbmcr30pykkhd7qxcb5md4xy2sw8b1"; depends=[dplyr igraph magrittr stringr]; };
-  rtracklayer = derive2 { name="rtracklayer"; version="1.62.0"; sha256="1jxhv2fq62lz0j6kbwq43c8ggk14ccsjg0xgfqjqy941dj9ig0n2"; depends=[BiocGenerics BiocIO Biostrings GenomeInfoDb GenomicAlignments GenomicRanges IRanges RCurl restfulr Rsamtools S4Vectors XML XVector zlibbioc]; };
-  runibic = derive2 { name="runibic"; version="1.24.0"; sha256="0rkpjm6kgmiy0as8mdnpdassvp5d0jn3iyn8dbra1i7b7bdrmcqd"; depends=[biclust Rcpp SummarizedExperiment testthat]; };
-  sRACIPE = derive2 { name="sRACIPE"; version="1.18.0"; sha256="0yq3spb36r2pg5g9l32k3vinknppgz14pr4dpwcvxpilip14ha2v"; depends=[BiocGenerics ggplot2 gplots gridExtra htmlwidgets MASS RColorBrewer Rcpp reshape2 S4Vectors SummarizedExperiment umap visNetwork]; };
-  sSNAPPY = derive2 { name="sSNAPPY"; version="1.6.1"; sha256="0wials3phh0w3c5bb3zg5lr52gwmx65q2s7ar1g935ghrsr3r523"; depends=[dplyr edgeR ggforce ggplot2 ggraph graphite gtools igraph magrittr org_Hs_eg_db pheatmap reshape2 rlang stringr SummarizedExperiment tibble tidyr]; };
-  sSeq = derive2 { name="sSeq"; version="1.40.0"; sha256="1jn5iviaksqlknwrc8xixliysia81wyy6h04fkyz1z1kvbly1g8h"; depends=[caTools RColorBrewer]; };
-  safe = derive2 { name="safe"; version="3.42.0"; sha256="1x0sx29mmhgqb0xalvd132v888qk2fzkxvz7h4873f2lzpz6yl2q"; depends=[AnnotationDbi Biobase SparseM]; };
-  sagenhaft = derive2 { name="sagenhaft"; version="1.72.0"; sha256="01ccb2jw8wc36l980yqacczd2h55nipkxzcb20c04zlrwxckg0sv"; depends=[SparseM]; };
-  sampleClassifier = derive2 { name="sampleClassifier"; version="1.26.0"; sha256="0qg08r50fjvfgiznh9cqwdfdpxn4qdbbfxds707wlxw40xfbndz7"; depends=[annotate e1071 ggplot2 MGFM MGFR]; };
-  sangeranalyseR = derive2 { name="sangeranalyseR"; version="1.12.0"; sha256="0db96nfyw0fiwgwhflwhnr1sha56n3jhld05333xq9fkj89fzf15"; depends=[ape BiocStyle Biostrings data_table DECIPHER DT excelR ggdendro gridExtra knitr logger openxlsx phangorn plotly reshape2 rmarkdown sangerseqR seqinr shiny shinycssloaders shinydashboard shinyjs shinyWidgets stringr zeallot]; };
-  sangerseqR = derive2 { name="sangerseqR"; version="1.38.0"; sha256="1vggjvxfmmm2gcyfay22wahkib15i164ic148jdps36pxapl6hi3"; depends=[Biostrings shiny stringr]; };
-  sarks = derive2 { name="sarks"; version="1.14.0"; sha256="03zq00kd7kzmz6dl372fpimbh7lr4l2i661mvw634k77p1wmcl24"; depends=[binom Biostrings cluster IRanges rJava]; };
-  satuRn = derive2 { name="satuRn"; version="1.10.0"; sha256="12bivj0cnp38apwi3jqmil8bwsfa96cjp5f132a5raacd2z87gqf"; depends=[BiocParallel boot ggplot2 limma locfdr Matrix pbapply SummarizedExperiment]; };
-  scAnnotatR = derive2 { name="scAnnotatR"; version="1.8.0"; sha256="13wrxxdwphngi0f9vxakykk54bqngw8g38w6wkk96999lzb3p57p"; depends=[AnnotationHub ape caret data_tree dplyr e1071 ggplot2 kernlab pROC ROCR Seurat SingleCellExperiment SummarizedExperiment]; };
-  scBFA = derive2 { name="scBFA"; version="1.16.0"; sha256="10b4vkc19y48w5xmx8c82yrrz2zpdg43m9rhnqfr63vlw06cgid3"; depends=[copula DESeq2 ggplot2 MASS Matrix Seurat SingleCellExperiment SummarizedExperiment zinbwave]; };
-  scBubbletree = derive2 { name="scBubbletree"; version="1.4.0"; sha256="0cwmwwdbafjcrsxvjps5csffj0n1mmagccbawpwqsjqfn5j55v2j"; depends=[ape future future_apply ggplot2 ggtree patchwork proxy reshape2 scales Seurat]; };
-  scCB2 = derive2 { name="scCB2"; version="1.12.0"; sha256="0v66javzwwmx0k3p9sx8r8alhjd6qmxp75vrd2nhyp9iq3gdnz7l"; depends=[doParallel DropletUtils edgeR foreach iterators Matrix rhdf5 Seurat SingleCellExperiment SummarizedExperiment]; };
-  scClassify = derive2 { name="scClassify"; version="1.14.0"; sha256="1il45fr3fq520jg2hi1b729wg82vhr826x9bh6lli743sjl2rmbf"; depends=[BiocParallel Cepo cluster diptest ggplot2 ggraph hopach igraph limma Matrix mgcv minpack_lm mixtools proxy proxyC S4Vectors statmod]; };
-  scDD = derive2 { name="scDD"; version="1.26.0"; sha256="15hzsq8ckw8v8ccz30kia9qr1iymmcszc9z31g5arrx1y816zgbq"; depends=[arm BiocParallel EBSeq fields ggplot2 mclust outliers S4Vectors scran SingleCellExperiment SummarizedExperiment]; };
-  scDDboost = derive2 { name="scDDboost"; version="1.4.0"; sha256="11vgnxijip34yaqgnaq90pwnd1ibslfyij1lyqi3mdzrwd8a6az9"; depends=[BH BiocParallel cluster EBSeq ggplot2 mclust Oscope Rcpp RcppEigen SingleCellExperiment SummarizedExperiment]; };
-  scDataviz = derive2 { name="scDataviz"; version="1.12.0"; sha256="1h8mkxbjc94x9cwpq6i26hfvd810sjdjzbf3p8v8b43c4984j0a7"; depends=[corrplot flowCore ggplot2 ggrepel MASS matrixStats RColorBrewer reshape2 S4Vectors scales Seurat SingleCellExperiment umap]; };
-  scDblFinder = derive2 { name="scDblFinder"; version="1.16.0"; sha256="1f3n1m6fjx965wm2jllzk51ssj92ifxb4bln4vwk25qxd3g0bna8"; depends=[BiocGenerics BiocNeighbors BiocParallel BiocSingular bluster DelayedArray GenomeInfoDb GenomicRanges igraph IRanges MASS Matrix Rsamtools rtracklayer S4Vectors scater scran scuttle SingleCellExperiment SummarizedExperiment xgboost]; };
-  scDesign3 = derive2 { name="scDesign3"; version="1.0.1"; sha256="024jcb3nhy7q62vf9xg6d0bq9risq4jdak5xhd32yxyv7mn3bp3c"; depends=[BiocParallel dplyr gamlss gamlss_dist ggplot2 irlba Matrix matrixStats mclust mgcv mvtnorm pbmcapply rvinecopulib SingleCellExperiment SummarizedExperiment tibble umap viridis]; };
-  scFeatureFilter = derive2 { name="scFeatureFilter"; version="1.22.0"; sha256="0kh9m9fxfankkhy4f9f30smpdzwf62s0brdqwg2g75cyj8jxg9vv"; depends=[dplyr ggplot2 magrittr rlang tibble]; };
-  scFeatures = derive2 { name="scFeatures"; version="1.3.2"; sha256="191iff92v8k7s9h6bx0fidn8125x5yqyk7hvmj9mynwn5ssr76rx"; depends=[ape AUCell BiocParallel cli DelayedArray DelayedMatrixStats dplyr DT EnsDb_Hsapiens_v79 EnsDb_Mmusculus_v79 ensembldb glue GSVA gtools MatrixGenerics msigdbr proxyC reshape2 rmarkdown Seurat SingleCellSignalR spatstat_explore spatstat_geom tidyr]; };
-  scGPS = derive2 { name="scGPS"; version="1.16.0"; sha256="1xp43by8p1hfj10ypiqz3lv7knyz6pf9dn9hfmjwv1168qx42c1s"; depends=[caret DESeq2 dplyr dynamicTreeCut fastcluster ggplot2 glmnet locfit Rcpp RcppArmadillo RcppParallel SingleCellExperiment SummarizedExperiment]; };
-  scHOT = derive2 { name="scHOT"; version="1.14.0"; sha256="0r3018i7pfa3l1cg248ry7pgxkizml3nyb10nk3jhf8aikigxpvl"; depends=[BiocParallel ggforce ggplot2 igraph IRanges Matrix reshape S4Vectors SingleCellExperiment SummarizedExperiment]; };
-  scMET = derive2 { name="scMET"; version="1.4.0"; sha256="0akz032hrzdv2q5d6snhv1v1cw95w1d8lr2jdg93wajbl6c8x45l"; depends=[assertthat BH BiocStyle coda cowplot data_table dplyr ggplot2 logitnorm MASS Matrix matrixStats Rcpp RcppEigen RcppParallel rstan rstantools S4Vectors SingleCellExperiment StanHeaders SummarizedExperiment VGAM viridis]; };
-  scMerge = derive2 { name="scMerge"; version="1.18.0"; sha256="1j5a95sz00hc3k09gkmd0icpcxfdqws6rw64n3p66v18dpkmngw4"; depends=[batchelor BiocNeighbors BiocParallel BiocSingular cluster cvTools DelayedArray DelayedMatrixStats distr igraph M3Drop proxyC ruv S4Vectors scater scran SingleCellExperiment SummarizedExperiment]; };
-  scPCA = derive2 { name="scPCA"; version="1.16.0"; sha256="06vwsdly812h80bnxdl52bzymib55dw83ahg7g18dzqm141gazf2"; depends=[assertthat BiocParallel cluster coop DelayedArray dplyr elasticnet kernlab Matrix MatrixGenerics matrixStats origami purrr Rdpack RSpectra ScaledMatrix sparsepca stringr tibble]; };
-  scPipe = derive2 { name="scPipe"; version="2.2.0"; sha256="0rxfni95149vrjwlgygkxbn70fd21vz53srvz7l74lwrg5jrk21g"; depends=[AnnotationDbi basilisk BiocGenerics biomaRt Biostrings data_table dplyr DropletUtils flexmix GenomicAlignments GenomicRanges GGally ggplot2 glue hash IRanges magrittr MASS Matrix mclust MultiAssayExperiment org_Hs_eg_db org_Mm_eg_db purrr Rcpp reshape reticulate Rhtslib rlang robustbase Rsamtools Rsubread rtracklayer S4Vectors scales SingleCellExperiment stringr SummarizedExperiment testthat tibble tidyr vctrs zlibbioc]; };
-  scRNAseqApp = derive2 { name="scRNAseqApp"; version="1.2.2"; sha256="18780dicp4dl8fqnmvsn345lkcjn8398qbpd1iapiyww7yychij9"; depends=[bibtex bslib circlize ComplexHeatmap data_table DT GenomeInfoDb GenomicRanges ggdendro ggforce ggplot2 ggrepel ggridges gridExtra hdf5r htmltools IRanges jsonlite magrittr patchwork plotly RColorBrewer RefManageR Rsamtools rtracklayer S4Vectors scales scrypt Seurat SeuratObject shiny shinyhelper shinymanager SingleCellExperiment slingshot sortable xfun xml2]; };
-  scReClassify = derive2 { name="scReClassify"; version="1.8.0"; sha256="11cr0ri73c1khimcwvr125hpllmchm8s78qql838nzdm92w854ph"; depends=[e1071 randomForest SingleCellExperiment SummarizedExperiment]; };
-  scRecover = derive2 { name="scRecover"; version="1.18.0"; sha256="17sqn7dqwis3xx230hw8cvajan4ravd4kkzkgwm6jjph7rahix1l"; depends=[bbmle BiocParallel doParallel foreach gamlss kernlab MASS Matrix penalized preseqR pscl rsvd SAVER]; };
-  scRepertoire = derive2 { name="scRepertoire"; version="1.12.0"; sha256="1wgs8dv5zl82iciy86w5ws1gq8v2piklcifbw7gmbw60kijyr2l1"; depends=[doParallel dplyr ggalluvial ggplot2 ggraph igraph plyr powerTCR reshape2 rlang SeuratObject SingleCellExperiment stringdist stringr SummarizedExperiment tidygraph vegan]; };
-  scShapes = derive2 { name="scShapes"; version="1.8.0"; sha256="16ixxrg32hwb22vqfskg6amk9axrz8f9x8q6cqnhz5pg2ix79yw9"; depends=[BiocParallel dgof emdbook magrittr MASS Matrix pscl VGAM]; };
-  scTGIF = derive2 { name="scTGIF"; version="1.16.0"; sha256="1rxzqs3ggxg21yxl7drvrix106y8z798xs57jc4jpwvvbbzi89r0"; depends=[Biobase BiocStyle ggplot2 GSEABase igraph knitr msigdbr nnTensor plotly RColorBrewer Rcpp rmarkdown S4Vectors scales schex SingleCellExperiment SummarizedExperiment tagcloud tibble]; };
-  scTHI = derive2 { name="scTHI"; version="1.14.0"; sha256="1iks7b6sx6b0l3037h8yxnwd6025wh6almkiwny356pwm45vzdqx"; depends=[BiocParallel Rtsne]; };
-  scTensor = derive2 { name="scTensor"; version="2.12.0"; sha256="1lq1gq3pl09g0ky4nx191qja3pdcww6qazg6nrfssx4jxcc0q97i"; depends=[abind AnnotationDbi AnnotationHub BiocManager BiocStyle Category ccTensor checkmate crayon DOSE ggplot2 GOstats heatmaply igraph knitr MeSHDbi meshr nnTensor outliers plotly plotrix reactome_db ReactomePA rmarkdown RSQLite rTensor S4Vectors schex SingleCellExperiment SummarizedExperiment tagcloud visNetwork]; };
-  scTreeViz = derive2 { name="scTreeViz"; version="1.8.0"; sha256="06js9576w3nlqfl58p7wmdinymlxkf62zl4lxjhzyy6aaqbdqcmp"; depends=[clustree data_table digest epivizr epivizrData epivizrServer ggplot2 ggraph httr igraph Matrix Rtsne S4Vectors scater scran Seurat SingleCellExperiment SummarizedExperiment sys]; };
-  scanMiR = derive2 { name="scanMiR"; version="1.8.2"; sha256="10czwd1b631g6xbcykvih94vgij29kkl6xbc0y9lv9023gzxmplb"; depends=[BiocParallel Biostrings cowplot data_table GenomeInfoDb GenomicRanges ggplot2 IRanges S4Vectors seqLogo stringi]; };
-  scanMiRApp = derive2 { name="scanMiRApp"; version="1.8.0"; sha256="1rinvm4m1fr8yrnk75qnjqak2wybjzivj32bhkypbjlmjfippff9"; depends=[AnnotationDbi AnnotationFilter AnnotationHub BiocParallel Biostrings data_table digest DT ensembldb fst GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 htmlwidgets IRanges Matrix plotly rintrojs rtracklayer S4Vectors scanMiR scanMiRData shiny shinycssloaders shinydashboard shinyjqui waiter]; };
-  scater = derive2 { name="scater"; version="1.30.1"; sha256="06a4nxxsgmi435m06ir401w4fbrh0xdgh6mkv3i7vw001yrbrfcx"; depends=[beachmat BiocGenerics BiocNeighbors BiocParallel BiocSingular DelayedArray ggbeeswarm ggplot2 ggrastr ggrepel Matrix MatrixGenerics pheatmap RColorBrewer RcppML rlang Rtsne S4Vectors scuttle SingleCellExperiment SummarizedExperiment uwot viridis]; };
-  scatterHatch = derive2 { name="scatterHatch"; version="1.8.0"; sha256="1skl8v6idxdb6qqmljfvp4693r1whyddimpcg8m7rsd8cbgq3fal"; depends=[ggplot2 plyr spatstat_geom]; };
-  sccomp = derive2 { name="sccomp"; version="1.6.0"; sha256="19cpgif7zjlzbvnqflyzi3gcl29v91xan0v45y5gyisxp1p23x6i"; depends=[BH boot dplyr forcats ggplot2 ggrepel glue lifecycle magrittr patchwork purrr Rcpp RcppEigen RcppParallel readr rlang rstan rstantools scales SeuratObject SingleCellExperiment StanHeaders stringr tibble tidyr tidyselect]; };
-  scde = derive2 { name="scde"; version="2.30.0"; sha256="0l7sfqj6kfpq0jdngxc4n87pvqk8rxd0rr6jvz5hhq4hmlm417hs"; depends=[BiocParallel Cairo edgeR extRemes flexmix MASS mgcv nnet pcaMethods quantreg RColorBrewer Rcpp RcppArmadillo rjson RMTstat Rook]; };
-  scds = derive2 { name="scds"; version="1.18.0"; sha256="0cmzvc1m29ijhzs2p407bhhxfqbflzsnrk7nq0jshjyw6v6pkfn0"; depends=[dplyr Matrix pROC S4Vectors SingleCellExperiment SummarizedExperiment xgboost]; };
-  schex = derive2 { name="schex"; version="1.16.1"; sha256="1bfa0s0d68y0kidknd9finf7snp7gfmmrxac2f1sx1i1fggm2nb3"; depends=[cluster concaveman dplyr entropy ggforce ggplot2 hexbin rlang SingleCellExperiment]; };
-  scider = derive2 { name="scider"; version="1.0.0"; sha256="1rl7h5gxvd6ga3ylnvslarxhd7njf64izx8r8digl61gm866cm0b"; depends=[ggplot2 igraph isoband janitor knitr lwgeom pheatmap plotly rlang S4Vectors sf shiny SpatialExperiment spatstat_explore spatstat_geom SummarizedExperiment]; };
-  scifer = derive2 { name="scifer"; version="1.4.0"; sha256="1h9py0l8glcpwb2rwqksq2p4gs7pp754xgfcm6zcmik5jxl9zmyb"; depends=[Biostrings data_table DECIPHER dplyr flowCore ggplot2 gridExtra kableExtra knitr plyr rlang rmarkdown sangerseqR scales stringr tibble]; };
-  scmap = derive2 { name="scmap"; version="1.24.0"; sha256="1sd5ixs8fbiqqp1p4p505l1f0lncmagkhzh4xrk8wrca6db6k6d8"; depends=[Biobase BiocGenerics dplyr e1071 ggplot2 googleVis matrixStats proxy randomForest Rcpp RcppArmadillo reshape2 S4Vectors SingleCellExperiment SummarizedExperiment]; };
-  scmeth = derive2 { name="scmeth"; version="1.22.0"; sha256="02v1dn1lvnvlig02wl9rqal3qz7hllfpyzjf1mwyasr7qk8wbn0p"; depends=[AnnotationHub annotatr Biostrings BSgenome bsseq DelayedArray DT GenomeInfoDb GenomicRanges HDF5Array knitr reshape2 rmarkdown SummarizedExperiment]; };
-  scone = derive2 { name="scone"; version="1.26.0"; sha256="1y0blhh75hb60h9jmvz2naqfzky4zgw5gn81fbj74jfph9y712lp"; depends=[aroma_light BiocParallel boot class cluster compositions diptest edgeR fpc gplots hexbin limma MatrixGenerics matrixStats mixtools rARPACK RColorBrewer rhdf5 RUVSeq SingleCellExperiment SummarizedExperiment]; };
-  scoreInvHap = derive2 { name="scoreInvHap"; version="1.24.0"; sha256="0j1gn1vwxsmg0h1znc2cqa4q3qx9fw4bnxcdmwcd7fpk860ifa49"; depends=[BiocParallel Biostrings GenomicRanges snpStats SummarizedExperiment VariantAnnotation]; };
-  scp = derive2 { name="scp"; version="1.12.0"; sha256="0xcm3hw6fz62fm3rvwcmh6mn0pi38hzyprrrnk0xw0y75yh03czh"; depends=[dplyr magrittr matrixStats MsCoreUtils MultiAssayExperiment QFeatures S4Vectors SingleCellExperiment SummarizedExperiment]; };
-  scran = derive2 { name="scran"; version="1.30.2"; sha256="06b454ydd8n8xbswxf1hacm3g2nr0ik0gg08pr7crgnsm0r3vpvs"; depends=[beachmat BH BiocGenerics BiocParallel BiocSingular bluster DelayedArray DelayedMatrixStats dqrng edgeR igraph limma Matrix metapod Rcpp S4Vectors scuttle SingleCellExperiment statmod SummarizedExperiment]; };
-  screenCounter = derive2 { name="screenCounter"; version="1.2.0"; sha256="1yk81k7fr71mb1q984czw9iaddhd9brv4raag5b8h6hgsca516d9"; depends=[BiocParallel Rcpp S4Vectors SummarizedExperiment zlibbioc]; };
-  scruff = derive2 { name="scruff"; version="1.20.0"; sha256="0zn4pf3pd2rss7z7p3q55fh8345am8bd1dcapchwzc02k9szc466"; depends=[AnnotationDbi BiocGenerics BiocParallel Biostrings data_table GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggbio ggplot2 ggthemes parallelly plyr Rsamtools Rsubread rtracklayer S4Vectors scales ShortRead SingleCellExperiment stringdist SummarizedExperiment]; };
-  scry = derive2 { name="scry"; version="1.14.0"; sha256="0hbdsjsn0jl0dr2ly5vx0wb4bnz7nl15kkypryywjvis9rdasjj3"; depends=[BiocSingular DelayedArray glmpca Matrix SingleCellExperiment SummarizedExperiment]; };
-  scuttle = derive2 { name="scuttle"; version="1.12.0"; sha256="090arfacfs09x7g60qxz4bj2gqb97y3kmhafywkgnrj7pz1z0qzq"; depends=[beachmat BiocGenerics BiocParallel DelayedArray DelayedMatrixStats GenomicRanges Matrix Rcpp S4Vectors SingleCellExperiment SummarizedExperiment]; };
-  scviR = derive2 { name="scviR"; version="1.2.0"; sha256="1naz8xampnig1pjjjsk8mabsqdys2idpjnplgj33qj7ivkwxw58a"; depends=[basilisk BiocFileCache limma MatrixGenerics pheatmap reticulate S4Vectors scater shiny SingleCellExperiment SummarizedExperiment]; };
-  sechm = derive2 { name="sechm"; version="1.10.0"; sha256="19qb6qvzgvwd7y1nmvw9q8ch8ql27f3hhxk42w805l4r4d7xrkbk"; depends=[circlize ComplexHeatmap matrixStats randomcoloR S4Vectors seriation SummarizedExperiment]; };
-  segmentSeq = derive2 { name="segmentSeq"; version="2.36.0"; sha256="1w037ylknsraj96j1bcv671zx3fqcck666pakmqgjprlp97k5sdy"; depends=[abind baySeq GenomeInfoDb GenomicRanges IRanges Rsamtools S4Vectors ShortRead]; };
-  segmenter = derive2 { name="segmenter"; version="1.8.0"; sha256="19zd2a8rghclyvb7561qijr0g1c32dqcb73bpdjwaf94aj5jfdb1"; depends=[bamsignals ChIPseeker chromhmmData ComplexHeatmap GenomicRanges IRanges S4Vectors SummarizedExperiment]; };
-  selectKSigs = derive2 { name="selectKSigs"; version="1.14.0"; sha256="05r2w30ffsgs99bclfzfs4dks7wpfapd806cfm5ls78pqdcw067b"; depends=[gtools HiLDA magrittr Rcpp]; };
-  semisup = derive2 { name="semisup"; version="1.26.0"; sha256="0xk3czwgw71rfaxix2mqcszcn1vzcdkakmcpfdgzz1zyhpms5c59"; depends=[VGAM]; };
-  seq_hotSPOT = derive2 { name="seq.hotSPOT"; version="1.2.0"; sha256="0rv1sx7q7ycxxmfiwhl98sdd2qjqgswl7nkbqbnj35610xhx3n62"; depends=[hash R_utils]; };
-  seq2pathway = derive2 { name="seq2pathway"; version="1.34.0"; sha256="1d3sshrxdk0mx2hmkjf1lc3mr9d6drhr6q8pm531rrm0rdckizrx"; depends=[biomaRt GenomicRanges GSA nnet seq2pathway_data WGCNA]; };
-  seqArchR = derive2 { name="seqArchR"; version="1.6.0"; sha256="1xnzh4s9zn31i913hqy7aaw1x6q1hmzsr7lil8nfmysmgl1vpahf"; depends=[BiocParallel Biostrings cli cluster cvTools fpc ggplot2 ggseqlogo MASS Matrix matrixStats prettyunits reshape2 reticulate]; };
-  seqArchRplus = derive2 { name="seqArchRplus"; version="1.2.0"; sha256="0j0f6g77asz2kb49ram3vgsrglqln24pmywcdfqdlaahsy0jihdg"; depends=[BiocParallel Biostrings BSgenome ChIPseeker cli clusterProfiler cowplot factoextra GenomeInfoDb GenomicRanges ggimage ggplot2 gridExtra heatmaps IRanges magick RColorBrewer S4Vectors scales seqArchR seqPattern]; };
-  seqCAT = derive2 { name="seqCAT"; version="1.24.0"; sha256="1jkqbx7yn0siywbll8arh0iqar6zywj430s7ba6pgwbxjpfbxq48"; depends=[dplyr GenomeInfoDb GenomicRanges ggplot2 IRanges rlang rtracklayer S4Vectors scales SummarizedExperiment tidyr VariantAnnotation]; };
-  seqCNA = derive2 { name="seqCNA"; version="1.48.0"; sha256="0qqkpgpjj2rywr1y1qj3ffjlxak7fg15jkznz62r7k6r794z45ma"; depends=[adehabitatLT doSNOW GLAD seqCNA_annot]; };
-  seqLogo = derive2 { name="seqLogo"; version="1.68.0"; sha256="106359wn4v0m53b33x4zjsyjsj4j8h7bnvd1whamsig982h6szp2"; depends=[]; };
-  seqPattern = derive2 { name="seqPattern"; version="1.34.0"; sha256="0rs9dy540d4agp7fc8glbrcnly4s6qcxqsq4yv8y555bbdld6dv0"; depends=[Biostrings GenomicRanges IRanges KernSmooth plotrix]; };
-  seqTools = derive2 { name="seqTools"; version="1.36.0"; sha256="110mka5zbvry1d0dz1lmw0kn85xm3k4k8lrdj6qdh5ckk82k342m"; depends=[zlibbioc]; };
-  seqbias = derive2 { name="seqbias"; version="1.50.0"; sha256="18pdpi855y1hhka96xc5886nqffjn1jhz9jr9p305iikdrsvmjp1"; depends=[Biostrings GenomicRanges Rhtslib zlibbioc]; };
-  seqcombo = derive2 { name="seqcombo"; version="1.24.0"; sha256="1xvvfqhip0zvk2dz2r473qlz4r9adm2pylcbgl6xw0r6yhw06y4a"; depends=[ggplot2 igraph yulab_utils]; };
-  seqsetvis = derive2 { name="seqsetvis"; version="1.22.1"; sha256="0lbk8pvzmsz1qw04b2sgqjf0pnf7qjsvxvlnm381jr0fi4n6k8ml"; depends=[cowplot data_table eulerr GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 ggplotify IRanges limma pbapply pbmcapply png RColorBrewer Rsamtools rtracklayer S4Vectors scales UpSetR]; };
-  sesame = derive2 { name="sesame"; version="1.20.0"; sha256="0yh4mrsj3pqhjkrq5dwmcpcqwixs0pmjy7dfa3cr0mf52fgzcvmr"; depends=[BiocFileCache BiocParallel dplyr GenomeInfoDb GenomicRanges ggplot2 illuminaio IRanges MASS preprocessCore readr reshape2 S4Vectors sesameData stringr SummarizedExperiment tibble wheatmap]; };
-  sevenC = derive2 { name="sevenC"; version="1.22.0"; sha256="1k9ss678q0i5hky15d0d577pk5irbnfn7w4s2gbpr10kbacq7n42"; depends=[BiocGenerics boot data_table GenomeInfoDb GenomicRanges InteractionSet IRanges purrr readr rtracklayer S4Vectors]; };
-  sevenbridges = derive2 { name="sevenbridges"; version="1.32.0"; sha256="048jsr7a64jijspxsxa3k1wja8h4kdmmdy3g70i88gi804k789rb"; depends=[curl data_table docopt httr jsonlite objectProperties S4Vectors stringr uuid yaml]; };
-  shinyMethyl = derive2 { name="shinyMethyl"; version="1.38.0"; sha256="1gkj15q1rxvsdzbsp3gkk02kvvx0kq4wsqycf3ln1bszb9688jw6"; depends=[Biobase BiocGenerics htmltools MatrixGenerics minfi RColorBrewer shiny]; };
-  shinyepico = derive2 { name="shinyepico"; version="1.10.0"; sha256="16lfc6vgk03qhiqq94f0w943b5k3nr803rcd6kywr4ldpi4ns4q9"; depends=[data_table doParallel dplyr DT foreach GenomicRanges ggplot2 gplots heatmaply limma minfi plotly reshape2 rlang rmarkdown rtracklayer shiny shinycssloaders shinyjs shinythemes shinyWidgets statmod tidyr zip]; };
-  sigFeature = derive2 { name="sigFeature"; version="1.20.0"; sha256="12pxbq0dn6z3avsq468ixkn09iaark95s2l0gmjh3jcmd1dp03zz"; depends=[BiocParallel biocViews e1071 Matrix nlme openxlsx pheatmap RColorBrewer SparseM SummarizedExperiment]; };
-  siggenes = derive2 { name="siggenes"; version="1.76.0"; sha256="0jzxwg28ih1i0f7hal99g60zply0g613b4wrjsbv738cmlsai2kc"; depends=[Biobase multtest scrime]; };
-  sights = derive2 { name="sights"; version="1.28.0"; sha256="1i5qxhcrvgha5rwhvg2anm4q3rzpgyw95q3qmgfhfgbdjmwwm5qr"; depends=[ggplot2 lattice MASS qvalue reshape2]; };
-  signatureSearch = derive2 { name="signatureSearch"; version="1.16.0"; sha256="19hgqq49y6kg9zjjmx6apjqr3mj6f8cbf7xd78gaigyd62w060rj"; depends=[AnnotationDbi BiocGenerics BiocParallel clusterProfiler data_table DelayedArray DOSE dplyr ExperimentHub fastmatch fgsea ggplot2 GSEABase HDF5Array magrittr Matrix org_Hs_eg_db qvalue Rcpp reactome_db readr reshape2 rhdf5 RSQLite scales SummarizedExperiment tibble visNetwork]; };
-  signeR = derive2 { name="signeR"; version="2.4.0"; sha256="1890svrwn8n4ysrj5mivh8xyyfgjxyka3jmf6fml297a2lj49gkg"; depends=[ada BiocFileCache BiocGenerics Biostrings BSgenome bsplus class clue cowplot dplyr DT e1071 future future_apply GenomeInfoDb GenomicRanges ggplot2 ggpubr glmnet IRanges kknn listenv magrittr MASS maxstat nloptr NMF pheatmap PMCMRplus ppclust pROC proxy pvclust randomForest RColorBrewer Rcpp RcppArmadillo readr reshape2 rtracklayer scales shiny shinycssloaders shinydashboard shinyWidgets survival survivalAnalysis survminer tibble tidyr VariantAnnotation VGAM]; };
-  signifinder = derive2 { name="signifinder"; version="1.4.0"; sha256="1yk44if93615vzh31r22xb3l6dgyirlw9v6zachd1d6i9zh2l2rk"; depends=[AnnotationDbi BiocGenerics ComplexHeatmap consensusOV cowplot DGEobj_utils dplyr ensembldb ggplot2 ggridges GSVA IRanges magrittr matrixStats maxstat openair org_Hs_eg_db patchwork RColorBrewer SpatialExperiment SummarizedExperiment survival survminer TxDb_Hsapiens_UCSC_hg19_knownGene TxDb_Hsapiens_UCSC_hg38_knownGene viridis]; };
-  sigsquared = derive2 { name="sigsquared"; version="1.34.0"; sha256="1jsagrphgxlgznzf9cin6nfm6r22pvblb308ls34fps4vf4cnn1v"; depends=[Biobase survival]; };
-  similaRpeak = derive2 { name="similaRpeak"; version="1.34.0"; sha256="1w9nrc07v8vn256d9g2ybgr4k3vw86qvp77z7k7n16fdspq1iq2j"; depends=[R6]; };
-  simona = derive2 { name="simona"; version="1.0.10"; sha256="1avyyj9r0slpnyalsd570mv4h19wmriz7wa2jkbh6yw714crq55x"; depends=[circlize ComplexHeatmap GetoptLong GlobalOptions igraph matrixStats Polychrome Rcpp S4Vectors shiny xml2]; };
-  simpleSeg = derive2 { name="simpleSeg"; version="1.4.1"; sha256="1x1r76gv57g2bjcla5s47isr47nzvwcr6zkid1pjpvifnq9il74c"; depends=[BiocParallel cytomapper EBImage S4Vectors spatstat_geom SummarizedExperiment terra]; };
-  simplifyEnrichment = derive2 { name="simplifyEnrichment"; version="1.12.0"; sha256="0qhrlhf881mi2v0n0y410c0bf2cm3imrlglq8argnw86n9xj51pw"; depends=[AnnotationDbi BiocGenerics circlize clue cluster colorspace ComplexHeatmap digest GetoptLong GlobalOptions GO_db GOSemSim Matrix org_Hs_eg_db proxyC slam tm]; };
-  sincell = derive2 { name="sincell"; version="1.34.0"; sha256="0am0scxjs93z1awrv4ydj11c21c69zq0mf41mimjdpcpizfhy326"; depends=[cluster entropy fastICA fields ggplot2 igraph MASS proxy Rcpp reshape2 Rtsne scatterplot3d statmod TSP]; };
-  single = derive2 { name="single"; version="1.6.0"; sha256="06q54dnlfw1n2sw2drybj3z2qf7i3fr6kdcn9gikag5m798d7ggs"; depends=[BiocGenerics Biostrings dplyr GenomicAlignments IRanges reshape2 rlang Rsamtools stringr tidyr]; };
-  singleCellTK = derive2 { name="singleCellTK"; version="2.12.2"; sha256="1yw727m67i3mrrhq9yzww0c2ssacvqm1jcrxn5vagn0f5z1kml8f"; depends=[anndata AnnotationHub ape batchelor Biobase BiocParallel celda celldex circlize cluster colorspace colourpicker ComplexHeatmap cowplot data_table DelayedArray DelayedMatrixStats DESeq2 dplyr DropletUtils DT eds enrichR ensembldb ExperimentHub fields ggplot2 ggplotify ggrepel ggtree gridExtra GSEABase GSVA GSVAdata igraph KernSmooth limma magrittr MAST Matrix matrixStats metap msigdbr multtest plotly plyr R_utils reshape2 reticulate rlang rmarkdown ROCR Rtsne S4Vectors scater scDblFinder scds scMerge scran scRNAseq scuttle Seurat shiny shinyalert shinycssloaders shinyjs SingleCellExperiment SingleR SoupX SummarizedExperiment sva TENxPBMCData tibble TrajectoryUtils TSCAN tximport VAM withr yaml zellkonverter zinbwave]; };
-  singscore = derive2 { name="singscore"; version="1.22.0"; sha256="0hafzbhbik1512pisjvnnzmy8pl2shrgra6l06kpvsrczkqlmi04"; depends=[Biobase BiocParallel edgeR ggplot2 ggrepel GSEABase magrittr matrixStats plotly plyr RColorBrewer reshape reshape2 S4Vectors SummarizedExperiment tidyr]; };
-  sitadela = derive2 { name="sitadela"; version="1.10.0"; sha256="0rfp13qciw5nygq89zxf8jifvd1xws28c9x6pgplgbgr9mas5i2f"; depends=[Biobase BiocGenerics biomaRt Biostrings GenomeInfoDb GenomicFeatures GenomicRanges IRanges Rsamtools RSQLite rtracklayer S4Vectors]; };
-  sitePath = derive2 { name="sitePath"; version="1.18.0"; sha256="17dqfv9p6yskln4ir7g4li3imzvn7sk5a36v8x2fgkq5w7cx2dh4"; depends=[ape aplot ggplot2 ggrepel ggtree gridExtra RColorBrewer Rcpp seqinr tidytree]; };
-  sizepower = derive2 { name="sizepower"; version="1.72.0"; sha256="03w4jxck4gxrsi365mnanq7h7hic7vdv1db4i0qy2ryfgcc82dgx"; depends=[]; };
-  skewr = derive2 { name="skewr"; version="1.34.0"; sha256="0d381gg30vn8nad0y6h5rvrmilpr9k2aasnqqmalvh228pyysd7j"; depends=[IlluminaHumanMethylation450kmanifest methylumi minfi mixsmsn RColorBrewer S4Vectors wateRmelon]; };
-  slalom = derive2 { name="slalom"; version="1.24.0"; sha256="0d5x54057z7hbdv340j114p9j8wfjd3qrr4xr22774yir0k4n0g1"; depends=[BH ggplot2 GSEABase Rcpp RcppArmadillo rsvd SingleCellExperiment SummarizedExperiment]; };
-  slingshot = derive2 { name="slingshot"; version="2.10.0"; sha256="0q3j0jpc4mnmjb3xha5cmfhk1qdr1jiz7kdghznk4zqxn4bchc1d"; depends=[igraph matrixStats princurve S4Vectors SingleCellExperiment SummarizedExperiment TrajectoryUtils]; };
-  snapCGH = derive2 { name="snapCGH"; version="1.72.0"; sha256="0knjspxzc3z5dhx0a6kx9rkic85w65l84vy552x5bv8jzxkcwrsj"; depends=[aCGH cluster DNAcopy GLAD limma tilingArray]; };
-  snapcount = derive2 { name="snapcount"; version="1.14.0"; sha256="0yi2crj3yp23wdrxc4gv8k0fika0y2h0n968w26d243jc1yj1y8c"; depends=[assertthat data_table GenomicRanges httr IRanges jsonlite magrittr Matrix purrr R6 rlang stringr SummarizedExperiment]; };
-  snifter = derive2 { name="snifter"; version="1.12.0"; sha256="1y6j4m06c7b2fkwmqzjgn08vr48sqqfnrglikl5ric8w7avww192"; depends=[assertthat basilisk irlba reticulate]; };
-  snm = derive2 { name="snm"; version="1.50.0"; sha256="1vgm1pm2yjh1v2bj3ibw9bgsqin4m7x0vj032l6rn2yyiwc8qask"; depends=[corpcor lme4]; };
-  snpStats = derive2 { name="snpStats"; version="1.52.0"; sha256="0a4kyv93ljv7n62ghx66l81q6sw24llr0998nsalidyws1wldbyr"; depends=[BiocGenerics Matrix survival zlibbioc]; };
-  soGGi = derive2 { name="soGGi"; version="1.34.0"; sha256="0rg1dy94d5vskzf0s6z0iwzl59ag4sa7iwxxr9v5rd25hwaqn552"; depends=[BiocGenerics BiocParallel Biostrings chipseq GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 IRanges preprocessCore reshape2 Rsamtools rtracklayer S4Vectors SummarizedExperiment]; };
-  spaSim = derive2 { name="spaSim"; version="1.4.0"; sha256="0f26rqm8b6qdcbzxk3wwnnc3gy7w69hp91b5gxjsy9dfdx19dzbk"; depends=[dplyr ggplot2 RANN SpatialExperiment spatstat_geom spatstat_random SummarizedExperiment]; };
-  sparrow = derive2 { name="sparrow"; version="1.8.0"; sha256="0vqn6ag78zld3v1n5ac9vch8ja6k7dnv90ba3l4m51bw1gcdw3ba"; depends=[babelgene BiocGenerics BiocParallel BiocSet checkmate circlize ComplexHeatmap data_table DelayedMatrixStats edgeR ggplot2 GSEABase irlba limma Matrix plotly viridis]; };
-  sparseMatrixStats = derive2 { name="sparseMatrixStats"; version="1.14.0"; sha256="0r2jxwha2xjp8iy7al85s5vib4xvl47gmlbbvvjj4wnz2gfzic9r"; depends=[Matrix MatrixGenerics matrixStats Rcpp]; };
-  sparsenetgls = derive2 { name="sparsenetgls"; version="1.20.0"; sha256="1wlhc09divvwg0l75mrhridypkrhn4dmvrak6lhqd0y42byz5w5m"; depends=[glmnet huge MASS Matrix]; };
-  spatialDE = derive2 { name="spatialDE"; version="1.8.1"; sha256="1b7jv0p8wba0jw94jwjiph7ipr9bk018ib60mlkymsisjm6gn104"; depends=[basilisk checkmate ggplot2 ggrepel gridExtra Matrix reticulate scales SpatialExperiment SummarizedExperiment]; };
-  spatialHeatmap = derive2 { name="spatialHeatmap"; version="2.8.5"; sha256="1k1f3j5hibnagssn4nvbfrb45qi9rnf6ksrrm20l99vhnl2m8pip"; depends=[data_table dplyr edgeR genefilter ggplot2 ggplotify gplots gridExtra grImport igraph Matrix reshape2 rsvg S4Vectors scater scran scuttle shiny shinydashboard SingleCellExperiment spsComps SummarizedExperiment tibble xml2]; };
-  spatzie = derive2 { name="spatzie"; version="1.8.0"; sha256="1nrycrma72znddnw492jrl7fcm4a98hgppwa3gj7pzfrnrg6k1d8"; depends=[BiocGenerics BSgenome GenomeInfoDb GenomicFeatures GenomicInteractions GenomicRanges ggplot2 IRanges MatrixGenerics matrixStats motifmatchr S4Vectors SummarizedExperiment TFBSTools]; };
-  specL = derive2 { name="specL"; version="1.36.0"; sha256="1yd8yrz588m4y4ifwmn2vw9q2db727lsyypgql0kdbi9bd9nmr5a"; depends=[DBI protViz RSQLite seqinr]; };
-  speckle = derive2 { name="speckle"; version="1.2.0"; sha256="1pxpjgsrdn0g6m3xkav3gbnap2nqmp0mnm630psy0hj0f36b9d3s"; depends=[edgeR ggplot2 limma Seurat SingleCellExperiment]; };
-  spicyR = derive2 { name="spicyR"; version="1.14.3"; sha256="1hbs7wgblsnlh2i8wpa1cm688f56cbk29ayxanw6g1kvvnf5xvdm"; depends=[BiocGenerics BiocParallel ClassifyR concaveman data_table dplyr ggforce ggplot2 IRanges lmerTest mgcv pheatmap rlang S4Vectors scam SingleCellExperiment SpatialExperiment spatstat_explore spatstat_geom SummarizedExperiment tibble tidyr]; };
-  spikeLI = derive2 { name="spikeLI"; version="2.62.0"; sha256="0c3m4jmi2bv9cm7nzm8fq7bgwldf3z6fy015sakslndcjwbw8fbn"; depends=[]; };
-  spiky = derive2 { name="spiky"; version="1.8.0"; sha256="11ycl4848xgbjrjfj4gzzig6rj88xxqb845bg5f7c0mhha12g3a3"; depends=[bamlss Biostrings BlandAltmanLeh BSgenome GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 IRanges Rsamtools S4Vectors scales]; };
-  spkTools = derive2 { name="spkTools"; version="1.58.0"; sha256="1cl2ii1bb7j7j3vck0gb8livfrw749kjrj9q9w1117i8pgpl7454"; depends=[Biobase gtools RColorBrewer]; };
-  splatter = derive2 { name="splatter"; version="1.26.0"; sha256="1h4c7rcchss01ds1zd2rqkghcpjclziriichrgrkh9rvmsajkpip"; depends=[BiocGenerics BiocParallel checkmate crayon edgeR fitdistrplus locfit matrixStats rlang S4Vectors scuttle SingleCellExperiment SummarizedExperiment withr]; };
-  splineTimeR = derive2 { name="splineTimeR"; version="1.30.0"; sha256="1cqlb6ij4qlx5lj10m3z1cb5gbkmszmzz7k1xmnjri7hl72hsf8g"; depends=[Biobase FIs GeneNet GSEABase gtools igraph limma longitudinal]; };
-  splots = derive2 { name="splots"; version="1.68.0"; sha256="16751hhy09nbzrhv38jy28q2x68qi3cwh3dacgmf2x7l7zz7dh4n"; depends=[RColorBrewer]; };
-  spqn = derive2 { name="spqn"; version="1.14.0"; sha256="07nhy0pjlxnfvdshl9nmh18m83iv3xsi66k6dp6n0hgjdjyfy28b"; depends=[BiocGenerics ggplot2 ggridges matrixStats SummarizedExperiment]; };
-  srnadiff = derive2 { name="srnadiff"; version="1.22.2"; sha256="06hdjrjqca3933k6knbznjhnljh11rsm4cgqg4ccwi1hhlnh7z8m"; depends=[baySeq BiocManager BiocParallel BiocStyle DESeq2 devtools edgeR GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges Gviz IRanges Rcpp Rsamtools rtracklayer S4Vectors SummarizedExperiment]; };
-  ssPATHS = derive2 { name="ssPATHS"; version="1.16.0"; sha256="0ajhmgj9w8ajz2rf6ilwvl61daf0kf1hcibfndrgnkjpnb45yp44"; depends=[dml MESS ROCR SummarizedExperiment]; };
-  sscu = derive2 { name="sscu"; version="2.32.0"; sha256="0ialywasrvh2x6pmafjikdsr8q4dj0i4a9yqaw7g4d9ns6mipqd8"; depends=[BiocGenerics Biostrings seqinr]; };
-  ssize = derive2 { name="ssize"; version="1.76.0"; sha256="0bn41cjqkd5zmzhbhqnq9xf5bx4gk70ah1bvhldg831268a0ddhw"; depends=[gdata xtable]; };
-  ssrch = derive2 { name="ssrch"; version="1.18.0"; sha256="0s23pakhln9ks5w4bv6ydh47ycy78il9nn5384vfws7v5w855mk9"; depends=[DT shiny]; };
-  ssviz = derive2 { name="ssviz"; version="1.36.0"; sha256="02xdg6mf94f3dchzapvlck16dkk2xrkbryz28llvjcxxnlbp3kab"; depends=[Biostrings ggplot2 RColorBrewer reshape Rsamtools]; };
-  stJoincount = derive2 { name="stJoincount"; version="1.4.0"; sha256="0iy7mqxa8bnai72r10gqsva7x52s847fz4yj9cpivb05mxd0jacz"; depends=[dplyr ggplot2 magrittr pheatmap raster Seurat sp SpatialExperiment spdep SummarizedExperiment]; };
-  staRank = derive2 { name="staRank"; version="1.44.0"; sha256="1n8mcldi4ng12anksafblpnmafpz3k41gics2m9lr2qjwpcki78l"; depends=[cellHTS2]; };
-  stageR = derive2 { name="stageR"; version="1.24.0"; sha256="064hvx8qyw5hdhihwl9k0jqhg6saz4ng2m37d2ipr5pz9v8adspb"; depends=[SummarizedExperiment]; };
-  standR = derive2 { name="standR"; version="1.6.0"; sha256="1mmjxbkgdy8wgfplx0yl5m9jn4srfi1p25wl5vv9jz5r1wz32i0k"; depends=[Biobase BiocGenerics dplyr edgeR ggalluvial ggplot2 limma mclustcomp patchwork readr rlang ruv RUVSeq S4Vectors SingleCellExperiment SpatialExperiment SummarizedExperiment tibble tidyr]; };
-  statTarget = derive2 { name="statTarget"; version="1.32.0"; sha256="182pfd6i46h4rggm4pq0rqjfsf0sxap99mgxvf40wa428w55wawg"; depends=[impute pdist pls plyr randomForest ROC rrcov]; };
-  stepNorm = derive2 { name="stepNorm"; version="1.74.0"; sha256="04n69wgwwwkvw87ni1hgvwjq9n0dhaibx4pjyz840vlxqd8bmfla"; depends=[marray MASS]; };
-  strandCheckR = derive2 { name="strandCheckR"; version="1.20.0"; sha256="0vwwcywlnq1bi0g3illsk2sgx5ad0xifxxvv87i8ms9x0vlg2px2"; depends=[BiocGenerics dplyr GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 gridExtra IRanges magrittr reshape2 rmarkdown Rsamtools S4Vectors stringr TxDb_Hsapiens_UCSC_hg38_knownGene]; };
-  struct = derive2 { name="struct"; version="1.14.1"; sha256="0zppf1dnnd4wa4g37xm2l8yr7rnm4hnakba4qf7ra1y5n71bab30"; depends=[knitr ontologyIndex rols S4Vectors SummarizedExperiment]; };
-  structToolbox = derive2 { name="structToolbox"; version="1.14.0"; sha256="1pwnsvyzpshp7mw56ksh2jiwbdh8znb2k375sr1r17gyi0kk3qdr"; depends=[ggplot2 ggthemes gridExtra scales sp struct]; };
-  subSeq = derive2 { name="subSeq"; version="1.32.0"; sha256="0y08rxaw79aybvmqszjzb6vrnipbhsc8b1hw7ggxmhkm2d9z1h02"; depends=[Biobase data_table digest dplyr ggplot2 magrittr qvalue tidyr]; };
-  supersigs = derive2 { name="supersigs"; version="1.10.0"; sha256="1lx927w6s4f098y0dh69kc2xswfigj89apv4nqi27frqq4my0051"; depends=[assertthat Biostrings caret dplyr rlang rsample SummarizedExperiment tidyr]; };
-  supraHex = derive2 { name="supraHex"; version="1.40.0"; sha256="0v7b4hwj8b7byzshqd7drppnk02hv5p6ar3lb9biw8z5d20k4gx4"; depends=[ape dplyr hexbin igraph magrittr MASS purrr readr stringr tibble tidyr]; };
-  surfaltr = derive2 { name="surfaltr"; version="1.8.0"; sha256="1k4s8v8fk1abcx672ypx2rjkim7vb8z5p39kp3czxiyzlsz2684s"; depends=[biomaRt Biostrings dplyr ggplot2 httr msa protr readr seqinr stringr testthat xml2]; };
-  survcomp = derive2 { name="survcomp"; version="1.52.0"; sha256="18a81vv88xj3frkdy5l6w2fc4xzr1k6vgbz4j4marlmh6mz6skin"; depends=[bootstrap ipred KernSmooth prodlim rmeta SuppDists survival survivalROC]; };
-  survtype = derive2 { name="survtype"; version="1.18.0"; sha256="0b441y5s2lflv6n9rz10d6fva49pprnj65dw11d2yv2rqdsv30i6"; depends=[clustvarsel pheatmap SummarizedExperiment survival survminer]; };
-  sva = derive2 { name="sva"; version="3.50.0"; sha256="0p4zgw1pi5vnaqxn6jmvhpy0h5hnnqp41n0k2v0chhqgqxgn67x1"; depends=[BiocParallel edgeR genefilter limma matrixStats mgcv]; };
-  svaNUMT = derive2 { name="svaNUMT"; version="1.8.0"; sha256="0v8bzzkk2h017zq5riy399d2c28b8g3nq10y5av3594il2if4i1x"; depends=[assertthat BiocGenerics Biostrings dplyr GenomeInfoDb GenomicFeatures GenomicRanges rlang rtracklayer S4Vectors stringr StructuralVariantAnnotation VariantAnnotation]; };
-  svaRetro = derive2 { name="svaRetro"; version="1.8.0"; sha256="1mlji4dqr9m99wfqcm0xh4q42bw7d4lvmyr7irr6qh4z0kx3kyb5"; depends=[assertthat BiocGenerics Biostrings dplyr GenomeInfoDb GenomicFeatures GenomicRanges rlang rtracklayer S4Vectors stringr StructuralVariantAnnotation VariantAnnotation]; };
-  swfdr = derive2 { name="swfdr"; version="1.28.0"; sha256="0xnfl0v6ijzb93yvdba7kpab5igbdxy6whn3lyjil24fmdr6xdg3"; depends=[]; };
-  switchBox = derive2 { name="switchBox"; version="1.38.0"; sha256="0dvfrcbim09ahqh2wx455745h6pway72m1yy8wkg07zp6cdr0xm5"; depends=[gplots pROC]; };
-  switchde = derive2 { name="switchde"; version="1.28.0"; sha256="0w2k4jx7svc1pz7nrb7kqbm1hbl6ka75y82dljzc7aifdm5y5zvj"; depends=[dplyr ggplot2 SingleCellExperiment SummarizedExperiment]; };
-  synapsis = derive2 { name="synapsis"; version="1.8.0"; sha256="1l62y9rkx5yqyjb2bqsymmkyl8wjacfbivz2h91c789rywkah5d8"; depends=[EBImage]; };
-  synapter = derive2 { name="synapter"; version="2.26.0"; sha256="0ccz6yasni13yi5qa8whm026v9q7za3714znnnyc3x4xr2sizk83"; depends=[Biobase Biostrings cleaver lattice MSnbase multtest qvalue RColorBrewer readr rmarkdown]; };
-  synergyfinder = derive2 { name="synergyfinder"; version="3.10.3"; sha256="1svpwyr0mh1g9mllhfqsyhpyyzymmpsz4ylv50vasxs78lhd14zx"; depends=[dplyr drc furrr future ggforce ggplot2 ggrepel gstat kriging lattice magrittr metR mice nleqslv pbapply plotly purrr reshape2 sp SpatialExtremes stringr tidyr tidyverse vegan]; };
-  synlet = derive2 { name="synlet"; version="2.2.0"; sha256="0khbs23xyl02skld6di6s31ppqxnwlid134x1fm8pc932qmd49rf"; depends=[data_table ggplot2 magrittr patchwork RankProd RColorBrewer]; };
-  syntenet = derive2 { name="syntenet"; version="1.4.0"; sha256="171g7c6y523rycykpzlj8qhyz1jyh646lqvhxa760qr14zj5cf82"; depends=[BiocParallel Biostrings GenomicRanges ggnetwork ggplot2 igraph intergraph networkD3 pheatmap RColorBrewer Rcpp rlang rtracklayer testthat]; };
-  systemPipeR = derive2 { name="systemPipeR"; version="2.8.0"; sha256="01amqib9ahrf19xpy4ivlsss82zyp3w7fbgwrwp53zfbg0cninga"; depends=[BiocGenerics Biostrings crayon GenomicRanges ggplot2 htmlwidgets magrittr Rsamtools S4Vectors ShortRead stringr SummarizedExperiment yaml]; };
-  systemPipeShiny = derive2 { name="systemPipeShiny"; version="1.12.0"; sha256="0r5fk657q3zgmjx8kdblypfwqmsdbgbn919zi74dkkgma9ls2c7c"; depends=[assertthat bsplus crayon dplyr drawer DT ggplot2 glue htmltools magrittr openssl plotly R6 rlang RSQLite rstudioapi shiny shinyAce shinydashboard shinydashboardPlus shinyFiles shinyjqui shinyjs shinytoastr shinyWidgets spsComps spsUtil stringr styler tibble vroom yaml]; };
-  systemPipeTools = derive2 { name="systemPipeTools"; version="1.10.0"; sha256="1fs5s5mqmsb7pra2znbkhp4jfkcds1zzipfi39fl4dsh24iinwrd"; depends=[ape DESeq2 dplyr DT GGally ggplot2 ggrepel ggtree glmpca magrittr pheatmap plotly Rtsne SummarizedExperiment tibble]; };
-  tLOH = derive2 { name="tLOH"; version="1.10.0"; sha256="0yzbpy30hvpxdh1lsnab5jp2nj64ii4pmir8xq3bp871hpqiwmwd"; depends=[bestNormalize data_table depmixS4 dplyr GenomicRanges ggplot2 MatrixGenerics naniar purrr scales stringr VariantAnnotation]; };
-  tRNA = derive2 { name="tRNA"; version="1.20.1"; sha256="0mcpql3zf1gw2k6gfyqycycc8li00818gd9qzs8s3wva7kxbpn89"; depends=[BiocGenerics Biostrings GenomicRanges ggplot2 IRanges Modstrings S4Vectors scales stringr Structstrings XVector]; };
-  tRNAdbImport = derive2 { name="tRNAdbImport"; version="1.20.1"; sha256="1i2mismx914ijys13wwz50gkk682rklp36aci270nc7vx78hynni"; depends=[Biostrings GenomicRanges httr2 IRanges Modstrings S4Vectors stringr Structstrings tRNA xml2]; };
-  tRNAscanImport = derive2 { name="tRNAscanImport"; version="1.22.0"; sha256="18yp63mrgz497qcvf0cjgj22b75xmfb2f61jw2cd312c344iikzn"; depends=[BiocGenerics Biostrings BSgenome GenomeInfoDb GenomicRanges IRanges Rsamtools rtracklayer S4Vectors stringr Structstrings tRNA XVector]; };
-  tRanslatome = derive2 { name="tRanslatome"; version="1.40.0"; sha256="08fdamgafp2cjp6sp6lpknyfl243sp32xqmgbazm0x3qxf4fr9k0"; depends=[anota Biobase DESeq2 edgeR GOSemSim gplots Heatplus limma org_Hs_eg_db plotrix RankProd topGO]; };
-  tadar = derive2 { name="tadar"; version="1.0.0"; sha256="1v39gw3i202lzq7cjvm5rb043b3zyyrz48ikm6dawv6vv1p2kjp5"; depends=[BiocGenerics GenomeInfoDb GenomicRanges ggplot2 Gviz IRanges MatrixGenerics rlang Rsamtools S4Vectors VariantAnnotation]; };
-  tanggle = derive2 { name="tanggle"; version="1.8.0"; sha256="0gf5y5nwhmpxzl8yynp4352i969wgllj2xb9khc401qciznfmh0h"; depends=[ape ggplot2 ggtree phangorn]; };
-  target = derive2 { name="target"; version="1.16.0"; sha256="0jqa7wdxqyppindfzx0s9zybmmcbxgy5s7wf36hx87vy8ja5h4zf"; depends=[BiocGenerics GenomicRanges IRanges matrixStats shiny]; };
-  tenXplore = derive2 { name="tenXplore"; version="1.24.0"; sha256="1sk8xxvrmxkqlz7hq6w10hsjf1x8g06gbaas75hx4m0f1hz6pdwm"; depends=[AnnotationDbi matrixStats ontoProc org_Mm_eg_db restfulSE shiny SummarizedExperiment]; };
-  ternarynet = derive2 { name="ternarynet"; version="1.46.0"; sha256="1y3fwxqniy1w61hjq20rmms1pl4341nh3lv8vr9g8y63lcf2nn0q"; depends=[BiocParallel igraph]; };
-  terraTCGAdata = derive2 { name="terraTCGAdata"; version="1.6.0"; sha256="0capn1a7cdmrr9mbfhglxyr8jn8m5ai07bgsmi54hz01vkspba8f"; depends=[AnVIL BiocFileCache dplyr GenomicRanges MultiAssayExperiment RaggedExperiment readr S4Vectors TCGAutils tidyr]; };
-  tidySingleCellExperiment = derive2 { name="tidySingleCellExperiment"; version="1.12.0"; sha256="08vz3198cl0d8wh5hz4vkf47jsyvwczmnw5g8zawpkylmawr0xrp"; depends=[cli dplyr ellipsis fansi ggplot2 lifecycle magrittr Matrix pillar pkgconfig plotly purrr rlang S4Vectors SingleCellExperiment stringr SummarizedExperiment tibble tidyr tidyselect ttservice vctrs]; };
-  tidySummarizedExperiment = derive2 { name="tidySummarizedExperiment"; version="1.12.0"; sha256="0vrs235vggsvmjmyys8h2n3714q0hnzi3qzp3rcnk3pfsj3mhi4f"; depends=[cli dplyr ellipsis fansi ggplot2 lifecycle magrittr pillar pkgconfig plotly purrr rlang S4Vectors stringr SummarizedExperiment tibble tidyr tidyselect ttservice vctrs]; };
-  tidybulk = derive2 { name="tidybulk"; version="1.14.3"; sha256="0dpcx6vx70iwrxvy5bcggqvnswsmc96b9n0da715wcinibw7i4yj"; depends=[crayon dplyr GenomicRanges lifecycle magrittr Matrix preprocessCore purrr readr rlang S4Vectors scales stringi stringr SummarizedExperiment tibble tidyr tidyselect ttservice]; };
-  tigre = derive2 { name="tigre"; version="1.56.0"; sha256="1wn6fpkqzy29n1ghpk59cd63wdrz3imxmnkrmdv1j1hw7iljq8ax"; depends=[annotate AnnotationDbi Biobase BiocGenerics DBI gplots RSQLite]; };
-  tilingArray = derive2 { name="tilingArray"; version="1.80.0"; sha256="01j4wj0mdfrlyhp2alf1xfy78f17x43w9i0wb41ljw6pm313np58"; depends=[affy Biobase genefilter pixmap RColorBrewer strucchange vsn]; };
-  timeOmics = derive2 { name="timeOmics"; version="1.14.0"; sha256="11x8m0vr6sbnpxnxn352cjkidxxv1pq7d8zdp59gcydrqdgsq665"; depends=[dplyr ggplot2 ggrepel lmtest magrittr mixOmics plyr purrr stringr tibble tidyr]; };
-  timecourse = derive2 { name="timecourse"; version="1.74.0"; sha256="0lfsw6migjxswxiv05ry6dr2by9i6z285y16h2r1dm2qc287vxbi"; depends=[Biobase limma marray MASS]; };
-  timescape = derive2 { name="timescape"; version="1.26.0"; sha256="1yb3nbx0d206gwkrifqhxdnij6qxlgj5dmk1f2zgqlqkp2fhw45y"; depends=[dplyr gtools htmlwidgets jsonlite stringr]; };
-  tkWidgets = derive2 { name="tkWidgets"; version="1.80.0"; sha256="11a8rflmga2d63l5nzdlbkyfnzsf20dzg2sy6qr143hg9sjzqrrj"; depends=[DynDoc widgetTools]; };
-  tomoda = derive2 { name="tomoda"; version="1.12.0"; sha256="0lmibcsqasga6j6dwrq415yvrx1jqg88ayvrr4bca4pdshkkds6s"; depends=[ggplot2 ggrepel RColorBrewer reshape2 Rtsne SummarizedExperiment umap]; };
-  tomoseqr = derive2 { name="tomoseqr"; version="1.6.0"; sha256="07ywzz2bkm408kv1c9hwfaww7vr63090jbcbi8x6k4z3c4jllmvw"; depends=[animation BiocFileCache dplyr ggplot2 plotly purrr readr shiny stringr tibble]; };
-  topGO = derive2 { name="topGO"; version="2.54.0"; sha256="1sznyx11kzw8d8zg5ynl9sp6m0daf2yw3f2b24maxbpr1xkif9nx"; depends=[AnnotationDbi Biobase BiocGenerics DBI GO_db graph lattice matrixStats SparseM]; };
-  topconfects = derive2 { name="topconfects"; version="1.18.0"; sha256="03fr9ghdmaqsriwrim6fbvq09dknsrq3dbfswqrwkfi785ddmmfk"; depends=[assertthat ggplot2]; };
-  topdownr = derive2 { name="topdownr"; version="1.24.0"; sha256="01m9j4bbii35r8kzf4zi3xcma5g1cv87gcmmpc7cl2hp38gwpa4y"; depends=[Biobase BiocGenerics Biostrings ggplot2 Matrix MSnbase mzR ProtGenerics S4Vectors]; };
-  trackViewer = derive2 { name="trackViewer"; version="1.38.2"; sha256="1zgxp76ykgn4wk6nnpafjpswcky23jpghzzs68z0hhlzv4cc40s6"; depends=[AnnotationDbi BiocGenerics GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges graph grImport Gviz htmlwidgets InteractionSet IRanges plotrix Rgraphviz rhdf5 Rsamtools rtracklayer S4Vectors scales strawr]; };
-  tracktables = derive2 { name="tracktables"; version="1.36.0"; sha256="0ia4jqdapllgf51i4gjyjkmk6i6yrqx8np28hj1k0lr07j3k1hq4"; depends=[GenomicRanges IRanges RColorBrewer Rsamtools stringr tractor_base XML XVector]; };
-  tradeSeq = derive2 { name="tradeSeq"; version="1.16.0"; sha256="06k0jib20nq7zqc5vbgag8v1lbadjlg0idh5jwn5bcjc74dx15vj"; depends=[Biobase BiocParallel edgeR ggplot2 igraph magrittr MASS Matrix matrixStats mgcv pbapply princurve RColorBrewer S4Vectors SingleCellExperiment slingshot SummarizedExperiment tibble TrajectoryUtils viridis]; };
-  transcriptR = derive2 { name="transcriptR"; version="1.30.0"; sha256="1lbla2syljpmgdf7da7vl1260fy54xs3hk6m2gjpark0dka0kqbh"; depends=[BiocGenerics caret chipseq e1071 GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 IRanges pROC reshape2 Rsamtools rtracklayer S4Vectors]; };
-  transcriptogramer = derive2 { name="transcriptogramer"; version="1.24.0"; sha256="17jy1cxn1i2grbrd9l95y9rmm2k67xazgr77i7vyjxwc3dki61sl"; depends=[biomaRt data_table doSNOW foreach ggplot2 igraph limma progress RedeR snow tidyr topGO]; };
-  transformGamPoi = derive2 { name="transformGamPoi"; version="1.8.0"; sha256="0xa7hysk0ssjxhwhsz97487k3xxnzaz83d7bpq3nb0jvglqzja1x"; depends=[DelayedArray glmGamPoi HDF5Array Matrix MatrixGenerics Rcpp SummarizedExperiment]; };
-  transite = derive2 { name="transite"; version="1.20.1"; sha256="089n19vwwi8cvsqcxd5dl5lqjs2sgnglg36a5wd87qbgmvk540sm"; depends=[BiocGenerics Biostrings dplyr GenomicRanges ggplot2 gridExtra Rcpp scales TFMPvalue]; };
-  transomics2cytoscape = derive2 { name="transomics2cytoscape"; version="1.12.0"; sha256="0scib9ai6x7854cnwxn8imiycigsmin9q2hfvy26vdy72svv7q17"; depends=[dplyr KEGGREST pbapply purrr RCy3 tibble]; };
-  traseR = derive2 { name="traseR"; version="1.32.0"; sha256="05xi01cgz8vahn37rwx9ngxglxyhdk2ckkbdchd6g1if15pzm91q"; depends=[BSgenome_Hsapiens_UCSC_hg19 GenomicRanges IRanges]; };
-  traviz = derive2 { name="traviz"; version="1.8.0"; sha256="0yf0as3400wxgvbw7i5wmj3iqzv7racs6xsaydalgdpax2na70k6"; depends=[Biobase ggplot2 mgcv princurve RColorBrewer rgl SingleCellExperiment slingshot SummarizedExperiment viridis]; };
-  treeio = derive2 { name="treeio"; version="1.26.0"; sha256="1kvzdryw74r74gwxddsrng81ww49p3s7hgxn8ggl0p8fvz3sfgir"; depends=[ape dplyr jsonlite magrittr rlang tibble tidytree]; };
-  treekoR = derive2 { name="treekoR"; version="1.10.0"; sha256="059ars8rppa2pmykf4d1lhazbb9fdb4xjxrnsyihjfca8cc2i0n8"; depends=[ape data_table diffcyt dplyr edgeR ggiraph ggplot2 ggtree hopach lme4 multcomp patchwork SingleCellExperiment tidyr]; };
-  tricycle = derive2 { name="tricycle"; version="1.10.0"; sha256="1dawkp681pz9hf7fp2nag9pcfxx5rq0z4j9czlalf0sylsjbirkd"; depends=[AnnotationDbi circular dplyr GenomicRanges ggnewscale ggplot2 IRanges RColorBrewer S4Vectors scater scattermore SingleCellExperiment SummarizedExperiment]; };
-  trigger = derive2 { name="trigger"; version="1.48.0"; sha256="0bwjsp7mksr7xw3dchq6n4d359x3jwb94y97f9cnap4x4v0jrx6i"; depends=[corpcor qtl qvalue sva]; };
-  trio = derive2 { name="trio"; version="3.40.0"; sha256="0hh3fk7jsgdi5v9gwc8f3lcp6snc1d9yxalf20zyhcilyn19vdhv"; depends=[LogicReg siggenes survival]; };
-  triplex = derive2 { name="triplex"; version="1.42.0"; sha256="1rgws9fw0zhq55qjj1jhiy93anj21xxc45lqkjy2p5m65i3300zh"; depends=[Biostrings GenomicRanges IRanges S4Vectors XVector]; };
-  tripr = derive2 { name="tripr"; version="1.8.0"; sha256="08f7xmhwx6s79lw5pb0manj6y5hxr6dvaczvacfmvvwf3l7p09pn"; depends=[config data_table dplyr DT golem gridExtra plot3D plotly plyr RColorBrewer shiny shinyBS shinyFiles shinyjs stringdist stringr]; };
-  ttgsea = derive2 { name="ttgsea"; version="1.10.0"; sha256="00yk10hkfajd01s33al0kdc402n35axkywjpcp72zsrhx7j0xviw"; depends=[data_table DiagrammeR keras purrr stopwords text2vec textstem tm tokenizers]; };
-  tweeDEseq = derive2 { name="tweeDEseq"; version="1.48.0"; sha256="0mg6kfnvxlpjibm0ghjqycggs6vsr60pg8vwrjvdk14p9c807cdp"; depends=[cqn edgeR limma MASS Rcpp]; };
-  twilight = derive2 { name="twilight"; version="1.78.0"; sha256="00ggr8z7swscrlqasny041jxczkwx6qskazwbc50v1f4n0m81hvh"; depends=[Biobase]; };
-  twoddpcr = derive2 { name="twoddpcr"; version="1.26.0"; sha256="1yjqmljfc6p11h68z7lmm4b43rwc992n4iyj10vyyjdfqrajll0s"; depends=[class ggplot2 hexbin RColorBrewer S4Vectors scales shiny]; };
-  txcutr = derive2 { name="txcutr"; version="1.8.0"; sha256="0xq71y0rds16mkcnf7vdxq4qvx3n4h59237s3j9g6s8sj7iykxgj"; depends=[AnnotationDbi BiocGenerics BiocParallel Biostrings GenomicFeatures GenomicRanges IRanges rtracklayer S4Vectors]; };
-  tximeta = derive2 { name="tximeta"; version="1.20.3"; sha256="0hlx5kvhspc62p68gz53n0scwji3zvfv915fm8rzw3l8h2hjh3y7"; depends=[AnnotationDbi AnnotationHub BiocFileCache Biostrings ensembldb GenomeInfoDb GenomicFeatures GenomicRanges IRanges jsonlite Matrix S4Vectors SummarizedExperiment tibble tximport]; };
-  tximport = derive2 { name="tximport"; version="1.30.0"; sha256="0m6avd815xcv3py5sym083pdccvd4crdyyc7sfpxccnksgchyrf2"; depends=[]; };
-  uSORT = derive2 { name="uSORT"; version="1.28.0"; sha256="09dk90lhxyfpv1jz589q5zi84jldpvnibsi0ijnmv3l0998jmfxa"; depends=[Biobase BiocGenerics cluster fpc gplots igraph Matrix monocle plyr RANN RSpectra VGAM]; };
-  uncoverappLib = derive2 { name="uncoverappLib"; version="1.12.0"; sha256="02c2fc89l8shbs8b9lqnzn9k413rbcff8lp7in2770ayw8lsnwaf"; depends=[BiocFileCache condformat DT EnsDb_Hsapiens_v75 EnsDb_Hsapiens_v86 GenomicRanges Gviz Homo_sapiens markdown openxlsx org_Hs_eg_db OrganismDbi processx rappdirs rlist Rsamtools S4Vectors shiny shinyBS shinycssloaders shinyjs shinyWidgets stringr TxDb_Hsapiens_UCSC_hg19_knownGene TxDb_Hsapiens_UCSC_hg38_knownGene]; };
-  unifiedWMWqPCR = derive2 { name="unifiedWMWqPCR"; version="1.38.0"; sha256="0v3jpnm3nq66xvckmc8447xl7wngfhhiwq6vjx54wgc6f586vmgd"; depends=[BiocGenerics HTqPCR]; };
-  universalmotif = derive2 { name="universalmotif"; version="1.20.0"; sha256="0wy7zplypjiqv4wjq0l30xb5xj63fxb7z2wmmfrmzfkbgbm0xyha"; depends=[BiocGenerics Biostrings ggplot2 IRanges MASS MatrixGenerics Rcpp RcppThread rlang S4Vectors yaml]; };
-  updateObject = derive2 { name="updateObject"; version="1.6.0"; sha256="0a1br8ifjkp3qxirs9skih194q9ghh1g3kifm4imah7nh138dwxa"; depends=[BiocGenerics digest S4Vectors]; };
-  variancePartition = derive2 { name="variancePartition"; version="1.32.5"; sha256="1yrss51gwg73rlva0xhk34md0cx43h2j4vfk0z2hzchr2r1amzmc"; depends=[aod Biobase BiocParallel corpcor fANCOVA ggplot2 gplots iterators limma lme4 lmerTest MASS Matrix matrixStats pbkrtest Rdpack remaCor reshape2 RhpcBLASctl rlang scales]; };
-  vbmp = derive2 { name="vbmp"; version="1.70.0"; sha256="1i2fz0mp5pab7pwibmghnl95cha3p29a6pzn3yj5izxv5rc4n5hb"; depends=[]; };
-  velociraptor = derive2 { name="velociraptor"; version="1.12.0"; sha256="0z40mgmqcx4rg3s1gi3gnhnlh65l133ikw2nawhyrcjy4d34gpq1"; depends=[basilisk BiocGenerics BiocParallel BiocSingular DelayedArray Matrix reticulate S4Vectors scuttle SingleCellExperiment SummarizedExperiment zellkonverter]; };
-  veloviz = derive2 { name="veloviz"; version="1.8.0"; sha256="11wrj0czqcapi38f8sm1f2s1xfnbjqf4js7ridk1j106kzi2cvsz"; depends=[igraph Matrix mgcv Rcpp RSpectra]; };
-  vidger = derive2 { name="vidger"; version="1.22.0"; sha256="1ldl67jcgqjkla47f5n405jb0avy1hba6kzx3kj0cfs3fnvcdks6"; depends=[Biobase DESeq2 edgeR GGally ggplot2 ggrepel knitr RColorBrewer rmarkdown scales SummarizedExperiment tidyr]; };
-  viper = derive2 { name="viper"; version="1.36.0"; sha256="088jgnsn4bi72zpywzbyz5l5r6xj3kjh2b847lx6v4dc10n0v0sp"; depends=[Biobase e1071 KernSmooth mixtools]; };
-  vissE = derive2 { name="vissE"; version="1.10.0"; sha256="1gzhw3w70ri5hg8dy3q5vh4zsladqab1hbrx4zx7kvw80yhqf7h4"; depends=[ggforce ggplot2 ggraph ggrepel ggwordcloud GSEABase igraph msigdb plyr RColorBrewer reshape2 scales scico textstem tidygraph tm]; };
-  vsclust = derive2 { name="vsclust"; version="1.4.0"; sha256="13blx78akk55jq6xmg9qqb9qbyrhgnqbn8a762lrhw720wj9jf1l"; depends=[limma matrixStats MultiAssayExperiment qvalue Rcpp shiny]; };
-  vsn = derive2 { name="vsn"; version="3.70.0"; sha256="0li0yxf8m34xpmrgv5vciy8zdsbfdlajl9cmnxr4g4nmarik2bkh"; depends=[affy Biobase ggplot2 lattice limma]; };
-  vtpnet = derive2 { name="vtpnet"; version="0.42.0"; sha256="0550vqz3bccab16w7p7i1kjvpf3j1nid6qrd4z4hrfy0lgpj09ag"; depends=[doParallel foreach GenomicRanges graph gwascat]; };
-  vulcan = derive2 { name="vulcan"; version="1.24.0"; sha256="0zsc9cm6xxprn4mndz0zzn062lww80ym1avjqn89bsghjig15lmz"; depends=[Biobase caTools ChIPpeakAnno csaw DESeq2 DiffBind GenomicRanges gplots locfit S4Vectors TxDb_Hsapiens_UCSC_hg19_knownGene viper wordcloud zoo]; };
-  waddR = derive2 { name="waddR"; version="1.16.0"; sha256="07a5px5vixni5zcaqyarlhhqyf6md53k6ll4c6qc6lan2gj28pk7"; depends=[arm BiocFileCache BiocParallel eva Rcpp RcppArmadillo SingleCellExperiment]; };
-  wateRmelon = derive2 { name="wateRmelon"; version="2.8.0"; sha256="1ra21qzni9cny52ag9zxi46vb9grabyqjyk01dqqp3r9i0b4999l"; depends=[Biobase IlluminaHumanMethylation450kanno_ilmn12_hg19 illuminaio limma lumi matrixStats methylumi ROC]; };
-  wavClusteR = derive2 { name="wavClusteR"; version="2.36.0"; sha256="1y2bk1kla0l72xgdam2l9c0k7584ckdqscqnc184cxvqm6fb335j"; depends=[BiocGenerics Biostrings foreach GenomicFeatures GenomicRanges ggplot2 Hmisc IRanges mclust Rsamtools rtracklayer S4Vectors seqinr stringr]; };
-  weaver = derive2 { name="weaver"; version="1.68.0"; sha256="1y3zrycmv8yg0k521v1pgwzrlrwhsq7nbsfq5nakmlnrra6m9hpr"; depends=[codetools digest]; };
-  webbioc = derive2 { name="webbioc"; version="1.74.0"; sha256="1ca41q7hxy6p8kvc3qbjplvn40k4jwhf0mb03njifry4xi1xipgy"; depends=[affy annaffy Biobase BiocManager gcrma multtest qvalue vsn]; };
-  weitrix = derive2 { name="weitrix"; version="1.14.0"; sha256="0rn3dnz8bg9rkc0ksfpn3hw0jhznqhnih91xgxnnka3zq1hs3bxv"; depends=[assertthat BiocGenerics BiocParallel Ckmeans_1d_dp DelayedArray DelayedMatrixStats dplyr ggplot2 glm2 limma purrr reshape2 RhpcBLASctl rlang S4Vectors scales SummarizedExperiment topconfects]; };
-  widgetTools = derive2 { name="widgetTools"; version="1.80.0"; sha256="1zkc275sb1qbban7sghqziv3xkg7wjdpghddklv451n7j282k6w1"; depends=[]; };
-  wiggleplotr = derive2 { name="wiggleplotr"; version="1.26.0"; sha256="1gq0hxmnnis0g1y6hiphz02dmk3pfjz874xb2bxqw49z7387fwm8"; depends=[assertthat cowplot dplyr GenomeInfoDb GenomicRanges ggplot2 IRanges purrr rtracklayer S4Vectors]; };
-  wpm = derive2 { name="wpm"; version="1.12.0"; sha256="0g9cvxqyvmhd55s58n1940vsx8klkkmphakqz1apylkrlzylgzya"; depends=[Biobase cli config dplyr DT ggplot2 golem logging RColorBrewer rlang shiny shinycustomloader shinydashboard shinyWidgets stringr SummarizedExperiment]; };
-  wppi = derive2 { name="wppi"; version="1.10.0"; sha256="04wg645c0gww8mq3vg70gqlwm12dmqxmvk704zvmxcpifhrvpn2b"; depends=[dplyr igraph logger magrittr Matrix OmnipathR progress purrr RCurl rlang tibble tidyr]; };
-  xcms = derive2 { name="xcms"; version="4.0.2"; sha256="170s260sp880d3rb256189jvfnnmyzf9nxh8bvksng6yp561r8dc"; depends=[Biobase BiocGenerics BiocParallel IRanges lattice MassSpecWavelet MsCoreUtils MsExperiment MsFeatures MSnbase multtest mzR plyr progress ProtGenerics RANN RColorBrewer robustbase S4Vectors Spectra SummarizedExperiment]; };
-  xcore = derive2 { name="xcore"; version="1.6.0"; sha256="0m176rbszbpi2900cf1p574hvi5qmvw9faf08g15wijk9r896qx7"; depends=[DelayedArray edgeR foreach GenomicRanges glmnet IRanges iterators magrittr Matrix MultiAssayExperiment S4Vectors]; };
-  xmapbridge = derive2 { name="xmapbridge"; version="1.60.0"; sha256="0pby2h8m12xlngpk33dvh3nkrpgqi4f2mb7g9jafyiv3sl8pjd19"; depends=[]; };
-  yamss = derive2 { name="yamss"; version="1.28.0"; sha256="16rdy35wmydcx322pf9j7l7z2mzgrksg1whr8i8xdmdqfnqz3xyb"; depends=[BiocGenerics data_table EBImage IRanges limma Matrix mzR S4Vectors SummarizedExperiment]; };
-  yarn = derive2 { name="yarn"; version="1.28.0"; sha256="12d806pyiks5xbvxng4pxn0xqvgs4c526gp2pp2qhdxw0w2m29rj"; depends=[Biobase biomaRt downloader edgeR gplots limma matrixStats preprocessCore quantro RColorBrewer readr]; };
-  zFPKM = derive2 { name="zFPKM"; version="1.24.0"; sha256="18pnzc51r7l1ypnhavl83r3gy7l91qnqzvl6771zid04g99pk844"; depends=[checkmate dplyr ggplot2 SummarizedExperiment tidyr]; };
-  zellkonverter = derive2 { name="zellkonverter"; version="1.12.1"; sha256="029bqn25c90algvgacxbv0fdznpg879xjwfj5hiydfwq30y0kr8r"; depends=[basilisk cli DelayedArray Matrix reticulate S4Vectors SingleCellExperiment SummarizedExperiment]; };
-  zenith = derive2 { name="zenith"; version="1.4.2"; sha256="0wy3v69pp8jhij1svncq86x35xxr2d0gl5mrk7h8w4341sbms4p4"; depends=[EnrichmentBrowser ggplot2 GSEABase limma msigdbr progress Rdpack reshape2 Rfast tidyr variancePartition]; };
-  zinbwave = derive2 { name="zinbwave"; version="1.24.0"; sha256="1lp8x9grc07kaz9iy7yc45mk708g9dplsl86fq0ip8rs51c8f31i"; depends=[BiocParallel edgeR genefilter Matrix SingleCellExperiment softImpute SummarizedExperiment]; };
-  zlibbioc = derive2 { name="zlibbioc"; version="1.48.2"; sha256="078v1iywzc0ng27r0wjchvkh4znzydq1swlalqb95xkmn72vrq8d"; depends=[]; };
+  ABSSeq = derive2 { name="ABSSeq"; version="1.58.0"; sha256="0zqb2w055x4whgl3mljarsnps6lkz90fwlx2lnirbnrgmlnalwjz"; depends=[limma locfit]; };
+  ABarray = derive2 { name="ABarray"; version="1.72.0"; sha256="1kfqq4df55pxl7gnwf24aaryxijym4gzqfjyif28arlbjci9hlv6"; depends=[Biobase multtest]; };
+  ACE = derive2 { name="ACE"; version="1.22.0"; sha256="1gpn9z09cfcy2mj7m32xfb2bjjwl01g9qn9nqaivmqbi4k6icrr8"; depends=[Biobase GenomicRanges ggplot2 QDNAseq]; };
+  ACME = derive2 { name="ACME"; version="2.60.0"; sha256="0jak83dlavhczaa2nqk5g2l0h4grnc9v24bg6v9mjfn6bqhl1s7j"; depends=[Biobase BiocGenerics]; };
+  ADAM = derive2 { name="ADAM"; version="1.20.0"; sha256="0z0rmpwfhd8p6c4zscviwsningsm740r3pb95cl8brasfdg1kl3v"; depends=[dplyr DT GO_db KEGGREST knitr pbapply Rcpp stringr SummarizedExperiment]; };
+  ADAMgui = derive2 { name="ADAMgui"; version="1.20.0"; sha256="08kxkb6hgbw7l9dv1wn3jfdkc0sizqdgmjkrzpq73q7rf0p4248g"; depends=[ADAM colorRamps data_table dplyr DT ggplot2 ggpubr ggrepel ggsignif GO_db gridExtra knitr RColorBrewer reshape2 shiny shinyjs stringi stringr testthat varhandle]; };
+  ADImpute = derive2 { name="ADImpute"; version="1.14.0"; sha256="0kihg0mwm2ysgnx3jg6xln7ibvgmky0x2hjbcmdqlg65znczh4b6"; depends=[BiocParallel checkmate data_table DrImpute kernlab MASS Matrix rsvd S4Vectors SAVER SingleCellExperiment SummarizedExperiment]; };
+  ADaCGH2 = derive2 { name="ADaCGH2"; version="2.44.0"; sha256="1j9dn0xw8mdfvi2ccm1d5j9q740wb89wqi6715n6jy3dljlc8irz"; depends=[aCGH bit cluster DNAcopy ff GLAD tilingArray waveslim]; };
+  AGDEX = derive2 { name="AGDEX"; version="1.52.0"; sha256="088r2ahqjv61wnzp7by4c5v9aivahmyfkzr7prnkk3ff8zh6pznl"; depends=[Biobase GSEABase]; };
+  AHMassBank = derive2 { name="AHMassBank"; version="1.4.0"; sha256="1inlsknrkb5am3aqfp3mk1fd0aaj89wfiq1549k7dqy71ng7rpf9"; depends=[AnnotationHubData]; };
+  AIMS = derive2 { name="AIMS"; version="1.36.0"; sha256="0ljdv1gww01yi0h9j9br8kp67k5wizr1dy0091kngjcbn0dxzmla"; depends=[Biobase e1071]; };
+  ALDEx2 = derive2 { name="ALDEx2"; version="1.36.0"; sha256="1bqpk93bbyajw2dm54d68f3dkc0jgcny109asfm6kcz7dg7szi3y"; depends=[BiocParallel directlabels GenomicRanges IRanges lattice latticeExtra multtest Rfast S4Vectors SummarizedExperiment zCompositions]; };
+  AMARETTO = derive2 { name="AMARETTO"; version="1.20.0"; sha256="0n3w00x1qajkg43ip3l63k2qs0d1x2zv8wv4xj0iqwl6r6cqgxnf"; depends=[BiocFileCache callr circlize ComplexHeatmap curatedTCGAData doParallel dplyr DT foreach ggplot2 glmnet gridExtra httr impute knitr limma Matrix matrixStats MultiAssayExperiment Rcpp readr reshape2 rmarkdown tibble]; };
+  AMOUNTAIN = derive2 { name="AMOUNTAIN"; version="1.30.0"; sha256="1y2k1vg31siic6j98700m54sswbj6wr4dvbw2mz3hlm0nmsmpxc1"; depends=[]; };
+  ANCOMBC = derive2 { name="ANCOMBC"; version="2.6.0"; sha256="14jdfcv3hghl1z2f7zj2mdqdyblz5sn4l1iwh8bhvih86cpigb58"; depends=[CVXR DescTools doParallel doRNG energy foreach gtools Hmisc lme4 lmerTest MASS Matrix mia multcomp nloptr Rdpack S4Vectors SingleCellExperiment SummarizedExperiment TreeSummarizedExperiment]; };
+  ANF = derive2 { name="ANF"; version="1.26.0"; sha256="00s2rlkh5snqmvlz5a21ilmm0ngh4g362y7iayr6f78nh8gwp617"; depends=[Biobase igraph MASS RColorBrewer survival]; };
+  APAlyzer = derive2 { name="APAlyzer"; version="1.18.0"; sha256="102zs1rlz58dzvrgidf7cvq4wcmk6sffc9fv4b0xlqk5d6il32w4"; depends=[DESeq2 dplyr GenomicAlignments GenomicFeatures GenomicRanges ggplot2 ggrepel HybridMTest repmis Rsamtools Rsubread rtracklayer SummarizedExperiment tidyr VariantAnnotation]; };
+  APL = derive2 { name="APL"; version="1.8.0"; sha256="1mkm9aad0qamqs7595mqcbz37qz4ykn0y24wsl3ngj6ifyfxf643"; depends=[ggplot2 ggrepel magrittr Matrix org_Hs_eg_db org_Mm_eg_db plotly reticulate rlang Seurat SingleCellExperiment SummarizedExperiment topGO viridisLite]; };
+  ARRmNormalization = derive2 { name="ARRmNormalization"; version="1.44.0"; sha256="0wg799c5pzw9g0dbkaa5j4jyccvixqbc8x3xnwk3cgi1dsbhpk34"; depends=[ARRmData]; };
+  ASAFE = derive2 { name="ASAFE"; version="1.30.0"; sha256="13qf4jvf0m6i46bwqxdhd4zllac370ckwnd9xh6p56r1lrgcl4sa"; depends=[]; };
+  ASEB = derive2 { name="ASEB"; version="1.48.0"; sha256="1h5rgy2n7rxd72ypzwnfclw8h5hvdnac48fgbfll669z2k97dsmm"; depends=[]; };
+  ASGSCA = derive2 { name="ASGSCA"; version="1.38.0"; sha256="0gvpb1pspm7zlllg77fbi3g6csa3cpp2lbljna2m0xfi0c5zdqvw"; depends=[MASS Matrix]; };
+  ASICS = derive2 { name="ASICS"; version="2.20.1"; sha256="0halznbl3bflnn38rh9h5a5f0dsc88n6x6kwdffbpnin9i192q1k"; depends=[BiocParallel ggplot2 glmnet gridExtra Matrix mvtnorm PepsNMR plyr quadprog ropls SummarizedExperiment zoo]; };
+  ASSET = derive2 { name="ASSET"; version="2.22.0"; sha256="1wqsnp7w3ml7azrx72fafcfbmjg4324jaxcijpcrlrrccxl5rwp4"; depends=[MASS msm rmeta]; };
+  ASSIGN = derive2 { name="ASSIGN"; version="1.40.0"; sha256="1aq302awy940jrc1hnsf0rn05y4fg5m9aljsl1mclxxig6b8mrd2"; depends=[ggplot2 gplots msm Rlab sva yaml]; };
+  ASURAT = derive2 { name="ASURAT"; version="1.8.0"; sha256="1fjzmvc4if1kqhwzhd38l5ryvk2qg3001jwapbnkfagxkhmnwymg"; depends=[circlize cluster ComplexHeatmap plot3D Rcpp S4Vectors SingleCellExperiment SummarizedExperiment]; };
+  ASpli = derive2 { name="ASpli"; version="2.14.0"; sha256="1br4apbc3zn06ilg8fjb8xcxaimz4h7rnx9i60ak4wnpvgzgbyh2"; depends=[AnnotationDbi BiocGenerics BiocStyle data_table DT edgeR GenomicAlignments GenomicFeatures GenomicRanges Gviz htmltools igraph IRanges limma MASS pbmcapply Rsamtools S4Vectors tidyr txdbmaker UpSetR]; };
+  ATACCoGAPS = derive2 { name="ATACCoGAPS"; version="1.6.0"; sha256="09h32q9y7z65ck33rwqzw2wkl8l6016s0sdkhf2g094yxhkz26rh"; depends=[BSgenome_Hsapiens_UCSC_hg19 BSgenome_Mmusculus_UCSC_mm10 chromVAR CoGAPS dplyr fgsea GeneOverlap GenomicFeatures GenomicRanges gplots gtools Homo_sapiens IRanges JASPAR2016 motifmatchr msigdbr Mus_musculus projectR rGREAT stringr TFBSTools tidyverse]; };
+  ATACseqQC = derive2 { name="ATACseqQC"; version="1.28.0"; sha256="0licdpzhh6xlma0hnvs4rr4bjr5q4q3g18kipf0is47zj4l91smy"; depends=[BiocGenerics BiocParallel Biostrings BSgenome ChIPpeakAnno edgeR GenomeInfoDb GenomicAlignments GenomicRanges GenomicScores IRanges KernSmooth limma motifStack preseqR randomForest Rsamtools rtracklayer S4Vectors]; };
+  ATACseqTFEA = derive2 { name="ATACseqTFEA"; version="1.6.0"; sha256="1dfw6vb0fx02xx21msvy8iarwmn41p1l3ryx1zs39668bz6zz06j"; depends=[BiocGenerics dplyr GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 ggrepel IRanges limma Matrix motifmatchr pracma Rsamtools rtracklayer S4Vectors SummarizedExperiment TFBSTools]; };
+  AUCell = derive2 { name="AUCell"; version="1.26.0"; sha256="009ha82393giapvmfw2mi8pmi88f61mr69qj64y5vphcr1smvcl0"; depends=[BiocGenerics data_table DelayedArray DelayedMatrixStats GSEABase Matrix mixtools R_utils SummarizedExperiment]; };
+  AWFisher = derive2 { name="AWFisher"; version="1.18.0"; sha256="0z5qs337zqqri2g3m69m85xg4x5sxnqlkbwz83vhnqfzmy9nqym0"; depends=[edgeR limma]; };
+  AffiXcan = derive2 { name="AffiXcan"; version="1.22.0"; sha256="1241vpqkv4p3yarr6fsz1a7awvc4ff7q75ia3ra7vgkvg7gx9p93"; depends=[BiocParallel crayon MultiAssayExperiment SummarizedExperiment]; };
+  AffyRNADegradation = derive2 { name="AffyRNADegradation"; version="1.50.0"; sha256="19lcs76jsdy5dz57rkdb8qqankpasrw2r5z4cy98q94az6582ix4"; depends=[affy]; };
+  AgiMicroRna = derive2 { name="AgiMicroRna"; version="2.54.0"; sha256="1bm8rxfdgd0fx48fi70by08qr855jv6r4xcr7al2v9akv6vphws2"; depends=[affy affycoretools Biobase limma preprocessCore]; };
+  AllelicImbalance = derive2 { name="AllelicImbalance"; version="1.42.0"; sha256="0mbmw450gdlr46ggvhrgimkbir3lg5dnqsfadn7yyrn7wkcr302f"; depends=[AnnotationDbi BiocGenerics Biostrings BSgenome GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges gridExtra Gviz IRanges lattice latticeExtra nlme Rsamtools S4Vectors seqinr SummarizedExperiment VariantAnnotation]; };
+  AlphaBeta = derive2 { name="AlphaBeta"; version="1.18.0"; sha256="192jyfw2676x8pgcp9h4d78283p7n6gnsdw7wzphfjn12v266fb5"; depends=[BiocParallel data_table dplyr expm ggplot2 gtools igraph optimx plotly stringr]; };
+  AlphaMissenseR = derive2 { name="AlphaMissenseR"; version="1.0.2"; sha256="1y8dzcrjqmqagnl4jiwcsfkj28n544j2d6li0ga6rrqmjwrnxzv0"; depends=[BiocBaseUtils BiocFileCache curl DBI dplyr duckdb memoise rjsoncons rlang spdl whisker]; };
+  AlpsNMR = derive2 { name="AlpsNMR"; version="4.6.0"; sha256="1c8ynw9424ygc4wj4drbm9gdkdqwgb5z7p72zk3x5zh3zqai0d1d"; depends=[baseline BiocParallel cli dplyr fs future generics ggplot2 glue htmltools magrittr matrixStats mixOmics pcaPP purrr readxl reshape2 rlang rmarkdown scales signal speaq stringr tibble tidyr tidyselect vctrs]; };
+  AnVIL = derive2 { name="AnVIL"; version="1.16.0"; sha256="0859gsgvljl2adjz4md52z4k1bcqh24i5xdfqddflw4gaq1zlm69"; depends=[BiocBaseUtils BiocManager dplyr DT futile_logger htmltools httr jsonlite miniUI rapiclient rlang shiny tibble tidyr tidyselect yaml]; };
+  AnVILBilling = derive2 { name="AnVILBilling"; version="1.14.0"; sha256="0z05zp70l7r1wxf1s825gsgaj6kzj4fgw3962gp0z90whz398jyf"; depends=[bigrquery DBI dplyr DT ggplot2 lubridate magrittr plotly shiny shinytoastr]; };
+  AnVILPublish = derive2 { name="AnVILPublish"; version="1.14.0"; sha256="030bm9hxqzgfp94h64wfizcbp4q8b9h2irk4zv679v0wnbspp3zz"; depends=[AnVIL BiocBaseUtils BiocManager httr jsonlite readr rmarkdown whisker yaml]; };
+  AnVILWorkflow = derive2 { name="AnVILWorkflow"; version="1.4.0"; sha256="0qk20pg45z2fk7c3ickyzpv99w48pa3r2lfp1aqvh2blbdvp6z88"; depends=[AnVIL dplyr httr jsonlite tibble]; };
+  Anaquin = derive2 { name="Anaquin"; version="2.28.0"; sha256="0hfvwzkfy6bm2ffghax5b228k2l6wf8zq82q13h6bxfps4wz0jgb"; depends=[DESeq2 ggplot2 knitr locfit plyr qvalue ROCR]; };
+  AneuFinder = derive2 { name="AneuFinder"; version="1.32.0"; sha256="0dgmg0slyrh025wgz299dzzmpirlmdhmabxspci1qfarakw5yicf"; depends=[AneuFinderData bamsignals BiocGenerics Biostrings cowplot DNAcopy doParallel ecp foreach GenomeInfoDb GenomicAlignments GenomicRanges ggdendro ggplot2 ggrepel IRanges mclust reshape2 Rsamtools S4Vectors]; };
+  AnnotationDbi = derive2 { name="AnnotationDbi"; version="1.66.0"; sha256="1g2yzbx7djkk8kccbclxv953iijmjvsjsalfv1ihmmcai33979rs"; depends=[Biobase BiocGenerics DBI IRanges KEGGREST RSQLite S4Vectors]; };
+  AnnotationFilter = derive2 { name="AnnotationFilter"; version="1.28.0"; sha256="1sdm85sl4d9mqbjgjh3yizcmrzgz0g4x17s25gss2f6cjwy5jp40"; depends=[GenomicRanges lazyeval]; };
+  AnnotationForge = derive2 { name="AnnotationForge"; version="1.46.0"; sha256="1ikri9hb1s0jzw1wyfpwsl02hg8dw2xs703sp085sbsq3cwk9cn1"; depends=[AnnotationDbi Biobase BiocGenerics DBI RCurl RSQLite S4Vectors XML]; };
+  AnnotationHub = derive2 { name="AnnotationHub"; version="3.12.0"; sha256="1da2n13j2xysnd175zi7s6zm8yllnp0k59vygkx9id85jcldqf51"; depends=[AnnotationDbi BiocFileCache BiocGenerics BiocManager BiocVersion curl dplyr httr rappdirs RSQLite S4Vectors yaml]; };
+  AnnotationHubData = derive2 { name="AnnotationHubData"; version="1.34.0"; sha256="0wcbghjvgr8sx1qg9kyjxb7znkxhihy7jvzycrv4pyq746154xbi"; depends=[AnnotationDbi AnnotationForge AnnotationHub Biobase BiocCheck BiocGenerics BiocManager biocViews Biostrings DBI futile_logger GenomeInfoDb GenomicFeatures GenomicRanges graph IRanges jsonlite OrganismDbi RCurl Rsamtools RSQLite rtracklayer S4Vectors XML]; };
+  ArrayExpress = derive2 { name="ArrayExpress"; version="1.64.0"; sha256="1ad6h0pi04r9m3nwxrn7sha837m95kwii8z6s7j4zbka9ijy2pr4"; depends=[Biobase httr jsonlite limma oligo rlang]; };
+  AssessORF = derive2 { name="AssessORF"; version="1.22.0"; sha256="1gzaafsfqzy2x35i251gvkd1syif80qb08kkvgnf1i6c8d2czmps"; depends=[Biostrings DECIPHER GenomicRanges IRanges]; };
+  BADER = derive2 { name="BADER"; version="1.42.0"; sha256="15lsvfmp4qsrv12bcrz5q8yz8xyg9rckrcflr3k6si03z2vw812p"; depends=[]; };
+  BAGS = derive2 { name="BAGS"; version="2.44.0"; sha256="1xc7gp5fljqz26lj8sjcilm01g636p4wlzy4pzy5wgqxgfcw3zps"; depends=[Biobase breastCancerVDX]; };
+  BANDITS = derive2 { name="BANDITS"; version="1.20.0"; sha256="1iizs0bvs7rbkwv3vs6xk26jy222kql80fp6cki0qs9h9igpzk5h"; depends=[BiocParallel data_table doParallel doRNG DRIMSeq foreach ggplot2 MASS R_utils Rcpp RcppArmadillo]; };
+  BASiCS = derive2 { name="BASiCS"; version="2.16.0"; sha256="0rcc8na0nravf2687bcvbaklwa0z8b43lvdy0nf9xvfrfpr1zjnw"; depends=[assertthat Biobase BiocGenerics BiocParallel coda cowplot ggExtra ggplot2 hexbin MASS Matrix matrixStats posterior Rcpp RcppArmadillo reshape2 S4Vectors scran scuttle SingleCellExperiment SummarizedExperiment viridis]; };
+  BASiCStan = derive2 { name="BASiCStan"; version="1.6.0"; sha256="1q6lhmdy19v30aq9hzphxicq6blyzr6z94wcqsqzwb0xjij1z5f9"; depends=[BASiCS BH glmGamPoi Rcpp RcppEigen RcppParallel rstan rstantools scran scuttle SingleCellExperiment StanHeaders SummarizedExperiment]; };
+  BBCAnalyzer = derive2 { name="BBCAnalyzer"; version="1.34.0"; sha256="16zm6fix5f5277dkdaxyxl1q1n52960ma3vw8001a5bjxhic58rn"; depends=[Biostrings GenomicRanges IRanges Rsamtools SummarizedExperiment VariantAnnotation]; };
+  BCRANK = derive2 { name="BCRANK"; version="1.66.0"; sha256="0ydajrbggvqakdf01pq5mqi1v3slz00irpbx4s9fmxvci9ganwp7"; depends=[Biostrings]; };
+  BEARscc = derive2 { name="BEARscc"; version="1.24.0"; sha256="0f66pbhf4fz66021k7f6rlwzxdikznbhjqqpxwrj07yg65q5sd1l"; depends=[data_table ggplot2 SingleCellExperiment]; };
+  BEAT = derive2 { name="BEAT"; version="1.42.0"; sha256="0s63nwf21ai1gys0dzjsjqy64sal7dpp040f0jqskyf2y6gdf9v9"; depends=[Biostrings BSgenome GenomicRanges ShortRead]; };
+  BERT = derive2 { name="BERT"; version="1.0.0"; sha256="1n2v8sdvh40sqz8gpzszwhp2w6npxnl48bsp9l0bzz8w148cwyk8"; depends=[BiocParallel cluster comprehenr foreach invgamma iterators janitor limma logging SummarizedExperiment sva]; };
+  BEclear = derive2 { name="BEclear"; version="2.20.0"; sha256="17i93h0q1fwl8wymmlgjsh8hbnaws6baf4jid5k579aap32zb5ha"; depends=[abind BiocParallel data_table dixonTest futile_logger ids Matrix Rcpp Rdpack]; };
+  BG2 = derive2 { name="BG2"; version="1.4.0"; sha256="0nby9b7kha4bz2x7a8b9nk78qai98m76csndnaikcpg79mpzygv5"; depends=[caret GA MASS Matrix memoise]; };
+  BHC = derive2 { name="BHC"; version="1.56.0"; sha256="1fam1k42dwd0gh7dw2gz4yl6bnbkfrw0bd44v8sdpvwwyd1dq1r8"; depends=[]; };
+  BLMA = derive2 { name="BLMA"; version="1.28.0"; sha256="1b6hcjy6dv55cpprm8ylz7akl4vyvi6lky0qc31q6skxxdp3266k"; depends=[Biobase graph GSA limma metafor PADOG ROntoTools]; };
+  BOBaFIT = derive2 { name="BOBaFIT"; version="1.8.0"; sha256="18xzy91rblcdc4x8c4cxi5b03cskdwjpryzajhzycdpdb4hfg89q"; depends=[dplyr GenomicRanges ggbio ggforce ggplot2 magrittr NbClust plyranges stringr tidyr]; };
+  BPRMeth = derive2 { name="BPRMeth"; version="1.30.0"; sha256="0ax88n7i72lhlrrq4zc6ay5mg9ds37qlg10xafgkilgliz309ykn"; depends=[assertthat BiocStyle cowplot data_table doParallel e1071 earth foreach GenomicRanges ggplot2 IRanges kernlab magrittr MASS matrixcalc mvtnorm randomForest Rcpp RcppArmadillo S4Vectors truncnorm]; };
+  BRAIN = derive2 { name="BRAIN"; version="1.50.0"; sha256="0l712ilc308amafhbl9g6g6jvn1px0x0wlc53y2ql397l9bivva3"; depends=[Biostrings lattice PolynomF]; };
+  BREW3R_r = derive2 { name="BREW3R.r"; version="1.0.1"; sha256="0i0r5sryvq721dlffs9d092776jx0j7r9mfiyi24glgqalmrslag"; depends=[GenomicRanges rlang S4Vectors]; };
+  BSgenome = derive2 { name="BSgenome"; version="1.72.0"; sha256="1pjbkakrycvaifl7xrmri2h94zc1ap8a9d1q4c83qji3xa21cm4q"; depends=[BiocGenerics BiocIO Biostrings GenomeInfoDb GenomicRanges IRanges matrixStats Rsamtools rtracklayer S4Vectors XVector]; };
+  BSgenomeForge = derive2 { name="BSgenomeForge"; version="1.4.0"; sha256="0100y9lqj0xjz1ycazn4v74m7h26fxdbb03xa7ryvpdq61b0gc8p"; depends=[Biobase BiocGenerics BiocIO Biostrings BSgenome GenomeInfoDb GenomicRanges IRanges rtracklayer S4Vectors]; };
+  BUMHMM = derive2 { name="BUMHMM"; version="1.28.0"; sha256="0c35x7bjp97qiahykkvk8krsnvy1w29qvrb6x8wa4vwn58a56naa"; depends=[Biostrings devtools gtools IRanges stringi SummarizedExperiment]; };
+  BUS = derive2 { name="BUS"; version="1.60.0"; sha256="1xwdqz9lyz110bh96ihldwg50k7fbnvnkivyqd9qj1iwk3vz7qd6"; depends=[infotheo minet]; };
+  BUScorrect = derive2 { name="BUScorrect"; version="1.22.0"; sha256="1crq6h9s3kxk1z7xpapq1jwwqwpa2fznhykm84k2zjl8jzvc7lmi"; depends=[gplots SummarizedExperiment]; };
+  BUSpaRse = derive2 { name="BUSpaRse"; version="1.18.0"; sha256="08lq6g6sh5vgr4nn3cmn5gz735zsf8lwhhlqpg9l3d8lzfcb22d5"; depends=[AnnotationDbi AnnotationFilter BH BiocGenerics biomaRt Biostrings BSgenome dplyr ensembldb GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 IRanges magrittr Matrix plyranges Rcpp RcppArmadillo RcppProgress S4Vectors stringr tibble tidyr zeallot]; };
+  BUSseq = derive2 { name="BUSseq"; version="1.10.0"; sha256="19ajpfgz3aj1p6955z128smanna1gff6dfgh7dz8vhjyyz5nbi1q"; depends=[gplots S4Vectors SingleCellExperiment SummarizedExperiment]; };
+  BaalChIP = derive2 { name="BaalChIP"; version="1.30.0"; sha256="1xm6czgbfz2rjrz5996d0n7xmlh9pd1mw9i8ac66pmn5fi44pbz2"; depends=[coda doBy doParallel foreach GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 IRanges reshape2 Rsamtools scales]; };
+  BadRegionFinder = derive2 { name="BadRegionFinder"; version="1.32.0"; sha256="1hs1mv8gj4w0wk6sw6r08j237vw3lhjrv9zip5nk6l1g1r0pg597"; depends=[biomaRt GenomicRanges Rsamtools S4Vectors VariantAnnotation]; };
+  Banksy = derive2 { name="Banksy"; version="1.0.0"; sha256="1qz5nhf2qcdwcbi4kbwdjgbxpql8w5391cnb8i73gj54chc8bvn1"; depends=[aricode data_table dbscan igraph irlba leidenAlg matrixStats mclust RcppHungarian S4Vectors SingleCellExperiment SpatialExperiment SummarizedExperiment uwot]; };
+  BaseSpaceR = derive2 { name="BaseSpaceR"; version="1.48.0"; sha256="02f2l42p08xags155qydz97ipg5vya0prmrlw4kvahgbq5p0xm44"; depends=[RCurl RJSONIO]; };
+  Basic4Cseq = derive2 { name="Basic4Cseq"; version="1.40.0"; sha256="0ipxhdsqa8q49d2i17kvwyn6w2rpyl9jmq9bhch7cjawykjla5kf"; depends=[Biostrings BSgenome_Ecoli_NCBI_20080805 caTools GenomicAlignments GenomicRanges RCircos]; };
+  BasicSTARRseq = derive2 { name="BasicSTARRseq"; version="1.32.0"; sha256="1w69qc81pj3c4gq158ag59wbpm2aaiqmnnb79m0h7dlsnf964cjv"; depends=[GenomeInfoDb GenomicAlignments GenomicRanges IRanges S4Vectors]; };
+  BatchQC = derive2 { name="BatchQC"; version="2.0.0"; sha256="1kijj3ivlrwk4490jsb7vsrc7kmx32hla52cg3zb3vj6l5cwq7g6"; depends=[data_table DESeq2 dplyr EBSeq ggdendro ggnewscale ggplot2 limma matrixStats pheatmap RColorBrewer reader reshape2 scran shiny SummarizedExperiment sva tibble tidyr tidyverse]; };
+  BayesKnockdown = derive2 { name="BayesKnockdown"; version="1.30.0"; sha256="05plmh36s00jh4ckcgvi2s9ypa8mxlsy23mzysazbfsr022x3vqa"; depends=[Biobase]; };
+  BayesSpace = derive2 { name="BayesSpace"; version="1.14.0"; sha256="0q1haqsyc61yxz1n197sv3s6csjpns4fi288kf58nnf5jgdwnyx5"; depends=[assertthat BiocFileCache BiocSingular coda DirichletReg ggplot2 Matrix mclust purrr Rcpp RcppArmadillo RcppDist RcppProgress RCurl rhdf5 S4Vectors scales scater scran SingleCellExperiment SummarizedExperiment xgboost]; };
+  BeadDataPackR = derive2 { name="BeadDataPackR"; version="1.56.0"; sha256="0wz3prri0mfjczmb432faxfjc99wg4lq26l3a60rmxyxq8mcnpkv"; depends=[]; };
+  BgeeDB = derive2 { name="BgeeDB"; version="2.30.0"; sha256="1jbb93inv7z0i8b1jr6ax98gqkqn73m86hj61irgyysk7hn4bbg6"; depends=[Biobase curl data_table digest dplyr graph R_utils RCurl RSQLite tidyr topGO]; };
+  BiFET = derive2 { name="BiFET"; version="1.24.0"; sha256="148j41mawxvzyal9lfjy7h1gp0w8zwmgc7s32wiqa30qjcc82snx"; depends=[GenomicRanges poibin]; };
+  BiGGR = derive2 { name="BiGGR"; version="1.40.0"; sha256="1ja5j9753rgx61jwkax0mzkxh7ybh3m4ampkr5ikw3afda23wg1z"; depends=[hyperdraw hypergraph LIM limSolve rsbml stringr]; };
+  BiRewire = derive2 { name="BiRewire"; version="3.36.0"; sha256="1l3hkq6n7i9j82aym4ngwablj8jqb70a7y6skx0rjkflya6wbim7"; depends=[igraph Matrix Rtsne slam]; };
+  BiSeq = derive2 { name="BiSeq"; version="1.44.0"; sha256="12nkdaz54ga133v38mmqaf3xcsx7ps2rcxxvni100vsk93hv155z"; depends=[betareg Biobase BiocGenerics Formula GenomeInfoDb GenomicRanges globaltest IRanges lokern rtracklayer S4Vectors SummarizedExperiment]; };
+  BicARE = derive2 { name="BicARE"; version="1.62.0"; sha256="0397xg4sj988b0chzfpy23dszpjbdkch59wfynbn4pwyvl0qmp9j"; depends=[Biobase GO_db GSEABase multtest]; };
+  BindingSiteFinder = derive2 { name="BindingSiteFinder"; version="2.2.0"; sha256="1icgz7wfayqzr1wd0n7sb71bh149d4d1m7rh5s5ap07llnn7vsq1"; depends=[ComplexHeatmap dplyr forcats GenomeInfoDb GenomicFeatures GenomicRanges ggdist ggforce ggplot2 IRanges kableExtra lifecycle matrixStats plyr RColorBrewer rlang rtracklayer S4Vectors tibble tidyr]; };
+  BioCartaImage = derive2 { name="BioCartaImage"; version="1.2.0"; sha256="0kcqhgr6q86b874i56p0cai8kiqbx8q3vk40xq221dzjf19r8ag8"; depends=[magick]; };
+  BioCor = derive2 { name="BioCor"; version="1.28.0"; sha256="0jpi51f9cv3sv4l69974bba8c8k0inb6zxviv7i907ldaiiblr07"; depends=[BiocParallel GSEABase Matrix]; };
+  BioMVCClass = derive2 { name="BioMVCClass"; version="1.72.0"; sha256="0dfdksk3nc6pzw21sbd4cdqr05489qh4984wv0f906hyb52waxk2"; depends=[Biobase graph MVCClass Rgraphviz]; };
+  BioNAR = derive2 { name="BioNAR"; version="1.6.0"; sha256="1airs789p970v5j4nfmsvba70r3yadc4rw3z3sykqnc1qxzinvxq"; depends=[AnnotationDbi clusterCons cowplot data_table dplyr fgsea ggplot2 ggrepel GO_db igraph latex2exp Matrix minpack_lm org_Hs_eg_db poweRlaw Rdpack RSpectra rSpectral scales stringr viridis WGCNA]; };
+  BioNERO = derive2 { name="BioNERO"; version="1.12.0"; sha256="02jqlpd31mhxbvksj7ny34f6dv8skkkr76lkiaj5gm078kfr0zx5"; depends=[BiocParallel ComplexHeatmap dynamicTreeCut GENIE3 ggdendro ggnetwork ggplot2 ggrepel igraph intergraph matrixStats minet NetRep patchwork RColorBrewer reshape2 rlang SummarizedExperiment sva WGCNA]; };
+  BioNet = derive2 { name="BioNet"; version="1.64.0"; sha256="0lpqvm0cx7pnb99jh7na49x10w2v04xydiwxn9l41ngxysp8v0h6"; depends=[AnnotationDbi Biobase graph igraph RBGL]; };
+  BioQC = derive2 { name="BioQC"; version="1.32.0"; sha256="14yrqf5wl9r596zvlpf4y48nykg0gwzlxfgi3kdx0i5pfgvi43vk"; depends=[Biobase edgeR Rcpp]; };
+  Biobase = derive2 { name="Biobase"; version="2.64.0"; sha256="09xnl0qq4qsd981i9srw07228lgashcvcavi8k0izdzfyk6ka7m2"; depends=[BiocGenerics]; };
+  BiocBaseUtils = derive2 { name="BiocBaseUtils"; version="1.6.0"; sha256="0f8bzhpi6xla52sbvpd20sgli7mp5xfk2aqpcv6jkf8s59jsmn54"; depends=[]; };
+  BiocBook = derive2 { name="BiocBook"; version="1.2.0"; sha256="0rdsx2slwp69l6svsaj3pndd6bv318jkla5j84avwgfi63wks092"; depends=[available BiocGenerics cli dplyr gert gh gitcreds glue httr purrr quarto renv rlang rprojroot stringr tibble usethis yaml]; };
+  BiocCheck = derive2 { name="BiocCheck"; version="1.40.0"; sha256="0rvr68d5anir7bj913nxwwfj7i3h2dvadcfvjjdbdr3m35wyx1g8"; depends=[BiocBaseUtils BiocFileCache BiocManager biocViews callr codetools graph httr2 knitr rvest stringdist]; };
+  BiocFHIR = derive2 { name="BiocFHIR"; version="1.6.0"; sha256="0zw59xb6jxxqg9aiwn6h4ak4056b64y22irkysl51rvdrb12n32h"; depends=[BiocBaseUtils dplyr DT graph jsonlite shiny tidyr visNetwork]; };
+  BiocFileCache = derive2 { name="BiocFileCache"; version="2.12.0"; sha256="0jv6hni5x91ssvz4ilhi3y6lylrw4w3xfk8ljmq6gjvyl886sw9f"; depends=[curl DBI dbplyr dplyr filelock httr RSQLite]; };
+  BiocGenerics = derive2 { name="BiocGenerics"; version="0.50.0"; sha256="0500ya3df53xx1dfdmk50bh30ja28y6qkdwds1c1m4c7q0h2xmqi"; depends=[]; };
+  BiocHail = derive2 { name="BiocHail"; version="1.4.0"; sha256="1p8wkl31c7snv8l8zkmg2hf9pb2p0gif4gfgjia0npi91y2h5hfp"; depends=[basilisk BiocFileCache BiocGenerics dplyr reticulate]; };
+  BiocHubsShiny = derive2 { name="BiocHubsShiny"; version="1.4.0"; sha256="19ihc6fi04kbgmlvn5k1cjpckc03p5yfjpc3gjmmf3pn69qgljzf"; depends=[AnnotationHub DT ExperimentHub htmlwidgets S4Vectors shiny shinyAce shinyjs shinythemes shinytoastr]; };
+  BiocIO = derive2 { name="BiocIO"; version="1.14.0"; sha256="0ppsldpn3vbliimjvnxadn61crck45j581dw4lc5f3w1vy5vs44h"; depends=[BiocGenerics S4Vectors]; };
+  BiocNeighbors = derive2 { name="BiocNeighbors"; version="1.22.0"; sha256="1krg4cs406ymk27qcj3j1jsl8vl4j9k5zvwf4vzxgbw3x6lpywid"; depends=[BiocParallel Matrix Rcpp RcppHNSW S4Vectors]; };
+  BiocOncoTK = derive2 { name="BiocOncoTK"; version="1.24.0"; sha256="0h4cr7lrmbyx7kdj81s7ff75svr01rvzn54svqi93vjilawmpbm3"; depends=[bigrquery car ComplexHeatmap curatedTCGAData DBI dplyr DT GenomicFeatures GenomicRanges ggplot2 ggpubr graph httr IRanges magrittr MASS plyr Rgraphviz rjson S4Vectors scales shiny SummarizedExperiment]; };
+  BiocParallel = derive2 { name="BiocParallel"; version="1.38.0"; sha256="1miw26r2a8wvgnfr9sapfv6rqk219rmsyjh6v04annafxdxy15ky"; depends=[BH codetools cpp11 futile_logger snow]; };
+  BiocPkgTools = derive2 { name="BiocPkgTools"; version="1.22.0"; sha256="1nbzr1yjz65r0y8c312hnvagnc1pdgda4v6sxbpvlkl3z93jsy6x"; depends=[BiocFileCache BiocManager biocViews dplyr DT gh graph htmltools htmlwidgets httr igraph jsonlite magrittr RBGL readr rlang rorcid rvest stringr tibble xml2]; };
+  BiocSet = derive2 { name="BiocSet"; version="1.18.0"; sha256="1r1if1k7qgni3dk7gsl4vcyvd6hnhx94rcq5yi9w7dvyyrbvnwwa"; depends=[AnnotationDbi BiocIO dplyr KEGGREST ontologyIndex plyr rlang S4Vectors tibble tidyr]; };
+  BiocSingular = derive2 { name="BiocSingular"; version="1.20.0"; sha256="1xl9wn3slj3ywjglb8zq2p0ifx4xwxbqsm99fjlf6hanfhmnxyay"; depends=[beachmat BiocGenerics BiocParallel DelayedArray irlba Matrix Rcpp rsvd S4Vectors ScaledMatrix]; };
+  BiocSklearn = derive2 { name="BiocSklearn"; version="1.26.0"; sha256="19s38zpgdscbrqypyg17l1jw53x88lgkcrqg20gchfi6mig36a3w"; depends=[basilisk reticulate SummarizedExperiment]; };
+  BiocStyle = derive2 { name="BiocStyle"; version="2.32.0"; sha256="1vm9wj4hzzjivdi6rnxyhxwqscdvbmc45w9zq17h3r53qnva530x"; depends=[BiocManager bookdown knitr rmarkdown yaml]; };
+  BiocVersion = derive2 { name="BiocVersion"; version="3.19.1"; sha256="1zhm28313gsbscfhfdbqizvb5v67n4l0dapjmb1xq010ikly95mh"; depends=[]; };
+  BiocWorkflowTools = derive2 { name="BiocWorkflowTools"; version="1.30.0"; sha256="1gw0lmdhkzp5ar54yv9jagqmpxp7j9ajfmdqb2y2qrnhh39hymzs"; depends=[BiocStyle bookdown git2r httr knitr rmarkdown rstudioapi stringr usethis]; };
+  Biostrings = derive2 { name="Biostrings"; version="2.72.1"; sha256="067vy2v7spbdsknvi0fcpdi085kn8v20pyrhkc7wy357v21h7hgs"; depends=[BiocGenerics crayon GenomeInfoDb IRanges S4Vectors XVector]; };
+  BloodGen3Module = derive2 { name="BloodGen3Module"; version="1.12.0"; sha256="0mksc9jfzcj255a01hg8gjrs6k2plkpfqgv951csldvy7vqrdkma"; depends=[circlize ComplexHeatmap ExperimentHub ggplot2 gtools limma matrixStats preprocessCore randomcoloR reshape2 SummarizedExperiment testthat V8]; };
+  BridgeDbR = derive2 { name="BridgeDbR"; version="2.14.0"; sha256="0nsn1i5ah3l95wd1afcppxb364l44r3apma0aa79g4jday4zhbv5"; depends=[curl rJava]; };
+  BrowserViz = derive2 { name="BrowserViz"; version="2.26.0"; sha256="0wq1vc6m54kb8dw6c0qzw8hvvwjq78lqd18whph2nmywjcy9j9hw"; depends=[BiocGenerics httpuv jsonlite]; };
+  BubbleTree = derive2 { name="BubbleTree"; version="2.34.0"; sha256="0l69q8l6dacyqdbfdnxlg70f064xm8w5p07pi2x0baacxv8bs5d4"; depends=[Biobase BiocGenerics BiocStyle biovizBase dplyr e1071 GenomicRanges ggplot2 gridExtra gtable gtools IRanges limma magrittr plyr RColorBrewer WriteXLS]; };
+  BufferedMatrix = derive2 { name="BufferedMatrix"; version="1.68.0"; sha256="1rd446pzwplkjzqqg19ba3gn94kvsxxi472n6r9raxrggqic0bmi"; depends=[]; };
+  BufferedMatrixMethods = derive2 { name="BufferedMatrixMethods"; version="1.68.0"; sha256="1y8skcqbql4mi1zi53771jwsyw8665b13xyh9bnrv18j18axldk6"; depends=[BufferedMatrix]; };
+  BumpyMatrix = derive2 { name="BumpyMatrix"; version="1.12.0"; sha256="1f8xa184x6l363psbqn0a5yh16ghm2mciv726aii58bkln5qwkmb"; depends=[IRanges Matrix S4Vectors]; };
+  CAEN = derive2 { name="CAEN"; version="1.12.0"; sha256="1z4prnbh7y6i9b0d3y4fncmsj8vrz4i0k48l69kh14xi9lyhc773"; depends=[PoiClaClu SummarizedExperiment]; };
+  CAFE = derive2 { name="CAFE"; version="1.40.0"; sha256="1vq1yf78yfsfnsjpqb89zghzr677mdwvpi5zl3ikz2j5z40h1rjj"; depends=[affy annotate Biobase biovizBase GenomicRanges ggbio ggplot2 gridExtra IRanges]; };
+  CAGEfightR = derive2 { name="CAGEfightR"; version="1.24.0"; sha256="1i6q5bwg55d3iydcy3h6j9hg30581vvc592rs5cac310qxzcj8hj"; depends=[assertthat BiocGenerics BiocParallel GenomeInfoDb GenomicAlignments GenomicFeatures GenomicFiles GenomicInteractions GenomicRanges Gviz InteractionSet IRanges Matrix pryr rtracklayer S4Vectors SummarizedExperiment]; };
+  CAGEr = derive2 { name="CAGEr"; version="2.10.0"; sha256="1amx7l5y1v8ccmlpjmr9wm2dbc85xadx4ayy8m45vabi97j8nrp4"; depends=[BiocGenerics BiocParallel BSgenome CAGEfightR data_table DelayedArray DelayedMatrixStats formula_tools GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 gtools IRanges KernSmooth memoise MultiAssayExperiment plyr reshape2 Rsamtools rtracklayer S4Vectors som stringdist stringi SummarizedExperiment vegan VGAM]; };
+  CAMERA = derive2 { name="CAMERA"; version="1.60.0"; sha256="1wcihfi7vzdb5xkk2r7cdb4pqdbnph01m3dsz126984rzplpcd44"; depends=[Biobase graph Hmisc igraph RBGL xcms]; };
+  CARNIVAL = derive2 { name="CARNIVAL"; version="2.14.0"; sha256="05cjffkhawhrbvd9m4blm8klkhpv939qgnhpyx0mqfmk8b63rc26"; depends=[dplyr igraph lpSolve readr rjson rmarkdown stringr tibble tidyr]; };
+  CATALYST = derive2 { name="CATALYST"; version="1.28.0"; sha256="168yfkqlg6af8ndlw4wzb9adg4lgkgkjbsi4a435ks0n4c9dycb7"; depends=[circlize ComplexHeatmap ConsensusClusterPlus cowplot data_table dplyr drc flowCore FlowSOM ggplot2 ggrepel ggridges gridExtra Matrix matrixStats nnls purrr RColorBrewer reshape2 Rtsne S4Vectors scales scater SingleCellExperiment SummarizedExperiment]; };
+  CBEA = derive2 { name="CBEA"; version="1.4.0"; sha256="0j43lvz55xawwk723rsfpir6vir5wbxpwslpk4x2frslf5i00mky"; depends=[BiocParallel BiocSet dplyr fitdistrplus generics glue goftest lmom magrittr mixtools Rcpp rlang SummarizedExperiment tibble tidyr TreeSummarizedExperiment]; };
+  CBNplot = derive2 { name="CBNplot"; version="1.4.0"; sha256="1n85clswpk1xxfq423sgk38qb9kjkjj2kghnxw8a4618vxypwsrv"; depends=[BiocFileCache bnlearn clusterProfiler depmap dplyr enrichplot ExperimentHub ggdist ggforce ggplot2 ggraph graphite graphlayouts igraph magrittr oaqc org_Hs_eg_db patchwork purrr pvclust reshape2 rlang Rmpfr stringr tidyr]; };
+  CCPROMISE = derive2 { name="CCPROMISE"; version="1.30.0"; sha256="0qicm8zgr4897m0ldlmsrchi66b3swfdxy2gv12pnssjmrybq5di"; depends=[Biobase CCP GSEABase PROMISE]; };
+  CCPlotR = derive2 { name="CCPlotR"; version="1.2.0"; sha256="05qh8yqk2yv4vw314aflys7qn4kwhy839wj5cdw9iysaklkyjscg"; depends=[circlize ComplexHeatmap dplyr forcats ggbump ggh4x ggplot2 ggraph ggtext igraph patchwork plyr RColorBrewer scales scatterpie stringr tibble tidyr viridis]; };
+  CDI = derive2 { name="CDI"; version="1.2.0"; sha256="0nc4s8prs6p0k7qp2lc5fzdqx177y1xamrwizldwi5p3yq1zq1nx"; depends=[BiocParallel ggplot2 ggsci matrixStats reshape2 Seurat SeuratObject SingleCellExperiment SummarizedExperiment]; };
+  CEMiTool = derive2 { name="CEMiTool"; version="1.28.0"; sha256="1pcyw8njyrcjriyzq52km0qhn1n288gqvn1qdkzx2yfv4a1i6rxk"; depends=[clusterProfiler data_table dplyr DT fastcluster fgsea ggdendro ggplot2 ggpmisc ggrepel ggthemes gridExtra gtable htmltools igraph intergraph knitr matrixStats network pracma rmarkdown scales sna stringr WGCNA]; };
+  CFAssay = derive2 { name="CFAssay"; version="1.38.0"; sha256="1j2bprw0dq4cn4md2ixh3jmk507w0zlzm65gvx9k3z924la0hyhv"; depends=[]; };
+  CGEN = derive2 { name="CGEN"; version="3.40.0"; sha256="01ayir95zhdcxnczzggx914q9x0awcr3hvfxvswqdjcl5a5490k1"; depends=[mvtnorm survival]; };
+  CGHbase = derive2 { name="CGHbase"; version="1.64.0"; sha256="1fz39fdkfvfhzm69pfvliqvp48wsldwm3kpgbsaacrdh46jg5vzk"; depends=[Biobase marray]; };
+  CGHcall = derive2 { name="CGHcall"; version="2.66.0"; sha256="1gjd3ggiw93cwcacjb1472ia98aaapj9gln04v5pbwmp2r4xfcs7"; depends=[Biobase CGHbase DNAcopy impute snowfall]; };
+  CGHnormaliter = derive2 { name="CGHnormaliter"; version="1.58.0"; sha256="06zsh097v8hfz9yh7q4ppvnlxvgqgs3yzm724khbzi8xfz1h3yja"; depends=[Biobase CGHbase CGHcall]; };
+  CGHregions = derive2 { name="CGHregions"; version="1.62.0"; sha256="0swyfbc37mxghphgrlh735gg3w3wnlmplrrlksr7jb8gdzvcczbk"; depends=[Biobase CGHbase]; };
+  CHETAH = derive2 { name="CHETAH"; version="1.20.0"; sha256="19vb0c9kla6jn79v5sc8sig195lnzzhki2089pvjsy4gw2q3nmnh"; depends=[bioDist corrplot cowplot dendextend ggplot2 pheatmap plotly reshape2 S4Vectors shiny SingleCellExperiment SummarizedExperiment]; };
+  CHRONOS = derive2 { name="CHRONOS"; version="1.32.0"; sha256="06ynbgmzp820l85n25lrhks1vl1ccaf3giypgp59s79v496vps3x"; depends=[biomaRt circlize doParallel foreach graph igraph openxlsx RBGL RCurl rJava XML]; };
+  CIMICE = derive2 { name="CIMICE"; version="1.12.0"; sha256="18m6mb1r9s8cqi1lsignmf9p8q7qigazxyif14z6f1h5kdcs6707"; depends=[assertthat dplyr expm ggcorrplot ggplot2 ggraph glue igraph maftools Matrix networkD3 purrr tidygraph tidyr visNetwork]; };
+  CINdex = derive2 { name="CINdex"; version="1.32.0"; sha256="1cgq0bcrgdwzxci47issdck4pz8pnbpfzz7i57mi0ga3jqih0g2i"; depends=[bitops dplyr GenomeInfoDb GenomicRanges gplots gridExtra IRanges png S4Vectors som stringr]; };
+  CMA = derive2 { name="CMA"; version="1.62.0"; sha256="08q64y5f52p3skpxk7fva30h41ar3751jk3528gicnqngbb3wv3g"; depends=[Biobase]; };
+  CNAnorm = derive2 { name="CNAnorm"; version="1.50.0"; sha256="0z9x4khrsdinb5dhi7zgfa4pj55h7300fp3a636akwjq3pwzlvlp"; depends=[DNAcopy]; };
+  CNEr = derive2 { name="CNEr"; version="1.40.0"; sha256="19kfh7p8zlb1nbwpsj6i1b7pqy829dij7n7iavznhxw44cmif6sv"; depends=[annotate BiocGenerics Biostrings DBI GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 GO_db IRanges KEGGREST poweRlaw pwalign R_utils readr reshape2 RSQLite rtracklayer S4Vectors XVector]; };
+  CNORdt = derive2 { name="CNORdt"; version="1.46.0"; sha256="1f9d2jmqxcmzvwvshf8yni0j28y13cdb5w9z1mcl7f3gcd0vn3rx"; depends=[abind CellNOptR]; };
+  CNORfeeder = derive2 { name="CNORfeeder"; version="1.44.0"; sha256="1q1xpdg0qbh5cqnjc080gbkaw20p3xksc76f7dxsprlnzzad9id5"; depends=[CellNOptR graph]; };
+  CNORfuzzy = derive2 { name="CNORfuzzy"; version="1.46.0"; sha256="0wp9ma4c1nph6vximqizgmwvq29ijf5wkjda7yxc23hl51wig0gg"; depends=[CellNOptR nloptr]; };
+  CNORode = derive2 { name="CNORode"; version="1.46.0"; sha256="0j66h000p02qnd8jrhdydggxiljynndfvjv9vlh844mb8n0dxx53"; depends=[CellNOptR genalg]; };
+  CNTools = derive2 { name="CNTools"; version="1.60.0"; sha256="1m049jdb1vp5161q4zhcxwbzbzappdg02h80ar9ppwd10chf3bsm"; depends=[genefilter]; };
+  CNVMetrics = derive2 { name="CNVMetrics"; version="1.8.0"; sha256="1vf04v7sr4f8mizzvbr3q4w83vdb62mabg5pl5dh53zvhrrzk1hi"; depends=[BiocParallel GenomicRanges gridExtra IRanges magrittr pheatmap rBeta2009 S4Vectors]; };
+  CNVPanelizer = derive2 { name="CNVPanelizer"; version="1.36.0"; sha256="0gpi1psr14b572xn4qx92lfxwy6d7jdkarf67w7f3glvif93vm9k"; depends=[BiocGenerics foreach GenomeInfoDb GenomicRanges ggplot2 gplots IRanges NOISeq openxlsx plyr reshape2 Rsamtools S4Vectors shiny shinyFiles shinyjs stringr testthat]; };
+  CNVRanger = derive2 { name="CNVRanger"; version="1.20.0"; sha256="1lwav9nv9rm7zyqxl9sx46vp4016i2175hvys3skj8myyjgcdd7n"; depends=[BiocGenerics BiocParallel data_table edgeR GDSArray gdsfmt GenomeInfoDb GenomicRanges IRanges lattice limma plyr qqman RaggedExperiment rappdirs reshape2 S4Vectors SNPRelate SummarizedExperiment]; };
+  CNVfilteR = derive2 { name="CNVfilteR"; version="1.18.0"; sha256="1jqpdqcnyxww2h5x784yl3i07i3x5kf0xyqgv558rzs936gzc23a"; depends=[assertthat Biostrings CopyNumberPlots GenomeInfoDb GenomicRanges IRanges karyoploteR pracma regioneR Rsamtools SummarizedExperiment VariantAnnotation]; };
+  CNViz = derive2 { name="CNViz"; version="1.12.0"; sha256="1s7j8lrl999b7v76z91y56m8nyy3lwjmqlnd1qpxg23jdlgb6bhv"; depends=[CopyNumberPlots dplyr DT GenomicRanges karyoploteR magrittr plotly scales shiny]; };
+  CNVrd2 = derive2 { name="CNVrd2"; version="1.42.0"; sha256="1kbs82a7pri8xv3ci9xdi47ml7r70wjxi0jnsxhrzbaqjss5b4v6"; depends=[DNAcopy ggplot2 gridExtra IRanges rjags Rsamtools VariantAnnotation]; };
+  COCOA = derive2 { name="COCOA"; version="2.18.0"; sha256="0achirgsp2psybk140wiiagjr9qsapkhdmy4mnf5zg4hc8nx3yn3"; depends=[Biobase BiocGenerics ComplexHeatmap data_table fitdistrplus GenomicRanges ggplot2 IRanges MIRA S4Vectors simpleCache tidyr]; };
+  CODEX = derive2 { name="CODEX"; version="1.36.0"; sha256="0p3d7hqi14qclz4d7fhp3x4z2dnkwpzpzlgrwacj4njkw94cwdaz"; depends=[Biostrings BSgenome_Hsapiens_UCSC_hg19 GenomeInfoDb IRanges Rsamtools S4Vectors]; };
+  COMPASS = derive2 { name="COMPASS"; version="1.42.0"; sha256="0xh3ysmcz4bjqcyqdv9wrmfgblj3k7g7i6wiw2m1vmx5gf98rfpa"; depends=[abind BiocStyle clue coda data_table dplyr foreach knitr magrittr pdist plyr RColorBrewer Rcpp reshape2 rlang rmarkdown scales tidyr]; };
+  CONFESS = derive2 { name="CONFESS"; version="1.32.0"; sha256="14m7nz6ls58g4c45x5m7r30ms3kgxslg22jikjsi1cx49ycyk9dl"; depends=[changepoint cluster contrast data_table EBImage ecp flexmix flowClust flowCore flowMeans flowMerge flowPeaks foreach ggplot2 limma MASS moments outliers plotrix raster readbitmap reshape2 SamSPECTRAL waveslim wavethresh zoo]; };
+  CONSTANd = derive2 { name="CONSTANd"; version="1.12.0"; sha256="17vfhh6w2sxnliv68wraf24z85dw369cs58nsrql6xgrm1wyp6h6"; depends=[]; };
+  COSNet = derive2 { name="COSNet"; version="1.38.0"; sha256="0bb5lz4yqhhq2qjx7381877bwyrmh8286m9yq3fhyhzm4g6l4hfn"; depends=[]; };
+  COTAN = derive2 { name="COTAN"; version="2.4.3"; sha256="13yw1mrx38im9g87is0ska6piw0ibzfmkk1h46alj1hxc0n3n5gh"; depends=[assertthat BiocSingular circlize ComplexHeatmap dendextend dplyr ggplot2 ggrepel ggthemes Matrix parallelDist parallelly PCAtools plyr RColorBrewer Rfast rlang scales Seurat stringr tibble tidyr umap withr zeallot]; };
+  CRISPRball = derive2 { name="CRISPRball"; version="1.0.0"; sha256="1gxwmasr37azvc7h98izv0npxq5n7hvk1bvl2rgj5fv6da2ddmki"; depends=[circlize colourpicker ComplexHeatmap dittoSeq DT ggplot2 htmlwidgets InteractiveComplexHeatmap MAGeCKFlute matrixStats PCAtools plotly shiny shinyBS shinycssloaders shinyjqui shinyjs shinyWidgets]; };
+  CRISPRseek = derive2 { name="CRISPRseek"; version="1.44.0"; sha256="1vmqwpbl1gplrr45bqs90np0cmrkqshw660k4sxmj9s9k0xdms7c"; depends=[BiocGenerics Biostrings BSgenome data_table DelayedArray dplyr GenomeInfoDb GenomicRanges hash IRanges keras mltools reticulate rhdf5 S4Vectors seqinr XVector]; };
+  CRImage = derive2 { name="CRImage"; version="1.52.0"; sha256="0nnyzgdn25s2m9x4xglp12z2b4fai5sbfnx935qadk0b9gb62bdg"; depends=[aCGH DNAcopy e1071 EBImage foreach MASS sgeostat]; };
+  CSAR = derive2 { name="CSAR"; version="1.56.0"; sha256="0gdzj5czyj2r7gf7fkliydy6w1cyl92lby071jfyihfz5hwh55yr"; depends=[GenomeInfoDb GenomicRanges IRanges S4Vectors]; };
+  CSSQ = derive2 { name="CSSQ"; version="1.16.0"; sha256="1jwrp0b6qkkc538j1vshqgkazajs9q3fq3dda3cl9a8cbma9jpfg"; depends=[GenomicAlignments GenomicFeatures GenomicRanges ggplot2 IRanges Rsamtools rtracklayer S4Vectors SummarizedExperiment]; };
+  CTDquerier = derive2 { name="CTDquerier"; version="2.12.0"; sha256="11z3gy6gn735dydjissdc09kllfd9qvg0gsf5v7a700fz6d78j2a"; depends=[BiocFileCache ggplot2 gridExtra igraph RCurl S4Vectors stringdist stringr]; };
+  CTSV = derive2 { name="CTSV"; version="1.6.0"; sha256="1m7a0dqkpiwf234xags4fpg7s41bdhmsdd2ma375w49624wbwkyz"; depends=[BiocParallel knitr pscl qvalue SpatialExperiment SummarizedExperiment]; };
+  CTdata = derive2 { name="CTdata"; version="1.4.0"; sha256="0hq3jfgb1sxzbs99m2r2xnymjz9dwaim3zpkn6icwgrfbgxil82l"; depends=[ExperimentHub]; };
+  CTexploreR = derive2 { name="CTexploreR"; version="1.0.0"; sha256="0ld0hzd7vynwvks0bjggc3kfgdzb0jlsjxn1ggk68f2gxrqxv8i8"; depends=[BiocGenerics circlize ComplexHeatmap CTdata dplyr GenomicRanges ggplot2 ggrepel IRanges MatrixGenerics rlang SingleCellExperiment SummarizedExperiment tibble tidyr]; };
+  CaDrA = derive2 { name="CaDrA"; version="1.2.0"; sha256="1m7ggdji6j64b6mz6ak2y8f8xyyi8l1gig5b13ksz7j6fgcbyx71"; depends=[doParallel ggplot2 gplots gtable MASS misc3d plyr ppcor R_cache reshape2 SummarizedExperiment]; };
+  CaMutQC = derive2 { name="CaMutQC"; version="1.0.0"; sha256="1rri2730mpmz0nqb26kqfq950sgw0x97j8xk9vw09m7g89973zzs"; depends=[clusterProfiler data_table dplyr DT ggplot2 maftools MesKit org_Hs_eg_db stringr tidyr vcfR]; };
+  Cardinal = derive2 { name="Cardinal"; version="3.6.2"; sha256="038dlgr4p1x42hb5xrz8apvdi4d18si2vr3r8g3i4aiyvpc2rfwj"; depends=[Biobase BiocGenerics BiocParallel CardinalIO EBImage irlba Matrix matter nlme ProtGenerics S4Vectors]; };
+  CardinalIO = derive2 { name="CardinalIO"; version="1.2.1"; sha256="1kzqz2zba8i5z1pkwwi0hzb6fm7xh22bymkk1jwicyrk94fzfw1l"; depends=[matter ontologyIndex S4Vectors]; };
+  Category = derive2 { name="Category"; version="2.70.0"; sha256="0paz6h8rsbqvlxxj4di8cl76aybgjr842z5gdv8xi6c2d7zwbclw"; depends=[annotate AnnotationDbi Biobase BiocGenerics DBI genefilter graph GSEABase Matrix RBGL]; };
+  CausalR = derive2 { name="CausalR"; version="1.36.0"; sha256="0rf37qjl80wczgmb8lbnvzyq10v1fkqdgll24cg4b3vfhsscw0fl"; depends=[igraph]; };
+  CeTF = derive2 { name="CeTF"; version="1.16.0"; sha256="0vpy0ns19wnq9pqhkc1dlx2b0y9rjxznq61z242p53gvh05zmzxi"; depends=[circlize clusterProfiler ComplexHeatmap DESeq2 dplyr GenomicTools_fileHandler GGally ggnetwork ggplot2 ggpubr ggrepel igraph Matrix network Rcpp RcppArmadillo RCy3 S4Vectors SummarizedExperiment]; };
+  CellBarcode = derive2 { name="CellBarcode"; version="1.10.0"; sha256="006mlhzw5pwdr335q27f05jwwwra8fs563qph7ghlr8s7ws55q9g"; depends=[BH Biostrings Ckmeans_1d_dp data_table egg ggplot2 magrittr plyr Rcpp Rsamtools S4Vectors seqinr ShortRead stringr zlibbioc]; };
+  CellBench = derive2 { name="CellBench"; version="1.20.0"; sha256="0azswhd2r9yf2qlz31105kk911iaxfxd2b4drvdq2f57asqw6mwm"; depends=[assertthat BiocFileCache BiocGenerics BiocParallel dplyr glue lubridate magrittr memoise purrr rappdirs rlang SingleCellExperiment tibble tidyr tidyselect]; };
+  CellMapper = derive2 { name="CellMapper"; version="1.30.0"; sha256="058f2ik0v7fw7cbk5fhc90zifg2dzc8bmrv0kdd2rshvxfjp48xv"; depends=[S4Vectors]; };
+  CellMixS = derive2 { name="CellMixS"; version="1.20.0"; sha256="16l2kw8rbnhn4qyz6sg1pnjfc6cjc12lsx5qzyysnpbpmgm7yqrv"; depends=[BiocGenerics BiocNeighbors BiocParallel cowplot dplyr ggplot2 ggridges kSamples magrittr purrr scater SingleCellExperiment SummarizedExperiment tidyr viridis]; };
+  CellNOptR = derive2 { name="CellNOptR"; version="1.50.0"; sha256="0b6q0xrhyqnpzwkwsdywv008axhikmagpx11z85vik1mml12nhs7"; depends=[ggplot2 graph igraph RBGL RCurl Rgraphviz rmarkdown stringi stringr XML]; };
+  CellScore = derive2 { name="CellScore"; version="1.24.0"; sha256="17aspmnfs4asixn6cc12k0q4an70642cgx0wy650aqhhkqjlyq88"; depends=[Biobase gplots lsa RColorBrewer squash SummarizedExperiment]; };
+  CellTrails = derive2 { name="CellTrails"; version="1.22.0"; sha256="0pqazyf5da9zw95gpmhlj9mbhvv78c0rl6cncy3pij293xcy02l4"; depends=[Biobase BiocGenerics cba dendextend dtw EnvStats ggplot2 ggrepel igraph maptree mgcv reshape2 Rtsne SingleCellExperiment SummarizedExperiment]; };
+  CelliD = derive2 { name="CelliD"; version="1.12.0"; sha256="0c7hls5qasjd5ahrqxp2mpd402jc12pi0pgy7spcbp1fkqm8qvbl"; depends=[BiocParallel data_table fastmatch fgsea ggplot2 glue irlba Matrix matrixStats pbapply Rcpp RcppArmadillo reticulate Rtsne scater Seurat SingleCellExperiment stringr SummarizedExperiment tictoc umap]; };
+  CexoR = derive2 { name="CexoR"; version="1.42.0"; sha256="09376wzlknf8nlq81rrbbfsbbgd4mi5aagry51nykw5vc0870vdn"; depends=[genomation GenomeInfoDb GenomicRanges idr IRanges RColorBrewer Rsamtools rtracklayer S4Vectors]; };
+  ChAMP = derive2 { name="ChAMP"; version="2.34.0"; sha256="06q539yhbmbp7qr71cwjai2vdw5nnhhjdv2ajlqmlyjpg04arc7v"; depends=[bumphunter ChAMPdata combinat dendextend DMRcate DNAcopy doParallel DT GenomicRanges ggplot2 globaltest goseq Hmisc Illumina450ProbeVariants_db IlluminaHumanMethylation450kmanifest IlluminaHumanMethylationEPICanno_ilm10b4_hg19 IlluminaHumanMethylationEPICmanifest illuminaio impute isva kpmt limma marray matrixStats minfi missMethyl plotly plyr preprocessCore prettydoc quadprog qvalue RColorBrewer rmarkdown RPMM shiny shinythemes sva wateRmelon]; };
+  ChIPComp = derive2 { name="ChIPComp"; version="1.34.0"; sha256="013lmgdkj596gqzm0nlxjqpv0w94hap9vndp5znqpk4inq88gj8m"; depends=[BiocGenerics BSgenome_Hsapiens_UCSC_hg19 BSgenome_Mmusculus_UCSC_mm9 GenomeInfoDb GenomicRanges IRanges limma Rsamtools rtracklayer S4Vectors]; };
+  ChIPQC = derive2 { name="ChIPQC"; version="1.40.0"; sha256="0lnk5lchwjnrr03x2r6lwgrja42n0rhfp5w9sya2y69da47bcks4"; depends=[Biobase BiocGenerics BiocParallel chipseq DiffBind GenomicAlignments GenomicFeatures GenomicRanges ggplot2 gtools IRanges Nozzle_R1 reshape2 Rsamtools S4Vectors TxDb_Celegans_UCSC_ce6_ensGene TxDb_Dmelanogaster_UCSC_dm3_ensGene TxDb_Hsapiens_UCSC_hg18_knownGene TxDb_Hsapiens_UCSC_hg19_knownGene TxDb_Mmusculus_UCSC_mm10_knownGene TxDb_Mmusculus_UCSC_mm9_knownGene TxDb_Rnorvegicus_UCSC_rn4_ensGene]; };
+  ChIPXpress = derive2 { name="ChIPXpress"; version="1.48.0"; sha256="09lkm6s98ip9pw9cwdx8a0z816krr4cgzrcrd7b3d4v4bcywsy7z"; depends=[affy biganalytics bigmemory Biobase ChIPXpressData frma GEOquery]; };
+  ChIPanalyser = derive2 { name="ChIPanalyser"; version="1.26.0"; sha256="0jxsy6xd4cr3w5zjjxkziiqpzhg8fld0fh4c3rr34823646ly9ja"; depends=[BiocManager Biostrings BSgenome GenomeInfoDb GenomicRanges IRanges RColorBrewer RcppRoll ROCR rtracklayer S4Vectors]; };
+  ChIPexoQual = derive2 { name="ChIPexoQual"; version="1.28.0"; sha256="0y39fpbnykqf5ycpi9q3rw73dkn2ksll7n6nafimxvxsh463d8ky"; depends=[BiocParallel biovizBase broom data_table dplyr GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 hexbin IRanges RColorBrewer rmarkdown Rsamtools S4Vectors scales viridis]; };
+  ChIPpeakAnno = derive2 { name="ChIPpeakAnno"; version="3.38.0"; sha256="1g7p53g91xx3x10kad2f190bmg10ryp928m0q5wxz9n8lycb5rgl"; depends=[AnnotationDbi BiocGenerics biomaRt Biostrings data_table DBI dplyr ensembldb GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 graph InteractionSet IRanges KEGGREST matrixStats multtest pwalign RBGL regioneR Rsamtools rtracklayer S4Vectors scales stringr SummarizedExperiment tibble tidyr universalmotif VennDiagram]; };
+  ChIPseeker = derive2 { name="ChIPseeker"; version="1.40.0"; sha256="00iknjk7vgj48vj1pp7l98g7nvc3x495z3jcq5nbvdiff02faj1f"; depends=[AnnotationDbi aplot BiocGenerics boot dplyr enrichplot GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 gplots gtools IRanges magrittr plotrix rtracklayer S4Vectors tibble TxDb_Hsapiens_UCSC_hg19_knownGene yulab_utils]; };
+  ChIPseqR = derive2 { name="ChIPseqR"; version="1.58.0"; sha256="1lgwy6qprrvx1yv04vx567kr5b6mwz46kwafsqldwgqr2by45kgm"; depends=[BiocGenerics Biostrings fBasics GenomicRanges HilbertVis IRanges S4Vectors ShortRead timsac]; };
+  ChIPsim = derive2 { name="ChIPsim"; version="1.58.0"; sha256="1cwn6khf8z3ijyjgz0sih24la4fw54ynw9vy0z2hi17vnp4136qi"; depends=[Biostrings IRanges ShortRead XVector]; };
+  ChemmineOB = derive2 { name="ChemmineOB"; version="1.42.0"; sha256="17yvmdg16pb1dmx160n6vcgw3sa1yf40f8yzivdyic3sckn4z4bw"; depends=[BH BiocGenerics Rcpp zlibbioc]; };
+  ChemmineR = derive2 { name="ChemmineR"; version="3.56.0"; sha256="1252xy33bgjrd4gh4shrgzklgxry2lf67svzxjra5yckf8am0rdc"; depends=[base64enc BH BiocGenerics DBI digest DT ggplot2 gridExtra jsonlite png Rcpp RCurl rjson rsvg stringi]; };
+  Chicago = derive2 { name="Chicago"; version="1.32.0"; sha256="05djywxsyfxb26d0clx51q7wmsw3rq56va444d6iy5n7xlhj9m94"; depends=[data_table Delaporte Hmisc MASS matrixStats]; };
+  ChromHeatMap = derive2 { name="ChromHeatMap"; version="1.58.0"; sha256="1kzrx26rj7wfki6l5g1426p30fch6b92x0y06rg17i3psbmmkmqg"; depends=[annotate AnnotationDbi Biobase BiocGenerics GenomicRanges IRanges rtracklayer]; };
+  ChromSCape = derive2 { name="ChromSCape"; version="1.14.0"; sha256="12chaigwnqm765p0qlf00s94kkg3dphj2cbqv3vfsyya54hbhfzr"; depends=[batchelor BiocParallel colorRamps colourpicker ConsensusClusterPlus coop DelayedArray dplyr DT edgeR forcats fs GenomicRanges gggenes ggplot2 ggrepel gridExtra IRanges irlba jsonlite kableExtra Matrix matrixTests msigdbr plotly qs qualV Rcpp rlist Rsamtools rtracklayer Rtsne S4Vectors scater scran shiny shinycssloaders shinydashboard shinydashboardPlus shinyFiles shinyhelper shinyjs shinyWidgets SingleCellExperiment stringdist stringr SummarizedExperiment tibble tidyr umap viridis]; };
+  CircSeqAlignTk = derive2 { name="CircSeqAlignTk"; version="1.6.0"; sha256="1i9izbf9mzlc7sl2zi5gj4dhxa6mq9kkyysxdq9cj4myhrp9hgwz"; depends=[BiocGenerics Biostrings dplyr ggplot2 htmltools IRanges magrittr plotly R_utils Rbowtie2 Rhisat2 rlang Rsamtools S4Vectors shiny shinyFiles shinyjs ShortRead tidyr]; };
+  CiteFuse = derive2 { name="CiteFuse"; version="1.16.0"; sha256="1vxynidr7p0khq54d08vzzh2ijaxx1ghm7pxnpg7zppfxvlmsh35"; depends=[compositions cowplot dbscan ggplot2 ggraph ggridges gridExtra igraph Matrix mixtools pheatmap randomForest Rcpp reshape2 rhdf5 rlang Rtsne S4Vectors scales scran SingleCellExperiment SummarizedExperiment uwot]; };
+  ClassifyR = derive2 { name="ClassifyR"; version="3.8.2"; sha256="1p78lxcannrfif2029pksc1minzf4jp0p4r79b7rz06p3nq54wav"; depends=[BiocParallel dplyr genefilter generics ggplot2 ggpubr ggupset MultiAssayExperiment ranger reshape2 rlang S4Vectors survival tidyr]; };
+  Clomial = derive2 { name="Clomial"; version="1.40.0"; sha256="17n0s9ppjfcvzb6fyyny61r1hdh4vyf6nf1yjd01vnw8wzyy01f6"; depends=[matrixStats permute]; };
+  CluMSID = derive2 { name="CluMSID"; version="1.20.0"; sha256="02y79fhzx2hzwj8sjafywm7zqqar48b1m156ld60jjvskrv8ywqf"; depends=[ape Biobase dbscan GGally ggplot2 gplots MSnbase mzR network plotly RColorBrewer S4Vectors sna]; };
+  ClustAll = derive2 { name="ClustAll"; version="1.0.0"; sha256="13qg0r6lqvzyggkf8gjyxh8d871f483fcrhgbhr4xwpfpwssv8k8"; depends=[bigstatsr circlize cluster clValid ComplexHeatmap doSNOW dplyr FactoMineR flock foreach fpc ggplot2 mice modeest networkD3 pbapply RColorBrewer]; };
+  ClustIRR = derive2 { name="ClustIRR"; version="1.2.0"; sha256="1vp3yj16c8irifcvsn0ibvvz8kzbmsf81112cx1c7x6kj132hprx"; depends=[blaster igraph pwalign stringdist visNetwork]; };
+  ClusterFoldSimilarity = derive2 { name="ClusterFoldSimilarity"; version="1.0.0"; sha256="136bh473b8fznxlrszvxr4w0q6y2cxhhm0xd43fka5wq130x3nr9"; depends=[BiocParallel cowplot dplyr ggdendro ggplot2 igraph Matrix reshape2 scales Seurat SeuratObject SingleCellExperiment]; };
+  ClusterJudge = derive2 { name="ClusterJudge"; version="1.26.0"; sha256="012n1g47jri9d7cwxwli34xrd5qnv1ghps79l2xin3pbq5fr5h03"; depends=[httr infotheo jsonlite lattice latticeExtra]; };
+  ClusterSignificance = derive2 { name="ClusterSignificance"; version="1.32.0"; sha256="0n12085247f51n8sp7fic7il73h9k25fkc8sj7wr7nmi81j497ah"; depends=[pracma princurve RColorBrewer scatterplot3d]; };
+  CoCiteStats = derive2 { name="CoCiteStats"; version="1.76.0"; sha256="0v3b39nc53c6gzi4ghp5n64jzcx5gv11s8ayaq6f3426732cc2kx"; depends=[AnnotationDbi org_Hs_eg_db]; };
+  CoGAPS = derive2 { name="CoGAPS"; version="3.24.0"; sha256="1yq625qb5hb0j5jf0r6sxyhwm1zlycv4dkfr3kv2hkapfshirk2b"; depends=[BH BiocParallel cluster dplyr fgsea forcats ggplot2 gplots RColorBrewer Rcpp rhdf5 S4Vectors SingleCellExperiment SummarizedExperiment]; };
+  Cogito = derive2 { name="Cogito"; version="1.10.0"; sha256="1xin0jxc38qzdh6jfq4pkydsxbyf36pl5b4vipgw145nvll537vr"; depends=[AnnotationDbi BiocManager entropy GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 jsonlite magrittr rmarkdown S4Vectors TxDb_Mmusculus_UCSC_mm9_knownGene]; };
+  ComPrAn = derive2 { name="ComPrAn"; version="1.12.0"; sha256="0nj1h3chqc1pspaj2r5ccxswdfz8zmwaqa1v3nmav54z5l5s70iv"; depends=[data_table dplyr DT forcats ggplot2 magrittr purrr RColorBrewer rio rlang scales shiny shinydashboard shinyjs stringr tibble tidyr VennDiagram]; };
+  ComplexHeatmap = derive2 { name="ComplexHeatmap"; version="2.20.0"; sha256="1ppzx850nvvdhz2xiggr43c79w0nr0vmsmmnszasd4flf3jm7v8v"; depends=[circlize clue codetools colorspace digest doParallel foreach GetoptLong GlobalOptions IRanges matrixStats png RColorBrewer]; };
+  CompoundDb = derive2 { name="CompoundDb"; version="1.8.0"; sha256="10rg8419ng2zmgn7ydlywxsfqdz8m15rs5wmsicfngagd2nwp5mf"; depends=[AnnotationFilter Biobase BiocGenerics BiocParallel ChemmineR DBI dbplyr dplyr IRanges jsonlite MetaboCoreUtils MsCoreUtils ProtGenerics RSQLite S4Vectors Spectra tibble xml2]; };
+  ConsensusClusterPlus = derive2 { name="ConsensusClusterPlus"; version="1.68.0"; sha256="0y91kz1n3byadk505432cnlj9dfiw521fgb460d6dmly9s0d9yif"; depends=[ALL Biobase cluster]; };
+  CopyNumberPlots = derive2 { name="CopyNumberPlots"; version="1.20.0"; sha256="1b3yschvrwsaj5szrnwbwrxswfxvalfs495q26g1r7w6l26qjv5b"; depends=[cn_mops GenomeInfoDb GenomicRanges IRanges karyoploteR regioneR rhdf5 Rsamtools SummarizedExperiment VariantAnnotation]; };
+  CoreGx = derive2 { name="CoreGx"; version="2.8.0"; sha256="05fyncpqiq08a169rjwyc117wkyckh714z0is2r0g79920i36jas"; depends=[bench Biobase BiocGenerics BiocParallel BumpyMatrix checkmate crayon data_table glue lsa MatrixGenerics MultiAssayExperiment piano rlang S4Vectors SummarizedExperiment]; };
+  Cormotif = derive2 { name="Cormotif"; version="1.50.0"; sha256="0lg52ixswgd7fa9z47sdm1ka49xyllgn04nz21bmv1488abpfm9d"; depends=[affy limma]; };
+  CoverageView = derive2 { name="CoverageView"; version="1.42.0"; sha256="1wgkn2adcxl6js3cvawhvzpxm3nmnnc16wbnzkrnsnd9l12aasih"; depends=[GenomicAlignments GenomicRanges IRanges Rsamtools rtracklayer S4Vectors]; };
+  CrispRVariants = derive2 { name="CrispRVariants"; version="1.32.0"; sha256="1nlmznpypfabzrn430hs4k3b8zbw6n1brfy1x2j00bnq3sdd7zgc"; depends=[AnnotationDbi BiocParallel Biostrings GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 gridExtra IRanges reshape2 Rsamtools S4Vectors]; };
+  CuratedAtlasQueryR = derive2 { name="CuratedAtlasQueryR"; version="1.2.0"; sha256="0b0p4q4nsn1bxxyz61gh9r9bqkwkmjybqrv1ij565kbjnwimbcxj"; depends=[assertthat BiocGenerics cli DBI dbplyr dplyr duckdb glue HDF5Array httr purrr rlang S4Vectors Seurat SeuratObject SingleCellExperiment stringr SummarizedExperiment tibble]; };
+  CyTOFpower = derive2 { name="CyTOFpower"; version="1.10.0"; sha256="158ixl91yfhzik2d22xijarllirbxg33783i5pxixcdz3amp1z56"; depends=[CytoGLMM diffcyt dplyr DT ggplot2 magrittr rlang shiny shinyFeedback shinyjs shinyMatrix SummarizedExperiment tibble tidyr]; };
+  CytoDx = derive2 { name="CytoDx"; version="1.24.0"; sha256="0lj5j7dzsd643mi0056gbrdbajcmy40bwy4rcicq75lvjc3cxlpd"; depends=[doParallel dplyr flowCore glmnet rpart rpart_plot]; };
+  CytoGLMM = derive2 { name="CytoGLMM"; version="1.12.0"; sha256="1dfrp97mx93fdx4mrd4p8w2v37hq9h5b829l75vxxpmx2xqv4c7a"; depends=[BiocParallel caret cowplot doParallel dplyr factoextra flexmix ggplot2 ggrepel logging magrittr MASS Matrix mbest pheatmap RColorBrewer rlang stringr strucchange tibble tidyr]; };
+  CytoMDS = derive2 { name="CytoMDS"; version="1.0.0"; sha256="050zzhhiy8gckism9s20l1kb1mhfgkd9prci0aqg23fzlv6d6inm"; depends=[BiocParallel CytoPipeline flowCore ggforce ggplot2 ggrepel patchwork pracma reshape2 rlang smacof transport withr]; };
+  CytoML = derive2 { name="CytoML"; version="2.16.0"; sha256="11kflx3yahl7xjl6x2rgpd4hl5y69qgarzhalmz4qdci7b7ln7kr"; depends=[BH Biobase cpp11 cytolib data_table dplyr flowCore flowWorkspace ggcyto graph jsonlite openCyto RBGL Rgraphviz Rhdf5lib RProtoBufLib tibble XML yaml]; };
+  CytoPipeline = derive2 { name="CytoPipeline"; version="1.4.0"; sha256="1c8w2v8990z8kp7wxc69ildhj0v5g3zx05dzyhb16nrlnb7bfcc4"; depends=[BiocFileCache BiocParallel diagram flowAI flowCore ggcyto ggplot2 jsonlite PeacoQC rlang scales withr]; };
+  CytoPipelineGUI = derive2 { name="CytoPipelineGUI"; version="1.2.0"; sha256="1xr7c8gcccxz8zl74amh35r2va3g58c2lwvl1j9py5g8ipmwprzj"; depends=[CytoPipeline flowCore ggplot2 plotly shiny]; };
+  DAMEfinder = derive2 { name="DAMEfinder"; version="1.16.0"; sha256="1ffqa7a3a0f3m58j6al2hd7aa8bamv4z170y4yn1vr1f8jrb7kq5"; depends=[BiocGenerics Biostrings bumphunter cowplot GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 IRanges limma plyr readr reshape2 Rsamtools S4Vectors stringr SummarizedExperiment VariantAnnotation]; };
+  DAPAR = derive2 { name="DAPAR"; version="1.36.2"; sha256="1800c6g39gg9q43v1s5r13qm4aj53x18qzbbyz75fpwrril967gr"; depends=[Biobase DAPARdata foreach highcharter MSnbase]; };
+  DART = derive2 { name="DART"; version="1.52.0"; sha256="1zqzcssiibb9cl1iv6rzfmwlcms2llina41j5lkx0i9s8xmrqi06"; depends=[igraph]; };
+  DCATS = derive2 { name="DCATS"; version="1.2.0"; sha256="1hf275h40d5ggya58malxbrmzqi5gi04w847gc567qzpzs1bqfp2"; depends=[aod e1071 matrixStats MCMCpack robustbase]; };
+  DECIPHER = derive2 { name="DECIPHER"; version="3.0.0"; sha256="1bgzl3sy4l5xfgxrkw8z1dvygkn2dgcl2fl9ah13ggs8hc9h9nlm"; depends=[Biostrings DBI IRanges S4Vectors XVector]; };
+  DEFormats = derive2 { name="DEFormats"; version="1.32.0"; sha256="0sxflb9b148gkylxpfmmk9pmh3gblc4wp6594n0w4a711xrv1jr9"; depends=[checkmate data_table DESeq2 edgeR GenomicRanges S4Vectors SummarizedExperiment]; };
+  DEGraph = derive2 { name="DEGraph"; version="1.56.0"; sha256="0pxh6kyi4blz039yw7vzi9dj4jpzsbv0p2fw44fz2q2pzr98g2m9"; depends=[graph KEGGgraph lattice mvtnorm NCIgraph R_methodsS3 R_utils RBGL Rgraphviz rrcov]; };
+  DEGreport = derive2 { name="DEGreport"; version="1.40.0"; sha256="087c7x3vz8z3yz4jdwbcskdqmv3kgz4c4vi3r9gvvay5z36yhpl5"; depends=[Biobase BiocGenerics broom circlize cluster ComplexHeatmap ConsensusClusterPlus cowplot dendextend DESeq2 dplyr edgeR ggdendro ggplot2 ggrepel knitr logging magrittr psych RColorBrewer reshape rlang S4Vectors scales stringi stringr SummarizedExperiment tibble tidyr]; };
+  DEGseq = derive2 { name="DEGseq"; version="1.58.0"; sha256="1ia2fkd1v0f8mlfrpdv3h0n34y5pg1s8xqf1w5rcmh2md4icm670"; depends=[qvalue]; };
+  DELocal = derive2 { name="DELocal"; version="1.4.0"; sha256="0xxlf90h1zi97k5rsbv41l88yq7qgfmd1rrmyipfjzhbl3l2spaf"; depends=[DESeq2 dplyr ggplot2 limma matrixStats reshape2 SummarizedExperiment]; };
+  DEP = derive2 { name="DEP"; version="1.26.0"; sha256="1z8ymvghbbr9igcdzqwaz62r8lk07c2b1gnjbk504cxrhyy301jx"; depends=[assertthat circlize cluster ComplexHeatmap dplyr DT fdrtool ggplot2 ggrepel gridExtra imputeLCMD limma MSnbase purrr RColorBrewer readr rmarkdown shiny shinydashboard SummarizedExperiment tibble tidyr vsn]; };
+  DEScan2 = derive2 { name="DEScan2"; version="1.24.0"; sha256="15ncl95mf7mxazic0ig15isnblyj59dcr2xjv05dcwxc11wz1fr0"; depends=[BiocGenerics BiocParallel ChIPpeakAnno data_table DelayedArray GenomeInfoDb GenomicAlignments GenomicRanges glue IRanges plyr Rcpp RcppArmadillo rtracklayer S4Vectors SummarizedExperiment]; };
+  DESeq2 = derive2 { name="DESeq2"; version="1.44.0"; sha256="1j7ivkxbc75hzxhl9d97w8vamrmxf6527n7841i1j9n6s7hz1cdn"; depends=[Biobase BiocGenerics BiocParallel GenomicRanges ggplot2 IRanges locfit MatrixGenerics matrixStats Rcpp RcppArmadillo S4Vectors SummarizedExperiment]; };
+  DESpace = derive2 { name="DESpace"; version="1.4.0"; sha256="0lx3igbclpxx6jjvsagwjdakg9iy325xhkw7iixj8m6b8s4dkmkp"; depends=[assertthat BiocGenerics BiocParallel cowplot data_table dplyr edgeR ggforce ggnewscale ggplot2 ggpubr limma Matrix patchwork S4Vectors scales SpatialExperiment SummarizedExperiment]; };
+  DEWSeq = derive2 { name="DEWSeq"; version="1.18.0"; sha256="034p1rxc1w758zpy920sgpcfr0dmhkfqrcximqkary0n0m6n95i0"; depends=[BiocGenerics BiocParallel data_table DESeq2 GenomeInfoDb GenomicRanges R_utils S4Vectors SummarizedExperiment]; };
+  DEXSeq = derive2 { name="DEXSeq"; version="1.50.0"; sha256="13y3fhgvf7438yjv6qm28n8f42w4wgkklc0q229ypns1gfh54524"; depends=[AnnotationDbi Biobase BiocGenerics BiocParallel biomaRt DESeq2 genefilter geneplotter GenomicRanges hwriter IRanges RColorBrewer Rsamtools S4Vectors statmod stringr SummarizedExperiment]; };
+  DEqMS = derive2 { name="DEqMS"; version="1.22.0"; sha256="0fiiyrzvy6nkk8xpxdjmar0fpjs9ardzplb993xxyi1n8vv0092l"; depends=[ggplot2 limma matrixStats]; };
+  DEsingle = derive2 { name="DEsingle"; version="1.24.0"; sha256="06bnvyivj4bx5l2zvwjj4za2hpshsifsa83lsi9fpgdwhn3526kd"; depends=[bbmle BiocParallel gamlss MASS Matrix maxLik pscl VGAM]; };
+  DEsubs = derive2 { name="DEsubs"; version="1.30.0"; sha256="0p3vkm6116zl157nivwnm68svwm9h9cp9cplz9hncfywcii9a579"; depends=[circlize DESeq2 EBSeq edgeR ggplot2 graph igraph jsonlite limma locfit Matrix NBPSeq pheatmap RBGL]; };
+  DExMA = derive2 { name="DExMA"; version="1.12.0"; sha256="1mm45hvb3l1xvikgy25jxg9ppl71ha2sn4vh9qpf7wfr770hif3r"; depends=[Biobase bnstruct DExMAdata GEOquery impute limma pheatmap plyr RColorBrewer scales snpStats sva swamp]; };
+  DFP = derive2 { name="DFP"; version="1.62.0"; sha256="1rjc8a03pga0hyb663lnfkwrwfw3pipwsb11gn2aj3vx4wyf1gp1"; depends=[Biobase]; };
+  DIAlignR = derive2 { name="DIAlignR"; version="2.12.0"; sha256="19zgjnd9sjxx09pcf50fl3w4fmd1gj8g765x114l0cqcpk9qfmm5"; depends=[ape bit64 data_table DBI dplyr ggplot2 magrittr mzR phangorn pracma Rcpp RcppEigen reticulate rlang RMSNumpress RSQLite signal tidyr zoo]; };
+  DMCFB = derive2 { name="DMCFB"; version="1.18.0"; sha256="0hpf7qkjy7hms4bpqb6y15gwkfah6p69icwab2vwsgmz8w94c44a"; depends=[arm benchmarkme BiocParallel data_table fastDummies GenomicRanges IRanges MASS matrixStats rtracklayer S4Vectors speedglm SummarizedExperiment tibble]; };
+  DMCHMM = derive2 { name="DMCHMM"; version="1.26.0"; sha256="0rv1v08nf7vbxci28j68sjxq77lj0swis26ryxp156alr397jfby"; depends=[BiocParallel calibrate fdrtool GenomicRanges IRanges multcomp rtracklayer S4Vectors SummarizedExperiment]; };
+  DMRScan = derive2 { name="DMRScan"; version="1.26.0"; sha256="0j68kxzmn3kskqy88j1dqznigiw1rb3b14hwnvcmyckmyhiysx73"; depends=[GenomeInfoDb GenomicRanges IRanges MASS Matrix mvtnorm RcppRoll]; };
+  DMRcaller = derive2 { name="DMRcaller"; version="1.36.0"; sha256="0r9xm77y6xs4mginwfshnpvn2l8phpag35a8mcasj63aqs05js2h"; depends=[betareg GenomicRanges IRanges Rcpp RcppRoll S4Vectors]; };
+  DMRcate = derive2 { name="DMRcate"; version="3.0.1"; sha256="091bj5dkcqci032x01cnzryjjy5cw6l4cci9mlll0bm2g4l4k7p5"; depends=[AnnotationHub biomaRt bsseq edgeR ExperimentHub GenomeInfoDb GenomicRanges Gviz IRanges limma minfi missMethyl plyr S4Vectors SummarizedExperiment]; };
+  DNABarcodeCompatibility = derive2 { name="DNABarcodeCompatibility"; version="1.20.0"; sha256="0iiy81svi1nnghaimnc5hs1prrk1z5kgv1bd5naysb8fpagd0jgl"; depends=[DNABarcodes dplyr numbers purrr stringr tidyr]; };
+  DNABarcodes = derive2 { name="DNABarcodes"; version="1.34.0"; sha256="0vxxg6fkgck640p9plk4vx3d05794s3xgxksv819d2wicvyby4hk"; depends=[BH Matrix Rcpp]; };
+  DNAcopy = derive2 { name="DNAcopy"; version="1.78.0"; sha256="1q4s6rb6iv9cmfkjymgdyb4h3z0x0kzzd2bvfdjrzzzza6vhjpxl"; depends=[]; };
+  DNAfusion = derive2 { name="DNAfusion"; version="1.6.0"; sha256="1rdm6x8dzk02ggx33bx9mgcq1p36ryysyxha333j05aysn2az2x0"; depends=[bamsignals BiocBaseUtils BiocGenerics GenomicAlignments GenomicFeatures GenomicRanges IRanges Rsamtools S4Vectors TxDb_Hsapiens_UCSC_hg38_knownGene]; };
+  DNAshapeR = derive2 { name="DNAshapeR"; version="1.32.0"; sha256="0s5z3bh5dlym810rkb9i3bfxfap91qh7hj070i1nqnf4g2vamx9g"; depends=[Biostrings fields GenomicRanges Rcpp]; };
+  DOSE = derive2 { name="DOSE"; version="3.30.1"; sha256="1kyrr1xxcif45ynyq4wsv2247bjily5sgzn17m1g3ypw2hkqcj53"; depends=[AnnotationDbi BiocParallel fgsea ggplot2 GOSemSim HDO_db qvalue reshape2 yulab_utils]; };
+  DRIMSeq = derive2 { name="DRIMSeq"; version="1.32.0"; sha256="10skx3n3r9vp1p1499ddccgabi7q3cy1dpi5pbp4ap0gff5ika5x"; depends=[BiocGenerics BiocParallel edgeR GenomicRanges ggplot2 IRanges limma MASS reshape2 S4Vectors]; };
+  DSS = derive2 { name="DSS"; version="2.52.0"; sha256="1y9xg6ic3a03xswyfvyxdhnd7ngkljc96bm5fry4ni6kpa77bkv8"; depends=[Biobase BiocParallel bsseq]; };
+  DTA = derive2 { name="DTA"; version="2.50.0"; sha256="0njm0v10s31sx7v35kdv44815yy6k9h814s9zn98ld5qcrzn2q77"; depends=[LSD scatterplot3d]; };
+  DaMiRseq = derive2 { name="DaMiRseq"; version="2.16.0"; sha256="029idkjbha250f8wgwy6sjnjvlxqs0lkwal066693mc2h40rql11"; depends=[arm caret corrplot DESeq2 e1071 EDASeq edgeR FactoMineR FSelector ggplot2 Hmisc ineq kknn limma lubridate MASS pheatmap pls plsVarSel plyr randomForest RColorBrewer reshape2 RSNNS SummarizedExperiment sva]; };
+  Damsel = derive2 { name="Damsel"; version="1.0.0"; sha256="0n60wkrwk1npg1361x5plam6rabmqzlxdcij1qf5q351wfkqlp8y"; depends=[AnnotationDbi Biostrings dplyr edgeR GenomeInfoDb GenomicFeatures GenomicRanges ggbio ggplot2 goseq magrittr patchwork plyranges reshape2 rlang Rsamtools Rsubread stringr tidyr]; };
+  DeMAND = derive2 { name="DeMAND"; version="1.34.0"; sha256="0pdqgb4fsqzwhan1hwb4hi326yh5xhxwqkdqlffzhgfkp4lwi1cb"; depends=[KernSmooth]; };
+  DeMixT = derive2 { name="DeMixT"; version="1.20.0"; sha256="1hnaaidmflyh768pc1ivlq8rfjh5vrwycc0r6k1cyiinm53vknns"; depends=[base64enc dendextend DSS ggplot2 KernSmooth knitr matrixcalc matrixStats psych Rcpp rmarkdown SummarizedExperiment sva truncdist]; };
+  DeProViR = derive2 { name="DeProViR"; version="1.0.0"; sha256="0m1nhzq5kl6jyi3d8fzb77iplzc4p85v7lj5q7i7125kjv6bycsm"; depends=[BiocFileCache caret data_table dplyr fmsb ggplot2 keras pROC PRROC readr]; };
+  DeconRNASeq = derive2 { name="DeconRNASeq"; version="1.46.0"; sha256="0hwvfsc48dakh3nvz60i92yciz2m5my9w57kzpyj4jyk92cs181g"; depends=[ggplot2 limSolve pcaMethods]; };
+  DeepPINCS = derive2 { name="DeepPINCS"; version="1.12.0"; sha256="148klzaqa01yns02x38vnd3gn46ayi7p0z2f2s7m95ralby95qm0"; depends=[CatEncoders keras matlab PRROC purrr rcdk reticulate stringdist tensorflow tokenizers ttgsea webchem]; };
+  DegCre = derive2 { name="DegCre"; version="1.0.0"; sha256="1wv2h8x45qsj8p4awwb22z1ilymmkrgmrhsl2y7l7dx13qh5l3dr"; depends=[BiocGenerics GenomeInfoDb GenomicRanges InteractionSet IRanges plotgardener S4Vectors]; };
+  DegNorm = derive2 { name="DegNorm"; version="1.14.0"; sha256="15bh4x6rnqil3gcwialcpnqq5inznmjhzf0f4r54xylril0ad268"; depends=[data_table doParallel foreach GenomicAlignments GenomicFeatures GenomicRanges ggplot2 heatmaply IRanges plotly plyr Rcpp RcppArmadillo Rsamtools S4Vectors txdbmaker viridis]; };
+  DelayedArray = derive2 { name="DelayedArray"; version="0.30.1"; sha256="0n6pparz2fg8wgrgcwciibqz3iyrnlmk5hdvnzjppcraxanz8sm6"; depends=[BiocGenerics IRanges Matrix MatrixGenerics S4Arrays S4Vectors SparseArray]; };
+  DelayedDataFrame = derive2 { name="DelayedDataFrame"; version="1.20.0"; sha256="1j9akl3njqnrf6klccgiiss941l1k49vsrsrhrqjbg8f5vzg5i9w"; depends=[BiocGenerics DelayedArray S4Vectors]; };
+  DelayedMatrixStats = derive2 { name="DelayedMatrixStats"; version="1.26.0"; sha256="1cqf6y0f18469v1jgfvdjnskkc89i3sfg79axxqcwa33mfjj736s"; depends=[DelayedArray IRanges Matrix MatrixGenerics S4Vectors sparseMatrixStats]; };
+  DelayedRandomArray = derive2 { name="DelayedRandomArray"; version="1.12.0"; sha256="0lzx0p9hq4vd6w1rvlqd98b3rvfs1zzgvqm21s99vlmdc3db5pqn"; depends=[BH DelayedArray dqrng Rcpp]; };
+  DelayedTensor = derive2 { name="DelayedTensor"; version="1.10.0"; sha256="1f8qpi3xfhgng7zjm7zdxmd32ynri2mavxs6ffqg1izclrzqsb5q"; depends=[BiocSingular DelayedArray DelayedRandomArray einsum HDF5Array irlba Matrix rTensor]; };
+  DepInfeR = derive2 { name="DepInfeR"; version="1.8.0"; sha256="0akyxyijjp4hwy1cs00nnahcnsbrp5j6gnrahwd2wrlx2dr0zxrm"; depends=[BiocParallel glmnet matrixStats]; };
+  DepecheR = derive2 { name="DepecheR"; version="1.20.0"; sha256="15lpn1p2p28lhmzi7svszr0p1zkyaivi69q8pxcrv4lvips38hk4"; depends=[beanplot ClusterR collapse doSNOW dplyr FNN foreach ggplot2 gmodels gplots MASS matrixStats mixOmics moments Rcpp RcppEigen reshape2 robustbase viridis]; };
+  DiffBind = derive2 { name="DiffBind"; version="3.14.0"; sha256="1sr0zy5pbjmjzkwkpjmr26k4dcf3f3kxsl7z2nqw0p0a14rh57pm"; depends=[amap apeglm ashr BiocParallel DESeq2 dplyr GenomicAlignments GenomicRanges ggplot2 ggrepel gplots GreyListChIP IRanges lattice limma locfit RColorBrewer Rcpp Rhtslib Rsamtools S4Vectors SummarizedExperiment systemPipeR]; };
+  DiffLogo = derive2 { name="DiffLogo"; version="2.28.0"; sha256="00c75krimzaf8z35dyr9dq7vrh06ihb8fikyd61kybaakz6c4waj"; depends=[cba]; };
+  DifferentialRegulation = derive2 { name="DifferentialRegulation"; version="2.2.0"; sha256="105jwyiqz3z12q4vmrsmw5d8j8w0s5prfa0l8z68jj36g8rxbl21"; depends=[BANDITS data_table doParallel doRNG foreach ggplot2 gridExtra MASS Matrix Rcpp RcppArmadillo SingleCellExperiment SummarizedExperiment tximport]; };
+  Dino = derive2 { name="Dino"; version="1.10.0"; sha256="0nfn61i6iczg3k8brfajddlxavskjzm0x56qliy81f76sjb3njr3"; depends=[BiocParallel BiocSingular Matrix matrixStats S4Vectors scran Seurat SingleCellExperiment SummarizedExperiment]; };
+  Director = derive2 { name="Director"; version="1.30.0"; sha256="1lm6qdmk1a4c74sph9n4vj174x9c41489ljrw7hxwrwifpjp4phd"; depends=[htmltools]; };
+  DirichletMultinomial = derive2 { name="DirichletMultinomial"; version="1.46.0"; sha256="0djd84vnf4skjr6m25ykqrvwa37lgs5r5aw9md81ykaqmi40szqb"; depends=[BiocGenerics IRanges S4Vectors]; };
+  DiscoRhythm = derive2 { name="DiscoRhythm"; version="1.20.0"; sha256="14scrzsx36j6rbnav5hn8xykhwyswr85kkvdvg66g4xdwc3d6v7b"; depends=[BiocGenerics BiocStyle broom data_table dplyr DT ggExtra ggplot2 gridExtra heatmaply kableExtra knitr magick matrixStats matrixTests MetaCycle plotly reshape2 rmarkdown S4Vectors shiny shinyBS shinycssloaders shinydashboard shinyjs SummarizedExperiment UpSetR VennDiagram viridis zip]; };
+  DominoEffect = derive2 { name="DominoEffect"; version="1.24.0"; sha256="1lwvji698xi63rx4i3g73xkv4k53m3gbjgkbcmxgm0gagn1mrczl"; depends=[AnnotationDbi biomaRt Biostrings data_table GenomeInfoDb GenomicRanges IRanges pwalign SummarizedExperiment VariantAnnotation]; };
+  Doscheda = derive2 { name="Doscheda"; version="1.26.0"; sha256="0iqcsyk4y8wkhf9s84hzm4rdmyg7bb5db7frm6xbxlsydfpzqy3l"; depends=[affy calibrate corrgram drc DT ggplot2 gridExtra httr jsonlite limma matrixStats prodlim readxl reshape2 shiny shinydashboard stringr vsn]; };
+  DriverNet = derive2 { name="DriverNet"; version="1.44.0"; sha256="0jj9vrbni8zc56pbs2c7nv6yks23nrwzqz757vb7a8lxcd3sziwr"; depends=[]; };
+  DropletUtils = derive2 { name="DropletUtils"; version="1.24.0"; sha256="01y88cnii02sn1jgyvvmbx8j60qbzqyznqfxzv06yi4y0xj37klg"; depends=[beachmat BH BiocGenerics BiocParallel DelayedArray DelayedMatrixStats dqrng edgeR GenomicRanges HDF5Array IRanges Matrix R_utils Rcpp rhdf5 Rhdf5lib S4Vectors scuttle SingleCellExperiment SummarizedExperiment]; };
+  DrugVsDisease = derive2 { name="DrugVsDisease"; version="2.46.0"; sha256="1bzjjvv94hiyh7m0iqrvgl6lgxzz6s8jy5ry1mj2w821ivhz1gpy"; depends=[affy annotate ArrayExpress BiocGenerics biomaRt cMap2data DrugVsDiseasedata GEOquery hgu133a_db hgu133a2_db hgu133plus2_db limma qvalue RUnit xtable]; };
+  Dune = derive2 { name="Dune"; version="1.16.0"; sha256="0fiqbh9ywip75sxy54y76nbbqg6maji40d189qxarckdlmj09m7z"; depends=[aricode BiocParallel dplyr gganimate ggplot2 magrittr purrr RColorBrewer SummarizedExperiment tidyr]; };
+  DynDoc = derive2 { name="DynDoc"; version="1.82.0"; sha256="174jfdyq7g7mvn7wvmdkf36n0n969aqsg9bwd1nk6a5nw1khm7js"; depends=[]; };
+  EBImage = derive2 { name="EBImage"; version="4.46.0"; sha256="0qaafn9l9lwrj0yph74g39pghjpg009qz7by64frxg1q0j7ksd2w"; depends=[abind BiocGenerics fftwtools htmltools htmlwidgets jpeg locfit png RCurl tiff]; };
+  EBSEA = derive2 { name="EBSEA"; version="1.32.0"; sha256="1pms8d49pcr4ngcy79m556vh4h2xbscwkzcabvy5xr8l22biv84b"; depends=[DESeq2 EmpiricalBrownsMethod]; };
+  EBSeq = derive2 { name="EBSeq"; version="2.2.0"; sha256="1lbvrw6fcjhrm6v71lmnphv4hbdh03czgx3822ckdk6xrvyh54cf"; depends=[BH blockmodeling gplots Rcpp RcppEigen testthat]; };
+  EBarrays = derive2 { name="EBarrays"; version="2.68.0"; sha256="17ym1y90bz85afanggdjf91a49lz89qmmi2kyhxga0cw056lkdz0"; depends=[Biobase cluster lattice]; };
+  EBcoexpress = derive2 { name="EBcoexpress"; version="1.48.0"; sha256="0sfakxc2zz38w6krss8jqzkpvpmg8pj6xxc24775jhndv3aqjih1"; depends=[EBarrays mclust minqa]; };
+  EDASeq = derive2 { name="EDASeq"; version="2.38.0"; sha256="18h9zlah21lghy1sjpnzy6lddmff8vh3raxnqi15v00za9azk8yq"; depends=[AnnotationDbi aroma_light Biobase BiocGenerics BiocManager biomaRt Biostrings GenomicFeatures GenomicRanges IRanges Rsamtools ShortRead]; };
+  EDIRquery = derive2 { name="EDIRquery"; version="1.4.0"; sha256="154bnyjlvds909y95rmbd8x32rkhqfpkhb6vjbqhm56z4c9z33x7"; depends=[GenomicRanges InteractionSet readr tibble tictoc]; };
+  EGAD = derive2 { name="EGAD"; version="1.32.0"; sha256="0y1fwvqmrvv8v7i8ncqaxbmpflaybbgnjn09qqzpmsavfk10wvgh"; depends=[Biobase GEOquery gplots igraph impute limma MASS plyr RColorBrewer RCurl zoo]; };
+  EGSEA = derive2 { name="EGSEA"; version="1.32.0"; sha256="1fpa26l0jimy1b36cw71abgmn1zj10j4lkpc5g4k09kc74nmivqi"; depends=[AnnotationDbi Biobase DT edgeR EGSEAdata gage ggplot2 globaltest gplots GSVA HTMLUtils htmlwidgets hwriter limma metap org_Hs_eg_db org_Mm_eg_db org_Rn_eg_db PADOG pathview plotly RColorBrewer safe stringi topGO]; };
+  ELMER = derive2 { name="ELMER"; version="2.28.0"; sha256="012vxjagm3m9v98ds89xfwncnxzhwqlk7yigadnw73vg5r8ix6zd"; depends=[biomaRt circlize ComplexHeatmap DelayedArray doParallel downloader dplyr ELMER_data GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 ggpubr ggrepel gridExtra Gviz IRanges lattice magrittr Matrix MultiAssayExperiment plotly plyr progress purrr readr reshape reshape2 rmarkdown rtracklayer rvest S4Vectors scales stringr SummarizedExperiment TCGAbiolinks tibble tidyr xml2]; };
+  EMDomics = derive2 { name="EMDomics"; version="2.34.0"; sha256="0lyaia1ngsw909avldz1pmly16v36ldqq1r7jz23fzmqa63ch87r"; depends=[BiocParallel CDFt emdist ggplot2 matrixStats preprocessCore]; };
+  ENmix = derive2 { name="ENmix"; version="1.40.1"; sha256="1f41wvj1c78kkdrzp8dv5mfjfrjqpd32sp6lhh5mii1lvjb77ycc"; depends=[AnnotationHub Biobase doParallel dynamicTreeCut ExperimentHub foreach genefilter geneplotter gplots gtools illuminaio impute IRanges irlba matrixStats minfi quadprog RPMM S4Vectors SummarizedExperiment]; };
+  ERSSA = derive2 { name="ERSSA"; version="1.22.0"; sha256="1bm64ydz0qlfm6vdrhqr699sc0njm6npdq0pmh2xb3w6iwh9dy92"; depends=[apeglm BiocParallel DESeq2 edgeR ggplot2 plyr RColorBrewer]; };
+  EWCE = derive2 { name="EWCE"; version="1.12.0"; sha256="19j1bl179kcih54ry9m4pgl9qvylkxyjaqk6pzna9wm5dpzdqnsl"; depends=[BiocParallel data_table DelayedArray dplyr ewceData ggplot2 HGNChelper limma Matrix orthogene reshape2 RNOmni SingleCellExperiment stringr SummarizedExperiment]; };
+  EasyCellType = derive2 { name="EasyCellType"; version="1.6.0"; sha256="0czz6yy7534xzfr28kp18hy47sdzsfkzpd9hz1jx5rfgl4sg6hbn"; depends=[AnnotationDbi BiocStyle clusterProfiler dplyr forcats ggplot2 magrittr org_Hs_eg_db org_Mm_eg_db rlang vctrs]; };
+  EmpiricalBrownsMethod = derive2 { name="EmpiricalBrownsMethod"; version="1.32.0"; sha256="1r34sj45liw2ya6842c4fxnph6kax712f8mqr0flvcy2k7g45ccn"; depends=[]; };
+  EnMCB = derive2 { name="EnMCB"; version="1.16.0"; sha256="1m3d92abl2qdkd82wnf6imx9xgxi4w94wiy84vnwn9g3r9kxl1p2"; depends=[BiocFileCache boot e1071 ggplot2 glmnet igraph Matrix mboost rms survival survivalROC survivalsvm]; };
+  EnhancedVolcano = derive2 { name="EnhancedVolcano"; version="1.22.0"; sha256="0ry5r74d6m5x15b4azw93mjrvq4fapj4rxpi9f6macz4l5l6j1j0"; depends=[ggplot2 ggrepel]; };
+  EnrichedHeatmap = derive2 { name="EnrichedHeatmap"; version="1.34.0"; sha256="0fmqz9xqs1108a5xxpsc63pplcc0i742r4zdk46p68my28ba2xfq"; depends=[circlize ComplexHeatmap GenomicRanges GetoptLong IRanges locfit matrixStats Rcpp]; };
+  EnrichmentBrowser = derive2 { name="EnrichmentBrowser"; version="2.34.1"; sha256="1drmdr1z2fyyf566vv5arkbwpfkwxajh555nasnkbnpqdrq3b93q"; depends=[AnnotationDbi BiocFileCache BiocManager edgeR GO_db graph graphite GSEABase hwriter KEGGgraph KEGGREST limma pathview Rgraphviz S4Vectors safe SPIA SummarizedExperiment]; };
+  EpiDISH = derive2 { name="EpiDISH"; version="2.20.0"; sha256="17qkm5inavfdfrim9baqxdhs3w64c6y94qadw4y5p9xsck318frq"; depends=[e1071 locfdr MASS Matrix matrixStats quadprog stringr]; };
+  EpiMix = derive2 { name="EpiMix"; version="1.6.1"; sha256="1m8mlxhci56d4d1iingwj8ddmddpm02an8dhh6m4ka4vpg7q51as"; depends=[AnnotationDbi AnnotationHub Biobase biomaRt data_table doParallel doSNOW downloader dplyr ELMER_data EpiMix_data ExperimentHub foreach GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 impute IRanges limma plyr progress R_matlab RColorBrewer RCurl rlang RPMM S4Vectors SummarizedExperiment tibble tidyr]; };
+  EpiTxDb = derive2 { name="EpiTxDb"; version="1.16.0"; sha256="11f2a9qhbl605mzj6z673j0hlgd3a80c2qigkcw9q81745rd5lrg"; depends=[AnnotationDbi BiocFileCache BiocGenerics Biostrings curl DBI GenomeInfoDb GenomicFeatures GenomicRanges httr IRanges Modstrings rex RSQLite S4Vectors tRNAdbImport txdbmaker xml2]; };
+  EventPointer = derive2 { name="EventPointer"; version="3.12.0"; sha256="1d13s9pww3kjdm0nfnz598jng9vl66jl6y52rczdcflxikfgip0i"; depends=[abind affxparser Biostrings BSgenome cobs doParallel fgsea foreach GenomeInfoDb GenomicFeatures GenomicRanges glmnet graph igraph IRanges iterators limma lpSolve MASS Matrix matrixStats nnls poibin prodlim qvalue RBGL rhdf5 S4Vectors SGSeq speedglm stringr SummarizedExperiment tximport]; };
+  ExCluster = derive2 { name="ExCluster"; version="1.22.0"; sha256="1drpwz9pba4w36sbp53jrlmwbzr68fysrzqa06qb5347sxl94ac1"; depends=[GenomicRanges IRanges matrixStats Rsubread rtracklayer]; };
+  ExiMiR = derive2 { name="ExiMiR"; version="2.46.0"; sha256="01bdi0d9afwyndfcjkaand4qpmbx6i437183s9g16i13vzwh1wk4"; depends=[affy affyio Biobase limma preprocessCore]; };
+  ExperimentHub = derive2 { name="ExperimentHub"; version="2.12.0"; sha256="0mj1aqxyp84mn5m0fwk9lijysy594hhga3kv4mddv45vqxdsr08h"; depends=[AnnotationHub BiocFileCache BiocGenerics BiocManager rappdirs S4Vectors]; };
+  ExperimentHubData = derive2 { name="ExperimentHubData"; version="1.30.0"; sha256="1adm3b0nacbdi4x5z71iiif9d876m3ip6crhbbr2hw4mbk6is7qn"; depends=[AnnotationHubData BiocGenerics BiocManager curl DBI ExperimentHub httr S4Vectors]; };
+  ExperimentSubset = derive2 { name="ExperimentSubset"; version="1.14.0"; sha256="0san9jjdgx9m5cl2pdn17v6j6vd865jr80r4258fifywr7yqdnm1"; depends=[Matrix S4Vectors SingleCellExperiment SpatialExperiment SummarizedExperiment TreeSummarizedExperiment]; };
+  ExploreModelMatrix = derive2 { name="ExploreModelMatrix"; version="1.16.0"; sha256="01ys9p7q3pmz7qfw1ggppchqq8yzrjsd91fa1r6h3a2rz8azdi2g"; depends=[cowplot dplyr DT ggplot2 limma magrittr MASS rintrojs S4Vectors scales shiny shinydashboard shinyjs tibble tidyr]; };
+  ExpressionAtlas = derive2 { name="ExpressionAtlas"; version="1.32.0"; sha256="1plxw5jf2lpa8away57nr1jch14d3lz0f33sjv958kyqzhar7zml"; depends=[Biobase BiocStyle httr jsonlite limma RCurl S4Vectors SummarizedExperiment XML xml2]; };
+  FEAST = derive2 { name="FEAST"; version="1.12.0"; sha256="0w6pkq3lc9l42fnwa35lcnbw52ylbjs65w6dsh2k5wcgs0jig8rp"; depends=[BiocParallel irlba matrixStats mclust SC3 SingleCellExperiment SummarizedExperiment TSCAN]; };
+  FELLA = derive2 { name="FELLA"; version="1.24.0"; sha256="1rbb5lfz7maicw0hx5sd1jg9rqxlcmv6bfyakp4ics9azxwk899i"; depends=[igraph KEGGREST Matrix plyr]; };
+  FGNet = derive2 { name="FGNet"; version="3.38.0"; sha256="128dc1mhqj0vxqcivra79k0c8jwr9zcrcwzkkr69czzv5i7szw8d"; depends=[hwriter igraph plotrix png R_utils RColorBrewer reshape2 XML]; };
+  FISHalyseR = derive2 { name="FISHalyseR"; version="1.38.0"; sha256="1f3iv48l2wbx8izn0z0lnk2k8ssm6bj6ai02kd5ww5kk7gqg6ka7"; depends=[abind EBImage]; };
+  FLAMES = derive2 { name="FLAMES"; version="1.10.0"; sha256="1fcz0v1vy0q5zmdpawlk4a7fbqd01954p0jby9nbzgbk85hl16mi"; depends=[bambu basilisk BiocGenerics Biostrings circlize ComplexHeatmap cowplot dplyr DropletUtils future GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggbio ggplot2 gridExtra igraph IRanges jsonlite magrittr Matrix MultiAssayExperiment RColorBrewer Rcpp reticulate Rhtslib Rsamtools rtracklayer S4Vectors scater scran scuttle SingleCellExperiment stringr SummarizedExperiment testthat tibble tidyr tidyselect txdbmaker withr zlibbioc]; };
+  FRASER = derive2 { name="FRASER"; version="2.0.0"; sha256="0q36p80ff0hq37ddjpx6czkllpmlkj00h6fq32hbmr9cyh3rz2d8"; depends=[AnnotationDbi BBmisc Biobase BiocGenerics BiocParallel biomaRt BSgenome cowplot data_table DelayedArray DelayedMatrixStats extraDistr generics GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 ggrepel HDF5Array IRanges matrixStats OUTRIDER pcaMethods pheatmap plotly PRROC R_utils RColorBrewer Rcpp RcppArmadillo rhdf5 Rsamtools Rsubread S4Vectors SummarizedExperiment tibble VGAM]; };
+  FRGEpistasis = derive2 { name="FRGEpistasis"; version="1.40.0"; sha256="0fpph9rrkakaxah4f8bcbny4yd8w4zp38666ff8mrvvlzx5fn313"; depends=[fda MASS]; };
+  FamAgg = derive2 { name="FamAgg"; version="1.32.0"; sha256="0qcd028bamdj4v24rdqymk2zc02kj7yc8p1q19vvzk8h1hxvh98l"; depends=[BiocGenerics gap igraph kinship2 Matrix survey]; };
+  FastqCleaner = derive2 { name="FastqCleaner"; version="1.22.0"; sha256="0bwbg3b8w27whbg8gl2ga58fwm95cyra45f2y609izrx9vjz7dcr"; depends=[Biostrings DT htmltools IRanges Rcpp S4Vectors shiny shinyBS ShortRead]; };
+  FeatSeekR = derive2 { name="FeatSeekR"; version="1.4.0"; sha256="0r72wl0wjzfvh8wmpn6ppffsh6yrydkyni1pbxsw865j5rkiiyqd"; depends=[MASS pheatmap pracma SummarizedExperiment]; };
+  FilterFFPE = derive2 { name="FilterFFPE"; version="1.14.0"; sha256="1pjks7wadlyyhaz9lcrhxamjqjaq0nnyxkv6jxb4adrh5hwvgxfx"; depends=[doParallel foreach GenomicRanges IRanges Rsamtools S4Vectors]; };
+  FindIT2 = derive2 { name="FindIT2"; version="1.10.0"; sha256="03bfmxln17lnvzmmsc3g64nk1vs6fg4bphlszqgxhdxwbjjg4nf2"; depends=[BiocGenerics BiocParallel dplyr GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 ggrepel glmnet IRanges MultiAssayExperiment patchwork progress purrr qvalue rlang rtracklayer S4Vectors stringr SummarizedExperiment tibble tidyr withr]; };
+  FitHiC = derive2 { name="FitHiC"; version="1.30.0"; sha256="107hm9k9wfr34fradldmjym2bzxb6qx8109p4a7xrqkiya0hmwwa"; depends=[data_table fdrtool Rcpp]; };
+  FlowSOM = derive2 { name="FlowSOM"; version="2.12.0"; sha256="0xqrp184p00pvzzf6ddmp2r8lpg97bm0q6smjwcrfb8rn4msxmis"; depends=[BiocGenerics colorRamps ConsensusClusterPlus dplyr flowCore ggforce ggnewscale ggplot2 ggpubr igraph magrittr rlang Rtsne tidyr XML]; };
+  FuseSOM = derive2 { name="FuseSOM"; version="1.6.0"; sha256="1qbk2rdc7fdhkglwzhsyrysb51qwjsyjy9m6pgbbcwi14iwwhnf2"; depends=[analogue cluster coop diptest fastcluster FCPS fpc ggplot2 ggplotify ggpubr pheatmap proxy psych Rcpp S4Vectors stringr SummarizedExperiment]; };
+  GA4GHclient = derive2 { name="GA4GHclient"; version="1.28.0"; sha256="1x5k9l2f4fw5da1aacwd0b7rn9kjpbzf8vl9h76n4d92fdh25jlh"; depends=[BiocGenerics Biostrings dplyr GenomeInfoDb GenomicRanges httr IRanges jsonlite S4Vectors VariantAnnotation]; };
+  GA4GHshiny = derive2 { name="GA4GHshiny"; version="1.26.0"; sha256="1vj0p1akcgzq2q43yir0g2klggjw8970chhzibw7yb5qxr2fz9ai"; depends=[AnnotationDbi BiocGenerics dplyr DT GA4GHclient GenomeInfoDb GenomicFeatures openxlsx purrr S4Vectors shiny shinyjs shinythemes tidyr]; };
+  GARS = derive2 { name="GARS"; version="1.24.0"; sha256="1wi56b6h1fi1rr4hrpbby6iwgax36q01h6hr2nm4bgb7cx6l3bii"; depends=[cluster DaMiRseq ggplot2 MLSeq SummarizedExperiment]; };
+  GAprediction = derive2 { name="GAprediction"; version="1.30.0"; sha256="0p38ivjzp0nsyr85a323xgjwb2amsmvr10ajq9m51z9acl4jzakx"; depends=[glmnet Matrix]; };
+  GBScleanR = derive2 { name="GBScleanR"; version="1.8.18"; sha256="1il1h9njfvhi4kxn30bhc31nkmr91b9imfafq68ccz947ckzhkpm"; depends=[expm gdsfmt ggplot2 Rcpp RcppParallel SeqArray tidyr]; };
+  GDCRNATools = derive2 { name="GDCRNATools"; version="1.24.0"; sha256="1grhgzl08f2infvvpd5084mvplvgqb0qa7d6afrfv6n5wigwnvbv"; depends=[BiocParallel biomaRt clusterProfiler DESeq2 DOSE DT edgeR GenomicDataCommons ggplot2 gplots jsonlite limma org_Hs_eg_db pathview rjson shiny survival survminer XML]; };
+  GDSArray = derive2 { name="GDSArray"; version="1.24.0"; sha256="0s78y646vr1m2lcsg91yy5xzc328hfbx0lnzyfg9pavp0d12yzip"; depends=[BiocGenerics DelayedArray gdsfmt S4Vectors SeqArray SNPRelate]; };
+  GEM = derive2 { name="GEM"; version="1.30.0"; sha256="1idp44h5szwwradv6i4bkgy055gaa04d5sxrv0r683h717pqagh5"; depends=[ggplot2]; };
+  GENESIS = derive2 { name="GENESIS"; version="2.34.0"; sha256="1jk0mw183v2nxabx58kwm8fwm6r2ikbc90ilxdmivfsxc7gx534r"; depends=[Biobase BiocGenerics BiocParallel data_table gdsfmt GenomicRanges GWASTools igraph IRanges Matrix reshape2 S4Vectors SeqArray SeqVarTools SNPRelate]; };
+  GENIE3 = derive2 { name="GENIE3"; version="1.26.0"; sha256="0ijwyx42saqas52273c63c3yi948bh4pd4lifyqi3zjjs17bj1cg"; depends=[dplyr reshape2]; };
+  GEOexplorer = derive2 { name="GEOexplorer"; version="1.10.0"; sha256="0hb9hgkb5nc2mdri18y22s4qi5hdp3zclmpdz2q7hdvqhqg6kqzv"; depends=[Biobase car DT edgeR enrichR factoextra GEOquery ggplot2 heatmaply htmltools httr impute knitr limma markdown pheatmap plotly R_utils readxl scales shiny shinybusy shinycssloaders shinyHeatmaply stringr sva umap xfun XML xml2]; };
+  GEOfastq = derive2 { name="GEOfastq"; version="1.12.0"; sha256="18wi24a6j04fflank3rw4z852j21zarca0by7g5kwq1ym2dy2xld"; depends=[doParallel foreach plyr RCurl rvest stringr xml2]; };
+  GEOmetadb = derive2 { name="GEOmetadb"; version="1.66.0"; sha256="0yafdqcwkyv3sc3wcfbpciy04vqciqjfihsf0gyfcza75gjkqy0w"; depends=[GEOquery RSQLite]; };
+  GEOquery = derive2 { name="GEOquery"; version="2.72.0"; sha256="0rqyv95l8h3s68ywhv3r7hm7j1mbm8prql7p2rlvv4xg31yqmnpl"; depends=[Biobase curl data_table dplyr limma magrittr R_utils readr tidyr xml2]; };
+  GEOsubmission = derive2 { name="GEOsubmission"; version="1.56.0"; sha256="1kvk6v1pj6f252lzlvw79ffd7wadlc6kvpa174msi75ww5s2qfc0"; depends=[affy Biobase]; };
+  GEWIST = derive2 { name="GEWIST"; version="1.48.0"; sha256="0q6rbx7qy8cmdafv4qabx6ppyq3x6658jr0139xv61nzgi8395v4"; depends=[car]; };
+  GGPA = derive2 { name="GGPA"; version="1.16.0"; sha256="1lg62vxn4z6z3l9d18gmyvdr456hs76lczxfq8j2w509gflcrskb"; depends=[GGally matrixStats network Rcpp RcppArmadillo scales sna]; };
+  GIGSEA = derive2 { name="GIGSEA"; version="1.22.0"; sha256="1yhxpm1amm6anzcss31pkg5xzw4q1nq1hjb6rx5p7a5dh9h8hdna"; depends=[locfdr MASS Matrix]; };
+  GLAD = derive2 { name="GLAD"; version="2.68.0"; sha256="01qn4v7b7b633dz01njzmg48lga861pfqnys9f0fbk9damxc6rr1"; depends=[aws]; };
+  GMRP = derive2 { name="GMRP"; version="1.32.0"; sha256="0g2pmnngpv9k7gaz7bd5b0gn9i0i86q36fcapai93w76ml8ccvab"; depends=[diagram GenomicRanges plotrix]; };
+  GNET2 = derive2 { name="GNET2"; version="1.20.0"; sha256="1hgzvl4k5q84ig9njmfvmdwc64h7nwsg0kcsi3da3mizxahaj780"; depends=[DiagrammeR dplyr ggplot2 igraph matrixStats Rcpp reshape2 SummarizedExperiment xgboost]; };
+  GNOSIS = derive2 { name="GNOSIS"; version="1.2.0"; sha256="0m20w85kixxqydrrf5cbphr1hvzlc2wmwjf68s9rr0llcfv7gy3r"; depends=[car cBioPortalData compareGroups dashboardthemes DescTools DT fabricatr fontawesome maftools magrittr operator_tools partykit RColorBrewer reshape2 rpart rstatix shiny shinycssloaders shinydashboard shinydashboardPlus shinyjs shinylogs shinymeta shinyWidgets survival survminer tidyverse]; };
+  GOSemSim = derive2 { name="GOSemSim"; version="2.30.0"; sha256="0985w9b2iw7jbmpymfvqmpzshsy0lvqw7whc1djdnh58lwscnhcq"; depends=[AnnotationDbi GO_db Rcpp rlang yulab_utils]; };
+  GOTHiC = derive2 { name="GOTHiC"; version="1.40.0"; sha256="101mf3pkchz0il0czrwixx1pv8hq9cjh8m59nii00m2vwma3slrd"; depends=[BiocGenerics BiocManager Biostrings BSgenome data_table GenomeInfoDb GenomicRanges ggplot2 IRanges Rsamtools rtracklayer S4Vectors ShortRead]; };
+  GOexpress = derive2 { name="GOexpress"; version="1.38.0"; sha256="0hz01hmp4bf9njw79zqy08zx9q3c6qfs2xykz5x7xkngp65mzkxf"; depends=[Biobase biomaRt ggplot2 gplots randomForest RColorBrewer RCurl stringr]; };
+  GOfuncR = derive2 { name="GOfuncR"; version="1.24.0"; sha256="1g3nppcmyj81ia3v9zvsr8jplk8kmvssspvxd94zxh6yb3wrrc6v"; depends=[AnnotationDbi GenomicRanges gtools IRanges mapplots Rcpp vioplot]; };
+  GOpro = derive2 { name="GOpro"; version="1.30.0"; sha256="0s8yyg5myxvw61zai54d3dhai1cm43i8s8wnpf0qc476q4v2xgzl"; depends=[AnnotationDbi BH dendextend doParallel foreach GO_db IRanges MultiAssayExperiment org_Hs_eg_db Rcpp S4Vectors]; };
+  GOstats = derive2 { name="GOstats"; version="2.70.0"; sha256="1dygsr8nlqksfpk00lk67dhj4fcpjg1x4dbl2r4sfanlk4hq76cs"; depends=[annotate AnnotationDbi AnnotationForge Biobase Category GO_db graph RBGL Rgraphviz]; };
+  GPA = derive2 { name="GPA"; version="1.16.0"; sha256="1z97rwlqvahsjcrm1j00cz9lgnw1wym6lwhi7gf8g17avgk6s7g4"; depends=[DT ggplot2 ggrepel plyr Rcpp shiny shinyBS vegan]; };
+  GRENITS = derive2 { name="GRENITS"; version="1.56.0"; sha256="04nbvr080s6syb2d981g4402ghl2gh6f2gwsiv41nnj4narvs752"; depends=[ggplot2 Rcpp RcppArmadillo reshape2]; };
+  GRaNIE = derive2 { name="GRaNIE"; version="1.8.0"; sha256="1zdi6h1kmnj3b23qv268jg0iqfvgvn0h17d5l17yx3si9czcr8qr"; depends=[AnnotationHub biomaRt Biostrings checkmate circlize colorspace ComplexHeatmap data_table DESeq2 dplyr ensembldb forcats futile_logger GenomeInfoDb GenomicRanges ggplot2 gridExtra igraph limma magrittr Matrix matrixStats patchwork progress RColorBrewer readr reshape2 rlang S4Vectors scales stringr SummarizedExperiment tibble tidyr tidyselect topGO viridis]; };
+  GRmetrics = derive2 { name="GRmetrics"; version="1.30.0"; sha256="02dqb1n4q5zwhfhmdrynfa5djgnvry11x69r3z94rscxl94k9pan"; depends=[drc ggplot2 plotly S4Vectors SummarizedExperiment]; };
+  GSALightning = derive2 { name="GSALightning"; version="1.32.0"; sha256="0cmp5c22fhykld7napzk2220lzzizslsx2zi0slmiifapcrjg9vy"; depends=[data_table Matrix]; };
+  GSAR = derive2 { name="GSAR"; version="1.38.0"; sha256="0i3k977vv3ik9yjgwpv7r1wnd982a1m2vg5rawi99hkf703cjly6"; depends=[igraph]; };
+  GSCA = derive2 { name="GSCA"; version="2.34.0"; sha256="1lycrigmlr8kcmc1svnxl3g8rzlhpk8kfmvspllyfp8cls35mypw"; depends=[ggplot2 gplots RColorBrewer reshape2 rhdf5 shiny sp]; };
+  GSEABase = derive2 { name="GSEABase"; version="1.66.0"; sha256="1pnd8rmpk7gm89cvrqa8qwk40dszkfkhyydxp3gl13zng9c5bq40"; depends=[annotate AnnotationDbi Biobase BiocGenerics graph XML]; };
+  GSEABenchmarkeR = derive2 { name="GSEABenchmarkeR"; version="1.24.0"; sha256="11aczfpbc31wq9h2ri7gn17ki2f61s801zik2lkwgvly9627kfzi"; depends=[AnnotationDbi AnnotationHub Biobase BiocFileCache BiocParallel edgeR EnrichmentBrowser ExperimentHub KEGGandMetacoreDzPathwaysGEO KEGGdzPathwaysGEO S4Vectors SummarizedExperiment]; };
+  GSEAlm = derive2 { name="GSEAlm"; version="1.64.0"; sha256="0fh6fds2y7fsdg6r97ydbkayryxxlw2jrc9kq4knsvagj2jb72ph"; depends=[Biobase]; };
+  GSEAmining = derive2 { name="GSEAmining"; version="1.14.0"; sha256="1qzvmji5qn25q3lgb06k0dsxcn65krsrsrh6n06azz8ybkja9sj6"; depends=[dendextend dplyr ggplot2 ggwordcloud gridExtra rlang stringr tibble tidytext]; };
+  GSRI = derive2 { name="GSRI"; version="2.52.0"; sha256="0b8r1cih0zn8aj9nbpmqwiiqfhk9a2f0bxcqyx77g5jlg9b504kq"; depends=[Biobase fdrtool genefilter GSEABase les]; };
+  GSReg = derive2 { name="GSReg"; version="1.38.0"; sha256="1wfapjggz0qnaq9cg30d51c0zm5z6bhhf764qwgcbs9ngyjfwbvx"; depends=[AnnotationDbi GenomicFeatures Homo_sapiens org_Hs_eg_db]; };
+  GSVA = derive2 { name="GSVA"; version="1.52.3"; sha256="08nxg3q350n5gf975r6b0zq4cr7lchv2i811crc4xbb7q39kw8k4"; depends=[Biobase BiocParallel BiocSingular DelayedArray DelayedMatrixStats GSEABase HDF5Array IRanges Matrix S4Vectors SingleCellExperiment sparseMatrixStats SpatialExperiment SummarizedExperiment]; };
+  GSgalgoR = derive2 { name="GSgalgoR"; version="1.14.0"; sha256="0mr0gdn5zkikjn5i5clq73vgmbnirl2abp84bjyzm5pf5dknjpmh"; depends=[cluster doParallel foreach matchingR nsga2R proxy survival]; };
+  GUIDEseq = derive2 { name="GUIDEseq"; version="1.34.0"; sha256="1xn44w1z1izzf2qr4xsmrvc468swjp6zmf4wxc33jbk5r9lv0n0x"; depends=[BiocGenerics Biostrings BSgenome ChIPpeakAnno CRISPRseek data_table dplyr GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 hash IRanges limma matrixStats multtest openxlsx patchwork purrr pwalign rio rlang Rsamtools S4Vectors stringr tidyr]; };
+  GWAS_BAYES = derive2 { name="GWAS.BAYES"; version="1.14.0"; sha256="05fp1wrddk9a961cx2ps0cad9rzagsyrfyfck6h1v3xb5gmz03ik"; depends=[caret GA limma MASS Matrix memoise]; };
+  GWASTools = derive2 { name="GWASTools"; version="1.50.0"; sha256="013qv2wac90s1rv992bwzq4diqfq7r18qk7gcifmi22samplpnw4"; depends=[Biobase data_table DBI DNAcopy gdsfmt GWASExactHW lmtest logistf quantsmooth RSQLite sandwich survival]; };
+  GWENA = derive2 { name="GWENA"; version="1.14.0"; sha256="1vwc7n0kyza4w3p7fbfrji6vamn042nwz4wa51ymcwg62j5k6yxk"; depends=[cluster dplyr dynamicTreeCut ggplot2 gprofiler2 igraph magrittr matrixStats NetRep purrr RColorBrewer rlist stringr SummarizedExperiment tibble tidyr WGCNA]; };
+  GateFinder = derive2 { name="GateFinder"; version="1.24.0"; sha256="1rcxjnjcgd3j8vm4kz97qcvgbwxs0jb66p8wzfqkcjh0p99j6a6q"; depends=[diptest flowCore flowFP mvoutlier splancs]; };
+  GeDi = derive2 { name="GeDi"; version="1.0.0"; sha256="193fnp0v74bsdszxxxywz9r45xqlmvn5vg0n5fcq1w8f15rpgizg"; depends=[BiocFileCache BiocNeighbors BiocParallel bs4Dash ComplexHeatmap dplyr DT fontawesome GeneTonic ggdendro ggplot2 GOSemSim igraph Matrix plotly RColorBrewer readxl rintrojs scales shiny shinyBS shinycssloaders shinyWidgets STRINGdb tm visNetwork wordcloud2]; };
+  GenProSeq = derive2 { name="GenProSeq"; version="1.8.0"; sha256="0hpf03pjfi01l2afsm1wp5vc077adx06pb4ks602v5mxy9dm1x1y"; depends=[CatEncoders DeepPINCS keras mclust reticulate tensorflow ttgsea word2vec]; };
+  GenVisR = derive2 { name="GenVisR"; version="1.36.0"; sha256="1xzzdy2mcy8as3szygly3kw6k7g5dp2vxmimcw6738fj37zbcd77"; depends=[AnnotationDbi BiocGenerics biomaRt Biostrings BSgenome data_table DBI GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 gridExtra gtable gtools IRanges plyr reshape2 Rsamtools scales VariantAnnotation viridis]; };
+  GeneBreak = derive2 { name="GeneBreak"; version="1.34.0"; sha256="0vgid513n8xra71nhabxdy0h6ffqr84sf9gzaccx27yiw2l1wg4s"; depends=[CGHbase CGHcall GenomicRanges QDNAseq]; };
+  GeneExpressionSignature = derive2 { name="GeneExpressionSignature"; version="1.50.0"; sha256="0rflr71jfaiyhzymvr0x9cq4mcb153qq2m4x912jawc46wf4cj3x"; depends=[Biobase]; };
+  GeneGA = derive2 { name="GeneGA"; version="1.54.0"; sha256="1gw9bxdmaak4g6chpya4xrvazrzb49bwlq1jk952vvgkrgcvnas1"; depends=[hash seqinr]; };
+  GeneGeneInteR = derive2 { name="GeneGeneInteR"; version="1.30.0"; sha256="05d9i4nz7gf6g0g1bp0zpn3kqqfzf1lcjy7y67m1z8s96svkal47"; depends=[data_table FactoMineR GenomicRanges igraph IRanges kernlab mvtnorm Rsamtools snpStats]; };
+  GeneMeta = derive2 { name="GeneMeta"; version="1.76.0"; sha256="1x73k2xid41f25yrzah3s9pqk51r0nda758kvfvh5py04yxs9xf1"; depends=[Biobase genefilter]; };
+  GeneNetworkBuilder = derive2 { name="GeneNetworkBuilder"; version="1.46.0"; sha256="1gjirjj809c1vc3y4k07j8md0m0bksjkfy68v1v8b2d9kfws5vwc"; depends=[graph htmlwidgets plyr Rcpp Rgraphviz rjson XML]; };
+  GeneOverlap = derive2 { name="GeneOverlap"; version="1.40.0"; sha256="0bfd4322m6g7dvas214i17k8sjsf62lza9darmhiwb4r8h30qmb2"; depends=[gplots RColorBrewer]; };
+  GeneRegionScan = derive2 { name="GeneRegionScan"; version="1.60.0"; sha256="01vrw0k8s62i3mzk5f7mrnh7294i5smqgfz00bl0wjhy9yak5j34"; depends=[affxparser Biobase Biostrings RColorBrewer S4Vectors]; };
+  GeneSelectMMD = derive2 { name="GeneSelectMMD"; version="2.48.0"; sha256="044i85vnvr5l1c1sbsh6s777invnch9yjkx3ffki9m0xnilvv5al"; depends=[Biobase limma MASS]; };
+  GeneStructureTools = derive2 { name="GeneStructureTools"; version="1.24.0"; sha256="19inj0ds7hh4n5cq9mgi4ahx46cxpad2pfdmmhrzvlbm8ss4yw6x"; depends=[Biostrings BSgenome_Mmusculus_UCSC_mm10 data_table GenomicRanges Gviz IRanges plyr rtracklayer S4Vectors stringdist stringr]; };
+  GeneTonic = derive2 { name="GeneTonic"; version="2.8.0"; sha256="0f84sbqkhh74al1rn8fhkg4vmy0i06qadl7342gawqngxfcffzkn"; depends=[AnnotationDbi backbone bs4Dash circlize colorspace colourpicker ComplexHeatmap ComplexUpset dendextend DESeq2 dplyr DT dynamicTreeCut expm ggforce ggplot2 ggrepel ggridges GO_db igraph matrixStats plotly RColorBrewer rintrojs rlang rmarkdown S4Vectors scales shiny shinyAce shinycssloaders shinyWidgets SummarizedExperiment tidyr tippy viridis visNetwork]; };
+  GeneticsPed = derive2 { name="GeneticsPed"; version="1.66.0"; sha256="0cm65szy3nmkaxsrmv1qhpk8jsxma6b4y0v2nxg6hdqjn7z4zk43"; depends=[gdata genetics MASS]; };
+  GenomAutomorphism = derive2 { name="GenomAutomorphism"; version="1.6.0"; sha256="13hflp7aglv8xadf1zgla8d0j1h4m4rrk0lyy0i0mxfhihl0wba8"; depends=[BiocGenerics BiocParallel Biostrings data_table doParallel dplyr foreach GenomeInfoDb GenomicRanges IRanges matrixStats numbers S4Vectors XVector]; };
+  GenomeInfoDb = derive2 { name="GenomeInfoDb"; version="1.40.1"; sha256="155wj17pbdbixyg6mimv06wg3ylll8ysqh7rffjp65fw662jwhw0"; depends=[BiocGenerics GenomeInfoDbData IRanges S4Vectors UCSC_utils]; };
+  GenomicAlignments = derive2 { name="GenomicAlignments"; version="1.40.0"; sha256="15jzdjna0r9n6ybvyw52v1d9f05vdsdxff0g8q0pa584a1sd2s7s"; depends=[BiocGenerics BiocParallel Biostrings GenomeInfoDb GenomicRanges IRanges Rsamtools S4Vectors SummarizedExperiment]; };
+  GenomicDataCommons = derive2 { name="GenomicDataCommons"; version="1.28.0"; sha256="0jg4sa1lqn028y2ympb3x4s8yr7qa8ajrwqj2hhcl8zss3sx8gr2"; depends=[dplyr GenomicRanges httr IRanges jsonlite magrittr rappdirs readr rlang tibble tidyr xml2]; };
+  GenomicDistributions = derive2 { name="GenomicDistributions"; version="1.12.0"; sha256="0yicpl29qcwyzswaxqd50sa12lg8c9d5i7xgdf2m7jwskx6nx5hx"; depends=[Biostrings broom data_table dplyr GenomeInfoDb GenomicRanges ggplot2 IRanges plyr reshape2 scales]; };
+  GenomicFeatures = derive2 { name="GenomicFeatures"; version="1.56.0"; sha256="1r1d9g5vq5y946v2z2xgmfb31k0576nj8i0yg6xfj9y2a0a6akc5"; depends=[AnnotationDbi BiocGenerics Biostrings DBI GenomeInfoDb GenomicRanges IRanges rtracklayer S4Vectors XVector]; };
+  GenomicFiles = derive2 { name="GenomicFiles"; version="1.40.0"; sha256="1b0n5aqvg6jb6rpikjzxndmcjxp31h6vhr1magzalqg7jmlvcv6i"; depends=[BiocGenerics BiocParallel GenomeInfoDb GenomicAlignments GenomicRanges IRanges MatrixGenerics Rsamtools rtracklayer S4Vectors SummarizedExperiment VariantAnnotation]; };
+  GenomicInteractionNodes = derive2 { name="GenomicInteractionNodes"; version="1.8.0"; sha256="1xkrmpsgqqsd470f4dgnbs5zb62qfrbpmzw97jsarri57pmqxy7a"; depends=[AnnotationDbi GenomeInfoDb GenomicFeatures GenomicRanges GO_db graph IRanges RBGL S4Vectors]; };
+  GenomicInteractions = derive2 { name="GenomicInteractions"; version="1.38.0"; sha256="16aaaa4nr1y5ng1hzw87q950clid28iqf4gkypcpihg3cz69axxg"; depends=[Biobase BiocGenerics data_table dplyr GenomeInfoDb GenomicRanges ggplot2 gridExtra Gviz igraph InteractionSet IRanges Rsamtools rtracklayer S4Vectors stringr]; };
+  GenomicOZone = derive2 { name="GenomicOZone"; version="1.18.0"; sha256="0i130gwf2ifgm635dhshfmnj97jqlz5nkwb98jbgz4ciq7mpdwv8"; depends=[biomaRt Ckmeans_1d_dp GenomeInfoDb GenomicRanges ggbio ggplot2 gridExtra IRanges lsr plyr Rdpack S4Vectors]; };
+  GenomicPlot = derive2 { name="GenomicPlot"; version="1.2.2"; sha256="0s5slbkr6cpy5asl8v1fr914zgqg1q6gcwwf9nb0r8qh469c54pd"; depends=[BiocGenerics circlize ComplexHeatmap cowplot dplyr edgeR genomation GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 ggplotify ggpubr ggsci ggsignif IRanges plyranges RCAS Rsamtools rtracklayer scales tidyr txdbmaker VennDiagram viridis]; };
+  GenomicRanges = derive2 { name="GenomicRanges"; version="1.56.1"; sha256="0g0ld9i58pdxw2pwxi9nzj82mkryag457pvh6cvbvhb28pfamkma"; depends=[BiocGenerics GenomeInfoDb IRanges S4Vectors XVector]; };
+  GenomicScores = derive2 { name="GenomicScores"; version="2.16.0"; sha256="11sabicr2jm1cc9rdjr6vjqhf0gd9d7k04qlfhcdssvh02f957ia"; depends=[AnnotationHub Biobase BiocFileCache BiocGenerics BiocManager Biostrings DelayedArray GenomeInfoDb GenomicRanges HDF5Array httr IRanges rhdf5 S4Vectors XML]; };
+  GenomicSuperSignature = derive2 { name="GenomicSuperSignature"; version="1.12.0"; sha256="0prplxp7l7hx6697a18kk2s5iyrdgpqwfh79n9lnala2h2q3vhs0"; depends=[Biobase BiocFileCache ComplexHeatmap dplyr flextable ggplot2 ggpubr irlba plotly S4Vectors SummarizedExperiment]; };
+  GenomicTuples = derive2 { name="GenomicTuples"; version="1.38.0"; sha256="04inysn0aa2fmbnb01zk300x8qgz8bk4rhw68ka6ni7cbrn88ysa"; depends=[BiocGenerics data_table GenomeInfoDb GenomicRanges IRanges Rcpp S4Vectors]; };
+  GeoDiff = derive2 { name="GeoDiff"; version="1.10.0"; sha256="17mm22cgq0259r15d49gv07igr8dpasylrnhsycx6mjg75zvz6jp"; depends=[Biobase GeomxTools lme4 Matrix NanoStringNCTools plyr Rcpp RcppArmadillo robust roptim testthat withr]; };
+  GeoTcgaData = derive2 { name="GeoTcgaData"; version="2.4.0"; sha256="0hhhwnswjglxws75iqcn2sa66z9mr65n23p5i7c615n5qzrvcmw3"; depends=[cqn data_table plyr SummarizedExperiment topconfects]; };
+  GeomxTools = derive2 { name="GeomxTools"; version="3.8.0"; sha256="093900a8himdfh752ah2wk9x5iczri0f3djsfi2mwzkb7frxpj0c"; depends=[Biobase BiocGenerics data_table dplyr EnvStats GGally ggplot2 lmerTest NanoStringNCTools readxl reshape2 rjson rlang S4Vectors SeuratObject stringr]; };
+  GladiaTOX = derive2 { name="GladiaTOX"; version="1.20.0"; sha256="0krgsih0w60sl0gw1rpff89piv3mf1sk86hmlqjxl6idag8n2jil"; depends=[brew data_table DBI ggplot2 ggrepel numDeriv RColorBrewer RCurl RJSONIO RMariaDB RSQLite stringr tidyr XML xtable]; };
+  Glimma = derive2 { name="Glimma"; version="2.14.0"; sha256="1d7rq3irp3n0fabfgjs2x2c9lscz70a38qf3wbxvi417qn7fpyla"; depends=[DESeq2 edgeR htmlwidgets jsonlite limma S4Vectors SummarizedExperiment]; };
+  GloScope = derive2 { name="GloScope"; version="1.2.0"; sha256="0gdr5ws5p1xj4ip9xk10igrlwdr10x11j0wsfkr0f0y6352f2gm6"; depends=[BiocParallel FNN ggplot2 MASS mclust mvnfast RANN rlang SingleCellExperiment]; };
+  GlobalAncova = derive2 { name="GlobalAncova"; version="4.22.0"; sha256="0z71a5h4y740k0hx84aavfxl1kpshm4gqs7mh6zf895i2r761bqh"; depends=[annotate AnnotationDbi Biobase corpcor dendextend globaltest GSEABase VGAM]; };
+  GmicR = derive2 { name="GmicR"; version="1.18.0"; sha256="19zn4n21rprfhx8zmpcl7n5jyfhdz450b9dgw1ayrnnr0w4bf67h"; depends=[AnnotationDbi ape bnlearn Category data_table doParallel DT foreach GOstats gRain gRbase GSEABase org_Hs_eg_db org_Mm_eg_db reshape2 shiny WGCNA]; };
+  GrafGen = derive2 { name="GrafGen"; version="1.0.0"; sha256="180ag0wvbhmd1vsza5lfphdx8d2phcfa4lzisi5fbk6n4195g830"; depends=[cowplot dplyr GenomicRanges ggplot2 ggpubr plotly RColorBrewer rlang scales shiny stringr zlibbioc]; };
+  GraphAT = derive2 { name="GraphAT"; version="1.76.0"; sha256="0mxsgd08qd7fb28gbbgx21vvd5sf3nn0ymrlshsdpsdya5vmmv3d"; depends=[graph MCMCpack]; };
+  GraphAlignment = derive2 { name="GraphAlignment"; version="1.68.0"; sha256="0f8h0lhykjw2nwwvz4gics1nsv6vjzk6axsgj94zwf84j4igm9jd"; depends=[]; };
+  GraphPAC = derive2 { name="GraphPAC"; version="1.46.0"; sha256="0dy3yn6vhgbvn0ygrkznhaylhaslyrnmlw5kmq0inqvl9y2yl277"; depends=[igraph iPAC RMallow TSP]; };
+  GreyListChIP = derive2 { name="GreyListChIP"; version="1.36.0"; sha256="0dj3pcycnjll8z1r61l6gnjvq74w2l0glrx6hqwcqvk5j7ixcdz7"; depends=[BSgenome GenomeInfoDb GenomicAlignments GenomicRanges MASS Rsamtools rtracklayer SummarizedExperiment]; };
+  Guitar = derive2 { name="Guitar"; version="2.20.0"; sha256="1agr3n787dqly09wy274v9dg52vdb0n0z3gdh2zsbklkbmayqxqy"; depends=[AnnotationDbi dplyr GenomicFeatures GenomicRanges ggplot2 knitr magrittr rtracklayer]; };
+  Gviz = derive2 { name="Gviz"; version="1.48.0"; sha256="07w37kq6zx99z980if4brwmw25vjgvxd8xj3l1893idbdf70py0p"; depends=[AnnotationDbi Biobase BiocGenerics biomaRt Biostrings biovizBase BSgenome digest ensembldb GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges IRanges lattice latticeExtra matrixStats RColorBrewer Rsamtools rtracklayer S4Vectors XVector]; };
+  HDF5Array = derive2 { name="HDF5Array"; version="1.32.0"; sha256="0j8rz99qw1rism3f5cv7rksccijmnchrkw7s9shxk0528f6dj6p1"; depends=[BiocGenerics DelayedArray IRanges Matrix rhdf5 rhdf5filters Rhdf5lib S4Arrays S4Vectors]; };
+  HDTD = derive2 { name="HDTD"; version="1.38.0"; sha256="15lc2g6mcvgy0v0pjl9f1khhznpxc7ij8aimj20w2qaz1h6sqmpp"; depends=[Rcpp RcppArmadillo]; };
+  HELP = derive2 { name="HELP"; version="1.62.0"; sha256="08g9xivzgwla4qvsca015d2hr2xbgiga9wd2xm5xphhb64lgzass"; depends=[Biobase]; };
+  HEM = derive2 { name="HEM"; version="1.76.0"; sha256="091axqfgm8alz4k76b7ap1dl2cx7cim4l43zyvf91wimr6a13pbx"; depends=[Biobase]; };
+  HERON = derive2 { name="HERON"; version="1.2.0"; sha256="0z8bsvsj1xa4r93y244381yckqk4mc39ij3pabcbn2mgbihcs94d"; depends=[cluster data_table GenomicRanges harmonicmeanp IRanges limma Matrix matrixStats metap S4Vectors spdep SummarizedExperiment]; };
+  HGC = derive2 { name="HGC"; version="1.12.0"; sha256="10g4lmhs8brfrci6n28iarzwm4dlvsbysssv2n25l1rp8wnl2sip"; depends=[ape dendextend dplyr ggplot2 Matrix mclust patchwork RANN Rcpp RcppEigen]; };
+  HIBAG = derive2 { name="HIBAG"; version="1.40.0"; sha256="1q059hqx0k9nm9xgxlzxnl93f44hjhjpf4iql0f87v560xzy1pgk"; depends=[RcppParallel]; };
+  HIPPO = derive2 { name="HIPPO"; version="1.16.0"; sha256="1fp2jxi5xlf3archv3z8gnrc3rsh12vkprk6xhdffw9n2mqap56c"; depends=[dplyr ggplot2 ggrepel gridExtra irlba magrittr Matrix reshape2 rlang Rtsne SingleCellExperiment umap]; };
+  HIREewas = derive2 { name="HIREewas"; version="1.22.0"; sha256="1kdiqa1g34i5gmnaxm6xc4r2wfb8ypmglrxfgv8l39l81698lp04"; depends=[gplots quadprog]; };
+  HMMcopy = derive2 { name="HMMcopy"; version="1.46.0"; sha256="1i2n4i4vkxqfgdcmwhz1vcbhxk716m1blc2drzh5449y6x3qd026"; depends=[data_table]; };
+  HPAanalyze = derive2 { name="HPAanalyze"; version="1.22.0"; sha256="1cm88rg43mwi6qqp0p48698z89niygy8zr0g1fk0s6cd5z2i6qpy"; depends=[dplyr ggplot2 gridExtra openxlsx tibble xml2]; };
+  HPiP = derive2 { name="HPiP"; version="1.10.0"; sha256="1kjsa8q70zvmjqcvrpcijf7w6c5k21ysdd8pd8zsxwkvck174gih"; depends=[caret corrplot dplyr ggplot2 httr igraph magrittr MCL pROC protr PRROC purrr readr stringr tibble tidyr]; };
+  HTSFilter = derive2 { name="HTSFilter"; version="1.44.0"; sha256="11pqfg2msdxi57326slgp73j4dshj5r730sv1x0n9f7fd2187his"; depends=[Biobase BiocParallel DESeq2 edgeR]; };
+  HTSeqGenie = derive2 { name="HTSeqGenie"; version="4.34.0"; sha256="1np04hiijz9jdxvlg1mk74w19ma32qrdjb9bc5cscrs1lgw78idh"; depends=[BiocGenerics BiocParallel Biostrings Cairo chipseq GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges gmapR hwriter IRanges pwalign Rsamtools rtracklayer S4Vectors ShortRead SummarizedExperiment VariantAnnotation VariantTools]; };
+  Harman = derive2 { name="Harman"; version="1.32.0"; sha256="1b6w8wrlsvxpzbsp4vkrpfvx4icbvncl11q4j773knz5q0q9l6q0"; depends=[Ckmeans_1d_dp matrixStats Rcpp]; };
+  HarmonizR = derive2 { name="HarmonizR"; version="1.2.0"; sha256="1bjyfxhlsslns7jiaaivld56w9j1gavdnrbciil6kiqs2q63fpj9"; depends=[doParallel foreach janitor limma plyr seriation SummarizedExperiment sva]; };
+  Harshlight = derive2 { name="Harshlight"; version="1.76.0"; sha256="1nqi2ad9hnm6j8hn8f6xp9zav6rsa5wlzb2z5fjnm9q4xbjblnjl"; depends=[affy altcdfenvs Biobase]; };
+  Heatplus = derive2 { name="Heatplus"; version="3.12.0"; sha256="1pc63hk0smcflq4903hvs4pp8r0kzlx08j0m1kxlh14cxwppamyb"; depends=[RColorBrewer]; };
+  HelloRanges = derive2 { name="HelloRanges"; version="1.30.0"; sha256="0idv6aravk0jj8p33kvc620p60ciyrkd293ba034g6j5921ym6gx"; depends=[BiocGenerics BiocIO Biostrings BSgenome docopt GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges IRanges Rsamtools rtracklayer S4Vectors SummarizedExperiment VariantAnnotation]; };
+  Herper = derive2 { name="Herper"; version="1.14.0"; sha256="0aj9gskx02p986n29cd1z5hrzp4qp5cvwki25vyafb805wf7v69v"; depends=[reticulate rjson withr]; };
+  HiCBricks = derive2 { name="HiCBricks"; version="1.22.0"; sha256="0hbmy7vhg63n6r2lv8gvrlsj4xgqbf8mvaci2i4kpc9327jny2nn"; depends=[BiocParallel curl data_table digest GenomeInfoDb GenomicRanges ggplot2 IRanges jsonlite R_utils R6 RColorBrewer readr reshape2 rhdf5 S4Vectors scales stringr tibble viridis]; };
+  HiCDCPlus = derive2 { name="HiCDCPlus"; version="1.12.0"; sha256="0x95v5h1qjks87gmis7p0y4bmj7xalqbgny0qfkaw8s561fhx3j9"; depends=[bbmle Biostrings BSgenome data_table dplyr GenomeInfoDb GenomicInteractions GenomicRanges InteractionSet IRanges MASS pscl R_utils Rcpp rlang rtracklayer S4Vectors tibble tidyr]; };
+  HiCDOC = derive2 { name="HiCDOC"; version="1.6.0"; sha256="1p8n3yljzlk8ic47101nw8d6dmxgadacgfh6pknkpxgk6vlcq6kh"; depends=[BiocGenerics BiocParallel cowplot data_table GenomeInfoDb GenomicRanges ggplot2 gridExtra gtools InteractionSet multiHiCcompare pbapply Rcpp S4Vectors SummarizedExperiment zlibbioc]; };
+  HiCExperiment = derive2 { name="HiCExperiment"; version="1.4.0"; sha256="0wz08jwljv8zc658xl55rwwsfvy3lc3qg9dw7d41cw37wh40dkw1"; depends=[BiocGenerics BiocIO BiocParallel dplyr GenomeInfoDb GenomicRanges InteractionSet IRanges Matrix rhdf5 S4Vectors strawr vroom]; };
+  HiCcompare = derive2 { name="HiCcompare"; version="1.26.0"; sha256="1rpdqij0lvs9cyl1z5lgw91332km1nb8053kk432bais9382jkxc"; depends=[BiocParallel data_table dplyr GenomicRanges ggplot2 gridExtra gtools InteractionSet IRanges KernSmooth mgcv pheatmap rhdf5 S4Vectors]; };
+  HiContacts = derive2 { name="HiContacts"; version="1.6.0"; sha256="18rfv9z03dqdqifrxqv1l3m9s8nykygd9y6d7pya2sdfx8f0hgza"; depends=[BiocGenerics BiocIO BiocParallel dplyr GenomeInfoDb GenomicRanges ggplot2 ggrastr HiCExperiment InteractionSet IRanges Matrix readr RSpectra S4Vectors scales stringr SummarizedExperiment tibble tidyr]; };
+  HiCool = derive2 { name="HiCool"; version="1.4.0"; sha256="06b26szb23mngcfx5xwdw6kz10gqjs69py0iz5piia4a7vppk8zk"; depends=[basilisk BiocIO dplyr GenomicRanges HiCExperiment InteractionSet IRanges plotly reticulate rmarkdown rmdformats S4Vectors sessioninfo stringr vroom]; };
+  HiLDA = derive2 { name="HiLDA"; version="1.18.0"; sha256="1v5gvb84q09l8i7f1d4q7zpyxlzaq5bqifia706d60700wvfan29"; depends=[abind BiocGenerics Biostrings BSgenome_Hsapiens_UCSC_hg19 cowplot forcats GenomicFeatures GenomicRanges ggplot2 R2jags Rcpp S4Vectors stringr tidyr TxDb_Hsapiens_UCSC_hg19_knownGene XVector]; };
+  HiTC = derive2 { name="HiTC"; version="1.48.0"; sha256="0nxk3rdfw78bwyxjd3bbm093i8hqyk63rz0fvx3fi04qpa1fv39r"; depends=[Biostrings GenomeInfoDb GenomicRanges IRanges Matrix RColorBrewer rtracklayer]; };
+  HicAggR = derive2 { name="HicAggR"; version="1.0.2"; sha256="1lpf7m3rsm3ng0i6gqyl6l3jvawnl8wcfjl0gkxz604bwszjvhb3"; depends=[BiocGenerics BiocParallel checkmate data_table dplyr GenomeInfoDb GenomicRanges ggplot2 gridExtra InteractionSet IRanges Matrix purrr reshape rhdf5 rlang rtracklayer S4Vectors strawr stringr tibble tidyr withr]; };
+  HilbertCurve = derive2 { name="HilbertCurve"; version="1.34.0"; sha256="0kka2haa84kv2xwqny0ii0mfq0gjdh4vv1zkjk0lbqszqk1h6hab"; depends=[circlize GenomicRanges HilbertVis IRanges png polylabelr]; };
+  HilbertVis = derive2 { name="HilbertVis"; version="1.62.0"; sha256="07ndnzqjpklr3k9bbnl9y7jpb91ng1wkssb4kqaxp5nsc2ixidpd"; depends=[lattice]; };
+  HilbertVisGUI = derive2 { name="HilbertVisGUI"; version="1.62.0"; sha256="0mzb9yb9f5d6yr8889cn8n20br5mf07xg97q09hxxhxgy8pq33mf"; depends=[HilbertVis]; };
+  HubPub = derive2 { name="HubPub"; version="1.12.0"; sha256="02xqw3xkhzk2fxx4l1h5gl5v0diamssr1dw9x871glxjl4kw07xm"; depends=[available aws_s3 BiocManager biocthis dplyr fs usethis]; };
+  HumanTranscriptomeCompendium = derive2 { name="HumanTranscriptomeCompendium"; version="1.20.0"; sha256="1y46zsl08k6sdih8psar85fyc5dfk2vraxmfry70zx57vbjbin92"; depends=[BiocManager S4Vectors shiny ssrch SummarizedExperiment]; };
+  HybridExpress = derive2 { name="HybridExpress"; version="1.0.0"; sha256="1cpvw6ycbh60wn39ws0l6hrgy9x97glb56f87sn2qg9li6hxjshh"; depends=[BiocParallel ComplexHeatmap DESeq2 ggplot2 patchwork RColorBrewer rlang SummarizedExperiment]; };
+  HybridMTest = derive2 { name="HybridMTest"; version="1.48.0"; sha256="0fh0v29fpwzramqnbxmzpmgiziwswdx38734g2lx303b0blkbv7j"; depends=[Biobase fdrtool MASS survival]; };
+  IFAA = derive2 { name="IFAA"; version="1.6.0"; sha256="1y2vsz14d5a22m21n7zmfm64ffvh8hq0hkwnr44ifysy4zfmjg0x"; depends=[DescTools doParallel doRNG foreach glmnet HDCI mathjaxr Matrix MatrixExtra parallelly S4Vectors stringr SummarizedExperiment]; };
+  IHW = derive2 { name="IHW"; version="1.32.0"; sha256="0j7rfyhpzr8zzyvjyphlfviy07z30nzsqq6isi4l0r4qgaziy1s6"; depends=[BiocGenerics fdrtool lpsymphony slam]; };
+  ILoReg = derive2 { name="ILoReg"; version="1.14.0"; sha256="1zw6m2a5jr77mbjbzc966v98pdfw2s0sg1sqssdf7qsb0izj10b0"; depends=[aricode cluster cowplot dendextend DescTools doRNG doSNOW dplyr fastcluster foreach ggplot2 LiblineaR Matrix parallelDist pheatmap plyr reshape2 RSpectra Rtsne S4Vectors scales SingleCellExperiment SparseM SummarizedExperiment umap]; };
+  IMAS = derive2 { name="IMAS"; version="1.28.0"; sha256="1n55qs4v5x7clpbhlrby5dcz9xldqrsfp6g4k6g0s1g0lk2rplqm"; depends=[AnnotationDbi BiocGenerics BiocParallel doParallel foreach GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggfortify ggplot2 gridExtra IRanges IVAS lattice lme4 Matrix Rsamtools S4Vectors survival]; };
+  IMMAN = derive2 { name="IMMAN"; version="1.24.0"; sha256="1yn0p53ar9b9g5d2gfyd70cp7vm69fsgn8av9lvc6qyac18w9y5j"; depends=[igraph pwalign seqinr STRINGdb]; };
+  IMPCdata = derive2 { name="IMPCdata"; version="1.40.0"; sha256="0s0zap78lwgava7k3dng8hjpd1zifh9438iqfqghydq8scyr3akc"; depends=[rjson]; };
+  INDEED = derive2 { name="INDEED"; version="2.18.0"; sha256="0ky21l4igsfznzq8is8apjhiasxryn8sjhjqjnpp1z8m7q93a0sf"; depends=[devtools glasso igraph visNetwork]; };
+  INPower = derive2 { name="INPower"; version="1.40.0"; sha256="1w3gjw1avjpvnqy5ladypkr862jqd910zi74ah8rdfzid4r79klm"; depends=[mvtnorm]; };
+  INSPEcT = derive2 { name="INSPEcT"; version="1.34.0"; sha256="0147ss218d3dnqbdgfwsg24an63qln8l5kkv0y4hm56bncdrm1i0"; depends=[Biobase BiocGenerics BiocParallel DESeq2 deSolve GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges IRanges KernSmooth plgem pROC readxl rootSolve Rsamtools rtracklayer S4Vectors shiny SummarizedExperiment TxDb_Mmusculus_UCSC_mm9_knownGene]; };
+  INTACT = derive2 { name="INTACT"; version="1.4.0"; sha256="1r1v8cvms0dyjf0f5f9v6qp7hz0rfb2yfbckvvrkq26yjwfbmlaa"; depends=[bdsmatrix numDeriv SQUAREM tidyr]; };
+  IONiseR = derive2 { name="IONiseR"; version="2.28.0"; sha256="1ihski4akl70v6kq03di6w1pz63dx6rxgmyjkm0dv0nhgkmrza22"; depends=[BiocGenerics BiocParallel Biostrings bit64 dplyr ggplot2 magrittr rhdf5 ShortRead stringr tibble tidyr XVector]; };
+  IPO = derive2 { name="IPO"; version="1.30.0"; sha256="0sh4ajra67j2v359022s4cm2vfc0i9wjagcjv8jh1jf5jq70dyfh"; depends=[BiocParallel CAMERA rsm xcms]; };
+  IRanges = derive2 { name="IRanges"; version="2.38.0"; sha256="047688hrxyg2hxd1wbywxqnvxk1622xlldzana9g5hhxg9lldrk2"; depends=[BiocGenerics S4Vectors]; };
+  ISAnalytics = derive2 { name="ISAnalytics"; version="1.14.0"; sha256="05khils483a1d64ikg4j5vl3rcwsjgik04b75a6rr3crkdba7fl4"; depends=[bslib datamods dplyr DT forcats fs ggplot2 ggrepel glue lifecycle lubridate purrr readr readxl rlang shiny shinyWidgets stringr tibble tidyr]; };
+  ISLET = derive2 { name="ISLET"; version="1.6.0"; sha256="0vhpxr0civdhcxiy39aycir8a68vgrydv3nx1p9rn4hhpw7dq7gi"; depends=[abind BiocGenerics BiocParallel lme4 Matrix nnls purrr SummarizedExperiment]; };
+  ISoLDE = derive2 { name="ISoLDE"; version="1.32.0"; sha256="1yq7h8jjapjr7j9f2p4ikkvxh46vz4y7pdwddsi4dx7xkfjhzxmm"; depends=[]; };
+  ITALICS = derive2 { name="ITALICS"; version="2.64.0"; sha256="06h6iqrqzlcj4hyhj1ikl9isr3ls1pph49v5n7cp87czinr0nd3s"; depends=[affxparser DBI GLAD ITALICSData oligo oligoClasses pd_mapping50k_xba240]; };
+  IVAS = derive2 { name="IVAS"; version="2.24.0"; sha256="15l0qga9a4q79y1r3pwcv3c0m0qpyjay3fvv7b4zwx7hvmkjfy1b"; depends=[AnnotationDbi Biobase BiocGenerics BiocParallel doParallel foreach GenomeInfoDb GenomicFeatures GenomicRanges ggfortify ggplot2 IRanges lme4 Matrix S4Vectors]; };
+  IWTomics = derive2 { name="IWTomics"; version="1.28.0"; sha256="0ksmpa6f5zlgdhma1vxsfd64g7jhisffg5sbnz2xhf7faz14gc08"; depends=[fda GenomicRanges gtable IRanges KernSmooth S4Vectors]; };
+  Icens = derive2 { name="Icens"; version="1.76.0"; sha256="16bblkxp8pj7qaxfzmp30lfj8vy13d3q8cf5y0g40lk4rbldx3bz"; depends=[survival]; };
+  IdeoViz = derive2 { name="IdeoViz"; version="1.40.0"; sha256="0mq8qdhi2ccfa66rygn83hpm0fsmwiahpmrh8q522yl618mkrjcs"; depends=[Biobase GenomeInfoDb GenomicRanges IRanges RColorBrewer rtracklayer]; };
+  IgGeneUsage = derive2 { name="IgGeneUsage"; version="1.18.0"; sha256="0b2bndc36yd0a4yi2z3870g1b9c1ddpwp44gl42ysk29qwis2yi6"; depends=[BH Rcpp RcppEigen RcppParallel reshape2 rstan rstantools StanHeaders SummarizedExperiment tidyr]; };
+  InPAS = derive2 { name="InPAS"; version="2.12.0"; sha256="05hzd8rixqz5d86d4gv7wh68kfbiynbp2xij9r2nj0h90av0h95b"; depends=[AnnotationDbi batchtools Biobase Biostrings BSgenome cleanUpdTSeq depmixS4 dplyr flock future future_apply GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 IRanges limma magrittr parallelly plyranges preprocessCore readr reshape2 RSQLite S4Vectors]; };
+  InTAD = derive2 { name="InTAD"; version="1.24.0"; sha256="16npavms8qxccldpik27qbsv3w0drcjr132nz2ky2cvi01bcp4l2"; depends=[Biobase BiocGenerics GenomicRanges ggplot2 ggpubr IRanges mclust MultiAssayExperiment qvalue rtracklayer S4Vectors SummarizedExperiment]; };
+  Informeasure = derive2 { name="Informeasure"; version="1.14.0"; sha256="0v4wy0gyap9w38a505hhhv1apmixazd4la8wjspdx718az92igg3"; depends=[entropy]; };
+  IntEREst = derive2 { name="IntEREst"; version="1.28.0"; sha256="0i6q422vhf94ka0v69hs5irg506wb467rwnnn12xvsfyq54ak4dm"; depends=[BiocGenerics BiocParallel Biostrings DBI DESeq2 DEXSeq edgeR GenomicAlignments GenomicFeatures GenomicFiles GenomicRanges IRanges RMySQL Rsamtools S4Vectors seqinr seqLogo SummarizedExperiment txdbmaker]; };
+  InterCellar = derive2 { name="InterCellar"; version="2.10.0"; sha256="020z08v199psgcl4z3kbwl1zgp10iwn5n60c4bq555fz6nbjb56n"; depends=[biomaRt circlize colorspace colourpicker ComplexHeatmap config data_table dendextend dplyr DT factoextra fmsb fs ggplot2 golem htmltools htmlwidgets igraph plotly plyr readxl rlang scales shiny shinyalert shinycssloaders shinydashboard shinyFeedback shinyFiles signal tibble tidyr umap visNetwork wordcloud2]; };
+  InterMineR = derive2 { name="InterMineR"; version="1.26.0"; sha256="0isw4rg89139xmrcfb9r7jc3z8jj1my4radhinah0vad2cwb36l0"; depends=[Biostrings GenomicRanges httr igraph IRanges RCurl RJSONIO S4Vectors sqldf SummarizedExperiment XML xml2]; };
+  InteractionSet = derive2 { name="InteractionSet"; version="1.32.0"; sha256="0ikkmhz6grmhksmyypj9hqmblls4cgww0dx4kzg4cy5bpavsq1hs"; depends=[BiocGenerics GenomeInfoDb GenomicRanges IRanges Matrix Rcpp S4Vectors SummarizedExperiment]; };
+  InteractiveComplexHeatmap = derive2 { name="InteractiveComplexHeatmap"; version="1.12.0"; sha256="0sfhr3f7fdw9zgw2wn7dhk1zwmhn3k3iy8xa0j9dv7bpa2mcvw1b"; depends=[clisymbols ComplexHeatmap digest fontawesome GetoptLong htmltools IRanges jsonlite kableExtra RColorBrewer S4Vectors shiny svglite]; };
+  IntramiRExploreR = derive2 { name="IntramiRExploreR"; version="1.26.0"; sha256="19q6znbmqj4i6k60c5f05y7s7rp9h3ra3081ra3fc5p2b74gb6cv"; depends=[FGNet igraph knitr]; };
+  IsoBayes = derive2 { name="IsoBayes"; version="1.2.0"; sha256="19vga38f9srbsb6vglb0ni33cfrzrn5z94d0v4apnki4r6plp2k2"; depends=[data_table doParallel doRNG foreach ggplot2 glue HDInterval iterators Rcpp RcppArmadillo S4Vectors SummarizedExperiment]; };
+  IsoCorrectoR = derive2 { name="IsoCorrectoR"; version="1.22.0"; sha256="19h5wndzj3sgvhb7blx07pjammh05kwp5vwjv0drvlj829pqhkia"; depends=[dplyr magrittr pracma quadprog readr readxl stringr tibble WriteXLS]; };
+  IsoCorrectoRGUI = derive2 { name="IsoCorrectoRGUI"; version="1.20.0"; sha256="1zwnp50sargc3991v22sj7hg01c1ddqi487xmvj5in7yjccys2dm"; depends=[IsoCorrectoR readxl tcltk2]; };
+  IsoformSwitchAnalyzeR = derive2 { name="IsoformSwitchAnalyzeR"; version="2.4.0"; sha256="0mmxyq1r4kq1igj108pr0r9215hwmyph5svx0djd460knak24y6z"; depends=[Biobase BiocGenerics BiocParallel Biostrings BSgenome DBI DEXSeq dplyr edgeR futile_logger GenomeInfoDb GenomicRanges ggplot2 gridExtra IRanges limma magrittr pfamAnalyzeR plyr pwalign RColorBrewer RCurl readr reshape2 rtracklayer S4Vectors satuRn stringr SummarizedExperiment sva tibble tidyr tximeta tximport VennDiagram XVector]; };
+  KBoost = derive2 { name="KBoost"; version="1.12.0"; sha256="0xmnfcfvlmwgs01k81dkksgia93dvyph6kdacn9gnpl3559q5ilg"; depends=[]; };
+  KCsmart = derive2 { name="KCsmart"; version="2.62.0"; sha256="0qc8kp5y9dcq23wsqpbin9hds1j5jnq3w255rg3k0ni1iq95c6m4"; depends=[BiocGenerics KernSmooth multtest siggenes]; };
+  KEGGREST = derive2 { name="KEGGREST"; version="1.44.0"; sha256="1xvi11ywr3vj2m8fpqblzg2pmj1vsc0dm8fgggv6w96l6x6sfyf0"; depends=[Biostrings httr png]; };
+  KEGGgraph = derive2 { name="KEGGgraph"; version="1.64.0"; sha256="0lffqbvwmfjbw5ymxr969znvb53hbqfgq1zwffsc768rv3h4c6p7"; depends=[graph RCurl Rgraphviz XML]; };
+  KEGGlincs = derive2 { name="KEGGlincs"; version="1.30.0"; sha256="0jxa42ax4r991vc2cqjdzyfwknf5929xyvlpimra3fbpgpp8sjpg"; depends=[AnnotationDbi gtools hgu133a_db httr igraph KEGGgraph KEGGREST KOdata org_Hs_eg_db plyr RJSONIO XML]; };
+  KinSwingR = derive2 { name="KinSwingR"; version="1.22.0"; sha256="0dlqwi2a9hbl4nh6kp4bxv3acvnvmgg5ssbymvf2k8ng4g1kxi3r"; depends=[BiocParallel data_table sqldf]; };
+  KnowSeq = derive2 { name="KnowSeq"; version="1.18.0"; sha256="1iv6cghkq0qi0d2fsj9x74jzvf1zrrknc3kx1b1xpa7lc0x11ym4"; depends=[caret cqn e1071 edgeR ggplot2 gridExtra Hmisc httr jsonlite kernlab limma praznik R_utils randomForest reshape2 rlist rmarkdown stringr sva XML]; };
+  LACE = derive2 { name="LACE"; version="2.8.0"; sha256="07izkiljmq0rbrijsgv45qvpp4zmaw78qqavzbvaw729pl172haz"; depends=[biomaRt bsplus callr configr curl data_table data_tree doParallel dplyr DT forcats foreach fs ggplot2 htmltools htmlwidgets igraph jsonlite logr Matrix purrr RColorBrewer readr Rfast shiny shinyBS shinydashboard shinyFiles shinyjs shinythemes shinyvalidate sortable stringi stringr SummarizedExperiment svglite tidyr]; };
+  LBE = derive2 { name="LBE"; version="1.72.0"; sha256="03vmsblzh5vw8p8xdd39cbl714rq1nh4wqflprsmpnyd1gkn8p4z"; depends=[]; };
+  LEA = derive2 { name="LEA"; version="3.16.0"; sha256="0r6nj6ck77fhbmqifbx4srj1f3yr7haiinphcm0p4g8b7zn4a6fm"; depends=[]; };
+  LOBSTAHS = derive2 { name="LOBSTAHS"; version="1.30.0"; sha256="0r5s92jfvavxg6amml14lfqv9azshdf6vq7pyf9izbd79whxr6wn"; depends=[CAMERA xcms]; };
+  LOLA = derive2 { name="LOLA"; version="1.34.0"; sha256="1i5axxzdwl6j1cgxfdfnaisv6bj4qbrhic5ba2k3wbhkgr144xcc"; depends=[BiocGenerics data_table GenomicRanges IRanges reshape2 S4Vectors]; };
+  LPE = derive2 { name="LPE"; version="1.78.0"; sha256="1a2bgk3a1irf45rda1dnbq0gak8ldw328ibvhp10fcj2dyvd53rx"; depends=[]; };
+  LRBaseDbi = derive2 { name="LRBaseDbi"; version="2.14.0"; sha256="11h41iq3ivbyrd2xrhphryqkrfdyr8j8hjdyjbbfsxhq8b4pxz9a"; depends=[AnnotationDbi Biobase DBI RSQLite]; };
+  LRcell = derive2 { name="LRcell"; version="1.12.0"; sha256="129wwaa6ppayyirlyra720a2yhabvihy11yfbr3yddnk7jzgzm8a"; depends=[AnnotationHub BiocParallel dplyr ExperimentHub ggplot2 ggrepel magrittr]; };
+  LedPred = derive2 { name="LedPred"; version="1.38.0"; sha256="1ziw6ya46s55gynlrl8dh6p3n0l1m01b0q6b9y6fc13pknjjbarh"; depends=[akima e1071 ggplot2 irr jsonlite plot3D plyr RCurl ROCR testthat]; };
+  LinTInd = derive2 { name="LinTInd"; version="1.8.0"; sha256="01ij93fylp7bch2rywz31bpbhdgi8cbsn8nngsp730pd3pyw8mpf"; depends=[ape BiocGenerics Biostrings cowplot data_tree dplyr ggnewscale ggplot2 ggtree IRanges networkD3 pheatmap purrr pwalign reshape2 rlist S4Vectors stringdist stringr]; };
+  LinkHD = derive2 { name="LinkHD"; version="1.18.0"; sha256="00vfzs3121l4bqy3mb4pblfjcna5zaa4iqrzrz9pfkwm2wcf2zis"; depends=[cluster data_table emmeans ggplot2 ggpubr gridExtra MultiAssayExperiment reshape2 rio scales vegan]; };
+  Linnorm = derive2 { name="Linnorm"; version="2.28.0"; sha256="1la6fwaap7957rrb4cs6w48kjz4hqrw3h39lpps419d4cbnsp5jz"; depends=[amap apcluster ellipse fastcluster fpc ggdendro ggplot2 gmodels igraph limma MASS mclust Rcpp RcppArmadillo Rtsne statmod vegan zoo]; };
+  LiquidAssociation = derive2 { name="LiquidAssociation"; version="1.58.0"; sha256="0hgr074a4q64cyw2dbc3ncm9rwkv0d2fs5wzlkacr956wv3zzxld"; depends=[Biobase geepack org_Sc_sgd_db yeastCC]; };
+  LoomExperiment = derive2 { name="LoomExperiment"; version="1.22.0"; sha256="12xx78pbfdhh1iprm8vfbnwi3dm7slf47y5a6p78spnhsykb3ris"; depends=[BiocIO DelayedArray GenomicRanges HDF5Array Matrix rhdf5 S4Vectors SingleCellExperiment stringr SummarizedExperiment]; };
+  LymphoSeq = derive2 { name="LymphoSeq"; version="1.32.0"; sha256="0km3k6sbcb573mk0wb6hq1xqmbkksnvkv8mx5b9jqr4r840lh909"; depends=[Biostrings circlize data_table dplyr ggplot2 ggtree ineq LymphoSeqDB msa phangorn plyr RColorBrewer reshape stringdist UpSetR VennDiagram]; };
+  M3C = derive2 { name="M3C"; version="1.26.0"; sha256="1h3zxb3m68lq37g25zqxpmk2c9yrdhydyhh7ad2d30hif73qiacm"; depends=[cluster corpcor doParallel doSNOW foreach ggplot2 Matrix matrixcalc Rtsne umap]; };
+  M3Drop = derive2 { name="M3Drop"; version="1.30.0"; sha256="1ksdr7p517sidp99kl4bjy88i18c7hxgd7zlrj4h0zrvy3fjh1r4"; depends=[bbmle gplots Hmisc irlba Matrix matrixStats numDeriv RColorBrewer reldist scater statmod]; };
+  MACSQuantifyR = derive2 { name="MACSQuantifyR"; version="1.18.0"; sha256="0f46dgp5cjakc97zb7rz2fnx5bzb78qfbw2fdc30jv1c9zn849f1"; depends=[ggplot2 ggrepel gridExtra lattice latticeExtra png prettydoc readxl rmarkdown rvest xml2]; };
+  MACSr = derive2 { name="MACSr"; version="1.12.0"; sha256="04qra9rwj3f259k2f8h1v8g8cnkm2ryrr84rq6pmkr9ax0wbym63"; depends=[AnnotationHub basilisk ExperimentHub reticulate S4Vectors]; };
+  MADSEQ = derive2 { name="MADSEQ"; version="1.30.0"; sha256="0b15wg8nsavl2994clrv72rl6qn5b8pbxk1wqwqcrdab832pd4m7"; depends=[Biostrings BSgenome BSgenome_Hsapiens_UCSC_hg19 coda GenomeInfoDb GenomicAlignments GenomicRanges IRanges preprocessCore rjags Rsamtools rtracklayer S4Vectors SummarizedExperiment VariantAnnotation vcfR VGAM zlibbioc]; };
+  MAGAR = derive2 { name="MAGAR"; version="1.12.0"; sha256="10ki05dffrc9b4ghwjlcc51m9zviyffsldwp5w6m740y9gd0hjcg"; depends=[argparse bigstatsr crlmm data_table doParallel ff HDF5Array igraph impute jsonlite plyr reshape2 rjson RnBeads RnBeads_hg19 RnBeads_hg38 snpStats UpSetR]; };
+  MAGeCKFlute = derive2 { name="MAGeCKFlute"; version="2.8.0"; sha256="1fbwd1wi9z6fgq2whqazyqwm71j7h87dcv4vh3f23yzxm337qpiy"; depends=[Biobase clusterProfiler depmap DOSE enrichplot ggplot2 ggrepel gridExtra msigdbr pathview reshape2]; };
+  MAI = derive2 { name="MAI"; version="1.10.0"; sha256="0fj5q9bbwazicncyxn7940jxkka1m76327cgwl3skj8a1xr6nlfq"; depends=[caret doParallel e1071 foreach future future_apply missForest pcaMethods S4Vectors SummarizedExperiment tidyverse]; };
+  MAIT = derive2 { name="MAIT"; version="1.38.0"; sha256="0b33n6n3v88rad6ndpldsz3kb3l35fq7w6vqm5fzd9nxn9h5ayws"; depends=[agricolae CAMERA caret class e1071 gplots MASS pls plsgenomics Rcpp xcms]; };
+  MANOR = derive2 { name="MANOR"; version="1.76.0"; sha256="0mlhv4gy4bxvdm0drwwrm4x48wy0mghzcqhvaw2rhw0h65rmy5ps"; depends=[GLAD]; };
+  MAPFX = derive2 { name="MAPFX"; version="1.0.0"; sha256="16iqj70hhsgvnlb8g9z42xplfdsryzlc9cq4ndky01izmqi0ybvx"; depends=[Biobase circlize ComplexHeatmap cowplot e1071 flowCore ggplot2 glmnetUtils gtools iCellR igraph pbapply RColorBrewer reshape2 Rfast stringr uwot xgboost]; };
+  MAST = derive2 { name="MAST"; version="1.30.0"; sha256="1k8an0ifcgx54lqzpim3q37y4rhv57i94i46dlpmdyfghqqw0fny"; depends=[abind Biobase BiocGenerics data_table ggplot2 Matrix plyr progress reshape2 S4Vectors SingleCellExperiment stringr SummarizedExperiment]; };
+  MBASED = derive2 { name="MBASED"; version="1.38.0"; sha256="1gh12y9l87g01s8f60g82k43pjm4i7zan0l1xnw042qiskz6x92h"; depends=[BiocGenerics BiocParallel GenomicRanges RUnit SummarizedExperiment]; };
+  MBAmethyl = derive2 { name="MBAmethyl"; version="1.38.0"; sha256="05p05qp8g23l1c4i9vnkysq1srnzpiq8wc45zzg80hms3ab5qdzp"; depends=[]; };
+  MBCB = derive2 { name="MBCB"; version="1.58.0"; sha256="17m8ajwffjl6ldzmlq79hj9s0nkjparpks685jjgmw8gx80q3ln1"; depends=[preprocessCore tcltk2]; };
+  MBECS = derive2 { name="MBECS"; version="1.8.0"; sha256="15nv5rbw158d071gscms6p42wzf6ibnabiqcq256rcz6j0r69b63"; depends=[cluster dplyr ggplot2 gridExtra limma lme4 lmerTest magrittr Matrix pheatmap phyloseq rmarkdown ruv sva tibble tidyr vegan]; };
+  MBQN = derive2 { name="MBQN"; version="2.16.0"; sha256="0c5knn15yiki5vi6ln5f0r4hkq3bnv8da5yqflgbgqwn7fn277cr"; depends=[BiocFileCache ggplot2 limma PairedData preprocessCore rappdirs RCurl rmarkdown SummarizedExperiment xml2]; };
+  MBttest = derive2 { name="MBttest"; version="1.32.0"; sha256="0qfl0qaw99b1q8j7fq8f1vdkxsjjp6flrg3vwr3bksfi5z58hpzz"; depends=[gplots gtools]; };
+  MCbiclust = derive2 { name="MCbiclust"; version="1.28.0"; sha256="1alz583dnmm9xvby1fcfkz2pxach6saj2ni5qma1r31ac4sx0b3l"; depends=[AnnotationDbi BiocParallel cluster GGally ggplot2 GO_db org_Hs_eg_db scales WGCNA]; };
+  MDTS = derive2 { name="MDTS"; version="1.24.0"; sha256="16mm79gqqwpjfhmx0ppidg05gk7hbzw2d0hgxx9fzpfaixkx2k7p"; depends=[Biostrings DNAcopy GenomicAlignments GenomicRanges IRanges Rsamtools stringr]; };
+  MEAL = derive2 { name="MEAL"; version="1.34.0"; sha256="1njqd9546ggnncmnri8nm9h2cq1wrq075fpng86d994zpgvq2xn8"; depends=[Biobase BiocGenerics GenomicRanges ggplot2 Gviz IRanges isva limma matrixStats minfi missMethyl MultiDataSet permute S4Vectors SmartSVA SummarizedExperiment vegan]; };
+  MEAT = derive2 { name="MEAT"; version="1.16.0"; sha256="0qq5k0xc7vsc32nh6f1qw4cy960rh43a8caqpjprvkfgp9mbvxfg"; depends=[dplyr dynamicTreeCut glmnet impute minfi RPMM stringr SummarizedExperiment tibble wateRmelon]; };
+  MEB = derive2 { name="MEB"; version="1.18.0"; sha256="18vhf7f0jx13b8vs4kgm2qli3xxinv9rcm4r8xfd9p1ldmmbh6bn"; depends=[e1071 edgeR scater SingleCellExperiment SummarizedExperiment wrswoR]; };
+  MEDIPS = derive2 { name="MEDIPS"; version="1.56.0"; sha256="0lv4x4ms3gabin47lv08rl2igddnr2r9d5xf3w1zaz8d2fj1k1wq"; depends=[biomaRt Biostrings BSgenome DNAcopy edgeR GenomicRanges gtools IRanges preprocessCore Rsamtools rtracklayer]; };
+  MEDME = derive2 { name="MEDME"; version="1.64.0"; sha256="1zqqbb36qy1ad3fp2b29wm94g0qj95p8aj4jskkj7zca5j01jvzr"; depends=[Biostrings drc MASS]; };
+  MEIGOR = derive2 { name="MEIGOR"; version="1.38.0"; sha256="05k3n6zr75hd76l7v19i88hp0y7x2k2x4nhdwx86ya9gp8xad069"; depends=[CNORode deSolve Rsolnp snowfall]; };
+  MGFM = derive2 { name="MGFM"; version="1.38.0"; sha256="0f6j2bq0zv2lfypd4wbbmapgs132k7yzjw11h9rs6c4llhlk5ns2"; depends=[annotate AnnotationDbi]; };
+  MGFR = derive2 { name="MGFR"; version="1.30.0"; sha256="07g01scd15zprm6ygvj9pjrsj553vk073mjyqvnk6pxy97r7slfa"; depends=[annotate biomaRt]; };
+  MGnifyR = derive2 { name="MGnifyR"; version="1.0.0"; sha256="0siqjril79bcbs90v7ng1j2rzrs4nl5y4wv1ih2cgp464n8agh6a"; depends=[ape BiocGenerics dplyr httr mia MultiAssayExperiment plyr reshape2 S4Vectors SummarizedExperiment tidyjson TreeSummarizedExperiment urltools]; };
+  MICSQTL = derive2 { name="MICSQTL"; version="1.2.2"; sha256="141dgc7k28ig9yw6km7ahjp0zyshg4kp3f6bs0ixnv6566dlb4c9"; depends=[BiocParallel dirmult ggplot2 ggpubr ggridges glue magrittr nnls purrr S4Vectors SummarizedExperiment TCA TOAST]; };
+  MIRA = derive2 { name="MIRA"; version="1.26.0"; sha256="05s4wm7cnjyb1sg6zawp5rxj23ym5kkh95cj79k6cx6l0fb946c0"; depends=[Biobase BiocGenerics bsseq data_table GenomicRanges ggplot2 IRanges S4Vectors]; };
+  MIRit = derive2 { name="MIRit"; version="1.0.0"; sha256="1c6zz24l2l362lkyha9ls7a990dpvpxskyzxz755zkf0q4cpdyn4"; depends=[AnnotationDbi BiocFileCache BiocParallel DESeq2 edgeR fgsea genekitr geneset ggplot2 ggpubr graph graphite httr limma MultiAssayExperiment Rcpp readxl Rgraphviz rlang]; };
+  MLInterfaces = derive2 { name="MLInterfaces"; version="1.84.0"; sha256="1m8clkb5rznzv2fwrl59csq8v0ibqwdm4fphq10b8pmyvj880qpn"; depends=[annotate Biobase BiocGenerics cluster fpc gbm gdata genefilter ggvis hwriter magrittr MASS mlbench pls RColorBrewer Rcpp rpart sfsmisc shiny SummarizedExperiment threejs]; };
+  MLP = derive2 { name="MLP"; version="1.52.0"; sha256="0ij15mcpahgykaalaj954qhk21gd967sngn2ad4wh4h6p99n6902"; depends=[AnnotationDbi gplots]; };
+  MLSeq = derive2 { name="MLSeq"; version="2.22.0"; sha256="0vm4giqqp2iq1w40nkn4bjc81ppdhqhbxq6w6ps3i2rdzwcq49ir"; depends=[Biobase caret DESeq2 edgeR foreach ggplot2 limma pamr plyr sSeq SummarizedExperiment testthat VennDiagram xtable]; };
+  MMDiff2 = derive2 { name="MMDiff2"; version="1.32.0"; sha256="0yamcgjb5k77pkv1b0bja5f2i7aqw12wpyppf1mw9s8mqfx3cl0y"; depends=[Biobase Biostrings BSgenome GenomicRanges ggplot2 locfit RColorBrewer Rsamtools S4Vectors shiny]; };
+  MMUPHin = derive2 { name="MMUPHin"; version="1.18.1"; sha256="0wh998bjbf8zkfrzmrnm8dmm7960w5dnaq1yyc1hl105al0j33aj"; depends=[cowplot dplyr fpc ggplot2 igraph Maaslin2 metafor stringr tidyr]; };
+  MODA = derive2 { name="MODA"; version="1.30.0"; sha256="1cx3jz8hw1zm68cay84gkxq9wlfwfdm9ms70af6hck4fl2spxj66"; depends=[AMOUNTAIN cluster dynamicTreeCut igraph RColorBrewer WGCNA]; };
+  MOFA2 = derive2 { name="MOFA2"; version="1.14.0"; sha256="0sf0vibw44ildxf5rdkqjhw85awl5iz9f62j9z660lf3f8h5v5qq"; depends=[basilisk corrplot cowplot DelayedArray dplyr forcats ggplot2 ggrepel HDF5Array magrittr pheatmap RColorBrewer reshape2 reticulate rhdf5 Rtsne stringi tidyr uwot]; };
+  MOGAMUN = derive2 { name="MOGAMUN"; version="1.14.0"; sha256="0l6pbn89a3pp157fbcwpkihmx869afi0qvm16yjac0mrhwspgbk8"; depends=[BiocParallel igraph RCy3 RUnit stringr]; };
+  MOMA = derive2 { name="MOMA"; version="1.16.0"; sha256="1xbacfm9cikdhhb64l068hi4hcpqvh0g573cm8c3jxicxbgp3swv"; depends=[circlize cluster ComplexHeatmap dplyr ggplot2 magrittr MKmisc MultiAssayExperiment qvalue RColorBrewer readr reshape2 rlang stringr tibble tidyr]; };
+  MOSim = derive2 { name="MOSim"; version="2.0.0"; sha256="0mj53b4m4f2bzspgypiymhk780dcmbrfdrdki46bqjnb124y0c2q"; depends=[cpp11 dplyr edgeR ggplot2 HiddenMarkov IRanges lazyeval matrixStats Rcpp rlang S4Vectors scran Seurat Signac stringi stringr zoo]; };
+  MPFE = derive2 { name="MPFE"; version="1.40.0"; sha256="15sj1r9wa0irkym5z527r7s3krk4y5shgffv9w3fcdj90gqclc23"; depends=[]; };
+  MPRAnalyze = derive2 { name="MPRAnalyze"; version="1.22.0"; sha256="1gswhf7k4y0g28wv3hjwcrg9ms1g4ky0rxdlzli1in8d4cly7154"; depends=[BiocParallel progress SummarizedExperiment]; };
+  MSA2dist = derive2 { name="MSA2dist"; version="1.8.0"; sha256="0bb37mdw671cc7751wfdsslcaz04i3sbjdp3y11n7yl5pmkx1k6b"; depends=[ape Biostrings doParallel dplyr foreach GenomicRanges IRanges pwalign Rcpp RcppThread rlang seqinr stringi stringr tibble tidyr]; };
+  MSPrep = derive2 { name="MSPrep"; version="1.14.0"; sha256="0856s9a268sv2ablqb6s5gc98dl5z171xik1nk7jpx5vdx9iwj5b"; depends=[crmn dplyr magrittr missForest pcaMethods preprocessCore rlang S4Vectors stringr SummarizedExperiment sva tibble tidyr VIM]; };
+  MSnID = derive2 { name="MSnID"; version="1.38.0"; sha256="0misrm4x4z5h8dfwcrwi24nhcjslqvbyk5n7qz6kf2zcgcwq8q44"; depends=[AnnotationDbi AnnotationHub Biobase BiocGenerics BiocStyle Biostrings data_table doParallel dplyr foreach ggplot2 iterators msmsTests MSnbase mzID mzR ProtGenerics purrr R_cache Rcpp reshape2 rlang RUnit stringr tibble xtable]; };
+  MSnbase = derive2 { name="MSnbase"; version="2.30.1"; sha256="0cdvi2mjvhj0h8x2rh3kkzrdnmzhr7d9a41m21r6b843a0q7hp6f"; depends=[affy Biobase BiocGenerics BiocParallel digest ggplot2 impute IRanges lattice MALDIquant MASS MsCoreUtils mzID mzR pcaMethods plyr ProtGenerics PSMatch Rcpp S4Vectors scales vsn]; };
+  MSstats = derive2 { name="MSstats"; version="4.12.0"; sha256="0nrh0hjbsxmf390k5bnniichkwlw3scq8y90bw7hqv21k7wzwfvp"; depends=[checkmate data_table ggplot2 ggrepel gplots htmltools limma lme4 marray MASS MSstatsConvert plotly preprocessCore Rcpp RcppArmadillo statmod survival]; };
+  MSstatsBig = derive2 { name="MSstatsBig"; version="1.2.0"; sha256="1az35hsgij1cgpp6pl198dmlw26ddc1npdzaa5g8mwmdijwl3jz1"; depends=[arrow DBI dplyr MSstats MSstatsConvert readr sparklyr]; };
+  MSstatsConvert = derive2 { name="MSstatsConvert"; version="1.14.0"; sha256="1q2xwik74qdazqmbh5qqcy21s9nq77jjvrc9qhkh1f0iss0r6pzm"; depends=[checkmate data_table log4r stringi]; };
+  MSstatsLOBD = derive2 { name="MSstatsLOBD"; version="1.12.0"; sha256="0jav2x8j07v4zmbwk89l85rycn7k9y0ifb07gzg64v0pkls4341s"; depends=[ggplot2 minpack_lm Rcpp]; };
+  MSstatsLiP = derive2 { name="MSstatsLiP"; version="1.10.0"; sha256="1kpfybpzav4bvy3jb2p3ws899mifjr564jqsdy9s4vbk5pphm9j0"; depends=[Biostrings checkmate data_table dplyr factoextra ggplot2 ggpubr gridExtra MSstats MSstatsConvert MSstatsPTM purrr Rcpp scales stringr tibble tidyr tidyverse]; };
+  MSstatsPTM = derive2 { name="MSstatsPTM"; version="2.6.0"; sha256="0ivcxd2awrswih6n7is7zkcfrqiihk998g081krcp25i832xfqvh"; depends=[Biostrings checkmate data_table dplyr ggplot2 ggrepel gridExtra MSstats MSstatsConvert MSstatsTMT Rcpp stringi stringr]; };
+  MSstatsQC = derive2 { name="MSstatsQC"; version="2.22.0"; sha256="0pp813mx6kwmxyyi67qsak09k012nn05pv60ndx8x6dq9ph8aghn"; depends=[dplyr ggExtra ggplot2 MSnbase plotly qcmetrics]; };
+  MSstatsQCgui = derive2 { name="MSstatsQCgui"; version="1.24.0"; sha256="0kjidspplam63367yc09a17a3gq52rbmfrcnaxnxpiwkl7mphzz0"; depends=[dplyr ggExtra gridExtra MSstatsQC plotly shiny]; };
+  MSstatsShiny = derive2 { name="MSstatsShiny"; version="1.6.2"; sha256="0h79yy5b9n2kfpbc3fhfajfmrqdzghj3ycaparn1v1dzjmi87z9y"; depends=[data_table dplyr DT ggplot2 ggrepel gplots Hmisc htmltools marray mockery MSstats MSstatsConvert MSstatsPTM MSstatsTMT plotly readxl shiny shinyBS shinybusy shinyjs tidyr uuid]; };
+  MSstatsTMT = derive2 { name="MSstatsTMT"; version="2.12.1"; sha256="03nnwh5qbr3wd942yj5xa2gd2bk28ncxq2dri3my5gwsrlfxfxpn"; depends=[checkmate data_table ggplot2 htmltools limma lme4 lmerTest MSstats MSstatsConvert plotly]; };
+  MVCClass = derive2 { name="MVCClass"; version="1.78.0"; sha256="1wi6acw51q48v149l72b2pp0iyjrwq1bbmr53y3m609xfadg4qim"; depends=[]; };
+  MWASTools = derive2 { name="MWASTools"; version="1.28.0"; sha256="1k72ycx0zlflcfpqapvh9m6mk3vc9wl0pbsi4jbcdigl6vx1zixv"; depends=[boot car ComplexHeatmap ggplot2 glm2 gridExtra igraph KEGGgraph KEGGREST ppcor qvalue RCurl SummarizedExperiment]; };
+  Maaslin2 = derive2 { name="Maaslin2"; version="1.18.0"; sha256="0dl6s4lcd40nd7v0d3k3zn0mkm5rlzb8kf2cjxz298mgdif63xqh"; depends=[biglm car chemometrics cplm data_table dplyr edgeR ggplot2 glmmTMB hash lme4 lmerTest logging MASS metagenomeSeq optparse pbapply pcaPP pheatmap pscl robustbase tibble vegan]; };
+  Macarron = derive2 { name="Macarron"; version="1.8.0"; sha256="18k6fxr4iihrxkraf2p01wmmkaahq95yb08bh4f8dw7ji3my50n7"; depends=[BiocParallel data_table DelayedArray dynamicTreeCut ff httr logging Maaslin2 plyr psych RJSONIO SummarizedExperiment WGCNA xml2]; };
+  MantelCorr = derive2 { name="MantelCorr"; version="1.74.0"; sha256="0h1abssaf0c00lsqqm3l4bg0rdsjh3i8famn6hlrigaha62cry7k"; depends=[]; };
+  MassArray = derive2 { name="MassArray"; version="1.56.0"; sha256="0xhq3gqx8h7ijfvji66zwrv6fl87mhdwc228nr3x82zh351gd229"; depends=[]; };
+  MassSpecWavelet = derive2 { name="MassSpecWavelet"; version="1.70.0"; sha256="0ckvnah0ck5z6calgrwk0k3y1nxpcyn41y84kz5bypzr77x6ssj2"; depends=[]; };
+  MatrixGenerics = derive2 { name="MatrixGenerics"; version="1.16.0"; sha256="1r7n5p89460h47mnfh190184dbcmrbj0j5d7dswkfwh6ixan3zyc"; depends=[matrixStats]; };
+  MatrixQCvis = derive2 { name="MatrixQCvis"; version="1.12.0"; sha256="0hghmns8i1yhycr18yxp7b7knbdnf1f705z1pic1ql5llzsi8jzj"; depends=[ComplexHeatmap dplyr ExperimentHub ggplot2 Hmisc htmlwidgets impute imputeLCMD limma MASS pcaMethods plotly proDA rlang rmarkdown Rtsne shiny shinydashboard shinyhelper shinyjs SummarizedExperiment tibble tidyr umap UpSetR vsn]; };
+  MatrixRider = derive2 { name="MatrixRider"; version="1.36.0"; sha256="1v1y4z79kb5a9g8sr1mwzc5i9nf7prk07dnyn88048ddd5il2xgw"; depends=[Biostrings IRanges S4Vectors TFBSTools XVector]; };
+  MeSHDbi = derive2 { name="MeSHDbi"; version="1.40.0"; sha256="0d56i63gcl523715idlm6irspkz3p4xdca0brfys1f56pr55skmw"; depends=[AnnotationDbi Biobase RSQLite]; };
+  MeasurementError_cor = derive2 { name="MeasurementError.cor"; version="1.76.0"; sha256="034n9dfk4a5k4z9g2f90a08rlgk7qgi4i6spp54azlw9gmx4amfs"; depends=[]; };
+  Melissa = derive2 { name="Melissa"; version="1.20.0"; sha256="0aswg1balk65rsnxnsdn65x5l5g1dya7z2n8yqr7agzigdw62pdf"; depends=[assertthat BiocStyle BPRMeth cowplot data_table doParallel foreach GenomicRanges ggplot2 magrittr matrixcalc mclust MCMCpack mvtnorm ROCR truncnorm]; };
+  Mergeomics = derive2 { name="Mergeomics"; version="1.32.0"; sha256="0n5mdnvqqixrrwn1ph89vah81l2afd7wsbsnh5mnhgmm50pjcg1b"; depends=[]; };
+  MesKit = derive2 { name="MesKit"; version="1.14.0"; sha256="0r6a200zyp97vjdk78fch5xmvqbqjmhf9n7cc9y911ifll7md35a"; depends=[AnnotationDbi ape Biostrings circlize ComplexHeatmap cowplot data_table dplyr ggplot2 ggrepel ggridges IRanges mclust phangorn pracma RColorBrewer S4Vectors tidyr]; };
+  MetCirc = derive2 { name="MetCirc"; version="1.34.0"; sha256="1wkmhlxg3gxfxskhhxrm65y6vriggs34523adrsghx1ra0wgyjvf"; depends=[amap circlize ggplot2 MsCoreUtils S4Vectors scales shiny Spectra]; };
+  MetID = derive2 { name="MetID"; version="1.22.0"; sha256="0i6jpn1q0632klpa6817v9xs2kkdvsajhjv6h1p2f6jdx0smsd64"; depends=[ChemmineR devtools igraph Matrix stringr]; };
+  MetNet = derive2 { name="MetNet"; version="1.22.0"; sha256="1dpp9z9h3dkbx9k0hxg5dr9178sbs095kyr2ka5sihxm2in0prrg"; depends=[BiocParallel bnlearn corpcor dplyr GeneNet GENIE3 ggplot2 parmigene psych rlang S4Vectors stabs SummarizedExperiment tibble tidyr]; };
+  MetaCyto = derive2 { name="MetaCyto"; version="1.26.0"; sha256="15yd35ql64ca9ixv6rcq9v6gaaxis9nzx4q2jdij3facrb2ryyfk"; depends=[cluster fastcluster flowCore FlowSOM ggplot2 metafor tidyr]; };
+  MetaNeighbor = derive2 { name="MetaNeighbor"; version="1.24.0"; sha256="0sz15njb0y9vcmbv89k3x2sw4px8nmy3qhqkvyl69kxlcqdicgxi"; depends=[beanplot dplyr ggplot2 gplots igraph Matrix matrixStats RColorBrewer SingleCellExperiment SummarizedExperiment tibble tidyr]; };
+  MetaPhOR = derive2 { name="MetaPhOR"; version="1.6.0"; sha256="0r3zqb7rmw5fnwm6hkpy22gndpn4jd24471acqfsi3a894g0868p"; depends=[clusterProfiler ggplot2 ggrepel pheatmap RCy3 RecordLinkage stringr]; };
+  MetaboAnnotation = derive2 { name="MetaboAnnotation"; version="1.8.1"; sha256="0lsrhyyqsdz27mc6vl0aj78bdj3xh5i3h3dsg9smkhg2m22h3sdf"; depends=[AnnotationHub BiocGenerics BiocParallel CompoundDb MetaboCoreUtils MsCoreUtils ProtGenerics QFeatures S4Vectors Spectra SummarizedExperiment]; };
+  MetaboCoreUtils = derive2 { name="MetaboCoreUtils"; version="1.12.0"; sha256="1y5lq1x60pcvxsl8dim5plzd3y4bqjkcam5hv9614xw0sr4h0r04"; depends=[BiocParallel MsCoreUtils]; };
+  MetaboSignal = derive2 { name="MetaboSignal"; version="1.34.0"; sha256="0ldi6qs0hfnwlpvwc0v0yn3j6gms4kgays8f5fap8vj8nw2gljbj"; depends=[AnnotationDbi biomaRt EnsDb_Hsapiens_v75 hpar igraph KEGGgraph KEGGREST MWASTools mygene org_Hs_eg_db RCurl]; };
+  MethPed = derive2 { name="MethPed"; version="1.32.0"; sha256="13hwdxvmczzr77572pws58590lk09z6sda8144qxlljy4y5ii7zw"; depends=[Biobase randomForest]; };
+  MethReg = derive2 { name="MethReg"; version="1.14.0"; sha256="1fzbrp09d57s2zvxl7jsc8dqwchz43xl0vnxkj2r0q0knlpsbbr2"; depends=[AnnotationHub DelayedArray dplyr ExperimentHub GenomicRanges ggplot2 ggpubr IRanges JASPAR2024 MASS Matrix openxlsx plyr progress pscl readr rlang RSQLite S4Vectors sesame sesameData sfsmisc stringr SummarizedExperiment TFBSTools tibble tidyr]; };
+  MethTargetedNGS = derive2 { name="MethTargetedNGS"; version="1.36.0"; sha256="15bw9bxg99bfmwgfi45qgrp5dk15k44i0s6jp34kwnxkp18010ab"; depends=[Biostrings gplots pwalign seqinr stringr]; };
+  MethylAid = derive2 { name="MethylAid"; version="1.38.0"; sha256="084mnllaj6qp5ai5bmj6wgc90bs270qbzl60sch1f863x8fv9lzr"; depends=[Biobase BiocGenerics BiocParallel ggplot2 gridBase hexbin matrixStats minfi RColorBrewer shiny SummarizedExperiment]; };
+  MethylMix = derive2 { name="MethylMix"; version="2.34.0"; sha256="1mdhqqlbkh24bqz0bxvzih2cnl38nyacrfhsz8mq8ky2j5rsrbg0"; depends=[data_table digest foreach ggplot2 impute limma R_matlab RColorBrewer RCurl RPMM]; };
+  MethylSeekR = derive2 { name="MethylSeekR"; version="1.44.0"; sha256="10b3m0d5z426p74x4hjg4imqg8iic0xjjnjcllwphy0ylk3cpzd5"; depends=[BSgenome geneplotter GenomicRanges IRanges mhsmm rtracklayer]; };
+  Mfuzz = derive2 { name="Mfuzz"; version="2.64.0"; sha256="00sx63bg5qw22vw0yw3syhyl5ffjrqvf81b9ksgw2p0z3yiiss5h"; depends=[Biobase e1071 tkWidgets]; };
+  MiChip = derive2 { name="MiChip"; version="1.58.0"; sha256="0mmb63h29l6xhwwxxlnz6a0p04wsxlskagih11rwmwnwm0blv68k"; depends=[Biobase]; };
+  MiPP = derive2 { name="MiPP"; version="1.76.0"; sha256="12wk4kk7qbba3681ikldivs3np9qvvl0mivqds0dd6l52v1ngj9p"; depends=[Biobase e1071 MASS]; };
+  MiRaGE = derive2 { name="MiRaGE"; version="1.46.0"; sha256="17c3rrq9h2mlhqjcjiyzg88d1giks9iq2vdlsvv6fg9cl4wqpvg1"; depends=[AnnotationDbi Biobase BiocGenerics BiocManager S4Vectors]; };
+  MicrobiomeProfiler = derive2 { name="MicrobiomeProfiler"; version="1.10.0"; sha256="1xz2s2alz61s5hp5fq42m5n3bby89lyp5mr7pgav8xkyiglk471f"; depends=[clusterProfiler config DT enrichplot ggplot2 golem gson htmltools magrittr shiny shinycustomloader shinyWidgets]; };
+  MicrobiotaProcess = derive2 { name="MicrobiotaProcess"; version="1.16.0"; sha256="0jqvxr77c9karq8wm53khs47vwrrvy86q6sl0dpsbydfmjw0blln"; depends=[ape Biostrings cli coin data_table dplyr dtplyr foreach ggfun ggplot2 ggrepel ggsignif ggstar ggtree ggtreeExtra magrittr MASS patchwork pillar plyr rlang SummarizedExperiment tibble tidyr tidyselect tidytree treeio vegan zoo]; };
+  MineICA = derive2 { name="MineICA"; version="1.44.0"; sha256="1qzqfnrf23lrlxmds8hjblj169sylq1m9h07vwlz5zik5mxj6y90"; depends=[annotate AnnotationDbi Biobase BiocGenerics biomaRt cluster colorspace fastICA foreach fpc ggplot2 GOstats graph gtools Hmisc igraph JADE lumi lumiHumanAll_db marray mclust plyr RColorBrewer Rgraphviz scales xtable]; };
+  MinimumDistance = derive2 { name="MinimumDistance"; version="1.48.0"; sha256="1pqf2q5hxjb1dwg981aldl0sw10f86yszp6z511vzx1y70ca6j3h"; depends=[Biobase BiocGenerics data_table DNAcopy ff foreach GenomeInfoDb GenomicRanges IRanges lattice MatrixGenerics matrixStats oligoClasses S4Vectors SummarizedExperiment VanillaICE]; };
+  ModCon = derive2 { name="ModCon"; version="1.12.0"; sha256="06v2ka7rhiqnjdgb7ky6ps2b90j29y1yqsvkk24a6nsd2q8gpkil"; depends=[data_table]; };
+  Modstrings = derive2 { name="Modstrings"; version="1.20.0"; sha256="0yc8gsgxlww2g9z1m6jl02aqmama10fkr2mvibvdi01s5pqwdbky"; depends=[BiocGenerics Biostrings crayon GenomicRanges IRanges S4Vectors stringi stringr XVector]; };
+  MoleculeExperiment = derive2 { name="MoleculeExperiment"; version="1.4.1"; sha256="0w539058lm99z53lkjf9ljk1dr4fp150a9cwa9s9xrax90wpmy6j"; depends=[BiocParallel cli data_table dplyr EBImage ggplot2 magrittr Matrix purrr rhdf5 rjson rlang S4Vectors SpatialExperiment terra]; };
+  Moonlight2R = derive2 { name="Moonlight2R"; version="1.2.0"; sha256="0ff37hjp3llf875z4wym60vanda6gbysqmcp90dcbl33bx0fynja"; depends=[AnnotationHub Biobase BiocGenerics circlize clusterProfiler ComplexHeatmap doParallel DOSE dplyr easyPubMed EpiMix ExperimentHub foreach fuzzyjoin GenomicRanges GEOquery ggplot2 gplots HiveR magrittr org_Hs_eg_db parmigene purrr qpdf randomForest RColorBrewer readr RISmed rtracklayer seqminer stringr tibble tidyHeatmap tidyr]; };
+  MoonlightR = derive2 { name="MoonlightR"; version="1.30.0"; sha256="0jhc7y01qrz3cg2jnjqwgi5cgrh6616q9k3f3hldkq0x6z0z1vwn"; depends=[Biobase circlize clusterProfiler doParallel DOSE foreach GEOquery gplots HiveR limma parmigene randomForest RColorBrewer RISmed SummarizedExperiment TCGAbiolinks]; };
+  Motif2Site = derive2 { name="Motif2Site"; version="1.8.0"; sha256="03rjhrxi016q0k7dzbfwr192sgc6z5kjyqdd6qzdajkpgq6dpi2m"; depends=[BiocGenerics Biostrings BSgenome edgeR GenomeInfoDb GenomicAlignments GenomicRanges IRanges MASS mixtools S4Vectors]; };
+  MotifDb = derive2 { name="MotifDb"; version="1.46.0"; sha256="1m8y76gg80625xz9g9101mfq19glk37p792yzz46807f7g6m8zbh"; depends=[BiocGenerics Biostrings GenomicRanges IRanges rtracklayer S4Vectors splitstackshape]; };
+  MouseFM = derive2 { name="MouseFM"; version="1.14.0"; sha256="0vwccf4fj664vbl0ggps51rac42j7xs5m33szhwdqpik6p2hyz7j"; depends=[biomaRt curl data_table dplyr GenomeInfoDb GenomicRanges ggplot2 gtools httr IRanges jsonlite reshape2 rlist scales tidyr]; };
+  MsBackendMassbank = derive2 { name="MsBackendMassbank"; version="1.12.0"; sha256="0sj378b6jphfamr3850k8f5f22mr50i9r1d94jz2js7y1az10rim"; depends=[BiocParallel DBI IRanges MsCoreUtils ProtGenerics S4Vectors Spectra]; };
+  MsBackendMgf = derive2 { name="MsBackendMgf"; version="1.12.0"; sha256="1rphxis1jxd6295sab0lyx96h3rflwmrz5x1iqzn6pfyzgcr67rz"; depends=[BiocParallel IRanges MsCoreUtils ProtGenerics S4Vectors Spectra]; };
+  MsBackendMsp = derive2 { name="MsBackendMsp"; version="1.8.0"; sha256="1y80r12xsiw678mkjq5x9j9yp4l36w1hv9qxlac6bbhsp4kpbwi4"; depends=[BiocParallel IRanges MsCoreUtils ProtGenerics S4Vectors Spectra]; };
+  MsBackendRawFileReader = derive2 { name="MsBackendRawFileReader"; version="1.10.0"; sha256="17xnbhnvz28ksfw51aba9p9wl5q0y7wl88yxsdhjwc58f3h8a1rn"; depends=[BiocParallel IRanges MsCoreUtils ProtGenerics rawrr S4Vectors Spectra]; };
+  MsBackendSql = derive2 { name="MsBackendSql"; version="1.4.0"; sha256="1ng4ns03a8lbb63rczcl1j9c780vqnhc3plj5v3602xmnrxpadrl"; depends=[BiocGenerics BiocParallel data_table DBI IRanges MsCoreUtils progress ProtGenerics S4Vectors Spectra]; };
+  MsCoreUtils = derive2 { name="MsCoreUtils"; version="1.16.0"; sha256="18m6qbj43p6zsrsdp7in15z3hcnqzqcxbk24qvbq7328rrhdk84a"; depends=[clue MASS Rcpp S4Vectors]; };
+  MsDataHub = derive2 { name="MsDataHub"; version="1.4.0"; sha256="1kxcf7pz8vfidzjqb0czc9znml5nj4bqrbiwrx2j13igrf5v6jnh"; depends=[ExperimentHub]; };
+  MsExperiment = derive2 { name="MsExperiment"; version="1.6.0"; sha256="0dxv3jw5aj1i73vqrp3c031pj26i7rp0q2zs4nq3x1vni349506d"; depends=[BiocGenerics DBI IRanges ProtGenerics QFeatures S4Vectors Spectra SummarizedExperiment]; };
+  MsFeatures = derive2 { name="MsFeatures"; version="1.12.0"; sha256="1prn45vlacj69388psimy0w05a84y8sdry6678pz611sd0ks1gka"; depends=[MsCoreUtils ProtGenerics SummarizedExperiment]; };
+  MsQuality = derive2 { name="MsQuality"; version="1.4.0"; sha256="1khpjzzrrd2b7ngwq43y3sgndmrr6l8f504lyakr46xr1vyzppsl"; depends=[BiocParallel ggplot2 htmlwidgets msdata MsExperiment plotly ProtGenerics rlang rmzqc shiny shinydashboard Spectra stringr tibble tidyr]; };
+  MuData = derive2 { name="MuData"; version="1.8.0"; sha256="0kjin6cfw9aipghd0imi2play19czplwcz2gi5akv6gk9wy98k8x"; depends=[DelayedArray Matrix MultiAssayExperiment rhdf5 S4Vectors SingleCellExperiment SummarizedExperiment]; };
+  Mulcom = derive2 { name="Mulcom"; version="1.54.0"; sha256="1sb6g08k1wlnjiiw9a7hm34izbnh8ar1mh6vxc0jzkwk6522nva2"; depends=[Biobase fields]; };
+  MultiAssayExperiment = derive2 { name="MultiAssayExperiment"; version="1.30.2"; sha256="1j74ql0lz2xf0jsf4cjfapdmxbf6hb22699d3dyj8gwd1s92myjz"; depends=[Biobase BiocBaseUtils BiocGenerics DelayedArray GenomicRanges IRanges S4Vectors SummarizedExperiment tidyr]; };
+  MultiBaC = derive2 { name="MultiBaC"; version="1.14.0"; sha256="0m08620sii9181y0vlcrw9nbcnp4vnjjxvp96iqlgg5fsb23wbl7"; depends=[ggplot2 Matrix MultiAssayExperiment pcaMethods plotrix ropls]; };
+  MultiDataSet = derive2 { name="MultiDataSet"; version="1.32.0"; sha256="1y1j5svi52cvixjsn13122kvd0z0c7zfki3p6rr8wjd5w7riiyqw"; depends=[Biobase BiocGenerics GenomicRanges ggplot2 ggrepel IRanges limma qqman S4Vectors SummarizedExperiment]; };
+  MultiMed = derive2 { name="MultiMed"; version="2.26.0"; sha256="03qcqzkh5jiy46613g29bs7dipgzzparwdcllw1lwssh4y8fvwc0"; depends=[]; };
+  MultiRNAflow = derive2 { name="MultiRNAflow"; version="1.2.0"; sha256="0i7zs0gd8p927zcdsx85wdk3wi4ywg4s4y3ichqqidqs01hdxccd"; depends=[Biobase ComplexHeatmap DESeq2 factoextra FactoMineR ggalluvial ggplot2 ggplotify ggrepel gprofiler2 Mfuzz plot3D plot3Drgl reshape2 S4Vectors SummarizedExperiment UpSetR]; };
+  MultimodalExperiment = derive2 { name="MultimodalExperiment"; version="1.4.0"; sha256="0zik59sh26ycbsagcvwzhb9g4aqvkbygigpzy8d9i0gss0rvvljp"; depends=[BiocGenerics IRanges MultiAssayExperiment S4Vectors]; };
+  MungeSumstats = derive2 { name="MungeSumstats"; version="1.12.0"; sha256="16msjxxmnzycj2nny35lvwvlxw1n4ga8g1wn4fcfv7xg4ad6vy4v"; depends=[Biostrings BSgenome data_table dplyr GenomeInfoDb GenomicRanges googleAuthR httr IRanges jsonlite magrittr R_utils RCurl rtracklayer stringr VariantAnnotation]; };
+  MutationalPatterns = derive2 { name="MutationalPatterns"; version="3.14.0"; sha256="0smf4l023ckwsm5ckrqqw7kjyi1awp378mzhab7v8nk9n5smsj61"; depends=[BiocGenerics Biostrings BSgenome cowplot dplyr GenomeInfoDb GenomicRanges ggalluvial ggdendro ggplot2 IRanges magrittr NMF pracma purrr RColorBrewer S4Vectors stringr tibble tidyr VariantAnnotation]; };
+  NADfinder = derive2 { name="NADfinder"; version="1.28.0"; sha256="18bq7jf7f89263s4f4ib3qzlpwxsp181zjjm0cblkhjs7lw8p2zh"; depends=[ATACseqQC baseline BiocGenerics corrplot csaw EmpiricalBrownsMethod GenomeInfoDb GenomicAlignments GenomicRanges IRanges limma metap Rsamtools rtracklayer S4Vectors signal SummarizedExperiment trackViewer]; };
+  NBAMSeq = derive2 { name="NBAMSeq"; version="1.20.0"; sha256="1iglbxv7wcgn7lwah8jd1q7gsrqjr3874nivl1msla35hkqw4v9a"; depends=[BiocParallel DESeq2 genefilter mgcv S4Vectors SummarizedExperiment]; };
+  NCIgraph = derive2 { name="NCIgraph"; version="1.52.0"; sha256="16kkg568hdjsn4jq9hd9gl1n31wavshn79bpwhg5jxci288zgai0"; depends=[graph KEGGgraph R_oo RBGL RCy3]; };
+  NOISeq = derive2 { name="NOISeq"; version="2.48.0"; sha256="1aph4phg58f4kpgavrxnn6dzh3lgms8sbjvip4f3gn8xs0p01mbz"; depends=[Biobase Matrix]; };
+  NPARC = derive2 { name="NPARC"; version="1.16.0"; sha256="0giq5nxqnsqppz12adln7kvdb8lifch57wg6avdl88xrdzpl3vfw"; depends=[BiocParallel broom dplyr magrittr MASS rlang tidyr]; };
+  NTW = derive2 { name="NTW"; version="1.54.0"; sha256="1knkqrs3rlhl9qvp6670hc7qhgyi6pmcs47xcivpn2jk6ss00xhk"; depends=[mvtnorm]; };
+  NanoMethViz = derive2 { name="NanoMethViz"; version="3.0.2"; sha256="0nlbkikmxdq08m24sch8cy10m63v33536p5rx1zy5c4f4pa86yrw"; depends=[AnnotationDbi assertthat BiocSingular Biostrings bsseq cli cpp11 data_table dbscan dplyr e1071 forcats fs GenomicRanges ggplot2 ggrastr glue IRanges limma patchwork purrr R_utils Rcpp readr rlang Rsamtools S4Vectors scales scico stringr SummarizedExperiment tibble tidyr withr zlibbioc]; };
+  NanoStringDiff = derive2 { name="NanoStringDiff"; version="1.34.0"; sha256="0rasmzc12xl6mh9l2989wgp9q30665iqqgxr1fy6r57j7hixwbc1"; depends=[Biobase matrixStats Rcpp]; };
+  NanoStringNCTools = derive2 { name="NanoStringNCTools"; version="1.12.0"; sha256="1n1zc99v5xzd89q512v24wa7gmbgdp8g9aixvh6cjismah0vpgjr"; depends=[Biobase BiocGenerics Biostrings ggbeeswarm ggiraph ggplot2 ggthemes IRanges pheatmap RColorBrewer S4Vectors]; };
+  NanoTube = derive2 { name="NanoTube"; version="1.10.0"; sha256="1i5fs2lkqmyl0hb1s6f56z3wmwhmvw2mkygl3ibn0qwfh460l4f1"; depends=[Biobase fgsea ggplot2 limma reshape]; };
+  Nebulosa = derive2 { name="Nebulosa"; version="1.14.0"; sha256="0m5z6rribsrk9mzcksjh0nmpf4d0x0hn8jd80h0hj0hj8sj1ifgv"; depends=[ggplot2 ggrastr ks Matrix patchwork SeuratObject SingleCellExperiment SummarizedExperiment]; };
+  NetActivity = derive2 { name="NetActivity"; version="1.6.0"; sha256="0hssxa9i5c090929mnjs7nqn56fmg7qhq0iknfrl9d0wvpibm3bh"; depends=[airway DelayedArray DelayedMatrixStats DESeq2 NetActivityData SummarizedExperiment]; };
+  NetPathMiner = derive2 { name="NetPathMiner"; version="1.40.0"; sha256="1fv4ijiksp2ff5sxjgp1bfzxfcqr853nrsdgfn0i8zqz9ba20a6p"; depends=[igraph]; };
+  NetSAM = derive2 { name="NetSAM"; version="1.44.0"; sha256="07l5cgl72mkh3j96lciwalsb0ps0bs7rfxzm78m5279palawf6vb"; depends=[AnnotationDbi biomaRt DBI doParallel foreach GO_db igraph R2HTML seriation survival WGCNA]; };
+  NeuCA = derive2 { name="NeuCA"; version="1.10.0"; sha256="0k5bqdrja3x238fyrd7dm5jm94igh25b0ipb2zj6scpa4m15n67l"; depends=[e1071 kableExtra keras limma SingleCellExperiment]; };
+  NewWave = derive2 { name="NewWave"; version="1.14.0"; sha256="03m6dd0p2d542k36jwvz9ik8cddw1q3dz9ghqy0w1dbf685r0kf0"; depends=[BiocSingular DelayedArray irlba Matrix SharedObject SingleCellExperiment SummarizedExperiment]; };
+  NoRCE = derive2 { name="NoRCE"; version="1.16.0"; sha256="0di23zmjfba4nmbbkcn2xhqamxxn4hfkhyh3skc46b66rl1yjy3n"; depends=[AnnotationDbi biomaRt DBI dbplyr dplyr GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 GO_db igraph IRanges KEGGREST png RCurl reactome_db readr reshape2 RSQLite rtracklayer rWikiPathways S4Vectors stringr SummarizedExperiment tidyr zlibbioc]; };
+  NormalyzerDE = derive2 { name="NormalyzerDE"; version="1.22.0"; sha256="1kiwyf8fkdp7bml4b5f32schyl0s5c0b1ag4g826rakh487sb69b"; depends=[ape Biobase car ggforce ggplot2 limma MASS matrixStats preprocessCore SummarizedExperiment vsn]; };
+  NormqPCR = derive2 { name="NormqPCR"; version="1.50.0"; sha256="1fl7qm6qmzxvv41qd1y8ds3r6dqk39rqgh6sl8imbggmnpb27j9h"; depends=[Biobase qpcR RColorBrewer ReadqPCR]; };
+  NuPoP = derive2 { name="NuPoP"; version="2.12.0"; sha256="1w6q7ms57wixw5w3fx74qc6l8mgcklysqq1s6jg69mipwgch62hm"; depends=[]; };
+  OCplus = derive2 { name="OCplus"; version="1.78.0"; sha256="0bqa1rml6vj6sw27pxlhjjsfx2cyi2lv6v4hykdcc8kgh8a1r8dm"; depends=[interp multtest]; };
+  OGRE = derive2 { name="OGRE"; version="1.8.0"; sha256="07xkprp1hjhavj9d360yhybpq9ghz0wxwaxlicpidm788nvksxqv"; depends=[AnnotationHub assertthat data_table DT GenomeInfoDb GenomicRanges ggplot2 Gviz IRanges rtracklayer S4Vectors shiny shinyBS shinydashboard shinyFiles tidyr]; };
+  OLIN = derive2 { name="OLIN"; version="1.82.0"; sha256="05s28by46adrizrglfsr9m26jiygkyp0dabdr62nasjmqzidwf80"; depends=[limma locfit marray]; };
+  OLINgui = derive2 { name="OLINgui"; version="1.78.0"; sha256="0fcpy0g95l0h2id13dra46zyphyjdh2m7gw9i38i5jnr4arhy95z"; depends=[marray OLIN tkWidgets widgetTools]; };
+  OMICsPCA = derive2 { name="OMICsPCA"; version="1.22.0"; sha256="0m5b6msnkvvv0lpj8zm976yqa5pd2vzkhpgzx58f95dbcaxpxflq"; depends=[cluster clValid corrplot cowplot data_table factoextra FactoMineR fpc GenomeInfoDb ggplot2 HelloRanges IRanges kableExtra magick MASS MultiAssayExperiment NbClust OMICsPCAdata pdftools PerformanceAnalytics reshape2 rgl rmarkdown rtracklayer tidyr]; };
+  OPWeight = derive2 { name="OPWeight"; version="1.26.0"; sha256="11lrks7wrvzi3i0f1hnky386x60j5vnz8i73dng1fzb64n41mla8"; depends=[MASS qvalue tibble]; };
+  ORFhunteR = derive2 { name="ORFhunteR"; version="1.12.0"; sha256="0ahs8j1qlfxblkbvxfd9836l72icr8lqaywpih9s4slx6j38l53p"; depends=[Biostrings BSgenome_Hsapiens_UCSC_hg38 data_table Peptides randomForest Rcpp rtracklayer stringr xfun]; };
+  ORFik = derive2 { name="ORFik"; version="1.24.0"; sha256="0cm1rb4l0kciw8h1555qbixh9krwdnbgbvrb4dq753yjc3wdizfx"; depends=[AnnotationDbi BiocFileCache BiocGenerics BiocParallel biomaRt biomartr Biostrings BSgenome cowplot curl data_table DESeq2 downloader fst GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 gridExtra httr IRanges jsonlite R_utils Rcpp RCurl Rsamtools rtracklayer S4Vectors SummarizedExperiment txdbmaker withr XML xml2]; };
+  OSAT = derive2 { name="OSAT"; version="1.52.0"; sha256="0bap6n61wzrkbl1cvlfwrnzgvdgkfzfa37fb5r22ynyv847jhl7n"; depends=[]; };
+  OTUbase = derive2 { name="OTUbase"; version="1.54.0"; sha256="02hbz9xhhmggbvkgc41s91fwd9xr7li0215mn1axbfcr7dxppziq"; depends=[Biobase Biostrings IRanges S4Vectors ShortRead vegan]; };
+  OUTRIDER = derive2 { name="OUTRIDER"; version="1.22.0"; sha256="1zdv48ms62sy6pv24xnx5jf0286dr68zglckl38na2gvqymn8zj4"; depends=[BBmisc BiocGenerics BiocParallel data_table DESeq2 generics GenomicFeatures GenomicRanges ggplot2 ggrepel heatmaply IRanges matrixStats pcaMethods pheatmap plotly plyr PRROC RColorBrewer Rcpp RcppArmadillo reshape2 S4Vectors scales SummarizedExperiment txdbmaker]; };
+  OVESEG = derive2 { name="OVESEG"; version="1.20.0"; sha256="0bj2d8i5b9y3zrcpm7qapdywd1s3zgqiikz4by1l7832z7r2imyx"; depends=[BiocParallel fdrtool limma Rcpp SummarizedExperiment]; };
+  OmaDB = derive2 { name="OmaDB"; version="2.20.0"; sha256="093hqayqa0gb3m6yckqa75i9ha9laxlkpjj4y64nzgja1ny2g17b"; depends=[ape Biostrings GenomicRanges httr IRanges jsonlite plyr topGO]; };
+  OmicCircos = derive2 { name="OmicCircos"; version="1.42.0"; sha256="0iqq9ds69vlm7fhhd72cvnj4pg07g6c2rkhvbbl6r1w8z33b26hs"; depends=[GenomicRanges]; };
+  Omixer = derive2 { name="Omixer"; version="1.14.0"; sha256="1y87kb08syq45amm8cxxp2sjfi24isl4f0cl8ik0qisbm9ycw09k"; depends=[dplyr forcats ggplot2 gridExtra magrittr readr stringr tibble tidyselect]; };
+  OmnipathR = derive2 { name="OmnipathR"; version="3.11.10"; sha256="1izy0ycrvac0k67dxq8879rbdghkrczd3s2g5v607js7bmfxybjz"; depends=[checkmate crayon curl digest dplyr httr igraph jsonlite later logger lubridate magrittr progress purrr rappdirs readr readxl rlang rmarkdown rvest stringi stringr tibble tidyr tidyselect withr xml2 yaml]; };
+  OncoScore = derive2 { name="OncoScore"; version="1.32.0"; sha256="1n7rlng6jqrxsas2zs94jfmgwgs6yaxavn14q112qinlmjxcdfxp"; depends=[biomaRt]; };
+  OncoSimulR = derive2 { name="OncoSimulR"; version="4.6.0"; sha256="1j7d7ajlalhiwn12kpbagx8f0gnfsals4p5bkiik7a5ybwann33r"; depends=[car data_table dplyr ggplot2 ggrepel graph gtools igraph RColorBrewer Rcpp Rgraphviz smatr stringr]; };
+  OpenStats = derive2 { name="OpenStats"; version="1.16.0"; sha256="1hxazy0rf0rvvr1ivw33fi72099x3blzzzwymckxhqskmsj52120"; depends=[AICcmodavg car Hmisc jsonlite knitr MASS nlme rlist summarytools]; };
+  OrderedList = derive2 { name="OrderedList"; version="1.76.0"; sha256="0g604sdjwz3p5r95slp98a87sb3clinpwj76xbrdmahbjcz1gm6s"; depends=[Biobase twilight]; };
+  Organism_dplyr = derive2 { name="Organism.dplyr"; version="1.32.0"; sha256="03z5pyqbaxwyrq5m858c8k69fwvclq98ksr84dc4m7r8lzz2hfxx"; depends=[AnnotationDbi AnnotationFilter BiocFileCache DBI dbplyr dplyr GenomeInfoDb GenomicFeatures GenomicRanges IRanges rlang RSQLite S4Vectors tibble]; };
+  OrganismDbi = derive2 { name="OrganismDbi"; version="1.46.0"; sha256="1cfh632rpmklmyd5cibwiy0i2pk2kk2m39g8mq5sxfwd2am4r0jk"; depends=[AnnotationDbi Biobase BiocGenerics BiocManager DBI GenomicFeatures GenomicRanges graph IRanges RBGL S4Vectors txdbmaker]; };
+  Oscope = derive2 { name="Oscope"; version="1.34.0"; sha256="16d2ngakdg73rdx0bf1pz3z1n8npjzl3b7dn94g9zbayw4vp3x5z"; depends=[BiocParallel cluster EBSeq testthat]; };
+  OutSplice = derive2 { name="OutSplice"; version="1.4.0"; sha256="1kln52s2a0icvsna2ip08gsmggbbp8arj4mnpaj068ff6maa4hy6"; depends=[AnnotationDbi GenomicFeatures GenomicRanges IRanges org_Hs_eg_db S4Vectors TxDb_Hsapiens_UCSC_hg19_knownGene TxDb_Hsapiens_UCSC_hg38_knownGene]; };
+  PAA = derive2 { name="PAA"; version="1.38.0"; sha256="1afkvcb4d5iqzmn1nk51kn9xmwpbps00ymarsj3bc7zlf9aani4c"; depends=[e1071 gplots gtools limma MASS mRMRe randomForest Rcpp ROCR sva]; };
+  PADOG = derive2 { name="PADOG"; version="1.46.0"; sha256="0rm8zyvgipb22z47nxyalfpdww8c7360zbmx4n7g3lnd2v8csgks"; depends=[AnnotationDbi Biobase doRNG foreach GSA hgu133a_db hgu133plus2_db KEGGdzPathwaysGEO KEGGREST limma nlme]; };
+  PAIRADISE = derive2 { name="PAIRADISE"; version="1.20.0"; sha256="1dj5rx6jhcr3k9szhvaqc1savfbpqbm9q4i6n18mj23wzvvqhrp4"; depends=[abind BiocParallel nloptr S4Vectors SummarizedExperiment]; };
+  PANR = derive2 { name="PANR"; version="1.50.0"; sha256="14s6ldpxvzkxh356s5i40sx4x286g81qjyfsd2ax4y32kk7qdb7r"; depends=[igraph MASS pvclust RedeR]; };
+  PAST = derive2 { name="PAST"; version="1.20.0"; sha256="01d7lw7x0wfszpi9lnq9alpba3d54z6lcai4fpdn4y53diamaygy"; depends=[doParallel dplyr foreach GenomicRanges ggplot2 iterators qvalue rlang rtracklayer S4Vectors]; };
+  PCAN = derive2 { name="PCAN"; version="1.32.0"; sha256="1iawwvvm55fkipmkfwq64s5lbzxk2l229x3idzb1gvvjrkqk9lb7"; depends=[BiocParallel]; };
+  PCAtools = derive2 { name="PCAtools"; version="2.16.0"; sha256="04a1fvwgqxzf7992lyh9qzz2z2fgmfwfjvpw5xr21pcrpas57l2r"; depends=[beachmat BH BiocParallel BiocSingular cowplot DelayedArray DelayedMatrixStats dqrng ggplot2 ggrepel lattice Matrix Rcpp reshape2]; };
+  PDATK = derive2 { name="PDATK"; version="1.12.0"; sha256="079gdwh9m90r5b0p0szqv222sgdmjr6s3sz19l5xz0435r7h53nv"; depends=[BiocGenerics BiocParallel caret clusterRepro ConsensusClusterPlus CoreGx data_table dplyr genefu ggplot2 ggplotify igraph MatrixGenerics matrixStats MultiAssayExperiment piano plyr pROC RColorBrewer reportROC rlang S4Vectors scales SummarizedExperiment survcomp survival survminer switchBox verification]; };
+  PECA = derive2 { name="PECA"; version="1.40.0"; sha256="0vx17yhls9ccmp0mns7w89dq49d3alqnzxvq3kvhjrdxnhgdn5d1"; depends=[affy aroma_affymetrix aroma_core genefilter limma preprocessCore ROTS]; };
+  PICS = derive2 { name="PICS"; version="2.48.0"; sha256="16vf27fjrvmhfjndn3d706w6a3fd10nsmg6zmj1cch13c863xr13"; depends=[GenomicAlignments GenomicRanges IRanges Rsamtools]; };
+  PING = derive2 { name="PING"; version="2.48.0"; sha256="1r09afnm6m9s9z7f0g6wsm677pc681j985psddzgqfmcdwbz75i3"; depends=[BiocGenerics BSgenome fda GenomicRanges Gviz IRanges PICS S4Vectors]; };
+  PIPETS = derive2 { name="PIPETS"; version="1.0.0"; sha256="12cbjmdgbjif3kjm9km55nvnb0srw8nzcf3x3gw86v1wi718jzv7"; depends=[BiocGenerics dplyr GenomicRanges]; };
+  PIUMA = derive2 { name="PIUMA"; version="1.0.0"; sha256="10b8d8525pz7bl8kg5ga0ca2ngns7g9ik2grhvx920mza7pail46"; depends=[cluster dbscan ggplot2 Hmisc igraph kernlab patchwork scales SummarizedExperiment tsne umap vegan]; };
+  PLPE = derive2 { name="PLPE"; version="1.64.0"; sha256="06g8qrxmd29f8skzll3k5lz68j97466n1wpv7qd2ibpl4hi6zyg0"; depends=[Biobase LPE MASS]; };
+  PLSDAbatch = derive2 { name="PLSDAbatch"; version="1.0.0"; sha256="15zaxr8qv5rp04r8430bl8llkdx4vhwkjn8bl8a8sv6q39vvqvys"; depends=[Biobase BiocStyle ggplot2 ggpubr gridExtra lmerTest mixOmics performance pheatmap Rdpack scales TreeSummarizedExperiment vegan]; };
+  POMA = derive2 { name="POMA"; version="1.14.0"; sha256="1g9xsmg3zv5h7l2wxk4zm4fsihzah8phg33p2hhqbinzkzk6pbkw"; depends=[broom caret ComplexHeatmap dbscan DESeq2 dplyr FSA ggplot2 ggrepel glmnet impute janitor limma lme4 magrittr MASS mixOmics randomForest RankProd rlang SummarizedExperiment sva tibble tidyr uwot vegan]; };
+  POWSC = derive2 { name="POWSC"; version="1.12.0"; sha256="01jh4lhipkj5iga3vp0m42klpi8160mbzsqb5b029h7sil8n3w94"; depends=[Biobase ggplot2 limma MAST pheatmap RColorBrewer SingleCellExperiment SummarizedExperiment]; };
+  PPInfer = derive2 { name="PPInfer"; version="1.30.0"; sha256="1b5x9z2w9vpnkbmgh05lxpg1pkjhxnsxaz86ma018czicarxqcx3"; depends=[biomaRt fgsea ggplot2 httr igraph kernlab STRINGdb yeastExpData]; };
+  PREDA = derive2 { name="PREDA"; version="1.50.0"; sha256="17xcaw5spcl41dgilpx6cq9df1zzzrk4x6xaxpa5pmmfn7gfk4zv"; depends=[annotate Biobase lokern multtest]; };
+  PROMISE = derive2 { name="PROMISE"; version="1.56.0"; sha256="1r9pcilq5vdq958gwcp29q2mc7w55l3xpn76acnnrh3xkg9gm8rf"; depends=[Biobase GSEABase]; };
+  PROPER = derive2 { name="PROPER"; version="1.36.0"; sha256="1haqz50cdd3inmjw4ifj171rx1097bxw8mkgvx07kc7vx9ypn11s"; depends=[edgeR]; };
+  PROPS = derive2 { name="PROPS"; version="1.26.0"; sha256="10xzvw2m9i7h7y227xqkzc41d6ajpzqwciwn6dkg5mgagss42367"; depends=[Biobase bnlearn reshape2 sva]; };
+  PROcess = derive2 { name="PROcess"; version="1.80.0"; sha256="0ra9rjc6525df0hn7c09fzi6qnmnwcrycng49yy151l72yy8kiki"; depends=[Icens]; };
+  PSMatch = derive2 { name="PSMatch"; version="1.8.0"; sha256="13w145is3d95392qqdq6qh3mrlcixbj0jzz4r590xas1qjp5d03h"; depends=[BiocGenerics BiocParallel igraph Matrix MsCoreUtils ProtGenerics QFeatures S4Vectors]; };
+  PWMEnrich = derive2 { name="PWMEnrich"; version="4.40.0"; sha256="0fzmsm880w1vwbjcakc5mkljx41rpk8m71g49kwmjgb1z36173m2"; depends=[BiocGenerics Biostrings evd gdata S4Vectors seqLogo]; };
+  PanViz = derive2 { name="PanViz"; version="1.6.0"; sha256="1h4fxqxkaph5j3vkfhmmkhvmqa8czzdzxcg6f06v94hqf38i86i5"; depends=[colorspace data_table dplyr easycsv futile_logger igraph magrittr RColorBrewer rentrez rlang stringr tibble tidyr]; };
+  PanomiR = derive2 { name="PanomiR"; version="1.8.0"; sha256="0hzhhrknspdw81dn48xqx532n27lj88k57ydsfxfm6rkix87pv96"; depends=[clusterProfiler dplyr forcats GSEABase igraph limma metap org_Hs_eg_db preprocessCore RColorBrewer rlang tibble withr]; };
+  Path2PPI = derive2 { name="Path2PPI"; version="1.34.0"; sha256="0ys63k4637pr9qv037vmvv39qwxpi94rpaqffj64r0z32hi34445"; depends=[igraph]; };
+  PathNet = derive2 { name="PathNet"; version="1.44.0"; sha256="1ad0x8amp5kh4hync86w3kikhqx2j97hsgpb2qy81dn83kbfbdwd"; depends=[]; };
+  PathoStat = derive2 { name="PathoStat"; version="1.30.0"; sha256="1y3gzv4nq9jykdl07mabw51m60g267hb5sjjn3p9g7r6ysasj8c2"; depends=[ape BiocStyle ComplexHeatmap corpcor DESeq2 devtools dplyr DT edgeR ggplot2 glmnet gmodels knitr limma matrixStats phyloseq plotly plyr RColorBrewer rentrez reshape2 ROCR scales shiny shinyjs tidyr vegan webshot XML]; };
+  PeacoQC = derive2 { name="PeacoQC"; version="1.14.0"; sha256="1r354h8lmp0r2nlvr9xj45dm8gbqrsfhl2p3wc9gvldsllq7z3ix"; depends=[circlize ComplexHeatmap flowCore flowWorkspace ggplot2 gridExtra plyr]; };
+  Pedixplorer = derive2 { name="Pedixplorer"; version="1.0.0"; sha256="0nkvypb1gh0b43p864c9rnfbvsdc9jb2jr3c0jrg33crxjf6rmr0"; depends=[dplyr ggplot2 Matrix plyr quadprog S4Vectors stringr testthat tidyr]; };
+  PepsNMR = derive2 { name="PepsNMR"; version="1.22.0"; sha256="0z3kw8j972zmrcyikag5js20zpgc3l5bgkn5q31dzi1q7ynpkwhv"; depends=[ggplot2 gridExtra Matrix matrixStats ptw reshape2]; };
+  PhIPData = derive2 { name="PhIPData"; version="1.12.0"; sha256="1ar7fdsxngdyikcvi7j230jqfhdvji4cvfrxkn606wy764mrpyrm"; depends=[BiocFileCache BiocGenerics cli edgeR GenomicRanges IRanges S4Vectors SummarizedExperiment]; };
+  PharmacoGx = derive2 { name="PharmacoGx"; version="3.8.0"; sha256="098zg2c8xiw6v8fc072cnwlls5q762yjykaf6cjhyrz00bqxmvh1"; depends=[Biobase BiocGenerics BiocParallel boot caTools checkmate coop CoreGx data_table downloader ggplot2 jsonlite magicaxis MultiAssayExperiment RColorBrewer Rcpp reshape2 S4Vectors SummarizedExperiment]; };
+  PhenStat = derive2 { name="PhenStat"; version="2.40.0"; sha256="0dpnij94h808aab8pyvvk7lnfn00f1hkisaasv28blj14fml63s8"; depends=[car corrplot ggplot2 graph knitr lme4 logistf MASS msgps nlme nortest pingr reshape SmoothWin]; };
+  PhenoGeneRanker = derive2 { name="PhenoGeneRanker"; version="1.12.0"; sha256="1l85ibg1nm4dvwjc7b1gqmq6z5yrg3phfr24i23fzlddbwyx75hh"; depends=[doParallel dplyr foreach igraph Matrix]; };
+  PhosR = derive2 { name="PhosR"; version="1.14.0"; sha256="05lc2l65nl15250f39rw7pcsfxw74rcakb6gg5wcp515iv13li07"; depends=[BiocGenerics circlize dendextend dplyr e1071 GGally ggdendro ggplot2 ggpubr ggtext igraph limma network pcaMethods pheatmap preprocessCore RColorBrewer reshape2 rlang ruv S4Vectors stringi SummarizedExperiment tidyr]; };
+  PhyloProfile = derive2 { name="PhyloProfile"; version="1.18.0"; sha256="04z6k0i28d48v1d7n7zgxkb9n1747k27h5b5zlj8id8w293ggcaa"; depends=[ape BiocStyle bioDist Biostrings colourpicker data_table DT energy ExperimentHub ggplot2 gridExtra OmaDB pbapply plyr RColorBrewer RCurl shiny shinyBS shinycssloaders shinyFiles shinyjs stringr xml2 yaml zoo]; };
+  Pigengene = derive2 { name="Pigengene"; version="1.30.0"; sha256="08jgn7cx3gvxsih8jp9xh1irf7f0j0yfw4srbc6ynffc0197papc"; depends=[BiocStyle bnlearn C50 clusterProfiler DBI DOSE dplyr gdata ggplot2 GO_db graph impute MASS matrixStats openxlsx partykit pheatmap preprocessCore ReactomePA Rgraphviz WGCNA]; };
+  PoDCall = derive2 { name="PoDCall"; version="1.12.0"; sha256="121clnkr598p7iy91s0dp76ammz853p2cds0zy15pjj8n21rc7lv"; depends=[diptest DT ggplot2 gridExtra LaplacesDemon mclust purrr readr rlist shiny shinyjs]; };
+  PrInCE = derive2 { name="PrInCE"; version="1.20.0"; sha256="173vakwqjalh2spz1f7qq6ngw8hjkqpj4zf0rx6xsnycjn54jip0"; depends=[Biobase dplyr forecast Hmisc LiblineaR magrittr MSnbase naivebayes progress purrr ranger Rdpack robustbase speedglm tester tidyr]; };
+  Prostar = derive2 { name="Prostar"; version="1.36.2"; sha256="140whr7klab1as5y8h9lbmlgn4f63kfdfhzjyxjp8pk3aq1xv53i"; depends=[Biobase colourpicker DAPAR DAPARdata data_table DT future ggplot2 gplots gtools highcharter htmlwidgets later markdown promises R_utils rclipboard RColorBrewer rhandsontable sass shiny shinyAce shinyBS shinycssloaders shinyjqui shinyjs shinythemes shinyTree shinyWidgets tibble vioplot webshot XML]; };
+  ProtGenerics = derive2 { name="ProtGenerics"; version="1.36.0"; sha256="0h0i4dgsgvyhma5pfvycv6wyxv27vp0b2i8b6l8hj55z8cvmvfln"; depends=[]; };
+  ProteoDisco = derive2 { name="ProteoDisco"; version="1.10.0"; sha256="10cdniinadihp4acdz22c0zjg3if3rqn9cy753f2x1nq539n3vql"; depends=[BiocGenerics BiocParallel Biostrings checkmate cleaver dplyr GenomeInfoDb GenomicFeatures GenomicRanges IRanges ParallelLogger plyr rlang S4Vectors tibble tidyr VariantAnnotation XVector]; };
+  ProteoMM = derive2 { name="ProteoMM"; version="1.22.0"; sha256="173nqg0nqdgy7z9qklxk88lxmhj7qf8jjcidpllf9hap9y1lk910"; depends=[biomaRt gdata ggplot2 ggrepel gtools matrixStats]; };
+  PureCN = derive2 { name="PureCN"; version="2.10.0"; sha256="1vywvl90nvqlzbamn6g6iparn3b09zkz95sw13rgp8qlqc192nbf"; depends=[Biobase BiocGenerics Biostrings data_table DNAcopy futile_logger GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 gridExtra IRanges Matrix mclust RColorBrewer rhdf5 Rsamtools rtracklayer S4Vectors SummarizedExperiment VariantAnnotation VGAM]; };
+  Pviz = derive2 { name="Pviz"; version="1.38.0"; sha256="1hshfgnidshwfka8l0fs4x4znpmmdi42wnkrrl6rhchj9dymjcnr"; depends=[Biostrings biovizBase data_table GenomicRanges Gviz IRanges]; };
+  QDNAseq = derive2 { name="QDNAseq"; version="1.40.0"; sha256="1myk6qgl45ya7qw6sx6xc98d8m5ffl2ghm3zvqmyh9r0sp6x184f"; depends=[Biobase CGHbase CGHcall DNAcopy future_apply GenomicRanges IRanges matrixStats R_utils Rsamtools]; };
+  QFeatures = derive2 { name="QFeatures"; version="1.14.1"; sha256="1sgvabfad3zibrg449y7hw8l59yb2d8q01x7lp841m45b1g0q9d8"; depends=[AnnotationFilter Biobase BiocGenerics igraph IRanges lazyeval MsCoreUtils MultiAssayExperiment plotly ProtGenerics reshape2 S4Vectors SummarizedExperiment tidyr tidyselect]; };
+  QSutils = derive2 { name="QSutils"; version="1.22.0"; sha256="10z7cmhaqn4cp2lw3xq1mhjcjbph2lsprdz8k9q3qkmxgzl3anik"; depends=[ape BiocGenerics Biostrings psych pwalign]; };
+  QTLExperiment = derive2 { name="QTLExperiment"; version="1.2.0"; sha256="1kns5kgfazfyg3bf19hvkqngq4n6xzqww5aya2h8bakl53bzk2sc"; depends=[ashr BiocGenerics checkmate collapse dplyr rlang S4Vectors SummarizedExperiment tibble tidyr vroom]; };
+  QUBIC = derive2 { name="QUBIC"; version="1.32.0"; sha256="1dqg7vdpmsjd5prswz7g223q0wzwih44k8fz2cy5a83cdc1c7xl2"; depends=[biclust Matrix Rcpp RcppArmadillo]; };
+  Qtlizer = derive2 { name="Qtlizer"; version="1.18.0"; sha256="0m307wfjqg7rrgsxvphggy1vd3l9l58vknjqnc63j02qr0wsw43m"; depends=[curl GenomicRanges httr stringi]; };
+  QuartPAC = derive2 { name="QuartPAC"; version="1.36.0"; sha256="0ha8gv7a6ia4z2z2r7404hngc1sy269hrpj9gdxwhj7hl15nqs30"; depends=[Biostrings data_table GraphPAC iPAC pwalign SpacePAC]; };
+  QuasR = derive2 { name="QuasR"; version="1.44.0"; sha256="116qnp7d7z4a56fv6n55yzrdlmma9gwrw234nmy8iapkn5ms3xky"; depends=[AnnotationDbi Biobase BiocGenerics BiocParallel Biostrings BSgenome GenomeInfoDb GenomicFeatures GenomicFiles GenomicRanges IRanges Rbowtie Rhtslib Rsamtools rtracklayer S4Vectors ShortRead txdbmaker]; };
+  QuaternaryProd = derive2 { name="QuaternaryProd"; version="1.38.0"; sha256="0bpx4lliz75jh6d2ngrmjc21577aawrcs7lh1k5pwg94jmj03pmg"; depends=[dplyr Rcpp yaml]; };
+  R3CPET = derive2 { name="R3CPET"; version="1.36.0"; sha256="12gq5mj6vbkd49slhpgnmwfdl65hr4wip9xbqx3j72b0f0yabg1h"; depends=[BiocGenerics clValid data_table GenomeInfoDb GenomicRanges ggbio ggplot2 Hmisc igraph IRanges pheatmap Rcpp RCurl reshape2 S4Vectors]; };
+  R453Plus1Toolbox = derive2 { name="R453Plus1Toolbox"; version="1.54.0"; sha256="0x5p028x13hygd1b2l4g2dclm9lnwj1hsh6x58hmkpbx27w68rb9"; depends=[Biobase BiocGenerics biomaRt Biostrings BSgenome GenomicRanges IRanges pwalign R2HTML Rsamtools S4Vectors ShortRead SummarizedExperiment TeachingDemos VariantAnnotation xtable XVector]; };
+  R4RNA = derive2 { name="R4RNA"; version="1.32.0"; sha256="0cpfngd11zlws756q8cnhy5451kj8hg5ckilvmhndfapkz4w93x1"; depends=[Biostrings]; };
+  RAIDS = derive2 { name="RAIDS"; version="1.2.0"; sha256="0frwaqmbd74gccqj8ibkgkyj1ii7q8qczzmkv9wgi4m0d9m2cy0v"; depends=[AnnotationDbi AnnotationFilter BSgenome class ensembldb gdsfmt GENESIS GenomicRanges IRanges MatrixGenerics pROC rlang S4Vectors SNPRelate VariantAnnotation]; };
+  RAREsim = derive2 { name="RAREsim"; version="1.8.0"; sha256="1d55wfs6rg3mq7x1f2aalgln6vpcb2qfp8fq3yi1ki4ki5dzpb05"; depends=[nloptr]; };
+  RBGL = derive2 { name="RBGL"; version="1.80.0"; sha256="1n6rfrcvlgi6mzz36v9sniqr05xfjzvfdpv4xwsn1xq41326wdv3"; depends=[BH graph]; };
+  RBM = derive2 { name="RBM"; version="1.36.0"; sha256="10q0b86jjpf5ch3xpax6vwkl8cd72djzvij0b6p53as7n8nqxz0p"; depends=[limma marray]; };
+  RBioFormats = derive2 { name="RBioFormats"; version="1.4.0"; sha256="1xwazjipv1yrxyx9mny7j7mmc7mvdlrmvjwy8v3i2hfmf137nlj1"; depends=[EBImage rJava S4Vectors]; };
+  RBioinf = derive2 { name="RBioinf"; version="1.64.0"; sha256="093gd1z1yqyhdqs8s7yyjb2ndf9izp0pnpbglp05599cf053zfnr"; depends=[graph]; };
+  RCAS = derive2 { name="RCAS"; version="1.30.0"; sha256="0ll0sj2zyazw0nxbpybq9frmxvmcjkgk3hwp3flnysjxg056dhxg"; depends=[BiocGenerics Biostrings BSgenome BSgenome_Hsapiens_UCSC_hg19 cowplot data_table DT genomation GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 gprofiler2 IRanges knitr pbapply pheatmap plotly plotrix proxy ranger rmarkdown RSQLite rtracklayer S4Vectors seqLogo txdbmaker]; };
+  RCASPAR = derive2 { name="RCASPAR"; version="1.50.0"; sha256="1aw2sqq8hmll31aagd6nxndwszxj16plba0v85jk880ycxpnd0hr"; depends=[]; };
+  RCM = derive2 { name="RCM"; version="1.20.0"; sha256="03f8gifzqhc5hdppk4lfybj7p3gkqb5jnpsxpf515dd7c5y210gy"; depends=[alabama DBI edgeR ggplot2 MASS nleqslv phyloseq RColorBrewer reshape2 tensor tseries VGAM]; };
+  RCSL = derive2 { name="RCSL"; version="1.12.0"; sha256="1r103i9v8b5w74b3ad7fr25sgsd0xx5kjrxawbwks57dk9k8m272"; depends=[ggplot2 igraph MatrixGenerics NbClust pracma Rcpp RcppAnnoy Rtsne SingleCellExperiment umap]; };
+  RCX = derive2 { name="RCX"; version="1.8.0"; sha256="0vkh57hcz71h8v8ad1rffjakf4ax1pyh5vvfwfmfnkh19ywfln4i"; depends=[igraph jsonlite plyr]; };
+  RCy3 = derive2 { name="RCy3"; version="2.24.0"; sha256="03zmskcb8n87x6m5jlhsh2b0b2qjk91y16fdcj3kz5c1j7zfs18i"; depends=[base64enc base64url BiocGenerics fs glue gplots graph httr IRdisplay IRkernel RColorBrewer RCurl RJSONIO stringi uuid XML]; };
+  RCyjs = derive2 { name="RCyjs"; version="2.26.1"; sha256="0apqkpcrl7snsaldzranz1sk6zl6vc0rgrdg5h0srkzwdqnx10sh"; depends=[base64enc BiocGenerics BrowserViz graph httpuv]; };
+  RDRToolbox = derive2 { name="RDRToolbox"; version="1.54.0"; sha256="1lg7z6wy4903fyg1j7x5bjd9l550g05rhx0gc60ki9pwlm7q82hv"; depends=[MASS rgl]; };
+  REBET = derive2 { name="REBET"; version="1.22.0"; sha256="09wb77d7j1f59mlnqdl9q4nl1qn75a9qq3sfa9k6nvb7x721scl4"; depends=[ASSET]; };
+  REDseq = derive2 { name="REDseq"; version="1.50.0"; sha256="15lx6sjw8rm0lrvyjfq3n4nq0r6rlgwvnm6bafd86a1dii934gf8"; depends=[AnnotationDbi BiocGenerics Biostrings BSgenome BSgenome_Celegans_UCSC_ce2 ChIPpeakAnno IRanges multtest]; };
+  REMP = derive2 { name="REMP"; version="1.28.0"; sha256="1ss4170nxif8942095nk5lv1knqf082i4nlxsr3kyvf8ghqn2gmd"; depends=[AnnotationHub BiocGenerics BiocParallel Biostrings BSgenome caret doParallel foreach GenomeInfoDb GenomicRanges impute IRanges iterators kernlab minfi org_Hs_eg_db ranger readr rtracklayer S4Vectors settings SummarizedExperiment]; };
+  RESOLVE = derive2 { name="RESOLVE"; version="1.6.0"; sha256="12ax0f3vasppwn5z10fr2mhhaaiyiii5qi3ll4yzsn7qmy02ya52"; depends=[Biostrings BSgenome BSgenome_Hsapiens_1000genomes_hs37d5 data_table GenomeInfoDb GenomicRanges ggplot2 glmnet gridExtra IRanges lsa MutationalPatterns nnls reshape2 S4Vectors]; };
+  RGMQL = derive2 { name="RGMQL"; version="1.24.0"; sha256="1p7s17i18ql3b8yvg6pmcz62ql18ncd3hqk0rganmahfbd91idby"; depends=[BiocGenerics data_table dplyr GenomicRanges glue httr plyr RGMQLlib rJava rtracklayer S4Vectors xml2]; };
+  RGSEA = derive2 { name="RGSEA"; version="1.38.0"; sha256="1jz3m6yvk1mybac5xyhpk9vvssnm9iq1mfk2aj32hv338q7cj8js"; depends=[BiocGenerics]; };
+  RGraph2js = derive2 { name="RGraph2js"; version="1.32.0"; sha256="1lb8kbqcimpivpzrxbcnlw8pdjzfq45nhhy7pdq7nvx9r5yrcks2"; depends=[digest graph rjson whisker]; };
+  RITAN = derive2 { name="RITAN"; version="1.28.0"; sha256="1jvwvgdqgxlnccf8k2mc1ihg4nasdqbl0pnm7khw3px39b1bnlzl"; depends=[AnnotationFilter BgeeDB dynamicTreeCut EnsDb_Hsapiens_v86 ensembldb GenomicFeatures ggplot2 gplots gridExtra gsubfn hash igraph knitr linkcomm MCL plotrix png RColorBrewer reshape2 RITANdata sqldf STRINGdb]; };
+  RIVER = derive2 { name="RIVER"; version="1.28.0"; sha256="0clqr2h7cf00lzj1y405hfyc9i1aadssrzhrzl4wp1r4774rpw4z"; depends=[Biobase ggplot2 glmnet pROC]; };
+  RImmPort = derive2 { name="RImmPort"; version="1.32.0"; sha256="0kvl9ivf0y7wjkaj7a5qbn9hv9ghbl00xm55i30p4vsvk8q32h3s"; depends=[data_table DBI dplyr plyr reshape2 RSQLite sqldf]; };
+  RJMCMCNucleosomes = derive2 { name="RJMCMCNucleosomes"; version="1.28.0"; sha256="0w9d61zd6g3c8dp9i68nw8rmbnrf6lfa86m9a7ydkf54w7p33fsk"; depends=[BiocGenerics BiocParallel consensusSeekeR GenomeInfoDb GenomicRanges IRanges Rcpp S4Vectors]; };
+  RLMM = derive2 { name="RLMM"; version="1.66.0"; sha256="1ihqlag1gxw08rg1ii2mpxg8gnwsxyg3ggd3k8fjnlqd6zsbvdq9"; depends=[MASS]; };
+  RLassoCox = derive2 { name="RLassoCox"; version="1.12.0"; sha256="14zw0xnssh17c6v4qy3b81qrv453r2ayjnq62d1ix695xl7q2g43"; depends=[glmnet igraph Matrix survival]; };
+  RMassBank = derive2 { name="RMassBank"; version="3.14.0"; sha256="05ymkjk6hkilm4wn7qn6dh1gf4pxp3zk339fbi10jri8ar0ilbls"; depends=[assertthat Biobase ChemmineOB ChemmineR data_table digest enviPat glue httr logger MSnbase mzR R_utils rcdk Rcpp readJDX rjson S4Vectors webchem XML yaml]; };
+  RNAAgeCalc = derive2 { name="RNAAgeCalc"; version="1.16.0"; sha256="1h221flwa8b4dchw3b65cx7z11744cljzimqc2pv991dp21bvhnk"; depends=[AnnotationDbi ggplot2 impute org_Hs_eg_db recount SummarizedExperiment]; };
+  RNASeqPower = derive2 { name="RNASeqPower"; version="1.44.0"; sha256="0jv1cm4j467gjx6j297h60yj7xd4ax71v2rgm65sibswbnxvbfa1"; depends=[]; };
+  RNAdecay = derive2 { name="RNAdecay"; version="1.24.0"; sha256="1bf0mgj1n38wqapabbw9d74s5099sqlpkhb9yd9p8w48hwfdk4nc"; depends=[ggplot2 gplots nloptr scales TMB]; };
+  RNAinteract = derive2 { name="RNAinteract"; version="1.52.0"; sha256="18jxg1wxa4z8ik9g7q3rr6mijrl1vk4b7wnkxs5pll6qz97mh726"; depends=[abind Biobase cellHTS2 geneplotter gplots hwriter ICS ICSNP lattice latticeExtra limma locfit RColorBrewer splots]; };
+  RNAmodR = derive2 { name="RNAmodR"; version="1.18.0"; sha256="0c4ndc7r3rpk8gmd0n4n5q0x72cz3ja48sq4w3w9ahn05l9qql2v"; depends=[BiocGenerics BiocParallel Biostrings BSgenome colorRamps GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 Gviz IRanges matrixStats Modstrings RColorBrewer reshape2 ROCR Rsamtools rtracklayer S4Vectors txdbmaker]; };
+  RNAmodR_AlkAnilineSeq = derive2 { name="RNAmodR.AlkAnilineSeq"; version="1.18.0"; sha256="1czaa3y8xzadrj1f8h1y4f0xvpb12s8l64k5lxhvp77s1gcxqcxm"; depends=[BiocGenerics GenomicRanges Gviz IRanges RNAmodR S4Vectors]; };
+  RNAmodR_ML = derive2 { name="RNAmodR.ML"; version="1.18.0"; sha256="1xcpjq8w81gw52fjb5ijdlf2k94qwqf6s6c8h6y6rja1csqpkn9i"; depends=[BiocGenerics GenomicRanges IRanges ranger RNAmodR S4Vectors]; };
+  RNAmodR_RiboMethSeq = derive2 { name="RNAmodR.RiboMethSeq"; version="1.18.0"; sha256="0qcl95c22kwn0prhznk2s97aisapq0pldcvp2mvckh5wi2jqrbbp"; depends=[BiocGenerics GenomicRanges Gviz IRanges RNAmodR S4Vectors]; };
+  RNAsense = derive2 { name="RNAsense"; version="1.18.0"; sha256="1ynaylwxb1vcwx5g14sw1lz6sidnbhc0gb4z3i8gz1yr32mpnmgl"; depends=[ggplot2 NBPSeq qvalue SummarizedExperiment]; };
+  RNAseqCovarImpute = derive2 { name="RNAseqCovarImpute"; version="1.2.0"; sha256="1gy7kmhp7hzv75hi1n8lcgsqqwwr7nm6r50rccqmswky5g6wd9nb"; depends=[Biobase BiocGenerics BiocParallel dplyr edgeR foreach limma magrittr mice rlang]; };
+  ROC = derive2 { name="ROC"; version="1.80.0"; sha256="074c6jg0dyr3hckizpg56f8ij8szj43cx6x5bbw7a01xdjdc70yb"; depends=[knitr]; };
+  ROCpAI = derive2 { name="ROCpAI"; version="1.16.0"; sha256="1nisrspdl4m6q9hpxhd49dxhfsi27znh4alcvc7gbhlqmbi0q9cs"; depends=[boot fission knitr SummarizedExperiment]; };
+  ROSeq = derive2 { name="ROSeq"; version="1.16.0"; sha256="1rs3dfgsm7bznvjyajdkkvi3zdd84barkq78ma09vg02n7x6zkfc"; depends=[edgeR limma pbmcapply]; };
+  ROTS = derive2 { name="ROTS"; version="1.32.0"; sha256="1s9hr64gpz08j638wlglcmk6c8yyj1hzrgddiphklkapc1asr320"; depends=[Biobase Rcpp]; };
+  ROntoTools = derive2 { name="ROntoTools"; version="2.32.0"; sha256="0idclyk1dwpmfksf9l9ms4nwpin1flw50bafxa0pqlh9fdj5bz0z"; depends=[boot graph KEGGgraph KEGGREST Rgraphviz]; };
+  RPA = derive2 { name="RPA"; version="1.60.0"; sha256="0v1jkny311ba43fz7x4i94ddm5hq9281gfj6wkr3disdbxjqgj37"; depends=[affy BiocGenerics BiocStyle phyloseq rmarkdown]; };
+  RProtoBufLib = derive2 { name="RProtoBufLib"; version="2.16.0"; sha256="1vhp43l2iknljy240kzgvckkzbg186nkfdd1m3la9fnf9sqr33z9"; depends=[]; };
+  RRHO = derive2 { name="RRHO"; version="1.44.0"; sha256="132mwv1qc32gbdjm8825aqd5l1f64hx78kqcbb6a347ch9c9pmwv"; depends=[VennDiagram]; };
+  RSVSim = derive2 { name="RSVSim"; version="1.44.0"; sha256="1w79dsv2z8i7m58pbih52sfh8adr9gl5j94j4k8vhaj4288jba0d"; depends=[Biostrings GenomicRanges IRanges ShortRead]; };
+  RSeqAn = derive2 { name="RSeqAn"; version="1.24.0"; sha256="0jc2abpjq2w7f22qj9izd98xckz7zsjx516g5ygdrik3r47hgh6x"; depends=[Rcpp]; };
+  RTCA = derive2 { name="RTCA"; version="1.56.0"; sha256="078bh47vfkr5a0qvhnjadjzd0ph3pg32dv1r3ssvz9fq8qg4g0hy"; depends=[Biobase gtools RColorBrewer]; };
+  RTCGA = derive2 { name="RTCGA"; version="1.34.0"; sha256="1a967id4anjzpdlbdd8a85fvb1z7mcr759pr91aashv12bzzhnk0"; depends=[assertthat data_table dplyr ggplot2 ggthemes htmltools knitr purrr RCurl rmarkdown rvest scales stringi survival survminer viridis XML xml2]; };
+  RTCGAToolbox = derive2 { name="RTCGAToolbox"; version="2.34.0"; sha256="0l4idk6gsrnm7laj1xkm6jwmyy5l90kphm21zk7y33cpnp2ryjwr"; depends=[BiocGenerics data_table DelayedArray GenomeInfoDb GenomicRanges httr RaggedExperiment RCurl RJSONIO rvest S4Vectors stringr SummarizedExperiment TCGAutils]; };
+  RTN = derive2 { name="RTN"; version="2.28.0"; sha256="09zd8z3wn26r7bamzq17slamydr73aqlx94zi0273npfggcwv4n1"; depends=[car data_table igraph IRanges limma minet mixtools pheatmap pwr RedeR S4Vectors snow SummarizedExperiment viper]; };
+  RTNduals = derive2 { name="RTNduals"; version="1.28.0"; sha256="0idr55acbdi7bbcds9vp0sjv1px8dsmycll7z92f7l2xrk1mgyhp"; depends=[RTN]; };
+  RTNsurvival = derive2 { name="RTNsurvival"; version="1.28.0"; sha256="1545jbis4gpcggw320kkrh7s2dllw4rwpq0qc95zm9v9yjxzzzk6"; depends=[data_table dunn_test egg ggplot2 pheatmap RColorBrewer RTN RTNduals scales survival]; };
+  RTopper = derive2 { name="RTopper"; version="1.50.0"; sha256="14y4qvx5iyiqghw4cwn1k3sn7i788iakfzssl0gqal0r6npdh9ib"; depends=[Biobase limma multtest]; };
+  RUVSeq = derive2 { name="RUVSeq"; version="1.38.0"; sha256="0i91kjwransy6l217rmxfzfchb43h1sjk8ygf0y8a3rv6rp7ylfd"; depends=[Biobase EDASeq edgeR MASS]; };
+  RUVcorr = derive2 { name="RUVcorr"; version="1.36.0"; sha256="05fga28l65h21b84pn6gn6vrgglnvpblmrz551qj2djrmzda3pn1"; depends=[BiocParallel bladderbatch corrplot gridExtra lattice MASS psych reshape2 snowfall]; };
+  RUVnormalize = derive2 { name="RUVnormalize"; version="1.38.0"; sha256="109q8cywgzxyc31hzjx73arffdhasblg7wk5gfwqcqfv2120r99c"; depends=[Biobase RUVnormalizeData]; };
+  RVS = derive2 { name="RVS"; version="1.26.0"; sha256="10j84lhap7c74scar3gmk983zi6lhl8zvawp9ap46qf8wrpnqp4k"; depends=[GENLIB gRain kinship2 R_utils snpStats]; };
+  RadioGx = derive2 { name="RadioGx"; version="2.8.0"; sha256="0ykw5hm48fh6xqxdfgmjjbqdd5hp4dmhnykg3zkmb9wrcfp4zx7f"; depends=[assertthat Biobase BiocGenerics BiocParallel caTools CoreGx data_table downloader magicaxis matrixStats RColorBrewer reshape2 S4Vectors scales SummarizedExperiment]; };
+  RaggedExperiment = derive2 { name="RaggedExperiment"; version="1.28.0"; sha256="1mzjc52naf6brffv6d2bak16y3ygz9lsk8yqgcfa44180bslz3xx"; depends=[BiocBaseUtils BiocGenerics GenomeInfoDb GenomicRanges IRanges Matrix MatrixGenerics S4Vectors SummarizedExperiment]; };
+  RankProd = derive2 { name="RankProd"; version="3.30.0"; sha256="0y9c833zn3l4492cl7b71x5g7q6kr81zh2f3v9x4l52q6mw6l5qh"; depends=[gmp Rmpfr]; };
+  RareVariantVis = derive2 { name="RareVariantVis"; version="2.32.0"; sha256="08siw7yzx1jd3cgg2mirc27ycpk6wdvv4vcwzln1ps35nkhy52in"; depends=[BiocGenerics BSgenome BSgenome_Hsapiens_UCSC_hg19 GenomeInfoDb GenomicFeatures GenomicRanges GenomicScores googleVis gtools IRanges phastCons100way_UCSC_hg19 S4Vectors SummarizedExperiment TxDb_Hsapiens_UCSC_hg19_knownGene VariantAnnotation]; };
+  Rarr = derive2 { name="Rarr"; version="1.4.0"; sha256="0ks576wqzywlk07wlb116sjzs1b1103mwrd5410qya13mwq6yx62"; depends=[httr jsonlite paws_storage R_utils stringr]; };
+  RbcBook1 = derive2 { name="RbcBook1"; version="1.72.0"; sha256="00y8lzfz7z9zmzrg9qyiwkwbcn2xsg6xiphzjvz02j34ghig43ng"; depends=[Biobase graph rpart]; };
+  Rbec = derive2 { name="Rbec"; version="1.12.0"; sha256="1cf5g2q8ak45ipb0cvgnrqy4s131g9lnchzs6g7mfj7b6ynkgp6d"; depends=[dada2 doParallel foreach ggplot2 Rcpp readr]; };
+  Rbowtie = derive2 { name="Rbowtie"; version="1.44.0"; sha256="1in3qani4xh5m5zpbny1nbsvh60ahs36bas8hplkdpd8hnhfla56"; depends=[]; };
+  Rbowtie2 = derive2 { name="Rbowtie2"; version="2.10.0"; sha256="1spwpbx1jjfjcxbwjkl64ccp9k8xs6lm828546qddsgp20y3bhgp"; depends=[magrittr Rsamtools]; };
+  Rbwa = derive2 { name="Rbwa"; version="1.8.0"; sha256="0qbipwgdfgzdkrlvwmx0nbi8v4frv0r2vl8hd2mypf205mv4qb8b"; depends=[]; };
+  RcisTarget = derive2 { name="RcisTarget"; version="1.24.0"; sha256="1856jnvqacr12j5hnnl4w2abjjd7qvkz7cs8yhbnqpy1896wki0v"; depends=[arrow AUCell BiocGenerics data_table dplyr GenomeInfoDb GenomicRanges GSEABase R_utils S4Vectors SummarizedExperiment tibble zoo]; };
+  Rcollectl = derive2 { name="Rcollectl"; version="1.4.0"; sha256="1i1a8imzdangilmww0r3l75npc19xbija9lj13nbwj1vnwb85cpa"; depends=[ggplot2 lubridate processx]; };
+  Rcpi = derive2 { name="Rcpi"; version="1.40.0"; sha256="1zi7fsq02cac60z92nan9374b2l07qx2fa7jrcngs0xgjcw6k31n"; depends=[Biostrings doParallel foreach GOSemSim pwalign RCurl rjson rlang]; };
+  Rcwl = derive2 { name="Rcwl"; version="1.20.0"; sha256="02pxjcf3bbvv4hh2vr796b3pyd8vxh5v4g2bkgicsc0jw40554rr"; depends=[basilisk batchtools BiocParallel codetools DiagrammeR R_utils S4Vectors shiny yaml]; };
+  RcwlPipelines = derive2 { name="RcwlPipelines"; version="1.20.0"; sha256="1bivrgd9f431spg0gv1achs258rmyxcnggn7zh63z2nlskxx3pp1"; depends=[BiocFileCache git2r httr rappdirs Rcwl S4Vectors]; };
+  Rdisop = derive2 { name="Rdisop"; version="1.64.0"; sha256="1gcg441mp6bdnzjkh4gg6zgjn4hnw5i8mdcvb1hfim4hsc7sdsxv"; depends=[Rcpp]; };
+  ReUseData = derive2 { name="ReUseData"; version="1.4.0"; sha256="1dai0mxsnjmr6gs465mljfnydai276i5zjjbgxphgas1z3iv9sz6"; depends=[basilisk BiocFileCache jsonlite Rcwl RcwlPipelines S4Vectors yaml]; };
+  ReactomeContentService4R = derive2 { name="ReactomeContentService4R"; version="1.12.0"; sha256="1qqrkki9v3ggwqv88n7w3wp50y4gxvkixrg1sad23vl08jd0rkl6"; depends=[data_table doParallel foreach httr jsonlite magick]; };
+  ReactomeGSA = derive2 { name="ReactomeGSA"; version="1.18.0"; sha256="188c0vrbq01gy4zhsf9wsg9amjf9434g0fzf3lnwzxdm0xzw2b33"; depends=[Biobase dplyr ggplot2 gplots httr jsonlite progress RColorBrewer tidyr]; };
+  ReactomeGraph4R = derive2 { name="ReactomeGraph4R"; version="1.12.0"; sha256="17xkrqyp5wdsdd0gpplsk3qfsr8sgf1ap0vz6v34xlhbmzdq3rs8"; depends=[data_table doParallel foreach getPass jsonlite magrittr neo4r purrr ReactomeContentService4R rlang]; };
+  ReactomePA = derive2 { name="ReactomePA"; version="1.48.0"; sha256="0i5jrdzg6zcs1jx0lryq8d467lxi1hvd1x6p74ywwxga88p46zk6"; depends=[AnnotationDbi DOSE enrichplot ggplot2 ggraph graphite gson igraph reactome_db]; };
+  ReadqPCR = derive2 { name="ReadqPCR"; version="1.50.0"; sha256="1bv65my3azx1v16qdcb5s0bycykdga6kfpvhj8av6g0cyrq6xj8y"; depends=[Biobase]; };
+  RedeR = derive2 { name="RedeR"; version="3.0.0"; sha256="1x4435mcm4f8w5a7y54269f3npwxz26347v77ngmnjj32nfch8l9"; depends=[igraph scales]; };
+  RedisParam = derive2 { name="RedisParam"; version="1.6.0"; sha256="1j4h509gl9grgy8npj2fxnvm2kx0q41bcfid26v7p91c6i33gzsj"; depends=[BiocParallel futile_logger redux withr]; };
+  RegEnrich = derive2 { name="RegEnrich"; version="1.14.0"; sha256="1gma0xsw72pi3shxlnvx3ynkvys2hv3g95gx2x0whdsarxwki34h"; depends=[BiocParallel BiocSet BiocStyle DESeq2 DOSE dplyr fgsea ggplot2 limma magrittr randomForest reshape2 S4Vectors SummarizedExperiment tibble WGCNA]; };
+  RegionalST = derive2 { name="RegionalST"; version="1.2.0"; sha256="0gzc1m6ds6bnkq26bpq9i0mbpyw2biwnn07d30cdzipfsxbjdhlk"; depends=[assertthat BayesSpace colorspace dplyr fgsea ggplot2 gridExtra magrittr RColorBrewer S4Vectors scater Seurat shiny SingleCellExperiment SummarizedExperiment tibble TOAST]; };
+  RepViz = derive2 { name="RepViz"; version="1.20.0"; sha256="1rww94wdpswy27i26zn25g8j2s1l14xmljhkz6fl45jmkfn4cqxa"; depends=[biomaRt GenomicRanges IRanges Rsamtools S4Vectors]; };
+  Repitools = derive2 { name="Repitools"; version="1.50.0"; sha256="1ypiiwi7kp5j8ayz3c9b1gzsy7kd1iw3zv35hrg7pb5fry63dg9g"; depends=[BiocGenerics Biostrings BSgenome cluster DNAcopy edgeR GenomeInfoDb GenomicAlignments GenomicRanges gplots gsmoothr IRanges MASS Rsamtools Rsolnp rtracklayer S4Vectors]; };
+  ReportingTools = derive2 { name="ReportingTools"; version="2.44.0"; sha256="0vq46dj2v3imjmf6cw8mab6k9v4rrc5r2vh100jjlsm3z15gvl17"; depends=[annotate AnnotationDbi Biobase BiocGenerics Category DESeq2 edgeR ggbio ggplot2 GOstats GSEABase hwriter IRanges knitr lattice limma PFAM_db R_utils XML]; };
+  ResidualMatrix = derive2 { name="ResidualMatrix"; version="1.14.0"; sha256="1q27zzl570q22nk4xjpnpa674p76hzzvilynx9i6awnzs10zjggn"; depends=[DelayedArray Matrix S4Vectors]; };
+  Rfastp = derive2 { name="Rfastp"; version="1.14.0"; sha256="1zk2zm08nv8i9q39s7dbppd3pk5kxki17x00971wwsfvl261hnsy"; depends=[ggplot2 Rcpp reshape2 Rhtslib rjson zlibbioc]; };
+  RgnTX = derive2 { name="RgnTX"; version="1.6.0"; sha256="15mw5j8wjbzygqj1v5pqh0dz6n37y55p08yi884hpw7sn9dwkfsw"; depends=[GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 IRanges regioneR S4Vectors TxDb_Hsapiens_UCSC_hg19_knownGene]; };
+  Rgraphviz = derive2 { name="Rgraphviz"; version="2.48.0"; sha256="09i174a867vqyb6677sj88lk6bpfc4ajsmjgjkd7f7q66j46q655"; depends=[graph]; };
+  Rhdf5lib = derive2 { name="Rhdf5lib"; version="1.26.0"; sha256="0q4ix3nzr69pmwm6vdna51yxlqi8frch0xyv6wmiy35n67d4fcab"; depends=[]; };
+  Rhisat2 = derive2 { name="Rhisat2"; version="1.20.0"; sha256="0a7k9p08gq537275r7dfzh34ycxx8h4fmac74jimwhsa420793r5"; depends=[GenomicRanges SGSeq txdbmaker]; };
+  Rhtslib = derive2 { name="Rhtslib"; version="3.0.0"; sha256="0497b43wxcfqyr4k30f0xq7yillb4fz0gqiqxxp66gvnqv4wiv6v"; depends=[zlibbioc]; };
+  RiboCrypt = derive2 { name="RiboCrypt"; version="1.10.0"; sha256="0ay8yl1fc4iizina4aqvyjr6iqpc7dr457l7w4p3849d3i160304"; depends=[BiocGenerics BiocParallel Biostrings bslib data_table dplyr GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 htmlwidgets httr IRanges jsonlite knitr markdown NGLVieweR ORFik plotly RCurl rlang shiny shinycssloaders shinyhelper shinyjqui stringr]; };
+  RiboDiPA = derive2 { name="RiboDiPA"; version="1.12.0"; sha256="0an2hbjzi514kb0m4l8i46w4zyxp510vw2f3xdmldjdyv5yw4v1z"; depends=[BiocFileCache BiocGenerics data_table DESeq2 doParallel elitism foreach GenomicAlignments GenomicFeatures GenomicRanges ggplot2 IRanges matrixStats qvalue Rcpp reldist Rsamtools S4Vectors txdbmaker]; };
+  RiboProfiling = derive2 { name="RiboProfiling"; version="1.34.0"; sha256="0h0sxmg4knsarh7w7dnp539cs9sfxjw4413q1yyyz3gbi23bzww4"; depends=[BiocGenerics Biostrings data_table GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggbio ggplot2 IRanges plyr reshape2 Rsamtools rtracklayer S4Vectors sqldf]; };
+  Rmagpie = derive2 { name="Rmagpie"; version="1.60.0"; sha256="146db5sz1kkgpwdarll8ca6ndb0l48hxnfi7cp39zllrhwfmwzdm"; depends=[Biobase e1071 kernlab pamr]; };
+  Rmmquant = derive2 { name="Rmmquant"; version="1.22.0"; sha256="1jshnr4xph4glrk0pl3r8pklxnzg495m74yx25xjqg8avwahwvw4"; depends=[apeglm BiocStyle DESeq2 devtools GenomicRanges org_Mm_eg_db Rcpp S4Vectors SummarizedExperiment TBX20BamSubset TxDb_Mmusculus_UCSC_mm9_knownGene]; };
+  RnBeads = derive2 { name="RnBeads"; version="2.22.0"; sha256="0v7dzmbyskq0vmja09dncg1g50dl3iycg883swb7lfvi4xzr42vj"; depends=[BiocGenerics cluster ff fields GenomicRanges ggplot2 gplots gridExtra illuminaio IRanges limma MASS matrixStats methylumi plyr S4Vectors]; };
+  RnaSeqSampleSize = derive2 { name="RnaSeqSampleSize"; version="2.14.0"; sha256="0zfmrpfnz8bka6z4408bl5mzv1yr7648qizy8b93qc903vx3zhvs"; depends=[biomaRt dplyr edgeR ggplot2 ggpubr heatmap3 KEGGREST matlab Rcpp recount RnaSeqSampleSizeData SummarizedExperiment tidyr tidyselect]; };
+  Rnits = derive2 { name="Rnits"; version="1.38.0"; sha256="1c4l6flfyamnjhb3givw4icx6cbl2pnrvscalrywyhxpqk64cirv"; depends=[affy Biobase boot ggplot2 impute limma qvalue reshape2]; };
+  RolDE = derive2 { name="RolDE"; version="1.8.0"; sha256="11ishff55z086qgc28vxamc5blfxs95qn758f5cgvf9rfr8h64rz"; depends=[doParallel doRNG foreach matrixStats nlme qvalue rngtools ROTS SummarizedExperiment]; };
+  Rqc = derive2 { name="Rqc"; version="1.38.0"; sha256="0szd5ygcvpaiwqss8galxzxpslpfh93rk42s865v0qpv0s9v9x0l"; depends=[BiocGenerics BiocParallel BiocStyle Biostrings biovizBase GenomicAlignments GenomicFiles ggplot2 IRanges knitr markdown plyr Rcpp reshape2 Rsamtools S4Vectors shiny ShortRead]; };
+  Rsamtools = derive2 { name="Rsamtools"; version="2.20.0"; sha256="04lz0dzwmgi8j9wyspbmjln6yb5fv4f538nqyrfd31d0g16937b8"; depends=[BiocGenerics BiocParallel Biostrings bitops GenomeInfoDb GenomicRanges IRanges Rhtslib S4Vectors XVector zlibbioc]; };
+  Rsubread = derive2 { name="Rsubread"; version="2.18.0"; sha256="0nd5b1k0dsxpf93wqx01fgbvk40jcfs7b7w692bsx620lm42ipfg"; depends=[Matrix]; };
+  Rtpca = derive2 { name="Rtpca"; version="1.14.0"; sha256="1prrc1ys74pfr0cgn9qx2is9zzpybvapi34xp1yxnq1xcgynkrxv"; depends=[Biobase dplyr fdrtool ggplot2 pROC tibble tidyr]; };
+  Rtreemix = derive2 { name="Rtreemix"; version="1.66.0"; sha256="0rlhrzpyv95mm9wdqmn2wqqkgb3nm3irqrffba81ip7mn9fmdjsw"; depends=[Biobase graph Hmisc]; };
+  Rvisdiff = derive2 { name="Rvisdiff"; version="1.2.0"; sha256="1s4jhg79s2q71v2y5h6ihwr05giyv987kncr22g60frsdsav2hcm"; depends=[edgeR]; };
+  S4Arrays = derive2 { name="S4Arrays"; version="1.4.1"; sha256="0wdzp1q6hyks4afm217yl2n770jsqaqxix71imni1r0qbxdfkdwl"; depends=[abind BiocGenerics crayon IRanges Matrix S4Vectors]; };
+  S4Vectors = derive2 { name="S4Vectors"; version="0.42.0"; sha256="0aq0j70sl8a42gc1abxdwdy74mi9k4krz56yrbpwqv78x42cjjm9"; depends=[BiocGenerics]; };
+  SAIGEgds = derive2 { name="SAIGEgds"; version="2.4.0"; sha256="1pkg72pqqlmj51vjz5p3qrj3b2lqqnzmh4ddbrn73rs66sgm9zkp"; depends=[CompQuadForm gdsfmt Matrix Rcpp RcppArmadillo RcppParallel SeqArray survey]; };
+  SARC = derive2 { name="SARC"; version="1.2.0"; sha256="11hiz7lzhkp2459c92x0i9kia7yc8zbl7n7c3wd66g2pbzfjzv6f"; depends=[data_table DescTools GenomicFeatures GenomicRanges ggplot2 gridExtra gtable IRanges metap multtest plotly plyranges RaggedExperiment RColorBrewer reshape2 scales tidyverse]; };
+  SBGNview = derive2 { name="SBGNview"; version="1.18.0"; sha256="1smxxwyc03m6bbw1l5bzfl6q2g2f93z53z8iyk42lwkfp26zv6i5"; depends=[AnnotationDbi bookdown httr igraph KEGGREST knitr pathview Rdpack rmarkdown rsvg SBGNview_data SummarizedExperiment xml2]; };
+  SBMLR = derive2 { name="SBMLR"; version="2.0.0"; sha256="1h0pwlq229hbvh6ab2sjv67zd24i15xn4jh7k8s64faw4gw8ji14"; depends=[deSolve XML]; };
+  SC3 = derive2 { name="SC3"; version="1.32.0"; sha256="0ylpk7jjqmy7g1s5ah5zwrcmqplhjm0rpnw74kn5mdra3d7xdsnr"; depends=[BiocGenerics cluster doParallel doRNG e1071 foreach ggplot2 pheatmap Rcpp RcppArmadillo robustbase ROCR rrcov S4Vectors shiny SingleCellExperiment SummarizedExperiment WriteXLS]; };
+  SCAN_UPC = derive2 { name="SCAN.UPC"; version="2.46.0"; sha256="1awsy1xfsl90yxqc2qir7p51d34jddcqg5q02cc0925w6yqanaci"; depends=[affy affyio Biobase Biostrings foreach GEOquery IRanges MASS oligo sva]; };
+  SCANVIS = derive2 { name="SCANVIS"; version="1.18.0"; sha256="0nywyi5bp3qgh9xaydhpsdh5nvq0ybfvjqhygrs7lypanj4n1k7p"; depends=[IRanges plotrix RCurl rtracklayer]; };
+  SCArray = derive2 { name="SCArray"; version="1.12.0"; sha256="1a5343azhqfagkf2cbszaisn505aqc49hxki42qb92n5x3bgqbnb"; depends=[BiocParallel BiocSingular DelayedArray DelayedMatrixStats gdsfmt Matrix S4Vectors SingleCellExperiment SummarizedExperiment]; };
+  SCArray_sat = derive2 { name="SCArray.sat"; version="1.4.0"; sha256="0y94f6rbjzn2jqkww808vysfdk6j3qw81v79w087d3adiywkl9xj"; depends=[BiocGenerics BiocParallel BiocSingular DelayedArray gdsfmt Matrix S4Vectors SCArray Seurat SeuratObject SummarizedExperiment]; };
+  SCBN = derive2 { name="SCBN"; version="1.22.0"; sha256="0bf18gc9ysi35x73ij4s4r3zmg0vys4hy4gy2x0hkxlrm4gpgx4r"; depends=[]; };
+  SCFA = derive2 { name="SCFA"; version="1.14.0"; sha256="1avbvkky6m5f5cbfbhabapidz6ypngddrkg2dss7y0a7gy48634x"; depends=[BiocParallel cluster coro glmnet igraph Matrix matrixStats psych RhpcBLASctl survival torch]; };
+  SCOPE = derive2 { name="SCOPE"; version="1.16.0"; sha256="1x7kad59rav9rrjkqkdfbziflx3bngclz4mwkfkf53yl8km62pw0"; depends=[BiocGenerics Biostrings BSgenome BSgenome_Hsapiens_UCSC_hg19 DescTools DNAcopy doParallel foreach GenomeInfoDb GenomicRanges gplots IRanges RColorBrewer Rsamtools S4Vectors]; };
+  SCnorm = derive2 { name="SCnorm"; version="1.26.0"; sha256="11q8g6fmsib4ms2ks003v9qc8n4rzchbcd02xnbah97qgxrmicbm"; depends=[BiocGenerics BiocParallel cluster data_table forcats ggplot2 moments quantreg S4Vectors SingleCellExperiment SummarizedExperiment]; };
+  SDAMS = derive2 { name="SDAMS"; version="1.24.0"; sha256="088k6bxdmkwv4zw8pvj2f4hl4b5jhrmlnvsh9mcqga7pmf5ir96b"; depends=[qvalue SummarizedExperiment trust]; };
+  SELEX = derive2 { name="SELEX"; version="1.36.0"; sha256="0j4y7mijxgkcj89q1qf0ab9rmsaxzmvbxlnpy0x29bam424vzc73"; depends=[Biostrings rJava]; };
+  SEtools = derive2 { name="SEtools"; version="1.18.0"; sha256="0j4pn85icyf1jwcfjr8r9049lrhglp3s5ighmcp9hvsjws04scis"; depends=[BiocParallel circlize data_table DESeq2 edgeR Matrix openxlsx pheatmap S4Vectors sechm SummarizedExperiment sva]; };
+  SGSeq = derive2 { name="SGSeq"; version="1.38.0"; sha256="1i3dg3fn648mzy49m15vbzr3wfnk91xyph5j4sc7ss978l25h17n"; depends=[AnnotationDbi BiocGenerics Biostrings GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges igraph IRanges Rsamtools rtracklayer RUnit S4Vectors SummarizedExperiment]; };
+  SIAMCAT = derive2 { name="SIAMCAT"; version="2.8.0"; sha256="00l9w395fg6r8p2jzz85x1djlj4h7y86dgs8x5xf14bn1am9q0sh"; depends=[beanplot corrplot glmnet gridBase gridExtra infotheo lgr LiblineaR lmerTest matrixStats mlr3 mlr3learners mlr3tuning paradox phyloseq pROC progress PRROC RColorBrewer scales stringr]; };
+  SICtools = derive2 { name="SICtools"; version="1.34.0"; sha256="0ymk18aj4r0526xqqkrvd75p4jrgrq2wshx7mqh2wj7nizjfn8fv"; depends=[Biostrings doParallel GenomicRanges IRanges matrixStats plyr Rsamtools stringr]; };
+  SIM = derive2 { name="SIM"; version="1.74.0"; sha256="01mvdwhbpikpg8vfxr73nsshdr185ds80yjavzss53cwkv6zvp4h"; depends=[globaltest quantreg quantsmooth]; };
+  SIMAT = derive2 { name="SIMAT"; version="1.36.0"; sha256="1gwcr7lfsnzvlx0v93adlxmzdcx9rwfmhacpz3m8q26jm4vjmqib"; depends=[ggplot2 mzR Rcpp reshape2]; };
+  SIMD = derive2 { name="SIMD"; version="1.22.0"; sha256="1sw7mw4nravw4v9mhfcppnz0867szaynjs10lhpjs2a0p6mll0px"; depends=[edgeR methylMnM statmod]; };
+  SIMLR = derive2 { name="SIMLR"; version="1.30.0"; sha256="18mld0yvkmy1znsv3dkch6f8x9h9j20zm3qq84ggw0wsbgrrcm1z"; depends=[Matrix pracma Rcpp RcppAnnoy RSpectra]; };
+  SLqPCR = derive2 { name="SLqPCR"; version="1.70.0"; sha256="0xr0kjy2bn8cprj4p7c9bi7wsrvfx6bxymnvdz5c50s9hc35h2ky"; depends=[]; };
+  SMAD = derive2 { name="SMAD"; version="1.20.0"; sha256="0rj4f38nlr3a5fmf0dqhqi7iln78lkvghv4w8yr2kcavnsl4lzar"; depends=[dplyr magrittr Rcpp RcppAlgos tidyr]; };
+  SMITE = derive2 { name="SMITE"; version="1.32.0"; sha256="0dp4yas2gdwnvvbxdkid61j9c2a32cfcn3iw9nwijp6aqlv9rrv9"; depends=[AnnotationDbi Biobase BioNet geneLenDataBase GenomicRanges ggplot2 goseq Hmisc igraph IRanges KEGGREST org_Hs_eg_db plyr reactome_db S4Vectors scales]; };
+  SNAGEE = derive2 { name="SNAGEE"; version="1.44.0"; sha256="001afmi0hpjih8h8dl5w0llmccgd9g7lrz80fs7m2f3avz9hf2lc"; depends=[SNAGEEdata]; };
+  SNPRelate = derive2 { name="SNPRelate"; version="1.38.0"; sha256="0znk9vvnahkypmkrx82r1ryp41xr675b4ddpgx0nl3708xhncz5f"; depends=[gdsfmt]; };
+  SNPediaR = derive2 { name="SNPediaR"; version="1.30.0"; sha256="1p33fmjdpscc42wicx23xg1jbg2m18msf4rhg9pr52n6yzr42b8v"; depends=[jsonlite RCurl]; };
+  SNPhood = derive2 { name="SNPhood"; version="1.34.0"; sha256="1jniag2yq67y6s9cw8722a58k86i0nbksc2dxyv3pni2wwdka6r6"; depends=[BiocGenerics BiocParallel Biostrings checkmate cluster data_table DESeq2 GenomeInfoDb GenomicRanges ggplot2 gridExtra IRanges lattice RColorBrewer reshape2 Rsamtools S4Vectors scales SummarizedExperiment VariantAnnotation]; };
+  SOMNiBUS = derive2 { name="SOMNiBUS"; version="1.12.0"; sha256="0p33r1ibpnln2rn4ls23prg7nmxznki9x7jc7qg3gc5fxip5b9n6"; depends=[annotatr BiocManager bsseq data_table GenomeInfoDb GenomicRanges ggplot2 IRanges Matrix mgcv reshape2 rtracklayer S4Vectors tidyr VGAM yaml]; };
+  SPEM = derive2 { name="SPEM"; version="1.44.0"; sha256="0ysgwvx8wlq3b1qyw5dlsxxglvrmbahf4r98g6shv6y8pj50yhg7"; depends=[Biobase Rsolnp]; };
+  SPIA = derive2 { name="SPIA"; version="2.56.0"; sha256="0ank9y5p21whqfni56kx662cli8508s6l89d83c54nimyn1kqs48"; depends=[KEGGgraph]; };
+  SPIAT = derive2 { name="SPIAT"; version="1.6.0"; sha256="09bs0pm2gd8fgb2q5kihwnb3dgaxkwjxl86di7kdj0im5hyr0d1h"; depends=[apcluster dbscan dittoSeq dplyr ggplot2 gridExtra gtools mmand pracma RANN raster reshape2 rlang sp SpatialExperiment spatstat_explore spatstat_geom SummarizedExperiment tibble vroom]; };
+  SPLINTER = derive2 { name="SPLINTER"; version="1.30.0"; sha256="1x9lak4s7rhllnczr4n7a88haq4a36pmxbrgd2m7v69nyzxlab9w"; depends=[biomaRt Biostrings BSgenome_Mmusculus_UCSC_mm9 GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 googleVis Gviz IRanges plyr pwalign S4Vectors seqLogo stringr]; };
+  SPOTlight = derive2 { name="SPOTlight"; version="1.8.0"; sha256="08cnlm6l34gp2spy2x08jr6abm58wrana1930jzwvvgm0mql9nzb"; depends=[ggplot2 Matrix matrixStats NMF nnls SingleCellExperiment sparseMatrixStats]; };
+  SPsimSeq = derive2 { name="SPsimSeq"; version="1.14.0"; sha256="09n39bgbx8xkngdc056lz1p20375w7fljmgnkg7vacjvp288y2pi"; depends=[edgeR fitdistrplus Hmisc limma mvtnorm phyloseq SingleCellExperiment WGCNA]; };
+  SQLDataFrame = derive2 { name="SQLDataFrame"; version="1.18.0"; sha256="1fdf6dvrkg5cjnlh9466dnmqjfg7dq7dj06qjc61zyshlvslxlwh"; depends=[BiocGenerics DBI DelayedArray duckdb RSQLite S4Vectors]; };
+  SRAdb = derive2 { name="SRAdb"; version="1.66.0"; sha256="0qvqixmn8am90a4n5ydva630kkxr735y6kdcikp1q0k8pxxvbm0j"; depends=[GEOquery graph RCurl RSQLite]; };
+  STATegRa = derive2 { name="STATegRa"; version="1.40.0"; sha256="1m78hixyjavvryfcyd5g3f898r7hcn1cwdwbv3i2b9yj7z6r7knv"; depends=[affy Biobase calibrate edgeR foreach ggplot2 gplots gridExtra limma MASS]; };
+  STRINGdb = derive2 { name="STRINGdb"; version="2.16.4"; sha256="02fim09w9s38hvgp1g3fxqabd5r2fjysljlfrya2nr17drqkzqyx"; depends=[gplots hash httr igraph plotrix plyr png RColorBrewer sqldf]; };
+  STdeconvolve = derive2 { name="STdeconvolve"; version="1.8.0"; sha256="0pyyxmh4bnavsdw6riv72y5m8l53mfr0lpiy9mh0qn57rlmw5fr9"; depends=[BiocParallel clue ggplot2 Matrix mgcv reshape2 scatterpie slam topicmodels viridis]; };
+  SUITOR = derive2 { name="SUITOR"; version="1.6.0"; sha256="0wricb7fi87lrmasljhz0l7ya22yq3a2c6654k4v3x11z9zb2pl6"; depends=[BiocParallel ggplot2]; };
+  SVMDO = derive2 { name="SVMDO"; version="1.4.0"; sha256="11cn7kffgssbjk307vxjr6i2cs94fn6hhz09dbx5qgg89m4gsdgi"; depends=[AnnotationDbi BSDA caret caTools data_table DOSE dplyr e1071 golem klaR nortest org_Hs_eg_db shiny shinyFiles shinytitle sjmisc SummarizedExperiment survival]; };
+  SWATH2stats = derive2 { name="SWATH2stats"; version="1.34.0"; sha256="052nzh5rhq3sp6vyibbiz2li32lnd5c719kqkdhwjsc8y3pcir00"; depends=[biomaRt data_table ggplot2 reshape2]; };
+  SamSPECTRAL = derive2 { name="SamSPECTRAL"; version="1.58.0"; sha256="05r3gl6ai9x0g8l2zl1p8fz7phklna82w0csvaiy8p5063p71gla"; depends=[]; };
+  Scale4C = derive2 { name="Scale4C"; version="1.26.0"; sha256="1h2swrs0vj9nzcr748jbk8c4bpnyc0gcq8bn5cyhd8lbd2b9xhv0"; depends=[GenomicRanges IRanges smoothie SummarizedExperiment]; };
+  ScaledMatrix = derive2 { name="ScaledMatrix"; version="1.12.0"; sha256="0c6sp5nps31ygrr7lxxc2gbg19qsk107v23x8f6acqk1xwlsfppi"; depends=[DelayedArray Matrix S4Vectors]; };
+  Sconify = derive2 { name="Sconify"; version="1.24.0"; sha256="07bz9bi71qxaipiw998jshm0wcwllhxfjmdxxxwg520rhmfs1g04"; depends=[dplyr flowCore FNN ggplot2 magrittr readr Rtsne tibble]; };
+  ScreenR = derive2 { name="ScreenR"; version="1.6.0"; sha256="00zaca403yk2dhsxhch51zcv5iwjgpnpz495ly98wv64hsm8b671"; depends=[dplyr edgeR ggplot2 ggvenn limma magrittr patchwork purrr rlang scales stringr tibble tidyr tidyselect]; };
+  SemDist = derive2 { name="SemDist"; version="1.38.0"; sha256="03qzsrxwnsb8spfmnsyiyz83r8476lq17n3a8hrm6i13hxdqps29"; depends=[annotate AnnotationDbi GO_db]; };
+  SeqArray = derive2 { name="SeqArray"; version="1.44.0"; sha256="1g8867y66f8ihr0w2shc17wxnavnkwn9y25f850nwvnn9nsbk88k"; depends=[Biostrings gdsfmt GenomeInfoDb GenomicRanges IRanges S4Vectors]; };
+  SeqGSEA = derive2 { name="SeqGSEA"; version="1.44.0"; sha256="0nxrl5ip289hqnp4g85njm55kpk81kr1l87la6r3r5h0qx5x01cy"; depends=[Biobase biomaRt DESeq2 doParallel]; };
+  SeqGate = derive2 { name="SeqGate"; version="1.14.0"; sha256="1qmrjqv9iky9bwq1d6bmmn4wnqlw8g352i154fjhgpwl8zvl75jk"; depends=[BiocManager GenomicRanges S4Vectors SummarizedExperiment]; };
+  SeqSQC = derive2 { name="SeqSQC"; version="1.26.0"; sha256="0xsgr7wfy9qyjffb6spm0szknk3rbcx89k1ypdymybnjmndcslqf"; depends=[e1071 ExperimentHub gdsfmt GenomicRanges GGally ggplot2 IRanges plotly RColorBrewer reshape2 rmarkdown S4Vectors SNPRelate]; };
+  SeqVarTools = derive2 { name="SeqVarTools"; version="1.42.0"; sha256="1mx3b21595n1v1fhy7lv67kdlxc2qdmkj0lm8gdnrs0l5f88jpgy"; depends=[Biobase BiocGenerics data_table gdsfmt GenomicRanges GWASExactHW IRanges logistf Matrix S4Vectors SeqArray]; };
+  SharedObject = derive2 { name="SharedObject"; version="1.18.0"; sha256="133bn22q0lbyfr9dmsv462wajmh9v3108w42fc16q97lf9nf2023"; depends=[BH BiocGenerics Rcpp]; };
+  ShortRead = derive2 { name="ShortRead"; version="1.62.0"; sha256="0x5iqx2k2xs5rwjch0bpcb8pgc0nhb571991yahdr8hsxwbas3jm"; depends=[Biobase BiocGenerics BiocParallel Biostrings GenomeInfoDb GenomicAlignments GenomicRanges hwriter IRanges lattice latticeExtra pwalign Rhtslib Rsamtools S4Vectors XVector zlibbioc]; };
+  SiPSiC = derive2 { name="SiPSiC"; version="1.4.0"; sha256="158sjiza9wqd5ipl3fm1gx63qas6j3rqlk6ayw5hnf0al1g64z5q"; depends=[Matrix SingleCellExperiment]; };
+  SigCheck = derive2 { name="SigCheck"; version="2.36.0"; sha256="1bnvk2v1mh615xhqab6129bgvv24azq9h9r1n2b3msbadwd0by1d"; depends=[Biobase BiocParallel e1071 MLInterfaces survival]; };
+  SigFuge = derive2 { name="SigFuge"; version="1.42.0"; sha256="1g262p2b0bapzvaknhnklxm6wvy1fdir631p34x433qvlwz9ss9i"; depends=[GenomicRanges ggplot2 matlab reshape sigclust]; };
+  SigsPack = derive2 { name="SigsPack"; version="1.18.0"; sha256="1dq3zqbbz5wbw2yf8w1sjgf1kd1nxap808ydvjr63zn10rm6m3vm"; depends=[Biobase Biostrings BSgenome GenomeInfoDb GenomicRanges quadprog rtracklayer SummarizedExperiment VariantAnnotation]; };
+  SimBu = derive2 { name="SimBu"; version="1.6.0"; sha256="1may613jla4id0g9w4nxsfqm36ma82gmzykvnifi5hwa63jvi7pb"; depends=[basilisk BiocParallel data_table dplyr ggplot2 Matrix phyloseq proxyC RColorBrewer RCurl reticulate sparseMatrixStats SummarizedExperiment tidyr]; };
+  SimFFPE = derive2 { name="SimFFPE"; version="1.16.0"; sha256="1ccdk4g16bh1j420dspnh6il98j6ck6w2vgmqi82mf6js3cakd2z"; depends=[Biostrings doParallel dplyr foreach GenomicRanges IRanges Rsamtools truncnorm]; };
+  SingleCellAlleleExperiment = derive2 { name="SingleCellAlleleExperiment"; version="1.0.0"; sha256="02dp5xcp7h93cl5k65qpwgcd4ygimcv5im9s9zqzpzmsf3q8gd5l"; depends=[BiocParallel DelayedArray Matrix S4Vectors SingleCellExperiment SummarizedExperiment]; };
+  SingleCellExperiment = derive2 { name="SingleCellExperiment"; version="1.26.0"; sha256="09sbk0r9g55x8fbvv5rbrygdw3km4bbrj9x0abqwld2nxnxq1q3n"; depends=[BiocGenerics DelayedArray GenomicRanges S4Vectors SummarizedExperiment]; };
+  SingleCellSignalR = derive2 { name="SingleCellSignalR"; version="1.16.0"; sha256="0w7zj2fb45hzjx44kgn9qs3ab69v29vpl41nxvy931m32ndl5j04"; depends=[BiocManager circlize data_table edgeR foreach gplots igraph limma multtest pheatmap Rtsne scran stringr]; };
+  SingleMoleculeFootprinting = derive2 { name="SingleMoleculeFootprinting"; version="1.12.0"; sha256="1hyqnzz05f2i0r2b5qs1j58py3b042aiffyd6ns2hkrgnr62yldw"; depends=[BiocGenerics Biostrings BSgenome data_table GenomeInfoDb GenomicRanges IRanges plyr QuasR RColorBrewer]; };
+  SingleR = derive2 { name="SingleR"; version="2.6.0"; sha256="0l33bsi1zfj7f4hzlivhh89phhx0qscrwd08c28mqvcyp91mhq16"; depends=[beachmat BiocNeighbors BiocParallel BiocSingular DelayedArray DelayedMatrixStats Matrix Rcpp S4Vectors SummarizedExperiment]; };
+  SomaticSignatures = derive2 { name="SomaticSignatures"; version="2.40.0"; sha256="0yvn2famnyxkxnw4r1vr0vma6ym9kb343vqgaqkvcp3zpm1fi0p8"; depends=[Biobase Biostrings GenomeInfoDb GenomicRanges ggbio ggplot2 IRanges NMF pcaMethods proxy reshape2 S4Vectors VariantAnnotation]; };
+  SpaceMarkers = derive2 { name="SpaceMarkers"; version="1.0.0"; sha256="02pb6jka0irzxmw0bzjns7jfc9jbbslg3c1xxjq1v9zf3s3is21a"; depends=[ape hdf5r jsonlite Matrix matrixStats matrixTests qvalue rstatix spatstat_explore spatstat_geom]; };
+  SpacePAC = derive2 { name="SpacePAC"; version="1.42.0"; sha256="0a445gvv0x6c8765p5fjmd21i8ivnqr0jkzz6cczwkds7m0436az"; depends=[iPAC]; };
+  Spaniel = derive2 { name="Spaniel"; version="1.18.0"; sha256="03iil9iyvv9sqmkpi3hn1vqx7a2187h1ng7bzfs302dj9dpcqfaj"; depends=[dplyr DropletUtils ggplot2 igraph jpeg jsonlite magrittr png S4Vectors scater scran Seurat shiny SingleCellExperiment SummarizedExperiment]; };
+  SparseArray = derive2 { name="SparseArray"; version="1.4.8"; sha256="1ahwv6ih1700h1sccv9wh7hr5bhdif0ji5jbmsprnhjxfgn6xidm"; depends=[BiocGenerics IRanges Matrix MatrixGenerics matrixStats S4Arrays S4Vectors XVector]; };
+  SparseSignatures = derive2 { name="SparseSignatures"; version="2.14.0"; sha256="1wq1vs94pw2zb896pn6z1zk67adrqwlhrcy1sp3s3m9jw0yaiqbw"; depends=[Biostrings BSgenome data_table GenomeInfoDb GenomicRanges ggplot2 gridExtra IRanges NMF nnlasso nnls reshape2]; };
+  SpatialCPie = derive2 { name="SpatialCPie"; version="1.20.0"; sha256="0pj6m66a1qw3hi37qa4k7gpl1b8r731v9wflzr0q1yw9gwl99nh8"; depends=[colorspace data_table digest dplyr ggforce ggiraph ggplot2 ggrepel igraph lpSolve purrr readr rlang shiny shinycssloaders shinyjs shinyWidgets SummarizedExperiment tibble tidyr tidyselect zeallot]; };
+  SpatialDecon = derive2 { name="SpatialDecon"; version="1.14.0"; sha256="0p49dwp380d642xkx92wlan70crb3jinsiawnkiif6i6ry7xdxjd"; depends=[Biobase GeomxTools logNormReg Matrix repmis SeuratObject]; };
+  SpatialExperiment = derive2 { name="SpatialExperiment"; version="1.14.0"; sha256="0f04azs6wscibcpbmc1m21wjswmgr2b8gvd1n2yavya1li0xxm4r"; depends=[BiocFileCache BiocGenerics magick rjson S4Vectors SingleCellExperiment SummarizedExperiment]; };
+  SpatialFeatureExperiment = derive2 { name="SpatialFeatureExperiment"; version="1.6.1"; sha256="0p7wqhn72p538wrlkd51mac87sjd5bh2k0k9vkvvvpfls02vfx01"; depends=[Biobase BiocGenerics BiocNeighbors BiocParallel data_table DropletUtils EBImage lifecycle Matrix rjson rlang S4Vectors sf sfheaders SingleCellExperiment SpatialExperiment spdep SummarizedExperiment terra zeallot]; };
+  SpatialOmicsOverlay = derive2 { name="SpatialOmicsOverlay"; version="1.4.0"; sha256="041kdamj3whw24c6075n0f1xxxba160s3c3kq2z7dqxwzks1k6rz"; depends=[base64enc Biobase BiocFileCache data_table dplyr EBImage GeomxTools ggplot2 ggtext magick pbapply plotrix RBioFormats readxl S4Vectors scattermore stringr XML]; };
+  SpeCond = derive2 { name="SpeCond"; version="1.58.0"; sha256="0gj9f0rycd4d8ixmivgy4ijs9pikjyhsj47k5hi8lgk9w7hnk8p4"; depends=[Biobase fields hwriter mclust RColorBrewer]; };
+  Spectra = derive2 { name="Spectra"; version="1.14.1"; sha256="0mvfndd7n7varrzmv9cd3ygwbdn97x5qcgmzcxc6hr76lnkwp8al"; depends=[BiocGenerics BiocParallel fs IRanges MetaboCoreUtils MsCoreUtils ProtGenerics S4Vectors]; };
+  SpectralTAD = derive2 { name="SpectralTAD"; version="1.20.0"; sha256="0rk15gs7bs5xhgl0k5qa0zyh0dcd2pr5qmqcrzvfh49bhbaylqbx"; depends=[BiocParallel cluster dplyr GenomicRanges HiCcompare magrittr Matrix PRIMME]; };
+  SpliceWiz = derive2 { name="SpliceWiz"; version="1.6.0"; sha256="11pad2gdra4bq6is34d7981f6vb4wzsmvihgf08514d1598qn1cc"; depends=[AnnotationHub BiocFileCache BiocGenerics BiocParallel Biostrings BSgenome data_table DelayedArray DelayedMatrixStats DT fst genefilter GenomeInfoDb GenomicRanges ggplot2 HDF5Array heatmaply htmltools IRanges magrittr matrixStats NxtIRFdata ompBAM patchwork pheatmap plotly progress R_utils RColorBrewer Rcpp RcppProgress rhandsontable rhdf5 rtracklayer rvest S4Vectors scales shiny shinydashboard shinyFiles shinyWidgets stringi SummarizedExperiment zlibbioc]; };
+  SplicingFactory = derive2 { name="SplicingFactory"; version="1.12.0"; sha256="1iwkkbxviain77a64x41hc97c9bl77ayjpbjpkvmhwjh4hfdl9b7"; depends=[SummarizedExperiment]; };
+  SplicingGraphs = derive2 { name="SplicingGraphs"; version="1.44.0"; sha256="1k4j23i7ffw1q18y48jhhj7g5k3vjihq619np2y7p7xc9wv0d45g"; depends=[BiocGenerics BiocParallel GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges graph igraph IRanges Rgraphviz Rsamtools S4Vectors]; };
+  SpotClean = derive2 { name="SpotClean"; version="1.6.1"; sha256="1wq1igfyadmzszacnwx8rfhm82xslzqzjkvx6xigs1fng0c7yn61"; depends=[dplyr ggplot2 Matrix RColorBrewer readbitmap rhdf5 rjson rlang S4Vectors Seurat SpatialExperiment SummarizedExperiment tibble viridis]; };
+  SpotSweeper = derive2 { name="SpotSweeper"; version="1.0.0"; sha256="1jkc37ymip3r29fh041mfa2bq17qhxq7mp0i35zrjh2lzm83qxas"; depends=[BiocNeighbors escheR ggplot2 MASS SingleCellExperiment spatialEco SpatialExperiment SummarizedExperiment]; };
+  Statial = derive2 { name="Statial"; version="1.6.0"; sha256="0lzr0vc4zl5ryhs17l866w261ya9kxm7hx86g6xv16wr6fbw3mgv"; depends=[BiocParallel concaveman data_table dplyr ggplot2 limma magrittr plotly purrr ranger S4Vectors SingleCellExperiment SpatialExperiment spatstat_explore spatstat_geom stringr SummarizedExperiment tibble tidyr tidyselect]; };
+  Streamer = derive2 { name="Streamer"; version="1.50.0"; sha256="0biizsjg9ysr2d1kyh962znikvgwli0zf0jn8khbs4prakjxmjyn"; depends=[BiocGenerics graph RBGL]; };
+  Structstrings = derive2 { name="Structstrings"; version="1.20.0"; sha256="1ka9kixhgc9vfar18fzd8vd5ydmdkqa2s6xsmhlh927zrijs3vz9"; depends=[BiocGenerics Biostrings crayon IRanges S4Vectors stringi stringr XVector]; };
+  StructuralVariantAnnotation = derive2 { name="StructuralVariantAnnotation"; version="1.20.0"; sha256="0hnpa6ykfasp2hshqdny29dyw6y9dib4rsm379fm7n8iami1rjp1"; depends=[assertthat BiocGenerics Biostrings dplyr GenomeInfoDb GenomicFeatures GenomicRanges IRanges pwalign rlang rtracklayer S4Vectors stringr SummarizedExperiment VariantAnnotation]; };
+  SubCellBarCode = derive2 { name="SubCellBarCode"; version="1.20.0"; sha256="1r4w6mbzfsgf6bd0x5g8chjqji7dll2vjdvzrlbzgdhb710hmil0"; depends=[AnnotationDbi caret e1071 ggplot2 ggrepel gridExtra networkD3 org_Hs_eg_db Rtsne scatterplot3d]; };
+  SummarizedExperiment = derive2 { name="SummarizedExperiment"; version="1.34.0"; sha256="02cvgq2vgg0gz1gxkc4vnr9jg4wkj32bl5a1qyv77wnw2b2v5hp0"; depends=[Biobase BiocGenerics DelayedArray GenomeInfoDb GenomicRanges IRanges Matrix MatrixGenerics S4Arrays S4Vectors]; };
+  Summix = derive2 { name="Summix"; version="2.10.0"; sha256="01ri56flnhca5bkl2j5mc3siqpwhi0771h742xjwssbk1rmcp5im"; depends=[BEDASSLE dplyr magrittr nloptr randomcoloR scales tibble tidyselect visNetwork]; };
+  SurfR = derive2 { name="SurfR"; version="1.0.0"; sha256="0qbvwjcrxkv0as18af6436fi1i19gbvyj22fgglxmbmckxfwv14b"; depends=[assertr BiocFileCache BiocStyle biomaRt DESeq2 dplyr edgeR enrichR ggplot2 ggrepel gridExtra httr knitr magrittr metaRNASeq openxlsx rhdf5 scales SPsimSeq stringr SummarizedExperiment TCGAbiolinks tidyr venn]; };
+  SwathXtend = derive2 { name="SwathXtend"; version="2.26.0"; sha256="11k6a5m73pj49ahync5773w4wbz5mb27nss531nbqj738lnfidv4"; depends=[e1071 lattice openxlsx VennDiagram]; };
+  SynExtend = derive2 { name="SynExtend"; version="1.16.0"; sha256="1nikkhwyh61mhjxhrg4f1g402rzm9lc7jbaclcpp6v2rmd9dxqmw"; depends=[Biostrings DBI DECIPHER IRanges RSQLite S4Vectors]; };
+  SynMut = derive2 { name="SynMut"; version="1.20.0"; sha256="075r77ih2k29hl7ccn3v6104fk4spk733ph6jp2zxjimffnj7rj5"; depends=[BiocGenerics Biostrings seqinr stringr]; };
+  TADCompare = derive2 { name="TADCompare"; version="1.14.0"; sha256="1k80xwbc3h4994f8j5qr52rn2hk2l5qz1196r1kpn6m47h80fq6c"; depends=[cluster cowplot dplyr ggplot2 ggpubr HiCcompare magrittr Matrix PRIMME RColorBrewer reshape2 tidyr]; };
+  TAPseq = derive2 { name="TAPseq"; version="1.16.0"; sha256="0nz70a68cn8is0hp8srp7clqwwnr045mpibz4yazskia7lhbm73i"; depends=[BiocGenerics BiocParallel Biostrings BSgenome dplyr GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges IRanges S4Vectors tidyr]; };
+  TBSignatureProfiler = derive2 { name="TBSignatureProfiler"; version="1.16.0"; sha256="1vjd9dwnr6m867d1ax6kwj4w5qs5y81fzrnnjl6xkl2ch3g48jpk"; depends=[ASSIGN BiocParallel ComplexHeatmap DESeq2 DT edgeR gdata ggplot2 GSVA magrittr RColorBrewer reshape2 rlang ROCit S4Vectors singscore SummarizedExperiment]; };
+  TCC = derive2 { name="TCC"; version="1.44.0"; sha256="0j9b6q7h3w7kcpwbc3f9aabj8jrh5hwpx8rnd415rq7fakq3ix6p"; depends=[DESeq2 edgeR ROC]; };
+  TCGAbiolinks = derive2 { name="TCGAbiolinks"; version="2.32.0"; sha256="1br2dxi5rvl8z5myrnj4dnfh8xgksrqjyy0fsqh3vjspifvis4ih"; depends=[biomaRt data_table downloader dplyr GenomicRanges ggplot2 httr IRanges jsonlite knitr plyr purrr R_utils readr rvest S4Vectors stringr SummarizedExperiment TCGAbiolinksGUI_data tibble tidyr XML xml2]; };
+  TCGAutils = derive2 { name="TCGAutils"; version="1.24.0"; sha256="0fmz1lfpn8ws584q4xlicg897qs36wgr78crw0d9415ci6qqb4r8"; depends=[AnnotationDbi BiocBaseUtils BiocGenerics GenomeInfoDb GenomicDataCommons GenomicFeatures GenomicRanges IRanges MultiAssayExperiment RaggedExperiment rvest S4Vectors stringr SummarizedExperiment xml2]; };
+  TCseq = derive2 { name="TCseq"; version="1.28.0"; sha256="014al1b58rkfy1cqxwf3xgzrbdvqv2x3ac2clqmj1262ygrmiw5v"; depends=[BiocGenerics cluster e1071 edgeR GenomicAlignments GenomicRanges ggplot2 IRanges locfit reshape2 Rsamtools SummarizedExperiment]; };
+  TDbasedUFE = derive2 { name="TDbasedUFE"; version="1.4.0"; sha256="1q1ljwwkhkqq2pbzm60kkhyqrqixljcw0vqajbpwk68gmc8sxwyz"; depends=[GenomicRanges MOFAdata readr rTensor shiny tximport tximportData]; };
+  TDbasedUFEadv = derive2 { name="TDbasedUFEadv"; version="1.4.0"; sha256="1iiil5vn95bsldxigjlyqraivrnwlajkn18y0880qinrbfcwpidz"; depends=[Biobase DOSE enrichplot enrichR GenomicRanges hash RTCGA rTensor shiny STRINGdb TDbasedUFE]; };
+  TEKRABber = derive2 { name="TEKRABber"; version="1.8.0"; sha256="0ivbj063awdh41ldj6cl68ydx8y4jv8wzwwxr67iwhxdgpcwlwx8"; depends=[apeglm biomaRt DESeq2 doParallel dplyr foreach GenomeInfoDb magrittr Rcpp rtracklayer SCBN]; };
+  TENxIO = derive2 { name="TENxIO"; version="1.6.0"; sha256="1bghch637h2cckkb8czzjnvn4vlh4cjk8izy6079wq8p39zr10fx"; depends=[BiocBaseUtils BiocGenerics BiocIO GenomeInfoDb GenomicRanges Matrix MatrixGenerics R_utils RCurl readr S4Vectors SingleCellExperiment SummarizedExperiment]; };
+  TEQC = derive2 { name="TEQC"; version="4.26.0"; sha256="1cvc4lrnhkr5l5x0cpjmzxj449lmkw337a8gpan73yvj2p0r7axg"; depends=[Biobase BiocGenerics hwriter IRanges Rsamtools]; };
+  TFARM = derive2 { name="TFARM"; version="1.26.0"; sha256="1l2763lxgda628i6abl2hp5ghxzzw1lk3zmd15aibf8rfl9cghha"; depends=[arules fields GenomicRanges gplots stringr]; };
+  TFBSTools = derive2 { name="TFBSTools"; version="1.42.0"; sha256="0bmmsgmx7159bdrflykkis0v4z1ixwlnmw1kx0y0kw15lw3cjnsh"; depends=[Biobase BiocGenerics BiocParallel Biostrings BSgenome caTools CNEr DBI DirichletMultinomial GenomeInfoDb GenomicRanges gtools IRanges pwalign RSQLite rtracklayer S4Vectors seqLogo TFMPvalue XML XVector]; };
+  TFEA_ChIP = derive2 { name="TFEA.ChIP"; version="1.24.0"; sha256="0xn176h7dfb3sbg913xzwj3c2ymzf7i0y2an19zjvynk49xq12ph"; depends=[biomaRt dplyr GenomicFeatures GenomicRanges IRanges org_Hs_eg_db R_utils]; };
+  TFHAZ = derive2 { name="TFHAZ"; version="1.26.0"; sha256="1d1b1ylrqkskxkmyfjh1334kdmn0j6h5wdwcafaly1rkr4kihpl0"; depends=[GenomicRanges IRanges ORFik S4Vectors]; };
+  TFutils = derive2 { name="TFutils"; version="1.24.0"; sha256="0n0szdh09zr7866pl6y5zps6izlylhh1n20zkv7xsaq91hsw9g52"; depends=[AnnotationDbi BiocFileCache dplyr DT GSEABase httr magrittr miniUI org_Hs_eg_db readxl rjson Rsamtools shiny]; };
+  TIN = derive2 { name="TIN"; version="1.36.0"; sha256="06dmy5yjskaisibbr4qlw7bdbwj8v1b09c28v4wzd86a2554hywp"; depends=[aroma_affymetrix data_table impute squash stringr WGCNA]; };
+  TMixClust = derive2 { name="TMixClust"; version="1.26.0"; sha256="0p88kdl9v2q6wabr31v26q0612qcw1q5s71zbanamx0s2xsvyjgh"; depends=[Biobase BiocParallel cluster flexclust gss mvtnorm SPEM zoo]; };
+  TOAST = derive2 { name="TOAST"; version="1.18.0"; sha256="0srjx9z59a65nhrxbzxzxnkyn28zskc6z4p8drihq1lhw6mvdp4r"; depends=[corpcor doParallel EpiDISH GGally ggplot2 limma nnls quadprog SummarizedExperiment tidyr]; };
+  TOP = derive2 { name="TOP"; version="1.4.0"; sha256="1lj7a9kry3ca2iz231si0vfxbnib5wqj5x4ldvb1l1wfjhdf4x2p"; depends=[assertthat caret ClassifyR directPA doParallel dplyr ggnewscale ggplot2 ggraph ggrepel ggthemes glmnet Hmisc igraph latex2exp limma magrittr plotly pROC purrr reshape2 statmod stringr survival tibble tidygraph tidyr]; };
+  TPP = derive2 { name="TPP"; version="3.32.0"; sha256="1pfnk9zfd7d8ysiiawj1xbcq7vck5xs25jy2rz94mpwvgpxkvkif"; depends=[Biobase biobroom broom data_table doParallel dplyr foreach futile_logger ggplot2 gridExtra knitr limma magrittr MASS mefa nls2 openxlsx plyr purrr RColorBrewer RCurl reshape2 rmarkdown stringr tibble tidyr VennDiagram VGAM]; };
+  TPP2D = derive2 { name="TPP2D"; version="1.20.0"; sha256="1r9fgxd6jx0py4727yzcn73hr3x7rjxmi5yli57wyd07hk0p3w0y"; depends=[BiocParallel doParallel dplyr foreach ggplot2 limma MASS openxlsx RCurl stringr tidyr]; };
+  TREG = derive2 { name="TREG"; version="1.8.0"; sha256="0yf2fmswkl01ymr1zy23d2xg8j8vb5q28grqb0r83b11rkxhfhqm"; depends=[Matrix purrr rafalib SummarizedExperiment]; };
+  TRESS = derive2 { name="TRESS"; version="1.10.0"; sha256="1dv6xr625gr7jf7rk7fxhfyxgkrkc71mdc3fvzi98r23sk1h62xq"; depends=[AnnotationDbi GenomicFeatures GenomicRanges IRanges Matrix matrixStats Rsamtools rtracklayer S4Vectors]; };
+  TRONCO = derive2 { name="TRONCO"; version="2.36.0"; sha256="1dliwyjsvwr6cjf4cp3w7h46ac4fzd7hnfw4nsb330ajdr38ri0y"; depends=[bnlearn circlize doParallel foreach gridExtra gtable gtools igraph iterators R_matlab RColorBrewer Rgraphviz scales xtable]; };
+  TSAR = derive2 { name="TSAR"; version="1.2.0"; sha256="1bnyrrc92m4v35ar640pnm1fb3cq3hlp8lpwicrzbv8dvyzsxw43"; depends=[dplyr ggplot2 ggpubr jsonlite magrittr mgcv minpack_lm openxlsx plotly readxl rhandsontable shiny shinyjs shinyWidgets stringr tidyr]; };
+  TSCAN = derive2 { name="TSCAN"; version="1.42.0"; sha256="1s80n1yjmshy59ls607hp8hpq56hllbh0a4mbgvxd8bqh4njfc0j"; depends=[combinat DelayedArray fastICA ggplot2 gplots igraph Matrix mclust mgcv plyr S4Vectors shiny SingleCellExperiment SummarizedExperiment TrajectoryUtils]; };
+  TTMap = derive2 { name="TTMap"; version="1.26.0"; sha256="0988hy3hr3cf7snj7k7d0gl0w4qg7ssk53pmvvng171b82m6szqw"; depends=[Biobase colorRamps rgl SummarizedExperiment]; };
+  TVTB = derive2 { name="TVTB"; version="1.30.0"; sha256="0in5l9nq0br7c1n546wn29av5m25xxc82hvns5z8mshnnlk59pmn"; depends=[AnnotationFilter BiocGenerics BiocParallel Biostrings ensembldb ensemblVEP GenomeInfoDb GenomicRanges GGally ggplot2 Gviz IRanges limma reshape2 Rsamtools S4Vectors SummarizedExperiment VariantAnnotation]; };
+  TargetDecoy = derive2 { name="TargetDecoy"; version="1.10.0"; sha256="1gys5v5sb3ypip82q9gw21dg5whllqdhh8i9zy48qrg4mh2jby1s"; depends=[ggplot2 ggpubr miniUI mzID mzR shiny]; };
+  TargetScore = derive2 { name="TargetScore"; version="1.42.0"; sha256="124fy7q7y37jxasvnlk8sfkw307qs1wyafxvs3fmb3f3impffxsz"; depends=[Matrix pracma]; };
+  TargetSearch = derive2 { name="TargetSearch"; version="2.6.1"; sha256="1q6v6pfkpcm23a39vgp9ysbqa6wwkwv9dgnxd6m8gjlq3azgsnf6"; depends=[assertthat ncdf4]; };
+  TileDBArray = derive2 { name="TileDBArray"; version="1.14.0"; sha256="1hgwcxffg50nfjb3bpl00h7vhmfs1x15ly7sd0lpcnamk7f9c003"; depends=[DelayedArray Rcpp S4Vectors tiledb]; };
+  TissueEnrich = derive2 { name="TissueEnrich"; version="1.24.1"; sha256="02amlvaf5v30x2swxhi4na4c623v00gb3q1bvlcqias9gaaizzim"; depends=[dplyr ggplot2 GSEABase SummarizedExperiment tidyr]; };
+  TitanCNA = derive2 { name="TitanCNA"; version="1.42.0"; sha256="18ihvqn07g677r3facf43m69bnjx4i0s6w41h4mdn82hal0pfsx0"; depends=[BiocGenerics data_table dplyr foreach GenomeInfoDb GenomicRanges IRanges VariantAnnotation]; };
+  ToxicoGx = derive2 { name="ToxicoGx"; version="2.8.0"; sha256="0b34d5js6w50bm5cl5v8ppfc0lljsbm1zbrqlc5qifc8lcyliq8a"; depends=[assertthat Biobase BiocGenerics BiocParallel caTools CoreGx data_table downloader dplyr ggplot2 jsonlite limma magrittr reshape2 S4Vectors scales SummarizedExperiment tibble tidyr]; };
+  TrajectoryGeometry = derive2 { name="TrajectoryGeometry"; version="1.12.0"; sha256="102mhg46s6s95j98wsy0r6327riqhb5jcdzmksiwphsdpsp9c16s"; depends=[ggplot2 pracma rgl]; };
+  TrajectoryUtils = derive2 { name="TrajectoryUtils"; version="1.12.0"; sha256="15q1mq48nclf2lqc2v769q79frrbm2l65d54vcqg06b861q2wq9h"; depends=[igraph Matrix S4Vectors SingleCellExperiment SummarizedExperiment]; };
+  TransView = derive2 { name="TransView"; version="1.48.0"; sha256="1bk4h1sh2xdm67mkzsg2l0kgg88m5z39hxmshh0j2bybyyy07jkp"; depends=[BiocGenerics GenomicRanges gplots IRanges Rhtslib S4Vectors zlibbioc]; };
+  TreeAndLeaf = derive2 { name="TreeAndLeaf"; version="1.16.0"; sha256="0fm1v6w73vs99smqk8i8b85pr38zlbpgyby6qh3s0xslxbyk6b32"; depends=[ape igraph RedeR]; };
+  TreeSummarizedExperiment = derive2 { name="TreeSummarizedExperiment"; version="2.12.0"; sha256="0ygzw9nba5pxgrbib8sm7qwhzzm8m038banb0z7n42vkb1cb3d5i"; depends=[ape BiocGenerics BiocParallel Biostrings dplyr IRanges rlang S4Vectors SingleCellExperiment SummarizedExperiment treeio]; };
+  Trendy = derive2 { name="Trendy"; version="1.26.0"; sha256="172hcq9zxah3m55j3kzpg5hvr06d656j1s8j3jcvksc0f3l9r990"; depends=[BiocParallel DT gplots magrittr S4Vectors segmented shiny shinyFiles SummarizedExperiment]; };
+  TurboNorm = derive2 { name="TurboNorm"; version="1.52.0"; sha256="13096cp69y6vkn0gm13ssyzgp7fhvqggnipigdfdrpmvf8gcl881"; depends=[affy convert lattice limma marray]; };
+  TypeInfo = derive2 { name="TypeInfo"; version="1.70.0"; sha256="0sx9z1wnlh6sj8gww0mxwavggkgj4zk23z8509pbch36acr6fgls"; depends=[]; };
+  UCSC_utils = derive2 { name="UCSC.utils"; version="1.0.0"; sha256="0w9f5xd6ryniapbpcrpczn8wimph2154w45cvdgqfa3dv5qy379l"; depends=[httr jsonlite S4Vectors]; };
+  UCell = derive2 { name="UCell"; version="2.8.0"; sha256="09r64rrydwgvvvq8f5vzvn7dsh24l9sa1if21wcimrl28ci1g1mv"; depends=[BiocNeighbors BiocParallel data_table Matrix SingleCellExperiment SummarizedExperiment]; };
+  UMI4Cats = derive2 { name="UMI4Cats"; version="1.14.0"; sha256="1cf2jsmhsmw6i381wxnb0zsyhkr2mjlxlzpjnlfxyf4kr6n8k797"; depends=[annotate BiocFileCache BiocGenerics Biostrings BSgenome cowplot DESeq2 dplyr fda GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 IRanges magick magrittr org_Hs_eg_db R_utils rappdirs Rbowtie2 RColorBrewer regioneR reshape2 rlang Rsamtools S4Vectors scales ShortRead stringr SummarizedExperiment TxDb_Hsapiens_UCSC_hg19_knownGene zoo]; };
+  UNDO = derive2 { name="UNDO"; version="1.46.0"; sha256="1h7bri3hkl99gll5vpamgp7x60afdmq8h1mqw4plr9ypxv2kljpj"; depends=[Biobase BiocGenerics boot MASS nnls]; };
+  UPDhmm = derive2 { name="UPDhmm"; version="1.0.0"; sha256="0qa6d3c2gvhfq5shgdpsgzrghx8jwpvx6an8rvidl5p7nzhhdjgi"; depends=[GenomicRanges HMM IRanges S4Vectors VariantAnnotation]; };
+  Ularcirc = derive2 { name="Ularcirc"; version="1.22.0"; sha256="0qzkvwg3gd9v9cqf3hmmyh4gzdqs5m6nxjjbnhqsdp6wshccdv4p"; depends=[AnnotationDbi AnnotationHub BiocGenerics Biostrings BSgenome data_table DT GenomeInfoDb GenomeInfoDbData GenomicAlignments GenomicFeatures GenomicRanges ggplot2 ggrepel gsubfn mirbase_db moments Organism_dplyr plotgardener R_utils S4Vectors shiny shinydashboard shinyFiles shinyjs yaml]; };
+  UniProt_ws = derive2 { name="UniProt.ws"; version="2.44.0"; sha256="1vcbphksaanggig1yfmrihhw1a4fmy1cl7yq5w3z3lb6zik5rgx8"; depends=[AnnotationDbi BiocBaseUtils BiocFileCache BiocGenerics httpcache httr jsonlite progress rjsoncons RSQLite]; };
+  Uniquorn = derive2 { name="Uniquorn"; version="2.24.0"; sha256="1f2hp395gfxnrf9mg8kqd6cjr9b651gzrj2bcfv5hx2qh0mh1z75"; depends=[data_table doParallel foreach GenomicRanges IRanges R_utils stringr VariantAnnotation WriteXLS]; };
+  VAExprs = derive2 { name="VAExprs"; version="1.10.0"; sha256="0mcdh0xsqjpc3nj1xfps3y2r62ayh8ykgpyblqxp2n52f781hcbx"; depends=[CatEncoders DeepPINCS DiagrammeR keras mclust purrr scater SingleCellExperiment SummarizedExperiment tensorflow]; };
+  VCFArray = derive2 { name="VCFArray"; version="1.20.0"; sha256="07z0zds9pqh7wi5zl8wsyxqrks5j182j0005c225y8n4qgwbmqk0"; depends=[BiocGenerics DelayedArray GenomicFiles GenomicRanges Rsamtools S4Vectors VariantAnnotation]; };
+  VDJdive = derive2 { name="VDJdive"; version="1.6.0"; sha256="1ml175pk27msai86pnm8jyy8li7f5rkkqqfw1a9m9d850n7ry37h"; depends=[BiocParallel cowplot ggplot2 gridExtra IRanges Matrix RColorBrewer Rcpp S4Vectors SingleCellExperiment SummarizedExperiment]; };
+  VERSO = derive2 { name="VERSO"; version="1.14.0"; sha256="1yixhbwa2wi3rddmyd37b9nznw4c7s36wz0mnzwqvx1n9w0zpdk3"; depends=[ape data_tree Rfast]; };
+  VaSP = derive2 { name="VaSP"; version="1.16.0"; sha256="1gh0mgci2jadv3g0wc3li6d9rlaaqybdx148gkzwnjf0bmhqxz34"; depends=[ballgown cluster GenomeInfoDb GenomicAlignments GenomicRanges IRanges matrixStats Rsamtools S4Vectors]; };
+  VanillaICE = derive2 { name="VanillaICE"; version="1.66.0"; sha256="0a9yzlwnyq9840w25gqsc0ijydifq6kbr7z9bzq74s7zqxzxkkqv"; depends=[Biobase BiocGenerics BSgenome_Hsapiens_UCSC_hg18 crlmm data_table foreach GenomeInfoDb GenomicRanges IRanges lattice MatrixGenerics matrixStats oligoClasses S4Vectors SummarizedExperiment]; };
+  VarCon = derive2 { name="VarCon"; version="1.12.0"; sha256="1ns5sxb2qrh0y6hdg6qn6s1hl4d64cvsipl6mcwqiyka9lrlmlhy"; depends=[Biostrings BSgenome GenomicRanges ggplot2 IRanges shiny shinycssloaders shinyFiles]; };
+  VariantAnnotation = derive2 { name="VariantAnnotation"; version="1.50.0"; sha256="0slvlhm65hkjspzlzs3gi04a6mlfwvda314z1nmzpdi3y5111fg7"; depends=[AnnotationDbi Biobase BiocGenerics Biostrings BSgenome DBI GenomeInfoDb GenomicFeatures GenomicRanges IRanges MatrixGenerics Rhtslib Rsamtools rtracklayer S4Vectors SummarizedExperiment XVector zlibbioc]; };
+  VariantExperiment = derive2 { name="VariantExperiment"; version="1.18.1"; sha256="0wxhfd92cfh9rg99jrw9rg7vfqk8lf2ylkpki2jf59hlx8zzs2z9"; depends=[Biostrings DelayedArray DelayedDataFrame GDSArray gdsfmt GenomicRanges IRanges S4Vectors SeqArray SNPRelate SummarizedExperiment]; };
+  VariantFiltering = derive2 { name="VariantFiltering"; version="1.40.0"; sha256="14kxlzgy71s8h34galx93q8kalspr1m23brssbr3wha0hxb0ghgd"; depends=[AnnotationDbi Biobase BiocGenerics BiocParallel Biostrings BSgenome DT GenomeInfoDb GenomicFeatures GenomicRanges GenomicScores graph Gviz IRanges RBGL Rsamtools S4Vectors shiny shinyjs shinythemes shinyTree SummarizedExperiment VariantAnnotation XVector]; };
+  VariantTools = derive2 { name="VariantTools"; version="1.46.0"; sha256="1idil9vkd5risx9ahkagdacnj2g2a11gzsd7wmhg5gjmr77r53ww"; depends=[Biobase BiocGenerics BiocParallel Biostrings BSgenome GenomeInfoDb GenomicFeatures GenomicRanges IRanges Matrix Rsamtools rtracklayer S4Vectors VariantAnnotation]; };
+  VegaMC = derive2 { name="VegaMC"; version="3.42.0"; sha256="0jswscxb78g6j978361g4cmwlzlwfkyfx6i3p9fpny464i8gsfji"; depends=[Biobase biomaRt]; };
+  VennDetail = derive2 { name="VennDetail"; version="1.20.0"; sha256="0987ljk70lsjhwzk3dxslg80ng8cnjhh02zr2raphyliys0msvxz"; depends=[dplyr futile_logger ggplot2 magrittr purrr tibble UpSetR VennDiagram]; };
+  ViSEAGO = derive2 { name="ViSEAGO"; version="1.18.0"; sha256="06cqx88vndmgxb7vhn7w0kwkxrsn8hy3a3mz591pj48f3z0q9w16"; depends=[AnnotationDbi AnnotationForge biomaRt data_table dendextend DiagrammeR DT dynamicTreeCut fgsea ggplot2 GO_db GOSemSim heatmaply htmlwidgets igraph plotly processx R_utils RColorBrewer scales topGO UpSetR]; };
+  VisiumIO = derive2 { name="VisiumIO"; version="1.0.0"; sha256="01yvahz20fkvf2mj0zjl04w0dzs5jf4snlmry8d5a9y3smkspqyv"; depends=[BiocBaseUtils BiocGenerics BiocIO jsonlite S4Vectors SpatialExperiment SummarizedExperiment TENxIO]; };
+  Voyager = derive2 { name="Voyager"; version="1.6.0"; sha256="0nvcp1wcrisiljj4w61ykz82a2l8c9vx8ixh209v2ih004wyy1y1"; depends=[BiocParallel bluster ggnewscale ggplot2 lifecycle Matrix matrixStats memuse patchwork rlang RSpectra S4Vectors scales scico sf SingleCellExperiment SpatialExperiment SpatialFeatureExperiment spdep SummarizedExperiment terra]; };
+  VplotR = derive2 { name="VplotR"; version="1.14.0"; sha256="1cg5ifl2k2134k5lhxfvsr4xm31w0bdg0rzy8yb5k77gldilb0il"; depends=[cowplot GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 IRanges magrittr RColorBrewer reshape2 Rsamtools S4Vectors zoo]; };
+  Wrench = derive2 { name="Wrench"; version="1.22.0"; sha256="1nwbqagpcs38c66r1arbby76if6pafa4snd6zbp18y71jj8rgvl7"; depends=[limma locfit matrixStats]; };
+  XDE = derive2 { name="XDE"; version="2.50.0"; sha256="1f0aahpyrmkg5h3v6v5qw35gsjskh6dh16bgygkssa1qcafmqfv1"; depends=[Biobase BiocGenerics genefilter GeneMeta gtools mvtnorm RColorBrewer siggenes]; };
+  XINA = derive2 { name="XINA"; version="1.22.0"; sha256="177yzqmkf3f2xgfrz1zpcw554yzm4njd2chhmvxi2vvijvnrgdf3"; depends=[alluvial ggplot2 gridExtra igraph mclust plyr STRINGdb]; };
+  XNAString = derive2 { name="XNAString"; version="1.12.0"; sha256="0dgdaq8w7q32scdxragi40x7mkgpvvyzs2bwfb6c2yb4n2j40imi"; depends=[Biostrings BSgenome data_table formattable future_apply GenomicRanges IRanges pwalign Rcpp S4Vectors stringi stringr]; };
+  XVector = derive2 { name="XVector"; version="0.44.0"; sha256="0fxv97m79w0ph4wbgp9drz6ahvnnzpv08grb11lr6a7laqq5x8s2"; depends=[BiocGenerics IRanges S4Vectors zlibbioc]; };
+  Xeva = derive2 { name="Xeva"; version="1.20.0"; sha256="1n6bxj5gshr2rzcxw6dc5wcmj1ajssrqzp7a7b6rlnszk2h4vgys"; depends=[BBmisc Biobase ComplexHeatmap doParallel downloader ggplot2 nlme PharmacoGx Rmisc scales]; };
+  YAPSA = derive2 { name="YAPSA"; version="1.30.0"; sha256="0908hyji07br1i1zms21a99m3mvi707xj8zbd1w64gzackghabhl"; depends=[Biostrings BSgenome_Hsapiens_UCSC_hg19 circlize ComplexHeatmap corrplot dendextend doParallel dplyr GenomeInfoDb GenomicRanges GetoptLong ggbeeswarm ggplot2 gridExtra gtrellis KEGGREST limSolve magrittr PMCMRplus pracma reshape2 SomaticSignatures VariantAnnotation]; };
+  ZygosityPredictor = derive2 { name="ZygosityPredictor"; version="1.4.0"; sha256="03yxnrbkfzc1dqa8zin8gwi9iryw3ir2k5s80dzxclr1651zh5xd"; depends=[DelayedArray dplyr GenomicAlignments GenomicRanges igraph IRanges knitr magrittr purrr readr rlang Rsamtools stringr tibble VariantAnnotation]; };
+  a4 = derive2 { name="a4"; version="1.52.0"; sha256="1wzqpvz49wkbvqij48c3l6vqfvflgic8gzvjdigb1c6mr96l6vgg"; depends=[a4Base a4Classif a4Core a4Preproc a4Reporting]; };
+  a4Base = derive2 { name="a4Base"; version="1.52.0"; sha256="19vapjmyd3ly3s2gqa2xfg99gyc6n6lv3c6rpi0ch4hzb7wiinvm"; depends=[a4Core a4Preproc annaffy Biobase genefilter glmnet gplots limma mpm multtest]; };
+  a4Classif = derive2 { name="a4Classif"; version="1.52.0"; sha256="15jcd66brvbjz0p3z2b43ac5k81s3vmcbkwmga0f7f5v53fp8qvw"; depends=[a4Core a4Preproc Biobase glmnet pamr ROCR varSelRF]; };
+  a4Core = derive2 { name="a4Core"; version="1.52.0"; sha256="1jn2ikzijd282jl96i9hcvahkc6l2vsd79dxqiz7kwaqcp7hs5z9"; depends=[Biobase glmnet]; };
+  a4Preproc = derive2 { name="a4Preproc"; version="1.52.0"; sha256="1yphs36pk2y4qajq24y443yzb2f55b08nl81ylpf65mvxlxd23w2"; depends=[Biobase BiocGenerics]; };
+  a4Reporting = derive2 { name="a4Reporting"; version="1.52.0"; sha256="08zlg74qryqm238mld876v15a6c71brkz2y1gnbj0rnl1l9f9rbh"; depends=[xtable]; };
+  aCGH = derive2 { name="aCGH"; version="1.82.0"; sha256="00dcx6kcqq5xcdy7rqgi51cvc20dsgrrki8aicbj1icx0m6601wa"; depends=[Biobase cluster multtest survival]; };
+  abseqR = derive2 { name="abseqR"; version="1.22.0"; sha256="0aj3kh4c8zk60n6yyh2jblbrvv77071r96m0mrcslqm71dwg9402"; depends=[BiocParallel BiocStyle circlize flexdashboard ggcorrplot ggdendro ggplot2 gridExtra knitr plotly plyr png RColorBrewer reshape2 rmarkdown stringr vegan VennDiagram]; };
+  acde = derive2 { name="acde"; version="1.34.0"; sha256="1h3drjxdmd837hc7l1xk6b4ha39i7bqkb8862h4h6s5rfa7dcc50"; depends=[boot]; };
+  adSplit = derive2 { name="adSplit"; version="1.74.0"; sha256="13rrkb0vxkknvqhb8pgx8d13sxzy3w0wbkhhj5lrlc1kb1yqcfbh"; depends=[AnnotationDbi Biobase cluster GO_db KEGGREST multtest]; };
+  adductomicsR = derive2 { name="adductomicsR"; version="1.20.0"; sha256="0800jbfm488i6ccz48k49gpxr9sf9104cxcghgy9c4lzm5d3wfbm"; depends=[adductData ade4 AnnotationHub bootstrap data_table doSNOW dplyr DT ExperimentHub fastcluster foreach fpc mzR OrgMassSpecR pastecs pracma RcppEigen reshape2 rvest smoother zoo]; };
+  adverSCarial = derive2 { name="adverSCarial"; version="1.2.0"; sha256="1c8anqpxdrkc33pfm1phqjsb8kjdrfqxh93x8n2mpsywqg8q27pb"; depends=[DelayedArray gtools S4Vectors]; };
+  affxparser = derive2 { name="affxparser"; version="1.76.0"; sha256="0qqc2sq331g2ml390nhjkrnldp6bi7r6xyz7rw77hnr3qpcrhqk2"; depends=[]; };
+  affy = derive2 { name="affy"; version="1.82.0"; sha256="19z22c1yd3rkwk7dp8q8xv16n0qv92iz00vzid3pniy7zr80cxxy"; depends=[affyio Biobase BiocGenerics BiocManager preprocessCore zlibbioc]; };
+  affyContam = derive2 { name="affyContam"; version="1.62.0"; sha256="0r4pqda9pv60b867c6yi328687kyxjglk5jmcal6xnlr75nf4w0y"; depends=[affy affydata Biobase]; };
+  affyILM = derive2 { name="affyILM"; version="1.56.0"; sha256="185kdrnvcp2jw0k71q0v4yk7583gwgi31h0n281x25hirixf6rm3"; depends=[affxparser affy Biobase gcrma]; };
+  affyPLM = derive2 { name="affyPLM"; version="1.80.0"; sha256="1khknl7k45amyw58mcgw7kl511llyddw31qzwqc2l5c4j3bwnpz5"; depends=[affy Biobase BiocGenerics gcrma preprocessCore zlibbioc]; };
+  affycomp = derive2 { name="affycomp"; version="1.80.0"; sha256="02n2v1iwkhmilv1bjfza2yrqj7rsr8v46bghajcb8wdyyaj759ib"; depends=[Biobase]; };
+  affycoretools = derive2 { name="affycoretools"; version="1.76.0"; sha256="0w138n3f68ndr0innk981vf8p5wb729m31p0d3f9qp08hmv58jfw"; depends=[affy AnnotationDbi Biobase BiocGenerics DBI edgeR gcrma ggplot2 Glimma GOstats gplots hwriter lattice limma oligoClasses ReportingTools RSQLite S4Vectors xtable]; };
+  affyio = derive2 { name="affyio"; version="1.74.0"; sha256="156sijj9zy01p038m7yw58h1bw1ii0kd5q9kv3krh6bs67c3dv8h"; depends=[zlibbioc]; };
+  affylmGUI = derive2 { name="affylmGUI"; version="1.78.0"; sha256="1qilkr3dcl6driah24kgz7lrzamq08qp2z03inm2m4r5yx8811wc"; depends=[affy affyio affyPLM AnnotationDbi BiocGenerics BiocManager gcrma limma R2HTML tkrplot xtable]; };
+  aggregateBioVar = derive2 { name="aggregateBioVar"; version="1.14.0"; sha256="0qag99chj7n7l0wbb8ar0f58xs6883rgddkgj7jnrrlj3acrm12v"; depends=[Matrix rlang S4Vectors SingleCellExperiment SummarizedExperiment tibble]; };
+  agilp = derive2 { name="agilp"; version="3.36.0"; sha256="1mfi4xvx6ywkr7b7ma9ip6q2nsjvkri8qx48qyr98yyik7gg28d5"; depends=[]; };
+  airpart = derive2 { name="airpart"; version="1.12.0"; sha256="05l5rgjfjln3kip72wj4ll4cgak9yz60xg6dgxxj690pxs1pw7bg"; depends=[apeglm clue ComplexHeatmap dplyr dynamicTreeCut emdbook forestplot ggplot2 lpSolve matrixStats mclust pbapply plyr RColorBrewer rlang S4Vectors scater SingleCellExperiment smurf SummarizedExperiment]; };
+  alabaster = derive2 { name="alabaster"; version="1.4.0"; sha256="0c8ryjn4a4py5439vlk23rskf96xc77blj51c6g6m9j812fsby3l"; depends=[alabaster_base alabaster_bumpy alabaster_mae alabaster_matrix alabaster_ranges alabaster_sce alabaster_se alabaster_spatial alabaster_string alabaster_vcf]; };
+  alabaster_base = derive2 { name="alabaster.base"; version="1.4.1"; sha256="1id8cs3m1kpcfmk9aa957vy7svf7aam4kzyzic36rxcqmarr130h"; depends=[alabaster_schemas jsonlite jsonvalidate Rcpp rhdf5 Rhdf5lib S4Vectors]; };
+  alabaster_bumpy = derive2 { name="alabaster.bumpy"; version="1.4.0"; sha256="16q433asljnnx04b7q2a4ajhbsrzrqa35m6mcx9apg6q24iw869x"; depends=[alabaster_base BiocGenerics BumpyMatrix IRanges Matrix rhdf5 S4Vectors]; };
+  alabaster_files = derive2 { name="alabaster.files"; version="1.2.0"; sha256="0mib4wix9ddgvhgff05gq2ijy6kyh884nv0j40rxzfkxqhp77gim"; depends=[alabaster_base BiocGenerics Rsamtools S4Vectors]; };
+  alabaster_mae = derive2 { name="alabaster.mae"; version="1.4.0"; sha256="07w4q6dm4asrcdqynhdlxyaaf29s3ca8ij8iblwjnpgp9p5pbj6v"; depends=[alabaster_base alabaster_se jsonlite MultiAssayExperiment rhdf5 S4Vectors]; };
+  alabaster_matrix = derive2 { name="alabaster.matrix"; version="1.4.0"; sha256="00k0lylyhz6glqhd463bbmmldqhv5i7an9nw95md7x2m43c9gzyk"; depends=[alabaster_base BiocGenerics DelayedArray HDF5Array Matrix Rcpp rhdf5 S4Arrays S4Vectors SparseArray]; };
+  alabaster_ranges = derive2 { name="alabaster.ranges"; version="1.4.1"; sha256="0d3ygcn2sxkrdyjlwl98l50b0vqxrsp24vb029z5g8kjbvqhh5kr"; depends=[alabaster_base BiocGenerics GenomeInfoDb GenomicRanges IRanges rhdf5 S4Vectors]; };
+  alabaster_sce = derive2 { name="alabaster.sce"; version="1.4.0"; sha256="1i9nmivsfrd7fbb8njmwihfx4xpj4p3h5bnlj9fvk5308bbj3qcg"; depends=[alabaster_base alabaster_se jsonlite SingleCellExperiment]; };
+  alabaster_schemas = derive2 { name="alabaster.schemas"; version="1.4.0"; sha256="1cizlslxw0nhrfjsz3x90waa9w4n2v72a0cycbzvxqbbvkh3cp1l"; depends=[]; };
+  alabaster_se = derive2 { name="alabaster.se"; version="1.4.1"; sha256="134r4pwaa4nsmdgqxs16w3adn482zl70lgyd4s96pmx7hqm9i1vx"; depends=[alabaster_base alabaster_matrix alabaster_ranges BiocGenerics GenomicRanges IRanges jsonlite S4Vectors SummarizedExperiment]; };
+  alabaster_spatial = derive2 { name="alabaster.spatial"; version="1.4.0"; sha256="11mgs6smyiv4r5cajzqpw0k7q0jsm6xch1b5c9w7scl7d9bq981k"; depends=[alabaster_base alabaster_sce rhdf5 S4Vectors SpatialExperiment]; };
+  alabaster_string = derive2 { name="alabaster.string"; version="1.4.0"; sha256="0p55dpfwjjikmgyq0vk9hmd6k0j3d2x4jjxd7wnabhga3vr4jg7q"; depends=[alabaster_base Biostrings S4Vectors]; };
+  alabaster_vcf = derive2 { name="alabaster.vcf"; version="1.4.0"; sha256="1ry5gim6kkis8wy0v1afv44ay6nw8m9nd6jl89980z499pblf9j4"; depends=[alabaster_base alabaster_se alabaster_string Rsamtools S4Vectors VariantAnnotation]; };
+  alevinQC = derive2 { name="alevinQC"; version="1.20.0"; sha256="1pq42lvgggysg28ngxipqb1l7jfj498nxpg40h02siz6nb6inbdw"; depends=[cowplot dplyr DT GGally ggplot2 Rcpp rjson rlang rmarkdown shiny shinydashboard tximport]; };
+  altcdfenvs = derive2 { name="altcdfenvs"; version="2.66.0"; sha256="08k3j3dc93vg5c9ccw7mc4fri9xbdj7rdjyj0h6ig0s5866fqvlb"; depends=[affy Biobase BiocGenerics Biostrings hypergraph makecdfenv S4Vectors]; };
+  amplican = derive2 { name="amplican"; version="1.26.0"; sha256="1nbyivd5020kqkmk5ngpaixhdxgmqpifaxnfgq6yc2njqizgbhxy"; depends=[BiocGenerics BiocParallel Biostrings cluster data_table dplyr GenomeInfoDb GenomicRanges ggplot2 ggthemes gridExtra gtable IRanges knitr Matrix matrixStats pwalign Rcpp rmarkdown S4Vectors ShortRead stringr waffle]; };
+  animalcules = derive2 { name="animalcules"; version="1.20.0"; sha256="1g073n8nmckd388hy9gfiddil53wv692k69ywjc85jyp5jy2n265"; depends=[ape assertthat caret covr DESeq2 dplyr DT forcats ggforce ggplot2 GUniFrac lattice limma magrittr Matrix MultiAssayExperiment plotly rentrez reshape2 ROCit S4Vectors scales shiny shinyjs SummarizedExperiment tibble tidyr tsne umap vegan XML]; };
+  annaffy = derive2 { name="annaffy"; version="1.76.0"; sha256="1298mn8yz4i0qqw1i8pd4ym5f65dmyb8wcmpyahzz11na4diybmj"; depends=[AnnotationDbi Biobase BiocManager DBI GO_db]; };
+  annmap = derive2 { name="annmap"; version="1.46.0"; sha256="1xijcm0c19wj2yknrlsz2ifm097z32rc58k608482686srj0bg2i"; depends=[Biobase BiocGenerics DBI digest genefilter GenomicRanges IRanges lattice RMySQL Rsamtools]; };
+  annotate = derive2 { name="annotate"; version="1.82.0"; sha256="1v4sq22lwrhl50whag0jil788wwvi4rpdaij03iwak93q998ls0f"; depends=[AnnotationDbi Biobase BiocGenerics DBI httr XML xtable]; };
+  annotationTools = derive2 { name="annotationTools"; version="1.78.0"; sha256="1hwawrp0pbrm9xf7fn65nj0q4s49qlnmxfjlmrv5fykyn3i1lhpq"; depends=[Biobase]; };
+  annotatr = derive2 { name="annotatr"; version="1.30.0"; sha256="11cc3nknbckm0v5r7dzgqzw0137w4c08ab10s9svb1y02z45a0qz"; depends=[AnnotationDbi AnnotationHub dplyr GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 IRanges readr regioneR reshape2 rtracklayer S4Vectors]; };
+  anota = derive2 { name="anota"; version="1.52.0"; sha256="1pg9p6982901k08iqpk0cdb9hii3k7bci9gq6an711r8a4iy3lmc"; depends=[multtest qvalue]; };
+  anota2seq = derive2 { name="anota2seq"; version="1.26.0"; sha256="140k37wswl4w2136pz9y0z82sphzxmgzgk3cr400kkm39wjn7vxm"; depends=[DESeq2 edgeR limma multtest qvalue RColorBrewer SummarizedExperiment]; };
+  antiProfiles = derive2 { name="antiProfiles"; version="1.44.0"; sha256="0p2fhxzgn877mic2yv1sgcidgm74z8hxa3hdaawgvhhvi2j6v8wa"; depends=[locfit matrixStats]; };
+  apComplex = derive2 { name="apComplex"; version="2.70.0"; sha256="1fsqrds5r8bhdf7fbnw6rf3vqapl6xk1a5l6jjb98raxmjsrfyqs"; depends=[graph org_Sc_sgd_db RBGL Rgraphviz]; };
+  apeglm = derive2 { name="apeglm"; version="1.26.1"; sha256="039my876v0k2mr50w90w3phj4cq55awf5ks07kr2fnm7w211gxvs"; depends=[emdbook GenomicRanges Rcpp RcppEigen RcppNumerical SummarizedExperiment]; };
+  appreci8R = derive2 { name="appreci8R"; version="1.22.0"; sha256="1nwb7475lhclyd0jdwm0sp1wh2rgs2h16k4hin6z44axix5v7jhr"; depends=[Biostrings BSgenome BSgenome_Hsapiens_UCSC_hg19 COSMIC_67 DT GenomicFeatures GenomicRanges GenomicScores Homo_sapiens IRanges MafDb_1Kgenomes_phase3_hs37d5 MafDb_ExAC_r1_0_hs37d5 MafDb_gnomADex_r2_1_hs37d5 openxlsx PolyPhen_Hsapiens_dbSNP131 rentrez Rsamtools S4Vectors seqinr shiny shinyjs SIFT_Hsapiens_dbSNP137 SNPlocs_Hsapiens_dbSNP144_GRCh37 stringr SummarizedExperiment TxDb_Hsapiens_UCSC_hg19_knownGene VariantAnnotation XtraSNPlocs_Hsapiens_dbSNP144_GRCh37]; };
+  aroma_light = derive2 { name="aroma.light"; version="3.34.0"; sha256="1v24b43knsjpw44zkrzv8pvxjiw12rcz9wqp4ahd88dg23j7pvwz"; depends=[matrixStats R_methodsS3 R_oo R_utils]; };
+  arrayMvout = derive2 { name="arrayMvout"; version="1.62.0"; sha256="11v3s972nyahdswqdcab0fj9jb73vd5dnd5kfb09572y4z0hn5xw"; depends=[affy affyContam Biobase lumi mdqc parody]; };
+  arrayQuality = derive2 { name="arrayQuality"; version="1.82.0"; sha256="0wmczy2wdxki9pam9q6ly5clvqbl018v1ar4zkdm8algjddyc2cp"; depends=[gridBase hexbin limma marray RColorBrewer]; };
+  arrayQualityMetrics = derive2 { name="arrayQualityMetrics"; version="3.60.0"; sha256="04y1vbpxqhqn1vsyqmscikaxn6wshsk4krcqzf2baf9x4azbdjk1"; depends=[affy affyPLM beadarray Biobase genefilter gridSVG Hmisc hwriter lattice latticeExtra limma RColorBrewer setRNG svglite vsn XML]; };
+  artMS = derive2 { name="artMS"; version="1.22.0"; sha256="11a6igby8kz2r5wawrsisz22v4hak9004zr8y87v3pp92rnvb3ma"; depends=[AnnotationDbi bit64 circlize cluster corrplot data_table dplyr getopt ggdendro ggplot2 ggrepel gplots limma MSstats openxlsx org_Hs_eg_db pheatmap plotly plyr RColorBrewer scales seqinr stringr tidyr UpSetR VennDiagram yaml]; };
+  atSNP = derive2 { name="atSNP"; version="1.20.0"; sha256="08pcbys8iy8wzqzzvlnwc3qw7m7cswkqa3x2x2x8m4ni1s4isd6z"; depends=[BiocFileCache BiocParallel BSgenome data_table ggplot2 lifecycle motifStack rappdirs Rcpp testthat]; };
+  atena = derive2 { name="atena"; version="1.10.0"; sha256="1y2v8mi9awgfbcawpcir01qglxn0bdgj6v2dsdqp6if25cizl3sr"; depends=[AnnotationHub BiocGenerics BiocParallel cli GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges IRanges Matrix MatrixGenerics matrixStats Rsamtools S4Vectors sparseMatrixStats SQUAREM SummarizedExperiment]; };
+  attract = derive2 { name="attract"; version="1.56.0"; sha256="08l634sk6y06y2m78vsd0ld4w3h6qvx4hk6wkqflkl9jjyqpx8jy"; depends=[AnnotationDbi Biobase cluster GOstats KEGGREST limma org_Hs_eg_db reactome_db]; };
+  autonomics = derive2 { name="autonomics"; version="1.12.1"; sha256="1fzzj0v6v4jvr3wh5bnjr6h2ny8zfm9pdlbhq5syaa2plvsbblpy"; depends=[abind BiocFileCache BiocGenerics bit64 codingMatrices colorspace data_table dplyr edgeR ggforce ggplot2 ggrepel gridExtra limma magrittr matrixStats MultiAssayExperiment R_utils RColorBrewer readxl rlang S4Vectors scales stringi SummarizedExperiment tidyr tidyselect vsn]; };
+  awst = derive2 { name="awst"; version="1.12.0"; sha256="1iaakdjxrz4szl4lnjcszy47q5dsh2d7i3wrr3wwdhw6wjcd62hj"; depends=[SummarizedExperiment]; };
+  bacon = derive2 { name="bacon"; version="1.32.0"; sha256="09lvjb0fa70kcl7mkp4agxv6jcm2ncmnrffav6zmz038imhmvdgm"; depends=[BiocParallel ellipse ggplot2]; };
+  ballgown = derive2 { name="ballgown"; version="2.36.0"; sha256="0x3avbqf0ipmb70szf2chhbdg14ba2hwhyyz0wd66c1qwfk6aj9v"; depends=[Biobase GenomeInfoDb GenomicRanges IRanges limma RColorBrewer rtracklayer S4Vectors sva]; };
+  bambu = derive2 { name="bambu"; version="3.6.0"; sha256="1pn6a74nvcpn0xzfb8167hbc6pdma0ybhh7kjpqdl4hgjp446w5w"; depends=[BiocGenerics BiocParallel BSgenome data_table dplyr GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges IRanges Rcpp RcppArmadillo Rsamtools S4Vectors SummarizedExperiment tidyr xgboost]; };
+  bamsignals = derive2 { name="bamsignals"; version="1.36.0"; sha256="1jq993m6b0cv3ibgjrbzyka7svb653hvi6bvqhf8ir3lgjgs23dp"; depends=[BiocGenerics GenomicRanges IRanges Rcpp Rhtslib zlibbioc]; };
+  bandle = derive2 { name="bandle"; version="1.8.0"; sha256="0lkmwr207s26kxmhfcsay4mb3fg70wjcrhhjj82g5yjrycmjidm9"; depends=[BH Biobase BiocParallel BiocStyle circlize dplyr ggalluvial ggplot2 ggrepel knitr lbfgs MSnbase plyr pRoloc pRolocdata Rcpp RcppArmadillo rlang robustbase S4Vectors tidyr]; };
+  banocc = derive2 { name="banocc"; version="1.28.0"; sha256="12fysw9m3rrmyfq1j97rdklaln6vgjdmz7hj85vrh10haz9j23s2"; depends=[coda mvtnorm rstan stringr]; };
+  barcodetrackR = derive2 { name="barcodetrackR"; version="1.12.0"; sha256="0x0fpa44lyww2l1rdc35pdlgczz4y1vxjbn0s1frlpaacmqcxrly"; depends=[circlize cowplot dplyr ggdendro ggplot2 ggridges magrittr plyr proxy RColorBrewer rlang S4Vectors scales shiny SummarizedExperiment tibble tidyr vegan viridis]; };
+  basecallQC = derive2 { name="basecallQC"; version="1.28.0"; sha256="033agi9xcyr2mpryyqjzd1diinv3cnam6f13qw4xfg0fncn0rm83"; depends=[data_table dplyr DT ggplot2 knitr lazyeval magrittr prettydoc raster rmarkdown ShortRead stringr tidyr XML yaml]; };
+  basilisk = derive2 { name="basilisk"; version="1.16.0"; sha256="1jhaar524z4ly8d4c7nyjn094m4sgz4vhh8qljd2yvs30xxs0jin"; depends=[basilisk_utils dir_expiry reticulate]; };
+  basilisk_utils = derive2 { name="basilisk.utils"; version="1.16.0"; sha256="04amc13h4ghy1zr9wkdl42wgicxz5s2iwsspxvvi18acm06nzgfh"; depends=[dir_expiry]; };
+  batchelor = derive2 { name="batchelor"; version="1.20.0"; sha256="1h70rm0h711ndj9kz3q10yd9f6npjiwvk9wmkg6w3pdgjni1nrl0"; depends=[beachmat BiocGenerics BiocNeighbors BiocParallel BiocSingular DelayedArray DelayedMatrixStats igraph Matrix Rcpp ResidualMatrix S4Vectors ScaledMatrix scuttle SingleCellExperiment SummarizedExperiment]; };
+  bayNorm = derive2 { name="bayNorm"; version="1.22.0"; sha256="0b05446vcqxr7smxyhmvl6rxlckzzgqhf5v1059657kihhscqr7s"; depends=[BB BiocParallel doSNOW fitdistrplus foreach iterators locfit MASS Matrix Rcpp RcppArmadillo RcppProgress SingleCellExperiment SummarizedExperiment]; };
+  baySeq = derive2 { name="baySeq"; version="2.38.0"; sha256="0nlkynzijxl6f8983vdpmcssvrpjf6s42zx3lxfwxwlhrvz1yg9l"; depends=[abind edgeR GenomicRanges]; };
+  bcSeq = derive2 { name="bcSeq"; version="1.26.0"; sha256="0bbr46clvr1nlqk7lkdyvz5y0yfvw1rxsm29gsanfqbxa3akvxn6"; depends=[Biostrings Matrix Rcpp]; };
+  beachmat = derive2 { name="beachmat"; version="2.20.0"; sha256="0gvxz9w2mi8scqyyhhnrasscs7hwvxxlqvh7j9m6akpi8qq91v6y"; depends=[BiocGenerics DelayedArray Matrix Rcpp SparseArray]; };
+  beachmat_hdf5 = derive2 { name="beachmat.hdf5"; version="1.2.0"; sha256="1qjib3vw0b0nvfx3j5nfgwikcmc5jq49ddahv05arhdabd40vmg4"; depends=[beachmat DelayedArray HDF5Array Rcpp Rhdf5lib]; };
+  beadarray = derive2 { name="beadarray"; version="2.54.0"; sha256="0yda6maj985k374bh6zkrs8qffw1jrz9gc3mja07ibyn4pvzkclq"; depends=[AnnotationDbi BeadDataPackR Biobase BiocGenerics GenomicRanges ggplot2 hexbin illuminaio IRanges limma reshape2]; };
+  beer = derive2 { name="beer"; version="1.8.0"; sha256="1b7pw7nwpryrdji14y9cbv03f8g8r8lzf1fd72ff2b69csp993ww"; depends=[BiocParallel cli edgeR PhIPData progressr rjags SummarizedExperiment]; };
+  benchdamic = derive2 { name="benchdamic"; version="1.10.0"; sha256="040lkmwz51za2biqlf3z3ai5j03rmw15kwz3i3v10rzq0322fsk3"; depends=[ALDEx2 ANCOMBC BiocParallel corncob cowplot dearseq DESeq2 edgeR ggdendro ggplot2 ggridges GUniFrac limma lme4 Maaslin2 MAST metagenomeSeq MGLM MicrobiomeStat mixOmics NOISeq phyloseq plyr RColorBrewer reshape2 Seurat SummarizedExperiment tidytext TreeSummarizedExperiment zinbwave]; };
+  betaHMM = derive2 { name="betaHMM"; version="1.0.0"; sha256="1dwdjfvca22gaz0qjngf3fc32bpybz1dvvbwd91wgznzk7wjk6yq"; depends=[cowplot doParallel dplyr foreach GenomicRanges ggplot2 pROC S4Vectors scales stringr SummarizedExperiment tidyr tidyselect]; };
+  bettr = derive2 { name="bettr"; version="1.0.0"; sha256="19z7df9kmk4zfbljlq5ginl82zml37iyjnjm0fqinm2b9i1ww432"; depends=[bslib circlize ComplexHeatmap cowplot dplyr DT ggplot2 Hmisc rlang S4Vectors scales shiny shinyjqui sortable SummarizedExperiment tibble tidyr]; };
+  bgx = derive2 { name="bgx"; version="1.70.0"; sha256="0sglk8q12fvqk6m699v3lajwr1zb8wnrldfv2n8y7jjy2fqcvs19"; depends=[affy Biobase gcrma Rcpp]; };
+  bigmelon = derive2 { name="bigmelon"; version="1.30.0"; sha256="0fa1dwbk6hdiwg6dmbks7hy4cg3ydyd2sv94cyl0003awhf00nn9"; depends=[Biobase BiocGenerics gdsfmt GEOquery illuminaio methylumi minfi wateRmelon]; };
+  bioCancer = derive2 { name="bioCancer"; version="1.32.0"; sha256="0mwmdavakmrfa7d7h0h14lkk6k7ps3g8hvbja1hq01nkdfy7imvp"; depends=[AlgDesign AnnotationDbi Biobase cBioPortalData clusterProfiler DiagrammeR DOSE dplyr DT geNetClassifier GO_db htmlwidgets org_Bt_eg_db org_Hs_eg_db plyr r_import R_methodsS3 R_oo radiant_data reactome_db ReactomePA shiny shinythemes tibble tidyr visNetwork XML]; };
+  bioDist = derive2 { name="bioDist"; version="1.76.0"; sha256="1yxr5df1y8v5c9imh27j86s7g9wjvi51j2wyn8jgma875mad41hq"; depends=[Biobase KernSmooth]; };
+  bioassayR = derive2 { name="bioassayR"; version="1.42.0"; sha256="0rckhgg73cgz0ppqaywc7nvbnp1is6cyjfa7dn2l32xxrcl57pq6"; depends=[BiocGenerics ChemmineR DBI Matrix rjson RSQLite XML]; };
+  biobroom = derive2 { name="biobroom"; version="1.36.0"; sha256="0flj14d8aamr1fzcpd0k7jq5rs0j5dsijpahg066qrnapn5990d0"; depends=[Biobase broom dplyr tidyr]; };
+  biobtreeR = derive2 { name="biobtreeR"; version="1.16.0"; sha256="0660rc8b4vkic4dbf64wkky68f0hk92ip52x7gihvv203cj9fin4"; depends=[httpuv httr jsonlite stringi]; };
+  biocGraph = derive2 { name="biocGraph"; version="1.66.0"; sha256="0ji6pa8wfj57drpnp03vgas1pird84g15nnp6469jmx773izhfq0"; depends=[BiocGenerics geneplotter graph Rgraphviz]; };
+  biocViews = derive2 { name="biocViews"; version="1.72.0"; sha256="10j9s50ppfx8r752wkabls0n4gxp17z7dnaf352f3dcdbfa8ijh5"; depends=[Biobase BiocManager graph RBGL RCurl RUnit XML]; };
+  biocroxytest = derive2 { name="biocroxytest"; version="1.0.0"; sha256="0na0qbrqjfyq6wlxfnp6h6ljdmcxs5nq4spbifk6v74cxm7aqgni"; depends=[cli glue roxygen2 stringr]; };
+  biocthis = derive2 { name="biocthis"; version="1.14.0"; sha256="1f09vw5qjxyirz5xbvnnjlwxg7z0i0y8yry49d1gyx0spyhzl7sp"; depends=[BiocManager fs glue rlang styler usethis]; };
+  biodb = derive2 { name="biodb"; version="1.12.0"; sha256="0zkd6505q0myc5l9d69i1fvfhcrjqxkv208p84zr5p7xi8jmg3dw"; depends=[BiocFileCache chk git2r jsonlite lgr lifecycle openssl plyr progress R6 rappdirs Rcpp RCurl RSQLite stringr testthat withr XML yaml]; };
+  biodbChebi = derive2 { name="biodbChebi"; version="1.10.0"; sha256="1w3mnryv1x5a68llnpqfdsrkzwrwq2b7n6hm458gfkw6ql070109"; depends=[biodb R6]; };
+  biodbExpasy = derive2 { name="biodbExpasy"; version="1.8.0"; sha256="1amzff4ndadialm5rhzy267c24h5fmh9w9w109zsbw8sixl0s0sd"; depends=[biodb chk R6 stringr]; };
+  biodbHmdb = derive2 { name="biodbHmdb"; version="1.10.0"; sha256="0xf63zj1bpkaymv3psvrkibjbirqb7bych95p4l5crsg8af730ra"; depends=[biodb R6 Rcpp testthat zip]; };
+  biodbKegg = derive2 { name="biodbKegg"; version="1.10.0"; sha256="065a0c62xbbqc73gbcqcwfv1jyyy025dppjq93l0ic4qshh9kg79"; depends=[biodb chk lifecycle R6]; };
+  biodbLipidmaps = derive2 { name="biodbLipidmaps"; version="1.10.0"; sha256="1p181kwy9q8jj4m7flg71pqn7h6865hbwha4n6j2qki830vym6rv"; depends=[biodb lifecycle R6]; };
+  biodbNcbi = derive2 { name="biodbNcbi"; version="1.8.0"; sha256="01v0lym2kldcjypqsx9b8k8hvxdmnr1rsczdzl87nsax22q6g9hc"; depends=[biodb chk R6 XML]; };
+  biodbNci = derive2 { name="biodbNci"; version="1.8.0"; sha256="11xzf804v9dp25zw7kxwws2q386h22ybibrcplm3wrkrxj223kks"; depends=[biodb chk R6 Rcpp testthat]; };
+  biodbUniprot = derive2 { name="biodbUniprot"; version="1.10.0"; sha256="1jwv6y9kaq2d7iswgz602yhwg35c9d9yqa9c87d454n0wrl6h6yg"; depends=[biodb R6]; };
+  biomaRt = derive2 { name="biomaRt"; version="2.60.0"; sha256="0vsjldksykgs6z7afn8kbqzl489irvvzrzq75kqkhavyhxnavqkq"; depends=[AnnotationDbi BiocFileCache digest httr2 progress rappdirs stringr xml2]; };
+  biomformat = derive2 { name="biomformat"; version="1.32.0"; sha256="0jys0nmp833ax96vfdh1adikpyapr5gkmldx5kvv5bqiqc8aipzb"; depends=[jsonlite Matrix plyr rhdf5]; };
+  biomvRCNS = derive2 { name="biomvRCNS"; version="1.44.0"; sha256="1wk0qagx9s2lxykc1fp7l35kl6q17lqy6x4fl2c57v3wa11f47mi"; depends=[GenomicRanges Gviz IRanges mvtnorm]; };
+  biosigner = derive2 { name="biosigner"; version="1.32.0"; sha256="1c56s8lr5cdx27v0rdi4l4h680x6ga9wazf4dj1xkqyliqz65ps5"; depends=[Biobase e1071 MultiAssayExperiment MultiDataSet randomForest ropls SummarizedExperiment]; };
+  biotmle = derive2 { name="biotmle"; version="1.28.0"; sha256="06kixhzkrzxyic44kdmqrv19v2c4a7sri8cbhbvww8km4n5l39sf"; depends=[assertthat BiocGenerics BiocParallel dplyr drtmle ggplot2 ggsci limma S4Vectors SummarizedExperiment superheat tibble]; };
+  biovizBase = derive2 { name="biovizBase"; version="1.52.0"; sha256="1jbcnjjwdjy7zfy0ybgfy1y5ym7rygzkailr5bm4hnh9bn2837p7"; depends=[AnnotationDbi AnnotationFilter BiocGenerics Biostrings dichromat ensembldb GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges Hmisc IRanges RColorBrewer rlang Rsamtools S4Vectors scales SummarizedExperiment VariantAnnotation]; };
+  biscuiteer = derive2 { name="biscuiteer"; version="1.18.0"; sha256="15bisrcgyiv9ndfvgm0p4igyr4jwsf68ccis1nf1hi9x291k7m6y"; depends=[Biobase BiocGenerics BiocParallel biscuiteerData bsseq data_table DelayedMatrixStats dmrseq GenomeInfoDb GenomicRanges gtools HDF5Array Homo_sapiens impute IRanges Matrix matrixStats Mus_musculus QDNAseq qualV R_utils readr Rsamtools rtracklayer S4Vectors SummarizedExperiment VariantAnnotation]; };
+  blacksheepr = derive2 { name="blacksheepr"; version="1.18.0"; sha256="1avqq6m30x2bg3h32laxcpbd4f5s10548k3cj4xb1d25svnn8pax"; depends=[circlize ComplexHeatmap pasilla RColorBrewer SummarizedExperiment viridis]; };
+  blima = derive2 { name="blima"; version="1.38.0"; sha256="1a5rzwgsvkwzl97p6pvbhi8dsvd7vbny0bajjp273czrm09yk8rc"; depends=[beadarray Biobase BiocGenerics Rcpp]; };
+  bluster = derive2 { name="bluster"; version="1.14.0"; sha256="1bj7wx2dnwbrv2gxcmqmq815vawfiqj2xy3624fjli11r8c1hywa"; depends=[BiocNeighbors BiocParallel cluster igraph Matrix Rcpp S4Vectors]; };
+  bnbc = derive2 { name="bnbc"; version="1.26.0"; sha256="09vy9igcnw927j0zb4znrbcknkaic69ly6w4syb1cwysr0rvmrdz"; depends=[BiocGenerics data_table EBImage GenomeInfoDb GenomicRanges HiCBricks IRanges matrixStats preprocessCore Rcpp rhdf5 S4Vectors SummarizedExperiment sva]; };
+  bnem = derive2 { name="bnem"; version="1.12.0"; sha256="15jzsba3qdkj5y7gqxklgv69r5bq2li4irvjkhmbjnjlv0pv4wdg"; depends=[affy binom Biobase CellNOptR cluster epiNEM flexclust graph limma matrixStats mnem RColorBrewer Rgraphviz rmarkdown snowfall sva vsn]; };
+  borealis = derive2 { name="borealis"; version="1.8.0"; sha256="1m7yq1sx4ivbcrjm1w3l5qsyhlv0jdkb5l91kxd5hvisakfdrfz9"; depends=[Biobase bsseq cowplot doParallel dplyr DSS foreach gamlss gamlss_dist GenomicRanges ggplot2 plyr purrr R_utils rlang snow]; };
+  branchpointer = derive2 { name="branchpointer"; version="1.30.0"; sha256="034sa73ll152s24cgrz47br7kyswr7jn6c735mp6dvbhppmlj2xm"; depends=[biomaRt Biostrings BSgenome_Hsapiens_UCSC_hg38 caret cowplot data_table gbm GenomeInfoDb GenomicRanges ggplot2 IRanges kernlab plyr rtracklayer S4Vectors stringr]; };
+  breakpointR = derive2 { name="breakpointR"; version="1.22.0"; sha256="0imbsqrslclvfyvc00sv6ngvl5hqlr6ian07v521m63ffpx6ll78"; depends=[BiocGenerics breakpointRdata cowplot doParallel foreach GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 gtools IRanges Rsamtools S4Vectors]; };
+  brendaDb = derive2 { name="brendaDb"; version="1.18.0"; sha256="1rhmd3v20y2cw70zpzykpz7bidf000dq904c2qlf58nqwclxj88l"; depends=[BiocFileCache BiocParallel crayon dplyr magrittr purrr rappdirs Rcpp rlang stringr tibble tidyr]; };
+  bsseq = derive2 { name="bsseq"; version="1.40.0"; sha256="1b7a9ryl4lz6qy2pni3k9bk6hdf147s3m7fx0icg6fkgi0ymssyx"; depends=[beachmat Biobase BiocGenerics BiocParallel Biostrings BSgenome data_table DelayedArray DelayedMatrixStats GenomeInfoDb GenomicRanges gtools HDF5Array IRanges limma locfit permute R_utils Rcpp rhdf5 S4Vectors scales SummarizedExperiment]; };
+  bugsigdbr = derive2 { name="bugsigdbr"; version="1.10.0"; sha256="0fg7rk14jgpr07wm93i40wklxphag9yw56kr59rw1cfdfhqnmsv7"; depends=[BiocFileCache vroom]; };
+  bumphunter = derive2 { name="bumphunter"; version="1.46.0"; sha256="08b5d0grmpk5pryffdh6gdafhp1brana353q2kmwhz7x55aq3w68"; depends=[AnnotationDbi BiocGenerics doRNG foreach GenomeInfoDb GenomicFeatures GenomicRanges IRanges iterators limma locfit matrixStats S4Vectors]; };
+  cBioPortalData = derive2 { name="cBioPortalData"; version="2.16.0"; sha256="0s1qy46z78hlk37lnvqh1zi36y90299f6ym82k2d60jbw8aw2jxa"; depends=[AnVIL BiocFileCache digest dplyr GenomeInfoDb GenomicRanges httr IRanges MultiAssayExperiment RaggedExperiment readr RTCGAToolbox S4Vectors SummarizedExperiment TCGAutils tibble tidyr]; };
+  cTRAP = derive2 { name="cTRAP"; version="1.22.0"; sha256="119hnbv0p3mgr3zh9dff9pwllnsk790hm0ahypzpr08gwg2ml9lb"; depends=[AnnotationDbi AnnotationHub binr cowplot data_table dplyr DT fastmatch fgsea ggplot2 ggrepel highcharter htmltools httr limma pbapply purrr qs R_utils readxl reshape2 rhdf5 rlang scales shiny shinycssloaders tibble]; };
+  cageminer = derive2 { name="cageminer"; version="1.10.0"; sha256="0ijagv7yzlil4mdibip5css7asdrnzfr2lq3r9zq8fkf4fwr2mpx"; depends=[BioNERO GenomeInfoDb GenomicRanges ggbio ggplot2 ggtext IRanges reshape2 rlang]; };
+  calm = derive2 { name="calm"; version="1.18.0"; sha256="0sbl44747xc7m4jpf318gb7cb1hx6r2mw4bk81da7d5d8kpi9n9s"; depends=[mgcv]; };
+  canceR = derive2 { name="canceR"; version="1.38.0"; sha256="1hmc4sw3w5wsix7ixr85lplpp6hxrd5xpf5apvr77hligw61dhvs"; depends=[Biobase cBioPortalData circlize dplyr Formula geNetClassifier GSEABase phenoTest plyr R_methodsS3 R_oo rpart RUnit survival tidyr tkrplot]; };
+  cancerclass = derive2 { name="cancerclass"; version="1.48.0"; sha256="00lin7likd0ffqk2nqx5ql8v3zpr82xprv36c1gzw0wkrgp3rgmw"; depends=[binom Biobase]; };
+  cardelino = derive2 { name="cardelino"; version="1.6.0"; sha256="16mczwh41gf7ikbzxvggai7a8d64fn2k7q9w1yxf0sn6cwg3l0di"; depends=[combinat GenomeInfoDb GenomicRanges ggplot2 ggtree Matrix matrixStats pheatmap S4Vectors snpStats VariantAnnotation vcfR]; };
+  casper = derive2 { name="casper"; version="2.38.0"; sha256="0bwjnncm93j99m38mv99i1pw42cjmib4sqzw5nhb6p9mj39mm3zb"; depends=[Biobase BiocGenerics coda EBarrays gaga GenomeInfoDb GenomicFeatures GenomicRanges gtools IRanges limma mgcv Rsamtools rtracklayer S4Vectors sqldf survival VGAM]; };
+  categoryCompare = derive2 { name="categoryCompare"; version="1.48.0"; sha256="0mfmv3wna7dddf4i3ckh2iin8vq05g4fjb1n2pvw0s9lz3da3rjf"; depends=[annotate AnnotationDbi Biobase BiocGenerics Category colorspace GOstats graph GSEABase hwriter RCy3]; };
+  cbaf = derive2 { name="cbaf"; version="1.26.3"; sha256="1lpz3n288v32nbb0g4jb1mxmx79amm29m40w3sfkgllnjjdwsyd3"; depends=[BiocFileCache cBioPortalData genefilter gplots openxlsx RColorBrewer]; };
+  cbpManager = derive2 { name="cbpManager"; version="1.12.0"; sha256="1idlxmnbyvc1nzshnvf3p4y9xdjb2kdcm05kpf3ihh993igddk14"; depends=[basilisk dplyr DT htmltools jsonlite magrittr markdown plyr rapportools reticulate rintrojs rlang shiny shinyBS shinycssloaders shinydashboard vroom]; };
+  ccImpute = derive2 { name="ccImpute"; version="1.6.0"; sha256="0pjdlh77wpv54m2kc26kyzmpqikgz666dkw5h6af7q7lmgp0xc19"; depends=[BiocParallel matrixStats Rcpp RcppEigen SIMLR]; };
+  ccfindR = derive2 { name="ccfindR"; version="1.24.0"; sha256="1n9dncj7d3ijk6h6fkgmh3a0c6xrfll2fifkl2bz26ndq9i4m1q9"; depends=[ape gtools irlba Matrix RColorBrewer Rcpp RcppEigen Rdpack Rmpi Rtsne S4Vectors SingleCellExperiment SummarizedExperiment]; };
+  ccmap = derive2 { name="ccmap"; version="1.30.0"; sha256="16n0z3rvwaqzqgv59v73i29f66ywsabargywxwh6acv0xgnrn6w6"; depends=[AnnotationDbi BiocManager ccdata data_table doParallel foreach lsa xgboost]; };
+  ccrepe = derive2 { name="ccrepe"; version="1.40.0"; sha256="1232pfjv5qd776zckhyxnj1i36raad37z9xwap9m3chqh673a7wl"; depends=[infotheo]; };
+  ceRNAnetsim = derive2 { name="ceRNAnetsim"; version="1.16.0"; sha256="1zpdh9hdx3iayyrzvn67ids374pc891blag58gb28dv2xpzfqn9m"; depends=[dplyr furrr future ggplot2 ggraph igraph purrr rlang tibble tidygraph tidyr]; };
+  celaref = derive2 { name="celaref"; version="1.22.0"; sha256="1l2bf3fhapvpaq30qdrc6nd1chfa4yjish9w9cq7lbhl3xm9b82z"; depends=[BiocGenerics DelayedArray dplyr ggplot2 magrittr MAST Matrix readr rlang S4Vectors SummarizedExperiment tibble]; };
+  celda = derive2 { name="celda"; version="1.20.0"; sha256="0d2vmjgcz5d4nimi3rxk7smbl2ywrgayasjna7kaqvf726ab71qr"; depends=[circlize ComplexHeatmap data_table dbscan DelayedArray digest doParallel enrichR foreach ggplot2 ggrepel gridExtra gtable Matrix matrixStats MCMCprecision plyr RColorBrewer Rcpp RcppEigen reshape2 Rtsne S4Vectors scales scater scran SingleCellExperiment stringr SummarizedExperiment uwot withr]; };
+  cellHTS2 = derive2 { name="cellHTS2"; version="2.68.0"; sha256="0iqsxs84dcr4d1y5pg4799vv3jpf5i1hhq4fhgdp05lanx5qqpsz"; depends=[Biobase BiocGenerics Category genefilter GSEABase hwriter locfit RColorBrewer splots vsn]; };
+  cellbaseR = derive2 { name="cellbaseR"; version="1.28.0"; sha256="1g2y7pgpc500vls62xp817n9arsw8dbj3c0d9dbvb1d014gzmbdw"; depends=[BiocParallel data_table doParallel foreach httr jsonlite pbapply R_utils Rsamtools tidyr]; };
+  cellity = derive2 { name="cellity"; version="1.32.0"; sha256="0m79q1c2rvv24q593c5vwsh0dsi2ahfwvf9a5pf9r9wnk3am9r3n"; depends=[AnnotationDbi e1071 ggplot2 mvoutlier org_Hs_eg_db org_Mm_eg_db robustbase topGO]; };
+  cellmigRation = derive2 { name="cellmigRation"; version="1.12.0"; sha256="0ahml812f6hm05dxnlsd59bfspxbi4py205kvs0wlijygfqd1ajy"; depends=[doParallel FactoMineR FME foreach Hmisc matrixStats reshape2 sp SpatialTools tiff vioplot]; };
+  cellscape = derive2 { name="cellscape"; version="1.28.0"; sha256="158cbhpjakynvm4glvajvpc1qs2im7bkjgriyvxwd9rs7y4lbfn4"; depends=[dplyr gtools htmlwidgets jsonlite reshape2 stringr]; };
+  cellxgenedp = derive2 { name="cellxgenedp"; version="1.8.0"; sha256="0p3x0sfp4gpp64gwrlr71bgfk84wxf1gg19w1dxgihc8gpaxgb23"; depends=[curl dplyr DT httr rjsoncons shiny]; };
+  censcyt = derive2 { name="censcyt"; version="1.12.0"; sha256="078s41rvlfwlxr2a651dff5sdbqb507qvicg84k99za6cb4707ry"; depends=[BiocParallel broom_mixed diffcyt dirmult dplyr edgeR fitdistrplus lme4 magrittr MASS mice multcomp purrr rlang S4Vectors stringr SummarizedExperiment survival tibble tidyr]; };
+  cfDNAPro = derive2 { name="cfDNAPro"; version="1.10.0"; sha256="0nnqfhqq7702zc4hy05wj7rf83vgjqmnpvw90vkg4zrbc7y5fv3w"; depends=[BiocGenerics BSgenome_Hsapiens_NCBI_GRCh38 BSgenome_Hsapiens_UCSC_hg19 BSgenome_Hsapiens_UCSC_hg38 dplyr GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 IRanges magrittr plyranges quantmod rlang Rsamtools stringr tibble]; };
+  cfTools = derive2 { name="cfTools"; version="1.4.0"; sha256="0hi9j7a13l18fi2m4w5x8lil1f81izivg8p8hzh3wy8idbsc46m2"; depends=[basilisk BH cfToolsData GenomicRanges R_utils Rcpp]; };
+  cfdnakit = derive2 { name="cfdnakit"; version="1.2.0"; sha256="1yzhh76r8zlzdg8mpamsr6jvx4j18wkv4dg2mrgclbdmy10dxhwx"; depends=[Biobase dplyr GenomeInfoDb GenomicRanges ggplot2 IRanges magrittr PSCBS QDNAseq rlang Rsamtools S4Vectors]; };
+  cghMCR = derive2 { name="cghMCR"; version="1.62.0"; sha256="07pjh4i0j6wd51k7dyig5dg5vcp8bli50my6aibmqdvrjv0wj60w"; depends=[BiocGenerics CNTools DNAcopy limma]; };
+  chihaya = derive2 { name="chihaya"; version="1.4.0"; sha256="10j05n9grh9dzb87hiq06x855c2xhi2c09jryc2ixgxd8jx6g2wy"; depends=[DelayedArray HDF5Array Matrix Rcpp rhdf5 Rhdf5lib]; };
+  chimeraviz = derive2 { name="chimeraviz"; version="1.30.0"; sha256="1nx258g96v7548a742201jf6yhjf537b6pkmcijhawchnzfn38vn"; depends=[AnnotationDbi AnnotationFilter BiocStyle Biostrings checkmate data_table dplyr DT ensembldb GenomeInfoDb GenomicAlignments GenomicRanges graph gtools Gviz IRanges magick org_Hs_eg_db org_Mm_eg_db plyr RCircos RColorBrewer Rgraphviz rmarkdown Rsamtools S4Vectors]; };
+  chipenrich = derive2 { name="chipenrich"; version="2.28.0"; sha256="01sfl3ik12bha3a57gm34y5gnil0akz9f3qfcp9rxsg7zdj8q1mp"; depends=[AnnotationDbi BiocGenerics chipenrich_data GenomeInfoDb GenomicRanges IRanges lattice latticeExtra MASS mgcv org_Dm_eg_db org_Dr_eg_db org_Hs_eg_db org_Mm_eg_db org_Rn_eg_db plyr rms rtracklayer S4Vectors stringr]; };
+  chipseq = derive2 { name="chipseq"; version="1.54.0"; sha256="1rd56knaf0ar8d0nh0mcnrrg5jy0csixig1d4abn1b64vbzrvzpz"; depends=[BiocGenerics GenomicRanges IRanges lattice S4Vectors ShortRead]; };
+  chopsticks = derive2 { name="chopsticks"; version="1.70.0"; sha256="1lwl3fs7d2cja6n7wgpxvrplhnblabrrpqk83765aksmrk6sfk81"; depends=[survival]; };
+  chromDraw = derive2 { name="chromDraw"; version="2.34.0"; sha256="1r733k8hkdhvapbwbp02ias1fjkr0pxi6m7gk2l9q3m6szydpil8"; depends=[GenomicRanges Rcpp]; };
+  chromPlot = derive2 { name="chromPlot"; version="1.32.0"; sha256="187w8qm0kf8297yb5yzkd5rxzx6j03hysgpdm41dc247q50nv046"; depends=[biomaRt GenomicRanges]; };
+  chromVAR = derive2 { name="chromVAR"; version="1.26.0"; sha256="092y1x1sbqvjrwmr7sv2r5216wbwwc4lk6kwn57fnvvdnc0hc3sv"; depends=[BiocGenerics BiocParallel Biostrings BSgenome DT GenomeInfoDb GenomicRanges ggplot2 IRanges Matrix miniUI nabor plotly RColorBrewer Rcpp RcppArmadillo Rsamtools Rtsne S4Vectors shiny SummarizedExperiment TFBSTools]; };
+  chromstaR = derive2 { name="chromstaR"; version="1.30.0"; sha256="0swkjq50p3ak0ddyg7pqg37fivdpr3v5jpakn38sk5i5ycn3qf3g"; depends=[bamsignals BiocGenerics chromstaRData doParallel foreach GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 IRanges mvtnorm reshape2 Rsamtools S4Vectors]; };
+  cicero = derive2 { name="cicero"; version="1.22.0"; sha256="0x5ly5hkqli5b67hiaa6ha02damyps7vb4l51p0az1j5fxl39n8r"; depends=[assertthat Biobase BiocGenerics data_table dplyr FNN GenomicRanges ggplot2 glasso Gviz igraph IRanges Matrix monocle plyr reshape2 S4Vectors stringi stringr tibble tidyr VGAM]; };
+  circRNAprofiler = derive2 { name="circRNAprofiler"; version="1.18.0"; sha256="0gjnx4645kd7qag7dzs5dp9lhsv6zg5xn6jna3bap4mginl1jvxi"; depends=[AnnotationHub Biostrings BSgenome BSgenome_Hsapiens_UCSC_hg19 DESeq2 dplyr edgeR GenomeInfoDb GenomicRanges ggplot2 gwascat IRanges magrittr R_utils readr reshape2 rlang rtracklayer S4Vectors seqinr stringi stringr universalmotif]; };
+  cisPath = derive2 { name="cisPath"; version="1.44.0"; sha256="1r1h5sklm6n9spxgj9rww2ib1f75lyz657awdm5ig3sdsk8f1lpn"; depends=[]; };
+  cleanUpdTSeq = derive2 { name="cleanUpdTSeq"; version="1.42.0"; sha256="0fc7lwglp9asssh7yvrqr3wrgdcdapi5zh0fkqmddc1w1n83053r"; depends=[Biostrings BSgenome BSgenome_Drerio_UCSC_danRer7 e1071 GenomeInfoDb GenomicRanges IRanges S4Vectors seqinr stringr]; };
+  cleaver = derive2 { name="cleaver"; version="1.42.0"; sha256="15v5jk916lfxjnkmjkm9fgza2pdr02hzgyzny29mkjd6ycj2xfa6"; depends=[Biostrings IRanges S4Vectors]; };
+  clevRvis = derive2 { name="clevRvis"; version="1.4.0"; sha256="08qmhyhd9z5cpgkccz8jbk81ni51xd4rkv18clzwfk85vbkmjywn"; depends=[colorspace colourpicker cowplot dplyr DT ggiraph ggnewscale ggplot2 ggraph htmlwidgets igraph magrittr patchwork purrr R_utils readr readxl shiny shinycssloaders shinydashboard shinyhelper shinyWidgets tibble]; };
+  cliProfiler = derive2 { name="cliProfiler"; version="1.10.0"; sha256="10ikijimbhwijlq19xc8x730ihix19c5z15mq138jj9p85zrqcin"; depends=[Biostrings BSgenome dplyr GenomicRanges ggplot2 rtracklayer S4Vectors]; };
+  clippda = derive2 { name="clippda"; version="1.54.0"; sha256="1pfzshvrhqjazmzhznwn1ml8lgrfhwmb6q285bbs3vksgjqyxczw"; depends=[Biobase lattice limma rgl scatterplot3d statmod]; };
+  clipper = derive2 { name="clipper"; version="1.44.0"; sha256="1jaf3xsl37jpwpiq9r3w13fa069jmq6b6j2inmfzdy7jx8vbfm0k"; depends=[Biobase corpcor graph gRbase igraph KEGGgraph Matrix qpgraph Rcpp]; };
+  clst = derive2 { name="clst"; version="1.52.0"; sha256="0ng8zmqrnjpavl7mz4sh0qfa3bvxd12vh1568f9brm80avypp02j"; depends=[lattice ROC]; };
+  clstutils = derive2 { name="clstutils"; version="1.52.0"; sha256="0ry1b3gq2mbdir84pipk8z0dkf0g1mph9yflx3snjdc4izgviasx"; depends=[ape clst lattice rjson RSQLite]; };
+  clustComp = derive2 { name="clustComp"; version="1.32.0"; sha256="0dv55dhljb05jk0bqc72f0chkzmlf64wilfxfyric9gb9ksi49kq"; depends=[sm]; };
+  clusterExperiment = derive2 { name="clusterExperiment"; version="2.24.0"; sha256="0pi6qnchh89fhfr50fk4hrrkz1r8gfwjcd7254pgiaxcazv2380a"; depends=[ape BiocGenerics BiocSingular cluster DelayedArray edgeR HDF5Array kernlab limma locfdr Matrix matrixStats mbkmeans NMF phylobase pracma RColorBrewer Rcpp S4Vectors scales SingleCellExperiment stringr SummarizedExperiment zinbwave]; };
+  clusterProfiler = derive2 { name="clusterProfiler"; version="4.12.0"; sha256="0wmfbr4n8a1mg8g3gl9gnqrvq5p6cfay2858fqx7wxpr2q8yynhz"; depends=[AnnotationDbi DOSE downloader dplyr enrichplot GO_db GOSemSim gson httr igraph magrittr plyr qvalue rlang tidyr yulab_utils]; };
+  clusterSeq = derive2 { name="clusterSeq"; version="1.28.0"; sha256="0spf8kv15dchr852apzmwpq27a7gflxvah0yrdyaq7kgqv3107l9"; depends=[baySeq BiocGenerics BiocParallel]; };
+  clusterStab = derive2 { name="clusterStab"; version="1.76.0"; sha256="193lwy85202hd5fiqmwi9sd9vcbvm3zlg4grm0xvvaj2np0b3svi"; depends=[Biobase]; };
+  clustifyr = derive2 { name="clustifyr"; version="1.16.0"; sha256="14c7jr4q0zij2zqpcm6jihy0ch80yfp67lvhxiakcg33xq1jvmzv"; depends=[cowplot dplyr entropy fgsea ggplot2 httr Matrix matrixStats proxy rlang S4Vectors scales SeuratObject SingleCellExperiment stringr SummarizedExperiment tibble tidyr]; };
+  cmapR = derive2 { name="cmapR"; version="1.16.0"; sha256="0gj0s6l7r5dln7h9z5y03bjxj3w73cy4x83ik1cp5nmffabypzm9"; depends=[data_table flowCore matrixStats rhdf5 SummarizedExperiment]; };
+  cn_farms = derive2 { name="cn.farms"; version="1.52.0"; sha256="098p6bhibg14ahx2gn2jbqaf537w00428a8mqvzghy9519pwmsqd"; depends=[affxparser Biobase DBI DNAcopy ff lattice oligo oligoClasses preprocessCore snow]; };
+  cn_mops = derive2 { name="cn.mops"; version="1.50.0"; sha256="1zf2j36g97i7ija5h2pchlvh24h2s8k3nl9k9iwlh2jxax3hnr97"; depends=[Biobase BiocGenerics GenomeInfoDb GenomicRanges IRanges Rsamtools S4Vectors]; };
+  cnvGSA = derive2 { name="cnvGSA"; version="1.48.0"; sha256="1njb31i1fsvisgjjczjbc9qb7w6bz8dh4856gghkb4f9gscn06rk"; depends=[brglm doParallel foreach GenomicRanges splitstackshape]; };
+  coGPS = derive2 { name="coGPS"; version="1.48.0"; sha256="07skpib02914bak5zz5rlwp61kkls9pl83yc5d5kalsqpa1sb63m"; depends=[]; };
+  coMethDMR = derive2 { name="coMethDMR"; version="1.8.0"; sha256="1a0f0r11jdcf47b9nzswi9j1axhibij09lava57cv48a23hzrj6z"; depends=[AnnotationHub BiocParallel bumphunter ExperimentHub GenomicRanges IRanges lmerTest]; };
+  coRdon = derive2 { name="coRdon"; version="1.22.0"; sha256="0zspxfivvc87s3mnyr8rz3a0dhjsmksvpjn4wba2zqc9hig0pkw6"; depends=[Biobase Biostrings data_table dplyr ggplot2 purrr stringr]; };
+  codelink = derive2 { name="codelink"; version="1.72.0"; sha256="0maag5ns0j2c7l4pnrgb724108fmp4a2xj8nffk1kw4ag39k9xqc"; depends=[annotate Biobase BiocGenerics limma]; };
+  cogena = derive2 { name="cogena"; version="1.38.0"; sha256="0w41i4mvv085pvm0ars31qy0m6alb96kni3k6lcsikqch9nqiv3z"; depends=[amap apcluster Biobase biwt class cluster corrplot devtools doParallel dplyr fastcluster foreach ggplot2 gplots kohonen mclust reshape2 stringr tibble tidyr]; };
+  cogeqc = derive2 { name="cogeqc"; version="1.8.0"; sha256="056zj1hlfvzdj22p79nd567fpzlmmk12nyy1w41ymhwfy9azdhha"; depends=[Biostrings ggbeeswarm ggplot2 ggtree igraph jsonlite patchwork reshape2 rlang scales]; };
+  cola = derive2 { name="cola"; version="2.10.0"; sha256="014yx4r5as34f6g1xf4amqwkq0xqa66rv8g45r4cd4fp4dv9szzg"; depends=[BiocGenerics brew circlize clue cluster ComplexHeatmap crayon digest doParallel doRNG eulerr foreach GetoptLong GlobalOptions httr impute irlba knitr markdown matrixStats mclust microbenchmark png RColorBrewer Rcpp skmeans xml2]; };
+  comapr = derive2 { name="comapr"; version="1.8.0"; sha256="007r7q7p97w5rh8pvgrajlyv09m6h9q8zs0mb8xs1qw3jlkac5z4"; depends=[BiocParallel circlize dplyr foreach GenomeInfoDb GenomicRanges ggplot2 gridExtra Gviz IRanges Matrix plotly plyr RColorBrewer reshape2 rlang S4Vectors scales SummarizedExperiment tidyr]; };
+  combi = derive2 { name="combi"; version="1.16.0"; sha256="1s6nxigvmxq5c2y347k87by0krda63lwynvbgagvg9h2lhb588kv"; depends=[alabama BB Biobase cobs DBI ggplot2 limma Matrix nleqslv phyloseq reshape2 SummarizedExperiment tensor vegan]; };
+  compEpiTools = derive2 { name="compEpiTools"; version="1.38.0"; sha256="04yhfihszw5s61195435cczk801rb8n29zrh8rqknf0rdyccxb2q"; depends=[AnnotationDbi BiocGenerics Biostrings GenomeInfoDb GenomicFeatures GenomicRanges GO_db gplots IRanges methylPipe Rsamtools S4Vectors topGO XVector]; };
+  compSPOT = derive2 { name="compSPOT"; version="1.2.0"; sha256="1gai411y4dcc2ip73wjb56az8kjh0d34z3xij7hdhs72qg4k6955"; depends=[data_table ggplot2 ggpubr gridExtra magrittr plotly]; };
+  compcodeR = derive2 { name="compcodeR"; version="1.40.0"; sha256="0szixwgk85qpyag2i8spn0shpl8r6j5xjg90js3rgrx1b8saaqbm"; depends=[ape caTools edgeR ggplot2 gplots gtools KernSmooth knitr lattice limma markdown MASS matrixStats modeest phylolm rmarkdown ROCR shiny shinydashboard sm stringr vioplot]; };
+  concordexR = derive2 { name="concordexR"; version="1.4.0"; sha256="0z8h4gr8lj6kpffi1zha4683ha46n5nrlc3yvyrwbf2gflzvdf3y"; depends=[BiocParallel cli DelayedArray ggplot2 Matrix pheatmap rlang scales]; };
+  condiments = derive2 { name="condiments"; version="1.12.0"; sha256="0wifi5npnzmwdvh6g2xa998ccl902jka1mfs4xxgrpdbc0rxny8r"; depends=[BiocParallel distinct dplyr Ecume igraph magrittr matrixStats mgcv pbapply RANN SingleCellExperiment slingshot SummarizedExperiment TrajectoryUtils]; };
+  consICA = derive2 { name="consICA"; version="2.2.0"; sha256="061v9v4gpxxmb5yn6dhh1r2x52y3ik68v1y59sfaazhlp3kg970x"; depends=[BiocParallel fastICA ggplot2 GO_db graph org_Hs_eg_db pheatmap Rfast sm SummarizedExperiment survival topGO]; };
+  consensus = derive2 { name="consensus"; version="1.22.0"; sha256="09g6qmvalbnyskvv6zb49h3ph4xv3rz71y6gdfayh5jmh82nw9fd"; depends=[gplots matrixStats RColorBrewer]; };
+  consensusDE = derive2 { name="consensusDE"; version="1.22.0"; sha256="051rcanakn1kmlybhc57cp80rxdgvpd0grldsw014ss8s938nz8z"; depends=[airway AnnotationDbi Biobase BiocGenerics BiocParallel Biostrings data_table dendextend DESeq2 EDASeq edgeR EnsDb_Hsapiens_v86 ensembldb GenomicAlignments GenomicFeatures limma org_Hs_eg_db pcaMethods RColorBrewer Rsamtools RUVSeq S4Vectors SummarizedExperiment TxDb_Dmelanogaster_UCSC_dm3_ensGene]; };
+  consensusOV = derive2 { name="consensusOV"; version="1.26.0"; sha256="0a2qrjid6a5yndkhd47km40qv2c3321xypr5mwlwsq5qp48x7vvq"; depends=[Biobase BiocParallel gdata genefu GSVA limma matrixStats randomForest]; };
+  consensusSeekeR = derive2 { name="consensusSeekeR"; version="1.32.0"; sha256="0da6k6i372iqh1gnd4g6ifg75hkx2rrlp2bpwf1ai3g31n8ashiw"; depends=[BiocGenerics BiocParallel GenomeInfoDb GenomicRanges IRanges rtracklayer S4Vectors stringr]; };
+  conumee = derive2 { name="conumee"; version="1.38.0"; sha256="0ys8z4xgnmbg4dq81mr59imbz3p9j5ymi9y1dk030xrdh5iwi0am"; depends=[DNAcopy GenomeInfoDb GenomicRanges IlluminaHumanMethylation450kanno_ilmn12_hg19 IlluminaHumanMethylation450kmanifest IlluminaHumanMethylationEPICanno_ilm10b2_hg19 IlluminaHumanMethylationEPICmanifest IRanges minfi rtracklayer]; };
+  convert = derive2 { name="convert"; version="1.80.0"; sha256="0i4gdd4vhbhkhzij85w4891p9fnqkchxcdqwqqs76ipg1vgrf98v"; depends=[Biobase limma marray]; };
+  copa = derive2 { name="copa"; version="1.72.0"; sha256="1v8xz09ylcja9d4gq3icm6y8k8jkavicnj22iidjnj0c2r03jwg6"; depends=[Biobase]; };
+  corral = derive2 { name="corral"; version="1.14.0"; sha256="14zf8ya8yrr2bbxg8iiwxn3l7qvii0bmiwwdmypgv1qi32hx9ckp"; depends=[ggplot2 ggthemes gridExtra irlba Matrix MultiAssayExperiment pals reshape2 SingleCellExperiment SummarizedExperiment transport]; };
+  coseq = derive2 { name="coseq"; version="1.28.0"; sha256="0g24q3wb15qnj3igbj93k0rlw1s6ylgzhi8106qfmpybnq3rcry5"; depends=[BiocParallel capushe compositions corrplot DESeq2 e1071 edgeR ggplot2 HTSCluster HTSFilter mvtnorm Rmixmod S4Vectors scales SummarizedExperiment]; };
+  cosmiq = derive2 { name="cosmiq"; version="1.38.0"; sha256="0rvayjwg9f3ns8mv657sww9azjjbavxfxcshazn48j7rvr4bqx8z"; depends=[faahKO MassSpecWavelet pracma Rcpp xcms]; };
+  cosmosR = derive2 { name="cosmosR"; version="1.12.0"; sha256="0rpy6dysf5p892dcad4z45i607km23pah4iq448g5mbzypsjkqsw"; depends=[CARNIVAL decoupleR dorothea dplyr GSEABase igraph progress purrr rlang stringr visNetwork]; };
+  countsimQC = derive2 { name="countsimQC"; version="1.22.0"; sha256="0zrxi7zvdiv1xx3hiy15a3wjgqvywikixx8lq3qx85dw2kz3nfpf"; depends=[caTools DESeq2 dplyr DT edgeR genefilter GenomeInfoDbData ggplot2 ragg randtests rmarkdown SummarizedExperiment tidyr]; };
+  covEB = derive2 { name="covEB"; version="1.30.0"; sha256="15yz54dhjwz6iafmvq33l43z3w887a6b7i150rqi23rzs9mabixa"; depends=[Biobase gsl igraph LaplacesDemon Matrix mvtnorm]; };
+  covRNA = derive2 { name="covRNA"; version="1.30.0"; sha256="12j69j73fkfn3s20jcyixp71a5j37m405962mxa2pihlqsrh7sxl"; depends=[ade4 Biobase genefilter]; };
+  cpvSNP = derive2 { name="cpvSNP"; version="1.36.0"; sha256="0kn65jzx9cif1w3hqyfjkxdcpnlk9b8msv3rk0ahdsln1d0mnyw6"; depends=[BiocParallel corpcor GenomicFeatures ggplot2 GSEABase plyr]; };
+  cqn = derive2 { name="cqn"; version="1.50.0"; sha256="1gjfpz696lpvbbm38ni8b8xxkjik6zb4drhc5gd559ccp3ddy8kn"; depends=[mclust nor1mix preprocessCore quantreg]; };
+  crisprBase = derive2 { name="crisprBase"; version="1.8.0"; sha256="1zw4syj12agcvjzjn3ffsd50vffsdgya7yfz62dy73wj4m2l2whq"; depends=[BiocGenerics Biostrings GenomicRanges IRanges S4Vectors stringr]; };
+  crisprBowtie = derive2 { name="crisprBowtie"; version="1.8.0"; sha256="0fyihnmrl92nl1r85axz9bck6l9clvc5a6px0214i064w8dn1njj"; depends=[BiocGenerics Biostrings BSgenome crisprBase GenomeInfoDb GenomicRanges IRanges Rbowtie readr stringr]; };
+  crisprBwa = derive2 { name="crisprBwa"; version="1.8.0"; sha256="1vz99b632fzxdlpw5n2z2mbx7sb9hng58np1ra7gqc2wypk0sa8x"; depends=[BiocGenerics BSgenome crisprBase GenomeInfoDb Rbwa readr stringr]; };
+  crisprDesign = derive2 { name="crisprDesign"; version="1.6.0"; sha256="1zv8cc52r13b47r44qph892fhbgy1xp8xz4xf1hfyqgd7ywcl9kb"; depends=[AnnotationDbi BiocGenerics Biostrings BSgenome crisprBase crisprBowtie crisprScore GenomeInfoDb GenomicFeatures GenomicRanges IRanges Matrix MatrixGenerics rtracklayer S4Vectors txdbmaker VariantAnnotation]; };
+  crisprScore = derive2 { name="crisprScore"; version="1.8.0"; sha256="1czg5l4bvi5j3afip74qgl1kqgcllb5s1gz6sy7qk1cbf1fmvril"; depends=[basilisk basilisk_utils BiocGenerics Biostrings crisprScoreData IRanges randomForest reticulate stringr XVector]; };
+  crisprShiny = derive2 { name="crisprShiny"; version="1.0.0"; sha256="0fmp0gi70cv3g4c00l6g58kww9cg9rvpkhg8lsii9j8p8fj6hsjd"; depends=[BiocGenerics Biostrings BSgenome crisprBase crisprDesign crisprScore crisprViz DT GenomeInfoDb htmlwidgets pwalign S4Vectors shiny shinyBS shinyjs waiter]; };
+  crisprVerse = derive2 { name="crisprVerse"; version="1.6.0"; sha256="0f81bf65xz5z5yj9iyyk3h8asyd5hg3hv3157w0kq4ablz8jr7iq"; depends=[BiocManager cli crisprBase crisprBowtie crisprDesign crisprScore crisprScoreData crisprViz rlang]; };
+  crisprViz = derive2 { name="crisprViz"; version="1.6.0"; sha256="1bbawsmah9h12kxwcq97q1mjbkniivfafm95k299bb93baqillih"; depends=[BiocGenerics Biostrings BSgenome crisprBase crisprDesign GenomeInfoDb GenomicFeatures GenomicRanges Gviz IRanges S4Vectors txdbmaker]; };
+  crlmm = derive2 { name="crlmm"; version="1.62.0"; sha256="0b0zwawxm07iy5g9z17057dsifrwyyl5rkgn09k7vh8rkfxbdydx"; depends=[affyio beanplot Biobase BiocGenerics ellipse ff foreach illuminaio lattice limma matrixStats mvtnorm oligoClasses preprocessCore RcppEigen VGAM]; };
+  crossmeta = derive2 { name="crossmeta"; version="1.30.0"; sha256="1ghgfby1rl3phldyipli550f0i289yanb0v4nzn5l1xnpkxaj6fa"; depends=[affxparser affy AnnotationDbi Biobase BiocGenerics BiocManager data_table DBI DT edgeR fdrtool GEOquery limma matrixStats metaMA miniUI oligo RCurl reader readxl RSQLite shiny shinyBS shinyjs shinypanel shinyWidgets stringr sva tibble XML]; };
+  csaw = derive2 { name="csaw"; version="1.38.0"; sha256="0a870z480an3wwbp6z4qy034kvk6bvrydgk2if7x4q9k3qvknsz0"; depends=[BiocGenerics BiocParallel edgeR GenomeInfoDb GenomicRanges IRanges limma Matrix metapod Rcpp Rhtslib Rsamtools S4Vectors SummarizedExperiment zlibbioc]; };
+  csdR = derive2 { name="csdR"; version="1.10.0"; sha256="13g6rq95888l4ach0yrw6nrfvyxnw3b5ni01v875gfk5jl9jcllv"; depends=[glue matrixStats Rcpp RhpcBLASctl WGCNA]; };
+  ctc = derive2 { name="ctc"; version="1.78.0"; sha256="09whaam2r30dq8y9r6vvc0r4sisz78c921bgx7wj6cmn2nvpgf9q"; depends=[amap]; };
+  ctsGE = derive2 { name="ctsGE"; version="1.30.0"; sha256="1pqww9r71zjq4qcssffs94q2fx177jlv9n6vkm3qm9j943r1cy58"; depends=[ccaPP ggplot2 limma reshape2 shiny stringr]; };
+  cummeRbund = derive2 { name="cummeRbund"; version="2.46.0"; sha256="0hdm2214waz02ybr264xis48kj2anpad80jk640p49v9r17iia9l"; depends=[Biobase BiocGenerics fastcluster ggplot2 Gviz plyr reshape2 RSQLite rtracklayer S4Vectors]; };
+  customCMPdb = derive2 { name="customCMPdb"; version="1.14.0"; sha256="1j56542mp1gimnbbakbilkmb59jngvx8w47ycnaj8c1j1yhar9ll"; depends=[AnnotationHub BiocFileCache ChemmineR rappdirs RSQLite XML]; };
+  customProDB = derive2 { name="customProDB"; version="1.44.0"; sha256="1pxn9nq84h9xgn2g0jzigbw7pbv4sjvf4jkzalp7l3yjax5llq3i"; depends=[AhoCorasickTrie AnnotationDbi biomaRt Biostrings DBI GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges IRanges plyr RCurl Rsamtools RSQLite rtracklayer S4Vectors stringr txdbmaker VariantAnnotation]; };
+  cyanoFilter = derive2 { name="cyanoFilter"; version="1.12.0"; sha256="1nymq5qiw5s2nfa67mccv0jn6gxy5y6sx483cw87j5pbmvg579rx"; depends=[Biobase cytometree flowClust flowCore flowDensity GGally ggplot2 mrfDepth]; };
+  cycle = derive2 { name="cycle"; version="1.58.0"; sha256="0jhjjnxyx5byjdf7rh1ci1gdf8djgi4ksm17rrrrnwyrcg6y3dyb"; depends=[Biobase Mfuzz]; };
+  cydar = derive2 { name="cydar"; version="1.28.0"; sha256="16lr3sry647wns2ycv3b604fmsma3a944g85c4ik7xk7ij1ady47"; depends=[Biobase BiocGenerics BiocNeighbors BiocParallel flowCore Rcpp S4Vectors shiny SingleCellExperiment SummarizedExperiment viridis]; };
+  cypress = derive2 { name="cypress"; version="1.0.0"; sha256="0dyywkg41ihff6f2f6p7854qkgx3lav1rviicrik2nlxg4scl034"; depends=[abind BiocParallel checkmate DESeq2 dplyr e1071 edgeR MASS mvtnorm preprocessCore PROPER RColorBrewer rlang sirt SummarizedExperiment TCA tibble TOAST]; };
+  cytoKernel = derive2 { name="cytoKernel"; version="1.10.0"; sha256="0pzcsxshc60myzhq57gxyzrfd590ggydj2nq0byca7vyzxc6z3y6"; depends=[ashr BiocParallel circlize ComplexHeatmap data_table dplyr magrittr Rcpp rlang S4Vectors SummarizedExperiment]; };
+  cytoMEM = derive2 { name="cytoMEM"; version="1.8.0"; sha256="1dxam2ycwpjmk4z3jgz90swach8k2skjsq4nlh2hj694iqs4f6zj"; depends=[flowCore gplots matrixStats]; };
+  cytofQC = derive2 { name="cytofQC"; version="1.4.0"; sha256="1gn383vchgxs62z9p5h7b0wnakwmwclsk46px6ah1cagykrfgas3"; depends=[CATALYST e1071 EZtune flowCore gbm ggplot2 hrbrthemes matrixStats randomForest rmarkdown S4Vectors SingleCellExperiment ssc SummarizedExperiment]; };
+  cytolib = derive2 { name="cytolib"; version="2.16.0"; sha256="0nrj892jihi4fv58si3il42s0vyz3gm4gmb65kidkky63gmsy6iq"; depends=[BH Rhdf5lib RProtoBufLib]; };
+  cytomapper = derive2 { name="cytomapper"; version="1.16.0"; sha256="1njdhhnzy639v4w07wvgj2gygsipzkfzhbrw63fvxfpf4r1xjzix"; depends=[BiocParallel DelayedArray EBImage ggbeeswarm ggplot2 HDF5Array matrixStats nnls raster RColorBrewer rhdf5 S4Vectors shiny shinydashboard SingleCellExperiment SpatialExperiment SummarizedExperiment svglite svgPanZoom viridis]; };
+  cytoviewer = derive2 { name="cytoviewer"; version="1.4.0"; sha256="0s7jnr3z7p6v6x17a9a6cv9vbqgfk8snamcw8qkjpfd613gwk43r"; depends=[archive colourpicker cytomapper EBImage RColorBrewer S4Vectors shiny shinycssloaders shinydashboard SingleCellExperiment SummarizedExperiment svglite svgPanZoom viridis]; };
+  dStruct = derive2 { name="dStruct"; version="1.10.0"; sha256="144hyris6fsbs28pz4643njnpjfb0n9w6pm220q5hid4zvhn7dh7"; depends=[ggplot2 IRanges purrr reshape2 rlang S4Vectors zoo]; };
+  daMA = derive2 { name="daMA"; version="1.76.0"; sha256="1hv43r6rymp09fl7vgr8jf6naixkrgl282ggf6nva0jxf1jnfmb3"; depends=[MASS]; };
+  dada2 = derive2 { name="dada2"; version="1.32.0"; sha256="1ac0nb5bcmzmqpi3vjdmns6xqq3ar61dks6qb3c0k48c78w88b7b"; depends=[BiocGenerics Biostrings ggplot2 IRanges Rcpp RcppParallel reshape2 ShortRead XVector]; };
+  dagLogo = derive2 { name="dagLogo"; version="1.42.0"; sha256="1qaa63ymsirwdvy9z82c81kknhqcpip7bry4b9d8xan48m5f63xl"; depends=[BiocGenerics biomaRt Biostrings httr motifStack pheatmap UniProt_ws]; };
+  dar = derive2 { name="dar"; version="1.0.0"; sha256="0l5hjx86n34k3b4cdlndl5gh62f3jxps1iq2ir3fzacpxqsimkjw"; depends=[cli ComplexHeatmap crayon dplyr generics ggplot2 glue gplots heatmaply magrittr mia phyloseq purrr readr rlang scales stringr tibble tidyr UpSetR waldo]; };
+  dcGSA = derive2 { name="dcGSA"; version="1.32.0"; sha256="0203pdlv1f9s4zyh6hn2jls6b1pc8rzagrdyvsg50dk187qfvjja"; depends=[BiocParallel Matrix]; };
+  dcanr = derive2 { name="dcanr"; version="1.20.0"; sha256="15way811xnlhb3qafvfibvqsvx72h8hr0jbwxvqd2dzc2gmkq2ib"; depends=[circlize doRNG foreach igraph Matrix plyr RColorBrewer reshape2 stringr]; };
+  dce = derive2 { name="dce"; version="1.12.0"; sha256="1fxcbf21i8k5zydv4qqm41pm3lawkc66ic2rxhlgiwlh7c49awam"; depends=[assertthat dplyr edgeR epiNEM expm ggplot2 ggraph glm2 glue graph graphite harmonicmeanp igraph logger magrittr MASS Matrix metap mnem naturalsort org_Hs_eg_db pcalg ppcor purrr reshape2 Rgraphviz rlang shadowtext tidygraph tidyverse]; };
+  ddCt = derive2 { name="ddCt"; version="1.60.0"; sha256="1q2j80wn5x0lkhpd0krsnw99rrn3kqn09d8xdi778cmvsgqxpahg"; depends=[Biobase BiocGenerics lattice RColorBrewer xtable]; };
+  ddPCRclust = derive2 { name="ddPCRclust"; version="1.24.0"; sha256="0nmnhykwzbyf2y9i3fi5hgwvc7m7bcikyr3c3nxyaw95f8cc52dp"; depends=[clue flowCore flowDensity flowPeaks ggplot2 openxlsx plotrix R_utils SamSPECTRAL]; };
+  dearseq = derive2 { name="dearseq"; version="1.16.0"; sha256="0hy8cnqyvp2mrhj5wi1shh1cba79c5z8f17mfw764s2d6ivsfzz6"; depends=[CompQuadForm dplyr ggplot2 KernSmooth magrittr matrixStats patchwork pbapply reshape2 rlang scattermore statmod survey tibble viridisLite]; };
+  debCAM = derive2 { name="debCAM"; version="1.22.0"; sha256="1lbgwv7009fpwqw6kl94gmm44xypn60r8kcm3fjzgbjbwijriwgq"; depends=[apcluster Biobase BiocParallel corpcor DMwR2 geometry NMF nnls pcaPP rJava SummarizedExperiment]; };
+  debrowser = derive2 { name="debrowser"; version="1.32.0"; sha256="0qgnx44j6lxw48wlpslagjq71mfx09vrfjq528z7vzn4phrax0by"; depends=[annotate AnnotationDbi apeglm ashr clusterProfiler colourpicker DESeq2 DOSE DT edgeR enrichplot GenomicRanges ggplot2 gplots Harman heatmaply igraph IRanges jsonlite limma org_Hs_eg_db org_Mm_eg_db pathview plotly RColorBrewer RCurl reshape2 S4Vectors shiny shinyBS shinydashboard shinyjs stringi SummarizedExperiment sva]; };
+  decompTumor2Sig = derive2 { name="decompTumor2Sig"; version="2.20.0"; sha256="1pnxnxz9zsxqs7cbxgkjapr57k2m1d57w5hak0dwcy5zcxjzmai8"; depends=[BiocGenerics Biostrings BSgenome_Hsapiens_UCSC_hg19 data_table GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 ggseqlogo gridExtra Matrix plyr quadprog readxl S4Vectors SummarizedExperiment TxDb_Hsapiens_UCSC_hg19_knownGene VariantAnnotation]; };
+  decontX = derive2 { name="decontX"; version="1.2.0"; sha256="0bxpzc9fib47c5prnshzykfd5a3mcik9n1ayd7jxygxy36icgqcj"; depends=[BH celda dbscan DelayedArray ggplot2 Matrix MCMCprecision patchwork plyr Rcpp RcppEigen RcppParallel reshape2 rstan rstantools S4Vectors scater Seurat SingleCellExperiment StanHeaders SummarizedExperiment withr]; };
+  decontam = derive2 { name="decontam"; version="1.24.0"; sha256="1xjd9jzxlj6gfd6fnygzm21q1wy5x5pl031sq1q0svq3jlnzvgb7"; depends=[ggplot2 reshape2]; };
+  deconvR = derive2 { name="deconvR"; version="1.10.0"; sha256="181dxjj8bzy1b9xq9hd3m3ak1698w7j0sf8h9g0bhf3blzlj4pmi"; depends=[assertthat BiocGenerics data_table dplyr e1071 foreach GenomicRanges IRanges magrittr MASS matrixStats methylKit minfi nnls quadprog rsq S4Vectors tidyr]; };
+  decoupleR = derive2 { name="decoupleR"; version="2.10.0"; sha256="060ww5hlzk0dvh7a52i1nrz1s2xq5mmlw70rxpcs6d4j08k1cmic"; depends=[BiocParallel broom dplyr magrittr Matrix parallelly purrr rlang stringr tibble tidyr tidyselect withr]; };
+  deepSNV = derive2 { name="deepSNV"; version="1.50.0"; sha256="1rcq2bg4z6z7czqi662w5gsdc1vd4p8vb353hqayhciv31dz51fr"; depends=[Biostrings GenomicRanges IRanges Rhtslib SummarizedExperiment VariantAnnotation VGAM]; };
+  deltaCaptureC = derive2 { name="deltaCaptureC"; version="1.18.0"; sha256="019c6rlsl4glc4vkbz3kfcn9d9rh3vnfw0xbcsi33hk51z89qc78"; depends=[DESeq2 GenomicRanges ggplot2 IRanges SummarizedExperiment tictoc]; };
+  deltaGseg = derive2 { name="deltaGseg"; version="1.44.0"; sha256="0jdlcsajpksr58nj551r6biwir20k67ysa42bcingcrgii740yyk"; depends=[changepoint fBasics ggplot2 pvclust reshape scales tseries wavethresh]; };
+  demuxSNP = derive2 { name="demuxSNP"; version="1.2.0"; sha256="0inswz7w97wdy7bhl6p87cyr11z77ipf1rsmri9c2nra8s3ix51d"; depends=[BiocGenerics class demuxmix dplyr ensembldb GenomeInfoDb IRanges KernelKnn Matrix MatrixGenerics SingleCellExperiment SummarizedExperiment VariantAnnotation]; };
+  demuxmix = derive2 { name="demuxmix"; version="1.6.0"; sha256="18wn36rs7iif2cxz0iz17i0dba0llk2zkw7c81bi9v4c7lsijbcb"; depends=[ggplot2 gridExtra MASS Matrix]; };
+  densvis = derive2 { name="densvis"; version="1.14.0"; sha256="1xsafzcg6psb4ld7nk4wgdaa3xhy8i2v86asasf8h3mi1ms7lcv0"; depends=[assertthat basilisk irlba Rcpp reticulate Rtsne]; };
+  derfinder = derive2 { name="derfinder"; version="1.38.0"; sha256="1i4m20wb08zncksz415jl8bd5r4gdygk7324cp6xhijrc1pfzl1i"; depends=[AnnotationDbi BiocGenerics BiocParallel bumphunter derfinderHelper GenomeInfoDb GenomicAlignments GenomicFeatures GenomicFiles GenomicRanges Hmisc IRanges qvalue Rsamtools rtracklayer S4Vectors]; };
+  derfinderHelper = derive2 { name="derfinderHelper"; version="1.38.0"; sha256="0186wjrszf6c5amibmdblabx3cfvq7p7k6kza38gahw0p7ibwv21"; depends=[IRanges Matrix S4Vectors]; };
+  derfinderPlot = derive2 { name="derfinderPlot"; version="1.38.0"; sha256="177j7bl552n80p2rip0zxjn72yf3pv6xg6g1hi312vapfvymcfbl"; depends=[derfinder GenomeInfoDb GenomicFeatures GenomicRanges ggbio ggplot2 IRanges limma plyr RColorBrewer reshape2 S4Vectors scales]; };
+  destiny = derive2 { name="destiny"; version="3.18.0"; sha256="0w7j6xh0gzhahk1r8w2wgnylq5v476jzz0g14yjmszfkzm10va3h"; depends=[Biobase BiocGenerics ggplot_multistats ggplot2 ggthemes irlba knn_covertree Matrix pcaMethods proxy Rcpp RcppEigen RcppHNSW rlang RSpectra scales scatterplot3d SingleCellExperiment smoother SummarizedExperiment tidyr tidyselect VIM]; };
+  diffGeneAnalysis = derive2 { name="diffGeneAnalysis"; version="1.86.0"; sha256="1zhgsr2xs2dk45r7msy0qrrsjk21gk622d1wayflhbxsg2s9jlb1"; depends=[minpack_lm]; };
+  diffHic = derive2 { name="diffHic"; version="1.36.1"; sha256="1wzlzmmrxmnwgqkxqwga73x0kpj7d968c7jgrln9xfilhhn4fkyy"; depends=[BiocGenerics Biostrings BSgenome csaw edgeR GenomeInfoDb GenomicRanges InteractionSet IRanges limma locfit Rcpp rhdf5 Rhtslib Rsamtools rtracklayer S4Vectors SummarizedExperiment zlibbioc]; };
+  diffUTR = derive2 { name="diffUTR"; version="1.12.0"; sha256="1rh3ndi8z6j4zr63w7nyvf5knrknzpl9525h3v9pc8m7gbk0jwk2"; depends=[ComplexHeatmap DEXSeq dplyr edgeR ensembldb GenomeInfoDb GenomicRanges ggplot2 ggrepel IRanges limma matrixStats Rsubread rtracklayer S4Vectors stringi SummarizedExperiment viridisLite]; };
+  diffcoexp = derive2 { name="diffcoexp"; version="1.24.0"; sha256="1cana6v3k7qab0x0fngl4abvh4nrznjwqhaq9m6qwn75ils3bh3f"; depends=[BiocGenerics DiffCorr igraph psych SummarizedExperiment WGCNA]; };
+  diffcyt = derive2 { name="diffcyt"; version="1.24.0"; sha256="1iyqvang5j55s19skd44c1zsxkphn3qqbl4sjhsw1y820ylws5r1"; depends=[circlize ComplexHeatmap dplyr edgeR flowCore FlowSOM limma lme4 magrittr multcomp reshape2 S4Vectors SummarizedExperiment tidyr]; };
+  diffuStats = derive2 { name="diffuStats"; version="1.24.0"; sha256="1d46rly5y4xc7hgjhvz2wlx6193jzpw3j8kkjvybr57d9vkl7x8s"; depends=[checkmate expm igraph MASS Matrix plyr precrec Rcpp RcppArmadillo RcppParallel]; };
+  diggit = derive2 { name="diggit"; version="1.36.0"; sha256="1fmz15jrdk9395a5wapwkld33xkmvr44xy2qmg8r3l21ayr7j63g"; depends=[Biobase ks viper]; };
+  dinoR = derive2 { name="dinoR"; version="1.0.0"; sha256="10fmj0f3fgga26rs39c9z69w0lnb4i2i00vq354s1qh0ciya6xpc"; depends=[BiocGenerics circlize ComplexHeatmap cowplot dplyr edgeR GenomicRanges ggplot2 Matrix rlang stringr SummarizedExperiment tibble tidyr tidyselect]; };
+  dir_expiry = derive2 { name="dir.expiry"; version="1.12.0"; sha256="03958xwwywsl5ql6ss1rbkklk49ksgvbp4nqcmmqhn1hiwwn8rvi"; depends=[filelock]; };
+  discordant = derive2 { name="discordant"; version="1.28.0"; sha256="034nxwm0z3r0cbjpg8l6cwc6f4jnlj8v9q7r9c9ha9xk6xbah0yr"; depends=[Biobase biwt dplyr gtools MASS Rcpp]; };
+  distinct = derive2 { name="distinct"; version="1.16.0"; sha256="19xpnll4fksbw5hbk3g7a8m34p7jqj31vm7jxapwxxkmng17cpka"; depends=[doParallel doRNG foreach ggplot2 limma Matrix Rcpp RcppArmadillo scater SingleCellExperiment SummarizedExperiment]; };
+  dittoSeq = derive2 { name="dittoSeq"; version="1.16.0"; sha256="15p01f3yaan9x7y6ld1kx40jnbcn6vjjm5n6ir7cicdvv4w5ln49"; depends=[colorspace cowplot ggplot2 ggrepel ggridges gridExtra pheatmap reshape2 S4Vectors SingleCellExperiment SummarizedExperiment]; };
+  divergence = derive2 { name="divergence"; version="1.20.0"; sha256="0gm9p5lnxyfww5djgar1kp1lfmi2a30w2xbmh456a2808xdygdgf"; depends=[SummarizedExperiment]; };
+  dks = derive2 { name="dks"; version="1.50.0"; sha256="1j7xbdxk5ghh76fys6vnhnxf627xl70h4b7jn2mladgjw0cszklk"; depends=[cubature]; };
+  dmrseq = derive2 { name="dmrseq"; version="1.24.0"; sha256="0p7xpyl1wni17y7qsincpvllaynxwppmyg6hsza51srs4dhr7sf1"; depends=[AnnotationHub annotatr BiocParallel bsseq bumphunter DelayedMatrixStats GenomeInfoDb GenomicRanges ggplot2 IRanges locfit matrixStats nlme outliers RColorBrewer rtracklayer S4Vectors]; };
+  doppelgangR = derive2 { name="doppelgangR"; version="1.32.0"; sha256="1kxw5x1fwdn2hzzf6ckxz0k8qqghvr0qdx3fgx31jdla0zc9z1zm"; depends=[Biobase BiocParallel digest impute mnormt SummarizedExperiment sva]; };
+  doseR = derive2 { name="doseR"; version="1.20.0"; sha256="09zr2r1vk1azrjwgx2bklv5sdypl3dba0szvh21nw1ndqyk9lwic"; depends=[digest edgeR lme4 matrixStats mclust RUnit S4Vectors SummarizedExperiment]; };
+  doubletrouble = derive2 { name="doubletrouble"; version="1.4.0"; sha256="0xfrpz3ilxapcclxgf7drkwcrhvn2d70fx6q139faslp1zs19bv0"; depends=[AnnotationDbi BiocParallel Biostrings GenomicFeatures GenomicRanges ggplot2 mclust MSA2dist rlang syntenet]; };
+  drawProteins = derive2 { name="drawProteins"; version="1.24.0"; sha256="1ap2lclwpr532pzapz61pd6lclq3d3idvq4462x19jaivnhf6mr5"; depends=[dplyr ggplot2 httr readr tidyr]; };
+  dreamlet = derive2 { name="dreamlet"; version="1.2.1"; sha256="06mpmwjxp7zs9fsggf2b3qc5vgmx6l5s7prl6l7b753zfq5gvjbg"; depends=[ashr beachmat BiocGenerics BiocParallel broom data_table DelayedArray DelayedMatrixStats dplyr edgeR ggbeeswarm ggplot2 ggrepel GSEABase gtools IRanges irlba limma lme4 mashr MASS Matrix MatrixGenerics metafor purrr Rcpp Rdpack remaCor reshape2 rlang S4Vectors scattermore SingleCellExperiment sparseMatrixStats SummarizedExperiment tidyr variancePartition zenith]; };
+  drugTargetInteractions = derive2 { name="drugTargetInteractions"; version="1.12.0"; sha256="079qy3mmv9skiybzh9ls3082wqb3r9x6fn50rgcwziapixlx2rh4"; depends=[AnnotationFilter BiocFileCache biomaRt dplyr ensembldb rappdirs RSQLite S4Vectors UniProt_ws]; };
+  dupRadar = derive2 { name="dupRadar"; version="1.34.0"; sha256="0wd03v3qqmprv1n8018w0qqaw0majhx2i33qam7vf4rm2ng1gcxj"; depends=[KernSmooth Rsubread]; };
+  dyebias = derive2 { name="dyebias"; version="1.64.0"; sha256="1k676kx37f6gdlrld2z7pygdf2cgin0d2cqgas83xizcq07ngnld"; depends=[Biobase marray]; };
+  easier = derive2 { name="easier"; version="1.10.0"; sha256="00c0dssv41brpwsh09zh23b7r3y7vax16viwc33nniig3f724id2"; depends=[BiocParallel coin decoupleR DESeq2 dorothea dplyr easierData ggplot2 ggpubr ggrepel magrittr matrixStats progeny quantiseqr reshape2 rlang ROCR rstatix tibble tidyr]; };
+  easyRNASeq = derive2 { name="easyRNASeq"; version="2.39.0"; sha256="1dfg8k2jxhnyms7nkgsdyhwca0hnm45c2p3x5dxlm8kd69z7wzdj"; depends=[Biobase BiocFileCache BiocGenerics BiocParallel biomaRt Biostrings edgeR GenomeInfoDb genomeIntervals GenomicAlignments GenomicRanges IRanges locfit LSD rappdirs Rsamtools S4Vectors ShortRead SummarizedExperiment]; };
+  easylift = derive2 { name="easylift"; version="1.2.0"; sha256="17kc61n79iiwvwm4zpdh1a7a7q196fjs289kd95z6b7m4sp78l4b"; depends=[BiocFileCache GenomeInfoDb GenomicRanges R_utils rtracklayer]; };
+  easyreporting = derive2 { name="easyreporting"; version="1.16.0"; sha256="0nlywvb35w8x90rx1b8535sls3n4kbfzkxrkm5g1ismsdxjs16cj"; depends=[rlang rmarkdown shiny]; };
+  ecolitk = derive2 { name="ecolitk"; version="1.76.0"; sha256="1knnvzxlf8gsn3r0sfadlsb4ln2csjizc1i0yffpv75yxrqa0ycd"; depends=[Biobase]; };
+  edge = derive2 { name="edge"; version="2.36.0"; sha256="10ddfwnvbh71q4aplb8ykahk8jmd80v0agny9mskmgkry35bi89s"; depends=[Biobase MASS qvalue sva]; };
+  edgeR = derive2 { name="edgeR"; version="4.2.0"; sha256="1w3dp3h30jqylbkql33j5ibp9i4vp7n1x6wdd2v0kdnv82il6hqg"; depends=[limma locfit Rcpp]; };
+  eds = derive2 { name="eds"; version="1.6.0"; sha256="006d5gx7hz51v2icq6bi1hy8r9g5qgxrf7xf3s72asny2vdn3qw4"; depends=[Matrix Rcpp]; };
+  eiR = derive2 { name="eiR"; version="1.44.0"; sha256="1ia8ygj2sashjwign28xfilj7j0a4r03nmgq6qzfsyw679wq4m2v"; depends=[BiocGenerics ChemmineR DBI digest RcppAnnoy RCurl RUnit snow snowfall]; };
+  eisaR = derive2 { name="eisaR"; version="1.16.0"; sha256="0in6bkakplpqvfr8zya850sdl0jr4h1qdsw1shvd9wjr3yxdmsad"; depends=[BiocGenerics edgeR GenomicRanges IRanges limma S4Vectors SummarizedExperiment]; };
+  enhancerHomologSearch = derive2 { name="enhancerHomologSearch"; version="1.10.0"; sha256="00hm42zvkgz0r3s0k4ljfcbwfkysd1sw6k3zm00fxglgigvfs8r3"; depends=[BiocFileCache BiocGenerics BiocParallel Biostrings BSgenome GenomeInfoDb GenomicRanges httr IRanges jsonlite Matrix motifmatchr pwalign Rcpp rtracklayer S4Vectors]; };
+  enrichViewNet = derive2 { name="enrichViewNet"; version="1.2.0"; sha256="1xnxkcy0ifhf3d5qfngh5vrxz3699azjjigr17qm4zmq7qdsp7h2"; depends=[DOSE enrichplot gprofiler2 jsonlite RCy3 strex stringr]; };
+  enrichplot = derive2 { name="enrichplot"; version="1.24.0"; sha256="0rkp1zidz34h4d02m4jqv509vw0wyrc084hvj3lxr7mb9j7rnq48"; depends=[aplot DOSE ggfun ggnewscale ggplot2 ggraph ggtree GOSemSim igraph magrittr plyr purrr RColorBrewer reshape2 rlang scatterpie shadowtext yulab_utils]; };
+  ensemblVEP = derive2 { name="ensemblVEP"; version="1.46.0"; sha256="10lq13v2qww8d251digx4g50y3vab6sg9kmxkdy00q40ncn042g6"; depends=[BiocGenerics Biostrings GenomeInfoDb GenomicRanges S4Vectors SummarizedExperiment VariantAnnotation]; };
+  ensembldb = derive2 { name="ensembldb"; version="2.28.0"; sha256="10h3ngwq99y0d3ksf0303qjw263ard1zsawpq1pw5n9r5g7xll47"; depends=[AnnotationDbi AnnotationFilter Biobase BiocGenerics Biostrings curl DBI GenomeInfoDb GenomicFeatures GenomicRanges IRanges ProtGenerics Rsamtools RSQLite rtracklayer S4Vectors]; };
+  epiNEM = derive2 { name="epiNEM"; version="1.28.0"; sha256="156qj9r121j6c9vr6fh2zi9aaq3kq9gabjxg4l5wj47vj1d427az"; depends=[BoolNet e1071 graph gtools igraph latex2exp lattice latticeExtra minet mnem pcalg RColorBrewer]; };
+  epialleleR = derive2 { name="epialleleR"; version="1.12.0"; sha256="1jdhzcs6l3v4765dxlqc7gn2yxy9fvzk94aixl5bqxmn4v4hyasq"; depends=[BH BiocGenerics data_table GenomeInfoDb GenomicRanges Rcpp Rhtslib SummarizedExperiment VariantAnnotation zlibbioc]; };
+  epidecodeR = derive2 { name="epidecodeR"; version="1.12.0"; sha256="0gmdmjvl93zgsi9yclscw94y1caspb2pnjawxhv3yqmnhjq3dzhz"; depends=[dplyr EnvStats GenomicRanges ggplot2 ggpubr IRanges rstatix rtracklayer]; };
+  epigenomix = derive2 { name="epigenomix"; version="1.44.0"; sha256="1c1lwz5lbq69anpk1q7dhlfrvb66g8vrfyw7130x1c6y5yryk23k"; depends=[beadarray Biobase BiocGenerics GenomeInfoDb GenomicRanges IRanges MCMCpack Rsamtools S4Vectors SummarizedExperiment]; };
+  epigraHMM = derive2 { name="epigraHMM"; version="1.12.0"; sha256="1zkb81jd2gsj92yzlxhshaw4csap9b06gyy5gl1qi3k3qkx69dq9"; depends=[bamsignals csaw data_table GenomeInfoDb GenomicRanges ggplot2 ggpubr GreyListChIP IRanges limma magrittr MASS Matrix pheatmap Rcpp RcppArmadillo rhdf5 Rhdf5lib Rsamtools rtracklayer S4Vectors scales SummarizedExperiment]; };
+  epimutacions = derive2 { name="epimutacions"; version="1.8.0"; sha256="15lrkz7fqmjg5d2l77xbiqwdd3f2jnbw9nc6l4k6wglw3za3prr1"; depends=[AnnotationDbi AnnotationHub BiocGenerics BiocParallel biomaRt bumphunter ensembldb epimutacionsData ExperimentHub GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 ggrepel gridExtra Gviz Homo_sapiens IlluminaHumanMethylation450kanno_ilmn12_hg19 IlluminaHumanMethylation450kmanifest IlluminaHumanMethylationEPICanno_ilm10b2_hg19 IlluminaHumanMethylationEPICmanifest IRanges isotree matrixStats minfi purrr reshape2 robustbase rtracklayer S4Vectors SummarizedExperiment tibble TxDb_Hsapiens_UCSC_hg18_knownGene TxDb_Hsapiens_UCSC_hg19_knownGene TxDb_Hsapiens_UCSC_hg38_knownGene]; };
+  epiregulon = derive2 { name="epiregulon"; version="1.0.1"; sha256="0zhnra2kl1r2kh9g21fx3nqyb5sksnf7j81dzhjnwjvmlr52xp8w"; depends=[AnnotationHub AUCell beachmat BiocParallel bluster BSgenome_Hsapiens_UCSC_hg19 BSgenome_Hsapiens_UCSC_hg38 BSgenome_Mmusculus_UCSC_mm10 checkmate entropy ExperimentHub GenomeInfoDb GenomicRanges IRanges lifecycle Matrix motifmatchr Rcpp S4Vectors scMultiome scran scuttle SingleCellExperiment SummarizedExperiment]; };
+  epiregulon_extra = derive2 { name="epiregulon.extra"; version="1.0.0"; sha256="04d85zp0yadbxrjk88arnf64hfnw67yqn60y03a0wvrw6hcv1zdz"; depends=[checkmate circlize clusterProfiler ComplexHeatmap ggplot2 ggraph igraph lifecycle Matrix patchwork reshape2 scales scater scran SingleCellExperiment SummarizedExperiment]; };
+  epistack = derive2 { name="epistack"; version="1.10.0"; sha256="1kfviv9k43n6hy66x5r5hc2f7vb3y3v81qk1m9549nqvdii7ph5q"; depends=[BiocGenerics GenomicRanges IRanges plotrix S4Vectors SummarizedExperiment]; };
+  epistasisGA = derive2 { name="epistasisGA"; version="1.6.0"; sha256="1rq1jgd95zamg3fsyj8nbvg95chjaf9d30xlg8d6rr071ya9f03v"; depends=[batchtools BH bigmemory BiocParallel data_table ggplot2 igraph matrixStats qgraph Rcpp RcppArmadillo survival]; };
+  epivizr = derive2 { name="epivizr"; version="2.34.0"; sha256="07y6h9dk0mz5nh1ivbrf1l2smlw7y0ygdmh9k1fn50lc6120dq37"; depends=[bumphunter epivizrData epivizrServer GenomeInfoDb GenomicRanges IRanges S4Vectors]; };
+  epivizrChart = derive2 { name="epivizrChart"; version="1.26.0"; sha256="0yq0mqkzvvp5mva24ky7sqa6107rcaxlircw0wg8bsalcxynvgzw"; depends=[BiocGenerics epivizrData epivizrServer htmltools rjson]; };
+  epivizrData = derive2 { name="epivizrData"; version="1.32.0"; sha256="11x47w0rvn109brah7140nn5844vvmdpbgdc2c3q2ycxm40fl6rq"; depends=[Biobase ensembldb epivizrServer GenomeInfoDb GenomicFeatures GenomicRanges IRanges OrganismDbi S4Vectors SummarizedExperiment]; };
+  epivizrServer = derive2 { name="epivizrServer"; version="1.32.0"; sha256="11ba652yhnl7xi7fgw3s32siwd38mrsxsklm0n6f5v081g3a7g3s"; depends=[httpuv mime R6 rjson]; };
+  epivizrStandalone = derive2 { name="epivizrStandalone"; version="1.32.0"; sha256="0qrngsga0qfadbijjikfzgpl6i0vnvkcssnf1z3y1fm8mkq35b4z"; depends=[BiocGenerics epivizr epivizrServer GenomeInfoDb GenomicFeatures git2r S4Vectors]; };
+  erccdashboard = derive2 { name="erccdashboard"; version="1.38.0"; sha256="0cghksf9gkgkcak8493s4pixq2nd3a7zc91vqq158g5na6ca24n7"; depends=[edgeR ggplot2 gplots gridExtra gtools limma locfit MASS plyr qvalue reshape2 ROCR scales stringr]; };
+  erma = derive2 { name="erma"; version="1.20.0"; sha256="0f4y0szdqhg63vaw7f1lmgzb72bhfpz20g9naq84s8bq2xsf8cy6"; depends=[AnnotationDbi Biobase BiocGenerics BiocParallel GenomeInfoDb GenomicFiles GenomicRanges ggplot2 Homo_sapiens IRanges rtracklayer S4Vectors shiny SummarizedExperiment]; };
+  esATAC = derive2 { name="esATAC"; version="1.26.0"; sha256="0gfil57zc5bzhk29cw16bv02kng7hqs5ry1kakly1kvcfafcn87s"; depends=[AnnotationDbi BiocGenerics BiocManager Biostrings BSgenome ChIPseeker clusterProfiler corrplot digest GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 igraph IRanges JASPAR2018 knitr magrittr motifmatchr pipeFrame R_utils Rbowtie2 Rcpp rJava rmarkdown Rsamtools rtracklayer S4Vectors ShortRead TFBSTools VennDiagram]; };
+  escape = derive2 { name="escape"; version="2.0.0"; sha256="03wbrxd7kjyl3d4s418ql5fv7bmwdfyfp10jd8knr0xis7vxmz2x"; depends=[AUCell BiocParallel dplyr ggdist ggplot2 ggpointdensity ggridges GSEABase GSVA MatrixGenerics msigdbr patchwork reshape2 SeuratObject SingleCellExperiment stringr SummarizedExperiment UCell]; };
+  escheR = derive2 { name="escheR"; version="1.4.0"; sha256="16sqxsvpvb9idb7crbr3kq5xcifpzdw29lcxvrn2kxq003n7hbqw"; depends=[ggplot2 rlang SingleCellExperiment SpatialExperiment SummarizedExperiment]; };
+  esetVis = derive2 { name="esetVis"; version="1.30.0"; sha256="1b51cv3bl11jymjwnd8150lw5ab7bpa4jj09ssisn3qnb5nym7lj"; depends=[Biobase hexbin MASS MLP mpm Rtsne]; };
+  eudysbiome = derive2 { name="eudysbiome"; version="1.34.0"; sha256="12kbk17rfh1icxdj5kkz66d72p9rq4bw9nh52bvah5i3bq7wi5zn"; depends=[Biostrings plyr R_utils Rsamtools]; };
+  evaluomeR = derive2 { name="evaluomeR"; version="1.20.0"; sha256="1rcffshqlkilmfyziz95pac4c0rm5jjq0y9i3r47z55zmrnr4lz4"; depends=[class cluster corrplot flexmix fpc ggdendro ggplot2 kableExtra MASS matrixStats mclust MultiAssayExperiment plotrix prabclus randomForest Rdpack reshape2 SummarizedExperiment]; };
+  extraChIPs = derive2 { name="extraChIPs"; version="1.8.1"; sha256="0qmm7sffwv2b1qinwm39pahb4i1m2jk4hzwli481by24vc6p1y7j"; depends=[BiocIO BiocParallel broom ComplexUpset csaw dplyr edgeR forcats GenomeInfoDb GenomicInteractions GenomicRanges ggforce ggplot2 ggrepel ggside glue InteractionSet IRanges matrixStats patchwork RColorBrewer rlang Rsamtools rtracklayer S4Vectors scales stringr SummarizedExperiment tibble tidyr tidyselect vctrs VennDiagram]; };
+  fCCAC = derive2 { name="fCCAC"; version="1.30.0"; sha256="0qvwsqvv1g4fcjhy88kq2z5nzlhhvx6p6ffaqis70wbgvr5p4aw0"; depends=[ComplexHeatmap fda genomation GenomicRanges ggplot2 IRanges RColorBrewer S4Vectors]; };
+  fCI = derive2 { name="fCI"; version="1.34.0"; sha256="0szrdyw57k6wa8zr80gyxidfhcc1v88gj6bjank3dc478f1kn9d0"; depends=[FNN gtools psych rgl VennDiagram zoo]; };
+  fabia = derive2 { name="fabia"; version="2.50.0"; sha256="06zlhacfs1mad26pni3fkh3ijh7ca75cr1v2gd62igsw7cf4wdli"; depends=[Biobase]; };
+  factDesign = derive2 { name="factDesign"; version="1.80.0"; sha256="1g7vjb3lrx4a5ks9nsr7z7nrbf8d7f83c37b2fwacx56fbps7f51"; depends=[Biobase]; };
+  factR = derive2 { name="factR"; version="1.6.0"; sha256="1y19wd0j9rlbfi2rqk73gcyszbg4p4cl2w3zqckyvv9969i9rjid"; depends=[BiocGenerics BiocParallel Biostrings crayon data_table dplyr drawProteins GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 IRanges pbapply purrr RCurl rlang rtracklayer S4Vectors stringr tibble tidyr wiggleplotr XML]; };
+  faers = derive2 { name="faers"; version="1.0.0"; sha256="04q6h3hc2697dpk66ra6lppv808n0vgxk1py26nxjkpmqyc076xx"; depends=[BiocParallel brio cli curl data_table httr2 MCMCpack openEBGM rlang rvest vroom xml2]; };
+  famat = derive2 { name="famat"; version="1.14.0"; sha256="099l12m27ys5glbigi9q9hr7941yy9jxrzsbxf993gs71qajlsgh"; depends=[BiasedUrn clusterProfiler dplyr DT GO_db gprofiler2 KEGGREST magrittr mgcv ontologyIndex org_Hs_eg_db plotly reactome_db rWikiPathways shiny shinyBS shinydashboard stringr tidyr]; };
+  fastLiquidAssociation = derive2 { name="fastLiquidAssociation"; version="1.40.0"; sha256="0nhr2w0b491xh6bc2j9mc9a87yblr3l4kmnm8gxlnc27fav3jzj8"; depends=[doParallel Hmisc impute LiquidAssociation preprocessCore WGCNA]; };
+  fastreeR = derive2 { name="fastreeR"; version="1.8.0"; sha256="0r1xngxdblgshgkr4l762kgxqaq9s79g4f3lirlkd9bb248pzfvc"; depends=[ape data_table dynamicTreeCut R_utils rJava stringr]; };
+  fastseg = derive2 { name="fastseg"; version="1.50.0"; sha256="03gl7z7q90jy47q57gfbj5fkv5n8hi43jbbrl53bdyp71f26ry2d"; depends=[Biobase BiocGenerics GenomicRanges IRanges S4Vectors]; };
+  fcScan = derive2 { name="fcScan"; version="1.18.0"; sha256="1gb15zrv44yn65wns7dk24rp54qv7wafqxgk1q8jnbkq9lp5wj2y"; depends=[doParallel foreach GenomicRanges IRanges plyr rtracklayer SummarizedExperiment VariantAnnotation]; };
+  fdrame = derive2 { name="fdrame"; version="1.76.0"; sha256="0a28pw2wi3l8a3x5sxq8aa52fagb678q6wbaajqznx7yflk2s88v"; depends=[]; };
+  fedup = derive2 { name="fedup"; version="1.12.0"; sha256="0q1bvx8zv5c1pzi82v8yxgdxb85l7nzan8k6xwsr1xmdy224lpgf"; depends=[data_table dplyr forcats ggplot2 ggthemes openxlsx RColorBrewer RCy3 tibble]; };
+  fenr = derive2 { name="fenr"; version="1.2.0"; sha256="0d0rjvnbyp8w3hkb38fgbig1211w4gj74lgdnbx52jxym2pkg32y"; depends=[assertthat BiocFileCache dplyr ggplot2 httr2 progress purrr readr rlang rvest shiny stringr tibble tidyr tidyselect]; };
+  ffpe = derive2 { name="ffpe"; version="1.48.0"; sha256="1y769nnwbc9rjjpwxqgfw0v58ym4g9qy695adcyswl8z955yhjax"; depends=[affy Biobase BiocGenerics lumi methylumi sfsmisc TTR]; };
+  fgga = derive2 { name="fgga"; version="1.12.0"; sha256="18bvf1qjdzd66sf479ghf3pg4cnwpwmzkhcvi6zriqd7mvsll8fr"; depends=[BiocFileCache curl e1071 graph gRbase igraph jsonlite RBGL]; };
+  fgsea = derive2 { name="fgsea"; version="1.30.0"; sha256="0nnvqsyrj24h5y8qw8llk9f4jgy0v734k37kcksfcpja17frdyjy"; depends=[BH BiocParallel cowplot data_table fastmatch ggplot2 Matrix Rcpp scales]; };
+  findIPs = derive2 { name="findIPs"; version="1.0.0"; sha256="08vf1i2j9h1174q5sx58hjfa62cbb6ylwzmj4bwkcibazdac5n60"; depends=[Biobase BiocParallel SummarizedExperiment survival]; };
+  fishpond = derive2 { name="fishpond"; version="2.10.0"; sha256="02lzx8whxd3z4k0saf0vaq4np8lag00nkp3hd6da1w91vczs1kjl"; depends=[abind GenomicRanges gtools IRanges jsonlite Matrix matrixStats qvalue S4Vectors SingleCellExperiment SummarizedExperiment svMisc]; };
+  flagme = derive2 { name="flagme"; version="1.60.0"; sha256="0gi2hwd13q4rdmzf45xcbmdpr3b3hbqabv6csmjfiqqqj4cl3wy9"; depends=[CAMERA gcspikelite gplots MASS SparseM xcms]; };
+  flowAI = derive2 { name="flowAI"; version="1.34.0"; sha256="1siqza92iak5lz38hbfznqndrmq995ihp6sbam0n2d3mj8vwv9qa"; depends=[changepoint flowCore ggplot2 knitr plyr RColorBrewer reshape2 rmarkdown scales]; };
+  flowBeads = derive2 { name="flowBeads"; version="1.42.0"; sha256="12zj4w37l760a5j3pwd27yjlfx6ywkcw1rxmp83pgmfwkh8jhvj1"; depends=[Biobase flowCore knitr rrcov xtable]; };
+  flowBin = derive2 { name="flowBin"; version="1.40.0"; sha256="0g0kxxq4c2zm4yvi2yx1czyiiwhvmlfwvqnkyap4kbid05zy1q1i"; depends=[BiocGenerics class flowCore flowFP limma snow]; };
+  flowCHIC = derive2 { name="flowCHIC"; version="1.38.0"; sha256="0zia2gsi53vbmqijljdgxmglssqfmhiqa0bzr5zr03l32aglcp4y"; depends=[EBImage flowCore ggplot2 hexbin vegan]; };
+  flowClean = derive2 { name="flowClean"; version="1.42.0"; sha256="1a588wx63q10lpx7w3f0120ngiprgadr66fl3jvwi4g2yhkwpjsr"; depends=[bit changepoint flowCore sfsmisc]; };
+  flowClust = derive2 { name="flowClust"; version="3.42.0"; sha256="1zjjzn10nvbj7lhg9kvp8gr7m2m294pa3zdmajq65ffdynaaavnd"; depends=[Biobase BiocGenerics flowCore graph]; };
+  flowCore = derive2 { name="flowCore"; version="2.16.0"; sha256="1zq3qypmzk9ld48r50fmygfdqwwyykii8l0l6gh5bdrdan760bfn"; depends=[BH Biobase BiocGenerics cpp11 cytolib matrixStats Rcpp RProtoBufLib S4Vectors]; };
+  flowCut = derive2 { name="flowCut"; version="1.14.0"; sha256="0mhdkkv8n1650wmnasprbpr5wm31s5s2in1n60rcsbb78hl7d278"; depends=[Cairo e1071 flowCore flowDensity]; };
+  flowCyBar = derive2 { name="flowCyBar"; version="1.40.0"; sha256="0cf7b6wqs3wr274fwj8z346432mziv43dgs2qmx2qs6zlq6p2vya"; depends=[gplots vegan]; };
+  flowDensity = derive2 { name="flowDensity"; version="1.38.0"; sha256="17v43jsrgg09ww0ga2dvryvzz4j2skzyhx51vn2lfm13fjbprhcc"; depends=[car flowCore flowViz gplots polyclip]; };
+  flowFP = derive2 { name="flowFP"; version="1.62.0"; sha256="1rpmqk4w4ab6wn0gygpyzzxbgs3ds66pa2lr2sy48b4gxalpr3hc"; depends=[Biobase BiocGenerics flowCore flowViz]; };
+  flowGate = derive2 { name="flowGate"; version="1.4.0"; sha256="1jag6h8inizjmfi69ybs39y4f0zqhc0rb4rrq5yzgy1s5z4ba9fi"; depends=[BiocManager dplyr flowCore flowWorkspace ggcyto ggplot2 purrr rlang shiny tibble]; };
+  flowGraph = derive2 { name="flowGraph"; version="1.12.0"; sha256="1zxpiz8nm3awzkf7wqql73b9kgydgza72yp2kv59gyf1lcsli0ns"; depends=[data_table effsize furrr future ggiraph ggplot2 ggrepel gridExtra htmlwidgets igraph Matrix matrixStats purrr Rdpack stringi stringr visNetwork]; };
+  flowMatch = derive2 { name="flowMatch"; version="1.40.0"; sha256="0k83702b9k5nsng67awr7mz3jq9yxs4dkvvg2hcn29m1s42a2i63"; depends=[Biobase flowCore Rcpp]; };
+  flowMeans = derive2 { name="flowMeans"; version="1.64.0"; sha256="0bkp3q71qj1r2bwfpfriflqklvcqpvh760as7sr489sb18y1xlms"; depends=[Biobase feature flowCore rrcov]; };
+  flowMerge = derive2 { name="flowMerge"; version="2.52.0"; sha256="1z675mj3jsi0n9x03nbw12z001c8jz9pm64ypvb1g6f51bnq1fyx"; depends=[feature flowClust flowCore foreach graph Rgraphviz rrcov snow]; };
+  flowPeaks = derive2 { name="flowPeaks"; version="1.50.0"; sha256="065nkldia602w36bks394qdf96330ahnrz9jpks2gv8r91pk7pf5"; depends=[]; };
+  flowPloidy = derive2 { name="flowPloidy"; version="1.30.0"; sha256="06grhvskia03xakfcs776fiz7i3i04crysykrmnyz1jxbaa2irba"; depends=[car caTools flowCore knitr minpack_lm rmarkdown shiny]; };
+  flowPlots = derive2 { name="flowPlots"; version="1.52.0"; sha256="03kpsfdfr3hwlqjbyq787dnhixg1zs22chi2y1776zjpvxp94ixf"; depends=[]; };
+  flowSpecs = derive2 { name="flowSpecs"; version="1.18.0"; sha256="1774h2sgabnynhc8xlc3ngnkspvs544hhb5ijk3xm2p4ah2md0w1"; depends=[Biobase BiocGenerics BiocParallel flowCore ggplot2 reshape2 zoo]; };
+  flowStats = derive2 { name="flowStats"; version="4.16.0"; sha256="0q8g3sqmbhinfrb63yhv4lsczjz7pqwhwwsdlz2cg7s8yhp0cj6v"; depends=[Biobase BiocGenerics clue cluster corpcor fda flowCore flowViz flowWorkspace KernSmooth ks lattice MASS mnormt ncdfFlow RColorBrewer rrcov]; };
+  flowTime = derive2 { name="flowTime"; version="1.28.0"; sha256="1z7djyka5cpaa3bfgz9q8kwv50k6k5fd666415szfiq5vnlpvn4y"; depends=[dplyr flowCore magrittr plyr rlang tibble]; };
+  flowTrans = derive2 { name="flowTrans"; version="1.56.0"; sha256="0i8rr5qrfszh03j5ch90nqf4ayqamh2kk2c7g1brxbi31qvkm9ag"; depends=[flowClust flowCore flowViz]; };
+  flowVS = derive2 { name="flowVS"; version="1.36.0"; sha256="1k7rhy3lqc52r4hg68r4rw0l31v37bsp2f8k8palia4bqzmqy375"; depends=[flowCore flowStats flowViz]; };
+  flowViz = derive2 { name="flowViz"; version="1.68.0"; sha256="1iz4skfs68jg2a59kfaxllf19mp9pk9mpfc2jh3vyas14c3l3zzj"; depends=[Biobase flowCore hexbin IDPmisc KernSmooth lattice latticeExtra MASS RColorBrewer]; };
+  flowWorkspace = derive2 { name="flowWorkspace"; version="4.16.0"; sha256="0k22hifg4sv0xiw983gf1d6y7zkn9072famwj72x47w8vag4i0xz"; depends=[BH Biobase BiocGenerics cpp11 cytolib data_table DelayedArray dplyr flowCore ggplot2 graph matrixStats ncdfFlow RBGL Rgraphviz Rhdf5lib RProtoBufLib S4Vectors scales XML]; };
+  flowcatchR = derive2 { name="flowcatchR"; version="1.38.0"; sha256="0g9jza9gs526ch5sa9m91yrmf6n8l73052n41r2zvdwamzh9a6r9"; depends=[abind BiocParallel colorRamps EBImage plotly shiny]; };
+  fmcsR = derive2 { name="fmcsR"; version="1.46.0"; sha256="080src34jwkvbk98pa4ri530l9gi4ibr5mwxib1681np0cfal54g"; depends=[BiocGenerics ChemmineR RUnit]; };
+  fmrs = derive2 { name="fmrs"; version="1.14.0"; sha256="0vwj90snn2mjai762426c62m5rmmkywpvnjjgv9cns4azzbjqq4y"; depends=[survival]; };
+  fobitools = derive2 { name="fobitools"; version="1.12.0"; sha256="0n9zckl2zx7hcqz94xa32frra7v11y4gss1wdcdicj2sm40k9hgq"; depends=[clisymbols crayon dplyr fgsea ggplot2 ggraph magrittr ontologyIndex purrr RecordLinkage stringr textclean tictoc tidygraph tidyr vroom]; };
+  frenchFISH = derive2 { name="frenchFISH"; version="1.16.0"; sha256="0lchnhchabj69ccw9pi1nz6l4k39kwin7cdyg9j5zq54i5lwzgg3"; depends=[MCMCpack NHPoisson]; };
+  frma = derive2 { name="frma"; version="1.56.0"; sha256="0gg6hybrysqsd04dv3z7p1wx7zb35zk10f76c3yfhxg1wzv0f4wr"; depends=[affy Biobase BiocGenerics DBI MASS oligo oligoClasses preprocessCore]; };
+  frmaTools = derive2 { name="frmaTools"; version="1.56.0"; sha256="0ksnk253vvxrfql6wgbzmm64173fqv2lcls83iv4lgihix978x5x"; depends=[affy Biobase DBI preprocessCore]; };
+  funtooNorm = derive2 { name="funtooNorm"; version="1.28.0"; sha256="1immis03wkcgzfpb4jbb9zz58707g06mbrq15ls04fmf6mkjj8im"; depends=[GenomeInfoDb IlluminaHumanMethylation450kanno_ilmn12_hg19 IlluminaHumanMethylation450kmanifest matrixStats minfi pls]; };
+  gCrisprTools = derive2 { name="gCrisprTools"; version="2.10.0"; sha256="1h7qx8j46sqhkrdln7mbw38w7p3n6c8sw1311kk2pady0bw14hqh"; depends=[Biobase ComplexHeatmap ggplot2 limma rmarkdown RobustRankAggreg SummarizedExperiment]; };
+  gDNAx = derive2 { name="gDNAx"; version="1.2.0"; sha256="12pyiwhwlxskq17vwmdwh5g3zlzbd15mbrxjv1pliblbzjvxfpzx"; depends=[AnnotationDbi AnnotationHub BiocGenerics BiocParallel Biostrings bitops cli GenomeInfoDb GenomicAlignments GenomicFeatures GenomicFiles GenomicRanges IRanges matrixStats plotrix RColorBrewer Rsamtools S4Vectors SummarizedExperiment]; };
+  gDR = derive2 { name="gDR"; version="1.2.0"; sha256="0jhsnaabp8amljw8g64ly15nc10rjfsk5vd1pxpqq1fzyh72s1xa"; depends=[gDRcore gDRimport gDRutils]; };
+  gDRcore = derive2 { name="gDRcore"; version="1.2.0"; sha256="14hnmym7pzgfm4gmvq0dc0bym3kpr769fcdpspvqyzgq3b5swbva"; depends=[BiocParallel BumpyMatrix checkmate data_table futile_logger gDRutils MultiAssayExperiment purrr S4Vectors stringr SummarizedExperiment]; };
+  gDRimport = derive2 { name="gDRimport"; version="1.2.0"; sha256="1jfp3vgy2r0kmakn063bp1nrnwjfx2xxz0drkry5ghdmjig0g25y"; depends=[assertthat BumpyMatrix checkmate CoreGx data_table futile_logger gDRutils magrittr MultiAssayExperiment openxlsx PharmacoGx readxl rio S4Vectors stringi SummarizedExperiment tibble XML yaml]; };
+  gDRstyle = derive2 { name="gDRstyle"; version="1.2.0"; sha256="0khl0h07ixcsdn984f60d7fshhbs755c6bcxqwk3rzl54xb9cmj8"; depends=[BiocCheck BiocManager checkmate desc git2r lintr pkgbuild rcmdcheck remotes rjson withr yaml]; };
+  gDRutils = derive2 { name="gDRutils"; version="1.2.0"; sha256="0ql75k7aysf5kphjkajp2sshg953vx3nskg6qzhd8cc4lvldx9kq"; depends=[BiocParallel BumpyMatrix checkmate data_table drc jsonlite jsonvalidate MultiAssayExperiment S4Vectors stringr SummarizedExperiment]; };
+  gINTomics = derive2 { name="gINTomics"; version="1.0.0"; sha256="0dscrxy846v5nv1fc0wfd5v7axwdhwpxhh0y9dwq25sdyfzknl8g"; depends=[AnnotationDbi BiocGenerics BiocParallel biomaRt callr circlize clusterProfiler ComplexHeatmap dplyr DT edgeR GenomicFeatures GenomicRanges ggplot2 ggridges ggtree ggvenn gtools InteractiveComplexHeatmap limma MASS MultiAssayExperiment OmnipathR org_Hs_eg_db org_Mm_eg_db plotly plyr randomForest RColorBrewer ReactomePA reshape2 shiny shiny_gosling shinydashboard stringi stringr SummarizedExperiment TxDb_Hsapiens_UCSC_hg38_knownGene TxDb_Mmusculus_UCSC_mm10_knownGene visNetwork]; };
+  gaga = derive2 { name="gaga"; version="2.50.0"; sha256="10qckg06yf44x1giisglw978l63c4p9bdlrfh8q0i7cb19zihbnf"; depends=[Biobase coda EBarrays mgcv]; };
+  gage = derive2 { name="gage"; version="2.54.0"; sha256="0iwdv9y5x0na38arjqacz00s7plk7aqc1h2ynhlpbyl3nz0a0kyq"; depends=[AnnotationDbi GO_db graph KEGGREST]; };
+  garfield = derive2 { name="garfield"; version="1.32.0"; sha256="0lcfqsv4ffsgnpsxdij5graaryvxqkyvsx7n6bkglclg1syr32dw"; depends=[]; };
+  gatom = derive2 { name="gatom"; version="1.2.0"; sha256="1cmhlhr2gkfgpgncr9dy3qq0q764vhr5c7zgpbnnvp5qg95y6n6g"; depends=[BioNet data_table GGally ggplot2 htmltools htmlwidgets igraph intergraph network plyr pryr shinyCyJS sna XML]; };
+  gcapc = derive2 { name="gcapc"; version="1.28.0"; sha256="0k6k73i1mv6pxkpy2mq3xr0rfpn8rqa5wj1hjx3r3dqpw4rv8izl"; depends=[BiocGenerics Biostrings BSgenome GenomeInfoDb GenomicAlignments GenomicRanges IRanges MASS matrixStats Rsamtools S4Vectors]; };
+  gcatest = derive2 { name="gcatest"; version="2.4.0"; sha256="1jdbiv0mh0kfxn05k349h192b32rzs65l7xjkiw1rpzca649fldn"; depends=[lfa]; };
+  gcrma = derive2 { name="gcrma"; version="2.76.0"; sha256="01b9b4v19yh42552awl21yyx9vhf9yh9r3l8849x4zwjpnf6anp3"; depends=[affy affyio Biobase BiocManager Biostrings XVector]; };
+  gdsfmt = derive2 { name="gdsfmt"; version="1.40.0"; sha256="1ska6q1800mmsxi6jilpnq4f6cy3vk0nb98gz3ik94lmbv2ram97"; depends=[]; };
+  geNetClassifier = derive2 { name="geNetClassifier"; version="1.44.0"; sha256="0jfczma8sh9dza105v306xr371f8mndndm6kw3ydgqlxd8zk3a6l"; depends=[Biobase e1071 EBarrays minet]; };
+  gemini = derive2 { name="gemini"; version="1.18.0"; sha256="1yfizm9hk7ak1lgf89zn7r768n82dzbiyd6fqrybhl1m4k5a8zh4"; depends=[dplyr ggplot2 magrittr mixtools pbmcapply scales]; };
+  gemma_R = derive2 { name="gemma.R"; version="3.0.6"; sha256="0aprq1ac2npnbs8ic8lq2z1rp67gsff7450sg08gri40mcrn8xz5"; depends=[assertthat Biobase bit64 data_table digest glue httr jsonlite lubridate magrittr memoise rappdirs rlang S4Vectors stringr SummarizedExperiment tibble tidyr]; };
+  genArise = derive2 { name="genArise"; version="1.80.0"; sha256="0r5d1nw2bqvh3yivx73l2ln3y78kqsrvx3xm4sw61m48gszb69x5"; depends=[locfit tkrplot xtable]; };
+  geneAttribution = derive2 { name="geneAttribution"; version="1.30.0"; sha256="0qzp9d1v88qamahl4knnv6adx863jpnhc5w0v9fpqliw04gqnczn"; depends=[BiocGenerics GenomeInfoDb GenomicFeatures GenomicRanges IRanges org_Hs_eg_db rtracklayer]; };
+  geneClassifiers = derive2 { name="geneClassifiers"; version="1.28.0"; sha256="0zsjb7a30jvkskpg2awxxzdq2rnrpy2nrv89qrqq51h5blln4l2r"; depends=[Biobase BiocGenerics]; };
+  geneRecommender = derive2 { name="geneRecommender"; version="1.76.0"; sha256="1vd04lqrqzfzjz2xpm0gd2gg38rvfz7c8ikz5ypr82mcbq3v7gfl"; depends=[Biobase]; };
+  geneRxCluster = derive2 { name="geneRxCluster"; version="1.40.0"; sha256="109ghiv5j33g35d7l71z8s7nc2vb997j5i6vh43nrrygsgc53ywm"; depends=[GenomicRanges IRanges]; };
+  geneXtendeR = derive2 { name="geneXtendeR"; version="1.30.0"; sha256="06rmxlahnf0xiwvyfl6h9727g8cm24zk6p27j5bb4vln4phb81x7"; depends=[AnnotationDbi BiocStyle data_table dplyr GO_db networkD3 org_Rn_eg_db RColorBrewer rtracklayer SnowballC tm wordcloud]; };
+  genefilter = derive2 { name="genefilter"; version="1.86.0"; sha256="0jp7jvgzb1bs0p76j9k8lhgliipjnif6bng7hdn5wi744jb5fmpr"; depends=[annotate AnnotationDbi Biobase MatrixGenerics survival]; };
+  genefu = derive2 { name="genefu"; version="2.36.0"; sha256="032xfs2vp0n0r3sz79fs0v8q28n2sqbnazfwkc3p9dwh4s7nqfwx"; depends=[AIMS amap biomaRt impute limma mclust survcomp]; };
+  geneplast = derive2 { name="geneplast"; version="1.30.0"; sha256="1z76dpa7cmzidw3512ynphrrqcqvbrp1bbl8bzcf3jsjdshy7mm7"; depends=[ape data_table igraph snow]; };
+  geneplotter = derive2 { name="geneplotter"; version="1.82.0"; sha256="19znr3vwp20x84jiwy0im7s6vd8a71yng8w2ji88ffzq0xdkyyjm"; depends=[annotate AnnotationDbi Biobase BiocGenerics lattice RColorBrewer]; };
+  genoCN = derive2 { name="genoCN"; version="1.56.0"; sha256="1nqxp99g3maxjip9mvpkdm2n6v5vmw7dnkni3nfv2azd12cl9ka1"; depends=[]; };
+  genomation = derive2 { name="genomation"; version="1.36.0"; sha256="1bfy46kka77q93s42hsbxpiynfkin5mh7cz3w592smw2dzkh01j4"; depends=[Biostrings BSgenome data_table GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 gridBase impute IRanges matrixStats plotrix plyr Rcpp readr reshape2 Rsamtools rtracklayer S4Vectors seqPattern]; };
+  genomeIntervals = derive2 { name="genomeIntervals"; version="1.60.0"; sha256="1gyp2aa335gljb4igwg8c92m4rwwxwsv49dlj341gqphbx8b1vbr"; depends=[BiocGenerics GenomeInfoDb GenomicRanges intervals IRanges S4Vectors]; };
+  genomes = derive2 { name="genomes"; version="3.34.0"; sha256="1qb4bpyz7z6yqz4xlrx7gq9afdpqdk0ax4aas5pzx1cqxq31yii9"; depends=[curl readr]; };
+  genomicInstability = derive2 { name="genomicInstability"; version="1.10.0"; sha256="08clvnj3pfxr0y8n2bh55x7aqs8pa6kjy5w8si78r5k2ywwxxl5y"; depends=[checkmate mixtools SummarizedExperiment]; };
+  gep2pep = derive2 { name="gep2pep"; version="1.24.0"; sha256="1i8m3k7l5ymx6c0d6hrl6c1yn2fjvvrrpsf08r64ksl750cvab87"; depends=[Biobase digest foreach GSEABase iterators repo rhdf5 XML]; };
+  gespeR = derive2 { name="gespeR"; version="1.36.0"; sha256="1c7pimggz4px7455frmg4fjbajl9pnw1wdi480wf0hcjfakk1i9h"; depends=[Biobase biomaRt cellHTS2 doParallel dplyr foreach ggplot2 glmnet Matrix reshape2]; };
+  getDEE2 = derive2 { name="getDEE2"; version="1.14.0"; sha256="1hkxyic2pjpxj5mbdf2lmkk7jm8ycmcjwychhy62qlvvcg58cd21"; depends=[htm2txt SummarizedExperiment]; };
+  geva = derive2 { name="geva"; version="1.12.0"; sha256="1wbw8dqimfl6g57v9ix0c8hmyy0kkc33pwvi2ifrfsfcmr6gkv1x"; depends=[dbscan fastcluster matrixStats]; };
+  gg4way = derive2 { name="gg4way"; version="1.2.0"; sha256="12hv274gsiym6ph83q3qphnl7bdh1j5af4g2hz8jvqrj1nbm34h8"; depends=[DESeq2 dplyr edgeR ggplot2 ggrepel glue janitor limma magrittr purrr rlang scales stringr tibble tidyr]; };
+  ggbio = derive2 { name="ggbio"; version="1.52.0"; sha256="0g6h1h8azy79pzm0g8967f58gp33nl8866b285ybq6501nj8pb1p"; depends=[AnnotationDbi AnnotationFilter Biobase BiocGenerics Biostrings biovizBase BSgenome ensembldb GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges GGally ggplot2 gridExtra gtable Hmisc IRanges OrganismDbi reshape2 rlang Rsamtools rtracklayer S4Vectors scales SummarizedExperiment VariantAnnotation]; };
+  ggcyto = derive2 { name="ggcyto"; version="1.32.0"; sha256="0z4cfpylj2y3jcljzg15fpjnrhrpzgw49kcprq5sg4cxr96ia2rm"; depends=[data_table flowCore flowWorkspace ggplot2 gridExtra hexbin ncdfFlow plyr RColorBrewer rlang scales]; };
+  ggkegg = derive2 { name="ggkegg"; version="1.2.0"; sha256="177hz7xfkfjzqb7v2c3jf94jqa0ckcmxb5w64jy25lci8bl1klaw"; depends=[AnnotationDbi BiocFileCache data_table dplyr GetoptLong ggplot2 ggraph gtable igraph magick org_Hs_eg_db patchwork shadowtext stringr tibble tidygraph XML]; };
+  ggmanh = derive2 { name="ggmanh"; version="1.8.0"; sha256="0h7idg7s2s51gcd4fjbpad0kaq13xa5jxv34fwrw02285rl7zw7b"; depends=[gdsfmt ggplot2 ggrepel RColorBrewer rlang scales SeqArray]; };
+  ggmsa = derive2 { name="ggmsa"; version="1.10.0"; sha256="0pmy9aakp503aa3d9g96ajms153kphyr0shlnap5axxy6s99s2ak"; depends=[aplot Biostrings dplyr ggalt ggforce ggplot2 ggtree magrittr R4RNA RColorBrewer seqmagick statebins tidyr]; };
+  ggsc = derive2 { name="ggsc"; version="1.2.0"; sha256="1869xwlc4hqyzankrx3m7jara9am86pc8cw5lfdqfvf2ndp6ijdv"; depends=[cli dplyr ggfun ggplot2 RColorBrewer Rcpp RcppArmadillo RcppParallel rlang scales scattermore Seurat SingleCellExperiment SummarizedExperiment tibble tidydr tidyr yulab_utils]; };
+  ggspavis = derive2 { name="ggspavis"; version="1.10.0"; sha256="0acbsbqnkl1xw9i3pgz1bibgzyvv52jzmyvnmggn5ag92ldd459c"; depends=[ggplot2 ggrepel ggside RColorBrewer scales SingleCellExperiment SpatialExperiment SummarizedExperiment]; };
+  ggtree = derive2 { name="ggtree"; version="3.12.0"; sha256="1bm7c46k8qbajjvl8475b7fcd0dvg9s1bir8313qgm466qm6immh"; depends=[ape aplot cli dplyr ggfun ggplot2 magrittr purrr rlang scales tidyr tidytree treeio yulab_utils]; };
+  ggtreeDendro = derive2 { name="ggtreeDendro"; version="1.6.0"; sha256="1p7gxcaadlvh54y5j82yqarwz6jfhlzi6k6p0zmxxi17s70202x6"; depends=[ggplot2 ggtree tidytree]; };
+  ggtreeExtra = derive2 { name="ggtreeExtra"; version="1.14.0"; sha256="1wy229rnp356hi144flm9fvhv414jxmxc967f7pyqwl4abiwlmzm"; depends=[cli ggnewscale ggplot2 ggtree magrittr rlang tidytree]; };
+  ggtreeSpace = derive2 { name="ggtreeSpace"; version="1.0.0"; sha256="0ny22m469mnr70ipwy6brch1g5vklk5i0qkbgbpwrsdvi6vkibsr"; depends=[ape dplyr GGally ggplot2 ggtree interp phytools rlang tibble tidyr tidyselect]; };
+  ginmappeR = derive2 { name="ginmappeR"; version="1.0.0"; sha256="1xq49lsfw7zri66nxn1z8s2w9ylhl3s07lwm7vqq6xjgfwfd8jn2"; depends=[cachem httr KEGGREST memoise rentrez UniProt_ws XML]; };
+  girafe = derive2 { name="girafe"; version="1.56.0"; sha256="17ma5xfqzy19cigim0bqkqvwln3qji2f5x4qwb74i40j2lbqn9qi"; depends=[Biobase BiocGenerics Biostrings genomeIntervals intervals IRanges pwalign Rsamtools S4Vectors ShortRead]; };
+  glmGamPoi = derive2 { name="glmGamPoi"; version="1.16.0"; sha256="1my8v0zx5xsxjf8dj2yw92b8zp725hxhb2vrl5ccgz2w9xkn0dkj"; depends=[beachmat BiocGenerics DelayedArray DelayedMatrixStats HDF5Array MatrixGenerics matrixStats Rcpp RcppArmadillo rlang SingleCellExperiment SummarizedExperiment vctrs]; };
+  glmSparseNet = derive2 { name="glmSparseNet"; version="1.22.0"; sha256="1yyl2i3f5s1l5q17471zwlj9cksbsnkv227qdlsgvzl0i9sh4m2h"; depends=[biomaRt checkmate dplyr forcats futile_logger ggplot2 glmnet glue httr lifecycle Matrix MultiAssayExperiment readr rlang SummarizedExperiment survminer TCGAutils]; };
+  globalSeq = derive2 { name="globalSeq"; version="1.32.0"; sha256="0jqi2jld7s4krvk0i3rzc7m5h4rvja8zbjvdjw0ck425p180m3wb"; depends=[]; };
+  globaltest = derive2 { name="globaltest"; version="5.58.0"; sha256="1cpvs1jcp9ibis06pkbqvhhksy6cis0zynx774d0hqdbb9ljl945"; depends=[annotate AnnotationDbi Biobase survival]; };
+  gmapR = derive2 { name="gmapR"; version="1.46.0"; sha256="0zmn3gj5aamrkx0pa15fd2n2l7i0z8fkr4i2b9i50qgp7b46yv03"; depends=[Biobase BiocGenerics BiocParallel Biostrings BSgenome GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges IRanges Rsamtools rtracklayer S4Vectors VariantAnnotation]; };
+  gmoviz = derive2 { name="gmoviz"; version="1.16.0"; sha256="01znh8vfhqyls6f1y0zl3hnp67j4q6gzf6fjv3dx214ks6h3vk47"; depends=[BiocGenerics Biostrings circlize colorspace ComplexHeatmap GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges gridBase IRanges pracma Rsamtools rtracklayer S4Vectors]; };
+  goProfiles = derive2 { name="goProfiles"; version="1.66.0"; sha256="1yj9002d99rpsqgxj4wibzmykjpl5091g1aymshkgxqcf456pq14"; depends=[AnnotationDbi Biobase CompQuadForm GO_db stringr]; };
+  goSTAG = derive2 { name="goSTAG"; version="1.28.0"; sha256="195vdjaxq8xwyz5ib9csk0a1fw6l9pzkpji78l3pbh9p5clw5592"; depends=[AnnotationDbi biomaRt GO_db memoise]; };
+  goSorensen = derive2 { name="goSorensen"; version="1.6.0"; sha256="1n0i9xmdxnh52lg60klblgi6bzfa910p4ajavir725p84hbqxdjh"; depends=[clusterProfiler GO_db goProfiles org_Hs_eg_db stringr]; };
+  goTools = derive2 { name="goTools"; version="1.78.0"; sha256="17xpmlsy35a72mbk5c3am85ihgdbwzzaspkb2cfnww9gcnsk6is5"; depends=[AnnotationDbi GO_db]; };
+  goseq = derive2 { name="goseq"; version="1.56.0"; sha256="0bc7dcpz0agbc42f8agf05amyhpavz55fdp622if5af5dn1ww6pr"; depends=[AnnotationDbi BiasedUrn BiocGenerics geneLenDataBase GO_db mgcv]; };
+  gpls = derive2 { name="gpls"; version="1.76.0"; sha256="0n2m4himkdzazshiwvxybp5rr1d6jsg60lc5dbsk40grra3w2g4m"; depends=[]; };
+  gpuMagic = derive2 { name="gpuMagic"; version="1.20.0"; sha256="06ga6xkk95kgnzgy95kzysz8nim9v9aq2s6742hhknjndhy59n28"; depends=[BiocGenerics Deriv DescTools digest pryr Rcpp stringr]; };
+  granulator = derive2 { name="granulator"; version="1.12.0"; sha256="0757xhxn3156687nz8dksqqs0ifafrdwz0am532pw3xf5hirdz81"; depends=[cowplot dplyr dtangle e1071 epiR ggplot2 ggplotify limSolve magrittr MASS nnls pheatmap purrr rlang tibble tidyr]; };
+  graper = derive2 { name="graper"; version="1.20.0"; sha256="1hczvcv3kxzbxigbcxmsiwadxbwldipsv7slmsyznrkpwws4liwi"; depends=[BH cowplot ggplot2 Matrix matrixStats Rcpp RcppArmadillo]; };
+  graph = derive2 { name="graph"; version="1.82.0"; sha256="1wa10s9a8p6lajim1lbw4rxyc4fz7y6fpymrh0c0ip85971cd9hv"; depends=[BiocGenerics]; };
+  graphite = derive2 { name="graphite"; version="1.50.0"; sha256="1xymgghgj4r1k9i73zqgava79l0djz945jnl5ad193flv13fpdgs"; depends=[AnnotationDbi graph httr purrr rappdirs rlang]; };
+  groHMM = derive2 { name="groHMM"; version="1.38.0"; sha256="1vmck9ridjjk22477sv8wx0x7n5irrsaf6nsh9lm3krk4i3iv715"; depends=[GenomeInfoDb GenomicAlignments GenomicRanges IRanges MASS rtracklayer S4Vectors]; };
+  gscreend = derive2 { name="gscreend"; version="1.18.0"; sha256="1y41rai3hhp290ga0ddcgs0jyri4aavcbyycs8z887h787sbihrn"; depends=[BiocParallel fGarch nloptr SummarizedExperiment]; };
+  gsean = derive2 { name="gsean"; version="1.24.0"; sha256="14b4fg51j995af4i8lx84908jnlhw1y7j01871iy80s13d8nnz9b"; depends=[fgsea PPInfer]; };
+  gtrellis = derive2 { name="gtrellis"; version="1.36.0"; sha256="1qlsjpjxcw96qhrqjlbbinpry9yagn50jc3dnz459dbfvnywr82q"; depends=[circlize GenomicRanges GetoptLong IRanges]; };
+  gwascat = derive2 { name="gwascat"; version="2.36.0"; sha256="08b70drlasws3h9d8iznaxxp0qf4n1fi943m4yngy1c65h3a30rc"; depends=[AnnotationDbi AnnotationHub BiocFileCache Biostrings GenomeInfoDb GenomicFeatures GenomicRanges IRanges readr S4Vectors snpStats VariantAnnotation]; };
+  gwasurvivr = derive2 { name="gwasurvivr"; version="1.22.0"; sha256="0d9a9lrdpizh0bayq5yhqrssarbk90afn9s3cbkdxjrjgvlcair7"; depends=[GWASTools matrixStats SNPRelate SummarizedExperiment survival VariantAnnotation]; };
+  gypsum = derive2 { name="gypsum"; version="1.0.1"; sha256="1zrmxmlnbiifc2p5mn10y3vpmyzqjimd2hvc3s9c0j0iv6ryxjv0"; depends=[filelock httr2 jsonlite]; };
+  h5vc = derive2 { name="h5vc"; version="2.38.0"; sha256="0nv6x14adjwz7izsfyirnr13k9aa5kh34nqq9p4lawxa76d0bv4p"; depends=[abind BatchJobs BiocParallel Biostrings GenomeInfoDb GenomicRanges ggplot2 gridExtra h5vcData IRanges reshape rhdf5 Rhtslib Rsamtools S4Vectors]; };
+  hapFabia = derive2 { name="hapFabia"; version="1.46.0"; sha256="0vqfljpdlsdnq0ms98ar2niy5yrlmixlwvaq5ynfvsrpr8hj4wwq"; depends=[Biobase fabia]; };
+  hca = derive2 { name="hca"; version="1.12.0"; sha256="143np5y93b3ik5lrjiz7hhwwp89hq8h9ygvprydwcvn6k530111r"; depends=[BiocFileCache digest dplyr DT httr jsonlite miniUI readr shiny tibble tidyr]; };
+  heatmaps = derive2 { name="heatmaps"; version="1.28.0"; sha256="0295lsiicwcdsnm1annyix7na6xipmvany8qpqwi4d87i5z2imhw"; depends=[BiocGenerics Biostrings EBImage GenomeInfoDb GenomicRanges IRanges KernSmooth Matrix plotrix RColorBrewer]; };
+  hermes = derive2 { name="hermes"; version="1.8.0"; sha256="0acnxrbjdmjr73y12m4k62sazixpfp01790byrybg6l76j4y2akm"; depends=[assertthat Biobase BiocGenerics biomaRt checkmate circlize ComplexHeatmap DESeq2 dplyr edgeR EnvStats forcats GenomicRanges ggfortify ggplot2 ggrepel IRanges lifecycle limma magrittr matrixStats MultiAssayExperiment purrr R6 Rdpack rlang S4Vectors SummarizedExperiment tidyr]; };
+  hiAnnotator = derive2 { name="hiAnnotator"; version="1.38.0"; sha256="1mi15zpqbsf1x2bdagnd7mwspz7pdiq8v7s6a44zwxl0sas2qdmi"; depends=[BSgenome dplyr foreach GenomicRanges ggplot2 iterators rtracklayer scales]; };
+  hiReadsProcessor = derive2 { name="hiReadsProcessor"; version="1.40.0"; sha256="11hiz5ymjyjmsr78060602xi07lbjsq7gs4nh0pknjph2mzx9nqi"; depends=[BiocGenerics BiocParallel Biostrings dplyr GenomicAlignments GenomicRanges hiAnnotator pwalign readxl sonicLength]; };
+  hicVennDiagram = derive2 { name="hicVennDiagram"; version="1.2.0"; sha256="02ym5qiz38viddsrxmn3v6q791gwrc36hi505vcaar1fj2kblx2w"; depends=[ComplexUpset eulerr GenomeInfoDb GenomicRanges ggplot2 htmlwidgets InteractionSet IRanges reshape2 rtracklayer S4Vectors svglite]; };
+  hierGWAS = derive2 { name="hierGWAS"; version="1.34.0"; sha256="140s7wvl1yl66yymq4vsiq0zb44nzjkip4x7l720lywmsj62v9zp"; depends=[fastcluster fmsb glmnet]; };
+  hierinf = derive2 { name="hierinf"; version="1.22.0"; sha256="1x5piwk5y2z9nxfwnvcp60sqg9l0vi2q6rxhxr4r439c9vqgfm4w"; depends=[fmsb glmnet]; };
+  hipathia = derive2 { name="hipathia"; version="3.4.0"; sha256="140ihldl1m7b249d184f717w9pycrsrx13gzjhamjvpdrn96hra4"; depends=[AnnotationHub coin DelayedArray dplyr ggplot2 ggpubr igraph limma matrixStats MetBrewer MultiAssayExperiment preprocessCore reshape2 S4Vectors servr SummarizedExperiment tibble visNetwork]; };
+  hmdbQuery = derive2 { name="hmdbQuery"; version="1.24.0"; sha256="16mx6xhpxgajyglayzhgyv15m5mwggc141rkz4694l5923p3xzg8"; depends=[S4Vectors XML]; };
+  hoodscanR = derive2 { name="hoodscanR"; version="1.2.0"; sha256="1dqmj5nisrndkldsa2qhy50a2bckvvyf96hcya6yqcvz6hb3w7d0"; depends=[circlize ComplexHeatmap ggplot2 knitr RANN Rcpp rlang rmarkdown scico SpatialExperiment SummarizedExperiment]; };
+  hopach = derive2 { name="hopach"; version="2.64.0"; sha256="0i0p73arx8fyxq76plvpk61hpmwbmwm62ninkmx1dlbr2jzvzysx"; depends=[Biobase BiocGenerics cluster]; };
+  hpar = derive2 { name="hpar"; version="1.46.0"; sha256="1qqa0p8k3h8pbbgfz9d1k08zml5i5r9iwi2xqqj1hg84n2saqkzp"; depends=[ExperimentHub]; };
+  hummingbird = derive2 { name="hummingbird"; version="1.14.0"; sha256="1l8i7mhagysjxsnl4lhr31hi2v6xi4rxam5dhd24hrz8m867199p"; depends=[GenomicRanges IRanges Rcpp SummarizedExperiment]; };
+  hypeR = derive2 { name="hypeR"; version="2.2.0"; sha256="0qsz1fklbwlzlm6fk1xr27gv7ynvqgpzd3s8657pv79q2f7wkljf"; depends=[BiocStyle dplyr ggforce ggplot2 htmltools httr igraph kableExtra magrittr msigdbr openxlsx purrr R6 reactable reshape2 rlang rmarkdown scales shiny stringr visNetwork]; };
+  hyperdraw = derive2 { name="hyperdraw"; version="1.56.0"; sha256="104xwij9vq5gwq4ml7fnhsp4apcldbgxmhppwklg6zqdfixpmig5"; depends=[graph hypergraph Rgraphviz]; };
+  hypergraph = derive2 { name="hypergraph"; version="1.76.0"; sha256="12g33rw1qy1ij32k87qrw04pak20p8z04mch9lxjy5yrj5k5x812"; depends=[graph]; };
+  iASeq = derive2 { name="iASeq"; version="1.48.0"; sha256="0jaa4y13c6ra5axfw07g9pvmzybmyf3l2f6jya4cg9inqxvircv6"; depends=[]; };
+  iBBiG = derive2 { name="iBBiG"; version="1.48.0"; sha256="1vysyhayxls2vpll48gskw82aizjhyqbf234j1say13kjnnn8fb3"; depends=[ade4 biclust xtable]; };
+  iBMQ = derive2 { name="iBMQ"; version="1.44.0"; sha256="11i8fzf2i84x36xmq3dwndhvqgbrcj48p3ambn643r9pp27vmpdm"; depends=[Biobase ggplot2]; };
+  iCARE = derive2 { name="iCARE"; version="1.32.0"; sha256="0m6cfcpviw1fxcg73zzjv1s8ynx47x2mfdpydsnkwfvc3r536xca"; depends=[gtools Hmisc plotrix]; };
+  iCNV = derive2 { name="iCNV"; version="1.24.0"; sha256="08kqlpzkjd8m87n9yjdw0jmxdv7d90rh8s2rbmpywcs74qcrdq62"; depends=[CODEX data_table dplyr fields ggplot2 rlang tidyr truncnorm]; };
+  iCOBRA = derive2 { name="iCOBRA"; version="1.32.0"; sha256="1m3awsz8h3gbi82an73kbxcsch2gl737zaanckl1vq2ghymqykrp"; depends=[dplyr DT ggplot2 limma markdown reshape2 rlang ROCR scales shiny shinyBS shinydashboard UpSetR]; };
+  iCheck = derive2 { name="iCheck"; version="1.34.0"; sha256="1yz4f8cs8vna8rq3064md37mgidg4nzn2204zzbbpnwsx23mz1mc"; depends=[affy Biobase GeneSelectMMD gplots limma lmtest lumi MASS preprocessCore randomForest rgl scatterplot3d]; };
+  iChip = derive2 { name="iChip"; version="1.58.0"; sha256="13qzd4f3iskf8g0l3d7bi22kp0mp5hpfidjvyxzi5zyx787vpaw2"; depends=[limma]; };
+  iClusterPlus = derive2 { name="iClusterPlus"; version="1.40.0"; sha256="01rf4w2p1qw4hk9shsdaffyz9g91vffcn4qi1dllsrn3m8pyd1gm"; depends=[]; };
+  iGC = derive2 { name="iGC"; version="1.34.0"; sha256="1xn04rv4p5aqvb4f696kfpcpyn4iqvryhgc84a8pk29yfx1hk38p"; depends=[data_table plyr]; };
+  iNETgrate = derive2 { name="iNETgrate"; version="1.2.0"; sha256="1lsj5lwwfr4h1n1nlgnbncrgsy4mzhj5lzygcb691fkvk84ki09p"; depends=[BiocStyle caret GenomicRanges glmnet gplots Homo_sapiens igraph matrixStats minfi Pigengene Rfast SummarizedExperiment survival tidyr tidyselect WGCNA]; };
+  iPAC = derive2 { name="iPAC"; version="1.48.0"; sha256="083lnwvc9b0w0gv21z2pcf4xvplz9alp6whv7ls1h8bgill4vc2a"; depends=[Biostrings gdata multtest pwalign scatterplot3d]; };
+  iPath = derive2 { name="iPath"; version="1.10.0"; sha256="0dh57yif0wcapr54ba9ln45s9s9m52rzfgapz429i40dqbbc518v"; depends=[BiocParallel ggplot2 ggpubr matrixStats mclust Rcpp RcppArmadillo survival survminer]; };
+  iSEE = derive2 { name="iSEE"; version="2.16.0"; sha256="0rkk8n0hwmbqlnmjcdcljbsqqmbgw4x5cyjl5fndvzjs6xls4fal"; depends=[BiocGenerics circlize colourpicker ComplexHeatmap DT ggplot2 ggrepel igraph listviewer mgcv rintrojs S4Vectors shiny shinyAce shinydashboard shinyjs shinyWidgets SingleCellExperiment SummarizedExperiment vipor viridisLite]; };
+  iSEEde = derive2 { name="iSEEde"; version="1.2.0"; sha256="1fm7nav15kh2sn8lcgnywacsnv5z9mirv3vjvkk298141gdvnyiv"; depends=[DESeq2 edgeR iSEE S4Vectors shiny SummarizedExperiment]; };
+  iSEEfier = derive2 { name="iSEEfier"; version="1.0.0"; sha256="0qg64qp2b3c5l11xa1hb8whvshv9xdi27da2j447jxa81r42xgyh"; depends=[BiocBaseUtils ggplot2 igraph iSEE iSEEu rlang SingleCellExperiment SummarizedExperiment visNetwork]; };
+  iSEEhex = derive2 { name="iSEEhex"; version="1.6.0"; sha256="0lwifv4bpb8hp0y5d2fphzclf3c223x015bc7jj92kmpzl0hg41h"; depends=[ggplot2 hexbin iSEE shiny SummarizedExperiment]; };
+  iSEEhub = derive2 { name="iSEEhub"; version="1.6.0"; sha256="0pwplhddy3nyszzbkjrv79kypc50pxr7jckfjdd0qy10v16314id"; depends=[AnnotationHub BiocManager DT ExperimentHub iSEE rintrojs S4Vectors shiny shinydashboard shinyjs SingleCellExperiment SummarizedExperiment]; };
+  iSEEindex = derive2 { name="iSEEindex"; version="1.2.0"; sha256="0v8fww0rbldg6hdqyg9cfrsisahpwmc7q6pk156gz497av8gz250"; depends=[BiocFileCache DT iSEE paws_storage rintrojs shiny shinydashboard shinyjs SingleCellExperiment stringr SummarizedExperiment urltools]; };
+  iSEEpathways = derive2 { name="iSEEpathways"; version="1.2.0"; sha256="168abrcfrrcnaz50lgkfqvap30xq63fjp61v365ar5zsh7qvys41"; depends=[ggplot2 iSEE S4Vectors shiny shinyWidgets SummarizedExperiment]; };
+  iSEEu = derive2 { name="iSEEu"; version="1.16.0"; sha256="10l539zk0xha45h58j5y9sl0fmpr7vxy30n6xa54lbs3fs324jyv"; depends=[colourpicker DT ggplot2 IRanges iSEE iSEEhex S4Vectors shiny shinyAce SingleCellExperiment SummarizedExperiment]; };
+  iSeq = derive2 { name="iSeq"; version="1.56.0"; sha256="1jjp852ajk37m9rp1j1c3jlng450az54dx8ayl0whjcsr2ljw7hn"; depends=[]; };
+  iasva = derive2 { name="iasva"; version="1.22.0"; sha256="14p159ffi41lg56kjc2yafrxd8d0miqnavdnbspaal8l6r4qr10y"; depends=[BiocParallel cluster irlba SummarizedExperiment]; };
+  ibh = derive2 { name="ibh"; version="1.52.0"; sha256="1xwcvj5zaax3z7c8nnlrmg1bj1wjrrpx5fg5zknhfkv96ycvbk5s"; depends=[simpIntLists]; };
+  icetea = derive2 { name="icetea"; version="1.22.0"; sha256="0l204ak1br5xhlmp21v4qxc5fzrpg74ylaac63dvvhpkhphl51iz"; depends=[BiocGenerics BiocParallel Biostrings csaw DESeq2 edgeR GenomicAlignments GenomicFeatures GenomicRanges ggplot2 IRanges limma Rsamtools rtracklayer S4Vectors ShortRead SummarizedExperiment TxDb_Dmelanogaster_UCSC_dm6_ensGene VariantAnnotation]; };
+  ideal = derive2 { name="ideal"; version="1.28.0"; sha256="1fmqawzlg7dzhb6imsq9wjb3i4qr91f6aj4n4akpkrky7djdn3p2"; depends=[AnnotationDbi base64enc BiocParallel DESeq2 dplyr DT GenomicRanges ggplot2 ggrepel GO_db goseq GOstats gplots heatmaply IHW IRanges knitr limma pcaExplorer pheatmap plotly rentrez rintrojs rlang rmarkdown S4Vectors shiny shinyAce shinyBS shinydashboard stringr SummarizedExperiment topGO UpSetR]; };
+  idiogram = derive2 { name="idiogram"; version="1.80.0"; sha256="0hhgxsc4lk2lpi7ih1z72n4ly8kh8pj9j3w79x7nn0jha5krjv48"; depends=[annotate Biobase plotrix]; };
+  idpr = derive2 { name="idpr"; version="1.14.0"; sha256="1g6g1265ncwlz4qz3w2v66jimx68pwmlzn8yw94pm242c2ikyn78"; depends=[Biostrings dplyr ggplot2 jsonlite magrittr plyr rlang]; };
+  idr2d = derive2 { name="idr2d"; version="1.18.0"; sha256="1c1x9nazmapdk820i3k2b4b956zy5ym333y2fjxg9nqfsvq153mn"; depends=[dplyr futile_logger GenomeInfoDb GenomicRanges ggplot2 idr IRanges magrittr reticulate scales stringr]; };
+  igvR = derive2 { name="igvR"; version="1.24.0"; sha256="0rkps3zj1zg8rksyrnp94xvasgrlvwnq4fqgkrhr8wn0jcqkpna1"; depends=[BiocGenerics BrowserViz GenomicAlignments GenomicRanges httpuv httr RColorBrewer rtracklayer VariantAnnotation]; };
+  igvShiny = derive2 { name="igvShiny"; version="1.0.0"; sha256="0nb8cals6nw5l70yrnwq1pcfdc3m0w9ncsrdrd2zsm4ni2lpqjvx"; depends=[BiocGenerics checkmate futile_logger GenomeInfoDbData GenomicRanges htmlwidgets httr jsonlite randomcoloR RCurl shiny]; };
+  illuminaio = derive2 { name="illuminaio"; version="0.46.0"; sha256="0l3n1plz5nvday0a1bm8173mikpfjbzrb1bp8yfvafy7lav4dsyv"; depends=[base64]; };
+  imcRtools = derive2 { name="imcRtools"; version="1.10.0"; sha256="0wp5f0lrxi2f7kvdqqjl6gdhybcipppg3mr25r9zsfbaxf5d0160"; depends=[abind BiocNeighbors BiocParallel concaveman cytomapper data_table distances dplyr DT EBImage ggplot2 ggraph igraph magrittr MatrixGenerics pheatmap readr rlang RTriangle S4Vectors scuttle sf SingleCellExperiment SpatialExperiment stringr SummarizedExperiment tidygraph tidyselect viridis vroom]; };
+  immunoClust = derive2 { name="immunoClust"; version="1.36.0"; sha256="00bshq0plfnh20117q9020gsyr65z1sfvmki8nbcz3ay6hq3rpm3"; depends=[flowCore lattice]; };
+  immunotation = derive2 { name="immunotation"; version="1.12.0"; sha256="0g9yfm8kbcbfmb0xf1sqqv15h4ji0hya7p8j3czr2bc0gvmmka6q"; depends=[curl ggplot2 maps ontologyIndex readr rlang rvest stringr tidyr xml2]; };
+  impute = derive2 { name="impute"; version="1.78.0"; sha256="1g0m9298srkhjnq3mc5rd7krr9y3cy74yvg9k0j7ypc9nmgcqabr"; depends=[]; };
+  infercnv = derive2 { name="infercnv"; version="1.20.0"; sha256="1fi89fqzzb9n2c9jchkkgy3yq2fvisjcdavh9r455vmy0xqsyyyd"; depends=[ape argparse BiocGenerics caTools coda coin digest doParallel dplyr edgeR fastcluster fitdistrplus foreach futile_logger future ggplot2 gplots gridExtra HiddenMarkov igraph Matrix parallelDist phyclust RANN RColorBrewer reshape2 rjags Seurat SingleCellExperiment SummarizedExperiment tidyr]; };
+  infinityFlow = derive2 { name="infinityFlow"; version="1.14.0"; sha256="112pnwg13wq9cw0lyl170pfby2kaaz2nm22gfwclf7hccnd9a46z"; depends=[Biobase flowCore generics gtools matlab pbapply png raster uwot xgboost]; };
+  intansv = derive2 { name="intansv"; version="1.44.0"; sha256="1njvcyk4gdk2bxvs6zbz7dypcbmfismxpv8afxn02i2lz3ykdyzd"; depends=[BiocGenerics GenomicRanges ggbio IRanges plyr]; };
+  interacCircos = derive2 { name="interacCircos"; version="1.14.0"; sha256="084136v9ghzgqgqv3k523416q2wl4qb6ix862fagjgwmkzdmr5s8"; depends=[htmlwidgets plyr RColorBrewer]; };
+  interactiveDisplay = derive2 { name="interactiveDisplay"; version="1.42.0"; sha256="14k1j8bmpbrldx61fbvn20f7l2lc50bj9iy01a5jf0ddcbi27x5g"; depends=[AnnotationDbi BiocGenerics Category ggplot2 gridSVG interactiveDisplayBase plyr RColorBrewer reshape2 shiny XML]; };
+  interactiveDisplayBase = derive2 { name="interactiveDisplayBase"; version="1.42.0"; sha256="0ih9b6n81gr84vhmwcq49knrbmkwbh50gy5hrap654nicb3j3jzb"; depends=[BiocGenerics DT shiny]; };
+  ipdDb = derive2 { name="ipdDb"; version="1.22.0"; sha256="10pk87w4yd6kgsbg79ci6csmk3izpxc8kwhn5f0jywmjdci7k3nq"; depends=[AnnotationDbi AnnotationHub assertthat Biostrings DBI GenomicRanges IRanges RSQLite]; };
+  isobar = derive2 { name="isobar"; version="1.50.0"; sha256="0vqiw5bwk4mivj8b1a96qglqsmsfi4p6vd40x0rxafifb46i83h3"; depends=[Biobase biomaRt distr ggplot2 plyr]; };
+  isomiRs = derive2 { name="isomiRs"; version="1.32.1"; sha256="020ij0byr9pnzxp083yyjscn3iwv7yq7v2zsdalqs4bzn6z7mzq8"; depends=[AnnotationDbi Biobase BiocGenerics broom cluster cowplot DEGreport DESeq2 dplyr GenomicRanges GGally ggplot2 gplots gridExtra gtools IRanges limma RColorBrewer readr reshape rlang S4Vectors stringr SummarizedExperiment tibble tidyr]; };
+  iterativeBMA = derive2 { name="iterativeBMA"; version="1.62.0"; sha256="1h2nz7pfagd4ncm64b7zfqawp3gd88kvz8920wmk5s732490x522"; depends=[Biobase BMA leaps]; };
+  iterativeBMAsurv = derive2 { name="iterativeBMAsurv"; version="1.62.0"; sha256="1g0bg1cbk95pg1zf1xqk5dxii3cwfkwzx5ys1mzzab6b9i740las"; depends=[BMA leaps survival]; };
+  ivygapSE = derive2 { name="ivygapSE"; version="1.26.0"; sha256="00i91a1r3xk7czcv5f7kxppgzjsvalxmzwyqj6mg5m3z4l77m17n"; depends=[ggplot2 hwriter plotly S4Vectors shiny SummarizedExperiment survival survminer UpSetR]; };
+  karyoploteR = derive2 { name="karyoploteR"; version="1.30.0"; sha256="1g4pms5dcr4cdb47gr9kw3mc06v890b38zrsapd4x1cqhgfbgjyg"; depends=[AnnotationDbi bamsignals bezier biovizBase digest GenomeInfoDb GenomicFeatures GenomicRanges IRanges memoise regioneR Rsamtools rtracklayer S4Vectors VariantAnnotation]; };
+  katdetectr = derive2 { name="katdetectr"; version="1.6.0"; sha256="1hc3795f26cz1xml01zac83gmam15pvxd0pl2i9q4mardnkj9w7s"; depends=[Biobase BiocParallel BSgenome BSgenome_Hsapiens_UCSC_hg19 BSgenome_Hsapiens_UCSC_hg38 changepoint changepoint_np checkmate dplyr GenomeInfoDb GenomicRanges ggplot2 ggtext IRanges maftools plyranges Rdpack rlang S4Vectors scales tibble tidyr VariantAnnotation]; };
+  kebabs = derive2 { name="kebabs"; version="1.38.0"; sha256="0v4sgxvyhi3lzr3jw82w00ffdg0w55vi78ia9i805kqy77sq0677"; depends=[apcluster Biostrings e1071 IRanges kernlab LiblineaR Matrix Rcpp S4Vectors XVector]; };
+  keggorthology = derive2 { name="keggorthology"; version="2.56.0"; sha256="14sywfqfwbi3xanc202d07hb9yzahd94xqg9mx9djgin5b4islz3"; depends=[AnnotationDbi DBI graph hgu95av2_db]; };
+  kissDE = derive2 { name="kissDE"; version="1.24.0"; sha256="1700shil37hsij9h4q3zr2cq3wav9bpbm74d7spbyv0l1fnl8fx9"; depends=[ade4 aods3 Biobase DESeq2 doParallel DSS DT factoextra foreach ggplot2 gplots matrixStats shiny shinycssloaders]; };
+  knowYourCG = derive2 { name="knowYourCG"; version="1.0.0"; sha256="1nxg81p67d66bzy2fw6dsj02zh33pas02rai1prpsyjs7699bcqf"; depends=[dplyr GenomicRanges IRanges reshape2 rlang S4Vectors sesameData stringr]; };
+  lapmix = derive2 { name="lapmix"; version="1.70.0"; sha256="1s2f28v21yjxi8rx08cdhd8g76wxm9wq48lq0c6kd7w4iklwwxd1"; depends=[Biobase]; };
+  ldblock = derive2 { name="ldblock"; version="1.34.0"; sha256="1l4l35bpz4j1iliy9dj09qq8r4nimd9pcm0gm4g3sb4325z6cd5h"; depends=[BiocGenerics httr Matrix rlang]; };
+  lefser = derive2 { name="lefser"; version="1.14.0"; sha256="1qi4q3vijys4q1gfnflvvz8ws3j6f65rpprpgmrkqgiwfn7dvi6g"; depends=[coin dplyr ggplot2 MASS S4Vectors SummarizedExperiment]; };
+  lemur = derive2 { name="lemur"; version="1.2.0"; sha256="1hwnf8x9prqv96j66i5756510jviibbrchyizalhrlg8f427i5my"; depends=[BiocGenerics BiocNeighbors DelayedMatrixStats glmGamPoi harmony HDF5Array irlba limma Matrix MatrixGenerics matrixStats Rcpp RcppArmadillo rlang S4Vectors SingleCellExperiment SummarizedExperiment vctrs]; };
+  les = derive2 { name="les"; version="1.54.0"; sha256="1dsdrdv06ab7rxpvmbgq1b6dhajjaw7zgvi9nshadm5gg28i60x3"; depends=[boot fdrtool gplots RColorBrewer]; };
+  levi = derive2 { name="levi"; version="1.22.0"; sha256="0rknsfa5fbr4smxzj4p589sxxbypb2s1wvn33p9qj69mfcx7rmi3"; depends=[colorspace dplyr DT ggplot2 httr igraph knitr RColorBrewer Rcpp reshape2 rmarkdown shiny shinydashboard shinyjs testthat xml2]; };
+  lfa = derive2 { name="lfa"; version="2.4.0"; sha256="1sbgr6h2kpfpzw3fkqd1075wrmbblb97pdywmvl8xv52vg0wqxz3"; depends=[corpcor RSpectra]; };
+  limma = derive2 { name="limma"; version="3.60.2"; sha256="154fsg8vnks38f9phlbf15cpsf84p2gwygqgq4ayddfpxczzl159"; depends=[statmod]; };
+  limmaGUI = derive2 { name="limmaGUI"; version="1.80.0"; sha256="12ryq8l3jkxi5znzhb9bqp53sba7rk2fszsxp1dkwmyrdl12l4ns"; depends=[limma R2HTML tkrplot xtable]; };
+  limpca = derive2 { name="limpca"; version="1.0.0"; sha256="1id38g2s7g0shcqz37i03zhhypilny8z2dwf74anj8yj4d1isdfr"; depends=[doParallel dplyr ggplot2 ggrepel ggsci plyr reshape2 S4Vectors stringr SummarizedExperiment tibble tidyr tidyverse]; };
+  lineagespot = derive2 { name="lineagespot"; version="1.8.0"; sha256="0rjf4liq6lr6i3b2a0cn22qc1xisscsvn7zi11vq8wq0ym15pj6c"; depends=[data_table httr MatrixGenerics stringr SummarizedExperiment VariantAnnotation]; };
+  lionessR = derive2 { name="lionessR"; version="1.18.0"; sha256="1rv9daa45if6nm3yh1sbpnywmdpdi0kmga25pwzfjwv26f9kyd6q"; depends=[S4Vectors SummarizedExperiment]; };
+  lipidr = derive2 { name="lipidr"; version="2.18.0"; sha256="037xy9ci3h0913df5iy5xnciz26zr9frqfpk8krbx7qfzk4d0rk2"; depends=[data_table dplyr fgsea forcats ggplot2 imputeLCMD limma magrittr rlang ropls S4Vectors SummarizedExperiment tidyr]; };
+  lisaClust = derive2 { name="lisaClust"; version="1.12.1"; sha256="1yagv5c398kk95c8gyny7ldhh7mpf1yrqp65ijk0xgx5xpl3kcfd"; depends=[BiocGenerics BiocParallel class concaveman data_table dplyr ggplot2 pheatmap purrr S4Vectors SingleCellExperiment SpatialExperiment spatstat_explore spatstat_geom spatstat_random spicyR SummarizedExperiment tidyr]; };
+  lmdme = derive2 { name="lmdme"; version="1.46.0"; sha256="19rplb4ik9jpxqghmglqhv42plbgz01i4pdw7pr063cdc2n3n18g"; depends=[limma pls stemHypoxia]; };
+  loci2path = derive2 { name="loci2path"; version="1.24.0"; sha256="0igamscdyblh7ymj62qimwr48qfvpqld4ami0m3bnlzkkds6xm2n"; depends=[BiocParallel data_table GenomicRanges pheatmap RColorBrewer S4Vectors wordcloud]; };
+  logicFS = derive2 { name="logicFS"; version="2.24.0"; sha256="1dbc8zwgixjjcdhy3fgln08c0kycrzbcd46vqjb4l479pdrj2r0l"; depends=[LogicReg mcbiopi survival]; };
+  lpNet = derive2 { name="lpNet"; version="2.36.0"; sha256="14b7d942k15bjadakfvac8s9zhdhqw59pvpmal527rwm5z6avfvl"; depends=[KEGGgraph lpSolve]; };
+  lpsymphony = derive2 { name="lpsymphony"; version="1.32.0"; sha256="1wcjmw655k389ph61v3gxjv7gk2q70h25zmdzvd4ggbxg8vh2mp1"; depends=[]; };
+  lumi = derive2 { name="lumi"; version="2.56.0"; sha256="04r7dw00yvjrxs0h6mwh79lwp55f5v8s4pgmzcy2fnpb2cdslpzy"; depends=[affy annotate AnnotationDbi Biobase DBI GenomicFeatures GenomicRanges KernSmooth lattice MASS methylumi mgcv nleqslv preprocessCore RSQLite]; };
+  lute = derive2 { name="lute"; version="1.0.0"; sha256="02hqwxmqld3fkvs7c7l8hz39wksxgbcnckgvkzgpaknsb2fdmml0"; depends=[Biobase BiocGenerics dplyr ggplot2 S4Vectors scran SingleCellExperiment SummarizedExperiment]; };
+  m6Aboost = derive2 { name="m6Aboost"; version="1.10.0"; sha256="141jrx1ngwb70pl769ablzvxcd4f4dfgzi0jdsmqgmhb3kb3qvg2"; depends=[adabag Biostrings BSgenome dplyr ExperimentHub GenomicRanges IRanges rtracklayer S4Vectors]; };
+  mBPCR = derive2 { name="mBPCR"; version="1.58.0"; sha256="182qbhzpj5h0qcyiph0k38bvlspc8i7g3bg27vkak5p8685hwrk8"; depends=[Biobase GWASTools oligoClasses]; };
+  mCSEA = derive2 { name="mCSEA"; version="1.24.0"; sha256="11mx1250kvdmkriznzp0a05jvf9paizj7qsgq7wzlvgz9f6nfwyw"; depends=[biomaRt fgsea GenomicFeatures GenomicRanges ggplot2 Gviz Homo_sapiens IRanges limma mCSEAdata S4Vectors SummarizedExperiment]; };
+  maCorrPlot = derive2 { name="maCorrPlot"; version="1.74.0"; sha256="0z4ilr1r9231f3h2zq6ac2spd3dcaa4j48hkih7nrqrgr9x1127d"; depends=[lattice]; };
+  maPredictDSC = derive2 { name="maPredictDSC"; version="1.42.0"; sha256="015zp1ijl4sjqvrnaf0fzwzynvwjgphxba4q29m821hyvq1rjmx4"; depends=[affy AnnotationDbi caret class e1071 gcrma hgu133plus2_db limma LungCancerACvsSCCGEO MASS ROC ROCR]; };
+  maSigPro = derive2 { name="maSigPro"; version="1.76.0"; sha256="1kb5xjg84jbri3ds5kvr30nypg2picz483nwwjamk8px6d3anmry"; depends=[Biobase MASS mclust venn]; };
+  made4 = derive2 { name="made4"; version="1.78.0"; sha256="0x96lhkz0fwp3qis8k2lllmi520b887bz26jcq3zlk1kjhbg91a8"; depends=[ade4 Biobase gplots RColorBrewer scatterplot3d SummarizedExperiment]; };
+  maftools = derive2 { name="maftools"; version="2.20.0"; sha256="0c2sf8l1wfgz3nh9ccm10y9wwh7rv55r09awavqlrr9glcbblp32"; depends=[data_table DNAcopy RColorBrewer Rhtslib survival zlibbioc]; };
+  magpie = derive2 { name="magpie"; version="1.4.0"; sha256="1m5xnbcyhglkg843fhfvynlinag8vv8sxg1ghzpwi0q9ki65kq9d"; depends=[AnnotationDbi aod BiocParallel DESeq2 GenomicFeatures GenomicRanges IRanges Matrix matrixStats openxlsx RColorBrewer reshape2 Rsamtools rtracklayer S4Vectors TRESS]; };
+  magrene = derive2 { name="magrene"; version="1.6.0"; sha256="1nqklrz4l2g062ipff6znzl9lm4ws69qplrdb0r5fsfahpb8s25z"; depends=[BiocParallel]; };
+  makecdfenv = derive2 { name="makecdfenv"; version="1.80.0"; sha256="0c1ks5f2rc0mwbfji6iicvypbmm46mq8yckmdpwiyp22l7l05aqz"; depends=[affy affyio Biobase zlibbioc]; };
+  mapscape = derive2 { name="mapscape"; version="1.28.0"; sha256="1xg3nm9r115fzykq8m31xcr7anaqyqm91qnsmib89zvf0hfgrlac"; depends=[base64enc htmlwidgets jsonlite stringr]; };
+  mariner = derive2 { name="mariner"; version="1.4.0"; sha256="1ndinmzzzpy154jmndnqf5xj3wz35jjijszg88ga4j19w2cxmnfp"; depends=[abind assertthat BiocGenerics BiocManager BiocParallel colourvalues data_table dbscan DelayedArray GenomeInfoDb GenomicRanges glue HDF5Array InteractionSet IRanges magrittr plotgardener plyranges progress purrr RColorBrewer rhdf5 rlang S4Vectors strawr SummarizedExperiment]; };
+  marr = derive2 { name="marr"; version="1.14.0"; sha256="1670fr6fcclrhgz6aqg0ph9iln0vjq3zgyp215na07ngwrzjw5nb"; depends=[dplyr ggplot2 magrittr Rcpp rlang S4Vectors SummarizedExperiment]; };
+  marray = derive2 { name="marray"; version="1.82.0"; sha256="1h96aq92bad69ycrmrvxwdz8dg9rk44925gj83gxzqypw88j2x0y"; depends=[limma]; };
+  martini = derive2 { name="martini"; version="1.24.0"; sha256="07d1cyj2ms8mnglqzqs45gz32pdsqkfac00a118fahs1rw8j408f"; depends=[igraph Matrix memoise Rcpp RcppEigen snpStats]; };
+  maser = derive2 { name="maser"; version="1.22.0"; sha256="0w62dl65ysgcwixgmmb70qp6f85vhfnqjsww5snkjd48ypwx65ca"; depends=[BiocGenerics data_table dplyr DT GenomeInfoDb GenomicRanges ggplot2 Gviz IRanges reshape2 rtracklayer]; };
+  maskBAD = derive2 { name="maskBAD"; version="1.48.0"; sha256="198637aq9pjwx2p22iyy1nzy76pys2cmvfpdrghslh10l1b5pdjl"; depends=[affy gcrma]; };
+  massiR = derive2 { name="massiR"; version="1.40.0"; sha256="169gpddm1q3brj49sm3sp4ifyby37i41ydxjizwpa9aml90zc0y8"; depends=[Biobase cluster diptest gplots]; };
+  mastR = derive2 { name="mastR"; version="1.4.0"; sha256="1717hyil3x4c6jqv4zv6fwppwq1lc74kd8hg8z8yj8qqp92093f8"; depends=[AnnotationDbi Biobase dplyr edgeR ggplot2 ggpubr GSEABase limma Matrix msigdb org_Hs_eg_db patchwork SeuratObject SingleCellExperiment SummarizedExperiment tidyr]; };
+  matchBox = derive2 { name="matchBox"; version="1.46.0"; sha256="015gdqbwdl02mwr7hcymdkz8pvbxjh4qv4agswh3d8qd3mmj04y6"; depends=[]; };
+  matter = derive2 { name="matter"; version="2.6.2"; sha256="06ql73amrl5zy3ldm4ni3vwv65j1v9fy5s7a2pvwi31w4nwdly6h"; depends=[biglm BiocGenerics BiocParallel digest irlba Matrix ProtGenerics]; };
+  mbQTL = derive2 { name="mbQTL"; version="1.4.0"; sha256="04ml4rv1hngr8lm9z9pcg7szb1cmla1m1vypwjk9bkkfy879ribf"; depends=[broom dplyr ggplot2 MatrixEQTL metagenomeSeq pheatmap readxl stringr tidyr]; };
+  mbkmeans = derive2 { name="mbkmeans"; version="1.20.0"; sha256="0fnf6ymbcfchhlcbwpwlcq1jc3lfzh9f8mf76xfy7vrpwngds1fs"; depends=[beachmat benchmarkme BiocParallel ClusterR DelayedArray Matrix Rcpp RcppArmadillo Rhdf5lib S4Vectors SingleCellExperiment SummarizedExperiment]; };
+  mdp = derive2 { name="mdp"; version="1.24.0"; sha256="08x2ghj5a91rdqq48xjsq4m22qk2ys92jhb6flaqzqgm1s6806lw"; depends=[ggplot2 gridExtra]; };
+  mdqc = derive2 { name="mdqc"; version="1.66.0"; sha256="1frn6s43j6sbwnb5h2hykccvi7cwbasp8l37rc3nkxpc6szvsby6"; depends=[cluster MASS]; };
+  megadepth = derive2 { name="megadepth"; version="1.14.0"; sha256="0394x1x81hgibvqb1dbrm8h3y72xfv9xi9fgqghjgnrw6farrkdk"; depends=[cmdfun dplyr fs GenomicRanges magrittr readr xfun]; };
+  memes = derive2 { name="memes"; version="1.12.0"; sha256="03hrhydlgk57z9hzmwdgihlhsjyhhzw5vb5ql07ks169z15nix4h"; depends=[Biostrings cmdfun dplyr GenomicRanges ggplot2 ggseqlogo magrittr matrixStats patchwork processx purrr readr rlang tibble tidyr universalmotif usethis xml2]; };
+  meshes = derive2 { name="meshes"; version="1.30.0"; sha256="0yc1drx7rbaxasj9p05hn4wa1nz0frymv7i9aw55ma59jjik8gi6"; depends=[AnnotationDbi AnnotationHub DOSE enrichplot GOSemSim MeSHDbi yulab_utils]; };
+  meshr = derive2 { name="meshr"; version="2.10.0"; sha256="1cbxlypw937bafmzlz8v0g1bf16pmlqdc1jkisj8zmaj9xabbik9"; depends=[BiocGenerics BiocStyle Category fdrtool knitr markdown MeSHDbi rmarkdown RSQLite S4Vectors]; };
+  messina = derive2 { name="messina"; version="1.40.0"; sha256="0xcc5y4zqz0hn7bm0lgyb8dlnhhq5nz1pghq53lvdmgr5zcp8yqz"; depends=[foreach ggplot2 plyr Rcpp survival]; };
+  metaCCA = derive2 { name="metaCCA"; version="1.32.0"; sha256="1m35p9r3v2qzk3y1046p1n1j84rw6a1hsfsij58p4byi34hrfc1a"; depends=[]; };
+  metaMS = derive2 { name="metaMS"; version="1.40.0"; sha256="0fj111vs9s1j754jhqzna89jnibiff6pahbn1vibh7gsx310ri0s"; depends=[BiocGenerics CAMERA Matrix robustbase xcms]; };
+  metaSeq = derive2 { name="metaSeq"; version="1.44.0"; sha256="0n5s8kssvawcdi7sqhgpbrdwi39j22clgprcj9psd8i6g2n7iwc8"; depends=[NOISeq Rcpp snow]; };
+  metabCombiner = derive2 { name="metabCombiner"; version="1.14.0"; sha256="0jp39qz7z3v7ndnxhc4lsjwf1mfhjq5nsg926s1x1i7w5x203fzd"; depends=[caret dplyr matrixStats mgcv rlang S4Vectors tidyr]; };
+  metabinR = derive2 { name="metabinR"; version="1.6.0"; sha256="158lwd9l5yszlh28zsfn2ddmq6p8hlknvzy8k1spxmqdddqhp9zy"; depends=[rJava]; };
+  metabolomicsWorkbenchR = derive2 { name="metabolomicsWorkbenchR"; version="1.14.0"; sha256="0rsrla3gyh0fpx49kg0p5c02nskcl5rv7xmdnbgxk5d1kbzdsrcr"; depends=[data_table httr jsonlite MultiAssayExperiment struct SummarizedExperiment]; };
+  metabomxtr = derive2 { name="metabomxtr"; version="1.38.0"; sha256="1jfhz28q4bxib3k2wvdcqsrqj699bxy0lzqqi7m0xivrjp27jw9h"; depends=[Biobase BiocParallel Formula ggplot2 multtest optimx plyr]; };
+  metagene2 = derive2 { name="metagene2"; version="1.20.0"; sha256="1j5jl0xczj2g03k0lwq9h5snv4kpwqga836dkshnmf789gn2pzy3"; depends=[BiocParallel data_table dplyr GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 IRanges magrittr purrr R6 reshape2 Rsamtools rtracklayer]; };
+  metagenomeSeq = derive2 { name="metagenomeSeq"; version="1.46.0"; sha256="0bjbiwbgs0lv0j6gjv5rhqhmqk0p7f80lfig4n24i4bqwkd2j26k"; depends=[Biobase foreach glmnet gplots limma Matrix matrixStats RColorBrewer Wrench]; };
+  metahdep = derive2 { name="metahdep"; version="1.62.0"; sha256="1h888yl95xnr07ybz5hrfpslcc7xh0nggnl57lcw8ikqj8wgcnc2"; depends=[]; };
+  metapod = derive2 { name="metapod"; version="1.12.0"; sha256="100wsg2y7069r7xk5bsk5n4n8dqvpbk297w5ishnijrvxhbs9f8n"; depends=[Rcpp]; };
+  metapone = derive2 { name="metapone"; version="1.10.0"; sha256="0x5lrpf5554h2i521ikxgadpwj4233ib4n5p9qpass7y3z0kpxh7"; depends=[BiocParallel fdrtool fgsea fields ggplot2 ggrepel markdown]; };
+  metaseqR2 = derive2 { name="metaseqR2"; version="1.16.0"; sha256="1rkaacb0jkfzhdd7q7v38by7wwmk4m4kfa01ky8yn2fady0sx3hm"; depends=[ABSSeq Biobase BiocGenerics BiocParallel biomaRt Biostrings corrplot DESeq2 DSS DT EDASeq edgeR genefilter GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges gplots harmonicmeanp heatmaply htmltools httr IRanges jsonlite lattice limma locfit log4r magrittr MASS Matrix NBPSeq pander qvalue rmarkdown rmdformats Rsamtools RSQLite rtracklayer S4Vectors stringr SummarizedExperiment survcomp txdbmaker VennDiagram vsn yaml zoo]; };
+  methInheritSim = derive2 { name="methInheritSim"; version="1.26.0"; sha256="0c94sbqa0aiskrl8rxyiyj38a5n4vw1l2b51c2v0ryvjqk0zg93n"; depends=[BiocGenerics GenomeInfoDb GenomicRanges IRanges methylKit msm S4Vectors]; };
+  methimpute = derive2 { name="methimpute"; version="1.26.0"; sha256="1k9nasdfvrynvk2jsvxpbbp9zdqh516c41m654yfsdi5cl2y3jyd"; depends=[Biostrings data_table GenomeInfoDb GenomicRanges ggplot2 IRanges minpack_lm Rcpp reshape2]; };
+  methodical = derive2 { name="methodical"; version="1.0.0"; sha256="13m75hf5dq36l20idp9alcikhhqa2qy5jwfnpkv2yp1ra6c9pq7j"; depends=[BiocParallel Biostrings BSgenome cowplot data_table DelayedArray dplyr ExperimentHub foreach GenomeInfoDb GenomicRanges ggplot2 HDF5Array IRanges R_utils RcppRoll rhdf5 rtracklayer S4Vectors scales SummarizedExperiment tibble tidyr]; };
+  methrix = derive2 { name="methrix"; version="1.18.0"; sha256="0976y3aswyv7dk60ix9vvcvd6dgc0sy8qnakq3pdrl505znxsshi"; depends=[BSgenome data_table DelayedArray DelayedMatrixStats GenomicRanges ggplot2 HDF5Array IRanges matrixStats rtracklayer S4Vectors SummarizedExperiment]; };
+  methyLImp2 = derive2 { name="methyLImp2"; version="1.0.0"; sha256="1f86951l7gjqj48hxdm6ppc7bp84dm9fnlh0xhhl12fbdp2id94m"; depends=[BiocParallel ChAMPdata corpcor SummarizedExperiment]; };
+  methylCC = derive2 { name="methylCC"; version="1.18.0"; sha256="16i4yjx36pdbxf9vqnnr568lqcnql1pw3f5f1hlnq66kaai9hx34"; depends=[Biobase bsseq bumphunter dplyr FlowSorted_Blood_450k genefilter GenomicRanges IlluminaHumanMethylation450kanno_ilmn12_hg19 IlluminaHumanMethylation450kmanifest IRanges magrittr minfi plyranges quadprog S4Vectors]; };
+  methylGSA = derive2 { name="methylGSA"; version="1.22.0"; sha256="0myii2c782my1lmqziaxdlrsfxgh194n58m1ydaqbxnhgkwvh10s"; depends=[AnnotationDbi BiocParallel clusterProfiler ggplot2 GO_db IlluminaHumanMethylation450kanno_ilmn12_hg19 IlluminaHumanMethylationEPICanno_ilm10b4_hg19 missMethyl org_Hs_eg_db reactome_db RobustRankAggreg shiny stringr]; };
+  methylInheritance = derive2 { name="methylInheritance"; version="1.28.0"; sha256="1pqd9ydgm071pa5lld1mn39yymkaghzx931ghlkshhh9dsrjqhg4"; depends=[BiocParallel GenomicRanges ggplot2 gridExtra IRanges methylKit rebus S4Vectors]; };
+  methylKit = derive2 { name="methylKit"; version="1.30.0"; sha256="000dvi63cjikjbq3q83hlspd7y62rpswzg6hs5z1z1pj6a8rifdj"; depends=[data_table emdbook fastseg GenomeInfoDb GenomicRanges gtools IRanges KernSmooth limma mclust mgcv qvalue R_utils Rcpp Rhtslib Rsamtools rtracklayer S4Vectors zlibbioc]; };
+  methylMnM = derive2 { name="methylMnM"; version="1.42.0"; sha256="0f1mc3v1zr55irlqfxkp7s7cv2c1crwr60hj4ff1ld14ds91q9pr"; depends=[edgeR statmod]; };
+  methylPipe = derive2 { name="methylPipe"; version="1.38.0"; sha256="1v2qp5rp19d80aai8i5y32b62kynkkdkp3hqfvsk82ckwxvk2k60"; depends=[BiocGenerics Biostrings data_table GenomeInfoDb GenomicAlignments GenomicRanges gplots Gviz IRanges marray Rsamtools S4Vectors SummarizedExperiment]; };
+  methylSig = derive2 { name="methylSig"; version="1.16.0"; sha256="03ghyx1xj2d06fj5kckrw810x92s8ndsq3wpj1kcjkf1v22vr0ln"; depends=[bsseq DelayedArray DelayedMatrixStats DSS GenomeInfoDb GenomicRanges IRanges S4Vectors]; };
+  methylclock = derive2 { name="methylclock"; version="1.10.0"; sha256="193ck7a501804424yqvg2c8zixzj56p3d8468sdisx577hhshhhm"; depends=[Biobase devtools dplyr dynamicTreeCut ExperimentHub ggplot2 ggpmisc ggpubr gridExtra impute methylclockData minfi PerformanceAnalytics planet preprocessCore quadprog Rcpp RPMM tibble tidyr tidyverse]; };
+  methylscaper = derive2 { name="methylscaper"; version="1.12.0"; sha256="19xpagmx9rn840acbm2cj3vkvhjzr1rslsjmjgvgcm4fip1yrskp"; depends=[BiocParallel Biostrings data_table pwalign Rfast seqinr seriation shiny shinyFiles shinyjs SummarizedExperiment]; };
+  methylumi = derive2 { name="methylumi"; version="2.50.0"; sha256="1ms3w43yvy810mr6dml9hqp3kw5jlpr9153kd62gvhjsgikaj3ja"; depends=[annotate AnnotationDbi Biobase BiocGenerics FDb_InfiniumMethylation_hg19 genefilter GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 illuminaio IRanges lattice matrixStats minfi reshape2 S4Vectors scales SummarizedExperiment]; };
+  mfa = derive2 { name="mfa"; version="1.26.0"; sha256="1vqmpxsl9dfq0h9cirip578crfnqxpabbwpzlglcm0qqwymh6ilr"; depends=[Biobase coda dplyr ggmcmc ggplot2 magrittr MCMCglmm MCMCpack Rcpp tibble]; };
+  mgsa = derive2 { name="mgsa"; version="1.52.0"; sha256="00404pglk2f7hq8pfb3i8zigwzal74m0kk39by2rigyigdcq4sq9"; depends=[gplots]; };
+  miQC = derive2 { name="miQC"; version="1.12.0"; sha256="04f7jza631y04mhy23yvipd88rywgpqw5jm9ff54hhfhmscdaczn"; depends=[flexmix ggplot2 SingleCellExperiment]; };
+  miRLAB = derive2 { name="miRLAB"; version="1.34.0"; sha256="1r18s6d94csqqbkjis5dh5q4rbw1qvj61x8wmzw7jgyvrsyd5jqc"; depends=[Category ctc dplyr energy entropy glmnet GOstats gplots Hmisc httr impute InvariantCausalPrediction limma org_Hs_eg_db pcalg RCurl stringr SummarizedExperiment TCGAbiolinks]; };
+  miRNAmeConverter = derive2 { name="miRNAmeConverter"; version="1.32.0"; sha256="0sqar3llyj10kmix9vb870nra5n735m9897qyf0zic9n21gmmbsp"; depends=[AnnotationDbi DBI miRBaseVersions_db reshape2]; };
+  miRNApath = derive2 { name="miRNApath"; version="1.64.0"; sha256="0zhgh9qls59kn6gd977gawvwh0pqdwwasla1gbvbiakhw3i1jw9r"; depends=[]; };
+  miRNAtap = derive2 { name="miRNAtap"; version="1.38.0"; sha256="07sff3h9hidw5xr11fx6n4ngajvsvbz4a1gkavd32wh6j8jccpyx"; depends=[AnnotationDbi DBI plyr RSQLite sqldf stringr]; };
+  miRSM = derive2 { name="miRSM"; version="2.0.0"; sha256="0wxwz00fsv8jf291zlfjim89vhsbqwlc9klq0szzl1p7msrs7vga"; depends=[BiBitR BicARE biclust Biobase clusterProfiler dbscan DOSE dynamicTreeCut energy fabia flashClust GFA GSEABase iBBiG igraph isa2 linkcomm MatrixCorrelation MCL mclust NMF org_Hs_eg_db PMA ppclust Rcpp ReactomePA rqubic s4vd SOMbrero subspace SummarizedExperiment WGCNA]; };
+  miRcomp = derive2 { name="miRcomp"; version="1.34.0"; sha256="1gm8s0mprb5ybc1hb92w1z84qrj4vzfizd0ws4ppzj9k6fb12nn9"; depends=[Biobase KernSmooth miRcompData]; };
+  mia = derive2 { name="mia"; version="1.12.0"; sha256="1wn2lb7hn4zqqcs2jwavpsbk5kw8d78kxg2yv4jjpikpdz7haa2i"; depends=[ape BiocGenerics BiocParallel Biostrings bluster DECIPHER decontam DelayedArray DelayedMatrixStats DirichletMultinomial dplyr IRanges MASS MatrixGenerics MultiAssayExperiment rlang S4Vectors scater scuttle SingleCellExperiment SummarizedExperiment tibble tidyr TreeSummarizedExperiment vegan]; };
+  miaSim = derive2 { name="miaSim"; version="1.10.0"; sha256="1grlkynbjkfndx8j44yd6sfr3yzy0fwmakjw4mg8flllqs9yqnmw"; depends=[deSolve MatrixGenerics poweRlaw S4Vectors SummarizedExperiment TreeSummarizedExperiment]; };
+  miaViz = derive2 { name="miaViz"; version="1.12.0"; sha256="1dpvqvh9sg6visf4bbjd9x4wag2dzj2b5mylbxbqwcm8lic7gy03"; depends=[ape BiocGenerics BiocParallel DelayedArray DirichletMultinomial dplyr ggnewscale ggplot2 ggraph ggrepel ggtree mia purrr rlang S4Vectors scater SingleCellExperiment SummarizedExperiment tibble tidygraph tidyr tidytree TreeSummarizedExperiment viridis]; };
+  microRNA = derive2 { name="microRNA"; version="1.62.0"; sha256="0jw6g5y9pgvwh10fxpr55nkq8yf6p079kvsx986sgz78y0kkm6zh"; depends=[Biostrings]; };
+  microSTASIS = derive2 { name="microSTASIS"; version="1.4.0"; sha256="1gf37nqcif6blpwrlq694gl78l2g1alx13wjdxay6qfg2iaf2dln"; depends=[BiocParallel ggplot2 ggside rlang stringr TreeSummarizedExperiment]; };
+  microbiome = derive2 { name="microbiome"; version="1.26.0"; sha256="1azxfydcrxi46j6lykspzchwcj0dpghjia7vfb2bppz9gh8nvk37"; depends=[Biostrings compositions dplyr ggplot2 phyloseq reshape2 Rtsne scales tibble tidyr vegan]; };
+  microbiomeDASim = derive2 { name="microbiomeDASim"; version="1.18.0"; sha256="123viwwyc4yjwkc1l7r9als4bvi2sb7yxmyfidqwamw8f2vwsfcz"; depends=[Biobase ggplot2 MASS Matrix metagenomeSeq mvtnorm pbapply phyloseq tmvtnorm]; };
+  microbiomeExplorer = derive2 { name="microbiomeExplorer"; version="1.14.0"; sha256="0p15wp3n2v74rfsmap0331b3xkswfyaq8a4h2xrcn3v60m5qfmzq"; depends=[Biobase biomformat broom car DESeq2 dplyr DT forcats heatmaply knitr limma lubridate magrittr matrixStats metagenomeSeq plotly purrr RColorBrewer readr reshape2 rlang rmarkdown shiny shinycssloaders shinydashboard shinyjs shinyWidgets stringr tibble tidyr vegan]; };
+  microbiomeMarker = derive2 { name="microbiomeMarker"; version="1.10.0"; sha256="07w77cm7fjkqnc1rkj9dj6nashpkwbq43nwp6bsq5wp8k4y26gjn"; depends=[ALDEx2 ANCOMBC Biobase BiocGenerics BiocParallel biomformat Biostrings caret coin ComplexHeatmap DESeq2 dplyr edgeR ggplot2 ggsignif ggtree IRanges limma magrittr MASS metagenomeSeq multtest patchwork phyloseq plotROC pROC purrr rlang S4Vectors tibble tidyr tidytree vegan yaml]; };
+  midasHLA = derive2 { name="midasHLA"; version="1.12.0"; sha256="0d7zpv88mfs8bgym72ljbr0wammnppc5q0pcf5970z2zapxqmczy"; depends=[assertthat broom dplyr formattable HardyWeinberg kableExtra knitr magrittr MultiAssayExperiment qdapTools rlang S4Vectors stringi SummarizedExperiment tibble]; };
+  miloR = derive2 { name="miloR"; version="2.0.0"; sha256="1cb5iw90h6raflgmypd2wc8y4mbsv9g8alshh30k1kjm8vlsw92y"; depends=[BiocGenerics BiocNeighbors BiocParallel BiocSingular cowplot dplyr edgeR ggbeeswarm ggplot2 ggraph ggrepel gtools igraph irlba limma Matrix MatrixGenerics matrixStats numDeriv patchwork RColorBrewer Rcpp RcppArmadillo S4Vectors SingleCellExperiment stringr SummarizedExperiment tibble tidyr]; };
+  mimager = derive2 { name="mimager"; version="1.28.0"; sha256="0n535az50yvdvbjwy0rixy4lnlc0psb454xdzqp6rh718jh5yqrf"; depends=[affy affyPLM Biobase BiocGenerics DBI gtable oligo oligoClasses preprocessCore S4Vectors scales]; };
+  mina = derive2 { name="mina"; version="1.12.0"; sha256="0fkc6cf267fcz7gqaf2grvd9dl1azvymsahszkb6w0rp289nbbn6"; depends=[apcluster biganalytics bigmemory foreach ggplot2 Hmisc MCL parallelDist plyr Rcpp RcppArmadillo RcppParallel reshape2 RSpectra stringr]; };
+  minet = derive2 { name="minet"; version="3.62.0"; sha256="1627gqqk8v3sx5kgm7z3wkimbz7dpf37ljrmvwbd4z6ag2yiirbj"; depends=[infotheo]; };
+  minfi = derive2 { name="minfi"; version="1.50.0"; sha256="1hk44wddcygh4j7jmj1b0p40hf5qdy1m78x14j19h7z9aq4azdij"; depends=[beanplot Biobase BiocGenerics BiocParallel Biostrings bumphunter data_table DelayedArray DelayedMatrixStats genefilter GenomeInfoDb GenomicRanges GEOquery HDF5Array illuminaio IRanges lattice limma MASS mclust nlme nor1mix preprocessCore quadprog RColorBrewer reshape S4Vectors siggenes SummarizedExperiment]; };
+  mirIntegrator = derive2 { name="mirIntegrator"; version="1.34.0"; sha256="1saj71y2h3zczq16ypvmvy17z95klxawiifrlrxw3b61pnf7lpn0"; depends=[AnnotationDbi ggplot2 graph org_Hs_eg_db Rgraphviz ROntoTools]; };
+  mirTarRnaSeq = derive2 { name="mirTarRnaSeq"; version="1.12.0"; sha256="1wn27pnmax2ay13a6mms6wrhskvqlwmg45jifbfhna1d5ly18rqh"; depends=[assertthat caTools corrplot data_table dplyr ggplot2 MASS pheatmap pscl purrr R_utils reshape2 viridis]; };
+  missMethyl = derive2 { name="missMethyl"; version="1.38.0"; sha256="0fnqa7v6lgld4pdqnvgdzly73aj4a4cn8sgszicxsyn1damxsjiw"; depends=[AnnotationDbi BiasedUrn Biobase BiocGenerics GenomicRanges GO_db IlluminaHumanMethylation450kanno_ilmn12_hg19 IlluminaHumanMethylation450kmanifest IlluminaHumanMethylationEPICanno_ilm10b4_hg19 IlluminaHumanMethylationEPICmanifest IRanges limma methylumi minfi org_Hs_eg_db ruv S4Vectors statmod stringr SummarizedExperiment]; };
+  missRows = derive2 { name="missRows"; version="1.24.0"; sha256="0p51nnfxhz5lqxm4vbqhxczaa774g13sh65czj1kkrrzp1g65wm5"; depends=[ggplot2 gtools MultiAssayExperiment plyr S4Vectors]; };
+  mistyR = derive2 { name="mistyR"; version="1.12.0"; sha256="0w0ij222749pv89y0gq9c01cgsasw1lb3g0bx3sf6j62gdlf1gdp"; depends=[assertthat caret deldir digest distances dplyr filelock furrr ggplot2 purrr R_utils ranger readr ridge rlang rlist stringr tibble tidyr tidyselect withr]; };
+  mitch = derive2 { name="mitch"; version="1.16.0"; sha256="1x65vxjbbd7vswv9lpa0fx5l1m629n0iayb54s3xhidn3xylizsb"; depends=[beeswarm echarts4r GGally ggplot2 gplots gridExtra kableExtra knitr MASS plyr reshape2 rmarkdown]; };
+  mitoClone2 = derive2 { name="mitoClone2"; version="1.10.0"; sha256="1vmbyraranbfywk1mmr2arbzw8fsxkyqh5nkzd2w92vpahp7vn2d"; depends=[deepSNV GenomicRanges ggplot2 pheatmap reshape2 Rhtslib S4Vectors]; };
+  mixOmics = derive2 { name="mixOmics"; version="6.28.0"; sha256="03pdg2hz4wnyigqakb9098ak9ww8fhwypzn006hfad0s042p9wvj"; depends=[BiocParallel corpcor dplyr ellipse ggplot2 ggrepel gridExtra igraph lattice MASS matrixStats rARPACK RColorBrewer reshape2 tidyr]; };
+  mnem = derive2 { name="mnem"; version="1.20.0"; sha256="0i93fnqpf8m90bkyvgzccj2x4phg9k1wb6k8fs04qsid0b9ksnpd"; depends=[cluster data_table e1071 flexclust ggplot2 graph lattice Linnorm matrixStats naturalsort Rcpp RcppEigen Rgraphviz snowfall tsne wesanderson]; };
+  moanin = derive2 { name="moanin"; version="1.12.0"; sha256="15agfggzbdgpx974yvixh8c8mv8wklg6zfzzr7ywpv2cixxazhwq"; depends=[ClusterR edgeR limma MASS matrixStats NMI reshape2 S4Vectors SummarizedExperiment topGO viridis zoo]; };
+  mobileRNA = derive2 { name="mobileRNA"; version="1.0.11"; sha256="10p37qr8wz6chh44fh1nri2db5qqghbbzbpjm02safxdx7h88081"; depends=[BiocGenerics bioseq Biostrings data_table DESeq2 dplyr edgeR GenomeInfoDb GenomicRanges ggplot2 ggrepel IRanges pheatmap progress RColorBrewer reticulate rlang rtracklayer S4Vectors scales SimDesign SummarizedExperiment tidyr tidyselect]; };
+  mogsa = derive2 { name="mogsa"; version="1.38.0"; sha256="01hr97j5i20qwpck6nfr79wx31y7igz1wzr2m1zdivggb4jg94x7"; depends=[Biobase BiocGenerics cluster corpcor genefilter gplots graphite GSEABase svd]; };
+  monaLisa = derive2 { name="monaLisa"; version="1.10.0"; sha256="0znan1yh35mxrjn6x5xz2g5pl0dhh0nklyx8rbsn09hn1khb8y5l"; depends=[BiocGenerics BiocParallel Biostrings BSgenome circlize ComplexHeatmap GenomeInfoDb GenomicRanges glmnet IRanges RSQLite S4Vectors stabs SummarizedExperiment TFBSTools vioplot XVector]; };
+  monocle = derive2 { name="monocle"; version="2.32.0"; sha256="0b09mf9fph0mb0zing0prc757d223858q9lj4j3kfpfjpd3jffai"; depends=[Biobase BiocGenerics biocViews cluster combinat DDRTree dplyr fastICA ggplot2 HSMMSingleCell igraph irlba leidenbase limma MASS Matrix matrixStats pheatmap plyr proxy RANN Rcpp reshape2 Rtsne slam stringr tibble VGAM viridis]; };
+  mosaics = derive2 { name="mosaics"; version="2.42.0"; sha256="000bwz1z8nwzgyaz69z6krr4ksggpsq48ni9rzl25m1bc27skldj"; depends=[GenomeInfoDb GenomicAlignments GenomicRanges IRanges lattice MASS Rcpp Rsamtools S4Vectors]; };
+  mosbi = derive2 { name="mosbi"; version="1.10.0"; sha256="0kvwsiwqvsphgjcflr1zjhp91k867bqg6x6gj72kl6x9an3rxpri"; depends=[akmbiclust BH biclust fabia igraph isa2 QUBIC RColorBrewer Rcpp RcppParallel xml2]; };
+  mosdef = derive2 { name="mosdef"; version="1.0.0"; sha256="14zv9mgiqcj2s34hg8wfdij1gss324rkq42clg8f3ancambj74vp"; depends=[AnnotationDbi clusterProfiler DESeq2 DT ggforce ggplot2 ggrepel GO_db goseq htmltools RColorBrewer rlang S4Vectors scales SummarizedExperiment topGO]; };
+  motifStack = derive2 { name="motifStack"; version="1.48.0"; sha256="15v4z1a0kg4ic411aprzc9b7i2l6c456sfj3jaxy95anw3j3iskj"; depends=[ade4 Biostrings ggplot2 htmlwidgets TFBSTools XML]; };
+  motifTestR = derive2 { name="motifTestR"; version="1.0.3"; sha256="19m8y69cd1x79cqwgwf6360mv7kn0a2gv3lphy2i60p6vlq99s8j"; depends=[Biostrings GenomeInfoDb GenomicRanges ggplot2 harmonicmeanp IRanges matrixStats patchwork rlang S4Vectors universalmotif]; };
+  motifbreakR = derive2 { name="motifbreakR"; version="2.18.0"; sha256="1mxs83l8yrbcx353h0wpc0lczn1jc0y5vg59y9g9dabk41csib47"; depends=[BiocGenerics BiocParallel Biostrings BSgenome GenomeInfoDb GenomicRanges Gviz IRanges matrixStats MotifDb motifStack pwalign rtracklayer S4Vectors stringr SummarizedExperiment TFMPvalue VariantAnnotation]; };
+  motifcounter = derive2 { name="motifcounter"; version="1.28.0"; sha256="1h6wbqn2xbj5ggx0sgp09cvrkcafq7i70mbskg2y9l9nryb38g2z"; depends=[Biostrings]; };
+  motifmatchr = derive2 { name="motifmatchr"; version="1.26.0"; sha256="1wpvdg5x51cbzpqa4s2s0zl9h7fsrsp87mxxlhxs65zx6yyfj2xl"; depends=[Biostrings BSgenome GenomeInfoDb GenomicRanges IRanges Matrix Rcpp RcppArmadillo Rsamtools S4Vectors SummarizedExperiment TFBSTools]; };
+  mpra = derive2 { name="mpra"; version="1.26.0"; sha256="181v4ickndbng6bhvvzyn92kq61izjhx27hkbsryqgnf0xlx1c33"; depends=[BiocGenerics limma S4Vectors scales statmod SummarizedExperiment]; };
+  msImpute = derive2 { name="msImpute"; version="1.14.0"; sha256="1qjkaa5ksd67izfw5jgg1l843jn6d7h0asp99sd340wbqcdfnyix"; depends=[data_table dplyr FNN limma matrixStats mvtnorm pdist reticulate scran softImpute tidyr]; };
+  msPurity = derive2 { name="msPurity"; version="1.30.1"; sha256="03h492l2x8isd1h4zmr5k6xykswimqfcxfgd67xpjjr0anrc8yl0"; depends=[DBI dbplyr doSNOW dplyr fastcluster foreach ggplot2 magrittr mzR plyr Rcpp reshape2 RSQLite stringr]; };
+  msa = derive2 { name="msa"; version="1.36.0"; sha256="05i6pp10nn4icl51rx3b48s861hnd1yx72d933fphm6a5082zxms"; depends=[BiocGenerics Biostrings IRanges Rcpp S4Vectors]; };
+  msgbsR = derive2 { name="msgbsR"; version="1.28.0"; sha256="06nbcb1nkci83kjl9l05d3vyfz4w21y0s51wg344bzjra1ycb9gl"; depends=[BSgenome easyRNASeq edgeR GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggbio ggplot2 IRanges plyr R_utils Rsamtools S4Vectors SummarizedExperiment]; };
+  mslp = derive2 { name="mslp"; version="1.6.0"; sha256="0qafwb6rp0r0h5iazj13q703yvld5s1si93vn4gcxk66pgg9fm3w"; depends=[data_table doRNG fmsb foreach magrittr org_Hs_eg_db pROC randomForest RankProd]; };
+  msmsEDA = derive2 { name="msmsEDA"; version="1.42.0"; sha256="1fzw36181rw7z62qggq7j22qhq8zrblpmv8qkqlfg140ywvwv08a"; depends=[gplots MASS MSnbase RColorBrewer]; };
+  msmsTests = derive2 { name="msmsTests"; version="1.42.0"; sha256="0fadwss9z4bfgkhrrqv322j8x40l5cl4ib85057h4fn03qdijqhq"; depends=[edgeR msmsEDA MSnbase qvalue]; };
+  msqrob2 = derive2 { name="msqrob2"; version="1.12.0"; sha256="1mg4a9mjvzj4y6jw5qpz53wg1h7z6a5l2b20ibp0wr67rns5xkix"; depends=[BiocParallel codetools limma lme4 MASS Matrix MultiAssayExperiment purrr QFeatures SummarizedExperiment]; };
+  multiClust = derive2 { name="multiClust"; version="1.34.0"; sha256="1md8zli6fhcb5ccy6yksl6c62vfqc2ifznxvpvzch2j1h2fswx84"; depends=[amap cluster ctc dendextend mclust survival]; };
+  multiGSEA = derive2 { name="multiGSEA"; version="1.14.0"; sha256="14mn8r3n1r9mrpng3b6hl20mmwxz3ns122qnx59lsja7danl9w0w"; depends=[AnnotationDbi dplyr fgsea graphite magrittr metaboliteIDmapping metap rappdirs rlang]; };
+  multiHiCcompare = derive2 { name="multiHiCcompare"; version="1.22.0"; sha256="0h5b8yaqxy0gpm1kndv0dyz6pvacdy7vh3mbdkbz04q4ng1jnk12"; depends=[aggregation BiocParallel data_table dplyr edgeR GenomeInfoDb GenomeInfoDbData GenomicRanges HiCcompare pbapply pheatmap qqman]; };
+  multiMiR = derive2 { name="multiMiR"; version="1.26.0"; sha256="0pzifw4b61v1wrfy6lsb5i4xxpmhl3g6sml09akfdy0skfx5lam8"; depends=[AnnotationDbi BiocGenerics dplyr purrr RCurl tibble XML]; };
+  multiWGCNA = derive2 { name="multiWGCNA"; version="1.2.0"; sha256="1y2rwwy5q2ak861hg8nm5f13rmf2b9dmhsmjwvxc75nzdjg9yqcz"; depends=[cowplot data_table dcanr dplyr flashClust ggalluvial ggplot2 ggrepel igraph patchwork readr reshape2 scales stringr SummarizedExperiment WGCNA]; };
+  multicrispr = derive2 { name="multicrispr"; version="1.14.0"; sha256="1625pqby6b0k67vn1h90j5899q5rhc815b64nywnvxlaia7hjvpm"; depends=[BiocGenerics Biostrings BSgenome CRISPRseek data_table GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 karyoploteR magrittr plyranges Rbowtie reticulate rtracklayer stringi tidyr tidyselect]; };
+  multiscan = derive2 { name="multiscan"; version="1.64.0"; sha256="0cp2fy4hl5cdgrii9nl53cd22h87hxsdixhpdi9is914v9s42rkr"; depends=[Biobase]; };
+  multistateQTL = derive2 { name="multistateQTL"; version="1.0.0"; sha256="1y983wj9awz29rv2fg8ryyindza8gjn54dn775p00zqs7qjnny3m"; depends=[circlize collapse ComplexHeatmap data_table dplyr fitdistrplus ggplot2 mashr matrixStats QTLExperiment S4Vectors SummarizedExperiment tidyr viridis]; };
+  multtest = derive2 { name="multtest"; version="2.60.0"; sha256="04dv5rcqwpv0im7j3hvcj8hjybgs4a384zgnjyqbcipcicd2rjz4"; depends=[Biobase BiocGenerics MASS survival]; };
+  mumosa = derive2 { name="mumosa"; version="1.12.0"; sha256="1r3i19q5i2pfs8xaag4qcb64hxwkz49msbvv454n5cb2zp1nafvd"; depends=[batchelor beachmat BiocGenerics BiocNeighbors BiocParallel BiocSingular DelayedArray DelayedMatrixStats igraph IRanges Matrix metapod S4Vectors ScaledMatrix scran scuttle SingleCellExperiment SummarizedExperiment uwot]; };
+  muscat = derive2 { name="muscat"; version="1.18.0"; sha256="1gafcq3p693f28gz3p8hk8mlxd9zja95h8953sr56n7krfffy1gi"; depends=[BiocParallel blme ComplexHeatmap data_table DESeq2 dplyr edgeR ggplot2 glmmTMB limma lme4 lmerTest Matrix matrixStats progress purrr S4Vectors scales scater sctransform scuttle SingleCellExperiment SummarizedExperiment variancePartition viridis]; };
+  muscle = derive2 { name="muscle"; version="3.46.0"; sha256="1jx71gzjd9jnr1xa0c0zzjg5a8qhf8czrh4mwbvnclr7g1l21cdq"; depends=[Biostrings]; };
+  musicatk = derive2 { name="musicatk"; version="1.14.0"; sha256="1mp8c42pk5pl4ymvz0vjvgh0vq10kk67844vvspbhwpfdmsabr2b"; depends=[Biostrings BSgenome BSgenome_Hsapiens_UCSC_hg19 BSgenome_Hsapiens_UCSC_hg38 BSgenome_Mmusculus_UCSC_mm10 BSgenome_Mmusculus_UCSC_mm9 cluster ComplexHeatmap data_table decompTumor2Sig dplyr factoextra GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 ggpubr ggrepel gridExtra gtools IRanges maftools magrittr MASS Matrix matrixTests MCMCprecision NMF philentropy plotly rlang S4Vectors shiny stringi stringr SummarizedExperiment tibble tidyr tidyverse topicmodels TxDb_Hsapiens_UCSC_hg19_knownGene TxDb_Hsapiens_UCSC_hg38_knownGene uwot VariantAnnotation]; };
+  mygene = derive2 { name="mygene"; version="1.40.0"; sha256="0ybvabgdjm63yvvkpkldqddvdcfsncr25rnsw17kbdachar29shj"; depends=[GenomicFeatures Hmisc httr jsonlite plyr S4Vectors sqldf txdbmaker]; };
+  myvariant = derive2 { name="myvariant"; version="1.34.0"; sha256="1f82x3vahbsccvyg5gvi34llanzscpvp0pbqhm1ki9frx9hqwysz"; depends=[GenomeInfoDb Hmisc httr jsonlite magrittr plyr S4Vectors VariantAnnotation]; };
+  mzID = derive2 { name="mzID"; version="1.42.0"; sha256="0kh9swzh3hvi6qi64cgr13f22s1mgvz2rid5psb1gy4l3biwadj5"; depends=[doParallel foreach iterators plyr ProtGenerics XML]; };
+  mzR = derive2 { name="mzR"; version="2.38.0"; sha256="02dz23xns9ryz98nip1w68h9q5ckxpyl1zvzklsp4j7p9z2400dk"; depends=[Biobase BiocGenerics ncdf4 ProtGenerics Rcpp Rhdf5lib]; };
+  ncGTW = derive2 { name="ncGTW"; version="1.18.0"; sha256="1x9q4c3xkz984nz33bbh753181qx655zkl46i00h7a9khnab9cdv"; depends=[BiocParallel Rcpp xcms]; };
+  ncRNAtools = derive2 { name="ncRNAtools"; version="1.14.0"; sha256="151s12kg88x4nymzvpzwlfil7rvrbaa99agfxzz03r8dyjnqrqlq"; depends=[GenomicRanges ggplot2 httr IRanges S4Vectors xml2]; };
+  ncdfFlow = derive2 { name="ncdfFlow"; version="2.50.0"; sha256="1mbq3190nxlzhfb58i7s2f5f9fngda1icnihmyplagh64savlpcn"; depends=[BH Biobase BiocGenerics cpp11 flowCore Rhdf5lib zlibbioc]; };
+  ndexr = derive2 { name="ndexr"; version="1.26.0"; sha256="1jl7z4a1rdsivc774k15v3q40isgp1ly3lsmgflfkq7jsx62xl5j"; depends=[httr jsonlite plyr RCX tidyr]; };
+  nearBynding = derive2 { name="nearBynding"; version="1.14.0"; sha256="0ni6mipdbwzc0gi8mws1d1b8ylj0pjlvi81kv9r3pm93psr67pj3"; depends=[BiocGenerics dplyr GenomeInfoDb GenomicRanges ggplot2 gplots magrittr matrixStats plyranges R_utils rlang Rsamtools rtracklayer S4Vectors transport TxDb_Hsapiens_UCSC_hg19_knownGene TxDb_Hsapiens_UCSC_hg38_knownGene]; };
+  nempi = derive2 { name="nempi"; version="1.12.0"; sha256="069b7kmpz38s7240ac8iw8m80w62lrly01khfl8b3kikhlr82jcq"; depends=[e1071 epiNEM matrixStats mnem naturalsort nnet randomForest]; };
+  netDx = derive2 { name="netDx"; version="1.16.0"; sha256="00ghcj5hzb06pi9aj2rdnasyqgqnvr9qjb0m6b0476yv2mx5x24k"; depends=[bigmemory BiocFileCache combinat doParallel foreach GenomeInfoDb GenomicRanges ggplot2 glmnet httr igraph IRanges MultiAssayExperiment plotrix pracma rappdirs RColorBrewer reshape2 ROCR Rtsne S4Vectors]; };
+  netSmooth = derive2 { name="netSmooth"; version="1.24.0"; sha256="0nry64lvqwwq672c6callfjfa0y14igvqpvrvfs2hm0qj8qmg2q8"; depends=[cluster clusterExperiment data_table DelayedArray entropy HDF5Array Matrix scater SingleCellExperiment SummarizedExperiment]; };
+  netZooR = derive2 { name="netZooR"; version="1.8.0"; sha256="0z1wi0csnpjz70q5pl5wmdfgqnq66yk9gysxxid8rmkagqxvbg73"; depends=[AnnotationDbi assertthat Biobase data_table doParallel dplyr foreach ggdendro ggplot2 GO_db GOstats gplots igraph MASS Matrix matrixcalc matrixStats nnet org_Hs_eg_db pandaR penalized RCy3 reshape reshape2 reticulate STRINGdb tidyr vegan viridisLite yarn]; };
+  netboost = derive2 { name="netboost"; version="2.12.0"; sha256="0xirmys108qhxg7073vm90463a7qs6z557516ff1yczhldaq4psy"; depends=[BiocStyle colorspace dynamicTreeCut impute R_utils Rcpp RcppParallel WGCNA]; };
+  nethet = derive2 { name="nethet"; version="1.36.0"; sha256="1mr42pdm2sjpbmiiwjpqd0pvbnc5imlgmg14swc2pp66dl60g7b3"; depends=[CompQuadForm GeneNet ggm ggplot2 glasso glmnet GSA huge ICSNP limma mclust multtest mvtnorm network]; };
+  netprioR = derive2 { name="netprioR"; version="1.30.0"; sha256="0kgsgjc2q4wvdwbqfx79ql85k6xc60165zair7nwc89wn07rnswy"; depends=[doParallel dplyr foreach ggplot2 gridExtra Matrix pROC sparseMVN]; };
+  netresponse = derive2 { name="netresponse"; version="1.64.0"; sha256="13lynfqsbv8cp6hd452bky4mkf029jwvryx8mzdcx15r4hwsqh5r"; depends=[BiocStyle ggplot2 graph igraph mclust minet plyr qvalue RColorBrewer reshape2 Rgraphviz rmarkdown]; };
+  ngsReports = derive2 { name="ngsReports"; version="2.6.0"; sha256="11k4fbwy6shkb3z9np7wnnhbjpka3ymm8ja8dnw1jpdc3l1jx537"; depends=[BiocGenerics Biostrings checkmate dplyr forcats ggdendro ggplot2 jsonlite lifecycle lubridate patchwork plotly reshape2 rlang rmarkdown scales stringr tibble tidyr tidyselect zoo]; };
+  nipalsMCIA = derive2 { name="nipalsMCIA"; version="1.2.0"; sha256="0r14hmglxlrwryc6qwn20vfrmy5k2pk7l73d3fz5bmfja06ms6n5"; depends=[ComplexHeatmap dplyr fgsea ggplot2 MultiAssayExperiment pracma rlang RSpectra scales SummarizedExperiment]; };
+  nnNorm = derive2 { name="nnNorm"; version="2.68.0"; sha256="1r3klap7yazz73jh7dja1wlgg9ladfw1aaljirbiq1dvlb1q1i8f"; depends=[marray nnet]; };
+  nnSVG = derive2 { name="nnSVG"; version="1.8.0"; sha256="00346z7i5hgljylv00l5pcmj3y769mqnhac0f4l7jhiww3xswfbs"; depends=[BiocParallel BRISC Matrix matrixStats SingleCellExperiment SpatialExperiment SummarizedExperiment]; };
+  normalize450K = derive2 { name="normalize450K"; version="1.32.0"; sha256="0iavswwgv0qhnwlf99nxrpmswbd5m9ihi7i68gby07hmsl5gci2a"; depends=[Biobase illuminaio quadprog]; };
+  normr = derive2 { name="normr"; version="1.30.0"; sha256="1lkh4a6c499g4wicj4khkyhz361k4q0aydk4gc122vn4877z14c6"; depends=[bamsignals GenomeInfoDb GenomicRanges IRanges qvalue Rcpp rtracklayer]; };
+  npGSEA = derive2 { name="npGSEA"; version="1.40.0"; sha256="1d9q7jy6axmh62xs4m1lxfh8j7vwq4k995l28hcfwh7qk38k4gqr"; depends=[Biobase BiocGenerics GSEABase]; };
+  nuCpos = derive2 { name="nuCpos"; version="1.22.0"; sha256="03qv4p5mvwbnm2grfnrszphv3c0k2lwja5cbq27cv6il7bnz8m0m"; depends=[]; };
+  nucleR = derive2 { name="nucleR"; version="2.36.0"; sha256="1gbn4rpgil579xkrwd78wc7h6h0f8j1kjz0vvlijy63i6g380wfk"; depends=[Biobase BiocGenerics Biostrings dplyr GenomeInfoDb GenomicRanges ggplot2 IRanges magrittr Rsamtools S4Vectors ShortRead]; };
+  nucleoSim = derive2 { name="nucleoSim"; version="1.32.0"; sha256="0f64601jm3bvcdpls3d5njpparkb5h5v6zvhb1jf46fdvyg4xcss"; depends=[IRanges S4Vectors]; };
+  nullranges = derive2 { name="nullranges"; version="1.10.0"; sha256="0a20aqqja5nkp39v7mxjnc98in63zhl00mnhsm952ja7v1l2xfsw"; depends=[data_table GenomeInfoDb GenomicRanges ggplot2 ggridges InteractionSet IRanges plyranges progress rlang S4Vectors scales]; };
+  occugene = derive2 { name="occugene"; version="1.64.0"; sha256="01dgpbz3w5bbbhiz67fripxw1pwdd1iinnywvm9xgzjkdhr3g18y"; depends=[]; };
+  octad = derive2 { name="octad"; version="1.6.0"; sha256="1nlad40c9mzs74zrc82smmmyknw4dr88c6zm0ywm62v0wb8l22n7"; depends=[AnnotationHub Biobase data_table DESeq2 dplyr EDASeq edgeR ExperimentHub foreach ggplot2 GSVA htmlwidgets httr limma magrittr octad_db plotly qpdf reshape2 Rfast rhdf5 RUVSeq S4Vectors]; };
+  odseq = derive2 { name="odseq"; version="1.32.0"; sha256="03bhlarifh5r13ii7a5kd6gj9w0zdgjz9p89pj0lhgx2lglh2nm8"; depends=[kebabs mclust msa]; };
+  oligo = derive2 { name="oligo"; version="1.68.2"; sha256="0ch6b4rg5v6fj0fgniqiigx1gnnqgwji90bxqngllman388bx867"; depends=[affxparser affyio Biobase BiocGenerics Biostrings DBI ff oligoClasses preprocessCore RSQLite zlibbioc]; };
+  oligoClasses = derive2 { name="oligoClasses"; version="1.66.0"; sha256="15icfcmpwrnjpyahc4v168fpcbsml6x7h4drmsyh9l8d1284yb4n"; depends=[affyio Biobase BiocGenerics BiocManager Biostrings DBI ff foreach GenomicRanges IRanges RSQLite S4Vectors SummarizedExperiment]; };
+  omada = derive2 { name="omada"; version="1.6.0"; sha256="1by6im4frl724yif9pjgcmp016hahj5xj35h1zqa4k5g8nw54f9s"; depends=[clValid diceR dplyr fpc genieclust ggplot2 glmnet kernlab pdfCluster Rcpp reshape]; };
+  omicRexposome = derive2 { name="omicRexposome"; version="1.26.0"; sha256="0p3x3pp3337nvmqqssrbfh6zn2fp260ss8wjc2c90b0gr4c4h6wc"; depends=[Biobase ggplot2 ggrepel gridExtra isva limma MultiDataSet omicade4 PMA rexposome SmartSVA stringr SummarizedExperiment sva]; };
+  omicade4 = derive2 { name="omicade4"; version="1.44.0"; sha256="18gp8qpmnbc5yjqyvvwvmrdybvm6zddc0r8bfglxz5wg4a91h4wk"; depends=[ade4 Biobase made4]; };
+  omicplotR = derive2 { name="omicplotR"; version="1.24.0"; sha256="1zb4xik2rvznbigfh42k97mlfc4ls997cyv4ixd34qp0z3929djc"; depends=[ALDEx2 compositions DT jsonlite knitr matrixStats rmarkdown shiny vegan zCompositions]; };
+  omicsPrint = derive2 { name="omicsPrint"; version="1.24.0"; sha256="0b5mccw1vpcw1i38lcy6cjr6im0iw17a3z8vwfs7f2z7nj72p8cf"; depends=[MASS matrixStats MultiAssayExperiment RaggedExperiment SummarizedExperiment]; };
+  omicsViewer = derive2 { name="omicsViewer"; version="1.8.0"; sha256="0ij7slf4y708gdw06nmm2w7p3svcadvc9s44rzkgjb66is4h375g"; depends=[beeswarm Biobase curl drc DT fastmatch fgsea flatxml ggplot2 ggseqlogo htmlwidgets httr Matrix matrixStats networkD3 openxlsx plotly psych RColorBrewer reshape2 ROCR RSQLite S4Vectors shiny shinybusy shinycssloaders shinyjs shinythemes shinyWidgets stringr SummarizedExperiment survival survminer]; };
+  ompBAM = derive2 { name="ompBAM"; version="1.8.0"; sha256="12r57wgqszwlm4agfbs0gfakhh87y8jpaalv2rq38nif479hpmyz"; depends=[Rcpp zlibbioc]; };
+  oncomix = derive2 { name="oncomix"; version="1.26.0"; sha256="01ap90pyj3xdnhryiywa57pl0d8lj4q7qxxvf8ahhbr0a2hy8py0"; depends=[ggplot2 ggrepel mclust RColorBrewer SummarizedExperiment]; };
+  oncoscanR = derive2 { name="oncoscanR"; version="1.6.0"; sha256="1n5rcnbb06pl3b27wkzzmz0l7g3hgfjpi7v7anbhscr2i1hy46b9"; depends=[GenomicRanges IRanges magrittr readr S4Vectors]; };
+  onlineFDR = derive2 { name="onlineFDR"; version="2.12.0"; sha256="1sivrkb21dmb7wgdxd0q3nmjlvaqrh21c20s4lq8azn685frlznh"; depends=[progress Rcpp RcppProgress]; };
+  ontoProc = derive2 { name="ontoProc"; version="1.26.0"; sha256="0v4dv6rjrivrx3npjycrlqyivbpksikkj6l8h772sa5hfnwmf943"; depends=[AnnotationHub Biobase BiocFileCache dplyr DT graph httr igraph magrittr ontologyIndex ontologyPlot R_utils reticulate Rgraphviz S4Vectors shiny SummarizedExperiment]; };
+  openCyto = derive2 { name="openCyto"; version="2.16.1"; sha256="13ndjvm3l5pl1jgv7bqp78didqq3rx6br4p1ncqqp68mm048f2ll"; depends=[BH Biobase BiocGenerics cpp11 data_table flowClust flowCore flowViz flowWorkspace graph ncdfFlow RBGL RColorBrewer]; };
+  openPrimeR = derive2 { name="openPrimeR"; version="1.26.0"; sha256="1wcwg0hpnmfzzbxsqggmgim15f4zky0xx3ynyypykyh1c5i3f4yi"; depends=[ape BiocGenerics Biostrings DECIPHER digest dplyr foreach GenomicRanges ggplot2 Hmisc IRanges lpSolveAPI magrittr openxlsx plyr pwalign RColorBrewer reshape2 S4Vectors scales seqinr stringdist stringr uniqtag XML]; };
+  openPrimeRui = derive2 { name="openPrimeRui"; version="1.26.0"; sha256="0w00ya6xb70am000hybrxgcq8bpd950w36n01v4l0pfmfcvqd9fa"; depends=[DT openPrimeR rmarkdown shiny shinyBS shinyjs]; };
+  oposSOM = derive2 { name="oposSOM"; version="2.22.0"; sha256="1i6jkhnb7b420zacxxiv4c0il1n7yrvg5v4qnd465d1s2wifwndn"; depends=[ape Biobase biomaRt fastICA fdrtool graph igraph pixmap png Rcpp RcppParallel RCurl scatterplot3d tsne XML]; };
+  oppar = derive2 { name="oppar"; version="1.32.0"; sha256="1bdcddyw1m51x6fs928j8qmcfdkw21hi7xvgih97nyddnnl5ad5x"; depends=[Biobase GSEABase GSVA]; };
+  oppti = derive2 { name="oppti"; version="1.18.0"; sha256="1lmjvncp8h3p9vb4979v5spw2yp7w2mj4w60b728njhp9cxh8k6g"; depends=[devtools ggplot2 knitr limma parallelDist pheatmap RColorBrewer reshape]; };
+  optimalFlow = derive2 { name="optimalFlow"; version="1.16.0"; sha256="1b7a7xca1fb7732hwzcgz79p5pp6xsy0z5az5inv6g8z7a2wpngn"; depends=[dbscan doParallel dplyr ellipse flowMeans foreach optimalFlowData randomForest Rfast rgl rlang robustbase transport]; };
+  orthogene = derive2 { name="orthogene"; version="1.10.0"; sha256="12rf9xjziziw7r02assnpa4ncryyqkfibj3bhbrq8vp7ygvbn64a"; depends=[babelgene data_table DelayedArray dplyr ggplot2 ggpubr ggtree gprofiler2 grr homologene jsonlite Matrix patchwork repmis]; };
+  orthos = derive2 { name="orthos"; version="1.2.0"; sha256="0y5q9dmn6qwq8psgclwzca3bpfiyi7xh325hxj328h3fis1sm9xb"; depends=[AnnotationHub basilisk BiocParallel colorspace cowplot DelayedArray dplyr ExperimentHub ggplot2 ggpubr ggrepel ggsci HDF5Array keras orthosData plyr reticulate rlang S4Vectors SummarizedExperiment tensorflow tidyr]; };
+  pRoloc = derive2 { name="pRoloc"; version="1.44.0"; sha256="0g3wlr8f5lhsz9yqs0fx2x1f07y5mxcknq0790l0hirmhlj0vvzr"; depends=[Biobase BiocGenerics BiocParallel biomaRt caret class coda dendextend e1071 FNN ggplot2 gtools hexbin kernlab knitr LaplacesDemon lattice MASS mclust mixtools MLInterfaces MSnbase mvtnorm nnet plyr proxy randomForest RColorBrewer Rcpp RcppArmadillo sampling scales]; };
+  pRolocGUI = derive2 { name="pRolocGUI"; version="2.14.0"; sha256="0lxnvh2hx7zayfmdfiqhlwp3gmpx0bsz3ds67zalhvf1xmn2cn88"; depends=[Biobase BiocGenerics colorspace colourpicker dplyr DT ggplot2 MSnbase pRoloc scales shiny shinydashboard shinydashboardPlus shinyhelper shinyjs shinyWidgets]; };
+  packFinder = derive2 { name="packFinder"; version="1.16.0"; sha256="0y8sw0vyfry6vfn4k9w81m9s4a98bhc5h2a4nvy666qjganhfm8i"; depends=[ape Biostrings GenomicRanges IRanges kmer S4Vectors]; };
+  padma = derive2 { name="padma"; version="1.14.0"; sha256="1b5pjjd7nn6b64b0cj0alqgbp9782vf33b4m7kz9dvzacsp9n2l0"; depends=[FactoMineR MultiAssayExperiment S4Vectors SummarizedExperiment]; };
+  pageRank = derive2 { name="pageRank"; version="1.14.0"; sha256="0d7mgxssyc7bbcjhhrlj4y7v4xgw16y499c0k6wcrh3y4f24xwna"; depends=[GenomicRanges igraph motifmatchr]; };
+  paircompviz = derive2 { name="paircompviz"; version="1.42.0"; sha256="13znncas7s3ihjvv401fjbsg80iliv4afqw9w4jyazz4vdwgp400"; depends=[Rgraphviz]; };
+  pairedGSEA = derive2 { name="pairedGSEA"; version="1.4.0"; sha256="181x2r7af4243b2jmsc71gi8jlq80d4gzkcprr0dk0sis9bh1pqj"; depends=[aggregation BiocParallel DESeq2 DEXSeq fgsea ggplot2 limma S4Vectors SummarizedExperiment sva]; };
+  pairkat = derive2 { name="pairkat"; version="1.10.0"; sha256="1rxwf8nlmc18h6zi95v4xhs5hqaygpba15wsc06msslzr905s6id"; depends=[CompQuadForm data_table igraph KEGGREST magrittr SummarizedExperiment tibble]; };
+  pandaR = derive2 { name="pandaR"; version="1.36.0"; sha256="1cgy9sx5nk94d43baxsm25lh64fmmmznxd832r2wnj6a7p07bbj2"; depends=[Biobase BiocGenerics ggplot2 hexbin igraph matrixStats plyr reshape RUnit]; };
+  panelcn_mops = derive2 { name="panelcn.mops"; version="1.26.0"; sha256="1fmb1zixg909nqdf34z2aq0llzzsrf4pd73pc8xyachivyx73p4a"; depends=[cn_mops GenomeInfoDb GenomicRanges IRanges Rsamtools S4Vectors]; };
+  panp = derive2 { name="panp"; version="1.74.0"; sha256="0w5hbjpdwy6g3x38c64r29106s1smyakzpm1qb50f6g8mf99lsvy"; depends=[affy Biobase]; };
+  pareg = derive2 { name="pareg"; version="1.8.0"; sha256="1b9vvn1ppw1vbfmkzkbd6b01pkqnsknbrjv1js983dpjv23x6xlb"; depends=[basilisk devtools doFuture doRNG DOSE dplyr foreach future ggplot2 ggraph ggrepel glue hms igraph keras logger magrittr Matrix nloptr progress proxy purrr reticulate rlang stringr tensorflow tfprobability tibble tidygraph tidyr]; };
+  parglms = derive2 { name="parglms"; version="1.36.0"; sha256="1b63nkd50pn1mgr8l0svi3h8rplb5g50a2xvkxa7j26w6ss8302v"; depends=[BatchJobs BiocGenerics doParallel foreach]; };
+  parody = derive2 { name="parody"; version="1.62.0"; sha256="0k2gc8p9dk7j21n6hxdqjna09m6cggx47spkmxkqvwqm97mwqzrp"; depends=[]; };
+  partCNV = derive2 { name="partCNV"; version="1.2.0"; sha256="0f632ih6fy46923a4cf7njkgaqwkmgbwz74djbd2awsnk02afbbw"; depends=[AnnotationHub data_table depmixS4 GenomicRanges magrittr Seurat SingleCellExperiment]; };
+  pathRender = derive2 { name="pathRender"; version="1.72.0"; sha256="0dcds0agwphriqc0d8rw7yycqvxzhv7jj4xs2lvwhzwqrkxicpf1"; depends=[AnnotationDbi cMAP graph RColorBrewer Rgraphviz]; };
+  pathifier = derive2 { name="pathifier"; version="1.42.0"; sha256="1m21713zj4i5iygrj0ygc5zwcrw6038hb486l6c5nvykhzc5w64p"; depends=[princurve R_oo]; };
+  pathlinkR = derive2 { name="pathlinkR"; version="1.0.0"; sha256="19i840an94hpyqxz4c4piqy322ynxzf48cxbmxvf5jylxdqjnzf2"; depends=[circlize clusterProfiler ComplexHeatmap dplyr ggforce ggplot2 ggpubr ggraph ggrepel igraph purrr sigora stringr tibble tidygraph tidyr vegan visNetwork]; };
+  pathview = derive2 { name="pathview"; version="1.44.0"; sha256="1papw23dhhkqmm864dc3xm028xm0ywc6sjcm7xk93f2j7yj65x0v"; depends=[AnnotationDbi graph KEGGgraph KEGGREST org_Hs_eg_db png Rgraphviz XML]; };
+  pathwayPCA = derive2 { name="pathwayPCA"; version="1.20.0"; sha256="055jqyzi6lq056ibdyzxy5mzcs5f93im2fbiz73a33bqndpc9s5i"; depends=[lars survival]; };
+  paxtoolsr = derive2 { name="paxtoolsr"; version="1.38.0"; sha256="0m3r8ynqkhksgj0d3si3wcnk5a801g1qklin8zm81cr1nlfx67gw"; depends=[httr igraph jsonlite plyr R_utils rappdirs readr rJava rjson XML]; };
+  pcaExplorer = derive2 { name="pcaExplorer"; version="2.30.0"; sha256="1szl2gyhw55ad4phcb7qn14amjb6xg65l3p4hnjzp6rda2cy9437"; depends=[AnnotationDbi base64enc biomaRt DESeq2 DT genefilter GenomicRanges ggplot2 ggrepel GO_db GOstats heatmaply IRanges knitr limma NMF pheatmap plotly plyr rmarkdown S4Vectors scales shiny shinyAce shinyBS shinydashboard SummarizedExperiment threejs tidyr topGO]; };
+  pcaMethods = derive2 { name="pcaMethods"; version="1.96.0"; sha256="1hrq0xmpr1l95hyi6ls9r86ahwf2rcbvr8m7cpg6ra0gsfyn4mpi"; depends=[Biobase BiocGenerics MASS Rcpp]; };
+  pcxn = derive2 { name="pcxn"; version="2.26.0"; sha256="13gahdsvz7ss3chcvqmdyrnw31rcgiplqg7awrn930drwljlimqk"; depends=[pcxnData pheatmap]; };
+  pdInfoBuilder = derive2 { name="pdInfoBuilder"; version="1.68.0"; sha256="1dcd0lscvywy5y5xfhfmn39n2iypjr4fjldfgmx8qa80b1d0xcbi"; depends=[affxparser Biobase BiocGenerics Biostrings DBI IRanges oligo oligoClasses RSQLite S4Vectors]; };
+  peakPantheR = derive2 { name="peakPantheR"; version="1.18.0"; sha256="0rr8kmk6d4m7aipmz2pi2rzwxhxc600bk9r24fdgsw4kbh17fman"; depends=[bslib doParallel DT foreach ggplot2 gridExtra lubridate minpack_lm MSnbase mzR pracma scales shiny shinycssloaders stringr svglite XML]; };
+  peco = derive2 { name="peco"; version="1.16.0"; sha256="1w3yf77lk5whdhicq6rzp61cpivvkc0jj5wsasjxaqvl7lf1k6fs"; depends=[assertthat circular conicfit doParallel foreach genlasso scater SingleCellExperiment SummarizedExperiment]; };
+  pengls = derive2 { name="pengls"; version="1.10.0"; sha256="0i3v91a3y5gyns5pnjnx7kmfwbp66kllj4gynzfjlgpf57y4qhk4"; depends=[BiocParallel glmnet nlme]; };
+  pepStat = derive2 { name="pepStat"; version="1.38.0"; sha256="1k4nf5jlpcf7bgrv08mgd575gkp08sw9w7nzab7idizdz4pvqvj4"; depends=[Biobase data_table fields GenomicRanges ggplot2 IRanges limma plyr]; };
+  pepXMLTab = derive2 { name="pepXMLTab"; version="1.38.0"; sha256="1y4c4cfc8s87rdmr2z2n3p3k6mann9ywragdl0v4rizss5rj35dl"; depends=[XML]; };
+  periodicDNA = derive2 { name="periodicDNA"; version="1.14.0"; sha256="1fx7kvgl9znzpz6i33zl6019m0r4jcwsvsycjwhqaz8g3b5k4z8q"; depends=[BiocParallel Biostrings BSgenome cowplot GenomeInfoDb GenomicRanges ggplot2 IRanges magrittr rtracklayer S4Vectors zoo]; };
+  pfamAnalyzeR = derive2 { name="pfamAnalyzeR"; version="1.4.0"; sha256="06bp5nghgrj8qyzqp1v869vck1j10093r9dp67w0kav4x4srkyyl"; depends=[dplyr magrittr readr stringr tibble]; };
+  pgca = derive2 { name="pgca"; version="1.28.0"; sha256="0yj7vcx3qyy3296k1lzi3qfgwcf0h08x784ygh5wkfa4y23azj0b"; depends=[]; };
+  pgxRpi = derive2 { name="pgxRpi"; version="1.0.1"; sha256="063xyx9i6k06klb8zpq64ln77lyadz6m6h86krk4mfxfbn214v9b"; depends=[attempt circlize dplyr GenomicRanges ggplot2 httr lubridate plyr S4Vectors SummarizedExperiment survival survminer]; };
+  phantasus = derive2 { name="phantasus"; version="1.24.0"; sha256="0gw7d8n4nb3rjari1zrdqqhdz0ca0mgw40yr56r3x3gsyqpjlzxa"; depends=[AnnotationDbi assertthat Biobase ccaPP config curl data_table DESeq2 edgeR fgsea fs GEOquery ggplot2 gtable htmltools httpuv httr jsonlite limma Matrix opencpu phantasusLite pheatmap protolite rhdf5 rhdf5client Rook scales stringr svglite XML yaml]; };
+  phantasusLite = derive2 { name="phantasusLite"; version="1.2.0"; sha256="1adr0z6gg72dhcfa98b5sfs1lsyypbs882wckzjgmjv16v56na4r"; depends=[Biobase data_table httr rhdf5client stringr]; };
+  phenoTest = derive2 { name="phenoTest"; version="1.52.0"; sha256="1l5r19gksrbqsdl9v8r2f4hrsbsxbkircbp3rxiis5x6y17ca9hy"; depends=[annotate AnnotationDbi Biobase biomaRt BMA Category ellipse genefilter ggplot2 gplots GSEABase Heatplus hgu133a_db Hmisc hopach limma mgcv survival xtable]; };
+  phenomis = derive2 { name="phenomis"; version="1.6.0"; sha256="0d6kc034lbbsyvr30p0a1c3nrpa39kkpwjqbkdvm6cwvfyiaf3iy"; depends=[Biobase biodb biodbChebi data_table futile_logger ggplot2 ggrepel htmlwidgets igraph limma MultiAssayExperiment MultiDataSet plotly PMCMRplus ranger RColorBrewer ropls SummarizedExperiment tibble tidyr VennDiagram]; };
+  phenopath = derive2 { name="phenopath"; version="1.28.0"; sha256="073v6sxf3k10257npbmxxh6bvdjwnvk3zh1zq2yvm9jzg2n34i99"; depends=[dplyr ggplot2 Rcpp SummarizedExperiment tibble tidyr]; };
+  philr = derive2 { name="philr"; version="1.30.0"; sha256="1j6lq7rprvqs8azj13l9qd5xylcmqgw6687cqn0rbsdhgiaqlh5h"; depends=[ape ggplot2 ggtree phangorn tidyr]; };
+  phosphonormalizer = derive2 { name="phosphonormalizer"; version="1.28.0"; sha256="1l58dv15fffmji7yzw96gg6221b895kaxjpxphx6ixl203m5gz03"; depends=[matrixStats plyr]; };
+  phyloseq = derive2 { name="phyloseq"; version="1.48.0"; sha256="0a8q4wcqcxs7933bxg9bg03ps6hnybvcpqmlpz1pjy3affzghcbi"; depends=[ade4 ape Biobase BiocGenerics biomformat Biostrings cluster data_table foreach ggplot2 igraph multtest plyr reshape2 scales vegan]; };
+  piano = derive2 { name="piano"; version="2.20.0"; sha256="0v168wkwxzh70h2c08ad4dzlgklbgvx1fzwrzw2mqq0fyczj0diw"; depends=[Biobase BiocGenerics DT fgsea gplots htmlwidgets igraph marray relations scales shiny shinydashboard shinyjs visNetwork]; };
+  pickgene = derive2 { name="pickgene"; version="1.76.0"; sha256="1a13p8n75bnz3dyxvp83vpxp23i85dq22mwn9mada9i8dixy49mc"; depends=[MASS]; };
+  pipeComp = derive2 { name="pipeComp"; version="1.14.0"; sha256="1wq7b5f5hdxg2q6av782dm2gmzzdx58ss7ns9vizyxli3k926p5n"; depends=[aricode BiocParallel circlize clue cluster ComplexHeatmap cowplot dplyr ggplot2 intrinsicDimension knitr Matrix matrixStats randomcoloR RColorBrewer reshape2 Rtsne S4Vectors scales scater scran Seurat SingleCellExperiment SummarizedExperiment uwot viridisLite]; };
+  pipeFrame = derive2 { name="pipeFrame"; version="1.20.0"; sha256="12wi520dylsjmf3vzwsdqqfqgcz5g4znfs2n5sd9b4805smc8k8l"; depends=[Biostrings BSgenome digest GenomeInfoDb magrittr rmarkdown visNetwork]; };
+  planet = derive2 { name="planet"; version="1.12.0"; sha256="0qfvddm5hnhplhni8xwwivc87n4gvvwxslxhrmvx10zsppn536g4"; depends=[dplyr magrittr tibble]; };
+  planttfhunter = derive2 { name="planttfhunter"; version="1.4.0"; sha256="1sz19ryxdlsm30by416bi6icnkcd5znim31x9w7f4x762fv6ffvp"; depends=[Biostrings SummarizedExperiment]; };
+  plasmut = derive2 { name="plasmut"; version="1.2.0"; sha256="0k8mjvs8vwgx98m19zk2ckyz5maf72px68kr0wniclmkapls3l0a"; depends=[dplyr tibble]; };
+  plgem = derive2 { name="plgem"; version="1.76.0"; sha256="0my4jpxw3xy9n40cqvdaz6ay7gpwshn2iqxr43knrk0ckpyxx2cr"; depends=[Biobase MASS]; };
+  plier = derive2 { name="plier"; version="1.74.0"; sha256="0svk8p4h212l3igfmrxhqi90xz74jicr5y780556k9bcj3jwqg5c"; depends=[affy Biobase]; };
+  plotGrouper = derive2 { name="plotGrouper"; version="1.22.0"; sha256="169786jrqbcf8qhysar22cb5am2zh6j7w601k9784b4ywhxh3ac0"; depends=[colourpicker dplyr egg ggplot2 ggpubr gridExtra gtable Hmisc magrittr readr readxl rlang scales shiny shinythemes stringr tibble tidyr]; };
+  plotgardener = derive2 { name="plotgardener"; version="1.10.1"; sha256="1pcjc4an5pspafb9pvmia73g8cdp6n2paz2m952p1xnwsp9ijsi7"; depends=[curl data_table dplyr GenomeInfoDb GenomicRanges ggplotify IRanges plyranges purrr RColorBrewer Rcpp rlang strawr withr]; };
+  plyinteractions = derive2 { name="plyinteractions"; version="1.2.0"; sha256="095sb616r5xwcbqsgw4b7kiywl6lbwp6rbs80qymglpqkbywwp7j"; depends=[BiocGenerics dplyr GenomeInfoDb GenomicRanges InteractionSet IRanges plyranges rlang S4Vectors tibble tidyselect]; };
+  plyranges = derive2 { name="plyranges"; version="1.24.0"; sha256="0rh5l6bd80nhffqpnnc2c00mvp8p32ykld05h94c3y8c9mvmsl58"; depends=[BiocGenerics dplyr GenomeInfoDb GenomicAlignments GenomicRanges IRanges magrittr rlang Rsamtools rtracklayer S4Vectors tidyselect]; };
+  pmm = derive2 { name="pmm"; version="1.36.0"; sha256="1qsv7mrz1w5msxkiqp1rvxy5cgfjkwm432c12rr3gm4z3jy1ma5h"; depends=[lme4]; };
+  pmp = derive2 { name="pmp"; version="1.16.0"; sha256="0ryjv1g63nzipym1ijln6nv2w5flv15030b9jp09ddi5p3hn5h1j"; depends=[ggplot2 impute matrixStats missForest pcaMethods reshape2 S4Vectors SummarizedExperiment]; };
+  podkat = derive2 { name="podkat"; version="1.36.0"; sha256="0bjan7w0mxylabvaf3c2nqv5yifddslhd4dh360il193qs07g72c"; depends=[Biobase BiocGenerics Biostrings BSgenome GenomeInfoDb GenomicRanges IRanges Matrix Rcpp Rhtslib Rsamtools]; };
+  pogos = derive2 { name="pogos"; version="1.24.0"; sha256="1i5cmz5icgmd2xd9r19i6xr9v4nydqpydbf84c8ann07p0qyg5b3"; depends=[ggplot2 httr ontoProc rjson S4Vectors shiny]; };
+  polyester = derive2 { name="polyester"; version="1.39.0"; sha256="0fw0qhmbygjq4ryspyqikb8rxfn33ks000j7sshgfg8hf2rmqg3x"; depends=[Biostrings IRanges limma logspline S4Vectors zlibbioc]; };
+  powerTCR = derive2 { name="powerTCR"; version="1.24.0"; sha256="04w6jhpc1vkqrm3dr5igp1iwkammmi53mqafjz694n379hamxrhg"; depends=[cubature doParallel evmix foreach magrittr purrr truncdist vegan VGAM]; };
+  ppcseq = derive2 { name="ppcseq"; version="1.12.0"; sha256="0b8s29zhw3s3nbxf57fa9cixfdwx0q4d3g4b6bi35fsr0r90a44q"; depends=[benchmarkme BH dplyr edgeR foreach ggplot2 lifecycle magrittr purrr Rcpp RcppEigen RcppParallel rlang rstan rstantools StanHeaders tibble tidybayes tidyr]; };
+  pqsfinder = derive2 { name="pqsfinder"; version="2.20.0"; sha256="0v2skn7c1vy7s8hbl92v9mq3ckp3xnyq0ijvmihzm5z8yz9bclx6"; depends=[BH Biostrings GenomicRanges IRanges Rcpp S4Vectors]; };
+  pram = derive2 { name="pram"; version="1.20.0"; sha256="0cc74whwnjgf8svfps2i0c9n243rzq15ffdwdwdd986mwn6v5kvv"; depends=[BiocGenerics BiocParallel data_table GenomeInfoDb GenomicAlignments GenomicRanges IRanges Rsamtools rtracklayer S4Vectors]; };
+  prebs = derive2 { name="prebs"; version="1.44.0"; sha256="0mzy2w5jq08370nl53ms2xadr46lc0hvlgv2kkw5ikjf58rsfgx7"; depends=[affy Biobase GenomeInfoDb GenomicAlignments GenomicRanges IRanges RPA S4Vectors]; };
+  preciseTAD = derive2 { name="preciseTAD"; version="1.14.0"; sha256="0gxq07q8nv2h0j20vsjgbah8121l79sxjhjg9rf79r73pmm1733f"; depends=[caret cluster dbscan doSNOW e1071 foreach GenomicRanges gtools IRanges ModelMetrics pbapply pROC PRROC randomForest rCGH S4Vectors]; };
+  preprocessCore = derive2 { name="preprocessCore"; version="1.66.0"; sha256="1cd91iakbpf2hjysc44sqqrah63cgq4fz3n8j81virfwl3ir95xm"; depends=[]; };
+  primirTSS = derive2 { name="primirTSS"; version="1.22.0"; sha256="1c932ynp5rsymz6z7m9v38fwm30gja7z60yq3xjwj6gxw1rf7sy5"; depends=[BiocGenerics Biostrings BSgenome_Hsapiens_UCSC_hg38 dplyr GenomicRanges GenomicScores Gviz IRanges JASPAR2018 phastCons100way_UCSC_hg38 purrr R_utils rtracklayer S4Vectors shiny stringr TFBSTools tibble tidyr]; };
+  proActiv = derive2 { name="proActiv"; version="1.14.0"; sha256="1x70jjym4220vkwzhr2cn4hjxvxdh2mhwfyd8rp3wp6gh7d9q87a"; depends=[AnnotationDbi BiocParallel data_table DESeq2 dplyr GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 gplots IRanges rlang S4Vectors scales SummarizedExperiment tibble txdbmaker]; };
+  proBAMr = derive2 { name="proBAMr"; version="1.38.0"; sha256="183wf1045s9ckkcwns33ps237cdip67kv9csx499h2aghhwwvf3y"; depends=[AnnotationDbi Biostrings GenomicFeatures GenomicRanges IRanges rtracklayer txdbmaker]; };
+  proDA = derive2 { name="proDA"; version="1.18.0"; sha256="1h3695q4al7pr3q1vj1qfiig6c5lhljxlvxpfbv6k0h987ha1fiw"; depends=[BiocGenerics extraDistr S4Vectors SummarizedExperiment]; };
+  procoil = derive2 { name="procoil"; version="2.32.0"; sha256="02p8dy3gi86zp5z842sjx3rcy8a7kvji8mg4xw5krzz4pkzjjk8y"; depends=[Biostrings kebabs S4Vectors]; };
+  profileScoreDist = derive2 { name="profileScoreDist"; version="1.32.0"; sha256="0sf2k2iccvfidy0sf2p4xi3bp5gd67izbr2075w302d8085rw1i7"; depends=[BiocGenerics Rcpp]; };
+  profileplyr = derive2 { name="profileplyr"; version="1.20.0"; sha256="1gpjmkn1s509smaal15rg3629y69vnxifhyfd8xa65x7m9v1fvbc"; depends=[BiocGenerics BiocParallel ChIPseeker circlize ComplexHeatmap dplyr EnrichedHeatmap GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 IRanges magrittr org_Hs_eg_db org_Mm_eg_db pheatmap R_utils rGREAT rjson rlang Rsamtools rtracklayer S4Vectors soGGi SummarizedExperiment tidyr tiff TxDb_Hsapiens_UCSC_hg19_knownGene TxDb_Hsapiens_UCSC_hg38_knownGene TxDb_Mmusculus_UCSC_mm10_knownGene TxDb_Mmusculus_UCSC_mm9_knownGene]; };
+  progeny = derive2 { name="progeny"; version="1.26.0"; sha256="1f5y1sza9vm7wqd4mp5g7sypc9kbf9zpl015rbl41wz4y3ai21sb"; depends=[Biobase decoupleR dplyr ggplot2 ggrepel gridExtra reshape2 tidyr]; };
+  projectR = derive2 { name="projectR"; version="1.20.0"; sha256="1c9v4iw8s4hm7wjdv3ir6df0yskz95b0wnpljiph4zv4h22q32ac"; depends=[cluster cowplot dplyr fgsea ggalluvial ggplot2 ggrepel limma Matrix MatrixModels msigdbr NMF RColorBrewer reshape2 ROCR scales tsne umap viridis]; };
+  protGear = derive2 { name="protGear"; version="1.8.0"; sha256="1wbdp7f55lbn0gcxgnp9xk0y5npn7jmk9vp7yq9v76j7f396vj2f"; depends=[Biobase data_table dplyr factoextra FactoMineR flexdashboard genefilter GGally ggplot2 ggpubr gtools htmltools Kendall knitr limma magrittr MASS pheatmap plotly plyr purrr readr remotes rlang rmarkdown shiny shinydashboard styler tibble tidyr vsn]; };
+  proteinProfiles = derive2 { name="proteinProfiles"; version="1.44.0"; sha256="1dmy2cmjxclnml8bci6ihw5ak4ibgah4r17yzy9ypas0y457ff5c"; depends=[]; };
+  psichomics = derive2 { name="psichomics"; version="1.30.0"; sha256="0nwfaw1a4mxdzqk0zqadxispdasx75nlb19zla753nmydxlpavj0"; depends=[AnnotationDbi AnnotationHub BiocFileCache cluster colourpicker data_table digest dplyr DT edgeR fastICA fastmatch ggplot2 ggrepel highcharter htmltools httr jsonlite limma pairsD3 plyr purrr R_utils Rcpp recount reshape2 Rfast shiny shinyBS shinyjs stringr SummarizedExperiment survival XML xtable]; };
+  psygenet2r = derive2 { name="psygenet2r"; version="1.36.0"; sha256="1khjid5lkkn5qpnk9adw1in4km41q067mj5r5yqs2iz5hv4vx6xv"; depends=[BgeeDB Biobase biomaRt ggplot2 GO_db igraph labeling RCurl reshape2 stringr topGO]; };
+  ptairMS = derive2 { name="ptairMS"; version="1.12.0"; sha256="0r0h4mdvhbrr3j78qzdcfw7q5q492wx9v78rg2xzw59ynqbyv3gg"; depends=[Biobase bit64 chron data_table doParallel DT enviPat foreach ggplot2 ggpubr gridExtra Hmisc minpack_lm MSnbase plotly Rcpp rhdf5 rlang scales shiny shinyscreenshot signal]; };
+  puma = derive2 { name="puma"; version="3.46.0"; sha256="1l6xvj6l9f5kmff3a5q7vzf2sssyhkqpa4im46g53jhkindbqwg6"; depends=[affy affyio Biobase mclust oligo oligoClasses]; };
+  pvac = derive2 { name="pvac"; version="1.52.0"; sha256="132hvlnp3cfxazvf0wq1q5v00q5x79fg60r7vsx07wi1vkjba3wg"; depends=[affy Biobase]; };
+  pvca = derive2 { name="pvca"; version="1.44.0"; sha256="0bk1nrjhn78wcbcawz8bx2lm3y45mhfv22yrrlxrz91sah9jjw27"; depends=[Biobase lme4 Matrix vsn]; };
+  pwOmics = derive2 { name="pwOmics"; version="1.36.0"; sha256="00c198vm7zzsq2a43c6iar5937556s65183wk1k7wy1zl8vqi8vg"; depends=[AnnotationDbi AnnotationHub Biobase BiocGenerics biomaRt data_table GenomicRanges gplots graph igraph rBiopaxParser STRINGdb]; };
+  pwalign = derive2 { name="pwalign"; version="1.0.0"; sha256="1m0j1m5jif5spd9fkpzz3z3c9s8vwiy8xvpx8rz8igxj89rwrwb7"; depends=[BiocGenerics Biostrings IRanges S4Vectors XVector]; };
+  qPLEXanalyzer = derive2 { name="qPLEXanalyzer"; version="1.22.0"; sha256="15cmfrp1hilqqkkxphd4lbqmk4mgv3s8ky76bnidfv58qc5pa940"; depends=[assertthat Biobase BiocGenerics Biostrings dplyr ggdendro ggplot2 IRanges limma magrittr MSnbase preprocessCore purrr RColorBrewer readr rlang scales stringr tibble tidyr tidyselect]; };
+  qckitfastq = derive2 { name="qckitfastq"; version="1.20.0"; sha256="0wb6r4mdh3zf3hic88cn9s22s0dn7h65gl4djwrcl5sm5b1a6sxm"; depends=[data_table dplyr ggplot2 magrittr Rcpp reshape2 rlang RSeqAn seqTools zlibbioc]; };
+  qcmetrics = derive2 { name="qcmetrics"; version="1.42.0"; sha256="0r7c67bjf9j7r9yciljx2sgnarrjaf1gazf6n8rjjar2jfmrsmrm"; depends=[Biobase knitr pander S4Vectors xtable]; };
+  qmtools = derive2 { name="qmtools"; version="1.8.0"; sha256="1w0kd1kawf0w4rmlz8pfnabagrjvnyql2bcs2f7nl7sp6q7sfvni"; depends=[ggplot2 heatmaply igraph limma MsCoreUtils patchwork rlang scales SummarizedExperiment VIM]; };
+  qpcrNorm = derive2 { name="qpcrNorm"; version="1.62.0"; sha256="1rcs9p5y50ynwmpxqwhigh9qxgs54shrglzjnakq08j24hxkyd2h"; depends=[affy Biobase limma]; };
+  qpgraph = derive2 { name="qpgraph"; version="2.38.0"; sha256="040haanlhmd11isghcrdidf2nal4195kskp0q8965x41fbdvsx37"; depends=[annotate AnnotationDbi Biobase BiocParallel GenomeInfoDb GenomicFeatures GenomicRanges graph IRanges Matrix mvtnorm qtl Rgraphviz S4Vectors]; };
+  qsea = derive2 { name="qsea"; version="1.30.0"; sha256="141fi7zk9czr4j1d0y1hk1hz33nq3k79cdkawp0x92nvja1n9njd"; depends=[BiocGenerics BiocParallel Biostrings BSgenome GenomeInfoDb GenomicRanges gtools HMMcopy IRanges limma Rsamtools rtracklayer S4Vectors zoo]; };
+  qsmooth = derive2 { name="qsmooth"; version="1.20.0"; sha256="16c7xjmgrqcklpirnwlqg92v4lj7f599ddl1w36xs8fmq7svz1lj"; depends=[Hmisc SummarizedExperiment sva]; };
+  qsvaR = derive2 { name="qsvaR"; version="1.8.0"; sha256="1ijmh0mby6j50icwlcfhn416x0cjj5y0v3qqjmcn4hx6395m90ma"; depends=[ggplot2 SummarizedExperiment sva]; };
+  quantiseqr = derive2 { name="quantiseqr"; version="1.12.0"; sha256="0d1afsz7hv4ixpicskzw564cq593jcfkix7rryq5lbj27rz5da3c"; depends=[Biobase ggplot2 limSolve MASS preprocessCore rlang SummarizedExperiment tidyr]; };
+  quantro = derive2 { name="quantro"; version="1.38.0"; sha256="0b8afvnczkhmbdg5zna2h5v42zdyvk1zybn9cwcbw22rijiysq99"; depends=[Biobase doParallel foreach ggplot2 iterators minfi RColorBrewer]; };
+  quantsmooth = derive2 { name="quantsmooth"; version="1.70.0"; sha256="1mgdrhq0j4b29l3y49h00ccwkz6vhs6hjb1236blmlzdf590q7gc"; depends=[quantreg]; };
+  qusage = derive2 { name="qusage"; version="2.38.0"; sha256="06hj1nvp5j4zdqj9v0gc42fd3403phb4gibra4fc1sxzrhi9nq92"; depends=[Biobase emmeans fftw limma nlme]; };
+  qvalue = derive2 { name="qvalue"; version="2.36.0"; sha256="1hgkrvbs1rf8db105ik9ar54zdx49v25hn71jgw7j5r43zngfg2a"; depends=[ggplot2 reshape2]; };
+  r3Cseq = derive2 { name="r3Cseq"; version="1.50.0"; sha256="02dc6milwymwj90x24fip8av84ik9dp69sg9g7l300kwyk0hcrb7"; depends=[Biostrings data_table GenomeInfoDb GenomicRanges IRanges qvalue RColorBrewer Rsamtools rtracklayer sqldf VGAM]; };
+  rBLAST = derive2 { name="rBLAST"; version="1.0.0"; sha256="1yhj08p6iyz2760j2z3v78mc4rzafd0lzfqprq3wd1v1bm34v3qb"; depends=[BiocFileCache Biostrings]; };
+  rBiopaxParser = derive2 { name="rBiopaxParser"; version="2.44.0"; sha256="0hzs6i7l8n1hifj3b91n1f6z3l40jdcl1jlnz8z5qczk84266lx2"; depends=[data_table XML]; };
+  rCGH = derive2 { name="rCGH"; version="1.34.0"; sha256="0241nrg1kcc6vxj1p6pp5gyjff7k3mdsr764bn3zxvh1wqjnvfrm"; depends=[aCGH affy AnnotationDbi DNAcopy GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 IRanges lattice limma mclust org_Hs_eg_db plyr shiny TxDb_Hsapiens_UCSC_hg18_knownGene TxDb_Hsapiens_UCSC_hg19_knownGene TxDb_Hsapiens_UCSC_hg38_knownGene]; };
+  rDGIdb = derive2 { name="rDGIdb"; version="1.30.0"; sha256="1v96nj1ffmg1678p7rspcqsnqvwcssv96jcyqqbb8v8sryflwmi5"; depends=[httr jsonlite]; };
+  rGADEM = derive2 { name="rGADEM"; version="2.52.0"; sha256="1d1vfnxj1p4y1074ybmkxv4x3v0i3sn5w3k4bddzlrqbzyb9kkna"; depends=[Biostrings BSgenome GenomicRanges IRanges seqLogo]; };
+  rGREAT = derive2 { name="rGREAT"; version="2.6.0"; sha256="0sszyfnnzzn5xhs39zgkzr7f3da820nxr6qaw68wknblgmyyddi8"; depends=[AnnotationDbi circlize digest doParallel DT foreach GenomeInfoDb GenomicFeatures GenomicRanges GetoptLong GlobalOptions GO_db IRanges org_Hs_eg_db progress RColorBrewer Rcpp RCurl rjson S4Vectors shiny TxDb_Hsapiens_UCSC_hg19_knownGene TxDb_Hsapiens_UCSC_hg38_knownGene]; };
+  rGenomeTracks = derive2 { name="rGenomeTracks"; version="1.10.0"; sha256="0a34xdmpj1872vxhd9a2k1rbzgvsmhisyy2pknbz606924k13xnz"; depends=[imager reticulate rGenomeTracksData]; };
+  rRDP = derive2 { name="rRDP"; version="1.38.0"; sha256="00r8cii5gnnzd909alq7cn94b3df66w6bcd7pld1jvdphxwgvp3l"; depends=[Biostrings rJava]; };
+  rSWeeP = derive2 { name="rSWeeP"; version="1.16.0"; sha256="0l9qpmbgq7pp0g3m2df881zif42d6dbbgkiri97zklndgyi035jp"; depends=[pracma]; };
+  rScudo = derive2 { name="rScudo"; version="1.20.0"; sha256="0mhhv5p1z334qn92bql4rsd8p0xpnhd26kzahwi4wqkkb6yqbn8y"; depends=[Biobase BiocGenerics igraph S4Vectors stringr SummarizedExperiment]; };
+  rTRM = derive2 { name="rTRM"; version="1.42.0"; sha256="016vhij3rc6sbhi7caxxnpps4w0w2n28x4hqwdxkxk6r0f6kkvla"; depends=[AnnotationDbi DBI igraph RSQLite]; };
+  rTRMui = derive2 { name="rTRMui"; version="1.42.0"; sha256="0d5gxjiddy57cbryjdihqyf7nkd35apk41wkl1izp467il40mb75"; depends=[MotifDb org_Hs_eg_db org_Mm_eg_db rTRM shiny]; };
+  rWikiPathways = derive2 { name="rWikiPathways"; version="1.24.0"; sha256="1m6djs70h58xs4323vp65j33i8mzql2sps9l04pgp28cs17yr4mc"; depends=[data_table dplyr httr lubridate purrr RCurl readr rjson stringr tidyr XML]; };
+  raer = derive2 { name="raer"; version="1.2.0"; sha256="0fxc1i3p1ha0yn6s5c334q2bv7mfwjd3yvlvss6whi16vi63kbwj"; depends=[BiocGenerics BiocParallel Biostrings BSgenome cli GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges IRanges Matrix Rhtslib Rsamtools rtracklayer S4Vectors SingleCellExperiment SummarizedExperiment]; };
+  rain = derive2 { name="rain"; version="1.38.0"; sha256="0wah5qiciwfcvdrii885dvsgbmq7lnjdpgdvzddprf6jwdsgq8w0"; depends=[gmp multtest]; };
+  ramr = derive2 { name="ramr"; version="1.12.0"; sha256="096rxydr9qilg4lcczab1xlzv5ff2lq9r5l6bdzyhprm07mglc80"; depends=[BiocGenerics doParallel doRNG EnvStats ExtDist foreach GenomicRanges ggplot2 IRanges matrixStats reshape2 S4Vectors]; };
+  ramwas = derive2 { name="ramwas"; version="1.28.0"; sha256="0azf24qvjy2dfizi0wp7lkrhjdm2xwwk6hmkg31ly501cjd4pn9s"; depends=[BiocGenerics biomaRt Biostrings digest filematrix GenomicAlignments glmnet KernSmooth Rsamtools]; };
+  randPack = derive2 { name="randPack"; version="1.50.0"; sha256="0byix4ipmd9wnknbzm4pjqp09yh9fa4cjky94p3l1gnbmg8kw48j"; depends=[Biobase]; };
+  randRotation = derive2 { name="randRotation"; version="1.16.0"; sha256="1wi9i8ssan3pfjikbjj5m3rs8lv52jdih0pxfk0rzahqak8m82db"; depends=[Rdpack]; };
+  rawDiag = derive2 { name="rawDiag"; version="1.0.0"; sha256="1rdccg67gkcxj7jgg0by1244x3794kz4s60l5ps54j41iy3zs0v2"; depends=[BiocManager BiocParallel dplyr ggplot2 hexbin htmltools rawrr reshape2 rlang scales shiny]; };
+  rawrr = derive2 { name="rawrr"; version="1.12.0"; sha256="1h8q9j8qiqrmk41j567dq53i1mbm89c9gcj9p8qjqcrjcvykg89f"; depends=[]; };
+  rbsurv = derive2 { name="rbsurv"; version="2.62.0"; sha256="1hj569n72bds094dfnr8bpfx1ca0sn4bax8lnjz03yz08kmrv8a6"; depends=[Biobase survival]; };
+  rcellminer = derive2 { name="rcellminer"; version="2.26.0"; sha256="0dxg050rw9p88hdv55v60fg2ijjl1dnzxq47xy60nrzpijcb3770"; depends=[Biobase ggplot2 gplots rcellminerData shiny stringr]; };
+  rebook = derive2 { name="rebook"; version="1.14.0"; sha256="0v59wr8862phlv4byy3j3l0spm7450vz218xffgwlkwixzw3hnnk"; depends=[BiocStyle CodeDepends dir_expiry filelock knitr rmarkdown]; };
+  receptLoss = derive2 { name="receptLoss"; version="1.16.0"; sha256="1c110rpfbi6rgl97659qx5qyj6wp6sqzddpnjg3bir21nh6902fl"; depends=[dplyr ggplot2 magrittr SummarizedExperiment tidyr]; };
+  reconsi = derive2 { name="reconsi"; version="1.16.0"; sha256="13xviw2qn8sk7ka6qskb39dsv9qz4vkfdydpzzvm14y6iy62zgzr"; depends=[ggplot2 ks Matrix matrixStats phyloseq reshape2]; };
+  recount = derive2 { name="recount"; version="1.30.2"; sha256="0fdnp0ilvxkzyzwblbchf6ns1v6fah32zyg3y68pz88ir5nwg49b"; depends=[BiocParallel derfinder downloader GenomeInfoDb GenomicRanges GEOquery IRanges RCurl rentrez rtracklayer S4Vectors SummarizedExperiment]; };
+  recount3 = derive2 { name="recount3"; version="1.14.0"; sha256="1dmc5s5mw95caq2pqpgik5z5nggy5mnas1dawssiyhr10wivnjd0"; depends=[BiocFileCache data_table GenomicRanges httr Matrix R_utils rtracklayer S4Vectors sessioninfo SummarizedExperiment]; };
+  recountmethylation = derive2 { name="recountmethylation"; version="1.14.0"; sha256="0cbp1cz6h1djwgrv2achgypmxiracrjm8y8sj1f9iqy6i1fgq8jl"; depends=[basilisk BiocFileCache DelayedMatrixStats HDF5Array minfi R_utils RCurl reticulate rhdf5 S4Vectors]; };
+  recoup = derive2 { name="recoup"; version="1.32.0"; sha256="07313l0b78x0m0vp8ipngzv069v7vjgr8q7vv4j9kbr33kql3bp6"; depends=[BiocGenerics biomaRt Biostrings circlize ComplexHeatmap GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 httr IRanges Rsamtools RSQLite rtracklayer S4Vectors stringr txdbmaker]; };
+  regionReport = derive2 { name="regionReport"; version="1.38.0"; sha256="1nxs0slhhnxpjg220irf0a6hsh1zp0xh54ffpvl25lzgy422xwpp"; depends=[BiocStyle DEFormats derfinder DESeq2 GenomeInfoDb GenomicRanges knitr knitrBootstrap RefManageR rmarkdown S4Vectors SummarizedExperiment]; };
+  regionalpcs = derive2 { name="regionalpcs"; version="1.2.0"; sha256="1hrmxb2ag0d823kn3ya07rwgfv931x2shqzdq3q310rw9jllcwgd"; depends=[dplyr GenomicRanges PCAtools tibble]; };
+  regioneR = derive2 { name="regioneR"; version="1.36.0"; sha256="1ygdlqvhf165mqd247783pi1yzidqap8b913444vrs881n62xvrb"; depends=[Biostrings BSgenome GenomeInfoDb GenomicRanges IRanges memoise rtracklayer S4Vectors]; };
+  regioneReloaded = derive2 { name="regioneReloaded"; version="1.6.0"; sha256="1yi97sarqljayqm5lwci0z768qk0vzqiazpx8j6lvpsqhrsgmcry"; depends=[cluster ggplot2 ggrepel RColorBrewer regioneR reshape2 Rtsne scales umap]; };
+  regsplice = derive2 { name="regsplice"; version="1.30.0"; sha256="0cmqigb2klpq7nqvhmvmyf9xzgjfvw22zpgpcjnlv24ga30sacak"; depends=[edgeR glmnet limma pbapply S4Vectors SummarizedExperiment]; };
+  regutools = derive2 { name="regutools"; version="1.16.0"; sha256="1ypy9nrafnr7ri4a2cz5akm78cdq0qahlmbcs8ylr97bimkdandk"; depends=[AnnotationDbi AnnotationHub BiocFileCache Biostrings DBI GenomicRanges Gviz IRanges RCy3 RSQLite S4Vectors]; };
+  retrofit = derive2 { name="retrofit"; version="1.4.0"; sha256="1dx2yfz7f18sknl75igmfzk3nfrp28pjkbkpn1w6zx1sbj6dbxsl"; depends=[Rcpp]; };
+  rexposome = derive2 { name="rexposome"; version="1.26.0"; sha256="13ivwypcw58bmlrps16anhxf0dxk8v16wyadwz4wds4rd0ihjvcz"; depends=[Biobase circlize corrplot FactoMineR ggplot2 ggrepel ggridges glmnet gplots gridExtra gtools Hmisc imputeLCMD lme4 lsr mice pryr reshape2 S4Vectors scales scatterplot3d stringr]; };
+  rfPred = derive2 { name="rfPred"; version="1.42.0"; sha256="02clazsix7n4nnz1kn7hkk48fggxp2bqf97xbzngnljskvlhnakb"; depends=[data_table GenomeInfoDb GenomicRanges IRanges Rsamtools]; };
+  rfaRm = derive2 { name="rfaRm"; version="1.16.0"; sha256="1c8kpcbwkz33cbc8xqfd5cqj1n979a9ijbj06nfgylkm71ma1682"; depends=[Biostrings data_table httr IRanges jsonlite magick rsvg rvest S4Vectors stringi xml2]; };
+  rgoslin = derive2 { name="rgoslin"; version="1.8.0"; sha256="0saxw5kppcw0hwjykgzx8873izbl509hq1ga8w9qg2c5zx5xahk9"; depends=[dplyr Rcpp]; };
+  rgsepd = derive2 { name="rgsepd"; version="1.36.0"; sha256="18r2naxir299k0gcd9j3a5rvdma590m06v38j8wiligsgw5cmkfg"; depends=[AnnotationDbi biomaRt DESeq2 GO_db goseq gplots org_Hs_eg_db SummarizedExperiment]; };
+  rhdf5 = derive2 { name="rhdf5"; version="2.48.0"; sha256="086bnwzmlwq3z9a4kb1rnzb2wnchhi4gvzpijhladgd83nqyb0wn"; depends=[rhdf5filters Rhdf5lib]; };
+  rhdf5client = derive2 { name="rhdf5client"; version="1.26.0"; sha256="17c8r361za3760lkik2b88c3m8zska33qam2iwbl5hw9yhkrl6ck"; depends=[data_table DelayedArray httr rjson]; };
+  rhdf5filters = derive2 { name="rhdf5filters"; version="1.16.0"; sha256="0fsfp34pfb5k030j7nfx9b9vsil02y85sv1dd1y0bfdxchi4bw8x"; depends=[Rhdf5lib]; };
+  riboSeqR = derive2 { name="riboSeqR"; version="1.38.0"; sha256="0p0q28n8hlai80pxxns9pzzg552pbwlxlph8zjf78bwbjagrfbz5"; depends=[abind baySeq GenomeInfoDb GenomicRanges IRanges Rsamtools S4Vectors seqLogo]; };
+  ribor = derive2 { name="ribor"; version="1.16.0"; sha256="0kymbmm96a7ccl0dz46sk0lzgf3n55qvdkywkj91kh0ddrsji0vi"; depends=[dplyr ggplot2 hash rhdf5 rlang S4Vectors tidyr yaml]; };
+  ribosomeProfilingQC = derive2 { name="ribosomeProfilingQC"; version="1.16.0"; sha256="0bblk7ncxdrbgmgcjvif9zgd1ynlh4205vlmgr42jbg5p1i7p3in"; depends=[AnnotationDbi BiocGenerics Biostrings BSgenome cluster EDASeq GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggExtra ggfittext ggplot2 ggrepel IRanges motifStack Rsamtools Rsubread rtracklayer RUVSeq S4Vectors scales txdbmaker XVector]; };
+  rifi = derive2 { name="rifi"; version="1.8.0"; sha256="0yajsqm27zy5imb719x8knsrn9rk85q98wc65xqmvj9bkqkjfvdl"; depends=[car cowplot doMC dplyr egg foreach ggplot2 nls2 nnet reshape2 rlang rtracklayer S4Vectors scales stringr SummarizedExperiment tibble]; };
+  rifiComparative = derive2 { name="rifiComparative"; version="1.4.0"; sha256="0isgcbmk7c99xhlasaaa2gyjf9827zfdq1vyf4xc21lyhv9q5j51"; depends=[cowplot devtools doMC dplyr DTA egg foreach ggplot2 ggrepel LSD nnet reshape2 rlang rtracklayer S4Vectors scales stringr SummarizedExperiment tibble writexl]; };
+  rmelting = derive2 { name="rmelting"; version="1.20.0"; sha256="1rk27wg4j8hldmrzcjymw3hhaq9cm4bjz5fqwjzx8kdrs94wwrid"; depends=[Rdpack rJava]; };
+  rmspc = derive2 { name="rmspc"; version="1.10.0"; sha256="0f9l8gbbd81ac871fbpknyxsjwy9l1xz3nfbvnic012gg33n6j4y"; depends=[BiocManager GenomicRanges processx rtracklayer stringr]; };
+  rnaEditr = derive2 { name="rnaEditr"; version="1.14.0"; sha256="1jghirl1iz11wm4sq8qvw2fvgha7q6ili6bddgpdfcn07abbkcsm"; depends=[BiocGenerics bumphunter corrplot GenomeInfoDb GenomicRanges IRanges logistf plyr S4Vectors survival]; };
+  rnaseqcomp = derive2 { name="rnaseqcomp"; version="1.34.0"; sha256="00lv24xxf9644gikb76wwk9bijfa3frpwb4n0cbq5fsx0b1288rs"; depends=[RColorBrewer]; };
+  roar = derive2 { name="roar"; version="1.40.0"; sha256="06d1w5kknm2mb6v6glmyd97n1a33529kgqkkyfbk277ikn45hi9f"; depends=[BiocGenerics GenomeInfoDb GenomicAlignments GenomicRanges IRanges rtracklayer S4Vectors SummarizedExperiment]; };
+  roastgsa = derive2 { name="roastgsa"; version="1.2.0"; sha256="00rxmlx94y03mkz5jbwqx4px1cwv63nblhj2yxidy2k5374fk7fy"; depends=[Biobase ggplot2 gplots limma RColorBrewer]; };
+  rols = derive2 { name="rols"; version="3.0.0"; sha256="04kpfb0vavlkxirl9hgl6wdqhy6kw6ly3fyk0jr85kdzdb8ss1xd"; depends=[Biobase BiocGenerics httr2 jsonlite]; };
+  ropls = derive2 { name="ropls"; version="1.36.0"; sha256="0cdkwzrbr6h1dfi3qdh629hi2jlm1hxgq4dvx4z3vc2r6w0c6m11"; depends=[Biobase ggplot2 MultiAssayExperiment MultiDataSet plotly SummarizedExperiment]; };
+  rprimer = derive2 { name="rprimer"; version="1.8.0"; sha256="04maldspcfzszvbgvzq4fmaf62639kb2rs2dqm9r9miqqxqndkr3"; depends=[Biostrings bslib DT ggplot2 IRanges mathjaxr patchwork reshape2 S4Vectors shiny shinycssloaders shinyFeedback]; };
+  rpx = derive2 { name="rpx"; version="2.12.0"; sha256="1a3rh2f9wwgcgadgb5ryj8vs9kcyhqwz7wdnykv2pl3pgm8ba2zp"; depends=[BiocFileCache curl jsonlite RCurl xml2]; };
+  rqubic = derive2 { name="rqubic"; version="1.50.0"; sha256="1hr0i7f8987x79ir34yg65bzkd7lij03rkfmw6dr289d8kjclap2"; depends=[biclust Biobase BiocGenerics]; };
+  rrvgo = derive2 { name="rrvgo"; version="1.16.0"; sha256="1339cxx5sizbdhhya1kxq9x31m2qvdl993abr4pn07hs3awya63p"; depends=[AnnotationDbi ggplot2 ggrepel GO_db GOSemSim pheatmap shiny tm treemap umap wordcloud]; };
+  rsbml = derive2 { name="rsbml"; version="2.62.0"; sha256="02pmxg0ppy1asjscp13kmqyj2phw4q138fj2b3xgmcagwxqzb4bs"; depends=[BiocGenerics graph]; };
+  rsemmed = derive2 { name="rsemmed"; version="1.14.0"; sha256="12m771wipjr823k88f38waqsm1nq7qig7200969g2dz8fiaaxjxx"; depends=[dplyr igraph magrittr stringr]; };
+  rtracklayer = derive2 { name="rtracklayer"; version="1.64.0"; sha256="0h2cqr1jqqqxvkmqpngfl8ppm1p65vvlb1wgfwl9r4f99b8vz33g"; depends=[BiocGenerics BiocIO Biostrings curl GenomeInfoDb GenomicAlignments GenomicRanges httr IRanges restfulr Rsamtools S4Vectors XML XVector zlibbioc]; };
+  runibic = derive2 { name="runibic"; version="1.26.0"; sha256="0q25b2dfgp82p156l37zzl5a842ah3hzq60f9gkcv4vqkns99z64"; depends=[biclust Rcpp SummarizedExperiment testthat]; };
+  sRACIPE = derive2 { name="sRACIPE"; version="1.20.0"; sha256="0kkfci9mifhb905c88cyfvwy6yacb1ar0ai6lcxhyx60bwnv6x7i"; depends=[BiocGenerics ggplot2 gplots gridExtra htmlwidgets MASS RColorBrewer Rcpp reshape2 S4Vectors SummarizedExperiment umap visNetwork]; };
+  sSNAPPY = derive2 { name="sSNAPPY"; version="1.8.0"; sha256="0ij3f7xax92jihzhf6axx7sq36jcnvyjfhgan1m1mcsaandb4d4k"; depends=[dplyr edgeR ggforce ggplot2 ggraph graphite gtools igraph magrittr org_Hs_eg_db pheatmap reshape2 rlang stringr SummarizedExperiment tibble tidyr]; };
+  sSeq = derive2 { name="sSeq"; version="1.42.0"; sha256="08wjz54qsgdwbf3rscb8mzqx2ffm62dm589zj4hflb1ayhgza2ai"; depends=[caTools RColorBrewer]; };
+  safe = derive2 { name="safe"; version="3.44.0"; sha256="1kxl9rqqpnihz5rhgv07q0vgqxpams4iyf2w11ffv59b2gi1brrr"; depends=[AnnotationDbi Biobase SparseM]; };
+  sagenhaft = derive2 { name="sagenhaft"; version="1.74.0"; sha256="1gqil6dqjrqlxnj8sfhwi2izmqcj9i6id3wfskvkn3xw12hk3cnp"; depends=[SparseM]; };
+  sampleClassifier = derive2 { name="sampleClassifier"; version="1.28.0"; sha256="12c8di5xw7q3a78z75labq3qzwsnk7s1xr5c75xsy8k2f04npn0z"; depends=[annotate e1071 ggplot2 MGFM MGFR]; };
+  sangeranalyseR = derive2 { name="sangeranalyseR"; version="1.14.0"; sha256="1l5capnvhd78lzaiv44q9qiw9vdlnygmflmrqyv3ck3qk59hwsaw"; depends=[ape BiocStyle Biostrings data_table DECIPHER DT excelR ggdendro gridExtra knitr logger openxlsx plotly pwalign reshape2 rmarkdown sangerseqR seqinr shiny shinycssloaders shinydashboard shinyjs shinyWidgets stringr zeallot]; };
+  sangerseqR = derive2 { name="sangerseqR"; version="1.40.0"; sha256="01z2b7950yxhv8p73rfmq84bscrlpl956ihfyarnzdq9v9ljzzd9"; depends=[Biostrings pwalign shiny stringr]; };
+  sarks = derive2 { name="sarks"; version="1.16.0"; sha256="1ayfxfgk1zwmychdlhbq3can76swa127z5r587frs3c23zbm8qi2"; depends=[binom Biostrings cluster IRanges rJava]; };
+  saseR = derive2 { name="saseR"; version="1.0.0"; sha256="1ibr75zm09h9cwzizljlv33s09y2jz2fasnblhmm59xdb8gwl7vg"; depends=[ASpli BiocGenerics BiocParallel data_table DESeq2 DEXSeq dplyr edgeR GenomicAlignments GenomicFeatures GenomicRanges igraph IRanges knitr limma MASS MatrixGenerics pracma precrec PRROC rrcov S4Vectors SummarizedExperiment]; };
+  satuRn = derive2 { name="satuRn"; version="1.12.0"; sha256="03mlb4j219w8760zm5hnryjwxns3qz9y3wl6zaqdfnl94bwyl9r8"; depends=[BiocParallel boot ggplot2 limma locfdr Matrix pbapply SummarizedExperiment]; };
+  scAnnotatR = derive2 { name="scAnnotatR"; version="1.10.0"; sha256="1gzssp7im1d9pp2mbar27k854fcc3rqyza5d77flmhshq88xrskv"; depends=[AnnotationHub ape caret data_tree dplyr e1071 ggplot2 kernlab pROC ROCR Seurat SingleCellExperiment SummarizedExperiment]; };
+  scBFA = derive2 { name="scBFA"; version="1.18.0"; sha256="0zq4xnvzlprhlv2n7d41ikms6cmwvm51sn3f61841ch6hdfai7my"; depends=[copula DESeq2 ggplot2 MASS Matrix Seurat SingleCellExperiment SummarizedExperiment zinbwave]; };
+  scBubbletree = derive2 { name="scBubbletree"; version="1.6.0"; sha256="0adzmw4bzs1a857bwwq63niwgn5wm3mdqxbqhily49h7yxnf3rv7"; depends=[ape future future_apply ggplot2 ggtree patchwork proxy reshape2 scales Seurat]; };
+  scCB2 = derive2 { name="scCB2"; version="1.14.0"; sha256="1iwcx1wra4f3lnqsmbs5m0agd6ffmpmdwn767n8q0qgvy8sdjaw0"; depends=[doParallel DropletUtils edgeR foreach iterators Matrix rhdf5 Seurat SingleCellExperiment SummarizedExperiment]; };
+  scDD = derive2 { name="scDD"; version="1.28.0"; sha256="106hawmyln6xj9m2npibb4lkd8qvz60lwjabhn3cpx3908x88ryb"; depends=[arm BiocParallel EBSeq fields ggplot2 mclust outliers S4Vectors scran SingleCellExperiment SummarizedExperiment]; };
+  scDDboost = derive2 { name="scDDboost"; version="1.6.0"; sha256="0q4vrrcnnhwb3r9jn13d1wsjn9mxai39pxaa9lf6zmg1v17aqmhg"; depends=[BH BiocParallel cluster EBSeq ggplot2 mclust Oscope Rcpp RcppEigen SingleCellExperiment SummarizedExperiment]; };
+  scDataviz = derive2 { name="scDataviz"; version="1.14.0"; sha256="1njm8ym44ml51sbz001niclmkl4q78yid8ik76j9xnwldd9cb2c8"; depends=[corrplot flowCore ggplot2 ggrepel MASS matrixStats RColorBrewer reshape2 S4Vectors scales Seurat SingleCellExperiment umap]; };
+  scDblFinder = derive2 { name="scDblFinder"; version="1.18.0"; sha256="1np3arhjxxgif68i0wi0nqqbrwavy14dh9vy2g9mw4408k7789w0"; depends=[BiocGenerics BiocNeighbors BiocParallel BiocSingular bluster DelayedArray GenomeInfoDb GenomicRanges igraph IRanges MASS Matrix Rsamtools rtracklayer S4Vectors scater scran scuttle SingleCellExperiment SummarizedExperiment xgboost]; };
+  scDesign3 = derive2 { name="scDesign3"; version="1.2.0"; sha256="0jf8g5llkcashxsjsm39fivdqpyjx40gn362yzpwcfh81f4x95x1"; depends=[BiocParallel coop dplyr gamlss gamlss_dist ggplot2 irlba Matrix matrixStats mclust mgcv mvtnorm pbmcapply rvinecopulib SingleCellExperiment sparseMVN SummarizedExperiment tibble umap viridis]; };
+  scFeatureFilter = derive2 { name="scFeatureFilter"; version="1.24.0"; sha256="1lxgk9dki9l4qjgm3myqrjg59a4avd2h6phaibxk28rsh7agzw5h"; depends=[dplyr ggplot2 magrittr rlang tibble]; };
+  scFeatures = derive2 { name="scFeatures"; version="1.4.0"; sha256="178xpi6r1avbp4g9v5yd46jhnra6md47mljpn9y8a5991wh0rc4i"; depends=[ape AUCell BiocParallel cli DelayedArray DelayedMatrixStats dplyr DT EnsDb_Hsapiens_v79 EnsDb_Mmusculus_v79 ensembldb glue GSVA gtools MatrixGenerics msigdbr proxyC reshape2 rmarkdown Seurat SingleCellSignalR spatstat_explore spatstat_geom tidyr]; };
+  scGPS = derive2 { name="scGPS"; version="1.18.0"; sha256="1l4rn2amrgih6fi3dshxdjgmvimv93qfan6asy77lgaf8vwa7rlh"; depends=[caret DESeq2 dplyr dynamicTreeCut fastcluster ggplot2 glmnet locfit Rcpp RcppArmadillo RcppParallel SingleCellExperiment SummarizedExperiment]; };
+  scHOT = derive2 { name="scHOT"; version="1.16.0"; sha256="07sk0yn5ji2avhmdwyzdl466pqncvij1zf0yicw5lpb62f1ac446"; depends=[BiocParallel ggforce ggplot2 igraph IRanges Matrix reshape S4Vectors SingleCellExperiment SummarizedExperiment]; };
+  scMET = derive2 { name="scMET"; version="1.6.0"; sha256="1v0x40720npv2c468mhydycrhff9bz2c8m35n3j4y7bja05qaazx"; depends=[assertthat BH BiocStyle coda cowplot data_table dplyr ggplot2 logitnorm MASS Matrix matrixStats Rcpp RcppEigen RcppParallel rstan rstantools S4Vectors SingleCellExperiment StanHeaders SummarizedExperiment VGAM viridis]; };
+  scMerge = derive2 { name="scMerge"; version="1.20.0"; sha256="0v344a2r7hw0x3b3192796sa922sc3jgi7z7pzbx6pcn4c5c9zw4"; depends=[batchelor BiocNeighbors BiocParallel BiocSingular cluster cvTools DelayedArray DelayedMatrixStats distr igraph M3Drop proxyC ruv S4Vectors scater scran SingleCellExperiment SummarizedExperiment]; };
+  scMitoMut = derive2 { name="scMitoMut"; version="1.0.0"; sha256="143h22x71pgmzky1z6g6qvqq1qcb1852341sfsv4dwj2w5j00njm"; depends=[data_table ggplot2 magrittr pheatmap plyr RColorBrewer Rcpp RcppArmadillo readr rhdf5 stringr zlibbioc]; };
+  scMultiSim = derive2 { name="scMultiSim"; version="1.0.0"; sha256="16kdxksszq0zhl7z1xavsr5s5fq9259g86pfbg2bqdwqhl1xgf70"; depends=[ape assertthat crayon dplyr foreach ggplot2 gplots igraph KernelKnn markdown MASS matrixStats phytools rlang Rtsne SummarizedExperiment zeallot]; };
+  scPCA = derive2 { name="scPCA"; version="1.18.0"; sha256="00lfwv1l9w9wjqqpgy9hx2sxb7lps7av3lpr5670c2ncf30jm68m"; depends=[assertthat BiocParallel cluster coop DelayedArray dplyr elasticnet kernlab Matrix MatrixGenerics matrixStats origami purrr Rdpack RSpectra ScaledMatrix sparsepca stringr tibble]; };
+  scPipe = derive2 { name="scPipe"; version="2.4.0"; sha256="0n786qxxkfiag88fi4bsf9vgmvx179cxfah6sld5ij34vq224809"; depends=[AnnotationDbi basilisk BiocGenerics biomaRt Biostrings data_table dplyr DropletUtils flexmix GenomicAlignments GenomicRanges GGally ggplot2 glue hash IRanges magrittr MASS Matrix mclust MultiAssayExperiment org_Hs_eg_db org_Mm_eg_db purrr Rcpp reshape reticulate Rhtslib rlang robustbase Rsamtools Rsubread rtracklayer S4Vectors scales SingleCellExperiment stringr SummarizedExperiment testthat tibble tidyr vctrs zlibbioc]; };
+  scRNAseqApp = derive2 { name="scRNAseqApp"; version="1.4.0"; sha256="19wwsmslhya3m5qmqyg6pmm510r0zrh8480h1z8b7jcmkkhyla81"; depends=[bibtex bslib circlize ComplexHeatmap data_table DBI DT GenomeInfoDb GenomicRanges ggdendro ggforce ggplot2 ggrepel ggridges gridExtra htmltools IRanges jsonlite magrittr patchwork plotly RColorBrewer RefManageR rhdf5 Rsamtools RSQLite rtracklayer S4Vectors scales scrypt Seurat SeuratObject shiny shinyhelper shinymanager SingleCellExperiment slingshot sortable xfun xml2]; };
+  scReClassify = derive2 { name="scReClassify"; version="1.10.0"; sha256="1m7l19kyfnwzk2wcmc9v5xmssfx1nm4v00z986s4xx7mhhx05dki"; depends=[e1071 randomForest SingleCellExperiment SummarizedExperiment]; };
+  scRecover = derive2 { name="scRecover"; version="1.20.0"; sha256="0nxxsgm7sr4mlskgflbf3xi322j67zfdvbk6vxwwp5bxil2r0m13"; depends=[bbmle BiocParallel doParallel foreach gamlss kernlab MASS Matrix penalized preseqR pscl rsvd SAVER]; };
+  scRepertoire = derive2 { name="scRepertoire"; version="2.0.0"; sha256="1ifnyfzswisacvxxf041l1snfv1b8x30pjg2pwampg804c56f1wj"; depends=[cubature dplyr evmix ggalluvial ggdendro ggplot2 ggraph hash igraph iNEXT plyr quantreg Rcpp reshape2 rjson rlang S4Vectors SeuratObject SingleCellExperiment stringdist stringr SummarizedExperiment tidygraph truncdist VGAM]; };
+  scShapes = derive2 { name="scShapes"; version="1.10.0"; sha256="003948wggm6hss2yl9hizil0jv78yd3jipvrs9js8c93fp78cbrw"; depends=[BiocParallel dgof emdbook magrittr MASS Matrix pscl VGAM]; };
+  scTGIF = derive2 { name="scTGIF"; version="1.18.0"; sha256="13sj8gqmjaq2qcap7dh8gb2di4v59qw3g7l7ryc7crfmj7c9wipd"; depends=[Biobase BiocStyle ggplot2 GSEABase igraph knitr msigdbr nnTensor plotly RColorBrewer Rcpp rmarkdown S4Vectors scales schex SingleCellExperiment SummarizedExperiment tagcloud tibble]; };
+  scTHI = derive2 { name="scTHI"; version="1.16.0"; sha256="0p9k1fh4k2gqv326vfxshmcwsqpyz5zhsr0xnzw9iz7rykpf7m81"; depends=[BiocParallel Rtsne]; };
+  scTensor = derive2 { name="scTensor"; version="2.14.0"; sha256="1s4ayn2wx63zfqj6vh2zmnb6a3khwfwq5s7jsllgdwcxq8039i11"; depends=[abind AnnotationDbi AnnotationHub BiocManager BiocStyle Category ccTensor checkmate crayon DOSE ggplot2 GOstats heatmaply igraph knitr MeSHDbi meshr nnTensor outliers plotly plotrix reactome_db ReactomePA rmarkdown RSQLite rTensor S4Vectors schex SingleCellExperiment SummarizedExperiment tagcloud visNetwork]; };
+  scTreeViz = derive2 { name="scTreeViz"; version="1.10.0"; sha256="1vmqd4bml6ikpbbd90kqrrfhi1bkv9vdjlxcai588807vcckg54a"; depends=[clustree data_table digest epivizr epivizrData epivizrServer ggplot2 ggraph httr igraph Matrix Rtsne S4Vectors scater scran Seurat SingleCellExperiment SummarizedExperiment sys]; };
+  scanMiR = derive2 { name="scanMiR"; version="1.10.0"; sha256="1nmkfpkvq3qbgnql8c7glmxjyszwqp546v1ah78crnn3lnqkdchx"; depends=[BiocParallel Biostrings cowplot data_table GenomeInfoDb GenomicRanges ggplot2 IRanges pwalign S4Vectors seqLogo stringi]; };
+  scanMiRApp = derive2 { name="scanMiRApp"; version="1.10.0"; sha256="12id6sla58gk1xj56vh7aamkrplx85f2am58brq3p384z5inx9kj"; depends=[AnnotationDbi AnnotationFilter AnnotationHub BiocParallel Biostrings data_table digest DT ensembldb fst GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 htmlwidgets IRanges Matrix plotly rintrojs rtracklayer S4Vectors scanMiR scanMiRData shiny shinycssloaders shinydashboard shinyjqui txdbmaker waiter]; };
+  scater = derive2 { name="scater"; version="1.32.0"; sha256="096crwk5a9i7h2pykyi6vgnrnxas9wdz5dx920yh74smyh527jiq"; depends=[beachmat BiocGenerics BiocNeighbors BiocParallel BiocSingular DelayedArray ggbeeswarm ggplot2 ggrastr ggrepel Matrix MatrixGenerics pheatmap RColorBrewer RcppML rlang Rtsne S4Vectors scuttle SingleCellExperiment SummarizedExperiment uwot viridis]; };
+  scatterHatch = derive2 { name="scatterHatch"; version="1.10.0"; sha256="1pxax6kyh5izn00g3vp1b94zcsm1qg7sq2f307zg8v3i53sajl54"; depends=[ggplot2 plyr spatstat_geom]; };
+  sccomp = derive2 { name="sccomp"; version="1.8.0"; sha256="1dgv5pyf765p84i070fwdmhj1878rcimzjd6n3kx8j5r7mv10ff5"; depends=[BH boot dplyr forcats ggplot2 ggrepel glue lifecycle magrittr patchwork purrr Rcpp RcppEigen RcppParallel readr rlang rstan rstantools scales SeuratObject SingleCellExperiment StanHeaders stringr tibble tidyr tidyselect]; };
+  scde = derive2 { name="scde"; version="2.32.0"; sha256="0s54h3p8kvlk7imv8w8m1gwslyahn6jrggpkbgga5z7mqakvag6c"; depends=[BiocParallel Cairo edgeR extRemes flexmix MASS mgcv nnet pcaMethods quantreg RColorBrewer Rcpp RcppArmadillo rjson RMTstat Rook]; };
+  scds = derive2 { name="scds"; version="1.20.0"; sha256="19xma4kmx8s6m6dvqyw461ahqyfqb7z3n5dz4ppab4xcpmqvx0vh"; depends=[dplyr Matrix pROC S4Vectors SingleCellExperiment SummarizedExperiment xgboost]; };
+  schex = derive2 { name="schex"; version="1.18.0"; sha256="1wb3sksxvj08zqg34scwg1xrzj3hdk2jmyqswd03cjppyjy3ysq6"; depends=[cluster concaveman dplyr entropy ggforce ggplot2 hexbin rlang SingleCellExperiment]; };
+  scider = derive2 { name="scider"; version="1.2.0"; sha256="0i1p5pf6jc2f39cfmi5d8ifc7lb5n7m7k0lkgif5vhm2z4nfhrnf"; depends=[ggplot2 igraph isoband janitor knitr lwgeom pheatmap plotly rlang S4Vectors sf shiny SpatialExperiment spatstat_explore spatstat_geom SummarizedExperiment]; };
+  scifer = derive2 { name="scifer"; version="1.6.0"; sha256="022dn1492hjiyxxq0mqhvs299lgzg26jik7y5brh0i0ajj1j63fv"; depends=[Biostrings data_table DECIPHER dplyr flowCore ggplot2 gridExtra kableExtra knitr plyr rlang rmarkdown sangerseqR scales stringr tibble]; };
+  scmap = derive2 { name="scmap"; version="1.26.0"; sha256="0acy3sg4j36znsfxpkb190wbawbngx15cr5x2lhgrjivvw3637x1"; depends=[Biobase BiocGenerics dplyr e1071 ggplot2 googleVis matrixStats proxy randomForest Rcpp RcppArmadillo reshape2 S4Vectors SingleCellExperiment SummarizedExperiment]; };
+  scmeth = derive2 { name="scmeth"; version="1.24.0"; sha256="1yrww6b0lnh4831iw9adjimdazfa3f1w66pypzi99ywdcbdyksg8"; depends=[AnnotationHub annotatr Biostrings BSgenome bsseq DelayedArray DT GenomeInfoDb GenomicRanges HDF5Array knitr reshape2 rmarkdown SummarizedExperiment]; };
+  scone = derive2 { name="scone"; version="1.28.0"; sha256="1qvnc6cds3avxh1k4z47vb2fih7q8a5b9hccnyrpfks5c0sd6yi0"; depends=[aroma_light BiocParallel boot class cluster compositions diptest edgeR fpc gplots hexbin limma MatrixGenerics matrixStats mixtools rARPACK RColorBrewer rhdf5 RUVSeq SingleCellExperiment SummarizedExperiment]; };
+  scoreInvHap = derive2 { name="scoreInvHap"; version="1.26.0"; sha256="0sdawb2xsrwyqsk18rfzpk7f5ryl3pznawz3b6v5s143vg3d7s84"; depends=[BiocParallel Biostrings GenomicRanges snpStats SummarizedExperiment VariantAnnotation]; };
+  scp = derive2 { name="scp"; version="1.14.0"; sha256="1b8hfvjpvni672qz6y53sy2wxbrn8anpanjd9qnixxisg94c66qj"; depends=[dplyr ggplot2 ggrepel IHW matrixStats metapod MsCoreUtils MultiAssayExperiment nipals QFeatures RColorBrewer S4Vectors SingleCellExperiment SummarizedExperiment]; };
+  scran = derive2 { name="scran"; version="1.32.0"; sha256="0s1y2q4v596wxh8p5sr43mk9cnsc4kg36ld7vx71hbn3hwscqaa1"; depends=[beachmat BH BiocGenerics BiocParallel BiocSingular bluster DelayedArray DelayedMatrixStats dqrng edgeR igraph limma Matrix metapod Rcpp S4Vectors scuttle SingleCellExperiment statmod SummarizedExperiment]; };
+  screenCounter = derive2 { name="screenCounter"; version="1.4.0"; sha256="0xq6ay76lnbbdibvyvkfk0nb8i8hxmvnxb4gfi2sj4ggsrz49rcz"; depends=[BiocParallel Rcpp S4Vectors SummarizedExperiment zlibbioc]; };
+  scruff = derive2 { name="scruff"; version="1.22.0"; sha256="0gw8xj4agiz1j5lwp5zpa6m5k9wkkzrvcyzrrnqva1768v8123vb"; depends=[AnnotationDbi BiocGenerics BiocParallel Biostrings data_table GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggbio ggplot2 ggthemes parallelly plyr Rsamtools Rsubread rtracklayer S4Vectors scales ShortRead SingleCellExperiment stringdist SummarizedExperiment txdbmaker]; };
+  scry = derive2 { name="scry"; version="1.16.0"; sha256="16489ff1nc798nfcmqvqaczm7hqffkhpad1dfgr7dxlahd8sbnw9"; depends=[BiocSingular DelayedArray glmpca Matrix SingleCellExperiment SummarizedExperiment]; };
+  scuttle = derive2 { name="scuttle"; version="1.14.0"; sha256="1cja56k5y5vi1x0jdxaxvh13fc2lzh8g30gp294pz6p61prrf3ws"; depends=[beachmat BiocGenerics BiocParallel DelayedArray DelayedMatrixStats GenomicRanges Matrix Rcpp S4Vectors SingleCellExperiment SummarizedExperiment]; };
+  scviR = derive2 { name="scviR"; version="1.4.0"; sha256="0691v3kyhazmhzr2nqzc1inbc7i1kdjv4y94wl96fd20d48ypqhp"; depends=[basilisk BiocFileCache limma MatrixGenerics pheatmap reticulate S4Vectors scater shiny SingleCellExperiment SummarizedExperiment]; };
+  sechm = derive2 { name="sechm"; version="1.12.0"; sha256="0ig46ikddqqd9sclbxrv1gffc6snz0h7pindfw06cdk2i4dsan30"; depends=[circlize ComplexHeatmap matrixStats randomcoloR S4Vectors seriation SummarizedExperiment]; };
+  segmentSeq = derive2 { name="segmentSeq"; version="2.38.0"; sha256="114sv9k2zlgsg82z57wwnp74hmq8p22gy5dg8my91xb3rzv3h8xw"; depends=[abind baySeq GenomeInfoDb GenomicRanges IRanges Rsamtools S4Vectors ShortRead]; };
+  segmenter = derive2 { name="segmenter"; version="1.10.0"; sha256="0s4iphqgwdr0shg71gr273s20q9vrzhxq3nfqqv494z7raycf1qy"; depends=[bamsignals ChIPseeker chromhmmData ComplexHeatmap GenomicRanges IRanges S4Vectors SummarizedExperiment]; };
+  selectKSigs = derive2 { name="selectKSigs"; version="1.16.0"; sha256="16cq4pg402a64vp0r1k9m91jqbdzij3la9gbzqqjc2vyr742yl14"; depends=[gtools HiLDA magrittr Rcpp]; };
+  semisup = derive2 { name="semisup"; version="1.28.0"; sha256="0pmbjlgaqs9mbmyzg1d85ifp8pbjicyqs23jw8nnhlsrmpjgcywx"; depends=[VGAM]; };
+  seq_hotSPOT = derive2 { name="seq.hotSPOT"; version="1.4.0"; sha256="0wyl4z54w1rk54c5sf3wvjg1sjpin0pj6j8j42g4a2zjkvvi5bva"; depends=[hash R_utils]; };
+  seq2pathway = derive2 { name="seq2pathway"; version="1.36.0"; sha256="0l1a53m4gjbgf6f53nndzdxldvi0j7xawd7m05wr23v64qd8a0ng"; depends=[biomaRt GenomicRanges GSA nnet seq2pathway_data WGCNA]; };
+  seqArchR = derive2 { name="seqArchR"; version="1.8.0"; sha256="0q0ip73hvjq2j39mznd980fyvbwm9yb4ihk8yihv97i8h559ml9w"; depends=[BiocParallel Biostrings cli cluster cvTools fpc ggplot2 ggseqlogo MASS Matrix matrixStats prettyunits reshape2 reticulate]; };
+  seqArchRplus = derive2 { name="seqArchRplus"; version="1.4.0"; sha256="0wk87l3346v6fm77pywrwcfhwbvswkrxv79809c0wycn84qlqd0p"; depends=[BiocParallel Biostrings BSgenome ChIPseeker cli clusterProfiler cowplot factoextra GenomeInfoDb GenomicRanges ggimage ggplot2 gridExtra heatmaps IRanges magick RColorBrewer S4Vectors scales seqArchR seqPattern]; };
+  seqCAT = derive2 { name="seqCAT"; version="1.26.0"; sha256="1b9y45src6yfz8fmiihp6p2s76gz1nva5swnf8fbar4mranfwi73"; depends=[dplyr GenomeInfoDb GenomicRanges ggplot2 IRanges rlang rtracklayer S4Vectors scales SummarizedExperiment tidyr VariantAnnotation]; };
+  seqLogo = derive2 { name="seqLogo"; version="1.70.0"; sha256="154c3g4i6snsi8vkwjw4d8lyr3372d6vyw237nslw1y5n837yzir"; depends=[]; };
+  seqPattern = derive2 { name="seqPattern"; version="1.36.0"; sha256="0iv0dhs1z8i0jglh1iw6ypzh6qslnn5xly2kjfxaxk9cggnjb5h6"; depends=[Biostrings GenomicRanges IRanges KernSmooth plotrix]; };
+  seqTools = derive2 { name="seqTools"; version="1.38.0"; sha256="0sc2siflk12dnmmqsb0gfbncyh5w6cv58dba304ig7rg3vsk3277"; depends=[zlibbioc]; };
+  seqcombo = derive2 { name="seqcombo"; version="1.26.0"; sha256="119wpz4rl5fyhc60myaw9d498n19pshnwwrmxkqx8pnqz9g6jjpq"; depends=[ggplot2 igraph yulab_utils]; };
+  seqsetvis = derive2 { name="seqsetvis"; version="1.24.0"; sha256="1aazar9k36hwlx9fq6iyd7f6g764nih9f0phl0sla7gizrmpwsms"; depends=[cowplot data_table eulerr GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 ggplotify IRanges limma pbapply pbmcapply png RColorBrewer Rsamtools rtracklayer S4Vectors scales UpSetR]; };
+  sesame = derive2 { name="sesame"; version="1.22.1"; sha256="07c7g493fiv13hxmfki1s450rganmyiwvdjhz6aqrbi2b9w08w4n"; depends=[BiocFileCache BiocParallel dplyr GenomeInfoDb GenomicRanges ggplot2 IRanges MASS preprocessCore readr reshape2 S4Vectors sesameData stringr SummarizedExperiment tibble wheatmap]; };
+  sevenC = derive2 { name="sevenC"; version="1.24.0"; sha256="0x1r6zbwl6shhzf2xc7lp06dvlhqhgh70i71fwn25lndwyhkw280"; depends=[BiocGenerics boot data_table GenomeInfoDb GenomicRanges InteractionSet IRanges purrr readr rtracklayer S4Vectors]; };
+  sevenbridges = derive2 { name="sevenbridges"; version="1.34.0"; sha256="0vy7vz87z371q2plhxkp5src6la6hj1w7bd4xkqbm3nmym2p32pb"; depends=[curl data_table docopt httr jsonlite objectProperties S4Vectors stringr uuid yaml]; };
+  shiny_gosling = derive2 { name="shiny.gosling"; version="1.0.1"; sha256="1dig8hv7pw3p6ra1z76mg7sfbvdrdaprsix9i60503sriqs3arv2"; depends=[digest fs htmltools jsonlite rjson rlang shiny shiny_react]; };
+  shinyMethyl = derive2 { name="shinyMethyl"; version="1.40.0"; sha256="15r9x1fqladjviyisbhr8zff0a6g9kvbvx72xcp3bfadp3wpygds"; depends=[Biobase BiocGenerics htmltools MatrixGenerics minfi RColorBrewer shiny]; };
+  shinyepico = derive2 { name="shinyepico"; version="1.12.0"; sha256="0k6h2n8dy66k1vl5mrag45z5knhgn9xbim5b0nbrzh9pwi687nc1"; depends=[data_table doParallel dplyr DT foreach GenomicRanges ggplot2 gplots heatmaply limma minfi plotly reshape2 rlang rmarkdown rtracklayer shiny shinycssloaders shinyjs shinythemes shinyWidgets statmod tidyr zip]; };
+  sigFeature = derive2 { name="sigFeature"; version="1.22.0"; sha256="0hgdzjlxxsxmrjrdlzabssdisn1rmi6h9nd37gid4dbr8xd1ibyh"; depends=[BiocParallel biocViews e1071 Matrix nlme openxlsx pheatmap RColorBrewer SparseM SummarizedExperiment]; };
+  siggenes = derive2 { name="siggenes"; version="1.78.0"; sha256="0j4nhdq82dzr19x5w4w4l97clra0z1kk6n24x56hrrj0xlm2cgnm"; depends=[Biobase multtest scrime]; };
+  sights = derive2 { name="sights"; version="1.30.0"; sha256="0kr52ng79wz6rh0rhk5kmjskn04xr89h14bdhryyzkhq80v0c2k8"; depends=[ggplot2 lattice MASS qvalue reshape2]; };
+  signatureSearch = derive2 { name="signatureSearch"; version="1.18.0"; sha256="1b32n67f5c804xxbpwxpykjhakixzf5zd1zbgwj976lvdb2adl34"; depends=[AnnotationDbi BiocGenerics BiocParallel clusterProfiler data_table DelayedArray DOSE dplyr ExperimentHub fastmatch fgsea ggplot2 GSEABase HDF5Array magrittr Matrix org_Hs_eg_db qvalue Rcpp reactome_db readr reshape2 rhdf5 RSQLite scales SummarizedExperiment tibble visNetwork]; };
+  signeR = derive2 { name="signeR"; version="2.6.0"; sha256="0jc9z48sgzjgxdidp9qhn4ccnx7jjlj0xnfrwajh0xq0ai1vnqb6"; depends=[ada BiocFileCache BiocGenerics Biostrings BSgenome bsplus class clue cowplot dplyr DT e1071 future future_apply GenomeInfoDb GenomicRanges ggplot2 ggpubr glmnet IRanges kknn listenv magrittr MASS maxstat nloptr NMF pheatmap PMCMRplus ppclust pROC proxy pvclust randomForest RColorBrewer Rcpp RcppArmadillo readr reshape2 rtracklayer scales shiny shinycssloaders shinydashboard shinyWidgets survival survivalAnalysis survminer tibble tidyr VariantAnnotation VGAM]; };
+  signifinder = derive2 { name="signifinder"; version="1.6.0"; sha256="0r6acaqk7zaryy8ddpfischw08b6sml3cydrw8v9wys0rfv207pb"; depends=[AnnotationDbi BiocGenerics ComplexHeatmap consensusOV cowplot DGEobj_utils dplyr ensembldb ggplot2 ggridges GSVA IRanges magrittr matrixStats maxstat openair org_Hs_eg_db patchwork RColorBrewer sparrow SpatialExperiment SummarizedExperiment survival survminer TxDb_Hsapiens_UCSC_hg19_knownGene TxDb_Hsapiens_UCSC_hg38_knownGene viridis]; };
+  sigsquared = derive2 { name="sigsquared"; version="1.36.0"; sha256="19z9jfiacm4idh4638vk358jrl8zkg6jay7r07hkqpc3m6i0ysa0"; depends=[Biobase survival]; };
+  simPIC = derive2 { name="simPIC"; version="1.0.0"; sha256="0qspzkpdfpya2hkj1lry68cybcsscw9xj5ycpg87xg38n3jyqcbm"; depends=[actuar BiocGenerics checkmate fitdistrplus Matrix matrixStats rlang S4Vectors scales scuttle SingleCellExperiment SummarizedExperiment]; };
+  similaRpeak = derive2 { name="similaRpeak"; version="1.36.0"; sha256="12im06jfjy3b00bga1sskxn15b1bsbhybsqi8lw9pgwx2hmrf4hb"; depends=[R6]; };
+  simona = derive2 { name="simona"; version="1.2.0"; sha256="04ynhnkb9qnniyvavfylg010pyry843362pjcw94kw9bwnklscy5"; depends=[circlize ComplexHeatmap GetoptLong GlobalOptions igraph matrixStats Polychrome Rcpp S4Vectors shiny xml2]; };
+  simpleSeg = derive2 { name="simpleSeg"; version="1.6.1"; sha256="0rmd9kclh6x9gxqncw25563c4vh2xk206iia0qc058w9lbzqyp5f"; depends=[BiocParallel cytomapper EBImage S4Vectors spatstat_geom SummarizedExperiment terra]; };
+  simplifyEnrichment = derive2 { name="simplifyEnrichment"; version="1.14.0"; sha256="1031rkl2gcgx4k1biz4bc38hfq7r6diqk48769jhii0r06ablrhi"; depends=[AnnotationDbi BiocGenerics circlize clue cluster colorspace ComplexHeatmap digest GetoptLong GlobalOptions GO_db GOSemSim Matrix org_Hs_eg_db proxyC slam tm]; };
+  sincell = derive2 { name="sincell"; version="1.36.0"; sha256="1028mdjjxbnw5fzsdyjjgy7v6yhslhhm7053q3889yqamw0l82fg"; depends=[cluster entropy fastICA fields ggplot2 igraph MASS proxy Rcpp reshape2 Rtsne scatterplot3d statmod TSP]; };
+  single = derive2 { name="single"; version="1.7.0"; sha256="0h7h9m4xr65nayr707jvjnbic1q4z0hsghw5i3pfpz2n6p9pb8s8"; depends=[BiocGenerics Biostrings dplyr GenomicAlignments IRanges reshape2 rlang Rsamtools stringr tidyr]; };
+  singleCellTK = derive2 { name="singleCellTK"; version="2.14.0"; sha256="06qpdl1k5c94rsnbnb4vkml1sahvav3pkr71hfkqikyscbydnay4"; depends=[anndata AnnotationHub ape batchelor Biobase BiocParallel celda celldex circlize cluster colorspace colourpicker ComplexHeatmap cowplot data_table DelayedArray DelayedMatrixStats DESeq2 dplyr DropletUtils DT eds enrichR ensembldb ExperimentHub fields ggplot2 ggplotify ggrepel ggtree gridExtra GSEABase GSVA GSVAdata igraph KernSmooth limma magrittr MAST Matrix matrixStats metap msigdbr multtest plotly plyr R_utils reshape2 reticulate rlang rmarkdown ROCR Rtsne S4Vectors scater scDblFinder scds scMerge scran scRNAseq scuttle Seurat shiny shinyalert shinycssloaders shinyjs SingleCellExperiment SingleR SoupX SummarizedExperiment sva TENxPBMCData tibble TrajectoryUtils TSCAN tximport VAM withr yaml zellkonverter zinbwave]; };
+  singscore = derive2 { name="singscore"; version="1.24.0"; sha256="12avzrc16mxz7v8jp4rxz5ia6008rjcja1h3hd0n60z644w9cng2"; depends=[Biobase BiocParallel edgeR ggplot2 ggrepel GSEABase magrittr matrixStats plotly plyr RColorBrewer reshape reshape2 S4Vectors SummarizedExperiment tidyr]; };
+  sitadela = derive2 { name="sitadela"; version="1.12.0"; sha256="1ynq19116z228cakznkpxd7msqxbvbgax2k6rk0wh9xksi6qzkpg"; depends=[Biobase BiocGenerics biomaRt Biostrings GenomeInfoDb GenomicFeatures GenomicRanges IRanges Rsamtools RSQLite rtracklayer S4Vectors txdbmaker]; };
+  sitePath = derive2 { name="sitePath"; version="1.20.0"; sha256="10g25has168cj7xjpn0q3da9rm7dxg6n2ysb8yc974gxqkabhzjh"; depends=[ape aplot ggplot2 ggrepel ggtree gridExtra RColorBrewer Rcpp seqinr tidytree]; };
+  sizepower = derive2 { name="sizepower"; version="1.74.0"; sha256="0qqxvyd3kya0rjip4l41cmv3b9q7a2nb4l5hny591qr703vx31bq"; depends=[]; };
+  sketchR = derive2 { name="sketchR"; version="1.0.0"; sha256="0jsv2rizfh72hrk9jrlhgl36cksa97858h7w57fkihq2hq155n67"; depends=[basilisk Biobase DelayedArray dplyr ggplot2 reticulate rlang scales]; };
+  skewr = derive2 { name="skewr"; version="1.36.0"; sha256="1hh0519pqv6lq21plph7sy88918np12g7aw542sfblm81ma4p4qv"; depends=[IlluminaHumanMethylation450kmanifest methylumi minfi mixsmsn RColorBrewer S4Vectors wateRmelon]; };
+  slalom = derive2 { name="slalom"; version="1.26.0"; sha256="0km062qb7k7g18zz03nr6m7nigzpbxkasgirc4igslz4sfcldd9x"; depends=[BH ggplot2 GSEABase Rcpp RcppArmadillo rsvd SingleCellExperiment SummarizedExperiment]; };
+  slingshot = derive2 { name="slingshot"; version="2.12.0"; sha256="055dylajbn94khi0829qhxx0lbn1pvh30xw09gjn1jvxsgzj49nc"; depends=[igraph matrixStats princurve S4Vectors SingleCellExperiment SummarizedExperiment TrajectoryUtils]; };
+  smartid = derive2 { name="smartid"; version="1.0.2"; sha256="1bm8g8n3xifc2dg1d9vpw79vpwssa9q6ssvzyf77gp24zp2r734i"; depends=[dplyr ggplot2 Matrix mclust mixtools sparseMatrixStats SummarizedExperiment tidyr]; };
+  smoothclust = derive2 { name="smoothclust"; version="1.0.0"; sha256="17mcfjxsgdvignrx576v97iwapmkfc4my8pvm6b2y1w7pibilx65"; depends=[sparseMatrixStats SpatialExperiment spdep SummarizedExperiment]; };
+  snapcount = derive2 { name="snapcount"; version="1.16.0"; sha256="1hjd6xdwgz2qal6scpldwpdqlrbgap45bq2h599df6hgvrdym3l7"; depends=[assertthat data_table GenomicRanges httr IRanges jsonlite magrittr Matrix purrr R6 rlang stringr SummarizedExperiment]; };
+  snifter = derive2 { name="snifter"; version="1.14.0"; sha256="1rmg6dq7sm7aisjrli8ya1wx2b0y0vngf5zksy1x77v6c5mk4b72"; depends=[assertthat basilisk irlba reticulate]; };
+  snm = derive2 { name="snm"; version="1.52.0"; sha256="1xihnp2kvgj4lkdbf8l0km2s06j0zqpf91946riirbyk6iq3igrn"; depends=[corpcor lme4]; };
+  snpStats = derive2 { name="snpStats"; version="1.54.0"; sha256="160pl3dy7v89i90x262hxqgipas4pyim600l6m50g3c03vm5in03"; depends=[BiocGenerics Matrix survival zlibbioc]; };
+  soGGi = derive2 { name="soGGi"; version="1.36.0"; sha256="0z995iyffzglc26pava4icxl315b077983lxvaldz5xkyhgvgpz7"; depends=[BiocGenerics BiocParallel Biostrings chipseq GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 IRanges preprocessCore reshape2 Rsamtools rtracklayer S4Vectors SummarizedExperiment]; };
+  spaSim = derive2 { name="spaSim"; version="1.6.0"; sha256="1lac621ss7qhfrabyn3nsmgiif4bcgwrgzs1xvbvf4lvwcy7ychm"; depends=[dplyr ggplot2 RANN SpatialExperiment spatstat_geom spatstat_random SummarizedExperiment]; };
+  sparrow = derive2 { name="sparrow"; version="1.10.1"; sha256="0vd18ws47zhx87bi35lmbh9wkp6s6d5nd9x77gd7fh24ni5z338s"; depends=[babelgene BiocGenerics BiocParallel BiocSet checkmate circlize ComplexHeatmap data_table DelayedMatrixStats edgeR ggplot2 GSEABase irlba limma Matrix plotly viridis]; };
+  sparseMatrixStats = derive2 { name="sparseMatrixStats"; version="1.16.0"; sha256="04hk9r6sh83dyxm2j7jdcj0m4g74ln218j21rs71c2gg6mrkmlgf"; depends=[Matrix MatrixGenerics matrixStats Rcpp]; };
+  sparsenetgls = derive2 { name="sparsenetgls"; version="1.22.0"; sha256="1x8qzqsr2rzx6683lmzw5ia21853l7gj3m5jkx0r8azmjk4r6kqb"; depends=[glmnet huge MASS Matrix]; };
+  spatialDE = derive2 { name="spatialDE"; version="1.10.0"; sha256="02npzs4vmjgc7bmv4rmmnz82slqcyrsq4y7wqapm30m7slhzm11g"; depends=[basilisk checkmate ggplot2 ggrepel gridExtra Matrix reticulate scales SpatialExperiment SummarizedExperiment]; };
+  spatialHeatmap = derive2 { name="spatialHeatmap"; version="2.10.0"; sha256="13f6q8gvwnq5saj6n90dgyhc8y3rl6m1vcc3z3zz08i469d948vq"; depends=[data_table dplyr edgeR genefilter ggplot2 ggplotify gplots gridExtra grImport igraph Matrix reshape2 rsvg S4Vectors scater scran scuttle shiny shinydashboard SingleCellExperiment spsComps SummarizedExperiment tibble xml2]; };
+  spatzie = derive2 { name="spatzie"; version="1.10.0"; sha256="1jii3viq7ck1clkr59yafnh5a4pblskd77i1i3gxs7fpvl8ab7qb"; depends=[BiocGenerics BSgenome GenomeInfoDb GenomicFeatures GenomicInteractions GenomicRanges ggplot2 IRanges MatrixGenerics matrixStats motifmatchr S4Vectors SummarizedExperiment TFBSTools]; };
+  specL = derive2 { name="specL"; version="1.38.0"; sha256="0klg19h1ijwd9f7pary77zn52mp8ryzvhv6g3h5xg8yjv1kl9m7r"; depends=[DBI protViz RSQLite seqinr]; };
+  speckle = derive2 { name="speckle"; version="1.4.0"; sha256="1m7fl9l20f65w5il3jhj930i71kb1bvsz0iqb7yi1nczjx1b6hcw"; depends=[edgeR ggplot2 limma Seurat SingleCellExperiment]; };
+  spicyR = derive2 { name="spicyR"; version="1.16.1"; sha256="03bmjr4vbma5ynj773b364vb05vf06fyzvbq75qi7mczjyh4kckw"; depends=[BiocParallel ClassifyR cli concaveman data_table dplyr ggforce ggplot2 lmerTest magrittr pheatmap rlang S4Vectors scam SingleCellExperiment SpatialExperiment spatstat_explore spatstat_geom SummarizedExperiment tibble tidyr]; };
+  spikeLI = derive2 { name="spikeLI"; version="2.64.0"; sha256="1n8dbfaraal941djg1a065zdqsw6dacw92kj0615mq520wviwwqi"; depends=[]; };
+  spiky = derive2 { name="spiky"; version="1.10.0"; sha256="1cwvdqa4zy17nk6d04kg6rrsd6rk4f5nrg58pf882jn44rjfl49i"; depends=[bamlss Biostrings BlandAltmanLeh BSgenome GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 IRanges Rsamtools S4Vectors scales]; };
+  spillR = derive2 { name="spillR"; version="1.0.0"; sha256="1pqb9n0rvjx8wdw4vjfmi9m2d5lf6xddygpf1grab3yhkrn9akw8"; depends=[CATALYST dplyr ggplot2 S4Vectors spatstat_geom SummarizedExperiment tibble tidyr tidyselect]; };
+  spkTools = derive2 { name="spkTools"; version="1.60.0"; sha256="1q6vhhdfh5xwpkwfcbjlbv9s8rd5mzn98xqcns7ix5d3rcqk5ixk"; depends=[Biobase gtools RColorBrewer]; };
+  splatter = derive2 { name="splatter"; version="1.28.0"; sha256="1drifr04nd8x40z6v0ig60l2zcm289kmxlmdy8siczn90xzy8cm7"; depends=[BiocGenerics BiocParallel checkmate crayon edgeR fitdistrplus locfit matrixStats rlang S4Vectors scuttle SingleCellExperiment SummarizedExperiment withr]; };
+  splineTimeR = derive2 { name="splineTimeR"; version="1.32.0"; sha256="0y4sydqmwpj5jwalhbf1zs6mqk447c7f22a5qy9pj8sqblh042rn"; depends=[Biobase FIs GeneNet GSEABase gtools igraph limma longitudinal]; };
+  splots = derive2 { name="splots"; version="1.70.0"; sha256="0dr0d1c5v45vmfdpm6hkg4dbjx6c4y9hadpra8ym5bcmlsb14xaa"; depends=[RColorBrewer]; };
+  spoon = derive2 { name="spoon"; version="1.0.0"; sha256="1ygrb534nlsxckbc61y5s3rjc4cpmf265y5a48charjv9y3ahw19"; depends=[BiocParallel BRISC Matrix nnSVG scuttle SpatialExperiment SummarizedExperiment]; };
+  spqn = derive2 { name="spqn"; version="1.16.0"; sha256="0477rs2wq9319zj1pm7j96inhd38sqs85wvj06r47g2k77blcz87"; depends=[BiocGenerics ggplot2 ggridges matrixStats SummarizedExperiment]; };
+  srnadiff = derive2 { name="srnadiff"; version="1.24.0"; sha256="0gr754qb5gc0lh1r513yrfrys7q13a0kmbzmbx5m0p7wwp508mdg"; depends=[BiocManager BiocParallel BiocStyle DESeq2 devtools edgeR GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges Gviz IRanges Rcpp Rsamtools rtracklayer S4Vectors SummarizedExperiment]; };
+  ssPATHS = derive2 { name="ssPATHS"; version="1.18.0"; sha256="0h2hs6snnh9kzqna94ndp3gk4bkldsxrg67fy6gx7d15agjl9y2s"; depends=[dml MESS ROCR SummarizedExperiment]; };
+  sscu = derive2 { name="sscu"; version="2.34.0"; sha256="0ym9c6r2ny5j9lzcccllq29jl4g1021n5n0l8z51lgkypaq5zlik"; depends=[BiocGenerics Biostrings seqinr]; };
+  ssize = derive2 { name="ssize"; version="1.78.0"; sha256="078mw9mb39liw4jalivgm1giib7pizizxyzmy4gzq8wb35psb39m"; depends=[gdata xtable]; };
+  ssrch = derive2 { name="ssrch"; version="1.20.0"; sha256="16pc861c3ljrnagjc02pksymv24kp18380afqhz2isif0za8kl6d"; depends=[DT shiny]; };
+  ssviz = derive2 { name="ssviz"; version="1.38.0"; sha256="0m5jh45v58f92m4ib7b1fy7gpixpvgm65gx2sw1qmx1qihp4hkrb"; depends=[Biostrings ggplot2 RColorBrewer reshape Rsamtools]; };
+  stJoincount = derive2 { name="stJoincount"; version="1.6.0"; sha256="1i8bkygxxl3cq8zjpfslakib1knivyc4wfil1sa4s0jcj4iyhlhx"; depends=[dplyr ggplot2 magrittr pheatmap raster Seurat sp SpatialExperiment spdep SummarizedExperiment]; };
+  staRank = derive2 { name="staRank"; version="1.46.0"; sha256="13z24si93h17hdiagjg26kv07bzyfl54iymb1jd7yn47924dr3n3"; depends=[cellHTS2]; };
+  stageR = derive2 { name="stageR"; version="1.26.0"; sha256="0ayjwv2i9q8dzq5pzhyzkxzkz9ycka2v6ccvq5y9cg7x0mw4qvbh"; depends=[SummarizedExperiment]; };
+  standR = derive2 { name="standR"; version="1.8.0"; sha256="0lnggcppcgd5k07yx5ig7gjyj7bkwk7mvs9l785mlr1wgmqz4vm0"; depends=[Biobase BiocGenerics dplyr edgeR ggalluvial ggplot2 limma mclustcomp patchwork readr rlang ruv RUVSeq S4Vectors SingleCellExperiment SpatialExperiment SummarizedExperiment tibble tidyr]; };
+  statTarget = derive2 { name="statTarget"; version="1.34.0"; sha256="0p89j6isdyy7zlniqd42s7y50sjyd7a9fpg3hwi92ssvv77zdd4c"; depends=[impute pdist pls plyr randomForest ROC rrcov]; };
+  stepNorm = derive2 { name="stepNorm"; version="1.76.0"; sha256="18v5hqcwnbzw8kwq9ahia36ikr3fd1cgwvx0rj32qbs66kr9phhz"; depends=[marray MASS]; };
+  strandCheckR = derive2 { name="strandCheckR"; version="1.22.0"; sha256="05r9d87y158pbnakqcli94nbwfvl72bsl1wbmbjyhk3cp9r1si2d"; depends=[BiocGenerics dplyr GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 gridExtra IRanges magrittr reshape2 rmarkdown Rsamtools S4Vectors stringr TxDb_Hsapiens_UCSC_hg38_knownGene]; };
+  struct = derive2 { name="struct"; version="1.16.0"; sha256="086fjmhmywi8ciycnz29fgkjwmxws2d130fvgwmx504gf7l841lk"; depends=[knitr ontologyIndex rols S4Vectors SummarizedExperiment]; };
+  structToolbox = derive2 { name="structToolbox"; version="1.16.0"; sha256="0a9hvwj6cgbs61m9vjfm704kp42mj05shjxnr79j8irfbx87q8w4"; depends=[ggplot2 ggthemes gridExtra scales sp struct]; };
+  subSeq = derive2 { name="subSeq"; version="1.34.0"; sha256="1pdjw0balc7lx92azfxxl80h2lkqhk5sx94cfzgw3cwb8s2abwka"; depends=[Biobase data_table digest dplyr ggplot2 magrittr qvalue tidyr]; };
+  supersigs = derive2 { name="supersigs"; version="1.12.0"; sha256="00rnd7h7xrbpr5jqz7l03pk6rlyqfcmkyrxpjwayz9gj2yc87lk3"; depends=[assertthat Biostrings caret dplyr rlang rsample SummarizedExperiment tidyr]; };
+  supraHex = derive2 { name="supraHex"; version="1.42.0"; sha256="10qfvwbz5cbxvxbdmbc29jfp6apza4z70p4b9nfwgs4y95c11p7l"; depends=[ape dplyr hexbin igraph magrittr MASS purrr readr stringr tibble tidyr]; };
+  surfaltr = derive2 { name="surfaltr"; version="1.10.0"; sha256="1i7ssmnnv81x5nb63sbk07mkirb99bsn9kyy59n8ib03akygv2mz"; depends=[biomaRt Biostrings dplyr ggplot2 httr msa protr readr seqinr stringr testthat xml2]; };
+  survcomp = derive2 { name="survcomp"; version="1.54.0"; sha256="090dl580cwicn3px1khkhcix25snig0k7phb7z3nzmrbxmp82ygc"; depends=[bootstrap ipred KernSmooth prodlim rmeta SuppDists survival survivalROC]; };
+  survtype = derive2 { name="survtype"; version="1.20.0"; sha256="0pyyzkxqaa8xbrap1d2ppd4g4i4zxr8frjw0mlq8hw9gf1n94k0l"; depends=[clustvarsel pheatmap SummarizedExperiment survival survminer]; };
+  sva = derive2 { name="sva"; version="3.52.0"; sha256="07iq894mf5d66cxjl283pcvj1frj56pb15z984d4svk6f5cacg3z"; depends=[BiocParallel edgeR genefilter limma matrixStats mgcv]; };
+  svaNUMT = derive2 { name="svaNUMT"; version="1.10.0"; sha256="15159bxq26w80nc160rk5k48435h6snxmsmynfjiaq3kzv5143pd"; depends=[assertthat BiocGenerics Biostrings dplyr GenomeInfoDb GenomicFeatures GenomicRanges pwalign rlang rtracklayer S4Vectors stringr StructuralVariantAnnotation VariantAnnotation]; };
+  svaRetro = derive2 { name="svaRetro"; version="1.10.0"; sha256="03scsdy5pypir0jqgj38y5hnj82sh21gip5xd8dbqjk9ryb75ays"; depends=[assertthat BiocGenerics Biostrings dplyr GenomeInfoDb GenomicFeatures GenomicRanges rlang rtracklayer S4Vectors stringr StructuralVariantAnnotation VariantAnnotation]; };
+  swfdr = derive2 { name="swfdr"; version="1.30.0"; sha256="0ld015l7sxl1rmn1p6wi7k8wk3p8y7qad7klb47y23mhwfwhn7cs"; depends=[]; };
+  switchBox = derive2 { name="switchBox"; version="1.40.0"; sha256="03535j0hgdgpdks9hc10zkq7kyr4zp8xdp963qny5c4aa4naz7pi"; depends=[gplots pROC]; };
+  switchde = derive2 { name="switchde"; version="1.30.0"; sha256="033xpkivywvk4rg1gqr0drrhwgp58nlgr3in65c0fxlwd1jd6kpj"; depends=[dplyr ggplot2 SingleCellExperiment SummarizedExperiment]; };
+  synapsis = derive2 { name="synapsis"; version="1.10.0"; sha256="0w2pagkvnipz6wmz9yhpysiy7ydc7w8cqjifsqzdh771b3ccw0kl"; depends=[EBImage]; };
+  synapter = derive2 { name="synapter"; version="2.28.0"; sha256="1imhap1ny0x687qh9s1q9m978hwhhkci0j8i3qfwrvn3ykijlsa7"; depends=[Biobase Biostrings cleaver lattice MSnbase multtest qvalue RColorBrewer readr rmarkdown]; };
+  synergyfinder = derive2 { name="synergyfinder"; version="3.12.0"; sha256="02d9615k8fl9bb7hd6f5vz11k9aard8zs880siac2s23pwzivjwn"; depends=[dplyr drc furrr future ggforce ggplot2 ggrepel gstat kriging lattice magrittr metR mice nleqslv pbapply plotly purrr reshape2 sp SpatialExtremes stringr tidyr tidyverse vegan]; };
+  synlet = derive2 { name="synlet"; version="2.4.0"; sha256="0nfqm2qfavn71k5dhz6x2958yplasnbvjc6mqzh4i237x03184g4"; depends=[data_table ggplot2 magrittr patchwork RankProd RColorBrewer]; };
+  syntenet = derive2 { name="syntenet"; version="1.6.0"; sha256="1220hbkmg10ly0i5m6wnqnsa6m2f2xgs85798y9mlcqwxrp5ih35"; depends=[BiocParallel Biostrings GenomicRanges ggnetwork ggplot2 igraph intergraph networkD3 pheatmap RColorBrewer Rcpp rlang rtracklayer testthat]; };
+  systemPipeR = derive2 { name="systemPipeR"; version="2.10.0"; sha256="13xxcqy5hhy45zglv6gc86ndmisfkjq4dg55x2j1kw3jqha1brnx"; depends=[BiocGenerics Biostrings crayon GenomicRanges ggplot2 htmlwidgets magrittr Rsamtools S4Vectors ShortRead stringr SummarizedExperiment yaml]; };
+  systemPipeShiny = derive2 { name="systemPipeShiny"; version="1.14.0"; sha256="14wgamxg2jpj3xjlna9x5rd3kpndhxs20gh84acix3pa3ppr8xgf"; depends=[assertthat bsplus crayon dplyr drawer DT ggplot2 glue htmltools magrittr openssl plotly R6 rlang RSQLite rstudioapi shiny shinyAce shinydashboard shinydashboardPlus shinyFiles shinyjqui shinyjs shinytoastr shinyWidgets spsComps spsUtil stringr styler tibble vroom yaml]; };
+  systemPipeTools = derive2 { name="systemPipeTools"; version="1.12.0"; sha256="08r0dglqpr638pbssr3l3xcly7mhj0jsq5rrzdnqh5sg4wz11gyj"; depends=[ape DESeq2 dplyr DT GGally ggplot2 ggrepel ggtree glmpca magrittr pheatmap plotly Rtsne SummarizedExperiment tibble]; };
+  tLOH = derive2 { name="tLOH"; version="1.12.0"; sha256="0r8a0srff8y5ap2zz4kk6302gkb69bgylxggnz704zi3yzvyklv1"; depends=[bestNormalize data_table depmixS4 dplyr GenomicRanges ggplot2 MatrixGenerics naniar purrr scales stringr VariantAnnotation]; };
+  tRNA = derive2 { name="tRNA"; version="1.22.0"; sha256="0dg4s5kxsdh2j8smqi8vm7yncy9kb79sj8xlvf4wgf3aljarms21"; depends=[BiocGenerics Biostrings GenomicRanges ggplot2 IRanges Modstrings S4Vectors scales stringr Structstrings XVector]; };
+  tRNAdbImport = derive2 { name="tRNAdbImport"; version="1.22.0"; sha256="0yvgxxf5d5mh91cmbba66krj6jz5gl1qkgjck9310k4mk7pjfww3"; depends=[Biostrings GenomicRanges httr2 IRanges Modstrings S4Vectors stringr Structstrings tRNA xml2]; };
+  tRNAscanImport = derive2 { name="tRNAscanImport"; version="1.24.0"; sha256="12wn5sdq1miimn31ismzs2w06q3l66l774dbfndw8bx3awhrf7g1"; depends=[BiocGenerics Biostrings BSgenome GenomeInfoDb GenomicRanges IRanges Rsamtools rtracklayer S4Vectors stringr Structstrings tRNA XVector]; };
+  tRanslatome = derive2 { name="tRanslatome"; version="1.42.0"; sha256="0xnr7a7cm7lcvyipjj6p4347yqykpfghz37qxyam5ixplfwlh1cg"; depends=[anota Biobase DESeq2 edgeR GOSemSim gplots Heatplus limma org_Hs_eg_db plotrix RankProd topGO]; };
+  tadar = derive2 { name="tadar"; version="1.2.0"; sha256="12jmrnaqf1hkdjw2qvxjkb2y2860ck9a5957h44nkhxf75lv35vb"; depends=[BiocGenerics GenomeInfoDb GenomicRanges ggplot2 Gviz IRanges MatrixGenerics rlang Rsamtools S4Vectors VariantAnnotation]; };
+  tanggle = derive2 { name="tanggle"; version="1.10.0"; sha256="0dcy2bvim02x9wqd6fxs7562nl8849h13n2q16pcbc67ljhss27m"; depends=[ape ggplot2 ggtree phangorn]; };
+  target = derive2 { name="target"; version="1.18.0"; sha256="1crqxj8wk66h2jvxnmw5rhdsdfhkd59d2pxw1lf05w7dkd495zfr"; depends=[BiocGenerics GenomicRanges IRanges matrixStats shiny]; };
+  ternarynet = derive2 { name="ternarynet"; version="1.48.0"; sha256="1f431kkyhazw4kxnfhhk0jb9gkfp7llpm054rv44if328bbi931h"; depends=[BiocParallel igraph]; };
+  terraTCGAdata = derive2 { name="terraTCGAdata"; version="1.8.0"; sha256="18i933ndja1pa4iql96fvx2brjmcvvirlp048hjxvkapm0bhsm19"; depends=[AnVIL BiocFileCache dplyr GenomicRanges MultiAssayExperiment RaggedExperiment readr S4Vectors TCGAutils tidyr]; };
+  tidyCoverage = derive2 { name="tidyCoverage"; version="1.0.0"; sha256="150q5qwifni2d2jvx1k3c0cq5n2k1s33yps8v5d6ksa3qs510p4s"; depends=[BiocIO BiocParallel cli dplyr fansi GenomeInfoDb GenomicRanges IRanges pillar purrr rlang rtracklayer S4Vectors SummarizedExperiment tidyr vctrs]; };
+  tidySingleCellExperiment = derive2 { name="tidySingleCellExperiment"; version="1.14.0"; sha256="1rvc0576ajxx7njyiyh2ql85an4dn9v8v4q7g8gfdgd9jg5v4hmz"; depends=[cli dplyr ellipsis fansi ggplot2 lifecycle magrittr Matrix pillar pkgconfig purrr rlang S4Vectors SingleCellExperiment stringr SummarizedExperiment tibble tidyr tidyselect ttservice vctrs]; };
+  tidySpatialExperiment = derive2 { name="tidySpatialExperiment"; version="1.0.0"; sha256="0a2bramm53dvl7qib18z7s8zrfjprkrg6zzj5q7z4jf5smj7szzf"; depends=[BiocGenerics cli dplyr fansi ggplot2 lifecycle magrittr Matrix pillar pkgconfig purrr rlang S4Vectors SingleCellExperiment SpatialExperiment stringr SummarizedExperiment tibble tidyr tidyselect tidySingleCellExperiment ttservice vctrs]; };
+  tidySummarizedExperiment = derive2 { name="tidySummarizedExperiment"; version="1.14.0"; sha256="0bcvna28shr27pdzi1n2g6bldqrakkwn0wh7ld39wbn439awshr9"; depends=[cli dplyr ellipsis fansi ggplot2 lifecycle magrittr pillar pkgconfig purrr rlang S4Vectors stringr SummarizedExperiment tibble tidyr tidyselect ttservice vctrs]; };
+  tidybulk = derive2 { name="tidybulk"; version="1.16.0"; sha256="1ij4x2fqcpdkdl62kwjhk3w19m7vwq8m3bglhsxz7pkzy49cfifx"; depends=[crayon dplyr GenomicRanges lifecycle magrittr Matrix preprocessCore purrr readr rlang S4Vectors scales stringi stringr SummarizedExperiment tibble tidyr tidyselect ttservice]; };
+  tidyomics = derive2 { name="tidyomics"; version="1.0.0"; sha256="08d2bkaqya090y93wg8cj36bbqbiy62p9swiz9ci9z4055sv900y"; depends=[cli nullranges plyranges purrr rlang stringr tidybulk tidyseurat tidySingleCellExperiment tidySummarizedExperiment]; };
+  tigre = derive2 { name="tigre"; version="1.58.0"; sha256="1gdfiga7m4zdsr8vj8anlkj1jfdrlzhsik36jdgi4f92pyyllgwx"; depends=[annotate AnnotationDbi Biobase BiocGenerics DBI gplots RSQLite]; };
+  tilingArray = derive2 { name="tilingArray"; version="1.82.0"; sha256="1408275gvfilc2k8sfsja8bm5fdgnblf2sf5wdd3if51qi61clb0"; depends=[affy Biobase genefilter pixmap RColorBrewer strucchange vsn]; };
+  timeOmics = derive2 { name="timeOmics"; version="1.16.0"; sha256="12qxipaqmkvfb6lvbl40v9fb0vink4jgxlx9kg9kg2sd9kb7qrav"; depends=[checkmate dplyr ggplot2 ggrepel lmtest magrittr mixOmics plyr purrr stringr tibble tidyr]; };
+  timecourse = derive2 { name="timecourse"; version="1.76.0"; sha256="05q6vw76hhi4frpf4vivq1jxkh99xq44vw2p5gz4zgcinsc58yql"; depends=[Biobase limma marray MASS]; };
+  timescape = derive2 { name="timescape"; version="1.28.0"; sha256="1xcdx61gv0vvzdl04nfp7kbp6qxbkfmh88pvdz47jmkcy9ap8zmm"; depends=[dplyr gtools htmlwidgets jsonlite stringr]; };
+  tkWidgets = derive2 { name="tkWidgets"; version="1.82.0"; sha256="0k1d5r306mbry0h7yqp246i13adxlmxl2vhwdsfgh29v8qkg1szl"; depends=[DynDoc widgetTools]; };
+  tomoda = derive2 { name="tomoda"; version="1.14.0"; sha256="0cx4153sknl0prpdm12y6n44kg10ib8b7qk3102pvgv9mz4xgrbv"; depends=[ggplot2 ggrepel RColorBrewer reshape2 Rtsne SummarizedExperiment umap]; };
+  tomoseqr = derive2 { name="tomoseqr"; version="1.8.0"; sha256="14x665zaljr448gdb84d0y1hlqih7n9z2dy052y4ay22l10f8886"; depends=[animation BiocFileCache dplyr ggplot2 plotly purrr readr shiny stringr tibble]; };
+  topGO = derive2 { name="topGO"; version="2.56.0"; sha256="0ly4rai3na88dnfizsi60r6py0qmf0pw95b0hprfkvzpjyd72p75"; depends=[AnnotationDbi Biobase BiocGenerics DBI GO_db graph lattice matrixStats SparseM]; };
+  topconfects = derive2 { name="topconfects"; version="1.20.0"; sha256="1jcmnxf5sazw7xg8r39m059z2vai03nr0kadd8dfcvn6cfaqmvbg"; depends=[assertthat ggplot2]; };
+  topdownr = derive2 { name="topdownr"; version="1.26.0"; sha256="1axqyjlp6386shcw95mg0ljj12683ix03yk5bcxr2bqd36csfa6y"; depends=[Biobase BiocGenerics Biostrings ggplot2 Matrix MSnbase mzR ProtGenerics PSMatch S4Vectors]; };
+  tpSVG = derive2 { name="tpSVG"; version="1.0.0"; sha256="135w2w6j3cgfrkfkzmmy40ii10zp32r7xjc0pg07h2gm0hdz5yj0"; depends=[BiocParallel MatrixGenerics mgcv SingleCellExperiment SpatialExperiment SummarizedExperiment]; };
+  trackViewer = derive2 { name="trackViewer"; version="1.40.0"; sha256="01m0jwig3l6dfhd3w5aq4sx2krsipjg5jjxa78kalfrzrm6k05s4"; depends=[AnnotationDbi BiocGenerics GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges grImport Gviz htmlwidgets igraph InteractionSet IRanges plotrix rhdf5 Rsamtools rtracklayer S4Vectors scales strawr txdbmaker]; };
+  tracktables = derive2 { name="tracktables"; version="1.38.0"; sha256="1rfpb13sd2rqhxkywif58fm2l8ch664ga149y1nxwf409hbqb81w"; depends=[GenomicRanges IRanges RColorBrewer Rsamtools stringr tractor_base XML XVector]; };
+  tradeSeq = derive2 { name="tradeSeq"; version="1.18.0"; sha256="1kgvvvwvj3dgb2wik3y8j44ynda94bi05vvmiwlayrypqprwi1c1"; depends=[Biobase BiocParallel edgeR ggplot2 igraph magrittr MASS Matrix matrixStats mgcv pbapply princurve RColorBrewer S4Vectors SingleCellExperiment slingshot SummarizedExperiment tibble TrajectoryUtils viridis]; };
+  transcriptR = derive2 { name="transcriptR"; version="1.32.0"; sha256="1lx11dyr8q4yd57l7rj0788488amhiiahfml2m69554hk94cd46i"; depends=[BiocGenerics caret chipseq e1071 GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 IRanges pROC reshape2 Rsamtools rtracklayer S4Vectors]; };
+  transcriptogramer = derive2 { name="transcriptogramer"; version="1.26.0"; sha256="0n44im93a72sihivlxn5x2k3s412b91ixqamc0wlk57vw0ppycm6"; depends=[biomaRt data_table doSNOW foreach ggplot2 igraph limma progress RedeR snow tidyr topGO]; };
+  transformGamPoi = derive2 { name="transformGamPoi"; version="1.10.0"; sha256="09z5d72zk6lnhjvfffpylgkk6w73wrlcasr8agy7ydy1b80cj36c"; depends=[DelayedArray glmGamPoi HDF5Array Matrix MatrixGenerics Rcpp SummarizedExperiment]; };
+  transite = derive2 { name="transite"; version="1.22.0"; sha256="15r8q0j7475ccq592fiqvcxkggb8zkg6lq3zmz65jljfdggj6kn4"; depends=[BiocGenerics Biostrings dplyr GenomicRanges ggplot2 gridExtra Rcpp scales TFMPvalue]; };
+  transmogR = derive2 { name="transmogR"; version="1.0.0"; sha256="1531h4i6jn25r451ndf7jjscfbzs1k7477v0cn0rrr5hay8i2z3s"; depends=[Biostrings BSgenome GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 IRanges rlang S4Vectors scales SummarizedExperiment VariantAnnotation]; };
+  transomics2cytoscape = derive2 { name="transomics2cytoscape"; version="1.14.0"; sha256="1f7qdymlgqh4la1rhlk5s580ka8p4f8ravm19i02ndx50jlnq12q"; depends=[dplyr KEGGREST pbapply purrr RCy3 tibble]; };
+  traseR = derive2 { name="traseR"; version="1.34.0"; sha256="0v1w73s4b5zs863mdb6pwr2h9wq3wsbwqxbihig3sl6vc7i5v7da"; depends=[BSgenome_Hsapiens_UCSC_hg19 GenomicRanges IRanges]; };
+  traviz = derive2 { name="traviz"; version="1.10.0"; sha256="1jjdfl8xvzlr31w74j12s5pdg5b1yylg1i30n804p9mqyx11g5sc"; depends=[Biobase ggplot2 mgcv princurve RColorBrewer rgl SingleCellExperiment slingshot SummarizedExperiment viridis]; };
+  treeclimbR = derive2 { name="treeclimbR"; version="1.0.0"; sha256="1ynrc06f1dh1vaa24j25naydvj4lvygcv89ssz5gv0xpmr0ydlc1"; depends=[ape diffcyt dirmult dplyr edgeR ggnewscale ggplot2 ggtree rlang S4Vectors SummarizedExperiment tibble tidyr TreeSummarizedExperiment viridis]; };
+  treeio = derive2 { name="treeio"; version="1.28.0"; sha256="0xfjq13yirfz7dzzlf2m60lk8xb3qh6k5hr66ygvjnm716x3vyh1"; depends=[ape dplyr jsonlite magrittr rlang tibble tidytree yulab_utils]; };
+  treekoR = derive2 { name="treekoR"; version="1.12.0"; sha256="02mzd9ay9fij2qr9dkrg72h7yw9jpjmqx4gz0hsjpb03akc1npqw"; depends=[ape data_table diffcyt dplyr edgeR ggiraph ggplot2 ggtree hopach lme4 multcomp patchwork SingleCellExperiment tidyr]; };
+  tricycle = derive2 { name="tricycle"; version="1.12.0"; sha256="11928pcd8xzmll28m0ihi3rasc4w1i0fshn4bh9n2lyigkr5ayi4"; depends=[AnnotationDbi circular dplyr GenomicRanges ggnewscale ggplot2 IRanges RColorBrewer S4Vectors scater scattermore SingleCellExperiment SummarizedExperiment]; };
+  trigger = derive2 { name="trigger"; version="1.50.0"; sha256="1l3ln40r45rhbw8abk8l5xqighpfy3qk17830wk34ip0jzvvshqi"; depends=[corpcor qtl qvalue sva]; };
+  trio = derive2 { name="trio"; version="3.42.0"; sha256="166pnyzjrahcx0zhmclxdawyhpvr8am0da8il3wm1bs6clp7af94"; depends=[LogicReg siggenes survival]; };
+  triplex = derive2 { name="triplex"; version="1.44.0"; sha256="19xvhdwik9crz6w5cjfwsvwn42wkari3d360lmjms128qn266hbx"; depends=[Biostrings GenomicRanges IRanges S4Vectors XVector]; };
+  tripr = derive2 { name="tripr"; version="1.10.0"; sha256="0lh2qlqi6rxq4v5cw4qr2syyjig7iy6z3pc0d6gpr4lbhwcm50d5"; depends=[config data_table dplyr DT golem gridExtra plot3D plotly plyr RColorBrewer shiny shinyBS shinyFiles shinyjs stringdist stringr]; };
+  ttgsea = derive2 { name="ttgsea"; version="1.12.0"; sha256="1j09ircbzpvx661yrsnz7b6hxgsc0snm3q6gi72hcyjc9xgx46zs"; depends=[data_table DiagrammeR keras purrr stopwords text2vec textstem tm tokenizers]; };
+  tweeDEseq = derive2 { name="tweeDEseq"; version="1.50.0"; sha256="0mmrp0x64k1cd0n7qqrpr191n57hciq75aw3gvfrplcfi75xb7q3"; depends=[cqn edgeR limma MASS Rcpp]; };
+  twilight = derive2 { name="twilight"; version="1.80.0"; sha256="0r5nfr5r88xyvcrlzv8cmlnq5gcf98nqn3p028zc8dffslm6cbsq"; depends=[Biobase]; };
+  twoddpcr = derive2 { name="twoddpcr"; version="1.28.0"; sha256="13if809c4nxf5cprps9p9w6z1r3xxjq556315wbkyh0pw724nki0"; depends=[class ggplot2 hexbin RColorBrewer S4Vectors scales shiny]; };
+  txcutr = derive2 { name="txcutr"; version="1.10.0"; sha256="165yfhmw8j91bx0x7kasxyiwdiy7yxzzjg4vlyic0bf2f3xvyn1g"; depends=[AnnotationDbi BiocGenerics BiocParallel Biostrings GenomicFeatures GenomicRanges IRanges rtracklayer S4Vectors txdbmaker]; };
+  txdbmaker = derive2 { name="txdbmaker"; version="1.0.0"; sha256="099x6v4crp953jcgqipj0001kxg7gv5h0r4mmvh1cg7j69w0zd5m"; depends=[AnnotationDbi Biobase BiocGenerics BiocIO biomaRt DBI GenomeInfoDb GenomicFeatures GenomicRanges httr IRanges rjson RSQLite rtracklayer S4Vectors UCSC_utils]; };
+  tximeta = derive2 { name="tximeta"; version="1.22.1"; sha256="0lmkxl7zlp6z4i32jyy914kiwacnz89jnd2kqma81mq81r389p06"; depends=[AnnotationDbi AnnotationHub BiocFileCache Biostrings ensembldb GenomeInfoDb GenomicFeatures GenomicRanges IRanges jsonlite Matrix S4Vectors SummarizedExperiment tibble txdbmaker tximport]; };
+  tximport = derive2 { name="tximport"; version="1.32.0"; sha256="0wayib05k976wivf9xgbfz5mfvi5hmxj3wm6zw031bj4w8dkc1v6"; depends=[]; };
+  uSORT = derive2 { name="uSORT"; version="1.30.0"; sha256="04k0763dykakv03gxvlwsp6qlg6lpzd5512p5rdq2v5dk19scvm1"; depends=[Biobase BiocGenerics cluster fpc gplots igraph Matrix monocle plyr RANN RSpectra VGAM]; };
+  uncoverappLib = derive2 { name="uncoverappLib"; version="1.14.0"; sha256="17p2aqpg3q6yqplw2haazm1hhr6s0nwhghcvn3j9128n5pg2j58x"; depends=[BiocFileCache condformat DT EnsDb_Hsapiens_v75 EnsDb_Hsapiens_v86 GenomicRanges Gviz Homo_sapiens markdown openxlsx org_Hs_eg_db OrganismDbi processx rappdirs rlist Rsamtools S4Vectors shiny shinyBS shinycssloaders shinyjs shinyWidgets stringr TxDb_Hsapiens_UCSC_hg19_knownGene TxDb_Hsapiens_UCSC_hg38_knownGene]; };
+  universalmotif = derive2 { name="universalmotif"; version="1.22.0"; sha256="1kasmib3lp68pq5f9qzh38z7gpv8hik536iz16g8a73pc6bcbmzy"; depends=[BiocGenerics Biostrings ggplot2 IRanges MASS MatrixGenerics Rcpp RcppThread rlang S4Vectors yaml]; };
+  updateObject = derive2 { name="updateObject"; version="1.8.0"; sha256="151nma7yyhk8s67bqim6jn86p85zdq7hj0xvvpnsl78bacncca8c"; depends=[BiocGenerics digest S4Vectors]; };
+  variancePartition = derive2 { name="variancePartition"; version="1.34.0"; sha256="00hrizpx05jfh7yrab6na10zkahm8ibrbxy4pa4dcldw65klqmn9"; depends=[aod Biobase BiocParallel corpcor fANCOVA ggplot2 gplots iterators limma lme4 lmerTest MASS Matrix matrixStats pbkrtest Rdpack remaCor reshape2 RhpcBLASctl rlang scales]; };
+  vbmp = derive2 { name="vbmp"; version="1.72.0"; sha256="0a21jpvg6jjv28gx30yrvm7wsc194jsdsxh0vhgk8j9rjlmlfp2y"; depends=[]; };
+  velociraptor = derive2 { name="velociraptor"; version="1.14.0"; sha256="0sr796g3hak3vv014fvibi95fqayhjdp9qj1lyd84lc84rwhzli2"; depends=[basilisk BiocGenerics BiocParallel BiocSingular DelayedArray Matrix reticulate S4Vectors scuttle SingleCellExperiment SummarizedExperiment zellkonverter]; };
+  veloviz = derive2 { name="veloviz"; version="1.10.0"; sha256="0bni9ykffsa4zazycaki74xxwps40ngsrvq32bdr4anyhya2nk1v"; depends=[igraph Matrix mgcv Rcpp RSpectra]; };
+  vidger = derive2 { name="vidger"; version="1.24.0"; sha256="1ladsgxqmmff7rw6w3x8jyxba4mdk7bb4f4wgimwfgvyjmygsaqr"; depends=[Biobase DESeq2 edgeR GGally ggplot2 ggrepel knitr RColorBrewer rmarkdown scales SummarizedExperiment tidyr]; };
+  viper = derive2 { name="viper"; version="1.38.0"; sha256="00cl6lbi56dbd8dilg0iczca87wr3572vq7i352mgfdinlw7fcyk"; depends=[Biobase e1071 KernSmooth mixtools]; };
+  vissE = derive2 { name="vissE"; version="1.12.0"; sha256="1bw74vjag4g90d2s29w5j51dd30xqp6k6x6vwb0ihrxfvadns5dx"; depends=[ggforce ggplot2 ggraph ggrepel ggwordcloud GSEABase igraph msigdb plyr RColorBrewer reshape2 scales scico textstem tidygraph tm]; };
+  vsclust = derive2 { name="vsclust"; version="1.6.0"; sha256="0kb63am4aa6gmlpbczdbmxc7vwnmnnkd78ql6nizd9sfixdmiqm5"; depends=[limma matrixStats MultiAssayExperiment qvalue Rcpp shiny]; };
+  vsn = derive2 { name="vsn"; version="3.72.0"; sha256="1r6cd92d4xlx4zdyy1sfaxicjf4q3arflmswpdkckkc4h9c6zf8m"; depends=[affy Biobase ggplot2 lattice limma]; };
+  vtpnet = derive2 { name="vtpnet"; version="0.44.0"; sha256="1fi4yjh7nvrq9fzba771i32p6qhq3cl7c9sil1hpc9l4k9bxfdfp"; depends=[doParallel foreach GenomicRanges graph gwascat]; };
+  vulcan = derive2 { name="vulcan"; version="1.26.0"; sha256="1fimj4rbrw6wy1kl6is49v33y6c1s3n9nkanpqibkgk4g3cljxfa"; depends=[Biobase caTools ChIPpeakAnno csaw DESeq2 DiffBind GenomicRanges gplots locfit S4Vectors TxDb_Hsapiens_UCSC_hg19_knownGene viper wordcloud zoo]; };
+  waddR = derive2 { name="waddR"; version="1.18.0"; sha256="160v6qqcx3fn657p7blq261nqclww2wic3gp0k855d3kx4i12i5l"; depends=[arm BiocFileCache BiocParallel eva Rcpp RcppArmadillo SingleCellExperiment]; };
+  wateRmelon = derive2 { name="wateRmelon"; version="2.10.0"; sha256="19zlv9aglllsjq3jcnlw994bkanjdq0ib46k7wjsig04cx4apz1v"; depends=[Biobase IlluminaHumanMethylation450kanno_ilmn12_hg19 illuminaio limma lumi matrixStats methylumi ROC]; };
+  wavClusteR = derive2 { name="wavClusteR"; version="2.38.0"; sha256="0yr4jfaxs253xg5q0kds8fm97kqacx67pw1c80yx2w79v7nqskgv"; depends=[BiocGenerics Biostrings foreach GenomicFeatures GenomicRanges ggplot2 Hmisc IRanges mclust Rsamtools rtracklayer S4Vectors seqinr stringr]; };
+  weaver = derive2 { name="weaver"; version="1.70.0"; sha256="08k5pkd16n9jyf45y8wh8lzk7dwkkpiai87fnrxg440qjb91pzsm"; depends=[codetools digest]; };
+  webbioc = derive2 { name="webbioc"; version="1.76.0"; sha256="1ws4w2kf514adk50sjadgasm7z1xvklcb8s243m12fvlg63dia9i"; depends=[affy annaffy Biobase BiocManager gcrma multtest qvalue vsn]; };
+  weitrix = derive2 { name="weitrix"; version="1.16.0"; sha256="01jp94k2qlxbci1kidx4lnxkz0bf4vaj5p31c4brcmgrzv0a1pz4"; depends=[assertthat BiocGenerics BiocParallel Ckmeans_1d_dp DelayedArray DelayedMatrixStats dplyr ggplot2 glm2 limma purrr reshape2 RhpcBLASctl rlang S4Vectors scales SummarizedExperiment topconfects]; };
+  widgetTools = derive2 { name="widgetTools"; version="1.82.0"; sha256="0knszrfapndnjzv5948qbfsjamlf7g04yry7yx294l8iwvwip6qv"; depends=[]; };
+  wiggleplotr = derive2 { name="wiggleplotr"; version="1.28.0"; sha256="1px7rgvaj6kks6fp7yqsqjwy4knlzgllzxsiimv8nikmbd57dmi0"; depends=[assertthat cowplot dplyr GenomeInfoDb GenomicRanges ggplot2 IRanges purrr rtracklayer S4Vectors]; };
+  wpm = derive2 { name="wpm"; version="1.14.0"; sha256="1623q58fjxnx1632fn5c5rhx0zpglbjpp7zqp15f2gch01ac0xdy"; depends=[Biobase cli config dplyr DT ggplot2 golem logging RColorBrewer rlang shiny shinycustomloader shinydashboard shinyWidgets stringr SummarizedExperiment]; };
+  wppi = derive2 { name="wppi"; version="1.12.0"; sha256="1mvr5bpsng87yl1bhd22h45830vw3sla1ysnr29px13if2q5ylmy"; depends=[dplyr igraph logger magrittr Matrix OmnipathR progress purrr RCurl rlang tibble tidyr]; };
+  xcms = derive2 { name="xcms"; version="4.2.2"; sha256="1zk9l4ll3047fj0rngvjka2hkg2by26n2h3xm1iyvfiw5068y74y"; depends=[Biobase BiocGenerics BiocParallel IRanges jsonlite lattice MassSpecWavelet MetaboCoreUtils MsCoreUtils MsExperiment MsFeatures MSnbase mzR progress ProtGenerics RColorBrewer S4Vectors Spectra SummarizedExperiment]; };
+  xcore = derive2 { name="xcore"; version="1.8.0"; sha256="04156svl1cjbhy51d7fbgdilp832wfifg37yr9civ829iyi79fha"; depends=[DelayedArray edgeR foreach GenomicRanges glmnet IRanges iterators magrittr Matrix MultiAssayExperiment S4Vectors]; };
+  xmapbridge = derive2 { name="xmapbridge"; version="1.62.0"; sha256="0laahd3v5m313q1iq259aikgqf7zlmpxyxhws2pr7vg97g37bbhs"; depends=[]; };
+  yamss = derive2 { name="yamss"; version="1.30.0"; sha256="0l9wqijwlq1gwybj2fy6jwgq6ja1mvx8yfdv174g5mjflx8nmc06"; depends=[BiocGenerics data_table EBImage IRanges limma Matrix mzR S4Vectors SummarizedExperiment]; };
+  yarn = derive2 { name="yarn"; version="1.30.0"; sha256="1r0dj65i8xg1yb6x7ggb3s40hvzbh596k2g9bxblsbl18z867ydp"; depends=[Biobase biomaRt downloader edgeR gplots limma matrixStats preprocessCore quantro RColorBrewer readr]; };
+  zFPKM = derive2 { name="zFPKM"; version="1.26.0"; sha256="1pgmw41xdq9gd2shc6kawgxz9sw1ydlgs0p35k99k2v50f86r2wy"; depends=[checkmate dplyr ggplot2 SummarizedExperiment tidyr]; };
+  zellkonverter = derive2 { name="zellkonverter"; version="1.14.0"; sha256="13qkj9adv5is4fas667kxzc2zgni3ayl5hbimakq8y4mw6qj04dn"; depends=[basilisk cli DelayedArray Matrix reticulate S4Vectors SingleCellExperiment SummarizedExperiment]; };
+  zenith = derive2 { name="zenith"; version="1.6.0"; sha256="14mj5flig4f0s3qgny26wj8l50d5f8bdp66gnh83wsqnln784x8m"; depends=[EnrichmentBrowser ggplot2 GSEABase limma msigdbr progress Rdpack reshape2 Rfast tidyr variancePartition]; };
+  zinbwave = derive2 { name="zinbwave"; version="1.26.0"; sha256="07zlvzfs1c4gcj9hwgqbjhgbrffi301620chrf5lvzly4v7hafwi"; depends=[BiocParallel edgeR genefilter Matrix SingleCellExperiment softImpute SummarizedExperiment]; };
+  zlibbioc = derive2 { name="zlibbioc"; version="1.50.0"; sha256="155q6983xjdjpq445lpg5n9gzf8gr18nll6dmjk7jwdq7fdxb602"; depends=[]; };
   ABAEnrichment = derive2 { name="ABAEnrichment"; version="1.24.0"; sha256="1sp3f72rzlr822dxx42bswynrwwfx6f520hdhfdikqp13p2y4044"; depends=[ABAData data_table GOfuncR gplots gtools Rcpp]; broken = true; };
   ALPS = derive2 { name="ALPS"; version="1.5.0"; sha256="1aydvzc6x0871iasij68xqdlhjyg69qbqxm0qh1q52w8gj2nyq3p"; depends=[assertthat BiocParallel ChIPseeker corrplot data_table dplyr genefilter GenomicRanges GGally gghalves ggplot2 ggseqlogo Gviz magrittr org_Hs_eg_db plyr reshape2 rtracklayer stringr tibble tidyr TxDb_Hsapiens_UCSC_hg19_knownGene TxDb_Hsapiens_UCSC_hg38_knownGene]; broken = true; };
   ASpediaFI = derive2 { name="ASpediaFI"; version="1.11.0"; sha256="13jny6ca8hdf269z37baaggfs7jss00ln09apn42pj411g3p7nms"; depends=[BiocParallel biomaRt dplyr DRaWR e1071 fgsea GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 Gviz igraph IRanges IVAS limma Matrix reshape2 ROCR Rsamtools rtracklayer S4Vectors scales SummarizedExperiment]; broken = true; };
@@ -2212,48 +2229,69 @@ in with self; {
   BAC = derive2 { name="BAC"; version="1.58.0"; sha256="00dkhns9n1x4wmlxjcw75h7iwwk37zlv1c2fi0g1mmsw1xvdjzp6"; depends=[]; broken = true; };
   BDMMAcorrect = derive2 { name="BDMMAcorrect"; version="1.18.1"; sha256="17lsgl5mczfk2flkrclxhsqkkpr6mncccywm68l0z02pi5xhd8j7"; depends=[ape ellipse ggplot2 Rcpp RcppArmadillo RcppEigen SummarizedExperiment vegan]; broken = true; };
   BGmix = derive2 { name="BGmix"; version="1.59.0"; sha256="16fzgxcy4sk0kd67vzdxqz81s84dvh4bqss9cbl9bn6vhpfsnfyf"; depends=[KernSmooth]; broken = true; };
+  BRGenomics = derive2 { name="BRGenomics"; version="1.14.1"; sha256="09kpb9jn84np1z8k72ngsbd0xx6v0x3kcl738wizr64w0j9zhlla"; depends=[DESeq2 GenomeInfoDb GenomicAlignments GenomicRanges IRanges Rsamtools rtracklayer S4Vectors SummarizedExperiment]; broken = true; };
+  BgeeCall = derive2 { name="BgeeCall"; version="1.18.1"; sha256="1ipypkyfqx6mahiwl0gzdsi7z9j9cm5rgfw4ybgh6blfq8kg9qyk"; depends=[biomaRt Biostrings data_table dplyr GenomicFeatures jsonlite rhdf5 rslurm rtracklayer sjmisc tximport]; broken = true; };
   BioMM = derive2 { name="BioMM"; version="1.15.0"; sha256="01lfw0npcclcyqqh2xkhjq9jw0irbk13fsj5y1b3rz1amzzngg6p"; depends=[BiocParallel CMplot e1071 ggplot2 glmnet imager lattice nsprcomp precrec ranger rms topGO vioplot xlsx]; broken = true; };
+  BioNetStat = derive2 { name="BioNetStat"; version="1.22.0"; sha256="1rbb36v64b9xbk2dsf6wsyrhwwbkysrj8fp1g22y3gisdk170sg8"; depends=[BiocParallel DT ggplot2 Hmisc igraph knitr markdown pathview pheatmap plyr psych RColorBrewer RJSONIO rmarkdown shiny shinyBS whisker yaml]; broken = true; };
   BioPlex = derive2 { name="BioPlex"; version="1.2.3"; sha256="0cn0x6ij2a3xy61bq0qy5amp0ipj4r4shh7g0vlwbkrclj9w347r"; depends=[BiocFileCache GenomeInfoDb GenomicRanges GEOquery graph SummarizedExperiment]; broken = true; };
+  BioTIP = derive2 { name="BioTIP"; version="1.16.0"; sha256="1bbjfv3bi20xlk8h7r5ipav6mfs27lmj0zjb5mk1gmp071dmnk0y"; depends=[cluster GenomicRanges igraph MASS psych scran stringr]; broken = true; };
   BiocDockerManager = derive2 { name="BiocDockerManager"; version="1.11.0"; sha256="0w393f14i253pnk0jzf2ci4g5cnxshwdjmix2r8arlnadh7spjyk"; depends=[dplyr httr memoise readr whisker]; broken = true; };
   BitSeq = derive2 { name="BitSeq"; version="1.41.0"; sha256="185cssrvaw2x0r3y5fqnfqm31924ccwg33qpj3v8ywrh3x7qn22p"; depends=[IRanges Rhtslib Rsamtools S4Vectors]; broken = true; };
   BrainSABER = derive2 { name="BrainSABER"; version="1.8.0"; sha256="1nxcjvaip7pp387bhdc2pmjai3chib1n63ig0cslhppzzjp2y6jd"; depends=[BiocFileCache biomaRt data_table lsa S4Vectors shiny SummarizedExperiment]; broken = true; };
   CAnD = derive2 { name="CAnD"; version="1.27.0"; sha256="14x0m5iv7dm1iii5zsny9wnf4j5ddh0kij2jm658r3i4wnc99mkb"; depends=[ggplot2 reshape]; broken = true; };
   CNVgears = derive2 { name="CNVgears"; version="1.8.0"; sha256="1p7dxzkna3czkpsidj586hfwhymrjwvjr6q5f2pq7zlmpn6f8svx"; depends=[data_table ggplot2]; broken = true; };
+  COHCAP = derive2 { name="COHCAP"; version="1.48.0"; sha256="1czbmjmrldp4xwf2pi542aqxxgjg34bvky716fjf5y3zxp4j5pnd"; depends=[BH COHCAPanno gplots RColorBrewer Rcpp RcppArmadillo WriteXLS]; broken = true; };
+  CORREP = derive2 { name="CORREP"; version="1.68.0"; sha256="1ida60gpbkr5iyn74y6df8gd0znjkzbidyi7sz4my47fw4j8wrin"; depends=[e1071]; broken = true; };
   CSSP = derive2 { name="CSSP"; version="1.37.0"; sha256="08l8ag82n9hdrj31m37f4fm9kvxjx7xyprdlbi20aqrzsrd227gr"; depends=[]; broken = true; };
   CancerInSilico = derive2 { name="CancerInSilico"; version="2.18.0"; sha256="0szbz88wnr3dbf7k9bhihv6hkr29gsp9vrllr201wx5qfzl2gncy"; depends=[BH Rcpp]; broken = true; };
   CancerSubtypes = derive2 { name="CancerSubtypes"; version="1.26.0"; sha256="06lw7b43fwh554870w71i676q6gm6kx53580cgg17a7prdjndkmr"; depends=[cluster ConsensusClusterPlus impute limma NMF sigclust survival]; broken = true; };
+  CellaRepertorium = derive2 { name="CellaRepertorium"; version="1.12.0"; sha256="0k9sxh0b9g2841zpkbmcc65v0kfyv1i6sxzdmbr49nzzm27xlbh2"; depends=[BiocGenerics Biostrings dplyr forcats generics glue Matrix progress purrr Rcpp reshape2 rlang S4Vectors stringr tibble tidyr]; broken = true; };
+  Cepo = derive2 { name="Cepo"; version="1.8.0"; sha256="0s1zra4msgbp37r5lp0zs9j2aq054rcmrmhwi3liwp4wkvjbshw8"; depends=[BiocParallel DelayedArray DelayedMatrixStats dplyr ggplot2 GSEABase HDF5Array patchwork reshape2 rlang S4Vectors SingleCellExperiment SummarizedExperiment]; broken = true; };
   ChIC = derive2 { name="ChIC"; version="1.19.0"; sha256="0zbmhixxn3skn8csz93fyyfamz1n3gzjzb2caw8ybi2cysgzz5ys"; depends=[BiocGenerics caret caTools ChIC_data genomeIntervals GenomicRanges IRanges progress randomForest Rsamtools S4Vectors]; broken = true; };
   Clonality = derive2 { name="Clonality"; version="1.47.0"; sha256="0yxwwc0sl3impvzr0bmjmdn65z6qx6lf5pwik2p8wxxgaybvff9r"; depends=[DNAcopy]; broken = true; };
   CoRegNet = derive2 { name="CoRegNet"; version="1.38.0"; sha256="19df43l35dkf36dhq8fx8a9gm1grxymrmpcix0b4qmxrzwjp0s8k"; depends=[arules igraph shiny]; broken = true; };
+  CoSIA = derive2 { name="CoSIA"; version="1.2.0"; sha256="14d7l88346wkh4fj9y4f2lywfqbawz60z86f6wm2r2vh8zhcbk8i"; depends=[AnnotationDbi annotationTools biomaRt dplyr ExperimentHub ggplot2 homologene magrittr org_Ce_eg_db org_Dm_eg_db org_Dr_eg_db org_Hs_eg_db org_Mm_eg_db org_Rn_eg_db plotly RColorBrewer readr stringr tibble tidyr tidyselect]; broken = true; };
   CompGO = derive2 { name="CompGO"; version="1.28.0"; sha256="16nlrk9wbxj51y8s7s58mdhpi70ghfacxi283406gwya3cm79f0n"; depends=[GenomicFeatures ggplot2 pathview pcaMethods reshape2 Rgraphviz rtracklayer TxDb_Mmusculus_UCSC_mm9_knownGene]; broken = true; };
   CopywriteR = derive2 { name="CopywriteR"; version="2.29.0"; sha256="1h4cyrjwdazgk49yzi9lvya8bfz9r4cpq19hyzikvc81ia8zdxs6"; depends=[BiocParallel chipseq CopyhelpeR data_table DNAcopy futile_logger GenomeInfoDb GenomicAlignments GenomicRanges gtools IRanges matrixStats Rsamtools S4Vectors]; broken = true; };
   CountClust = derive2 { name="CountClust"; version="1.21.0"; sha256="17px9jkpjwz0j2f5h8xv52wh24ilqvlb6dvczjc36lb7mq4cw3sq"; depends=[cowplot flexmix ggplot2 gtools limma maptpx picante plyr reshape2 slam SQUAREM]; broken = true; };
   CytoTree = derive2 { name="CytoTree"; version="1.6.0"; sha256="1dsdhwjkd3ngnw50fs6vz048afk47r95vhi0wqj8sip11nhndkd8"; depends=[Biobase BiocNeighbors cluster destiny flowCore FlowSOM flowUtils ggplot2 gmodels igraph limma Matrix matrixStats mclust pheatmap prettydoc RANN Rcpp Rtsne scatterpie scatterplot3d stringr sva umap]; broken = true; };
   DEComplexDisease = derive2 { name="DEComplexDisease"; version="1.18.0"; sha256="12gw9b0gdwyih51j2gzay6vxhycgc52n8svd0slv6wsbw5rc19lh"; depends=[BiocParallel ComplexHeatmap DESeq2 edgeR Rcpp SummarizedExperiment]; broken = true; };
   DMRforPairs = derive2 { name="DMRforPairs"; version="1.35.0"; sha256="1fdj2kk4hy1cy7lvxdcdigzvjsggsrchff10mccwwpycc4h115dj"; depends=[GenomicRanges Gviz R2HTML]; broken = true; };
-  EasyCellType = derive2 { name="EasyCellType"; version="1.2.0"; sha256="1l68g7hlcfmszf9sg1nagkv00sgd80klgi25jizabj6c1mg0pm13"; depends=[AnnotationDbi clusterProfiler dplyr forcats ggplot2 magrittr org_Hs_eg_db org_Mm_eg_db rlang]; broken = true; };
+  DeepBlueR = derive2 { name="DeepBlueR"; version="1.27.0"; sha256="03v1ag250zq8wj3fxnsg2ii8l93vq6dg9dxqyiqdjnbvxc0y26xg"; depends=[data_table diffr dplyr filehash foreach GenomeInfoDb GenomicRanges R_utils RCurl rjson rtracklayer settings stringr withr XML]; broken = true; };
+  EBSeqHMM = derive2 { name="EBSeqHMM"; version="1.35.0"; sha256="1vgpda6h9caq67iqdd88mrhq8502jc056zf8fgwfgd8z9cayhsdn"; depends=[EBSeq]; broken = true; };
   EasyqpcR = derive2 { name="EasyqpcR"; version="1.31.0"; sha256="0lb2px789668fr1gxghycy7lbdkpwmippv6xmmwws6rbanvfd6v4"; depends=[matrixStats plotrix plyr]; broken = true; };
+  EpiCompare = derive2 { name="EpiCompare"; version="1.6.7"; sha256="1vaxxikfvmi5n8s80df7sb2jqdvc8q66ybw8hshp79f98aiczfgc"; depends=[AnnotationHub BiocGenerics BRGenomics ChIPseeker data_table downloadthis genomation GenomeInfoDb GenomicRanges ggplot2 htmltools IRanges plotly reshape2 rmarkdown rtracklayer stringr]; broken = true; };
   FCBF = derive2 { name="FCBF"; version="2.8.0"; sha256="1clg3s2av70j0pm0yj0ckvlklkkg5zb0r057pz6wmklllfkmx1dv"; depends=[ggplot2 gridExtra mclust pbapply SummarizedExperiment]; broken = true; };
   FScanR = derive2 { name="FScanR"; version="1.10.0"; sha256="1v4iq2wlvxf0wbs2d9ip3pcfx3a533pqp4as9pr0f6q57cvqi2bs"; depends=[]; broken = true; };
   FindMyFriends = derive2 { name="FindMyFriends"; version="1.23.0"; sha256="0xbhl6ljxb522r5062vv6xdziaaqkkwylmvlymvc5f1grjz0a4z9"; depends=[Biobase BiocGenerics BiocParallel Biostrings digest dplyr filehash ggdendro ggplot2 gtable igraph IRanges kebabs Matrix Rcpp reshape2 S4Vectors]; broken = true; };
   FlowRepositoryR = derive2 { name="FlowRepositoryR"; version="1.23.0"; sha256="04lk2cahf6zqnhpzh0zwas4vmvaz4kcik9ri65bs9d9ximzjam91"; depends=[jsonlite RCurl XML]; broken = true; };
   FoldGO = derive2 { name="FoldGO"; version="1.18.0"; sha256="0h08yv1kykllaanc562ncwv3ajic7cd4wcqba24nlbh6agsazwyk"; depends=[ggplot2 tidyr topGO]; broken = true; };
+  FunChIP = derive2 { name="FunChIP"; version="1.28.0"; sha256="1qhwabm7vgjqmgxdla6qs70sncvzjc8qh5vpq5xqp50hk1lli7f1"; depends=[doParallel fda foreach GenomeInfoDb GenomicAlignments GenomicRanges RColorBrewer Rcpp Rsamtools shiny]; broken = true; };
   GAPGOM = derive2 { name="GAPGOM"; version="1.11.0"; sha256="0sl97w5zx4zdrdbcwayqyvgxspaxpbils3mpsrim0zlspjrjcy6z"; depends=[AnnotationDbi Biobase BiocFileCache data_table dplyr fastmatch GEOquery GO_db GOSemSim graph igraph magrittr Matrix matrixStats org_Hs_eg_db org_Mm_eg_db plyr RBGL]; broken = true; };
   GCSConnection = derive2 { name="GCSConnection"; version="1.7.0"; sha256="1psmw3825whyzvbzqpqksgcl09b6kfyb8k5vny6ljkjbac1jzvnf"; depends=[googleAuthR googleCloudStorageR httr jsonlite Rcpp]; broken = true; };
   GCSFilesystem = derive2 { name="GCSFilesystem"; version="1.6.0"; sha256="0qk8xyg06f71y4r1q1zpcj89irh9i6cd9z6nqlx635x8if84sh6d"; depends=[]; broken = true; };
   GCSscore = derive2 { name="GCSscore"; version="1.14.0"; sha256="0fqr0sgplpbkdpvwgi8fpmwmnqja41622pvkkzsalbzai021hgp3"; depends=[affxparser Biobase BiocManager data_table devtools dplR RSQLite stringr]; broken = true; };
+  GISPA = derive2 { name="GISPA"; version="1.26.0"; sha256="19vbcfdf959xs6kgds37ij3qay9x61dzrlvcs238m7hywl4dn3lz"; depends=[Biobase changepoint data_table genefilter GSEABase HH lattice latticeExtra plyr scatterplot3d]; broken = true; };
+  GOSim = derive2 { name="GOSim"; version="1.40.0"; sha256="1izsjs3li1qcp2nfy7zk3zbf3hh7kq75r78ijbn5yln9fgs6mbv1"; depends=[annotate AnnotationDbi cluster corpcor flexmix GO_db graph Matrix org_Hs_eg_db RBGL Rcpp topGO]; broken = true; };
+  GOsummaries = derive2 { name="GOsummaries"; version="2.37.0"; sha256="1r2a1bym6hwhah4gq47j7983znwsl3fwbhx9lw9j1nxm4ip0d7nr"; depends=[ggplot2 gProfileR gtable limma plyr Rcpp reshape2]; broken = true; };
   GRridge = derive2 { name="GRridge"; version="1.22.0"; sha256="0vmwm50dwk3im3qx40vh9ipmfqywzz5fmmm79b74zjcd3qjrznf3"; depends=[glmnet graph Iso mvtnorm penalized survival]; broken = true; };
   GeneAccord = derive2 { name="GeneAccord"; version="1.15.0"; sha256="1dlnqdcrl1fv5yf0zwfgkqfd2x19fv6q84p7c730nmnnaqal6md1"; depends=[biomaRt caTools dplyr ggplot2 ggpubr gtools magrittr maxLik RColorBrewer reshape2 tibble]; broken = true; };
   GeneAnswers = derive2 { name="GeneAnswers"; version="2.36.0"; sha256="1f8q3hi913khyy1cc3yp2635gaik47alsqmhi0mi24cy340faplz"; depends=[annotate Biobase downloader Heatplus igraph KEGGREST MASS RBGL RColorBrewer RCurl RSQLite XML]; broken = true; };
   GenoGAM = derive2 { name="GenoGAM"; version="2.11.0"; sha256="058qix2h0zm2k9csmbdhci2wqih3lyggjj591cqn0ls2nv7bnyvj"; depends=[BiocParallel Biostrings data_table DelayedArray DESeq2 futile_logger GenomeInfoDb GenomicAlignments GenomicRanges HDF5Array IRanges Matrix Rcpp RcppArmadillo rhdf5 Rsamtools S4Vectors sparseinv SummarizedExperiment]; broken = true; };
   HPAStainR = derive2 { name="HPAStainR"; version="1.9.0"; sha256="1bjysi3x8248f262v4rzi2y50rlzryb987wbvdjy6af84nq7hd09"; depends=[data_table dplyr scales shiny stringr tibble tidyr]; broken = true; };
+  HTqPCR = derive2 { name="HTqPCR"; version="1.56.0"; sha256="14cff36ikbqhd5xizihpxzsv9jimcpbgnd381jd154pgi60bil0m"; depends=[affy Biobase gplots limma RColorBrewer]; broken = true; };
   IRISFGM = derive2 { name="IRISFGM"; version="1.8.0"; sha256="1n13rsbg5y0xnr6in18silifx8jhqzjj1vb5kpjgy5ml55im1s5r"; depends=[AdaptGauss AnnotationDbi anocva clusterProfiler colorspace DEsingle DrImpute ggplot2 ggpubr ggraph igraph knitr Matrix MCL mixtools org_Hs_eg_db org_Mm_eg_db pheatmap Polychrome RColorBrewer Rcpp scater scran Seurat SingleCellExperiment]; broken = true; };
+  ImmuneSpaceR = derive2 { name="ImmuneSpaceR"; version="1.30.0"; sha256="0lhilrh4xyw1cvqnx4b6g0llm9b1i4l2r476d4hmypkkgl25q8n7"; depends=[Biobase curl data_table digest flowCore flowWorkspace ggplot2 gplots heatmaply httr jsonlite pheatmap plotly preprocessCore R6 Rlabkey rmarkdown scales]; broken = true; };
+  IntOMICS = derive2 { name="IntOMICS"; version="1.2.0"; sha256="1qhni8p8zap9szi499jrdxkacdrb7vdd4va5h4n0kdi4qr80vrzh"; depends=[bestNormalize bnlearn bnstruct cowplot ggplot2 ggraph gplots igraph matrixStats numbers RColorBrewer rlang SummarizedExperiment]; broken = true; };
   IsoGeneGUI = derive2 { name="IsoGeneGUI"; version="2.31.0"; sha256="1w7zxsvmcrz8cj8g8xa1vqbzfycdhgsclhcjmkqjw1hwz6fp3xgn"; depends=[Biobase ff geneplotter goric Iso IsoGene jpeg multtest ORCME ORIClust RColorBrewer Rcpp relimp tkrplot xlsx]; broken = true; };
+  LPEadj = derive2 { name="LPEadj"; version="1.62.0"; sha256="17m5lclr2rwb2z0i230gsxkccysmpcvsp4kxjpdjhvnikfm46ssp"; depends=[LPE]; broken = true; };
+  LineagePulse = derive2 { name="LineagePulse"; version="1.21.0"; sha256="09x1i7slysqf3dpjzck6rgfzhyswaj0kk8i047yscg8fcaksbmqg"; depends=[BiocParallel circlize ComplexHeatmap ggplot2 gplots knitr Matrix RColorBrewer SingleCellExperiment SummarizedExperiment]; broken = true; };
   LowMACA = derive2 { name="LowMACA"; version="1.28.0"; sha256="0j5233xziszwak65rypd9f8lsp25sdr4j5nm5kanj4d4wd0zsdqv"; depends=[BiocParallel Biostrings cBioPortalData data_table gridBase httr LowMACAAnnotation motifStack plyr RColorBrewer reshape2 stringr]; broken = true; };
   MACPET = derive2 { name="MACPET"; version="1.15.1"; sha256="0742i3fxg2793lhgpxb4whh6mwvzd4bn86ykd0rv8sgilxyq5zsl"; depends=[BH bigmemory BiocParallel Biostrings futile_logger GenomeInfoDb GenomicAlignments GenomicRanges GEOquery gtools InteractionSet intervals IRanges knitr plyr Rbowtie Rcpp Rsamtools rtracklayer S4Vectors ShortRead]; broken = true; };
   MIGSA = derive2 { name="MIGSA"; version="1.21.0"; sha256="0b7w9lzi8xb1vzh7zahw7wh9jm7x1y04rs2gvvjmfbdfw085rdpm"; depends=[AnnotationDbi Biobase BiocGenerics BiocParallel data_table edgeR futile_logger ggdendro ggplot2 GO_db GOstats graph GSEABase ismev jsonlite limma matrixStats org_Hs_eg_db RBGL reshape2 Rgraphviz vegan]; broken = true; };
   MIMOSA = derive2 { name="MIMOSA"; version="1.37.0"; sha256="0dpz0r1kswdb4wzkpj5798gs627vzvvbwbkild2fc1gvmh9p8lwc"; depends=[Biobase coda data_table dplyr Formula ggplot2 MASS MCMCpack modeest plyr pracma Rcpp RcppArmadillo reshape rlang scales testthat tidyr]; broken = true; };
   MMAPPR2 = derive2 { name="MMAPPR2"; version="1.14.0"; sha256="14m41hi79f7m2qigjjcgy08awrf0654ridgm6wxcq8cmmlm68g8a"; depends=[Biobase BiocGenerics BiocParallel data_table dplyr ensemblVEP GenomeInfoDb GenomicRanges gmapR IRanges magrittr Rsamtools S4Vectors stringr tidyr VariantAnnotation VariantTools]; broken = true; };
+  MQmetrics = derive2 { name="MQmetrics"; version="1.10.0"; sha256="15jkmdj2k5h8vbi332y7b4xzm2330g2s13l6lf2d1v9pg5aqrisq"; depends=[cowplot dplyr ggforce gghalves ggplot2 ggpubr ggrepel gridExtra gtable knitr magrittr plyr purrr RColorBrewer readr reshape2 rlang rmarkdown scales stringr tidyr]; broken = true; };
   MSEADbi = derive2 { name="MSEADbi"; version="1.2.0"; sha256="1g1kg3nh7iwg5nrpmig6srw6as4yfwmbqn965pffrk0zp19llsbf"; depends=[AnnotationDbi Biobase DBI RSQLite]; broken = true; };
   MSGFgui = derive2 { name="MSGFgui"; version="1.28.0"; sha256="0dkj2nbv5xv4v4bbmf91av0ryh9pxdfp7fmbqlma4xyf1r7zmx4c"; depends=[MSGFplus mzID mzR shiny shinyFiles xlsx]; broken = true; };
   MSGFplus = derive2 { name="MSGFplus"; version="1.28.0"; sha256="1k0qm049gk4gjhd88zhxxrpc944r7ndq8dys08ai2kbaqignvb7y"; depends=[mzID ProtGenerics]; broken = true; };
@@ -2262,6 +2300,7 @@ in with self; {
   MetaVolcanoR = derive2 { name="MetaVolcanoR"; version="1.14.0"; sha256="11fxjv0kb65wc2237rh3340j72v3zsd4s019bi07rbpqnl246pnj"; depends=[cowplot data_table dplyr ggplot2 htmlwidgets metafor metap plotly rlang tidyr topconfects]; broken = true; };
   Metab = derive2 { name="Metab"; version="1.33.0"; sha256="0fid4b3yk56z2sm6hxfp0z30nqjsky9sv4x49x912bw61amvrwky"; depends=[pander svDialogs xcms]; broken = true; };
   MethCP = derive2 { name="MethCP"; version="1.11.0"; sha256="099jaadjfalvxpwq3k630yrqa1dfbp8rqn2fahz1rsha3y5z9bys"; depends=[BiocParallel bsseq DNAcopy DSS GenomeInfoDb GenomicRanges IRanges methylKit S4Vectors]; broken = true; };
+  MobilityTransformR = derive2 { name="MobilityTransformR"; version="1.6.0"; sha256="1292fk08zi1zf0hdj56vzdgv9h9nr16vmbzypqkam7lvqqnig49h"; depends=[MetaboCoreUtils MSnbase Spectra xcms]; broken = true; };
   NBSplice = derive2 { name="NBSplice"; version="1.15.0"; sha256="0yn7s7igshall34cflmdwvmknv8h1zdi6vg8svvcyn9fvzlgjdm8"; depends=[BiocParallel car edgeR ggplot2 MASS reshape2]; broken = true; };
   NanoStringQCPro = derive2 { name="NanoStringQCPro"; version="1.32.0"; sha256="0k2sgs6d25ryjlm9c17nxqqcdi3q04j3y9qb1rig23jimfvs3xs9"; depends=[AnnotationDbi Biobase knitr NMF org_Hs_eg_db png RColorBrewer]; broken = true; };
   NeighborNet = derive2 { name="NeighborNet"; version="1.18.0"; sha256="046k1799wz77ww4jhf935pfz2637dmzy7p848iyjxj1yc5g51jq8"; depends=[graph]; broken = true; };
@@ -2270,53 +2309,75 @@ in with self; {
   OmicsLonDA = derive2 { name="OmicsLonDA"; version="1.15.0"; sha256="1kn26k0lnk7hgfzk1kh5bh41zkia8a4pzsfr35mbjrflcxmvgk2w"; depends=[BiocGenerics BiocParallel ggplot2 gss plyr pracma SummarizedExperiment zoo]; broken = true; };
   PERFect = derive2 { name="PERFect"; version="1.14.0"; sha256="0ygbirfnp122c8jzrig5cnm6rxyhz126ixl5ca49i13kizcv2ns9"; depends=[fitdistrplus ggplot2 Matrix phyloseq psych sn zoo]; broken = true; };
   PFP = derive2 { name="PFP"; version="1.7.0"; sha256="1328a73ggg7l1drjbmv67jcvlv83khn1k252mf81xj4gf213d0di"; depends=[clusterProfiler ggplot2 graph igraph KEGGgraph magrittr plyr tidyr]; broken = true; };
+  PSEA = derive2 { name="PSEA"; version="1.36.0"; sha256="02gnxacnpzz74bk4y4nkd6pd8y8abi0988zf03x1mcgnn7hk1s2y"; depends=[Biobase MASS]; broken = true; };
   PSICQUIC = derive2 { name="PSICQUIC"; version="1.34.0"; sha256="0gkkxxbc2a7cin92qwn1masqfigyz9s4fhyy2daa17r3ckk4ccgx"; depends=[BiocGenerics biomaRt httr IRanges plyr RCurl]; broken = true; };
   PanVizGenerator = derive2 { name="PanVizGenerator"; version="1.22.0"; sha256="0rhx2jc5kc9bl00v16frh8b4075n0jqn4s37pkvqp3ypcbqws32d"; depends=[igraph jsonlite pcaMethods shiny]; broken = true; };
+  Pi = derive2 { name="Pi"; version="2.14.0"; sha256="16jh7p3f6nk2hwvp44b9sas1dl618m520xj553x9dkaj77jmzp6d"; depends=[BiocGenerics caret dplyr GenomeInfoDb GenomicRanges ggnetwork ggplot2 ggrepel glmnet igraph IRanges lattice MASS Matrix osfr plot3D purrr randomForest RCircos readr ROCR scales supraHex tibble tidyr]; broken = true; };
+  PloGO2 = derive2 { name="PloGO2"; version="1.14.0"; sha256="0r0zf8dfb4pv4hv5fp5v61i3q5bnzwxws1v3cnx7l64b0hjl2ffi"; depends=[GO_db GOstats httr lattice openxlsx xtable]; broken = true; };
   PoTRA = derive2 { name="PoTRA"; version="1.13.0"; sha256="1a32d1wndb24pxza3h53yddj9z2clff5srny2k00pbbfq1h99mjf"; depends=[BiocGenerics graph graphite igraph org_Hs_eg_db]; broken = true; };
   PrecisionTrialDrawer = derive2 { name="PrecisionTrialDrawer"; version="1.11.0"; sha256="1miw8rj1zn1xv97dkgs66k9g21i6gp3j2m1l1akysskczgam3i2c"; depends=[BiocParallel biomaRt brglm data_table DT GenomicRanges ggplot2 ggrepel googleVis httr IRanges jsonlite LowMACAAnnotation magrittr matrixStats RColorBrewer reshape2 S4Vectors shiny shinyBS stringr XML]; broken = true; };
   ProteomicsAnnotationHubData = derive2 { name="ProteomicsAnnotationHubData"; version="1.24.0"; sha256="0qs5hbx7pww7qxxaimp2xqvs3lwcd41ndls0xcvvlk7pnp4i4sk8"; depends=[AnnotationHub AnnotationHubData Biobase BiocManager Biostrings GenomeInfoDb MSnbase mzR RCurl]; broken = true; };
   PubScore = derive2 { name="PubScore"; version="1.8.0"; sha256="18bmzvv6mxrdlh297i29q24vi5rc4x2mjaryi5asiki186x0hy8d"; depends=[dplyr ggplot2 ggrepel igraph intergraph network progress rentrez sna]; broken = true; };
-  RCSL = derive2 { name="RCSL"; version="1.8.0"; sha256="149bh9bd6h9qg82cnbnl9m8w8d10cw8b0z31qbyb9byfakn0a9hn"; depends=[ggplot2 igraph NbClust pracma RcppAnnoy Rtsne umap]; broken = true; };
   RGalaxy = derive2 { name="RGalaxy"; version="1.38.0"; sha256="0vfsn8cj5c8n58ra1qz85gwmm1747lm3xdz17m20f73g8q78nymd"; depends=[Biobase BiocGenerics optparse roxygen2 XML]; broken = true; };
   RIPAT = derive2 { name="RIPAT"; version="1.10.0"; sha256="154a79xyihxkg3sbwxz9ch0ixqlqv9gwkpsv88i55c75qyzkx2sm"; depends=[biomaRt GenomicRanges ggplot2 IRanges karyoploteR openxlsx plyr regioneR rtracklayer stringr]; broken = true; };
+  RLSeq = derive2 { name="RLSeq"; version="1.5.2"; sha256="0nhip321gbv6phwdwi3qkbmhnfh7fhb9md6xs4lklskwkkrd7s1q"; depends=[AnnotationHub aws_s3 callr caretEnsemble circlize ComplexHeatmap dplyr GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 ggplotify ggprism pheatmap RColorBrewer regioneR rtracklayer valr VennDiagram]; broken = true; };
   RNASeqR = derive2 { name="RNASeqR"; version="1.16.0"; sha256="0m7d3mm644n81630v2m6vv7798x3rjshb9jcp63xq631j1wmk63i"; depends=[ballgown Biostrings clusterProfiler corrplot DESeq2 DOSE edgeR factoextra FactoMineR ggplot2 gridExtra org_Hs_eg_db org_Sc_sgd_db pathview PerformanceAnalytics pheatmap rafalib reshape2 reticulate Rsamtools stringr systemPipeR systemPipeRdata]; broken = true; };
+  RandomWalkRestartMH = derive2 { name="RandomWalkRestartMH"; version="1.22.0"; sha256="0mvh22p0dliwapdgbl5r93dpjdfnvnxdv5ig3y9gd2ndn32h1cyc"; depends=[igraph Matrix]; broken = true; };
   Rcade = derive2 { name="Rcade"; version="1.39.1"; sha256="05cli4h96xcsf6xas9z5ma8bzh10grlwkfgmz4a115ykblwyaj4r"; depends=[baySeq GenomeInfoDb GenomicAlignments GenomicRanges IRanges plotrix rgl Rsamtools S4Vectors]; broken = true; };
-  RcisTarget = derive2 { name="RcisTarget"; version="1.20.0"; sha256="0dp2y85mfn995rvg698xnxlkz1kd8g0byjypxx62cpfldnkrinxl"; depends=[arrow AUCell BiocGenerics data_table dplyr GenomeInfoDb GenomicRanges GSEABase R_utils S4Vectors SummarizedExperiment tibble]; broken = true; };
+  ReQON = derive2 { name="ReQON"; version="1.48.0"; sha256="0w28b3ma8r8rshijdm5jj1z64v91my7hcvw18r9pdwjprh05bw0g"; depends=[rJava Rsamtools seqbias]; broken = true; };
   RefPlus = derive2 { name="RefPlus"; version="1.70.0"; sha256="0ii4pki0gqsfcjlfwq5hx67yf0id2krrgs8qnss4gijj27m8h86m"; depends=[affy affyPLM Biobase preprocessCore]; broken = true; };
-  RegEnrich = derive2 { name="RegEnrich"; version="1.10.0"; sha256="09gkmna3w0x5m0mpq1llrqsrknlx2hncn74f4fksmx4r4mj0gphd"; depends=[BiocParallel BiocSet DESeq2 DOSE dplyr fgsea ggplot2 limma magrittr randomForest reshape2 S4Vectors SummarizedExperiment tibble WGCNA]; broken = true; };
   Rgin = derive2 { name="Rgin"; version="1.15.0"; sha256="1x5zj2d5rvsr2xh0ifpnrys9v91dal1xxhv5mmk16rs8wzwqpqba"; depends=[RcppEigen]; broken = true; };
+  Ringo = derive2 { name="Ringo"; version="1.66.0"; sha256="1ch0akd4k1i4401jwxll5awlq7g12pw7x0kidarn5zva08jgiixd"; depends=[Biobase BiocGenerics genefilter lattice limma Matrix RColorBrewer vsn]; broken = true; };
+  Risa = derive2 { name="Risa"; version="1.44.0"; sha256="140q4x4sl7mffpglwy7hx0z5la2rkq0p1j22k36a4h1073wcpc2q"; depends=[affy Biobase biocViews Rcpp xcms]; broken = true; };
   RmiR = derive2 { name="RmiR"; version="1.49.0"; sha256="16nwh4a97qvyicm4f102xs52lx8cld0b80fykgil86kkd6v8zlja"; depends=[DBI RmiR_Hs_miRNA]; broken = true; };
   RpsiXML = derive2 { name="RpsiXML"; version="2.38.0"; sha256="0x4nph4xss4piq4fgijjjj33yrqqfdbsgn9wvqy17nglvz5gi7bi"; depends=[annotate AnnotationDbi Biobase graph hypergraph RBGL XML]; broken = true; };
+  SANTA = derive2 { name="SANTA"; version="2.38.0"; sha256="0gm9i0pj3c9sir8pmh12b62ah6x1gvy1lrp9hc6hg9rkh4gpyr0y"; depends=[igraph Matrix]; broken = true; };
   SCATE = derive2 { name="SCATE"; version="1.10.0"; sha256="1fkswn9xlbr4mrnr62yzk51dri7rzbvf28whh7qhdfxgyvavw439"; depends=[GenomicAlignments GenomicRanges mclust preprocessCore Rtsne SCATEData splines2 xgboost]; broken = true; };
   SEPIRA = derive2 { name="SEPIRA"; version="1.20.0"; sha256="1yhlm6l9jv8fhdhnhpj7r8cdpnrp1la287x85gcssqjnv5v4k047"; depends=[corpcor limma]; broken = true; };
+  SGCP = derive2 { name="SGCP"; version="1.2.0"; sha256="1cc0brhw77b73nircb3n2ghbihdjmk7l11s8nmkvljydx6b52sja"; depends=[annotate caret DescTools dplyr expm genefilter ggplot2 ggridges GO_db GOstats graph openxlsx org_Hs_eg_db plyr RColorBrewer reshape2 Rgraphviz RSpectra SummarizedExperiment xtable]; broken = true; };
   SISPA = derive2 { name="SISPA"; version="1.30.0"; sha256="0glqk2p06brw9a9prccil02z82nhq2izh2sgfrlmi1kpf8mgszl3"; depends=[changepoint data_table genefilter ggplot2 GSVA plyr]; broken = true; };
   SLGI = derive2 { name="SLGI"; version="1.54.0"; sha256="03jwdq4k44rys3f773c6l985a6v1bacbdghw97p0qpwspmzra8rs"; depends=[AnnotationDbi Biobase BiocGenerics GO_db lattice]; broken = true; };
+  SMAP = derive2 { name="SMAP"; version="1.66.0"; sha256="0m6jvb3jpnk36cv8grj1s3af6nm9xnn3x0mxkrwfbpgzvcn5735n"; depends=[]; broken = true; };
   SPONGE = derive2 { name="SPONGE"; version="1.22.0"; sha256="1ayvigqj5j7s7031gpyhaz3m3z85w9j8j850pggshy9gixvy1mnp"; depends=[Biobase biomaRt caret ComplexHeatmap cvms data_table doRNG dplyr expm foreach ggplot2 ggpubr ggridges glmnet gRbase igraph iterators logging MASS MetBrewer miRBaseConverter ppcor randomForest rlang stringr tidyr tidyverse tnet]; broken = true; };
+  SQUADD = derive2 { name="SQUADD"; version="1.52.0"; sha256="0vg7mhx2aldk53jdgy4k8yk3jyjwklmp13mxch7cxinr8bzbyjh6"; depends=[RColorBrewer]; broken = true; };
   STAN = derive2 { name="STAN"; version="2.26.2"; sha256="0dd4hb2iabvnr6v0ys4jslj7611z1hii8hxkdvwrjbz4nn678wkv"; depends=[BiocGenerics GenomeInfoDb GenomicRanges Gviz IRanges poilog Rsolnp S4Vectors]; broken = true; };
   STROMA4 = derive2 { name="STROMA4"; version="1.24.0"; sha256="1x3zgxkcck8ffh89mql45cp54c94n64kf9x6dan9wl24bj3x869f"; depends=[Biobase BiocParallel cluster matrixStats]; broken = true; };
   ScISI = derive2 { name="ScISI"; version="1.65.0"; sha256="0q3bbfsink5d8xslhp129qwvlq5mdzw8zkv9msd0q8qmkclsbiz1"; depends=[annotate AnnotationDbi apComplex GO_db org_Sc_sgd_db RpsiXML]; broken = true; };
+  SimBindProfiles = derive2 { name="SimBindProfiles"; version="1.40.0"; sha256="0adcyw4x7yw4v20bwx4fzrhqd7g1r9fhpr1nqqnwkg44b51rdm6z"; depends=[Biobase limma mclust Ringo]; broken = true; };
+  SpidermiR = derive2 { name="SpidermiR"; version="1.32.0"; sha256="07s421c8ashww8x99ac18fy1lvjl4zmm3jsz0fggw1gvii172c1x"; depends=[AnnotationDbi gdata httr igraph miRNAtap miRNAtap_db org_Hs_eg_db]; broken = true; };
+  StarBioTrek = derive2 { name="StarBioTrek"; version="1.28.0"; sha256="0cpgn0zcimg18yybfgrjzdczsinvx6n81jjm850gbi76ararq8sc"; depends=[AnnotationDbi e1071 ggplot2 graphite igraph MLmetrics reshape2 ROCR SpidermiR]; broken = true; };
+  SummarizedBenchmark = derive2 { name="SummarizedBenchmark"; version="2.20.0"; sha256="16gzlkyf76fcd46ck417sxh86smivmaggqvyg0v9v0f4jac7610g"; depends=[BiocGenerics BiocParallel crayon digest dplyr ggplot2 mclust rlang S4Vectors sessioninfo stringr SummarizedExperiment tibble tidyr UpSetR]; broken = true; };
   Sushi = derive2 { name="Sushi"; version="1.34.0"; sha256="0adswrbzd93rhy3q56ypwkrk6155vd4zxapvznswyjlxp8ha813q"; depends=[biomaRt zoo]; broken = true; };
   SwimR = derive2 { name="SwimR"; version="1.29.0"; sha256="0n58x3i4k3icvhg8z60zlhpszv8bb9pain07nl9rszyvmpi71vg2"; depends=[gplots R2HTML signal]; broken = true; };
   TCGAbiolinksGUI = derive2 { name="TCGAbiolinksGUI"; version="1.23.0"; sha256="16757szccczlv1q35y1cnmlkr12s46f63z7ijffpb15q85xlaqdx"; depends=[caret clusterProfiler colourpicker data_table downloader DT ELMER ggplot2 ggrepel maftools pathview plotly readr sesame shiny shinyBS shinydashboard shinyFiles shinyjs stringr SummarizedExperiment TCGAbiolinks TCGAbiolinksGUI_data]; broken = true; };
   TDARACNE = derive2 { name="TDARACNE"; version="1.47.0"; sha256="19zf7x2wcfnij1nlh623kim63d6wb3p42mwsn35msds778jvcbxq"; depends=[Biobase Rgraphviz]; broken = true; };
+  TNBC_CMS = derive2 { name="TNBC.CMS"; version="1.18.0"; sha256="1syygq9br5icbjbmi1kq9gs7g3bw1vzmy8mlf8ga2rk1lw6ika90"; depends=[e1071 forestplot GGally ggplot2 ggpubr GSVA pheatmap pracma quadprog R_utils RColorBrewer SummarizedExperiment survival]; broken = true; };
   TSRchitect = derive2 { name="TSRchitect"; version="1.20.0"; sha256="1v9zz8ny9rwkyz98cv49l9ilh68h8mvm2x44n8i8rvjayc50zi9i"; depends=[AnnotationHub BiocGenerics BiocParallel dplyr GenomeInfoDb GenomicAlignments GenomicRanges gtools IRanges readxl Rsamtools rtracklayer S4Vectors SummarizedExperiment]; broken = true; };
   TarSeqQC = derive2 { name="TarSeqQC"; version="1.28.0"; sha256="14ima8ymdb91lpkhdnsg6q7ajxs5p1xzzcsjfhixxkm341k45j35"; depends=[BiocGenerics BiocParallel Biostrings cowplot GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 Hmisc IRanges openxlsx plyr reshape2 Rsamtools S4Vectors]; broken = true; };
   TimeSeriesExperiment = derive2 { name="TimeSeriesExperiment"; version="1.13.0"; sha256="0bdpxxr739qdg92qabfx122k9f43vw2hyxp4yxqlbp37vzgcdf2c"; depends=[DESeq2 dplyr dynamicTreeCut edgeR ggplot2 Hmisc limma magrittr proxy S4Vectors SummarizedExperiment tibble tidyr vegan viridis]; broken = true; };
+  TimiRGeN = derive2 { name="TimiRGeN"; version="1.11.0"; sha256="104j3rdl1mfklqvpsr753zlplr001cqbkphbhf2xrcfw8si7bgr2"; depends=[biomaRt clusterProfiler dplyr FreqProf ggdendro gghighlight ggplot2 gplots gtools igraph Mfuzz MultiAssayExperiment RCy3 readxl reshape2 rWikiPathways scales stringr tidyr]; broken = true; };
+  TnT = derive2 { name="TnT"; version="1.24.0"; sha256="1y4v2rphdils0rvkjsyfynncvmn1js1n5d5qhqmc2v8rhh1wjyv5"; depends=[Biobase data_table GenomeInfoDb GenomicRanges htmlwidgets IRanges jsonlite knitr S4Vectors]; broken = true; };
   TraRe = derive2 { name="TraRe"; version="1.5.0"; sha256="06w5rk2wjam5dhiya9n6kjbjahw4i46cb05zvakcy0f8gwrvb9ic"; depends=[BiocParallel dqrng ggplot2 glmnet gplots gtools hash igraph matrixStats pvclust R_utils SummarizedExperiment]; broken = true; };
   Travel = derive2 { name="Travel"; version="1.6.0"; sha256="074v9hl4gzy8081mlas3mjaplchjrmk2bl4f5nkdjclh46xf3wgg"; depends=[Rcpp]; broken = true; };
   XCIR = derive2 { name="XCIR"; version="1.7.0"; sha256="0n42pw01wv1sk06hby9kwijx6zwaw4lrlpsa0wlkrkf323slkllw"; depends=[biomaRt data_table ggplot2 IRanges readxl S4Vectors seqminer VariantAnnotation]; broken = true; };
   affyPara = derive2 { name="affyPara"; version="1.51.0"; sha256="01165f84snc3ksk0ghw631i2l5jklp4n826jwy5926wvxy3zlwz0"; depends=[affy affyio aplpack snow vsn]; broken = true; };
   alpine = derive2 { name="alpine"; version="1.26.0"; sha256="1md4m9ln1mpxf7d2h7jnsjyi4zrviiqn9fzk1gkz2n6qj7jwpqbb"; depends=[Biostrings GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges graph IRanges RBGL Rsamtools S4Vectors speedglm stringr SummarizedExperiment]; broken = true; };
   alsace = derive2 { name="alsace"; version="1.30.0"; sha256="17adr64g3l2syj0shi57nrvx105w7wrkiqm0qp3hwlk1ivmnadzn"; depends=[ALS ptw]; broken = true; };
+  beadarraySNP = derive2 { name="beadarraySNP"; version="1.68.0"; sha256="1vrizh7fpzv1w2gki0qxhphrfj1jj6m6bjsjsbw0b4n4invybzps"; depends=[Biobase quantsmooth]; broken = true; };
   bigPint = derive2 { name="bigPint"; version="1.15.0"; sha256="1r9gr5f9as09ifagal5k7713h95qjw508cf8ny3j1jmqd24v6xhs"; depends=[DelayedArray dplyr GGally ggplot2 gridExtra hexbin Hmisc htmlwidgets plotly plyr RColorBrewer reshape shiny shinycssloaders shinydashboard stringr SummarizedExperiment tidyr]; broken = true; };
+  biodbMirbase = derive2 { name="biodbMirbase"; version="1.5.0"; sha256="17clip9l8as9pz390bqgj07jxp1rijis2f5hj53s6vqaqmiyz4il"; depends=[biodb chk R6 stringr]; broken = true; };
+  brainflowprobes = derive2 { name="brainflowprobes"; version="1.16.0"; sha256="06gga72ns7h9c6mdbvbj8afpkyizg7maazriilvaq433h6s1pgqb"; depends=[Biostrings BSgenome_Hsapiens_UCSC_hg19 bumphunter cowplot derfinder derfinderPlot GenomicRanges GenomicState ggplot2 RColorBrewer]; broken = true; };
   bridge = derive2 { name="bridge"; version="1.62.0"; sha256="02rf15f3r1kazxml8mk9mi1zxgglsdfrpbg7ny9w0s65f413grg8"; depends=[rama]; broken = true; };
   caOmicsV = derive2 { name="caOmicsV"; version="1.25.0"; sha256="10i4imjihmssdwfys21fsqng8zfp7sxzkc58m8qmnh6s5sccb3sz"; depends=[bc3net igraph]; broken = true; };
   cellTree = derive2 { name="cellTree"; version="1.27.0"; sha256="0yfr59fcbdj03ikkpvw1qcxqrjbkz7nkfmb5m1xr4k9qs39bq9sb"; depends=[gplots igraph maptpx slam topGO topicmodels xtable]; broken = true; };
   chromswitch = derive2 { name="chromswitch"; version="1.22.0"; sha256="007wa8980hkpja33ph3b3fjsjrf91cnwc0a7y4014k8xxmmgfdh7"; depends=[Biobase BiocParallel cluster dplyr GenomicRanges gplots IRanges lazyeval magrittr matrixStats NMF rtracklayer S4Vectors tidyr]; broken = true; };
+  cliqueMS = derive2 { name="cliqueMS"; version="1.16.0"; sha256="1829i6vqplqyvibb7x6ahb7xk0z2s8amivjldnvr17d7hpggmqma"; depends=[BH igraph matrixStats MSnbase Rcpp RcppArmadillo xcms]; broken = true; };
   clonotypeR = derive2 { name="clonotypeR"; version="1.34.0"; sha256="15nnj6c23bcnln1xsmxs7f13m13lvn6did7lvp7ij8gcb0vg2g6q"; depends=[]; broken = true; };
+  coMET = derive2 { name="coMET"; version="1.34.0"; sha256="1pkhnfcvrbj9y88qbbvly4arbz22x8zkx0jsvsmn5klg4xp11fdz"; depends=[biomaRt corrplot GenomicRanges gridExtra Gviz hash IRanges psych rtracklayer S4Vectors]; broken = true; };
   coexnet = derive2 { name="coexnet"; version="1.19.1"; sha256="0zw8a8pqmajqnv5n6i7fn7krwax81sd4c6wqm4zr61fy2blqzv3h"; depends=[acde affy Biobase GEOquery igraph limma minet rmarkdown siggenes STRINGdb SummarizedExperiment vsn]; broken = true; };
   compartmap = derive2 { name="compartmap"; version="1.18.0"; sha256="0lvgwnp5cgn96m9y4snpczfbfs72lxbaa36lnmwa7j07jy4s9108"; depends=[BiocSingular DelayedArray DelayedMatrixStats GenomicRanges ggplot2 HDF5Array Matrix RaggedExperiment reshape2 RMTstat rtracklayer scales SummarizedExperiment]; broken = true; };
   conclus = derive2 { name="conclus"; version="1.5.0"; sha256="09rk73sxqxsy0zq07n67jxqbzb1rlxlj0phg6987szdjwxmag6jc"; depends=[AnnotationDbi Biobase BiocFileCache biomaRt clusterProfiler dbscan doParallel dplyr factoextra foreach fpc GEOquery ggplot2 gridExtra org_Hs_eg_db org_Mm_eg_db pheatmap rlang Rtsne scales scater scran SingleCellExperiment stringr SummarizedExperiment]; broken = true; };
+  contiBAIT = derive2 { name="contiBAIT"; version="1.30.0"; sha256="1asyfx0mbg0pli2g533xmlppfw0s0f1y4vf2rfrnai4chsh1rh0k"; depends=[BH BiocGenerics BiocParallel clue cluster colorspace data_table diagram DNAcopy exomeCopy GenomicAlignments GenomicFiles GenomicRanges ggplot2 gplots gtools IRanges Rcpp reshape2 Rsamtools rtracklayer S4Vectors TSP]; broken = true; };
   copynumber = derive2 { name="copynumber"; version="1.38.0"; sha256="1a664bllaq9pbb5cpd01j919qirylvnm8qd49lwlz89jvqjdri19"; depends=[BiocGenerics GenomicRanges IRanges S4Vectors]; broken = true; };
   crisprseekplus = derive2 { name="crisprseekplus"; version="1.26.0"; sha256="1ccz944jwlcnflrdh1aamfc5b03n6pys65b13f049f0x214vqg68"; depends=[AnnotationDbi BiocManager BSgenome CRISPRseek DT GenomicFeatures GenomicRanges GUIDEseq hash shiny shinyjs]; broken = true; };
   ctgGEM = derive2 { name="ctgGEM"; version="1.7.0"; sha256="0hmapz96r024r3bws1wf0spd0i81viyma859y9nn93jrwxscrcdb"; depends=[Biobase BiocGenerics igraph Matrix monocle sincell SummarizedExperiment TSCAN]; broken = true; };
@@ -2326,12 +2387,16 @@ in with self; {
   dpeak = derive2 { name="dpeak"; version="1.12.0"; sha256="1fx2rrcqmjckk5kk3mfa56b1393b2c8sf566q95d8zmlsvkl03w5"; depends=[BSgenome IRanges MASS Rcpp]; broken = true; };
   dualKS = derive2 { name="dualKS"; version="1.53.0"; sha256="16cfcylmmcj8x2808529lbpm7qbbrxygic0jkaglhqcdxgrqw3rw"; depends=[affy Biobase]; broken = true; };
   eegc = derive2 { name="eegc"; version="1.26.0"; sha256="0m67zjsq2xzk292rp0hdlj8lbfgci2dsdb5hmn4b591fqawwsqbb"; depends=[AnnotationDbi clusterProfiler DESeq2 DOSE edgeR ggplot2 gplots igraph limma org_Hs_eg_db org_Mm_eg_db pheatmap R_utils S4Vectors sna wordcloud]; broken = true; };
+  enrichTF = derive2 { name="enrichTF"; version="1.18.0"; sha256="0lhmlxw7mpb76w2agm25v5qzxgf28wfw2xc0fnlqn2sbbfj295y9"; depends=[BiocGenerics BSgenome clusterProfiler GenomeInfoDb GenomicRanges ggplot2 ggpubr heatmap3 IRanges JASPAR2018 magrittr motifmatchr pipeFrame R_utils rmarkdown rtracklayer S4Vectors TFBSTools]; broken = true; };
   epihet = derive2 { name="epihet"; version="1.13.0"; sha256="1p5sgb438yj6h0fv0v17dhz1pl32vai5zcbmgpgagrd5829a6a7r"; depends=[data_table doParallel foreach GenomicRanges ggplot2 igraph IRanges pheatmap qvalue ReactomePA Rtsne S4Vectors WGCNA]; broken = true; };
+  exomeCopy = derive2 { name="exomeCopy"; version="1.48.0"; sha256="1d3qkr05q8nl3fj0y4qib0q37pwjh004p746nnzk8fmms75l1p11"; depends=[GenomeInfoDb GenomicRanges IRanges Rsamtools]; broken = true; };
+  exomePeak2 = derive2 { name="exomePeak2"; version="1.14.3"; sha256="1hvz18hlvljbv0cmdlxzvsl2ysb5m0c5qq2y8jxzsby3zxlqplph"; depends=[BiocGenerics BiocParallel Biostrings BSgenome DESeq2 GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 IRanges magrittr mclust Rsamtools rtracklayer S4Vectors speedglm SummarizedExperiment]; broken = true; };
   farms = derive2 { name="farms"; version="1.52.0"; sha256="1w1bw8bglcmjsz83vc8s5wl1c58x2bvd365k984pxaw3xl9fj92j"; depends=[affy Biobase MASS]; broken = true; };
   fcoex = derive2 { name="fcoex"; version="1.13.0"; sha256="085r5s5sqrj2701zk5kv3818ksxvxzd76lknzi6bk1svw4d3lsyc"; depends=[clusterProfiler data_table dplyr FCBF ggplot2 ggrepel igraph intergraph Matrix network pathwayPCA progress scales SingleCellExperiment sna stringr]; broken = true; };
   flowCL = derive2 { name="flowCL"; version="1.35.0"; sha256="1jxr0zn3fgm5nqishssxh332mmxfz3fc9zgshn0lbq4avxc2x128"; depends=[graph Rgraphviz]; broken = true; };
   flowMap = derive2 { name="flowMap"; version="1.38.0"; sha256="1mjv55cg5q6gx32sn6h5aqzrpjb5awb6489j8dya56fbivjs7zxj"; depends=[abind ade4 doParallel Matrix reshape2 scales]; broken = true; };
   flowUtils = derive2 { name="flowUtils"; version="1.59.0"; sha256="11x362dqb9mjlsbq6g1qkb8hhnkvm22z5s3wkgmpyy9kyifjkm26"; depends=[Biobase corpcor flowCore graph RUnit XML]; broken = true; };
+  gaggle = derive2 { name="gaggle"; version="1.70.0"; sha256="16jajl03nf8fk29vd4bkj4f1156258skkw3p884ad946ifvabznd"; depends=[graph rJava RUnit]; broken = true; };
   gaia = derive2 { name="gaia"; version="2.39.0"; sha256="023mw2dy6dni7h7a1ild1y6l741kp9bmjzzfyi70jipji1jig4pa"; depends=[]; broken = true; };
   genbankr = derive2 { name="genbankr"; version="1.27.0"; sha256="0fv87cf2y10ijlb0g1x9g9wh95qyljqb1c7k1ihbnjcg36xkh8lc"; depends=[Biobase BiocGenerics Biostrings GenomeInfoDb GenomicFeatures GenomicRanges IRanges rtracklayer S4Vectors VariantAnnotation]; broken = true; };
   genotypeeval = derive2 { name="genotypeeval"; version="1.30.0"; sha256="0mi1d86i4v8gafwszy978n61s5pszrsmbh1in4nggdqwvwnvkqnl"; depends=[BiocGenerics BiocParallel GenomeInfoDb GenomicRanges ggplot2 IRanges rtracklayer VariantAnnotation]; broken = true; };
@@ -2340,26 +2405,32 @@ in with self; {
   gprege = derive2 { name="gprege"; version="1.39.0"; sha256="12yjyb7a7jc86hdi3a3cavqxfzkhmds1m2vigzw5ihhx6028pa78"; depends=[]; broken = true; };
   imageHTS = derive2 { name="imageHTS"; version="1.48.0"; sha256="124pksw08b88bj7l8pckzvgk6sf54d633cnbq2r5il7a09i4caim"; depends=[Biobase cellHTS2 e1071 EBImage hwriter vsn]; broken = true; };
   inveRsion = derive2 { name="inveRsion"; version="1.43.0"; sha256="0h2q10xf4x22hy7780w4pvq488921wzjngly8qcc97sa8iacssk3"; depends=[haplo_stats]; broken = true; };
+  iterClust = derive2 { name="iterClust"; version="1.24.0"; sha256="0k2hcc7g4ynd9jrk8f286y6gwc4bfs4bnfs8qpj2i8zamwdaldng"; depends=[Biobase cluster]; broken = true; };
   iteremoval = derive2 { name="iteremoval"; version="1.15.1"; sha256="0bwl8lzxvf5azwyacv9x16l4kyi8l00xny2s83gp2kng5gyz8602"; depends=[GenomicRanges ggplot2 magrittr SummarizedExperiment]; broken = true; };
   logitT = derive2 { name="logitT"; version="1.58.0"; sha256="0wd26k2n29i58iz9nr50xjsvc2s5ynbca0y2y4j9xqbvvpfjzk3v"; depends=[affy]; broken = true; };
   mAPKL = derive2 { name="mAPKL"; version="1.28.0"; sha256="0nj2r54djps19lar2sp6bhdi5nkid195xyaqzzam2r7piwr8xv8s"; depends=[AnnotationDbi apcluster Biobase clusterSim e1071 igraph limma multtest parmigene reactome_db]; broken = true; };
   maanova = derive2 { name="maanova"; version="1.68.2"; sha256="1rcxvv0vcvksswjd3vry68nmvrbh05p5pica48bwcar93jh70bx9"; depends=[Biobase]; broken = true; };
+  macat = derive2 { name="macat"; version="1.76.0"; sha256="1xmlh1bnhaxp2zjimrhyzz0ldl2sv4j0lrrvqdhlk8jbm5j4hzy8"; depends=[annotate Biobase]; broken = true; };
   maigesPack = derive2 { name="maigesPack"; version="1.64.0"; sha256="106idgazh2wkv2z63wrbn6f4gaxzkmn95i8583a99f6mqnfbhcqx"; depends=[convert graph limma marray]; broken = true; };
   mbOmic = derive2 { name="mbOmic"; version="1.3.0"; sha256="079qs5apyqli7h16c6drmhibmc356rnllxks5ddfnnq7hdzmhdbw"; depends=[cluster clusterSim data_table doParallel igraph psych visNetwork WGCNA]; broken = true; };
   metagene = derive2 { name="metagene"; version="2.31.0"; sha256="0kydqb2g1xbkwk5g738f1pyx1hcfmym3z101vawvcjmmgld3kcp8"; depends=[BiocParallel data_table EnsDb_Hsapiens_v86 ensembldb GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 gplots IRanges magrittr matrixStats purrr R6 Rsamtools rtracklayer stringr]; broken = true; };
   metavizr = derive2 { name="metavizr"; version="1.21.0"; sha256="1d88f854sn5m2pklsyvkmq05yzjanxlnkz5gpzban62qq1mpvims"; depends=[Biobase data_table digest epivizr epivizrData epivizrServer epivizrStandalone GenomeInfoDb httr metagenomeSeq phyloseq vegan]; broken = true; };
   methyAnalysis = derive2 { name="methyAnalysis"; version="1.34.0"; sha256="05k3n7iy5ijidbnblbqqas8dsj8drwzbhyrbs8wl1ypkg51havi0"; depends=[annotate AnnotationDbi Biobase BiocGenerics biomaRt genefilter GenomeInfoDb GenomicFeatures GenomicRanges Gviz IRanges lumi methylumi org_Hs_eg_db rtracklayer SummarizedExperiment VariantAnnotation]; broken = true; };
   miRBaseConverter = derive2 { name="miRBaseConverter"; version="1.24.0"; sha256="04yjfi670lqk4c254isadzaj1mp514i4ns9h7mwdyvagfq6vhsvw"; depends=[]; broken = true; };
-  miRSM = derive2 { name="miRSM"; version="1.18.0"; sha256="1slb957ns31zxcnbfs5hp7nx7ypfh5as26s4ih5rvl153a5msd1k"; depends=[BiBitR BicARE biclust Biobase dbscan dynamicTreeCut energy fabia flashClust GFA GSEABase iBBiG igraph isa2 linkcomm MatrixCorrelation MCL mclust miRspongeR NMF org_Hs_eg_db PMA ppclust Rcpp rqubic s4vd SOMbrero subspace SummarizedExperiment WGCNA]; broken = true; };
   miRmine = derive2 { name="miRmine"; version="1.22.0"; sha256="1d0ni3lavpiv2qzwlmrsjym75cip3i9q1bg9rwa04h61rz2smylg"; depends=[SummarizedExperiment]; broken = true; };
   miRspongeR = derive2 { name="miRspongeR"; version="2.4.0"; sha256="1mzh0cjm2sbcxw3wgfa6yg98ynl74x41g15vsf54n1m1ys5s7xk0"; depends=[clusterProfiler corpcor doParallel DOSE foreach igraph linkcomm MCL org_Hs_eg_db Rcpp ReactomePA SPONGE survival]; broken = true; };
   multiOmicsViz = derive2 { name="multiOmicsViz"; version="1.24.0"; sha256="129k094ml403w25k3kipzbavx78p14jxq40a8d733qyqp8mcnlrs"; depends=[doParallel foreach SummarizedExperiment]; broken = true; };
   multiSight = derive2 { name="multiSight"; version="1.7.0"; sha256="1v2ml1qh250lidm5a0xw4b3xbxd2as86p703qn5s8m1xi6l89b9c"; depends=[anyLib biosigner caret clusterProfiler config DESeq2 dplyr DT easyPubMed enrichplot ggnewscale golem htmltools igraph infotheo metap mixOmics networkD3 ppcor R6 ReactomePA rmarkdown rWikiPathways shiny shinydashboard stringr]; broken = true; };
+  nanotatoR = derive2 { name="nanotatoR"; version="1.18.0"; sha256="1nnh4g4b7k6mp922pr52sxlrh6wvfyx7jhckmwrd12l1yjq010pb"; depends=[AnnotationDbi curl dplyr GenomicRanges hash httr knitr openxlsx org_Hs_eg_db rentrez rlang stringr testthat tidyverse XML]; broken = true; };
+  netOmics = derive2 { name="netOmics"; version="1.8.0"; sha256="03nyjvcr2hldsfifj0dix1bc79z05i9x2hgc5z2g9hd1jyijljyd"; depends=[AnnotationDbi dplyr ggplot2 GO_db gprofiler2 igraph magrittr minet purrr RandomWalkRestartMH tibble tidyr]; broken = true; };
+  netbiov = derive2 { name="netbiov"; version="1.36.0"; sha256="0igqb3wdxvjrbh4w664934yycac3qwcyfhmsz4cf2h5rif23xagf"; depends=[igraph]; broken = true; };
   netboxr = derive2 { name="netboxr"; version="1.9.0"; sha256="1brnm60745s2axls4p6qcxipjjr3ph9ijg1q604fgm42rf6i7qzm"; depends=[clusterProfiler data_table DT gplots igraph jsonlite plyr RColorBrewer]; broken = true; };
   networkBMA = derive2 { name="networkBMA"; version="2.35.0"; sha256="0xa0b977apbr6p9kqk38582af635kp99csj32bsn2bf8pjsmd4d2"; depends=[BH BMA leaps Rcpp RcppArmadillo RcppEigen]; broken = true; };
+  nondetects = derive2 { name="nondetects"; version="2.32.0"; sha256="0302mg5pbvbzp9rhm6wg4lfa7c7lkndysx35x8b1zskc4b1v76cv"; depends=[arm Biobase HTqPCR limma mvtnorm]; broken = true; };
   oneSENSE = derive2 { name="oneSENSE"; version="1.20.0"; sha256="1lzb8i3frv3va2q28glwnjwszrynhky5y8fx10q4h52p2wqgc4v3"; depends=[flowCore gplots plotly Rtsne scatterplot3d shiny shinyFiles webshot]; broken = true; };
   pathVar = derive2 { name="pathVar"; version="1.30.0"; sha256="1q0m4yb4jvi61f3hl7mpbnl9y0y4pqhspi1gn3wp5lf86j8c40jp"; depends=[data_table EMT ggplot2 gridExtra Matching mclust]; broken = true; };
   perturbatr = derive2 { name="perturbatr"; version="1.13.0"; sha256="0ssk8cr42hibn917s2z2nzcdan54c7xiydypbi8f3g4w68q4ly31"; depends=[assertthat diffusr doParallel dplyr foreach formula_tools ggplot2 igraph lazyeval lme4 magrittr rlang scales tibble tidyr]; broken = true; };
+  phemd = derive2 { name="phemd"; version="1.18.0"; sha256="174jp26insq2mwf9yw9bls4i9b2a8vccfkrg2h1dzvyyk513bi83"; depends=[Biobase BiocGenerics cluster cowplot destiny ggplot2 igraph maptree monocle phateR pheatmap pracma RANN RColorBrewer reticulate Rtsne S4Vectors scatterplot3d Seurat SingleCellExperiment SummarizedExperiment transport VGAM]; broken = true; };
   pkgDepTools = derive2 { name="pkgDepTools"; version="1.63.0"; sha256="10q0z1ps073py82zqii4sfdhnpvcyj4sx1yx3lzy5c41l8py6lag"; depends=[graph RBGL]; broken = true; };
   plethy = derive2 { name="plethy"; version="1.36.0"; sha256="09929w6rd84hvz6fiydd5v0php9gvbvxgvsnxvkzwyxfmmmx1dzr"; depends=[Biobase BiocGenerics DBI ggplot2 IRanges plyr RColorBrewer reshape2 RSQLite S4Vectors Streamer]; broken = true; };
   ppiStats = derive2 { name="ppiStats"; version="1.62.0"; sha256="0w5gkfah2y50x4wj5fn8i6ycx1x013mn9w4bs8r2vfqabpws1a81"; depends=[Biobase Category graph lattice RColorBrewer]; broken = true; };
@@ -2371,17 +2442,25 @@ in with self; {
   pwrEWAS = derive2 { name="pwrEWAS"; version="1.14.0"; sha256="1913h2syad9mfspxjvmrwm0mrcklbcl89lj04rn5x0xgfk8rk58a"; depends=[abind BiocManager CpGassoc doParallel doSNOW foreach genefilter ggplot2 limma pwrEWAS_data shiny shinyBS shinyWidgets truncnorm]; broken = true; };
   qrqc = derive2 { name="qrqc"; version="1.52.0"; sha256="0411477y7nazlwbz3pfszr1wfas6qd0g0iz0p9pmq16dw8pzkgg6"; depends=[Biostrings biovizBase brew ggplot2 plyr reshape Rhtslib testthat xtable]; broken = true; };
   rama = derive2 { name="rama"; version="1.72.0"; sha256="0i6crxnzhwxnc55xh2rv36jfwh4bd30alw1f05ixdrxwqwsslbpy"; depends=[]; broken = true; };
+  restfulSE = derive2 { name="restfulSE"; version="1.24.0"; sha256="0i40yfvynxy34jfkvzyvjwvxf89zi4pvy9m9i0bk93l17gyhnjyl"; depends=[AnnotationDbi AnnotationHub bigrquery Biobase DBI DelayedArray dplyr ExperimentHub GO_db magrittr reshape2 rhdf5client rlang S4Vectors SummarizedExperiment]; broken = true; };
+  rqt = derive2 { name="rqt"; version="1.28.0"; sha256="02yvwp68c0xx1wa41hfwmq5zjskqk3jg6z1hvivi6x3l5g2xfwah"; depends=[car CompQuadForm glmnet Matrix metap pls ropls RUnit SummarizedExperiment]; broken = true; };
   savR = derive2 { name="savR"; version="1.37.0"; sha256="13wiw7isdmpwhynxjrhimy9yglcz1108k7nwa98vq9czq49zpada"; depends=[ggplot2 gridExtra reshape2 scales XML]; broken = true; };
   scAlign = derive2 { name="scAlign"; version="1.12.0"; sha256="1mlhxwsfrmhysa5mcyx7vf2jn49snf41yb7xqmyi40wilj9h8qlb"; depends=[FNN ggplot2 irlba purrr Rtsne Seurat SingleCellExperiment tensorflow]; broken = true; };
   scClassifR = derive2 { name="scClassifR"; version="1.2.0"; sha256="0p9l9q5ina0axrqvqn1y5wkfqi0nacxm3nm6ny34j53znv07b2zz"; depends=[ape caret data_tree dplyr e1071 ggplot2 kernlab pROC ROCR Seurat SingleCellExperiment SummarizedExperiment]; broken = true; };
+  scClassify = derive2 { name="scClassify"; version="1.14.0"; sha256="1il45fr3fq520jg2hi1b729wg82vhr826x9bh6lli743sjl2rmbf"; depends=[BiocParallel Cepo cluster diptest ggplot2 ggraph hopach igraph limma Matrix mgcv minpack_lm mixtools proxy proxyC S4Vectors statmod]; broken = true; };
   scMAGeCK = derive2 { name="scMAGeCK"; version="1.9.1"; sha256="1i6l8jxrd66aqk3m9212wsi8jqklvs0agsqrllvf9mrh16js4vby"; depends=[ggplot2 Seurat]; broken = true; };
+  seqCNA = derive2 { name="seqCNA"; version="1.48.0"; sha256="0qqkpgpjj2rywr1y1qj3ffjlxak7fg15jkznz62r7k6r794z45ma"; depends=[adehabitatLT doSNOW GLAD seqCNA_annot]; broken = true; };
+  seqbias = derive2 { name="seqbias"; version="1.50.0"; sha256="18pdpi855y1hhka96xc5886nqffjn1jhz9jr9p305iikdrsvmjp1"; depends=[Biostrings GenomicRanges Rhtslib zlibbioc]; broken = true; };
   sigPathway = derive2 { name="sigPathway"; version="1.66.2"; sha256="0k86hlz7zbbw7559bd2sl59pr441kihgwvg8nr75mj8d50n783sy"; depends=[]; broken = true; };
   slinky = derive2 { name="slinky"; version="1.12.0"; sha256="05ywydvyz3jnzbhabhz1sd61hpy9nb22512zpbi48mv5wic1sv3v"; depends=[curl dplyr foreach httr jsonlite readr rhdf5 SummarizedExperiment tidyr]; broken = true; };
+  snapCGH = derive2 { name="snapCGH"; version="1.72.0"; sha256="0knjspxzc3z5dhx0a6kx9rkic85w65l84vy552x5bv8jzxkcwrsj"; depends=[aCGH cluster DNAcopy GLAD limma tilingArray]; broken = true; };
   sojourner = derive2 { name="sojourner"; version="1.11.0"; sha256="1s0iqzn65s9g4yymy059z122i9wvgkcb5718snzxhj7mkqjzwhhc"; depends=[dplyr EBImage fitdistrplus ggplot2 gridExtra lattice MASS mclust minpack_lm mixtools mltools nls2 pixmap plyr R_matlab Rcpp reshape2 rlang scales shiny shinyjs sp truncnorm]; broken = true; };
   sparseDOSSA = derive2 { name="sparseDOSSA"; version="1.24.0"; sha256="1xy9kd5a9vilwkgr4xw6lcdwgwykg7q7kildpfw4gqymd1frnjp6"; depends=[MASS MCMCpack optparse tmvtnorm]; broken = true; };
   sscore = derive2 { name="sscore"; version="1.72.0"; sha256="02y684iaryms7099k9idrvw0my52jj3d4hl949ai1jknaa19hmil"; depends=[affy affyio]; broken = true; };
+  tenXplore = derive2 { name="tenXplore"; version="1.24.0"; sha256="1sk8xxvrmxkqlz7hq6w10hsjf1x8g06gbaas75hx4m0f1hz6pdwm"; depends=[AnnotationDbi matrixStats ontoProc org_Mm_eg_db restfulSE shiny SummarizedExperiment]; broken = true; };
   tofsims = derive2 { name="tofsims"; version="1.22.0"; sha256="0da4843wbcr821yp8z3z4vd81qpm2lblckgd01fm89lmwj393z65"; depends=[ALS alsace KernSmooth ProtGenerics Rcpp RcppArmadillo signal]; broken = true; };
   trena = derive2 { name="trena"; version="1.22.2"; sha256="1xjhqm2g53kgcnnqhs5l3vn525h7amaz4hvsskjp5zb0gkfpiwh1"; depends=[AnnotationDbi biomaRt Biostrings BSgenome BSgenome_Hsapiens_UCSC_hg19 BSgenome_Hsapiens_UCSC_hg38 BSgenome_Mmusculus_UCSC_mm10 DBI GenomicRanges glmnet lassopv MotifDb org_Hs_eg_db randomForest RMySQL RPostgreSQL RSQLite SNPlocs_Hsapiens_dbSNP150_GRCh38 WGCNA xgboost]; broken = true; };
   tscR = derive2 { name="tscR"; version="1.11.0"; sha256="19jpmyb6dly7l0418c1z0dlb936wjh6nwkb0mvk13ym19qgv1my7"; depends=[class cluster dplyr dtw GenomicRanges ggplot2 gridExtra IRanges knitr latex2exp prettydoc RColorBrewer rmarkdown S4Vectors SummarizedExperiment]; broken = true; };
   tspair = derive2 { name="tspair"; version="1.53.0"; sha256="04xxrm313mnknhc38vl1sx6hic2g1x1xaa5772qlc7ip957hz85k"; depends=[Biobase]; broken = true; };
+  unifiedWMWqPCR = derive2 { name="unifiedWMWqPCR"; version="1.38.0"; sha256="0v3jpnm3nq66xvckmc8447xl7wngfhhiwq6vjx54wgc6f586vmgd"; depends=[BiocGenerics HTqPCR]; broken = true; };
 }
diff --git a/pkgs/development/r-modules/cran-packages.nix b/pkgs/development/r-modules/cran-packages.nix
index 1e08be5368c05..08c7b13577ed4 100644
--- a/pkgs/development/r-modules/cran-packages.nix
+++ b/pkgs/development/r-modules/cran-packages.nix
@@ -34,6 +34,7 @@ in with self; {
   ADDT = derive2 { name="ADDT"; version="2.0"; sha256="044bb1jw2m8vwk5q8l7rlz4kqphjvy8i9d59rjg0k5q5l9vczfrp"; depends=[coneproj Matrix nlme]; };
   ADER = derive2 { name="ADER"; version="1.5"; sha256="1zby06fw171inlri2k0k4n5lggsr9zxzad2pv08882md1klqwkpw"; depends=[]; };
   ADGofTest = derive2 { name="ADGofTest"; version="0.3"; sha256="0ik817qzqp6kfbckjp1z7srlma0w6z2zcwykh0jdiv7nahwk3ncw"; depends=[]; };
+  ADLP = derive2 { name="ADLP"; version="0.1.0"; sha256="12h9x1bfxispjz5ybwmz7vyf6jaj8wmdpd2crrx0vlivwx11ryxa"; depends=[]; };
   ADMM = derive2 { name="ADMM"; version="0.3.3"; sha256="04biinzr0x3jkwss00q6zxfnzk62dafc6386z5vfqs4ch0ifh60n"; depends=[doParallel foreach Matrix Rcpp RcppArmadillo Rdpack]; };
   ADMMsigma = derive2 { name="ADMMsigma"; version="2.1"; sha256="1943dza086s22pr0yz41wzn9cdg11x7fl9zr3w012865yj219m7l"; depends=[doParallel dplyr foreach ggplot2 Rcpp RcppArmadillo RcppProgress]; };
   ADMUR = derive2 { name="ADMUR"; version="1.0.3"; sha256="1wv5frav8vjkvsqwng9zddajmb7rdm4iqrikw9cjpqdpk7njl8ph"; depends=[mathjaxr scales zoo]; };
@@ -51,7 +52,7 @@ in with self; {
   AFM = derive2 { name="AFM"; version="2.0"; sha256="1l0yd68h8vlii1437zhyrxj6fq1ghfaqclk860c25q2d055ajnqd"; depends=[data_table dbscan fftwtools fractaldim ggplot2 gridExtra gstat igraph mixtools moments plyr png pracma rgl scales shiny shinyjs sp stringr]; };
   AFR = derive2 { name="AFR"; version="0.3.5"; sha256="0ismghsl2qi2q81c5ipgdxs6s6rw3kk8sz9yx16g6scnbyisa41y"; depends=[car cli forecast ggplot2 goftest gridExtra lmtest nlme nortest olsrr rlang tseries xts zoo]; };
   AFheritability = derive2 { name="AFheritability"; version="0.1.0"; sha256="03w0a4z2x539ykyzdxm1mfqkhzz03cg0aqvgi062jrrm5m6f57ix"; depends=[ggplot2 mvtnorm reshape2 shiny]; };
-  AGD = derive2 { name="AGD"; version="0.39"; sha256="0hmq684snnffc2v7vmns4ky200a6zh1ggiap03n5cvpb3nlqc6lr"; depends=[gamlss gamlss_dist]; };
+  AGD = derive2 { name="AGD"; version="0.45.0"; sha256="02dvbqyym3l642vxhlx7ay6dj1sf1ns207ig81h3fz1w3gy9wn20"; depends=[gamlss gamlss_dist]; };
   AGHmatrix = derive2 { name="AGHmatrix"; version="2.1.4"; sha256="1ji022h11ijfjicbvc5hgxpf6rfs7mm07nxrjlk7lrl699gi1xh2"; depends=[Matrix zoo]; };
   AGPRIS = derive2 { name="AGPRIS"; version="2.0"; sha256="0c6aqrfl0iqpsdk4njzda60a8hcrm2637zwc5cdkrl9p2ayqj00c"; depends=[Matrix matrixcalc maxLik plyr sp spacetime spdep]; };
   AHM = derive2 { name="AHM"; version="1.0.1"; sha256="00r1rn7d64a18rckbxvla5yapqv00p9ajxv72fx7s6p80kfal89w"; depends=[devtools dplyr glmnet Matrix mixexp plgp quadprog tibble tidyr]; };
@@ -65,17 +66,17 @@ in with self; {
   AICcmodavg = derive2 { name="AICcmodavg"; version="2.3-3"; sha256="0ylzd6fz5p86fdb8yily2v8bn8xz5mm6w19ch6gpp48jzkqvama0"; depends=[lattice MASS Matrix nlme survival unmarked VGAM xtable]; };
   AID = derive2 { name="AID"; version="2.9"; sha256="0s7020vh93rnyhcfsmsn1swffrbg1fx3pqq2bd043m4b90yrlzpc"; depends=[ggplot2 MASS meta nortest psych stringr tseries]; };
   AIPW = derive2 { name="AIPW"; version="0.6.3.2"; sha256="1iqq665qigw9dmc62x2dz1nvrk8s65ph0a3k2p7mkznr9frshhi2"; depends=[future_apply ggplot2 progressr R6 Rsolnp SuperLearner]; };
-  AIUQ = derive2 { name="AIUQ"; version="0.5.1"; sha256="00l6cqwnnxlvccx2fzy4nbww51m2jal90xm6071p5fy5d67h96ld"; depends=[fftwtools plot3D SuperGauss]; };
+  AIUQ = derive2 { name="AIUQ"; version="0.5.2"; sha256="00abxp3sd5ri4rny38q0125i8bb71hv5riicd7m8n9hz9hgww12j"; depends=[fftwtools plot3D SuperGauss]; };
   ALDqr = derive2 { name="ALDqr"; version="1.0"; sha256="0gk8hxh4p0fi47sf1zsvvxxbzp38vzk60wh8hmc63phnjab6qkv4"; depends=[HyperbolicDist sn]; };
   ALEPlot = derive2 { name="ALEPlot"; version="1.1"; sha256="0bakl8a7xda7vh9zsc66kkd5w5jmb5j28kfwpfq2ifvk2mrakr3w"; depends=[yaImpute]; };
+  ALFAM2 = derive2 { name="ALFAM2"; version="4.1.3"; sha256="1l2l792zv8njg7iii7yzr8fksfijmp6r45a421bamg5r1wa3v1rx"; depends=[Rcpp]; };
   ALS = derive2 { name="ALS"; version="0.0.7"; sha256="184d6xr4mgs78jvi7xa4njrq6p625i9sx69wak6mdn53qpl9b8ap"; depends=[Iso nnls]; };
   ALSCPC = derive2 { name="ALSCPC"; version="1.0"; sha256="0ippxzq5qwb9dnpvm1kxhc0fxh83rs9ny5rcvd30w2bp632q9qdx"; depends=[]; };
-  ALSM = derive2 { name="ALSM"; version="0.2.0"; sha256="1g7zk8q462j4faq5wzzghkjc003ny6rj8hrymsgvh3fg3a72lvy3"; depends=[car leaps SuppDists]; };
   ALTopt = derive2 { name="ALTopt"; version="0.1.2"; sha256="1nbbvniramajg6k83xqgx7r0abjrfja8zz0y3g3j8qmvbcqmjx13"; depends=[cubature lattice]; };
   ALUES = derive2 { name="ALUES"; version="0.2.1"; sha256="12fayxz0cb8wibccgz62gzrbkwzw2y4xljixrh02i1lbfwgsky14"; depends=[Rcpp]; };
   ALassoSurvIC = derive2 { name="ALassoSurvIC"; version="0.1.1"; sha256="0asaip7mq1brahirm025d57gk1fgysbmhi6jypf2jihai7dl4jg2"; depends=[Rcpp]; };
   AMAPVox = derive2 { name="AMAPVox"; version="2.2.1"; sha256="10gb0k3msw2jmrq2dl0fm7636frsn7if9gsdxi6zgh0vpha6dqwz"; depends=[curl data_table dplyr jsonlite rappdirs stringr]; };
-  AMCP = derive2 { name="AMCP"; version="1.0.1"; sha256="14fbb2p4dbgi7i31xxavrldw4wnd4cjjh56ys63rivkswi1hhzj2"; depends=[]; };
+  AMCP = derive2 { name="AMCP"; version="1.0.2"; sha256="0xp59zah72h7kvqnhyrx6p9nx0pghi49lgib3f1ins1zlxdv2j88"; depends=[]; };
   AMCTestmakeR = derive2 { name="AMCTestmakeR"; version="1.0.0"; sha256="1vgncc61gmqhax2a7072jb36bzkycv80xqihkr5qs8jxnqqkndxd"; depends=[]; };
   AMIM = derive2 { name="AMIM"; version="1.0.0"; sha256="1gpfsayic0hw2rwswxw7cwa0v47l1v7l4qhckbrwyq3dcxgl2rnv"; depends=[data_table]; };
   AMModels = derive2 { name="AMModels"; version="0.1.4"; sha256="18h075bzk8s75b3zmjd0x8c6dpl40445d4kv8n0p4ldnx80b1aha"; depends=[unmarked]; };
@@ -88,23 +89,25 @@ in with self; {
   ANOVAIREVA = derive2 { name="ANOVAIREVA"; version="0.1.0"; sha256="04z2g79nnh5yhn4aqw0i7ck2b1z5dbasf1zp1sj6rjjrp9aqmaa6"; depends=[car dplyr ggplot2 plotly rmarkdown shiny]; };
   ANOVAShiny = derive2 { name="ANOVAShiny"; version="0.1.0"; sha256="1z8wi8c8j3rlchfk1vx101qz1r9j2jl5lfh72y5lqsisqxl2fyyz"; depends=[DescTools dplyr HH rhandsontable rmarkdown shiny]; };
   ANOVAShiny2 = derive2 { name="ANOVAShiny2"; version="0.1.0"; sha256="0bnxfg5c37wi5g53jd0zqq31yx29zvlk2m2jh6jlwki8khpp9y00"; depends=[DescTools dplyr HH rhandsontable rmarkdown shiny]; };
+  ANSM5 = derive2 { name="ANSM5"; version="1.1.0"; sha256="10drc2199ffnl70ja6512wdwhb14ky73j0fvbhvhqxjhka1gfiwi"; depends=[]; };
   AOV1R = derive2 { name="AOV1R"; version="0.1.0"; sha256="0dv7k0mifybkarpwqyla5j6cvw9dcch09wvdq09ra9bsf4vyk652"; depends=[cellranger data_table lazyeval purrr]; };
   APCI = derive2 { name="APCI"; version="1.0.7"; sha256="1a3ghbxsvlq3z8nk6xr5jvmpxala9axfm3wd8i6mhjbsfyq8ijv6"; depends=[data_table dplyr gee ggplot2 ggpubr magrittr stringr survey]; };
-  APCalign = derive2 { name="APCalign"; version="0.1.3"; sha256="1kbkwpf7lzg7lznl0ysnwwilmklqyqd02qc1vl0pfbd407pqlyyv"; depends=[arrow crayon curl dplyr forcats httr jsonlite purrr readr rlang stringi stringr tibble]; };
+  APCalign = derive2 { name="APCalign"; version="1.0.1"; sha256="0v1m3m6r85yip449pcbn7vk3c4zm0y3w4lf9rwqv3cis8gd9xfap"; depends=[arrow crayon curl dplyr httr jsonlite purrr readr rlang stringdist stringi stringr]; };
   APCanalysis = derive2 { name="APCanalysis"; version="1.0"; sha256="11snn5i8zyjpzf58ica762fpp14v7x5h8a8iwx4s4v81pgvlx862"; depends=[]; };
   APCtools = derive2 { name="APCtools"; version="1.0.4"; sha256="0xp90p7q3a33cqsyh6n2gcsfnq9gchm5vcl13s72gqyfx4jjcnv7"; depends=[checkmate colorspace dplyr ggplot2 ggpubr knitr mgcv scales stringr tidyr]; };
   APFr = derive2 { name="APFr"; version="1.0.2"; sha256="1vax7rfccds6qz3bi6n1h3nzl9jnxpwk331wmpsbqlk23md3m4g4"; depends=[]; };
   APIS = derive2 { name="APIS"; version="2.0.4"; sha256="02s7cpzsp53wk3k4cm6l3hpkc3f191zhg22vwbf8va7dni3d24rq"; depends=[cowplot data_table doParallel dplyr DT foreach ggplot2 gridExtra htmltools plotly rlang shiny shinyBS shinythemes]; };
   APPEstimation = derive2 { name="APPEstimation"; version="0.1.1"; sha256="1bg9ma4i3k3xdgyk2h4f368gqnczvlhvjw4114iznmrv1wl4g25c"; depends=[densratio]; };
-  APackOfTheClones = derive2 { name="APackOfTheClones"; version="1.0.0"; sha256="0wbkrnx8p06r75hk0gffasrykdnm4hdlbf45p5zzw0pnyzf2s49v"; depends=[data_table dplyr ggforce ggplot2 hash lifecycle Rcpp rlang Seurat]; };
+  APackOfTheClones = derive2 { name="APackOfTheClones"; version="1.2.0"; sha256="1wirzf37n5xl0y3g9n9ic6vyaiyzmx9sip1qg4bilaqn7nazmq90"; depends=[dplyr ggforce ggplot2 hash lifecycle magrittr Rcpp rlang Seurat SeuratObject]; };
   APtools = derive2 { name="APtools"; version="6.8.8"; sha256="171aydyd7s8qll7djl4ysy596wxdf5wfwpqwfi14jjglc9r9qrrr"; depends=[cmprsk survival]; };
-  AQEval = derive2 { name="AQEval"; version="0.5.2"; sha256="0iac6bcrbhiaxz05vmfmb99g1060r36z1qh3imbwri7m16v0gx59"; depends=[dplyr ggplot2 ggtext loa lubridate mgcv openair purrr segmented strucchange tidyr]; };
+  AQEval = derive2 { name="AQEval"; version="0.5.7"; sha256="07f0jgk9hb6gnnsj0vic202smyr5n7xrfrwcaldc6v2lm7sxk5dx"; depends=[dplyr ggplot2 ggtext loa lubridate mgcv openair purrr segmented strucchange tidyr]; };
   AQLSchemes = derive2 { name="AQLSchemes"; version="1.7-2"; sha256="1lnx2d1lwjzg6wc0kxdkh1lj00057iyvynl6m8nmmg7p8vz4r5jh"; depends=[]; };
   AQuadtree = derive2 { name="AQuadtree"; version="1.0.4"; sha256="0i1qp1xr51l3gfvgnyyka06g4khj62hzxxkbsnlkv235i2bwnpzd"; depends=[dplyr sp]; };
+  AQuality = derive2 { name="AQuality"; version="1.0"; sha256="0zjv5wwdr4ivm1nx1yw27n1fxajxv9mdljd5jj95bv2wpvkn0pcz"; depends=[]; };
   AR = derive2 { name="AR"; version="1.1"; sha256="1wn4g2997c4vc3mzq2pv8ld0ryp0i78v4zlqqryvhshxgnz4f2pr"; depends=[DISTRIB]; };
   ARCensReg = derive2 { name="ARCensReg"; version="3.0.1"; sha256="0qrzxa93cj1ql4iw93ksk58ycfgmncry7q29axhydwh9hsh3lyms"; depends=[ggplot2 gridExtra matrixcalc msm mvtnorm numDeriv qqplotr Rcpp RcppArmadillo Rdpack tmvtnorm]; };
   ARCokrig = derive2 { name="ARCokrig"; version="0.1.2"; sha256="0pk0y0gsw681py0vwizxvh1jqjnapzqfr0mbdpli1sray55xbjr2"; depends=[ggplot2 mvtnorm Rcpp RcppArmadillo RcppEigen]; };
-  ARDECO = derive2 { name="ARDECO"; version="1.0.0"; sha256="0nq86z5hbk1wksc4l82va433smlszy06z5z2vxhzj774jz2y9i0k"; depends=[dplyr ghql httr jsonlite rjstat tidyr]; };
+  ARDECO = derive2 { name="ARDECO"; version="1.0.1"; sha256="1m249r65kh18v57wlhg9fv26fla5sbxqfqm725f95677ck852jf2"; depends=[dplyr ghql httr jsonlite rjstat tidyr]; };
   ARDL = derive2 { name="ARDL"; version="0.2.4"; sha256="02yimcsbw8fgv0qslxp3f38k6wzaxwmp0f8f0k0nxx5bnlkc9c4c"; depends=[aod dplyr dynlm ggplot2 gridExtra lmtest msm stringr zoo]; };
   ARGOS = derive2 { name="ARGOS"; version="0.1.1"; sha256="0qjngax72mz4zhqlb7s8zzl0n3524crp67vmz3mpy2s5hdl3kz83"; depends=[boot deSolve glmnet magrittr Matrix Metrics signal tidyr tidyverse]; };
   ARHT = derive2 { name="ARHT"; version="0.1.0"; sha256="1fz81a202r8vk655dg6a03zfq3gfkimqjvmc95k3j02xz0iv58kn"; depends=[]; };
@@ -117,6 +120,7 @@ in with self; {
   ART = derive2 { name="ART"; version="1.0"; sha256="186w1ivj5v3h906crl953qxgai5wiznaih83dgvwgnmabs9p1wvk"; depends=[car]; };
   ARTofR = derive2 { name="ARTofR"; version="0.4.1"; sha256="1dw9aascnqr5cbk8a862rlma94b39ndgkrhf826qf4k58y92nf5q"; depends=[bannerCommenter clipr rstudioapi shiny]; };
   ARTool = derive2 { name="ARTool"; version="0.11.1"; sha256="16awxcncyhry0ygk8gdvlff787837rr8qsyg1pxd11w4v1llrqrf"; depends=[car dplyr emmeans lme4 magrittr plyr]; };
+  ARUtools = derive2 { name="ARUtools"; version="0.6.2"; sha256="0qgx1flyxqaqrd7idfwaaf9y58qmkw6967a0n6m9y4p21n5zsck9"; depends=[dplyr fs glue here hms lifecycle lubridate lutz parzer purrr readr rlang seewave sf spsurvey stringr suncalc tidyr units withr]; };
   ARpLMEC = derive2 { name="ARpLMEC"; version="2.4.1"; sha256="1d6gvgbnj19dislzjlxn7i0iq7h56zz7hm9x5l865ji790b9smqw"; depends=[expm LaplacesDemon MASS mnormt numDeriv relliptical TruncatedNormal]; };
   ASGS_foyer = derive2 { name="ASGS.foyer"; version="0.3.3"; sha256="1zvps8d20ig863dv3jm1pjj9icy88dk378a9j8f0gcgafz5cxi6g"; depends=[sp]; };
   ASMap = derive2 { name="ASMap"; version="1.0-7"; sha256="04byjdz3dzgf06bmmpvslihya23lanl8dmjbq22vvwlhi82f88im"; depends=[fields gtools lattice qtl RColorBrewer]; };
@@ -134,9 +138,12 @@ in with self; {
   AVGAS = derive2 { name="AVGAS"; version="0.1.0"; sha256="0s0h6rpsni73a0j679g22ngpaazdfifxpi7mwpa7ac3p0kdzvji0"; depends=[dplyr ggplot2 Matrix pracma selectiveInference VariableScreening]; };
   AWR = derive2 { name="AWR"; version="1.11.189-1"; sha256="1imvpmq6br0z7l67w66a5s1ylbv6xvypj0wc09bmjy7sapdmkn4x"; depends=[rJava]; };
   AWR_Kinesis = derive2 { name="AWR.Kinesis"; version="1.7.6"; sha256="0ak2ry5zj6gb9g6laabv0ym3i1vqdwl56g6k58fkpjb87rlb2hbp"; depends=[AWR jsonlite logger rJava]; };
+  AZIAD = derive2 { name="AZIAD"; version="0.0.3"; sha256="0nzd3y4kcb628f1h0xpslx2nva8pv6i3mmp9vm5c49xiq43d82cz"; depends=[corpcor doParallel EnvStats extraDistr foreach QRM]; };
   AalenJohansen = derive2 { name="AalenJohansen"; version="1.0"; sha256="0w7fj7l2pyz2y1dywpkdxb9qc4v89d57l4ddnjraxsfppk5ga3i4"; depends=[]; };
   Ac3net = derive2 { name="Ac3net"; version="1.2.2"; sha256="1ns4n0xxz6p34c11bj0k7nzgmyqr9mis2b0g5nfz37dbikndyqyz"; depends=[data_table]; };
   AcademicThemes = derive2 { name="AcademicThemes"; version="0.0.2"; sha256="10v7li7d26kaj5v608bnyrgqxsx12rq3czyb59hbrb5428vsv99x"; depends=[ggplot2]; };
+  AccelStab = derive2 { name="AccelStab"; version="2.0.1"; sha256="072wm4421bir8ij1g5zj0rn26h28vz7np6glmvapv18q4kfz1x88"; depends=[dplyr ggplot2 minpack_lm mvtnorm scales]; };
+  AcceptReject = derive2 { name="AcceptReject"; version="0.1.2"; sha256="137qlqkazh665d7wvxkhxfz2a5ss3hy4acbc6jzbk7vq4qpbcj0i"; depends=[assertthat cli ggplot2 glue numDeriv purrr Rcpp RcppArmadillo rlang scales scattermore]; };
   AcceptanceSampling = derive2 { name="AcceptanceSampling"; version="1.0-10"; sha256="1sbv2yrvnn0zgdmqvjlmz2vllsg6r9nlmxdgadhymhm9s51gfx65"; depends=[]; };
   Achilles = derive2 { name="Achilles"; version="1.7.2"; sha256="1xkhplw7jpz7y86nac2z5vk2xs898kfv6apmk3rahjr0rmdijdqg"; depends=[data_table DatabaseConnector dplyr jsonlite lubridate ParallelLogger readr rlang SqlRender tseries]; };
   AcousticNDLCodeR = derive2 { name="AcousticNDLCodeR"; version="1.0.2"; sha256="1fgzgwanpv2pzy74xdk3hamc44p8qch467wh163dxby8jr9ik0sb"; depends=[seewave tuneR zoo]; };
@@ -152,7 +159,6 @@ in with self; {
   AdaSampling = derive2 { name="AdaSampling"; version="1.3"; sha256="1c8dh8lxyb076317n4qk2g3qv5j4mc1dszbh3k1p2b0nxiprqk5i"; depends=[caret class e1071 MASS]; };
   AdapSamp = derive2 { name="AdapSamp"; version="1.1.1"; sha256="1jayjrsiib2ij4rxxj59g71r3xhzl5yqh0lhi8k6cfy03i7dkvis"; depends=[pracma]; };
   AdaptGauss = derive2 { name="AdaptGauss"; version="1.6"; sha256="04w0v2fv9ixfz148d8f5vv7w5ypdywwf1qysk2ypc7a7md4vv9qz"; depends=[DataVisualizations plotly pracma Rcpp shiny]; };
-  AdaptiveSparsity = derive2 { name="AdaptiveSparsity"; version="1.6"; sha256="0imr5m8mll9j6n4icsv6z9rl5kbnwsp9wvzrg7n90nnmcxq2cz91"; depends=[MASS Matrix Rcpp RcppArmadillo]; };
   AdequacyModel = derive2 { name="AdequacyModel"; version="2.0.0"; sha256="0amp6ic1wylk24sp9wpx3ci38njj7b9qjqfp89j39hkl6kc1q7sq"; depends=[]; };
   AdhereR = derive2 { name="AdhereR"; version="0.8.1"; sha256="0b98yz2msg30ch3n85yzi42rlnyj5ggkz1fsysh95gd5qk4c8vg2"; depends=[data_table jpeg lubridate png rsvg webp]; };
   AdhereRViz = derive2 { name="AdhereRViz"; version="0.2.1"; sha256="1jc5mfdydw9s515zi7lsmns79919vrdhh6lvh9z2bq0lrn9g1yci"; depends=[AdhereR clipr colourpicker data_table DBI highlight knitr manipulate RMariaDB RSQLite shiny shinyjs shinyWidgets V8 viridisLite]; };
@@ -163,7 +169,7 @@ in with self; {
   AeroSampleR = derive2 { name="AeroSampleR"; version="0.2.0"; sha256="0prdw8yjdrcyc8msk2a8ia5cjd4gm88isg8dqp9yj2aqbfz6pin7"; depends=[dplyr flextable ggplot2 ggthemes purrr stringr tidyr tidyselect]; };
   AggregateR = derive2 { name="AggregateR"; version="0.1.1"; sha256="1s2q888bqx6ilisv5s4g8ryja97nz6cz4ycm4sw1i63l5wjrwljc"; depends=[data_table NCmisc tibble]; };
   AgreementInterval = derive2 { name="AgreementInterval"; version="0.1.1"; sha256="1bvinzylvsaipa8mq15f45b6h37znavlrdl0rbrx1pqw52r7z8kv"; depends=[psych]; };
-  AgroR = derive2 { name="AgroR"; version="1.3.5"; sha256="05b7jwah898r4g0mvyf0qlwmv5rx48pj87agf257nqz3hwmvkip5"; depends=[cowplot crayon drc dunn_test emmeans ggplot2 ggrepel gridExtra gtools knitr lme4 lmtest MASS multcomp multcompView nortest RColorBrewer]; };
+  AgroR = derive2 { name="AgroR"; version="1.3.6"; sha256="0gbdba18fzk3x32wk1ycbj2ci8y1dpdmcysnmdd2361mp5yhvn7h"; depends=[cowplot crayon drc dunn_test emmeans ggplot2 ggrepel gridExtra gtools knitr lme4 lmtest MASS multcomp multcompView nortest RColorBrewer]; };
   AgroReg = derive2 { name="AgroReg"; version="1.2.10"; sha256="1rvlgir48lhypw7vj23rg2xxi237sgmprp9syfryhmfz59wy6dcv"; depends=[boot broom dplyr drc egg ggplot2 minpack_lm purrr rcompanion]; };
   AgroTech = derive2 { name="AgroTech"; version="1.0.2"; sha256="0pfw0sps9fbzzyy4d803j9fbg6a23nj18rks0bnrj9hms7a3vwfs"; depends=[crayon ggplot2 ggrepel gridExtra lmtest nortest readxl xlsx]; };
   AhoCorasickTrie = derive2 { name="AhoCorasickTrie"; version="0.1.2"; sha256="0zh3y5jd8m0xbj6lqr01zvwj9qd1xr3iq7vd6sgr3g3qh4kqm5pq"; depends=[Rcpp]; };
@@ -179,7 +185,7 @@ in with self; {
   AlphaPart = derive2 { name="AlphaPart"; version="0.9.8"; sha256="1ih76v3kgnladqq3nvlqrz5sqkg1j97m778kchz6k05cjxhj8l4q"; depends=[directlabels dplyr ggplot2 magrittr pedigree Rcpp reshape tibble]; };
   AlphaSimR = derive2 { name="AlphaSimR"; version="1.5.3"; sha256="1qv3bfn4xnpkiblzdig1zn3cli5g1h2binnsi4znxzd6z1406sq9"; depends=[BH R6 Rcpp RcppArmadillo Rdpack]; };
   AlteredPQR = derive2 { name="AlteredPQR"; version="0.1.0"; sha256="15zszn49c2a3lad2fzfj2yblyafbrhn6j3j1dcjbcz0fxgf6cmhw"; depends=[]; };
-  Amelia = derive2 { name="Amelia"; version="1.8.1"; sha256="1r27zjlr8ld932lr6dn79cravss17gry6p0mxgdlbj6g58mfc30j"; depends=[foreign Rcpp RcppArmadillo rlang]; };
+  Amelia = derive2 { name="Amelia"; version="1.8.2"; sha256="0gpw6aki06ji6yszp7n9mfy8zbxvdwv1xwjlx11aj2x2ghj4mcjg"; depends=[foreign Rcpp RcppArmadillo rlang]; };
   AmesHousing = derive2 { name="AmesHousing"; version="0.0.4"; sha256="080r0fkmqsdrjgwbmdzacnkmd8py611z54i6r7nzj14r295d5qhk"; depends=[dplyr magrittr]; };
   AmigaFFH = derive2 { name="AmigaFFH"; version="0.4.5"; sha256="09227l3sq4bcph9x2w2qqh9zy2xrjr0makjyfx2vlp76r2xw394h"; depends=[tuneR vctrs]; };
   AmmoniaConcentration = derive2 { name="AmmoniaConcentration"; version="0.1"; sha256="05pnwfji9l9az4jvni6jy7cayzg5pbspz82a63kmj6rgibn4ywvn"; depends=[]; };
@@ -194,7 +200,7 @@ in with self; {
   AncestryMapper = derive2 { name="AncestryMapper"; version="2.0"; sha256="1fr2y1a5rn7rq8aly94f618kywix32jwysi70nfhaqx8hf4zzprb"; depends=[svd]; };
   AnchorRegression = derive2 { name="AnchorRegression"; version="0.1.3"; sha256="1bmlxk5j3i9mm71cwz785q5sysp8hsyy0080kgd3ksx78p68ara5"; depends=[glmnet mgcv selectiveInference]; };
   Andromeda = derive2 { name="Andromeda"; version="0.6.6"; sha256="0k7w9jk9aw6pays5lg1spzac5kpka0i9vc2v5sxn2r4shbxr9yf9"; depends=[cli DBI dbplyr dplyr hms pillar rlang RSQLite tidyselect zip]; };
-  AnglerCreelSurveySimulation = derive2 { name="AnglerCreelSurveySimulation"; version="1.0.2"; sha256="1nhd0i30g5wb5jh96gfaa0lgnbnj0m2vy4gz7v2c3142396zalnx"; depends=[dplyr ggplot2]; };
+  AnglerCreelSurveySimulation = derive2 { name="AnglerCreelSurveySimulation"; version="1.0.3"; sha256="1xaksfglf45qpfqdjil8cc415ak6xnc57kxfih7qghvd3xi5c8z6"; depends=[dplyr ggplot2]; };
   AnimalHabitatNetwork = derive2 { name="AnimalHabitatNetwork"; version="0.1.0"; sha256="1bhqypkiw5v9w26jbdmhndqj5hjfmf7zwivrq2hgs0zcjxwa8gfn"; depends=[ggplot2 igraph]; };
   AnnoProbe = derive2 { name="AnnoProbe"; version="0.1.7"; sha256="0715bpifj8r4ji0m89wk4x7vd3pwx8kqy9vs8m0ivmq7bb56nx0b"; depends=[Biobase curl DT ggplot2 ggpubr httr pheatmap xml2]; };
   AnnotationBustR = derive2 { name="AnnotationBustR"; version="1.3.0"; sha256="1q5yxzzmzvw1r64r4y0xh1fiyhaqbx5q4lzpawqaggra4w9igdl8"; depends=[ape seqinr]; };
@@ -208,7 +214,7 @@ in with self; {
   Aoptbdtvc = derive2 { name="Aoptbdtvc"; version="0.0.3"; sha256="19prbak6ssmzqaa88mw0h0bdsj8s6hvcsgrmlgq4h6iyp959yj73"; depends=[lpSolve MASS]; };
   AovBay = derive2 { name="AovBay"; version="0.1.0"; sha256="110y9wbqr0m9b6wr1c5mncrdjpg247308989bswkqnim2msvnzcf"; depends=[BayesFactor BH broom car dplyr DT highcharter htmltools moments nortest purrr Rcpp RcppEigen RcppParallel reshape rstan rstantools shiny shinycssloaders shinydashboard shinydashboardPlus StanHeaders stringr tibble waiter]; };
   ApacheLogProcessor = derive2 { name="ApacheLogProcessor"; version="0.2.3"; sha256="0h4snigh1yhp34vw52h4b6qbh9c4cvwz2cx8fwvbnw6lslmg5cgv"; depends=[doParallel foreach stringr]; };
-  Apoderoides = derive2 { name="Apoderoides"; version="1.0.1"; sha256="0jh1q18qinppwn2alrm0l1jjbks0n04mdb1q64bzqa3ba3qhmlmw"; depends=[ape Rcpp RcppProgress]; };
+  Apoderoides = derive2 { name="Apoderoides"; version="2.0.0"; sha256="0rgba2855gnavq4c8ik6vq0fh4m9wqyp0wgxjw7rdw1jsvi7dyqs"; depends=[ape Rcpp RcppProgress]; };
   Apollonius = derive2 { name="Apollonius"; version="1.0.1"; sha256="13iz0j2kc3jzzn77jawrm0fg23mqkxh7h7dasfjibmykamvw45nb"; depends=[abind BH colorsGen gyro plotrix Polychrome Rcpp RcppCGAL RcppEigen]; };
   AppliedPredictiveModeling = derive2 { name="AppliedPredictiveModeling"; version="1.1-7"; sha256="1wi0sw5w1c51rmh9z98wdpk5rgzsylkkb6g019djiwxvj92l99hh"; depends=[CORElearn ellipse lattice MASS plyr reshape2]; };
   AquaBEHER = derive2 { name="AquaBEHER"; version="0.1.0"; sha256="0rgkwy1sfdkcjk69cncxd2zxlkn9kyvq8iwmz83d2gwzdzfbjqdd"; depends=[dplyr ggplot2 lubridate raster sp]; };
@@ -217,8 +223,7 @@ in with self; {
   ArArRedux = derive2 { name="ArArRedux"; version="1.0"; sha256="11h88gnj54cn5fbxf163s8kjqc1q452nzb218fjlwsxxwzaz5gbr"; depends=[]; };
   ArCo = derive2 { name="ArCo"; version="0.3-1"; sha256="1afjdmcalx3m19jlvqs83fg5qlds59l5zzg3pzk13qk31r0hz7mk"; depends=[boot glmnet Matrix]; };
   ArDec = derive2 { name="ArDec"; version="2.1-1"; sha256="17k2lnvh6vf9gy2xmyncriyjxy37ih7plvslld37kbrwh8dhybx0"; depends=[]; };
-  ArchaeoChron = derive2 { name="ArchaeoChron"; version="0.1"; sha256="1qma2432mm73h72g9ah1k02wlcb6yrhc6mpai9nj7v58s126ffxn"; depends=[ArchaeoPhases Bchron coda rjags]; };
-  ArchaeoPhases = derive2 { name="ArchaeoPhases"; version="1.8"; sha256="00d8lpasz96l55v3982mqg85b237lxvsjl65p288yzj87860v2kj"; depends=[coda digest dplyr ggalt ggplot2 ggraph gplots gtools hdrcde magrittr readr reshape2 shiny toOrdinal]; };
+  ArchaeoPhases = derive2 { name="ArchaeoPhases"; version="2.0"; sha256="0sgsni4swnqazghdzvivacq7a67p8zbsmdpl20ayyff0pxppk966"; depends=[aion arkhe]; };
   ArchaeoPhases_dataset = derive2 { name="ArchaeoPhases.dataset"; version="0.2.0"; sha256="0yffzc9jmyiil3p0bvf0fpq64mn55swcnizi3bgsl44d4j93y68q"; depends=[]; };
   AriGaMyANNSVR = derive2 { name="AriGaMyANNSVR"; version="0.1.0"; sha256="1faqripvb6alfajz37zqm70p0c2f6yf9f2ca2bzrsizp0yh81719"; depends=[AllMetrics aTSA DescribeDF dplyr e1071 fGarch FinTS forecast neuralnet psych tseries]; };
   Arothron = derive2 { name="Arothron"; version="2.0.5"; sha256="0clz01096fdkhnh89np3knhdnk78p2faj9zkm5qhg56jzaji8wxi"; depends=[abind alphashape3d compositions doParallel foreach geometry Morpho rgl Rvcg stringr vegan]; };
@@ -272,9 +277,10 @@ in with self; {
   BALLI = derive2 { name="BALLI"; version="0.2.0"; sha256="0qmjwpj56n07dvjwfknqvc02f0y5mlwh2yz4lrw7c4wqgrckcpgi"; depends=[edgeR limma MASS]; };
   BAMBI = derive2 { name="BAMBI"; version="2.3.5"; sha256="16pb04n30y8sl6m6qgrdxk7sck98233cravpbzw4fzl2j8h0mm3r"; depends=[bridgesampling coda future_apply gtools label_switching lattice loo mvtnorm numDeriv qrng RColorBrewer Rcpp RcppArmadillo scales]; };
   BAMMtools = derive2 { name="BAMMtools"; version="2.1.11"; sha256="0ymb1vwrzwg7gs4n3zjikg10ajk75r18j5rlgs25n4ab4fp6sibp"; depends=[ape gplots Rcpp]; };
+  BANAM = derive2 { name="BANAM"; version="0.2.0"; sha256="0k04d8ssfg078w52paj323bflzlbk5k0r17c4xl1xs2g6saa0iyn"; depends=[bain BFpack extraDistr Matrix matrixcalc mvtnorm psych rARPACK sna tmvtnorm]; };
   BANOVA = derive2 { name="BANOVA"; version="1.2.1"; sha256="07ghmzsb77vcd3snmg59spp60j603gawnqs847x1x44pnxs9l4wl"; depends=[coda rjags rstan runjags]; };
   BAR = derive2 { name="BAR"; version="0.1.1"; sha256="0bcq6lvijq1vxri2dbhnqcn46f799h3ag974zgcdpx4c5apph04w"; depends=[]; };
-  BART = derive2 { name="BART"; version="2.9.6"; sha256="03rf13mwxxzqyvaciakarrhl583f8gl81ahfakkc1578fv2fl8vf"; depends=[nlme nnet Rcpp survival]; };
+  BART = derive2 { name="BART"; version="2.9.7"; sha256="15nm6ahi5kq2fd9zrksqq7ybmlzrw7hds5ws27zvlayyy2qxyq17"; depends=[nlme nnet Rcpp survival]; };
   BAS = derive2 { name="BAS"; version="1.7.1"; sha256="1j76r9wl2limr7adlyr05n22q75sk8n03ar5bblpckcyrrqvpgr8"; depends=[]; };
   BASS = derive2 { name="BASS"; version="1.3.1"; sha256="00py6s7b9lv8lsycpa79gbwrlbghgsffd2avggb77gxpl0g8vfz0"; depends=[hypergeo truncdist]; };
   BASiNET = derive2 { name="BASiNET"; version="0.0.5"; sha256="09g2h38kz1g9kkjc69si5d6z6fkayys9hinjs3p6dn7sx7zn2bx1"; depends=[Biostrings igraph randomForest rJava rmcfs RWeka]; };
@@ -291,9 +297,8 @@ in with self; {
   BCBCSF = derive2 { name="BCBCSF"; version="1.0-1"; sha256="0hvhnra68i0x78n57nlbxmz0qwl2flng9w47089jw6f9hzkq9r7n"; depends=[abind]; };
   BCC1997 = derive2 { name="BCC1997"; version="0.1.1"; sha256="1lqbivjkc7858jn54av1v9bzp0as43klgndbzkr59dc3l128xp12"; depends=[]; };
   BCClong = derive2 { name="BCClong"; version="1.0.2"; sha256="06i77iz6i79dbwnjic7x7dgysbh4x22ixhzlpkmpb47yx7c2qmvf"; depends=[abind cluster coda ggplot2 label_switching LaplacesDemon lme4 MASS mclust MCMCpack mixAK mvtnorm nnet Rcpp RcppArmadillo Rmpfr truncdist]; };
-  BCDAG = derive2 { name="BCDAG"; version="1.1.0"; sha256="0v3qxqlm5p1n0lx995xncp6793lm794i8r7nnng00w7xhynhfm43"; depends=[graph gRbase lattice mvtnorm Rgraphviz]; };
+  BCDAG = derive2 { name="BCDAG"; version="1.1.1"; sha256="1w6b72vcv9gdwxm5ynpy9jrw2qpbfi4qn8272qdbv4jz1p3k605n"; depends=[graph gRbase lattice mvtnorm Rgraphviz]; };
   BCDating = derive2 { name="BCDating"; version="0.9.8"; sha256="1px9fimg3fqx8bfkzq6rl34xclc9gcjxqjvj5islpdy4f1ifwph3"; depends=[]; };
-  BCE = derive2 { name="BCE"; version="2.2.0"; sha256="13banjjk14rrmyd66iayywip9aznfsk8x3yk4pamlw87byf0z3vk"; depends=[FME limSolve Matrix]; };
   BCEA = derive2 { name="BCEA"; version="2.4.6"; sha256="0qmnwh3j0mksgvnfnbkym7fpcngdnf1j83lqfilp5gn46akdqyvn"; depends=[cli dplyr ggplot2 gridExtra MASS Matrix MCMCvis purrr Rdpack reshape2 rlang rstan scales]; };
   BCEE = derive2 { name="BCEE"; version="1.3.2"; sha256="181khl93rsrqjm8cmn14a6bb7s47dp3xc31gm9rk088ixfjadq7h"; depends=[BMA boot leaps Rcpp RcppArmadillo]; };
   BCHM = derive2 { name="BCHM"; version="1.00"; sha256="1nyf65grcyf74sixixzl12gylk2rzh7n5id4mbhim4lzdm4j272i"; depends=[cluster coda crayon knitr plyr rjags]; };
@@ -309,7 +314,7 @@ in with self; {
   BDgraph = derive2 { name="BDgraph"; version="2.72"; sha256="1kc3icd7glivbjlhl9fbmxqza5w2x000w0w8ii8np9gjrhdwrybw"; depends=[ggplot2 igraph pROC]; };
   BE = derive2 { name="BE"; version="0.2.4"; sha256="17cm4vfvrv29rfxr6v58x04y4v1ncd23cpxfpdv7lq9saq8i82ag"; depends=[rtf]; };
   BEACH = derive2 { name="BEACH"; version="1.3.1"; sha256="0biq6c74k8vb8ykafzf3blyi08rp65x1vaw3bfpwdc1ihc9wrgjr"; depends=[devtools DT haven plyr rJava rtf sas7bdat shiny WriteXLS xtable]; };
-  BED = derive2 { name="BED"; version="1.5.0"; sha256="07pa4ljw6qzayzjms22gi19axq6hasb9j3r8m34z3j30n9iwq2g4"; depends=[dplyr DT miniUI neo2R readr rstudioapi shiny stringr visNetwork]; };
+  BED = derive2 { name="BED"; version="1.5.2"; sha256="0js227vn6mvn7zk2q0vw9w9cp2ayjzqja6mrmpw9wnx82fp0amcg"; depends=[dplyr DT miniUI neo2R readr rstudioapi shiny stringr visNetwork]; };
   BEDASSLE = derive2 { name="BEDASSLE"; version="1.6.1"; sha256="1zjgcfpsvghxz62qsg4s1w6gwpd804s8hfnwy5hifg6sy4phw9d7"; depends=[emdbook MASS matrixcalc]; };
   BEDMatrix = derive2 { name="BEDMatrix"; version="2.0.3"; sha256="1pq333x1shxw3wcqgcb4gqg6rwa0hyc24rib235q4zg10r2gyrbm"; depends=[crochet]; };
   BEKKs = derive2 { name="BEKKs"; version="1.4.4"; sha256="1ai475d1ya8j8kl4w6qdpdmsarz74p1799fc9hl0if2r3gv211vn"; depends=[future future_apply GAS ggfortify ggplot2 gridExtra ks lubridate mathjaxr moments numDeriv pbapply Rcpp RcppArmadillo reshape2 xts]; };
@@ -320,34 +325,35 @@ in with self; {
   BETS = derive2 { name="BETS"; version="0.4.9"; sha256="0daixk7mqmk2jq35i7mjaslz11gxbnnjgwxfvj8x1s88vz9l74sm"; depends=[DBI digest dplyr DT dygraphs forecast foreign ggplot2 grnn htmltools httr lubridate miniUI plotly rjson rmarkdown RMySQL rstudioapi rvest seasonal shiny sqldf stringr urca webshot xml2 zoo]; };
   BElikelihood = derive2 { name="BElikelihood"; version="1.1"; sha256="1v7bcyzrgaf4ih7pc0xq2zl8iwqgm5cjrz0x4ghvlai7w3008ihq"; depends=[ggplot2 mvtnorm]; };
   BFF = derive2 { name="BFF"; version="3.0.1"; sha256="1sya6ww8jwi56zb3i2rjhk1qd52n5s9sqlzndyk812zyxj6h5zim"; depends=[BSDA ggplot2 gsl hypergeo Matrix]; };
+  BFI = derive2 { name="BFI"; version="1.1.4"; sha256="10xy9acjvq1c21wsb3lfhpza56zcb4ifb4i4330i02phxxc8a9fa"; depends=[devtools]; };
   BFS = derive2 { name="BFS"; version="0.5.8"; sha256="0s3q9v61msb5cn7pjbkppdf6bcfn6r40jjr8d289m95q1rr5wkn5"; depends=[curl dplyr fs httr2 janitor lifecycle magrittr purrr pxweb rstac rvest sf tibble tidyRSS xml2 zip]; };
   BFpack = derive2 { name="BFpack"; version="1.2.3"; sha256="1bji697998qkb56gid8jd6bp9gqwxkls73d8vk55z838r60irlla"; depends=[bain Bergm ergm extraDistr lme4 MASS mvtnorm pracma QRM sandwich]; };
   BGData = derive2 { name="BGData"; version="2.4.1"; sha256="1bx63spfmsn9hz3qxhkvipfvyqcdy4afqzcada3bgly265kdg10h"; depends=[BEDMatrix bigmemory bit crochet ff LinkedMatrix symDMatrix synchronicity]; };
   BGFD = derive2 { name="BGFD"; version="0.1"; sha256="0983v66bjp9v3jp7zbjyffda1gaf20nakqr94c32lvh9wmk0y1s9"; depends=[AdequacyModel]; };
   BGGE = derive2 { name="BGGE"; version="0.6.5"; sha256="1h76c40y45xhf2vp9g0q5j9lfwh16q9axbk5c9aqn4md008xr1j2"; depends=[]; };
   BGGM = derive2 { name="BGGM"; version="2.1.1"; sha256="1k83x9x48vls5ahvl4fm3salss4vf27z23iiylkj7fcrf4br6q27"; depends=[BFpack GGally ggplot2 ggridges MASS mvnfast network Rcpp RcppArmadillo RcppDist RcppProgress Rdpack reshape sna]; };
-  BGLR = derive2 { name="BGLR"; version="1.1.1"; sha256="1wv29crcq1iqrvak749vq08fjfr2ys82fkni07ipwl99hknsz5sr"; depends=[MASS truncnorm]; };
+  BGLR = derive2 { name="BGLR"; version="1.1.2"; sha256="0942navssynfjl6ka7ii1khv1y7idvl5sbcy6xd911mx74vnyirr"; depends=[MASS truncnorm]; };
   BGPhazard = derive2 { name="BGPhazard"; version="2.1.1"; sha256="0i2fsvb9pvvhl4xpp87cacg9934hsi060c6d1z3j5hylwyq2k5h9"; depends=[Brobdingnag dplyr ggplot2 ggthemes gridExtra magrittr progress purrr readr rlang stringr survival tibble tidyr]; };
   BGVAR = derive2 { name="BGVAR"; version="2.5.5"; sha256="10cj8lx63jdzmvw674zj4vawvf3mwvyjxjpqicy9ajm6r6gbccj8"; depends=[abind bayesm coda GIGrvg knitr MASS Matrix Rcpp RcppArmadillo RcppParallel RcppProgress readxl stochvol xts zoo]; };
-  BGmisc = derive2 { name="BGmisc"; version="1.2.0"; sha256="1s3y76wbwln18xdn3fcb9kj8pa038c47ghvryvcxim93f0m339fh"; depends=[igraph kinship2 Matrix]; };
+  BGmisc = derive2 { name="BGmisc"; version="1.3.1"; sha256="01ka6rc5wivv4m44igfv9fm42pc1f8c6gxxwvabaz1p5hs725yx8"; depends=[data_table igraph kinship2 Matrix stringr]; };
   BH = derive2 { name="BH"; version="1.84.0-0"; sha256="1b7igvvy9f13l969a26j2bdzib2laq3m4w1x0xsxjb2pbxsn1dkg"; depends=[]; };
   BHAI = derive2 { name="BHAI"; version="0.99.2"; sha256="1hawa55mk590is8ziav7fdszsa3a42bqb0znzqsazz5lkg4daaa7"; depends=[MCMCpack plotrix prevtoinc]; };
   BHH2 = derive2 { name="BHH2"; version="2016.05.31"; sha256="1m4fcx979nbm97hi89vbjjix0sx6qhdzs486risck9bi7yzih5k4"; depends=[]; };
-  BHMSMAfMRI = derive2 { name="BHMSMAfMRI"; version="2.1"; sha256="1wcsgzx69qrw1bnipb9ry6162mirk6miw62w8pcvazqj91aljfhd"; depends=[oro_nifti Rcpp RcppArmadillo wavethresh]; };
+  BHMSMAfMRI = derive2 { name="BHMSMAfMRI"; version="2.2"; sha256="0xn4ss422mkshx5kcznaym04i5z5a9vw9hvcb10r38vq031wys8q"; depends=[oro_nifti Rcpp RcppArmadillo wavethresh]; };
   BHSBVAR = derive2 { name="BHSBVAR"; version="3.1.1"; sha256="184dhaajjzplslbfjmdm9zyr7h39zi1h3p549lac2sy6mrkglrc0"; depends=[Rcpp RcppArmadillo]; };
-  BHTSpack = derive2 { name="BHTSpack"; version="0.6"; sha256="01y3ly83i70lkg2kgbw1r7r1g4k9rk41qyzzscbp8zgc9z63ll8z"; depends=[R2HTML xtable]; };
   BI = derive2 { name="BI"; version="1.2.0"; sha256="12x8l5v703b142cixnw9fz0i1j7sx6cphjcsw7ywvhrfy7z8yc35"; depends=[]; };
   BICORN = derive2 { name="BICORN"; version="0.1.0"; sha256="0mqk8vgp6jdk7f0paa06yqlibkd1y3vs69pg7i9mkvxmda7p4nkq"; depends=[]; };
   BIEN = derive2 { name="BIEN"; version="1.2.6"; sha256="17zrj5ckxaz4mdbgywxi8kf51ssbf2md1d2azf30dh96kzc2ayps"; depends=[ape DBI doParallel fasterize foreach raster RPostgreSQL sf terra]; };
-  BIFIEsurvey = derive2 { name="BIFIEsurvey"; version="3.5-19"; sha256="0lxjh3yg2b3z9vfil18q6sgs0090haqhwc2ympwafgskigai64n6"; depends=[miceadds Rcpp RcppArmadillo]; };
+  BIFIEsurvey = derive2 { name="BIFIEsurvey"; version="3.6-6"; sha256="0g0v7sahh7kg84yi0gj7q21i2wld76vs8c0vzynyna3jal5a2ij7"; depends=[miceadds Rcpp RcppArmadillo]; };
   BIGDAWG = derive2 { name="BIGDAWG"; version="3.0.3"; sha256="1zbikvhyaksbddv2kz8nqkidjy4qsfp6a8wwyxjy5a0wcnqnwsxf"; depends=[haplo_stats httr XML]; };
-  BIGL = derive2 { name="BIGL"; version="1.9.0"; sha256="14igfl863v4hgzpry8a4p2hribi2slsahl1bn3amsr8cj311km64"; depends=[data_table ggplot2 lifecycle MASS minpack_lm nleqslv numDeriv plotly progress robustbase scales]; };
+  BIGL = derive2 { name="BIGL"; version="1.9.1"; sha256="0cc67fg6b5vjjvq485bw374h1d0l7klcgprwpb472srsbdx6l4y2"; depends=[data_table ggplot2 lifecycle MASS minpack_lm nleqslv numDeriv plotly progress robustbase scales]; };
   BINCOR = derive2 { name="BINCOR"; version="0.2.0"; sha256="0x2s82jql429shk70bhjdy9kamz8dz5ymsxj6kp8ga1711bpwyq6"; depends=[pracma]; };
   BINtools = derive2 { name="BINtools"; version="0.2.0"; sha256="0x97h0b2krdgrd0x266fidj77an3dq8mf9lnbas9112p4mhkmk58"; depends=[BH combinat dplyr mvtnorm Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders stringi tibble]; };
   BIOMASS = derive2 { name="BIOMASS"; version="2.1.11"; sha256="1qbx7hxzzwnwp00rdvdwqxawm54chn1pcql3009cwdydc249v0dh"; depends=[data_table jsonlite minpack_lm proj4 rappdirs sf terra]; };
   BIOdry = derive2 { name="BIOdry"; version="0.9"; sha256="1j6fbrvhiaz04fpybdldjk2prg3n5ayzvxqbx0g0vbna54kd1vz6"; depends=[ecodist nlme]; };
-  BISdata = derive2 { name="BISdata"; version="0.2-2"; sha256="0w7vn0x275iqsyc1l8p6c8r7v4brm8wnj7lnfb25dc9sfkz6jxx0"; depends=[]; };
+  BISdata = derive2 { name="BISdata"; version="0.2-3"; sha256="1bhlnwb88diyw2f9h9gyk73m4s9s30f51imclif8rwa45dpylmd3"; depends=[]; };
   BKTR = derive2 { name="BKTR"; version="0.1.1"; sha256="07qq6jxrwyvid6j54vzvf7a28ryk478kscn3z7dk9ic2y9c5ljj0"; depends=[data_table ggmap ggplot2 R6 R6P torch]; };
+  BLA = derive2 { name="BLA"; version="1.0.1"; sha256="06nfsn67vgmkm0rrbs2q56gswx4hj7swysaq6vizx6zsl0xp7rvr"; depends=[data_table MASS mvtnorm numDeriv]; };
   BLCOP = derive2 { name="BLCOP"; version="0.3.3"; sha256="08y9vmx3cknjvk6ngfwxlfnc03cqpj97i1ijrs1cw5sahjc0vmhc"; depends=[fBasics fMultivar fPortfolio knitr MASS quadprog rmarkdown RUnit timeSeries]; };
   BLModel = derive2 { name="BLModel"; version="1.0.2"; sha256="0l5f2v5ggadmrci3qhhmxm3j9i6jii0anq5rv5vk50y2qzii2q15"; depends=[]; };
   BLOQ = derive2 { name="BLOQ"; version="0.1-1"; sha256="0qs4pnzpfwkii6wpd8my34zw9k003b3is0y0aj1lhcm0qnn1p8h4"; depends=[maxLik mvtnorm]; };
@@ -360,10 +366,11 @@ in with self; {
   BMA = derive2 { name="BMA"; version="3.18.17"; sha256="1xfsfyjwsk5bp2j50qfhfm1yla4fl2l53d85466a9y3rl57m333d"; depends=[inline leaps robustbase rrcov survival]; };
   BMAmevt = derive2 { name="BMAmevt"; version="1.0.5"; sha256="19mmrz54n8ai9sfjpb3815p4r2pzy0v18hk020vqkjxakh9zgpab"; depends=[coda]; };
   BMRBr = derive2 { name="BMRBr"; version="0.2.0"; sha256="0v2ysap5jfkq9fc5blqlfhsv2bs8rqybmp5z4q3g6y3y7qzhypjw"; depends=[rvest xml2]; };
-  BMRMM = derive2 { name="BMRMM"; version="1.0.0"; sha256="1h3cxj996f85pgicwl68da12fmw1knfs42dmbsrv8lr4alc2lnn0"; depends=[fields logOfGamma MCMCpack multicool pracma]; };
+  BMRMM = derive2 { name="BMRMM"; version="1.0.1"; sha256="1hkk1wwxl4hn9nj43akx6d01pivg3cmkbdngip5f7g2qxd483111"; depends=[fields logOfGamma MCMCpack multicool pracma]; };
   BMS = derive2 { name="BMS"; version="0.3.5"; sha256="0mivdvazhmvfg4in56hlw41amf470a20qczdi4if9r1f9kdcji19"; depends=[]; };
   BMT = derive2 { name="BMT"; version="0.1.0.3"; sha256="1vdah5bsn41s2qriq15xi7dw9qzngaacmn5gk6yc7hi89dwyy3yj"; depends=[fitdistrplus partitions]; };
   BMTAR = derive2 { name="BMTAR"; version="0.1.1"; sha256="0c70vkgv2sdci33yrk2n297k105wnlxj1qchskdparkiipf47xsh"; depends=[Brobdingnag doParallel expm ggplot2 ks MASS MCMCpack mvtnorm]; };
+  BMconcor = derive2 { name="BMconcor"; version="2.0.0"; sha256="0sm18dy9d4byzhjymcl9i30660i7x4zd53mbgyns5ffaww4h7fcc"; depends=[]; };
   BMisc = derive2 { name="BMisc"; version="1.4.6"; sha256="1j1qxa5hgc9zdmk1y4xa87jcxi8m75hms88ishfvbqg8n2k9ah1h"; depends=[data_table dplyr Rcpp RcppArmadillo]; };
   BNPTSclust = derive2 { name="BNPTSclust"; version="2.0"; sha256="1ymvklv6d9684xzwdkvaxdjd1q20xmsf6kkfibn2wphlaqs2rh2n"; depends=[MASS mvtnorm]; };
   BNPdensity = derive2 { name="BNPdensity"; version="2023.3.8"; sha256="0b0hv634k5vnc74iw2c0arx9rl3bh5hahhrhp14gx324jv279fs5"; depends=[coda dplyr ggplot2 gridExtra survival tidyr viridis]; };
@@ -373,10 +380,10 @@ in with self; {
   BNrich = derive2 { name="BNrich"; version="0.1.1"; sha256="0m3cz7npc7mwq2vj68hllbd2vf5xqw00jaxv1pm3c28mq7pb459j"; depends=[bnlearn corpcor glmnet graph]; };
   BOIN = derive2 { name="BOIN"; version="2.7.2"; sha256="03h6s1nn87xgkk830wls06mgflg0arq084k74gfp1k4wccwkjr5y"; depends=[Iso]; };
   BOJ = derive2 { name="BOJ"; version="0.3"; sha256="1x9lz01fjdk0aybs6zsbbq2xfjvh99qiimmnrkbcd6sj880vn3a3"; depends=[dplyr readr rvest tidyr tidyselect xml2]; };
-  BOSO = derive2 { name="BOSO"; version="1.0.3"; sha256="0zax40x2d62vcn8zznmzmykk33mv4vbjfl88i3r1djbvalcdf5cf"; depends=[MASS Matrix]; };
+  BOSO = derive2 { name="BOSO"; version="1.0.4"; sha256="1g7277xw9bgq575x7fhjwpja6sfbg51di7hawxhmc57kvvmpx032"; depends=[MASS Matrix]; };
   BOSSreg = derive2 { name="BOSSreg"; version="0.2.0"; sha256="0ln4nx0jlvz5kqk9qkcl8a2cyhsdcqqfs5112qcaabjiwjnvla7w"; depends=[glmnet Matrix Rcpp RcppArmadillo]; };
   BPM = derive2 { name="BPM"; version="1.0.0"; sha256="17k2d1xjfz85ygx0xnh6yqca9nyypd32d7sbna3k33ynsjqay3x8"; depends=[limma]; };
-  BPrinStratTTE = derive2 { name="BPrinStratTTE"; version="0.0.2"; sha256="1sddfxcbk9zg266gsvb6qs6c3mw4y1d88jj6zf9781jranpb1hng"; depends=[BH dplyr furrr magrittr purrr Rcpp RcppEigen RcppParallel rstan StanHeaders stringr tibble]; };
+  BPrinStratTTE = derive2 { name="BPrinStratTTE"; version="0.0.7"; sha256="1iqy36am0isiyjjgrf2jr1ywxxl0n33da637r7j3c3n3zc6yyqyg"; depends=[BH dplyr furrr magrittr purrr Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders stringr tibble]; };
   BRACE = derive2 { name="BRACE"; version="0.1.0"; sha256="19paaxk0szd5azcw95sd22fryb38lamd8r4y1f6zmcngbza470dk"; depends=[survival survminer]; };
   BRACoD_R = derive2 { name="BRACoD.R"; version="0.0.2.0"; sha256="1jxxrgq2s5fqflp9ac4fx51jhlx33pdwijsp4vq63y430k79vcpp"; depends=[reticulate]; };
   BRBVS = derive2 { name="BRBVS"; version="0.1.1"; sha256="0ibbnfgna80xdb7lzmc0jvlkgw4xrgva1s4bnm0cq93412r2lnay"; depends=[copent ggplot2 GJRM mvtnorm]; };
@@ -402,7 +409,7 @@ in with self; {
   BT = derive2 { name="BT"; version="0.4"; sha256="1ifanv79rrbc9m6rxhnhhr5kss9idykpn672w3zxqi8fic9f0hsx"; depends=[rpart statmod]; };
   BTLLasso = derive2 { name="BTLLasso"; version="0.1-13"; sha256="19r45qm1iq3sjb6r5ficgv8q9zwpbilxwrf6rxvqdl333xcnnjy4"; depends=[Matrix psychotools Rcpp RcppArmadillo stringr]; };
   BTM = derive2 { name="BTM"; version="0.3.7"; sha256="0lal2fr2lpaky03hrc1gb15kky3s5sr9rbkmrp3v9g2iksd7b5yb"; depends=[Rcpp]; };
-  BTSPAS = derive2 { name="BTSPAS"; version="2024.4.1"; sha256="0vpgbkhsirzx3c11ddw56h16kjglr76p78nwqaylinn7rx5qh68a"; depends=[actuar coda data_table ggforce ggplot2 gridExtra plyr R2jags reshape2 scales]; };
+  BTSPAS = derive2 { name="BTSPAS"; version="2024.5.9"; sha256="0gc0ik2257zk6bjhwc78z53jg9a34s32wbwdqk25a6m5wvjp2qlj"; depends=[actuar coda data_table ggforce ggplot2 gridExtra plyr R2jags reshape2 scales]; };
   BTSR = derive2 { name="BTSR"; version="0.1.5"; sha256="0kqgy61ijalpclrm20xwjbvbb5pkhkbgsbdbsz0mrb4v30a05dh4"; depends=[]; };
   BTYD = derive2 { name="BTYD"; version="2.4.3"; sha256="1szkpcmagpig32vbs7klx71avjlmbd0cn123ljpc3i02b55lma7z"; depends=[dplyr hypergeo Matrix optimx]; };
   BTYDplus = derive2 { name="BTYDplus"; version="1.2.0"; sha256="1shai7kij20g3isd6l29i696pkzymr0qq2i9gzfsxmvdb4g4pcm2"; depends=[bayesm BTYD coda data_table mvtnorm Rcpp]; };
@@ -429,8 +436,8 @@ in with self; {
   BatchExperiments = derive2 { name="BatchExperiments"; version="1.4.3"; sha256="0g3vr2g4v968rwzja1nngji58960p2r494km8wia7x5w3y69p063"; depends=[backports BatchJobs BBmisc checkmate data_table DBI RSQLite]; };
   BatchGetSymbols = derive2 { name="BatchGetSymbols"; version="2.6.4"; sha256="1sv4p0f8l79wy3q6jwsi3iy7zljc33z9mnyf8ijb23l64w7fvy9i"; depends=[cli crayon curl dplyr furrr future lifecycle lubridate purrr quantmod rvest scales stringr tibble tidyr XML zoo]; };
   BatchJobs = derive2 { name="BatchJobs"; version="1.9"; sha256="0xsw25j2ks9bqgz189qdcyj8hzz93snknlik83nj04s6vy0w7aax"; depends=[backports BBmisc brew checkmate data_table DBI digest RSQLite sendmailR stringi]; };
-  BayLum = derive2 { name="BayLum"; version="0.3.1"; sha256="1n40zz0156kw6fwqvlhx3svmvwa2049z4ly9lxcid84dwyxxyn0r"; depends=[ArchaeoPhases coda hexbin KernSmooth Luminescence rjags runjags]; };
-  Bayenet = derive2 { name="Bayenet"; version="0.1"; sha256="1xcn6cyzsy1am6d6kmb2fd5pn1h26hz68jj2kwy99f9bz4473rgy"; depends=[gsl hbmem MASS MCMCpack Rcpp RcppArmadillo SuppDists VGAM]; };
+  BayLum = derive2 { name="BayLum"; version="0.3.2"; sha256="1vkykrwjmm810m29i2l3yps8snysc8s2qqfbgprr4a0a1qyj4nrg"; depends=[cli coda hexbin KernSmooth Luminescence rjags runjags yaml]; };
+  Bayenet = derive2 { name="Bayenet"; version="0.2"; sha256="0h0b6m3lpwjax5vwbmqmfqx55hx3sgbb87jby2lwn3d2v138bpks"; depends=[gsl hbmem MASS MCMCpack Rcpp RcppArmadillo SuppDists VGAM]; };
   BayesARIMAX = derive2 { name="BayesARIMAX"; version="0.1.1"; sha256="1rcfq0r8sqiqs65mbpcr8i4667cdb50k6bx6wdh9spr0djh8gfv0"; depends=[coda forecast]; };
   BayesBEKK = derive2 { name="BayesBEKK"; version="0.1.1"; sha256="1vlljv7xdfvbrbxqdi91xrz1aga04aa1pb23kvnmahm2s261map1"; depends=[coda MTS mvtnorm]; };
   BayesBP = derive2 { name="BayesBP"; version="1.1"; sha256="043msccrins1smaizmf7qc6q1cyjdzirw2ygnvi56lskib1cls7m"; depends=[iterators openxlsx]; };
@@ -445,10 +452,10 @@ in with self; {
   BayesDIP = derive2 { name="BayesDIP"; version="0.1.1"; sha256="05kz0qik76gk1v6ldhlbzmylpsv5zmbqbjgf9sc8c5zkyjdawgj8"; depends=[]; };
   BayesDLMfMRI = derive2 { name="BayesDLMfMRI"; version="0.0.3"; sha256="06806wckw629gl6p8jbxpg8lh6wsy8nhs2017qcfc3wwxb6dd3jc"; depends=[abind mathjaxr neurobase oro_nifti pbapply Rcpp RcppArmadillo RcppDist Rdpack]; };
   BayesDesign = derive2 { name="BayesDesign"; version="0.1.1"; sha256="1h69a18wp2z96a002x154d2vd1imzap3zm7yfssm5dh7igha18zc"; depends=[]; };
-  BayesDissolution = derive2 { name="BayesDissolution"; version="0.2.0"; sha256="0wn0yibymlxjc7aqiy6x3aaylpg0izvny82cialb27iaf11kbrzl"; depends=[coda geoR MCMCpack mnormt pscl shiny]; };
+  BayesDissolution = derive2 { name="BayesDissolution"; version="0.2.1"; sha256="1x3jn4mdp7csxm6h8rk33h9hlflhkjssqnfzcl3hbkwv4pb97ifl"; depends=[coda geoR MCMCpack mnormt pscl shiny]; };
   BayesESS = derive2 { name="BayesESS"; version="0.1.19"; sha256="023r5pxqa2ll3vyfmchdlcg6ay0qixphz24078g1immqp43mlrxm"; depends=[dfcrm LaplacesDemon MASS MatrixModels MCMCpack Rcpp RcppArmadillo RcppEigen]; };
   BayesFBHborrow = derive2 { name="BayesFBHborrow"; version="1.0.1"; sha256="1mkz9viwjf9syfgb5dnzknc96qypsjdkwijky4ybyankzg8nwwrs"; depends=[checkmate dplyr ggplot2 invgamma magrittr mvtnorm survival]; };
-  BayesFM = derive2 { name="BayesFM"; version="0.1.5"; sha256="1x6paj5fr036mry6yr32vrxx2kfz89c8dz39ky1nc6jg1q7x5a8i"; depends=[checkmate coda ggplot2 gridExtra plyr]; };
+  BayesFM = derive2 { name="BayesFM"; version="0.1.7"; sha256="1iiahwlzxizs6d2f59amfhhca3vh612y5n9ijzpr4fnhpm1q9df1"; depends=[checkmate coda ggplot2 gridExtra plyr]; };
   BayesFactor = derive2 { name="BayesFactor"; version="0.9.12-4.7"; sha256="0z9p9vdcmcdwqmixaiqnhli2b06whbap6y4pqx4a5gcdgxlj09zr"; depends=[coda hypergeo Matrix MatrixModels mvtnorm pbapply Rcpp RcppEigen stringr]; };
   BayesFluxR = derive2 { name="BayesFluxR"; version="0.1.3"; sha256="0kj7hxj39k0k6njf24ldb6w10qdwambd8hm6xpjfa1brb807lwkj"; depends=[JuliaCall]; };
   BayesGOF = derive2 { name="BayesGOF"; version="5.2"; sha256="17wm0228xq3db431abyi9jr0q1q86nnajsn7hmy4dwzgvrlz5s0i"; depends=[Bolstad2 nleqslv orthopolynom VGAM]; };
@@ -460,17 +467,17 @@ in with self; {
   BayesLN = derive2 { name="BayesLN"; version="0.2.10"; sha256="0p8g0h4zqz5njr7lkkv2hhq9qas9lvrxamg8xb9hkqrxfxd0d3nn"; depends=[coda data_table GeneralizedHyperbolic gsl lme4 MASS Matrix optimx Rcpp RcppEigen]; };
   BayesLogit = derive2 { name="BayesLogit"; version="2.1"; sha256="0w3bzk39sxdskwikcz5i0xwfsll4sqgkpr8vw8jvzlcy6dl3yhis"; depends=[]; };
   BayesMFSurv = derive2 { name="BayesMFSurv"; version="0.1.0"; sha256="1yxxzwjh1fgfh7qkzf9dfm3x0vbgb0v4p6bf6b5w14kvm06rzhkg"; depends=[coda FastGP MCMCpack mvtnorm Rcpp RcppArmadillo]; };
-  BayesMallows = derive2 { name="BayesMallows"; version="2.1.1"; sha256="1h232zppb7m2d6ndk18kjg9lj2s4va57j0ppfvz2k218s733skna"; depends=[ggplot2 igraph Rcpp RcppArmadillo Rdpack relations rlang sets testthat]; };
+  BayesMallows = derive2 { name="BayesMallows"; version="2.2.1"; sha256="0i922b8qapm1k4wvy3f6xbf138ihgyv8l2ixsbfl73z3mrm6nyr4"; depends=[ggplot2 Rcpp RcppArmadillo Rdpack relations rlang sets testthat]; };
   BayesMassBal = derive2 { name="BayesMassBal"; version="1.1.0"; sha256="1cgcx8kvn0bmn8kmq8ri3k98yx085d2qndislbwhn833ws6vkl88"; depends=[coda HDInterval LaplacesDemon Matrix pracma Rdpack tmvtnorm]; };
   BayesMixSurv = derive2 { name="BayesMixSurv"; version="0.9.1"; sha256="19kf39881q00pap9afwvvggk4s4w3qpz17b7065nig1mvk8dnp8r"; depends=[survival]; };
-  BayesMortalityPlus = derive2 { name="BayesMortalityPlus"; version="0.2.3"; sha256="0zh9v0hzpjsz312bpdrlc2rix2df1v8ccm831fis7czjhvcbc14z"; depends=[dplyr ggplot2 magrittr MASS mvtnorm progress scales tidyr]; };
+  BayesMortalityPlus = derive2 { name="BayesMortalityPlus"; version="0.2.4"; sha256="15g87wpaj7rsm8dnz7w57vw9bpkj0aj5f6hi8v7m8kamki8m7chm"; depends=[dplyr ggplot2 magrittr MASS mvtnorm progress scales tidyr]; };
   BayesMultMeta = derive2 { name="BayesMultMeta"; version="0.1.1"; sha256="09x41r5lhr2dq56b05f0aj8v4s7084d4z90qjqwdkv8zgk664ki0"; depends=[assertthat Rdpack]; };
   BayesMultiMode = derive2 { name="BayesMultiMode"; version="0.7.1"; sha256="0ij1igdnbk3wy01mdimk9k5ajxmx2plla0ykvsmijzz5mcmqyrii"; depends=[assertthat bayesplot dplyr ggplot2 ggpubr gtools magrittr MCMCglmm mvtnorm posterior Rdpack sn stringr tidyr]; };
   BayesNSGP = derive2 { name="BayesNSGP"; version="0.1.2"; sha256="0va4gvyfwfdk3yvhdyxc49qlmzxfblwlmwqh79b93zkv8239kkk1"; depends=[FNN Matrix nimble StatMatch]; };
   BayesNetBP = derive2 { name="BayesNetBP"; version="1.6.1"; sha256="1c6a82qlcrpbb2c4zp3gk24wcgw6x62lm8hm6n2l1r307dxm2rpb"; depends=[bnlearn doBy fields graph igraph RColorBrewer]; };
   BayesOrdDesign = derive2 { name="BayesOrdDesign"; version="0.1.2"; sha256="1417zd1n5sip999n6q6bgs85c0000ksl73a4p94y0lmdn27i8pmj"; depends=[coda ggplot2 gsDesign madness ordinal R2jags rjags rjmcmc schoolmath superdiag]; };
   BayesPPD = derive2 { name="BayesPPD"; version="1.1.2"; sha256="0c015l8ih1ck1qb31vvnn95fivf5r3ns58pdlm4x5bf7giprjxf4"; depends=[Rcpp RcppArmadillo RcppEigen RcppNumerical]; };
-  BayesPPDSurv = derive2 { name="BayesPPDSurv"; version="1.0.2"; sha256="12nazb5dd60vwp7by6an646kg7h0p1141jnk6wgv5f9lj6g45r4y"; depends=[dplyr Rcpp RcppArmadillo RcppDist tidyr]; };
+  BayesPPDSurv = derive2 { name="BayesPPDSurv"; version="1.0.3"; sha256="1n954qsld509hf47hz7m0998lb1pc8mj0r8i67v0qx9qvr39jmm2"; depends=[dplyr Rcpp RcppArmadillo RcppDist tidyr]; };
   BayesPieceHazSelect = derive2 { name="BayesPieceHazSelect"; version="1.1.0"; sha256="0znbmv7crqycdx75jh02h6z8d6cifjszbrldv2yva4mkjxsydag5"; depends=[mvtnorm]; };
   BayesPostEst = derive2 { name="BayesPostEst"; version="0.3.2"; sha256="0r05by4w80j6hb22v3ibj686ixxbj7lkxq499fciz5lqs4lxzf3h"; depends=[brms carData caTools coda dplyr ggplot2 ggridges HDInterval MCMCpack R2jags R2WinBUGS reshape2 rjags rlang ROCR rstanarm runjags texreg tidyr]; };
   BayesProject = derive2 { name="BayesProject"; version="1.0"; sha256="0b1xqw7f9kfbmr8m6fl9d2fpwr364s4a5vdw57l6i5rm6lszyfh5"; depends=[Rcpp RcppEigen Rdpack]; };
@@ -480,10 +487,11 @@ in with self; {
   BayesRepDesign = derive2 { name="BayesRepDesign"; version="0.42"; sha256="0xm3ap8lwg52760kyfp71i52mpkkh32753fprb4dfy1ry7g2qmyv"; depends=[lamW]; };
   BayesReversePLLH = derive2 { name="BayesReversePLLH"; version="1.5"; sha256="08zx8paaqg8zkf4d2rfparbi54p1i9wr05iqp7nqy7xv3isq1zfp"; depends=[Rcpp RcppArmadillo]; };
   BayesS5 = derive2 { name="BayesS5"; version="1.41"; sha256="0vs6s50h4gpxda9lbxfgn76k9kp81l62a6bv22r7ixsjlnd4baql"; depends=[abind Matrix snowfall splines2]; };
-  BayesSUR = derive2 { name="BayesSUR"; version="2.1-6"; sha256="09iqd1zk9yvnbk07lkrvzb3sg54x8091862vj2vy1ran4pnaclf0"; depends=[igraph Matrix Rcpp RcppArmadillo tikzDevice xml2]; };
+  BayesSUR = derive2 { name="BayesSUR"; version="2.2-0"; sha256="1v5m4m1dqvn1scg27ll4bfq656zxx26jbvgk47p83vlll9k6msn3"; depends=[igraph Matrix Rcpp RcppArmadillo tikzDevice xml2]; };
   BayesSampling = derive2 { name="BayesSampling"; version="1.1.0"; sha256="1nwwf195b7hly7kjfikizyvgc975g74z6hsm89c1ibfgxlj51bcw"; depends=[MASS Matrix matrixcalc]; };
   BayesSenMC = derive2 { name="BayesSenMC"; version="0.1.5"; sha256="16949bcakx4a77md1rm6364mzsjxr7gpmz2rxnslhz2szx4cnnaj"; depends=[BH dplyr ggplot2 lme4 Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
   BayesSurvival = derive2 { name="BayesSurvival"; version="0.2.0"; sha256="1kpp0dfcmk86grg13b817py49v071q6p0dh8z22g6x2i8zl1vdfi"; depends=[ggplot2 survival]; };
+  BayesSurvive = derive2 { name="BayesSurvive"; version="0.0.2"; sha256="1m7acw40hvjpgjzyz8fpqzvkz1dadq829klba0343g8h0hmfcd65"; depends=[GGally ggplot2 mvtnorm Rcpp RcppArmadillo riskRegression survival]; };
   BayesTools = derive2 { name="BayesTools"; version="0.2.17"; sha256="1vwc64s1a10d2haw7bi5896hhipbb1y7aks4mzjpfrp4zavbzlpn"; depends=[bridgesampling coda extraDistr ggplot2 mvtnorm Rdpack rlang]; };
   BayesTree = derive2 { name="BayesTree"; version="0.3-1.5"; sha256="0nq0587j9n7c83m3mw2wglz58dayfsbgrlvyfslf8jmfhgi5lqqx"; depends=[nnet]; };
   BayesTreePrior = derive2 { name="BayesTreePrior"; version="1.0.1"; sha256="13igmvw1wj8kzfijzsrhdqr52kv4vqrm91i71ay6f7jnkry3spaw"; depends=[]; };
@@ -495,7 +503,7 @@ in with self; {
   BayesianFactorZoo = derive2 { name="BayesianFactorZoo"; version="0.0.0.2"; sha256="1w06hizaj4vxrhxv4jgr0s5ak1w0rr3j2zcdz7cf0mnrbg600dfd"; depends=[coda ggplot2 MASS Matrix matrixcalc MCMCpack mvtnorm nse Rdpack reshape2 timeSeries]; };
   BayesianGLasso = derive2 { name="BayesianGLasso"; version="0.2.0"; sha256="09yb1qqx6qlsspk3ndrcqxy0956iqznw0rmyvqxgxxp3zd3y21xp"; depends=[MASS statmod]; };
   BayesianLaterality = derive2 { name="BayesianLaterality"; version="0.1.2"; sha256="1dy00xgz9cc65aj39nf76crhfxfyackpcniwadrh38mk8zpbka42"; depends=[dplyr purrr Rdpack rlang tidyr tmvtnorm]; };
-  BayesianMCPMod = derive2 { name="BayesianMCPMod"; version="1.0.0"; sha256="1fcdjkisxbs0z82bf28dyxj110gvv463zq7k28l2ylakpr4346wp"; depends=[checkmate DoseFinding ggplot2 nloptr RBesT]; };
+  BayesianMCPMod = derive2 { name="BayesianMCPMod"; version="1.0.1"; sha256="1767rjyd5vl73lqknpxkgcv38rhxdm837zr7c3d5d6f9rdh8rgyw"; depends=[checkmate DoseFinding ggplot2 nloptr RBesT]; };
   BayesianMediationA = derive2 { name="BayesianMediationA"; version="1.0.1"; sha256="1ygc0xhk7mk7pkqn0v9n23j1m75rr1r2ar30r386c1av3jh7krnw"; depends=[car gplots lattice R2jags survival]; };
   BayesianNetwork = derive2 { name="BayesianNetwork"; version="0.3"; sha256="0nyv2maqssayd79fs0zhpblscd7nsvw7k4fmqzpfz2xgivnx2i5p"; depends=[bnlearn heatmaply lattice networkD3 plotly rintrojs shiny shinyAce shinydashboard shinyWidgets]; };
   BayesianPlatformDesignTimeTrend = derive2 { name="BayesianPlatformDesignTimeTrend"; version="1.2.3"; sha256="1v06airw3zzkvb5qmn0abyhkdp51wjmax101ljj9ibx01nj01zdv"; depends=[BH BiocManager boot doParallel foreach ggplot2 ggpubr iterators laGP lhs matrixStats RColorBrewer Rcpp RcppEigen RcppParallel reshape rstan rstantools StanHeaders stringr]; };
@@ -510,7 +518,7 @@ in with self; {
   BeQut = derive2 { name="BeQut"; version="0.1.0"; sha256="065hjpz4162j2ykcwnri25j4mkqf7yl5bf9ja3xn7yvszif0pjh9"; depends=[jagsUI lqmm MASS survival]; };
   BeSS = derive2 { name="BeSS"; version="2.0.4"; sha256="1y45lqw6b0qzzg9j3cs18fvzd4q7l6njhjkzpcrik2lgwkzamc8a"; depends=[glmnet Matrix Rcpp RcppEigen survival]; };
   BeastJar = derive2 { name="BeastJar"; version="1.10.6"; sha256="0581q9m7lb681d12vld231vn6wqv5s2sqkvav4fd0xllvjighlx7"; depends=[rJava]; };
-  BeeBDC = derive2 { name="BeeBDC"; version="1.1.0"; sha256="1ckxs41fg7gw8p9v8xink3ams0bfmjkn635dbzrvcwgmi7j3882z"; depends=[circlize CoordinateCleaner cowplot dplyr forcats ggplot2 ggspatial here igraph lubridate mgsub openxlsx paletteer readr rnaturalearth sf stringr tidyselect]; };
+  BeeBDC = derive2 { name="BeeBDC"; version="1.1.1"; sha256="05c215m8zd6wcyjgvpkdmzghb2sp8677mj4shnjzqknbvmgqm9hh"; depends=[circlize CoordinateCleaner cowplot dplyr forcats ggplot2 ggspatial here igraph lubridate mgsub openxlsx paletteer readr rnaturalearth sf stringr tidyselect]; };
   BeeGUTS = derive2 { name="BeeGUTS"; version="1.1.3"; sha256="1880bsgwal06i7q3la1f8alrhj43mnsim6n8inrnaqcbqgi69v3n"; depends=[BH cowplot data_table dplyr ggplot2 gridExtra magrittr odeGUTS Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders tidyr]; };
   Benchmarking = derive2 { name="Benchmarking"; version="0.32"; sha256="0fv0i4cpsisk5wa6hgvp75r170ir1zyr2wqbkzfz3qhr43z0jayx"; depends=[lpSolveAPI quadprog Rcpp ucminf]; };
   BenfordTests = derive2 { name="BenfordTests"; version="1.2.0"; sha256="1nnj0w0zwcmg7maqmmpixx7alvsyxva370ssc26ahg6kxy5a621w"; depends=[]; };
@@ -521,17 +529,18 @@ in with self; {
   BetaBit = derive2 { name="BetaBit"; version="2.2"; sha256="185bsjc1azvblg0hm39bq3r1c6c4vla9k5cz39p6kjzd1gn1zhr2"; depends=[digest]; };
   BetaPASS = derive2 { name="BetaPASS"; version="1.1-2"; sha256="1vx2wn2bj3xl430aw4zlv2j3m39nkmg7mfkm1pmilvpqszfx078g"; depends=[betareg ggplot2 pbapply]; };
   BetterReg = derive2 { name="BetterReg"; version="0.2.0"; sha256="08qafm8j0bbh6qywyq6dr1j204n9cxrpyy2fh74mbgm3xknazxsc"; depends=[car dplyr]; };
-  BeviMed = derive2 { name="BeviMed"; version="5.8"; sha256="12ngw3b05mqsf95svvkk5s8w0fs1yfbpbfk8x9a9v2yva5n65y7a"; depends=[Matrix Rcpp]; };
+  BeviMed = derive2 { name="BeviMed"; version="5.10"; sha256="0brima71g7x51zd1ifbgw54mnamjmm2wr8rrcnkzdy0q8wcnvgqj"; depends=[Matrix Rcpp]; };
   BeyondBenford = derive2 { name="BeyondBenford"; version="1.4"; sha256="04jdx35955g44v2is6zxfw1gip7zh3li8divc7iy5hl0jrshfhv3"; depends=[ggplot2]; };
   Bhat = derive2 { name="Bhat"; version="0.9-12"; sha256="0jrn57v90anxsdasfwn3c4mxwzz8b5nbvsn5c57d71xfdza4lh6f"; depends=[MASS]; };
   BiBitR = derive2 { name="BiBitR"; version="0.3.1"; sha256="0wfwph6nw12hb43j14i9ycj8m2zn0m5ynp7afq9cray8rbgvxfv6"; depends=[biclust cluster dendextend foreign lattice randomcoloR viridis]; };
   BiCausality = derive2 { name="BiCausality"; version="0.1.4"; sha256="0ryzq77j8sbic5mj8r6bpirnr2vb45wwkkkkkjmv70c15ip5409r"; depends=[]; };
   BiDAG = derive2 { name="BiDAG"; version="2.1.4"; sha256="0gncxn558mdasr63jvqyavd6nhg6762rk0g0a2b7hfvcivjb6bd5"; depends=[coda graph Matrix pcalg RBGL Rcpp Rgraphviz]; };
   BiDimRegression = derive2 { name="BiDimRegression"; version="2.0.1"; sha256="00zcvk5v8rn3dp02sivs5z7cch9y8csp5cjhhs4ragdgcry0c3i5"; depends=[Formula]; };
-  BiSEp = derive2 { name="BiSEp"; version="2.2"; sha256="1ha7rc1q54dr2xl4bpkiwl703igmmi9qphsgv2h0flq7iz0gr351"; depends=[AnnotationDbi GOSemSim mclust]; };
+  BiObjClass = derive2 { name="BiObjClass"; version="0.1.0"; sha256="07vbs0qi60x32y0hj6g55z76zsfmc7v8dapr2g22lsnkfdnfh10c"; depends=[]; };
+  BiSEp = derive2 { name="BiSEp"; version="2.3"; sha256="1xg2m8rvxwpj47nb20kyd5hpa1lshg58bi0alf1v476yhcwqgrhx"; depends=[AnnotationDbi GO_db GOSemSim mclust org_Hs_eg_db]; };
   BiTrinA = derive2 { name="BiTrinA"; version="1.3.1"; sha256="09x3w3njdm7pgjjcqc1g3lp8nj31qkq3hmn21dqgvq7acyblan08"; depends=[diptest]; };
   BiasCorrector = derive2 { name="BiasCorrector"; version="0.2.2"; sha256="0a6iiy4iw8w8s4kbjf6r0gji6izf1zdb99r8vfbvgzzwg2pxx4h4"; depends=[data_table DT magrittr rBiasCorrection shiny shinydashboard shinyjs]; };
-  BiasedUrn = derive2 { name="BiasedUrn"; version="2.0.11"; sha256="0dvmkrdmhfh4swilyxf10y856kx0zf9sj1gc0g62bm6r5jhz35b2"; depends=[]; };
+  BiasedUrn = derive2 { name="BiasedUrn"; version="2.0.12"; sha256="14jpijms81pgl4zyqrhwwdfj0jmlmml21blspvin8lqw8fbbbcr9"; depends=[]; };
   BibPlots = derive2 { name="BibPlots"; version="0.0.8"; sha256="0zvbyh8spr0ywj64b2rc8jcq4fgn87858km4mkkh17g30ympg767"; depends=[]; };
   BifactorIndicesCalculator = derive2 { name="BifactorIndicesCalculator"; version="0.2.2"; sha256="1vnwksw0j4lc2knlcmm5748pf4d7r44sn34s1mrv9p50hlnkk85p"; depends=[lavaan mirt mnormt MplusAutomation tidyr]; };
   BigQuic = derive2 { name="BigQuic"; version="1.1-13"; sha256="14mz9ry72zc4c0fhc59dima66qnksr1masvhzm1j8z8r11w7qjhd"; depends=[Matrix Rcpp scalreg]; };
@@ -546,25 +555,26 @@ in with self; {
   Binarize = derive2 { name="Binarize"; version="1.3.1"; sha256="08xg3s30mk5q0hfvigysnfp8lsnq42j267ylpnhphw5vzlg5xivx"; depends=[diptest]; };
   BinaryDosage = derive2 { name="BinaryDosage"; version="1.0.0"; sha256="10nf11c57j0ls4znm137w831s7zmihg7bybrfg666hx7c9amspjw"; depends=[digest prodlim Rcpp]; };
   BinaryEMVS = derive2 { name="BinaryEMVS"; version="0.1"; sha256="1ainp6pg481yqhjc4f1pkxzxczbi3qm0kgq280vndq859ldfkpnh"; depends=[]; };
+  BinaryEPPM = derive2 { name="BinaryEPPM"; version="3.0"; sha256="1sjwh423vap4gd44mkpdhsmp90y9rzr3zkzzakbfczawxz3mbcrp"; depends=[expm Formula lmtest numDeriv]; };
   BinarybalancedCut = derive2 { name="BinarybalancedCut"; version="0.2"; sha256="1rs7x7ggqzaz9r2912g0fi9x7przd8gjy6pianx457w5f39fqx4v"; depends=[ggplot2 reshape2]; };
   BioCircos = derive2 { name="BioCircos"; version="0.3.4"; sha256="1gl57r47p5z1wzs94xzc26j2r8z5hpqr4163b01x6jwzvbrlfwhz"; depends=[htmlwidgets jsonlite plyr RColorBrewer]; };
+  BioCro = derive2 { name="BioCro"; version="3.1.3"; sha256="1r0q6rwn6qv8wh5j0qyf49dzfl1vy211wbnjkcjhg27jahf553fc"; depends=[]; };
   BioInsight = derive2 { name="BioInsight"; version="0.3.1"; sha256="129w9643l01y316hm0qcsmxzh5lsdmq6xmiz4rhmdh0dcnw2s93n"; depends=[edgeR knitr limma RColorBrewer wordcloud]; };
-  BioM2 = derive2 { name="BioM2"; version="1.0.5"; sha256="0qpk36ay80aqbamr08i6gggy9jlz923014dnpvnv9gbqkz6vyyw8"; depends=[caret CMplot ggforce ggnetwork ggplot2 ggpubr ggsci ggstatsplot ggthemes htmlwidgets igraph jiebaR mlr3 mlr3verse ROCR uwot viridis webshot WGCNA wordcloud2]; };
+  BioM2 = derive2 { name="BioM2"; version="1.0.7"; sha256="1nr8vb5vw5r91vp700c2p4bqx99gp9xb9ch00fwad8rhv0h1yy4x"; depends=[caret CMplot ggforce ggnetwork ggplot2 ggpubr ggsci ggstatsplot ggthemes htmlwidgets igraph jiebaR mlr3 mlr3verse ROCR uwot viridis webshot WGCNA wordcloud2]; };
   BioMark = derive2 { name="BioMark"; version="0.4.5"; sha256="1ifc72bayy3azbilajqqzl0is6z7l1zaadchcg3n8lhmjrv5sk3m"; depends=[glmnet MASS pls st]; };
   BioPET = derive2 { name="BioPET"; version="0.2.2"; sha256="0zgq7i37d0rnjhlkcrl44x62vhz0njsv2fldm64j9r4wc02z1q9n"; depends=[ggplot2 gridExtra pROC VGAM]; };
   BioPETsurv = derive2 { name="BioPETsurv"; version="0.1.0"; sha256="0svwf8pzvlmlp8aacf70hzlg2h81m6lyhh4p73ixqw5v9bnyq6m0"; depends=[ggplot2 gridExtra survival]; };
+  BioPred = derive2 { name="BioPred"; version="1.0.1"; sha256="04v38zsg5n5pzg817pkz2jg8sgg1ckd909ckrapbdncyh3wsawan"; depends=[car ggplot2 mgcv onewaytests pROC PropCIs survival survminer xgboost]; };
   BioProbability = derive2 { name="BioProbability"; version="1.0"; sha256="051m761zf079s0p4q0ambwqc22qjz2yajxrsmnjnxvqiaadaj1q7"; depends=[]; };
   BioRssay = derive2 { name="BioRssay"; version="1.1.0"; sha256="0bs05vkidf7rfhb9s9vby7k4q9w7vwanlvk034kspqp4ydkhpm5n"; depends=[colorspace]; };
   BioStatR = derive2 { name="BioStatR"; version="4.0.1"; sha256="0w8ly4pk0zv6rnmbzfq3i8sd4h4gjsxlnhj5nlyfr72687jjx5cm"; depends=[ggplot2]; };
   BioVenn = derive2 { name="BioVenn"; version="1.1.3"; sha256="0nwqfb65vhr2246w17nv27v186gzl5n3jxnqx7r9rq525qvyx0rg"; depends=[biomaRt plotrix svglite]; };
-  BiocManager = derive2 { name="BiocManager"; version="1.30.22"; sha256="0dg86nbh9h77ypaarsd79df24j0vnlm2df4zcmbhfasnsv0ck2ak"; depends=[]; };
-  Biocomb = derive2 { name="Biocomb"; version="0.4"; sha256="0jqfac81r5731m0i9jq7v5ns9263p8r7i03jyz10y915kfr6ikh6"; depends=[arules class e1071 FSelector gtools MASS nnet pamr pROC randomForest Rcpp rgl ROCR rpart RWeka]; };
+  BiocManager = derive2 { name="BiocManager"; version="1.30.23"; sha256="0k7kv06wksy3lkp37yf0kfnsbwf6fbac2vmrqip2wyy996y5vd7p"; depends=[]; };
   Biodem = derive2 { name="Biodem"; version="0.5"; sha256="1phnq6zq96i6z7jj196png3spjpbbx5p2s8iya0vvbfik12ivzkc"; depends=[]; };
   BiodiversityR = derive2 { name="BiodiversityR"; version="2.16-1"; sha256="059kj0cnb3fpqngww6560mqg6c4dsh5w6484v23wnmng064rf1fi"; depends=[ggplot2 Rcmdr vegan]; };
   Bioi = derive2 { name="Bioi"; version="0.2.10"; sha256="1ay8889490nfhxhh72fvk9z4h58xknm2b145xhbx2wbzj65zf9ib"; depends=[assertthat dplyr igraph Rcpp]; };
-  Bios2cor = derive2 { name="Bios2cor"; version="2.2.1"; sha256="0xj7ab9a463p4a67y0hlv6mfd08xf8didkn2mwrfa7gxjqqvix4z"; depends=[bigmemory bio3d circular igraph]; };
   Biostatistics = derive2 { name="Biostatistics"; version="1.0.4"; sha256="1fcrj53rqg7mdhrrsl95l0n6hycb0863isch2f6zzsqdqbxhq7dh"; depends=[learnr]; };
-  BiostatsUHNplus = derive2 { name="BiostatsUHNplus"; version="0.0.9"; sha256="0bgclpw0k2bdwrb785qhk490fxcb14r1cbm05zhb41mddw8zbqkk"; depends=[afex coda cowplot dplyr forcats ggh4x ggplot2 ggstance lifecycle MCMCglmm modeest openxlsx plyr purrr reportRmd rlang rstatix stringr tibble]; };
+  BiostatsUHNplus = derive2 { name="BiostatsUHNplus"; version="0.0.10"; sha256="0wrppamh4m47zczci3csqfijf2hyz4lb5ks2z8h2ybn8lcnbjxgp"; depends=[afex coda cowplot dplyr forcats ggh4x ggplot2 lifecycle MCMCglmm modeest openxlsx plyr purrr reportRmd rlang rstatix stringi stringr tibble]; };
   BipartiteModularityMaximization = derive2 { name="BipartiteModularityMaximization"; version="1.23.120.1"; sha256="0pz9cyg3avngxgd7ys5a1pfw4jw4cxbq36nh9hjarisl5phk761b"; depends=[Rcpp]; };
   BisRNA = derive2 { name="BisRNA"; version="0.2.2"; sha256="11jl5109nlm272vncprwplkz4kpvg7yx6yfnbjg47lfrsxcj8n0g"; depends=[MASS]; };
   BisqueRNA = derive2 { name="BisqueRNA"; version="1.0.5"; sha256="0p3p5lp69gri7vs6qfpm7br4ksbs4l7clm4nj8ki99wpqiqni23n"; depends=[Biobase limSolve]; };
@@ -573,15 +583,13 @@ in with self; {
   BivRegBLS = derive2 { name="BivRegBLS"; version="1.1.1"; sha256="1kpl0pwm2g40pxrfbz2d95vcrm51flg6bgc83661349cmc9a2511"; depends=[ellipse]; };
   BivUnifBin = derive2 { name="BivUnifBin"; version="1.3.3"; sha256="0l5s07mvip1k667rvdpkh3k6xkzns8cy50bcs2xlmxd9xp7c6j2w"; depends=[BinOrdNonNor rootSolve]; };
   Bivariate_Pareto = derive2 { name="Bivariate.Pareto"; version="1.0.3"; sha256="11knwynqfxdz6zl7vzr48jpygcilsxarpmwphaajh62asdlg5w6p"; depends=[compound_Cox]; };
-  BlackCarbon = derive2 { name="BlackCarbon"; version="0.1.0"; sha256="19ll2lcdxj5bmgh4wyk47ddxpwrqdiy67wsvj7mi1vm7y5ccyfhn"; depends=[]; };
   BlakerCI = derive2 { name="BlakerCI"; version="1.0-6"; sha256="0dcmnaf0k195caajy8h4qymyfj45cjwmkcgsbwv0z7x3h9sx5k6v"; depends=[]; };
   BlandAltmanLeh = derive2 { name="BlandAltmanLeh"; version="0.3.1"; sha256="11p30zqb3f9ifk3v18dspg18sclz5zxjygy7hw8ccb4bcqhx68lm"; depends=[]; };
-  Blaunet = derive2 { name="Blaunet"; version="2.2.1"; sha256="070vqkd24ydzs277acpwcqay8nrp3ip1wf2zkdkg1qc2crip86hs"; depends=[digest ergm foreign gWidgets2 gWidgets2tcltk haven network plot3D plot3Drgl rgl sna statnet_common]; };
   Blendstat = derive2 { name="Blendstat"; version="1.0.4"; sha256="0nh5nq8g009vbb4mmjcrhg46yi77dk1gza4si21m58b26qf5riy5"; depends=[lattice MASS]; };
   BlockCov = derive2 { name="BlockCov"; version="0.1.1"; sha256="1ilqd8kvhlq0nc1n4y7g0aiwran3kyqs8i143j6dv2wy3myn5x0l"; depends=[BBmisc dplyr magrittr Matrix Rdpack rlang tibble]; };
   BlockMissingData = derive2 { name="BlockMissingData"; version="0.1.0"; sha256="12jgf58k3dgbyb7x4skcdc10m8pvyx8kzqq6fi4wn5x1g5595nxy"; depends=[doParallel foreach glmnet glmnetcr MASS Matrix pryr]; };
   BlockmodelingGUI = derive2 { name="BlockmodelingGUI"; version="1.8.4"; sha256="09sbxwzvnnzjv5gy0zyd1lvm1z44ywqvanj99i15l0lp66l54572"; depends=[blockmodeling DT htmlwidgets igraph intergraph network shiny shinybusy shinyjs shinythemes visNetwork]; };
-  BlythStillCasellaCI = derive2 { name="BlythStillCasellaCI"; version="1.0.0"; sha256="0xgrrh6rf732c2dh1z1qyvkqw8ga1yl6i802r399bb7k55g6z6d0"; depends=[]; };
+  BlythStillCasellaCI = derive2 { name="BlythStillCasellaCI"; version="1.1.0"; sha256="1pvbnhm6y1canq67vh5c8qm6942vhglwh31w5gnrmrydyrvay7vj"; depends=[]; };
   BoSSA = derive2 { name="BoSSA"; version="3.7"; sha256="0qhcar3grp6l6islbjc27jqvgh37kkdi0nql6plsqwilldv3kis6"; depends=[ape jsonlite phangorn plotrix RSQLite]; };
   BoardGames = derive2 { name="BoardGames"; version="1.0.0"; sha256="1w3ghs29qlnjrd46lvv055snclwwy6a22fgdqszqm377w4favnhm"; depends=[]; };
   Bodi = derive2 { name="Bodi"; version="0.1.0"; sha256="1z3xamj4qh3g5asrl3kbvcnx3r66mch34d0hlz9vg0498s9fwn6s"; depends=[gbm mgcv opera ranger rpart]; };
@@ -590,7 +598,7 @@ in with self; {
   BoltzMM = derive2 { name="BoltzMM"; version="0.1.4"; sha256="17nsjr2y8nniaxd6f13g85gb9rshar72qqp45yh2ygg4zrx1d226"; depends=[BH Rcpp RcppArmadillo]; };
   BonEV = derive2 { name="BonEV"; version="1.0"; sha256="0lmgrg53b0abb5hidyjjmwn7lf2ani84k9fil7g6j6mdajjhh1b7"; depends=[qvalue]; };
   BondValuation = derive2 { name="BondValuation"; version="0.1.1"; sha256="00fdqsy7znlwszwjm7mzd5yb3bbx463iy4fbkrzc5nn08rfa395g"; depends=[Rcpp timeDate]; };
-  BoneProfileR = derive2 { name="BoneProfileR"; version="2.4"; sha256="0mm2vjg43p9abfydaw7qw0q9cwpvzxic914rpdk2dshyva6dxyx5"; depends=[HelpersMG imager knitr rmarkdown shiny]; };
+  BoneProfileR = derive2 { name="BoneProfileR"; version="2.5"; sha256="0fmqzfqv08f0vpiwvl2gdix0fvk6w1jkpcv8jb9wgsq63fij0ly9"; depends=[HelpersMG imager knitr rmarkdown shiny]; };
   BoolFilter = derive2 { name="BoolFilter"; version="1.0.0"; sha256="14z4fzf8p4wgi939qs6v39a3xizccjcx7j4szsydllpkvxbwggbw"; depends=[BoolNet Rlab]; };
   BoolNet = derive2 { name="BoolNet"; version="2.1.9"; sha256="19xnmz5dq8lvk1va8zi931xkawkwfcfjf4vh0dsg5n8zhy4p321f"; depends=[igraph XML]; };
   Boom = derive2 { name="Boom"; version="0.9.15"; sha256="00fn41sk0fdv8xv98j3wzc30vkhrw48clkqwpymvrh57rjdh4q2k"; depends=[MASS]; };
@@ -609,7 +617,7 @@ in with self; {
   BradleyTerry2 = derive2 { name="BradleyTerry2"; version="1.1-2"; sha256="0vss3ib74cz2zn1afmrvllawghj9z2ay4x1ysvk4rqvjmiia4a2i"; depends=[brglm gtools lme4 qvcalc]; };
   BrailleR = derive2 { name="BrailleR"; version="1.0.2"; sha256="1gh4n9zl7yczmhy85xmsx1mh9qmc99xvhmm5cdnjcb644i2n214k"; depends=[devtools dplyr extrafont ggplot2 gridGraphics gridSVG hunspell knitr mathjaxr moments quarto Rdpack rmarkdown roloc rolocISCCNBS tidyr whisker XML xtable]; };
   BrainCon = derive2 { name="BrainCon"; version="0.3.0"; sha256="137pagkjb4xzk3skmsf5vlp8q0k79zl9xjz8wwda1mdrknkdnbj6"; depends=[glmnet MASS]; };
-  BranchGLM = derive2 { name="BranchGLM"; version="2.1.4"; sha256="0p46n5yq56pvs73xyxkkdi8pnrr555dmc1br9a4709fdpm5hf5z9"; depends=[BH Rcpp RcppArmadillo]; };
+  BranchGLM = derive2 { name="BranchGLM"; version="2.1.6"; sha256="05q9w2qq7pl9zw0nxnlvmj79cb8sc9r3w4d3n355vzhf9qnzbqk4"; depends=[BH Rcpp RcppArmadillo]; };
   Branching = derive2 { name="Branching"; version="0.9.7"; sha256="15znbxpv0kcl8qqihl9f5irvcsyanfhszcz0xq6r7g8gsay4s760"; depends=[]; };
   BrazilMet = derive2 { name="BrazilMet"; version="0.2.0"; sha256="0pcr665j4balmcm4sq6l19nmhpbs7ayw5dljsdxr91bn6srb33b3"; depends=[dplyr readxl stringr]; };
   BreakPoints = derive2 { name="BreakPoints"; version="1.2"; sha256="125fvzkmfnriyd4y4nywj5ihm766xlsyi7dpnq57fa9d38ffbyf2"; depends=[MASS zoo]; };
@@ -645,12 +653,13 @@ in with self; {
   CARBayesdata = derive2 { name="CARBayesdata"; version="3.0"; sha256="03m0r6n10ssljhliipvslwxgcpv0whvlj27d7awa7sp37j3aafx5"; depends=[sf]; };
   CARM = derive2 { name="CARM"; version="1.1.0"; sha256="068rpz7bjc767yw4vcrf63ckyvdk2f1kskmfcc7955qf9ki5c49c"; depends=[arrangements dplyr MASS]; };
   CARME = derive2 { name="CARME"; version="0.1.1"; sha256="0nam14g052swb44sw07as4agk0z47f7mc1kqlj0z9m1ywsbisnpl"; depends=[BH expm MASS Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
+  CARMS = derive2 { name="CARMS"; version="1.0.1"; sha256="0w7xhvwvn5vsc0w9fn3mh750lfqh5183ads1ihv7ypdhdywb5c0p"; depends=[diagram Rcpp RcppArmadillo]; };
   CARRoT = derive2 { name="CARRoT"; version="3.0.2"; sha256="1himmzsshhr2f5hljr60p7w3wq5ybdsb0f9kiga56hpppg352l3f"; depends=[doParallel foreach nnet Rdpack]; };
   CARlasso = derive2 { name="CARlasso"; version="0.1.2"; sha256="05r5n5bh0fpwfigr6czh9pg29zyrw73idfvs9qm8vr3dvcmvc42r"; depends=[coda ggplot2 ggraph igraph MASS Matrix Rcpp RcppArmadillo RcppProgress]; };
   CASCORE = derive2 { name="CASCORE"; version="0.1.2"; sha256="1ns20gxm7a4n2h6zdysz4p7pij5mivhdj2ssccdy36g1lihgjz8q"; depends=[pracma]; };
   CASMAP = derive2 { name="CASMAP"; version="0.6.1"; sha256="1447d4gflan2093fb68inb2ysx5svb9vhnjc7lnkgpjsiam4p8yy"; depends=[Rcpp]; };
   CASMI = derive2 { name="CASMI"; version="1.2.2"; sha256="1xj2d2p75hf6ypz57vbkrlcmf1gk52pv1fadyv9d40lzy8rc3667"; depends=[entropy EntropyEstimation]; };
-  CAST = derive2 { name="CAST"; version="0.9.0"; sha256="046pgl83bld4590yfvj1zx09f8yp1dlc2x9n347zx6cap58dabfz"; depends=[caret data_table FNN forcats ggplot2 lattice plyr sf zoo]; };
+  CAST = derive2 { name="CAST"; version="1.0.2"; sha256="1ga9j2c17gp14hgjd5wa8liak1m0qnhp27hl0r1iqk3gkxq3z5c9"; depends=[caret data_table FNN forcats ggplot2 plyr sf sp terra twosamples zoo]; };
   CATT = derive2 { name="CATT"; version="2.0"; sha256="12xdspl1gbf51snyrl44nn7alfyccdfihibkgvzr66lrby8b8fhg"; depends=[]; };
   CATTexact = derive2 { name="CATTexact"; version="0.1.1"; sha256="07ciln6cfvqya7dwwn6mhd9lk2833hypm4badizgfi2k749d1p00"; depends=[]; };
   CAinterprTools = derive2 { name="CAinterprTools"; version="1.1.0"; sha256="07rvi91ysqyfwagmip0cnqjahv1n8slicd5hznqf5v3l841xh7p7"; depends=[ca classInt cluster FactoMineR ggplot2 ggrepel Hmisc RcmdrMisc reshape2]; };
@@ -663,7 +672,7 @@ in with self; {
   CBnetworkMA = derive2 { name="CBnetworkMA"; version="0.1.0"; sha256="12zg5pq029z8kw00jvb8al4igfkklacnhdchbaphhk39dg7qp4yr"; depends=[]; };
   CC = derive2 { name="CC"; version="1.0"; sha256="189si37ggichqmzy8m686zw1cijix7yfy8ma5iqpnq1q9vm3pcvy"; depends=[]; };
   CCA = derive2 { name="CCA"; version="1.2.2"; sha256="0r1f7m64608hq6bpw36wsw6fr4s8bj26x4062brqgn5dbpqlgczk"; depends=[fda fields]; };
-  CCAMLRGIS = derive2 { name="CCAMLRGIS"; version="4.0.7"; sha256="0xv3qv0vl0xnbzfl26gjyqr4asf3j3mia2fjk30385drijxiv8wb"; depends=[bezier dplyr lwgeom magrittr sf stars terra]; };
+  CCAMLRGIS = derive2 { name="CCAMLRGIS"; version="4.1.1"; sha256="0ldgmkfjw16ncrjc1jglvq63zs7iwc67b9c4wxbrw8na344mvk94"; depends=[bezier dplyr lwgeom magrittr sf stars terra]; };
   CCM = derive2 { name="CCM"; version="1.2"; sha256="1mhl7yppniybdffylddbbb65n7gmv029fb46wlsxm4yf2xkplmwy"; depends=[]; };
   CCMMR = derive2 { name="CCMMR"; version="0.2"; sha256="0y1lfjicyw0gs2r5nrqhkzyzkdbs6brdrzgc98k5fam79nj7kcbv"; depends=[r2r RANN Rcpp RcppEigen]; };
   CCP = derive2 { name="CCP"; version="1.2"; sha256="067nf1gag3ya7v9vzcpvallga5dr243q0q07fd370k0zynmhcfby"; depends=[]; };
@@ -671,12 +680,14 @@ in with self; {
   CCWeights = derive2 { name="CCWeights"; version="0.1.6"; sha256="0in3pl1n48jal6f7kiyw60by11vbga8vr45x0wywghd7dz60ppfv"; depends=[bs4Dash dplyr DT fresh magrittr plotly readr readxl rmarkdown shiny]; };
   CDCPLACES = derive2 { name="CDCPLACES"; version="1.1.5"; sha256="0q785ryilzqab730vg1ba2q738xxrasyzdq3ckc69dsxjp0cpn3s"; depends=[curl dplyr httr httr2 jsonlite sf tidyr tigris usa]; };
   CDFt = derive2 { name="CDFt"; version="1.2"; sha256="19axaf3bh9gasnsfamd5ych1jn751scaplgwpmsf3liazcqqpa61"; depends=[]; };
+  CDGHMM = derive2 { name="CDGHMM"; version="0.1.0"; sha256="18gf8p5h006h125dfygghxbkdbg26p77k632l2plhrpcgd3iszbw"; depends=[cluster MASS mvtnorm ramify]; };
   CDM = derive2 { name="CDM"; version="8.2-6"; sha256="1lcq3i5rlyqkc12c26kj0x4fm2gh1jsisp6kbf59y3hjdkiqajhl"; depends=[mvtnorm polycor Rcpp RcppArmadillo]; };
-  CDMConnector = derive2 { name="CDMConnector"; version="1.3.0"; sha256="09vdcj7nqyqavyhm8sa1ncn8zjyk320jq278m1ca3hqyap0p5v21"; depends=[checkmate cli DBI dbplyr dplyr fs generics glue jsonlite lifecycle omopgenerics purrr readr rlang stringi stringr tidyr tidyselect waldo withr]; };
-  CDSE = derive2 { name="CDSE"; version="0.1.0"; sha256="0pysz1vcmi051qhdmmyp4ynnhpb4lj7qbjb80k16z9xnmd5h58bk"; depends=[geojsonsf httr2 jsonlite lubridate lutz sf terra]; };
+  CDMConnector = derive2 { name="CDMConnector"; version="1.4.0"; sha256="1b129mm7qpfl57bf2spcr6wkq3ha2mxmacx17lnaln47a0n2nm5y"; depends=[checkmate cli DBI dbplyr dplyr fs generics glue jsonlite lifecycle omopgenerics purrr readr rlang stringi stringr tidyr tidyselect waldo withr]; };
+  CDSE = derive2 { name="CDSE"; version="0.2.0"; sha256="1ygjmx1snfcj0h7p733v3n2lrzwxr2iqlqrx44dxsz9iaffx5xzk"; depends=[geojsonsf httr2 jsonlite lubridate lutz sf terra]; };
   CDSS = derive2 { name="CDSS"; version="0.2-0"; sha256="13p5vg07lv1vbwpsd33x4mc8pvwf6s6yqikrbyakrfsjlznzw5gj"; depends=[openxlsx readODS]; };
+  CDVI = derive2 { name="CDVI"; version="0.1.0"; sha256="1q8f1smj07jnzgp7p2yfviz6wvrlvi5dx7sh4x09yzqfca5v8g46"; depends=[]; };
   CDVineCopulaConditional = derive2 { name="CDVineCopulaConditional"; version="0.1.1"; sha256="1wyy324vrwipdsq0p021bj1gdhyxg09g3dkw8wv5v6rfrrs84m9k"; depends=[combinat VineCopula]; };
-  CDatanet = derive2 { name="CDatanet"; version="2.1.3"; sha256="0q2g7qcqdlfqsi2fynz6r5qlnrqc0q8ndhja540lqd1l0vyafgmh"; depends=[ddpcr Formula formula_tools Matrix matrixcalc Rcpp RcppArmadillo RcppDist RcppEigen RcppNumerical RcppProgress]; };
+  CDatanet = derive2 { name="CDatanet"; version="2.2.0"; sha256="1qzfxz72zpxi48djqhypqlmajk6rx91m0i997vsr0zry0dp2zrzb"; depends=[ddpcr doParallel doRNG foreach Formula formula_tools Matrix matrixcalc Rcpp RcppArmadillo RcppDist RcppEigen RcppNumerical RcppProgress]; };
   CEC = derive2 { name="CEC"; version="0.11.1"; sha256="02jk68lxx1gszpi7awi6c1qvc4bsjz8bjxq4rdka9fxj7ql27raf"; depends=[]; };
   CEDA = derive2 { name="CEDA"; version="1.1.1"; sha256="1bpqlqak48crqsz3sg6qcli1f3vhn38p421wcigfvd5f1hm3gdvg"; depends=[dplyr ggplot2 ggprism ggridges ggsci limma mixtools]; };
   CEEMDANML = derive2 { name="CEEMDANML"; version="0.1.0"; sha256="0hc5sx1zvxj3j5psgcgzhw6l9zrvbbsnpw6qr7ww82bjjr3wbi3c"; depends=[aTSA caret e1071 earth fGarch FinTS forecast LSTS neuralnet pso Rlibeemd tseries]; };
@@ -687,15 +698,16 @@ in with self; {
   CFAcoop = derive2 { name="CFAcoop"; version="1.0.0"; sha256="1qnqbqh3p8grp6mxhqrwfm1nf1sxhqa6pjxkpf7vk9nx40g815gn"; depends=[Hmisc]; };
   CFC = derive2 { name="CFC"; version="1.2.0"; sha256="16abn3ydixb819qyyrs351d8v6qaaaz1gif0yfd8gdh7xnr2qzpy"; depends=[abind doParallel foreach Rcpp RcppArmadillo RcppProgress survival]; };
   CFF = derive2 { name="CFF"; version="1.0"; sha256="04z3q0s4b1yns5l7lplw8qrcdjzsdy9crnhakyzd6r449hjfsvnz"; depends=[]; };
-  CFO = derive2 { name="CFO"; version="1.1.0"; sha256="1pfgkk3ngxg7fjnp7hhv7j42x27jnddll3385nxqhwfki6iwdqzq"; depends=[dplyr ggplot2 Iso survival]; };
+  CFO = derive2 { name="CFO"; version="1.2.1"; sha256="17qjjcyhfn2n9fkbc4dciscr35dnnvv15csh7yw738kzfvybvrvp"; depends=[dplyr ggplot2 Iso survival]; };
   CFilt = derive2 { name="CFilt"; version="0.2.1"; sha256="1iah41s0pd8s4vmg7r6npsgmfr6mvyp5wfnyimx51fqr2f3narwf"; depends=[]; };
-  CFtime = derive2 { name="CFtime"; version="1.3.0"; sha256="06h7pmabwh7lc7hcp0lb6kb3qg7pj50yi5a8gpnndm00aba3xgqi"; depends=[]; };
+  CFtime = derive2 { name="CFtime"; version="1.4.0"; sha256="0sl7rccd2kgfv8y46x0mpg1m28y2lgn1mjar8shrg68m9lszwzj5"; depends=[]; };
   CGE = derive2 { name="CGE"; version="0.3.3"; sha256="0q1fv62159cx9z25488fxf6a6fi1m59hdh60ldypsjwil77q0s3i"; depends=[]; };
   CGGP = derive2 { name="CGGP"; version="1.0.4"; sha256="01jnq0bxacz5vlacmizanc54ms0fdbs9whapqlzdw4jrjlxnwnxa"; depends=[Rcpp RcppArmadillo]; };
   CGManalyzer = derive2 { name="CGManalyzer"; version="1.3.1"; sha256="1hg8svdqq0xgdxvry5agwvz2jlx6d0vazny9kdxwxlg4wnydai2f"; depends=[]; };
-  CGNM = derive2 { name="CGNM"; version="0.6.7"; sha256="0xr3c0806pvsv2ywcm8c5b9h96xs2sdclrifffg6vfillzrn2pqy"; depends=[ggplot2 MASS]; };
+  CGNM = derive2 { name="CGNM"; version="0.9.0"; sha256="1m2cqwb8q2lirf09d5pmqjan4r1w8m9pkg2wzyr8jp7sg1dqaaw7"; depends=[ggplot2 MASS shiny]; };
   CGP = derive2 { name="CGP"; version="2.1-1"; sha256="05a6gydlb99yk2jpy2hyg4c30hqyp8dg2i9dmbjc1n5cmgpg3im9"; depends=[]; };
   CGPfunctions = derive2 { name="CGPfunctions"; version="0.6.3"; sha256="12l3ww9wfrk8i0a63wv5h4ayqj6fj5fz5yvkiskvaaida32vds2m"; depends=[BayesFactor DescTools dplyr forcats ggmosaic ggplot2 ggrepel paletteer partykit purrr rlang scales sjstats stringr tidyr]; };
+  CGR = derive2 { name="CGR"; version="0.1.0"; sha256="03kgbhxjcsid5s61kq4zc4612ammd17k1w4m8f2p1xq2ib1mykqd"; depends=[]; };
   CHEMIST = derive2 { name="CHEMIST"; version="0.1.5"; sha256="00alby5x01a2izmzk0ilkx5jgkwavsaj18w3kra444pib0ncrl92"; depends=[LaplacesDemon MASS XICOR]; };
   CHFF = derive2 { name="CHFF"; version="0.1.0"; sha256="0jv75p1bnwsad2vpxf1zwq97al9xxhk2hpnpsilf0jn0w7g9b2d3"; depends=[]; };
   CHMM = derive2 { name="CHMM"; version="0.1.1"; sha256="07fdvnwhblwvljbl2z0vs42nwki67yl5ly3fj40p50k3rnqqmavj"; depends=[mclust]; };
@@ -716,7 +728,8 @@ in with self; {
   CIPerm = derive2 { name="CIPerm"; version="0.2.3"; sha256="1arb9jswnjmw8fgabwn3ap5wi57rwgh6dnq9c19v1qbcx8lhzs7c"; depends=[matrixStats]; };
   CIS_DGLM = derive2 { name="CIS.DGLM"; version="0.1.0"; sha256="0c7jxfb8gaklf6p83152wb2nszm2p806p3n523xajf4ha368d3kq"; depends=[dglm dplyr ggplot2 RColorBrewer]; };
   CITAN = derive2 { name="CITAN"; version="2022.1.1"; sha256="09m9f6s9y7ygbixcymg93vsrqz5jsjp968cjhxnj1v73hzalk168"; depends=[agop DBI RSQLite stringi]; };
-  CIfinder = derive2 { name="CIfinder"; version="1.0.2"; sha256="0if3jsg5gr3dxz0ggg0zhk682h3c7hqv76xc4shgknh8vqc2njv8"; depends=[kableExtra ratesci Rdpack]; };
+  CITMIC = derive2 { name="CITMIC"; version="0.1.0"; sha256="1dr8i1hpc5hq8jbv59frh8yxa8nykkwfi4hpa9rmlycqwwy9xp16"; depends=[fastmatch igraph]; };
+  CIfinder = derive2 { name="CIfinder"; version="2.0.0"; sha256="1kgcf82ixv2pic31msxzzaapnas88skk033pifa0sip8pya1by4q"; depends=[boot kableExtra ratesci Rdpack]; };
   CIplot = derive2 { name="CIplot"; version="1.0"; sha256="0hx3dn7d8hvsh75747d9046iqriy3bjnchph8xllnvlhkrm4di1f"; depends=[MASS multcomp]; };
   CJAMP = derive2 { name="CJAMP"; version="0.1.1"; sha256="0caznbqy5hsp7h0gkdbv966vfpq8z1khvbizi4vpc9mxck1nqc99"; depends=[optimx]; };
   CJIVE = derive2 { name="CJIVE"; version="0.1.0"; sha256="1937q125w39rsl2i5imqlk25r7mr1hvpmjy2br0xq98vdkxazqsq"; depends=[fields ggplot2 gplots psych reshape2 rootSolve]; };
@@ -748,9 +761,9 @@ in with self; {
   CNVRG = derive2 { name="CNVRG"; version="1.0.0"; sha256="0xr2c5yc9g8hqw5dy5k2y0pm54sdrrbafsc3cpafpwaf803vdrbk"; depends=[BH Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders tibble vegan]; };
   CNVScope = derive2 { name="CNVScope"; version="3.7.2"; sha256="03jkivg9jr2dpkf739cba3dsjf56gwvcpq3nqhp42kmmgn50rpiq"; depends=[biomaRt data_table doParallel dplyr foreach GenomicInteractions ggplot2 Hmisc jointseg magrittr Matrix matrixStats OpenImageR plyr RCurl reshape2 rtracklayer shiny stringr tidyr]; };
   CNprep = derive2 { name="CNprep"; version="2.2"; sha256="1vfy86b5cczw0va2fkbjv9c99q1gz3sx76yra76x8sz94nhxxq4m"; depends=[mclust rlecuyer]; };
-  COAP = derive2 { name="COAP"; version="1.1"; sha256="0zk8y8nnn33wby70hsc3qn1z58rh1bmwhc3a5md9xf1ivirqlxmg"; depends=[irlba MASS Rcpp RcppArmadillo]; };
+  COAP = derive2 { name="COAP"; version="1.2"; sha256="1772aiy9ywvgb1k9qn41l00qhsmhxkx53mdl16ggcwq0c3gdm8ly"; depends=[irlba MASS Rcpp RcppArmadillo]; };
   COCONUT = derive2 { name="COCONUT"; version="1.0.2"; sha256="1qjrhxn6dkxyimdca3nslaiw3hncfpk1pk4v01mcrnz550z001nz"; depends=[]; };
-  COINr = derive2 { name="COINr"; version="1.1.7"; sha256="0yvaqm2f4ny0afqyis0fna2h3cngwpb7xaw9kpr9nsbfdigj3d47"; depends=[ggplot2 openxlsx readxl rlang]; };
+  COINr = derive2 { name="COINr"; version="1.1.14"; sha256="1fk2ha2g02f720kxxbxf2fkg2xyg81y3p181zy0yj8f4mjxp0w1s"; depends=[ggplot2 openxlsx readxl rlang]; };
   COLP = derive2 { name="COLP"; version="1.0.0"; sha256="0259s058rn7fyprma5frx7sdjv4qk9hxijpi9xh7qyz5jzzsi660"; depends=[combinat MASS]; };
   COMBAT = derive2 { name="COMBAT"; version="0.0.4"; sha256="0m700pl33frdpc9y16y4zyh1ixpardh0r5kmz8a78jrh1acn30id"; depends=[corpcor mvtnorm]; };
   COMBO = derive2 { name="COMBO"; version="1.0.0"; sha256="12k5lchxdxql3q7si05404f8dc26xjxqf95mq5jykgp9chgl6i5w"; depends=[dplyr Matrix rjags SAMBA tidyr turboEM]; };
@@ -767,7 +780,7 @@ in with self; {
   CP = derive2 { name="CP"; version="1.8"; sha256="1ydpkk3zqz3r2szny68wqa4hz5iczq1q0hkkcbw7na8sg68sgriq"; depends=[survival]; };
   CPAT = derive2 { name="CPAT"; version="0.1.0"; sha256="0zygncwww3cazwmx06bhzq0g41xcqfpw307azdhygc8jmcy6qj71"; depends=[purrr Rcpp RcppArmadillo Rdpack]; };
   CPBayes = derive2 { name="CPBayes"; version="1.1.0"; sha256="1kw0r8spqm0s7cb3w5gplw67mhfmcbbf3ligngbary77ghkzirnb"; depends=[forestplot MASS mvtnorm purrr]; };
-  CPC = derive2 { name="CPC"; version="2.5.6"; sha256="1la2z3vh1imq3drfd9knp19c9rjin4g0zkw9lriz27i0z86dx275"; depends=[cluster dbscan Rfast]; };
+  CPC = derive2 { name="CPC"; version="2.6.0"; sha256="0n1vsn7b1rllbsad2bshhi0c6pz7zqz6bmcc176qh50hm4hgp99r"; depends=[cluster dbscan Rfast]; };
   CPE = derive2 { name="CPE"; version="1.6.3"; sha256="1m62g6psfhzk6ravqiydg4ix422j1sgcx92qpg9fpz6xm6aa17vc"; depends=[rms survival]; };
   CPGLIB = derive2 { name="CPGLIB"; version="1.1.1"; sha256="10pv9f36cg4ahgcbl3agc6zvgh3bmv78rc2vl6xhm1jpijhxqk93"; depends=[Rcpp RcppArmadillo]; };
   CPMCGLM = derive2 { name="CPMCGLM"; version="1.2"; sha256="07hx2ik5zg05w1h6i94398mp54q958phws9ydgp6syjqlp9dpf1p"; depends=[abind mvtnorm plyr]; };
@@ -777,7 +790,7 @@ in with self; {
   CR2 = derive2 { name="CR2"; version="0.2.1"; sha256="1j9wkpfr6bk07sj1swcjih12qz0cin811k69ihizsi4190m5f49k"; depends=[broom dplyr generics lme4 magrittr Matrix nlme performance tibble]; };
   CRABS = derive2 { name="CRABS"; version="1.2.0"; sha256="062nxmidji9qcp1v5hdh1806r99hkxqq5d9cay7xwby0h5qzl75x"; depends=[ape colorspace deSolve dplyr ggplot2 latex2exp magrittr patchwork pracma tibble tidyr]; };
   CRANsearcher = derive2 { name="CRANsearcher"; version="1.0.0"; sha256="09gw1s28gb0l2cn4w3asl6zlr7wfacxwafbdrayajwckyfkjl5dl"; depends=[curl dplyr DT lubridate miniUI shiny shinyjs stringr]; };
-  CRE = derive2 { name="CRE"; version="0.2.5"; sha256="124l2pf10gnfm4bhjaqwaj5j0w3fkl56nszpr4skwvkj3f3haggc"; depends=[bartCause data_table gbm ggplot2 glmnet inTrees logger magrittr MASS randomForest RRF stabs stringr SuperLearner xgboost xtable]; };
+  CRE = derive2 { name="CRE"; version="0.2.6"; sha256="19clbz7x4sf8jxj0s77ym9k1k5hgd64myvvn5f3m6pxpnx7hskhl"; depends=[arules bartCause data_table gbm ggplot2 glmnet logger magrittr MASS randomForest RRF stabs stringr SuperLearner xgboost xtable]; };
   CREAM = derive2 { name="CREAM"; version="1.1.1"; sha256="1lccpwn6c5pmykgf689gvvpqdcilkys4vclpxjhllhanjrfhcs3q"; depends=[]; };
   CREDS = derive2 { name="CREDS"; version="0.1.0"; sha256="1llgxsmpk13gq75y2r3qiwwjcl87bknkryaw5dq0ndf17rj31mw8"; depends=[MASS]; };
   CRF = derive2 { name="CRF"; version="0.4-3"; sha256="0jlcc1ffd2z7sz1szbi4vrp5rihmcp18bsw27x02ivi6l21nyivf"; depends=[Matrix]; };
@@ -795,7 +808,6 @@ in with self; {
   CSHShydRology = derive2 { name="CSHShydRology"; version="1.4.0"; sha256="06hdqdzvfpfn4r6x1d2m24lz2w5sj20fr7d791zqzd16mp767qcc"; depends=[circular dplyr fields ggplot2 ggspatial httr Kendall lubridate magrittr OpenStreetMap plotrix raster rnaturalearth sf stringr tidyhydat timeDate whitebox]; };
   CSIndicators = derive2 { name="CSIndicators"; version="1.1.1"; sha256="062v23vm2yz0dr2s0d6p7iwccdkgywn8k9gfp4jc8kr56ff3hvvr"; depends=[ClimProjDiags CSTools lmom lmomco multiApply s2dv SPEI zoo]; };
   CSMES = derive2 { name="CSMES"; version="1.0.1"; sha256="1p8wsl9h1f44a7kkj660h1k1v26pp6q1h13rw9l6pikniwdks84c"; depends=[caTools data_table mco ROCR rpart zoo]; };
-  CSTE = derive2 { name="CSTE"; version="2.0.0"; sha256="0r38pvd83aw9zrq43malw50vlbnknh3b53x3ydj0wxrk95wsmy46"; depends=[dfoptim fda locpol Rcpp survival]; };
   CSTools = derive2 { name="CSTools"; version="5.2.0"; sha256="0yyzc76x45pf3r84jdpxj2zplibf6zb1q3gb8jv5ncpcw3s9i3c9"; depends=[abind ClimProjDiags data_table easyNCDF easyVerification ggplot2 lubridate maps multiApply ncdf4 plyr qmap rainfarmr RColorBrewer reshape2 s2dv scales startR verification]; };
   CSclone = derive2 { name="CSclone"; version="1.0"; sha256="0lqsqsgh2sf44fr1r7g179556v294yr1wy7x4320g7adxshrwyh5"; depends=[DNAcopy lpSolve mcclust moments]; };
   CSeqpat = derive2 { name="CSeqpat"; version="0.1.2"; sha256="1nqk873cagpn4fba4rmyzb6hni1p5lqcvsr9givrcm0gfx756w1h"; depends=[NLP tm]; };
@@ -813,17 +825,18 @@ in with self; {
   CUMP = derive2 { name="CUMP"; version="2.0"; sha256="0rdscywmi4sylpjpr8r472iapddizb1mqyrd532cvw6frxins7w0"; depends=[]; };
   CUSUMdesign = derive2 { name="CUSUMdesign"; version="1.1.5"; sha256="1qxq1a8b5pnmlq6rpjzvcp32scn2qknafch3h7qjsy8499zzbxx8"; depends=[]; };
   CVD = derive2 { name="CVD"; version="1.0.2"; sha256="0agb0liwbp4wvmxbyxgfb7471ki1agfb6ssh77kvwbkxqmrc8d96"; depends=[]; };
-  CVEK = derive2 { name="CVEK"; version="0.1-2"; sha256="03z4s0szi8rl3izc651rvrhl2z247aaflyphzizplgmpw81xv1ry"; depends=[limSolve MASS]; };
   CVR = derive2 { name="CVR"; version="0.1.1"; sha256="1y8m9r409jq5h6xx1rvz7c7aj882jldfxly89zf3cvp2qg3jh7rj"; depends=[PMA Rcpp RcppArmadillo]; };
   CVST = derive2 { name="CVST"; version="0.2-3"; sha256="0bgk0d6w3dyhb5s30idnp6jpb3m8wf3b79wqlg127wwm0cird8pg"; depends=[kernlab Matrix]; };
   CVThresh = derive2 { name="CVThresh"; version="1.1.2"; sha256="14fgm5kzp1sscklv2pra800p12ga2hlqmm8s6zs5hdhlyvf0kj6v"; depends=[EbayesThresh wavethresh]; };
-  CVXR = derive2 { name="CVXR"; version="1.0-12"; sha256="1igzi231rkqi7pc5ak8b29a8x7fry0yqs8vg2m4i5ab9jdm8fsp7"; depends=[bit64 ECOSolveR gmp Matrix osqp R6 Rcpp RcppEigen Rmpfr scs]; };
+  CVXR = derive2 { name="CVXR"; version="1.0-13"; sha256="0nl7hc7scc6grn7c3mbnn0r65pd2yd27gvs0d2xh8ban19smr2c1"; depends=[bit64 ECOSolveR gmp Matrix osqp R6 Rcpp RcppEigen Rmpfr scs]; };
   CVglasso = derive2 { name="CVglasso"; version="1.0"; sha256="1bh09cd0yabhqv5yfahhvayx3f09yqapzl1yr9nc9xqwyx1d0cfd"; depends=[doParallel dplyr foreach ggplot2 glasso]; };
   CVrisk = derive2 { name="CVrisk"; version="1.1.1"; sha256="1krqg3w2yqbpisivyym98p6yvhw1dw6qga8xm1sqxdd75g982fhq"; depends=[]; };
+  CWT = derive2 { name="CWT"; version="0.1.1"; sha256="1afa94694fyqm947ncp96sxf7wyn095a66hyw8xharb30jf1b6q7"; depends=[data_table Rcpp RcppArmadillo]; };
   CaDENCE = derive2 { name="CaDENCE"; version="1.2.5"; sha256="1z3p5y1l67r470x6wrhnyjvw1ndppcm08fpj99x122j7kn6byff2"; depends=[pso]; };
   CaPO4Sim = derive2 { name="CaPO4Sim"; version="0.2.0"; sha256="0s4mqlas41ll656hj1imzqydgwgw002d469z01fjdcs4d6daljw6"; depends=[DT htmltools magrittr plotly purrr rintrojs shiny shinycssloaders shinydashboard shinydashboardPlus shinyjqui shinyjs shinyWidgets visNetwork]; };
   Cairo = derive2 { name="Cairo"; version="1.6-2"; sha256="0qjdsj6mpbwvnp8cimc4yrqfq3z68pfcd78ahsai52hpjdplqvvb"; depends=[]; };
   CalSim = derive2 { name="CalSim"; version="0.5.2"; sha256="1ij3xaizq1lpq5vg25i8pz4khm7ab81kzfayp6a914n0jgxvprj7"; depends=[ExactMultinom spatstat spatstat_geom]; };
+  CalcThemAll_PRM = derive2 { name="CalcThemAll.PRM"; version="1.1.1"; sha256="1jm2b4sy1vhzsr2hhl219h65yzx30n7pl0h3w1v3fmfd0hamd1s8"; depends=[dplyr DT lubridate magrittr MASS plotly VGAM zoo]; };
   Calculator_LR_FNs = derive2 { name="Calculator.LR.FNs"; version="1.3"; sha256="03qg9rnz623dwnp68xhhsh9788s49n6xp0migg1nnjaqhrahlgdd"; depends=[]; };
   CalibratR = derive2 { name="CalibratR"; version="0.1.2"; sha256="1hnmhijckxd35h8mhpzqpglk1ykdih2c5kg17myc7cci5xjk9nfr"; depends=[doParallel fitdistrplus foreach ggplot2 pROC reshape2]; };
   CalibrateSSB = derive2 { name="CalibrateSSB"; version="1.3.0"; sha256="0qwqvyrpprxc5v0ng6qjp9gmdf0n0iiv46z14d8h303xpi84g42x"; depends=[survey]; };
@@ -844,29 +857,27 @@ in with self; {
   CatEncoders = derive2 { name="CatEncoders"; version="0.1.1"; sha256="1q9wzq06lac8z9y8b65alsxpb48bw8wqmifd893kknk51xq6r9kl"; depends=[data_table Matrix]; };
   CatPredi = derive2 { name="CatPredi"; version="1.3"; sha256="0wj37pav20s273ha8pwmzypcdl8frakrxn5k149lg6vkgl6qmj8x"; depends=[mgcv rgenoud rms survival]; };
   CatReg = derive2 { name="CatReg"; version="2.0.3"; sha256="02pxarc4v45w8ncx8hq084m69qgl9s2lkrv1biz60vrvl99dg016"; depends=[Rcpp Rdpack]; };
-  CatastRo = derive2 { name="CatastRo"; version="0.3.0"; sha256="1rdpgp1rav82ksfikc57zf7wqa8zd4gzxmnmrlg2jjiv404wwm42"; depends=[dplyr httr mapSpain rappdirs sf stringi terra tibble xml2]; };
+  CatastRo = derive2 { name="CatastRo"; version="0.4.0"; sha256="0v2gb6hvvh5zv5w3gvk07mnya2y2gra271if8nqi1khb7l52l516"; depends=[dplyr httr2 mapSpain rappdirs sf stringi terra tibble xml2]; };
   CauchyCP = derive2 { name="CauchyCP"; version="0.1.1"; sha256="0sv1gfvgwqvm7zb3rhlhmfgfwm2i49wzzkg473gdmamvvpvzih43"; depends=[survival]; };
   CausCor = derive2 { name="CausCor"; version="0.1.3"; sha256="0hqzzy6wmxws90q4p7d2k0781zmkqq344l352zj9lcqh23ci4p8i"; depends=[cowplot dplyr ggplot2 magrittr WriteXLS]; };
   CausalGAM = derive2 { name="CausalGAM"; version="0.1-4"; sha256="1riz11hfg96iks7734rg692l75nfrd3hmr9gw563j27rkk1nfkl6"; depends=[gam]; };
-  CausalGPS = derive2 { name="CausalGPS"; version="0.4.1"; sha256="0qawlwd5a6xryw0688wx04s55gahchxb3xxs0jpiqqrm9rp3y687"; depends=[cowplot data_table Ecume gam ggplot2 gnm KernSmooth locpol logger MASS polycor Rcpp rlang SuperLearner wCorr xgboost]; };
+  CausalGPS = derive2 { name="CausalGPS"; version="0.4.2"; sha256="146nszscdlm59ba7j90bbhj689x2hba7w2ywr2kpd5x5bhw8jagp"; depends=[cowplot data_table Ecume gam ggplot2 gnm KernSmooth locpol logger MASS polycor Rcpp rlang SuperLearner wCorr xgboost]; };
   CausalImpact = derive2 { name="CausalImpact"; version="1.3.0"; sha256="0h3sh35962vdph72svfdvk6b1gl7wnj2kfkkpcjldbiszlfxp7wx"; depends=[assertthat Boom bsts ggplot2 zoo]; };
   CausalMBSTS = derive2 { name="CausalMBSTS"; version="0.1.1"; sha256="1mjw2zyddkci6vkbyz3d94l5z1aj3rc2w6lag5igbfv4q0n5qcrp"; depends=[CholWishart forecast KFAS MASS Matrix MixMatrix]; };
-  CausalMetaR = derive2 { name="CausalMetaR"; version="0.1.1"; sha256="0pkiprr64ixswm203jq483940j5p2aapbsmnzidb7hspr04adgnv"; depends=[glmnet metafor nnet progress SuperLearner]; };
+  CausalMetaR = derive2 { name="CausalMetaR"; version="0.1.2"; sha256="03y973ph52qxh9kyiybrvgrk5b1kd6i1lynkmmmv40vbnx59fs7y"; depends=[glmnet metafor nnet progress SuperLearner]; };
   CausalModels = derive2 { name="CausalModels"; version="0.2.0"; sha256="19m1qfzssrwmsxiiyqiqby102qmxxcmbyxhggd9bb44z2iicf8cl"; depends=[boot causaldata geepack multcomp]; };
-  CausalQueries = derive2 { name="CausalQueries"; version="1.0.2"; sha256="07g5ij14a9h756wbzfmy4wyyk8k16kvjv7b1li2mbw14vcv0jd80"; depends=[BH dagitty dirmult dplyr ggdag ggplot2 latex2exp lifecycle Rcpp RcppArmadillo RcppEigen rlang rstan rstantools StanHeaders stringr]; };
+  CausalQueries = derive2 { name="CausalQueries"; version="1.1.1"; sha256="0bivanhgimfnw1dn16ggyj6yjjq1j3jv05xwixqcg96zdnw5va4z"; depends=[BH dagitty dirmult dplyr ggdag ggplot2 knitr latex2exp lifecycle Rcpp RcppArmadillo RcppEigen rlang rstan rstantools StanHeaders stringr]; };
   CautiousLearning = derive2 { name="CautiousLearning"; version="1.0.1"; sha256="1m5x93l4bscrpcxk0pva6d6n2qnzhzxh0a6a81p97l8lqgs1qw2q"; depends=[BH Rcpp sitmo spc]; };
   CePa = derive2 { name="CePa"; version="0.8.0"; sha256="1wjm6nyjaz3z0g2dxk1k82va86qxx2xsgx02y9ipyzf1ldxclm1s"; depends=[graph igraph Rgraphviz]; };
   CeRNASeek = derive2 { name="CeRNASeek"; version="2.1.3"; sha256="0l36bz73xy9miikqdigbnyr0bk83dx6wsaqlsc14b0r64jca4ak6"; depends=[gtools igraph survival]; };
   CenBAR = derive2 { name="CenBAR"; version="0.1.1"; sha256="1k8ycm2rzwadr5bg6m0ay81c5v4wjg04yigch6a1w7g75gw01q50"; depends=[cvTools foreach glmnet MASS mvtnorm survival]; };
-  CensMFM = derive2 { name="CensMFM"; version="3.0"; sha256="060cr5iz2ch27j09mkd758y3chanrx5r9b9fnwpdhxh5kiv07mkz"; depends=[ggplot2 gridExtra MomTrunc mvtnorm tlrmvnmvt]; };
+  CensMFM = derive2 { name="CensMFM"; version="3.1"; sha256="00z425r6ijs8zgmw0srcia9v90m57y2aq8zrlspgc5qf8kzxq1iv"; depends=[ggplot2 gridExtra MomTrunc mvtnorm tlrmvnmvt]; };
   CensSpatial = derive2 { name="CensSpatial"; version="3.6"; sha256="10jgr9zvdvm8fgh0llfsxjkd5f565i1qh00zrqxz55is7p4r3h35"; depends=[geoR lattice moments msm mvtnorm numDeriv optimx psych raster Rcpp tlrmvnmvt tmvtnorm]; };
   Census2016 = derive2 { name="Census2016"; version="0.2.0"; sha256="1c88jmd565v19w8dbvai10f9y5lyfmzsxsjblc3gdykf9kharvcq"; depends=[data_table]; };
   CerioliOutlierDetection = derive2 { name="CerioliOutlierDetection"; version="1.1.13"; sha256="1m1mj5cf0sfdfci05ayc86wfx3cj12dfn98pi7cqxcf5nbn3h3n5"; depends=[robustbase]; };
   Certara_NLME8 = derive2 { name="Certara.NLME8"; version="1.2.4"; sha256="10zmzfx2aqxj5gpingl6hkq6vb7q0shhkzar2jr30br7nzfll1sd"; depends=[batchtools data_table reshape xml2]; };
   Certara_R = derive2 { name="Certara.R"; version="1.1.0"; sha256="07k7dj37zywkfbrx85gnl6cvc0a0n1xyvmac0lg74nzqb6qb3i1z"; depends=[batchtools data_table dplyr DT ggplot2 htmltools jsonlite magrittr plotly remotes reshape rlang shiny shinyjqui shinyjs shinymaterial shinyWidgets sortable ssh xml2]; };
-  ChIPtest = derive2 { name="ChIPtest"; version="1.0"; sha256="1yn5b5s56k2dbhw6damxj18xbaiz180ym7fiq2i3p2gkcgwpddbz"; depends=[]; };
   ChainLadder = derive2 { name="ChainLadder"; version="0.2.18"; sha256="0q0ycwswi1hxcv1apq40kzb91sgzbwb84nynd84750r449hbwrif"; depends=[actuar cplm ggplot2 lattice MASS Matrix statmod systemfit tweedie]; };
-  ChangePointTaylor = derive2 { name="ChangePointTaylor"; version="0.2"; sha256="0rf3h7l8l6fw2i489ldcqhsf9ppjzpx298p5ciyp9iyc0zcykz38"; depends=[bench dplyr ggplot2 magrittr purrr Rcpp rlang tidyr]; };
   ChangepointTesting = derive2 { name="ChangepointTesting"; version="1.1"; sha256="0gasqf39hhrd2pg2rq4a2aaxwi3syjvmgdiss42wdwb47dww8wil"; depends=[]; };
   ChannelAttribution = derive2 { name="ChannelAttribution"; version="2.0.7"; sha256="0ak7s5l990kfkf5bzggqplss5pd06rfalghk1rzy92js1n1qxrs7"; depends=[Rcpp RcppArmadillo]; };
   ChannelAttributionApp = derive2 { name="ChannelAttributionApp"; version="1.3"; sha256="0n9g8wwvc8p5clypl7z23w8fs6d0c47bblijwd4pjwy26bcb4m8h"; depends=[ChannelAttribution data_table ggplot2 shiny]; };
@@ -888,6 +899,7 @@ in with self; {
   CircOutlier = derive2 { name="CircOutlier"; version="3.2.3"; sha256="1vyac4mjkn6p4p9n5finqqak6g7m3hj04a66v3w797jn1wbd1xly"; depends=[CircStats circular]; };
   CircSpaceTime = derive2 { name="CircSpaceTime"; version="0.9.0"; sha256="0dplgm5x4c1xxnv6062n643mn5zh0najw3f41pv2qafc1lil4wx8"; depends=[circular coda ggplot2 Rcpp RcppArmadillo RInside]; };
   CircStats = derive2 { name="CircStats"; version="0.2-6"; sha256="07bg4zrs2iqh0pmi44pybi8hlvnxwcaa5zpg85rmf55kflxxkzlf"; depends=[boot MASS]; };
+  CirceR = derive2 { name="CirceR"; version="1.3.3"; sha256="19pkj9qg6sfyxqvlwssfyr91024arbg74pl332g19917538n346q"; depends=[rJava RJSONIO]; };
   CirclesIntersections = derive2 { name="CirclesIntersections"; version="1.1"; sha256="0q7w3fl8qz5gknri217qq68wij355dljnpv538yqhf03h405xc3f"; depends=[]; };
   CircularDDM = derive2 { name="CircularDDM"; version="0.1.0"; sha256="1wxdjj7dndvhvl00cykcrwmw9f7halsg3a0db56kp2mhf54rj37z"; depends=[Rcpp RcppArmadillo]; };
   CircularSilhouette = derive2 { name="CircularSilhouette"; version="0.0.1"; sha256="03214kqpnfjr9swafy1yjwr2jjj3iafb6ikn2sd45k2cx4xvprr3"; depends=[OptCirClust Rcpp Rdpack]; };
@@ -896,17 +908,18 @@ in with self; {
   ClaimsProblems = derive2 { name="ClaimsProblems"; version="0.2.1"; sha256="10ylcikss9ld393cb40ddkkz7as1d5bnrna0sqwdrn1cb3p9p4w2"; depends=[geometry pracma rgl]; };
   ClamR = derive2 { name="ClamR"; version="2.1-3"; sha256="1qf0xflzww2vdv3sl2s8lncmv4k7aa4wbgpqm9v8slsa615a6n09"; depends=[]; };
   ClassComparison = derive2 { name="ClassComparison"; version="3.1.8"; sha256="0fd5s4697pvj295fzvvn5mislf42wfzrcvks17v98388rph586gl"; depends=[Biobase oompaBase]; };
-  ClassDiscovery = derive2 { name="ClassDiscovery"; version="3.4.0"; sha256="06l7jvpcdynij05hb0ka33zpg7xdyqyzfzx24s0bnlspp83yc62s"; depends=[Biobase cluster mclust oompaBase oompaData]; };
-  CleanBSequences = derive2 { name="CleanBSequences"; version="1.4.0"; sha256="194590508s0j5z6srm2vmv6aa4d2fia4apbd3zmd8ria27ppcrfg"; depends=[Biostrings]; };
+  ClassDiscovery = derive2 { name="ClassDiscovery"; version="3.4.5"; sha256="0k70s7nlmxymxw84174ikqx854hi0pizd9acpr7ky8fb30fyxg31"; depends=[Biobase cluster mclust oompaBase oompaData]; };
+  CleanBSequences = derive2 { name="CleanBSequences"; version="2.3.0"; sha256="1ijybrl1x2rb70x6q07bbyv5mm0gw927wnf94mhz199z4s37iv4g"; depends=[Biostrings pwalign]; };
+  CleaningValidation = derive2 { name="CleaningValidation"; version="1.0"; sha256="0wfywvmglsjckf734g7lq2gq9366ya2bsrihiinx9n37ydc5w6kg"; depends=[AER boot cowplot dplyr dunn_test ggplot2 lme4 rlang]; };
   ClickClust = derive2 { name="ClickClust"; version="1.1.6"; sha256="09pb8fpddyzqznwxz1njpvwyqd45ywbaxj9sx5dzg134c7cz1z5j"; depends=[]; };
   ClickClustCont = derive2 { name="ClickClustCont"; version="0.1.7"; sha256="1caymvpwvxq4rirnjm2kwzvqm1pl01rdc3785k8mq4k2m0n6l2rz"; depends=[gtools]; };
-  ClickHouseHTTP = derive2 { name="ClickHouseHTTP"; version="0.3.2"; sha256="1vk8am5yvg4i5rgkgw1y0ngidd052wmc3700sx8ggnnk28vrnpsr"; depends=[arrow data_table DBI httr jsonlite]; };
+  ClickHouseHTTP = derive2 { name="ClickHouseHTTP"; version="0.3.3"; sha256="0k8rl7vf4dd2jp8xk03v007mrmjz5w4lbgagmsylv73lm35485zh"; depends=[arrow data_table DBI httr jsonlite]; };
   CliftLRD = derive2 { name="CliftLRD"; version="0.1-1"; sha256="0qsdv568klxg6chgw329jbfjmf6w61hly2vxp90yzdfkca03z2s4"; depends=[CNLTreg liftLRD]; };
   ClimClass = derive2 { name="ClimClass"; version="2.1.0"; sha256="1r836md31z2r5d9xckkbalzbhm4kf5paljv71kxpy53q92k7yi91"; depends=[geosphere ggplot2 reshape2]; };
   ClimInd = derive2 { name="ClimInd"; version="0.1-3"; sha256="0n5kd001nkpks16c3msvn2qvzyrjawa2rqwh8zph2qr5hgpwcpg7"; depends=[chron SPEI weathermetrics]; };
   ClimMobTools = derive2 { name="ClimMobTools"; version="1.2"; sha256="1kx1hkyn96bhw237hvzrkr1hc8nf02p90lz9gg0rzcjx0zhks4s7"; depends=[httr jsonlite lpSolve Matrix RSpectra]; };
   ClimProjDiags = derive2 { name="ClimProjDiags"; version="0.3.3"; sha256="039rnjpsbq90x6h9snz9iy37bwhapcmw9v98ngh82bsh19h8hwb1"; depends=[multiApply PCICt]; };
-  ClinSigMeasures = derive2 { name="ClinSigMeasures"; version="1.0"; sha256="0fw89a1q92ck32z6w4zn1ldvky6ag1gi7b9bbv10mhmqhq4w3k58"; depends=[]; };
+  ClinSigMeasures = derive2 { name="ClinSigMeasures"; version="1.1"; sha256="0dm2shknf83d6wmmjqly1493g30qm68sizj2n5jcc8gwi3xfcs9z"; depends=[]; };
   ClinicalTrialSummary = derive2 { name="ClinicalTrialSummary"; version="1.1.1"; sha256="0b5by4sn9yvrvxr9921yqsgp8ma3g1hi2qbp5j9m836db1zjhyla"; depends=[Rcpp]; };
   ClinicalUtilityRecal = derive2 { name="ClinicalUtilityRecal"; version="0.1.0"; sha256="17xj9cmdkjrzx7mshka2hlkxh8887sprdqix7fd8jcr9bmc6ad9r"; depends=[caret cowplot ggplot2 lattice nloptr]; };
   CliquePercolation = derive2 { name="CliquePercolation"; version="0.4.0"; sha256="17m8pj8wg2ngzip1ag3jm5fqi083ilrsi0rvpcg5jmqflwlka8h3"; depends=[colorspace igraph lessR magrittr Matrix ohenery pbapply Polychrome qgraph]; };
@@ -916,11 +929,12 @@ in with self; {
   ClusBoot = derive2 { name="ClusBoot"; version="1.2.1"; sha256="03xch4s8xlvl17vbpm3jk0a6faa57hq0amyg91d9kjr4d6bb4km1"; depends=[]; };
   ClusPred = derive2 { name="ClusPred"; version="1.1.0"; sha256="12pm5vkfxpaincv9ajid0p07l0mjc2kfqqfg0ls2pcxmmkh8wwb4"; depends=[ald ALDqr quantreg Rcpp RcppArmadillo VGAM]; };
   ClusROC = derive2 { name="ClusROC"; version="1.0.2"; sha256="055ppcnzwkapnyf9xvld4bvkccwf494gqcb2qq0vnsa8n6bz5k46"; depends=[doParallel ellipse foreach ggplot2 ggpubr iterators nlme numDeriv Rcpp RcppArmadillo rgl]; };
+  ClusTCR2 = derive2 { name="ClusTCR2"; version="1.7.3.01"; sha256="1l54x7b9pkkmrdhry41qikyhhnsr2s669jdqmviskjljk9wyyyqi"; depends=[DescTools ggplot2 ggseqlogo network plyr RColorBrewer scales sna stringr VLF]; };
   ClusTorus = derive2 { name="ClusTorus"; version="0.2.2"; sha256="052jq96xr9qrc203ib11qsni50j0jzdpfwmbnd5rypfvff6w5kxc"; depends=[BAMBI cowplot ggplot2 igraph purrr rlang]; };
   ClusVis = derive2 { name="ClusVis"; version="1.2.0"; sha256="06yckdl3gxjia1gjjqpc29lvy4f7qf47fncslng9ggjnks6il145"; depends=[MASS mgcv mvtnorm Rcpp RcppArmadillo Rmixmod VarSelLCM]; };
   ClussCluster = derive2 { name="ClussCluster"; version="0.1.0"; sha256="1436849m2mnm8j7lf653zv8lcvvg2ch8kkks4bvr39kx21wxy8ss"; depends=[ggplot2 reshape2 rlang scales VennDiagram]; };
   ClustAssess = derive2 { name="ClustAssess"; version="0.3.0"; sha256="0b8p5dpb843rv8q1hsc74zhxyn9wjgdxwpwrbq2yx4jmy8v65gzq"; depends=[doParallel dplyr fastcluster foreach ggplot2 igraph irlba magrittr Matrix progress Rcpp reshape2 rlang stringr uwot]; };
-  ClustBlock = derive2 { name="ClustBlock"; version="3.2.0"; sha256="10nd53lzrdd3x1hhr88wr509qnbgpf707xr1qhc8r1jcjlipqpxn"; depends=[FactoMineR]; };
+  ClustBlock = derive2 { name="ClustBlock"; version="4.0.0"; sha256="1gqq6wq79c6ikz8nxrahqdnl8g204y4sw82fvmrykh8xv3hzv2cp"; depends=[FactoMineR]; };
   ClustGeo = derive2 { name="ClustGeo"; version="2.1"; sha256="03f7appg9n90ahzjhh5si9iv1vm06im9qmhgfc72fvqrmvqy2alh"; depends=[sp spdep]; };
   ClustImpute = derive2 { name="ClustImpute"; version="0.2.4"; sha256="0ss7zsnamh8ir2wpgy6swxck93yr4dd7g7hvyzc1cv6g3k28fb49"; depends=[ClusterR copula dplyr ggplot2 knitr magrittr rlang tidyr]; };
   ClustOfVar = derive2 { name="ClustOfVar"; version="1.1"; sha256="0grhkab7s58ji4cf7cxh7ahd2dxrj8aqfdf3119b40zxkxbwxcr0"; depends=[PCAmixdata]; };
@@ -930,32 +944,37 @@ in with self; {
   ClusterR = derive2 { name="ClusterR"; version="1.3.2"; sha256="1bs1sl3yy90zx4ni0lhvdivzfas6i4v9203m59njvk5df9x82ffp"; depends=[ggplot2 gmp lifecycle Rcpp RcppArmadillo]; };
   ClusterRankTest = derive2 { name="ClusterRankTest"; version="1.0"; sha256="01gzalhibqcdx3a6yc2cm1v77rscva73v5m5m0qkrgqdp9c8ph2a"; depends=[]; };
   ClusterStability = derive2 { name="ClusterStability"; version="1.0.4"; sha256="1y88dv7n2cxm5w9pbg36dvx55nzvsnq4vbmx401147xr5p03yk9w"; depends=[cluster copula Rcpp WeightedCluster]; };
+  ClusterVAR = derive2 { name="ClusterVAR"; version="0.0.6"; sha256="03iwwy8ijz4rxsainlriy6g5mkn4wl7hwgk9mm0cwfxvai3r1n28"; depends=[doParallel fastDummies foreach iterators MASS mvtnorm parabar scales]; };
   ClusteredMutations = derive2 { name="ClusteredMutations"; version="1.0.1"; sha256="1n31nnvpjh1faw751k8m3ga3wfl0yhdpnszwckqhfzlma1jr8z04"; depends=[seriation]; };
-  Clustering = derive2 { name="Clustering"; version="1.7.7"; sha256="0g0pwdqxbwpv48q2kavarvbryvdq9g3qyxpwc9c1zip03yl76v5v"; depends=[amap apcluster cluster ClusterR data_table doParallel dplyr foreach future ggplot2 gmp pracma pvclust shiny sqldf toOrdinal xtable]; };
+  Clustering = derive2 { name="Clustering"; version="1.7.10"; sha256="051x3140xr8g0grlmsff4m8gfc613hrfgldy0a7nm0f9w90ragsx"; depends=[amap apcluster cluster ClusterR data_table dplyr foreach future ggplot2 gmp pracma pvclust shiny sqldf toOrdinal xtable]; };
   CoClust = derive2 { name="CoClust"; version="0.3-2"; sha256="04xv807785xv9kdspsspx1302ardv8gda06kd590lgawjixai7dh"; depends=[copula gtools]; };
   CoDaImpact = derive2 { name="CoDaImpact"; version="0.1.0"; sha256="0hc76s7k3i8mjq0q0yg9fn6vv7xd7w2j1hym23rkpn6gxjl522jx"; depends=[compositions]; };
   CoDiNA = derive2 { name="CoDiNA"; version="1.1.2"; sha256="1zjj86z8ica9j0x2nfyq9y6nyp54w07dwskcsg7z6kqibrkfvaq9"; depends=[data_table igraph magrittr plyr reshape2 visNetwork]; };
   CoFRA = derive2 { name="CoFRA"; version="0.1002"; sha256="0ldf84dxaanww3qkf64mz5gv3yv2rjp9m6dy64xckds66vw6x0m3"; depends=[gplots stringr]; };
-  CoImp = derive2 { name="CoImp"; version="1.0"; sha256="06y722flpiqpwq0p7ik86s09mdnvqw3hdybhdzn8vfns5swc8x1y"; depends=[copula gtools locfit nnet]; };
+  CoImp = derive2 { name="CoImp"; version="2.0.0"; sha256="0g6fd0rzab5wn19iljr5zjbffrgs9nyljjccwb0fnarmp48lfrwk"; depends=[cluster copula gtools locfit nnet]; };
   CoMiRe = derive2 { name="CoMiRe"; version="0.8"; sha256="0wq1li1snn4c01vw1zqv6s9sqjrmiw04pkkmx2zdy5wg6bzfz363"; depends=[ggplot2 gtools KernSmooth mvtnorm Rcpp RcppArmadillo rlang splines2 truncnorm]; };
   CoNI = derive2 { name="CoNI"; version="0.1.0"; sha256="19nyn4gh4bnrvbbh2df8459015fkb2bgwwmq17vqq7r2j4gkgxzh"; depends=[cocor data_table doParallel dplyr forcats foreach genefilter ggplot2 ggrepel gplots gridExtra Hmisc igraph plyr ppcor rlang tibble tidyr tidyselect]; };
   CoOL = derive2 { name="CoOL"; version="1.1.2"; sha256="18z7s8bvnym4xj0hh5m6bwm86ddmsgivqv4g5zbd9m87l7khl9pn"; depends=[ClustGeo data_table ggplot2 mltools plyr pROC Rcpp RcppArmadillo wesanderson]; };
   CoRpower = derive2 { name="CoRpower"; version="1.0.4"; sha256="08chsbbl74rskinp68pwzpvnxx5lkfqf71j7ryp1cwy7199h3jyw"; depends=[osDesign survival]; };
   CoSMoS = derive2 { name="CoSMoS"; version="2.1.0"; sha256="149mybfxaqssawp8fqhjiv3xljzflc02y4pfvavz7rklfplidqkb"; depends=[animation cowplot data_table directlabels ggplot2 ggquiver mAr Matrix matrixcalc MBA mvtnorm nloptr plot3D pracma]; };
-  CoTiMA = derive2 { name="CoTiMA"; version="0.7.0"; sha256="1mpinx6wql4fqyfpc94nxw7qav0llg6pyd0kl0wilkfv9vc12yml"; depends=[abind crayon ctsem doParallel foreach lavaan MASS MBESS OpenMx openxlsx psych rootSolve RPushbullet scholar stringi zcurve]; };
+  CoTiMA = derive2 { name="CoTiMA"; version="0.8.0"; sha256="15kc15jax3z4bfwq0mf7dahwv68nq4njj5a0gwzbr1ww4rrwg1r1"; depends=[abind crayon ctsem doParallel foreach lavaan MASS MBESS OpenMx openxlsx psych rootSolve RPushbullet scholar stringi zcurve]; };
   CoastlineFD = derive2 { name="CoastlineFD"; version="1.1.2"; sha256="1l6igxvp4sz09bbgqjn6kwddi4mciw5ihcmzlg87pqhr1zs2yjbi"; depends=[fields ggplot2 progress readxl sf sfheaders tidyr writexl]; };
   CodataGS = derive2 { name="CodataGS"; version="1.43"; sha256="1bjn6s1f5jn64gwrvjz5kvwfkbqrqhavib6dj9k37rb5nzqkwhp6"; depends=[Matrix]; };
-  CodelistGenerator = derive2 { name="CodelistGenerator"; version="2.2.3"; sha256="0jx4xjihlgssr0ajdv9zcinj58c8fxqcvpr0y6cbmqymczgs1win"; depends=[CDMConnector checkmate cli DBI dplyr duckdb glue lubridate magrittr omopgenerics PatientProfiles purrr RJSONIO rlang stringr tidyr tidyselect vctrs]; };
+  CodeDepends = derive2 { name="CodeDepends"; version="0.6.6"; sha256="0msq5ksjqp2pjzl6f1vizw53gdf5lz520bpdr5dbjwz5mc1mp0bz"; depends=[codetools graph XML]; };
+  CodelistGenerator = derive2 { name="CodelistGenerator"; version="3.0"; sha256="1fg9xbznd5zmn35rfg52899yx0di7hqx6sznvd8a9gnc2xrp4723"; depends=[checkmate cli DBI dplyr glue lifecycle lubridate magrittr omopgenerics PatientProfiles purrr RJSONIO rlang stringr tidyr tidyselect vctrs visOmopResults]; };
   CohensdpLibrary = derive2 { name="CohensdpLibrary"; version="0.5.10"; sha256="1d3nk3wr23skmzskglw7n8vpj9ja6ak4q9db9xlmf1j3plsx5g98"; depends=[Rdpack]; };
-  CohortAlgebra = derive2 { name="CohortAlgebra"; version="0.2.0"; sha256="1aqafccdxivg21bb7pxy47yfk7d5gbiyby8hm472n1vrznmiq4b6"; depends=[checkmate DatabaseConnector dplyr lifecycle rlang SqlRender]; };
+  CohortAlgebra = derive2 { name="CohortAlgebra"; version="0.3.0"; sha256="05sn073sfmngjbq2g198nckxw2zwk2jj69xf3pddlrka05v3a1b9"; depends=[checkmate DatabaseConnector dplyr lifecycle rlang SqlRender]; };
+  CohortCharacteristics = derive2 { name="CohortCharacteristics"; version="0.2.1"; sha256="1hyd0pl3aq7ww3szr7p0zb4cnvk9x1a6kpg04qdv9x72wkl6mscq"; depends=[CDMConnector checkmate cli DiagrammeR dplyr ggpubr magrittr omopgenerics PatientProfiles rlang snakecase stringr tidyr visOmopResults]; };
+  CohortConstructor = derive2 { name="CohortConstructor"; version="0.2.1"; sha256="0wa02j80zy4sq7p7hyx97yvfbgfgb1zr0qa9vlhv6xy7m0wggqlz"; depends=[CDMConnector checkmate cli dbplyr dplyr glue magrittr omopgenerics PatientProfiles purrr rlang tidyr]; };
   CohortExplorer = derive2 { name="CohortExplorer"; version="0.1.0"; sha256="1jskxg72g7n5n3zg2kmkhykcrbf30q0h919273n6lm6nw0pzn44d"; depends=[checkmate DatabaseConnector dplyr lifecycle ParallelLogger rlang]; };
   CohortPlat = derive2 { name="CohortPlat"; version="1.0.5"; sha256="01jvi7k3lvx684c4cwn3xrpwjsksk7gjvs3db64ji7chc4lkajv4"; depends=[doParallel dplyr epitools forcats foreach ggplot2 openxlsx plotly purrr tidyr zoo]; };
-  CohortSurvival = derive2 { name="CohortSurvival"; version="0.3.0"; sha256="1kppnk97iyl2g4iby8n4f2b7ix5n340igr3z0ilmnnm7nad3r9h6"; depends=[broom CDMConnector checkmate cli DBI dbplyr dplyr lubridate magrittr omopgenerics PatientProfiles rlang scales stringr survival tibble tidyr]; };
+  CohortSurvival = derive2 { name="CohortSurvival"; version="0.5.1"; sha256="03pca2isc7gq9nkkghwqcjf35fn23iacdxsx04v3yacapl8975cn"; depends=[broom CDMConnector checkmate cli DBI dbplyr dplyr lubridate magrittr omopgenerics PatientProfiles rlang scales stringr survival tibble tidyr visOmopResults]; };
+  CohortSymmetry = derive2 { name="CohortSymmetry"; version="0.1.0"; sha256="1vbk701yz7wcfv906a12h26m2hq787x91lz2c8qn62vxlb794q1h"; depends=[CDMConnector dplyr ggplot2 magrittr omock omopgenerics PatientProfiles rlang stringr tibble tidyr visOmopResults]; };
   Coinprofile = derive2 { name="Coinprofile"; version="0.1.9"; sha256="1bcip62gm34cx5m8a1mx9px2rhgvdmsgnn6q9q40k8p5hw4cx9g0"; depends=[coin exactRankTests ggplot2 plyr Rdpack zoo]; };
   CollapseLevels = derive2 { name="CollapseLevels"; version="0.3.0"; sha256="1d2grxh95893j260igh4yh2z3rm3zymlpadqyp6w3na91birazb4"; depends=[dplyr ggplot2 lazyeval magrittr]; };
   CollocInfer = derive2 { name="CollocInfer"; version="1.0.4"; sha256="1iwf5g2y7i0j8dc19hdhya4m6g47jj968glnclj7a2yaq2yx37cj"; depends=[deSolve fda MASS Matrix spam]; };
   ColorNameR = derive2 { name="ColorNameR"; version="0.1.0"; sha256="0gqyph3f6mhwg6zwc5bgfglpmg152a4kd2wrmp9jn18wvg8wd03g"; depends=[dplyr magrittr purrr rlang]; };
-  Colossus = derive2 { name="Colossus"; version="1.0.1"; sha256="1mnjsl9v24dnk7qc5hhgsl56zhb86cjvaaqqqnqgqzy4h1vfc3vc"; depends=[data_table ggplot2 Rcpp RcppEigen rlang testthat]; };
+  Colossus = derive2 { name="Colossus"; version="1.1.1"; sha256="01mra2ai88p10qwmsc1ph4kpgyvd4f3crk2gl5w782qggfgfabv8"; depends=[callr data_table processx Rcpp RcppEigen rlang stringr testthat]; };
   ComICS = derive2 { name="ComICS"; version="1.0.4"; sha256="0brsb7y1bg23sdpxs4j1y3xdgr1q7iinxnnp17rravw72l991xqa"; depends=[glmnet]; };
   ComRiskModel = derive2 { name="ComRiskModel"; version="0.2.0"; sha256="0jpsmcpi7s0y4dff3k10daimb4gfq7r5sf1w8n51q21zfgf3mn4d"; depends=[AdequacyModel]; };
   CombinS = derive2 { name="CombinS"; version="1.1-1"; sha256="06g41zbjl54cbhhs8q7l4bbvszclvbxn3m2dqg800d6ghs9vgl6v"; depends=[]; };
@@ -967,7 +986,9 @@ in with self; {
   Comp2ROC = derive2 { name="Comp2ROC"; version="1.1.4"; sha256="06hpbid9z1pzg7k4gqp2zn8l7sm375z32fsn54i27qbl3inp7m2d"; depends=[boot ROCR]; };
   CompAREdesign = derive2 { name="CompAREdesign"; version="2.3.1"; sha256="0jdfrn8p13d369gwfkyiydwv6451gvz8qiiij74bj2zjpq7z6kc7"; depends=[copula ggplot2 ggpubr numDeriv rootSolve]; };
   CompDist = derive2 { name="CompDist"; version="1.0"; sha256="02c18ksk6clv674yh79bzg3mh9hymzhal51j6g0rnvqd5ra8g66c"; depends=[actuar fExtremes numDeriv PearsonDS rmutil VGAM]; };
+  CompExpDes = derive2 { name="CompExpDes"; version="1.0.0"; sha256="17ib9ln5rwy0jmadciqiynfqxyx57hfjyvp46pr9alix3sgh140q"; depends=[]; };
   CompGR = derive2 { name="CompGR"; version="0.1.3"; sha256="0ck4kmb4h2i7qgikmy7i0cwhf14nh71pdf4mnss4ahxac4xsh2rr"; depends=[]; };
+  CompMix = derive2 { name="CompMix"; version="0.1.0"; sha256="1b7vmkyqh8m2p72wr469anwqwghiw6m9f1p8q3mr6l1pgx7nqhsn"; depends=[bkmr devtools gglasso glmnet gWQS hierNet higlasso Matrix mvtnorm pROC qgcomp randomForest SuperLearner]; };
   CompModels = derive2 { name="CompModels"; version="0.3.0"; sha256="1373m324zq7f3wffb25ypjidvsxki0p64iv4qy8i887g4f8inq6q"; depends=[]; };
   CompPareto = derive2 { name="CompPareto"; version="0.1.0"; sha256="1g2cas8pld75wjsvs73knpxyjlaggq5vrzb63hcv3bi29wcwjlzz"; depends=[actuar]; };
   CompQuadForm = derive2 { name="CompQuadForm"; version="1.4.3"; sha256="1i30hrqdk64q17vsn918c3q79brchgx2wzh1gbsgbn0dh1ncabq4"; depends=[]; };
@@ -976,10 +997,10 @@ in with self; {
   CompareMultipleModels = derive2 { name="CompareMultipleModels"; version="0.1.0"; sha256="0qzybbxx5kqlrb260c0wh2vhp3ci5wk6853mm01wfyivhvf7sz0h"; depends=[CEEMDANML]; };
   CompareTests = derive2 { name="CompareTests"; version="1.2"; sha256="1z96kh851bpr2szgyjszkpv6m5ma6abz7hrm50fgvfpgxkj7f4yi"; depends=[]; };
   ComparisonSurv = derive2 { name="ComparisonSurv"; version="1.1.1"; sha256="0lidakxb1ab6bpb7sf2arjl1xpym1lzxbh63g0x4c2dm7h0kzkwi"; depends=[muhaz survival survRM2 TSHRC]; };
-  Compind = derive2 { name="Compind"; version="3.0"; sha256="0g5m1dpnadgqszk079rxf6rm0d17qnvfzi7fwbs99sl2nimy3ni9"; depends=[Benchmarking boot FactoMineR GPArotation GWmodel Hmisc lpSolve MASS nonparaeff np psych smaa sp spdep]; };
+  Compind = derive2 { name="Compind"; version="3.1"; sha256="0k45gazca94dscqhy05p68k755al4gd1gilz5svq5h6cv5fijhxk"; depends=[Benchmarking boot FactoMineR GPArotation GWmodel Hmisc lpSolve MASS nonparaeff np psych Rcompadre smaa sp spdep]; };
   ComplexUpset = derive2 { name="ComplexUpset"; version="1.3.3"; sha256="1sk4v5kc2wkgfaws0hjlp30mngm907r5gz1iglf68j46lfs9jbsv"; depends=[colorspace ggplot2 patchwork scales]; };
   CompositeReliability = derive2 { name="CompositeReliability"; version="1.0.3"; sha256="04qpwqrz1x1hdjfin77fb4kywv9sspzdq7kn4f7jxaaz3ykhrhkc"; depends=[dplyr ggplot2 lme4 magrittr plyr psych reshape2 Rsolnp tidyr]; };
-  Compositional = derive2 { name="Compositional"; version="6.7"; sha256="0f9fq9b38jgylzbgszalnwmw5l1a5yviin22am848gicy98sz22x"; depends=[codalm Directional doParallel emplik energy FlexDir foreach glmnet MASS mda mixture mvhtests nnet pchc quadprog regda Rfast Rfast2 Rnanoflann sn]; };
+  Compositional = derive2 { name="Compositional"; version="6.8"; sha256="066fn6qndxgz6lp15wznjq1jhbiq917iiidkx5py3ixdk3gbbg7c"; depends=[cluster Directional doParallel emplik energy FlexDir foreach glmnet MASS Matrix mda mixture mvhtests nnet pchc quadprog regda Rfast Rfast2 Rnanoflann sn]; };
   CompositionalML = derive2 { name="CompositionalML"; version="1.0"; sha256="1gnr8iqgwx461gm0ff1gvi6j8rw19a1lhz560hcq7sgymzp66l5r"; depends=[Boruta Compositional doParallel e1071 foreach ranger Rfast Rfast2]; };
   CompoundEvents = derive2 { name="CompoundEvents"; version="0.3.0"; sha256="184dqy6dw6mrw1xpim335fmfnv0a8gmn2siqb4d5fa2rn5vghmcn"; depends=[]; };
   ConConPiWiFun = derive2 { name="ConConPiWiFun"; version="0.4.6.1"; sha256="1ziy646lbx297kia797xjxa8hyl826x1hiighyjslvnlvrhapx08"; depends=[Rcpp]; };
@@ -994,13 +1015,14 @@ in with self; {
   CondiS = derive2 { name="CondiS"; version="0.1.2"; sha256="19l26ajzbi58cnim1kgxb5wrilqpvz6znv01zd42s3w6899km28b"; depends=[caret kernlab purrr survival survminer tidyverse]; };
   ConfIntVariance = derive2 { name="ConfIntVariance"; version="1.0.2"; sha256="0xm3vh3vmf16faa3934100rnrg4rvlqkgjlsqa2smzcvy5vb86z4"; depends=[]; };
   ConfZIC = derive2 { name="ConfZIC"; version="1.0.1"; sha256="0x9933zirfdkg2ljm3kk1nalk9ri0rrqi11q07dkyh78p4w9lmsp"; depends=[cmna ltsa MuMIn mvtnorm psych tidytable]; };
+  ConfidenceEllipse = derive2 { name="ConfidenceEllipse"; version="1.0.0"; sha256="0p3dkfj1r1prz40cly7apcnvh1m6537h0kjaljgqkhb6ylrxmlci"; depends=[cellWise dplyr forcats ggplot2 magrittr pcaPP purrr rgl rlang tibble tidyr tidyselect]; };
   ConfigParser = derive2 { name="ConfigParser"; version="1.0.0"; sha256="0jjh6gz5qcqhirzkmg7a4lnf8n3mjly15x2mvbvdpjkk7iv3w9m3"; depends=[ini R6]; };
   ConformalSmallest = derive2 { name="ConformalSmallest"; version="1.0"; sha256="0r74hbz0dmz69zsw2vdl858vj27p6f2xcpv1l1il4r52cmshg1h8"; depends=[glmnet MASS mvtnorm quantregForest]; };
   ConfusionTableR = derive2 { name="ConfusionTableR"; version="1.0.4"; sha256="1qyw4shzgaaqmcn6yb52xaxrfwrji980j87baz4ngzckd60n77fi"; depends=[caret dplyr furrr magrittr purrr tidyr]; };
   CongreveLamsdell2016 = derive2 { name="CongreveLamsdell2016"; version="1.0.3"; sha256="06vfcl65zn3xwpai33xxmp54r5hny8cr18ad3w8laa6fii5rfyhb"; depends=[Ternary]; };
   Conigrave = derive2 { name="Conigrave"; version="0.4.4"; sha256="02nvk5ya9gr06ai8qnjw0xq6hfbrr91b6lx9gq08dbrnmpbmyvqz"; depends=[dplyr ggplot2 miceadds mitools ppcor stringdist stringr]; };
   ConnMatTools = derive2 { name="ConnMatTools"; version="0.3.5"; sha256="082y4xxnp42xa7db5hnbc9qlvkb50wwb3wzi0my04l55a9s0ril7"; depends=[]; };
-  ConnectednessApproach = derive2 { name="ConnectednessApproach"; version="1.0.1"; sha256="086d874gnqgmqqqz296sfvrpi38fp1iqxsg0sd2xbllfnyx4gnzy"; depends=[frequencyConnectedness glmnet igraph MASS moments progress quantreg riskParityPortfolio rmgarch rugarch urca xts zoo]; };
+  ConnectednessApproach = derive2 { name="ConnectednessApproach"; version="1.0.3"; sha256="1vbnj2r4x8pfzdagky33xz9kpb23d7vz5ddgms8fp15zjilsz2nw"; depends=[car frequencyConnectedness glmnet igraph L1pack MASS moments PerformanceAnalytics progress quantreg riskParityPortfolio rmgarch rugarch urca xts zoo]; };
   ConsRank = derive2 { name="ConsRank"; version="2.1.4"; sha256="001hmiii7khh1q2wav38737svzr0anr42nyp8hhplqfbiw0cc4y2"; depends=[gtools proxy rgl rlist tidyr]; };
   ConsRankClass = derive2 { name="ConsRankClass"; version="1.0.1"; sha256="02n6a3affm72vfhsjz90jl8x0qrvxsimlm1ng313s4zla515h8ap"; depends=[ConsRank janitor pracma proxy rlist]; };
   ConsReg = derive2 { name="ConsReg"; version="0.1.0"; sha256="0ck188ahzprzvqdh2q05bcg9b68dw3xiqqb1xirbm4rp5chyr419"; depends=[adaptMCMC data_table DEoptim dfoptim FME forecast GA GenSA ggplot2 MCMCpack Metrics nloptr Rcpp rlang Rsolnp]; };
@@ -1012,7 +1034,7 @@ in with self; {
   ConvergenceConcepts = derive2 { name="ConvergenceConcepts"; version="1.2.3"; sha256="1y4kh00z63a9j8bsjgnf6lmwkivsf5zk8yw6i9d72a8jr2bhb78w"; depends=[lattice tkrplot]; };
   ConvertPar = derive2 { name="ConvertPar"; version="0.1"; sha256="1czw97ya73dinad0n664045s9918a21kv97bpkal40kg029vnw59"; depends=[mirt neuralnet RWeka]; };
   Convolutioner = derive2 { name="Convolutioner"; version="0.1.0"; sha256="1ria4ii7zdqgrzgdx4c82dj4lg791iwy2y66fv1qyibws0ag3bhq"; depends=[]; };
-  CooRTweet = derive2 { name="CooRTweet"; version="2.0.1"; sha256="0xxzj67a3sxh0xhpjd9ywpxv8102bvlw6q2a19waq5i1s63a7cpm"; depends=[data_table igraph lubridate RcppSimdJson stringi tidytable]; };
+  CooRTweet = derive2 { name="CooRTweet"; version="2.0.2"; sha256="0gziybfp640p2gskbz80kx9ikmg3mpk0m937iq44k1906lrvp9p2"; depends=[data_table igraph lubridate RcppSimdJson stringi tidytable]; };
   CooccurrenceAffinity = derive2 { name="CooccurrenceAffinity"; version="1.0"; sha256="0wn8jkvm5x30vj1vy196l691kbs5aa3j09s5dsa2r54cr34d16mn"; depends=[BiasedUrn cowplot ggplot2 plyr reshape]; };
   CoopGame = derive2 { name="CoopGame"; version="0.2.2"; sha256="0i4yw2nznmcps9s9f592nbs8dvncb0w2bynvsfkp21lzd4pfsp4n"; depends=[geometry gtools rcdd]; };
   CoordinateCleaner = derive2 { name="CoordinateCleaner"; version="3.0.1"; sha256="0bs1vr145ab42i7x0jcsin6sfaxy05ly2i4qcrlvyvz303ynj0rf"; depends=[dplyr geosphere ggplot2 rgbif rnaturalearth terra tidyselect]; };
@@ -1022,15 +1044,15 @@ in with self; {
   CopernicusMarine = derive2 { name="CopernicusMarine"; version="0.2.3"; sha256="09kv2c7lkbnpzfs0i48dp3gvx6mwn89q0y3f4hbmm9iiyksrdw2i"; depends=[crayon dplyr httr2 leaflet purrr readr rlang rvest sf stringr tidyr xml2]; };
   Copula_Markov = derive2 { name="Copula.Markov"; version="2.9"; sha256="18krq0q5i3j211g88sl153f1fa5crdcgclvl5lqawm7zykyzblh2"; depends=[]; };
   Copula_Markov_survival = derive2 { name="Copula.Markov.survival"; version="1.0.0"; sha256="1sxg0ir39f4hj4m6imija0c88j513j6fflcp7xc0599iglwsrbvs"; depends=[survival]; };
-  Copula_surv = derive2 { name="Copula.surv"; version="1.4"; sha256="0gk2qvdwa3wr55j7vkgm2jk1qcck1aqzsh30zc3cidgbk7m3icpv"; depends=[]; };
+  Copula_surv = derive2 { name="Copula.surv"; version="1.6"; sha256="177m79nc9gwnfxai0gdw7id0212rxp34rpcp0b7j79r3zncwnb6i"; depends=[]; };
   CopulaCenR = derive2 { name="CopulaCenR"; version="1.2.3"; sha256="1z1a9hrb5v784j46yc2dsbizbis8pb5zdbc4cky8yws7swiax5m1"; depends=[boot caret copBasic copula corpcor flexsurv foreach icenReg magrittr plotly pracma survival VineCopula]; };
-  CopulaDTA = derive2 { name="CopulaDTA"; version="1.0.1"; sha256="1a9v398yn7gflpnsrgzap8gy1b676ri1m3fwiv1jpc5l1cw154pm"; depends=[ggplot2 plyr reshape2 rstan]; };
   CopulaGAMM = derive2 { name="CopulaGAMM"; version="0.4.1"; sha256="1n5nbmmqz3jynqpv53kwha5s7h9h3br7y7b6798mskadvqc2x90k"; depends=[matrixStats statmod]; };
   CopulaInference = derive2 { name="CopulaInference"; version="0.5.0"; sha256="10r2ni62fh6zl0im1n7apjf6kx2fprifn71rnaf7dh7xypdkqyw1"; depends=[doParallel foreach Matrix rvinecopulib]; };
-  CopulaREMADA = derive2 { name="CopulaREMADA"; version="1.5.1"; sha256="027007xrzd2m7pgv8ki901aaf2957ih1lqh881viyd8hbfcfaghy"; depends=[matlab mc2d statmod tensor]; };
+  CopulaREMADA = derive2 { name="CopulaREMADA"; version="1.6.2"; sha256="101ys5mqr51cj1rcvqc2mzanxil3z3pb4m1y3kwlzw3jz4cygrmk"; depends=[matlab mc2d statmod tensor]; };
   CorBin = derive2 { name="CorBin"; version="1.0.0"; sha256="0mjvhj9cw21xjg96fz5bcyfxgwdw367l1942a38by77ylypdfq3y"; depends=[]; };
   CorMID = derive2 { name="CorMID"; version="0.1.9"; sha256="08dr6c3pvich7arbq0ak9s356s29ynw4v6s1mz5bw9kddrrlswlq"; depends=[plyr Rdisop]; };
   Corbi = derive2 { name="Corbi"; version="0.6-2"; sha256="13lbh6fcfrpgz459mjdnfkd8kys2350s8j0vv9ps18092264gh42"; depends=[CRF igraph MASS Matrix]; };
+  CoreMicrobiomeR = derive2 { name="CoreMicrobiomeR"; version="0.1.0"; sha256="18zqs14j014qsmqqgn2yyf1djvr92spj46aq474jh6f8sdqvbqqz"; depends=[edgeR fastmatch ggplot2 ggrepel plotly reshape2 SRS vegan]; };
   CornerstoneR = derive2 { name="CornerstoneR"; version="2.0.2"; sha256="04dvryhcyi7f6bmm4067cn5vmy7kdqi3bys7ln8nnsc0kkdjxhi5"; depends=[checkmate data_table minpack_lm ranger SpatialTools vcd]; };
   CoronaNetR = derive2 { name="CoronaNetR"; version="0.3.0"; sha256="1qqlkcbwmr9g8rnsgb7dd1npd09sva11y6fy1g7l4wdvmpw07ymh"; depends=[httr R_utils readr]; };
   CorrBin = derive2 { name="CorrBin"; version="1.6.1"; sha256="07nxara80zjpvaqjfjpwi2aw909wp1jj0v42dd0s06w00v502438"; depends=[boot combinat dirmult geepack mvtnorm]; };
@@ -1053,17 +1075,20 @@ in with self; {
   CoxICPen = derive2 { name="CoxICPen"; version="1.1.0"; sha256="0m6g4gi33y5vmpf790x38y8g8vpxvr5935lcz9vjw5kkmsjkln0g"; depends=[foreach]; };
   CoxPlus = derive2 { name="CoxPlus"; version="1.1.1"; sha256="038wsz206bgc0pnzx403b5ihcwhxpkrpxmwvrvqcxf8333pb62l5"; depends=[Rcpp RcppArmadillo]; };
   CoxR2 = derive2 { name="CoxR2"; version="1.0"; sha256="1fjsa403lbx0hi7b0gsdaz0q9axw521q4xzphbfbknify4y72md6"; depends=[survival]; };
-  Coxmos = derive2 { name="Coxmos"; version="1.0.1"; sha256="0y7dcwzkj8yqwn44qd1cb1379a0xl5a1949sg7wn6gpgzyn9vgi4"; depends=[caret cowplot furrr future ggplot2 ggpubr ggrepel glmnet MASS mixOmics progress purrr Rdpack scattermore survcomp survival survminer svglite tidyr]; };
+  Coxmos = derive2 { name="Coxmos"; version="1.0.2"; sha256="052af5hx820wmvflvz4pv3jlmmwap9d0lzx9k7v1ps6cidarz0wm"; depends=[caret cowplot furrr future ggplot2 ggpubr ggrepel glmnet MASS mixOmics progress purrr Rdpack scattermore survcomp survival survminer svglite tidyr]; };
   CpGFilter = derive2 { name="CpGFilter"; version="1.1"; sha256="0ccvk7lawmay0wqdyhs6ww7396dcfzazn72sq6zwyw7dl45k2j0i"; depends=[matrixStats]; };
   CpGassoc = derive2 { name="CpGassoc"; version="2.60"; sha256="1zx18x8pxjl2ajnj7a7lb8383m75ysg17f4mzz0vkgl5mnf617ny"; depends=[nlme]; };
   CpmERCCutoff = derive2 { name="CpmERCCutoff"; version="1.0.0"; sha256="1vmfhdi4mmfbw5zz5yhsqrqz7w5jpg0ls6d22mm8bplgssrc2kk9"; depends=[]; };
-  CptNonPar = derive2 { name="CptNonPar"; version="0.1.1"; sha256="1kilajx8afc01lg3xhn1nckc3pz7h15zw1js54p9ls8cw6ql3102"; depends=[doParallel foreach iterators parallelly Rcpp Rfast]; };
+  CptNonPar = derive2 { name="CptNonPar"; version="0.2.1"; sha256="1mpjxy5wivadbska51g30594rqgdx3g0m4jr90lnnri2yb8a78kw"; depends=[doParallel foreach iterators parallelly Rcpp Rfast]; };
+  CreditRisk = derive2 { name="CreditRisk"; version="0.1.7"; sha256="1jw8r0fzh5kmwygf5mrhg91ahv42gdvd1f91h5bwff6y08q3h345"; depends=[]; };
   Cronbach = derive2 { name="Cronbach"; version="0.1"; sha256="1gkapi7pgf1mwidhgdf3y5cm4bz5igzb7mdflz560aa67asp1qyf"; depends=[boot]; };
   CropScapeR = derive2 { name="CropScapeR"; version="1.1.5"; sha256="0dhziq4fybb987jv10g0wd4n765c4d87h86g96qg8wg6cx11vi6m"; depends=[data_table dplyr httr magrittr raster RJSONIO sf]; };
+  CropWaterBalance = derive2 { name="CropWaterBalance"; version="0.2.0"; sha256="0hfy1y26v2cy1pi014zxrmp91ypnlb4jk1sa4zb0mhlmlxjmdijh"; depends=[lubridate PowerSDI]; };
   CrossCarry = derive2 { name="CrossCarry"; version="0.1.0"; sha256="1iglwsx5b29zjl7ikngyb3kf0kfacqxlg01p6vn84dblwgh2gmak"; depends=[dplyr gee geepack ggplot2]; };
+  CrossClustering = derive2 { name="CrossClustering"; version="4.1.2"; sha256="0by2kwykbm5il3smfi52vzzy18niqjgjflbza66dm5rlbny9dgpb"; depends=[checkmate cli cluster crayon dplyr flip mclust purrr]; };
   CrossVA = derive2 { name="CrossVA"; version="1.0.0"; sha256="16ahw8h27acvqqixmwmsyl6rbjzxbn4pfyh2ls9rq852mc7mdg9b"; depends=[stringi]; };
   CrossValidate = derive2 { name="CrossValidate"; version="2.3.4"; sha256="1q5wnw2llvlw3hbjg0zccipk3ns31m2339x1aj6m526zhvgl2wvx"; depends=[Modeler oompaBase]; };
-  Crossover = derive2 { name="Crossover"; version="0.1-21"; sha256="0mqpfasqdgv4s77ln3c45pjgl2l7wb7b68jl46fzln184n0838l7"; depends=[CommonJavaJars crossdes digest ggplot2 JavaGD MASS Matrix multcomp Rcpp RcppArmadillo rJava xtable]; };
+  Crossover = derive2 { name="Crossover"; version="0.1-22"; sha256="05fsl22h2q6l0g9hscs4f0w4d3skd9anr570ddmnqicxzdfpap5r"; depends=[CommonJavaJars crossdes digest ggplot2 JavaGD MASS Matrix multcomp Rcpp RcppArmadillo rJava xtable]; };
   Crosstabs_Loglinear = derive2 { name="Crosstabs.Loglinear"; version="0.1.1"; sha256="0238652k1mv396wjxm058xvhp7rss0nkmn48bvkhq6pcryna2lzb"; depends=[]; };
   CruzPlot = derive2 { name="CruzPlot"; version="1.4.8"; sha256="19dza13mdd67g7710bzzg1bi32nhgr3c5vcyh98igw3q8hfk7ac8"; depends=[dplyr DT geosphere mapdata maps marmap shiny shinydashboard shinyjs stringr swfscDAS]; };
   CryptRndTest = derive2 { name="CryptRndTest"; version="1.2.7"; sha256="0skk0mgnkfknlbdidfh2jca1wa8rzgd29ypwpa8kdh83l9jhdi5g"; depends=[gmp kSamples LambertW Rmpfr sfsmisc tseries]; };
@@ -1071,41 +1096,45 @@ in with self; {
   Cubist = derive2 { name="Cubist"; version="0.4.2.1"; sha256="0mwis0qjjj7wz4lxb8a0168l4az4523ybhxc0jygx8qrj3azwyph"; depends=[lattice reshape2]; };
   CureAuxSP = derive2 { name="CureAuxSP"; version="0.0.1"; sha256="1aay2hhciq6f79dz5cnqsfrvw6hlfidw4gvy7hyrnbqqlnqjwyr2"; depends=[lars MASS mvtnorm survival TCGAbiolinks]; };
   CureDepCens = derive2 { name="CureDepCens"; version="0.1.0"; sha256="1i11yvh19zvv220d3jhnidjxq494wc3jg5054zq1pr09sxh2jnqn"; depends=[dlm Formula matrixStats rootSolve survival]; };
+  CurricularAnalytics = derive2 { name="CurricularAnalytics"; version="1.0.0"; sha256="17hgdiwbr2pp5f51091l61qjl4rdl3qp5d417zxj4024sh93l21m"; depends=[dplyr igraph visNetwork]; };
   CustomDerivative = derive2 { name="CustomDerivative"; version="0.1.1"; sha256="05jfv968mnbamzspvdd51pbwz5xpn3jhj3pwq2piwk18br824rn2"; depends=[R6]; };
   CustomerScoringMetrics = derive2 { name="CustomerScoringMetrics"; version="1.0.0"; sha256="166v0hbxy4xgbfqh7sx6zsrv4pghqpimx5xry3h2qwynnvr4ng1a"; depends=[]; };
   CustosAscensor = derive2 { name="CustosAscensor"; version="0.1.0"; sha256="1axyhwf9rc9dvrrcrpmx69kp49nwb0an7csn9qbjmx9jwwav11l5"; depends=[]; };
   CutpointsOEHR = derive2 { name="CutpointsOEHR"; version="0.1.2"; sha256="0r772zb7g10akcfnf2hnyvpvba4px9pgslyns7drmijdsh0ncnvj"; depends=[survival]; };
-  Cyclops = derive2 { name="Cyclops"; version="3.4.0"; sha256="0rys8fcz96zy0kx2b3k0j48nj0ysr6pcvya9grb8c3wj9s12m752"; depends=[Andromeda bit64 dplyr Matrix Rcpp RcppEigen rlang survival]; };
+  CvmortalityMult = derive2 { name="CvmortalityMult"; version="1.0.2"; sha256="0m11pzmhw7g25x4dmjakc5i66x5vvn086j6vj3r0bvyxiyyvi3gj"; depends=[forecast gnm sf StMoMo tmap]; };
+  Cyclops = derive2 { name="Cyclops"; version="3.4.1"; sha256="1zz6jgzsjswzafya43fabqcgfhwn65sk8lx023hhn33vw844sv5p"; depends=[Andromeda bit64 dplyr Matrix Rcpp RcppEigen RcppParallel rlang survival]; };
   CytOpT = derive2 { name="CytOpT"; version="0.9.4"; sha256="008qm2kzclp0sy4ys7y0dsc894qrn7mazz9216w97rs2sn7kcrzx"; depends=[ggplot2 MetBrewer patchwork reshape2 reticulate testthat]; };
   CytoSimplex = derive2 { name="CytoSimplex"; version="0.1.1"; sha256="0zknsizsh860hyij5zxpm3izfsiwnp7mshrrnk4fmxsjv9fcxahr"; depends=[ggplot2 Matrix plot3D Rcpp RcppArmadillo rlang]; };
   CytobankAPI = derive2 { name="CytobankAPI"; version="2.2.1"; sha256="0zhvxgqlzwv98b6ccl33x6jp71a14ysdmcc5a3v0d97r8haq1g3v"; depends=[aws_s3 curl httr jose jsonlite uuid]; };
   D2MCS = derive2 { name="D2MCS"; version="1.0.1"; sha256="0rjfjnh8gcbm83cwqk1yjrjv6jsrarr53c629bkg9zw7s5sm35nz"; depends=[caret devtools dplyr FSelector ggplot2 ggrepel gridExtra infotheo mccr mltools ModelMetrics questionr R6 recipes tictoc varhandle]; };
+  D3GB = derive2 { name="D3GB"; version="2.0"; sha256="0g86nyfrhqbnlvls2l5ppi2zlij2wpg6zq83qrllzzrh28qx0rjk"; depends=[base64enc DBI RSQLite]; };
   D3mirt = derive2 { name="D3mirt"; version="1.1.0"; sha256="1a7c2q1rm8yhdsszh4lg6nca8sfyyvba3v4gchdjll7660grpyr7"; depends=[mirt rgl]; };
   D3partitionR = derive2 { name="D3partitionR"; version="0.5.0"; sha256="10067rdgbpjzgw2wiq75kdd0gd7bl41hp16sxc0k2p72ybqfpw03"; depends=[data_table functional htmlwidgets magrittr RColorBrewer titanic]; };
   D4TAlink_light = derive2 { name="D4TAlink.light"; version="2.1.14"; sha256="1cpvi5jzlyvwygyzv4smi3qcr3gx85s7bfjspsfkz9011aqb1aci"; depends=[jsonlite openssl rmarkdown]; };
   DA = derive2 { name="DA"; version="1.2.0"; sha256="0bcx6lh93yl1cawrbrkqx7dypypvfnf27nlxf9vkz16n1hy50xnl"; depends=[adegenet kernlab klaR lfda MASS plotly rARPACK]; };
-  DAAG = derive2 { name="DAAG"; version="1.25.4"; sha256="1gia0xpdy55f23s6b3w4nfdmavgj9xzk9zc3p64lj4arycpnq4mn"; depends=[lattice latticeExtra Rdpack]; };
+  DAAG = derive2 { name="DAAG"; version="1.25.6"; sha256="0vm4r1ds2xxxf4vml6mrb5alnkr72a08nby88h3qk7xalny28xkf"; depends=[lattice latticeExtra Rdpack]; };
   DAAGbio = derive2 { name="DAAGbio"; version="0.63-4"; sha256="03lkq84x3skhvcrbs7235jlrhcnszk0pgziik4z93gy1qngrshn2"; depends=[limma]; };
   DACF = derive2 { name="DACF"; version="1.0.0"; sha256="0hv7c9lk6ivj4iz953yn11iy5p611q4si4ghn9d5a9i229s5hig8"; depends=[]; };
   DAIME = derive2 { name="DAIME"; version="2.1.3"; sha256="099pbzgryz9lxhcqlrywcv8zl5af4ir5dyyqvgc16xi5bddxk7ld"; depends=[]; };
   DAISIE = derive2 { name="DAISIE"; version="4.4.1"; sha256="0f1ym3k49m2wdilsg7vwsb7m4ccdg87pnaksmbqv9smcxn5v8rn2"; depends=[BH DDD deSolve doParallel foreach magrittr Matrix pracma Rcpp RcppEigen subplex tensor testit]; };
-  DAISIEprep = derive2 { name="DAISIEprep"; version="0.3.2"; sha256="1072j28rwkzki8slz4h8db0wkzbcprbrmm7c33jy19s3qk5h644a"; depends=[ape castor DAISIE ggplot2 ggtree phylobase rlang scales tibble]; };
+  DAISIEprep = derive2 { name="DAISIEprep"; version="0.4.0"; sha256="0ch3mc725lip67fpbk405rv3bai44w13vvjlspv8y6jzmb5jg6bp"; depends=[ape castor DAISIE ggplot2 ggtree phylobase rlang scales tibble]; };
   DAKS = derive2 { name="DAKS"; version="2.1-3"; sha256="0vmpwxvksnmyq40faimbgpj0y3zbk519986n38ipwdfzllcg0zs4"; depends=[relations sets]; };
   DALEX = derive2 { name="DALEX"; version="2.4.3"; sha256="08cd5nhgd6vaazcqq985kwivg99v6ily4idhgkpz8l9ffl3lavm0"; depends=[ggplot2 iBreakDown ingredients]; };
   DALEXtra = derive2 { name="DALEXtra"; version="2.3.0"; sha256="1yxsk6cmqrhc7aw62vx5pr2g18lh32j5x73jbfxv4k0ia66mmwqf"; depends=[DALEX ggplot2]; };
   DALSM = derive2 { name="DALSM"; version="0.9.1"; sha256="00v3h9np8nfhiyiz6r4bs5gzqqw3qfx275ab1byvjsr42zx11qpr"; depends=[cubicBsplines MASS plyr]; };
   DALY = derive2 { name="DALY"; version="1.5.0"; sha256="1v7ld01xcn5jiygl1c3xhd5h71ip90lks87fs9gmpnivp8jz5cr5"; depends=[]; };
   DAMOCLES = derive2 { name="DAMOCLES"; version="2.3"; sha256="0pk9gq82qa18fl7zp74d47bgy8lhj9rkvfq23w8844nz9kn58s1f"; depends=[ape caper DDD deSolve expm Hmisc Matrix matrixStats picante]; };
-  DAP = derive2 { name="DAP"; version="1.0"; sha256="0zzb05yxfaqp6qnr979q20rqy8sl5l825mxs0x9366qr7mz5k5ws"; depends=[MASS]; };
   DATAstudio = derive2 { name="DATAstudio"; version="1.1"; sha256="1gwm53pgab5qn0p46bxs0790n7bbfl7b66i84xsa6bb4zdw5jdzb"; depends=[data_table ggplot2 scales]; };
   DArand = derive2 { name="DArand"; version="0.0.1.2"; sha256="1pwd5srrjy8mhs40k6g6x5j3vk9cr5hylk8sdyiiqalpq490nzqy"; depends=[]; };
   DBEST = derive2 { name="DBEST"; version="1.8"; sha256="1a598g02hpfgv572gchllqkppynnsp4lx764jg0g66w3b66k0kdy"; depends=[zoo]; };
   DBHC = derive2 { name="DBHC"; version="0.0.3"; sha256="0r9c2vjnrahi3kbg7gz3z9k1i8vdqc44rc6nq7xk1j2xs1s6wsxp"; depends=[ggplot2 reshape2 seqHMM TraMineR]; };
-  DBI = derive2 { name="DBI"; version="1.2.2"; sha256="10d7sl9nk1gkkbinmvplyp2hg9zgxgs03llamrvbf4a5cnrs0mcd"; depends=[]; };
-  DBItest = derive2 { name="DBItest"; version="1.8.0"; sha256="1k9ww5kcy2y3cxqi9pp00j0dfa82pfbph2gz5z42nykcam6w4dfx"; depends=[blob callr DBI desc hms lubridate magrittr nanoarrow palmerpenguins rlang testthat vctrs withr]; };
+  DBI = derive2 { name="DBI"; version="1.2.3"; sha256="1gid1mfzq1j3n5fsnpzdb50p2m73z92s6njp0sgr503aaskhhryg"; depends=[]; };
+  DBItest = derive2 { name="DBItest"; version="1.8.1"; sha256="0vj7989s9qip3mxjzffrm7prh0xxpp467y9m4ls7dz7m3b7inpxl"; depends=[blob callr DBI desc hms lubridate magrittr nanoarrow palmerpenguins rlang testthat withr]; };
   DBModelSelect = derive2 { name="DBModelSelect"; version="0.2.0"; sha256="1cbnypvcglbvlxdpr95yd65qfd56fhfx14gd0mr71jkkqhgmj0pk"; depends=[]; };
   DBNMFrank = derive2 { name="DBNMFrank"; version="0.1.0"; sha256="1snnyc9dvlkxydx3n6mims1avbibkkmaf5z440s28ibf9a9l91wj"; depends=[NMF pmledecon]; };
   DBR = derive2 { name="DBR"; version="1.4.1"; sha256="1gs9d1qmv4mcmryzzvmwbz6ycinhnxnkiv56l31mbqy50qjn9bi4"; depends=[coda MfUSampler]; };
+  DBTC = derive2 { name="DBTC"; version="0.1.0"; sha256="1w4sm78nvzmc7hjdpjxsj4qncwnymdqni5jkllircglsjimps75y"; depends=[dada2 ggplot2 pbapply plyr ShortRead taxonomizr]; };
+  DBTCShiny = derive2 { name="DBTCShiny"; version="0.1.2"; sha256="0rk9f4wbpmibydbmq17bjfgdznpl67xfd5f1srkpnai459c5ni6y"; depends=[DBTC DT ggplot2 leaflet leaflet_extras magrittr shiny shinycssloaders shinydashboard shinyFiles shinyjs shinyWidgets]; };
   DBfit = derive2 { name="DBfit"; version="2.0"; sha256="1b5fy4xya5k31937ccjsq1gj9y39lh1vb48jfc0sr56isrx0c496"; depends=[Rfit]; };
   DBpower = derive2 { name="DBpower"; version="0.1.0"; sha256="04wwhzlc9g6il478ax5yvh74bbb6hs29jyslkiz3k1hi25hlpkrn"; depends=[combinat dplyr GBJ kit magrittr mvtnorm]; };
   DCCA = derive2 { name="DCCA"; version="0.1.1"; sha256="06xdx79r7dr14dlk5vgcyd8ar4sc72imlyk66bnia1kvlynvdy69"; depends=[checkmate]; };
@@ -1148,18 +1177,19 @@ in with self; {
   DFBA = derive2 { name="DFBA"; version="0.1.0"; sha256="12ywksp6zb2xkxvpmnvjpan9wllfzhngvwnsw6813z11jdhrhnpr"; depends=[]; };
   DFD = derive2 { name="DFD"; version="0.1.0"; sha256="1msyfzcxrqz9wq675ml00sigsyg94wl36yw4759fkr1q99iggxcc"; depends=[gprofiler2 signatureSearch signatureSearchData stringr]; };
   DFIT = derive2 { name="DFIT"; version="1.1"; sha256="1220ax93b9xwmq1crgl1fnf63gk72jqbra5b5q25wn6ynv1kilkx"; depends=[ggplot2 mirt msm mvtnorm simex]; };
-  DGCA = derive2 { name="DGCA"; version="1.0.3"; sha256="15n6nlnb20xzn4swcclyarfq7pq7rwmm2n0rv7m2q9jkxr9vp4w0"; depends=[matrixStats WGCNA]; };
   DGEAR = derive2 { name="DGEAR"; version="0.1.3"; sha256="0pnfaamrqban478vxcr4cjklxqxh9kmxzd724jwq8a1xfgscs8pw"; depends=[DescTools]; };
   DGEobj = derive2 { name="DGEobj"; version="1.1.2"; sha256="00ndl6ckbr3f6pg9mgcygv1pq7j8gc7g8f54lirm624hiswsppn3"; depends=[assertthat magrittr stringr]; };
   DGEobj_utils = derive2 { name="DGEobj.utils"; version="1.0.6"; sha256="01pbyz62vayism9bk6scx97yxwfmsss2af39grq46rilrcgrck3k"; depends=[assertthat DGEobj dplyr stringr]; };
   DGLMExtPois = derive2 { name="DGLMExtPois"; version="0.2.3"; sha256="0bbf7cyrnn1ghvhbnv54pv6325l8v8fy1bayl4b6qgs84xd959p4"; depends=[COMPoissonReg nloptr]; };
   DGM = derive2 { name="DGM"; version="1.7.4"; sha256="1f59spd4bwx4d1gbjaizjxccaslw1fvf8pxa9nrxi07j6kq9mg0h"; depends=[coin data_table ggplot2 Rcpp RcppArmadillo reshape2]; };
+  DGP4LCF = derive2 { name="DGP4LCF"; version="1.0.0"; sha256="1v8wh52wcxs4adp1h9xplj5vych867scjrw32pqdczmiawi3q9d5"; depends=[coda combinat corrplot factor_switching GPFDA mvtnorm pheatmap Rcpp RcppArmadillo]; };
   DHARMa = derive2 { name="DHARMa"; version="0.4.6"; sha256="0wsb59w6z8mwag2wfiqs8237sk5rf2w7z7araxa6pzslsdf3vz9j"; depends=[ape gap lme4 lmtest Matrix qgam]; };
   DHBins = derive2 { name="DHBins"; version="1.1"; sha256="1g69acac7pxw8x0d9czyds7xljhbv9d686c99a3y8b4vh7dnx62s"; depends=[ggplot2]; };
   DHS_rates = derive2 { name="DHS.rates"; version="0.9.2"; sha256="1j4jgwi5skjr4h8gyphkfjxhx80f0x6bhqb81711bhq5zp3bl59l"; depends=[crayon dplyr haven matrixStats reshape rlang survey]; };
   DICOMread = derive2 { name="DICOMread"; version="0.0.0.3"; sha256="1wrgx5b9w476g8s3jmccc027xdqbmcmnlhwf02g6j213rgy87p73"; depends=[matlabr]; };
-  DIDmultiplegt = derive2 { name="DIDmultiplegt"; version="0.1.3"; sha256="0msjpxh7ic8ail7i85g972c0d49m588wkch8qzrpq27xfhxvkxsd"; depends=[assertthat dplyr fixest plotrix sampling stringr wooldridge]; };
-  DIDmultiplegtDYN = derive2 { name="DIDmultiplegtDYN"; version="1.0.5"; sha256="1ilxq75cl8f7r73zvf1s2f3lnkh83w9vbp0rz28083xyls9jb18v"; depends=[car data_table dplyr ggplot2 haven lmtest magrittr matlib plm rlang sandwich xlsx]; };
+  DIDmultiplegt = derive2 { name="DIDmultiplegt"; version="0.1.4"; sha256="07rky436q6bq9ag6ix5r4k7i4ahbifx89c2dv9isag634kva6pvm"; depends=[assertthat dplyr fixest plotrix sampling stringr wooldridge]; };
+  DIDmultiplegtDYN = derive2 { name="DIDmultiplegtDYN"; version="1.0.11"; sha256="0i19i65hacrpfr8zn644a0viparig4np07fs91f7xs6gh7z1yv4c"; depends=[car cowplot data_table dplyr ggplot2 haven lmtest magrittr matlib plm rlang rnames sandwich xlsx]; };
+  DIFM = derive2 { name="DIFM"; version="1.0"; sha256="126yn0kj6znpigxg7hsmpn67149mgl1nzv6zp772cwd8pdwpyklw"; depends=[gridExtra LaplacesDemon Matrix Rcpp RcppArmadillo sp spdep]; };
   DIFboost = derive2 { name="DIFboost"; version="0.3"; sha256="07x31ccy2l0drv1356g1v4jw71i7zqb3d0v856gsd3kpqhclpvx0"; depends=[mboost penalized stabs]; };
   DIFlasso = derive2 { name="DIFlasso"; version="1.0-4"; sha256="13ls5018l790cdr26431li4gi9zw03ilypszfqglg4hj485h7dyw"; depends=[grplasso miscTools penalized]; };
   DIFplus = derive2 { name="DIFplus"; version="1.1"; sha256="1k03lr437gx5y762z3h40hz9kcl4m8xgrndxvbyvsgmn2h6pbwsd"; depends=[plyr TestDataImputation]; };
@@ -1174,7 +1204,7 @@ in with self; {
   DIZutils = derive2 { name="DIZutils"; version="0.1.2"; sha256="1kra2b1qbbs6yf5aqlianszqbybni4iqzks0gxg5hdmdzphzb0hb"; depends=[data_table DBI DIZtools Hmisc psych RJDBC RJSONIO RPostgres xml2]; };
   DIconvex = derive2 { name="DIconvex"; version="1.0.0"; sha256="0bnrq9nmryshir6ll43nz20aaqmmw0zjvfml72cpwbvrma8a3qmz"; depends=[lpSolveAPI]; };
   DImodels = derive2 { name="DImodels"; version="1.3.2"; sha256="1ykdjqbli32awx6fwyff0l522dclhfyjp83svsjrfnm0517rlg4w"; depends=[ggplot2 hnp multcomp rootSolve]; };
-  DImodelsMulti = derive2 { name="DImodelsMulti"; version="1.0.1"; sha256="1l15irl8nrhq0x0bhz5rh225lha9pmqmvl0p4mr534cg36abs7gm"; depends=[DImodels dplyr knitr Matrix nlme plyr reshape2]; };
+  DImodelsMulti = derive2 { name="DImodelsMulti"; version="1.1.1"; sha256="1av5kfvshy05xqipp4qa5fhj4yd55wfpznx91l2fgdklxbnjr0v4"; depends=[DImodels dplyr knitr Matrix nlme plyr reshape2]; };
   DImodelsVis = derive2 { name="DImodelsVis"; version="1.0.1"; sha256="1j224j3xj1scf1smy2zk0dwv3calkx3jzpn989w9hjck96x657n5"; depends=[cli DImodels dplyr forcats ggfortify ggplot2 ggtext glue insight metR PieGlyph plotwidgets rlang scales tidyr]; };
   DIscBIO = derive2 { name="DIscBIO"; version="1.2.2"; sha256="0zr1lpfqn8q3xhh27aa59j5xq70fxhzkwqaqfi34zfsiqzb7cy6a"; depends=[AnnotationDbi cluster fpc ggplot2 httr igraph impute mclust NetIndices org_Hs_eg_db png RColorBrewer rpart rpart_plot RWeka SingleCellExperiment statmod TSCAN tsne vegan withr]; };
   DJL = derive2 { name="DJL"; version="3.9"; sha256="0q82b35ln0ligxgnk726bn5cynh6sd529hk6v3prrzbvdnsrqxcg"; depends=[car lpSolveAPI]; };
@@ -1184,7 +1214,6 @@ in with self; {
   DLMtool = derive2 { name="DLMtool"; version="6.0.6"; sha256="1lhskk4022vzvmwki08jkwpz3scirbdr0imkpzb9dqfhvmsdyafx"; depends=[dplyr ggplot2 MSEtool Rcpp RcppEigen TMB]; };
   DLPCA = derive2 { name="DLPCA"; version="0.0.5"; sha256="1fjpkn32rx8m18k6pr2cf180wqr01f9kviqibwsghnkrhbzcgpiy"; depends=[]; };
   DMCfun = derive2 { name="DMCfun"; version="3.5.4"; sha256="0kw0hzg5hwj76yz02ws62dmji7ggjm5isnh4blfhw55fsn7b6aic"; depends=[BH DEoptim dplyr pbapply Rcpp tidyr]; };
-  DMLLZU = derive2 { name="DMLLZU"; version="0.1.1"; sha256="0ck87abcd5gkq69q1g5g0yshfhx94m3vgayvxgzgnkidn9mivx22"; depends=[caret gbm ISLR lmtest nnet randomForest rlang sandwich]; };
   DMMF = derive2 { name="DMMF"; version="0.5.2.0"; sha256="0bda65253q45m9bj923zylafnlwnxwyyk730pjqynz11z8vyibj6"; depends=[raster]; };
   DMQ = derive2 { name="DMQ"; version="0.1.2"; sha256="1ygaqznvblzr3r1x7zl1l8sazh3sbs1zgagawwlwl42g8sdl57az"; depends=[DEoptim MASS Rcpp RcppArmadillo Rsolnp]; };
   DMRnet = derive2 { name="DMRnet"; version="0.4.0"; sha256="11niqsnkyrcwsirrsjp7gkdcjgdlddah92i5mndw4idadjg0cnrc"; depends=[glmnet grpreg hclust1d]; };
@@ -1192,13 +1221,13 @@ in with self; {
   DMtest = derive2 { name="DMtest"; version="1.0.0"; sha256="1bziiyv63lcbmd79fykjj6b63igbbw0pwiq37k7q9l5vij6jfcj9"; depends=[doParallel foreach matrixStats]; };
   DMwR2 = derive2 { name="DMwR2"; version="0.0.2"; sha256="1vzfbz2k05j8r2hpig3d2grb99rnnh2s1sviii3prcyqicxfh0i9"; depends=[class DBI dplyr quantmod readr rpart xts zoo]; };
   DNAmixturesLite = derive2 { name="DNAmixturesLite"; version="0.0-1"; sha256="14f373an89ra7v2q3mlc4s7svriydzs7jp8zp3arsbg4ali1g037"; depends=[gRaven gRbase Matrix numDeriv Rsolnp]; };
+  DNAmotif = derive2 { name="DNAmotif"; version="0.1.0"; sha256="0w7fzvssnvymrpx3444svawkags6bvcbajasvk5n0fvyyx1i1jhz"; depends=[Biostrings Rcpp]; };
   DNAseqtest = derive2 { name="DNAseqtest"; version="1.0"; sha256="1mpmf40vrpw8m75rlqchsnyrz12pgg5bkz7wfca5yy5sbbiwk5pf"; depends=[]; };
   DNAtools = derive2 { name="DNAtools"; version="0.2-4"; sha256="1xcpp5jw5xq6a6ccq8jsd4d7ailv3iv8k7b1bbz531vhy9im2dzs"; depends=[multicool Rcpp RcppParallel RcppProgress Rsolnp]; };
   DNH4 = derive2 { name="DNH4"; version="0.1.12"; sha256="0g3ibacsbsk34b6411j3n3q9dxqq1iqdnisppmmq7s2bp94ab771"; depends=[httr rvest tibble tidyr]; };
   DNLC = derive2 { name="DNLC"; version="1.0.0"; sha256="05410xgpfjsydjmnzry454qcjpws9vhh252q2xq7l0scdj87ly00"; depends=[caTools fdrtool GOstats igraph locfdr mvtnorm spdep]; };
   DNMF = derive2 { name="DNMF"; version="1.4.2"; sha256="10zzbi0jywlnq4hxqb0dh7xrn8gj75asd4yc1mcl2dbjpi68sn56"; depends=[doParallel foreach gplots Matrix]; };
   DNetFinder = derive2 { name="DNetFinder"; version="1.1"; sha256="1hd3yx3f71rwxn2iqjk7v3vwb6p3z20fi09csnhjkq5l3wk4bkp9"; depends=[flare]; };
-  DOBAD = derive2 { name="DOBAD"; version="1.0.6"; sha256="0ifrrfm4yp1416z58qgnak042rgj1xvqby2vvzgrv19z6b3250p3"; depends=[lattice Matrix numDeriv]; };
   DOEM = derive2 { name="DOEM"; version="0.0.0.1"; sha256="0xfc4wzbh7gp4c8y7141kyycjxy5avjc8wwxzqyvf70l2if7x4id"; depends=[]; };
   DOPE = derive2 { name="DOPE"; version="2.1.0"; sha256="1ccg0sgxvv4c9522f2wynp9j37cnlf4gdaymxgi1jxdlikm3ls5r"; depends=[dplyr magrittr stringr tibble tidytext]; };
   DOS = derive2 { name="DOS"; version="1.0.0"; sha256="0vvkwn4wfvspbk74nb6124hdx9158h6yfksib14xqq7rx7c97ad4"; depends=[MASS]; };
@@ -1212,17 +1241,18 @@ in with self; {
   DPP = derive2 { name="DPP"; version="0.1.2"; sha256="1qalcm4gwh03qpy07d0p323ccq8xmk04v6z30g7wg6ic613bqg7m"; depends=[coda Rcpp]; };
   DPQ = derive2 { name="DPQ"; version="0.5-8"; sha256="0wdhx937dp2lmcqzf64jrbg7a20r6rjvdjrpyzn072r94zn2r4dz"; depends=[sfsmisc]; };
   DPQmpfr = derive2 { name="DPQmpfr"; version="0.3-2"; sha256="0inj9i876bx2d9pvbazl0q1x2anc4raknay4y9iqkqskm72pwkvp"; depends=[DPQ gmp Rmpfr sfsmisc]; };
+  DPTM = derive2 { name="DPTM"; version="1.3.8"; sha256="01zc74g7pyh9xbb11gisrszzdhxx1902970ka30ivzcwvi81243s"; depends=[BayesianTools coda MASS parabar purrr Rcpp RcppEigen]; };
   DPpack = derive2 { name="DPpack"; version="0.1.0"; sha256="1kip6n4pxpk5byjdn5m6l8s5l49dvkh78wn6n85dri0c2snkvs17"; depends=[dplyr e1071 ggplot2 MASS nloptr R6 Rdpack rmutil]; };
   DPtree = derive2 { name="DPtree"; version="1.0.1"; sha256="0d7zf695lwkx4gv50f08cbi3p3mjjay0qgrbmvybf9m15i4zmyd7"; depends=[MASS MCMCpack plyr Rdpack]; };
-  DQAgui = derive2 { name="DQAgui"; version="0.2.3"; sha256="1wizx8wdqkl5vzk0bmmgzcbih0flp8bvdgy252ybfi5m8x3xczvr"; depends=[data_table daterangepicker DIZtools DIZutils DQAstats DT jsonlite knitr lubridate magrittr parsedate shiny shinyalert shinydashboard shinyFiles shinyjs shinyWidgets waiter]; };
-  DQAstats = derive2 { name="DQAstats"; version="0.3.3"; sha256="0k7npkzi5zcf8a2lz0hhdxahmblcqplbzqxh2i92gqssxz06x0x5"; depends=[data_table DIZtools DIZutils future future_apply jsonlite kableExtra knitr magrittr parsedate rmarkdown tinytex]; };
+  DQAgui = derive2 { name="DQAgui"; version="0.2.4"; sha256="05qik0zm7ghrn75msrkfi20lxdk9bqjvwwf765ajpfaph5wmmxk5"; depends=[data_table daterangepicker DIZtools DIZutils DQAstats DT jsonlite knitr lubridate magrittr parsedate shiny shinyalert shinydashboard shinyFiles shinyjs shinyWidgets waiter]; };
+  DQAstats = derive2 { name="DQAstats"; version="0.3.5"; sha256="0slp3kq2g4djdfxqx40afxcycyncmdxw757pyrm8anfnpxx4rdvz"; depends=[data_table DIZtools DIZutils future future_apply jsonlite kableExtra knitr magrittr parsedate quarto tinytex]; };
   DR_SC = derive2 { name="DR.SC"; version="3.4"; sha256="076halm823dlrj95hqq3ibdb645vd2w68mixi36wdnh7ngr7ih1f"; depends=[CompQuadForm cowplot ggplot2 GiRaF irlba MASS Matrix mclust purrr RColorBrewer Rcpp RcppArmadillo S4Vectors Seurat spatstat_geom]; };
   DRAYL = derive2 { name="DRAYL"; version="1.0"; sha256="0cf5pyx6nwh8srdylpnmymv3dr67fm6qqpwd1hvj1wmyfc8fznpp"; depends=[cubature pracma RConics rmutil]; };
   DRDID = derive2 { name="DRDID"; version="1.0.6"; sha256="1grhnk0b6v5c31497mfr9b4n2fn3flkw40r3lznhxgn2psphpjz7"; depends=[BMisc trust]; };
   DRDRtest = derive2 { name="DRDRtest"; version="0.1"; sha256="1vrvwr441w526a80s0r2fwqlllvn05ir8v2152jz2wxrwhnpq1s0"; depends=[KernSmooth SuperLearner]; };
   DREGAR = derive2 { name="DREGAR"; version="0.1.3.0"; sha256="15cplshs85r0z659mc7xmj5db7vc95wxs01c34isc22p8z0a287i"; depends=[msgps]; };
   DRHotNet = derive2 { name="DRHotNet"; version="2.3"; sha256="0r7lbzmk05k65kgasz3ka1ic4hqdv65yryf2vz5c4x1yrqvsh9sg"; depends=[PBSmapping raster sp spatstat spatstat_geom spatstat_linnet spdep]; };
-  DRIP = derive2 { name="DRIP"; version="1.9"; sha256="0zpk80rs2w0yizfyz9hs1npbajyvz883zwbhylipp52wyzzq62m2"; depends=[]; };
+  DRIP = derive2 { name="DRIP"; version="2.0"; sha256="18cais2n8kx1hpb66kqpjlvjx750rhgfvx4h4jjixmb8aqnf7p48"; depends=[]; };
   DRR = derive2 { name="DRR"; version="0.0.4"; sha256="1y70si1gig4l7jx5jiqsqliyywfsvimkx53x3zh1lc3yj2j6bqwk"; depends=[CVST kernlab Matrix]; };
   DRaWR = derive2 { name="DRaWR"; version="1.0.3"; sha256="1pschc911zrcgy6vmh9aylz79qfifxvxrm5gxwah7xv50plpar78"; depends=[Matrix ROCR]; };
   DRomics = derive2 { name="DRomics"; version="2.5-2"; sha256="0nzxrsgid7w63ybya389nqn8bqkbp29fiz2g6v3nhk5l2hr001p6"; depends=[DESeq2 ggfortify ggplot2 limma rlang SummarizedExperiment]; };
@@ -1232,7 +1262,7 @@ in with self; {
   DSAIRM = derive2 { name="DSAIRM"; version="0.9.6"; sha256="0zp5dcfdzrywp252d1dcyvaxn8lygqs7hzxk0v9yzgahrbxnlvw9"; depends=[adaptivetau boot deSolve dplyr ggplot2 gridExtra lhs nloptr plotly rlang shiny XML]; };
   DSAM = derive2 { name="DSAM"; version="1.0.2"; sha256="1bm7wicpq372xnwlib18434cid90vy575zc4f4xgsy2vsm8f87ym"; depends=[caret kohonen Matrix pROC xgboost]; };
   DSBayes = derive2 { name="DSBayes"; version="2023.1.0"; sha256="0sk5xfs13jxy4n3qgifh75bry1b53mm9gk1x14mpy2vw359cbqx4"; depends=[BB]; };
-  DSI = derive2 { name="DSI"; version="1.5.0"; sha256="1q89abff6fypafs7w0jrcyh9prcv3ibwr0bym9zlav0lfdbqwhcq"; depends=[progress R6]; };
+  DSI = derive2 { name="DSI"; version="1.6.0"; sha256="0i8035zw2a8d8l9qm4zcm73102k89sifma3pdk3q6mdm1iqgxjxg"; depends=[progress R6]; };
   DSL = derive2 { name="DSL"; version="0.1-7"; sha256="05wj3zypr2kqfbka930qnwnk2r43pqi13pbs5n6lm8vdq4zjblw4"; depends=[]; };
   DSLite = derive2 { name="DSLite"; version="1.4.0"; sha256="1xc9igwsxwiirg40br1qckai0lzhijfnpdrxg94r38hngb7r5cy2"; depends=[DSI R6 rly]; };
   DSMolgenisArmadillo = derive2 { name="DSMolgenisArmadillo"; version="2.0.5"; sha256="0bz0gkymd49sswwkj9hq9b6d0dcny74r70fsbpr2s189j5kx98ns"; depends=[base64enc DSI httr MolgenisAuth stringr urltools]; };
@@ -1242,11 +1272,11 @@ in with self; {
   DSWE = derive2 { name="DSWE"; version="1.8.2"; sha256="0xbhbiiq0mhqspxlgzlnrq2zm3gnb8n4rj285rdgq4cbpmfrly6l"; depends=[dplyr e1071 FNN gss KernSmooth matrixStats mixtools Rcpp RcppArmadillo xgboost]; };
   DSjobtracker = derive2 { name="DSjobtracker"; version="2.0.0"; sha256="09n7gxks3j2gx0yyzdnpxa6ncg2hv48v503z1d3qk3fwvcd6r0s1"; depends=[]; };
   DSpoty = derive2 { name="DSpoty"; version="0.1.0"; sha256="18z8gk3zj7k2szxg9579qy5klrqjw6zsk5x9jmwrv4qhb98fyji6"; depends=[dplyr httr purrr stringr]; };
-  DT = derive2 { name="DT"; version="0.32"; sha256="0nvj2bc441b9h13085fa7q281f86lgx4k0d8lr64xgdpbmbvkl21"; depends=[crosstalk htmltools htmlwidgets httpuv jquerylib jsonlite magrittr promises]; };
-  DTAT = derive2 { name="DTAT"; version="0.3-6"; sha256="0ll11763c03xll02727jwm637vbq438vivr88f45nbwrpsk9nb34"; depends=[data_table dplyr Hmisc jsonlite km_ci pomp r2d3 shiny survival]; };
+  DT = derive2 { name="DT"; version="0.33"; sha256="1f17gdqjk1aj7vwjvv3363k8lnsvc6ssh4s3gy1prnz33kdxlig1"; depends=[crosstalk htmltools htmlwidgets httpuv jquerylib jsonlite magrittr promises]; };
+  DTAT = derive2 { name="DTAT"; version="0.3-7"; sha256="0rh09bdygqwzdlx0girs2ir5dy3jd3r2m4xia46njxvh3jld5vsg"; depends=[data_table dplyr Hmisc jsonlite km_ci pomp r2d3 shiny survival]; };
   DTAXG = derive2 { name="DTAXG"; version="0.1.0"; sha256="1jxa0ix0z35i0xdnjl698j8iqjmp6nz8ckah9bap5ay9rkq0xd7f"; depends=[]; };
   DTAplots = derive2 { name="DTAplots"; version="1.0.2.5"; sha256="1jwfh8j8ahaj2z19g2f70r652j77q4f0b7j91mggsb0dgk449342"; depends=[]; };
-  DTComPair = derive2 { name="DTComPair"; version="1.2.2"; sha256="068ilw98lj4f11gi5fxc8lv6ymi86mahrkhfiagjdrmgcgpcai5w"; depends=[ellipse gee PropCIs]; };
+  DTComPair = derive2 { name="DTComPair"; version="1.2.4"; sha256="1p1s0fslylykhmvwc962jcifkbb77ah0lxah596akvxlyrqkjpqk"; depends=[ellipse gee PropCIs]; };
   DTDA = derive2 { name="DTDA"; version="3.0.1"; sha256="1x65ahrci7n8v5d6nfz2p3p1x0zjam3a2mvw9m1rpdmfgbalpim7"; depends=[doParallel foreach]; };
   DTDA_cif = derive2 { name="DTDA.cif"; version="1.0.2"; sha256="12vkhqxdhir06s35kr76dwns9m02wyicz3mv4r56fqglsfyw77xr"; depends=[doParallel foreach Rcpp]; };
   DTDA_ni = derive2 { name="DTDA.ni"; version="1.0.1"; sha256="0lv8k37n271zcmp5mxxc6z03bx283lnc4iz3zz1k2mnfzq2wrahz"; depends=[]; };
@@ -1259,7 +1289,7 @@ in with self; {
   DTWBI = derive2 { name="DTWBI"; version="1.1"; sha256="06lp4yc5nhacrgic78l014g2w1ibwgs8dp8zrahk5aripaczl25y"; depends=[dtw e1071 entropy lsa rlist]; };
   DTWUMI = derive2 { name="DTWUMI"; version="1.0"; sha256="0pybgbfs2yp2ljbs0kra5z70x3llkiwdngp6cadgs3j9rar4vq4q"; depends=[dtw DTWBI e1071 entropy lsa rlist]; };
   DTwrappers = derive2 { name="DTwrappers"; version="0.0.2"; sha256="028n1211h9gmv050xfiw347x59gykb6ndvd371fdf53bbkqirqa4"; depends=[data_table]; };
-  DTwrappers2 = derive2 { name="DTwrappers2"; version="0.0.2"; sha256="0chc4is8bz39k70jdd4m7rkrj4yg6ccvvr99alj1dh9iwip45g3b"; depends=[data_table DTwrappers]; };
+  DTwrappers2 = derive2 { name="DTwrappers2"; version="0.0.3"; sha256="06dz7i5hddqwj307fmkp93v7c4r0nvbi3bi9j4hqx77z7bdy2m8j"; depends=[data_table DTwrappers]; };
   DVHmetrics = derive2 { name="DVHmetrics"; version="0.4.2"; sha256="0dxbjqiqhzjrv867qhxmqavzklq0j3qjv4qwdacyrq8faz82vhv7"; depends=[DT ggplot2 KernSmooth reshape2 shiny]; };
   DWDLargeR = derive2 { name="DWDLargeR"; version="0.1-0"; sha256="1bxdvgj38xv2xj98njpyhy12b54nccwnc3v92kkpd3i7nwbw48dy"; depends=[Matrix SparseM]; };
   DWLS = derive2 { name="DWLS"; version="0.1.0"; sha256="02fd5q91shwjzc6bxqv4m8al7q1vl0mah6niymij37p69wlixy42"; depends=[dplyr e1071 MAST quadprog reshape ROCR Seurat SummarizedExperiment varhandle]; };
@@ -1269,7 +1299,7 @@ in with self; {
   DYNATE = derive2 { name="DYNATE"; version="0.1"; sha256="172lm5k0hz774a0d2s1hs86q7q50s6n4i4ba8jddy3l5a1gqkpd4"; depends=[data_table dplyr Matrix reshape2 tibble tidyverse]; };
   DamiaNN = derive2 { name="DamiaNN"; version="1.0.0"; sha256="09viy1lilz0b29s3myky03981bfnhxjxxgfhdah33cn5x682rbp4"; depends=[caret testthat]; };
   DandEFA = derive2 { name="DandEFA"; version="1.6"; sha256="1ir1z76c8742vqdlwv35l4rhr0x7lhghz24g35zn7b30671lypf8"; depends=[gplots polycor]; };
-  DanielBiostatistics10th = derive2 { name="DanielBiostatistics10th"; version="0.1.10"; sha256="0adaa1wm079mbikz5dd3f307s356iyckffbm0h3d8jcj335by6pr"; depends=[e1071 ggplot2 ggrepel latex2exp pracma scales]; };
+  DanielBiostatistics10th = derive2 { name="DanielBiostatistics10th"; version="0.2.2"; sha256="08wrhzsv8w7ivvxzrmnwic3yzywls6kx1gg1lxsg1s7mqrxzx9w8"; depends=[e1071 pracma]; };
   Dark = derive2 { name="Dark"; version="0.9.8"; sha256="1f01aq4g50f07005c8k91cfy9hvl3fmb4yl2924d7512m3884xlv"; depends=[]; };
   DarkDiv = derive2 { name="DarkDiv"; version="0.3.0"; sha256="0cjf5rpn4myd21rh04bk2gjk65rjx77mn8mxy4ym704fiycrsj87"; depends=[vegan]; };
   Dasst = derive2 { name="Dasst"; version="0.3.4"; sha256="1q18wss5bla3hvhnvmwxpd8lbs6fpdkqf5bfiqva050hsdfq1fk7"; depends=[]; };
@@ -1282,6 +1312,7 @@ in with self; {
   DataGraph = derive2 { name="DataGraph"; version="1.2.14"; sha256="1vj008c6l1k738kp8f9vmwm6b9jnyjgix389nqgbfq8ia98qgz0k"; depends=[Rcpp]; };
   DataLoader = derive2 { name="DataLoader"; version="1.3"; sha256="18mih6mb95v5xjvmqwby2mma74fcxwyqdm5w8j3bhi4iwgfn6d7v"; depends=[plyr rChoiceDialogs readxl xlsx]; };
   DataMetProcess = derive2 { name="DataMetProcess"; version="1.0.1"; sha256="1dfi96l3cj1pmj747pznrp5glpibkngzwwcs8y3ihk8p1vqjj7sp"; depends=[dplyr lubridate rlang tidyr]; };
+  DataPackageR = derive2 { name="DataPackageR"; version="0.16.0"; sha256="0sm3b5xjj6dx4ckjdzklxr5j386iaiczx6xass4azkjwvj2y5bvb"; depends=[crayon desc digest futile_logger knitr pkgbuild pkgload rmarkdown roxygen2 rprojroot usethis yaml]; };
   DataSetsUni = derive2 { name="DataSetsUni"; version="0.1"; sha256="0dbi0jgzh2qxwsid9yp4mdwhrm7mcksx8jvpa91qfnfc26ipdw6n"; depends=[]; };
   DataSpaceR = derive2 { name="DataSpaceR"; version="0.7.6"; sha256="1asrslqmk4sjj99x8pb01yfrw57p64zc6klrk2ghz4g44fr9d0pq"; depends=[assertthat curl data_table digest httr jsonlite R6 Rlabkey]; };
   DataVisualizations = derive2 { name="DataVisualizations"; version="1.3.2"; sha256="0y8mwgnh3cjapb97a0i4f16nrdhmkd80f6j7z0ivykgfka7jlbqr"; depends=[ggplot2 pracma Rcpp RcppArmadillo reshape2 sp]; };
@@ -1290,25 +1321,26 @@ in with self; {
   DatabaseConnectorJars = derive2 { name="DatabaseConnectorJars"; version="1.1.0"; sha256="18m6ynj30r5xdy51b3s39h0jcz1k2wgka888skr6ds2233lhqk2w"; depends=[rJava]; };
   DatabionicSwarm = derive2 { name="DatabionicSwarm"; version="1.2.1"; sha256="1qdm4na1s4wc8s7j9vp8g8l9lmhqlpzyafkjmm9jzl7wqlgz5ibr"; depends=[deldir GeneralizedUmatrix Rcpp RcppArmadillo RcppParallel]; };
   DatastreamDSWS2R = derive2 { name="DatastreamDSWS2R"; version="1.9.7"; sha256="117ahby12i6w93rk41f4cg0v179nk3gr73729v1iclkagizi8hpp"; depends=[dplyr foreach httr jsonlite stringi stringr xts zoo]; };
+  DatastreamR = derive2 { name="DatastreamR"; version="2.0.4"; sha256="05dafwxfwyzxxwhyaxfqlhwrgpm4kysnrm1ls3fr4rkqa96z7mwv"; depends=[httr ini jsonlite logger stringr]; };
   DateTimeRangePicker = derive2 { name="DateTimeRangePicker"; version="1.1.0"; sha256="1g5gjbwb1h1407bwg5yzrpal2syk5439l73svsjjzs6y55dpixsg"; depends=[htmltools lubridate reactR shiny]; };
   Davies = derive2 { name="Davies"; version="1.2-0"; sha256="0n2pqipv0b1w2zjvycms0kyk7h8ps49f5jlzgyxhy9dlyr0ivaml"; depends=[mathjaxr]; };
   DeBoinR = derive2 { name="DeBoinR"; version="1.0"; sha256="0brwk24q2wgmn38y1w1rish8dfdbv10xdzmm2k1drdwgsn72hxis"; depends=[dplyr ggplot2 gridExtra KernSmooth pracma]; };
   DeCAFS = derive2 { name="DeCAFS"; version="3.3.3"; sha256="0dj32rck6ssyv82d8b75qgsqw319q02iqd3xxazy6251wcjn321i"; depends=[ggplot2 Rcpp robustbase]; };
   DeRezende_Ferreira = derive2 { name="DeRezende.Ferreira"; version="0.1.0"; sha256="05c99z3hlwwm0p02cl9z6gjwfxfq2b2qn90l85270bi16llgf42h"; depends=[xts]; };
   DebiasInfer = derive2 { name="DebiasInfer"; version="0.2"; sha256="02r1pc5s1vwnvz6cxb2gkc3x4x9vw8nb2zw1z8hyyxp5n8n8d2mf"; depends=[caret CVXR]; };
-  DeclareDesign = derive2 { name="DeclareDesign"; version="1.0.8"; sha256="1d6wm21y2h2zx9wnb8f6xi1zg9075y057kl7xln507295c0k5bha"; depends=[estimatr fabricatr generics randomizr rlang]; };
+  DeclareDesign = derive2 { name="DeclareDesign"; version="1.0.10"; sha256="0f1c1zkg4cd980b6fgh7dy4vfmwnacy3r98cwmwz99fkg7gcjvnl"; depends=[estimatr fabricatr generics randomizr rlang]; };
   DecomposeR = derive2 { name="DecomposeR"; version="1.0.6"; sha256="0f5bagmn0s15qhw0c7fiv96r2ih365fak1rz3pxfnaqmm20l2j8i"; depends=[colorRamps dplyr hexbin StratigrapheR tictoc usethis]; };
   DecorateR = derive2 { name="DecorateR"; version="0.1.2"; sha256="1za2qvdq96f75rmnm421xmq8s01ny4666ghv14i72iy3s4ml2hq9"; depends=[rJava RWeka RWekajars]; };
   Deducer = derive2 { name="Deducer"; version="0.7-9"; sha256="14kakyf28i654pndlswjzp6h3h7szpznrg6xznqg150mmn0bs3s6"; depends=[car e1071 effects foreign ggplot2 JGR MASS multcomp plyr rJava scales]; };
   DeductiveR = derive2 { name="DeductiveR"; version="1.0.0"; sha256="0bx1ad2gw0pf03z0im31mzaa26jxwws6fkbcj319kd8b4s4wp92y"; depends=[dplyr ggplot2 moments reshape2]; };
-  Delaporte = derive2 { name="Delaporte"; version="8.3.0"; sha256="1g499xrb3hhd9xrzbxm1d911hm06mfn119xxmcr6f47vsz15ksvy"; depends=[]; };
+  Delaporte = derive2 { name="Delaporte"; version="8.4.0"; sha256="1jqz2qxig35rhmwvazmsl3a081dylfq2jfz3bjpj61y4c55mnwar"; depends=[]; };
   DelayedEffect_Design = derive2 { name="DelayedEffect.Design"; version="1.1.3"; sha256="0iplpnhxzipvyk89dn13hi0pw1yqfbi8dm4dp2xmvn3avk76pjgs"; depends=[]; };
   Delta = derive2 { name="Delta"; version="0.2.0.3"; sha256="0bi9qca4ky481zycp8r7ihvqfjkpvi7hb9wrjsw9avawqa6ck9bv"; depends=[]; };
   DeltaMAN = derive2 { name="DeltaMAN"; version="0.5.0"; sha256="08barq4s7m3migjs80207n6l10pr3v2hb1dy72fi59j9x9xgnn4v"; depends=[knitr shiny shinyBS shinyMatrix xtable]; };
   DemoDecomp = derive2 { name="DemoDecomp"; version="1.0.1"; sha256="0m24ld8s3ph8qcbkqma5y5k5nv0d0vgb7wz8q20gxnfbj2kbcvjv"; depends=[Rdpack]; };
   DemoKin = derive2 { name="DemoKin"; version="1.0.3"; sha256="0ph60ifffg29a88f9qxkx6zvcv8rxl1q5wd39j5zz2fqm3ggz47v"; depends=[data_table dplyr igraph lifecycle magrittr MASS Matrix matrixcalc progress purrr tidyr]; };
   DemografixeR = derive2 { name="DemografixeR"; version="0.1.1"; sha256="16qd1wbzizvg86bqkk8fvb53g6h30l5v99cjxpnr43qf0r4drz3j"; depends=[httr jsonlite magrittr]; };
-  DemographicTable = derive2 { name="DemographicTable"; version="0.1.6"; sha256="0399k4gbrh4chi9v2bq9f3lggipdjax3lpzf6x4g8agp5927fyr8"; depends=[e1071 flextable xtable]; };
+  DemographicTable = derive2 { name="DemographicTable"; version="0.1.8"; sha256="1nsq0hcb5s6garwjnknnab92fn5w5z721m3ai4j91nbwcs08jwqj"; depends=[e1071 flextable xtable]; };
   DendSer = derive2 { name="DendSer"; version="1.0.2"; sha256="1naz8sx5ksb3gqhgfsgdsf5377c96za829m7lmbpr7zlzlxg5jyf"; depends=[gclus seriation]; };
   DendroSync = derive2 { name="DendroSync"; version="0.1.4"; sha256="0jypfdjcjqv2vd3l52hq696gdni303dw5l0nq9hhngc18v2imqa2"; depends=[ggplot2 gridExtra nlme]; };
   DensParcorr = derive2 { name="DensParcorr"; version="1.1"; sha256="1ifkg7cpimf27yhr60rks77r16kmhwa5h10wv7b64sbfncnyzfmj"; depends=[clime gplots]; };
@@ -1338,7 +1370,7 @@ in with self; {
   DiPALM = derive2 { name="DiPALM"; version="1.2"; sha256="0y6nzf7lkf0znp88r7k0myf5k1c7cqcc2gh5kgzj5q8savhr90ax"; depends=[ggplot2 limma WGCNA]; };
   DiPhiSeq = derive2 { name="DiPhiSeq"; version="0.2.0"; sha256="11l2inf99vxz9k292307j8c2b25kc1066svy3vxrfl72rrm4fqa7"; depends=[]; };
   DiPs = derive2 { name="DiPs"; version="0.6.4"; sha256="148lbw5f62sm93n5bgn6rswqi3g7j6prdrscz56xalj65d3z1dz5"; depends=[mvnfast plyr rlemon]; };
-  DiSCos = derive2 { name="DiSCos"; version="0.0.1"; sha256="00i5hdnrm96plrmv2y55prpkp8sr0dpv0f7srxs2ip9rzxcna3ia"; depends=[CVXR data_table evmix extremeStat ggplot2 MASS pracma Rdpack]; };
+  DiSCos = derive2 { name="DiSCos"; version="0.1.0"; sha256="0n74v8r14ny1njbvlbbm4i275x7x923aw2v2wqag6d4q38w5237g"; depends=[CVXR data_table evmix extremeStat ggplot2 MASS pracma Rdpack]; };
   DiSSMod = derive2 { name="DiSSMod"; version="1.0.0"; sha256="199yipbc2sx2lsl51rpfyh80bfxaahfd2llqmfsp946gvj7339hv"; depends=[MASS matrixcalc psych sfsmisc]; };
   DiagrammeR = derive2 { name="DiagrammeR"; version="1.0.11"; sha256="1py4yii88lsyj8y71d2v0rb9lk5hvhfh0q8n2q4288wqw7bf6wz8"; depends=[cli dplyr glue htmltools htmlwidgets igraph magrittr purrr RColorBrewer readr rlang rstudioapi scales stringr tibble tidyr viridisLite visNetwork]; };
   DiagrammeRsvg = derive2 { name="DiagrammeRsvg"; version="0.1"; sha256="0j2cm1mx3zrb2k3pcrb96z2z3kws61gyyjsjjv5rqcb5lzdgi65k"; depends=[V8]; };
@@ -1354,21 +1386,22 @@ in with self; {
   DiffCorr = derive2 { name="DiffCorr"; version="0.4.3"; sha256="1wzk5lfkrz12xxmyapmq6midb6ld6p624i8qzf299dlfsz5i3n5h"; depends=[fdrtool igraph multtest pcaMethods]; };
   DiffNet = derive2 { name="DiffNet"; version="1.0.2"; sha256="1hil8p896vckgwmlr8vqkrwswclwh1hs8gxvk648gpahi1na1ssc"; depends=[assertthat igraph MASS]; };
   DiffXTables = derive2 { name="DiffXTables"; version="0.1.3"; sha256="0a0q1fz80jlcrk4rw70yjb8djxgsm5axih45vi4dqpg6n8xlrzw2"; depends=[pander Rdpack]; };
-  DirStats = derive2 { name="DirStats"; version="0.1.9"; sha256="0cj3ba2dzy7nvvs98mzj0c37hdn4lhxhrir27bhqfrjnmz13z08w"; depends=[movMF rotasym]; };
+  DirStats = derive2 { name="DirStats"; version="0.1.10"; sha256="1l4sxg5vlgnx30rcpwj9iw9kzl79cbwmarbip2n7bp7fpb8wsl3i"; depends=[movMF rotasym]; };
   Dire = derive2 { name="Dire"; version="2.2.0"; sha256="140qqpp0vhqw0vmzff58sx51nj21x61z063j4j23nrdrl3ylamcv"; depends=[foreach haven iterators lbfgs MASS Matrix Rcpp RcppArmadillo]; };
   DirectEffects = derive2 { name="DirectEffects"; version="0.2.1"; sha256="0cjqp4gam1psd11d6h99pi3ramnaybp6bij86wbgqji2icqlvghg"; depends=[Formula glue sandwich]; };
   DirectStandardisation = derive2 { name="DirectStandardisation"; version="1.3"; sha256="1qlfvzlig3a2v78fiq6sbbpxklmjczikxdw57m6mqngzrl9vdl2g"; depends=[]; };
   DirectedClustering = derive2 { name="DirectedClustering"; version="0.1.1"; sha256="1shdqz0c5bbgknvfqr3ais26cb5mpywnah3d3584w97sy8v7gxm2"; depends=[igraph]; };
-  Directional = derive2 { name="Directional"; version="6.5"; sha256="1cxp34vr9g2y7yn7gkb8m523q3ci3s0ycwn4p9xrp9fk8g6ymhm0"; depends=[bigstatsr doParallel foreach ggplot2 magrittr Rfast Rfast2 rgl Rnanoflann rnaturalearth sf]; };
+  Directional = derive2 { name="Directional"; version="6.6"; sha256="0fgwhah78psgd7fhjgk9rw1hyhfx9qbj93bznsjs6dhjkp9wyn4q"; depends=[bigstatsr doParallel foreach ggplot2 magrittr Rfast Rfast2 rgl Rnanoflann rnaturalearth sf]; };
   DirichletReg = derive2 { name="DirichletReg"; version="0.7-1"; sha256="1ql5mwb7zb06y9j6inrlngq7c15as4j17wd8kc71fxs0a2jdj7xi"; depends=[Formula maxLik]; };
   DisHet = derive2 { name="DisHet"; version="1.0.0"; sha256="056jcs1qpiyadnmlzd0cj4kp0qzkichxi0pdnxypyq1fsqnpvan3"; depends=[gtools matrixStats]; };
   DisImpact = derive2 { name="DisImpact"; version="0.0.21"; sha256="1vc2kwcb3cvcdbdg0s5qnjdzn8qa7lv6f86milhxdf609k2zwdkx"; depends=[collapse data_table DBI dplyr duckdb fst glue purrr rlang sets stringr tidyr tidyselect]; };
   DisaggregateTS = derive2 { name="DisaggregateTS"; version="2.0.0"; sha256="17d9mvznxysyybmnl5yz0sx15dxxry4vxpafp35s3sdlarg5jv39"; depends=[lars Matrix Rdpack withr zoo]; };
-  DiscreteDatasets = derive2 { name="DiscreteDatasets"; version="0.1.0"; sha256="1dbladgcaixsdd9javna0m0xrdi1f114k4vnl3fh508r3k31vj2l"; depends=[checkmate]; };
+  DiscreteDatasets = derive2 { name="DiscreteDatasets"; version="0.1.1"; sha256="0jpjky99cfb7h3i244n16llmgkrkbavbmyhz181fxiaiwzs7z66c"; depends=[checkmate]; };
   DiscreteFDR = derive2 { name="DiscreteFDR"; version="1.3.7"; sha256="0yph01q0aw7dfv3cmhv6mjb0vcphifzj1z9iddpw9zhkryadj7gg"; depends=[lifecycle Rcpp]; };
   DiscreteInverseWeibull = derive2 { name="DiscreteInverseWeibull"; version="1.0.2"; sha256="0vjsvl4m4zccfgizv7mzidbbpzqcm101x448vllcdcrn2xlnkmnq"; depends=[Rsolnp]; };
   DiscreteLaplace = derive2 { name="DiscreteLaplace"; version="1.1.1"; sha256="17w4vjvsm7jacvwckjczyah3hglq044r3m6vqdcrg8haz884rav2"; depends=[]; };
   DiscreteQvalue = derive2 { name="DiscreteQvalue"; version="1.1"; sha256="1xl6m3sf02v4y26375jn846ixzcxpqim1r6d4j56y8b5c243jg4h"; depends=[]; };
+  DiscreteTests = derive2 { name="DiscreteTests"; version="0.1.2"; sha256="1f487mx818qz8bp36lnb1lpcfcia7pzmvcxhh6zh0ak0d6xllc2g"; depends=[checkmate R6]; };
   DiscreteWeibull = derive2 { name="DiscreteWeibull"; version="1.1"; sha256="1rg3ax6jryagf5d3h8m44x9wyhr2qff3srfa9zrk6i64p1ahk9lr"; depends=[Rsolnp]; };
   DisimForMixed = derive2 { name="DisimForMixed"; version="0.2"; sha256="00mknsalikangr17946877m5fy2jgkgasgl6ng4f2nr44f0q9l6q"; depends=[cluster dplyr]; };
   DistPlotter = derive2 { name="DistPlotter"; version="0.0.2"; sha256="0aws4qs6802y42m07ca9m4i0lza282g6kfzx64q652y52md862gk"; depends=[colourpicker dplyr DT extraDistr ggplot2 rio scales shiny shinyalert shinyBS shinyjs shinyWidgets stringi stringr]; };
@@ -1390,7 +1423,7 @@ in with self; {
   DoseFinding = derive2 { name="DoseFinding"; version="1.1-1"; sha256="052ic1d7qlcvcglzskdv97v7dnbi2lh8xpkbxf9srqn3sgs812n3"; depends=[ggplot2 lattice mvtnorm]; };
   DoubleCone = derive2 { name="DoubleCone"; version="1.1"; sha256="1kbvsj93nn2306s6pgqiiznmlcn2nqsgcxinihl613ivczxhzpqg"; depends=[coneproj MASS Matrix]; };
   DoubleExpSeq = derive2 { name="DoubleExpSeq"; version="1.1"; sha256="00xpj5xmpgmvp6h76imkmghrnlfk6c50ydvv0jram6m6ix3z8323"; depends=[numDeriv]; };
-  DoubleML = derive2 { name="DoubleML"; version="1.0.0"; sha256="159j9iq3kdpa0s6x4acvl8002lgbnw5j4wh9jbr3dqndpixq965l"; depends=[checkmate clusterGeneration data_table mlr3 mlr3learners mlr3misc mlr3tuning mvtnorm R6 readstata13]; };
+  DoubleML = derive2 { name="DoubleML"; version="1.0.1"; sha256="0qk7zjpzz0dpzvczssfbp4gbqxazyxn0dsc8h9jnqb3syzdscc27"; depends=[checkmate clusterGeneration data_table mlr3 mlr3learners mlr3misc mlr3tuning mvtnorm R6 readstata13]; };
   Dowd = derive2 { name="Dowd"; version="0.12"; sha256="1fgaq22n7gm8pqxdfkiayqgjfqjn7knjjjr1x12jgv77cv08xyjk"; depends=[bootstrap forecast MASS]; };
   Dpit = derive2 { name="Dpit"; version="1.0"; sha256="02pnc00sk3bwxmxrg27638x0q62r7nsx2nr14zjjc5q880prdisv"; depends=[fitdistrplus gsl moments VGAM]; };
   DrBats = derive2 { name="DrBats"; version="0.1.6"; sha256="1623h8s6y4klq8xmj480ga2wl6n4c2f26v1dwysyvcrk6lnaghdm"; depends=[ade4 coda MASS Matrix rstan sde]; };
@@ -1399,17 +1432,19 @@ in with self; {
   DramaAnalysis = derive2 { name="DramaAnalysis"; version="3.0.2"; sha256="0nsnwais0r592c50nphfzkr1bbygl67mriwsx7dxbvmpdsswlvl1"; depends=[data_table git2r httr readr reshape2 stringr tokenizers xml2]; };
   DriftBurstHypothesis = derive2 { name="DriftBurstHypothesis"; version="0.4.0.1"; sha256="1pmsbv1rl79s520nxj536m8gf7xyfjskj8r88rxmxscbgp8c1xz2"; depends=[Rcpp RcppArmadillo xts zoo]; };
   DrillR = derive2 { name="DrillR"; version="0.1"; sha256="0n7pim5kk0wfdjcc67v4vvdb7wyhn5bcgi2a12nbyfyydss7pk1g"; depends=[httr]; };
-  DrugExposureDiagnostics = derive2 { name="DrugExposureDiagnostics"; version="1.0.4"; sha256="0maf6rf9hwh5ik2lc5lqvblgmrrrk5k1i67rpmx9d77b0dhc2k9r"; depends=[CDMConnector checkmate dplyr glue magrittr rlang tidyr tidyselect]; };
+  DrugExposureDiagnostics = derive2 { name="DrugExposureDiagnostics"; version="1.0.5"; sha256="1yy8wqprvqc0sa7nxw044g5j18vy395zkbfsr8ibdnbd4hzxvgkf"; depends=[CDMConnector checkmate dplyr DrugUtilisation glue magrittr omopgenerics rlang tidyr tidyselect]; };
   DrugSim2DR = derive2 { name="DrugSim2DR"; version="0.1.1"; sha256="1sphg3imdyr71amwqzmzzp6h1ai2m6rm87l08mv70i6jlznwf9kr"; depends=[ChemmineR fastmatch igraph pheatmap reshape2 rvest sp tidyr]; };
-  DrugUtilisation = derive2 { name="DrugUtilisation"; version="0.5.2"; sha256="1gpp2ccz4bm6x3qif7lzif8ds0cm818gh0fq6fjamvsid7iilcng"; depends=[CDMConnector checkmate cli DBI dbplyr dplyr glue lifecycle lubridate magrittr omopgenerics PatientProfiles purrr RJSONIO rlang tictoc tidyr visOmopResults]; };
+  DrugUtilisation = derive2 { name="DrugUtilisation"; version="0.6.1"; sha256="1b89g84xzdq8sc9nf8vc13x97cgbz0764j21gwkzasn693rn38ym"; depends=[CDMConnector checkmate cli DBI dbplyr dplyr glue lifecycle lubridate magrittr omopgenerics PatientProfiles purrr RJSONIO rlang tictoc tidyr visOmopResults]; };
   DstarM = derive2 { name="DstarM"; version="0.4.0"; sha256="0wm5kr2pkgbvh9svjq8zq46zn50hwf58rs3y1ybnwcfjc2q75h1s"; depends=[DEoptim ggplot2 Rcpp RcppArmadillo rtdists RWiener]; };
   DtD = derive2 { name="DtD"; version="0.2.2"; sha256="1czspjdxjhbfk2df7wk0x3d1ilwrjqw4s4gdc4hq0gjcjqyx0c39"; depends=[checkmate Rcpp RcppArmadillo]; };
+  Dtableone = derive2 { name="Dtableone"; version="1.1.0"; sha256="0pv04l4wxf44zva5w96i02g4z8zx3zgjxxjacfg0vh2f7gx4pjnq"; depends=[dplyr epiR irr pROC]; };
   Durga = derive2 { name="Durga"; version="2.0"; sha256="0iq29ga1cn5fnnj1b90pprqcldygmy695si0vq4pr8d59q029ah9"; depends=[boot RColorBrewer vipor]; };
+  DyMEP = derive2 { name="DyMEP"; version="0.1.2"; sha256="1jy2yrdih4c1c2d04qnx0z6m466djh91i5cpcbr23rbz0rqf2ig9"; depends=[]; };
   DySS = derive2 { name="DySS"; version="1.0"; sha256="1aa67m224bhzzg089rhxwqgbmwwq5py8ikix8khwraz5cnjz2f83"; depends=[ggplot2 gridExtra Rcpp RcppArmadillo]; };
   Dykstra = derive2 { name="Dykstra"; version="1.0-0"; sha256="1rc1409ky0ysqr3ccq28yhbs94m6d0z2dfa66k4c7irxjvbagwz6"; depends=[]; };
   DynClust = derive2 { name="DynClust"; version="3.24"; sha256="0nbbzx0ixblpcbjxx0gp7082nz6nh5vc2l5nzdfq1mqzlq9jy2xn"; depends=[]; };
   DynForest = derive2 { name="DynForest"; version="1.1.3"; sha256="0x78gbgzl4dad5g6w27cdfpngsykanv3lz3xffpqndd971wkzhiy"; depends=[cmprsk DescTools doParallel doRNG foreach ggplot2 lcmm pbapply pec prodlim stringr survival zoo]; };
-  DynNom = derive2 { name="DynNom"; version="5.0.2"; sha256="1zs8chdw83qjsi5k1m9cvk48swqz3gadycmhk4prxmjzwcl5z4i1"; depends=[BBmisc compare dplyr ggplot2 magrittr plotly prediction rms shiny stargazer survival]; };
+  DynNom = derive2 { name="DynNom"; version="5.1"; sha256="0nc1dw5ihqm819na1dd85v4wlpidvp5yk50rrsyp0labm8nkh0qv"; depends=[BBmisc broom compare dplyr ggplot2 magrittr plotly rms shiny stargazer survival]; };
   DynTxRegime = derive2 { name="DynTxRegime"; version="4.15"; sha256="18hk5bc6bsdjdl4736sdk896zblyc8l3ipjii4x2jksngcjvszbb"; depends=[dfoptim kernlab modelObj rgenoud]; };
   DynaRankR = derive2 { name="DynaRankR"; version="1.1.0"; sha256="1fzicainh1dm016cglm2x6j1i2g5r71vgrj0dnsflbxc5v426sqm"; depends=[dplyr rlang]; };
   DynamicGP = derive2 { name="DynamicGP"; version="1.1-9"; sha256="00hf3r39b9xid129kzgdnwdfrwrspxkz7dydgna3c5lrl7670paz"; depends=[lhs]; };
@@ -1419,7 +1454,7 @@ in with self; {
   E4tools = derive2 { name="E4tools"; version="0.1.1"; sha256="1kmj1fddybjia9ninhcy75kdmq152zjw7s24chpqr5wsblffr3yx"; depends=[accelerometry anytime BBmisc chron data_table DataCombine doParallel doSNOW foreach ggplot2 hms scales signal]; };
   EATME = derive2 { name="EATME"; version="0.1.0"; sha256="1bdiyrq1gay8mz3rkq2cwsw0x2b70i31gs79cyhxil2zh8jf25xf"; depends=[qcr]; };
   EAinference = derive2 { name="EAinference"; version="0.2.3"; sha256="1kzcfya3z6rf1vqjn72yjymdhrn4dzgmwifh3w6k22cy5jxffzn4"; depends=[hdi limSolve MASS msm mvtnorm Rcpp RcppArmadillo]; };
-  EBASE = derive2 { name="EBASE"; version="1.0.1"; sha256="1a0g91nclmmzfcffbgksb2w6yx6kj68f83knah4n7z3whscqsfik"; depends=[dplyr foreach ggplot2 lubridate R2jags rjags tidyr truncnorm zoo]; };
+  EBASE = derive2 { name="EBASE"; version="1.0.2"; sha256="0y36xsh639chsrzb3r6kla6mi34klrqb4x05ixhk4kh4jx2rb63i"; depends=[dplyr foreach ggplot2 lubridate R2jags rjags tidyr truncnorm zoo]; };
   EBCHS = derive2 { name="EBCHS"; version="0.1.0"; sha256="103k4y105dn8v5yb5xk520404sd7c05cxd9iwh2k2v18kbvg8pdp"; depends=[fda pracma]; };
   EBEN = derive2 { name="EBEN"; version="5.1"; sha256="13cvdx2mg1jhymvq49wm2rm1pajsd4ji274r7zaklcwy4lw5bml4"; depends=[]; };
   EBMAforecast = derive2 { name="EBMAforecast"; version="1.0.32"; sha256="01pv873d0sl0qzlgmqw4ahg5ym9gdjzbmzqlg593g5l935r3dgi4"; depends=[abind glue gtools Hmisc plyr Rcpp separationplot]; };
@@ -1442,7 +1477,7 @@ in with self; {
   EDMeasure = derive2 { name="EDMeasure"; version="1.2.0"; sha256="1gyv86vip0a3939dbbwz29xkqzncw24r68fzykdjnv3b995510iv"; depends=[dHSIC energy rBayesianOptimization]; };
   EDNE_EQ = derive2 { name="EDNE.EQ"; version="1.0"; sha256="13aflnpznpzjrrdrn0r7v2mch6hjd77s6c3l7mnc2p59vq7mzmpg"; depends=[MASS]; };
   EDOIF = derive2 { name="EDOIF"; version="0.1.3"; sha256="1lq4j5axybhv34mdsz0rn5nz9x3rzjf6bczzfzrf75k6pwqxim1w"; depends=[boot distr ellipsis ggplot2 igraph simpleboot]; };
-  EDOtrans = derive2 { name="EDOtrans"; version="0.2.2"; sha256="0n397z0nwz1my8d27dl5x61lzl5q1773lgqmxxj0a5a83i8srbx0"; depends=[ABCanalysis opGMMassessment]; };
+  EDOtrans = derive2 { name="EDOtrans"; version="0.2.5"; sha256="0qyg9gcpdh9fchn3ylww1cmb4x1zrrapy9n26gqxncc728526gn7"; depends=[ABCanalysis opGMMassessment]; };
   EEAaq = derive2 { name="EEAaq"; version="0.0.3"; sha256="0qs6sqiqwl33bjz9k8hlfsqaawq3cc0ygm73pc8h200c5jwdk94n"; depends=[aweek curl dplyr ggplot2 ggpubr gifski gstat htmlwidgets leaflet lubridate mondate raster readr sf stringr tibble tictoc tidyr]; };
   EEM = derive2 { name="EEM"; version="1.1.1"; sha256="0w20kakgcpyhfi7fcrss4w67pbaj87hi2scy7g05q3sg2ygac7gj"; depends=[colorRamps ggplot2 R_utils reshape2 sp]; };
   EEMDSVR = derive2 { name="EEMDSVR"; version="0.1.0"; sha256="0m28rrw7lg3sx2aviqphsid2rsp7zksd3fcvk7pxfw16z90y7ifd"; depends=[e1071 Rlibeemd]; };
@@ -1450,12 +1485,13 @@ in with self; {
   EEMDlstm = derive2 { name="EEMDlstm"; version="0.1.0"; sha256="0cilmbk100gym5kaa7fq8bx0cdqa07xk82kxgxjf4k6gyzs39nlh"; depends=[BiocGenerics keras magrittr reticulate Rlibeemd tensorflow TSdeeplearning tsutils]; };
   EESPCA = derive2 { name="EESPCA"; version="0.7.0"; sha256="0bj1wi1almj7rb7sad4i47mnfh4y83mbdd1x5clda6nd738adl2b"; depends=[MASS PMA rifle]; };
   EFA_MRFA = derive2 { name="EFA.MRFA"; version="1.1.2"; sha256="0p1zkfwjch9y39r7hjccjk7vfbnfwpdak6jfjs1sdpqkjqiw3r86"; depends=[ggplot2 PCovR psych reshape2 scales]; };
-  EFA_dimensions = derive2 { name="EFA.dimensions"; version="0.1.8.1"; sha256="0aprc5xzcl7p51qhkzcgh9yr0vb1270h5q9vdwmzlksx554cqcs9"; depends=[EFAtools GPArotation mirt polycor psych]; };
+  EFA_dimensions = derive2 { name="EFA.dimensions"; version="0.1.8.4"; sha256="0zc2zby69c70g6qkama27b9lnk5dbrrrpp5w5r2xxk2wfg1lx8nn"; depends=[EFAtools GPArotation mirt polycor psych]; };
   EFAtools = derive2 { name="EFAtools"; version="0.4.4"; sha256="1fzkmvadkcd88d81420lw9mhpmxbjymp4jada2c79bxq1h6b3mw2"; depends=[checkmate cli crayon dplyr future future_apply ggplot2 GPArotation lavaan magrittr progress progressr psych Rcpp RcppArmadillo rlang stringr tibble tidyr viridisLite]; };
   EFAutilities = derive2 { name="EFAutilities"; version="2.1.3"; sha256="09835x3nk8nnr3ibiddc5hx2l0jylz15fwsy2wjmv6jdrs0j9vsy"; depends=[GPArotation MASS mvtnorm plyr]; };
   EFDR = derive2 { name="EFDR"; version="1.3"; sha256="0mjf2r1aa5iyf4b9f50mb50h1rmhwdi3qyh235mihy3pj68195yn"; depends=[copula doParallel dplyr foreach gstat Matrix sp tidyr waveslim]; };
   EFS = derive2 { name="EFS"; version="1.0.3"; sha256="1q8cf8dnxpv5s3lr9145y0wjhak4rz18dzah4xfs5qr4c8nlpl54"; depends=[party pROC randomForest ROCR]; };
-  EGAnet = derive2 { name="EGAnet"; version="2.0.5"; sha256="14agbk2aggzyaqplfs32rd6rqisgww1b40xsvlacn4ii1dbiq3rf"; depends=[dendextend fungible future future_apply GGally ggplot2 ggpubr glasso GPArotation igraph lavaan Matrix network progressr qgraph semPlot sna]; };
+  EGAnet = derive2 { name="EGAnet"; version="2.0.6"; sha256="1mdnbxmpghk95wm3vy3m1yb0w39ym5v15cjznnyg17w7fy48mk3y"; depends=[dendextend fungible future future_apply GGally ggplot2 ggpubr glasso GPArotation igraph lavaan Matrix network progressr qgraph semPlot sna]; };
+  EGM = derive2 { name="EGM"; version="0.1.0"; sha256="0malpx9idfhhavlq5j4awdkicz8ww2gqsfrw5kwycbsvymb5bm2b"; depends=[base64enc checkmate data_table fs ggplot2 lifecycle rlang stringr vctrs xml2]; };
   EGRET = derive2 { name="EGRET"; version="3.0.9"; sha256="1if22yq5wyfd0sx5b38xw3fbj8qlmbnkikjq77ihxd3pzfjpdl14"; depends=[dataRetrieval fields foreach MASS survival truncnorm]; };
   EGRETci = derive2 { name="EGRETci"; version="2.0.4"; sha256="1g01a03smn5yp261cyk3x310m1mcv4bqyh8y123wam9gpa7dxrp6"; depends=[binom EGRET]; };
   EGRNi = derive2 { name="EGRNi"; version="0.1.6"; sha256="0wgdhlmnch6gpypqlwd5z56ia03lbbimr4ci9gcfs8f881dh92dy"; depends=[fdrtool gdata MASS readr]; };
@@ -1466,7 +1502,6 @@ in with self; {
   EKMCMC = derive2 { name="EKMCMC"; version="1.1.2"; sha256="0filw1xikbv55h7xswlqifd30d43b9y3h2m6i0zv8v54y8mmszfg"; depends=[numDeriv]; };
   EL = derive2 { name="EL"; version="1.2"; sha256="1ygvb8m33szf2xl6fcvyqhgpj7ppn4kc9wd1fcaq4ppbvv6c17ka"; depends=[]; };
   EL2Surv = derive2 { name="EL2Surv"; version="1.1"; sha256="0bn2481rf61qnia468y7k95hhazjaghrv919a2y9ar5wcz5nq2kk"; depends=[survival]; };
-  ELCIC = derive2 { name="ELCIC"; version="0.2.1"; sha256="1yflpbnqjcz47jyf3w32x5gra576q2f401p19zy0fz2cyradiggm"; depends=[bindata geepack MASS mvtnorm PoisNor wgeesel]; };
   ELISAtools = derive2 { name="ELISAtools"; version="0.1.5"; sha256="18f2adhw85f0hsz5gb6xhi0w2phcq364xy9y1jri6ckzs8g0pny7"; depends=[minpack_lm R2HTML stringi]; };
   ELMR = derive2 { name="ELMR"; version="1.0"; sha256="0pd3drv485xbdyfwm28kjpd0nd0zv1khfwzki1gh5p1gz9ndwr2x"; depends=[]; };
   ELMSO = derive2 { name="ELMSO"; version="1.0.1"; sha256="14wnrqrbbfb37f3wp91qib28bcanflw3asv1y0v748n36x1xbv3m"; depends=[]; };
@@ -1475,11 +1510,11 @@ in with self; {
   EM_Fuzzy = derive2 { name="EM.Fuzzy"; version="1.0"; sha256="0sz4zkjn6rdzdqmkq6j24bd4sj91y5lan31bldxdfskgz0jpzhbr"; depends=[DISTRIB FuzzyNumbers]; };
   EMAR = derive2 { name="EMAR"; version="1.0.0"; sha256="1i0jmxp1fckqvah6a08pgvn92dwg052bra3vp5wmwakk56cbyqih"; depends=[]; };
   EMAS = derive2 { name="EMAS"; version="0.2.2"; sha256="07y15nbym69iwdy9c5gcdalign7g8qw8hkcy1v29z6j2di6qzn84"; depends=[ggplot2 IlluminaHumanMethylation450kanno_ilmn12_hg19 IlluminaHumanMethylationEPICanno_ilm10b4_hg19 lavaan mediation minfi multilevel qqman]; };
-  EMAtools = derive2 { name="EMAtools"; version="0.1.4"; sha256="0gx55ddw7dz1lm599i0gj15dlc3m58a8rf223hiykszb5c8bi372"; depends=[anytime DataCombine ggplot2 lmerTest plyr sjstats]; };
   EMCluster = derive2 { name="EMCluster"; version="0.2-15"; sha256="1p8zfavx9waz3n4nkz8f6cd5hlcjb53r4wiwnrll5dx8zpfjj8g2"; depends=[MASS Matrix]; };
   EMD = derive2 { name="EMD"; version="1.5.9"; sha256="0lga27nl7c3h02xrbb2hcwlb9dyli340v0hb3vwwzqrhmr0fl806"; depends=[fields locfit]; };
   EMDANNhybrid = derive2 { name="EMDANNhybrid"; version="0.2.0"; sha256="17zkag633kh1xkcasvyimvd9w1dmy1hlnrfffb96v7qh35rc8q3n"; depends=[EMD forecast]; };
   EMDSVRhybrid = derive2 { name="EMDSVRhybrid"; version="0.2.0"; sha256="1vjr7aslvykbyz8aw2z5aqlqx1v3nv63hym6knygflkkpr9zsr30"; depends=[e1071 EMD]; };
+  EMJMCMC = derive2 { name="EMJMCMC"; version="1.5.0"; sha256="0wdqln3sdycml5hf5cgrasfp1llv61zzx45qswsjzynlk5g52qjp"; depends=[BAS biglm bigmemory glmnet hash speedglm stringi withr]; };
   EML = derive2 { name="EML"; version="2.0.6.1"; sha256="1k2chfz6qixa6jsikqgilqp8j49mcshn725ck1h77bacfxfhf7za"; depends=[digest dplyr emld jqr jsonlite rmarkdown uuid xml2]; };
   EMLI = derive2 { name="EMLI"; version="0.2.0"; sha256="0zwbbxsmkyrgmva5h8l78f181nz5asc7dpdcmajvj2y3yl1rb278"; depends=[]; };
   EMMAgeo = derive2 { name="EMMAgeo"; version="0.9.7"; sha256="1wz4zw45xfqbk589cpd188j7619h2ar2czfkisil9x8ksijfixls"; depends=[caTools GPArotation limSolve matrixStats shiny]; };
@@ -1493,7 +1528,7 @@ in with self; {
   EMSNM = derive2 { name="EMSNM"; version="1.0"; sha256="0rhaadzhq9jfpnwxfqcsb3yz96rqlwkm165k5n5jxzwxpg1rg2n0"; depends=[]; };
   EMSS = derive2 { name="EMSS"; version="1.1.1"; sha256="0zkr2xfvwlqxcfj59801vm54l38agipbkd9qgq6jkmqkdbkfv3yr"; depends=[mvtnorm sampleSelection]; };
   EMSaov = derive2 { name="EMSaov"; version="2.3"; sha256="1hpvwimhkl7za5s8j9n4a8883vy89jrxrhlh0k3cfprnndh4zz05"; depends=[shiny]; };
-  EMT = derive2 { name="EMT"; version="1.3"; sha256="0zmcakph88qg9f1p7icn4llw92nh1jfijxsx3rhl7g9d4rihprq5"; depends=[]; };
+  EMT = derive2 { name="EMT"; version="1.3.1"; sha256="0g4s99cbww9wi89acbpn8ggkfkf39nq0km0nhm5956r62sjw2wfr"; depends=[]; };
   EMbC = derive2 { name="EMbC"; version="2.0.4"; sha256="03vsyzq4zgv64yzazplj1sm3kgw0pdildcvi8w88b3d0rkjnhn5m"; depends=[mnormt RColorBrewer Rcpp RcppArmadillo sp suntools]; };
   EMgaussian = derive2 { name="EMgaussian"; version="0.2.1"; sha256="0gl3lfww7chwsvg16m5x6agbza4xx482b56wqccb9zqin0j89dfb"; depends=[caret glasso glassoFast lavaan Matrix matrixcalc Rcpp RcppArmadillo]; };
   EMpeaksR = derive2 { name="EMpeaksR"; version="0.3.1"; sha256="0hzw4hnisqa13h75faq4hdsmg3y6dlmfknbkql4mbdx4s3qb19fv"; depends=[]; };
@@ -1505,14 +1540,16 @@ in with self; {
   EQL = derive2 { name="EQL"; version="1.0-1"; sha256="0pa33h0f30l352m6ix296l55lvqxdaib666x2dwy9zx0lmk23w8m"; depends=[lattice ttutils]; };
   EQUIVNONINF = derive2 { name="EQUIVNONINF"; version="1.0.2"; sha256="08d74jm9my2p9r491v1hya7w2m9b4mf3vk812jsmrdfzdw3x47ab"; depends=[BiasedUrn]; };
   ER = derive2 { name="ER"; version="1.1.1"; sha256="1hsp5sqhnsz175nc2cq2w4g6dgld1429ib7w58piw6982b7m6zn6"; depends=[ggplot2 glmnet gridExtra pls plsVarSel scales]; };
+  ERDbuilder = derive2 { name="ERDbuilder"; version="1.0.0"; sha256="10dy9cb0dr3fcxl39r39adjcxafwc8mfcf32153lad8030d15y4w"; depends=[DiagrammeR dplyr]; };
   ERP = derive2 { name="ERP"; version="2.2"; sha256="17i04rgfj9crnvpi7mf2spwmaw9jgw4kn5fx6x9xbl9cvwwx6q4k"; depends=[corpcor fdrtool irlba mnormt pacman]; };
+  ERPM = derive2 { name="ERPM"; version="0.2.0"; sha256="1c2w61m7qp6ma4kfhgg0bxn4mkvcss340yq2vr7y5s1cbd082ndh"; depends=[igraph numbers RColorBrewer snowfall]; };
   ERPeq = derive2 { name="ERPeq"; version="0.1.0"; sha256="1619j6fgsg594fdbv9qk64rw2yqsy7wyj8qnwmpnmv66gxc5mqaq"; depends=[invgamma pracma rmutil VGAM]; };
   ERSA = derive2 { name="ERSA"; version="0.1.4"; sha256="1ri2v6qxdi9if10vxxhgj0jwk4whfi45aqqdqri918djg0dk75p1"; depends=[broom car combinat dplyr ggplot2 leaps miniUI purrr RColorBrewer rlang shiny tidyr]; };
   ESG = derive2 { name="ESG"; version="1.3"; sha256="1r454bn7wwc8nv9f1z0dfgn6kj9ac35b3i19xx385jhlqsm1akgw"; depends=[]; };
   ESTER = derive2 { name="ESTER"; version="0.2.0"; sha256="1jiyqq5hgqc754r434sik9jnlpw66xz56cjdf5ig95qkffzsg224"; depends=[brms cowplot doParallel dplyr foreach ggplot2 lme4 magrittr rlang tidyr]; };
   EScvtmle = derive2 { name="EScvtmle"; version="0.0.2"; sha256="0bp5ykqczj6zyb9g5rg9zwwdyvd3l530km927wwxdi862sh5ri5g"; depends=[dplyr ggplot2 gridExtra MASS origami stringr SuperLearner tidyselect]; };
   ETAS = derive2 { name="ETAS"; version="0.6.1"; sha256="1ivnv05cfbrrmglz319202nssghaq15h6l35k1pbal9gg7izd7xm"; depends=[fields goftest lattice maps Rcpp spatstat_explore spatstat_geom spatstat_random]; };
-  ETASbootstrap = derive2 { name="ETASbootstrap"; version="0.1.0"; sha256="0fianmqnbrscrkbqqg3lw53j0cczygrb3mhy80zcnsr0rmk02zj2"; depends=[ETAS MASS]; };
+  ETASbootstrap = derive2 { name="ETASbootstrap"; version="0.2.0"; sha256="1d0vdd3ldp2w6p15b8jj74l3fd28sjrcxhq1w4zdqh6r38m0cshg"; depends=[ETAS MASS spatstat_geom]; };
   ETC = derive2 { name="ETC"; version="1.5"; sha256="16ciff8bf2p56941r83y7405sp5pfms63dwjd232ih3mnznjpc0f"; depends=[mvtnorm]; };
   ETLUtils = derive2 { name="ETLUtils"; version="1.5"; sha256="0s0q4f3wzpdd87l3pnzysa8aq7zgz29589xnm65a6xfy9znbpzs3"; depends=[bit ff]; };
   EUfootball = derive2 { name="EUfootball"; version="0.0.1"; sha256="0h36cqi752zs32gs55rdniabldr8jph7gc1y2yb9983cl4mfrjv0"; depends=[]; };
@@ -1521,7 +1558,8 @@ in with self; {
   EVchargcost = derive2 { name="EVchargcost"; version="0.1.0"; sha256="1xwyclfaq50805n3h052vxlyhmiayy9338gqmx6vgj77s8fw3ds1"; depends=[cowplot ggplot2]; };
   EWGoF = derive2 { name="EWGoF"; version="2.2.2"; sha256="19gd9grjjdv6hilqj41g5qhz7m0ga40q88clwggbp5f0f1yd5sym"; depends=[Rcpp]; };
   EWS = derive2 { name="EWS"; version="0.2.0"; sha256="0rkxnc5pwrjgm2j201rg0z4nqb75rpkqh3hff4lvw1zmnr9flm6r"; depends=[numDeriv]; };
-  EWSmethods = derive2 { name="EWSmethods"; version="1.2.5"; sha256="1ci968fnid8f1c17idsahmmwzzly28x1603prcgdy0fdfmk5srbs"; depends=[curl dplyr egg foreach forecast ggplot2 gtools infotheo mAr moments rEDM reticulate scales tidyr zoo]; };
+  EWSmethods = derive2 { name="EWSmethods"; version="1.3.1"; sha256="16dk3p8km8s0ih4q2gdhvx0zakb3rh7ywz8shcy1g8yp0790bmwm"; depends=[curl egg foreach forecast ggplot2 gtools infotheo mAr moments rEDM reticulate scales zoo]; };
+  EXPAR = derive2 { name="EXPAR"; version="0.1.0"; sha256="0k6aq87k9ml3815zi5fvspaky6sd6qzbm3l8a80rgls2ha2886r9"; depends=[forecast]; };
   EXPARMA = derive2 { name="EXPARMA"; version="0.1.0"; sha256="120w491g925vzxriinfsgxs4kgx58dy4awb2knichsa4p1w5gvly"; depends=[forecast]; };
   EXRQ = derive2 { name="EXRQ"; version="1.0"; sha256="1iqsr52sl2j5q03122a7rsp6n6a2bkysk2r908c89l36gk4sj2i5"; depends=[mnormt quantreg]; };
   EZtune = derive2 { name="EZtune"; version="3.1.1"; sha256="0scslbgbbwma7sr0w9awg58ly5jwn877xsk6q1gq0ss3rd17pmfk"; depends=[ada BiocStyle e1071 GA gbm glmnet optimx ROCR rpart]; };
@@ -1533,29 +1571,32 @@ in with self; {
   EbayesThresh = derive2 { name="EbayesThresh"; version="1.4-12"; sha256="07a2dd3za2dc81n6m2xy794sclp3yw7f46lg1igaflh7m9407198"; depends=[wavethresh]; };
   Ecdat = derive2 { name="Ecdat"; version="0.4-2"; sha256="1vyc4ynkd65mng2x8wvzn47crsvaqfz97n89jxn12xv13bpsbs7c"; depends=[Ecfun]; };
   Ecfun = derive2 { name="Ecfun"; version="0.3-2"; sha256="1q0mx70hy18rabpabxghaixkb3r1432cxln844cac4dqxhvzcqgy"; depends=[BMA fda jpeg MASS mvtnorm rvest stringi TeachingDemos tis xml2]; };
-  EcoDiet = derive2 { name="EcoDiet"; version="2.0.0"; sha256="1lgjymm2anb7f11gvg0875wyjjfzbh0y1vwinbidpn2kmgm9b05h"; depends=[coda ggmcmc ggplot2 jagsUI]; };
+  EcoDiet = derive2 { name="EcoDiet"; version="2.0.1"; sha256="0vw6q5yf5aq4gdim7yr188f9hbrd5giaivl27y4qrz987i152v8c"; depends=[coda ggmcmc ggplot2 jagsUI]; };
   EcoEnsemble = derive2 { name="EcoEnsemble"; version="1.0.5"; sha256="0d5kha5i49p7fd8g4f1i999sag4jz8if6yashshr9hp6jr6mibpc"; depends=[BH cowplot dplyr ggplot2 matrixcalc Rcpp RcppEigen RcppParallel reshape2 rstan rstantools StanHeaders tibble]; };
   EcoIndR = derive2 { name="EcoIndR"; version="2.0"; sha256="0wsr3lmmg6rph6mlq6mrwlal4ph65ps5vyqkglbzb67xz7kc1hz5"; depends=[FD picante Rarity splancs vegan]; };
   EcoNetGen = derive2 { name="EcoNetGen"; version="0.2.4"; sha256="0ljihc60b3k25hn3z09arql2y0byhxx4mljm2w4m8f3micqfwzfw"; depends=[ggplot2 igraph]; };
   EcoTroph = derive2 { name="EcoTroph"; version="1.6.1"; sha256="0nrq6n7amz8l6rk0wfyrih7rkic96yc02rpk4szis81v7yvm7346"; depends=[XML]; };
   EcoVirtual = derive2 { name="EcoVirtual"; version="1.1"; sha256="1aryl2sb5ak390lgnm427ilm6xv9lmsjhwdnapzc033zvqb099gj"; depends=[]; };
   Ecohydmod = derive2 { name="Ecohydmod"; version="1.0.0"; sha256="0imkzjqp3g28l42jz5m4p85wg5rawmn9hy1wys9xndnaliv6d7r2"; depends=[]; };
+  EconAndProdEfficiency = derive2 { name="EconAndProdEfficiency"; version="0.1.0"; sha256="05a0dnhi41ch833hi2w4mvifq4rcxg79gcyr6yzgc5gxw57rsxf2"; depends=[]; };
   EconDemand = derive2 { name="EconDemand"; version="1.0"; sha256="1slpwiaxj7w21zdri9myrzwbwzl62m3cnp0g4fr2rkdlzgb6j5yj"; depends=[]; };
   EconGeo = derive2 { name="EconGeo"; version="2.0"; sha256="0yf3hwgj2crpm8nm4whc1cygrql4v2n0s1ziwpl6k2rxbyibaj1w"; depends=[Matrix reshape]; };
   EcotoneFinder = derive2 { name="EcotoneFinder"; version="0.2.3"; sha256="1liqjakzg4c5kgjiir8i4fp4ax0737lfwriz277crh9p3jn3dgmh"; depends=[cluster colorspace corrplot e1071 ggplot2 igraph philentropy plyr purrr qgraph reshape rlang Rmisc vegan vegclust withr]; };
-  Ecume = derive2 { name="Ecume"; version="0.9.1"; sha256="093yx24hckgwvkdjgir33lkc7hhiv4is8a4a7fdcrp46iszx0b4i"; depends=[caret dplyr e1071 kernlab magrittr pbapply spatstat spatstat_geom transport]; };
-  EdSurvey = derive2 { name="EdSurvey"; version="4.0.4"; sha256="1qp2mj9x8jk3za9m86890h1261vc7z621myv2i1kjyli3afmbm3p"; depends=[car data_table Dire Formula glm2 haven LaF lfactors lifecycle lme4 MASS Matrix NAEPirtparams NAEPprimer quantreg readxl tibble wCorr WeMix xml2 xtable]; };
+  Ecume = derive2 { name="Ecume"; version="0.9.2"; sha256="0dgw1ddl4wzd50v04jyjrxdl92jwzb2cyahfkjfyayi0yg40p78h"; depends=[caret dplyr e1071 kernlab magrittr pbapply spatstat_univar transport]; };
+  EdSurvey = derive2 { name="EdSurvey"; version="4.0.6"; sha256="1f26cmbfqb660335wzi0lx48q8dp0dbypykyskv7njf7rf0mg1cr"; depends=[car data_table Dire Formula glm2 haven LaF lfactors lifecycle lme4 MASS Matrix NAEPirtparams NAEPprimer quantreg readxl tibble wCorr WeMix xml2 xtable]; };
   EffectLiteR = derive2 { name="EffectLiteR"; version="0.4-6"; sha256="0h8cbpcnwxll5asjfay06zzh7imzqxbiv5b8iv4wbdkzwh68830r"; depends=[car foreign ggplot2 lavaan nnet shiny]; };
   EffectStars = derive2 { name="EffectStars"; version="1.9-1"; sha256="131w5bdc615gaa2czi4wyc2f96jcg24ahcmggajrvyhxmi6rag5x"; depends=[VGAM]; };
   EffectStars2 = derive2 { name="EffectStars2"; version="0.1-3"; sha256="0yh4krqjh1jb7gjxb9z4f5bzarps0g9jfqbbva782a881dhcdl1x"; depends=[miscTools VGAM]; };
   EffectTreat = derive2 { name="EffectTreat"; version="1.1"; sha256="1kw1vq9y1q3xyiqsk855wjn9jqkzdh6h4xklbl9kvbqsvvhhsgkz"; depends=[]; };
   EfficientMaxEigenpair = derive2 { name="EfficientMaxEigenpair"; version="0.1.4"; sha256="1s0i9a2vk2g4f5gadsvzjfkw91hcjsrbyjg2vgnj1v17xrwgp40w"; depends=[]; };
-  EgoCor = derive2 { name="EgoCor"; version="1.1.0"; sha256="0i33knfyhwcw8rasv3h2rp90vifrba08zmwqz4825bdx6f8zaa52"; depends=[gstat Rdpack shiny sp SpatialTools]; };
-  EigenR = derive2 { name="EigenR"; version="1.2.3"; sha256="0jlk4kl0rl41kgxyg2a7q0bdcl45fc8qnqqzmv80ni9fwg23203l"; depends=[Rcpp RcppEigen]; };
+  EgoCor = derive2 { name="EgoCor"; version="1.2.0"; sha256="135k9yccmzbkzhf8dlzm00pawaav01bzw4r2y45mcb1fdfwf5fg2"; depends=[gstat Rdpack shiny sp SpatialTools]; };
+  EigenR = derive2 { name="EigenR"; version="1.3.0"; sha256="07223lp4x9zlcj0s5pjcw2475qwv8a0njdz1ac8v0wiw0bkxa6wl"; depends=[Rcpp RcppEigen]; };
   EleChemr = derive2 { name="EleChemr"; version="1.2.0"; sha256="1wr2lkaf56qxsnqi7mgbgzy72lhkr0xlr1w1l9hy1dpmmqcqw7l3"; depends=[ggplot2]; };
+  ElevDistr = derive2 { name="ElevDistr"; version="1.0.8"; sha256="119r06ijd72z2f9asydlcy6i7sqgzfapy02wn13x5zf1cp459n8a"; depends=[ggmap ggplot2 RANN terra]; };
   Elja = derive2 { name="Elja"; version="1.0.0"; sha256="0znq40ccr828j9xwa3xixdp0i2fyj0x02lh5vxb61bf96y9njsvy"; depends=[devtools dplyr ggplot2 MASS]; };
   ElliptCopulas = derive2 { name="ElliptCopulas"; version="0.1.3"; sha256="1hnkhd9hw2550kzjyycl1hzm9pk9j11n96hka59z8x74vrz980qp"; depends=[Matrix pbapply Rmpfr Runuran wdm]; };
   EloChoice = derive2 { name="EloChoice"; version="0.29.4"; sha256="1g8ivvnv16c2gniwd9xa9z89bm4rac0nrg3mcg1risgf9yk4rgm5"; depends=[psychotools Rcpp RcppArmadillo Rdpack]; };
+  EloOptimized = derive2 { name="EloOptimized"; version="0.3.2"; sha256="0922xaicxkgiqaf126dbm6shm6ca7blwc13nwb3djmm7ky9m0lai"; depends=[BAMMtools dplyr lubridate magrittr reshape2 rlang]; };
   EloRating = derive2 { name="EloRating"; version="0.46.11"; sha256="09nh3ia4s3c9yjhw0f0haqb26fryfc4lf9rgfcbqqzzwgdr1invj"; depends=[network Rcpp RcppArmadillo Rdpack sna zoo]; };
   EloSteepness = derive2 { name="EloSteepness"; version="0.5.0"; sha256="1fqqvwbvhlr5h30mav5nch4gqjr61yvpydmbd1zq4a19hwb8rivd"; depends=[aniDom BH EloRating Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
   EmbedSOM = derive2 { name="EmbedSOM"; version="2.1.2"; sha256="0k4hja5y7qd0n3gfaxzxrz4wpxc1w9d4d4xbb63rq2nfk3lj7a42"; depends=[FNN ggplot2 igraph Matrix Rtsne umap uwot]; };
@@ -1566,6 +1607,7 @@ in with self; {
   EncDNA = derive2 { name="EncDNA"; version="1.0.2"; sha256="0wy2cmcvyqjhg5mqbvdzmihfv8swx7ym2n9mjdqgx0kgnc7k614y"; depends=[Biostrings]; };
   EncompassTest = derive2 { name="EncompassTest"; version="0.22"; sha256="1pk5b272k4flv07mjjg7jyj0v3qg5j5hhk3sgwh0wwvc83nadi7r"; depends=[pracma]; };
   EnergyOnlineCPM = derive2 { name="EnergyOnlineCPM"; version="1.0"; sha256="1a3wvclqdwcvq5inhliwjnd7xzqbjvzs8h8ncy6qlhjq6s5n7nm8"; depends=[energy MASS]; };
+  EngrEcon = derive2 { name="EngrEcon"; version="1.0.0"; sha256="1jb2gyx2w210w76nwrc77hfn8qyn2rnykax8a5bpzci6lqlxcb3f"; depends=[]; };
   EngrExpt = derive2 { name="EngrExpt"; version="0.1-8"; sha256="0zclvckj2i7j4kfs58hcjcl722vl2y6dcnjz238cjfgwv279gqhp"; depends=[lattice]; };
   EnrichIntersect = derive2 { name="EnrichIntersect"; version="0.7"; sha256="0hgiy7l2vpxs94xici7fx8xwkxi8r79513zqczy8143d889l43c6"; depends=[dplyr ggplot2 htmlwidgets jsonlite networkD3 webshot2]; };
   EnsCat = derive2 { name="EnsCat"; version="1.1"; sha256="1rp354fqq2ihjrmqw9j1qdy86md80xml5sgh2zbyabw3zddmgyn2"; depends=[dendextend ggdendro ggplot2 seqinr]; };
@@ -1581,7 +1623,7 @@ in with self; {
   EnvNicheR = derive2 { name="EnvNicheR"; version="1.5"; sha256="1zg59w5ynhrl74z0y8f656rfqsicwc0sp6awgg655yr68c6xa0jp"; depends=[IDPmisc]; };
   EnvStats = derive2 { name="EnvStats"; version="2.8.1"; sha256="19nnab201yalxbgpvpp5lkgqs0m17b5plsswmaxbvdv4mag2p58j"; depends=[ggplot2 MASS nortest]; };
   EnviroPRA2 = derive2 { name="EnviroPRA2"; version="1.0.1"; sha256="0r73l4f221ryyh2nfp0whcmhq06rzim447lqa56rmv00hcsmda52"; depends=[fitdistrplus kSamples MASS truncdist]; };
-  Epi = derive2 { name="Epi"; version="2.47.1"; sha256="1a4h6hfpwcy3lb49y949h86vr4sdnjfbqqnr4jgc45mc64fhafp1"; depends=[cmprsk data_table dplyr etm magrittr MASS Matrix mgcv numDeriv plyr survival zoo]; };
+  Epi = derive2 { name="Epi"; version="2.51"; sha256="0m9rvh21l9lqdlv71jrbix10g97wy2ryjv4zdjykfldhzzn4siik"; depends=[cmprsk data_table dplyr etm magrittr MASS Matrix mgcv numDeriv plyr survival zoo]; };
   EpiContactTrace = derive2 { name="EpiContactTrace"; version="0.17.0"; sha256="0s3mfv1djrq1kp75f94z4fhrx3jha4vvil30daxkw5b0iy3mvf5q"; depends=[]; };
   EpiCurve = derive2 { name="EpiCurve"; version="2.4-2"; sha256="1z81zrg96hmgj2j37vwwg0bd84bq80ck3f704w9j6v0drckzh03j"; depends=[dplyr ggplot2 ISOweek RColorBrewer scales tibble timeDate]; };
   EpiDynamics = derive2 { name="EpiDynamics"; version="0.3.1"; sha256="0m6yay3r7dqih19f76wxwgq6dh9p1zmp5d9ilj9nd262q61jcy53"; depends=[deSolve ggplot2 reshape2]; };
@@ -1592,7 +1634,7 @@ in with self; {
   EpiInvert = derive2 { name="EpiInvert"; version="0.3.1"; sha256="0afmgzx7ryvwb8ajkm0v077lrnahac8g3jqkk86imx4101dfg70q"; depends=[Rcpp]; };
   EpiLPS = derive2 { name="EpiLPS"; version="1.3.0"; sha256="0wdmkwcyqhjyyxrg7669sfrfqarvg5qrdm5zrchv9hnzjfxm4k9p"; depends=[coda EpiEstim ggplot2 gridExtra Rcpp RcppArmadillo]; };
   EpiModel = derive2 { name="EpiModel"; version="2.4.0"; sha256="0bwi7rkiv2cg1srmzbyly89w6p9xppk90vjmbw6h5k9481gn097h"; depends=[ape coda deSolve doParallel dplyr egor ergm ergm_ego foreach ggplot2 lazyeval network networkDynamic networkLite RColorBrewer Rcpp rlang statnet_common tergm tibble]; };
-  EpiNow2 = derive2 { name="EpiNow2"; version="1.4.0"; sha256="0dadwmzfb0cqpa9ngqndy7q3zpi3wh1al6fy7i6gdhvnfm1gkahs"; depends=[BH data_table futile_logger future future_apply ggplot2 lifecycle lubridate patchwork progressr purrr R_utils Rcpp RcppEigen RcppParallel rlang rstan rstantools runner scales StanHeaders truncnorm]; };
+  EpiNow2 = derive2 { name="EpiNow2"; version="1.5.2"; sha256="0nqa7dvp04ysqgdd5cjzfcd5vshk7jca251ljn8j55va186frmn5"; depends=[BH checkmate data_table futile_logger future future_apply ggplot2 lifecycle lubridate patchwork posterior progressr purrr R_utils Rcpp RcppEigen RcppParallel rlang rstan rstantools runner scales StanHeaders truncnorm]; };
   EpiReport = derive2 { name="EpiReport"; version="1.0.2"; sha256="1dh9rjdjgmwzvfslzgnmd37ipj7ydbn4pnngz4sw7nknqy7r4dpx"; depends=[dplyr flextable ggplot2 officer png tidyr tidyselect zoo]; };
   EpiSemble = derive2 { name="EpiSemble"; version="0.1.1"; sha256="021cp01wc3m3mhallzszlwd07pjdylgp980978qm35ylasl7z3b5"; depends=[Biostrings caret devtools doParallel e1071 entropy foreach ftrCOOL gbm iterators party randomForest seqinr splitstackshape stringr tibble tidyverse]; };
   EpiSignalDetection = derive2 { name="EpiSignalDetection"; version="0.1.2"; sha256="17mawnx3c87kgfa7aj42a7db9c1ciyxdfgka9sgx6lc0yw5249as"; depends=[dplyr ISOweek rmarkdown shiny surveillance]; };
@@ -1609,7 +1651,7 @@ in with self; {
   EthSEQ = derive2 { name="EthSEQ"; version="3.0.2"; sha256="0wrqdvcfag83qidrfg2b6q86xmb3f03mda4kwx0f4a53wl5fjdrx"; depends=[data_table gdsfmt geometry MASS plot3D Rcpp SNPRelate]; };
   EuclideanSD = derive2 { name="EuclideanSD"; version="0.1.0"; sha256="1w5s1zkb81v150nvaygvyla2x0vh4c99vd5jw53jcq68sv9hby3i"; depends=[shiny]; };
   Euclimatch = derive2 { name="Euclimatch"; version="1.0.1"; sha256="09nydlqdxpfcvfaznpjchw3zlz05a03n7picn419ivvjmf6hrx8x"; depends=[doParallel foreach RColorBrewer Rcpp RcppParallel terra]; };
-  Euronext = derive2 { name="Euronext"; version="2.0.2"; sha256="09pj10rc3rhwpdxyh6np4978jjg74k8c7m8di7c7j70ran270ybq"; depends=[dplyr flextable highcharter httr httr2 jsonlite magrittr rlang rvest stringr xts]; };
+  Eunomia = derive2 { name="Eunomia"; version="2.0.0"; sha256="1ma5xsfyj6f1dd6n7k4fqxil3xbgj2d79vb7b4zjqf7cb14vljlg"; depends=[arrow CommonDataModel DBI readr rlang RSQLite]; };
   EurosarcBayes = derive2 { name="EurosarcBayes"; version="1.1"; sha256="12311s6ibw9q6kykhh689r93r7mwjhwrhkzdpc75grvw6ilgjmpm"; depends=[clinfun data_table plyr shiny VGAM]; };
   EvCombR = derive2 { name="EvCombR"; version="0.1-4"; sha256="038crxa3a7h8zxjmcy98pq1zlc6gnlqjy39srh8mai9ksalx672x"; depends=[]; };
   Evacluster = derive2 { name="Evacluster"; version="0.1.0"; sha256="01nxclrp90qhlnxl0yf2srppglic6m3f7pl35h62r6kxic0lrzhs"; depends=[]; };
@@ -1619,7 +1661,6 @@ in with self; {
   EventDetectGUI = derive2 { name="EventDetectGUI"; version="0.3.0"; sha256="02gwgbp692cfmf933jg1f7h4gghhc1v2cswz7rpcazm8h39mc4wh"; depends=[DT EventDetectR ggplot2 plotly shiny shinyBS shinydashboard shinyjs XML]; };
   EventDetectR = derive2 { name="EventDetectR"; version="0.3.5"; sha256="0wx3bcs8n95fmyc5vnlrwd75bzqqvy6czb9bsbp04g3770c5ja0r"; depends=[forecast ggplot2 gridExtra imputeTS neuralnet]; };
   EventPredInCure = derive2 { name="EventPredInCure"; version="1.0"; sha256="1i11v671l5x31nhx0vz2zmjv3g3xr2yszd9vkhg71xnxmr1156cy"; depends=[dplyr erify flexsurv KMsurv lubridate MASS Matrix MLEcens msm mvtnorm numDeriv perm plotly rlang rstpm2 survival tmvtnsim]; };
-  EventStudy = derive2 { name="EventStudy"; version="0.39.2"; sha256="1z12nrkmpsv5cgm97g36vbwfdf0m1abfmwfln4xhy38d0qs61zi9"; depends=[curl data_table dplyr ggplot2 httr jsonlite magrittr miniUI purrr RColorBrewer readr rlang rstudioapi scales shiny stringr testthat tidyr]; };
   EventWinRatios = derive2 { name="EventWinRatios"; version="1.0.0"; sha256="1hsq4g7hh71lzxzkmhm15mk3xpxaq75rqhgslf4qif6x7pm0p859"; depends=[]; };
   EvidenceSynthesis = derive2 { name="EvidenceSynthesis"; version="0.5.0"; sha256="0zyah27p1j7sxpcgpr05ws1whw7dd876nzygcvh5pyiikkahfmcm"; depends=[BeastJar coda Cyclops dplyr EmpiricalCalibration ggdist ggplot2 gridExtra HDInterval meta rJava rlang survival]; };
   EviewsR = derive2 { name="EviewsR"; version="0.1.6"; sha256="1sdhv9gra2rmp63fil61lq61a2jlfhajxd4nicvag11cnar880js"; depends=[knitr magrittr xts zoo]; };
@@ -1633,7 +1674,7 @@ in with self; {
   ExPosition = derive2 { name="ExPosition"; version="2.8.23"; sha256="0x9400ggmgrnaish0cfgnyvw549g4ibfv9aj6vzq7j68n58vq405"; depends=[prettyGraphs]; };
   Exact = derive2 { name="Exact"; version="3.2"; sha256="0a33gbhzd580i31xxsjxigg0nl8ag1x4xz3jqmq5jqappc6f5d2k"; depends=[rootSolve]; };
   ExactCIdiff = derive2 { name="ExactCIdiff"; version="2.1"; sha256="1rhwdhgj3d6m4x75v5m03y6l2sf7ndgb15qc8k7kx7vr6c03zl8v"; depends=[]; };
-  ExactCIone = derive2 { name="ExactCIone"; version="1.0.0"; sha256="0mi3n215c9zxsg6xjjj6l3g9lfwnglr1d47b6m0giyds80y9s7l6"; depends=[]; };
+  ExactCIone = derive2 { name="ExactCIone"; version="1.0.5"; sha256="049fh70aidsl60f355jkx93brkvaadpvlk7wxc196s51fddz2lwa"; depends=[]; };
   ExactMed = derive2 { name="ExactMed"; version="0.3.0"; sha256="0cjpnym71n2w0yk9xh5b65x35g4ycy20d9ydk43xw0nl1cpksd56"; depends=[brglm2 dfidx lmtest mlogit nnet pkgcond sandwich]; };
   ExactMultinom = derive2 { name="ExactMultinom"; version="0.1.2"; sha256="1ygsiwcsmda0pbp7lzr03sb461mr9fff7hxp1lil40y9z0xgdmmb"; depends=[Rcpp]; };
   ExamPAData = derive2 { name="ExamPAData"; version="0.5.0"; sha256="1wjzg5b3xcl5njk95h2c8xz4k727d62182nbf49qrvd3nbd3bscj"; depends=[]; };
@@ -1647,7 +1688,7 @@ in with self; {
   ExpDes = derive2 { name="ExpDes"; version="1.2.2"; sha256="145x7zzhgs7rqbamsfwcxlhppxmy9l6v4a1wximac8qgp7i0wdpi"; depends=[stargazer]; };
   ExpDes_pt = derive2 { name="ExpDes.pt"; version="1.2.2"; sha256="05s7j3afs97x0k4w9rsjic1519ilzri250x5rl6l6smqivjaplci"; depends=[stargazer]; };
   ExpGenetic = derive2 { name="ExpGenetic"; version="0.1.0"; sha256="096cxaqbc9y0bnj70fxk94585c880020pqqcx0dwwj839qkry4ha"; depends=[DESeq2 futile_logger ggplot2 ggsci plyr VennDiagram]; };
-  ExpImage = derive2 { name="ExpImage"; version="0.9.0"; sha256="1f6pddzfwmpv0gnzbpbkqzg6scafzjmpicblqz3m36nnj87l9pn7"; depends=[crayon doParallel foreach ggplot2 progress randomForest raster rstudioapi schemr]; };
+  ExpImage = derive2 { name="ExpImage"; version="0.10.1"; sha256="1xl8g5782gwlz3ibqrx5szv5rnq9n5bigwcfxk4fxh8yfz6i73gi"; depends=[crayon doParallel foreach ggplot2 progress randomForest raster rstudioapi schemr]; };
   ExpRep = derive2 { name="ExpRep"; version="1.0"; sha256="0spv3wd9c8sr338n5kdzrs28yh7s90fl70wsdnkibmlxhnh3ay3g"; depends=[]; };
   ExpertChoice = derive2 { name="ExpertChoice"; version="0.2.0"; sha256="1pd4v240ywc4wzh249axxb4kz5dccizc08jdjnaygz35hjdg5hvj"; depends=[DoE_base dplyr far purrr rlist]; };
   ExplainPrediction = derive2 { name="ExplainPrediction"; version="1.3.0"; sha256="14m3b9fsrpfpr8avsnhl8b3bzk2xlhwgkwag5iq8bj7bzvv4yck1"; depends=[CORElearn semiArtificial]; };
@@ -1662,7 +1703,7 @@ in with self; {
   ExtremeRisks = derive2 { name="ExtremeRisks"; version="0.0.4"; sha256="1mvkrwyj9kwg35dzm9jzx311qqd4v3nnbrr6d64x476ni4pnrbl8"; depends=[copula evd mvtnorm plot3D pracma tmvtnorm]; };
   EzGP = derive2 { name="EzGP"; version="0.1.0"; sha256="0ln7xa9gys19xyn4wkfxaxfpyvaxvcag04s3j9sc19ff8xdxzf3z"; depends=[nloptr]; };
   FABInference = derive2 { name="FABInference"; version="0.1"; sha256="0d11vxxa0mry735n7an8n97wmxyffsj4hirxlysljs941zhkhhw4"; depends=[MASS]; };
-  FACT = derive2 { name="FACT"; version="0.1.0"; sha256="0frj0qgdq8j8khy4dlv63zismjczijm0q7j5ha59m0dgxr93khfg"; depends=[checkmate data_table ggplot2 gridExtra iml prediction R6]; };
+  FACT = derive2 { name="FACT"; version="0.1.1"; sha256="0klks2r2jf5v5z2n3gvqbssrpdd6nccbk7izvdl1cknisq8z5w4b"; depends=[checkmate data_table ggplot2 gridExtra iml R6]; };
   FACTMLE = derive2 { name="FACTMLE"; version="1.1"; sha256="0qz2i0hnn84bpps1h8jmfkgp5p59axr0wayj9dvl839radrvpqvy"; depends=[rARPACK]; };
   FADA = derive2 { name="FADA"; version="1.3.5"; sha256="0srv3rghbkgyxbcjc1v68c5qgcir1d618skpc8imfmdaz9pnxchn"; depends=[corpcor crossval elasticnet glmnet MASS matrixStats mnormt sda sparseLDA]; };
   FADPclust = derive2 { name="FADPclust"; version="1.1.1"; sha256="111lpq5hdrpyj8wdscjswk5p4akxhj3jbj5xk6ias2s5gfprla14"; depends=[cluster fda fda_usc fpc funData MFPCA]; };
@@ -1671,7 +1712,7 @@ in with self; {
   FAMetA = derive2 { name="FAMetA"; version="0.1.6"; sha256="0hn4g0qqiy15jg42g27v0rmplm8gh84fr0kpp7q56c21mcs5w4h3"; depends=[accucor gplots gtools knitr LipidMS minpack_lm plyr rmarkdown scales tidyr]; };
   FAMoS = derive2 { name="FAMoS"; version="0.3.0"; sha256="14gr9wv9bpibk0rrzzwijvdncx1fgnpbv55nqzbb4jhq7fdckmsa"; depends=[future R_utils]; };
   FAO56 = derive2 { name="FAO56"; version="1.0"; sha256="0qckfkka487sdvynjk1pl49scqykg7a2hrcyp00xzyl7x9nvim15"; depends=[]; };
-  FAOSTAT = derive2 { name="FAOSTAT"; version="2.3.0"; sha256="05nwskl8l68rrf0krfmw2sc3snpygqsgdi40kbfim9wfqyy175di"; depends=[classInt data_table httr labeling MASS plyr RJSONIO]; };
+  FAOSTAT = derive2 { name="FAOSTAT"; version="2.4.0"; sha256="0fyd9ypssax6pm3fzw7g864kaamfh8r3hi4ljd972g13n82b1jag"; depends=[classInt data_table httr labeling MASS plyr RJSONIO]; };
   FARDEEP = derive2 { name="FARDEEP"; version="1.0.1"; sha256="0blvjakcpkh9vpxryk7qyaqnija0r375ckv37kjlr34xg8pg9qnm"; depends=[nnls preprocessCore]; };
   FAS = derive2 { name="FAS"; version="1.0.0"; sha256="16sqbykf14p0wch1xryrx4ikwa7mxfkprxgyxlwsidxf94ny17iq"; depends=[Matrix pracma]; };
   FAST_R = derive2 { name="FAST.R"; version="0.2.1"; sha256="178v16f6f5manifv15r44mkl1zqspc9p4vwah3yvnqgd0zwq92x7"; depends=[caret dplyr DT ggplot2 magrittr plater purrr RColorBrewer readxl scales shiny shinyFeedback shinyjs stringr tibble tidyr waiter zip]; };
@@ -1708,8 +1749,8 @@ in with self; {
   FHDI = derive2 { name="FHDI"; version="1.4.1"; sha256="1n1rbrqdphp0prmkili6rnpxwdb7fgwsgncllr6yxlrkr5rb76pm"; depends=[]; };
   FHtest = derive2 { name="FHtest"; version="1.5.1"; sha256="0x7lr88w0b09ng7nps490kgj8aqdjzmp9skv9iwqgn871pnpydms"; depends=[interval KMsurv MASS perm survival]; };
   FI = derive2 { name="FI"; version="1.0"; sha256="17qzl8qvxklpqrzsmvw4wq3lyqz3zkidr7ihxc4vdzmmz69pyh2f"; depends=[]; };
-  FIESTA = derive2 { name="FIESTA"; version="3.6.2"; sha256="00vfh6wclihglgldzqs2zsr37r5a7h51ia3vxmyq5vkk51jqlgrm"; depends=[data_table DBI FIESTAutils gdalraster RSQLite sf sqldf]; };
-  FIESTAutils = derive2 { name="FIESTAutils"; version="1.2.2"; sha256="0p78fkc1fw12nv0y7lzdp0df39rcpja7xwqkbzi6i38f3pmw22f1"; depends=[data_table DBI gdalraster hbsae JoSAE mase nlme RColorBrewer Rcpp RPostgreSQL RSQLite sae sf sqldf terra units]; };
+  FIESTA = derive2 { name="FIESTA"; version="3.6.4"; sha256="1k7a58807mr32vgs8xgv1ni1ip0kfkd5b3vaxzzyf0jv85dfc8q0"; depends=[data_table DBI FIESTAutils gdalraster RSQLite sf sqldf]; };
+  FIESTAutils = derive2 { name="FIESTAutils"; version="1.2.3"; sha256="11ny9cpgbw3lz98hxxsvsjfjxq0y1h8wlv53afwaxwrayckiv981"; depends=[data_table DBI gdalraster hbsae JoSAE mase nlme RColorBrewer Rcpp RPostgres RSQLite sae sf sqldf terra units]; };
   FILEST = derive2 { name="FILEST"; version="1.1.2"; sha256="0x95in9yad93j8kbxjykz04x756i1c1cq854c220cc0l3rm3npnl"; depends=[KRIS rARPACK]; };
   FIT = derive2 { name="FIT"; version="0.0.6"; sha256="1nkjms9cvigc9sjha1krzhd3nmwsfh8pi0f1plf5k8zpb773zzb2"; depends=[gglasso MASS Rcpp RcppEigen XML]; };
   FITSio = derive2 { name="FITSio"; version="2.1-6"; sha256="1qch6z9r8h95jijjdwsi81majgacl42ryzlkn0m1wifkly9mjjrb"; depends=[]; };
@@ -1722,7 +1763,7 @@ in with self; {
   FLORAL = derive2 { name="FLORAL"; version="0.2.0"; sha256="1a1jnvbfk2fyqs5jw3y04wxln4hxsahv4yiwrhdgdbk4az3yxp9p"; depends=[caret doParallel doRNG dplyr foreach ggplot2 glmnet mvtnorm Rcpp RcppArmadillo RcppProgress reshape survcomp survival]; };
   FLR = derive2 { name="FLR"; version="1.0"; sha256="0k50vi73qj7sjps0s6b2hq1cmpa4qr2vwkpd2wv2w1hhhrj8lm0n"; depends=[combinat]; };
   FLSSS = derive2 { name="FLSSS"; version="9.1.3"; sha256="1mjjnasc5f3l44dch7wjxl0b6jbcyjkk6m5b3xgjrir5qyy7fmdk"; depends=[Rcpp RcppParallel]; };
-  FMAT = derive2 { name="FMAT"; version="2024.3"; sha256="0qqkcjxp375lz0rc4hf2k0n1cgzxxrcq3x3c95k60f90cnk7sydl"; depends=[cli data_table dplyr forcats glue plyr psych PsychWordVec purrr reticulate stringr tidyr]; };
+  FMAT = derive2 { name="FMAT"; version="2024.6"; sha256="082i5hzw41vmdg1q7c42jpnisn0mip3mgs0z440dckv7dk2pnr2i"; depends=[cli crayon data_table dplyr forcats glue irr plyr psych purrr reticulate stringr tidyr]; };
   FMAdist = derive2 { name="FMAdist"; version="0.1.2"; sha256="09lv6zk36qrrrjs0wkda5rr4pjm7q317gc5dr197w7ggsqibp4b6"; depends=[actuar EnvStats extraDistr fitdistrplus MASS quadprog]; };
   FMC = derive2 { name="FMC"; version="1.0.1"; sha256="03g3v1nmidgjcb3nxs7gfk9s20c8vnk0hgijsnydvxi5bypw8s8p"; depends=[minimalRSD]; };
   FMCCSD = derive2 { name="FMCCSD"; version="1.0"; sha256="0c50km5ba6biq9p3mycxhy00ij2gr6y5zf3q8ycq0g1mbk8ybfb7"; depends=[numDeriv orthopolynom Rcpp RcppArmadillo splines2]; };
@@ -1736,6 +1777,7 @@ in with self; {
   FOCI = derive2 { name="FOCI"; version="0.1.3"; sha256="0iax5569a0v18j2l52mw26yimx11fqqbxj5q7jgba9jf7ylp410w"; depends=[data_table gmp proxy RANN]; };
   FORTLS = derive2 { name="FORTLS"; version="1.4.0"; sha256="0h5ninw5hkrkbri8yazy5wfv4yslp303iq6fyiwv7nd3wda8wln5"; depends=[data_table dbscan Distance htmlwidgets lidR moments plotly progress raster Rcpp RcppEigen RCSF reticulate scales sf tidyr VoxR vroom]; };
   FPCA3D = derive2 { name="FPCA3D"; version="1.0"; sha256="1hrk9caad2s76dx59clxhia45a85khk1y2ii7955f336x55q34a5"; depends=[]; };
+  FPCdpca = derive2 { name="FPCdpca"; version="0.1.0"; sha256="0hrciisfnr3b0gs3szjy46fjl8mxpyclmv6ids5mq71spqzaxccp"; depends=[matrixcalc Rdimtools rsvd]; };
   FPDclustering = derive2 { name="FPDclustering"; version="2.3.1"; sha256="04m75z320x9bxa3qi3yi60pl6b8fb1lxvx83q81iv42qw4998kd0"; depends=[cluster ExPosition GGally ggeasy ggplot2 klaR MASS mvtnorm rootSolve ThreeWay]; };
   FPLdata = derive2 { name="FPLdata"; version="0.1.0"; sha256="0f5j6h4v0a9jk798m02mdq57v8rlkhrpgcrnj1rna34lrz83m51q"; depends=[dplyr readr]; };
   FPV = derive2 { name="FPV"; version="0.5"; sha256="0pxa8lbcxw2hx2n0frkx0pdndlcfm7gnh9qay9q53cf5gqzzwvvc"; depends=[FuzzyNumbers FuzzyNumbers_Ext_2]; };
@@ -1747,41 +1789,39 @@ in with self; {
   FRESA_CAD = derive2 { name="FRESA.CAD"; version="3.4.7"; sha256="1lczys1pcs15w8bz3i6kxglfhi4gih5ayrs51kg7d3c4la4di57a"; depends=[Hmisc miscTools pROC Rcpp RcppArmadillo stringr]; };
   FRESHD = derive2 { name="FRESHD"; version="1.0"; sha256="0lpggf59dd3kwp2y9p4acvhdmc6i47bwa5lk6d6cp8q0g7sr44rm"; depends=[glamlasso Rcpp RcppArmadillo RcppEigen]; };
   FRI = derive2 { name="FRI"; version="1.0"; sha256="17ddbr0hndpr5627n67467787rq8hidi1jn1c3xf7f7qz800jjf5"; depends=[forcats ggplot2 neuralnet RSNNS]; };
-  FRK = derive2 { name="FRK"; version="2.2.2"; sha256="19a4zqqwkjpyssj98qmvzzpgyq988ndvqwh2gjcm5v6q0qpwwc87"; depends=[digest dplyr ggplot2 ggpubr Hmisc Matrix plyr Rcpp RcppEigen reshape2 scales sp spacetime sparseinv statmod TMB]; };
+  FRK = derive2 { name="FRK"; version="2.2.3"; sha256="0wlx58il39qnl9wi92mkdhjarqvrp5i2hw4cyzaijrsfal1i0v42"; depends=[digest dplyr ggplot2 ggpubr Hmisc Matrix plyr Rcpp RcppEigen reshape2 scales sp spacetime sparseinv statmod TMB]; };
   FSA = derive2 { name="FSA"; version="0.9.5"; sha256="0b9gf1sh7igd6i14cgl6j8ns2zqvpph3830n7b4q9vw4dfcb53g0"; depends=[car dunn_test lmtest plotrix withr]; };
   FSAdata = derive2 { name="FSAdata"; version="0.4.1"; sha256="0zh0gkylziysqjc9gn3kjz7070x2rvmi1c64kxl6q2479929hysi"; depends=[]; };
-  FSAtools = derive2 { name="FSAtools"; version="2.0.5"; sha256="0i4grcr155vbsnw823jiwngyayzymka9k7zhsbw1f208q6xyrx4d"; depends=[]; };
   FSDAM = derive2 { name="FSDAM"; version="2024.1-30"; sha256="1jikdfhqb985a1g0r1z70n9wwnlw1ag32jdc74938ny65gqnp5sb"; depends=[kyotil reticulate]; };
   FSInteract = derive2 { name="FSInteract"; version="0.1.2"; sha256="1aci1398aaz0nrl5jy6yh7xik355wf7pwngrsak4qsi94vdj05iy"; depends=[Matrix Rcpp]; };
   FSK2R = derive2 { name="FSK2R"; version="0.1.3"; sha256="0hsrg49q42by4i3dywi59wwy5h56fnfdr10s6rk1y9dyliksmj43"; depends=[dplyr purrr R_utils readtext readxl rjson rlang shiny tibble tidyr XML xml2 zip]; };
   FSM = derive2 { name="FSM"; version="1.0.0"; sha256="03w182a9i7mra7wpvkm4q4kwhzjs5kc9h4hh26gygl49jkcvril8"; depends=[]; };
-  FSMUMI = derive2 { name="FSMUMI"; version="1.0"; sha256="06ri1zi86cm4arjdlp2pha2bvcc8vz6irvd9n3ja074hv62wxcw4"; depends=[FuzzyR lsa]; };
   FSSF = derive2 { name="FSSF"; version="0.1.1"; sha256="024g2rv64yqxmbbwrbkpkrzdfshl0n6jll6axsgsp4q4ia4r9401"; depends=[Rcpp RcppArmadillo]; };
   FSTpackage = derive2 { name="FSTpackage"; version="0.1"; sha256="1fjqsl59fg4x9vkbv4b0qmfxlaa2q3rzpl40grv24yg6ixfagmdb"; depends=[CompQuadForm MASS Matrix mvtnorm SKAT]; };
   FSelector = derive2 { name="FSelector"; version="0.34"; sha256="07nvfykr6zls7ip5nz9j3062nlna2va3dyldck292v96rd56xl99"; depends=[digest entropy randomForest RWeka]; };
   FSelectorRcpp = derive2 { name="FSelectorRcpp"; version="0.3.11"; sha256="008zc270injmjhr2zqs0jw21f7vrmmclzjnin9xsx8drfk8bhdvn"; depends=[BH foreach iterators Rcpp RcppArmadillo testthat]; };
-  FSinR = derive2 { name="FSinR"; version="2.0.5"; sha256="11ss38qpasbyym9hcfqmv254jvr8lzsw6r85dlm7xlnhfnxil59l"; depends=[caret class digest dplyr e1071 GA mlbench neuralnet prodlim purrr Rdpack rlang rpart tidyr]; };
   FUNTA = derive2 { name="FUNTA"; version="0.1.0"; sha256="02yxz95s2hs26mfmgwhv5d54yyjz0aczjpnay8b4gpzbpd6aci61"; depends=[]; };
   FWDselect = derive2 { name="FWDselect"; version="2.1.0"; sha256="0w0hkmhcz7h1lixk7p3yffbbalgxwh2lv463vqz361k80sri6wz7"; depends=[cvTools mgcv]; };
   FWRGB = derive2 { name="FWRGB"; version="0.1.0"; sha256="0wi1vkb8mmw9f8hzgp8cm6hy9nbglz0x8mllngdamhlvm35gr57d"; depends=[e1071 imager neuralnet]; };
-  FaaSr = derive2 { name="FaaSr"; version="1.1.2"; sha256="0497ywlsi97hr8b01yjp5dflgghkwa3m6a5w0lfd16ryg7wild3c"; depends=[base64enc cli httr jsonlite jsonvalidate paws_application_integration paws_compute paws_security_identity paws_storage sodium uuid]; };
+  FaaSr = derive2 { name="FaaSr"; version="1.3.0"; sha256="093m5mrxckgl1g3ipab4v77g4129pmb5z9z1fbk2kj9jsb8gznlk"; depends=[askpass base64enc cli httr jsonlite jsonvalidate paws_application_integration paws_compute paws_security_identity paws_storage sodium uuid]; };
   FactoClass = derive2 { name="FactoClass"; version="1.2.9"; sha256="1i42mwmkh7lip01x5qkw03xrcqqbsfsa7qs2xrpr9hzfp61f1xcm"; depends=[ade4 ggplot2 ggrepel KernSmooth scatterplot3d xtable]; };
   FactoInvestigate = derive2 { name="FactoInvestigate"; version="1.9"; sha256="0kzm57hd2j43kp84x2saz1nj575dw14sx3l9pmqqkr6871jrgjlw"; depends=[FactoMineR ggplot2 rmarkdown]; };
-  FactoMineR = derive2 { name="FactoMineR"; version="2.10"; sha256="1kjb0hk7zck8702inw9ayxrpbi8raq3rldxsq848lk15z3wg9r6w"; depends=[car cluster DT ellipse emmeans flashClust ggplot2 ggrepel lattice leaps MASS multcompView scatterplot3d]; };
+  FactoMineR = derive2 { name="FactoMineR"; version="2.11"; sha256="0qzhfjcz0kahqf214g4xs7gfpqx05xbfiwa5r2ldgn2drd16phij"; depends=[car cluster DT ellipse emmeans flashClust ggplot2 ggrepel lattice leaps MASS multcompView scatterplot3d]; };
   FactorAssumptions = derive2 { name="FactorAssumptions"; version="2.0.1"; sha256="0d7dh67r8s0v952palhx9h6bhhlxw9xcjbj7dxsp2hdhwap72s2y"; depends=[MASS psych]; };
   FactorCopula = derive2 { name="FactorCopula"; version="0.9.3"; sha256="1lvqa62v9rvz7pmrx06riqndh4jyw60an04hpg6if523jsxpa5nz"; depends=[abind igraph matlab polycor statmod VineCopula]; };
-  Factoshiny = derive2 { name="Factoshiny"; version="2.5"; sha256="1am0lycldx1j75c5lm6hp84845fvcwvrvjbkqs2mf17a3i72ir48"; depends=[colourpicker DT FactoInvestigate FactoMineR ggplot2 ggrepel missMDA shiny shinydashboard shinyjqui]; };
+  Factoshiny = derive2 { name="Factoshiny"; version="2.6"; sha256="14ija58kscww8bf4p1lcbwvd7yxmp4h8jnk8898q9qh08rbahram"; depends=[colourpicker DT FactoInvestigate FactoMineR ggplot2 ggrepel missMDA shiny shinydashboard shinyjqui]; };
   Fahrmeir = derive2 { name="Fahrmeir"; version="2016.5.31"; sha256="16fbc1zb9x9p04bl7y5nd375pha6bd3hfqqchlk1bqxrj4879y5g"; depends=[]; };
   FairMclus = derive2 { name="FairMclus"; version="2.2.1"; sha256="0mhccn6yyf35qb856psh3dpiwdf24l3w2lqr643lkn38lhbmyvn8"; depends=[cluster data_table doParallel dplyr foreach irr magrittr rlist tidyr]; };
+  FamEvent = derive2 { name="FamEvent"; version="3.1"; sha256="1b2dh0kcvarczp3666by66sx6v1p2xbj1k43nji7cks1mmmln3qn"; depends=[cmprsk eha kinship2 MASS matrixcalc pracma survival truncnorm]; };
   Familias = derive2 { name="Familias"; version="2.6.1"; sha256="1hx35xj5yjpbkpf4hz8kx7i4q3s2m5dvwb0mcnz1svibim04hll0"; depends=[kinship2 Rsolnp]; };
-  Families = derive2 { name="Families"; version="2.0.0"; sha256="0zsxsfm4zhjicgw9pr1617mgi8z32acrh1skjrsfp5g9f5m7nnpw"; depends=[ggplot2 msm reshape rlang]; };
+  Families = derive2 { name="Families"; version="2.0.2"; sha256="1nxxnm1k6q644hr56xj9sjxyk5pi0rmk8f9gilj59g2y61yc4a4q"; depends=[ggplot2 msm reshape rlang]; };
   FamilyRank = derive2 { name="FamilyRank"; version="1.0"; sha256="0v1b3a6rxbbl7xdy977j02x1ni66879x98vg6ngbaqvh7v9vl82x"; depends=[plyr Rcpp RcppArmadillo]; };
   FarmSelect = derive2 { name="FarmSelect"; version="1.0.2"; sha256="174rzv9k0hdcfdkv7bisy70rip2iy0bnj3qa54i00wqwjdglgjdn"; depends=[fBasics ncvreg Rcpp RcppArmadillo]; };
   FarmTest = derive2 { name="FarmTest"; version="2.2.0"; sha256="1mr2cscz3ywyq280ifaj4gypxanvvl9s7w33ysmwn952camra2md"; depends=[Rcpp RcppArmadillo]; };
   FastBandChol = derive2 { name="FastBandChol"; version="0.1.1"; sha256="1hlgipn792vaylvc0r44clkjcnkns6p241a1fs8sb3gpq81naazk"; depends=[Rcpp RcppArmadillo]; };
   FastCUB = derive2 { name="FastCUB"; version="0.0.3"; sha256="11mn7nd629pkxbb5cxw0ahqchl7vjn885f0z6lzs515n54fclkk7"; depends=[CUB Formula]; };
   FastGP = derive2 { name="FastGP"; version="1.2"; sha256="120qai1yw3yhwm762zridk78n4qclpivwm9f2hkij4bz851qibqv"; depends=[MASS mvtnorm rbenchmark Rcpp RcppEigen]; };
-  FastGaSP = derive2 { name="FastGaSP"; version="0.5.2"; sha256="1i54gxnc27fjgdbcrf2n1s5p6jgadcz2v4g0hq4xay0kfr593a7g"; depends=[Rcpp RcppEigen RobustGaSP]; };
+  FastGaSP = derive2 { name="FastGaSP"; version="0.5.3"; sha256="1bc2lc07jka3qjdkl23jkqdgz1495l6p2war9iwkxyfvwx5m130j"; depends=[Rcpp RcppEigen]; };
   FastImputation = derive2 { name="FastImputation"; version="2.2.1"; sha256="0jnhspgxas7kswpgw4hihc1y1286w5n8bikwzls7vsik5lj5yac4"; depends=[Matrix]; };
   FastJM = derive2 { name="FastJM"; version="1.4.2"; sha256="0h5kywvbwxd13ghgvfgx1sr7k4ywgk4c51xfpr8dvqig9nnvrav8"; depends=[caret dplyr MASS nlme Rcpp RcppEigen statmod survival timeROC]; };
   FastKM = derive2 { name="FastKM"; version="1.1"; sha256="0kkrfb98h843yh4n8mvz3y2sp9qkykpabg9w927jb8i230aiy1sq"; depends=[rARPACK]; };
@@ -1795,18 +1835,20 @@ in with self; {
   FateID = derive2 { name="FateID"; version="0.2.2"; sha256="0sgvaqhqkmmkcsl53bm1jlfpzrvzfb5cz8k513nizfsi638vydlm"; depends=[locfit matrixStats pheatmap princurve randomForest RColorBrewer Rtsne som umap]; };
   FaultTree = derive2 { name="FaultTree"; version="1.0.1"; sha256="0abv34y7ms31inrkbc8ss8vnjxki9k49pa722n48irwqczxb328l"; depends=[Rcpp RcppArmadillo]; };
   FeaLect = derive2 { name="FeaLect"; version="1.20"; sha256="1dfi0v313x4a4ck98zlk6yr3nfjrdwr5649x9dx3i7yfkypk2k5c"; depends=[lars rms]; };
+  FeatureExtraction = derive2 { name="FeatureExtraction"; version="3.5.2"; sha256="0gl2j3kiap00yc8krs9ki9v91qfa082yprnzgr9nyp9c15gggmmx"; depends=[Andromeda checkmate cli DatabaseConnector DBI dplyr jsonlite ParallelLogger pillar readr rJava rlang RSQLite SqlRender]; };
   FeatureHashing = derive2 { name="FeatureHashing"; version="0.9.2"; sha256="05cap6251dk3x7802ii33zv41pahng68h7fvx5z8y6ii4vzlgd57"; depends=[BH digest magrittr Matrix Rcpp]; };
   FeatureImpCluster = derive2 { name="FeatureImpCluster"; version="0.1.5"; sha256="1ifxw6rd870g258fkyyy3mhghxm7486nvgnp3lh5ih2i1v34dgig"; depends=[data_table ggplot2]; };
   FeatureTerminatoR = derive2 { name="FeatureTerminatoR"; version="1.0.0"; sha256="036ip8jm4d5ybyqmvrnjqp4hl8gsmd346737ghipnmmyaml9xfs5"; depends=[caret dplyr e1071 ggplot2 lattice randomForest tibble]; };
   FedData = derive2 { name="FedData"; version="4.0.1"; sha256="0shpkv2v5bc09dwqb89xv3df069wgiz3g8y3if2f7kg58ghgg5kn"; depends=[arcgislayers curl dplyr httr igraph lifecycle lubridate magrittr progress purrr readr sf stringr terra tibble tidyr xml2]; };
+  FedIRT = derive2 { name="FedIRT"; version="0.1.0"; sha256="0qihs2m1qdp9kfw8f7a76r6cppfi9bxlj2mk4670v4ds2mqyq7xw"; depends=[callr DT ggplot2 httr pracma purrr shiny shinyjs]; };
   FeedbackTS = derive2 { name="FeedbackTS"; version="1.5"; sha256="120labhmisw1x1bq8c4bl6l14vayvb9xcm6jsj1awacypgrr2ar2"; depends=[automap gstat mapdata maps proj4 sp]; };
   FertBoot = derive2 { name="FertBoot"; version="0.5.0"; sha256="168xfxpb43brfnp6c6b4chhpzb9z0aiqa6fawc8m09an5ggh05jp"; depends=[nls_multstart simpleboot]; };
   FertNet = derive2 { name="FertNet"; version="0.1.2"; sha256="0rcxh0hxrmc3hj0gmk2sqd7hqr9dyhv0nx17ipwsg13v7ghvp2h4"; depends=[haven]; };
   Fgmutils = derive2 { name="Fgmutils"; version="0.9.5"; sha256="05n8lvx3cs1ckliaj7ni2rbfcrdl7d0pzf9bkwlyd1779h684cxz"; depends=[data_table devEMF ggplot2 gridExtra plyr png sqldf stringr]; };
   FiRE = derive2 { name="FiRE"; version="1.0.1"; sha256="08xs4w7d3w4zrymq0sjpz34hmsd4lsd5989r660qdpg3ybpqx8lj"; depends=[BH Rcpp]; };
   FiSh = derive2 { name="FiSh"; version="1.1"; sha256="1fcs2y3diszypv7sr4vl75wizcxv0na0pqflmlrizs2w7kyw51p6"; depends=[fda_usc KernSmooth]; };
-  FielDHub = derive2 { name="FielDHub"; version="1.3.4"; sha256="08s9snwcvnhrhcqm4csl2pnsp3vxa5vmckmkjhhs4ima51d13f0y"; depends=[blocksdesign config desplot dplyr DT ggplot2 golem htmltools magrittr numbers plotly shiny shinyalert shinycssloaders shinyjqui shinyjs shinythemes turner viridis]; };
-  FieldSimR = derive2 { name="FieldSimR"; version="1.2.0"; sha256="1nqdbm93cicvfr757bg5r226swbsy6abg52z7n3jysrkqlicf278"; depends=[ggplot2 interp lattice matrixcalc mbend]; };
+  FielDHub = derive2 { name="FielDHub"; version="1.3.7"; sha256="1w0hwqah5h41423sc6ggcwcsxczwy0bs7mc2zy98g1fhsnk3ipfj"; depends=[blocksdesign config desplot dplyr DT ggplot2 golem htmltools numbers plotly shiny shinyalert shinycssloaders shinyjs shinythemes viridis]; };
+  FieldSimR = derive2 { name="FieldSimR"; version="1.3.0"; sha256="1yhys0zb6rzd3xx8lwxg6n9dak15nlhyg8a0bkgjfad8ljihlkyj"; depends=[cluster ggplot2 interp lattice mbend]; };
   FinAna = derive2 { name="FinAna"; version="0.1.2"; sha256="09svg5z52vv90ih85awgh6ns3pqi789qjm2wi1gb9hbg9v5g7pdv"; depends=[]; };
   FinCal = derive2 { name="FinCal"; version="0.6.3"; sha256="1clvnvhpf2krrf8flhmdxmys6ym3xw3v4v07kk1if4xb0dfk9wgy"; depends=[ggplot2 RCurl reshape2]; };
   FinCovRegularization = derive2 { name="FinCovRegularization"; version="1.1.0"; sha256="0h3i46s0rpqvgnqgjwqrlrfa3vv5jn2hm6bqc0ijwmrr9f80g4ir"; depends=[quadprog]; };
@@ -1825,7 +1867,7 @@ in with self; {
   FitUltD = derive2 { name="FitUltD"; version="3.1.0"; sha256="17fj211riybq71k63wjfv2ndc2h46ay5svrac2v5i3b92cb9hkbv"; depends=[ADGofTest assertthat cowplot fitdistrplus ggplot2 MASS mclust purrr]; };
   FixSeqMTP = derive2 { name="FixSeqMTP"; version="0.1.2"; sha256="0v1cwq8gapgandm7wiw8p6av6qigydlpmwi6w02p1y7f0hf5ifnp"; depends=[]; };
   FixedPoint = derive2 { name="FixedPoint"; version="0.6.3"; sha256="04f3x2akphfm6d84vbf9nfrn281d5hbbnb57n4cwy9hgrs835h6w"; depends=[MASS]; };
-  FjordLight = derive2 { name="FjordLight"; version="0.7.0"; sha256="1pswqpglddjdlhrzd4a3mcf3skd65wjjds3a6dinjnj397iqwsaw"; depends=[curl ncdf4 raster]; };
+  FjordLight = derive2 { name="FjordLight"; version="0.8"; sha256="031wpxvdbwkj6ay18l594hs0w45amdxd2lppwpa8sx4jyycfwbn9"; depends=[curl ncdf4 raster]; };
   FlexDir = derive2 { name="FlexDir"; version="1.0"; sha256="1gb5alv9jsnw0135g63cy757pxhdw6cgwfm8dpcm8dj9zqg10dkm"; depends=[]; };
   FlexGAM = derive2 { name="FlexGAM"; version="0.7.2"; sha256="04xbglg9vli18fd24k1qyvbl7svp70k67ig3jiss96fgkgbi6w7c"; depends=[MASS Matrix mgcv scam]; };
   FlexParamCurve = derive2 { name="FlexParamCurve"; version="1.5-6"; sha256="0p0c949cdb05r6xnjc7k1i47z809g4mda1l94q7f4dikpnl1h2zd"; depends=[nlme]; };
@@ -1839,6 +1881,7 @@ in with self; {
   FluMoDL = derive2 { name="FluMoDL"; version="0.0.3"; sha256="0vp3w6hpph6svz8940w9yk9c5iv4n9mj94f9si1ks0xjbi948rqd"; depends=[dlnm mvmeta tsModel]; };
   Fluidigm = derive2 { name="Fluidigm"; version="0.2"; sha256="1k9pl0r9pw2879m05qnya91fyl59axwh2z9n0lx7i54admkz8pgc"; depends=[data_table reshape]; };
   FlyingR = derive2 { name="FlyingR"; version="0.2.2"; sha256="08jyp4hfb9pydicx4i6vgi94p6pykyi545w8svhar2fwmn1ik955"; depends=[kableExtra knitr Rcpp rmarkdown]; };
+  FnR = derive2 { name="FnR"; version="1.1.0"; sha256="0cbnac971yp61khixh2kvwyz4phxz87xswbbkljiry5mdqknpxz2"; depends=[]; };
   FoReco = derive2 { name="FoReco"; version="0.2.6"; sha256="07ivfjs836g3k13kfv188lxv300n43vczmkcapxnwiii643y1kw8"; depends=[cli corpcor mathjaxr Matrix osqp]; };
   ForIT = derive2 { name="ForIT"; version="2.4.0"; sha256="0kc15b05dp3cybjln49d0ly962s4gayidi0qpb6mcy0qdxvb17lv"; depends=[dplyr ggplot2 magrittr metR purrr RColorBrewer rlang tibble tidyr]; };
   ForagingOrg = derive2 { name="ForagingOrg"; version="0.1.0"; sha256="0jsji653xwnmsa1j1h6da99f48kla9yk58z05za7bwk1qw9rbi70"; depends=[PairViz TSP]; };
@@ -1850,12 +1893,12 @@ in with self; {
   ForestDisc = derive2 { name="ForestDisc"; version="0.1.0"; sha256="1mzlrqjxsja51yyxckj4ym1vpfpq30vlhvs8clrg8jv7kz86hdwk"; depends=[moments nloptr randomForest]; };
   ForestFit = derive2 { name="ForestFit"; version="2.2.3"; sha256="0r8hr1hl5js7bc0wggxr7j0psydizlysfgqd5l55i8s79jx9bqhp"; depends=[ars pracma]; };
   ForestGapR = derive2 { name="ForestGapR"; version="0.1.7"; sha256="0pj1rq2gqhigrv5v734hj0gmjb6qnipy9crd14qdvzbjhprg4i4z"; depends=[igraph poweRlaw raster sp spatstat_explore spatstat_geom VGAM viridis]; };
-  ForestTools = derive2 { name="ForestTools"; version="1.0.1"; sha256="0ghj411sg8054zxipjbbkhsbx7q98ji98p9wk0xzx8mzrdsi04qy"; depends=[imager Matrix plyr Rcpp sf terra]; };
+  ForestTools = derive2 { name="ForestTools"; version="1.0.2"; sha256="1c5p4j9kva63hi54zj76vxfydrgkfvszwzzlpn0ippijgrwmcf6j"; depends=[GLCMTextures imager Matrix sf terra]; };
   FormShare = derive2 { name="FormShare"; version="1.0.1"; sha256="17wdqjymc33r7r17h3fwi0ixlbpl77k1fm9a6r3gjwxixz8kicx3"; depends=[httr jsonlite R6]; };
   FormulR = derive2 { name="FormulR"; version="1.0.0"; sha256="03jyhm2wmgwjd0yj8jbc10xr51rzsgqz0dsxk3qq8kvlbyp4d87v"; depends=[dplyr ggplot2 knitr]; };
   Formula = derive2 { name="Formula"; version="1.2-5"; sha256="0p1m9pqcn8ns0sn67js53677q8gwxgbl4bymcn5y2r0dc1s4c9c6"; depends=[]; };
-  FossilSim = derive2 { name="FossilSim"; version="2.3.2"; sha256="0wirvjs6gvmgwxwixf1fld7xzq5hyyzfh3fhpglpah8hm744b6hf"; depends=[ape]; };
-  FossilSimShiny = derive2 { name="FossilSimShiny"; version="1.1.1"; sha256="05prhgzq1fqh21wp6k1saqm1cwapbs1b7ikn8jj2f7yjwry4nl31"; depends=[FossilSim shiny]; };
+  FossilSim = derive2 { name="FossilSim"; version="2.3.3"; sha256="011lvhvlqwra6fzdszd6pq82h9r5fsx98d9afcc1z1ksa87md8vq"; depends=[ape]; };
+  FossilSimShiny = derive2 { name="FossilSimShiny"; version="1.1.2"; sha256="1i9ni95qynw96d7v7b1a1wrixl3wm73rz4fzj07kcwb3ypps2b77"; depends=[FossilSim shiny shinyjs TreeSim]; };
   FourScores = derive2 { name="FourScores"; version="1.5.1"; sha256="1la9d1hfcmi0zg58yl0a7nj36giagh0fwrc7wxyqdq0c7zf1hfzq"; depends=[]; };
   FourWayHMM = derive2 { name="FourWayHMM"; version="1.0.0"; sha256="0zi42d214dq70ypgj8g57fwjbqfih4z0956njpj2739aqsnjq5v4"; depends=[data_table doSNOW foreach LaplacesDemon mclust snow tensor tidyr withr]; };
   FourgameteP = derive2 { name="FourgameteP"; version="0.1.0"; sha256="15yn47737768fkjjv8ykc9lw7x58pq44k90d9d4c9hp20zw5f3by"; depends=[]; };
@@ -1869,13 +1912,13 @@ in with self; {
   FreqProf = derive2 { name="FreqProf"; version="0.0.1"; sha256="1yqn2435l2sghfcv5mma0rv9yqvpa69z8cqqsjlrlbih9gib82d4"; depends=[ggplot2 reshape2 shiny]; };
   Fstability = derive2 { name="Fstability"; version="0.1.2"; sha256="0kscdmrs5namvhi112b47c811w0bg9s3xg48mfa566pxwxz1nv45"; depends=[]; };
   FunCC = derive2 { name="FunCC"; version="1.0"; sha256="0n8fnrq3grsxxcz1841d3d643nyrwc7y15na1205zxq6rmdjx7wa"; depends=[biclust ggplot2 narray RColorBrewer reshape]; };
-  FunChisq = derive2 { name="FunChisq"; version="2.5.3"; sha256="091arn9d42zsa7ky21k77ak0qirz0x7nai72s54mi70nyjn173dk"; depends=[BH dqrng Rcpp Rdpack]; };
-  FunWithNumbers = derive2 { name="FunWithNumbers"; version="1.1.1"; sha256="1342n3gsrlk70njj45vxpk5sl467pxmsixkmvi4s9aim6d9my7pn"; depends=[gmp Rmpfr]; };
+  FunChisq = derive2 { name="FunChisq"; version="2.5.4"; sha256="0y5minhjas4rihg8c4lvy2f323makza28p20c303rpzh4k50diji"; depends=[BH dqrng Rcpp Rdpack]; };
+  FunWithNumbers = derive2 { name="FunWithNumbers"; version="1.2"; sha256="0p3czcc6v1wwdbdfmar1q0z4b7r75p39zd2bw0dl14wcn7fn59sq"; depends=[bigBits gmp Rmpfr]; };
   FuncDiv = derive2 { name="FuncDiv"; version="1.0.0"; sha256="19jfxy9mhhsfr2mf3l9d125swy20qcyxfqd2fk9m6cly9ajzggza"; depends=[ape collapse data_table parallelDist Rcpp RcppArmadillo RcppParallel RcppXPtrUtils]; };
   FuncMap = derive2 { name="FuncMap"; version="1.0.10"; sha256="0iaay6qz9a2s77xjfpp7wm37y7xwnvmlw6s5k5riccmqzc6dcjs7"; depends=[mvbutils]; };
   FuncNN = derive2 { name="FuncNN"; version="1.0"; sha256="0kcr7c54igzi0imp8w9a0mnrqaa2qcls9777scsjz5sbcxdy3if3"; depends=[caret doParallel fda fda_usc flux foreach ggplot2 ggpubr keras Matrix pbapply reshape2 tensorflow]; };
   FunctanSNP = derive2 { name="FunctanSNP"; version="0.1.0"; sha256="1f1zdwr9pmpscb8va9gd7yl0vyxmv0hy6swfrh7074whvs0dkbn7"; depends=[caret fda funData glmnet lava MASS]; };
-  FunnelPlotR = derive2 { name="FunnelPlotR"; version="0.4.2"; sha256="0lsbxl4ilgszd3q8h00skbnl36q47ghi7afbcmbjqdqzkpl8yfig"; depends=[dplyr ggplot2 ggrepel scales]; };
+  FunnelPlotR = derive2 { name="FunnelPlotR"; version="0.5.0"; sha256="0h3nq5dd14n49zzgwaqqsh5qdx1xcsgskzqsajz1qpy86bm4ji89"; depends=[dplyr ggplot2 ggrepel rlang scales]; };
   FusionLearn = derive2 { name="FusionLearn"; version="0.2.1"; sha256="070prpxz1y5lzi4hjxbv4h3p4hskrm51d7p3yhhg71p8rw1mcla1"; depends=[]; };
   Fuzzy_p_value = derive2 { name="Fuzzy.p.value"; version="1.1"; sha256="13h6armh9g57zqxyjqk6mq81jlfqxqrg2sb5p9rrhslka5m01zis"; depends=[FuzzyNumbers]; };
   FuzzyAHP = derive2 { name="FuzzyAHP"; version="0.9.5"; sha256="02sx32vlvnr0fzw8rf0f6hiikqn7xp1ibpqzxhxwv8yij2qkiyci"; depends=[MASS]; };
@@ -1885,7 +1928,7 @@ in with self; {
   FuzzyM = derive2 { name="FuzzyM"; version="0.1.0"; sha256="12arx4flgykdkynnj341pgpd85k7xh6491bv9v9da63w6rp0kdm6"; depends=[]; };
   FuzzyNumbers = derive2 { name="FuzzyNumbers"; version="0.4-7"; sha256="12xficdsln31rzfziycw6z0912cgrq6mkvz3f1nbli9lzqrypxzl"; depends=[]; };
   FuzzyNumbers_Ext_2 = derive2 { name="FuzzyNumbers.Ext.2"; version="3.2"; sha256="0gldq0bg1p1vmrn35prha44d7lyymz0jzshdyp2c5rx433mny7h5"; depends=[FuzzyNumbers]; };
-  FuzzyPovertyR = derive2 { name="FuzzyPovertyR"; version="2.0.1"; sha256="1v5vnk8r7vhwgmp5hbpwzn0cks4i8z3jm7r3rbbdfjjf4fba2vkd"; depends=[dplyr ecp ggplot2 reshape2 tidyr]; };
+  FuzzyPovertyR = derive2 { name="FuzzyPovertyR"; version="2.1.0"; sha256="0nqjiz8f0vqcmlcqva5zr971rrcfbw6gak22y2wqbila0za6asfv"; depends=[dplyr ecp ggplot2 tidyr]; };
   FuzzyQ = derive2 { name="FuzzyQ"; version="0.1.0"; sha256="1camdw7rnzf02nqjlmkr7mqpc38dafq9nw8x7pzwi1lh5xwv5dia"; depends=[cluster]; };
   FuzzyR = derive2 { name="FuzzyR"; version="2.3.2"; sha256="0d0zf8diw7m10zfx0r5zg5arhf4a90sva77h6rvfywixldwrnk7s"; depends=[plyr shiny]; };
   FuzzyResampling = derive2 { name="FuzzyResampling"; version="0.6.3"; sha256="1gic7la5ks7v37f3h4azazz4sv650sp6pl199wk4021blkah5r56"; depends=[]; };
@@ -1898,12 +1941,12 @@ in with self; {
   GA = derive2 { name="GA"; version="3.2.4"; sha256="1gc1n2xdzrkc9cvrm6a50c9xpwvf0isdgvs1qpm8x1afacw6d7z5"; depends=[cli crayon foreach iterators Rcpp RcppArmadillo]; };
   GABB = derive2 { name="GABB"; version="0.3.8"; sha256="16gdg5yvzlvic3qc9ya68xkbx55jg7lvlnqjry9x4c5hvggywzvl"; depends=[dplyr egg ggforce ggplot2 ggplotify ggpubr ggrepel Hotelling pheatmap tidyr vegan]; };
   GACFF = derive2 { name="GACFF"; version="1.0"; sha256="0lhjzb6cj8838dh4423929z7bwpa6cv3dn84rccwi3382vsq9g2c"; depends=[]; };
-  GAD = derive2 { name="GAD"; version="1.1.1"; sha256="0lyrw0d7i7yn1wkqlbf3rg3dnijfwsjn3kdbsg19hmvwq6qpsak2"; depends=[matrixStats R_methodsS3]; };
+  GAD = derive2 { name="GAD"; version="2.0"; sha256="1qb735hbqv00yz0xaw0k3vpg7j9lqbbkzkqdys25n64ji59qr33x"; depends=[matrixStats]; };
   GADAG = derive2 { name="GADAG"; version="0.99.0"; sha256="1ycg48idrq2yrk1fxs16yl5wwg3kbfki8xppmh311rrzf75c6z4g"; depends=[igraph MASS Rcpp RcppArmadillo]; };
   GAGAs = derive2 { name="GAGAs"; version="0.6.2"; sha256="04gfxhvbb9mm2rl6n2kfch8d9ggzblr5ch2p561x39dgwmwbpc2r"; depends=[Rcpp RcppEigen survival]; };
   GAGBLUP = derive2 { name="GAGBLUP"; version="1.0"; sha256="192r4fr3idl78g9vllb7hdvlrfkghh1airblb94c1mjyrjkj2hxa"; depends=[doParallel foreach GA]; };
   GAIPE = derive2 { name="GAIPE"; version="1.1"; sha256="035x5x8ig85q51bf4qgj5n5qq6clwjp4xk5bf35gswn7qxd13yls"; depends=[]; };
-  GALLO = derive2 { name="GALLO"; version="1.4"; sha256="0mpm7z77s072d8yv1zl2w7wganz190vk757jklkz2g7ajs9k6yz3"; depends=[circlize data_table doParallel dplyr DT foreach ggplot2 igraph lattice RColorBrewer rtracklayer stringr unbalhaar visNetwork webshot]; };
+  GALLO = derive2 { name="GALLO"; version="1.5"; sha256="0idzzkgxfr5im9p7xk7f4iph445rp8y2dzdzddm4x9i4fnh5hkwn"; depends=[circlize CompQuadForm data_table doParallel dplyr DT foreach ggplot2 igraph lattice Matrix RColorBrewer rtracklayer stringr unbalhaar visNetwork webshot]; };
   GAMens = derive2 { name="GAMens"; version="1.2.1"; sha256="1z10wxcg277fra2lch464l0kb02lspw9qr1i2wmq11wcz0k9qnl8"; depends=[caTools gam mlbench]; };
   GANPA = derive2 { name="GANPA"; version="1.2"; sha256="1c2yvh6sqx75hg0lsmflgd9mdic8imysv8dn46g4abvfwjhxsafp"; depends=[GANPAdata]; };
   GANPAdata = derive2 { name="GANPAdata"; version="1.0"; sha256="0mhdadl7zgsacn59ym42magg3214k1xhabwn78fv7kgccszcgc86"; depends=[]; };
@@ -1911,7 +1954,6 @@ in with self; {
   GARCHSK = derive2 { name="GARCHSK"; version="0.1.0"; sha256="0fwzv8js3d9klbzs58m946k7q50yxpf0cxia3r2z2gy85xphrsm0"; depends=[Rsolnp]; };
   GARCOM = derive2 { name="GARCOM"; version="1.2.2"; sha256="0fz8i4zidw47p6zpb83988k6rwb12scv90n1lvy2jb1fq29zp63q"; depends=[data_table vcfR]; };
   GAS = derive2 { name="GAS"; version="0.3.4"; sha256="014b2y9qrv44j5v559bnw7yiacs9aarsgpbrj3clxm4n0srhv843"; depends=[cubature MASS numDeriv Rcpp RcppArmadillo Rsolnp xts zoo]; };
-  GAabbreviate = derive2 { name="GAabbreviate"; version="1.3"; sha256="0cq6bg3w0ji44rsz1p4j17fk0jg8rafbjixwi3fjdndc3yd874r5"; depends=[GA psych]; };
   GAparsimony = derive2 { name="GAparsimony"; version="0.9.5"; sha256="1l3x6m7phbin6ba6rclljzym9zgx9nskz65ggkg0ij24pz5h7y51"; depends=[foreach iterators]; };
   GB2 = derive2 { name="GB2"; version="2.1.1"; sha256="05hvyyjlxckhgqipssb7qkfqv3dq202jpjyp9y7hgmka0vsix2yr"; depends=[cubature hypergeo laeken numDeriv survey]; };
   GB2group = derive2 { name="GB2group"; version="0.3.0"; sha256="1dbyc7izyggfrsq2gj7rwff5qjyy6bx6ip09xvbj73xqczv8fkcd"; depends=[GB2 ineq minpack_lm numDeriv]; };
@@ -1928,10 +1970,11 @@ in with self; {
   GDAdata = derive2 { name="GDAdata"; version="0.93"; sha256="13ks97i289rc4i7gpqrifwbj0m9rx8csjhnfg8mad10qmjwz7p8b"; depends=[]; };
   GDAtools = derive2 { name="GDAtools"; version="2.1"; sha256="1561zzw177kc7x3hiqzi7qm1yvczx8lzjb2j7d45zgwgz96v9vf8"; depends=[descriptio FactoMineR ggplot2 ggrepel rlang]; };
   GDELTtools = derive2 { name="GDELTtools"; version="1.7"; sha256="0v368chcgqnrfy2isy8z7gl0xizafhxlcd29gr89iblhrzwmssid"; depends=[datetimeutils dplyr plyr stringr]; };
+  GDILM_SIR = derive2 { name="GDILM.SIR"; version="1.2.1"; sha256="08bcxnv5vwshj5hsxs6z8sny8hkb65aihcijlns0zinsdf685rgl"; depends=[MASS Matrix mvtnorm numDeriv psych]; };
   GDINA = derive2 { name="GDINA"; version="2.9.4"; sha256="10bbwr4q6cp36dnwhddviqg7f00h92gdmvblw0lxn72v4869vhn1"; depends=[alabama ggplot2 MASS nloptr numDeriv Rcpp RcppArmadillo Rsolnp shiny shinydashboard]; };
-  GDPuc = derive2 { name="GDPuc"; version="0.11.1"; sha256="1y91iivbfwrnjy9wg6dm9v0hd23fgqmry60sw2a2f5n0hflbgafc"; depends=[cli crayon dplyr glue lifecycle magrittr rlang tibble tidyr tidyselect withr]; };
+  GDPuc = derive2 { name="GDPuc"; version="1.0.0"; sha256="0in9nywf4nq8ivr142z15srf71rwm5mxnf8s7dp9fxl6axmizjs1"; depends=[cli crayon dplyr glue lifecycle magrittr rlang tibble tidyr tidyselect withr]; };
   GDSARM = derive2 { name="GDSARM"; version="0.1.1"; sha256="0id3z450prnrd6rdcv4xaizmjkdhjv8vdbpbnpniaml66kqsadvh"; depends=[lpSolve]; };
-  GE = derive2 { name="GE"; version="0.4.2"; sha256="0fba4l6497r9lxc5jdi6s9nsjgbqb2x5f9nphx7c9ar10rjqgqqy"; depends=[CGE data_tree DiagrammeR]; };
+  GE = derive2 { name="GE"; version="0.4.5"; sha256="0fnf6z08989g132p0prif49zqa3a399wq0wzz7n964cqvz5g3j5f"; depends=[CGE data_tree DiagrammeR]; };
   GEC = derive2 { name="GEC"; version="0.1.0"; sha256="1kcczyih3lg1cc6nppxbpz1zkq9priy8xwapd6kvkzmyw8npback"; depends=[mistr]; };
   GEEaSPU = derive2 { name="GEEaSPU"; version="1.0.2"; sha256="02pwjqd94kranc1f69bx9rzk27kchavhvhl9fygjhrr40nwq3pbg"; depends=[gee Rcpp RcppArmadillo]; };
   GEEmediate = derive2 { name="GEEmediate"; version="1.1.4"; sha256="1x0r2qcyd9hrhkws5zi0pjdc40w8wal3jpvvajj3cr8c1r8dpfzz"; depends=[gee]; };
@@ -1943,10 +1986,11 @@ in with self; {
   GENMETA = derive2 { name="GENMETA"; version="0.2.0"; sha256="11wlcnj919jws62ngf29gr2p0shdlm917hkz5iwfss1m8gcbfjnl"; depends=[magic MASS Matrix pracma]; };
   GEOmap = derive2 { name="GEOmap"; version="2.5-5"; sha256="0gs8zd8rcdxgz0pm3nlynf4qy8axfsv7syagb22zi8yd4s4sf5wa"; depends=[fields MBA RPMG sf]; };
   GESE = derive2 { name="GESE"; version="2.0.1"; sha256="0h3s2sbnv5wilr2mj6bnl2892p16pxrs341gg6jql1a540p669sk"; depends=[kinship2]; };
-  GET = derive2 { name="GET"; version="1.0"; sha256="0g5cb9a8bhffxjippam3dnh0czml1cbp3vzq5xlxpymjk4x0rgpm"; depends=[cluster ggplot2 gridExtra viridisLite]; };
-  GETdesigns = derive2 { name="GETdesigns"; version="1.1.0"; sha256="1rc8vcpfv240qmg3xgqx1rlygw7l3hjkh1napj3pc9j6ffpyyk2a"; depends=[]; };
+  GET = derive2 { name="GET"; version="1.0-2"; sha256="0z977w3chrwr9bxlx7l45qqc7nj2z5gx886ybjxclh6s5zgc2d9f"; depends=[cluster ggplot2 gridExtra viridisLite]; };
+  GETdesigns = derive2 { name="GETdesigns"; version="1.2.0"; sha256="1kd08vdra3akdkvk6n9i6w4m2qmlnkjqjnssdn8f317vwbhjcmf3"; depends=[]; };
   GEVACO = derive2 { name="GEVACO"; version="1.0.1"; sha256="0zkan4w96g3qc1hgla90mh32b55bk58gax095p4nxrfi46f8w3rf"; depends=[nlme RLRsim]; };
   GEVcdn = derive2 { name="GEVcdn"; version="1.1.6-2"; sha256="0vmm9fhyrk5m0zwy7fpq5j9zinws0gn2saf4j9plqc9gj1gphjn0"; depends=[]; };
+  GEmetrics = derive2 { name="GEmetrics"; version="1.0.0"; sha256="1is78g8jm551bc7qb61jm6c9qcqygbh4nxj89sfccbz08k1xljyl"; depends=[BGLR]; };
   GFA = derive2 { name="GFA"; version="1.0.5"; sha256="1ldpa12awb5d8mn25wn34nclqc4fyq690siq0wdq4c8fzgpv2xad"; depends=[]; };
   GFD = derive2 { name="GFD"; version="0.3.3"; sha256="1d40fwk367ww544z25jwlx2kdm1gv7y6ijl8vnpi198n7k1hdgpl"; depends=[magic MASS Matrix plotrix plyr shiny shinyjs shinythemes shinyWidgets tippy]; };
   GFDmcv = derive2 { name="GFDmcv"; version="0.1.0"; sha256="094b41sx3czz9sjqhvxggkmrdcwfwv8ww9k4286vzd055jbvk5hh"; depends=[doParallel foreach HSAUR MASS Matrix mvtnorm Rcpp RcppArmadillo stringr]; };
@@ -1958,8 +2002,8 @@ in with self; {
   GFisher = derive2 { name="GFisher"; version="0.2.0"; sha256="0ilvl8y118iicq5anzcsm94yz3bq890mb627dxi6z61cqazjbbai"; depends=[Matrix mvtnorm]; };
   GGClassification = derive2 { name="GGClassification"; version="0.1"; sha256="03wis5ng2mnfhp33xrag8xbmvjagzr1909a6x94wv7s2spji00rp"; depends=[Rcpp RcppEigen]; };
   GGEBiplots = derive2 { name="GGEBiplots"; version="0.1.3"; sha256="0h7irlmq283bx1hlqyv8bi228kd6xkc7sdw6nq18v3s7b0a9bhcm"; depends=[ggforce ggplot2 scales]; };
-  GGIR = derive2 { name="GGIR"; version="3.0-9"; sha256="1xvgnhlf6hsx9v5ljsxg6k6l808mdp7d71kdx6qxm306mbrby33k"; depends=[ActCR data_table doParallel foreach GGIRread ineq irr lubridate psych read_gt3x signal unisensR zoo]; };
-  GGIRread = derive2 { name="GGIRread"; version="0.3.3"; sha256="01indzna0z8rlcc29b4hfssn0xl07brwxpk3ysdanla32qa67slc"; depends=[bitops matlab Rcpp]; };
+  GGIR = derive2 { name="GGIR"; version="3.1-1"; sha256="1vmx4bmjsk0sdxpafmpsiiiv0z4pyi6lfsxbb9mrqmhkqdhp2yrf"; depends=[ActCR data_table doParallel foreach GGIRread ineq irr lubridate psych read_gt3x signal unisensR zoo]; };
+  GGIRread = derive2 { name="GGIRread"; version="1.0.1"; sha256="0kad21xqwb2c4phg4mq7480qvki5frn2c2slfbcfj9paxxl4ha16"; depends=[bitops matlab Rcpp]; };
   GGMncv = derive2 { name="GGMncv"; version="2.1.1"; sha256="0lih9dyb5aqrawhiy2vhv63b132hhzq6zq0x6rbrhy8kbkldhigr"; depends=[GGally ggplot2 glassoFast MASS mathjaxr network numDeriv pbapply Rcpp RcppArmadillo Rdpack reshape sna]; };
   GGMnonreg = derive2 { name="GGMnonreg"; version="1.0.0"; sha256="1bhqk172ddc7xq1hqj1i6q8np6jvmf2xypvd8kp3w1bcsafsbms8"; depends=[bestglm corpcor doParallel foreach GGally GGMncv ggplot2 MASS Matrix network poibin psych Rdpack sna]; };
   GGMridge = derive2 { name="GGMridge"; version="1.4"; sha256="179g82w7vrbkvq0b8bcaakcjhqz1gsyc2qyh70ldglbj0sj5yh4m"; depends=[MASS mvtnorm]; };
@@ -1974,6 +2018,7 @@ in with self; {
   GIFT = derive2 { name="GIFT"; version="1.3.2"; sha256="0ngrci818f0k21aiy7dnzpip33sikjf2kp7j9l3r7mwp35h6q2qd"; depends=[ape curl dplyr httr2 jsonlite phytools purrr sf tidyr]; };
   GIFTr = derive2 { name="GIFTr"; version="0.1.0"; sha256="101vr2qasky8hnxp5i3lhlnymwzciypqwvhpl6mrr0r0czgpcz2f"; depends=[glue stringr]; };
   GIGrvg = derive2 { name="GIGrvg"; version="0.8"; sha256="09n0nhsv3v61asfzghzxa9sr3ryl25mlvj73gk9ql9wlrynd3wrl"; depends=[]; };
+  GIMMEgVAR = derive2 { name="GIMMEgVAR"; version="0.1.0"; sha256="1r5j5s8pmjrndr4qsi4ivrqfyj9rlmw72ya850ig387z9gl84n47"; depends=[graphicalVAR here png qgraph]; };
   GISINTEGRATION = derive2 { name="GISINTEGRATION"; version="1.0"; sha256="1nl1cbjcjkyd67i0qk0skbrk9ya9fydw9iiq4ip11bjg86661jjb"; depends=[RecordLinkage sf shapefiles stringr syn tm]; };
   GISSB = derive2 { name="GISSB"; version="1.1"; sha256="0clhch4xvklrmk7h6b7vz83zzlj5r1lzrszy73agmpdbs5cax5sy"; depends=[cppRouting dplyr here httr igraph leaflet magrittr nabor purrr RCurl reshape2 rlang sf stringr tibble tidygraph tidyselect]; };
   GInSARCorW = derive2 { name="GInSARCorW"; version="1.15.8"; sha256="0hxcaixr8f3pq4kpzhfrbm7blvkq6sk3pz63bfjy6n1lhlashb13"; depends=[circular raster sp]; };
@@ -2015,14 +2060,14 @@ in with self; {
   GOxploreR = derive2 { name="GOxploreR"; version="1.2.7"; sha256="0878czn9fyjh52a8qwmffl47x1jy8pw4m35wzicxj7k7ck58ws9k"; depends=[annotate biomaRt dplyr ggplot2 ggraph GO_db gontr igraph network]; };
   GPArotateDF = derive2 { name="GPArotateDF"; version="2023.11-1"; sha256="161mml6pwcqza6asn7315lqkn69k9k1l9rwa59f9m68v427a5lr0"; depends=[GPArotation]; };
   GPArotation = derive2 { name="GPArotation"; version="2024.3-1"; sha256="1njl4qg5jgmx14r41q1kzfmhf4zga3yjkig0h7ar35bq56pmgxl8"; depends=[]; };
-  GPBayes = derive2 { name="GPBayes"; version="0.1.0-5.1"; sha256="1yi1xc27kdylw23nc84phnmyzhlxca20pcjvlwxykpmkag81qygw"; depends=[Rcpp RcppEigen RcppProgress]; };
-  GPCERF = derive2 { name="GPCERF"; version="0.2.3"; sha256="0zl4g5q4pd503wiw0pkj2233fdhfv14ydr8q0c97agmng3rp8kv6"; depends=[cowplot ggplot2 logger MASS Rcpp RcppArmadillo Rfast rlang spatstat_geom SuperLearner wCorr xgboost]; };
+  GPBayes = derive2 { name="GPBayes"; version="0.1.0-6"; sha256="0qrpybxvwajmwq8ybllk298wbc6q6h937b93q2az5d0bw4nqsiq2"; depends=[Rcpp RcppEigen RcppProgress]; };
+  GPCERF = derive2 { name="GPCERF"; version="0.2.4"; sha256="0nzfd0sz73sb4903vpgix9m767np1prcmi3m1y3pq6dzmxmqzh6a"; depends=[cowplot ggplot2 logger MASS Rcpp RcppArmadillo Rfast rlang spatstat_geom SuperLearner wCorr xgboost]; };
   GPCMlasso = derive2 { name="GPCMlasso"; version="0.1-7"; sha256="0hlhm780xyila4idk5r87pw046xi3lxhhpr0a22smhf4klvnlfgc"; depends=[caret cubature ltm mirt mvtnorm Rcpp RcppArmadillo statmod TeachingDemos]; };
   GPFDA = derive2 { name="GPFDA"; version="3.1.3"; sha256="0s5jq2vmz02yr1wd79s6h5c8rvpbkdlnhdy5yfckk5nxddabcymb"; depends=[fda fda_usc fields interp mgcv Rcpp RcppArmadillo]; };
   GPGame = derive2 { name="GPGame"; version="1.2.0"; sha256="1xxilr1ify9ip3vs000jawxplcbf1vqli40frhnwwjqf01kj8jq5"; depends=[DiceDesign DiceKriging GPareto KrigInv MASS matrixStats mnormt mvtnorm Rcpp]; };
   GPIC = derive2 { name="GPIC"; version="0.1.0"; sha256="1v44hkzf3wh09j5pcfmsc8h5jzmqa501bwkmdwwjb7pz64976r23"; depends=[]; };
   GPL2025 = derive2 { name="GPL2025"; version="1.0.1"; sha256="0af42g3v91fbcmla2yq98v8rd4ifaznb1xvw7ny41r3843d8appc"; depends=[dplyr]; };
-  GPLTR = derive2 { name="GPLTR"; version="1.4"; sha256="0g8h94fc9c8w86z302f5ld6j3rzh6is7z5rjxr1v4arblpibxzr3"; depends=[rpart]; };
+  GPLTR = derive2 { name="GPLTR"; version="1.5"; sha256="0rlaryw8l1hj15x9s57w7rif063njcc72l42bpc9lm8r5knjyjpb"; depends=[rpart]; };
   GPM = derive2 { name="GPM"; version="3.0.1"; sha256="01vd68w5pnwhng83x5i0k9c5fhsn9siyzzndkvkmpis4mjm42sgv"; depends=[doParallel foreach iterators lattice lhs pracma randtoolbox Rcpp RcppArmadillo]; };
   GPP = derive2 { name="GPP"; version="0.1"; sha256="1qryza8mamwzwqiy31drf176w192ksw34kpsa0wc8gsp3ylkm2f9"; depends=[rstan]; };
   GPRMortality = derive2 { name="GPRMortality"; version="0.1.0"; sha256="0k5pfyl7r5vsac927aqx19lz93vyk5l3ydqkazn2hwwaw1lh2wav"; depends=[rstan]; };
@@ -2032,7 +2077,7 @@ in with self; {
   GPareto = derive2 { name="GPareto"; version="1.1.8"; sha256="1grs7pxxl9nymmg1qx8a7ln25c2bz47bv06pahq7ackhsh6zlvk9"; depends=[DiceDesign DiceKriging emoa KrigInv ks MASS pbivnorm pso randtoolbox Rcpp rgenoud rgl]; };
   GPfit = derive2 { name="GPfit"; version="1.0-8"; sha256="05mpiyi2vxv0wqp422n1mnxa8msc4daq40cwpnpngbcwqhlgqkby"; depends=[lattice lhs]; };
   GPoM = derive2 { name="GPoM"; version="1.4"; sha256="01j9v4a8ahfddd2mibqs44wjv5q7vm1rsa3nbswfm8x0vg7qv70c"; depends=[deSolve float rgl]; };
-  GPvam = derive2 { name="GPvam"; version="3.0-9"; sha256="15y17z1l23n7kyrgn3q8br70ym1jdqkkysrhkal2flci70b1c7ij"; depends=[Matrix numDeriv Rcpp RcppArmadillo]; };
+  GPvam = derive2 { name="GPvam"; version="3.1-0"; sha256="0mmwg5m85rzaaj8wdxsdn1yqpl08pr3ydmxpfwmm2f7xw0k2k29g"; depends=[Matrix numDeriv Rcpp RcppArmadillo]; };
   GPvecchia = derive2 { name="GPvecchia"; version="0.1.7"; sha256="1dvixffrn3vz98n8p7vqqr9l77m8n1gij5za8z2hfpg78pipa0mi"; depends=[BH fields FNN GpGp Matrix Rcpp RcppArmadillo sparseinv]; };
   GRAPE = derive2 { name="GRAPE"; version="0.1.1"; sha256="1jzvf45ch8x8f2x9kmvv02xz9bix5vplh8143vc4m1yyq42x09c6"; depends=[]; };
   GRCRegression = derive2 { name="GRCRegression"; version="1.0"; sha256="05ll1ncxqnkyp5231xlpkmzd07m2rnmcdzcc68mq1gqfcahakdl1"; depends=[MASS pracma]; };
@@ -2040,7 +2085,7 @@ in with self; {
   GRCdesigns = derive2 { name="GRCdesigns"; version="1.0.0"; sha256="0fa1c9sf2sb085izcimwg78s7a7zgflncx0wbzhh8i8vfmi5xvi9"; depends=[]; };
   GREENeR = derive2 { name="GREENeR"; version="1.0.0"; sha256="18li2xs12gi4c1wsjxdqbjfyw81xsmgnljdrlgj9fdw91w3f9bzw"; depends=[classInt data_table dplyr FME ggplot2 gridExtra magrittr networkD3 parallelly reshape2 sf tidyselect tmap]; };
   GREMLINS = derive2 { name="GREMLINS"; version="0.2.1"; sha256="16l2mzd6xm2yk1hs5333w9lfz7iymkwmi3k80yxal9dxqh5hajkb"; depends=[aricode blockmodels igraph pbmcapply R6]; };
-  GRIDCOPULA = derive2 { name="GRIDCOPULA"; version="1.0.0"; sha256="02xyklc8648z3c3pfd3xshlfn5wpkyglc84dqh8sbpba7017gcvr"; depends=[fields ggplot2 limSolve pracma reshape2 Rsolnp]; };
+  GRIDCOPULA = derive2 { name="GRIDCOPULA"; version="1.0.1"; sha256="0d8zibd27z0krn564ba906zlvnb1fx4mfvhpii7pxr0pzjir2a9c"; depends=[evmix fields ggplot2 limSolve pracma reshape2 Rsolnp]; };
   GRNNs = derive2 { name="GRNNs"; version="0.1.0"; sha256="1c36km6g4fcsvpirlh88fl3zq9pdpdyfilahfx949salj0gnqsn6"; depends=[cvTools rdist scales vegan]; };
   GROAN = derive2 { name="GROAN"; version="1.3.1"; sha256="1g6n00gnz47w06wkx0sha97qxxyhc8n2y8zaagqx7krgzx7lkha3"; depends=[plyr rrBLUP]; };
   GRS_test = derive2 { name="GRS.test"; version="1.2"; sha256="1g560n81kqf81n1z3s4yxl24r386q21avjknz6msqzp4xhxhr4l6"; depends=[]; };
@@ -2048,7 +2093,7 @@ in with self; {
   GRSxE = derive2 { name="GRSxE"; version="1.0.1"; sha256="0wzaddhqxygw7p81ni2dl2fwr5kwb4qjar126n9mq8n6bkbvq2yk"; depends=[glmnet ranger]; };
   GRTo = derive2 { name="GRTo"; version="1.3"; sha256="1xkcx2agvrpfnmplgaqx70vz303v8rhwnxdyr4hmdlf4h92lbv8i"; depends=[bootstrap]; };
   GRelevance = derive2 { name="GRelevance"; version="1.0"; sha256="1v1zcsk563cs6c1xn1qzm4v3yydmpr59hkz40xafkq4jbq9k2s9g"; depends=[MASS mvtnorm philentropy]; };
-  GSA = derive2 { name="GSA"; version="1.03.2"; sha256="1f1mrxxdbdlnibgav6nsvbpniz2x3km2svc0hf43spb4zicn0z8p"; depends=[]; };
+  GSA = derive2 { name="GSA"; version="1.03.3"; sha256="0b18b8n6dh3yx9vp5b7ym25590x9qrcbprs5vjnkj0zlj1hphnal"; depends=[]; };
   GSA_UN = derive2 { name="GSA.UN"; version="1.0.0"; sha256="1jj9scv9x32zb24114a4sa43xvjmf3gmq8lnfablldjn7p7yx9cv"; depends=[e1071]; };
   GSAQ = derive2 { name="GSAQ"; version="1.0"; sha256="1p1rab2dlh4h9bfg464nhx708p7kc4q01ifccdh5756lq1qh2kzv"; depends=[]; };
   GSAfisherCombined = derive2 { name="GSAfisherCombined"; version="1.0"; sha256="1xhq5nc3kbz3ml9qkdxm6m0c65fybabfhgqlwii2105jl0ll7qy5"; depends=[]; };
@@ -2058,13 +2103,14 @@ in with self; {
   GSED = derive2 { name="GSED"; version="2.6"; sha256="1k8axyzk55d8idn65qj3gxqjsk27n2r0q78v7524mg8n3fhxs0wj"; depends=[memoise R_utils rootSolve survival]; };
   GSM = derive2 { name="GSM"; version="1.3.2"; sha256="04xjs9w4gaszwzxmsr7657ry2ywa9pvpwpczpvinxi8vpj347jbb"; depends=[gtools]; };
   GSMX = derive2 { name="GSMX"; version="1.3"; sha256="1n1d7rixj14ari46snsmi48qfmy00ihmzvayk3hkrp2d2d0xi2gh"; depends=[MASS]; };
-  GSNA = derive2 { name="GSNA"; version="0.1.4.2"; sha256="0id71ik7s1hl57nzy3qzrdszvy3a83gf3gx8xwdswy53r6yiijf2"; depends=[circlize dendextend dplyr DT ggplot2 igraph Matrix psych raster Rcpp stringi stringr tibble tidyr tmod withr]; };
-  GSODR = derive2 { name="GSODR"; version="3.1.10"; sha256="1fb9m9j0x4bv3pcnmndy25lliwagivw88nsm7j49rv3sbyhr439v"; depends=[countrycode curl data_table R_utils]; };
+  GSODR = derive2 { name="GSODR"; version="4.0.0"; sha256="1c8hsan8jsqz303pwd8bm4xy98qwfdj1nf96dybq0c6yg101fhvf"; depends=[countrycode curl data_table R_utils]; };
   GSSE = derive2 { name="GSSE"; version="0.1"; sha256="034mmxa6kjq5kgikhb5q75viagz5ck9irrjbxm26zq9099qxm13b"; depends=[Iso zoo]; };
-  GSSTDA = derive2 { name="GSSTDA"; version="0.1.3"; sha256="17mrdp5gy21mzb1k9czzzpn7ybymwn0m8c2srwv7d124mp8i3qpz"; depends=[circlize cluster ComplexHeatmap devtools survival visNetwork]; };
+  GSSTDA = derive2 { name="GSSTDA"; version="1.0.0"; sha256="0ah19qf6lfzlw52w43b5qszsxh2yvpz7vnspgvj4qidysbxkxd3q"; depends=[circlize cluster ComplexHeatmap devtools survival visNetwork]; };
   GSelection = derive2 { name="GSelection"; version="0.1.0"; sha256="052vh1haxlzbh3c5i24nrwphapik1y8ribmh6q4axd447ggc0ff9"; depends=[gdata penalized SAM]; };
   GSparO = derive2 { name="GSparO"; version="1.0"; sha256="0xna2crxqwy8fj0s79rxbdcaz9x912rp1vdwqv1557fsnmfv2yf0"; depends=[ggplot2 ThreeWay]; };
   GTDL = derive2 { name="GTDL"; version="1.0.0"; sha256="1dryw7d9qnsa3wibk9kgkldwb660arzdw024p62a123v7i932jz0"; depends=[survival]; };
+  GUD = derive2 { name="GUD"; version="0.0.5"; sha256="0h8ihaph1lwnzzayn3ks09xvjxg2c57048az29zmc2paxbz0mwq3"; depends=[BH MASS posterior Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
+  GUEST = derive2 { name="GUEST"; version="0.1.0"; sha256="1fbad8kf0l69mzagiagf7i5dk7sq8a8qazfxywzppz7xy15acy42"; depends=[GGally network XICOR]; };
   GUIDE = derive2 { name="GUIDE"; version="1.2.7"; sha256="0klaczmn3jnlzyh45yaqlc897irjfk467f4w03awmflaiwan3h6v"; depends=[rpanel tkrplot]; };
   GUILDS = derive2 { name="GUILDS"; version="1.4.6"; sha256="0rjlx13shzmamxzqng0qjl5kwzg111lq245y9z6axb3al3ly59ij"; depends=[nloptr pracma Rcpp]; };
   GUIProfiler = derive2 { name="GUIProfiler"; version="2.0.1"; sha256="10m4d7f2rhw6cmkrnw3jh4iqlkfphf4v7mpfwzw17laq0ncmsx5r"; depends=[graph MASS Nozzle_R1 proftools Rgraphviz rstudioapi]; };
@@ -2074,14 +2120,14 @@ in with self; {
   GWASExactHW = derive2 { name="GWASExactHW"; version="1.2"; sha256="1xzcvmbh27ibd7g9zlqyp215q4yfkhdypcvm5gjkvw1qhd3pl4yk"; depends=[]; };
   GWASbyCluster = derive2 { name="GWASbyCluster"; version="0.1.7"; sha256="0ivlkxbh8m23vbnjfmhk0vfczd5b8lzy9w4gm1m6jpvdm40kn70x"; depends=[Biobase limma rootSolve snpStats]; };
   GWASinlps = derive2 { name="GWASinlps"; version="2.2"; sha256="1q5gaam554r2wxwsdgxjx6hngs2q850hbrkz8y5248i46pz16pcc"; depends=[fastglm horseshoe mombf Rcpp RcppArmadillo survival]; };
-  GWASinspector = derive2 { name="GWASinspector"; version="1.6.5"; sha256="0856bspcpywb07v1g1lwhlp2cfxla9m264g1dyhl61i9yxr10c9d"; depends=[data_table futile_logger ggplot2 gridExtra hash ini kableExtra knitr openxlsx R_utils rmarkdown RSQLite]; };
+  GWASinspector = derive2 { name="GWASinspector"; version="1.7.1"; sha256="16q5r3fzli7vml481fl56mzhl0w8bp0bp70rlsw20a6vzhnk5xf2"; depends=[data_table futile_logger ggplot2 gridExtra hash ini kableExtra knitr openxlsx R_utils rmarkdown RSQLite]; };
   GWEX = derive2 { name="GWEX"; version="1.1.3"; sha256="17yd7c8qiqkfhzllrcrrf1az0rq1g6xkggp35zyd04idcjz4c6hf"; depends=[abind doParallel EnvStats fGarch foreach lmomco MASS mvtnorm nleqslv Rcpp RcppArmadillo Renext]; };
   GWI = derive2 { name="GWI"; version="1.0.2"; sha256="0gwbidvdzk7b1w880baa338h7cikvlzvqmbmdxca4r83jzzwxlj1"; depends=[]; };
   GWLelast = derive2 { name="GWLelast"; version="1.2.2"; sha256="1nm4w5m4ca6npmpvh9nb0cnrbzlyv95nvvhgs3pqcrw4igagm4hj"; depends=[doParallel foreach geosphere glmnet sp spgwr]; };
   GWRLASSO = derive2 { name="GWRLASSO"; version="0.1.0"; sha256="172gjp4f3i2na53l04ddsz588qmhfs4fwdnbnvpjvkrc8xsp9yf2"; depends=[glmnet Matrix numbers qpdf]; };
   GWRM = derive2 { name="GWRM"; version="2.1.0.4"; sha256="13g91bx7b0cf1rnyc6azkvjilvc3kjynb8nclmbh8n3ccm6b0v2r"; depends=[doParallel foreach]; };
   GWSDAT = derive2 { name="GWSDAT"; version="3.2.1"; sha256="0zqln2wnmid2cq5727pkk9lyqs4pb5nml12b5cza1xg0yzp38b6h"; depends=[deldir digest geometry Kendall lattice lubridate MASS Matrix officer raster readxl rhandsontable sf shiny shinycssloaders shinydashboard shinyjs sm sp splancs zoo]; };
-  GWalkR = derive2 { name="GWalkR"; version="0.1.3"; sha256="0njga2h721vmz900z69sabf5vlzpws3fjawqrasj7y2w5hbcc4zk"; depends=[htmlwidgets jsonlite openssl shiny]; };
+  GWalkR = derive2 { name="GWalkR"; version="0.1.4"; sha256="0c5nzqw4q1gn36h7pz43imbbirpwg7snszg9qqn6hzfzgcnqshay"; depends=[htmlwidgets jsonlite openssl shiny]; };
   GWmodel = derive2 { name="GWmodel"; version="2.3-2"; sha256="16brnvq9r5qcyk5rxrak85hsp76z6l6q0vwg40pyd6444n6qkxhx"; depends=[FNN Rcpp RcppArmadillo robustbase sf sp spacetime spatialreg spdep]; };
   GWnnegPCA = derive2 { name="GWnnegPCA"; version="0.0.4"; sha256="1yinzlp22z9z5fk9f1nm14i408yfm5kfgkn3pqnh4bkghs569ivg"; depends=[geodist nsprcomp pracma sf sp spData]; };
   GWpcor = derive2 { name="GWpcor"; version="0.1.7"; sha256="0q43673pmm2c6kss688fpz10b39y3jn1kblv13p8ky0bk82hmcvi"; depends=[corpcor doParallel dplyr foreach geodist pracma sf sp]; };
@@ -2091,10 +2137,10 @@ in with self; {
   GameTheory = derive2 { name="GameTheory"; version="2.7.1"; sha256="1mq8406zgh4yww2jb7xvvmizyis9cb2hwdliacr4hxpjg38c3jdn"; depends=[combinat gtools ineq kappalab lpSolveAPI]; };
   GameTheoryAllocation = derive2 { name="GameTheoryAllocation"; version="1.0"; sha256="0733vmyr0d9scjd5ixpnggr548snd7nj70knf5hbzc59nmbc5y11"; depends=[e1071 lpSolveAPI]; };
   Gammareg = derive2 { name="Gammareg"; version="3.0.1"; sha256="0y3iqhrnppznqmx7sfibmwq3yq1l0jd8cfnpv0hch9byllh0syad"; depends=[]; };
-  GauPro = derive2 { name="GauPro"; version="0.2.11"; sha256="011dw5fcpws0w05iyz5m1zfj1mj3ha1jnnky3pbi0d0n5jmx1h1h"; depends=[lbfgs R6 Rcpp RcppArmadillo]; };
-  GaussSuppression = derive2 { name="GaussSuppression"; version="0.8.3"; sha256="11kl48scwn7mjw98wvbrb0xzswdx0pndr5b340j8iflwbikydj32"; depends=[Matrix RegSDC SSBtools]; };
+  GauPro = derive2 { name="GauPro"; version="0.2.12"; sha256="03v4bhm5c32gql2s0ysxd4r12yjv28ar7nmap55rc38kj66pgzwx"; depends=[lbfgs R6 Rcpp RcppArmadillo]; };
+  GaussSuppression = derive2 { name="GaussSuppression"; version="0.8.5"; sha256="0f6kq34z7p2qws94lwm0c1bnnys7hq0xzjpnhgnbxski4hc3wxqw"; depends=[Matrix RegSDC SSBtools]; };
   GaussianHMM1d = derive2 { name="GaussianHMM1d"; version="1.1.1"; sha256="0c9khbg44yf04wp80bizd7j86gif1apqqafxyvi8692rrhf1r3ax"; depends=[doParallel foreach]; };
-  GeDS = derive2 { name="GeDS"; version="0.2.0"; sha256="0qf4yah7nhjn8qwifr6irgv3iqll3rrf5c9kz90z2ny6c3wh04sg"; depends=[doFuture doParallel doRNG foreach future MASS Matrix mboost plot3D Rcpp Rmpfr TH_data]; };
+  GeDS = derive2 { name="GeDS"; version="0.2.2"; sha256="09aimlk72x82yxnikb75vj9qpz1qg8a6623i61db0g88csashf8c"; depends=[doFuture doParallel doRNG foreach future MASS Matrix mboost plot3D Rcpp Rmpfr TH_data]; };
   GeNetIt = derive2 { name="GeNetIt"; version="0.1-6"; sha256="1ay40ym6khs016bs7ljcn7krqn9bmj2csd7p4nhzapbhp4g45wsc"; depends=[dplyr exactextractr igraph nlme sf sfnetworks spdep terra tidygraph]; };
   GenAI = derive2 { name="GenAI"; version="0.2.0"; sha256="0qwls17p5nv24wx17yyq42sg903119s5z4hi91czas0l4wh9lnif"; depends=[base64enc ggplotify httr jsonlite listenv magick magrittr R6]; };
   GenAlgo = derive2 { name="GenAlgo"; version="2.2.0"; sha256="1pihqxif2v62hwf5761fshyhigcjmlgbvp2j7immxlsysjfw5xgq"; depends=[ClassDiscovery MASS oompaBase]; };
@@ -2125,20 +2171,21 @@ in with self; {
   GenomeAdmixR = derive2 { name="GenomeAdmixR"; version="2.1.7"; sha256="14qnabg1pj8sg2bvd3k4m467bh1q2zfjr0ljxn1ny031sqwis4cy"; depends=[ggplot2 ggridges hierfstat Rcpp RcppArmadillo RcppParallel rlang stringr tibble vcfR]; };
   GenomicTools_fileHandler = derive2 { name="GenomicTools.fileHandler"; version="0.1.5.9"; sha256="09l87wf78bj49cdh7r3x81hn15c4pihxih8l59xxrpgdhp69268c"; depends=[data_table snpStats]; };
   GeoAdjust = derive2 { name="GeoAdjust"; version="2.0.0"; sha256="0251672j2vl9jck31zfcqzsyw8pphzs934j8ljjmnw9qqd3gzd2p"; depends=[fields fmesher ggplot2 Matrix RcppEigen sf SUMMER terra TMB]; };
-  GeoModels = derive2 { name="GeoModels"; version="1.1.9"; sha256="0r7li5hp52kf8ra2pdvwfxz8anr3m15zihfn6in2z6xs754nlc0s"; depends=[codetools data_table dfoptim dotCall64 fields GpGp GPvecchia hypergeo lamW mapproj nabor numDeriv optimParallel pbivnorm plotrix pracma scatterplot3d shape sn sp spam VGAM zipfR]; };
+  GeoModels = derive2 { name="GeoModels"; version="2.0.3"; sha256="0v3mwngmsqqbjbg1hwl993263r98hb60b5slaa3mhcsbchyfhcwf"; depends=[codetools data_table doFuture dotCall64 FastGP fields foreach future hypergeo lamW mapproj nabor pbivnorm plotrix pracma progressr scatterplot3d shape sn sp spam VGAM zipfR]; };
   GeoMongo = derive2 { name="GeoMongo"; version="1.0.3"; sha256="0m5nz5q81jz2v2bl2dbgdbdprrkckxr2c67qn0cg9vms0pi3fawr"; depends=[data_table geojsonR R6 reticulate]; };
   GeoRange = derive2 { name="GeoRange"; version="0.1.0"; sha256="0krj9570wkhdvpaqkq3nf0maglqd44mpwn4v1bymvgpk1i1wf5p3"; depends=[moments proj4 raster sp velociraptr]; };
   GeoWeightedModel = derive2 { name="GeoWeightedModel"; version="1.0.3"; sha256="1ylfggfqylqi76z3ac95cnxmmw3gzddq2r5qx5w0gjyjvrxr8wsv"; depends=[beepr cartography dplyr DT GWmodel raster readxl shiny shinyalert shinyBS shinybusy shinydashboard shinyjs shinyWidgets sp spdep]; };
   GeodRegr = derive2 { name="GeodRegr"; version="0.2.0"; sha256="029yclgi4np000yh42j68v32m32lq2hmkh94q33hh1qkx8rilfa7"; depends=[MASS zipfR]; };
+  GeomArchetypal = derive2 { name="GeomArchetypal"; version="1.0.1"; sha256="112drwxh4khcplrf3krf97v2wxf5qvfgm58mjaswjcdk1zkjdfi0"; depends=[abind archetypal distances doParallel dplyr geometry magrittr Matrix mirai plot3D rlang scales]; };
   GeomComb = derive2 { name="GeomComb"; version="1.0"; sha256="05xb6m2ciszxd13yhqdkildh9nsq19ss8885ngj6ynvbchqkii7r"; depends=[forecast ForecastCombinations ggplot2 Matrix mtsdi psych]; };
   GerminaR = derive2 { name="GerminaR"; version="2.1.4"; sha256="0f2dbq1adbd5p30kf9bi8qqk2s8da0p65i9a0igm16ckwpam7lkk"; depends=[agricolae dplyr DT ggplot2 purrr shiny tibble tidyr]; };
   GetBCBData = derive2 { name="GetBCBData"; version="0.7.0"; sha256="0bc1ar1cx7vxvlld2dishi46a9bxs075vgby1xs8kbxlllknvcsi"; depends=[curl dplyr furrr future jsonlite memoise purrr stringr]; };
   GetDFPData = derive2 { name="GetDFPData"; version="1.6"; sha256="1yxf1i5bipz16pbydl6qxlalh2zpdiigbxd1qczbjc1z78bl5727"; depends=[crayon curl dplyr lubridate readr reshape2 stringr tibble xlsx XML]; };
   GetDFPData2 = derive2 { name="GetDFPData2"; version="0.6.3"; sha256="1dc1ks9mrwc8sjmp6fh47hlhhfwvfign6jmf4cxik28q3253al01"; depends=[dplyr lubridate magrittr memoise purrr RCurl readr rvest shiny stringr tidyr writexl xml2]; };
   GetFREData = derive2 { name="GetFREData"; version="0.8.1"; sha256="15rca6pfsx5hcl1lnz49904b2ps0312mwjv8d4f0g76jhkvqfvss"; depends=[dplyr GetDFPData2 lubridate magrittr purrr readr rvest stringr XML xml2]; };
-  GetLattesData = derive2 { name="GetLattesData"; version="1.4.3"; sha256="1nkik3krz1jy674zg5dxh02lgvbpgmbxbqwrnv9fz86m0c2mbs7b"; depends=[curl dplyr readr stringdist stringr XML]; };
+  GetLattesData = derive2 { name="GetLattesData"; version="1.5"; sha256="0gfjqvzn03qxlyf4hj5kzfy8pqbphrw421bqbkb2pksa6gyvnfnq"; depends=[curl dplyr lubridate readr stringdist stringr XML]; };
   GetQuandlData = derive2 { name="GetQuandlData"; version="1.0.0"; sha256="0j5n2xbjk64nyfdpzphsiwa9k08rvgdfkzbfqahjdy11rk4x1fgi"; depends=[dplyr fs jsonlite memoise purrr readr]; };
-  GetTDData = derive2 { name="GetTDData"; version="1.5.4"; sha256="0g3clqnx4mvqsn743jzlai90ckylv5klkfxyg3lrqfds6n2mjxrh"; depends=[bizdays cli curl dplyr fs humanize lifecycle purrr readxl rvest stringr tibble tidyr xml2]; };
+  GetTDData = derive2 { name="GetTDData"; version="1.5.5"; sha256="085rsqqrmda6mzb7n7kq00hpim62qqa85qk8kx8x5ch4j1qdhwi0"; depends=[bizdays cli curl dplyr fs humanize jsonlite purrr readxl rvest stringr tibble tidyr xml2]; };
   GetoptLong = derive2 { name="GetoptLong"; version="1.0.5"; sha256="00fpm6nd3kqa2ikasxa62jzywi46fvvmx1mdavcp5yrxxn37j8wc"; depends=[crayon GlobalOptions rjson]; };
   Ghat = derive2 { name="Ghat"; version="0.2.0"; sha256="0xvr3xpi3d00ns55bwbj7k74ccs0lf0vf8f74qxhi5389bf3l0zr"; depends=[rrBLUP]; };
   Ghost = derive2 { name="Ghost"; version="0.1.0"; sha256="0anrb1n3f3jnq2p0dgqzw5a0gby2slafv2bybgy5gm3f9fsj831w"; depends=[R6]; };
@@ -2160,7 +2207,7 @@ in with self; {
   Gmisc = derive2 { name="Gmisc"; version="3.0.3"; sha256="1s8gkqg54622xhsmhl7n5pff2b6xfij111m7h3i4inzfjfmziq43"; depends=[abind checkmate forestplot glue Hmisc htmlTable knitr lattice lubridate magrittr Rcpp rlang rmarkdown stringr XML yaml]; };
   GmptzCurve = derive2 { name="GmptzCurve"; version="0.1.0"; sha256="00n28difj8qs3i539fsd2x07qakyjxf77l8rq5fy07h4f4cpyd0x"; depends=[]; };
   GoFKernel = derive2 { name="GoFKernel"; version="2.1-1"; sha256="0xygsdmggl35fafyp431mkwalwixw2r3f32qll1pf72dfwd8y8d3"; depends=[KernSmooth]; };
-  GofCens = derive2 { name="GofCens"; version="0.98"; sha256="0afqjjqqb6vy164qgs8h0kdvw81hl4py05mqnnnwpkak81jdgwii"; depends=[actuar boot fitdistrplus ggplot2 gridExtra survival survminer survsim]; };
+  GofCens = derive2 { name="GofCens"; version="1.0"; sha256="1kflcbydh2p78fqdfz35gp0jsp6xl2823mvsqq0yany9294bdqmr"; depends=[actuar boot fitdistrplus ggplot2 gridExtra survival survminer]; };
   GofKmt = derive2 { name="GofKmt"; version="2.2.0"; sha256="1v9n1hfracincgaip7pym2l9h54azajw4fmsld0ff2rsd5np362z"; depends=[ggplot2 Rcpp RcppArmadillo Rsolnp]; };
   GomoGomonoMi = derive2 { name="GomoGomonoMi"; version="0.1.0"; sha256="16kvf355yzpv0z2rndc5f50pxjnav6ld48j40vyip4h353wpwaks"; depends=[glue htmltools]; };
   GoodFibes = derive2 { name="GoodFibes"; version="0.1.10"; sha256="0pcjb1266zhwwxqhyn9jlq2mpqwxg77aka5k29zc84izyz6ba3nk"; depends=[concaveman imager prodlim rgl splines2]; };
@@ -2173,15 +2220,15 @@ in with self; {
   GrabSVG = derive2 { name="GrabSVG"; version="0.0.2"; sha256="0w53wwaaap90shm17jjkyvcx55cpvpmd9cp9f7cbf36v73n74wjm"; depends=[fitdistrplus Matrix RANN spam sparseMatrixStats]; };
   Grace = derive2 { name="Grace"; version="0.5.3"; sha256="0r41zvgdd5rqm15axqqssik6plwy7snpgw8m32labkfn3f0pp7n0"; depends=[glmnet MASS scalreg]; };
   GramQuad = derive2 { name="GramQuad"; version="0.1.1"; sha256="02bpxs7yyd9805h8whvzfaxg43z4n5zxdj57hx36r3cx03hh26zd"; depends=[pracma]; };
-  GraphPCA = derive2 { name="GraphPCA"; version="1.1"; sha256="0x6j3lyd70zc0c1al1407ma8crzi174d5dqkz6lx4vx24knrlhbs"; depends=[FactoMineR ggplot2 ggplot2movies scatterplot3d]; };
   GrapheR = derive2 { name="GrapheR"; version="1.9-86-5"; sha256="1cjll41857dh5r1jb3zkbxpkqj2qj9s7867nwfdn0h3ws52fb304"; depends=[]; };
   GreedyEPL = derive2 { name="GreedyEPL"; version="1.2"; sha256="19bgrgzb7jdqpljcbhr3d98y331k1b8fbwgcipak6zkhk2vr6vqz"; depends=[Rcpp RcppArmadillo]; };
   GreedyExperimentalDesign = derive2 { name="GreedyExperimentalDesign"; version="1.5.6.1"; sha256="057wpfg5kfgcvfgry12agn7arg917jwgvxhjz6q1na13y8pmqnrv"; depends=[checkmate kernlab nbpMatching Rcpp rJava rlist stringi stringr survey]; };
   GreedyExperimentalDesignJARs = derive2 { name="GreedyExperimentalDesignJARs"; version="1.0"; sha256="14i6m5qlh1fca9xmzid01hicd3bkf6rzl139ss78gvw544zrapw7"; depends=[rJava]; };
   Greg = derive2 { name="Greg"; version="2.0.2"; sha256="13rsah8vf9s8wpkr5hlayyqa8v728cz80bvpg8vmlvnam8isb30s"; depends=[broom dplyr Epi forestplot glue Gmisc Hmisc htmlTable knitr nlme purrr rlang rms sandwich stringr tibble tidyr tidyselect]; };
+  GregoryQuadrature = derive2 { name="GregoryQuadrature"; version="1.0.0"; sha256="067plq78h4qkzsdwdwman4d4n66fx23q4cj21m8mm2zpwqknmnm7"; depends=[pracma]; };
   GreyModel = derive2 { name="GreyModel"; version="0.1.0"; sha256="0vxl4kgihcyl96qiz6sz5icznaa1jpsqqbn1irwmzyngwsh1qvzw"; depends=[]; };
   Greymodels = derive2 { name="Greymodels"; version="2.0.1"; sha256="0gv4kqgn10l3pknx7w26yas1h70gsb2h8a82w2ykxs134xl4vpll"; depends=[cmna dplyr expm ggplot2 Metrics particle_swarm_optimisation plotly readxl scales shiny shinydashboard shinyWidgets]; };
-  GridOnClusters = derive2 { name="GridOnClusters"; version="0.1.0"; sha256="11jir34jdq2kkkgm0rsdn2ivy4r1pkzj0681hxzy9v388lb3icym"; depends=[Ckmeans_1d_dp cluster dqrng fossil mclust plotrix Rcpp Rdpack]; };
+  GridOnClusters = derive2 { name="GridOnClusters"; version="0.1.0.1"; sha256="1zanz8p5ghy7q7dsazv6wfkf5gl2dnbmchw88drbrip1h85gxyid"; depends=[Ckmeans_1d_dp cluster dqrng fossil mclust plotrix Rcpp Rdpack]; };
   GrimR = derive2 { name="GrimR"; version="0.5"; sha256="005ywc31yn1cs54kjlkrryw0s7zm8dqqfjkdlkm4s1sbc9r3mssz"; depends=[car]; };
   GroupBN = derive2 { name="GroupBN"; version="1.2.0"; sha256="0x41x7npaawnh6nxh4d4vmv2zwzc6c5ijrhh6fdpwzl4p75qlh1x"; depends=[arules bnlearn ClustOfVar magrittr MLmetrics PCAmixdata plyr PRROC rlist stringr visNetwork zoo]; };
   GroupComparisons = derive2 { name="GroupComparisons"; version="0.1.0"; sha256="0fxgh1mksrfmd4yjrpxg3nfby5wyx75lj0shb5xrdzl7pxzh56ai"; depends=[car]; };
@@ -2193,7 +2240,7 @@ in with self; {
   GsymPoint = derive2 { name="GsymPoint"; version="1.1.2"; sha256="0wifxgfj67wf1ax56a6j40vckrydrkw5qj7bk875gr0w0ah03a3g"; depends=[ROCR Rsolnp truncnorm]; };
   Guerry = derive2 { name="Guerry"; version="1.8.3"; sha256="01crjdgq7srn8a22a8cm4cbkxd4b0m7pm4fy5r5839ljy2k4dfs7"; depends=[sp]; };
   GxEScanR = derive2 { name="GxEScanR"; version="2.0.2"; sha256="0k3avad4b2x4sqv8iilx5a8gkybjlipx50mj0la4kl9xv0azshkd"; depends=[prodlim Rcpp RcppArmadillo]; };
-  GxEprs = derive2 { name="GxEprs"; version="1.1"; sha256="1ylggdh0rzjz5ms107lg4jzayl0rsnqqzzmmg94j483yij7bm89f"; depends=[]; };
+  GxEprs = derive2 { name="GxEprs"; version="1.2"; sha256="1yv4b99mm1az298idvsb9czx0cgvq5032dv0k3wwcsgc5bk7hwqw"; depends=[]; };
   H2x2Factorial = derive2 { name="H2x2Factorial"; version="2.0.0"; sha256="01if0ps43xhcw6q5khdbvjd0yvvhkcj4gvdx538g2kaxzi3lrj1z"; depends=[mvtnorm]; };
   HAC = derive2 { name="HAC"; version="1.1-0"; sha256="1k19qrirhzl8qaa4svf7qa90r7gphbbvm9m0977z9gd704n8b62a"; depends=[copula]; };
   HACSim = derive2 { name="HACSim"; version="1.0.6-1"; sha256="0hdczpn1x6zcxya8qlp82fzzpli3z2kfvynk5sqk97h1d55d27i4"; depends=[ape data_table matrixStats pegas Rcpp RcppArmadillo shiny]; };
@@ -2206,7 +2253,7 @@ in with self; {
   HCTR = derive2 { name="HCTR"; version="0.1.1"; sha256="1hg8mpallwxpmamk6q8x87w5hlqqwvbahfw5zmr9pisiagbwcsay"; depends=[glmnet harmonicmeanp MASS ncvreg Rdpack]; };
   HCmodelSets = derive2 { name="HCmodelSets"; version="1.1.3"; sha256="0jchr8ncjpl2ljwf09cmpv679vdla11r1vkylhqaacdp1zdb93w6"; depends=[ggplot2 mvtnorm survival]; };
   HDBRR = derive2 { name="HDBRR"; version="1.1.4"; sha256="03jl1m099z6gj2ipi7rnjnrd2rmk4zs54332rwlqyf40dv7ndbz1"; depends=[bigstatsr MASS numDeriv]; };
-  HDCD = derive2 { name="HDCD"; version="1.0"; sha256="0yx2c5i2lfsnc9ra09bkhhvbwlfpi2a5r53riqhf2mb0vnxsxjcy"; depends=[mclust Rdpack]; };
+  HDCD = derive2 { name="HDCD"; version="1.1"; sha256="01fxai59mi5hrjv0yx8f4cd6c5pin87n2sry2lk3w041c7df21gs"; depends=[mclust Rdpack]; };
   HDCI = derive2 { name="HDCI"; version="1.0-2"; sha256="0wxbv54kbygymhh4r7052vnbj603c1kya01ykvmqzzkjyyfzidkz"; depends=[doParallel foreach glmnet iterators lattice Matrix mvtnorm slam]; };
   HDCurves = derive2 { name="HDCurves"; version="0.1.2"; sha256="1656ia0qn4yrbkcrpjiyqq72fbvb088d07ma7kchvg875nzwj42v"; depends=[]; };
   HDDesign = derive2 { name="HDDesign"; version="1.1"; sha256="1jim4h9bwn8r637va7m81kwwsfwyzs9pzn5a9i7c8xz8b1x191bj"; depends=[]; };
@@ -2220,11 +2267,12 @@ in with self; {
   HDNRA = derive2 { name="HDNRA"; version="1.0.0"; sha256="17c2bck5s68kn7b67g5pgxd14n13313899waynn79vnkl319czq9"; depends=[expm Rcpp RcppArmadillo Rdpack readr]; };
   HDOMDesign = derive2 { name="HDOMDesign"; version="1.0-1"; sha256="1wfq4w73dkkmfwn3n9rwpjlpvm1ak76dv9ymh6zqfls5whdmp59g"; depends=[HadamardR]; };
   HDRFA = derive2 { name="HDRFA"; version="0.1.4"; sha256="1dwys28vj5icv33x9zy4r62dslvwr1ajv29gs9lkalrc2wjh2qx2"; depends=[pracma quantreg]; };
-  HDShOP = derive2 { name="HDShOP"; version="0.1.3"; sha256="18i17vv71wc0rqfl2i9bcfl1ry3bd61x9nd6g57x37ggjp7i6j5k"; depends=[Rdpack]; };
-  HDSinRdata = derive2 { name="HDSinRdata"; version="0.1.1"; sha256="0svaly9wjym3bfdg19fjrwya73rnn5lfanx12lziq84f5ms3j4f3"; depends=[]; };
+  HDShOP = derive2 { name="HDShOP"; version="0.1.5"; sha256="129j1dr3vjdg23dy45wws470v05j5azq8nq88b670kdgfw1586qm"; depends=[lattice Rdpack]; };
+  HDSinRdata = derive2 { name="HDSinRdata"; version="0.1.2"; sha256="1wkhy6xf5ahj12sg9s32k53j7z2zpqj7rq0ficngdbyfzs2y6w48"; depends=[]; };
   HDSpatialScan = derive2 { name="HDSpatialScan"; version="1.0.4"; sha256="1hwqdwr4jl887sgnjwq3gmxjhk6zz45nasvy3x7i7rmrqylxig60"; depends=[DT fmsb matrixStats pbapply plotrix purrr raster Rcpp RcppArmadillo sf sp SpatialNP swfscMisc TeachingDemos]; };
   HDStIM = derive2 { name="HDStIM"; version="0.1.0"; sha256="0v43lwszxmka5li6mp10i2c6zq4si5hm2qsb27lib5gq5cxm23r7"; depends=[Boruta broom dplyr ggplot2 ggridges scales tibble tidyr tidyselect uwot]; };
-  HDTSA = derive2 { name="HDTSA"; version="1.0.2"; sha256="1a2bc86047mla0dr89sf1xrin47v0mmdz6j5sil258hjxrl434hy"; depends=[clime Rcpp RcppEigen sandwich]; };
+  HDTSA = derive2 { name="HDTSA"; version="1.0.3"; sha256="1syrqygfdr12sd32wq2ab0gibwbljlbrwzzkfnmhgh8js9dxv6j8"; depends=[clime geigen jointDiag MASS Rcpp RcppEigen sandwich]; };
+  HDXBoxeR = derive2 { name="HDXBoxeR"; version="0.0.1"; sha256="10p41sawddrdpj5sji1jzp63hr6v6hvihb4n3yzci5wvh2a2lx9c"; depends=[dplyr RColorBrewer stringr tidyr wrapr]; };
   HDclassif = derive2 { name="HDclassif"; version="2.2.1"; sha256="0npdnp86m71bsp4096j3yfcvr702ghhvdvxpd2m7lbnc8g3v0sdp"; depends=[MASS rARPACK]; };
   HDclust = derive2 { name="HDclust"; version="1.0.3"; sha256="18l4qp261gj3kscfxs3s03kmb9y5ml31vnpgpm1iy125bks4mr2y"; depends=[Rcpp RcppProgress Rtsne]; };
   HDcpDetect = derive2 { name="HDcpDetect"; version="0.1.0"; sha256="0ai35d9df5pmva52sb1rr20f11h0mbal6d179g865b7w6n90kfr1"; depends=[]; };
@@ -2236,7 +2284,7 @@ in with self; {
   HETOP = derive2 { name="HETOP"; version="0.2-6"; sha256="1fjwyqh7l296pghmc4m81q8icgbhvqvxr61zd638fr46gls3ky2p"; depends=[R2jags]; };
   HEtools = derive2 { name="HEtools"; version="1.0.0"; sha256="0qfygdpmzrnih0p24xdqpxbgmcqbcgvbdjihh3x4cqspawcsffs5"; depends=[polynom]; };
   HGMND = derive2 { name="HGMND"; version="0.1.0"; sha256="1iwqssj66q9dfgddzwqmnnpvxnvlrq7p1axm95lpkf3vrpn5rp6b"; depends=[genscore]; };
-  HGNChelper = derive2 { name="HGNChelper"; version="0.8.1"; sha256="0qwkk5658j4j6w2wgvxkp38cyvscjp93d3zc7gb97vcihqx0ngxa"; depends=[]; };
+  HGNChelper = derive2 { name="HGNChelper"; version="0.8.14"; sha256="0rhqpzq6z57wzydwcz0ry61al68l3mll79s5hz8by7hy61izj5k5"; depends=[splitstackshape]; };
   HGSL = derive2 { name="HGSL"; version="1.0.0"; sha256="1p453xr3d1bmqc6mrmzb0hz9p0gp25m6v6qr0l3bapcf71vzbvq1"; depends=[]; };
   HGraph = derive2 { name="HGraph"; version="0.1.0"; sha256="1y35lzym3mbr1v7j7v55i9mxb1vn65xzgp5542va1bngvrm25hjf"; depends=[knitr]; };
   HH = derive2 { name="HH"; version="3.1-52"; sha256="10q3im2y5r9f5d80c35r2mmp89xclaf74hywkcyn3pk5vwc5wjfm"; depends=[abind colorspace gridExtra Hmisc lattice latticeExtra leaps multcomp RColorBrewer reshape2 Rmpfr shiny vcd]; };
@@ -2250,7 +2298,6 @@ in with self; {
   HMDHFDplus = derive2 { name="HMDHFDplus"; version="2.0.3"; sha256="1cz9q0kydb926v1n15z96cj1a7d1nyv2ffkxf00vay5l70n05137"; depends=[dplyr httr janitor lubridate readr rlang rvest stringr tidyr]; };
   HMM = derive2 { name="HMM"; version="1.0.1"; sha256="03b548bnwqpnd7zypb4gvy9chyi5li2hp99a9vrh4qszxg2ihas7"; depends=[]; };
   HMMEsolver = derive2 { name="HMMEsolver"; version="0.1.2"; sha256="0msin7rq3npz221mvrw3zcs6bwz439six99iblx5p3hkp1n1ljf3"; depends=[Rcpp RcppArmadillo Rdpack]; };
-  HMMcopula = derive2 { name="HMMcopula"; version="1.0.4"; sha256="1gmvav02r3miaq4jx05qjcgzw5qv6w1j77vck5gpps8p38zcp34m"; depends=[copula doParallel foreach matrixcalc mvtnorm]; };
   HMMextra0s = derive2 { name="HMMextra0s"; version="1.1.0"; sha256="067yb9xg1b4z2k0zhjj4wlvlv46c7rxaipyqkc81r30zh4qfrr1c"; depends=[ellipse mvtnorm]; };
   HMMmlselect = derive2 { name="HMMmlselect"; version="0.1.6"; sha256="0kvw9nihbmvp19hbz5h8sz9jps5ik2di969jxdbp4ymj735c0fc9"; depends=[HiddenMarkov mclust MCMCpack mvtnorm Rcpp]; };
   HMMpa = derive2 { name="HMMpa"; version="1.0.1"; sha256="0c3jmvcklywqsjmskx7zbw4d3l8i6bzr5h741v8iwgyw67mjn37g"; depends=[]; };
@@ -2258,11 +2305,9 @@ in with self; {
   HMPTrees = derive2 { name="HMPTrees"; version="1.4"; sha256="1jha64iyb0816rdg2i3z7i31z02r72k6acmvw0ibw3sli8zcvphb"; depends=[ape dirmult doParallel foreach HMP]; };
   HMR = derive2 { name="HMR"; version="1.0.3"; sha256="1r0aw3x26a0w1pa02m449bpg6xrp1ikxv44f403snb8k48la9brc"; depends=[]; };
   HMTL = derive2 { name="HMTL"; version="0.1.0"; sha256="0pn192bikij1yqms6vnv1n313g4q21966314zvg1krrwisklny9r"; depends=[Matrix pROC]; };
-  HMVD = derive2 { name="HMVD"; version="1.0"; sha256="0agzvsl2n3zg3i519b93jqpiq9zix0bbrjdzk3ymsbb42dzkmj0d"; depends=[MASS]; };
   HOasso = derive2 { name="HOasso"; version="1.0.1"; sha256="07xihcjj3gfxl1fd5x1dvfmfg8m19rfjzq110ay3vrj38sxxvkiw"; depends=[igraph Rdpack]; };
   HPLB = derive2 { name="HPLB"; version="1.0.0"; sha256="1xxckjz90sdmng0sm9dlhwpzj79pxa3vd1cidxc44wjk4h25rq7q"; depends=[data_table]; };
   HQM = derive2 { name="HQM"; version="0.1.0"; sha256="1q959qdakwzf07zbyxkvrslyc4kgd47g4wij2fgm7l4w3xm34lwz"; depends=[]; };
-  HRM = derive2 { name="HRM"; version="1.2.1"; sha256="0qsxwi0v61k1waw21nrz86jazd5wgq2drhan3w8pmb35q2z20s35"; depends=[data_table doBy ggplot2 MASS matrixcalc mvtnorm plyr pseudorank Rcpp reshape2 xtable]; };
   HRW = derive2 { name="HRW"; version="1.0-5"; sha256="08fh9504cck1ffrwim27nkrm9y1in6jl1s7zs8h8x3ik54p9jb0k"; depends=[KernSmooth]; };
   HS = derive2 { name="HS"; version="1.1"; sha256="1vhbchc446j49jj7jgmy4l59n8ahk5l8jp1rl5xwsmn9iqir62mp"; depends=[data_table ggplot2 ggpubr partitions reshape2 tidyr zoo]; };
   HSAUR = derive2 { name="HSAUR"; version="1.3-10"; sha256="1z4drab395bnyfbd19rn9hr1gz78ny773g1anh54w18iszakkvib"; depends=[]; };
@@ -2276,12 +2321,13 @@ in with self; {
   HTRX = derive2 { name="HTRX"; version="1.2.4"; sha256="1ggmqz3a0r5cilpynjmr52hjk88vq83wk1akcg6hkn3bzrwgcgmd"; depends=[caret fastglm glmnet recipes tune]; };
   HTSCluster = derive2 { name="HTSCluster"; version="2.0.11"; sha256="0x9shhyla9bldkkh367gfdmf0k72l1ppixb8gzsa6nf8jx8qdpbp"; depends=[capushe edgeR plotrix]; };
   HTSSIP = derive2 { name="HTSSIP"; version="1.4.1"; sha256="1j2f6f3i4di4bvsk44gxz0narg45ld2rahfn23wpgni5bszy0vb3"; depends=[ape coenocliner DESeq2 dplyr ggplot2 igraph lazyeval magrittr phyloseq plyr stringr tidyr vegan]; };
+  HTSeed = derive2 { name="HTSeed"; version="0.1.0"; sha256="01h9lm2ljp67qfcl7vlh804r7q15arqx103jb9pvk2wx1c27qy3x"; depends=[dplyr]; };
   HTT = derive2 { name="HTT"; version="0.1.2"; sha256="0345ydb3rjdkj4zm6xr5y4kf6plvxfgbpwkjs81pls99mr208qwz"; depends=[ggplot2 ggraph igraph Rcpp]; };
   HUM = derive2 { name="HUM"; version="2.0"; sha256="06jx3f2zb52gjp05bq3zmgjkyiaa2j9v0biq23gg88gplpign6jw"; depends=[gtools Rcpp rgl]; };
-  HVT = derive2 { name="HVT"; version="23.11.1"; sha256="0d7zffvphjb0x1756y8806r268zbmvqhm0f9ig3fmz28nj5bn7km"; depends=[cluster conf_design data_table deldir dplyr ggplot2 Hmisc magrittr MASS plyr polyclip purrr reshape2 scales sp splancs tidyr]; };
+  HVT = derive2 { name="HVT"; version="24.5.2"; sha256="18a4gr2v2qn2n9z9w89pjq1plzdggzlyprh249srf3sbqw1pn1qq"; depends=[cluster conf_design data_table deldir dplyr gganimate ggforce ggplot2 gifski magrittr markovchain MASS plyr polyclip purrr reshape2 rlang scales splancs tidyr]; };
   HWEintrinsic = derive2 { name="HWEintrinsic"; version="1.2.3"; sha256="0ijrczm0mm37a3v4v0hd7zb662rcyzqf58z4nbhrix1nf6vzj47m"; depends=[]; };
   HYDROCAL = derive2 { name="HYDROCAL"; version="1.0.0"; sha256="0xq53nysn9kv6p1clgdjxsvj7qjlcmg02frfpw9fnzim53pzzrp4"; depends=[]; };
-  HYPEtools = derive2 { name="HYPEtools"; version="1.6.1"; sha256="079v0ixs3i4w6d3vjgjff0csrxsih1ah62ax5x9q4g38gc0y9l9j"; depends=[clipr colorspace data_table dplyr ggplot2 ggpubr ggrepel lubridate ncdf4 patchwork pbapply purrr rlang scales stringr tidyr tidyselect zoo]; };
+  HYPEtools = derive2 { name="HYPEtools"; version="1.6.2"; sha256="0g6gb3ig3qrqi9p8i35lxdgcz92ibjg2qdldnl1b3j1b6assza71"; depends=[clipr colorspace data_table dplyr ggplot2 ggpubr ggrepel lubridate ncdf4 patchwork pbapply purrr rlang scales stringr tidyr tidyselect zoo]; };
   HaDeX = derive2 { name="HaDeX"; version="1.2.2"; sha256="1qj6n03pd5kd5ff5h4v8wmnqxxylsxx1p6i88nahqkah2mzg9jdr"; depends=[data_table dplyr DT ggplot2 gsubfn latex2exp readr readxl reshape2 shiny stringr tidyr]; };
   HadIBDs = derive2 { name="HadIBDs"; version="1.0.0"; sha256="1mj6a4cp51kpsw93hz67smz9vc17ss5675wnalbq84wj89p2ma3l"; depends=[]; };
   HadamardR = derive2 { name="HadamardR"; version="1.0.0"; sha256="0nr8m6fchpmlvhyisb61y0fymjjrk2k1sd67r14n87sgn3mafh4a"; depends=[numbers openxlsx]; };
@@ -2291,13 +2337,13 @@ in with self; {
   Haplin = derive2 { name="Haplin"; version="7.3.1"; sha256="0vyykbq2f5w4h7nai8w8krpax8q6v2hx76rr6xqy938rza5rfm79"; depends=[ff MASS mgcv rlang]; };
   HaploCatcher = derive2 { name="HaploCatcher"; version="1.0.4"; sha256="182ihr45s2g452h054c6m8lgvj629spq1rd9vglzyy8ymg0l6w4j"; depends=[caret doParallel foreach ggplot2 knitr lattice patchwork randomForest]; };
   HaploSim = derive2 { name="HaploSim"; version="1.8.4.2"; sha256="15jawq5bxy2kjvl7bxqjr6p02ivhfrdzjmvjy1vp45jnaz6052v2"; depends=[]; };
-  HardyWeinberg = derive2 { name="HardyWeinberg"; version="1.7.5"; sha256="0b3szw090dsc3bkas2kvx787ww2i6zzg2qmdyivmqc8amx5arn6g"; depends=[mice nnet Rcpp Rsolnp]; };
+  HardyWeinberg = derive2 { name="HardyWeinberg"; version="1.7.8"; sha256="1wddy32zljyya37isqb54sqhpp07s2kizjl36i08pj37bbza7yac"; depends=[mice nnet Rcpp Rsolnp shape]; };
   Harvest_Tree = derive2 { name="Harvest.Tree"; version="1.1"; sha256="021zmppy7p2iakaxirfjdb5jzakg1ijma9d25ly2ni0nx0p1mh6z"; depends=[rpart]; };
   Hassani_SACF = derive2 { name="Hassani.SACF"; version="2.0"; sha256="16sk1vn47gd5qaq31p8hnqa5p29nd230v4vbg2lsn2bhy9m32km3"; depends=[]; };
   Hassani_Silva = derive2 { name="Hassani.Silva"; version="1.0"; sha256="0rhi3mrlyxksgd34xxha73m0x6aqdf2xk8bshdnmm463rkzyy31l"; depends=[]; };
   HazardDiff = derive2 { name="HazardDiff"; version="0.1.0"; sha256="048lvhb4545a487kyknf5b5v8q3a9nsipbh0ii2k3pcc5vfql1h4"; depends=[ahaz Rdpack rootSolve survival]; };
   HealthCal = derive2 { name="HealthCal"; version="0.1.1"; sha256="03q966d2kyi6x1ka4nmma94y75yj0vz4bk26psgnysvfz0nldfa3"; depends=[]; };
-  HeckmanEM = derive2 { name="HeckmanEM"; version="0.2-0"; sha256="0fq9hg9if7li9nfhsw5nw7j1z4wy7j9b5wcvcmvgddmfvimb7760"; depends=[ggplot2 MomTrunc mvtnorm PerformanceAnalytics sampleSelection]; };
+  HeckmanEM = derive2 { name="HeckmanEM"; version="0.2-1"; sha256="0rx9lbi5l0h95sg5lhjyrv31qmp4ziam84b98l2a05q56avck9jj"; depends=[ggplot2 MomTrunc mvtnorm PerformanceAnalytics sampleSelection]; };
   HellCor = derive2 { name="HellCor"; version="1.3"; sha256="1bzc2ipm7vw7s849d43lcs0xrk2rs67h223dn9kahqg152mmknza"; depends=[energy FNN orthopolynom]; };
   HelpersMG = derive2 { name="HelpersMG"; version="6.1"; sha256="1cggzna2gdl8pxdj2s0swlbwxs9qzz276x43inr87i9yxfqwv5q8"; depends=[coda ggplot2 MASS Matrix rlang]; };
   HeritSeq = derive2 { name="HeritSeq"; version="1.0.2"; sha256="0jzf3pq43lllxvvmf0rqzxz9fx6931mgb0ipminlw1iakz8wa6w3"; depends=[cplm DESeq2 lme4 MASS pbapply SummarizedExperiment tweedie]; };
@@ -2309,18 +2355,17 @@ in with self; {
   HiDimDA = derive2 { name="HiDimDA"; version="0.2-6"; sha256="1128xf7jf2jwbkpczc9d56kzkn41m9hvqys4qawv3z80hpm91is5"; depends=[]; };
   HiResTEC = derive2 { name="HiResTEC"; version="0.62.3"; sha256="1wswcd68zy03qcajkywgrgi7c06v1kyj2rmvdxj1s4yc0pcw657q"; depends=[beeswarm CorMID InterpretMSSpectrum openxlsx plyr]; };
   HiddenMarkov = derive2 { name="HiddenMarkov"; version="1.8-13"; sha256="05dm3nl0ffsz2ziw3bz5bivyxk7r5bxs8xhky3hz660qaqzd51ki"; depends=[]; };
-  HierPortfolios = derive2 { name="HierPortfolios"; version="0.1.0"; sha256="13f0bkcqglf6v0b2kqgsdr9px78ai3z8km3vkqnhsnphg8kh3m4z"; depends=[cluster fastcluster RiskPortfolios]; };
+  HierPortfolios = derive2 { name="HierPortfolios"; version="1.0.0"; sha256="1l0ac3sx7q0xgqv6w0c7rahgjqpy045whih7r88wnj8qqwl1x1bp"; depends=[cluster fastcluster]; };
   HighestMedianRules = derive2 { name="HighestMedianRules"; version="1.0"; sha256="01fj3xgrb9iav5v91bq04hzv9nhnwy8l00dx6yykghwvzjwfv3ih"; depends=[RMallow]; };
   HistDAWass = derive2 { name="HistDAWass"; version="1.0.8"; sha256="001ranvb4lfjh9lmh5d031g0k6r3yxzwaxvyacxh07hlf9fh7kvn"; depends=[class FactoMineR ggplot2 ggridges histogram Rcpp RcppArmadillo]; };
   HistDat = derive2 { name="HistDat"; version="0.2.0"; sha256="06zxsja8qk48q9lrr9fbk4sbpidysp31mcirxfr12l348lc9zf10"; depends=[]; };
   HistData = derive2 { name="HistData"; version="0.9-1"; sha256="1c005rmzbxcc4m7rxnbxna4dlg3vrn5fhkj4vrkak3xrxbcfkafw"; depends=[]; };
-  HistogramTools = derive2 { name="HistogramTools"; version="0.3.2"; sha256="1wkv6ypn006d8j6bpbhc1knw0bky4y8r7jp87482yd19q5ljsgv0"; depends=[ash Hmisc stringr]; };
   HiveR = derive2 { name="HiveR"; version="0.3.63"; sha256="1vi24k23a017czfy9kihmq4s1dywzm274dyhyp1imx94afsnmhc3"; depends=[jpeg plyr png RColorBrewer rgl]; };
-  Hmisc = derive2 { name="Hmisc"; version="5.1-2"; sha256="088gniwbymzhqg3vp0kpkbazryjzy9iq6wdvf9hg9qf0sjbibpg7"; depends=[base64enc cluster colorspace data_table foreign Formula ggplot2 gridExtra gtable htmlTable htmltools knitr nnet rmarkdown rpart viridis]; };
+  Hmisc = derive2 { name="Hmisc"; version="5.1-3"; sha256="1sq5qvlr9swhdvf3l420y9fxq5s1qw8aiyl9a62sb357ywppfq9w"; depends=[base64enc cluster colorspace data_table foreign Formula ggplot2 gridExtra gtable htmlTable htmltools knitr nnet rmarkdown rpart viridis]; };
   Hmsc = derive2 { name="Hmsc"; version="3.0-13"; sha256="13gqwjniwxc5lgsj044qjq6ic0ibwvj3mviw4hq31s89m834gvyb"; depends=[abind ape BayesLogit coda fields FNN ggplot2 MASS Matrix matrixStats MCMCpack nnet pracma pROC rlang sp statmod truncnorm]; };
   HoRM = derive2 { name="HoRM"; version="0.1.3"; sha256="09dkpzlwkkdn0z8g9fbb7hzxbrrq70x9v1zx254svck2jyk0hx58"; depends=[ggplot2 MASS orthopolynom quantmod rsm]; };
   HodgesTools = derive2 { name="HodgesTools"; version="1.0.0"; sha256="02i87pd5ah3mmf03878354p8nqh3bgn9cnrl1pnnrb3qw7afj19q"; depends=[data_table dplyr ggplot2 ini magrittr qqman RColorBrewer readr RecordLinkage]; };
-  Holomics = derive2 { name="Holomics"; version="1.1.0"; sha256="1aammamx7x4dplh6mics5qp7my9204a7vrs645vvyj2l41sm9q1j"; depends=[BiocParallel bs4Dash config dplyr DT ggplot2 golem igraph markdown mixOmics openxlsx readxl shiny shinyalert shinybusy shinyjs shinyvalidate shinyWidgets stringr tippy visNetwork]; };
+  Holomics = derive2 { name="Holomics"; version="1.1.1"; sha256="1d2ypgsaq1y4q9q8yis2549m2vaxg4fas6x9zagsw4jx97vi61kh"; depends=[BiocParallel bs4Dash config dplyr DT ggplot2 ggrepel golem igraph markdown matrixStats mixOmics openxlsx readxl reshape2 RSpectra shiny shinyalert shinybusy shinyjs shinyvalidate shinyWidgets stringr tidyr tippy uuid visNetwork]; };
   Homeric = derive2 { name="Homeric"; version="0.1-3"; sha256="1vcs8fj39zpz45p7gph0mnx65hgr35na0b79i8llyw7i1h7zqzxr"; depends=[]; };
   HomomorphicEncryption = derive2 { name="HomomorphicEncryption"; version="0.9.0"; sha256="0ynxn1mcr76yvqjpmi8mxl35i9r1fy7rwshpv8qx68nabk67rh61"; depends=[HEtools polynom]; };
   HospitalNetwork = derive2 { name="HospitalNetwork"; version="0.9.3"; sha256="183nb9h9b1z1ifpnzcxa8wh3xm2id6fnq9vqd4vkbxzw7wlyd86b"; depends=[checkmate data_table ggplot2 ggraph igraph lubridate R6]; };
@@ -2333,12 +2378,11 @@ in with self; {
   HybridDesign = derive2 { name="HybridDesign"; version="1.0"; sha256="19hgljm7mhd00s2lvvxmdr35zifnl0kymmcx06jfqkld3qd3zli6"; depends=[ResourceSelection testit]; };
   HybridMicrobiomes = derive2 { name="HybridMicrobiomes"; version="0.1.1"; sha256="05y3hcw18q9v3fpv0i0msmr9v4hnfgk0ni55wk3k786h96m2swsv"; depends=[ape compositions geometry ks PERMANOVA phyloseq rgl rlang StereoMorph vegan]; };
   HydroCode = derive2 { name="HydroCode"; version="1.0.3"; sha256="1kykxra9cg1n17l2zmnjk1qv8450v4qix5sylm1k9xxzirbb7wca"; depends=[sp]; };
-  HydroMe = derive2 { name="HydroMe"; version="2.0-1"; sha256="1pzf3z3f2xqmj7ixdg01k8552l4vz7yaf2mb53q59ihfhlbqchni"; depends=[]; };
+  HydroMe = derive2 { name="HydroMe"; version="2.1.1"; sha256="06fqzvpwh25qc9ksh49gpfyw8jgy9xbw27wlp8mxk0b2fq58fyqg"; depends=[]; };
   HydroPortailStats = derive2 { name="HydroPortailStats"; version="1.0.3"; sha256="1f5h9xqn4vn9wbnvlshbc8r200vx1pwm9ic7sdzsv4z0j7z7wl1j"; depends=[evd mvtnorm numDeriv]; };
   HyperG = derive2 { name="HyperG"; version="1.0.0"; sha256="0w84ph0vd03i22s8g52jf2w96yd80ynbh6x0p88apg92jdsapcrc"; depends=[gtools igraph Matrix mclust proxy RSpectra]; };
   HyperbolicDist = derive2 { name="HyperbolicDist"; version="0.6-5"; sha256="10bcqychdc3rrdyqng5sxjbr8a6wljwnqa4gff99dmx8774sdw16"; depends=[]; };
-  HypergeoMat = derive2 { name="HypergeoMat"; version="4.0.2"; sha256="06ljg2v0dbqi9mf2l236p616x62cbx4q05qymbsj8inmajwv0piz"; depends=[EigenR gsl JuliaConnectoR Rcpp RcppEigen]; };
-  IADT = derive2 { name="IADT"; version="1.0.0"; sha256="1hyshs7dlpbsvpkn56fi7cfn54qkwmwyf9bhh1yks9nnhdxpbsgd"; depends=[mgcv mvnfast Rdpack Rmpfr]; };
+  IADT = derive2 { name="IADT"; version="1.2.1"; sha256="053ymsn7ibjkzdz1znlfz1y6j78bl2fv81dbiihksw09wzx2aa3c"; depends=[mgcv mvnfast Rdpack Rmpfr]; };
   IALS = derive2 { name="IALS"; version="0.1.3"; sha256="1gmsn428r923clq4zphl24wxbrhrn2mpbdkw38kaklxhwwf8lzki"; depends=[HDMFA pracma RSpectra]; };
   IAPWS95 = derive2 { name="IAPWS95"; version="1.2.4"; sha256="0jccq1pj0b8xpa7zs20ikkwlyj0f2q5qzdz8kllm0qiwlrrj7jsn"; depends=[ggplot2 pander Rcpp]; };
   IASD = derive2 { name="IASD"; version="1.1.1"; sha256="0bw36kghfrz3kh8rafshv16q2ac0ynsjcks021g27knvvbapnic9"; depends=[]; };
@@ -2380,12 +2424,13 @@ in with self; {
   ICcalib = derive2 { name="ICcalib"; version="1.0.8"; sha256="1y2w12ka0qxh9dg6dlcrnndz1xrv8gkppan64qkyk5vjrh18ajz4"; depends=[fitdistrplus icenReg ICsurv MASS msm numDeriv Rcpp RcppArmadillo survival]; };
   ICcforest = derive2 { name="ICcforest"; version="0.5.1"; sha256="0z511d3drq5flxwvx7kjv3v5yanjhvs5ayvkm996jbiz3k49a12v"; depends=[icenReg ipred partykit survival]; };
   ICglm = derive2 { name="ICglm"; version="0.1.0"; sha256="1dmnz6sf311xsvyg8dh082pxgzizm701cf1ml0xg4s9kls3fd2i8"; depends=[Matrix]; };
+  ICompELM = derive2 { name="ICompELM"; version="0.1.0"; sha256="1wah28d92cwgcwpm3gcjhw8d84s81r1bjkh41kdi9741dn79f33r"; depends=[ica tsutils]; };
   ICsurv = derive2 { name="ICsurv"; version="1.0.1"; sha256="1wgv9bjcx8y9qvkx3nfax86clhfmwr7bxzq8i12aqmp1clxpgx6a"; depends=[MASS matrixcalc]; };
   ICtest = derive2 { name="ICtest"; version="0.3-5"; sha256="13i7zsjy4dqx48vzn9294k7xb93m6r2ab3d546rymfqdzdjszpnp"; depends=[GGally ggplot2 ICS ICSNP JADE mvtnorm png Rcpp RcppArmadillo RcppRoll survey xts zoo]; };
   ICvectorfields = derive2 { name="ICvectorfields"; version="0.1.2"; sha256="0h10ijh00ahk2aawg090sspdyxzln8cwzvrfqyi45p19sbx93503"; depends=[fftwtools Rcpp terra]; };
   IDCard = derive2 { name="IDCard"; version="0.3.0"; sha256="06b5zqmgh4clni3mv6ab2a52r4z34isbz0hd1i61793gps9fkc0y"; depends=[stringr]; };
   IDE = derive2 { name="IDE"; version="0.3.1"; sha256="1pbfxhcbnmn0mh7a96ff58p4dpkb0di7l0v40nqyjk4jbkpd8rfl"; depends=[DEoptim dplyr FRK ggplot2 Matrix sp spacetime sparseinv tidyr]; };
-  IDEAFilter = derive2 { name="IDEAFilter"; version="0.1.2"; sha256="1nwsq5jy374f2sdnrxw79kq3wklydrygm4qsd6v6npdqw55jli2l"; depends=[crayon ggplot2 pillar purrr RColorBrewer shiny shinyTime]; };
+  IDEAFilter = derive2 { name="IDEAFilter"; version="0.2.0"; sha256="0clr5jkrmwp6nd491rm67i794kh0dcjlhf6z56a8pvjhhia29hpy"; depends=[crayon ggplot2 pillar purrr RColorBrewer shiny shinyTime]; };
   IDEATools = derive2 { name="IDEATools"; version="3.5.2"; sha256="0g5wi9mjvcnz0s6x4rnhfa2xkdgja21b3k4z9iz8hszismdzs5sq"; depends=[data_table ggimage ggplot2 ggpubr ggtext jsonlite openxlsx pdftools readxl rlang rmarkdown shiny stringi tibble]; };
   IDF = derive2 { name="IDF"; version="2.1.2"; sha256="19mg7a83badb3wqnrmx5ric0nlfdb33wcxfmq9457s8019ghvpvv"; depends=[evd fastmatch ismev pbapply RcppRoll]; };
   IDMIR = derive2 { name="IDMIR"; version="0.1.0"; sha256="0871ibdpnhqbf0ighyl9254ad8wy52gyi7i2nry19is1kr7av40s"; depends=[egg fastmatch forestplot ggplot2 igraph pheatmap survival survminer]; };
@@ -2415,6 +2460,7 @@ in with self; {
   IIVpredictor = derive2 { name="IIVpredictor"; version="0.1.0"; sha256="15361j8b60jj3bh8cjxs39d9bir1aywy9bd254s5w94cakhy0ld5"; depends=[lavaan R2jags]; };
   ILS = derive2 { name="ILS"; version="0.3"; sha256="0l4rrl1j72lqg87nzw4xap054gl2h3m90g8sl5bzg3jc7c290rd7"; depends=[depthTools fda_usc lattice MASS multcomp]; };
   ILSE = derive2 { name="ILSE"; version="1.1.7"; sha256="0jx0f7lk18k0wsypi4ynq1zqbb9hsmcmf0chxyrpqkadfqb6mgwr"; depends=[pbapply Rcpp RcppArmadillo]; };
+  ILSM = derive2 { name="ILSM"; version="1.0.2"; sha256="079szirz5a1rcza756bjjdlz0wwdg8jifnz5kiw1wlkmc3x2m7sz"; depends=[igraph Matrix]; };
   IMD = derive2 { name="IMD"; version="1.2.2"; sha256="0cixq15n38bj49xp9cxra7rzi9sp5fbf4ac4m7nl2iiswscy15fr"; depends=[dplyr janitor readr rlang tibble]; };
   IMEC = derive2 { name="IMEC"; version="0.2.0"; sha256="1k85pr6s6lysn53n59i8rcdhyg7r3il5avbckvvz43p6lh0fgxpy"; depends=[igraph IsingSampler qgraph]; };
   IMIFA = derive2 { name="IMIFA"; version="2.2.0"; sha256="08h53w1axvmvnd4z1nf5bsps5sr6g8a77q6pvg39ss7jcfqm800v"; depends=[matrixStats mclust mvnfast Rfast slam viridisLite]; };
@@ -2426,8 +2472,8 @@ in with self; {
   IMmailgun = derive2 { name="IMmailgun"; version="0.1.2"; sha256="09acmi6xj186fb8nhj8q0nxmkp2p32a1l95glzvz84gax4xakhz8"; depends=[httr]; };
   INCATome = derive2 { name="INCATome"; version="1.0"; sha256="1gbmcirs49ydmk5rg2vl5gdy39dfx9psw5mijibzjszcfjar3kqs"; depends=[genefilter limma multtest RankProd siggenes]; };
   INLABMA = derive2 { name="INLABMA"; version="0.1-12"; sha256="0dkb5v08ws38cfv33r4asz6shik08zd3535sc71gsgcg6cnj2d3q"; depends=[Matrix sp spdep]; };
-  INLAjoint = derive2 { name="INLAjoint"; version="24.2.4"; sha256="0q7wpm058qzzah8bxsghx3v88vijzhpxp30rbbrlq2xznhhsjksk"; depends=[ggplot2 lme4 Matrix numDeriv]; };
-  INLAspacetime = derive2 { name="INLAspacetime"; version="0.1.7"; sha256="0b3ahvgqkgb32zpr5cbyz1k0sszzm6pim1dxyhka6mv73732qzgw"; depends=[fmesher Matrix sf sp]; };
+  INLAjoint = derive2 { name="INLAjoint"; version="24.3.25"; sha256="03hd29x8arww3fkyzgj8wv1b0sm5nl994bmg6m2sb4xg00slhp05"; depends=[ggplot2 lme4 Matrix mvtnorm nlme numDeriv]; };
+  INLAspacetime = derive2 { name="INLAspacetime"; version="0.1.8"; sha256="0yyhcizaj90qqvirrk74whynxf7zvv09w79k4j61i4n84hm0njdm"; depends=[fmesher Matrix sf sp terra]; };
   INQC = derive2 { name="INQC"; version="2.0.5"; sha256="1gz7gyq5n2bmh18yrg29nz8kmdc0b35chwqxr6y2sggdm8j28akd"; depends=[evd gdata suncalc]; };
   INSPECTumours = derive2 { name="INSPECTumours"; version="0.1.0"; sha256="1jh6p3bgnrjixqzvjl0z3nv6lh01fx3x925h3na2pi3scqx5gx0s"; depends=[brms dplyr DT ggeffects ggplot2 knitr lme4 modelr pander plotly purrr readxl rlang rmarkdown shiny shinyalert shinyFeedback shinyjs shinytoastr shinyvalidate tidybayes tidyr tippy vroom waiter]; };
   INSPIRE = derive2 { name="INSPIRE"; version="1.5"; sha256="0938l50yxnb5q628mp874ayx9ybvcjddis20y1hzm5cmlsg0hqhg"; depends=[missMDA]; };
@@ -2452,6 +2498,7 @@ in with self; {
   IRCcheck = derive2 { name="IRCcheck"; version="1.0.0"; sha256="035sx36qf5hdnc51h8251qwxfm30r8h2v2qs2x161ip4cqghw019"; depends=[corpcor GGMncv glmnet MASS Rdpack]; };
   IRISMustangMetrics = derive2 { name="IRISMustangMetrics"; version="2.4.6"; sha256="08p1xg4mqi36647nzmlmmmvdgzc9xgz4sf4lh2lrlma99f7y8kzd"; depends=[dplyr IRISSeismic pracma RCurl seismicRoll signal stringr XML]; };
   IRISSeismic = derive2 { name="IRISSeismic"; version="1.6.6"; sha256="0da4bh5kvlp3dchsz0dyddwpwdvss7aij2xsi2kkppi3hrfwja7j"; depends=[pracma RCurl seismicRoll signal stringr XML]; };
+  IRR2FPR = derive2 { name="IRR2FPR"; version="0.1.1"; sha256="0h662gm0pg25swsgxjgm000ykrp1s6nqx0mhckm23qiprcxaq0hl"; depends=[mvtnorm shiny]; };
   IRTBEMM = derive2 { name="IRTBEMM"; version="1.0.8"; sha256="0n48wi1lha7rbi9b8q71y9wvxkjsglwnyhzd1yhdbfms6768slmv"; depends=[]; };
   IRTShiny = derive2 { name="IRTShiny"; version="1.2"; sha256="094ax94y6k5z4vlxfla2w19f57q0z32nwwd5npjbgmnkhvfhhl9v"; depends=[beeswarm CTT ltm psych shiny shinyAce]; };
   IRTest = derive2 { name="IRTest"; version="2.0.0"; sha256="0fnz98kn463cqp7yp63w1zasp131a448pr4hmkp1y3dpgclfdcva"; depends=[betafunctions dcurver ggplot2 usethis]; };
@@ -2486,7 +2533,7 @@ in with self; {
   ImVol = derive2 { name="ImVol"; version="0.1.0"; sha256="02bwjd6w40j9y3kq3zk1cwn6y9srpm2m390y63778w9qj4pk67lh"; depends=[caret dplyr ggplot2 nls2 tidyr tidyverse]; };
   Immigrate = derive2 { name="Immigrate"; version="0.2.1"; sha256="0pnnvv63kkg7pgyblb1vlx54c6169n40fn58aypdy5xcnknabvxn"; depends=[pROC Rcpp]; };
   ImpShrinkage = derive2 { name="ImpShrinkage"; version="1.0.0"; sha256="18ik1sl2628hcz37rkdq2fdbx1c6hs7svalsfc90w3ww0aijy91y"; depends=[]; };
-  ImpactEffectsize = derive2 { name="ImpactEffectsize"; version="0.6.3"; sha256="0kks5c8hksignlgdam3rwagwyz3aw5r5491gw17jy1gnhcixm3k8"; depends=[caTools matrixStats parallelDist Rcpp]; };
+  ImpactEffectsize = derive2 { name="ImpactEffectsize"; version="0.7"; sha256="1g62p81x6i9gs562m3pdixw27d2cbzhz8drmcfslgs6f48zlir0j"; depends=[caTools matrixStats parallelDist Rcpp]; };
   ImportExport = derive2 { name="ImportExport"; version="1.3"; sha256="07i7p9xha1f23r07lw87ak13hd4wavdvwh8vb8sg2gyvnpa5njwp"; depends=[chron gdata haven Hmisc readxl RODBC writexl]; };
   ImportanceIndice = derive2 { name="ImportanceIndice"; version="0.0.2"; sha256="1rxjb4nmpwpf018k0rwf2gs993dz3dq120x0b78y4r8jkkccyphq"; depends=[crayon]; };
   ImputeLongiCovs = derive2 { name="ImputeLongiCovs"; version="0.1.0"; sha256="16paj3fq06dsh4hq4mv0wvrprzhw6mv3ysnf3iakgjb93bfbhr6p"; depends=[nnet]; };
@@ -2495,7 +2542,7 @@ in with self; {
   InPosition = derive2 { name="InPosition"; version="0.12.7.1"; sha256="0d9c7dwaa1v0j8p5ff9223fc2gkbmbvyqylma2d8l4x5m92jmkv0"; depends=[ExPosition prettyGraphs]; };
   InSilicoVA = derive2 { name="InSilicoVA"; version="1.4.0"; sha256="15x6d928rk9in2swbaal6hcw2nikj153fgqyd7nhdkcbs1agrsl1"; depends=[coda ggplot2 InterVA5 rJava]; };
   IncDTW = derive2 { name="IncDTW"; version="1.1.4.4"; sha256="0q8ssv86gbp3v6gznzm5vkc8qhny6ycbh85jg5z4izldpx8a4fq6"; depends=[data_table ggplot2 Rcpp RcppArmadillo RcppParallel scales]; };
-  IncidencePrevalence = derive2 { name="IncidencePrevalence"; version="0.7.2"; sha256="1px7yv4ssrvbdgw86nx7wz84ja17zpl55r7giia36nw4w91aq16f"; depends=[CDMConnector checkmate cli DBI dbplyr dplyr ggplot2 glue lifecycle lubridate magrittr omopgenerics purrr rlang scales stringr tibble tidyr tidyselect zip]; };
+  IncidencePrevalence = derive2 { name="IncidencePrevalence"; version="0.7.3"; sha256="0cw2075z492sav1nqlvq8s6xm6835s07g1zkwjmg81mb95a060f0"; depends=[CDMConnector checkmate cli clock DBI dbplyr dplyr ggplot2 glue lifecycle lubridate magrittr omopgenerics PatientProfiles purrr rlang scales stringr tibble tidyr tidyselect zip]; };
   IncomPair = derive2 { name="IncomPair"; version="0.1.0"; sha256="156mc4csbxz976md7ikjd6sqamzsfc8ik9xf1qbhrfl8y7957kbb"; depends=[]; };
   IndGenErrors = derive2 { name="IndGenErrors"; version="0.1.4"; sha256="1iwq53vahcaa0cqmk8g0484drdlphips7p95z4rh6miv2bxjh8fa"; depends=[ggplot2]; };
   IndTestPP = derive2 { name="IndTestPP"; version="3.0"; sha256="1z48pr8znbk1gdvjfdvszxlzhj7v88p3y7zhi1f0xw75dkfpnwwy"; depends=[]; };
@@ -2504,6 +2551,7 @@ in with self; {
   IndexNumR = derive2 { name="IndexNumR"; version="0.6.0"; sha256="02ga1airmzaqb0kabg9ipq3jrwsfdafj729bwj8y5pccpks60fjl"; depends=[]; };
   IndexNumber = derive2 { name="IndexNumber"; version="1.3.2"; sha256="0ff6fnkgbfwn3sasglr1aygvm9bawrvcj432xgka1vk28qnns0if"; depends=[]; };
   IndexWizard = derive2 { name="IndexWizard"; version="0.2.1.0"; sha256="09qrnq8yzz4r8i7m696a1jzw91iiccwgj73176dabkh3pdrhrs3r"; depends=[]; };
+  Indicator = derive2 { name="Indicator"; version="0.1.2"; sha256="0dwrg23qaqj39vvzhk20plr64br1y5dn61w9xk1arl22qlc2b011"; depends=[FactoMineR missMethods norm]; };
   InferenceSMR = derive2 { name="InferenceSMR"; version="1.0.2"; sha256="1f0glgzxaab7fxl938ac7dai2mpscdcwvh9wg76nkgbn2my7g5cg"; depends=[survival]; };
   InfiniumPurify = derive2 { name="InfiniumPurify"; version="1.3.1"; sha256="0yqah4rwpishas0xyv5a7cn4v18brj33cd7f494g21b9brggafq1"; depends=[matrixStats]; };
   Inflation = derive2 { name="Inflation"; version="0.1.0"; sha256="0ikhsslbg32kr9vcaxq8qwaa7ahiwvq91xwv53550wci2vyzmybp"; depends=[seasonal]; };
@@ -2515,12 +2563,14 @@ in with self; {
   InjurySeverityScore = derive2 { name="InjurySeverityScore"; version="0.0.0.2"; sha256="0g52cksa774in18ykrym61l3my9zm343bgsq5mg7mki9x65xd35z"; depends=[dplyr rlang tidyr]; };
   Inquilab = derive2 { name="Inquilab"; version="0.1.0"; sha256="1hmfrjvwvv56z19cpp9ndwn3g3i3dlwm9yg3f6g5846w81jfkb3n"; depends=[]; };
   InspectChangepoint = derive2 { name="InspectChangepoint"; version="1.2"; sha256="084ji77z0dnbjrhy6z40kjbblsgk3z00z256pfknkqxd3v7sawvc"; depends=[MASS]; };
+  InsuSensCalc = derive2 { name="InsuSensCalc"; version="0.0.1"; sha256="0spgqwxn1bnbmlv7vfx10mls3mrdss5sk0zvriba5zd8v0ljc6sx"; depends=[dplyr magrittr tibble tidyr]; };
   IntCal = derive2 { name="IntCal"; version="0.3.1"; sha256="0d5sd63ajmksafxfrfbd8jsgkbcxirjgd1532blylbcnwjlcws15"; depends=[]; };
   IntNMF = derive2 { name="IntNMF"; version="1.2.0"; sha256="09qzyvv7d4wr68qrlhcd4ivr65is3mypv1vaxpswwcjmcmyr4gzp"; depends=[cluster InterSIM MASS mclust NMF]; };
   InteRD = derive2 { name="InteRD"; version="0.1.1"; sha256="18grg2pyn0p3dwqhm2251d47sd97wcjr858y64lf5chkhvcz09nk"; depends=[Biobase cowplot DescTools ggplot2 limSolve mgcv pheatmap Rcpp reshape2]; };
   IntegrateBs = derive2 { name="IntegrateBs"; version="0.1.0"; sha256="1pkx4wpahd1sabzx55law3710x3vbh9yi6kii8gs2xfq3cb1llmq"; depends=[]; };
   IntegratedJM = derive2 { name="IntegratedJM"; version="1.6"; sha256="0fv24z7vidhn09ljk09pjzkrlg2rlwxcrhfjc53ybjjgsgay99z6"; depends=[Biobase ggplot2 nlme]; };
   IntegratedMRF = derive2 { name="IntegratedMRF"; version="1.1.9"; sha256="0kklgc48cib4bjfs9qbw13nkp8xyjdazrg6z15x69jylnxyakic7"; depends=[bootstrap ggplot2 limSolve MultivariateRandomForest Rcpp]; };
+  InterNL = derive2 { name="InterNL"; version="0.1.0"; sha256="0qc6s21pjbw40jdavs5cap5m3kcjs2blyr9s80vf499j7cikkzqc"; depends=[forecast MLmetrics]; };
   InterSIM = derive2 { name="InterSIM"; version="2.2.0"; sha256="14yccan88szf26w1hg1lkvmssids961gng7il3bjr2f1l0k8vd3b"; depends=[MASS NMF]; };
   InterVA4 = derive2 { name="InterVA4"; version="1.7.6"; sha256="02fci1p8im8jpalv1mbrhrwhvpi23mzhwhpd1knpxyv7h6l9x0kg"; depends=[]; };
   InterVA5 = derive2 { name="InterVA5"; version="1.1.3"; sha256="08cnhbq1048z7qcvvj0d1br7d8jljzf48ci94aixs0y0vs8lgvvz"; depends=[curl readxl]; };
@@ -2544,11 +2594,10 @@ in with self; {
   Iso = derive2 { name="Iso"; version="0.0-21"; sha256="19lgwbfbca30mh3hhnarzab5cvnrwnr0pxam6fvfnadnqzhjm15n"; depends=[]; };
   IsoCheck = derive2 { name="IsoCheck"; version="0.1.0"; sha256="06g0srp14yiha95mbmifaqf5yr5ppjnc20nyr237ah3l776mhsif"; depends=[dplyr gtools plyr]; };
   IsoCor = derive2 { name="IsoCor"; version="0.1.40"; sha256="191y51mg6kii4x99c7437888kkacml0ch53qh1gbwv10gl2c4w8z"; depends=[bsplus DT golem htmltools MALDIquant markdown plyr rmarkdown shiny shinyalert shinyjs]; };
-  IsoGene = derive2 { name="IsoGene"; version="1.0-24"; sha256="0flm0mszankvl3aizwsazyhvz2xkr4gfqiqywpc0r1swqj19610r"; depends=[affy Biobase ff Iso xtable]; };
   IsoMemo = derive2 { name="IsoMemo"; version="23.10.1"; sha256="0im0h5av752gy8gl48m9hclsclz7cg47k1qi9ndip66k6dinp6df"; depends=[curl jsonlite modules]; };
   IsoSpecR = derive2 { name="IsoSpecR"; version="2.1.3"; sha256="0cy9y3lh20xxj9sah8s2zrwnbzk39s5xmscj4mskvn897bmlksh6"; depends=[Rcpp]; };
-  IsoplotR = derive2 { name="IsoplotR"; version="6.1"; sha256="04fx5240fiq4wm1335p1dz65avjgspmdljfsvkr9nvl724gfm3md"; depends=[MASS]; };
-  IsoplotRgui = derive2 { name="IsoplotRgui"; version="6.1"; sha256="0l9wnw3pfrcsbn8ky33a0zlyzzr70yk8fb4qcpiz52k61nzpy4cy"; depends=[IsoplotR shinylight]; };
+  IsoplotR = derive2 { name="IsoplotR"; version="6.2"; sha256="0n4xlxs4swl5b11b9ks9f4g2m8cpnb2gdq7zbvjvgsx5d6fw9m29"; depends=[MASS]; };
+  IsoplotRgui = derive2 { name="IsoplotRgui"; version="6.2"; sha256="12mrfpij1sv6631lx32p1l9dc7g279zw21s13m6b0q4ic1cjsv9v"; depends=[IsoplotR shinylight]; };
   IsoriX = derive2 { name="IsoriX"; version="0.9.2"; sha256="1izpxibyz4wwpdr01z4a4zw1r1c528ydznvwrc064j9c55fiz4s2"; depends=[lattice latticeExtra numDeriv rasterVis spaMM terra viridisLite]; };
   IsotopeR = derive2 { name="IsotopeR"; version="0.5.4"; sha256="0xgha5alh5y5qfz00rl73q4xlamnmrwij7kckljmy6zgrlrdnl6x"; depends=[colorspace ellipse fgui plotrix runjags]; };
   IterativeHardThresholding = derive2 { name="IterativeHardThresholding"; version="1.0.2"; sha256="0vv8v61pzlykdyjivl19q8nr9p22c845y902yljgrvc9ayidczqm"; depends=[Cyclops ParallelLogger]; };
@@ -2557,7 +2606,8 @@ in with self; {
   JATSdecoder = derive2 { name="JATSdecoder"; version="1.2.0"; sha256="01nqj3w690gn4iqy35v215451agfx1dfgc5vbmmc5wp5r2rk2p09"; depends=[NLP openNLP]; };
   JBrowseR = derive2 { name="JBrowseR"; version="0.10.2"; sha256="1v90lzp3md56r4mjskipq4kjvi3szv0qqcdya1hmbjklgmkygvvl"; depends=[cli dplyr htmltools htmlwidgets httpuv ids jsonlite magrittr mime reactR readr stringr]; };
   JCRImpactFactor = derive2 { name="JCRImpactFactor"; version="1.0.0"; sha256="1i7853i8k03nq7ax9rypm9qcl5qgyddblgbfjp3yxi1s3a6bkwk1"; depends=[stringr]; };
-  JFE = derive2 { name="JFE"; version="2.5.6"; sha256="015c60f1bmglcpspyqsy8wkwinnf8dgzx0xfm96np1c9h8zqfdm6"; depends=[xts]; };
+  JDCruncheR = derive2 { name="JDCruncheR"; version="0.2.4"; sha256="08289a1pvhdx1bp76il18z6xr4nfk1pffbbjcwdvr2km147yfvmz"; depends=[XLConnect]; };
+  JFE = derive2 { name="JFE"; version="2.5.7"; sha256="06ll163l0qr03vjp3jdlq4g7lff1hi3shmbqicqm9yr00ip94jj6"; depends=[xts]; };
   JFM = derive2 { name="JFM"; version="1.0"; sha256="08655vgfb2ll8hwjsj5lsw4849rahn3blisdqn8bwfhclrwd24xn"; depends=[MASS randomcoloR Rcpp RcppArmadillo rgl RockFab Rvcg]; };
   JGL = derive2 { name="JGL"; version="2.3.2"; sha256="0zsvr20vaxhkac2mdlqzd12xqpgw4yvx4bkqwgsbvhpl34pz7dy2"; depends=[igraph]; };
   JGR = derive2 { name="JGR"; version="1.9-2"; sha256="1rcmbgxwzwhzh5fa0lghjdllcfkpirdavdghvxx5fjysn7a38mjv"; depends=[JavaGD rJava]; };
@@ -2567,14 +2617,14 @@ in with self; {
   JMH = derive2 { name="JMH"; version="1.0.3"; sha256="1n41vhr07ylqb393bsw8lrv1h77a10qshwfxrkyx2y1hsq1bh3iy"; depends=[caret dplyr MASS nlme Rcpp RcppEigen statmod survival timeROC]; };
   JMI = derive2 { name="JMI"; version="0.1.0"; sha256="05phkwfb9v4g9jixlvbj6br7sbi64zvrgjwfr0v87ijddkxc9si9"; depends=[Rcpp RcppArmadillo]; };
   JMbayes = derive2 { name="JMbayes"; version="0.8-85"; sha256="0s11jpzflc2zg60g4ffcw23c2f4zz3mzddrc2cl5y43xl2v304lb"; depends=[doParallel foreach Hmisc jagsUI MASS nlme Rcpp RcppArmadillo rstan shiny survival xtable]; };
-  JMbayes2 = derive2 { name="JMbayes2"; version="0.4-5"; sha256="0qdfp3r7wfy955f956jhryvxbnnw2zrnkqq931191z2v0xmird97"; depends=[coda ggplot2 GLMMadaptive gridExtra matrixStats nlme parallelly Rcpp RcppArmadillo survival]; };
+  JMbayes2 = derive2 { name="JMbayes2"; version="0.5-0"; sha256="13p848ix1581p9yd6dgkifqj7bha8w2m7drkcz718bwmjlm83z61"; depends=[coda ggplot2 GLMMadaptive gridExtra matrixStats nlme parallelly Rcpp RcppArmadillo survival]; };
   JMdesign = derive2 { name="JMdesign"; version="1.5"; sha256="12y9g9m38qbvibay1pm0s9zyw5hxczdysm1hxcpjqi265z9wr9wd"; depends=[]; };
   JNplots = derive2 { name="JNplots"; version="0.1.1"; sha256="0k1jdy5wdzdswzl6kz9d1r6imj3cqcmkyz7ka1d6pcbysjsj9ynn"; depends=[ape nlme scales]; };
   JOPS = derive2 { name="JOPS"; version="0.1.19"; sha256="0qnycf7yd1sas0v6jclmc1y0jq9bslqlf66mqyirpxcs2lsk0327"; depends=[boot colorspace fds fields ggplot2 MASS rpart SemiPar spam SpATS]; };
   JOUSBoost = derive2 { name="JOUSBoost"; version="2.1.0"; sha256="0f3rr7aw20nvmlpqrq3wzgmr55lqdqhk3wphpqq7msgvaf1zrcl7"; depends=[doParallel foreach Rcpp rpart]; };
   JPEN = derive2 { name="JPEN"; version="1.0"; sha256="12rvp5bmlkwyr1gg336k655hp09gym0d2wwry70c1rz30x1sf2zs"; depends=[mvtnorm]; };
   JQL = derive2 { name="JQL"; version="3.6.9"; sha256="0d926hngv4r6zl5f6yai3jwhl9hql2hv6ja3yjgplglkns66g4lh"; depends=[caret pdist randomForest]; };
-  JSDNE = derive2 { name="JSDNE"; version="4.2.2"; sha256="1607icsdscn1ryqd2r81s2gh46ddy72grcxzz9vwzmc32msbd1sn"; depends=[dplyr MASS molaR nnet Rvcg]; };
+  JSDNE = derive2 { name="JSDNE"; version="4.3.2"; sha256="1j3ish1kfhx8in37l8ljd22qmaqi6wlsjchzwhfi21rhjrynqzkz"; depends=[dplyr MASS molaR nnet Rvcg]; };
   JSM = derive2 { name="JSM"; version="1.0.1"; sha256="0vcsay1jpjlfdwykad4hp319swr9lv1ajlcyhmiizwr1ph3f1az9"; depends=[nlme Rcpp RcppEigen statmod survival]; };
   JSUparameters = derive2 { name="JSUparameters"; version="1.0.0"; sha256="0jikzazdp6id72d5csplhsa2yrm9cb02f00bfzriyhgfl43v09mh"; depends=[]; };
   JSconsole = derive2 { name="JSconsole"; version="0.1.0"; sha256="1jpa48xb7hh4ap25sqrl67rzqra53qhcfwpfgs6hmpjnrld8n3ha"; depends=[rstudioapi V8]; };
@@ -2590,7 +2640,7 @@ in with self; {
   Jmisc = derive2 { name="Jmisc"; version="0.3.1.1"; sha256="0fcch7rg8gn92855smd7h2andr33h9dnccjy12w2bx0px8rnqa0s"; depends=[]; };
   JoF = derive2 { name="JoF"; version="0.1.0"; sha256="1my6fc4awrc822ibsvx3hiz4l49vp8dx0j05v56r7d27xizy8j0j"; depends=[]; };
   JoSAE = derive2 { name="JoSAE"; version="0.3.0"; sha256="1vjxzbfs8a7kpmn2lb9dca67d4njmzjr3pl16s0r9ihmmxxwwili"; depends=[nlme]; };
-  JointAI = derive2 { name="JointAI"; version="1.0.5"; sha256="1f1dmdrm8i7la2ydlcpnl0gk1yxdgf9x7s802mgp6hjplcrgzf3q"; depends=[coda future MASS mathjaxr mcmcse rjags rlang survival]; };
+  JointAI = derive2 { name="JointAI"; version="1.0.6"; sha256="1vckbn4y27bdc6176nnjpwa2wm6kyzxkvndf128jw4871964szp5"; depends=[coda future MASS mathjaxr mcmcse rjags rlang survival]; };
   JointFPM = derive2 { name="JointFPM"; version="1.2.0"; sha256="1g6b35i4lvwizg6ji7kg9m7lmi81zz1rrd0qsvssphmbh7i5p58s"; depends=[cli data_table lifecycle matrixStats rlang rmutil rstpm2 statmod survival]; };
   Julia = derive2 { name="Julia"; version="1.3.5"; sha256="0ynzxflz92y38z7bl9g8nhrgvz2ay716izpya398b29h4qfb1w4r"; depends=[]; };
   JuliaCall = derive2 { name="JuliaCall"; version="0.17.5"; sha256="036rxp2lygvpxpykpxx2lqyyzidzzi95lv6g30n70hzy0agjym4j"; depends=[knitr Rcpp rjson]; };
@@ -2598,18 +2648,21 @@ in with self; {
   JustifyAlpha = derive2 { name="JustifyAlpha"; version="0.1.1"; sha256="0bd7sn4sn95kal5q2x1q78fsk1mhakr5fax3z6ny2yda2h266af9"; depends=[BayesFactor ggplot2 pwr qpdf shiny shinydashboard stringr Superpower]; };
   KCSKNNShiny = derive2 { name="KCSKNNShiny"; version="0.1.0"; sha256="13gzqf3g7vj8cc0xm5902q7lad2way8d0ri1fs01dnv97wmwbxvn"; depends=[caret dplyr FNN rhandsontable shiny]; };
   KCSNBShiny = derive2 { name="KCSNBShiny"; version="0.1.0"; sha256="1lv5r9qyvr3dnvcs00jyam0whv64qmv5vphhijlar1xa1g1llwqr"; depends=[caret dplyr e1071 rhandsontable shiny]; };
+  KEPTED = derive2 { name="KEPTED"; version="0.2.0"; sha256="0i2sdz4sk558h4nwi82ing1zx34m93v59lr81ska57xiw77y7swy"; depends=[CompQuadForm cubature expm]; };
   KERE = derive2 { name="KERE"; version="1.0.0"; sha256="1b16cb3ihcsp9jffmd45sd7ia4pibikmj62ad344wmq22q4fpliy"; depends=[]; };
   KFAS = derive2 { name="KFAS"; version="1.5.1"; sha256="1kswy3ahd7ng8jhd1nl1x454ywqnlsgpxnzz0q2rll7hsl3xr4hj"; depends=[]; };
   KFPCA = derive2 { name="KFPCA"; version="2.0"; sha256="1dzywxnp3ywg3zbvmacj3a1i7w5cg1g93a9ncl7ddwb7wqpzg6x1"; depends=[fda fdapace kader pracma]; };
   KFPLS = derive2 { name="KFPLS"; version="1.0"; sha256="1bdba738mhsa6yw515fyaw96pycvflw596fh9dkhhns498lg7356"; depends=[fda]; };
   KGode = derive2 { name="KGode"; version="1.0.4"; sha256="0q39x34rwya3pqhvly1g0n2ykzvwrwdpdnp3y3ya9cyai63l2sgn"; depends=[mvtnorm pracma pspline R6]; };
   KHQ = derive2 { name="KHQ"; version="0.2.0"; sha256="1vg0p3igbw81fbp2gli9msqbvymbn0qf3g3y0nb3q51d7wfax0qd"; depends=[magrittr openxlsx]; };
-  KINSIMU = derive2 { name="KINSIMU"; version="0.1.2"; sha256="0chsjpg0irxk7m7hqb7fmv60cdc7fdjmii64pfadjbnmzzzbhbq1"; depends=[]; };
-  KLINK = derive2 { name="KLINK"; version="0.7.2"; sha256="03aqpjwb0iqw7papvzx0vz2811rgang1p8sy7zr0qkrlcn7i3fw2"; depends=[forrel gt openxlsx pedFamilias pedmut pedprobr pedtools shiny shinydashboard verbalisr zip]; };
+  KINSIMU = derive2 { name="KINSIMU"; version="0.1.2-2"; sha256="1skhrrlskasysfvr1dmrsyji1zb897vx1zcb07hwzm8lrzda7fd7"; depends=[]; };
+  KLINK = derive2 { name="KLINK"; version="0.7.3"; sha256="1q2znry97rly1nj7crqqfm5c41sxcia6i4b080ccdwzap26pm17i"; depends=[forrel gt openxlsx pedFamilias pedmut pedprobr pedtools shiny shinydashboard verbalisr zip]; };
   KLexp = derive2 { name="KLexp"; version="1.0.0"; sha256="1knnqzzywh6zcj60133a5bfzqqxmf86gn4m1kggm7gzv1k9mx90b"; depends=[glmnet]; };
   KMD = derive2 { name="KMD"; version="0.1.0"; sha256="0sgcfh5b4dl1gy3dxsdsqgmyfrd6kqrzvxv9g4slskwyrjsirsp5"; depends=[boot data_table igraph mlpack proxy RANN]; };
+  KMEANS_KNN = derive2 { name="KMEANS.KNN"; version="0.1.0"; sha256="1973lrf5j63za86bjc8klv78gi1kiwrbiqf86675kdv6qf69ik44"; depends=[assertthat caret class cluster factoextra ggplot2]; };
+  KMLtoSHAPE = derive2 { name="KMLtoSHAPE"; version="0.1.0"; sha256="1qbm06cn6jm523zxvj0f25c7x78vfsw7a92igwlnwfs38lii25vf"; depends=[raster sf stringr]; };
   KMsurv = derive2 { name="KMsurv"; version="0.1-5"; sha256="0hi5vvk584rl70gbrr75w9hc775xmbxnaig0dd6hlpi4071pnqjm"; depends=[]; };
-  KMunicate = derive2 { name="KMunicate"; version="0.2.4"; sha256="13pkhyzv47zp1zz43fs0frbjgbjylyandhrfnzzwryxpchrghpqh"; depends=[checkmate cowplot ggplot2 pammtools survival tidyr]; };
+  KMunicate = derive2 { name="KMunicate"; version="0.2.5"; sha256="0lfxxqrgh23i5gm0mwhq14kkzq5vxfnn3s8ydmfjvhphif322w4n"; depends=[checkmate cowplot ggplot2 pammtools survival tidyr]; };
   KNNShiny = derive2 { name="KNNShiny"; version="0.1.0"; sha256="16zm8bhdivaap3mvhdx2qn1b1j2iqyarclb0y2qd1n4viwcfm9c1"; depends=[caret dplyr e1071 FNN psycho rhandsontable rmarkdown shiny]; };
   KODAMA = derive2 { name="KODAMA"; version="2.4"; sha256="1rw5xjv5sblhj5mr31hgv472gial5bl4f288db07ysgkjqsymwkq"; depends=[minerva Rcpp RcppArmadillo Rtsne umap]; };
   KOGMWU = derive2 { name="KOGMWU"; version="1.2"; sha256="1vz0099gp1r10n7w4p480l8rswdw100sns196d9xin2ibmmd2fx9"; depends=[pheatmap]; };
@@ -2624,7 +2677,7 @@ in with self; {
   KSEAapp = derive2 { name="KSEAapp"; version="0.99.0"; sha256="1gfgpa2d32y6bzvf4ww70sm7niq34sqmyrhi0phlqxshqq9xviqc"; depends=[gplots]; };
   KSPM = derive2 { name="KSPM"; version="0.2.1"; sha256="13fq0d016z6880rr93y918l27fsxd5dxc6gbdnkma5sgsjni5cxh"; depends=[CompQuadForm DEoptim expm]; };
   KScorrect = derive2 { name="KScorrect"; version="1.4.0"; sha256="1khvwc610yp3fd4fn0wcgqpzxg9g7sicjjmwvfcahs8qxn3m5vfa"; depends=[doParallel foreach iterators MASS mclust]; };
-  KSgeneral = derive2 { name="KSgeneral"; version="1.1.3"; sha256="1q17ccs35yznli9zkqp5x7sx0i0ckryzcpwjyliwsqjx3bia9p32"; depends=[dgof MASS Rcpp]; };
+  KSgeneral = derive2 { name="KSgeneral"; version="2.0.0"; sha256="0m3qr65366vqb8pbjidmvlcz5prwmrzcrcs0scsnqcyvwrlwyf0l"; depends=[dgof MASS Rcpp]; };
   KTensorGraphs = derive2 { name="KTensorGraphs"; version="1.1"; sha256="1szl66ix6c6vb0zzyp404psglx3lk125903zc4za0qfzcic7a9p6"; depends=[]; };
   KappaGUI = derive2 { name="KappaGUI"; version="2.0.2"; sha256="0vklny804xpd9r60j4a01j2gak8jizwjw0abf7yvbcalv3zbpb3k"; depends=[irr shiny]; };
   KaradaColor = derive2 { name="KaradaColor"; version="0.1.5"; sha256="0hndz1inl4s7vgkg570npk73zh9hglr7kwa1yrkgdsk5lf8l8z4m"; depends=[crayon ggplot2]; };
@@ -2634,18 +2687,18 @@ in with self; {
   Kcop = derive2 { name="Kcop"; version="1.0.0"; sha256="0p9ik4z2jc2ib70v8lxxa40f13jbqgq6bb9s7yx335na9l43h1j8"; depends=[copula dplyr gtools orthopolynom]; };
   KenSyn = derive2 { name="KenSyn"; version="0.3"; sha256="0s8sq3caxn4swac81196dp52r9lbmxb3ni45yaxh53f5g34slsi8"; depends=[lme4 metafor nlme]; };
   Kendall = derive2 { name="Kendall"; version="2.2.1"; sha256="1xmk95l4i3kj9jn0xh1chi2rj322k29jq14ra5pa7316gwf9vx2m"; depends=[boot]; };
-  KernSmooth = derive2 { name="KernSmooth"; version="2.23-22"; sha256="1sblhl7b9d3m6034xd3254ddkj9ssqxawknzksfbgjh68s849q3n"; depends=[]; };
+  KernSmooth = derive2 { name="KernSmooth"; version="2.23-24"; sha256="0pxc53sw9f4hhxnl3zkalkkk0fvzcfxw7c4ibrb95zbzahwyrcyh"; depends=[]; };
   KernSmoothIRT = derive2 { name="KernSmoothIRT"; version="6.4"; sha256="0qqlmcd04m89pmhrbmxxx4lzzb6sksgrm0j8x7fs5r0sxdqy6rcp"; depends=[plotrix Rcpp rgl]; };
   KernelKnn = derive2 { name="KernelKnn"; version="1.1.5"; sha256="1b361qqkicbdwcmh7fj8rfqqj5yaf2ygmh4hwy5qxbpw8zkagccj"; depends=[Rcpp RcppArmadillo]; };
   Kernelheaping = derive2 { name="Kernelheaping"; version="2.3.0"; sha256="0nd8kbprpm2jrpnqr4xb4z8wklv5js2y3kdpjc2q0ay229hf85j8"; depends=[dplyr fastmatch fitdistrplus GB2 ks magrittr MASS mvtnorm plyr sp sparr]; };
   Keyboard = derive2 { name="Keyboard"; version="0.1.3"; sha256="1yfcn1r0zngc1nlj5axqps8an66p1q1qmxwagxq2q15d9qipb5wh"; depends=[ggplot2 Iso Rcpp]; };
   KinMixLite = derive2 { name="KinMixLite"; version="2.1.0"; sha256="17kjb12r35b42ghkv6mp0jk115gn2dlwc8cdf92cm9jjn4k9am9a"; depends=[DNAmixturesLite gRaven gRbase Matrix numDeriv pedtools ribd Rsolnp statnet_common]; };
   KingCountyHouses = derive2 { name="KingCountyHouses"; version="0.1.0"; sha256="17l415v290lm99rsifpk6324mm1sk79ns4cvjkyh9ibj8n7l44c1"; depends=[]; };
-  Kira = derive2 { name="Kira"; version="1.0.1"; sha256="1hs782is31j4d19737lwdqaxdvprws9lv0x4v3wn07pcsais5wki"; depends=[MASS]; };
+  Kira = derive2 { name="Kira"; version="1.0.3"; sha256="02h80rmrkggmavbvz1d6p3q7gllf8m6g7vx2k01hxy1c8l237i2b"; depends=[MASS]; };
   Kmedians = derive2 { name="Kmedians"; version="2.2.0"; sha256="0bsbwxv0a9b6g89h7v876hm5p97viwbczz851ngjv5li5qzvlpxs"; depends=[capushe doParallel foreach genieclust ggplot2 Gmedian mvtnorm reshape2]; };
   KnapsackSampling = derive2 { name="KnapsackSampling"; version="0.1.1"; sha256="1yiakgzmh72lans1mwp42lch9x9gg2g6ww2hrjdma3w1bbsidlwf"; depends=[lpSolve]; };
   KneeArrower = derive2 { name="KneeArrower"; version="1.0.0"; sha256="1blmim4l7375psa9c3wbpksywj5nfbawly4001n6311wcv4dybl5"; depends=[signal]; };
-  KnockoffHybrid = derive2 { name="KnockoffHybrid"; version="1.0.0"; sha256="0fzymcyb40v3bgd39a6nfxf4wrs171k655rx779q3vxb75nlnlnb"; depends=[glmnet SPAtest]; };
+  KnockoffHybrid = derive2 { name="KnockoffHybrid"; version="1.0.1"; sha256="0ziqnhs2ipnzrh4ndjppcf2w3s13mwsza7w2s5dgfd70i0f6nk7v"; depends=[glmnet SPAtest]; };
   KnockoffScreen = derive2 { name="KnockoffScreen"; version="0.3.0"; sha256="01r04d9ha9l5pkz3lwdcb5x5qqwk8vil9avnbnfn76wg63mdfhbk"; depends=[bigmemory CompQuadForm data_table irlba Matrix seqminer SPAtest]; };
   KnockoffTrio = derive2 { name="KnockoffTrio"; version="1.0.2"; sha256="198sy0ww4cc59yqgf66vg6r5g52wmgpn51v43cm51b3pi7g7klar"; depends=[]; };
   KnowBR = derive2 { name="KnowBR"; version="2.2"; sha256="1w78rmrh4vgvgv3xf0s7w0zcw3y33l1h1gz6sma87xj8awpsp2l2"; depends=[fossil mgcv plotrix sp vegan]; };
@@ -2656,20 +2709,21 @@ in with self; {
   KrigInv = derive2 { name="KrigInv"; version="1.4.2"; sha256="01i953b0xrqrwbgzv8giz4dmcbc18jni9whhkmpg8sxvhqac59ns"; depends=[anMC DiceKriging mvtnorm pbivnorm randtoolbox rgenoud]; };
   Kurt = derive2 { name="Kurt"; version="1.1"; sha256="0fmd3m6pgsyf614wf11yclxl9zsac5jrffci5c2514wvs1slqw1p"; depends=[expm labstatR matrixcalc polynom]; };
   L0Learn = derive2 { name="L0Learn"; version="2.1.0"; sha256="050r2rqmqgwmal53d82vi0nhnzzrm4q8mqz0pbpj77blflbqy740"; depends=[ggplot2 MASS Matrix Rcpp RcppArmadillo reshape2]; };
-  L1centrality = derive2 { name="L1centrality"; version="0.0.3"; sha256="1cg80g5s4hmjk6qrhf55mw33cr91agj5shr938jigp59nc3rcr7s"; depends=[igraph Rcpp withr]; };
-  L1pack = derive2 { name="L1pack"; version="0.41-24"; sha256="1zbiiawvm1jfmsab7kxz2rr969xbz2nxxx4piadp5s5ln8v4jxil"; depends=[fastmatrix]; };
+  L1centrality = derive2 { name="L1centrality"; version="0.1.1"; sha256="1qjvyplkc957mhcyd4fly6il93mm5bj2v6azmr4vqc31lpx7j295"; depends=[igraph Rcpp withr]; };
+  L1pack = derive2 { name="L1pack"; version="0.41-245"; sha256="1frhma6ipycgiq23fsbcnii2rqw53xpd202d7sjpqhi8xpvkawsc"; depends=[fastmatrix]; };
   L2DensityGoFtest = derive2 { name="L2DensityGoFtest"; version="0.6.0"; sha256="1fzfqfq77rf4hfrh1idb2nb67mwk9lwypxhr2qc1hiidvk060lq0"; depends=[boot fGarch mvtnorm nor1mix]; };
   L2E = derive2 { name="L2E"; version="2.0"; sha256="1ar8jmi7nddp6f5rfh8zvh8w8zkigdf1zjzdr5fz8zqj2ny5hy30"; depends=[cobs isotone Matrix ncvreg osqp robustbase signal]; };
   L2hdchange = derive2 { name="L2hdchange"; version="1.0"; sha256="18gh6dc05w5ac7gdy202v3drb6258k8qnk73335hpwaiswp7i328"; depends=[]; };
-  LA = derive2 { name="LA"; version="2.2"; sha256="12fhkrjcj5304pdpgmf8iilxgy5vnixqj3zb87csa4m22ibpkah4"; depends=[Rcpp RcppArmadillo]; };
+  LA = derive2 { name="LA"; version="2.3"; sha256="098gqnjw2zfl2s0hmbci8kahr9mjz9fh5ll3blnw2wc2ikn5n152"; depends=[Rcpp RcppArmadillo]; };
   LAD = derive2 { name="LAD"; version="0.1.0"; sha256="0qms5w9fx0hqjiq2wirckay6x9v0h99h6dhahfkba4vcfa8vxnkx"; depends=[cowplot dplyr ggplot2 magrittr purrr rlang tidyr tidyselect]; };
   LAGOSNE = derive2 { name="LAGOSNE"; version="2.0.3"; sha256="03x2ghcpl1ibpic4msb1n3n8fqbxjnv357phlb2a7y5lmy4fb1ny"; depends=[curl dplyr httr lazyeval magrittr memoise progress purrr qs rappdirs rlang sf stringr tibble tidyr]; };
   LAIr = derive2 { name="LAIr"; version="0.3.0"; sha256="092dk6fhp0fkd2fxhwqxfhrm4im1z8dvyd9kg4m2dbyyn17h5i1c"; depends=[dplyr purrr stringr terra]; };
   LAM = derive2 { name="LAM"; version="0.6-19"; sha256="1bns8m48rlkv1d87wvhlvkplr8kpm2rda5wb9xcvjqr7bf65nk8b"; depends=[CDM Rcpp RcppArmadillo sirt]; };
   LARF = derive2 { name="LARF"; version="1.4"; sha256="1sqib7smgjacn07ishwls1nlbvcb6fpp1vhrjwf9g4xf9jk30i8h"; depends=[Formula]; };
   LARisk = derive2 { name="LARisk"; version="1.0.0"; sha256="13d008v8aypqlx35bf16y7rcfcv5qnbsi8q0zpfcl03rzxmqpb8b"; depends=[dplyr Rcpp]; };
+  LATERmodel = derive2 { name="LATERmodel"; version="0.2.0"; sha256="1dik3gzh3hm9wd32bbyj7jyks3aca32j3bbigjshlv5i3140k2nn"; depends=[dplyr ggplot2 moments rlang tibble]; };
   LAWBL = derive2 { name="LAWBL"; version="1.5.0"; sha256="0vqjp00nviyl6ghbjn2ayj3k0x2a7hihff0w0x7xwqv3z8x0mh8g"; depends=[coda MASS]; };
-  LBI = derive2 { name="LBI"; version="0.1.0"; sha256="03s4l90ffwfg4516m1bsyyylzwv1pbaq19xvkyprkzz1mjwmkxqj"; depends=[]; };
+  LBI = derive2 { name="LBI"; version="0.1.2"; sha256="18hnvhgl2lji5jawxir1fw7qcmky48qnh8xb5gmnxff8mplwjk0c"; depends=[]; };
   LBPG = derive2 { name="LBPG"; version="0.1.2"; sha256="01sky2388ylx960vd5lnj48an2n82fd909cnm11v91kklyvkxxlc"; depends=[gsl]; };
   LBSPR = derive2 { name="LBSPR"; version="0.1.6"; sha256="075wcjhvp90fj37ihrplnrc0vy8wpav5qivkw1rgv00fa8xj7pw0"; depends=[dplyr ggplot2 gridExtra plotrix RColorBrewer Rcpp shiny tidyr]; };
   LCA = derive2 { name="LCA"; version="0.1.1"; sha256="014kih33y8b9nls0pcigw68jbz7vgnq8w1xbwm2d37g1m5y6xlyw"; depends=[]; };
@@ -2692,10 +2746,9 @@ in with self; {
   LDNN = derive2 { name="LDNN"; version="1.10"; sha256="092mnjdmc0l471vd8nym09r9sfx1scp4x6nh22mj6413vaicagq0"; depends=[devtools keras reticulate tensorflow]; };
   LDRTools = derive2 { name="LDRTools"; version="0.2-2"; sha256="0ll6przymxa98drwp0lq4mlar4blj6cig91mf2avifmp2aqfmk6c"; depends=[]; };
   LDcorSV = derive2 { name="LDcorSV"; version="1.3.3"; sha256="0wr8i9q9p48vpcia8v3rd8bb2pfijr9r6kg9x26k4wncpg7n83cp"; depends=[]; };
-  LDlinkR = derive2 { name="LDlinkR"; version="1.3.0"; sha256="0al36cdq7g14fqvxb1c26ih269704f8m0kyky526ravbgf0ydnw1"; depends=[httr]; };
-  LEANR = derive2 { name="LEANR"; version="1.4.9"; sha256="053xy13ys5hibafdnbkwqdk36hw7dhanp4frfacpfpn5f9nfh95r"; depends=[foreach igraph]; };
+  LDlinkR = derive2 { name="LDlinkR"; version="1.4.0"; sha256="0a9j6yyws6n3989ig53nzgadrhjbdj9y2cyr9q0f1svsi6h80lxj"; depends=[httr]; };
   LEGIT = derive2 { name="LEGIT"; version="1.4.1"; sha256="0rwcbckkpmm849yl4rrk97ai31wb89sizbp7974rrfrjb707xl4i"; depends=[boot doSNOW foreach formula_tools glmnet Hmisc iterators lme4 pROC RColorBrewer snow]; };
-  LFApp = derive2 { name="LFApp"; version="1.4"; sha256="1pxblh8v63n2gcsz1wbxv66aylaz2q61zw2w3l3r9z515kgmid77"; depends=[DT EBImage fs ggplot2 mgcv shiny shinyFiles shinyjs shinyMobile shinythemes]; };
+  LFApp = derive2 { name="LFApp"; version="1.4.1"; sha256="1gdapv0nxwxpg1sfc759lh9x8d4whp7h3102xb95sxi3h9xjaqin"; depends=[DT EBImage fs ggplot2 mgcv shiny shinyFiles shinyjs shinyMobile shinythemes]; };
   LFDR_MLE = derive2 { name="LFDR.MLE"; version="1.0.1"; sha256="0ykcd24w71zxb53nch041g7xh83gmg1ia3sysdpn0yzkhm0w7cdl"; depends=[]; };
   LFDR_MME = derive2 { name="LFDR.MME"; version="1.0"; sha256="1ln0s3ki37cz1a7r96xn0zqw42im7fcanmz2vjk5zycshb423y22"; depends=[]; };
   LFDREmpiricalBayes = derive2 { name="LFDREmpiricalBayes"; version="1.0"; sha256="1imw3djmbpdyplv9dmdzzirp9imk88j0kcxcyfh8yr9ywgd77x6b"; depends=[matrixStats R6]; };
@@ -2713,12 +2766,12 @@ in with self; {
   LMD = derive2 { name="LMD"; version="1.0.0"; sha256="0yizv25ssw9a2ydwlabgx6rfksi3bfz6ay4508fz21j18sq49dfy"; depends=[EMD ggplot2 patchwork]; };
   LMERConvenienceFunctions = derive2 { name="LMERConvenienceFunctions"; version="3.0"; sha256="0jg889qh5a9wdi01yiw6z7kivs9dzh5dcq39f4zifdpqzglhshzb"; depends=[fields LCFdata lme4 Matrix mgcv]; };
   LMMELSM = derive2 { name="LMMELSM"; version="0.2.0"; sha256="0m57hsfpgxch5lmpdxqp720jv18as12drpx1p5x3y4w0navslslz"; depends=[BH Formula loo MASS nlme Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
-  LMMsolver = derive2 { name="LMMsolver"; version="1.0.6"; sha256="0507xrzsm2v8rakp9zwdzc250p92xkicy8anp72pryvj11lszqcw"; depends=[agridat ggplot2 maps Matrix Rcpp sf spam]; };
-  LMMstar = derive2 { name="LMMstar"; version="1.0.1"; sha256="1z02lx671k94gj5dh1qbk6sx1698wb2avgiagarnkjc4r1il2al5"; depends=[copula doParallel emmeans foreach ggplot2 lava Matrix multcomp nlme numDeriv pbapply rlang sandwich scales]; };
+  LMMsolver = derive2 { name="LMMsolver"; version="1.0.7"; sha256="0vzgbq2hpj65c7y1gkxz80smrl693basffkvv9gb7l29ifp10gs5"; depends=[agridat ggplot2 maps Matrix Rcpp sf spam]; };
+  LMMstar = derive2 { name="LMMstar"; version="1.1.0"; sha256="1hfj69iq9ina23kyz4xvp1xfvg4klzhi6kvfqng4amazlh1vncb1"; depends=[copula doParallel foreach ggplot2 lava Matrix multcomp nlme numDeriv rlang]; };
   LMN = derive2 { name="LMN"; version="1.1.3"; sha256="0qnc74m2g4fl1cb39xmanvv1hwcnk0169xn4h4phlhxgr0313m63"; depends=[Rcpp RcppEigen SuperGauss]; };
   LMest = derive2 { name="LMest"; version="3.1.2"; sha256="0a9lch9bylhy5r4v865lwzzz9qqi98na8bfnr5ga8kzy7akbnza0"; depends=[diagram Formula MASS mclust mix MultiLCIRT mvtnorm scatterplot3d]; };
   LMfilteR = derive2 { name="LMfilteR"; version="0.1.3.1"; sha256="1ncx8kqnh43zxffy7rba1xjb3ar3qi1rzmnwpl6vldijajmnjrv8"; depends=[MASS]; };
-  LMoFit = derive2 { name="LMoFit"; version="0.1.6"; sha256="10xiaa5h8c0sq9z70yjs29z8jnjyqgybdv33d6s2100h3n46jd31"; depends=[ggplot2 lmom pracma sf]; };
+  LMoFit = derive2 { name="LMoFit"; version="0.1.7"; sha256="1lpn2b4fi2vlqcghbq6fzl4cj4w837v950cxxcrafky15gwzzn8m"; depends=[ggplot2 lmom pracma sf]; };
   LNIRT = derive2 { name="LNIRT"; version="0.5.1"; sha256="0w32qvz5mhzg6f8050p57v26amn6d2il2icjfiypf7yi3gsx7w09"; depends=[MASS]; };
   LNPar = derive2 { name="LNPar"; version="0.1.0"; sha256="1pgal49pcv2g9jvn39am42d22cwm67pc2pql5wyca2c3i4jx0sz9"; depends=[Rdpack]; };
   LOCUS = derive2 { name="LOCUS"; version="1.0"; sha256="16hfgj7ilwqlywy3xhfag4fwrbbfqvlmwi55chskc8s2km997pdb"; depends=[far ica MASS]; };
@@ -2731,7 +2784,7 @@ in with self; {
   LPCM = derive2 { name="LPCM"; version="0.47-4"; sha256="0vjdnrc4jcp8l12x57qdj21k325n98wrr1x7f76z3s5fwk2s1kwg"; depends=[]; };
   LPGraph = derive2 { name="LPGraph"; version="2.1"; sha256="1d2kslravi3v9kf6sdabwfpa9s9xxqj3s3d7f7qfcrpfydqixq1q"; depends=[car PMA]; };
   LPKsample = derive2 { name="LPKsample"; version="2.1"; sha256="0ifhx8w9f6sacmnck2g7i7r742i8bwwzf0rgajw3klw2wni9ikqx"; depends=[apcluster igraph LPGraph mclust]; };
-  LPM = derive2 { name="LPM"; version="3.0"; sha256="13k0w5183jvwa3gdilrd9fgnxk9n4sf529l1ddl04ymk7f0ar7wb"; depends=[fracdiff MASS powdist]; };
+  LPM = derive2 { name="LPM"; version="3.2"; sha256="0xyyfvaa65wi3vz252y59hv4018bw6xwa24rs9d6w53b3slr7pnn"; depends=[fracdiff MASS powdist]; };
   LPRelevance = derive2 { name="LPRelevance"; version="3.3"; sha256="1harwhgqd9swyljijj7bfir176an92kdy8mik1q0nbc061jdgx0i"; depends=[BayesGOF Bolstad2 caret ggplot2 glmnet leaps locfdr MASS polynom reshape2]; };
   LPS = derive2 { name="LPS"; version="1.0.16"; sha256="192iz2gakrddqc4h1y4swj3m3dl03x9mvj3i1dl7jnj18dxik24n"; depends=[]; };
   LPWC = derive2 { name="LPWC"; version="1.0.0"; sha256="0jgz8rkhhsdiwz7jq568axcsfwlkzdpwssr76zx33r0gz6mf3lln"; depends=[nleqslv]; };
@@ -2748,6 +2801,7 @@ in with self; {
   LSAmitR = derive2 { name="LSAmitR"; version="1.0-3"; sha256="1c2i9wy72v9923ngkipwmc49nc6r3znibadgffzkhci583ib55ym"; depends=[Hmisc lme4]; };
   LSD = derive2 { name="LSD"; version="4.1-0"; sha256="17pbdlcbhzf3v7l42mjikln1ga5xjp5r78gjg6a88iahk0lwwlvm"; depends=[]; };
   LSDinterface = derive2 { name="LSDinterface"; version="1.2.1"; sha256="0zp7bgdbcah6hsfqbz7lq6f7g8xcqhjsr7pjpwjf9brnmy0l7xki"; depends=[abind boot TSdist]; };
+  LSDirf = derive2 { name="LSDirf"; version="0.1.3"; sha256="0malgsq6gdc53iylkbbndn11b9pf5l7wdaj406ips2k42idfzk91"; depends=[abind boot digest gplots partykit randomForest]; };
   LSDsensitivity = derive2 { name="LSDsensitivity"; version="1.2.3"; sha256="1qq19f7k6klq7xpa1iq6spm8kbiy229r2wbwkng6rkn7jj2kcd70"; depends=[abind car DiceKriging diptest kSamples lawstat LSDinterface randtoolbox rgenoud sensitivity tseries]; };
   LSE = derive2 { name="LSE"; version="1.0.0"; sha256="01qj0zasv7dbwg0qxryz1d5jp4rapvnm9i6a4jd7c4pxqdm11j7y"; depends=[MASS pracma]; };
   LSMRealOptions = derive2 { name="LSMRealOptions"; version="0.2.1"; sha256="0paa5yahpyr8jpgy8aqk2fcixdny6ip09vqm8varvpiqfxrjd6ww"; depends=[]; };
@@ -2761,7 +2815,8 @@ in with self; {
   LSWPlib = derive2 { name="LSWPlib"; version="0.1.0"; sha256="1z4lcpmbm3wdzbi04flvspkimk4jfhjqi5pd0ab4pbb0ii1z26hs"; depends=[waveslim wavethresh]; };
   LSX = derive2 { name="LSX"; version="1.4.0"; sha256="1qch23k8qs9v19npsh90nxv8wznp1lqga8k995117vsjj8h7i7s3"; depends=[digest ggplot2 ggrepel irlba locfit Matrix proxyC quanteda quanteda_textstats reshape2 rsparse RSpectra rsvd stringi]; };
   LTAR = derive2 { name="LTAR"; version="0.1.0"; sha256="0jn0fym0v6j9c7pam1samafph9fiqrdr141n3mqj9xks0vaqrqqh"; depends=[gsignal rTensor rTensor2 vars]; };
-  LTASR = derive2 { name="LTASR"; version="0.1.2"; sha256="1cq00w9pg4mmgsg7ydm9azr0f9hgxa7vskpfrmh90j6xixqmpn4c"; depends=[dplyr knitr lubridate magrittr purrr readr rlang stringr tidyr XML zoo]; };
+  LTASR = derive2 { name="LTASR"; version="0.1.3"; sha256="1dab18np0jkb9s8lkrmsk52h0f714ry851kvbnqs2kdl3zrsrl2f"; depends=[dplyr knitr lubridate magrittr purrr readr rlang stringr tidyr XML zoo]; };
+  LTCDM = derive2 { name="LTCDM"; version="1.0.0"; sha256="0q9lj69vpkyc6a40m9xj46qi5h8h2r6rl4k49bs3z19661gcxydd"; depends=[GDINA ggplot2 ggpubr ggsignif]; };
   LTFHPlus = derive2 { name="LTFHPlus"; version="2.1.1"; sha256="0f8xww6n2r54c26idi6ixfk89dff7c14dljvpaa71yxm0rb0isff"; depends=[batchmeans dplyr future future_apply igraph purrr Rcpp rlang stringr tibble tidyr tidyselect tmvtnorm xgboost]; };
   LTPDvar = derive2 { name="LTPDvar"; version="1.2.1"; sha256="0sdsdx71mpian7gfw7brkzyjjr7bai7dsdifwnib3jpq9p7w7n84"; depends=[]; };
   LTRCforests = derive2 { name="LTRCforests"; version="0.7.0"; sha256="13ypp0fyca536bs8mlg1a3f4zp03788vg7g3yyh1xy2r0q66xb4g"; depends=[ipred partykit prodlim survival]; };
@@ -2772,6 +2827,7 @@ in with self; {
   LWFBrook90R = derive2 { name="LWFBrook90R"; version="0.5.3"; sha256="10fr3p6lgym5dlz92867yq1drv2ygx4nq8zkap5756khv0drf8za"; depends=[data_table doFuture foreach future iterators parallelly progressr vegperiod]; };
   LZeroSpikeInference = derive2 { name="LZeroSpikeInference"; version="1.0.3"; sha256="15x29afaq13iwlj66h97k3kczg9rfgp6i9d76rji58hfgh8i8by6"; depends=[]; };
   LaF = derive2 { name="LaF"; version="0.8.4"; sha256="1mj010bl4ql0hm33vl0dd08s9dab11y9fa32nsqs6kbb22gjzk6p"; depends=[Rcpp]; };
+  LaMa = derive2 { name="LaMa"; version="1.0.0"; sha256="02s13hpkw9h123wmcgawypqrskd0ivciwabv9djw9l66yk79rjix"; depends=[mgcv Rcpp RcppArmadillo]; };
   LabApplStat = derive2 { name="LabApplStat"; version="1.4.4"; sha256="0wiyfrk5dfd2djgg461qxhk7zrpwhiagkjcr36w7fbrgibbnmm54"; depends=[emmeans ggplot2 ggraph vctrs]; };
   LabRS = derive2 { name="LabRS"; version="0.1.0"; sha256="1a9qafimia83qldsif5wfqx273mvqbx22p5i0hg8n4jvj4vzpy2w"; depends=[knitr]; };
   LabourMarketAreas = derive2 { name="LabourMarketAreas"; version="3.4"; sha256="0cifbfijrb80q8xsj7jc6klv78k7sf820d2g5ag2i1lk1vxahwc4"; depends=[data_table sf sp spdep tmap]; };
@@ -2799,12 +2855,12 @@ in with self; {
   LearnBayes = derive2 { name="LearnBayes"; version="2.15.1"; sha256="0ch54v2zz2yyyk0lvn5rfikdmyz1qh9j1wk3585wl8v58mc0h4cv"; depends=[]; };
   LearnClust = derive2 { name="LearnClust"; version="1.1"; sha256="0r2ns1bnsygc6jhr83v1ylfp8fkn3j76233zk5cwsxrq0grx5iqs"; depends=[magick]; };
   LearnGeom = derive2 { name="LearnGeom"; version="1.5"; sha256="1pnxiwjkdj78p4hkl1lqagmd937q63yncb45fcra28sa9v9psrcs"; depends=[]; };
-  LearnPCA = derive2 { name="LearnPCA"; version="0.2.0"; sha256="0b7g12mcmbxrh2zywgk5n4w7ix0pwf074r3ch5ak0h8cwd26zmqz"; depends=[markdown shiny]; };
+  LearnPCA = derive2 { name="LearnPCA"; version="0.3.4"; sha256="0ka46pfsr0971d6n1vpx4mmclp00f643cnz6yvssy3ywm1mbx8hm"; depends=[class markdown nnet rpart shiny]; };
   LearnSL = derive2 { name="LearnSL"; version="1.0.0"; sha256="0iqw9hj5066yj4ij7v1dfdvn0q3y4wjwwznhilgsyvlbr0lj642b"; depends=[cli]; };
   LearningRlab = derive2 { name="LearningRlab"; version="2.4"; sha256="0wjmdmj9c96fz83nnh9np3xlpbgdq7z0bjp020gidyw0cmfjqddf"; depends=[crayon magick]; };
   LearningStats = derive2 { name="LearningStats"; version="0.1.0"; sha256="0xrrb6jws4zj2nwnn30g338bib49b7j26v52ym7p2variwllz068"; depends=[data_table haven readODS readxl]; };
-  LexFindR = derive2 { name="LexFindR"; version="1.0.2"; sha256="16ikw3s034zqgfcp2hiyhv1nq5kp65wpq1d8fclrlqiabilyk7x4"; depends=[]; };
-  LexisNexisTools = derive2 { name="LexisNexisTools"; version="0.3.7"; sha256="1cap4q1afv8mbbjn1n5n6np7s9rjmw1647n8v5k0knwn4a4hchi1"; depends=[data_table pbapply quanteda quanteda_textstats stringdist stringi tibble]; };
+  LexFindR = derive2 { name="LexFindR"; version="1.1.0"; sha256="15pvlvgzx05sj69f3g485cabb476a24iaqv4wcwkai95ln5wk2i5"; depends=[]; };
+  LexisNexisTools = derive2 { name="LexisNexisTools"; version="1.0.0"; sha256="070swhryb37g73s2gawi6i60zdifkkwrz1zss2irp6cvawip7kxj"; depends=[data_table pbapply quanteda quanteda_textstats stringdist stringi tibble]; };
   LexisPlotR = derive2 { name="LexisPlotR"; version="0.4.0"; sha256="0vlm8wcaj3755cbxrfb7ybla9znd2cbklw2xwyyn6r9i4c9xsfih"; depends=[dplyr ggplot2 tidyr]; };
   LibOPF = derive2 { name="LibOPF"; version="2.6.2"; sha256="0hkgx2al685353slv5yaqkls56bwci8zc1w6xdfzalfdwna2a7hm"; depends=[]; };
   LiblineaR = derive2 { name="LiblineaR"; version="2.10-23"; sha256="0c8sj8gyrfycqi75xxf7fpy5kbffbw3aw3xj34x90sj47vg0sr09"; depends=[]; };
@@ -2817,7 +2873,7 @@ in with self; {
   Lifertable = derive2 { name="Lifertable"; version="0.0.1"; sha256="0k7mgzhz92mrkhw8p87c4qy84vm3rjj8asm753xxw0h6z7fgvy3c"; depends=[ggplot2 tidyr]; };
   LiftTest = derive2 { name="LiftTest"; version="0.2.0"; sha256="097aj0b8gxly3gqvckcl9xcvv60yd06ydagdqzy80zhv4aqgxm5p"; depends=[]; };
   LightningR = derive2 { name="LightningR"; version="1.0.2"; sha256="1va673aw2hgir8ybbjad6dhbs8izs1z4jcikwa7qp3mkv0zqd0vq"; depends=[httr R6 RCurl RJSONIO]; };
-  LikertMakeR = derive2 { name="LikertMakeR"; version="0.2.0"; sha256="04fzjwlwnqkn2p0jq0jhsjxwcaacq2v1pjllyrhkr1zgfr2qyibf"; depends=[Rcpp RcppArmadillo]; };
+  LikertMakeR = derive2 { name="LikertMakeR"; version="0.3.0"; sha256="0hxyrgm88wvaa6b1cggm45f851sg7rzsbcz7745lcl9zmmkw5w1d"; depends=[dplyr gtools Rcpp RcppArmadillo]; };
   LilRhino = derive2 { name="LilRhino"; version="1.2.2"; sha256="1b3wbnzqakjxh3c3s4cxf14nnb1vrbvslqcyn9bh0zbw1arf5ixl"; depends=[beepr data_table dplyr e1071 fastmatch FNN ggplot2 keras neuralnet readr SnowballC stringi tm]; };
   LimnoPalettes = derive2 { name="LimnoPalettes"; version="0.1.0"; sha256="0qzcx182nn5ygqlsqmxl1r4r0gg89q0qqgk6hk5lvgb5ghf91z3y"; depends=[]; };
   LinCal = derive2 { name="LinCal"; version="1.0.1"; sha256="1zxl0p2lj0nnzsxv6lzncswj0czvzxy2islbjvdinjzkkfjm7izb"; depends=[]; };
@@ -2829,8 +2885,8 @@ in with self; {
   LinkageMapView = derive2 { name="LinkageMapView"; version="2.1.2"; sha256="101g4djzkxgxbn87an2vz4s9nwn8gwz7a3p3wg0y4zpdd1pdp716"; depends=[plotrix qtl RColorBrewer]; };
   LinkedGASP = derive2 { name="LinkedGASP"; version="1.0"; sha256="1win1yd8y677rmic531dyd29f49p7pr1r3kbjysvv9syi5nkydyj"; depends=[nloptr spBayes]; };
   LinkedMatrix = derive2 { name="LinkedMatrix"; version="1.4.0"; sha256="0p6qjnrljxnj3c5nynmx563vcqhxj4jf7czqdg750h38gjy8qzxi"; depends=[crochet]; };
-  LipidMS = derive2 { name="LipidMS"; version="3.0.4"; sha256="0z0zyv1br938nnng0w2k79ymlb9rsz7ayv68a8ll1512in3w04fn"; depends=[CHNOSZ doParallel foreach iterators readMzXmlData scales shiny shinythemes]; };
-  LipidomicsR = derive2 { name="LipidomicsR"; version="0.1.6"; sha256="0ipywvqy0983v4cqpp4n8y04g1w8izcx6v960kwh3rklnn1p19ym"; depends=[broom car cowplot dplyr fmsb ggiraph ggplot2 ggplotify ggrepel pheatmap RColorBrewer rcompanion reshape2 scales stringr tidyr tidyselect tidyverse]; };
+  LipidMS = derive2 { name="LipidMS"; version="3.0.5"; sha256="1c0dq1b5ns4kmvdf3viam7g7p5bgviqw1z967nkjslxiyxsjrvki"; depends=[CHNOSZ doParallel foreach iterators readMzXmlData scales shiny shinythemes]; };
+  LipidomicsR = derive2 { name="LipidomicsR"; version="0.3.6"; sha256="1mg0lwmhb4rak6gzyypn6nbd8fdgkpxpksgf0vcagh3zlrynshp7"; depends=[broom car cowplot dplyr fmsb ggforce ggiraph ggplot2 ggplotify ggrepel ggsci pheatmap RColorBrewer rcompanion reshape2 scales stringr tidyr tidyselect tidyverse]; };
   LipinskiFilters = derive2 { name="LipinskiFilters"; version="1.0.1"; sha256="0dfl3rww7x3n6a6d4qb3cyq4qwnx7bhvgw2r5w5hzc7ydl62mbwj"; depends=[cowplot ggplot2 itertools knitr rcdk]; };
   Lmoments = derive2 { name="Lmoments"; version="1.3-1"; sha256="0pc63bj9a8hzr5m3yssrc4kin39fffwkl8rggs3sagzr12d4i7bw"; depends=[Rcpp RcppArmadillo]; };
   LncFinder = derive2 { name="LncFinder"; version="1.1.5"; sha256="0mb41fjph4svn2amdx6fb2j8pzgll17c0xxwnsan9vjipnmj59hi"; depends=[caret e1071 seqinr]; };
@@ -2842,7 +2898,6 @@ in with self; {
   LocalControl = derive2 { name="LocalControl"; version="1.1.3"; sha256="0pi5z3i5hmb8nrqg6nyqrd4hx80xjgc5m3ra1z5r8rvjhw4mz0ik"; depends=[cluster gss lattice Rcpp]; };
   LocalCop = derive2 { name="LocalCop"; version="0.0.1"; sha256="0cjp2ws87ys3hf18i9hha5rs2c1k8jfya7vqkp1lygmzccvan1j4"; depends=[RcppEigen TMB VineCopula]; };
   Lock5Data = derive2 { name="Lock5Data"; version="3.0.0"; sha256="1407vkcdphy5pb4sgy2ms36vjffiwg2l2753gbszm9wv2m0wrnv4"; depends=[]; };
-  Lock5withR = derive2 { name="Lock5withR"; version="1.2.2"; sha256="10x3i11pb4cig4pgfmw9984na5zjbg7d41y6crakiimf53ihx0c2"; depends=[]; };
   LogConcDEAD = derive2 { name="LogConcDEAD"; version="1.6-9"; sha256="0m744byjlf5wrpg5pzi4229h3gdzv88bxfr60mgpg9qy4l6r1p2p"; depends=[MASS mclust mvtnorm]; };
   LogRegEquiv = derive2 { name="LogRegEquiv"; version="0.1.5"; sha256="1j23w3fmd2swk2mzbmsq7hy878cm7cs1li65srjc9m79az9vgr3h"; depends=[]; };
   LogicForest = derive2 { name="LogicForest"; version="2.1.1"; sha256="11f64w80a14yqbngajahw397zfa9yx86asylnmszzx8l2qvw307c"; depends=[LogicReg]; };
@@ -2853,25 +2908,24 @@ in with self; {
   LongDat = derive2 { name="LongDat"; version="1.1.2"; sha256="1rzkb7byd32jqvhf75zyvy0dlkq79aicz8j0x7lk821qiq4dfv6l"; depends=[bestNormalize car dplyr effsize emmeans ggplot2 glmmTMB lme4 magrittr MASS patchwork reshape2 rlang rstatix stringr tibble tidyr]; };
   LongMemoryTS = derive2 { name="LongMemoryTS"; version="0.1.0"; sha256="0n378sad8i283vs7q63spdhwpwjly2d5zj15d4v2085j7sc7z8vi"; depends=[fracdiff longmemo mvtnorm partitions Rcpp RcppArmadillo]; };
   LongituRF = derive2 { name="LongituRF"; version="0.9"; sha256="0h70g0qhv0rgz40i58ykrcak1wibbvya7fql0v79xkd21217y1av"; depends=[latex2exp mvtnorm randomForest rpart]; };
-  LoopAnalyst = derive2 { name="LoopAnalyst"; version="1.2-6"; sha256="1gy9v6qiwkwbwp4snif2imf6zn50ffjrig54ln57c5v5pk3phnvv"; depends=[nlme]; };
+  LoopAnalyst = derive2 { name="LoopAnalyst"; version="1.2-7"; sha256="1fp7j1q20xpgysdpyy2z3p1fzrr4bv6mjyb7hn3nh820z0bl554y"; depends=[nlme]; };
   LoopDetectR = derive2 { name="LoopDetectR"; version="0.1.2"; sha256="0c65svz9v8z9886awdf9jm3ysk7nc7gk7q2ihpy20fcciiv05b30"; depends=[igraph numDeriv]; };
   LoopRig = derive2 { name="LoopRig"; version="0.1.1"; sha256="11rarb9fg8abc4dpd8sd8safqw3v6g8k6rcrg2nw97xppwcz8c6b"; depends=[GenomicRanges IRanges S4Vectors]; };
   LorenzRegression = derive2 { name="LorenzRegression"; version="1.0.0"; sha256="1jxz753bcq8b16ncjk6v8c8ylv8brlqd90fdzn9lappm1k4y0r46"; depends=[doParallel foreach GA ggplot2 knitr locpol MASS Rcpp RcppArmadillo Rearrangement]; };
-  LotkasLaw = derive2 { name="LotkasLaw"; version="0.0.1.0"; sha256="11kq52yavicimp7ll7ljrs69a5fxf68ydb9md7v6b02iw5mwbmz7"; depends=[]; };
   LowRankQP = derive2 { name="LowRankQP"; version="1.0.6"; sha256="0ki7b2y4vcm0cqflf76nqfnfyvljgawnng4ffxqavfj21l8p62kg"; depends=[]; };
   LowWAFOMNX = derive2 { name="LowWAFOMNX"; version="1.1.1"; sha256="0f75qsv6pisgvk39yagzfxscnyfsgh63rmhp4gpybpl0pqmjp48x"; depends=[Rcpp RSQLite]; };
   LowWAFOMSobol = derive2 { name="LowWAFOMSobol"; version="1.1.1"; sha256="1ym3i2m1am356di9lcp5nfmxq0np3c4bwsv6bbmf7hg02j7dhwi4"; depends=[Rcpp RSQLite]; };
   LqG = derive2 { name="LqG"; version="0.1.0"; sha256="08v6qyvg96jn096xvayivywllcja782mg4zi4gcaaq12hhwdhl1m"; depends=[]; };
-  Luminescence = derive2 { name="Luminescence"; version="0.9.23"; sha256="1qjmsi2y2wa0yj0zh36hbfa2939q2865s670vnn9p2nd8iz8wyl5"; depends=[bbmle data_table DEoptim httr interp lamW matrixStats mclust minpack_lm Rcpp RcppArmadillo readxl shape XML zoo]; };
+  Luminescence = derive2 { name="Luminescence"; version="0.9.24"; sha256="0i4z0pyykvp0kxv5xg2id9p3829wxivvn5lgqickb2xql4rrggp6"; depends=[bbmle data_table DEoptim httr interp lamW matrixStats mclust minpack_lm Rcpp RcppArmadillo readxl shape XML zoo]; };
   M2SMF = derive2 { name="M2SMF"; version="2.0"; sha256="160qjrb3mxybvr4z6zra6rzf6scyrb9mplw36gqlfxj418ndnmm1"; depends=[dplyr MASS]; };
   M2SMJF = derive2 { name="M2SMJF"; version="1.0"; sha256="0v4sg5h3h2pjp996jspv206c8cymjpn1fg38ivaw12s7bmx8j409"; depends=[dplyr MASS]; };
+  M3 = derive2 { name="M3"; version="0.4"; sha256="18473ifcwvavic29nh9vnbrxfxfckydik3yl3hmv2djwkclx976q"; depends=[mapdata maps ncdf4 sf]; };
   M3JF = derive2 { name="M3JF"; version="0.1.0"; sha256="0sz02cis8xh11fyng44j6al2fkz6ybcabdgg25bbwb3vidf1y197"; depends=[dplyr InterSIM MASS SNFtool]; };
   MAAPER = derive2 { name="MAAPER"; version="1.1.1"; sha256="05jjfnp1hwg8pk06np6fbdfxi6zn60wzhrkzlh8jkqgwxjhgnvai"; depends=[GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges IRanges MASS Rsamtools]; };
   MABOUST = derive2 { name="MABOUST"; version="1.0.1"; sha256="044k29nibl5zc32zz2696kbhrz5dafgaikgmjqznsq25p48si453"; depends=[Rcpp RcppArmadillo]; };
   MACER = derive2 { name="MACER"; version="0.2.1"; sha256="02qqcaccw671773lp1zva340fd6wqbsx9v0yxy62cbjnyh3k260r"; depends=[ape ggplot2 httr pbapply png rentrez]; };
-  MACP = derive2 { name="MACP"; version="0.1.0"; sha256="097qqqv0xmkm8cc5a2zr96lnnrkw92nzr3cj4sfnfa6whlpi72fn"; depends=[caret dplyr fmsb ggplot2 Hmisc igraph lsa pROC PRROC stringr tibble tidyr WGCNA zoo]; };
   MADPop = derive2 { name="MADPop"; version="1.1.7"; sha256="0qmn6spp6vfn60h32s58yxngv8gmp1hpl8xni55v6ari0kczw90x"; depends=[BH Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
-  MAGEE = derive2 { name="MAGEE"; version="1.3.2"; sha256="0k4dgbs686rchk26d1cvprf46axc1a6klxx1cajwrdcm1l9j7van"; depends=[CompQuadForm data_table foreach GMMAT MASS Matrix Rcpp RcppArmadillo]; };
+  MAGEE = derive2 { name="MAGEE"; version="1.4.1"; sha256="0xkabvj222xrm62fvaaj0fhdybankz2a01rlxn84n0xvv4hlap7s"; depends=[CompQuadForm data_table foreach GMMAT MASS Matrix Rcpp RcppArmadillo]; };
   MAGMA_R = derive2 { name="MAGMA.R"; version="1.0.1"; sha256="0i474az77w9nfmxhz2z76v483vsny1gkpzv3mb1zaqdcv26yqpzq"; depends=[doParallel dplyr flextable foreach ggplot2 janitor metafor overlapping psych purrr rlang robumeta tibble tidyselect tidyverse]; };
   MAGNAMWAR = derive2 { name="MAGNAMWAR"; version="2.0.4"; sha256="1asr18byrgy6bkpxpmnkczgr3dam6ymf30lw6izq112krc891bg4"; depends=[ape coxme doParallel dplyr foreach iterators lme4 multcomp plyr qqman seqinr survival]; };
   MAINT_Data = derive2 { name="MAINT.Data"; version="2.7.1"; sha256="0hjrz25jg4a6kcap01rjjgfvvmg1padd57wgjxihaxpsm7pb0fq9"; depends=[GGally ggplot2 MASS mclust miscTools pcaPP Rcpp RcppArmadillo robustbase rrcov sn withr]; };
@@ -2879,7 +2933,7 @@ in with self; {
   MALDIquant = derive2 { name="MALDIquant"; version="1.22.2"; sha256="1zygmn8cny5r4s0ni2kgqbg2xzjvjh9rzmqnw256jg0035qb0lb0"; depends=[]; };
   MALDIquantForeign = derive2 { name="MALDIquantForeign"; version="0.14.1"; sha256="0504a755mccz174g5zcldblwbyg3y11hpxxwpj9bhw937h55zxng"; depends=[base64enc digest MALDIquant readBrukerFlexData readMzXmlData XML]; };
   MALDIrppa = derive2 { name="MALDIrppa"; version="1.1.0-2"; sha256="1afwkc8dyq51z610z7wnhm95f5j04yj90pxxa33mhdnm2dwsc963"; depends=[lattice MALDIquant robustbase signal waveslim]; };
-  MAMS = derive2 { name="MAMS"; version="2.0.1"; sha256="1mrdn9klqjpf74wvb5brm79jy260qb1n12rpqmqd38i5hrkpcqsx"; depends=[future future_apply mvtnorm]; };
+  MAMS = derive2 { name="MAMS"; version="2.0.2"; sha256="16j24z18z7dc25sk4jfnqgglw8gvv6ddhvl6v8lswm3ib4l6chvb"; depends=[future future_apply knitr mvtnorm]; };
   MANCIE = derive2 { name="MANCIE"; version="1.4"; sha256="0940xl3z5bca6hcnj2bj341l79wajilxlxzmyz3dlgrz0b3bbdmm"; depends=[]; };
   MANOVA_RM = derive2 { name="MANOVA.RM"; version="0.5.4"; sha256="03y6qzbh696h282pq8as2zy16y7j95d04qvn3labivd5qygfwfhp"; depends=[data_table ellipse magic MASS Matrix multcomp plotrix plyr]; };
   MAP = derive2 { name="MAP"; version="0.1.3"; sha256="19d0m30jh50ibbdgvcvq1vsz5i1vf8qvl0d0nbqklvnndch61jhk"; depends=[flexmix Matrix]; };
@@ -2891,10 +2945,10 @@ in with self; {
   MARSS = derive2 { name="MARSS"; version="3.11.9"; sha256="0iipvlf6franhvbpg5c7wdnyzl9wl27xhnl1k66mi9m8ihjcczrm"; depends=[generics KFAS mvtnorm nlme]; };
   MARSSVRhybrid = derive2 { name="MARSSVRhybrid"; version="0.1.0"; sha256="10b8d75q5hiqf8id1qsvjx379xyx4vphq5r1iwvykjaw4zxbyx65"; depends=[e1071 earth]; };
   MARVEL = derive2 { name="MARVEL"; version="1.4.0"; sha256="1zsgj3dbqpfjv2x6xpp75n9jxf04svqffiy9gxlbxkns3clwqz5i"; depends=[ggplot2 Matrix plyr scales]; };
-  MASS = derive2 { name="MASS"; version="7.3-60.0.1"; sha256="1gdd2gyqngvgnm0bxc3a33nykrx2rbfmxj82i7bh7f1961cr7pvl"; depends=[]; };
+  MASS = derive2 { name="MASS"; version="7.3-61"; sha256="140ah1719zad8gd0glvy9qlkxxakgz12i5r5gk2bgmwxayzwhi1i"; depends=[]; };
   MASSExtra = derive2 { name="MASSExtra"; version="1.2.2"; sha256="0agr8kf7hh7mjpa98y486bql9wxjwif9f03wz468srzz8jjin39h"; depends=[demoKde MASS]; };
   MASSTIMATE = derive2 { name="MASSTIMATE"; version="2.0-1"; sha256="1dvidwjw4zgflms5njbd9n85g1gbgfg6hk0fb63q5n65iyxxfmyh"; depends=[]; };
-  MAT = derive2 { name="MAT"; version="2.3.1"; sha256="0jr08j96agqw4hzdbk9ixdpngh60bd7w47192d0zm3byymcxpb0y"; depends=[Rcpp RcppArmadillo]; };
+  MAT = derive2 { name="MAT"; version="2.3.2"; sha256="0zihjan1kg3h4fkg51m9pfnl9763024q0r83r1yk83ckb78v2s88"; depends=[Rcpp RcppArmadillo]; };
   MATA = derive2 { name="MATA"; version="0.7.1"; sha256="0qydfp856qlmiwf3a2vs2dfk203sx8vvzrqn4hga9wi7bxdylk9f"; depends=[]; };
   MAVE = derive2 { name="MAVE"; version="1.3.11"; sha256="01n204bxabbm8pcpayy2s0jvhg73r5cv0026lb3vbk0m40z02kcz"; depends=[mda Rcpp RcppArmadillo]; };
   MAZE = derive2 { name="MAZE"; version="0.0.2"; sha256="01vxglgfn82m8avsq6s144gmwclw08arzfrb8lwlcynr62ifzaim"; depends=[doParallel flexmix foreach MASS numDeriv pracma Rcpp]; };
@@ -2903,11 +2957,13 @@ in with self; {
   MB = derive2 { name="MB"; version="0.1.1"; sha256="15ynrx2w5h5m18ws63syp29n8qc9dfk8q0riidskynijz3p7wz7w"; depends=[tibble]; };
   MBA = derive2 { name="MBA"; version="0.1-0"; sha256="1bw3a8xcbjmhb3mfzblx8kpj3jiag8c95wm5g6xy52xrql2rj0vq"; depends=[BH]; };
   MBAnalysis = derive2 { name="MBAnalysis"; version="2.0.2"; sha256="1b1s7s1qa82y8054f3mdpq7s13lk7dks900li5k0gr7sqfqdg1fz"; depends=[ggplot2 ggrepel]; };
+  MBBEFDLite = derive2 { name="MBBEFDLite"; version="0.0.2"; sha256="0bq7h2jfnqiylmy9ji5k4r3v76qbxpd5wdjck18fs4vjfxapwplp"; depends=[]; };
   MBC = derive2 { name="MBC"; version="0.10-6"; sha256="1680lnzga21qk5yddrciiaifxkkb9kk744m9fbj0hg5xw6v9dxic"; depends=[energy FNN Matrix]; };
+  MBCbook = derive2 { name="MBCbook"; version="0.1.2"; sha256="0av7mswr1l02jkjpmh780phjgwjazqzyl07hkb282ba2h95dwlwx"; depends=[MASS mclust mvtnorm Rmixmod]; };
   MBESS = derive2 { name="MBESS"; version="4.9.3"; sha256="05ph8dwigwn0c4qg8smqhsjijvsvfawbzvm74mqpasi8qifz8nd3"; depends=[boot lavaan MASS mnormt nlme OpenMx sem semTools]; };
   MBHdesign = derive2 { name="MBHdesign"; version="2.3.15"; sha256="03v6809drwjwr9xk19pr4n5wnqy5kh3vizfk0mlml3sn40fg3kxj"; depends=[class geometry mgcv mvtnorm randtoolbox terra]; };
   MBMethPred = derive2 { name="MBMethPred"; version="0.1.4.2"; sha256="0qpflcydkf2k8a7kqklvp7mskppviqkffkr98rfsklk8iqf8x9c9"; depends=[caret caTools class dplyr e1071 ggplot2 keras MASS pROC randomForest readr reshape2 reticulate rgl Rtsne SNFtool stringr tensorflow xgboost]; };
-  MBNMAdose = derive2 { name="MBNMAdose"; version="0.4.2"; sha256="1iar3xqj8458nh0lb2nc566zsdglvrvbxb6xz7yd1nny5aqdxdm3"; depends=[checkmate dplyr igraph magrittr R2jags Rdpack reshape2 rjags scales]; };
+  MBNMAdose = derive2 { name="MBNMAdose"; version="0.4.3"; sha256="1dqh7z6wpnryl9djfsacbdm4b4my08kh4l63vd31xs742sywv6i0"; depends=[checkmate dplyr igraph magrittr R2jags Rdpack reshape2 rjags scales]; };
   MBNMAtime = derive2 { name="MBNMAtime"; version="0.2.4"; sha256="1ny438dy62zrafyf7nng2hq5v311l1zc5xd39452fgq6ij0rnrni"; depends=[checkmate dplyr gridExtra knitr magrittr R2jags Rdpack reshape2 rjags]; };
   MBSGS = derive2 { name="MBSGS"; version="1.1.0"; sha256="1h5vhmpgrqza12j7ivhwgd5wyb7kkb8mjbxl5w756vyid8g03flz"; depends=[MASS MCMCpack mgcv mnormt truncnorm]; };
   MBSP = derive2 { name="MBSP"; version="4.0"; sha256="1rfjykm2363m67ycm9vsxnddcsmlqxg5gx8sfg9ma8alwnh0s3fb"; depends=[GIGrvg MCMCpack mvtnorm]; };
@@ -2915,6 +2971,7 @@ in with self; {
   MCARtest = derive2 { name="MCARtest"; version="1.2.1"; sha256="0vcw8ysxkv2ajiv44cf6pf8dgn6bmjzs01fsdijs29ky9467alw5"; depends=[copula Epi gtools highs lpSolve MASS Matrix missMethods misty norm pracma rcdd Rcpp Rcsdp Rdpack]; };
   MCAvariants = derive2 { name="MCAvariants"; version="2.6.1"; sha256="0hsm60z1xkjda74f1ab3m5d2l9rv5r88ms7fi0bndrys6dd9fzgl"; depends=[ggplot2 ggrepel gridExtra plotly]; };
   MCBackscattering = derive2 { name="MCBackscattering"; version="0.1.1"; sha256="0vvcqjrh8psl480s4q2830rzm2bwy9mmvk9kipp72lzln51qnha6"; depends=[]; };
+  MCCM = derive2 { name="MCCM"; version="0.1.0"; sha256="1iyd81smamxxy97gzb7jzxkys94ql9nchik3aszkd91zicixd12k"; depends=[lavaan MASS mvtnorm polycor]; };
   MCDA = derive2 { name="MCDA"; version="0.1.0"; sha256="060mqk1cyxh2v68dr8533zr4k3wkz2f4k22400xgj40rwgj9a355"; depends=[combinat ggplot2 glpkAPI plyr RColorBrewer Rglpk triangle]; };
   MCI = derive2 { name="MCI"; version="1.3.3"; sha256="1wn8lcr5sq3697nsmly6syb9jv7p99ks0fy933ff5rx54x3rf9hz"; depends=[]; };
   MCID = derive2 { name="MCID"; version="0.1.0"; sha256="034r4qxbqnl9hhkpv9r79p26lzj5qh0379ya43ynyvbbi8b8z3rl"; depends=[]; };
@@ -2923,7 +2980,7 @@ in with self; {
   MCMC_OTU = derive2 { name="MCMC.OTU"; version="1.0.10"; sha256="1h1b0lw7d96q47sgq3px8j6rbkyhxhykm1c891px89khgg6hnszc"; depends=[coda ggplot2 MCMCglmm]; };
   MCMC_qpcr = derive2 { name="MCMC.qpcr"; version="1.2.4"; sha256="0v0d43wnq3swbrcsbg9qmwkmk4s50grd6cik4ng5baj2i6i4hd2n"; depends=[coda ggplot2 MCMCglmm]; };
   MCMC4Extremes = derive2 { name="MCMC4Extremes"; version="1.1"; sha256="06p6xdbja7vrdq4vnhybpkmyf4rkaihcmy9sc81sb0h2wa21vcq0"; depends=[evir]; };
-  MCMCglmm = derive2 { name="MCMCglmm"; version="2.35"; sha256="19krh6b817psz2fgaxny7acm5ka7yzpka8ildvjby0l7lxsg046c"; depends=[ape coda corpcor cubature Matrix tensorA]; };
+  MCMCglmm = derive2 { name="MCMCglmm"; version="2.36"; sha256="1wca9x5c9x88cryj1pkhl73chmnbc1653j08faz7lp03z2mdkzv6"; depends=[ape coda corpcor cubature Matrix tensorA]; };
   MCMCpack = derive2 { name="MCMCpack"; version="1.7-0"; sha256="1vsx0hs8v0928lhkf2jhwc2cwq7bdb5iciibkbfc2zh123bp6q44"; depends=[coda lattice MASS mcmc quantreg]; };
   MCMCprecision = derive2 { name="MCMCprecision"; version="0.4.0"; sha256="0r0qchiv61sk3drrb0rhwsk55gci4w343hd2gsvclrlyb8r9qhaf"; depends=[combinat Matrix Rcpp RcppArmadillo RcppEigen RcppProgress]; };
   MCMCtreeR = derive2 { name="MCMCtreeR"; version="1.1"; sha256="00r6f62h7ryil7qxd25icvkqypjjssjsrz4i5sbqsnw5cdy5al8z"; depends=[ape coda sn]; };
@@ -2942,6 +2999,7 @@ in with self; {
   MDBED = derive2 { name="MDBED"; version="1.0.0"; sha256="1r3sizb2mqd4pqjy25krwmsjfkr6cl7lkd8db5jn3hgxx3qh6sgc"; depends=[doParallel foreach ggplot2 lattice orthopolynom psych Rdpack]; };
   MDEI = derive2 { name="MDEI"; version="1.0"; sha256="1bj9cp73lyj2dzcycf5a196a3d8swblhxs4qwsyc7vmy4pwpxq43"; depends=[MASS ranger Rcpp RcppArmadillo splines2]; };
   MDFS = derive2 { name="MDFS"; version="1.5.3"; sha256="0gazmcgkgz915s3ljjdksm0bw4z6f4fz9qfzibdq6wscwcg9kfjn"; depends=[]; };
+  MDMA = derive2 { name="MDMA"; version="1.1.0"; sha256="0lfn44p18jm6q1ci7m9r79jhfdd3x07489b7nadksn59xsianvaw"; depends=[car MASS]; };
   MDMAPR = derive2 { name="MDMAPR"; version="0.2.3"; sha256="0w2n6qrjvyzf2wc1yw8a8k027g3y3w2k0z6wkwnj1p8q5zg24c66"; depends=[berryFunctions bslib DBI dplyr DT ggplot2 htmltools htmlwidgets leaflet leaflet_extras plotly reactable readxl RMySQL shiny shinydashboard shinyjs shinyWidgets writexl xfun]; };
   MDMR = derive2 { name="MDMR"; version="0.5.1"; sha256="1pv57xl7pjsqxz1j8mnfmjaa36mlr749yb4c44ppdrx6khvw662x"; depends=[car CompQuadForm lme4]; };
   MDOLS = derive2 { name="MDOLS"; version="1.0"; sha256="02fkrv6yn2r0ryphvxhlnv05xxq3j824ijnj75dag3v9kinx1ar2"; depends=[]; };
@@ -2953,18 +3011,19 @@ in with self; {
   MDplot = derive2 { name="MDplot"; version="1.0.1"; sha256="1xijh18hrkb807nfkdr7g642aspn5psc8nw29q387jl5hly2w8s9"; depends=[gplots gtools MASS RColorBrewer]; };
   MED = derive2 { name="MED"; version="0.1.0"; sha256="0fy0qmxirkdz5kigy2r7l5czjzws0fhjxy13kv1kqh628ldrp109"; depends=[]; };
   MEDseq = derive2 { name="MEDseq"; version="1.4.1"; sha256="1w4jgy3fxwmk87r8kc4a6rx20salsk06qxxgx2jd3d22rvrj8crd"; depends=[cluster matrixStats nnet seriation stringdist TraMineR WeightedCluster]; };
+  MEFM = derive2 { name="MEFM"; version="0.1.1"; sha256="0gp2z9wwvpwm44lan13fr7j73zkn31clphkizwj8r40yynnavygy"; depends=[tensorMiss]; };
   MEGENA = derive2 { name="MEGENA"; version="1.3.7"; sha256="0cr10pmj1n831scz5kgaq3nkglr3imwgc62cxng2dvdxr9991g21"; depends=[BH cluster doParallel foreach fpc ggplot2 ggraph ggrepel igraph Matrix Rcpp reshape]; };
   MEMSS = derive2 { name="MEMSS"; version="0.9-3"; sha256="0fq85jrajfwavq2fvsw2x9hknc57wc253zw2vw970f04khfbragd"; depends=[lme4]; };
   MEPDF = derive2 { name="MEPDF"; version="3.0"; sha256="15hbp7g5dsdpvi239jm6jn11fn371ir6la31g0flqkilq6sr1sqd"; depends=[gtools mvtnorm plyr pracma]; };
   MERO = derive2 { name="MERO"; version="0.1.2"; sha256="10wz6qrmi612y6whrn3dka606llijp5d1fffh00b1pprx2rcfl8w"; depends=[doParallel foreach ggpubr missForest progress]; };
   MESS = derive2 { name="MESS"; version="0.5.12"; sha256="1xyw04glhpgdcc3p96yvm346l62lsq37ml6lv59ap2ksws9pkq21"; depends=[clipr geeM geepack ggformula ggplot2 glmnet kinship2 MASS Matrix mvtnorm Rcpp RcppArmadillo]; };
   MEclustnet = derive2 { name="MEclustnet"; version="1.2.2"; sha256="0rs58dafxngk2lkq14cy14ayjwgnz1gmi12jmi4z74sdj0b3h0gw"; depends=[e1071 ellipse latentnet MASS mvtnorm nnet vegan]; };
-  MF_beta4 = derive2 { name="MF.beta4"; version="1.0.1"; sha256="0l3qafpavjshfayvz603141ch9s9a4pl3ly1llfkrmm3rmspb261"; depends=[broom devtools dplyr ggplot2 ggpubr lme4 lmerTest patchwork purrr tidyr tidyverse]; };
+  MF_beta4 = derive2 { name="MF.beta4"; version="1.0.3"; sha256="13k9jqspg42hgis0svad76yvzb8bh5cm4qynkpn0ga0an2lww6gs"; depends=[broom devtools dplyr ggplot2 ggpubr lme4 lmerTest patchwork purrr tidyr tidyverse]; };
   MFAg = derive2 { name="MFAg"; version="1.9"; sha256="008krza4lhbv641sn0wlf9gl66n8x6c9d8404m76dsgdsr118c1a"; depends=[]; };
   MFDFA = derive2 { name="MFDFA"; version="1.1"; sha256="0nr78p6y4jpg1hrl0h7b7hyvwbr61paf85y3f2dx815x5hscmdhy"; depends=[numbers]; };
   MFO = derive2 { name="MFO"; version="0.1.0"; sha256="0i8zkdwmngdq21f1rmn1fmgsr525xfzyjd7nxwy8p7fns6hsq31r"; depends=[dplyr ggplot2 magrittr minpack_lm openxlsx readxl stringr tibble tidyr]; };
   MFPCA = derive2 { name="MFPCA"; version="1.3-10"; sha256="0qpmy9cxskz4ii3qa5kvrdka4gbvlnch2blis6jjr4vic86a5mgi"; depends=[abind foreach funData irlba Matrix mgcv plyr]; };
-  MFSIS = derive2 { name="MFSIS"; version="0.2.0"; sha256="0cr7ygnx2jqk0zvpfmqww38qkkrlrzkp5gkqmg4s1k6j0vjkm3lf"; depends=[Ball cli crayon doParallel dr foreach fs MASS reticulate survival]; };
+  MFSIS = derive2 { name="MFSIS"; version="0.2.1"; sha256="02bwnsyy5jrjmh50rd2cql8k9djkw6r0vi9rakfp86n853ir73fj"; depends=[Ball cli crayon doParallel dr foreach MASS reticulate survival]; };
   MFT = derive2 { name="MFT"; version="2.0"; sha256="0n1xws3dw0650037qyqgp600p8cf098qa5hkbncdfdbl0w34qamy"; depends=[]; };
   MG1StationaryProbability = derive2 { name="MG1StationaryProbability"; version="0.1.2"; sha256="151ygjpykc9jccfh6jhgywg82j006a8yqba6nvzhd1v9qb60yd4a"; depends=[doParallel foreach memoise]; };
   MGBT = derive2 { name="MGBT"; version="1.0.7"; sha256="0wrw5yjaw3sgsw0l8q5gq95i5q1wxwgcffkxkxaa1cygblrrz12y"; depends=[]; };
@@ -2984,11 +3043,11 @@ in with self; {
   MHTrajectoryR = derive2 { name="MHTrajectoryR"; version="1.0.1"; sha256="13idcjx7pjpwvr4c52938yqhhaj1gprb8hjhaim3jx4062wf9pla"; depends=[mgcv]; };
   MIAmaxent = derive2 { name="MIAmaxent"; version="1.2.0"; sha256="0r4q1735f7apfj0jz4f52ra7sisbkkkk2n6i0kii3q64sx2h3xbj"; depends=[dplyr e1071 raster rlang]; };
   MICsplines = derive2 { name="MICsplines"; version="1.0"; sha256="1ig3329akcaq6lk17nnid64qgz1i8spy11f1gawnbmp2x6z6y8wc"; depends=[]; };
-  MIDASwrappeR = derive2 { name="MIDASwrappeR"; version="0.5.1"; sha256="07108dg16i20fg6cvsnbflfz65smwk08vjmf1b193zyvhdikwhfm"; depends=[Rcpp]; };
   MIDN = derive2 { name="MIDN"; version="1.0"; sha256="08i9zfmaywi5imp36ahjpirlkl55k01x543nz95i089w3sfrsz0g"; depends=[BiasedUrn]; };
   MIIPW = derive2 { name="MIIPW"; version="0.1.1"; sha256="043zdadny5rb1vlg1lnjaxjdjqmb755lgxha4zcdzyv9sl83ca8y"; depends=[MASS Matrix mice]; };
   MIIVefa = derive2 { name="MIIVefa"; version="0.1.2"; sha256="1727xhnc1hxphid54nzzd2iaz1x3ivphidxkb47r3ck0njd43rwk"; depends=[MIIVsem]; };
   MIIVsem = derive2 { name="MIIVsem"; version="0.5.8"; sha256="1qb1xrxhgj6b0l24spbp80f0rm8v41bqsdachqjhsacq2lgga259"; depends=[boot car lavaan Matrix numDeriv]; };
+  MIMER = derive2 { name="MIMER"; version="1.0.3"; sha256="1nqdjgm95dnaxnzy5j28agl7b95hj6hqjyipk5mz44yc2y2chg3z"; depends=[AMR data_table dplyr fuzzyjoin reshape2 rlang stringr testthat tidyr]; };
   MIMSunit = derive2 { name="MIMSunit"; version="0.11.2"; sha256="1i0sadm4gh8yynnihhyp0lm37dq7qm7dmkl28jzdb5knls8nhcpz"; depends=[caTools dplyr dygraphs ggplot2 lubridate magrittr plyr R_utils RColorBrewer readr shiny signal stringr tibble xts]; };
   MINTplates = derive2 { name="MINTplates"; version="1.0.1"; sha256="1jj51314p2ni3f3ncpd8gp7pgshhsp97ic123d732sc9xr0h5rnr"; depends=[]; };
   MIRES = derive2 { name="MIRES"; version="0.1.0"; sha256="17k6f73qx85klhhn247nr6h7sinpabq9crlc5ag7qm6z7k6mr370"; depends=[BH cubature dirichletprocess Formula HDInterval logspline mvtnorm nlme pracma Rcpp RcppEigen rstan rstantools StanHeaders truncnorm]; };
@@ -2999,14 +3058,15 @@ in with self; {
   MKclass = derive2 { name="MKclass"; version="0.5"; sha256="1f6k00552vs3fql35mxrpqq52a8jw5g253k5a81shc11j9qapg9x"; depends=[]; };
   MKdescr = derive2 { name="MKdescr"; version="0.8"; sha256="0y4mg3lg94nvyvj8rns5lffd6qjw1yn6yw8kn03n94rig857amwp"; depends=[ggplot2 scales]; };
   MKendall = derive2 { name="MKendall"; version="1.5-4"; sha256="15ldzsz99i30x05bi73j3wny1xl0gzdxz3jqjq7dfygdb2gyz1jy"; depends=[]; };
-  MKinfer = derive2 { name="MKinfer"; version="1.1"; sha256="0wlvlh31qwxsk00zszbzrdhk7gx226i7cyhv35h9wnawmyrxkb5g"; depends=[arrangements boot exactRankTests ggplot2 miceadds MKdescr nlme]; };
+  MKinfer = derive2 { name="MKinfer"; version="1.2"; sha256="10fy49b5bprbc30zrgz1y74pp480x3avrk9pig6mj9gg6fci207p"; depends=[arrangements boot exactRankTests ggplot2 miceadds MKdescr nlme]; };
   MKmisc = derive2 { name="MKmisc"; version="1.9"; sha256="09kdwsfx5w3q88jbnxbaxzbzyx9fhhphqqaxn5qghhh1z2vpmy93"; depends=[ggplot2 limma RColorBrewer robustbase scales]; };
   MKomics = derive2 { name="MKomics"; version="0.7"; sha256="0ck8i7ip12bb6wilmwhdrbdmf56ymm3rp6973lr1p4bc2m2kvhif"; depends=[circlize ComplexHeatmap limma RColorBrewer robustbase]; };
-  MKpower = derive2 { name="MKpower"; version="0.8"; sha256="0mw2z2jglq64bbwkjbwyxxdljr2n2drrrjjxp2jydvl3zqzaq553"; depends=[coin ggplot2 matrixTests MKdescr MKinfer qqplotr]; };
+  MKpower = derive2 { name="MKpower"; version="0.9"; sha256="1q04cs2qrjivyiig8nz3s8fl9b4g0smj390vb8jy67p9rq4nhjjz"; depends=[coin ggplot2 matrixTests MKdescr MKinfer mvtnorm qqplotr]; };
   ML_MSBD = derive2 { name="ML.MSBD"; version="1.2.1"; sha256="1cpwq0vilbyz837d8k8pjipw3cwdsggbs88nwp827s4w2f1m7pap"; depends=[ape foreach]; };
   ML2Pvae = derive2 { name="ML2Pvae"; version="1.0.0.1"; sha256="089cl5mcf06zxs26grk0aqmd0xy9x6svfkfa7dw0m8zqc0s0mkix"; depends=[keras reticulate tensorflow tfprobability]; };
   MLCIRTwithin = derive2 { name="MLCIRTwithin"; version="2.1.1"; sha256="1x0xmka7kkbjnh3yv4zxxyl17cpmf0rb9hxmdl1srb6ijld4np1b"; depends=[limSolve MASS MultiLCIRT]; };
   MLCM = derive2 { name="MLCM"; version="0.4.3"; sha256="1sz5c3wxvnyxd3bf53i8x2jw591phx2np6c6bj4cqppb98ab83f3"; depends=[]; };
+  MLCOPULA = derive2 { name="MLCOPULA"; version="1.0.0"; sha256="1addgypksr3hrhzrj9ypaa2w7vgscrqlrfkgx7n0rc7drm827wix"; depends=[copula GRIDCOPULA igraph kde1d pracma TSP]; };
   MLDS = derive2 { name="MLDS"; version="0.5.1"; sha256="0c8bmdjn6980lqihzc0rgg864hs1a51n2lrwi1vrxdp4xylvnqdd"; depends=[MASS]; };
   MLDataR = derive2 { name="MLDataR"; version="1.0.1"; sha256="0sbm79hpgxiqnqjyr5n88rhs29lkp17czz9jmhd2d5x97ncpqw9f"; depends=[caret ConfusionTableR dplyr ggplot2 OddsPlotty parsnip ranger recipes rsample varhandle workflows]; };
   MLEce = derive2 { name="MLEce"; version="2.1.0"; sha256="190i2if8hgwqlznhls780vpkwprfmnsr9jm6zdsa8av0gh6kldzh"; depends=[ggplot2 LaplacesDemon mvtnorm nleqslv reshape sirt]; };
@@ -3023,9 +3083,9 @@ in with self; {
   MLVSBM = derive2 { name="MLVSBM"; version="0.2.4"; sha256="1jsaas7crdc3df790c279a5qr8iw63whmkijs86s1y6gyz4qk9vf"; depends=[ape blockmodels cluster magrittr R6]; };
   MLZ = derive2 { name="MLZ"; version="0.1.4"; sha256="0kvwv13gklilpmqrc939lm1npyvmg8hrxy8m8vfpvrc5jgli49mx"; depends=[dplyr ggplot2 gplots RcppEigen reshape2 TMB]; };
   MLeval = derive2 { name="MLeval"; version="0.3"; sha256="1g2w5lrr7199n4zyaalbp9xdgl858hdg1pqr3rpd7v5fmamawc69"; depends=[ggplot2]; };
-  MLmetrics = derive2 { name="MLmetrics"; version="1.1.1"; sha256="061129b36h7xqw4zsznik694n8yy9qq6aaqfhdxkhdv8n5v1nzvp"; depends=[ROCR]; };
+  MLmetrics = derive2 { name="MLmetrics"; version="1.1.3"; sha256="11dgpw6lzs3vrfa3v9kf8x2rph3vpicxbw5af89afa175by3amrc"; depends=[ROCR]; };
   MLpreemption = derive2 { name="MLpreemption"; version="1.0.1"; sha256="0fvrl7ahaiv93sq637yhf18j8bf3w28f0l4b8sjs2ssc5pbg1448"; depends=[]; };
-  MM = derive2 { name="MM"; version="1.6-7"; sha256="137v9728h5kxhvyrpvfawv25l9jzy7qi74pr4k91v286l0x7ksi6"; depends=[abind emulator magic mathjaxr Oarray partitions]; };
+  MM = derive2 { name="MM"; version="1.6-8"; sha256="04fr8vxjc7kgpxrlk7q5ibad00ff8fafl14l36snhbszv0zv4n8k"; depends=[abind magic mathjaxr Oarray partitions quadform]; };
   MM2Sdata = derive2 { name="MM2Sdata"; version="1.0.3"; sha256="0hlm6jp8jq38vkszwdgpf30w11l1fhpblg26zv05j50a6whpmhqd"; depends=[Biobase]; };
   MM4LMM = derive2 { name="MM4LMM"; version="3.0.2"; sha256="02a553pncv7q0zczy6rvj4avjpryv01n2mhr9cr0ir7607k1jllx"; depends=[corpcor dplyr MASS Matrix purrr Rcpp RcppEigen]; };
   MMAC = derive2 { name="MMAC"; version="0.1.2"; sha256="1xwz48iizf0lvmhc7krsraabc49ky85qvgr23w4ip6jzfv4sn1jr"; depends=[]; };
@@ -3041,6 +3101,7 @@ in with self; {
   MMVBVS = derive2 { name="MMVBVS"; version="0.8.0"; sha256="08nkhrf62yywpm0nw22pqzlcm72sf4zq44640a7pf57bbzm38ccy"; depends=[ggplot2 Rcpp RcppArmadillo reshape reshape2 rlang]; };
   MMWRweek = derive2 { name="MMWRweek"; version="0.1.3"; sha256="1l1ks44v52iggw9nhs56lfj6804yab5b17k8fzrc6h1kvj3vda0s"; depends=[]; };
   MMeM = derive2 { name="MMeM"; version="0.1.1"; sha256="1cig085h2jvrpb904wglwvhvds3sn58wpbl081wcwvzipfa8y37s"; depends=[jointDiag lme4 MASS Matrix matrixcalc psych stringr]; };
+  MN = derive2 { name="MN"; version="1.0"; sha256="1cq1yi5y014hfiz9k1l0pif4n1bs0zf8nzynichv6l9r8mr63j2b"; depends=[Rfast]; };
   MNARclust = derive2 { name="MNARclust"; version="1.1.0"; sha256="0r4d066nd5xzry3zn463zqzy3x45pqhix7jlg9ib3sjdfrqqimnn"; depends=[Rcpp RcppArmadillo rmutil sn]; };
   MNB = derive2 { name="MNB"; version="1.1.0"; sha256="01rq6bczqdbqj7w7aacvwb4zvfzy53pkxfawx5faxk60iwba8bj1"; depends=[flexsurv numDeriv]; };
   MNLR = derive2 { name="MNLR"; version="0.1.0"; sha256="0q80232ndp7pkklzqdbga1vf51dmsxaivm4ia4wah32rc2c87fqp"; depends=[caret e1071 nnet rmarkdown shiny]; };
@@ -3060,11 +3121,10 @@ in with self; {
   MOTE = derive2 { name="MOTE"; version="1.0.2"; sha256="17y2l2rmw7fhvknyh5z09i7hd8nhamx12g00rcymp75gqkz9lzc7"; depends=[ez MBESS reshape]; };
   MPBoost = derive2 { name="MPBoost"; version="0.1-6"; sha256="0fi8hx271893dak7whlcxyafqslnqj9kih3jk801s8lwg8g5zvp1"; depends=[BH Rcpp]; };
   MPCI = derive2 { name="MPCI"; version="1.0.7"; sha256="1l55q09lliv0y4q1hc0jgzls47wkmsfag6b4iq5y6wrllr5wq7sa"; depends=[]; };
-  MPCR = derive2 { name="MPCR"; version="1.1"; sha256="0a4iha2xl6iywf8ad1kiy1xwg6fkd62yjqvdkzf0nkklql2g5fvg"; depends=[Rcpp]; };
+  MPCR = derive2 { name="MPCR"; version="1.1.2"; sha256="0hq6df8rz7hi1s4kpcxlx21kppn70fjki8wfy6gi8kna8bmayyf7"; depends=[Rcpp]; };
   MPDiR = derive2 { name="MPDiR"; version="0.2"; sha256="0n7zrcxqfvd0y4qiqsx0qf5rgqdrci5026wkdpffngamxlm80f86"; depends=[]; };
   MPGE = derive2 { name="MPGE"; version="1.0.0"; sha256="10lzkk8fhpxd1z4yp051q3k36fsvddrwssv7nn03r2bkp6q8rpzb"; depends=[car purrr]; };
   MPI = derive2 { name="MPI"; version="0.1.0"; sha256="081yhbk3qz5935yz5n1391x3hpj8m0cbj1p81snhb9n8h0agwgv0"; depends=[doParallel dplyr foreach purrr tidyr]; };
-  MPLikelihoodWB = derive2 { name="MPLikelihoodWB"; version="1.1"; sha256="0xgj349jkv29ldia4lmsiwnkhrk99aqcrvyiy3si5knmi1jvx9q0"; depends=[MASS survival]; };
   MPN = derive2 { name="MPN"; version="0.3.0"; sha256="0rrigkq5bkarncswv8kgvvwd1vrq5cqnb5vypa9d39q2ksqf8j3d"; depends=[]; };
   MPS = derive2 { name="MPS"; version="2.3.1"; sha256="08yzynznf33y7y3pf7fayks5hi3cdvzwzn8axg7aky5kvi2bfv22"; depends=[]; };
   MPSEM = derive2 { name="MPSEM"; version="0.4-1"; sha256="0cq7vyyif7gxywrj420msscjf1aq427g88x8yvxf3a5a6mqapkr8"; depends=[ape MASS]; };
@@ -3087,7 +3147,7 @@ in with self; {
   MRTAnalysis = derive2 { name="MRTAnalysis"; version="0.1.2"; sha256="19s30k2crlnracwld0c1dhkvnwfyb32bhr06w7mbxm748lwhkwdh"; depends=[geepack rootSolve sandwich]; };
   MRTSampleSize = derive2 { name="MRTSampleSize"; version="0.3.0"; sha256="03c6jkanff241rcv1yixvmlnya3sd8hqpawf9dx9mpsri4pp6mdk"; depends=[]; };
   MRTSampleSizeBinary = derive2 { name="MRTSampleSizeBinary"; version="0.1.2"; sha256="1kb88sdhb8pp4mmvz8fy08drslzxj58fh1ycqaa3da6j7s9x65bn"; depends=[ggplot2 Matrix]; };
-  MRZero = derive2 { name="MRZero"; version="0.1.0"; sha256="1ksmhpycslkilm1ixhdi0asa5la5mrql48ycbf1camk556mcl3wa"; depends=[ggplot2 glmnet knitr plotly quantreg rmarkdown robustbase]; };
+  MRZero = derive2 { name="MRZero"; version="0.2.0"; sha256="0bjxy7rcgcsy2d0kg5v230l5z0hd72jq3z7692km9sbhh3bq51bf"; depends=[ggplot2 glmnet knitr plotly quantreg rmarkdown robustbase]; };
   MRmediation = derive2 { name="MRmediation"; version="1.0.1"; sha256="0v0kn6x4fwj35imj1fb2f2024ifb7081z4cwlhjmdxhabcy6xbx7"; depends=[fda MASS]; };
   MSBStatsData = derive2 { name="MSBStatsData"; version="0.0.2"; sha256="06k7fy327d0jrzjcc35lwzl0iax40wm2sfrqwpgw0rh88yaxjzvv"; depends=[tibble]; };
   MSCMT = derive2 { name="MSCMT"; version="1.4.0"; sha256="1mjm85pxxww6m7mfk8xfwhx65c64k4v6pjpvbasv5jhy49kfjgw4"; depends=[ggplot2 lpSolve lpSolveAPI Rdpack Rglpk]; };
@@ -3100,17 +3160,17 @@ in with self; {
   MSML = derive2 { name="MSML"; version="1.0.0.1"; sha256="0nzn3zys6cbqvzjncdgvlxw00zvg7c2wcnf59yky66chz42c31wd"; depends=[r2redux R2ROC]; };
   MSMwRA = derive2 { name="MSMwRA"; version="1.5"; sha256="062d37h47p3sx65k5jh8n900dfzm1mvi18ikral3ajdhy7x2cif9"; depends=[]; };
   MSPRT = derive2 { name="MSPRT"; version="3.0"; sha256="0fvikvnf3fa4ski9idg8llxx33bgkrfj5sgkjn0d1dz30kgcx2w2"; depends=[doParallel foreach ggplot2 ggpubr iterators nleqslv]; };
-  MSQC = derive2 { name="MSQC"; version="1.1.0"; sha256="1irs750n38513si9gw2fs9xibmlw0g3yd9w3rfcj7gbbgp2l6p4f"; depends=[rgl]; };
   MSRDT = derive2 { name="MSRDT"; version="0.1.0"; sha256="1i35zsip6p177k9pnbmvkjdc1hpr6nclhbx2sfah95ls5v6xnzz8"; depends=[dplyr gtools reshape2]; };
   MSSQL = derive2 { name="MSSQL"; version="1.0.0"; sha256="15glgn2dr1yygxps0mx68435zqc2hi4hvgr4rvgrwyxdnlm5g35y"; depends=[RODBC]; };
   MST = derive2 { name="MST"; version="2.2"; sha256="0p833nyq9p0r0hy02f4sy6gv1wm9flj3dxkv73ihy8503r89bbzz"; depends=[Formula MASS partykit survival]; };
+  MSTest = derive2 { name="MSTest"; version="0.1.2"; sha256="0ad28aj9pmy9vn6z9fhzvap4cbxafbk09amhgp178hvw9rdp48zf"; depends=[foreach GA GenSA nloptr numDeriv pracma pso Rcpp RcppArmadillo rlang]; };
   MSbox = derive2 { name="MSbox"; version="1.4.8"; sha256="1cppzy3kri2zmhyk34scffix28v1bjb0fhk51kb33amg6vz5mnj3"; depends=[crayon stringr xml2]; };
   MSclassifR = derive2 { name="MSclassifR"; version="0.3.3"; sha256="1qn79awr6yiywiz9k1wx6bqml1ssjijg1k2rm4blvlbd26yk5lbr"; depends=[car caret cp4p dplyr e1071 fuzzyjoin ggplot2 glmnet limma MALDIquant MALDIquantForeign MALDIrppa mclust metap mixOmics mltools nnet performanceEstimation randomForest reshape2 statmod UBL vita VSURF xgboost]; };
-  MSclust = derive2 { name="MSclust"; version="1.0.3"; sha256="0kb649sg0q7j4my7xx860pxmh6hd1f8h6sxyh49bwv9glvzq4p75"; depends=[cluster GGally ggplot2 gtools Matrix mclust mnormt mvtnorm psych]; };
+  MSclust = derive2 { name="MSclust"; version="1.0.4"; sha256="1ra9y9njcz21s2p63gisi3vgjjqzdnn9vvp0qfszkvpm0kkl0487"; depends=[cluster GGally ggplot2 gtools Matrix mclust mnormt mvtnorm psych]; };
   MScombine = derive2 { name="MScombine"; version="1.4"; sha256="0s3gbf3s5mf00d5mkbqhd9wwnyps7qb4r3zbal8j8nsaspql9nd3"; depends=[plyr]; };
   MSiP = derive2 { name="MSiP"; version="1.3.7"; sha256="1n8yl5icd3qkpmx2knxsp4g6jvkbg6hl82jxg9apxkx4nmsvkawz"; depends=[caret dplyr e1071 magrittr mice plyr pROC PRROC ranger tibble tidyr]; };
   MSigSeg = derive2 { name="MSigSeg"; version="0.2.0"; sha256="0675nkv5lqw3y19i6bcqhc1jc9qjmyf0x01224d098kfwl74lxiw"; depends=[ggplot2 ggpubr MASS]; };
-  MSmix = derive2 { name="MSmix"; version="1.0.0"; sha256="0zwrd6gj2rsijqdclq07dqg3a40sq80jkrx71ndfnjwp97sgqg60"; depends=[BayesMallows bmixture data_table dplyr factoextra fields foreach ggbump ggplot2 gridExtra Rankcluster RColorBrewer Rcpp reshape rlang spsUtil stringr]; };
+  MSmix = derive2 { name="MSmix"; version="1.0.2"; sha256="10bdzgx21y8xqggj98lv17mb2dv39ay6k0l5mz3dsn44967mv7rm"; depends=[BayesMallows bmixture data_table dplyr factoextra fields foreach ggbump ggplot2 gmp gridExtra magrittr Rankcluster RColorBrewer Rcpp reshape rlang scales spsUtil]; };
   MSoutcomes = derive2 { name="MSoutcomes"; version="0.2.0"; sha256="037kpsi24anid9brf9s4yrknyxi5c9xyxnckvh2f5m1wxbl7bmlj"; depends=[dplyr]; };
   MSwM = derive2 { name="MSwM"; version="1.5"; sha256="0ny5apvww1537qhiwb3f8x173rh7mypvgpw0i46dkvn897i0dq36"; depends=[nlme]; };
   MTA = derive2 { name="MTA"; version="0.6.0"; sha256="0fsn3plw2hh4hbdrzgpjbb7hnfxfxcjz9wgzpn9jy3w910cxv5jj"; depends=[igraph sf]; };
@@ -3126,6 +3186,7 @@ in with self; {
   MUACz = derive2 { name="MUACz"; version="2.1.0"; sha256="1d771vb2aimr87kyqj7zkmwarmxcxzbh7mvr396pf2zr3h8wi30c"; depends=[dplyr epiDisplay ggplot2]; };
   MUS = derive2 { name="MUS"; version="0.1.6"; sha256="0xid624rz0mvd03iy7ydvmx7gkscvsg4kdbaf2nji54ahai3pmn3"; depends=[]; };
   MVA = derive2 { name="MVA"; version="1.0-8"; sha256="1xd75qah05jrljl72gr8xzhfj43mnf821jnjv38gflavkvyn89mv"; depends=[HSAUR2]; };
+  MVET = derive2 { name="MVET"; version="0.1.0"; sha256="0gmawz2vhyvbj5jg8s26cmf02dxyn6gqhvzik5g4kcwpfwkdfwfy"; depends=[ggplot2 gridExtra]; };
   MVLM = derive2 { name="MVLM"; version="0.1.4"; sha256="1zcj405dc4jbiqw6p0fcbam8yc9d6yjpmrx5wjw5zjvig3iqb91k"; depends=[CompQuadForm]; };
   MVN = derive2 { name="MVN"; version="5.9"; sha256="014s07nxq014j5hkbd6iwwqykcw8si5sah57gi3n0wb51sv8ip1k"; depends=[boot car energy MASS moments nortest plyr psych]; };
   MVNBayesian = derive2 { name="MVNBayesian"; version="0.0.8-11"; sha256="1iaxyp480v91887cn4w3l74907wvbzs3ay4cjgzd8xk2dp47w8bg"; depends=[mvtnorm plyr]; };
@@ -3141,7 +3202,7 @@ in with self; {
   MWright = derive2 { name="MWright"; version="0.3.2"; sha256="1c57f0wnlhl4gqy17vi93r4fknycvv67b9bifgcvabws390jpx7q"; depends=[cubature]; };
   MXM = derive2 { name="MXM"; version="1.5.5"; sha256="15r4jnf1l2nrf67xkpvzg2h7yxxhjlkr454n691ssss9z0zpsgcl"; depends=[bigmemory coxme doParallel dplyr energy foreach geepack Hmisc knitr lme4 MASS nnet ordinal quantreg relations Rfast Rfast2 survival visNetwork]; };
   MaOEA = derive2 { name="MaOEA"; version="0.6.2"; sha256="0s8jvp7821mb6xff8xwnh78mhz4qfrbk4g7sp4dfnm2ii7ah9c6b"; depends=[e1071 gtools lhs MASS nnet nsga2R pracma randtoolbox reticulate stringr]; };
-  MacBehaviour = derive2 { name="MacBehaviour"; version="1.1.3"; sha256="03psrcb5lss1d441bzyk6jis63qj4b4xm1kif3k94a8jkk2i5gjh"; depends=[dplyr httr openxlsx rjson]; };
+  MacBehaviour = derive2 { name="MacBehaviour"; version="1.2.2"; sha256="0z4d1g4b3fv63r1c4b64aj0lg0dyzyhvjgmj59gpcizl65jg6dw6"; depends=[httr openxlsx rjson]; };
   MachineShop = derive2 { name="MachineShop"; version="3.7.0"; sha256="073v778c7zkpxhhdvqc4hiqlgj5ws9490cqpz22bk659f8f63bav"; depends=[abind cli dials foreach ggplot2 kernlab magrittr Matrix nnet party polspline progress recipes rlang rsample Rsolnp survival tibble]; };
   MacroZooBenthosWaterA = derive2 { name="MacroZooBenthosWaterA"; version="0.1.0"; sha256="15b90g7nw82dmpfarx5qm159jmrpp915qz26vv3ya6ky4g2kl6ic"; depends=[]; };
   MadanText = derive2 { name="MadanText"; version="0.1.0"; sha256="1sz3mwb74yvj5ijmpm7zdwsgyvhs6rs8fpy1mpw538r5jx4xbzg8"; depends=[dplyr hwordcloud lattice PersianStemmer shiny shinythemes stopwords stringi stringr textmineR tidyr tidytext tm topicmodels udpipe xlsx]; };
@@ -3150,6 +3211,7 @@ in with self; {
   MagmaClustR = derive2 { name="MagmaClustR"; version="1.2.0"; sha256="1hbdppqymi4qsacp0f1lpq3042zs5gbpdshmmg3mb2v26badss4h"; depends=[broom dplyr ggplot2 magrittr mvtnorm plyr purrr Rcpp rlang tibble tidyr tidyselect]; };
   MainExistingDatasets = derive2 { name="MainExistingDatasets"; version="1.0.2"; sha256="16g741hzckla6amhwa54bhg3l3700sp43p6mijbb5065qnviw5y9"; depends=[config dplyr DT glue golem htmltools htmlwidgets magrittr openxlsx pkgload processx rlang sf shiny spData tidyr tmap tmaptools]; };
   MajKMeans = derive2 { name="MajKMeans"; version="0.1.0"; sha256="1zphrxyx3jd6rnh1y1qnc6bip34kfqk1a5ms4ps39gfngznh482m"; depends=[MASS]; };
+  MajMinKmeans = derive2 { name="MajMinKmeans"; version="0.1.0"; sha256="0lq2qjlha1bd76wlgxbwr9j55yjhwpj380nfi7kx91j50qhdsr9x"; depends=[MASS]; };
   MakefileR = derive2 { name="MakefileR"; version="1.0"; sha256="1pfjic2lsar8ghbb6byr4rqrs30qrgfih092z4rxdpsiwkk3y7l1"; depends=[magrittr]; };
   ManagedCloudProvider = derive2 { name="ManagedCloudProvider"; version="1.0.0"; sha256="0glhx9ylpx2s8mi711gblapw6qnv80nd4wahph65g6ddngvmgv73"; depends=[adagio DockerParallel jsonlite]; };
   MandalaR = derive2 { name="MandalaR"; version="0.1.0"; sha256="13shj6r416cz11qlwrha468gx1y76vx28xyhap3k0c0b2jxn699b"; depends=[ggplot2]; };
@@ -3171,11 +3233,12 @@ in with self; {
   MassWateR = derive2 { name="MassWateR"; version="2.1.4"; sha256="0hfjddm19r53hig48sfxkkjqib4ip651q2asfgp3639w4akn8pzx"; depends=[curl dplyr flextable ggplot2 ggrepel ggspatial httr lubridate prettymapr raster RColorBrewer readxl rmarkdown sf tibble tidyr units writexl]; };
   Massign = derive2 { name="Massign"; version="1.1.0"; sha256="09i32lsrx40rxrnb9alfipfrkipy4mza5nr4gcpn2a5h86ak9290"; depends=[]; };
   MatSkew = derive2 { name="MatSkew"; version="0.1.5"; sha256="019v2b1r0bvw84xs50smjb3jdz7gd2adz5d84xd8zq43lnml96d1"; depends=[]; };
+  MatchGATE = derive2 { name="MatchGATE"; version="0.0.10"; sha256="1kj60sjpmmab8zjcncp7q6nb0j84kzznz3cspp3j0a5w8fjfn9gp"; depends=[locpol]; };
   MatchIt = derive2 { name="MatchIt"; version="4.5.5"; sha256="17l5b6i4bmg3gjjhzagy451zcv2i5xj4j6zzxgiqf955sgywlfdf"; depends=[backports chk Rcpp RcppProgress rlang]; };
   MatchLinReg = derive2 { name="MatchLinReg"; version="0.8.1"; sha256="1spkjpm4pviqv52nknhww1vcjc61sgsfsvp0ilpp4srh0ykc8ihh"; depends=[Hmisc Matching]; };
-  MatchThem = derive2 { name="MatchThem"; version="1.1.0"; sha256="0qbizfvwx5kagkmgj337lrf9s0nz2rdyb5dwag7yqdfza06mnlvi"; depends=[MatchIt mice rlang survey WeightIt]; };
+  MatchThem = derive2 { name="MatchThem"; version="1.2.1"; sha256="12kaaji3nhqggdfhb3hkydsg66p9qpxh95g5z5sf4wym9ks0qhi3"; depends=[MatchIt mice rlang survey WeightIt]; };
   Matching = derive2 { name="Matching"; version="4.10-14"; sha256="1c56yqr6zlbgjjw61c10fwbxxh4i5ng2krny9p6cz7d2bmm2id5z"; depends=[MASS]; };
-  Matrix = derive2 { name="Matrix"; version="1.6-5"; sha256="0zdrrss4q0g7jify9bp1vvzrdpy62fc6fx3awzbd2wvfc938sv3j"; depends=[lattice]; };
+  Matrix = derive2 { name="Matrix"; version="1.7-0"; sha256="0dxd13y6x6pz54ccbcalw2sm646h9pls4bby9zmj40ipvyhbp5zv"; depends=[lattice]; };
   MatrixCorrelation = derive2 { name="MatrixCorrelation"; version="0.10.0"; sha256="1na3y1crlj57c1xq9ja3v94cx2dr0myrlx9bxvhhwss3q3r1lgby"; depends=[plotrix pracma progress Rcpp RcppArmadillo RSpectra]; };
   MatrixEQTL = derive2 { name="MatrixEQTL"; version="2.3"; sha256="10r6h5bidj44kfbwiml9pkysbikqphfb21ig61qnx0qa12xcl6l8"; depends=[]; };
   MatrixExtra = derive2 { name="MatrixExtra"; version="0.1.15"; sha256="0mp0si5923kfakwxcc08288zyx1nrrrpn9srcwax28vrz46l33z9"; depends=[float Matrix Rcpp RhpcBLASctl]; };
@@ -3200,8 +3263,8 @@ in with self; {
   Mediana = derive2 { name="Mediana"; version="1.0.8"; sha256="0j1ikc2iaxl70134v0gijj2i2g0xgjafvn8rc108r9fhm8rpw564"; depends=[doParallel doRNG foreach MASS mvtnorm survival]; };
   MedianaDesigner = derive2 { name="MedianaDesigner"; version="0.13"; sha256="07vzfm583gqk0ars4gamyn21lpcsdxx86nkp227i9yk7lyj0r6kp"; depends=[devEMF doParallel flextable foreach lme4 lmerTest MASS mvtnorm officer pbkrtest Rcpp RcppEigen RcppNumerical rootSolve shiny shinydashboard shinyMatrix]; };
   Mega2R = derive2 { name="Mega2R"; version="1.1.0"; sha256="05g0r7z6kiy0pgl7cbcc3c0wbf4wbc7fxdbha8sc77m3hqya882l"; depends=[AnnotationDbi DBI famSKATRC gdsfmt GenomeInfoDb kinship2 pedgene Rcpp RSQLite SKAT]; };
-  MendelianRandomization = derive2 { name="MendelianRandomization"; version="0.9.0"; sha256="103pmql4klhvqm7sydbqwqzx2ngbr8dxky8cg495ggpzbpjj131n"; depends=[ggplot2 glmnet iterpc knitr Matrix numDeriv plotly quantreg Rcpp RcppArmadillo rjson rmarkdown robustbase]; };
-  Mercator = derive2 { name="Mercator"; version="1.1.2"; sha256="1iixn75vp66gbhllppm8xaxxqg8qbp4m5db8qznnysm8gn5wcl7f"; depends=[ClassDiscovery cluster dendextend flexmix igraph KernSmooth kohonen Polychrome Rtsne Thresher umap]; };
+  MendelianRandomization = derive2 { name="MendelianRandomization"; version="0.10.0"; sha256="0g71h1hwvm0ldrklvlliq2ylglb1w7zli0x5sh7z4934h8gyjl88"; depends=[ggplot2 glmnet iterpc knitr Matrix numDeriv plotly quantreg Rcpp RcppArmadillo rjson rmarkdown robustbase]; };
+  Mercator = derive2 { name="Mercator"; version="1.1.4"; sha256="0wj8bsrj2v4icj0byllaxyqnph3zpx98gvbxhdzy0zamyrfk57ss"; depends=[ClassDiscovery cluster dendextend flexmix igraph KernSmooth kohonen Polychrome Rtsne Thresher umap]; };
   Mestim = derive2 { name="Mestim"; version="0.2.1"; sha256="1dl1fx6aqdz584d79nbm4ykgn915d6mr0m48m83pbr3k6q18varg"; depends=[]; };
   MetAlyzer = derive2 { name="MetAlyzer"; version="1.0.0"; sha256="0b5kznmqq7kda5qan5jyxy5s41y367dmq2fxk7mihjnmn9fp282n"; depends=[agricolae data_table dplyr ggplot2 ggrepel openxlsx qvalue rlang S4Vectors stringr SummarizedExperiment tibble tidyr]; };
   MetBrewer = derive2 { name="MetBrewer"; version="0.2.0"; sha256="0x51g5z9cdl043rna9qh4cj16qxahb6ccj9d8rr9d43d860jigp7"; depends=[ggplot2]; };
@@ -3212,10 +3275,13 @@ in with self; {
   MetaAnalyser = derive2 { name="MetaAnalyser"; version="0.2.1"; sha256="0k58325nb7svihhpga7kdbryr9bi5470qsb8aa5llpiggs8j7sfz"; depends=[DT ggvis rstudioapi shiny]; };
   MetaComp = derive2 { name="MetaComp"; version="1.1.2"; sha256="1yb115qdmf5rxmjl4y7qr0i6668n46scs4yjpfq9bmy3w9i4ji1x"; depends=[Cairo data_table dplyr ggplot2 plyr reshape2]; };
   MetaCycle = derive2 { name="MetaCycle"; version="1.2.0"; sha256="1lh1msrcz70p5jixz5j83pqa3cid21y7m1zvlk872k16awmif00k"; depends=[gnm]; };
+  MetaHD = derive2 { name="MetaHD"; version="0.1.0"; sha256="0qgzipw3gfhm22x70z83zinp7zr5xbyyw502j6p3r31r4k2glkp9"; depends=[corpcor Matrix matrixcalc Rcpp RcppArmadillo]; };
   MetaIntegration = derive2 { name="MetaIntegration"; version="0.1.2"; sha256="0dbmpls6gipd81c79lvxqgyhzl3nmi0ma4szv8fcrh50jbwfvsql"; depends=[corpcor knitr MASS Rsolnp]; };
   MetaIntegrator = derive2 { name="MetaIntegrator"; version="2.1.3"; sha256="1763in7zcfr4abhwc0sy27c1qbzbhkyjsasrhwdjjmsc645sqxlx"; depends=[AnnotationDbi Biobase BiocManager boot COCONUT data_table DBI dplyr DT GEOmetadb GEOquery ggplot2 ggpubr gplots HGNChelper httpuv magrittr manhattanly Metrics multtest pheatmap plotly plyr pracma preprocessCore readr reshape2 rmarkdown rmeta Rmisc RMySQL ROCR RSQLite stringr zoo]; };
   MetaLandSim = derive2 { name="MetaLandSim"; version="2.0.0"; sha256="0dx8vya0w8n9f53g7ppjmz3a9vhs3h6fb7z4fb2c1bhp4yjkbl23"; depends=[coda e1071 googleVis igraph knitr minpack_lm sp spatstat_geom spatstat_random terra zipfR]; };
   MetaLonDA = derive2 { name="MetaLonDA"; version="1.1.8"; sha256="0nalkmsii2anw07r16zcpgafb01l87hgpfr1mwc7nggvhdfp3w2g"; depends=[DESeq2 doParallel edgeR ggplot2 gss metagenomeSeq plyr pracma zoo]; };
+  MetaNLP = derive2 { name="MetaNLP"; version="0.1.2"; sha256="0ya8hi7bpxnz1a8vjni5sg68yf86bn72wh8676x6xqf6z1qvha18"; depends=[glmnet lexicon textstem tm]; };
+  MetaNet = derive2 { name="MetaNet"; version="0.1.2"; sha256="0r3id0ap91g948a10yka1lz82jib3ww91n24vlk4pbik7flxbqpk"; depends=[dplyr ggnewscale ggplot2 ggrepel igraph magrittr pcutils RColorBrewer reshape2 rlang tibble]; };
   MetaSKAT = derive2 { name="MetaSKAT"; version="0.82"; sha256="0cbj3xfsnwn4ibqqs12sqyhhaj24ydjpyl1p1gy1dl5405j58ncl"; depends=[SKAT]; };
   MetaStan = derive2 { name="MetaStan"; version="1.0.0"; sha256="00rj11q20apw7f5s6vw8fh7qxgfksndyiks1w907zzjlxhy9b4pj"; depends=[BH coda forestplot HDInterval loo metafor Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
   MetaSubtract = derive2 { name="MetaSubtract"; version="1.60"; sha256="19xg95g2qgyi90pz3733l596gzdj6dmb0k9i4qmhaq4yck69rrhj"; depends=[]; };
@@ -3227,6 +3293,7 @@ in with self; {
   MetabolomicsBasics = derive2 { name="MetabolomicsBasics"; version="1.4.5"; sha256="09yfakahah88sqranw56mr56jkqx6bgq52rcaj2bablr7bxswwvh"; depends=[C50 caret e1071 InterpretMSSpectrum pcaMethods plyr rlang rpart webchem]; };
   MetaculR = derive2 { name="MetaculR"; version="0.4.1"; sha256="130ic9q221lmnr5wzmw7bbskqzi5gmw8ark5zpw3y8wy9zbv2m98"; depends=[assertthat clipr cowplot dplyr ggplot2 ggrepel httr jsonlite magrittr progress spatstat_geom tidyr verification]; };
   MethComp = derive2 { name="MethComp"; version="1.30.0"; sha256="1vmwb4zw4gm2x0j2nzm2vjfj7x19ws8njr6dcglzjpbbha7nxjp6"; depends=[coda nlme rjags]; };
+  MethEvolSIM = derive2 { name="MethEvolSIM"; version="0.1.2"; sha256="03ncpy01dvmxrr43jyl8am9hkzp872rdph5padiy9ih4nzxdncmq"; depends=[R6]; };
   MethodCompare = derive2 { name="MethodCompare"; version="0.1.2"; sha256="1nxr2fgmfixjkdparavi156qqqchjwaxpjk9i2xgc1yhp1p01pll"; depends=[nlme]; };
   MetricGraph = derive2 { name="MetricGraph"; version="1.3.0"; sha256="1pd10pxqvdvqh1jml6rpn2j5w6j0hw87wd9f272yfwd4q9d2c29r"; depends=[broom dplyr ggnewscale ggplot2 igraph lifecycle magrittr Matrix R6 Rcpp RcppEigen rSPDE sf sp tidyr zoo]; };
   Metrics = derive2 { name="Metrics"; version="0.1.4"; sha256="0fh8qbjlwzagh272lgwr4bxcqcjb1qpz53mgs8rzlvncax6nk5bk"; depends=[]; };
@@ -3245,16 +3312,16 @@ in with self; {
   MicroMacroMultilevel = derive2 { name="MicroMacroMultilevel"; version="0.4.0"; sha256="1q5cyqr4hdl1wp2isk6p4p084i83kg6hd406wdp1nj9lv5i0xvgw"; depends=[]; };
   MicroMoB = derive2 { name="MicroMoB"; version="0.1.2"; sha256="0ghab143lr333v7qih30jc9n78pwcgam4nzaz7j1g4cnis5wfkbx"; depends=[abind jsonlite]; };
   MicroNiche = derive2 { name="MicroNiche"; version="1.0.0"; sha256="166ci4crkwnnh05rhs5hyrljgm4cdf7gp0ff8kjxjmd60byw80mz"; depends=[ggplot2 reshape2]; };
-  MicrobiomeStat = derive2 { name="MicrobiomeStat"; version="1.1"; sha256="1j5sar85a1gksc83pc4ypxwb0c7whxglx069zarphrgqfazcr1m4"; depends=[foreach ggplot2 ggrepel lmerTest MASS Matrix matrixStats modeest phyloseq statmod]; };
+  MicrobiomeStat = derive2 { name="MicrobiomeStat"; version="1.2"; sha256="1kpc68sl63k104xy7r6f3gxan0yx0rs7ksn8ldbq8xla00ddflgq"; depends=[foreach ggplot2 ggrepel lmerTest MASS Matrix matrixStats modeest statmod]; };
   MicrobiomeSurv = derive2 { name="MicrobiomeSurv"; version="0.1.0"; sha256="00wx8vdbkxcn6cp243vbxyzx52hpcxpvxx8hq44gykc7238qcvhv"; depends=[dplyr ggplot2 glmnet gplots lmtest microbiome pls superpc survival survminer tidyr]; };
   Microsoft365R = derive2 { name="Microsoft365R"; version="2.4.0"; sha256="0vcp8nhphl9yp4rp53nvkm82zqmn1jsc9m6agxmmsqby8795p7h1"; depends=[AzureAuth AzureGraph curl httr jsonlite mime R6 vctrs]; };
-  MigConnectivity = derive2 { name="MigConnectivity"; version="0.4.6"; sha256="0lyqjhhnba83niv1rmgxz3f9kq022fnck3l2m27zc1lw92l6lhfv"; depends=[coda geodist gplots MASS ncf R2jags RMark sf shape terra VGAM]; };
+  MigConnectivity = derive2 { name="MigConnectivity"; version="0.4.7"; sha256="08bzis7rkczymvr2bqiih59yn94l0fjhkn0p9lpv875pwbvhmw1j"; depends=[coda geodist gplots MASS ncf R2jags RMark sf shape terra VGAM]; };
   MigrationDetectR = derive2 { name="MigrationDetectR"; version="0.1.1"; sha256="0qq5xac4j8bm1705rmjvbcxhdhrq0pfqzrlb9vgbnsfm4l0iy84w"; depends=[assertthat dplyr lifecycle lubridate tibble tidyr]; };
   MinEDfind = derive2 { name="MinEDfind"; version="0.1.3"; sha256="1y0iv92mp7hf14vrj54qd0yvmjrv52jv3vg25kc5q7pml63njkqa"; depends=[ggplot2 gridExtra Iso]; };
   MindOnStats = derive2 { name="MindOnStats"; version="0.11"; sha256="13995v4n0hfb53w02jk81pl7nazkvqwwv87y1sr99jr9ppzc08mz"; depends=[]; };
   Minirand = derive2 { name="Minirand"; version="0.1.3"; sha256="19lib0qh3xfzvpgsskl3yypmjygss0w7pimz0136av0px5b4jran"; depends=[]; };
   MisRepARMA = derive2 { name="MisRepARMA"; version="0.0.2"; sha256="0bay8grq49yin9yy9h9ynb8flsbrb10h4lp7sdzp9ih5b9w21y7z"; depends=[boot mixtools tseries]; };
-  MiscMetabar = derive2 { name="MiscMetabar"; version="0.7.10"; sha256="1n0hzjprrkj22kvz4vai3x07jzn22ajjf3ynbs1y15v29spra0f2"; depends=[ape dada2 dplyr ggplot2 lifecycle phyloseq rlang]; };
+  MiscMetabar = derive2 { name="MiscMetabar"; version="0.9.1"; sha256="002vnd2hbd5r5zjm461w7wsfngpc9zpwidnyiimmhazdm3jbrrbi"; depends=[ape dada2 dplyr ggplot2 lifecycle phyloseq purrr rlang]; };
   MissCP = derive2 { name="MissCP"; version="0.1.0"; sha256="0xmfkxwlkci11wwxdazs25k6z8apcl2vffkbpv8zic5lx1r9g2k4"; depends=[factoextra ggplot2 glmnet mvtnorm Rcpp RcppArmadillo sparsevar]; };
   MissMech = derive2 { name="MissMech"; version="1.0.4"; sha256="0r4jdy2wr4rqpyshlgfvfhvq78v0w6g7v7iixljgh4kv9ryl476d"; depends=[]; };
   MissingHandle = derive2 { name="MissingHandle"; version="0.1.1"; sha256="09mfjyygxmcpd50148a5pcda0c7gvfrxgxbw1v6i01ymwpfb4b2p"; depends=[dplyr imputeTS zoo]; };
@@ -3263,6 +3330,7 @@ in with self; {
   Missplot = derive2 { name="Missplot"; version="0.1.0"; sha256="00qpmkmfv3k13faxb2wqcdcmd5q5abdhjwr8rrf9b0bv6qqnlm84"; depends=[]; };
   MitoHEAR = derive2 { name="MitoHEAR"; version="0.1.0"; sha256="1lb36w374wjp6f9ydkas21rwc2shlav1xq2rfzig1k034fkva8bj"; depends=[Biostrings circlize ComplexHeatmap dynamicTreeCut GenomicRanges ggplot2 gridExtra IRanges magrittr mcclust rdist reshape2 rlist Rsamtools]; };
   MittagLeffleR = derive2 { name="MittagLeffleR"; version="0.4.1"; sha256="1qlz418im27v7q3xk09a2w3zdx7ky5imcyi3kpg1s3bz5zx57p2f"; depends=[stabledist]; };
+  MixAll = derive2 { name="MixAll"; version="1.5.16"; sha256="134nf62cc2l998dl6vhp4nlyjfbybw9l9rycnxys4i0wzcsl8lz5"; depends=[Rcpp rtkore]; };
   MixGHD = derive2 { name="MixGHD"; version="2.3.7"; sha256="0l1qivl9a5b8rayg9srxlgkk4wilv2m9yw4lsca29s5wd3wpyksv"; depends=[Bessel cluster e1071 ghyp MASS mixture mvtnorm numDeriv]; };
   MixMatrix = derive2 { name="MixMatrix"; version="0.2.6"; sha256="007vx59v5h3pfawg6slqgbs3b8dvbhcfh4cvasfydidiiyaggjdc"; depends=[CholWishart Rcpp RcppArmadillo]; };
   MixOptim = derive2 { name="MixOptim"; version="0.1.2"; sha256="14blyb1dqbdb14rby4nrggpqdx6b43lbb2xwi3059biq9mrj3a2x"; depends=[desirability ggplot2 patchwork rlang]; };
@@ -3284,7 +3352,7 @@ in with self; {
   MoBPS = derive2 { name="MoBPS"; version="1.6.64"; sha256="12czwx362pn0crj047rqb9ambl1fw73k474i7vcxhz53kbw21wj0"; depends=[]; };
   MoEClust = derive2 { name="MoEClust"; version="1.5.2"; sha256="0wixcga2f06kpp7mq1nb32ya2v2wlx5r9h74danjfbhi3nvky903"; depends=[lattice matrixStats mclust mvnfast nnet vcd]; };
   MoLE = derive2 { name="MoLE"; version="1.0.1"; sha256="0bq19vwqjn5hl4mw5imkydbp39gal992vnh2dwrq8bb8cmj3qh91"; depends=[]; };
-  MoNAn = derive2 { name="MoNAn"; version="0.1.3"; sha256="1n9vxmh1vx6p5cw91960cgvg7h9ga79lpdcz22cds74zxrnprpi9"; depends=[snowfall]; };
+  MoNAn = derive2 { name="MoNAn"; version="1.0.0"; sha256="1w33dsvwl359n9a97cvcp8c6j3js0d8q4j0w2daqllk9swnbw8i8"; depends=[snowfall]; };
   MoTBFs = derive2 { name="MoTBFs"; version="1.4.1"; sha256="03c1k5vvswlhbsivw6yznw1v0cdl8avs514iaa2v2994j2yk40j6"; depends=[bnlearn ggm lpSolve Matrix quadprog]; };
   MobileTrigger = derive2 { name="MobileTrigger"; version="0.0.31"; sha256="1zbnxdxh6gr4sgpi10i0pnd85f7i842105jgjswacziqamby6mcy"; depends=[caret ggplot2 kableExtra knitr mailR plyr XML yaml]; };
   ModEstM = derive2 { name="ModEstM"; version="0.0.1"; sha256="136g7rdphprx5b2xmb4jnixaam23g78m3fyfwz3mfx1w23ajf4r1"; depends=[dplyr rlang]; };
@@ -3296,18 +3364,18 @@ in with self; {
   ModelMetrics = derive2 { name="ModelMetrics"; version="1.2.2.2"; sha256="0mrlsw4c5y1vdsqynxr2dcvmhh5h37pnd71jw5a5djpbda9g21jy"; depends=[data_table Rcpp]; };
   Modelcharts = derive2 { name="Modelcharts"; version="0.1.0"; sha256="1jy78kyyh4r13px2d5bm7fra5bkcpimzfji0hmydspkfi3qla37x"; depends=[dplyr plotly]; };
   Modeler = derive2 { name="Modeler"; version="3.4.5"; sha256="15gbg5568qj81wp6yy31amb2b7wl1wvlmgpmdp29lvz1p33jx2y1"; depends=[class ClassComparison ClassDiscovery e1071 neuralnet nnet oompaBase randomForest rpart TailRank]; };
-  MolgenisArmadillo = derive2 { name="MolgenisArmadillo"; version="2.3.0"; sha256="16b1mplxhy492i1j581lrd0crk1rzcyxcxda9b5dzvzhcjg81376"; depends=[arrow base64enc dplyr httr MolgenisAuth purrr rlist stringr tibble tidyr urltools]; };
+  MolgenisArmadillo = derive2 { name="MolgenisArmadillo"; version="2.6.3"; sha256="11xy9cwnhacrxnyxhr8zs25yr20f27vqnh9nfm7x1180g1b2b4fr"; depends=[arrow base64enc cli dplyr httr httr2 MolgenisAuth purrr readr rlist stringr tibble tidyr urltools]; };
   MolgenisAuth = derive2 { name="MolgenisAuth"; version="0.0.25"; sha256="1ggij166zy0z05hmpwzdx2s1j38s9zr2ldayxljmcl348ds7rk7n"; depends=[httr urltools]; };
   MomTrunc = derive2 { name="MomTrunc"; version="6.0"; sha256="0nfvq6ry1c5g1xjvf2qyr5pzpnsy420m6xgj0n3aj00wi0ifdyiz"; depends=[hypergeo mvtnorm Rcpp RcppArmadillo tlrmvnmvt]; };
   Momocs = derive2 { name="Momocs"; version="1.4.1"; sha256="0g8mxk62pdif47p96pzqzfjdjarqwyk71zw9avsgy160mz8mpd81"; depends=[cluster dendextend dplyr geometry geomorph ggplot2 jpeg magrittr MASS progress RColorBrewer sf sp tibble vegan]; };
   Mondrian = derive2 { name="Mondrian"; version="1.1-1"; sha256="0di35qc1hgx3l8gnr2l6gv87yhqsw9b7wi2wc497ydby6c9m3307"; depends=[RColorBrewer]; };
   MonetDB_R = derive2 { name="MonetDB.R"; version="2.0.0"; sha256="0b5flc9l4nshy2fmwxbzcsn7pdivwy3x6kic94ppyyiqzz41h0b1"; depends=[codetools DBI digest testthat]; };
   MonoInc = derive2 { name="MonoInc"; version="1.1"; sha256="14rykw3bfj0vznz0rw4vsg1k4vanfv9cy867vspw966ncl4bw70h"; depends=[compare doParallel foreach iterators sitar]; };
-  MonoPhy = derive2 { name="MonoPhy"; version="1.3"; sha256="184nvwmxi28awq8fj1q0mliilbd4kaag673jydr47q1acql0dnmb"; depends=[ape phangorn phytools RColorBrewer taxize]; };
+  MonoPhy = derive2 { name="MonoPhy"; version="1.3.1"; sha256="120vpz40iil4j6rdhnnhss4rmpfcyh3h0dpw3qkmzadb7mywr7dr"; depends=[ape phangorn phytools RColorBrewer taxize]; };
   MonoPoly = derive2 { name="MonoPoly"; version="0.3-10"; sha256="0ls3sjfkinp9c5002ww0xm4l2galf20w2f45nm5irkk9sbqas0jq"; depends=[quadprog]; };
   Monte_Carlo_se = derive2 { name="Monte.Carlo.se"; version="0.1.1"; sha256="1bkmah8s8hm3yxs8gz1ssr15s4l9s37675g7agx3g7f9a72v9zbs"; depends=[]; };
   MonteCarlo = derive2 { name="MonteCarlo"; version="1.0.6"; sha256="1jwq3by8zfy6sbzahcj5l0vicqn7yyqpb7xhfsaymfspm7xyq6pj"; depends=[abind codetools reshape rlecuyer snow snowfall]; };
-  MonteCarloSEM = derive2 { name="MonteCarloSEM"; version="0.0.6"; sha256="0mnva4hd02a6f4fpll6ra4nn0chlx8wjixp1jx40krg3xnikqkj1"; depends=[lavaan Matrix]; };
+  MonteCarloSEM = derive2 { name="MonteCarloSEM"; version="0.0.8"; sha256="0l9c6a8yxjd2n1fvsswx3csgz18g7d33ybbmpxlx6csl5f299ljd"; depends=[lavaan Matrix]; };
   Morpho = derive2 { name="Morpho"; version="2.12"; sha256="1hg1jr0y11v93mqg2kn8n841nbsiffhyyr2kswj7kk664vlpril0"; depends=[bezier colorRamps doParallel foreach jsonlite MASS Matrix Rcpp RcppArmadillo rgl Rvcg sf]; };
   MorphoTools2 = derive2 { name="MorphoTools2"; version="1.0.1.1"; sha256="08n9l905pfls50p278sypf8xxq6bs56f5a5b5wlxwy11flccpyia"; depends=[ade4 candisc car class ellipse heplots MASS plot3D StatMatch vegan]; };
   Morphoscape = derive2 { name="Morphoscape"; version="1.0.2"; sha256="1f4cj5086r1849dwmha8drf7jq56p7bp0fj2liqksppy7gxmdrs4"; depends=[alphahull automap concaveman ggplot2 scales sp spatial viridisLite]; };
@@ -3330,13 +3398,13 @@ in with self; {
   MultNonParam = derive2 { name="MultNonParam"; version="1.3.9"; sha256="0p66pqairn0k3ciz31ykb2kk0mr4jyzvarkf1knlh3dkvagh7pvj"; depends=[ICSNP]; };
   MultOrdRS = derive2 { name="MultOrdRS"; version="0.1-3"; sha256="1f23im0m77y8aqdnmkcgdgfx77z84wlwih1wv74by15m4ysj4l2h"; depends=[Rcpp RcppArmadillo statmod]; };
   MultSurvTests = derive2 { name="MultSurvTests"; version="0.2"; sha256="04crh4hbfhl8cr0faawv71lyabyilhxpg6i8sr9ki80982mbzcnd"; depends=[Rcpp RcppArmadillo Rdpack]; };
-  MultiATSM = derive2 { name="MultiATSM"; version="0.3.5"; sha256="0hcmf5hy4rab0kzwzxs15bs5n0czsc68m4f8j3ib4hjf33rd4i1a"; depends=[ggplot2 hablar pracma wrapr zoo]; };
+  MultiATSM = derive2 { name="MultiATSM"; version="0.3.6"; sha256="01q1r593v111wqaa2bqlrmsqgjpk39kfdxx6vj7ni9prbypxnbxm"; depends=[ggplot2 hablar pracma wrapr zoo]; };
   MultiBD = derive2 { name="MultiBD"; version="0.2.0"; sha256="1qjfr8hx8sr5m8370yzi09r8jnh3i6907wzj3v4h83vmjh81db71"; depends=[BH Rcpp RcppParallel]; };
   MultiCOAP = derive2 { name="MultiCOAP"; version="1.1"; sha256="1209pv52lgshfk67nfkp4fq4fm7k9g5ly2yilrzwihywsym8yxmp"; depends=[irlba MASS Rcpp RcppArmadillo]; };
   MultiClassROC = derive2 { name="MultiClassROC"; version="0.1.0"; sha256="06ns1yl16yxaksiv1mjwzkixc03mzz4rlidkzan0nxi9fqfp7nvc"; depends=[ggplot2 pROC]; };
   MultiFit = derive2 { name="MultiFit"; version="1.1.1"; sha256="086bnqp61mfanrhi7dqaq5j2ddg3rfiyms0f5wj34svcjal9wjvc"; depends=[data_table Rcpp RcppArmadillo]; };
   MultiGlarmaVarSel = derive2 { name="MultiGlarmaVarSel"; version="1.0"; sha256="1cpxy716ca7xa6y7sjrrssx6r4wc1fr2p0i5im5s745xlc66qi06"; depends=[ggplot2 glmnet Matrix]; };
-  MultiGroupO = derive2 { name="MultiGroupO"; version="0.1.0"; sha256="18d7wfsfyqzrjicp2grfgh582pr6a1fqx7xbnqaj93x3w30pxscg"; depends=[cowplot expm ggplot2 ggrepel gplots gridExtra mgm mvtnorm plsgenomics qgraph rlist]; };
+  MultiGroupO = derive2 { name="MultiGroupO"; version="0.3.0"; sha256="0vyq1xzxh6zjzdsvp0gib32xxz1c3672kj3ifn5fv0bf8yjjc2gk"; depends=[cowplot expm ggplot2 ggrepel gplots gridExtra lemon mgm mvtnorm plsgenomics qgraph rlist]; };
   MultiGroupSequential = derive2 { name="MultiGroupSequential"; version="1.1.0"; sha256="0mx0a10260ks77njxf7yhxwhw66b7rjlqkjxmidvxbl6r0jfgr5b"; depends=[hommel OpenMx]; };
   MultiJoin = derive2 { name="MultiJoin"; version="0.1.1"; sha256="0cfk6yc5jagj9y8xybw6yg0yph4zah2vzaxv0384ad6r0r3x3nm8"; depends=[]; };
   MultiKink = derive2 { name="MultiKink"; version="0.2.0"; sha256="14npzvidqiy25ldg2g4vyj6bbrmi9vbpswbm9ah9hc4sdjdq344h"; depends=[gam Matrix pracma quantreg]; };
@@ -3359,7 +3427,7 @@ in with self; {
   MultiplierDEA = derive2 { name="MultiplierDEA"; version="0.1.19"; sha256="0ns74496grklacpij2cvbv116kc77wa8kv3jdy9fjzxk8yd6kv4d"; depends=[dplyr lpSolveAPI ompr ompr_roi ROI ROI_plugin_glpk]; };
   MultiscaleDTM = derive2 { name="MultiscaleDTM"; version="0.8.3"; sha256="13kslxxbyil5y4ci5s9r0n0ymsrh8c65wvsdzhcgafh9ldr6l1ww"; depends=[dplyr raster Rcpp RcppArmadillo rgl shiny terra]; };
   MultisiteMediation = derive2 { name="MultisiteMediation"; version="0.0.4"; sha256="0kkw6zxw29qmgd9nlgqjlyh99icxzkkqnpzzanxx8pn7m2ww0wkf"; depends=[ggplot2 lme4 MASS psych statmod]; };
-  MultivariateAnalysis = derive2 { name="MultivariateAnalysis"; version="0.4.4"; sha256="0vpk7iplmb0cyrqal90m1y4ym8wng2b8k9ydh26xaga4r974qd2p"; depends=[ape biotools candisc corrplot crayon PCAmixdata]; };
+  MultivariateAnalysis = derive2 { name="MultivariateAnalysis"; version="0.5.0"; sha256="1hphl6swqkfjqbybkcpvf0bda6jf434v7l6pqzlviqzlnww94riv"; depends=[biotools candisc corrplot crayon ecodist factoextra ggdendro ggplot2 gridExtra magrittr NbClust PCAmixdata plotly rstudioapi]; };
   MultivariateRandomForest = derive2 { name="MultivariateRandomForest"; version="1.1.5"; sha256="0mww4x1hqraiyvmw2f9s6h180kplmj36hb7zfg7xlkmgdf4apk8d"; depends=[bootstrap Rcpp]; };
   MultiwayRegression = derive2 { name="MultiwayRegression"; version="1.2"; sha256="1w0yd3nwrqpk5nhnrcrd06fbdhg4kizx2p8mpspqnw8qcn970pfl"; depends=[MASS]; };
   MulvariateRandomForestVarImp = derive2 { name="MulvariateRandomForestVarImp"; version="0.0.2"; sha256="0gbr44rwwb4nq2s4ix1ckfdjahsfx9sjfbww5wjcm1v68w6bk5ca"; depends=[MASS MultivariateRandomForest]; };
@@ -3381,7 +3449,6 @@ in with self; {
   NB_MClust = derive2 { name="NB.MClust"; version="1.1.1"; sha256="0hzmrszxgx3pylf9pjjwk2ryjhwz7naxxkhcqpnfjv337vv5dg0i"; depends=[MASS]; };
   NBAloveR = derive2 { name="NBAloveR"; version="0.1.3.3"; sha256="0k1f14srzks26x5wnhj8mrfwcq7wgbywcklr804lxsh04h4d6pwp"; depends=[dplyr magrittr tidyr]; };
   NBBDesigns = derive2 { name="NBBDesigns"; version="1.1.0"; sha256="0vb7iglzbkk3dvh4z7ia7zjds4i2anw5y50vjg2k0sb9q0zi5hvp"; depends=[]; };
-  NBBttest = derive2 { name="NBBttest"; version="1.0.1"; sha256="13p6kkakg2hd27xmh6vjnn8w161qaw23xzsx99pjgvz7w0n9idv3"; depends=[gplots gtools]; };
   NBDdirichlet = derive2 { name="NBDdirichlet"; version="1.4"; sha256="11iqn74k7q6g7if35237jzabknjcdaanbq83hjicb2m0l5h31vvn"; depends=[]; };
   NBDesign = derive2 { name="NBDesign"; version="2.0.0"; sha256="0593rh2lf8wlxzjmwh2xx3jsb6miqx0wipqw9di10cbxbf6binb1"; depends=[MASS PWEALL]; };
   NBLDA = derive2 { name="NBLDA"; version="1.0.1"; sha256="0h71c3kgqaijpnrz2cx2k4311j61paxnj96kwpv2dcdy9rhkbwar"; depends=[ggplot2]; };
@@ -3398,17 +3465,16 @@ in with self; {
   NCmisc = derive2 { name="NCmisc"; version="1.2.0"; sha256="10wzznqa26fxyj6bl979qmq29p3dkr8yap4s70l3mwhhk33zpz16"; depends=[]; };
   NCutYX = derive2 { name="NCutYX"; version="0.1.0"; sha256="0r2ghnvrbya3p1d8rb5bsnz5v852vvc6rq65yafn2xzr7886wrg2"; depends=[fields glmnet MASS mvtnorm Rcpp RcppEigen]; };
   NDP = derive2 { name="NDP"; version="0.1.0"; sha256="0wmld7g4w3d7d8lyj4132h3jpr8ng8kpy4ssqjp8r0lqwif2i86b"; depends=[rmarkdown shiny]; };
-  NEONiso = derive2 { name="NEONiso"; version="0.6.4"; sha256="0fwz6clfl9l38pmks1qq3sys8jnb7mib81nfq1k1hdwhjknr76hz"; depends=[caret data_table dplyr ggplot2 gridExtra httr lifecycle lubridate magrittr neonUtilities R_utils rhdf5 rlang tidyselect zoo]; };
+  NEONiso = derive2 { name="NEONiso"; version="0.7.0"; sha256="1nkwymy6zyyk8g6lxk45srqf285329x60plhkbkm0wif6kx777s0"; depends=[caret data_table dplyr ggplot2 gridExtra httr lubridate magrittr neonUtilities R_utils rhdf5 rlang tidyselect zoo]; };
   NEpiC = derive2 { name="NEpiC"; version="1.0.1"; sha256="11zf112xcsg3k93vks2fnsflw2v2d56a0bsjpd460d21k3gipfz8"; depends=[igraph PairedData]; };
   NFCP = derive2 { name="NFCP"; version="1.2.1"; sha256="16dvk8jiyzd94lfif0nkwc0ix05is8bhyykaaa6p1irwgzk8cia4"; depends=[curl FKF_SP LSMRealOptions MASS mathjaxr numDeriv Rdpack rgenoud]; };
   NFLSimulatoR = derive2 { name="NFLSimulatoR"; version="0.4.0"; sha256="1s11jr684dvc25rapdi1mslk4z8ajrcf20ibnz6rr22ga3pylxyn"; depends=[data_table nflfastR progress]; };
   NFWdist = derive2 { name="NFWdist"; version="0.1.0"; sha256="0833lg0pd763awrc6ibidwf2ldl79w9lmm5acq4bnpd2hzsx60l8"; depends=[]; };
   NGBVS = derive2 { name="NGBVS"; version="0.3.0"; sha256="09pmqbmmn2ym2r61xqd86dv831x94gv8z7cga5863lcjy93mpy2a"; depends=[Rfast]; };
-  NGCHM = derive2 { name="NGCHM"; version="1.0.1"; sha256="12n15ja1r1vj9znf8rlp1xmknh3ma36557vvp6mxcv5vf4fwpzd3"; depends=[digest htmltools httr jsonlite logger tsvio]; };
+  NGCHM = derive2 { name="NGCHM"; version="1.0.3"; sha256="1gclzn4ps2jx452w3rvp38mc4sj8920w2dmhvafxnfk0dj25pada"; depends=[digest htmltools httr jsonlite logger tsvio]; };
   NGLVieweR = derive2 { name="NGLVieweR"; version="1.3.1"; sha256="15azdlr3a6gaacjcjpi61rwmx7c3idfn3w1zpgbaqmhxd9a4m6f0"; depends=[htmlwidgets magrittr shiny]; };
   NHANES = derive2 { name="NHANES"; version="2.1.0"; sha256="0aphv3rakfcfrv2km1xyxpj1bxiazy6gwrvs7lyhxmq468fk4c9a"; depends=[]; };
   NHLData = derive2 { name="NHLData"; version="1.0.0"; sha256="0dfqalccbkmqrn3h1z6s78l818c8sqn7d6yc8mg872ygmszryci7"; depends=[]; };
-  NHMSAR = derive2 { name="NHMSAR"; version="1.19"; sha256="0xbnzq3zlpda1xcfiz1lsa5q5frvrsf87z3xc41fvk1n5viak5fk"; depends=[glasso lars ncvreg ucminf]; };
   NHPoisson = derive2 { name="NHPoisson"; version="3.3"; sha256="1i6n59ckcxk1hwyz97jmnv4yb96ianjma6ka8lpz79ivs41jniad"; depends=[car]; };
   NHSDataDictionaRy = derive2 { name="NHSDataDictionaRy"; version="1.2.5"; sha256="17jvyjxc28bmxadvcjhal4shklh24636zw6hrc7p7m71lbcw86aw"; depends=[dplyr httr magrittr purrr rvest stringr tibble xml2]; };
   NHSRdatasets = derive2 { name="NHSRdatasets"; version="0.3.0"; sha256="1l4zrprnb3fsb2mibq8749a15xbvhn1g5yajbjf7gls81c8f2r7p"; depends=[tibble]; };
@@ -3422,7 +3488,7 @@ in with self; {
   NLPclient = derive2 { name="NLPclient"; version="1.0"; sha256="0jhlz9mqziyk5574vl8qjjs4g75x27rlk90wvzm3q9kjrjyvad35"; depends=[curl NLP xml2]; };
   NLPutils = derive2 { name="NLPutils"; version="0.0-5.1"; sha256="1ca7cqfjzrhn0idgw8viqlr2w4lkzng64bqk8hvd08qm7bgg5vjl"; depends=[NLP qdap SnowballC]; };
   NLRoot = derive2 { name="NLRoot"; version="1.0"; sha256="1x8mcdgqqrhyykr12bv4hl4wbh1zw2qgpnd2yrm68kb92iy95rh4"; depends=[]; };
-  NMA = derive2 { name="NMA"; version="1.4-2"; sha256="0lwsys3imcr7n2bnyg9isp8jj00mz0ng8zzp79d1ann791dvsb3z"; depends=[forestplot ggplot2 MASS metafor stringr]; };
+  NMA = derive2 { name="NMA"; version="1.4-3"; sha256="09y3arzw08054xb1y3nmnnzxybgjm2yyvkc530avpqkl1yrb1ap2"; depends=[forestplot ggplot2 MASS metafor stringr]; };
   NMADiagT = derive2 { name="NMADiagT"; version="0.1.2"; sha256="0fskc3ldfdl17gazpfr2hixy79n7db4c1f5yl1jalhwxiabnxjwp"; depends=[coda ggplot2 imguR ks MASS MCMCpack plotrix Rdpack reshape2 rjags]; };
   NMAoutlier = derive2 { name="NMAoutlier"; version="0.1.18"; sha256="0h0pxjg6ppz9zv7wcv1dka5g0f9wxk3bnwicfpsv1advcam4vmmn"; depends=[ggplot2 gridExtra MASS meta netmeta reshape2]; };
   NMF = derive2 { name="NMF"; version="0.27"; sha256="1y9y7xpfd9y8j5b8s2x5g61455ilpgqpdhrirpz58xjarbph4hxg"; depends=[Biobase BiocManager cluster codetools colorspace digest doParallel foreach ggplot2 gridBase RColorBrewer registry reshape2 rngtools stringr]; };
@@ -3434,13 +3500,13 @@ in with self; {
   NMTox = derive2 { name="NMTox"; version="0.1.0"; sha256="1slz6bq57l3f2wqd2nhm3b7dag6vg7wy9zi5rpl7ld1yyqfb0wfp"; depends=[dplyr forcats ggplot2 gridExtra Iso tidyr]; };
   NMVANOVA = derive2 { name="NMVANOVA"; version="1.1.0"; sha256="1jlqyg5vn7j8srvifjghd5a7820kadl8kbwib4qxalrfprq81h8p"; depends=[]; };
   NMcalc = derive2 { name="NMcalc"; version="0.0.3"; sha256="199pd9wmakrk96vqb1gwwq6pwsk00r4vn6r3ff9awylwl6vbs7bq"; depends=[data_table]; };
-  NMdata = derive2 { name="NMdata"; version="0.1.5"; sha256="0lmnfwrdngqkam1kw8kcb9wk4gk7dxrnfwdjwgfh0dnvr0lnp863"; depends=[data_table fst]; };
+  NMdata = derive2 { name="NMdata"; version="0.1.6"; sha256="0jyfms68p18503460phhc9cw3vrv2lp7mcg9d2x498vqn0kbs5xb"; depends=[data_table fst]; };
   NMsim = derive2 { name="NMsim"; version="0.1.0"; sha256="1lmfb6h78vj6r6n6br9awkxrq445f9cgzhsz06rzkydnb10xldrk"; depends=[data_table fst MASS NMdata R_utils xfun]; };
   NNMIS = derive2 { name="NNMIS"; version="1.0.1"; sha256="1w2i4xlx249p589yqdgbx1ra406ycxw729vbk1lqadbn71m6blaz"; depends=[survival]; };
-  NNS = derive2 { name="NNS"; version="10.7"; sha256="0ffia8svi1gvsjr2a0y5mgqgvpjdw3y1c2mjxpi8dr3hamwqx4g1"; depends=[caret data_table doParallel foreach meboot quantmod Rcpp RcppParallel Rfast rgl stringr xts zoo]; };
+  NNS = derive2 { name="NNS"; version="10.8.2"; sha256="11jacanqf7c7kaarwc6micmhzg47sna1lfj5fkpvpa9396xpbrjd"; depends=[data_table doParallel foreach plyr quantmod Rcpp RcppParallel Rfast rgl xts zoo]; };
   NNTbiomarker = derive2 { name="NNTbiomarker"; version="0.29.11"; sha256="0sqlf7vzhpmq2g98c2qlrcqn3ba4ycfxbczgcjiqqhqsvgkpacc1"; depends=[magrittr mvbutils shiny stringr xtable]; };
   NNbenchmark = derive2 { name="NNbenchmark"; version="3.2.0"; sha256="086smk3xy6p6ianw41h3gx806q7h28v1dg9d3khsrwyyf9gn8xyp"; depends=[pkgload R6]; };
-  NO_PING_PONG = derive2 { name="NO.PING.PONG"; version="0.1.6"; sha256="1i8pwk4p43yqmk8irkmvza080sngmng0wv1yr847253a0frjg9mr"; depends=[MASS MCMCglmm metafor]; };
+  NO_PING_PONG = derive2 { name="NO.PING.PONG"; version="0.1.8.7"; sha256="0fszx8a99znc067lpj4h3n5991lvm7iwq8yici8hhizr11f0dc70"; depends=[MASS MCMCglmm metafor]; };
   NORMA = derive2 { name="NORMA"; version="0.1"; sha256="193q6dwn8v7k8xq0amjpvb3v6mn7c6agqa487gvjj78dy1qz720a"; depends=[rootSolve]; };
   NPBayesImputeCat = derive2 { name="NPBayesImputeCat"; version="0.5"; sha256="05zwa7hhf8p1icgdvvla0r70fgvjm7s38gp69h7wgsq8yl6vd876"; depends=[bayesplot dplyr ggplot2 Rcpp reshape2 rlang]; };
   NPCD = derive2 { name="NPCD"; version="1.0-11"; sha256="107i33z4q5w2828sm0pm8234kmp1v3a2w72lmhvi0rpnjhg0x120"; depends=[BB R_methodsS3]; };
@@ -3451,7 +3517,6 @@ in with self; {
   NPIstats = derive2 { name="NPIstats"; version="0.1.0"; sha256="0hbx2mzz1z2158c943dqfn0pq1aybj1xxy55mmvld4djr5zrlz9w"; depends=[dplyr]; };
   NPMLEcmprsk = derive2 { name="NPMLEcmprsk"; version="3.0"; sha256="0nm88fsxgrfk0j0lmir57bhxy4p8ah503gpj6jdlvjqw862jigiq"; depends=[]; };
   NPP = derive2 { name="NPP"; version="0.6.0"; sha256="1jyxnblr8ibzlwb78k98idf856m5gnaba3b53qz0pfgxf2k8wdhv"; depends=[]; };
-  NPRED = derive2 { name="NPRED"; version="1.0.7"; sha256="0nkfgc9zy3gszmnay77yj7i0p8w1q8j1m9wb05hkrmhiacp4mbn4"; depends=[]; };
   NPflow = derive2 { name="NPflow"; version="0.13.5"; sha256="14i5pfvpjj25frvxrfvch5a8ja8y4mnsk9h2ikcwh949br6mjq52"; depends=[ellipse fastcluster GGally ggplot2 pheatmap Rcpp RcppArmadillo reshape2 truncnorm]; };
   NRejections = derive2 { name="NRejections"; version="1.2.0"; sha256="0lzj7kyn4s8l306a6xwkgkv1z4dlfsr61i902lvdxv4ln4m6a5kq"; depends=[doParallel foreach matrixcalc mvtnorm StepwiseTest]; };
   NSAE = derive2 { name="NSAE"; version="0.4.0"; sha256="1pig0b2g6z1pc6is3nw7m88zwvwpg3pwvifvyc6p38kbin57m1pb"; depends=[cluster lattice MASS Matrix nlme numDeriv rlist SemiPar spgwr]; };
@@ -3461,7 +3526,7 @@ in with self; {
   NScluster = derive2 { name="NScluster"; version="1.3.6-1"; sha256="0qaf36pf5gd91ivy4ns5gppmrzxcha7ghyih4hcbnxs2291jck0x"; depends=[]; };
   NTLKwIEx = derive2 { name="NTLKwIEx"; version="0.1.0"; sha256="1pdqcbiznil97s8m3yc3f251mii0w9qpa1ayw6bnx6bm9brgd4my"; depends=[dplyr ggplot2]; };
   NTS = derive2 { name="NTS"; version="1.1.3"; sha256="0scj05h2r3sg34n0lmarbrgavz6q2n23gvs2v4w5q249q2cx6iis"; depends=[dlm MASS MSwM Rdpack tensor]; };
-  NTSS = derive2 { name="NTSS"; version="0.1.2"; sha256="1i3y3psr17p8p7s799sdki3pndb82pydl2g3dcz18snynjpmd31j"; depends=[geoR GET ks spatstat spatstat_explore spatstat_geom spatstat_model spatstat_random]; };
+  NTSS = derive2 { name="NTSS"; version="0.1.3"; sha256="18j7q5976ij0sn05j7s1k6rz7m8vi5lq7qx72cz9m8lj2f5l8apc"; depends=[geoR GET ks spatstat spatstat_explore spatstat_geom spatstat_model spatstat_random spatstat_univar]; };
   NU_Learning = derive2 { name="NU.Learning"; version="1.5"; sha256="03g6hy9x9r9ydld14qpglxh09amm65hinq8i4wbnqhvg4b3wqbjx"; depends=[cluster lattice]; };
   NUCOMBog = derive2 { name="NUCOMBog"; version="1.0.4.2"; sha256="0s6gm3adc9qdh94pxzgccbxx1f1lbgqyvd4xk37xp6f3b5hwljdz"; depends=[snowfall]; };
   NUETON = derive2 { name="NUETON"; version="0.1.0"; sha256="0sqd2pcsy2c2s77aivi5s4mnb7xkzja9hnc4cgdgx4hdisdwvgdj"; depends=[]; };
@@ -3491,7 +3556,6 @@ in with self; {
   NetOrigin = derive2 { name="NetOrigin"; version="1.1-6"; sha256="0brjg6w79r6bkga9dpqph9l7k6wq5hvsjfhrwx7dnyr437f7z4hk"; depends=[colorspace corpcor dplyr Hmisc igraph mvtnorm plyr tibble]; };
   NetPreProc = derive2 { name="NetPreProc"; version="1.2"; sha256="07drrgvgl3msbcxi113hinqss30lkzrv9hqkzwa41bpssfq8x68c"; depends=[graph]; };
   NetRep = derive2 { name="NetRep"; version="1.2.7"; sha256="02ss45giv30pi31b5rysa36bn5c4fs5x58g4vb0arz9cnicznv97"; depends=[abind BH foreach RColorBrewer Rcpp RcppArmadillo RhpcBLASctl statmod]; };
-  NetSci = derive2 { name="NetSci"; version="1.0.0"; sha256="1fliilk5z7lldkry5kijwab0k6ysqy87fcfrnwyywxkpxxrv1578"; depends=[binr cubature dplyr igraph magrittr Rfast wTO]; };
   NetSimR = derive2 { name="NetSimR"; version="0.1.5"; sha256="1ipxr7wqlxa6qk5hhhbkr274v7f0hb1zjndcjgsk4gmv7cl7w21j"; depends=[DBI fitdistrplus future future_apply MASS Pareto plotly rmarkdown RMySQL RODBC RPostgreSQL RSQLite scales shiny shinybusy shinyjs shinyWidgets]; };
   NetSwan = derive2 { name="NetSwan"; version="0.1"; sha256="1mwdy3ahagiifj2bd1ajrafvnxzi74a1x1d3i2laf1hqpz3fbgld"; depends=[igraph]; };
   NetWeaver = derive2 { name="NetWeaver"; version="0.0.6"; sha256="058fi3vbp11mbg69n4yp1zf48akfdl6s2p0qpa0v6ngmk2zjk0bq"; depends=[]; };
@@ -3505,10 +3569,10 @@ in with self; {
   NetworkRiskMeasures = derive2 { name="NetworkRiskMeasures"; version="0.1.4"; sha256="1121ma43jxc4p9rw0sc8w32shf9xrmn5qd1xsqgzr8diymc49zhg"; depends=[dplyr expm ggplot2 Matrix]; };
   NetworkToolbox = derive2 { name="NetworkToolbox"; version="1.4.2"; sha256="026gizms1xsmlpzgssgqi2y5lfhvvbqkwy5q3a0d4xvzbmyan3y7"; depends=[corrplot doParallel fdrtool foreach igraph IsingFit MASS pbapply ppcor psych pwr qgraph R_matlab]; };
   NeuralNetTools = derive2 { name="NeuralNetTools"; version="1.5.3"; sha256="1q3q3vc1f0lglyx5ydv5nx6ywpvz50a9w7cql2j7cjvh4pd3pibs"; depends=[ggplot2 nnet reshape2 scales tidyr]; };
-  NeuralSens = derive2 { name="NeuralSens"; version="1.1.2"; sha256="0inp0r22x4l2r2d69swm8631f07knfkf0xw5m191y4biy23jd1dv"; depends=[caret dplyr fastDummies ggbreak ggforce ggnewscale ggplot2 ggrepel gridExtra Hmisc magrittr NeuralNetTools reshape2 scales stringr]; };
+  NeuralSens = derive2 { name="NeuralSens"; version="1.1.3"; sha256="0wd70qykzgsfz5pr05hjq5kcixz94787wm5qmh4nj7l8a5r01m76"; depends=[caret dplyr fastDummies ggbreak ggforce ggnewscale ggplot2 ggrepel gridExtra Hmisc magrittr NeuralNetTools reshape2 scales stringr]; };
   NeuroDecodeR = derive2 { name="NeuroDecodeR"; version="0.2.0"; sha256="1jylaw35q8c72j7r9mk2a03r0k46csm9qav00dd1axxifc9y7wyf"; depends=[doSNOW dplyr e1071 forcats foreach ggplot2 gridExtra magrittr purrr R_matlab scales stringr tibble tictoc tidyr]; };
   Newdistns = derive2 { name="Newdistns"; version="2.1"; sha256="1b5njkzj8b0wrvvfv904di0933k9d320gadmfm5zl6pzdp34bh1i"; depends=[AdequacyModel]; };
-  NewmanOmics = derive2 { name="NewmanOmics"; version="1.0.10"; sha256="16lhs1wq4593yj5q1kw0rq085i4dja6x3pw5crnj4l4zib8gpdb1"; depends=[oompaBase]; };
+  NewmanOmics = derive2 { name="NewmanOmics"; version="1.0.11"; sha256="0r9hyidg3xlnz8vgr2k3kazvh3pxpcay8iixp5bz1r6hzi8q1cc2"; depends=[oompaBase]; };
   NiLeDAM = derive2 { name="NiLeDAM"; version="0.3"; sha256="1xqj33182fz6x633vs9iy3rxr7m13bqn1773fphs1sb8mvxwdvzq"; depends=[dplyr ggplot2 magrittr nleqslv rlang scales shiny shinyjs shinythemes thematic tidyr]; };
   NicheBarcoding = derive2 { name="NicheBarcoding"; version="1.0"; sha256="16jkznc4624ww7vwid6f3m90wm2ds2c7zf1j1sw16dyrqmlyk9w3"; depends=[ape dismo e1071 maps pROC randomForest raster rJava spider vegan]; };
   NightDay = derive2 { name="NightDay"; version="1.0.1.1"; sha256="1gwwxk428gkvci4dhfb3zikvidalpqkl0q2r6qpm58c12j14jk1h"; depends=[maps]; };
@@ -3524,20 +3588,19 @@ in with self; {
   NonNorMvtDist = derive2 { name="NonNorMvtDist"; version="1.0.2"; sha256="11xqdrx03q3anavyxpzb0hz6mcbdy252rzzjlpa2byfdlrfvn178"; depends=[cubature]; };
   NonParRolCor = derive2 { name="NonParRolCor"; version="0.8.0"; sha256="1rh345vydbg31pbkagyb2xmsy8riam9zj7sc86m6dqvl19lglvg5"; depends=[colorspace doParallel foreach gtools pracma scales]; };
   NonProbEst = derive2 { name="NonProbEst"; version="0.2.4"; sha256="1w2ihnwwdnxlnphyd26261lsxaknpi51c15rmn9m183djz9gsvdv"; depends=[caret e1071 glmnet Matrix sampling]; };
-  NonlinearRDD = derive2 { name="NonlinearRDD"; version="0.0.4"; sha256="0jj8s8nvv5jcp74zlid0y5j4b1vl6cg4mxaw6m45wnaxansqfcq3"; depends=[copula lpcde lpdensity quantreg rddensity rdrobust Rfast]; };
   NonlinearTSA = derive2 { name="NonlinearTSA"; version="0.5.0"; sha256="1z3fqw19kksadc31f1idrj37gzajrx91pprd07xdar7j6hddf4sn"; depends=[car minpack_lm tsDyn]; };
   Nonpareil = derive2 { name="Nonpareil"; version="3.4.0"; sha256="130aags0pgry0d34mj1n4lavc8q43hls7c3jhmkr8k6vyg3ij372"; depends=[]; };
-  NormData = derive2 { name="NormData"; version="1.0"; sha256="0is0i7fj1n1ibsxrl468znysnzn8k3ab6rlfq4bryqj0chgqk89k"; depends=[car doBy dplyr lmtest MASS openxlsx sandwich]; };
+  NormData = derive2 { name="NormData"; version="1.1"; sha256="0v502sv5jpk644czq1d96qc4dw40j5hlvxy52ikjzhm89ri5gq9r"; depends=[car doBy dplyr lmtest MASS openxlsx sandwich]; };
   NormExpression = derive2 { name="NormExpression"; version="0.1.1"; sha256="119bim7k33wng823rpsn4l2cgr9xns001gwjjg8pwf65yxdwwb37"; depends=[]; };
   NormPsy = derive2 { name="NormPsy"; version="1.0.8"; sha256="13w4xjdjjg9mzmfaflc0gp306kazyvxshpj4vnl6gym3vpi9qax8"; depends=[lcmm]; };
   NormalLaplace = derive2 { name="NormalLaplace"; version="0.3-1"; sha256="1j113pfi4fynn9jwma6j6habi1xj76sydjbymr3shsagv7jz6pfg"; depends=[DistributionUtils GeneralizedHyperbolic]; };
   NormalityAssessment = derive2 { name="NormalityAssessment"; version="0.1.0"; sha256="0r9a51z614si3b45g01lfgapmgc4smjf2hylgy5kvq8w0yh0w5y6"; depends=[dplyr DT ggplot2 rio rmatio shiny shinyalert shinyBS stringi stringr]; };
   NostalgiR = derive2 { name="NostalgiR"; version="1.0.2"; sha256="0rpvwi815sdhaxqpji1y6g0vy8mkn5k6wci0a4jf54pkywwkwrwp"; depends=[txtplot]; };
   NovelDistns = derive2 { name="NovelDistns"; version="0.1.0"; sha256="073969vk2vg58fx5h0v92m3zb1rdzlvv809vyahy3gxrj9n13lmh"; depends=[AdequacyModel gsl rootSolve]; };
-  NoviceDeveloperResources = derive2 { name="NoviceDeveloperResources"; version="1.1.0"; sha256="0m77n3xqwfy00mcl490cih4rp00wa7c8wyc6qanp0r11smzrahgf"; depends=[devtools]; };
-  NoviceDeveloperResources2 = derive2 { name="NoviceDeveloperResources2"; version="1.0"; sha256="0k6x65mgbglbnjj99rimvv19jzfk1h5n3j7ignh3hnqlhi769qa1"; depends=[NoviceDeveloperResources packrat]; };
+  NoviceDeveloperResources = derive2 { name="NoviceDeveloperResources"; version="1.2.0"; sha256="0im4ip5l2wfd4ypjrdm695368li9jh63l0d3vx83mnky59cnv815"; depends=[devtools]; };
+  NoviceDeveloperResources2 = derive2 { name="NoviceDeveloperResources2"; version="1.1.0"; sha256="1a1vki21hc4xym9b5szahadzmidkkhzdz5iiafminniglpk90xhw"; depends=[NoviceDeveloperResources]; };
   Nozzle_R1 = derive2 { name="Nozzle.R1"; version="1.1-1.1"; sha256="0fanf7cl8dlb8iqw8ww03dd5s6mrpr97m2c511clqkaavbd0yzkp"; depends=[]; };
-  Numero = derive2 { name="Numero"; version="1.9.6"; sha256="1g66cdg6y07f2n02ngx54yj42ss4nashhd7avcfxl4ajjfh6wavc"; depends=[Rcpp]; };
+  Numero = derive2 { name="Numero"; version="1.9.7"; sha256="04pf6x7qmgkfyj98c23maxcvlwwwfw6jas7l72xp0713lyndjl15"; depends=[Rcpp]; };
   NutrienTrackeR = derive2 { name="NutrienTrackeR"; version="1.3.0"; sha256="0s7ax1aqvlph92y0pfs5ji2b4fjig2ig2zcl5vlffcilwm4ccrpp"; depends=[ggplot2 shiny]; };
   OAIHarvester = derive2 { name="OAIHarvester"; version="0.3-4"; sha256="0b5v275w0c7y073fgwiy966djrw6p1zggzqlywa2fsdn2p0aq56w"; depends=[curl xml2]; };
   OBASpatial = derive2 { name="OBASpatial"; version="1.9"; sha256="13jx5f5piii9cys7xyhfwilyg87zsi632fscy8902mlhbgg7abkp"; depends=[cubature HDInterval invgamma LaplacesDemon modeest mvtnorm truncdist]; };
@@ -3545,9 +3608,8 @@ in with self; {
   OBL = derive2 { name="OBL"; version="0.2.1"; sha256="06icw1dnmavgaf51fs2nfi6582cpjrnlii1j9s62nwnwfnqw00v3"; depends=[dplyr forcats foreach forecast ggplot2 tibble]; };
   OBMbpkg = derive2 { name="OBMbpkg"; version="1.0.0"; sha256="01wch8wwij3fd0jambk0hpkhlnp4ryrq8qnnr2w1iad9zssjyii5"; depends=[]; };
   OBRE = derive2 { name="OBRE"; version="0.2-0"; sha256="1x1s46yffjr140mwx8amnh02k6g8x2gz5hz7lypiwxh0v7a8bm8w"; depends=[pracma]; };
-  OBsMD = derive2 { name="OBsMD"; version="11.1"; sha256="0gxx3ja4ii5ql1ss43g23jrbwzg3193wchqmrdm0iq7g33mmd16y"; depends=[]; };
   OCA = derive2 { name="OCA"; version="0.5"; sha256="19bayggqkzzpvn7ax8m8xgvz27a03iyybsxjz2vphf03dwsr8c5h"; depends=[mathjaxr]; };
-  OCNet = derive2 { name="OCNet"; version="1.2.1"; sha256="1jd6389g0md8rch21j5sn183mbvwmqyak8pw5p8jxxyp1x4vj87s"; depends=[adespatial fields igraph Rcpp rgl spam spdep terra]; };
+  OCNet = derive2 { name="OCNet"; version="1.2.2"; sha256="1ryb5jbz1dd4b9v45za6li1szdz8n9mmf3n3wx4ivqmcrnp2zqdh"; depends=[adespatial fields igraph Rcpp rgl spam spdep terra]; };
   OCSdata = derive2 { name="OCSdata"; version="1.0.2"; sha256="0119c2i9k63mbz40lbbf7x59nf4yyhrmaynn0m0sh1h3jjbsiazc"; depends=[httr purrr usethis]; };
   ODB = derive2 { name="ODB"; version="1.2.1"; sha256="0frkbl99ilpmppm4fm97lbkqhmjgcwlz9j5vh5nzzcsxrh8qwicn"; depends=[DBI RJDBC]; };
   ODEnetwork = derive2 { name="ODEnetwork"; version="1.3.2"; sha256="0wicp0xxqq3jl0kjhc26iqpk8rwa9nv2aiwf18pkgnqxbyw6lgnp"; depends=[checkmate deSolve]; };
@@ -3561,7 +3623,7 @@ in with self; {
   OGI = derive2 { name="OGI"; version="1.0.0"; sha256="0qw55jamkvdf3vfa5c0ygbymbs4d9q15dihiqz691hdfnyjvc2mk"; depends=[lpSolve]; };
   OHCSpackage = derive2 { name="OHCSpackage"; version="0.1.5"; sha256="0dr2yxz9amqq9mpl8skhdvs7w01zc4y3sw4wqs0iwj1pj9jb96fz"; depends=[dplyr openxlsx readr tibble]; };
   OHPL = derive2 { name="OHPL"; version="1.4"; sha256="0svim112khdymdj1bsj8vri6r0zph5312y148mlh5h98rah40i08"; depends=[glmnet mvtnorm pls]; };
-  OLCPM = derive2 { name="OLCPM"; version="0.1.1"; sha256="1iq0avlrxpj9qfi90im1k845grqrr512ysdi5fpfy0s8zjalsxnh"; depends=[LaplacesDemon RSpectra]; };
+  OLCPM = derive2 { name="OLCPM"; version="0.1.2"; sha256="0w60w1qhq8sbcaqk56kf4cgn51fm8zjmxdm42imn5c05m06pc8k0"; depends=[LaplacesDemon RSpectra]; };
   OLStrajr = derive2 { name="OLStrajr"; version="0.1.0"; sha256="1ln2as15aay4hzdm82yc024dlv7wdip9l5dryrdhkmmhjy026gia"; depends=[boot broom ggplot2 purrr tidyr tidyselect]; };
   ONEST = derive2 { name="ONEST"; version="0.1.0"; sha256="07mfykpkcgcqafw1w3qr9x83zpy2p0q7v1zkgwpd69g79j0r3yap"; depends=[]; };
   OOBCurve = derive2 { name="OOBCurve"; version="0.3"; sha256="1i7prybs3b60ipl34zrq6mcr6w9kc1d44b14mxcd752k42k6xs2r"; depends=[mlr randomForest ranger]; };
@@ -3576,7 +3638,7 @@ in with self; {
   ORFID = derive2 { name="ORFID"; version="1.0.2"; sha256="11g4l45x3jwyffamr2qd0h7y15kyynqqwxh1mp1mnv0lchmdyr89"; depends=[dplyr ggplot2 magrittr openxlsx readr rlang stringr tidyr]; };
   ORIClust = derive2 { name="ORIClust"; version="1.0-2"; sha256="036jbfq4klzlppybvcj8wjchcyqmmxwvvr3rn9436cz4zm2yjy4a"; depends=[]; };
   ORION = derive2 { name="ORION"; version="1.0.3"; sha256="0zzlvx1yd3hy8dy7nbmkj7d2k6609ys91s894qcgx5n7jirqviy3"; depends=[doParallel e1071 foreach igraph knitr randomForest rmarkdown TunePareto]; };
-  ORKM = derive2 { name="ORKM"; version="0.7.0.0"; sha256="1sgxbydxl3gv34fnzc8615hziv6a3qmq8vnmys0lwxahxvix11j9"; depends=[MASS Matrix]; };
+  ORKM = derive2 { name="ORKM"; version="0.8.0.0"; sha256="132459zd83c3www2gijcb97f5c765p66y459irlv63ny21hwpnsp"; depends=[MASS Matrix]; };
   ORTSC = derive2 { name="ORTSC"; version="1.0.0"; sha256="0byja1gi44ymn68cfai8apcimlxmnflqr1pj8k4y7l8lqd3fyz60"; depends=[googleAuthR googleCloudVisionR]; };
   OSCV = derive2 { name="OSCV"; version="1.0"; sha256="17wrfak6b6m2l3iqbhdwcfh0rlqb14rkvrbari7v46gya9v7hq20"; depends=[mc2d]; };
   OSDR = derive2 { name="OSDR"; version="1.1.4"; sha256="0yf9l0fkqf9adanl8182nyislj2s2xvsnf2xp5y7pdj3af2k4m7w"; depends=[]; };
@@ -3599,7 +3661,7 @@ in with self; {
   Observation = derive2 { name="Observation"; version="0.3.0"; sha256="1z9ldp050f7jy76s8yk509nwjx1ymvk5k9d19i67brd7xcawxnr3"; depends=[svDialogs]; };
   OceanView = derive2 { name="OceanView"; version="1.0.7"; sha256="0s615mrbwamd85h1q8rg5mciwq0hcjzl5rqjaq578nz5ikr3px9a"; depends=[plot3D plot3Drgl rgl shape]; };
   OddsPlotty = derive2 { name="OddsPlotty"; version="1.0.2"; sha256="0adgbrni7yrarybh0djmq68hifwqzn2rn9mfqgwqma1d7mg3ai93"; depends=[caret e1071 ggplot2 ggthemes magrittr mlbench rmarkdown tibble tidymodels]; };
-  OenoKPM = derive2 { name="OenoKPM"; version="2.2.1"; sha256="0ppp8ijzgv6qvgjl7cnnp1zkcqnyx4h6gyk1f1qskr9izbz84sv6"; depends=[ggplot2 minpack_lm openxlsx]; };
+  OenoKPM = derive2 { name="OenoKPM"; version="2.4.1"; sha256="1qqfnq0zzmnjjb9rr6qd2l08rn5plkg4xsbrdk7jv1alfnq1b938"; depends=[ggplot2 ggpubr gridExtra minpack_lm openxlsx]; };
   Ohit = derive2 { name="Ohit"; version="1.0.0"; sha256="132d4drc2phw9ppxnczb1ycdg3dv085k8p6bcaj3v866j0hfxjgb"; depends=[]; };
   OkNNE = derive2 { name="OkNNE"; version="1.0.1"; sha256="10kkg6n6fsqm1kir1ay96br1m8adykarmp57bnw900fiblqqa2i0"; depends=[FNN]; };
   OlinkAnalyze = derive2 { name="OlinkAnalyze"; version="3.7.0"; sha256="0rj57ipm2lk11ysscgqaa38hgysyxr9nb5zvp17kxf5cla17dskc"; depends=[broom car dplyr emmeans forcats generics ggplot2 ggpubr ggrepel lme4 lmerTest magrittr readxl rlang rstatix stringr tibble tidyr tidyselect zip]; };
@@ -3616,25 +3678,27 @@ in with self; {
   OnboardClient = derive2 { name="OnboardClient"; version="1.0.0"; sha256="15ymf163a80s4yvi5z884irvkb1ivnxpr505z96s23hs8ibhk2bh"; depends=[data_table dplyr httr jsonlite lubridate plyr rrapply rstudioapi stringr tibble tidyr tidyselect]; };
   OncoBayes2 = derive2 { name="OncoBayes2"; version="0.8-9"; sha256="06k0lbriyx6b1nlvpyjhf5g8dp8wa37wi1pmlpfqq7ryivp39v38"; depends=[abind assertthat bayesplot BH checkmate dplyr Formula ggplot2 matrixStats posterior Rcpp RcppEigen RcppParallel rlang rstan rstantools scales StanHeaders tibble tidyr tidyselect]; };
   OncoSubtype = derive2 { name="OncoSubtype"; version="1.0.0"; sha256="12d32i8q4j0hlkxlk6s8r5ycib6lx5jdsp8g404zmjrsd96aadr2"; depends=[caret dplyr e1071 limma pheatmap randomForest Rdpack rlang SummarizedExperiment tibble]; };
+  Oncofilterfast = derive2 { name="Oncofilterfast"; version="1.0.0"; sha256="1ns39r8ljzykpxy5cy4wvgsgiwqpdrida26641av7z3arr1f4kd1"; depends=[survival survminer]; };
   Oncotree = derive2 { name="Oncotree"; version="0.3.5"; sha256="1c40xggz3ldgma73ik0m10asamd9kns4i30w3zgw4hvpyzalbvm4"; depends=[boot]; };
   One4All = derive2 { name="One4All"; version="0.4"; sha256="1f0gymlpdyz9dm71mj99cyp58c1nwxr8d4g9c976mf5mimz2rhyn"; depends=[aws_s3 ckanr data_table digest dplyr httr jsonlite lexicon mongolite openxlsx readr readxl rlang shiny tibble validate]; };
   OneArm2stage = derive2 { name="OneArm2stage"; version="1.2.1"; sha256="040yv2bl6s7b1bgma7z1hgrsj8iynzayjc77ncp401nd1ng5wmw5"; depends=[flexsurv IPDfromKM survival]; };
   OneArmTTE = derive2 { name="OneArmTTE"; version="1.0"; sha256="186386pjjvlfq38950n1sdx0wq31q8ggjlqlrn07v68bcqjl70y6"; depends=[dplyr survival tibble tidyr]; };
   OneR = derive2 { name="OneR"; version="2.2"; sha256="1k7rzhcwq5b2yi4zfsc1r0yb6w65gxj9835d2a1dclallja3zav2"; depends=[]; };
   OneSampleLogRankTest = derive2 { name="OneSampleLogRankTest"; version="0.9.2"; sha256="1z09nmwp4v4rhr5aqx7k4dg9xvp9nm4djr2kbkivd7hph4fks0qs"; depends=[dplyr ggplot2 magrittr rlang survival survminer]; };
-  OneSampleMR = derive2 { name="OneSampleMR"; version="0.1.3"; sha256="18d467bhym9mp41n65rp0wg75f40szc7w5804p3hh9xqw7c3q2qq"; depends=[Formula gmm ivreg lmtest msm]; };
+  OneSampleMR = derive2 { name="OneSampleMR"; version="0.1.4"; sha256="11wcrmhibr02wbkdw77imcjancfdfzcqkz6wfjiiydx3hsksymck"; depends=[ellipsis Formula gmm ivreg lmtest msm]; };
   OneStep = derive2 { name="OneStep"; version="0.9.3"; sha256="1mnmji4pb2qbg0amgy5kkgyn8xg8ny0n7fi8xqr9pgi5zx5c63r4"; depends=[extraDistr fitdistrplus numDeriv]; };
   OneTwoSamples = derive2 { name="OneTwoSamples"; version="1.1-0"; sha256="0qa5v3c1f5mckvgmw8zbxqkk1q8k8dig1xg9k8pfyvfxqjard1ny"; depends=[]; };
   OnomasticDiversity = derive2 { name="OnomasticDiversity"; version="0.1"; sha256="11v8zk4xvy7a3mfglj7d96d03nsnc2i23ms73v9dci8wdnwnskp1"; depends=[sqldf]; };
+  OpEnHiMR = derive2 { name="OpEnHiMR"; version="0.1.1"; sha256="0wgjihdfjvsf3p97ll496ixwv2xzlgsr138pzgalw5hq0p1kmld6"; depends=[Biostrings caret devtools dplyr e1071 entropy ftrCOOL gbm party randomForest RCurl seqinr splitstackshape stringr tidyverse]; };
   OpenCL = derive2 { name="OpenCL"; version="0.2-10"; sha256="0nkf1rfplzpwf722xiswvvjqla0aysaga5g6r1whx6ksy21xbhpi"; depends=[]; };
   OpenImageR = derive2 { name="OpenImageR"; version="1.3.0"; sha256="0j15kwhjazr35yqs9lhw0pfqmrd9rm75gs160dn3xcyc3nw2is56"; depends=[jpeg lifecycle png R6 Rcpp RcppArmadillo shiny tiff]; };
-  OpenLand = derive2 { name="OpenLand"; version="1.0.2"; sha256="02d1dflcbjvm9hgvsm5gpc3s0n0njf4w3224yqk9nc0i49nw01fi"; depends=[circlize dplyr ggplot2 gridExtra networkD3 raster tidyr]; };
+  OpenLand = derive2 { name="OpenLand"; version="1.0.3"; sha256="0qm08j12yrh3kyz3azpgp3w9pwvf4i8ymwisks8iqz05k2kw1r36"; depends=[circlize dplyr ggplot2 gridExtra networkD3 raster tidyr]; };
   OpenML = derive2 { name="OpenML"; version="1.12"; sha256="0ij4mnbfkckidv9f414fclyhrbbkgmpz5zsjiqa3zlckr3pfaxg7"; depends=[backports BBmisc checkmate curl data_table digest httr jsonlite memoise stringi XML]; };
   OpenMindat = derive2 { name="OpenMindat"; version="1.0.0"; sha256="1y9f358yn1d2xfqcgmmhcnyxr29fd2frh6ka70pzk63szswszs50"; depends=[httr jsonlite readxl stringi stringr usethis]; };
   OpenMx = derive2 { name="OpenMx"; version="2.21.11"; sha256="1k3i82higil43w4pryg1ghpswa8vxmc28dcv60gvkmmjrnwp098m"; depends=[BH digest lifecycle MASS Matrix Rcpp RcppEigen RcppParallel rpf StanHeaders]; };
   OpenRepGrid = derive2 { name="OpenRepGrid"; version="0.1.14"; sha256="1gy06cyjb50673jb9548c9v37im4hsm245r7rwhx280q9fsn17ws"; depends=[abind colorspace crayon dplyr igraph openxlsx plyr psych pvclust rgl scales stringr tidyr XML]; };
   OpenRepGrid_ic = derive2 { name="OpenRepGrid.ic"; version="0.6.2"; sha256="1v8sqlid97xnp0nddn4yr6im8zah1pclirvmz1n7qmc91656plx6"; depends=[dplyr DT formattable igraph magrittr openxlsx RColorBrewer reshape2 rintrojs scales shiny shinyBS shinycssloaders shinydashboard shinydashboardPlus shinyFeedback shinyjs shinythemes shinyWidgets stringr tidyr tidyverse withr]; };
-  OpenSpecy = derive2 { name="OpenSpecy"; version="1.0.8"; sha256="0dz7hfp4447xgxsi92han8jwiy373vr5nyv3hlda26j9ydyf2jqf"; depends=[caTools data_table digest glmnet hyperSpec jsonlite mmand osfr plotly shiny signal yaml]; };
+  OpenSpecy = derive2 { name="OpenSpecy"; version="1.1.0"; sha256="05vzc4vswdd1k4b0gs01rhf8lp7lspygw1m6rw9d49l5ag7hq9if"; depends=[caTools data_table digest glmnet hyperSpec jpeg jsonlite mmand osfr plotly shiny signal yaml]; };
   OpenStreetMap = derive2 { name="OpenStreetMap"; version="0.4.0"; sha256="0iq3y3331rjppc8nfx9krrrfybyn1spwfp15hf3vz8mnmcg86dkf"; depends=[ggplot2 raster rJava sp]; };
   OpenTreeChronograms = derive2 { name="OpenTreeChronograms"; version="2022.1.28"; sha256="0si5aaami2x705fmzp9357h1nwhdm3sb829cbvf7zfyicqyaihkg"; depends=[ape geiger knitcitations paleotree plyr rotl stringr taxize treebase usethis]; };
   Opportunistic = derive2 { name="Opportunistic"; version="1.2"; sha256="0kaj11ziij1v65l972x4kbr7vzkx4dwa27ymabiip4dg57a976wr"; depends=[]; };
@@ -3643,7 +3707,7 @@ in with self; {
   OptGS = derive2 { name="OptGS"; version="1.2"; sha256="0rpnn38w3a15agv0hkr77w6jpdb75ahnxq487vy35yxv9mvh75nn"; depends=[]; };
   OptHedging = derive2 { name="OptHedging"; version="1.0"; sha256="0g7qaf5abvbcqv2h1dciwn3gwpz084ryqjjk0yabdm4ym0y38ddm"; depends=[]; };
   OptHoldoutSize = derive2 { name="OptHoldoutSize"; version="0.1.0.0"; sha256="0ab0vvbg1nmpbbhq5a5nkwv7ap0fq4542l5da7g8qlwc23h6sfs5"; depends=[matrixStats mle_tools mnormt mvtnorm ranger]; };
-  OptM = derive2 { name="OptM"; version="0.1.6"; sha256="1x3df5qmbs920rgxpc32grwran49nxpnw9swrba9877c0ixg2dww"; depends=[boot SiZer]; };
+  OptM = derive2 { name="OptM"; version="0.1.8"; sha256="00xjzpfnri2k0p04cv98vwwymv16pbw79znklg1k3xc4rxg8wd25"; depends=[SiZer]; };
   OptSig = derive2 { name="OptSig"; version="2.2"; sha256="0fdszrblayi2hlmkgvwqxw1fh5nh2jad6sxlc788jrzjrd8nkldj"; depends=[pwr]; };
   OptiSembleForecasting = derive2 { name="OptiSembleForecasting"; version="0.1.0"; sha256="0j1xjh59iyb99p73wjvqr8yrsj6yplsl2rrx50bds9ksjbq1qmym"; depends=[caretForecast dplyr factoextra FactoMineR forecast keras kknn MCS metaheuristicOpt Metrics neuralnet readxl tensorflow tibble tsutils]; };
   OptimModel = derive2 { name="OptimModel"; version="2.0-1"; sha256="1c53jryrvzjhkgjppvf8kx7fvfss2x52v6wx90sfw57710dl9wvx"; depends=[Matrix]; };
@@ -3667,19 +3731,21 @@ in with self; {
   OscillatorGenerator = derive2 { name="OscillatorGenerator"; version="0.1.0"; sha256="0zqw8l955msxkdviw5vd493749zwc22qby9mfmyqnqqmq0pyjw4w"; depends=[]; };
   OssaNMA = derive2 { name="OssaNMA"; version="0.1.2"; sha256="04y36yi1qvxazf0s563d41g91x2190r1c5phkgkfqdcml94dmnln"; depends=[DEoptimR NlcOptim]; };
   Ostats = derive2 { name="Ostats"; version="0.2.0"; sha256="0d2qk76issb2k5f2ghfvpq0k8ra7d7nj9hp4ja1s0817zwr0g3zz"; depends=[circular ggplot2 gridExtra hypervolume MASS matrixStats sfsmisc viridis]; };
+  OutliersLearn = derive2 { name="OutliersLearn"; version="1.0.0"; sha256="1qjgi3m8727x40dfx9r36m9mg0jwa99qfwxv5xz29k2mwqknhl47"; depends=[]; };
   OutliersO3 = derive2 { name="OutliersO3"; version="0.6.3"; sha256="165v572w9bnvay9f0xyxzbhgj1i86ndia4rzqy98i48dfdbdb990"; depends=[cellWise dplyr FastPCS forcats GGally ggplot2 HDoutliers memisc rlist robustbase robustX tidyr]; };
   OwenQ = derive2 { name="OwenQ"; version="1.0.7"; sha256="0az36s6vrnfa93w12549v9zf6q9xg0a4kvrq5hnkaqxl314zaz1y"; depends=[BH Rcpp RcppEigen RcppNumerical]; };
   OxyBS = derive2 { name="OxyBS"; version="1.5"; sha256="11l3gm0jvw993jb13f6kpv77m6z0d1jswscma2v28qzkw053r3dc"; depends=[]; };
   PAC = derive2 { name="PAC"; version="1.1.4"; sha256="0h7381mr3jgzl7fi6v7amgmkf5agpkgy068c6ysgh3adlwsh6gs6"; depends=[dplyr ggplot2 ggrepel igraph infotheo parmigene Rcpp Rtsne]; };
   PACLasso = derive2 { name="PACLasso"; version="1.0.0"; sha256="1qzzymhfsjy8mk0r0xpd5h4wrx4wk8gq3vi6fnawkq5xkrg26rld"; depends=[lars limSolve MASS penalized quadprog]; };
-  PACVr = derive2 { name="PACVr"; version="1.0.8"; sha256="11izhw8j9axjfa7g3kgmm9gxkmh6nsv5asph3lmwffnfrqmc5m1y"; depends=[Biostrings dplyr GenomicAlignments GenomicRanges IRanges logger RCircos read_gb tidyr]; };
-  PAGFL = derive2 { name="PAGFL"; version="1.0.1"; sha256="0qkpkls49ssrr6yib9j1az5yi8amd6hg99bap6pcv99l088078l6"; depends=[pbapply Rcpp RcppArmadillo]; };
+  PACVr = derive2 { name="PACVr"; version="1.0.11"; sha256="0wj32rghf040539z6lld4zspyalz3c4ag1syr940arvilvyv5wav"; depends=[Biostrings dplyr GenomicAlignments GenomicRanges IRanges logger R6 RCircos read_gb tidyr]; };
+  PAFit = derive2 { name="PAFit"; version="1.2.10"; sha256="10p2q90jbjyzbvn8kgx1i8if144gq2zylqh8h3x4sg2ajqbcv8kg"; depends=[ggplot2 igraph knitr magicaxis mapproj MASS network networkDynamic plyr RColorBrewer Rcpp VGAM]; };
+  PAGFL = derive2 { name="PAGFL"; version="1.1.0"; sha256="1dh3hdrr5dhs7azvcn1r6lgyy2sqkr0nfzkcf2sh0vm6zxz85ssy"; depends=[ggplot2 lifecycle Rcpp RcppArmadillo RcppParallel]; };
   PAGWAS = derive2 { name="PAGWAS"; version="2.0"; sha256="0bz47ivd32kx1amgqllqbxyyvj773q7wasgk924hmibabiixa8nx"; depends=[foreach lars mnormt]; };
   PAICE = derive2 { name="PAICE"; version="1.0.1"; sha256="1qnyg5p62xryifjnbc2z5yxy4s5fszxf713cgaisds96wjqvzx8a"; depends=[]; };
   PAMhm = derive2 { name="PAMhm"; version="0.1.2"; sha256="0k0n3ni0ypcizri39v76x1vv7hlxlmbpfi7w81yxy9inz7zz4zfw"; depends=[cluster heatmapFlex plyr R_utils RColorBrewer readmoRe readxl robustHD]; };
-  PAMmisc = derive2 { name="PAMmisc"; version="1.11.6"; sha256="0x0pirzcxjkx5p3mqf3xn3a7ng5dah3z9pcrlkaj7d44y08kygj3"; depends=[dplyr geosphere ggplot2 hoardr httr lubridate magrittr ncdf4 PamBinaries purrr RcppRoll rerddap rjson RSQLite scales seewave suncalc tuneR xml2]; };
+  PAMmisc = derive2 { name="PAMmisc"; version="1.12.1"; sha256="0xv4bm1gzvhybgaww24nikwcbn8wq8299gbr1n831gscnzablzp3"; depends=[dplyr fftw geosphere ggplot2 httr lubridate magrittr ncdf4 PamBinaries purrr RcppRoll rerddap rjson RSQLite scales seewave signal suncalc tuneR xml2]; };
   PAMpal = derive2 { name="PAMpal"; version="1.0.0"; sha256="0mr4c7ckw05mh5lmr0qhpas98122yn257gip6w2hwrcyziy5sc4v"; depends=[data_table dplyr gam geosphere ggplot2 knitr lubridate manipulate PamBinaries PAMmisc purrr reticulate rlang RSQLite seewave signal stringr tidyr tuneR xml2]; };
-  PAMscapes = derive2 { name="PAMscapes"; version="0.5.3"; sha256="1r3p352mb0zqgqs6xp717j7in8s883l6rq82cyc8mi63a6cp99dp"; depends=[data_table dplyr geosphere ggplot2 hoardr httr lubridate magrittr ncdf4 PAMmisc purrr readr rlang scales sf tdigest tidyr]; };
+  PAMscapes = derive2 { name="PAMscapes"; version="0.5.8"; sha256="094084w6zamchzh6fwcgy839brq28vqkji2p335bpni9dfkz3cd5"; depends=[data_table dplyr geosphere ggplot2 httr lubridate magrittr ncdf4 PAMmisc purrr readr rlang scales sf tdigest tidyr]; };
   PANACEA = derive2 { name="PANACEA"; version="1.0.1"; sha256="0pq5kq0i87yrdfs6id2lc6gg4dqsa07fsas13yc8jw6bd9lcf6rh"; depends=[DBI igraph org_Hs_eg_db reshape2]; };
   PANPRSnext = derive2 { name="PANPRSnext"; version="1.2.0"; sha256="1s9kv58af7hj65qxcnrsfjrh8xfqhm5m4kpg279li5b4g4cpnqx9"; depends=[gtools Rcpp RcppArmadillo]; };
   PAS = derive2 { name="PAS"; version="1.2.5"; sha256="175p3bnpnhknfsc29hri0l2ipz1x6qcxs2bq7awns8lccam466r2"; depends=[glmnet]; };
@@ -3702,6 +3768,7 @@ in with self; {
   PCADSC = derive2 { name="PCADSC"; version="0.8.0"; sha256="0pwkmmnsw3c6ch2k5wdc8ig71994pdp79v3a5aa9n9aq55a8c2ir"; depends=[ggplot2 Matrix pander reshape2]; };
   PCAmatchR = derive2 { name="PCAmatchR"; version="0.3.3"; sha256="0ycplivjiz2w3wiqnqga0ywwdbd9mxqzm92k3bjva8009jxxijax"; depends=[]; };
   PCAmixdata = derive2 { name="PCAmixdata"; version="3.1"; sha256="0flrsnbchwk06dmkg3vqykp9n4pqs265szn1r10navp8ki3rrmvh"; depends=[]; };
+  PCBS = derive2 { name="PCBS"; version="0.1.0"; sha256="1sy2r55dard7hlha4k2b2i41y21a3nk786nzrbzicyvv6v093cd2"; depends=[data_table dplyr ggplot2 ggrepel tibble]; };
   PCDimension = derive2 { name="PCDimension"; version="1.1.13"; sha256="0mpf7m4daqaip18yfsyanrmbjq4ib9fw1b65ajdazicm400bw6gb"; depends=[changepoint ClassDiscovery cpm kernlab oompaBase]; };
   PCFAM = derive2 { name="PCFAM"; version="1.0"; sha256="196jzv0f6j60zkyagm9n98339ipn8mrhmhl3q4g053z8f6mm9zmv"; depends=[]; };
   PCGII = derive2 { name="PCGII"; version="1.1.2"; sha256="0bh37354qk2hj90f9l2908466bvwzjmxr70nyivhqkx2ffp5j42n"; depends=[corpcor dplyr glmnet igraph Matrix]; };
@@ -3718,7 +3785,7 @@ in with self; {
   PCS = derive2 { name="PCS"; version="1.3"; sha256="0v9vczc9hml6mzxglh106a9f5gy3x5m471lkzaw3ps8z76sgrpyr"; depends=[multtest statmod]; };
   PCSinR = derive2 { name="PCSinR"; version="0.1.0"; sha256="1z8yjryw3c43vc6fxcwiindmyq6r63pc1zr3aybwmys6mv697bb4"; depends=[]; };
   PCovR = derive2 { name="PCovR"; version="2.7.2"; sha256="0fzs071wnrf84fah0nzzavjiqvch031xjsmlj6nj7cjrmy7p7mv1"; depends=[GPArotation MASS Matrix ThreeWay]; };
-  PDE = derive2 { name="PDE"; version="1.4.8"; sha256="0ryhy3nayy8zagqjnr8hng7k7q2z74x6n1mqavgdm6d5nx0l7k3c"; depends=[tcltk2]; };
+  PDE = derive2 { name="PDE"; version="1.4.10"; sha256="0qzy70m8i64616lakhjil0jid3lfliqsyfg6w3hsg9662pl0wbf3"; depends=[tcltk2]; };
   PDFEstimator = derive2 { name="PDFEstimator"; version="4.5"; sha256="1h64scfy7db8p8gyczrzhscfssk1cbzhr41z8jvs0n1d1xa2f982"; depends=[MultiRNG plot3D]; };
   PDM = derive2 { name="PDM"; version="0.1"; sha256="1pbdy13ji9c6krgh2r1qgrzmf4hdmrdzylsr71n3hh5jq4n9xg8x"; depends=[jpeg]; };
   PDMIF = derive2 { name="PDMIF"; version="0.1.0"; sha256="0mlc31f4z0k5xk1fil0hx5dcbm7afia74kxb7xmnx4jcblidxnd2"; depends=[diagonals ncvreg quantreg]; };
@@ -3726,7 +3793,6 @@ in with self; {
   PDQutils = derive2 { name="PDQutils"; version="0.1.6"; sha256="0mmfi0ifwbkjm0274sddpwkj27cvdkwngnka8vdmfm4b2nn7vgsp"; depends=[moments orthopolynom]; };
   PDSCE = derive2 { name="PDSCE"; version="1.2.1"; sha256="1amy4rnvlcfvpma8pqd6wli1j0pjjk49i1qywa43lzgdwgd5dl9v"; depends=[]; };
   PDShiny = derive2 { name="PDShiny"; version="0.1.0"; sha256="0s09sywvy83dj06rkxzyi06wfymwnfpgf3lpgjbb8ps8q3byd4vs"; depends=[shiny]; };
-  PDXpower = derive2 { name="PDXpower"; version="1.0.0"; sha256="144phmshjmm891f8sd8aagm7ql6hwb1i24mbpcfgak61q7anw2xy"; depends=[frailtypack ggplot2 ggpubr nlme survival]; };
   PDtoolkit = derive2 { name="PDtoolkit"; version="1.2.0"; sha256="0g4s5fw0m128kq9dhaa4j76b2islhbbj9a6dqbmcmvlqla0bqm3k"; depends=[dplyr monobin rpart]; };
   PEACH = derive2 { name="PEACH"; version="0.1.1"; sha256="0ciq2cci35rv39pgpp7i30jxlmr85726kh07ww22ryq3bm04ylg8"; depends=[MASS metap mnormt]; };
   PEGroupTesting = derive2 { name="PEGroupTesting"; version="1.0"; sha256="1z863ard0cc2g8ibxnmxhiqhvs53r6b8gpnavnfchm9432ifcbwi"; depends=[]; };
@@ -3742,9 +3808,9 @@ in with self; {
   PGEE = derive2 { name="PGEE"; version="1.5"; sha256="1qcxbqnbpplnfjy83nm9fj9y4abzgbxnsggzx7ix3vb9qs18cdwh"; depends=[MASS mvtnorm]; };
   PGM2 = derive2 { name="PGM2"; version="1.0-1"; sha256="03282pcq7gw47awc2mxjsbz6w3zpqjhqd7fzg8la4p00cd0vvmr4"; depends=[]; };
   PGRdup = derive2 { name="PGRdup"; version="0.2.3.9"; sha256="0z2nnjlaazrmfnjmwhsmhp8h3ifgykmsy6znqvcl77v9565libz9"; depends=[data_table ggplot2 gridExtra igraph stringdist stringi]; };
-  PH1XBAR = derive2 { name="PH1XBAR"; version="0.11.1"; sha256="08dvcbzvb80zcfxlp6xdps2wg5wmjq9p14ybi1wy9fk82b6gqp0d"; depends=[forecast mvtnorm pracma]; };
+  PH1XBAR = derive2 { name="PH1XBAR"; version="0.11.2"; sha256="0ikh8jrf2yq9f444wa5fkiwri5xfc9r19f7862p3s11xmax8dycn"; depends=[forecast mvtnorm pracma]; };
   PHENIX = derive2 { name="PHENIX"; version="1.3.1"; sha256="1gd9ycrwawi81al4f5v559km1112giwqnwvvk8ynj4kdb5bqpyq4"; depends=[ppcor SuppDists]; };
-  PHENTHAUproc = derive2 { name="PHENTHAUproc"; version="1.0.1"; sha256="1kwaz54y1k8paca91pipg9vjy6yyqddz3h7ym99dfggq14di3q6b"; depends=[lubridate rlang terra]; };
+  PHENTHAUproc = derive2 { name="PHENTHAUproc"; version="1.1"; sha256="1bhd147mhv1xj4q6yqz92n8vi6nji093y78pi1jkav1plwx2qf3c"; depends=[lubridate rlang terra]; };
   PHEindicatormethods = derive2 { name="PHEindicatormethods"; version="2.0.2"; sha256="0gjlq8vnfgc5hlscy64ypx08vafwvc2xbk971nznby4v2fkkm1h3"; depends=[broom dplyr purrr rlang tibble tidyr tidyselect]; };
   PHInfiniteEstimates = derive2 { name="PHInfiniteEstimates"; version="2.9.5"; sha256="1j00bb0jk912bkv6yhwnx1f2nr2bw72z9c5y4xby1mphljz059b7"; depends=[coxphf lpSolve nph Rdpack survival]; };
   PHSMM = derive2 { name="PHSMM"; version="1.0"; sha256="1phfdzhfdhyry11plfd8a2lcn3rg02m84brw7fp2lg3hsxjg5ch7"; depends=[Rcpp RcppArmadillo]; };
@@ -3753,10 +3819,10 @@ in with self; {
   PHeval = derive2 { name="PHeval"; version="0.5.4"; sha256="06fy5dm4mnp29f01163rw1d1hyl7rlcp4pfw18s87ckpr931qyma"; depends=[survival]; };
   PICBayes = derive2 { name="PICBayes"; version="1.0"; sha256="1js6zrnyc8v345cds3pypb2g9dd3vvj3bjq159qc113m9ll2xk0b"; depends=[coda MCMCpack survival]; };
   PINMA = derive2 { name="PINMA"; version="1.1-2"; sha256="18sm4j2srwkf1yp487d0hbmmy8max5h9966mq43pf9f2fwa0j4mc"; depends=[MASS metafor]; };
-  PINSPlus = derive2 { name="PINSPlus"; version="2.0.6"; sha256="0mws1064kwfm3csdzpfn4g2pwjasdmx9nz5x28znxv8hwrlgm2zw"; depends=[cluster doParallel entropy FNN foreach impute irlba matrixStats mclust Rcpp RcppArmadillo RcppParallel]; };
+  PINSPlus = derive2 { name="PINSPlus"; version="2.0.7"; sha256="1r4fw3hm0bp3spxkcrwwcmirkp4a8myqwpw8d6cxmz7ns6202860"; depends=[cluster doParallel entropy FNN foreach impute irlba matrixStats mclust Rcpp RcppArmadillo RcppParallel]; };
   PINstimation = derive2 { name="PINstimation"; version="0.1.2"; sha256="0vys27ws0nk0bqf6pxgr689q3rnyx14ar560004g6pi0ii59mbyk"; depends=[coda dplyr furrr future knitr nloptr Rdpack rmarkdown skellam]; };
   PK = derive2 { name="PK"; version="1.3-6"; sha256="0mynn21bmqn2jnaprlfvz0bf3mfjirdrc88n8d28hv74bk1a59vp"; depends=[]; };
-  PKI = derive2 { name="PKI"; version="0.1-12"; sha256="0nidg6l9nrmpyimi502fydy22r247w9i4ngb2xdbxjvfhr17m0xd"; depends=[base64enc]; };
+  PKI = derive2 { name="PKI"; version="0.1-14"; sha256="0rkr3gf5aqkrxi134kwggsyj151nwcwndy8d8q2vfy5rfwcyh960"; depends=[base64enc]; };
   PKLMtest = derive2 { name="PKLMtest"; version="1.0.1"; sha256="0i1kxczlhn95jw1w7vw87svqhpq9j6xi4fhy974yjx9xhax171hq"; depends=[ranger]; };
   PKNCA = derive2 { name="PKNCA"; version="0.10.2"; sha256="1imaj6a8y53hllhfxvmci4qh04pviw0zpwmxm12sqi1nl2kdb5y4"; depends=[checkmate digest dplyr nlme purrr rlang tibble tidyr]; };
   PKPDsim = derive2 { name="PKPDsim"; version="1.3.0"; sha256="1n86zl8gka78anny7fj7l95bamckwkv5ijjiihpcfyj7fmac3y72"; depends=[BH data_table jsonlite magrittr MASS randtoolbox Rcpp stringr]; };
@@ -3794,12 +3860,13 @@ in with self; {
   POMaSPU = derive2 { name="POMaSPU"; version="1.0.0"; sha256="0jz3jgzdykv0xvfw3ix0hbs32as6dp7p5v8bj5nddknx10d0siya"; depends=[MASS matrixStats Rcpp RcppArmadillo]; };
   POPInf = derive2 { name="POPInf"; version="1.0.0"; sha256="1h8fjl87srg2vs4p3pk0az4nr7zzcw08mvw99c6j9j344kzp2p49"; depends=[MASS randomForest]; };
   POSSA = derive2 { name="POSSA"; version="0.6.4"; sha256="02lla3q3wkiw78b5v7pf7ali7s2l6aqc1bbaqf35zyihgiz3598g"; depends=[data_table]; };
-  POSTm = derive2 { name="POSTm"; version="1.3"; sha256="0hnphl0lrblhj83z1ivcn7dnx2igvvbwzfkljbjdag59yqyjx7x0"; depends=[ape CompQuadForm]; };
+  POSTm = derive2 { name="POSTm"; version="1.4"; sha256="0gd6nqm66lms7yscf53qn6ny6rqhqa6c5l256867q52xlgcnjx35"; depends=[ape CompQuadForm]; };
   POSetR = derive2 { name="POSetR"; version="1.1.4"; sha256="00qz9z9mwbgvxh7775il2avrxdn116l8v31z3bksifvy81krw95a"; depends=[igraph Rcpp Rdpack]; };
   POT = derive2 { name="POT"; version="1.1-10"; sha256="1gd76xc4gs7v3gcqaidnchm60gd2w7x0p6sqrvy38sfr4wbazz1s"; depends=[]; };
   POUMM = derive2 { name="POUMM"; version="2.1.7"; sha256="0pwa97sffb571nfqnbc35dj9lr8z07wjsjnwibj9dhj2dr5b2cfp"; depends=[adaptMCMC ape coda data_table foreach ggplot2 lamW Rcpp]; };
   POV = derive2 { name="POV"; version="0.1.4"; sha256="0mqhi410rwpgr6x5h57wqg0f5k01vva0c280zlfpmf8php121x7j"; depends=[broom formula_tools]; };
   PP = derive2 { name="PP"; version="0.6.3-11"; sha256="1z7v5jiljm534lhr92vz9z3cafwcp6hdxyrr1nhli2arxc1nin76"; depends=[Rcpp]; };
+  PPCDT = derive2 { name="PPCDT"; version="0.1.0"; sha256="0i3j959i7rd5k1qkj1lknvsbksl15ir06avcffai4pbnpx7bl8dm"; depends=[MASS]; };
   PPCI = derive2 { name="PPCI"; version="0.1.5"; sha256="141811iq0g2rq7lxpz9a44kyjfylj85yqgcjq7b23xfg2wbcp8dd"; depends=[rARPACK]; };
   PPLasso = derive2 { name="PPLasso"; version="2.0"; sha256="11xqpq7s8j1vrsf0x31pvk861wz4d3yg7a4gcwv43s3w5dxbljls"; depends=[cvCovEst genlasso ggplot2 glmnet MASS]; };
   PPMR = derive2 { name="PPMR"; version="1.0"; sha256="07fky5xc1dmmn23wwdjm46c86i7q20dv5f2147828v52hhky873g"; depends=[Rcpp RcppArmadillo]; };
@@ -3808,11 +3875,11 @@ in with self; {
   PPRL = derive2 { name="PPRL"; version="0.3.8"; sha256="1m49n7kl9675hrlh6vqq69sp7bdiv4fwlncqpp58kz67jk1ypnf0"; depends=[Rcpp settings]; };
   PPSFS = derive2 { name="PPSFS"; version="0.1.0"; sha256="180brwqcs2qjh01a1qwdy2a8g19scn4mxzc3s6pw8gyl2r3fzxi7"; depends=[brglm2 Rcpp RcppArmadillo]; };
   PPTcirc = derive2 { name="PPTcirc"; version="0.2.3"; sha256="07py7zdl7nhc1a425mz7cmgl25k0k9fdid754pnkffn5n5xkbca1"; depends=[circular progress]; };
+  PPbigdata = derive2 { name="PPbigdata"; version="1.0.0"; sha256="0v9p3mrxivq4ragi6039zgyxp9ksx3g3f6bksy9z08f8vyp1m1a8"; depends=[datanugget dplyr gtools magrittr MASS mclust rstiefel tourr weights]; };
   PPforest = derive2 { name="PPforest"; version="0.1.3"; sha256="1byn2l91nws91xgjjal610vv4yns12z861rq3iks4kv4giwgdfq1"; depends=[doParallel dplyr magrittr plyr Rcpp RcppArmadillo tibble tidyr]; };
   PPtreeViz = derive2 { name="PPtreeViz"; version="2.0.4"; sha256="008hlgi56p9wydpsb2f1dxi4slml7p417c34lw00hivbl53d6x97"; depends=[ggplot2 gridExtra partykit Rcpp RcppArmadillo]; };
   PPtreeregViz = derive2 { name="PPtreeregViz"; version="2.0.5"; sha256="0yg67fg4rjvpwp1xvznsbv635wmf6jvhp38irffccx915qvj7r51"; depends=[DALEX data_table dplyr ggplot2 magrittr PPtreeViz Rcpp RcppArmadillo reshape2 shapr tibble tidyr]; };
   PQLseq = derive2 { name="PQLseq"; version="1.2.1"; sha256="0lyynzvv7n1igzfrw52021bnxprqcm2hjxmlrsxkx4898ca46g60"; depends=[doParallel foreach Matrix Rcpp RcppArmadillo]; };
-  PRANA = derive2 { name="PRANA"; version="1.0.4"; sha256="1i9gwz4dlsz9w0z3d995w6s6f10gwvwhyb77agbmmwym1fd2k2wh"; depends=[dnapath dplyr minet robustbase]; };
   PRDA = derive2 { name="PRDA"; version="1.0.0"; sha256="1lklwfakd54ylm5gizq36ng6498c2izapsz9yz2a95cjf860rr23"; depends=[MASS pbapply Rcpp RcppArmadillo]; };
   PRECAST = derive2 { name="PRECAST"; version="1.6.5"; sha256="17qk40j2by7bjc0r2wnyfca4drpzbrxp0m5r10a7494avqknjjk0"; depends=[colorspace cowplot dplyr DR_SC ggplot2 ggpubr ggthemes GiRaF gtools MASS Matrix mclust patchwork pbapply purrr Rcpp RcppArmadillo scales scater Seurat]; };
   PREPShiny = derive2 { name="PREPShiny"; version="0.1.0"; sha256="0zsg07y6nhp2lma3pdz8xd981y3mh8k21il5jv0inma1d1xr4g3f"; depends=[dplyr psycho rmarkdown shiny]; };
@@ -3823,8 +3890,9 @@ in with self; {
   PRISMA = derive2 { name="PRISMA"; version="0.2-7"; sha256="0sk2d07m8rhipa0kdbaf8ngryda6f1ihp5akpnyw2llajf0x8as5"; depends=[ggplot2 gplots Matrix]; };
   PRISMA2020 = derive2 { name="PRISMA2020"; version="1.1.1"; sha256="0jhf1kgcc29b8gsb42b3d5hyfzsa13lz9qgs104ynrzld94kqqwf"; depends=[DiagrammeR DiagrammeRsvg DT htmltools htmlwidgets rio rsvg scales shiny shinyjs stringr webp xml2 zip]; };
   PRISMAstatement = derive2 { name="PRISMAstatement"; version="1.1.1"; sha256="1vvab8h71g8c910s2h4d12qafqdncfzmsh5f1b4m79plpqi3s49z"; depends=[DiagrammeR]; };
+  PRNG = derive2 { name="PRNG"; version="0.0.2"; sha256="1x1nv5pfz521jkwsnafc55d4mlkp5yfy3ywya7y8p1qjsj0bisfx"; depends=[]; };
   PROBShiny = derive2 { name="PROBShiny"; version="0.1.0"; sha256="17p6pb8nwq36ha697f2lf8nwzj5cylmh8rdzyag49ks5hi9painb"; depends=[epitools LaplacesDemon rmarkdown rpivotTable shiny shinyMatrix]; };
-  PROJ = derive2 { name="PROJ"; version="0.4.5"; sha256="0iq33v6z0plz1q9vgsaa3lryfdc7xawny34r8bk65kx35a32zvxb"; depends=[]; };
+  PROJ = derive2 { name="PROJ"; version="0.5.0"; sha256="16wcr1p2rp9d5y14n9km0d24zhvja3qj5d34lx9mv9l969licqzs"; depends=[lifecycle wk]; };
   PROMETHEE = derive2 { name="PROMETHEE"; version="1.1"; sha256="0r53mb9ndwm4yli3h50cfamsjzpq6b67g72mszm7lpbqpj58wqw6"; depends=[lpSolve]; };
   PROSPER = derive2 { name="PROSPER"; version="0.3.3"; sha256="1wdrdqii7d4yfky6706n9xjmabnz99jjja1c80nbj3fp8idsbli5"; depends=[data_table]; };
   PROreg = derive2 { name="PROreg"; version="1.3"; sha256="0x3gaadd9nd5mcs6l2jv0874afps13qgq81bqwcg1hhgjzy2k4mm"; depends=[car fmsb Matrix matrixcalc numDeriv RColorBrewer rootSolve]; };
@@ -3834,7 +3902,7 @@ in with self; {
   PRP = derive2 { name="PRP"; version="0.1.1"; sha256="1q4idlk2crxsd841b203hkcyp9glqhsg83liddqlxixxih7rkzp1"; depends=[mvtnorm]; };
   PRROC = derive2 { name="PRROC"; version="1.3.1"; sha256="1m28h8pcd78049lz2qixhkcr9h5b3jik3maqzfbvq9y58z71i4a7"; depends=[]; };
   PRSPGx = derive2 { name="PRSPGx"; version="0.3.0"; sha256="1vvclrp6h63l471qvgwkdhs52lrkapz0v90gwld89zwim6pnh7av"; depends=[bdsmatrix bigparallelr bigsnpr bigsparser bigstatsr gglasso GIGrvg glmnet lmtest Matrix matrixcalc MCMCpack mvtnorm propagate Rfast SGL]; };
-  PRSim = derive2 { name="PRSim"; version="1.4-4"; sha256="17aqydzv220q15mhn1sir5ly5wzmv7sx1ckmk9fwr97lnf0pdh09"; depends=[goftest lmomco mev splus2R wavScalogram]; };
+  PRSim = derive2 { name="PRSim"; version="1.5"; sha256="1imy9blzdk2y4xzmsb86g49zzm59cpi2xrh3bgpw20611a03505d"; depends=[goftest lmomco mev splus2R wavScalogram]; };
   PRTree = derive2 { name="PRTree"; version="0.1.0"; sha256="04200m3bcqlb9q5rpgnd1h6nwbaxhb09ciwrpfss1airzhip5505"; depends=[]; };
   PReMiuM = derive2 { name="PReMiuM"; version="3.2.13"; sha256="1qamq7glc0dag1ps0dr4f931ij9jk91lj5h1k2g0yd0h3kqamawn"; depends=[BH cluster data_table gamlss_dist ggplot2 plotrix Rcpp RcppEigen sf spdep]; };
   PResiduals = derive2 { name="PResiduals"; version="1.0-1"; sha256="0mq16cs07hw5c9jj08vpgbb15xvjvz9h0npsbqphiibsb6ca5fwb"; depends=[Formula MASS rms SparseM]; };
@@ -3857,13 +3925,14 @@ in with self; {
   PScr = derive2 { name="PScr"; version="1.1"; sha256="0cbmb1z4iwxw82m3f3y5iyr2hd1mgqsrvn7ip4rmsqy3zakyh06s"; depends=[pracma survival VGAM]; };
   PSinference = derive2 { name="PSinference"; version="0.1.0"; sha256="19y3pbb75rkgx9dlykrq6aa0pbn968d83bsl1d3qlnb06b6gncx6"; depends=[MASS]; };
   PStrata = derive2 { name="PStrata"; version="0.0.5"; sha256="1nzvspzihxwra0hzyc8cfnml19xz26dam23y2q09794dpg5a7pcf"; depends=[abind dplyr ggplot2 lme4 purrr rstan stringr]; };
-  PSweight = derive2 { name="PSweight"; version="1.1.8"; sha256="0vawkkgm72s17cjfww9175dyr100lxdv4gf35p2lz8wcnbsklnv5"; depends=[gbm ggplot2 lme4 MASS nnet numDeriv SuperLearner]; };
+  PSweight = derive2 { name="PSweight"; version="1.2.0"; sha256="1p0iq95jwhh6j3gw3zd8m58rryy8j33k2lrzypb5qzhwrgx2i41v"; depends=[gbm ggplot2 lme4 MASS nnet numDeriv SuperLearner]; };
   PTAk = derive2 { name="PTAk"; version="2.0.0"; sha256="1xnjils6i36mpzzg7lpi1bpq90mm4gwp4szk6fcg9i4dvkrznfki"; depends=[tensor]; };
   PTE = derive2 { name="PTE"; version="1.7"; sha256="1azkrij4kfmvp03lnzm88gwgvz8g54jq94j0qg8ynxvyjzrppc98"; depends=[doParallel foreach survival]; };
   PTERP = derive2 { name="PTERP"; version="1.0"; sha256="1mzb3lm1wrbya5lmgndrkz5arwpz5zr4gfl5bnvcbs0g74xlsa44"; depends=[MASS mvtnorm survival]; };
   PTSR = derive2 { name="PTSR"; version="0.1.2"; sha256="0zwqw8zdp0p05nm64yg658iqfbj26n3v2py8r5m6g1sjispm5whf"; depends=[actuar extraDistr numDeriv SuppDists]; };
   PTXQC = derive2 { name="PTXQC"; version="1.1.1"; sha256="0855xir9b604lhhymxf3rhin2sikxvg25zbgd5gvwgc5n3114d3m"; depends=[data_table ggdendro ggplot2 gridExtra gtable htmlTable knitr magrittr plyr R6 R6P RColorBrewer reshape2 rmarkdown rmzqc seqinr UpSetR xml2 yaml]; };
   PTwins = derive2 { name="PTwins"; version="0.1.1"; sha256="166mc7w52n9d3n72h5jvvhbki87prkils3yigdf57dn9pyixrd66"; depends=[]; };
+  PUGMM = derive2 { name="PUGMM"; version="0.1.0"; sha256="03bwg4mb0kc708plqzym0xw5giai45nk601fs53gfnad57y70wdp"; depends=[ClusterR doParallel foreach igraph MASS Matrix mclust mcompanion ppclust]; };
   PUMP = derive2 { name="PUMP"; version="1.0.3"; sha256="1s1aqma0p32y9db3xf9yrfgg12i3skdgzcvw3kg9s5z1msx4gax7"; depends=[dplyr future ggplot2 ggpubr glue lme4 magrittr mvtnorm purrr randomizr readr rlang stringr tibble tidyr tidyselect]; };
   PUPAIM = derive2 { name="PUPAIM"; version="0.3.1"; sha256="1sypmlpjsdn2rm6pci64xv6ibixz43zhjaw0k8q9jp3cajbb11qh"; depends=[ggplot2 Metrics nls2]; };
   PUPAK = derive2 { name="PUPAK"; version="0.1.1"; sha256="1274z53qclddww90qgnl9vwdnxv2p66lclmq9fixchnpgm9xc6qw"; depends=[ggplot2 Metrics nls2 segmented]; };
@@ -3874,10 +3943,11 @@ in with self; {
   PVR = derive2 { name="PVR"; version="0.3"; sha256="0pcnazkiwmicr3k6k70r8skqk0pd46fcqhhxghawxjs4slgnygkj"; depends=[ape MASS splancs]; };
   PVplr = derive2 { name="PVplr"; version="0.1.2"; sha256="1hrd2r3m2qy8r4wjacbhpqsmlchdjqk6iyydiy5k1ccrmv8da74a"; depends=[broom cluster dplyr forecast ggplot2 magrittr minpack_lm purrr rlang scales segmented stlplus tidyr zoo]; };
   PWEALL = derive2 { name="PWEALL"; version="1.3.0.1"; sha256="1p6wq7khpzs6cw2chswp17bq383ppm6q2ia9p6y1gggrazsymdvg"; depends=[survival]; };
+  PWEV = derive2 { name="PWEV"; version="0.1.0"; sha256="1jl63wp6nl2zyznc63zcb97yi1fvzj4mic4ri0ni515s0nb5jd5b"; depends=[Metrics rugarch rumidas WeightedEnsemble xts zoo]; };
   PWEXP = derive2 { name="PWEXP"; version="0.5.0"; sha256="1xvpabfi04alhmm640bdlgx1al19nrs43qmichpcv3sllw9bc74x"; depends=[doSNOW fastmatch foreach segmented survival]; };
   PWIR = derive2 { name="PWIR"; version="0.0.3"; sha256="05f4mj8id8ikfz63c8c1lkbxl7s1b2q5xri8iicn1xv2m3w89p2v"; depends=[bibliometrix igraph progressr]; };
   PaLMr = derive2 { name="PaLMr"; version="0.2.0"; sha256="1i1kzd41payn0vpplnj5wdf83y00ga5r4y86vc38xkpxymaa7i4r"; depends=[httr jsonlite]; };
-  PaRe = derive2 { name="PaRe"; version="0.1.12"; sha256="1axxmqnhw0aw1g3985ld5ahf6qk954g7xv1ddrdavvyh8601l7lv"; depends=[checkmate cli cyclocomp desc DiagrammeR DiagrammeRsvg dplyr git2r glue igraph lintr magrittr pak R6 rmarkdown rsvg stringr]; };
+  PaRe = derive2 { name="PaRe"; version="0.1.13"; sha256="1p65p3anwyk1zg82lir7wqvl9zxi7p4hjb70kvfhj06p1n8f653c"; depends=[checkmate cli cyclocomp desc DiagrammeR DiagrammeRsvg dplyr git2r glue igraph lintr magrittr pak R6 rmarkdown rsvg stringr]; };
   Pade = derive2 { name="Pade"; version="1.0.6"; sha256="0bjkr3yh1kxymyrfzi9amjznxgqc2xx69zhs2immn4sk1w3xzvzp"; depends=[]; };
   PairViz = derive2 { name="PairViz"; version="1.3.6"; sha256="12rg1ml401c9zz1q6qy2ghs18x9vdb8smrkb2bcp34afbg5dvdd3"; depends=[graph gtools TSP]; };
   PairedData = derive2 { name="PairedData"; version="1.1.1"; sha256="07y5fd4fkwfp0lbacf41ya8cn7x4n1haxl0cln9iibjffc1mbr5q"; depends=[ggplot2 gld lattice MASS mvtnorm]; };
@@ -3893,12 +3963,13 @@ in with self; {
   PakPMICS2018hh = derive2 { name="PakPMICS2018hh"; version="0.1.0"; sha256="0wkjxy8qkndhnyf1w03cr3g7s03cm60yn0lxn5j6hvh019b28nmz"; depends=[tibble]; };
   PakPMICS2018mm = derive2 { name="PakPMICS2018mm"; version="0.1.0"; sha256="08f2n134q545kwysy705mgsy6319ns4l9pwxldlxvbzq0lha4hf9"; depends=[tibble]; };
   PakPMICS2018mn = derive2 { name="PakPMICS2018mn"; version="0.1.0"; sha256="1r5cn1mx7i7hif64lhfcdz4xqqfj3j45i092370xhhi19pqq217n"; depends=[tibble]; };
-  PamBinaries = derive2 { name="PamBinaries"; version="1.8.0"; sha256="1l89vk9jhlfghk89945815ygwwdjmv5mkibb2cz7307vy6jl60ka"; depends=[dplyr ggplot2]; };
+  PamBinaries = derive2 { name="PamBinaries"; version="1.9.0"; sha256="1anxn06l714ila4kjdbvrmfnmg7k7rwbscvzdd0z768h84s34v19"; depends=[dplyr ggplot2]; };
   PanCanVarSel = derive2 { name="PanCanVarSel"; version="0.0.3"; sha256="06xkzg2kvyr6ivm1z71x2pk20j37h36sx6kf4kmc8q50cq73k9jl"; depends=[Matrix msm mvtnorm smoothmest]; };
   PanJen = derive2 { name="PanJen"; version="1.6"; sha256="18cl9rls98v286kk6lyxxws3w59zpzgmqi5250gdgcf71xy2lhvm"; depends=[mgcv]; };
   Pandora = derive2 { name="Pandora"; version="24.2.0"; sha256="0zqsqc1wqmps3dd79w4qwxyl4idmrl1zn24s5nmsazk5l1i984p1"; depends=[curl dplyr jsonlite magrittr openxlsx readODS readr readxl rlang yaml]; };
   PanelCount = derive2 { name="PanelCount"; version="2.0.1"; sha256="07dn8a86q51gvy4xkqz2mfmqkc59cf4zcwcqrw366b791y5g182y"; depends=[MASS Rcpp RcppArmadillo statmod]; };
-  PanelMatch = derive2 { name="PanelMatch"; version="2.0.1"; sha256="07c2zghrb1ykq08qjkpc86j64b4w04kk0hxfdxr60bzsvgnb0kg3"; depends=[CBPS data_table ggplot2 igraph MASS Matrix Rcpp RcppArmadillo RcppEigen]; };
+  PanelMatch = derive2 { name="PanelMatch"; version="2.2.0"; sha256="14y6msvs4h3xdpi83yi6q4a58xqbf1nxs5m0wbbzszzj7jdjiq79"; depends=[CBPS data_table doParallel foreach ggplot2 MASS Matrix Rcpp RcppArmadillo RcppEigen]; };
+  PanelTM = derive2 { name="PanelTM"; version="1.0"; sha256="1x9zzs88cprwjlwwgnfvv7fmx12p57s5wwxsgjch8i11fzyjkw48"; depends=[pracma]; };
   PantaRhei = derive2 { name="PantaRhei"; version="0.1.2"; sha256="0lv04aa70yd5gr0zfh2gmah4d4h3kw0lym6284akcvll8mhdi8dd"; depends=[]; };
   ParBayesianOptimization = derive2 { name="ParBayesianOptimization"; version="1.2.6"; sha256="0g5i4908fl2j1a4jfsg1xs4q92mc29zp8dyf52a370ki2512w6h1"; depends=[crayon data_table dbscan DiceKriging foreach ggplot2 ggpubr lhs]; };
   ParDNAcopy = derive2 { name="ParDNAcopy"; version="2.0"; sha256="017xwznhfibi8kp0ifww02c0qcq0vxs06rjww4kcp2bvdmld8kc4"; depends=[DNAcopy]; };
@@ -3907,11 +3978,12 @@ in with self; {
   ParamHelpers = derive2 { name="ParamHelpers"; version="1.14.1"; sha256="088sl3az4ysq8cyw82brdn9xm5yy7rqskxih462d1m5hi62gyl04"; depends=[backports BBmisc checkmate fastmatch]; };
   Pareto = derive2 { name="Pareto"; version="2.4.5"; sha256="19mawxs743i7lb9inh51xdfpx0s72cvcw4iylr250r17r6qp4y8g"; depends=[]; };
   ParetoPosStable = derive2 { name="ParetoPosStable"; version="1.1"; sha256="1fwji5wrhbxr089dll812csamvb5q2pxn1607rpirarifgfbj28m"; depends=[ADGofTest doParallel foreach lmom]; };
+  Paris2024Colours = derive2 { name="Paris2024Colours"; version="0.1.2"; sha256="12xycmqc9hr12db7w9499l89gmww5j0vs6nhyzsirkbg8vvq8qql"; depends=[]; };
   PartCensReg = derive2 { name="PartCensReg"; version="1.39"; sha256="0blzv57cbxqghkz4fc3plvrcw80g0kx17dzmajkfv598m1wm6hc8"; depends=[Matrix optimx ssym]; };
-  PartialNetwork = derive2 { name="PartialNetwork"; version="1.0.3"; sha256="0s551krji472qrwaq2a7s06l42kzrbhx7w9g5ijfn5q69i8ns9x3"; depends=[abind doParallel doRNG foreach Formula formula_tools Matrix Rcpp RcppArmadillo RcppEigen RcppNumerical RcppProgress]; };
+  PartialNetwork = derive2 { name="PartialNetwork"; version="1.0.4"; sha256="010q3d0r40kszdsyc6bish7vrzl98zxi47ppbnv5n86p0n3dckjn"; depends=[abind doParallel doRNG foreach Formula formula_tools Matrix Rcpp RcppArmadillo RcppEigen RcppNumerical RcppProgress]; };
   Partiallyoverlapping = derive2 { name="Partiallyoverlapping"; version="2.0"; sha256="0pb0digyigqyzb0zqikgz002kqf1xprcjhxr62a7iqbzy1yycayf"; depends=[]; };
-  PatientProfiles = derive2 { name="PatientProfiles"; version="0.6.2"; sha256="1dmvfrdxgfbwdkb940igskf72wdsl66px4hqbdg5d0j73dxclgcn"; depends=[CDMConnector checkmate cli dplyr gt lifecycle lubridate magrittr omopgenerics rlang stringr tidyr visOmopResults]; };
-  Patterns = derive2 { name="Patterns"; version="1.4"; sha256="12ci26i0ks23ff11g3pmsns5f3crnrac2hnlqc2pglhrv180m37r"; depends=[abind gplots igraph jetset lars lattice limma Mfuzz movMF nnls plotrix repmis SelectBoost tnet VGAM WGCNA]; };
+  PatientProfiles = derive2 { name="PatientProfiles"; version="1.1.0"; sha256="0f2qnf150h47ld5n2718r6iyxkb5hi2r6z3m7krdbr1i4fd2h5w2"; depends=[CDMConnector checkmate cli dplyr lifecycle magrittr omopgenerics purrr rlang stringr tidyr visOmopResults]; };
+  Patterns = derive2 { name="Patterns"; version="1.5"; sha256="1b4krl9gcwrxrslqyc0hhc6kqc7q34i70pyx9yb7xkdixs6dkr95"; depends=[abind cluster e1071 gplots igraph jetset lars lattice limma Mfuzz movMF nnls plotrix repmis SelectBoost tnet VGAM WGCNA]; };
   PdPDB = derive2 { name="PdPDB"; version="2.0.1"; sha256="05aqg0rqrnlmvjxa32ms1vywgwhw5zlfkyf2ij0fn06rp8l2z3lv"; depends=[dendextend plyr tseries]; };
   Peacock_test = derive2 { name="Peacock.test"; version="1.0"; sha256="0ypvwywipyh8lm8xkazsfjgjpvvyi2g8kid63qff11372p33m6xs"; depends=[]; };
   PeakError = derive2 { name="PeakError"; version="2023.9.4"; sha256="07hidwjf0pgahdw12jlvv2cygfvizv1zjir49nmra01zm1yr5k62"; depends=[]; };
@@ -3927,6 +3999,7 @@ in with self; {
   PepSAVIms = derive2 { name="PepSAVIms"; version="0.9.1"; sha256="0m4jrq6wcjy0k80gvrnm9f7kvi1ifx9182xfq0psyaxpj0ggvzij"; depends=[elasticnet]; };
   Peptides = derive2 { name="Peptides"; version="2.4.6"; sha256="199bbfcdmy8mipjchsyxwxa3jssy60n9n9j7hcsab30kwjyq22zm"; depends=[Rcpp]; };
   PerFit = derive2 { name="PerFit"; version="1.4.6"; sha256="13917nvxii8pg69h1wcpmlv45sdrdldd3zxdrypr4mn456ff74k4"; depends=[fda Hmisc irtoys ltm MASS Matrix mirt]; };
+  PerMat = derive2 { name="PerMat"; version="0.1.0"; sha256="0ad9xdi1w7zis2ks1jvl4l54rfcdgayipydjcqz5hfq6qkz5k31y"; depends=[]; };
   Perc = derive2 { name="Perc"; version="0.1.6"; sha256="1nwbj56m7pxrg8dyv36501b0lvpq8gbhcr07vs4nps8n3rqwwg81"; depends=[]; };
   PerfMeas = derive2 { name="PerfMeas"; version="1.2.5"; sha256="13yjk0kwpbsqwl056hzf0zj2br1mk4faqcn1whdfxmq348c14hjb"; depends=[graph limma RBGL]; };
   PerformanceAnalytics = derive2 { name="PerformanceAnalytics"; version="2.0.4"; sha256="0ci26hsj4wnw9g0mh4vrn0cg986cpcpx169rvw6v6rbnjxq718bq"; depends=[quadprog xts zoo]; };
@@ -3937,9 +4010,8 @@ in with self; {
   PersianStemmer = derive2 { name="PersianStemmer"; version="1.0"; sha256="1dpfkafijg7g7hzka93l1ymq5rcnjsfgvkvbpdx3vjnid05kh4v1"; depends=[]; };
   PersomicsArray = derive2 { name="PersomicsArray"; version="1.0"; sha256="1d5gxd65b01m13rgbdhk6w3l43vqcbdk0s1pbgc8h6cnipj55z0i"; depends=[jpeg raster stringr tiff]; };
   PesticideLoadIndicator = derive2 { name="PesticideLoadIndicator"; version="1.3.1"; sha256="109pasc3q0zwwp2pamx1pqz1rvhw269bnbqdh79xy77w82jpma15"; depends=[dplyr magrittr readxl rlang stringr]; };
-  Petersen = derive2 { name="Petersen"; version="2023.12.1"; sha256="0wn3m34qr9nr0v3pp0yqi2z2hpnivgfn2dw5ajd4l32n136psv1h"; depends=[AICcmodavg bbmle BTSPAS formula_tools ggplot2 MASS Matrix msm numDeriv plyr reshape2 rlang SPAS stringr tidyr]; };
+  Petersen = derive2 { name="Petersen"; version="2024.6.1"; sha256="03xhsmlgqgp037ccy2q2a65cspcy1qxm1vzb6yljhv61r60zfqjz"; depends=[AICcmodavg bbmle BTSPAS formula_tools ggplot2 MASS Matrix msm numDeriv plyr reshape2 rlang SPAS stringr tidyr]; };
   PetfindeR = derive2 { name="PetfindeR"; version="2.1.0"; sha256="1pb3mqv4pxl971j210m7vwhz9qqbhb7l5fpmb1vjwkc5hx11zh9l"; depends=[R6]; };
-  PhViD = derive2 { name="PhViD"; version="1.0.8"; sha256="038pw24sb8ja8pbbmj05rww6413i2ljybb2dxwgrpffv22aqawmc"; depends=[LBE MCMCpack]; };
   PhageCocktail = derive2 { name="PhageCocktail"; version="1.0.3"; sha256="0lr1gnwpaqrf8ny5ssx2cjv8hi6q2ilmr7qif3jl9agh4w0nkp89"; depends=[bipartite factoextra readxl RJSONIO smerc stringr]; };
   Phase123 = derive2 { name="Phase123"; version="2.1"; sha256="0bz867wsnrflzlzrql1vgacymx70rb9wik9jw3g34i2vigpl8x8i"; depends=[Rcpp RcppArmadillo survival]; };
   Phase12Compare = derive2 { name="Phase12Compare"; version="1.5"; sha256="0n9rjgdllpnj451a8d4p8x3mjf23czcmk7cn1c9v3l7mg4jn18h2"; depends=[mvtnorm Rcpp RcppArmadillo]; };
@@ -3954,11 +4026,11 @@ in with self; {
   PhilipsHue = derive2 { name="PhilipsHue"; version="1.0.0"; sha256="03ghwi14jsz1ff70dl30p6w0d9v29kc70kip2bcinxm6v4l2q383"; depends=[httr pkgload purrr yaml]; };
   PhitestR = derive2 { name="PhitestR"; version="0.2.0"; sha256="113f176q9kaghmqivqcg9l6zczx7dmawhybb8hwb2xpb0mhcgh4l"; depends=[fitdistrplus]; };
   PhotosynQ = derive2 { name="PhotosynQ"; version="0.2.3"; sha256="10n06sfbwv5w96m3yv5ws7yddfv2n8pp1rc730870wiavl6cbn63"; depends=[getPass httr]; };
-  PhyInsight = derive2 { name="PhyInsight"; version="0.1.0"; sha256="1r7y10g2vriy360f7j8agmjw5sgzm2vr2dypj8v78ssklb6apd08"; depends=[ape Biostrings bold DECIPHER]; };
   PhySortR = derive2 { name="PhySortR"; version="1.0.8"; sha256="19426xjdii74qds0wmq5sa88zys81nyqb9lvf9pfihbjgrjr770a"; depends=[ape phytools]; };
   PhylogeneticEM = derive2 { name="PhylogeneticEM"; version="1.7.0"; sha256="1yxg13jm6jhciip76wh9936d10hxhjqdvlj15f249jzn7vfs6pyx"; depends=[ape capushe foreach gglasso glmnet LINselect MASS Matrix plyr Rcpp RcppArmadillo robustbase]; };
   PhysActBedRest = derive2 { name="PhysActBedRest"; version="1.1"; sha256="0ww9gcni9f0mwya1d3v45wazrss7lq8b75xcp4fb4kxwbh9s35kw"; depends=[chron lubridate stringr]; };
   PhysicalActivity = derive2 { name="PhysicalActivity"; version="0.2-4"; sha256="0b27prkv3x6v2afz0y53ccs9scibpc7nj54n0hpd9fgn1wyg4c40"; depends=[]; };
+  PhytosanitaryCalculator = derive2 { name="PhytosanitaryCalculator"; version="1.1.1"; sha256="1545xy338wanrkpy55ji4ap9wf7pldrb07pmhxcmhp73w3l82r2c"; depends=[AcceptanceSampling shiny]; };
   PieGlyph = derive2 { name="PieGlyph"; version="0.1.0"; sha256="1wg8b0zsgcsgrmx5yz0sj6bifk76zr085lac3xlkrxqnxwxvlk0n"; depends=[cli dplyr forcats ggforce ggplot2 plyr rlang scales tidyr]; };
   PieceExpIntensity = derive2 { name="PieceExpIntensity"; version="1.0.4"; sha256="023hq0gg1vi0j3yf8p5lisgs8wfp5qwyd4akxxzx7wad2985gxb3"; depends=[Rcpp RcppArmadillo]; };
   Pijavski = derive2 { name="Pijavski"; version="1.0.3"; sha256="0jspc19fn1mqv3zjr89sy7rqbbyjk3ij3rhrg2dsw167w63lpykx"; depends=[Rcpp]; };
@@ -3970,7 +4042,7 @@ in with self; {
   PlasmaMutationDetector2 = derive2 { name="PlasmaMutationDetector2"; version="1.1.11"; sha256="1dcmw6i488gxqqn52r0n9aclnz41ba2gc99vf6ac1wx5flcfm3l9"; depends=[GenomicRanges ggplot2 robustbase Rsamtools rtracklayer S4Vectors SummarizedExperiment VariantAnnotation]; };
   Plasmidprofiler = derive2 { name="Plasmidprofiler"; version="0.1.6"; sha256="10m3knmz0596rm30ncyfprar6l42bjm7r34n4pjz1biqmiz6yz6k"; depends=[ape dplyr gdata ggdendro ggplot2 gridExtra gtable htmlwidgets magrittr plotly plyr RColorBrewer reshape2 stringr]; };
   PlatformDesign = derive2 { name="PlatformDesign"; version="2.1.4"; sha256="0nnvi40lq6rxjxvf3p5mdn9gp4kp8nr73yzxgrpbg125cqf23vhm"; depends=[mvtnorm]; };
-  Platypus = derive2 { name="Platypus"; version="3.5.0"; sha256="03ymh011wyhlc4pisnrac1nijfw08gc793dj2pzwxzkcwk7g3q99"; depends=[Biostrings cowplot dplyr ggplot2 ggtree jsonlite knitr magrittr Matrix plyr reshape2 seqinr Seurat SeuratObject stringr tibble tidyr useful]; };
+  PlayerChart = derive2 { name="PlayerChart"; version="1.0.0"; sha256="1rvy8jq422c6yrx0wyvsrqkdvcffwn7lpca2k17yzwiidd5w8l1a"; depends=[dplyr ggplot2 ggtext magrittr tidyr]; };
   PlayerRatings = derive2 { name="PlayerRatings"; version="1.1-0"; sha256="04hdjv1gb5b3zym2ryjpqrqhs823nlkmbimfnxw1cfn921ljjgpj"; depends=[]; };
   PlotBivInvGaus = derive2 { name="PlotBivInvGaus"; version="0.1.0"; sha256="1qgrg43ry9carhn49zbm24gy77k1z7xnvgmr78xwg6b6j1v6xd8d"; depends=[plotly]; };
   PlotContour = derive2 { name="PlotContour"; version="0.1.0"; sha256="0jjzrxmx1k1s8fyfs9m5a864pmvjh2bdklbhrc3nbhb0c7wd3h9z"; depends=[KernSmooth MASS]; };
@@ -3997,6 +4069,7 @@ in with self; {
   PolicyPortfolios = derive2 { name="PolicyPortfolios"; version="0.3"; sha256="1syycldfzwymymhai0ifli93iv3p8p6xbyk25mvln6zgb43iind1"; depends=[dplyr ggplot2 ineq mgcv reshape2 vegan]; };
   PolyHaplotyper = derive2 { name="PolyHaplotyper"; version="1.0.1"; sha256="1sc1n42h78nyv004ddykvh1ljjczyiv5rl9sgxhi207lql1zd3wa"; depends=[XML]; };
   PolyPatEx = derive2 { name="PolyPatEx"; version="0.9.2"; sha256="1z1hwvsw7b6cz5xfy35a5ldrzb3fhp3swiyz56v1zqblpsaz8n9g"; depends=[gtools]; };
+  PolyTree = derive2 { name="PolyTree"; version="0.0.1"; sha256="0np5v1255crfp1x7613rdzgkzkm64ikkjm67xrsncijr202yh1gq"; depends=[FOCI igraph]; };
   PolyTrend = derive2 { name="PolyTrend"; version="1.2"; sha256="17n6phkzgaqrlzs8x1l5smnij1gxfklr0zj9pqfy5n8xqnpwssm5"; depends=[]; };
   Polychrome = derive2 { name="Polychrome"; version="1.5.1"; sha256="0hyi02m2jpdhk1ky6ihz6dv5pwqwjwk4csjim2qr8ywx8midmrvg"; depends=[colorspace scatterplot3d]; };
   PolycrossDesigns = derive2 { name="PolycrossDesigns"; version="1.1.0"; sha256="0qhjy4pkksg45c6i3axwcnqa5miz4ky52w9qngf1d1x62lckb29i"; depends=[]; };
@@ -4008,7 +4081,7 @@ in with self; {
   PooledCohort = derive2 { name="PooledCohort"; version="0.0.2"; sha256="16n65jm1w2hxd1lrn3mj1z31ydgjc5jjhc4ffjscajhc140vf7yb"; depends=[glue]; };
   PooledMeanGroup = derive2 { name="PooledMeanGroup"; version="1.0"; sha256="0i9s7qskjnji3mf6clsi69rnni57v8cysgr9gh3hvxjzlf1sq8y7"; depends=[]; };
   PopED = derive2 { name="PopED"; version="0.6.0"; sha256="0s8lr17s6w8isjig4z8jzgpnpsb1kg98d32y7kslbwzl08cbnza0"; depends=[boot codetools dplyr ggplot2 gtools magrittr MASS mvtnorm purrr stringr tibble]; };
-  PopGenHelpR = derive2 { name="PopGenHelpR"; version="1.2.1"; sha256="09j5ih4ggxzpfhr7ch2d2rpfkpwrgppqrm164yj68daa94cq8ga9"; depends=[adegenet dartR dplyr ggplot2 gstat hierfstat magrittr poppr raster reshape2 rlang scatterpie sp spData spdep StAMPP vcfR]; };
+  PopGenHelpR = derive2 { name="PopGenHelpR"; version="1.3.0"; sha256="0s7grqzh3dy6rn7ricq79sr936q3prnj9zq2c5474pyl0pypv85p"; depends=[adegenet dartR dplyr ggplot2 gstat hierfstat magrittr poppr raster reshape2 rlang scatterpie sp spData spdep StAMPP vcfR]; };
   PopGenReport = derive2 { name="PopGenReport"; version="3.1"; sha256="19df1178kznrrzfkhaaf0lkmfk6kasl0x39k3zv3b5w6k7697igs"; depends=[ade4 adegenet calibrate dismo gap gdistance genetics GGally ggplot2 knitr lattice mmod pegas plyr R_utils raster reshape2 RgoogleMaps sp vegan xtable]; };
   PopVar = derive2 { name="PopVar"; version="1.3.1"; sha256="165c6gfj8qgpvv7ybl571abzf011c738l7xk5lkq9fbvbdqgdc5d"; depends=[BGLR qtl rrBLUP]; };
   PopulationGrowthR = derive2 { name="PopulationGrowthR"; version="0.1.1"; sha256="0cq7vnmslb4y9d9a4jk7z5xajw4vr2q1qqhkak9m9gidyr4dp5zl"; depends=[dplyr]; };
@@ -4037,6 +4110,7 @@ in with self; {
   PredPsych = derive2 { name="PredPsych"; version="0.4"; sha256="00h4p1szqzh4a2kjvlriyinh330cfwxsrvs6fi089mr207q890vj"; depends=[caret e1071 ggplot2 MASS mclust party plyr randomForest rpart statmod]; };
   PredictABEL = derive2 { name="PredictABEL"; version="1.2-4"; sha256="144xmfsp62ssmg501f4y173jrqyv8vps36j4yrwg6ghcmyc01wf8"; depends=[Hmisc lazyeval PBSmodelling ROCR]; };
   PredictionR = derive2 { name="PredictionR"; version="1.0-12"; sha256="0kgc8rjdqskasdaxsbir9gwvm55rw5cpdg3y9nsj7ccg9fc1ji19"; depends=[fitdistrplus Renext]; };
+  PredictorSelect = derive2 { name="PredictorSelect"; version="0.1.0"; sha256="1iibvh9fifjg962hirwnnmksc81yjpv5jb13yjhb4sjpi7fd6482"; depends=[]; };
   PresenceAbsence = derive2 { name="PresenceAbsence"; version="1.1.11"; sha256="1dz4psinvj5zizj663rfigfr14z9d6khj2jqkk3bfr9qg19n8fn6"; depends=[]; };
   PressPurt = derive2 { name="PressPurt"; version="1.0.2"; sha256="05kca0rlhlvhgnw3r3p4sh42zwvhrhcjdwz65ykp14jxybfhc8in"; depends=[data_table ggplot2 gridExtra reticulate]; };
   PrettyCols = derive2 { name="PrettyCols"; version="1.0.1"; sha256="1q4l9138kdbk8m35k3am4qksi14rcfd793lplm3s1d17dh7zqb5f"; depends=[ggplot2 purrr]; };
@@ -4051,7 +4125,7 @@ in with self; {
   ProSGPV = derive2 { name="ProSGPV"; version="1.0.0"; sha256="1837p4vg1g4225rv55gaphma429j6pnfh078cxpv5ha2n0h1sfz3"; depends=[brglm2 glmnet MASS survival]; };
   ProTrackR = derive2 { name="ProTrackR"; version="0.4.3"; sha256="08c53ndrfgaw8hxvrw13ypcbm62nlxgfnip7p9pivvlrjpiiryvj"; depends=[audio lattice signal tuneR XML]; };
   ProbBayes = derive2 { name="ProbBayes"; version="1.1"; sha256="0bkbqyrmpy9swaxsl91w6iiw81znjf1lk4b0vqgn6wdnrir6gkmn"; depends=[ggplot2 gridExtra LearnBayes shiny]; };
-  ProbBreed = derive2 { name="ProbBreed"; version="1.0.3.1"; sha256="04i46n23srds38fz3fxvdpbmf2639902a2p19ixkyk2yab82afdb"; depends=[ggplot2 lifecycle rlang rstan]; };
+  ProbBreed = derive2 { name="ProbBreed"; version="1.0.3.2"; sha256="150kbj6mkabgswxjg9adihz7i4paaknni49j2x9i7jyaw79iym78"; depends=[ggplot2 lifecycle rlang rstan]; };
   ProbMarg = derive2 { name="ProbMarg"; version="1.0.1"; sha256="02qc6c08vfg3inh14d3dzq28zgsgk9p7kb2ni9d14pcx5w9q6sji"; depends=[]; };
   ProbSamplingI = derive2 { name="ProbSamplingI"; version="2.0"; sha256="0hmrl7p89rrzjhxrv088yhs8yqw32iwjnfplpcrm67gmmsj87cj3"; depends=[]; };
   ProbYX = derive2 { name="ProbYX"; version="1.1-0.1"; sha256="1arxk01c3aff7hfqjy1a398548jmz15hs70shh4a40qw2f9f995m"; depends=[rootSolve]; };
@@ -4062,14 +4136,15 @@ in with self; {
   ProfessR = derive2 { name="ProfessR"; version="2.4-3"; sha256="0df7ll7zv3kh5ygdcq9klzjy4g1knd9z0zv3whw5x3a19kkaaili"; depends=[RPMG]; };
   ProfileLikelihood = derive2 { name="ProfileLikelihood"; version="1.3"; sha256="0yxcrxw3jb8bnwqh5f5d8bmm5jlkyxfld12zfyw3b1031zj1vh6i"; depends=[MASS nlme]; };
   ProfoundData = derive2 { name="ProfoundData"; version="0.2.1"; sha256="1zqg821pv3i5nf76s7yppnmy13y14pj0l7rjhk50wlxrxdb53ibz"; depends=[DBI RNetCDF RSQLite settings sqldf zoo]; };
+  ProgModule = derive2 { name="ProgModule"; version="0.1.0"; sha256="16im1ymprfak06vv0m8z0wccvszknzgg5br14q1048g8975rdj1h"; depends=[igraph infotheo maftools patchwork pathwayTMB survival survminer]; };
   ProjectManagement = derive2 { name="ProjectManagement"; version="1.5.2"; sha256="04i1rz5dwgkgy6da12v3vhq3skqmnqlb3dry99hycjrfql0v4wsr"; depends=[igraph kappalab lpSolveAPI plotly triangle]; };
   ProjectTemplate = derive2 { name="ProjectTemplate"; version="0.10.4"; sha256="08idly6fdxhv2rx5s4309snvzpd9rhd5bq9vq4rw13hnvnbdzyya"; depends=[digest tibble]; };
-  ProjectionBasedClustering = derive2 { name="ProjectionBasedClustering"; version="1.2.1"; sha256="1l8j3n7d9vc7d5lb2fizq0aw8xh3ikh4ka4r3wwswk9a0mspjily"; depends=[deldir GeneralizedUmatrix geometry ggplot2 plotly Rcpp shiny shinyjs shinythemes vegan]; };
+  ProjectionBasedClustering = derive2 { name="ProjectionBasedClustering"; version="1.2.2"; sha256="0v3w5bfmvc36bf19p1lp13p574xlbjq0gg43mwm598cnyqsw12xq"; depends=[deldir GeneralizedUmatrix geometry ggplot2 plotly Rcpp shiny shinyjs shinythemes vegan]; };
   ProliferativeIndex = derive2 { name="ProliferativeIndex"; version="1.0.1"; sha256="03ipsbs8pfwr8wsx7j2y9c67ic4qcady7xpa47l8dr14ff63cfk7"; depends=[]; };
   PrometheeTools = derive2 { name="PrometheeTools"; version="0.1.0"; sha256="09hrpybagl58vm22bhvpwb07s542hi4j15mqwwwyhi3dw0sn9xfy"; depends=[ggplot2]; };
   PropCIs = derive2 { name="PropCIs"; version="0.3-0"; sha256="1ywzi88igzaj2wnbrqa08cy7pw886z2m0x3j7rk45rin9mgpfdfd"; depends=[]; };
   PropClust = derive2 { name="PropClust"; version="1.4-7"; sha256="1xwm8a6m5j5rdry4gqjl2c6dx2kkzjz29nzmg4bjnk3y9xpcn8xn"; depends=[dynamicTreeCut fastcluster]; };
-  PropScrRand = derive2 { name="PropScrRand"; version="1.1.1"; sha256="0p83pw1msngaiglwyv385s91r66whx6al9gkxs5bnmsn2a7bkrbl"; depends=[]; };
+  PropScrRand = derive2 { name="PropScrRand"; version="1.1.2"; sha256="1710mw0nrr9x8r39i400l74inz0g8pcqdavqzlagvj27p8b1akzq"; depends=[]; };
   ProteoBayes = derive2 { name="ProteoBayes"; version="1.0.0"; sha256="0cxfzr1wrz0n3v2avwq285kp39jgznmylfdinmx5rj69454r630h"; depends=[dplyr extraDistr ggplot2 magrittr mvtnorm rlang tibble tidyr]; };
   Przewodnik = derive2 { name="Przewodnik"; version="0.16.12"; sha256="1aq80aqflfm1ypqa51h10mc3g0qdr651j6g1b7008k7h0ryq42gv"; depends=[PBImisc PogromcyDanych]; };
   Pstat = derive2 { name="Pstat"; version="1.2"; sha256="17bqkaf9590jhiaamaafmvkqmy2aqkcfqhk8m4w35g58j48yk4yx"; depends=[]; };
@@ -4104,6 +4179,7 @@ in with self; {
   QF = derive2 { name="QF"; version="0.0.6"; sha256="0kvhvpj28293i65wh00jyz7fsbqk5q8x5i05bsk29n2rfrf627bl"; depends=[Rcpp RcppGSL]; };
   QFASA = derive2 { name="QFASA"; version="1.2.0"; sha256="1dhnfr4f5ij3irkragyllfjqisgm27phk40c9i539vm6046sc2w2"; depends=[boot bootstrap Compositional compositions dplyr futile_logger gamlss gamlss_dist MASS mvtnorm Rcpp RcppEigen Rsolnp TMB vegan]; };
   QFRM = derive2 { name="QFRM"; version="1.0.1"; sha256="02fixwxc97lgdp1ajhk9z12qj1cdl79vyl6q3jy37i6k7xh9mdfl"; depends=[]; };
+  QGA = derive2 { name="QGA"; version="1.0"; sha256="1qwcm1x4qcfyrkwx16s1dgxnix2axh9w0qxwrv1j0iwdc8mp32g9"; depends=[]; };
   QGameTheory = derive2 { name="QGameTheory"; version="0.1.2"; sha256="0h3qkb0zg6km3s89bjnv9503hgcng4wfywfy1x5dsbj5azs9hs5w"; depends=[dplyr R_utils RColorBrewer]; };
   QGglmm = derive2 { name="QGglmm"; version="0.7.4"; sha256="0ghvicz4ia1180byj28lmg49889hqhb94g1jrkhm6hnzgqbjnfmd"; depends=[cubature]; };
   QHOT = derive2 { name="QHOT"; version="0.1.0"; sha256="02z0n2jawd6m7bvyvpcy0j13p1c0zm036g62n56xva18qnq5c9lb"; depends=[]; };
@@ -4121,36 +4197,36 @@ in with self; {
   QTE_RD = derive2 { name="QTE.RD"; version="1.0.0"; sha256="0svm97qm08ma201layin6lmym737d1gykcvlbq9n8nycria4sdfh"; depends=[plotrix quantreg]; };
   QTL_gCIMapping = derive2 { name="QTL.gCIMapping"; version="3.4"; sha256="17f2xmgklbi8kicv7v951zm3bf1q4bdx9lcfbxpac3i7xm985fgr"; depends=[data_table doParallel foreach glmnet lars MASS openxlsx qtl Rcpp readxl stringr]; };
   QTL_gCIMapping_GUI = derive2 { name="QTL.gCIMapping.GUI"; version="2.1.1"; sha256="0a155vl869i3li2i67b89p056x50ycqp9yk0ll5g3fp3xcdl80zs"; depends=[data_table doParallel foreach glmnet MASS openxlsx qtl QTL_gCIMapping Rcpp shiny stringr]; };
-  QTLEMM = derive2 { name="QTLEMM"; version="1.5.2"; sha256="18cj4xalgs8pjf3y6glaj66pgspv2vkcfc52r1rrc4qxirk1q49k"; depends=[gtools mvtnorm]; };
+  QTLEMM = derive2 { name="QTLEMM"; version="1.5.4"; sha256="0ha8ivwpjvymg143fdmg0w5kp2yf18alk00iq7y5i4qxdyyhyjpw"; depends=[gtools mvtnorm]; };
   QTLRel = derive2 { name="QTLRel"; version="1.14"; sha256="1brxlvqlcax0f5l0bnc9cirn2v6xwhb851cvzkwrgsxi4m7xn839"; depends=[gdata lattice]; };
   QTOCen = derive2 { name="QTOCen"; version="0.1.1"; sha256="0wlbxk1rd56k02jf3pfzbx6xx5mmf6sb7gvds0067cvb7m42ghcr"; depends=[MatrixModels quantreg Rdpack rgenoud survival]; };
   QUALYPSO = derive2 { name="QUALYPSO"; version="2.3"; sha256="1nbkbc5lcglrpp4k3jphdzqr9xl5kgdv6sg05ibdcwidn6bk3y5l"; depends=[expm MASS Rfast]; };
-  QWDAP = derive2 { name="QWDAP"; version="1.1.17"; sha256="1yq2xm5a1im8g65j89d6xqfbknlrpfh9lpm1ggmn5fw8wq4519ni"; depends=[CORElearn pls Rcpp RcppEigen]; };
+  QWDAP = derive2 { name="QWDAP"; version="1.1.18"; sha256="1i1g83k2fr0c7kchwpsyxxfhi6kvbdqg8caff9ly0crdzar5xrc4"; depends=[CORElearn pls Rcpp RcppEigen]; };
   QZ = derive2 { name="QZ"; version="0.2-3"; sha256="14szpp8yv315wjn4d35l858bzkv2pd4s720ib921wsvpgn3xfx5d"; depends=[Matrix]; };
   Qapprox = derive2 { name="Qapprox"; version="0.2.0"; sha256="0mv3xfy847lqh95mpccjiw5jjbml7dwrna7i16532sdqcxaq4m02"; depends=[]; };
-  Qardl = derive2 { name="Qardl"; version="0.1.1"; sha256="1sb6xp8hm4rh30dfnw9n5x10hr3sd9p0cv98fr31kdaiqji0vglw"; depends=[dplyr MASS Matrix pbapply quantreg]; };
   Qest = derive2 { name="Qest"; version="1.0.1"; sha256="0vl5nhnjijzqvk2s8l9rr6f7hqjh867w7b3w3j1b4kwzfpzsfcqc"; depends=[matrixStats pch survival]; };
   Qindex = derive2 { name="Qindex"; version="0.1.5"; sha256="1186k9yapq6ax2y6pyk3pjhsdsnzifwv94mawgzw8fcsz7wq83q7"; depends=[matrixStats mgcv pracma rpart survival]; };
+  Qindex_data = derive2 { name="Qindex.data"; version="0.1.1"; sha256="1h10qcp0yiga5yw5mvw2snp2y02bmi6z5q2s6i144w362vn5hxn8"; depends=[]; };
   QoLMiss = derive2 { name="QoLMiss"; version="0.1.0"; sha256="00g1ykwlmc4w0bmzj0jg9ckr2bvkl8qcxd67wdc12alccqqd584v"; depends=[dplyr missMethods survival]; };
   QregBB = derive2 { name="QregBB"; version="1.0.0"; sha256="0rihfd2542wpfv43115pkxh233ma1qwkwxivawqs9f4faypyi5mh"; depends=[quantreg]; };
   Qtools = derive2 { name="Qtools"; version="1.5.9"; sha256="167c8mfj0if4j9m3rjbi1gnhwypq5ky297zyb437p42b3856qagi"; depends=[boot conquer glmx gtools MASS Matrix np numDeriv quantdr quantreg Rcpp RcppArmadillo]; };
   QuClu = derive2 { name="QuClu"; version="1.0.1"; sha256="09fakiyj9kz9ac05jmis0zp9jmizvdyc8cid0js5xzm308dxnlsd"; depends=[]; };
   QuESTr = derive2 { name="QuESTr"; version="0.1.1"; sha256="1vvvraqgy570dj86km4qpiax4a0zhfym94am0fn6ld43p3iixg02"; depends=[ggplot2 kernlab]; };
   QuadRoot = derive2 { name="QuadRoot"; version="0.2.1"; sha256="1ixh4ikp8pqa7py4di9fgmi5rhjgsvh57j2f59g6xdcyl068c3g6"; depends=[]; };
-  QuadratiK = derive2 { name="QuadratiK"; version="1.0.0"; sha256="1yn8hs2cpf6dsaqnva2k0l9i4g3ccmzg0vrn4xrynqz3ncrzikwy"; depends=[cluster clusterRepro doParallel foreach ggplot2 ggpp ggpubr MASS mclust moments movMF mvtnorm Rcpp RcppEigen rgl rlecuyer rrcov sn Tinflex]; };
+  QuadratiK = derive2 { name="QuadratiK"; version="1.1.1"; sha256="0pjg0j0hb5v6gxlg4lv1ddrwbrvp91ah3rxm6y7mjclg3ff47g16"; depends=[cluster clusterRepro doParallel foreach ggplot2 ggpp ggpubr mclust moments movMF mvtnorm Rcpp RcppEigen rgl rlecuyer rrcov sn Tinflex]; };
   Quandl = derive2 { name="Quandl"; version="2.11.0"; sha256="1bsba6blbcq0my8wm0qcy0qabbgx344gjljnjwaqfrqkjcphf5xs"; depends=[httr jsonlite xts zoo]; };
-  QuantBondCurves = derive2 { name="QuantBondCurves"; version="0.2.0"; sha256="07rq5nhwn286aqk54pz3x2dq9d2kgszm0biyshjz8hvps9yismj2"; depends=[lubridate quantdates Rsolnp]; };
+  QuantBondCurves = derive2 { name="QuantBondCurves"; version="0.3.0"; sha256="1w6zlf8wvfh4568aa0l9l3p502hjmj8lhnkagv6dqg332jz0ikhr"; depends=[lubridate quantdates Rsolnp]; };
   QuantNorm = derive2 { name="QuantNorm"; version="1.0.5"; sha256="1hds9ybwsgnmcpa22vlmgdq02ilhn0c6a7z1qjiq4i5iqjd4gwf6"; depends=[]; };
   QuantPsyc = derive2 { name="QuantPsyc"; version="1.6"; sha256="1dbj830p5837fiwa800nzsaf19lf95vc3n7jmds2q9v06mrz6syq"; depends=[boot dplyr MASS purrr]; };
   QuantRegGLasso = derive2 { name="QuantRegGLasso"; version="1.0.0"; sha256="0jjjrkj45148s2rymvgzkqpbg2bw7nvf3851153qpl8kp13mxgr1"; depends=[ggplot2 Rcpp RcppArmadillo]; };
-  QuantileGH = derive2 { name="QuantileGH"; version="0.1.5"; sha256="18qdrrlqhjlqnxvinf9kwizbpd06pvgniy5wjq74x1l63d7n2k6z"; depends=[ggplot2 goftest latex2exp mixtools rstpm2 scales sn tclust VGAM]; };
+  QuantileGH = derive2 { name="QuantileGH"; version="0.1.7"; sha256="0zsdvvx567dq17b5n9rdx2qmnm0ph9qnvffmgh7n4csz0c1ca4xg"; depends=[fmx mixtools tclust TukeyGH77]; };
   QuantileGradeR = derive2 { name="QuantileGradeR"; version="0.1.1"; sha256="1zwc6bg636gk8zll7wpznd3pzl611hcj2fmzp8b9505rra13p0g2"; depends=[]; };
   QuantileNPCI = derive2 { name="QuantileNPCI"; version="0.9.0"; sha256="043lkg1pyaja7a4f9lmcwrvdjpfly2z378s15snwnxj8vb5pgr38"; depends=[]; };
   QuantumOps = derive2 { name="QuantumOps"; version="3.0.1"; sha256="0gl1myf7q444imyvsjvxiaxaahf0n0bsggwbd0z3az73l6yf1gjh"; depends=[]; };
   Quartet = derive2 { name="Quartet"; version="1.2.6"; sha256="1qrhjxqg3899kw58irnqs7sj6n9ixyx71gaf1whld8xpj89dsz7f"; depends=[ape Rcpp Rdpack Ternary TreeTools viridisLite]; };
-  QuickJSR = derive2 { name="QuickJSR"; version="1.1.3"; sha256="0ccp7dx2jhlarfn48jc0mhci5kkj0r3ibh6rjnxswvp3yg2x2bgd"; depends=[jsonlite R6 Rcpp]; };
+  QuickJSR = derive2 { name="QuickJSR"; version="1.2.2"; sha256="1vb8b591imq737zin77sh3icld87pqk5mssmn7ddzj45cn22z12i"; depends=[]; };
   QurvE = derive2 { name="QurvE"; version="1.1.1"; sha256="0md97jgyl7lkq46zsl6svgdhyg95is92f8yn5szkaylfdb2cglg3"; depends=[doParallel dplyr drc DT foreach ggh4x ggnewscale ggplot2 ggpubr kableExtra knitr labeling magrittr minpack_lm plyr purrr RColorBrewer readxl rmarkdown scales shiny stringr tidyr]; };
-  Qval = derive2 { name="Qval"; version="0.1.5"; sha256="1dkiz3ra3yf02i31xg0hpd2n90cl0484q1n0vav7vfc539jpx67v"; depends=[GDINA glmnet Matrix nloptr plyr]; };
+  Qval = derive2 { name="Qval"; version="0.1.6"; sha256="134cahaarly5qbdycm0s52fkxfk0pylg5g3k9sq5y6law8yb5q7v"; depends=[GDINA glmnet Matrix nloptr plyr]; };
   R_cache = derive2 { name="R.cache"; version="0.16.0"; sha256="14cja0d78mzipb94cwgdl00k5r7awjclzxl30c77j6jpc68l0lvq"; depends=[digest R_methodsS3 R_oo R_utils]; };
   R_devices = derive2 { name="R.devices"; version="2.17.2"; sha256="15gcvhmqwqyl3n299l9znwcjri8d8vixwwv915162sfxabsylgj0"; depends=[base64enc R_methodsS3 R_oo R_utils]; };
   R_filesets = derive2 { name="R.filesets"; version="2.15.1"; sha256="1qwxk3p56yq06nsdl0jwbw6j8r6qjakznsd3z63gnpsgkckfkx88"; depends=[digest R_cache R_methodsS3 R_oo R_utils]; };
@@ -4167,14 +4243,14 @@ in with self; {
   R2BEAT = derive2 { name="R2BEAT"; version="1.0.5"; sha256="02vxch3pszh3lv4z01da5g6d9zjnjv5cyxciiw4ina767lsk0rgk"; depends=[doParallel foreach glue sampling]; };
   R2BayesX = derive2 { name="R2BayesX"; version="1.1-5"; sha256="1x3hv0dfkh4ywi47qkmk6wvfz07rp5riwnxcnn32jflwcdzscqva"; depends=[BayesXsrc colorspace mgcv]; };
   R2DT = derive2 { name="R2DT"; version="0.2"; sha256="0hyisq6mij80v14sjspn9idd1h38sd1knbpd0dn2wy9k2w1fl0pk"; depends=[data_table devFunc plyr]; };
-  R2HTML = derive2 { name="R2HTML"; version="2.3.3"; sha256="12qg9rp1j26h2f48dfg5k9jds26ycacv3f3ymk686ks43hd1hzja"; depends=[]; };
+  R2HTML = derive2 { name="R2HTML"; version="2.3.4"; sha256="1a8yy9xf5gdh3s2rzmv5b28hhdqc5g34hygcrxn8drs0i2j97vdr"; depends=[]; };
   R2MLwiN = derive2 { name="R2MLwiN"; version="0.8-9"; sha256="0zzvpsmcfvnr6v0dg5dbfz8sx2h2m6krkb0q8bxxlj552nn2qvgr"; depends=[broom coda digest doParallel foreach foreign lattice Matrix memisc R2WinBUGS texreg tibble]; };
   R2OpenBUGS = derive2 { name="R2OpenBUGS"; version="3.2-3.2.1"; sha256="0689aqa034xkbyy46m3sjanjkxrii4ma1crm5qw5kaqbx7dg153c"; depends=[boot coda]; };
   R2ROC = derive2 { name="R2ROC"; version="1.0.1"; sha256="0xmzsd5rbfidypkxcp8jf9afa7l4r70h627gcz4y4j688n110piw"; depends=[]; };
   R2SWF = derive2 { name="R2SWF"; version="0.9-9"; sha256="0bd1lh8f16mvgvrzk080jpqajzl0fzmiq5d2f2k3lgf0hda0x4gl"; depends=[sysfonts]; };
   R2WinBUGS = derive2 { name="R2WinBUGS"; version="2.1-22.1"; sha256="199qkp4ar0kkdf7a2fn9aq17253ss97mddaivydcywvbp50n53j3"; depends=[boot coda]; };
   R2admb = derive2 { name="R2admb"; version="0.7.16.3"; sha256="1sv20hkgz3vvqkwzj7i2xn7sb8skzhdl7jnrk85m6zza65917f32"; depends=[coda lattice]; };
-  R2jags = derive2 { name="R2jags"; version="0.7-1.1"; sha256="05qdhgf8cpkw51zw3krk6xvyb27h8wza1js371f6qig5gjl0xhfl"; depends=[abind coda R2WinBUGS rjags]; };
+  R2jags = derive2 { name="R2jags"; version="0.8-5"; sha256="1k895xmlrq8k34s0yc06mjkay8gj2r80sfn4rpqql09j6vr1za3i"; depends=[abind coda R2WinBUGS rjags stringr]; };
   R2sample = derive2 { name="R2sample"; version="1.1.0"; sha256="18v7i0h4jbnyd08c24sr8fydk209fp76hc2k7yivva616m5c4s2d"; depends=[ggplot2 microbenchmark Rcpp shiny]; };
   R2ucare = derive2 { name="R2ucare"; version="1.0.2"; sha256="0940c9zw3fifs7m4hrx9aqv4d56q3263bl12lzk2mx2sfjp9rzlw"; depends=[RMark stringr]; };
   R3port = derive2 { name="R3port"; version="0.2.5"; sha256="0vcn0qay1fxwvaa81jin0s5ly22sjriqavgy8x981xjzdxl5s5ww"; depends=[plyr reshape2 tinytex whisker]; };
@@ -4187,22 +4263,23 @@ in with self; {
   RABR = derive2 { name="RABR"; version="0.1.1"; sha256="1ckh0cw5xaqbzx8f7i6lsbspblfm0mmmadaifmln2rz3vr0hf1f4"; depends=[asd cubature data_table doParallel foreach ggplot2 multcomp multxpert survival]; };
   RAC = derive2 { name="RAC"; version="1.5.5"; sha256="0ar2vbckfr26slbibbbcx409c8mw338x4apmxs7by6prnlwr6fpx"; depends=[matrixStats plotrix raster rstudioapi sp]; };
   RADstackshelpR = derive2 { name="RADstackshelpR"; version="0.1.0"; sha256="0j2vazbji8xqb8xkd9jrpi10iqj30rvkdjfs4snavl9nsbra99yf"; depends=[ggplot2 ggridges gridExtra vcfR]; };
-  RAFS = derive2 { name="RAFS"; version="0.2.3"; sha256="00s7k5liqklri0di2yawzilxcp047x0mq9l7grqr1dshhzyv2rms"; depends=[fastcluster MDFS splitTools]; };
+  RAFS = derive2 { name="RAFS"; version="0.2.4"; sha256="02s4p7hsjm2znj5rcfrd2cqwynd03p8zbby8qxnfxr3hp5ggq7hr"; depends=[fastcluster MDFS splitTools]; };
   RAINBOWR = derive2 { name="RAINBOWR"; version="0.1.35"; sha256="0cpjjnjfv53q0cwgia5fbay4n02z0q26jjr2p7c7rpykd382lr7c"; depends=[ape cluster expm gaston here htmlwidgets MASS Matrix MM4LMM optimx pbmcapply pegas R_utils Rcpp RcppEigen Rfast rrBLUP stringr]; };
-  RALSA = derive2 { name="RALSA"; version="1.4.0"; sha256="0wj5qz8ar4z05vh7ldxdxzcnbpdn9sm41fz0fmfrrygcrvzmrqaa"; depends=[data_table DT foreign ggplot2 haven Hmisc openxlsx r_import rclipboard readr rstudioapi shiny shinydashboard shinyFiles shinyjs shinyWidgets stringi stringr]; };
+  RALSA = derive2 { name="RALSA"; version="1.4.5"; sha256="1bg2s12803q2rayjmwbksm7ncpb6lbhhx9b6zj8gd12n8dxn0syy"; depends=[data_table DT foreign ggplot2 haven Hmisc openxlsx r_import rclipboard readr rstudioapi shiny shinydashboard shinyFiles shinyjs shinyWidgets stringi stringr]; };
   RAMClustR = derive2 { name="RAMClustR"; version="1.3.1"; sha256="0mlizk0rga6mprp4n2ff12yamvfsfk9v46d94ra6ld0i2jxm84fd"; depends=[dynamicTreeCut e1071 fastcluster ggplot2 gplots httr jsonlite pcaMethods stringr webchem]; };
   RAMP = derive2 { name="RAMP"; version="2.0.2"; sha256="0836fiycrsxiwdw7srz1rvsf639iqh2rk89gavx4kvn0i0sc8d2x"; depends=[]; };
   RAMpath = derive2 { name="RAMpath"; version="0.5.1"; sha256="0dp5illypz3qdj2qmn47wy208mcjhkkwvw8yq2spzcsn55l8f0nx"; depends=[ellipse lavaan MASS]; };
   RANKS = derive2 { name="RANKS"; version="1.1"; sha256="1c7khw2rxf88cycy81kqxyg7rzb9f8ns8n5x24zzjdvsws77fshq"; depends=[graph limma NetPreProc PerfMeas RBGL]; };
   RANN = derive2 { name="RANN"; version="2.6.1"; sha256="10kid40w9w7vkz2hpcfkdpxr4afxzms5dzvfwr0sl5xynzgw76dj"; depends=[]; };
   RAPTOR = derive2 { name="RAPTOR"; version="1.0.1"; sha256="1bj3xsl83mb8zwap8icywrfdld382fram79b0n14jbk1l87rj9r4"; depends=[mgcv]; };
-  RAQSAPI = derive2 { name="RAQSAPI"; version="2.0.3"; sha256="0y9x5s1r5qfxx93wvcpa62s486d6yrrn56ks5wfgpx18jlm39q8d"; depends=[dplyr glue httr jsonlite lifecycle lubridate magrittr purrr rlang stringr tibble]; };
-  RARfreq = derive2 { name="RARfreq"; version="0.1.4"; sha256="13cczkjjmmwn7mpbryldbhwa1jifmbwmd7czviq6qkqm8zl5ggr7"; depends=[data_table dplyr ggplot2 latex2exp magrittr patchwork Rdpack reshape2 tidyr]; };
+  RAQSAPI = derive2 { name="RAQSAPI"; version="2.0.5"; sha256="0v3qahq1pcd8a12w9m65i6p6yna2azqjkirlkfqdazscl2n8g2vp"; depends=[dplyr glue httr2 lifecycle lubridate magrittr purrr rlang stringr tibble]; };
+  RARfreq = derive2 { name="RARfreq"; version="0.1.5"; sha256="05yb1hkhqq5x4q34z6kvdd6s8iy90528zypbc2pjhhb264v5k8qd"; depends=[data_table dplyr ggplot2 latex2exp magrittr patchwork Rdpack reshape2 tidyr]; };
+  RARtrials = derive2 { name="RARtrials"; version="0.0.1"; sha256="03hfbr08f4wbb8apfdqg32118615zzyaihvriqsfr7q2qxy4byla"; depends=[pins Rdpack]; };
   RAT = derive2 { name="RAT"; version="0.3.1"; sha256="0234z9a1aqhdfwm6k3g8vw88dwx9n1d1mnnxl1y5qslv429kf23v"; depends=[ggplot2 mapproj stringr]; };
   RATest = derive2 { name="RATest"; version="0.1.10"; sha256="019jcwb62w7da2hfys7xhfdxcywj6qn9pd2x6l61704n7bjj0s20"; depends=[ggplot2 gridExtra quantreg]; };
   RAdwords = derive2 { name="RAdwords"; version="0.1.18"; sha256="1c3m2j2cf1s51p783rdng5ns913bv7rbjc1vpmrmsxg2kf5f6qyq"; depends=[RCurl rjson]; };
   RApiDatetime = derive2 { name="RApiDatetime"; version="0.0.9"; sha256="1s8dmv8phzr635z7l1af39jn5i3zs3hbnfij4m0rjs3mrq4fckpy"; depends=[]; };
-  RApiSerialize = derive2 { name="RApiSerialize"; version="0.1.2"; sha256="02k0l8bi849b2102ysb102xky4p84i9v2r4w6fab7bgf32wvph4w"; depends=[]; };
+  RApiSerialize = derive2 { name="RApiSerialize"; version="0.1.3"; sha256="0azl8qykls635qxd4lcqmznvpqb5ldy6hqx3p7icqamvx9ckfhcz"; depends=[]; };
   RAppArmor = derive2 { name="RAppArmor"; version="3.2.4"; sha256="1dg9ykmgb2bzqyh08jhfm1wv6zniqg6p49k8mfgxb534sqv5wdn4"; depends=[unix]; };
   RAthena = derive2 { name="RAthena"; version="2.6.1"; sha256="1zncmkx93c28z0xf4n5rdc7fzlrdqw3x9ab2ci07f00gjf9gwkf1"; depends=[data_table DBI reticulate uuid]; };
   RBE3 = derive2 { name="RBE3"; version="1.1"; sha256="1spk6nxr9r5mim3lhps55zwdj22yqxmm01h19p87yravbnjq99wc"; depends=[gtools pracma]; };
@@ -4222,7 +4299,7 @@ in with self; {
   RCGLS = derive2 { name="RCGLS"; version="1.0.3"; sha256="12mmfs91fmhdxdxr7q16hnjlg7bz2bbkf8chld4cyf8clnflzvsj"; depends=[ncdf4 raster RCurl sp]; };
   RCLabels = derive2 { name="RCLabels"; version="0.1.10"; sha256="0nb1032mlqbs9aslq4hsmahfn3bp1qvg26pfbgk784rj64ibd6gz"; depends=[assertthat Hmisc magrittr purrr]; };
   RCMinification = derive2 { name="RCMinification"; version="1.2"; sha256="1bdgc7rwkdkimp4k1p5ah26nbp1ic09kyyx6xily260xq7m31g1w"; depends=[KernSmooth locpol]; };
-  RCPA = derive2 { name="RCPA"; version="0.2.1"; sha256="0lb0c4zdksyhx71xs9kzcsi9l69a4g1ig4cd8wyhln86pw0qpdxz"; depends=[AnnotationDbi Biobase BiocManager DESeq2 dplyr edgeR GEOquery ggnewscale ggpattern ggplot2 ggrepel graph httr IRdisplay jsonlite limma rlang RobustRankAggreg scales stringr SummarizedExperiment tidyr]; };
+  RCPA = derive2 { name="RCPA"; version="0.2.2"; sha256="116qb2zqlw6jsxz5mn7s35nv3d27kzpfjmnqk3whh9r91dkdhfyk"; depends=[AnnotationDbi Biobase BiocManager DESeq2 dplyr edgeR GEOquery ggnewscale ggpattern ggplot2 ggrepel graph httr IRdisplay jsonlite limma rlang RobustRankAggreg scales stringr SummarizedExperiment tidyr]; };
   RCPA3 = derive2 { name="RCPA3"; version="1.2.1"; sha256="1xcrlnd41r9f7p4ql258hjh81alzah1p19pk9kady0ardp0xq1zz"; depends=[beepr car descr haven Hmisc knitr lmtest survey weights]; };
   RCRnorm = derive2 { name="RCRnorm"; version="0.0.2"; sha256="1mz1jb7mc9c47hbk9flnddny4zir6r2k5qis30iynwqny521l6ln"; depends=[truncnorm]; };
   RCSF = derive2 { name="RCSF"; version="1.0.2"; sha256="1hjl7qsdgcddn3nh2likndhfhnw9gj3453xqq96gddgb1y0m3bh1"; depends=[Rcpp]; };
@@ -4254,20 +4331,20 @@ in with self; {
   RDStreeboot = derive2 { name="RDStreeboot"; version="1.0"; sha256="10ry8rna450j389cplvyvgwljxa8lli7licwdin64b1kyzy2cdn7"; depends=[]; };
   RDieHarder = derive2 { name="RDieHarder"; version="0.2.6"; sha256="1q0b98h1ksvk3v1m3kp1x7jnvhpzxrsiyriq2nfkybh72x1p23gl"; depends=[]; };
   RDnp = derive2 { name="RDnp"; version="1.3"; sha256="1a10afwn41c0sd35i2hywg79gyf55nd212rfq5pv5inqdrr7kxym"; depends=[cellWise MASS]; };
-  RDocumentation = derive2 { name="RDocumentation"; version="0.8.2"; sha256="0qdn3c5xbjyrhk56wfch50xpyyfd4f79hs0v00cqk9iwsnjlwmb5"; depends=[httr proto rjson]; };
   RDota2 = derive2 { name="RDota2"; version="0.1.6"; sha256="0fjsgg4dmzw2xwrf8jxq0f2d7f78bf67bl3ms5qcjk9kskfnymag"; depends=[httr jsonlite]; };
   REAT = derive2 { name="REAT"; version="3.0.3"; sha256="1bnmk74xdxckni6alp5kslsb3w7jlnfwc27mi5y3lry7zrvxi6lk"; depends=[]; };
   REBayes = derive2 { name="REBayes"; version="2.54"; sha256="1kg105jnc7hjxihvrjcfklz6i29kznz9aqh6303v9v6hfmy6a094"; depends=[lattice Matrix]; };
   RECA = derive2 { name="RECA"; version="1.7"; sha256="1xikj20flqajpkw4wyynmqd1pafbylzwfrmc8bz9pqgggjjhrqql"; depends=[]; };
-  REDCapCAST = derive2 { name="REDCapCAST"; version="24.2.1"; sha256="0zd2lnr6gzjf1zmrzb0l0ynmvpa842lf3kaz7rscmjkdr8p6sjg1"; depends=[dplyr haven keyring openxlsx2 purrr readr REDCapR rsconnect shiny tidyr tidyselect]; };
-  REDCapDM = derive2 { name="REDCapDM"; version="0.9.8"; sha256="1xj0arzy3d01wlyyyl7ycbrp5drd06la76frd4r25aa2rj41vn2d"; depends=[cli dplyr forcats janitor labelled magrittr openxlsx purrr REDCapR rlang stringi stringr tibble tidyr tidyselect]; };
+  REDCapCAST = derive2 { name="REDCapCAST"; version="24.6.1"; sha256="18s85ryg5mr7cv1j4938ax7v3b8fsrbaaa5lv191h0ixwkyz5cp9"; depends=[assertthat dplyr haven keyring openxlsx2 purrr readODS readr REDCapR shiny tidyr tidyselect zip]; };
+  REDCapDM = derive2 { name="REDCapDM"; version="0.9.9"; sha256="1xpl5n046cj7r8rlkffmsfdffs0q0av2c13zw5v6agr265y3d33j"; depends=[cli dplyr forcats janitor labelled magrittr openxlsx purrr REDCapR rlang stringi stringr tibble tidyr tidyselect]; };
   REDCapExporter = derive2 { name="REDCapExporter"; version="0.2.2"; sha256="0w7c1y58vnkbd11ndkcn5s5c54pmvyqhflwgg2q6dc3n671yp9wx"; depends=[curl data_table keyring lubridate]; };
   REDCapR = derive2 { name="REDCapR"; version="1.1.0"; sha256="02d41mbplc7fb0yf6sf62fzfzai95vjqxhz2hkz7135w17s31j8r"; depends=[checkmate dplyr httr jsonlite magrittr readr rlang tibble tidyr]; };
-  REDCapTidieR = derive2 { name="REDCapTidieR"; version="1.0.0"; sha256="0mv9llh0xgyzh1iqa57i83vq1ijglcmnymk0m4zy34b01q4yjkha"; depends=[checkmate cli dplyr formattable lobstr lubridate purrr REDCapR rlang stringi stringr tibble tidyr tidyselect]; };
+  REDCapTidieR = derive2 { name="REDCapTidieR"; version="1.1.1"; sha256="0a7q2mfnjfyfkdafvvl7y69c52qh8wsqrygv77wnrjl4kjf80gwv"; depends=[checkmate cli dplyr formattable lobstr lubridate pillar purrr readr REDCapR rlang stringi stringr tibble tidyr tidyselect vctrs]; };
   REDI = derive2 { name="REDI"; version="1.0.0"; sha256="0i7gfsqyjhkwh6wxzzznai2qyfk3njim992njp0djd6lpbj96mdw"; depends=[dplyr ggplot2 lubridate magrittr rlang tibble tidyr]; };
   REEMtree = derive2 { name="REEMtree"; version="0.90.5"; sha256="1iapqwhis2vz19c3mivmwpj0nlgzb8fm3j2w060ypydwzmar0qmj"; depends=[nlme rpart]; };
   REFA = derive2 { name="REFA"; version="0.1.0"; sha256="1h6p8m1nyk6a1j6ffgjrx5sn39r1jaavx1ya367k6lkxjp3skf8w"; depends=[mvtnorm]; };
   REGENT = derive2 { name="REGENT"; version="1.0.6"; sha256="1f2sjqkhw3rbmwbcmx7l7imj696kblisi8y3fz77xygbcbxa6rmq"; depends=[]; };
+  REMLA = derive2 { name="REMLA"; version="1.1"; sha256="1j094h38047vlbql8vvlbbdnwxqpw7vnvc08qa2c95jqw8kvhwa6"; depends=[geex GPArotation]; };
   REPLesentR = derive2 { name="REPLesentR"; version="0.4.1"; sha256="0rwd7hxk12f4f1kpj6sl424yhbxi3h9dz6km5awijazmgv95carz"; depends=[dat knitr modules]; };
   REPPlab = derive2 { name="REPPlab"; version="0.9.6"; sha256="1hiv6fz2s7dwjixnlqckvpa4dns8wannpinjjpxs3fcskgxmkgrz"; depends=[lattice LDRTools rJava]; };
   REPPlabShiny = derive2 { name="REPPlabShiny"; version="0.4.2"; sha256="0mm815pf90xqp1fgz955cdgc9k72kpq8zlpfa18pb478c02kvwg3"; depends=[DT REPPlab shiny]; };
@@ -4335,10 +4412,10 @@ in with self; {
   RImpact = derive2 { name="RImpact"; version="1.0"; sha256="010bdq6r2fv4rs78kl1ixnw1di39v90ckh8bblzi0wv4adlbaza4"; depends=[]; };
   RInSp = derive2 { name="RInSp"; version="1.2.5"; sha256="06kpr2iq1xcsfajv9xph4mqazvdp5r5d2zs1lzp0bmsyi3xsd3rb"; depends=[]; };
   RInside = derive2 { name="RInside"; version="0.2.18"; sha256="0dmpdi39dv5a0i7v507cbm2vr2d0cl310n9w1qz66r53y3q18l40"; depends=[Rcpp]; };
-  RItools = derive2 { name="RItools"; version="0.3-3"; sha256="1m9isda5alzycill707r2ayz9mcdsyhxnpy6i6nmzgrsxb9f421a"; depends=[abind dplyr ggplot2 SparseM survival svd tibble tidyr xtable]; };
+  RItools = derive2 { name="RItools"; version="0.3-4"; sha256="1msjxrlil82sa8xm705zi5kqy74nq8jndgm7aq0skn9ms6w88xh4"; depends=[abind dplyr ggplot2 SparseM survival svd tibble tidyr xtable]; };
   RJDBC = derive2 { name="RJDBC"; version="0.2-10"; sha256="06b2gw76jwmm3lw3knmn6slc6824d4gzry94n96d97ii4fm4gwrp"; depends=[DBI rJava]; };
   RJDemetra = derive2 { name="RJDemetra"; version="0.2.6"; sha256="17wfzv3gknx2x90bhlq09yk6wggrq67ylbxn6biiy1qrpipyw4jj"; depends=[rJava]; };
-  RJSDMX = derive2 { name="RJSDMX"; version="3.1-0"; sha256="0rbvm8g5az45rh371vg6ammyl3m960hiziajixy52avgw8zbashr"; depends=[rJava zoo]; };
+  RJSDMX = derive2 { name="RJSDMX"; version="3.3-0"; sha256="08llfpyj85nnqn07vw3i7hjs3hn84s8grg6cjjqynn38kw1849ry"; depends=[rJava zoo]; };
   RJSONIO = derive2 { name="RJSONIO"; version="1.3-1.9"; sha256="1kiy36hjzh5if5npqv5mdvkr5pdfg3ibj178gr0kz1r81i5h6wzi"; depends=[]; };
   RJSplot = derive2 { name="RJSplot"; version="2.7"; sha256="02q5isc137nx7qil2p3903xfsjwk54507rs72dfaiy6a8scys5j9"; depends=[]; };
   RJafroc = derive2 { name="RJafroc"; version="2.1.2"; sha256="1immjb2313ss7pc61m3y59h6m3i0257lhvrkkvhrprl9jsyanfca"; depends=[bbmle binom dplyr ggplot2 mvtnorm numDeriv openxlsx Rcpp readxl stringr]; };
@@ -4350,7 +4427,7 @@ in with self; {
   RKHSMetaMod = derive2 { name="RKHSMetaMod"; version="1.1"; sha256="1h8gqqfmlrzyj4n997yn13vqpaw2kwzl45gscy3fdhskzmyg0ss3"; depends=[Rcpp RcppEigen RcppGSL]; };
   RKUM = derive2 { name="RKUM"; version="0.1.1.1"; sha256="0w26ybl8jp5b90lfxj4710bkhb6qchnsg6smvwrry2225x3kfk7v"; depends=[]; };
   RKelly = derive2 { name="RKelly"; version="1.0"; sha256="0mkpc95j67rg2gcj2fc4w8kv4v31cpiyvh660y8kc2fjr5q4aj3l"; depends=[]; };
-  RKorAPClient = derive2 { name="RKorAPClient"; version="0.8.0"; sha256="13231pc2irg2jzpna6zklj1pj5jfzvrp5dp3anl8iskcl81p78mg"; depends=[broom curl dplyr ggplot2 highcharter httr jsonlite keyring lubridate magrittr PTXQC purrr R_cache stringr tibble tidyr urltools]; };
+  RKorAPClient = derive2 { name="RKorAPClient"; version="0.8.1"; sha256="1p3i2h5lw288vgqj6z5xiv0y0f73pwzvi7wlmbvf6i7adr3qcdg6"; depends=[broom curl dplyr ggplot2 highcharter httr jsonlite keyring lubridate magrittr PTXQC purrr R_cache stringr tibble tidyr urltools]; };
   RLRsim = derive2 { name="RLRsim"; version="3.1-8"; sha256="06i4slc7fj8xifq20i1vqfadfw2p81b0kfzga60139hnryz1zpva"; depends=[lme4 mgcv nlme Rcpp]; };
   RLT = derive2 { name="RLT"; version="3.2.6"; sha256="0s2bb8cdvc5ab2n5xxi76c5szgizwbcy21z6762hpqms4g2yhvc6"; depends=[]; };
   RLeafAngle = derive2 { name="RLeafAngle"; version="1.0"; sha256="1anks22hn6qpac556p99kilkhc80h572dvcyz3wj1nqffdrhgrh3"; depends=[]; };
@@ -4372,17 +4449,17 @@ in with self; {
   RMOPI = derive2 { name="RMOPI"; version="1.1"; sha256="0jjli73b1xinrkq0fndfaan1mgf6yb29skqvva4lib0zgd8p1v21"; depends=[fPortfolio ggplot2 lubridate MASS PerformanceAnalytics rugarch tibble timeDate timeSeries TTR xts]; };
   RMPSH = derive2 { name="RMPSH"; version="1.1.1"; sha256="0jffp8942ydwain23kvy7q6avpxxsb77jj1mg4bq43fwgfc9nqjy"; depends=[Rcpp]; };
   RMSD = derive2 { name="RMSD"; version="0.1.0"; sha256="0n6qcy8biswjsqhhcmahbn09xmnlgaa4hjlngh3kqran91p7c3i0"; depends=[]; };
-  RMSDp = derive2 { name="RMSDp"; version="0.1.0"; sha256="12yfjs66w9d1i9yir731nk7038rg7b77m05fjs9x7a5cs9001azg"; depends=[doParallel foreach]; };
+  RMSDp = derive2 { name="RMSDp"; version="0.1.1"; sha256="1s52hj8b12r2p6a6b069i7accnf8gvxr3nzb5dps1kpsncvhlpk3"; depends=[doParallel foreach]; };
   RMSNumpress = derive2 { name="RMSNumpress"; version="1.0.1"; sha256="1y86dpa8kpq2bkvl90qwghxrnll5h3y9ycyvmamm4kd7ivy59sxi"; depends=[Rcpp]; };
   RMSS = derive2 { name="RMSS"; version="1.1.1"; sha256="18hm626yr3xrsi9spzr42y9pf547xdx7byqq15bvh9f04qaalck3"; depends=[cellWise Rcpp RcppArmadillo robStepSplitReg robustbase srlars]; };
   RMT4DS = derive2 { name="RMT4DS"; version="0.0.1"; sha256="05fwhd36lvi21gr5nz8mgxk5qzw4vxkrgw499p11aa9qhcn8xq4g"; depends=[lpSolve MASS mpoly nleqslv pracma quadprog rARPACK RMTstat rootSolve]; };
   RMTL = derive2 { name="RMTL"; version="0.9.9"; sha256="1wyv9l1xgdm4s8ibjw3kwfsr77hxkxj80cgvkfv4mdir0bxm84b4"; depends=[corpcor doParallel foreach MASS psych]; };
   RMThreshold = derive2 { name="RMThreshold"; version="1.1"; sha256="0wkc42vcggib002ad6ch43h6avpdgl12szrrrfd2p0wl72cwn5n1"; depends=[Matrix png]; };
   RMTstat = derive2 { name="RMTstat"; version="0.3.1"; sha256="1r1a2sdqv64m9cpm2pz6r8abf7l810126ayd8iq3gx86c7bjfj5v"; depends=[]; };
-  RMVL = derive2 { name="RMVL"; version="1.0.0.1"; sha256="199jsf82sbbzh6nn6ykmvqc1ad8wcm36qhfav2ggp1zrdy5vwhmq"; depends=[]; };
+  RMVL = derive2 { name="RMVL"; version="1.1.0.0"; sha256="1fypvlg8qi4kn3awii244vqcn9zzsci5bqv8ywpnfigph26din6f"; depends=[]; };
   RMaCzek = derive2 { name="RMaCzek"; version="1.5.1"; sha256="1zbpwhfa9mb55yglf4kgvch3hg7pvsfga4kpq45lz1cbs9454mzw"; depends=[e1071 ecp GA RColorBrewer seriation]; };
   RMallow = derive2 { name="RMallow"; version="1.1"; sha256="1s6a3347739rfc8rrh2773b278gcbp8hf5j5psm61fz7bavy9gcj"; depends=[combinat]; };
-  RMariaDB = derive2 { name="RMariaDB"; version="1.3.1"; sha256="0a39n1pgpxhq095bz689fxar68vvy5hypxym1d1ric0s8vs2l6vd"; depends=[bit64 blob cpp11 DBI hms lubridate plogr rlang]; };
+  RMariaDB = derive2 { name="RMariaDB"; version="1.3.2"; sha256="0a38hbc9nc25x9a8z91wc24h4llmyhjim6vavmwrx2r14c3fz1vw"; depends=[bit64 blob cpp11 DBI hms lubridate plogr rlang]; };
   RMark = derive2 { name="RMark"; version="3.0.0"; sha256="0nrh55rmfkrncpc58hranjww37dp8qrngkcazs5nmznw8r10z8h8"; depends=[coda matrixcalc msm]; };
   RMediation = derive2 { name="RMediation"; version="1.2.2"; sha256="16zw8ic8h2q1qg627ddaxmr9dvj7ckdljbzfgwq557nxc2fgk1v2"; depends=[doParallel e1071 foreach iterators lavaan MASS modelr OpenMx stringr]; };
   RMixpanel = derive2 { name="RMixpanel"; version="0.7-1"; sha256="1xwmmfvky49n1l0w3kwcyaf2h4rhzz4k5icjwvpc90fqk8sxib6a"; depends=[base64enc jsonlite RCurl uuid]; };
@@ -4393,7 +4470,6 @@ in with self; {
   RNAmf = derive2 { name="RNAmf"; version="0.1.2"; sha256="0hshkb5dhfpvgwpcp7a1rlp27a78lp48v7zsciw1lmga2igq5x42"; depends=[doParallel foreach lhs plgp]; };
   RNAseqNet = derive2 { name="RNAseqNet"; version="0.1.5"; sha256="09jqgj1wwwxhk6xkfhkwzkbj0byk3441wa4kj4nzgwzv0qw6inds"; depends=[ggplot2 glmnet hot_deck igraph PoiClaClu]; };
   RNAseqQC = derive2 { name="RNAseqQC"; version="0.1.4"; sha256="0f9k3ba2w75sjywngmvp7g10837wx65v112inpag3rplk9ljahvp"; depends=[AnnotationFilter AnnotationHub circlize ComplexHeatmap cowplot DESeq2 dplyr ensembldb gghighlight ggplot2 ggpointdensity ggrepel ggsci magrittr matrixStats patchwork purrr RColorBrewer stringr SummarizedExperiment tibble tidyr tidyselect vsn]; };
-  RNAsmc = derive2 { name="RNAsmc"; version="0.8.0"; sha256="0lssw4qwcsdwcd3chkb1kslqh7yn25prl1npp1464nvmvz9yqdwm"; depends=[circlize RRNA]; };
   RNCBIEUtilsLibs = derive2 { name="RNCBIEUtilsLibs"; version="0.9"; sha256="1h1ywx8wxy6n2rbpmjbqw4c0djz29pbncisd0mlbshj1fw226jba"; depends=[rJava]; };
   RNCEP = derive2 { name="RNCEP"; version="1.0.10"; sha256="19ja7pcp7ajwhqhqw92pdmvxzyjc4kw3943pllpx47s1zvi6dmci"; depends=[abind fields maps RColorBrewer sp tgp]; };
   RND = derive2 { name="RND"; version="1.2"; sha256="1rl5apgw43c841z0lapi9z2jn979dvqh4x1qkqx1ad77zcq87c85"; depends=[]; };
@@ -4404,17 +4480,17 @@ in with self; {
   RNentropy = derive2 { name="RNentropy"; version="1.2.3"; sha256="1kflx1i01ddq803i0vj79zfjs9y0sl8dzra9j5x84m6wcjbn71kl"; depends=[]; };
   RNetCDF = derive2 { name="RNetCDF"; version="2.9-2"; sha256="0cdksiaai9wc4dyk3k01f9q9ki19r94p77rwpy4kr55hvwnrqx8m"; depends=[]; };
   RNetLogo = derive2 { name="RNetLogo"; version="1.0-4"; sha256="1z7jp454k197c0zbkn64zmf25wadkiznv3w2csgiz917cbx6xcn1"; depends=[igraph rJava]; };
-  RNewsflow = derive2 { name="RNewsflow"; version="1.2.7"; sha256="08jyj57y20a156dhpwn83v27lgc57yv189qrlsy5qn48jzfdb77h"; depends=[data_table igraph Matrix quanteda Rcpp RcppEigen RcppProgress scales stringi wordcloud]; };
+  RNewsflow = derive2 { name="RNewsflow"; version="1.2.8"; sha256="08qb0vh2j1v13wqsrmklh6d4ln7ipsy962cwnlr86j0r2bscrqgy"; depends=[data_table igraph Matrix quanteda Rcpp RcppEigen RcppProgress scales stringi wordcloud]; };
   RNifti = derive2 { name="RNifti"; version="1.6.1"; sha256="0wn06fnq5c7f0vwakryb75vzkjh03dqz2z57lgmn68hwgssnpalc"; depends=[Rcpp]; };
-  RNiftyReg = derive2 { name="RNiftyReg"; version="2.8.1"; sha256="0k5qqkn2jnsrlb2j99lsy1v4dymrs2xjxyrhvpnxhdx7fyghhj64"; depends=[ore Rcpp RcppEigen RNifti]; };
+  RNiftyReg = derive2 { name="RNiftyReg"; version="2.8.2"; sha256="0jrb1j8hl25lby2ikpvmmrxq39plx3r6qmrn0bnzbmyvbb5x1vfq"; depends=[ore Rcpp RcppEigen RNifti]; };
   ROAuth = derive2 { name="ROAuth"; version="0.9.6"; sha256="0vhsp8qybrl94898m2znqs7hmlnlbsh8sm0q093dwdb2lzrqww4m"; depends=[digest RCurl]; };
   ROCFTP_MMS = derive2 { name="ROCFTP.MMS"; version="1.0.0"; sha256="022cz5vh79c50r31rxn5fjghl65wn1ns8xdgq3b05hjf9psjvg4x"; depends=[vctrs]; };
   ROCR = derive2 { name="ROCR"; version="1.0-11"; sha256="0amvvrkiflmr3qygrsgrsja4gaf2v6r6h6i2bgpsm8r069vmlf2p"; depends=[gplots]; };
   ROCSI = derive2 { name="ROCSI"; version="0.1.0"; sha256="0bj1f62j2b39whm0grl1xvzkwi3jlrzpgzm77vskgyhaqrk17j9z"; depends=[glmnet MASS]; };
   ROCaggregator = derive2 { name="ROCaggregator"; version="1.0.1"; sha256="1l53z1xz5ww0bdd3pcmscmm4ypg0fdl4a03vv8ya2jk0zzlndlnq"; depends=[magrittr]; };
-  ROCit = derive2 { name="ROCit"; version="2.1.1"; sha256="0sd6ckh7k8aqwhzzp3qff6g7d03klbr0mbp403pib3823c8pqa55"; depends=[]; };
+  ROCit = derive2 { name="ROCit"; version="2.1.2"; sha256="17s7wi248vj6wbcxb6z0fdsw8bijjxva4sldlqcz4m73ccnrdikf"; depends=[]; };
   ROCket = derive2 { name="ROCket"; version="1.0.1"; sha256="1p5b1408fdq8z64b7ihwcdxprg5rfiq4z5annxzvmizzr6qwn8qa"; depends=[data_table]; };
-  ROCnReg = derive2 { name="ROCnReg"; version="1.0-8"; sha256="08dklrd4ym60h3s5s88g9bv1adi8d6fxnnw2ap9870a1h0a7dk7g"; depends=[lattice MASS Matrix moments nor1mix np pbivnorm spatstat spatstat_geom]; };
+  ROCnReg = derive2 { name="ROCnReg"; version="1.0-9"; sha256="149iq8i67qmdy6a65b4zw03f1sha8dbnirqw24in1kar3m5zg9hn"; depends=[lattice MASS Matrix moments nor1mix np pbivnorm spatstat_univar]; };
   ROCpsych = derive2 { name="ROCpsych"; version="1.3"; sha256="0fcrhhxmvrrchbswb94liahbgz5pfhs86fbj0vby7vnakrhngh7v"; depends=[pROC reportROC]; };
   RODBC = derive2 { name="RODBC"; version="1.3-23"; sha256="0fqgbs2zanq7xjl252s1fpqivqz4ll23nnf74122kcxgq1dd3k8m"; depends=[]; };
   RODBCDBI = derive2 { name="RODBCDBI"; version="0.1.1"; sha256="0jkcc1lm8drsx1pkfj5h6rlbr98cgpvbf9ndzdwr048f3s8gd26i"; depends=[DBI RODBC]; };
@@ -4453,7 +4529,7 @@ in with self; {
   ROptimus = derive2 { name="ROptimus"; version="3.0.0"; sha256="1sc65dzpgd12wjqbbhzkhj9p09ynd4gj9icminz0yrr9igzw2z2j"; depends=[doParallel foreach iterators]; };
   ROracle = derive2 { name="ROracle"; version="1.3-1.1"; sha256="1k5w6fi1f83mhlc8hx6y305llcwxl22h6lpkib1yvm4557k1c7zz"; depends=[DBI]; };
   RPANDA = derive2 { name="RPANDA"; version="2.3"; sha256="12cah5vw9jcpnprnfhqwdh11fkn68djzgvdv2hr23yppa8nfn9zc"; depends=[ape BB bipartite cluster coda deSolve fields fpc geiger glassoFast GUniFrac igraph Matrix mvMORPH mvtnorm ParallelLogger phangorn phytools picante pracma pspline pvclust R_utils raster RColorBrewer Rmpfr TESS vegan]; };
-  RPDTest = derive2 { name="RPDTest"; version="0.0.1"; sha256="1irj2ldd4if4l2wkz5slwl7441mav3igy1pmg62cxkpxk1sggbfs"; depends=[doParallel foreach]; };
+  RPDTest = derive2 { name="RPDTest"; version="0.0.2"; sha256="0xdb68nxn25did26a39x6s7sch7g2qdl7f15qli2h9l9irlh8zqd"; depends=[doParallel foreach]; };
   RPEGLMEN = derive2 { name="RPEGLMEN"; version="1.1.2"; sha256="0rbwxdh252vfx6qnplqqgmawpfk3naksi4wx11g1h7aj68cv8xjw"; depends=[Rcpp RcppEigen RPEIF]; };
   RPEIF = derive2 { name="RPEIF"; version="1.2.4"; sha256="002f8753gfqx1ddcb60hz7xy6l19zvp3d3arackkqjh26zcw1paj"; depends=[RobStatTM xts zoo]; };
   RPESE = derive2 { name="RPESE"; version="1.2.5"; sha256="157xvfa6m4vii92fac8xbhnah7np3jvd1y1y7ryw5c80yfbdhf0y"; depends=[boot RobStatTM RPEGLMEN RPEIF xts zoo]; };
@@ -4466,7 +4542,8 @@ in with self; {
   RPPanalyzer = derive2 { name="RPPanalyzer"; version="1.4.9"; sha256="1lw28cfi397klxxhs97dwzsfk7ykggbh4p82yg73sq6yq3liha1a"; depends=[Biobase gam ggplot2 gplots Hmisc lattice limma quantreg]; };
   RPhosFate = derive2 { name="RPhosFate"; version="1.0.4"; sha256="1gmnnvihxg6j83w4qgrrx61fz4p9r145qxs2qcscrs1q8bzlvw9k"; depends=[checkmate raster Rcpp RcppArmadillo spatstat_geom yaml]; };
   RPostgreSQL = derive2 { name="RPostgreSQL"; version="0.7-6"; sha256="0b1dmx5pcd4v1xg25ihxilkga3zdblb1xy896ik5fdkaidq3jn9q"; depends=[DBI]; };
-  RPostgres = derive2 { name="RPostgres"; version="1.4.6"; sha256="1ld03r9rzfxx6gzy3yn8jhzp9sp2qd9wydpxz955ggjxwdklpvnr"; depends=[bit64 blob cpp11 DBI hms lubridate plogr withr]; };
+  RPostgres = derive2 { name="RPostgres"; version="1.4.7"; sha256="0939ysl9m35aknnh3xk92xxymk1g0xqnjb2khq55m8nq7gcg3l9x"; depends=[bit64 blob cpp11 DBI hms lubridate plogr withr]; };
+  RPregression = derive2 { name="RPregression"; version="0.1.0"; sha256="098c798jiafbx12jas98r9118fnq0n963ivvphiif58yv2hf0iqz"; depends=[ggplot2 stargazer]; };
   RPresto = derive2 { name="RPresto"; version="1.4.6"; sha256="1q8c3h328iwscnayxj8qc71s2hkqdqwnpf38kn3zz3ks66qzjf8c"; depends=[bit64 DBI dbplyr dplyr httr jsonlite lifecycle lubridate openssl progress purrr rlang stringi tibble vctrs]; };
   RProbSup = derive2 { name="RProbSup"; version="3.0"; sha256="1z53zgx26fwfhb1vxad0l51v34y2lsplhwbjaf4r44rngdaw9h5n"; depends=[]; };
   RProtoBuf = derive2 { name="RProtoBuf"; version="0.4.22"; sha256="0zldxpc1nmwpv3ngrqgjp1pyhki0z7gnmcy6y8g2s192cwbh5f3m"; depends=[Rcpp]; };
@@ -4476,13 +4553,14 @@ in with self; {
   RPushbullet = derive2 { name="RPushbullet"; version="0.3.4"; sha256="1mx433hvx660a63s5dzn655zmqv1c1qij0hzddl9z38032brc4ii"; depends=[curl jsonlite]; };
   RPyGeo = derive2 { name="RPyGeo"; version="1.0.0"; sha256="1alqgx6blqqwxm76w05g82kc2icx8nvjw7qkdz73gf9ckgza5bb3"; depends=[magrittr purrr raster reticulate rmarkdown sf stringr]; };
   RQEntangle = derive2 { name="RQEntangle"; version="0.1.3"; sha256="178haddk8nnscy2vym3k2a3ca9lf6nl7rpjja8lxqdjninvhvwb2"; depends=[iterators itertools]; };
-  RQuantLib = derive2 { name="RQuantLib"; version="0.4.21"; sha256="06xj6cl17j821jbs8dk1hadzn18k10lqq6550dj65d837dx63hnj"; depends=[Rcpp zoo]; };
+  RQdeltaCT = derive2 { name="RQdeltaCT"; version="1.3.0"; sha256="1zwajwyiwhl12v1119w9xlyw07a9iigj3yy27nm65ninqjbfrn8j"; depends=[coin corrplot ctrlGene dplyr GGally ggplot2 ggpmisc ggsignif Hmisc magrittr oddsratio pheatmap pROC tidyr tidyselect tidyverse]; };
+  RQuantLib = derive2 { name="RQuantLib"; version="0.4.22"; sha256="0zs8ldaf1h8hr6czlvj457rr0w4z0rjgj290r3krg4a9ilb1iink"; depends=[Rcpp zoo]; };
   RRBoost = derive2 { name="RRBoost"; version="0.1"; sha256="0zp3csrpi0awk88m6sq5sf5v7j32q5sd4mwv61x6bblg991k404k"; depends=[RobStatTM rpart]; };
   RRF = derive2 { name="RRF"; version="1.9.4"; sha256="1kdyw0v1m3ajf88gzs70p6l6pic4g46ccwqxi9iznimayby6ygjb"; depends=[]; };
   RRI = derive2 { name="RRI"; version="1.1"; sha256="0msdc5j5vx4snl8r3q5nn0mw2i80jds5pjykhmigcrx6jzg6h6i7"; depends=[Rcpp RcppArmadillo]; };
   RRMLRfMC = derive2 { name="RRMLRfMC"; version="0.4.0"; sha256="0y8gs9rirrcjb89jqxr7rrp89pjal7lzcscnh4kmabhih3f2d729"; depends=[nnet]; };
-  RRNA = derive2 { name="RRNA"; version="1.0"; sha256="14rcqh95ygybci8hb8ays8ikb22g3850s9f3sgx3r4f0ky52dcba"; depends=[]; };
-  RRPP = derive2 { name="RRPP"; version="2.0.0"; sha256="02gd17x1504q87xzw384fd5249xd6kpfqib257fqbdhcrd64bw0r"; depends=[ape ggplot2 Matrix]; };
+  RRNA = derive2 { name="RRNA"; version="1.1"; sha256="0bgsakpz1wr3wr6c5xa7wx2xmzs3xzkscrgwn6dc7f93kpq1j17p"; depends=[]; };
+  RRPP = derive2 { name="RRPP"; version="2.0.2"; sha256="10hd5mp4a39gh6d13lw8xnn4qvziacywls33dngvjxaq9ccxc05p"; depends=[ape ggplot2 Matrix]; };
   RRRR = derive2 { name="RRRR"; version="1.1.1"; sha256="14xj0x68nisnxwg27srga8va7dpm1k1mh8xd4bljdb7jykczpn0h"; depends=[expm ggplot2 magrittr matrixcalc mvtnorm]; };
   RRTCS = derive2 { name="RRTCS"; version="0.0.4"; sha256="16v6f5yvfq9l1b4h5mr4y0i2k404vdv354yz4k780w79qib7g39p"; depends=[sampling samplingVarEst]; };
   RRate = derive2 { name="RRate"; version="1.0"; sha256="1q3f2gphdf50aijnk5xqfpxcqfd4jq7byb1gpb0vcnaxgi3a9lwm"; depends=[]; };
@@ -4504,7 +4582,7 @@ in with self; {
   RSNNS = derive2 { name="RSNNS"; version="0.4-17"; sha256="1z2slc2gxr3w7m1ybyd69axx1gi4fadjlkg066gf12b86bbmfia2"; depends=[Rcpp]; };
   RSP = derive2 { name="RSP"; version="0.4"; sha256="126lag0i2k4fwlr7gnc9jfn63pyi6d6gzzmypyr6jk666pwsk5f6"; depends=[catR DT foreign ggplot2 GPArotation gt hornpa igraph lavaan ltm Metrics mirt MVN plyr polycor psych rJava rstudioapi scales semPlot shiny shinyBS shinycustomloader ShinyItemAnalysis shinyjs shinythemes shinyWidgets xlsx]; };
   RSQL = derive2 { name="RSQL"; version="0.2.2"; sha256="1k0s32lcfr2ari7jrkspmzf9ygpz4h737yigz3lkwj5k2r9ls2ax"; depends=[DBI lgr R6]; };
-  RSQLite = derive2 { name="RSQLite"; version="2.3.5"; sha256="1wvfadwcr8iv0z6pddfpvl60dq4p8l68v16p9daa002srgzpwlw1"; depends=[bit64 blob cpp11 DBI memoise pkgconfig plogr rlang]; };
+  RSQLite = derive2 { name="RSQLite"; version="2.3.7"; sha256="1kllna6hfnyy3rizr8wkpfn7p5sxv3sra12x9vz68hp6i4jmgq15"; depends=[bit64 blob cpp11 DBI memoise pkgconfig plogr rlang]; };
   RSSL = derive2 { name="RSSL"; version="0.9.7"; sha256="1am8xv0v5b2z87y8i7m1s41aq55fx30pdnhna5dj87fql5faydqx"; depends=[cluster dplyr ggplot2 kernlab MASS Matrix quadprog Rcpp RcppArmadillo reshape2 scales tidyr]; };
   RSSOP = derive2 { name="RSSOP"; version="1.1"; sha256="119xrxpaf68qdb2kj2pbaja6im2nbxsgibb1bnlpnc3fcxkmqcsf"; depends=[]; };
   RSSampling = derive2 { name="RSSampling"; version="1.0"; sha256="0p10l7qmksx4ysz1jb84f9nbqzig8wxhwy33yk8hq29nb5i4c9ik"; depends=[LearnBayes]; };
@@ -4524,8 +4602,7 @@ in with self; {
   RSpincalc = derive2 { name="RSpincalc"; version="1.0.2"; sha256="09fjwfz1bzpbca1bpzxj18ki8wh9mrr5h6k75sc97cyhlixqd37s"; depends=[]; };
   RSqlParser = derive2 { name="RSqlParser"; version="1.5"; sha256="0q5wa7bq7m94xx8hcf9p29v5vvkrqzygs3v6yy5xl6jgvshvscvi"; depends=[stringi stringr]; };
   RStata = derive2 { name="RStata"; version="1.1.1"; sha256="1wx6cz4567xkfplybmbwmw25snhlaxn48yi620cv6p5xqv458yp7"; depends=[foreign]; };
-  RStoolbox = derive2 { name="RStoolbox"; version="0.4.0"; sha256="1b1h2nkm3dbhym8bf7sa3gcbgflfx4mw5ramhrxczlzqsc9g37zi"; depends=[caret dplyr exactextractr ggplot2 lifecycle magrittr Rcpp RcppArmadillo reshape2 sf terra tidyr XML]; };
-  RStorm = derive2 { name="RStorm"; version="1.0"; sha256="1n2kiy9b8w6rnv2zmzbl22grwibf619hadf2cjq1ch7rmbr7qb65"; depends=[plyr]; };
+  RStoolbox = derive2 { name="RStoolbox"; version="1.0.0"; sha256="1haf2pi1jzlzh077gfanby5g4lp1djz01qcdinxiq0dgs98anrl8"; depends=[caret dplyr exactextractr ggplot2 lifecycle magrittr Rcpp RcppArmadillo reshape2 sf terra tidyr XML]; };
   RSurveillance = derive2 { name="RSurveillance"; version="0.2.1"; sha256="02jbm9xl2jg9cgq53i1cvj1rivhprgd07k1rxsayzrskvbmvyjpd"; depends=[epiR epitools mc2d]; };
   RTCC = derive2 { name="RTCC"; version="0.1.1"; sha256="0bnm0qwikbbpq3i5q5fwmsgi8fn7w0xk993ngpiqbrf5my3h93kc"; depends=[matrixStats Rcpp testthat vegan]; };
   RTD = derive2 { name="RTD"; version="0.4.1"; sha256="0zsv62hx1y9q5a6rd8ri91ff64671b84jr3f88h0q4yni2mribhr"; depends=[dplyr httr jsonlite purrr RcppMsgPack readr urltools uuid]; };
@@ -4534,7 +4611,7 @@ in with self; {
   RTIGER = derive2 { name="RTIGER"; version="2.1.0"; sha256="08gs26wv6jnd4rzdhb87as26aslgqs128x1ip8h9nmr3l9mwg5fq"; depends=[e1071 extraDistr GenomeInfoDb GenomicRanges ggplot2 IRanges JuliaCall qpdf reshape2 TailRank]; };
   RTL = derive2 { name="RTL"; version="1.3.5"; sha256="0ajdrwg8g68imwj21l9mh8q9n1xc00d8lxw60p6vnb39m730d8vg"; depends=[dplyr ggplot2 glue httr jsonlite lifecycle lubridate magrittr PerformanceAnalytics plotly purrr Rcpp readr rlang stringr tibble tidyr tidyselect timetk tsibble TTR xts zoo]; };
   RTLknitr = derive2 { name="RTLknitr"; version="1.0.0"; sha256="125sx7gy8gnyhz15cjrmqwrh32w3nd49d8qwg0grj3q12v03i8ca"; depends=[bookdown gt knitr magrittr]; };
-  RTMB = derive2 { name="RTMB"; version="1.4"; sha256="0lbnwjh1bd9ryadsmax2gjbzh4fjjr4mm76g1xydq27b0y0411iz"; depends=[MASS Matrix Rcpp RcppEigen TMB]; };
+  RTMB = derive2 { name="RTMB"; version="1.5"; sha256="1sgkvr0kyr46lvmp1vyv5fcqaf1qsnm24zbwlh42qrhgh8hxa871"; depends=[MASS Matrix Rcpp RcppEigen TMB]; };
   RTSA = derive2 { name="RTSA"; version="0.2.2"; sha256="1fkr374y7pjv99g2b0cdcr5qhfjnjwl52p39w4fvw7iv4ahvvxs1"; depends=[ggplot2 metafor Rcpp scales]; };
   RTTWebClient = derive2 { name="RTTWebClient"; version="0.1.3"; sha256="1d4dmw7z90nih9bzajlyqgqvpfmpkxwyhw0w56q396kvw8k644cp"; depends=[base64enc data_table digest httr jsonlite withr]; };
   RTaxometrics = derive2 { name="RTaxometrics"; version="3.2.1"; sha256="0f87r45lnygxxlwjq04q08ams7llnjlrfyavx81fbl2g26yp988l"; depends=[]; };
@@ -4566,31 +4643,33 @@ in with self; {
   RaJIVE = derive2 { name="RaJIVE"; version="1.0"; sha256="1r3csf3xpk6rx494bqamb9b8dhj1169cng6gdi52h62m8vchnak5"; depends=[doParallel foreach ggplot2]; };
   RaMS = derive2 { name="RaMS"; version="1.4.0"; sha256="0bhp4sibym8gbzcqzhplfkln31z7b06v4ycd46rg4167yivm2xxc"; depends=[base64enc data_table xml2]; };
   RaSEn = derive2 { name="RaSEn"; version="3.0.0"; sha256="1a7jvyvvhzn4aifnhjldn5jr6sxh16b67x335p8wh8g24yvvglvw"; depends=[caret class doParallel e1071 FNN foreach formatR ggplot2 glmnet gridExtra KernelKnn MASS ModelMetrics nnet randomForest ranger rpart]; };
-  RaceID = derive2 { name="RaceID"; version="0.3.4"; sha256="10hbgnd7kvs6a3w6jxs78w7b6si3nghbrzfyv3ipflpv37zs8fay"; depends=[cluster coop FateID FNN fpc ggplot2 harmony ica igraph irlba leiden locfit MASS Matrix matrixStats pheatmap princurve quadprog randomForest RColorBrewer Rcpp Rtsne runner umap vegan]; };
+  RaceID = derive2 { name="RaceID"; version="0.3.5"; sha256="0jmgc2nf65ymhk88mzlmh96wwygr0gs3ca1mc0all0a5c6vxyj8b"; depends=[cluster coop FateID FNN fpc ggplot2 harmony ica igraph irlba leiden locfit MASS Matrix matrixStats pheatmap princurve quadprog randomForest RColorBrewer Rcpp Rtsne runner umap vegan]; };
   Racmacs = derive2 { name="Racmacs"; version="1.2.9"; sha256="0csrbmri44ykrrx25a21hnqca74w6hvsiza43k7jix26bchysynl"; depends=[brotli dplyr ellipsis ggplot2 htmltools htmlwidgets igraph jsonlite ks magrittr MASS rapidjsonr Rcpp RcppArmadillo RcppEnsmallen RcppProgress rlang rmarchingcubes shape shiny shinyFiles shinyjs vctrs]; };
-  RadData = derive2 { name="RadData"; version="1.0.1"; sha256="053i6r0j58dws1qisl2701n0fwzrfn5brdx3dcab8xmpzg6s0036"; depends=[]; };
+  RadData = derive2 { name="RadData"; version="1.0.2"; sha256="0kpmxii2080iid99y1rh0bdrvw2wf6gqwbafa4p28hvbw9lk6zw3"; depends=[]; };
   RadOnc = derive2 { name="RadOnc"; version="1.1.8"; sha256="0nc8f2f2yvfvx81xm87zr08asisyar9zdx3fwqz0lvz5xgrwkp3x"; depends=[oro_dicom ptinpoly]; };
   RadialVisGadgets = derive2 { name="RadialVisGadgets"; version="0.2.0"; sha256="18a2c89jpdaln9cl5y4w161121fld08wm57m40qacsj1vlnkh6j9"; depends=[caret dplyr ggplot2 miniUI r_import rlang shiny shinyjs shinyscreenshot tidyr]; };
   RadioSonde = derive2 { name="RadioSonde"; version="4.2"; sha256="02ncpyvjxvk192bdaqqmqpr9bfwwli0qp58fxghaf3x0qimd3d1c"; depends=[fields]; };
   Radviz = derive2 { name="Radviz"; version="0.9.3"; sha256="0ayrkax1g7x9jvkl8lni08ydm1lhcwpcbvy1xj9zk3bpd5zpll86"; depends=[dplyr ggplot2 hexbin igraph pracma Rcpp RcppArmadillo rlang]; };
   RagGrid = derive2 { name="RagGrid"; version="0.2.0"; sha256="0crnpd75lyhd0awzqzqy7bzw4ydgxpyhy1ybb1ff4qsnisbjdbba"; depends=[crosstalk htmltools htmlwidgets knitr]; };
   Rage = derive2 { name="Rage"; version="1.6.0"; sha256="0scpig0glh1ajc5fp7xrdb0b5f11x1f5ls43wb6b9kjif4fi25cl"; depends=[DiagrammeR expm MASS popdemo]; };
-  RainfallErosivityFactor = derive2 { name="RainfallErosivityFactor"; version="0.1.0"; sha256="16yrr2bl62m1nr81nzvmdq7s78f7fg50dah5dg5q4j4j7z8qfsqz"; depends=[]; };
+  RainfallErosivityFactor = derive2 { name="RainfallErosivityFactor"; version="1.0.0"; sha256="0yw6a2x7yp49wwx2r38fwbcv74xsb9j7k64q68v2qdk45khmixd9"; depends=[]; };
   RamanMP = derive2 { name="RamanMP"; version="1.0"; sha256="0rdj8vvs9l86yscx2mvy6nazzws8gd1x5bxvszlssinb20pns69z"; depends=[dplyr ggplot2 ggrepel imputeTS]; };
   Ramble = derive2 { name="Ramble"; version="0.1.1"; sha256="0225za85i5nvf8l89i5bz7nxsxykd3v9fp1wgihmncca6n8vhgpl"; depends=[]; };
   RandMeta = derive2 { name="RandMeta"; version="0.1.0"; sha256="0bh3rkdfmwqym47q8f90pw3mmx7q8jyp4rz16ggqrmk1b5bdyqjb"; depends=[]; };
   RandPro = derive2 { name="RandPro"; version="0.2.2"; sha256="092mm9gybvcby2n161nldlq8s2ja2bc43jnkln6ss3lr29rmi9b3"; depends=[caret e1071]; };
   RandVar = derive2 { name="RandVar"; version="1.2.3"; sha256="00zpbbf7b3g38lh1krvwhfyxlz3f9cklfg9z2adi65lwqc27w54b"; depends=[distr distrEx startupmsg]; };
   RandomForestsGLS = derive2 { name="RandomForestsGLS"; version="0.1.4"; sha256="1viq8vv4f0l0ywcr9s1n1vk23a917yj35lgvrpac9rf0vvk70an7"; depends=[BRISC matrixStats pbapply randomForest]; };
+  RandomProjectionTest = derive2 { name="RandomProjectionTest"; version="0.1.4"; sha256="1pg88q7k89s33yfnqkn5d03mc3ix8ihh4q3l6064p44d98wdsw4f"; depends=[glue MASS]; };
   Randomuseragent = derive2 { name="Randomuseragent"; version="0.0.1"; sha256="1ym272z5a2wnprz59db8knszzqglmrdmk77r7cfyzy5jwcqzy4jn"; depends=[]; };
   RanglaPunjab = derive2 { name="RanglaPunjab"; version="2.3.4"; sha256="01j3gww9kil02d44jwlkz6j7lwn2him830bnshkly0s7mgh22pgr"; depends=[jpeg shiny tidyverse]; };
   RankAggSIgFUR = derive2 { name="RankAggSIgFUR"; version="1.0.0"; sha256="0wsmd9p3dfjs650q3b81k91fbl3bpjc8grm4233m8f941cabap8p"; depends=[combinat data_table plyr Rfast]; };
   RankAggreg = derive2 { name="RankAggreg"; version="0.6.6"; sha256="1g70njfv776qgp3i52kr6yxg7x9qliqaj33jm5vkgbajw1ampsdx"; depends=[gtools]; };
   RankAggregator = derive2 { name="RankAggregator"; version="0.0.1"; sha256="0j4s4fv28fbc6ij6fzpmza9n5lfrql8ll33fi65vhczz9pjhpjii"; depends=[]; };
+  RankPCA = derive2 { name="RankPCA"; version="0.1.0"; sha256="1gp1j9lbjvlgf9n2ccb77604l88r0jdp33ryjc7djpy3i3ccr16s"; depends=[caret]; };
   RankResponse = derive2 { name="RankResponse"; version="4.0.0"; sha256="1i686wgqz8pxdjsgyqr9i8fq1779h3jpzzrmh407pknawyii1vmy"; depends=[]; };
   Rankcluster = derive2 { name="Rankcluster"; version="0.98.0"; sha256="0lipl57xx6ik66579vmhammy86iwjlnc7qmkjn9xcj3prkqy5p2i"; depends=[Rcpp RcppEigen]; };
   RankingProject = derive2 { name="RankingProject"; version="0.4.0"; sha256="11i47arl3r32iky29wjawb26g0hiji0ddl70gcrcy8v9j0h01vap"; depends=[]; };
-  Rapi = derive2 { name="Rapi"; version="1.0.4"; sha256="04hfp2v43dh6lix9kaczl02204qigv4xkkxfldz02c5k33r120ac"; depends=[crayon digest dplyr glue httr httr2 jsonlite lubridate magrittr purrr Rcpp rlang rlist stringr tibble]; };
+  Rapi = derive2 { name="Rapi"; version="1.0.5"; sha256="044c3qs6vyijl8j21rs351jvmz2f6i864bzzy8vrh4p58j7zhq0d"; depends=[crayon digest dplyr glue httr httr2 jsonlite lubridate magrittr purrr Rcpp rlang rlist stringr tibble]; };
   RapidPolygonLookup = derive2 { name="RapidPolygonLookup"; version="0.1.1"; sha256="0h4snn3haa4a5rkafg98419by4nnz219wsm3y0dqgm4hw4bvha0g"; depends=[PBSmapping RANN RgoogleMaps sp]; };
   RapidoPGS = derive2 { name="RapidoPGS"; version="2.3.0"; sha256="0jks5v9822gk4gip7027m2l26gccrm81iazn1006n1a0871caf98"; depends=[bigreadr bigsnpr coloc curl data_table dplyr GenomicRanges IRanges magrittr RCurl]; };
   Rapp = derive2 { name="Rapp"; version="0.1.0"; sha256="06rixyz2r4w82dbpr0d3z74hv0kxgd677d9c690jjnm9hrskwfbn"; depends=[yaml]; };
@@ -4603,13 +4682,14 @@ in with self; {
   RationalExp = derive2 { name="RationalExp"; version="0.2.2"; sha256="0a51sfps3sfb71m93jdsmbvj6kafbyfrq790ix238j570f5xafpg"; depends=[snowfall]; };
   RationalMatrix = derive2 { name="RationalMatrix"; version="1.0.0"; sha256="1nzhfmvckb9hp53lyw6gyv5r492n4xii8l1xkr38p5i07r52zq2c"; depends=[BH gmp Rcpp RcppEigen]; };
   Ravages = derive2 { name="Ravages"; version="1.1.3"; sha256="0scfxzfisqcj9zn50pvhy9xrl3k5bgglp11gqxf885yskdiwrkik"; depends=[bedr BH curl data_table dfidx Formula gaston mlogit Rcpp RcppEigen RcppParallel]; };
-  RavenR = derive2 { name="RavenR"; version="2.2.0"; sha256="17m6q6v3s3maj3wlic9id4bll4n3waa34sj8580l1kd5knhybmil"; depends=[colorspace cowplot crayon DiagrammeR dplyr dygraphs gdata ggplot2 igraph lubridate magrittr purrr Rcpp RCurl scales stringr tidyr visNetwork xts zoo]; };
+  RavenR = derive2 { name="RavenR"; version="2.2.2"; sha256="0z1gp1jvh0b80f5bkfg1gg7x116axfgix13hpviyh0c3mfi5yw37"; depends=[colorspace cowplot crayon DiagrammeR dplyr dygraphs gdata ggplot2 igraph lubridate magrittr purrr Rcpp RCurl scales stringr tidyr visNetwork xts zoo]; };
   RawHummus = derive2 { name="RawHummus"; version="0.3.3"; sha256="0m88cywxwwiyvr2i7ipi9yf5znzdjfsmgz2x0ry4d6mm5469rws4"; depends=[config data_table dplyr ggplot2 golem kableExtra markdown plotly purrr RaMS RColorBrewer rmarkdown shiny shinycustomloader shinydashboard shinydashboardPlus shinyMatrix]; };
   Rbeast = derive2 { name="Rbeast"; version="1.0.0"; sha256="1k36rinhm8r6czk60f51p2d895g280k6qrr6qkcqc33l60jl6khi"; depends=[]; };
   Rbent = derive2 { name="Rbent"; version="0.1.0"; sha256="0xkb57dhhfd3342rv0xwbhbhn4zp5fbfch84fbh0sickm09l9vrj"; depends=[Rfit]; };
   RblDataLicense = derive2 { name="RblDataLicense"; version="0.2.5"; sha256="05xwk8j8qgy89vg1dkjwslbbbb3nrqagbiwag8giyzifx7w0gfsp"; depends=[RCurl xts]; };
   Rblpapi = derive2 { name="Rblpapi"; version="0.3.14"; sha256="1xrfz5f7vibsfdn0v3mg7rvbn31j9znqk902cb1fwbqfqnkxw9yx"; depends=[BH Rcpp]; };
   Rborist = derive2 { name="Rborist"; version="0.3-7"; sha256="15i5aj7p3lwp7r84kv7i9jfhwbs8r1yn44shpm9gf17kwvwzw7h1"; depends=[data_table digest Rcpp]; };
+  RbyExample = derive2 { name="RbyExample"; version="0.0.100"; sha256="1fawkazrwsl4wl3lz8izbykz2qqh753s2zx6n22nchhsg5v3ndqs"; depends=[]; };
   Rcan = derive2 { name="Rcan"; version="1.3.82"; sha256="0asmlhh786c9gfgxkqybv8xzz8bqzirxvq8nr4gglx1pc812idkb"; depends=[data_table ggplot2 scales]; };
   Rcapture = derive2 { name="Rcapture"; version="1.4-4"; sha256="0yihjgpmq9agws1b0s3n9s1pdvw1wjfpcyvr8536v4ypfgkmjbcr"; depends=[]; };
   Rcatch22 = derive2 { name="Rcatch22"; version="0.2.1"; sha256="1ggraxn88fl8m63d7aaffifgj34g6nrzjjd696lkj8ysi6x77qdl"; depends=[Rcpp rlang]; };
@@ -4621,16 +4701,16 @@ in with self; {
   RclusTool = derive2 { name="RclusTool"; version="0.91.6"; sha256="03qz4k6h0z1sj2gyyq5sk7hilmynvqvvj35mrml629rxhgjyyhgs"; depends=[class cluster conclust corrplot e1071 factoextra FactoMineR ggplot2 jpeg knitr MASS mclust mda mmand nnet png randomForest reshape rlang SearchTrees sp stringi stringr tcltk2 tkrplot]; };
   Rcmdr = derive2 { name="Rcmdr"; version="2.9-2"; sha256="175c5iqgp2j7x5vjijnklc35nbnyz0s83rzmf7qq8kxv8fv2jmw8"; depends=[abind car effects lme4 RcmdrMisc relimp tcltk2]; };
   RcmdrMisc = derive2 { name="RcmdrMisc"; version="2.9-1"; sha256="0khp8dw1b3v5jqbhnqxjcyyjz9hj9pb98niacn17cf9iln9rr7mc"; depends=[abind car colorspace e1071 foreign haven Hmisc lattice MASS nortest readstata13 readxl sandwich]; };
-  RcmdrPlugin_BWS1 = derive2 { name="RcmdrPlugin.BWS1"; version="0.2-1"; sha256="09g82sg4a6xq9bs486rp1krmdidfn7iq1zf0j5z4sy2zxbmncn6f"; depends=[crossdes Rcmdr support_BWS support_CEs survival]; };
-  RcmdrPlugin_BWS2 = derive2 { name="RcmdrPlugin.BWS2"; version="0.2-1"; sha256="1z9iigy9z65azv163rdps0sk20v964rlgxw294r85v3x0yhgqkjr"; depends=[DoE_base Rcmdr support_BWS2 support_CEs survival]; };
-  RcmdrPlugin_BWS3 = derive2 { name="RcmdrPlugin.BWS3"; version="0.2-2"; sha256="1bwxy858wlwbsx7pdss7kcm7jjaxp95gzbz83h5lhyykv170p5a2"; depends=[Rcmdr support_BWS3 support_CEs survival]; };
+  RcmdrPlugin_BWS1 = derive2 { name="RcmdrPlugin.BWS1"; version="0.2-2"; sha256="0as8nnyfk2fjsc92rxywi36bp41zppwcx9207zywqxb0b3awdn08"; depends=[crossdes Rcmdr support_BWS support_CEs survival]; };
+  RcmdrPlugin_BWS2 = derive2 { name="RcmdrPlugin.BWS2"; version="0.2-2"; sha256="1xsacwicglpcqd6kipqgg68vbhh81d6hi1n6wgliw49iic2jnshg"; depends=[DoE_base Rcmdr support_BWS2 support_CEs survival]; };
+  RcmdrPlugin_BWS3 = derive2 { name="RcmdrPlugin.BWS3"; version="0.2-3"; sha256="09vmq77lk0j9qg4jb05rdys7frf8zpy063k1gq1ja2dw1789rld3"; depends=[Rcmdr support_BWS3 support_CEs survival]; };
   RcmdrPlugin_BiclustGUI = derive2 { name="RcmdrPlugin.BiclustGUI"; version="1.1.3.1"; sha256="1wb1pbwghq1xxpwlihfixx42yf1f1py3hdwh8sfpqklh63ymwifk"; depends=[BcDiag BiBitR BicARE biclust fabia gplots iBBiG Rcmdr s4vd superbiclust viridis]; };
-  RcmdrPlugin_DCCV = derive2 { name="RcmdrPlugin.DCCV"; version="0.1-4"; sha256="1xlzl5qs266h4qhazib0hh1qdi5i31q9bxph8sajjvv4na4py1pv"; depends=[DCchoice Rcmdr]; };
-  RcmdrPlugin_DCE = derive2 { name="RcmdrPlugin.DCE"; version="0.2-2"; sha256="0jy6aiz524g08nr6kyw53xi1j816b22vycq9fhk93181w2gmfm98"; depends=[Rcmdr support_CEs survival]; };
+  RcmdrPlugin_DCCV = derive2 { name="RcmdrPlugin.DCCV"; version="0.1-5"; sha256="12qdjjad7l0rdl2rh7jir5ygw9rz008wpbr0shkarc84sz1aipxr"; depends=[DCchoice Rcmdr]; };
+  RcmdrPlugin_DCE = derive2 { name="RcmdrPlugin.DCE"; version="0.2-3"; sha256="181iww86gvbr6n5wnjqyfqzzpxiv9wyvwx560bw4g55rfnzck67w"; depends=[Rcmdr support_CEs survival]; };
   RcmdrPlugin_DoE = derive2 { name="RcmdrPlugin.DoE"; version="0.12-5"; sha256="0nsaj3wis8fn73spyv90j0magcl3lq4pznfxzdr62rg8w7likqx7"; depends=[DoE_base DoE_wrapper FrF2 Rcmdr RcmdrMisc]; };
   RcmdrPlugin_EACSPIR = derive2 { name="RcmdrPlugin.EACSPIR"; version="0.2-3"; sha256="0v7pw0m8cxpnkdm47b8jb3z94p1igi98s4r8i0gm7x7ad4fzccww"; depends=[abind ez nortest R2HTML Rcmdr RcmdrMisc reshape]; };
   RcmdrPlugin_EBM = derive2 { name="RcmdrPlugin.EBM"; version="1.0-10"; sha256="02zips1jbfn7cshjlrm1gr632px2zxlys8i0f1nrf1gifl44v1qw"; depends=[abind epiR Rcmdr]; };
-  RcmdrPlugin_EZR = derive2 { name="RcmdrPlugin.EZR"; version="1.64"; sha256="0h0pz5y79q3inq45shd785v6cz2i46x0c88v65szrqrv9rnrm1d2"; depends=[Rcmdr readstata13]; };
+  RcmdrPlugin_EZR = derive2 { name="RcmdrPlugin.EZR"; version="1.67"; sha256="035a1ch36ygwknk2hwjxs6ir1izwbqn0iq3y0qxv8iw4qa668ar8"; depends=[Rcmdr readstata13]; };
   RcmdrPlugin_EcoVirtual = derive2 { name="RcmdrPlugin.EcoVirtual"; version="1.0"; sha256="0q879wnrmgbaddv883q9zdnp0i7kjcgn8cffv7lp8nrsqil6l7mc"; depends=[EcoVirtual Rcmdr]; };
   RcmdrPlugin_Export = derive2 { name="RcmdrPlugin.Export"; version="0.3-1"; sha256="17fn3si6b6h20c52k1k6fv9mslw3f9v0x1kxixzcvq54scdx0sk0"; depends=[Hmisc Rcmdr xtable]; };
   RcmdrPlugin_FactoMineR = derive2 { name="RcmdrPlugin.FactoMineR"; version="1.8"; sha256="1fr50yfjh1iy65lkvkw992l02q0vgrw2advj707z02806p69bkn1"; depends=[FactoMineR Rcmdr]; };
@@ -4644,13 +4724,11 @@ in with self; {
   RcmdrPlugin_RMTCJags = derive2 { name="RcmdrPlugin.RMTCJags"; version="1.0-2"; sha256="04g5a1dpch54k5ckfkrg4vsap1nc3af1i0i559qigv3hy8n7pm80"; depends=[coda igraph Rcmdr rjags rmeta runjags]; };
   RcmdrPlugin_ROC = derive2 { name="RcmdrPlugin.ROC"; version="1.0-19"; sha256="1m5k8y2xy78bpyvi2cdnvmicr5dkjxb8v65blcmgrhf7i0zhhj5p"; depends=[pROC Rcmdr ResourceSelection]; };
   RcmdrPlugin_RiskDemo = derive2 { name="RcmdrPlugin.RiskDemo"; version="3.2"; sha256="07v15wnmqqa69gy2kl2jkdgn9nzjj2fz5yy56gkhxczw7j6516ij"; depends=[data_table demography dplyr forecast ftsa ggplot2 Rcmdr scales zoo]; };
-  RcmdrPlugin_SCDA = derive2 { name="RcmdrPlugin.SCDA"; version="1.2.0"; sha256="1yg2b5vcnf956w04phxg15a4my9hvkbc27nzyn30b2wn47ysxghj"; depends=[Rcmdr SCMA SCRT SCVA]; };
   RcmdrPlugin_TeachStat = derive2 { name="RcmdrPlugin.TeachStat"; version="1.1.3"; sha256="1l73zpy94av30x31rskzggaf6bmj7wfx1k6mksmpjmy47hk07qlg"; depends=[distr distrEx Hmisc IndexNumR lme4 Rcmdr tcltk2 tseries]; };
   RcmdrPlugin_TeachingDemos = derive2 { name="RcmdrPlugin.TeachingDemos"; version="1.2-0"; sha256="14zsqjni2w2smq99cv1pjdw90zw83g4nn7h7cn07fms9j0g12yd6"; depends=[Rcmdr TeachingDemos]; };
   RcmdrPlugin_UCA = derive2 { name="RcmdrPlugin.UCA"; version="5.1-1"; sha256="15z2pyi92vznkbfqycc33b39dl2wx0kf2l5w1wv8pr85i5449dzq"; depends=[IQCC qcc qicharts2 randtests Rcmdr rmarkdown TeachingDemos tseries]; };
   RcmdrPlugin_WorldFlora = derive2 { name="RcmdrPlugin.WorldFlora"; version="1.3"; sha256="1rcmn5drv3q09v9hz383010g8377lfiazhjq1vd0f90gf0nl5jfy"; depends=[Rcmdr WorldFlora]; };
   RcmdrPlugin_aRnova = derive2 { name="RcmdrPlugin.aRnova"; version="0.0.5"; sha256="0ys3565pcbr554yb1gi2h149vhvwc0gdfmh7mz8zzd4367hqn553"; depends=[Rcmdr]; };
-  RcmdrPlugin_coin = derive2 { name="RcmdrPlugin.coin"; version="1.0-23"; sha256="1xl077cvabsbzhq3hn4yyc500645lbmyvdnvx2m9rcpwvyghlzvf"; depends=[coin multcomp Rcmdr survival]; };
   RcmdrPlugin_cpd = derive2 { name="RcmdrPlugin.cpd"; version="0.2.0"; sha256="1s0y40nh91fi6i91zvn7q106d4nnshflfnzs8m63skklsdxk3by0"; depends=[cpd Rcmdr RcmdrMisc]; };
   RcmdrPlugin_depthTools = derive2 { name="RcmdrPlugin.depthTools"; version="1.4"; sha256="16y60yymx97nh587939lahsh0mk53yy25zy6i90l9vad0r7ih23v"; depends=[depthTools Rcmdr]; };
   RcmdrPlugin_orloca = derive2 { name="RcmdrPlugin.orloca"; version="4.8.2"; sha256="0nkszrbcprd08p0i9r6k2syg44kyqpdakmwmjf480pwydq3sz69n"; depends=[orloca orloca_es Rcmdr]; };
@@ -4664,12 +4742,13 @@ in with self; {
   RcppAPT = derive2 { name="RcppAPT"; version="0.0.9"; sha256="03q2i1b9lrb0sn0vq4jyqjiy2zwi2ydhzlnw1b8nj9xdfxx804mx"; depends=[Rcpp]; };
   RcppAlgos = derive2 { name="RcppAlgos"; version="2.8.3"; sha256="0ppix426yg8rnh07z2clv634ynvvwmjlsjnsxh3srss6xa8yfrb0"; depends=[cpp11 gmp]; };
   RcppAnnoy = derive2 { name="RcppAnnoy"; version="0.0.22"; sha256="0rcgvmlp3by57k562pbxsncirww1vv8zarfxrjzfgly4hzbj28cz"; depends=[Rcpp]; };
-  RcppArmadillo = derive2 { name="RcppArmadillo"; version="0.12.8.1.0"; sha256="0ax4812dm33c67ckd902qabis3dgqmpkchk4s30bshnfv4fxx1z2"; depends=[Rcpp]; };
+  RcppArmadillo = derive2 { name="RcppArmadillo"; version="0.12.8.4.0"; sha256="0iihy2pbmc56s5s6x7ac1c1biqda60gyqkddvn2c211j0xjnigya"; depends=[Rcpp]; };
   RcppArray = derive2 { name="RcppArray"; version="0.3.0"; sha256="0n32nqqa2cdx0lams95yhdij837asbs6kmaahnf2hm6q0pnwbj43"; depends=[Rcpp]; };
   RcppBDT = derive2 { name="RcppBDT"; version="0.2.6"; sha256="11l70rlayg2xzmg34sg3896adzpfpvplciyicjpk963bddjb2ys8"; depends=[BH Rcpp]; };
   RcppBigIntAlgos = derive2 { name="RcppBigIntAlgos"; version="1.1.0"; sha256="0b83c5s6zpvf545yvpa3fa0nhgvrryg7n11l9200azi897zmlwv3"; depends=[cpp11 gmp]; };
+  RcppBlaze = derive2 { name="RcppBlaze"; version="1.0.1"; sha256="09v2j44dwxrwi4x5d0hcjw4bdfzjlvnxsxx3jyq4l7i3vja2459d"; depends=[Matrix Rcpp]; };
   RcppCCTZ = derive2 { name="RcppCCTZ"; version="0.2.12"; sha256="1jr4hi3zbm935q6ykkvnywlma36d3jl7fxmqhxs62jxbnyyqf81a"; depends=[Rcpp]; };
-  RcppCGAL = derive2 { name="RcppCGAL"; version="5.6.2"; sha256="0mqwlalgddgybf2j1f54lj1d1lxgjcsh6275512cg0xjvss8mkln"; depends=[Rcpp]; };
+  RcppCGAL = derive2 { name="RcppCGAL"; version="5.6.3"; sha256="0jb410wcf9djlii2ry27xbykkanld6vngl141b6i68v40y1c2n73"; depends=[Rcpp]; };
   RcppCNPy = derive2 { name="RcppCNPy"; version="0.2.12"; sha256="16n3c2pfz9i95ngalxc5wvigwd1jfi2qwqm1v605qhidgf2vqvc5"; depends=[Rcpp]; };
   RcppCWB = derive2 { name="RcppCWB"; version="0.6.4"; sha256="17w4jz6rngwm3kqwz0v547s43xvjlxc86y9yy4hnc7blkqcp4w2g"; depends=[fs Rcpp]; };
   RcppCensSpatial = derive2 { name="RcppCensSpatial"; version="0.3.0"; sha256="0ghywbg2zrhd72y3hf99niqlw04gvfzfa02pa581lvvd67z19gjp"; depends=[ggplot2 gridExtra MomTrunc mvtnorm Rcpp RcppArmadillo RcppProgress Rdpack relliptical roptim StempCens]; };
@@ -4693,8 +4772,9 @@ in with self; {
   RcppHMM = derive2 { name="RcppHMM"; version="1.2.2"; sha256="0scdzmns1yw2gbarblzd6cbvndlysz54ff17qijiz17ql5cyzly6"; depends=[Rcpp RcppArmadillo]; };
   RcppHNSW = derive2 { name="RcppHNSW"; version="0.6.0"; sha256="03sqzz1993jsjm5vpyd1n1fpsrdfrky6dpv7m9ialhs1m00fv9m5"; depends=[Rcpp]; };
   RcppHungarian = derive2 { name="RcppHungarian"; version="0.3"; sha256="00wxi77ajnhwds1pnmhbxaykdaiyh6ayblif58sx9r5rvv055c1a"; depends=[Rcpp]; };
-  RcppInt64 = derive2 { name="RcppInt64"; version="0.0.4"; sha256="1gfd4jsg5dvl2pzyqwi2vk16i06hgcskz2a9v7fw79ch80mcnf1c"; depends=[Rcpp]; };
+  RcppInt64 = derive2 { name="RcppInt64"; version="0.0.5"; sha256="1h4lshkn3p3c7swygbpmkg0pa80xcp3f9alck5q4bmml61hicwjk"; depends=[Rcpp]; };
   RcppJagger = derive2 { name="RcppJagger"; version="0.0.2"; sha256="1zzc7vkwylwwgrbak2z32629gbl5jq2gdfc9qq0a8fk7c7rvk988"; depends=[cli purrr Rcpp rlang]; };
+  RcppLbfgsBlaze = derive2 { name="RcppLbfgsBlaze"; version="0.1.0"; sha256="1c3cdnhabxns804baa416fjd62ayy4mn5wcyfay1q2w3cijryjq1"; depends=[Rcpp RcppBlaze]; };
   RcppML = derive2 { name="RcppML"; version="0.3.7"; sha256="1ih8i7i6m221iw227mnl3rvnaw2l53h8fpnc4f8yn9sm10anap1j"; depends=[Matrix Rcpp RcppEigen]; };
   RcppMeCab = derive2 { name="RcppMeCab"; version="0.0.1.2"; sha256="0varavfbrqzma176rw0dr9v5chh7pxh5y9g0rs3v7hqnlghp22y2"; depends=[BH Rcpp RcppParallel]; };
   RcppMsgPack = derive2 { name="RcppMsgPack"; version="0.2.3"; sha256="0ffdw5ckkax8j87q0ykjhyp45l7gvxjppdi73kc4r5qxvijll2g3"; depends=[BH Rcpp]; };
@@ -4707,7 +4787,7 @@ in with self; {
   RcppRoll = derive2 { name="RcppRoll"; version="0.3.0"; sha256="0srzfhzkk42kzrdjnhbb37946jp1p688rgysy6k3i2is8jb21zyb"; depends=[Rcpp]; };
   RcppSMC = derive2 { name="RcppSMC"; version="0.2.7"; sha256="0rp5s8j72al39rihn0q0j0ws6l1bxl1hlbx31mjllzhiq03pn2mq"; depends=[FKF Rcpp RcppArmadillo]; };
   RcppSimdJson = derive2 { name="RcppSimdJson"; version="0.1.11"; sha256="1q5gqa1pp71f952wvl1fpw9r2qm92112x5irw1splf3y6k6m4r6h"; depends=[Rcpp]; };
-  RcppSpdlog = derive2 { name="RcppSpdlog"; version="0.0.16"; sha256="12xryg2mp00nxmpchf0lki43c13c1vsda14pcc4dcfplamwkhlza"; depends=[Rcpp]; };
+  RcppSpdlog = derive2 { name="RcppSpdlog"; version="0.0.17"; sha256="0f1s0c32kid910p2q08d77rwprlxx3cq3ngy0kfgfpy13cvm34aa"; depends=[Rcpp]; };
   RcppStreams = derive2 { name="RcppStreams"; version="0.1.3"; sha256="06il7q3afaws57m0fxf04f2p5dvs23l1f7gl78pxwzclacdy3839"; depends=[BH Rcpp]; };
   RcppTN = derive2 { name="RcppTN"; version="0.2-2"; sha256="0m2wc5n1fzxv56s4gqqnygb24dbadgrpgjm4bs4hr6qazgjapymf"; depends=[Rcpp]; };
   RcppTOML = derive2 { name="RcppTOML"; version="0.2.2"; sha256="1ak3dwzdrmq9kd30i12fy582rsn5xfljw214liv1w8l2rbwr24rp"; depends=[Rcpp]; };
@@ -4723,7 +4803,7 @@ in with self; {
   Rcssplot = derive2 { name="Rcssplot"; version="1.0.0"; sha256="0hnzwjwk9zh4zbzy8sa0z6amikvpd9k1p1abd38khr8q8k1k8jiv"; depends=[]; };
   Rcurvep = derive2 { name="Rcurvep"; version="1.3.1"; sha256="1l29z50ka9n2qma1pk8gw00xhxvzxkrd07dwrd8k5b36kiql2q3y"; depends=[boot dplyr furrr ggplot2 magrittr purrr Rdpack rJava rlang stringr tibble tidyr tidyselect]; };
   Rd2md = derive2 { name="Rd2md"; version="1.0.0"; sha256="130y2s16404jrl6xprra9wnscbpk3adhd29br6w9y0m8ngw2wxj0"; depends=[]; };
-  Rd2roxygen = derive2 { name="Rd2roxygen"; version="1.15"; sha256="08hkwcjzn4kv47cgq2rckrb1fs4y5mic0kb87sk8mc4qbl1353vb"; depends=[formatR roxygen2 xfun]; };
+  Rd2roxygen = derive2 { name="Rd2roxygen"; version="1.16"; sha256="1p8xzgzl1h1ykj1j9c3gyr7a9m89sd9kwr5yqbdy9jkiwmmbb919"; depends=[formatR roxygen2 xfun]; };
   Rdiagnosislist = derive2 { name="Rdiagnosislist"; version="1.2"; sha256="0jnjqwqvaj6brgpmd9xj04ax5dbwqpbb89hhn1m2bd3v9673k1v3"; depends=[bit64 data_table]; };
   Rdice = derive2 { name="Rdice"; version="1.0.0"; sha256="1xibvm690808p2g3jch7rh1825yrpgln2hjfclgxjwn822qvs4xr"; depends=[data_table]; };
   Rdimtools = derive2 { name="Rdimtools"; version="1.1.2"; sha256="0bl8ffyy9jb6xp1jb350fj5pw3zvc1dnrdhl4vi25kl84pp30xl6"; depends=[ADMM CVXR maotai MASS mclustcomp RANN Rcpp RcppArmadillo RcppDE RcppDist Rdpack RSpectra]; };
@@ -4741,7 +4821,7 @@ in with self; {
   ReMFPCA = derive2 { name="ReMFPCA"; version="1.0.0"; sha256="0q7jzya5is4ik8cjirnhixcpgda5s9a450pyksyzc05fmn7rw3rc"; depends=[expm fda Matrix R6]; };
   ReacTran = derive2 { name="ReacTran"; version="1.4.3.1"; sha256="05c9jfvj134gy3by7m3r1fbar0m39vaydr7d2py9cakzs44fqfpj"; depends=[deSolve rootSolve shape]; };
   ReadDIM = derive2 { name="ReadDIM"; version="0.2.11"; sha256="1dyf1hrqcjqramb957kj7ngd65439p7ywa0r2rdlyn4bg89myi7c"; depends=[raster stringr]; };
-  RealVAMS = derive2 { name="RealVAMS"; version="0.4-5"; sha256="17sr3g89p645cn6zb887xvrp9f8rrm7zm9mhgf9ky14fmz644d9r"; depends=[Matrix numDeriv Rcpp RcppArmadillo]; };
+  RealVAMS = derive2 { name="RealVAMS"; version="0.4-6"; sha256="1945vxqj4y6fci3pwrq5jr91ikx2yn91jm33fm0x1x1bzv7krcgh"; depends=[Matrix numDeriv Rcpp RcppArmadillo]; };
   Rearrangement = derive2 { name="Rearrangement"; version="2.1"; sha256="0q253nj62rl65vjsq6503r80qa2j35wac8lv7ydp9w260p28z923"; depends=[quantreg]; };
   RecAssoRules = derive2 { name="RecAssoRules"; version="1.0"; sha256="0jvl9yl1rg69bqb1cimi8r0bry73jhsq73fxfyy33ljwym2cdgv6"; depends=[Rcpp]; };
   Recocrop = derive2 { name="Recocrop"; version="0.4-1"; sha256="1drh1qssnb42p1zl45phpggxhx6is435k9f1vzga0q0dddr5q770"; depends=[meteor Rcpp terra]; };
@@ -4769,12 +4849,13 @@ in with self; {
   RenvModule = derive2 { name="RenvModule"; version="1.1"; sha256="1wmz6k0f9lpa8d7qxqm308l7h11k0cj07q3qisfjic5sp308c3d2"; depends=[]; };
   Renvlp = derive2 { name="Renvlp"; version="3.4.5"; sha256="1af1hjv66kxjljrx1ryr4c8w969jjvdd284nxsh1b7rms80iw16r"; depends=[Matrix matrixcalc orthogonalsplinebasis pls Rsolnp]; };
   RepaymentPlan = derive2 { name="RepaymentPlan"; version="0.1.0"; sha256="1fd4n24bd5s2kqmls7mmsidblaf8nzm97kz52mfsb6i6fci0pgah"; depends=[]; };
-  RepeatedHighDim = derive2 { name="RepeatedHighDim"; version="2.2.0"; sha256="1lx4y2f4qc1vg4iydr1ydv986fi2k4vnd8y3fr54kgkhvy0ni645"; depends=[ddalpha geometry MASS mvtnorm nlme rgl]; };
+  RepeatedHighDim = derive2 { name="RepeatedHighDim"; version="2.3.0"; sha256="17zgmw78lz6ymz8371g03kasfnrj5z9dhhfpgjpfq4ba3g0mvxlx"; depends=[ddalpha geometry MASS mvtnorm netmeta nlme progress rgl]; };
   RepertoiR = derive2 { name="RepertoiR"; version="0.0.1"; sha256="1m7n7p40n3djy91z8z3gqqwscqgij63rjrj2bqbl3baqz16nf4hc"; depends=[circlize igraph reshape2 stringdist stringi stringr]; };
   Replicate = derive2 { name="Replicate"; version="1.2.0"; sha256="0kqy248c8n7qr5hwzvqm7flnjlwd60c577r1d4vzgfxn7azd5v3v"; depends=[ggplot2 metafor]; };
   ReplicationSuccess = derive2 { name="ReplicationSuccess"; version="1.3.2"; sha256="0li1sza6afxizfgcczdi8916mb5z63agpx828a48f50ldc25rlvd"; depends=[]; };
   Repliscope = derive2 { name="Repliscope"; version="1.1.1"; sha256="04sxcnsd8vz5kbzqz52iqzwayrmkzc51bcwnfkp53wymiw4vppiz"; depends=[colourpicker ggplot2 shiny]; };
   RepoGenerator = derive2 { name="RepoGenerator"; version="0.0.1"; sha256="0d6s2sqyycaqrg32xdkp3pr5i7qmvwrfrjcd7f94a9y3lz4bz5b5"; depends=[git2r httr rmarkdown rstudioapi]; };
+  ReporterScore = derive2 { name="ReporterScore"; version="0.1.5"; sha256="0dcxaf8yvcvzxwfk3y8knkk03qr9wa5g382k0cllxjwq8ly0nxcw"; depends=[dplyr foreach ggnewscale ggplot2 ggrepel magrittr pcutils reshape2 scales stringr]; };
   Require = derive2 { name="Require"; version="0.3.1"; sha256="1d87vzxix2lwqjkl5h5kcpvjyd794li5z8vxf1r5dyd7nzmkm1qq"; depends=[data_table]; };
   ResIN = derive2 { name="ResIN"; version="1.1.0"; sha256="0m40s7qsxpphja4cw8d6f7aq5vphqzkqzy61jpa17bnyfq0v9v2d"; depends=[DirectedClustering dplyr fastDummies ggplot2 igraph Matrix qgraph wCorr]; };
   ResPBIBD = derive2 { name="ResPBIBD"; version="0.1.0"; sha256="00a3qbam4dc9lwfyqq63j8q9yppd4nr7pk0wbikjfw6rnbjsl1sh"; depends=[]; };
@@ -4783,10 +4864,11 @@ in with self; {
   ResistorArray = derive2 { name="ResistorArray"; version="1.0-32"; sha256="0zqnl0bbqrj5hn5ywhlqyrlz5ryql88qahlgs9989v4rljcxxlam"; depends=[]; };
   ResourceSelection = derive2 { name="ResourceSelection"; version="0.3-6"; sha256="03vilnchjnl34k07cr7qkc993qh6wdgmrgswrnclnc2pm95fm0qf"; depends=[MASS Matrix pbapply]; };
   RespirAnalyzer = derive2 { name="RespirAnalyzer"; version="1.0.2"; sha256="00qyylmnjlw7hd56bgf48p2za4dqmm7nk7j17g9n219hz11yx0pi"; depends=[pracma Rcpp signal]; };
-  RestRserve = derive2 { name="RestRserve"; version="1.2.1"; sha256="1xfcp0y9l31815g1jk33mnkb6z68qpjl0gb4fj7f4578kx3v1c8p"; depends=[checkmate digest jsonlite mime R6 Rcpp Rserve uuid]; };
+  RestRserve = derive2 { name="RestRserve"; version="1.2.3"; sha256="0d5ppgasaqpgvdi1spxlhp4ywpafbphlhkqfcfvgxrdm6y9igl2c"; depends=[checkmate digest jsonlite mime R6 Rcpp Rserve uuid]; };
   RestoreNet = derive2 { name="RestoreNet"; version="1.0.1"; sha256="1lgdx6kqd5hqrj36p3vhgy42haj74dwb75gdjka61ms4j7l514hf"; depends=[ggplot2 Matrix RColorBrewer scales scatterpie stringr xtable]; };
   RevEcoR = derive2 { name="RevEcoR"; version="0.99.3"; sha256="1nym263ynjdir5kxv35jnmki9mshlplq0sk3xnjd4ac6f1cfbfqj"; depends=[gtools igraph magrittr Matrix plyr purrr stringr XML]; };
   RevGadgets = derive2 { name="RevGadgets"; version="1.2.1"; sha256="02f4wrm6b99s7dwqn5xlsynlfh5clpcgv6dh4d35xj7x71l2h7cv"; depends=[ape deeptime dplyr ggimage gginnards ggplot2 ggplotify ggpp ggtree phytools png reshape scales tibble tidyr tidytree treeio]; };
+  RevSD = derive2 { name="RevSD"; version="0.1.1"; sha256="1wqcfpqd0rm6cbr7nfx85890rhl25aixyvf8kg205z5931c3z710"; depends=[]; };
   ReviewR = derive2 { name="ReviewR"; version="2.3.10"; sha256="1h5vgqxvx5cjcwgrj7ayc7b1xzkgyndif46pjfmaz4pw1sz8990h"; depends=[bigrquery config DBI dbplyr dplyr DT gargle glue golem httr jsonlite magrittr purrr redcapAPI REDCapR rlang RPostgres RSQLite shiny shinycssloaders shinydashboard shinydashboardPlus shinyjs shinyWidgets snakecase stringr tibble tidyr]; };
   Revticulate = derive2 { name="Revticulate"; version="1.0.0"; sha256="00pz8nnbl7dcbbqw8kdbdai1i3jc941l42nppaa1kxk6i3dci7gs"; depends=[ape comprehenr jsonlite knitr rstudioapi stringr usethis]; };
   Rexperigen = derive2 { name="Rexperigen"; version="0.2.1"; sha256="158ksnd1gvzq7ii0ys2v0wrfnr001hni0i8m77p1fn1arixgmqdw"; depends=[digest jsonlite RCurl]; };
@@ -4794,7 +4876,8 @@ in with self; {
   Rfacebook = derive2 { name="Rfacebook"; version="0.6.15"; sha256="0hp2mbm0hnyasizszvh5x9hv7z2q633zck1a1gvk36nbxb1shx7c"; depends=[httpuv httr rjson]; };
   Rfast = derive2 { name="Rfast"; version="2.1.0"; sha256="1zqq4k85i0nbzndkh0iiq3k83ly0mpl3pn4wkka6qxfvk6n6rr7r"; depends=[Rcpp RcppArmadillo RcppParallel RcppZiggurat]; };
   Rfast2 = derive2 { name="Rfast2"; version="0.1.5.2"; sha256="125j6qk405i2wjpcyq0x6dmabns8iybqk9g3f43mk6j08n7fgfp1"; depends=[Rcpp RcppArmadillo RcppParallel Rfast Rnanoflann]; };
-  Rfit = derive2 { name="Rfit"; version="0.24.6"; sha256="0b4gdy54zbbc8zr0krv34ggxnqncgj2hxzqjfg6j21apn7qsv8r2"; depends=[]; };
+  Rfit = derive2 { name="Rfit"; version="0.27.0"; sha256="1wmp2xx8lcap7aags8zv9p7h2d051wfq9dbsb4n34j0ngc4hyg0s"; depends=[]; };
+  Rfmtool = derive2 { name="Rfmtool"; version="5.0.4"; sha256="17rblvpybnsphvv7gph9pplf6d0wp9d99ni3ird1wyjm4nvvi1zv"; depends=[Rcpp]; };
   Rfolding = derive2 { name="Rfolding"; version="1.0"; sha256="15lf73zxr1slin9faj9k0z8qkb1g9nb7h080nfv99gsi2ks68ssg"; depends=[]; };
   Rforestry = derive2 { name="Rforestry"; version="0.10.0"; sha256="1h5bnaakpig7b2041s43kfljywdbdq6kkvv3agld2953nn8kcbw3"; depends=[glmnet onehot pROC Rcpp RcppArmadillo RcppThread visNetwork]; };
   Rfractran = derive2 { name="Rfractran"; version="1.0.1"; sha256="1z1wba2xyas2sa9ny0ii8yd5v5ip8ajxf5szgf3r92cfv3r1s0nj"; depends=[gmp]; };
@@ -4811,19 +4894,19 @@ in with self; {
   Riemann = derive2 { name="Riemann"; version="0.1.4"; sha256="1a3mlfgnzdvl5x1nqnmm4v3xb2nkdq87c21m6xyxbm7zh5vx5b6m"; depends=[CVXR DEoptim lpSolve maotai Matrix Rcpp RcppArmadillo Rdimtools Rdpack RiemBase T4cluster]; };
   Riex = derive2 { name="Riex"; version="1.0.2"; sha256="03627dik6dd9d2kwv757zanh0i4invmcwg162m9ayhv41ygj5z1l"; depends=[dplyr ggplot2 httr purrr quantmod rjson stringr tibble tidyr TTR urltools xts zoo]; };
   Rigma = derive2 { name="Rigma"; version="0.2.1"; sha256="0h0fblnsbrkkvd0cimywa3gq4q7ay9p39f7x2rpis58kj28ra6fn"; depends=[bslib checkmate dplyr fs glue httr2 lubridate magrittr png purrr rlang tibble tidyr withr xml2]; };
-  Rilostat = derive2 { name="Rilostat"; version="2.0.0"; sha256="058nz42ky5xj5lwxmr2gikpyfjmyzwlszvbamqdmz03pf479zgps"; depends=[data_table dplyr haven plyr readr stringr tibble xml2]; };
+  Rilostat = derive2 { name="Rilostat"; version="2.1.0"; sha256="1h4vp6gim5swiy07fhf6l4agh6pi0vlz2f778s2rzsgqc4jdnawj"; depends=[data_table dplyr haven plyr readr stringr tibble]; };
   Rirt = derive2 { name="Rirt"; version="0.0.2"; sha256="0npd2g3a4dh5hlj6l06k1pf0j4731ybqqd4mpi4id16nf81cg104"; depends=[ggplot2 Rcpp reshape2]; };
   Risk = derive2 { name="Risk"; version="1.0"; sha256="1i42xcc699syj108mvgklwb30wkf9c9jrg5rmd2ypnqk9mnyg2fg"; depends=[]; };
   RiskPortfolios = derive2 { name="RiskPortfolios"; version="2.1.7"; sha256="07mhn8imn4y8kf50x2g7i55dyksh0sryjkzb09rkf64x49vq7ban"; depends=[MASS nloptr quadprog]; };
   RiskScorescvd = derive2 { name="RiskScorescvd"; version="0.1.0"; sha256="1lh0ag5k72msvj2pg3v2ajvwysjd638hxbifqklvsv5qjv7hzwfy"; depends=[dplyr PooledCohort]; };
   Rita = derive2 { name="Rita"; version="1.2.0"; sha256="0qc969pjs7bn8c7alisqb2pvba22kkvd3lsfqz5wnrpy311s4jxr"; depends=[lattice]; };
   Ritc = derive2 { name="Ritc"; version="1.0.2"; sha256="03smhxjhjfkc9pxhlgg54b6v2jznpmnws8373qpvn9a9ky5bcq2l"; depends=[minpack_lm]; };
-  RivRetrieve = derive2 { name="RivRetrieve"; version="0.1.4"; sha256="0ghg329qszrcr5s36243l0h8qbkh3sd5jpgnm059dd81sgcsa0qc"; depends=[BBmisc dataRetrieval devtools dplyr httr jsonlite lubridate readr rlang rlist RSelenium rvest stringr tibble tidyhydat tidyr]; };
+  RivRetrieve = derive2 { name="RivRetrieve"; version="0.1.5"; sha256="1lrm5rmnn9wk5r1xfmlnhgfwjz1s0kyck9iy71fc01d2b37lh6wz"; depends=[BBmisc dataRetrieval devtools dplyr httr jsonlite lubridate readr rlang rlist RSelenium rvest stringr tibble tidyhydat tidyr]; };
   RiverBuilder = derive2 { name="RiverBuilder"; version="0.1.1"; sha256="06cd1m4liv2bsh2sxplq2zl45g9zq8gsgvh14d0zr0pqm8z4dsyw"; depends=[]; };
   Rivivc = derive2 { name="Rivivc"; version="0.9.1"; sha256="0vbnkid5cp9af0m2kk3cblb3fr69llzmk6ckjy1brgyvrrmw5hz3"; depends=[signal]; };
   RkMetrics = derive2 { name="RkMetrics"; version="1.3"; sha256="1k6vnr1r4h69iznib638z45gd0f8wc4g4h0ji9f0017883g77li1"; depends=[]; };
   Rlab = derive2 { name="Rlab"; version="4.0"; sha256="019rmciqza5rd5z9hvh8xk20c2rjhzyzp1k5731qm1d3jz5lwx5k"; depends=[]; };
-  Rlabkey = derive2 { name="Rlabkey"; version="3.2.0"; sha256="0knnfz9pp4licn0j771f9fyh1y689qw0yvjdfdnr6fii71x0in6l"; depends=[httr jsonlite Rcpp]; };
+  Rlabkey = derive2 { name="Rlabkey"; version="3.2.2"; sha256="1s7j9vcy0mb358wk0rdc73g94i1xpi3cwxw33gsw0cvga4pmhk6s"; depends=[httr jsonlite Rcpp]; };
   Rlgt = derive2 { name="Rlgt"; version="0.2-1"; sha256="0hrqishf056d8nivm2rya2xxpdzmn69ajnxdp9w39fhdfjhzv90p"; depends=[BH forecast Rcpp RcppEigen RcppParallel rstan rstantools sn StanHeaders truncnorm]; };
   Rlibeemd = derive2 { name="Rlibeemd"; version="1.4.3"; sha256="1r3yqs9pc1mllwvw8asppr59kxvmw8dd15wbvn57ngij7kq6aj1l"; depends=[Rcpp]; };
   Rlibkdv = derive2 { name="Rlibkdv"; version="1.1"; sha256="1lcmnc50bfnrnw03bs3lsxdsj2n3qylfw51w6kvnz9x1qmr9p54p"; depends=[leaflet magrittr raster Rcpp sf]; };
@@ -4838,20 +4921,21 @@ in with self; {
   Rmixmod = derive2 { name="Rmixmod"; version="2.1.10"; sha256="12gi18zkbzi4qb4qk12dbwm1skcyjaydp1g8nm2bfsj5db1r5mcn"; depends=[Rcpp RcppEigen]; };
   Rmodule = derive2 { name="Rmodule"; version="1.0"; sha256="0vbxazms3qmkhc40fb3hbyk84vrv31pmxl756wnm40z3p7l43kzk"; depends=[Matrix Rcpp RcppArmadillo]; };
   Rmolt = derive2 { name="Rmolt"; version="1.0.0"; sha256="0fmis81h4c16wpwx6g60szf9d1gyvi60md2gn2mqln9gcf7w0icy"; depends=[]; };
-  Rmonize = derive2 { name="Rmonize"; version="1.0.1"; sha256="1xyk56lh6w1yiy33sga1shnf3q8zfl3qz4zycf13sddjgzkwmzby"; depends=[crayon dplyr fabR fs haven madshapR rlang stringr tidyr]; };
+  Rmonize = derive2 { name="Rmonize"; version="1.1.0"; sha256="0k9v0larxg35vnq65ybzp9nf5w860vqp7m0jf4q4ax58vj6f17yw"; depends=[crayon dplyr fabR fs haven lifecycle madshapR rlang stringr tidyr]; };
   Rmosek = derive2 { name="Rmosek"; version="1.3.5"; sha256="18q39n2p3gms9zqrl8g15rjjk4v64365v0rm8r7zvvivh1hy5xa0"; depends=[]; };
   Rmpfr = derive2 { name="Rmpfr"; version="0.9-5"; sha256="06zkllbdaddq3jq03k926gfjcijvcysfrqhh76hjklzwkrra5sdw"; depends=[gmp]; };
   Rmpi = derive2 { name="Rmpi"; version="0.7-2"; sha256="1vrf6bakx9i73sdgggpxzl1lxjn68b8pwvmk69d56lnya2gzm4c5"; depends=[]; };
   Rmst = derive2 { name="Rmst"; version="0.0.3"; sha256="1fykpii17k460qlsjhhh5vag02lhkyk5l3zjmg8hifqp0cjhz2fl"; depends=[ggplot2 Rata reshape2 Rirt]; };
-  Rnanoflann = derive2 { name="Rnanoflann"; version="0.0.2"; sha256="1h978qaag2ylcdaxm70lzqcix3wlba64vfccws9nvm3d0ymdj7jl"; depends=[Rcpp RcppArmadillo]; };
+  Rnanoflann = derive2 { name="Rnanoflann"; version="0.0.3"; sha256="04bjyn74n1qlqb58w5nwvahbd5dg872bd5x3iwfvg3qgci6giz26"; depends=[Rcpp RcppArmadillo]; };
   RnavGraphImageData = derive2 { name="RnavGraphImageData"; version="0.0.4"; sha256="1k1gnkghap878fck0bbz9mm0fr4cli6lh1d11r0cf47fvl6cc4gr"; depends=[]; };
+  Rnest = derive2 { name="Rnest"; version="0.0.0.1"; sha256="0fj1a1qsc8v238nv1dsrdw1398ah3qpf5dgimdgipkznb5dnjjc7"; depends=[crayon EFA_MRFA fungible ggplot2 MASS scales]; };
   Rnightly = derive2 { name="Rnightly"; version="0.1.0"; sha256="08sb4ic7my8b6xcjn9vim8wp4z3kvk0gyp604dg1az7czc7ics5r"; depends=[glue htmltools]; };
   Rnmr1D = derive2 { name="Rnmr1D"; version="1.3.2"; sha256="0apkwrsxcp2frq9lmfn70dn2ajaiswnbvfjmqc7lbrimya3pwznb"; depends=[base64enc doParallel foreach ggplot2 igraph impute MASS MassSpecWavelet Matrix minqa plotly plyr ptw Rcpp scales signal XML]; };
   Rnumerai = derive2 { name="Rnumerai"; version="3.0.1"; sha256="0pwb7yk79zbmcrpa9fw1i7yjvr5md2nn67rsl1i1sbjkd1rgg0vd"; depends=[ghql httr jsonlite lubridate]; };
   Rnvd3 = derive2 { name="Rnvd3"; version="1.0.0"; sha256="13l5vcbcm88jfsc11ijkvr1s8qk8fflclazs4kl1k2wzpnlr6z6a"; depends=[data_table htmltools htmlwidgets jsonlite lazyeval lubridate viridisLite]; };
   RoBMA = derive2 { name="RoBMA"; version="3.1.0"; sha256="0cq1hjm49sj4lnzvninf6wlpm0p0rbw3mk6sa36167b6snr6rra2"; depends=[BayesTools ggplot2 mvtnorm Rdpack rjags rlang runjags scales]; };
   RoBSA = derive2 { name="RoBSA"; version="1.0.2"; sha256="1hk4pdkgqjqhn7wxzzgw1f1rz4kk3gri7wispzz0m3nxk7bksw6b"; depends=[BayesTools coda Rdpack rjags rlang runjags scales survival]; };
-  RoBTT = derive2 { name="RoBTT"; version="1.2.1"; sha256="1c97cvbqrf5q5axycxsywqg7x198nxrs4xrqy9lh2isips3das6g"; depends=[BayesTools BH bridgesampling ggplot2 Rcpp RcppEigen RcppParallel Rdpack rstan rstantools StanHeaders]; };
+  RoBTT = derive2 { name="RoBTT"; version="1.3.0"; sha256="00yrl6l6pz1y8j5qwhvwg84lcxvisp578i9fsd3iv9f3hfhsw9nh"; depends=[BayesTools BH bridgesampling ggplot2 Rcpp RcppEigen RcppParallel Rdpack rstan rstantools StanHeaders]; };
   RobAStBase = derive2 { name="RobAStBase"; version="1.2.5"; sha256="16sl3nlb1cl3xyski05l0qhrl23w615sbdmvnnzxnkva6sppxqcx"; depends=[distr distrEx distrMod RandVar rrcov startupmsg]; };
   RobAStRDA = derive2 { name="RobAStRDA"; version="1.2.1"; sha256="156cdx2l3q5ccaan3knfb4khsmr0n2vf7j7yiq5z24z493l2g65w"; depends=[]; };
   RobExtremes = derive2 { name="RobExtremes"; version="1.3.0"; sha256="0dziaykrnhy8ijbq0pxwl5p9xjlbz3kxkmwl3s21kmjnv7nm8sx4"; depends=[actuar distr distrEx distrMod evd RandVar RobAStBase RobAStRDA robustbase ROptEst startupmsg]; };
@@ -4861,13 +4945,15 @@ in with self; {
   RobLoxBioC = derive2 { name="RobLoxBioC"; version="1.2.2"; sha256="1fhf5svfb1sf792aj9xydaj8r9d99ia68b9n5g4nha1ia8jcixwl"; depends=[affy AnnotationDbi beadarray Biobase BiocGenerics distr distrMod lattice RColorBrewer RobLox]; };
   RobMixReg = derive2 { name="RobMixReg"; version="1.1.0"; sha256="13w6zvncwh561wzzqy548x0w25rnzf0pfvi5cc6mzn71x5l7cmh2"; depends=[dplyr flexmix glmnet gplots gtools lars MASS RColorBrewer rlang robust robustbase scales]; };
   RobPer = derive2 { name="RobPer"; version="1.2.3"; sha256="0zhn7lwh3lb9na9h59air2idc3nibjdw2mfgg9qa5h27p9amm1l7"; depends=[BB quantreg rgenoud robustbase]; };
+  RobRegression = derive2 { name="RobRegression"; version="0.1.0"; sha256="11mlxqvrlf8wlmwa44jcp3rxac7yykwa1n0fsmn861zl9b4969y8"; depends=[capushe DescTools doParallel fastmatrix foreach KneeArrower mvtnorm Rcpp RcppArmadillo RSpectra]; };
   RobStatTM = derive2 { name="RobStatTM"; version="1.0.8"; sha256="1qbbh3ykba50ivka1h7b2cyw2km0dk3gl1rgjwaq5rqlmfdwl0nn"; depends=[pyinit robustbase rrcov]; };
+  RobinCar = derive2 { name="RobinCar"; version="0.3.0"; sha256="0pyp73fk871ka85ci2il7cmb2g7cqrj7c53k73x5yr1kp51srxb0"; depends=[AIPW broom data_table dplyr emulator fastDummies magrittr MASS numDeriv rlang SuperLearner survival tidyr tidyverse]; };
   RobinHood = derive2 { name="RobinHood"; version="1.7.0"; sha256="0h8mws0wpyxvnjffrili53daz9bvvgm6lbgwqyzc0kd12radj2d0"; depends=[dplyr httr jsonlite lubridate magrittr profvis uuid]; };
   RobustAFT = derive2 { name="RobustAFT"; version="1.4-7"; sha256="1i000j6d4s0yb99dxyq610a1znkiai9xc9l16wdb7lmnrhixz5qp"; depends=[DEoptimR robustbase survival]; };
   RobustANOVA = derive2 { name="RobustANOVA"; version="0.3.0"; sha256="1kpvahxipcmsqk6mv2zagcvw0glmsj0xkpf6f3gjnckin6mxnjyv"; depends=[optimbase PEIP]; };
   RobustBF = derive2 { name="RobustBF"; version="0.2.0"; sha256="137lsk72sx29lhkc1s698k015vvbmdzb23i8pnlk5204bjfqzch8"; depends=[]; };
   RobustBayesianCopas = derive2 { name="RobustBayesianCopas"; version="2.0"; sha256="0cbibfp4y45cc1disp2r37v0jln0cd9gy3d77z3k9ybj1gg8wa88"; depends=[rjags statip]; };
-  RobustCalibration = derive2 { name="RobustCalibration"; version="0.5.4"; sha256="0qa2krbi1av4dxfw9sb2gl9sif3smllk1yvsrh58ncag729vnv5y"; depends=[nloptr Rcpp RcppEigen RobustGaSP]; };
+  RobustCalibration = derive2 { name="RobustCalibration"; version="0.5.5"; sha256="0ilbj88bgjymyyn7jh7dnxhhba7xrmpsnhkwr1cr53zd9rpywfdf"; depends=[nloptr Rcpp RcppEigen RobustGaSP]; };
   RobustGaSP = derive2 { name="RobustGaSP"; version="0.6.6"; sha256="1pcy0n4krshjw9c4g41m7487qydrjbh45yqg77i74s5bvwd47fnp"; depends=[nloptr Rcpp RcppEigen]; };
   RobustIV = derive2 { name="RobustIV"; version="0.2.5"; sha256="1iz5g0ynkx38vdsf7rm8haai7a8igw3rdqrgxllahnbykwhm4d51"; depends=[CVXR glmnet igraph intervals MASS Matrix]; };
   RobustLinearReg = derive2 { name="RobustLinearReg"; version="1.2.0"; sha256="06137f516gyj64qdmwby7m1xnvj4hxzpqj454jn0xcinvl89380w"; depends=[]; };
@@ -4900,7 +4986,7 @@ in with self; {
   Rraven = derive2 { name="Rraven"; version="1.0.13"; sha256="0nlqr1hzbzbz4rb3hjy01iw8czhaqvwmy9hh728fgl5vajwqwn8g"; depends=[NatureSounds pbapply seewave tuneR warbleR]; };
   Rrdap = derive2 { name="Rrdap"; version="1.0.7"; sha256="0rq62hqdxdp8sn6s5xk651ibhf0854hvm22c3iad3zw63f5v23f2"; depends=[curl rjson stringr]; };
   Rrepest = derive2 { name="Rrepest"; version="1.3.0"; sha256="0j2siwnpp8isgb82qq9s1khjgnhgfygm8487grflw8qniz22cq5f"; depends=[data_table doParallel dplyr flextable foreach labelled magrittr officer purrr stringr tibble tidyr]; };
-  RsSimulx = derive2 { name="RsSimulx"; version="2023.1"; sha256="0j48d94r68lzjpkak67q455q09ivp9fnkcsbqh8qziikzglf2ac5"; depends=[ggplot2 gridExtra]; };
+  RsSimulx = derive2 { name="RsSimulx"; version="2024.1"; sha256="1y0vzzn6a5z8379q807lpv4dsmnrqng5llk7zkwy5n7p06xvly7i"; depends=[ggplot2 gridExtra]; };
   Rsagacmd = derive2 { name="Rsagacmd"; version="0.4.2"; sha256="08xj6dinqnr9ir0ljz0ybyh3wqsbw5hdp27xfvcmc8vi48gf4rlj"; depends=[foreign generics processx rlang rvest sf stars stringr terra tibble]; };
   Rsampling = derive2 { name="Rsampling"; version="0.1.1"; sha256="14rp3j7iaii4rc3jkbijmbgvlagxxqjkz3vvfwwpxix43rsi8zsk"; depends=[]; };
   Rsconctdply = derive2 { name="Rsconctdply"; version="0.1.3"; sha256="12xc1laxgivv4szp8341pvhmxnzzzzc2s4jhnqsqrbx71lbd9szg"; depends=[dplyr rjson rsconnect]; };
@@ -4908,7 +4994,7 @@ in with self; {
   Rsfar = derive2 { name="Rsfar"; version="0.0.1"; sha256="1xskvvvavkdyjhb99qlii9qc0q1m36mxx6g0ybgwbq26lq4ypq7l"; depends=[fda]; };
   Rsgf = derive2 { name="Rsgf"; version="1.0.0"; sha256="1d2bk20ixnfkzbimvsj56arf7brgkwlyrs80snfn5cnvmwic0h8i"; depends=[ggplot2 png stringi stringr]; };
   RsimMosaic = derive2 { name="RsimMosaic"; version="1.0.3"; sha256="0jlzrs9xxlpazvq3iw8znk0bd00bzlry7bgxsxq7xl23akizj0ji"; depends=[fields jpeg RANN]; };
-  Rsmlx = derive2 { name="Rsmlx"; version="2023.1.5"; sha256="1fb4dqnrbdvqbsfk2hnkfwdaiprpyj39kwxz49ywj7h9k4g9lgcw"; depends=[dplyr ggplot2 gridExtra MASS tidyr]; };
+  Rsmlx = derive2 { name="Rsmlx"; version="2024.1.0"; sha256="1y4pgyk0njvlgbxm0hncxjjkrfb1b10c5k7hdy4zmryz3421677j"; depends=[dplyr ggplot2 gridExtra MASS tidyr]; };
   Rsolnp = derive2 { name="Rsolnp"; version="1.16"; sha256="0w7nkj6igr0gi7r7jg950lsx7dj6aipgxi6vbjsf5f5yc9h7fhii"; depends=[truncnorm]; };
   Rsomoclu = derive2 { name="Rsomoclu"; version="1.7.6"; sha256="1jbi4nib0a749k7vkqzhdb5l2jipxq9k8vi5x7i06qns8sb3ajil"; depends=[kohonen Rcpp]; };
   Rspc = derive2 { name="Rspc"; version="1.2.2"; sha256="1cnzqpnh009wfs51dc4id9q3giaa8b6dc75b1lhzpwcvw0cxcy4y"; depends=[]; };
@@ -4918,6 +5004,7 @@ in with self; {
   Rstg = derive2 { name="Rstg"; version="0.0.1"; sha256="1rghac9sjld03rw1sbq2r7rs2fzf3a2xikjb47cfdnk1r73ziysf"; depends=[reticulate]; };
   Rsurrogate = derive2 { name="Rsurrogate"; version="3.2"; sha256="0xl3hgl09zcign5q6424wlmg93r0s73gvj0ak5q75dajyv0knz3y"; depends=[Matrix survival]; };
   Rsymphony = derive2 { name="Rsymphony"; version="0.1-33"; sha256="1y2jcpzi8zn6rxwmp3gxyyk8nq204ri8vv6p4552hb55nnvqvc8s"; depends=[]; };
+  Rtapas = derive2 { name="Rtapas"; version="1.2"; sha256="0vcd3zbrckmszj1w8jrjybym0y4dfaljajdr48fbx0x52cqly865"; depends=[ape distory paco parallelly phytools stringr vegan]; };
   Rtauchen = derive2 { name="Rtauchen"; version="1.0"; sha256="09282k6qsjxgm26682npfjymmbx5g8flcc44awmkjl2k4fa1q9ha"; depends=[]; };
   Rthingsboard = derive2 { name="Rthingsboard"; version="0.2.7"; sha256="165yx215vmsx3r5zqzh0awf5jzznxsapq49c3q5qrhcircbnjfcg"; depends=[dplyr httr logger]; };
   Rtnmin = derive2 { name="Rtnmin"; version="2016-7.7"; sha256="0f8ii87v29v61b93hx2yxdppp3nvgnl5imp80sbb4bjsdg0mf989"; depends=[]; };
@@ -4927,9 +5014,10 @@ in with self; {
   Rttf2pt1 = derive2 { name="Rttf2pt1"; version="1.3.12"; sha256="10x580dnzddm9z045gya5ya01d10s9mpp0fy8ilrldlh74q7ljqb"; depends=[]; };
   Rtumblr = derive2 { name="Rtumblr"; version="0.1.0"; sha256="19vl079icyh615ac8wxw810dfqlj3c1lpr0gjkkc030jpl2g0yzr"; depends=[dplyr httr tibble]; };
   Rtwalk = derive2 { name="Rtwalk"; version="1.8.0"; sha256="0zxf66lsfq8by40flv34xzd5yy0wa1ah9li1d0h7f0yh9nbwhxl5"; depends=[]; };
+  Rtwobitlib = derive2 { name="Rtwobitlib"; version="0.3.6"; sha256="0mww366wpa7r4wfm6i03nh5y9z2vdsdl36ry2h8njj8w8h2wd80c"; depends=[]; };
   Runuran = derive2 { name="Runuran"; version="0.38"; sha256="1fjr9pbjih6ahbsd557p3d5j8klj11wnnn7jkhjcry1spwlzdkhr"; depends=[]; };
   Rvcg = derive2 { name="Rvcg"; version="0.22.2"; sha256="077p4c16nqi6ayxv1i31cr6sw9fwnxpmfkmrrhzh02khpi2c2jg5"; depends=[Rcpp RcppArmadillo RcppEigen]; };
-  Rveg = derive2 { name="Rveg"; version="0.1.3"; sha256="0r4q5iyfi9f95kzmhjgy1jdiv85wr16m5yhgq9zz36sjs4miif2m"; depends=[dplyr]; };
+  Rveg = derive2 { name="Rveg"; version="0.1.4"; sha256="1a4cb19gvq1lm2v918pskpfpxl4xqb06hm08wacv7gj4wyvj7adi"; depends=[dplyr]; };
   Rwave = derive2 { name="Rwave"; version="2.6-5"; sha256="1r72kcc5f9k38ks39nh9x1y7k1kxrbyv7lywqpsy7wknnddzg7kc"; depends=[]; };
   Rwclust = derive2 { name="Rwclust"; version="0.1.0"; sha256="0c7q2i9n22sqj3wq9m0j49y5h14848myjbixrdkic8lvv91dm438"; depends=[checkmate Matrix]; };
   RweaveExtra = derive2 { name="RweaveExtra"; version="1.1-0"; sha256="0w2ih5v1xa8v3z2xqy8mvl1f36jdrb56mpnvijgk3cbwk317dg9i"; depends=[]; };
@@ -4954,13 +5042,12 @@ in with self; {
   SAMBA = derive2 { name="SAMBA"; version="0.9.0"; sha256="0gxc1s82bfhqj1rpmp0fm87frv77rgr8qjqai7zdgfz3jm474any"; depends=[optimx survey]; };
   SAME = derive2 { name="SAME"; version="0.1.0"; sha256="0v7x1zl8y81affdp0cs9xxzm03xy9pg8wh9kljwmdq3anmaqhqfg"; depends=[boot coda expint extraDistr ggplot2 rjags survival]; };
   SAMGEP = derive2 { name="SAMGEP"; version="0.1.0-1"; sha256="01f460vk60sl3f9cg2pqcpi5r2rayjhgsp73w1ik1g4rhrs4bl9s"; depends=[abind doParallel foreach mvtnorm nlme nloptr pROC Rcpp RcppArmadillo]; };
-  SAMM = derive2 { name="SAMM"; version="1.1.1"; sha256="175jk3s9w68ccw1h019380lp9cajfsy3zigcnplp87pcn3qg7x2i"; depends=[Rcpp RcppArmadillo]; };
   SAMTx = derive2 { name="SAMTx"; version="0.3.0"; sha256="18r03w74fcra3c0xa76jnkkms9pjirdmgb2k1dnz7symqf9cvc5l"; depends=[BART]; };
   SAMUR = derive2 { name="SAMUR"; version="1.1"; sha256="1ihxr455hxpk3mz113j7ai36lw9i4v60yd4x50j7npzcpq5r0mwk"; depends=[Matching]; };
   SAMprior = derive2 { name="SAMprior"; version="1.1.1"; sha256="1xp3wvgjp9252l8w42fsr61bh6ggs3b21df182rw3irh2ijn1mc0"; depends=[assertthat checkmate ggplot2 Metrics RBesT]; };
   SAMtool = derive2 { name="SAMtool"; version="1.6.4"; sha256="187j6i0giq45mgg1bb33ssiryipdk7ahc8jpimij3icxy9v73d4b"; depends=[abind dplyr gplots MSEtool pbapply RcppEigen rmarkdown snowfall TMB vars]; };
-  SANple = derive2 { name="SANple"; version="0.1.0"; sha256="1ss9p8pw5k1rp8xap98bd587xfhr006xwbf85c1az3rc1p4rji77"; depends=[RColorBrewer Rcpp RcppArmadillo RcppProgress salso scales]; };
-  SANvi = derive2 { name="SANvi"; version="0.1.0"; sha256="1rcg5j8gvcz1wi2qzhsblb7ml8l6hiimyzpk2bkl6hicrgjrzi66"; depends=[matrixStats RColorBrewer Rcpp RcppArmadillo scales]; };
+  SANple = derive2 { name="SANple"; version="0.1.1"; sha256="1v3yhhfj93zwvngplpfxrrysrfjkyv5hfz02fgjl8fvxsif1dq0g"; depends=[RColorBrewer Rcpp RcppArmadillo RcppProgress salso scales]; };
+  SANvi = derive2 { name="SANvi"; version="0.1.1"; sha256="17sb8gq4nnjn0zqgdi7xs749i8f46gswkmj0skh89hlq5m3kvrv4"; depends=[matrixStats RColorBrewer Rcpp RcppArmadillo scales]; };
   SAP = derive2 { name="SAP"; version="1.0"; sha256="129szqkh4snlqn5q09yaqf6sd04nvai3a0ifk0b36yrqj92v6fd1"; depends=[BSDA]; };
   SAPP = derive2 { name="SAPP"; version="1.0.9-1"; sha256="1ngyxgmb13rcgzblpa7v6v390pyymglvvb4j8x7z4038v24s7qj6"; depends=[]; };
   SAR = derive2 { name="SAR"; version="1.0.3"; sha256="1cnf0hsq82lzssvz5xs2abvnrjxda0g6mjx70a1j223zdwjqmw64"; depends=[AzureRMR AzureStor dplyr httr jsonlite Matrix R6 Rcpp RcppArmadillo RcppParallel]; };
@@ -4971,10 +5058,11 @@ in with self; {
   SASmarkdown = derive2 { name="SASmarkdown"; version="0.8.2"; sha256="0xrrmb2zmm0mdg4akm5rnzbxxx690w9mv90mp830kbs42i0haqqg"; depends=[knitr xfun]; };
   SASmixed = derive2 { name="SASmixed"; version="1.0-4"; sha256="0491x4a3fwiy26whclrc19alcdxccn40ghpsgwjkn9sxi8vj5wvm"; depends=[]; };
   SAVER = derive2 { name="SAVER"; version="1.1.2"; sha256="1s1kw8idkaj7j90fw4qn9k0wd4vz0sblsk06ry6lm4afcar0p158"; depends=[doParallel foreach glmnet iterators Matrix]; };
-  SAiVE = derive2 { name="SAiVE"; version="1.0.4"; sha256="1k77671ycw9152lnj25mx634cmgqhnpppfyvdxsvmwgjshhp57fb"; depends=[caret crayon doParallel proxy rlang terra VSURF]; };
+  SAiVE = derive2 { name="SAiVE"; version="1.0.6"; sha256="08f6icmr4x6kn0d7r98v9cmjqbfqgp1hzya68bl8p9fzfkjnmg4k"; depends=[caret crayon doParallel proxy rlang terra VSURF]; };
   SAutomata = derive2 { name="SAutomata"; version="0.1.0"; sha256="0d9q7bm2f7s4aslml40n43vwcdkc8rnn9ygydccwi4b9a7y23k58"; depends=[]; };
   SBAGM = derive2 { name="SBAGM"; version="0.1.0"; sha256="0vb1679016b0bhz2xlka9wgr2fxwa0447ymfncm1n5fks60rrnnf"; depends=[forecast MSGARCH rugarch]; };
   SBCK = derive2 { name="SBCK"; version="1.0.0"; sha256="1z5svxa639245jmv3bsikmbch8j4j51d7rjwhj62zcaxhb3ykhcs"; depends=[R6 Rcpp RcppEigen ROOPSD transport]; };
+  SBI = derive2 { name="SBI"; version="0.1.0"; sha256="1m4s0qmk1z3npxk952w57dxrp4asb9ixx0clxh7xjl24kvymrnrs"; depends=[]; };
   SBICgraph = derive2 { name="SBICgraph"; version="1.0.0"; sha256="04c9xb9fdxz62qdsfkdkckvfpccrc7n5j3j5v1lgjywxq6l78wsm"; depends=[glmnet MASS network]; };
   SBMSplitMerge = derive2 { name="SBMSplitMerge"; version="1.1.1"; sha256="1h44qwz9gkwwgkac25h4vn0kq3mjvjsyq99yfd8v8g6g8fkkclaq"; depends=[ggplot2 reshape2 scales]; };
   SBN = derive2 { name="SBN"; version="1.0.0"; sha256="1k4x8hzjrzvaxnq9z9rykc65lfp4x75nhjrfpk6llq9hqjms2n06"; depends=[igraph]; };
@@ -4986,6 +5074,7 @@ in with self; {
   SCBiclust = derive2 { name="SCBiclust"; version="1.0.1"; sha256="1vmymdrci4kynjb074c10sg27labx7axnlbb9dqhwby7s55a6c78"; depends=[sigclust sparcl]; };
   SCBmeanfd = derive2 { name="SCBmeanfd"; version="1.2.2"; sha256="045498q71zqgcg8p3665vwd99a8ybf21y0sa7y8316zw66wb1caz"; depends=[boot KernSmooth]; };
   SCCI = derive2 { name="SCCI"; version="1.2"; sha256="08ibazxiqmkm3n9g8bfp0cfq26zmg6x2fxb064g3z05nczsf72db"; depends=[Rcpp]; };
+  SCCS = derive2 { name="SCCS"; version="1.7"; sha256="0cx7xw15pwkk2nza8ng4ic6mq07vgf5idcclkwdyp3ry5j3rqnvl"; depends=[corpcor fda gnm R_methodsS3 survival]; };
   SCDB = derive2 { name="SCDB"; version="0.4.0"; sha256="0n6vmn7jjl8lp5yf53kxh2d3660sbwjnl7chiv4x7dkidi81lfnr"; depends=[checkmate DBI dbplyr dplyr glue lifecycle openssl parallelly purrr R6 rlang stringr tidyr tidyselect]; };
   SCEM = derive2 { name="SCEM"; version="1.1.0"; sha256="1fxxkv965gb0wq06rclv05xxlzk8p9l8hzbnqcf0nbbymyn73fqr"; depends=[devtools mathjaxr]; };
   SCEPtER = derive2 { name="SCEPtER"; version="0.2-4"; sha256="1098pvq3a7k9czxapszkakc8lr9sfvj7a643iivil5fcqfk0j50r"; depends=[MASS]; };
@@ -4999,7 +5088,7 @@ in with self; {
   SCOPRO = derive2 { name="SCOPRO"; version="0.1.0"; sha256="08pxr7kn2d77g614s6rb2qbd8g5vf6b2w1pwcp9i191b524n844p"; depends=[ggplot2]; };
   SCOR = derive2 { name="SCOR"; version="1.1.2"; sha256="0isws2ajla2nhdg5hhfab0s5ihihm4w8h6zyvncapchfaj2c8vmf"; depends=[doParallel foreach iterators]; };
   SCORNET = derive2 { name="SCORNET"; version="0.1.1"; sha256="13aibikvrc3ril4gqki4fk4y7ha85bniqabmaifzbr1dw5xy2wxm"; depends=[doParallel foreach Matrix pracma Rcpp RcppArmadillo survival]; };
-  SCORPION = derive2 { name="SCORPION"; version="1.0.1"; sha256="1wixh89b591kwkncm2kbl1piai64wgnbfr106ylwlqwhj4a5xhjg"; depends=[cli igraph irlba Matrix pbapply RANN RhpcBLASctl]; };
+  SCORPION = derive2 { name="SCORPION"; version="1.0.2"; sha256="0bkhg3y7irbigy14l9a747032ljhssvgcj1gdqs07p76k0x6fv5y"; depends=[cli igraph irlba Matrix pbapply RANN RhpcBLASctl]; };
   SCORPIUS = derive2 { name="SCORPIUS"; version="1.0.9"; sha256="0i464i6fbxxcrvc48ajmz7i75sqfwizjypbbmc0mmj0dgmnxgby9"; depends=[dplyr dynutils dynwrap ggplot2 lmds MASS Matrix mclust pbapply pheatmap princurve purrr ranger RANN RColorBrewer reshape2 tidyr TSP]; };
   SCOUTer = derive2 { name="SCOUTer"; version="1.0.0"; sha256="1s0mmzfz0zhr5v4wagcjwdba8a5f57xr26vwml92dnw6lai37pj4"; depends=[ggplot2 ggpubr]; };
   SCRIP = derive2 { name="SCRIP"; version="1.0.0"; sha256="1cv8443y2s67q3krsyj7r2d1vqv01w8xr0iz8dz4kijmhksyg7ng"; depends=[BiocGenerics BiocManager checkmate crayon edgeR fitdistrplus knitr mgcv S4Vectors Seurat SingleCellExperiment splatter SummarizedExperiment]; };
@@ -5008,6 +5097,7 @@ in with self; {
   SCdeconR = derive2 { name="SCdeconR"; version="1.0.0"; sha256="0wp7l226hw75jgi9j7n4c2f0nxlrmi3z3iv5wi5vhflvndgr95ym"; depends=[Biobase data_table dplyr edgeR foreach ggplot2 glmGamPoi gtools harmony MASS Matrix mgcv NMF reshape2 Seurat]; };
   SCperf = derive2 { name="SCperf"; version="1.1.1"; sha256="1kqi3sv9ds58l20pdcnjrrbf7fin82j73yqj5rbx4kjdw560ylb2"; depends=[]; };
   SCpubr = derive2 { name="SCpubr"; version="2.0.2"; sha256="121q8f823rcmn56sz17d2khismvf9hnr3d7dwmjavxwy25bhb76b"; depends=[]; };
+  SCtools = derive2 { name="SCtools"; version="0.3.3"; sha256="0mwpia145swzqgxfh0h6fzmd1v5jxwigbw2rqm4rmla60yapn5hz"; depends=[cvTools dplyr furrr future ggplot2 magrittr purrr stringr Synth tidyr]; };
   SDAR = derive2 { name="SDAR"; version="0.9-55"; sha256="1a1dy4wpzhfaqxv4x8knazh4kjx042rnkmvxf62r6wkgbfvq4r6b"; depends=[grImport2 linbin readxl]; };
   SDAResources = derive2 { name="SDAResources"; version="0.1.1"; sha256="13zb8sx7913wpj1jhi5sb0ps8fgzxfvjx75p218n166w54rxjqjs"; depends=[]; };
   SDCNway = derive2 { name="SDCNway"; version="1.0.1"; sha256="0zmjc3xh4qvwyrq4ma2k6q08f4ny4iqnl5a640pj17jk8awzwbg0"; depends=[dplyr ggplot2 MASS plyr Rdpack]; };
@@ -5015,7 +5105,7 @@ in with self; {
   SDGdetector = derive2 { name="SDGdetector"; version="2.7.3"; sha256="0gm23f0xqw2cgig44d17qw2mfp685bz0dr8wrly4r90w44l121z9"; depends=[dplyr ggplot2 magick magrittr rnaturalearth scales stringr tidyr]; };
   SDLfilter = derive2 { name="SDLfilter"; version="2.3.3"; sha256="0f565626kbi5rigsla5843rczmfi0hwmrwn2410smfhjvhywmlqy"; depends=[data_table dplyr emmeans geosphere ggmap ggplot2 ggspatial gridExtra lubridate maps pracma sf stars]; };
   SDMtune = derive2 { name="SDMtune"; version="1.3.1"; sha256="0zzra0vig3gyz3b0h66fdlkpl2ii939d7k6p7ym5mzhz1vqdaljz"; depends=[cli dismo gbm ggplot2 jsonlite maxnet nnet randomForest Rcpp rlang rstudioapi stringr terra whisker]; };
-  SDPDmod = derive2 { name="SDPDmod"; version="0.0.4"; sha256="03nwahpf3vd29jrr55ml3wxb8kcm9wf9mlzlbgv4yzadxmx6ybab"; depends=[Matrix plm RSpectra sf sp spdep]; };
+  SDPDmod = derive2 { name="SDPDmod"; version="0.0.5"; sha256="1f136nb32y3lnnhyri03y8p5akc2c06g9rynx53w702fyi72bgy6"; depends=[Matrix plm RSpectra sf sp spdep]; };
   SDPrism2D = derive2 { name="SDPrism2D"; version="0.1.1"; sha256="1f1k6lk0fh9dz11703fpbmvjl2gyq4y7l4khigl1h69j9xv97yf3"; depends=[]; };
   SDT = derive2 { name="SDT"; version="1.0.0"; sha256="1jwpfd1pnzy9wcl90qv5bgwi19shsw9064dvml9zwbif8yw8dzjj"; depends=[quadprog]; };
   SDaA = derive2 { name="SDaA"; version="0.1-5"; sha256="1gs29jaj46i2bhbnpa0s6bhdrylz1s6wnif5cyc5m7xl19s413gb"; depends=[]; };
@@ -5044,18 +5134,20 @@ in with self; {
   SGDinference = derive2 { name="SGDinference"; version="0.1.0"; sha256="13sqchniiq5d8k0rkilmn33lhl5lrqkswwny3zzk6d6alh6x7jh8"; depends=[Rcpp RcppArmadillo]; };
   SGL = derive2 { name="SGL"; version="1.3"; sha256="055mx876ydg4kzvcm6rxfkxqz849zgzkzsskvrfgwj9fs1k6ja2v"; depends=[]; };
   SGP = derive2 { name="SGP"; version="2.1-0.0"; sha256="1msz3ccgmmwwla70gwwichgzjhzym942wa6hw0imr5cgkm4hk0kq"; depends=[Cairo callr colorspace crayon data_table digest doParallel equate foreach gridBase gtools iterators jsonlite matrixStats plotly quantreg randomNames rngtools RSQLite sn svglite toOrdinal]; };
+  SGPR = derive2 { name="SGPR"; version="0.1.2"; sha256="1bywllnf7gsk3gi3y77qshjd20735vf54g164qsxm3x1n7zjr0p3"; depends=[Rcpp]; };
   SGPdata = derive2 { name="SGPdata"; version="27.0-0.0"; sha256="0d6lwxqp9ajzinfg258gaqr2k537v32f1gfn7565vsdrlp9miki3"; depends=[crayon data_table]; };
   SHAPforxgboost = derive2 { name="SHAPforxgboost"; version="0.1.3"; sha256="0b3h6py80a0dmb8f8j4h7a7d0k6ld8l0qr24r8pxxy7dbqbyxh5x"; depends=[BBmisc data_table ggExtra ggforce ggplot2 ggpubr RColorBrewer xgboost]; };
-  SHELF = derive2 { name="SHELF"; version="1.9.0"; sha256="1hqrkikvhsbzfbsy7ng4mal76fv4sr2xjzxf3gf2l7a4cwrf7nj1"; depends=[ggExtra ggplot2 ggridges gridExtra Hmisc rmarkdown scales shiny shinyMatrix tidyr]; };
+  SHELF = derive2 { name="SHELF"; version="1.10.0"; sha256="0867d66iak8kb4mkbj16k5b5dm58xsk5djm7r1xha3m2f73yalvd"; depends=[ggExtra ggplot2 ggridges Hmisc rmarkdown scales shiny shinyMatrix sn tidyr]; };
   SHT = derive2 { name="SHT"; version="0.1.8"; sha256="03mzjm0hx1i8jz7gam19zyr5w6whwk7a3gfid68h5hj8x60p04wx"; depends=[flare pracma Rcpp RcppArmadillo Rdpack]; };
   SI = derive2 { name="SI"; version="0.2.0"; sha256="0i6kpaw5yk39skm77nf56ai25clkparz3l8qx0223jrmdqbf97b7"; depends=[]; };
-  SIAmodules = derive2 { name="SIAmodules"; version="0.1.0"; sha256="1jd72pvkqsciql76crikn3r6nrxgwz8yxlsnla51i1hx5qb8ix73"; depends=[cli difNLR dplyr DT forcats ggplot2 glue lme4 magrittr mirt mirtCAT plotly purrr rlang scales shiny ShinyItemAnalysis shinyjs stringr tibble tidyr yaml]; };
+  SIAmodules = derive2 { name="SIAmodules"; version="0.1.1"; sha256="1x6a1apscxdrqlh0dnz9slrfiz4vhxx32rp32lfg27sc1awlx6xy"; depends=[cli difNLR dplyr DT forcats ggplot2 glue lme4 magrittr mirt mirtCAT plotly purrr rlang scales shiny ShinyItemAnalysis shinyjs stringr tibble tidyr yaml]; };
+  SIAtools = derive2 { name="SIAtools"; version="0.1.0"; sha256="07vl7c0fkpxyk970h35prxks1prd6827bvglq2iqy0micmr6g7qr"; depends=[cli desc fs magrittr purrr rlang shiny usethis yaml]; };
   SIBER = derive2 { name="SIBER"; version="2.1.9"; sha256="00sr2h0fry102z2jdzsf20jav04gfskdcznzfpkjr4y5h4vv62cb"; depends=[dplyr ggplot2 hdrcde magrittr mnormt purrr rjags spatstat_geom spatstat_utils tidyr]; };
   SIBERG = derive2 { name="SIBERG"; version="2.0.3"; sha256="1d8kx5m86qil50d8fhwn7lwaigdnppzk0cwyh4hv54lwffpclnki"; depends=[mclust]; };
   SID = derive2 { name="SID"; version="1.1"; sha256="0wqbv9mlrcf0kjdd8n43vf7fjlhp2nialaaid5dfjsxnlzbf1sl6"; depends=[igraph Matrix pcalg RBGL]; };
   SIDES = derive2 { name="SIDES"; version="1.18"; sha256="12a87kdbdhqqjjs0k99c1fv0mxi0gjhvq71rm9wvx3wkf0s5p5sv"; depends=[doParallel foreach MASS memoise multicool nnet survival]; };
   SIGN = derive2 { name="SIGN"; version="0.1.0"; sha256="1ak4zv5a50iknrxpfw1iffn8gv8mc0rz2gk96nzky9zx6li5drhk"; depends=[GSVA survcomp survival]; };
-  SIHR = derive2 { name="SIHR"; version="2.0.1"; sha256="1pn59ydm4rr8jkqkrfrrip92pic8710qaazc3ccw6pvhvw20n46a"; depends=[CVXR glmnet]; };
+  SIHR = derive2 { name="SIHR"; version="2.1.0"; sha256="03i78kpp5gnq9v4b8rq6v0ndlsjfj2rr1m9gnl10v7z8j021qw1q"; depends=[CVXR glmnet]; };
   SILGGM = derive2 { name="SILGGM"; version="1.0.0"; sha256="1lhmisgg2zbfksl7czz0fqag3732gkjc44n615ipxbdi2pvnc7m0"; depends=[glasso MASS Rcpp reshape]; };
   SILM = derive2 { name="SILM"; version="1.0.0"; sha256="1iaivpdx18djfm5dqak0q9kfl1xfrnx3gk5x9a4y53h1d7jhl9p6"; depends=[glmnet hdi scalreg SIS]; };
   SIMEXBoost = derive2 { name="SIMEXBoost"; version="0.2.0"; sha256="1w7r4rw4zbfk3ks3iinsvv0fcmc15xlq8ybb6bhfafki298kingi"; depends=[MASS]; };
@@ -5064,7 +5156,7 @@ in with self; {
   SIMPLE_REGRESSION = derive2 { name="SIMPLE.REGRESSION"; version="0.1.6"; sha256="06kqmvj8pbfgnlib0d6dzg1bh41l6jgwx6b02lgvc6z3nqnpm08w"; depends=[nlme]; };
   SIMle = derive2 { name="SIMle"; version="0.1.0"; sha256="1lwi9dxv93f6fnc3j0lkl7kvf806z5f5s8flxzm2km3j5fl0bp2j"; depends=[ggplot2 Matrix plotly RCurl Sie2nts stringr]; };
   SIMplyBee = derive2 { name="SIMplyBee"; version="0.3.0"; sha256="0013sdgyq29w9yah1yafkd0vj9sgw5lkhi5g5fcb59w386nlfhm5"; depends=[AlphaSimR extraDistr R6]; };
-  SINRELEF_LD = derive2 { name="SINRELEF.LD"; version="1.0.3"; sha256="11pjn5b4s4sv18313zvlpszlr6503p0aysrl6lv28s1342ymgz4l"; depends=[]; };
+  SINRELEF_LD = derive2 { name="SINRELEF.LD"; version="1.1.0"; sha256="15y8a56y3kjjxri1jjzb7wxpbs25bcxjnrzpabgj8rbrp3a4ghsq"; depends=[shiny shinycssloaders shinyjs]; };
   SIPDIBGE = derive2 { name="SIPDIBGE"; version="0.2.1"; sha256="1scrr08fpyv2qk8yqccwbvzslxp0cjv3939kkcs3v577l6ywb414"; depends=[cli COVIDIBGE PNADcIBGE PNDSIBGE png PNSIBGE purrr rstudioapi tibble]; };
   SIPETool = derive2 { name="SIPETool"; version="0.1.0"; sha256="1w5sidiajrckps358xr526jfb4d0845p595qhr5i9b9q506n0klk"; depends=[Convolutioner]; };
   SIPmg = derive2 { name="SIPmg"; version="1.4.1"; sha256="1f3jirfnxxbrkala5kk0hkkm8gn2zciva6xy459vc80y058hr7z1"; depends=[data_table DESeq2 dplyr ggplot2 ggpubr HTSSIP lazyeval magrittr MASS phyloseq plyr purrr rlang stringr tibble tidyr]; };
@@ -5089,6 +5181,7 @@ in with self; {
   SLModels = derive2 { name="SLModels"; version="0.1.2"; sha256="1c9r4kd2kfh2cn82kngzcqhdmxc4i7djp436s116gy9xs2gd2042"; depends=[ROCR]; };
   SLOPE = derive2 { name="SLOPE"; version="0.5.0"; sha256="0v176w2zj32j8988xf0d7myfcr0ahh49gckfav4v73z6ilfmbchy"; depends=[checkmate foreach ggplot2 glmnet Matrix mice Rcpp RcppArmadillo]; };
   SLPresElection = derive2 { name="SLPresElection"; version="1.0.0"; sha256="1i813q0m9h964nd61kwnvakci3n1bn06pvq9zvxb2clcch05qyfj"; depends=[]; };
+  SLSEdesign = derive2 { name="SLSEdesign"; version="0.0.3"; sha256="09ng145z98xh92fddi76g7grwg77y08zyqa8z1hy4lx1z0x5i5g7"; depends=[CVXR]; };
   SLTCA = derive2 { name="SLTCA"; version="0.1.0"; sha256="0pq87fbi79srgjblv40yyj3w1dzf115kfidp8gi564l8xf0qilqg"; depends=[geepack Matrix mvtnorm VGAM]; };
   SMARTbayesR = derive2 { name="SMARTbayesR"; version="2.0.0"; sha256="15s6vzxgbskjvgd91q0vb9qxmmsj391bjbw7s51j879cfqd16xg2"; depends=[LaplacesDemon]; };
   SMARTp = derive2 { name="SMARTp"; version="0.1.1"; sha256="0gkhl9j4l67brfmln28m4q4hfi271jlg5aijnjwahlj8nsi6384y"; depends=[covr mvtnorm sn]; };
@@ -5102,9 +5195,9 @@ in with self; {
   SMM = derive2 { name="SMM"; version="1.0.2"; sha256="1g1c7ssdcnzgv6b221ya1xrypg2ksahc7qj1042j8nlx5wg29cld"; depends=[DiscreteWeibull seqinr]; };
   SMMA = derive2 { name="SMMA"; version="1.0.3"; sha256="1nwxp447m1igm7dlxw5kqw472f8470svwx9awjp2d84m66wplinr"; depends=[Rcpp RcppArmadillo]; };
   SMME = derive2 { name="SMME"; version="1.1.1"; sha256="12z02njv81d86275dv1l2f93y1i4cnq9lxk0yyaacgj3bnpdcm7h"; depends=[Rcpp RcppArmadillo]; };
-  SMMT = derive2 { name="SMMT"; version="1.1.0"; sha256="1zjvdjz75qhfdm4maiq2rw9bzqa2xls15vpr3556iba5aq4hysv7"; depends=[curl dplyr rvest tibble XML xml2]; };
+  SMMT = derive2 { name="SMMT"; version="1.2.0"; sha256="02mm2f4cg8dbzdmpmdv8pf2jskk5kv0w99qzdjri00zwrcd6ckm9"; depends=[curl dplyr rvest tibble XML xml2]; };
   SMNCensReg = derive2 { name="SMNCensReg"; version="3.1"; sha256="10nik348b6vcmwhj5scjvkjwi86fih3bqkgpv7qxxa8jx45ds52n"; depends=[Matrix PerformanceAnalytics]; };
-  SMOTEWB = derive2 { name="SMOTEWB"; version="1.1.3"; sha256="196arp5gfz066qw5n7q2w6hgx3p9q52hs7a9qva69yrm5qlrmr66"; depends=[FNN RANN Rfast rpart]; };
+  SMOTEWB = derive2 { name="SMOTEWB"; version="1.2.0"; sha256="1vkkzp8vcr1pf010871wl5c6d9knryx2lvqcxn6nfy42ffbr5yx9"; depends=[FNN RANN Rfast rpart]; };
   SMPracticals = derive2 { name="SMPracticals"; version="1.4-3.1"; sha256="1xplp7ihy9ish7fqhc27bhvij9lk9w9mrs7lpdca38ppi4iiafi2"; depends=[ellipse MASS nlme survival]; };
   SMR = derive2 { name="SMR"; version="2.1.0"; sha256="0gg3al3qpcvw3k5zm4j36kbd2ar7pqgxxx0jngcg76j1sjhz9g9m"; depends=[Rcpp]; };
   SMUT = derive2 { name="SMUT"; version="1.1"; sha256="029ishj3jfq957bbkb2xw4jj0qpm4dasb8vpdik43pvd670mgq5s"; depends=[MASS Rcpp RcppEigen SKAT]; };
@@ -5117,8 +5210,8 @@ in with self; {
   SNPknock = derive2 { name="SNPknock"; version="0.8.2"; sha256="121pdgvdffj61hw8x8m76na0cg5iw5gb586q05ikw5d959mmbzrs"; depends=[Rcpp RcppArmadillo RcppProgress Rdpack]; };
   SNSFdatasets = derive2 { name="SNSFdatasets"; version="0.1.1"; sha256="1jam5j2s9imfrfdc3w80v4j0gnb09jkpq41lhrz636xw1wm2cids"; depends=[]; };
   SNSchart = derive2 { name="SNSchart"; version="1.4.0"; sha256="18rpg2zkqa6bxnbq3s0hlsg4wizz6iw3vckf5z66q3awxqycabg9"; depends=[MASS]; };
-  SNSeg = derive2 { name="SNSeg"; version="1.0.2"; sha256="17fr4jl0cwbiyb1f4695c4vs0vfaslaxfpsksa24hfb5x5z0mcap"; depends=[evd mvtnorm Rcpp truncnorm]; };
-  SNSequate = derive2 { name="SNSequate"; version="1.3-4"; sha256="122x0l6lkih99n9ay3mj76ssk5h2cqh477xpizqvp3b6nkj8wkf3"; depends=[emdbook knitr magic plyr progress statmod]; };
+  SNSeg = derive2 { name="SNSeg"; version="1.0.3"; sha256="0p2a8ilxg17a2idnbiaqlmlpbafadl8w1np4bxzbgkkjs0s0qijc"; depends=[mvtnorm Rcpp]; };
+  SNSequate = derive2 { name="SNSequate"; version="1.3-5"; sha256="0k0g55jvm0ig6sgwkvsc63idf3vnbcw49a00l2f9rp8bqhglr0ip"; depends=[Ake emdbook equate knitr magic moments plyr progress statmod]; };
   SNVLFDR = derive2 { name="SNVLFDR"; version="1.0.1"; sha256="1nl414b1x5inp3bld5aipygz3d36x4z0jg3jirwyq9mdl9w3qbvw"; depends=[]; };
   SOAR = derive2 { name="SOAR"; version="0.99-11"; sha256="1n38gx5sxpkqfkk4y6vpp6g19b8bs5bisni9wn6311s0csizp86m"; depends=[]; };
   SOAs = derive2 { name="SOAs"; version="1.4"; sha256="1a3gwqyhw9fzb06xmyapxw0xyff1arb4sfsg3id7blkgxsmahd75"; depends=[combinat conf_design DoE_base FrF2 igraph lhs partitions sfsmisc]; };
@@ -5152,13 +5245,12 @@ in with self; {
   SPINA = derive2 { name="SPINA"; version="4.1.0"; sha256="0x7y150iq072qqci2niqk7j8pvhcylb7kdvwambg1r1gi3ffycm9"; depends=[]; };
   SPLICE = derive2 { name="SPLICE"; version="1.1.2"; sha256="1vzacbgb2z6b7cbcn6l5zjminl8gr5irzva0l8shq7g8cqggrvwm"; depends=[lifecycle SynthETIC zoo]; };
   SPORTSCausal = derive2 { name="SPORTSCausal"; version="1.0"; sha256="1ww1wi3kflwj1f5slfv0mfi7gbaj7y8rk1m3n15szpxb9zm8grks"; depends=[CausalImpact keras]; };
-  SPOT = derive2 { name="SPOT"; version="2.11.14"; sha256="15hgf0mx48z7yxb1zrhilc0lradcxak7wrbibq1r8yhxdf736zlr"; depends=[DEoptim ggplot2 glmnet laGP MASS nloptr plgp plotly randomForest ranger rgenoud rpart rsm]; };
-  SPOTMisc = derive2 { name="SPOTMisc"; version="1.19.52"; sha256="0l3css9hw75r76g2iykf2iih8lqnpzqqv2l734zix3agjr5cmmlh"; depends=[callr dplyr GGally ggplot2 keras magrittr Metrics mlr plotly RColorBrewer reticulate rlang rpart_plot rsample sensitivity smoof SPOT tensorflow tfdatasets]; };
   SPOUSE = derive2 { name="SPOUSE"; version="0.1.0"; sha256="10p3x3862dss779jfxw1kxhs3g94zpjpvnlww1gsw1c5hxzvmqb5"; depends=[]; };
   SPPcomb = derive2 { name="SPPcomb"; version="0.1"; sha256="1kn3pi3c7g7waill1grm382ixbvnc7z8pbgzqd94hxqzgkivhid7"; depends=[nleqslv]; };
   SPREDA = derive2 { name="SPREDA"; version="1.1"; sha256="0fn4p5apjq8zgd3zms2b88ga5wbsv86y59ac5x06w75rf071xglv"; depends=[nlme survival]; };
   SPSL = derive2 { name="SPSL"; version="0.1-9"; sha256="0kf6mmbvavid3dw2l4fkclk669wi13wkyykhwn5272d6qnhlhhca"; depends=[]; };
   SPSP = derive2 { name="SPSP"; version="0.2.0"; sha256="0gf5cw2fnssl198ccpvnma4bcqi33whl6ihc1s9i2lw6xg4qvb33"; depends=[glmnet lars Matrix ncvreg Rcpp]; };
+  SPUTNIK = derive2 { name="SPUTNIK"; version="1.4.2"; sha256="1jp1gprib1ppwnsgr7457b48ljlb70s2rzccq660d5lrngs8afca"; depends=[doSNOW e1071 edgeR foreach ggplot2 imager infotheo irlba reshape spatstat_explore spatstat_geom viridis]; };
   SPYvsSPY = derive2 { name="SPYvsSPY"; version="0.1.1"; sha256="1hxc73wwrzqh1r1xr9yd4hy4ma24virg4iv978lfyc9f9n56znp5"; depends=[]; };
   SPlit = derive2 { name="SPlit"; version="1.2"; sha256="0n9458sj5sw4k9qd11gvmqmjf9hy1hh0bwx1jzm6r901l1wbp7xi"; depends=[Rcpp RcppArmadillo]; };
   SPmlficmcm = derive2 { name="SPmlficmcm"; version="1.4"; sha256="1acs3560a7h6xx286m40abr9b7i5qihn6wni8flj0biahmsszzx6"; depends=[nleqslv]; };
@@ -5174,7 +5266,7 @@ in with self; {
   SRS = derive2 { name="SRS"; version="0.2.3"; sha256="0nx1sj91xkwplcmflq9c21zndaa4m21m9iqax86v947k070q48ql"; depends=[DT shiny shinybusy shinycssloaders vegan]; };
   SRTsim = derive2 { name="SRTsim"; version="0.99.6"; sha256="1436lhpjbciln8xmr9sd7d0akh5kap8a9f0az7209c1zqc46i576"; depends=[concaveman dashboardthemes dplyr FNN ggplot2 ggpubr magrittr MASS Matrix matrixStats Morpho pdist plotly S4Vectors sf shiny shinyBS shinydashboard sp spatstat_geom spatstat_random viridis]; };
   SRTtools = derive2 { name="SRTtools"; version="1.2.0"; sha256="1203i6nqclx0faxyvhdaapmfxy8h95jj83svxriqh1hpava5s1dy"; depends=[magrittr]; };
-  SSBtools = derive2 { name="SSBtools"; version="1.5.0"; sha256="1lsba4xilk9jdhbqp386kyg0y7p7vn97zb1v077aikkzs94qbyph"; depends=[MASS Matrix stringr]; };
+  SSBtools = derive2 { name="SSBtools"; version="1.5.2"; sha256="1rkmnlgs3car1allc7cr8sq2skgq3bpa274a797rmq8zjkqky16q"; depends=[MASS Matrix stringr]; };
   SSDM = derive2 { name="SSDM"; version="0.2.9"; sha256="03w1rkzpkhhz251pcy57fmyq0jdf4cplv3ns0h7j76fs2v9pfn3x"; depends=[dismo doParallel e1071 earth foreach gbm ggplot2 iterators itertools leaflet magrittr mgcv nnet poibin randomForest raster reshape2 rpart scales sdm sf shiny shinydashboard spThin]; };
   SSDforR = derive2 { name="SSDforR"; version="1.5.34"; sha256="12lrvh9231cix5lkc53cf4fk11sfa89011kj2qddk3lkmcyvcwfz"; depends=[Kendall MAd MASS metafor modifiedmk psych SingleCaseES TTR]; };
   SSEparser = derive2 { name="SSEparser"; version="0.1.0"; sha256="1qjvrs8cv2m4g2rjcdylwss641z4cchzsdymn0lmmdpfcnfys1vy"; depends=[magrittr purrr R6 rlang stringr]; };
@@ -5214,14 +5306,14 @@ in with self; {
   STV = derive2 { name="STV"; version="1.0.2"; sha256="02cd78z2k08gg5kskw1m53dc2xyl9f8qhcnhvy9n90ckakw6h19h"; depends=[]; };
   STraTUS = derive2 { name="STraTUS"; version="1.1.2"; sha256="0n3i7gbycp1f10058h9xlh3yk21w2izdb3xgs793mmh1i1sjy394"; depends=[ape ggplot2 ggtree gmp igraph phangorn RcppAlgos]; };
   SUMMER = derive2 { name="SUMMER"; version="1.4.0"; sha256="0x93mppdaah7sznzk1rrw76ia07fnjmb676q1rrya6bzkv5fbf5z"; depends=[data_table fields ggplot2 ggridges haven Matrix RColorBrewer reshape2 scales sf shadowtext sp spdep survey survival terra viridis]; };
-  SUNGEO = derive2 { name="SUNGEO"; version="1.2.1"; sha256="19r6xw1mxyx8n0sv6kxwvr7rp7ahyzziwizgm2la9h0j5dyk58jw"; depends=[automap cartogram data_table dplyr httr jsonlite measurements packcircles purrr RANN raster Rcpp RCurl rlang rmapshaper sf spdep stringr terra]; };
+  SUNGEO = derive2 { name="SUNGEO"; version="1.3.0"; sha256="0ydwsrgqknngx7567xwfhwj1jdmi4ip1jxkb5jdy41f7ysy1myd0"; depends=[automap cartogram data_table dplyr httr jsonlite measurements packcircles purrr RANN raster Rcpp RCurl rlang rmapshaper sf spdep stringr terra]; };
   SUSY = derive2 { name="SUSY"; version="0.1.0"; sha256="0l0mxvas80d9n3vv9bqxw2dk8q1ikwg616hraprcs70aabh7717w"; depends=[]; };
   SVDNF = derive2 { name="SVDNF"; version="0.1.8"; sha256="1dps1qjr3a9wwzmi6vdr515lhvqligjhm7qdh7frii1y9lc4hzc2"; depends=[Rcpp]; };
   SVN = derive2 { name="SVN"; version="1.0.1"; sha256="0n93lqb1f2s2qvzc8lrcqmr0fhd57xqbi0ymrqqmll31ns679m92"; depends=[data_table igraph memoise]; };
   SWIM = derive2 { name="SWIM"; version="1.0.0"; sha256="1pfrwxn4rha7a68b82lq18x6acyhjy9d8nn2hdwd9hhf576vkvhg"; depends=[ggplot2 Hmisc nleqslv plyr Rdpack reshape2]; };
   SWMPr = derive2 { name="SWMPr"; version="2.5.0"; sha256="1p7gzyzdm3fiam76dwl2sb3drphifakx2mj5jz1v3gp57xyhihiz"; depends=[data_table dplyr ggplot2 gridExtra httr lattice oce openair RColorBrewer reshape2 suncalc tictoc tidyr XML zoo]; };
   SWMPrExtension = derive2 { name="SWMPrExtension"; version="2.2.5.1"; sha256="107v5fh3h03dk9ma67hj8988hfmswrl9lfijhjv5b4ww73n2v6x7"; depends=[broom curl dplyr EnvStats flextable ggimage ggplot2 ggthemes lubridate magrittr officer purrr RColorBrewer rlang scales sf SWMPr tidyr tidyselect]; };
-  SWTools = derive2 { name="SWTools"; version="1.0.1"; sha256="10hj8y19s7bi4grchn574z26f42pi7mdls75bzmy8n81phk6482d"; depends=[dplyr forcats ggmap ggplot2 httr hydroTSM jsonlite lubridate magrittr readr reshape2 rlang rmarkdown segmented sf sp stringr tibble tidyr zoo]; };
+  SWTools = derive2 { name="SWTools"; version="1.0.3"; sha256="134kmw30xxw90wnzb3z6s6j21vjrxfp2q0alvy2abpmgl6wmhlvp"; depends=[dplyr forcats ggplot2 ggspatial httr hydroTSM jsonlite lubridate magrittr prettymapr readr reshape2 rlang rmarkdown segmented sf stringr tibble tidyr zoo]; };
   SYNCSA = derive2 { name="SYNCSA"; version="1.3.4"; sha256="0n9za302x638s666xs86zy94qch9wn0rln8xy6x9jymhhq9zn0kj"; depends=[FD permute RcppArmadillo vegan]; };
   SafeVote = derive2 { name="SafeVote"; version="1.0.0"; sha256="1shv5l0grx3bsb0md5ann5dyh18w9i4q2nsar0qmd6cgl87ml4qn"; depends=[data_table dplyr fields forcats formattable ggplot2 knitr stringr]; };
   SailoR = derive2 { name="SailoR"; version="1.2"; sha256="04qrnps40845ypapf37jg1c1g05nii6iwk4fv1x5xyca963hl5ii"; depends=[]; };
@@ -5236,7 +5328,7 @@ in with self; {
   ScaleSpikeSlab = derive2 { name="ScaleSpikeSlab"; version="1.0"; sha256="11n3pi15x77by0ikiawhnvlky6hp6qzwmsmp4l2hjng1469y7gg6"; depends=[Rcpp RcppEigen TruncatedNormal]; };
   Scalelink = derive2 { name="Scalelink"; version="1.0"; sha256="0likfjw5999zd0kv1ykby78bl0x3xgh0v1yjssk7fnw1ghkxgdib"; depends=[Rcpp RcppParallel]; };
   ScatterDensity = derive2 { name="ScatterDensity"; version="0.0.4"; sha256="126jvjgfja6vyjadl3a7ahpb8z99hazijai4ymvnr1g1wcnx1z19"; depends=[pracma Rcpp RcppArmadillo]; };
-  SchoolDataIT = derive2 { name="SchoolDataIT"; version="0.1.0"; sha256="1zizhpy74dyka8fzvwdi9iqbkwrpjmqad5jwszhgp0lpywpcyn9k"; depends=[curl dplyr ggplot2 httr leafpop magrittr mapview readr readxl rlang rvest sf stringr tidyr xml2]; };
+  SchoolDataIT = derive2 { name="SchoolDataIT"; version="0.1.2"; sha256="1mhjlll6vplg7alnrl359bb5gvf5b54f2pf4lpazsv29hqiavhqg"; depends=[curl dplyr ggplot2 httr leafpop magrittr mapview readr readxl rlang rvest sf stringr tidyr xml2]; };
   SciViews = derive2 { name="SciViews"; version="0.9-13.1"; sha256="0wm4vnjh65jxyg82m8l08kanl414qiaz0cc6srshb8sdx2sixkfi"; depends=[ellipse]; };
   ScoreEB = derive2 { name="ScoreEB"; version="0.1.1"; sha256="0lvdywkw2g0xdgf7zj39h1903rd0jg2lzgqq7cfni11pniv6265n"; depends=[data_table]; };
   ScorePlus = derive2 { name="ScorePlus"; version="0.1"; sha256="07hmrx1k256i4cs605j5bpg6brzypryxlcnjkzqak8cw4f26k24q"; depends=[combinat igraph igraphdata limSolve RSpectra]; };
@@ -5246,17 +5338,19 @@ in with self; {
   ScreenClean = derive2 { name="ScreenClean"; version="1.0.1"; sha256="0haanr05g4vwp5apncyzv8i3r61g4xf9ihm8ilcabcgpri56gpjk"; depends=[MASS Matrix quadprog]; };
   ScriptMapR = derive2 { name="ScriptMapR"; version="0.0.3"; sha256="18pd23yqn3ai1yfl149081n42hbh0d57hm71s2lhm1z7a5ccjkmf"; depends=[dplyr formatR RCy3 stringr]; };
   SeBR = derive2 { name="SeBR"; version="1.0.0"; sha256="0xk002y4nim5f3mcfbl3zk484cf2s5mvg1paj2jg4f5v60vr4pwp"; depends=[fields GpGp MASS quantreg spikeSlabGAM statmod]; };
-  SeaVal = derive2 { name="SeaVal"; version="1.1.1"; sha256="1ghkq6vqnzzw711s309s5802hrc6q5vxa8ijlp46s579r61ifa3v"; depends=[data_table ggplot2 ggplotify lifecycle maps ncdf4 patchwork RColorBrewer scales]; };
+  SeaVal = derive2 { name="SeaVal"; version="1.2.0"; sha256="1j4y96pqh6h791hiz07f6c4bhacm8n5v720bkwpkmbkky39yi2bf"; depends=[data_table ggnewscale ggplot2 ggplotify lifecycle maps ncdf4 patchwork RColorBrewer scales stringr]; };
   SearchTrees = derive2 { name="SearchTrees"; version="0.5.5"; sha256="1n0y91y1l657g61klbcjz82ddj2csdpnralc3rbk1hbwr4nxk069"; depends=[]; };
   SecDim = derive2 { name="SecDim"; version="3.2"; sha256="04l4qpw409dj5i494vmf7vmksis6910599gh259nbyv0pdfw5svr"; depends=[geosphere RcppArmadillo]; };
   SeedCalc = derive2 { name="SeedCalc"; version="1.0.0"; sha256="1p8ncf3l2zhpbbblpjagg8cg9gf7f2izdcgc48n1aq4f7bmjbqgk"; depends=[]; };
+  SeedImbibition = derive2 { name="SeedImbibition"; version="0.1.0"; sha256="05gxixj69nqvb9d4v81d7359nl3dihglxqysr1ys6qz3vzjr8zq4"; depends=[]; };
   SeedMatchR = derive2 { name="SeedMatchR"; version="1.1.1"; sha256="138chb0z1gyhvl56g3a7zf4nash1v3v5l3qfxiqai2kxvladmz9y"; depends=[AnnotationHub Biostrings cowplot dplyr GenomeInfoDb GenomicFeatures ggmsa ggplot2 lifecycle msa stringr testit]; };
+  SeedVigorIndex = derive2 { name="SeedVigorIndex"; version="0.1.0"; sha256="00r7n7h3b81pnq0bbgm6pgbz7w3algk1apawmc15apg9zi85x8dp"; depends=[]; };
   SegCorr = derive2 { name="SegCorr"; version="1.2"; sha256="1g4bwfs539jf7ckzjyindi3v1av7vd38yz16m7cb20qqa0a33kbj"; depends=[jointseg]; };
   Sejong = derive2 { name="Sejong"; version="0.01"; sha256="0j10szvdn32b7xnvhcbj89xma64bq62936b3r18n1limjpismfws"; depends=[]; };
   SeleMix = derive2 { name="SeleMix"; version="1.0.2"; sha256="03q5pdgxdfx944zwpl2w7gzf23va4flbd8in3g03980smq0ai2c1"; depends=[mvtnorm]; };
   Select = derive2 { name="Select"; version="1.4"; sha256="1qx4wwxxwjq31vf645xvwb0y2z5h4v6ca8fcrfpaj5kc33f333v2"; depends=[ade4 FD lattice latticeExtra Rsolnp]; };
   SelectBoost = derive2 { name="SelectBoost"; version="2.2.2"; sha256="189hdr50sikg6pr9x9amjmgg9z0c95j65bddmifsy7zvjhllzjiy"; depends=[abind Cascade glmnet igraph lars msgps Rfast spls varbvs]; };
-  SelectionBias = derive2 { name="SelectionBias"; version="1.0.0"; sha256="1lqpa5yyxipnx31r0gmja59dk85gmpg9j1rzpc9vh0lq3l87878b"; depends=[arm]; };
+  SelectionBias = derive2 { name="SelectionBias"; version="2.0.0"; sha256="00fk3ljm3x1slffni6g4j61s2766znlmamg16vmbkfjmrbb80nfy"; depends=[arm lifecycle]; };
   SemNeT = derive2 { name="SemNeT"; version="1.4.4"; sha256="0240r7vsr39s53756gmg3s70cv0qaipxaw6b2bgr8fipf11dw15m"; depends=[broom car dplyr effects ggplot2 igraph magrittr pbapply philentropy plyr qgraph scales]; };
   SemNetCleaner = derive2 { name="SemNetCleaner"; version="1.3.4"; sha256="1fll6i4bz2z07h23z5m3x8hqw5rkianh0w6v8gnnkjqlrnacpfp9"; depends=[easycsv editData foreign miniUI R_matlab readxl rstudioapi searcher SemNetDictionaries shiny stringdist stringi]; };
   SemNetDictionaries = derive2 { name="SemNetDictionaries"; version="0.2.0"; sha256="1yhhva79hhj1imzw0n8wkyrb6pmxcqs7kq9czs392xzc6lqk9xr2"; depends=[easycsv knitr]; };
@@ -5265,7 +5359,7 @@ in with self; {
   SemiEstimate = derive2 { name="SemiEstimate"; version="1.1.3"; sha256="0zqxy50glx3xkzz6z41nifqxjgva5fk2x6fbbhdm39fham2yb34f"; depends=[]; };
   SemiMarkov = derive2 { name="SemiMarkov"; version="1.4.6"; sha256="0nga790kcrvmbrx5asp4062711x0kjsccc246l4syiiw30b769ig"; depends=[MASS numDeriv Rsolnp]; };
   SemiPar = derive2 { name="SemiPar"; version="1.0-4.2"; sha256="0pa3drpvclkw81ji5m1h5arj5c2rh03dnlff97cnnr1v5kvg1i4w"; depends=[cluster MASS nlme]; };
-  SemiPar_depCens = derive2 { name="SemiPar.depCens"; version="0.1.1"; sha256="08z73bw7qjns16zci0m0wq2i4f60v7xmcrsa9iy692xpijqp30lh"; depends=[copula doParallel foreach pbivnorm survival]; };
+  SemiPar_depCens = derive2 { name="SemiPar.depCens"; version="0.1.2"; sha256="1dkyq8gilcxy4rml917851f7yn252g8xf6rr0glvai1jz5iyi8js"; depends=[copula doParallel foreach pbivnorm survival]; };
   SenSpe = derive2 { name="SenSpe"; version="1.3"; sha256="0mmf2pyh0nbf7jpb49bplh9gh3ijx0dybzsjdrprqz3gicm6qlly"; depends=[]; };
   SenSrivastava = derive2 { name="SenSrivastava"; version="2015.6.25.1"; sha256="101qq84pii8m9naw0nnaqnbqbzjpfvvc2dql4a8hbihjhvyxbjxa"; depends=[]; };
   SenTinMixt = derive2 { name="SenTinMixt"; version="1.0.0"; sha256="1yja63087nhb5c0wlql7yynjkhkrjw69amvz4w55xqvp605rh46f"; depends=[data_table doSNOW expint foreach mclust rlist snow tidyr TSdist withr zipfR]; };
@@ -5287,8 +5381,9 @@ in with self; {
   SequentialDesign = derive2 { name="SequentialDesign"; version="1.0"; sha256="1gi37pixwbpy7358id1c75rckr352hs8vjs8sk8qgsr97pkm5xdq"; depends=[Sequential]; };
   SetMethods = derive2 { name="SetMethods"; version="4.0"; sha256="0pzxcqbc7jnsxhv902qw2q9rcqskib11z36d5nav9wny6bj2z658"; depends=[admisc betareg fmsb ggplot2 ggrepel QCA scatterplot3d stargazer]; };
   SetTest = derive2 { name="SetTest"; version="0.2.0"; sha256="08wc6cbnannmwkncqhpcw6l0y7c1v7z3awk5j7fd853nszfmpbk0"; depends=[]; };
-  Seurat = derive2 { name="Seurat"; version="5.0.3"; sha256="08r5l6sk8i134izd29ydfm7hva7a9b3lfglmgngc9w73qs9dzwz4"; depends=[cluster cowplot fastDummies fitdistrplus future future_apply generics ggplot2 ggrepel ggridges httr ica igraph irlba jsonlite KernSmooth leiden lifecycle lmtest MASS Matrix matrixStats miniUI patchwork pbapply plotly png progressr purrr RANN RColorBrewer Rcpp RcppAnnoy RcppEigen RcppHNSW RcppProgress reticulate rlang ROCR RSpectra Rtsne scales scattermore sctransform SeuratObject shiny spatstat_explore spatstat_geom tibble uwot]; };
-  SeuratObject = derive2 { name="SeuratObject"; version="5.0.1"; sha256="0hgrymldcqja40prr23gwx1c7lvwjjwcla3dld6x8wzkzqh1gkjs"; depends=[future future_apply generics lifecycle Matrix progressr Rcpp RcppEigen rlang sp spam]; };
+  Seurat = derive2 { name="Seurat"; version="5.1.0"; sha256="0nad49g13v5zg4rr2099m1cl1qcmmj1a0m09gam5xiccg8yv9kxd"; depends=[cluster cowplot fastDummies fitdistrplus future future_apply generics ggplot2 ggrepel ggridges httr ica igraph irlba jsonlite KernSmooth leiden lifecycle lmtest MASS Matrix matrixStats miniUI patchwork pbapply plotly png progressr purrr RANN RColorBrewer Rcpp RcppAnnoy RcppEigen RcppHNSW RcppProgress reticulate rlang ROCR RSpectra Rtsne scales scattermore sctransform SeuratObject shiny spatstat_explore spatstat_geom tibble uwot]; };
+  SeuratObject = derive2 { name="SeuratObject"; version="5.0.2"; sha256="1kx0icqzjck7vynxj5962sz9zlassia4j32azr9y7ds5yhhhvlyy"; depends=[future future_apply generics lifecycle Matrix progressr Rcpp RcppEigen rlang sp spam]; };
+  ShapDoE = derive2 { name="ShapDoE"; version="1.0.0"; sha256="1lv0kci2yxlyswfmc0wm3iqzw1mgsjhmwilm5mbf7d2l643rhwf1"; depends=[gtools]; };
   ShapeChange = derive2 { name="ShapeChange"; version="1.5"; sha256="0m9v5ykw8gfvyr9v149bs8sqjf9712yhvlg2rin6b5f1ww3mzl37"; depends=[coneproj quadprog]; };
   ShapePattern = derive2 { name="ShapePattern"; version="3.0.1"; sha256="1vlzvfns6grxc2g0d4slsckg6lzzr0k38brncf2akb41jkczbyak"; depends=[igraph landscapemetrics raster sp terra]; };
   ShapeRotator = derive2 { name="ShapeRotator"; version="0.1.0"; sha256="1pg2m1wh7fbchm8gp3mngfnf5g2rbhvzim1bpzqyvxqpx6ynicsa"; depends=[plot3D]; };
@@ -5297,16 +5392,16 @@ in with self; {
   ShapleyValue = derive2 { name="ShapleyValue"; version="0.2.0"; sha256="05ziyvvd81l0lx572in9snndnjdq8y4wkd8bxqs0y979l49yr6fd"; depends=[kableExtra MASS tidyverse]; };
   SharkDemography = derive2 { name="SharkDemography"; version="1.1.0"; sha256="188qzbixz44qvi1jqr76hmmamkxn43lc9sayrpsvwi3bhkj9ablw"; depends=[doFuture doParallel dplyr foreach interp iterators magrittr MASS popbio readr tidyr]; };
   SharpeR = derive2 { name="SharpeR"; version="1.3.0"; sha256="1xq2m53n2gc706lyd16gccllx2wgwdrqkfpf79jwwdmipqfqnxjx"; depends=[matrixcalc]; };
-  SheetReader = derive2 { name="SheetReader"; version="1.2.0"; sha256="1da9p1y7vxkmkflighjgxd1f7sjcbq24m68igr77vqga4wd0v72d"; depends=[Rcpp]; };
+  SheetReader = derive2 { name="SheetReader"; version="1.2.1"; sha256="0b9cgyh4lls8m6xq5hl2pmhlk72yl7bhbc3ssm81d84rsshhyxvl"; depends=[Rcpp]; };
   ShellChron = derive2 { name="ShellChron"; version="0.4.0"; sha256="1xb06zszwirn5l63qa9g99q9by58sdqpg8s6kiq70z5qqnlgiq5c"; depends=[dplyr ggplot2 ggpubr magrittr rtop scales tidyr zoo]; };
   SherlockHolmes = derive2 { name="SherlockHolmes"; version="1.0.1"; sha256="162iw7qzi5cb73lawfvsnbq3cxgx0si9bz0avv60rrkzdb0xlr05"; depends=[devtools dpseg plot_matrix plotrix qpdf stargazer stringr tableHTML textBoxPlacement zoo]; };
   ShiftConvolvePoibin = derive2 { name="ShiftConvolvePoibin"; version="1.0.0"; sha256="0pj3vynm8afns2kcwvmramxgbd0s2ksyyc5iha6p4dw2nz4hahc7"; depends=[]; };
   ShiftShareSE = derive2 { name="ShiftShareSE"; version="1.1.0"; sha256="1zjqr0a6gs6k6mh8a5bzq48fz143g79p2k1ngcbrd9py8pdj0ss1"; depends=[Formula]; };
-  ShinyItemAnalysis = derive2 { name="ShinyItemAnalysis"; version="1.5.0"; sha256="0n1fz79gb0s5pjl3rb2cd3nbvl4nf3xbk6cjhgrdifkzh705n5yg"; depends=[difR dplyr ggplot2 lme4 magrittr mirt nnet psych purrr rlang rstudioapi tibble tidyr]; };
+  ShinyItemAnalysis = derive2 { name="ShinyItemAnalysis"; version="1.5.1"; sha256="12knai3ar8c091pwba34dz74yhnx7kd0f6si0hcwamdcnvb6i324"; depends=[difR dplyr ggplot2 lme4 magrittr mirt nnet psych purrr rlang rstudioapi tibble tidyr]; };
   ShinyLink = derive2 { name="ShinyLink"; version="0.2.2"; sha256="1idb95hdjllrhzm4fx1lrx3d2palbwjshm6ppjw916p7wg7y7wqn"; depends=[config DT fastLink gender ggplot2 ggvenn golem haven htmlwidgets jsonlite lubridate magrittr readxl shiny shinydashboard shinydashboardPlus shinyWidgets tidyr tidyselect vroom]; };
   ShinyQuickStarter = derive2 { name="ShinyQuickStarter"; version="2.0.1"; sha256="19k46hwcab33l6dc43dp4hvvr366qh3z2jjw3b79x7f824wampnn"; depends=[colourpicker data_table dplyr fs ggplot2 miniUI plotly reshape2 shiny shinyalert shinydashboard shinyFiles shinyjs shinyWidgets stringi stringr styler]; };
   ShinyTester = derive2 { name="ShinyTester"; version="0.1.0"; sha256="0wm4rl2p8ggw6v2chk9b6ygh5y8p8cwzbyra0nr0qr2ka97didp8"; depends=[dplyr purrr readr stringr tidyr visNetwork]; };
-  ShortForm = derive2 { name="ShortForm"; version="0.5.3"; sha256="1nlpn7rhk94jsdbhqa58rz07pl2gcf9rfc39h3bp4gh674wczn9g"; depends=[doSNOW foreach ggplot2 ggrepel lavaan stringr tidyr]; };
+  ShortForm = derive2 { name="ShortForm"; version="0.5.5"; sha256="14qypmb51w5k6xndjdgrwawyr3ccnp9llsh93sah7xkwl1hkkbdl"; depends=[doSNOW foreach ggplot2 ggrepel lavaan stringr tidyr]; };
   ShrinkCovMat = derive2 { name="ShrinkCovMat"; version="1.4.0"; sha256="0iyri3syjk9xv49d87fdyhnxg5c5x827vnak8vgckkkp62sdln2q"; depends=[Rcpp RcppArmadillo]; };
   SiER = derive2 { name="SiER"; version="0.1.0"; sha256="1ng6vnh30z6z1nvclsdzc9gdbrsrb2kqdqvs6fwm0j1zqlk12x0y"; depends=[]; };
   SiMRiv = derive2 { name="SiMRiv"; version="1.0.6"; sha256="1xwbfwhmlmgsbrg0cfgn1yp8f29vzsga8sw7fyclsf76dx9sbmc6"; depends=[mco raster]; };
@@ -5317,7 +5412,7 @@ in with self; {
   SigOptR = derive2 { name="SigOptR"; version="0.0.1"; sha256="1sylchhhz6kx4r8jx95cvsmjsacjh8pin7acf2fyw2a4nlx9r1a6"; depends=[httr jsonlite]; };
   SigTree = derive2 { name="SigTree"; version="1.10.6"; sha256="18gh7azjr979ijc2y4yyskj24ay697rw3j7znc5p4a63s4vpxr9w"; depends=[ape MASS phyext2 phylobase phyloseq RColorBrewer vegan]; };
   SightabilityModel = derive2 { name="SightabilityModel"; version="1.5.5"; sha256="1fj871q0mav3dffm3sjg4zsci0lm8z74nfgbbrv6jzab155vfrmc"; depends=[formula_tools Matrix msm mvtnorm plyr survey]; };
-  Signac = derive2 { name="Signac"; version="1.12.0"; sha256="0dy9fhila2bi7dj7l57i1xb86ng6qkb0024f78gbmhxnpi9iwkqa"; depends=[BiocGenerics data_table dplyr fastmatch future future_apply GenomeInfoDb GenomicRanges ggplot2 IRanges irlba lifecycle Matrix patchwork pbapply Rcpp RcppRoll rlang Rsamtools S4Vectors scales SeuratObject stringi tidyr tidyselect vctrs]; };
+  Signac = derive2 { name="Signac"; version="1.13.0"; sha256="0ahv4j1jbhbclvidyw6h15p6n64zhawamqnrn8s1hf9pchy11d6r"; depends=[BiocGenerics data_table dplyr fastmatch future future_apply GenomeInfoDb GenomicRanges ggplot2 IRanges irlba lifecycle Matrix patchwork pbapply Rcpp RcppRoll rlang Rsamtools S4Vectors scales SeuratObject stringi tidyr tidyselect vctrs]; };
   SignacX = derive2 { name="SignacX"; version="2.2.5"; sha256="0b38k3lxca985mqwvbbdczkjnn2x79kga05yw995gb6d20cjh96v"; depends=[igraph jsonlite lme4 Matrix neuralnet pbmcapply RColorBrewer RJSONIO Seurat]; };
   SignifReg = derive2 { name="SignifReg"; version="4.3"; sha256="1f57zbc7746jr2hfgri29whw5nb7w8h9nwk2p2n851b1rf7q0mgp"; depends=[car]; };
   SillyPutty = derive2 { name="SillyPutty"; version="0.4.1"; sha256="18qc7dwd29zghx9klsslvr2pianbf3av0pvc0wc09781hiv3xksg"; depends=[cluster oompaBase Polychrome Thresher]; };
@@ -5328,12 +5423,12 @@ in with self; {
   SimCop = derive2 { name="SimCop"; version="0.7.0"; sha256="1yrdy77a9h14v92c63ng8phi2ig73wy4xjjdb75322grc0bd3jq6"; depends=[quadprog]; };
   SimCorMultRes = derive2 { name="SimCorMultRes"; version="1.9.0"; sha256="061gnxvhii0hhnxd00hx9cpjmamcdvh10mcwjp43s09f5j4d564y"; depends=[evd]; };
   SimCorrMix = derive2 { name="SimCorrMix"; version="0.1.1"; sha256="1mx8xkg1nbh4x4xr6m672zyg00s3lky2sy5mz7dfkw40vz2bwi53"; depends=[BB ggplot2 MASS Matrix mvtnorm nleqslv SimMultiCorrData triangle VGAM]; };
-  SimDesign = derive2 { name="SimDesign"; version="2.14"; sha256="0jf1a5lfm0jd6k76jxq3pp8ngx10z44h6cgv4dhi59n4f95z7a82"; depends=[beepr dplyr foreach future future_apply pbapply progressr RPushbullet sessioninfo]; };
+  SimDesign = derive2 { name="SimDesign"; version="2.15.1"; sha256="045bw9zjwhpfgvcl7vfgszxlb6h6wxp83fjh79rm2spnq96vzwk2"; depends=[beepr dplyr foreach future future_apply pbapply progressr R_utils RPushbullet sessioninfo]; };
   SimDissolution = derive2 { name="SimDissolution"; version="0.1.0"; sha256="1rdsxykh740h22ln635m0ysm00pdw94vp7qhgify4mcvc46c3632"; depends=[alabama dplyr mvtnorm]; };
   SimEUCartelLaw = derive2 { name="SimEUCartelLaw"; version="1.0.3"; sha256="1n0dvhwqyirb6myc30ydvskb1k7hlx4nkqy15gpx87zl01vpn8fz"; depends=[plot3D]; };
-  SimEngine = derive2 { name="SimEngine"; version="1.3.0"; sha256="0vijcdgm7lmwx4gq170965q4mrshpdwqffv1afmjrn1zrkxifnpi"; depends=[data_table dplyr magrittr pbapply rlang]; };
+  SimEngine = derive2 { name="SimEngine"; version="1.4.0"; sha256="0rcggzaz6vjf4vrnl9ashyl2lyn0zydypaj9bjhar5bq652xrwz5"; depends=[data_table dplyr magrittr MASS pbapply rlang]; };
   SimHaz = derive2 { name="SimHaz"; version="0.1"; sha256="04q4xyc1ki1zr3grm3khfg0kbykjy3j9qpg332l7pxp4j3wa3aw3"; depends=[survival]; };
-  SimInf = derive2 { name="SimInf"; version="9.6.0"; sha256="1k89yml8z8ckk62lgpvb9r227vn39l9jkzzbxw34fm0ws09n77b2"; depends=[digest MASS Matrix]; };
+  SimInf = derive2 { name="SimInf"; version="9.7.0"; sha256="1pkr4x3qmv1b75b2s38nck08lsj8k81rp3md4biachvw56ym74s9"; depends=[digest MASS Matrix]; };
   SimJoint = derive2 { name="SimJoint"; version="0.3.12"; sha256="1vh0yj9d73mi2isw8wn2hgr7ycxadcifwzl57jgkqgnwc2vzlmsg"; depends=[Rcpp RcppArmadillo]; };
   SimMultiCorrData = derive2 { name="SimMultiCorrData"; version="0.2.2"; sha256="0brszbqxf40y65xp96c5hp7hhvz3gv0xlg93r5ik8qdh0bn0y1sw"; depends=[BB GenOrd ggplot2 Matrix nleqslv psych triangle VGAM]; };
   SimNPH = derive2 { name="SimNPH"; version="0.5.5"; sha256="05qp6cnih319p88vrppwvxh595a7vawkc7508xzmzhvrjbn3p7jn"; depends=[car dplyr miniPCH nph nphRCT purrr rlang SimDesign stringr survival tibble tidyr]; };
@@ -5344,11 +5439,9 @@ in with self; {
   SimSurvey = derive2 { name="SimSurvey"; version="0.1.6"; sha256="0as8cifaymnd9rccynyhs4pfs27z0rhz18pbl0am0xvp3y7avbs0"; depends=[data_table doParallel foreach lifecycle magrittr plotly progress rlang sf stars]; };
   SimTimeVar = derive2 { name="SimTimeVar"; version="1.0.0"; sha256="1x0lkgqwx1vz1gbyvy0hx20n638n30j0dny1iz5vs0cvviq3cdv8"; depends=[car corpcor ICC metafor miscTools mvtnorm plyr psych]; };
   SimVitD = derive2 { name="SimVitD"; version="1.0.3"; sha256="1wz3b73pnccqsbg8wssah4gmwv7ajmhhca313r07sppgqskmm68r"; depends=[simpleboot]; };
-  SimilaR = derive2 { name="SimilaR"; version="1.0.8"; sha256="1wlxscl94r3gxwsc9yw0y4z5nj28nxilijp0pbzv4z2n4aqc7vy6"; depends=[BH Rcpp stringi]; };
   SimilarityMeasures = derive2 { name="SimilarityMeasures"; version="1.4"; sha256="1w4klcln4hy9vcik9csg7b3b8kk4raxgckwfrhqg089d80xbqsxj"; depends=[]; };
   Simile = derive2 { name="Simile"; version="1.3.3"; sha256="1izyjp18m1inac3svkf59z3lddrv44m7pdkhisgkr987xs8gdch4"; depends=[]; };
   SimplicialCubature = derive2 { name="SimplicialCubature"; version="1.3"; sha256="06dpbawn650lzybd5j4xkygbg5s2nqfz6b4g0skm4z7lsb2d9dhb"; depends=[]; };
-  SimplifyStats = derive2 { name="SimplifyStats"; version="2.0.4"; sha256="08775g6fdx09y8pkfq4k8zxbxpwah7yqq5cg30lmxl7zrpmza5hv"; depends=[assertthat broom dplyr moments tibble]; };
   SimplyAgree = derive2 { name="SimplyAgree"; version="0.2.0"; sha256="10n63rn7kl4k1q7k3jz4f3macmn8y662jy41vdspgdwf0iqvf5in"; depends=[boot dplyr emmeans ggplot2 insight jmvcore lifecycle lme4 magrittr MASS Matrix nlme patchwork purrr quantreg stringr tidyr tidyselect]; };
   SingleCaseES = derive2 { name="SingleCaseES"; version="0.7.2"; sha256="0yp7h13g9lq9ym8jzxlzc0m2vmp63kvnmf7ysyxinjardigng6k7"; depends=[dplyr magrittr purrr rlang tidyr tidyselect]; };
   SixSigma = derive2 { name="SixSigma"; version="0.11.1"; sha256="1gb6giq9rsgsrwrk0m8r2ay4hi1kqb009rsak33wvmvqsavka8lf"; depends=[e1071 ggplot2 lattice nortest reshape2 scales testthat xtable]; };
@@ -5361,12 +5454,13 @@ in with self; {
   Sleuth3 = derive2 { name="Sleuth3"; version="1.0-6"; sha256="1llhf4hgyichzllzh74v63xw9zba25r0p87vfnhbhlf9q456mr6y"; depends=[]; };
   SlicedLHD = derive2 { name="SlicedLHD"; version="1.0"; sha256="17jv8ky2qn15l2ppx5xfnwzf15bhwd31s4ci8r05wlyvnmqqgbfh"; depends=[]; };
   SlidingWindows = derive2 { name="SlidingWindows"; version="0.2.0"; sha256="0hvxg4hrk3rb1wxhi71rgamxd8wcwys569137znfs0y8j6yvf0jj"; depends=[DCCA nonlinearTseries PerformanceAnalytics TSEntropies]; };
-  SmCCNet = derive2 { name="SmCCNet"; version="2.0.2"; sha256="0kkwvvl8rqpdfn5avl5ash3svyfff1rrkmkafjslvqwpym69gsb0"; depends=[EnvStats furrr future igraph magrittr Matrix pbapply pracma pROC purrr rlist spls]; };
+  SmCCNet = derive2 { name="SmCCNet"; version="2.0.3"; sha256="16kw1nk0y8v2dg4akv5biwznx6a0pv754453r3ymfxw7qjrknyqc"; depends=[EnvStats furrr future igraph magrittr Matrix pbapply pracma pROC purrr rlist spls]; };
   SmallCountRounding = derive2 { name="SmallCountRounding"; version="1.0.3"; sha256="1jnhfzjd2x54h35si1wrr91dkzdzc502m07mvvb894y5pq5q823a"; depends=[Matrix SSBtools]; };
   SmartEDA = derive2 { name="SmartEDA"; version="0.3.10"; sha256="05m96kp1ylbxslf9y9n063r807wz3wxf6whqmysb7bgyjpsnbzlb"; depends=[data_table GGally ggplot2 gridExtra ISLR qpdf rmarkdown sampling scales]; };
   SmartMeterAnalytics = derive2 { name="SmartMeterAnalytics"; version="1.0.3"; sha256="0i8my7ngzdbay3cld8axhvbri0nh0dd1dmv2lbsgyx4adr5hb30f"; depends=[FNN futile_logger plyr stinepack zoo]; };
   SmartSVA = derive2 { name="SmartSVA"; version="0.1.3"; sha256="10a8s2znsg8ywqkq9fsxiyqfsprrx33pqissazp2vmabs11mg4np"; depends=[isva Rcpp RcppEigen RSpectra sva]; };
   SmarterPoland = derive2 { name="SmarterPoland"; version="1.8.1"; sha256="07nag50mzj7a4f5lprvvs6k7mppyzcwvkc3dj8b1il2k06q5ffh5"; depends=[ggplot2 htmltools httr jsonlite rjson]; };
+  SmoothHazard = derive2 { name="SmoothHazard"; version="2024.04.10"; sha256="18nn6c94lr1l49z9wj5grxck72dk9rkppg0qh5qbgcdkfxww4096"; depends=[lava mvtnorm prodlim]; };
   SmoothTensor = derive2 { name="SmoothTensor"; version="0.1.1"; sha256="19mbxsbp656i4qdkr2wplil542pxxb3xfznh3vv2nxi23phr01gy"; depends=[Matrix rTensor]; };
   SmoothWin = derive2 { name="SmoothWin"; version="3.0.0"; sha256="0zq2sq0w4rs3hrra24wgbbzv88d1hx6m8q8gmc5h6nbs1172hs66"; depends=[nlme Rfast]; };
   Snake = derive2 { name="Snake"; version="1.0"; sha256="10i1bqsva70lzavfqvc56ga70ddjfwf0hqpspj8fqwa0jw86jmbh"; depends=[]; };
@@ -5376,13 +5470,17 @@ in with self; {
   Sofi = derive2 { name="Sofi"; version="0.16.4.8"; sha256="0h9ir0xrwmsabfhwsr9hbpwabh1fsb3p51y8qcgm92iyvc6dl3mf"; depends=[foreign sampling shiny]; };
   SoftBart = derive2 { name="SoftBart"; version="1.0.1"; sha256="0s7d2gxh6qnpwzagfrwhacgd7w3hxx3xkxrhk6kqjykpckdwy091"; depends=[caret glmnet MASS progress Rcpp RcppArmadillo scales truncnorm]; };
   SoftClustering = derive2 { name="SoftClustering"; version="2.1.3"; sha256="0wnl3a0jnrhafkjj3yk0rij1ya0y4nxzix29mr5wpwgkhfyky8zy"; depends=[]; };
+  SoilConservation = derive2 { name="SoilConservation"; version="1.0.0"; sha256="17jwz338h2km43fddnp21hf4ri0gb0y2jiggm1236m5wl87livxx"; depends=[]; };
+  SoilFDA = derive2 { name="SoilFDA"; version="0.1.0"; sha256="1zar9affa9cndr4m97fs7zhs9gz3y95k1xi0ci4m5hjqg00aiz7z"; depends=[]; };
+  SoilFunctionality = derive2 { name="SoilFunctionality"; version="0.1.0"; sha256="1r9ifr6ckbqlccrsxl5sph4s7hgkzfzyk3chiw421vvckpbdsl4s"; depends=[]; };
   SoilHyP = derive2 { name="SoilHyP"; version="0.1.7"; sha256="0f4djzmbyz6x5av0d4ii972dw6295c4l3c7gbwp0yinpy3rgvh0q"; depends=[data_table lubridate]; };
   SoilR = derive2 { name="SoilR"; version="1.2.107"; sha256="1j2p5rr8a62fsf77akksk8533ilcx8a7319wq4gjz680va8glp5h"; depends=[assertthat deSolve expm igraph purrr sets]; };
+  SoilSaltIndex = derive2 { name="SoilSaltIndex"; version="0.1.0"; sha256="1hkdhpk257rzk74x9iwmnnj2m1yahlgidslkvwip86qh9rdjdaf9"; depends=[raster sp]; };
   SoilTaxonomy = derive2 { name="SoilTaxonomy"; version="0.2.4"; sha256="19rm7gmp6ya1fq1plmajjp8w8hf5q0j0va5flvpj39i2by3w3xrc"; depends=[data_table stringr]; };
   SoilTesting = derive2 { name="SoilTesting"; version="0.1.0"; sha256="0l808ic9irz7m8i3rcr65mqq5x4a3mk481c7f1ihca2rca43pm2j"; depends=[]; };
   Sojourn_Data = derive2 { name="Sojourn.Data"; version="0.3.0"; sha256="1flxiga9szhifndrhmf4blgms477gnnf4gd6wkxqgv3vgisc4q4i"; depends=[]; };
   SolveSAPHE = derive2 { name="SolveSAPHE"; version="2.1.0"; sha256="1r42h19l186jry2wxmrp9y1jdcwr7wx4an3nmryc4l33f48idbfr"; depends=[]; };
-  SomaDataIO = derive2 { name="SomaDataIO"; version="6.0.0"; sha256="1ld0icylfj9nsdacm3dc7p4q6ysah393njcjxzj0zyp077k014nz"; depends=[cli crayon dplyr lifecycle magrittr readxl tibble tidyr usethis]; };
+  SomaDataIO = derive2 { name="SomaDataIO"; version="6.1.0"; sha256="1r9hb804gjzqn0y91kyc4ays7x3pqxknsbz0b3gy2kkldkhb60c1"; depends=[cli crayon dplyr lifecycle magrittr readxl tibble tidyr usethis]; };
   SongEvo = derive2 { name="SongEvo"; version="1.0.0"; sha256="0mc5wlf5axbflys6g8b7xg0di3wwkli7q0a9fby6598fq9hbaqpd"; depends=[boot geosphere lattice sp]; };
   SorptionAnalysis = derive2 { name="SorptionAnalysis"; version="0.1.0"; sha256="0drns1ajcga5z56hcgjxld1riwjn7vli8k1ma1xqifpy1qwy7ci6"; depends=[]; };
   SortedEffects = derive2 { name="SortedEffects"; version="1.7.0"; sha256="188qlgg3m8f07hbjim65yw3qy6200y0b54imkdqm8mq0f14nmi0f"; depends=[boot Hmisc pbapply quantreg SparseM]; };
@@ -5396,10 +5494,12 @@ in with self; {
   SpNMF = derive2 { name="SpNMF"; version="0.1.1"; sha256="1xybxx47i3ww5d7chwl38xc48fbsclgyxcki8h85c6dkm49dxy8i"; depends=[NMF]; };
   SpPOP = derive2 { name="SpPOP"; version="0.1.0"; sha256="10s11sd8afridrkdg6q6wxqin0c214dl692sjz5f4ypv3irmwy04"; depends=[numbers qpdf]; };
   SpTe2M = derive2 { name="SpTe2M"; version="1.0.3"; sha256="1xykmbgwwnvl7c9mf0aam3s55xmq2pxdy5wkkz9nzj1c74m0bxqf"; depends=[ggplot2 glmnet knitr mapproj maps MASS rmarkdown]; };
-  SpaDES_core = derive2 { name="SpaDES.core"; version="2.0.3"; sha256="0lvs0jqlca4hcvn5d9f7ay4prqnk2lzddkq9gw295jm2plzk6a4l"; depends=[crayon data_table fs igraph lobstr qs quickPlot reproducible Require terra whisker]; };
-  SpaDES_tools = derive2 { name="SpaDES.tools"; version="2.0.5"; sha256="0b598s3rblc3x97f7ikaf10xdy0v34h4dzv12l576ldmzpc9hjzq"; depends=[backports checkmate data_table fpCompare Rcpp reproducible terra]; };
-  SpaTopic = derive2 { name="SpaTopic"; version="1.0.1"; sha256="0q4sgxbkc8i4mmlkm03khcsip6kd9gf28xm7qq900r5ahz44zkm9"; depends=[foreach iterators RANN Rcpp RcppArmadillo RcppProgress sf]; };
-  SpaceTimeBSS = derive2 { name="SpaceTimeBSS"; version="0.3-0"; sha256="1mxaf1w4476j14dh9rd8z83y0vfysrzhvscmg93311dqv8iw22qw"; depends=[JADE Matrix Rcpp RcppArmadillo]; };
+  SpaCOAP = derive2 { name="SpaCOAP"; version="1.2"; sha256="1cj5avfsfzlb9jbyckpb2zjqkx9ny1msxcdcrcz7kr5njswyw55a"; depends=[irlba LaplacesDemon MASS Matrix Rcpp RcppArmadillo]; };
+  SpaDES = derive2 { name="SpaDES"; version="2.0.11"; sha256="0clanr9cwyjhpjv5wsfhm34rmpf5gjh1hq0pzh6p1yp63wnj13m8"; depends=[quickPlot reproducible SpaDES_core SpaDES_tools]; };
+  SpaDES_core = derive2 { name="SpaDES.core"; version="2.1.0"; sha256="0avn2fvabwq8hfvpwkvrpmdq9692a8nx3km7343j217y7l4s7qdf"; depends=[cli data_table fs igraph lobstr qs quickPlot reproducible Require terra whisker]; };
+  SpaDES_tools = derive2 { name="SpaDES.tools"; version="2.0.7"; sha256="1kxjwxjr8ncjygj94wpp8z2q58hrb0fyhnz3ajp1jlgpdz3jripi"; depends=[backports checkmate data_table fpCompare Rcpp reproducible terra]; };
+  SpaTopic = derive2 { name="SpaTopic"; version="1.1.0"; sha256="19jyxav7mbhpfi85b99wk6lah81ra81r5vbj4l6xm75fli4g3qzm"; depends=[foreach iterators RANN Rcpp RcppArmadillo RcppProgress sf]; };
+  SpaceTimeBSS = derive2 { name="SpaceTimeBSS"; version="0.4-0"; sha256="04gh8qcv949s9h94dydmj2bnipih8wnv6ml7iczqmjqich1i272m"; depends=[JADE Matrix Rcpp RcppArmadillo]; };
   SpadeR = derive2 { name="SpadeR"; version="0.1.1"; sha256="0iy2rkq4vvps1a73kqq37zpsyl4pvl3vh07dwvpfhvp7f8nxbx99"; depends=[]; };
   SparseBiplots = derive2 { name="SparseBiplots"; version="4.0.1"; sha256="0jiyafhsddqa3llrp62lf8bgcvs3wp2pxc8ppaxx4zphkifw2yhr"; depends=[ggplot2 ggrepel gtable rlang sparsepca testthat]; };
   SparseChol = derive2 { name="SparseChol"; version="0.3.1"; sha256="1gva9665mlr8g14l7g6z591yhz2j6xpf56bhqhm6is3dbhl2ga24"; depends=[Matrix Rcpp RcppEigen]; };
@@ -5407,25 +5507,26 @@ in with self; {
   SparseFunClust = derive2 { name="SparseFunClust"; version="1.0.0"; sha256="1p3spmgg7plkh7ppc80gqpnl8c29wfnaa89d5z71qij02lwrcxyg"; depends=[cluster]; };
   SparseGrid = derive2 { name="SparseGrid"; version="0.8.2"; sha256="057xbj2bhjm9i32kn39iscnqqdsvsmq0b8c92l8hnf9avf1sx10x"; depends=[]; };
   SparseLPM = derive2 { name="SparseLPM"; version="1.0"; sha256="1mpjf7yk2haa8hch315davb6nrhxhy0w2vgw2x4111rn4bskhd8m"; depends=[gtools Rcpp RcppArmadillo vegan]; };
-  SparseM = derive2 { name="SparseM"; version="1.81"; sha256="0csbqd9wm6r4162mday1iaigzf9wv2rp1zq8hnihys6f38w8z0xx"; depends=[]; };
+  SparseM = derive2 { name="SparseM"; version="1.83"; sha256="0nh9nwp4k0mvvp8rawsxvbl4bk5pgzbpnx2xia3mrzw1y5f5szph"; depends=[]; };
   SparseMDC = derive2 { name="SparseMDC"; version="0.99.5"; sha256="0d3ashk3l9fjdbiyjhaxc05ayyscissrg7lwhnh46hv3fydbixlj"; depends=[doParallel doRNG foreach]; };
   SparseMSE = derive2 { name="SparseMSE"; version="2.0.1"; sha256="1alpvj0ya3r64wwfdzz2aaxgaf6512glzl65p97606c2fwrm6db7"; depends=[lpSolve Rcapture]; };
   SparseTSCGM = derive2 { name="SparseTSCGM"; version="4.0"; sha256="01lfb3j907244hgapb85kba7zdmgzhw452gri208qgrjzfv2x9yh"; depends=[abind glasso huge longitudinal MASS mvtnorm network]; };
   SparseVFC = derive2 { name="SparseVFC"; version="0.1.2"; sha256="0d4394jg5fk4cgpds014xl3dhf7wlx5i99bnxpj5xcbvfdqzvwvl"; depends=[pdist purrr]; };
   SpatEntropy = derive2 { name="SpatEntropy"; version="2.2-4"; sha256="0krcyymvwdcckiji1dlm9pyc2x82k5dfkvglfchv8w5kf6y2qmbh"; depends=[spatstat spatstat_geom spatstat_random]; };
+  SpatGC = derive2 { name="SpatGC"; version="0.1.0"; sha256="1y7lxxg39rd3y0ba5rsg4majbgjj5ld22kkx1w3fg1qhj9xacmnc"; depends=[mvtnorm sf spdep]; };
   SpatGRID = derive2 { name="SpatGRID"; version="0.1.0"; sha256="10388v6fzykgxd35mvknrz92mvgby2vnsyw6jb2xi94fj21ybkp9"; depends=[qpdf raster sf sp]; };
   SpatMCA = derive2 { name="SpatMCA"; version="1.0.4"; sha256="051c6mdij04n7xc256qx0119gsg337w2xly3ykiy47nrd3svdvc3"; depends=[ggplot2 MASS Rcpp RcppArmadillo RcppParallel scales]; };
   SpatPCA = derive2 { name="SpatPCA"; version="1.3.5"; sha256="1lx429glr6273ssy1in192jx4iynqidkfmj9iibwiij3fk9y0sa5"; depends=[ggplot2 Rcpp RcppArmadillo RcppParallel]; };
-  SpatialAcc = derive2 { name="SpatialAcc"; version="0.1-4"; sha256="09rkzfzg6nh4n7dizkqrz651kp617l2557c9qpxacspl3ngbm82i"; depends=[sp]; };
+  SpatialAcc = derive2 { name="SpatialAcc"; version="0.1-5"; sha256="1livfnkqm9d0aw1q1m944clyj850n5m1n32k99vwf4byl5d5vhnn"; depends=[sp]; };
   SpatialBSS = derive2 { name="SpatialBSS"; version="0.14-0"; sha256="0z8k4wd5rlx3bmp4zmfvblkf4nrkkqqfcpv5wzncyhi2ffgnybvm"; depends=[distances JADE Rcpp RcppArmadillo robustbase sp SpatialNP]; };
-  SpatialDDLS = derive2 { name="SpatialDDLS"; version="1.0.1"; sha256="1k40bjdxb0yic6h9rvad8l37v2pq2nb7khgl1hfml5xjznjp5k57"; depends=[dplyr FNN ggplot2 ggpubr grr gtools keras Matrix pbapply reshape2 reticulate rlang S4Vectors scran scuttle SingleCellExperiment SpatialExperiment SummarizedExperiment tensorflow zinbwave]; };
+  SpatialDDLS = derive2 { name="SpatialDDLS"; version="1.0.2"; sha256="1wnyy7wi7bqlm2wjmjw18b7fxyi0ngfry4rzdb4q0fl6x0lkl0hj"; depends=[dplyr FNN ggplot2 ggpubr grr gtools keras Matrix pbapply reshape2 reticulate rlang S4Vectors scran scuttle SingleCellExperiment SpatialExperiment SummarizedExperiment tensorflow zinbwave]; };
   SpatialEpi = derive2 { name="SpatialEpi"; version="1.2.8"; sha256="0q14scafm31xansk5zkhk6hb5jqcmi519jsd4drwkfvvdk8hf93d"; depends=[MASS Rcpp RcppArmadillo sp spdep]; };
   SpatialExtremes = derive2 { name="SpatialExtremes"; version="2.1-0"; sha256="0z1swxp1syz8hdskarjxx4sdd7wx835kcnb783bwqm235yh991j3"; depends=[fields maps]; };
-  SpatialGEV = derive2 { name="SpatialGEV"; version="1.0.0"; sha256="0g4v84a4c14a2vf7y055j9jgcki7q4182lmmmphrahiqwnjxhm1b"; depends=[evd mvtnorm TMB]; };
+  SpatialGEV = derive2 { name="SpatialGEV"; version="1.0.1"; sha256="1wk55vllcsqclzb9cb81pf28gkwxpql8kycyxry6b2ic6c32xgp4"; depends=[evd Matrix mvtnorm RcppEigen TMB]; };
   SpatialGraph = derive2 { name="SpatialGraph"; version="1.0-4"; sha256="1875vi3dm6jm7bfmc9ydn4aaygls0c0k5pk540qq2f3ywbfq10zd"; depends=[igraph pracma sf shape sp splancs]; };
   SpatialKDE = derive2 { name="SpatialKDE"; version="0.8.2"; sha256="15s72mjz3pqny5i2c6xg5k4dzwb6d00zg8gihik91f8j06fy9w6r"; depends=[cpp11 dplyr glue magrittr progress raster rlang sf vctrs]; };
   SpatialKWD = derive2 { name="SpatialKWD"; version="0.4.1"; sha256="0b5vfsmpl3zxcwsg7bj85kfbyv8a2bgfq72b3rk4r6ms7ngc5i16"; depends=[Rcpp]; };
-  SpatialML = derive2 { name="SpatialML"; version="0.1.6"; sha256="133iwzbxy8ix2kfa1w6ic6sfip2jkrkw22h3acvh55fcwia7pk08"; depends=[caret randomForest ranger]; };
+  SpatialML = derive2 { name="SpatialML"; version="0.1.7"; sha256="05jjv441knmqci66vgy0lsp17hv3fmkfn1ijci5phn39cx797zf5"; depends=[caret randomForest ranger]; };
   SpatialNP = derive2 { name="SpatialNP"; version="1.1-5"; sha256="0cxh1f4182mfihq6m82zh2lgafrsiqvgrfxbk66zkjrrbfn8gkcl"; depends=[]; };
   SpatialPOP = derive2 { name="SpatialPOP"; version="0.1.0"; sha256="0pgd4injkimjp6pid42arhfbavx2i8crkdvqr35bjvf26p7hbvv3"; depends=[MASS numbers qpdf]; };
   SpatialPack = derive2 { name="SpatialPack"; version="0.4"; sha256="138q209gyggpfa1ha1yc6czpv0lxp6acggvp4yc4nbcnkxnvqzwb"; depends=[fastmatrix]; };
@@ -5455,9 +5556,9 @@ in with self; {
   SplitKnockoff = derive2 { name="SplitKnockoff"; version="1.2"; sha256="1ywh86gkkcc2dddqfgs5w8w9wyjfqmvcr31jga41ddvj5rb8zkhx"; depends=[ggplot2 glmnet latex2exp MASS Matrix mvtnorm RSpectra]; };
   SplitReg = derive2 { name="SplitReg"; version="1.0.2"; sha256="1s012qldrsq8rpfpzf7kyd7631b65zai269x53xcaqn75r5ssh3f"; depends=[Rcpp RcppArmadillo]; };
   SplitSoftening = derive2 { name="SplitSoftening"; version="2.1-0"; sha256="1fgcqax81zpknw642fm9dx1f6dpdgbcf3va0m1bhj6kl98yq7dqd"; depends=[]; };
+  SplitSplitPlot = derive2 { name="SplitSplitPlot"; version="0.0.1"; sha256="0k10is14z27gndqmg0sr9mgvpymayi9z2vv5fwqmvfvxg8y7j4hl"; depends=[]; };
   SportsTour = derive2 { name="SportsTour"; version="0.1.0"; sha256="06d66yv0b7c3mg1bcnrlg576njxgri107ni0vnl27hzf46fyidwa"; depends=[]; };
-  SpotSampling = derive2 { name="SpotSampling"; version="0.1.0"; sha256="0s47dvigzkcl9ynrdiwrjzwap18dpkb29jngi8ddvf9m4xywj4al"; depends=[BalancedSampling MASS pracma sampling WaveSampling]; };
-  SqlRender = derive2 { name="SqlRender"; version="1.17.0"; sha256="0z5q8jizh0r4zngngq30ii787yppg06phcd9hszfs7qlwq3xsw7x"; depends=[checkmate rJava rlang]; };
+  SqlRender = derive2 { name="SqlRender"; version="1.18.0"; sha256="0vkxz5gl0df4yw81a698jclsph4z65v74qglfhagp1p3xknkjwy9"; depends=[checkmate rJava rlang]; };
   SqueakR = derive2 { name="SqueakR"; version="1.3.0"; sha256="09l6dj1xq2zxxy6jnh1dl4rlcbx06fvf0jp2nypv3497dn97jsrh"; depends=[dplyr ggcorrplot ggeasy gghighlight ggplot2 ggpubr googlesheets4 MASS plotly RColorBrewer readxl report rlist rstatix shiny shinydashboard]; };
   Sshaped = derive2 { name="Sshaped"; version="1.1"; sha256="0jy926ykyw7a2q0wabbvm2sm2g4d5y8wl6na4xjmf0ybr6rma458"; depends=[Rcpp RcppArmadillo]; };
   Sstack = derive2 { name="Sstack"; version="1.0.1"; sha256="137vsas2kw3l37c141g51sgx0j6z8ys6hbxjmsdymz1fxsjr4adg"; depends=[doParallel dplyr foreach randomForest]; };
@@ -5469,12 +5570,12 @@ in with self; {
   StableEstim = derive2 { name="StableEstim"; version="2.2"; sha256="0z8ia3zqkidnpg2zl055msc0dmhbsq73h8c43y0vfmhdzqszcx9d"; depends=[fBasics MASS Matrix numDeriv Rdpack stabledist testthat xtable]; };
   StackImpute = derive2 { name="StackImpute"; version="0.1.0"; sha256="07b83bql9ch3arxzv94mllb61d4sv20lvpixlpzi7k8cjdddqizd"; depends=[boot dplyr magrittr MASS mice sandwich zoo]; };
   StakeholderAnalysis = derive2 { name="StakeholderAnalysis"; version="1.2"; sha256="164mah8h8izxaqp8hc43l6mlnf95pydkcx2laqrlqr9b0bybadxb"; depends=[]; };
-  StanHeaders = derive2 { name="StanHeaders"; version="2.32.6"; sha256="18p1rch5ipj0f4jdvr8mnlk8pg1l4njjj4cgbp7ni7kcngsn3049"; depends=[RcppEigen RcppParallel]; };
+  StanHeaders = derive2 { name="StanHeaders"; version="2.32.9"; sha256="0cqb5q9pi02vahr4fif07p4r3p2sik953a9i78z1j00j9srzxc17"; depends=[RcppEigen RcppParallel]; };
   StanMoMo = derive2 { name="StanMoMo"; version="1.2.0"; sha256="0hdh5c5zigmqs3v3ryk1h91w1a2mlqqjwbq51528w159frnd9mrl"; depends=[BH bridgesampling dplyr ggplot2 httr latex2exp loo Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders tibble tidyr tidyselect tidyverse]; };
   Stat2Data = derive2 { name="Stat2Data"; version="2.0.0"; sha256="1fpp3b4k7x915a9wkpyj4dvvqp0wz7c3lpbh154vrxrdsr712z0k"; depends=[]; };
   StatDA = derive2 { name="StatDA"; version="1.7.11"; sha256="0jp0qd96z2z2w7lqkyy0csz45fk0774wjf57idqbla3n21jbn4q9"; depends=[cluster e1071 geoR MASS MBA mgcv rgl robustbase sgeostat sp xtable]; };
   StatDataML = derive2 { name="StatDataML"; version="1.0-27"; sha256="168bydradzprvvyfchzq4g3nc6f8kpgd5165i02nhj1irwxa6jh8"; depends=[XML]; };
-  StatMatch = derive2 { name="StatMatch"; version="1.4.1"; sha256="1iavyaj6q8rbvhki98q8zwikfrgjrp6w8prhnqhiv0yb8k27jm0c"; depends=[ggplot2 lpSolve proxy survey]; };
+  StatMatch = derive2 { name="StatMatch"; version="1.4.2"; sha256="0kwmxrhmcd74gm6nnqqnqa3jy60050a113l5hspjix8q7s99ybw5"; depends=[dplyr ggplot2 lpSolve proxy survey]; };
   StatPerMeCo = derive2 { name="StatPerMeCo"; version="0.1.0"; sha256="1nm6brlj6h7jx8nqagrfk294ay3pfmkiizabwlb87qfnsfwchpk3"; depends=[]; };
   StatRank = derive2 { name="StatRank"; version="0.0.6"; sha256="14d8v3bp8vgksi6q0mxajwd9s8zi6lns3qwi1vcr5xp9rjp4n6iy"; depends=[ggplot2 plyr truncdist]; };
   Statamarkdown = derive2 { name="Statamarkdown"; version="0.9.2"; sha256="1ir2qh492q0rn6rwnmvj2cxqsssmsd5hm9vlyg0r7dk22grh19z0"; depends=[knitr xfun]; };
@@ -5485,12 +5586,12 @@ in with self; {
   StempCens = derive2 { name="StempCens"; version="1.1.0"; sha256="0jphyikfggx0yj5f5k3fykf3fdv9msppymzpyin1m7xfmfi5cwia"; depends=[distances ggplot2 MCMCglmm mvtnorm Rcpp RcppArmadillo Rdpack tmvtnorm]; };
   StepBeta = derive2 { name="StepBeta"; version="2.1.0"; sha256="1wr0f4c64hkhq8kjv6vf8laz5pmlyc0ajgd8007q8jris4jydzs6"; depends=[aod betareg combinat glue MASS]; };
   StepGWR = derive2 { name="StepGWR"; version="0.1.0"; sha256="0sqgixmxla1sv3jkjhby0gggzs3iyg1cwq267y9hymzx2gsafry5"; depends=[MASS numbers qpdf]; };
-  StepReg = derive2 { name="StepReg"; version="1.5.0"; sha256="0p0lc00afabvpxr8wslipx0n6kkngg9ljcc8yi659aybjyszjhx3"; depends=[cowplot dplyr DT flextable GGally ggcorrplot ggplot2 ggrepel purrr rlang rmarkdown shiny shinycssloaders shinyjs shinythemes stringr summarytools survival tidyr xlsx]; };
+  StepReg = derive2 { name="StepReg"; version="1.5.1"; sha256="0a7ywq6sfvny4mnknr15vqi2466vmv00qh6hwzdbr0lk873gq000"; depends=[cowplot dplyr DT flextable ggcorrplot ggplot2 ggrepel MASS purrr rmarkdown shiny shinycssloaders shinyjs shinythemes stringr summarytools survival tidyr]; };
   StepSignalMargiLike = derive2 { name="StepSignalMargiLike"; version="2.6.0"; sha256="0j85lvs2bljfhf482r31sq3xgk8l73hcw22wgxxp8z8nla38cwf9"; depends=[Rcpp]; };
-  SteppedPower = derive2 { name="SteppedPower"; version="0.3.4"; sha256="0y31685vs3h5irz5f3gmqayz9bwkra2w2vgj8774q93jicza1vmf"; depends=[Matrix plotly Rfast]; };
+  SteppedPower = derive2 { name="SteppedPower"; version="0.3.5"; sha256="0dxl88gfwi6wb9k4qmqhb9hqgvjpzbvwfpiqadzjwg1h6yg487y5"; depends=[Matrix plotly Rfast]; };
   StepwiseTest = derive2 { name="StepwiseTest"; version="1.0"; sha256="1fdm4s9l6grgd45r98ybbsh40rnmnn16c0id6lv28cpmssi0iphi"; depends=[Rcpp RcppArmadillo]; };
   StereoMorph = derive2 { name="StereoMorph"; version="1.6.7"; sha256="0qrbl86ba83j4r6j2phap5n6ryi729gbypn95h0vbgrv752nayqp"; depends=[bezier jpeg MASS png Rcpp rjson shiny svgViewR tiff]; };
-  SticsRFiles = derive2 { name="SticsRFiles"; version="1.2.0"; sha256="1nybxf5c76498s20yb69v9dgvcvbpr10sk6qy14iimpxqy6n382j"; depends=[cli crayon curl data_table dplyr lifecycle lubridate rlang rstudioapi stringr tibble tidyr XML xml2 xslt]; };
+  SticsRFiles = derive2 { name="SticsRFiles"; version="1.3.0"; sha256="0ldc0rl5www8bz9qc80198h0yiz10kqr9zmlhd7b510bhms0i1wp"; depends=[cli crayon curl data_table dplyr lifecycle lubridate rlang rstudioapi stringr tibble tidyr tidyselect XML xml2 xslt]; };
   StochBlock = derive2 { name="StochBlock"; version="0.1.2"; sha256="0g0l36imgw3bvqj5g45abwicswcyqprzbkas9pzgha8dsc5s12w3"; depends=[blockmodeling doParallel doRNG foreach Rcpp RcppArmadillo]; };
   StockDistFit = derive2 { name="StockDistFit"; version="1.0.0"; sha256="02af493w8mhkqpwa1h2wvga19rz22b09z2j69yn8r74jfdfj08wz"; depends=[dplyr fBasics fGarch fitdistrplus ghyp magrittr quantmod xts zoo]; };
   Storm = derive2 { name="Storm"; version="1.2"; sha256="1fg8y9my9yp6px1gh43mr3m2s2z262mzq03pj52mqg3n186vk8z3"; depends=[permute rjson]; };
@@ -5508,7 +5609,6 @@ in with self; {
   String2AdjMatrix = derive2 { name="String2AdjMatrix"; version="0.1.0"; sha256="058r30kjjna02nmd6ngqfcnn1yk5390i20xvl6qb5qk3bcp2wmxn"; depends=[stringr]; };
   StroupGLMM = derive2 { name="StroupGLMM"; version="0.1.0"; sha256="1w0xizdmwqflfhqwygyq7fw5ci7pdzmr8dfv3j0g3ljbj84kndzd"; depends=[aod broom car ggplot2 lme4 lmerTest lsmeans MASS mutoss nlme pbkrtest phia survey]; };
   StrucDiv = derive2 { name="StrucDiv"; version="0.2.1"; sha256="1mzkcij7mrmjj5ccmy0l3xbb75w0bi7vc2cxap3qkycqm1ajk1dr"; depends=[doParallel foreach glue raster Rcpp RcppProgress]; };
-  StructFDR = derive2 { name="StructFDR"; version="1.4"; sha256="1gxv2pgypbxgwii5d71zrhasfdj33wjw4jfa3frc4q28nbh8a2l8"; depends=[ape cluster dirmult matrixStats nlme]; };
   StructuralDecompose = derive2 { name="StructuralDecompose"; version="0.1.1"; sha256="1iw4knii94wajignrq0c91d66b6bc2qm019ny86jyyj5nd9nxkwz"; depends=[changepoint segmented strucchange]; };
   StructureMC = derive2 { name="StructureMC"; version="1.0"; sha256="1pj3inznw6flvmk22dzjcfjnwjhx7r98ngckz0axf6ipp3hb85jn"; depends=[MASS matrixcalc]; };
   SuRF_vs = derive2 { name="SuRF.vs"; version="1.1.0.1"; sha256="0yhd6wsifmlr39fxs46b93y0bpqrv5c0zc4sjs2jpdrzivwfq1j5"; depends=[dplyr glmnet survival]; };
@@ -5517,7 +5617,7 @@ in with self; {
   SubVis = derive2 { name="SubVis"; version="2.0.2"; sha256="1nb3zgm6i5lwfwdrn8mk3wkg8a4ldfvs27ai8v46l4316qc1fa9p"; depends=[Biostrings shiny]; };
   SubgrpID = derive2 { name="SubgrpID"; version="0.12"; sha256="0x25n5gm1fl5s157g5a7jszy1rj16151r0jpf61vvsw0c9c58707"; depends=[ggplot2 glmnet MASS Matrix rpart survival]; };
   SubpathwayLNCE = derive2 { name="SubpathwayLNCE"; version="1.0"; sha256="051csjavr9549y54yirfdn266i7swsvpbcakhziyz4sl4afwx5kl"; depends=[BiasedUrn graph igraph RBGL]; };
-  SubtypeDrug = derive2 { name="SubtypeDrug"; version="0.1.8"; sha256="0710hfq5gd0nw7vp6xxsy3yzxdmgb88k05a0h44w8q0x9dbjcmab"; depends=[BiocGenerics ChemmineR GSVA igraph pheatmap rvest xml2]; };
+  SubtypeDrug = derive2 { name="SubtypeDrug"; version="0.1.9"; sha256="1r0sjzjmllicqmqv5phxpqcndh84kjqc779js32rlwbw0x279xhw"; depends=[BiocGenerics ChemmineR GSVA igraph pheatmap rvest xml2]; };
   SuessR = derive2 { name="SuessR"; version="0.1.5"; sha256="1rh792x7dyfnhnw6g0f6hb5wqw58j6j11k9xib11ba256qrnvwgc"; depends=[]; };
   SummaryLasso = derive2 { name="SummaryLasso"; version="1.2.1"; sha256="1gb1g1xgda5psq93vy50yfr0cbhvymliblpkxz7ck1nwpp65n9py"; depends=[gtools]; };
   Sunclarco = derive2 { name="Sunclarco"; version="1.0.0"; sha256="0jv92a4ciwkm0wa4irgb6ql3vf6v6p24fmbnk24pqp5p8drp8g5v"; depends=[survival]; };
@@ -5531,14 +5631,16 @@ in with self; {
   Superpower = derive2 { name="Superpower"; version="0.2.0"; sha256="0bv2jx3hadp5d9c3q790in3m728c8jc1nkp9wqvzcdip1d29hyin"; depends=[afex dplyr emmeans ggplot2 gridExtra magrittr MASS mvtnorm reshape2 tidyr tidyselect]; };
   SuppDists = derive2 { name="SuppDists"; version="1.1-9.7"; sha256="025b9nlxz62wk84295csyzbncpn80i3iby3sxdigf3swcgi2fmbb"; depends=[]; };
   SurfaceTortoise = derive2 { name="SurfaceTortoise"; version="2.0.1"; sha256="0l1r495qnqfr3izngv7dmnb13dcp5736khgwmkm7hkxw8fjpzc6j"; depends=[gstat sf terra]; };
-  Surrogate = derive2 { name="Surrogate"; version="3.2.5"; sha256="1yb8nfy83zpvaq03gnfhx36jn04lva7y4y16dcl65djrgrs17cqj"; depends=[dplyr extraDistr flexsurv ks lattice latticeExtra lme4 logistf MASS maxLik MBESS msm nlme numDeriv optimx pbapply purrr rms rvinecopulib survival tibble tidyr]; };
+  Surrogate = derive2 { name="Surrogate"; version="3.3.0"; sha256="1r4i12f6kmbszrm8v17gp2396ybwv913ngr3mnhqmvsl91fnpwi6"; depends=[dplyr extraDistr flexsurv ks lattice latticeExtra lme4 logistf MASS maxLik MBESS msm nlme numDeriv optimx pbapply purrr rms rvinecopulib survival tibble tidyr]; };
   SurrogateBMA = derive2 { name="SurrogateBMA"; version="1.0"; sha256="19q63rdrm4y03xmjmjqvsq8s1fx48jalxshzrdyzms9dacbshr0z"; depends=[MCMCpack mvtnorm Rcpp RcppEigen RcppNumerical Rsurrogate]; };
   SurrogateOutcome = derive2 { name="SurrogateOutcome"; version="1.1"; sha256="1wiqn9gfvj225dvmp49fyybp77np507s04f28a9wa9jiyvqf7m97"; depends=[survival]; };
+  SurrogateRank = derive2 { name="SurrogateRank"; version="1.0"; sha256="0q90qq3apn8qs6rlmw0vj3iv89mpm85wah2xqjdwvbf8k7hwkgrm"; depends=[]; };
   SurrogateRegression = derive2 { name="SurrogateRegression"; version="0.6.0.1"; sha256="0cjw780wzvxp6q4q8m57d3qzv7ivk884h6s6n9walnd8rvrfj414"; depends=[Rcpp RcppArmadillo]; };
   SurrogateRsq = derive2 { name="SurrogateRsq"; version="0.2.1"; sha256="1g77cwp5cdldhqlp3k7f7pzxjww2pxgr842qd3fr2k0gzg2s246a"; depends=[MASS PAsso progress scales]; };
   SurrogateTest = derive2 { name="SurrogateTest"; version="1.3"; sha256="0vs1ii3l6i6cmswyv6xjbya5filfixppyzmnw099g9s4x8kn0kq7"; depends=[survival]; };
   SurvCorr = derive2 { name="SurvCorr"; version="1.1"; sha256="0pccjc9zdvbb869wfywm23l63h1bpi5px4q5x7fq54pm0iyi1k73"; depends=[fields survival]; };
   SurvDisc = derive2 { name="SurvDisc"; version="0.1.1"; sha256="0ajvnm0a4krbm0m584bg58hd7dzl0f2rz5as1zsajx8agywb5qmv"; depends=[cubature MASS mvtnorm nlme simex survival]; };
+  SurvEval = derive2 { name="SurvEval"; version="1.1"; sha256="0xhlfzcyniwy1wb68cdq3in9kq5w5m4439jgjmbrcrhplxab1cm0"; depends=[Rcpp survival]; };
   SurvHiDim = derive2 { name="SurvHiDim"; version="0.1.1"; sha256="1kix00zfrbx11pwx2dfag8vz5nvf8siw2kbxi8g4fb7xib9wh2na"; depends=[factoextra glmnet igraph Rdpack readr survival tidyverse useful]; };
   SurvLong = derive2 { name="SurvLong"; version="1.4"; sha256="004s62c5w4lrp55g883iz8plviaij86m5wiaxcmqxaf5709sbk9g"; depends=[]; };
   SurvMI = derive2 { name="SurvMI"; version="0.1.0"; sha256="0qgsgz11vz73v83bkxrrjwk7i26rllkxk97if3nw2rgl9jnmiih0"; depends=[survival zoo]; };
@@ -5547,7 +5649,9 @@ in with self; {
   SurvSparse = derive2 { name="SurvSparse"; version="0.1"; sha256="14v0319w2k6b5cmpfrcxc2h3558lrpf101mhbpkqy0k4ahsb0sax"; depends=[dplyr foreach gaussquad MASS nleqslv nloptr purrr tibble tidyr]; };
   SurvTrunc = derive2 { name="SurvTrunc"; version="0.2.0"; sha256="0zkjlndmg0rc7ycqy2v42nyzs4sd9z1y9y9kwfdci9qrc88nnfmn"; depends=[survival]; };
   SurveyCC = derive2 { name="SurveyCC"; version="0.1.1"; sha256="1jhgc6alrpib0qhnh2l9zp9nvy8vfgi2y4dy26vh92rqhdym19ss"; depends=[candisc survey]; };
-  SurvivalClusteringTree = derive2 { name="SurvivalClusteringTree"; version="1.0"; sha256="1h5iwwlw1gh82laargp7pwpspc7jljzizpyv251gsgdjrms72p79"; depends=[dplyr formula_tools gridtext Rcpp RcppArmadillo survival]; };
+  SurveyDefense = derive2 { name="SurveyDefense"; version="0.1.0"; sha256="1n0a1h4bzmxidzf5rszrpsmxj7kd7dw0flrpc8mps6glf8ikw7pq"; depends=[flextable]; };
+  SurviMChd = derive2 { name="SurviMChd"; version="0.1.2"; sha256="1lwbs9b8kc6lhlfjziphmdhm7h8p6d4fbhihsmjdi8lwngvpgxx8"; depends=[dplyr R2jags rjags]; };
+  SurvivalClusteringTree = derive2 { name="SurvivalClusteringTree"; version="1.1.1"; sha256="1wxyk0b22igv319dpidm0b1wjp675k9z1araqzdd140lxan8nndf"; depends=[dplyr formula_tools gridtext Rcpp RcppArmadillo survival]; };
   SurvivalTests = derive2 { name="SurvivalTests"; version="1.0"; sha256="1yhl9pg5dbfkqrkl5i1da7c8zhianj2qgbs5arfk6lj6w3vqmnb9"; depends=[ggplot2 weibullness]; };
   SvyNom = derive2 { name="SvyNom"; version="1.2"; sha256="0s9gn10v6a8n6898g0gmdrw51z7y98klji59sn06dfbsxlswlv11"; depends=[Hmisc rms survey survival]; };
   SweepDiscovery = derive2 { name="SweepDiscovery"; version="0.1.1"; sha256="1302bhkbgb898jjjpmn4gvfj3qid54bbk24d41ssz55cbyaqsimm"; depends=[randomForest]; };
@@ -5565,7 +5669,7 @@ in with self; {
   SynthTools = derive2 { name="SynthTools"; version="1.0.1"; sha256="19vasz3nnm5vgwqs6g2a5bibmk44br1bxga5zavsx938x3jw9gnd"; depends=[dplyr magrittr Rdpack]; };
   Sysrecon = derive2 { name="Sysrecon"; version="0.1.3"; sha256="01vbkv707m31bf69j3vxfiwgvaz56v2yr6da0j0796rcmca1d4b8"; depends=[ape dplyr ggplot2 ggtree magrittr patchwork plyr RColorBrewer rlang SnowballC stringr tm]; };
   SystemicR = derive2 { name="SystemicR"; version="0.1.0"; sha256="1vk08w734zxvrwzd81iy0azwcj53k6wvgc1qlaxw96hirdwdg6zr"; depends=[igraph Matrix quantreg xts]; };
-  T2DFitTailor = derive2 { name="T2DFitTailor"; version="1.0.0"; sha256="1cyml3dfblsv8mc61j8kzvj8h9gbcj4qph124028492a2cxvgjj4"; depends=[dplyr fmsb httr jsonlite]; };
+  T2DFitTailor = derive2 { name="T2DFitTailor"; version="3.0.0"; sha256="1491cn8gx1ijkdg33p0fiyiam80aiisd489hqn76ijsbhkagm51c"; depends=[dplyr fmsb httr jsonlite]; };
   T2EQ = derive2 { name="T2EQ"; version="1.1"; sha256="1skkkryw63pfx1xslia1lczb2psja6v6hcbph4isdcksb4l4pcig"; depends=[]; };
   T2Qv = derive2 { name="T2Qv"; version="0.2.0"; sha256="1dvr8k2wifl2jl4rpc1gbi5d5shmrhnhfmj9kfqlwsbsrrnh493p"; depends=[ca dplyr highcharter htmltools purrr shiny shinycssloaders shinydashboard shinydashboardPlus stringr tables tidyr]; };
   T4cluster = derive2 { name="T4cluster"; version="0.1.2"; sha256="0wai4qgpkwc1p5wwpvi0z6zrcj9ha1wiy27qjpcfvfa2bhaid2w5"; depends=[ADMM fda ggplot2 lpSolve maotai MASS mclustcomp Rcpp RcppArmadillo Rdimtools Rdpack rstiefel scatterplot3d]; };
@@ -5580,11 +5684,13 @@ in with self; {
   TBEST = derive2 { name="TBEST"; version="5.2"; sha256="19dfsvr693w93j6shzk09v1457ayixsxkdbndgv3kawqp1lzhvjx"; depends=[fdrtool signal]; };
   TBFmultinomial = derive2 { name="TBFmultinomial"; version="0.1.3"; sha256="0cd0dr8vkf0sfriaafp2x63dilxmirm0fljxm82zw77c9j5ly3kv"; depends=[nnet plotrix stringr VGAM]; };
   TBRDist = derive2 { name="TBRDist"; version="1.0.2"; sha256="0xwr91fyx3x27szkafmcs5sffgs64svky7mddrrgcfnbdl5c4iia"; depends=[ape BH Rcpp Rdpack TreeDist TreeTools]; };
+  TBox = derive2 { name="TBox"; version="0.1.2"; sha256="19s51kwid7fnshlsp8wisp221kk7nv2ii5dyhnxrc6krisb45746"; depends=[checkmate clipr knitr rmarkdown]; };
   TCA = derive2 { name="TCA"; version="1.2.1"; sha256="1gyps0m7r44vcbzpbrs3xy2kyb2xsvmfzk1c0aq04s4ndcksplwb"; depends=[config data_table futile_logger gmodels Matrix matrixcalc matrixStats nloptr pbapply pracma quadprog rsvd]; };
   TCGAretriever = derive2 { name="TCGAretriever"; version="1.9.1"; sha256="1x97yr6z1krykvwis90z7vyk9rhz96lkvgbmb32l4h1h5lqdwxny"; depends=[httr jsonlite reshape2]; };
   TCHazaRds = derive2 { name="TCHazaRds"; version="1.0"; sha256="00x6iyf61igagcjyrl5623yymcrplm35k8j7326vx13g4lzsmnln"; depends=[geosphere latticeExtra ncdf4 raster rasterVis Rcpp sp terra]; };
   TCIApathfinder = derive2 { name="TCIApathfinder"; version="1.0.6"; sha256="15f3w6vhbqy4xzidxasjnqigxchd3jbr2kpm3gggjnkp7rzsfgaf"; depends=[httr jsonlite]; };
-  TCIU = derive2 { name="TCIU"; version="1.2.5"; sha256="19xsp3ii8abifg5cqr3jgsh2jw5mmgiqqh8g0pxk9zmjqwm0javp"; depends=[cubature doParallel dplyr DT extraDistr fancycut fmri foreach forecast geometry ggplot2 ggpubr gridExtra ICSNP MultiwayRegression plotly pracma RColorBrewer reshape2 rrcov scales spatstat_explore spatstat_geom tidyr zoo]; };
+  TCIU = derive2 { name="TCIU"; version="1.2.6"; sha256="0gbzpd0yadxrlsmnwk4kzf6bvm504k18i0sf2bq6zjaczdhc0vkp"; depends=[cubature doParallel dplyr DT extraDistr fancycut fmri foreach forecast geometry ggplot2 ggpubr gridExtra ICSNP interp MultiwayRegression plotly pracma RColorBrewer reshape2 rrcov scales spatstat_explore spatstat_geom tidyr zoo]; };
+  TCPMOR = derive2 { name="TCPMOR"; version="1.0"; sha256="10zbslpkc9kd7piakrkch71y20pgzmfw6vfmi6slsicqq50grca6"; depends=[SemiPar]; };
   TDA = derive2 { name="TDA"; version="1.9.1"; sha256="1zf01dlc95mi59yrwz98w6qridmixgm399r0dq4g02xinz7dnar3"; depends=[BH FNN igraph Rcpp RcppEigen scales]; };
   TDAkit = derive2 { name="TDAkit"; version="0.1.2"; sha256="1gvcv3016kjk98qm07i972fi66bcljj1avmagyc8qxs29cq3ngg3"; depends=[energy ggplot2 maotai Rcpp RcppArmadillo Rdpack T4cluster TDAstats]; };
   TDApplied = derive2 { name="TDApplied"; version="3.0.3"; sha256="112zkkmi2677kyxkrk2669xdcr7g3f7saqa4iy2qi8k36all87l7"; depends=[clue doParallel foreach iterators kernlab parallelly Rcpp rdist]; };
@@ -5594,6 +5700,7 @@ in with self; {
   TDCor = derive2 { name="TDCor"; version="0.1-2"; sha256="18085prcwhl5w717f1f7jcqskw2jvigvjjs2l5y6106ibiam6hxx"; depends=[deSolve]; };
   TDLM = derive2 { name="TDLM"; version="1.0.0"; sha256="05gjbmhnamm94facg590sd1m7l3x51crd7x21ly6gmwyq5rjlffm"; depends=[Ecume mathjaxr Rdpack readr rmarkdown sf]; };
   TDPanalysis = derive2 { name="TDPanalysis"; version="1.0"; sha256="0kvbsgwl7b9a3hn4d3snajqmynbajd2d8lc1na0hri2cv8qm8x9h"; depends=[plyr]; };
+  TDSTNN = derive2 { name="TDSTNN"; version="0.1.0"; sha256="0ql4z0r04bcj6m6m7kshg3kqnlmx1cy62kfmm98x23ggfxi67a4i"; depends=[nnet]; };
   TDbook = derive2 { name="TDbook"; version="0.0.6"; sha256="127bvwy65fr0nm7gw4mqcjm6dfrvlnl77z4ig2bpfxy7a0xq67gp"; depends=[]; };
   TDboost = derive2 { name="TDboost"; version="1.5"; sha256="1lx5g6yrp43m0dhhs0iig9chlvqbbim5xq5i2bxy4frs2afka22g"; depends=[lattice]; };
   TE = derive2 { name="TE"; version="0.3-0"; sha256="15530a5qjlh74c1qji76j25mm4c59gifp34y066f8j21f70rahfs"; depends=[MASS rainbow]; };
@@ -5615,20 +5722,19 @@ in with self; {
   TIMP = derive2 { name="TIMP"; version="1.13.6"; sha256="1if2qm40nlz54pylqvdp4pk2jmicn8wkdlywrkr5hn80c0yyy879"; depends=[colorspace deSolve fields gclus gplots minpack_lm nnls]; };
   TITAN2 = derive2 { name="TITAN2"; version="2.4.3"; sha256="0lnkgfa3dq38ad0rpyzwq12kv4vb19wzx17sw8f1vfzpkgf5v4qa"; depends=[cli cowplot dplyr ggplot2 ggridges glue purrr tibble]; };
   TITEgBOIN = derive2 { name="TITEgBOIN"; version="0.3.0"; sha256="088gc9i5zv6bysbrsmw7y6if6kgj0gz70dmsn2zj1053mq14pnkj"; depends=[]; };
-  TKCat = derive2 { name="TKCat"; version="1.0.7"; sha256="0j3m10adfc3k7znaissl1w6pqg5mf2qhl4r2i89qjdmw0i1h27pa"; depends=[base64enc ClickHouseHTTP DBI dplyr DT future getPass htmltools jsonlite jsonvalidate magrittr markdown Matrix promises readr ReDaMoR rlang shiny shinydashboard tidyselect uuid visNetwork xml2]; };
+  TKCat = derive2 { name="TKCat"; version="1.1.8"; sha256="0a2jfgg8rcgx4nckzmxk9a9jm4250a78pzcfaxj08d2gbkxairwz"; depends=[base64enc ClickHouseHTTP crayon DBI dplyr DT future getPass htmltools jsonlite jsonvalidate magrittr markdown Matrix promises readr ReDaMoR rlang roxygen2 shiny shinydashboard tidyselect uuid visNetwork xml2]; };
   TLCAR = derive2 { name="TLCAR"; version="0.1.0"; sha256="18wzr7lgzffalvacbr1617d4v50mhd13wqbyr9iyhgc07z2pfncn"; depends=[dplyr ggplot2]; };
   TLMoments = derive2 { name="TLMoments"; version="0.7.5.3"; sha256="096sr0j4vhlfsaxc565zgw0mjk4sxkl03i7ip3hzcfph1c05yj6h"; depends=[ggplot2 hypergeo lmomco Rcpp]; };
-  TMB = derive2 { name="TMB"; version="1.9.10"; sha256="1cc34zxn2x88fbh4clgbzia36800i30pdlywbkwc26zm50nsxpwi"; depends=[Matrix RcppEigen]; };
+  TMB = derive2 { name="TMB"; version="1.9.11"; sha256="07z9565rn64k3ysvcgq6s792qg1v102gd9in5ifigm140zc4l45j"; depends=[Matrix RcppEigen]; };
   TMDb = derive2 { name="TMDb"; version="1.1"; sha256="062n9mi2f9g2xxpnymja57xnpl855d8mwyfwci7a8cq4c7w7avj7"; depends=[httr jsonlite stringi]; };
   TML = derive2 { name="TML"; version="1.2.0"; sha256="0krnh14mi3vi4msiz84f56kmzq12b1qc246jny37isl1b2wz2zrp"; depends=[ape cluster combinat gtools lpSolve lpSolveAPI magick maps MASS Matrix miscTools phangorn phytools rcdd RcppAlgos Rfast rgl ROCR stringr]; };
-  TMTI = derive2 { name="TMTI"; version="1.0.1"; sha256="080k4lmwspxi6salv4zq9lipwcah3zr6vfc0lrll1z8gynk8arq9"; depends=[Rcpp]; };
   TNC = derive2 { name="TNC"; version="0.1.0"; sha256="0639wvylmk9mapvmz79ij65g1phv3ylc683awi4pgaf9yfwlmjkn"; depends=[]; };
-  TNRS = derive2 { name="TNRS"; version="0.3.5"; sha256="116gmvaccjk7kcrvgzknil2icsvhp53lmg4cn1676801saz25wyz"; depends=[httr jsonlite]; };
+  TNRS = derive2 { name="TNRS"; version="0.3.6"; sha256="1qv9fnqpjx988dxwc8smgqqz4p9knbpl7d8i0d84aq6i392fvx0a"; depends=[httr jsonlite]; };
   TOC = derive2 { name="TOC"; version="0.0-6"; sha256="04ampqa2nv77h6is3ch8ril5b3m33hkd3s5gzzq4jrm1mx529dr8"; depends=[bit terra]; };
   TOHM = derive2 { name="TOHM"; version="1.4"; sha256="15i9hrvxlnwbs9vrsyrfhnm4xwmi97hss2da0xqs1xj5nmzwymqh"; depends=[EQL igraph Matrix nloptr Rmpfr]; };
   TORDs = derive2 { name="TORDs"; version="1.0.0"; sha256="0135xy5gfjnnnchr59i3k0hlxybh5dg3fwqg2z6jv9a3hmkbx21g"; depends=[]; };
   TOSI = derive2 { name="TOSI"; version="0.3.0"; sha256="00v0cjyz22akar7jrpg5alnnbh2nhxjh5cmq053i65xl0wlbzdpg"; depends=[glmnet hdi MASS scalreg]; };
-  TOSTER = derive2 { name="TOSTER"; version="0.8.1"; sha256="04rwsaa52bmhhlcr0afqrmgl0wk7hw9xq23ylmb4afvp3if0qm3d"; depends=[cowplot distributional ggdist ggplot2 jmvcore lifecycle R6 tidyr]; };
+  TOSTER = derive2 { name="TOSTER"; version="0.8.3"; sha256="1xp3hcx4nhxqw9mdqhk9h11wy3zpwci0z0hc38pryq7y6rx8908f"; depends=[cowplot distributional ggdist ggplot2 jmvcore lifecycle R6 tidyr]; };
   TOU = derive2 { name="TOU"; version="0.1.0"; sha256="0wia39yj7abnicx4xhaq1g69qx5fmzh6gywyl5yqfmw03azmyl55"; depends=[DEoptim ggplot2 Rdpack]; };
   TOmicsVis = derive2 { name="TOmicsVis"; version="2.0.0"; sha256="0s46i8wnvvs15xwb0g62rpn864b27hbx0lrjpcv2wb1s27iz1wv3"; depends=[Biobase circlize clusterProfiler ComplexHeatmap cowplot dplyr e1071 EnhancedVolcano enrichplot factoextra GGally ggcorrplot ggforce ggnewscale ggplot2 ggplotify ggpolypath ggpubr ggrepel ggsci igraph Mfuzz pheatmap plotrix randomcoloR RColorBrewer reshape2 Rtsne shiny stringr survival survminer tidyr umap UpSetR vegan venn WGCNA]; };
   TP_idm = derive2 { name="TP.idm"; version="1.5.1"; sha256="0w8sgzm5bmv9m16dryxpw51q000mfmbipxqnhb26bkzr6y46bd79"; depends=[]; };
@@ -5646,7 +5752,7 @@ in with self; {
   TRAMPR = derive2 { name="TRAMPR"; version="1.0-10"; sha256="0nndacpj1bnj6klvf8z4hl05krlnmyc9h9f813kmypk5fqjnhh38"; depends=[]; };
   TRD = derive2 { name="TRD"; version="1.1"; sha256="0bhn4bcrq39f5dgqc74jqsfhs1iqfxhawacqqyncbk2372013nqp"; depends=[Rlab]; };
   TRES = derive2 { name="TRES"; version="1.1.5"; sha256="0hrlqr6va7f17i4zizc2val2jxl151h8dbp4f97g0ixlqnv39qjl"; depends=[ManifoldOptim MASS pracma rTensor]; };
-  TRMF = derive2 { name="TRMF"; version="0.1.5"; sha256="0zi9v7jgvpcdfjs7pbcfb8ggf89w71zvxmlsr319r1d4spkrskfx"; depends=[generics limSolve Matrix]; };
+  TRMF = derive2 { name="TRMF"; version="0.2.1"; sha256="1ar4shr2r58ksk7lzi3dwinp06d7inffrfmnvyb1s289swxg9a1w"; depends=[generics limSolve Matrix]; };
   TRexSelector = derive2 { name="TRexSelector"; version="1.0.0"; sha256="1jxf4zxlhyinfa7w5h5zby7wy3bxbpcran5jy9byysgq5k8bqb5w"; depends=[boot doParallel doRNG foreach glmnet MASS tlars]; };
   TSA = derive2 { name="TSA"; version="1.3.1"; sha256="14g58s2w7wma1fgcg3b51267b3676zrv0w8v4hpypxygz023d9bx"; depends=[leaps locfit mgcv tseries]; };
   TSANN = derive2 { name="TSANN"; version="0.1.0"; sha256="1sk9jq6k5qf8k03yhrb2jmazdh8gi2a17pc5m0agcvxiv4lmp5sp"; depends=[forecast gtools]; };
@@ -5655,6 +5761,7 @@ in with self; {
   TSDFGS = derive2 { name="TSDFGS"; version="2.0"; sha256="02p4caby7w1hgvizhm4cy0jr9mwwnh7gcq1snvz0cbd4mzpjcqgc"; depends=[dplyr ggplot2 latex2exp lifecycle Rcpp RcppEigen]; };
   TSDT = derive2 { name="TSDT"; version="1.0.7"; sha256="0h2nwlzq6p11735nhkkqz6r7lpmw98bwy9dpdmvj4wqb7c64p90p"; depends=[hash mlbench modeltools party rpart survival survRM2]; };
   TSE = derive2 { name="TSE"; version="0.1.0"; sha256="0fzdlryb8m9h6q8w0q42wpphmvm439zxk1imqzmskm48r7w6nm7w"; depends=[]; };
+  TSEAL = derive2 { name="TSEAL"; version="0.1.2"; sha256="1z1912mmmzyn4nh6cnkpddm5v25n87q1pqhd2q8k136xzncf9h57"; depends=[bigmemory caret checkmate magrittr MASS parallelly pryr statcomp synchronicity waveslim wdm]; };
   TSEind = derive2 { name="TSEind"; version="0.1.0"; sha256="0xv968a12p9riq5nk82gq1ixglb2077c99i2a5ws6s23xzs1s29h"; depends=[]; };
   TSEntropies = derive2 { name="TSEntropies"; version="0.9"; sha256="1bwb3kyhzc6sxhvpagf4vjmh8ghx44lpc9ms4jwrsrzdhcvnfc7l"; depends=[]; };
   TSEtools = derive2 { name="TSEtools"; version="0.2.2"; sha256="09pyq0bqs14qah71j6v8cky6vzgj1pi90q60b0zydj7bcrm4lx9w"; depends=[quadprog quantmod xts]; };
@@ -5725,14 +5832,15 @@ in with self; {
   TensorTest2D = derive2 { name="TensorTest2D"; version="1.1.1"; sha256="1yx1ggsbximbsrwimyg7jblbqr0f75z278f38hg61qjxzf9m4ndk"; depends=[]; };
   Ternary = derive2 { name="Ternary"; version="2.3.1"; sha256="0amdyg41mhny74zdl8xm9f4ljii4w6lncq57xgw7qlq946dfp8zg"; depends=[PlotTools RcppHungarian shiny sp viridisLite]; };
   TesiproV = derive2 { name="TesiproV"; version="0.9.2"; sha256="00igkm0y9v363djhig4ydn3bfadqf6rrrdhkai2pl1w876xk2ydw"; depends=[edfun ggplot2 gridExtra nloptr pracma]; };
-  TestAnaAPP = derive2 { name="TestAnaAPP"; version="0.1.8"; sha256="0h37jvvw3k291kwkq77b15ypvzh80wmh6jpgjhdcs9lid2k3iq2b"; depends=[bruceR cowplot dplyr DT EstCRM flextable ggplot2 golem mirt officedown officer openxlsx plotrix rmarkdown shiny shinycssloaders shinydashboard stringr tidyr tidySEM]; };
+  TestAnaAPP = derive2 { name="TestAnaAPP"; version="1.0.1"; sha256="0550i7d4bpbd9bvs7sbjd5aaqpqjpd2fzfbplxfcvz2q9dwbcp49"; depends=[bruceR cowplot difR dplyr DT EstCRM flextable ggplot2 golem latticeExtra mirt officedown officer openxlsx plotrix rmarkdown shiny shinycssloaders shinydashboard stringr tidyr tidySEM]; };
   TestCor = derive2 { name="TestCor"; version="0.0.2.2"; sha256="01ndiqi0z672ymm2bid0r0cqz8fqd9268xgmmq74z3agj81l5c5j"; depends=[MASS Rcpp RcppArmadillo]; };
   TestDataImputation = derive2 { name="TestDataImputation"; version="2.3"; sha256="11acpw9vjar6g8n9cifpfs4208j1hqqp15j59mr9pnfwq747hw2z"; depends=[Amelia mice]; };
-  TestDesign = derive2 { name="TestDesign"; version="1.5.1"; sha256="1r59zx97g1z49x6lkiqw2kclb88jksgwj589jymwcng3h5ja68ah"; depends=[crayon foreach logitnorm lpSolve Rcpp RcppArmadillo]; };
+  TestDesign = derive2 { name="TestDesign"; version="1.6.1"; sha256="0f13d6j9x9knsd7ynz025x4pv61n49jk5m9ih09cm8xz9g1ypb4n"; depends=[crayon foreach logitnorm lpSolve Rcpp RcppArmadillo]; };
   TestDimorph = derive2 { name="TestDimorph"; version="0.5.8"; sha256="1gnjgglb2mnaidlhjhqyg4jk6cvw0n0rzzpxamq55n8yyqd2kkh3"; depends=[corrplot dplyr ggplot2 Morpho multcompView tidyr tmvtnorm truncnorm]; };
   TestFunctions = derive2 { name="TestFunctions"; version="0.2.1"; sha256="0119ajbmgcfwd7axvx47x3aw3j1hnc2i3fvgrixfd1rgj99hz2vj"; depends=[]; };
   TestGardener = derive2 { name="TestGardener"; version="3.3.3"; sha256="1iybx4h46shyki0ihnaxn968lkplnp88l0ld09cx632vhlpis0iv"; depends=[dplyr fda ggplot2 ggpubr knitr plotly pracma rgl rmarkdown stringr tidyr utf8]; };
-  TestGenerator = derive2 { name="TestGenerator"; version="0.2.5"; sha256="0gx6s8s9dqjpinkifmgwiqry15pl8kr56yjakaisa1fwdsqj2jzp"; depends=[CDMConnector checkmate DBI dplyr duckdb fs glue jsonlite readxl usethis]; };
+  TestGenerator = derive2 { name="TestGenerator"; version="0.3.1"; sha256="15jgcknxdc1nh3325rzlax3q69dgfxb2a3xm2bzpi7fb7ryv5grz"; depends=[CDMConnector checkmate cli DBI dplyr duckdb ggplot2 glue jsonlite readr readxl rlang testthat tibble withr]; };
+  TestIndVars = derive2 { name="TestIndVars"; version="0.1.0"; sha256="04imj35ks5dzwizia8r25ahgdxclbskv3s3r8c9k5cqrv4gqppga"; depends=[MASS matrixcalc]; };
   TestScorer = derive2 { name="TestScorer"; version="1.7.2"; sha256="006c3g3gx55mfr93srldwvgz5vm6nkr3f57yi4qg6krn0d32865f"; depends=[]; };
   TestingSimilarity = derive2 { name="TestingSimilarity"; version="1.1"; sha256="1iq0wh13rl6rby44ql4d286r1akzwmbpsvnq9p8lkl8709z0d34w"; depends=[alabama DoseFinding lattice]; };
   TestsSymmetry = derive2 { name="TestsSymmetry"; version="1.0.0"; sha256="0dbgw14m4nk1x9y186v3ynqrv14z8irr7yyq4087sqmpj6y79sb5"; depends=[e1071 MASS Rcpp rpart]; };
@@ -5746,13 +5854,13 @@ in with self; {
   ThermIndex = derive2 { name="ThermIndex"; version="0.2.0"; sha256="0s9d55577dq61qixwwfwmqc2k2c8my00j2ng97ng42cw0jc7aylm"; depends=[]; };
   ThermalSampleR = derive2 { name="ThermalSampleR"; version="0.1.2"; sha256="1s1hxfssh7d0c4v4phvqpkr4asfrflg84hznz2qgjrn9k0dbkljj"; depends=[cowplot dplyr EnvStats ggplot2 janitor magrittr MASS purrr rlang sn testthat tidyr]; };
   Thermimage = derive2 { name="Thermimage"; version="4.1.3"; sha256="1623r64v97ii8qq6cfrg0jrdl7nwxswjgif5l85vak8xjkfwsq7q"; depends=[png tiff]; };
-  ThomasJeffersonUniv = derive2 { name="ThomasJeffersonUniv"; version="0.1.0"; sha256="0w2n7jwns82zljkfz509hkkplda5mpbcqk5gzi2y75vlika0rg18"; depends=[lubridate timeDate zoo]; };
-  ThreeArmedTrials = derive2 { name="ThreeArmedTrials"; version="1.0-4"; sha256="1czlr94mgs99pzd1a80wqfjhrwrfsk8fvbbr37nwcixs0fw431yw"; depends=[MASS numDeriv]; };
+  Thermistor = derive2 { name="Thermistor"; version="1.1.0"; sha256="0jdc5x3pylqbfxyhxhfsfd5lqiqd9qpn08w6svm0w7clbsp54bph"; depends=[ggplot2]; };
+  ThomasJeffersonUniv = derive2 { name="ThomasJeffersonUniv"; version="0.1.2"; sha256="1flj8jrkaj7l3a6lq2ir365rfnyd883kbd90lbfal44nsb7y3j43"; depends=[lubridate stringdist survival timeDate writexl zoo]; };
   ThreeGroups = derive2 { name="ThreeGroups"; version="0.21"; sha256="0hipxa45v9ysb2qbk33kjycnvqar7bff1ajxd6fzhpc3jc9hflw4"; depends=[]; };
   ThreeWay = derive2 { name="ThreeWay"; version="1.1.3"; sha256="17yl8zq029wiy3c0f4ssljx85dnm9n862wj2d24w7p0lxlvarmz6"; depends=[]; };
   ThreeWiseMonkeys = derive2 { name="ThreeWiseMonkeys"; version="0.1.0"; sha256="1qdb3m15q0gg8dk2znc2syy2jdqsp2893a7ilfa8rg3r2vps86yg"; depends=[stringr tuneR]; };
-  Thresher = derive2 { name="Thresher"; version="1.1.3"; sha256="16zf5cwc2c5j61xcrqsycwrsc162spyqgk9mac7n37mymn5agbwp"; depends=[ade4 ClassDiscovery colorspace MASS movMF oompaBase PCDimension]; };
-  ThresholdROC = derive2 { name="ThresholdROC"; version="2.9.3"; sha256="08wz44snvn3q243nzg4hw5casi1x297gc7nzxqyxwk641pa4cy95"; depends=[ks MASS numDeriv pROC]; };
+  Thresher = derive2 { name="Thresher"; version="1.1.4"; sha256="01rjm3j1zxx7gc0m8cr5jgcbr6pz11mqxr5sw0bgh6kdc5n0by0n"; depends=[ade4 ClassDiscovery colorspace MASS movMF oompaBase PCDimension]; };
+  ThresholdROC = derive2 { name="ThresholdROC"; version="2.9.4"; sha256="1vh4fx8vbk5w6nrgkldnhxbhcdcrdc7sxhvm0gsn1gh7w5cgndq7"; depends=[ks MASS numDeriv pROC]; };
   ThresholdROCsurvival = derive2 { name="ThresholdROCsurvival"; version="1.2.1"; sha256="13njr43fb8jnjcy1n32q8rbrgqag9cdcwx4rpx16rx7kvjr23gcw"; depends=[boot InformativeCensoring pROC psych survival ThresholdROC]; };
   ThurMod = derive2 { name="ThurMod"; version="1.1.11"; sha256="01ay1w3h300day5aljha93xyk0n8a98c7g5binvchgsa019mg9dd"; depends=[lavaan MASS matrixStats mvtnorm]; };
   TiPS = derive2 { name="TiPS"; version="1.2.3"; sha256="061lyai1kjm5glm69wxpnqvgp1xzj8j893pa73x5fl228dqm526f"; depends=[gtools inline Rcpp stringr]; };
@@ -5760,10 +5868,12 @@ in with self; {
   TideHarmonics = derive2 { name="TideHarmonics"; version="0.1-1"; sha256="1g1v99gh6mns4l8ipmw7kpalbk07m92ybcqjq7b0wsjmdvs1y67s"; depends=[]; };
   TideTables = derive2 { name="TideTables"; version="0.0.3"; sha256="0xfwikz9f58pw1j5vp45wp44lbr8b8ijlac474nzahq46d411afp"; depends=[chron data_table]; };
   Tides = derive2 { name="Tides"; version="2.1"; sha256="0da3z010ali83qf8mf1znicqv8vvsa5r93mc40ax60ln2w33nlrm"; depends=[]; };
-  TidyDensity = derive2 { name="TidyDensity"; version="1.3.0"; sha256="1pxl4x5d4vg0y7dq0b39f4kng0x3yqdh9la7cav7ic1hijyrv6w3"; depends=[actuar broom data_table dplyr ggplot2 magrittr nloptr patchwork plotly purrr rlang survival tidyr tidyselect]; };
+  TidyConsultant = derive2 { name="TidyConsultant"; version="0.1.1"; sha256="00gw5h3n04nnrkrqx981rksi4liydmljj4nnnjnnh2a7ra98pcln"; depends=[autostats badger Ckmeans_1d_dp framecleaner pacman presenter tidybins validata]; };
+  TidyDensity = derive2 { name="TidyDensity"; version="1.5.0"; sha256="1ncs8c0gwb54snn9xbndgjc9cgqf8hgqmr5ki2bsxad0vqgjl9vq"; depends=[actuar broom data_table dplyr ggplot2 magrittr nloptr patchwork plotly purrr rlang stringr survival tidyr tidyselect]; };
   TidyMultiqc = derive2 { name="TidyMultiqc"; version="1.0.3"; sha256="1gnkq2ssc9lvkz1j52c2l4v1frxfcnw3j186kf3xbx8qx1aikyqr"; depends=[assertthat dplyr jsonlite magrittr purrr rlang stringr tibble]; };
   TimeVTree = derive2 { name="TimeVTree"; version="0.3.1"; sha256="124kg9zcq4b2j4qvg9f6gykbmzf69qjnnw54nv213ip2h4rdkv32"; depends=[survival]; };
   TimeVarConcurrentModel = derive2 { name="TimeVarConcurrentModel"; version="1.0"; sha256="0fq05yni8hasivwmv5dk5ivwkprh4fkaa7h1bv8b60savvh0zs23"; depends=[Bolstad2 fda]; };
+  TimeVizPro = derive2 { name="TimeVizPro"; version="1.0.1"; sha256="1yknbwbqmqvafrgsagmqnmfms1xdsl3r73d71d301nnadfs0p6qc"; depends=[countrycode dplyr ggiraph ggplot2 shiny sparkline]; };
   Tinflex = derive2 { name="Tinflex"; version="2.4"; sha256="1rrxlbv6xsnqr2zcadcr9g2p64zgkih89997inx0azl7v788sm9i"; depends=[]; };
   TipDatingBeast = derive2 { name="TipDatingBeast"; version="1.1-0"; sha256="07lw6jnr76qrxwrwv90hi5ih2xf6g4sz4hfapk5vf1y3ayfskkl0"; depends=[DescTools mclust TeachingDemos]; };
   Tlasso = derive2 { name="Tlasso"; version="1.0.2"; sha256="1svjl2va3vpa1m13wmyy3bpx76xxivalwprzbaavwxf8lgk34wgr"; depends=[expm huge igraph rTensor]; };
@@ -5771,6 +5881,7 @@ in with self; {
   Tmisc = derive2 { name="Tmisc"; version="1.0.1"; sha256="0j2cr51mrbxpmk70dz99d7h2y2y649zaql6262v7nzvqyc6m1h47"; depends=[dplyr magrittr rstudioapi tibble]; };
   TooManyCellsR = derive2 { name="TooManyCellsR"; version="0.1.1.0"; sha256="0cypjf4a9q2kw4gwxlr59nbwn25wrrhrcmpksxi2yhd3qhk71q8n"; depends=[cowplot ggplot2 imager jsonlite Matrix]; };
   ToolsForCoDa = derive2 { name="ToolsForCoDa"; version="1.0.6"; sha256="1c37xv8h4jycnn9cnxlvby3p8hl3gfp4bdsbxm06bb323qj774pd"; depends=[calibrate HardyWeinberg MASS]; };
+  Toothnroll = derive2 { name="Toothnroll"; version="1.11"; sha256="1xd6p1yxfp6x48cg81r8bgd8v19rpymbsnlzczylkzh6w7khaafl"; depends=[alphashape3d Arothron colorRamps compositions DescTools geometry lattice mgcv Morpho morphomap oce rgl Rvcg stringr vegan]; };
   TopDom = derive2 { name="TopDom"; version="0.10.1"; sha256="1rryfnwvdlpdrjgs6sciy91cxfp4jykll0swclasydjvj4n642i6"; depends=[ggplot2 matrixStats reshape2 tibble]; };
   TopKLists = derive2 { name="TopKLists"; version="1.0.8"; sha256="1l2fshf4w2ykhxb1bhrblcknxppy4l4w5w0pm16zcvkhrsas06cs"; depends=[gplots Hmisc]; };
   TopKSignal = derive2 { name="TopKSignal"; version="1.0"; sha256="1767v8njdi736im8fhf9yihrbxjrnyhs7xpmdzphsm55qm8rda1x"; depends=[doParallel foreach ggplot2 Matrix nloptr reshape2]; };
@@ -5779,7 +5890,7 @@ in with self; {
   TotalCopheneticIndex = derive2 { name="TotalCopheneticIndex"; version="2.0.1"; sha256="0i21g7zzad973802kfp8s638d3g70c4vkrm59i9frb71apvkljk2"; depends=[TreeTools]; };
   ToxCrit = derive2 { name="ToxCrit"; version="1.0"; sha256="1jxi10b733k3djfykyqnpcp2fapsmaszsd7lkwcwmwq62v73rhax"; depends=[]; };
   Tplyr = derive2 { name="Tplyr"; version="1.2.1"; sha256="092lazly5l2891x7yriii19ifck0rhlwk0ic8n6yjpp2ibwg6dbz"; depends=[assertthat dplyr forcats lifecycle magrittr purrr rlang stringr tibble tidyr tidyselect]; };
-  TraMineR = derive2 { name="TraMineR"; version="2.2-9"; sha256="1gn4mpd3hkxxhdlqvpvxj2q4p03g4v1cib8048h8ar27rl5mqpvh"; depends=[boot cluster colorspace RColorBrewer vegan]; };
+  TraMineR = derive2 { name="TraMineR"; version="2.2-10"; sha256="19l51vjn4ljyfghsl93amh94zqsvf290ahvb7r4z6kqgdbz8j5lb"; depends=[boot cluster colorspace RColorBrewer vegan]; };
   TraMineRextras = derive2 { name="TraMineRextras"; version="0.6.7"; sha256="06kl8xxszwdra3dyapnk76frnz416lbkqfvxc115pnwxlf8ad8v5"; depends=[cluster colorspace doParallel foreach RColorBrewer survival TraMineR]; };
   TraceAssist = derive2 { name="TraceAssist"; version="0.1.0"; sha256="03x071nsfgz1z2qp1zn1y3hfx8ydpj0z4rcfk2i588ad53z86w4c"; depends=[glmnet keras Matrix quadprog]; };
   TrackReconstruction = derive2 { name="TrackReconstruction"; version="1.3"; sha256="0x2wydp9qj2r2rsv0kmwlq4y7mr391ya13rpnj3mdgl0pjdp445s"; depends=[fields RColorBrewer]; };
@@ -5792,20 +5903,22 @@ in with self; {
   TransTGGM = derive2 { name="TransTGGM"; version="1.0.0"; sha256="0c815qp0nb4c8ymq9gm9yr37vkzlb6fja9j0czl6ww7rvr8fplrn"; depends=[doParallel expm glasso MASS Matrix rTensor Tlasso]; };
   Transform = derive2 { name="Transform"; version="1.0"; sha256="0dynxrmpyji2dn42l4s87waz7m77ci0h7rnsc3zm6a3ya9gxgdfv"; depends=[]; };
   Tratamentos_ad = derive2 { name="Tratamentos.ad"; version="0.2.4"; sha256="15xba5g5b9rxpndgmhlnnq35xjic9v7ymgpyaaj6fn0kziphip84"; depends=[crayon]; };
-  TreatmentPatterns = derive2 { name="TreatmentPatterns"; version="2.6.5"; sha256="0prsf1qhdvh524sdw396d2dflg8nm9kf6g0i8nczd0kjzd5jf95m"; depends=[Andromeda checkmate dplyr htmlwidgets networkD3 R6 shiny shinydashboard stringr sunburstR tidyr]; };
+  TreatmentPatterns = derive2 { name="TreatmentPatterns"; version="2.6.7"; sha256="1s6rvsqa4q6nr9vlfmcysn58qw88df05fp638y8yxc791bw120gm"; depends=[Andromeda checkmate dplyr htmlwidgets networkD3 R6 shiny shinydashboard stringr sunburstR tidyr]; };
   TreatmentSelection = derive2 { name="TreatmentSelection"; version="2.1.1"; sha256="1pw64hx697jg2f1r2zd8y98g3ivj2gm8fnixcjfn4drsd0xixb4p"; depends=[binom ggplot2 survival]; };
   TreeBUGS = derive2 { name="TreeBUGS"; version="1.5.0"; sha256="0nxv2hh7flmyfm2pap97hwjyz29hfzybfv3b1v0ygqffgmh1j7mb"; depends=[coda hypergeo logspline MASS Rcpp RcppArmadillo rjags runjags]; };
   TreeDep = derive2 { name="TreeDep"; version="0.1.3"; sha256="0ja2hp9sxzybac6dqdsns5q1rj12swl240znsnsffg9mkvzhq6rl"; depends=[ggplot2 lubridate]; };
   TreeDiagram = derive2 { name="TreeDiagram"; version="0.1.1"; sha256="03kn9h37wgx300szzxmg21zc5iz3a9v8f2ydzv6dv6rhpa7yn0v5"; depends=[ape cowplot ggplot2 stringr tree]; };
   TreeDimensionTest = derive2 { name="TreeDimensionTest"; version="0.0.2"; sha256="1bwvspjvc1cragbsrc05vhwk0zmfj36r9piqbj0vgahpjb4cswn9"; depends=[fitdistrplus igraph mlpack nFactors RColorBrewer Rcpp Rdpack]; };
   TreeDist = derive2 { name="TreeDist"; version="2.7.0"; sha256="1x92z0ipk3rk94hxc3al76y51pzha2csry3vrflll7sgshkbr5rj"; depends=[ape cli colorspace memoise phangorn Rcpp Rdpack shiny shinyjs TreeTools]; };
-  TreeMineR = derive2 { name="TreeMineR"; version="1.0.0"; sha256="1ngadly2535n8h02lv8zkmhy3adfs7bklxd2b0d24cl9c5c5gh3v"; depends=[cli data_table future future_apply]; };
-  TreeSearch = derive2 { name="TreeSearch"; version="1.4.0"; sha256="1nhy1bq4pkbj0c09750hzjnzgqv5k1042fjra9dw4yk24rk1dyi7"; depends=[ape cli cluster fastmatch fs future PlotTools promises protoclust Rcpp Rdpack Rogue shiny shinyjs TreeDist TreeTools]; };
+  TreeMineR = derive2 { name="TreeMineR"; version="1.0.1"; sha256="04rd7yrp69lz2qavfhdvbcwd0jy2qpng2xcgmbn69wp6yrm79r6y"; depends=[cli data_table future future_apply]; };
+  TreeRingShape = derive2 { name="TreeRingShape"; version="3.0.3"; sha256="0vk58ngvx362070nzg06g2130xlz4crcpmfxgxvjvr4w3pc7iqxi"; depends=[sf]; };
+  TreeSearch = derive2 { name="TreeSearch"; version="1.5.1"; sha256="0nxzjv4q052nsfrib3i95b92alxipds5bll1aldh88dabhn3c0v5"; depends=[ape cli cluster fastmatch fs future PlotTools promises protoclust Rcpp Rdpack Rogue shiny shinyjs TreeDist TreeTools]; };
   TreeSim = derive2 { name="TreeSim"; version="2.4"; sha256="0nmzx2723n1f5lr951zz2ih2gnpfim5qzihlayhpf181z1qijv93"; depends=[ape geiger]; };
   TreeSimGM = derive2 { name="TreeSimGM"; version="2.5"; sha256="125c9rim272h0dfyygmmijz8dcnch3g9wy1ngki77dyrmdl77yfx"; depends=[ape TreeSim]; };
-  TreeTools = derive2 { name="TreeTools"; version="1.10.0"; sha256="1ghp8dsr3y1xsbg53fw94xmwyxylcqd5jxijfi5hxis9mskc985j"; depends=[ape bit64 colorspace fastmatch lifecycle PlotTools R_cache Rcpp RCurl Rdpack]; };
+  TreeTools = derive2 { name="TreeTools"; version="1.11.1"; sha256="067cxg655bkbcp5ngj3r1i6hs49j8ql1dh1dafzv3gjalx735iav"; depends=[ape bit64 colorspace fastmatch lifecycle PlotTools R_cache Rcpp RCurl Rdpack]; };
   TrenchR = derive2 { name="TrenchR"; version="1.1.1"; sha256="0724dgm9yl906lk2vxffd465gy9kv7fdb0yymbnbq9flwxr4nfig"; depends=[deSolve msm Rdpack zoo]; };
   TrendInTrend = derive2 { name="TrendInTrend"; version="1.1.3"; sha256="0ijkijyhxhjc7202qssa9wnrmwgv4miv5n8jbml4qqj80kcsbdwp"; depends=[nleqslv pracma pROC rms]; };
+  TrendLSW = derive2 { name="TrendLSW"; version="1.0.2"; sha256="0zsl42j0yyc5llk8f0saxnpfxnm8y5n0rwhvmh3xzw21z5rln704"; depends=[locits wavethresh]; };
   TrendSLR = derive2 { name="TrendSLR"; version="1.0"; sha256="1x8j2dg3m7b22gva33y4s318a41wl60sz93y868z4j65hp13jb5k"; depends=[changepoint forecast imputeTS plyr Rssa tseries zoo]; };
   TrendTM = derive2 { name="TrendTM"; version="2.0.19"; sha256="00m8ahzfldvncn9p35f7qya890chqwizal02748nlfk4wfxjbgw7"; depends=[capushe fda softImpute]; };
   Trendtwosub = derive2 { name="Trendtwosub"; version="0.0.2"; sha256="12ibxxq58h9w7hlrsxwdirh02casj495rxbfknaggwfx3w30nm56"; depends=[magrittr usethis]; };
@@ -5825,7 +5938,7 @@ in with self; {
   TruncExpFam = derive2 { name="TruncExpFam"; version="1.1.1"; sha256="0y5vlfv5q1fphamwr3as14hc1rvz3f15x7vl0kimmmkk0pvpdxya"; depends=[invgamma rmutil]; };
   TruncatedNormal = derive2 { name="TruncatedNormal"; version="2.2.2"; sha256="05cfn7mdq0hgw97bbb227in9ccjz727sp67xpnpx2r1ajvl6gxdf"; depends=[alabama nleqslv randtoolbox Rcpp RcppArmadillo]; };
   TukeyC = derive2 { name="TukeyC"; version="1.3-42"; sha256="1mzygb3yna1qnk0n8rvwnm32kfrjd2fqwpc4kdwadw1sl6xvp44b"; depends=[doBy xtable]; };
-  TukeyGH77 = derive2 { name="TukeyGH77"; version="0.1.1"; sha256="08d2i3wx7xyc1a6wszilicdzjyr9h912544b994famv9m8s1w808"; depends=[rstpm2]; };
+  TukeyGH77 = derive2 { name="TukeyGH77"; version="0.1.2"; sha256="0mlq79km9m1ssa876fh93n2462i8bpwgcdxhx7j3rqhnx4q3y32q"; depends=[rstpm2]; };
   TukeyRegion = derive2 { name="TukeyRegion"; version="0.1.6.3"; sha256="02w84bha6niyval71a06ibk42crvv2259302ckdzmb61ik9sg44d"; depends=[bfp BH ddalpha MASS Rcpp rgl Rglpk]; };
   TunePareto = derive2 { name="TunePareto"; version="2.5.3"; sha256="097rawf1mjam6gbh7ng0x8hcjv18zp9h0hvm62r6nfzyfzlakf7g"; depends=[]; };
   TurtleGraphics = derive2 { name="TurtleGraphics"; version="1.0-8"; sha256="0h77pj7rs3lrqi1y2dm1cbrmj13mjpq6y5nw8bcq0s2kbnkfw67l"; depends=[]; };
@@ -5836,24 +5949,22 @@ in with self; {
   TwoPhaseInd = derive2 { name="TwoPhaseInd"; version="1.1.2"; sha256="1ifdj17rlr8nd0pqpcqi6835ymdhngif279i27s6lvwha924l81c"; depends=[survival]; };
   TwoSampleTest_HD = derive2 { name="TwoSampleTest.HD"; version="1.2"; sha256="1mvrlvcdllk7mxfsmahgb3iq7ndlnc4xg1536c1mxphxlh5qxwp0"; depends=[]; };
   TwoStepCLogit = derive2 { name="TwoStepCLogit"; version="1.2.5"; sha256="050y7na91izg36gkwd8yn8rx3r39dk6qlvhd3137f3jnk4v00bck"; depends=[survival]; };
-  TwoWayFEWeights = derive2 { name="TwoWayFEWeights"; version="2.0.0"; sha256="1k674q11wvmqa1rpnxzrqhjq73pjl2fbi858ifwvd90dlvp530vp"; depends=[cli dplyr fixest haven magrittr rlang]; };
-  UBCRM = derive2 { name="UBCRM"; version="1.0.2"; sha256="0cfdgarlks0hkx4fnlm0i2fwpl057vxq58n3xfv718w3cs2nx9wc"; depends=[]; };
+  TwoWayFEWeights = derive2 { name="TwoWayFEWeights"; version="2.0.3"; sha256="0glwykcbnp65nc345b6k8dc74dvn7bghr045mvqk3jqmmrha0pd8"; depends=[cli dplyr fixest haven magrittr rlang]; };
+  UBCRM = derive2 { name="UBCRM"; version="1.0.3"; sha256="0sbw0kvviczpccv3nq2n1nkj61hng178px4381zkaf1yrv44x9l6"; depends=[]; };
   UBL = derive2 { name="UBL"; version="0.0.9"; sha256="1jpm41la5210a9shak01fsgq2yw8l1cz5zbb5zlas2nc2jg7hslh"; depends=[automap gstat MBA randomForest sp]; };
   UBayFS = derive2 { name="UBayFS"; version="1.0"; sha256="1aj627f8w30wfnf313adza85jffnp1yq34ri8cfaz5v0jzs1bfib"; depends=[DirichletReg GA ggplot2 gridExtra hyper2 matrixStats mRMRe Rdimtools shiny]; };
   UCR_ColumnNames = derive2 { name="UCR.ColumnNames"; version="0.1.0"; sha256="1nwwq93f60r9aik51l7mzckg81f81nz5kgzynyzp5sm4y2wmpzwn"; depends=[]; };
-  UCSCXenaShiny = derive2 { name="UCSCXenaShiny"; version="2.0.0"; sha256="121nkc9lxaf3hb15wb3aafwh4m3h4iynv68jqgdfi41mayb7k6dy"; depends=[digest dplyr ezcox forcats ggplot2 ggpubr httr magrittr ppcor psych purrr shiny stringr tibble tidyr UCSCXenaTools]; };
+  UCSCXenaShiny = derive2 { name="UCSCXenaShiny"; version="2.1.0"; sha256="080a3p3cb818hns7f72c411bh13clfn3b6xl7wlx41z69swphb5m"; depends=[digest dplyr ezcox forcats ggplot2 ggpubr httr magrittr ppcor psych purrr rlang shiny stringr tibble tidyr UCSCXenaTools]; };
   UCSCXenaTools = derive2 { name="UCSCXenaTools"; version="1.4.8"; sha256="0w0rps6jsiw67k6h8j1g0nqzwwhl1kb2by90xd4w61i71vk0fda7"; depends=[digest dplyr httr jsonlite magrittr readr rlang]; };
   UComp = derive2 { name="UComp"; version="4.0.2"; sha256="0k89palrdifgrz45ar3dcnrwpxwb01nqsg9k1qkwrilhyj9c254k"; depends=[ggforce ggplot2 gridExtra Rcpp RcppArmadillo tsibble tsoutliers]; };
   UHM = derive2 { name="UHM"; version="0.3.0"; sha256="0gl98v7cya740vldimx3ygjqqi3ld1wlpm48hcbylgmvb97745k1"; depends=[jagsUI numbers]; };
   UKB_COVID19 = derive2 { name="UKB.COVID19"; version="0.1.4"; sha256="0f684nkyrk9dl7hz9mzbb3x8gza5prd8zrg8ajfyjiqif7c6hkbg"; depends=[data_table dplyr here magrittr questionr tidyverse]; };
-  UKFE = derive2 { name="UKFE"; version="0.3.4"; sha256="0na87vw94br6pkh9cj75m71hc6qa26k19flcbq2cd3g8ll9bpx6x"; depends=[xml2]; };
+  UKFE = derive2 { name="UKFE"; version="0.3.5"; sha256="0z7jqxp34005m3331crhkqgwgh9fg2p57jnj7kxp0r5bda5vdvzd"; depends=[xml2]; };
   UKgrid = derive2 { name="UKgrid"; version="0.1.3"; sha256="1x44iry2j5qbvd8ac9rv9dmg60hbhry2v4jj9hmm49bx10iwl9h2"; depends=[data_table dplyr lubridate magrittr tsibble xts zoo]; };
-  UNCLES = derive2 { name="UNCLES"; version="2.0"; sha256="0c61sm09dh0yfrjrjjnizg7qrf8xgc1zdldwhjh64kq8k8g5wa69"; depends=[class kohonen pdist]; };
   UNCOVER = derive2 { name="UNCOVER"; version="1.1.0"; sha256="0x5ggwnzca6wz3ikpsa3aq8b715w8drkpchqp3jsg0g9imiw5y3m"; depends=[cachem crayon GGally ggnewscale ggplot2 ggpubr igraph memoise mvnfast scales]; };
   UNPaC = derive2 { name="UNPaC"; version="1.1.1"; sha256="1dqli7fanh0gk2bfbcykrrswyjrl9g4rbplxjxgjri7kkmf03cd0"; depends=[huge PDSCE]; };
   UPCM = derive2 { name="UPCM"; version="0.0-3"; sha256="1apah04qdgvxxf6q6xr53716pcrmds86sn8f7ykxj93ggg8k0bvl"; depends=[cubature ltm mvtnorm numDeriv Rcpp RcppArmadillo statmod]; };
   UPG = derive2 { name="UPG"; version="0.3.4"; sha256="0yyyyjxrw9833w0iwnp2c3y853h8c5kj8rbkalg5rsmxk5m0fjgn"; depends=[coda ggplot2 knitr matrixStats mnormt pgdraw reshape2 truncnorm]; };
-  UPMASK = derive2 { name="UPMASK"; version="1.2"; sha256="160rsb0nbndf61khcs3s8xv9nj7ln8zl6l11157ywdcjqd2q5qnq"; depends=[DBI dimRed loe MASS RSQLite]; };
   UPSvarApprox = derive2 { name="UPSvarApprox"; version="0.1.4"; sha256="14hj8yv366qix30x7hq1sfzrcrsx4ckfa010azi1ihzp307hfkbz"; depends=[]; };
   URooTab = derive2 { name="URooTab"; version="0.1.0"; sha256="0455ssqi0byi6absaxh5xvvyw9isn2fw3rjvyhmd7h9r5w3a1yd6"; depends=[EviewsR knitr magrittr xts zoo]; };
   USA_state_boundaries = derive2 { name="USA.state.boundaries"; version="1.0.1"; sha256="0pdqnfpijs9n1vxkngs3mm5q9dwqfmlkm60jq8isxcd9fiadsig6"; depends=[]; };
@@ -5865,9 +5976,10 @@ in with self; {
   UWHAM = derive2 { name="UWHAM"; version="1.1"; sha256="162manvbmlvf8pqhcda9wx17nrdcwscb88ny2r7cvag3j04yxl54"; depends=[trust]; };
   UdderQuarterInfectionData = derive2 { name="UdderQuarterInfectionData"; version="1.0.0"; sha256="084bq5ai1ccp4www64z0ipic74zkd8j1ygv0py900164a25wdr9b"; depends=[]; };
   Ultimixt = derive2 { name="Ultimixt"; version="2.1"; sha256="0fh2qpm7qpv1170jzbmzqhvwsn69lblizzisgasswy2nix2jjz4y"; depends=[coda gtools]; };
-  Umatrix = derive2 { name="Umatrix"; version="3.4.1"; sha256="1nvc7zg28rwhwminn6hygvdmy0ghaivmqgn53mfdgq39mbf3xi2w"; depends=[abind AdaptGauss DataVisualizations deldir fields geometry ggplot2 pdist plyr png Rcpp reshape2 shiny shinyjs]; };
+  Umatrix = derive2 { name="Umatrix"; version="4.0"; sha256="0mpn61hiqx5ql23qwi299ifmpgcyx2px1hj70kq1ybqwxi9kyc1w"; depends=[abind AdaptGauss DataVisualizations deldir fields geometry ggplot2 pdist plyr png Rcpp reshape2 shiny shinyjs]; };
   Umoments = derive2 { name="Umoments"; version="0.1.1"; sha256="089d0xmsp0419mxjp6fs0s1palvdkr0i5dzqckcn6r2kjqj7izjg"; depends=[]; };
   Umpire = derive2 { name="Umpire"; version="2.0.10"; sha256="1bhz1yfvpszqz4nal2wwjgllbq0hj6y0jf2bja3nfb7amj2m10gg"; depends=[BimodalIndex mc2d]; };
+  UnalR = derive2 { name="UnalR"; version="1.0.0"; sha256="1zw68ss0jlyg9mm5qy0k7dqbag8qz08yc96kfmib028d72jsh41d"; depends=[cli d3r data_tree dplyr DT dygraphs echarts4r fmsb forcats ggplot2 ggrepel ggspatial gridSVG gt gtExtras highcharter htmltools htmlwidgets jsonlite leaflet leaflet_extras lifecycle magrittr maps plotly png rlang scales sf sp stringr sunburstR tidyr treemap webshot XML xts zoo]; };
   UncDecomp = derive2 { name="UncDecomp"; version="1.0.1"; sha256="1m44pgk7nffay09m4gkwb0khq0qjd7bq1p72blsmib46wmnwqfsa"; depends=[dplyr ggplot2]; };
   UniExactFunTest = derive2 { name="UniExactFunTest"; version="1.0.0"; sha256="03gnn36m735kycac526qrz5rkjhqcw9dp77x71z6qryy7i718qwv"; depends=[Rcpp]; };
   UniIsoRegression = derive2 { name="UniIsoRegression"; version="0.0-0"; sha256="0lmrmb9sbk41ak7sbcrzhfnijb1skgb4lqg9m9imc98lcp69h7z0"; depends=[Rcpp]; };
@@ -5878,7 +5990,8 @@ in with self; {
   UnitCircle = derive2 { name="UnitCircle"; version="0.1.3"; sha256="0z5ssps8l5ka4aw4984qml15scw4pfssara5dls82afhfhpkszsr"; depends=[]; };
   UnitStat = derive2 { name="UnitStat"; version="1.1.0"; sha256="185ivm4kg6hzqx3srk1shvpd5vlc0akn1sbg3wqcdsk2i2x6vhhm"; depends=[lmtest]; };
   UnivRNG = derive2 { name="UnivRNG"; version="1.2.3"; sha256="14z2yqv14sv16ycf7jf2kkp8pqn12d9lq4l568vmdm10qrl5x39d"; depends=[]; };
-  UniversalCVI = derive2 { name="UniversalCVI"; version="1.1.1"; sha256="1z800hpbbbkrbsxrbimkj4aaff5lfvxc8fp8ds17r3g7hi9z565g"; depends=[e1071 mclust]; };
+  UniversalCVI = derive2 { name="UniversalCVI"; version="1.1.2"; sha256="0q8sgphhv07cv6ljgvkr41a8p12gksxs1klcly3sd3g906b8rbcv"; depends=[e1071 mclust]; };
+  UpAndDownPlots = derive2 { name="UpAndDownPlots"; version="0.5.0"; sha256="0q19a64dy0g89yyxgs88vpcisc9apji3cl7b7gdm778y6j59jnjq"; depends=[dplyr forcats ggplot2 ggthemes gridExtra tidyr tidyverse]; };
   UpDown = derive2 { name="UpDown"; version="1.2.1"; sha256="0c1mi43mkadhpalrd3wlp94ri1sp9ii5wcn44pgz35ki7nngrnaj"; depends=[dplyr ggplot2 mclust mixtools reshape2 shiny]; };
   UpSetR = derive2 { name="UpSetR"; version="1.4.0"; sha256="007i0njnjjy7vbrxabwav7a1kk2n0hn2mkvqsdzzfk10ckp5y7im"; depends=[ggplot2 gridExtra plyr scales]; };
   UpSetVP = derive2 { name="UpSetVP"; version="1.0.0"; sha256="1v6djfwaix978vzfjnj0vd3r0m3svfqkn9aqnf9qz2xsjk43m9zr"; depends=[ggplot2 patchwork rdacca_hp]; };
@@ -5890,13 +6003,15 @@ in with self; {
   VALIDICLUST = derive2 { name="VALIDICLUST"; version="0.1.0"; sha256="1glcvzrbc7glxmbmas3zzb114a5cfl7gsf7xlxaifrrgvcahrvnx"; depends=[diptest dplyr]; };
   VAM = derive2 { name="VAM"; version="1.1.0"; sha256="1nl4kzp3j424cy6m5p8n9lf742vls2aw60ywy6dig4963nl4jdkh"; depends=[MASS Matrix]; };
   VAR_etp = derive2 { name="VAR.etp"; version="1.1"; sha256="03zybsn28r6jz8rshmifgqavx4kmfvj92wbqjf5fvfj4fypis8kx"; depends=[]; };
-  VARDetect = derive2 { name="VARDetect"; version="0.1.6"; sha256="1yrlyg4b53bdmfjcqi07l0gr3f01h8jwj6g6av3plyk96cvl4svb"; depends=[igraph lattice MTS mvtnorm pracma Rcpp RcppArmadillo sparsevar]; };
+  VAR_spec = derive2 { name="VAR.spec"; version="1.0"; sha256="0sz4r4c9zzz1p77v7vcsl8w5gldy9mlipf64fjiwdrddgwrv4rwd"; depends=[]; };
+  VARDetect = derive2 { name="VARDetect"; version="0.1.8"; sha256="1g28rcmlm16yiz156rmdslvhy173pazij0lw7b5gxqv3dgl4mcd0"; depends=[igraph lattice MTS mvtnorm pracma Rcpp RcppArmadillo sparsevar]; };
   VARSELECTEXPOSURE = derive2 { name="VARSELECTEXPOSURE"; version="1.0.3"; sha256="0hfcy00zynrg2vfqym17zfs3ggm4wvsvjf2qib4pbd53qfhzabwa"; depends=[Rcpp RcppArmadillo]; };
   VARshrink = derive2 { name="VARshrink"; version="0.3.1"; sha256="09hysmxxawcbyfx6bia546aqydryl2r5p3ai7bvl6ghdckw5mnpl"; depends=[ars corpcor MASS mvtnorm strucchange vars]; };
   VBJM = derive2 { name="VBJM"; version="0.1.0"; sha256="0g7mmjba8pyfz92p7fgp9shpm9pclymacm45y3h6hlmsbpc7sh3p"; depends=[Matrix pracma Rcpp RcppArmadillo RcppEnsmallen statmod survival]; };
   VBLPCM = derive2 { name="VBLPCM"; version="2.4.9"; sha256="13qwqpnhdxd5lriz5p4w1dcng7msxbm4z2lfj93w7wcwidl93jw9"; depends=[ergm mclust network sna]; };
   VBTree = derive2 { name="VBTree"; version="0.1.1"; sha256="052d4vykm87z3d9rmh8bfx7qkcyx6gkrnsyb79ag1z9lb0gpky17"; depends=[tensorA]; };
   VBV = derive2 { name="VBV"; version="0.6.2"; sha256="1nrdcvkdv38xl67qi9igcp3l5j4hckiyg3klg7z0rfj6zzpszm71"; depends=[]; };
+  VBel = derive2 { name="VBel"; version="1.0.1"; sha256="02371k5mvzqkj0x9sbbg3ah6kzrcr16bwm1qrci7nh06qy1hq3hg"; depends=[Rcpp RcppEigen]; };
   VBsparsePCA = derive2 { name="VBsparsePCA"; version="0.1.0"; sha256="0h1kzz7rjh4wn4nbq1v3r4f6nrmlh0lscww2vwfz886x1w2c9sys"; depends=[MASS pracma]; };
   VC2copula = derive2 { name="VC2copula"; version="0.1.5"; sha256="1kadz36cw12qipf25dqykm58hh775wk3aq793ckphl7y9vqpvl36"; depends=[copula VineCopula]; };
   VCA = derive2 { name="VCA"; version="1.5.1"; sha256="0bw951rkbxg6ccy1iqmaamx5fwa41c3pp8zyzk2njkcgi4w5b90m"; depends=[lme4 Matrix numDeriv]; };
@@ -5908,12 +6023,11 @@ in with self; {
   VEwaningVariant = derive2 { name="VEwaningVariant"; version="1.4"; sha256="1fg44cy2i138b21y610bj64xjwwp96wilngy3rq89vsvkj40rird"; depends=[ggplot2 Rcpp RcppArmadillo survival]; };
   VFP = derive2 { name="VFP"; version="1.4.1"; sha256="14idww1vy695mp9v2h0nxqi6flmm41cr30i0yd2nwjsnriwqgzak"; depends=[gnm MASS VCA]; };
   VFS = derive2 { name="VFS"; version="1.0.2"; sha256="1b8sl8id2gj4iqkpjzd3giybbix2jvskwsbw1kqj3zqr77hygxwg"; depends=[e1071 nleqslv]; };
-  VGAM = derive2 { name="VGAM"; version="1.1-10"; sha256="04yy5rxid3fwn42sak9rjbxd1h4d7iigiznpbrvwxl06b1xficyb"; depends=[]; };
+  VGAM = derive2 { name="VGAM"; version="1.1-11"; sha256="199kicvlxciff9x243h357n4bjl00yg9k5jgs9awzz5wsadr17fy"; depends=[]; };
   VGAMdata = derive2 { name="VGAMdata"; version="1.1-9"; sha256="1bk4c22rwpcm5aa1kdg0dh8c87pb54639xhlh4dkxwx2idn6s9b5"; depends=[VGAM]; };
   VGAMextra = derive2 { name="VGAMextra"; version="0.0-6"; sha256="061mlhiqdncgjzyflpjjhmssjp7z33k9xrz7dmcgsrw37fb97jrs"; depends=[VGAM]; };
-  VHDClassification = derive2 { name="VHDClassification"; version="0.3"; sha256="1ij4h3gzxb9mm9q743kc3sg2q609mnqz6mhlrbim1wcjji2b7bv4"; depends=[e1071 lattice]; };
   VIC5 = derive2 { name="VIC5"; version="0.2.6"; sha256="1zkvzkras94gyc43b9j4bq4mpyg9l1idx2pdd8a728gmq1daky0k"; depends=[foreach lubridate Rcpp RcppArmadillo]; };
-  VIGoR = derive2 { name="VIGoR"; version="1.1.2"; sha256="0ikyfla1c4x6plm05pihaas6qz43dip20i75c4cwk1lq7fqayq92"; depends=[]; };
+  VIGoR = derive2 { name="VIGoR"; version="1.1.4"; sha256="02s2xpx37aszny89pp22p5rkdf35xsbzn67rgsdxp531rswhzvcw"; depends=[]; };
   VIM = derive2 { name="VIM"; version="6.2.2"; sha256="1r0myxcx8y1a3fkf9ssk882f09snn2j6zilsygpld32hahn4k9xg"; depends=[car colorspace data_table e1071 laeken magrittr MASS nnet ranger Rcpp robustbase sp vcd]; };
   VIMPS = derive2 { name="VIMPS"; version="1.0"; sha256="13r8g9k216fjsnw4ymqdsrx08z6rr2i3cwafrv1j93lgl0d3lnj4"; depends=[caret ggplot2 knockoff ranger ROCR]; };
   VIMean = derive2 { name="VIMean"; version="0.1.0"; sha256="0kxrcigp94h2j1vx5pj24sp73iqxldc1ygm5bak4jrld66r0nb5b"; depends=[]; };
@@ -5921,7 +6035,7 @@ in with self; {
   VLF = derive2 { name="VLF"; version="1.1"; sha256="096a7nx60qm4b7fil4s3r4mlp8fq60v0lq893jh3ij6gm63mfcim"; depends=[]; };
   VLMC = derive2 { name="VLMC"; version="1.4-3-1"; sha256="0cwfpxcj8g68j9z9fl66i0amj8ypf199iv3yyxzsmniqv4w5x4ar"; depends=[MASS]; };
   VLMCX = derive2 { name="VLMCX"; version="1.0"; sha256="1kwwg158556v4685j2dji4xjf1v9v5d9qdp4xhki022f5dv8h61h"; depends=[berryFunctions nnet]; };
-  VLTimeCausality = derive2 { name="VLTimeCausality"; version="0.1.4"; sha256="09fpjskdc3bz1qjqvcivk873jyl0mcjm4zds2xa6bd82ka8rb4b8"; depends=[dtw ggplot2 RTransferEntropy tseries]; };
+  VLTimeCausality = derive2 { name="VLTimeCausality"; version="0.1.5"; sha256="0pfgpl9xkwi0v0z1l58gb8s4gzz7r4k38270x8ifyk41l5vq8iwd"; depends=[dtw ggplot2 RTransferEntropy tseries]; };
   VMDML = derive2 { name="VMDML"; version="0.1.1"; sha256="12n32wx3hcvw55rrcwkv501cjl4zrpgh4d7y4m1irgrpjfqk77x2"; depends=[e1071 forecast nnfor randomForest VMDecomp]; };
   VMDecomp = derive2 { name="VMDecomp"; version="1.0.1"; sha256="0iq2lj7n77qmryf95cjl2y869bhy6i0mx44qls7xc07g0qplwqx3"; depends=[data_table glue Rcpp RcppArmadillo]; };
   VOSONDash = derive2 { name="VOSONDash"; version="0.5.7"; sha256="1qivx5ddl9jsn6q6ic2w8jrczxlx23z087k5arfz2rixgj7rndyg"; depends=[data_table httpuv httr igraph lattice magrittr RColorBrewer shiny SnowballC systemfonts syuzhet textutils tm vosonSML wordcloud]; };
@@ -5932,7 +6046,7 @@ in with self; {
   VUROCS = derive2 { name="VUROCS"; version="1.0"; sha256="1r4hq7az50v7lbyx5w6b4zs2kwi5cypqn9k6ac4kr8jr3jlyanr3"; depends=[doParallel foreach Rcpp RcppArmadillo]; };
   VWPre = derive2 { name="VWPre"; version="1.2.4"; sha256="1hhpqxzh9h5dy45r04l1fa1k4a14s0m6z6fhfg22kpwpryszbc44"; depends=[dplyr ggplot2 mgcv rlang shiny tidyr]; };
   VaRES = derive2 { name="VaRES"; version="1.0.2"; sha256="0k65ip5q4zgyklvn8mbc1ykz7kpfr5xvz041g1pq88f43g2sgv4b"; depends=[]; };
-  VancouvR = derive2 { name="VancouvR"; version="0.1.7"; sha256="12njm15ah307rsncnmckpx05d4cncqj0paa40xdgp7mfz821s36c"; depends=[digest dplyr httr purrr readr rlang sf tibble urltools]; };
+  VancouvR = derive2 { name="VancouvR"; version="0.1.8"; sha256="1dc6vcszck1kk4kc910kvvcgzva5f35hcqs69mllws8bs899la58"; depends=[digest dplyr geojsonsf httr purrr readr rlang sf tibble urltools]; };
   VarED = derive2 { name="VarED"; version="1.0.0"; sha256="16j9p2a143y4hqclsv1mig0fccrzjx2r0lll0wz8isjp9x1wzjv8"; depends=[]; };
   VarRedOpt = derive2 { name="VarRedOpt"; version="0.1.0"; sha256="0h44m8850q4aksrqj11yr2a2qj37w8fhv0plpvdzcl087ifyj0g9"; depends=[]; };
   VarReg = derive2 { name="VarReg"; version="2.0"; sha256="06n8bb4h722k1d83hbzgjasl9jrcj7pwj895zdkkdalw7crim88m"; depends=[sn survival]; };
@@ -5945,8 +6059,10 @@ in with self; {
   VedicDateTime = derive2 { name="VedicDateTime"; version="0.1.9"; sha256="08kkwb5k0n4hjy9rw7bdgpls14a8xdnw3v0g56hhhxnwxf6whmly"; depends=[swephR]; };
   VennDiagram = derive2 { name="VennDiagram"; version="1.7.3"; sha256="0ilcxcp8qskmb5cp7fyb7i0qizg42lrx0ny8ws3if90kfrglghp7"; depends=[futile_logger]; };
   VertexSimilarity = derive2 { name="VertexSimilarity"; version="0.1"; sha256="0f638y272dbmz5747wxqy9pxasxk3a9f9wf31gf297qx7268ab1m"; depends=[igraph]; };
+  VertexWiseR = derive2 { name="VertexWiseR"; version="1.0.0"; sha256="14ria7wf080zszjqml96dm2jb4ppjlcrhckk82x3mpyw7xsmpclh"; depends=[doParallel doSNOW foreach freesurferformats fs gifti igraph reticulate]; };
   VeryLargeIntegers = derive2 { name="VeryLargeIntegers"; version="0.2.1"; sha256="1a6hyipn9522zj69amlxmqip45gflml5kcyjlxi4vf4y1givb7qs"; depends=[Rcpp]; };
   VetResearchLMM = derive2 { name="VetResearchLMM"; version="1.0.0"; sha256="1a7wm04bsr5shak7l8ypxlhlnx3qkq1jdpjnji1n05p6b00ih9h1"; depends=[ggplot2 lme4 lmerTest multcomp nlme]; };
+  ViSe = derive2 { name="ViSe"; version="0.1.2"; sha256="0ki23qgb3xisfiq8fz0xgj6azqmjn1xcm3j87v7qfshs1yq2rk47"; depends=[cowplot dplyr ggplot2 scales shiny tidyr]; };
   ViSiElse = derive2 { name="ViSiElse"; version="1.2.2"; sha256="1ay09dahlqnfrgf4gl4s45a4ahrk2xliagxqz5h826w2vzsawqcc"; depends=[chron colorspace ggplot2 Matrix reshape2 stringr]; };
   VicmapR = derive2 { name="VicmapR"; version="0.2.3"; sha256="0djv95l32nz6wwslwgn0v037fjbl3fz15vybn39c6g1iw9a2a46s"; depends=[cli curl DBI dbplyr dplyr glue httr kableExtra knitr leaflet lubridate magrittr mapview purrr rlang rvest sf stringr xml2]; };
   Vicus = derive2 { name="Vicus"; version="0.99.0"; sha256="1f4vmz34gms0vbvpn94rgdhbbvxbqmjxzhd9n4fxfm0dizmba004"; depends=[Matrix RANN RSpectra]; };
@@ -5954,10 +6070,10 @@ in with self; {
   VineCopula = derive2 { name="VineCopula"; version="2.5.0"; sha256="0s2v27i5cljvxzh3awpf3bcfbbghch0lphhghqnc7x51w1prxfai"; depends=[ADGofTest lattice MASS mvtnorm]; };
   VirtualPop = derive2 { name="VirtualPop"; version="2.0.2"; sha256="1miwljsr6r6i94q9pdpqzhapnfgg3vjv2ikwvc56cpw6k1iw9h39"; depends=[HMDHFDplus msm]; };
   VisCollin = derive2 { name="VisCollin"; version="0.1.2"; sha256="1pcd7b14a2qnq1jlk63fascdb8hkys8cg4jw4rx6xk9xmvpvyhlb"; depends=[]; };
-  VisitorCounts = derive2 { name="VisitorCounts"; version="1.0.2"; sha256="0qm5qccikwdkdc9pm0gck5id3rjicb07jbds4fbvn3db071bzrdy"; depends=[Rssa]; };
+  VisitorCounts = derive2 { name="VisitorCounts"; version="2.0.0"; sha256="1i43g2k3n3c1baxj8q86v33mvvmcg16vv2a46y4ji5nqnqay7183"; depends=[ggplot2 Rssa]; };
   VisualDom = derive2 { name="VisualDom"; version="0.8.0"; sha256="14qg44sivfhnvjac5yq4n5llhwq669m3j7a2z84rlz0737x7x5xd"; depends=[plot3D wavemulcor waveslim]; };
   Visualize_CRAN_Downloads = derive2 { name="Visualize.CRAN.Downloads"; version="1.0.3"; sha256="1jfj0qp4a6jxw423d6ik18r7gy6zzcxlp71mfhpam256xay0sq8f"; depends=[cranlogs htmlwidgets plotly]; };
-  VisualizeSimon2Stage = derive2 { name="VisualizeSimon2Stage"; version="0.1.3"; sha256="19jnh6i0p3irqzj3als5q8basizwmq4viwb5i9iabbhznpi505m5"; depends=[ggplot2]; };
+  VisualizeSimon2Stage = derive2 { name="VisualizeSimon2Stage"; version="0.1.5"; sha256="1sjnmxbd3k139rcnwnnjz0js929smdlrrrffn8mhcgrw77zl3ljy"; depends=[ggplot2]; };
   VorteksExport = derive2 { name="VorteksExport"; version="0.1.8"; sha256="0r9wmd9bdarjkqmpwp85xz27nbyhjkcpxm8qb8bqjmxq4nds6nxx"; depends=[]; };
   Voss = derive2 { name="Voss"; version="0.1.5"; sha256="00f3ljm85z8gr1qyc6nj9g35ywzm78khy8r82wb5ys8fx68n0vwl"; depends=[fields]; };
   VoxR = derive2 { name="VoxR"; version="1.0.0"; sha256="16r9ggc5x889g8rjqvp1q2kgf5asjzhykd1ldjy3ny9m48p501ad"; depends=[circular data_table dplyr fastcluster FNN geometry raster Rfast rgl]; };
@@ -5977,8 +6093,8 @@ in with self; {
   WEGE = derive2 { name="WEGE"; version="0.1.0"; sha256="17g4cgx0ajgj7lgxzi467cjbmbc47skyarcm88vqjc3i1j55dw12"; depends=[raster sf sp]; };
   WGCNA = derive2 { name="WGCNA"; version="1.72-5"; sha256="17g7lan1rpy6y4nmqksrf9ddp3gs58vdczfavgq1fp13zx1r2hq3"; depends=[AnnotationDbi doParallel dynamicTreeCut fastcluster foreach GO_db Hmisc impute matrixStats preprocessCore Rcpp survival]; };
   WGScan = derive2 { name="WGScan"; version="0.1"; sha256="0jma6di9hbdimswdfm58568vahcjy46hbhb78idjsdz4bl9apvq3"; depends=[data_table MASS Matrix seqminer SKAT]; };
-  WH = derive2 { name="WH"; version="1.1.0"; sha256="0zz7936s6yd30q1yxxwbkaczin3r2l189b27nqsfyazbav27hfsb"; depends=[]; };
-  WINS = derive2 { name="WINS"; version="1.3.3"; sha256="0chw2v3ba766p8bjh1vzgrx6s7gm586ylvdsal1kmfxv4lkjc8rh"; depends=[copula ggplot2 ggpubr reshape2 stringr survival viridis]; };
+  WH = derive2 { name="WH"; version="1.1.1"; sha256="1df2m8m17pv9wn555i7h7nrxmk7cj1znwmgfd78ybjrckijzb61m"; depends=[]; };
+  WINS = derive2 { name="WINS"; version="1.4.2"; sha256="02b6y08qhs3w4l58yra6f7yw9pqmlbrmac7qinwwm63s7jl95z9q"; depends=[copula ggplot2 ggpubr reshape2 stringr survival viridis]; };
   WLogit = derive2 { name="WLogit"; version="2.1"; sha256="06mhc6n9mszqrj9hi61z5yfyny5aqsvv11a5n7l0wwhpirgi3i8m"; depends=[corpcor cvCovEst genlasso ggplot2 glmnet MASS Matrix tibble]; };
   WLreg = derive2 { name="WLreg"; version="1.0.0.1"; sha256="1j9ffilg61a4pxk26rwmpwrigm63lnnd4h0k8ivqk6flxal41jqb"; depends=[inline survival]; };
   WMWssp = derive2 { name="WMWssp"; version="0.4.0"; sha256="16m4hvjqdcpkvswvqwgm0pq9nm7vjrlqldzi4i69izlwccp37v47"; depends=[]; };
@@ -5990,8 +6106,7 @@ in with self; {
   WRSS = derive2 { name="WRSS"; version="3.1"; sha256="0fhmdnkk94m1bqm1i69szv3ycbkzr08xy30mwpqvbij9nh2sqj0w"; depends=[GGally ggplot2 Hmisc network nloptr]; };
   WRTDStidal = derive2 { name="WRTDStidal"; version="1.1.4"; sha256="1clv6gd0qlkykllki5jkmhd1znrccyg1mv6w69wz8fj65b2466zd"; depends=[caret dplyr fields foreach forecast ggplot2 gridExtra lubridate purrr quantreg RColorBrewer survival tidyr]; };
   WRestimates = derive2 { name="WRestimates"; version="0.1.0"; sha256="03anhcwq9xlzj3zh7kpqm5n6znqiwvkwnd0w1b82my9rk3gp63gw"; depends=[]; };
-  WSGeometry = derive2 { name="WSGeometry"; version="1.2.1"; sha256="073cvvbhzx5nllrwfyz6bxvskmkm88i7wq93m2d0q60pzwzsxwzl"; depends=[expm imager lpSolve Matrix plot3D Rcpp RcppArmadillo RSpectra transport]; };
-  WVPlots = derive2 { name="WVPlots"; version="1.3.7"; sha256="0zaqy1gii5ry2djqlyjqhiy4pqwng7r7lrpf1bw8g47v9vjjlq33"; depends=[cdata ggplot2 gridExtra mgcv rlang rqdatatable rquery sigr wrapr]; };
+  WVPlots = derive2 { name="WVPlots"; version="1.3.8"; sha256="1zvw8mbgxnsj0r67v96fxnpcqbr2m52ffhhvzab0wlryxf7igs84"; depends=[cdata ggplot2 gridExtra mgcv rlang rqdatatable rquery sigr wrapr]; };
   WWGbook = derive2 { name="WWGbook"; version="1.0.2"; sha256="05dzgb2b1md981882sp85dvmrsak5v7gwkww1shqfm34zmk9dbkn"; depends=[]; };
   WaMaSim = derive2 { name="WaMaSim"; version="1.0.0"; sha256="0sa7qd2bpn3sp06mlpissxxkfhg7j1d07nnwlnz7nyg7pivwnpan"; depends=[magrittr]; };
   WallomicsData = derive2 { name="WallomicsData"; version="1.0"; sha256="1bv2v0gjb6v5p7rmm8nc00xnkdw60552siyfhz4y60wm1cygclbq"; depends=[]; };
@@ -6011,6 +6126,7 @@ in with self; {
   WaveletSVR = derive2 { name="WaveletSVR"; version="0.1.0"; sha256="05sqvqklbz7barf1jfrhd7n4mj60z57sqpikl3lykigl3m9ravhm"; depends=[e1071 forecast fracdiff tsutils wavelets]; };
   WaverR = derive2 { name="WaverR"; version="1.0"; sha256="084fhzggzm075w6wp2lqd3j0an21idhw8z5l8ynz4y96mpmn204a"; depends=[kimisc MASS]; };
   WaverideR = derive2 { name="WaverideR"; version="0.3.2"; sha256="1lm7xq443vninrph21xq6dikpd42xl9ilwfb22lfba2b7j7j5z6g"; depends=[astrochron biwavelet colorednoise colorRamps DecomposeR DescTools doSNOW fANCOVA foreach Hmisc magick Matrix matrixStats RColorBrewer reshape2 rlist truncnorm viridis WaveletComp]; };
+  WayFindR = derive2 { name="WayFindR"; version="0.1.2"; sha256="1j54374vk8y2f28lka03qwz5hyvpb0fyrbfn20pj1hbbnvymsxrm"; depends=[igraph XML]; };
   Wcompo = derive2 { name="Wcompo"; version="1.0"; sha256="1rd7y86q8qi7w9878ng0zdk3zpxnjyzpmrm2mj5lm60hkd72xyrw"; depends=[survival]; };
   WeMix = derive2 { name="WeMix"; version="4.0.3"; sha256="1ykg7sphnm15a3dlkkhv18ycsclaw363yldfsyc83hf01vlghf77"; depends=[lme4 Matrix matrixStats minqa numDeriv]; };
   WebAnalytics = derive2 { name="WebAnalytics"; version="0.9.12"; sha256="031gyndk605841ns33pifhfwlasa39jhrmvigw84iqc2dgxqqpgl"; depends=[brew data_table digest fs ggplot2 reshape2 scales tinytex uaparserjs xtable]; };
@@ -6022,7 +6138,7 @@ in with self; {
   WeibullR_learnr = derive2 { name="WeibullR.learnr"; version="0.1.1"; sha256="0m3dajyxr6m2w8s1qlwfr1iq2x2s5khs9x1qj4r4fr6zqhp53pbx"; depends=[learnr WeibullR]; };
   WeibullR_plotly = derive2 { name="WeibullR.plotly"; version="0.2.0"; sha256="1ymggxqhn2bc6r25vzp4vlr18pcw9vnn24ylwspk8vq8j00pn197"; depends=[plotly WeibullR]; };
   WeibullR_shiny = derive2 { name="WeibullR.shiny"; version="0.2.0"; sha256="0qzwn967p54j03h9nmzljx547iqgnyq3xzfri5k0i5lpvxsdp7hs"; depends=[shiny shinydashboard WeibullR WeibullR_plotly]; };
-  WeightIt = derive2 { name="WeightIt"; version="1.0.0"; sha256="03rmbvlxgbzraswx3q4saqqknd98chhl0rsc6b3m4k616l84z3ad"; depends=[backports chk cobalt crayon ggplot2 rlang]; };
+  WeightIt = derive2 { name="WeightIt"; version="1.1.0"; sha256="00p5ylc0jahb8dqc2z7x5kvx40rlbvrrpfpfhg0dxyrd6qas71w5"; depends=[chk cobalt crayon ggplot2 rlang]; };
   WeightSVM = derive2 { name="WeightSVM"; version="1.7-13"; sha256="19dai6v14h644dwa1054kmkhp4p24qvvkpzf45zz942ki24n2day"; depends=[]; };
   Weighted_Desc_Stat = derive2 { name="Weighted.Desc.Stat"; version="1.0"; sha256="030i12mnwlj976avvk3grrccgprsckmc35dm2ajwdfc9dijhypnj"; depends=[]; };
   WeightedCluster = derive2 { name="WeightedCluster"; version="1.6-4"; sha256="1ayi50wjy7grzapfnyvmbi6rz7amfhdd1nxh56h1s4anv7rf20c4"; depends=[cluster doFuture foreach future nnet progressr RColorBrewer TraMineR]; };
@@ -6033,36 +6149,38 @@ in with self; {
   WgtEff = derive2 { name="WgtEff"; version="0.1.2"; sha256="1z8pndv43ssgmzldwaq0088lmf1g2mkmrbmzyaismcpngn9fqxsk"; depends=[]; };
   WhatIf = derive2 { name="WhatIf"; version="1.5-10"; sha256="19w5qw123iahrx96379lrx8i7v3x2ck5dhklf58iw0dmj4pfy2kg"; depends=[lpSolve pbmcapply]; };
   WhatsR = derive2 { name="WhatsR"; version="1.0.4"; sha256="0i6mhc3cm7m885v5sznci7bqr6h2bfgnv466v5jwdwidisnzrhgx"; depends=[anytime checkmate data_table dplyr ggmap ggplot2 ggwordcloud lubridate mgsub qdap qdapRegex ragg readr stringi tokenizers visNetwork]; };
-  WhiteStripe = derive2 { name="WhiteStripe"; version="2.4.2"; sha256="1w9shk9qx365pxi2nglvjd26xggylswd83aclg7l45q0dlli3x31"; depends=[mgcv neurobase oro_nifti]; };
+  WhiteStripe = derive2 { name="WhiteStripe"; version="2.4.3"; sha256="0r9gjmdilyfj317gr2z00xgz1bjx4802nb522341fw1gklgf7y5i"; depends=[mgcv neurobase oro_nifti]; };
   WienR = derive2 { name="WienR"; version="0.3-15"; sha256="00a5d287h78j7ccfarzc2l6i76shw5akzh4ggn6mb183b67nf9k8"; depends=[]; };
   WikidataQueryServiceR = derive2 { name="WikidataQueryServiceR"; version="1.0.0"; sha256="1bl1nbhbmss8cj9ni7plsjs996n4rwqv6h8bh1zj4whs8z4fw50f"; depends=[dplyr httr jsonlite purrr ratelimitr readr rex WikipediR]; };
   WikidataR = derive2 { name="WikidataR"; version="2.3.3"; sha256="120833b7zyq1rhmn9c8iv0j6br60af7gbn5lc4dil55qhh2lp9rx"; depends=[crayon dplyr Hmisc httr jsonlite pbapply progress readr stringr tibble WikidataQueryServiceR WikipediR]; };
-  WikipediR = derive2 { name="WikipediR"; version="1.5.0"; sha256="1w4ggq42vlq7zbrz3v9ripz9yscbd8m8as60q7cplpxn9zqfdl7q"; depends=[httr jsonlite]; };
+  WikipediR = derive2 { name="WikipediR"; version="1.7.1"; sha256="08mj3flildcvqdbj5y5c225ipbwfd2ivrjmlcwyg3v84ydhrbrkf"; depends=[httr jsonlite magrittr]; };
   WinRatio = derive2 { name="WinRatio"; version="1.0"; sha256="0d064qq9zad9bdacldhicj3xhyrvp0fcqrxfj594yzra2qwgkx90"; depends=[dplyr magrittr Rcpp tidyselect tidyverse]; };
   WindCurves = derive2 { name="WindCurves"; version="0.2"; sha256="1vvcp1g5a677g9zqssdkh3zdy646zdkzy75nqhy497bpcgw43q1b"; depends=[readbitmap]; };
   WoodSimulatR = derive2 { name="WoodSimulatR"; version="0.6.1"; sha256="170bakkny7k6j22qwal9z2sycils1a7imajzvlzjbrasjy81m2l7"; depends=[dplyr purrr rlang tibble tidyr tidyselect]; };
   WoodburyMatrix = derive2 { name="WoodburyMatrix"; version="0.0.3"; sha256="0pmm032lyk31bv30dwz7ajz2ihppp13i1ibpnnc9x9ga3axxhpj7"; depends=[Matrix]; };
+  WordListsAnalytics = derive2 { name="WordListsAnalytics"; version="0.2.2"; sha256="1q4plzw4akm7dw59qbwwnd0dxzjiqfbpiqa9h967kvdqdalwkjzz"; depends=[dplyr ggplot2 readr reshape2 shiny]; };
   WordOfMouth = derive2 { name="WordOfMouth"; version="1.1.0"; sha256="199hnirbmwarn04ky1147x5c048j087rdml86qcp92kzp20679v3"; depends=[LambertW]; };
   WordPools = derive2 { name="WordPools"; version="1.2.0"; sha256="0g3ws2ndl34f8z4nxqij8ifwqs5n3nwn9fjgjqgg1sn5apkc2zcf"; depends=[]; };
   WordR = derive2 { name="WordR"; version="0.3.6"; sha256="096b6msnl1rmikx40j7abb9rhw1vayvf9fjq6i8hrjvv38dbaa1d"; depends=[dplyr flextable officer xml2]; };
-  WorldFlora = derive2 { name="WorldFlora"; version="1.14-2"; sha256="1ilfc3mr2nl646rlbxn9qzg18kmr083whwrxjvfblxrfjh928r6q"; depends=[]; };
-  WorldMapR = derive2 { name="WorldMapR"; version="0.1.0"; sha256="0wanh3i5wk5by55kzs7n3vkk64x1pgvwj70fgbsrxm565711b6vk"; depends=[countrycode dplyr ggplot2 rnaturalearth sf]; };
+  WorldFlora = derive2 { name="WorldFlora"; version="1.14-3"; sha256="0vibkgp83ligznkamqzs01j7hq6cqd42x1avcn0bp0zpdf38abcz"; depends=[]; };
+  WorldMapR = derive2 { name="WorldMapR"; version="0.1.1"; sha256="01mfwmd99pfbxii3nbzi83jfr7141f5i7mn52jngh3m8i2zksvdr"; depends=[countrycode dplyr ggfx ggplot2 rnaturalearth sf]; };
   WormTensor = derive2 { name="WormTensor"; version="0.1.0"; sha256="0l55dbcf65cpw03b26va4ssvk3wc0i6hnchb9jyw44369y5xfniy"; depends=[aricode cluster clusterSim clValid cowplot dtwclust factoextra ggplot2 ggrepel rTensor Rtsne usedist uwot]; };
   WpProj = derive2 { name="WpProj"; version="0.2.1"; sha256="17vczldqgqc8wl6yyz06zc3jdkgcxdf2s28bh83vzj98i1521ls2"; depends=[BH doParallel doRNG dplyr foreach ggplot2 ggridges ggsci glmnet lifecycle magrittr Matrix oem quantreg Rcpp RcppCGAL RcppEigen RcppProgress rlang ROI ROI_plugin_ecos ROI_plugin_lpsolve rqPen RSpectra slam]; };
   WrensBookshelf = derive2 { name="WrensBookshelf"; version="0.1.0"; sha256="1g83i9qmlidxy55cmvx0sqqrkps9fmvj0sh7jc92v89qwx73pfr0"; depends=[ggplot2]; };
   WrightMap = derive2 { name="WrightMap"; version="1.3"; sha256="0c1v8wjqbr9y447h9iz9h2izrm1msdaz3mx1ry47qlcrq6ddlj9v"; depends=[RColorBrewer]; };
-  WriteXLS = derive2 { name="WriteXLS"; version="6.5.0"; sha256="1rkc0r6l7cfz7h83i7gw6g0nlyy347mdh6bj73j0f8mdv3nmwwn4"; depends=[]; };
+  WriteXLS = derive2 { name="WriteXLS"; version="6.6.0"; sha256="0adpwd80hhw6i965wp1w74s85vzq2gv5pf98zcvjwaqvpkrs25xw"; depends=[]; };
   WtTopsis = derive2 { name="WtTopsis"; version="1.0"; sha256="0zwx75rgdyh7pjxjvd5xvxqkfryvhq2csn4sd0py0dgmjxb5p3ja"; depends=[]; };
   WufooR = derive2 { name="WufooR"; version="1.0.1"; sha256="0iq1lc1b22zdvclkr4yivxxf8z5mdxik7lx9r3b38h2qy2rckqb2"; depends=[dplyr httr jsonlite]; };
   XBRL = derive2 { name="XBRL"; version="0.99.19.1"; sha256="0mwpk84kp6r7f6fmlby0ka58fj50y592afxzp0wcrzmx65abp7md"; depends=[Rcpp]; };
   XICOR = derive2 { name="XICOR"; version="0.4.1"; sha256="0c9s0sriiasbdanmijgy41gvpwf8hlqy34avalvimyll7y206v1r"; depends=[psychTools]; };
   XKCDdata = derive2 { name="XKCDdata"; version="0.1.0"; sha256="1lx9frlbc549qrh4d3m79r3l9icfzqkgfgp8raa8x46a2havi0a5"; depends=[assertthat dplyr glue htmltools httr jsonlite magrittr tibble]; };
-  XLConnect = derive2 { name="XLConnect"; version="1.0.8"; sha256="1lc6lfvvai92n7pi4m0xqy0wf78qijpzs6mcksrc45wx9474w9ap"; depends=[rJava]; };
+  XLConnect = derive2 { name="XLConnect"; version="1.0.10"; sha256="1d72ssm47f3gg1r8q679whl7mvl2j5j60bhkzflv6vva3v5nghp3"; depends=[rJava]; };
   XLS = derive2 { name="XLS"; version="0.1.0"; sha256="0a4jbfz9x9rn4k5v7qh3r9p7pal4piqg01469237lkq00m3lijy5"; depends=[mpoly]; };
   XML = derive2 { name="XML"; version="3.99-0.16.1"; sha256="1i7fs9i2f6bdkxb45w2bck7sshlwxy2s32hi9fwa4nfmw2iy62m3"; depends=[]; };
+  XML2R = derive2 { name="XML2R"; version="0.0.8"; sha256="1vssxy5bn46likkba8ycajkni14s7js31255swflr8007mc3pwmz"; depends=[httr plyr XML]; };
   XNomial = derive2 { name="XNomial"; version="1.0.4"; sha256="1mwx302576rmsjllbq2clfxilm3hkyp5bw0wmwqbn0kgv5wpy8z6"; depends=[]; };
   XR = derive2 { name="XR"; version="0.7.2"; sha256="0j8rkjw9y7mb0yj24nlisfd84148pnnakz8i2y35y2b8gmh5zhvz"; depends=[jsonlite]; };
-  XRJulia = derive2 { name="XRJulia"; version="0.9.0"; sha256="0s3g6fkam6hj03mxvw75nzsq3zvz84b71jhrw3v64mdngazdv7zm"; depends=[XR]; };
+  XRJulia = derive2 { name="XRJulia"; version="0.9.0.1"; sha256="0mm9cv2nsgkrpjv0kb5vzfy1aszdyawk7mdinv4gby78bdvvl0k5"; depends=[XR]; };
   XRPython = derive2 { name="XRPython"; version="0.8"; sha256="0alg33spiaqf3jwg1qn543nxvbfaqv8gvf5px3grhbgrcmi5mcmj"; depends=[reticulate XR]; };
   XRSCC = derive2 { name="XRSCC"; version="0.1"; sha256="0hs2whjsd02avaz79zkrd8gjw9qd7l6ysxmhx4w1r7gb1cj9rr7c"; depends=[]; };
   XiMpLe = derive2 { name="XiMpLe"; version="0.11-2"; sha256="0pa06jm9g308pbh8bal7mjaiwbsjbdsxiyvm0f01405j3wkf64m3"; depends=[]; };
@@ -6075,12 +6193,12 @@ in with self; {
   YRmisc = derive2 { name="YRmisc"; version="0.1.6"; sha256="1crms7dqmhj7br1a5p5j0j7p6sdfimnip31207i6g24f9jkkysv1"; depends=[ggplot2 gridExtra]; };
   YTAnalytics = derive2 { name="YTAnalytics"; version="0.1.0"; sha256="1kvw5p0fy3vqvlqwg2dnvpkq21rmf3c3xl46b2a9lifnr9fpncgk"; depends=[dplyr httr jsonlite]; };
   YaleToolkit = derive2 { name="YaleToolkit"; version="4.2.3"; sha256="07rqi8j9gzrr4jj9h8mdnh5i251q8rwfdj4lbcmszp64pi09rkck"; depends=[foreach iterators]; };
+  YatchewTest = derive2 { name="YatchewTest"; version="1.1.0"; sha256="13ni502538l76cxyjh3q35id117i64m8bg9zp7g1199ln2csms7h"; depends=[ggplot2 Rcpp]; };
   YatesAlgo_FactorialExp_SR = derive2 { name="YatesAlgo.FactorialExp.SR"; version="4.0.4"; sha256="0jr2q2dla7dpf0ail0l8ar44cnaxrkvqc7cvsrsdgj97hr970lp9"; depends=[lubridate]; };
   YieldCurve = derive2 { name="YieldCurve"; version="5.1"; sha256="0dckpls1g8787ysb3q11i531223d48zdimnmhvbyynmm2a8gi0xv"; depends=[xts]; };
   Ymisc = derive2 { name="Ymisc"; version="0.1.0"; sha256="0mw430a0qdi9lddxlzc8vdk2yhm57c2mblj0yyy3g6icf5m7pppn"; depends=[]; };
   Z10 = derive2 { name="Z10"; version="0.1.0"; sha256="02kxlzplmss68zj1z97fvpcjyhhpic9hlx8f5j3gqn3m1mqm1dja"; depends=[dplyr lubridate magrittr rjson stringr]; };
   ZIBR = derive2 { name="ZIBR"; version="1.0.2"; sha256="0c24g3s946nmm8m22wvmhdgh2ph9f9hmslfyx1s3cq139793grrz"; depends=[statmod]; };
-  ZIBseq = derive2 { name="ZIBseq"; version="1.2"; sha256="13rjy4jl9wil6hhpra4qmdis0iyqxchzsf9l7q6r0dz1f7dpd2nq"; depends=[gamlss gamlss_dist nlme]; };
   ZIM = derive2 { name="ZIM"; version="1.1.0"; sha256="0scyfjn4ilsvha3x41c3b8bcfi31hlhwm77wn2a8hj5dsvnnmzig"; depends=[MASS]; };
   ZINAR1 = derive2 { name="ZINAR1"; version="0.1.0"; sha256="1didfjb4215k9q82n1vaqln6f7fszsycsflydak2zl7xwficwhy6"; depends=[gamlss_dist gtools MASS scales statmod VGAM]; };
   ZINARp = derive2 { name="ZINARp"; version="0.1.0"; sha256="1s5nvxcc7nw2kz90i7fqw5fi2qzzbsm5ppn92695v44q38h8jw9s"; depends=[progress]; };
@@ -6088,7 +6206,7 @@ in with self; {
   ZIPFA = derive2 { name="ZIPFA"; version="0.8.1"; sha256="134pkdn4slhiv27rdkkmh2z7xch30ns0jhzxgd7r05bky0z1iri1"; depends=[doParallel foreach Matrix optimx trustOptim]; };
   ZIPG = derive2 { name="ZIPG"; version="1.1"; sha256="1g5viqqyl36xl43z7sbr9q4qgkwvv0pq308qw1rzdig4n1yxlwpj"; depends=[MASS pscl]; };
   ZIprop = derive2 { name="ZIprop"; version="0.1.1"; sha256="1gvf6z7mx543a0hiqcknwhkplqa3mfmw3swi8n9vma10bqmgysx7"; depends=[data_table purrr rgenoud]; };
-  ZLAvian = derive2 { name="ZLAvian"; version="0.1.0"; sha256="0ay54al5gr2jxb2v2zj23d0ypnkp8k37vxvg0c0mirb0qd23gqrp"; depends=[doParallel lme4 performance]; };
+  ZLAvian = derive2 { name="ZLAvian"; version="0.2.0"; sha256="1bi3f8v0vlc5si9iz7iapw8h37i2084j576pm879lw16j18ka3v7"; depends=[doParallel lme4 performance]; };
   ZRA = derive2 { name="ZRA"; version="0.2"; sha256="1sx1q5yf68hhlb5j1hicpj594rmgajqr25llg7ax416j0m2rnagi"; depends=[dygraphs forecast]; };
   ZVCV = derive2 { name="ZVCV"; version="2.1.2"; sha256="0ws0v7i6r7skb8lv6j718k29v5qsy1b007jxidv81iv0jcz9zfpy"; depends=[abind BH dplyr glmnet magrittr mvtnorm Rcpp RcppArmadillo Rlinsolve]; };
   ZeBook = derive2 { name="ZeBook"; version="1.1"; sha256="0v98kbz9njjdx60x9dn8hl8mc6x19i5knjyg2gkwfd667yy1rkl6"; depends=[deSolve triangle]; };
@@ -6124,8 +6242,9 @@ in with self; {
   abind = derive2 { name="abind"; version="1.4-5"; sha256="0b1zd8jbnl6l292cr9rb50m09fy3ylxvzkpgi5lfb1nbzddcwfis"; depends=[]; };
   abjData = derive2 { name="abjData"; version="1.1.2"; sha256="0q7l9lxm41pjkdv98axx87wcxjxfyccfwi2k1b29g07pfjszs0hv"; depends=[]; };
   abjutils = derive2 { name="abjutils"; version="0.3.2"; sha256="0lmf4va8qnzwg698i2h4fcwvd6dhsgdkqsfh41aa3wg1flimhsr7"; depends=[dplyr magrittr purrr rlang rstudioapi stringi stringr tidyr]; };
+  ablasso = derive2 { name="ablasso"; version="1.0"; sha256="0xgj3bfjahvnq34r0312d00l3wpdwfnqv7a3j2lklazc69cg7wra"; depends=[hdm matrixStats mvtnorm]; };
   abmR = derive2 { name="abmR"; version="1.0.10"; sha256="0klfrclmwxsqm3aazs9jlw8mh5rzcsvm2wjk2r1ycx76kvkx8wii"; depends=[geosphere ggplot2 googledrive gstat gtsummary kableExtra maps purrr raster rnaturalearth sf sp swfscMisc table1 tmap]; };
-  abn = derive2 { name="abn"; version="3.0.6"; sha256="0833070j4q553kc4g5wydln3q63g0igaam9h3rbylxcs0p1v2psj"; depends=[doParallel foreach graph lme4 mclogit nnet Rcpp RcppArmadillo Rgraphviz rjags stringi]; };
+  abn = derive2 { name="abn"; version="3.1.1"; sha256="1sixgahjcy82yiiixgxiqbm8jcajqz0m3h0hwwm202iwzi3vyhiv"; depends=[doParallel foreach graph lme4 mclogit nnet Rcpp RcppArmadillo Rgraphviz rjags stringi]; };
   abnormality = derive2 { name="abnormality"; version="0.1.0"; sha256="1fzfskl9akl06nliy8hkv2a0pznpj8pwcypg3gj5r2nzvr3kan9v"; depends=[MASS Matrix]; };
   abodOutlier = derive2 { name="abodOutlier"; version="0.1"; sha256="1pvhgxmh23br84r0fbmv7g53z2427birdja96a67vqgz18r3fdvj"; depends=[cluster]; };
   abseil = derive2 { name="abseil"; version="2023.8.2.1"; sha256="1a65zwkrxqidbcfpin9k119zip8vb0vnl87akimjn3xnynb3i5br"; depends=[]; };
@@ -6142,6 +6261,7 @@ in with self; {
   accelmissing = derive2 { name="accelmissing"; version="1.4"; sha256="1nql9inx6azdzi3z4sfm2vdml2mms6krl8wzlf1dn1c97ahn57fy"; depends=[mice pscl]; };
   accept = derive2 { name="accept"; version="1.0.0"; sha256="0yjihmgi94yfwhnvgw4v235yyr8n6w1ass2qbmvk0ia1hmjis8zq"; depends=[dplyr reldist]; };
   accessibility = derive2 { name="accessibility"; version="1.4.0"; sha256="0c130kbh3h42pj0iw4zb9kv1i8zmy12znyhxbb5cvr8lwgkzdc4n"; depends=[checkmate data_table Hmisc Rdpack]; };
+  accessr = derive2 { name="accessr"; version="1.0.1"; sha256="0hlf1kdxmw1rqscqazan8d3dqr5kfsxngrmkdb41pi5k5qsvbcx4"; depends=[rmarkdown]; };
   accessrmd = derive2 { name="accessrmd"; version="1.0.0"; sha256="1jdbbsi8nzvr8hnrpw5sr8zf55irnwwrnkwx4vd0zx84bxvw3bqy"; depends=[ggplot2 htmltools knitr RCurl rlist stringr]; };
   accrual = derive2 { name="accrual"; version="1.4"; sha256="0dygp8xar6dqx822ghjqvi8c597xjb7bqn57475fs4nw5zz709lk"; depends=[fgui SMPracticals tcltk2]; };
   accrualPlot = derive2 { name="accrualPlot"; version="1.0.7"; sha256="1xd855yzr405kl6qqm68zgcj3j112xmpkx0f1z8gd9z7s3sr74h0"; depends=[dplyr ggplot2 lubridate magrittr purrr rlang]; };
@@ -6155,7 +6275,7 @@ in with self; {
   acepack = derive2 { name="acepack"; version="1.4.2"; sha256="14dccqpww3bv59236r0vr6bibhsafhbm7qshdjxp5ww3nw9cvzsv"; depends=[]; };
   acfMPeriod = derive2 { name="acfMPeriod"; version="1.0.0"; sha256="1yww8isfrbs2v9s94hx7p2imyszcgadwafdgpj438n2ik0q6p9d5"; depends=[MASS]; };
   acid = derive2 { name="acid"; version="1.1"; sha256="030i0y8s283ivbsmjccpbv9v7mgbcg2jk9df7vgcbbns74swf9hd"; depends=[gamlss gamlss_dist Hmisc]; };
-  acled_api = derive2 { name="acled.api"; version="1.1.7"; sha256="1ysgrndcb4hdlhfr34dvhlnqark0k2pf42sq0wbj28p2031wjbms"; depends=[httr jsonlite]; };
+  acled_api = derive2 { name="acled.api"; version="1.1.8"; sha256="02xc32yqg0vdv8anbfqydnrkc79yj51xyy63skinm5dzxpswbq8k"; depends=[httr jsonlite]; };
   acnr = derive2 { name="acnr"; version="1.0.0"; sha256="087hq4i7jp67ba2finzsqjfnqbiprl33na6ryjv9zqzsdawj9cym"; depends=[]; };
   acopula = derive2 { name="acopula"; version="0.9.4"; sha256="0asxfcjrsr9d7ab59pdajs0zvdjgwfswk9rdlpfdr51535wpjrfy"; depends=[]; };
   acp = derive2 { name="acp"; version="2.1"; sha256="0lcwbjcyyr32m6qjmjqh25qjwrbyqj1n092xhgbhxzd8fslppnmn"; depends=[quantmod tseries]; };
@@ -6168,10 +6288,10 @@ in with self; {
   actLifer = derive2 { name="actLifer"; version="1.0.0"; sha256="1nqlsdywrfvq94zi2xk90m9m768x18fk6p6jrds8mpv63w2y3frc"; depends=[dplyr]; };
   actel = derive2 { name="actel"; version="1.3.0"; sha256="0hd1mkshywszswnllcx1lvlghnfk92438r57v6r7w8p5i9m04z9x"; depends=[circular data_table DiagrammeR DiagrammeRsvg fasttime ggplot2 knitr readr reshape2 rmarkdown rsvg scales stringi stringr svglite]; };
   actilifecounts = derive2 { name="actilifecounts"; version="1.1.1"; sha256="0p65j7l8d8503nil34faz7jashv5rw327xlpphwhwa4x5wga5z01"; depends=[GGIRread gsignal pracma]; };
-  activAnalyzer = derive2 { name="activAnalyzer"; version="2.0.2"; sha256="1kvpdhv8rcbxqrdh58ffh0bwwwi5w62r75chm5s7j6358lymiajh"; depends=[dbplyr dplyr flextable forcats ggplot2 golem hms lubridate magrittr modelr patchwork PhysicalActivity plyr reactable rmarkdown RSQLite shiny shinycssloaders shinydashboard shinydashboardPlus shinyFeedback shinyjs stringr tidyr zoo]; };
+  activAnalyzer = derive2 { name="activAnalyzer"; version="2.1.1"; sha256="0jbzbn9y9lwhy4003ym4w680glj9mdq3gwkk64hfsh94c52xihk3"; depends=[assertthat dbplyr dplyr flextable forcats ggplot2 golem hms lubridate magrittr modelr patchwork PhysicalActivity plyr reactable rmarkdown RSQLite shiny shinycssloaders shinydashboard shinydashboardPlus shinyFeedback shinyjs stringr tidyr zoo]; };
   activPAL = derive2 { name="activPAL"; version="0.1.3"; sha256="1h6hp5z89ji73gdzxy1dgbfwjysiy5lvcqh90xagpb7sa7ahs3na"; depends=[devtools dplyr ggplot2 lubridate magrittr tidyr]; };
   activatr = derive2 { name="activatr"; version="0.2.0"; sha256="0d3r9xp7nrva84az3p211f3g995g8p0lz49f6fjlmzd9pc3jzxg9"; depends=[dplyr geosphere ggmap glue httr lubridate rlang slider tibble xml2]; };
-  activegp = derive2 { name="activegp"; version="1.1.0"; sha256="1yfib5q649kag45ryyqsbq9lq9yd74rrjjk65a6c9rkfa4f6w8xv"; depends=[hetGP lhs MASS numDeriv Rcpp RcppArmadillo RcppProgress]; };
+  activegp = derive2 { name="activegp"; version="1.1.1"; sha256="1b64k0k6l9dgvyqhd6j9plabaibjayfm5maa4bpwxxgwkp122r3c"; depends=[hetGP lhs MASS numDeriv Rcpp RcppArmadillo RcppProgress]; };
   activity = derive2 { name="activity"; version="1.3.4"; sha256="10gp2yvqxz5ysmh5z8qvrpli8kc2kn2z3nd2llfabpyh21476in2"; depends=[pbapply]; };
   actogrammr = derive2 { name="actogrammr"; version="0.2.3"; sha256="1jzvarmd41yqlrkagzlc8m19n5mn0w0b36fy50lyvgrfsafjfbqa"; depends=[dplyr ggplot2 lubridate readr tidyr]; };
   actuaRE = derive2 { name="actuaRE"; version="0.1.5"; sha256="02f90vdbfz6shsw4ndhqbqjsrwiwmi1jp66bsl897cb8fnywnzs4"; depends=[cplm data_table ggplot2 knitr lme4 magrittr nlme statmod]; };
@@ -6195,12 +6315,12 @@ in with self; {
   adaptTest = derive2 { name="adaptTest"; version="1.2"; sha256="0wb21mac5h683qgjdic29kpncr22ri93iwq8w4b7hywaxkv0zj2p"; depends=[lattice]; };
   adaptalint = derive2 { name="adaptalint"; version="0.2.4"; sha256="15qdcvnnbgcps8j5k79354wsc9alswijv8lcafg2i3lghaw536yf"; depends=[dplyr lintr purrr]; };
   adaptiveGPCA = derive2 { name="adaptiveGPCA"; version="0.1.3"; sha256="1766b3d9ysa9axfxqwy6gzj0z8hsl34pic6l63nbidqas55vnjqa"; depends=[ape ggplot2 phyloseq shiny]; };
-  adaptivetau = derive2 { name="adaptivetau"; version="2.3"; sha256="1m82nibsrkwqvc0aq9yrzakpa7k663i1gbis6ikvs7dfxf9mpijx"; depends=[]; };
-  adaptr = derive2 { name="adaptr"; version="1.3.2"; sha256="1kqxlqxbcvx8fy0cdihcl9sxj5y52dkjpymjbdzbrzx3dyq6kmlw"; depends=[]; };
+  adaptivetau = derive2 { name="adaptivetau"; version="2.3-1"; sha256="0krv2pw7gg0nch96h0ffy6wli1cjscfl424jy04q0zvvqfghkvqd"; depends=[]; };
+  adaptr = derive2 { name="adaptr"; version="1.4.0"; sha256="0a0rrqhb1nyx5m0647ljnmy8ffc78swsx8jh8p8hzh0s45kxrg5y"; depends=[]; };
   adaptsmoFMRI = derive2 { name="adaptsmoFMRI"; version="1.2"; sha256="00npcl2js9vj5r3l66cp5d2l807klia581pig1gsyjjq4rvmfa7v"; depends=[coda Matrix MCMCpack mvtnorm spatstat spatstat_geom]; };
-  adbcdrivermanager = derive2 { name="adbcdrivermanager"; version="0.10.0"; sha256="1mg2m14jc8wd3w9pb0ayqqm28dgdmwqhgs811m1hc1jywr0hlmbv"; depends=[nanoarrow]; };
-  adbcpostgresql = derive2 { name="adbcpostgresql"; version="0.10.0"; sha256="1xz4hxv0vn6vi6k07qwvbiws9ywj4cxnf2spnlcp0ajjxy4p6xlv"; depends=[adbcdrivermanager]; };
-  adbcsqlite = derive2 { name="adbcsqlite"; version="0.10.0"; sha256="1jgydhi1fnb0dlqksw58lvacakqjsksl32358dvzlkgihvjqzfds"; depends=[adbcdrivermanager]; };
+  adbcdrivermanager = derive2 { name="adbcdrivermanager"; version="0.12.0"; sha256="0kvn6agx5vscdl77zzkz8lhlr2i7p9qda6q52ligwvjyrh5zyi48"; depends=[nanoarrow]; };
+  adbcpostgresql = derive2 { name="adbcpostgresql"; version="0.12.0"; sha256="031qv19rx389br9dv3nxpghy580g1aywv265la03s9g6d5jw9j4r"; depends=[adbcdrivermanager]; };
+  adbcsqlite = derive2 { name="adbcsqlite"; version="0.12.0"; sha256="085djnpafh4gdklai3x54bjbkqkiyjlz9nygddmid3x3x4xg01vj"; depends=[adbcdrivermanager]; };
   adbi = derive2 { name="adbi"; version="0.1.1"; sha256="17w74ggng77yvpqn0vw1s1gylmchrv2dq6s19fl56dl6nqp6bfpa"; depends=[adbcdrivermanager DBI nanoarrow]; };
   adc = derive2 { name="adc"; version="1.0.0"; sha256="152j863rfrmjpaambxy6hc57zcpp0wlyd6kl7miryk3z0yvngcw9"; depends=[runner]; };
   add2ggplot = derive2 { name="add2ggplot"; version="0.3.0"; sha256="0c94i1cfp2pvplvxmfvvz2fyj026r1jnax05mrzrc7ppnqzy25y0"; depends=[ggplot2 magick magrittr RColorBrewer zeallot]; };
@@ -6210,9 +6330,9 @@ in with self; {
   addinsJoaoMelo = derive2 { name="addinsJoaoMelo"; version="0.1.0"; sha256="1slx9vfcpb468asvgcj0vh7djc5rndzdpcp96qmnis77fx67xj5s"; depends=[dplyr purrr rstudioapi stringr]; };
   addinsOutline = derive2 { name="addinsOutline"; version="0.1.6"; sha256="125qfqbpv5xflw8qlyh8m3iyd6biyp3arls3z7y8bqkbghifl730"; depends=[dplyr DT fs miniUI rmarkdown rstudioapi shiny shinyFiles stringr tibble yaml]; };
   addinslist = derive2 { name="addinslist"; version="0.5.0"; sha256="0gis7485m7gz3xz5wfxxm3136cg2j9i6f6zq8gbv206w261y1nfb"; depends=[curl DT miniUI rappdirs remotes rmarkdown rvest shiny shinyjs xml2]; };
-  additive = derive2 { name="additive"; version="0.0.5"; sha256="1i9837wlz89bl4890735xrb2qi1yaijx8iybr20ky4q9swq3zg7d"; depends=[dplyr mgcv parsnip purrr rlang tibble]; };
+  additive = derive2 { name="additive"; version="1.0.1"; sha256="1w81vapv5xpxl8nl2gjr01z0jkanapn5152b1xxvil1n8byls5vq"; depends=[dplyr mgcv parsnip purrr rlang tibble]; };
   additiveDEA = derive2 { name="additiveDEA"; version="1.1"; sha256="15nxpdybsda6yhjk23bpafr8v1zdx8332pcxf26k795q3ypjpiy2"; depends=[Benchmarking lpSolveAPI]; };
-  additivityTests = derive2 { name="additivityTests"; version="1.1-4.1"; sha256="00kzfv86z6kk0gvbz9mg3p6xi5fb8cn74rhslr17rdpd02md0884"; depends=[]; };
+  additivityTests = derive2 { name="additivityTests"; version="1.1-4.2"; sha256="07fms1mf71ycq6w2k3hmgl6q3sc5x4qkm7d0diymbbgpbpxggwh8"; depends=[]; };
   addreg = derive2 { name="addreg"; version="3.0"; sha256="13bwmgxylwi02g60j1rr51cr5jvvkl2nvf2lnnhnq46fhvs2ma7s"; depends=[combinat glm2 turboEM]; };
   ade4 = derive2 { name="ade4"; version="1.7-22"; sha256="1d4knc1c1hha4gwcakbllzmff4g0mh56y058dn6wp9m2hd7gaz80"; depends=[MASS pixmap Rcpp RcppArmadillo sp]; };
   ade4TkGUI = derive2 { name="ade4TkGUI"; version="0.3-1"; sha256="1y0f62n8iv002ayd1nyl3bmszw558niwnfzjpvk0a7cbvfdyvwcg"; depends=[ade4 adegraphics lattice]; };
@@ -6224,7 +6344,7 @@ in with self; {
   adehabitatLT = derive2 { name="adehabitatLT"; version="0.3.27"; sha256="0siaj9h9gyar6pmnv9bp4k7lcpfcvhykl3jj80pzdb6yyybgj2zx"; depends=[ade4 adehabitatMA CircStats sp]; };
   adehabitatMA = derive2 { name="adehabitatMA"; version="0.3.16"; sha256="1jmmi6rh3rnv5b3qy1xhy0rs4dnkysf4rxjfs0im1i5n4rd437h8"; depends=[sp]; };
   adephylo = derive2 { name="adephylo"; version="1.1-16"; sha256="0n6f2v287gkbdrfxq50b1lbya4znqg50lrah0v540vmydgi5vkmm"; depends=[ade4 adegenet ape phylobase]; };
-  adepro = derive2 { name="adepro"; version="3.2.0"; sha256="0sw42yld4bjgfiqm957ply605zsj66mmwvkzi73hsbkk31w1k5fb"; depends=[audio Cairo dplyr gclus haven jsonlite MASS readr rlang seriation shape shiny shinyBS shinyjs shinyWidgets TeachingDemos tidyr V8]; };
+  adepro = derive2 { name="adepro"; version="4.1.0"; sha256="06zj8vq7py41g0bjpnd4fczwxcr4k1lb1cxjxfc92fhj0wk51k36"; depends=[audio Cairo dplyr forcats haven here MASS readr rlang seriation shape shiny shinyBS shinyjs shinyWidgets tidyr V8]; };
   adept = derive2 { name="adept"; version="1.2"; sha256="1dpfmfnqzci6p7wqwpp8y0cisx11r8kdsqjm85skb512n35m0i3a"; depends=[dplyr dvmisc magrittr pracma]; };
   adeptdata = derive2 { name="adeptdata"; version="1.1"; sha256="0wzavbwc1slyr3wh5jkapghpa748rc86pbw5b4gcxki73r08r7j2"; depends=[]; };
   adespatial = derive2 { name="adespatial"; version="0.3-23"; sha256="0cszq382vpd8alc98hnrzqj1wyp8bcfbvqpi1d2rqbr12f5qgq3h"; depends=[ade4 adegraphics adephylo lattice MASS shiny sp spdep vegan]; };
@@ -6237,29 +6357,30 @@ in with self; {
   adjROC = derive2 { name="adjROC"; version="0.3"; sha256="0bf7vvhllpl8irqw1ahfhbhqq67v6jxblapv91ddkgpk2dl0sp03"; depends=[boot ggplot2 ROCit yardstick]; };
   adjSURVCI = derive2 { name="adjSURVCI"; version="1.0"; sha256="0nv6m7ds57d0h44d745s0424ssrgn39ihd294dgrzrpmh8gxhq95"; depends=[Rcpp RcppArmadillo survival]; };
   adjclust = derive2 { name="adjclust"; version="0.6.9"; sha256="1iq0pfw0kdi792iigpj4vq8phbcs9bid09bdvpxwwxcq65djni41"; depends=[capushe dendextend ggplot2 Matrix Rcpp RcppArmadillo rlang sparseMatrixStats]; };
-  adjustedCurves = derive2 { name="adjustedCurves"; version="0.11.0"; sha256="1fw76s86zs9fxaifiy647wvj8y5bxlfcn9g7a6am2qcifrwq0yb6"; depends=[doParallel doRNG dplyr foreach R_utils rlang]; };
+  adjustedCurves = derive2 { name="adjustedCurves"; version="0.11.1"; sha256="047r9fi9ilcfnb6shkqsnrz4c4gs6x1nbff00wfamncjv19s74yh"; depends=[doParallel doRNG dplyr foreach R_utils rlang survival]; };
   adjustedcranlogs = derive2 { name="adjustedcranlogs"; version="0.1.0"; sha256="08apfvpqvnnalx230p4qf5ckrwm1sgzras4zfrysgym5d4map9ci"; depends=[cranlogs dplyr lubridate rvest xml2]; };
   adklakedata = derive2 { name="adklakedata"; version="0.6.1"; sha256="1lzj3ib4bgfkq5lq12n47pwc52h7k35xbbwj6brwsgx1gd4fx3x6"; depends=[httr rappdirs]; };
   adlift = derive2 { name="adlift"; version="1.4-5"; sha256="0kf1akx5c4c7mdy9ysfdik2xi810jcysw9ynmvxlgw2zykqxvqdk"; depends=[EbayesThresh]; };
-  admiral = derive2 { name="admiral"; version="1.0.2"; sha256="18q60qk2wr2jp8zxd9xz66glpr00qvlq88yqd2ybv76zlapcq6gg"; depends=[admiraldev dplyr hms lifecycle lubridate magrittr purrr rlang stringr tidyr tidyselect]; };
+  admiral = derive2 { name="admiral"; version="1.1.0"; sha256="1ynqmpswhcy4qlaf8yvhhlax6j9xii5m7bwvrxrjzqnpdcif4hrb"; depends=[admiraldev cli dplyr hms lifecycle lubridate magrittr purrr rlang stringr tidyr tidyselect]; };
   admiral_test = derive2 { name="admiral.test"; version="0.7.0"; sha256="1bmzj9r6nbyk4wd63ps6qwrj35lpj4s4jj4dvlg0p7yyssig68pb"; depends=[]; };
-  admiraldev = derive2 { name="admiraldev"; version="1.0.0"; sha256="0n944il50mlqwclb6251zck89l9fyki7j711h4pp4fba3hs96s7r"; depends=[dplyr hms lifecycle lubridate magrittr purrr rlang stringr tidyr tidyselect]; };
+  admiraldev = derive2 { name="admiraldev"; version="1.1.0"; sha256="0cpdhyiis0mwd219h3y4l1scy49bl3qjd9sy2kln4ymy0xsbasyg"; depends=[cli dplyr glue lifecycle lubridate purrr rlang stringr tidyr tidyselect]; };
   admiralonco = derive2 { name="admiralonco"; version="1.0.0"; sha256="03q02l4abrcgpg17cyfq2vhzinlywm0ir6wqx2ch43d3agzyypzy"; depends=[admiral admiraldev dplyr lifecycle lubridate magrittr rlang tidyselect]; };
   admiralophtha = derive2 { name="admiralophtha"; version="1.0.0"; sha256="0ip69mishnx8yllfp2vm2qsa5917hwi974lr8qwil9xx6d2hgbkz"; depends=[admiral admiraldev dplyr hms lifecycle lubridate magrittr purrr rlang stringr tidyr tidyselect]; };
   admiralvaccine = derive2 { name="admiralvaccine"; version="0.2.0"; sha256="0asi4939k50y05f1klga4i8wyw4hxlczsz3sg3as39pdsp6zzn48"; depends=[admiral admiraldev assertthat dplyr hms lifecycle lubridate magrittr metatools purrr rlang stringr tidyr tidyselect]; };
   admisc = derive2 { name="admisc"; version="0.35"; sha256="0gzdb9dm34qfkjqgfrd3wm96dzhcps4xayyrhp80mzgh14zmnjyg"; depends=[]; };
-  admix = derive2 { name="admix"; version="2.1-2"; sha256="1g6s2ll31g8klxmg6zg7scy5l84bqzc3ncjsbw8zxrbrjzyd2yzx"; depends=[cubature fdrtool Iso MASS orthopolynom pracma Rcpp]; };
+  admix = derive2 { name="admix"; version="2.1-3"; sha256="0h6saazz2p8pliznn2ggbi6zj5ib00ylghfxj5i9nk21p4y0s59s"; depends=[cubature fdrtool Iso MASS orthopolynom pracma Rcpp]; };
   admixr = derive2 { name="admixr"; version="0.9.1"; sha256="0wszpzs53cbnha13g2ldpq6z5ndw2v2xgrzadqkjm3hsp6akv4bl"; depends=[dplyr magrittr readr rlang stringr tibble]; };
   admmDensestSubmatrix = derive2 { name="admmDensestSubmatrix"; version="0.1.0"; sha256="1a5lfm10aj6wdjibdnmffn75zvy6x69w8nqcx2i23gxg6v0xlqcl"; depends=[Rdpack]; };
   admtools = derive2 { name="admtools"; version="0.2.0"; sha256="11xp0zcv0qj0l4nq1c5wc4w6zc569qfhd4ir6knwynq68n89p8c2"; depends=[ape]; };
   adnuts = derive2 { name="adnuts"; version="1.1.2"; sha256="0nkciv5sfj3bws6kpgrnaq4ziasibaz44w64mb86zmr8420nyc1q"; depends=[ellipse ggplot2 R2admb rlang rstan snowfall]; };
   adobeanalyticsr = derive2 { name="adobeanalyticsr"; version="0.4.0"; sha256="1cbr86ssnd0bl6pvqziz16nvh3gzmd170pkk8wr2rkhm0rryh2l4"; depends=[assertthat dplyr ggplot2 glue httr jose jsonlite lifecycle lubridate memoise openssl progress purrr R6 rlang scales stringr tidyr vctrs]; };
+  adoptr = derive2 { name="adoptr"; version="1.0.1"; sha256="0crlwk6nk88lxz76klss7igmdx8sw99yj52kkmsa6l49s29wwqv2"; depends=[glue nloptr]; };
   adproclus = derive2 { name="adproclus"; version="1.0.2"; sha256="1aj9bb86fmgq6ln39pmkws0bp07wf02k3fahgsv3hq86yflgac8q"; depends=[checkmate corrplot gtools igraph NMFN qgraph withr]; };
   adpss = derive2 { name="adpss"; version="0.1.2"; sha256="1nk12yn1n483scnphf8pab8w633dk64c8n17zlq851zywbncs0gk"; depends=[Rcpp]; };
   ads = derive2 { name="ads"; version="1.5-10"; sha256="0arxwjy13fijf5w5491hyr7l4cbmp83aa4hckjxx43zbrdyvvrpz"; depends=[ade4 spatstat_geom]; };
   adsDataHubR = derive2 { name="adsDataHubR"; version="0.1.1"; sha256="19csivbg3f0g2r11l7jrciqq2lhg50km7qv29xfs6ba5cf678hb9"; depends=[httr jsonlite lubridate]; };
   adventr = derive2 { name="adventr"; version="0.1.8"; sha256="0nja1a2xhaimz1fg2bb838x9a37sswjqjc68mp59gbdwkfpdii37"; depends=[BayesFactor boot car dplyr effects effsize forcats GGally ggplot2 Hmisc learnr lm_beta nlme readr robust sandwich sjstats tidyr WRS2]; };
-  adw = derive2 { name="adw"; version="0.3.1"; sha256="00f4z7h4y1gmy9smxy8jwnr4alw641i1lmx4dyjk39jzzrx9fz1d"; depends=[sf terra]; };
+  adw = derive2 { name="adw"; version="0.4.0"; sha256="0ng9iabxh15xaj10mi6xdggmx6fcvdmmx1c9nlyfkbnb4f1qzlxp"; depends=[cnmap sf terra]; };
   adwave = derive2 { name="adwave"; version="1.3"; sha256="11iy50ng0zxvwsvdsvx262j8zgqaai308lp5is47az7xzvk57mx7"; depends=[waveslim]; };
   adwordsR = derive2 { name="adwordsR"; version="0.3.1"; sha256="1w5qg4psm8pj89f09pz7in8zkafaimik1n6hx29y55jpmbxbk2gn"; depends=[RCurl rjson]; };
   aeddo = derive2 { name="aeddo"; version="0.1.1"; sha256="005l1cxpk30m1krdkrr62i7d1gp8j1v5f9r8j81v6r3w3iwzr449"; depends=[checkmate dplyr ggplot2 lifecycle magrittr purrr rlang tibble tidyr]; };
@@ -6283,7 +6404,7 @@ in with self; {
   agcounts = derive2 { name="agcounts"; version="0.6.6"; sha256="1q993a7m639zn5cl8lv300qbqgh8wycqckaynvv9lc6a6j60ygjv"; depends=[bslib data_table DBI dplyr GGIR ggplot2 gsignal lubridate magrittr Rcpp RcppArmadillo reactable read_gt3x reticulate RSQLite shiny stringr zoo]; };
   ageg = derive2 { name="ageg"; version="1.0.0"; sha256="0dcmwgznxf1jjsifpm3nn3jk25mm27l6f6f6jfi2n3crxgqfizyv"; depends=[]; };
   agena_ai = derive2 { name="agena.ai"; version="1.1.1"; sha256="1nn2634r93gg3nwqnlg8c44zajl5jadx0cszah8nq502qby5y36j"; depends=[httr openxlsx Rgraphviz rjson]; };
-  ageutils = derive2 { name="ageutils"; version="0.0.2"; sha256="13hrcrhlbnd9828hls1dl8wczd5gd16jjqwbnsa1043wnm7sfg1z"; depends=[]; };
+  ageutils = derive2 { name="ageutils"; version="0.0.3"; sha256="1rrn0ag70bix45kkzpvkyz5hqnh86p0pw902is19gxf3qb8nj2bd"; depends=[]; };
   agfh = derive2 { name="agfh"; version="0.2.1"; sha256="0wkagdhbf4hgl1vrb6bxyan5ryp42xd8w7kbyspahqx8agzbn8zg"; depends=[ggplot2 goftest ks mvtnorm]; };
   aggTrees = derive2 { name="aggTrees"; version="2.0.2"; sha256="15dz96g8vyyijbv7nm9wwzwwsm0kzv8mwhrirnm14219cx4z2r76"; depends=[boot broom car caret estimatr grf rpart rpart_plot stringr]; };
   agghoo = derive2 { name="agghoo"; version="0.1-0"; sha256="0vaqmydww494ql6xbhhjkpap3lqkhf8hkbcrr1pk81qpszs0pndm"; depends=[class FNN R6 rpart]; };
@@ -6303,7 +6424,7 @@ in with self; {
   agrostab = derive2 { name="agrostab"; version="0.1.0"; sha256="0mcskv3144j594wqljzn5pwbhkxh6sb76b1c2wabzjvi61zrapiv"; depends=[dplyr ggplot2 rlang]; };
   ags = derive2 { name="ags"; version="1.0.1"; sha256="1g2q5cbpa0iwkwhcng15vqn8jgx5lingjfwakj320jr76x9bx6my"; depends=[dplyr rlang stringr]; };
   agtboost = derive2 { name="agtboost"; version="0.9.3"; sha256="1z2ys4cn859vas3q1if50k46cryn7wwy1pjqbc8n9dhdn5zxn3sk"; depends=[Rcpp RcppEigen]; };
-  agua = derive2 { name="agua"; version="0.1.3"; sha256="1mqx9a4cqplbq4llfyjh6mbyxr6in1a5f65hjnyhm7my6vhz4zr1"; depends=[cli dials dplyr generics ggplot2 glue h2o hardhat parsnip pkgconfig purrr rlang rsample tibble tidyr tune vctrs workflows]; };
+  agua = derive2 { name="agua"; version="0.1.4"; sha256="1mq7h2ff3ggqy6xsng1cz0mjdfbdnsp9yl2d2c20ma14k3rdf0q5"; depends=[cli dials dplyr generics ggplot2 glue h2o hardhat parsnip pkgconfig purrr rlang rsample tibble tidyr tune vctrs workflows]; };
   agvgd = derive2 { name="agvgd"; version="0.1.2"; sha256="0b3wvxrp77b180pm8asih88cyh4vf2yjj7rvl0f02x28a0ia0xki"; depends=[crayon dplyr glue grantham magrittr purrr rlang seqinr stringr tibble tidyr vctrs]; };
   ahMLE = derive2 { name="ahMLE"; version="1.20.1"; sha256="1phfzl0kynrq1if12h736jdxrfqc3i4kd32hp7sy2k2z7hkj1dkm"; depends=[invGauss Matrix Rcpp RcppArmadillo survival]; };
   ahaz = derive2 { name="ahaz"; version="1.15"; sha256="0k6i8s2miic2y1dgwjlpkhmaw6k3phn772p0600gcnjqxbqajznh"; depends=[Matrix survival]; };
@@ -6314,8 +6435,8 @@ in with self; {
   aiRly = derive2 { name="aiRly"; version="0.1.0"; sha256="0d3w5dwk0b3pd49zw2005rili4p3l1i3x4hzp8cf6rljr86x01cy"; depends=[httr jsonlite reshape2 tibble]; };
   aiRthermo = derive2 { name="aiRthermo"; version="1.2.1"; sha256="058082qdfi1pbdgf26vbfahri1kbc8b2l816q4dq89j5aj5is0a2"; depends=[]; };
   aidar = derive2 { name="aidar"; version="1.0.5"; sha256="1q2iz2qzh2yl0v0sc537xq4vbx2nblym3kv419vr7jvrghdpx3vj"; depends=[XML]; };
-  aides = derive2 { name="aides"; version="1.3.2"; sha256="1ya3baz7azxafl2r79z9lij62b5hpcs8bh428s2f7246sdawpsvb"; depends=[boot meta]; };
-  aifeducation = derive2 { name="aifeducation"; version="0.3.2"; sha256="1s32n3w1igxa5cx5srv3val489an8l9gw3s7v9123s0hp1l5raki"; depends=[abind doParallel foreach iotarelr irr irrCAC Rcpp RcppArmadillo reshape2 reticulate rlang smotefamily stringr]; };
+  aides = derive2 { name="aides"; version="1.3.3"; sha256="0cfi9h2bmjpxrvhbamm808s1pzgw9p9xxj70ickqc7ki8rzzk6cw"; depends=[boot meta]; };
+  aifeducation = derive2 { name="aifeducation"; version="0.3.3"; sha256="0lnxbvmsalis942nxgf0c3j602wcdzpvdm9r194c2ci0xpybc6ls"; depends=[abind doParallel foreach iotarelr irr irrCAC Rcpp RcppArmadillo reshape2 reticulate rlang smotefamily stringr]; };
   aihuman = derive2 { name="aihuman"; version="0.1.0"; sha256="0isd6j3qfhl9dfcknzsfyipvvni7bw6cpdkk4v5azpi3mcixbq4n"; depends=[abind coda doParallel dplyr foreach ggplot2 lme4 magrittr MASS metR purrr Rcpp RcppArmadillo RcppEigen tidyr]; };
   aimPlot = derive2 { name="aimPlot"; version="1.0.0"; sha256="1d52b7kccxba6j7n0gbd7pzs0p87zn32vv8gdf2f7lyr75qzgz7x"; depends=[ggplot2]; };
   aimsir17 = derive2 { name="aimsir17"; version="0.0.2"; sha256="0v804maqaygqhw3y9wqap3h9vvjniqnnbsv1psjj500r2yscicxs"; depends=[tibble]; };
@@ -6342,7 +6463,7 @@ in with self; {
   alabama = derive2 { name="alabama"; version="2023.1.0"; sha256="075zqyarb970d4zpxsivaxhnmdg916ypfxrp0mqngnww5p3nfpwj"; depends=[numDeriv]; };
   alakazam = derive2 { name="alakazam"; version="1.3.0"; sha256="01alngdynigvycmpqa71ccndw6v91hmrs3c2ah0r148rxdgbw58v"; depends=[airr ape Biostrings dplyr GenomicAlignments ggplot2 igraph IRanges Matrix progress Rcpp readr rlang scales seqinr stringi tibble tidyr]; };
   alarmdata = derive2 { name="alarmdata"; version="0.2.1"; sha256="1gx4s4dbhqvbj5y8qxgvm2x4a5n22llwiqm8a6iavg1yd3sqhzg0"; depends=[censable cli curl dataverse dplyr geomander rappdirs readr redist redistmetrics rlang sf stringr tidyselect tinytiger]; };
-  albatross = derive2 { name="albatross"; version="0.3-7"; sha256="0hs5i4wzm4kf7k9x4a5l18h1gx0zdq33fi21571x48bi5ic1294w"; depends=[CMLS lattice Matrix multiway pracma]; };
+  albatross = derive2 { name="albatross"; version="0.3-8"; sha256="1cayp4025h14p66alagpvnwm5f05l7gv132x3a2d40cf77nrrpky"; depends=[CMLS lattice Matrix multiway pracma]; };
   albopictus = derive2 { name="albopictus"; version="0.5"; sha256="0kw1agm9jqi9wl5zbx8bryngy751g3sih36rgbrx0m2170cy42d9"; depends=[]; };
   ald = derive2 { name="ald"; version="1.3.1"; sha256="12nf9vakayw24clrg56fh9x85kg277iricbs8ymahkjqjnc1p3cz"; depends=[]; };
   aldvmm = derive2 { name="aldvmm"; version="0.8.8"; sha256="1qqfhfrhqlzlmfdf84sq9v17d6jrnn4w7yilskbrg74zvbcbc3k8"; depends=[checkmate Formula lmtest numDeriv optimx sandwich]; };
@@ -6353,19 +6474,19 @@ in with self; {
   algo = derive2 { name="algo"; version="0.1.0"; sha256="1g18p8jyj9crkqm16y2im3r9xzqwa36javv4vi1wvsqkg31d81si"; depends=[glue htmltools jsonlite]; };
   algorithmia = derive2 { name="algorithmia"; version="0.3.0"; sha256="1ccmcsyxncyv8k0fjvr5y44amygqi7qx2dy6rsy3a5pw281hllr4"; depends=[base64enc httr rjson]; };
   aliases2entrez = derive2 { name="aliases2entrez"; version="0.1.2"; sha256="11myzwvmagnj35qrrxr35hklzv76c0c4h2zl64y3lzzn5rfii0n6"; depends=[AnnotationDbi doParallel foreach limma org_Hs_eg_db RCurl readr]; };
+  alien = derive2 { name="alien"; version="1.0.1"; sha256="0856csdvz5wz699n7g8bj1azzyw2mfznhcwmabzp740bijy6x6qi"; depends=[cli dplyr ggplot2 HelpersMG rlang tidyr]; };
   align = derive2 { name="align"; version="0.1.0"; sha256="1r411yvsgzfywamsjz3j5pim0qjfa7rmhdkhd3sj8lp1xh98jhy9"; depends=[matlab]; };
   alkahest = derive2 { name="alkahest"; version="1.1.1"; sha256="1wbdhvak4984rdglsx2h7wwazxkvz2wv93lnizw7b4dm8aqrnapg"; depends=[]; };
   allMT = derive2 { name="allMT"; version="0.1.0"; sha256="0d34w0gl369mq512x3h2nsrvd13ahy36p5hdyvz5gnpdlaql64c6"; depends=[dplyr ggplot2 htmlTable plyr readxl reshape2 rio scales stringr survival survminer tibble]; };
-  allcontributors = derive2 { name="allcontributors"; version="0.1.1"; sha256="0s8az7wz8rx74i6rlinl8l0l90hzql10hxqlxm281irsczhjm7ga"; depends=[cli clipr curl gert gh gitcreds httr2 magrittr]; };
+  allcontributors = derive2 { name="allcontributors"; version="0.2.0"; sha256="043li7wdm3m66k69ijjmak53pk8f6q3a89snncv36g82zwbpfvpp"; depends=[cli clipr curl gert gh gitcreds httr2 magrittr]; };
   alleHap = derive2 { name="alleHap"; version="0.9.9"; sha256="1fqrw645s3f5363p7jl3dzy8xphxdr1v6wdsjmqcqwpgvjqfr2zz"; depends=[abind]; };
-  allelematch = derive2 { name="allelematch"; version="2.5.3"; sha256="1gr0s2zfc4i61bxz1prq9p2lyq17h10vzp0mkq2z6c2rfzqfhazc"; depends=[dynamicTreeCut]; };
+  allelematch = derive2 { name="allelematch"; version="2.5.4"; sha256="1zzx9ilxh99grjl2dmzmby0kh9rgd1h2x1hvsaxvxxmnahdsprm2"; depends=[dynamicTreeCut]; };
   allestimates = derive2 { name="allestimates"; version="0.2.3"; sha256="1gjkry5v1mrb11zd3r9z9cj6aasrhj29yihpizqphbb463qima3a"; depends=[broom dplyr ggplot2 stringr survival tidyr]; };
-  allofus = derive2 { name="allofus"; version="1.0.0"; sha256="03i9naibrcwyk7735q3khabbh7rrwm7gz0ffsmd9k50hfzkbs0a0"; depends=[bigrquery cli dbplyr dplyr glue magrittr purrr rlang sessioninfo tidyr]; };
-  allometric = derive2 { name="allometric"; version="2.1.0"; sha256="15g9xyyiipg602s465kc082h7mlpwjfg6p9g2ba6n9ahhvcrhma7"; depends=[curl dplyr ISOcodes jsonlite magrittr openssl progress purrr RefManageR rlang stringr tibble tidyr units vctrs]; };
+  allofus = derive2 { name="allofus"; version="1.1.0"; sha256="0lxds215ar26z28jv5kxp61vhg0yy73q7xj0dbdkiqnqhq7z8dhd"; depends=[bigrquery bit64 cli DBI dbplyr dplyr glue lifecycle magrittr purrr rlang sessioninfo stringr tidyr]; };
   allomr = derive2 { name="allomr"; version="0.3.0"; sha256="0bsvg4n8yql7241q6dfgki2lnd5kdivjg31lzllca8xfzrfxcvn1"; depends=[]; };
   alluvial = derive2 { name="alluvial"; version="0.1-2"; sha256="039frwrsxq1lb97s7vf2vbyyadimkigs628ymym06fxka53drdkp"; depends=[]; };
   almanac = derive2 { name="almanac"; version="1.0.0"; sha256="03954ylzqj34kkkz74ffa3i1kbby2vy0gxmbqd4gcw6qa646fq79"; depends=[cli glue lifecycle lubridate magrittr R6 rlang V8 vctrs]; };
-  alone = derive2 { name="alone"; version="0.3"; sha256="15ivqnnpn96x2pg83mswagqb0qaymafphc7awzik14vbg7k9pk9j"; depends=[]; };
+  alone = derive2 { name="alone"; version="0.4"; sha256="1smfn3b1lcbccsi41548pr6yyld9nh74apxp54yad5ga20r68462"; depends=[]; };
   alookr = derive2 { name="alookr"; version="0.3.9"; sha256="13lvbfgqb6ivrik1jcbfz3zn6p41aqwq68bk9ric3xnyjnczc5wg"; depends=[caTools cli dlookr dplyr future ggmosaic ggplot2 glmnet MASS MLmetrics parallelly party purrr randomForest ranger rlang ROCR rpart tibble tidyr tidyselect xgboost]; };
   aloom = derive2 { name="aloom"; version="0.1.1"; sha256="0n5vqp9hhdhy092yg93ldm2ii1l5pz30r7m2iwpjck0s92jjrhda"; depends=[glmnet randomForest]; };
   alpaca = derive2 { name="alpaca"; version="0.3.4"; sha256="1fqw8fcahpgdkj25pd6pq4isd0yrdpiypl3q9ir79a56pvjcn8a4"; depends=[data_table Formula MASS Rcpp RcppArmadillo]; };
@@ -6401,27 +6522,27 @@ in with self; {
   amen = derive2 { name="amen"; version="1.4.5"; sha256="0nqgb25y8zmmas3i1abzv3w5m4cnxjsdqcqxxrhngj3ajz4dmyc7"; depends=[]; };
   amerifluxr = derive2 { name="amerifluxr"; version="1.0.0"; sha256="099vv1axgp4jfi9ic4rqsdcv8a5dz1z0zdmdx8r8h474p3jdqm7c"; depends=[heatmaply httr jsonlite memoise RCurl readxl]; };
   amerika = derive2 { name="amerika"; version="0.1.0"; sha256="1c0bi0wrc89d0zv0wzmdvka66mcikgi1w4gn1i22mvg5bivhzaqx"; depends=[]; };
-  ami = derive2 { name="ami"; version="0.1.0"; sha256="0j3k4q1vm2nv108r1k0dr8ps4hxql9l9gnqmvd5gadladsy7444i"; depends=[curl glue lifecycle rlang rstudioapi]; };
+  ami = derive2 { name="ami"; version="0.1.1"; sha256="0gcbwhbk3lzxcp35841pdipbifhk445x2r0ch6999n1y0h7rsca7"; depends=[curl glue lifecycle rlang rstudioapi]; };
   ammiBayes = derive2 { name="ammiBayes"; version="1.0-2"; sha256="0mj14n882jcg7p7rldb0d7yndp1dv3vma9g7f7f0vabhwm6d1jkd"; depends=[bayesplot coda distfree_cr Hmisc lattice latticeExtra movMF msm spam]; };
   ammistability = derive2 { name="ammistability"; version="0.1.4"; sha256="06hlbpwa0d1grs7k1vfhchrfi9zml76hkn41vnrayv35fx0sl1pz"; depends=[agricolae ggcorrplot ggplot2 mathjaxr Rdpack reshape2]; };
   amp = derive2 { name="amp"; version="1.0.0"; sha256="11132s3bdjcldvpws7yc1w4nifvq0iaavdda2zj0wwmi4rw5xx5c"; depends=[dplyr ggplot2 glmnet MASS rlang SuperLearner tidyr]; };
   ampd = derive2 { name="ampd"; version="0.2"; sha256="0bi8qngd37n60ym516yjcahxc536vdwm60rq5ld32170hww69j7c"; depends=[]; };
   ampir = derive2 { name="ampir"; version="1.1.0"; sha256="0nnsxrnq3m1frrjp3i8bhm67x6xnl0scyb67wxgm5x7b187svhfj"; depends=[caret kernlab Peptides Rcpp]; };
-  amt = derive2 { name="amt"; version="0.2.1.0"; sha256="0dw29gpgcqm5v8scwhnvdk1vkq9wqjd9klrxlgigqisnlqg0pgia"; depends=[checkmate circular ctmm data_table dplyr fitdistrplus FNN KernSmooth lubridate MASS purrr Rdpack rlang sf sfheaders survival terra tibble tidyr]; };
+  amregtest = derive2 { name="amregtest"; version="1.0.3"; sha256="0c5x95iiqr0fa2ph6zily6qp542yc08vwzgrvfhclmkrn9zjcjap"; depends=[allelematch digest remotes testthat withr]; };
+  amt = derive2 { name="amt"; version="0.2.2.0"; sha256="1yx5rvc18ppk37z1m72a1j80ai4b84zc8fh5py2zipvc7phwqfsw"; depends=[checkmate circular ctmm data_table dplyr fitdistrplus FNN KernSmooth lubridate MASS purrr Rdpack rlang sf sfheaders survival terra tibble tidyr]; };
   anMC = derive2 { name="anMC"; version="0.2.5"; sha256="0xrby8qyfd3dgi64kllspvalz9yrxjdj5qd1fqjdl6qwb3h6rkga"; depends=[mvtnorm Rcpp RcppArmadillo]; };
   anabel = derive2 { name="anabel"; version="3.0.1"; sha256="0m6jkbl3mf3kpaq9yj0qrbwcvgd1qrdakc14xcnd8awgvbqh6z01"; depends=[cli dplyr ggplot2 kableExtra minpack_lm openxlsx progress purrr qpdf reshape2 rlang tidyr]; };
   anacor = derive2 { name="anacor"; version="1.1-4"; sha256="0wf9kb8389gc9jy32dr8ap78lychgjnd19jix7wzln4yx78ypqnq"; depends=[car colorspace fda]; };
   analogsea = derive2 { name="analogsea"; version="1.0.7.2"; sha256="146n6z06nr3jyni8mg8gjb7r4w06mrpkfmpg8l8z6rw9aw1gh73p"; depends=[httr jsonlite magrittr yaml]; };
   analogue = derive2 { name="analogue"; version="0.17-6"; sha256="0c5h8nnbflydv35ja1pfhyx7ifwlriwgcnrmxj5il5lvcr70y1vi"; depends=[brglm lattice MASS mgcv princurve vegan]; };
   analyzer = derive2 { name="analyzer"; version="1.0.1"; sha256="1729dnghdca7dr4l5cxazg68ipkm63mvk2danwm3bva62sza29p6"; depends=[dplyr ggplot2 gridExtra]; };
-  anapuce = derive2 { name="anapuce"; version="2.3"; sha256="05k3ypy4dc8q4jv0by37k66pdwb1wmsd24i6nciris5knfdy9csg"; depends=[]; };
   and = derive2 { name="and"; version="0.1.5"; sha256="1i95ap4yba5c5ygwsvwmqb3am4r5agv7yhls7ji7pnly8nkrknyn"; depends=[glue rlang]; };
   andrews = derive2 { name="andrews"; version="1.1.2"; sha256="18z8g1g5kx3cmgx4rc4rd35d557yl30xxmr2g2nkdd714w2asqra"; depends=[gmp]; };
   andurinha = derive2 { name="andurinha"; version="0.0.2"; sha256="1cpz16zv3al6lmsqsb7dl5v6kml2a0hg084rbmwa4wsyk5ygl8bm"; depends=[cowplot ggplot2 plyr rlang signal tidyr]; };
   anesrake = derive2 { name="anesrake"; version="0.80"; sha256="1p2g51w80jiadlf4asbnsw46asarzlzr5c1yfhdb31ymqxd7p76q"; depends=[Hmisc weights]; };
   angstroms = derive2 { name="angstroms"; version="0.0.1"; sha256="1k8q4pkb5vcjfp2n2dga3q2ydmdxv020k5qzrb6w01ixrgf15d8l"; depends=[nabor ncdf4 proj4 raster sp spbabel]; };
   aniDom = derive2 { name="aniDom"; version="0.1.5"; sha256="04gqq6ibmr7zq8p9cbpxj98afq7yz82gp7prwbq2ymbxnkywwpgq"; depends=[rptR]; };
-  aniSNA = derive2 { name="aniSNA"; version="1.1.0"; sha256="0vmpdmqr3cwpk588y116bv2nv1xcaya0mg53zcl3yc223df134zp"; depends=[dplyr ggplot2 igraph lubridate magrittr plotrix Rcpp reshape rlang stringr]; };
+  aniSNA = derive2 { name="aniSNA"; version="1.1.1"; sha256="1rvrpcw1j5xwz8ns7njvf8blal8nh6c45avy5rpzb5kifiv8yxgy"; depends=[dplyr ggplot2 igraph lubridate magrittr plotrix Rcpp reshape rlang stringr]; };
   anim_plots = derive2 { name="anim.plots"; version="0.2.2"; sha256="0j786k5kkc1d33q52ki6fp3hnddjv7fv3ss6zjm9hqqgkq34vwqh"; depends=[animation]; };
   animalEKF = derive2 { name="animalEKF"; version="1.2"; sha256="1qhmgwmg9nw8hcsd8gkvk0h8rmk82zkqjyd94a1d79cwmryxls9b"; depends=[bezier colorspace deldir ellipse ggplot2 HDInterval MASS Matrix MCMCpack mvtnorm plyr png rlang sf shiny sp]; };
   animate = derive2 { name="animate"; version="0.3.9.4"; sha256="1pzgxz3xdp7c1swd5sxzlpyvvqv3shw8dxnbjwv1cr5g406p8970"; depends=[base64enc glue httpuv jsonlite R_utils R6]; };
@@ -6440,13 +6561,13 @@ in with self; {
   anomaly = derive2 { name="anomaly"; version="4.3.2"; sha256="1w0bc5147rqsakiz3cs37xcd27i2b5ni1dva2kxv8l17ma0519v3"; depends=[BH cowplot dplyr ggplot2 Rcpp Rdpack tidyr xts zoo]; };
   anovir = derive2 { name="anovir"; version="0.1.0"; sha256="1x7lvj7xchbv6siyc9miivmf0rlxrjflal4icyvbxgdr285s2s9w"; depends=[bbmle]; };
   anscombiser = derive2 { name="anscombiser"; version="1.1.0"; sha256="1hakvxgc50zshi5kplg90r0499mihhwvhhz7bshndjxxci1ashkl"; depends=[]; };
-  antaresEditObject = derive2 { name="antaresEditObject"; version="0.6.1"; sha256="0ll4vql2lnhp3dlhq1i91yzr24cpkzbnlnarqri931h53pb3sa5d"; depends=[antaresRead assertthat cli data_table doFuture doParallel future httr jsonlite memuse pbapply plyr progressr whisker yaml]; };
+  antaresEditObject = derive2 { name="antaresEditObject"; version="0.7.0"; sha256="1v9lhaw2cs4ggfpwi1zdlganks3xrnlsycziv0h3zi5zg45mar7v"; depends=[antaresRead assertthat cli data_table doFuture doParallel future httr jsonlite lifecycle memuse pbapply plyr progressr whisker yaml]; };
   antaresProcessing = derive2 { name="antaresProcessing"; version="0.18.1"; sha256="1dlq850xqh9534ws88ma3vv5r79cbabn6r6a2jmicxx116s7wjrz"; depends=[antaresRead data_table]; };
-  antaresRead = derive2 { name="antaresRead"; version="2.6.0"; sha256="1rlgkq8nna6zs7i5czj1wbcyzng5bj9w7mijz5yy80mf5qd6x2v3"; depends=[bit64 data_table doParallel httr jsonlite lubridate memuse pbapply plyr purrr shiny stringi stringr]; };
+  antaresRead = derive2 { name="antaresRead"; version="2.7.0"; sha256="0rgb2glphf6f4vw1hrjxm1f2lhdsx1zag6r0bqgvmzkqipvp97zk"; depends=[bit64 data_table doParallel httr jsonlite lifecycle lubridate memuse pbapply plyr purrr shiny stringi stringr]; };
   antaresViz = derive2 { name="antaresViz"; version="0.18.0"; sha256="1lffsxv8fy3yq6rx6520rizp9f74d8bd78by5n209yr9yhw1629r"; depends=[antaresProcessing antaresRead assertthat data_table dygraphs geojsonio htmltools htmlwidgets leaflet leaflet_minicharts lubridate manipulateWidget plotly rAmCharts sf shiny sp spMaps webshot]; };
   anthro = derive2 { name="anthro"; version="1.0.1"; sha256="0vp55q0f9d4gljwzfzr07f80q5ip59imvklfw8gg1rjw83yaqpxr"; depends=[survey]; };
   anthroplus = derive2 { name="anthroplus"; version="0.9.0"; sha256="1wnj2idgdnh2gdw34x40adijf2sxp3k72j45pqqxg4aqc1wrvvv1"; depends=[anthro]; };
-  anticlust = derive2 { name="anticlust"; version="0.8.1"; sha256="1dsb9bvbg78gxrpxiddnm8diym8k0fsdgykk35icf6ww6krzzymx"; depends=[Matrix RANN]; };
+  anticlust = derive2 { name="anticlust"; version="0.8.5"; sha256="1y3mb8l9p5dh843i2k6b5j0yvq1kvykax6fxavcacsa55lfcl3y2"; depends=[Matrix RANN]; };
   antitrust = derive2 { name="antitrust"; version="0.99.26"; sha256="172y87vnifxbs4n06v3qvwlxnl3fxhfp9cp1qzm4agcvqh1j7rxz"; depends=[BB numDeriv]; };
   antiword = derive2 { name="antiword"; version="1.3.3"; sha256="1cc355sldhsbpx9wl5hkx0ydkgd3racxhkrriv58yw5xbb3b18ff"; depends=[sys]; };
   anyLib = derive2 { name="anyLib"; version="1.0.5"; sha256="1x9x58hhkkwdskmgdjv94ynh811n9w0752hh4214adl1qpn576vm"; depends=[BiocManager curl devtools httr withr]; };
@@ -6459,36 +6580,36 @@ in with self; {
   aoos = derive2 { name="aoos"; version="0.5.0"; sha256="0y92vs27i0mkpjdclqzq4j9g1axkymhi3v8xp1v6hazh35yzjkfj"; depends=[magrittr roxygen2]; };
   aopdata = derive2 { name="aopdata"; version="1.0.3"; sha256="13i8fjvqx42jslgyl271cbnpmsxqxmkrs5hiaxr5i8srrq55d60m"; depends=[checkmate curl data_table httr sf]; };
   aoristic = derive2 { name="aoristic"; version="1.1.1"; sha256="1zanf21qmnjmwzzccpdm1bwnyhv9zqjirrylfwmbpkzlmvp0a4pb"; depends=[dplyr ggplot2 lubridate openxlsx plyr scales tidyr]; };
-  aorsf = derive2 { name="aorsf"; version="0.1.3"; sha256="1qb0yfwhmk0mhszr1xvgihgh9cp01wan4dbn4wna28xd3ffyb8fv"; depends=[collapse data_table lifecycle R6 Rcpp RcppArmadillo]; };
+  aorsf = derive2 { name="aorsf"; version="0.1.5"; sha256="1a69kiji309c2anp0nqdb7n77zlbsl0aibiiazjw6zflwf8fff4l"; depends=[collapse data_table lifecycle R6 Rcpp RcppArmadillo]; };
   aos = derive2 { name="aos"; version="0.1.0"; sha256="0nkl7dkqjfp4ahwmn3vs0akx6x2brf0m5gzzzx6pf54j1qwypbhf"; depends=[htmltools jsonlite]; };
   apa = derive2 { name="apa"; version="0.3.4"; sha256="0w4cqb9fviz6k4b9cj31sgizqmrkxjr9hjdb8ap32ylzr9dw6gy0"; depends=[dplyr magrittr MBESS purrr rmarkdown stringr tibble]; };
   apaTables = derive2 { name="apaTables"; version="2.0.8"; sha256="0jy6x0z9ivqqkjihqhyg3fxyghqa9gs6q2bpxzjdnbcb3kq151vd"; depends=[boot broom car dplyr MBESS tibble]; };
   apaText = derive2 { name="apaText"; version="0.1.7"; sha256="1y3kwm6kldryqw9jb2dikvijmqxwxpkp4pw64c9pqshxjjnwfqiq"; depends=[cocor dplyr]; };
-  apache_sedona = derive2 { name="apache.sedona"; version="1.5.1"; sha256="1lcbvdw27za5g44i62a5w2pa4z319nfcircz9s46cni13yzng0hq"; depends=[cli dbplyr lifecycle rlang sparklyr]; };
+  apache_sedona = derive2 { name="apache.sedona"; version="1.6.0"; sha256="1n5qcjhcb801sjm6yanqvlxqicc2sxlsk4g5qyf1w3zc38cbz0kx"; depends=[cli dbplyr lifecycle rlang sparklyr]; };
   apc = derive2 { name="apc"; version="2.0.0"; sha256="0vh6iyxm46k8sfa1xgz0y6m619snnm8s072kml5qgiiw5s7bqnpq"; depends=[AER car ChainLadder ggplot2 ISLR lattice lmtest plm plyr reshape survey]; };
-  apcf = derive2 { name="apcf"; version="0.3.0"; sha256="194w409gz052a8gcsdn3v68sqjcwrhb1ck712nljd0iy1mgdz6cs"; depends=[Rcpp wk]; };
-  apcluster = derive2 { name="apcluster"; version="1.4.11"; sha256="0crk7skivcmlvr0njsbd8dksj5wa6qlvdp99ay5b2b40cs3xm5s4"; depends=[Matrix Rcpp]; };
+  apcf = derive2 { name="apcf"; version="0.3.1"; sha256="0vf41nmw4i9idygxji27ij2qrmkfw5c5pxax0wrnwqhkib9wvqrp"; depends=[Rcpp wk]; };
+  apcluster = derive2 { name="apcluster"; version="1.4.13"; sha256="19x1sma5pli5jl0v92c6x7jbqkigz7waaghaxi29kvvx8am5p5sy"; depends=[Matrix Rcpp]; };
   apdesign = derive2 { name="apdesign"; version="1.0.0"; sha256="041zyd7ih9nnj92jj9vb9ya1ij9lmj1dzx64q74vyiadw1ix5l66"; depends=[Matrix]; };
-  ape = derive2 { name="ape"; version="5.7-1"; sha256="0yh5wl7nydhwwc82h6yr8wcacc2f791pp05w8fg65anq309cf2cb"; depends=[digest lattice nlme Rcpp]; };
-  apercu = derive2 { name="apercu"; version="0.2.4"; sha256="046gf4dzypl6mmq7xqkyrdasq9rsjxzsii7w4nxkbn4c40kh7bf7"; depends=[pls]; };
+  ape = derive2 { name="ape"; version="5.8"; sha256="092dx0x763r6ch6pp4c4fkmnq5alrq0527p72w1wdg71g6cp5ki4"; depends=[digest lattice nlme Rcpp]; };
+  apercu = derive2 { name="apercu"; version="0.2.5"; sha256="1i6ca2dhbn9cykcvhdv5dbvg84b8dr6am7xhlihmy7dfjybbzi3b"; depends=[pls]; };
   apex = derive2 { name="apex"; version="1.0.6"; sha256="1cz51g7s4xfr7fvjq0cc9iwy9sb3wwdfrblcjr9pacj09bk2myh7"; depends=[adegenet ape phangorn]; };
-  apexcharter = derive2 { name="apexcharter"; version="0.4.2"; sha256="1ykppskq8dvn1jnw6mgcx5ja00gqxq6kvhnw9qdsgmv2fppwbvy6"; depends=[ggplot2 htmltools htmlwidgets jsonlite magrittr rlang shiny]; };
+  apexcharter = derive2 { name="apexcharter"; version="0.4.3"; sha256="0g5bg6py5a9fwqm2qsqwn6r9xcij11s4xccf6cimrx74ly4h5lff"; depends=[ggplot2 htmltools htmlwidgets jsonlite magrittr rlang shiny]; };
   aphid = derive2 { name="aphid"; version="1.3.5"; sha256="1pwr1i3wxh0l24cqp59q6n59p21v81fmgxkb4jmf50a3ggb1lcdj"; depends=[kmer openssl Rcpp]; };
   aphylo = derive2 { name="aphylo"; version="0.3-3"; sha256="1blvj2mz1pdsypxak78pmck097ryzaz24y4flzs5k5djqxgpjwnm"; depends=[ape coda fmcmc MASS Matrix Rcpp xml2]; };
   api2lm = derive2 { name="api2lm"; version="0.2"; sha256="05g0lc2cz596hh0876600lfj9d69jqcc3r3f163knn7gqlbbxs6h"; depends=[]; };
   apisensr = derive2 { name="apisensr"; version="1.0.0"; sha256="00mfmqck521wgx26az57ynmbj8j3c1vxykpqpwg17591s1jw5796"; depends=[attempt config episensr ggplot2 ggraph glue golem htmltools igraph rhandsontable rmarkdown shiny shinyjs shinymaterial]; };
   aplore3 = derive2 { name="aplore3"; version="0.9"; sha256="0af6klscsxvh4amp519b6r41bzysf61p040fj4l5706bbya1arhw"; depends=[]; };
-  aplot = derive2 { name="aplot"; version="0.2.2"; sha256="094bzrcjybs2dk2plmxf80mbx9dz1hi5m7gp8bbs5qqh03xn7wf7"; depends=[ggfun ggplot2 ggplotify magrittr patchwork]; };
+  aplot = derive2 { name="aplot"; version="0.2.3"; sha256="0shd66q2hagddc0nd96lljin0nyqwp1qq4b485r3z4wr042n5c0z"; depends=[ggfun ggplot2 ggplotify magrittr patchwork]; };
   aplotExtra = derive2 { name="aplotExtra"; version="0.0.2"; sha256="0sh3c78p37kn00hkps5ai3aqz391wwpbck2rar4rdvwclg4818my"; depends=[aplot dplyr forcats ggfun ggplot2 ggstar maftools purrr rlang tibble tidyr yulab_utils]; };
   aplpack = derive2 { name="aplpack"; version="1.3.5"; sha256="0kv6sbw8832hlfc6164bfvg1ga4hkfw4c7i11dlz7mbhrw2vqm24"; depends=[]; };
   apmx = derive2 { name="apmx"; version="1.1.1"; sha256="0i9296dvlzmaxhkp3rj2irxyjmlaazl6abcbgkc2izfn29l2d8nm"; depends=[arsenal dplyr flextable officer purrr this_path tidyr tidyselect]; };
   apng = derive2 { name="apng"; version="1.1"; sha256="0g1rs8wdcbqhyjis2r1a4d96jf0486ncnap97yjv08nk574d42wp"; depends=[bitops]; };
-  apollo = derive2 { name="apollo"; version="0.3.1"; sha256="0in0d0af3pr61zfd9fvych4vakmsz66clw4zywvy4pqj8v8q3axa"; depends=[bgw cli coda Deriv matrixStats maxLik mnormt mvtnorm numDeriv randtoolbox Rcpp RcppArmadillo RcppEigen RSGHB Rsolnp stringr tibble]; };
+  apollo = derive2 { name="apollo"; version="0.3.3"; sha256="0mlvizr7kf308y431vkdf04p64srkgd7hwbypkw68yz37r1k13za"; depends=[bgw cli coda Deriv matrixStats maxLik mnormt mvtnorm numDeriv randtoolbox Rcpp RcppArmadillo RcppEigen RSGHB Rsolnp stringr tibble]; };
   appRiori = derive2 { name="appRiori"; version="0.0.5"; sha256="1phy2v2dxk4gdzx1m2a3gghcwyb7iaj0csybpvpk3vl99difkfxd"; depends=[dplyr DT hypr markdown MASS pracma rhandsontable shiny shinythemes sortable stringr]; };
   appeears = derive2 { name="appeears"; version="1.1"; sha256="1igrbp6mgflgxn9f63d738zzhgsdsvlgwbgidlbqy82v4i4q326p"; depends=[geojsonio getPass httr jsonlite keyring memoise R6 rstudioapi sf]; };
   appleadsR = derive2 { name="appleadsR"; version="0.1.0"; sha256="19xkzykk6zdbswdkfix9nqnfgab4r9c21rqwpma1r6fjapsp81jf"; depends=[jsonlite]; };
   appler = derive2 { name="appler"; version="0.2.1"; sha256="0y0nj8ac6cm1qvbzy2w93j638s0f4mj2b1b9g2rw046rrf7maiz4"; depends=[httr jsonlite rvest]; };
-  applicable = derive2 { name="applicable"; version="0.1.0"; sha256="1n81aa5by0fd47wjksdl0zpzf0w4vgrns6iqv5i9lqs7g64zggs0"; depends=[dplyr ggplot2 glue hardhat Matrix proxyC purrr rlang tibble tidyr tidyselect]; };
+  applicable = derive2 { name="applicable"; version="0.1.1"; sha256="0n459qg3lv088f9yjym33nqi6ahq8whdbc2f0p5m1srvzbqka3mq"; depends=[dplyr ggplot2 glue hardhat Matrix proxyC purrr rlang tibble tidyr tidyselect]; };
   appnn = derive2 { name="appnn"; version="1.0-0"; sha256="0wkpr6lcd68wlzk6n622ab7sd99l837073czn4k56hw8bw9v68j3"; depends=[]; };
   apportion = derive2 { name="apportion"; version="0.0.1"; sha256="0z8b9qsxsnwy6kmkns6cgri55mvnhsfkwwmljhlp26l93m3llabc"; depends=[]; };
   approxOT = derive2 { name="approxOT"; version="1.1.1"; sha256="1l0grr9158d0lscnxd191h3vbal93sl25r982c5w32iyajcjn71h"; depends=[BH Rcpp RcppCGAL RcppEigen]; };
@@ -6498,10 +6619,10 @@ in with self; {
   appsheet = derive2 { name="appsheet"; version="0.1.0"; sha256="1csf5p9vmm0bn2kycs6ad7jzcw6c2ck6yimr7lb9nb58820s4g2f"; depends=[cli httr2 magrittr purrr rlang tibble]; };
   aprean3 = derive2 { name="aprean3"; version="1.0.1"; sha256="17rnq02sncl6rzwyln10200s43b8z1s2j0kdi9kgcb6qr51v12rv"; depends=[]; };
   aprof = derive2 { name="aprof"; version="0.4.1"; sha256="14qclp88j4ygd4vrxxpgy2s9939wcajjsqycdzpvn64ws29sdpvh"; depends=[testthat]; };
-  apsimx = derive2 { name="apsimx"; version="2.6.2"; sha256="0wmgyfrpyiqsqvb5avrakai244wnnq8w0w0njqv16g0wcq3kfff4"; depends=[DBI jsonlite knitr RSQLite xml2]; };
+  apsimx = derive2 { name="apsimx"; version="2.7.7"; sha256="18q9lynfy0y7abp2zlclp75xcixd022m9hqqaqjh6z7wy9z3rxbs"; depends=[DBI jsonlite knitr RSQLite xml2]; };
   apt = derive2 { name="apt"; version="3.0"; sha256="14njvpf6q34nffm3r9gqcszlabzbydsxqj0ln9nk4mv59izp8sqm"; depends=[car erer urca]; };
   apyramid = derive2 { name="apyramid"; version="0.1.3"; sha256="0i1wkqnf1n5x7y7i116gr7y215aibklcnhb7rm76g8wm7241y3vk"; depends=[dplyr forcats ggplot2 glue rlang scales tidyselect]; };
-  aqp = derive2 { name="aqp"; version="2.0.2"; sha256="103fbjb60ny5sarp9ixd2d40kp6j57hhn8f7s83jm3frl5vpb64g"; depends=[cluster data_table farver lattice sp stringr]; };
+  aqp = derive2 { name="aqp"; version="2.0.3"; sha256="1rpa1zhcl5j8zl3hj8pb68vzyggdmbgnl9ss3vz3z7z57hsrngc2"; depends=[cluster data_table farver lattice sp stringr]; };
   aquodom = derive2 { name="aquodom"; version="0.1.1"; sha256="11w3qf1fwa5gqbiwfq23hrw8k009xbn8rwdb5fgckykyc49lhqbk"; depends=[cachem dplyr glue httr lubridate magrittr memoise openxlsx readr rlang stringr tibble]; };
   ar_matrix = derive2 { name="ar.matrix"; version="0.1.0"; sha256="1d531hkl50szfa1q0zbp8dp1a9jli63kwvxjgc9n0ar279y47qdz"; depends=[MASS Matrix sp sparseMVN]; };
   arabic2kansuji = derive2 { name="arabic2kansuji"; version="0.1.3"; sha256="1f8ca7hwbn3vl44xrvpfb5n11rv4sbhv2ksg88kx7rk7hik5rbdi"; depends=[purrr stringr]; };
@@ -6510,17 +6631,19 @@ in with self; {
   arc = derive2 { name="arc"; version="1.4"; sha256="0wlp6c2mbsa5fygc4iy0ixgqz49zzcz2mr66sapy1nm0wri1dvdr"; depends=[arules discretization Matrix R_utils]; };
   arcgeocoder = derive2 { name="arcgeocoder"; version="0.2.0"; sha256="02bzhdz8k5c65rzx9dkwxw5v69wq8nbsxk6c6lf2v9wqhq705krp"; depends=[dplyr jsonlite]; };
   arcgis = derive2 { name="arcgis"; version="0.1.0"; sha256="0vgixd9pv312h9c2afrslrmzh2jcx4r17iki15x8i9zhhgq5dw7y"; depends=[arcgislayers arcgisutils cli httr2]; };
+  arcgisgeocode = derive2 { name="arcgisgeocode"; version="0.1.0"; sha256="0fz4gk6yml6scycrdw1fyhvrs63hp0k8li2yjym037kb91qc8b0p"; depends=[arcgisutils cli curl httr2 jsonify RcppSimdJson rlang sf]; };
   arcgislayers = derive2 { name="arcgislayers"; version="0.2.0"; sha256="0micx725r6ln7i0xnrw4543qfrynvjqhg8081vi4falj2zbniz48"; depends=[arcgisutils cli httr2 jsonify lifecycle RcppSimdJson rlang sf terra]; };
-  arcgisutils = derive2 { name="arcgisutils"; version="0.2.0"; sha256="05kx133vs99vfb69vp06vhmkg6fd3lqxw1cha30sd6annaylrsyq"; depends=[cli dbplyr httr2 jsonify Rcpp RcppSimdJson rlang sf]; };
+  arcgisplaces = derive2 { name="arcgisplaces"; version="0.1.0"; sha256="09xfwahdqf8v772g7gxalgzyd77diwzy6snlfjsrnli4f0svlzwi"; depends=[arcgisutils cli httr2 rlang wk]; };
+  arcgisutils = derive2 { name="arcgisutils"; version="0.3.0"; sha256="0553xmamgcaswnjyq0ayyfgvwl1kijrq0jan80m23kgydgi46hkv"; depends=[cli dbplyr httr2 RcppSimdJson rlang sf]; };
   archdata = derive2 { name="archdata"; version="1.2-1"; sha256="1dahfl9xdnqiwzdrff98x23k1dl19sfdqnv7jlg1xzgvhj1fhk0d"; depends=[]; };
   archeoViz = derive2 { name="archeoViz"; version="1.3.4"; sha256="12hrj059gavzydzywdn6knzyh75d5q34mi16a9jmbf2i3bm4fj5s"; depends=[cxhull ggplot2 htmlwidgets knitr mgcv plotly reshape2 shiny shinythemes svglite]; };
   archeofrag = derive2 { name="archeofrag"; version="0.8.2"; sha256="1xnfb4midmjlhq2x8mv6r0mrjbm529xnfm8y0q9wll73igg696yl"; depends=[igraph]; };
-  archetypal = derive2 { name="archetypal"; version="1.3.0"; sha256="0xih81gwfwr1x9671gpzw49v95hmnl497hahxsyvdla87n1bfpc3"; depends=[doParallel entropy geometry inflection lpSolve Matrix plot3D]; };
+  archetypal = derive2 { name="archetypal"; version="1.3.1"; sha256="1acz5fz5azhz3kq8zsxpp8k04jh2jmvlx0phcwlvvzhr0xs8lln3"; depends=[doParallel entropy geometry inflection lpSolve Matrix plot3D]; };
   archetyper = derive2 { name="archetyper"; version="0.1.0"; sha256="1d4vz7kj7n5j81fwfxvr47if8c7fdycci6n33wf8paac0v2paqli"; depends=[bannerCommenter config feather here knitr log4r ps readr rmarkdown skimr snakecase stringr testthat tidyverse]; };
   archetypes = derive2 { name="archetypes"; version="2.2-0.1"; sha256="0ibxsr173ib77gjhid91m85s8gjii4mi2w3d52q5301igv20p7r0"; depends=[modeltools nnls]; };
   archiDART = derive2 { name="archiDART"; version="3.4"; sha256="1wvjlg2rwy39czf3qqh9igk9rmk9i7pxa9yl5x9yqmsagwd1av3n"; depends=[geometry gtools sp XML]; };
-  archive = derive2 { name="archive"; version="1.1.7"; sha256="0z3xw07164knwcnhvrqs83ilihydhi11lia0nx0ckyyl0a9xdvqi"; depends=[cli cpp11 glue rlang tibble]; };
-  archiveRetriever = derive2 { name="archiveRetriever"; version="0.3.1"; sha256="0y01am255i682iaj55aiza6arlb0whqhamd09nqjrnwy4hmkbidq"; depends=[anytime dplyr ggplot2 gridExtra httr jsonlite lubridate rvest stringr tibble tidyr xml2]; };
+  archive = derive2 { name="archive"; version="1.1.8"; sha256="1ia4i59iadfvbndynk6pysnrs575s1b58gf1gpbxqra2sf0niskm"; depends=[cli glue rlang tibble]; };
+  archiveRetriever = derive2 { name="archiveRetriever"; version="0.4.0"; sha256="0zjb4i39s3xkb05h9smk9lwkap7w8gizs5i3ii1qgz2ahi07pywy"; depends=[anytime dplyr ggplot2 gridExtra httr jsonlite lubridate rvest stringr tibble tidyr xml2]; };
   archivist = derive2 { name="archivist"; version="2.3.6"; sha256="0q1qysack30xzxdbvvi56rk7r85hsj4ghls9r70ki7bl3rqwr4c9"; depends=[DBI digest flock httr lubridate magrittr RCurl RSQLite]; };
   archivist_github = derive2 { name="archivist.github"; version="0.2.6"; sha256="092fzi505vx9xbk41m86d0isxna42iflp7q2kjiqa6z1ccvim2yx"; depends=[archivist digest git2r httr jsonlite]; };
   arcpbf = derive2 { name="arcpbf"; version="0.1.0"; sha256="0mmr5q5j4i9qq8m7ybgjz6m40g0qq0z24cznygrsi01kas11s8qd"; depends=[rlang]; };
@@ -6543,16 +6666,15 @@ in with self; {
   argonDash = derive2 { name="argonDash"; version="0.2.0"; sha256="1wykr7y5375g1nb18ynybccxmd948xrr0gdwxxqsfjf782vlgd2d"; depends=[argonR htmltools shiny]; };
   argonR = derive2 { name="argonR"; version="0.2.0"; sha256="15hlvansqnky9bnq4r7xza3hb1hzylmhz8117wxz9lxa1wiky2is"; depends=[htmltools rstudioapi]; };
   argosfilter = derive2 { name="argosfilter"; version="0.70"; sha256="1cqhpq5z807azpc45d00031bhw5q69111jsblyqdp5bg6qinrj9c"; depends=[]; };
-  argparse = derive2 { name="argparse"; version="2.2.2"; sha256="0vc59854fxnznjcrzy5kdmnbyk602ml92jk15rxgndfawvsrnb5n"; depends=[findpython jsonlite R6]; };
-  argparser = derive2 { name="argparser"; version="0.7.1"; sha256="0xcl0ivsbc4iw8s7027q4cx68j6s5lihbby0xa9pmlv4wjmcvdr6"; depends=[]; };
+  argparse = derive2 { name="argparse"; version="2.2.3"; sha256="0x16zp6jh9asyval1kwkxzavwjhx3a47xzlc593kw1hz4bhw8355"; depends=[findpython jsonlite R6]; };
+  argparser = derive2 { name="argparser"; version="0.7.2"; sha256="0j9hnbyzbyzclgm4qwyqqkrqcrblxfm190489sgcvr5i7vg2smr8"; depends=[]; };
   argus = derive2 { name="argus"; version="0.1.1"; sha256="1qg1nphy7jn92zqx1lqg68l5dhpwa4b5407mkwwrsdy5x2r0x7s2"; depends=[Runuran]; };
   ari = derive2 { name="ari"; version="0.3.5"; sha256="03w99c918jp23d0kl26vx4m7xjicpgwl5rhn9d0fsm4kvv7j87li"; depends=[hms progress purrr rmarkdown rvest text2speech tuneR webshot xml2]; };
   aricode = derive2 { name="aricode"; version="1.0.3"; sha256="02nrw66jfpzf6dy0zy21sbdjxjc8c11iv9fkjqj5akzb7wskk9qh"; depends=[Matrix Rcpp]; };
   arima2 = derive2 { name="arima2"; version="3.1.0"; sha256="0sfg7h7rvvrsa2bjmipvm49cr26imnaf3h53czgkprw4knarx8z3"; depends=[ggplot2]; };
   arkdb = derive2 { name="arkdb"; version="0.0.18"; sha256="1zq4nrxi7h265zs10ay95s95s56nkwxfzljvbglj03adsb1fxz6s"; depends=[DBI]; };
   arkhe = derive2 { name="arkhe"; version="1.6.0"; sha256="0d6di3a17zjr468prj2bpi1ls0cqg46gks10irn2qdjifwiy6r4z"; depends=[]; };
-  arm = derive2 { name="arm"; version="1.13-1"; sha256="0dz9dnsky77da2mc198dr3600kz9vk75z1iihjarnsdrq68a4bf0"; depends=[abind coda lme4 MASS Matrix nlme]; };
-  armada = derive2 { name="armada"; version="0.1.0"; sha256="191iwf5y1za3wssawkyi9jcingfqqxcvv88hglpw6j7y3x5f47hf"; depends=[anapuce circlize ClustOfVar ComplexHeatmap doParallel FAMT glmnet impute mvtnorm qvalue VSURF]; };
+  arm = derive2 { name="arm"; version="1.14-4"; sha256="1g8732naydqyv5pq1fkyb1i6qddv62jdmn2ys5lbdvx2zq5cnns2"; depends=[abind coda lme4 MASS Matrix nlme]; };
   armspp = derive2 { name="armspp"; version="0.0.2"; sha256="098c59hdzr4ly8sx72xkcbjmiz5y65id1slsscwjji1yssb23lqq"; depends=[Rcpp]; };
   arnie = derive2 { name="arnie"; version="0.1.2"; sha256="14xkgyfn9zvkbgram15w7qzqc5pl1a8ig66cif7a79najrgd914r"; depends=[]; };
   aroma_affymetrix = derive2 { name="aroma.affymetrix"; version="3.2.2"; sha256="0h4w7i7hrkfvlkphxz9c0hbaxz455pzx0sb7y3zvsh9ykr3wkq8q"; depends=[aroma_apd aroma_core future listenv MASS matrixStats R_cache R_devices R_filesets R_methodsS3 R_oo R_utils]; };
@@ -6563,18 +6685,19 @@ in with self; {
   arrApply = derive2 { name="arrApply"; version="2.2"; sha256="0bp30622md9zzdgv9g1kqp5k450cd5yzpqji51wwcjp8l347fb6y"; depends=[Rcpp RcppArmadillo]; };
   arrangements = derive2 { name="arrangements"; version="1.1.9"; sha256="0nrlyxgn6667l2rb1q5rvps1anld9aq88qqr3ch2i6zchnqxrdg9"; depends=[gmp R6]; };
   arrayhelpers = derive2 { name="arrayhelpers"; version="1.1-0"; sha256="02rl530qxi1idiqpmzg5wr9vl5c7phizhpj64k5pn8xq9zfxbpaz"; depends=[svUnit]; };
-  arrow = derive2 { name="arrow"; version="15.0.1"; sha256="070pp0p5h1ij7pg34l5grrx4vwfihagnvnk4kj7l3w0gh8y88ibz"; depends=[assertthat bit64 cpp11 glue purrr R6 rlang tidyselect vctrs]; };
-  ars = derive2 { name="ars"; version="0.6"; sha256="0zs1rk3i7pc9wcvxrvjcls194mfbvmkz7cb6pwd1cm3fzjwsyxsp"; depends=[]; };
+  arrow = derive2 { name="arrow"; version="16.1.0"; sha256="1vz7vjm8j1k1ng2za3y1qdsrzhbx2p6zy48vsas6bkdywxp5ihb6"; depends=[assertthat bit64 cpp11 glue purrr R6 rlang tidyselect vctrs]; };
+  arrowheadr = derive2 { name="arrowheadr"; version="1.0.1"; sha256="19xya0p6nnw62s43cvv6bcjdm1nffil37192g586jxnkqwlw23bj"; depends=[bezier purrr]; };
+  ars = derive2 { name="ars"; version="0.7"; sha256="03hgbyg667d0c22am5r45g6p6l5fii3x760khajjjcy8y0mqrq11"; depends=[]; };
   arse = derive2 { name="arse"; version="1.0.0"; sha256="0ssaalc058m09gfcr1n0s729rx2plia3zkhlynj67drclyvhyb0i"; depends=[dplyr pracma]; };
   arsenal = derive2 { name="arsenal"; version="3.6.3"; sha256="0qvs3ld28djnjnggdhqjwq8sbv8zz322qahlvf7dnx35yqf6xkms"; depends=[knitr]; };
   artfima = derive2 { name="artfima"; version="1.5"; sha256="1nqsq9fsqk9kag9n7i2r9yvf578nkdfrkkv7qy8650prka0jca2p"; depends=[gsl ltsa]; };
   arthistory = derive2 { name="arthistory"; version="0.1.0"; sha256="01jw0r3pmwwrs5cb31pjyf5cygnfqzyim2dw45lqd0yywkmc5y3h"; depends=[]; };
   artpack = derive2 { name="artpack"; version="0.1.0"; sha256="124lybfsxy62qdwr14w8w88kn4fylfff6qd2xy07x2g3lncf6497"; depends=[cli dplyr knitr purrr rlang stringr tibble]; };
   arules = derive2 { name="arules"; version="1.7-7"; sha256="183isw4sy5gv5fxajiy4pm5p3nfd1pffa4h8sisl2nrw2rig9na2"; depends=[generics Matrix]; };
-  arulesCBA = derive2 { name="arulesCBA"; version="1.2.5"; sha256="13p876k3wg84khvzf6kkjpna0l9yjxyq43nh9dnpma7sidq5ldi0"; depends=[arules discretization glmnet Matrix]; };
+  arulesCBA = derive2 { name="arulesCBA"; version="1.2.7"; sha256="0d8nfqbk3y4vw5n3xnns2gy9jwj07a1zbaag9n0hmxrcs8m5ml83"; depends=[arules discretization glmnet Matrix]; };
   arulesNBMiner = derive2 { name="arulesNBMiner"; version="0.1-8"; sha256="0kqvi7dzq3mrn6cq22gwxh4p54mgfn9s1sd2cfnbw1f9zp078lsn"; depends=[arules rJava]; };
   arulesSequences = derive2 { name="arulesSequences"; version="0.2-30"; sha256="1bnsgjjwrp1n5szhlyg3lhrhcz0sgdxsfdilbi5id9jbdkq9632a"; depends=[arules]; };
-  arulesViz = derive2 { name="arulesViz"; version="1.5-2"; sha256="0nvaqqc1k1zxzdqmrln1lhiqmrm98kg9rfsga9qf80cpcvxm79x5"; depends=[arules dplyr DT ggplot2 ggraph igraph plotly scatterplot3d seriation tibble tidyr vcd visNetwork]; };
+  arulesViz = derive2 { name="arulesViz"; version="1.5.3"; sha256="1alma9fk92y55zrxr1a5ri2gpkn8kp2wbc3i2vqkmwj48za1a29j"; depends=[arules dplyr DT ggplot2 ggraph igraph plotly scatterplot3d seriation tibble tidyr vcd visNetwork]; };
   asaur = derive2 { name="asaur"; version="0.50"; sha256="0c1rgic76w3i2xhna7i52lyc0p01s5b1mxyn55gqw6i19v9mq0b3"; depends=[]; };
   asbio = derive2 { name="asbio"; version="1.9-7"; sha256="05as9c0x20wyzzysbpr4mabyfbvhy0c0irdndv33j73psish15y2"; depends=[deSolve gWidgets2 gWidgets2tcltk lattice multcompView mvtnorm pixmap plotrix scatterplot3d]; };
   ascentTraining = derive2 { name="ascentTraining"; version="1.0.0"; sha256="1dwmr33jc2fp9x51kzlqa4vib7xmzvz9a7qlfgvhxhld2bxlrrgi"; depends=[]; };
@@ -6593,27 +6716,22 @@ in with self; {
   askgpt = derive2 { name="askgpt"; version="0.1.3"; sha256="1mi42jvnxrm9xhnrps540hmgi3nd3g9g7pjrkcgzmyj58ip98r66"; depends=[callr cli dplyr glue httr2 jsonlite rappdirs rlang]; };
   askpass = derive2 { name="askpass"; version="1.2.0"; sha256="1vrcb69gf5hc8rggc9m7wv19crz5mkl7f08cipy0ykckh6bkc8mr"; depends=[sys]; };
   aslib = derive2 { name="aslib"; version="0.1.2"; sha256="1hy0ncanc3mb20yrby8s9hd8v2fg3x41vkj0jwl2b8znzl5n5b2n"; depends=[batchtools BBmisc checkmate corrplot data_table ggplot2 llama mlr parallelMap ParamHelpers plyr reshape2 RWeka stringr yaml]; };
+  asm = derive2 { name="asm"; version="0.2.0"; sha256="0irxfkhd344jk31lwp6zgvwpgi6v72y6xbpp5q20zj8220ck4ms8"; depends=[fdrtool Iso MASS pracma quantreg]; };
   asmbPLS = derive2 { name="asmbPLS"; version="1.0.0"; sha256="08f4128abvy9pdkbdgiqnhm2v7f79lqbzp1132h52zq2n9wzxzmy"; depends=[ggplot2 ggpubr Rcpp RcppArmadillo]; };
   asnipe = derive2 { name="asnipe"; version="1.1.17"; sha256="01wv5pi44s2qzn33qcm4404ijqrwmqfrgchd88s7bwmdl47h3d77"; depends=[MASS Matrix]; };
-  aspace = derive2 { name="aspace"; version="4.1.0"; sha256="1k6s7wfjxzp3chd33r4449bzpnlb1yizlqmwvmpfbydjw6zcv3lq"; depends=[Hmisc splancs]; };
+  aspace = derive2 { name="aspace"; version="4.1.2"; sha256="163fglx1k7z38xqlgmdqgkzf2sp3xqi756iddw7kj06l6f389yx2"; depends=[Hmisc splancs]; };
   aspect = derive2 { name="aspect"; version="1.0-6"; sha256="13pb1pslyka706v13b7hdrzzn5bxmj2l5irpd9f1pm1n8a1ivrrl"; depends=[]; };
   aspi = derive2 { name="aspi"; version="0.2.0"; sha256="0rhvxw243vvdv3hxa6pi343gcjc2cbxq1jzqirl9k1l4i3897l87"; depends=[]; };
   aspline = derive2 { name="aspline"; version="0.2.0"; sha256="1a68x6jvsaxviy2w361f19iqzsdsaf9kcqw5cknf4yz9fvkqhjny"; depends=[dplyr ggplot2 magrittr mgcv Rcpp rlang splines2 tidyr]; };
-  asremlPlus = derive2 { name="asremlPlus"; version="4.4.27"; sha256="1xbczpqfa13jsmiavm3r75d2phjg3ziikd3i1700q6fmpbxlfysi"; depends=[dae devtools doParallel dplyr foreach ggplot2 nloptr qqplotr RColorBrewer reshape2 rlang sticky stringr]; };
+  asremlPlus = derive2 { name="asremlPlus"; version="4.4.32"; sha256="0javb5hlg007jb30sdv48hqa2yfdjmjr8vpynm6x02npz8kn528d"; depends=[dae devtools doParallel dplyr foreach ggplot2 nloptr qqplotr RColorBrewer reshape2 rlang sticky stringr tryCatchLog]; };
   r_assert = derive2 { name="assert"; version="1.0.1"; sha256="0n5l48yb0djl6rdj50p1dslpw3c5kbi15yz6z6rdgic575gjwzdc"; depends=[]; };
   assertable = derive2 { name="assertable"; version="0.2.8"; sha256="1cciil1nzxd8gbj49w99jiv077lbpb59vx7bmb4p218aj2h5hqq4"; depends=[data_table]; };
   assertions = derive2 { name="assertions"; version="0.1.0"; sha256="18926pk2g0hc4dyzm1ghp69sgj7mdx8vzi1vykyxbk0046sg53wp"; depends=[cli glue rlang]; };
-  assertive_base = derive2 { name="assertive.base"; version="0.0-9"; sha256="07m0ddz092bgbl2fn1yk932h0iajdcqkri632477wl5a1q5r3w2b"; depends=[]; };
-  assertive_files = derive2 { name="assertive.files"; version="0.0-2"; sha256="02pfz8j5vwcj5kl6zca46894li7lxwnlrr29j922f14ay6kdssmy"; depends=[assertive_base assertive_numbers]; };
-  assertive_matrices = derive2 { name="assertive.matrices"; version="0.0-2"; sha256="16sykzcndv6y2d43x6v9n7m95kv76364h39kh10w4z0xw6ksfqil"; depends=[assertive_base]; };
-  assertive_models = derive2 { name="assertive.models"; version="0.0-2"; sha256="0bn4j4v5qvb2d672cgri61p8d9v258pmz35y3lvm6b9mdxwdi9mr"; depends=[assertive_base]; };
-  assertive_numbers = derive2 { name="assertive.numbers"; version="0.0-2"; sha256="0jc3ss64j4m7bjydhagwwmka5n7c72vpw4kfcch0m5jvkq5qrqds"; depends=[assertive_base]; };
-  assertive_sets = derive2 { name="assertive.sets"; version="0.0-3"; sha256="1cqvh2syvh5b6d85h601zjmsdbbf3h8q98ids4dfl4frdshpasc7"; depends=[assertive_base]; };
   assertr = derive2 { name="assertr"; version="3.0.1"; sha256="0g7h88kkls6v1nfzbar40y56yv3lkqb7vrcy63xqgc99zcf8k4bc"; depends=[dplyr MASS rlang]; };
   assertthat = derive2 { name="assertthat"; version="0.2.1"; sha256="17wy5bdfzg73sg2clisg1k3zyn1adkj59x56m5nwia2k8z67zkw5"; depends=[]; };
-  assessor = derive2 { name="assessor"; version="1.0.0"; sha256="16159dwdpbk38319143kmb78fq64zi1szspsn5ijqwvcwyzi88ca"; depends=[MASS tweedie VGAM]; };
+  assessor = derive2 { name="assessor"; version="1.1.0"; sha256="1qpa2fd1ajk395x4chmarj6l50m4jaf5951qy1a79ncaa8f8g3x9"; depends=[MASS np tweedie VGAM]; };
   assignPOP = derive2 { name="assignPOP"; version="1.3.0"; sha256="0p282yyszjamvzfsrjhy5c4jbfixvf4fafj6k47k2dgpx6wsdrqx"; depends=[caret doParallel e1071 foreach ggplot2 MASS randomForest reshape2 rlang stringr tree]; };
-  assignR = derive2 { name="assignR"; version="2.4.0"; sha256="01lsmzqqy56i9b5yyiyd8njs8nl4qznn6h4rkyizcjalch6sy4rl"; depends=[geosphere mvnfast rlang terra]; };
+  assignR = derive2 { name="assignR"; version="2.4.1"; sha256="1ml8yk9a8rm05whcygaxha8lrrp0npr50fvsb3pcdikxing1khdm"; depends=[geosphere mvnfast rlang terra]; };
   assist = derive2 { name="assist"; version="3.1.9"; sha256="0n2348hld38jg1z8axaqs000qczbwbpq5yq5sshfn9k08p5b1szk"; depends=[lattice nlme]; };
   assocInd = derive2 { name="assocInd"; version="1.0.1"; sha256="16yzgvlqbapjhvzm5nw8vfrhh8mp9llnhck4bpgmszyrh93z1ha5"; depends=[]; };
   assortnet = derive2 { name="assortnet"; version="0.20"; sha256="15qah885jjiwxrf1bhmbjpsamgylmy8cwjbd3w0di7n8j4zv6gwr"; depends=[]; };
@@ -6622,7 +6740,7 @@ in with self; {
   aster = derive2 { name="aster"; version="1.1-3"; sha256="1piimmrsvhbps8ld6vjjg82kf8pm5nwl91437dglid802p51pwlm"; depends=[trust]; };
   aster2 = derive2 { name="aster2"; version="0.3"; sha256="17d200sg0vn1fj6lb480dhszm70q6ipjldilb3x0jp72hiczakk9"; depends=[Matrix]; };
   astroFns = derive2 { name="astroFns"; version="4.2-1"; sha256="0c81q9xddd9m2lhbv7r2aq1w262vjamcv8qg4mgrndww8n6vf8zn"; depends=[]; };
-  astrochron = derive2 { name="astrochron"; version="1.2"; sha256="1wkc8314iyhkdg1y9gr1wzqj9h67n3kqq8wiiq9n2xmgly9b40sz"; depends=[doParallel fields foreach IDPmisc iterators multitaper palinsol viridisLite]; };
+  astrochron = derive2 { name="astrochron"; version="1.3"; sha256="1vviz16yfqnqkvrb0sb7348a7xqvqi3cfdyxhlksm08g4rr3w8ar"; depends=[doParallel fields foreach IDPmisc iterators multitaper palinsol viridisLite]; };
   astrodatR = derive2 { name="astrodatR"; version="0.1"; sha256="00689px4znwmlp6qbj6z2a51b7ylx1yrrjpv6zjkvrwpv6lyj9fw"; depends=[]; };
   astsa = derive2 { name="astsa"; version="2.1"; sha256="0rnbacq5vbnlzfssj13ixgkg0d1wixh2m3dcsi66c63wx65rm3d3"; depends=[]; };
   asus = derive2 { name="asus"; version="1.5.0"; sha256="05rsbakby0w3xf5zaq5flp4if31x8fnm1l0n1r51ympw4wzzqjh5"; depends=[wavethresh]; };
@@ -6637,7 +6755,7 @@ in with self; {
   ata = derive2 { name="ata"; version="1.1.1"; sha256="08wcnfkbcq2al5ivdjkrjr8alaz0026992ra3ihyw6sd74mcracx"; depends=[lpSolve]; };
   atable = derive2 { name="atable"; version="0.1.14"; sha256="1dyg7zc19518dp3yxgyhcfklkmard9iwjkbnsl6sx5wkyk3s0vin"; depends=[DescTools doBy effsize Hmisc plyr reshape2 settings]; };
   atakrig = derive2 { name="atakrig"; version="0.9.8.1"; sha256="0dzqghs2358hqyklvfblil5ww9d5nmx406invlx5fgqy4k0zcyzf"; depends=[doSNOW FNN foreach gstat MASS Rcpp sf snow terra]; };
-  atime = derive2 { name="atime"; version="2024.3.5"; sha256="1p4cp24lrmpjfmvcn8a4f5b8w4ci5ibcnhfgkxg9kp373dnxcl4n"; depends=[bench data_table git2r lattice]; };
+  atime = derive2 { name="atime"; version="2024.4.23"; sha256="0sh98yvzm4l2zzjsgw6g1hi0valn51lm5jm0c66swy83mgia66ny"; depends=[bench data_table git2r lattice]; };
   atlas = derive2 { name="atlas"; version="1.0.0"; sha256="02wm22j40llmdi6z3rzgbc5fpkzmjfq0xar33bypvj1dx1zxygnd"; depends=[httr testthat]; };
   atmopt = derive2 { name="atmopt"; version="0.1.0"; sha256="1h79ngq1236gz4w29fs3nj46a3m1x8a28z3xnhc6wn3a46cf8zzi"; depends=[DoE_base gtools hierNet]; };
   atom4R = derive2 { name="atom4R"; version="0.3-3"; sha256="08n9apmliwri1vyqwfvyqi7m8b9nj7zpi1vg8gcqlg17skxndm2m"; depends=[httr jsonlite keyring R6 rdflib readr XML zip]; };
@@ -6656,7 +6774,7 @@ in with self; {
   audit = derive2 { name="audit"; version="0.1-2"; sha256="0c8b94a5am196sbvmjxya7cg4aq6fcxr8c958fxx3jmy9r4hn6s2"; depends=[]; };
   auditor = derive2 { name="auditor"; version="1.3.5"; sha256="04fhgz04gl0hjw2vjymhi9pirc82pshlpv8nif8l3zclpgl795lq"; depends=[DALEX ggplot2 ggrepel gridExtra hnp scales]; };
   audrex = derive2 { name="audrex"; version="2.0.1"; sha256="1ifijkbqvdjp1si14p80mbqhq7sby8qgzr181agm3da1nkmic3vp"; depends=[fANCOVA ggplot2 imputeTS lubridate Metrics modeest moments narray purrr rBayesianOptimization readr scales stringr tictoc xgboost]; };
-  audubon = derive2 { name="audubon"; version="0.5.1"; sha256="17x4pk2anmj5gyf6wdg9n5zyqzbmp9hvj04ngv17jxv5b047pjc9"; depends=[dplyr magrittr Matrix memoise purrr readr rlang stringi V8]; };
+  audubon = derive2 { name="audubon"; version="0.5.2"; sha256="1j6v05qal9f6ci1awb5c1vdl59sdp0472kdm5azvjsibic6bi2m8"; depends=[dplyr magrittr Matrix memoise purrr readr rlang stringi V8]; };
   augSIMEX = derive2 { name="augSIMEX"; version="3.7.4"; sha256="0620yxqi160ar91shl5macn890zpc60c9nqy4w8i6m7sskv6gl3z"; depends=[Formula MASS nleqslv Rcpp]; };
   augmentedRCBD = derive2 { name="augmentedRCBD"; version="0.1.7"; sha256="1gnl6i81m5w7hxi147ycr963sm661xscw0xb6wm9vcr043ddvx3p"; depends=[cli dplyr emmeans flextable ggplot2 mathjaxr moments multcomp multcompView numform officer openxlsx Rdpack reshape2 stringi]; };
   auk = derive2 { name="auk"; version="0.7.0"; sha256="055blr0pbhjy0c20xh21pl1cndvxy742hmn4nlddzvd1phknfkzz"; depends=[assertthat countrycode dplyr httr magrittr readr rlang stringi stringr tidyr]; };
@@ -6685,10 +6803,11 @@ in with self; {
   automagic = derive2 { name="automagic"; version="0.5.1"; sha256="1mmm6kj6mxrn3s4v8ryszkxr9z7bh9cvhin7xjq111fkwly7wjkq"; depends=[dplyr formatR knitr magrittr purrr remotes yaml]; };
   automap = derive2 { name="automap"; version="1.1-9"; sha256="0hrsdynjxv0n5n1pbdk05rgrcwfd0g5p9pgdbicx4ljk73nhl1zk"; depends=[ggplot2 gstat lattice reshape sf sp stars]; };
   automl = derive2 { name="automl"; version="1.3.2"; sha256="1nrg8q3y6rv69nmnsylg8rps4b4prx46j5a8ljlr24yc34504ck3"; depends=[]; };
-  autonewsmd = derive2 { name="autonewsmd"; version="0.0.6"; sha256="08y9cslk506bc2nmrzmzln7927yhdzghsfkkldgx94cm4ly6jagy"; depends=[data_table git2r magrittr R6 rmarkdown]; };
+  autonewsmd = derive2 { name="autonewsmd"; version="0.0.8"; sha256="1wax4npyzkxjl1avgg6m275744nnpbv3qk8sbjg0dkqp58cb33lx"; depends=[data_table git2r magrittr quarto R6]; };
   autoplotly = derive2 { name="autoplotly"; version="0.1.4"; sha256="1z577jvadgiz028z7x0786d3qhlkrvv9i34xmllizvg94kxv3bl1"; depends=[ggfortify ggplot2 plotly]; };
   autoshiny = derive2 { name="autoshiny"; version="0.0.3"; sha256="0hwrsc08lq6zyx869qmiyd0fc83wqfyzx65a3s2j2xnzf4wwzgbq"; depends=[shiny]; };
-  autostsm = derive2 { name="autostsm"; version="3.1.4"; sha256="1kmdhm4g981289w4kprxawlr8bx38dgfdc2lyl6ml7xvkbxwvkfd"; depends=[data_table doSNOW foreach forecast ggplot2 ggrepel gridExtra kalmanfilter lmtest lubridate maxLik progress sandwich strucchange]; };
+  autostats = derive2 { name="autostats"; version="0.4.1"; sha256="1283m1b5bllzfsilsjkk0sj8l1wsjpvnq1vk7r20gnd8nf6kybmn"; depends=[broom broom_mixed Ckmeans_1d_dp data_table dials dplyr framecleaner ggeasy ggplot2 ggthemes gtools igraph janitor jtools magrittr nnet parsnip party patchwork presenter purrr recipes recosystem rlang rlist rsample stringr tibble tidyr tidyselect tune workflows xgboost yardstick]; };
+  autostsm = derive2 { name="autostsm"; version="3.1.5"; sha256="0vaddh04p2sj1j0a55ny4imraplnflcv2dw365cn9r4bgcj8xhh7"; depends=[data_table doSNOW foreach forecast ggplot2 ggrepel gridExtra kalmanfilter lmtest lubridate maxLik progress sandwich strucchange]; };
   autothresholdr = derive2 { name="autothresholdr"; version="1.4.2"; sha256="1fkny4i1fpy5fkya52cw4bzpdi236smq4qq23q1zdba3srmpyzsl"; depends=[checkmate ijtiff magrittr purrr Rcpp rlang strex stringr]; };
   av = derive2 { name="av"; version="0.9.0"; sha256="0zyp6dh4kl717w68i417byya5j43h44rql11ihi88x47c9dxbirp"; depends=[]; };
   available = derive2 { name="available"; version="1.1.0"; sha256="1j6z0zwd7xjk6j6wk74fjq3nhx9gk7ys09i543gakcskmdm59dw4"; depends=[cli clisymbols crayon desc glue jsonlite memoise SnowballC stringdist tibble tidytext yesno]; };
@@ -6697,6 +6816,7 @@ in with self; {
   avesperu = derive2 { name="avesperu"; version="0.0.2"; sha256="0s92sdxhgc8d5qwv3frig87j4fxnj28kaykrqiqvdgjwjd6yhgbh"; depends=[]; };
   avidaR = derive2 { name="avidaR"; version="1.2.0"; sha256="12z2cs5cayj72c6nx5y086m823grcmhq5m24aaqx4qn36lb6cdbb"; depends=[base64enc circlize curl dplyr httr R6 RColorBrewer readr tibble tidyr xml2]; };
   avocado = derive2 { name="avocado"; version="0.1.0"; sha256="0qy9ripwydm3f70rpxwk0asc7r25hg8jcbrr4rz8bxs93q1lsz8x"; depends=[]; };
+  avotrex = derive2 { name="avotrex"; version="1.2.0"; sha256="013j4av3hwxfh68myfpvxhzs2zsr470x81j90hh8bqmjs3a1wmlf"; depends=[ape doParallel doSNOW dplyr foreach phytools snow stringr tidytree TreeTools]; };
   aweSOM = derive2 { name="aweSOM"; version="1.3"; sha256="0nfbn7rgazvc5nljf8i7bwpxy5j0w404bnrvi02k97jvmrra1dyb"; depends=[bslib cluster data_table DT e1071 fields foreign ggplot2 haven htmltools htmlwidgets kernlab kohonen rclipboard RColorBrewer readODS readxl rmarkdown shiny viridis]; };
   aweek = derive2 { name="aweek"; version="1.0.3"; sha256="14n1xmargr89mf4n0bdzdwn7qh314a1xg1bid5px762vk0qf4fws"; depends=[]; };
   awinR = derive2 { name="awinR"; version="0.1.0"; sha256="09cp9wfb4aslfddlk72n0kawfghyn1fcjya5afjhiffwww5ps3iy"; depends=[jsonlite]; };
@@ -6719,35 +6839,36 @@ in with self; {
   azlogr = derive2 { name="azlogr"; version="0.0.6"; sha256="1vn1b6sz7gp6pr7m2mspppjxxb9b54rc9am99lsilkg90cv1ba8h"; depends=[caTools digest httr jsonlite logger]; };
   azuremlsdk = derive2 { name="azuremlsdk"; version="1.10.0"; sha256="0s64kjrmcdnjdwh5mdm5vxgvrl9ghvfv6bair7qfzz32jlab99m0"; depends=[DT ggplot2 htmltools plyr reticulate rstudioapi servr shiny shinycssloaders]; };
   b64 = derive2 { name="b64"; version="0.1.0"; sha256="1zj5zfd5dpzmzzkh2x51qpdfl1dzbimsd83fp8fsr6yh66c66xzq"; depends=[blob cli rlang]; };
+  bRacatus = derive2 { name="bRacatus"; version="2.0.0"; sha256="0jz5c1sbnnl5db0iiqh1paq55rwsbpz6srshcf4yf3ki58m3a9sm"; depends=[data_table geojsonio jsonlite plotfunctions raster rgbif rnaturalearth sf sp]; };
   bReeze = derive2 { name="bReeze"; version="0.4-4"; sha256="1zx933iaxqp91s41dham2chzf0f4rxs0d1ww564gg352fs3gi1vn"; depends=[lubridate]; };
   bSi = derive2 { name="bSi"; version="1.0.0"; sha256="06ncvxf75khbwv5xg399717n3havj2ip0z07wzh9sjzx5irfw42v"; depends=[cowplot dplyr ggplot2 ggpubr tibble tidyr]; };
-  bSims = derive2 { name="bSims"; version="0.3-0"; sha256="055hqa5w4gaqz9mms9yj85wg0pgl6xa568nbjxm4qc75rsy91qg5"; depends=[deldir intrval MASS mefa4 pbapply]; };
-  bWGR = derive2 { name="bWGR"; version="2.2.6"; sha256="0ly3ll52l3202xczvw7zy5ajkqd7wg0c6g749x6gzv47bisbykmj"; depends=[Matrix Rcpp RcppEigen]; };
+  bSims = derive2 { name="bSims"; version="0.3-2"; sha256="1aflarz69rk4dlrp5gmgi6hs6mx0m8xhpp7ppv6m5gsjf8g18iaf"; depends=[deldir intrval MASS mefa4 pbapply]; };
+  bWGR = derive2 { name="bWGR"; version="2.2.9"; sha256="02g5dm23diihrgggk1azl8ds2hyrc950swl6rianbh52bbznr58g"; depends=[Matrix Rcpp RcppEigen]; };
   baRcodeR = derive2 { name="baRcodeR"; version="0.1.7"; sha256="199cdbwphpz6ds19841s32bm2rjd7b6v484bvaskw94z0d8bcn6w"; depends=[DT miniUI qrcode rstudioapi shiny]; };
-  baRulho = derive2 { name="baRulho"; version="1.0.6"; sha256="17g3xs0lxdpbbi52x27r00vfdgxdhjblyy939scm3c5z01fhxxnb"; depends=[fftw pbapply seewave tuneR warbleR]; };
   babel = derive2 { name="babel"; version="0.3-0"; sha256="1iwvx69051yhlxbcl6bypvc3mcih0q8bf3i29r3i79356hp12xqa"; depends=[edgeR]; };
   babelgene = derive2 { name="babelgene"; version="22.9"; sha256="1ql5r1chl5ajzy9ppcnk755ia3m2a8n08m837dnm2ll3nzf02rnf"; depends=[dplyr rlang]; };
   babelmixr2 = derive2 { name="babelmixr2"; version="0.1.2"; sha256="0b6xa7hwx9h5n7z8xw4q7shwpzjf7kf9cfrsy68qvm8mhns0j9x1"; depends=[checkmate cli digest lotri nlmixr2 nlmixr2est nonmem2rx qs Rcpp RcppArmadillo RcppEigen rex rxode2 rxode2parse]; };
   babelwhale = derive2 { name="babelwhale"; version="1.2.0"; sha256="0m5q83ykz5w1fsjsk2vyrnv21cg4n075kbvfvw4k22c61p78shdl"; depends=[crayon digest dplyr dynutils fs glue processx purrr]; };
-  babsim_hospital = derive2 { name="babsim.hospital"; version="11.8.8"; sha256="03kd9kvqq0jy1f7qjbbmm5zn8w0nqwwdpan64ymyzmsxb59407cj"; depends=[checkmate curl data_table dplyr ggplot2 golem igraph lubridate markovchain padr plyr rvest scales simmer slider SPOT testthat xml2]; };
   babynames = derive2 { name="babynames"; version="1.0.1"; sha256="1gcpd6lncqwjz05z98ra6hcc8q966l2594ylkg50avndild89n3h"; depends=[tibble]; };
   babynamesIL = derive2 { name="babynamesIL"; version="0.0.2"; sha256="0g8p5afhsh0piip0i8jxd1s52bk4zb1z5bf3chdkcbxr8z0d42f6"; depends=[tibble]; };
   bacistool = derive2 { name="bacistool"; version="1.0.0"; sha256="1hby2bmxbc8qgjzgkp2flv89lpzzvg3vr7s98989ayjmv4vgmqaf"; depends=[rjags]; };
   backShift = derive2 { name="backShift"; version="0.1.4.3"; sha256="1dhmq51w07vcqlngsb04ip0wqbgqq2xdfdm1w82r082f07ywqb16"; depends=[clue ggplot2 igraph MASS matrixcalc reshape2]; };
-  backbone = derive2 { name="backbone"; version="2.1.3"; sha256="1ap95s9156ivywbmzyz1f82qhyj5dy3kn5bg596kqj61dgi6zak0"; depends=[igraph Matrix Rcpp]; };
+  backbone = derive2 { name="backbone"; version="2.1.4"; sha256="05b493cfzi85hnczl56d81sc7j5xfwybsmnc4i4q984sw0gpgvll"; depends=[igraph Matrix Rcpp]; };
   backpipe = derive2 { name="backpipe"; version="0.2.3"; sha256="12k2cv9x8h0b002m9c8g4vj5a7chp4b8jqz377ia0diqw89dydpm"; depends=[]; };
-  backports = derive2 { name="backports"; version="1.4.1"; sha256="0x144hij0rzhrxdq3k5ph8fk7pdgl1avjca25j4mlpmhzdckqp44"; depends=[]; };
+  backports = derive2 { name="backports"; version="1.5.0"; sha256="18kwi50bvha6p5jfl833grmhqzi55adnd3glcy4yh18mizdxjghd"; depends=[]; };
   backtest = derive2 { name="backtest"; version="0.3-4"; sha256="1s0mf247dz2vvyf4m3sp9xiqhv7xcs4rphyg9gdcy73060sah2ad"; depends=[lattice]; };
   bacondecomp = derive2 { name="bacondecomp"; version="0.1.1"; sha256="1sd6pbhmx8vxz5c2cvvadbjy7p15y91gzs3n0ish7h5br1vq8fpm"; depends=[]; };
   bacr = derive2 { name="bacr"; version="1.0.1"; sha256="14zr1v4rihx0ra3x0vsb81vsz0g8gzskkdxkg7nhiz835hp2fiy8"; depends=[MCMCpack]; };
   badgen = derive2 { name="badgen"; version="1.0.0"; sha256="0gbafiah9bsxjq2av25003d752w5s9bh7syphl58rsr34l57qkja"; depends=[jsonlite V8]; };
-  badger = derive2 { name="badger"; version="0.2.3"; sha256="0j7x6r5bv4ccyxwxc4zmq86q7js694smip9vslnwfkfg9mjxiiwa"; depends=[desc dlstats rvcheck usethis]; };
+  badger = derive2 { name="badger"; version="0.2.4"; sha256="1d41xcynl2g63mb4qmhkj8hrs193fq7n0ymh6v2ygabn2n6029kc"; depends=[desc dlstats rvcheck usethis]; };
+  baf = derive2 { name="baf"; version="0.0.1"; sha256="1zjn6iqxsa0qby285dhn86047gkzz05nknqqj3dw3bcdhsl91gim"; depends=[cli curl dplyr fs glue readr]; };
   baffle = derive2 { name="baffle"; version="0.2.2"; sha256="17307jn92sr4gindd9fvaqvk990v40mr77zp2xs0079h85vh8954"; depends=[]; };
   bagged_outliertrees = derive2 { name="bagged.outliertrees"; version="1.0.0"; sha256="0fcd54j6vci2yvlb609dck4pwbn54irkdk472cjc965rcw6dz9z7"; depends=[data_table doSNOW dplyr foreach outliertree rlist]; };
   baggr = derive2 { name="baggr"; version="0.7.8"; sha256="18faz6b8llzxsrm60bnsanplc8d7knb8cmcz34nyai7i7022061k"; depends=[bayesplot BH crayon forestplot ggplot2 ggplotify ggrepel gridExtra Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders testthat]; };
   baguette = derive2 { name="baguette"; version="1.0.2"; sha256="01pxk9angq2yrw3j5c748qhcdq92axpml5lr9cpf74a8hpg6ddjb"; depends=[butcher C50 dials dplyr furrr generics hardhat magrittr parsnip purrr rlang rpart rsample tibble tidyr withr]; };
+  bagyo = derive2 { name="bagyo"; version="0.1.1"; sha256="0j3aiqqn1y9hw3ik2jlza3rwsi8rn32i218dd0fffz56k5d5hcdp"; depends=[]; };
   bahc = derive2 { name="bahc"; version="0.3.0"; sha256="0yz0v33fhm38ivhr7bvajk9v7wdmhg9qg7ac8r2qr00rns82m6y3"; depends=[fastcluster matrixStats]; };
-  bain = derive2 { name="bain"; version="0.2.10"; sha256="1knkz4ndgdvyn47r6r4gj0sqs9s70h4a5d3hjd4l057216drwmah"; depends=[lavaan]; };
+  bain = derive2 { name="bain"; version="0.2.11"; sha256="137i13i39i87q7219bpja6a8l762is4sala55hvk2hlmph3qnylc"; depends=[lavaan]; };
   baizer = derive2 { name="baizer"; version="0.8.0"; sha256="06f7g71pzc4y2vnc3fj33s1xl6plxrkd2y73xi24pk81lm5wgf9a"; depends=[curl diffobj dplyr magrittr openxlsx purrr readr readxl rematch2 rlang rmarkdown seriation stringr tibble tidyr vctrs]; };
   bakR = derive2 { name="bakR"; version="1.0.1"; sha256="070gv5s78381cq8pagggicxx065hab99v2vgvii996b5svs6rjic"; depends=[BH data_table dplyr ggplot2 Hmisc magrittr purrr Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders tidyr]; };
   bakeoff = derive2 { name="bakeoff"; version="0.2.0"; sha256="0i40vnwgy4db8flfcx23zh5a7mmp4dhckhzayj34smqfmfm5xzkl"; depends=[]; };
@@ -6756,56 +6877,61 @@ in with self; {
   bama = derive2 { name="bama"; version="1.3.0"; sha256="1ydm9p6msmgi74rhrji2j14qy7cg7fqgg4ffm9rz293k27n5ghnn"; depends=[BH Rcpp RcppArmadillo RcppDist]; };
   bambooHR = derive2 { name="bambooHR"; version="0.1.1"; sha256="0d4jw8ymrgi20il0ipszs18a7x7q7xb3jpqmp1zrb5gigvabb9x2"; depends=[cli curl dplyr glue httr janitor jsonlite lubridate magrittr purrr rlang stringr tibble tidyr withr]; };
   bamdit = derive2 { name="bamdit"; version="3.4.0"; sha256="0x7dl2f8qg8df07g4k692501rqn3q5zf12npx9zbbbvv7zb23rlf"; depends=[ggExtra ggplot2 gridExtra MASS R2jags rjags]; };
-  bamlss = derive2 { name="bamlss"; version="1.2-3"; sha256="1mf78jfzyq3j598w2l5620igzqmmm68d7wd8vvyx4vdikl7bl3zr"; depends=[coda colorspace distributions3 Formula Matrix MBA mgcv mvtnorm sp survival]; };
+  bamlss = derive2 { name="bamlss"; version="1.2-4"; sha256="1prx8mw3n9a66s1fk616g12s0wwbxf3239256skys66csd9wzmh8"; depends=[coda colorspace distributions3 Formula Matrix MBA mgcv mvtnorm sp survival]; };
   bamm = derive2 { name="bamm"; version="0.4.3"; sha256="1dda2inq8afcp09qwqjfkg572glkw9rpf6c477wcrslkcnlpkc9x"; depends=[animation dplyr furrr future igraph leaflet magrittr Matrix purrr raster Rcpp RcppArmadillo Rdpack RSpectra sp]; };
   bamp = derive2 { name="bamp"; version="2.1.3"; sha256="0qzcndjdwbgiwyvc7ikb7jr0n7cmn78v56h5in22j24jjj740l2z"; depends=[abind coda]; };
   bandicoot = derive2 { name="bandicoot"; version="1.0.0"; sha256="0vb9cdp3ci00rjqb18l1a6106fbl5w8sjlj8kfs170rccziynnf9"; depends=[cli]; };
   bandit = derive2 { name="bandit"; version="0.5.1"; sha256="0zj98x4kwv8fr6j78vg0hzlsjd4w5l4nbazkpxqkn5yyd6g0v9h4"; depends=[boot gam]; };
   banditpam = derive2 { name="banditpam"; version="1.0-1"; sha256="05ym5x178rgfvpvqgiv46ly6xnk44d0j74ykdxkzshil7aig1xfk"; depends=[R6 Rcpp RcppArmadillo]; };
   bandsfdp = derive2 { name="bandsfdp"; version="1.1.0"; sha256="07w381i8cls1hf1mdl4qy3vxp7xx0czng3fl3bzrbk80mysjf47n"; depends=[]; };
+  banffIT = derive2 { name="banffIT"; version="1.0.0"; sha256="0b37j8xg2rg7gisp2m1rqvjfffqj0yfz54bq2fl0wckmgknkz05c"; depends=[crayon dplyr fabR fs lubridate madshapR rlang stringr tidyr]; };
   bang = derive2 { name="bang"; version="1.0.3"; sha256="1zgxgpiqszgnmbqb1dd1d3na11bam56fw9qlz1kfxkr0n8pxic0w"; depends=[bayesplot rust]; };
   bangladesh = derive2 { name="bangladesh"; version="1.0.0"; sha256="1vjrashph4n8njm6yk8slywmfwxqrvdmb2ybgp23vdxjhk3rlrzl"; depends=[sf tmap]; };
   bannerCommenter = derive2 { name="bannerCommenter"; version="1.0.0"; sha256="1i0b3v4n0xylcbrg9i3a28z037m27vjfg61xz2hl99wavn0bsl1j"; depends=[]; };
   banter = derive2 { name="banter"; version="0.9.6"; sha256="07gzl06l7iw4czdx3il3p8kl83yw32fxa8cjx1j018z3468m1qyj"; depends=[dplyr ggplot2 gridExtra magrittr randomForest rfPermute rlang swfscMisc tibble tidyr]; };
   banxicoR = derive2 { name="banxicoR"; version="0.9.0"; sha256="0vchm2hnqm45fhn8k38rcam4vkazmifcl40390s2r04bgvqr0pnl"; depends=[rvest stringr xml2]; };
+  baorista = derive2 { name="baorista"; version="0.1.4"; sha256="1ljqkplhnfxcs0jvmg589x7j00pciqk829vg5gi4c2i69yxd7mc1"; depends=[coda nimble]; };
   bapred = derive2 { name="bapred"; version="1.1"; sha256="1pnhq1li0c4pvgvwsaxxzsgbdyjnb96s1hciqanzgbd1d4577lvp"; depends=[affy affyPLM Biobase FNN fuzzyRankTests glmnet lme4 MASS mnormt sva]; };
   barcode = derive2 { name="barcode"; version="1.3.0"; sha256="1kk5nwh810l5vix6qzwl28cfi8rk7vc35hv73whk1bkndv2y4qx0"; depends=[lattice]; };
   bardr = derive2 { name="bardr"; version="0.0.9"; sha256="02499b3j10j7qq3whz9qijfp3amp0s1ji8qk76c53dsnkj8f9hvs"; depends=[]; };
   bark = derive2 { name="bark"; version="1.0.4"; sha256="16bfws2ffcqn848vfa586z3gwjh5jfb2x887pwk05hpyd1ny9cm9"; depends=[]; };
-  bartCause = derive2 { name="bartCause"; version="1.0-6"; sha256="00mxj92qpgs26dlj0cabxa6zjvwp4987nxhxgsb0npvb8zjm3sdn"; depends=[dbarts]; };
+  bartCause = derive2 { name="bartCause"; version="1.0-8"; sha256="05g6xmlryksbl4812krz3h8kkkz41i58l1q25wcklw4nvafpjc0v"; depends=[dbarts]; };
   bartMachine = derive2 { name="bartMachine"; version="1.3.4.1"; sha256="12abi19nd07lvclxpa73ba21sbrll67bbp0a8vz8wnj2ym8542iv"; depends=[bartMachineJARs missForest randomForest rJava]; };
   bartMachineJARs = derive2 { name="bartMachineJARs"; version="1.2.1"; sha256="1h71ikmj217wjd1w52qvxf6p3alnqxg1zn43dzhlkhmfyjn20ylz"; depends=[rJava]; };
-  bartcs = derive2 { name="bartcs"; version="1.2.1"; sha256="1336v6kzxca7sdb96jizp4fzspqv36y4z9zdf652a5fn0mxb4a6m"; depends=[coda ggcharts ggplot2 invgamma MCMCpack Rcpp rlang rootSolve]; };
+  bartMan = derive2 { name="bartMan"; version="0.1.0"; sha256="09pmkqbvgw9l95c36izdmi3h8pjx7vmzmfak2hll4q6npl5fr27x"; depends=[BART bartMachine cli colorspace cowplot dbarts DendSer dplyr ggiraph ggnewscale ggplot2 ggraph gtable igraph patchwork purrr rJava rlang rrapply scales tibble tidybayes tidygraph tidyr tidytreatment]; };
+  bartcs = derive2 { name="bartcs"; version="1.2.2"; sha256="0kajw5phkymvkilwb7bf3qdc24h369yvb1zmc49kk6k7bdpbxcrr"; depends=[coda ggcharts ggplot2 invgamma MCMCpack Rcpp rlang rootSolve]; };
   basad = derive2 { name="basad"; version="0.3.0"; sha256="0g8zfphwbvxq1ydvsaj0dvidsikrriyi80cam9i3syhx0v20vnir"; depends=[Rcpp RcppEigen rmutil]; };
   base_rms = derive2 { name="base.rms"; version="1.0"; sha256="0lsbbcvmq5n3dpqic9qkyr8wdbmagaw32qfdnl0ck5b6ijh2wz0a"; depends=[do rms survival]; };
   base64 = derive2 { name="base64"; version="2.0.1"; sha256="1w9m4n29xmj7px8fbmha04vq146bxfqi7ipj1ag09hlm05y6h8jd"; depends=[openssl]; };
   base64enc = derive2 { name="base64enc"; version="0.1-3"; sha256="13b89fhg1nx7zds82a0biz847ixphg9byf5zl2cw9kab6s56v1bd"; depends=[]; };
   base64url = derive2 { name="base64url"; version="1.4"; sha256="0n1c2b68vza1dh7sk38v6biiwm72c4jpl79kpdg1bsb0hq9qy18x"; depends=[backports]; };
   baseballr = derive2 { name="baseballr"; version="1.6.0"; sha256="0qsr6di5y1a3z28rxpzk6k8b5rbnh08pdcjv65qa0fci3yx1i15y"; depends=[cli data_table dplyr ggplot2 glue httr janitor jsonlite lubridate magrittr purrr Rcpp RcppParallel rlang rvest stringr tibble tidyr]; };
+  basecamb = derive2 { name="basecamb"; version="1.1.5"; sha256="0jxlh04f3pqxb0ihp8241z91fka4hi3d3g41ya927japps5dpvhr"; depends=[assertthat dplyr Hmisc MASS mice purrr sae survival]; };
   basedosdados = derive2 { name="basedosdados"; version="0.2.2"; sha256="18gfk7hivp68mgbgx60qbpcy28ysj4llzwdji5a57rrczwffr6p0"; depends=[bigrquery cli DBI dbplyr dotenv dplyr fs glue httr magrittr purrr readr rlang scales stringr tibble typed writexl]; };
   basefun = derive2 { name="basefun"; version="1.1-4"; sha256="1m258ycxc9m2xdpvqzjk0hz3fg3bwbj3z2yx6raf315ws4s2h47f"; depends=[Matrix orthopolynom polynom variables]; };
   baseline = derive2 { name="baseline"; version="1.3-5"; sha256="0l0llb3pi89ixkpvfg5vbvwwv3gzldf0g98rrd3vkm7q26rqmmd2"; depends=[limSolve SparseM]; };
-  basemaps = derive2 { name="basemaps"; version="0.0.6"; sha256="0dc1pwzipp1rj3xjmgf4h4i01wrm253mrv7v4jhdk8xh9l4ipl5g"; depends=[curl httr magick pbapply sf slippymath stars terra]; };
+  basemaps = derive2 { name="basemaps"; version="0.0.7"; sha256="19cw01qs0wmrxcypr71ssbsj5266zgkxsxakig014x1wr592d3v6"; depends=[curl httr magick pbapply sf slippymath stars terra]; };
   basemodels = derive2 { name="basemodels"; version="1.1.0"; sha256="07r61bzrpnwwfsxg9szfw6cf5aqsqa5fxz9j448rqlkqlg84r68h"; depends=[]; };
   baseq = derive2 { name="baseq"; version="0.1.4"; sha256="012p6xs9dkvpwcqkm9qgnc5v6sg6qhwpcaqxfnwx30fpim99liai"; depends=[]; };
   basetheme = derive2 { name="basetheme"; version="0.1.3"; sha256="0g1dsim688zl309svbv29g5ya23x71al4kribmy279vwqiddzl8z"; depends=[]; };
   basf = derive2 { name="basf"; version="0.2.0"; sha256="0l3y5p51jic3b8h1jclhhma4myll1g3vsxr8rj0dx1bvjfimkryw"; depends=[raster sf tibble]; };
   basicMCMCplots = derive2 { name="basicMCMCplots"; version="0.2.7"; sha256="02lwkbpr9yj5q7l3ing1v47c4ifvwaxn8yyr3b34fral08cgpn9x"; depends=[]; };
-  basicdrm = derive2 { name="basicdrm"; version="0.1.0"; sha256="14hf2hjh3nfjmq6d7c1y442fh9kzj6fjk5v5r5kyq5hsgvlhazd6"; depends=[]; };
+  basicdrm = derive2 { name="basicdrm"; version="0.3.0"; sha256="130s8h54760lnjh0m2i7pjs9cx2sc6xxjkm3x93727azxzgxpk09"; depends=[]; };
   basictabler = derive2 { name="basictabler"; version="1.0.2"; sha256="0d5gpvf3la0fky786z74i8q7il1mmb2prg8y9wslg2gbngnkvkvm"; depends=[dplyr htmltools htmlwidgets R6]; };
   basifoR = derive2 { name="basifoR"; version="0.4"; sha256="1clnmb57g7aclgw8ibj92pfixaism0af85w4kn0208nbm75c1kvf"; depends=[curl foreign Hmisc httr measurements RODBC]; };
   basket = derive2 { name="basket"; version="0.10.11"; sha256="1kmz53v8k1wyjg33dsf05p57ym2zq3d0f373wp85bnrwx00nfr10"; depends=[cli crayon dplyr foreach GenSA ggplot2 ggraph gridExtra igraph itertools RColorBrewer tibble tidygraph tidyr]; };
-  baskexact = derive2 { name="baskexact"; version="1.0.0"; sha256="1mvxcrqs374zkp08kf9wap1zgi80x3ifhjrrr7w1fyhpcji3cf4x"; depends=[arrangements doFuture extraDistr foreach ggplot2 Rcpp RcppArmadillo]; };
+  baskexact = derive2 { name="baskexact"; version="1.0.1"; sha256="1825avqbbf8zkk9fps0i450zwl3j0armbnblndl9q954g2wzdhs4"; depends=[arrangements doFuture extraDistr foreach ggplot2 Rcpp RcppArmadillo]; };
+  basksim = derive2 { name="basksim"; version="1.0.0"; sha256="1vrav84fqkilmk0ww0gjr6hldxp7fpzgca2062jvrkzbyff05bx9"; depends=[arrangements bhmbasket bmabasket doFuture extraDistr foreach HDInterval progressr]; };
   batata = derive2 { name="batata"; version="0.2.1"; sha256="0z3pj37jydidw3lq1yvp1yv1vqbm28nhj0v4kb3n30dl00kd0hmy"; depends=[fs glue jsonlite lubridate purrr remotes]; };
   batch = derive2 { name="batch"; version="1.1-5"; sha256="0wdgfvk2i542cqg34ikvzwlix09f2jyjb32a0f4zh9vg9nrywswq"; depends=[]; };
   batchmeans = derive2 { name="batchmeans"; version="1.0-4"; sha256="0b2npqxrv08zxj59sahj5s87inhl6dyl10bj01v0l1yr14q5g546"; depends=[]; };
-  batchmix = derive2 { name="batchmix"; version="2.1.0"; sha256="0afbklw9nslxnqa1264qa4a7igzhmz2irqn4px1n98gsq97d3097"; depends=[ggplot2 Rcpp RcppArmadillo testthat tidyr]; };
+  batchmix = derive2 { name="batchmix"; version="2.2.1"; sha256="1vsr4p3a03dx3kr2clzcnyvf6xfzyisfk87famfvssjb4g58bzrv"; depends=[ggplot2 Rcpp RcppArmadillo salso tidyr]; };
   batchscr = derive2 { name="batchscr"; version="0.1.0"; sha256="094l2cq7lcdrlsdmsxmbal7srxdg20rxbms46h1sd414wq26d413"; depends=[]; };
   batchtma = derive2 { name="batchtma"; version="0.1.6"; sha256="1ii7iiq6vhfqnhzp5xpl40g2gdmm9c7ib3kg8fbswg99f96hqhbp"; depends=[broom dplyr geepack ggplot2 limma magrittr nnet purrr quantreg rlang stringr tibble tidyr]; };
   batchtools = derive2 { name="batchtools"; version="0.9.17"; sha256="1rlvfk0279saf930z48g230p9z30dd7qil9aiprjn35px1advqdn"; depends=[backports base64url brew checkmate data_table digest fs progress R6 rappdirs stringi withr]; };
   bate = derive2 { name="bate"; version="0.1.0"; sha256="1jrf614g5699ygw73pda7dk79ydx57sc8wpq4vg51yy98arhidc2"; depends=[concaveman dplyr ggplot2 latex2exp magrittr purrr tidyselect vtable]; };
   batman = derive2 { name="batman"; version="0.1.0"; sha256="0ccgx506p4iri23k2ikb8jmh04dp08w66785bv52iy8kd359h43f"; depends=[Rcpp]; };
-  batsch = derive2 { name="batsch"; version="0.1.0"; sha256="1mjlggjwfi7wrksilkh6nchzg9d6zcnazn2y0a4w6ffl78zdaxv1"; depends=[magrittr tibble]; };
+  batsch = derive2 { name="batsch"; version="0.1.1"; sha256="07axa9rrl4r8wf73023v64sc7x700gl5vmsq90gagnfgg06bfqp5"; depends=[tibble]; };
   batteryreduction = derive2 { name="batteryreduction"; version="0.1.1"; sha256="0j838q7063bplkzd50kmnxji80cgysfsq7m1qifv8z7a2zsh8c8g"; depends=[pracma]; };
   bayMDS = derive2 { name="bayMDS"; version="2.0"; sha256="1l5srpaichn598a3a9pj7pwp35jvbwb65d37l9ngvdq3rja8xm0s"; depends=[ggplot2 ggpubr progress Rcpp RcppArmadillo shiny shinythemes]; };
   bayclumpr = derive2 { name="bayclumpr"; version="0.1.0"; sha256="17yppw6m27d1smdbwrl9mja84y3p56s4sjw4c6hklxadcf4na8im"; depends=[deming IsoplotR loo rstan]; };
@@ -6816,17 +6942,19 @@ in with self; {
   bayesCT = derive2 { name="bayesCT"; version="0.99.3"; sha256="0ragig1x34syhsnbnd58l2s7g23j7fb0cl9wkasvxq8cicw5hqgn"; depends=[bayesDP dplyr magrittr purrr survival]; };
   bayesDP = derive2 { name="bayesDP"; version="1.3.6"; sha256="0li063187icw96shrbawfa00vkb42m5y38a4j2aahryajjlsva57"; depends=[ggplot2 MCMCpack Rcpp RcppArmadillo survival]; };
   bayesDccGarch = derive2 { name="bayesDccGarch"; version="3.0.4"; sha256="1wv36yv43m8fkpk59hfrw3672p95lzhapr0d4n3jynsfhf6ivpm6"; depends=[coda numDeriv]; };
+  bayesEO = derive2 { name="bayesEO"; version="0.2.1"; sha256="0zs4qqf8881x01wblzmnw7m3zmh4ifrim3a8ws454r2lxf4y7mj5"; depends=[dplyr ggplot2 purrr Rcpp RcppArmadillo stars terra tibble tidyr tmap yaml]; };
   bayesGAM = derive2 { name="bayesGAM"; version="0.0.2"; sha256="13zs68d26c66hkm8mfhcygk8rw6sdg4rf4a4az254lf2xvypbh5d"; depends=[bayesplot BH boot cluster corrplot geometry ggplot2 gridExtra loo MASS mlbench Rcpp RcppEigen RcppParallel rstan rstantools SemiPar StanHeaders]; };
   bayesGARCH = derive2 { name="bayesGARCH"; version="2.1.10"; sha256="1jb7jfyxp210pc8myv9lnwb55hy19d39m10kkhs5lyjwc2lv0401"; depends=[coda mvtnorm]; };
   bayesImageS = derive2 { name="bayesImageS"; version="0.6-1"; sha256="0hz6ynvrhsxp097zswdlascza5n27cq4hfaqdc3r8b7crmh7lrim"; depends=[Rcpp RcppArmadillo]; };
   bayesLife = derive2 { name="bayesLife"; version="5.2-0"; sha256="116wa3sqxkp8ywc0s83clg1pp81bf1rhddpvjbcw9pyim57h4kxm"; depends=[bayesTFR car coda data_table hett wpp2019]; };
   bayesMRM = derive2 { name="bayesMRM"; version="2.4.0"; sha256="1qdc4y0l6v4axp47pnxcnq96hl7kbi9r4jiknd5i934smcr2bsza"; depends=[coda ggplot2 gridExtra rgl rjags shiny shinythemes]; };
+  bayesMeanScale = derive2 { name="bayesMeanScale"; version="0.1.4"; sha256="0zkfv6f50z83d8iih2f9p0dkla2bffcfjhfbmpicybicfi35f480"; depends=[bayestestR data_table magrittr posterior]; };
   bayesMig = derive2 { name="bayesMig"; version="0.4-6"; sha256="1b4pxg22fx898s529gigdfcdsmzlrpqhpnq96lghvsvmv5802z4n"; depends=[bayesTFR coda truncnorm wpp2019]; };
   bayesPO = derive2 { name="bayesPO"; version="0.5.0"; sha256="0dav6kjasb7p0ks8fwd3r8pb7q8il39rmvpbgdb80c7k49azirhd"; depends=[coda Rcpp RcppEigen RcppProgress]; };
   bayesPop = derive2 { name="bayesPop"; version="10.0-1"; sha256="0jzxsqnrzvhz85wravjxbjwf6panwmylqgz99b0zknvgbf0vx6zh"; depends=[abind bayesLife bayesTFR data_table fields googleVis MortCast plyr reshape2 rworldmap wpp2012 wpp2019]; };
   bayesQR = derive2 { name="bayesQR"; version="2.4"; sha256="1ci81pishhf9iv08gsnyfmx9kq9d4bswfvnwx3whykrkrlgifzmi"; depends=[]; };
-  bayesROE = derive2 { name="bayesROE"; version="0.1"; sha256="05darwx45bv6p9qscnw169jza4yd3m2d5bgpr35yil7p68dl0w2b"; depends=[colourpicker config ggplot2 golem scales shiny shinyBS]; };
-  bayesRecon = derive2 { name="bayesRecon"; version="0.2.0"; sha256="0nnj97j6i2hp9rldrfz207wmyn8rsyvjc5c14507yl1paayf3l85"; depends=[lpSolve]; };
+  bayesROE = derive2 { name="bayesROE"; version="0.2"; sha256="1y5nvvwyhr27268prahjif71y89mbhgyc51gc5nqhmy5d7qwimwj"; depends=[colourpicker config ggplot2 golem scales shiny shinyBS]; };
+  bayesRecon = derive2 { name="bayesRecon"; version="0.3.0"; sha256="11gmav4cb89fmlpwg387sik3fllvscgn778c5smwnk5lp5sl430j"; depends=[lpSolve]; };
   bayesSurv = derive2 { name="bayesSurv"; version="3.7"; sha256="1mqsnvqrivyl28d5fjh7alqsxr06wnhkjhhhrahmngmvgnmmnd1b"; depends=[coda smoothSurv survival]; };
   bayesTFR = derive2 { name="bayesTFR"; version="7.4-2"; sha256="09fbyc4656dil6mqfzx7nlxxp0b95fmc73ibci60jbbzggafb51s"; depends=[coda data_table lifecycle MASS mvtnorm wpp2019]; };
   bayesWatch = derive2 { name="bayesWatch"; version="0.1.3"; sha256="04kfx68cq5cjg1ykzl8i55prnw2mvqgnmgbjav5nv2rmh9psny61"; depends=[BDgraph BH CholWishart ess ggplot2 gridExtra Hotelling MASS Matrix Rcpp RcppArmadillo RcppEigen]; };
@@ -6836,13 +6964,12 @@ in with self; {
   bayesassurance = derive2 { name="bayesassurance"; version="0.1.0"; sha256="0y62q0340j3781f0l9azxdn6k4isj1zds6y50fg38a73pi7mbfbm"; depends=[dplyr ggplot2 MASS mathjaxr pbapply plot3D plotly rlang]; };
   bayesbio = derive2 { name="bayesbio"; version="1.0.0"; sha256="08qa4lzkrcwin7n3kzfqfdlnlqahdmjl1lxpdh29n780cgyjfvs0"; depends=[]; };
   bayesboot = derive2 { name="bayesboot"; version="0.2.2"; sha256="0976ryd0gbw3kpmxg2qxyp1m2swnrpa86vdhvqrqxp7fcrs8cs2z"; depends=[HDInterval plyr]; };
-  bayesbr = derive2 { name="bayesbr"; version="0.0.1.0"; sha256="0zx123xqw2qglwxsnq0jy56kwk6zczslagapij9aj9n5bsifbcmx"; depends=[BH coda dplyr fdrtool Formula ggplot2 loo magrittr Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders stringr tidyr]; };
   bayescopulareg = derive2 { name="bayescopulareg"; version="0.1.3"; sha256="0jzj1iwd8g1kpypg6dl3anhay7kjvznfkyzri3sdf538s6vr88m5"; depends=[mvtnorm Rcpp RcppArmadillo RcppDist]; };
   bayescount = derive2 { name="bayescount"; version="0.9.99-9"; sha256="1m9rsyxzf76079yzacgg1wqvylqgvmvwag043csaykn1m42kzdm3"; depends=[coda rjags runjags]; };
   bayesdfa = derive2 { name="bayesdfa"; version="1.3.3"; sha256="1xmvpkg30nk4sldzy3rp12ivnj4phzdw08hmk5nh5b70mqapvkra"; depends=[BH dplyr ggplot2 loo mgcv Rcpp RcppEigen RcppParallel reshape2 rlang rstan rstantools StanHeaders viridisLite]; };
   bayesdistreg = derive2 { name="bayesdistreg"; version="0.1.0"; sha256="04slvxzbqdi2ak3dlw4lfx55rhw28js8yjmvjpy8vvgq39vcx3dq"; depends=[MASS sandwich]; };
   bayesforecast = derive2 { name="bayesforecast"; version="1.0.1"; sha256="0wnz6qblm3ib7lpj860s4lhrs4gvmyrmk779r38rybfvxw4xssii"; depends=[astsa bayesplot BH bridgesampling forecast ggplot2 gridExtra loo lubridate MASS prophet Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders zoo]; };
-  bayesian = derive2 { name="bayesian"; version="0.0.9"; sha256="0s9mrzmmarjzy6943lkfnf0cjdgxkvk375kmdnxx43wbllx6k0xg"; depends=[brms dplyr parsnip purrr rlang tibble]; };
+  bayesian = derive2 { name="bayesian"; version="1.0.1"; sha256="17d08700gwijpzv325pp7pndrz4mv1j1c4hll8s7ry15s1z82fmf"; depends=[brms dplyr parsnip purrr rlang tibble]; };
   bayesianETAS = derive2 { name="bayesianETAS"; version="1.0.3"; sha256="0nbif0b6lcik2kh948zg5ska5mvkdsfr0dg8ndnfpscm2mp7y1dg"; depends=[]; };
   bayesianVARs = derive2 { name="bayesianVARs"; version="0.1.2"; sha256="05vx1v7znj12b1h1wks7azi2xrwhdzxjljjsshp3x5zmjm5kg169"; depends=[colorspace factorstochvol GIGrvg MASS mvtnorm Rcpp RcppArmadillo RcppProgress scales stochvol]; };
   bayeslm = derive2 { name="bayeslm"; version="1.0.1"; sha256="0mnzxzdz456qxfszl8vhnvb1875hxn8b57wi6dhr9g668da2zdin"; depends=[coda Rcpp RcppArmadillo RcppParallel]; };
@@ -6852,14 +6979,14 @@ in with self; {
   bayesmix = derive2 { name="bayesmix"; version="0.7-6"; sha256="0gzzzgjbz4aw2zrd5grvd1r0zlycxkgyq4hj1mcbwkfs2dd00msk"; depends=[coda rjags]; };
   bayesmlogit = derive2 { name="bayesmlogit"; version="1.0.1"; sha256="1958kyagp41ji9xlwr03g6yv4jrd68kzc7g2hm0wgjdrksifmwp8"; depends=[dplyr ggplot2 magrittr]; };
   bayesmove = derive2 { name="bayesmove"; version="0.2.1"; sha256="1l6i8qh7l53x0133gjc5jvri4vnnfviq9y3mcr1kfa5j84gfnmsf"; depends=[dplyr dygraphs furrr future ggplot2 leaflet lubridate magrittr MCMCpack progress progressr purrr Rcpp RcppArmadillo rlang sf shiny tictoc tidyr]; };
-  bayesnec = derive2 { name="bayesnec"; version="2.1.1.0"; sha256="02ahcaj72r0md6a2pj8ffz42xpv37hsvfixay57rc5sbdbics9gc"; depends=[brms chk dplyr evaluate formula_tools ggplot2 loo purrr rlang tibble tidyr tidyselect]; };
+  bayesnec = derive2 { name="bayesnec"; version="2.1.2.0"; sha256="1ja4yl3fqs5cg3n8gn7r7a2shdxkwcshbmy7cyn3l97zsrdw4a3m"; depends=[brms chk dplyr evaluate formula_tools ggplot2 loo purrr rlang tibble tidyr tidyselect]; };
   bayesplay = derive2 { name="bayesplay"; version="0.9.3"; sha256="1gc5gfyd03rir3yrjsqj6448wvbw49n6c789hzfqwignk3vjc555"; depends=[gginnards]; };
   bayesplot = derive2 { name="bayesplot"; version="1.11.1"; sha256="0c1q1znp9vd0w6l35xa208bgiwr5f2w8j2c97v6ml4z0j5rycwag"; depends=[dplyr ggplot2 ggridges glue posterior reshape2 rlang tibble tidyselect]; };
   bayespm = derive2 { name="bayespm"; version="0.2.0"; sha256="0w965fn7qvxq93bb1iiwzzkz6vc5k7gz87xfnwnywsqcm0bj2khb"; depends=[extraDistr ggplot2 gridExtra invgamma rmutil]; };
   bayesreg = derive2 { name="bayesreg"; version="1.2"; sha256="0yrx7y39xxmm0z4myj6ma24dkkhgcily5baxr6yf9balgvhd5wf4"; depends=[pgdraw]; };
   bayesrules = derive2 { name="bayesrules"; version="0.0.2"; sha256="0a1a1aq91ary985xd0qqc1sgjlyfcrjh7ngzcy4f7j09a7ch3j4b"; depends=[dplyr e1071 ggplot2 groupdata2 janitor magrittr purrr rstanarm]; };
   bayess = derive2 { name="bayess"; version="1.6"; sha256="0kqk4mq7q4cp2pgxw6b261fj3kl47a0dx44b7b5siwqv45nzymiz"; depends=[combinat gplots mnormt]; };
-  bayest = derive2 { name="bayest"; version="1.4"; sha256="1ax1z5aw0irpr5qmfscvbssrz58ablx0nkl0d9fx51f2g1cwm65n"; depends=[MCMCpack]; };
+  bayest = derive2 { name="bayest"; version="1.5"; sha256="1vx0avy5a3ndy76pvgf71hxpmy7g9l0l1lmc4cgczzdmf55lrksa"; depends=[MCMCpack]; };
   bayestestR = derive2 { name="bayestestR"; version="0.13.2"; sha256="15xnmjay0s9kgaj25z43cxky4qcjn3gv8yd1x548jzbxzxxma07n"; depends=[datawizard insight]; };
   bayesvl = derive2 { name="bayesvl"; version="0.8.5"; sha256="1gb2in8hjiqb3daqz6phn1639i6p2w641kxrm3zh4rm3d6hg6hzr"; depends=[bayesplot bnlearn coda dplyr ggplot2 reshape2 rstan StanHeaders viridis]; };
   bayfoxr = derive2 { name="bayfoxr"; version="0.0.1"; sha256="1295296mbjpmd0bg1pfxvyp0az3sry6gsq9ir3l8x64w5a4qrzd5"; depends=[]; };
@@ -6869,16 +6996,19 @@ in with self; {
   baytrends = derive2 { name="baytrends"; version="2.0.11"; sha256="1kvp17a6q6d59lhpxs702403rp7hsl77l69vs6injrffzpz9si79"; depends=[dataRetrieval digest dplyr fitdistrplus knitr lubridate memoise mgcv pander plyr readxl sessioninfo survival]; };
   bazar = derive2 { name="bazar"; version="1.0.11"; sha256="1q2w5pvlb51lzbb5k719sf1lrhffandkfqlcvi2prw4dmq7qjxv9"; depends=[kimisc]; };
   bbdetection = derive2 { name="bbdetection"; version="1.0"; sha256="1j6xcbfsrg3wcr1rpddj7ia33szn5bs0wk4mzq42d761clsr5qq8"; depends=[ggplot2 Rcpp xtable zoo]; };
+  bbk = derive2 { name="bbk"; version="0.3.0"; sha256="0dhbpc051xs1mz778a56h269ykwnlgh33k4cj88c2mb2rifmw9fa"; depends=[httr2 xml2]; };
   bbknnR = derive2 { name="bbknnR"; version="1.1.1"; sha256="0zwsk491pgfr0dxbpkw1zqa4fi4d8j1bdfiridxq6f07aypx8nmg"; depends=[future glmnet magrittr Matrix Rcpp RcppAnnoy reticulate rlang Rtsne Seurat SeuratObject tidytable uwot]; };
   bbl = derive2 { name="bbl"; version="1.0.0"; sha256="135i619lliy93dvgb7ymrcdh20y2b1j7s0y6awzcs3w0hbyd8j5z"; depends=[pROC RColorBrewer Rcpp]; };
   bbmix = derive2 { name="bbmix"; version="1.0.0"; sha256="088878222dvqmqrg5d4ny3rrpbvjw7npzrk0fmagvhj3z5dvd6la"; depends=[BH data_table R_utils Rcpp RcppEigen rmutil rstan StanHeaders]; };
   bbmle = derive2 { name="bbmle"; version="1.0.25.1"; sha256="02xnfmjr5ax5pc69jkxmygkwvb68flrf1x8pxfw0hk7y37w0qanr"; depends=[bdsmatrix lattice MASS Matrix mvtnorm numDeriv]; };
+  bbnet = derive2 { name="bbnet"; version="1.0.1"; sha256="1g7hkiz6485200qabnpx31br6ixcr1jwgvzzdznz4qs8nwhswxqf"; depends=[dplyr ggplot2 igraph tibble]; };
   bbotk = derive2 { name="bbotk"; version="0.8.0"; sha256="1ggfl1lhvjnnkxib4svqd82agrvjcg1101cbf4g2c0kzgzm1jaj6"; depends=[checkmate data_table lgr mlr3misc paradox R6]; };
   bbreg = derive2 { name="bbreg"; version="2.0.2"; sha256="0mi2834v4cvrhvpnzkb4lgkqq993c3c1yzsxdnmny4p6yxw1q547"; depends=[expint Formula pbapply statmod]; };
   bbw = derive2 { name="bbw"; version="0.2.0"; sha256="0gycjqn36msa6cl4zdrjv2bpv14xm8m6nsc3rfjm8mw9zjjzrw6g"; depends=[car withr]; };
   bc3net = derive2 { name="bc3net"; version="1.0.4"; sha256="15dghd0v1s71h77iw8b49v5h7wcda5mb4540lfyibsdipbashv2h"; depends=[c3net igraph infotheo lattice Matrix]; };
   bcROCsurface = derive2 { name="bcROCsurface"; version="1.0-6"; sha256="0g0z4z3dw4mjp4dpa0d6bz46700jibixhlh2jj62z2l7qz5140cy"; depends=[boot nnet Rcpp RcppArmadillo rgl]; };
   bcaboot = derive2 { name="bcaboot"; version="0.2-3"; sha256="0b1m4lwi9hwd4xswabzyy2svc91ppiym8bi9f1wj79w5sg2hxpn7"; depends=[]; };
+  bcc = derive2 { name="bcc"; version="1.5"; sha256="1wvly81rg5ximrsp01jpl8rn6rkickzfaq3ybp1i8bbcyvdj1d7d"; depends=[]; };
   bccp = derive2 { name="bccp"; version="0.5.0"; sha256="0g9yzqzf977rx97c77krdhl7c499r58xcbzx0nihk73143ynf17w"; depends=[pracma]; };
   bcdata = derive2 { name="bcdata"; version="0.4.1"; sha256="05izx4bpk60icwnsy4698cm4dyxmmffss59dca8zrrh4i4pql72f"; depends=[cli crul DBI dbplyr dplyr glue jsonlite leaflet leaflet_extras purrr readr readxl rlang sf tibble tidyselect xml2]; };
   bcf = derive2 { name="bcf"; version="2.0.2"; sha256="0a7279h7f3v23zbzqkpaxl9s2q1igfc3c5wcjpins8d7nk5hgfj4"; depends=[coda doParallel foreach Hmisc matrixStats Rcpp RcppArmadillo RcppParallel]; };
@@ -6888,7 +7018,7 @@ in with self; {
   bcmaps = derive2 { name="bcmaps"; version="2.2.0"; sha256="0cpghf8acq7dpmiaw314n1h2aa310513f3qwnl8p74pyr940gwvn"; depends=[bcdata httr jsonlite lifecycle progress rappdirs sf xml2]; };
   bcmixed = derive2 { name="bcmixed"; version="0.1.4"; sha256="0am6amk1axfxkxgp9nmfys4fp4snplfncwkzh02im7a6zr3v1m63"; depends=[MASS nlme]; };
   bcpa = derive2 { name="bcpa"; version="1.3.2"; sha256="09n4grdz3vvm3744bggxv9qvnjbifh1hj31sc6s7a3189d1zhl4v"; depends=[plyr Rcpp]; };
-  bcputility = derive2 { name="bcputility"; version="0.4.0"; sha256="04c53vm920ipn6vwvvncl9bhk4qypng16v1cf1yr8zgs9cyzrlz6"; depends=[data_table sf]; };
+  bcputility = derive2 { name="bcputility"; version="0.4.3"; sha256="11wp0llr8wk96ifl93vw1hadrda61zdkmbazp1khimbx0qgr31gx"; depends=[data_table sf]; };
   bcrm = derive2 { name="bcrm"; version="0.5.4"; sha256="1j8bfa3x7h77vs41k4nqbqlb961szp1fkhc181wzb3zpbnzmjhhy"; depends=[ggplot2 knitr mvtnorm rlang]; };
   bcrypt = derive2 { name="bcrypt"; version="1.1"; sha256="1wwdin8x09y8n8zrwj1ylh5ikcz0v0la4wmrsvbdr61cg336wzx4"; depends=[openssl]; };
   bcv = derive2 { name="bcv"; version="1.0.2"; sha256="1fs7pj8lsn96cr1r5bagp9mq869q3pj9k71r7j1xi0i5l06pz90y"; depends=[]; };
@@ -6897,6 +7027,7 @@ in with self; {
   bdc = derive2 { name="bdc"; version="1.1.4"; sha256="1z79bsg0jz5ffl47sjgxj2bigyhbn76m0kz9sqbzkph7srcc6vpr"; depends=[CoordinateCleaner dplyr DT foreach fs ggplot2 here magrittr purrr qs readr rgnparser rnaturalearth sf stringdist stringi stringr taxadb tibble tidyselect]; };
   bde = derive2 { name="bde"; version="1.0.1.1"; sha256="0idawsykqz7ybnnfcs0946wd1q8aaw1xdx2w3zzgjz7faxbvznb9"; depends=[ggplot2 shiny]; };
   bdl = derive2 { name="bdl"; version="1.0.5"; sha256="1d55i1pn8pfnv2wcmxxifqbxlni9npv9n3xnjcgfcfhs0ixnz314"; depends=[dplyr ggplot2 ggpubr httr jsonlite magrittr progress purrr randomcoloR sf tibble tidyr tmap tmaptools]; };
+  bdlim = derive2 { name="bdlim"; version="0.4.2"; sha256="04qgmanb198abrkqfv4n0fk0zib3nad14s7pz85n4ws0252vk10r"; depends=[BayesLogit dplyr ggplot2 LaplacesDemon tidyr]; };
   bdlp = derive2 { name="bdlp"; version="0.9-2"; sha256="14fxwgcn3g6k1cdimgfp6zmsgqi4s7sh6kapnls229qiin2nijjl"; depends=[DBI GenOrd MASS MultiOrd rgl RSQLite stringdist]; };
   bdots = derive2 { name="bdots"; version="1.2.5"; sha256="18sciji8xy1s53d7d5q1g5zqdn25wd7w5vyiisigf54sbz13vqg6"; depends=[data_table ggplot2 gridExtra mvtnorm nlme]; };
   bdpar = derive2 { name="bdpar"; version="3.1.0"; sha256="063b4wwc476gx1gsb028b0fr5agf1n9ciagl5h28zx7ap3jnxmph"; depends=[digest R6 rlist]; };
@@ -6905,6 +7036,7 @@ in with self; {
   bdribs = derive2 { name="bdribs"; version="1.0.4"; sha256="19qakmdw3l8vfxkr4p1ydkyfs4cmq37lqzw7l5zx5rdn6zlhqwh4"; depends=[rjags]; };
   bdscale = derive2 { name="bdscale"; version="2.0.0"; sha256="1hkkfd69g2bg2y4hicjs6bnw9f0zw74jy0dpadchnzw17lffpms3"; depends=[ggplot2 scales]; };
   bdsmatrix = derive2 { name="bdsmatrix"; version="1.3-7"; sha256="08krrd7454ixqv4nq55hgf3djp1pz1vl3ndslsrh2pkdq1d5wl63"; depends=[]; };
+  bdsvd = derive2 { name="bdsvd"; version="0.1-0"; sha256="0jpli8mdrjbgcvgvj2rwac49147l7h91n2mbsi89pw7m5ydimvvp"; depends=[irlba]; };
   bdvis = derive2 { name="bdvis"; version="0.2.37"; sha256="0mhvc1lbnkbawx3yj9h8h4l6bwawg1dfgyjvllhknyldxy8a7bjk"; depends=[chron ggplot2 lattice maps plotrix plyr sf sqldf taxize treemap]; };
   bea_R = derive2 { name="bea.R"; version="1.0.6"; sha256="15pdbwz7av8862bl144n998qk0w9rqwip9m2brdm5hj7id5xdlif"; depends=[chron colorspace data_table DT ggplot2 googleVis gtable htmltools htmlwidgets httpuv httr jsonlite magrittr munsell plyr Rcpp scales shiny shinydashboard stringi stringr xtable yaml]; };
   beadplexr = derive2 { name="beadplexr"; version="0.5.0"; sha256="0n07lxwmcqn6hx7bvrqvcy5y98c4x7wbcpjlwyq66imphj711blp"; depends=[cluster dplyr drc fpc ggplot2 mclust purrr rlang tibble tidyr yaml]; };
@@ -6914,8 +7046,9 @@ in with self; {
   beanz = derive2 { name="beanz"; version="3.1"; sha256="1rv4pil8hfykp35impw980riijwgrqxv9v528w1mmq1gyy25wjhl"; depends=[BH loo Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders survival]; };
   bearishTrader = derive2 { name="bearishTrader"; version="1.0.2"; sha256="1w9q66v46ppbic684dp3wv22cykd8fvjznd53w0xp3h0fnzhb5v0"; depends=[]; };
   beast = derive2 { name="beast"; version="1.1"; sha256="0ikbnzdzp2lv1nh5mxxanra81v4dl6svg3ywqcqd6wgzri70a4ry"; depends=[RColorBrewer]; };
-  beastier = derive2 { name="beastier"; version="2.5"; sha256="0inycswavvp0cpgj86j95djc58fa07kg9n8f281grncjzmj8980b"; depends=[ape beautier phangorn rappdirs readr rJava rlang sessioninfo stringr tibble xml2]; };
-  beautier = derive2 { name="beautier"; version="2.6.11"; sha256="1gn6hwlk58sg9jjiqccqaqv8vs0xpk87h4l02kb9j51n3jj5sg38"; depends=[ape purrr rappdirs rlang seqinr stringr]; };
+  beastier = derive2 { name="beastier"; version="2.5.1"; sha256="1crdi1pmz7gf75089czvvfi31i67i6z0zak9vdppc9bwyrcj1j7f"; depends=[ape beautier phangorn rappdirs readr rJava rlang sessioninfo stringr tibble xml2]; };
+  beautier = derive2 { name="beautier"; version="2.6.12"; sha256="116k8lkbf872db3b377l6ls2pymmdvshyxlijyplph4gvy8y5vgn"; depends=[ape purrr rappdirs rlang seqinr stringr]; };
+  beaver = derive2 { name="beaver"; version="1.0.0"; sha256="0l33g09df9vqigfrafwwsi71qrfb2rrnlp7qbx7rjpqi8dspj2rd"; depends=[checkmate dplyr ellipsis fs ggplot2 purrr rjags rlang stringr tibble tidyr yodel]; };
   bedr = derive2 { name="bedr"; version="1.0.7"; sha256="0zpqvyjgwyqawxm8qrhcv8zq2b3yxgcqkkc87br29yrl7sjb8h6j"; depends=[data_table R_utils testthat VennDiagram yaml]; };
   beepr = derive2 { name="beepr"; version="1.3"; sha256="061sfld23b516jws4llml0a4jsdk4z74rll4z58l2rvahkqsdrfp"; depends=[audio stringr]; };
   beeswarm = derive2 { name="beeswarm"; version="0.4.0"; sha256="016mqcbdksialkmap56rprzna9b6cd6896ml9gl2n2h8yjdk7x2i"; depends=[]; };
@@ -6939,16 +7072,17 @@ in with self; {
   bentcableAR = derive2 { name="bentcableAR"; version="0.3.1"; sha256="1d65xaqz0v2wjm6nxl0lyzjynrgizdvzpj2cqa0nhlczcg6xi62r"; depends=[]; };
   benthos = derive2 { name="benthos"; version="1.3-8"; sha256="0pznxnf4wl47wc926diaf4h6x12grc9vxbzd8d4d5j18dp3wvr5z"; depends=[dplyr lazyeval readr]; };
   berryFunctions = derive2 { name="berryFunctions"; version="1.22.5"; sha256="1kd1r8ha1dggqmpiiwxvgfk5igshkfaqnkhkrjn7s79xqz2bsq1k"; depends=[abind]; };
+  bespatial = derive2 { name="bespatial"; version="0.1.2"; sha256="1sbgi4dcddjwgs4dzwn3zf91kx07kr5vc9dblvijgfasqhpfjv5m"; depends=[belg comat landscapemetrics Rcpp RcppArmadillo terra tibble]; };
   bestNormalize = derive2 { name="bestNormalize"; version="1.9.1"; sha256="1lryl23jvf51n7ka58ncwhjglk0zzm18wik962h403j4mph1jjly"; depends=[butcher doParallel doRNG dplyr foreach generics LambertW nortest purrr recipes tibble]; };
   bestSDP = derive2 { name="bestSDP"; version="0.1.2"; sha256="1rff6jij9wmlpalzilvid8jvj2pczrchx0yrg0vhy00j64zg6jzs"; depends=[dplyr DT ggplot2 readxl rlist shiny shinyBS shinydashboard shinyjs shinythemes shinyWidgets stringr tidyr]; };
   bestglm = derive2 { name="bestglm"; version="0.37.3"; sha256="1zncy958hlwyyxrp6yvq1inq6mpyrbr6cdkf8maijfirr5j8f0ya"; depends=[glmnet grpreg lattice leaps pls]; };
   besthr = derive2 { name="besthr"; version="0.3.2"; sha256="0mg1nm014p82n9v5f929rcrpqclqs5kh8hga8gd7h29jqykgirc0"; depends=[dplyr ggplot2 ggridges magrittr patchwork rlang stringr tibble]; };
   bestridge = derive2 { name="bestridge"; version="1.0.7"; sha256="10nlk1vrzmgxfia9b3skmg5594ab5s3d64k2awyxybkz2pzz7gb1"; depends=[MASS Matrix pheatmap Rcpp RcppEigen survival]; };
   betaBayes = derive2 { name="betaBayes"; version="1.0.1"; sha256="1a7ng6ym47scgj47frrhs76r6ipq6mhgf3ivbg2npqpg7hjcz2ci"; depends=[betareg Rcpp RcppArmadillo]; };
-  betaDelta = derive2 { name="betaDelta"; version="1.0.4"; sha256="1590lxqalqg30k9zilmbddp9snig93kjxr8zvba7hlpr2zb1jayy"; depends=[numDeriv]; };
-  betaMC = derive2 { name="betaMC"; version="1.3.1"; sha256="0wiccdiaqmza4fgcnyf9z833rnqzrm7shb0xvajcfa8d3vpp92z0"; depends=[]; };
-  betaNB = derive2 { name="betaNB"; version="1.0.3"; sha256="0smjygh6z91r798b9sx7mxj1ksm66wf356jw0pfkgwmr7nxk66a7"; depends=[]; };
-  betaSandwich = derive2 { name="betaSandwich"; version="1.0.6"; sha256="06jjcl4ajhd1g0n9w2p3wn6pvdwxkv4rwrzbllhr8zggdbnh2j5r"; depends=[]; };
+  betaDelta = derive2 { name="betaDelta"; version="1.0.5"; sha256="1d9fdi4bvhqih45iism5mkpqrmfl4mgjhsqkb5jkpyyd3la059y6"; depends=[numDeriv]; };
+  betaMC = derive2 { name="betaMC"; version="1.3.2"; sha256="08rw2q8dg51ygmns070qpd1204k9hizpqfzggj542sq2ssgc7byk"; depends=[]; };
+  betaNB = derive2 { name="betaNB"; version="1.0.4"; sha256="1qfpp4y3drqh492y7x67jkqbabkqbmsbc2yqvbzc427pd3n9ijs5"; depends=[]; };
+  betaSandwich = derive2 { name="betaSandwich"; version="1.0.7"; sha256="0gd6n1xghwhqg981ibb41w2hw3wk5zzr3870wpjbic4k96cnmvyb"; depends=[]; };
   betacal = derive2 { name="betacal"; version="0.1.0"; sha256="19wgpgf9yhckl9qx9v24f4yh055wfalphcxwm7lg68px6ap2pxl9"; depends=[]; };
   betaclust = derive2 { name="betaclust"; version="1.0.3"; sha256="1w76c7yxgnc98p6lwh5mxrrgv1kk5dgjgp12g0vs25l4fb7advqp"; depends=[doParallel foreach ggplot2 plotly pROC scales]; };
   betafunctions = derive2 { name="betafunctions"; version="1.9.0"; sha256="1sm33z8nzbh4savzw3zc81bg9g0n83xfibmd5kklq02h3105d4v4"; depends=[]; };
@@ -6972,17 +7106,17 @@ in with self; {
   bggum = derive2 { name="bggum"; version="1.0.2"; sha256="04vr9z81awavkhk3lbi8yasmi242lrbnq0pzqp38xlrn5xkf8b1w"; depends=[Rcpp RcppDist]; };
   bgmfiles = derive2 { name="bgmfiles"; version="0.0.6"; sha256="10qldfjjq5fx5jrrakdxc8k2pf0vp8ifg18nq56lvx9n28mqigim"; depends=[]; };
   bgmm = derive2 { name="bgmm"; version="1.8.5"; sha256="1qng8zlpm5pp2ilny99gxyppmp5dnrada4kmvpyg2ap06i69a9gs"; depends=[car combinat lattice mvtnorm]; };
-  bgms = derive2 { name="bgms"; version="0.1.3"; sha256="194xvv80d0vlb03kj36qhp036pyj57ansilkqf4aiwvxg63a5fzg"; depends=[Rcpp RcppProgress Rdpack]; };
+  bgms = derive2 { name="bgms"; version="0.1.3.1"; sha256="0ylvr1sbn2mq2cc7lkgf8qfw08qyg2xvcwa29964qwdjl76dl05g"; depends=[Rcpp RcppProgress Rdpack]; };
   bgsmtr = derive2 { name="bgsmtr"; version="0.7"; sha256="17706qims9637ppwg0vszkcm6kmvhzyrdihkgigpiv5lknhk2q3m"; depends=[CholWishart coda EDISON glmnet inline LaplacesDemon Matrix matrixcalc miscTools mnormt mvtnorm Rcpp sparseMVN statmod]; };
   bgumbel = derive2 { name="bgumbel"; version="0.0.3"; sha256="18k8dy44x49hr4s37hjrq60c3cbw0slc9gjmd8gwcbz4slix2ydk"; depends=[coda MASS MCMCpack quantreg SparseM]; };
-  bgw = derive2 { name="bgw"; version="0.1.2"; sha256="0az4n3jh02p0smzfx57mpg8q2yrk63fdpb6qcsbpphkicjmvh8bn"; depends=[]; };
+  bgw = derive2 { name="bgw"; version="0.1.3"; sha256="0iw36qifawm5jlsjzv4y4kl228hz4clbgzf02dpxv7579nlnibm7"; depends=[]; };
   bhm = derive2 { name="bhm"; version="1.18"; sha256="05gr5qmd6dzfylay60wazi0iyvj9r0xhzdk7jm7wrsrag7i43z1p"; depends=[coda ggplot2 MASS survival]; };
   bhmbasket = derive2 { name="bhmbasket"; version="0.9.5"; sha256="1mcgbvlnrmxlxqcjmc7ij7qn3zqfwsmbx2r2facbqrf043hmiipc"; depends=[doRNG foreach R2jags]; };
   bhpm = derive2 { name="bhpm"; version="1.7"; sha256="0fhk2gmghibf7la864dzm19bm76525gzbj03vw0y0zwbv9shbpcp"; depends=[coda]; };
   biClassify = derive2 { name="biClassify"; version="1.3"; sha256="14z3kmpmlvnkjwpjspajdfx5951cmck4binszzdd7nqbai5f1dwv"; depends=[DAAG expm fields MASS Matrix mvtnorm Rcpp RcppArmadillo]; };
-  bib2df = derive2 { name="bib2df"; version="1.1.1"; sha256="0d57883df774qqwpssmly3f1gci32yc5sgwc3x8f2rjih23s1nf6"; depends=[dplyr httr humaniformat stringr]; };
-  biblio = derive2 { name="biblio"; version="0.0.8"; sha256="1mp4k4gw8l2fywffkkja7bl2bbgl6bjznac4nva7643hp4pj3ags"; depends=[stringr yamlme]; };
-  bibliometrix = derive2 { name="bibliometrix"; version="4.1.4"; sha256="1m0bmafpn4mrk8hi39gsnrvfrqm4s5dmwv453rnkrsg98a2yz0n2"; depends=[bibliometrixData dimensionsR dplyr DT FactoMineR forcats ggplot2 ggrepel igraph Matrix openalexR openxlsx plotly pubmedR readr readxl rscopus shiny SnowballC stringdist stringi tidyr tidytext]; };
+  bib2df = derive2 { name="bib2df"; version="1.1.2.0"; sha256="1w7x6jj8x3rv1ms8278jwszj8d4g5b59drs7gdfsrbp1x74npcr1"; depends=[dplyr httr humaniformat stringr]; };
+  biblio = derive2 { name="biblio"; version="0.0.10"; sha256="0ml6sh0ki04kqyfixd0cxmxpdxznisifaqnjdshvrvi1yqjq12ih"; depends=[rcrossref stringr yamlme]; };
+  bibliometrix = derive2 { name="bibliometrix"; version="4.2.3"; sha256="0amlqzc3ngh4r0gzk4y110kjl79gd4h5b4i6bid19v8q5qi3g3gm"; depends=[bibliometrixData ca dimensionsR dplyr DT forcats ggplot2 ggrepel igraph Matrix openalexR openxlsx plotly pubmedR readr readxl rscopus shiny SnowballC stringdist stringi tidyr tidytext]; };
   bibliometrixData = derive2 { name="bibliometrixData"; version="0.3.0"; sha256="0dkg5g9il95w9glzvhjdgp8z30prydspvpz5bb403vaizykwv9kl"; depends=[]; };
   biblionetwork = derive2 { name="biblionetwork"; version="0.1.0"; sha256="0nhx9bk7r5l0bvj98clnmwf53ihghf48zai4nj6pcgr2rb69fvjj"; depends=[data_table Rdpack]; };
   bibliorefer = derive2 { name="bibliorefer"; version="0.1.0"; sha256="0sqj4gpdlx3ahaxh07jvgaidxa5svi3r014v2mmpmi90qym35fkl"; depends=[]; };
@@ -6991,28 +7125,26 @@ in with self; {
   bibtex = derive2 { name="bibtex"; version="0.5.1"; sha256="1l9y945qmpla68rx6dnaxc83vmvkw26cw4zzfgfsvi36wsja1hgk"; depends=[backports]; };
   biclust = derive2 { name="biclust"; version="2.0.3.1"; sha256="11fcb6z5lzz6yl8hsa8ppr53i8yn8k4m19k55ynznhkw780184c7"; depends=[additivityTests colorspace flexclust ggplot2 lattice MASS tidyr]; };
   biclustermd = derive2 { name="biclustermd"; version="0.2.3"; sha256="1knhz96k5giq3d16i3akl5gbxrzx3vxm97cb3ivaw835fr9zrmr5"; depends=[biclust doParallel dplyr foreach ggplot2 magrittr nycflights13 phyclust tidyr]; };
-  bidask = derive2 { name="bidask"; version="2.0.2"; sha256="0pk1gc6wssyssjm7hp52mpmqnsk4s02kv205294qzif4qlvxwvq6"; depends=[xts zoo]; };
+  bidask = derive2 { name="bidask"; version="2.0.4"; sha256="1sdzn2src3m4w6mjn9v67qyn0g0pzmgbkwqqphnq7pwwy94qd6i3"; depends=[xts zoo]; };
   bife = derive2 { name="bife"; version="0.7.2"; sha256="0xikxniwzcv6jc64rgx39hddqchxk6c43h45algssbz2vaxvc4zg"; depends=[data_table Formula Rcpp RcppArmadillo]; };
-  bifurcatingr = derive2 { name="bifurcatingr"; version="2.0.0"; sha256="1755976gx723gqy94myvh5ng7bn1qisb3488mgix27af3cmrmjfi"; depends=[fMultivar]; };
-  bigBits = derive2 { name="bigBits"; version="1.1"; sha256="0vakcy5ymd4b5mhz5vjbkhp82bikdajh6wag4cgzbl3vdvx85xhf"; depends=[gmp Rmpfr]; };
+  bifurcatingr = derive2 { name="bifurcatingr"; version="2.1.0"; sha256="0qk009q0kw8h2j5qkvlpkhcmjw9cac9xqvi1v3r721n7cmx340sx"; depends=[fMultivar]; };
+  bigBits = derive2 { name="bigBits"; version="1.2"; sha256="0qrbm4d3rihy7dvc3lvailmarq1n2hs7qv6wqrgjd0pxnz62j7p7"; depends=[gmp Rmpfr]; };
   bigD = derive2 { name="bigD"; version="0.2.0"; sha256="0pzzqqazn1nv2b613vzdyhxvr454lyqq8235jydia6r3k86fpadw"; depends=[]; };
-  bigDM = derive2 { name="bigDM"; version="0.5.3"; sha256="1hav79f5lw1yh4651j7ag6x9kag1dzpb6damz0xfmqrbpgdbq63a"; depends=[crayon doParallel fastDummies foreach future future_apply geos MASS Matrix RColorBrewer Rdpack rlist sf spatialreg spdep]; };
+  bigDM = derive2 { name="bigDM"; version="0.5.4"; sha256="0m1q8b4d20iqamypmalh66gkp0rba8ir2m48k5y9j05wfmshkqc4"; depends=[crayon doParallel fastDummies foreach future future_apply geos MASS Matrix RColorBrewer Rdpack rlist sf spatialreg spdep]; };
   bigGP = derive2 { name="bigGP"; version="0.1.8"; sha256="0awsskpdky56llqc7flgwzs6646cvvn8q50x8gj0hkknfm8fs1rz"; depends=[Rmpi]; };
   bigMap = derive2 { name="bigMap"; version="2.3.1"; sha256="08c9s5sk672j70d6pnva7z52i4s3knkby06lva9al9n8a3jiwsvz"; depends=[BH bigmemory colorspace RColorBrewer Rcpp RcppArmadillo]; };
   bigQF = derive2 { name="bigQF"; version="1.6"; sha256="01qr1cw5v330kkddmgwk4fdlm6msnqcbx1kfzw390yfwq5pr84sy"; depends=[CompQuadForm coxme Matrix svd]; };
   bigReg = derive2 { name="bigReg"; version="0.1.5"; sha256="08rpkskvsnmln4583074nxlkjf2qkg61v24c0lbj27rfp2ab0wzw"; depends=[MASS Rcpp RcppArmadillo uuid]; };
   bigSurvSGD = derive2 { name="bigSurvSGD"; version="0.0.1"; sha256="08i6hwfr4rpvmxfa0vx8bi2dsa63iasj049ndwfn6zgvai6qaz0s"; depends=[bigmemory doParallel foreach Rcpp survival]; };
   bigalgebra = derive2 { name="bigalgebra"; version="1.1.1"; sha256="07xzgddnqxn8l41p79qqsvvg4rj03qdqlr3jhfpnra6c82wlhspw"; depends=[BH bigmemory Rcpp]; };
-  biganalytics = derive2 { name="biganalytics"; version="1.1.21"; sha256="19drir6vclzz1ffccvnkxnmiqnwmddiqm7y64pz4j6ifxpc1igfy"; depends=[BH biglm bigmemory foreach Rcpp]; };
+  biganalytics = derive2 { name="biganalytics"; version="1.1.22"; sha256="0y9zr4gr31l4q2j78nqyh4svlgsd7f5x8jkhgsflfr6agia77gyh"; depends=[BH biglm bigmemory foreach Rcpp]; };
   bigassertr = derive2 { name="bigassertr"; version="0.1.6"; sha256="0bk11jinlc1cvm6aaq9mccs9i328b8s2lbwq63a42fgf1qng103p"; depends=[]; };
   bigchess = derive2 { name="bigchess"; version="1.9.1"; sha256="1vdzx185y1agh1xjf7qcfi2s6l7qzm1kx6b2kr3cbz2in88bws3n"; depends=[processx]; };
   bigdatadist = derive2 { name="bigdatadist"; version="1.1"; sha256="16gkybwcp9sxqb0iic2fhmc4gndr44ayg14wrfcjvjaj4g5r6xs2"; depends=[FNN MASS pdist rrcov]; };
-  bigdist = derive2 { name="bigdist"; version="0.1.4"; sha256="1qfnmhyfadmnnagbhdl4jjrb53i1srszf19idp8fy6bczbjq85yi"; depends=[assertthat bigstatsr furrr proxy]; };
-  bigergm = derive2 { name="bigergm"; version="1.1.0"; sha256="19rxm6vfr9gh5k76jfpsyxvk4hl3ir760dhdk1hh2ky2pjsnwd5w"; depends=[cachem doParallel dplyr ergm foreach glue igraph intergraph magrittr Matrix memoise network purrr Rcpp RcppArmadillo readr reticulate rlang statnet_common stringr tibble tidyr]; };
-  biglasso = derive2 { name="biglasso"; version="1.5.2"; sha256="12pgd9gpvxmcwmsbqps9pfmbi7y9x8vppa2rpkd88s8i2ll9mfpp"; depends=[BH bigmemory Matrix ncvreg Rcpp RcppArmadillo]; };
+  bigergm = derive2 { name="bigergm"; version="1.2.1"; sha256="0x8y7aijidpka117zjc80yvjlxv8cdiwxhqzy0mw33halavm10k8"; depends=[cachem dplyr ergm ergm_multi foreach glue igraph intergraph magrittr Matrix memoise network purrr Rcpp RcppArmadillo readr reticulate rlang statnet_common stringr tidyr]; };
+  biglasso = derive2 { name="biglasso"; version="1.6.0"; sha256="165bc1y5byma872yld5y5nxkhyhkfn6h4gfiqv5bkfw5hn77ijlc"; depends=[BH bigmemory Matrix ncvreg Rcpp RcppArmadillo]; };
   bigleaf = derive2 { name="bigleaf"; version="0.8.2"; sha256="1xvd1fdycyxb9da34v4ibsjwzipil5cyja3iym30q5cqcbxq47g4"; depends=[robustbase solartime]; };
-  biglm = derive2 { name="biglm"; version="0.9-2.1"; sha256="0iy9xr2bq42wlizgwlz7w5kh9206yqkw9h2cr6mcsmizgjg3rkvd"; depends=[DBI]; };
-  biglmm = derive2 { name="biglmm"; version="0.9-2"; sha256="1zj1h2hszps3w913j2dk4cyj5jsqkkxsm3pcjlc4jnq810j100l6"; depends=[DBI]; };
+  biglm = derive2 { name="biglm"; version="0.9-3"; sha256="0n0dkazq74s3lml0ds9l38kzgapckjrvwyi62qb1y14cqlylhpc0"; depends=[DBI]; };
   bigmatch = derive2 { name="bigmatch"; version="0.6.4"; sha256="1a3qiljarnv14dmpr5g2nfxzaf4wmw88md4kjrlrlgxcgmijlwm6"; depends=[liqueueR mvnfast plyr rcbalance]; };
   bigmds = derive2 { name="bigmds"; version="3.0.0"; sha256="1pkmzpibmch8zxlp08r460cvszwh4pshi9b8lafmkspj4pdkxlr9"; depends=[corpcor pracma svd]; };
   bigmemory = derive2 { name="bigmemory"; version="4.6.4"; sha256="0b80c2nsgphgr3cnvf75a0z3bzqx4q1a4dplq0h2izc71mn5fgzy"; depends=[BH bigmemory_sri Rcpp uuid]; };
@@ -7021,10 +7153,10 @@ in with self; {
   bigparallelr = derive2 { name="bigparallelr"; version="0.3.2"; sha256="14rkcig4j93c231sfm43331ykmvxjx2fiz5nhblj2rfzkxli4css"; depends=[bigassertr doParallel flock foreach parallelly RhpcBLASctl]; };
   bigreadr = derive2 { name="bigreadr"; version="0.2.5"; sha256="15wy5rphk2l59k8fk68a15xsvy8nxj1srnc2c86i7y5ym04a856k"; depends=[bigassertr data_table parallelly Rcpp]; };
   bigrquery = derive2 { name="bigrquery"; version="1.5.1"; sha256="0wkm9xka83skq1cnv830q4jnqvwm8rlmns2mj8n692h2y5qxlmna"; depends=[bit64 brio cli clock cpp11 curl DBI gargle httr jsonlite lifecycle prettyunits rapidjsonr rlang tibble]; };
-  bigrquerystorage = derive2 { name="bigrquerystorage"; version="1.0.0"; sha256="0gkg82b281gdpfm8cwb2jzs5nd829vd8m91rjlz79lyfkjdi4b27"; depends=[arrow assertthat bigrquery bit64 DBI lifecycle Rcpp rlang tibble]; };
+  bigrquerystorage = derive2 { name="bigrquerystorage"; version="1.1.0"; sha256="1idhaf6i7sbrdmzzc0ks76yr47lpl63lcjprsnjzwkyc124nx606"; depends=[arrow assertthat bigrquery bit64 DBI lifecycle Rcpp rlang tibble]; };
   bigsimr = derive2 { name="bigsimr"; version="0.12.0"; sha256="1cvj6p5g2g8ldi3g6d1mvhsf8xcsxgqd71frghdqybz6f1vdbs34"; depends=[JuliaCall]; };
   bigsnpr = derive2 { name="bigsnpr"; version="1.12.2"; sha256="1xl7456xnid6pvvcppm4297vmgln7f4n15ziz0yfp5i5mqlmafj4"; depends=[bigassertr bigparallelr bigreadr bigsparser bigstatsr bigutilsr data_table doRNG foreach ggplot2 magrittr Matrix Rcpp RcppArmadillo rmio roptim runonce vctrs]; };
-  bigsparser = derive2 { name="bigsparser"; version="0.6.1"; sha256="0b6hh1rvi7qnz9kfnckjglcv240inpnc5f50cyrpfq5gdyppzhy1"; depends=[bigassertr Matrix Rcpp RcppEigen rmio]; };
+  bigsparser = derive2 { name="bigsparser"; version="0.7.1"; sha256="0ppmv09n5ypm8jhsd580flk4k6p255k7az9k96fzjwjfrn0vmm74"; depends=[bigassertr Matrix Rcpp RcppEigen rmio]; };
   bigsplines = derive2 { name="bigsplines"; version="1.1-1"; sha256="1kf04p2lglzdi1fdryk27nmj2a2jca2ii7ki8vak93sq21isb179"; depends=[quadprog]; };
   bigstatsr = derive2 { name="bigstatsr"; version="1.5.12"; sha256="1wj169j91yjlb12dzy80q7rvi102l7fhlzfvc93rxifq2w3px9x8"; depends=[bigassertr bigparallelr cowplot foreach ggplot2 ps Rcpp RcppArmadillo rmio RSpectra tibble]; };
   bigstep = derive2 { name="bigstep"; version="1.1.1"; sha256="1bppvib57p6m91c2v9w9lgb1k3jg8mk3w2kkbjvwgsdwy4m8fhap"; depends=[bigmemory magrittr matrixStats R_utils RcppEigen speedglm]; };
@@ -7046,7 +7178,7 @@ in with self; {
   binaryMM = derive2 { name="binaryMM"; version="0.1.1"; sha256="0vjs3in8rih5iinlfcrilpqwqjxkdf01h6giv993zy8l3s28r9yd"; depends=[fastGHQuad MASS Rcpp]; };
   binb = derive2 { name="binb"; version="0.0.6"; sha256="0j9iyawkn1mqvf52q1abp0k00r5239rkvvmvl3cmp4jlffxd4xd7"; depends=[knitr rmarkdown]; };
   binda = derive2 { name="binda"; version="1.0.4"; sha256="0fgdpdjbw95rwv7l0acfb9cf7s57q5ld2vgdvrv1pxwkyi902nh4"; depends=[entropy]; };
-  bindata = derive2 { name="bindata"; version="0.9-20"; sha256="0smym431w755azsawwsdk6412dfj7bz3bdc3mqzam50xard4s94l"; depends=[e1071 mvtnorm]; };
+  bindata = derive2 { name="bindata"; version="0.9-21"; sha256="0s1f7jvlr8xjn89ns5kq0wyvcibdvhyaw92pz1p14nbmg8lqky5d"; depends=[e1071 mvtnorm]; };
   bindr = derive2 { name="bindr"; version="0.1.1"; sha256="1l05fpk2yql3jka321c0bdgx6mqq9pvfrg2844lbjfpbgjkmqy3w"; depends=[]; };
   bindrcpp = derive2 { name="bindrcpp"; version="0.2.3"; sha256="1yn9is89r76ay314s216whr0igych4r78kjz85amhwgfb9wawbb6"; depends=[bindr plogr Rcpp]; };
   binequality = derive2 { name="binequality"; version="1.0.4"; sha256="19sm4gk7pnp0aq0bil3acm2jc6w26pkj11vvxzysgs1xlmsra7vg"; depends=[gamlss gamlss_cens gamlss_dist ineq survival]; };
@@ -7076,23 +7208,24 @@ in with self; {
   bioRad = derive2 { name="bioRad"; version="0.7.3"; sha256="0gschmraqc76yiqdn48cg1qnd0p7b6x7h2gr54a84pb4ivbn6vyy"; depends=[assertthat curl dplyr fields frictionless ggplot2 glue jsonlite lubridate lutz raster readr rhdf5 rlang sp suntools tidyr viridis viridisLite]; };
   bioSNR = derive2 { name="bioSNR"; version="1.0"; sha256="19blfbw9d0did76llgffs8dyld8yr6wf4rmxmr2fb4vp1s8m2izc"; depends=[dplyr ggplot2 pracma scales]; };
   bioacoustics = derive2 { name="bioacoustics"; version="0.2.8"; sha256="08qhxx7xgswjamrgg82pkg1f7w50dx9ln67d50n1p3rvrxab4061"; depends=[htmltools moments Rcpp stringr tuneR]; };
-  bioassays = derive2 { name="bioassays"; version="1.0.1"; sha256="1y32wxkv14l7r0f35y4hxxxh3zpw2gd4hsjmkajhmzmnvg5jdw78"; depends=[dplyr ggplot2 magrittr nplr reshape2 rlang]; };
   biobricks = derive2 { name="biobricks"; version="0.2.2"; sha256="0xa6pd7c4sdq4wzn8053drr063cjll7lpg5k3k146zz0z6rczg30"; depends=[]; };
   bioclim = derive2 { name="bioclim"; version="0.4.0"; sha256="15a2v5l4ydn2zsnbwkrwpfvcj5xzhwj1diqrr9vp1i42w9ci55h2"; depends=[berryFunctions ggplot2 reshape2 rmarkdown terra]; };
   biocompute = derive2 { name="biocompute"; version="1.1.1"; sha256="102n8y83z8568lwil2fb28wrjkymwmw9rzvk0a4zgsx5a3l7wl01"; depends=[cli crayon curl digest httr jsonlite jsonvalidate magrittr rmarkdown stringr uuid yaml]; };
   biodosetools = derive2 { name="biodosetools"; version="3.6.1"; sha256="013nqdqrv5h3swzqss2kazsp06wrs57zri3aaidy92wrd6v24bsh"; depends=[bsplus cli config dplyr ggplot2 golem magrittr MASS maxLik mixtools msm rhandsontable rlang rmarkdown shiny shinydashboard shinyWidgets tidyr]; };
   biogas = derive2 { name="biogas"; version="1.23.2"; sha256="05g6nyi872skvr34kw5c71ggnnjc3fv95imc327yjqhmqmwx3m19"; depends=[]; };
-  biogeom = derive2 { name="biogeom"; version="1.4.2"; sha256="0fbgi2xdld42aprbx2zlyghbq1yn93grw2gc7rargxjf151b990d"; depends=[spatstat_geom]; };
+  biogeom = derive2 { name="biogeom"; version="1.4.3"; sha256="0wzj99ldk0654s1a8d1b4q57mahv4mjzndx5bj1hakmsdrwa6q8b"; depends=[spatstat_geom]; };
   biogram = derive2 { name="biogram"; version="1.6.3"; sha256="1y7yaa6xwv11b6a4qf4qb3d7rsz0yiiq1k5mb0dbm3avydnl9c4b"; depends=[combinat entropy partitions slam]; };
-  biogrowth = derive2 { name="biogrowth"; version="1.0.3"; sha256="0x4x9awqpda76g9hy8d9mw48c07ki2iwlbq5qaa7mw2pp8hg8kh5"; depends=[cowplot deSolve dplyr FME formula_tools ggplot2 lamW lifecycle MASS purrr rlang tibble tidyr]; };
+  biogrowth = derive2 { name="biogrowth"; version="1.0.4"; sha256="19czyp7n4ip01psl8hbiihfhj52vdp6nsq0h7cnl7p9h0ax9wcj5"; depends=[cowplot deSolve dplyr FME formula_tools ggplot2 lamW lifecycle MASS purrr rlang tibble tidyr]; };
   bioimagetools = derive2 { name="bioimagetools"; version="1.1.8"; sha256="1b7nxjis0p1hiv3w0cr3cyc2xz6sn9qbpssvlp2d7c5gm8x2gnj7"; depends=[EBImage httr tiff]; };
   bioinactivation = derive2 { name="bioinactivation"; version="1.2.3"; sha256="0gz1bbakf6b23jsbvrr8314yxajxcr1akm5srgm883lrf1p5ax13"; depends=[deSolve dplyr FME ggplot2 lazyeval MASS purrr rlang]; };
   biolink = derive2 { name="biolink"; version="0.1.8"; sha256="03jsvzy6fqbx3w6gs7v1mnznkqwsad3ywdb4wxp0mbaq4vrsandm"; depends=[DBI glue memoise rentrez RMySQL xml2]; };
+  biologicalActivityIndices = derive2 { name="biologicalActivityIndices"; version="0.1.0"; sha256="022qip20nwv0xfxnx5507bsa7finnixjshvf60ssnagbchvgwvz9"; depends=[]; };
   biomartr = derive2 { name="biomartr"; version="1.0.7"; sha256="0ic6qbk2xmgrcc0xhxyhjafp1xbf2c5dpbqqrbkprrhynr8mq7cx"; depends=[biomaRt Biostrings curl data_table downloader dplyr fs httr jsonlite philentropy purrr R_utils RCurl readr stringr tibble withr XML]; };
-  biometryassist = derive2 { name="biometryassist"; version="1.1.3"; sha256="03r14hbc3hllxz5hjraq0ry38899vml6cq71ls8kdn98gi5c6gan"; depends=[agricolae cowplot curl emmeans farver ggplot2 lattice multcompView pracma rlang scales stringi]; };
-  biomod2 = derive2 { name="biomod2"; version="4.2-4"; sha256="0ky6wy0gj3vy0bzdvxqzc7gfgb0bshjgzs9r37y902prbl3n70f2"; depends=[abind dplyr earth foreach gbm ggplot2 MASS maxnet mda nnet PresenceAbsence pROC randomForest reshape reshape2 rpart sp terra xgboost]; };
+  biometryassist = derive2 { name="biometryassist"; version="1.2.1"; sha256="1gj2lfsi8rnvc61sz70rvii1xhszl84wfvy6lsnwgh26vnj890wf"; depends=[agricolae askpass cowplot curl emmeans farver ggplot2 lattice multcompView pracma rlang scales stringi xml2]; };
+  biomod2 = derive2 { name="biomod2"; version="4.2-5-2"; sha256="1rdlkspi0hkgnrc4qs7vgbmcpsf74nzdq8w0akg59bynp0ks8k0w"; depends=[abind dplyr foreach gbm ggplot2 MASS PresenceAbsence pROC reshape reshape2 rpart sp terra]; };
   bionetdata = derive2 { name="bionetdata"; version="1.1"; sha256="14ll1m85pcr0xycczk1y9jxiqxfy5daiigfhqn4f6sfk2afy07yr"; depends=[]; };
-  bioregion = derive2 { name="bioregion"; version="1.1.0"; sha256="0q7kdgi2nkqgs690n6qiakh0zbvy21nw7a2k7kj3nbr5hk0zlzd6"; depends=[ape bipartite cluster data_table dbscan dynamicTreeCut fastcluster fastkmedoids ggplot2 igraph mathjaxr Matrix Rcpp Rdpack rlang rmarkdown segmented sf tidyr]; };
+  biopixR = derive2 { name="biopixR"; version="1.0.0"; sha256="1ab5sqik4pnkq4f3dhf27z5c74jqrj8r95pwz2rdhaagm5ac8iyy"; depends=[cluster data_table imager magick]; };
+  bioregion = derive2 { name="bioregion"; version="1.1.1"; sha256="03qjyaw1kiqn9q4wc49rzy6vp83pf5567y07ih4rgp1r3pamnif0"; depends=[ape bipartite cluster data_table dbscan dynamicTreeCut fastcluster fastkmedoids ggplot2 igraph mathjaxr Matrix Rcpp Rdpack rlang rmarkdown segmented sf tidyr]; };
   bios2mds = derive2 { name="bios2mds"; version="1.2.3"; sha256="1k0r3fnkzfczx3wp3m8zpndk6gxca7idsp0z13rw84zjrgqaw6jm"; depends=[amap cluster e1071 rgl scales]; };
   biosampleR = derive2 { name="biosampleR"; version="1.0.4"; sha256="1cx6as9nvivx5laz029wrbd7jrhl3fhqj0lm1sb65ckx3arm8dwj"; depends=[ggplot2]; };
   biosensors_usc = derive2 { name="biosensors.usc"; version="1.0"; sha256="076isyk7dfjpi5db7ghk0hmz2kkdgmrnj3g9ffdnim5gxq3zsf1h"; depends=[energy fda_usc osqp parallelDist Rcpp RcppArmadillo truncnorm]; };
@@ -7102,13 +7235,14 @@ in with self; {
   biostat3 = derive2 { name="biostat3"; version="0.1.9"; sha256="1pq8w7xh4l1f6z9k9k022a3szhkhsyhrkzdmqqfjhwx2cymcxalp"; depends=[MASS muhaz survival]; };
   biotic = derive2 { name="biotic"; version="0.1.2"; sha256="1p18jkdd263dgk90626n9awkj6m4zn1n7897596fzrzrahksa978"; depends=[]; };
   biotools = derive2 { name="biotools"; version="4.2"; sha256="1dyy9mk2afjbc8g1qygy6h1aksbhndm53c4sb5mfzriydl03ibxv"; depends=[boot MASS]; };
-  bipartite = derive2 { name="bipartite"; version="2.19"; sha256="0a4z5hdsr0j38bzgm7wggn4a8m2zf4fp2f82m20wckx55nvjj64z"; depends=[fields igraph MASS permute sna vegan]; };
-  bipartiteD3 = derive2 { name="bipartiteD3"; version="0.3.0"; sha256="1b4nw1hqw645j8blf2b1hhnar7ffc4bw0zb07ycfjqd2prnif8pd"; depends=[downloader dplyr purrr r2d3 RColorBrewer stringr tibble tidyr]; };
+  bipartite = derive2 { name="bipartite"; version="2.20"; sha256="0wgx695r5knlrzg0wv5h2sivh3xzjsb50lafmb08j1fvg3hnrxl6"; depends=[fields igraph MASS permute sna vegan]; };
+  bipartiteD3 = derive2 { name="bipartiteD3"; version="0.3.1"; sha256="0w2bnlaga8nxdidrhgz34hqbxb5882jbz31a7g4n283gbz5w1b9g"; depends=[downloader dplyr purrr r2d3 RColorBrewer stringr tibble tidyr]; };
   bipd = derive2 { name="bipd"; version="0.3"; sha256="1d8mcanmkjki3md047widfgf2hi905w24hibqsg1r7nr8d0g03yg"; depends=[coda dplyr mvtnorm rjags]; };
   bipl5 = derive2 { name="bipl5"; version="1.0.2"; sha256="0anir5fgvac9ka5y9wfar7pbwdqd0qwx6hynlmr6jwhna57linly"; depends=[cluster crayon htmlwidgets knitr plotly]; };
   biplotEZ = derive2 { name="biplotEZ"; version="1.2.0"; sha256="0fhafa00x1vj8lvhjm10daw8an62jsycsiq31skm547ig09fccym"; depends=[ggplot2 ggrepel withr]; };
   biplotbootGUI = derive2 { name="biplotbootGUI"; version="1.3"; sha256="1z2mlfya6c4lh970p6hpf8sqhxz7wjl16d1lx2djv4cr8sj7nhdh"; depends=[cluster dendroextras MASS matlib rgl shapes tcltk2 tkrplot]; };
   birankr = derive2 { name="birankr"; version="1.0.1"; sha256="1azgrzgw5bnfac8p287ir5zl6kxc6jij20p6cfc3lbbl03f8sa1k"; depends=[data_table Matrix]; };
+  birdie = derive2 { name="birdie"; version="0.6.1"; sha256="1xh3ga5f16p46jrw7xj2mwv41mnib0mijin2005q9wrfr5pr54yc"; depends=[BH cli dplyr generics Rcpp RcppEigen RcppParallel RcppThread rlang SQUAREM StanHeaders stringi stringr vctrs]; };
   birdring = derive2 { name="birdring"; version="1.6"; sha256="17f6hlvz6k4ya82nai7j474k55w3is8if4vckbwqq1c4lj9zfm6r"; depends=[geosphere ks lazyData raster]; };
   birdscanR = derive2 { name="birdscanR"; version="0.2.0"; sha256="0vbvf9512214sgah3jsn7cdy8abkyr9pvaqaivqjrhyfpv9fvbr1"; depends=[DBI dplyr ggplot2 magrittr modi reshape2 RODBC RPostgreSQL rstudioapi sp suntools tibble tidyr]; };
   birk = derive2 { name="birk"; version="2.1.2"; sha256="07ck59m5mw897a60vmdn1b3qrmqj20qpfsn3093haqbpn8z13dmn"; depends=[]; };
@@ -7131,28 +7265,28 @@ in with self; {
   biwavelet = derive2 { name="biwavelet"; version="0.20.21"; sha256="0v7arwmng2i22svj836i57q8by9x5pghjv7d35g7r35wakrm8jyx"; depends=[fields foreach Rcpp]; };
   biwt = derive2 { name="biwt"; version="1.0.1"; sha256="0gg381jhwdc0kc8v0yn7wcgjkpn8dfnnn20m5ycjv66jlk2jhdcw"; depends=[MASS robustbase]; };
   bizdays = derive2 { name="bizdays"; version="1.0.16"; sha256="0drdmry39k6rxyy4x7d667znsv8r8ias66z0bvxkfk5vamsv744i"; depends=[jsonlite]; };
-  bizicount = derive2 { name="bizicount"; version="1.3.2"; sha256="10h99fzaa7b8wyzrpjkzqnn93f48sy1s9nhpw5l971mr2qss2zzz"; depends=[DHARMa Formula MASS numDeriv pbivnorm rlang texreg]; };
+  bizicount = derive2 { name="bizicount"; version="1.3.3"; sha256="0f6qjyc81mh3f8amqm6wipr41zglv8y3khs5g8rnsx247xpshqdv"; depends=[DHARMa Formula MASS numDeriv pbivnorm rlang texreg]; };
   bkmr = derive2 { name="bkmr"; version="0.2.2"; sha256="1bzr39a53p1xkq2fi2fphv2rpsml2z25xb1ycs63p3y7qis9zlky"; depends=[dplyr fields magrittr MASS nlme tibble tidyr tmvtnorm truncnorm]; };
   bkmrhat = derive2 { name="bkmrhat"; version="1.1.3"; sha256="0l575dav5wyia37vm5j1dyljgk0k6l1hwfwsqr2gq3sb0iim4my4"; depends=[bkmr coda data_table future rstan]; };
   blackbox = derive2 { name="blackbox"; version="1.1.46"; sha256="03m93v5nk5zg039axkf02drdj2q165k73xk6waaiyi0b8w0sbl8l"; depends=[foreach geometry lattice MASS matrixStats nloptr numDeriv pbapply proxy rcdd Rcpp RcppEigen spaMM]; };
-  blackmarbler = derive2 { name="blackmarbler"; version="0.1.2"; sha256="0wjzan85jlyninvb72zk3iz0h5i4vpzxl27gj9ix9ggf94ylxljx"; depends=[dplyr exactextractr hdf5r httr lubridate purrr raster readr sf stringr tidyr]; };
+  blackmarbler = derive2 { name="blackmarbler"; version="0.2.0"; sha256="09h2vjbqnb3kfmnmsah9p00w1sff15csaw382lmzy2klxw8k5zgn"; depends=[dplyr exactextractr hdf5r httr lubridate purrr readr sf stringr terra tidyr]; };
   blaise = derive2 { name="blaise"; version="1.3.11"; sha256="1ll9yqfinc2x5bb90cvgj4mc5bl4gfsmdshi5pimnjdhzwmwa9jc"; depends=[dplyr readr stringr tibble]; };
-  blandr = derive2 { name="blandr"; version="0.5.1"; sha256="1rqas71hlf000b3z824d8ljshf8bx91bbrzaxxnx5n3chv19w6z6"; depends=[ggplot2 jmvcore knitr R6 rmarkdown stringr]; };
+  blandr = derive2 { name="blandr"; version="0.6.0"; sha256="1ckbdgyqxgycd99r0bbyw38cw6k4sq1nhi5xcc0rblck5h8hzn2i"; depends=[ggplot2 glue jmvcore knitr markdown rmarkdown stringr]; };
   blapsr = derive2 { name="blapsr"; version="0.6.1"; sha256="1vycwglrpb0d041xj3dza25am16ac80r93si8x45b5ry0aq38c46"; depends=[coda MASS Matrix RSpectra sn survival]; };
   blaster = derive2 { name="blaster"; version="1.0.7"; sha256="1p0d76dzn3kkdk6r4lp3kjh06iy3r2l4zhqwr3p888gxibzfwyb0"; depends=[Rcpp]; };
   blastula = derive2 { name="blastula"; version="0.3.5"; sha256="1ppn3lyzdrarcq1laz0r8b018p0yxzs2ji1q82lg9nnmghqzs24b"; depends=[base64enc commonmark curl digest dplyr fs getPass here htmltools httr jsonlite magrittr mime rlang rmarkdown stringr uuid]; };
   blatent = derive2 { name="blatent"; version="0.1.2"; sha256="0vmybbb5xwmlmzgzyaxiiargi4fd2f661sap2wfmjw9rav89zhmv"; depends=[coda Matrix mnormt R6 Rcpp RcppArmadillo truncnorm]; };
-  blavaan = derive2 { name="blavaan"; version="0.5-3"; sha256="1xldcssvrb8wy1spw5j29mxxixb3x08in6xfscwmbwnhj3c6xma7"; depends=[bayesplot BH coda future_apply lavaan loo Matrix mnormt nonnest2 Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders tmvnsim]; };
+  blavaan = derive2 { name="blavaan"; version="0.5-5"; sha256="0v8b6dax5wk3y3hnih0yfsg7cvdwqv9pxs2hd54yi8hmkmgbrlx8"; depends=[bayesplot BH coda future_apply lavaan loo Matrix mnormt nonnest2 Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders tmvnsim]; };
   blender = derive2 { name="blender"; version="0.1.2"; sha256="1qqkfgf7fzwcz88a43cqr8bw86qda33f18dg3rv1k77gpjqr999c"; depends=[vegan]; };
   blindrecalc = derive2 { name="blindrecalc"; version="1.0.1"; sha256="126mh5p1js4mm9sq3w6hs2vlx4baa6gzm9b9jybllfi751jsgjw5"; depends=[Rcpp]; };
   blindreview = derive2 { name="blindreview"; version="2.0.0"; sha256="0hfqcykk5yg3sccqf73lxikb39ryir8fsd7a0qshpdxvbdjm6l1p"; depends=[Hmisc]; };
   blink = derive2 { name="blink"; version="1.1.0"; sha256="053nw592sglzh6fgz7hj8ra6q7lqs83hhv14kcgs67b56q8a3crb"; depends=[plyr stringdist]; };
-  bliss = derive2 { name="bliss"; version="1.0.4"; sha256="02kln40z10wngydn7y4x5shd2dff74gb340nhagf49k8ql9p78xw"; depends=[MASS Rcpp RcppArmadillo]; };
+  bliss = derive2 { name="bliss"; version="1.1.0"; sha256="0s5xbk78ygyk8nc3b2279hr3cp4f0nk7nr0cam4n5h5s77cxi3fw"; depends=[ggplot2 MASS Rcpp RcppArmadillo RcppProgress]; };
   blm = derive2 { name="blm"; version="2022.0.0.1"; sha256="0pmh3fw5iv9xhr08gji1q5vcaaai5s2qq40wisqdrqn5xhk9rh2h"; depends=[]; };
   blme = derive2 { name="blme"; version="1.0-5"; sha256="0413j7gwr5yj14jamkizj55q7xii1a0kgazzj0ilqn2ascclz6k7"; depends=[lme4]; };
   blmeco = derive2 { name="blmeco"; version="1.4"; sha256="1370djpy87816bfr0g8730x7q4d4xx9aa41iqm622q5b5zm2jzmp"; depends=[arm lme4 MASS]; };
   blob = derive2 { name="blob"; version="1.2.4"; sha256="13vjy9f3zki8w1damz6kqq47689mk4l1navnwh7r6z8lqkmj52fh"; depends=[rlang vctrs]; };
-  blockCV = derive2 { name="blockCV"; version="3.1-3"; sha256="0vnhwypywgm4jrz7ir4jb1g02xhldi4i0rw18nisqs5vax6iy1ch"; depends=[Rcpp sf]; };
+  blockCV = derive2 { name="blockCV"; version="3.1-4"; sha256="00fhsiqwf6d7i48b59rgg0iw3bslg19aglzpic80gp8dgdrsrvmf"; depends=[Rcpp sf]; };
   blockForest = derive2 { name="blockForest"; version="0.2.6"; sha256="1i5vqs0hh3yc82hl8bsa647plcv0c4c95b1wzdzyslxz2m5khw0l"; depends=[Matrix Rcpp RcppEigen survival]; };
   blockTools = derive2 { name="blockTools"; version="0.6.4"; sha256="0372ca7mgzz6j0gp2yn2mjpj0kq01jg3pyhd33s65srap2n0wg0d"; depends=[dplyr MASS tibble]; };
   blockcluster = derive2 { name="blockcluster"; version="4.5.5"; sha256="03149z73d19fg5cgsgvkj2m5vb0jssxwxp83bc76q7nq8mm4rwnr"; depends=[Rcpp rtkore]; };
@@ -7180,13 +7314,14 @@ in with self; {
   bmggum = derive2 { name="bmggum"; version="0.1.0"; sha256="1r0j5gklmknyan68nc3vfn96ck414v75547486ic70v2pdr3xnpf"; depends=[BH edstan ggplot2 GGUM loo Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
   bmixture = derive2 { name="bmixture"; version="1.7"; sha256="09ahs2dwrbqhk4aki9291v5lr5fa9mvi087zrqjmv2057ypyv2n5"; depends=[BDgraph]; };
   bmlm = derive2 { name="bmlm"; version="1.3.15"; sha256="1iig406z8whdjpbvajks2vzp1s1ay1f99r1n6qhs9xyi1z6yff2l"; depends=[BH ggplot2 Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
+  bmm = derive2 { name="bmm"; version="1.0.1"; sha256="11fl9a0350602ipjzcwqh2fcbh1zhbachxb37wd4n25qaraqds6l"; depends=[brms crayon dplyr fs glue magrittr matrixStats tidyr withr]; };
   bmp = derive2 { name="bmp"; version="0.3"; sha256="0jd67r11bn98hjwgyr6gas423787xy7ji2hq7ay80blkkcj91xxx"; depends=[]; };
   bmscstan = derive2 { name="bmscstan"; version="1.2.1.0"; sha256="05w6pz0mwqighhdl36f2ya1b4dw0xdhpfcbq6saw73ag5hvl57i9"; depends=[bayesplot ggplot2 LaplacesDemon logspline loo rstan]; };
   bmstdr = derive2 { name="bmstdr"; version="0.7.9"; sha256="0myv2mj5kp97dzvbf4sw63fzjxzpv2d82vxwiqxaqd1pllcgrzz1"; depends=[BH CARBayes CARBayesST ggplot2 ggpubr inlabru MCMCpack mnormt Rcpp RcppEigen RcppParallel Rdpack rstan rstantools spBayes spTDyn spTimer StanHeaders]; };
   bnclassify = derive2 { name="bnclassify"; version="0.4.8"; sha256="0sqyqw3jlzjhsmcblzxcc3nak4z63pvg3paniysnjzyi139fjyam"; depends=[assertthat BH entropy matrixStats Rcpp rpart]; };
   bndesr = derive2 { name="bndesr"; version="1.0.3"; sha256="0yx5grnaginmdxdi9philz24qvncr6gva01zrasl098p49dx0zpv"; depends=[curl dplyr janitor lubridate RCurl readr readxl stringr]; };
   bndovb = derive2 { name="bndovb"; version="1.1"; sha256="16mvkvwnx61jrvraagvxf56pvmf5klm8lnkqq4s5y2z92kd0clgp"; depends=[dplyr factormodel MASS nnet np pracma]; };
-  bnlearn = derive2 { name="bnlearn"; version="4.9.3"; sha256="0qgy9bz02wa9xsmga3sr8p2bvy6mr61l2ji8ill67wj7f6xqjyyl"; depends=[]; };
+  bnlearn = derive2 { name="bnlearn"; version="4.9.4"; sha256="1spf8q1bhxc1mdx5hd8z7yqwlyn15fq3ph3rz1vr5v8z8n4qsgff"; depends=[]; };
   bnma = derive2 { name="bnma"; version="1.6.0"; sha256="0z2kd9x5hi192dlr36r4vh9c66dzprm63y1l9v8av6dfnz63sj5b"; depends=[coda ggplot2 igraph rjags]; };
   bnmonitor = derive2 { name="bnmonitor"; version="0.1.4"; sha256="0sbpfgm7yibh84m1zmn7b1ixzc2x1m2nlms7zpxp4c6fkv2c225r"; depends=[bnlearn dplyr ggplot2 gRain gRbase purrr qgraph RColorBrewer reshape2 rlang tidyr]; };
   bnnSurvival = derive2 { name="bnnSurvival"; version="0.1.5"; sha256="1d9jmfx0id4lmw122zga7hb52vlfdfqn4amhzpsmhyck99rv92j4"; depends=[pec prodlim Rcpp]; };
@@ -7198,16 +7333,18 @@ in with self; {
   bodenmiller = derive2 { name="bodenmiller"; version="0.1.1"; sha256="0rdbk3f95iw4352fl9d81ir503q072chbb4hn1k12sp1wjc3apid"; depends=[]; };
   bodsr = derive2 { name="bodsr"; version="0.1.0"; sha256="13d3fhdq1cyq7zhr6sj9nmw1zdfibq7mv6cjx8zlb1dmqi1m5d07"; depends=[dplyr httr jsonlite purrr rlang tibble xml2]; };
   bodycomp = derive2 { name="bodycomp"; version="1.0.0"; sha256="1hi3x2chs87ba5nh7ka6xjrl5yvwqqcdyj1dg87rpaiipyl8396n"; depends=[]; };
+  boggy = derive2 { name="boggy"; version="0.0.1"; sha256="0vxzwhmahfd4dx7x28n0c7l4gmz1921y60mfpcwaz2qjpl9d27m7"; depends=[tibble]; };
   boilerpipeR = derive2 { name="boilerpipeR"; version="1.3.2"; sha256="1dws84ghc5r6zpnr23qd4l9bkazds8ar723wkrkikjni58vshjf1"; depends=[rJava]; };
   boinet = derive2 { name="boinet"; version="1.0.0"; sha256="1i023h1kzf5xk92dp9iyllw2b1lprs0xz2hp23lqq9vx36cpird3"; depends=[copula Iso mfp]; };
-  boiwsa = derive2 { name="boiwsa"; version="1.0.0"; sha256="1lcswyy9cm4bwmsfinkrxqzb0ca704y3k8g5acm9b6b1sjkkz5r6"; depends=[dplyr Hmisc lubridate MuMIn rlang tidyr]; };
+  boiwsa = derive2 { name="boiwsa"; version="1.1.1"; sha256="1xyxx6xf9az62zxczybl6iizswq7h4i55v4apll8kh0xh6nqlzr7"; depends=[dplyr ggplot2 Hmisc lubridate rlang tidyr]; };
   bolasso = derive2 { name="bolasso"; version="0.2.0"; sha256="1fbd39jyxq0zfbybrzzwnyql2w8hf2b9133jj0nl99d1326wr7dh"; depends=[future_apply gamlr ggplot2 glmnet Matrix progressr Rdpack tibble]; };
   bold = derive2 { name="bold"; version="1.3.0"; sha256="0pwglcykyl5dnhqs8jg4hzih286v17w5dafkg3ahqk3c73a13b8f"; depends=[crul data_table jsonlite stringi xml2]; };
+  bolsec = derive2 { name="bolsec"; version="0.1.1"; sha256="0ab5cydn4hbm1fbbd71xh5724wizrv9ckj3j6rklz46nhbwfjmr2"; depends=[dplyr formattable rvest]; };
   bondAnalyst = derive2 { name="bondAnalyst"; version="1.0.1"; sha256="0bygaldjgxbjqjnlgs64vdayr7kp6sjl6qffdywxpi7v0yfi072a"; depends=[Rdpack]; };
   bonn = derive2 { name="bonn"; version="1.0.2"; sha256="1z22cdizz8sgw4fry98adcjvn23ag3qvvcinbg3kmafksdk1ivmb"; depends=[httr jsonlite]; };
   bonsai = derive2 { name="bonsai"; version="0.2.1"; sha256="048nfgnzsi0zz0nsxl30nsjg63nszy44881s49g9hgs3vng2vmp2"; depends=[cli dials dplyr glue parsnip purrr rlang tibble]; };
   boodist = derive2 { name="boodist"; version="1.0.0"; sha256="1haplr64f5kai1y6kdxhxiayidy1mivh85dx140fya5r6fdk0shm"; depends=[BH R6 Rcpp RcppEigen RcppNumerical]; };
-  bookdown = derive2 { name="bookdown"; version="0.38"; sha256="1i0z75sxvy3cb582siz544az6b9bs3vk2kyij9zx5jdpc1247fgd"; depends=[htmltools jquerylib knitr rmarkdown tinytex xfun yaml]; };
+  bookdown = derive2 { name="bookdown"; version="0.39"; sha256="1brfv50lq92m7d4d18n92ywhfr28lrbq02naf0bwdsmd0ngasxrm"; depends=[htmltools jquerylib knitr rmarkdown tinytex xfun yaml]; };
   boostingDEA = derive2 { name="boostingDEA"; version="0.1.0"; sha256="0df19q44fsv0hvda4dwq302wsh6vlalwszyh0ir66r5ryrrmhas4"; depends=[dplyr lpSolveAPI MLmetrics Rglpk]; };
   boostmtree = derive2 { name="boostmtree"; version="1.5.1"; sha256="17na38k052lzjrssvxssllm9fwpnzhr29g9wwcfkbja6rv2pw9p1"; depends=[nlme randomForestSRC]; };
   boostrq = derive2 { name="boostrq"; version="1.0.0"; sha256="1lf3gj1adnwxavlpmw9ygwz5pxz45bbdgz7cv46cp2jyh06y3sa3"; depends=[checkmate mboost quantreg stabs]; };
@@ -7223,13 +7360,14 @@ in with self; {
   bootPLS = derive2 { name="bootPLS"; version="0.9.9"; sha256="1i0bzykwjimyswb0z23sqbhm98b9lxifnkby682khva7yfk7k8qr"; depends=[bipartite boot doParallel foreach mvtnorm pls plsRglm spls]; };
   bootSVD = derive2 { name="bootSVD"; version="1.1"; sha256="16d3qv8vzhfvl9vbfglkb3csmc4npb29jcq9apv89hj7bkcapvi9"; depends=[ff]; };
   bootStepAIC = derive2 { name="bootStepAIC"; version="1.3-0"; sha256="1dmziq6yfycpap4hhlzl3xg2hsx4y135hy7r6qh9p98vxpa6mycl"; depends=[MASS]; };
-  bootUR = derive2 { name="bootUR"; version="1.0.3"; sha256="024d1dlwdn2jv9sbsb05lscr7inn8xmnsr2kiwhs5n47x7p6vrns"; depends=[parallelly Rcpp RcppArmadillo RcppParallel RcppThread urca]; };
+  bootUR = derive2 { name="bootUR"; version="1.0.4"; sha256="19sjh9hwx9hcqyrjx5kc2id1ml1sfd6c37g412vzfgk931bm0lbs"; depends=[parallelly Rcpp RcppArmadillo RcppParallel RcppThread urca]; };
   bootcluster = derive2 { name="bootcluster"; version="0.3.2"; sha256="0wkc9li0hqgns7pz72fby187q81yzrgl62qs8w5llayghf8lhaml"; depends=[cluster doParallel dplyr flexclust foreach fpc GGally ggplot2 gridExtra igraph intergraph mclust network plyr sna]; };
   bootf2 = derive2 { name="bootf2"; version="0.4.1"; sha256="17wrl678x9mb5pny2vwrr6sdl2hsqr1nbjzsizp2q6l3w5m6s152"; depends=[ggplot2 MASS minpack_lm readxl]; };
   bootnet = derive2 { name="bootnet"; version="1.6"; sha256="0r7ad6ybzr3jm5s2791sv402293wi4wy59n7dv5q5ss1vykpsk6h"; depends=[abind corpcor dplyr ggplot2 gtools igraph IsingFit IsingSampler Matrix mgm mvtnorm NetworkToolbox networktools pbapply qgraph rlang snow tibble tidyr tidyselect]; };
   bootruin = derive2 { name="bootruin"; version="1.2-4"; sha256="1gbvh99snchipf13kjhymcx60s2kni23y7lv8lhzd3d402grp68h"; depends=[]; };
   bootstrap = derive2 { name="bootstrap"; version="2019.6"; sha256="1546jqhhw5h177ii8jkdikyd26rv6gwkav816np1zks4p7zgsljj"; depends=[]; };
   bootstrapFP = derive2 { name="bootstrapFP"; version="0.4.6"; sha256="104vl9a6qqk0xr0pqmnm9v0rdc0x1jizvshf494zqkg9l97nq3yb"; depends=[sampling]; };
+  bootsurv = derive2 { name="bootsurv"; version="0.0.1"; sha256="0c60xyhq8x3k75dxi8lcsz7i5xnizdzrypcvy27w5mb5nx9wg58i"; depends=[MASS]; };
   bootwar = derive2 { name="bootwar"; version="0.2.1"; sha256="0cvwdi8qvm737qsnyr87wpsfmyzcdr7sga4zbkal8y5bj73h9y63"; depends=[ggplot2 mmcards npboottprm shiny shinyjs shinythemes]; };
   bor = derive2 { name="bor"; version="0.1.0"; sha256="1r5jacmin0cq9zipxa9nmp3jnh6wsddd4wnzw2n5sggnf24ryp8g"; depends=[]; };
   boral = derive2 { name="boral"; version="2.0.2"; sha256="1x53g3y283i92624rkp36lwfmz0p8rkkqsndn5h35sapjga6wmy3"; depends=[abind coda corpcor fishMod lifecycle MASS mvtnorm R2jags reshape2]; };
@@ -7240,6 +7378,7 @@ in with self; {
   boussinesq = derive2 { name="boussinesq"; version="1.0.6"; sha256="11dwc0j88zqxqwnrinc4f990vjbyv4bs16z6id6xw7yp7i2n5nla"; depends=[]; };
   boutliers = derive2 { name="boutliers"; version="1.1-2"; sha256="0j2y6ndj03shssa7pgvg9cwbm5mv7ahy9kypj9z1ahskdi4xg1m1"; depends=[MASS metafor]; };
   box = derive2 { name="box"; version="1.2.0"; sha256="00g5ik3f6260m38jl8k4s8nycmy7mzdwr7qslrl66phpg84xzmln"; depends=[]; };
+  box_linters = derive2 { name="box.linters"; version="0.9.1"; sha256="1v0czkz09gp58ap7n847pcwqsd1n11i44wz6cppnlxhl1wcw8vzn"; depends=[cli fs glue lintr rlang stringr xml2 xmlparsedata]; };
   boxcoxmix = derive2 { name="boxcoxmix"; version="0.42"; sha256="0z4iagli47i5jd9fi849wglwj2mbrn60wikb6n041k9yrfhgccma"; depends=[npmlreg qicharts statmod]; };
   boxfilter = derive2 { name="boxfilter"; version="0.2"; sha256="03qx2bsqg7kkpf2q6xrj7ap0aczgascdrnkj5bcl3aq278fahnxi"; depends=[ggplot2 gridExtra]; };
   boxly = derive2 { name="boxly"; version="0.1.1"; sha256="0fvk95f2nn06aaxn2qq7jxr2yvsnc40806xkamryhrnmrwiphia9"; depends=[brew crosstalk DT ggplot2 htmltools htmlwidgets metalite plotly rlang uuid]; };
@@ -7250,7 +7389,7 @@ in with self; {
   bpAcc = derive2 { name="bpAcc"; version="0.0-2"; sha256="0341mndgl9jybmkgqa3pfgk9ryn8738j04d1gy2yjacbs68xxhn8"; depends=[]; };
   bpDir = derive2 { name="bpDir"; version="0.1.2"; sha256="1wkj25srsbidpcvgm6c74584ahybjy39r86dxir1vd13kbi8l120"; depends=[circular MASS plotrix]; };
   bpa = derive2 { name="bpa"; version="0.1.1"; sha256="0np7q1nasrq4j7ssaipvbjgrsi9n612p9lp96frq1dgix95mcgf0"; depends=[magrittr plyr]; };
-  bpbounds = derive2 { name="bpbounds"; version="0.1.5"; sha256="0qzvy6a41p4nrsw91xh0bv03v8ksfv4fag365pzlwisa1ng88sqj"; depends=[]; };
+  bpbounds = derive2 { name="bpbounds"; version="0.1.6"; sha256="0f8knwvwllzraxkhawkljdm7mj2i0crd6yj415dya7nvp01ilaql"; depends=[]; };
   bpca = derive2 { name="bpca"; version="1.3-6"; sha256="13rb6k50527aiaydapkvjyh3c2pk1anmz537y97mx35malfh1kmd"; depends=[rgl scatterplot3d xtable]; };
   bpcp = derive2 { name="bpcp"; version="1.4.2"; sha256="1xgspmknjs7cqh0iw3qgikbxpbl2qscjx9n07ib5s3z8hi282wrn"; depends=[ggplot2 survival]; };
   bpgmm = derive2 { name="bpgmm"; version="1.0.9"; sha256="0wrdh4c8yws7z5zd1yl23wbja88x57x651kqbnqj70k9a1195rwc"; depends=[fabMix gtools label_switching MASS mclust mcmcse mvtnorm pgmm Rcpp RcppArmadillo]; };
@@ -7258,8 +7397,8 @@ in with self; {
   bpmnVisualizationR = derive2 { name="bpmnVisualizationR"; version="0.5.0"; sha256="135afhq1x2aqdmn609vfk0248wsqbp66lkw7wqqzsb6czpap1q90"; depends=[htmlwidgets rlang xml2]; };
   bpnreg = derive2 { name="bpnreg"; version="2.0.3"; sha256="1yy1rbbnqjrz0dkpvwi49432ddpjbql0vrpwvhzv9qzpv8ydvlw4"; depends=[BH haven Rcpp RcppArmadillo]; };
   bpp = derive2 { name="bpp"; version="1.0.4"; sha256="07vz00y9m71n3a847jpviwyy0zb59402yyklsfmyxmggjivpjshi"; depends=[mvtnorm]; };
-  bpr = derive2 { name="bpr"; version="1.0.7"; sha256="11hli3xsc432g8kppjxbim6nij7p1lbbv8ns075jpgdyd4i1piva"; depends=[BH coda MASS Rcpp RcppArmadillo]; };
-  bqror = derive2 { name="bqror"; version="1.6.1"; sha256="0mg82bcc3cw2zhqz2j9539kw7cs159lzw363a2abcm7ys66dp6bd"; depends=[GIGrvg invgamma MASS NPflow pracma progress truncnorm]; };
+  bpr = derive2 { name="bpr"; version="1.0.8"; sha256="1hiwz1s8gc6skl0zg7mjh29bxazka9wgrbbldqhy6f9vzrddl4pn"; depends=[BH coda MASS Rcpp RcppArmadillo]; };
+  bqror = derive2 { name="bqror"; version="1.7.0"; sha256="1pisp3p3w5r9bfv5m5yykk410z5qvwsqdblmv7vsj1sc1nwf5y2v"; depends=[GIGrvg invgamma MASS NPflow pracma progress truncnorm]; };
   bqtl = derive2 { name="bqtl"; version="1.0-36"; sha256="18fwg52j6dv1v1pcc4997j2f5vlfmcvqqdg0618fq9zaq8j4cz6h"; depends=[]; };
   braQCA = derive2 { name="braQCA"; version="1.2.1.29"; sha256="0w1mg8lzl64mp5clinq3zai733iz3628zp4pw6vr51z24s56jg6i"; depends=[bootstrap dplyr QCA]; };
   bracer = derive2 { name="bracer"; version="1.2.2"; sha256="0kbx30icv966sjv93as4yq88vkavbw68a7v2fnrvblzx2dgcis1n"; depends=[stringr]; };
@@ -7267,20 +7406,21 @@ in with self; {
   braggR = derive2 { name="braggR"; version="0.1.1"; sha256="1sq7knrnz3nqprlvsj24f9gj1i0viawq3wcv2b97dmbwa7rd5qfz"; depends=[Rcpp]; };
   braidReports = derive2 { name="braidReports"; version="0.5.4"; sha256="1455pswcbz3zscvk6rgvgrjcp154l5lfx5m7s24m91rpjmc2y7pk"; depends=[braidrm ggplot2]; };
   braidrm = derive2 { name="braidrm"; version="0.71"; sha256="1cn0rdlw775pmzbjmhny7gkm901a3qgz7infqb5s9az606xg54d3"; depends=[]; };
-  brainGraph = derive2 { name="brainGraph"; version="3.0.0"; sha256="0sr2rf5fs02m3c304wbya2rszxcivc3cypg978hwzzcf30r4fy7y"; depends=[abind data_table doParallel foreach igraph lattice MASS Matrix permute]; };
+  braids = derive2 { name="braids"; version="1.0.0"; sha256="1sbkdimqg4vxhw4djknjixzj37hp69nm7dcki2j6zfmrzhmvx1fl"; depends=[maybe]; };
+  brainGraph = derive2 { name="brainGraph"; version="3.1.0"; sha256="009m3297bn1jl1aacypajkdawgjp3pwx7krz3bxifb0bmrdi0n7b"; depends=[abind data_table doParallel foreach igraph lattice MASS Matrix permute]; };
   brainKCCA = derive2 { name="brainKCCA"; version="0.1.0"; sha256="1ag3qahlba4h4126873hg2bbi6sr729mhiw22gjgr4g4jg6lhh09"; depends=[brainR CCA elasticnet kernlab knitr misc3d oro_nifti rgl]; };
   brainR = derive2 { name="brainR"; version="1.6.0"; sha256="1l5rm6grslc6mivwh2fv3pznhy2cw16fz5695pmyfamzvsjggir1"; depends=[misc3d oro_nifti rgl]; };
   brandwatchR = derive2 { name="brandwatchR"; version="0.3.0"; sha256="10bccsaswsq06wdrxqg71amzx5rabmgfi4n074y651r2c1pyy98w"; depends=[data_table httr jsonlite]; };
   brant = derive2 { name="brant"; version="0.3-0"; sha256="0rcp0am4wjlkinvmv0n5bky84v31ds28v163p5mlp343cgma2b62"; depends=[MASS Matrix]; };
   brassica = derive2 { name="brassica"; version="1.0.2"; sha256="1av52p39jsv54q02v8xa7xilwmz5vzj6zy68y9m5lgl6s86r509y"; depends=[]; };
   bratteli = derive2 { name="bratteli"; version="1.0.0"; sha256="07hl2s2vcjqx4db0gksfnwdarl59a9441d0ff13zf0vj0pbaqam2"; depends=[data_table diagram gmp kantorovich]; };
-  bravo = derive2 { name="bravo"; version="2.3.1"; sha256="04hgjkxcjshj5n7d6pi58p5qkm8ni9zx7vnjwjh15bh1274yqqxr"; depends=[Matrix Rcpp]; };
-  brclimr = derive2 { name="brclimr"; version="0.1.2"; sha256="0l2gk9zqa3lh9a4343h2n8ffm2x1arp84k44ah37krpsbxsvam6j"; depends=[arrow checkmate dplyr lobstr magrittr rlang]; };
+  bravo = derive2 { name="bravo"; version="3.2.1"; sha256="0q7qm5jsj92sras5z5xr4hkz73l202xl8f0izhg2hiv3kam0z8rf"; depends=[Matrix Rcpp]; };
+  brclimr = derive2 { name="brclimr"; version="0.2.0"; sha256="11870q60spq4pi7d6yvly48x8n9is15cj957aq8h7bw2lgcyzb1z"; depends=[checkmate DBI duckdb glue lobstr magrittr rlang]; };
   brea = derive2 { name="brea"; version="0.2.0"; sha256="0mb043fdhxrg9gyf4g55ydjx37j20394nvd4d0fmiym98lccyi04"; depends=[]; };
   bread = derive2 { name="bread"; version="0.4.1"; sha256="0vsxmqpgi2yjcpdpgdz6gzqkpjsq5ax4qkpys60bwmxyp1ahv90r"; depends=[data_table]; };
   breakDown = derive2 { name="breakDown"; version="0.2.2"; sha256="1p02qy5kpv98qxlawn6l2hq7q48kv97ks3s9jnxawhqz44c08lwv"; depends=[ggplot2]; };
   breakaway = derive2 { name="breakaway"; version="4.8.4"; sha256="08mxp41d79iaqbz96bpzw7halasijghv0557ccz5p563y5lk3n3m"; depends=[ggplot2 lme4 magrittr MASS phyloseq tibble]; };
-  breakfast = derive2 { name="breakfast"; version="2.3"; sha256="03qkablrfgxp5c0kpyj38z831f6dwxwql2xkfpkpfjdiaqs7snrd"; depends=[ggplot2 plyr Rcpp]; };
+  breakfast = derive2 { name="breakfast"; version="2.4"; sha256="0sxila1l2pk1z8lmskqppd8qm7wg08vvyyqxfyxcffvwhzqaf3rj"; depends=[ggplot2 plyr Rcpp]; };
   breakpoint = derive2 { name="breakpoint"; version="1.2"; sha256="004vi1qr7iib8ykg6sp7xzv0bb841h4vsz2x0cyrhkdp41frglx9"; depends=[doParallel foreach ggplot2 MASS msm]; };
   breathtestcore = derive2 { name="breathtestcore"; version="0.8.7"; sha256="0i5mih2v6397g0glgdhn5lrz3j0l6yv3pmlvs9pkg2vbjppif2sc"; depends=[assertthat broom dplyr ggfittext ggplot2 MASS multcomp nlme purrr readr readxl signal stringr tibble tidyr xml2]; };
   breathteststan = derive2 { name="breathteststan"; version="0.8.5"; sha256="1b495qb0r8wdh4rnv3namnhrd1d6mba55ayj7h9s0076h8aw04hk"; depends=[BH breathtestcore dplyr purrr Rcpp RcppEigen rstan rstantools StanHeaders stringr tidyr]; };
@@ -7295,24 +7435,25 @@ in with self; {
   bridgesampling = derive2 { name="bridgesampling"; version="1.1-2"; sha256="0sry1xwiv4y52k44hq6z8y2kysp5kxgl4dix3m94svg3ladd7v2l"; depends=[Brobdingnag coda Matrix mvtnorm scales stringr]; };
   brif = derive2 { name="brif"; version="1.4.1"; sha256="0zavddjs6y37ll68s0c3ap9p79disv7v54505pv6nyxqh40s22m8"; depends=[Rcpp]; };
   brinton = derive2 { name="brinton"; version="0.2.7"; sha256="1z2d7a1wq5ms5j0mn2hgqvvp9x3mfvxw4llia8d0bs0mpm0jkjvn"; depends=[forcats GGally ggplot2 glue gridExtra lubridate pander patchwork RColorBrewer rmarkdown scales sm tibble]; };
-  brio = derive2 { name="brio"; version="1.1.4"; sha256="1s0q1qk3w3fwf7gn4xfwhf8i8yqqb6z096x6xqsj8av8924z7fqc"; depends=[]; };
+  brio = derive2 { name="brio"; version="1.1.5"; sha256="1f6hh7mck4bb1caivcvr6ms2pyqzzzawqyxjbgi9s0rrx8sj7wm9"; depends=[]; };
   briqr = derive2 { name="briqr"; version="0.1.0"; sha256="073pdk1094ng4kggzdjvihl791r2qlja1j2w3pfmh2027kn520r8"; depends=[dplyr httr jsonlite magrittr tibble]; };
   brisk = derive2 { name="brisk"; version="0.1.0"; sha256="1l6m47rj25klrjil0275bnv0m149d2kjh23r8cv7zw2vhmlza7z1"; depends=[dplyr ellipsis ggplot2 hitandrun purrr rlang tidyr]; };
   brlrmr = derive2 { name="brlrmr"; version="0.1.7"; sha256="0s47qz8y416x0gz91pzdpr97pmlvddwkvll454vnlafxxk9p5lds"; depends=[boot brglm MASS profileModel Rcpp]; };
   brm = derive2 { name="brm"; version="1.1.1"; sha256="0kyr8mxz5g3w41kp08d47f29cff8fqrfbm1ri7hgfg2lgr1151xy"; depends=[]; };
   brms = derive2 { name="brms"; version="2.21.0"; sha256="0n2xxiibypfazcbx8rx4h5c4pl9zlmm0mkpyny23bf54q8rzz2bj"; depends=[abind backports bayesplot bridgesampling coda future future_apply ggplot2 glue loo Matrix matrixStats mgcv nleqslv nlme posterior Rcpp rlang rstan rstantools]; };
-  brms_mmrm = derive2 { name="brms.mmrm"; version="0.1.0"; sha256="1iqp6915blbzjvfkqj9sa3gpads8qbhq19vi8isiszadi40218bk"; depends=[brms coda dplyr emmeans ggplot2 ggridges MASS posterior purrr rlang tibble tidyr tidyselect trialr zoo]; };
+  brms_mmrm = derive2 { name="brms.mmrm"; version="1.0.0"; sha256="12srwi69mkhnj2m711r9pag89jlmxxsjksr1fhb5w5cbn0lyk9in"; depends=[brms dplyr ggplot2 ggridges MASS posterior purrr rlang tibble tidyr tidyselect trialr zoo]; };
   brmsmargins = derive2 { name="brmsmargins"; version="0.2.0"; sha256="1qdfig1cy5cf3csky995m0jybb2hyp7yq7ka67wircrln919c1nm"; depends=[bayestestR brms data_table extraoperators posterior Rcpp RcppArmadillo]; };
   brnn = derive2 { name="brnn"; version="0.9.3"; sha256="14gqbsrmv9r5kbp4c5swrpclympchyg4fw5f0b6g767y6mm22h7m"; depends=[Formula truncnorm]; };
   brokenstick = derive2 { name="brokenstick"; version="2.5.0"; sha256="0bq470kvv9084qaaaz5yicmxpljp23gb3dqijrmdwk1agqxn09mc"; depends=[coda dplyr lme4 matrixsampling rlang tidyr]; };
-  broman = derive2 { name="broman"; version="0.80"; sha256="02k8bxv8kpkasxn2m1z5ccvr9gg9lc8k3hskyaf7gvr4khhf575s"; depends=[ggplot2]; };
-  broom = derive2 { name="broom"; version="1.0.5"; sha256="14fr17cvpy6jzdffzrf46xah70xcq2nkbjyxmkyzwbz3kvpdsxwx"; depends=[backports dplyr ellipsis generics glue lifecycle purrr rlang stringr tibble tidyr]; };
-  broom_helpers = derive2 { name="broom.helpers"; version="1.14.0"; sha256="14vaqxv12yrvqllp8552nx68wk2qfjcy1iy7bajkspgdpwsjzhfd"; depends=[broom cli dplyr labelled lifecycle purrr rlang stringr tibble tidyr]; };
-  broom_mixed = derive2 { name="broom.mixed"; version="0.2.9.4"; sha256="1ck0dk5fnacvwsvhp43m983gkmskw1a7f1bjkq5hacka64lwscbn"; depends=[broom coda dplyr forcats furrr nlme purrr stringr tibble tidyr]; };
+  brolgar = derive2 { name="brolgar"; version="1.0.1"; sha256="19ps8faycijfqlmzhmcbf03gpcfwdayica456zqyark4pl2n0gjq"; depends=[dplyr fabletools ggplot2 glue magrittr purrr rlang tibble tidyr tsibble vctrs]; };
+  broman = derive2 { name="broman"; version="0.84"; sha256="01q05xvxlam6isdhaq48sfw5fh60pcqlhivs7c38lh7c8r3w2172"; depends=[ggplot2]; };
+  broom = derive2 { name="broom"; version="1.0.6"; sha256="1kxwkyhm4m586v2kp15r4q2zsarnkrkzmgl17n6y7ggzilj3dkr4"; depends=[backports dplyr generics glue lifecycle purrr rlang stringr tibble tidyr]; };
+  broom_helpers = derive2 { name="broom.helpers"; version="1.15.0"; sha256="0gm9k2d73p6bhcmzc43qgy6v27pi036369dldz77hd5h5i95hp7c"; depends=[broom cli dplyr labelled lifecycle purrr rlang stringr tibble tidyr]; };
+  broom_mixed = derive2 { name="broom.mixed"; version="0.2.9.5"; sha256="1css1g9r1345dwww9v56m7d9r74i4d27si7fsc4d8nhk4v6sd7wm"; depends=[broom coda dplyr forcats furrr nlme purrr stringr tibble tidyr]; };
   brotli = derive2 { name="brotli"; version="1.3.0"; sha256="0zivyhyf6g7lb8r919a1cc2xvi36g6cszpl9rr200nfvvw6r6zf1"; depends=[]; };
   brpop = derive2 { name="brpop"; version="0.3.0"; sha256="0wbs0r775g185q0zrlyskj5zrdkf6dbivi7lrychj9dpidl9i61i"; depends=[dplyr future magrittr multidplyr rlang]; };
   brsim = derive2 { name="brsim"; version="0.3"; sha256="15clv6gfvvfclj9wmb6hr4ljfvs28spamq9rqj12nwzz5fihyhi9"; depends=[cluster corrplot RcmdrMisc]; };
-  bruceR = derive2 { name="bruceR"; version="2023.9"; sha256="09i9ss1fhb4l4mypbk1jww1nscpy6g11a9miz33hykgywjkk40r4"; depends=[afex data_table dplyr effectsize emmeans ggplot2 interactions jtools lavaan lmerTest mediation MuMIn performance plyr psych rio rstudioapi stringr texreg tidyr]; };
+  bruceR = derive2 { name="bruceR"; version="2024.6"; sha256="0ih2l2yf9vfmzx1l2npj8yp0brnqdiszq0ip26nw5vdgv9b7rm5l"; depends=[afex crayon data_table dplyr effectsize emmeans ggplot2 interactions jtools lavaan lmerTest mediation performance plyr psych rio rstudioapi stringr texreg tidyr]; };
   brulee = derive2 { name="brulee"; version="0.3.0"; sha256="1lzn06q1i575n9b7axqxfp0ngycx2mdmh0cqw6zz80z3ikbi7hq9"; depends=[cli coro dplyr generics ggplot2 glue hardhat rlang tibble torch]; };
   brunnermunzel = derive2 { name="brunnermunzel"; version="2.0"; sha256="1sz1nx9lgl7pwgx9a5m59svajsk4qv0ajzzkw9123vrh0wydy6j3"; depends=[]; };
   brxx = derive2 { name="brxx"; version="0.1.2"; sha256="08qlfnf84k3yjcvr1wm6gd96mk26xf2gz59ychb3m981228hbbs6"; depends=[blavaan blme GPArotation MASS MCMCpack rstan TeachingDemos]; };
@@ -7321,21 +7462,21 @@ in with self; {
   bsTools = derive2 { name="bsTools"; version="1.0.5"; sha256="0akvk2i5gbrkxfwf69m1xjfn643d41rrdzp02gyhrxyhqwsx9p14"; depends=[html5 toolbox]; };
   bsam = derive2 { name="bsam"; version="1.1.3"; sha256="1yiplh4wcc711w59ir5hxlp3mmgsnfz01d6203vfgclzsi7ix5m9"; depends=[coda dplyr ggplot2 gridExtra lubridate msm mvtnorm rjags rworldxtra sp tibble]; };
   bsamGP = derive2 { name="bsamGP"; version="1.2.5"; sha256="1792kksvpzinap83asyz6iz7mp7xyi0a7lppxx1m8as7jwnk2nsk"; depends=[ggplot2 gridExtra MASS]; };
-  bscui = derive2 { name="bscui"; version="0.1.3"; sha256="0xpy1xj0ajj0swnl55ahy3fja9dp4lv7vcz1zk12im175b0b2iqn"; depends=[htmlwidgets webshot2]; };
+  bscui = derive2 { name="bscui"; version="0.1.5"; sha256="0qznfnqfji6vb0y2nawdi8xn6w7l1l8p1326ypjga1wla7ni5a52"; depends=[htmlwidgets webshot2]; };
   bsearchtools = derive2 { name="bsearchtools"; version="0.0.61"; sha256="11fqz8kdhqpc3jq34vgv3frzawgsl5y0s83rb2p54yb5yhd3p68w"; depends=[Rcpp]; };
   bsgof = derive2 { name="bsgof"; version="0.23.8"; sha256="0vgf61fglzlbgdk64z826nzb9rv37kw39rlk6m8rl84m3cjsw80a"; depends=[]; };
-  bshazard = derive2 { name="bshazard"; version="1.1"; sha256="1kidypyqlilf794mksjvhja8bmnd9hdhz91ywy0mcddgc6wbar4h"; depends=[Epi survival]; };
+  bshazard = derive2 { name="bshazard"; version="1.2"; sha256="1ghjb8rw6czrl1cy9c8wjap0vj4zvah2c1wdz2s7wff34gxynjmi"; depends=[Epi survival]; };
   bsicons = derive2 { name="bsicons"; version="0.1.2"; sha256="1ifxb6qvm5m824n924pwa3f2ck33mzzbjq77jzdl36ikx4z0x47a"; depends=[cli htmltools rlang]; };
   bsitar = derive2 { name="bsitar"; version="0.2.1"; sha256="1h18hk5qr3lcxy0iqhz2wfxhvyjl1bs45y78skx070qbxrgwai5z"; depends=[brms dplyr insight loo magrittr marginaleffects Rdpack rlang rstan sitar]; };
   bskyr = derive2 { name="bskyr"; version="0.1.2"; sha256="0qnw7mbsbg0w4afqnvrw69vzc7d1j5lpyk06zlpppkswp594bnbq"; depends=[cli dplyr fs httr2 lubridate mime purrr rlang stringi stringr tibble tidyr]; };
-  bslib = derive2 { name="bslib"; version="0.6.2"; sha256="0gjnb1ar6n3qg37ljy5yai0pd219zhm0n186jdzhsfwma5498ifh"; depends=[base64enc cachem htmltools jquerylib jsonlite lifecycle memoise mime rlang sass]; };
+  bslib = derive2 { name="bslib"; version="0.7.0"; sha256="181cfmdvi64j978q8x69bl7wxwpjpx54a52sh4xng0pk3a2djd91"; depends=[base64enc cachem fastmap htmltools jquerylib jsonlite lifecycle memoise mime rlang sass]; };
   bsnsing = derive2 { name="bsnsing"; version="1.0.1"; sha256="1a1vxh1fc5vz7wk73m093bvpz9qb52cfrxcj5yiqm56v309jckzk"; depends=[Rcpp]; };
   bspcov = derive2 { name="bspcov"; version="1.0.0"; sha256="1zxdcqydhzisfp2bkvw585z3qfcpy0yjra91qyxwdf0lvdvqwbqx"; depends=[BayesFactor caret CholWishart coda dplyr FinCovRegularization furrr future ggmcmc ggplot2 GIGrvg ks magrittr MASS Matrix matrixcalc matrixStats mvnfast mvtnorm plyr progress purrr RSpectra]; };
   bspec = derive2 { name="bspec"; version="1.6"; sha256="19l1sagx6kn6i8mcs3i0h6rh7rwsyhphncv55jywpv4g6616kqcv"; depends=[]; };
   bspline = derive2 { name="bspline"; version="2.2"; sha256="0v7kbg7h0d0s2ywvjpahk2y2ncbv8kmacdznaixxakccqbl8piip"; depends=[arrApply nlsic Rcpp RcppArmadillo]; };
   bsplinePsd = derive2 { name="bsplinePsd"; version="0.6.0"; sha256="0f785l02hiq3f7anxqhm09f7lrqgkkqhly7f1x78cxm22hvrqyhg"; depends=[Rcpp]; };
   bsplus = derive2 { name="bsplus"; version="0.1.4"; sha256="0bf8qvj7pk3xn7g4p89as1xzx56c75n842g27rj6lcgsf9rdmv9g"; depends=[glue htmltools jsonlite lubridate magrittr purrr rmarkdown stringr]; };
-  bspm = derive2 { name="bspm"; version="0.5.5"; sha256="07d68b8l3vxihd8wxy50rywldhdg3lwww5vab6cgdahc7vn937fl"; depends=[]; };
+  bspm = derive2 { name="bspm"; version="0.5.7"; sha256="168mlimmab1i03fqvkgc449gcmdxr8dsy7b09pzvgswgxjgf7b2a"; depends=[]; };
   bspmma = derive2 { name="bspmma"; version="0.1-2"; sha256="1a3p1h7bks5yrxv791wfa680v4a6q10p59iz6wvfifhf3ndlaw49"; depends=[]; };
   bsreg = derive2 { name="bsreg"; version="0.0.2"; sha256="13701llj5k7vssmgb4fvxswcf9bsc4pxjvh67znbsvrv5cmjh5x3"; depends=[Matrix R6]; };
   bssm = derive2 { name="bssm"; version="2.0.2"; sha256="121fb12n5z3w97xpj5ga1985drv3h4g7b0xy5yk9sfqfaqf92yyn"; depends=[bayesplot checkmate coda diagis dplyr posterior ramcmc Rcpp RcppArmadillo rlang sitmo tidyr]; };
@@ -7346,15 +7487,15 @@ in with self; {
   bsub = derive2 { name="bsub"; version="1.1.0"; sha256="112hlvg15jlzg3drfzkslaly42vnvsycn9vif0w3iaw5fzsaa954"; depends=[clisymbols crayon digest GetoptLong GlobalOptions]; };
   bsvars = derive2 { name="bsvars"; version="2.1.0"; sha256="1gnjl27ik6p8zsis8fdqhwdzp2jp0kyqnidil4jgy02fiwdww6c5"; depends=[GIGrvg R6 Rcpp RcppArmadillo RcppProgress RcppTN stochvol]; };
   btb = derive2 { name="btb"; version="0.2.0"; sha256="1gm03md6ky134nzmnnp054mi2w8kl4bgcgg4k65zf2cyniz4arxq"; depends=[BH dplyr magrittr mapsf Rcpp RcppArmadillo RcppParallel sf]; };
-  btergm = derive2 { name="btergm"; version="1.10.11"; sha256="1xyjy5ig5hf45h8axp2ykyh3n56ls47h1bjsa85k992rk0lsc4dg"; depends=[boot coda ergm igraph Matrix network ROCR sna statnet_common]; };
+  btergm = derive2 { name="btergm"; version="1.10.12"; sha256="1xcn24m6ldmi5wh44169vg13f7a7apbk45iwsl88clbnf2l9wpb8"; depends=[boot coda ergm igraph Matrix network ROCR sna statnet_common]; };
   bubbleHeatmap = derive2 { name="bubbleHeatmap"; version="0.1.1"; sha256="0b12bhk0c65m5izp5ayy6fl4iv0jhk7hhwbnavyggawrpz23ikxr"; depends=[reshape]; };
   bubblyr = derive2 { name="bubblyr"; version="0.1.2"; sha256="04agfwk6rmbhlfblfw1irqnv3yrp00zfn4qwy2169b7ypg8r55v2"; depends=[glue htmltools]; };
-  bucky = derive2 { name="bucky"; version="1.0.7"; sha256="1ymlpmhgvhp7n7y9dbvi6zh73y8jvr09axq4skcliam8ks2xx1pm"; depends=[lmtest sandwich]; };
   buildmer = derive2 { name="buildmer"; version="2.11"; sha256="0lmgzvi2jz92nps1z7cxla28ymxp5vnagikzk6dma94hycb7x2b4"; depends=[lme4 mgcv nlme]; };
   buildr = derive2 { name="buildr"; version="0.1.1"; sha256="117j4z6c22d9c5aghsmqsvyjc94kr0vpandgbikl5cc4zphl7w03"; depends=[glue magrittr readr rstudioapi stringr tibble usethis]; };
   bujar = derive2 { name="bujar"; version="0.2-11"; sha256="11g25sa2adlrzvs10k907c1a4anyigqd7lkd337vf8dcwrajqxa9"; depends=[bst earth elasticnet gbm mboost mda modeltools mpath rms survival]; };
   bulkAnalyseR = derive2 { name="bulkAnalyseR"; version="1.1.0"; sha256="008vnkcaa26d8620i1l49mbcr7px5x16s5x2wlq1vm0jkxya4c3z"; depends=[circlize ComplexHeatmap DESeq2 dplyr DT edgeR GENIE3 ggforce ggnewscale ggplot2 ggrastr ggrepel ggVennDiagram glue gprofiler2 magrittr matrixStats noisyr preprocessCore RColorBrewer rlang scales shiny shinyjqui shinyjs shinyLP shinyWidgets stringr tibble tidyr UpSetR visNetwork]; };
-  bulkreadr = derive2 { name="bulkreadr"; version="1.1.0"; sha256="067j95cbf22zi5rrih6i46l6kdy49ak3zal69q3r98cnhv9l2cl0"; depends=[curl dplyr fs googlesheets4 haven inspectdf labelled lubridate magrittr openxlsx purrr readr readxl sjlabelled stringr tibble]; };
+  bulkQC = derive2 { name="bulkQC"; version="1.1"; sha256="0236knz4jh89nzwmdfxs0cinzj9ysnxvlcs6y87kjfpj7aywx6gb"; depends=[isotree stddiff]; };
+  bulkreadr = derive2 { name="bulkreadr"; version="1.1.1"; sha256="0hq4xaxqjp08qd7h54s6nbvz2q7xpzxg1n6s0w9flavhl5jfilzg"; depends=[curl dplyr fs googlesheets4 haven inspectdf labelled lubridate magrittr openxlsx purrr readr readxl rlang sjlabelled stringr tibble tidyr]; };
   bulletcp = derive2 { name="bulletcp"; version="1.0.0"; sha256="1k7lw8gflih47ncz8hgsj0sxbajnkhz1k7yb7rwbdnzcki3n3jln"; depends=[assertthat dplyr mvtnorm Rdpack]; };
   bulletr = derive2 { name="bulletr"; version="0.1"; sha256="181rnrp62almf08gr41qnrnq8qnbqraqdvj4zixdh8fachsq2imp"; depends=[dplyr ggplot2 plotly plyr reshape2 robustbase smoother xml2 zoo]; };
   bullishTrader = derive2 { name="bullishTrader"; version="1.0.1"; sha256="0mh6skgkayjsqww4q6rpzhj0n5l3lb9wwh29gy9y08cqd91i02rs"; depends=[]; };
@@ -7363,17 +7504,18 @@ in with self; {
   bumblebee = derive2 { name="bumblebee"; version="0.1.0"; sha256="055plkcswq7qsy3flkjjq5kqampj9s8dbc3ahzinps6s0jkcv2ad"; depends=[dplyr gtools Hmisc magrittr rmarkdown]; };
   bunching = derive2 { name="bunching"; version="0.8.6"; sha256="08rsm2dgqgqr94sw7qijvsqcba4hqp43ci53plzifsa5rr2gwvfl"; depends=[BB dplyr ggplot2 tidyr]; };
   bunchr = derive2 { name="bunchr"; version="1.2.0"; sha256="1b8hdg2x26k0ahx4gxdpzr36hy056939r4496q3vbgyd4bbk2fbd"; depends=[shiny]; };
-  bundesbank = derive2 { name="bundesbank"; version="0.1-11"; sha256="1kgc8868vmsmg03yzg3lqpfync4q6xglr2x7ksj5ywddk74axxx0"; depends=[]; };
+  bundesbank = derive2 { name="bundesbank"; version="0.1-12"; sha256="11jfw2blzsfs479jrz8h0nslk99g6g5ih0ahb0a2w9cad0hwhkdj"; depends=[]; };
   bundesligR = derive2 { name="bundesligR"; version="0.1.0"; sha256="0dnhbh9jh7dfbk7mfh8msq4ys5kakalr0kwkycycrb2q8rd049vp"; depends=[]; };
   bundle = derive2 { name="bundle"; version="0.1.1"; sha256="1b3l14khp6fblb47sy9p5wh78izsbj1xjjj2r55hp2hcx2f1isjz"; depends=[glue purrr rlang withr]; };
-  bupaR = derive2 { name="bupaR"; version="0.5.3"; sha256="05iaqaa836apv8qb9pfzgih3cf8z78f40wdl759v1gg6pd32h082"; depends=[cli data_table dplyr eventdataR forcats ggplot2 glue lifecycle lubridate magrittr miniUI pillar purrr rlang shiny stringi stringr tibble tidyr]; };
+  bupaR = derive2 { name="bupaR"; version="0.5.4"; sha256="16m9n7h1nwfz564cxyhgkxdzszcr3nr7abz4d6mqx97kjv46k23n"; depends=[cli data_table dplyr eventdataR forcats ggplot2 glue lifecycle lubridate magrittr miniUI pillar purrr rlang shiny stringi stringr tibble tidyr]; };
   bupaverse = derive2 { name="bupaverse"; version="0.1.0"; sha256="1h79flc3ks23n1ih8vf741akvii3y25hqdl8k479hkhk423pfma2"; depends=[bupaR cli edeaR eventdataR glue magrittr processcheckR processmapR purrr rlang]; };
+  burgle = derive2 { name="burgle"; version="0.1.0"; sha256="11696f86vh2iflc6fignvip206kfsh3hh17x764jgng587v59zz2"; depends=[MASS riskRegression survival]; };
   burnr = derive2 { name="burnr"; version="0.6.1"; sha256="0pgki4inyql8h10i78yzqm73jy2h7rdp9ywsk65virxaadpngy9c"; depends=[forcats ggplot2 MASS plyr reshape2 rlang stringr tidyr]; };
   bursa = derive2 { name="bursa"; version="0.1.0"; sha256="14pjl5l0rh7aap8d2zmsd2spg6521vkkpiigh0jh5ly2cc56zyvr"; depends=[dplyr jsonlite openxlsx readr rvest stringr]; };
   bursts = derive2 { name="bursts"; version="1.0-2"; sha256="0cbksnxavkssp3mz80rz0sdvbg21m5yzjn009wclinz12mm1p9rq"; depends=[]; };
   busdater = derive2 { name="busdater"; version="0.2.0"; sha256="0hib73zay9r7rv49zv1lx0l15jzjyli9f1vrk414l8apggvx4c6s"; depends=[lubridate]; };
   businessPlanR = derive2 { name="businessPlanR"; version="0.1-0"; sha256="19fbyycydivkldj845jsg5xidysiddnxqd4by14v2yyripy8d44j"; depends=[kableExtra knitr]; };
-  butcher = derive2 { name="butcher"; version="0.3.3"; sha256="14zf732rcy0f1n0l7km9jx74i0dwqdf864v2510lwpkfblgnw4s7"; depends=[cli lobstr purrr rlang tibble vctrs]; };
+  butcher = derive2 { name="butcher"; version="0.3.4"; sha256="027j48n0izwzlg63gml5wkx19kpmd5crbdkmg7p366lpbhhvbs0d"; depends=[cli lobstr purrr rlang tibble vctrs]; };
   butterflyOptions = derive2 { name="butterflyOptions"; version="1.0.1"; sha256="0kmzrk8gqyqrpp4wfsl04cff13m6aiag7d6fbq7kbb6ln8fa6as9"; depends=[dplyr ggplot2 magrittr tibble]; };
   bvarsv = derive2 { name="bvarsv"; version="1.1"; sha256="1bv4fbbi8bn7sqqpjlf8w5jpgydjr15wv5v9940wc42yk792yjrx"; depends=[Rcpp RcppArmadillo]; };
   bvartools = derive2 { name="bvartools"; version="0.2.4"; sha256="0klbzxqypqm5v549k56fvl67yri7bwaazf02ypsg6xyriz2a9ck4"; depends=[coda Matrix Rcpp RcppArmadillo]; };
@@ -7411,7 +7553,7 @@ in with self; {
   cacIRT = derive2 { name="cacIRT"; version="1.4"; sha256="145j6isqa8yj2nvlqkxagd076zs10ng3n44khi5p4jj77fjc8gh6"; depends=[]; };
   cacc = derive2 { name="cacc"; version="0.1.0"; sha256="0dl2n5shjagr7zjsl6cyw3jxz29h9dbjfwrhphqdaymjv6yaxxj9"; depends=[dplyr ggplot2 rlang tibble tidyr]; };
   cache = derive2 { name="cache"; version="0.0.3"; sha256="0ix8z9zxslnycqn75rlz7f059jwfcclpxbas5sihcdmrdavz5ggj"; depends=[cli digest here r_assert]; };
-  cachem = derive2 { name="cachem"; version="1.0.8"; sha256="1hj5gw040pdrl3iwvwbgyrs91jcar0pwr3kmf23wwpb1zqcsk77a"; depends=[fastmap rlang]; };
+  cachem = derive2 { name="cachem"; version="1.1.0"; sha256="089f963h59z4n0sj3isjq2h7zw2485qw38jv8zdnbn755by3j22m"; depends=[fastmap rlang]; };
   caesar = derive2 { name="caesar"; version="1.1.0"; sha256="17w19m1c4a8x68bfbll71r9d3d34xnqw7lkhvqbnajd0cdm9xpa2"; depends=[binhf]; };
   caffsim = derive2 { name="caffsim"; version="0.2.2"; sha256="00bkgmmqrydpji2pvhcchgl2p8w5ksby4g80i3h76q0bm2325w9h"; depends=[dplyr ggplot2 markdown mgcv shiny tibble tidyr]; };
   calACS = derive2 { name="calACS"; version="2.2.2"; sha256="0a53k2rzyjksb0ypr5zrask4a6mgiyrqx0l2z3lm218y8pk2jf1w"; depends=[]; };
@@ -7419,16 +7561,17 @@ in with self; {
   calculus = derive2 { name="calculus"; version="1.0.1"; sha256="1p80bgg6896z798cx7nwqbwd0rxdv27kamaw1gw0hv4lpqsr7q10"; depends=[Rcpp]; };
   calendR = derive2 { name="calendR"; version="1.2"; sha256="1fkzsibjawshb4i5q941bjjn4yxkj8wcblw5ckmig3s31sjrb1yc"; depends=[dplyr forcats gggibbous ggimage ggplot2 suncalc]; };
   calendRio = derive2 { name="calendRio"; version="0.2.0"; sha256="152fb5yaazb2hh99ag1aq675gc5f8xw990w55nkhxqhg6w5p0ln9"; depends=[dplyr forcats gggibbous ggimage ggplot2 suncalc]; };
-  calendar = derive2 { name="calendar"; version="0.0.1"; sha256="18ha6vpx2bpk8p08hajiq2d201fbqhzcycp8ks6wrr06fy04z689"; depends=[lubridate tibble]; };
-  calibmsm = derive2 { name="calibmsm"; version="1.0.0"; sha256="1ys222zm5p1spnmv43af5bqhv9nxvslzzih99n1w936nwl1gvh2i"; depends=[boot dplyr ggplot2 ggpubr Hmisc magrittr mstate rms survival tidyr VGAM]; };
+  calendar = derive2 { name="calendar"; version="0.1.0"; sha256="0kjapjjjqmc4v2jvfnzy096m82m7xybcj952vmrx7kgnz07kynai"; depends=[lubridate tibble]; };
+  calibmsm = derive2 { name="calibmsm"; version="1.1.1"; sha256="1yg5m2zsiw005fdihlilk43h27c7yyzlnbsb32qr9k67q010rk00"; depends=[boot dplyr ggExtra ggplot2 ggpubr gridExtra Hmisc mstate rms survival tidyr VGAM]; };
   calibrar = derive2 { name="calibrar"; version="0.9.0"; sha256="10ig891vbxc9wqpmf5pmqyz9pi7mp4nicipmwgjbsygrqkqy0m0v"; depends=[BB cmaes DEoptim dfoptim foreach GenSA lbfgsb3c minqa optimx pso rgenoud soma stringr]; };
   calibrate = derive2 { name="calibrate"; version="1.7.7"; sha256="19kgrnsyq67iqv1biyssqi30a6v2836ql20nabpy2m692ns0jfvi"; depends=[MASS]; };
   calibrateBinary = derive2 { name="calibrateBinary"; version="0.1"; sha256="1k6sl4bg05piyczpk6wsva914gcmy8viyz4423gx9i6ddflb7xdb"; depends=[gelnet GPfit kernlab randtoolbox]; };
   calibrationband = derive2 { name="calibrationband"; version="0.2.1"; sha256="1m3dp7h9dy1ipji3vinknqyhbw1gbv48473rbhpykps8hzrqg206"; depends=[dplyr ggplot2 magrittr Rcpp rlang sp tibble tidyr tidyselect]; };
   calibrator = derive2 { name="calibrator"; version="1.2-8"; sha256="1m9g1pmnr6d9jkg5ab0l0cbqfj7kmx7sdmcdqdhn9ifyhhn7812y"; depends=[cubature emulator mvtnorm]; };
   calidad = derive2 { name="calidad"; version="0.5.0"; sha256="170ijr5kxaqwbvv8p1vs3jsld61kflicyycnjy640d28byj4lpmc"; depends=[dplyr haven kableExtra purrr rlang stringr survey tidyr]; };
-  callr = derive2 { name="callr"; version="3.7.5"; sha256="0b277fvjglnqrjmsm4ilhqrp9sjag0r9mxls2h9v1m94ff7ix88q"; depends=[processx R6]; };
-  callsync = derive2 { name="callsync"; version="0.2.1"; sha256="1p8r2r4w3bwpr03f990m2k19dv4lgsgp6l9rhxzrayknc3zndqx9"; depends=[dplyr oce scales seewave signal stringr tuneR]; };
+  callback = derive2 { name="callback"; version="0.1.0"; sha256="069dqihw5ll9n5n35vya5jqy9rc9r46g4jyw6b2dbz4s4sblimsq"; depends=[]; };
+  callr = derive2 { name="callr"; version="3.7.6"; sha256="1y2ildc0ni01lkcircbr648f5knq6ch6smh5xap2xr39x1ky7g74"; depends=[processx R6]; };
+  callsync = derive2 { name="callsync"; version="0.2.3"; sha256="03ks7wspkvr6fy54ggxj1rzxsdqraq1dlv384v0b4b7x4z7kj73l"; depends=[dplyr oce scales seewave signal stringr tuneR]; };
   calmate = derive2 { name="calmate"; version="0.13.0"; sha256="17gfk3am8frj9pqx31pmjswm5nvca9nqbanl0qj4ypsr8wymix7w"; depends=[aroma_core MASS matrixStats R_filesets R_methodsS3 R_oo R_utils]; };
   calmr = derive2 { name="calmr"; version="0.6.1"; sha256="11hb2d9a5vzda94qb3pg440vgch2pfn8jhkw71hj6xzw8aqylhs3"; depends=[data_table future future_apply GA ggnetwork ggplot2 network patchwork progressr rlang]; };
   calpassapi = derive2 { name="calpassapi"; version="0.0.3"; sha256="1vhx5h7ah75cs1mlw25x7hal90m47596kr7fx2pd8fslq7il7p1b"; depends=[digest dplyr httr jsonlite stringr]; };
@@ -7436,23 +7579,22 @@ in with self; {
   camerondata = derive2 { name="camerondata"; version="1.0.0"; sha256="0nj9dxwklhqyqrqfq88vpi4mdd6gvd3mzi80h8fi7hjzv5pmgqad"; depends=[]; };
   campaignmanageR = derive2 { name="campaignmanageR"; version="0.1.0"; sha256="1x240l0jlyg4ldb4j9pa2v2nryxnyg8y14ywcdcpfnw4056ms3f5"; depends=[jsonlite]; };
   campfin = derive2 { name="campfin"; version="1.0.11"; sha256="10mry0zn9h6dx79vqxpifn5bnxc9h500x7m3yh1vx4jshbvmgvnk"; depends=[dplyr fs ggplot2 glue httr lubridate magrittr purrr readr rlang scales stringdist stringr tibble]; };
-  campsis = derive2 { name="campsis"; version="1.5.1"; sha256="1njz9qhrsf5nca4v2ph94lxc5l2k5ayhbv768rhv9r4maxilpjfw"; depends=[assertthat campsismod digest dplyr furrr future ggplot2 MASS plyr progressr purrr rlang tibble tidyr]; };
+  campsis = derive2 { name="campsis"; version="1.5.2"; sha256="01ylxdvl0wi313r5mj8s6xz596b7an08hslrym2y69c9qv8a62cg"; depends=[assertthat campsismod digest dplyr furrr future ggplot2 MASS plyr progressr purrr rlang tibble tidyr]; };
   campsismod = derive2 { name="campsismod"; version="1.1.1"; sha256="0d3bdfx4jcnpzbnz6ymgz10s4137van6bcg5s4a3yzf90f02lbns"; depends=[assertthat dplyr magrittr plyr purrr readr tibble]; };
   camsRad = derive2 { name="camsRad"; version="0.3.0"; sha256="06gar6qan1ka01ngjvbpcv649yvfga697mplwn1x6qnfr4ngb7cs"; depends=[httr xml2]; };
   camtrapR = derive2 { name="camtrapR"; version="2.3.0"; sha256="02y4y19v2kgc0mazpk4dxfivln7bylgqqwllz2rw7x0wgjab3l3y"; depends=[data_table generics ggplot2 lubridate secr sf]; };
+  camtrapdp = derive2 { name="camtrapdp"; version="0.2.1"; sha256="0nx9w5h8py8cjqynlknh8klvzy2mhacv96vybkv7hcyhpdsnmfs7"; depends=[cli dplyr frictionless memoise purrr readr]; };
   canadamaps = derive2 { name="canadamaps"; version="0.1"; sha256="1i3yjhr5p06k6id3gws5dzdhf4jy143brbfhi2z4srq67xlz5agl"; depends=[dplyr magrittr rlang rmapshaper sf]; };
-  canadianmaps = derive2 { name="canadianmaps"; version="1.3.0"; sha256="1sk2jf0brlz1bq3xjniif51zlhglgw83ffznkvnqnbcvcbh5ha96"; depends=[dplyr ggplot2 ggrepel RColorBrewer sf sp]; };
+  canadianmaps = derive2 { name="canadianmaps"; version="2.0.0"; sha256="08kf6jxvqh6kyfb639kdqpq33qlrpaz94ayknbj13hm4asgsn3w5"; depends=[dplyr ggplot2 ggrepel RColorBrewer sf sp]; };
   canaper = derive2 { name="canaper"; version="1.0.1"; sha256="12is3x3srmdf39csf8q09n2377h9my2qwy0knwc3kfjdg6f9yzs7"; depends=[ape assertr assertthat dplyr future_apply phyloregion progressr purrr tibble vegan]; };
   cancensus = derive2 { name="cancensus"; version="0.5.7"; sha256="02392bbyzdn2nacjsc3rjv6f3y0mczacpa96azrm300l1j6zsszr"; depends=[digest dplyr httr jsonlite rlang]; };
   cancerGI = derive2 { name="cancerGI"; version="1.0.1"; sha256="1cbpxw6l09sdnf6nyw0hvhrc97awnidi72a2jsjf3v8ml012xd5f"; depends=[igraph qvalue reshape2 survival systemfit]; };
-  cancerTiming = derive2 { name="cancerTiming"; version="3.1.8"; sha256="1sfi8q2f5ag7iak0sf9pmqncb89w3gnxdiwjwpivkwhr28ais4mq"; depends=[gplots LearnBayes]; };
-  cancerscreening = derive2 { name="cancerscreening"; version="1.0.2"; sha256="1vmskbxgrb82477vpwlhi4asxxqpvk3bva0vaqp7pfirahjkvwmy"; depends=[cli curl dplyr gargle httr2 jsonlite lubridate magrittr rlang stringr tibble tidyr withr]; };
-  candisc = derive2 { name="candisc"; version="0.8-6"; sha256="17bhh3jgaq5hrlwaapwpsgk7f8a3sg2cmrjd1hgfxxx0z30a6icn"; depends=[car heplots]; };
-  canprot = derive2 { name="canprot"; version="1.1.2"; sha256="1lwlgzy0gxp7jrak838awmqz3w0x7qd51bkyhydb1s61073w77x8"; depends=[CHNOSZ MASS rmarkdown xtable]; };
+  cancerscreening = derive2 { name="cancerscreening"; version="1.1.1"; sha256="1lrdbf2bz6arh9s7x9k10vs986yxrhv23fahrwnl38172ggwv3f9"; depends=[cli dplyr khisr lubridate magrittr rlang stringr tidyr withr]; };
+  candisc = derive2 { name="candisc"; version="0.9.0"; sha256="0wl5hmx0hb0d1rk9as989nfpvdj64s4kjxd6852qvh9i54dab254"; depends=[car heplots]; };
+  canprot = derive2 { name="canprot"; version="2.0.0"; sha256="0b1jfrqdcn90r9ninc5l809vr586r1arbrf9w8dvrfh97gscb5dn"; depends=[multcompView stringi]; };
   cansim = derive2 { name="cansim"; version="0.3.16"; sha256="144p7zc44xb0szslsrxg1q1lhn5rizlgc0rvsinwzglnkzl478p2"; depends=[DBI digest dplyr httr jsonlite purrr readr rlang RSQLite rvest stringr tibble xml2]; };
   canvasXpress = derive2 { name="canvasXpress"; version="1.46.9-1"; sha256="0zb6cgpxzd9245jzabvw9x09ziihkfjc3gx1qclpqkvdbyq85qx6"; depends=[htmltools htmlwidgets httr jsonlite]; };
   canvasXpress_data = derive2 { name="canvasXpress.data"; version="1.34.2"; sha256="10fdlb1yp5x9533jdammncfrrlxzpcz9as8i0209pwzjywvxby3s"; depends=[]; };
-  cap = derive2 { name="cap"; version="1.0"; sha256="1pv8hskxjbp589dn7rx80yaa1ld76x1w37bss2fyrys1p3qr78aa"; depends=[MASS multigroup]; };
   cape = derive2 { name="cape"; version="3.1.2"; sha256="01bxyhn0kk07yx4012px6cys0csqgrsf2n5abdg22vr7ky7phqja"; depends=[abind caTools corpcor doParallel evd foreach here igraph Matrix pheatmap pracma propagate qtl qtl2 qtl2convert R6 RColorBrewer regress shape yaml]; };
   caper = derive2 { name="caper"; version="1.0.3"; sha256="1f1mw54gv1r40wrrsznhgffdj8ggrwihiwdd8wyqccyvqm49fxjg"; depends=[ape MASS mvtnorm]; };
   capitalR = derive2 { name="capitalR"; version="1.3.0"; sha256="08lvncia9mdrnw84zydf1k7336xawiirh2swziqfwx3z1n172n52"; depends=[]; };
@@ -7472,10 +7614,11 @@ in with self; {
   carcass = derive2 { name="carcass"; version="1.7"; sha256="09l9yk7knfjhrcpwfwmgla9ghnpg1b10aljmdl70j5kxdiafkfn7"; depends=[arm expm lme4 MASS survival]; };
   card = derive2 { name="card"; version="0.1.0"; sha256="1api0j06fp5av5a48vnnm1wvwdcskynf0xsj9pb41njxdh9v8daf"; depends=[broom data_table dplyr generics ggplot2 ggrepel hardhat Hmisc lubridate lutz magrittr purrr readr recipes rlang sf stringr survival tibble tidyr]; };
   cardidates = derive2 { name="cardidates"; version="0.4.9"; sha256="0b52cmg870s6icq53c6v6zjgz6w1pv02p83r8k4q0sksq5fy0ik4"; depends=[boot lattice pastecs]; };
+  cardinalR = derive2 { name="cardinalR"; version="0.1.1"; sha256="1hqdvxialk41r6l0k7vllh4bxdqx2ci4rcppd7nl0w1d3lz9561i"; depends=[purrr]; };
   cards = derive2 { name="cards"; version="0.1.0"; sha256="1a7khr8jzzvhb3lxb088d3akpq0jd7mjnb2y3z445mxl55wqgk2c"; depends=[cli dplyr glue rlang tidyr tidyselect]; };
   cardx = derive2 { name="cardx"; version="0.1.0"; sha256="1zw9l8w1jv7hs55jc7c5m2vxmsxv9lfzsvm23zwfpcks4ich26gb"; depends=[cards cli dplyr glue rlang tidyr]; };
   care = derive2 { name="care"; version="1.1.11"; sha256="0897v6acxf1myncd507by8zp7aga77pschyix1m4fzgpc6z35vlm"; depends=[corpcor]; };
-  care4cmodel = derive2 { name="care4cmodel"; version="1.0.1"; sha256="0d54bnjgbzb1yvrkb9q1p83l29dbg4q49a3ahyxrghnxkzlrc695"; depends=[deSolve dplyr ggplot2 purrr Rdpack rlang tibble tidyr tidyselect]; };
+  care4cmodel = derive2 { name="care4cmodel"; version="1.0.2"; sha256="0526z49v4mxfxjlpzjnqyzc8j2lvj1aw47f3izsk1vrs193vxnvw"; depends=[deSolve dplyr ggplot2 purrr Rdpack rlang tibble tidyr tidyselect]; };
   careless = derive2 { name="careless"; version="1.2.2"; sha256="1ncfcz5zznchcj4ndfhk9lb72l766yzsiicq5ry0m4djn74d9lva"; depends=[psych]; };
   caresid = derive2 { name="caresid"; version="0.1"; sha256="1mrnvg6dl1344j880ngw9hxfg5rc82ljv25ahc1pqgs0ji8v5di2"; depends=[ca ggplot2 ggrepel]; };
   caret = derive2 { name="caret"; version="6.0-94"; sha256="1a191n9qswvf8ri6id8picqgdqx15l6mp996v6f77fv0l8yfh597"; depends=[e1071 foreach ggplot2 lattice ModelMetrics nlme plyr pROC recipes reshape2 withr]; };
@@ -7496,10 +7639,10 @@ in with self; {
   cascadeSelect = derive2 { name="cascadeSelect"; version="1.1.0"; sha256="1hb8h0v7c76jbhqp713wkmx278q9calpg1rwgdhbrdbq6caldhq7"; depends=[fontawesome htmltools reactR shiny]; };
   cascsim = derive2 { name="cascsim"; version="0.4"; sha256="0n6frnbby1pjpx1z9lzxflmja2mg0dy99c5f7biakpaqi82x5xjb"; depends=[copula fitdistrplus moments R2HTML scatterplot3d]; };
   caseMatch = derive2 { name="caseMatch"; version="1.1.0"; sha256="1lzskh04v2mc6487zd2sq2l14si0mpid91f6avn0i3zz19nqyqsz"; depends=[]; };
-  casebase = derive2 { name="casebase"; version="0.10.4"; sha256="0i9szaalszrlk77wgh5fkiaxqacnx42bpj0410fpx0z3k0g608k2"; depends=[data_table ggplot2 mgcv survival VGAM]; };
+  casebase = derive2 { name="casebase"; version="0.10.5"; sha256="0i9x0z6b3s2qzdyjsaj4bafk20yhbgggljxdwhmm52b4qm7rrgzz"; depends=[data_table ggplot2 mgcv survival VGAM]; };
   cases = derive2 { name="cases"; version="0.1.1"; sha256="16yfypaqjnl3b99a55mri2j55xaj7dixw76wbpbfa3s4y0zylwpz"; depends=[bindata boot copula corrplot dplyr extraDistr ggplot2 magrittr Matrix multcomp mvtnorm]; };
   casino = derive2 { name="casino"; version="0.1.0"; sha256="07fphn46718gr1zm0xr43mwv7yk697xrc40lxxin315cf3gm0cka"; depends=[crayon dplyr ggplot2 magrittr purrr R6 tibble tidyr]; };
-  cassandRa = derive2 { name="cassandRa"; version="0.1.0"; sha256="0rwqzxbflxn1iyggm3mq6pkbl61mhk4vdwqwzlwrhrvvr2ib236r"; depends=[bipartite boot dplyr ggplot2 magrittr purrr reshape2 tidyr vegan]; };
+  cassandRa = derive2 { name="cassandRa"; version="0.2.0"; sha256="19ar7yyigxgn05f9a594b161znjvdczn7gzlajjjc3dq1ccxw84b"; depends=[bipartite boot dplyr ggplot2 magrittr purrr reshape2 rlang tidyr vegan]; };
   cassowaryr = derive2 { name="cassowaryr"; version="2.0.0"; sha256="1gk54haciy3vj7xj6cji1v90xh7g8790zq1rykyispx09jr2dpx3"; depends=[alphahull dplyr energy ggplot2 igraph interp magrittr progress splancs tibble tidyselect]; };
   castor = derive2 { name="castor"; version="1.8.0"; sha256="0caw206hndfzypj33w6npvppdc5hhq1q71wriqd0ck9f238rfi3c"; depends=[jsonlite Matrix naturalsort Rcpp RSpectra]; };
   cat = derive2 { name="cat"; version="0.0-9"; sha256="1wz6mbjzx03267yrszjimcd8yi82z2nfwyvz6l1ry2l300hv2qfs"; depends=[]; };
@@ -7507,25 +7650,25 @@ in with self; {
   catIrt = derive2 { name="catIrt"; version="0.5.1"; sha256="1wagk9f9mvf3b5yvwpas9yqjzpcp786d37wn71jj1af0khry8k62"; depends=[numDeriv]; };
   catR = derive2 { name="catR"; version="3.17"; sha256="178pq6cy3kjpd7mpaky2y8f18561gsf727y0y6rmgm2bn71p2i76"; depends=[]; };
   catSurv = derive2 { name="catSurv"; version="1.5.0"; sha256="0jw7jlam7d44g9sbwmxckm4mywhky2a6h1w5w849g47p7mvi32dc"; depends=[BH jsonlite ltm plyr Rcpp RcppArmadillo RcppGSL RcppParallel]; };
-  cata = derive2 { name="cata"; version="0.1.0.5"; sha256="0fjnyw2kbvvqagc12in7j963jqy5y93rm97wly1vdl7i6dxlhh7g"; depends=[]; };
+  cata = derive2 { name="cata"; version="0.1.0.6"; sha256="077sk9gd84b6vnp25bm6bxbbqjsmigvzndrpgh3p7a11i8377xqc"; depends=[]; };
   catalog = derive2 { name="catalog"; version="0.1.1"; sha256="1j43c34qdklv8pskaidq5fxrygv9lngamdcrkij9c844qj7iff14"; depends=[dplyr sparklyr]; };
   catch = derive2 { name="catch"; version="1.0.1"; sha256="1a63d1a6pzzirdzswngjj036jmg41hbiadwriws7k05qp95jdh6a"; depends=[MASS Matrix tensr]; };
   catcont = derive2 { name="catcont"; version="0.5.0"; sha256="0ix6ipm3nn9aq5vxirjga2kwwfnxn4v8ggfjlg5v9027v2r8rb96"; depends=[dplyr]; };
   catdap = derive2 { name="catdap"; version="1.3.7"; sha256="0z84bx808hy70bkzdda9l42ljh9i9pz07isxq756axi7nr0ky6p9"; depends=[RColorBrewer]; };
   catdata = derive2 { name="catdata"; version="1.2.4"; sha256="1gvibnjfrjdsxx4jks29hhk3dfsm23nxnbwd5p8w67nxr4n6qn0w"; depends=[MASS]; };
-  cate = derive2 { name="cate"; version="1.1.1"; sha256="0wqfblyr7rjx9wnpbnv5lw2zv7nw3mbdjn866l1ng779vka1wdc5"; depends=[corpcor esaBcv leapp MASS Matrix ruv sva]; };
   categoryEncodings = derive2 { name="categoryEncodings"; version="1.4.3"; sha256="0ns8ml2hm41650bi8yag6w3k9nb2ky43370444cgy3i7ajpzw87w"; depends=[data_table glmnet sparsepca]; };
   catfun = derive2 { name="catfun"; version="0.1.4"; sha256="1482rll333fvy4h58f15flfs7qrck3vk9bzpdn3hayhnmc7svmma"; depends=[broom cli DescTools epitools Hmisc magrittr rlang]; };
   cati = derive2 { name="cati"; version="0.99.4"; sha256="02g33kkp97kswiyjsd378zpa3fc9rjk2d9f4l1gdh7pzglabsmgl"; depends=[ade4 ape e1071 FD geometry hypervolume nlme rasterVis vegan]; };
   catlearn = derive2 { name="catlearn"; version="1.0"; sha256="1bzzzqprgyskkf1dnb5k4pqkdn5m67a3pxbnk1cnhscagcjndvy6"; depends=[doParallel dplyr foreach Rcpp RcppArmadillo tidyr]; };
   catmap = derive2 { name="catmap"; version="1.6.4"; sha256="18449qh10jxfi8p49gmbnib5y013nfdgdblbs4n0mfs0nnzb10sx"; depends=[forestplot metafor]; };
   catmaply = derive2 { name="catmaply"; version="0.9.4"; sha256="1vjnh0qvqdfsv4p28yg5r4s9m0l0d7f1r07vamlhvhshb5cfnmsy"; depends=[dplyr magrittr plotly rlang tidyr]; };
+  catregs = derive2 { name="catregs"; version="0.2.0"; sha256="1d5a8mwwyxx6rmm4ngjkgy787x23l9a0crhvn594vhl90r92jpbi"; depends=[]; };
   cats = derive2 { name="cats"; version="1.0.2"; sha256="0snc5vrf8qm53yd42gskhnpp6lfgfkldgpjj3jbcry0wpbfc0dv0"; depends=[doParallel dplyr epitools forcats foreach ggplot2 mvtnorm openxlsx plotly purrr tidyr zoo]; };
   catseyes = derive2 { name="catseyes"; version="0.2.5"; sha256="11n2kxkqv4hqymkj6lkpcvhq6325q8f5w384xf8zb71jl8vx616l"; depends=[]; };
   catsim = derive2 { name="catsim"; version="0.2.3"; sha256="1gz38xrzbray5ciiimkzdass8bhmiqxh6bcngjm5i8dvafk5gf9g"; depends=[Rcpp testthat]; };
   cauchypca = derive2 { name="cauchypca"; version="1.3"; sha256="157ydm2vizv7cwvxi7id7wws7v0h3iymgwsbvk13q4jlk8ygnnqn"; depends=[doParallel foreach Rfast Rfast2]; };
   cauphy = derive2 { name="cauphy"; version="1.0.2"; sha256="1jyw6pq17fzpkp6c68cbc7y5bs1y1xhnvd49j7kkypn7ziglpm9s"; depends=[ape doParallel foreach HDInterval nloptr phylolm pracma robustbase]; };
-  causact = derive2 { name="causact"; version="0.5.4"; sha256="089cl591xxyi8ryfv2c2gp5r74p653qcaspxysn8sgmsyg7jz4qr"; depends=[cowplot DiagrammeR dplyr forcats ggplot2 igraph lifecycle magrittr purrr reticulate rlang rstudioapi stringr tidyr]; };
+  causact = derive2 { name="causact"; version="0.5.5"; sha256="0sf32v47n18sf3x5f08pzl7mc66g95fw6nym02vvyr6a30zv1b5b"; depends=[cowplot DiagrammeR dplyr forcats ggplot2 igraph lifecycle magrittr purrr reticulate rlang rstudioapi stringr tidyr]; };
   causal_decomp = derive2 { name="causal.decomp"; version="0.1.0"; sha256="12iy64dnb91l47vai9qawlwvg17x5amqg0kdj8npk1mgzm2zfz4j"; depends=[CBPS MASS nnet PSweight spelling SuppDists]; };
   causalBatch = derive2 { name="causalBatch"; version="1.2.0"; sha256="0jq5a6ch12v55x8fwz6as43wb4q5nc56hqb97jcsgksvsy9cn2g3"; depends=[cdcsis dplyr magrittr MatchIt nnet sva]; };
   causalCmprsk = derive2 { name="causalCmprsk"; version="2.0.0"; sha256="079wr4w30153hxvk2q9ki19h54p8vyvc1y6ka8j5vk6rcf8gmg5l"; depends=[data_table doParallel foreach inline purrr survival]; };
@@ -7541,7 +7684,7 @@ in with self; {
   causalsens = derive2 { name="causalsens"; version="0.1.3"; sha256="0gmy24vp50xfl4qrnn314svyic8fhqnfhr43zwbcbgipf877hdvh"; depends=[]; };
   causalweight = derive2 { name="causalweight"; version="1.1.0"; sha256="1i01909zfvrxyjpl1zl58s2y3b27xd1rbi3yhmzqlw9q0yxlbnn8"; depends=[checkmate e1071 fastDummies glmnet grf hdm LARF mvtnorm np ranger SuperLearner xgboost]; };
   caviarpd = derive2 { name="caviarpd"; version="0.3.9"; sha256="0dd1z7n06k578rz985hvpa9h8axik93fil1qysjx98faszxxnk2r"; depends=[]; };
-  cba = derive2 { name="cba"; version="0.2-23"; sha256="18al5kavn3q2h6gl4s1hgxhy9ysv9fq602ffmzla251g380b166n"; depends=[proxy]; };
+  cba = derive2 { name="cba"; version="0.2-24"; sha256="0lhx813wpb544p9akaj89hmfx95ka46h6xykxly0dpf7ck00brsh"; depends=[proxy]; };
   cbanalysis = derive2 { name="cbanalysis"; version="0.2.0"; sha256="0h0h8krlb6rckjpcw0jbbr8pcy3jm0cszimbm56l0ca668kiix06"; depends=[]; };
   cbass = derive2 { name="cbass"; version="0.1"; sha256="1x7k9srf2jgjhlha9fjm7rfcd9msk05nxa3p7657ns8y2v12s0nq"; depends=[]; };
   cbcTools = derive2 { name="cbcTools"; version="0.5.0"; sha256="07has80n7n23y2y3shalps1hkw1r8f4fld1r48g42fdrwkhhf6jw"; depends=[AlgDesign DoE_base fastDummies ggplot2 idefix logitr MASS randtoolbox rlang]; };
@@ -7556,7 +7699,8 @@ in with self; {
   cccd = derive2 { name="cccd"; version="1.6"; sha256="0cxh19jqappc6zq9nz3m40ybdmsp12mf7yvflsz96wks3ly2ld4y"; depends=[deldir FNN igraph proxy]; };
   cccm = derive2 { name="cccm"; version="0.1.0"; sha256="1spwv5crmaysw19c2rq3cri2kmrfzqcb1wjdpri1ih6sgcg039gi"; depends=[dplyr rlang]; };
   cccp = derive2 { name="cccp"; version="0.3-1"; sha256="06ds1f954m2g3g85rccpvk1bhxqn544qqxg7wzs4jkb97h590dzn"; depends=[Rcpp RcppArmadillo]; };
-  cccrm = derive2 { name="cccrm"; version="2.2.1"; sha256="1mvnidwwa5nq00ca6l64m0h7dkvm32r9ymrqpjqnyrimr0mfxgl6"; depends=[Deriv dplyr nlme tidyselect]; };
+  cccrm = derive2 { name="cccrm"; version="2.2.2"; sha256="1byrz0npvchdzbp10z7blz13680x7d5yak9mmagn4q3w8wclpl7x"; depends=[Deriv dplyr nlme tidyselect]; };
+  ccdR = derive2 { name="ccdR"; version="1.0.0"; sha256="04g8i39p11yyrrgs3lpwj095hnyncdljyz4mxsl9pcql4hwp4v39"; depends=[cli data_table httr jsonlite purrr rlang stringr tibble tidyr urltools]; };
   ccda = derive2 { name="ccda"; version="1.1.1"; sha256="1kka4vmhpcnl4skdmijzsxrfj6dgax6hhlxvp7gkqlfaazq8pzf0"; depends=[MASS]; };
   cchs = derive2 { name="cchs"; version="0.4.4"; sha256="14qmh4jb9i0imjkb33x61q074zsrng3acy52cw9p0zsxrbh4gdf5"; depends=[survival]; };
   cchsflow = derive2 { name="cchsflow"; version="2.1.0"; sha256="1cnf1xcwz86nzzgk998m3icdvb799hnj7dzcmhv26gjvix1dqj2g"; depends=[dplyr haven magrittr sjlabelled stringr]; };
@@ -7579,7 +7723,7 @@ in with self; {
   cdcsis = derive2 { name="cdcsis"; version="2.0.3"; sha256="0hv52valyig3zzywm3058c5nxb2n7y3j2vfibxdbfg8414wwapd9"; depends=[ks mvtnorm Rcpp]; };
   cder = derive2 { name="cder"; version="0.3-1"; sha256="0h44yifiy0fqrmfpri0had1ps5d1jj1dgwllha5ng04rjwlvxpzz"; depends=[curl dplyr glue lubridate readr stringr]; };
   cdfquantreg = derive2 { name="cdfquantreg"; version="1.3.1-2"; sha256="1abbr14fqn56c4yqrz1qbzq03xl5qi6px29wljd3yzysypvh9his"; depends=[Formula MASS pracma]; };
-  cdgd = derive2 { name="cdgd"; version="0.3.4"; sha256="1wyd3hmfgn9xkkrgl9iqqzybxmh0v7iyq2awi2w8ckz50glwd4sp"; depends=[caret]; };
+  cdgd = derive2 { name="cdgd"; version="0.3.5"; sha256="10cd1s06k2hcvzjsibz1nask7n22x98s0cpi1j0l974s1j426wzy"; depends=[caret]; };
   cdlTools = derive2 { name="cdlTools"; version="1.13"; sha256="0cxk4n0csg64479bz8xrpfg8mixwx7pb5sl5gwkrkl6pd256rw86"; depends=[httr raster rvest stringr terra]; };
   cdlei = derive2 { name="cdlei"; version="1.0"; sha256="1zsgryrwr1nqhcyizrh67lm953b87ih9l4rvc6i59s4vg2ph1ph1"; depends=[]; };
   cdmTools = derive2 { name="cdmTools"; version="1.0.5"; sha256="0nd15lr8hdin8qnxykway70irvfi239rm4jx3ck253l7igswiz7s"; depends=[combinat doSNOW foreach fungible GDINA ggplot2 GPArotation psych sirt]; };
@@ -7588,6 +7732,7 @@ in with self; {
   cdrcR = derive2 { name="cdrcR"; version="0.1.1"; sha256="13fd936by6b47hlbwidv0jdqav6c4r2llgf3cajvivlpi98vk7c7"; depends=[dplyr httr jsonlite magrittr purrr rjson rlang rlist sf tidyr tidyselect]; };
   cds = derive2 { name="cds"; version="1.0.3"; sha256="1h34k96h7ajkaqsw4dlqri63hrbnshaqwrdl74wlgycdlbvrqj05"; depends=[clue colorspace copula limSolve MASS]; };
   ceRtainty = derive2 { name="ceRtainty"; version="1.0.0"; sha256="01wgvjpxqwhgh6vx9vbmiv4d88bps790l6ij3gw5w69hbrrd9ixi"; depends=[dplyr RColorBrewer tidyr]; };
+  ceas = derive2 { name="ceas"; version="1.0.0"; sha256="0xxinxavqkfg3zfl62mz64msivr5j8l88sshqc1z56kxldyv0xfn"; depends=[data_table ggplot2 readxl]; };
   ceg = derive2 { name="ceg"; version="0.1.0"; sha256="01la7kv0a3inc9vy5x010ysicfiv404bqfgs8csvqixviap9rd74"; depends=[graph Rgraphviz]; };
   celestial = derive2 { name="celestial"; version="1.4.6"; sha256="1gls0qvr8mxz79lsmk76v253f747g0cqys8p8wjmpijs8r0pyr4z"; depends=[NISTunits pracma RANN]; };
   cellKey = derive2 { name="cellKey"; version="1.0.2"; sha256="1brl0747mr9wpk0q299d55z94zhq2783nad1lanm5ia39r0x8i22"; depends=[cli data_table digest ptable rlang sdcHierarchies sdcTable yaml]; };
@@ -7596,23 +7741,22 @@ in with self; {
   cellWise = derive2 { name="cellWise"; version="2.5.3"; sha256="0asimy253lxm9yf47pynhxc7sfd3v5rkvnyf1sby7s4qkz06bh49"; depends=[ggplot2 gridExtra matrixStats Rcpp RcppArmadillo reshape2 robustbase rrcov scales shape svd]; };
   cellpypes = derive2 { name="cellpypes"; version="0.3.0"; sha256="1px7p1xly71p48w72m5fcs2krxba72slnh638wpd98a52clbgz6l"; depends=[cowplot dplyr ggplot2 Matrix rlang scales scattermore scUtils viridis]; };
   cellranger = derive2 { name="cellranger"; version="1.1.0"; sha256="16fgi3annn34c3cxi0pxf62mmmmxi21hp0zzlv7bkfsjqy4g4f2x"; depends=[rematch tibble]; };
-  celltrackR = derive2 { name="celltrackR"; version="1.1.0"; sha256="08hbgpwcpf7v8l7qmszhjh0w4f4zjcizrdsxksihxpwdi9r4al3w"; depends=[ellipse pracma]; };
+  celltrackR = derive2 { name="celltrackR"; version="1.2.0"; sha256="1y0bdn75malabyrnrqrw5vh2sr6j09hpy8gbk1vnmkbvg9dy2xh3"; depends=[ellipse pracma]; };
   cem = derive2 { name="cem"; version="1.1.31"; sha256="1ylzsx2km9lf3x1rchwgs3nd8dzrac81f2jnd4qri35zvlilh1c6"; depends=[combinat lattice MatchIt nlme randomForest]; };
   cemco = derive2 { name="cemco"; version="0.2"; sha256="172raa62i34d1vzsgy84h3b7mmdzvg9h657fcmgrlhlkwqzx0gyl"; depends=[doParallel foreach MASS mclust mvtnorm nnet rootSolve]; };
   cenGAM = derive2 { name="cenGAM"; version="0.5.3"; sha256="0qic2g2bq24k9jimxdk8g7bsmi4br2r6159ipdhh5ym81ji3sf5p"; depends=[mgcv]; };
   cenROC = derive2 { name="cenROC"; version="2.0.0"; sha256="1rgs1h32jm7ls830f62gi5wdaqx3q2h4m4qirxqmv0pi8y5y2a9v"; depends=[condSURV icenReg Rcpp RcppEigen survival]; };
   cencrne = derive2 { name="cencrne"; version="1.0.0"; sha256="1s5d6k01wlxs248wf9k77qxwnvaivxzsighsfdmd1hrf0klbwy5z"; depends=[MASS Matrix]; };
   censCov = derive2 { name="censCov"; version="1.0-0"; sha256="0i9vmyi12f1m5xnrl4cxk3z9qv7ymzxsyf4gbnpg1ph63yfnhv3g"; depends=[survival]; };
-  censReg = derive2 { name="censReg"; version="0.5-36"; sha256="0r8pyscsw3m8lf6mx70sjk70k7i1jfjkk2qzq19m85q3byx447n6"; depends=[glmmML maxLik miscTools plm sandwich]; };
+  censReg = derive2 { name="censReg"; version="0.5-38"; sha256="1rrgvq883970zp311lmkvxxky29w48p54xa4hq7iaa33yq7dbmmb"; depends=[glmmML maxLik miscTools plm sandwich]; };
   censable = derive2 { name="censable"; version="0.0.5"; sha256="15p4ggnkcddm2lglf798bcjghppx0pqzc8nyljyiw0hwsw14c7yg"; depends=[censusapi dplyr magrittr memoise purrr rlang sf stringr tibble tinytiger]; };
   censo2017 = derive2 { name="censo2017"; version="0.6.2"; sha256="0rj3a9i6faqsrx641p1nacdprfnzp8q45khpdrakmfnc7l40xh87"; depends=[cli crayon DBI duckdb httr purrr rstudioapi tibble]; };
   censobr = derive2 { name="censobr"; version="0.3.2"; sha256="0bjrlcfzdymkp2nhrnr8ilw2xcgl9fkv47m2wlffb8ay5mlkar26"; depends=[arrow checkmate dplyr httr]; };
   censorcopula = derive2 { name="censorcopula"; version="2.0"; sha256="16pk4xlpliif02qznrhvl8qmrr6k4kknygqxcm83nsjxy6dcyga8"; depends=[copula]; };
-  censored = derive2 { name="censored"; version="0.3.0"; sha256="10vsba7c7zcqgm3xzhkyaxhv6hdg69gxa5xsqyn6ycx692a97rjy"; depends=[cli dials dplyr generics glue hardhat lifecycle mboost parsnip prettyunits prodlim purrr rlang survival tibble tidyr]; };
+  censored = derive2 { name="censored"; version="0.3.2"; sha256="171bfny4d8p8i82xv0mj315imb9ghvn2jzvirqmkm6k0cxmaqyrz"; depends=[cli dials dplyr generics glue hardhat lifecycle mboost parsnip prodlim purrr rlang survival tibble tidyr]; };
   censusapi = derive2 { name="censusapi"; version="0.8.0"; sha256="1wswd6kmb0fbyc3zs3q3dhhaa1la1z5alz4vg485ac9wacnab60r"; depends=[httr jsonlite]; };
   censusr = derive2 { name="censusr"; version="0.0.4"; sha256="1n9571fyr46wj1dcxc2xgns9865655yzlq7yfz8im014wh0ycwqc"; depends=[dplyr httr stringr]; };
   centiserve = derive2 { name="centiserve"; version="1.0.0"; sha256="1m6gqz2rk7023340laa5pc0ncbfka2qi9ajvh65fwijd7xvv3n5c"; depends=[igraph Matrix]; };
-  centralplot = derive2 { name="centralplot"; version="0.1.0"; sha256="1slzvbm1vvgj1gkcx9pb46fz8q55vfyqrxsvx4qzi5kp7d9h4dy2"; depends=[ggplot2]; };
   centrifugeR = derive2 { name="centrifugeR"; version="0.1.7"; sha256="078rm1i1qqx15qj75yajc11zfsnp6mcb391v5vc0dl03xjzsiz7q"; depends=[pracma shiny shinythemes]; };
   cepR = derive2 { name="cepR"; version="0.1.2"; sha256="02dj6vyfgc0lsgclbsmzpms1hnnwb3yjdayim7b7vpciym2c8ww3"; depends=[dplyr httr magrittr purrr tibble]; };
   cepiigeodist = derive2 { name="cepiigeodist"; version="0.1"; sha256="0i1i8hyl4bkcyxrrfqs3m9yny33w0i33409f4kx83wfnablc54sv"; depends=[]; };
@@ -7627,20 +7771,19 @@ in with self; {
   cetcolor = derive2 { name="cetcolor"; version="0.2.0"; sha256="0kygdcr9ldanr0z4qpygwh0padki7s2ad0j6myky601g4228z79q"; depends=[]; };
   ceterisParibus = derive2 { name="ceterisParibus"; version="0.4.2"; sha256="0hxklydsqb69y5sv2hanp5ja9k0063swf5si1j6gcj15lp7phpif"; depends=[DALEX ggplot2 gower knitr]; };
   cfa = derive2 { name="cfa"; version="0.10-1"; sha256="1hmahwi60qiwf4g50d3cnhgvdbnv0q0shfalzxisv87xxr586mlj"; depends=[]; };
-  cfbfastR = derive2 { name="cfbfastR"; version="1.9.0"; sha256="0b5zagk5nwmq5gn3m3sva8ns7pbp5iqhkyfcwv3xf95qbshvpz6b"; depends=[cli data_table dplyr glue httr janitor jsonlite magrittr mgcv nnet progressr purrr Rcpp RcppParallel rlang stringr tibble tidyr]; };
   cfda = derive2 { name="cfda"; version="0.11.0"; sha256="03w2vfgjf29qn40slqfpd54dmvzql53lc9j7n51ggg7bjchrg2x0"; depends=[diagram fda ggplot2 mgcv msm pbapply]; };
   cfdecomp = derive2 { name="cfdecomp"; version="0.4.0"; sha256="0g61gpihk5kbbrqzn15fqjv3bawsq1vq3sdssbzs5j96afmf2aq8"; depends=[]; };
   cffdrs = derive2 { name="cffdrs"; version="1.9.0"; sha256="0y4w045fgn1q63w9bk4qwzzxij34agjsg396vmydljz3w86insib"; depends=[data_table doParallel foreach geosphere sf terra]; };
-  cffr = derive2 { name="cffr"; version="1.0.0"; sha256="1vmgxj59iyhmfbr1vjisr8ml9ql2i1pi0wlhm3gz3cwng3cwb392"; depends=[cli desc jsonlite jsonvalidate yaml]; };
+  cffr = derive2 { name="cffr"; version="1.0.1"; sha256="1h8kk2zjp5c86a2r64ad88zs1w80gc5x8dlr4a16h9w6r98zjxpd"; depends=[cli desc jsonlite jsonvalidate yaml]; };
   cfid = derive2 { name="cfid"; version="0.1.7"; sha256="03wfzilxgia12hacwkay2ki94mha8b42g62cx66x1rkqqxgcp6n9"; depends=[]; };
   cfma = derive2 { name="cfma"; version="1.0"; sha256="006z5g3rqpg44jqdf6ivyxr47sxm5cd9cqhayfi8qk73xx5w4lv9"; depends=[]; };
   cfmortality = derive2 { name="cfmortality"; version="0.3.0"; sha256="0dgwv89fzylznc6jr41ixzfs1gfs3np4gf46bk6pcd09l1kbx3lc"; depends=[]; };
   cforward = derive2 { name="cforward"; version="0.1.0"; sha256="1vhac0669f20ckx7qi5v8rnbmscb87gw8rfn555xazdfbvri6m0w"; depends=[dplyr magrittr survival tibble]; };
-  cfr = derive2 { name="cfr"; version="0.1.0"; sha256="1qy25jfzpsk4zfcgjlw188a40vvj478r4g7pwrwxw4ppcqrncxny"; depends=[checkmate]; };
+  cfr = derive2 { name="cfr"; version="0.1.1"; sha256="0gvajvwriiird3symkln0z52k9v1rz3bh4yvdg0xh1lqhylr165b"; depends=[checkmate]; };
   cft = derive2 { name="cft"; version="1.0.0"; sha256="1jfp1dx15bs9c8c11ja80ga99m2d9q9j5sgdjkwvs23vjqdwi13a"; depends=[dplyr epitools furrr future magrittr osmdata pipeR plyr rlang rlist sf tidync tidyr]; };
   cg = derive2 { name="cg"; version="1.0-3"; sha256="1kbyal1sicbr10yvxpwgcij710kqpi23vmndp9kyfzn3k8zfird3"; depends=[Hmisc lattice MASS multcomp nlme rms survival VGAM]; };
   cgAUC = derive2 { name="cgAUC"; version="1.2.1"; sha256="172f9rkfhv4xzwpw8izsnsdbcw9p3hvxhh0fd8hzlkil7vskr3k8"; depends=[Rcpp]; };
-  cgaim = derive2 { name="cgaim"; version="1.0.0"; sha256="0bi8rmykgynkkbpkvm3n9ihl8x41n4msgz17ilwpa1xw9lf3pcj6"; depends=[cgam coneproj doParallel foreach gratia limSolve MASS Matrix mgcv osqp quadprog scam scar TruncatedNormal]; };
+  cgaim = derive2 { name="cgaim"; version="1.0.1"; sha256="1krs61rbnz7v4pncbjlil4728x5xyz5vzbyj487njbmqgymq10wl"; depends=[cgam coneproj doParallel foreach gratia limSolve MASS Matrix mgcv osqp quadprog scam scar TruncatedNormal]; };
   cgal4h = derive2 { name="cgal4h"; version="0.1.0"; sha256="0ghcwjfqlhqysnl8mgz6zp7dyqh8pvnpvphwjwk6zqi24n3nhac2"; depends=[]; };
   cgam = derive2 { name="cgam"; version="1.21"; sha256="0dsiwam9fgvri14hznnplxcjj0f8ibi8vf64wryq3pcvi41di082"; depends=[coneproj lme4 Matrix statmod svDialogs]; };
   cglasso = derive2 { name="cglasso"; version="2.0.7"; sha256="18j50f6ghk7vjr3xfw8j1nh42l6rm8kd5c6jcvll2rjbvq5vn571"; depends=[igraph MASS]; };
@@ -7649,9 +7792,11 @@ in with self; {
   cgmquantify = derive2 { name="cgmquantify"; version="0.1.0"; sha256="11pw1layzx9a8qy7n06nyc59mi5r07krhxw6hhybbqkdglzp511w"; depends=[dplyr ggplot2 hms magrittr tidyverse]; };
   cgwtools = derive2 { name="cgwtools"; version="4.1"; sha256="0nw9zmbx3d7jqvw0yjqnqxnk16fay5pg4hws6qk341ipixwfmcbf"; depends=[gmp]; };
   ch = derive2 { name="ch"; version="0.1.0.2"; sha256="1ryh2xr1ix4qznq1svi4gdr4qy6v6rg597z2zl6zw32s2xq6ssx6"; depends=[clipr crayon ggplot2 magrittr MASS polynom pracma Ryacas]; };
+  chainbinomial = derive2 { name="chainbinomial"; version="0.1.5"; sha256="1qs1bcql1xcb1qh35spr4j0vk6gwwjc3c0sb1y6vy0vh9z5mz6p8"; depends=[generics]; };
   chameleon = derive2 { name="chameleon"; version="0.2-3"; sha256="0a3azp0zaakpqqx0pp94hkj3vgb2apnf8gb5ga0as4i8lrn9dz8i"; depends=[clue ggplot2 umap]; };
   chandwich = derive2 { name="chandwich"; version="1.1.6"; sha256="03qcqw9xx8mw7hymjl3ym6l1adgw5ssv0pmcmdv2hk230mx2fsld"; depends=[numDeriv]; };
   changeRangeR = derive2 { name="changeRangeR"; version="1.1.0"; sha256="0y13wwz62wsh29flb7v094gb47gd6xwjq6fvmkzmlhz8x71f5g1v"; depends=[dplyr phylobase rangeModelMetadata raster sf sp]; };
+  changeS = derive2 { name="changeS"; version="1.0.1"; sha256="1igd2qvs5y2g63byvwn0djbgc5lqi9zx7a0g2dkda1q6snl65yi7"; depends=[ggplot2 nls_multstart stringr]; };
   changepoint = derive2 { name="changepoint"; version="2.2.4"; sha256="16v4p2c9zi2w3anwf5y9snl5dy1g5aidiqz1vn2p64qhfvg6yqxc"; depends=[zoo]; };
   changepoint_geo = derive2 { name="changepoint.geo"; version="1.0.2"; sha256="0zwj4wwwh99diz0vn5f06ygs93afahnn5glvab2k7wgk2qyf5jgq"; depends=[changepoint changepoint_np ggplot2 Rdpack]; };
   changepoint_influence = derive2 { name="changepoint.influence"; version="1.0.2"; sha256="0mlr1k7mbi2v4vd0ry4if5j6x638znj0kbfvwr20p6m6wmd0ln0a"; depends=[changepoint data_table ggplot2 gridExtra reshape]; };
@@ -7665,7 +7810,8 @@ in with self; {
   chartql = derive2 { name="chartql"; version="0.1.0"; sha256="108csn7q8qrjhiss54f5bliv3av7psq7kfryspajbdb6wm9ciz3p"; depends=[ggplot2 stringr]; };
   chatAI4R = derive2 { name="chatAI4R"; version="0.2.10"; sha256="0iil1bl6l89lckxh4bdxjnjnww2h8q4gd83b29rbw4xfa1mlb8rb"; depends=[assertthat clipr crayon deepRstudio future httr igraph jsonlite pdftools rstudioapi rvest xml2]; };
   chatgpt = derive2 { name="chatgpt"; version="0.2.3"; sha256="1a71rzim5x40lnb7pc5n0b9j56kg96cjw7x4liqkbn84n61db6ff"; depends=[clipr httr jsonlite miniUI rstudioapi shiny]; };
-  cheapr = derive2 { name="cheapr"; version="0.3.0"; sha256="0qmnfhxgzn4gcn2wx7zwz30kj5zgvcs7dfkayrarf9qmm9ys8rnd"; depends=[collapse cpp11]; };
+  chattr = derive2 { name="chattr"; version="0.1.0"; sha256="0sgaanmvnmcqn57ks7xdc3bvdzifrkqkz6bpjq8978jrpysxm2cw"; depends=[bslib callr cli clipr config fs glue httr2 jsonlite lifecycle processx purrr rlang rstudioapi shiny yaml]; };
+  cheapr = derive2 { name="cheapr"; version="0.9.2"; sha256="06slf0b5qv8ypmcyw6r7ip3sgx6x44bvwy0zgfwhm8kawkjxir24"; depends=[collapse cpp11]; };
   cheatsheet = derive2 { name="cheatsheet"; version="0.1.2"; sha256="0nhyz354hxnqbs3iwvaisssr4ciq6vary3ldkm8yanpdyw0p1k27"; depends=[cli crayon fs git2r magrittr purrr rstudioapi]; };
   checkLuhn = derive2 { name="checkLuhn"; version="1.1.0"; sha256="1s1ix5n98bcbzcvrz5h19sk9pchdvrhpy3ppmw96ys8vylzm58mv"; depends=[dplyr stringr]; };
   checkarg = derive2 { name="checkarg"; version="0.1.0"; sha256="0rkdjs2c4yx9laqgayxz57bwxhwgdh6ndrr4i3b1kh31lcmk1xc6"; depends=[]; };
@@ -7683,7 +7829,6 @@ in with self; {
   chem16S = derive2 { name="chem16S"; version="1.0.0"; sha256="0a4r1sca2fsadaz3bmkrkylbdabwjw2ja6p9s9hgkgg4k6h3vslr"; depends=[ggplot2 phyloseq plyr reshape2 rlang]; };
   chemCal = derive2 { name="chemCal"; version="0.2.3"; sha256="0f0d0ljym745scnfdx0n0jp86g4r51gylcab3h7ykpaizgpah24r"; depends=[]; };
   chemdeg = derive2 { name="chemdeg"; version="0.1.2"; sha256="0ipj7988bwrcz489wa5mx789aw9dij6003rbdndbl3m2r3hi9pnv"; depends=[MASS]; };
-  chemmodlab = derive2 { name="chemmodlab"; version="2.0.0"; sha256="01af0j24vymxiqahwhcf4kp0x603yllvlgcxnybsi2wnzm71swk7"; depends=[caret class e1071 elasticnet KernSmooth lars MASS MSQC nnet pls pROC randomForest rpart tree]; };
   chemodiv = derive2 { name="chemodiv"; version="0.3.0"; sha256="07y8wvi5vh5apvg57pd2q5rqvpxm0h3v899n12r76gwvj8z1a28s"; depends=[ape ChemmineR curl fmcsR ggdendro ggplot2 ggraph gridExtra GUniFrac hillR httr igraph jsonlite rlang tidygraph tidyr vegan webchem]; };
   chemometrics = derive2 { name="chemometrics"; version="1.4.4"; sha256="10d8g8sgck6v2cgkv988yiawv9vrziyqsrhagmkzf7rjpqgdn3px"; depends=[class e1071 lars MASS mclust nnet pcaPP pls robustbase rpart som]; };
   cherry = derive2 { name="cherry"; version="0.6-14"; sha256="03ipvd2ldzk7xsalkgcx0cyp9cp9b8qqjvz8nl0am412j3z9i5wg"; depends=[bitops hommel lpSolve]; };
@@ -7691,11 +7836,12 @@ in with self; {
   chess = derive2 { name="chess"; version="1.0.1"; sha256="0b0lz8r48bvksjnh385p1ni22hw1yvs6255pjbpj49ga9dwziin0"; depends=[cli magrittr purrr reticulate rsvg]; };
   chessboard = derive2 { name="chessboard"; version="0.1"; sha256="0w58zbiz9gw18ixcp3j23ys52xx5i4wrjhixiy4brc5b5h1i8mdi"; depends=[dplyr ggplot2 magrittr rlang sf tidyr]; };
   chest = derive2 { name="chest"; version="0.3.7"; sha256="0905xl1vqn8icvf44vydhd00wvz5cdnl2igr7m0jmrsv564zdj5a"; depends=[broom dplyr forestplot ggplot2 MASS survival tibble]; };
-  chevron = derive2 { name="chevron"; version="0.2.5"; sha256="0djd3zx4g5m8jkys8dbmxypdlnl0lnbg6qrjyyf0qbjsqipwp1yi"; depends=[checkmate dplyr dunlin forcats formatters ggplot2 glue lifecycle magrittr nestcolor purrr rlang rlistings rtables stringr tern tibble]; };
+  chevron = derive2 { name="chevron"; version="0.2.6"; sha256="05h8bjgjh8nj81yynidywvahhnxjnjpd3l248kxs503dhj9flqi9"; depends=[checkmate dplyr dunlin forcats formatters ggplot2 glue lifecycle magrittr nestcolor purrr rlang rlistings rtables stringr tern tibble]; };
   chi = derive2 { name="chi"; version="0.1"; sha256="1y91mwahj4j2wz0y5k5vdpq7ygq834h8jkn37n74lqnwvv1968rr"; depends=[]; };
   chicane = derive2 { name="chicane"; version="0.1.8"; sha256="0963r5jzyjihidh18ny9nqkim00bys3psdgrxhbah43bbl0kx43r"; depends=[bedr data_table doParallel foreach gamlss gamlss_tr iterators knitr MASS rmarkdown]; };
   childdevdata = derive2 { name="childdevdata"; version="1.1.0"; sha256="016x6xhqq1mfqlj9m5qv63k639xnqnrf5h6rdcyaa8sxn7nv34zm"; depends=[]; };
   childesr = derive2 { name="childesr"; version="0.2.3"; sha256="1a58s0zph4mfmh9sdfbv7yaa20lx5gi0mca0ikzarfwxjl5knp39"; depends=[DBI dbplyr dplyr jsonlite magrittr purrr RMySQL]; };
+  childfree = derive2 { name="childfree"; version="0.0.1"; sha256="0p1b1bi6shkg2lzl0q07al80sc5gw3yrz3cj8sp5rfpnrfa12ard"; depends=[rio]; };
   childsds = derive2 { name="childsds"; version="0.8.0"; sha256="1vv02kbw17b8zva2yc1qgi750z9yhyfv5xbig29dhyzvj8k00yvb"; depends=[boot class dplyr gamlss gamlss_dist magrittr purrr purrrlyr reshape2 tibble tidyr VGAM]; };
   chilemapas = derive2 { name="chilemapas"; version="0.3.0"; sha256="00v99y02fnxzn2ysbc2fbkdfirfl1276q8d7csi18kbym3vwqmq9"; depends=[dplyr magrittr rlang rmapshaper sf stringr]; };
   chillR = derive2 { name="chillR"; version="0.75"; sha256="0b8r8s7vqgpb6jjbqaf24yig2adagfl6rnnppx15mdhz8bmjc5aq"; depends=[assertthat dplyr ecmwfr fields GenSA ggplot2 httr jsonlite Kendall lubridate magrittr metR patchwork pls plyr progress purrr R_utils raster Rcpp RCurl readxl reshape2 rlang RMAWGEN scales stringr tidyr XML]; };
@@ -7720,7 +7866,7 @@ in with self; {
   chouca = derive2 { name="chouca"; version="0.1.99"; sha256="1gnilv8ww106mz5wnry826gysgsaq7mvd83ms0j5jhkkqmsqy2dd"; depends=[digest plyr Rcpp RcppArmadillo]; };
   christmas = derive2 { name="christmas"; version="1.3.0"; sha256="0gqyxvhx8nvcrjxqrybvxyc3dgwvd3z9ln4fig6q3zamfpdmljb7"; depends=[animation]; };
   chromConverter = derive2 { name="chromConverter"; version="0.2.1"; sha256="0mpakgcqmpw0s7vcndqfmd2n2imn35nh5nkps07aj0vgd7z9ib8w"; depends=[magrittr purrr readr readxl reticulate stringr tidyr xml2]; };
-  chromer = derive2 { name="chromer"; version="0.6"; sha256="1jn5dwl8i1di8hns3kjww6sqyba768j1302w3f43v9965vfr1xnp"; depends=[dplyr httr tibble]; };
+  chromer = derive2 { name="chromer"; version="0.8"; sha256="0x9xhih0a19mqwiqs7bljcdgki874ii653v91frkwsr2y2yd9j7c"; depends=[dplyr httr tibble]; };
   chromoMap = derive2 { name="chromoMap"; version="4.1.1"; sha256="1067h5d6jdbm811n7ayikhqfbcqmxbz5jgp05vf1sbln7qgn9l43"; depends=[htmltools htmlwidgets]; };
   chromote = derive2 { name="chromote"; version="0.2.0"; sha256="0x888796760gglxqzd0i5mqim3j878dkyip64m26irprl9ksyxm3"; depends=[curl fastmap jsonlite later magrittr processx promises R6 rlang websocket]; };
   chromseq = derive2 { name="chromseq"; version="0.1.3"; sha256="0m9dnm50iw176ffn6syd3538hxmjhkrxfzaf13210q100wk0lgz2"; depends=[]; };
@@ -7759,6 +7905,7 @@ in with self; {
   citationchaser = derive2 { name="citationchaser"; version="0.0.4"; sha256="11ilh8fpqvljzriwwkzmw5idxff82spyv4b36lsl1s0lfbgjis69"; depends=[data_table dplyr httr jsonlite maditr MESS networkD3 scales tibble]; };
   citecorp = derive2 { name="citecorp"; version="0.3.0"; sha256="0lqxa6qfysrk3rpg9fnsxhrfsd0qsbfxhc3b43090fhlxq9gk3wm"; depends=[crul data_table fauxpas jsonlite]; };
   cities = derive2 { name="cities"; version="0.1.3"; sha256="1047y1n8mldbnq8g7p43bcvsxz2hbcidbwvafcj1h01rsfgbfkd1"; depends=[dplyr ggplot2 ggthemes plotly tidyr]; };
+  citmre = derive2 { name="citmre"; version="0.1.0"; sha256="08n8ldfdnpizk55j9iba65b6dkqxlqmsvfgvmn7cnrzgb4achcxd"; depends=[dplyr httr jsonlite lubridate plotly rvest xml2 xts]; };
   cito = derive2 { name="cito"; version="1.1"; sha256="0ayzwk684a0clq67h6ycifphcrhshdx5kpww9yi0v627pyx3jfv6"; depends=[abind checkmate cli coro gridExtra lme4 parabar progress tibble torch torchvision]; };
   citrus = derive2 { name="citrus"; version="1.0.2"; sha256="1pzzyppqfh3qvc1xi2947lnshv7z2c21r8fribhc1avj76j26q5y"; depends=[clustMixType dplyr GGally ggplot2 RColorBrewer rlang rpart rpart_plot stringr tibble treeClust]; };
   ciu = derive2 { name="ciu"; version="0.6.0"; sha256="0pqs8ivbybbrjar978bl05awgaks33nqfm7l9z68iv2sj4a9hv21"; depends=[crayon ggplot2 Rcpp]; };
@@ -7775,7 +7922,8 @@ in with self; {
   clam = derive2 { name="clam"; version="2.5.0"; sha256="16yq457a2c8d47szimad7rx0q31h0g7iirmb75xxjicvkxqprmaz"; depends=[rintcal]; };
   clarabel = derive2 { name="clarabel"; version="0.5.1"; sha256="12kds0pwvs2wrv23pjs6bbh49gymak7as46qjz65is4ssd12fbs8"; depends=[]; };
   clarifai = derive2 { name="clarifai"; version="0.4.2"; sha256="0igi4xl27nz0r85hpws2zfc2gn5z2nmywp3saxgp74mh2y99lg6s"; depends=[curl jsonlite]; };
-  clarify = derive2 { name="clarify"; version="0.2.0"; sha256="1iyjs0wai41x6w0kv7szr7x5gfs05k2kya7bw4n37g0i8s829isq"; depends=[chk ggplot2 insight marginaleffects mvnfast pbapply rlang]; };
+  clarify = derive2 { name="clarify"; version="0.2.1"; sha256="0cda1xvcfd0lz3802h945jw98ala68z89vfgdixv4z6yn9fqzzcq"; depends=[chk ggplot2 insight marginaleffects mvnfast pbapply rlang]; };
+  clarkeTest = derive2 { name="clarkeTest"; version="0.2.0"; sha256="0p2lhpdic6rlx6qrb0kkc94anr1pbpvdznykli6ggsd4p5amqbpl"; depends=[]; };
   class = derive2 { name="class"; version="7.3-22"; sha256="0p6i10jk8mb85bkx4lvixw85lsmgnk4cizcdw33zqhrqx5j436dn"; depends=[MASS]; };
   classGraph = derive2 { name="classGraph"; version="0.7-6"; sha256="10nyrs5xh70ajhi1q6pvx4s5lkl2r46ddxanhiyn9vv9swr2hzsw"; depends=[graph Rgraphviz]; };
   classInt = derive2 { name="classInt"; version="0.4-10"; sha256="12rbwh7g0a6abvy423xjiv53gx1f9lg4y78r80lc0fj9pjpiwmn3"; depends=[class e1071 KernSmooth]; };
@@ -7787,7 +7935,7 @@ in with self; {
   clda = derive2 { name="clda"; version="0.1"; sha256="03zfanvpz1h42h2z38a63fck1p5hqig4w2svknzpw7mryji5q9b1"; depends=[MASS]; };
   cleaR = derive2 { name="cleaR"; version="0.0.4"; sha256="1vvmaaqqrd65l9hm3yjf88ajmlaf1sl7iy816ypjy9ww9x7dcyf4"; depends=[]; };
   clean = derive2 { name="clean"; version="2.0.0"; sha256="0zvk3a5yz54g2mn7y1d91z6ljglbyq1hkh4iip1dfyi15chrqv7y"; depends=[cleaner]; };
-  cleanNLP = derive2 { name="cleanNLP"; version="3.0.7"; sha256="0zkfc7m7afmljr5rflx9mfplfamv6c30qaw0ckalj14s9xdrxa44"; depends=[Matrix reticulate stringi udpipe]; };
+  cleanNLP = derive2 { name="cleanNLP"; version="3.1.0"; sha256="0qddi649ifgwlgbv7jh0im00dhhs740sgpkid39j01kdsv9czlil"; depends=[Matrix reticulate stringi udpipe]; };
   cleanTS = derive2 { name="cleanTS"; version="0.1.2"; sha256="04k84989a0jvdd015yrd6wqnfk19yq0a4qpdnm3l0137h7s2xq8k"; depends=[data_table gganimate ggplot2 ggtext glue imputeTestbench imputeTS lubridate shiny stringr tibble transformr]; };
   cleancall = derive2 { name="cleancall"; version="0.1.3"; sha256="079l5knm3lrvnfbwcvg2g62sqbg7iira5x0gxd4fk1pysnm5hwmf"; depends=[]; };
   cleandata = derive2 { name="cleandata"; version="0.3.0"; sha256="1lm7k25j16p888xvd7rzzd3sb3namzjlpjn22xmmpzlzyl0h7dhk"; depends=[]; };
@@ -7799,8 +7947,9 @@ in with self; {
   clevr = derive2 { name="clevr"; version="0.1.2"; sha256="0r47mq0k55v3jvkzv1nlajqmcj03gq0igrxlcwhfrhbam9vwvapx"; depends=[BH Matrix Rcpp]; };
   clhs = derive2 { name="clhs"; version="0.9.0"; sha256="04hd0p51j15294fv1a9qx61p5yfmh8hcx784v3x1s0kx7km34saz"; depends=[cluster ggplot2 plyr raster Rcpp RcppArmadillo reshape2 sf sp]; };
   cli = derive2 { name="cli"; version="3.6.2"; sha256="0lg131q9l8wpnggc3jlrjl1ri3dw0d1pi4nr1zlnlaqvf7ilj1sc"; depends=[]; };
-  cliapp = derive2 { name="cliapp"; version="0.1.1"; sha256="0v62lbcsja0xmlpqcps370n5c7bk4j2n8pwh9xyif5s4wpf82qz1"; depends=[cli crayon fansi glue prettycode progress R6 selectr withr xml2]; };
+  cliapp = derive2 { name="cliapp"; version="0.1.2"; sha256="0yaahalirm89s5snhqpz11s36fp5ri5af9w6ljqlvfd94y6ckvfb"; depends=[cli crayon fansi glue prettycode progress R6 selectr withr xml2]; };
   clickR = derive2 { name="clickR"; version="0.9.39"; sha256="0kqv3kwj1dbq6d7010gdy003v11ww0bx2zr7yv93ag060viv956d"; depends=[beeswarm future future_apply stringdist]; };
+  clickableImageMap = derive2 { name="clickableImageMap"; version="1.0"; sha256="0p1wjar63y9qzss5i4pdfilkxaci0gi30vhw550db52pgcx21ywk"; depends=[ggplot2 ggplotify gridExtra gtable]; };
   clickb = derive2 { name="clickb"; version="0.1"; sha256="0cbhwvxb7xa34wf10saq65wiwlmw1cgnbiqgv6mfyd8dcdv25rwg"; depends=[DiscreteWeibull mclust MCMCpack]; };
   clickstream = derive2 { name="clickstream"; version="1.3.3"; sha256="1pbw74kd1ig6xc9llv8idizx0rya2454kpd9z62ybwvy68vyargs"; depends=[arules ClickClust data_table ggplot2 igraph linprog MASS plyr reshape2 Rsolnp]; };
   clidamonger = derive2 { name="clidamonger"; version="1.1.0"; sha256="1kpfldyadrk7ayg9kjbs1kswdvzsy3qb5qr5mqrprx7mm8plsz6s"; depends=[]; };
@@ -7814,14 +7963,13 @@ in with self; {
   climatol = derive2 { name="climatol"; version="4.1.0"; sha256="10znkynipb852y0j4kb16bhm4lcxdn5wy7vfx9ibcdwr06pv6kg7"; depends=[]; };
   climatrends = derive2 { name="climatrends"; version="0.5"; sha256="0b2afsff0yl2rcvff5mi6zz5xls9k9hzpay041mv11wc7ii8bw27"; depends=[nasapower]; };
   clime = derive2 { name="clime"; version="0.5.0"; sha256="15xc4cvllf6qpwa8a0lvsbivx4cricbgn0v3wc70xy69ngfa7zaj"; depends=[lpSolve]; };
-  climenv = derive2 { name="climenv"; version="1.0.0"; sha256="0w1pz725b6sw854pinypgi57vb2xjis3xx53b4mggwpdghck6mk7"; depends=[climaemet dismo dplyr elevatr exactextractr geodata glue plyr randomForest sf sp Ternary terra]; };
-  climetrics = derive2 { name="climetrics"; version="1.0-12"; sha256="0mvs1k0fld1rrqnvjjdnhz9m1dgp8j636ij8wwnb12pz8fp6gvg1"; depends=[raster rts terra xts yaImpute zoo]; };
+  climetrics = derive2 { name="climetrics"; version="1.0-15"; sha256="0xgc0lklx2ry60gp38nbl922xhdyfvia3mg977y4gdhcz1jljfhp"; depends=[raster rts terra xts yaImpute zoo]; };
   climextRemes = derive2 { name="climextRemes"; version="0.3.1"; sha256="0dvkwdb37aqvl9qanaw4b7in6b4vjih3xjy0j16qdr5w76jcn804"; depends=[boot extRemes]; };
   climwin = derive2 { name="climwin"; version="1.2.3"; sha256="1r2x5941k8l9z3517389y120sfhrskdpchc0pkibznza8aa95r85"; depends=[evd ggplot2 gridExtra lme4 lubridate Matrix MuMIn nlme numDeriv RcppRoll reshape]; };
   clinDR = derive2 { name="clinDR"; version="2.4.1"; sha256="06q8ajfa0gj8ddr6vb456vra4id7la50aidx3j2bnyaysbavd108"; depends=[doParallel DoseFinding dplyr foreach ggplot2 glue mvtnorm purrr rstan shiny tibble tidyr waiter]; };
-  clinDataReview = derive2 { name="clinDataReview"; version="1.5.0"; sha256="17ffdz410fniiybzw8rka0rgv8jqqsmsmp3b9yzlpsjcpx0z55s9"; depends=[bookdown clinUtils crosstalk data_table ggplot2 haven htmltools htmlwidgets jsonlite jsonvalidate knitr plotly plyr rmarkdown stringr xfun xml2 yaml]; };
+  clinDataReview = derive2 { name="clinDataReview"; version="1.6.0"; sha256="1xfv7r7rbr8fjkhrwxbpnvbf4khwcvd5pyam9fbbp6b65zr752c2"; depends=[base64enc bookdown clinUtils crosstalk data_table ggplot2 haven htmltools htmlwidgets jsonlite jsonvalidate knitr plotly plyr rmarkdown stringr xfun xml2 yaml]; };
   clinPK = derive2 { name="clinPK"; version="0.13.0"; sha256="1mfm4z0gbwmk2pvwmrk2z00zjl580mbf3z38zpsb3nx8xlxvsv1b"; depends=[]; };
-  clinUtils = derive2 { name="clinUtils"; version="0.1.4"; sha256="0iiw7786i9a878rx0ld9q7rk9szx46hdl9rg2p3032l8ksvryqm2"; depends=[crosstalk data_table DT haven htmlwidgets knitr plyr viridisLite]; };
+  clinUtils = derive2 { name="clinUtils"; version="0.2.0"; sha256="1i8bbfj9hbhjq7ppr3s3wxmnlis0j9xapdz88x44gcsmvxmr57dr"; depends=[crosstalk data_table DT haven htmlwidgets knitr plyr viridisLite]; };
   clinfun = derive2 { name="clinfun"; version="1.1.5"; sha256="0dsbgj29s7c9pv6p2j3nvksnckym0gyb8hwqvks53mvy2pg9j1ni"; depends=[mvtnorm]; };
   clinicalsignificance = derive2 { name="clinicalsignificance"; version="2.0.0"; sha256="132zwgzrc9gf10x2ldr7mjbj8k83h87y7py9b34yv9s7jmciy62x"; depends=[BayesFactor bayestestR cli dplyr ggplot2 insight lme4 purrr rlang tibble tidyr]; };
   clinmon = derive2 { name="clinmon"; version="0.6.0"; sha256="0cd5mrirfll0zbm9k8glwdqnh4qy4dlfnsypr3xhyf6ppgm35hlv"; depends=[signal]; };
@@ -7832,25 +7980,24 @@ in with self; {
   clipp = derive2 { name="clipp"; version="1.1.1"; sha256="1yddihmjg90j9id825lyanqpfm4i67mdgvdm53pz20p8fcq4mlzw"; depends=[]; };
   clipr = derive2 { name="clipr"; version="0.8.0"; sha256="1s9vvv3cxnz8w11gsi8z9ddv9jzib5qf5qqxnwqrrv7vj8cr7hij"; depends=[]; };
   clisymbols = derive2 { name="clisymbols"; version="1.2.0"; sha256="1q7gi2zmykhzas9v8fdnbpdq7pzdcpbhim1yxvd2062l777g4j86"; depends=[]; };
-  clmplus = derive2 { name="clmplus"; version="0.1.0"; sha256="0flnrfs5ymz0ki85zcwmdg605xyfpdc73c71xk35q0ak7l7mbz44"; depends=[ChainLadder forecast ggplot2 gridExtra reshape2 StMoMo]; };
+  clmplus = derive2 { name="clmplus"; version="1.0.0"; sha256="024w8a4qj9sr0vqpfv5sm5gmcy4crin90sfx0z1y13iiznk7kvch"; depends=[ChainLadder forecast ggplot2 gridExtra reshape2 StMoMo]; };
   clock = derive2 { name="clock"; version="0.7.0"; sha256="0x58xhngpd2rj7da9gr1x1zwz4rliza7aakfadkqsc4c7wxpmral"; depends=[cli cpp11 lifecycle rlang tzdb vctrs]; };
-  clockify = derive2 { name="clockify"; version="0.1.4"; sha256="1x0d2np48lgkvsh4bw6szkahnmmy5rcipxnf2wnyhczvgplncw2f"; depends=[anytime dplyr httr janitor logger lubridate purrr rlist stringi tibble tidyr]; };
+  clockify = derive2 { name="clockify"; version="0.1.6"; sha256="0yancrksqpsjgrf5rhq25yl4hnc4vjq57bv5kqqpd0h1fw3xxr37"; depends=[anytime dplyr httr janitor logger lubridate purrr rlist stringi tibble tidyr]; };
   clogitL1 = derive2 { name="clogitL1"; version="1.5"; sha256="0y6a6s5l98i0vrj66biwr17g6pzpmm5kfz4c57af0yhv7c4s4was"; depends=[Rcpp]; };
   clogitLasso = derive2 { name="clogitLasso"; version="1.1"; sha256="1j2kscd6d1jham6yqx5rp78x5vfj2faylkxkbcjaqbynlnqbbxd0"; depends=[foreach lassoshooting]; };
   clogitboost = derive2 { name="clogitboost"; version="1.1"; sha256="19wcb7229amlxn6xahxj6pf9rwfm02s7qkxz2yvyhnq95y0clxkm"; depends=[Rcpp]; };
   cloneRate = derive2 { name="cloneRate"; version="0.2.3"; sha256="0ii1jbwk60dvqqrxr4z06xnajyf73ywhb06i42szcs6mjm1jxwsa"; depends=[ape BH Rcpp RcppEigen RcppParallel Rmpfr rstan rstantools StanHeaders]; };
   clordr = derive2 { name="clordr"; version="1.7.0"; sha256="0lrws22aijsfdr595g2dfxsvnvbq6bs18glbdc07qkb27kcpvv1p"; depends=[doParallel foreach MASS pbivnorm rootSolve tmvmixnorm]; };
   cloudUtil = derive2 { name="cloudUtil"; version="0.1.12"; sha256="18g946j00anlk20d0fh01w0xyj1kwyy7jhlgz5a85wmp6s2gkz74"; depends=[]; };
-  cloudfs = derive2 { name="cloudfs"; version="0.1.2"; sha256="1zl7l7q35hzayf2lc0nh5zcb377q9cvhvxzz53ydv7xza6qy9g7s"; depends=[aws_s3 cli desc dplyr glue googledrive httr rlang]; };
+  cloudfs = derive2 { name="cloudfs"; version="0.1.3"; sha256="0qrx46q2vryfq88w6b8s1wzck4kx0hln41l98q65la1wnfn1ck0q"; depends=[aws_s3 cli desc dplyr glue googledrive httr rlang]; };
   cloudml = derive2 { name="cloudml"; version="0.6.1"; sha256="1j15q9yb2rc4fbjxfh21fiq6is8dnb8nfyi7g8iazgfwb3p9ahpx"; depends=[config jsonlite packrat processx rprojroot rstudioapi tfruns withr yaml]; };
   cloudos = derive2 { name="cloudos"; version="0.4.0"; sha256="0d6lg7y58w62ikwm83xvc8wky396y4xs5cx3cfn1wxnsnrs462d1"; depends=[dplyr ggplot2 httr jsonlite rappdirs tibble tidyr]; };
   cloudstoR = derive2 { name="cloudstoR"; version="0.2.0"; sha256="0x9pl9x5sjs5vwcz5i1r5ymyv3rlv9adjc5y9kvxljdxgvnv6i08"; depends=[cli curl getPass httr keyring rio XML]; };
-  clpm = derive2 { name="clpm"; version="1.0"; sha256="1dj9jx7r5d2azxkggkkqyhci7v80gl24qchw0x8xh84krl4cz2pz"; depends=[]; };
   clptheory = derive2 { name="clptheory"; version="0.1.0"; sha256="1ix3yh4w97llx8dw2pp1gpwgrfag2zr4wb2hp3z3j3ggs587yic4"; depends=[car dplyr magrittr popdemo]; };
   clr = derive2 { name="clr"; version="0.1.2"; sha256="088ks9lrhlyvg3yvlfmb0091yp6qp5bzg9h5r6ryv3bk6y56sajx"; depends=[dplyr lubridate magrittr]; };
   clttools = derive2 { name="clttools"; version="1.3"; sha256="0va9k1b4xsb2sgpxzvid6sa8m6b8i3r4kgghclmb78nnrs480cwi"; depends=[]; };
   clubSandwich = derive2 { name="clubSandwich"; version="0.5.10"; sha256="0qx4qq0k01q06hrs348n417pf338dyfbcy2vsi0y3ap6y1rb7w6s"; depends=[sandwich]; };
-  clubpro = derive2 { name="clubpro"; version="0.6.0"; sha256="0yxqs6idgzc00mnmr04z2h915qx3jmz1fp03lz0bzjawv6yda2v1"; depends=[lattice Rcpp RcppArmadillo RcppProgress]; };
+  clubpro = derive2 { name="clubpro"; version="0.6.2"; sha256="0p407zd2gr4yxxpa97c37yxrvdkid00qf1ird58yl44wrwszh90w"; depends=[lattice Rcpp RcppArmadillo RcppProgress]; };
   clue = derive2 { name="clue"; version="0.3-65"; sha256="1y1ycb5yw034ccxz15x41ah699hgjffsfvbn15fwdcdjbz9zvy5x"; depends=[cluster]; };
   clugenr = derive2 { name="clugenr"; version="1.0.3"; sha256="0wqhqy6ivhz0nhl0gr5gcxqdvi5ha4mhqgvgjmgaqibpi03dy3l8"; depends=[mathjaxr]; };
   clusEvol = derive2 { name="clusEvol"; version="1.0.0"; sha256="192zi43flpwfazgjd5ci0620hbad77z6s527vp6qwywcly3aqxmw"; depends=[cluster clusterSim dplyr fpc ggplot2 plotly viridis]; };
@@ -7859,7 +8006,6 @@ in with self; {
   clusrank = derive2 { name="clusrank"; version="1.0-4"; sha256="194h15ggymnzm70wm5w6xwjdjl0d7k2hnr5b93zhhncy3jrd590g"; depends=[MASS Rcpp]; };
   clust_bin_pair = derive2 { name="clust.bin.pair"; version="0.1.2"; sha256="11lqd3vmx4kg08n6iv9na8rra49dkldx4f8jyf43hppbjrbvfinm"; depends=[]; };
   clustAnalytics = derive2 { name="clustAnalytics"; version="0.5.5"; sha256="063n6s1q2kc7a42fajd2z0rd0v6dxs443hv1vlaq6xhli8l8cylk"; depends=[aricode boot dplyr fossil igraph mcclust mclust Rcpp Rdpack truncnorm]; };
-  clustDRM = derive2 { name="clustDRM"; version="0.1-0"; sha256="1c5z08a15scp3nrwyh0c03pdaawvm3ivbygqpbglwxim7zf73rd2"; depends=[caret doParallel DoseFinding DT foreach IsoGene MCPMod multcomp ORCME ORIClust pheatmap RColorBrewer readr shiny]; };
   clustEff = derive2 { name="clustEff"; version="0.3.1"; sha256="1zgj7nq0rba51xkm88vj9w70glk8z8g3y1awlfv38kf37s2yrs5c"; depends=[cluster fda ggplot2 ggpubr qrcm]; };
   clustMD = derive2 { name="clustMD"; version="1.2.1"; sha256="0w4s9dab2mm5x0xibyl6s101c64if945a2cmwin9psd95p76mcny"; depends=[ggplot2 MASS mclust msm mvtnorm reshape2 truncnorm viridis]; };
   clustMixType = derive2 { name="clustMixType"; version="0.3-14"; sha256="0i3wlnwa075rlwgv5b2kzgnswv6r7hha7biq84jqsa61hhysjxxw"; depends=[combinat dplyr RColorBrewer rlang tibble]; };
@@ -7870,7 +8016,7 @@ in with self; {
   clusterCrit = derive2 { name="clusterCrit"; version="1.3.0"; sha256="0raxlyvr3kr8c8bzjgs7hb9n76m314vzvfiz7c74v6cqpkmh6dkx"; depends=[]; };
   clusterGeneration = derive2 { name="clusterGeneration"; version="1.3.8"; sha256="0w1sywv9cgl78wrsamh1zrig67r3grnyl27f036ipd1ab1b2510g"; depends=[MASS]; };
   clusterHD = derive2 { name="clusterHD"; version="1.0.2"; sha256="16mk0bgvahxpjfawxkpjlfh9j1n5dldl6lhi7d1ssf5zaha35jkm"; depends=[Ckmeans_1d_dp cluster mclust Rcpp RcppArmadillo]; };
-  clusterMI = derive2 { name="clusterMI"; version="1.0.0"; sha256="0w0mja9dybcf04x1q6d6qpb1jli247pqamcl1fcwlgnkmhl542c2"; depends=[cat cluster ClusterR diceR e1071 FactoMineR fpc glmnet knockoff lattice mclust mice micemd mix NPBayesImputeCat Rcpp RcppArmadillo reshape2 Rfast usedist withr]; };
+  clusterMI = derive2 { name="clusterMI"; version="1.1.1"; sha256="0zrwan1myq2lw15ga0xfxkwszq09bp25qj8dn9z9zrmb9s3lfsj7"; depends=[cat cluster ClusterR diceR e1071 FactoMineR fpc glmnet knockoff lattice mclust mice micemd mix NPBayesImputeCat Rcpp RcppArmadillo reshape2 Rfast usedist withr]; };
   clusterRepro = derive2 { name="clusterRepro"; version="0.9"; sha256="0s7qqvaf5yxxwhw6qyzfmk65c49yz405gljarwav6aglkx9883cl"; depends=[]; };
   clusterSEs = derive2 { name="clusterSEs"; version="2.6.5"; sha256="0d8b79mg0wxfpmx3xq22p9apa2cs2ylbml7lf37w386s6kdgz7ns"; depends=[AER dfidx Formula lmtest mlogit plm sandwich]; };
   clusterSim = derive2 { name="clusterSim"; version="0.51-3"; sha256="0wlsr9700f3j9wcjzpiaqwj09i5v8n9bvwxvj4vmq1sqvz97v681"; depends=[ade4 cluster e1071 MASS R2HTML]; };
@@ -7893,7 +8039,7 @@ in with self; {
   cmaRs = derive2 { name="cmaRs"; version="0.1.3"; sha256="028z0x6a6aq3n0kplqg4pwqa7xilpi4s919xrqvd2lqnabhbjy8l"; depends=[AUC earth Matrix MPV Rmosek ROCR Ryacas0 stringr]; };
   cmaes = derive2 { name="cmaes"; version="1.0-12"; sha256="0wk8zkf585ipnxajmibip85cyz7wc5br0cph3cvnacbh7yf2zvay"; depends=[]; };
   cmaesr = derive2 { name="cmaesr"; version="1.0.3"; sha256="03zx2nrw24wmmjjpyh8pswasjjq0amf0g375fm2b3s111dx8fbj9"; depends=[BBmisc checkmate ggplot2 ParamHelpers smoof]; };
-  cmahalanobis = derive2 { name="cmahalanobis"; version="0.1.0"; sha256="0iry0jifvvlam7szhsmrsz2mqim0pmkfk50n97c1q9r84n6rfxlj"; depends=[]; };
+  cmahalanobis = derive2 { name="cmahalanobis"; version="0.3.0"; sha256="1ap8gs9dfkyk5nrq21r2a4h2y040i91n1i20sb4wwhx4n377kh0d"; depends=[ggplot2 reshape2]; };
   cmbClust = derive2 { name="cmbClust"; version="0.0.1"; sha256="01yjiscnligy6wpn752sqm53xhx0qxjbfd4dc8p7c31kbzfpif2x"; depends=[]; };
   cmcR = derive2 { name="cmcR"; version="0.1.11"; sha256="15d85mjy6y68jysji0910kg9vp69iz4pbb2l4vmn501xq4md3kx3"; depends=[dplyr ggnewscale ggplot2 ggplotify imager magrittr patchwork purrr quantreg rlang scales stringr tibble tidyr x3ptools zoo]; };
   cmce = derive2 { name="cmce"; version="0.1.0"; sha256="0d52ci906zbd4q43qylcyw93acxh7f20jn3r0k74ynyy47131dnd"; depends=[]; };
@@ -7906,30 +8052,31 @@ in with self; {
   cmmr = derive2 { name="cmmr"; version="0.1.2"; sha256="0nik1pzd1rckalvn7xh6s699kkdjnra3q3bn5x16c1lmpz5bp2s4"; depends=[httr progress RJSONIO]; };
   cmna = derive2 { name="cmna"; version="1.0.5"; sha256="161qc7q88ajm3l62bq03lpf35bdii1w1d111085zvs3hrf09iybw"; depends=[]; };
   cmocean = derive2 { name="cmocean"; version="0.3-1"; sha256="0y6yd3x2swx88r7kv6f9lrbf3zzawhf2x8izszgg4zb21pkal6k8"; depends=[]; };
-  cmprsk = derive2 { name="cmprsk"; version="2.2-11"; sha256="050f24l5ab1ds9824c7yjahimf6pg8ih2k83jzpzfb0n5k5jfh44"; depends=[survival]; };
+  cmprsk = derive2 { name="cmprsk"; version="2.2-12"; sha256="1p5c0i8prz88pgzb5dwpajlrxa0d72019sp9vysppb0fps9wngkp"; depends=[survival]; };
   cmprskQR = derive2 { name="cmprskQR"; version="0.9.2"; sha256="1b3di5fsgglriv00fxydpc4p8lh0xcgi6jc04awq2vmp6s8kvjmw"; depends=[quantreg survival]; };
   cmprskcoxmsm = derive2 { name="cmprskcoxmsm"; version="0.2.1"; sha256="1q17nzvqv0c8p2fs34fqszllp6g7kdbsmw4frlxpbjr3gwgd8rlk"; depends=[ggplot2 sandwich survival twang]; };
   cmpsR = derive2 { name="cmpsR"; version="0.1.2"; sha256="1qkdv86v0pk9knl97lfz28w8vgn71j7fv9aw8afq8qflfgvda284"; depends=[assertthat dplyr ggplot2 rlang]; };
   cmrutils = derive2 { name="cmrutils"; version="1.3.1"; sha256="0nrq84bkd23lvvg8ls2smkjcnfnydhbcni3n6s8w0579i9xga8dv"; depends=[chron]; };
   cms = derive2 { name="cms"; version="0.1.0"; sha256="0m3cxvw40nyr1jpdkhg5nbms16hkzj0mrx5nl39x1l42cx2hcjrl"; depends=[assertthat dplyr magrittr readr rlang rvest xml2]; };
-  cmsaf = derive2 { name="cmsaf"; version="3.5.0"; sha256="0a7ld5651ad3073hp2pyisbygxnd5lak11rinzgqrb5szlzih89q"; depends=[cmsafops cmsafvis colorspace colourpicker data_table FNN maps ncdf4 R_utils raster SearchTrees shiny shinyFiles shinyjs shinythemes shinyWidgets xml2]; };
-  cmsafops = derive2 { name="cmsafops"; version="1.3.0"; sha256="0lyjyd78d0qprx8vjxpny2jl14cgy2xy47ydsv5awgg7bb4w34pg"; depends=[assertthat fields FNN ncdf4 progress rainfarmr raster SearchTrees trend]; };
-  cmsafvis = derive2 { name="cmsafvis"; version="1.2.3"; sha256="0vqk5pbz9bhq7ddzrdibp03ddi5mqblqig014z2zsdnr4qswckc9"; depends=[assertthat cmsafops colorspace countrycode fields gridExtra mapproj maps ncdf4 png progress raster rasterVis RColorBrewer sf terra]; };
+  cmsaf = derive2 { name="cmsaf"; version="3.5.1"; sha256="1h4h30k72nclpi8siha050kp8i0va2r1kvwhh3nczb3lhx11zmwl"; depends=[cmsafops cmsafvis colorspace colourpicker data_table FNN maps ncdf4 R_utils raster SearchTrees shiny shinyFiles shinyjs shinythemes shinyWidgets xml2]; };
+  cmsafops = derive2 { name="cmsafops"; version="1.4.0"; sha256="118msgfysvbg08nvzrx5nmffvszn1cfx91lzd2hkd6la8sivk10h"; depends=[assertthat fields FNN ncdf4 progress rainfarmr raster SearchTrees trend]; };
+  cmsafvis = derive2 { name="cmsafvis"; version="1.2.7"; sha256="18mdzvm0sxsr9fqrpd65kld8mnpjlmi0z6mn6dfgdbbx0qs85rgl"; depends=[assertthat cmsafops colorspace countrycode fields gridExtra mapproj maps ncdf4 png progress raster rasterVis RColorBrewer sf terra]; };
   cmstatr = derive2 { name="cmstatr"; version="0.9.3"; sha256="1hi3zyw73jxrl2spfbbfk5xnyg31jqlslz1342p5s45k4ydvqikm"; depends=[dplyr generics ggplot2 kSamples MASS purrr rlang tibble]; };
+  cmstatrExt = derive2 { name="cmstatrExt"; version="0.4.0"; sha256="06py81q7viz2mh58qn16wvw9xw95vw06cg465qhdrh80j07mygzg"; depends=[dplyr generics Rcpp rlang testthat]; };
   cmtest = derive2 { name="cmtest"; version="0.1-2"; sha256="1qff6vx0c9sw4xm7fwhck165snrahlmi91na64f7axad14qmp34d"; depends=[Rdpack]; };
   cmvnorm = derive2 { name="cmvnorm"; version="1.0-7"; sha256="0zi4adh3gd8nbcnsn9fqiiqi5pc2jx782vw394gi988vyngqr7cq"; depends=[elliptic emulator]; };
-  cna = derive2 { name="cna"; version="3.5.6"; sha256="1368152mlj2kv3py45bggm5dpi6hhi9rx5db7rfim6wy88qgqxz4"; depends=[car Matrix matrixStats Rcpp]; };
+  cna = derive2 { name="cna"; version="3.6.0"; sha256="1g0h4c8xba7i0fv5azdhx0c403w9ccs3hyarsr2qxnw64f05yazh"; depends=[car Matrix matrixStats Rcpp]; };
   cnaOpt = derive2 { name="cnaOpt"; version="0.5.2"; sha256="1ciqh0d88270hizlsks7d05kggaszzl6add2n143z7cswkgfvkyr"; depends=[cna dplyr ggplot2 matrixStats Rcpp]; };
   cnbdistr = derive2 { name="cnbdistr"; version="1.0.1"; sha256="05qi41jimslbngjgbwzfda0q25hb28ax79v9yckvrbpgjc8dk990"; depends=[hypergeo]; };
   cncaGUI = derive2 { name="cncaGUI"; version="1.1"; sha256="0wmapwfag2grshmdrpmlinzikrsprcc8a1afq4dfkwr54rb3m6ky"; depends=[MASS plotrix rgl shapes tcltk2 tkrplot]; };
+  cnmap = derive2 { name="cnmap"; version="0.1.0"; sha256="17ksinswnj37sj1cdzpxg27rkn8qi4kli48hi1jk8r147d2rykdg"; depends=[sf terra]; };
   cnum = derive2 { name="cnum"; version="0.1.3"; sha256="0iphbx5ii4ij0bi9nqdz793i4gk2164jlgz5xn8yzsayjmizhdk2"; depends=[BH Rcpp stringr]; };
   coRanking = derive2 { name="coRanking"; version="0.2.4"; sha256="1c1b005q7dr4868wm6vcs3x0849vf8xj7aacxnyc9wzb4lgkd2lb"; depends=[]; };
   coala = derive2 { name="coala"; version="0.7.2"; sha256="1y736gagr1nkyxvsgkn411si6xv6w4sp8m7p20za07y4m71z900i"; depends=[assertthat digest R6 Rcpp RcppArmadillo rehh scrm]; };
   coalescentMCMC = derive2 { name="coalescentMCMC"; version="0.4-4"; sha256="09abhcp6y98378kf018inhxpkkirch5636nskywn0p6shp2q278x"; depends=[ape coda lattice Matrix phangorn]; };
-  coalitions = derive2 { name="coalitions"; version="0.6.24"; sha256="1ya9g2i1ds2w4hxbacmql67a3hh1grycj74g6b7xb05h478ym87n"; depends=[checkmate dplyr ggplot2 gtools jsonlite lubridate magrittr purrr RCurl rlang rvest stringr tibble tidyr xml2]; };
   coarseDataTools = derive2 { name="coarseDataTools"; version="0.6-6"; sha256="1g9hxyp2vdhq1zr18qlf2aqwp9d9hr07k6grmvblj2xrwlzfvc1p"; depends=[MCMCpack]; };
   coat = derive2 { name="coat"; version="0.2.0"; sha256="01sfssvb20rnjx6vpgyglj96wysr9v00n7fa8mg9l65cgv32dvgc"; depends=[ggparty ggplot2 ggtext gridExtra partykit]; };
-  cobalt = derive2 { name="cobalt"; version="4.5.4"; sha256="0nxxh31fznv4dn33psvshggyriq7l5i022706dz97vg12m8lblpx"; depends=[backports chk crayon ggplot2 gridExtra gtable rlang]; };
+  cobalt = derive2 { name="cobalt"; version="4.5.5"; sha256="1h1fyv2x4wjvwqjxh0hdvh1y355jbkq7n8n6bbnkskd2w5b1jv07"; depends=[backports chk crayon ggplot2 gridExtra gtable rlang]; };
   cobiclust = derive2 { name="cobiclust"; version="0.1.2"; sha256="04vwf3gawc02czqa3zk5lfklrqivsqlhbvfa2drsysbipy933zny"; depends=[assertthat cluster testthat]; };
   cobs = derive2 { name="cobs"; version="1.3-8"; sha256="08cqpiylbfy5j5xxajpngqaycmmciwhyf3sk3972x2l6rg3lj81c"; depends=[quantreg SparseM]; };
   coca = derive2 { name="coca"; version="1.1.0"; sha256="1lh7q3ip1jaz5zj5zcnd5whwpjw6zcrxs6j0j8mnmjsnw2kr4m5n"; depends=[caret cluster fpc glmnet Matrix nnet pheatmap RColorBrewer sparcl]; };
@@ -7954,9 +8101,10 @@ in with self; {
   codemeta = derive2 { name="codemeta"; version="0.1.1"; sha256="0pcip5ycgkva5pg20fcc3vsb09dv4j57yqvbf5x8bdsxa5vpg11a"; depends=[desc jsonlite]; };
   codemetar = derive2 { name="codemetar"; version="0.3.5"; sha256="0py4qn9148xlc1ldlifpm7vd7l9dih4f7yiadvmz57b3y2vr0b02"; depends=[cli codemeta commonmark crul desc gert gh jsonlite magrittr memoise pingr purrr remotes sessioninfo urltools xml2]; };
   codename = derive2 { name="codename"; version="0.5.0"; sha256="1466zby3yiggvqiwynyvirifi30y9lwms0a4mx73c8x9wfy36px0"; depends=[]; };
-  codep = derive2 { name="codep"; version="0.9-1"; sha256="17jziwm56icswa4ngp51ah8w1ma7ij3cksbdaipk0ikqvb5kinkb"; depends=[]; };
+  codep = derive2 { name="codep"; version="1.2-3"; sha256="05k7g9nji076zzzyzpp2klr89sllmwz043pcfyiddxifgr77glk3"; depends=[]; };
   coder = derive2 { name="coder"; version="0.13.10"; sha256="11vdw6aa977y05vlvqcm636j2c2kgii3w8dv4f2wk9c6l8hjhbg4"; depends=[data_table decoder generics tibble]; };
-  codetools = derive2 { name="codetools"; version="0.2-19"; sha256="1ardg28x2cvilkgsj6bdvvp5snsy3rj7jbz9bpcdlcvzr1kybdy4"; depends=[]; };
+  codetools = derive2 { name="codetools"; version="0.2-20"; sha256="0qx8zrlickl45wzzbydsbx5f1vmzhn71x7amzpfj71qpxisz7riv"; depends=[]; };
+  codewhere = derive2 { name="codewhere"; version="0.1.1"; sha256="19biqcmjjly29vh5zn0ak6gz40857xb799fz344xz1vxwv420mp2"; depends=[httr]; };
   codexcopd = derive2 { name="codexcopd"; version="0.1.0"; sha256="0pkl29fybflnj42xj8agyw6s3xif9vr5690vlkv5n3dxs8ji582h"; depends=[]; };
   codez = derive2 { name="codez"; version="1.0.0"; sha256="1a25k7y59fflzkk95s5b9hr0nw69lnw3vlwv7sy8zj0w0b1n08ic"; depends=[abind entropy fANCOVA fastDummies ggplot2 greybox imputeTS keras lubridate modeest moments narray philentropy purrr readr scales tensorflow tictoc]; };
   codified = derive2 { name="codified"; version="0.3.0"; sha256="0a5k0zqw1dxa3v1hzh3s43zlpyzpgxnbq2rhz8kq0g8lxqlki3pc"; depends=[checkmate dplyr kableExtra knitr rlang tibble tidyr]; };
@@ -7970,7 +8118,9 @@ in with self; {
   cofad = derive2 { name="cofad"; version="0.1.1"; sha256="0c27wfdk98mq0531avlgfxf2wmxcjyg39pgl9i37im7ri2s7kpnr"; depends=[]; };
   cofeatureR = derive2 { name="cofeatureR"; version="1.1.1"; sha256="1awfrlnbpw9ivfvaahznx6dx5jp8ln0154vh2pznp520q59h1mbs"; depends=[dplyr ggplot2 lazyeval tibble]; };
   coffee = derive2 { name="coffee"; version="0.3.0"; sha256="0vq9mwlc014vfbwyn4id99gx2dm3hyazy0qas0bv30x4fk2z2822"; depends=[data_table rintcal]; };
+  cofid = derive2 { name="cofid"; version="1.0.0"; sha256="0nmfs34339immz9vc79jvwvpx9fpp0qp4zvsm3i8c5v0la603xxz"; depends=[]; };
   coga = derive2 { name="coga"; version="1.2.2"; sha256="0h4qps0k973ia2aw19smlh84p34nnwdrfgk9nm4pgcs3qx3pn102"; depends=[cubature Rcpp RcppGSL]; };
+  coglasso = derive2 { name="coglasso"; version="1.0.2"; sha256="0z4qdncmznprv16973jlj29vxxlkaqy6ari65fswn6ics2sz3xrr"; depends=[Matrix Rcpp RcppEigen]; };
   cogmapr = derive2 { name="cogmapr"; version="0.9.3"; sha256="0aqlk6248m3pad0fwarvxvxfn4qfazhdbdplg8haw3aj165szq43"; depends=[dplyr ggplot2 graph magrittr Rgraphviz tidyr]; };
   cognitoR = derive2 { name="cognitoR"; version="1.0.5"; sha256="1ik2cdw1vigiplsrxy2mbv3l2w9wlzw6xkgrdm4l3pg9x6hhcx6s"; depends=[base64enc config dplyr httr jsonlite paws shiny shinyjs]; };
   cohortBuilder = derive2 { name="cohortBuilder"; version="0.2.0"; sha256="117gdqga61h24xa1h534837pz34ym5hnfz6731rrm3lnlzd171w6"; depends=[dplyr formatR ggplot2 glue jsonlite magrittr purrr R6 rlang tibble tidyr]; };
@@ -7984,7 +8134,7 @@ in with self; {
   cold = derive2 { name="cold"; version="2.0-3"; sha256="1y2l1v7s1v3m4nhlnl72n075h53vm93vxmfn4b6269n690wl9s6d"; depends=[cubature MASS]; };
   colf = derive2 { name="colf"; version="0.1.3"; sha256="1av82yrp6csw7700ymipd02j73cmzn0apv7ykachjw09nzk86kvj"; depends=[nlsr]; };
   collUtils = derive2 { name="collUtils"; version="1.0.5"; sha256="0gbk3lrb2lwq2ixrpcngng6qz6axjb4iyqy5606x1zmjm71c060p"; depends=[Rcpp rJava]; };
-  collapse = derive2 { name="collapse"; version="2.0.11"; sha256="0aaqzipgnln6mcwgahlnvg0dhq82xnzrfn95mv4ywgpczaicwg3s"; depends=[Rcpp]; };
+  collapse = derive2 { name="collapse"; version="2.0.14"; sha256="0njmis9a0jc8xmdxgxhpydsj2ygb89hg402gpqaw1h5bcwwpf0m8"; depends=[Rcpp]; };
   collapsibleTree = derive2 { name="collapsibleTree"; version="0.1.8"; sha256="1i5nmw5w7m8xdgxzim8z8n4w321f42isxbvvajl8ii59pg7drilq"; depends=[data_tree htmlwidgets]; };
   collateral = derive2 { name="collateral"; version="0.5.2"; sha256="1wnzgpayjsqnqry0cdmkijyjkkjhbc8hxwlkx7aj9qwaiz7wiibr"; depends=[crayon pillar purrr]; };
   collatz = derive2 { name="collatz"; version="1.0.0"; sha256="02dvivahpq3zyiyhx7w36bs3dw1p2r3g167sjf3k173q7rr77p0m"; depends=[gmp]; };
@@ -7992,9 +8142,10 @@ in with self; {
   collidr = derive2 { name="collidr"; version="0.1.3"; sha256="18ki8mwf5ihbgfbhdbbk9ljs44js3rqgl1g6g3ch6dynz61sr6hn"; depends=[dplyr jsonlite stringr]; };
   collin = derive2 { name="collin"; version="0.0.4"; sha256="0dh3k9rh1ykrd5nvp5nh4q7zvv835hx8ydpyml88d90ksy8za90p"; depends=[dlnm MASS mgcv nlme VGAM]; };
   collinear = derive2 { name="collinear"; version="1.1.1"; sha256="1vflihmpbqhfl9y8a2s5pnj4pjdj9m20mk80lm6lvff1pjwj2sbp"; depends=[dplyr]; };
-  collpcm = derive2 { name="collpcm"; version="1.3"; sha256="1viljrak7mk9qpqn5by31hgmpjw8xm3yibl82pn623icxsh5z4ws"; depends=[gtools latentnet network]; };
+  collpcm = derive2 { name="collpcm"; version="1.4"; sha256="170pi66zw3h0yz8d34bg9n4qxkdn941xxi818g0vnkilvqyhjnib"; depends=[gtools latentnet network]; };
   colmozzie = derive2 { name="colmozzie"; version="1.1.1"; sha256="0sn7dqg7rnddnmdb10c6scws6kgi1lz4lw8nc698x63z431ah1p8"; depends=[]; };
   coloc = derive2 { name="coloc"; version="5.2.3"; sha256="0l318ad8sn151fjibgfvy082ar29f8c6x3qlmmhal2fq2fbbv795"; depends=[data_table ggplot2 susieR viridis]; };
+  colocPropTest = derive2 { name="colocPropTest"; version="0.9.1"; sha256="1nz5x1j2xagy6sx85m6cvzhvzj59byircl35ammj860vkp050rm9"; depends=[car coloc data_table magrittr]; };
   colocalization = derive2 { name="colocalization"; version="1.0.2"; sha256="0jrrh9nxjl3261rp1fnjfnydpxwpi7v0d20kzd0xc6awf52gydbb"; depends=[ggplot2]; };
   colocalized = derive2 { name="colocalized"; version="0.2.0"; sha256="1q98wfqk0p9p92jgjf8liamz6grzwy6h57k7681fm07wfnyr268g"; depends=[doParallel foreach purrr]; };
   colocr = derive2 { name="colocr"; version="0.1.1"; sha256="0ijykza6fdmwbr5zbyfjf382anrxh0lb9hlallyawfi6z076fv7j"; depends=[imager magick magrittr scales shiny]; };
@@ -8008,7 +8159,7 @@ in with self; {
   colorednoise = derive2 { name="colorednoise"; version="1.1.2"; sha256="1wyqliwy64hxbhhij8m5f9s4ranjpqc3qzlkr9m37c9z70lgjril"; depends=[data_table purrr Rcpp RcppArmadillo]; };
   colorfindr = derive2 { name="colorfindr"; version="0.1.4"; sha256="175h476dzq1f2x25vdd268xj4ja4lv8fhfj9vld85waqi0sq515g"; depends=[bmp dplyr jpeg magrittr pixmap plotly plotwidgets png purrr rsvg stringr tibble tiff treemap]; };
   colorhcplot = derive2 { name="colorhcplot"; version="1.3.1"; sha256="009pyyb30kwshldd7v7zfy5rxys6i0dhlc5w8ail61acbg4rlrmz"; depends=[]; };
-  colorist = derive2 { name="colorist"; version="0.1.2"; sha256="0vakfv8rq0l55qzb8cj78zbyvcrh9j7ixjap95d144g3b617h6x3"; depends=[colorspace ggplot2 magrittr raster scales tidyr]; };
+  colorist = derive2 { name="colorist"; version="0.1.3"; sha256="0sv3gg1cqgvadb16f5v7fc002cq0sdk6g1409adymxlxrn2bn6rd"; depends=[colorspace ggplot2 magrittr raster rlang scales tidyr]; };
   colorizer = derive2 { name="colorizer"; version="0.1.0"; sha256="1c0rgjxzjwkaxdnkmcgn9f0mmcxna724cq60q79hzjindbl4r6bk"; depends=[dplyr httr magick magrittr purrr stringr tibble]; };
   colormap = derive2 { name="colormap"; version="0.1.4"; sha256="0032ji9n8pivl70jppq989fgg781wil8zag7pfl1hs9xrpin8asy"; depends=[ggplot2 stringr V8]; };
   colorpatch = derive2 { name="colorpatch"; version="0.1.2"; sha256="18p9hgccp37pbdf437xffkv6z500896v08fsw2jm8zcl9ladygaf"; depends=[colorspace ggplot2 gridExtra TSP]; };
@@ -8016,7 +8167,7 @@ in with self; {
   colorr = derive2 { name="colorr"; version="1.0.0"; sha256="1wwrgb9fc9gzxxwxrdrkwwrmhqqllv29wr4q8y1shj9d3nzcpwmh"; depends=[]; };
   colors3d = derive2 { name="colors3d"; version="1.0.1"; sha256="0d78y5v329fhaqhw0a0cgkpiajmqb91vl9809fiwnvl2b4x3j51r"; depends=[combinat FNN plyr scales]; };
   colorsGen = derive2 { name="colorsGen"; version="1.0.0"; sha256="0w4qkl4fw7pjfcd2z3nhpkxh8kv3bbq19bi2cg0ivfr83kxa44fj"; depends=[colorspace]; };
-  colorscience = derive2 { name="colorscience"; version="1.0.8"; sha256="11fy8545g93b8dn2imihsb031lnf5g5z17km8q07q4y6g96xdbdv"; depends=[Hmisc pracma sp]; };
+  colorscience = derive2 { name="colorscience"; version="1.0.9"; sha256="1m96av3dax3nh7ckd83hrzklxccq878gn808jmkwqzkvnx3y5i13"; depends=[Hmisc pracma sp]; };
   colorspace = derive2 { name="colorspace"; version="2.1-0"; sha256="0k31hazd2rq5lyg3y89y2v5jqadz2qlxd1bhvj89q4aldfxql1q4"; depends=[]; };
   colouR = derive2 { name="colouR"; version="0.1.1"; sha256="0dchwa6nqikdm7chzavimc5cayhrbrl0hzr8xg8y15nvb8b2vqj6"; depends=[dplyr ggplot2 httr jpeg pixmap png]; };
   colourlovers = derive2 { name="colourlovers"; version="0.3.6"; sha256="13fqn6hbqjk3d8krpqb3hmsq06qrbks8a9ia5441hd6m7m8wjjkc"; depends=[httr jsonlite png XML]; };
@@ -8042,11 +8193,12 @@ in with self; {
   cometr = derive2 { name="cometr"; version="0.4.0"; sha256="022fz7b94xl56ss1773n3g9zwfjm8mqfqds68ngvfq5498npd9z5"; depends=[callr digest httr jsonlite R_utils R6 yaml]; };
   comets = derive2 { name="comets"; version="0.0-1"; sha256="1qxy0cdp8cjkwlgii00lq5qzcimlrb8fqlg2xrw8rn6ik1nrmhs0"; depends=[Formula glmnet ranger]; };
   comf = derive2 { name="comf"; version="0.1.12"; sha256="1239lj29y2hiqgsf507i535d8adgsmzh2a1b1h896cxlbvpjn3ls"; depends=[jsonlite plyr reshape]; };
-  commafree = derive2 { name="commafree"; version="0.1.0"; sha256="0dn6ps6nvinwaxc8js5bq2kg78nzrf7ijbi77c7jan8z50d19m0p"; depends=[]; };
-  common = derive2 { name="common"; version="1.1.2"; sha256="1wg0flsjp4499hmrgfbp9a9j1bib8vi9k4vnjx3l43cw3rqzs70b"; depends=[]; };
+  commafree = derive2 { name="commafree"; version="0.2.0"; sha256="0slxxq4jw2abfvg725x1hd7jmrsdc6ckbgzjzin081ll29axrfxg"; depends=[]; };
+  common = derive2 { name="common"; version="1.1.3"; sha256="1zl34ikbasph6dchvl2dcbrs5wj6jxlyfg8gfnbq7dcmmbjg9l2h"; depends=[]; };
   commonmark = derive2 { name="commonmark"; version="1.9.1"; sha256="0fxm1nn4al0yn79iqix9cp5j5chr8jq56d29ayqrpag49hzs25wm"; depends=[]; };
   commonsMath = derive2 { name="commonsMath"; version="1.2.8"; sha256="0qbb7c5xqffq17i636qf9ppanxlmph9wym9bz6n4dhscfniw14q8"; depends=[]; };
   communication = derive2 { name="communication"; version="0.1"; sha256="08fkllwwcw2llpg5ivxhqghc88qfg1vdy0ciif3xazhhymb8wavb"; depends=[abind diagram GGally ggplot2 gtable gtools igraph magrittr plyr purrr RColorBrewer Rcpp RcppArmadillo reshape2 scales signal tuneR useful wrassp]; };
+  comorbidPGS = derive2 { name="comorbidPGS"; version="0.3.4"; sha256="1dy8yfyy88vw2x8mk6n3nx2dbkf17m4ibvbkxhrywralvll0wspa"; depends=[ggplot2 MASS nnet]; };
   comorbidity = derive2 { name="comorbidity"; version="1.0.7"; sha256="189z23a66mz10rzqzgljkygyrgishm4mzzrqhqs1ba335dzvzm3d"; depends=[checkmate data_table stringi]; };
   comorosmaps = derive2 { name="comorosmaps"; version="1.0.0"; sha256="1rjsgvln5wa7bbh4iqpfvmdqvmx4cgl8mxxkar76rkam9r54hwhv"; depends=[dplyr magrittr sf]; };
   compHclust = derive2 { name="compHclust"; version="1.0-3"; sha256="0agay7rn5mrw07imz4l547b7m9pfcg3rhz4krfxrvg1q2z2kryvj"; depends=[]; };
@@ -8065,6 +8217,7 @@ in with self; {
   compindPCA = derive2 { name="compindPCA"; version="0.1.0"; sha256="1v7fppbb1pswd1d1bw0szmmjc51smnmal5psd98ms5cfm7yv597g"; depends=[factoextra]; };
   compindexR = derive2 { name="compindexR"; version="0.1.3"; sha256="1glc1y6wa1g7zxj1xwj0fgcfsy118xhd637gi8zsz7l9vxj614cp"; depends=[car dplyr NlcOptim pracma]; };
   completejourney = derive2 { name="completejourney"; version="1.1.0"; sha256="0ysbpmd7rglz3diy2cpcgvmmcnysradb4ddiwix7kbhzrhvhrdrs"; depends=[curl dplyr progress stringr tibble zeallot]; };
+  complex = derive2 { name="complex"; version="1.0.0"; sha256="1f1xyvapswfsd7gbw8279m1pdjrry68hkci69d9h3gwav2v3fi4l"; depends=[greybox legion mvtnorm nloptr pracma Rcpp RcppArmadillo]; };
   complexNet = derive2 { name="complexNet"; version="0.2.0"; sha256="199zxqsbasd1j598srpb10y8mjw2l4plra1121i9sdsf40bvd7aw"; depends=[]; };
   complexity = derive2 { name="complexity"; version="1.1.2"; sha256="0y1rlz456mny4d0kr8rx26qg5frr3zxsbzm1cc76h475vad4ns28"; depends=[combinat shiny]; };
   complexlm = derive2 { name="complexlm"; version="1.1.2"; sha256="0ykshrqia09pklkwhvjc8mfn005yq5wxfpjsbimg8gp38xch3wvn"; depends=[MASS mathjaxr pracma]; };
@@ -8074,10 +8227,9 @@ in with self; {
   compound_Cox = derive2 { name="compound.Cox"; version="3.30"; sha256="0yl2c51kl6q2j50av1acyaqcj37y4qhk9mjp7niqzq9s9zj2hnp0"; depends=[MASS numDeriv survival]; };
   comprehenr = derive2 { name="comprehenr"; version="0.6.10"; sha256="1wlc06swm45nxg9hgik3wj832sr074i3p0j5kxm0i2r74klfy22w"; depends=[]; };
   compute_es = derive2 { name="compute.es"; version="0.2-5"; sha256="00133s3l3g70xrfnxgxhvbjr8izvaj9h0c73iaiyjmlgj84x69m8"; depends=[]; };
-  comradesOO = derive2 { name="comradesOO"; version="0.1.1"; sha256="0x0y3c4ihfss6rxdd9fws506vip9rr11485icxq41rp4x8zm2rk9"; depends=[doParallel foreach GenomicRanges ggplot2 ggrepel heatmap3 igraph IRanges MASS mixtools R4RNA RColorBrewer reshape2 RRNA S4Vectors seqinr tidyverse TopDom]; };
   comsimitv = derive2 { name="comsimitv"; version="0.1.5"; sha256="0g1b14bx0dgy7y24gxlj0r2sgiild14cvr1zmf37df7g3bswn112"; depends=[MASS vegan]; };
-  comstab = derive2 { name="comstab"; version="0.0.2"; sha256="14xa50badffn3jljvc1rdmnl3w167hn7hd5f8a5zl5lwlb9miy8w"; depends=[Ternary]; };
-  comtradr = derive2 { name="comtradr"; version="0.4.0.0"; sha256="0hlvfz3xg05hfhpm1i4wzprqhyric57n2rmc25mr9q047r6bl3mh"; depends=[askpass cachem cli fs httr2 lifecycle lubridate memoise poorman purrr rappdirs readr rlang stringr]; };
+  comstab = derive2 { name="comstab"; version="0.0.3"; sha256="0rzgsc4jd65m7wrpf68p83cvngqk2z3dn7src8m47ampmwk131iq"; depends=[Ternary]; };
+  comtradr = derive2 { name="comtradr"; version="1.0.1"; sha256="0mdckqnsx8xgidbw1sa39y9l6kbsvv41vbw65jfk0irlxqs11v9q"; depends=[askpass cachem cli fs httr2 lifecycle lubridate memoise poorman purrr rappdirs readr rlang stringr]; };
   con2aqi = derive2 { name="con2aqi"; version="0.1.0"; sha256="1gdd1y6xg26fz199hvryzsnp16qbsz13chqqxyxnkgrai1l72mhf"; depends=[]; };
   con2lki = derive2 { name="con2lki"; version="0.1.0"; sha256="005bk3y7il94h7zlkdjlibm1zm9yplbbzlybdjxmckh67sr6d03x"; depends=[]; };
   conStruct = derive2 { name="conStruct"; version="1.0.6"; sha256="00mmlmqk3wixjycmn2wybq4vkq91jmvhjab6pyvfzk1nh3nq428i"; depends=[BH caroline doParallel foreach gtools Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
@@ -8090,8 +8242,6 @@ in with self; {
   concom = derive2 { name="concom"; version="1.0.0"; sha256="1rqb04kv4ygx1rpnj4dqa3jnx3iy9a3c9d8x3bci969zd9lk7kzb"; depends=[BH english Rcpp rgl Rvcg]; };
   concorR = derive2 { name="concorR"; version="0.2.1"; sha256="15pi24xka83p3hm33rfs9vnfkzywmvpz3hpncgqmc9ifwag0zgra"; depends=[igraph sna]; };
   concordance = derive2 { name="concordance"; version="2.0.0"; sha256="1xlm0c91bsbij8dr23fh781c6bg8l74kma6x7nnapkpm7jim279x"; depends=[dplyr purrr rlang stringr tibble tidyr]; };
-  concordancer = derive2 { name="concordancer"; version="1.0.2"; sha256="1hkm0ybzaiyd2qsic11gjkq2iw7j9rw85rfgrss0qmnak506kim7"; depends=[Rcpp]; };
-  concrete = derive2 { name="concrete"; version="1.0.5"; sha256="05hl3ikdh8776hgw0wqz6acir8brkszgg01169q2v1dhgcsnfyjb"; depends=[data_table MASS nleqslv origami Rcpp RcppArmadillo SuperLearner survival zoo]; };
   concstats = derive2 { name="concstats"; version="0.1.6"; sha256="1gcv6lsrfdb12alaksmw40fv8p909hifjwrrgy9r12nb4ci3fg0x"; depends=[]; };
   cond = derive2 { name="cond"; version="1.2-3.1"; sha256="1j0gf28mg2j6ahs83nk662bix1lb2c9184vn8sblw433zxqaa2ny"; depends=[statmod survival]; };
   condGEE = derive2 { name="condGEE"; version="0.2.0"; sha256="09vbwpn4i37cn8gs9pr62mvzzbqrfm756370zas97kjbnmx8glbj"; depends=[numDeriv rootSolve]; };
@@ -8108,8 +8258,8 @@ in with self; {
   condusco = derive2 { name="condusco"; version="0.1.0"; sha256="0zydinzlksynkz4r712rzv9qqdx8dkdz3h1ygi9cfmd6hya3580s"; depends=[assertthat bigrquery DBI jsonlite]; };
   condvis = derive2 { name="condvis"; version="0.5-1"; sha256="1ngxqfa0mr86cv610da4ljypxpdvx0n5pfgj3zfksnwxlwc0dvbj"; depends=[MASS]; };
   condvis2 = derive2 { name="condvis2"; version="0.1.2"; sha256="0zxr0m50gyg5b1ghdx5ysq8f389gg00zx719zqb47ign83xlbn63"; depends=[cluster colorspace DendSer ggplot2 gower plyr RColorBrewer scales shiny]; };
-  coneproj = derive2 { name="coneproj"; version="1.17"; sha256="1lxxap6zd6h35w0kkxdnnbi8a4j5c78wcfslm5823dx9apg28q0s"; depends=[Rcpp RcppArmadillo]; };
-  conf = derive2 { name="conf"; version="1.8.3"; sha256="1gl9y4ci3x86xmggwr2jc9skzcqrk5nky3b0dvflw1lhscgr9998"; depends=[fitdistrplus pracma rootSolve statmod]; };
+  coneproj = derive2 { name="coneproj"; version="1.19"; sha256="0whnjdc24214kja1qbbyy95rmssabkq2x85p81nslcclr2krnxi2"; depends=[Rcpp RcppArmadillo]; };
+  conf = derive2 { name="conf"; version="1.9.1"; sha256="12zc5psfaldgyqmlfa8bf04ibqyxcszmry9fw1ab8brn7fh6vg7i"; depends=[fitdistrplus pracma rootSolve statmod]; };
   conf_design = derive2 { name="conf.design"; version="2.0.0"; sha256="06vdxljkjq1x56xkg041l271an1xv9wq79swxvzzk64dqqnmay51"; depends=[]; };
   confSAM = derive2 { name="confSAM"; version="0.2"; sha256="1l67ndya07hh0yqfbabfhsvp3hryklx0022grpr0cb7ff88d1zam"; depends=[]; };
   confcons = derive2 { name="confcons"; version="0.3.1"; sha256="1a9v2dzldnbmhn5fz30d8y8nhbgczgp20rag6ck6h4xjgwqm4yv1"; depends=[]; };
@@ -8117,6 +8267,7 @@ in with self; {
   config = derive2 { name="config"; version="0.3.2"; sha256="0r8hjg7jrhr9lncb82xmq2slygv3slacd2w8ds6shnvdp3122p3v"; depends=[yaml]; };
   configr = derive2 { name="configr"; version="0.3.5"; sha256="1qlfza9fwqdhw37gxhgxgp4x2dg1qlvdw0rf9fn6a8hgjaj9z8a3"; depends=[glue ini jsonlite RcppTOML stringr yaml]; };
   configural = derive2 { name="configural"; version="0.1.5"; sha256="1javknjl9ycb6rz77rhzya8yspm9m6mdjwl1waq1akgpiizk1pnl"; depends=[]; };
+  confintROB = derive2 { name="confintROB"; version="1.0-1"; sha256="13fbq4zxs90sy49c55b9i2i8yq3g3p4p45cx30rs7yrb3610zkfb"; depends=[foreach lme4 MASS mvtnorm tidyr]; };
   confinterpret = derive2 { name="confinterpret"; version="1.0.0"; sha256="0qldaqpx7kpk71zfwv465jrscwzc9w3xfv52i4h01k9aw3q6m8ja"; depends=[]; };
   confintr = derive2 { name="confintr"; version="1.0.2"; sha256="0gi9cnk2cd67vmywrkb19g6f9gr8k999kg0k03khad7lgqp4l43s"; depends=[boot]; };
   conflicted = derive2 { name="conflicted"; version="1.2.0"; sha256="121h4b4rms23szcfs1nrbgdk812d61vhrmwn9lgpsgnsaaxqd6y9"; depends=[cli memoise rlang]; };
@@ -8133,19 +8284,19 @@ in with self; {
   conjurer = derive2 { name="conjurer"; version="1.7.1"; sha256="09ypjh8dlf8if9a2fb1sgzp5ds68vr5krk7fk7rhwi16lpxykwh9"; depends=[httr jsonlite]; };
   conleyreg = derive2 { name="conleyreg"; version="0.1.7"; sha256="1mvbzqd83vd54ig4kbi1v3h4v0j6pyj8a5ja1f3w2n7k8aszy748"; depends=[data_table doParallel fixest foreach lmtest lwgeom Matrix Rcpp RcppArmadillo Rdpack s2 sf]; };
   conmet = derive2 { name="conmet"; version="0.1.0"; sha256="0iwr8mmh9lk0psqxkgnd7ldhg57ivbkv0b3a18gli06983mhzjdc"; depends=[dplyr DT foreign Hmisc lavaan openxlsx purrr semTools shiny shinydashboard shinyWidgets stringr summarytools waiter]; };
-  connectapi = derive2 { name="connectapi"; version="0.1.3.1"; sha256="00fxy94a0nyw608b1cklh603zql027wqaarxmxwy5f1l7arnwd4s"; depends=[bit64 config dplyr fs glue httr jsonlite lifecycle magrittr progress purrr R6 rlang tibble uuid vctrs yaml]; };
+  connectapi = derive2 { name="connectapi"; version="0.2.0"; sha256="0k3z30kgz8yl07kxfbqy1w8bdr0viyglibxv6y36f46q6nf1mf6a"; depends=[bit64 fs glue httr jsonlite lifecycle magrittr purrr R6 rlang tibble uuid vctrs]; };
   connections = derive2 { name="connections"; version="0.2.0"; sha256="1hqsp5y32n0v5rij86clk3wmghc32zh9h3s6pjn0yjjsg3v1bvf6"; depends=[DBI dbplyr dplyr pins rscontract uuid]; };
   connectoModa = derive2 { name="connectoModa"; version="1.0.0"; sha256="0gnmrx6li9yx231nn73m921sp8wwxrd9pbmni37gsqjj7lcyglp8"; depends=[httr jsonlite readr]; };
   connectwidgets = derive2 { name="connectwidgets"; version="0.2.1"; sha256="0lgr36699hnjwkjx56akwwnzkl5qm587yhqamxr6a53nh1j3h11y"; depends=[bslib crosstalk digest dplyr glue htmltools htmlwidgets httr jsonlite magrittr purrr R6 reactable reactR rlang sass tibble]; };
   conogive = derive2 { name="conogive"; version="1.0.0"; sha256="0a8v7v0fds0psfnbx9x45way8z1f1xn2ncgbrn5rb6fjq0a1zs4x"; depends=[assertthat checkmate mvtnorm psych]; };
   conos = derive2 { name="conos"; version="1.5.2"; sha256="0p66gb308w2zfsppm0k1vsvgr33kzzhql0vh7l39vlsgayi00skk"; depends=[abind ComplexHeatmap cowplot dendextend dplyr ggplot2 ggrepel gridExtra igraph irlba leidenAlg magrittr Matrix N2R R6 Rcpp RcppArmadillo RcppEigen RcppProgress reshape2 rlang Rtsne sccore]; };
-  conover_test = derive2 { name="conover.test"; version="1.1.5"; sha256="0f1p10klidk1xic1wd48j9rjh2fb3z6pfjx4y021lglx1w3av68k"; depends=[]; };
+  conover_test = derive2 { name="conover.test"; version="1.1.6"; sha256="0x0wzxdg4pkkr5yqrapvq04i1gc7qa6c7f44skcmq3qpfziq3fpj"; depends=[]; };
   conquer = derive2 { name="conquer"; version="1.3.3"; sha256="1fnyjym21i9hw2d1c9da0wvjzbi9abn46n0lg6if5w2asxg1bim2"; depends=[Matrix matrixStats Rcpp RcppArmadillo]; };
   conquestr = derive2 { name="conquestr"; version="1.3.0"; sha256="0f7mrx9ss9ja0maci2ydffz90i7v6p9x8wsgbz78dlw8zv2vc630"; depends=[dplyr ggplot2 ggrepel kableExtra magrittr Rcpp rlang stringr tidyr tidyselect zlib]; };
   conrad = derive2 { name="conrad"; version="1.0.0"; sha256="0n0snn7ppmr1l5y0978sl6bj614p0b5vvh4hw55pjbj9qn1fshaj"; depends=[httr2 jsonlite magrittr]; };
   conserveR = derive2 { name="conserveR"; version="1.0.4"; sha256="05b1pqgbd9sh4lyg9zqjfg4019dqp8xj3k1w31qqdld8m3g5lrd6"; depends=[cowplot GGally ggplot2 ggrepel magrittr network rlang scales sna]; };
   consolechoice = derive2 { name="consolechoice"; version="1.1.1"; sha256="06xlwrjc9bj8r2ii160mclg56mw9fw2wzms3q68rcb8ril0hqvd3"; depends=[]; };
-  consort = derive2 { name="consort"; version="1.2.1"; sha256="03xkypy4r84mdif6m331c27haxnyi1s87vvj2f83xxw0m0s5im5j"; depends=[]; };
+  consort = derive2 { name="consort"; version="1.2.2"; sha256="12gr1diyy2azy1fbh8z129lkm0ahwvm98j5hqxv93yp089a02l8c"; depends=[]; };
   consortr = derive2 { name="consortr"; version="0.9.1"; sha256="1c71wvr7sckrv4k65l71l160z6d9amzyydbi6mf2b79zh9zv8g1g"; depends=[data_table DiagrammeR dplyr magrittr purrr rlang shiny shinydashboard tibble]; };
   constants = derive2 { name="constants"; version="1.0.1"; sha256="11nliijwphqphik95b3xpawpjg7w4s089wdhjci5bw4va4bgd1xm"; depends=[]; };
   constellation = derive2 { name="constellation"; version="0.2.0"; sha256="1d49rnyf2z3bvx158nsmgmb0x7xcgxl9f8y98pwg5wlqck7af99q"; depends=[data_table]; };
@@ -8167,7 +8318,7 @@ in with self; {
   controlTest = derive2 { name="controlTest"; version="1.1.0"; sha256="19r8nvi35ldzgayifskjj706fv76hv6sj68yvggybp27rgyqbjfl"; depends=[survival]; };
   controlfunctionIV = derive2 { name="controlfunctionIV"; version="0.1.1"; sha256="0g0nakc1mss7837xhs8bymy4cncljjkj7k0n4dvw44gxbc2l8j15"; depends=[AER dr Formula orthoDr]; };
   contsurvplot = derive2 { name="contsurvplot"; version="0.2.1"; sha256="0z0s1ym9np9l8pmgbja46w25zr415laa1w68mjz04hq9wrzjjaca"; depends=[dplyr foreach ggplot2 riskRegression rlang]; };
-  convdistr = derive2 { name="convdistr"; version="1.6.1"; sha256="1jkd5d257qaby99n7f2vyiqchg2zfnnm01bw9qp2cg92bi7ac22d"; depends=[dplyr extraDistr ggplot2 MASS pryr RColorBrewer SHELF shiny tidyr]; };
+  convdistr = derive2 { name="convdistr"; version="1.6.2"; sha256="1mi5sa9lyn9pdmdlrah8fvxdzm1gqblh3r50y1g40902cryf5yds"; depends=[dplyr extraDistr ggplot2 MASS pryr RColorBrewer SHELF shiny tidyr]; };
   convergEU = derive2 { name="convergEU"; version="0.7.3.2"; sha256="01ajzjj0ahlbv0q708hj7cw98b0dahnhkxrd79nrs1wb06rr2j9x"; depends=[broom caTools dplyr eurostat ggplot2 ggpubr leaflet purrr rlang rmarkdown stringr tibble tidyr tidyselect]; };
   convertbonds = derive2 { name="convertbonds"; version="0.1.0"; sha256="0xb6b5xqcgapmvrq3ivcknsbg9m4zkwff7i7l7j78nqafdm45jni"; depends=[]; };
   convertid = derive2 { name="convertid"; version="0.1.8"; sha256="0mprymgh5wbh9x6kn98q4r6c6rp2l108ddmp2g7lh9m635ys6v8m"; depends=[AnnotationDbi assertthat BiocFileCache biomaRt httr org_Hs_eg_db org_Mm_eg_db plyr rappdirs stringr xml2]; };
@@ -8180,15 +8331,14 @@ in with self; {
   cookiemonster = derive2 { name="cookiemonster"; version="0.0.3"; sha256="1fs8a7i2h1v4xvcjnccnvxapiprffyz49pgrdjp67k14r6nk2fha"; depends=[cli openssl rappdirs stringi tibble urltools vctrs]; };
   cookies = derive2 { name="cookies"; version="0.2.3"; sha256="1dpil57grnqn34b682fakzsrh2xghc566nhqdgnrjd7ly59v0z3x"; depends=[cli clock glue htmltools httpuv jsonlite purrr rlang shiny vctrs]; };
   coop = derive2 { name="coop"; version="0.6-3"; sha256="0ww99ssgawsgn6rqy838wbx6iirzdrzyxirvz084ih8j50blx420"; depends=[]; };
-  coopProductGame = derive2 { name="coopProductGame"; version="2.0"; sha256="1348pgqfvvysdixsjibgkvwjsmqasnlmwf9kyr39lw8jb81z25h0"; depends=[dplyr GameTheory ggplot2 gtools kappalab lpSolveAPI]; };
   copBasic = derive2 { name="copBasic"; version="2.2.4"; sha256="0wydq03c9pvbvmcrxqw2n86ny655lhkd40ag60k6d3hjvmmv5vn6"; depends=[lmomco randtoolbox]; };
   copCAR = derive2 { name="copCAR"; version="2.0-4"; sha256="1wvp7khp0f0x6skiq1d6npndb09ak6d6ijmx907gfrd6b0ydaklb"; depends=[mcmcse numDeriv Rcpp RcppArmadillo spam]; };
   copcor = derive2 { name="copcor"; version="2023.8-27"; sha256="0fs6zaxjv7ww2f35hwbdgb810cb4mcqxg260fxk3pfcfq3rwdw9a"; depends=[kyotil]; };
   cope = derive2 { name="cope"; version="0.2.3"; sha256="1r02nb6wy25ixhdcbqqz167s7ny3hydpxfxry5ar4136qvcamgyy"; depends=[abind fields maps MASS Matrix mvtnorm nlme]; };
-  copent = derive2 { name="copent"; version="0.4"; sha256="1v9kv6aw9q43y7mzsmklq0m76sykfs162hwy204k2xcpmnazgdkm"; depends=[]; };
-  cophescan = derive2 { name="cophescan"; version="1.4.0"; sha256="0kanrdmkk91hs09acgz7kxw6szqfnr8mxi8n01rpnz2c1fwmvgpy"; depends=[coloc data_table dplyr ggplot2 ggrepel magrittr matrixStats pheatmap Rcpp RcppArmadillo viridis]; };
+  copent = derive2 { name="copent"; version="0.5"; sha256="0ymjpwqbdfbyrvszi5avpbx086i4lwrxgxysr0rlnh2wfm849vsj"; depends=[]; };
+  cophescan = derive2 { name="cophescan"; version="1.4.1"; sha256="0lnc20f1xaijibza4px9m47fy70jz9y9y5m7wk5h50kb4dh6ywxh"; depends=[coloc data_table dplyr ggplot2 ggrepel magrittr matrixStats pheatmap Rcpp RcppArmadillo viridis]; };
   coppeCosenzaR = derive2 { name="coppeCosenzaR"; version="0.1.3"; sha256="1chwsfyaf5rmlsypr43n7px8b2220dfa5mzcriq1swylgbx4181l"; depends=[]; };
-  copre = derive2 { name="copre"; version="0.2.0"; sha256="0xb1xa134r145qaycl0ldldx521gvjlwd9c64nnwmllh01iv7ihb"; depends=[abind BH dirichletprocess pracma Rcpp RcppArmadillo]; };
+  copre = derive2 { name="copre"; version="0.2.1"; sha256="1lgps3wmjp3ja13xd33q41xb3kc56vmyidjpsmm5c2y263pm1m8i"; depends=[abind BH dirichletprocess pracma Rcpp RcppArmadillo]; };
   cops = derive2 { name="cops"; version="1.3-1"; sha256="17lq7ag0bwg3i7jvzca4qyzg8ixhdikrcgpgskkm26i83886zid2"; depends=[cmaes cordillera crs dfoptim GenSA MASS minqa NlcOptim nloptr pso rgenoud Rsolnp scatterplot3d smacof subplex]; };
   copula = derive2 { name="copula"; version="1.1-3"; sha256="19kp6q052jp0wsn2zh6wz6m9hk04nhwlc2pqwrma9ynny6s6q6cv"; depends=[ADGofTest colorspace gsl lattice Matrix mvtnorm numDeriv pcaPP pspline stabledist]; };
   copulaData = derive2 { name="copulaData"; version="0.0-2"; sha256="052vr5961pqqfk75yabnna345qgrhrjwzavx5244c6mark4xsyxb"; depends=[]; };
@@ -8230,7 +8380,7 @@ in with self; {
   corrcoverage = derive2 { name="corrcoverage"; version="1.2.1"; sha256="0r5n2g341jlinwrxxwxkav9i6qsf097pmfi07aiq663b13r3864x"; depends=[data_table magrittr matrixStats Rcpp RcppArmadillo]; };
   correctR = derive2 { name="correctR"; version="0.2.1"; sha256="1qncaynl0fs06w97wbj4704whbcjs5vjqqhb1mkj95ngwi0rp37l"; depends=[]; };
   correctedAUC = derive2 { name="correctedAUC"; version="0.0.3"; sha256="0c2kq7asq5mp48p8niqb84wnw4q2q2985wxbrywrhsszm9p3xspb"; depends=[ICC mnormt]; };
-  correlation = derive2 { name="correlation"; version="0.8.4"; sha256="07fz7wmvrcd6b023jhj3bsrvg4w6i7f1v99jslm0gj84vzmnqzbs"; depends=[bayestestR datawizard insight parameters]; };
+  correlation = derive2 { name="correlation"; version="0.8.5"; sha256="0b5vq7lvvwcv0sw54548ncn85nq6i78dpm44dfvrl23vg65pff0y"; depends=[bayestestR datawizard insight parameters]; };
   correlationfunnel = derive2 { name="correlationfunnel"; version="0.2.0"; sha256="0xil7cihqk7gzpy0q97sg5sw5z0gy7zqvx0f0bizcfks9gwp43cv"; depends=[cli crayon dplyr forcats ggplot2 ggrepel magrittr plotly purrr recipes rlang rstudioapi stringr tibble tidyr]; };
   correlbinom = derive2 { name="correlbinom"; version="0.0.1"; sha256="1ix3ccxzr7vqblbda5awsva3h95b69v7kc6adz622bbi8r36xxcq"; depends=[Rmpfr]; };
   correspondenceTables = derive2 { name="correspondenceTables"; version="0.7.4"; sha256="1078da9m8j8ph314f6bdvdcd70rfmjdk7cscchfpq5ggyr2hkrpk"; depends=[data_table]; };
@@ -8246,6 +8396,7 @@ in with self; {
   corto = derive2 { name="corto"; version="1.2.4"; sha256="1rlr96kdn59vbcsjwys3brlaa8fm0jkg331dnr6fcq1z798snkb3"; depends=[dplyr gplots knitr pbapply plotrix rmarkdown]; };
   corx = derive2 { name="corx"; version="1.0.7.2"; sha256="0dyrxw90xrs1sqzniqxh8rnafcng38qrm5izwlgpfafihipx9ss8"; depends=[clipr crayon ggcorrplot ggplot2 ggpubr glue moments ppcor tidyselect]; };
   cosa = derive2 { name="cosa"; version="2.1.0"; sha256="15ygpaqd48xqx0h08v0nf73yzif63r2nzcznlmk0ck2ydx4n85fp"; depends=[msm nloptr]; };
+  cosimmr = derive2 { name="cosimmr"; version="1.0.12"; sha256="1gvkzp0l8zkana78llp4r734cs12dibysh5hylafmi81byibyxyp"; depends=[bayesplot checkmate ggnewscale ggplot2 R2jags Rcpp RcppArmadillo RcppDist reshape2 viridis]; };
   cosinor = derive2 { name="cosinor"; version="1.2.3"; sha256="0nyvzmqk0rhx10fki29hcrz014bv3r40adqd5d6rbcz66kc4sjy3"; depends=[ggplot2 shiny]; };
   cosinor2 = derive2 { name="cosinor2"; version="0.2.1"; sha256="1pp0z86fflqkkllfrzx3vj98kzxjwnawr4a2d8z5q6zhq6v5qrvf"; depends=[cosinor cowplot ggplot2 Hmisc magrittr matrixStats purrr scales stringr]; };
   cosmicsig = derive2 { name="cosmicsig"; version="1.1.1"; sha256="1xwbfinh73rfdww58zpqmk17ixpzq5rr6cdf4zlnj25xwvj5458l"; depends=[]; };
@@ -8263,7 +8414,7 @@ in with self; {
   countcolors = derive2 { name="countcolors"; version="0.9.1"; sha256="1gnwmw3inh8asbk6qba34vzx1k2cnh4m9d1346gxhzhlxvl6xiza"; depends=[colordistance jpeg png]; };
   countdata = derive2 { name="countdata"; version="1.3"; sha256="1vscm3xq8cds0zd4k8qc9di4yjslfpxl5y0glmp67ldk7mvqz0q6"; depends=[]; };
   countdown = derive2 { name="countdown"; version="0.4.0"; sha256="05mnxq17z867jzi53bcvljcmpswsq9xcknddzs6k57chjl4klrwj"; depends=[htmltools prismatic whisker]; };
-  counterfactuals = derive2 { name="counterfactuals"; version="0.1.2"; sha256="1gv6kgd932k74lwrv38zdpyf56j6mlr0kh5jky66zklb00zklkl3"; depends=[bbotk checkmate data_table iml miesmuschel paradox R6 StatMatch]; };
+  counterfactuals = derive2 { name="counterfactuals"; version="0.1.4"; sha256="1sv7gswhwnhci07lvgvcnfvb7zav76r3576ymp704l6llhs44ybm"; depends=[bbotk checkmate data_table iml miesmuschel paradox R6 StatMatch]; };
   countfitteR = derive2 { name="countfitteR"; version="1.4"; sha256="1aq7v2fy24pf3r6fkmcwvs18r2xc2l1bqablp53xfc7b6kxq3vqn"; depends=[ggplot2 MASS pscl shiny]; };
   countgmifs = derive2 { name="countgmifs"; version="0.0.2"; sha256="0k6fjg0v9n7vi89wd025gdjh1q3l6nnc5yn8i2bfw0i5vmv8rhi3"; depends=[MASS]; };
   countland = derive2 { name="countland"; version="0.1.2"; sha256="1nlnri7l8v2h35r7ps8byv8mmwnir1pyimaa937wr73f1mk9m0l9"; depends=[ggplot2 Matrix rlang]; };
@@ -8272,6 +8423,7 @@ in with self; {
   countrycode = derive2 { name="countrycode"; version="1.6.0"; sha256="1dix4prcavwbi7l7ifw1frvpmqqdcrvk4c45xl7ckg6068713nzr"; depends=[]; };
   countsplit = derive2 { name="countsplit"; version="4.0.0"; sha256="0b406mpf5gqspjj828qbqx6mc5ab97mh5w4pip8hb8j74q8szpcc"; depends=[Matrix Rcpp]; };
   countts = derive2 { name="countts"; version="0.1.0"; sha256="11pyj5s2vyw209inapiw9pvk0s1aq3r2c1xq0dnc83sz82bxx6c4"; depends=[fastDummies ggplot2 MASS matrixStats]; };
+  coursekata = derive2 { name="coursekata"; version="0.17.0"; sha256="0g0hz4zbqmz7rxhvnd67hx0mfqx997k27p1382j0qwqa26bv943h"; depends=[cli dslabs ggformula ggplot2 glue lsr Metrics mosaic pak palmerpenguins purrr rlang supernova vctrs viridisLite]; };
   covBM = derive2 { name="covBM"; version="0.1.0"; sha256="0ky1lhr8m4hy2ss1nr2xymf6cmj1rr8px8zsxna6bsisf5bq4j4w"; depends=[nlme]; };
   covKCD = derive2 { name="covKCD"; version="0.1"; sha256="0rbrhdrrb47gkm8nk8mmlgrr1fsk53fycl9zspgr9085xax2bf2r"; depends=[]; };
   covRobust = derive2 { name="covRobust"; version="1.1-3"; sha256="0zcfala4l0j4w0sx5hlw40vxiypans3d7pgkxy25nj0d2m1jkvba"; depends=[]; };
@@ -8301,10 +8453,10 @@ in with self; {
   covidmx = derive2 { name="covidmx"; version="0.7.7"; sha256="1m73pxpn080w7sby88spz2pfjw1v479m9fa74ag25mkdymfbh02d"; depends=[cli DBI dplyr duckdb fs pins RCurl readr readxl rlang stringr tibble tidyr]; };
   covidnor = derive2 { name="covidnor"; version="2023.05.18"; sha256="1aidi1bwsp1a8iym5b6chmv95cxrafhjgzn1zaajbijlgrjdqixc"; depends=[data_table]; };
   covidprobability = derive2 { name="covidprobability"; version="0.1.0"; sha256="00kiwxhkbq70650azgd6ylh7w7w4h5l8l7rmr2bijlm05xn3g154"; depends=[]; };
-  covidsymptom = derive2 { name="covidsymptom"; version="0.9.3"; sha256="0svfc911n6cl056vn7l9khg4c6rc54qhxsgjg3jpxqvikyqmmrx7"; depends=[]; };
+  covidsymptom = derive2 { name="covidsymptom"; version="1.0.0"; sha256="03whr9qnsflpa3l9lb5f5w7c26yva74jbkykjb7xj5pnhazpm985"; depends=[stringi usethis]; };
   covr = derive2 { name="covr"; version="3.6.4"; sha256="0al6n4gnnvgxk968skqnajpqpqyl6kpam3fmn782kihhcl1h8qib"; depends=[crayon digest httr jsonlite rex withr yaml]; };
   covsep = derive2 { name="covsep"; version="1.1.0"; sha256="19dvwhl85yx9ddwxvnq5sdd534s6llcw61gckrav48hq49x1bqld"; depends=[mvtnorm]; };
-  covsim = derive2 { name="covsim"; version="1.0.0"; sha256="0kzlqdhx67hfm0f53yb438qfi4vlcf2j3cpyj2r49zgpwwgfk21p"; depends=[gsl lavaan MASS Matrix nleqslv PearsonDS Rcpp rvinecopulib tmvtnorm]; };
+  covsim = derive2 { name="covsim"; version="1.1.0"; sha256="0pk6jfh7bcpqm63zdlrkz1cqdgwwkkdjlflw8yb8fq6p25bmppih"; depends=[lavaan MASS Matrix nleqslv PearsonDS rvinecopulib tmvtnorm]; };
   cowbell = derive2 { name="cowbell"; version="0.1.0"; sha256="1zz0g30zvqfk5lh09y90iq3s7x2wwbs852i3d56mfp926gxdxc2y"; depends=[ggplot2 misc3d rgl]; };
   cowplot = derive2 { name="cowplot"; version="1.1.3"; sha256="0wxjynpbamyimpms7psbac7xgwswzlidczpc037q20y5yld9fml7"; depends=[ggplot2 gtable rlang scales]; };
   cowsay = derive2 { name="cowsay"; version="0.9.0"; sha256="18jr8v0c4vvwvixklcl3kggwzhq1xnpi3brdjiby48zh873b2chd"; depends=[crayon fortunes rmsfact]; };
@@ -8320,15 +8472,16 @@ in with self; {
   cp4p = derive2 { name="cp4p"; version="0.3.6"; sha256="1zddkkj0ynvfck3kw1682wffbxw0d3dc4flmxxp03lclq70fc8bd"; depends=[limma MESS multtest qvalue]; };
   cpa = derive2 { name="cpa"; version="1.0.1"; sha256="10g2pvjz396m3mis1bp8bggx9gvbhdd5yqf3sgwkimn9wgccymbq"; depends=[]; };
   cpd = derive2 { name="cpd"; version="0.3.2"; sha256="049df4ip3x7v9zviw7b4m1hp2w4gpfi6cq066mqal41frgvfmwdb"; depends=[dgof hypergeo Rdpack]; };
-  cpfa = derive2 { name="cpfa"; version="1.1-2"; sha256="04b2v4ilhpqpkl61hmqvfwbsjd44nb5mgyw2a0av0i5sh4m7c2ln"; depends=[doParallel e1071 foreach glmnet multiway nnet randomForest rda]; };
+  cpfa = derive2 { name="cpfa"; version="1.1-4"; sha256="075bbp56sx6n1bzdign9iyk2q9j35b6mrqpjwk9aiw27k4n6wmxj"; depends=[doParallel e1071 foreach glmnet multiway nnet randomForest rda xgboost]; };
   cpi = derive2 { name="cpi"; version="0.1.4"; sha256="1gz92jcl8wg2vp8qhnkn37l2xs8wjdbjvnga22v9n943k9zsk2kh"; depends=[foreach knockoff lgr mlr3]; };
   cplm = derive2 { name="cplm"; version="0.7-12"; sha256="1m0b0jksl1y90q4sdhjspby4hafxxdgra8sbicd5rsrwq4hzwyxc"; depends=[biglm coda ggplot2 Matrix minqa nlme reshape2 statmod tweedie]; };
   cplots = derive2 { name="cplots"; version="0.5-0"; sha256="12nac8hywhsfh2fcv30w36la46hvvp5mwc2rrq34smraig0dq8f3"; depends=[circular]; };
   cpm = derive2 { name="cpm"; version="2.3"; sha256="07zbvc5jkwv76lkzby6r073fxjsqgnrdl2w9lcph577knnip89jx"; depends=[]; };
   cpmBigData = derive2 { name="cpmBigData"; version="0.0.1"; sha256="0fdch6hj6l620gj0pk8ffrl9j2rmd9jlin7yx7myfy46qij1cxpi"; depends=[benchmarkme doParallel foreach Hmisc iterators rms SparseM]; };
-  cpmr = derive2 { name="cpmr"; version="0.0.8"; sha256="0s4c9466i14vv37vvmj1f6gf2n6i9ij8303xfvhc82dszmab219g"; depends=[Rfast]; };
-  cpop = derive2 { name="cpop"; version="1.0.6"; sha256="0f7rxyh8m6w45cja02mip91p72bjlygrc0rdggbls50l63w1qczj"; depends=[crops ggplot2 mathjaxr pacman pracma Rcpp Rdpack]; };
+  cpmr = derive2 { name="cpmr"; version="0.0.9"; sha256="0hy6h32ga7gadc01z24a8ccld0bszzjw939gbhbqbmm672k728mc"; depends=[Rfast]; };
+  cpop = derive2 { name="cpop"; version="1.0.7"; sha256="082ny87ph3wz5kbp2i4yzf9g6r3bihbgfynv060fy6sv0xb9hxc1"; depends=[crops ggplot2 mathjaxr pacman pracma Rcpp Rdpack]; };
   cpp11 = derive2 { name="cpp11"; version="0.4.7"; sha256="0i234s1g1vc6m2sqxia5r1gaca05znjv4bff5dj74fach9k147c0"; depends=[]; };
+  cpp11armadillo = derive2 { name="cpp11armadillo"; version="0.2.5"; sha256="1bn72wwlj6k9lg36ah4r69jgpqsvlcmkzn6czwz10dgi341ca5sx"; depends=[]; };
   cppRouting = derive2 { name="cppRouting"; version="3.1"; sha256="1mhp6k2kwlhyrswlxi9f0f6ndvm5968ljp3k97c2m2sfbxaablxy"; depends=[data_table Rcpp RcppParallel RcppProgress]; };
   cppcheckR = derive2 { name="cppcheckR"; version="1.0.0"; sha256="1f3b8gadpiyxwxp34pd3i7s715dkm23427fp86vvnqvy9schg3ga"; depends=[htmlwidgets rmarkdown rstudioapi shiny V8 xml2]; };
   cppdoubles = derive2 { name="cppdoubles"; version="0.2.0"; sha256="1m5d4lwji6yrbzb68m61zkrkchj9mv7m0sdqg2vnxzr5799whckh"; depends=[cpp11]; };
@@ -8345,9 +8498,9 @@ in with self; {
   cquad = derive2 { name="cquad"; version="2.3"; sha256="0m8hakw0k58v3gb24vvcs7q7l98m2nmyqv712wdn9g16krq49hnr"; depends=[Formula MASS plm]; };
   cragg = derive2 { name="cragg"; version="0.0.1"; sha256="1iznv72g47r2yd26p1i06a72p8n0albgb4j4l3lndi39wrkrpbwd"; depends=[expm]; };
   cramer = derive2 { name="cramer"; version="0.9-4"; sha256="0i5qg912rp8m1br00kd3iidy1v1yrmzj21xmy2wbjyyqrzakykc3"; depends=[boot Rcpp]; };
-  crandep = derive2 { name="crandep"; version="0.3.6"; sha256="1wdyfyz2lk3icygqp0mm3cy3bni48hqazymnvhgl9pzy29sp6i2w"; depends=[dplyr gsl igraph pracma Rcpp RcppArmadillo rvest stringr xml2]; };
+  crandep = derive2 { name="crandep"; version="0.3.9"; sha256="0g807ph2fnpg6ll4li0pgw7gd61wzyibjnl74dzl1jaq7n1ymh2h"; depends=[dplyr gsl igraph pracma Rcpp RcppArmadillo rvest stringr xml2]; };
   crank = derive2 { name="crank"; version="1.1-2"; sha256="0wwbdh5sfi2bg13nrlkxxij4k053kjx9afm4gjpgs6iir6pml711"; depends=[]; };
-  cranlike = derive2 { name="cranlike"; version="1.0.2"; sha256="06xgxgwpmfrwmcd0gnr9prjjbhd1y0ky1zb8yh09v0bvsf6ixnyx"; depends=[DBI debugme desc RSQLite]; };
+  cranlike = derive2 { name="cranlike"; version="1.0.3"; sha256="022kya5p0f92szpw751czjka7bzq297af4i2l33892yfxkapfqfg"; depends=[DBI debugme desc RSQLite]; };
   cranlogs = derive2 { name="cranlogs"; version="2.1.1"; sha256="02d9qrqyjj33naq3g7ykaw9dzzl1dq8qf13id6h7kfx1fvx9b7zd"; depends=[httr jsonlite]; };
   cranly = derive2 { name="cranly"; version="0.6.0"; sha256="1i8bk6wvar21y3bsr6by7dway8khsxwbyyw554pjwdpmxs3nz030"; depends=[colorspace countrycode ggplot2 igraph stringr tm visNetwork wordcloud]; };
   crassmat = derive2 { name="crassmat"; version="0.0.6"; sha256="1c4ii34vh8y5b3z2maby4cafb3n2m9bnxv3762cy0z12mbg7zk1s"; depends=[svMisc]; };
@@ -8363,9 +8516,9 @@ in with self; {
   credsubs = derive2 { name="credsubs"; version="1.1.1"; sha256="19l3vsjxd9lvaf67l61x9l0j4y124p93dfqzw7rl1ya5sxbdzs7a"; depends=[]; };
   credule = derive2 { name="credule"; version="0.1.4"; sha256="0kwjjkavch21grx845kdcansaj0g407v7z3wmhy4whra9ic12y76"; depends=[]; };
   cregg = derive2 { name="cregg"; version="0.4.0"; sha256="1a34jhdk4r9ywsrc5dc8wq5am3059cli60f6n2n8j04ls13fvlkd"; depends=[ggplot2 ggstance lmtest sandwich scales survey]; };
-  crew = derive2 { name="crew"; version="0.9.0"; sha256="17g1sdjlkj7ck5y5k7la2skxkvjd474rkqzq01fgqhiixkygignk"; depends=[cli data_table getip later mirai nanonext processx promises ps R6 rlang tibble tidyselect]; };
+  crew = derive2 { name="crew"; version="0.9.3"; sha256="0ap2yf86ng8wp8n2cm0br4q81pknswsynb4a1qprsshwr8l5xvl1"; depends=[cli data_table getip later mirai nanonext processx promises ps R6 rlang tibble tidyselect]; };
   crew_aws_batch = derive2 { name="crew.aws.batch"; version="0.0.5"; sha256="1gssnvmszq89cfprwrgiq1gajf9q2s8kdj03gbza194p4646lj6p"; depends=[cli crew paws_common paws_compute paws_management R6 rlang tibble]; };
-  crew_cluster = derive2 { name="crew.cluster"; version="0.3.0"; sha256="06rlk464c059rdjzqh0bn49ndjw14gkkpn8qd47k6r87dx3yl1b8"; depends=[crew lifecycle ps R6 rlang vctrs xml2]; };
+  crew_cluster = derive2 { name="crew.cluster"; version="0.3.1"; sha256="1qn3pxyhfyb47cgyzmw2l07dhpvbf0yicxxbxh82scmlj5pqbkhf"; depends=[crew lifecycle ps R6 rlang vctrs xml2 yaml]; };
   crfsuite = derive2 { name="crfsuite"; version="0.4.2"; sha256="15ldbx8g9xa6sql6is2gcqryzqb9dad1hiarvrgmizdp5fd3gxnm"; depends=[data_table Rcpp]; };
   cricketdata = derive2 { name="cricketdata"; version="0.2.3"; sha256="07sj53c2ryvcichsa9b0ywmrslisbr4hkrnrf1crw7x1ym55hsan"; depends=[cli dplyr janitor lubridate readr rvest stringr tibble tidyr xml2]; };
   cricketr = derive2 { name="cricketr"; version="0.0.26"; sha256="1y1zf9f59v95knggq5nna5rp7fqpv1swwvkajwqbpicc12g2azq4"; depends=[dplyr forecast ggplot2 httr lubridate plotrix scatterplot3d XML]; };
@@ -8377,6 +8530,7 @@ in with self; {
   criticality = derive2 { name="criticality"; version="0.9.3"; sha256="0cy08v2lqld9y9cc140hxk734r9pb66cx2c04303c9rl81gy1cmk"; depends=[bnlearn caret dplyr evd fitdistrplus ggplot2 keras magrittr reticulate scales]; };
   criticalpath = derive2 { name="criticalpath"; version="0.2.1"; sha256="1b8iwvdlq5czd7p7yy6il3irrcarc23cy26vprycnyjll38lcfjz"; depends=[dplyr igraph magrittr R6 stringr tibble]; };
   critpath = derive2 { name="critpath"; version="0.2.2"; sha256="0y9vbsdppi8xir1rvk8j7zvj69gjmc2whpqfcklws898rcnwck1f"; depends=[DiagrammeR dplyr ggplot2 reshape2 stringr]; };
+  crm12Comb = derive2 { name="crm12Comb"; version="0.1.6"; sha256="18pmsrgpc9yy3zwhdfcks5863r2cz756vrblls9s1j7pvsl4jszm"; depends=[dplyr ggforce ggplot2]; };
   crmPack = derive2 { name="crmPack"; version="1.0.5"; sha256="086r12vfp1am7aavmq5yvbgg4w7vjdabjvzlnd5la92y01dcs32h"; depends=[GenSA ggplot2 gridExtra MASS mvtnorm rjags]; };
   crmReg = derive2 { name="crmReg"; version="1.0.2"; sha256="0y6xb0sxhsqcmcwbkwvk70snwqhxgzl513ld9dp53cm88qdwaj1r"; depends=[FNN ggplot2 gplots pcaPP plyr robustbase rrcov]; };
   crmn = derive2 { name="crmn"; version="0.0.21"; sha256="0wp99fsw7y859gp1x22f77r9rv1m0xspbzhzgshzf7hi86xb57k5"; depends=[Biobase pcaMethods]; };
@@ -8393,21 +8547,22 @@ in with self; {
   cropgrowdays = derive2 { name="cropgrowdays"; version="0.2.1"; sha256="08k525882lm1x2igz1pk8g3kjiikcw68yqpic240l3lzq0x2wi3y"; depends=[dplyr httr lubridate purrr purrrlyr tibble]; };
   crops = derive2 { name="crops"; version="1.0.3"; sha256="0c1xvfnr4dh720x0i3f6nvmzgv8zbs7cvp8vfa341yb92pz4d6s0"; depends=[cowplot ggplot2 magrittr memoise Rdpack reshape sets tibble tidyverse]; };
   crossdes = derive2 { name="crossdes"; version="1.1-2"; sha256="0nc9jd83mm03qpd3r3hfmrf615yvvmib9kk9dh1hgz12pxhffray"; depends=[AlgDesign gtools]; };
-  crosshap = derive2 { name="crosshap"; version="1.2.2"; sha256="18r4m5fplpiabgwir78qfacj0781ykqxbyfkf5zxnzs7yr0d1gl2"; depends=[cli clustree data_table dbscan dplyr ggdist ggplot2 ggpp gridExtra gtable magrittr patchwork rlang scales tibble tidyr]; };
+  crosshap = derive2 { name="crosshap"; version="1.4.0"; sha256="1pr9kjad54427y8wljaghqbgin353llyfdwq278c8agqdzziwia0"; depends=[cli clustree data_table dbscan dplyr ggdist ggplot2 ggpp gridExtra gtable magrittr patchwork rlang scales tibble tidyr]; };
+  crosslag = derive2 { name="crosslag"; version="0.1.0"; sha256="0kvmpl7cqgp8jlvpz42caw1mqcfkvzvpy7rkgh70isx88k4n9f6g"; depends=[gamm4 ggplot2 ggpubr lavaan mgcv rms]; };
   crossmap = derive2 { name="crossmap"; version="0.4.0"; sha256="079ibxhm6877nfdqf88fhg9fjdn3vbs44jprrbhxmmbbd30nma4v"; depends=[backports cli dplyr generics lifecycle purrr rlang vctrs]; };
   crossnma = derive2 { name="crossnma"; version="1.2.0"; sha256="0ma07lvf56z1ya587lb4zv8rbhzi8crnsgvh3xsz80livx9cdvp5"; depends=[coda dplyr ggplot2 magrittr meta netmeta plyr rjags rlang tidyr]; };
   crossrun = derive2 { name="crossrun"; version="0.1.1"; sha256="1v2khjb77g63ls6s15z9hy81z4hyf89g58jxjl94jrkznq1c4fa4"; depends=[Rmpfr]; };
   crosstable = derive2 { name="crosstable"; version="0.7.0"; sha256="1xghynjnrk89952sa9i6rxjqnnw2w2bdf722n91k1jgcg15gkvy9"; depends=[checkmate cli dplyr flextable forcats glue lifecycle officer purrr rlang stringr tibble tidyr]; };
   crosstalk = derive2 { name="crosstalk"; version="1.2.1"; sha256="1w8lc3hcd1nlw541880vs3agk2i6bilyapnq9lcs3mfn2s2g0338"; depends=[htmltools jsonlite lazyeval R6]; };
-  crosstalkr = derive2 { name="crosstalkr"; version="1.0.4"; sha256="0vb0p455s2gp0nm1hxm9iikxr4mal52mbkq6nv6zxr78wwsxcwa1"; depends=[doParallel dplyr ensembldb foreach ggplot2 igraph iterators magrittr Matrix Rcpp readr rlang STRINGdb stringr tibble tidyr withr]; };
-  crossurr = derive2 { name="crossurr"; version="1.0.6"; sha256="16fq6hdfc6nsdijj63fji3bn3hp40m350qjxhf8a3xs5j86vf43j"; depends=[dplyr gbm glmnet glue pbapply purrr ranger RCAL rlang SIS SuperLearner tibble tidyr]; };
+  crosstalkr = derive2 { name="crosstalkr"; version="1.0.5"; sha256="1p4grkh6kripkpirs2hrqwv4bz61bcr6pqzj88j75311kjiphnl0"; depends=[doParallel dplyr ensembldb foreach ggplot2 igraph iterators magrittr Matrix Rcpp readr rlang STRINGdb stringr tibble tidyr withr]; };
+  crossurr = derive2 { name="crossurr"; version="1.1.1"; sha256="1g4nr9x93ykq6qy5236vydkcbjyfzdz81kwgjv7mph3m0b862rdw"; depends=[dplyr gbm glmnet glue pbapply purrr ranger RCAL rlang SIS SuperLearner tibble tidyr]; };
   crossval = derive2 { name="crossval"; version="1.0.5"; sha256="0rvfglnd75aa2ib8v6ibv8ywyh8v4m98ybhgc9h7a2qhk825a2w9"; depends=[]; };
   crossvalidationCP = derive2 { name="crossvalidationCP"; version="1.1"; sha256="0cmny8sjz4ampvi1jc2h4dh3x930vnwv8png6xygs2vb6p19f2ph"; depends=[changepoint fpopw wbs]; };
   crosswalkr = derive2 { name="crosswalkr"; version="0.2.6"; sha256="1rxd6vy7vdrawmg7zkydl1f2wwklnzgh9dsnxbg966xrr3l9x1n9"; depends=[haven labelled readr readxl tibble]; };
   crossword_r = derive2 { name="crossword.r"; version="0.3.6"; sha256="1s31613s4qxxspka9bhgq3rq8xraf48mwfv6phvz6v06gijh64lr"; depends=[dplyr jsonlite magrittr R6 r6extended stringr]; };
   crov = derive2 { name="crov"; version="0.3.0"; sha256="1vnhnw6rw8qyhahy6d67cq5m9sxr6yic21qi16vic1q5115fwx01"; depends=[gtools VGAM]; };
   crplyr = derive2 { name="crplyr"; version="0.4.0"; sha256="0l0vp2h4j2i5jb9wgdaqaixi9xvhb5n35zn8mdc7hyw13hjr8wa5"; depends=[crunch dplyr ggplot2 httptest lazyeval lifecycle purrr rlang scales stringr tibble tidyselect viridisLite]; };
-  crqa = derive2 { name="crqa"; version="2.0.5"; sha256="1nnnzixkv7hxdrhwdxa2ffp139cdzm4njdprh68fl6gv92ssqr6h"; depends=[gplots Matrix plot3D pracma rdist tseriesChaos]; };
+  crqa = derive2 { name="crqa"; version="2.0.6"; sha256="117sxxil4yzqss7b8d5r7y2grpc6nzcli9mrjaarsk10k95c4bwp"; depends=[dplyr ggplot2 gplots Matrix pracma rdist tseriesChaos]; };
   crrSC = derive2 { name="crrSC"; version="1.1.2"; sha256="0n63k1v35wvbf565msr3fczi9hjd20bqh8b4iyvzp310d8z8b3g8"; depends=[survival]; };
   crrcbcv = derive2 { name="crrcbcv"; version="1.0"; sha256="1rbmhnr7n99i0277d47i62ww6896z1g20v6vr558zmx3gvrs0b6k"; depends=[abind crrSC pracma survival]; };
   crrstep = derive2 { name="crrstep"; version="2023.1.1"; sha256="0x4fvsvcxb529c7vp5fh6vp7l0sj1wszpqzbrk1da7kmf5454ki6"; depends=[cmprsk]; };
@@ -8418,16 +8573,17 @@ in with self; {
   crso = derive2 { name="crso"; version="0.1.1"; sha256="1r10vz8z5y52a5v5phw22fhqwv9p7g66xfsx0906bcx74dn3f2b3"; depends=[foreach]; };
   crsra = derive2 { name="crsra"; version="0.2.3"; sha256="1rkqm88zmvp9gw442cby6qpvfw4pfw65wz0gyl2h37w87c3wwvrw"; depends=[digest dplyr knitr purrr rcorpora readr tibble tidytext]; };
   crsuggest = derive2 { name="crsuggest"; version="0.4"; sha256="044llamxlrva5va39yzpvsmdjqn56ij7jjll73mmjg7ka0rqc5dj"; depends=[dplyr mapview purrr sf units]; };
-  crul = derive2 { name="crul"; version="1.4.0"; sha256="18n9ga0ah628k83qin75ys0wipc9dgc25xnafcj400jp85g42l4f"; depends=[curl httpcode jsonlite mime R6 urltools]; };
+  crul = derive2 { name="crul"; version="1.4.2"; sha256="0is164bbdk5zy1gxrliiqzlmj47nvzsjym05ijzzs3zkj7qpfp20"; depends=[curl httpcode jsonlite mime R6 urltools]; };
   crunch = derive2 { name="crunch"; version="1.30.4"; sha256="0wbj4w50mh0l2wmvl1wzii41n0jp6pkqawwj36k0g66wjgxq07yq"; depends=[abind crayon curl httpcache httr jsonlite]; };
   crunchy = derive2 { name="crunchy"; version="0.3.3"; sha256="15w72kmizsxkj1wx3nqny6329m2041mxyzi4nxh8l3hfmaisb4qm"; depends=[crunch httpcache miniUI rstudioapi shiny]; };
   cruts = derive2 { name="cruts"; version="1.1"; sha256="1ih6h9qk4yflzars00d61smjqj7s4bfvc2ikp6vlki9f6k012xcx"; depends=[lubridate ncdf4 raster sp stringr]; };
   crwbmetareg = derive2 { name="crwbmetareg"; version="1.0"; sha256="0faksz2hp1ya4j9hlpc091b1mgwz6396fc15f4f20fixcidv1jg8"; depends=[lmtest Rfast2 sandwich]; };
   cry = derive2 { name="cry"; version="0.5.1"; sha256="0n1yyjkqj0kqs53g27chl7lhk07f7aj81jwyvaxfmfkp03xzjj0d"; depends=[ggplot2 zoo]; };
-  crypto2 = derive2 { name="crypto2"; version="1.4.6"; sha256="0jpnks935n18yk1936643m01wj2b8hy19limnkpwny6qlyjrlzy2"; depends=[cli dplyr jsonlite lubridate plyr progress purrr tibble tidyr]; };
-  cryptoQuotes = derive2 { name="cryptoQuotes"; version="1.3.0"; sha256="101j4abar8za1llgv7j6cn7f970nrf1qbi3g888p5xkzar8aczkv"; depends=[cli conflicted curl jsonlite lifecycle paletteer plotly rlang TTR xts zoo]; };
+  crypto2 = derive2 { name="crypto2"; version="2.0.0"; sha256="0jj6ld4xy1dxc7g317dfjd46vrpbiayskcnvhmapr0rnga60c78r"; depends=[base64enc cli dplyr janitor jsonlite lubridate plyr progress purrr tibble tidyr]; };
+  cryptoQuotes = derive2 { name="cryptoQuotes"; version="1.3.1"; sha256="0fyhnba1h3vf802rab96hch6gdkggz040yvfry9ya2i74xl972pi"; depends=[cli curl jsonlite lifecycle plotly TTR xts zoo]; };
   cryptography = derive2 { name="cryptography"; version="1.0.0"; sha256="0dwnm37p95i1rmrc9qq7ryz1rk96n01ik3xif1f94vz5dlm4kxd7"; depends=[DescTools]; };
-  cryptotrackr = derive2 { name="cryptotrackr"; version="1.2.0"; sha256="0y2fd2v23vc06g8wfs2h4v5b2z0599wjz5ws4yhw3kfq82969fn8"; depends=[digest httr jsonlite openssl stringi]; };
+  cryptorng = derive2 { name="cryptorng"; version="0.1.4"; sha256="0c6lxms7kcgzw1dssx0l0ld0kb8jdclq8rv8j327nf45wjsll6p3"; depends=[]; };
+  cryptotrackr = derive2 { name="cryptotrackr"; version="1.3.3"; sha256="0lgz0z0qrbqrvf4hg3dk9rm6i9fxi7pvijsf3ic1f5i6fyf9c0xz"; depends=[digest httr jsonlite openssl stringi]; };
   cryptoverse = derive2 { name="cryptoverse"; version="0.1.0"; sha256="169afkvinngwhrxi50a4r07lhgb6x9dxjbi3bj0gc7iyxa8cl9c5"; depends=[]; };
   cryptowatchR = derive2 { name="cryptowatchR"; version="0.2.0"; sha256="0lf94l5klkx1j1fgaq2qjqr2y8ckm5raa3a508x72ph45v10pfyq"; depends=[httr jsonlite lubridate]; };
   cryst = derive2 { name="cryst"; version="0.1.0"; sha256="04da19dy3mkngd3ma44cd8cdkb5acjy9lbhfipa9flp339j1pp57"; depends=[flux pracma]; };
@@ -8435,12 +8591,12 @@ in with self; {
   csalert = derive2 { name="csalert"; version="2023.6.17"; sha256="004rsqf912f9ladp9kvx26fhmkna61cxlgjfzmlxzirm1h2iw1vs"; depends=[cstidy cstime data_table ggplot2 glm2 magrittr stringr]; };
   csampling = derive2 { name="csampling"; version="1.2-2.1"; sha256="0kqx7j96yafsqi9cz551fqpwkbcabxl8zpwa2jms862z41xbgsv3"; depends=[marg statmod survival]; };
   csci = derive2 { name="csci"; version="0.9.3"; sha256="00s1gx5h141w1vjw8j3k7bn71c4dy80m6wakd1c1z7rmx1jbfp6m"; depends=[exactci]; };
-  csdata = derive2 { name="csdata"; version="2024.1.17"; sha256="0y1jjrw7z2ycs6njq56nny7dxjddk44cc1hyliv1zbs7rhjam5iv"; depends=[data_table]; };
+  csdata = derive2 { name="csdata"; version="2024.4.26"; sha256="03yi9hnsr8nl4kg9q2dpmngym4xv3kscc6kri71hv3wzk60y811r"; depends=[data_table]; };
   cshapes = derive2 { name="cshapes"; version="2.0"; sha256="0c3q85whvp28zlm4k1570kwc5qvl2fmaszx9dpmfcdqv6m19f9ks"; depends=[rmapshaper sf sp]; };
   csmaps = derive2 { name="csmaps"; version="2023.5.22"; sha256="02w3g6qc928fbic462nn22s6fcqxr4v9hhhrv632azcc2x83k100"; depends=[data_table]; };
   csmpv = derive2 { name="csmpv"; version="1.0.3"; sha256="13b7i4ri0a3cjnhn14m72rff4gxxda556h38gjwp900mnjaqrwbj"; depends=[forestmodel ggplot2 ggpubr glmnet Hmisc Matrix rms scales survival survminer xgboost]; };
   csn = derive2 { name="csn"; version="1.1.3"; sha256="102w1qh9hgz4j9lh5hnbw1z3b7p034si73q4pkk564a2mhzlksw4"; depends=[mvtnorm]; };
-  csodata = derive2 { name="csodata"; version="1.4.2"; sha256="02yi96a3zhradw5kncfngav1ma3pkjn7y638wc4z7818ykxx62m6"; depends=[dplyr httr jsonlite lifecycle lubridate R_cache reshape2 rjstat sf tidyr]; };
+  csodata = derive2 { name="csodata"; version="1.5.0"; sha256="11sgkf6xy3wh73yqhcjcpif9w73026rmiwm5vcgm21fg9fl4hyfk"; depends=[dplyr httr jsonlite lifecycle lubridate R_cache reshape2 rjstat sf tidyr]; };
   cspec = derive2 { name="cspec"; version="0.1.2"; sha256="049vynbffxyd5zwxwyz1jv05zgq7zrx1ypzv5j62ph64gl42m13p"; depends=[]; };
   cspp = derive2 { name="cspp"; version="0.3.3"; sha256="1x3swcgqffqcpw4w6dwafqh9cikd6c714lbbnzwirvqvfswnmmgw"; depends=[csppData dplyr ggcorrplot ggplot2 haven mapproj purrr readr rlang stringr tidyselect]; };
   csppData = derive2 { name="csppData"; version="0.2.61"; sha256="1q9a11v512dc96lrrd03w06s8x6c1a0j4z5x8qvq48f4q7k30l1r"; depends=[]; };
@@ -8460,7 +8616,7 @@ in with self; {
   ctf = derive2 { name="ctf"; version="0.1.0"; sha256="1vwqfh1y2if79rkpy6b0ay50fyis7h5rlpvhgikahnmcr2q5l14m"; depends=[iotools jsonlite]; };
   ctgdist = derive2 { name="ctgdist"; version="0.1.0"; sha256="1m3ryppfvd984n5xfphjqhi9i1sigl17v897mqaichj21dzaq62f"; depends=[mirt]; };
   ctgt = derive2 { name="ctgt"; version="2.0.1"; sha256="0yiclmpnpzzqv1d76bk97dwq9x44l5v7rlk2dknrx8j3zj4svais"; depends=[BH Rcpp]; };
-  cthist = derive2 { name="cthist"; version="2.1.6"; sha256="0dn1mghic22s04lg79v9kinxfpd40lsigkda9x6i2bv0wgvwsy06"; depends=[assertthat dplyr httr jsonlite magrittr readr rlang stringr tibble]; };
+  cthist = derive2 { name="cthist"; version="2.1.9"; sha256="0gdni6jfqq4k4w5b42va0hm7fc1k8v8b3imlip6fn9kni388a2xl"; depends=[assertthat dplyr httr jsonlite magrittr purrr readr rlang stringr tibble tidyr]; };
   cthreshER = derive2 { name="cthreshER"; version="1.1.0"; sha256="18b66d08dq8pvnixmm4ir4r800b37z5yillaa88l317mdilbci9s"; depends=[Matrix]; };
   ctl = derive2 { name="ctl"; version="1.0.0-10"; sha256="0wzav2307w6vbj1ksrg8qqfk1l97fclfl4i9w3sj6a238s0am3dv"; depends=[MASS qtl]; };
   ctmcd = derive2 { name="ctmcd"; version="1.4.4"; sha256="0w0dhxw9qdh7p59d4xkm3h5zhmvawgy9lsw84nh9vphrqrzbfghm"; depends=[coda expm numDeriv Rcpp RcppArmadillo]; };
@@ -8470,10 +8626,10 @@ in with self; {
   ctmva = derive2 { name="ctmva"; version="1.4.0"; sha256="0nfn6l31bsifrb1szsrig6l4023svsr81lqnq072yi6441klyf81"; depends=[fda polynom]; };
   ctpm = derive2 { name="ctpm"; version="1.0.1"; sha256="1bycdh3mbimmfvv3yb50c8rwcmkbjj0jwnfiynsp2h56y3dmzc1r"; depends=[ape ClusterR ctmm slouch]; };
   ctqr = derive2 { name="ctqr"; version="2.1"; sha256="050v5am4cmr6y35ygppabs32hlzpngfqy1wdpqwc76kc3m097mlr"; depends=[pch survival]; };
-  ctrdata = derive2 { name="ctrdata"; version="1.17.2"; sha256="0xsi3yc08gg9h5zh9h9r2d2ixv36f6wblmkcv51h9nfmawjyd8f8"; depends=[clipr curl digest dplyr httr jqr jsonlite lubridate nodbi readr stringi tibble V8 xml2 zip]; };
+  ctrdata = derive2 { name="ctrdata"; version="1.18.0"; sha256="01y4cf4cwnsaykdbakq68bfrargn9ai492jcbq023d0w9hv78r0b"; depends=[clipr curl digest dplyr httr jqr jsonlite lubridate nodbi readr stringi tibble V8 xml2 zip]; };
   ctrialsgov = derive2 { name="ctrialsgov"; version="0.2.5"; sha256="0hdh1fdfaja8amf7fkvk1c6yif703132bvacq0j9pk5jr97czgpw"; depends=[DBI dplyr ggplot2 htmlwidgets lubridate Matrix plotly purrr rlang stringi tibble]; };
   ctrlGene = derive2 { name="ctrlGene"; version="1.0.1"; sha256="0x7j11v7jj4k1jml6lrnjq79awhrvsm3pig1yxsd337jlfml3ra9"; depends=[psych]; };
-  ctsem = derive2 { name="ctsem"; version="3.9.1"; sha256="1npdxd4z8vafjcjhy1i16r27wqmilc7b42hml21cggl9ynvh7pn7"; depends=[BH cOde data_table Deriv expm ggplot2 MASS Matrix mize mvtnorm plyr Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders tibble]; };
+  ctsem = derive2 { name="ctsem"; version="3.10.0"; sha256="10ip34y03jiidwcmqlvhb4sw0f0972l3pkx694whr1dlnlb57yjr"; depends=[BH cOde data_table Deriv expm ggplot2 MASS Matrix mize mvtnorm plyr Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders statmod tibble]; };
   ctsemOMX = derive2 { name="ctsemOMX"; version="1.0.6"; sha256="1vr7zpxfhwzj8v54dzgk42hvjb4433y9r8al9069prkrvlv74gx8"; depends=[ctsem Matrix OpenMx plyr]; };
   ctsfeatures = derive2 { name="ctsfeatures"; version="1.2.2"; sha256="0nmqx56mbmanq6y3msdkii144srgxvyl0lzwhixm719xhjii39w3"; depends=[astsa Bolstad2 ggplot2 latex2exp Rdpack tsibble]; };
   ctv = derive2 { name="ctv"; version="0.9-5"; sha256="1mr37p7mdv2p8rswz9clwj25ipm16pc4a7flwg3a4bgyj1n5mz55"; depends=[]; };
@@ -8486,12 +8642,13 @@ in with self; {
   cubfits = derive2 { name="cubfits"; version="0.1-4"; sha256="1dg60162s77p82v8vig52yl8ar8h0pijps8kqq35v1hvp5a3ny5q"; depends=[coda foreach]; };
   cubicBsplines = derive2 { name="cubicBsplines"; version="1.0.0"; sha256="1dzwadhhrxgral9x4hxyyy1fyn45pmbwv6wiwfxhivkxmd3s2xdr"; depends=[]; };
   cubing = derive2 { name="cubing"; version="1.0-5"; sha256="1q23fplvklaaldicqic0zpnh301m08zb9k21l47zj47g9m9pj4bc"; depends=[rgl]; };
-  cucumber = derive2 { name="cucumber"; version="1.0.0"; sha256="1898d55lky6avhxvhj0rqfbijf66p5any7hanj32yr231mgayk2r"; depends=[checkmate dplyr fs glue purrr rlang stringr testthat tibble withr]; };
+  cucumber = derive2 { name="cucumber"; version="1.0.3"; sha256="1drdx59pzm8fwmp1hjliq21ba16jahlx5f0ban5qgig0xni3vz8y"; depends=[checkmate dplyr fs glue purrr rlang stringr testthat tibble withr]; };
   cuda_ml = derive2 { name="cuda.ml"; version="0.3.2"; sha256="0vqmy8qs3234gllpymvnf2x4a5g9rcmn9ja8cvccksvx6bh10mgz"; depends=[ellipsis hardhat parsnip Rcpp rlang]; };
   cultevo = derive2 { name="cultevo"; version="1.0.2"; sha256="0rmncp4mrdpf3izhhqn9406i36j3d3d7i8cglip04lkfbypl9jvy"; depends=[combinat Hmisc pspearman stringi]; };
   cumSeg = derive2 { name="cumSeg"; version="1.3"; sha256="0n1hp0abnd6zn72fkgkj9k875vivn5kr3q76sjy6q6va7x24j6sg"; depends=[lars]; };
   cumprinc = derive2 { name="cumprinc"; version="0.1"; sha256="153cjl6x6mm6dix77bv9614nrd7x7qimwkw96mgxwarfpf1172nn"; depends=[]; };
   cumstats = derive2 { name="cumstats"; version="1.0"; sha256="119w751z9dg6pjyk389pbl8ab8pirf9sqndi4nxi89ix2bby4xz8"; depends=[]; };
+  cumulcalib = derive2 { name="cumulcalib"; version="0.0.1"; sha256="0md2zvs0n7lrlfxh5208a69jg2wgdwd4jvivf3j50jhhwfclmsw5"; depends=[]; };
   cumulocityr = derive2 { name="cumulocityr"; version="0.1.0"; sha256="0ybvh5args3s1f3nra58bnfwgrlrdpw40by68az84s90v88bbz2q"; depends=[httr jsonlite]; };
   cuperdec = derive2 { name="cuperdec"; version="1.1.0"; sha256="1vvkbkb3dp38xzxxdm20n6vr8yifppn1clzzcvb2rhqk9d17cdiw"; depends=[dplyr ggplot2 magrittr readr rlang tidyr]; };
   curephEM = derive2 { name="curephEM"; version="0.3.0"; sha256="0c24xasgyr9dcbnmscfc9zj3lh1ja03xnzww0qd9rd5ax7hrciks"; depends=[Matrix survival]; };
@@ -8515,13 +8672,14 @@ in with self; {
   cusumcharter = derive2 { name="cusumcharter"; version="0.1.0"; sha256="0ljprnn48nfl8n0zmvc547rcg4cwrfhq3zjkkimgdnf7z2d130q6"; depends=[data_table ggplot2 rlang]; };
   cutoff = derive2 { name="cutoff"; version="1.3"; sha256="0anrvmlvcxah620il3fkq6ldp7hx4nwdnzcpmfc5mhlsry0lp178"; depends=[do ROCit set survival]; };
   cutpointr = derive2 { name="cutpointr"; version="1.1.2"; sha256="1qxnh20hs3bh9v04ls7gwwl7lfc6bwl8c88dn8lkcdqyp3nyr01j"; depends=[dplyr foreach ggplot2 gridExtra purrr Rcpp rlang tibble tidyr tidyselect]; };
-  cv = derive2 { name="cv"; version="1.1.0"; sha256="18h7ivmicjdmnp9f1m2q21qlp9qdbh139x77xqa94v9kyb5w3d96"; depends=[car doParallel foreach insight lme4 MASS nlme]; };
+  cv = derive2 { name="cv"; version="2.0.0"; sha256="1jhvi0bf8r66q2kqjylg0fdnzxpsaxq1ivm82akhczivjn39wvv8"; depends=[car doParallel foreach glmmTMB gtools insight lme4 MASS nlme]; };
   cvAUC = derive2 { name="cvAUC"; version="1.1.4"; sha256="1m2y50a1yapf1c74km9a4r47ds2z2bfp4wwwkqin7swv9v1s7d28"; depends=[data_table ROCR]; };
   cvCovEst = derive2 { name="cvCovEst"; version="1.2.2"; sha256="148qb2995h9an2zp6rn0lvy8c6x1iiqx4cdfhzx6jdixra3593im"; depends=[assertthat coop dplyr ggplot2 ggpubr Matrix matrixStats origami purrr RColorBrewer Rdpack rlang RMTstat RSpectra stringr tibble]; };
   cvGEE = derive2 { name="cvGEE"; version="0.3-0"; sha256="085qjm520l2441nakfxy851s6bfy5832b5fy54z5fp4xr1jn6snm"; depends=[]; };
   cvTools = derive2 { name="cvTools"; version="0.3.3"; sha256="0vrlj0jrmy1dj5fy4cpfkls2l5a2r7c7kvfhlnibpy8cmdx1mhql"; depends=[lattice robustbase]; };
   cvap = derive2 { name="cvap"; version="0.1.5"; sha256="02ixibmia4v6qdrn3rwi4qjgha920y8qp83as9acr797abahmnm8"; depends=[censable cli dplyr fs readr rlang stringr tidyr]; };
   cvar = derive2 { name="cvar"; version="0.5"; sha256="066vn8flw9j0idmpi9wzvybgihdhwg3fjslx2isbrb11ldl1lwky"; depends=[gbutils Rdpack]; };
+  cvasi = derive2 { name="cvasi"; version="1.1.0"; sha256="17w13b1h8nri74j5s94klwmrzjcd88llz2n84v54nc6nza77yk9g"; depends=[attempt cli deSolve dplyr furrr ggplot2 glue lemna lifecycle lubridate magrittr purrr rlang stringr tibble tidyr units]; };
   cvcrand = derive2 { name="cvcrand"; version="0.1.1"; sha256="02pdhaq0mm1vijdc0hwh4vpcvk5fhwq73lhkrrg2zr6bwq8q2syz"; depends=[tableone]; };
   cvequality = derive2 { name="cvequality"; version="0.2.0"; sha256="1im839vzfqylphp2vr20avnzkyl02n88fngbs63d4ik7c72d9992"; depends=[]; };
   cvmaPLFAM = derive2 { name="cvmaPLFAM"; version="0.1.0"; sha256="1qmd4zbh70z1vgc6mxfr9scvqw923y9qdxjf80i826bdh7sc4wq3"; depends=[fda MASS mgcv quadprog]; };
@@ -8530,7 +8688,7 @@ in with self; {
   cvms = derive2 { name="cvms"; version="1.6.1"; sha256="0iwg6biy700lgn038ws0dk0qqfl7nws1nxcgkhdd4wm6ki4qb1pq"; depends=[checkmate data_table dplyr ggplot2 groupdata2 lifecycle lme4 MuMIn parameters plyr pROC purrr rearrr recipes rlang stringr tibble tidyr]; };
   cvsem = derive2 { name="cvsem"; version="1.0.0"; sha256="148v8axwxfr328l709b6q1fmqnzmiw9g7589zgwha4d6lrx4ak4i"; depends=[lavaan Rdpack]; };
   cvwrapr = derive2 { name="cvwrapr"; version="1.0"; sha256="17h017p76y7sjcwik48ravygmyivj6kvkhqy5s9ch0nwzzcrzvj3"; depends=[foreach survival]; };
-  cwbtools = derive2 { name="cwbtools"; version="0.4.0"; sha256="1py9frp2aq3q4iq5130izbxx6k1xq7rgz1knzpxkhy8h5afx8ywc"; depends=[cli curl data_table fs httr jsonlite lifecycle pbapply R6 RcppCWB rstudioapi stringi xml2 zen4R]; };
+  cwbtools = derive2 { name="cwbtools"; version="0.4.2"; sha256="1aanda6rj60rkkbkxijj4r4bx0caiyr9ifw0pg6nabv4fwfnlb4x"; depends=[cli curl data_table fs httr jsonlite lifecycle pbapply R6 RcppCWB rstudioapi stringi xml2 zen4R]; };
   cwot = derive2 { name="cwot"; version="0.1.0"; sha256="1qg9aizkz40sfm65b8sxcmj1232zb3ds8gds45lv0prf8alc7az3"; depends=[mvtnorm SPAtest]; };
   cxhull = derive2 { name="cxhull"; version="0.7.4"; sha256="0jxr1fz7cyarcq50jkkc2f3f1zwmbljpdpl56hfcilb43z2rkzkj"; depends=[data_table rgl Rvcg]; };
   cxr = derive2 { name="cxr"; version="1.1.1"; sha256="197xbphvnhg05dwcs0p7iwg6j6bi223cxxqfvibx7yp2bnfsllm2"; depends=[Matrix mvtnorm optimx]; };
@@ -8549,14 +8707,14 @@ in with self; {
   cytofan = derive2 { name="cytofan"; version="0.1.0"; sha256="0gqs98mnwiawnyfb9hs5nlin8d1fj64bszn4b40gs8ajyh36r9pp"; depends=[ggplot2 RColorBrewer]; };
   cytometree = derive2 { name="cytometree"; version="2.0.2"; sha256="18g7av73lmnyga1kk24bf8jy599zn9n6qhr13mxsqgi0zdinicfa"; depends=[cowplot ggplot2 GoFKernel igraph mclust Rcpp RcppArmadillo]; };
   cytominer = derive2 { name="cytominer"; version="0.2.2"; sha256="1n9yimjhdziv1vzjyni6ssi38nxcnfr5jpmzgxcn6vysffh5s9pz"; depends=[caret doParallel dplyr foreach futile_logger magrittr Matrix purrr rlang tibble tidyr]; };
-  czechrates = derive2 { name="czechrates"; version="0.2.4"; sha256="0mv9adynqyn8x3ppwf4dkl8ii9jy4l7qk7v6bz7bxl5qsd6a5imn"; depends=[curl dplyr httr magrittr readr tibble tidyr]; };
-  czso = derive2 { name="czso"; version="0.3.10"; sha256="0vkckjnv8nkv794dq9kz1lg8qj614gma3blasz4288xxbg9cq6p5"; depends=[cli curl dplyr httr jsonlite lifecycle magrittr readr rlang stringi tibble]; };
+  czechrates = derive2 { name="czechrates"; version="0.2.5"; sha256="176bhlgdyl8fv1nbfgh2vc7h65d8pib2c162dzcdy1zlm4hccc84"; depends=[curl dplyr httr magrittr readr tibble tidyr]; };
+  czso = derive2 { name="czso"; version="0.3.12"; sha256="0zg1sqka0m1cc5cwdkb0b12fb27mj4skz2vbvn6xqjbww1yjxrpd"; depends=[cli curl dplyr httr jsonlite lifecycle magrittr readr rlang stringi tibble]; };
   d3Network = derive2 { name="d3Network"; version="0.5.2.1"; sha256="1gh979z9wksyxxxdzlfzibn0ysvf6h1ij7vwpd55fvbwr308syaw"; depends=[plyr rjson whisker]; };
   d3Tree = derive2 { name="d3Tree"; version="0.3.0"; sha256="13qvwmv5nfiv0c3545f2jlhmvgavqnc0jclvm5razjs4hv4kai7i"; depends=[dplyr htmlwidgets tibble tidyselect]; };
   d3plus = derive2 { name="d3plus"; version="0.1.0"; sha256="0kadz83pals03n0v3zqhmhf6visigk52yn58xckhb57fid4xzj5w"; depends=[htmlwidgets magrittr]; };
   d3po = derive2 { name="d3po"; version="0.5.5"; sha256="1fyk0152x9zsbf7qm02wixrk9fldl0jlrg33fnbx06jjg1s431r7"; depends=[assertthat dplyr htmlwidgets magrittr purrr rlang]; };
   d3r = derive2 { name="d3r"; version="1.1.0"; sha256="1dcm53y3jpyswr6y368xhdnn1nkchixf4wkxnsb2mk9lzccb44y4"; depends=[dplyr htmltools tidyr]; };
-  d4storagehub4R = derive2 { name="d4storagehub4R"; version="0.4-3"; sha256="1a6clkld20vmvacdwr4rir34mj4fm5fdh687b2whds6y0rj7wgb3"; depends=[httr jsonlite keyring R6 XML xml2]; };
+  d4storagehub4R = derive2 { name="d4storagehub4R"; version="0.4-4"; sha256="0ixv8wypcvcrn3xig8sg54mizsll4v2665l8hqd1q15d0ln2p789"; depends=[httr jsonlite keyring R6 XML xml2]; };
   dBlockmodeling = derive2 { name="dBlockmodeling"; version="0.2.3"; sha256="18y6pkp273q15nkgqywzknsq1mnbiaw8jlzsaa76zadxf7xhsxls"; depends=[]; };
   dCUR = derive2 { name="dCUR"; version="1.0.1"; sha256="1blrxgf911b1y2pcp3hsv6cigpnclscjadlf5656kldblzj5w5m1"; depends=[dplyr ggplot2 magrittr MASS mclust ppcor Rdpack]; };
   dChipIO = derive2 { name="dChipIO"; version="0.1.5"; sha256="1xrafw5h071d8rfqaic3gifc80jpiddjz5x6l2cr8kgjvph60gqh"; depends=[]; };
@@ -8578,7 +8736,7 @@ in with self; {
   dadjoke = derive2 { name="dadjoke"; version="1.0"; sha256="118pacwc2qb3c5zbhr71zf4zj1ab2g4rs5h6bvrscjyd7a71jc3f"; depends=[]; };
   dadjokeapi = derive2 { name="dadjokeapi"; version="1.0.2"; sha256="143xs3nkf6ynr83z5gggz318nvpnsbfmskl1ipavlzrqk785dlac"; depends=[beepr curl dplyr httr png]; };
   dados = derive2 { name="dados"; version="0.1.0"; sha256="1jdna8s10qz50zrsrm36y1jx489sznd86akx2lwdmriiiz3abn65"; depends=[AmesHousing babynames dplyr forcats fueleconomy gapminder ggplot2 Lahman nasaweather nycflights13 palmerpenguins pixarfilms rlang tibble tidyr yaml]; };
-  dae = derive2 { name="dae"; version="3.2.21"; sha256="0j47d4r4mpkfaz29h7iiijmzi7fj7nysg8pd9c79h160h1lww9yx"; depends=[ggplot2 ggpubr plyr]; };
+  dae = derive2 { name="dae"; version="3.2.28"; sha256="13a3j3d8qm1phkp4x0pdqa6p36j6xlakhmkrqcb9x0bpcfzbwfyl"; depends=[ggplot2 ggpubr plyr tryCatchLog]; };
   daewr = derive2 { name="daewr"; version="1.2-11"; sha256="0hh7z0sdynrw4746hqvyra4dsqa9p1j8bip7b8asyvdpirxhvh23"; depends=[lattice stringi]; };
   daff = derive2 { name="daff"; version="1.1.1"; sha256="0zbh3p7d2r04j9kzfk32j2zw9f745dk7yl2dx8lflrm0zidwbxc4"; depends=[jsonlite V8]; };
   dafishr = derive2 { name="dafishr"; version="1.0.0"; sha256="1n6b1r1awwxvdhn4znwp1p4jp3gvrjz017darjagx4cix0iisw1p"; depends=[dplyr fst ggplot2 lubridate magrittr mixtools readr readxl rlang sf stringr tibble tidyr tidyselect vroom]; };
@@ -8590,10 +8748,10 @@ in with self; {
   daiR = derive2 { name="daiR"; version="1.0.0"; sha256="110car64pgpg71dcqnbkj91md0xwikpmd6iy90nj84nglycc5v00"; depends=[base64enc beepr cli data_table fs gargle glue googleCloudStorageR httr jsonlite lifecycle magick pdftools purrr readtext stringr xml2]; };
   dail = derive2 { name="dail"; version="1.5.2"; sha256="0a82ch0l7ci9vjrwyy38qhw8zrp9d4h2bmk963llm9aqf4j7lkhf"; depends=[deflateBR dplyr janitor lubridate magrittr RCurl readr stopwords stringr tidytext]; };
   daiquiri = derive2 { name="daiquiri"; version="1.1.1"; sha256="05057i8xvkzyd8h1ppw7qip1d4yjgzimmb5chbdw72mwwgbrwrfy"; depends=[cowplot data_table ggplot2 reactable readr rmarkdown scales xfun]; };
-  daltoolbox = derive2 { name="daltoolbox"; version="1.0.727"; sha256="0ycbbqcdkk9yhwrrln5xh4j5xfsga4hcn0jc7fgczpjdgv07g8w8"; depends=[caret class cluster dbscan dplyr e1071 elmNNRcpp FNN forecast ggplot2 MLmetrics nnet randomForest reshape reticulate tree]; };
+  daltoolbox = derive2 { name="daltoolbox"; version="1.0.767"; sha256="02rhbcgjwlx45y0641yjlamzgl2swm60hmvwppr4nk24hb0hjczs"; depends=[caret class cluster dbscan dplyr e1071 elmNNRcpp FNN forecast ggplot2 MLmetrics nnet randomForest reshape reticulate tree]; };
+  daltoolboxdp = derive2 { name="daltoolboxdp"; version="1.0.767"; sha256="1l34wb2vl9wmf0vrhis29w4hz1m9jx9qdfi494rfnwals054j3ah"; depends=[daltoolbox doBy FSelector glmnet leaps smotefamily]; };
   dam = derive2 { name="dam"; version="0.0.1"; sha256="1b0fi3l8jxgpr9fwvi03giq7wm39msbh0c82ffgkh54a3bbf5blc"; depends=[]; };
   damAOI = derive2 { name="damAOI"; version="0.0"; sha256="1vfc1nwzr76djmwriln9dh8hj6iq5ji9vxfnpzydl34niqckscf0"; depends=[dplyr FNN leaflet magrittr sf shiny shinydashboard smoothr terra tibble tidyr units]; };
-  dampack = derive2 { name="dampack"; version="1.0.1"; sha256="0mh3x0xgcipbd9341x3sfapysrd9m8aaakc1f53vwjj31c8vayqc"; depends=[dplyr ellipse ggplot2 ggrepel mgcv reshape2 scales stringr triangle truncnorm]; };
   damr = derive2 { name="damr"; version="0.3.7"; sha256="12vr630m2az8xb8wndk8cyh7r8mwg3lvr7i3fcgqqxcq9rsgqm4r"; depends=[behavr data_table readr]; };
   dams = derive2 { name="dams"; version="0.3.0"; sha256="1jlx1b4cir1vwq75jnmk0pc6j95syfpi0hlnkx82g7pwfxwrdrib"; depends=[crul fauxpas janitor readxl]; };
   dang = derive2 { name="dang"; version="0.0.16"; sha256="1h0j2pxwp8dnaw2vrclj069xmd6adwah8ld4vmmh3zm7kwflvcx8"; depends=[tidyCpp]; };
@@ -8605,14 +8763,14 @@ in with self; {
   dartR = derive2 { name="dartR"; version="2.9.7"; sha256="1wwm2gq743l90jsa1hsgxknqxqp0ga8vf3xv652m3ifpyrkp93vx"; depends=[adegenet ape crayon dartR_data data_table dplyr fields foreach ggplot2 gridExtra MASS patchwork plyr PopGenReport raster reshape2 shiny SNPRelate sp StAMPP stringr tidyr vegan]; };
   dartR_base = derive2 { name="dartR.base"; version="0.65"; sha256="1887ksyszlp65i4z6zhh6j1pihfkkimiwrv6bqav5z7gmw2i0pi7"; depends=[adegenet ape crayon dartR_data data_table dplyr foreach ggplot2 gridExtra MASS patchwork plyr reshape2 SNPRelate StAMPP stringr tidyr]; };
   dartR_captive = derive2 { name="dartR.captive"; version="0.75"; sha256="1n6qhn87111ydznmy85lj7sbxkkak4nwiq1kyky3p43x9679b2p9"; depends=[adegenet crayon dartR_base dartR_data ggplot2 patchwork stringr]; };
-  dartR_data = derive2 { name="dartR.data"; version="1.0.2"; sha256="0gi6hgvfvh1hp60fvmij2r4fgv1qigs2biw2hw05rbl55xv93ni5"; depends=[adegenet]; };
+  dartR_data = derive2 { name="dartR.data"; version="1.0.8"; sha256="179nqwnkkkjw3c2a7z3gw4d37122fnidnxrxi05sh62aqmjlw5ip"; depends=[adegenet crayon]; };
   dartR_popgen = derive2 { name="dartR.popgen"; version="0.32"; sha256="1sr9dd6nyspcv0lvj42qa1wpnichjxq1nqp6rl0i6f6jz00fm5mv"; depends=[adegenet crayon dartR_base dartR_data data_table dplyr ggplot2 MASS patchwork stringr]; };
   dartR_sim = derive2 { name="dartR.sim"; version="0.70"; sha256="02l18hvdd1hr9l15frvaw7nikjmr7iyq3wvg5xz8drma4v9r9lwb"; depends=[adegenet dartR_base dartR_data data_table fields ggplot2 hierfstat Rcpp reshape2 shiny shinyBS shinyjs shinythemes shinyWidgets stringi stringr]; };
   dartR_spatial = derive2 { name="dartR.spatial"; version="0.78"; sha256="1fjajinsc2ikvhz4igjyldvfd5skdqhnay5209dzx4xjpnkik5vv"; depends=[adegenet crayon dartR_base dartR_data data_table ggplot2 MASS raster sp StAMPP tidyr vegan]; };
-  dartRverse = derive2 { name="dartRverse"; version="0.51"; sha256="1j5fgr5priyh9w4ysnx8104yvhq4kysp0i07phqjn2yyj0pk8a15"; depends=[cli dartR_base dartR_data rlang]; };
+  dartRverse = derive2 { name="dartRverse"; version="1.0.2"; sha256="0z6nx5j1jgyzmcxdmdbxdhigq7qc3mka0fq6ghyfqaa3089lc823"; depends=[cli devtools rlang]; };
   dashboardthemes = derive2 { name="dashboardthemes"; version="1.1.6"; sha256="0yki4gmklrkhs6ldznabdr04smw3a112ask313z1h93dnvabr06c"; depends=[htmltools]; };
   dat = derive2 { name="dat"; version="0.5.0"; sha256="1d3q4bang6pm06rfzh6h947xy3wwqn3l6ri0h4hzklg5pzwpsajd"; depends=[aoos data_table Formula magrittr progress]; };
-  data_table = derive2 { name="data.table"; version="1.15.2"; sha256="04pfcm3pyl997rpyj5zdmbhi4ndaai81vfgv4whjp8rhqzjk7i6j"; depends=[]; };
+  data_table = derive2 { name="data.table"; version="1.15.4"; sha256="0lyb82kl2bn70l9ag5xdr8q7rh4majbimygaynmfqnbdjkznb05b"; depends=[]; };
   data_tree = derive2 { name="data.tree"; version="1.1.0"; sha256="0qxd1g159phc6f18iddjljdg96sh09w63xqawjwbwyhg4blm9ddh"; depends=[R6 stringi]; };
   data_validator = derive2 { name="data.validator"; version="0.2.1"; sha256="118crpyyp2szj0l3rsqmzi1cpcv45lwlvczp25f28z1lgcx6mgcx"; depends=[assertr dplyr htmltools htmlwidgets knitr purrr R6 rlang rmarkdown shiny_semantic tibble tidyr]; };
   data360r = derive2 { name="data360r"; version="1.0.9"; sha256="15934ixmzw3iyqazhlz6s5cimmasf062fc8al0wdyij1f4cjcgny"; depends=[data_table jsonlite reshape2]; };
@@ -8624,16 +8782,17 @@ in with self; {
   dataReporter = derive2 { name="dataReporter"; version="1.0.2"; sha256="1rjm6j1s229j1j9yb5y1sdi03x22qzrkmhc09k4xdmwmwmpi3s58"; depends=[ggplot2 gridExtra haven htmltools magrittr pander rmarkdown robustbase stringi whoami]; };
   dataRetrieval = derive2 { name="dataRetrieval"; version="2.7.15"; sha256="0h5k68541nqg03hmfzfg4bqwjggl95yk9s2hlmfjxx3gxg4g5719"; depends=[curl httr jsonlite lubridate readr xml2]; };
   dataSDA = derive2 { name="dataSDA"; version="0.1.0"; sha256="0nf7ssk8srpmq0b2bqzm6kilj3m3dhdk7fz35vhzzkj4d2wn9czr"; depends=[magrittr tidyr]; };
-  databraryr = derive2 { name="databraryr"; version="0.6.2"; sha256="0zlzsax460njv9370rw1y94vfhs22hmviz0c12bsab814i8vb3mm"; depends=[assertthat dplyr getPass httr httr2 jsonlite keyring lifecycle magick magrittr plyr purrr rvest stringr tibble xfun]; };
+  databraryr = derive2 { name="databraryr"; version="0.6.4"; sha256="0ycpkdz3ln9a1yvcl142agk7cfzz0qh8yzx6y7ihy7zkl646m99m"; depends=[assertthat dplyr getPass httr httr2 jsonlite keyring lifecycle magick magrittr plyr purrr rvest stringr tibble xfun]; };
   dataclass = derive2 { name="dataclass"; version="0.3.0"; sha256="1byjxwk3jlm3jaa8q2ppr5i0y98hriky7rrff9gb8nk6yvv9jgmq"; depends=[cli dplyr glue magrittr purrr rlang tibble]; };
   datacleanr = derive2 { name="datacleanr"; version="1.0.3"; sha256="0mrfqm3lgb6sl2j35sfd00gb5121j9wmlff8k0vczr3sgmqz4dg8"; depends=[bslib clipr dplyr DT formatR fs glue htmltools htmlwidgets lubridate magrittr plotly purrr RColorBrewer rlang rstudioapi shiny shinyFiles shinyWidgets summarytools]; };
   datacutr = derive2 { name="datacutr"; version="0.1.0"; sha256="1qgmc2r1g5zlvfq84qrmmfp6dv3458zhv741aa5wf1nkw2sv656y"; depends=[admiraldev assertthat dplyr lubridate magrittr purrr rlang stringr tibble]; };
   datadictionary = derive2 { name="datadictionary"; version="1.0.0"; sha256="102ll25mi4ac1zkvvirk7k11hqpf9q9h2if1rkz93zlfms843hp7"; depends=[chron data_table dplyr haven labelled lubridate magrittr openxlsx tibble tidyr tidyselect]; };
   datadogr = derive2 { name="datadogr"; version="0.1.2"; sha256="10zbxb9gkymw78ras9y4wrifz7cxh3y630yzjcf9ds2p557vcjzp"; depends=[anytime dplyr glue httr lubridate purrr stringr tibble tidyr]; };
+  datadriftR = derive2 { name="datadriftR"; version="0.0.1"; sha256="0ggakc73kyhnw60wvlb4pa7j6fvxcl98bbii45z2rrggbcgdjrfr"; depends=[R6]; };
   dataframeexplorer = derive2 { name="dataframeexplorer"; version="1.0.2"; sha256="0g5ajvd81k5pamvn204rxaiw92k20qqffnia1g6z89lp73spxs0s"; depends=[data_table dplyr magrittr openxlsx plyr stringr tibble tidyr]; };
   datafsm = derive2 { name="datafsm"; version="0.2.4"; sha256="0klhkbwpaqxk2mnxha8b03mpgfxk107ff9d2nx6cky59il3c1825"; depends=[caret GA Rcpp]; };
   datagovsgR = derive2 { name="datagovsgR"; version="1.0.0"; sha256="1vi3pql1k563ggvqr0d673z2aspvqi1w384lslinnsq85cwcfcly"; depends=[data_table dplyr httr purrr stringr]; };
-  datamods = derive2 { name="datamods"; version="1.4.5"; sha256="1qirnkzrskrf95vdj9pbnj8f04b2aiclhk4b0wz6bx2bmm02mg7n"; depends=[data_table htmltools htmlwidgets phosphoricons reactable readxl rio rlang shiny shinybusy shinyWidgets tibble writexl]; };
+  datamods = derive2 { name="datamods"; version="1.5.1"; sha256="0bxfa001j9vib0sj9d32qyzrqjvdzm5zxcpg1mm3jw31546jl46p"; depends=[classInt data_table htmltools phosphoricons reactable readxl rio rlang shiny shinybusy shinyWidgets tibble toastui writexl]; };
   datana = derive2 { name="datana"; version="1.0.3"; sha256="0vci2nhavqrpah4n5gr0rhihlp9qa41mfgg8w2k7fdak65hdz3hq"; depends=[ggplot2 lattice]; };
   datanugget = derive2 { name="datanugget"; version="1.2.4"; sha256="0r75vc6fzafv2kwq228w9iw0ryhwmly839dhcgf8bqgxyzd9gs16"; depends=[doSNOW foreach Rfast]; };
   dataonderivatives = derive2 { name="dataonderivatives"; version="0.4.0"; sha256="0bp1ynarz70c2clsz60dqfd4vmgm3251jv6821db5n7fffdrr7qa"; depends=[httr2 readr tibble vetr]; };
@@ -8641,7 +8800,7 @@ in with self; {
   datapack = derive2 { name="datapack"; version="1.4.1"; sha256="14vlcgk5sckzkc15cjvrbs113y65rqlwm1az7nsvnsqfx4x76jb1"; depends=[digest fs redland uuid XML zip]; };
   datapasta = derive2 { name="datapasta"; version="3.1.0"; sha256="0sqv29iv2rv50rbw1601rn8p7gv7rsw00djhl7h1znr0igzi5b82"; depends=[clipr readr rstudioapi]; };
   dataprep = derive2 { name="dataprep"; version="0.1.5"; sha256="1v48ry6xk0qg73j6js6m6fqd1bdhjv500bndb60zzl2qifrjfk2a"; depends=[data_table doParallel dplyr foreach ggplot2 reshape2 scales zoo]; };
-  dataquieR = derive2 { name="dataquieR"; version="2.0.1"; sha256="0paxrc9fi4p93mp4rr0ip0kn9gsm0hmplsl8icwxx980dmhxxyz9"; depends=[dplyr emmeans ggplot2 lme4 lubridate MASS MultinomialCI parallelMap patchwork qmrparser R_devices reshape rio rlang robustbase scales]; };
+  dataquieR = derive2 { name="dataquieR"; version="2.1.0"; sha256="1y8s6igz7ckvqamz26lrks62fnh51w1gz18gv7saxkmiwcacfjh4"; depends=[dplyr emmeans ggplot2 lifecycle lme4 lubridate MASS MultinomialCI parallelMap patchwork qmrparser R_devices readr rio rlang robustbase scales units withr]; };
   datardis = derive2 { name="datardis"; version="0.0.4"; sha256="0zcgl4jyz0xphliwjg8x5hqg9avflk0s5mgxd7gl52pxrki4mak3"; depends=[dplyr]; };
   dataresqc = derive2 { name="dataresqc"; version="1.1.1"; sha256="1a4izp25bxvgq3l4m7njy13d3fl6xn8y7v2v18raqk5g8kl8ca2y"; depends=[]; };
   datarium = derive2 { name="datarium"; version="0.1.0"; sha256="1v98yxsxhfqlalz5qy3x5axb7fy067vf3y0qg7ngixphmy9qybym"; depends=[]; };
@@ -8655,17 +8814,17 @@ in with self; {
   dataspice = derive2 { name="dataspice"; version="1.1.0"; sha256="1pnmb7kdx9wdvi2873rw1a7hc7spsvx4lfvfhfcqwgll46j0f1wm"; depends=[dplyr EML fs ggplot2 jsonlite magrittr purrr readr rhandsontable shiny stringr tibble tidyr whisker]; };
   datastepr = derive2 { name="datastepr"; version="0.0.2"; sha256="039yggdj8jdici7hwmkjwgix45lvwjl7rw5h2rfzsm9xaq6vw1z2"; depends=[dplyr lazyeval magrittr R6 tibble]; };
   dataverifyr = derive2 { name="dataverifyr"; version="0.1.8"; sha256="1jy8hdzld8yhz632rdk3j592szp7xn3qbs2h3g0gax3p33cpcasj"; depends=[yaml]; };
-  dataverse = derive2 { name="dataverse"; version="0.3.13"; sha256="1fzbllznvq5mls3hm1pirlkgjlsiwvdkkcqci2jymh376l2gx35g"; depends=[checkmate httr jsonlite readr xml2]; };
-  datawizard = derive2 { name="datawizard"; version="0.9.1"; sha256="0d01akddrbvdf16rvws3fh4pjl64myxn7is4qv2szm7hp6wjb4p5"; depends=[insight]; };
+  dataverse = derive2 { name="dataverse"; version="0.3.14"; sha256="0hb7d4rgwjzxg5ixx6jf3vg6s6r2aynw34lkw688f5jd9ysc706l"; depends=[checkmate httr jsonlite readr xml2]; };
+  datawizard = derive2 { name="datawizard"; version="0.11.0"; sha256="0cghk6flxxsz079sw8l4aw1h4girg7mwl61237a7ymmhvny70d4k"; depends=[insight]; };
   datazoom_amazonia = derive2 { name="datazoom.amazonia"; version="1.1.0"; sha256="1c2l42rwj67lr2910i1wdb04sqqwkdv5ycav6bz3snw349j8mycm"; depends=[data_table dplyr Hmisc janitor magrittr purrr Rcpp readr readxl sf sidrar stringi stringr tibble tidyr XML]; };
   date = derive2 { name="date"; version="1.2-42"; sha256="0x6b9dk7llvmcf2bzgdk8g1a28as0l1xxx2xn2fwyw801ab3z4as"; depends=[]; };
-  dateback = derive2 { name="dateback"; version="1.0.3"; sha256="0ja453w7nlb051sdl9rm2kdk40lz34zrixy3bmmmhjvcmcls9kxs"; depends=[]; };
+  dateback = derive2 { name="dateback"; version="1.0.5"; sha256="0kg066kx3r0kpj10p28xbidjri6x9g7br7bjs8qq6027a3klfxfv"; depends=[]; };
   datefixR = derive2 { name="datefixR"; version="1.6.1"; sha256="1xmrx8djxc05r9yvgfgkvmp19m2pj6n2g1r4siikwkzlssh2x8fz"; depends=[lifecycle Rcpp rlang stringr]; };
   datelife = derive2 { name="datelife"; version="0.6.8"; sha256="154nmpvslnizd03jaxbhkc7vjzjx7j18zlwmrpx2qidqk424k1i9"; depends=[abind ape BiocManager bold cluster compare curl data_table geiger httr ips knitcitations paleotree phangorn phylobase phylocomr phytools plyr rotl stringr taxize treebase]; };
   daterangepicker = derive2 { name="daterangepicker"; version="0.2.0"; sha256="03y8r1n31ipapfbbg12myrnqd961ra3fb6r4mjxqfkppxcj9c6mi"; depends=[htmltools jsonify shiny]; };
   datetime = derive2 { name="datetime"; version="0.1.4"; sha256="0nn1yxknsn3crmwbkws5kvfjhd65dw0fkfbg67gba0dyaqp1jg37"; depends=[]; };
   datetimeoffset = derive2 { name="datetimeoffset"; version="0.3.1"; sha256="11xxxfv3g8jf16cwpxjycrymx9baf8gkpd98x69djhbnrn3si0vn"; depends=[clock purrr vctrs]; };
-  datetimeutils = derive2 { name="datetimeutils"; version="0.6-3"; sha256="0k75r9bvh8wb45mrqk9vbyig8xk623g9cnrk7s6zbcx85ymxmmk6"; depends=[]; };
+  datetimeutils = derive2 { name="datetimeutils"; version="0.6-4"; sha256="0k8zgr3dpba967p12fygrbrcgnbm51ghhnh7cb1w1gd7jqc42nhk"; depends=[]; };
   datetoiso = derive2 { name="datetoiso"; version="0.2.0"; sha256="1fg5r7ibdgbk1vbhbv6a2p4acd1mhsyyvrjr79cy37gmn1ka72i3"; depends=[lubridate stringr]; };
   dateutils = derive2 { name="dateutils"; version="0.1.5"; sha256="03xch5wcvv15fy9x70smrki6374lddhf0sfp0inymdsq4g8wp4bc"; depends=[data_table Rcpp RcppArmadillo seasonal]; };
   datoramar = derive2 { name="datoramar"; version="0.1.0"; sha256="0zq6vhq6dmsyagmqrmb85z6fy9qhwra3s3iasr3jgc4ryr009pml"; depends=[httr jsonlite tibble]; };
@@ -8681,7 +8840,7 @@ in with self; {
   dbMC = derive2 { name="dbMC"; version="1.0.0"; sha256="0gcgn3m10sx0naim206jkw7szl0mr7vbnkn25avvv9f8iy3y9vcv"; depends=[softImpute]; };
   dbWebForms = derive2 { name="dbWebForms"; version="0.1.0"; sha256="0diz5mh4fhwrwqa7jr70vzj2jks7h2n91v2hr1mvvlbc7rzd9yki"; depends=[data_table DBI html5 stringi]; };
   dbacf = derive2 { name="dbacf"; version="0.2.8"; sha256="03nrd7x2sxkyah8lpi5zawap7yhg6h2gdy0jws1jysw937l1kc50"; depends=[Matrix]; };
-  dbarts = derive2 { name="dbarts"; version="0.9-26"; sha256="1l751zj413xwn6qmvvdlrbx1h9vz0bvz81dqfnsn2xv47hrbp9dy"; depends=[]; };
+  dbarts = derive2 { name="dbarts"; version="0.9-28"; sha256="0f01mk39rb7afnymi9fbaikv7hbpx2jwbzp3dd87q7hr3kpb9r6j"; depends=[]; };
   dbcsp = derive2 { name="dbcsp"; version="0.0.2.1"; sha256="0faq63aqj4ddlfc5dpi8g3ngqidca6czicgvkzdyg4bj87s0kism"; depends=[caret geigen ggplot2 MASS Matrix parallelDist plyr TSdist zoo]; };
   dbd = derive2 { name="dbd"; version="0.0-22"; sha256="13qdm0y5dvc107xnv6663gbvmkw77150r073lp1jppf3gs8s587b"; depends=[]; };
   dbflobr = derive2 { name="dbflobr"; version="0.2.2"; sha256="04gh0xfdp077f3ppf8i101q17n2r711y47qnxb9nq5ksnf37s5jp"; depends=[blob chk clisymbols crayon DBI flobr glue rlang RSQLite]; };
@@ -8692,14 +8851,14 @@ in with self; {
   dbmss = derive2 { name="dbmss"; version="2.9-0"; sha256="16bmaq8wd7v6vqnycr670sajcyaplkw1g5w5m2ri7ch16ccpqk6j"; depends=[cubature ggplot2 Rcpp RcppParallel reshape2 rlang spatstat_explore spatstat_geom spatstat_random spatstat_utils tibble]; };
   dbnR = derive2 { name="dbnR"; version="0.7.8"; sha256="10lw8ax33l0q52pm07fi66fhm06n3yg48plgvz5cg14l98v7g7s5"; depends=[bnlearn data_table magrittr MASS R6 Rcpp]; };
   dbnlearn = derive2 { name="dbnlearn"; version="0.1.0"; sha256="0kmyiad7v96mnfi24d2pn3dqmk3g82sx348m1vhhqwijfnj53brb"; depends=[bnlearn bnviewer ggplot2]; };
-  dbparser = derive2 { name="dbparser"; version="2.0.2"; sha256="1zid7dnx1fsxs09sk76vywqqnhdaz53gh7r4i81abziisaa13i73"; depends=[dplyr progress purrr tibble XML]; };
+  dbparser = derive2 { name="dbparser"; version="2.0.3"; sha256="1v0yp81bgq9ihgjrx336zyscrhk84sc8rpmbj35sphyc0c0isncs"; depends=[dplyr progress purrr tibble XML]; };
   dbplot = derive2 { name="dbplot"; version="0.3.3"; sha256="1svizj9hcd417yii8ll9s3mnvdqpa5awy9xl71kbwpfcnpdzqf1r"; depends=[dplyr ggplot2 magrittr purrr rlang]; };
   dbplyr = derive2 { name="dbplyr"; version="2.5.0"; sha256="1zxw4ignzm2fzixsf6n80f44b9q7434vamy2xj4v31wlx3dmnixv"; depends=[blob cli DBI dplyr glue lifecycle magrittr pillar purrr R6 rlang tibble tidyr tidyselect vctrs withr]; };
   dbscan = derive2 { name="dbscan"; version="1.1-12"; sha256="1snfcf5jy3chh5nmvn7ashhlyv35nkajlfrlk9kzpy4jnfyv3y2n"; depends=[Rcpp]; };
   dbstats = derive2 { name="dbstats"; version="2.0.2"; sha256="1rnjgzil98rys9fa0jkamfqrkski3vd7wi59mqg8xk26xw0v5c96"; depends=[cluster pls]; };
-  dbx = derive2 { name="dbx"; version="0.3.1"; sha256="15ynl3w92h2bfgf5489qi0la8dkwlmp9hf64h230bvxvip9459hg"; depends=[DBI]; };
+  dbx = derive2 { name="dbx"; version="0.3.2"; sha256="0d5ha0syhrgfx157hkmyfdsxf57crjj28afdb2xxyindakplgp29"; depends=[DBI]; };
   dc3net = derive2 { name="dc3net"; version="1.2.0"; sha256="19ibsvbnq6y88vqvgkm31zrqwjhpml59d792bz0zkk50r1q5bnyr"; depends=[c3net igraph RedeR]; };
-  dcTensor = derive2 { name="dcTensor"; version="1.2.0"; sha256="0y2imnbgvbvbmqb1vmzyykjfzkh0ckiv5q7fp4zvi2ci0w9hf90n"; depends=[fields MASS nnTensor rTensor]; };
+  dcTensor = derive2 { name="dcTensor"; version="1.3.0"; sha256="1z62kz9558fj5nwp2nq6vh7ikbxbg8nm0w08y5p5dc0nzhcd4kxn"; depends=[fields MASS nnTensor rTensor]; };
   dccmidas = derive2 { name="dccmidas"; version="0.1.2"; sha256="0ws853yb669hki7wrfwnj7bd75xvcb63njn1iza8q58sa6bmg6vc"; depends=[maxLik Rcpp RcppArmadillo Rdpack roll rugarch rumidas xts zoo]; };
   dccpp = derive2 { name="dccpp"; version="0.1.0"; sha256="1j17rv9wklmxbxa6ri9vhl370jzhi00h7h8hz1ajzqf6v3b2lkvc"; depends=[Rcpp RcppArmadillo]; };
   dcifer = derive2 { name="dcifer"; version="1.2.1"; sha256="1pibkybr2v1qci2vqbz1sms01y81x0i4r2sq23c5xkgwnwccfy9r"; depends=[]; };
@@ -8707,7 +8866,7 @@ in with self; {
   dclust = derive2 { name="dclust"; version="0.1.0"; sha256="1icfx52v3g7kkkc11pw0xlrc8dlx5q3n2zbrd3fccmw17jzxqbg7"; depends=[openssl phylogram]; };
   dcm2 = derive2 { name="dcm2"; version="1.0.2"; sha256="1dxymql66sy0nfxqfh106cvz5r93ajpjr1w8amn03w0ciz4v5nqs"; depends=[dplyr glue magrittr modelr purrr Rcpp RcppArmadillo rlang stringr tibble tidyr]; };
   dcmle = derive2 { name="dcmle"; version="0.4-1"; sha256="1zh243ya02232z56i0y05l891685my6g9v6wal6z5c92s179g85p"; depends=[coda dclone lattice]; };
-  dcmodify = derive2 { name="dcmodify"; version="0.8.0"; sha256="1r4mfkf766hsr3qd60mmxy3841r8jc4d6wlb12cak4aanqisq7aj"; depends=[lumberjack settings validate yaml]; };
+  dcmodify = derive2 { name="dcmodify"; version="0.9.0"; sha256="080adcvlvpiha4vlxwnxsf657i0yjmpby5iyhabbqc5hzmwm3ar5"; depends=[lumberjack settings validate yaml]; };
   dcorVS = derive2 { name="dcorVS"; version="1.0"; sha256="1gawk22mv5ppbiqqm4k2pjjknsp7zxnnr0lk24l6phrvnszfaxlw"; depends=[dcov Rfast]; };
   dcortools = derive2 { name="dcortools"; version="0.1.6"; sha256="1qcblwcv2rwrl502hiv0l0r137sa4k0kx892k2w1chm40y5vri3b"; depends=[ggplot2 Hmisc pheatmap Rcpp RcppArmadillo RcppEigen Rdpack Rfast]; };
   dcov = derive2 { name="dcov"; version="0.1.1"; sha256="0c3a5dzpizsxlsh723pcd0d7n0mgfc9y35vrfhmskp3c1x639mh3"; depends=[Rcpp RcppArmadillo]; };
@@ -8716,16 +8875,17 @@ in with self; {
   ddalpha = derive2 { name="ddalpha"; version="1.3.15"; sha256="1vgyg1c2ir93nsbh4xlm774b6rhx14pyr069dpcl9vwcx2j989qc"; depends=[BH class geometry MASS Rcpp robustbase sfsmisc]; };
   ddc = derive2 { name="ddc"; version="1.0.1"; sha256="1l5ljfhhyqcj4s4247vndqrz6qfcygi014l59d4gpxym810iqr26"; depends=[dtw dtwclust magrittr]; };
   dde = derive2 { name="dde"; version="1.0.5"; sha256="1288zbhmh383b8z01yzblgs0lvq18vz4hzw63hjsaiaynqaj4hiw"; depends=[ring]; };
+  ddecompose = derive2 { name="ddecompose"; version="1.0.0"; sha256="1n0s2q6qb09jnhxismaabn00pzjjjy0dwdhz8hyacmby468y266z"; depends=[fastglm Formula ggplot2 Hmisc pbapply ranger rifreg sandwich]; };
   ddi = derive2 { name="ddi"; version="0.1.0"; sha256="0pnkylz7l6brx6i73wys637w811psxhnr39lcmkag41s6jcgabd5"; depends=[]; };
   ddiv = derive2 { name="ddiv"; version="0.1.1"; sha256="0xsn74z78znrm3rnnvdphp89sb0lik564ha3wv6n3ldrfh1van8y"; depends=[MASS qpdf segmented]; };
-  ddml = derive2 { name="ddml"; version="0.2.0"; sha256="07nbdx2qd4f7yrgq00djwfxil2qgnrgd4r5rrzyqcwbv21xz0ayw"; depends=[AER glmnet MASS Matrix nnls quadprog ranger xgboost]; };
+  ddml = derive2 { name="ddml"; version="0.2.1"; sha256="17v3yhgs440flyqvfhjapc03xvwnvg7c0kr8cphvnhx6nmwjsq53"; depends=[AER glmnet MASS Matrix nnls quadprog ranger xgboost]; };
   ddp = derive2 { name="ddp"; version="0.0.3"; sha256="03gszqzh73zq04hqa2zgxn4fkiyr1fbhx3byxsdfzmmji46f8qip"; depends=[]; };
   ddpca = derive2 { name="ddpca"; version="1.1"; sha256="1qsanid7sr2nc9pwzyz4cbjc1vg0rj255d3rnh1rb22agrgj2bc1"; depends=[MASS Matrix quantreg RSpectra]; };
   ddpcr = derive2 { name="ddpcr"; version="1.15.2"; sha256="1as25yc23n6jj87nccp7g2jrpvz6yxa7f6ba65g6ynvkzk57531b"; depends=[dplyr DT ggplot2 lazyeval magrittr mixtools plyr readr shiny shinydisconnect shinyjs tibble]; };
   ddplot = derive2 { name="ddplot"; version="0.0.1"; sha256="03zcnc6is4qdpz3krhhz820j0an6dr7562bnmzj787xf5parwq6r"; depends=[r2d3]; };
   ddsPLS = derive2 { name="ddsPLS"; version="1.2.1"; sha256="0l5dcpqs57bp6b6b718annnhilkv6n4imynylg0wimik27ipmfwl"; depends=[doParallel foreach RColorBrewer Rcpp RcppEigen shiny]; };
   ddst = derive2 { name="ddst"; version="1.4"; sha256="1y0immm337adkd2bjx8c5pf02w9wysv3gj26f4qf0jiba0f2wk8n"; depends=[evd orthopolynom]; };
-  ddtlcm = derive2 { name="ddtlcm"; version="0.1.1"; sha256="0ml423182xgxsdfzvl5xnyxp9ijmx5bkwvwdaqmfwk86x3994cbs"; depends=[ape BayesLogit data_table extraDistr ggplot2 ggpubr ggtext ggtree label_switching Matrix matrixStats phylobase poLCA R_utils Rdpack truncnorm]; };
+  ddtlcm = derive2 { name="ddtlcm"; version="0.2.1"; sha256="1xjpw5qx2wjq8y4ayg1d3scclsrn2bkmjk9gkff57gq2n0qlwnh0"; depends=[ape BayesLogit data_table extraDistr ggplot2 ggpubr ggtext ggtree label_switching Matrix matrixStats phylobase poLCA R_utils Rdpack testthat truncnorm]; };
   deBInfer = derive2 { name="deBInfer"; version="0.4.4"; sha256="1l4wim82n5q51c1f7193d3i22qrn9kfcsddyrn8izhlwsjb9q3kp"; depends=[coda deSolve MASS mvtnorm PBSddesolve plyr RColorBrewer truncdist]; };
   deBif = derive2 { name="deBif"; version="0.1.8"; sha256="0zy9pn6994bpbfjk4w52qvfckcilq5nz1v21bqc63grkz0lmlgzy"; depends=[deSolve rootSolve rstudioapi shiny shinydashboard shinydashboardPlus shinyjs]; };
   deFit = derive2 { name="deFit"; version="0.2.1"; sha256="0z4lc9s3wb7gab7cg1xr9gkggd2dxy8qbqqvbz1yxvnm86n2ai79"; depends=[deSolve ggplot2 R6]; };
@@ -8737,11 +8897,11 @@ in with self; {
   debar = derive2 { name="debar"; version="0.1.1"; sha256="0zx3rp0pnxbn57l6yafwzd66kvv6mfpr0alsp8mxhl2jl7c5f721"; depends=[ape aphid seqinr]; };
   debest = derive2 { name="debest"; version="0.1.0"; sha256="1kbz17q8xg8nbak0y4f6g9pj20q02a00ijvk1xmbsbgl4xmww0ip"; depends=[flexsurv survival]; };
   debkeepr = derive2 { name="debkeepr"; version="0.1.1"; sha256="1w38qz0qs26ba1c89z1c40n4rwif989gh7was7wwazr2s61wjaha"; depends=[cli dplyr magrittr rlang tibble vctrs zeallot]; };
-  debugme = derive2 { name="debugme"; version="1.1.0"; sha256="1c9sg55zvf10h8198jdnpamm6f66lzw3c3jnmdp9ls6na0j0xbjd"; depends=[crayon]; };
+  debugme = derive2 { name="debugme"; version="1.2.0"; sha256="16ghf60rj0l8ypm0hxjp23zxdi2ndq8ii74cilq61m107fnha9mj"; depends=[crayon]; };
   debugr = derive2 { name="debugr"; version="0.0.1"; sha256="0lfq0s0hibd00558vl3dmvrkzxjc7q62xr8sqzai0pv9a9lhixcn"; depends=[rprojroot rstudioapi]; };
   decido = derive2 { name="decido"; version="0.3.0"; sha256="14y3z5ys5y3kffgm0dk92rx4vd1mi9jvxn7pqvwi4jhyx7wx06pw"; depends=[Rcpp]; };
   decision = derive2 { name="decision"; version="0.1.0"; sha256="13d0yyg5zp7n3r92l0l1dsffxfph6vacrlzga9rz41l5pja72z6g"; depends=[]; };
-  decisionSupport = derive2 { name="decisionSupport"; version="1.113"; sha256="0gxhxjpn9nzn1s7xm9cy9g82b68g8dg6654dbj4qr4aj3cfk14w8"; depends=[assertthat chillR class dplyr fANCOVA ggplot2 ggstance magrittr msm mvtnorm nleqslv patchwork rriskDistributions stringr tidyr tidyselect]; };
+  decisionSupport = derive2 { name="decisionSupport"; version="1.114"; sha256="1vd18v0wi56qd8anhwvvwab98lgh3aj785f6c6nd41ifwp2phzm3"; depends=[assertthat chillR class dplyr fANCOVA ggplot2 magrittr msm mvtnorm nleqslv patchwork rriskDistributions stringr tidyr tidyselect]; };
   deckgl = derive2 { name="deckgl"; version="0.3.0"; sha256="0cjvmdiqknrq8mlqxmhkhcib40asdyl2bpllx8v1jz3h1d62zs04"; depends=[base64enc htmltools htmlwidgets jsonlite magrittr readr tibble yaml]; };
   declared = derive2 { name="declared"; version="0.24"; sha256="0zj5rvdj2jcy23nms5dhqjp9w4sd87r7cr4slh6qli15w75ryr50"; depends=[]; };
   decode = derive2 { name="decode"; version="1.2"; sha256="1qp0765gl3pgfdzjwj7icf3zminxxmrlw6gx3vj51y6c2y5ws4as"; depends=[]; };
@@ -8750,7 +8910,6 @@ in with self; {
   decomposedPSF = derive2 { name="decomposedPSF"; version="0.2"; sha256="12sb4zzvc29hvhlay97g84pn4saqyp16wckjrdgg4qqpc0rzrfz5"; depends=[forecast PSF Rlibeemd tseries]; };
   decompr = derive2 { name="decompr"; version="6.4.0"; sha256="0bsin2hlb8sacmkzsv4b2fqdh5b55b67lkm41icacqnvxrisnxqp"; depends=[matrixStats]; };
   decon = derive2 { name="decon"; version="1.3-4"; sha256="036cv56wf42q2p3d5h15hbrp5rc29xxy20qwv4k1qzhkq6hmw0qs"; depends=[]; };
-  deconstructSigs = derive2 { name="deconstructSigs"; version="1.8.0"; sha256="014x0nb23jb98666kaav2phkvmkr38pi38jv0dqd4jv7zp0gdf1a"; depends=[BSgenome BSgenome_Hsapiens_UCSC_hg19 GenomeInfoDb reshape2]; };
   deconvolveR = derive2 { name="deconvolveR"; version="1.2-1"; sha256="191bgncgwjhb13i27bf8072a0z3mkpjbbp06ys3nri0ggsv5r108"; depends=[]; };
   decor = derive2 { name="decor"; version="1.0.2"; sha256="1xki8vjn363v90x7a66apnzg43ngi7in9k678f62jls2h3rhqv1f"; depends=[tibble vctrs]; };
   decorators = derive2 { name="decorators"; version="0.3.0"; sha256="1y47ggfsfrbsm8z78j5ibxbm4lhp90h3qwhyh4qw5dhsd6jspsbd"; depends=[purrr]; };
@@ -8765,7 +8924,7 @@ in with self; {
   deepdep = derive2 { name="deepdep"; version="0.4.3"; sha256="1pz07zznlpqjkkpf5r1ik0shl7kj0vn4l5dmvs7ggc7k5n7ig3b2"; depends=[cranlogs httr jsonlite]; };
   deepdive = derive2 { name="deepdive"; version="1.0.4"; sha256="0q4jjq11bd52bx0vqjxsh0fz1b72pfy4gpj5p19z7p4czf4a46c6"; depends=[data_table fastDummies plyr rpart stringr treeClust]; };
   deepgmm = derive2 { name="deepgmm"; version="0.2.1"; sha256="0vwh8wgbva2a47b2yiiqjwq5qww2ckb4l66265sbp1lbis0g96li"; depends=[corpcor mclust mvtnorm]; };
-  deepgp = derive2 { name="deepgp"; version="1.1.1"; sha256="0w08mdr9cszmkm1382md0lklhnna95ah0kv6kzniv3ly3fvwin2f"; depends=[doParallel FNN foreach GpGp Matrix mvtnorm Rcpp RcppArmadillo]; };
+  deepgp = derive2 { name="deepgp"; version="1.1.2"; sha256="0anrc209bvi061y0f7ms5hyb2k6rgfp627w0800aw8gxhl4mli4b"; depends=[doParallel FNN foreach GpGp Matrix mvtnorm Rcpp RcppArmadillo]; };
   deeplr = derive2 { name="deeplr"; version="2.0.1"; sha256="0xzhycw3yylq6hvaba3dv2wpmfaj9z6v6mzli8r4dbbzzaaa8214"; depends=[httr purrr tibble tokenizers utf8]; };
   deepnet = derive2 { name="deepnet"; version="0.2.1"; sha256="0gnf50007sj28daaz2r1rp8mvz1xpc2901bxl4yb1v4s4rcx6rhg"; depends=[]; };
   deepredeff = derive2 { name="deepredeff"; version="0.1.1"; sha256="027dsmc3wmm61qc0vybn02c5dbnz5nwf80m9sywci4nhirz978ik"; depends=[Biostrings dplyr ggplot2 ggthemes keras magrittr purrr reticulate rlang seqinr tensorflow]; };
@@ -8784,7 +8943,7 @@ in with self; {
   degreenet = derive2 { name="degreenet"; version="1.3-5"; sha256="0mv3zp5yzyf19ph6pi550g1bd2vw1hds2nfj42hidjdzjj5wqm1j"; depends=[igraph network]; };
   degross = derive2 { name="degross"; version="0.9.0"; sha256="17n389a0k4jswgs908bcdhi410wpd1ljxh5izv35cldfq7dhjb3k"; depends=[cubicBsplines]; };
   dejaVu = derive2 { name="dejaVu"; version="0.3.0"; sha256="0l30m707zrp05d7hywlx443n02mflxqsampmcblj3fvcbyywc1fd"; depends=[MASS]; };
-  delayed = derive2 { name="delayed"; version="0.4.0"; sha256="0a00jwd4c69ba31xddl0gxjza6ydywlrgx21rm3bn8p247q5i37f"; depends=[BBmisc data_table future igraph progress R_oo R_utils R6 rlang rstackdeque uuid visNetwork]; };
+  delayed = derive2 { name="delayed"; version="0.5.0"; sha256="17v9gis82yn0fvp4apv906sz8j77cr5rlj4xxxa3vkfvh196a40l"; depends=[BBmisc data_table future igraph progress R_oo R_utils R6 rlang rstackdeque uuid visNetwork]; };
   deldir = derive2 { name="deldir"; version="2.0-4"; sha256="0ls69b9yynvsiy6madvzafcb0jdvxw66sin7cinpnw63israq66l"; depends=[]; };
   deltaPlotR = derive2 { name="deltaPlotR"; version="1.6"; sha256="15vjg3viyfrxvvh34p8i7j8p0vpg5628g8198adhi0i2ri3ygz9a"; depends=[MASS]; };
   deltaccd = derive2 { name="deltaccd"; version="1.0.2"; sha256="1iqyycjfmclr9y8gfj61naxwafjgmfwahyrc110qxzb239b501rw"; depends=[data_table doRNG foreach ggplot2 rlang scales statmod]; };
@@ -8800,11 +8959,13 @@ in with self; {
   demu = derive2 { name="demu"; version="0.3.0"; sha256="1mp5iz8mg0d6cyqi3f6fdhk6x5xxvng5bi13b7jnlp60wpjrq0il"; depends=[ClusterR fields Matrix Rcpp RcppArmadillo spam]; };
   dendRoAnalyst = derive2 { name="dendRoAnalyst"; version="0.1.5"; sha256="16pj1s9ph0gfk9n2kxwinvmxqzwzqlryn7ph15x8navxxwwbss9g"; depends=[dplyr forecast ggplot2 lubridate mgcv minpack_lm pspline readxl stringr tibble tidyr tidyverse zoo]; };
   dendextend = derive2 { name="dendextend"; version="1.17.1"; sha256="08g5z5qyrn2nkw1jw5520sval4jf9l6invqwvzsv8dkjkq8nxsc7"; depends=[ggplot2 magrittr viridis]; };
-  dendroTools = derive2 { name="dendroTools"; version="1.2.11"; sha256="0p1z7fqfak491djf09fvcixd67z78qsh7818xzqchq2njbrcxpcq"; depends=[boot brnn Cubist dplR dplyr ggplot2 knitr lubridate magrittr MLmetrics oce plotly psych randomForest reshape2 scales viridis]; };
+  dendroNetwork = derive2 { name="dendroNetwork"; version="0.5.4"; sha256="0jns6nfihb9wqz4sh8pbsy01kp0ml2x16jls4vqhixkbfpns4vkf"; depends=[doParallel dplR dplyr foreach igraph lifecycle RColorBrewer RCy3 reshape2 stringr tidyr]; };
+  dendroTools = derive2 { name="dendroTools"; version="1.2.13"; sha256="1dvisplghjyh607ns5xnwv1v8bg7i05sp4w96g6bmkwpgshaa6b0"; depends=[boot brnn Cubist dplR dplyr ggplot2 knitr lubridate magrittr MLmetrics oce plotly psych randomForest reshape2 scales viridis]; };
   dendroextras = derive2 { name="dendroextras"; version="0.2.3"; sha256="0hb7crbgsnbcwvbk05iz5ik45n7zgysmwjj6xc46131yd8l0i1qx"; depends=[]; };
   dendrometry = derive2 { name="dendrometry"; version="0.0.2"; sha256="0zxavg34mmxkl5i5mi3x0g1m8pd4f9vc70906iazmmvimvvhp22c"; depends=[]; };
   dendsort = derive2 { name="dendsort"; version="0.3.4"; sha256="0rs7y471wrhkgibxdmfh5xhp3pa004rrlm2w08b6qli5gq4im5d2"; depends=[]; };
   denguedatahub = derive2 { name="denguedatahub"; version="1.0.4"; sha256="0h7w7qnvh7cq9v6m9axmip0nkbas3sdhccq5h5n4yny5r1jilbq4"; depends=[dplyr rlang]; };
+  denim = derive2 { name="denim"; version="1.0.0"; sha256="1janjmhfz0vgrmvw0plncxlg7y1sd9578arpjkaivqgqwbkhz4r1"; depends=[Rcpp testthat viridisLite]; };
   denoiSeq = derive2 { name="denoiSeq"; version="0.1.1"; sha256="18w69gxbnazg5k8bzi76slcqxnbfmrndp548zazz8bpxz3jns699"; depends=[]; };
   denoiseR = derive2 { name="denoiseR"; version="1.0.2"; sha256="1q5kxiwfkrf2k0gpidzhl4hyzyjcm33rwlw4dan9nkx1181naw9l"; depends=[FactoMineR irlba Matrix]; };
   denovolyzeR = derive2 { name="denovolyzeR"; version="0.2.0"; sha256="03ya5clzqp12lfhw073ri0pwgxn53a6pvnais317a8bv1yinxspb"; depends=[dplyr reshape2]; };
@@ -8822,7 +8983,7 @@ in with self; {
   depigner = derive2 { name="depigner"; version="0.9.1"; sha256="0vzrdw4rhrwiyc4g4ancfd43h56b72lkvabqdwdsg54hjm35c1ky"; depends=[desc dplyr fs ggplot2 Hmisc magrittr progress purrr readr rlang rms rprojroot stringr telegram_bot tibble tidyr usethis]; };
   depmix = derive2 { name="depmix"; version="0.9.16"; sha256="1vi9fi131ni34z9p3x6pdp6y9v0y0nx71zg1q8898frhqwbwhd9c"; depends=[MASS]; };
   depmixS4 = derive2 { name="depmixS4"; version="1.5-0"; sha256="1pacvhw5m4fsk3ysbal50fdqbvlaz8ywyqp6bn1wh42wipqbb2i8"; depends=[MASS nlme nnet Rsolnp]; };
-  deps = derive2 { name="deps"; version="0.2.0"; sha256="0fq5zjlcvd34k7mn03xxw39k1dy47923n27racqdc8nipcsrm0wq"; depends=[jsonlite remotes renv]; };
+  deps = derive2 { name="deps"; version="0.3.0"; sha256="1v274l8gs5by7vzgcsdsf8m3m9gkwdmw6dqvrmjx2q9j40i7wf69"; depends=[jsonlite remotes renv]; };
   depth_plot = derive2 { name="depth.plot"; version="0.1"; sha256="0zjg9iyqmcnkvwc9w2j7lmk3k9nsg6n8m6vq5x44d1bp4g2gr6jv"; depends=[mvtnorm]; };
   depthTools = derive2 { name="depthTools"; version="0.7"; sha256="00pn4ccsg1hjv83xqk4g0g24cz2a87shlbg8kd2dri4dcagzifg0"; depends=[]; };
   derivmkts = derive2 { name="derivmkts"; version="0.2.5"; sha256="0zjdpjd7qa7zg0dyyq1y4rskk8bi2jpsxzrdg43lnsyrxg99q1n6"; depends=[mnormt]; };
@@ -8866,7 +9027,7 @@ in with self; {
   devRate = derive2 { name="devRate"; version="0.2.4"; sha256="06060wxji3mfwq6c58gmb07mz9sk9d5ls9d152vywjnz20ndpscd"; depends=[]; };
   devoid = derive2 { name="devoid"; version="0.1.2"; sha256="1hdqww5al3wv3jncfj8zqwypv487hc4pdb1d4f1c3w68fp0b1zni"; depends=[]; };
   devtools = derive2 { name="devtools"; version="2.4.5"; sha256="0jwh14clyj5flygpmifk01avs7mbnj2s1686pxzfrkcshfyhw5iq"; depends=[cli desc ellipsis fs lifecycle memoise miniUI pkgbuild pkgdown pkgload profvis rcmdcheck remotes rlang roxygen2 rversions sessioninfo testthat urlchecker usethis withr]; };
-  dexter = derive2 { name="dexter"; version="1.4.0"; sha256="1dx9wvhvbrh0l8jrv02jmwz054r3nvaz4cz81m3iqviydi3hcbf6"; depends=[BH DBI dplyr dqrng MASS Rcpp RcppArmadillo rlang RSQLite sitmo tidyr]; };
+  dexter = derive2 { name="dexter"; version="1.4.2"; sha256="196c12kmp5xjhgywr26p7k78p9mvpzz74rckfq88xgx9j012rwl7"; depends=[BH DBI dplyr dqrng MASS Rcpp RcppArmadillo rlang RSQLite sitmo tidyr]; };
   dexterMST = derive2 { name="dexterMST"; version="0.9.6"; sha256="073xx30gavig6nhi6ppll7jdgf7yvci8nv6pyxcy9vl177l1k62b"; depends=[crayon DBI dexter dplyr igraph Rcpp RcppArmadillo rlang RSQLite tidyr]; };
   dextergui = derive2 { name="dextergui"; version="0.2.6"; sha256="10v3djwani0zd27cjlf7lch7rfipnmb2p5wa7n2y5qxjqxli9z3x"; depends=[Cairo DBI dexter dplyr DT ggExtra ggplot2 ggridges htmltools htmlwidgets jsonlite networkD3 RCurl readODS readxl rlang shiny shinyBS shinyFiles shinyjs tibble tidyr writexl]; };
   df2yaml = derive2 { name="df2yaml"; version="0.3.1"; sha256="1ni61pf7sjwvgbfvwy91n6fbs6aa5vviq0xy6jsgddbwrk9diigj"; depends=[dplyr magrittr rlang rrapply tibble yaml]; };
@@ -8879,7 +9040,7 @@ in with self; {
   dfidx = derive2 { name="dfidx"; version="0.0-5"; sha256="02ka119nxn9258hz51m603s0gwmdi8a98z0j9lx7fqjxnd01jlip"; depends=[dplyr Formula]; };
   dfmeta = derive2 { name="dfmeta"; version="1.0.0"; sha256="0ca48adfhaxac33jmxbynlyg3ak9l5mmjhlr69n4hnz6325gn9vb"; depends=[data_table ggplot2 lme4 plyr]; };
   dfmirroR = derive2 { name="dfmirroR"; version="2.1.0"; sha256="0npd9yllsjbb49mqdwaw75lbgx4lr8qgga70yybd6c16wdfkg396"; depends=[e1071 fitdistrplus MASS]; };
-  dfms = derive2 { name="dfms"; version="0.2.1"; sha256="10vxjcwznxlrl73jdpmnw9ihjxlg7az96s11qadxyxh3v7gs85q2"; depends=[collapse Rcpp RcppArmadillo]; };
+  dfms = derive2 { name="dfms"; version="0.2.2"; sha256="0p3fbvmrdrsiz3dy23i5fjldc7l5hwfh7v73sg8dkhvxxnn1ciw4"; depends=[collapse Rcpp RcppArmadillo]; };
   dfmta = derive2 { name="dfmta"; version="1.7-3"; sha256="0n9056vd75vqxddagj4k23znvwv58db306xm4vv9sq044jc7kkg6"; depends=[BH Rcpp RcppArmadillo RcppProgress]; };
   dfoliatR = derive2 { name="dfoliatR"; version="0.3.0"; sha256="0gl1acd5z67c2wkb806myr0ccm87waxdrnnjdq2wi8zndbc30j74"; depends=[dplR dplyr forcats ggplot2 ggpubr glue magrittr purrr rlang tibble tidyr]; };
   dfoptim = derive2 { name="dfoptim"; version="2023.1.0"; sha256="0c2ws249n8ib7fx8vp32l2hswicjxsds7xm1f4gcfky9cvcacdn4"; depends=[]; };
@@ -8887,7 +9048,7 @@ in with self; {
   dfped = derive2 { name="dfped"; version="1.1"; sha256="11ffsah14igba276m9d3cla0kgb3isizm5d7j1iqcd0wq23il7hq"; depends=[ggplot2 rstan]; };
   dfphase1 = derive2 { name="dfphase1"; version="1.2.0"; sha256="0a9cxdc81rib84sgg5mpf28nhcv1g83kvnr7rin3djyv60ccrq8x"; depends=[lattice Rcpp robustbase]; };
   dfrr = derive2 { name="dfrr"; version="0.1.5"; sha256="0kgsi2jysv0hpdvmv1fng41ar7p3pgzgf1vv0dcm954jdrl2dz6d"; depends=[fda ggplot2 MASS plotly tmvtnorm]; };
-  dfsaneacc = derive2 { name="dfsaneacc"; version="1.0.2"; sha256="05svhlssm1jy9skk0cn6qqy2wnqa9wjrfxarhzg1jhdclz7gsxdq"; depends=[]; };
+  dfsaneacc = derive2 { name="dfsaneacc"; version="1.0.3"; sha256="1sicnpir73vvg470q1mcfd1p06vgfr6z3kfb5mnipr5z72c9gd4w"; depends=[]; };
   dfvad = derive2 { name="dfvad"; version="0.3.6"; sha256="1g232y0zmgpgx6phfsx67548dvqiwa4bc8q9cvpgmkdfaskczcfx"; depends=[]; };
   dga = derive2 { name="dga"; version="2.0.1"; sha256="1q860hzxrbkpmnphdysx4wk1b46wjll8sw7xjsy1lxcaz9hwcnjk"; depends=[chron Rcpp RcppArmadillo]; };
   dggridR = derive2 { name="dggridR"; version="3.0.0"; sha256="1915lc81yw6ns02fi37xjqd2zbdzhdsvqqb6c9w4b6i0665yb9ja"; depends=[dplyr Rcpp rlang sf sp]; };
@@ -8899,7 +9060,6 @@ in with self; {
   dhga = derive2 { name="dhga"; version="0.1"; sha256="1n48irj53g3kn451ak5ly50wxdn7qmzi2kib8clsvcx2n7mvpgcm"; depends=[VennDiagram]; };
   dhglm = derive2 { name="dhglm"; version="2.0"; sha256="1918wkylldcdxjggly3a4yh4cv2nkig5bjfx0j79av633hahlg92"; depends=[boot car MASS Matrix sandwich]; };
   dhh = derive2 { name="dhh"; version="0.0.1"; sha256="00kg2x1was85aq2vr15bak8y5p4mymbs8pbriijlbw64401djmb0"; depends=[]; };
-  dhis2r = derive2 { name="dhis2r"; version="0.1.1"; sha256="019qrkcssxmvmhla3vfjq9m0vwv9j9h7njr2sjpmk4cqcdxvcbjn"; depends=[attempt curl dplyr httr2 R6]; };
   dhlabR = derive2 { name="dhlabR"; version="1.0.2"; sha256="1hqs31ddh82mx8zw8lyzcdl3x5dgpx88shjk8frzib6i4cgq48s8"; depends=[dplyr httr jsonlite purrr tibble zoo]; };
   dhsage = derive2 { name="dhsage"; version="0.1.0"; sha256="1p239fsay49rvakxgkgnghra7p4nzyvfird8mc4i4lz4w133x1jd"; depends=[]; };
   di = derive2 { name="di"; version="1.1.4"; sha256="1w2gjhyi410z98d8wnhbd69jxm69nz4pmnr4fb09i70a90f53s25"; depends=[scales]; };
@@ -8909,7 +9069,7 @@ in with self; {
   diagonals = derive2 { name="diagonals"; version="6.4.0"; sha256="1c5pf23bcq47m9n2s5m5bkcksnifz9g06xc9149163i8mqhzia7l"; depends=[]; };
   diagram = derive2 { name="diagram"; version="1.6.5"; sha256="1r3lyl0h7mk9cfg8smr3jydfkjdawaphnxibkxfjqa7029vkxh79"; depends=[shape]; };
   dialr = derive2 { name="dialr"; version="0.4.2"; sha256="16lpb93shwr0gw7pk3q629kgsvh9csgxyy344m9za7qx9m2vjnnb"; depends=[dialrjars rJava]; };
-  dialrjars = derive2 { name="dialrjars"; version="8.13.25"; sha256="1dy7s4ssa1xkw6m663h0hf79jf09cd98r009cp6s3gggpylfi7bm"; depends=[rJava]; };
+  dialrjars = derive2 { name="dialrjars"; version="8.13.36"; sha256="1r02wimq3bnb28dz65jm0kmkkkd02k0a4d50cjn5n54ck8lf9hsc"; depends=[rJava]; };
   dials = derive2 { name="dials"; version="1.2.1"; sha256="0xrvvz4pkzmjsizjqfcvpn6f1cl9yp56lyc2iw8vcvwa18gb6szf"; depends=[cli DiceDesign dplyr glue hardhat lifecycle pillar purrr rlang scales tibble vctrs withr]; };
   diaplt = derive2 { name="diaplt"; version="1.4.0"; sha256="103hq13ql8xs1zb90is2r1lanj5vpvz9rk315zvbd8am00fshc9n"; depends=[]; };
   diathor = derive2 { name="diathor"; version="0.1.0"; sha256="0nbqjaxb2fzcg9w67nbrszwv9swr1kjmg4dximfc8qdya1kmv8z9"; depends=[data_table ggplot2 purrr stringdist stringr tibble tidyr vegan]; };
@@ -8923,7 +9083,7 @@ in with self; {
   did2s = derive2 { name="did2s"; version="1.0.2"; sha256="0iyz6z4w2im22rvbpabql2w1cncv0pnrh0hp7agf0pazcpzk2jh6"; depends=[boot broom data_table did didimputation fixest ggplot2 Matrix MatrixExtra rlang SparseM staggered]; };
   didimputation = derive2 { name="didimputation"; version="0.3.0"; sha256="122z473jkf5jb66s2g7vdqi0q56v8chz2dpl61qkcgqhv4hbh1q3"; depends=[broom data_table dplyr fixest glue magrittr Matrix purrr Rcpp RcppArmadillo stringr tidyr]; };
   didrooRFM = derive2 { name="didrooRFM"; version="1.0.0"; sha256="12clfnbm56jwldw0afb0nb0argnd97mx7369jiywhxy0p4xqibqq"; depends=[dplyr]; };
-  diemr = derive2 { name="diemr"; version="1.2.2"; sha256="1an07y6sbwjhz0xkq2qdxzyb57nw4dgcgj8rv8qhxfsd6rw11shp"; depends=[vcfR zoo]; };
+  diemr = derive2 { name="diemr"; version="1.3"; sha256="1abvk6hk3vnfdd4yif0n1ngw68h32r001a0v6xi4n9qi72g82p9j"; depends=[vcfR zoo]; };
   dietr = derive2 { name="dietr"; version="1.1.4"; sha256="0l0pf55xhfzk7il7cvcasf6gi8nvcckygvryhfqldyq7zmr1pgyh"; depends=[rfishbase]; };
   diezeit = derive2 { name="diezeit"; version="0.1-0"; sha256="0rq1k08byvqn99wpql7drnrcxlzcqrcxixh7bczbc8dv1hhsgk9i"; depends=[brew httr jsonlite]; };
   difNLR = derive2 { name="difNLR"; version="1.4.2-1"; sha256="1wrvsjbvvqwpv7cwc445n7l4ly8gvj8hyd66k02ib8r5854zn192"; depends=[calculus ggplot2 msm nnet plyr VGAM]; };
@@ -8931,7 +9091,7 @@ in with self; {
   difconet = derive2 { name="difconet"; version="1.0-4"; sha256="0cjadi4mnpfmy18vyp0dw55mnhs0zddf51w59gvq6gszk145z3bq"; depends=[data_table gplots mvtnorm stringr]; };
   diffEnrich = derive2 { name="diffEnrich"; version="0.1.2"; sha256="0fa0v24ir8an82mx38489zavqfya3130q9z52dmm62lnf7pvkvzl"; depends=[dplyr ggnewscale ggplot2 here reshape2 rlang stringr]; };
   diffIRT = derive2 { name="diffIRT"; version="1.5"; sha256="0kip6wz9l9q80qsqwf32pwz7d9vqin6dgfwf0nxlrlzf8xjsxgim"; depends=[statmod]; };
-  diffcor = derive2 { name="diffcor"; version="0.8.2"; sha256="0jpvrdahnpsm5h9qmnz440jx7ja59b164hfp9nlg44yxffv7dh2r"; depends=[MASS]; };
+  diffcor = derive2 { name="diffcor"; version="0.8.3"; sha256="0r5hc058h59hz249dx2nf91i45ldjilfrq1a2c4vyp9jvi12qpj5"; depends=[MASS]; };
   diffdf = derive2 { name="diffdf"; version="1.0.4"; sha256="03cr0gvspchdj49kiggsm6i9h5d9z07aswggj4n46lnyz52ihivj"; depends=[tibble]; };
   diffdfs = derive2 { name="diffdfs"; version="0.9.0"; sha256="1b61wx9fy7a4rb6jh1cvayf1w1far74pgcliqyk9pzn06nlqylfj"; depends=[arrow dplyr janitor rlang]; };
   diffeR = derive2 { name="diffeR"; version="0.0-8"; sha256="0l2pm4kh6yq3h3v27a5r28c0724g89pglaxd14f14cdxk51hznqx"; depends=[ggplot2 raster rlang terra tidyr tidyselect]; };
@@ -8943,19 +9103,19 @@ in with self; {
   diffpriv = derive2 { name="diffpriv"; version="0.4.2"; sha256="12q2v93369bshid83rsy1csbr9ay6rfpd8zdxm12zi7py3f9sjs8"; depends=[gsl]; };
   diffr = derive2 { name="diffr"; version="0.1"; sha256="0ydwnpyzirynffsnvip667y0jqzy7yfqlfpqhb38xvmd9rmwfbp8"; depends=[htmlwidgets]; };
   diffudist = derive2 { name="diffudist"; version="1.0.1"; sha256="0s8k949l7fvdy0c1zlrk4zr5dnxksq67spwg8mpdsyc2xchh7b5c"; depends=[expm ggdendro ggplot2 igraph Matrix RColorBrewer Rcpp RcppEigen reshape2 rlang viridis]; };
-  diffusion = derive2 { name="diffusion"; version="0.2.7"; sha256="1j9s9vw5sc4k956bk4yp3bf4fnp7lhhkwcvlzvsh1w4dyaj8l35h"; depends=[dfoptim nloptr systemfit]; };
+  diffusion = derive2 { name="diffusion"; version="0.4.0"; sha256="1bgswz2ichzgdb3ckw0sgxkqv3pf1lpzkjb3ly389ln03q0iwnwq"; depends=[nloptr optimx systemfit]; };
   diffusionMap = derive2 { name="diffusionMap"; version="1.2.0"; sha256="1rvk7069brlm1s9kqj4c31mwwr3mw4hmhay95cjjjfmw5xclff2j"; depends=[igraph Matrix scatterplot3d]; };
   diffval = derive2 { name="diffval"; version="1.1.0"; sha256="1qhbby9zfckkkxbpvbnym3i1pfapgrjf0m61fly9v7k50j07d4cd"; depends=[]; };
-  diffviewer = derive2 { name="diffviewer"; version="0.1.1"; sha256="01phkaaa0zylyi23siwam18i1ggfgq2m66d69lnz9ips1yh12yca"; depends=[htmlwidgets jsonlite]; };
+  diffviewer = derive2 { name="diffviewer"; version="0.1.2"; sha256="1rwcqmc9h7ggxfkc57wklz5vqqanlr0mff7f2613gkh9pci5nadg"; depends=[htmlwidgets jsonlite]; };
   digest = derive2 { name="digest"; version="0.6.35"; sha256="07vqv2mnf8ppan2a3gydh4yr84n8489hypfas1rlk7050nxkycyc"; depends=[]; };
-  digiRhythm = derive2 { name="digiRhythm"; version="1.1"; sha256="0wdlwgfr9rppwssh3xpsj78rqan1lsjw3nx5f855w2hh873sakwb"; depends=[crayon dplyr ggplot2 lubridate magrittr pracma readr stringr tidyr xts zoo]; };
+  digiRhythm = derive2 { name="digiRhythm"; version="1.2"; sha256="0bchk3vqdvn6hnw6cglsr7i7nvcdk5c4kyw4jainq08i7zc4jwsv"; depends=[crayon dplyr ggplot2 lubridate magrittr pracma readr stringr tidyr xts zoo]; };
   digitTests = derive2 { name="digitTests"; version="0.1.2"; sha256="0giz0zr8rcvfv36qmqy6fpamjcansrq4bs3znnq0g97iprj0x3i5"; depends=[]; };
   digitalDLSorteR = derive2 { name="digitalDLSorteR"; version="1.0.1"; sha256="05wcvv68p55hxf9babr19528khky1pmgfbvm502qhk7ba1arzivf"; depends=[dplyr ggplot2 ggpubr grr gtools keras Matrix pbapply reshape2 reticulate rlang S4Vectors scran scuttle SingleCellExperiment SummarizedExperiment tensorflow tidyr zinbwave]; };
   digitalPCR = derive2 { name="digitalPCR"; version="1.1.0"; sha256="0hwqq84yr1hnvf4bygc5425887dhqjjjyy1ils71iavcal04s8pb"; depends=[]; };
   digitize = derive2 { name="digitize"; version="0.0.4"; sha256="1qw4x4z9vrs79sd9b2daw668nc6nvjl4qhayfqmd87yxa2ydv6x0"; depends=[readbitmap]; };
-  dilp = derive2 { name="dilp"; version="1.0.0"; sha256="0xm4qfzgxv2r41f4z718cnfdpijnvbsq2w7cc0i5w3ndj3x63sk7"; depends=[dplyr ggplot2 ggrepel magrittr rlang stringr tidyr vegan]; };
+  dilp = derive2 { name="dilp"; version="1.1.0"; sha256="0pvd7xsg9g772n6m8h88rigkmnivmqrqj33ar1y2iq2z3k4r93jz"; depends=[dplyr ggplot2 ggrepel magrittr rlang stringr tidyr vegan]; };
   dimRed = derive2 { name="dimRed"; version="0.2.6"; sha256="05zlkf6hjdqqr1sgw7ww9f17vjnsiqfaj9kvdvi146phh53v2zls"; depends=[DRR magrittr]; };
-  dimensio = derive2 { name="dimensio"; version="0.6.0"; sha256="1g81ywl3i0wa86w2d8489hlxavnimd8jrry8ipmf67vm73sxl2p8"; depends=[arkhe]; };
+  dimensio = derive2 { name="dimensio"; version="0.8.0"; sha256="0xrlik2f08j76q542dgzwi597qavync7qnv2nzlk2blgcgd9i8g0"; depends=[arkhe]; };
   dimensionsR = derive2 { name="dimensionsR"; version="0.0.3"; sha256="1bic5ynqapz4mh3bcv58r00ip5s04mc8n58yhlkbrnbcqyqaca4f"; depends=[httr jsonlite]; };
   dina = derive2 { name="dina"; version="2.0.0"; sha256="1sq7998xc5qhvd8clc8r32ch7axinh2a2dc7i1w2p148wv130yhd"; depends=[Rcpp RcppArmadillo rgen simcdm]; };
   dinamic = derive2 { name="dinamic"; version="1.0.1"; sha256="01w8fzjpvz4mwhnqhjjixy7q60hdlpqcm33i98qnighkry024ysm"; depends=[]; };
@@ -8965,7 +9125,7 @@ in with self; {
   dipm = derive2 { name="dipm"; version="1.9"; sha256="1hzcwjnjrhd1s31w8pnyhpfz519jvj820jyq1rdkq8qllny5jbrk"; depends=[ggplot2 partykit survival]; };
   diproperm = derive2 { name="diproperm"; version="0.2.0"; sha256="0qh8zzpbsjfwh8q833n5pchb6dakqdza77ab7vmsidfbzndka11m"; depends=[dplyr DWDLargeR e1071 ggplot2 gridExtra lemon Matrix sampling SparseM usethis]; };
   dipsaus = derive2 { name="dipsaus"; version="0.2.8"; sha256="1gmb5jlvxwhj2ryqgvw8mfq30h414cgsa9jf6psz4qrr5dssh98l"; depends=[base64enc cli digest fastmap future future_apply jsonlite progressr R6 Rcpp rlang rstudioapi shiny stringr]; };
-  diptest = derive2 { name="diptest"; version="0.77-0"; sha256="0cnaz1akl86vg5p0g4yl4r66407dxssfki130rrwxpbbbqakbj63"; depends=[]; };
+  diptest = derive2 { name="diptest"; version="0.77-1"; sha256="04r8c6xy5vympxaxmgnjib4pqh97f9k6b43i66qhzkl3yh0awki2"; depends=[]; };
   dipw = derive2 { name="dipw"; version="0.1.0"; sha256="0nxjwiffi1ivafzha3c35kjk36ai7na0nbfl6x3gpsi2km7b84nd"; depends=[glmnet Matrix Rmosek]; };
   directPA = derive2 { name="directPA"; version="1.5.1"; sha256="0q6g18rwz5bfg73f144lzfp0apc4jf2gibh8h3vci0fnmwfvs7gz"; depends=[calibrate plotly]; };
   directlabels = derive2 { name="directlabels"; version="2024.1.21"; sha256="1zmnyqipiv6gxqi2ix5jzbql53p3kjv76l76kj7gv1llzy2a8fxv"; depends=[quadprog]; };
@@ -8976,6 +9136,7 @@ in with self; {
   dirttee = derive2 { name="dirttee"; version="1.0.2"; sha256="1kmchjvm5x3gsvq2dqxr4di2l607j1ivsm75zwggaiwi8yjz9s4c"; depends=[expectreg formula_tools MASS Matrix mgcv nloptr provenance rlang survival]; };
   disaggR = derive2 { name="disaggR"; version="1.0.5.2"; sha256="11lj0x7mq3lmsg03anyk3jnkl0calgipyar2d76rb2x13b33v3kd"; depends=[RColorBrewer]; };
   disaggregation = derive2 { name="disaggregation"; version="0.3.0"; sha256="052l1bky89a9cb6bh22lcksijbri9wdv3pw4wh51c7a8ah9zdqbr"; depends=[cowplot dplyr fmesher ggplot2 Matrix RcppEigen sf sparseMVN splancs terra tidyterra TMB]; };
+  disastr_api = derive2 { name="disastr.api"; version="1.0.6"; sha256="08yf0i94lrs25ffy9g6md8mzxcq9s3ywcw0ryvfddi25ddym6jxy"; depends=[httr jsonlite]; };
   disbayes = derive2 { name="disbayes"; version="1.1.0"; sha256="0dzgs048pwpl59fpnvqdra001xkwllxpkaxanwdbmzc8l1xmrwb2"; depends=[BH dplyr generics ggplot2 loo magrittr matrixStats mgcv Rcpp RcppEigen RcppParallel rstan SHELF StanHeaders tibble tidyr]; };
   discAUC = derive2 { name="discAUC"; version="1.0.0"; sha256="1lw4ikrgb0w88k7gjyjv3qq0xy4h588rq7sgqk1w6zhv3qr8k34z"; depends=[dplyr glue rlang tibble]; };
   discFA = derive2 { name="discFA"; version="1.0.1"; sha256="0z455pymg48j5z8g4z6bpv8qrrwxj6gfw2p2135dpvl37jpgha42"; depends=[VGAM]; };
@@ -8991,8 +9152,6 @@ in with self; {
   discourseGT = derive2 { name="discourseGT"; version="1.2.0"; sha256="00s7bcwc5mdra5wwf3wac6s0bj2n6ryqfx7bv2zji6fp0h4ya4wc"; depends=[dplyr GGally ggplot2 ggrepel igraph network]; };
   discoveR = derive2 { name="discoveR"; version="3.1.2"; sha256="1smy2bzzqc4nvrd4qj2sq4d1f0pvbm4nixxh8xpy22lwwa8pkd24"; depends=[cluster colourpicker config DT echarts4r FactoMineR ggdendro ggplot2 golem htmltools htmlwidgets loadeR plotly rlang shiny shinyAce shinycustomloader shinydashboard shinydashboardPlus shinyjs]; };
   discoverableresearch = derive2 { name="discoverableresearch"; version="0.0.1"; sha256="0gw9fpmsqj1cj2qr7hqr86j28kjn3qfykdkkxrazj3dnv981xhhy"; depends=[dplyr magrittr ngram readr stopwords stringdist stringi synthesisr tm]; };
-  discreteRV = derive2 { name="discreteRV"; version="1.2.2"; sha256="1lhf67cccr96zl3j1sysh2bv0pbgvkbgjdzm35fvrdm7k74ypjsi"; depends=[MASS plyr]; };
-  discretecdAlgorithm = derive2 { name="discretecdAlgorithm"; version="0.0.7"; sha256="01x3qfjj7dwv0m9q8zdhfrpbj9ys9y5p7d3z8ywjrqy4jw88svjs"; depends=[igraph Rcpp RcppEigen sparsebnUtils]; };
   discretefit = derive2 { name="discretefit"; version="0.1.2"; sha256="0xyv3lff6xmz9q1k2lprll68fw9ckqhgl1z87pd9rm0ldy969m9p"; depends=[Rcpp]; };
   discretization = derive2 { name="discretization"; version="1.0-1.1"; sha256="0jkxi0rirzi3dc3886b97sqwmkrkp25mq6avzp58iqy1w58likpk"; depends=[]; };
   discrim = derive2 { name="discrim"; version="1.0.1"; sha256="098021yq1bdqd0hnpv3lh4w7zna2v0kn4pbsffgbkigg0qi8cgm0"; depends=[dials parsnip rlang tibble withr]; };
@@ -9000,7 +9159,7 @@ in with self; {
   discursive = derive2 { name="discursive"; version="0.1.1"; sha256="14wn01p6vx1y1aprhz4r8y9dmvfxslif37nx854xnx6ncnihag57"; depends=[SnowballC stm stringr tm]; };
   disdat = derive2 { name="disdat"; version="1.0-1"; sha256="1m22pichm603gn9h94vx0kmds28krlp9ax1yrsfwx12rqchcdhk7"; depends=[]; };
   diseasemapping = derive2 { name="diseasemapping"; version="2.0.6"; sha256="1qjzyicz9wg63vqkkxpiqj991sirkpgax6cl9b6hr939rf2axs8j"; depends=[terra]; };
-  diseasystore = derive2 { name="diseasystore"; version="0.2.0"; sha256="0z4djql08iy9sf6bbcaj79yja2rc0df4lyhqsxvgl1mcbzy816gg"; depends=[checkmate DBI dbplyr dplyr glue ISOweek lintr lubridate purrr R6 readr rlang SCDB stringr tidyr tidyselect zoo]; };
+  diseasystore = derive2 { name="diseasystore"; version="0.2.1"; sha256="17ypayb3bnan6ar6yv3n1l56yb3wzxpj7vc1fzbkxg1pgqrm43jg"; depends=[checkmate DBI dbplyr dplyr glue ISOweek jsonlite lubridate purrr R6 readr rlang SCDB stringr tidyr tidyselect zoo]; };
   disk_frame = derive2 { name="disk.frame"; version="0.8.3"; sha256="0mkzvxbjr9iw2bmnw4s5s7glly1nnf4j83y6yzw5vg1gwqghynky"; depends=[arrow benchmarkme bigreadr bit64 crayon data_table dplyr fs fst future future_apply globals glue jsonlite pryr purrr Rcpp rlang stringr]; };
   dismo = derive2 { name="dismo"; version="1.3-14"; sha256="1msc75xnc9lbnn8pivd5j4jvb1b9p3xgybfm2ak2mpb2aplz5837"; depends=[raster Rcpp sp terra]; };
   disordR = derive2 { name="disordR"; version="0.9-8.2"; sha256="07ydnyifqdsan0kp74mlxaviwj4ccnsh77z36gsh2cpyhda2la8d"; depends=[digest Matrix]; };
@@ -9010,7 +9169,7 @@ in with self; {
   dispmod = derive2 { name="dispmod"; version="1.2"; sha256="16r6is0pchzc9mxpz0c44f72j76vsh3j9damalcxajrha06dkdq4"; depends=[]; };
   disposables = derive2 { name="disposables"; version="1.0.3"; sha256="0q5wacjclspn2fh7z1pg2l67ll51n75wck5h2fdq2vxy3qn3vwis"; depends=[]; };
   dispositionEffect = derive2 { name="dispositionEffect"; version="1.0.1"; sha256="17rj63jb8f3a00sakrsyw13syl6p54pbkjxgxpsyi8yhc690yfrl"; depends=[dplyr lubridate magrittr progress purrr]; };
-  disprofas = derive2 { name="disprofas"; version="0.1.3"; sha256="16gbd9algrs6pqid8k96p9r9pzfy337jv506alnajvwirs59sldd"; depends=[boot ggplot2]; };
+  disprofas = derive2 { name="disprofas"; version="0.2.0"; sha256="16d0r94lj2bxp1dpizp5grjcbh627v5qqwj5iw8j4k345m784pcl"; depends=[boot ggplot2 lifecycle rlang]; };
   disprose = derive2 { name="disprose"; version="0.1.6"; sha256="0jmn8xjwfr3dhrsmx3lq8kz7lq9pnk95mgr97gi72c86c7rap935"; depends=[]; };
   dissCqN = derive2 { name="dissCqN"; version="0.1.0"; sha256="142f4ggzwdhf2vm9kisayna9a5j17mmy2jckhjrvxh4k5dc3ssf6"; depends=[]; };
   dissever = derive2 { name="dissever"; version="0.2-3"; sha256="1lgs5nmv3lpm4gsryxvcwiwibvvg9flv23q8maisp77x49c18qcp"; depends=[boot caret dplyr foreach magrittr plyr raster sp viridis]; };
@@ -9047,7 +9206,7 @@ in with self; {
   distrr = derive2 { name="distrr"; version="0.0.6"; sha256="04lhrc92y6dqnfpqlmynjvn2dndzkknnvwsr5pf73dfpgv7n3s1f"; depends=[dplyr magrittr rlang tidyr]; };
   disttools = derive2 { name="disttools"; version="0.1.8"; sha256="1jm3nqyywdzpbfvk2mffmhp75al1hcvd5l4r21fbd3iz2anll0ma"; depends=[]; };
   dittoViz = derive2 { name="dittoViz"; version="1.0.1"; sha256="1ma06cc4bdrmp9r7yxa3mrqzys5ap6i1sifsgsr31zjnl6yxfk0w"; depends=[cowplot ggplot2 ggrepel ggridges]; };
-  dittodb = derive2 { name="dittodb"; version="0.1.7"; sha256="1z7xw1cl1drjwq58iz6c6xqz6dpr38g0mdck2yimyjagwpjb43kq"; depends=[DBI digest glue lifecycle rlang]; };
+  dittodb = derive2 { name="dittodb"; version="0.1.8"; sha256="13w78vhl1skc9073k5aplxm21l0cny8aklp75qljhla5p6ggq02w"; depends=[DBI digest glue lifecycle rlang]; };
   div = derive2 { name="div"; version="0.3.1"; sha256="1k4c34wpwfj7yqnk1x9sjzn3dc2vdzhpy8g4c00aqs3nbgcknyn8"; depends=[dplyr ggplot2 gridExtra kableExtra magrittr plotly pryr rlang rpart stringr tibble tidyr tidyverse]; };
   divDyn = derive2 { name="divDyn"; version="0.8.2"; sha256="1rqk7ih0j6d3ykx7d0r0c33bcbksw4paman5f92ragw2a96d04cf"; depends=[Rcpp]; };
   diveMove = derive2 { name="diveMove"; version="1.6.2"; sha256="04naajbri3jrdcggh7ja1niyqb4l2afawpcw5nay0bx7823i5nhq"; depends=[geosphere KernSmooth plotly quantreg uniReg]; };
@@ -9069,6 +9228,7 @@ in with self; {
   dlib = derive2 { name="dlib"; version="1.0.3.1"; sha256="1rchl4f3zj0azz8d4n139daba2gz6vnm60jq45vgc9gphk2mrnnb"; depends=[Rcpp]; };
   dlim = derive2 { name="dlim"; version="0.1.0"; sha256="12sa1bpslans836v9fvma2wj8qspnc521saaw02q9iygkh7kf1sy"; depends=[dlnm ggplot2 mgcv reshape2 rlang tsModel viridis]; };
   dlm = derive2 { name="dlm"; version="1.1-6"; sha256="0mxfakryagyg2idjhw1ydp4xqk57s3z17cv69hj16lisx8q43pc9"; depends=[]; };
+  dlmtree = derive2 { name="dlmtree"; version="1.0.0"; sha256="01nzhi1ysbvfl8f3asba9l2n72aidk632njv5m50k9xjfcjhayqb"; depends=[dplyr ggplot2 mgcv Rcpp RcppArmadillo RcppEigen shiny shinythemes tidyr]; };
   dlnm = derive2 { name="dlnm"; version="2.4.7"; sha256="0mbww28n95vnd6wrn1b4mfsdvnyffa8mr6ws4jqmqdc23nydl9p4"; depends=[mgcv nlme tsModel]; };
   dlookr = derive2 { name="dlookr"; version="0.6.3"; sha256="047f616pcjvv9bd7crphrbvql5qn6j50495px9244fl50vyklzx6"; depends=[dplyr ggplot2 gridExtra hrbrthemes htmltools kableExtra knitr mice pagedown purrr reactable rlang rmarkdown rpart shiny showtext sysfonts tibble tidyr tidyselect]; };
   dlr = derive2 { name="dlr"; version="1.0.1"; sha256="13gr8rk8igbypq9mg00pyk2pjczxr1ghkj5287gijxnxch7zdknc"; depends=[digest fs rappdirs rlang]; };
@@ -9081,17 +9241,16 @@ in with self; {
   dmetatools = derive2 { name="dmetatools"; version="1.1.1"; sha256="0n62lfga8br3p3vn10rs56mbrbsrr7b6m8cb15za52nm2qn9m3a5"; depends=[mada MASS]; };
   dml = derive2 { name="dml"; version="1.1.0"; sha256="0z1dalgxh5nhrac49vh60d5awzjylc8b8mn5fk379c324milm59l"; depends=[lfda MASS]; };
   dmlalg = derive2 { name="dmlalg"; version="1.0.2"; sha256="1ixjpalg3q0wnddrli6v66kky3pxf90sjgiia8jhk4nds0h58a72"; depends=[glmnet lme4 matrixcalc randomForest]; };
-  dmm = derive2 { name="dmm"; version="2.1-9"; sha256="1gca90yh3lysp4rqxa8dp7d5mni57n1cj5q99y04j9aly3b4b0gb"; depends=[MASS Matrix pls robustbase]; };
+  dmm = derive2 { name="dmm"; version="2.1-10"; sha256="1p4g0nb246val8p6l2jj665yp0aa4jxxjyi384i2jcwxyy5hmiyb"; depends=[MASS Matrix nadiv pls robustbase]; };
   dmri_tracking = derive2 { name="dmri.tracking"; version="0.1.0"; sha256="0aij0n5p6cp75r5b3bfpmhnmz2nixbb4kwacixg66g6kilwj3sis"; depends=[rgl]; };
   dmtools = derive2 { name="dmtools"; version="0.2.6"; sha256="0z77whal18sxmfqalv39w85vnc84c838yh3dp144v7w198n095fy"; depends=[dplyr httr lubridate magrittr progress purrr readxl tibble tidyr]; };
   dmutate = derive2 { name="dmutate"; version="0.1.3"; sha256="1dxx4v9fg0cd2m5lwk3j6n9g6n9zqr7rs75yiz3m3q8cpw1pjqpk"; depends=[dplyr MASS]; };
-  dnapath = derive2 { name="dnapath"; version="0.7.4"; sha256="1xpx981sws51kyryc2frsn9ppd55xbkz0rz9v5qbxc3rhpa8f01g"; depends=[corpcor curl dplyr ggplot2 gtools igraph Rcpp RcppArmadillo Rdpack SeqNet tibble wCorr]; };
-  dndR = derive2 { name="dndR"; version="1.3.1"; sha256="1lyynil93s2kmsxgjw7dqz8p56v10v93y9zmkbvpphfbh38z7kda"; depends=[dplyr ggplot2 magrittr purrr stringr tidyr]; };
+  dndR = derive2 { name="dndR"; version="2.0.0"; sha256="1m1s48acsdfa5sn4ikqx4kp804q7v2a5w93qxz3pr5a9g1s57yng"; depends=[dplyr ggplot2 magrittr purrr stringr tidyr]; };
   dng = derive2 { name="dng"; version="0.2.1"; sha256="0yi1fs4yvlsy3j128l7s5kwq8mhdd5fr74y2bzj7cjrxi7wgz2hg"; depends=[Rcpp]; };
   dnn = derive2 { name="dnn"; version="0.0.6"; sha256="0mij6d69hhzrcp3yvqwmajhn4bm2bnc3lk9hrkh5ly2a21g46yg4"; depends=[ggplot2 Rcpp RcppArmadillo survival]; };
   dnr = derive2 { name="dnr"; version="0.3.5"; sha256="16s06jvwmvhxgvrmfav1xfszjrn7j2cm4jw5xyx6w5lb5434kzcq"; depends=[arm ergm glmnet igraph network sna]; };
   do = derive2 { name="do"; version="2.0.0.0"; sha256="16c6ksdas678k1285vk526ga3qkfb658nq4j5z9safjkyl1d5lrp"; depends=[crayon data_table desc httr openxlsx plyr reshape2 rstudioapi rvest stringr tidyr tidyselect tmcn usethis xml2]; };
-  doBy = derive2 { name="doBy"; version="4.6.20"; sha256="08nsl9xzyi2k7xkwa9mn91fn77ji0z9z5lm388pfdmydbfmpy2ks"; depends=[broom Deriv dplyr ggplot2 magrittr MASS Matrix microbenchmark pbkrtest tibble]; };
+  doBy = derive2 { name="doBy"; version="4.6.21"; sha256="01s9kls9j1nvygh0cc2bfd6n5sjccaalvfw3zx8sv7r2p4clgsij"; depends=[boot broom cowplot Deriv dplyr ggplot2 MASS Matrix microbenchmark modelr pbkrtest rlang tibble tidyr]; };
   doFuture = derive2 { name="doFuture"; version="1.0.1"; sha256="1avv5kv1c43gmvbh5iwxlwk7yl6prndpcgy0blkwarl3nsgcq4cm"; depends=[foreach future future_apply globals iterators]; };
   doMC = derive2 { name="doMC"; version="1.3.8"; sha256="18qrcvqwm4cclvk8spvyi281y8prwzivj52xmzk1l9a82j2ny65j"; depends=[foreach iterators]; };
   doMPI = derive2 { name="doMPI"; version="0.2.2"; sha256="0ahwm17p3gq1yvc8v6sr6sb8z7i6zws8d1pf46qynl0gd4amg938"; depends=[foreach iterators Rmpi]; };
@@ -9115,14 +9274,16 @@ in with self; {
   document = derive2 { name="document"; version="4.0.0"; sha256="1bkpyd1cg5r6g1jcwf6xqy0bviwd88i3k2jfzggzxpnva2s02y8y"; depends=[callr checkmate desc fritools rcmdcheck roxygen2 rstudioapi]; };
   documenter = derive2 { name="documenter"; version="0.1.3"; sha256="0azwak0hm7xydamvaj42hy1kl8an9f90i2lm91va7n08vmn8k064"; depends=[htmltools magrittr officer yaml]; };
   docxtractr = derive2 { name="docxtractr"; version="0.6.5"; sha256="1kki49g0sfhbx2d4swrkv21akws8ayrsd4h3v148xmzdlsrvhhiw"; depends=[dplyr httr magrittr purrr xml2]; };
-  dodgr = derive2 { name="dodgr"; version="0.2.21"; sha256="0nfnpa47fism4wwc7vfy0b8qyd4carkxa43x460crmk0d5x3n3kv"; depends=[callr digest fs magrittr osmdata Rcpp RcppParallel RcppThread]; };
+  dodgr = derive2 { name="dodgr"; version="0.4.0"; sha256="0r1p2zj6f2y6v2mk59apas8hcxcfxg6b2mniz5d6nnq074a57s9m"; depends=[callr digest fs magrittr memoise osmdata Rcpp RcppParallel RcppThread]; };
   doebioresearch = derive2 { name="doebioresearch"; version="0.1.0"; sha256="1rmvb6pa71frvjszpsjaw3ahm70kyykrq6zfjqk8smgcg397k9pi"; depends=[agricolae]; };
   doex = derive2 { name="doex"; version="1.2"; sha256="1r999z30ipa04pgck0hfalqxihb1bj8sdhlkkhf4plb7maaz3qm3"; depends=[]; };
   dogesr = derive2 { name="dogesr"; version="0.5.0"; sha256="0w5qps781c406br5rba6mv127yrlgq7rzchk55j7mndrm7hwia63"; depends=[dplyr ggplot2 ggthemes igraph knitr qpdf Rdpack rmarkdown]; };
   dominanceanalysis = derive2 { name="dominanceanalysis"; version="2.1.0"; sha256="1kp8x77j20ak5xgp67f2ny00s22q6yr8qz5lc5kdmvdrimqkpnah"; depends=[ggplot2]; };
   domino = derive2 { name="domino"; version="0.3.1"; sha256="0f67w0z5jy82kgm3l1rji430ayigw30vmmwp3i1nz0xibsx7jxv4"; depends=[]; };
-  domir = derive2 { name="domir"; version="1.1.1"; sha256="01qn62xnykgbk6857i6d5xv7zcxd63g1hakry5qxgdczivkpy4m6"; depends=[]; };
+  domir = derive2 { name="domir"; version="1.2.0"; sha256="0jqbigk1kd0b2n9y0q7cavh8f73ydii4fnp7w4msiy39nmpkn08k"; depends=[]; };
   donut = derive2 { name="donut"; version="1.0.3"; sha256="1vrarv850dja286s5l8y0fng7idai9rqr156z67zrwx347bdr4n2"; depends=[]; };
+  donutsk = derive2 { name="donutsk"; version="0.1.1"; sha256="1mmpxdjhyl06wwkcmczbai0j9pll01sh7zc4vl70mbvk6yx9khfg"; depends=[dplyr ggplot2 glue rlang]; };
+  doofa = derive2 { name="doofa"; version="1.0"; sha256="0pwy27jhmabmpd617pjdw46l7gcy8dz0w37if5901kfsc0cr27kc"; depends=[combinat lpSolve]; };
   doolkit = derive2 { name="doolkit"; version="1.42.2"; sha256="0hyqbpnhzjsx7ml0z6n9z60yhp5c0dyicm3jfc841aykvb1ifqbp"; depends=[concaveman ggplot2 igraph MASS Morpho rgl Rvcg sp tis usethis]; };
   doremi = derive2 { name="doremi"; version="1.0.0"; sha256="005kp6f4jh8y1ykhri3mjnvc9w66b1a51bji574rkbxd1ans6mal"; depends=[data_table deSolve futile_logger ggplot2 gridExtra lme4 lmerTest zoo]; };
   doseSens = derive2 { name="doseSens"; version="0.1.0"; sha256="1srxxfadxsrxpd2ksn59ilmijw5iifjik3mz9q38rsvjdxqls5d6"; depends=[dplyr gtools]; };
@@ -9137,20 +9298,21 @@ in with self; {
   dotprofile = derive2 { name="dotprofile"; version="0.0.1"; sha256="10vm8s1sk4i2930zzswgwy1y873x8byfr7xfb8xq6cdk9ci7l741"; depends=[cli R6]; };
   dots = derive2 { name="dots"; version="0.0.2"; sha256="0g4wvb6qp66dm0pfckjr9xgij58dzlji2iq45m5cz98jzivfd9gm"; depends=[dplyr ggplot2 magrittr purrr rlang rmapshaper sf sp terra]; };
   dotsViolin = derive2 { name="dotsViolin"; version="0.0.1"; sha256="0pyxs899429qsyhnm1n36n06wxwrk1i20qd9pyz62n4n6x706ajq"; depends=[dplyr ggplot2 gridExtra gtools lazyeval magrittr rlang scales stringr tidyr tidyselect]; };
-  dotwhisker = derive2 { name="dotwhisker"; version="0.8.1"; sha256="0q9vdsmn9chwn4midc8apy2dx5sj89nwd8banly2ifyhpks0h8xy"; depends=[dplyr ggplot2 ggstance gridExtra gtable margins parameters patchwork performance purrr rlang stringr]; };
+  dotwhisker = derive2 { name="dotwhisker"; version="0.8.2"; sha256="1hry5c2w6y5h0il5plj2mp3gmlzjq0cw6klbmlh0ka56nv9b9bcg"; depends=[dplyr ggplot2 ggstance gridExtra gtable parameters patchwork performance purrr rlang stringr]; };
   doubcens = derive2 { name="doubcens"; version="1.1"; sha256="1hn65n67by3xqbcnaf5jja5pli0g6wpbbz2sfzd7i2nms7kiywhp"; depends=[]; };
+  doublIn = derive2 { name="doublIn"; version="0.1.0"; sha256="04y1kq6f39kjp7i8hr52a93103nf2dpvkj34w4s0fvaqmw1h44b3"; depends=[coda dplyr DT epicontacts flexsurv ggplot2 lubridate magrittr mStats plotly rjags shiny shinydashboard shinythemes shinyWidgets tidyverse visNetwork xtable]; };
   double_truncation = derive2 { name="double.truncation"; version="1.7"; sha256="0hrb1qli7i4jhc705rb02zbq2nyk0i406bb8gpy4jrzygjjbq3g0"; depends=[]; };
   doubt = derive2 { name="doubt"; version="0.1.0"; sha256="16avp0f7ks2zd4ckakvfm57zng2jk0fg3fz6vbm05lzhqymh6y30"; depends=[unglue]; };
   doudpackage = derive2 { name="doudpackage"; version="2.1.0"; sha256="02zr80ps7x5bq388px9jfpf3b5krvba63ydrsi9big2v5x73hfv9"; depends=[dplyr kableExtra purrr stringi tibble tidyr]; };
-  downlit = derive2 { name="downlit"; version="0.4.3"; sha256="1gdk6rj3539vnm979spd8py0rpvlaniyiy336abi39g8xjcbw3vc"; depends=[brio desc digest evaluate fansi memoise rlang vctrs withr yaml]; };
+  downlit = derive2 { name="downlit"; version="0.4.4"; sha256="0a7q90623ahcadqg0b3a0qylachq7nghf50f0v0lip2axvf7ghsm"; depends=[brio desc digest evaluate fansi memoise rlang vctrs withr yaml]; };
   downloader = derive2 { name="downloader"; version="0.4"; sha256="1axggnsc27zzgr7snf41j3zd1vp3nfpmq4zj4d01axc709dyg40q"; depends=[digest]; };
   downloadthis = derive2 { name="downloadthis"; version="0.3.3"; sha256="14c85cradmm187jzwf3njgshmzq53xr4dla39dkxmhnw07mgdw4l"; depends=[base64enc bsplus fs ggplot2 htmltools magrittr mime readr writexl zip]; };
   downscale = derive2 { name="downscale"; version="5.0.0"; sha256="1rcmn5f30l004rp8a7pmn0w5izsy31n9lwsk3sgj01fjzk0333wc"; depends=[cubature minpack_lm Rmpfr sf terra]; };
   downsize = derive2 { name="downsize"; version="0.2.3"; sha256="0yx62nx5ga835ng9gwrkwivxjhjrkygdldnd1hswc6wnvfs1qz8s"; depends=[magrittr R_utils]; };
-  dowser = derive2 { name="dowser"; version="2.1.0"; sha256="1wv3x2aiqdmkf2jsgnphg1nwh3643jv756qb2llaz0nd4dy0kws7"; depends=[alakazam ape Biostrings dplyr ggplot2 ggtree gridExtra markdown phangorn phylotate RColorBrewer rlang shazam stringr tidyr tidyselect]; };
+  dowser = derive2 { name="dowser"; version="2.2.0"; sha256="05fjca2zfa66fq360swywmncjxz7pvjp0d5h7a0axinvy9wiccg6"; depends=[alakazam ape Biostrings dplyr ggplot2 ggtree gridExtra markdown phangorn phylotate RColorBrewer rlang shazam stringr tidyr tidyselect]; };
   dparser = derive2 { name="dparser"; version="1.3.1-11"; sha256="1xb4gfqcb4598wry3i1mfp9a3rjy74z2wy3ga9daaam155vcdbp8"; depends=[digest]; };
   dpcc = derive2 { name="dpcc"; version="1.0.0"; sha256="1f4c68bvkwg82k1zanjhqqika2bfjv83mbr2khl5lhvfjwvpi1m0"; depends=[Rcpp]; };
-  dplR = derive2 { name="dplR"; version="1.7.6"; sha256="0p2mld1hymxn7gij4hx62r03kchvnyfcc27ckgdgznznihbf185z"; depends=[boot digest lattice Matrix matrixStats plyr png R_utils signal stringi stringr XML]; };
+  dplR = derive2 { name="dplR"; version="1.7.7"; sha256="1gdjrpa0x6clafiybqcc7119i350k2hx34j5ksgljwr7lb9a8d8f"; depends=[boot digest lattice Matrix matrixStats png R_utils signal stringi stringr XML]; };
   dplyr = derive2 { name="dplyr"; version="1.1.4"; sha256="1jsq8pj12bngy66xms486j8a65wxvyqs944q9rxkiaylsla08wyg"; depends=[cli generics glue lifecycle magrittr pillar R6 rlang tibble tidyselect vctrs]; };
   dplyrAssist = derive2 { name="dplyrAssist"; version="0.1.0"; sha256="1lqizh70b1apyr4578917gv6s0i7p84ak96a57kvwipmh36a4ywn"; depends=[DT magrittr miniUI plyr rstudioapi shiny shinyAce shinyWidgets stringr tidyr tidyverse]; };
   dpm = derive2 { name="dpm"; version="1.2.0"; sha256="1wg492r19rd1hplq6ccngwr0z615m4yx5jln0v01gbz4pm47dpmi"; depends=[crayon dplyr Formula jtools lavaan panelr rlang stringr]; };
@@ -9158,14 +9320,14 @@ in with self; {
   dppmix = derive2 { name="dppmix"; version="0.1.1"; sha256="1gq51kix0jln25gr6bffzdy24fhn6cd3gmyl3jlmvqvni4vwswy7"; depends=[mvtnorm]; };
   dprop = derive2 { name="dprop"; version="0.1.0"; sha256="0fvghjblm6giq72qqn20qwlw4ki9lrxagsy0jjbiinf51rdrhc8y"; depends=[extraDistr VaRES]; };
   dpseg = derive2 { name="dpseg"; version="0.1.1"; sha256="19k7w6ln72qriwxdjx9a9cxpxbkqqja69r17zpwxz6qkw60ly4z9"; depends=[Rcpp]; };
-  dqrng = derive2 { name="dqrng"; version="0.3.2"; sha256="171y7487flla0vqxmzvf9nls7vn046vplcgzvyiva3d418hwl0nd"; depends=[BH Rcpp sitmo]; };
+  dqrng = derive2 { name="dqrng"; version="0.4.1"; sha256="13r8agil10q0phzwh1vlsrwv7i15k43mc93iphw2ag0c08szk79x"; depends=[BH Rcpp sitmo]; };
   dr = derive2 { name="dr"; version="3.0.10"; sha256="0dmz4h7biwrn480i66f6jm3c6p4pjvfv24pw1aixvab2vcdkqlnf"; depends=[MASS]; };
   dr4pl = derive2 { name="dr4pl"; version="2.0.0"; sha256="1nmy8mxxrmwzw826wvnn4rrm64xal9jr160yqiqj41zmb241q4b6"; depends=[generics ggplot2 glue Matrix Rdpack rlang tensor]; };
   dracor = derive2 { name="dracor"; version="0.2.6"; sha256="1zs7xfjdx3anrvslfkx483k0swac7rq8y7n7gaws6ap94qy4xrk8"; depends=[Rcpp]; };
   dragonking = derive2 { name="dragonking"; version="0.1.0"; sha256="01b01wd1s2b8sa9f0kfbf2pbzhaqra7xxskigqh3vlj389xqm1id"; depends=[]; };
   dragracer = derive2 { name="dragracer"; version="0.1.7"; sha256="0ka3p72c3brrla7dawm4anyr073kgiy39ip5bdig9888gwiwjccq"; depends=[]; };
   dragulaR = derive2 { name="dragulaR"; version="0.3.1"; sha256="1cw5v7m1b4pxsizsjb3zdzhydxj577p6q5fcjklsvpzmiixzlyav"; depends=[htmlwidgets shiny shinyjs]; };
-  drake = derive2 { name="drake"; version="7.13.9"; sha256="1yi4d09s51lf0j1xb9c8799zx7bn844rl945n0qdd7rva514yspx"; depends=[base64url digest igraph rlang storr tidyselect txtq vctrs]; };
+  drake = derive2 { name="drake"; version="7.13.10"; sha256="1nd8vqlc2hzxlh8vlqjvgls3gc2ya8vmx7nyci5g1nib1l07gxrq"; depends=[base64url digest igraph rlang storr tidyselect txtq vctrs]; };
   drape = derive2 { name="drape"; version="0.0.1"; sha256="0y4y6vvskizghqf78d1vr0skac0ks3yb83m9fgn8i3wmgqrhws19"; depends=[]; };
   drat = derive2 { name="drat"; version="0.2.4"; sha256="13v7dj2688ix6j9nzhvf8q9ynfihwzkppfdjkis6q1r5m4nikya3"; depends=[]; };
   draw = derive2 { name="draw"; version="1.0.0"; sha256="0kbz8rcgygl4fhmljzaan5jl7wjvfljcaykm7q9lw9s6m78p06gz"; depends=[]; };
@@ -9174,6 +9336,7 @@ in with self; {
   drc = derive2 { name="drc"; version="3.0-1"; sha256="0c8xn8ripzq270hy8d16fcnx02l02alddznd7fqwk3jyi6113h1y"; depends=[car gtools MASS multcomp plotrix scales]; };
   drcSeedGerm = derive2 { name="drcSeedGerm"; version="1.0.1"; sha256="19fyfw5r994l5sbfrh8ar4kqc27j0pgdks1cp7liql6dw5iliyp4"; depends=[dplyr drc drcte mvtnorm plyr survival]; };
   drcarlate = derive2 { name="drcarlate"; version="1.2.0"; sha256="05yfyjkxrayz9cmlk7qnbcqgjfxnbkmc2wkbarr9l8m47zzhda8n"; depends=[glmnet MASS pracma purrr splus2R stringr]; };
+  drclust = derive2 { name="drclust"; version="0.1"; sha256="04qi123vdj33dfhgxmwc0c2viwa74lr4x1kj85rgbvvsqhwnp1kz"; depends=[cluster factoextra fpc pheatmap Rcpp RcppArmadillo]; };
   drcte = derive2 { name="drcte"; version="1.0.30"; sha256="0gpzpmk5v1lr03gl710kp4d4ldfskjr5s66wcl00abg3kz8jpixn"; depends=[dplyr drc lmtest MASS mclust multcomp nor1mix plyr sandwich survival tidyr]; };
   drda = derive2 { name="drda"; version="2.0.3"; sha256="1s3d0hpxl47rirsig5gbs0q3i6dj2hjzza3655381fla5n0yx9ap"; depends=[]; };
   dreamer = derive2 { name="dreamer"; version="3.1.0"; sha256="10yvdg5nkw4nawy9hdqyrsgh01xga8l3hn3qi1sbjzniv7903v7d"; depends=[coda dplyr ellipsis ggplot2 purrr rjags rlang rootSolve tidyr tidyselect]; };
@@ -9199,22 +9362,21 @@ in with self; {
   ds4psy = derive2 { name="ds4psy"; version="1.0.0"; sha256="1l5qqcpzad2nnhzzcb43slgmdg08v830l5np8mc7qh4wlig1x95l"; depends=[ggplot2 unikn]; };
   dsa = derive2 { name="dsa"; version="1.0.12"; sha256="16lqqm0lcgpkzkj7d0akamzap85aj4dyj5rs5fkb5b9bjqa5r4c5"; depends=[dygraphs forecast ggplot2 gridExtra htmlwidgets R2HTML reshape2 rJava seastests timeDate tsoutliers xts zoo]; };
   dsample = derive2 { name="dsample"; version="0.91.3.4"; sha256="1f34gp5qic70fnv2ds3v9jk08ginbk9ivxddcvdaadr249lvln12"; depends=[MASS mnormt]; };
-  dsb = derive2 { name="dsb"; version="1.0.3"; sha256="1xzhd4q04c1vql49r6m4zskpx7f5hkl5hmdgr3gsbxb73xfs51v2"; depends=[limma magrittr mclust]; };
-  dscore = derive2 { name="dscore"; version="1.8.0"; sha256="0dyhhrdkca0091nk0a70ckk9187g5rfzz1bqw666hv40yzq0sk97"; depends=[dplyr Rcpp RcppArmadillo stringr tidyr tidyselect]; };
+  dsb = derive2 { name="dsb"; version="1.0.4"; sha256="16y0l3nmg88ihsr03f5n151jirypf7pxy6q0cgx2vpmdnqynlh61"; depends=[limma magrittr mclust]; };
+  dscore = derive2 { name="dscore"; version="1.9.0"; sha256="1skcmd2fh8s5d5qdj661niwa3cfd01i22kxxcf84awad0p1p8g57"; depends=[dplyr Rcpp RcppArmadillo stringi tidyr]; };
   dsdp = derive2 { name="dsdp"; version="0.1.1"; sha256="0n0cyqzwv97wqq8m8a3qr6bg2p07ky9dm6hmlxwd2ggxrn3kmxv8"; depends=[ggplot2 rlang]; };
-  dsem = derive2 { name="dsem"; version="1.1.0"; sha256="12zls470an7zf9h8anab2fadg93s1rp9zh8krpxpwlp1djxgaxdx"; depends=[igraph Matrix RcppEigen sem TMB]; };
-  dsfa = derive2 { name="dsfa"; version="2.0.2"; sha256="1fsq3ydphgi9b97fr92y2d5fc34rf4raff6ki1d3aqn210h9d53z"; depends=[copula gratia mgcv Rcpp RcppArmadillo Rdpack]; };
+  dsem = derive2 { name="dsem"; version="1.2.1"; sha256="08k4h81zm3clzxr0lff7kxbfgnn66jzh0x5bm1jv9ag08p67392i"; depends=[igraph Matrix RcppEigen sem TMB]; };
   dsims = derive2 { name="dsims"; version="1.0.4"; sha256="0mqnpcs9bijkc0l6x6qssr527rh4j4ignlgvgrqxqgii3ikdx92j"; depends=[Distance dplyr dssd ggplot2 gridExtra mgcv mrds purrr rlang rstudioapi sf]; };
   dslabs = derive2 { name="dslabs"; version="0.8.0"; sha256="19nx8jjjadwhkk4wp3lv7xddq8pbj6l405xaxk4fhvgcvlxa65zk"; depends=[ggplot2]; };
   dslice = derive2 { name="dslice"; version="1.2.2"; sha256="0h34bnji7ll2zh79d1yilj908mjgf27yify2kl2gapj9k499zc2v"; depends=[ggplot2 Rcpp scales]; };
   dsm = derive2 { name="dsm"; version="2.3.3"; sha256="159hlllbp4qy5dxmxgsjcl2ksflq7z7v1ra5d7piyanm9c632q8a"; depends=[ggplot2 mgcv mrds nlme numDeriv plyr statmod]; };
-  dsmSearch = derive2 { name="dsmSearch"; version="1.0.0"; sha256="19r5d61bc4n434sxnndp0nf318pj420skghkiadipbmf2j871h69"; depends=[dplyr httr2 imager lidR sf sp terra]; };
+  dsmSearch = derive2 { name="dsmSearch"; version="1.0.1"; sha256="04phbkav0ryj62aqghmlrraai419qlfd03f0as248s1hmwig5xg2"; depends=[dplyr httr2 imager lidR sf sp terra]; };
   dsmisc = derive2 { name="dsmisc"; version="0.3.3"; sha256="19760hcb5154rayhj72r48r7glh2qyaf178zkxplywmsw338kws4"; depends=[Rcpp stringr]; };
   dsmmR = derive2 { name="dsmmR"; version="1.0.2"; sha256="05hbwdycbz58mn01xl6958w03z4adjb00bgl1f9sqbhgy4x23397"; depends=[DiscreteWeibull]; };
   dsos = derive2 { name="dsos"; version="0.1.2"; sha256="1qv44wj1dvng1m4lkscn9yylhxsr8ck46wv54vjy9px4g7rmjaq5"; depends=[data_table future_apply ggplot2 scales simctest]; };
   dsrTest = derive2 { name="dsrTest"; version="1.0.0"; sha256="1nfwcab6p7swki8d2j2dywj93xidkjqcq84majvq90yabx353jd3"; depends=[asht exactci loglognorm]; };
   dssd = derive2 { name="dssd"; version="1.0.2"; sha256="1nbr8mdva6g7p9mrbbg6g116vrvny07yvkyklgjbw79vrj7lfgy3"; depends=[ggplot2 sf]; };
-  dst = derive2 { name="dst"; version="1.5.2"; sha256="1ivbc6k3ynl7ikc1yddxykqrgzz7dazf6bc71xllsh9x16fy8dqk"; depends=[]; };
+  dst = derive2 { name="dst"; version="1.7.0"; sha256="1l3bc2pn092wawf11dmjyv67c280c4p9j3maillc10mpaxav5k99"; depends=[dplyr ggplot2 Matrix rlang tidyr]; };
   dstabledist = derive2 { name="dstabledist"; version="0.1.0"; sha256="07nvsv0xb6wv0yl7ia7sgm6ysi4w2714pjyqhbzl76mp4c7cx7cd"; depends=[Rdpack stabledist]; };
   dstat = derive2 { name="dstat"; version="1.0.4"; sha256="023jp0xdbg200ww1gnr3fzgjqd82acag0jps7q6j6m27q11psvgz"; depends=[]; };
   dstat2x2xk = derive2 { name="dstat2x2xk"; version="0.2.0"; sha256="16qbczzjzhmsby8d2sf1xnijiczlk29xazbgl98jbfpmpfzn4q6j"; depends=[BiasedUrn]; };
@@ -9233,22 +9395,21 @@ in with self; {
   dtw = derive2 { name="dtw"; version="1.23-1"; sha256="0vc2is1hf1g0sw92kzl8mddck264qwiqgm5q2wkcwwz65fss7mkf"; depends=[proxy]; };
   dtwclust = derive2 { name="dtwclust"; version="5.5.12"; sha256="19dmy9jalwp2vcfkzm58g5wf4nmp3290rrsa51prw8xrjj0hk1g3"; depends=[clue cluster dplyr dtw flexclust foreach ggplot2 ggrepel Matrix proxy Rcpp RcppArmadillo RcppParallel RcppThread reshape2 RSpectra shiny shinyjs]; };
   dual = derive2 { name="dual"; version="0.0.5"; sha256="08r2qz5rvsc3pjrc8rsks6r39w52n621mfg77yfnk4lc1vqn4y8d"; depends=[]; };
-  dual_spls = derive2 { name="dual.spls"; version="0.1.4"; sha256="1ap4wngcakfr7q5jji63zlmbz3xw02chbqj4kwg9v9g0bq90y7k4"; depends=[pdist]; };
   dualScale = derive2 { name="dualScale"; version="1.0.0"; sha256="0dw8vknkvb9qzmxw2xmwnpa1dlrqhx70j32q6dm5j1sxjyw2zx37"; depends=[eba ff ggplot2 ggrepel glue Matrix matrixcalc RColorBrewer]; };
   dualtrees = derive2 { name="dualtrees"; version="0.1.5"; sha256="02zwfvz4vb8ppyjggkn5483p7b12l3ah1swpgc7g3p94ii5hr0vy"; depends=[]; };
   duawranglr = derive2 { name="duawranglr"; version="0.6.7"; sha256="0hxmvyl81xlp3vv1w7462cjfa9hdz5lki0p5pn0ik7dv5aap3wbq"; depends=[digest dplyr haven readr readxl]; };
   dub = derive2 { name="dub"; version="0.2.0"; sha256="066lzyk44380mf17vx4db4a3a4rs7zl85mj5hjg172khjbqnbixw"; depends=[]; };
-  duckdb = derive2 { name="duckdb"; version="0.10.0"; sha256="17hr7knbqwn9gxkaga37mxl7g3vf6fmwcmvacyh3q493bfjqq5d5"; depends=[DBI]; };
+  duckdb = derive2 { name="duckdb"; version="1.0.0"; sha256="08hcrbfcf76d7dbgngzz48l07ahzkf9vkb236h06mw9k820dlzm5"; depends=[DBI]; };
   duckdbfs = derive2 { name="duckdbfs"; version="0.0.4"; sha256="0d23ji2pwg5xmqj584174194yh4sn74skqjmz2s1vzzgpprazclh"; depends=[DBI dbplyr dplyr duckdb fs glue]; };
   duckduckr = derive2 { name="duckduckr"; version="1.0.0"; sha256="1wki8xvqp5hr27iafd9jbryl9faywfkdkpn0pa0afywbic39k2cm"; depends=[crul jsonlite]; };
-  duckplyr = derive2 { name="duckplyr"; version="0.3.2"; sha256="025364w08mwjcl03lnw9jdy21bzirr5znygwkl8py30faipq2mj8"; depends=[cli collections DBI dplyr duckdb glue jsonlite lifecycle rlang tibble tidyselect vctrs]; };
+  duckplyr = derive2 { name="duckplyr"; version="0.4.0"; sha256="00fdpf9kgzcic0wf43xzh56mdscf0vds91s1anayqjaq9b8g58dn"; depends=[cli collections DBI dplyr duckdb glue jsonlite lifecycle rlang tibble tidyselect vctrs]; };
   duke = derive2 { name="duke"; version="0.0.3"; sha256="04z7vcgdljp47grn1ppdj4acfs3gq7xmghyzj96wq1aisnh0777b"; depends=[ggplot2 scales]; };
   dumbbell = derive2 { name="dumbbell"; version="0.1"; sha256="0v0b4wbfskvcnzx10z9v4rf3mq8ccswz63pd6i1z7mggnwv38ps5"; depends=[data_table dplyr ggplot2 rlang rstatix tidyr tidyverse]; };
   dummy = derive2 { name="dummy"; version="0.1.3"; sha256="081a5h33gw6ym4isy91h6mcf247c2vsdygv9ll07a3mgjcjnk79p"; depends=[]; };
   dundermifflin = derive2 { name="dundermifflin"; version="0.1.1"; sha256="0rp8p4ln92kfxkczl7vi9r2jhxb1ky203s02940cjjkczsphpcc1"; depends=[crayon stringi]; };
   dunlin = derive2 { name="dunlin"; version="0.1.7"; sha256="10xfps9b2dxw4w6c5z5djsp7ssz1rnpccvnai471r1zppyv14hy7"; depends=[checkmate dplyr forcats glue magrittr rlang stringr tibble yaml]; };
-  dunn_test = derive2 { name="dunn.test"; version="1.3.5"; sha256="0lqwvyl3pyygfc73nf81gzw3zl3w43r7ki0yw2dgrzhkpb2iji4a"; depends=[]; };
-  dupNodes = derive2 { name="dupNodes"; version="0.2.0"; sha256="18ccg83nsj7s12x6ri3ig7qh4ag6xjv72c9ix2pqakmzl640717r"; depends=[igraph Rdpack]; };
+  dunn_test = derive2 { name="dunn.test"; version="1.3.6"; sha256="0z3qyq0lnflmsx41dbkr5lwgiqf3z8rn5wy54c93fwmahva0lqs9"; depends=[]; };
+  dupNodes = derive2 { name="dupNodes"; version="0.3.0"; sha256="1697pcr27lix8vf1krq6vdby8dk53h0s14gcng1y5rdngrxav9nk"; depends=[igraph Rdpack]; };
   dupiR = derive2 { name="dupiR"; version="1.2.1"; sha256="14krgg9fh63nyi3rchmrlggw7rykylc6b52cih87rl09x9zlgq17"; depends=[plotrix]; };
   dupree = derive2 { name="dupree"; version="0.3.0"; sha256="0q8c0z1yhym20rhfjrc8n03gk458z0n8axx013rcwk1vc2zwk670"; depends=[dplyr lintr magrittr purrr rlang stringdist tibble]; };
   dvir = derive2 { name="dvir"; version="3.2.1"; sha256="09fcqhzy53bfkzlff2jpq76d9sygj6vcs85k70n06p633ldvayap"; depends=[forrel pedprobr pedtools ribd]; };
@@ -9276,7 +9437,7 @@ in with self; {
   dynamic = derive2 { name="dynamic"; version="1.1.0"; sha256="15jxly44rj2x79jvps2ln0hrm1384p56yll9jk96w1vhaf3gbsxm"; depends=[dplyr ggplot2 lavaan magrittr patchwork purrr simstandard stringr tibble tidyr]; };
   dynamicSDM = derive2 { name="dynamicSDM"; version="1.3.3"; sha256="08kv5bp8yqlrxxlr4fz4zzzcgh3sc6y9dg934gh97p5vxmwjravq"; depends=[dplyr googledrive lubridate magrittr readr reticulate rgee sf terra tidyr]; };
   dynamicTreeCut = derive2 { name="dynamicTreeCut"; version="1.63-1"; sha256="1fadbql7g5r2vvlkr89nlrjxwp4yx4xrdqmv077qvmnx9vv0f4w3"; depends=[]; };
-  dynamite = derive2 { name="dynamite"; version="1.4.9"; sha256="0azbknsxca7cgwvlnayfm5xdwa84swjd864i4c5lsmv5qnsshm6w"; depends=[checkmate cli data_table ggplot2 glue loo patchwork posterior rlang rstan tibble]; };
+  dynamite = derive2 { name="dynamite"; version="1.5.2"; sha256="1gbhrswczs1lb7qwv2wgiapl5xax2z5indfmzvq8f4d45cd4wn2v"; depends=[checkmate cli data_table ggforce ggplot2 glue loo patchwork posterior rlang rstan tibble]; };
   dynatop = derive2 { name="dynatop"; version="0.2.3"; sha256="06wp8ld22k3r76imsj8wkrpplmbdlgbl71p94ddglwp8yfq1igsp"; depends=[R6 Rcpp xts zoo]; };
   dynatopGIS = derive2 { name="dynatopGIS"; version="0.2.5"; sha256="1sv519dc7fs6zrwnyggkzrcy866a6pgag0shk6rr6cd3xa1blwpv"; depends=[jsonlite R6 terra]; };
   dyncomp = derive2 { name="dyncomp"; version="0.0.2-1"; sha256="13wp2k8nbgrbrqng2dmgy0ixgidk51wq9y7mv5pdbvdajxdsyh11"; depends=[zoo]; };
@@ -9301,7 +9462,7 @@ in with self; {
   eCAR = derive2 { name="eCAR"; version="0.1.2"; sha256="1ps98abmdv8xf8xsnif95yg8z8564nlysv8vncp3cl5wc03pknhl"; depends=[Matrix]; };
   eCV = derive2 { name="eCV"; version="0.0.2"; sha256="12p20sfz5q16n24fjz7z5bv54wf20z6lp9gn6fvrilfy9w18as1k"; depends=[future future_apply idr mvtnorm]; };
   eChem = derive2 { name="eChem"; version="1.0.0"; sha256="0wmf204hqd4s5har5l9bkcbrbmbqbb8m11w2aivi2gs98f3hy51p"; depends=[animation plot3D]; };
-  eDITH = derive2 { name="eDITH"; version="0.2.0"; sha256="152kzwhbir37hjjjipqlvn63dwnhaq6wy0lgrks00byc9ahzh4m0"; depends=[BayesianTools DHARMa fields LaplacesDemon OCNet Rcpp rivnet terra]; };
+  eDITH = derive2 { name="eDITH"; version="1.0.0"; sha256="0bsy0mpacwjglyp7vfqz32lpyd43yj346yvxqrf32fhwqlpfwimc"; depends=[BayesianTools DHARMa fields LaplacesDemon OCNet Rcpp rivnet terra]; };
   eDMA = derive2 { name="eDMA"; version="1.5-3"; sha256="0wyp81si6lcispqng4c7lii22qbyblvijgnlxvcsnkcxj5hpm76j"; depends=[Rcpp RcppArmadillo xts zoo]; };
   eFRED = derive2 { name="eFRED"; version="0.1.0"; sha256="1sqhcwxbi2gxgznz0z3iyvllalq9qwm18bc60dr6y2wvcilagsiy"; depends=[httr jsonlite]; };
   eGST = derive2 { name="eGST"; version="1.0.0"; sha256="0qi4vg0pwy55js9ww1cw85ssim3x7s2p98cjijxvlrvid8sns5bq"; depends=[MASS matrixStats mvtnorm purrr]; };
@@ -9348,15 +9509,15 @@ in with self; {
   easypower = derive2 { name="easypower"; version="1.0.2"; sha256="1w2wkbrvxky6ivi51xmwwl66nfr8ckz34s9vrmq6djx80zbdrmjr"; depends=[pwr]; };
   easyr = derive2 { name="easyr"; version="0.5-11"; sha256="1wzc21n2f7i7idd2hs5s0sh46gpgl6sf4wmrmhi0wc6jcc4sb5rk"; depends=[data_table digest dplyr foreign glue Hmisc lubridate readxl rlang rprojroot stringr XML]; };
   easyreg = derive2 { name="easyreg"; version="4.0"; sha256="1w4wlhziyhdyldm0zgnm73fnxrh0fv8hwcw5j8ircxb4npx7bcgg"; depends=[nlme]; };
-  easystats = derive2 { name="easystats"; version="0.7.0"; sha256="1flk1x1szn8hp8yhp9dxcd8xfdnnny6acpbb2mkh5lc6ydv0ayw5"; depends=[bayestestR correlation datawizard effectsize insight modelbased parameters performance report see]; };
+  easystats = derive2 { name="easystats"; version="0.7.2"; sha256="0rfqzi5s0xxz30nii2ahr4hrymmkcx4spla7sdklkidvvrsrmsvc"; depends=[bayestestR correlation datawizard effectsize insight modelbased parameters performance report see]; };
   eat = derive2 { name="eat"; version="0.1.4"; sha256="1s286b6wx0d59n2v3hf6s1zy1f15mwf6ssrpwciard3giccnf556"; depends=[conflicted dplyr ggparty ggplot2 ggrepel lpSolveAPI partykit Rdpack reshape2]; };
   eatATA = derive2 { name="eatATA"; version="1.1.2"; sha256="0ak9722mgy9fgpk43wppgisfxj6v4fzc8qwk4cmd760sq5gw3j88"; depends=[lpSolve mathjaxr Matrix Rglpk]; };
   eatDB = derive2 { name="eatDB"; version="0.5.0"; sha256="0lym1g411ykb2vzi5yr570lmyh30br667wkm5dvnvfs7bsmk05il"; depends=[DBI RSQLite]; };
   eatGADS = derive2 { name="eatGADS"; version="1.1.0"; sha256="10d9np84zb5jrak03iq72imj02c55jag121hf4g0yfpplaqnc85q"; depends=[data_table eatDB eatTools haven hms plyr stringi tibble]; };
   eatRep = derive2 { name="eatRep"; version="0.14.7"; sha256="11yz0g83ngzab8gqi2mq4s28j7yvl06jf4clwb8vfjqa7lwpfcgq"; depends=[BIFIEsurvey boot car combinat eatGADS eatTools EffectLiteR estimatr fmsb Hmisc janitor lavaan lme4 mice miceadds msm plyr progress reshape2 survey tidyr]; };
-  eatTools = derive2 { name="eatTools"; version="0.7.5"; sha256="1wn3m3h49j59gvzsnd12m15lwfgrbf6my8xpsij29vmni9p9w6nx"; depends=[data_table]; };
+  eatTools = derive2 { name="eatTools"; version="0.7.6"; sha256="0l9ip4y2b18qmb760xmjx174c7pp8crqmwiq7plark82q6p7ybfw"; depends=[checkmate data_table stringi]; };
   ebGenotyping = derive2 { name="ebGenotyping"; version="2.0.1"; sha256="1jllzc7kvvckrws8qhgvwy626llyb68sp1davp7swx48sf7rwcxc"; depends=[]; };
-  ebTobit = derive2 { name="ebTobit"; version="1.0.1"; sha256="0sx7blkv3i37qwmbjyrd5z18ya6xkashplx8rz0c38ldkfbk1r2s"; depends=[Rcpp RcppArmadillo RcppParallel]; };
+  ebTobit = derive2 { name="ebTobit"; version="1.0.2"; sha256="0vvi6q6ml4as3yr1lc6xldinha34jgswvmnwxc6maidw3zirk51m"; depends=[Rcpp RcppArmadillo RcppParallel]; };
   eba = derive2 { name="eba"; version="1.10-0"; sha256="03jr54xq109x9bf8kcs8mi7am17l9ya3xdkdppd8imwd2paqrssk"; depends=[nlme psychotools]; };
   ebal = derive2 { name="ebal"; version="0.1-8"; sha256="06hkk0fargzhzqn841c406r72y7jd53mjxgi4hzb2ahnpaiq2q1l"; depends=[]; };
   ebci = derive2 { name="ebci"; version="1.0.0"; sha256="00fa2y4ha9nlbjd01qckrrn721s63ja61n5jr4wm7ac6y7xivb2i"; depends=[]; };
@@ -9366,16 +9527,16 @@ in with self; {
   ebmstate = derive2 { name="ebmstate"; version="0.1.4"; sha256="1jbkzf7zn844jg10cy9kv3v569n82718iqaz7id4jfbcq31p7l8v"; depends=[HDInterval mstate Rcpp survival]; };
   ebnm = derive2 { name="ebnm"; version="1.1-2"; sha256="14ql990pgwwb8aakg4ikj7p3ijbfaqjrsvrrjwlma3halqs3cy19"; depends=[ashr deconvolveR dplyr ggplot2 horseshoe magrittr mixsqp rlang truncnorm trust]; };
   ebreg = derive2 { name="ebreg"; version="0.1.3"; sha256="1xrs9afjd5hkdmhglj3md5i5hm7awlcdlccz3y2lw4c73lx31ywz"; depends=[lars Rdpack]; };
-  ebvcube = derive2 { name="ebvcube"; version="0.1.7"; sha256="15yhc8q0cnkw37amm5nq806jrmm9f9iayddzjnvv8mvaijf5ia52"; depends=[checkmate curl DelayedArray ggplot2 HDF5Array httr jsonlite memuse ncdf4 ncmeta reshape2 rhdf5 stringr terra tidyterra withr]; };
+  ebvcube = derive2 { name="ebvcube"; version="0.2.1"; sha256="1dx75sf60ifg1cld7n65imzs0lm2w4f5613qzrr76pf5zfpxq61p"; depends=[checkmate curl DelayedArray ggplot2 HDF5Array httr jsonlite memuse ncdf4 ncmeta reshape2 rhdf5 stringr terra tidyterra withr]; };
   ec50estimator = derive2 { name="ec50estimator"; version="0.1.0"; sha256="1zg4p1734q2jzifzfi2lf9wz3687s3cdn0yzkiwbc6w49mgdw877"; depends=[dplyr drc magrittr tibble tidyr]; };
   ecan = derive2 { name="ecan"; version="0.2.1"; sha256="12bkgmbm6mbqcjhmanlg7zk0nlgqf8m1b4m7f2wcxsl8nbks8ymd"; depends=[cluster dendextend dplyr ggplot2 jsonlite labdsv magrittr MASS purrr rlang stringr tibble tidyr vegan]; };
   ecb = derive2 { name="ecb"; version="0.4.2"; sha256="19ir0ywbzwyx90mgxqk9byb63afic2fvhrhy174di0pmj522vnr4"; depends=[curl httr rsdmx xml2]; };
-  ecce = derive2 { name="ecce"; version="2.0.6"; sha256="185b6vdf5fqfm6xfg1h90gglicy3p73pk6mqfpp8n4sbywydqd31"; depends=[curl digest httr jsonlite uuid]; };
+  ecce = derive2 { name="ecce"; version="3.0.1"; sha256="09zyrjld16byc8fs76b46hh6p2saybq00y28gfmflhzb5fhc34a2"; depends=[curl digest httr jsonlite uuid]; };
   ecdfHT = derive2 { name="ecdfHT"; version="0.1.1"; sha256="1n3n9n86pj8c54l3xvp7knvi0ajbnjmz9pi79p7wfq92a90fqx48"; depends=[rgl]; };
   ecespa = derive2 { name="ecespa"; version="1.1-17"; sha256="1n96nxb8spyi914m21yybb2yajawz22fmjldbr9j76dl7s36ygcd"; depends=[spatstat spatstat_explore spatstat_geom spatstat_model spatstat_random]; };
   ech = derive2 { name="ech"; version="0.1.3"; sha256="092djklyw9j5cjbkndb1jby2mn896y93yrysrg704dfcjd04yv2g"; depends=[assertthat curl dplyr fs geouy glue haven janitor labelled laeken rlang srvyr statar stringr survey tidyr]; };
   echarts4r = derive2 { name="echarts4r"; version="0.4.5"; sha256="1j7ad6p0xrfwri13px1av5whd7pkfvblnms0v5a879ikzdwff66q"; depends=[broom corrplot countrycode dplyr htmltools htmlwidgets jsonlite purrr rstudioapi scales shiny]; };
-  echarty = derive2 { name="echarty"; version="1.6.3"; sha256="0qw555xq4lig4ni0mb9lzqyvs5g5a7rzrplm4zk3xlx8xjlkixjb"; depends=[data_tree dplyr htmlwidgets]; };
+  echarty = derive2 { name="echarty"; version="1.6.4"; sha256="1rwb2y3wz8jismj9wjkq6q5wm0mxfpsbgr79ryayv1fjwhbl5faa"; depends=[data_tree dplyr htmlwidgets]; };
   echelon = derive2 { name="echelon"; version="0.2.0"; sha256="179s8s8wgii89676s98pb4rhh3ikdspavl3aifc5pl12an4hc5gr"; depends=[]; };
   echo = derive2 { name="echo"; version="0.1.0"; sha256="1m3dzdgkl6v9z0wv3ws1yn58zi6bxgdy3p6a5jmq2rwhb8wz1lr8"; depends=[]; };
   echo_find = derive2 { name="echo.find"; version="4.0.1"; sha256="1nadqqpxgx2ck16nzjp5ajm6714452qzllg5cq1jpisv1yb31db2"; depends=[boot minpack_lm]; };
@@ -9389,7 +9550,7 @@ in with self; {
   ecmwfr = derive2 { name="ecmwfr"; version="1.5.0"; sha256="0bicldir8cmfd25wzmqhcawv94q2xmqwbzsqbk08w9y8x6yhxhic"; depends=[curl getPass httr keyring memoise R6 uuid]; };
   ecoCopula = derive2 { name="ecoCopula"; version="1.0.2"; sha256="1j3n9h7rm66r8vmzzhy5mjh36gs1qnsh7rq33ymjpkkfy698gbpm"; depends=[betareg doParallel foreach glasso glm2 igraph MASS mgcv mvabund ordinal plyr sna tweedie]; };
   ecocbo = derive2 { name="ecocbo"; version="0.10.2"; sha256="003fdvlzalga0s968mznaa7i32v5v4ppw9n0dknqw0xh53fcg5zf"; depends=[doParallel foreach ggplot2 ggpubr sampling vegan]; };
-  ecochange = derive2 { name="ecochange"; version="2.9.3.1"; sha256="1dr7a0qi6rf6vrqr4pbrkif5hvdjp5gyz5mk996mbqb939hpxbsg"; depends=[geodata getPass ggplot2 httr landscapemetrics lattice raster rasterDT rasterVis rlang sf sp tibble]; };
+  ecochange = derive2 { name="ecochange"; version="2.9.3.2"; sha256="0rrls354f45r7x5lrj3qk0pk02brjsndallhpfhxs3l5bsgg8d54"; depends=[getPass ggplot2 httr landscapemetrics lattice raster rasterDT rasterVis rlang sf sp tibble]; };
   ecocomDP = derive2 { name="ecocomDP"; version="1.3.1"; sha256="0gvqrcan27hsykwshvs76v5gh79bmlbmsmfhxk0yrpnwh2qrbl03"; depends=[data_table dplyr EML emld geosphere ggplot2 httr lubridate magrittr neonOS neonUtilities RColorBrewer rlang rmarkdown stringr tidyr uuid xml2]; };
   ecodist = derive2 { name="ecodist"; version="2.1.3"; sha256="161xyjx004aqx1l64fd6wqz7m3fqq61ijc4k00dx2lkifanpx8p0"; depends=[igraph]; };
   ecolMod = derive2 { name="ecolMod"; version="1.2.6.4"; sha256="1kbllyh986468182q28g0hhyf2y58lcqd0wc7izi0fcw3ww2xyh6"; depends=[deSolve diagram rootSolve shape]; };
@@ -9402,12 +9563,12 @@ in with self; {
   econullnetr = derive2 { name="econullnetr"; version="0.2.1"; sha256="0kdzkk8mlnc71a6n80hgrclwns66zyhr183ad4ifz8b146xh5cl9"; depends=[bipartite gtools reshape2]; };
   ecopower = derive2 { name="ecopower"; version="0.2.0"; sha256="0vlvdlpxvbjrgwffqjyvfxns0sscrpbvkjcd5v67ngfpnl1bjw5a"; depends=[ecoCopula mvabund]; };
   ecoreg = derive2 { name="ecoreg"; version="0.2.4"; sha256="09iyzl4d68angcrqifpl62y4y4flhib34g8wgq2xxaggmbhvyzwa"; depends=[]; };
-  ecoregime = derive2 { name="ecoregime"; version="0.1.3"; sha256="1y44zsqhk5va1pcj5865bjk5wi20r2xk0gd49lf13i7sjav7fss4"; depends=[ape data_table ecotraj GDAtools shape smacof stringr]; };
+  ecoregime = derive2 { name="ecoregime"; version="0.2.0"; sha256="0f54y3q81ji4vaah6hplhl4jvzxw4lf0gg9sh0zvgq8ca43i4rkn"; depends=[ape data_table ecotraj shape smacof stringr]; };
   ecorest = derive2 { name="ecorest"; version="1.0.0"; sha256="13x95z99yqld1fvfgzbm6ahrnvfvcqwlb23yjr187yg83iynh79v"; depends=[viridis]; };
   ecos = derive2 { name="ecos"; version="0.1.6"; sha256="1syqh2ivznz5swify1gc34m1iqgnp10rhk7b8giil7fwdzifalfj"; depends=[httr jsonlite stringr XML]; };
   ecosim = derive2 { name="ecosim"; version="1.3-4"; sha256="0v17iqrlm62vckglxkn3a617q4300pb40wdnyn4vpkxgiav9s86f"; depends=[deSolve stoichcalc]; };
   ecospace = derive2 { name="ecospace"; version="1.4.2"; sha256="0vfaf27bv687ypxg5apzv63rl495rxyflqw33j17i4h0s7cjkgrm"; depends=[FD]; };
-  ecospat = derive2 { name="ecospat"; version="4.0.0"; sha256="0m3rdyx70q5am654islrz0m3sniwfvlss99bj1yjhx49i54pdh38"; depends=[ade4 adehabitatHR adehabitatMA biomod2 classInt dismo ecodist foreach gbm gtools Hmisc ks matrixStats nabor poibin PresenceAbsence terra vegan]; };
+  ecospat = derive2 { name="ecospat"; version="4.1.0"; sha256="1sxvbzdrdr5dda1ds7i669rkaxngp93dpdzqkip07dv28yvjhp02"; depends=[ade4 adehabitatHR adehabitatMA biomod2 classInt dismo ecodist foreach gbm gtools Hmisc ks matrixStats nabor poibin PresenceAbsence terra vegan]; };
   ecostats = derive2 { name="ecostats"; version="1.1.11"; sha256="11h5s196aap64jch1123srbwy3907cvc4vgh0lvn5wkxbszrzypc"; depends=[ecoCopula GET MASS mgcv mvabund mvtnorm]; };
   ecostatscale = derive2 { name="ecostatscale"; version="1.1"; sha256="040y610c1v7l5phy8lmimafjh466s1zdhk81cfcarwhf0l1hzzpr"; depends=[deSolve mvtnorm]; };
   ecotox = derive2 { name="ecotox"; version="1.4.4"; sha256="01sc2lf2kca7wqqyd3gk48va39gb7ijzgs2smgb2k4xbzjqndg08"; depends=[tibble]; };
@@ -9435,12 +9596,12 @@ in with self; {
   edgebundle = derive2 { name="edgebundle"; version="0.4.2"; sha256="138cdhk3p95vh5siwwp05kir6kkrvqjlgbz97dgi149i6jmq656k"; depends=[igraph interp Rcpp reticulate]; };
   edgebundleR = derive2 { name="edgebundleR"; version="0.1.4"; sha256="0pajr95qqppk2m4l7rfi46rll32z8a7lmq0vmb3p8n0aks5ajn1n"; depends=[htmlwidgets igraph rjson shiny]; };
   edgedata = derive2 { name="edgedata"; version="0.2.0"; sha256="11sc7x0m00yhn2c4601dpjv3brmf57i8barsl3p7bawcvka8z5lr"; depends=[]; };
-  edibble = derive2 { name="edibble"; version="1.1.0"; sha256="01d6d5vv8i2hrx8nw7mv248v562fsr1p1jn6kqsxh7qcx5angnp6"; depends=[AlgDesign cli dae lifecycle magrittr nestr pillar R6 rlang tibble tidyselect vctrs]; };
+  edibble = derive2 { name="edibble"; version="1.1.1"; sha256="1c2ifx4yilrq8ivdhl30cq8wix539wfg9l71m4bdz4isq2gg3hw4"; depends=[AlgDesign cli dae dplyr lifecycle magrittr nestr pillar R6 rlang tibble tidyselect vctrs]; };
   ediblecity = derive2 { name="ediblecity"; version="0.2.1"; sha256="0ps6ing20bkaj1rjf63d1k5cc3mrymf5hf0mkdp3qq1ghn05s6la"; depends=[dplyr magrittr rlang sf stars]; };
   edina = derive2 { name="edina"; version="0.1.1"; sha256="1lpmidyxi54byrsnwwadkh5rr454635xrwa4v2wz8mqr2hngxis3"; depends=[ggplot2 jjb Rcpp RcppArmadillo reshape2 rgen]; };
   editData = derive2 { name="editData"; version="0.1.8"; sha256="170i8p264zj716h58bb6pvgh2lnz1w5vplnrcv8vizppi0n1js6l"; depends=[dplyr DT magrittr miniUI openxlsx rio rstudioapi shiny shinyWidgets tibble]; };
-  editbl = derive2 { name="editbl"; version="1.0.3"; sha256="1z9sz6k92n51519g0bywmxnrn4yfadvzib6dcqbrzar9qfjhyv2m"; depends=[dplyr DT fontawesome shiny shinyjs tibble uuid]; };
-  editrules = derive2 { name="editrules"; version="2.9.3"; sha256="07j8wj0fk34irqgsz70h2wad3wdjv5xl1cl702vxbr0nvmpw2ngl"; depends=[igraph lpSolveAPI]; };
+  editbl = derive2 { name="editbl"; version="1.0.5"; sha256="07nf808xlj3vh7nfv5rpx3d6jk7pdsygc31z25gi504mmda1y1hd"; depends=[dplyr DT fontawesome shiny shinyjs tibble uuid]; };
+  editrules = derive2 { name="editrules"; version="2.9.5"; sha256="16mna3wcr81b2k5kjbz84zgvcvn9avwi4gasnbk5crxjvd74wsj1"; depends=[igraph lpSolveAPI]; };
   edl = derive2 { name="edl"; version="1.1"; sha256="19p0qr9lm0kdinh4qnqx7bzxkbvcfpp6mbddwh0hgsgqkbw916cp"; depends=[data_table plotfunctions]; };
   edlibR = derive2 { name="edlibR"; version="1.0.2"; sha256="0pncj573n95g6vnjnyihhac94qxq63p15lxy1xy7pd2p63p5hs4f"; depends=[Rcpp stringr]; };
   edmcr = derive2 { name="edmcr"; version="0.2.0"; sha256="06ms8zyygkgq3divall8paiiw5blqxfgml8iy339zfyiwfxabw5a"; depends=[igraph lbfgs MASS Matrix nloptr sdpt3r truncnorm vegan]; };
@@ -9463,11 +9624,10 @@ in with self; {
   effClust = derive2 { name="effClust"; version="0.8.0"; sha256="1lnlmzwa5g1djs1i4vk2jx6rd0b45hs9n9lfkbpnn69s0lgj7rys"; depends=[fixest]; };
   effectR = derive2 { name="effectR"; version="1.0.2"; sha256="1icr1sx98x3h8rbky1agdh809arhjqcypyajl7y50yis8a5pkycb"; depends=[ggplot2 reshape2 rmarkdown seqinr shiny viridis]; };
   effects = derive2 { name="effects"; version="4.2-2"; sha256="0nlj79am9a1yg737dhfa8dj1kj2hly9pfknmphsbcvlgxqn35vig"; depends=[carData colorspace estimability insight lattice lme4 nnet survey]; };
-  effectsize = derive2 { name="effectsize"; version="0.8.6"; sha256="0gdk6f2713k2vhv7qa6dgxl6kgc6r6yb12hb27k4bbibj5njvvni"; depends=[bayestestR datawizard insight parameters performance]; };
+  effectsize = derive2 { name="effectsize"; version="0.8.8"; sha256="1dx83xv98iny4pzphrr64fv277k70cgmia1s18bh7fix2h3md45k"; depends=[bayestestR datawizard insight parameters performance]; };
   effectsizescr = derive2 { name="effectsizescr"; version="0.1.0"; sha256="0shfjk6r3bz04jakrn5nwgymjx60lk83i0akcx7zqfxp3k8yncs5"; depends=[Kendall]; };
   efflog = derive2 { name="efflog"; version="1.0"; sha256="1sfmq7xrr6psa6hwi05m44prjcpixnrl7la03k33n0bksj8r1w6b"; depends=[]; };
   effsize = derive2 { name="effsize"; version="0.8.1"; sha256="1m5ch2g77f4ldbxhzp2ls1pga8hq7ggkz1xs8a90h0s09rj0gd7w"; depends=[]; };
-  efreadr = derive2 { name="efreadr"; version="0.2.2"; sha256="1h27by1m451wrnw017005avs5yj3fjzrm2lq5153aqm1mbbxxwvs"; depends=[dplyr ensurer magrittr readr]; };
   ega = derive2 { name="ega"; version="2.0.0"; sha256="04kwh24aap22yclmcrix3vi553qb30hd43mgfzpdl0cw3ibrh7xg"; depends=[ggplot2 mgcv]; };
   egcm = derive2 { name="egcm"; version="1.0.13"; sha256="16mzhf7x19v9z600n29q4481dmsjfcn55365zbb9d0wrclc3053l"; depends=[ggplot2 MASS pracma quantmod tseries urca xts zoo]; };
   egg = derive2 { name="egg"; version="0.4.5"; sha256="1fy7srpiavfn8kyrr1m84an7acgwi6ydzrg71m3b0vk7y9ybmj0m"; depends=[ggplot2 gridExtra gtable]; };
@@ -9477,13 +9637,15 @@ in with self; {
   eha = derive2 { name="eha"; version="2.11.4"; sha256="147i34fipb0qbamvs45918ci2nihvbsxvbqd8k7wv73rmgb1nw5v"; depends=[survival]; };
   ehaGoF = derive2 { name="ehaGoF"; version="0.1.1"; sha256="15hpzj3ridl6w3pd5z86d88cc88jw09qpqhsdwkar4dby8lgxhi0"; depends=[]; };
   ehelp = derive2 { name="ehelp"; version="1.2.1"; sha256="1kqd6mzzcf2b0hslpm2zvxyi3i4vhzxsmvdmfqgrs6703n1dx62g"; depends=[]; };
+  ehymet = derive2 { name="ehymet"; version="0.1.0"; sha256="1ywsv8dlkp9fpvfgdpv27yjpa2wyzfx0bq6cb7fbd90b89j59lpp"; depends=[kernlab tf]; };
   ei = derive2 { name="ei"; version="1.3-3"; sha256="0i8pvpal23zwsqldhmm3iis4vw9s08mlydpshaig2dsd9549gn11"; depends=[cubature eiPack ellipse foreach MASS mnormt msm mvtnorm plotrix sp tmvtnorm ucminf]; };
   ei_Datasets = derive2 { name="ei.Datasets"; version="0.0.1-3"; sha256="1ii9dnjxbjvzp0ihg499fvwqzgdwdcp2xxnqfqz319d805hajcpr"; depends=[tibble]; };
   eiCircles = derive2 { name="eiCircles"; version="0.0.1-7"; sha256="11id675g2j36xq8c1fmsbh7djbcdgbyvq0hrnhahsmiy1nnrxncd"; depends=[NlcOptim]; };
   eiExpand = derive2 { name="eiExpand"; version="1.0.5"; sha256="1x30np4liy33mkb31040b2mk3yqajp4v0b2n32akm07f8sn3zrxh"; depends=[dplyr ggmap ggplot2 magrittr rlang sf stringr tidyr tidyselect viridis]; };
   eiPack = derive2 { name="eiPack"; version="0.2-2"; sha256="1jb7nxk71cyvrmapzwz4fgjv7ca5m17i22acyhx27krl168ss0r2"; depends=[coda MASS msm]; };
-  eia = derive2 { name="eia"; version="0.4.1"; sha256="188vprgj7lzzs7z3qa2pq8lhhsg8h389frxnq1dr295jqzwrwvis"; depends=[httr jsonlite lubridate memoise purrr readxl tibble]; };
+  eia = derive2 { name="eia"; version="0.4.2"; sha256="13r06wxg2byz71q1k6m5bgrdjb86c8lgrdbmhkxiifyihwpwnqdz"; depends=[httr jsonlite lubridate memoise tibble]; };
   eicm = derive2 { name="eicm"; version="1.0.3"; sha256="0439ngwr8m7inljn8303g2a9v3izw81jz1jqxgbp6xdnvlwwpsyx"; depends=[doSNOW foreach GA iterators optimParallel pso snow ucminf]; };
+  eider = derive2 { name="eider"; version="1.0.0"; sha256="03sz9r2s6klrfigj16pnwgi1qj2sshfdays0mrfc0ic6b60armyj"; depends=[dplyr fs jsonlite logger lubridate magrittr purrr rlang stringr tibble]; };
   eigenmodel = derive2 { name="eigenmodel"; version="1.11"; sha256="1l3n0z736xf3x6cyxzmmq1jb2glxi2b75z7v39y4471knh6nbb4d"; depends=[]; };
   eikosograms = derive2 { name="eikosograms"; version="0.1.1"; sha256="13s5wqcc8iwnhn3msrh9dfrvq9bwlby93p9v5wcnrm8m9iskax1s"; depends=[plyr]; };
   eimpute = derive2 { name="eimpute"; version="0.2.3"; sha256="02zsz7hrcfypvpkvjyzfmwxpbr03chj2qcqmxkn3dr3zffwp93fq"; depends=[Rcpp RcppEigen]; };
@@ -9494,8 +9656,7 @@ in with self; {
   eive = derive2 { name="eive"; version="3.1.3"; sha256="1ziijc43axgsm9j61saab7q4kqysqwx3gvl710lv7m57vll6k4zl"; depends=[Rcpp]; };
   eivtools = derive2 { name="eivtools"; version="0.1-8"; sha256="0ynmrql6dv10m7cwba5mzwlbvp6ab53nzqqvk3ihwyiqzmnnmpk4"; depends=[R2jags]; };
   eixport = derive2 { name="eixport"; version="0.6.0"; sha256="18jybscxh051h5y31gb7ywr9n5a471l6krcl95wznfvc2ba1k8pc"; depends=[cptcity data_table ncdf4 raster sf]; };
-  eks = derive2 { name="eks"; version="1.0.4"; sha256="14nyd2ipjy5kvcp3001ld7dv2k46paxg20w7dnq17sg8wy8iy4rd"; depends=[dplyr ggplot2 isoband ks mapsf sf]; };
-  elaborator = derive2 { name="elaborator"; version="1.1"; sha256="1kq3qqqywpzrk1ichsljvfijhsybmj7s0scmswmwi2crqi67gzp8"; depends=[bsplus dendextend dplyr forcats haven purrr RColorBrewer reshape2 rlang seriation shape shiny shinydashboard shinyWidgets tidyr]; };
+  eks = derive2 { name="eks"; version="1.0.5"; sha256="11hg9zqb5j2dswj7lx6ah2xfrxdak8xxdwml7xzkf9m3d36xjgha"; depends=[dplyr ggplot2 isoband ks mapsf sf]; };
   elasdics = derive2 { name="elasdics"; version="1.1.3"; sha256="03zfklxnh66kzlkw5yf8p859hkfhbvh5pgmi9lcwy0izi32sjx86"; depends=[numDeriv]; };
   elasso = derive2 { name="elasso"; version="1.1"; sha256="0nz3vw803dvk4s45zc9swyrkjwna94z84dn4vfj3j17h74a0cij2"; depends=[glmnet SiZer]; };
   elastes = derive2 { name="elastes"; version="0.1.7"; sha256="0sa95g6wcl3m8aygpg9ip1p3q8hwcin8mglzbl3mc9bvdfwkplsa"; depends=[elasdics mgcv orthogonalsplinebasis sparseFLMM]; };
@@ -9526,29 +9687,30 @@ in with self; {
   elsa = derive2 { name="elsa"; version="1.1-28"; sha256="01sj2a4yhv5m6qj6ih26zw4yzd8s27lll7yp0yysjjrwz79a0fbq"; depends=[raster sp]; };
   eltr = derive2 { name="eltr"; version="0.1.0"; sha256="0f4sy2hhsbghasl5xcnqlgxqhb503pl73c5vdkgpcm73smrqbpbv"; depends=[data_table]; };
   em = derive2 { name="em"; version="1.0.0"; sha256="16xmksz1zdr61gxycsbia28kj16nrrcdvjcdd3nk6n6zjiy3ca3v"; depends=[dplyr magrittr mclust nnet numDeriv plm Rcpp RcppArmadillo survival]; };
-  emBayes = derive2 { name="emBayes"; version="0.1.4"; sha256="18j50i0px9wgv9w5h015k276ia9ls5fjlj9gvjp6l3b3nr5nr2xq"; depends=[glmnet Rcpp RcppArmadillo]; };
+  emBayes = derive2 { name="emBayes"; version="0.1.5"; sha256="1ycr91r0zh75whpf4l9hxrm07rks589bmy994nby88r5yrv34wwg"; depends=[glmnet Rcpp RcppArmadillo]; };
   emailjsr = derive2 { name="emailjsr"; version="0.0.2"; sha256="1pxqw0r95pgpnvhmyw46py6bnchswb9wcyl42lsg5ccz74dynmh0"; depends=[httr shiny shiny_i18n shinybrowser]; };
   emailvalidation = derive2 { name="emailvalidation"; version="0.1.0"; sha256="1k2i2rnlqzgi7kn2knll86bax4pms68jddrycaqv6pkql8fja93a"; depends=[httr jsonlite]; };
-  emayili = derive2 { name="emayili"; version="0.7.18"; sha256="0q38lkvp2298jkwlfr6b90ikvkzf31d2v56pdfxz2xf1qmf5p7b2"; depends=[base64enc commonmark curl digest dplyr glue htmltools httr logger magrittr mime purrr rmarkdown rvest stringi stringr tidyr urltools xfun xml2]; };
+  emayili = derive2 { name="emayili"; version="0.8.0"; sha256="0cpg77w8z1j05mqkkji7hqpan8p1kq6l1r07iwpsany0y5di0mlf"; depends=[base64enc commonmark curl digest dplyr glue htmltools httr logger magrittr mime purrr rmarkdown rvest stringi stringr tidyr urltools xfun xml2]; };
   embed = derive2 { name="embed"; version="1.1.4"; sha256="1mc4rh1mp81j4613s82z45zz0y12bkpg5kjjkx12i85nh953y1x1"; depends=[dplyr generics glue lifecycle purrr recipes rlang rsample tibble tidyr uwot vctrs withr]; };
   embryogrowth = derive2 { name="embryogrowth"; version="9.1"; sha256="0c7ggpa2i9j17zzknx9h5w6sibk5pdy81484gl6sb5s88wmn16qm"; depends=[deSolve HelpersMG numDeriv optimx]; };
   emdbook = derive2 { name="emdbook"; version="1.3.13"; sha256="069w10i1590bcyzv4kfsg7wsr1yl9nlsyj6yvys088xll5z4n116"; depends=[bbmle coda lattice MASS plyr]; };
-  emdi = derive2 { name="emdi"; version="2.2.1"; sha256="0wx8mrq07nl1djf7fcb0xg9vx64i9d3p6v7lyr1bb8hvqs47qc7g"; depends=[boot formula_tools ggplot2 gridExtra HLMdiag MASS moments MuMIn nlme openxlsx parallelMap readODS reshape2 rlang saeRobust spdep stringr]; };
+  emdi = derive2 { name="emdi"; version="2.2.2"; sha256="1zdb2bg8gdpjlg104f5cpnrrdnpdqdcp95gxlbnadq6rds94ipcx"; depends=[boot formula_tools ggplot2 gridExtra HLMdiag MASS moments nlme openxlsx parallelMap readODS reshape2 rlang saeRobust spdep stringr]; };
   emdist = derive2 { name="emdist"; version="0.3-3"; sha256="0jmnz612pjad3p1zk0qiljcbf0zbxfi4zcw2jqwg8ncjsifhr3mp"; depends=[]; };
   emery = derive2 { name="emery"; version="0.5.1"; sha256="1x0x1f2i0yxkq8xl6vm2w2nb8blpa6dkns07d1n9qj43rnwljv5s"; depends=[dplyr ggplot2 mvtnorm purrr Rdpack stringr tibble tidyr]; };
   emg = derive2 { name="emg"; version="1.0.9"; sha256="04sm05xnjns7wcvpk35ywkxy6g0mm84r060mkmzh64wq58c2q06l"; depends=[moments]; };
   emhawkes = derive2 { name="emhawkes"; version="0.9.7"; sha256="0zhy1y80m548y9nbbjb2h795qky2637mxlqb548bakn7ps847qps"; depends=[maxLik]; };
   emld = derive2 { name="emld"; version="0.5.1"; sha256="0cvnfvzskvpcqzs6fwrpjcqrc6yrfciliy9jj0c9h4iyag0g0b9b"; depends=[jsonld jsonlite xml2 yaml]; };
-  emmeans = derive2 { name="emmeans"; version="1.10.0"; sha256="1vq7abyirrrpx00d464pgva2i17f3wxx08f4rc23bl331s3lsx23"; depends=[estimability mvtnorm numDeriv]; };
+  emmeans = derive2 { name="emmeans"; version="1.10.2"; sha256="08l57dp6ivqqc86m31vabr0n707vr70n4iqidavn05lxgb169gk0"; depends=[estimability mvtnorm numDeriv]; };
   emoa = derive2 { name="emoa"; version="0.5-2"; sha256="1a71xd8gdy27cfy09a4avjhc7d7idrljzan79cxb8qwb0pq9pvz9"; depends=[]; };
   emoji = derive2 { name="emoji"; version="15.0"; sha256="1xscypzz17a7nrajnl7isy2nrm9cyr97l0mi9vp0daqvzgyfajba"; depends=[glue stringr tibble]; };
   emojifont = derive2 { name="emojifont"; version="0.5.5"; sha256="1hhrwilv36hd9gs1kcl2zsi6519md0h9aixjrm6lfclxvz8r6k1i"; depends=[ggplot2 proto showtext sysfonts]; };
   emon = derive2 { name="emon"; version="1.3.2"; sha256="19khjjpyxvzhzihqq15w02l5v5ryyvxlklz1ch2gkmqcpnvyga32"; depends=[MASS mgcv]; };
   emov = derive2 { name="emov"; version="0.1.1"; sha256="04w0bjyxvfb4ky573byp7j9b7x4gqycr5pgpnsl6rzag00zsf45a"; depends=[]; };
+  emphatic = derive2 { name="emphatic"; version="0.1.8"; sha256="0v9h8q9l1zk9b23x9raqv9p93cvrnjijqphfz7px719zhi8104q5"; depends=[]; };
   empichar = derive2 { name="empichar"; version="1.0.1"; sha256="0az7qxfnqrmxgd2591h49qs1w7iyzz6i490h4xn9gdzsplhpy1sw"; depends=[Rcpp RcppArmadillo]; };
   emplik = derive2 { name="emplik"; version="1.3-1"; sha256="1f6v0bg9sl8kn4y8bpgjyc1b18xkmfbs86gbbmbh198v335lgcrb"; depends=[quantreg]; };
   emplik2 = derive2 { name="emplik2"; version="1.32"; sha256="0d4fzyxa7kynxgx8187vqxnb25kv1m1pkawxdpng6nfaiy76w67m"; depends=[]; };
-  emplikAUC = derive2 { name="emplikAUC"; version="0.3"; sha256="0ifh661xknqin0k9vs92p00c4n6npkwn5cxyj970cj8l689yndrr"; depends=[emplik2 rootSolve]; };
+  emplikAUC = derive2 { name="emplikAUC"; version="0.4"; sha256="1pxcvz7x8dfc30m1yb1k9xhlaj4z1i29xxg9vdz1l374k4f449sb"; depends=[emplik2 rootSolve]; };
   ems = derive2 { name="ems"; version="1.3.11"; sha256="0xg4c6yhrnq5pfz94i1ys1bdqfz12h0wcs86fz4nm4pqfdbh41cc"; depends=[boot rms survival]; };
   emstreeR = derive2 { name="emstreeR"; version="3.1.2"; sha256="1l85pn8y463fn09cpm737kzal6k3ydiri38s90bhfw3i1gvzqggf"; depends=[ggplot2 mlpack scatterplot3d sf]; };
   emuR = derive2 { name="emuR"; version="2.5.0"; sha256="0mlcqi9lwqrjilc2nynrl7aqkbqixbdcwzw3rn7mgc8m7cb7s8pq"; depends=[base64enc cli DBI dplyr httpuv httr jsonlite mime purrr readr rlang RSQLite rstudioapi shiny stringr tibble tidyr uuid V8 wrassp]; };
@@ -9567,19 +9729,17 @@ in with self; {
   enetLTS = derive2 { name="enetLTS"; version="1.1.0"; sha256="1lah9ai9skshz0rq3r1smvy69j443m22h1dihl42gy2568998q4v"; depends=[cvTools ggplot2 glmnet reshape robustbase robustHD]; };
   english = derive2 { name="english"; version="1.2-6"; sha256="1g3nmy5p8wj3ix1vp1qmkmy3dyqisrw0md8cjrx4klqkp0wqlms9"; depends=[]; };
   engression = derive2 { name="engression"; version="0.1.4"; sha256="030fcjh7cwjqiydyxjhaa7rsc2wq50ywdyp4wd2cr7glpy1fl346"; depends=[torch]; };
-  enmSdmX = derive2 { name="enmSdmX"; version="1.1.2"; sha256="15pdsva011dpa72ms7c6fdhadzcm603wzglfy9hg63krirvmfwkh"; depends=[boot data_table dismo doParallel DT foreach gbm ks maxnet mgcv MuMIn omnibus ranger rJava scales sf shiny statisfactory terra]; };
+  enmSdmX = derive2 { name="enmSdmX"; version="1.1.6"; sha256="0hwj7xa19inifajqbgzyxcjgi0gz49yqyfbdvgdwmh8f81i99hip"; depends=[AICcmodavg boot data_table doParallel DT foreach gbm ks maxnet mgcv omnibus predicts ranger rJava scales sf shiny sp statisfactory terra]; };
   enmpa = derive2 { name="enmpa"; version="0.1.5"; sha256="0r7zr3xgx1w9570965bm13rw24647y47kab313lqb01nwd9vn2vn"; depends=[doSNOW ellipse foreach mgcv Rcpp snow terra vegan]; };
   enpls = derive2 { name="enpls"; version="6.1"; sha256="12088v9xnj5b3dlakqz1hbzxz4mdai7xi7s2fpx8lj3y3lx7znmb"; depends=[doParallel foreach ggplot2 plotly pls reshape2 spls]; };
   enrichR = derive2 { name="enrichR"; version="3.2"; sha256="1g97q6vqwvb2l02y61343sblarqi433gjl3qmlyxjxq2lnjrnak1"; depends=[curl ggplot2 httr rjson WriteXLS]; };
   enrichwith = derive2 { name="enrichwith"; version="0.3.1"; sha256="05fhx323ani86wdxbjp8dgw4d1iq4kr1887646w072a6iq93bwhm"; depends=[]; };
   ensembleBMA = derive2 { name="ensembleBMA"; version="5.1.8"; sha256="1bb2f7pkwq4dza8fkag3802yflzcsfma4cnwhfw1qgg227sfy8d9"; depends=[chron]; };
   ensembleMOS = derive2 { name="ensembleMOS"; version="0.8.2"; sha256="16d8030zfdwifqrh45vz3gf5n0bix0mhsmsnydgjq1fghdklcmyx"; depends=[chron ensembleBMA evd]; };
-  ensembleR = derive2 { name="ensembleR"; version="0.1.0"; sha256="0xvq1jlsp7gsk46i847nfvadxwlh09gi2rgwss2wf2xmh1855ray"; depends=[caret]; };
   ensembleTax = derive2 { name="ensembleTax"; version="1.1.1"; sha256="1kxkv8b6qgrbylp16hlh53h3sr079jqhypv1fk4g5fr349zrjgv3"; depends=[Biostrings DECIPHER dplyr ggplot2 reshape2 stringr usethis]; };
   ensemblepp = derive2 { name="ensemblepp"; version="1.0-0"; sha256="08k7v61p2sgr07dklabl0g7apsn9da60sfb14gfrwipwi8bsd4pv"; depends=[]; };
   enshuman = derive2 { name="enshuman"; version="1.0.0"; sha256="19jni9zcrlka41d6w7264b52nyakzy52ycsy5fk93x1wavjc5miy"; depends=[]; };
   ensr = derive2 { name="ensr"; version="0.1.0"; sha256="18b81iswvby7k5akbfdyc6a8j1621d4d35hxmgjip5kyvf5cb3p8"; depends=[data_table ggplot2 glmnet]; };
-  ensurer = derive2 { name="ensurer"; version="1.1"; sha256="1gbbni73ayzcmzhxb88pz6xx418lqjbp37sdkggbrxcyhsxpdkid"; depends=[]; };
   entropart = derive2 { name="entropart"; version="1.6-13"; sha256="1y2gdfnqz52w03g9zij07fkjhh3yf3qflk75j0bvfk7n727rz2jp"; depends=[ape EntropyEstimation ggplot2 ggpubr reshape2 rlang tibble vegan]; };
   entropy = derive2 { name="entropy"; version="1.3.1"; sha256="1f0j8jsn6pzf4gi5g0akixx6x5vc69ci5f4m2vnwp40frvsqjnkg"; depends=[]; };
   entrymodels = derive2 { name="entrymodels"; version="0.2.1"; sha256="0fz7jzax12pzw47iry4amgg9z4z3z94kig6r5dhcqa84kq02294v"; depends=[dplyr magrittr readr]; };
@@ -9589,7 +9749,7 @@ in with self; {
   envi = derive2 { name="envi"; version="0.1.19"; sha256="04hh4fgkaw8zzsjf2bzwwy3iyknfaipqd7p5icysx6il5i8hd79y"; depends=[concaveman cvAUC doFuture doRNG fields foreach future iterators pls ROCR sf sparr spatstat_geom terra]; };
   enviGCMS = derive2 { name="enviGCMS"; version="0.7.1"; sha256="1rk7y24lld16zk7f3aak3zf9i3xd27l8mffcvlxwqi7cpl1pqa9b"; depends=[animation BiocParallel data_table igraph mixtools RColorBrewer Rdisop]; };
   enviPat = derive2 { name="enviPat"; version="2.6"; sha256="17qrly8fb6d7gk1xcg3273mykpwc9i7ghnvipp63fwx4cp25crzw"; depends=[]; };
-  envir = derive2 { name="envir"; version="0.2.2"; sha256="090s0idsdvg09gd8mjkbbfw6fvxj0mmfy3135wp5n7cjdf2qgp7n"; depends=[]; };
+  envir = derive2 { name="envir"; version="0.3.0"; sha256="1jqrx6rl15kgws890klxd467431ciayp9rm5xsx7v81a7z8xyrz3"; depends=[]; };
   envirem = derive2 { name="envirem"; version="3.0"; sha256="06mxzm5kg0vm34z8sx5mbxxcdicjicjjdnhx0pi61dqnrwj47jml"; depends=[knitr palinsol terra]; };
   envnames = derive2 { name="envnames"; version="0.4.1"; sha256="1fkbid2x60m63dnrxrdq7im49spn8m70g1gd8nqjq3xlv642ianm"; depends=[]; };
   envoutliers = derive2 { name="envoutliers"; version="1.1.0"; sha256="1wgrrkkpkmf300qb56mq6nxigwnpq551sjxlk05lk3ckawx66srf"; depends=[car changepoint ecp ismev lokern MASS robustbase]; };
@@ -9601,23 +9761,24 @@ in with self; {
   eoffice = derive2 { name="eoffice"; version="0.2.2"; sha256="0nxyllragxn5bq28x37vkx16vi4y9af5nly1pslqrvvarl21ics4"; depends=[broom devEMF dplyr flextable ggplot2 ggplotify htmlwidgets magick magrittr officer plotly R_devices rvg]; };
   epade = derive2 { name="epade"; version="0.5.1"; sha256="05g41lslw77v8r2914vpf92348hcyfx7xqbbwknfhl1xld9rk2iz"; depends=[Hmisc plotrix survival]; };
   epandist = derive2 { name="epandist"; version="1.1.1"; sha256="0hxgbjns5bk82rgcmykxifnnxcnqdzmkimkkmpdif64zr5g3gjdg"; depends=[]; };
-  epanet2toolkit = derive2 { name="epanet2toolkit"; version="1.0.4"; sha256="0xmaifvj9r3q634rb9rbpvrn4klsxf14scbv8150s1s6dvvb0f5i"; depends=[]; };
+  epanet2toolkit = derive2 { name="epanet2toolkit"; version="1.0.5"; sha256="0y9mk5w1ds31g7nwx4xkpay8h2h6cqbh9i2hl01zhycjdgh4ddfg"; depends=[]; };
   epanetReader = derive2 { name="epanetReader"; version="0.7.3"; sha256="05pwa6z03qsjwr9pxpbxycsd21p7mf5j5ajyg4yaas5g100s1k8c"; depends=[]; };
   epca = derive2 { name="epca"; version="1.1.0"; sha256="0ikncmrvcdixa209lrjb84rdsl78isi815a461i7lfmmln9myqk2"; depends=[clue GPArotation irlba Matrix]; };
   epe4md = derive2 { name="epe4md"; version="0.1.4"; sha256="12arly1kcpcg0ym3rq8am7l4nchwl97vy3yp6vamc4sbv01w18a5"; depends=[assertthat dplyr fabletools feasts forcats furrr future ggplot2 janitor jrvFinance lubridate magrittr purrr readr readxl scales stringr tibble tidyr tsibble zoo]; };
   eph = derive2 { name="eph"; version="1.0.0"; sha256="1gr0j5xxdmi10d4n742r9764134fsh0xxqdfz5jk5df1z16wh7g2"; depends=[attempt cli curl dplyr expss htmltools httr leaflet purrr readxl rlang stringr tibble tidyr tidyselect zoo]; };
   epiCleanr = derive2 { name="epiCleanr"; version="0.2.0"; sha256="1m5qz7qkly9waj1w8x0hrz28cc4vzn6psqs4q39x1fhxlgip0rih"; depends=[countrycode crayon dplyr ggplot2 glue janitor purrr rio rlang stringr tibble tidyr tidyselect withr]; };
   epiDisplay = derive2 { name="epiDisplay"; version="3.5.0.2"; sha256="0430mwnaa0qamdyvmwkh37ic0kp4hq8mr5nxkc97mhhl7djw0y92"; depends=[foreign MASS nnet survival]; };
-  epiR = derive2 { name="epiR"; version="2.0.70"; sha256="10rc6w7jhwzpq6c4764nrsbkn8sn6zvz4lxxixgby88r7zvh6rlc"; depends=[BiasedUrn flextable lubridate officer pander sf survival zoo]; };
+  epiR = derive2 { name="epiR"; version="2.0.75"; sha256="162px7cscy791pgfci45jh3gl3hm60v3ha088kc8vydn8cvfn4kr"; depends=[BiasedUrn flextable lubridate officer pander sf survival zoo]; };
   epibasix = derive2 { name="epibasix"; version="1.5"; sha256="0ivr51x37cbdryli9b4p4iq9v2c90zwmywrwdmg7ryq5vprvvbp0"; depends=[]; };
   epicasting = derive2 { name="epicasting"; version="0.1.0"; sha256="191kxjrr8h44i7a7dpxziqhbcnbmhgcc5b7ddn9cnvvjqmbwmvl2"; depends=[forecast Metrics wavelets]; };
-  epicontacts = derive2 { name="epicontacts"; version="1.1.3"; sha256="0y97l288ncj0svk1gnxjr4q58rvhbn6wblm7jbhff4n4544yd4f7"; depends=[colorspace dplyr igraph threejs visNetwork]; };
+  epicontacts = derive2 { name="epicontacts"; version="1.1.4"; sha256="0caf11814w2552yi4ybx5ql14kmmfjl2xa4r9mbibi71gpm0n94v"; depends=[dplyr igraph threejs visNetwork]; };
   epidata = derive2 { name="epidata"; version="0.4.0"; sha256="0v3s1vrf2iqh03rkkwrlz6mhpbsbjxkayrqdx04vrnja4i9ljshk"; depends=[dplyr httr jsonlite purrr readr rvest stringi tidyr tinytest xml2]; };
   epidatr = derive2 { name="epidatr"; version="1.1.1"; sha256="1qiidg3fq2ccm6l8r080fg9mwdvcnksl338z2navv9w4jq7kjwr8"; depends=[cachem checkmate cli glue httr jsonlite magrittr MMWRweek openssl purrr rappdirs readr tibble usethis xml2]; };
   epidm = derive2 { name="epidm"; version="1.0.4"; sha256="0ncjfhq45gs1w0kpkpdwfs43iccl6pq8yrc2999g3r5dsiw06lyq"; depends=[data_table DBI odbc phonics purrr readr stringi stringr]; };
   epifitter = derive2 { name="epifitter"; version="0.3.0"; sha256="104hl3b3951psi023hv95486ygcv9ilmqkzw96yygym7rhkaww9m"; depends=[DescTools deSolve dplyr ggplot2 knitr magrittr minpack_lm tibble tidyr]; };
   epiflows = derive2 { name="epiflows"; version="0.2.1"; sha256="1d7j2w9jjscny0ax33k1wy0hcr2pn6ck491vfm327lx4jpld8pfd"; depends=[epicontacts geosphere ggmap ggplot2 htmltools leaflet sp tibble visNetwork]; };
   epigraphdb = derive2 { name="epigraphdb"; version="0.2.3"; sha256="11ja2r024a4sfk6xjhwn2mj4fz2msf6jx85w3cxr2hvp9sl3zgc9"; depends=[glue httr jsonlite magrittr purrr tibble]; };
+  epigrowthfit = derive2 { name="epigrowthfit"; version="0.15.2"; sha256="1wzb92baz3aw3y15fdc3r8nanjzkgshhbi57hq7x8ybdzrwn6rz8"; depends=[Matrix nlme RcppEigen TMB]; };
   epikit = derive2 { name="epikit"; version="0.1.6"; sha256="1lw1hiccxw705pa9kkyc7gvyg3vggaqri4nfxhasjxhxp2wy6bfz"; depends=[binom dplyr forcats ggplot2 glue rlang scales sf tibble tidyr tidyselect]; };
   epilogi = derive2 { name="epilogi"; version="1.0"; sha256="0p5aidj9xmlw6lyb4bscb7xkjkfs4jmc4ax844bhsgl6v2y91n6b"; depends=[Rfast]; };
   epimdr = derive2 { name="epimdr"; version="0.6-5"; sha256="1nxdlz7gl9vrha9iw92y0s9dmm101gkz0rsqxqg1rdxanr6hs6sh"; depends=[deSolve polspline shiny]; };
@@ -9632,7 +9793,8 @@ in with self; {
   epitools = derive2 { name="epitools"; version="0.5-10.1"; sha256="0jqn3pas4lsans50jwakmvpyc7m7x0kxq6dzyckd3vgww56qa65l"; depends=[]; };
   epitrix = derive2 { name="epitrix"; version="0.4.0"; sha256="08cz2p9xxa966a2v8kay00l3pmgfgmwzlh5pnx04s19rmar13z02"; depends=[distcrete dplyr purrr rlang sodium stringi tidyr]; };
   epitweetr = derive2 { name="epitweetr"; version="2.2.16"; sha256="0xniwd6r1jyn2ifw8y4d9c3dl4maik6p4lw0nghb9z9q9xigjlak"; depends=[bit64 crul curl dplyr DT emayili future ggplot2 htmltools httpuv httr janitor jsonlite keyring knitr lifecycle magrittr openxlsx plotly plyr processx readxl rlang rmarkdown rnaturalearthdata rtweet shiny sp stringr tibble tidytext tidyverse xml2 xtable]; };
-  epiworldR = derive2 { name="epiworldR"; version="0.0-4"; sha256="1p9yvxphk9kr743g9cj5yq5g1h1j094aih6nq4xd6i9lx7amfiyz"; depends=[cpp11]; };
+  epiworldR = derive2 { name="epiworldR"; version="0.1-0"; sha256="0jwb4p3cpsq0m2wlmhqs1dxxvqf7s6x1fw1wrffbw93gf4j4pyx3"; depends=[cpp11]; };
+  epiworldRShiny = derive2 { name="epiworldRShiny"; version="0.1-0"; sha256="0xffsvswwaxv3kcy4s9iznwmadb5r1p4darpkkplz1zvfma9sy5c"; depends=[DT epiworldR ggplot2 plotly shiny shinycssloaders shinydashboard shinyjs]; };
   eplusr = derive2 { name="eplusr"; version="0.16.2"; sha256="1b9kqrma6ayzsj146fdb2w2pwzmz1r6yy9g0abhx745gll8g9gqr"; depends=[callr checkmate cli data_table lubridate processx R6 RSQLite stringi units]; };
   eply = derive2 { name="eply"; version="0.1.2"; sha256="0al44pvqf6ls3dh129vlv3g56hk1nbql09rj0qsb04d9kaz9anrp"; depends=[magrittr]; };
   epm = derive2 { name="epm"; version="1.1.2"; sha256="1zziy07ydrxma5qhnxha5g2zm02yi6bvw2vv3w6sanrj9p4kakav"; depends=[ape pbapply Rcpp RcppProgress sf terra viridisLite]; };
@@ -9648,13 +9810,15 @@ in with self; {
   epubr = derive2 { name="epubr"; version="0.6.4"; sha256="0cv1zkv27ab4h2lq8s4lgizvdrw0238lr042aw8rns27zbqz7is1"; depends=[dplyr magrittr tibble tidyr xml2 xslt]; };
   epwshiftr = derive2 { name="epwshiftr"; version="0.1.4"; sha256="075yvrxyjswkx03fwns2pa7plz5hjlpjyp5xq48s7i0ya3x9x55w"; depends=[checkmate cli data_table eplusr fst future_apply jsonlite PCICt progressr psychrolib R6 rappdirs RNetCDF units]; };
   epxToR = derive2 { name="epxToR"; version="0.4-1"; sha256="00m64ham9fd9dsw37ic2m62fy4pvmwfwmjx8cg6n4rwbgq9q49sg"; depends=[httr XML]; };
-  eq5d = derive2 { name="eq5d"; version="0.15.2"; sha256="1bra1jbayjdpr663lacmgj8yik670y82wi3zmc0iy5vz9hssjfwi"; depends=[]; };
+  eq5d = derive2 { name="eq5d"; version="0.15.3"; sha256="1rynjc0bvihkk3arrcl0s16fa9p8avddhr62k60crc4xaibhvkz6"; depends=[]; };
+  eq5dsuite = derive2 { name="eq5dsuite"; version="1.0.0"; sha256="1dy52swx5mq9xs2c0c4xa01dkpzffbyydfk6h83wh7hy27ml4zr8"; depends=[dplyr ggplot2 moments rappdirs RColorBrewer rlang scales stringr tidyr]; };
   equalCovs = derive2 { name="equalCovs"; version="1.0"; sha256="18w7panyd6mhdr3x1iz9fkrw7min22rishs4xhkxgxs3nnyglkrn"; depends=[]; };
   equaltestMI = derive2 { name="equaltestMI"; version="0.6.1"; sha256="09wh4907vf54z3g2a1i1j4m5vkaz97jp3qyrmxbg0bbbq0c68ffg"; depends=[lavaan]; };
-  equatags = derive2 { name="equatags"; version="0.2.0"; sha256="039v1lj8ydw3lji8ycklbprd569f7g0lc11sb2ij262wlr0prm1m"; depends=[katex xml2 xslt]; };
+  equatags = derive2 { name="equatags"; version="0.2.1"; sha256="028mpd5idi84znlry494f96p8p178v9yccw4cxg56m1agbw391hs"; depends=[katex xml2 xslt]; };
   equate = derive2 { name="equate"; version="2.0.8"; sha256="0yjgnhn1hj5rs68qn51caia4zb78hh7vipm4411ng28cn9cxzdm4"; depends=[]; };
-  equateIRT = derive2 { name="equateIRT"; version="2.3.0"; sha256="18rs6n4kgbiikkljppnacd1zkv2wp8xc8ibk9xslrhshxwwr0576"; depends=[mirt statmod]; };
+  equateIRT = derive2 { name="equateIRT"; version="2.4.0"; sha256="0i3bvldalqrlz9qalpylybn896nkdpm5xk4m62sxhm1bfrd0nm98"; depends=[mirt statmod]; };
   equateMultiple = derive2 { name="equateMultiple"; version="0.1.2"; sha256="150srrf8msr6jzyri6632xws0g2lnj34kvj7hqrvbiwkad1aqq7m"; depends=[equateIRT numDeriv Rcpp RcppArmadillo statmod]; };
+  equatiomatic = derive2 { name="equatiomatic"; version="0.3.3"; sha256="1zb8pnpdvn6159h43h4fr9sfp1fv9rgknv4wv1wra6ris204764b"; depends=[broom broom_mixed knitr shiny]; };
   equil2 = derive2 { name="equil2"; version="1.0.0"; sha256="1dmd8ssgv0a0ccmk906vbx61qqdq4h033a8173i7s8c58qfz8yhb"; depends=[units]; };
   equivUMP = derive2 { name="equivUMP"; version="0.1.1"; sha256="05ihbr6dd9qv89ll90ynk4g3d3xy2w5q0m696djfa63f1x92c01w"; depends=[]; };
   equivalence = derive2 { name="equivalence"; version="0.7.2"; sha256="170l5gnk0dkjkfsx7qyrw56ircwsjzz9cvhakgyrqh7bj5734i79"; depends=[boot lattice PairedData]; };
@@ -9665,43 +9829,41 @@ in with self; {
   ercv = derive2 { name="ercv"; version="1.0.1"; sha256="0rs4yhm9sjnqkrgqqy6b8wj9fgk910hxc8d7zi4qwql0v1gid27l"; depends=[]; };
   erer = derive2 { name="erer"; version="3.1"; sha256="03pdq3p5c5f20959hgk5q2cx5x10bpgf0qg4z1nvsf31vc5ni77v"; depends=[lmtest systemfit tseries urca]; };
   erfe = derive2 { name="erfe"; version="0.0.1"; sha256="1v6xca2zwdg494mdb97dwg2xlqsr51919plylnl04d8dgg5adhz9"; depends=[Matrix mvtnorm]; };
-  ergMargins = derive2 { name="ergMargins"; version="1.2"; sha256="0rxd7aldvkn5b106ni93gcr1501wcc759s85za1za4k11hrig0fm"; depends=[btergm dplyr ergm Matrix network numDeriv sampling sna]; };
+  ergMargins = derive2 { name="ergMargins"; version="1.3"; sha256="0mr01ckxn8l8fjxlld05ag18d04h17wbnrgpry46hz38axl41zzj"; depends=[btergm dplyr ergm Matrix network numDeriv sampling sna]; };
   ergm = derive2 { name="ergm"; version="4.6.0"; sha256="1xx767l4z38wkxlxwq62y4khjjsz10fsy36x0s74fnzb746acwdl"; depends=[coda knitr lpSolveAPI magrittr MASS Matrix memoise network purrr Rdpack rlang rle robustbase statnet_common stringr tibble trust]; };
-  ergm_count = derive2 { name="ergm.count"; version="4.1.1"; sha256="0cj9jdxxpkgvs658nxxndd9pbxb7l52vzhipkjiimd6q99hr6s24"; depends=[ergm network statnet_common]; };
+  ergm_count = derive2 { name="ergm.count"; version="4.1.2"; sha256="085h2dn9dz9i05kjdm3ysgp7lzqdniq16xrvc11b4q1g9av71klv"; depends=[ergm network Rdpack statnet_common]; };
   ergm_ego = derive2 { name="ergm.ego"; version="1.1.0"; sha256="1wflvj946xkiy0xzq53x13v9iqj64hc7wcqzqazkvlngigibh5gl"; depends=[dplyr egor ergm network purrr RColorBrewer statnet_common survey tibble]; };
   ergm_multi = derive2 { name="ergm.multi"; version="0.2.1"; sha256="00hrl0cz81kjfp49sc3ma4jxxxgnjc6aald2drs190ks43bx17g0"; depends=[ergm glue Matrix network purrr Rdpack rlang rle statnet_common tibble]; };
-  ergm_rank = derive2 { name="ergm.rank"; version="4.1.0"; sha256="1ivwqlyx48smm9dmam9z0x6yqhmy1ypmmhzfhs5j3pq5vfwfc87c"; depends=[ergm network statnet_common]; };
+  ergm_rank = derive2 { name="ergm.rank"; version="4.1.1"; sha256="059s4zdb5fm8wl130nnxww1ry57d3p6rd5zmn9pf94iisjpkxxij"; depends=[ergm network Rdpack statnet_common]; };
   ergmgp = derive2 { name="ergmgp"; version="0.1-1"; sha256="0463wg1g1vd14fwgnvm8aa20vvklvpaqdv4wn6jaybmn8y7kxi16"; depends=[ergm network networkDynamic statnet_common]; };
   ergmharris = derive2 { name="ergmharris"; version="1.0"; sha256="1bfijhsljlykb94wi25lbpv35zkmgqpmgzmxcq98gjvzbn5j9pdq"; depends=[]; };
   ergmito = derive2 { name="ergmito"; version="0.3-1"; sha256="0djcfwxr4diwfjvim6mbz1g28bzsd94s78xw5kvn5vahiwjpdd61"; depends=[ergm MASS network Rcpp RcppArmadillo texreg]; };
   erify = derive2 { name="erify"; version="0.4.0"; sha256="014q4crfa92i4fb4mrbl68ai0l8asjwwnv3l2m11gfnny41p4bks"; depends=[glue]; };
-  ern = derive2 { name="ern"; version="1.3.1"; sha256="0f1nkjb1ra89rz2pz1ayyrv0x91wpzs0rhsrxj9kipl1ryd4lamn"; depends=[assertthat dplyr EpiEstim ggplot2 lubridate patchwork rjags runjags tibble tidyr zoo]; };
+  ern = derive2 { name="ern"; version="2.0.0"; sha256="13hw1ji3d8dqr8al4rykg75a392w4306gmr3m2mlrwdy7rzi9pyi"; depends=[assertthat coda dplyr EpiEstim ggplot2 lubridate patchwork rjags runjags stringr tibble tidyr zoo]; };
   erp_easy = derive2 { name="erp.easy"; version="1.1.0"; sha256="193n45w0rq3cy0nmxvv0h6s3yr8kfjlg90nd4dnqlsq85zlsizij"; depends=[gtools plyr signal]; };
   err = derive2 { name="err"; version="0.2.0"; sha256="1915b0vmqdd8whwdrqjphld1jaxawh5b7di6wf7q3sx779lblsrs"; depends=[]; };
-  errint = derive2 { name="errint"; version="1.0"; sha256="1ya7fsvwhmgxw87r32m4345n8pw2pbpv026xvml03s1kiam8qwbw"; depends=[rootSolve VGAM]; };
   errorist = derive2 { name="errorist"; version="0.1.2"; sha256="195c8bbxi22l9qyhj4ndjmwhcmk2b019vxcggsp2iaas48y4v6wi"; depends=[searcher]; };
   errorlocate = derive2 { name="errorlocate"; version="1.1.1"; sha256="1qml2qd63iqswb0zvnx9m3ia0zq7q20ycllhds3bwa4fwg25pfsp"; depends=[lpSolveAPI validate]; };
   errors = derive2 { name="errors"; version="0.4.1"; sha256="0pyp1adhyp5kak4x9niyj3ncmda1xydsx2sfa7gjbm2fzazyslbh"; depends=[]; };
   errum = derive2 { name="errum"; version="0.0.3"; sha256="18frrfnhnmg4fjlpfwj8aklzfwafpwqvagm0aschkqc8mz6wnjbz"; depends=[Rcpp RcppArmadillo]; };
   es_dif = derive2 { name="es.dif"; version="1.0.2"; sha256="1swxg8mdp9jj9f0x0cawhhbx8gmmpsgqlbifx2v04a2vkgdkigqf"; depends=[]; };
   esDesign = derive2 { name="esDesign"; version="1.0.3"; sha256="0lnz40d8s9pmxccsbd9g80n0k454xgicjfdpbfrq7rnyb4pdk9l2"; depends=[]; };
-  esaBcv = derive2 { name="esaBcv"; version="1.2.1.1"; sha256="0d2z03jab1c59v9x0qfwbipf0zbdz7zqj96ndbs0wnpjpgrvcp1d"; depends=[corpcor svd]; };
   esaddle = derive2 { name="esaddle"; version="0.0.7"; sha256="1r79qcirlx7g9w523nz81f5f22paid5dhag2lqj7jf33w0ggaknn"; depends=[doParallel mvnfast plyr Rcpp RcppArmadillo]; };
   esaps = derive2 { name="esaps"; version="0.2.2"; sha256="0yys40ki5dy62fds4kfwji6qzq5mbmvqps85maqgsimal7p7gx3n"; depends=[dplyr plyr readODS readxl tidyr]; };
   esback = derive2 { name="esback"; version="0.3.1"; sha256="0l2v4y2sgfyc0a6ap2ww93y44jxijnxjma16p0bsh3clrvzbvcrr"; depends=[esreg]; };
   esc = derive2 { name="esc"; version="0.5.1"; sha256="0gns7gz55p6pha05413r3hlvd7f2v1amxkg13d197mab1ypqic7q"; depends=[]; };
-  escalation = derive2 { name="escalation"; version="0.1.8"; sha256="14nvjrzkfr9ijn7z9absdw0d8814xm6al8lwnirdhq96jvlqh05n"; depends=[binom BOIN dfcrm DiagrammeR dplyr ggplot2 gtools magrittr mvtnorm purrr R6 RColorBrewer stringr tibble tidyr tidyselect trialr viridis]; };
+  escalation = derive2 { name="escalation"; version="0.1.9"; sha256="1y25xmwf4gb5d5n6z8n06ignjkcrgffak5ca4gjw89pr05284q5q"; depends=[binom BOIN dfcrm DiagrammeR dplyr ggplot2 gtools magrittr mvtnorm purrr R6 RColorBrewer stringr testthat tibble tidyr tidyselect trialr viridis]; };
   esci = derive2 { name="esci"; version="1.0.2"; sha256="0rc43xwkn1l5qxkki88d51yp3qbdw2r369f6i04r5yxa042a5kqj"; depends=[ggbeeswarm ggdist ggh4x ggplot2 ggtext glue jmvcore mathjaxr metafor multcomp R6 Rdpack rlang sadists statpsych stringr]; };
   eseis = derive2 { name="eseis"; version="0.7.3"; sha256="0fn55mb6yklwjh0ihczjchxrxvnblzbifq59158zfmz407rrfk5g"; depends=[caTools colorspace extraDistr fftw IRISSeismic matrixStats minpack_lm Rcpp reticulate rmarkdown shiny signal terra XML]; };
   eselect = derive2 { name="eselect"; version="1.1"; sha256="04918ping7rxb0n5fkllkcv332gwhqq2f1fqi5nrbx65k7lrjmfy"; depends=[CompAREdesign]; };
   esem = derive2 { name="esem"; version="2.0.0"; sha256="035f864na44lqdya6zbivyg1advan9mrfz5c61hxkvlv63b3v8ay"; depends=[dplyr GPArotation lavaan magrittr psych rlang tibble tidyr]; };
-  esemifar = derive2 { name="esemifar"; version="1.0.2"; sha256="1v6iw5r54ny08xfi0ynacl8l3jain0adplcrwma5gg5p0k799aaw"; depends=[fracdiff smoots]; };
+  esemifar = derive2 { name="esemifar"; version="2.0.1"; sha256="1ypylcyyq516d9w1s920m92h7a6c6yb837720hbmx37vjjz6l4dm"; depends=[fracdiff furrr future ggplot2 Rcpp RcppArmadillo smoots]; };
   eshrink = derive2 { name="eshrink"; version="0.1.2"; sha256="0min4j1dyd08i0fyn9a4iasjlhq08bn74bjz8vj1gq9l114v795k"; depends=[glmnet MASS]; };
   esmisc = derive2 { name="esmisc"; version="0.0.3"; sha256="1d6xrdxwn85c8s60s7vzaymh7wa9f7fzd79hq5spzd12fr3zisvj"; depends=[ggplot2 raster readr]; };
   esmprep = derive2 { name="esmprep"; version="0.2.0"; sha256="076sm26mkkvig2g04k32z2dlp2h9gnqgzckhirl4pqm01siknl61"; depends=[lubridate]; };
   esmtools = derive2 { name="esmtools"; version="1.0.1"; sha256="0jrq3ccz6zv1ic7a5sqvk8h3vgrq1lkkckadsik8x1a9bnsv0qii"; depends=[base64enc dplyr DT fs ggplot2 ggpubr htmltools jsonlite kableExtra knitr lubridate stringr tidyr]; };
-  espadon = derive2 { name="espadon"; version="1.6.0"; sha256="18vmaml5hxq9xwh2n7fhlfak3wdzkhwig6k2jfwrixv3yfqcwlfb"; depends=[colorspace DT igraph js mathjaxr Matrix misc3d Morpho openxlsx progress qs Rcpp Rdpack rgl Rvcg shiny shinyWidgets]; };
-  esquisse = derive2 { name="esquisse"; version="1.2.0"; sha256="05c8vvdji8rcmxxahhxxsddvv9qh2naym4r67rdgicam7w7km60s"; depends=[bslib datamods ggplot2 htmltools jsonlite phosphoricons rlang rstudioapi scales shiny shinybusy shinyWidgets]; };
+  espadon = derive2 { name="espadon"; version="1.7.2"; sha256="08pjzi992apgkxiwv88m0gq7i156lqz5vmlkm5lfcx8w3bjj0j3d"; depends=[colorspace DT igraph js mathjaxr Matrix misc3d Morpho openxlsx progress qs Rcpp Rdpack rgl Rvcg shiny shinyWidgets sodium]; };
+  esquisse = derive2 { name="esquisse"; version="2.0.0"; sha256="0w37x5w6kvscwbr6d157ahmaigafj3ccn3zjasqazrzzlwjns3lm"; depends=[bslib datamods downlit ggplot2 htmltools jsonlite phosphoricons rlang rstudioapi scales shiny shinybusy shinyWidgets]; };
   esreg = derive2 { name="esreg"; version="0.6.2"; sha256="1djyx8cc1pfza5n5ipg990jwwc1fjlsiz817iifwv9iw8g9vkda4"; depends=[Formula quantreg Rcpp RcppArmadillo]; };
   ess = derive2 { name="ess"; version="1.1.2"; sha256="1cmw20nn39ssyqiyn50w0ws28mq4cd26yhzr7mv97haaqjjjkv5h"; depends=[igraph Rcpp]; };
   essHist = derive2 { name="essHist"; version="1.2.2"; sha256="0rvlxfcl42h4pjqf37mx7bc4k21iwvnys6l5rf2jsl7yk1b9hmbn"; depends=[Rcpp]; };
@@ -9709,10 +9871,10 @@ in with self; {
   essurvey = derive2 { name="essurvey"; version="1.0.8"; sha256="1b78am4vnyg3k2hjjkjyhnjgm6rsmjwvqys030qybkgfplsbgra3"; depends=[haven httr rvest tibble xml2]; };
   estadistica = derive2 { name="estadistica"; version="0.2.3"; sha256="1l5ngjqm301rr1amsqdkazf7dg7c8nd0pvwy0hrsjk0m630q1kc4"; depends=[data_table dplyr forecast ggplot2 gridExtra knitr plotly rio shiny shinydashboard tidyr]; };
   estatapi = derive2 { name="estatapi"; version="0.4.0"; sha256="0wp5w9w0b832fnl7kchjqmychnf5896q50grw8hwdc1km14dfzkg"; depends=[dplyr httr purrr readr rlang tibble]; };
-  estimability = derive2 { name="estimability"; version="1.5"; sha256="0s6w8vnq0jc136d2mpf6pgg45rbxccrlsgdy89pgksnbaxhmyb5k"; depends=[]; };
+  estimability = derive2 { name="estimability"; version="1.5.1"; sha256="1sa42rczhzfj0dkn8v1pq6b752rh6h7x553gcgl7g27x75mbk9iw"; depends=[]; };
   estimateW = derive2 { name="estimateW"; version="0.0.1"; sha256="0fgbyfnxxs6kp9p17ljvj72q5vd4xn7kwh4zbmzjx45cdq101bjv"; depends=[Matrix matrixcalc plot_matrix R6]; };
-  estimators = derive2 { name="estimators"; version="0.7.3"; sha256="11aw3g85hivmid88fc13gh14jarmbpp717sqpsyisz4pvwv9zkqv"; depends=[distr ggh4x ggplot2 Matrix progress]; };
-  estimatr = derive2 { name="estimatr"; version="1.0.2"; sha256="1mq1xp9ckc47d1i67dbymz968vfvy4x71y813qjy19p10sxfci66"; depends=[Formula generics Rcpp RcppEigen rlang]; };
+  estimators = derive2 { name="estimators"; version="0.8.5"; sha256="16zpgscxn3f3alfi44yinacrf9222wbdg7ac1bs91bax7zn3k0zd"; depends=[extraDistr ggh4x ggplot2 Matrix progress]; };
+  estimatr = derive2 { name="estimatr"; version="1.0.4"; sha256="1v9fzqp7h48lb70d2kln4wq9fl36dsxhv7871hnmggkykzax3pvc"; depends=[Formula generics Rcpp RcppEigen rlang]; };
   estimraw = derive2 { name="estimraw"; version="1.0.0"; sha256="0z591mblbzc3qv9pyv8zn0r5r3d8f1l02sxdc649gl1lb40kalz0"; depends=[dplyr]; };
   estmeansd = derive2 { name="estmeansd"; version="1.0.1"; sha256="0wshkcqdajysymy765d5gg9z9bxdsy59h2rw0ls19nlf0dbj4z6s"; depends=[metaBLUE]; };
   estprod = derive2 { name="estprod"; version="1.2"; sha256="0pnpg8w6i1dmkcn6afj2jsm5mzvbxka80np1bldcxgmylrp5s35p"; depends=[boot Formula gmm lazyeval minpack_lm]; };
@@ -9731,8 +9893,8 @@ in with self; {
   eudract = derive2 { name="eudract"; version="1.0.0"; sha256="0p7524xm0yzj1yqs667n026kf7hyvvkv8z8n0avnzswhkyga3cnd"; depends=[dplyr ggplot2 httr magrittr patchwork scales tidyr xml2 xslt]; };
   eufmdis_adapt = derive2 { name="eufmdis.adapt"; version="0.1.0"; sha256="0n8qj5dhc32ckbjiwvcfc904j9jilyb87x325a2vbgb35gfhf7sn"; depends=[dplyr DT ggplot2 htmltools magrittr rlang shiny shinydashboard shinyWidgets tibble tidyselect]; };
   eulerian = derive2 { name="eulerian"; version="1.0"; sha256="0yhpnx9vnfly14vn1c2z009m7yipv0j59j3s826vgpczax6b48m0"; depends=[graph]; };
-  eulerr = derive2 { name="eulerr"; version="7.0.1"; sha256="1c8yf94ga4h6rf89fyajxfsaq5z6dx1z2840371vxj7kwj9slg3c"; depends=[GenSA polyclip polylabelr Rcpp RcppArmadillo]; };
-  eummd = derive2 { name="eummd"; version="0.1.4"; sha256="1g0h9b7d89kj7yh45flygmnc76dgjgwr8x8h1kvqq4bvgbwg51ry"; depends=[Rcpp]; };
+  eulerr = derive2 { name="eulerr"; version="7.0.2"; sha256="0aw4l338nymrmna7q01vxn2cc7wyzz3lhf1bwazy55qa4hmww3af"; depends=[GenSA polyclip polylabelr Rcpp RcppArmadillo]; };
+  eummd = derive2 { name="eummd"; version="0.1.9"; sha256="05c3c471picsfpkphf39wfh95vvmfmncwrnn04zizlgcp9b7z7ws"; depends=[Rcpp]; };
   eunis_habitats = derive2 { name="eunis.habitats"; version="0.1.0"; sha256="1w1382bmlgj9xirrarvmsh8kymgbbfybfmbcpnh02y4lyrdav78d"; depends=[tibble]; };
   eurlex = derive2 { name="eurlex"; version="0.4.7"; sha256="1arpixy6hcqdfn83rkb23s5zgvhkw1nv2hjv09k2k0g8s642y6yf"; depends=[antiword curl dplyr httr magrittr pdftools readr rlang rvest stringr tidyr xml2]; };
   eurocordexr = derive2 { name="eurocordexr"; version="0.2.4"; sha256="1srn0n1imp975b3sfaz27yz1fxm8gs7h34wa6mf5xw551gm6kwwv"; depends=[data_table fs lubridate magrittr ncdf4 ncdf4_helpers PCICt]; };
@@ -9746,11 +9908,11 @@ in with self; {
   evabic = derive2 { name="evabic"; version="0.1.1"; sha256="0f34shsacf9lyb2hlp2f0nhqy2ihy1zqg52npx8ap2li0s4y0x24"; depends=[]; };
   evalITR = derive2 { name="evalITR"; version="1.0.0"; sha256="0szrqcvi9x0wqxlyi1qyzpkj4y93qym8295nddip9ncl67kh2w09"; depends=[bartCause caret cli dplyr e1071 forcats gbm ggdist ggplot2 ggthemes glmnet grf haven MASS Matrix purrr quadprog rlang rpart rqPen scales SuperLearner]; };
   evalR = derive2 { name="evalR"; version="0.0.1"; sha256="0gb9bi9kfpqv0asbrcz2kdf1grxbjipdq97jmlgbzr5rn9jski01"; depends=[Rcpp]; };
-  evaluate = derive2 { name="evaluate"; version="0.23"; sha256="0p540jl6sixpgk08cp2h9470d28p7n66pfafiskvz3rba0vrrky9"; depends=[]; };
+  evaluate = derive2 { name="evaluate"; version="0.24.0"; sha256="1mkzb2f8rv0qd33h3gqq7idkpxnnx7zcr93xsmbm4lp7b157cgg2"; depends=[]; };
   evapoRe = derive2 { name="evapoRe"; version="1.0.0"; sha256="1a50pi9vch15cl5c3jb43slfdb7k0aa4s4pdx75va9icg738fiby"; depends=[data_table doParallel foreach lubridate pRecipe raster]; };
   evclass = derive2 { name="evclass"; version="2.0.2"; sha256="0khiifgfag8a6nsznnjr7h1vj5v2nzidv0qrkxlg12i42bg3xqpj"; depends=[FNN ibelief R_utils]; };
   evclust = derive2 { name="evclust"; version="2.0.3"; sha256="0z707x770rp7y3sii4w0xk61is2ib79mix14x48n942vb11mc91b"; depends=[FNN limSolve Matrix mclust plyr quadprog R_utils]; };
-  evd = derive2 { name="evd"; version="2.3-6.1"; sha256="0wc95hfj0gwkyghipdrhwd3s6q2agh9x2wy6y7dr6mjw7wnmjb36"; depends=[]; };
+  evd = derive2 { name="evd"; version="2.3-7"; sha256="0j2nnprzww1akin6mnj619wp6ihbd7jgbr2daj6lmgirbpqrv2aa"; depends=[]; };
   evdbayes = derive2 { name="evdbayes"; version="1.1-3"; sha256="1adlwyr1csjmwcpc7jsywzggpvr3fk500hyahzy774jmgj3j09vh"; depends=[]; };
   event = derive2 { name="event"; version="1.1.1"; sha256="0w3v8j61y7vr0cjl8a1rkvi4pyjlfhmzzn1n4dgkivac4iafzqjj"; depends=[rmutil]; };
   eventInterval = derive2 { name="eventInterval"; version="1.3"; sha256="0nybzy2mpmazcvz06mkv7l9741mjm3i2q2sindq0777vb2k4504v"; depends=[MASS]; };
@@ -9766,7 +9928,7 @@ in with self; {
   evidenceFactors = derive2 { name="evidenceFactors"; version="1.8"; sha256="0g9w1q8ir6qmvk5vvbpipiyias7nj74ks2h94ja7al8sz68gralx"; depends=[sensitivitymv]; };
   evident = derive2 { name="evident"; version="1.0.4"; sha256="1nffcfkny79d3f776p8j4g71cc3n991v56jwjyrg3vkgs05w13cn"; depends=[DOS2 MASS sensitivity2x2xk sensitivitymult sensitivitymv senstrat]; };
   evilDice = derive2 { name="evilDice"; version="1.0"; sha256="0lx0h4iav8yazxp50a4cn3g0si3w76r9zdb6n3xbwrjrdnaf3lc6"; depends=[]; };
-  evinf = derive2 { name="evinf"; version="0.8.8"; sha256="1v1g0lkabplyyv5h9cj7vnnncbgjwhx5gdy865zba27sjb8b8lrg"; depends=[doParallel doRNG dplyr foreach generics magrittr MASS mistr MLmetrics pscl purrr Rcpp RcppArmadillo Rdpack rlang stringi stringr tibble tidyr]; };
+  evinf = derive2 { name="evinf"; version="0.8.10"; sha256="142rg6d3ziq5y2qscnfiasg2f27va44gjc4qh8db3z4n1nw076a5"; depends=[doParallel doRNG dplyr foreach generics magrittr MASS mistr MLmetrics pscl purrr Rcpp RcppArmadillo Rdpack rlang stringi stringr tibble tidyr]; };
   evir = derive2 { name="evir"; version="1.7-4"; sha256="1h7a7z7v5k33y5hsdfczsri3vpbwspfgazhv4saknv2h11rgfpki"; depends=[]; };
   evmix = derive2 { name="evmix"; version="2.12"; sha256="02rabc9snci00s1x7h0svfr66lmw1wjcdg0149wc52mnccsdaivf"; depends=[gsl MASS SparseM]; };
   evoTS = derive2 { name="evoTS"; version="1.0.2"; sha256="104lb598rkm17n1as1g32va5aa285b86j4ac3wg4dxp8ckzl738d"; depends=[MASS mvtnorm paleoTS plotly pracma]; };
@@ -9776,8 +9938,8 @@ in with self; {
   evolvability = derive2 { name="evolvability"; version="2.0.0"; sha256="0l81d48zvvnbxlx1mj4qwga1kdzk05pzdvsp4ghi93pzzynfqn9s"; depends=[ape coda lme4 Matrix]; };
   evoper = derive2 { name="evoper"; version="0.5.0"; sha256="064fcpd04ws8v6sl0bakiw34jmmfpg1w5pkq94y2gh1c576x4vwz"; depends=[boot data_table deSolve futile_logger ggplot2 plot3D plyr reshape RNetLogo rrepast]; };
   evprof = derive2 { name="evprof"; version="1.1.2"; sha256="1nkgvx76cvy78pcnrfh8md2j3b9vmsissmq2s2nbb2rral272gnr"; depends=[cowplot dbscan dplyr ggplot2 jsonlite lubridate MASS mclust plotly purrr rlang tibble tidyr]; };
-  evreg = derive2 { name="evreg"; version="1.0.3"; sha256="0abcs1r48jbiqwnw14yw6hqda4angl7cnl3gnlfj4jx09wpqassw"; depends=[evclust]; };
-  evsim = derive2 { name="evsim"; version="1.4.0"; sha256="1qwyjm88z82b7m39rwm1989z4m4hl5wdy4qagkb3lw8hc31mhvxr"; depends=[dplyr dygraphs ggplot2 jsonlite lubridate MASS purrr rlang tidyr]; };
+  evreg = derive2 { name="evreg"; version="1.1.1"; sha256="10zld5hh6qq92pmr0ajkimjjvnm8a6dhh106w6mpanfz09lvj74f"; depends=[evclust]; };
+  evsim = derive2 { name="evsim"; version="1.5.0"; sha256="0v057l0qb3x16kw5xdjmw724kg9zlflagkkdvhwgc39z1by1ahbd"; depends=[dplyr dygraphs ggplot2 jsonlite lubridate MASS purrr rlang tidyr]; };
   evt0 = derive2 { name="evt0"; version="1.1-4"; sha256="0hqsv72wswnmgirhwb671snmg65qb1j77pfvzaqw9mi8lmvqalpq"; depends=[evd]; };
   evtclass = derive2 { name="evtclass"; version="1.0"; sha256="1ny43sry257cxlg56f0lj1szv9ci3ymskj6l5sn43l5a2pq62g4l"; depends=[evd fitdistrplus RANN]; };
   evtree = derive2 { name="evtree"; version="1.0-8"; sha256="1dmzbsyrg8wwzzqcxzqmgm7yai37lh9lkjhizhr2h0k03s5xdv1k"; depends=[partykit]; };
@@ -9807,22 +9969,21 @@ in with self; {
   executablePackeR = derive2 { name="executablePackeR"; version="0.0.2"; sha256="1510lhcdzlss96lpmvzv8apnb774y6ayij9cdihl5sa5kzap0nbp"; depends=[automagic cli rstudioapi]; };
   exif = derive2 { name="exif"; version="0.1.0"; sha256="12phqn5x1x0xs2xczl3064q983dalm261vqpyafhdcndm1y3gwbc"; depends=[Rcpp]; };
   exifr = derive2 { name="exifr"; version="0.3.2"; sha256="0iqm513h7951q3hg8maf2hbprqmsm93cb3mbg3g91qawpx77494c"; depends=[curl jsonlite plyr rappdirs tibble]; };
-  exiftoolr = derive2 { name="exiftoolr"; version="0.2.3"; sha256="085lgv8nfmlg180ym36r1zyfaka61zzsjs9y60yl4y6a14k81wfs"; depends=[backports curl data_table jsonlite zip]; };
+  exiftoolr = derive2 { name="exiftoolr"; version="0.2.4"; sha256="0ybxz6dw7kmd1638kp5qllfczdcpz9r06da1jqww4gfz4rw7q821"; depends=[backports curl data_table jsonlite zip]; };
   expDB = derive2 { name="expDB"; version="0.1.0"; sha256="0h7f9127vrd45lg7k0bkgq3cghxwv2z11p4pak20pakk13g82hj4"; depends=[DBI dplyr lubridate magrittr png readxl reshape2 rlang RSQLite stringr tibble tidyr tidyverse weaana]; };
   expSBM = derive2 { name="expSBM"; version="1.3.5"; sha256="0k8nkwqrcmmhv0x8a2np1rm5cyc9glyvndwdbnp03v0wrg8121sw"; depends=[blockmodels gtools mclust Rcpp RcppArmadillo]; };
   expandFunctions = derive2 { name="expandFunctions"; version="0.1.0"; sha256="0661l4ab0xhjidmh8ycvymhp3wgxafm7nd1c59bfpxhyhz76n1p4"; depends=[glmnet orthopolynom plyr polynom]; };
   expectreg = derive2 { name="expectreg"; version="0.53"; sha256="0g5py2096dyrcnvgmmba6g796ky150xk63ny6h6ylmajqfcypm1a"; depends=[BayesX colorspace fields Matrix mboost quadprog Rcpp RcppEigen]; };
-  experDesign = derive2 { name="experDesign"; version="0.3.0"; sha256="19rxfmvc7mamywm43ixwj0kca1y61k8xk9wdmhhyqq6y0wbvhxdg"; depends=[]; };
+  experDesign = derive2 { name="experDesign"; version="0.4.0"; sha256="0qhp9kwcjk3l7zwd1bnkv5880cylzmf2d0n2y27jnsc4wns72hfz"; depends=[]; };
   experiences = derive2 { name="experiences"; version="0.1.1"; sha256="1fqcq9jaw79nafm4qqbwm9qg2xlscjcyx3rmk7677xxrz7kywn94"; depends=[cli dplyr huxtable magrittr scales stringr tibble]; };
   experiment = derive2 { name="experiment"; version="1.2.1"; sha256="0lzxwpcz7m4wngfw0wyazkhh4icn9zjd8jmgf6ym2zzk3xc4dji1"; depends=[boot MASS]; };
   experimentr = derive2 { name="experimentr"; version="0.1.0"; sha256="0ji2031r108rzna00zhsh70kfcnhcscz0an0jv0vvj00hrakl0yr"; depends=[]; };
-  expertsurv = derive2 { name="expertsurv"; version="1.3.0"; sha256="0m8p902528z3ih0mzgds0jg8iv885279mmdpv0zhf2wc3hd99ri7"; depends=[abind BH dplyr flexsurv ggplot2 loo magrittr Rcpp RcppEigen RcppParallel Rdpack rlang rms rstan rstantools scales SHELF StanHeaders stringr survival tibble tidyselect]; };
   expint = derive2 { name="expint"; version="0.1-8"; sha256="1cn6c84pqf8bgk109qm4znn186h6s6cpll3d11cw144h0vh4yr8j"; depends=[]; };
-  expirest = derive2 { name="expirest"; version="0.1.5"; sha256="08gwy1fikj7kg7h6fc7w15621jc0prdqdhzx14ad6dvdi5rd33gv"; depends=[ggplot2 rlang]; };
-  explainer = derive2 { name="explainer"; version="1.0.0"; sha256="10ycixmhjyakb3di5p4v5c6vji6jypkf6za30rqh1c7mzzxbvlah"; depends=[cvms data_table dplyr egg ggplot2 ggpmisc ggpubr magrittr plotly tibble tidyr writexl]; };
+  expirest = derive2 { name="expirest"; version="0.1.6"; sha256="1pav81y4n23q42kfvbsdinfyklxwhspsxvfdyvs891zsvy2m93yn"; depends=[ggplot2 lifecycle rlang]; };
+  explainer = derive2 { name="explainer"; version="1.0.1"; sha256="13gx8yicc0vglljhjhqb42vhsv1zcv1mpyy5yr4cvvg96s9r1wi4"; depends=[cvms data_table dplyr egg ggplot2 ggpmisc ggpubr magrittr plotly tibble tidyr writexl]; };
   explor = derive2 { name="explor"; version="0.3.10"; sha256="102rjnllk5xxsik42dd8m1rryz5y2h2dwmidy2jy3zlylgc4dhdr"; depends=[dplyr DT formatR ggplot2 highr RColorBrewer scatterD3 shiny tidyr]; };
   exploratory = derive2 { name="exploratory"; version="0.3.31"; sha256="0m8visp57v2bgfbi3n6ywz2z7djd6bnd19hcz0jl2fjw9w5sw3hy"; depends=[data_table DT ggplot2 ggridges lemon lm_beta mediation remotes shiny shinydashboard weights]; };
-  explore = derive2 { name="explore"; version="1.2.0"; sha256="0sbrzng90pqda99jh53lbf342aj5dp8dxq9jyv9apj095n2yh5lf"; depends=[cli dplyr DT forcats ggplot2 gridExtra magrittr palmerpenguins rlang rmarkdown rpart rpart_plot shiny stringr tibble]; };
+  explore = derive2 { name="explore"; version="1.3.1"; sha256="0ays8gj7ba5rdih2hszgfz0asxsmx2jxna1cxv2ahni8rjr3h632"; depends=[cli dplyr DT forcats ggplot2 gridExtra magrittr palmerpenguins plotly rlang rmarkdown rpart rpart_plot shiny stringr tibble]; };
   exploreR = derive2 { name="exploreR"; version="0.1"; sha256="154j5wiiy9vqdvh1qvdkz2fdp2phcygbbjl7nj5nkn07xwxbsc77"; depends=[ggplot2]; };
   expm = derive2 { name="expm"; version="0.999-9"; sha256="1m7yiya3hyv6l87qi0vj9s9cmajnig7ah08id9y4yg4dr95278c3"; depends=[Matrix]; };
   export = derive2 { name="export"; version="0.3.0"; sha256="1b238d6aa1m2pcg7vdjbrvjj748j3fim5zvhng7lgkag2rzjqa56"; depends=[broom devEMF flextable officer openxlsx rgl rvg stargazer xml2 xtable]; };
@@ -9842,7 +10003,7 @@ in with self; {
   extraDistr = derive2 { name="extraDistr"; version="1.10.0"; sha256="1ad3xp4axbbid9i9vd4q8iccs3g3917yic2mas37mfwm5in4l9pl"; depends=[Rcpp]; };
   extrafont = derive2 { name="extrafont"; version="0.19"; sha256="13dbrlf54nbyfz3z2snz7x4m6rfnnhk2l8kkwpgcagzi5lar13sf"; depends=[extrafontdb Rttf2pt1]; };
   extrafontdb = derive2 { name="extrafontdb"; version="1.0"; sha256="115n42hfvv5h4nn4cfkfmkmn968py4lpy8zd0d6w5yylwpzbm8gs"; depends=[]; };
-  extrafrail = derive2 { name="extrafrail"; version="1.9"; sha256="1zk77g4ziv7vrqy212bs2nbjw6ncp0fzf4f74jkjbyqa7f4p8nhg"; depends=[expint msm pracma survival]; };
+  extrafrail = derive2 { name="extrafrail"; version="1.10"; sha256="1bkm1ja9ksd7b70sxc6jg2ha2ml0l5hwh4j2ph02imjxwcnanach"; depends=[expint msm pracma survival]; };
   extraoperators = derive2 { name="extraoperators"; version="0.3.0"; sha256="1kv72s5fcaiyp4sa2r4plm6psjhh07cdkl0zd7mdl25r8ixs1k3h"; depends=[]; };
   extras = derive2 { name="extras"; version="0.6.1"; sha256="1m807qay8zj4wbghajvmph87rwsjfhra5090adf8i42bif29phwb"; depends=[chk lifecycle]; };
   extraterrestrial = derive2 { name="extraterrestrial"; version="0.1.0"; sha256="0clss1zwgw1497n2xif82kplr1w1ajs4xs02041ads3l8craj7y1"; depends=[]; };
@@ -9853,7 +10014,7 @@ in with self; {
   extremis = derive2 { name="extremis"; version="1.2.1"; sha256="11y3cb5z6vsrpdffdr44afz3is0ikxvpb81a8pwc7p8q63rxq4a2"; depends=[emplik evd MASS]; };
   extremogram = derive2 { name="extremogram"; version="1.0.2"; sha256="13k869v6j4ik9p8w0gf1absvb45xbd3nnwghsz0ix7y0vyvry358"; depends=[boot MASS]; };
   exuber = derive2 { name="exuber"; version="1.0.2"; sha256="1r3hb4nlaph1a2s0dmd1n22ax9xgmdrg75w2xlbf8v1j3ifamvl9"; depends=[cli doRNG doSNOW dplyr foreach generics ggplot2 glue lubridate progress purrr Rcpp RcppArmadillo rlang tibble tidyr]; };
-  exvatools = derive2 { name="exvatools"; version="0.7.0"; sha256="1bq1m4gajd3wlv7qknyai962dhbf9lir36wym25q1a7mikgc3brh"; depends=[cli data_table openxlsx reshape2]; };
+  exvatools = derive2 { name="exvatools"; version="0.8.0"; sha256="090bxz71jc18h2nnmk4ja5irkh9qdihxa5pngq3c0ci7xhk6x52a"; depends=[cli data_table openxlsx reshape2]; };
   eye = derive2 { name="eye"; version="1.2.1"; sha256="0la9hlpryqczi6v6pyjx2hdhhdgm3aijs45v1nj76a867zmf77k9"; depends=[cli dplyr english lubridate magrittr pillar purrr rlang stringr tibble tidyr tidyselect]; };
   eyeRead = derive2 { name="eyeRead"; version="0.0.4"; sha256="0f6knzr4fdipbrvcsk0q9yjvkjjyc4wc252lq2s41gdvj3hv575d"; depends=[data_table tibble tidyr]; };
   eyeTrackR = derive2 { name="eyeTrackR"; version="1.0.1"; sha256="14m7l8v0ry1ami1jl0xjp743m1ycklgfwi06vk5amppdp5w3w3qr"; depends=[data_table plyr stringr]; };
@@ -9871,7 +10032,7 @@ in with self; {
   ezmmek = derive2 { name="ezmmek"; version="0.2.4"; sha256="0x62nzs1kayv95a6ldav732v79gahrri2khy1w678rxbzfx5wkqy"; depends=[assertable dplyr ggplot2 magrittr nls2 purrr rlang tidyr]; };
   ezplot = derive2 { name="ezplot"; version="0.7.13"; sha256="1apfchy9s09hvympq1ipvxsqizwgx05sza8k38yf9vl8nphcdpkc"; depends=[dplyr forcats ggplot2 lubridate rlang]; };
   ezr = derive2 { name="ezr"; version="0.1.5"; sha256="0r4zq0864xpnmczg1zpaasi348j1fllrn0rqfa5fmjh245chcpd4"; depends=[data_table DT ggplot2 ggridges moments shiny shinydashboard weights]; };
-  f1dataR = derive2 { name="f1dataR"; version="1.5.1"; sha256="11w04cbzgxh4zl8ra4kjaz9ghj2rczqa73g0d5vl43j4i0lrq25w"; depends=[cachem cli dplyr glue httr2 janitor jsonlite lifecycle magrittr memoise rappdirs reticulate rlang tibble tidyr withr]; };
+  f1dataR = derive2 { name="f1dataR"; version="1.5.3"; sha256="1w6h6626yjh5wsdlzq28mgmg0jr7z3zdfkcg12rf9znwbkw8wl01"; depends=[cachem cli dplyr glue httr2 janitor jsonlite lifecycle magrittr memoise rappdirs reticulate rlang tibble tidyr withr]; };
   fANCOVA = derive2 { name="fANCOVA"; version="0.6-1"; sha256="04mw0blgpwdk6wdg8llrig43psgc0vb42cbimvzbnym8v503dsn3"; depends=[]; };
   fAssets = derive2 { name="fAssets"; version="4023.85"; sha256="1yrs3mfq8ym5pdmf6236xwnc8176z7j36f2bzrrwdfp7kz2gq0id"; depends=[ecodist energy fBasics fMultivar MASS mvnormtest robustbase sn timeDate timeSeries]; };
   fBasics = derive2 { name="fBasics"; version="4032.96"; sha256="14461d6ac8hcn1x3srh45a4s5imafqb0xy8bn5l6d0qwhw4njmg1"; depends=[gss MASS spatial stabledist timeDate timeSeries]; };
@@ -9879,12 +10040,12 @@ in with self; {
   fCopulae = derive2 { name="fCopulae"; version="4022.85"; sha256="18gjlh254wm2yjyxrhrlbhjp6qvan3yway2m3fb0dqskd6dwmgq2"; depends=[fBasics fMultivar timeDate timeSeries]; };
   fDMA = derive2 { name="fDMA"; version="2.2.7"; sha256="02710ynd3y13pkbypmqh7lid9g3xn282kxf59yr5p3d76384z0gg"; depends=[doParallel foreach forecast gplots iterators itertools png psych Rcpp RcppArmadillo tseries xts zoo]; };
   fExtremes = derive2 { name="fExtremes"; version="4032.84"; sha256="0cg2rbyx9704gii2mr6bwc64mjbzxh5n1i6x06yrg3gpixzl3gy0"; depends=[fBasics fGarch timeDate timeSeries]; };
-  fGarch = derive2 { name="fGarch"; version="4032.91"; sha256="0jl76w657hlx1mf977dcm2yv1sv1fsy1nfiqnfnccqscyx9iz0z5"; depends=[cvar fastICA fBasics Matrix timeDate timeSeries]; };
-  fHMM = derive2 { name="fHMM"; version="1.2.2"; sha256="1133gnxyyb2dpid6b9y89kwxb01gblk4bb1k78pjnr0yh8r2v13x"; depends=[checkmate cli foreach MASS oeli padr progress Rcpp RcppArmadillo]; };
+  fGarch = derive2 { name="fGarch"; version="4033.92"; sha256="038lcx1sxkldqvmy9y14gmmbkqn4gqzlnff80s11fny004h6hdf8"; depends=[cvar fastICA fBasics Matrix timeDate timeSeries]; };
+  fHMM = derive2 { name="fHMM"; version="1.3.1"; sha256="1ha935ibhz4iicyx3azlk867pkrmj4lrjs1rsyqljf46zd63nfan"; depends=[checkmate cli foreach MASS oeli padr pracma progress Rcpp RcppArmadillo]; };
   fICA = derive2 { name="fICA"; version="1.1-2"; sha256="0dqw3qybnpdnvhfh5inkc4011bzhsxvhpv8zzmkm3q5m6hkc6rlg"; depends=[JADE Rcpp RcppArmadillo]; };
   fImport = derive2 { name="fImport"; version="4032.87"; sha256="1vcfzivsv88k9827dlm93radm0m33cwlhx8vqnz81ib5b65amqsx"; depends=[timeDate timeSeries]; };
   fMRIscrub = derive2 { name="fMRIscrub"; version="0.14.5"; sha256="1k0ixg82sgngmpbpl2b57lhamm19bfgcxszrwpf5qkvrh83ab3gs"; depends=[cellWise e1071 expm fMRItools gamlss MASS pesel robustbase]; };
-  fMRItools = derive2 { name="fMRItools"; version="0.4.2"; sha256="0rd77bsi51pgvmp1vyrcyg77yqj9vm5fnb98i9iyngyrx4hzv5m9"; depends=[matrixStats]; };
+  fMRItools = derive2 { name="fMRItools"; version="0.4.7"; sha256="0jpqv7g8xrq6m3rximpcxll8p84wnmww9fiy69fjqfxbg857x35w"; depends=[matrixStats]; };
   fMultivar = derive2 { name="fMultivar"; version="4031.84"; sha256="1f54cvl7m064cxkjr0rz84xprrbr76cw12mjmi8wld4ac5a16igc"; depends=[cubature fBasics mvtnorm sn]; };
   fNonlinear = derive2 { name="fNonlinear"; version="4021.81"; sha256="1dpzg880wnja357qy3r4v5qbqhx7pkknd0rph75xvvn38p4rc0ca"; depends=[fBasics timeDate timeSeries]; };
   fPASS = derive2 { name="fPASS"; version="1.0.0"; sha256="0xrvkcgbzd0xkrxc5p18bhfb5hlf5kxrqyjpy4482bjhr3rr714f"; depends=[dplyr expm face gamm4 gss lifecycle magrittr MASS Matrix mgcv nlme purrr rlang stringr testthat]; };
@@ -9893,15 +10054,17 @@ in with self; {
   fRegression = derive2 { name="fRegression"; version="4021.83"; sha256="12xwq90rch8s8jk3m4ckk6bxjf5phwx8hjwxjdsk2r07afvfc2zi"; depends=[fBasics lmtest MASS mgcv nnet polspline timeDate timeSeries]; };
   fSRM = derive2 { name="fSRM"; version="0.6.5"; sha256="0qp2pcq01vfgaczd57j4wmzvn4srzlwh7ya3sdp7vwzyb8dbjajn"; depends=[foreign ggplot2 gridExtra lavaan plyr reshape2 scales tcltk2]; };
   fTrading = derive2 { name="fTrading"; version="3042.79"; sha256="0xnfg4npfdrvmp1n6vbsm7if16n5j83b7y1i2m5b34cqnlz9d69y"; depends=[fBasics timeDate timeSeries]; };
-  fUnitRoots = derive2 { name="fUnitRoots"; version="4021.80"; sha256="1ycsa5mw43mdrp4xb39j8n0c393qmmnyc7ncbkcjgyms2xk8fhjh"; depends=[fBasics timeSeries urca]; };
+  fUnitRoots = derive2 { name="fUnitRoots"; version="4040.81"; sha256="0p8hjzqqkqzfainj5m48k73axwp0q7j7m9zg18smwx7zpcsicgsl"; depends=[fBasics timeSeries urca]; };
   fabCI = derive2 { name="fabCI"; version="0.2"; sha256="1vga322xpqzsh40n74v8vqiq8zbzrabvg58mp50bcx2ml0dikgnm"; depends=[MASS]; };
   fabMix = derive2 { name="fabMix"; version="5.1"; sha256="12d19qjjrdpihprqjd5x2iirn33rmfkl6i9zcyani7vv6b8cpaxp"; depends=[coda corrplot doParallel foreach ggplot2 label_switching MASS mclust mvtnorm RColorBrewer Rcpp RcppArmadillo]; };
-  fabR = derive2 { name="fabR"; version="2.0.1"; sha256="16qmd77g3sf55q9zd01mknic4616yjjl9l6k0nfsp00nkpi8gbb0"; depends=[bookdown digest dplyr fs haven janitor lifecycle lubridate purrr readr readxl rlang stringr tidyr usethis writexl xfun]; };
+  fabPrediction = derive2 { name="fabPrediction"; version="1.0.4"; sha256="1vachv2fgjlh932q28266b6x59sdvrmwp8si9pa4b543sdzklpms"; depends=[sae]; };
+  fabR = derive2 { name="fabR"; version="2.1.0"; sha256="1rqy3n3gnylpfc48pmrbm91y1lr87hkg44x9x53sky9044ms6flx"; depends=[bookdown dplyr fs haven janitor lifecycle lubridate purrr readr readxl rlang stringr tidyr usethis writexl xfun]; };
   fabisearch = derive2 { name="fabisearch"; version="0.0.4.5"; sha256="0yxmw7d7j3llcfs4d0dn2vv4ajalwz0qxrg7bqgql8dvwrb9jgkh"; depends=[doParallel doRNG foreach NMF reshape2 rgl]; };
   fable = derive2 { name="fable"; version="0.3.4"; sha256="0bzw9c68dpx048ihff9sy40d7aiqdqrspfrfyj9pd1pj3brn3blv"; depends=[distributional dplyr fabletools Rcpp rlang tibble tidyr tsibble]; };
   fable_ata = derive2 { name="fable.ata"; version="0.0.6"; sha256="1i596w593xzqlfq4mxw6cafqs9a551mj58ai4l0q7xav44hm9zlq"; depends=[ATAforecasting distributional dplyr fabletools lubridate rlang tibble tsbox tsibble]; };
   fable_prophet = derive2 { name="fable.prophet"; version="0.1.0"; sha256="12y2k05plg6d6lgqk6617q6z5m6xz33zdsjh56k86h230qqw68rp"; depends=[distributional dplyr fabletools lubridate prophet Rcpp rlang tsibble]; };
-  fabletools = derive2 { name="fabletools"; version="0.4.1"; sha256="0zw643g0mfypic4f2d1vi29n5pfc39z59jp5z40kzpjqc97vsqj6"; depends=[distributional dplyr generics ggdist ggplot2 lifecycle progressr R6 rlang scales tibble tidyr tidyselect tsibble vctrs]; };
+  fableCount = derive2 { name="fableCount"; version="0.1.0"; sha256="1swp679ajj285sm5kgqw5ic1g1nwsf8ljqkhghrikzqn0qqynjr0"; depends=[distributional dplyr fable fabletools glarma lubridate stringr tibble tidyr tscount tsibble tsibbledata]; };
+  fabletools = derive2 { name="fabletools"; version="0.4.2"; sha256="12s6x32m9nn6jriy7biqkzp62njbmih6h2hybx5jmcy17pccw5rr"; depends=[distributional dplyr generics ggdist ggplot2 lifecycle progressr R6 rlang scales tibble tidyr tidyselect tsibble vctrs]; };
   fabricatr = derive2 { name="fabricatr"; version="1.0.2"; sha256="1hyi0idhf88sg4lx0yyss17qp57v5j1p1bq22wdf2fgg11hnl68x"; depends=[rlang]; };
   fabricerin = derive2 { name="fabricerin"; version="0.1.2"; sha256="0ynvnxzxx1iybyy5pvwfsj5y9jjixyrpji9vcl5fq5mjnpg8mpqk"; depends=[glue htmltools]; };
   face = derive2 { name="face"; version="0.1-7"; sha256="08ri7mrp3az82x3yyydg7vrla8cdl8bxpcnxfv4cfdhxslks9qb7"; depends=[Matrix matrixcalc mgcv]; };
@@ -9919,6 +10082,7 @@ in with self; {
   factor256 = derive2 { name="factor256"; version="0.1.0"; sha256="17jmyhi7qm3prgaxa8hn84769czwxhhh3n9sib3cxq9diilri3y6"; depends=[]; };
   factorial2x2 = derive2 { name="factorial2x2"; version="0.2.0"; sha256="045887hwknwm92wlrp0jlvxj5aal50vpnc7ddbh7c8smawmrdwfd"; depends=[mvtnorm survival]; };
   factormodel = derive2 { name="factormodel"; version="1.0"; sha256="0yvp8mk42hi1vhrw29djabndc8pbbpjbr6bwss95wsmk7zvvf6i2"; depends=[dplyr gtools nnet pracma]; };
+  factorplot = derive2 { name="factorplot"; version="1.2.3"; sha256="0gh2rv518hz39sihv9b08v8ldyyac21djz6ynxdaajh0hcicvasf"; depends=[multcomp]; };
   factorstochvol = derive2 { name="factorstochvol"; version="1.1.0"; sha256="15ki0kaqam97zlm0mgl8pf2swrcqw46d5816aavwmn6jw2banksm"; depends=[corrplot GIGrvg Rcpp RcppArmadillo stochvol]; };
   factory = derive2 { name="factory"; version="0.1.0"; sha256="1715bx2rn8kk5qd196jnrv5f95l54n4y0aqqdzfkgrmqihcy8ahx"; depends=[purrr rlang]; };
   factset_analyticsapi_engines = derive2 { name="factset.analyticsapi.engines"; version="3.0.1"; sha256="0v96z837dii1q7mbpd48zwpl2qjzqnhignb80g0xkc4iygsnrrms"; depends=[caTools httr jsonlite R6 rlang]; };
@@ -9941,14 +10105,14 @@ in with self; {
   fam_recrisk = derive2 { name="fam.recrisk"; version="0.1"; sha256="1lyrq7bq7p7ijc2vf545nazw4akncz08548ya1dv3lsc5jmkgfzj"; depends=[]; };
   famSKATRC = derive2 { name="famSKATRC"; version="1.1.0"; sha256="1xbh0by4sjxrmy00v1svcj3lb98p9krpncbhpjbli1jd2p47yk60"; depends=[bdsmatrix CompQuadForm coxme kinship2]; };
   familial = derive2 { name="familial"; version="1.0.5"; sha256="079dw3rwh8p0g3x5n8bc6rvkjfxa9r1179vl9dpyv186zmi1palv"; depends=[DepthProc ggplot2 matrixStats]; };
-  familiar = derive2 { name="familiar"; version="1.4.6"; sha256="1992sn148cahnv8dzdcibc8ny6jp8iw39555mk66flvr0z4jv9rh"; depends=[data_table rlang rstream survival]; };
+  familiar = derive2 { name="familiar"; version="1.4.8"; sha256="1rlnp027r02d7hr2ppal6ljnbkp6xbw86gm2wfp2gsjmckrf7lp7"; depends=[data_table rlang rstream survival]; };
   fanc = derive2 { name="fanc"; version="2.3.11"; sha256="0lvzp18r5facwbbvjf00zgrlzhr4dp8f6f87fmy04dgqwj7pzwhh"; depends=[ellipse Matrix]; };
   fancycut = derive2 { name="fancycut"; version="0.1.2"; sha256="1xg5qjxf77g10h07x6rvb8c3klc9gbr77bkw352qpas268pkswl2"; depends=[]; };
   fangs = derive2 { name="fangs"; version="0.2.13"; sha256="11jcj9mk20lmqdwl5cczki5kzx4fdrci8xjg6g401ca1m00hhb1v"; depends=[]; };
   fanovaGraph = derive2 { name="fanovaGraph"; version="1.5"; sha256="1hffda52yk24slbgsfdgkpg3vsryfnhlw09r39cbyz483i7xd8d0"; depends=[DiceKriging igraph sensitivity]; };
   fanplot = derive2 { name="fanplot"; version="4.0.0"; sha256="08zd2af26ah1rdkzxi1sv4c4l06jpxd6m38q3xy657k2jm90rkkc"; depends=[]; };
   fansi = derive2 { name="fansi"; version="1.0.6"; sha256="0qqq8gz6sfr5yib4qmvk458qa0ypaz0n7f2ygjnpy2p5vy8cd7ga"; depends=[]; };
-  fanyi = derive2 { name="fanyi"; version="0.0.6"; sha256="047ag47lnw5p54zp5zwpdmnmngvssv8n55h2h6ypvfdcflybfnid"; depends=[digest ggfun httr2 jsonlite openssl rentrez rlang SSEparser uuid yulab_utils]; };
+  fanyi = derive2 { name="fanyi"; version="0.0.7"; sha256="1wl5sgnk154ivmnwdmp7bqm3q30rplc1c2gqfj3w3g3wlnzalvaa"; depends=[digest ggfun httr2 jsonlite openssl purrr rentrez rlang SSEparser uuid yulab_utils]; };
   faoutlier = derive2 { name="faoutlier"; version="0.7.6"; sha256="0dd8k5s0yv047p10jisqz13nflby4y0dg97r0nbjygzcq1ryx2bs"; depends=[lattice lavaan MASS mirt mvtnorm pbapply sem]; };
   faq = derive2 { name="faq"; version="0.1.1"; sha256="0knajqm9ydsjhn6xymfrcyf2b1kgfbiai8ai2zlm7p4mgfry504h"; depends=[htmlwidgets jsonlite]; };
   far = derive2 { name="far"; version="0.6-6"; sha256="0p0731vg1y57z8dmbrsa5gbnpf754q8yi5mm5h9480x1f8nk38bi"; depends=[nlme]; };
@@ -9956,10 +10120,11 @@ in with self; {
   farff = derive2 { name="farff"; version="1.1.1"; sha256="1hniqhc4mdnaq8bmpj2fmb6iwgys0al1kvcdiq08pmgj6hhzzjr3"; depends=[BBmisc checkmate readr stringi]; };
   farr = derive2 { name="farr"; version="0.3.0"; sha256="0y7vmxva1wjsplh7wfpz9jm26hz5qinbrp7na2gbmdwj78z4d38q"; depends=[DBI dbplyr dplyr lubridate magrittr readr rlang rpart stringr tibble tidyr]; };
   farrell = derive2 { name="farrell"; version="0.2.1"; sha256="0i546w5p40j9wqiq7qvbxw0426msavbdpnh258jcg6bagc6bywh8"; depends=[Benchmarking data_table dplyr DT magrittr miniUI readr rlang shiny shinycssloaders shinyWidgets tibble]; };
-  farver = derive2 { name="farver"; version="2.1.1"; sha256="1klnr73fhm7n46q85in1v9gi99y6rcdzzg4h4wvnbx23lxndmkqd"; depends=[]; };
+  farver = derive2 { name="farver"; version="2.1.2"; sha256="09gy2wmm3jp2k3q6zbmjl6z55a974221q7vi6xhmdd5abnwj722j"; depends=[]; };
   fasano_franceschini_test = derive2 { name="fasano.franceschini.test"; version="2.2.2"; sha256="18vpvynpzjmqhz8a2db2f3v5qvkd6a2q7xan1rryay20wgn7aj00"; depends=[Rcpp RcppParallel]; };
+  fase = derive2 { name="fase"; version="1.0.1"; sha256="11ygdxp4485dcrv9v28idhxv0s4gyc8hjajqbnxixljg5cdiv0vm"; depends=[RSpectra rTensor splines2]; };
   fasjem = derive2 { name="fasjem"; version="1.1.2"; sha256="1bbrcyyg96hakgla3604byrkn9034197vy2is048kdq20yr2y11n"; depends=[igraph]; };
-  fasstr = derive2 { name="fasstr"; version="0.5.1"; sha256="1kzk759xvba66fq4zw0p0kwfgbk42bw5z2fi7f8ziy4vzkpwcy93"; depends=[dplyr e1071 fitdistrplus ggplot2 lubridate openxlsx PearsonDS plyr purrr RcppRoll scales tidyhydat tidyr zyp]; };
+  fasstr = derive2 { name="fasstr"; version="0.5.2"; sha256="1r2xgxzzjc78d5grlpapc52b11qw0d01c1fahcvfccxjby51dywx"; depends=[dplyr e1071 fitdistrplus ggplot2 lubridate openxlsx PearsonDS plyr purrr RcppRoll scales tidyhydat tidyr zyp]; };
   fastAFT = derive2 { name="fastAFT"; version="1.4"; sha256="0vyjp2dyy72d7dfjjky6aygvl6kqm30mk11n5rcj51rydbxaawnc"; depends=[]; };
   fastDummies = derive2 { name="fastDummies"; version="1.7.3"; sha256="0sm02pxbabckxpi3mn36h5bz2wx5pyx7a1dhc2abc4c7fwpihsng"; depends=[data_table stringr tibble]; };
   fastFMM = derive2 { name="fastFMM"; version="0.2.0"; sha256="1crgl5961c0k1bq4d3xsl38hrwi3cayf1lj7pprbvdd1y3nyvz8b"; depends=[cAIC4 dplyr ggplot2 gridExtra lme4 lmeresampler lsei magrittr MASS Matrix mgcv mvtnorm progress refund Rfast stringr]; };
@@ -9979,27 +10144,31 @@ in with self; {
   fastRG = derive2 { name="fastRG"; version="0.3.2"; sha256="1ig6z8azl2vsl79nfs3s4f9v1f6f27vzc0kxb9zmvkpx3hfnlm7k"; depends=[dplyr ellipsis ggplot2 glue igraph Matrix RSpectra tibble tidygraph tidyr]; };
   fastRhockey = derive2 { name="fastRhockey"; version="0.4.0"; sha256="1xw4ylrsf9wylym79svazrmw2c9fmqk8n0sz1vypsm29dsic879k"; depends=[cli data_table dplyr glue httr janitor jsonlite lubridate magrittr progressr purrr Rcpp RcppParallel rlang rvest stringr tibble tidyr]; };
   fastSOM = derive2 { name="fastSOM"; version="1.0.1"; sha256="1fzy7lfx1fn9993h0qh6vbwq0w4gfgbdrprmzb1z3aqq6nqvmngm"; depends=[]; };
-  fastTS = derive2 { name="fastTS"; version="1.0.0"; sha256="09ns49dayxr4i78f6dffmwvm9y288x3bs0cfp0lr1qbzpy24vf4s"; depends=[dplyr ncvreg RcppRoll rlang yardstick]; };
+  fastTS = derive2 { name="fastTS"; version="1.0.1"; sha256="16icpdhrqx34q189iqkdpbxd95lhvsb39z4xz2b3lq80pbcri0i0"; depends=[dplyr ncvreg RcppRoll rlang yardstick]; };
   fastText = derive2 { name="fastText"; version="1.0.4"; sha256="1mrdiqj8pplyygsga1plx8b731i915lzjxhzslkbz6qk2jrj7632"; depends=[data_table ggplot2 glue Rcpp]; };
   fastTextR = derive2 { name="fastTextR"; version="2.1.0"; sha256="1hj3cplh0v062q6jm0j3r4spi5aac5bfas7sda9is9glpv6h3sgw"; depends=[Rcpp slam]; };
   fastTopics = derive2 { name="fastTopics"; version="0.6-163"; sha256="1nir53ich0xkpclrw34ry4mwih9s4vr7qv8xy6511ny43awznikm"; depends=[ashr cowplot dplyr ggplot2 ggrepel gtools htmlwidgets irlba Matrix pbapply plotly progress quadprog Rcpp RcppArmadillo RcppParallel Rtsne uwot]; };
   fastWavelets = derive2 { name="fastWavelets"; version="1.0.1"; sha256="1kz49iw3d37kby6hdk7zvsahms735w46pky186jz0qq9vh4agxn9"; depends=[Rcpp]; };
   fasta = derive2 { name="fasta"; version="0.1.0"; sha256="0wnppxn3039dj58xm0b66fsyq537bk8k8m56im11xj1iwc3zc6vw"; depends=[]; };
   fastadi = derive2 { name="fastadi"; version="0.1.1"; sha256="1hvi430ws1yzw10fp4z177wc1bnj11pxmvjsbmx0p54bcbb3a32a"; depends=[ellipsis glue logger LRMF3 Matrix Rcpp RcppArmadillo RSpectra]; };
-  fastai = derive2 { name="fastai"; version="2.2.1"; sha256="1glq64hhwrwp29scf851nb6nl83hpvvy8cj37z2r36r89i5inp4b"; depends=[generics ggplot2 ggpubr glue png reticulate]; };
-  fastbeta = derive2 { name="fastbeta"; version="0.2.0"; sha256="1lcs8zr25bk1gh9b7grpf1y4pkp455glh0c9vaa0gl6ygy2xd558"; depends=[adaptivetau deSolve]; };
+  fastai = derive2 { name="fastai"; version="2.2.2"; sha256="1x8s26rwp5bnzsl41wvq39dcc719xqpd0gqz0f74j4mfki824z8g"; depends=[generics ggplot2 ggpubr glue png reticulate]; };
+  fastbackward = derive2 { name="fastbackward"; version="1.0.1"; sha256="16idsbb5phdhnwh9gmgb56jadzcnbcyj0qclijlacq3wkwag5xiv"; depends=[MASS]; };
+  fastbeta = derive2 { name="fastbeta"; version="0.3.0"; sha256="0s843plibqbx2lfi4npp3pxq30rkiz768yjgc9fgpawq1nlp3ii0"; depends=[]; };
   fastcluster = derive2 { name="fastcluster"; version="1.2.6"; sha256="06cd3w62ijf0yx2yq0xgx6qw5lcrnn1033ygx6bl9dmhix2haal5"; depends=[]; };
   fastcmh = derive2 { name="fastcmh"; version="0.2.7"; sha256="0hib3r3pkfdi67bdy4pf1pw6869vq4b3pg1pq1zwpyy76nbnq9vl"; depends=[bindata Rcpp]; };
+  fastcmprsk = derive2 { name="fastcmprsk"; version="1.24.5"; sha256="1ymg79y913h4s55h1pbmbx0hx40khc0mq6348awzqjy8pjhz1mdl"; depends=[dynpred foreach Matrix survival]; };
   fastcox = derive2 { name="fastcox"; version="1.1.3"; sha256="0jn19v6mkwgyz8x63xrfgkgnf0f2rq338r5qkhz690mdzr4c47a3"; depends=[Matrix]; };
-  fastcpd = derive2 { name="fastcpd"; version="0.12.2"; sha256="1wfgrrb1vz1ljwm4vj3f462kq7f1sriy750jdsshavbfq4jjzjm1"; depends=[fastglm forecast glmnet Matrix progress Rcpp RcppArmadillo testthat tseries]; };
+  fastcpd = derive2 { name="fastcpd"; version="0.14.3"; sha256="0b5xlx80nlbmkp8h4rnz0367zxn2hlwpcb4zid5jq3q32rv8r6sz"; depends=[fastglm forecast glmnet Matrix progress Rcpp RcppArmadillo RcppClock testthat tseries]; };
+  fastdigest = derive2 { name="fastdigest"; version="0.6-4"; sha256="1809y57cvck6gssrwnycgqjnka6jxx17dbf927cvwih4v58abdmj"; depends=[]; };
   fasterElasticNet = derive2 { name="fasterElasticNet"; version="1.1.2"; sha256="1hr0wc6s6zpq1hkfgshf0dqjxb7s2849bb8lb04nmi6p42r3628g"; depends=[Rcpp RcppArmadillo]; };
   fasterize = derive2 { name="fasterize"; version="1.0.5"; sha256="1d63q77hfbn2ly8cwsik4gaavdhidpi7idf7qj2y5bi9xhd10kyl"; depends=[raster Rcpp RcppArmadillo wk]; };
   fastglm = derive2 { name="fastglm"; version="0.0.3"; sha256="0283kgk81cxbii7ljmp1rzqg5mzkvf7cj7lflhhhkgj5ljqina2i"; depends=[BH bigmemory Rcpp RcppEigen]; };
   fastglmpca = derive2 { name="fastglmpca"; version="0.1-103"; sha256="1yzk91g9aszazfm4gp70wfs21dbdi9dxlh95ylh839pivs78cvrc"; depends=[daarem distr Matrix MatrixExtra Rcpp RcppArmadillo RcppParallel]; };
   fastkmedoids = derive2 { name="fastkmedoids"; version="1.2"; sha256="1z98ndxhq2ag870g0xqkw04b4k722994vh0pq46bw8bqc9v7bpkk"; depends=[Rcpp]; };
+  fastkqr = derive2 { name="fastkqr"; version="1.0.0"; sha256="18zawflm5fam28y8f5ygf26nmi5if3h765grb5skkzibxnmpxdff"; depends=[dotCall64 MASS Matrix rlang]; };
   fastliu = derive2 { name="fastliu"; version="1.0"; sha256="1ykcqm1l8674hmp7j62skla9735gs15mqcd3q628vjvrwgcq0mxl"; depends=[Rcpp RcppArmadillo]; };
   fastlogitME = derive2 { name="fastlogitME"; version="0.1.0"; sha256="1wpbcjb3ncxl904492alikslnqg53zgx6psxx7qllspd43s8ymv7"; depends=[]; };
-  fastmap = derive2 { name="fastmap"; version="1.1.1"; sha256="0wvibiy16i30nzg5k80md68lpz7g6iwbl02j4fyqmbhns2fq08rn"; depends=[]; };
+  fastmap = derive2 { name="fastmap"; version="1.2.0"; sha256="0ilj7gcbnha6l61sqzk6wrj6l08mxyay49957izha7axj6i09nmi"; depends=[]; };
   fastmatch = derive2 { name="fastmatch"; version="1.1-4"; sha256="0symkcmyrqvz6hkawr40ga808rb3w4hy9ssfsi5ri8hykjn4r4cs"; depends=[]; };
   fastmatrix = derive2 { name="fastmatrix"; version="0.5-772"; sha256="0mcwzwr2cam48fmb5di04jxwscq2ixw0ikwwvb2ngx2rkap1nq3j"; depends=[]; };
   fastmit = derive2 { name="fastmit"; version="0.1.1"; sha256="13hczsfbzssd272kpbq8l2l64lqrkmi2j6f3xyp9jvvxdd506kq0"; depends=[Rcpp RcppArmadillo]; };
@@ -10011,7 +10180,7 @@ in with self; {
   fastrmodels = derive2 { name="fastrmodels"; version="1.0.2"; sha256="1333546nk429l6s4icbmx8hmh29wsc252wbmmhsmgb116l4ra9zi"; depends=[xgboost]; };
   fastshap = derive2 { name="fastshap"; version="0.1.1"; sha256="1j6bnkv4q8n85xlvzm5p6p4yg8wdp6an6skbvdif5g9c376hzqb2"; depends=[foreach Rcpp RcppArmadillo]; };
   fasttime = derive2 { name="fasttime"; version="1.1-0"; sha256="00290sxfa6nihahm3s9bslpsmyfm0cpziajmr9mg7grxrzx53ia6"; depends=[]; };
-  fastverse = derive2 { name="fastverse"; version="0.3.2"; sha256="10k749zff9nhrwgyvc1fvpp34mncc7958z35y2v5sb08my2x26r0"; depends=[collapse data_table kit magrittr]; };
+  fastverse = derive2 { name="fastverse"; version="0.3.3"; sha256="03jcgwsaxwx564dn7qmynah0l48hjs8nfx0wmv9a9x9sqw7aqknb"; depends=[collapse data_table kit magrittr]; };
   fat2Lpoly = derive2 { name="fat2Lpoly"; version="1.2.5"; sha256="08bbd17aqmfcacvk283bpf9cp1isf5pgfdciwxn0f7ahdzd81g4s"; depends=[kinship2 multgee]; };
   faux = derive2 { name="faux"; version="1.2.1"; sha256="143yc71cfsxnczi719ygrsynxry60nh8263gg8vwp3qrc80j80lh"; depends=[dplyr ggplot2 jsonlite lme4 rlang truncnorm]; };
   fauxnaif = derive2 { name="fauxnaif"; version="0.7.1"; sha256="1d2sfcknlaa4m3sq3cg65iq17x3ax0zgkgxkcyin3d8r3sw9k3p6"; depends=[cli rlang]; };
@@ -10045,7 +10214,7 @@ in with self; {
   fdaACF = derive2 { name="fdaACF"; version="1.0.0"; sha256="0qrsj25p6h2xg25v0ayk8x31d4whyy0mpf2xdpw3hcwhb71mbfhn"; depends=[CompQuadForm fda pracma vars]; };
   fdaMixed = derive2 { name="fdaMixed"; version="0.6.1"; sha256="1fv5jdz7ri9cf5wj0p0gdc60r75biifijqr1g3lz095cxsn7f9j0"; depends=[Formula Rcpp RcppArmadillo]; };
   fdaMocca = derive2 { name="fdaMocca"; version="0.1-1"; sha256="0y54d8a38d5hjnh8iw2r4zl2d2xz72hjddhxbar91jk6zf3kzpsy"; depends=[doParallel fda foreach Matrix mvtnorm]; };
-  fdaPDE = derive2 { name="fdaPDE"; version="1.1-17"; sha256="1h3v36mmlycs34z4a19sfjkr5xm8lq44qgv6jb908fy66m1fcsfa"; depends=[Matrix plot3D Rcpp RcppEigen rgl]; };
+  fdaPDE = derive2 { name="fdaPDE"; version="1.1-18"; sha256="0l5kv7vwwjbnfq13l74ij860fpp45hgvwqpxfnpqbxdkq2lfymcn"; depends=[Matrix plot3D Rcpp RcppEigen rgl]; };
   fdaPOIFD = derive2 { name="fdaPOIFD"; version="1.0.3"; sha256="0c773hidrg69gs9lzdcwf4hzzmid3kwf73pw6c807y1b4lgiai20"; depends=[FastGP fdapace ggplot2 magrittr MASS patchwork reshape2 tibble]; };
   fdaSP = derive2 { name="fdaSP"; version="1.1.1"; sha256="1vhnrw2shxnpd2vnqkjq8lqx344p3z488x8wzpkb8hxnxzmfp08w"; depends=[doParallel foreach ks pracma Rcpp RcppArmadillo Rdpack]; };
   fdacluster = derive2 { name="fdacluster"; version="0.3.0"; sha256="0mpnhd6qp4hif1sbxv52dyg3yfff8icn8xz7sximcjn00g81p343"; depends=[cli cluster dbscan dplyr fdasrvf forcats furrr ggplot2 lpSolve nloptr progressr purrr Rcpp RcppArmadillo rlang tibble tidyr withr]; };
@@ -10078,12 +10247,12 @@ in with self; {
   fechner = derive2 { name="fechner"; version="1.0-3"; sha256="0bassigcipwlr2g8cdjh8jyhmb903k3hla9gnigcbz7qwzlfwa86"; depends=[]; };
   fect = derive2 { name="fect"; version="1.0.0"; sha256="1m2ap1ispc2z1qdj341vx1knsjkqfzi6ys4z3hd9bp4g7bi0xsyx"; depends=[abind doParallel doRNG fixest foreach future GGally ggplot2 gridExtra MASS mvtnorm panelView Rcpp RcppArmadillo]; };
   federalregister = derive2 { name="federalregister"; version="0.2.0"; sha256="0qr8nd3ylnwcv1wxspw5i7ray5sh30zr648spg0lpqq8dp2b8p7b"; depends=[curl httr jsonlite]; };
-  fedmatch = derive2 { name="fedmatch"; version="2.0.5"; sha256="1k6gj0aaihxqwvvvic8s5bhjqlxg6m37yj3bk9hbxy1lijv89w8j"; depends=[BH data_table forcats magrittr purrr Rcpp scales SnowballC stringdist stringr]; };
+  fedmatch = derive2 { name="fedmatch"; version="2.0.6"; sha256="06clj31qk6ama56jmd9vpq5h1v7250aixgvaywh5j8fsrp1l7qg2"; depends=[BH data_table forcats magrittr purrr Rcpp scales SnowballC stringdist stringr]; };
   fedregs = derive2 { name="fedregs"; version="1.0.0"; sha256="171j6r6qxnx9gk9x9gpdyh51ssrgmf7sczc4889qr3qqw15sm4bn"; depends=[dplyr httr magrittr purrr rvest stringi tidyr tidytext xml2]; };
   fedstatAPIr = derive2 { name="fedstatAPIr"; version="1.0.3"; sha256="0pbbm2rfqij1yk4ywdd3pmdkb2arkwnmpyn70d52qrsjaxlhrnqi"; depends=[data_table httr jsonlite magrittr readsdmx xml2]; };
   fedz1 = derive2 { name="fedz1"; version="0.1.0"; sha256="1havzbpqwlc32qmr2mpdxczjj918aig7l0iz669pkgxgqxf8dq5x"; depends=[]; };
   feisr = derive2 { name="feisr"; version="1.3.0"; sha256="1i89w3n365k4fwgiifb2f68ag11f96rrxqxradrjvbmi7r80md99"; depends=[dplyr Formula plm Rdpack]; };
-  felp = derive2 { name="felp"; version="0.3.0"; sha256="134kv7mj3ajgcl7z8dq0vjx3yqy2awlpn3xs39q7yl7z5kz6i44g"; depends=[curl data_table dplyr htmltools magrittr matrixStats miniUI prettycode reactable rlang rstudioapi shiny stringi]; };
+  felp = derive2 { name="felp"; version="0.5.0"; sha256="12crd3rqkh1wj18x2nhq19v3jh4595qp1ll977ki0i6xmg5vhgfb"; depends=[callr curl data_table dplyr htmltools magrittr matrixStats miniUI prettycode reactable rlang rstudioapi shiny stringi]; };
   feltr = derive2 { name="feltr"; version="0.0.4"; sha256="1cn6kwkvcy91ng5d67x2hs853k5dqhlap6yym1xfw741f11dx1zy"; depends=[cli curl fs geojsonsf httr2 jsonlite purrr rlang sf stringr tibble tidyr]; };
   fence = derive2 { name="fence"; version="1.0"; sha256="18l3fliww60d9n9hbfdny5vr9mi78krwpjj5sypdsb77d6332h9q"; depends=[fields ggplot2 lme4 MASS sae snow snowfall]; };
   fergm = derive2 { name="fergm"; version="1.1.4"; sha256="1d979z2m5f13i1w9d8kh9rnaafavsap169w0nycpd5j2f3dfhyn7"; depends=[ergm extrafont ggplot2 matrixStats network reshape2 rstan]; };
@@ -10094,11 +10263,9 @@ in with self; {
   fetchGoogleAnalyticsR = derive2 { name="fetchGoogleAnalyticsR"; version="0.1.0"; sha256="12s18jicx9rd5dhc8l7hm09lr71nhz6k72j3w4c1j5ds9h522krg"; depends=[jsonlite]; };
   fetchSalesforceR = derive2 { name="fetchSalesforceR"; version="0.1.0"; sha256="1826i031wndasgcxxa0bh88vp1r49flzphyfk79pixvlrfjn6gi8"; depends=[jsonlite]; };
   ff = derive2 { name="ff"; version="4.0.12"; sha256="1gs1zf3x0clnim7qlrkhlsjf2xgry5ybqnh8ipa2kzhhk9d3bbq8"; depends=[bit]; };
-  fflr = derive2 { name="fflr"; version="2.2.3"; sha256="1ib0lgkxxjrsvhl4h4dpyk9qzlsxz95ki0q5qy4flqdm28vl633z"; depends=[httr jsonlite tibble]; };
   ffmanova = derive2 { name="ffmanova"; version="1.1.2"; sha256="08paiz94vhyiqaihpg3y9z3cbk9k5mlwwv8f1fs9mis3rv8wabvc"; depends=[]; };
   ffp = derive2 { name="ffp"; version="0.2.2"; sha256="05mzhg2hj51x8588nvwqamvrgd24haxw4mq7qn62zaznvxnwsr3m"; depends=[assertthat crayon dplyr forcats ggdist ggplot2 lubridate magrittr mvtnorm NlcOptim nloptr purrr rlang scales stringr tibble tidyr vctrs]; };
   ffscrapr = derive2 { name="ffscrapr"; version="1.4.8"; sha256="0dxr7w64wjw1i1bspdj641m1dmgz85bgdapf2k2wba077zkmhhv4"; depends=[cachem checkmate cli dplyr glue httr jsonlite lifecycle magrittr memoise nflreadr purrr rappdirs ratelimitr rlang stringr tibble tidyr]; };
-  ffstream = derive2 { name="ffstream"; version="0.1.7.2"; sha256="0xc549sp443isn3rk96m28wsrsg66qzsvz51nx9bykjzi3zy5wjk"; depends=[Rcpp]; };
   fftw = derive2 { name="fftw"; version="1.0-8"; sha256="0846s0ix2qj4dg8r9gpydsymbh2qyqnadgsaaph7dvd0cqb02zlc"; depends=[]; };
   fftwtools = derive2 { name="fftwtools"; version="0.9-11"; sha256="0zrchp4l0jdbir2gibjf00x225y9giqk80zvqmr2yyvc12lwkw7i"; depends=[]; };
   fgdr = derive2 { name="fgdr"; version="1.1.1"; sha256="12rccdh1dmh8azwid8wgkdz8d7lqrdzr5n294j2fawqf4naff2gm"; depends=[data_table jpmesh magrittr purrr raster readr rlang sf stars stringr terra tibble units xml2]; };
@@ -10115,7 +10282,7 @@ in with self; {
   fiberLD = derive2 { name="fiberLD"; version="0.1-8"; sha256="03f6gx8scpvb06im6m1vd5nakr16925504w4n44fwrbkbmmx48kx"; depends=[BH doParallel foreach Matrix Rcpp RcppArmadillo VGAM]; };
   fic = derive2 { name="fic"; version="1.0.0"; sha256="18xz94w1ab17jfi61bdg9z3pm63g488v17ns2ivizkza4gg07pv8"; depends=[abind ggplot2 mvtnorm numDeriv scales survival tensor]; };
   fidelius = derive2 { name="fidelius"; version="0.0.2"; sha256="18dsw069j3jzl0splgjjdsybny1hq0dmiyygri8nlfwshijkw15h"; depends=[askpass fs htmltools readr rlang rmarkdown rstudioapi sodium whisker]; };
-  fido = derive2 { name="fido"; version="1.0.4"; sha256="0drzxg6aj9rpszlg8cg1rjwk7nnz9np56zkddbd2pxkznsq8j8ni"; depends=[BH dplyr ggplot2 purrr Rcpp RcppEigen RcppNumerical RcppZiggurat rlang tidybayes tidyr]; };
+  fido = derive2 { name="fido"; version="1.1.1"; sha256="1q46m55y8ni51b96ckc70ap11w6vjq13wivsm8q37aj464845yy4"; depends=[BH dplyr ggplot2 purrr Rcpp RcppEigen RcppNumerical RcppZiggurat rlang tidybayes tidyr]; };
   fields = derive2 { name="fields"; version="15.2"; sha256="0gdddigzbzlhrbp6h2ma5b05m68pmggrkcd80hzgjbjj64ihy9qz"; depends=[maps spam viridisLite]; };
   fiery = derive2 { name="fiery"; version="1.2.1"; sha256="127ighz937rgqbg0kiq7wrms7z3r5pf77ixcfa7if35mcv7yrg8s"; depends=[cli crayon future glue httpuv later parallelly R6 reqres rlang stringi uuid]; };
   fig = derive2 { name="fig"; version="1.0.0"; sha256="1mzvng4r4xmkmbl55pspjk9bcvkri96vkmjaqkjn8nqxv39sy1pr"; depends=[R6]; };
@@ -10131,21 +10298,22 @@ in with self; {
   filehashSQLite = derive2 { name="filehashSQLite"; version="0.2-6"; sha256="1758wpzq2h7biwpdlrqhi84k35fbpfpxnji6j79zisr825fqjkpq"; depends=[DBI filehash RSQLite]; };
   filelock = derive2 { name="filelock"; version="1.0.3"; sha256="0dqi0w92zq1f9542ma2nk5gkqzfmd4jlf34vysb4vv7mag20xk9d"; depends=[]; };
   filematrix = derive2 { name="filematrix"; version="1.3"; sha256="1v3aj1ng742msb0sfdnjsbqb508mqjf8jlq2v33vxldhradw5w0b"; depends=[]; };
-  filenamer = derive2 { name="filenamer"; version="0.2.3"; sha256="19gavhh5q7dziv0yc000w06qp58wk2cm52cxjl33p1q4cjk6gg3m"; depends=[]; };
+  filenamer = derive2 { name="filenamer"; version="0.2.4"; sha256="0z4x5v5xjxic3bvarsx8p8k64xlhbibd9rhv2b7ihv36dz6qh490"; depends=[]; };
   files = derive2 { name="files"; version="0.0.1"; sha256="1vhhawqjjbb6fadkn3l10mvz63w3vmcwvl93fk0q9mhkifzlj9kc"; depends=[]; };
   filesstrings = derive2 { name="filesstrings"; version="3.4.0"; sha256="0p5vgrzbvipja9lgarygqphnr1z8vy9kl9n83jnfyvf0gp4ansl2"; depends=[checkmate magrittr purrr rlang strex stringi stringr withr]; };
-  filibustr = derive2 { name="filibustr"; version="0.2.0"; sha256="1arq7i2dhzb9260kk830jpxaavz3j0a1sz7yql0s6ik4ww40a9d7"; depends=[dplyr haven lifecycle readr rlang rvest stringr tidyr tidyselect]; };
+  filibustr = derive2 { name="filibustr"; version="0.2.1"; sha256="1q7307fwwrvpgf0ypkhs4ayg4m27vpf3kazsvnf73jk3gi33i0ki"; depends=[crul dplyr haven httr2 lifecycle R_utils readr rlang rvest stringr tidyr tidyselect]; };
   filling = derive2 { name="filling"; version="0.2.3"; sha256="17vk0pndsc8xhgp4zy5dfyc36pzk2hm5zk6xijdy4xaf7k5j4wls"; depends=[CVXR nabor Rcpp RcppArmadillo Rdpack ROptSpace RSpectra]; };
   fillpattern = derive2 { name="fillpattern"; version="1.0.1"; sha256="0xysrb3yzvlag9zpsq7hhqqyrhwapnzc66d636wvxpsi4r50lp0w"; depends=[ggplot2]; };
   fillr = derive2 { name="fillr"; version="1.0.0"; sha256="1gx1ihp8j90ywmm6mmmfq4jd6apxawk9s5dfw3jq0wm1c290zqpv"; depends=[]; };
-  filteRjsats = derive2 { name="filteRjsats"; version="1.0"; sha256="19zi44av3f5zahinqvgz5bvgh82qrpg4r4fffwjh8a09s975q5mg"; depends=[broman dplyr lubridate rerddap stringr tidyr]; };
   filterNHP = derive2 { name="filterNHP"; version="0.1.2"; sha256="0kk6548nr5786ywa83v8by4c1n7ljh9sy4fshpfqizp49fv9zv22"; depends=[data_tree rclipboard shiny shinyBS shinyjs shinyWidgets]; };
+  filters = derive2 { name="filters"; version="0.3.1"; sha256="1rxq1ci3q1n4v5nnkrcl29kand7a752b7rrgrzq754jjaybp6xnh"; depends=[magrittr plyr yaml]; };
   finalfit = derive2 { name="finalfit"; version="1.0.7"; sha256="04nskvkqd999wjxy7lkanrd4iyfn8xljagyafw1ai7mfiqxgmfag"; depends=[bdsmatrix boot broom dplyr forcats GGally ggplot2 gridExtra lme4 magrittr mice pillar pROC purrr scales stringr survival tidyr tidyselect]; };
-  finalsize = derive2 { name="finalsize"; version="0.2.0"; sha256="18nyyl8c121kfr22vanvgbma627w98v39d4n34kr8hd8iw8jx5lx"; depends=[checkmate Rcpp RcppEigen]; };
-  finbif = derive2 { name="finbif"; version="0.9.5"; sha256="1b0769nynqhsyvk8h5ihdvxjwcdvq983skllk9n0d4lyx34gn8gp"; depends=[digest httr lutz]; };
+  finalsize = derive2 { name="finalsize"; version="0.2.1"; sha256="0sv174v36clz4blvk4d33rkg7w6ylf4a5j4q057z81kkdd0jr042"; depends=[checkmate Rcpp RcppEigen]; };
+  finbif = derive2 { name="finbif"; version="0.9.6"; sha256="08vbs7s0d873033sw5nc3x6hmi21yvz0lvg4zcbv2ii40napwjsx"; depends=[digest httr lutz]; };
   finbipartite = derive2 { name="finbipartite"; version="0.1.0"; sha256="0sws39nya8y7v78v4nlaz5g2nj4sgq5n5iwhfkyyq6h87slw2h8c"; depends=[CVXR MASS mvtnorm progress quadprog spectralGraphTopology]; };
   finch = derive2 { name="finch"; version="0.4.0"; sha256="0q7riaxms460c6z2gb8i0q4pb348bnvry46bjd7pb9mh8fnl1i8b"; depends=[data_table digest EML hoardr xml2]; };
-  findInFiles = derive2 { name="findInFiles"; version="0.4.0"; sha256="1saxi8l4006wwxrw18g7wx0pj7l427a2rnb723k0irlhvq0icgwq"; depends=[crayon htmlwidgets shiny stringi stringr tibble vctrs]; };
+  findGSEP = derive2 { name="findGSEP"; version="1.2.0"; sha256="0j1m54y46ls3s4097028lf7nj4i8xbfpbxhprqy88j886xwfq56x"; depends=[dplyr ggplot2 pracma RColorBrewer scales]; };
+  findInFiles = derive2 { name="findInFiles"; version="0.5.0"; sha256="1fig0r3gpnd7ccxl39sfsgfs3wcm0g02rhmr7ay0zmxkln05hf1k"; depends=[crayon htmlwidgets shiny stringi stringr tibble vctrs]; };
   findInGit = derive2 { name="findInGit"; version="0.1.1"; sha256="1j5mvp34nsczmvp5jx7c9gp20q7aqaxrqm2zvj8aq31rc8mfaxk9"; depends=[crayon htmlwidgets stringr]; };
   findPackage = derive2 { name="findPackage"; version="0.2.0"; sha256="0g6i512ls79hg0ck0frhadpxvvayzbdcj48rbpawhc5bphjsbcfx"; depends=[]; };
   findR = derive2 { name="findR"; version="0.2.1"; sha256="1a7cf6kd7i2l4ffr2b17nb9xnpsjhf6fcwpjy06r0qgcapnfp54b"; depends=[pdftools stringr]; };
@@ -10158,7 +10326,7 @@ in with self; {
   fingraph = derive2 { name="fingraph"; version="0.1.0"; sha256="130kfhxxxf6cg7ww71nfrwhwrkp52v7zc0qarpjv84826k00cpcq"; depends=[MASS mvtnorm progress spectralGraphTopology]; };
   finiteruinprob = derive2 { name="finiteruinprob"; version="0.6"; sha256="0z4l0crymh58chxniqq70fqmvi6f5jkgvz72vbc7s3l9lrrapgr3"; depends=[numDeriv sdprisk]; };
   finity = derive2 { name="finity"; version="0.1.5"; sha256="0jsga609p1ja727k4bq7ffrs2h7ll3cfq27y4w6nh0qlc0gl99al"; depends=[BH Rcpp RcppArmadillo stabledist]; };
-  finnishgrid = derive2 { name="finnishgrid"; version="0.1.0"; sha256="0gndrllz3y7yqrg5vw6ba7dg7hn4w3085rpy7h9hdd8swxqfvlc6"; depends=[httr jsonlite]; };
+  finnishgrid = derive2 { name="finnishgrid"; version="0.2.0"; sha256="1p3kgrq85x48mmqn6m93m37qydnn0kpsikvp3ipg78s8b6l1cvzv"; depends=[httr jsonlite]; };
   finnsurveytext = derive2 { name="finnsurveytext"; version="1.0.0"; sha256="0hi0b6i37lpfs2xhb0k1qdlm91mils1kl2dl9gz3qx5hz8f9342s"; depends=[dplyr ggplot2 ggpubr ggraph gridExtra igraph magrittr RColorBrewer stopwords stringr textrank tibble tidyr udpipe wordcloud]; };
   finnts = derive2 { name="finnts"; version="0.4.0"; sha256="1cx9kl6dzkmrxb4i7vlkligx5p1q2jxinybmi1367hlpgafhv6js"; depends=[cli Cubist dials digest doParallel dplyr earth feasts foreach fs generics glmnet glue gtools hts kernlab lubridate magrittr modeltime parsnip plyr purrr recipes rsample rules snakecase stringr tibble tidyr tidyselect timetk tune vroom workflows]; };
   finreportr = derive2 { name="finreportr"; version="1.0.4"; sha256="145idg2c6qmqp29afalnhxxzky08j21dmm05mp3zf63aq9mq41d4"; depends=[curl dplyr httr rvest XBRL xml2]; };
@@ -10168,7 +10336,7 @@ in with self; {
   firebehavioR = derive2 { name="firebehavioR"; version="0.1.2"; sha256="10krny60dkpgwjjnriap91qmrnfq1rl5ck4ynf4h6x016bv0m374"; depends=[ggplot2]; };
   first = derive2 { name="first"; version="1.1"; sha256="13gzjxgbqjn227981sijkksbjkyh8fca9735zjq93w2mv2af3y87"; depends=[FNN twinning]; };
   fishMod = derive2 { name="fishMod"; version="0.29"; sha256="0pbs4z27vwa3c42xdw3mr6l2i581bgvn2pk52kawbcnnlsff92ar"; depends=[]; };
-  fishRman = derive2 { name="fishRman"; version="1.2.2"; sha256="09kzjcngycf1xvcyszqfsrn6iypn4n86cz0h2cmwv0i6hc8k0jwb"; depends=[config countrycode dplyr ggplot2 golem httr jsonlite maps sf shiny shinyBS shinyjs shinyWidgets viridis]; };
+  fishRman = derive2 { name="fishRman"; version="1.2.3"; sha256="1pyryc6pilyy68z7443gi6ixi8b0hy338l9zfw74isrxywbygy8n"; depends=[config countrycode dplyr ggplot2 golem httr jsonlite maps sf shiny shinyBS shinyjs shinyWidgets viridis]; };
   fishbc = derive2 { name="fishbc"; version="0.2.1"; sha256="15mlr113qgndjhyry8img50jfk0si81kw2cdgl896b0g4djc5la3"; depends=[]; };
   fishdata = derive2 { name="fishdata"; version="1.0.1"; sha256="0hskmw93pyrm5wxn1dw8vi18v11jnf03yx375hjkk38hcfnp6n5k"; depends=[]; };
   fisheye = derive2 { name="fisheye"; version="0.2.0"; sha256="0w07mkfdv422drrd80yjd9syicadyzl213n1xm1bkz1zlkhdw4xz"; depends=[sf]; };
@@ -10194,13 +10362,13 @@ in with self; {
   fitscape = derive2 { name="fitscape"; version="0.1.0"; sha256="0y9x0n61y366f35d594523l3c5sjaf87msxhnlbs2w3g7d53yvfb"; depends=[]; };
   fitteR = derive2 { name="fitteR"; version="0.2.0"; sha256="0l33j69fdfpsp77a1vwqg07b65qaxs875r7lhy2bfi6mxgcklby9"; depends=[dplyr DT maxLik R_utils shiny]; };
   fitur = derive2 { name="fitur"; version="0.6.2"; sha256="0bx1w1bpz3i2ybwl386s8y8nxyqwk6w33aqyyw94aq6ink3bw2aw"; depends=[actuar DT e1071 fitdistrplus ggplot2 goftest miniUI rstudioapi shiny]; };
-  fitzRoy = derive2 { name="fitzRoy"; version="1.3.0"; sha256="1q728dn6s89f7zy4s1hhixqrvqi27gc225i6isiq5lk9md7pgydx"; depends=[cli dplyr glue httr jsonlite lifecycle lubridate magrittr progress purrr readr rlang rvest stringr tibble tidyr tidyselect xml2]; };
+  fitzRoy = derive2 { name="fitzRoy"; version="1.4.0"; sha256="07qk0kgbsrpjkfm9jqd5zsyg1lj96fj31a413qn7y66vpyljd3p3"; depends=[cli dplyr glue httr httr2 jsonlite lifecycle lubridate magrittr purrr readr rlang rvest stringr tibble tidyr tidyselect xml2]; };
   fivethirtyeight = derive2 { name="fivethirtyeight"; version="0.6.2"; sha256="0nja8zbbkrxrvznyi1c38yzv6djx58ac5y4l1nkf07ph5d9i3k81"; depends=[]; };
   fixedTimeEvents = derive2 { name="fixedTimeEvents"; version="1.0.1"; sha256="18cqbxrs69p60anvii22mhqkwh5y2mxapmznff9g7j1j6h4h62lr"; depends=[]; };
   fixedincome = derive2 { name="fixedincome"; version="0.0.5"; sha256="16wxd12hid468d1rfczyrb2ffnja0vx9mnqdg9dhdp0nlj78xx99"; depends=[bizdays ggplot2 scales]; };
   fixedpointproperty = derive2 { name="fixedpointproperty"; version="1.0"; sha256="125vfk92mhixachg2qp5ffvf8ggvrfc62970vzmc8fiq83lbzgs1"; depends=[BayesFactor]; };
   fixerapi = derive2 { name="fixerapi"; version="0.1.6"; sha256="0ikf8dn0l9c9gshp4bph3wasl0bh6lfybinc8n1rvb202231hmgb"; depends=[jsonlite tibble tidyr]; };
-  fixest = derive2 { name="fixest"; version="0.11.2"; sha256="0r9b1shiwz4739hq953gacvmnjm9r4sisi9chkfw9rc90qx13vid"; depends=[dreamerr nlme numDeriv Rcpp sandwich]; };
+  fixest = derive2 { name="fixest"; version="0.12.1"; sha256="1pqkwzcv8mjh00k0cl0na7izwhwsp6qpimbxmq5005vbhnwimrvw"; depends=[dreamerr nlme numDeriv Rcpp sandwich stringmagic]; };
   fixr = derive2 { name="fixr"; version="0.1.0"; sha256="074dr1l3bw8v1lrih1mc51dmx02kambis04r9jpx64vnpajjfv8p"; depends=[httr RCurl xml2]; };
   fixtuRes = derive2 { name="fixtuRes"; version="0.1.3"; sha256="1vmdbx1pfk4kcxq5q5hj4v6rz403xw66gpg6zpvrxkpcgkx2dwyz"; depends=[checkmate dplyr glue lubridate purrr R6 rlang stringi yaml]; };
   fizzbuzzR = derive2 { name="fizzbuzzR"; version="0.1.1"; sha256="119gbi9y4n8r52hk9vj7zf795dv9xnk7lnngljjcd7ydnhygwd4h"; depends=[]; };
@@ -10218,14 +10386,16 @@ in with self; {
   flashlight = derive2 { name="flashlight"; version="0.9.0"; sha256="0nyxx7zrqw8fgy1n81n30m80z7xwkydnhmxj6c22mq83md08rd8c"; depends=[cowplot dplyr ggplot2 MetricsWeighted rlang rpart rpart_plot tibble tidyr tidyselect withr]; };
   flashr = derive2 { name="flashr"; version="0.1.2"; sha256="0fqxr1j5mf9mc1agkkdlzx97qvv4phlxdcmb99x55ivhagwgvidq"; depends=[cli curl gh httr memoise revealjs rmarkdown testthat]; };
   flatr = derive2 { name="flatr"; version="0.1.1"; sha256="10l98a3f57wahfpdqxj70r25zfhk4vzzd014pdnriy458yrfd7rw"; depends=[dplyr magrittr tibble]; };
-  flattabler = derive2 { name="flattabler"; version="2.1.1"; sha256="1yls9md276fhz46mcfn676g24mk0rhyyfhkbysfs59fs58037s9j"; depends=[dplyr readr readxl stringr tibble]; };
+  flattabler = derive2 { name="flattabler"; version="2.1.2"; sha256="0rjr5r32xsyxyk0h3xnnidxi4ymb136yfskjfcqny35p7c6kj2i4"; depends=[dplyr readr readxl stringr tibble]; };
   flatxml = derive2 { name="flatxml"; version="0.1.1"; sha256="1qsiqi8aszk9djlhysf6lcm41dq4pcw5jv6mdvb1mgxni7g3sgfv"; depends=[crayon httr RCurl xml2]; };
   fledge = derive2 { name="fledge"; version="0.1.2"; sha256="0x6f4xvaz6j86gn05hffimqpk5amhwqkvfzhk6252qp92x6rx33f"; depends=[brio cli desc gert purrr rematch2 rlang tibble usethis whoami withr]; };
   flevr = derive2 { name="flevr"; version="0.0.4"; sha256="1h1wnqd1fv6z4mfrchm5rv9x9s48vp67csf3a8gyj7gm3lppgnfm"; depends=[caret dplyr kernlab magrittr mvtnorm ranger rlang SuperLearner tibble]; };
   flexCWM = derive2 { name="flexCWM"; version="1.92"; sha256="1fxwq12mki10ikf5lyh1pb58svfzs4llg68v4d9iznia8aa0grhq"; depends=[ContaminatedMixt mclust numDeriv statmod]; };
-  flexclust = derive2 { name="flexclust"; version="1.4-1"; sha256="13akk3w6a76jpws5v9108c3hdmb8i6gm0sc06lr2hqly0pgpfyfn"; depends=[class lattice modeltools]; };
+  flexOR = derive2 { name="flexOR"; version="1.0.0"; sha256="06cipvv3wlbk2qk61a7yhfpmd1csr86sz5gligv0bxki9vc94n29"; depends=[gam mgcv]; };
+  flexclust = derive2 { name="flexclust"; version="1.4-2"; sha256="0massgyn8vdzp40dz5l02qqzjynw1lgyw9psvb792q73j7b20iqc"; depends=[class lattice modeltools]; };
   flexdashboard = derive2 { name="flexdashboard"; version="0.6.2"; sha256="0zxyrfp1inv19palaba81pxlq0nz655hcliynvh995a58cvg6c5n"; depends=[bslib htmltools htmlwidgets jsonlite knitr rmarkdown sass scales shiny]; };
   flexiblas = derive2 { name="flexiblas"; version="3.4.0"; sha256="1n0wvq0aijpyscrs6rawx3pbrb1d4ni9myifnwnhy642qyc2v41i"; depends=[]; };
+  flexlsx = derive2 { name="flexlsx"; version="0.2.1"; sha256="1h78gzq1nlz0d8m9l63d5mjxrqwzwh21l444az58d9y48zsgrrzv"; depends=[dplyr openxlsx2 purrr rlang stringi tibble tidyr]; };
   flexmet = derive2 { name="flexmet"; version="1.1"; sha256="1xcs4gs5aanvfsf6bgj28jsjdxrx0dz475xsw8hd6y44qdgw1sqb"; depends=[]; };
   flexmix = derive2 { name="flexmix"; version="2.3-19"; sha256="1s8jpii6ws6hra8w11fn3x84wrdrrlycnrhn5ijy6ibdpc6a9xdd"; depends=[lattice modeltools nnet]; };
   flexmixNL = derive2 { name="flexmixNL"; version="0.0.1"; sha256="0bk5v0cnsn1qkd1b86vj0bnpr4l9d6523kpkgzb1l1sqyscawfmm"; depends=[flexmix gnm]; };
@@ -10233,19 +10403,19 @@ in with self; {
   flexpolyline = derive2 { name="flexpolyline"; version="0.3.0"; sha256="1p23s30gyh6wyg6vk4cj897dy1ijl0nix8gzypglg7z5v5xnhkyr"; depends=[Rcpp sf]; };
   flexrsurv = derive2 { name="flexrsurv"; version="2.0.18"; sha256="10l1xh43c7lkgxjpxis5zy66dji2ifxhc41vzqhpj8h6hqw052bv"; depends=[Epi Formula formula_tools Matrix numDeriv orthogonalsplinebasis R_utils statmod survival]; };
   flexsiteboard = derive2 { name="flexsiteboard"; version="0.0.7"; sha256="0msbz3x7lsi6xcw8dcqzwnylaj76f8mgj6cf3hqscrfjzhs86rym"; depends=[flexdashboard htmltools htmlwidgets jsonlite knitr rmarkdown yaml]; };
-  flexsurv = derive2 { name="flexsurv"; version="2.2.2"; sha256="1qshsii5fqpx4l113vr4lx9ijxhcr8494lx3ixjdbzy58077adb6"; depends=[assertthat deSolve dplyr generics ggplot2 magrittr Matrix mstate muhaz mvtnorm numDeriv purrr quadprog Rcpp rlang rstpm2 statmod survival tibble tidyr tidyselect]; };
+  flexsurv = derive2 { name="flexsurv"; version="2.3"; sha256="1y31ghfn02fcpss3aliy5r7kk0a7h0h2krnj665h13y8jgqkc6j7"; depends=[assertthat deSolve dplyr generics ggplot2 magrittr Matrix mstate muhaz mvtnorm numDeriv purrr quadprog Rcpp rlang rstpm2 statmod survival tibble tidyr tidyselect]; };
   flexsurvcure = derive2 { name="flexsurvcure"; version="1.3.1"; sha256="0mhpzcrqxsi7f2m565qy648vg26rsvy7d249ia7y7kd5wcildw8b"; depends=[boot flexsurv survival]; };
-  flextable = derive2 { name="flextable"; version="0.9.5"; sha256="14mq27k7998405qwpdpxa1csbf5pdgzj9s892xm95bd4chnshdvw"; depends=[data_table gdtools htmltools knitr officer ragg rlang rmarkdown uuid xml2]; };
+  flextable = derive2 { name="flextable"; version="0.9.6"; sha256="0acjiwrm0qn0i0v4p0n279ldvlknqhb43mcar9c5s6r3xh5habi3"; depends=[data_table gdtools htmltools knitr officer ragg rlang rmarkdown uuid xml2]; };
   flifo = derive2 { name="flifo"; version="0.1.5"; sha256="03x66l3ryrjvwbxxd0ncjrb5w9kc7fswmp5psb1cb7r87f395gm3"; depends=[bazar pryr]; };
   flightplot = derive2 { name="flightplot"; version="0.1.0"; sha256="1276lsahr9kdsvp1ismm3b5syvhfr7ifizzd79f8w1h2rjblva8x"; depends=[dplyr geosphere ggplot2 ggrepel magrittr rlang sf tibble]; };
-  flightsbr = derive2 { name="flightsbr"; version="0.4.0"; sha256="17i5v7v9ccp4wn9amzw0iv157q0x3nlx2qc8mr3npma4wshf7rvr"; depends=[data_table httr parzer pbapply rvest]; };
+  flightsbr = derive2 { name="flightsbr"; version="0.4.1"; sha256="0rb14dfs8sckp4r0wxwbgi8zs2a9r879xhbgdi5nzpmhpsy62xma"; depends=[data_table httr parzer pbapply rvest]; };
   flimo = derive2 { name="flimo"; version="0.1.5"; sha256="00l0w9z1j2yy4sl1fly7lw4rrdwcwnb26va2d5vsvjldwcmsx5pd"; depends=[ggplot2 JuliaConnectoR]; };
   flintyR = derive2 { name="flintyR"; version="0.1.0"; sha256="1md0p3i9lny5sn1jjh8ss6bw4w7q8ydi6kh5smjbbgbn86qlcvwy"; depends=[assertthat doParallel foreach Rcpp RcppArmadillo testthat]; };
   flip = derive2 { name="flip"; version="2.5.0"; sha256="08x5hwxaxbgc745gblja7gcy0b5wbp7jf90lkha75zl5cc9iyksl"; depends=[cherry e1071 plyr someMTP]; };
   flipbookr = derive2 { name="flipbookr"; version="0.1.0"; sha256="0ls51risk3qn5fagw31i2kibrxk7xk3845a1cccd83sc4c8ilgjx"; depends=[dplyr glue knitr magrittr purrr rmarkdown stringi stringr tibble tidyr]; };
   flipdownWidgets = derive2 { name="flipdownWidgets"; version="0.1.0"; sha256="1qlpav9s51w9nkszfkad87cfbc7jq4n0kmgis8hrin093w0whp7a"; depends=[htmlwidgets]; };
   flipdownr = derive2 { name="flipdownr"; version="0.1.1"; sha256="18z6y9anwg264gwqpxvm8mmv7xvc4m323mkg9db424vd1ji560f3"; depends=[checkmate glue htmltools jsonlite]; };
-  flippant = derive2 { name="flippant"; version="1.5.4"; sha256="189c7mm56rhwh4d1lrfbp9gn4l4vhi6i0cn9zif6s5c7yryvf3l9"; depends=[assertive_base assertive_files assertive_numbers data_table ggplot2 magrittr minpack_lm plyr pracma stringi withr]; };
+  flippant = derive2 { name="flippant"; version="1.5.5"; sha256="0sr5mksgfn06jvx3rbc03dhmh9l7w1s6nz609yyw3rgc7snd1w57"; depends=[data_table ggplot2 magrittr minpack_lm plyr pracma stringi withr]; };
   flipr = derive2 { name="flipr"; version="0.3.3"; sha256="188kdgk390rh8wpfsvqbwpwa3dmwzlzv8sdgvfxl9f0ddbxasghb"; depends=[cli dials ggplot2 magrittr optimParallel pbapply purrr R6 Rcpp rgenoud rlang tibble usethis viridisLite withr]; };
   flipscores = derive2 { name="flipscores"; version="1.2.0"; sha256="17dmx7r29ngwz690x7p447pczh903swzpwmk5abvzjsqvfgikbi8"; depends=[MASS]; };
   float = derive2 { name="float"; version="0.3-2"; sha256="149affr0swb1vqnhkzm5lr4knfsh78ygswy123j1qj823zbhsfi3"; depends=[]; };
@@ -10254,13 +10424,13 @@ in with self; {
   flocker = derive2 { name="flocker"; version="1.0-0"; sha256="19029by01jgwdlc0m4d05cfia8v0zfxf6k4aqm6wpvlbi7ap6hi6"; depends=[abind assertthat boot brms loo MASS matrixStats withr]; };
   flood = derive2 { name="flood"; version="0.1.1"; sha256="0nlmjh2l7dij1aqd70hhj0m550knlin3am14azqkx4pacs1kir3p"; depends=[copula evd magrittr TLMoments]; };
   flora = derive2 { name="flora"; version="0.3.4"; sha256="17drlfvvrndal4cf5nw20xb9viybagvb4vll1kxdrhvsvfz5yap6"; depends=[dplyr httr jsonlite stringdist]; };
-  florabr = derive2 { name="florabr"; version="1.1.0"; sha256="1sfyprf2rz5z0vfa7mhw70w4chg9jf4rwgi8hxywb0srbdf738c5"; depends=[data_table httr terra XML]; };
+  florabr = derive2 { name="florabr"; version="1.2.0"; sha256="0rfzvrsv4aai3ynwxvnqiki58gbjp4lwrr36kfnkn59bpicvxmzg"; depends=[data_table httr terra XML]; };
   flow = derive2 { name="flow"; version="0.2.0"; sha256="171csdpp445lxhh7ph59h7xxqxdpjlkf35nrjy74282m9xmqdlz9"; depends=[here htmlwidgets lifecycle nomnoml rstudioapi styler webshot]; };
   flowTraceR = derive2 { name="flowTraceR"; version="0.1.0"; sha256="1nl7yfzsh3bhqdildb77wmnapich4xn6y2j8rlmrb4w7mq9jnhba"; depends=[comprehenr dplyr ggplot2 magrittr stringr tibble tidyr]; };
-  flowchart = derive2 { name="flowchart"; version="0.1.0"; sha256="003miaakn8bbx6fnhlwvl2p3303hygckma2fdwkzgmzd44xwv36k"; depends=[dplyr Gmisc purrr rlang stringr tibble tidyr tidyselect]; };
+  flowchart = derive2 { name="flowchart"; version="0.4.0"; sha256="1h34phpgx139v28rxgiyjl696k08lp7frh3sxizj97pix29j5yds"; depends=[dplyr Gmisc purrr rlang stringr tibble tidyr tidyselect]; };
   flowml = derive2 { name="flowml"; version="0.1.3"; sha256="1v26lncq6qqx7x2wnvaxwb88s7hgdwj9cv16kkzn4fnybwsmkw5g"; depends=[ABCanalysis caret data_table dplyr fastshap furrr future magrittr optparse purrr R6 readr rjson rlang rsample stringr tibble tidyr vip]; };
   flowr = derive2 { name="flowr"; version="0.9.11"; sha256="1cbbfrvgzqclvbhy20vjwgxbvnn3ljh0k1k54jf2si10bfw3zzi5"; depends=[diagram params readr whisker]; };
-  flps = derive2 { name="flps"; version="1.0.0"; sha256="0l4maf51psfmf3wq86r2zpvcm29car4z7jn7xh2mp8kllb7ii59d"; depends=[ggplot2 glue MASS mirt mvtnorm Rcpp rstan]; };
+  flps = derive2 { name="flps"; version="1.1.0"; sha256="0pdf4czw5rdf5bcsbq7ncx0m5iz9dl0m5l8z3x799zs1svdlclfp"; depends=[ggplot2 glue MASS mirt mvtnorm Rcpp rstan]; };
   flsa = derive2 { name="flsa"; version="1.5.5"; sha256="000al9xan9brrg5c010csyg06jan55x7lg6zxsxc65dcxz4hmzg2"; depends=[]; };
   fluidsynth = derive2 { name="fluidsynth"; version="1.0.0"; sha256="04jn17rxafrw47gc98c5k4jzsbdsml0brq85zr7xvijirnd15yxn"; depends=[av rappdirs]; };
   fluoSurv = derive2 { name="fluoSurv"; version="1.0.0"; sha256="1dv4lf7k28bih2qqkpy15f7d14ibxk48p3z6sj3dj5yvh25mhv81"; depends=[]; };
@@ -10273,16 +10443,17 @@ in with self; {
   fmcmc = derive2 { name="fmcmc"; version="0.5-2"; sha256="0swlghwsir1gjw5n2c8kfi5zh6bbqjhk7nnjds2b6656s8xdpr9a"; depends=[coda MASS Matrix]; };
   fmdates = derive2 { name="fmdates"; version="0.1.4"; sha256="1bbcwkh65nf2gak9b81zgg32c5ihwhmai3nc43ayf6ivhqsxw8x0"; depends=[assertthat lubridate]; };
   fmdu = derive2 { name="fmdu"; version="0.1.1"; sha256="0g27a19kw23niqbj3jx5y9p1a693zi69nnfraj85mmfkyhmqilpi"; depends=[smacof]; };
-  fmeffects = derive2 { name="fmeffects"; version="0.1.2"; sha256="1rnv988hngvxcjnvfymnnpf3ilxhsgh56x18bjh9ca5s0f0nl9iv"; depends=[checkmate cowplot data_table ggparty ggplot2 partykit R6 testthat]; };
+  fmeffects = derive2 { name="fmeffects"; version="0.1.3"; sha256="0hw3jsq4s4rh66n9j3sll9sarnnbxp90ma6sqs9q4gjkm1qi1d1p"; depends=[checkmate cli cowplot data_table ggparty ggplot2 partykit R6 testthat]; };
   fmerPack = derive2 { name="fmerPack"; version="0.0-1"; sha256="0p9jfgkzs97r6ya1x8ax7bza17b03grqxa22ja13s12vj0cdkv78"; depends=[abind flexmix glmnet MASS Rcpp RcppArmadillo]; };
-  fmesher = derive2 { name="fmesher"; version="0.1.5"; sha256="0pzqj6br5cqzqmrdlmk3d0j025519hlabgmgh02inzg8i25azxzn"; depends=[dplyr lifecycle Matrix Rcpp rlang sf sp tibble withr]; };
+  fmesher = derive2 { name="fmesher"; version="0.1.6"; sha256="0dszz7a6asyjwwgq8ggqll48ndyfn14lndf77arl60ns3h7v3ygn"; depends=[dplyr lifecycle Matrix Rcpp rlang sf sp tibble withr]; };
   fmf = derive2 { name="fmf"; version="1.1.1"; sha256="0b26040a39jys1z3h9mq9k7rjr0iyiialq442ir8vgzvmrh383cs"; depends=[C50 caret dplyr e1071 factoextra FactoMineR ggplot2 kernlab Rcpp RcppArmadillo solitude]; };
   fmpcloudr = derive2 { name="fmpcloudr"; version="0.1.5"; sha256="07fvmrprv0pka1wgp5ygcvv86jvn3h30xxkx44ssin15hfmank69"; depends=[dplyr httr jsonlite lubridate magrittr tidyr]; };
   fmri = derive2 { name="fmri"; version="1.9.12"; sha256="1cv5mxcdpyf05n5pcjdawl59j7f4k40386r4m38qf15vcy45zdfq"; depends=[aws metafor nlme oro_nifti]; };
   fmriqa = derive2 { name="fmriqa"; version="0.3.0"; sha256="1z09nf1c305a78c129jvs21b9z91wyhazz41wrn4bimmhfhx7szv"; depends=[ggplot2 gridExtra imager optparse pracma RcppEigen reshape2 RNifti tidyr viridisLite]; };
   fmsb = derive2 { name="fmsb"; version="0.7.6"; sha256="1cnkg4njb432p05j8hdwfa2swiynwm864yixgfbyr26r8jfz4zg5"; depends=[]; };
   fmt = derive2 { name="fmt"; version="2.0"; sha256="04df84979a8vaacfhxsb58zci1mmh113ir7qnkniv5qnyvdabacm"; depends=[limma]; };
-  fmtr = derive2 { name="fmtr"; version="1.6.3"; sha256="0xgyg9kgak6w3p8lp0ccnkp90bnh516py0sn07nxh6pjbv2rkng0"; depends=[common crayon Rcpp tibble]; };
+  fmtr = derive2 { name="fmtr"; version="1.6.5"; sha256="1q565knjq8hzazli5skjvfd02jsh2c220hsrvc1h4dly666qvxvl"; depends=[common crayon Rcpp tibble]; };
+  fmx = derive2 { name="fmx"; version="0.1.2"; sha256="02f4b9vmnp2gr47ql6smxiv7x9as6p44fi4kvg6lcn1xd386hx6z"; depends=[goftest param2moment sn TukeyGH77 VGAM]; };
   fnets = derive2 { name="fnets"; version="0.1.6"; sha256="138r081mpgw1csm93xcrci3djd7mrcl6drsdr6cpjz1fdzv1whjy"; depends=[doParallel fields foreach igraph lpSolve MASS RColorBrewer]; };
   focusedMDS = derive2 { name="focusedMDS"; version="1.3.3"; sha256="18s86dbbpyajscqr9frprf2vp1zif7vh4lw5m0cjskfc6gmsdp2p"; depends=[htmlwidgets]; };
   foghorn = derive2 { name="foghorn"; version="1.5.2"; sha256="1xmyl4m2chv2z6adfyzmv93zqjl0pxk364zy0jfym8vgnzrmcb26"; depends=[clisymbols crayon curl httr2 rlang rvest tibble xml2]; };
@@ -10318,6 +10489,7 @@ in with self; {
   forecasteR = derive2 { name="forecasteR"; version="2.0.2"; sha256="0pwgkkzyfzjjp9qrx4xx3b68617a18i3an3gcpprkg4mwpsvcj0x"; depends=[colourpicker config DT echarts4r forecast golem htmltools htmlwidgets keras lubridate rlang shiny shinyAce shinycustomloader shinydashboard shinydashboardPlus shinyjs stringr zoo]; };
   foreign = derive2 { name="foreign"; version="0.8-86"; sha256="1qf3x1vacc4sdcmw4mbh0251ii4xd8z1xmmd9isak75j100i4ad7"; depends=[]; };
   forensIT = derive2 { name="forensIT"; version="1.0.0"; sha256="0zbkkdm3wzzqsg7m6854lisskql0v5k9sg1ly1z479w5iqknh7bl"; depends=[doParallel dplyr fbnet foreach forrel ggplot2 gtools hrbrthemes iterators magrittr mispitools paramlink pedprobr pedtools reshape2 tidyr]; };
+  forensicolors = derive2 { name="forensicolors"; version="1.0.0"; sha256="1ga67n7zvcbi3lq4v7x1yz2xhsxvxrxqdaxdha3dl112lgzvq790"; depends=[dplyr forrel ggplot2 pedtools plotly]; };
   forestControl = derive2 { name="forestControl"; version="0.2.2"; sha256="0g81ml12xhq2a868vlpsybpsqz7p4hn9jnxh3dvq6g4k1hc1292x"; depends=[dplyr magrittr purrr Rcpp tibble]; };
   forestError = derive2 { name="forestError"; version="1.1.0"; sha256="1dk19sgx760ph464cya4gxb1i3rpnydnhrbqyb25jja0dryjapcm"; depends=[data_table purrr]; };
   forestHES = derive2 { name="forestHES"; version="1.0-1"; sha256="05l04ly3l8xkdz3rnnrfa4y0wfmh1am2ixbz1vfarnqkc0zppwpj"; depends=[]; };
@@ -10329,23 +10501,23 @@ in with self; {
   forestmangr = derive2 { name="forestmangr"; version="0.9.6"; sha256="0l8av1vg8dyrb15m08gby13qfalwcfizfn3jc2avvga8inyag0c5"; depends=[broom car dplyr FinCal ggdendro ggplot2 ggpmisc ggthemes gridExtra magrittr miniUI minpack_lm plyr purrr rlang scales shiny systemfit tibble tidyr]; };
   forestmodel = derive2 { name="forestmodel"; version="0.6.2"; sha256="0pl9r8j2qd00b9kl585b4k54kic5fvzc56i8cn3hm5yp2hrrwyws"; depends=[broom dplyr ggplot2 rlang tibble]; };
   forestplot = derive2 { name="forestplot"; version="3.1.3"; sha256="0jbmhgbf167xi0lxqinf6m4gmh10r582bify1i731k9ywcc7psqk"; depends=[abind checkmate]; };
-  forestploter = derive2 { name="forestploter"; version="1.1.1"; sha256="0l19pw5an8d2zn32r64b8a3b95krq9r083ziry5973wdm0nya2pw"; depends=[gridExtra gtable]; };
+  forestploter = derive2 { name="forestploter"; version="1.1.2"; sha256="15wx7kjawr11hajq4s1b7wv5klwzmyjn5ad6x8g4kwxvzlgzk2bl"; depends=[gridExtra gtable]; };
   forestr = derive2 { name="forestr"; version="2.0.2"; sha256="1kz8f3x2dmsprj2r23gz61fpwg7n14nbjxr16x4cpixvnk427p94"; depends=[dplyr ggplot2 moments plyr tibble tidyr viridis]; };
   forestry = derive2 { name="forestry"; version="0.1.1"; sha256="0bg41sja0aq8fdhxbla676bq1m1xjk2jaybcl0qfj2kc33pdivkx"; depends=[data_tree]; };
   foretell = derive2 { name="foretell"; version="0.2.0"; sha256="18vi438n480gizfhnciw67gngvbjnmky19186b1wy75av7fgc1gp"; depends=[nloptr]; };
   forge = derive2 { name="forge"; version="0.2.0"; sha256="0pjfzsc35agkh0zfw2czwajkbsyn6liys5irl5bhz5r1vim3jmwa"; depends=[magrittr rlang]; };
   formatBibtex = derive2 { name="formatBibtex"; version="0.1.0"; sha256="0abqvjmpnlrxzlmqcixbds10q7ssg7x2wdx1qqpy1ix2snd23s7w"; depends=[]; };
   formatR = derive2 { name="formatR"; version="1.14"; sha256="0k271w4bhlj7r9igkiyfw7d7bg30s2mn4sr4alb8f9w57wnapfjf"; depends=[]; };
-  formatdown = derive2 { name="formatdown"; version="0.1.3"; sha256="126i9lfwhn557c9hxm61f60c5xynwlry7f6gzs3ivdb3ak95j1cc"; depends=[checkmate data_table units wrapr]; };
+  formatdown = derive2 { name="formatdown"; version="0.1.4"; sha256="0dvq0hal2iy3k2mhqkfbaawny4q1ykwclag2fv9fpmnwniyh7629"; depends=[checkmate data_table settings units wrapr]; };
   formattable = derive2 { name="formattable"; version="0.2.1"; sha256="1vdxi0xmg019qyzjrp8bkjxciz245jcxsrkhfzd44ynqcwi4s3ag"; depends=[htmltools htmlwidgets knitr rmarkdown]; };
-  formatters = derive2 { name="formatters"; version="0.5.5"; sha256="0ay753n018v3idn3q07i8jv68322ia3x5smpz8gkfv7k892y8a4f"; depends=[checkmate htmltools]; };
-  formods = derive2 { name="formods"; version="0.1.3"; sha256="1zvriii32s17mr1nyckbqr63g6rf90x2r6fxsbk9sa8imci272iq"; depends=[cli digest dplyr ggforce ggplot2 onbrand readr readxl rhandsontable rlang shiny shinyAce shinyWidgets stringr writexl yaml zip]; };
+  formatters = derive2 { name="formatters"; version="0.5.6"; sha256="1mq84hj9la0m0007l9l1bzc7abrk5mg5hv4jbv5kp8nwwax5dx5g"; depends=[checkmate htmltools]; };
+  formods = derive2 { name="formods"; version="0.1.6"; sha256="1qawvl10g9zpbph8psndqwizx10pl74d0bhizqcl509zaws4pb95"; depends=[cli digest dplyr ggforce ggplot2 onbrand readr readxl rhandsontable rlang shiny shinyAce shinyWidgets stringr writexl yaml zip]; };
   formula_tools = derive2 { name="formula.tools"; version="1.7.1"; sha256="15d3ikfmsh9zszfgfkrxb3jkipl41inm7n6bhs73kwlnklnygq2g"; depends=[operator_tools]; };
   formulaic = derive2 { name="formulaic"; version="0.0.8"; sha256="1nx6a73vw2hjbnqaw8x17ghhljd6z2avxv4arz3c3785pyayhg9k"; depends=[data_table]; };
   formulops = derive2 { name="formulops"; version="0.5.0"; sha256="1mkpv5xjykrhgknq0gh4yg2a3j4xb8q2d6dh0wv8zd9h59hvrzda"; depends=[]; };
   forplo = derive2 { name="forplo"; version="0.2.5"; sha256="066hpd5jfs8nfd5fbxh049apd93pz8ibzr2kqlssx4c9fziwbg40"; depends=[]; };
   forrel = derive2 { name="forrel"; version="1.6.1"; sha256="1xq94rn86nclh0935jqxvlbqjx5qi0mdj9i6b9sb2qbzjjnm1gcl"; depends=[glue pedFamilias pedprobr pedtools ribd]; };
-  forsearch = derive2 { name="forsearch"; version="5.1.0"; sha256="1nbm127dpb8488234fspbpcl1nz8xdn2f7nxkh6ld3jy9m3f24sa"; depends=[Cairo formula_tools ggplot2 Hmisc nlme survival tibble]; };
+  forsearch = derive2 { name="forsearch"; version="6.0.0"; sha256="1x2q13wmdczyn9lwrmrissc2cp001ca3gyyvy32vjg3844arxckk"; depends=[Cairo formula_tools ggplot2 Hmisc nlme survival tibble]; };
   forstringr = derive2 { name="forstringr"; version="1.0.0"; sha256="0x3nrvazzapvx8nfjyp7a0d1n2qs3mpbnfqj07rv4kxyw47p93iy"; depends=[dplyr glue rlang stringr tidyselect]; };
   fortunes = derive2 { name="fortunes"; version="1.5-4"; sha256="109ly9kpfn6hy294ava8795wy5z9l1bnl98hhhv8kn9naf4camdg"; depends=[]; };
   forward = derive2 { name="forward"; version="1.0.6"; sha256="12yk2l9cjmlr9089a8qw8arpdq997c9d9nx5xsy2x76ik65r6i3l"; depends=[MASS]; };
@@ -10358,7 +10530,7 @@ in with self; {
   fourierin = derive2 { name="fourierin"; version="0.2.5"; sha256="1rl1h433m1kw1jnwb1fqq9vc1qixyz6zd7jzmm4h51xf8mz8r463"; depends=[Rcpp RcppArmadillo]; };
   fpCompare = derive2 { name="fpCompare"; version="0.2.4"; sha256="0w15ylisx7md3nyclqbd13n23f2r36875pdiskav4rry28m892bi"; depends=[]; };
   fpa = derive2 { name="fpa"; version="1.0"; sha256="0kgpl9qq0l10h0vdd2f8vnir0kdylh1jvvv5z4d9ygj1pl9qywhk"; depends=[fields reshape]; };
-  fpc = derive2 { name="fpc"; version="2.2-11"; sha256="06j1dzlf96qcaiqg8m5iah9rmwdppky04xjhs8k4rh0k12wr0mc2"; depends=[class cluster diptest flexmix kernlab MASS mclust prabclus robustbase]; };
+  fpc = derive2 { name="fpc"; version="2.2-12"; sha256="11s7211mnb9c72061mrcdfdwfph6nmbwcnpjgl32i2p7qys9cnam"; depends=[class cluster diptest flexmix kernlab MASS mclust prabclus robustbase]; };
   fpcb = derive2 { name="fpcb"; version="0.1.0"; sha256="086060z6r79m527bb9ah6yk2z15xq8x27gyvbz23xbm6mhrxsa1y"; depends=[FNN]; };
   fpeek = derive2 { name="fpeek"; version="0.1.2"; sha256="0kv46g21ndxchg3q8ynq7hjjkh6i2zlc21axn5y1jjzigrw047ii"; depends=[Rcpp]; };
   fpest = derive2 { name="fpest"; version="0.1.1"; sha256="013r8295spm02j558aqvnrnbkg2g73gl5vi4lqzngbw8yr8qlkri"; depends=[]; };
@@ -10373,7 +10545,7 @@ in with self; {
   fptdApprox = derive2 { name="fptdApprox"; version="2.5"; sha256="013wspkb7n3lcn5z1pfsqwfgzm0rjfswski9550indy2vv4n4qni"; depends=[]; };
   fqacalc = derive2 { name="fqacalc"; version="1.1.0"; sha256="1n4vlz75d2jsl3chsarmgf5cg7zj06gxgn1mj79d85z86pn4jip3"; depends=[dplyr fqadata magrittr rlang]; };
   fqadata = derive2 { name="fqadata"; version="1.1.0"; sha256="1nxqq33j396wa12n3qwfrsh9l2g2pn2f9d25vfzihh3xnsbk0cv5"; depends=[]; };
-  fqar = derive2 { name="fqar"; version="0.5.1"; sha256="1fdzx91n0k49zjggwiamln86d7j4ghqx6gbqp158g7plwbd8hmgz"; depends=[dplyr ggplot2 httr jsonlite memoise rlang tidyr tidyselect]; };
+  fqar = derive2 { name="fqar"; version="0.5.3"; sha256="08cz7bax680kgxcyw8gyk6b206n310a8p1zx9kzlq5sb2a1c1ivr"; depends=[dplyr ggplot2 httr jsonlite memoise rlang tidyr tidyselect]; };
   fr = derive2 { name="fr"; version="0.5.1"; sha256="0kj7qjv6jdrp8wm7ynpi4mjm4sx9b2aqnhqb0pn1xnpbsj9x7557"; depends=[cli dplyr purrr rlang S7 tibble tidyselect vroom yaml]; };
   frab = derive2 { name="frab"; version="0.0-3"; sha256="08nlhshg3bz8b830vl877xyyjgngxk7sf5vp5d0np3bfhrylh0wv"; depends=[disordR mathjaxr Rcpp]; };
   fracdiff = derive2 { name="fracdiff"; version="1.5-3"; sha256="1h3zpy6j6w4w09nfh42jb58q0z5l3g4s556hza9zzzlj81mr940g"; depends=[]; };
@@ -10389,7 +10561,6 @@ in with self; {
   frailtyHL = derive2 { name="frailtyHL"; version="2.3"; sha256="115iv1d2c9mvviick8b24bn6kdbsvnf21nvfjm9a8dk0x07hrv5g"; depends=[cmprsk Matrix survival]; };
   frailtyMMpen = derive2 { name="frailtyMMpen"; version="1.2.1"; sha256="03d3mlbwvpqjgxgw4cqy2502lx4gh8fvf7sbcq06w8yjljffn0a0"; depends=[mgcv numDeriv Rcpp RcppGSL survival]; };
   frailtySurv = derive2 { name="frailtySurv"; version="1.3.8"; sha256="1k1pxn47gglkcjzix3h1vn9z631ms6icgv5df6pb90008qmilck7"; depends=[ggplot2 nleqslv numDeriv Rcpp reshape2 survival]; };
-  frailtypack = derive2 { name="frailtypack"; version="3.6.0"; sha256="03hm6kala923fr02sjmysm2ycxbynsp3h43f8mlw8agi52hf9nz2"; depends=[boot doBy MASS nlme rootSolve shiny statmod survC1 survival]; };
   frair = derive2 { name="frair"; version="0.5.100"; sha256="1j557dqvc5xiz7xbl4h7vp55pc3hly8ci01qy36p02vlxhzf4hj3"; depends=[bbmle boot lamW]; };
   framecleaner = derive2 { name="framecleaner"; version="0.2.1"; sha256="1qy58v9rgrzzqwqp2wrv89rcsp22dqm7c7w2bbcr9jmhb1yb5q67"; depends=[bit64 dplyr fastDummies forcats fs janitor lubridate magrittr purrr readr rio rlang rlist rstudioapi stringr tibble tidyselect vroom]; };
   franc = derive2 { name="franc"; version="1.1.4"; sha256="0l41m53li2pvcac7m5y5gkvmw0qy5k3v0m2ljda9gdaasg5029xr"; depends=[jsonlite]; };
@@ -10398,18 +10569,20 @@ in with self; {
   frbs = derive2 { name="frbs"; version="3.2-0"; sha256="0biv6j31qi0f4i063ygmbp6v6ws1nxijn5kyhg5sz1rnbr0msl28"; depends=[]; };
   frechet = derive2 { name="frechet"; version="0.3.0"; sha256="0lxzhkimyhnisbvfgv8l9vv4pzjj6igcy8fyx25is43g2cz35ymq"; depends=[boot corrplot e1071 fdadensity fdapace Matrix osqp pracma quadprog trust]; };
   fredr = derive2 { name="fredr"; version="2.1.0"; sha256="0073qh0drf1p38hc84m54n35hyza90m8zn48ihx3alxkiq1m8ijp"; depends=[httr jsonlite rlang tibble]; };
-  free = derive2 { name="free"; version="1.0.1"; sha256="0r9vd1d4pi19mnvdchx95axp0hiqs8lpgp0fn40dm89h5fd6zyb0"; depends=[Rcpp RcppArmadillo]; };
+  free = derive2 { name="free"; version="1.0.2"; sha256="0lbgw3nx79x89r1n07hjwacfq11zk1wfg5w2dccwr3w8g9553wiw"; depends=[Rcpp RcppArmadillo]; };
   freealg = derive2 { name="freealg"; version="1.1-1"; sha256="0jx9r40hql8fkpjr005snavj8fw5ykqa4ya7cy59jhxr31byma3j"; depends=[disordR mathjaxr partitions Rcpp]; };
   freebird = derive2 { name="freebird"; version="1.0"; sha256="1rxn4xdp801sng3dzfwm7j001igkn51qx2kc4bcpbczdhb43bzaw"; depends=[MASS Matrix Rmosek scalreg]; };
   freecurrencyapi = derive2 { name="freecurrencyapi"; version="0.1.0"; sha256="02j5jkx0hrv6brb1px782ilv4zlbnv4g2nc4a5d09lqxxvc09kjy"; depends=[httr jsonlite]; };
   freedom = derive2 { name="freedom"; version="1.0.1"; sha256="1mrdl2cqdm2c68lx7lyixgiqw6xzwnx9c8j5q4annhiz107i9i22"; depends=[]; };
   freegroup = derive2 { name="freegroup"; version="1.1-8"; sha256="1qrawy5zngiph1lg2bcczbq84vsfgpd74kbxy1nh7bp9ps1p5ga4"; depends=[freealg magic magrittr plyr]; };
+  freesurfer = derive2 { name="freesurfer"; version="1.6.10"; sha256="1i687yj76gbassyldpgal33cxd2hixzl0779ql9fjsaibh5m1dc4"; depends=[neurobase R_utils reshape2]; };
   freesurferformats = derive2 { name="freesurferformats"; version="0.1.18"; sha256="17g58abcp6fk20zdx0lzvb989g359nk1vl5drlfinfp6p1jjvsbj"; depends=[pkgfilecache xml2]; };
+  freewall = derive2 { name="freewall"; version="1.0.0"; sha256="18f2f0dpn8jhvsfmr4mfjs359y64f312djmpj3f84yjwss4ch5kb"; depends=[htmltools htmlwidgets jquerylib]; };
   frenchCurve = derive2 { name="frenchCurve"; version="0.2.0"; sha256="123dvjpny9avwwsgqhaa2f79796vjh8k018vgr8rx72ja2x9cy8f"; depends=[sp]; };
   frenchdata = derive2 { name="frenchdata"; version="0.2.0"; sha256="13n0phncbxim9ak897hmjw1p7ph5wi3jn2m8hgmm3bywxbxcg1qz"; depends=[assertthat cli dplyr fs httr magrittr purrr readr rlang rvest stringr tibble tidyr]; };
   freqdist = derive2 { name="freqdist"; version="0.1"; sha256="1pb45jabv9s3qa7v1isd5wm9b0g9p04q5h18spcaax8397s0d2fv"; depends=[]; };
   freqdistributionNogives = derive2 { name="freqdistributionNogives"; version="0.1.1"; sha256="1y01yiyzgcsr8xcjgxq75ky8a6f4d2h3x82la3zcrczy7fplblq4"; depends=[]; };
-  freqdom = derive2 { name="freqdom"; version="2.0.3"; sha256="0gq91zmai0jcn9wgddqkws9bvj5kx70kccnszhdzbdsh2irqjbgv"; depends=[matrixcalc mvtnorm]; };
+  freqdom = derive2 { name="freqdom"; version="2.0.5"; sha256="0fs6hrm0jf5cqfsnfbp0m7lrzvryzi49fi6lmisrb7ql3a8jzkxa"; depends=[matrixcalc mvtnorm]; };
   freqdom_fda = derive2 { name="freqdom.fda"; version="1.0.1"; sha256="1y9g85sp0w8rvhmsrln64bj1h03wkpgriqidc3pf123if58ap72m"; depends=[fda freqdom mvtnorm]; };
   freqparcoord = derive2 { name="freqparcoord"; version="1.0.1"; sha256="011p8xh0i0x0w5rv5qz5a7fxwdhxd8l2bqi9bxv5almxd0y7ajqx"; depends=[FNN GGally ggplot2 mvtnorm]; };
   freqpcr = derive2 { name="freqpcr"; version="0.4.0"; sha256="04s6yrzxk4v86nhs9mwam1y2lfac73r6i8af9xbbmrlzj61wiia9"; depends=[cubature]; };
@@ -10420,7 +10593,7 @@ in with self; {
   frequentistSSD = derive2 { name="frequentistSSD"; version="0.1.1"; sha256="1d54zr87795gm4qc6aw3nv9i83rhnhv14rcpkrivdxhxv8rnhnn9"; depends=[survival]; };
   fresh = derive2 { name="fresh"; version="0.2.0"; sha256="1787mm6w2s5x9scxy7r9cb77rgpmy4ngwkn4z8g3gs48mrab4bd9"; depends=[htmltools rstudioapi sass shiny]; };
   freshr = derive2 { name="freshr"; version="1.0.2"; sha256="1vzwdy5cssk9r3fvw0w1pxkn203whzycmvz9fdm08lkd538zwdnj"; depends=[]; };
-  frictionless = derive2 { name="frictionless"; version="1.0.3"; sha256="1f0857jl1xq1v2pv6wv9nx7crm40r1p60gjbqlr9qi8nm3ikz8a8"; depends=[assertthat dplyr glue httr jsonlite purrr readr yaml]; };
+  frictionless = derive2 { name="frictionless"; version="1.1.0"; sha256="0d23gbaikwhr7jac9b21p8a3hj1rwh766v752axikbq02hf3a6vg"; depends=[cli dplyr httr jsonlite purrr readr rlang yaml]; };
   friends = derive2 { name="friends"; version="0.1.0"; sha256="164p9g07vq3xs2lgg250yvzca4b0mp81pqbnjfdkzcqh5hmahsan"; depends=[tibble]; };
   fritools = derive2 { name="fritools"; version="4.3.0"; sha256="0l8h605c00a6fgkp4qr6rddwdrjs1ywjw982n90cjx2s6znrv966"; depends=[]; };
   fritools2 = derive2 { name="fritools2"; version="4.1.0"; sha256="1gbji1nq1jgw2h6ll4qzxv6hwvlp3zbw1n9ljnjw4zmz031c3zjd"; depends=[]; };
@@ -10429,16 +10602,16 @@ in with self; {
   frontiles = derive2 { name="frontiles"; version="1.3.1"; sha256="0l9hyd5rmam5xqa717vcr4cj5fxdfxrjgfdfc6q04hnqzw09cg05"; depends=[colorspace rgl]; };
   frostr = derive2 { name="frostr"; version="0.2.0"; sha256="1bsgdskdbyryq7jvhnb4z4xb1m5vadqv00qjlkgp41xh71wp2brs"; depends=[httr jsonlite tibble tidyr]; };
   froth = derive2 { name="froth"; version="1.1.0"; sha256="188rprm37lppgkn1mf8qfgjsz55kvm29dkblnbf458g5339w7vz1"; depends=[]; };
-  frscore = derive2 { name="frscore"; version="0.3.1"; sha256="1nfl6jzghr3zg63l3vzkpx8fpr2mz60nxikmssngbcbv6qfyi8i8"; depends=[cna dplyr lifecycle magrittr Rfast rlang]; };
+  frscore = derive2 { name="frscore"; version="0.4.1"; sha256="1phmy313xl1x3v1smf6f19aa1sd0cypfn5hpg715k9p9z9sh58qq"; depends=[cna dplyr lifecycle magrittr Rfast rlang withr]; };
   fruclimadapt = derive2 { name="fruclimadapt"; version="0.4.5"; sha256="0v9yh3q7sf0q8lwj89hr50f3s6m14c0azs0rbmykxmj18k376fwg"; depends=[data_table dplyr lubridate magrittr zoo]; };
-  fs = derive2 { name="fs"; version="1.6.3"; sha256="0wgrq0vgaf9czjyzlxdmpy7swxcyd4mryks0gr5xk96pa0g0d0ps"; depends=[]; };
+  fs = derive2 { name="fs"; version="1.6.4"; sha256="1j2sx9zxz0qcgvim8mvvjrl0z2qbn2j4idsivx7zadmy5l7jj1ky"; depends=[]; };
   fsbrain = derive2 { name="fsbrain"; version="0.5.5"; sha256="0zm6gyc0a0ymx40qpwpm8v51mnp3m9si72smpwznnpgymlwh7r0s"; depends=[data_table fields freesurferformats magick pkgfilecache reshape rgl squash viridis]; };
-  fscache = derive2 { name="fscache"; version="1.0.2"; sha256="0fxrz0mhhb38imk8hvngyzmvyagx1yhd4jfkrplwcrpyfbxbbdq5"; depends=[chk lgr R_utils R6 stringi]; };
+  fscache = derive2 { name="fscache"; version="1.0.5"; sha256="0815z6a677ygiv4hlslmvbnd1pdnh2xz3sw0nzgrcr2vzj83h25x"; depends=[chk lgr lifecycle R_utils R6 stringi]; };
   fscaret = derive2 { name="fscaret"; version="0.9.4.4"; sha256="18fhyfl3f8syyc3g937qx87dmwbv7dray6b97p1s6lnssiv61gsw"; depends=[caret gsubfn hmeasure]; };
   fsdaR = derive2 { name="fsdaR"; version="0.9-0"; sha256="1jg8m5rdafzl9xw27knrnhyyq1y7ss4v0azm1q3rgqrxvfnqn7bg"; depends=[ggplot2 rJava]; };
-  fsemipar = derive2 { name="fsemipar"; version="1.0.1"; sha256="0fj088wggbqjxsj1k143k0xwc62j5i082flmz808f728p7c5hrjk"; depends=[DiceKriging grpreg gtools]; };
+  fsemipar = derive2 { name="fsemipar"; version="1.1.1"; sha256="1qcaaq0cnpl7f0fh4hj868ms7akkb74dlwwkkkjhbfdhxnp3wyni"; depends=[DiceKriging doParallel foreach ggplot2 gridExtra grpreg gtools parallelly tidyr]; };
   fsia = derive2 { name="fsia"; version="1.1.1"; sha256="0id7cnswrqylgpwjil1zfn89ryrdpl20fim8x1srl8s1hm5bg35r"; depends=[]; };
-  fslr = derive2 { name="fslr"; version="2.25.2"; sha256="0az215n4ra3g6v34cwv8rrjpjq8c9mx34fmjqk7icdwm2raw32vh"; depends=[neurobase oro_nifti R_utils]; };
+  fslr = derive2 { name="fslr"; version="2.25.3"; sha256="0pp1hn80qknxg7w24qqgjq0y96i22qixsdgs2bkjylwh9zhxbg9x"; depends=[neurobase oro_nifti R_utils]; };
   fsn = derive2 { name="fsn"; version="0.2"; sha256="12n1v8nhfn5pjjsrp41wk848yw797wxa9anx9dm8rd278smrk01f"; depends=[Rfast]; };
   fso = derive2 { name="fso"; version="2.1-2"; sha256="15jvq063j05wpiwcm80zbnr1rf5g7xhv60qh3b8c43l398n4frhw"; depends=[labdsv]; };
   fspe = derive2 { name="fspe"; version="0.1.2"; sha256="02pmrc6k9wi8ic26nxj66pzjp64ds36awaj3hx2zw3nnccgs7164"; depends=[corpcor psych]; };
@@ -10449,24 +10622,25 @@ in with self; {
   fstcore = derive2 { name="fstcore"; version="0.9.18"; sha256="00wzpr2i7s9pc3alvn4b8f1wgmfqplpwdif9rh9x8qqnylbixiqq"; depends=[Rcpp]; };
   fsthet = derive2 { name="fsthet"; version="1.0.1"; sha256="0z6az1jcvdahgn97r6cpj1s6fn0lvr7j12gcw2r7wbpajrvyl5j6"; depends=[]; };
   ftDK = derive2 { name="ftDK"; version="1.0"; sha256="1xs2rr2afjza97kpym5zkas3k78pilxjlh7lp1gc66banldr71g2"; depends=[dplyr httr pbapply purrr tibble]; };
-  ftExtra = derive2 { name="ftExtra"; version="0.6.2"; sha256="0b21pm2aac24m79f6lh2si51s0i5ixzx36dva0m4wqwcvclg94ri"; depends=[dplyr flextable jsonlite magrittr purrr rlang rmarkdown stringr tibble tidyr tidyselect vctrs xfun yaml]; };
+  ftExtra = derive2 { name="ftExtra"; version="0.6.4"; sha256="02sdhqjfzgbwwzv2dg6wbzhymklkrmxihs4nz83fi1585dv5kbyq"; depends=[dplyr flextable jsonlite magrittr purrr rlang rmarkdown stringr tibble tidyr tidyselect vctrs xfun yaml]; };
   ftaproxim = derive2 { name="ftaproxim"; version="0.0.1"; sha256="0955zj99vkq82hc08wl17mk2ij1l30nqbcdikf87cx78a13zxy4w"; depends=[ggplot2 plyr]; };
   ftrCOOL = derive2 { name="ftrCOOL"; version="2.0.0"; sha256="0jy0dhkf7hlrriz32abp0h52fw92i5k8x25bjqlzd0khyv2vhj0i"; depends=[]; };
   ftsa = derive2 { name="ftsa"; version="6.4"; sha256="14s3qr8czycqgn6a462bmy575mn77lrhrb4ahpaa67m2xlcqpw4v"; depends=[boot colorspace e1071 ecp evgam fda fdapace fGarch forecast glue KernSmooth LaplacesDemon MASS pcaPP pdfCluster psych rainbow ROOPSD sde strucchange vars]; };
   ftsspec = derive2 { name="ftsspec"; version="1.0.0"; sha256="12f9yws1r26i240ijq0xqprl3pgbw50wv68jsm75ycplbs2jsyhs"; depends=[sna]; };
-  fude = derive2 { name="fude"; version="0.3.5"; sha256="11gzmgq7rknrhcskfs751f4snh4qcv3hfkqn6b95iv9zkcpar4gm"; depends=[dplyr forcats glue magrittr purrr rlang sf stringi tidyr]; };
+  fude = derive2 { name="fude"; version="0.3.6"; sha256="06aacagrq4vjzq8r3xayyic8i0gjls7b7b94cnmspprh0bk9d7dw"; depends=[dplyr forcats glue magrittr purrr rlang sf stringi tidyr units]; };
   fuel = derive2 { name="fuel"; version="1.2.0"; sha256="0pzb77g6l8cz5p7y6czck23kp7hs5zp78k87b5yh0avjlr7ads74"; depends=[]; };
   fueleconomy = derive2 { name="fueleconomy"; version="1.0.0"; sha256="16a8wyliiidi6rw14ksimygfkl4a7yhxvss7l9bcvr1wfiplrn65"; depends=[]; };
   fugue = derive2 { name="fugue"; version="0.1.7"; sha256="1myvi9cizxvahb6wn2k26v3x958xsrm2p414ar05injmfjdfnsmi"; depends=[]; };
-  fuj = derive2 { name="fuj"; version="0.1.4"; sha256="1mw4cl6w2nl8f5sfxbvzhbzz2di6msfrdiz8vylqq12z4gzr6l11"; depends=[]; };
+  fuj = derive2 { name="fuj"; version="0.2.1"; sha256="0ls63rhlwkfn145c34qgng5n8h0av092jkid5gy8fq7mj1ycflwd"; depends=[]; };
   fullROC = derive2 { name="fullROC"; version="0.1.0"; sha256="0pn4lh59snfcyyi28350lm4n9xh6y25hpjr38dc33bic4cfbqiyr"; depends=[]; };
   fullfact = derive2 { name="fullfact"; version="1.5.2"; sha256="1x62zxqi99i91n1j8rsmxp6k614rq34r8l9qhszz3a9z32yi9mf6"; depends=[afex lme4]; };
   fun = derive2 { name="fun"; version="0.3"; sha256="09601ma4irmpkgjspq6zmr383m1pbgyfdkf7gw8w8gp0q7ab89aq"; depends=[]; };
   funData = derive2 { name="funData"; version="1.3-9"; sha256="0kf1q60z10f3gcw9132i9q3qd3z3idxw34cdklv3w56v8j14g63b"; depends=[abind fields foreach]; };
   funFEM = derive2 { name="funFEM"; version="1.2"; sha256="17pw743qnljwasj4cg8m8sg9j6piy7g69jr57aqmbizlfdqvvl05"; depends=[elasticnet fda MASS]; };
-  funGp = derive2 { name="funGp"; version="0.3.2"; sha256="1r648syb2l8n53if3cww5jpyl3rrhg36q0fldmsp1nb1xhqqk6vg"; depends=[doFuture doRNG foreach future knitr microbenchmark progressr scales]; };
+  funGp = derive2 { name="funGp"; version="1.0.0"; sha256="1g9zcmg5vbbypznn3qbrqb8xg6phs1m522wf1zk3b401wf198q50"; depends=[doFuture doRNG foreach future knitr microbenchmark progressr scales]; };
   funLBM = derive2 { name="funLBM"; version="2.3"; sha256="0aa9h6nbxbvd6iq4q00rndhvb6sq79lpdgr3zwz0lcgjx6p56s5g"; depends=[abind fda funFEM ggplot2]; };
-  funStatTest = derive2 { name="funStatTest"; version="1.0.2"; sha256="1dqp4yh01w8xdbjhjzxrx33w0hgxcm5a43r27q17m34hqiv33y34"; depends=[checkmate distr dplyr ggplot2 magrittr Matrix pbapply stringr tibble tidyr tidyselect]; };
+  funModeling = derive2 { name="funModeling"; version="1.9.5"; sha256="0wrcfqn0sj2shs2105glhm4ll5avbh8aq0yc6q72cjixjck9hn6h"; depends=[cli dplyr entropy ggplot2 gridExtra Hmisc lazyeval moments pander RColorBrewer reshape2 ROCR scales stringr]; };
+  funStatTest = derive2 { name="funStatTest"; version="1.0.3"; sha256="162wm4j63bg7l1cyqjb23cn68pm1zg1nc25zxhy3mb12pipnqq2x"; depends=[checkmate distr dplyr ggplot2 magrittr Matrix pbapply stringr tibble tidyr tidyselect]; };
   func2vis = derive2 { name="func2vis"; version="1.0-3"; sha256="16lp9sz63s3g3f1j1dmx881k6wy177cmi4vl6xwg4bzg88bkf8rq"; depends=[devtools ggplot2 ggrepel igraph randomcoloR]; };
   funcharts = derive2 { name="funcharts"; version="1.4.1"; sha256="0rxj7cpvl0ng1drqp5iyg7j39pn3pss2zg3zk8kf0vc6ajzfvr5g"; depends=[dplyr fda fda_usc ggplot2 MASS Matrix matrixStats mvtnorm patchwork rlang roahd robustbase rofanova rrcov RSpectra stringr tidyr]; };
   funchir = derive2 { name="funchir"; version="0.2.2"; sha256="1a5nwqnnv0bn2wrw4lbnwbxkb9xr273sq8m8lnv8wy7wzfyfjaxz"; depends=[data_table]; };
@@ -10485,24 +10659,26 @@ in with self; {
   funr = derive2 { name="funr"; version="0.3.2"; sha256="11mjd1ba9kwawh7k5py54mkq4g1df79d7qivan8fj11qfwfzm679"; depends=[]; };
   funrar = derive2 { name="funrar"; version="1.5.0"; sha256="1c9mjbl8g0w7bk7kkms14dyq7yi4c8id4ln29khfabim61dapmqd"; depends=[cluster Matrix]; };
   funreg = derive2 { name="funreg"; version="1.2.2"; sha256="0dagzz5pl16l2jkkj11z41y68s75jxmyl46csda6vzlgjc7n4ji8"; depends=[MASS mgcv mvtnorm]; };
-  funspace = derive2 { name="funspace"; version="0.2.1"; sha256="07xamf26vrzmqxkg0yxwh4rh8v01wya774rz70qlydfwdqq7gs3s"; depends=[ade4 ape ks MASS mgcv missForest paran phytools vegan viridis]; };
+  funspace = derive2 { name="funspace"; version="0.2.2"; sha256="036hx837rlarvms79jjg3lg77h6k94p3n8n1hpw70v8hcrz6dr54"; depends=[ade4 ape ks MASS mgcv missForest paran phytools vegan viridis]; };
   funspotr = derive2 { name="funspotr"; version="0.0.4"; sha256="0n437kkv1dnpna32rbyr0r5kl6qhmbygf2kmng7w5ni8p1xjwmh2"; depends=[callr dplyr formatR fs glue here httr knitr lifecycle purrr r_import readr stringr tibble tidyr]; };
   funtimes = derive2 { name="funtimes"; version="9.1"; sha256="0gz26djl534d42wxspg9hl0ndhzzhkr9d4vp87afqqg9401qcgcz"; depends=[dbscan Kendall lmtest mlVAR Rdpack sandwich vars]; };
   furniture = derive2 { name="furniture"; version="1.9.14"; sha256="07ds1vk1bvv6027g2z93161g3pkdp9vj3prbkjbwkj392sc9rg04"; depends=[dplyr knitr]; };
   furrr = derive2 { name="furrr"; version="0.3.1"; sha256="12z4q0fn7asxis17hisi82bvfabl5if1338lmfqmkrwv5rg7748d"; depends=[future globals lifecycle purrr rlang vctrs]; };
   fusedMGM = derive2 { name="fusedMGM"; version="0.1.0.1"; sha256="126h8jvmx1y1n49p4s2h3qn7qfzf6q98k7b7rwjn6rn9hjvwd45j"; depends=[bigmemory fastDummies gplots]; };
-  fusen = derive2 { name="fusen"; version="0.5.2"; sha256="05i89hf2ac32cprgvlwazxj441jihx0lfghs59s2wgbjjw55wixr"; depends=[attachment cli desc devtools glue here magrittr parsermd roxygen2 stringi tibble tidyr usethis yaml]; };
+  fusen = derive2 { name="fusen"; version="0.6.0"; sha256="0d7ljc7b26www60ln1ww4gn2haymlybjbd3rz8k7z8i9ckq10kkp"; depends=[attachment cli desc devtools glue here lightparser magrittr roxygen2 stringi tibble tidyr usethis yaml]; };
   fuser = derive2 { name="fuser"; version="1.0.1"; sha256="17lsfpd9hdichj3wflac896zyjbq7a8w2gmlgj8nbgg80f646fgr"; depends=[glmnet irlba Matrix Rcpp RcppEigen RSpectra]; };
   fusionchartsR = derive2 { name="fusionchartsR"; version="0.0.3"; sha256="09l5kckgkp2l0zvfnqhbzy65bi23aavas9m74nddhjh6di8xndh8"; depends=[htmlwidgets jsonlite magrittr shiny]; };
   fusionclust = derive2 { name="fusionclust"; version="1.0.0"; sha256="1h03nlk4gnz4j5h2h5bxazkka2qq983h7nglm1ghzqvbqjk6sv37"; depends=[bbmle]; };
   futile_logger = derive2 { name="futile.logger"; version="1.4.3"; sha256="1r3nayk0z9n1svbf8640vw90dal5q07nkn0gv4bnva3pbzb352sy"; depends=[futile_options lambda_r]; };
   futile_options = derive2 { name="futile.options"; version="1.0.1"; sha256="0w15agpi88y3qkv6fl72zy2pzyplzgvnj41a4ixhg64mw1sck73s"; depends=[]; };
   futility = derive2 { name="futility"; version="0.4"; sha256="0zjb87brz7pkx3nq3q30y69cmcxpqqsra447p60qh7005kgr9vx4"; depends=[]; };
-  future = derive2 { name="future"; version="1.33.1"; sha256="1xvb7rhwnsi7l735jfrh7ij0l6q6hazwcb2620hvfjwl2kkpk00r"; depends=[digest globals listenv parallelly]; };
-  future_apply = derive2 { name="future.apply"; version="1.11.1"; sha256="0zf22vip8w50pywc47xjghca9wkvcsvvfaa2yfaydwwzc3ss3bh2"; depends=[future globals]; };
+  future = derive2 { name="future"; version="1.33.2"; sha256="0rma4h9rjy28n7csn748v9b83m2v5hyh0hgwwckfpbnd5331m9xm"; depends=[digest globals listenv parallelly]; };
+  future_apply = derive2 { name="future.apply"; version="1.11.2"; sha256="11qkv2r8ml1i95j5ra191ij5w1dvllgvr9ld5xnq43ayzaq3b9pl"; depends=[future globals]; };
   future_batchtools = derive2 { name="future.batchtools"; version="0.12.1"; sha256="0cfr4y6d0x1vm0qdpj2b6i9jddd6065iwbv99nix7nls4dzylwfv"; depends=[batchtools future parallelly]; };
   future_callr = derive2 { name="future.callr"; version="0.8.2"; sha256="14hq53cam65ff25l6y17zv37448ls90sa0w51f13199m1kffaaqb"; depends=[callr future]; };
+  future_mirai = derive2 { name="future.mirai"; version="0.2.1"; sha256="1ihi9n9wgxq43cx7cxzzay4j8g19jxhyww1h40rr84qzqdj6nk62"; depends=[future mirai parallelly]; };
   future_tests = derive2 { name="future.tests"; version="0.7.0"; sha256="10g1w99xqr7l0cn27642aphqcvfidgpas38f84r815yy6k1ryrlx"; depends=[cli crayon future prettyunits sessioninfo]; };
+  futureverse = derive2 { name="futureverse"; version="0.1.0"; sha256="1c720ynsxg18xz1xr1gx6vydhvmskwwlxf9jrglrni1rfrf6h4f7"; depends=[doFuture furrr future future_apply progressr]; };
   fuzzr = derive2 { name="fuzzr"; version="0.2.2"; sha256="1cwq7a5j6lzrlz9dw3hsfap988rh1kkgf03yni7c33zl69xp5w77"; depends=[assertthat progress purrr]; };
   fuzzyRankTests = derive2 { name="fuzzyRankTests"; version="0.4"; sha256="04841fh4nf7qriqk0b2ny943bji60bj42j8czg056d2dza4q4039"; depends=[]; };
   fuzzySim = derive2 { name="fuzzySim"; version="4.10.7"; sha256="1xfq2il2d44a99yp2lnsmmna52spqk92sv29farmxwppfvghg942"; depends=[modEvA]; };
@@ -10511,11 +10687,10 @@ in with self; {
   fuzzyreg = derive2 { name="fuzzyreg"; version="0.6.2"; sha256="056ryj4w26fb4fpy43fgvqs8ijcpm6v503pnzw73d8gxahwkvwl2"; depends=[limSolve quadprog]; };
   fuzzywuzzyR = derive2 { name="fuzzywuzzyR"; version="1.0.5"; sha256="1g73xivxyh5fvppccgnxhgar6jsl6zsr2djkg0bhh10i633l56ia"; depends=[R6 reticulate]; };
   fwb = derive2 { name="fwb"; version="0.2.0"; sha256="02r6p2ck56lm3ip105cp0m5q05lifynpq767bl2igf7zsvhjqpak"; depends=[chk pbapply rlang]; };
-  fwildclusterboot = derive2 { name="fwildclusterboot"; version="0.13.0"; sha256="0slm28pgvfsrsdvz2i1h231gkf4iq6gdlspyzppn8nwhngvic5hd"; depends=[collapse dqrng dreamerr Formula generics gtools JuliaConnectoR MASS Matrix Rcpp RcppArmadillo RcppEigen rlang summclust]; };
   fwlplot = derive2 { name="fwlplot"; version="0.2.0"; sha256="1fi2ijfkpxfbwxfcyc5mk2c7mpj6z7lrwm8wlilk2g04y6jmw84l"; depends=[data_table fixest ggplot2]; };
   fwsim = derive2 { name="fwsim"; version="0.3.4"; sha256="0fy87c1x5hihfcppv1pvk3b0pwl6ygqpka40x55gbpkgssdigb1l"; depends=[Rcpp]; };
   fxTWAPLS = derive2 { name="fxTWAPLS"; version="0.1.2"; sha256="1bxrwkf65qw3k6mqvp27lqw6i2r7bdbilnl9406k1nva353gcxxm"; depends=[doFuture foreach future geosphere ggplot2 JOPS MASS progressr]; };
-  fxl = derive2 { name="fxl"; version="1.6.3"; sha256="1c1cw1j1vz7my868ryg0r7zw655xbhk0za75pvd3mgfy0bs6600x"; depends=[grImport rlang]; };
+  fxl = derive2 { name="fxl"; version="1.7.1"; sha256="0i7c30vaysrfav9z4ikfmjy287qvcnx3yi3898qcszkip28n9zx7"; depends=[rlang]; };
   fxregime = derive2 { name="fxregime"; version="1.0-4"; sha256="0ml1q0xp90jfng6a60pfkp6j7wajk6pz4p4wm08rfqikgsdvp0m4"; depends=[car sandwich strucchange zoo]; };
   fy = derive2 { name="fy"; version="0.4.2"; sha256="1gbv2hvh3y9qdld660i250snwxn4irp41qrr3pc1nakbf5b9aqnz"; depends=[data_table fastmatch hutils]; };
   g_data = derive2 { name="g.data"; version="2.4.1"; sha256="1v2sn117hmawgsa6f7nrpv2bpg6zzjd1ss356qjqp7kdwmifqlrq"; depends=[]; };
@@ -10526,16 +10701,16 @@ in with self; {
   gJLS2 = derive2 { name="gJLS2"; version="0.2.0"; sha256="112fyy76ry6g0xinhy09s5vdcd11jw7sivadlx05ali89lm5nigg"; depends=[ggplot2 MASS MCMCpack moments nlme plyr quantreg]; };
   gKRLS = derive2 { name="gKRLS"; version="1.0.2"; sha256="0kkk463mgrypc5vihv9hvj7dsdwv6yvmhxp6iy6ip1k7nqi8xdvf"; depends=[Matrix mgcv mlr3 R6 Rcpp RcppEigen sandwich]; };
   gLRTH = derive2 { name="gLRTH"; version="0.2.0"; sha256="1drmmr576n3pbr0q1cnnx4k7r4iz061n2cizv1kpr3wcc1g291pn"; depends=[]; };
-  gMCP = derive2 { name="gMCP"; version="0.8-16"; sha256="0jkq538xif87asrllmdbcf9hz9z4p5j1xnvf3fp2kc9p48jqdx75"; depends=[CommonJavaJars JavaGD MASS Matrix multcomp mvtnorm PolynomF rJava xlsxjars]; };
+  gMCP = derive2 { name="gMCP"; version="0.8-17"; sha256="0w5qxjyn5z7mygsvrmqk5ab827abhp7v4d8ha8279gjjkfswq5fi"; depends=[CommonJavaJars JavaGD MASS Matrix multcomp mvtnorm PolynomF rJava xlsxjars]; };
   gMCPLite = derive2 { name="gMCPLite"; version="0.1.5"; sha256="1qykizcq42hj6v9fb9hyi59zi1m4hpk10il7why9s9cwyii1m69z"; depends=[ggplot2 MASS mvtnorm]; };
   gMOIP = derive2 { name="gMOIP"; version="1.5.2"; sha256="159rqd65g17m2mh93jpkapk4r6n8gmf43vrxhv8aqyggwl0ifdkx"; depends=[dplyr eaf geometry ggplot2 ggrepel MASS Matrix plyr png purrr Rfast rgl rlang sp tibble tidyr tidyselect]; };
   gMWT = derive2 { name="gMWT"; version="1.4"; sha256="1iv7dav6l9gx6vhghcyasdizjsz2f8yzcgkj2i50kpgw74ljg5ia"; depends=[clinfun Rcpp RcppArmadillo]; };
   gProfileR = derive2 { name="gProfileR"; version="0.7.0"; sha256="1h1v0kgpsn04ald2izznh7fr2riwisj5hcgz4k7h3qc931rf0r4k"; depends=[plyr RCurl]; };
   gRain = derive2 { name="gRain"; version="1.4.1"; sha256="11b40ngfzqqx9pgfbgx7qr63ikccxh1hg9snw55anw32hym2dyfr"; depends=[broom gRbase igraph magrittr Rcpp RcppArmadillo RcppEigen]; };
   gRaven = derive2 { name="gRaven"; version="1.1.8"; sha256="0nmnmn5ni4ml5r7ah7kl8n51r5bcd9r6ncg7yz4qypbdqdamqx87"; depends=[gRain gRbase rlang]; };
-  gRbase = derive2 { name="gRbase"; version="2.0.1"; sha256="1ac1qx219g2p3wlxh57jqhifckxm8jqb3vi3pmlv8m29hm997r0y"; depends=[igraph magrittr Matrix Rcpp RcppArmadillo RcppEigen]; };
-  gRc = derive2 { name="gRc"; version="0.4.6"; sha256="0jrskkp8850b3nanlz19iycwnsiyfxpwxi8vy6bvv36lbhslg86l"; depends=[gRbase magrittr MASS Rcpp RcppArmadillo]; };
-  gRim = derive2 { name="gRim"; version="0.3.0"; sha256="1iimjfqy2sdxxy2lvsaywxap8zik2qikjy2ib06mqjxrv711fx2a"; depends=[gRain gRbase igraph magrittr Rcpp RcppArmadillo RcppEigen]; };
+  gRbase = derive2 { name="gRbase"; version="2.0.2"; sha256="15rfl3wib8gq90fy1rr1p7cvdbiqg3qkp6vc71k02difp14hwwin"; depends=[igraph Matrix Rcpp RcppArmadillo RcppEigen]; };
+  gRc = derive2 { name="gRc"; version="0.5.0"; sha256="12fz7aiddzc3pxvglin265z30ihcmy18nsw02zg7vb27bz5ldvqp"; depends=[gRbase igraph MASS Rcpp RcppArmadillo]; };
+  gRim = derive2 { name="gRim"; version="0.3.2"; sha256="1injdhl0xgx9702k4jxdy0wpkf2d4k31m9fi5g9sf572i288lrns"; depends=[doBy glue gRain gRbase igraph MASS Matrix Rcpp RcppArmadillo RcppEigen]; };
   gSeg = derive2 { name="gSeg"; version="1.0"; sha256="0lixlirisnxk29zlrragi3l8j1abb5cl7zh6vhx7l5hjdvh8ldq9"; depends=[]; };
   gStream = derive2 { name="gStream"; version="0.2.0"; sha256="1f4xnbavm99yhjmaahazigps41mqlfvvl29kf4fs1yjqr531y36b"; depends=[]; };
   gTests = derive2 { name="gTests"; version="0.2"; sha256="1h1sd8mrzcniq7rx7frdlxwpnsn8lifng1x99fqq703hs3znl1yq"; depends=[ade4]; };
@@ -10549,8 +10724,8 @@ in with self; {
   gaiah = derive2 { name="gaiah"; version="0.0.5"; sha256="1s2chr3zjgvmmic178c1fixbvf501q7jvxdg8204jalh9iii14vb"; depends=[dplyr geosphere magrittr raster rlang sp]; };
   gainML = derive2 { name="gainML"; version="0.1.0"; sha256="1mqhrdjdmc2n7dxilxkqn6xq7z0qnxpigw5bbffnjvvsmdamah0n"; depends=[fields FNN]; };
   gains = derive2 { name="gains"; version="1.2"; sha256="1nmrhc7qjlyzn04r1qyjdws5fin3idmi789kbxzilax12ya8xr7k"; depends=[]; };
-  galah = derive2 { name="galah"; version="2.0.1"; sha256="0q37f8qpqrhbxaq1gjqvrhqz9ak41mlijria49p9fhmsz8fv0zz4"; depends=[cli crayon dplyr glue httr2 jsonlite lifecycle potions purrr readr rlang sf stringr tibble tidyr tidyselect]; };
-  galamm = derive2 { name="galamm"; version="0.1.1"; sha256="0iyszijnlg9bsh8234qm1vdrvcbnas18ylks9v4jg32mxnai6vpq"; depends=[lme4 Matrix memoise mgcv nlme Rcpp RcppEigen Rdpack]; };
+  galah = derive2 { name="galah"; version="2.0.2"; sha256="1z4z403b3jf0rj3gjrmsgjc4niab6jxdwb01rw0pzdblc8a2y4f1"; depends=[cli crayon dplyr glue httr2 jsonlite lifecycle potions purrr readr rlang sf stringr tibble tidyr tidyselect]; };
+  galamm = derive2 { name="galamm"; version="0.2.0"; sha256="1pyckh5yb9asgk47za9a1791hzkr0w978bf5b7qjca2gw1yymarw"; depends=[lme4 Matrix memoise mgcv nlme Rcpp RcppEigen Rdpack]; };
   galigor = derive2 { name="galigor"; version="0.2.5"; sha256="1lfw1kikf90nv9g0xrb656fbilmxdk64zrzi43wrz7y2y55sd5xv"; depends=[cli crayon dplyr gargle getProxy magrittr purrr rappsflyer rfacebookstat rgoogleads rmytarget rstudioapi rvkstat ryandexdirect rym tibble tidyr]; };
   galts = derive2 { name="galts"; version="1.3.2"; sha256="0a7yhdxja4jq2rn6p8imfg7ih3i4njqsz8zmkgwckj4q2x042lj5"; depends=[DEoptim genalg]; };
   galvanizer = derive2 { name="galvanizer"; version="0.5.3"; sha256="1b9431mmgpqyd49b8nlsrlxjq9j9fyj73226bi9jic1p867533kk"; depends=[dplyr httr jsonlite lubridate magrittr rlang tibble tidyjson tidyr tidyselect]; };
@@ -10564,17 +10739,18 @@ in with self; {
   gamboostLSS = derive2 { name="gamboostLSS"; version="2.0-7"; sha256="1mx2aixdswmb8dgg1iawqzak2w7a1w4x6igk8wdwi05gifrgrs3i"; depends=[mboost stabs]; };
   gamboostMSM = derive2 { name="gamboostMSM"; version="1.1.88"; sha256="16khm2fpsb3ivfszrilxbrzc8a281vmd1q36dcn50xbkvn19syxg"; depends=[mboost]; };
   gamclass = derive2 { name="gamclass"; version="0.62.5"; sha256="0y34970qwgssdnwnhb1hnkyav8j7pq3hkdskw63qs8cin4cknq7j"; depends=[lattice latticeExtra randomForest rpart]; };
-  gameR = derive2 { name="gameR"; version="0.0.5"; sha256="0k4gsnlb4jc9nbvxjjqyllvn70a707pl1icc3dhc62gqychkaxyn"; depends=[]; };
+  gameR = derive2 { name="gameR"; version="0.0.6"; sha256="05bn53ryl48s2r212wqaxljimkgskyd4qxzc7algzbyvmalcg6rx"; depends=[]; };
   gamesGA = derive2 { name="gamesGA"; version="1.1.3.7"; sha256="0km0z2haqgykl01xkzsbkpwibavgqfjygx7cg08ni68gw501689l"; depends=[shiny]; };
   gamlr = derive2 { name="gamlr"; version="1.13-8"; sha256="1psvxx7ymkgr4acis85842xgafc5azdl7v1cmgvgbhsdwksm95q7"; depends=[Matrix]; };
   gamlss = derive2 { name="gamlss"; version="5.4-22"; sha256="0bgya6jb462ggqnmlpwdymxqvqbkah15i3aai1xi9496z66r1rh1"; depends=[gamlss_data gamlss_dist MASS nlme survival]; };
-  gamlss_add = derive2 { name="gamlss.add"; version="5.1-12"; sha256="1xprccwlnv0rjhgmgz7v0n95gsxzi8cig15drkcpira3nb0m83xc"; depends=[gamlss gamlss_dist mgcv nnet rpart]; };
+  gamlss_add = derive2 { name="gamlss.add"; version="5.1-13"; sha256="1dhiq3x0dascjsq3c80j6zgx4xdcjljd4ishzpp8j9m5bk55z72z"; depends=[gamlss gamlss_dist mgcv nnet rpart]; };
   gamlss_cens = derive2 { name="gamlss.cens"; version="5.0-7"; sha256="1l2g0gn794jyyjxvphfk1l8h4qwf6sk1akcf0c08xqx3kgillnjl"; depends=[gamlss gamlss_dist survival]; };
   gamlss_countKinf = derive2 { name="gamlss.countKinf"; version="3.5.1"; sha256="1xalp909gxxhyhh4chlr1ssyfhydhw1w3szzbynajji98576zaqv"; depends=[gamlss gamlss_dist]; };
   gamlss_data = derive2 { name="gamlss.data"; version="6.0-6"; sha256="08mb154mz1kk19zb414i5mg1q1yv7nylwpc5kzsb602mv4cxpq5s"; depends=[]; };
   gamlss_demo = derive2 { name="gamlss.demo"; version="4.3-3"; sha256="01p6abppwbnh2a2ks1g08z4iwq2fxf125y9s4qzssybsn76a3gf3"; depends=[gamlss_dist gamlss_tr rpanel]; };
   gamlss_dist = derive2 { name="gamlss.dist"; version="6.1-1"; sha256="0sch2bh1mchl7kfdy4wcmwzzgx7cldswn65a2br2x73rb1v3mnyj"; depends=[MASS]; };
   gamlss_foreach = derive2 { name="gamlss.foreach"; version="1.1-6"; sha256="1bld98lfbgj1v6l4vq3yysg1lnvpgj2r9vykkfy0q1yipv2xbnqb"; depends=[doParallel foreach gamlss gamlss_data gamlss_dist glmnet]; };
+  gamlss_ggplots = derive2 { name="gamlss.ggplots"; version="2.1-12"; sha256="0lm0nlc2rb4yl6fliv0017qpgyaaky7hws6arv36dgqqih9dmcii"; depends=[ellipse foreach gamlss gamlss_dist gamlss_foreach gamlss_inf ggplot2 ggridges mgcv yaImpute]; };
   gamlss_inf = derive2 { name="gamlss.inf"; version="1.0-1"; sha256="0m091zxjm5wvhm6mzbpzkr275n3qnlb3v4099k0a1jymahk4w7vr"; depends=[gamlss gamlss_dist]; };
   gamlss_lasso = derive2 { name="gamlss.lasso"; version="1.0-1"; sha256="03c8k6hl23ag98dihznfz1h0qc3pwxbnpv58pvmx3xbb3lipfjfb"; depends=[gamlss glmnet lars Matrix]; };
   gamlss_mx = derive2 { name="gamlss.mx"; version="6.0-1"; sha256="0r19705wxc9wj4ji2plws9q7xn2nm53sb3x4z9c0ycymv9fkblb6"; depends=[gamlss gamlss_dist nnet]; };
@@ -10583,11 +10759,13 @@ in with self; {
   gamlssbssn = derive2 { name="gamlssbssn"; version="0.1.0"; sha256="1l8d4qwmq9dklm9imb3cvlncwa6jygf8kg2j1599h1nfhyyhj2vv"; depends=[gamlss gamlss_dist MASS]; };
   gamm4 = derive2 { name="gamm4"; version="0.2-6"; sha256="128c725y9s07c1m9cvd9hgi9hldrymcs5divd8pw7bdjh9jvdiap"; depends=[lme4 Matrix mgcv]; };
   gammSlice = derive2 { name="gammSlice"; version="2.0-2"; sha256="1klxg1yhmfaz1zjnw1kxl1lm5plkakqh014rpkak2lj8zgf8qnyy"; depends=[KernSmooth lattice mgcv]; };
+  gamma = derive2 { name="gamma"; version="1.0.5"; sha256="1n4jd0xvn6ld5adhhanqxhl7nndj4cqf17jp18s6jmrx7jbc3k5f"; depends=[ggplot2 IsoplotR rlang rxylib]; };
   gamreg = derive2 { name="gamreg"; version="0.3"; sha256="1svrgbb8qdy2hzpq1g38v2lzmlbrn7qljix827biqzwgiajy69gg"; depends=[doParallel foreach glmnet Rcpp RcppArmadillo robustHD]; };
   gamsel = derive2 { name="gamsel"; version="1.8-2"; sha256="1w1z2g0njsfv1ah6w3zw4lcgnaxask5mgykb204jzp6hpnc1a6cb"; depends=[foreach mda]; };
   gamselBayes = derive2 { name="gamselBayes"; version="2.0-1"; sha256="1947lpxhiyf2kf22miliikx8plzhb1l97w440fb626vvgwfa340j"; depends=[Rcpp RcppArmadillo]; };
+  gamstransfer = derive2 { name="gamstransfer"; version="3.0.3"; sha256="0ashdicnkrvbsddqajhnqrwrpw8y3ikzibm4y3gn5ywg7y3dbp2k"; depends=[collections R_utils R6 Rcpp]; };
   ganDataModel = derive2 { name="ganDataModel"; version="1.1.6"; sha256="1fff76zh6bn94y57qnxbya3xrshp99pxk5ks2p9i7i4p1f8xvhvd"; depends=[Rcpp tensorflow]; };
-  ganGenerativeData = derive2 { name="ganGenerativeData"; version="1.5.7"; sha256="1b3gwzjsbwq7cbghv7pykgj2bd2j4m38jsxfbv8ly0qb5khisn6g"; depends=[Rcpp tensorflow]; };
+  ganGenerativeData = derive2 { name="ganGenerativeData"; version="2.0.1"; sha256="0bs557cv74wcizw7j1xswx8lf3rl6vc3ybdn71854mjrab0sjz85"; depends=[httr Rcpp tensorflow]; };
   gap = derive2 { name="gap"; version="1.5-3"; sha256="1kjjnh0s9aicwkd7wsisi4c75y701irigsbzp7y6f2264bcgj6bf"; depends=[dplyr gap_datasets ggplot2 plotly Rdpack]; };
   gap_datasets = derive2 { name="gap.datasets"; version="0.0.6"; sha256="1jwpsb66sgj2zzgrpgwxc22df66gbhi278ywbmaicc10mipv050y"; depends=[]; };
   gapclosing = derive2 { name="gapclosing"; version="1.0.2"; sha256="1nq7wbl3236rg27hpfrl1f20gg0yrjmddcghmnh0yv5nzl52l798"; depends=[doParallel dplyr forcats foreach ggplot2 glmnet magrittr mgcv ranger tidyr tidyselect]; };
@@ -10599,7 +10777,7 @@ in with self; {
   gargoyle = derive2 { name="gargoyle"; version="0.0.1"; sha256="0lsjplfrc047lb3zjfsc8wl47kll7d85v824k7zlr0n34xbbypq7"; depends=[attempt shiny]; };
   garma = derive2 { name="garma"; version="0.9.13"; sha256="0h61f29x2261vky4cwmcfwlix7x1yg8qkhgkhiw1aryqmzvwf0lc"; depends=[BB crayon dfoptim FKF forecast GA ggplot2 hypergeo ltsa lubridate nloptr pracma pso Rsolnp signal tswge zoo]; };
   garray = derive2 { name="garray"; version="1.1.2"; sha256="0s2dgi556x9jnhafvzz4qkxdbq9dm12gsvsqd2g9iy3468fx9flq"; depends=[]; };
-  gasanalyzer = derive2 { name="gasanalyzer"; version="0.3.4"; sha256="04h6iyxgvjz58lj090f70hjkizkabvi9zrghgw4ynlzbcckjwvg0"; depends=[jsonify stringi tibble tidyxl units vctrs xml2]; };
+  gasanalyzer = derive2 { name="gasanalyzer"; version="0.4.0"; sha256="1j46w7ikpzll40yk3vwlq1zysgsnlrf5p01hllp8a9qshxdhl5a6"; depends=[jsonify stringi tibble tidyxl units vctrs xml2]; };
   gaselect = derive2 { name="gaselect"; version="1.0.22"; sha256="0hk18dl851z9dnw9vd9836lr7j3wlg3kk31k185p2yyk7l821mqp"; depends=[Rcpp RcppArmadillo]; };
   gasfluxes = derive2 { name="gasfluxes"; version="0.6-2"; sha256="18yr3331wriddxbnxag3ms6lmx709mhrngv8sxfg0zcm271pkl1r"; depends=[data_table MASS sfsmisc]; };
   gasmodel = derive2 { name="gasmodel"; version="0.6.0"; sha256="16wxv0fkaayxvd5h436wyp9is8y47k7ivim5f9md4g4acy3ca3cb"; depends=[abind arrangements CircStats copula dplyr ggplot2 Matrix mvnfast nloptr numDeriv pracma tidyr]; };
@@ -10608,16 +10786,16 @@ in with self; {
   gaston = derive2 { name="gaston"; version="1.6"; sha256="1knjyw2dsarljj2zsqp3hi6hk6m90sfqp2l535h3arj70l3rq9x4"; depends=[Rcpp RcppEigen RcppParallel]; };
   gateR = derive2 { name="gateR"; version="0.1.15"; sha256="1a818bypdiingv6kmrfmx7ivxybs8k7261vfqlmb4gdl87n71rb2"; depends=[fields lifecycle rlang sparr SpatialPack spatstat_geom terra tibble]; };
   gatepoints = derive2 { name="gatepoints"; version="0.1.5"; sha256="0f9n32s1ssp4nmjarls4llmi91jxh4w4qwxf7awxaalqz4lrzbg2"; depends=[]; };
-  gatoRs = derive2 { name="gatoRs"; version="1.0.1"; sha256="0m3hhykyn0yhnhqsyjdvmfk04zjj7g5hp925clfda145rp6khch1"; depends=[CoordinateCleaner dplyr leaflet magrittr parsedate rgbif ridigbio spatstat_geom spThin stringr terra]; };
+  gatoRs = derive2 { name="gatoRs"; version="1.0.2"; sha256="0a1z3rjgkz5wxccb5lzmwmskvjlgab3zmznwvjgk2bslda6yzqil"; depends=[CoordinateCleaner dplyr leaflet magrittr parsedate rgbif ridigbio spatstat_geom spThin stringr terra]; };
   gauseR = derive2 { name="gauseR"; version="1.2"; sha256="1rvw7dbrsxqqch2dgslabc47llb64ljakc60m47gql5n9br7akbd"; depends=[deSolve]; };
   gaussDiff = derive2 { name="gaussDiff"; version="1.1"; sha256="0fqjdxp2ibbami75ba16d02dz4rz5sk8mni45di9anydx44g9d45"; depends=[]; };
-  gausscov = derive2 { name="gausscov"; version="1.1.2"; sha256="12v1xa21d573jinzy54crla169rnlavkwx2ijryhydmiyh2574yb"; depends=[]; };
+  gausscov = derive2 { name="gausscov"; version="1.1.3"; sha256="0dv3ifhi72kij820bny5jikps8zywyinddbc78q4bdbska820rvn"; depends=[]; };
   gaussfacts = derive2 { name="gaussfacts"; version="0.0.2"; sha256="095x7k7m7sy1gqkbm6wiqn26252dclz62sbnkv6cjvmbdxajl7m9"; depends=[]; };
   gaussplotR = derive2 { name="gaussplotR"; version="0.2.5"; sha256="0amkgzgh6764ri30210nhbi3wcll3248fmkpclx010dxc3hllfdx"; depends=[ggplot2 metR rgl viridisLite]; };
   gaussquad = derive2 { name="gaussquad"; version="1.0-3"; sha256="04689l076agncsxqcbkx76z89cvjigs8p8v58p5kad655gjpqcx3"; depends=[orthopolynom polynom]; };
   gawdis = derive2 { name="gawdis"; version="0.1.5"; sha256="13f7fx5j9r5wky2zriyqlr7vjda1y9c7n3iz0ajw6fxfr1c670dx"; depends=[FD GA]; };
   gb = derive2 { name="gb"; version="2.3.3"; sha256="0gkdkbwr168vi7lgccla49l43rkmjcfrwlqdr65mg5syzcxrh7nh"; depends=[boot KernSmooth]; };
-  gbRd = derive2 { name="gbRd"; version="0.4-11"; sha256="06x97rw5i6v6cgjxkfhxnw4dn7lghn5q6ra7ri5ag1x9dkfzcl82"; depends=[]; };
+  gbRd = derive2 { name="gbRd"; version="0.4.12"; sha256="0f13hg6nckl4aflwd49g4x2adxjfgah2yga70z1m8jszhhm1vka8"; depends=[]; };
   gbeta = derive2 { name="gbeta"; version="0.1.0"; sha256="0611rynyybmiq6pj5jvwijdgx3hnr6mscv20lrqzlfplbmvmz0bj"; depends=[gsl Rcpp RcppEigen RcppNumerical Runuran]; };
   gbfs = derive2 { name="gbfs"; version="1.3.9"; sha256="0748gicg4mf3csgf75rcpkcsf0c8md4clyavh3kxs77jhq8h6j48"; depends=[curl dplyr httr jsonlite lubridate purrr readr stringr]; };
   gbifdb = derive2 { name="gbifdb"; version="1.0.0"; sha256="0lcwi7bx2giwcgr0dw6y1isj9bszs9d5yv4lby6gn0z4cmv6qzcb"; depends=[arrow dplyr duckdbfs]; };
@@ -10642,13 +10820,12 @@ in with self; {
   gcookbook = derive2 { name="gcookbook"; version="2.0"; sha256="11g1q187l4j31b6cdzdx5z3s14z3s09l7ynl36pzzn9j19l8cmrc"; depends=[]; };
   gcplyr = derive2 { name="gcplyr"; version="1.9.0"; sha256="0j584jh0kqwazgfk12gfbvivqhfgi3gb9hbw55fgv36an4x7q22h"; depends=[dplyr rlang tidyr]; };
   gcxgclab = derive2 { name="gcxgclab"; version="1.0.1"; sha256="0w6l9d23wbcvj5qzxc1yz20ic58hjkswk7scyjldiv6cbzm89wr1"; depends=[dplyr ggplot2 ncdf4 nilde nls_multstart ptw Rdpack zoo]; };
-  gdalBindings = derive2 { name="gdalBindings"; version="0.1.17"; sha256="1z4n9113by1igd9kpmvjll7rp3hf2ijgrrvc1p8l43595546fcp2"; depends=[data_table R6 Rcpp]; };
   gdalUtilities = derive2 { name="gdalUtilities"; version="1.2.5"; sha256="19vi6mr5jwlb00r33hkz7d0n9dar95hwdvbqbhh2dmha128fjwia"; depends=[sf]; };
   gdalcubes = derive2 { name="gdalcubes"; version="0.7.0"; sha256="1bpskiv7pc09pwmh3ghf5l6wswbwlbmwx6sjqlqx7vs8d7gk6972"; depends=[BH jsonlite ncdf4 Rcpp]; };
-  gdalraster = derive2 { name="gdalraster"; version="1.9.0"; sha256="1bii8gr1b5fjfi2bwspxvn0d6bl7k3l3x2426l16p9pw8r7sk3wn"; depends=[Rcpp xml2]; };
+  gdalraster = derive2 { name="gdalraster"; version="1.11.1"; sha256="0vf28id5yq4f491b25fbmap1yzpzxxkkqmzfln1qc4hxfhbirv1p"; depends=[bit64 Rcpp RcppInt64 xml2]; };
   gdata = derive2 { name="gdata"; version="3.0.0"; sha256="0zxi0634dkgczw7gicj8r6mhb83cpkxhsy2iivz0b9v52y9bjmm4"; depends=[gtools]; };
   gde = derive2 { name="gde"; version="0.2.1"; sha256="05paf15dn2l7mfzhy3p3k7a2831fj9fwvwgljhcv7wpdj7djdccs"; depends=[data_table dplyr DT ggplot2 httr jsonlite leaflet progress R_utils readr RSQLite shiny shinycssloaders shinyWidgets stringr XML]; };
-  gdi = derive2 { name="gdi"; version="1.5.4"; sha256="1lsflav0wday5f6fclwwvnzj0b59hh4raw216karqshcs80c8ldf"; depends=[jpeg png]; };
+  gdi = derive2 { name="gdi"; version="1.6.0"; sha256="0arqx98k9dkxr8fhp0x2zxmx97kk666ffhbaqh9mrzrmwkapa3vb"; depends=[jpeg png]; };
   gdiff = derive2 { name="gdiff"; version="0.2-5"; sha256="1j3xmvpqs5vb9iq460dishi8bsb0kwfz6742bpvnhpk8z3mhf9af"; depends=[magick pdftools]; };
   gdim = derive2 { name="gdim"; version="0.1.0"; sha256="02q5ynd22yisl3as9hyrg18p9j74lw6p1z3szm1k2ax0r3k04r27"; depends=[dplyr ggplot2 irlba magrittr Matrix progress rlang tibble]; };
   gdistance = derive2 { name="gdistance"; version="1.6.4"; sha256="0awrv10adi31inrgxbb83p73fq05i2xifj2xf16z6mp2lwzgvxba"; depends=[igraph Matrix raster sp terra]; };
@@ -10661,13 +10838,13 @@ in with self; {
   gear = derive2 { name="gear"; version="0.3.4"; sha256="0ibn2kr0rjj546cbcqhr6x69s25xh7si5fri59055j42g62mdnxy"; depends=[autoimage optimx Rcpp]; };
   geboes_score = derive2 { name="geboes.score"; version="1.0.0"; sha256="1i7ivcbrk1kyvh98xjs2v4zph85qrfsila50wx4vjxclaqp7afzl"; depends=[checkmate]; };
   gecko = derive2 { name="gecko"; version="1.0.0"; sha256="1q0wzg3mkb6z7zs81zynj6x159w99h5an20a6m8wdqbday5sccyc"; depends=[biomod2 geosphere kernlab red sp terra]; };
-  gee = derive2 { name="gee"; version="4.13-26"; sha256="1323qv2hiinixmwcb8rfvf5qmkffnnq9f1g8kj9amwsimfsm71cs"; depends=[]; };
+  gee = derive2 { name="gee"; version="4.13-27"; sha256="1754173msjxhkpl95v6z8c73vhz7ivfil0xfs25smrlgslzpgd1z"; depends=[]; };
   geeCRT = derive2 { name="geeCRT"; version="1.1.3"; sha256="08gcifq3gv8b6j7mdgf2y2s9gdcza96681wkzmq7skcj9430m7dm"; depends=[MASS mvtnorm rootSolve]; };
   geeM = derive2 { name="geeM"; version="0.10.1"; sha256="1r9zyjv7r7r7avdqi54dvczf971frz8pgrs1a04kan5mh4ls6xpy"; depends=[Matrix]; };
   geeVerse = derive2 { name="geeVerse"; version="0.1.0"; sha256="14yy7qfjql2p6hhm2h5v2j29528085chp84s7q5i9x5x84zpmqvi"; depends=[doParallel foreach mvtnorm quantreg Rcpp RcppEigen]; };
-  geeasy = derive2 { name="geeasy"; version="0.1.1"; sha256="1b874hacl0hhd16yfaag3kpqrc0336mmkzja0pa3gf7zj8d6n777"; depends=[geeM geepack ggplot2 lme4 Matrix MESS]; };
+  geeasy = derive2 { name="geeasy"; version="0.1.2"; sha256="0hfxryqn5dxpyl0s16ibbg1n8w19wl5ldxa8g437akb760pmsmvl"; depends=[geeM geepack ggplot2 lme4 Matrix MESS]; };
   geecure = derive2 { name="geecure"; version="1.0-6"; sha256="0nmnrkfgblv38qvk66bdk8933icr59mayqwljkvmpy59sm6br2k5"; depends=[geepack MASS Matrix survival]; };
-  geepack = derive2 { name="geepack"; version="1.3.10"; sha256="0hjz45ixpxv9x503mrr3jai9a0gi7sv28lh7i1j5xzcp6qxr4f2a"; depends=[broom magrittr MASS]; };
+  geepack = derive2 { name="geepack"; version="1.3.11"; sha256="0y74allpn9bcc5hlqlr97qb9siig52qvaf1lyd4ffpg72k9z1qi9"; depends=[broom magrittr MASS]; };
   geesmv = derive2 { name="geesmv"; version="1.3"; sha256="0gm953z8q5cc1adl3d6vj5djg2inc880zfcdl5gd56fnb5gl6h1w"; depends=[gee MASS matrixcalc nlme]; };
   geessbin = derive2 { name="geessbin"; version="0.1.2"; sha256="06phzv4mwa4lk93xq5824s6zxz81xi0cmwh10d53h9iakynisnw1"; depends=[MASS]; };
   geex = derive2 { name="geex"; version="1.1.1"; sha256="0hs17vmwgpvv85za32rmnlylp0fbbirb1irxxqkgx3dsffgvpbm1"; depends=[lme4 Matrix numDeriv rootSolve]; };
@@ -10675,7 +10852,6 @@ in with self; {
   geiger = derive2 { name="geiger"; version="2.0.11"; sha256="0s9zvqgn30spwggwpr02gzdjg3h4kgqamq37i03i14a3i2ls1ifw"; depends=[ape coda colorspace deSolve digest MASS mvtnorm ncbit phytools Rcpp subplex]; };
   gellipsoid = derive2 { name="gellipsoid"; version="0.7.3"; sha256="16dh4gs44vnc9v1hj9xjmsq88ygk9vyfp0asqgql1ar61wgmlsav"; depends=[rgl]; };
   gelnet = derive2 { name="gelnet"; version="1.2.1"; sha256="10ygdfz9f5xhahlqb2divwvaljhiz8jhsd12wvq0qalx0v1h5j0p"; depends=[]; };
-  gemlog = derive2 { name="gemlog"; version="0.41"; sha256="16pdhpx21avxjrawj7i47dxzz2wfhabzz5x3nln2pwaz5b147syz"; depends=[signal]; };
   gemma2 = derive2 { name="gemma2"; version="0.1.3"; sha256="1l5axji33abrkm2b32ziilhfqssbq4ypv7kimd16fak6xjz50m0k"; depends=[Matrix]; };
   gems = derive2 { name="gems"; version="1.1.1"; sha256="174mjnpldb0rwjvwdgpcg1acm526gs0pjf9gi5mn9d3x9yz4r5jx"; depends=[data_table MASS msm plyr]; };
   gemtc = derive2 { name="gemtc"; version="1.0-2"; sha256="01sas647d3s5adkqg96z0hhr9pig275fz896ghnp313p5k3fz90l"; depends=[coda forcats igraph meta plyr Rglpk rjags truncnorm]; };
@@ -10684,6 +10860,7 @@ in with self; {
   gen5helper = derive2 { name="gen5helper"; version="1.0.1"; sha256="0z7hisn57md18vcfb6f44hy6zzp9dirrjyxi4x1id3mqa3mligb6"; depends=[dplyr ggplot2 minpack_lm naturalsort plyr pracma rlang tidyr]; };
   genBaRcode = derive2 { name="genBaRcode"; version="1.2.7"; sha256="1rgx0b3bpqfc75y5x4i714m8xbrgckvg4m9gkqxq0464386s53dd"; depends=[ape Biostrings dplyr futile_logger future future_apply ggnetwork ggplot2 ggraph ggtree igraph network phangorn RColorBrewer reshape2 S4Vectors shiny ShortRead stringdist VennDiagram visNetwork]; };
   genCountR = derive2 { name="genCountR"; version="1.0.0"; sha256="0s5hbvg71vsg02c3z8g2vim431jrc2jfksh28si2ycqi6bz2aj0y"; depends=[]; };
+  genMCMCDiag = derive2 { name="genMCMCDiag"; version="0.2.1"; sha256="03vxmsf3vh125a87pchdpnkp5n3sqg44nkrlf8l91jicxa6p6rrx"; depends=[coda ggplot2 knitr lifecycle mcmcse]; };
   genSEIR = derive2 { name="genSEIR"; version="0.1.1"; sha256="02lprxxpf7ll23habq05b6slgbh978k09sqr6myr2jhlax2snxvk"; depends=[ggplot2 minpack_lm nlsr pracma]; };
   genSurv = derive2 { name="genSurv"; version="1.0.4"; sha256="07f6prqpc1mafzb8dyp8xgycrrd548rj9cpn3qz64lh1qjymns3m"; depends=[]; };
   genTS = derive2 { name="genTS"; version="0.1.4"; sha256="172xpx8g6048z5hgy9h6j3k6j975hw1q7pmcn5k2s5iaj9x5kjzv"; depends=[shiny]; };
@@ -10699,7 +10876,7 @@ in with self; {
   geneHapR = derive2 { name="geneHapR"; version="1.2.4"; sha256="1yairrndrggvkiwwamqv3qwjs8sci4jc6k53rqs766n752vsbisz"; depends=[ape Biostrings genetics GenomicRanges ggplot2 ggpubr IRanges lolliplot maps pegas reshape2 rlang rtracklayer sf shiny shinyjs stringdist stringr tibble tidyr vcfR]; };
   geneHummus = derive2 { name="geneHummus"; version="1.0.11"; sha256="1m6yyjsvmn3w87cw4da8js5vi74k5y739gxdx1yscx1n50bc3m34"; depends=[curl dplyr httr rentrez stringr]; };
   geneSLOPE = derive2 { name="geneSLOPE"; version="0.38.2"; sha256="08fbrssj03ak6xqm9fmb9v6ir7229qds891088wznvg58k81yslv"; depends=[bigmemory ggplot2 SLOPE]; };
-  genekitr = derive2 { name="genekitr"; version="1.2.5"; sha256="0czmmi9xnmdqd5g9ivys1srmww0x93v2dc1f245kfk26s9xi7177"; depends=[clusterProfiler dplyr europepmc fst geneset ggplot2 ggraph ggvenn igraph magrittr openxlsx rlang stringi stringr tidyr]; };
+  genekitr = derive2 { name="genekitr"; version="1.2.7"; sha256="0qymmprifw429542ns0dns801m3kvsskgddz2zvb8ny36sdrvrqm"; depends=[clusterProfiler dplyr europepmc fst geneset ggplot2 ggraph ggvenn igraph magrittr openxlsx rlang stringi stringr tidyr]; };
   genemodel = derive2 { name="genemodel"; version="1.1.0"; sha256="1x6n6k9ifv2swhyrghvm6fsz5vh85cdik8225175i9msvmkh928n"; depends=[stringr]; };
   genepi = derive2 { name="genepi"; version="1.0.3"; sha256="0ff5cv8sxda55xjj1pdnaljsg840vmvaz51mgajczv9c0wgj70yj"; depends=[]; };
   genepop = derive2 { name="genepop"; version="1.2.2"; sha256="13h3azszr42bzm5af8rkxw1lnd1x5c9lpawfcg3m5xgwvwzlzl3l"; depends=[Rcpp RcppProgress stringr]; };
@@ -10710,11 +10887,11 @@ in with self; {
   genero = derive2 { name="genero"; version="0.1.0"; sha256="0akwwy5xbh7s40v8dr1zr7jfglv0iyh4zn0sb0rnz4r57qr6nh8w"; depends=[]; };
   geneset = derive2 { name="geneset"; version="0.2.7"; sha256="1fiyrlsy5zqmxdj71w5m0h70ln5b84y7mlhv2j8lad623gpng3l6"; depends=[dplyr fst RCurl stringi stringr]; };
   genesysr = derive2 { name="genesysr"; version="2.1.1"; sha256="0gf63gmhxvyxms2xhbgwmg8c5xpc4bswbpvfv4nyx25zr97ba7vi"; depends=[dplyr httr2 jsonlite magrittr readr tidyselect]; };
-  genetic_algo_optimizeR = derive2 { name="genetic.algo.optimizeR"; version="0.2.6"; sha256="08jc17nwvycfgkzqisgyj741ykwsm0q8kh3f464zzwp5s6612ajy"; depends=[biocViews dplyr ggplot2 magrittr rsconnect stringr tinytex]; };
   geneticae = derive2 { name="geneticae"; version="0.4.0"; sha256="0ka0m4dq8a9bzdk3gi7gj6dnc2a7c4chrzixw2g4qd7md31z33vx"; depends=[calibrate dplyr GGEBiplots ggforce ggplot2 MASS matrixStats missMDA pcaMethods prettydoc reshape2 rlang rrcov scales tidyr]; };
   genetics = derive2 { name="genetics"; version="1.3.8.1.3"; sha256="0lljxvz7nc6y2z303icphar2niir0i407w5cyhy2pwspd9gwkwpy"; depends=[combinat gdata gtools MASS mvtnorm]; };
+  genfrn = derive2 { name="genfrn"; version="0.1.4"; sha256="1y2ggdsbv7dbmi7y32nnhg76s6raj29j7riqlwbq49zg414p926a"; depends=[]; };
   genie = derive2 { name="genie"; version="1.0.5"; sha256="07w6rf4a3d34j7dwz9zcxshg2sk1cd5v59xs3jxph17c9gga0nlq"; depends=[genieclust Rcpp]; };
-  genieBPC = derive2 { name="genieBPC"; version="1.1.0"; sha256="0wc9avjwy4i6zikhqi3mcyws8a6kbgk6qzrrmrm2hlxf5gzlfr47"; depends=[cli dplyr dtplyr httr jsonlite purrr rlang stringr sunburstR tibble tidyr]; };
+  genieBPC = derive2 { name="genieBPC"; version="1.1.1"; sha256="1s8qi5i10a3qkpgls2589m6aiyda2k7gbfjmbpkbjw73girkh5ln"; depends=[cli dplyr dtplyr httr jsonlite purrr rlang stringr sunburstR tibble tidyr]; };
   genieclust = derive2 { name="genieclust"; version="1.1.5-2"; sha256="0n8r3wvync041ppf72gd3yx1yj9b4fdbcb4gw3lhvsxx1gxwym0k"; depends=[Rcpp]; };
   genio = derive2 { name="genio"; version="1.1.2"; sha256="0izx8yv8mvnfxdqnqpnp2ldw1hzs6ggxi7jgmjlgxkgmm4vngbgl"; depends=[dplyr Rcpp readr tibble]; };
   geniusr = derive2 { name="geniusr"; version="1.2.1"; sha256="14flyjrnw3l4j02dnr8495r5xdsr83firz0irpqbxw0jrajbj5dq"; depends=[curl dplyr httr purrr rvest stringr tibble xml2]; };
@@ -10742,23 +10919,22 @@ in with self; {
   geoR = derive2 { name="geoR"; version="1.9-4"; sha256="1ggbswsw01r3cfx88khprx6rhrq40rnqsbsljcjkpyg0xdy9g7df"; depends=[MASS sp splancs]; };
   geoSAE = derive2 { name="geoSAE"; version="0.1.0"; sha256="16fkai95cqwxkylpk1gddyzja80036ghfb4ps3rz1vbbqzhg01x8"; depends=[MASS nlme]; };
   geoTS = derive2 { name="geoTS"; version="0.1.8"; sha256="0hjhc68pl1gq9wcgvvagn903vlhwsayf7kka88rdcb6y7rgdlp5v"; depends=[doParallel ff foreach raster robustbase sp]; };
-  geobr = derive2 { name="geobr"; version="1.8.2"; sha256="160mvxx4pcxiyzrwz24lqfvybb63rykwkhr4s7hsk4jvfskgdglj"; depends=[curl data_table httr sf]; };
+  geoarrow = derive2 { name="geoarrow"; version="0.2.1"; sha256="0sdwlx4v9024m7lz93r9sfcg8zyzs3pvc7hm419y18vapqlvpm24"; depends=[nanoarrow wk]; };
+  geobr = derive2 { name="geobr"; version="1.9.0"; sha256="1q7gichqlyahzmn4wmg2v1gbg0p3p40n19amz5m0vqxx2vbpq6dl"; depends=[curl data_table dplyr httr sf]; };
   geocacheR = derive2 { name="geocacheR"; version="0.1.0"; sha256="04ckxmird6n179xvsx50cjdz046igjxxqdnz5pfxi8pdklnky20c"; depends=[dplyr magrittr stringr threewords tibble]; };
-  geocausal = derive2 { name="geocausal"; version="0.2.0"; sha256="00i4prrgi02xv0h4r5xfmnl6h9b6arqnvd3vhzrgcmdqv4nl76xk"; depends=[data_table dplyr furrr ggplot2 ggpubr latex2exp mclust progressr purrr raster sf sp spatstat_explore spatstat_geom spatstat_model terra tidyr tidyselect]; };
+  geocausal = derive2 { name="geocausal"; version="0.3.0"; sha256="0kbjyk9al54y2k9w96rpchv2gwk5f96g6a536fp4sfbhqlmpc0f3"; depends=[data_table dplyr furrr ggplot2 ggpubr latex2exp mclust progressr purrr sf spatstat_explore spatstat_geom spatstat_model terra tidyr tidyselect tidyterra]; };
   geocmeans = derive2 { name="geocmeans"; version="0.3.4"; sha256="02h171flg295ixpgl2glav2ij0wbvy7kclazdlldw40461aar5nk"; depends=[dplyr fclust fmsb future_apply ggplot2 leaflet matrixStats plotly progressr Rcpp RcppArmadillo Rdpack reldist reshape2 sf shiny spdep terra tmap]; };
   geodaData = derive2 { name="geodaData"; version="0.1.0"; sha256="003m5wff0q4fdlg64qispmhj2aw83isxg3ijxwkwhvi33bpwpq4z"; depends=[]; };
-  geodata = derive2 { name="geodata"; version="0.5-9"; sha256="052gwxl3b0xb93s2b8755cmyxsyk0gy8c25v0hj81cwypnfykbhs"; depends=[terra]; };
+  geodata = derive2 { name="geodata"; version="0.6-2"; sha256="0yiir9dslk6l60zf40kbvycd2x755whpp07is5bah1wa1wwgxwn5"; depends=[terra]; };
   geodimension = derive2 { name="geodimension"; version="2.0.0"; sha256="1bx948hwy1c2src03vwvb29plzihqvsq92mbgg396xda560kxpfd"; depends=[dplyr sf snakecase tibble tidyselect]; };
-  geodist = derive2 { name="geodist"; version="0.0.8"; sha256="09758v53r057rjsn844g2dc455ccndw1qlndl1xsm2gcp6ch2hr3"; depends=[]; };
+  geodist = derive2 { name="geodist"; version="0.1.0"; sha256="16nldq2fph4nxy0rcy33z6vw9xar3ckvdpagbaqsa2w0023bzq7x"; depends=[]; };
   geodiv = derive2 { name="geodiv"; version="1.1.0"; sha256="0580q71m71xd0kn9z8l536ypl31gx4fyw6cn1nc03sazrdilkz8r"; depends=[dplyr e1071 pracma Rcpp RcppArmadillo rlang sf spatial terra zoo]; };
   geodrawr = derive2 { name="geodrawr"; version="2.0.0"; sha256="05irfyfpk5lgsh0wax8dqdyfw4prynxz1bhs9k1nrz8yn2dd0imn"; depends=[leaflet sf shiny shinydashboard]; };
   geoelectrics = derive2 { name="geoelectrics"; version="0.2.2"; sha256="1zxikh4jj750grpnaazqm51q7yp5df5a77kljvmim4nazzrsyrpg"; depends=[fields lattice rgl]; };
   geofacet = derive2 { name="geofacet"; version="0.2.1"; sha256="1bj201afh7df3smgmllglmgs7bkkc1k1arvjr7kwn1cnn67b3mzj"; depends=[geogrid ggplot2 ggrepel gridExtra gtable imguR rlang rnaturalearth sp]; };
-  geofd = derive2 { name="geofd"; version="2.0"; sha256="1rsgy4nxfp1gi4vwh8zfzksr6sr2ga31kmd56q5m56gw530570ra"; depends=[fda]; };
   geofi = derive2 { name="geofi"; version="1.0.15"; sha256="1v4gnbm5lfnd9rjiwjakbh73rifa084nhwdvjizmcfmznk0x0hxb"; depends=[curl dplyr httpcache httr purrr rlang sf xml2 yaml]; };
   geogenr = derive2 { name="geogenr"; version="2.0.1"; sha256="17jg4mvwfaayda4igx4qigk83xbvn5s05y82393abwjiakp14lvi"; depends=[dplyr geomultistar httr readr rolap sf stringr tibble tidyr tidyselect]; };
   geogrid = derive2 { name="geogrid"; version="0.1.2"; sha256="0jqqv5agnw071ysrmwz5r2z76f80rzm5bfl5g23gq1mbw85x8z8m"; depends=[Rcpp RcppArmadillo sf sp]; };
-  geohabnet = derive2 { name="geohabnet"; version="2.0.0"; sha256="1fzdif3m80pfj53wax7j7i5342261jkz7zh4ivyiz10m1l2x6kid"; depends=[beepr config easycsv future future_apply geodata geosphere igraph magrittr memoise rlang rnaturalearth stringr terra viridisLite yaml]; };
   geohashTools = derive2 { name="geohashTools"; version="0.3.3"; sha256="04hvlxq5fm4mcrlbx09j079522qhlyg4jg6dymwkmqxrwdibcnqq"; depends=[]; };
   geojson = derive2 { name="geojson"; version="0.3.5"; sha256="0aj00zy603w03y36r2x8gvnya9c2xl73pnvi3wy5xky9kmbwh9g4"; depends=[jqr jsonlite lazyeval magrittr protolite sp]; };
   geojsonR = derive2 { name="geojsonR"; version="1.1.1"; sha256="0l4zwyf3f827jpwbsv097d0h8i7pjwpkvdr89hc6vv9pzavfymhp"; depends=[R6 Rcpp RcppArmadillo]; };
@@ -10768,17 +10944,18 @@ in with self; {
   geomapdata = derive2 { name="geomapdata"; version="2.0-2"; sha256="1fp0qwsk4h7inp6jhz1b0zsdhv6frlxbbk8crv4xjzxzc72zhzdx"; depends=[]; };
   geomaroc = derive2 { name="geomaroc"; version="0.1.1"; sha256="09j48ms1j7sqakznd2bj6sks1b6ckhch7ydhbdky4jk2acvl7lqw"; depends=[jsonlite sf]; };
   geomerge = derive2 { name="geomerge"; version="0.3.4"; sha256="1isap50gbkcrbpg0wmzvxxa45vaa9szsxf9k9z3j2jjmv2gbg5mk"; depends=[geosphere ggplot2 gridExtra lubridate raster scales sf sp spdep terra]; };
-  geometa = derive2 { name="geometa"; version="0.7-1"; sha256="18gr82k665y00h8mrq97mrr9l7p4m9m8b49dbgsh22hbz7j7c542"; depends=[crayon httr jsonlite keyring R6 readr XML]; };
+  geometa = derive2 { name="geometa"; version="0.8-0"; sha256="14f1g5ijm2hv0cncrddfr8fca9517g0dyrkfgc0k1v301nhlvcn4"; depends=[crayon httr jsonlite keyring R6 readr XML]; };
   geometries = derive2 { name="geometries"; version="0.2.4"; sha256="040ljxmzbjdr76p81ygnn5y0gzckz5k2arxkih5m5f3b6g62laf6"; depends=[Rcpp]; };
   geometry = derive2 { name="geometry"; version="0.4.7"; sha256="0fq1sbjlc02idfsnvily7hgi6zgjvrjh7c57wz166k8vyl2l484n"; depends=[linprog lpSolve magic Rcpp RcppProgress]; };
   geomod = derive2 { name="geomod"; version="0.1.0"; sha256="06a211cyhcicy5arpjxiglami56plkm6ybxbzbmjd0z6yn9yyd38"; depends=[arm caret Cubist e1071 kernlab nnet qrnn quantregForest randomForest ranger raster rasterVis rpart sp]; };
   geomorph = derive2 { name="geomorph"; version="4.0.7"; sha256="16rqf1g5g3gvzjvjjahs06h00gl3n1vbmk8xzyh0c3rjmgdiz2x3"; depends=[ape ggplot2 jpeg Matrix rgl RRPP]; };
-  geomtextpath = derive2 { name="geomtextpath"; version="0.1.3"; sha256="00rgqyz8y1qqnxp50szp9glkyjadas4gd2r3q5ha3fcxn1f4zv7p"; depends=[ggplot2 rlang scales systemfonts textshaping]; };
+  geomtextpath = derive2 { name="geomtextpath"; version="0.1.4"; sha256="1a33rcks9hvg3jyiplzsm1na6n80n934zvbcm57n3jg6gxcv2v5s"; depends=[ggplot2 rlang scales systemfonts textshaping]; };
   geomultistar = derive2 { name="geomultistar"; version="1.2.1"; sha256="00fkrbsi4gw7jkvfwwxnxxq9fbbkl6i2n5wmpzglwiy21y74y6pn"; depends=[dplyr generics purrr rlang RSQLite sf tibble tidyr tidyselect]; };
   geonames = derive2 { name="geonames"; version="0.999"; sha256="0yz1b7y3vwa4izrhpry4n3iwzb7y67s5p3kgnd7d29cl5pcbpmqx"; depends=[rjson]; };
   geonapi = derive2 { name="geonapi"; version="0.7-2"; sha256="0n6s9gvg9z8hn3sih0gj35x8zxspqa8h8bml50bhsl5y4gcfihgd"; depends=[geometa httr keyring openssl plyr R6 XML]; };
   geonetwork = derive2 { name="geonetwork"; version="0.5.0"; sha256="0yg6pp2ya62qws6jdjxmhqjh5gdn4cfm6zbljazc35xf7d97jjnx"; depends=[geosphere igraph sf]; };
-  geoperu = derive2 { name="geoperu"; version="0.0.0.1"; sha256="1vmbm9zlkgb8qcw9d1vdfkvfajxh3nyhk5dkkilsklzfz08wqw8f"; depends=[curl data_table httr sf]; };
+  geonode4R = derive2 { name="geonode4R"; version="0.1-1"; sha256="1pyyknkg9dv58vq8w4pmxd36j8l352zb2jv99skvyg0vn07m6bax"; depends=[httr keyring openssl R6 readr]; };
+  geoperu = derive2 { name="geoperu"; version="0.0.0.2"; sha256="1hzdbghskdp0gnngycjn1z6zxdzas71mg7pw2bh6xw7ll52agkp5"; depends=[curl data_table httr sf]; };
   georefdatar = derive2 { name="georefdatar"; version="0.6.5"; sha256="1cqdl4zskgxjb1s29ka6q6wk7kpvrapjl40q5pfjwxh16b3bfdbh"; depends=[Rdpack]; };
   georob = derive2 { name="georob"; version="0.3-19"; sha256="0mxd29viapqzwmqy097r2ykkqjch5v3qn5p3ixz5kp2q9xlqfq2p"; depends=[abind constrainedKriging fields lmtest nleqslv nlme quantreg robustbase snowfall sp]; };
   geos = derive2 { name="geos"; version="0.2.4"; sha256="03cxm9rby7qmk9apqk3sh373rnzqcrj23cn6q153gq93lx372b8n"; depends=[libgeos wk]; };
@@ -10790,7 +10967,7 @@ in with self; {
   geosphere = derive2 { name="geosphere"; version="1.5-18"; sha256="1h6sqvxwxv22js6hz4s8sjk50ygw0y34icbbbdb2v36ca3q6zzwr"; depends=[Rcpp sp]; };
   geospt = derive2 { name="geospt"; version="1.0-4"; sha256="1fmvrsmh4nfc4g8z9ca5k4c4pm7wy218crhigp58n6i6avvf9scz"; depends=[fields genalg gsl gstat limSolve MASS minqa plyr sgeostat sp TeachingDemos]; };
   geosptdb = derive2 { name="geosptdb"; version="1.0-1"; sha256="1n1jvigavcxlbc5wki74lnhax3060i44m1cvkcr664wsjqhx3kl2"; depends=[FD fields geospt gsl limSolve minqa sp StatMatch]; };
-  geostan = derive2 { name="geostan"; version="0.5.4"; sha256="1m1xxx12ry244nkx0sn7cvlxxi2p7ms9n4irb2qqrgliq24db9v6"; depends=[BH ggplot2 gridExtra MASS Matrix Rcpp RcppEigen RcppParallel rstan rstantools sf signs spdep StanHeaders truncnorm]; };
+  geostan = derive2 { name="geostan"; version="0.6.2"; sha256="078lk4c9igkm3il0yfcv2i64rj1fr3b5qz3d3szly2jh2ba5zdgh"; depends=[BH ggplot2 gridExtra MASS Matrix Rcpp RcppEigen RcppParallel rstan rstantools sf signs spdep StanHeaders truncnorm]; };
   geostats = derive2 { name="geostats"; version="1.6"; sha256="0fmp6883a3xqay3wcc3bz7czhyik1mki3zn5z195iag11yvc5wr6"; depends=[]; };
   geostatsp = derive2 { name="geostatsp"; version="2.0.6"; sha256="10xmdgmmd4f67778g02hyqzkk9zj9c0cdfs9cw8py1b413vfclyv"; depends=[abind Matrix numDeriv terra]; };
   geotools = derive2 { name="geotools"; version="0.1"; sha256="0d0vf9dvrrv68ivssp58qzaj8vra26ms33my097jmzmgagwy1spd"; depends=[]; };
@@ -10832,7 +11009,7 @@ in with self; {
   gfilogisreg = derive2 { name="gfilogisreg"; version="1.0.3"; sha256="1x9j2ac7lk2gkcwxkvyc3bj23z5bibhx64lj4nwsgdjq14677502"; depends=[BH EigenR lazyeval rcdd Rcpp RcppArmadillo roptim spatstat spatstat_geom]; };
   gfoRmula = derive2 { name="gfoRmula"; version="1.0.4"; sha256="0g9d3z031f4ya3xkm82c4qy0548p38x8c6j0m3vdfx414y4k8mih"; depends=[data_table ggplot2 ggpubr nnet progress stringr survival truncnorm truncreg]; };
   gfonts = derive2 { name="gfonts"; version="0.2.0"; sha256="19ja087k767bq71v2w4jcpynd62ysrqmjf6rpfnmmd40aanyxqkj"; depends=[crayon crul glue htmltools jsonlite shiny]; };
-  gfpop = derive2 { name="gfpop"; version="1.1.1"; sha256="0jm7ri25qhkc80s4vfz2p9516m7wl0x8fcci6mggm4mc4ksx78f4"; depends=[Rcpp]; };
+  gfunctions = derive2 { name="gfunctions"; version="1.0"; sha256="1rjrw4g0daw219spcz0pmy78m68gidk7vdbxd31wqgn1p7xwa4jb"; depends=[sandwich zoo]; };
   gg_gap = derive2 { name="gg.gap"; version="1.3"; sha256="0m66050ryn31xmsmmikjsssllasvjdmp9yjbwfdwfpwdv106zn9h"; depends=[cowplot ggplot2]; };
   ggBubbles = derive2 { name="ggBubbles"; version="0.1.4"; sha256="116rl8j0s9xwhh9jl5yj9fspkhv2zrirbx9247hhns9ngrdn4i3x"; depends=[dplyr ggplot2]; };
   ggChernoff = derive2 { name="ggChernoff"; version="0.3.0"; sha256="0dkr3vl4a3css19j53x1c1gxxgjg57d444ahxrrrxsyva49lnq1y"; depends=[ggplot2 scales]; };
@@ -10849,7 +11026,7 @@ in with self; {
   ggRandomForests = derive2 { name="ggRandomForests"; version="2.2.1"; sha256="05w1rs0mg2nj5j1rd32s1mcj294p4zm24p2d87535rmslqmya9c7"; depends=[ggplot2 randomForest randomForestSRC survival tidyr]; };
   ggResidpanel = derive2 { name="ggResidpanel"; version="0.3.0"; sha256="1vsjw229pd36100ix1sgfmk5lb9b0fx3l6pxg1irsfhm2ypbg1ig"; depends=[cowplot ggplot2 MASS plotly qqplotr stringr]; };
   ggRtsy = derive2 { name="ggRtsy"; version="0.1.0"; sha256="04q9674z0wgpd5igjhggih348jd6lv6nbwz4na597pn5d3pirhvl"; depends=[dplyr ggplot2 magrittr purrr stringr tibble]; };
-  ggScatRidges = derive2 { name="ggScatRidges"; version="0.1.0"; sha256="02p9pkfw3jscmc5c836qq73z9jpyxv4fp1ci5ma6mcwyzzzfnjpc"; depends=[cowplot ggplot2 ggpubr ggridges hrbrthemes viridis]; };
+  ggScatRidges = derive2 { name="ggScatRidges"; version="0.1.1"; sha256="1blwzynrzywdgqllcgjjb0j0xc8fwplybnx3mfmiysppcvrk47p9"; depends=[cowplot ggplot2 ggpubr ggrepel ggridges hrbrthemes viridis]; };
   ggThemeAssist = derive2 { name="ggThemeAssist"; version="0.1.5"; sha256="1biw91a8p13h62v4w3yim6ghr98khmyhb3qd0h04asf91vvmpxbv"; depends=[formatR ggplot2 miniUI rstudioapi shiny]; };
   ggTimeSeries = derive2 { name="ggTimeSeries"; version="1.0.2"; sha256="0sd39svwi3ai81szahd49a8qvsydi1922z4q6r2r70fpbfwi4qrq"; depends=[data_table ggplot2]; };
   ggVennDiagram = derive2 { name="ggVennDiagram"; version="1.5.2"; sha256="0hzjbpd3f3zn169s5nvnv7b4wlrwdn3r0pk0vgkdnhchl75g0qni"; depends=[aplot dplyr forcats ggplot2 tibble venn yulab_utils]; };
@@ -10860,11 +11037,12 @@ in with self; {
   ggalt = derive2 { name="ggalt"; version="0.4.0"; sha256="0ssa274d41vhd6crzjz7jqzbwgnjimxwxl23p2cx35aqs5wdfjpc"; depends=[ash dplyr extrafont ggplot2 gtable KernSmooth maps MASS plotly proj4 RColorBrewer scales tibble]; };
   ggamma = derive2 { name="ggamma"; version="1.0.1"; sha256="1zc4p2bz4pxqycrzgb9wwl53lxqcikxsihna6ff8pmw1n623j85z"; depends=[]; };
   gganimate = derive2 { name="gganimate"; version="1.0.9"; sha256="016nky797h4093qrpynq5rr1p7h4chpv1hyngpcs2csr1064rjmz"; depends=[cli ggplot2 glue lifecycle progress rlang scales stringi transformr tweenr vctrs]; };
-  ggarchery = derive2 { name="ggarchery"; version="0.4.2"; sha256="1vbknccfr18gawia353appvj3fc3ic8wrkgg0rd2aiz48av496yz"; depends=[dplyr ggplot2 glue magrittr purrr rlang tidyr]; };
+  ggarchery = derive2 { name="ggarchery"; version="0.4.3"; sha256="1fgcy26gq0cpk4vhc412yw5wj8j4afs21lp7fcqsdah1xmpnhym2"; depends=[dplyr ggplot2 glue magrittr purrr rlang tidyr]; };
+  ggarrow = derive2 { name="ggarrow"; version="0.1.0"; sha256="14jvrjrzp7wk94c3s0ixdcbhfsx9nlr5rf85a5gmrhvq7qjaicxc"; depends=[cli ggplot2 polyclip rlang scales vctrs]; };
   ggautomap = derive2 { name="ggautomap"; version="0.3.2"; sha256="0fy1saym15l3d76ix26kz9il3nzsypchh028vigcvan7g0yg7168"; depends=[cartographer cli dplyr ggmapinset ggplot2 packcircles rlang sf tidyr vctrs]; };
   ggbeeswarm = derive2 { name="ggbeeswarm"; version="0.7.2"; sha256="1rcw54isai05np4fj19vcxx2vcxq7y2nm3az9m8xwbc9pdjs4z7x"; depends=[beeswarm cli ggplot2 lifecycle vipor]; };
   ggbiplot = derive2 { name="ggbiplot"; version="0.6.2"; sha256="0ys4l5fhy1p1ys3q7012vxafmfrzaqlvnzmkmv32zar32j3hvmkc"; depends=[ggplot2 scales]; };
-  ggblanket = derive2 { name="ggblanket"; version="6.0.0"; sha256="0rb6xhh323psxss8ccz681nwaxlxxa8brfzqdzrylr9k7pz828fd"; depends=[dplyr farver forcats ggplot2 hms lubridate magrittr purrr rlang scales snakecase stringr tidyr tidyselect viridisLite]; };
+  ggblanket = derive2 { name="ggblanket"; version="9.1.1"; sha256="1nnb6kx6yl4rdfjib9xp406wb533zwl3wcfv0d8nljq094n8j7hy"; depends=[colorspace dplyr farver forcats ggplot2 hms labelled lubridate magrittr purrr rlang scales snakecase stringr tidyr tidyselect viridisLite]; };
   ggblend = derive2 { name="ggblend"; version="0.1.0"; sha256="0wzy9lnvqxjl3511vk1y6nxpvhk9hvk1xq18bbwsv6886npls56z"; depends=[ggplot2 rlang]; };
   ggborderline = derive2 { name="ggborderline"; version="0.2.0"; sha256="1acb3z2dwasmn4ngc7wqk3y4n34ah3fhdxsbdl3dmbc75nmdsn5a"; depends=[cli ggplot2 rlang vctrs]; };
   ggbrace = derive2 { name="ggbrace"; version="0.1.1"; sha256="0p5k9lp0c34ry3mf39w0j9pi8irych9p6lvh6zyk82my18b25yk0"; depends=[ggplot2]; };
@@ -10877,9 +11055,10 @@ in with self; {
   ggcharts = derive2 { name="ggcharts"; version="0.2.1"; sha256="1c0gdn8skkm82f3qxv9551l36zwqcga9b9sbc48q8hp71ay4ac6b"; depends=[colorspace dplyr ggplot2 lifecycle magrittr patchwork rlang]; };
   ggcleveland = derive2 { name="ggcleveland"; version="0.1.0"; sha256="1pl9qhj7p5kflx0ni59hq1k9afqchghg5wig9v1ml5pqrjz70pxa"; depends=[dplyr egg ggplot2 lattice magrittr readr rlang stringr tibble tidyr vctrs]; };
   ggcorrplot = derive2 { name="ggcorrplot"; version="0.1.4.1"; sha256="0yd865lfs4144jqh9ilznqa69rj0183ashnhvmjmis87zw69a45q"; depends=[ggplot2 reshape2]; };
-  ggcorset = derive2 { name="ggcorset"; version="0.4.5"; sha256="18i7xj3h0v556y2m7b1cnlqhzfp9jv5gpchhz5rmm8d6y3k4czii"; depends=[dplyr gghalves ggplot2 ggstance]; };
+  ggcorset = derive2 { name="ggcorset"; version="0.5.0"; sha256="1vswnr15xbsl3kbd7nbd33mc9931d4lk3mpx8ri0ph37h3b0sif9"; depends=[gghalves ggplot2]; };
   ggdag = derive2 { name="ggdag"; version="0.2.12"; sha256="0q5iwafrhq77wxdc9dj9jl5a0rsj3rz3bjz8qb2yjd5j1qlj2mlx"; depends=[dagitty dplyr forcats ggplot2 ggraph ggrepel igraph magrittr pillar purrr rlang stringr tibble tidygraph]; };
   ggdark = derive2 { name="ggdark"; version="0.2.1"; sha256="1w93g2j4g45x9s841v9zi18lxzda81ipa13fajqc6p9xk8frvgrf"; depends=[ggplot2]; };
+  ggdaynight = derive2 { name="ggdaynight"; version="0.1.3"; sha256="1wvpmpyfnq6j6wkk8ayaddb4yyk945w4isjn57dpkvabfk59cvfh"; depends=[ggplot2]; };
   ggdemetra = derive2 { name="ggdemetra"; version="0.2.8"; sha256="18i96jkbc0zm9xgn5250v2316kccr5vcxag2gii7lag7bhj6fq51"; depends=[ggplot2 ggrepel gridExtra RJDemetra]; };
   ggdendro = derive2 { name="ggdendro"; version="0.2.0"; sha256="0sdayyzvhkbli0ha68mc0f7cgp36njv9ign37d63l21hvd6w6h0r"; depends=[ggplot2 MASS]; };
   ggdensity = derive2 { name="ggdensity"; version="1.0.0"; sha256="01ym1af6w39zg6xh5mls8kwl4mg0lpjd94j0hm2xrgl39llpwx6r"; depends=[ggplot2 isoband MASS scales tibble vctrs]; };
@@ -10888,7 +11067,7 @@ in with self; {
   gge = derive2 { name="gge"; version="1.8"; sha256="1c8f8g4nw245cjxpx3fjw03cgwc1q13k9ly9jx1jcc6k6hsdkx9k"; depends=[nipals reshape2]; };
   ggeasy = derive2 { name="ggeasy"; version="0.1.4"; sha256="1dppcffkyr6ybpz17zkq97g0p2hs1f8iwg6vwrw124pbgr065dr0"; depends=[ggplot2 rlang]; };
   ggedit = derive2 { name="ggedit"; version="0.4.1"; sha256="1mnk2ygnflkp9bx8pbf41vb9fyhcnkqrw8j01vx7p56iga3lwi4g"; depends=[colourpicker dplyr ggplot2 miniUI plyr purrr rlang rstudioapi scales shiny shinyAce shinyBS tibble tidyr]; };
-  ggeffects = derive2 { name="ggeffects"; version="1.5.0"; sha256="0yczz34rn4sikwzqpm3w47zwm201mv4mljrcgpb50is06g3l7azk"; depends=[insight]; };
+  ggeffects = derive2 { name="ggeffects"; version="1.6.0"; sha256="02cpiadigrxbw2qnajc1pkqvkl3hzw0yqidsb8lp67vcsx3czh7z"; depends=[insight]; };
   ggenealogy = derive2 { name="ggenealogy"; version="1.0.3"; sha256="1dak8nwdjiv7947w4pf00vhh6bida7gahv4ijqa3m1k22j2mr2qa"; depends=[ggplot2 igraph plotly plyr reshape2]; };
   ggetho = derive2 { name="ggetho"; version="0.3.7"; sha256="0bdqx3x42jp22bs297nhdgzvywhq4cy0lwmwprl7vmjjh8lwvkxk"; depends=[behavr cli data_table ggplot2 labeling rlang scales stringr]; };
   ggfacto = derive2 { name="ggfacto"; version="0.3.0"; sha256="069qzz2192vq6zsqpq2wqxhj6a26g4mpdbng7ing4ha9xfnp9h7g"; depends=[data_table dplyr FactoMineR forcats ggforce ggiraph ggplot2 ggrepel gridExtra magrittr purrr rlang stringr tabxplor tibble tidyr tidyselect vctrs withr]; };
@@ -10899,8 +11078,9 @@ in with self; {
   ggfocus = derive2 { name="ggfocus"; version="1.0.0"; sha256="03q0rz7flm8sc8hrlkcm5fz66qiyxb8z8q4bh9dglhw0jc8q1fvb"; depends=[dplyr ggplot2 magrittr RColorBrewer rlang]; };
   ggforce = derive2 { name="ggforce"; version="0.4.2"; sha256="1a2i1rl27yqh8kxjpphwcv05p19l2aw07q9gxl4x8iv8xpkb0if1"; depends=[cli ggplot2 gtable lifecycle MASS polyclip Rcpp RcppEigen rlang scales systemfonts tidyselect tweenr vctrs withr]; };
   ggformula = derive2 { name="ggformula"; version="0.12.0"; sha256="0vbpivyxms46px3wqkbl1wq199mqdxq94gsiplv4i7lz0lzghsfm"; depends=[ggplot2 ggridges labelled mosaicCore rlang scales stringr tibble]; };
-  ggfortify = derive2 { name="ggfortify"; version="0.4.16"; sha256="05h3a4ycain0y621anjpjphsjlhpayb2nnd6n70rlymrbilfw6xv"; depends=[dplyr ggplot2 gridExtra scales stringr tibble tidyr]; };
-  ggfun = derive2 { name="ggfun"; version="0.1.4"; sha256="1i1kcpcy3ik5p9c8742cq3syg8civ7iq6ff1fr0240gl3ca1lx6w"; depends=[cli ggplot2 rlang]; };
+  ggfortify = derive2 { name="ggfortify"; version="0.4.17"; sha256="1ygbvk3b99mabwqc9hh5lz3adj1i05ym7i8b6kbgid8cgrbaaxag"; depends=[dplyr ggplot2 gridExtra scales stringr tibble tidyr]; };
+  ggfoundry = derive2 { name="ggfoundry"; version="0.2.0"; sha256="06nc6866lzb417z2bdcjy2qv799bfgkbkalgrsvx5nc1ggq2vpxf"; depends=[ggplot2 grImport2 lifecycle rlang]; };
+  ggfun = derive2 { name="ggfun"; version="0.1.5"; sha256="1lqngd9333vlai88q2w5hrp9mmzdlvjx9pvn7zr9fx61d3yh2v7y"; depends=[cli dplyr ggplot2 rlang]; };
   ggfx = derive2 { name="ggfx"; version="1.0.1"; sha256="1lys5lzlilzvd6dm7rkxv7nvnp80fajl5yzhpwcbb5az5832ik27"; depends=[ggplot2 gtable magick ragg rlang]; };
   gggap = derive2 { name="gggap"; version="1.0.1"; sha256="1iidxm7qcrg0isw2q27cmjbfb3pkfj5jcg1nj8lgy6xmydw3vrw3"; depends=[cowplot ggplot2]; };
   gggenes = derive2 { name="gggenes"; version="0.5.1"; sha256="08s0fhk2kz3ks64nfmdbd8p3swkn62cbw7dpbqgk9ydpmh5gpjbj"; depends=[ggfittext ggplot2 rlang]; };
@@ -10910,8 +11090,7 @@ in with self; {
   ggh4x = derive2 { name="ggh4x"; version="0.2.8"; sha256="1vk2xqf1m14zy0jynv73f56a3slrpa9nymvw236v9ixgafarwkm8"; depends=[cli ggplot2 gtable lifecycle rlang scales vctrs]; };
   gghalfnorm = derive2 { name="gghalfnorm"; version="1.1.2"; sha256="1sy0m6pqmnjbqv60rljyblhis0dxwkhw751jhlad5arcgrcwf4k8"; depends=[ggplot2 ggrepel]; };
   gghalves = derive2 { name="gghalves"; version="0.1.4"; sha256="1qsxq2zbz4zcpqc7949apznn9f2c959jwwx010bl4gf2p6vchfx7"; depends=[ggplot2 gtable]; };
-  gghdr = derive2 { name="gghdr"; version="0.2.0"; sha256="1id0ky2mf656xqsmg76f627zw8iff4q1wzgih32nryk0hfvm2gfi"; depends=[digest farver ggplot2 hdrcde scales tibble]; };
-  gghdx = derive2 { name="gghdx"; version="0.1.2"; sha256="1h5w09vsk4gjzs6v7pqd4krcsw696hsaz8rqpy3z6g499glnb2qb"; depends=[dplyr ggplot2 ggthemes magrittr purrr rlang showtext sysfonts tibble]; };
+  gghdx = derive2 { name="gghdx"; version="0.1.3"; sha256="01y0c9mlk1c25r5v0kjyhmsgb77qaq4ykg8hhjr1kn1w5gfylnbk"; depends=[dplyr ggplot2 ggthemes lifecycle magrittr purrr rlang showtext sysfonts tibble]; };
   ggheatmap = derive2 { name="ggheatmap"; version="2.2"; sha256="13cf3xk5drb6dfr3gcbgfi0hk6akk9b3g9f3c2jy6hz8rz5xnyn6"; depends=[aplot factoextra ggplot2 ggpubr patchwork tibble tidyr]; };
   gghighlight = derive2 { name="gghighlight"; version="0.4.1"; sha256="1lsvy9ha4d8zs927h8jbdj5r39xqcy1n6g5prw4awiihdvcv9v66"; depends=[dplyr ggplot2 ggrepel lifecycle purrr rlang tibble]; };
   gghilbertstrings = derive2 { name="gghilbertstrings"; version="0.3.3"; sha256="0b3xp1w6fkkmjh7gihhfkp4npx553a75bvsal3w4j57xa34l8rap"; depends=[dplyr ggplot2 lifecycle magrittr Rcpp rlang tibble]; };
@@ -10919,9 +11098,9 @@ in with self; {
   ggimage = derive2 { name="ggimage"; version="0.3.3"; sha256="0jm316dqnnnsifrwkh6q2xs07dqazaa77s713pr7h94q1r8ab1bs"; depends=[ggfun ggplot2 ggplotify jsonlite magick scales tibble withr]; };
   ggimg = derive2 { name="ggimg"; version="0.1.2"; sha256="1ynfq8lwlw851j00k7mm63w5yyqkd7v67fs8g2nwxk7ac0wb44ph"; depends=[abind ggplot2 jpeg png]; };
   gginference = derive2 { name="gginference"; version="0.1.3"; sha256="1r960cglnkii8xih4r1r7wd857jqn53f08zi9dnj54bpqrs374zx"; depends=[ggplot2 rlang]; };
-  gginnards = derive2 { name="gginnards"; version="0.1.2"; sha256="1z4wbh4biywvxr29j1rll6h4yh3hlhrypa5903pmzvpgdy9n2baw"; depends=[ggplot2 magrittr rlang stringr tibble]; };
+  gginnards = derive2 { name="gginnards"; version="0.2.0"; sha256="0xhnn0kcmlggyx50dv4avhs4ngfnya2m928dqpix8km4c3y140qg"; depends=[ggplot2 magrittr rlang stringr tibble]; };
   ggip = derive2 { name="ggip"; version="0.3.2"; sha256="0mg3p3lq3afw96ddk89v62jjd8ii7nhdcwlmdnmdxrw6awcmvyhk"; depends=[cli dplyr ggplot2 ipaddress Rcpp rlang tidyr vctrs]; };
-  ggiraph = derive2 { name="ggiraph"; version="0.8.9"; sha256="048dkdwkzpgrg6x0jzljzxbd89z91akgmb31rya1v4s5qbrpqwdb"; depends=[cli ggplot2 htmltools htmlwidgets purrr Rcpp rlang systemfonts uuid vctrs]; };
+  ggiraph = derive2 { name="ggiraph"; version="0.8.10"; sha256="17vdw9xaizcdf6fcbyhz9l514kk4w4dz9yvikbz9bvfx93a9z5ps"; depends=[cli ggplot2 htmltools htmlwidgets purrr Rcpp rlang systemfonts uuid vctrs]; };
   ggiraphExtra = derive2 { name="ggiraphExtra"; version="0.3.0"; sha256="0q8ppixw5i1hpphmswpw6lvq7gx8rx4gfs2b8d31wbn32ziiv2rk"; depends=[dplyr ggiraph ggplot2 magrittr mgcv mycor plyr ppcor purrr RColorBrewer reshape2 scales sjlabelled sjmisc stringr tidyr]; };
   ggisotonic = derive2 { name="ggisotonic"; version="0.1.2"; sha256="1jz1qhx51gzq6lbk24pjxc55nhzc6alsy9h870jn88mn9fpx4lhp"; depends=[dplyr fdrtool ggplot2]; };
   ggjoy = derive2 { name="ggjoy"; version="0.4.1"; sha256="012md2m0jqfcccb933j423m3ck31v3p0pd41gjxpyg9082y7ixyj"; depends=[ggplot2 ggridges]; };
@@ -10938,8 +11117,9 @@ in with self; {
   ggmix = derive2 { name="ggmix"; version="0.0.2"; sha256="158pzmr4vmy2qxmp3nrabjgkg11mrdvl1skzxgwida2is900f7gf"; depends=[glmnet MASS Matrix]; };
   ggmosaic = derive2 { name="ggmosaic"; version="0.3.3"; sha256="1zm1zfbd0qk6icw65m9hz1hgyqj632ibq3qilidvx5jy7jh8nbpy"; depends=[dplyr ggplot2 ggrepel plotly productplots purrr rlang scales tidyr]; };
   ggmr = derive2 { name="ggmr"; version="0.1.1"; sha256="0941rvh7m5knlhp0m0mhm4j8spmch0pyvwhzs3bycq3vzlvzv1w7"; depends=[MASS]; };
+  ggmugs = derive2 { name="ggmugs"; version="0.6.0"; sha256="1qky7ywk8np24hgn1lj4mpd4snwlvngx8ix7ack4gxblixl9s0z0"; depends=[data_table dplyr ggplot2 purrr tibble tidyr]; };
   ggmuller = derive2 { name="ggmuller"; version="0.5.6"; sha256="069y6wf9lbkz32kmkrc61vjc0p9fpr5191103dvaz0nj6gpd686a"; depends=[ape dplyr ggplot2]; };
-  ggmulti = derive2 { name="ggmulti"; version="1.0.6"; sha256="0cynzl5aamm8ra6jz3j6n2frd680f35p3f38gcx12zsk1vzsl4fr"; depends=[cli dplyr ggplot2 tidyr]; };
+  ggmulti = derive2 { name="ggmulti"; version="1.0.7"; sha256="071h76imfsm6p9ml9pkfsar3d6z1nawd9m7f82smy4csb58iz5i3"; depends=[cli dplyr ggplot2 tidyr]; };
   ggnetwork = derive2 { name="ggnetwork"; version="0.5.13"; sha256="0ipxw6j36n0hfn0nsimw8jbjszvm1d0hadwg4zirvn6v36npwabc"; depends=[ggplot2 ggrepel igraph network sna]; };
   ggnewscale = derive2 { name="ggnewscale"; version="0.4.10"; sha256="1j8d512qhdlhfp3hb36d1dqlqlxs0i303mnn31xnq1adcwwibmlz"; depends=[ggplot2]; };
   ggnormalviolin = derive2 { name="ggnormalviolin"; version="0.1.2"; sha256="1gbv2b86nznw5bs05c4ns96b8hsxkhikhcf8syl2qbbafzy8vx6y"; depends=[dplyr ggplot2 magrittr scales]; };
@@ -10949,30 +11129,29 @@ in with self; {
   ggpackets = derive2 { name="ggpackets"; version="0.2.1"; sha256="1fdyr0m5rf1wy2pydvk12g7lw338iw026rxz98mv8kryrs32q7kh"; depends=[ggplot2 rlang]; };
   ggpage = derive2 { name="ggpage"; version="0.2.3"; sha256="1qi8ydq3fxb1smk0jg9z1cv2xjq8c1lsnmz8l7c61rvdbjm3710v"; depends=[dplyr ggplot2 magrittr purrr rlang stringr tidytext]; };
   ggparallel = derive2 { name="ggparallel"; version="0.4.0"; sha256="1flhy0731phknzxwmr6lza7a6r0mqy7j8z93p4aala3d3cg2x1nw"; depends=[ggplot2 plyr reshape2]; };
-  ggparliament = derive2 { name="ggparliament"; version="2.0.0"; sha256="04za4lm3lir95bgda1rzlsyil2fkac3j5f5f1pjw2samy6pjz80r"; depends=[dplyr ggplot2 rlang]; };
   ggparty = derive2 { name="ggparty"; version="1.0.0"; sha256="0s6hr5p930kl3pj6ajwgwqz6yikc3l9hhzy1yn0nqc0r8pp2jyqf"; depends=[checkmate ggplot2 gtable partykit rlang survival]; };
   ggpath = derive2 { name="ggpath"; version="1.0.1"; sha256="0iq9fl8zcyc5ihi3pf6h8pb6j7ys506yziq0qr0xgyw803cvl23m"; depends=[cachem cli ggplot2 magick memoise rappdirs rlang]; };
-  ggpattern = derive2 { name="ggpattern"; version="1.0.1"; sha256="1b9bfxlg64gr39bz58fp6jmg4nziwk8rk94rzpjsqhfhpwi2lrgr"; depends=[ggplot2 glue gridpattern rlang scales]; };
+  ggpattern = derive2 { name="ggpattern"; version="1.1.1"; sha256="1xlh1y6q10iqk1mbwdrr1vqmgmim3z27znbb5sbwgmm9yfxzj37s"; depends=[cli ggplot2 glue gridpattern lifecycle rlang scales vctrs]; };
   ggpcp = derive2 { name="ggpcp"; version="0.2.0"; sha256="1xkxsxnxcyy8rrazzbl38g405cxjjjz6a720cdm4bsk03q2q4rar"; depends=[assertthat dplyr ggplot2 rlang tibble tidyr tidyselect]; };
   ggperiodic = derive2 { name="ggperiodic"; version="1.0.3"; sha256="03gsbdqqxi0j4slp61bzrn4m2sjhh9fvcy1a1h5vcg4ax233j270"; depends=[data_table dplyr ggplot2 sticky tidyselect]; };
   ggpicrust2 = derive2 { name="ggpicrust2"; version="1.7.3"; sha256="0zjlsvzl2f74fvqw4ijnai23qwhlcpgd5p8z9dclnwnsgdbm6hcq"; depends=[ALDEx2 aplot circlize DESeq2 dplyr edgeR GGally ggh4x ggplot2 ggprism lefser limma Maaslin2 metagenomeSeq MicrobiomeStat patchwork readr SummarizedExperiment tibble tidyr]; };
   ggpie = derive2 { name="ggpie"; version="0.2.5"; sha256="11c431ggrhyxiql1v9qajp568jri6hlp1kgl334j4f7sgyh73ng5"; depends=[dplyr ggnewscale ggplot2 ggrepel magrittr RColorBrewer rlang scales stringr tibble]; };
-  ggplate = derive2 { name="ggplate"; version="0.1.1"; sha256="1a6c0f671i5368hpc3ilmzpx2vkdmxrzzgbbxpbhkhpz8cl6z311"; depends=[dplyr farver forcats ggplot2 purrr rlang scales stringr tidyr]; };
+  ggplate = derive2 { name="ggplate"; version="0.1.3"; sha256="18ibiizxbzyshaxgw2ff639nn36mha5bv6yxa6960wjyx3z78772"; depends=[dplyr farver forcats ggplot2 purrr rlang scales stringr tidyr]; };
   ggplot_multistats = derive2 { name="ggplot.multistats"; version="1.0.0"; sha256="1afzfa86vc484bcwpg7m1ky03jpax584rigzgai8w06pifkmz0il"; depends=[ggplot2 hexbin rlang scales]; };
-  ggplot2 = derive2 { name="ggplot2"; version="3.5.0"; sha256="1qlh231dwsa7j0pzlw6xdm68d7r0v64916p66bg9lh1dw3a1ryh7"; depends=[cli glue gtable isoband lifecycle MASS mgcv rlang scales tibble vctrs withr]; };
+  ggplot2 = derive2 { name="ggplot2"; version="3.5.1"; sha256="08a72kizg42mdm35170fnpn8l6r4n3j1yvbgiq1k8dlvz4jb8n3w"; depends=[cli glue gtable isoband lifecycle MASS mgcv rlang scales tibble vctrs withr]; };
   ggplot2_utils = derive2 { name="ggplot2.utils"; version="0.3.1"; sha256="0fsardsv77rfm2idynqi5zb3wrqcjyckxxchvj894kgb1qfpa27v"; depends=[checkmate EnvStats ggplot2 ggpp ggstats survival]; };
   ggplot2movies = derive2 { name="ggplot2movies"; version="0.0.1"; sha256="067ld6djxcpbliv70r2c1pp4z50rvwmn1xbvxfcqdi9s3k9a2v8q"; depends=[]; };
   ggplotAssist = derive2 { name="ggplotAssist"; version="0.1.3"; sha256="1g0s1dkbrxmwqjqppagdbnx24s0nbjn09xwxix3dkfssz6drhala"; depends=[dplyr editData gcookbook ggplot2 ggthemes magrittr miniUI moonBook rstudioapi scales shiny shinyAce shinyWidgets stringr tibble tidyverse]; };
   ggplotgui = derive2 { name="ggplotgui"; version="1.0.0"; sha256="1yfglg5438mwyml845isimzma5q6824x19jka509ng49bzmf1za0"; depends=[ggplot2 haven plotly RColorBrewer readr readxl shiny stringr]; };
   ggplotify = derive2 { name="ggplotify"; version="0.1.2"; sha256="11qfk4pj0bb013m9964q2fsrj4x39c4kwh84vfyi3qhlkrsybfh1"; depends=[ggplot2 gridGraphics yulab_utils]; };
   ggplotlyExtra = derive2 { name="ggplotlyExtra"; version="0.0.1"; sha256="1m2rhylpzj934gb50lxjp47rxz0kwl9i1p3n7w1rz4qi96pr5p1c"; depends=[ggplot2 plotly rlang]; };
-  ggpmisc = derive2 { name="ggpmisc"; version="0.5.5"; sha256="1j49q1fbihxir5q5llqwyga111j3lggifzjk3cvq8lphim4c3jia"; depends=[confintr dplyr generics ggplot2 ggpp lmodel2 lubridate MASS multcomp multcompView plyr polynom quantreg rlang scales splus2R tibble]; };
+  ggpmisc = derive2 { name="ggpmisc"; version="0.5.6"; sha256="0w514js5q6xchbbw2x3085d7parwa8nqaj4fvjplhpfah6rya2dv"; depends=[confintr dplyr generics ggplot2 ggpp lmodel2 lubridate MASS multcomp multcompView plyr polynom quantreg rlang scales splus2R tibble]; };
   ggpointdensity = derive2 { name="ggpointdensity"; version="0.1.0"; sha256="0c9a14j3b0hvamqylhzldw2hjdxmfbllwahjkf3gg2rw337ld9iy"; depends=[ggplot2]; };
   ggpointless = derive2 { name="ggpointless"; version="0.1.0"; sha256="1qzd5jcac3syl9pgxzq2r7vmrp7kzd2h56xa1y6hich2rhzywva9"; depends=[ggplot2 lifecycle rlang]; };
   ggpol = derive2 { name="ggpol"; version="0.0.7"; sha256="11xr26kwmkjjb51wm44ydv0vcinc6k6faqwx4s2faj4iwidlys1m"; depends=[dplyr ggplot2 glue gtable plyr rlang tibble]; };
   ggpolar = derive2 { name="ggpolar"; version="0.2.2"; sha256="18m0nd74cz30gr961404wnib5v2wddpf1iv453s5dri0vxlmdl6w"; depends=[ggplot2 rlang]; };
   ggpolypath = derive2 { name="ggpolypath"; version="0.3.0"; sha256="0ipn1lhmpcdxim3235kxsw6vkj7cf7smqdm534jfa75ski4q9xpy"; depends=[ggplot2]; };
-  ggpp = derive2 { name="ggpp"; version="0.5.6"; sha256="0xnjbxd1lkg85c2hsx7cgxqsqb3dc0pma8jwdlqfgg7d519d60xa"; depends=[dplyr ggplot2 glue gridExtra lubridate magrittr MASS polynom rlang scales stringr tibble xts zoo]; };
+  ggpp = derive2 { name="ggpp"; version="0.5.7"; sha256="0gd8dbcja4qjwjh414mp2xf8hnjlrp4zm4ac8j59kqxzpwxv8n04"; depends=[dplyr ggplot2 glue gridExtra lubridate magrittr MASS polynom rlang scales stringr tibble vctrs xts zoo]; };
   ggprism = derive2 { name="ggprism"; version="1.0.5"; sha256="0waivf6a6bk52z139xfg0apmcv0mhjqb08yb4dzv8g7g22qfwdbz"; depends=[digest ggplot2 glue gtable rlang scales tibble]; };
   ggpubr = derive2 { name="ggpubr"; version="0.6.0"; sha256="0x7p3lbh0xv5qk0shsrj1fjx382zak7mj8l3z1zd348r2pccavif"; depends=[cowplot dplyr ggplot2 ggrepel ggsci ggsignif glue gridExtra magrittr polynom purrr rlang rstatix scales tibble tidyr]; };
   ggpval = derive2 { name="ggpval"; version="0.2.5"; sha256="09wjfkmsh165xiw1dab6c8qb9wrnzm1q1sbfnbzyg99wsk480bgy"; depends=[data_table ggplot2]; };
@@ -10991,31 +11170,32 @@ in with self; {
   ggrisk = derive2 { name="ggrisk"; version="1.3"; sha256="02df3gcviax747d33v30m97jsazj7zdpjnhypfy38cg70yxidwg9"; depends=[cutoff do egg ggplot2 nomogramFormula reshape2 rms set survival]; };
   ggrounded = derive2 { name="ggrounded"; version="0.0.3"; sha256="124khfv4fl3xgylq4s1pc3wzld0n68iclyl0pm19jcw97bmf1cxl"; depends=[ggplot2 gridGeometry]; };
   ggroups = derive2 { name="ggroups"; version="2.1.2"; sha256="0fb6awfm4vn67pgmz50fljvp9mfxx1q29pirgv04dya8751srxgi"; depends=[]; };
-  ggsankeyfier = derive2 { name="ggsankeyfier"; version="0.1.7"; sha256="1ddzjqcc4g6h8gryipa21gwjqza73cq2qchmh2pmm65mj1xip5k5"; depends=[dplyr ggplot2 gridBezier rlang scales tidyr vwline]; };
-  ggsci = derive2 { name="ggsci"; version="3.0.2"; sha256="0qasxv3aliqqmfi3nk3140lrbcrw4lbfw5hm65hfkgf5a3bkca67"; depends=[ggplot2 scales]; };
-  ggscidca = derive2 { name="ggscidca"; version="0.2.0"; sha256="0qfg7x0d75jyawarvja1pyzgq0blwy2l8bap3q8f5i2rjn4l8xld"; depends=[cmprsk ggplot2 randomForest reshape2 survival]; };
+  ggsankeyfier = derive2 { name="ggsankeyfier"; version="0.1.8"; sha256="1sn7gpkqbgk3adkflnzak29d0zk57d0x6hlv2wm1shq45nawjmcg"; depends=[dplyr ggplot2 gridBezier rlang scales tidyr vwline]; };
+  ggsci = derive2 { name="ggsci"; version="3.1.0"; sha256="1adybzfkmha5xi85yqnz8cbbr6r3qj86z6yvsfcz8g44wqrb4d2r"; depends=[ggplot2 scales]; };
+  ggscidca = derive2 { name="ggscidca"; version="0.2.3"; sha256="1ggjakfafq6gib7yn684ssv6wdad68an0p13wxl232ikwmw4b66w"; depends=[cmprsk e1071 ggplot2 kernlab randomForest reshape2 survival]; };
   ggseas = derive2 { name="ggseas"; version="0.5.4"; sha256="1jpdijwll5l7bg7cmjnklkxffysi9ckzg50rw2a2cd00zwby11q9"; depends=[ggplot2 rlang seasonal zoo]; };
   ggsector = derive2 { name="ggsector"; version="1.6.6"; sha256="0qaf8wl1mmwl3razyif08sh329p9j1jgqc0ls5szqirq3db4315i"; depends=[dplyr ggplot2 magrittr Matrix prettydoc rlang Seurat tibble tidyr]; };
   ggseg = derive2 { name="ggseg"; version="1.6.5"; sha256="0495g3l71lagrmz3s3lxy4rkfr7gin8vn1m59fvcv7hmycn39i0k"; depends=[dplyr ggplot2 sf tidyr vctrs]; };
   ggseg3d = derive2 { name="ggseg3d"; version="1.6.3"; sha256="1rpq2wgyyladz5nkngkvbf3cy4pw212dj1vfh7ksh0bxi7v1k6mh"; depends=[dplyr magrittr plotly scales tidyr]; };
   ggseqlogo = derive2 { name="ggseqlogo"; version="0.2"; sha256="1drncw73950dzjx3lyyfqrxm3rdbrp44n27sl4b17m9d0crdbgqw"; depends=[ggplot2]; };
-  ggseqplot = derive2 { name="ggseqplot"; version="0.8.3"; sha256="1ml71lxkr1bnf0l0ljpnlj7rlfmgmk6zmydm899pwvgngph1rjq6"; depends=[colorspace dplyr forcats ggh4x ggplot2 ggrepel ggtext glue patchwork purrr Rdpack rlang tidyr TraMineR usethis]; };
+  ggseqplot = derive2 { name="ggseqplot"; version="0.8.4"; sha256="0h4v5lxwr8rflxmxrv324axz6m1girib6gdh4p3k5hk48ilglwj0"; depends=[cli colorspace dplyr forcats ggh4x ggplot2 ggrepel ggtext glue haven patchwork purrr Rdpack rlang tidyr TraMineR usethis]; };
   ggshadow = derive2 { name="ggshadow"; version="0.0.5"; sha256="0cakz31hp97kdvdcyrp9p03nz81kypsn9sn6nxl7kb0n3rrrlav0"; depends=[cli ggplot2 glue rlang scales vctrs]; };
   ggside = derive2 { name="ggside"; version="0.3.1"; sha256="1r36hsnha9bqzfb3rhpj11zg307wzacnkn4i6hi627xrx4knj5cl"; depends=[cli ggplot2 glue gtable rlang scales tibble vctrs]; };
   ggsignif = derive2 { name="ggsignif"; version="0.6.4"; sha256="02mjailzyqkdnzky60dgampw2sq6mnn7s66fk0lhy32s8apm280i"; depends=[ggplot2]; };
   ggsoccer = derive2 { name="ggsoccer"; version="0.1.7"; sha256="13icxd9w3dfwpjl4yaw0gp09mviwf7xrrfs30z66nga459h6gf1d"; depends=[ggplot2 rlang]; };
   ggsolvencyii = derive2 { name="ggsolvencyii"; version="0.1.2"; sha256="0jzj4iglgzwp6pfs5zr7mirdiqrrmbwdvl245b1fwf42rnxbqrq6"; depends=[dplyr ggplot2 magrittr tidyr]; };
   ggsom = derive2 { name="ggsom"; version="0.4.0"; sha256="0qsih00rm3ng2zh6p2s7a35rh1qlvbkn82s53v765w60fjmhwkwf"; depends=[assertthat data_table dplyr entropy ggplot2 kohonen magrittr tibble tidyr]; };
+  ggspark = derive2 { name="ggspark"; version="0.0.2"; sha256="09xdjiizx31sj8vahjdk12p7yhmxll8z61nirr13myj0wffrj79x"; depends=[ggplot2]; };
   ggspatial = derive2 { name="ggspatial"; version="1.1.9"; sha256="14q3fc33cjy8vc85mb9a6h8fgciypnlcxjihbgc6jbzjksd0l38p"; depends=[abind ggplot2 glue rlang rosm scales sf tibble tidyr]; };
   ggspectra = derive2 { name="ggspectra"; version="0.3.12"; sha256="0kq029w14w3z7qscrasxv289iizcxc7lvkbn5ysiz4jgrvgyc55g"; depends=[ggplot2 ggrepel lubridate photobiology photobiologyWavebands rlang scales tibble]; };
-  ggstance = derive2 { name="ggstance"; version="0.3.6"; sha256="0wk3gbi5365sndi02gwd4c33vcrj5p8cfwakwjg010y5hgxx96nd"; depends=[cli ggplot2 plyr rlang withr]; };
+  ggstance = derive2 { name="ggstance"; version="0.3.7"; sha256="0v25si348qdp68887yx4d652rsz8w5lfabwaq1nvglrhs6s4f9js"; depends=[cli ggplot2 plyr rlang withr]; };
   ggstar = derive2 { name="ggstar"; version="1.0.4"; sha256="0m2knp1jf1x62nqd8ln4haw90jv69l7vjrhn4pdrywgmwhdrp8gd"; depends=[cli ggplot2 gridExtra scales]; };
-  ggstats = derive2 { name="ggstats"; version="0.5.1"; sha256="1jcydapwarl1cxinm80rjmmli8vmlid8alnh6w484bh7nwzmcsic"; depends=[broom_helpers cli dplyr forcats ggplot2 lifecycle magrittr patchwork purrr rlang scales stringr tidyr]; };
-  ggstatsplot = derive2 { name="ggstatsplot"; version="0.12.2"; sha256="0nriqsfk48ijkkg06i87zp2frp7yz3c4gfmfgfig6v8mcmj19zwr"; depends=[correlation datawizard dplyr ggcorrplot ggplot2 ggrepel ggside ggsignif glue insight paletteer parameters patchwork performance purrr rlang statsExpressions tidyr]; };
+  ggstats = derive2 { name="ggstats"; version="0.6.0"; sha256="103d1d4azdiaf5i2dgr23wrx6svc0aq85axrfj0v2b2lkwial2pq"; depends=[broom_helpers cli dplyr forcats ggplot2 lifecycle magrittr patchwork purrr rlang scales stringr tidyr]; };
+  ggstatsplot = derive2 { name="ggstatsplot"; version="0.12.3"; sha256="0lm48b664nin8f32a3xpqvc95cizi27sls5m4vrymfz3aarcwrxr"; depends=[correlation datawizard dplyr ggcorrplot ggplot2 ggrepel ggside ggsignif glue insight paletteer parameters patchwork performance purrr rlang statsExpressions tidyr]; };
   ggstream = derive2 { name="ggstream"; version="0.1.0"; sha256="0d6g5916mfrg2srcqjhlpm4acp4g16vq9ks4x37yzkpr34vi5x7j"; depends=[dplyr forcats ggplot2 magrittr purrr tidyr]; };
   ggstudent = derive2 { name="ggstudent"; version="0.1.1-1"; sha256="0qs27b4lksaaaspavkycbzf8cfjxjli7xrfjby71sl0lca3fwm1g"; depends=[dplyr ggplot2]; };
   ggsurvey = derive2 { name="ggsurvey"; version="1.0.0"; sha256="1a50ac2546pxa35k59j4ih0csiyfjdgqfqwm3fb5ny7jx1mk0hmi"; depends=[dplyr ggplot2 hexbin survey]; };
-  ggsurvfit = derive2 { name="ggsurvfit"; version="1.0.0"; sha256="1gb7plyg49zv1y2v1bwvk8afziqjr34d1ilwwiazls3pgcnm8si3"; depends=[broom cli dplyr ggplot2 glue gtable patchwork rlang survival tidyr]; };
+  ggsurvfit = derive2 { name="ggsurvfit"; version="1.1.0"; sha256="0c3qv9gii3ndqip3nxs08bx7lvh6sm46mxz8nyi627zbgqmhwrr5"; depends=[broom cli dplyr ggplot2 glue gtable patchwork rlang survival tidyr]; };
   ggswissmaps = derive2 { name="ggswissmaps"; version="0.1.1"; sha256="0is48x6k2p5dgj9q4km0dv33a9pcpfhlai9vz295y3acpyrkmnn4"; depends=[ggplot2]; };
   ggtea = derive2 { name="ggtea"; version="0.1.1"; sha256="04g8g17ziw13rxjzkvgy5yd0z15ypxk0b8fq2y1vk8acsqr2dv11"; depends=[ggplot2]; };
   ggtern = derive2 { name="ggtern"; version="3.5.0"; sha256="0ymly9vdzk7rd4p27m1262bm7fvim989yswgw3mr9y0422dn8awa"; depends=[compositions ggplot2 gridExtra gtable hexbin latex2exp lattice MASS plyr proto rlang scales]; };
@@ -11023,6 +11203,7 @@ in with self; {
   ggthemeUL = derive2 { name="ggthemeUL"; version="0.1.3"; sha256="0nv11db6ds7xshh7dkpz1agfq0r8a9z3qvgd3m1icqcg3w60as0y"; depends=[ggplot2]; };
   ggthemes = derive2 { name="ggthemes"; version="5.1.0"; sha256="03mxigi34nd05wjigm8lpcbyhp4c8jxz7zm04qs27clbzsn1jj07"; depends=[ggplot2 lifecycle purrr scales stringr tibble]; };
   ggtibble = derive2 { name="ggtibble"; version="1.0.0"; sha256="0mqwcy5gyb2dwnpkjzkyg9b3jy6jh9ck1h8z9ghvfssr2mkd17zz"; depends=[dplyr ggplot2 glue knitr purrr rlang tibble tidyr vctrs]; };
+  ggtikz = derive2 { name="ggtikz"; version="0.1.3"; sha256="07af96qx8n4mal4jnnn8br3gf7bw22mk82c24csvqhki6q5w460z"; depends=[dplyr ggplot2 stringr tikzDevice]; };
   ggtrace = derive2 { name="ggtrace"; version="0.2.0"; sha256="1zzdamzxkwimzjhrjf5nijj0r94l03nabny5gjv49kqlncjicr7r"; depends=[ggplot2 rlang]; };
   ggtrendline = derive2 { name="ggtrendline"; version="1.0.3"; sha256="10ml5mdijh27b1js67zwaywn81bvz6aja1bn60k3rnr964nsljsj"; depends=[ggplot2]; };
   ggtricks = derive2 { name="ggtricks"; version="0.1.0"; sha256="1bpf3a5da8csqzwyqw0xqkbki4jgyhsybj2lw8zs00vcdsg9bhhv"; depends=[cli ggplot2]; };
@@ -11030,32 +11211,32 @@ in with self; {
   ggvenn = derive2 { name="ggvenn"; version="0.1.10"; sha256="0gl7z8hrn2wmmb59fvfv2hsw40p629aj086dv0kwlv162zqidqfd"; depends=[dplyr ggplot2]; };
   ggversa = derive2 { name="ggversa"; version="0.0.1"; sha256="0xqn8iznrm8q30pxwka88wi1z7lndi6lm12rq6ngcaxf294fbz01"; depends=[]; };
   ggvis = derive2 { name="ggvis"; version="0.4.9"; sha256="0bx1bg19l8nfwzwhnn2jn0b0lwcb781l6v9k5zfsx44wg22d3fb9"; depends=[assertthat dplyr htmltools jsonlite magrittr rlang shiny]; };
-  ggwordcloud = derive2 { name="ggwordcloud"; version="0.6.1"; sha256="1fbxpvylz0b911a4xg0ywqsgryfrshxlp18fvjg53xplxw1brfxp"; depends=[colorspace ggplot2 gridtext png Rcpp scales]; };
+  ggwordcloud = derive2 { name="ggwordcloud"; version="0.6.2"; sha256="0zl50rksfxiw3ab1j26w27rypygrr28yysflg507djamnc2371gj"; depends=[colorspace ggplot2 gridtext png Rcpp scales]; };
   ggx = derive2 { name="ggx"; version="0.1.1"; sha256="13yvckny2b7b7rhgi28xm8379paskin78wm5095s1ily9a2dxgkg"; depends=[ggplot2 sets]; };
-  gh = derive2 { name="gh"; version="1.4.0"; sha256="0wcbnnws472v1i6q012pbdxjpsd4clj6a2cscf73g6s2336rzik8"; depends=[cli gitcreds httr2 ini jsonlite rlang]; };
+  gh = derive2 { name="gh"; version="1.4.1"; sha256="1bwj8a2lfansyfx7fiwx2nv8yzhg1fi9ja1n6fk7dbzf64m3zgbn"; depends=[cli gitcreds glue httr2 ini jsonlite lifecycle rlang]; };
   ghapps = derive2 { name="ghapps"; version="1.0.0"; sha256="12z234lc7iy8svnm37ybj9ym0zd3jq5q9fng9h7dxdw2p9id7y30"; depends=[gh jose openssl]; };
-  ghclass = derive2 { name="ghclass"; version="0.2.1"; sha256="0jpfc2mjwi6i3bcrfjjl6k4im4m110pq2n00mij2n9czz6v2chla"; depends=[base64enc cli dplyr fs gh glue httr lubridate purrr rlang tibble whisker withr]; };
+  ghclass = derive2 { name="ghclass"; version="0.3.0"; sha256="10sq9rissf3w7rp8449vzigl7bj7y3iqx0vci2m559ihjmsdkn6i"; depends=[base64enc cli dplyr fs gh glue httr lifecycle lubridate purrr rlang tibble whisker withr]; };
   ghcm = derive2 { name="ghcm"; version="3.0.1"; sha256="18cp82bniz1mdrkfi6y6mrrjxz5jhkz4w21939c5wsz9mlp9d2bj"; depends=[CompQuadForm Rcpp]; };
   ghibli = derive2 { name="ghibli"; version="0.3.4"; sha256="1qj5cysgbh9hq7q17p3vvaqychg3cyhyzlv1hs4jqqlb9z2cz1gr"; depends=[prismatic]; };
   ghql = derive2 { name="ghql"; version="0.1.0"; sha256="19awg98r2hwwwwrwh0166y8ij1clf58vrf02i8fhhfzddx3an6bz"; depends=[crul graphql jsonlite R6]; };
   ghyp = derive2 { name="ghyp"; version="1.6.4"; sha256="0964gr8hmqrbg7rwm4hplxfqz2iccpir1dchmnqidkjqj8p9yy1d"; depends=[MASS numDeriv]; };
   ghypernet = derive2 { name="ghypernet"; version="1.1.0"; sha256="0k4w37vnhpanpa80la8rscgimnnzzid5v59109xfbbz1xxx1bb49"; depends=[dplyr extraDistr numbers pbmcapply plyr purrr reshape2 rlang rootSolve texreg]; };
-  giacR = derive2 { name="giacR"; version="1.0.0"; sha256="12a6cj93id0x1xz39bcg52v7g1d9yd7k2nz2wiiljw2xgbirjjqz"; depends=[chromote jsonlite pingr processx R6]; };
+  giacR = derive2 { name="giacR"; version="1.0.1"; sha256="0y7vcca2im6q70jxsjnf4a7jg66y66g941ad0d7iykw3c2cwx6g4"; depends=[chromote jsonlite pingr processx R6]; };
   gibasa = derive2 { name="gibasa"; version="1.1.0"; sha256="1biy8vqvbc3mbf2p8kffpifdagyv7k5p28kdwyp9hgp996lj5pqk"; depends=[dplyr Matrix purrr Rcpp RcppParallel readr rlang stringi]; };
   gibble = derive2 { name="gibble"; version="0.4.0"; sha256="19il4si7ch5jr7plr8qwv7jrc5kfkxmh5jrcdvbn688gxcnv7bs0"; depends=[dplyr rlang tibble]; };
-  gie = derive2 { name="gie"; version="0.1.1"; sha256="1r3limgw4mql9zjsc085shbds7gdr1zlcwphxk96chmzsc693sdr"; depends=[curl dplyr httr lubridate magrittr purrr stringr]; };
+  gie = derive2 { name="gie"; version="0.1.2"; sha256="0dgzmlza4mxghs3f9d81p03f91bz7v07af1d6zpfmaif3lzc2q77"; depends=[curl dplyr httr lubridate magrittr purrr stringr]; };
   gif = derive2 { name="gif"; version="0.1.1"; sha256="1gh6h3cxf27x6wa3g28fi8famb1vvf69qgq8qw3ypdamc58avmp9"; depends=[MASS Matrix Rcpp RcppEigen]; };
   gifski = derive2 { name="gifski"; version="1.12.0-2"; sha256="0ybv0fm4p23zfxnyjj97bym09r4brg9z26298ibxzl58j6r624r8"; depends=[]; };
   gifti = derive2 { name="gifti"; version="0.8.0"; sha256="1gb3x4rln9vayjd9fgzb434mm3dwcqgrvlv6rmh4b39mjfm73sly"; depends=[base64enc R_utils xml2]; };
   gigg = derive2 { name="gigg"; version="0.2.1"; sha256="0qb8w455a8wxc5ljmydq4xag2kbj5yk06an0pd9hd4k48wssg8la"; depends=[BH Rcpp RcppArmadillo]; };
   gim = derive2 { name="gim"; version="0.33.1"; sha256="1km8pyr1qfzffm33ihhlgvc0qxgxxfi161vkrz77d1b7jkpdyxjj"; depends=[numDeriv]; };
-  gimme = derive2 { name="gimme"; version="0.7-16"; sha256="0vimpnzvls4344wpx28iv2p91vsv74nkl0wwwgfnz6l5nfywdrqa"; depends=[data_tree igraph imputeTS lavaan MASS MIIVsem nloptr qgraph tseries]; };
+  gimme = derive2 { name="gimme"; version="0.7-17"; sha256="0pa0mag0w7gxx4ikqs3c3k8g3ppi1fz3qkxmq2vmd48k7fyy7n0x"; depends=[data_tree igraph imputeTS lavaan MASS MIIVsem nloptr qgraph tseries]; };
   gimmeTools = derive2 { name="gimmeTools"; version="0.1"; sha256="1g170rz3c3qx27yy67f7xab4gkm0pbbvwlwkcsczfxphad609ryl"; depends=[easycsv magrittr miniUI rhandsontable rintrojs rstudioapi shiny shinyjs shinyWidgets]; };
   gimms = derive2 { name="gimms"; version="1.2.2"; sha256="0dhvi05mpwyx6cpcyk2nzvgd6c8byd7cmrd9crx83lvfa03smpng"; depends=[curl Kendall ncdf4 raster zyp]; };
   giniVarCI = derive2 { name="giniVarCI"; version="0.0.1-3"; sha256="1yv97q6l8imd7z8zqykymmsx6905wrygj5l3arwdz9irfgvw55lx"; depends=[Rcpp]; };
   ginormal = derive2 { name="ginormal"; version="0.0.2"; sha256="0b37np2h03m82dhww9slnchm3dk4qwfmj6v7q13li788cw7whid1"; depends=[BAS]; };
   gips = derive2 { name="gips"; version="1.2.1"; sha256="0mvjgzqy3sqa5p1263v042k20j6hmlgli9llgq89y17d47njmfw4"; depends=[numbers permutations rlang]; };
-  giscoR = derive2 { name="giscoR"; version="0.4.1"; sha256="00hszk0pnf5i65sp12073gq1bfybpaazdigs6q5j0gyvaqcacbl9"; depends=[countrycode geojsonsf rappdirs sf]; };
+  giscoR = derive2 { name="giscoR"; version="0.5.0"; sha256="1cqc2mn4f6g18vb8cng0l11w1glyxk3k6sqsdzla0vbwlxs9d5z0"; depends=[countrycode geojsonsf jsonlite rappdirs sf]; };
   gistr = derive2 { name="gistr"; version="0.9.0"; sha256="0ac9ikrdg6i8xvlma0gizvsdva46408lk7hvsgkqirhy2ljy02hp"; depends=[assertthat crul dplyr httr jsonlite knitr magrittr rmarkdown]; };
   git2r = derive2 { name="git2r"; version="0.33.0"; sha256="158q1rzh9j0xb6l09j6banzvx8l26bhvip2z4lf6ymi21s6vcm8q"; depends=[]; };
   git2rdata = derive2 { name="git2rdata"; version="0.4.0"; sha256="05hr4ks2rdnjhbd5v865r9h6gnw149n5h6nwilw5xfx00gj86b9d"; depends=[assertthat git2r yaml]; };
@@ -11068,7 +11249,7 @@ in with self; {
   githubinstall = derive2 { name="githubinstall"; version="0.2.2"; sha256="0hqh86r2007hzdbm8rr0fwqhhsna7ji8sdgmdnrxkxraa5f2pfz3"; depends=[curl data_table devtools httr jsonlite mockery]; };
   githubr = derive2 { name="githubr"; version="0.9.1"; sha256="1h3yaz2snrlibl707rnv2l5y5r879dsprcr0a0vc8aliwdsmydvi"; depends=[dplyr gh gitcreds httr magrittr]; };
   gitignore = derive2 { name="gitignore"; version="0.1.6"; sha256="1cjfqbch614w75lxc8pw44aryxgcswbhydd48q10ch128x2gvw5a"; depends=[clipr clisymbols crayon curl glue here jsonlite purrr xfun]; };
-  gitlabr = derive2 { name="gitlabr"; version="2.0.1"; sha256="0h3md21ir0nw9n17y6sg8y7l4z2lk5f5bvz4q6v3cs7jn734imwb"; depends=[arpr base64enc dplyr httr magrittr purrr shiny stringr tibble]; };
+  gitlabr = derive2 { name="gitlabr"; version="2.1.0"; sha256="1mlzg17pvbxgq8n09lajsb4qyfyl4ksyn7c2v5vlda94brvgspkd"; depends=[arpr base64enc dplyr httr magrittr purrr stringr tibble tidyr]; };
   gitlink = derive2 { name="gitlink"; version="0.1.3"; sha256="1g34cyx35wlpq42alsayk69x708zxqgvbdndb7j6n1q0rm4vncvd"; depends=[htmltools rlang]; };
   gitr = derive2 { name="gitr"; version="0.0.1"; sha256="09l22wv2r7l1ax17y1q1xmasibyqm71jk0nyvmvlawavkw6by658"; depends=[]; };
   gittargets = derive2 { name="gittargets"; version="0.0.7"; sha256="0kgr3rcy261zlsc4a5sqvar6kwb23wcfdwv2rpjcfwdvghz3afzc"; depends=[callr cli data_table gert processx targets tibble uuid]; };
@@ -11078,7 +11259,6 @@ in with self; {
   gkgraphR = derive2 { name="gkgraphR"; version="1.0.2"; sha256="1sb52hhpwm3bq7rn2xdq5vly6z1c5yab9a26xzgj3c5s47vk02pa"; depends=[httr ISOcodes jsonlite]; };
   gkmSVM = derive2 { name="gkmSVM"; version="0.83.0"; sha256="1bg9jw4ra76j132lkr0p5m2xlr952fdij1hn6f1v7g687l55m0k5"; depends=[kernlab Rcpp ROCR seqinr]; };
   glamlasso = derive2 { name="glamlasso"; version="3.0.1"; sha256="0vzkszam7nz40v8pxq06jn3fgwa1nd3s485hgfkcv7r8pg2rp56q"; depends=[Rcpp RcppArmadillo]; };
-  glancedata = derive2 { name="glancedata"; version="1.0.1"; sha256="01j7syjn33pc7hq032nmyak38wn35yv3n7is9g2ggs14kj3xqb0c"; depends=[dplyr forcats GGally ggplot2 gridExtra openxlsx purrr tibble tidyr]; };
   glarma = derive2 { name="glarma"; version="1.6-0"; sha256="0n0mv4xvh5q3y383cs224x6r608ciw4822pkanvmcjsc9zl0z1ar"; depends=[MASS]; };
   glassdoor = derive2 { name="glassdoor"; version="0.8.1"; sha256="0r85k1fyk8979ahfmd4vmzkhyvrlnpkgjwg1yi7092kpx8877lj0"; depends=[httr]; };
   glasso = derive2 { name="glasso"; version="1.11"; sha256="02p3612rpydk195n2qr77lp1j2w8zsw1ckkk98c8angm4r5q8dsc"; depends=[]; };
@@ -11089,12 +11269,13 @@ in with self; {
   gld = derive2 { name="gld"; version="2.6.6"; sha256="1i7xpyxd7r1fkjy9zkzd3rfsnb35v5c5fkafs1zd9d8729wfj8za"; depends=[e1071 lmom]; };
   gldrm = derive2 { name="gldrm"; version="1.6"; sha256="02xgkrh2wybf9prcrb55w5ingf6x8f5xzdcnh2fv4skr0ixn0gp8"; depends=[]; };
   glinternet = derive2 { name="glinternet"; version="1.0.12"; sha256="0aphdscj0s6kqxlkgqkw2d6snrylz6hiis6307pl8ldh7q5cvm33"; depends=[]; };
-  glinvci = derive2 { name="glinvci"; version="1.2.2"; sha256="0h8fv30gv4807yflymrla0hiy56sxvdm1530k1ag0gbq067i1sz8"; depends=[ape BB generics lbfgsb3c numDeriv optimx plyr rlang]; };
+  glinvci = derive2 { name="glinvci"; version="1.2.4"; sha256="050rpdyp3xawkyjxcimjpbvn24677whlfhfmkyxijz7zqnvl7i8p"; depends=[ape BB generics lbfgsb3c numDeriv optimx plyr rlang]; };
   gllm = derive2 { name="gllm"; version="0.38"; sha256="06sq7yk11rbqj8i900ss987fg9b232cirjxhdm1yl9xqz4inxvlg"; depends=[]; };
   gllvm = derive2 { name="gllvm"; version="1.4.3"; sha256="1k3yw1flqzj151kqx8wyh54a7crh62ya700x5n4989ngx5071dv3"; depends=[alabama fishMod MASS Matrix mgcv mvabund nloptr RcppEigen statmod TMB]; };
   glm_deploy = derive2 { name="glm.deploy"; version="1.0.4"; sha256="1akklvbhz2pp0sv1hax1jq0s9ajbfv1597z643gh5l9hwizj2h9m"; depends=[Rcpp]; };
   glm_predict = derive2 { name="glm.predict"; version="4.3-0"; sha256="18cs6z6573vq8sdjb4kgz8kahizs9njdbip4cm1dk63ldjjrl0kf"; depends=[AER dfidx lme4 MASS mlogit nnet survey survival VGAM]; };
   glm2 = derive2 { name="glm2"; version="1.2.1"; sha256="1byqlvpls23gzy7xlbs1kgfr4bsrmsrpc8rzzacf9czap1nlw39y"; depends=[]; };
+  glmMisrep = derive2 { name="glmMisrep"; version="0.1.1"; sha256="0ymcgn42r3n6fhfp7rmkz033bmnqdshx71957zvbrmxjphkmr37b"; depends=[MASS poisson_glm_mix]; };
   glmbb = derive2 { name="glmbb"; version="0.5-1"; sha256="1jy77z5fr781rm5mx6kszwi2zlvnpfwi24fn9vw1kza4jzcw9pjw"; depends=[digest]; };
   glmc = derive2 { name="glmc"; version="0.3-1"; sha256="0x6jk2l5rpjkp5x815gpiwv8maa7mhmy6m8gaxbv1cbn3zyccynn"; depends=[emplik]; };
   glme = derive2 { name="glme"; version="0.1.0"; sha256="1ysg1yx0pdyxlbkn36023230yky8wj3rvi3skrdqdjbnnyzhn49b"; depends=[dplyr nlme reshape]; };
@@ -11102,7 +11283,7 @@ in with self; {
   glmglrt = derive2 { name="glmglrt"; version="0.2.2"; sha256="1954ywshnqzr7h77wshf63y3zx3ra8mrfabg5dqjhkgv4rsk3h1y"; depends=[MASS parameters]; };
   glmlep = derive2 { name="glmlep"; version="0.2"; sha256="0rq2vxbr732r725pn8qdvppxcrhjhyvlr550svfgy1inq985c1w4"; depends=[]; };
   glmm = derive2 { name="glmm"; version="1.4.4"; sha256="0v8iill3503piyx3wjxd602hs6hgz9818ipqlvg34963hh4b4ixi"; depends=[doParallel foreach itertools Matrix mvtnorm trust]; };
-  glmm_hp = derive2 { name="glmm.hp"; version="0.1-2"; sha256="14sp54h6lrn4bfi4n3ilp9asz442lcvy72yhcp5pjyynld2wm3c5"; depends=[ggplot2 lme4 MuMIn vegan]; };
+  glmm_hp = derive2 { name="glmm.hp"; version="0.1-3"; sha256="07pqwgqdr2a1mxzh7sca6n0cklic4mmyp3vr6yk0485780ysh0wy"; depends=[ggplot2 lme4 MuMIn vegan]; };
   glmmEP = derive2 { name="glmmEP"; version="1.0-3.1"; sha256="0fql85m0mxn58jh3mgrcw56bb4dx7amrz39ngqrljwi5pv5i7aj4"; depends=[lme4 matrixcalc]; };
   glmmLasso = derive2 { name="glmmLasso"; version="1.6.3"; sha256="1b2wkmsmnhmkql0kin56faf64abc6hijrs6dlz8qvwcbqpgbpcig"; depends=[Matrix minqa Rcpp RcppEigen]; };
   glmmML = derive2 { name="glmmML"; version="1.1.6"; sha256="0n3r1cpz7rgiighykbjfw1k5s1xgr1vdli960hmaadyy61jza417"; depends=[]; };
@@ -11110,19 +11291,19 @@ in with self; {
   glmmSeq = derive2 { name="glmmSeq"; version="0.5.5"; sha256="182pgwqqbgpkcvapkps7ahxa4ppic44j10081q0v9lp2cjdiv4qy"; depends=[car ggplot2 ggpubr glmmTMB lme4 lmerTest MASS pbapply pbmcapply plotly qvalue]; };
   glmmTMB = derive2 { name="glmmTMB"; version="1.1.9"; sha256="0qw9ww3l506vivs6k8v5cdiv6lf9a32f0d1iq6bizxxh0ywsdmck"; depends=[lme4 Matrix mgcv nlme numDeriv RcppEigen TMB]; };
   glmmfields = derive2 { name="glmmfields"; version="0.1.8"; sha256="0nn328dn7fbh3h0wnl4kahwrbq9ddr3hyqq7930raa0abimg8ykq"; depends=[assertthat BH broom broom_mixed cluster dplyr forcats ggplot2 loo mvtnorm nlme Rcpp RcppEigen RcppParallel reshape2 rstan rstantools StanHeaders tibble]; };
-  glmmrBase = derive2 { name="glmmrBase"; version="0.7.1"; sha256="1g4hs75z5z5wp2jkwvpigyqc0lzmj47jasbiv4pjxvfmipj8mz3b"; depends=[BH Matrix R6 Rcpp RcppEigen RcppParallel rstan rstantools SparseChol StanHeaders]; };
-  glmmrOptim = derive2 { name="glmmrOptim"; version="0.3.4"; sha256="0z3l7z6zvqf1ykb60crli30h2iaykdbzzbx1kmf86axp05d2rfbh"; depends=[BH digest glmmrBase Matrix Rcpp RcppEigen RcppProgress rminqa SparseChol]; };
+  glmmrBase = derive2 { name="glmmrBase"; version="0.8.1"; sha256="1dam3dp32s3ybb656sfczba9vlan6bsd9n8x73p4faikfpjgyysb"; depends=[BH Matrix R6 Rcpp RcppEigen RcppParallel rstan rstantools SparseChol StanHeaders]; };
+  glmmrOptim = derive2 { name="glmmrOptim"; version="0.3.5"; sha256="0aic2wc1f1qdj2g9g7zsaz4hckrgpy7w293harpjmq9ll3gxpfcz"; depends=[BH digest glmmrBase Matrix Rcpp RcppEigen RcppProgress rminqa SparseChol]; };
   glmnet = derive2 { name="glmnet"; version="4.1-8"; sha256="1znw1p1mi7nv39l7albcg6sfxj7a1jyjw85hb3ginv870z7fbnqx"; depends=[foreach Matrix Rcpp RcppEigen shape survival]; };
   glmnetSE = derive2 { name="glmnetSE"; version="0.0.1"; sha256="0qj3c8qrx3vl0dr9prravfjwzqv1yfi771xfss9d44wlvjz5f4gp"; depends=[boot glmnet]; };
   glmnetUtils = derive2 { name="glmnetUtils"; version="1.1.9"; sha256="0rh07i9j6bxiqcl84d8jnn7dzqdwfdzak7w8bf4j4521r24mwm01"; depends=[glmnet Matrix]; };
   glmnetcr = derive2 { name="glmnetcr"; version="1.0.6"; sha256="0cs0yj2js0920iggcw2vci5y9hnsm3hd7wpd7mwnx8mszwrklawg"; depends=[glmnet]; };
-  glmnetr = derive2 { name="glmnetr"; version="0.4-4"; sha256="0z4yr54w3ykpj6x1da5mdics06rs4fb4i0zbq63wr4imkjvmph5x"; depends=[glmnet Matrix mlrMBO ParamHelpers randomForestSRC rpart smoof survival torch xgboost]; };
+  glmnetr = derive2 { name="glmnetr"; version="0.5-1"; sha256="03jinkwfz8v7cbp0jj4hhr7sgn71giqin3bxs80hary4vx79vwsy"; depends=[aorsf DiceKriging glmnet Matrix mlrMBO ParamHelpers randomForestSRC rgenoud rpart smoof survival torch xgboost]; };
   glmpath = derive2 { name="glmpath"; version="0.98"; sha256="1jbiqqd1s93i941dhyyx50zlgwavhyjfw8bx13z4gz05rdvi4gn8"; depends=[survival]; };
   glmpathcr = derive2 { name="glmpathcr"; version="1.0.10"; sha256="03kjj1wcx8p2jcdqb70fsdz2ljiz37xaaahqadawr3vjs7x441q3"; depends=[glmpath]; };
   glmpca = derive2 { name="glmpca"; version="0.2.0"; sha256="02xjf0gg52925hw9nw2j0znfmzfzfwbv0fxjl9d2fy9j63drr2h4"; depends=[MASS]; };
   glmpermu = derive2 { name="glmpermu"; version="0.0.1"; sha256="09jm71izzdj4bhhd3fmcxjwc1b6q9qhbynx9bzm1g18zwr8kck7k"; depends=[]; };
   glmtlp = derive2 { name="glmtlp"; version="2.0.1"; sha256="0ax3jhbib75gzp5a2y4nj80qss4qmn65rra8bsnkmwgcn4qg8xja"; depends=[doParallel foreach ggplot2]; };
-  glmtoolbox = derive2 { name="glmtoolbox"; version="0.1.10"; sha256="0xkjz6y4dfnickcnb584xh3z3jrjclji6fsal2si70203n09p2gs"; depends=[Formula MASS numDeriv Rfast statmod SuppDists]; };
+  glmtoolbox = derive2 { name="glmtoolbox"; version="0.1.11"; sha256="1d7nc2yr01wp2gjd6jx5i51z3vx5ppc625159l1rxp630d0xxq8f"; depends=[Formula MASS numDeriv Rfast statmod SuppDists]; };
   glmtrans = derive2 { name="glmtrans"; version="2.0.0"; sha256="10d9z1rrjnxkw3nmim01ql5yfn1w62sncgclmprznr5kbna49yj3"; depends=[assertthat caret doParallel foreach formatR ggplot2 glmnet]; };
   glmtree = derive2 { name="glmtree"; version="0.3.1"; sha256="0d0i9qhmib0rr15jm9kwl9jcfwhsagdr56jqgan5sr0hb4wbzzvw"; depends=[caret dplyr magrittr partykit]; };
   glmulti = derive2 { name="glmulti"; version="1.0.8"; sha256="0zviahj99645s1xs2f9z7rnv95x4rdz7mfwzy3qjfw46yqpfj5cn"; depends=[leaps rJava]; };
@@ -11137,7 +11318,7 @@ in with self; {
   glober = derive2 { name="glober"; version="1.0"; sha256="05syd93995pcvzvrwd8hchs2dgklv627a7pias806vsbs8xbp2vg"; depends=[fda genlasso ggplot2 Matrix plot3D]; };
   glogis = derive2 { name="glogis"; version="1.0-2"; sha256="15zk11p10v8fmqvmg9gdhxa0h6s5axvmdkxkpwrg8sgp2ln94fr9"; depends=[sandwich zoo]; };
   glossary = derive2 { name="glossary"; version="1.0.0"; sha256="0p3sn30gpi1zbh498iv08n55sjpls0120cxcg9dkz0yjs60y2snl"; depends=[kableExtra knitr markdown rvest xml2 yaml]; };
-  glossr = derive2 { name="glossr"; version="0.7.0"; sha256="1wh6gryarmlv1b8ca12h81m94wjlr0kkjr2ydlrwdyzr2cxhxav5"; depends=[cli dplyr flextable knitr magrittr purrr rlang stringr tibble tidyr]; };
+  glossr = derive2 { name="glossr"; version="0.8.0"; sha256="1ip7s2whnid0ycdd554ncyvnazd2g7zmv16qfgfhjb0iy8ny3mc0"; depends=[cli dplyr knitr purrr rlang systemfonts tibble yaml]; };
   glottospace = derive2 { name="glottospace"; version="0.0.112"; sha256="1bgyxki16mh38pw1476hq9f9r2899vs6ax7dsyrn1xzcad6x91y3"; depends=[dplyr ggplot2 magrittr purrr readxl rlang rnaturalearth rnaturalearthdata sf tibble tidyr tmap units writexl]; };
   glow = derive2 { name="glow"; version="0.11.0"; sha256="1q8zci8jv71xzcxsg9b0h04mx11ykpsh4lnvkgg74zfsrf3sib0f"; depends=[ggplot2 R6 Rcpp RcppEigen RcppParallel]; };
   glpkAPI = derive2 { name="glpkAPI"; version="1.3.4"; sha256="1cr40jksm27h0j1j0q1ngcf4cbrhrjz48m6z3c3jns8h17h8g8qh"; depends=[]; };
@@ -11163,6 +11344,7 @@ in with self; {
   gmpoly = derive2 { name="gmpoly"; version="1.1.0"; sha256="0rlmwlxyg9b8gqyrc7mbqv7x86v9pqj51pd847raq7x1smjnz1kg"; depends=[english gmp mvp purrr]; };
   gms = derive2 { name="gms"; version="0.4.0"; sha256="1m7bhy4vsz6l09pal9ibjlskmbyjmc29hqwjim1x8yansd5bxpzv"; depends=[dplyr rlang stringr yaml]; };
   gmt = derive2 { name="gmt"; version="2.0.3"; sha256="1clnhwxn1z1iyzx9ps9rkfv2xqdyqc73mcc77ysmlg5cncvm1hac"; depends=[]; };
+  gmtFD = derive2 { name="gmtFD"; version="0.1.0"; sha256="0qayzxy2aqikndcmk25m26cjxdqf62d4pdk9aiclhw4acvq9awvz"; depends=[doParallel fda foreach GFDmcv MASS Matrix Rcpp RcppArmadillo]; };
   gmvarkit = derive2 { name="gmvarkit"; version="2.1.2"; sha256="06w822gq2zigynzmqndd3wilqyh1clbx2a52c9x5mg9km4pp95mb"; depends=[Brobdingnag gsl mvnfast pbapply]; };
   gmvjoint = derive2 { name="gmvjoint"; version="0.4.0"; sha256="1gycj6b51irzkv2rg6vvlanaiar8z54pqwd9qswlrw48wk2q074w"; depends=[glmmTMB MASS mvtnorm pracma Rcpp RcppArmadillo statmod survival xtable]; };
   gmwmx = derive2 { name="gmwmx"; version="1.0.3"; sha256="1jp3jjg0znvqmir83ygvi1nnws6xs29cfccd79vbk8702k4i9y61"; depends=[fs longmemo ltsa Matrix Rcpp RcppArmadillo rjson stringi wv]; };
@@ -11177,10 +11359,10 @@ in with self; {
   gnumeric = derive2 { name="gnumeric"; version="0.7-10"; sha256="0x8w35wj81yx7ri2jvkafkmg8d68il6m5fl6gh97g9rg5w0xkz7n"; depends=[XML]; };
   go2bigq = derive2 { name="go2bigq"; version="2.0.1"; sha256="0xz6im5gc214m11w70m83mnas09sql9i0lvbgyfy0qvizn6zhyl3"; depends=[gmp Rmpfr]; };
   goalp = derive2 { name="goalp"; version="0.3.1"; sha256="1xr9bgizzsjr4nn41q1zi049wg9cw6qril60bri96x0xgc00qdpz"; depends=[lpSolve]; };
-  goeveg = derive2 { name="goeveg"; version="0.7.4"; sha256="0ckklmjbyfyz2ng9rz5aiy7c6klw1gb1sqs826x2q2rbbbwy96cx"; depends=[fields Hmisc mgcv vegan]; };
+  goat = derive2 { name="goat"; version="1.0"; sha256="154x643dlh614nasx8q77rksp0q9n19a6qnmc5gki0pxv6ysgyj6"; depends=[data_table dplyr ggplot2 ggraph igraph Matrix MonoPoly pheatmap Rcpp readxl tibble tidyr tidyselect treemap vctrs writexl]; };
+  goeveg = derive2 { name="goeveg"; version="0.7.5"; sha256="1pdbl044xjganm8y7jg3j877bj1rinsr6k22b5b8ngm2gbdmril3"; depends=[fields Hmisc mgcv vegan]; };
   gofCopula = derive2 { name="gofCopula"; version="0.4-1"; sha256="17bdrn8xsqjz64caa5wdigkv798i18gc2f9jiin1bz840bqn1abg"; depends=[copula crayon doSNOW foreach MASS numDeriv progress R_utils SparseGrid VineCopula yarrr]; };
   gofar = derive2 { name="gofar"; version="0.1"; sha256="10c1qgmkdhzxk9m2sd0xxww453y9lf5vjsrbmrbzbln91i6svy8j"; depends=[glmnet magrittr MASS Rcpp RcppArmadillo rrpack]; };
-  gofastr = derive2 { name="gofastr"; version="0.3.0"; sha256="02jn4xbbafl7siwvkqns1818wmw813x9cvqfcnpnmcippiqhrb0b"; depends=[data_table quanteda slam SnowballC tm]; };
   gofcat = derive2 { name="gofcat"; version="0.1.2"; sha256="0jkkavws3p336i3gzlkd24q467zd1clfndcpimwc6scy8zh67q9l"; depends=[crayon epiR Matrix reshape stringr VGAM]; };
   gofedf = derive2 { name="gofedf"; version="0.1.0"; sha256="12y6lhrpldj46adn3a7jz4snx79y9xdrzbgr5qa4gjl00w3nx6cn"; depends=[CompQuadForm glm2 MASS statmod]; };
   goffda = derive2 { name="goffda"; version="0.1.2"; sha256="0d4w2rz7024j4vky1nynqfanfgp8rvgivl2p6b8l2ws98brlhy24"; depends=[fda_usc glmnet ks Rcpp RcppArmadillo]; };
@@ -11188,15 +11370,15 @@ in with self; {
   goft = derive2 { name="goft"; version="1.3.6"; sha256="0ag1bks44hm787sgbab70ab9q0dzbfsx70ldprafjx92gg1cqv5s"; depends=[fitdistrplus sn]; };
   goftest = derive2 { name="goftest"; version="1.2-3"; sha256="06bz6k7smr4jbvzmb73qc5fkf4my59w5gbl18wlmpkkymsv78prs"; depends=[]; };
   gogarch = derive2 { name="gogarch"; version="0.7-5"; sha256="01ikd7ngzgyrgkr637cxnj5xqmdmsj6szcr9f8wmrxvly0b3qf1i"; depends=[fastICA fGarch]; };
-  goldfish = derive2 { name="goldfish"; version="1.6.4"; sha256="1syv7flh18cm1ypz0fj91qnjkc7zlzj4rkrj4cxag231jbqgzyd1"; depends=[changepoint generics ggplot2 Rcpp RcppArmadillo tibble]; };
+  goldfish = derive2 { name="goldfish"; version="1.6.8"; sha256="1c49xmn29c1qvx2rmhyvwy5ql2b4zsk4chrv8bni6lwiprib5d9q"; depends=[changepoint generics ggplot2 Rcpp RcppArmadillo rlang tibble]; };
   golem = derive2 { name="golem"; version="0.4.1"; sha256="0pcvp2rmwzvl0wi73fp9pmjq1rrknq2h45sfvbjhmbz8ilvr8zpa"; depends=[attempt config here htmltools rlang shiny yaml]; };
   gomms = derive2 { name="gomms"; version="1.0"; sha256="1i9d5y28wrhal990x7xxy99v3z9y2pzlakj7wnynd3dpx5pqr0jj"; depends=[]; };
   gompertztrunc = derive2 { name="gompertztrunc"; version="0.1.2"; sha256="0m1xnjn5fm3s475gjqpkdc589z3qbplzjd4f8ay3sy38pg8j48gz"; depends=[broom cowplot data_table dplyr flexsurv ggplot2 ggsci magrittr modelr rlang stringr tibble tidyr]; };
   gontr = derive2 { name="gontr"; version="1.1.0"; sha256="0asvpc3nizcn7cqdxr1j9hvhprmrazd8c7a2svhmln4vg9x1zzkp"; depends=[]; };
-  good = derive2 { name="good"; version="1.0.1"; sha256="0lgp8kpdiaprq78fzny5c344m2s1vb24y9x9m8rkg1kd769h56pv"; depends=[copula maxLik plyr]; };
-  goodpractice = derive2 { name="goodpractice"; version="1.0.4"; sha256="039ivcb54v58fic8sy445s053yii34nzb170yn3fz6662ik8m8ax"; depends=[clisymbols covr crayon cyclocomp desc jsonlite lintr praise rcmdcheck rstudioapi whoami withr xml2 xmlparsedata]; };
+  good = derive2 { name="good"; version="1.0.2"; sha256="06lzr8kb0pb5k10md23dlzkzx4qk8ajriwinj4mqhgd51manm3nk"; depends=[copula maxLik plyr]; };
+  goodpractice = derive2 { name="goodpractice"; version="1.0.5"; sha256="1sz5np8lgs2s1rlswrjfw20x8c9lxdz1r0wxybrgakzlfpj1i85w"; depends=[clisymbols covr crayon cyclocomp desc jsonlite lintr praise rcmdcheck rstudioapi whoami withr xml2 xmlparsedata]; };
   googleAnalyticsR = derive2 { name="googleAnalyticsR"; version="1.1.0"; sha256="0js73jwdsk3bgak61na0sqadjmb74b88rfgi0fxbgafz68xg5rgr"; depends=[assertthat cli dplyr googleAuthR httr jsonlite magrittr measurementProtocol memoise purrr rlang tibble tidyr usethis whisker]; };
-  googleAuthR = derive2 { name="googleAuthR"; version="2.0.1"; sha256="0jx1p2yq9mm82bzw1hy75p30rhcmmadkh9qby9s1c5ahq8xsc6cv"; depends=[assertthat cli digest gargle httr jsonlite memoise rlang]; };
+  googleAuthR = derive2 { name="googleAuthR"; version="2.0.2"; sha256="15ir747qmxdcfqvdpj48famrgd1c2r1l3gfawnv55akqbxdwhmgx"; depends=[assertthat cli digest gargle httr jsonlite memoise rlang]; };
   googleCloudRunner = derive2 { name="googleCloudRunner"; version="0.5.0"; sha256="14nynl56gc8aj03wxbj243fz80j1wxd93ywfaivy1cgyfi3rid6z"; depends=[assertthat cli curl googleAuthR googleCloudStorageR googlePubsubR httr jose jsonlite openssl plumber usethis withr yaml]; };
   googleCloudStorageR = derive2 { name="googleCloudStorageR"; version="0.7.0"; sha256="1yp8h87i17kald9pkr9icxd918n5vywk0h9q8lclip2slx9bry1p"; depends=[assertthat cli curl googleAuthR httr jsonlite openssl yaml zip]; };
   googleCloudVisionR = derive2 { name="googleCloudVisionR"; version="0.2.0"; sha256="1n4gkmnwp9wadxz1izggxnpcpm4bz3imhq5y3i2szr8zwafcqqjv"; depends=[data_table glue googleAuthR jsonlite purrr]; };
@@ -11207,19 +11389,19 @@ in with self; {
   googlePublicData = derive2 { name="googlePublicData"; version="0.16.1"; sha256="15hyslpqvncg21q581h061rfyg99y8lavqw1x8hzl7xzd49bn9r5"; depends=[readxl XML]; };
   googlePubsubR = derive2 { name="googlePubsubR"; version="0.0.4"; sha256="1f9nd93x2z82jwjw2nha2czcnix7r97h1g3llgfx1b970gsm3pk1"; depends=[cli googleAuthR magrittr]; };
   googleTagManageR = derive2 { name="googleTagManageR"; version="0.2.0"; sha256="0ia3ndz5vf3bc5kckyxwn71nngml6p67v8r3n6h79s12xn9jzylg"; depends=[assertthat dplyr future googleAuthR httr jsonlite purrr]; };
-  googleVis = derive2 { name="googleVis"; version="0.7.1"; sha256="067jcwbq0a06wbpaa46ngjs3hkpvz8q6v8019f15yr58kq2k2n9k"; depends=[jsonlite]; };
+  googleVis = derive2 { name="googleVis"; version="0.7.3"; sha256="0swcf2vl3mvp2bsd7nra917pajyh27j2k3vmmrb6n8g55mazyisn"; depends=[jsonlite]; };
   googleadsR = derive2 { name="googleadsR"; version="1.0.0"; sha256="02zr7y485bpp11z9njcb3c07aw454pvf8zsdqb4qswps6l1ni0gc"; depends=[jsonlite]; };
   googledrive = derive2 { name="googledrive"; version="2.1.1"; sha256="10pv70nvsqh1yc12g5fj7avfihjzpj02m8s9f8sb0c1np9s4z2qb"; depends=[cli gargle glue httr jsonlite lifecycle magrittr pillar purrr rlang tibble uuid vctrs withr]; };
   googlenlp = derive2 { name="googlenlp"; version="0.2.0"; sha256="0d0g18i3im2s5f14k69ym3vwf9a7zkaval3nwrip97xcl6kf4x9h"; depends=[dplyr httr jsonlite purrr readr rlang]; };
   googler = derive2 { name="googler"; version="0.0.1"; sha256="1aayji3ncqxl58k29d93dbx05s9rp9bc63fl2cpl1cys7gilblxx"; depends=[jsonlite tibble]; };
   googlesheets4 = derive2 { name="googlesheets4"; version="1.1.1"; sha256="1kzwhs9zrx1i4kqhdqrkzyhnwx25j8j2pcg7ja2dxfalihs67k65"; depends=[cellranger cli curl gargle glue googledrive httr ids lifecycle magrittr purrr rematch2 rlang tibble vctrs withr]; };
-  googletraffic = derive2 { name="googletraffic"; version="0.1.5"; sha256="0r9v0nrn21khsirh12qn634qzcd4mgq36ax27gx087a6i97zxwnl"; depends=[ColorNameR dplyr googleway htmlwidgets plotwidgets png raster schemr sf sp stringr webshot2]; };
+  googletraffic = derive2 { name="googletraffic"; version="0.1.6"; sha256="18hk7rg60s8bbr0kn0mi1j7r8iycjfmpnmp88lslzvhq0d1mvaxx"; depends=[ColorNameR dplyr googleway htmlwidgets plotwidgets png raster schemr sf sp stringr webshot2]; };
   googleway = derive2 { name="googleway"; version="2.7.8"; sha256="17mihhyavl07aiyhm5pcsihmwznbdca5yfcaq4qk8kiyh81nnml0"; depends=[curl googlePolylines htmltools htmlwidgets jpeg jqr jsonlite magrittr scales shiny viridisLite]; };
   gor = derive2 { name="gor"; version="1.0"; sha256="05wjmp8r58jv0ppq54vjw8xbwdlmksh5zch8cjm3ss20fsvqxdsj"; depends=[igraph]; };
   goric = derive2 { name="goric"; version="1.1-2"; sha256="004nx29wz191rp0naa73r762bf6lap931lwrxifhz7izl47jzfj0"; depends=[MASS Matrix mvtnorm nlme quadprog]; };
   gorica = derive2 { name="gorica"; version="0.1.4"; sha256="1r8dg9wcqxd53zm27mf0554x2zlsclbfmqqwjbkywa3np6gi358y"; depends=[bain lavaan limSolve lme4 MASS mvtnorm quadprog]; };
-  gosset = derive2 { name="gosset"; version="1.0"; sha256="1as3p5mpkhg205ssxzf26xn84b8abgzp413dw2fganidh7i9dmff"; depends=[BradleyTerry2 DescTools ggparty ggplot2 ggrepel partykit patchwork PlackettLuce psychotools qvcalc tidyr]; };
-  gotop = derive2 { name="gotop"; version="0.1.2"; sha256="1dvcgz7ha637ixjqmgcwhvl3f9kpx4fdq8im40iz8xwnxqwmrlgx"; depends=[htmltools jsonlite]; };
+  gosset = derive2 { name="gosset"; version="1.3"; sha256="0k50vjfrqqkw9anq012pbq861lnq3ihjh310rp12xyvzbzf6d6c7"; depends=[BradleyTerry2 DescTools ggparty ggplot2 ggrepel partykit patchwork PlackettLuce psychotools qvcalc tidyr]; };
+  gotop = derive2 { name="gotop"; version="0.1.4"; sha256="0q65qvzg5f36hp1f3yigmysy83x40jgz4c1ksch56b7svmfbrq0s"; depends=[htmltools jsonlite]; };
   govStatJPN = derive2 { name="govStatJPN"; version="0.1"; sha256="03sywa7rl5rblvv370mfszz5ngp850qf32yydy1fdx10lv5amrfl"; depends=[]; };
   govdown = derive2 { name="govdown"; version="0.10.1"; sha256="00ndpp3v6z2497xlhhc92pa7w93qk9x8m6ibswj9dfh978d07028"; depends=[rmarkdown]; };
   govinfoR = derive2 { name="govinfoR"; version="0.0.3"; sha256="0rxlk5wib9l03g7lm97z3n3dcywzs86h8yv9hh0w0f4h0ya9zcj4"; depends=[cli dplyr httr2 janitor lubridate stringr tidyr]; };
@@ -11229,9 +11411,9 @@ in with self; {
   gp = derive2 { name="gp"; version="1.1"; sha256="0w5wcjzgjajfx29whqkn3xv3v9bn4q0almmmsb7qw79dnbv5c16s"; depends=[Rfast RNGforGPD]; };
   gpairs = derive2 { name="gpairs"; version="1.3.3"; sha256="08m1ydrr239vnhjbl47mng3i2w9bqmd8fijrwsraq5ysvn826n27"; depends=[barcode colorspace lattice MASS vcd]; };
   gpbStat = derive2 { name="gpbStat"; version="0.4.3"; sha256="07zjc033jazpmax7x96zd5g4z1rz9qmmfwzssl7p3d9ff7aiayvx"; depends=[dplyr magrittr purrr tibble tidyr]; };
-  gpboost = derive2 { name="gpboost"; version="1.3.0"; sha256="0m79rm97n7hg7qjxcvywc0kk9dq56xsagci4jbfy41q9flrzilnh"; depends=[data_table Matrix R6 RJSONIO]; };
+  gpboost = derive2 { name="gpboost"; version="1.5.0"; sha256="0wmf0vddb9w3sx2lsy9m80d7c52xz6sdmx3fdal8g8n898z1rk8h"; depends=[data_table Matrix R6 RJSONIO]; };
   gpg = derive2 { name="gpg"; version="1.2.9"; sha256="0k2f00l400dcxa8akhy48a34w7nhbdmpq3nz6lbwp0cqa7aj678z"; depends=[askpass curl]; };
-  gpindex = derive2 { name="gpindex"; version="0.6.0"; sha256="187h9bz9g8ca81jd00sppwckq94l1c27j5plq1hw8iirfjm1xap7"; depends=[]; };
+  gpindex = derive2 { name="gpindex"; version="0.6.1"; sha256="1xl2hcw3qpqwlg655ajg8snyp41s5cb9kxridysch7fjmyj7iymy"; depends=[]; };
   gpk = derive2 { name="gpk"; version="1.0"; sha256="1zfhkqyypb24mhbj2zi9qy3gw0kqxvlp8j5ni3zm7k5rz1bnrygg"; depends=[]; };
   gpkg = derive2 { name="gpkg"; version="0.0.8"; sha256="0bx6mjvbzlli3fykrakkm8554hi4arf1ym1z9gcagybcjp4dbia1"; depends=[DBI]; };
   gplite = derive2 { name="gplite"; version="0.13.0"; sha256="0nxms34dfmbi3rz6x0yz8pn9a1v6w4k2w6jz1qrbqclmlg66g8vs"; depends=[Matrix Rcpp RcppArmadillo]; };
@@ -11243,8 +11425,10 @@ in with self; {
   gps = derive2 { name="gps"; version="1.2"; sha256="06vz0vs95z7cbmgsf71114d2gaqx7bn4zl6m33qg22aflna4shsr"; depends=[Matrix]; };
   gps_track = derive2 { name="gps.track"; version="1.0.0"; sha256="064l4pi44n3vwwz04rd6fs74lja2yvsr38nf911w7ighafp7s7ph"; depends=[nngeo raster sf sp]; };
   gptoolsStan = derive2 { name="gptoolsStan"; version="0.1.0"; sha256="1f2aigkqpmbi8hxcivrbbfrpl3qs8fi2hcbvmcdc3k7j6znv4al3"; depends=[]; };
-  gptstudio = derive2 { name="gptstudio"; version="0.3.0"; sha256="1530qk7189mcmv9m33r4v66mj0w429n2vj3sg5943r6f8fg3kaxz"; depends=[assertthat bslib callr cli colorspace glue htmltools htmlwidgets httr2 jsonlite magrittr purrr rlang rstudioapi shiny shiny_i18n stringr waiter yaml]; };
+  gptr = derive2 { name="gptr"; version="0.6.0"; sha256="17kf5azrm8xhc26pkv7fsqlfw1430h6024n3nz01kfmjyjqs348m"; depends=[jsonlite RCurl]; };
+  gptstudio = derive2 { name="gptstudio"; version="0.4.0"; sha256="0hlmpysw3wlz2nvixbdz2gd9nk290jpfj5jcjidi6cn3skykvkdv"; depends=[assertthat bslib cli colorspace curl fontawesome glue htmltools htmlwidgets httr2 ids jsonlite magrittr purrr R6 rlang rstudioapi rvest shiny shiny_i18n SSEparser stringr waiter yaml]; };
   gptzeror = derive2 { name="gptzeror"; version="0.0.1"; sha256="1xdzg0xazim7qn54zh4wkix0xn0z49b3grrazr7xhjbqx29aca48"; depends=[cli curl dplyr httr2 lifecycle tidyr]; };
+  gpuR = derive2 { name="gpuR"; version="2.0.6"; sha256="1z9s3c4lspbm29bp1l2sixlfps04aif70rv1p1db1f1xwk6vw3bn"; depends=[BH Rcpp RcppEigen RViennaCL]; };
   gpx = derive2 { name="gpx"; version="1.1.0"; sha256="0x9b3mnbrim690l4wnyzk47bgywvnw4h4l8qznnx7zkpqib2hn5i"; depends=[lubridate rvest xml2]; };
   gqlr = derive2 { name="gqlr"; version="0.0.2"; sha256="0gzhqyrbnz3qjzkr4slryrlfhlaxm474y9fahlj0sb0hvcx68pxj"; depends=[graphql jsonlite magrittr pryr R6]; };
   gquad = derive2 { name="gquad"; version="2.1-2"; sha256="09hcs2lgqnim29gpd805b5ndxi22z2xwsf25rb1zckxf9c7bn7sj"; depends=[ape seqinr]; };
@@ -11257,7 +11441,7 @@ in with self; {
   gradeR = derive2 { name="gradeR"; version="1.0.10"; sha256="1ngfrminhsk3155da0vjmvrk66nbnak8p1ns20cw32qayq6wyrr2"; depends=[callr jsonlite testthat]; };
   gradientPickerD3 = derive2 { name="gradientPickerD3"; version="0.1.0.0"; sha256="0b20iqfipr7migwk1fl4lvdf4ghprqivcgmchfshhr8q82hyd1q0"; depends=[htmlwidgets jsonlite shiny]; };
   grafify = derive2 { name="grafify"; version="4.0.1"; sha256="0349sz0gykm69gf7n54g8snvjb8fkfx4cgfwp8bpvib4r9dbsllp"; depends=[car emmeans ggplot2 Hmisc lme4 lmerTest magrittr mgcv patchwork purrr tidyr]; };
-  grafzahl = derive2 { name="grafzahl"; version="0.0.8"; sha256="1pccxzraz9sri69774svj3sb1fxq00lq8261z0fcm0j17mqmysyq"; depends=[jsonlite lime quanteda reticulate]; };
+  grafzahl = derive2 { name="grafzahl"; version="0.0.11"; sha256="0zx6fqwklyi3sc1p59nb71mgrfnp7bqw5axmddj3706cawlrqrb8"; depends=[jsonlite lime quanteda reticulate]; };
   grainscape = derive2 { name="grainscape"; version="0.4.4"; sha256="0c9ms97xnz7z5r2hhwbw0qpcmknp2wk327z95x751yjvgbps3lkg"; depends=[ggplot2 igraph raster Rcpp sf sp]; };
   gramEvol = derive2 { name="gramEvol"; version="2.1-4"; sha256="1am5nlnyawi4lybi10ag4fdhddvbwsdzrmr6f66bzspdpl4s26g9"; depends=[]; };
   grand = derive2 { name="grand"; version="0.9.0"; sha256="08lgwpkbamb7p5a59q0dp1n7np9kmmvccvg97bl7937ishx50mg5"; depends=[igraph]; };
@@ -11276,7 +11460,7 @@ in with self; {
   grapherator = derive2 { name="grapherator"; version="1.0.0"; sha256="071by9b8figbsf4g0f8a8mgcdksjksc57mnlgggilw7py1yjnjlh"; depends=[BBmisc checkmate deldir ggplot2 lhs reshape2 vegan]; };
   graphframes = derive2 { name="graphframes"; version="0.1.2"; sha256="1bv7d0sggwab4rd486ayw9gkb5ja5p5fin5pn92xnrmz8cgwsfxq"; depends=[forge sparklyr tibble]; };
   graphhopper = derive2 { name="graphhopper"; version="0.1.2"; sha256="1zrnwh86jv37z07b6l1i94dgjn8k3b3a3f76gfjsyyxvlc64i76x"; depends=[dplyr googlePolylines httr jsonlite magrittr tibble]; };
-  graphicalExtremes = derive2 { name="graphicalExtremes"; version="0.3.1"; sha256="060lm9hjhcfci4lj843il038sla05ryzxgcbi2azh5pfq1y5vsl0"; depends=[corpcor edmcr glassoFast glmnet igraph mvtnorm osqp Rdpack]; };
+  graphicalExtremes = derive2 { name="graphicalExtremes"; version="0.3.2"; sha256="18gyfynx9rd06168vv1qxa8hg7ibwv0h2mx1ppizrnrl7ciwwis1"; depends=[corpcor CVXR edmcr glassoFast glmnet igraph mvtnorm osqp Rdpack]; };
   graphicalVAR = derive2 { name="graphicalVAR"; version="0.3.4"; sha256="1p5x77ck3prs8782kv176qq9d5ngw3zz3w6qg7aq5658pwc87gd3"; depends=[dplyr glasso glmnet igraph Matrix mvtnorm qgraph Rcpp RcppArmadillo rlang]; };
   graphkernels = derive2 { name="graphkernels"; version="1.6.1"; sha256="1fwl5a13mdmia374zas0vvd4dlfnp4in9gj42c0iq01icy1wq0la"; depends=[igraph Rcpp RcppEigen]; };
   graphlayouts = derive2 { name="graphlayouts"; version="1.1.1"; sha256="009q5y46lbizdabbb6a61xlfa3g5lf3nd9w42709lcxi0ad4bhkv"; depends=[igraph Rcpp RcppArmadillo]; };
@@ -11285,19 +11469,20 @@ in with self; {
   graphsim = derive2 { name="graphsim"; version="1.0.3"; sha256="16djk5zm2pnvfyb2783rdyi6a0gspm23br7xxgb2c8wfd9gf430n"; depends=[gplots igraph Matrix matrixcalc mvtnorm]; };
   graposas = derive2 { name="graposas"; version="1.0.0"; sha256="0wyrzhmkswx7s2a78lzphqm3jz9akxc462gy0icpvxn2hff9wvki"; depends=[GA mvtnorm]; };
   grateful = derive2 { name="grateful"; version="0.2.4"; sha256="0g1xn8chm4if31xfd012w6zj6gl7s19yifp1pyp6v0frpslcks4b"; depends=[knitr remotes renv rmarkdown rstudioapi]; };
-  grates = derive2 { name="grates"; version="1.2.0"; sha256="0b6bisszv3nw90vsj1fpc9hmw0dw86p2lwm9kbmranrcb8m3zz6l"; depends=[]; };
-  gratia = derive2 { name="gratia"; version="0.8.2"; sha256="0gfilxh697laf1y20kmrzjrgd1xypf529cw9xxzy64z7rn0jraih"; depends=[cli dplyr ggplot2 lifecycle mgcv mvnfast nlme patchwork pillar purrr rlang stringr tibble tidyr tidyselect vctrs]; };
+  grates = derive2 { name="grates"; version="1.2.1"; sha256="1sqvrjyv8ncls9nvhfw6y4nyfdc349n8hyrmnfbqlm2rdhgnf6qr"; depends=[]; };
+  gratia = derive2 { name="gratia"; version="0.9.0"; sha256="1hkfaw2vwm4dw73fn4glkwnhvbf2wc3iyz5979rsfabn5i6g91br"; depends=[cli dplyr ggokabeito ggplot2 lifecycle mgcv mvnfast nlme patchwork pillar purrr rlang stringr tibble tidyr tidyselect vctrs withr]; };
   graticule = derive2 { name="graticule"; version="0.4.0"; sha256="0i2nhsrhixbwisgx8354aqsnik5sax9m63fzagmj4k3fcnpry7b0"; depends=[geosphere raster reproj sp]; };
-  grattan = derive2 { name="grattan"; version="2024.0.0"; sha256="0wq7k7h4kgq7q5r53n53bddssywx6lb3jqi74jfd3gdgixx2sp6q"; depends=[assertthat checkmate data_table fastmatch forecast fy grattanInflators hutils hutilscpp ineq magrittr]; };
-  grattanInflators = derive2 { name="grattanInflators"; version="0.5.0"; sha256="0lp000wgl1jkfhbb69kpxlpnarwwybzys6waxppacd5xlimynl12"; depends=[data_table fy hutils]; };
+  gratis = derive2 { name="gratis"; version="1.0.7"; sha256="0y9gblkcn145r8kx4447waqwc59iibm6nlmdykf6vrwn1y5vssa3"; depends=[doRNG dplyr feasts fGarch foreach forecast GA generics magrittr mvtnorm polynom purrr shiny tibble tsfeatures tsibble]; };
+  grattan = derive2 { name="grattan"; version="2024.1.1"; sha256="0cxgj20c7gk55p22rmy1al44if4pk90yf9zify2jz9h7pviwgpjx"; depends=[assertthat checkmate data_table fastmatch forecast fy grattanInflators hutils hutilscpp ineq magrittr]; };
+  grattanInflators = derive2 { name="grattanInflators"; version="0.5.3"; sha256="1pky7gi9rwxggzv2rhqjkzlql16xs506ba0yhqy1dqs219k1dvwd"; depends=[data_table fy hutils]; };
   gravitas = derive2 { name="gravitas"; version="0.1.3"; sha256="11n85bdmigqasbq8c1amj1k7manfvs3gnax2ihsf2vp56s9c463p"; depends=[dplyr ggplot2 ggridges ineq lubridate lvplot magrittr RColorBrewer rlang shiny stringr tibble tidyr tsibble]; };
   gravity = derive2 { name="gravity"; version="1.1"; sha256="05kkprv63x9m715yv9kx2k70bqnkacc72zr0aljcj0ry10nl40c6"; depends=[censReg dplyr glm2 lmtest magrittr MASS multiwayvcov purrr Rdpack rlang sandwich survival tibble tidyr]; };
   gravmagsubs = derive2 { name="gravmagsubs"; version="1.0.1"; sha256="1kc3dm2wmbwbad6sdhzs6bnpmri66142rc552cd75pijzbnymqvf"; depends=[Rcpp]; };
-  greatR = derive2 { name="greatR"; version="1.1.0"; sha256="0mibjbzyk7fvmma596vs9mlf43spzx8qk6aj0622ajxb6lszdqmm"; depends=[cli data_table furrr future ggplot2 neldermead optimization scales]; };
+  greatR = derive2 { name="greatR"; version="2.0.0"; sha256="0fb065y4k7zsxb91kswssfq8zlg1p9780mx8wnzxn1pydckn4z3n"; depends=[cli data_table furrr future ggplot2 neldermead optimization patchwork scales]; };
   grec = derive2 { name="grec"; version="1.6.0"; sha256="1zv71cb6kj4bm11ihygzxhmc5hcxn7m4pmyga4fpxmc2xz8pv1sz"; depends=[abind imagine lifecycle raster terra]; };
   greed = derive2 { name="greed"; version="0.6.1"; sha256="05p24991s97h0hmvv88s3hca9b50384hm6qm771dqznqs5m4ggrq"; depends=[cba cli future ggplot2 gridExtra gtable listenv Matrix Rcpp RcppArmadillo RSpectra]; };
   greekLetters = derive2 { name="greekLetters"; version="1.0.2"; sha256="0c52lfpm0awd3hc6ggnjqz5ymcbbm74qlj9iznkd5gln85q29vqc"; depends=[assertthat stringr]; };
-  greeks = derive2 { name="greeks"; version="1.3.5"; sha256="10i3v4rkbw3njpm86ss3r47k79yqp2j45k53rxvc56kxx9dsaqz4"; depends=[dqrng ggplot2 magrittr plotly Rcpp shiny tibble tidyr]; };
+  greeks = derive2 { name="greeks"; version="1.4.2"; sha256="11ps312r6nhda5a2d7mjxzjnlvfj2kz31hyvnfngfpwdg3ndw1hr"; depends=[dqrng ggplot2 magrittr plotly Rcpp shiny tibble tidyr]; };
   greenclust = derive2 { name="greenclust"; version="1.1.1"; sha256="1wdz2lrrchwsxm68mvjcx3nlnr93n0jj8d5gr0j55idn7wn73gdq"; depends=[]; };
   greencrab_toolkit = derive2 { name="greencrab.toolkit"; version="0.2"; sha256="11lrbjm91m2lbgr0wdy84mal4qxs9x0bmniaijxpw9fdwrkqq0aw"; depends=[BH Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
   gregRy = derive2 { name="gregRy"; version="0.1.0"; sha256="1b8c8wwp8r2v51ayy7rbav24wfz75z1pylg0p4vsasaw9p06dlbz"; depends=[dplyr magrittr purrr tidyr]; };
@@ -11320,7 +11505,7 @@ in with self; {
   gridGraphviz = derive2 { name="gridGraphviz"; version="0.3-1"; sha256="0yzy7w4bk3rn9yjqy06gzkcs0dla3n49z3v1z0mjikg8cd97d5ni"; depends=[graph Rgraphviz]; };
   gridOT = derive2 { name="gridOT"; version="1.0.1"; sha256="106h1lk2fyfl68iwmbqbm9h8ip75ibanr1dsi6nrmd54pz475ry8"; depends=[Rcpp RcppArmadillo]; };
   gridSVG = derive2 { name="gridSVG"; version="1.7-5"; sha256="1p8qnx9q96bni39x44l40rgcdi9r440zbipdfvkbs2paysx6mkr5"; depends=[jsonlite XML]; };
-  gridpattern = derive2 { name="gridpattern"; version="1.1.1"; sha256="1v7xfgbnrr4v3arr7nm0663aywn47xb89sd0rn9s9dcz7r50aa2i"; depends=[glue memoise png rlang sf]; };
+  gridpattern = derive2 { name="gridpattern"; version="1.2.2"; sha256="1fa787m4ns3s7xnai1kqplz32nhy4pa1v6w7kzyjv9qlyfhvrw92"; depends=[glue memoise png rlang sf]; };
   gridsampler = derive2 { name="gridsampler"; version="0.6"; sha256="0wqpqg9c372sv8zqks6v93gawiyfghw58hn7m8q45dxpqm16ss3k"; depends=[BiasedUrn ggplot2 plyr reshape2 shiny shinyBS shinythemes]; };
   gridstackeR = derive2 { name="gridstackeR"; version="0.1.0"; sha256="01yazynwprzjygkh0dwrlvbjsmxvfy1pxr0nldnbngmq10wvpp2n"; depends=[checkmate htmltools shiny shinyjs]; };
   gridtext = derive2 { name="gridtext"; version="0.1.5"; sha256="0f7i2qb8fawi8agy2iz2c173kfwj7cbb5ikjix64nmzqc5j7363d"; depends=[curl jpeg markdown png Rcpp rlang stringr xml2]; };
@@ -11341,7 +11526,7 @@ in with self; {
   grouprar = derive2 { name="grouprar"; version="0.1.0"; sha256="0n7pd93a3v3ii85g2ms02zdvy8rkb0j8kfp1bvmfy71kd1ghc7d5"; depends=[extraDistr ggplot2 gridExtra stringr tidyr]; };
   groupwalk = derive2 { name="groupwalk"; version="0.1.2"; sha256="1nhz9lyh863krxqqi189zpng12y658615w372km98scn1lwl6fi9"; depends=[]; };
   grove = derive2 { name="grove"; version="1.1.1"; sha256="1flqjkmvl4wmz53hckn9j9w4lg4kjrjbx98hzlfkzc9ikkp68d7z"; depends=[Rcpp RcppArmadillo wavethresh]; };
-  growR = derive2 { name="growR"; version="1.2.0"; sha256="1sw9sdv008n4xsv41yyrbq4qw9w0swg4ff2jaa41gvn35fax7blj"; depends=[R6 Rdpack rlang]; };
+  growR = derive2 { name="growR"; version="1.3.0"; sha256="0z2kz7gd5grpb5kan6j6nbjsgdii7is4bwyx3jzsziq74q239fig"; depends=[R6 Rdpack rlang]; };
   growfunctions = derive2 { name="growfunctions"; version="0.16"; sha256="1v1sawv9fbb6lw4ynjdkj02z8rv5k8pkw55wmg2ws3jisy3xrcm7"; depends=[ggplot2 Rcpp RcppArmadillo reshape2 spam]; };
   growth = derive2 { name="growth"; version="1.1.1"; sha256="05yxjlbv1i4ly8yp3aqbxzq1z2mp7sfx7xyqw48qsdv0acqai7jy"; depends=[rmutil]; };
   growthPheno = derive2 { name="growthPheno"; version="2.1.24"; sha256="0cwdxd47jpgvr9i7xj7hibaa8l8n7gm91i3qv5ikp9p2y93qwbzs"; depends=[dae GGally ggplot2 Hmisc JOPS RColorBrewer readxl reshape stringi]; };
@@ -11353,18 +11538,17 @@ in with self; {
   grpCox = derive2 { name="grpCox"; version="1.0.2"; sha256="02x98zmaa7f73qv62wzr0vyyci7kcx7mmyw7cm3inlyphlkywvlw"; depends=[colorspace MASS Matrix Rcpp RcppEigen]; };
   grpSLOPE = derive2 { name="grpSLOPE"; version="0.3.3"; sha256="05417f0pnp21svi30vcbkkw16zyg1kxynfigh5w2jdjmd12cb899"; depends=[Rcpp]; };
   grplasso = derive2 { name="grplasso"; version="0.4-7"; sha256="0jf48ahc6d6biwx235dlvbk1papxkqbcnvxsr93p5047pjm02y3a"; depends=[]; };
-  grplassocat = derive2 { name="grplassocat"; version="1.0"; sha256="0pi5vq7yqg0ha91y6296ckshxyq3135cg6zcs9x6xba5m5024k4p"; depends=[grplasso]; };
-  grpnet = derive2 { name="grpnet"; version="0.3"; sha256="0q9h02aqyc1ywdmnk7x9z6n6bpgmcmz1klb62nbvz6mhxq9mnv5m"; depends=[]; };
+  grpnet = derive2 { name="grpnet"; version="0.4"; sha256="1ka9i7fg9y87rabjdnggclb1f395m1pbmhwics2wayd9q3m5a6mk"; depends=[]; };
   grpreg = derive2 { name="grpreg"; version="3.4.0"; sha256="1bfnahkb249996m3qmf96g4ldgnw7xfcm2wr45ccrlk3mw5x4mzx"; depends=[Matrix]; };
   grpsel = derive2 { name="grpsel"; version="1.3.1"; sha256="0b901si4xm6306mzfk3nmwg2h8pk9rhvv2m08v3qnbnxaw06my2h"; depends=[ggplot2 Rcpp RcppArmadillo]; };
   grpseq = derive2 { name="grpseq"; version="1.0"; sha256="187c3y3rsls1a66phb6kvndfh0rz7h8kl6w10gi9k6r8q6isvl9i"; depends=[mvtnorm]; };
   grr = derive2 { name="grr"; version="0.9.5"; sha256="0arbcgrvhkwb5xk4nry1ffg2qj0v8ivhjghdr505ib4357g0c9i9"; depends=[]; };
   grt = derive2 { name="grt"; version="0.2.1"; sha256="1dw5rjs82r82l6qryyyq9cczm770v4iv60d7pi1nb4b0733ndbd5"; depends=[MASS]; };
   grwat = derive2 { name="grwat"; version="0.0.4"; sha256="10sv1kzf9z1c27d99rvxvx1gmhga6rj1mcyfkvyg93gd8i1jwxg9"; depends=[cli dplyr ggplot2 lubridate magrittr mblm R_utils Rcpp rlang stringr tidyr trend zoo]; };
-  gsDesign = derive2 { name="gsDesign"; version="3.6.1"; sha256="065nyxkcvfdxinbh03jayrh1fqf0pd0ppy5550wcrdlc66628swg"; depends=[dplyr ggplot2 gt magrittr r2rtf rlang tibble tidyr xtable]; };
-  gsDesign2 = derive2 { name="gsDesign2"; version="1.1.1"; sha256="12wydy7gx2aml2i82adsqafqaq7sg6zvab38xwqp46jnmqc1isyk"; depends=[corpcor data_table dplyr gsDesign gt mvtnorm npsurvSS r2rtf Rcpp tibble tidyr]; };
+  gsDesign = derive2 { name="gsDesign"; version="3.6.2"; sha256="171xbfyrnrsncg4znd8m0r1r9kxrdcxrs03ncmchq1qifq5nc4al"; depends=[dplyr ggplot2 gt magrittr r2rtf rlang tibble tidyr xtable]; };
+  gsDesign2 = derive2 { name="gsDesign2"; version="1.1.2"; sha256="0kyj5pv5cr8ljbhzsly70115czhgx5wrpcgpd0jvv2djjf21klh2"; depends=[corpcor data_table dplyr gsDesign gt mvtnorm npsurvSS r2rtf Rcpp survival tibble tidyr]; };
   gsEasy = derive2 { name="gsEasy"; version="1.5"; sha256="1mvqnyjzi5ik5bqisxpf6a592n9rnkv915kwnis238akwvkspspa"; depends=[ontologyIndex Rcpp]; };
-  gsMAMS = derive2 { name="gsMAMS"; version="0.7.1"; sha256="00h6b0zxhiqpgngmwazx2lpzvy3x85mbishmmqn51v4k3568dw52"; depends=[mvtnorm survival]; };
+  gsMAMS = derive2 { name="gsMAMS"; version="0.7.2"; sha256="0n5f1mq81pzbzk1bly8pdbw7ryyb081sg02kc3wiyklhk071la3c"; depends=[mvtnorm survival]; };
   gsalib = derive2 { name="gsalib"; version="2.2.1"; sha256="145zyc2sqa0acn9crilpw5njms7w7ca3jgl499lhsahlb6ws98rx"; depends=[]; };
   gsarima = derive2 { name="gsarima"; version="0.1-5"; sha256="0nmn4hlvhl8dw7pkpf010x9qjd6w8drdlcj47qv0sap8wngrwhzg"; depends=[MASS]; };
   gsbDesign = derive2 { name="gsbDesign"; version="1.0-3"; sha256="07a5dpwfw052hx0ryrl54z4w71l9q6grh9cx5nf2h3v0lz45n6bp"; depends=[ggplot2 gsDesign lattice]; };
@@ -11376,11 +11560,11 @@ in with self; {
   gsignal = derive2 { name="gsignal"; version="0.3-5"; sha256="0qyb8p8vg7sfx6kgib03lwidxh9my669asbjwvbpwzxd4sb51gsf"; depends=[pracma Rcpp]; };
   gsisdecoder = derive2 { name="gsisdecoder"; version="0.0.1"; sha256="1h7a9j4gsdk8nasfkzfizlarx335ra0j0yz98a2000v2qzm2a5qy"; depends=[Rcpp]; };
   gsl = derive2 { name="gsl"; version="2.1-8"; sha256="159d782nz7fqhgcj3fa79hlmkdrqnkd0ypgzcl71kgas92zhjdpk"; depends=[]; };
-  gslnls = derive2 { name="gslnls"; version="1.2.0"; sha256="1nxlxm882nbpyjnjlfbsj5wz03nv3kd0jylda7wpw51nqf1jp0mz"; depends=[Matrix]; };
+  gslnls = derive2 { name="gslnls"; version="1.3.2"; sha256="1rfzdd9qsiqam5m9f2pi909lchcmmb1ljqiiwd5dpblbk8nqhm82"; depends=[Matrix]; };
   gsloid = derive2 { name="gsloid"; version="0.2.0"; sha256="1z9fci21870d8z7qsc8hzj3vxlxrr7gxy1vibga3acayxz21lhvs"; depends=[]; };
   gsmoothr = derive2 { name="gsmoothr"; version="0.1.7"; sha256="00z9852vn5pj04dhl3w36yk0xjawniay6iifw1i7fd8g98mgspxp"; depends=[]; };
   gson = derive2 { name="gson"; version="0.1.0"; sha256="10d3v543bvsyrwg3dm04xpzxjvmba1d1fhcf2zfb3l36pvjvxp8l"; depends=[jsonlite rlang tidyr]; };
-  gspcr = derive2 { name="gspcr"; version="0.9.4.1"; sha256="1ankzsqq1b662831bm3kdlzzdpl6nw05yira5yx36pm0vnhhcn7y"; depends=[dplyr FactoMineR ggplot2 MASS MLmetrics nnet PCAmixdata reshape2 rlang]; };
+  gspcr = derive2 { name="gspcr"; version="0.9.5"; sha256="19k07yg3z2p63dgq8hyyqpnq2r23rwbh1wqwna4d4w1bif9vgq8b"; depends=[dplyr FactoMineR ggplot2 MASS MLmetrics nnet PCAmixdata reshape2 rlang]; };
   gsrs = derive2 { name="gsrs"; version="0.1.1"; sha256="0x5fll59l000dqszy0gmhsfqgpaljc57j1grqg5c7y1p3vji38in"; depends=[doParallel foreach MASS]; };
   gsrsb = derive2 { name="gsrsb"; version="1.2.1"; sha256="0b2dzacd5axd4pfhv0q1gd7hk0fbfj738zdlabzs8dc9737bykiq"; depends=[ldbounds mvtnorm xtable]; };
   gss = derive2 { name="gss"; version="2.2-7"; sha256="0siz9xmfiirkg8sb0amzyp7k1mjbgz8jmsmlc8schw65093i84rv"; depends=[]; };
@@ -11394,8 +11578,9 @@ in with self; {
   gt4ireval = derive2 { name="gt4ireval"; version="2.0"; sha256="1d567iz57xqszm45l1wq4n2qrrmyz8ssll1vllfmncb9ibbnx4f3"; depends=[]; };
   gtExtras = derive2 { name="gtExtras"; version="0.5.0"; sha256="000vwq4k0vrn75vzy6iflqydxl81rgn06a8kqca99gwywcqr3gvv"; depends=[cli commonmark dplyr fontawesome ggplot2 glue gt htmltools knitr paletteer rlang scales]; };
   gtWAS = derive2 { name="gtWAS"; version="1.1.0"; sha256="1kbkz0iwc3gfj982m93m2wdr1xm5rhy70k6bdc7kms9ivh5fh6sh"; depends=[]; };
-  gtable = derive2 { name="gtable"; version="0.3.4"; sha256="0xvrkhcv1896mf3n43mva2mrmk0d8np7sjrykpg1pv54f69h6ckh"; depends=[cli glue lifecycle rlang]; };
+  gtable = derive2 { name="gtable"; version="0.3.5"; sha256="0wpavsypw2yp0pklmqw0qcwsh8smx5gr2kkxmgdmm52r0fiw37xi"; depends=[cli glue lifecycle rlang]; };
   gte = derive2 { name="gte"; version="1.2-3"; sha256="0fnrpgfji5f1n8nra0d8xghqgsjil7r2j6xnbmfm7mjafcav4wwk"; depends=[survival]; };
+  gtexture = derive2 { name="gtexture"; version="1.0.0"; sha256="1smlnnqsh1akjb2npn73qskq3dd3ypy40v3vkmqdf4qa2qx8yayk"; depends=[dlookr dplyr fitscape igraph magrittr rlang tidyr]; };
   gtfs2emis = derive2 { name="gtfs2emis"; version="0.1.0"; sha256="1nh3m57xhh12sm18d5lvf0i9z4ayn6kgbmp036lw89wz10s42w6z"; depends=[checkmate data_table furrr future gtfs2gps sf sfheaders terra units]; };
   gtfs2gps = derive2 { name="gtfs2gps"; version="2.1-1"; sha256="0k65iy7armdn13bs31wr6gq7hdxpz5nqqzpdxpm5g1mkxwc9fi1g"; depends=[checkmate data_table furrr future gtfstools lwgeom progressr Rcpp sf sfheaders terra units]; };
   gtfsio = derive2 { name="gtfsio"; version="1.1.1"; sha256="06kw2r00y277a822qqgjifmrz0l6gfq1dx8znrc2yhrk0ynadsjz"; depends=[data_table zip]; };
@@ -11410,6 +11595,7 @@ in with self; {
   gtsummary = derive2 { name="gtsummary"; version="1.7.2"; sha256="02jbsdv8wwncnrmqmf12pz3ld759s8ll5dl5rrxv8ad6qgqjbhnx"; depends=[broom broom_helpers cli dplyr forcats glue gt knitr lifecycle purrr rlang stringr tibble tidyr vctrs]; };
   guaguas = derive2 { name="guaguas"; version="0.3.0"; sha256="0ngdwg297ndn763vx0qnvcsy5bhsr026hv8hvwgrz5w32mpw252d"; depends=[]; };
   guardianapi = derive2 { name="guardianapi"; version="0.1.1"; sha256="17xmmr6pfzhdnmf45jzvk84gbfnmlw1qfv1gqjaw85vgm8b6jn6l"; depends=[dplyr httr jsonlite rlang tibble]; };
+  guescini = derive2 { name="guescini"; version="0.1.0"; sha256="05vz4lvwh01s24cdsklqypkxz64ixrj4la5l5x0jgg8vsshjc727"; depends=[tibble]; };
   guess = derive2 { name="guess"; version="0.1"; sha256="198pxi0yipgm9wccpj3y4a0gkibhyxcmb7v5dz7ipzrk44ha5g6j"; depends=[Rsolnp]; };
   guidedPLS = derive2 { name="guidedPLS"; version="1.0.0"; sha256="1gmprd6a5nyglm36sdyk9dqbgqavf3a7gzjbm5jzb5ybhj9r2w61"; depends=[irlba]; };
   guildai = derive2 { name="guildai"; version="0.0.1"; sha256="1y3m1756450dzcz1m8fdj53p2bw9zhisnp67fr2fhmv6kga37995"; depends=[config dplyr jsonlite processx rappdirs readr rlang rstudioapi tibble yaml]; };
@@ -11427,12 +11613,13 @@ in with self; {
   gwaRs = derive2 { name="gwaRs"; version="0.3.0"; sha256="1mjwsf1sbrd88psiz6f74zddv1wvhpxk5nxbfjpdrxs74rkc36fs"; depends=[data_table dplyr ggplot2 ggrepel RColorBrewer scales tidyr]; };
   gwasforest = derive2 { name="gwasforest"; version="1.0.0"; sha256="122fg4pc409lvw4yvrc8ijm6d6j29b4aacd319a16caxkkydgwlb"; depends=[colorspace data_table dplyr ggplot2 ggrepel glue]; };
   gwasrapidd = derive2 { name="gwasrapidd"; version="0.99.17"; sha256="1fmymw7vm4ana86mwf8figda20l601c7c6nr14444647x8cimlhx"; depends=[assertthat concatenate dplyr glue httr jsonlite lubridate magrittr pingr plyr progress purrr rlang stringr testthat tibble tidyr urltools writexl]; };
-  gwavr = derive2 { name="gwavr"; version="0.2.0"; sha256="0wlbyl3r4sxcjyfbymcrynkcaqmqivl4qhh14nxjrg8lji47lad6"; depends=[dplyr elevatr httr jsonlite leaflet leaflet_extras magrittr miniUI nhdplusTools promises purrr scales sf shiny shinyWidgets terra tidyr units whitebox]; };
+  gwavr = derive2 { name="gwavr"; version="0.3.1"; sha256="1hr1d66n5xf7ppmag70lzdnwp3m2jcs1qmh1nzrqq0nbqmqg8nck"; depends=[dplyr elevatr htmlwidgets httr jsonlite leaflet leaflet_extras miniUI nhdplusTools promises purrr scales sf shiny shinyWidgets terra tidyr units whitebox]; };
   gwbr = derive2 { name="gwbr"; version="1.0.5"; sha256="08yhg56i1xrkmfcyr87gz0w6mzsm0isg3fjm6kmmgsq522cj3jjb"; depends=[]; };
-  gwid = derive2 { name="gwid"; version="0.1.0"; sha256="13r286v6ckp64y36x8av8rlsvwh6ynzvi378l9xxxxfzc26w3zij"; depends=[data_table gdsfmt ggplot2 Matrix piggyback plotly RcppRoll SNPRelate]; };
+  gwid = derive2 { name="gwid"; version="0.2.0"; sha256="1qkj6773ywm3mxry9d9yzf2m52dcmjg5h5031h48x6gpg4qjf1k2"; depends=[data_table gdsfmt ggplot2 lattice Matrix piggyback plotly RcppRoll shiny SNPRelate]; };
   gwpcormapper = derive2 { name="gwpcormapper"; version="0.1.3"; sha256="0d8skx6rxas5qvhg7ykhymrzd6dawj45421vr66r4wi4hbdfjbzx"; depends=[attempt config corpcor crosstalk dplyr DT geodist glue golem htmltools leaflet pkgload plotly processx Rcpp sf shiny shinydashboard shinyjs viridis]; };
   gwrpvr = derive2 { name="gwrpvr"; version="1.0"; sha256="0x15nv2pfv99c04lgs6q6hgczarld34xc4aqw9bn179m7j02v6m3"; depends=[]; };
   gwrr = derive2 { name="gwrr"; version="0.2-2"; sha256="1pn84056fdrrjq8m13671hn4gvz40z0jsi6r5kv5b82fwzj4g57y"; depends=[fields lars]; };
+  gwzinbr = derive2 { name="gwzinbr"; version="0.1.0"; sha256="17i6y4zqr4p6zrp77pjhnpdq8wrannklc4ybmsbh8vmsq26in7d2"; depends=[sp]; };
   gym = derive2 { name="gym"; version="0.1.0"; sha256="0vcwzgawqwjsf65hr1mbjkz3px8zsibfkn42jpsg39n13jpfjq8v"; depends=[httr jsonlite]; };
   gyro = derive2 { name="gyro"; version="1.4.0"; sha256="0zgzqgfd97bxb4crijlc9byak4dl5zrhp6ynch8yda8m3rx1gz92"; depends=[clipr colorsGen cxhull Morpho plotrix Polychrome purrr RCDT Rcpp rgl rstudioapi Rvcg]; };
   h0 = derive2 { name="h0"; version="1.0.1"; sha256="0nw671dgf50zqmw6j8znig6ksqf68hbshc8v87dcig70j1sqab4k"; depends=[]; };
@@ -11455,7 +11642,7 @@ in with self; {
   hackeRnews = derive2 { name="hackeRnews"; version="0.1.0"; sha256="0vrdbk4dxbykb3hs35nxkl3s2ds92gs5qz66p85w8j5zjmwbw2x6"; depends=[future_apply httr jsonlite tibble]; };
   hacksaw = derive2 { name="hacksaw"; version="0.0.2"; sha256="1ls4l53bsaxyd6lwka9z9sb6ypa2ymbxpfxhsj9k966031jv2vk3"; depends=[dplyr magrittr purrr rlang tibble tidyselect zeallot]; };
   hacksig = derive2 { name="hacksig"; version="0.1.2"; sha256="0sc35vyi00r2b3hgn1xw2zffd704adschjwhx0niv5a1l33dxbkp"; depends=[dplyr future_apply rlang tibble tidyr]; };
-  hagis = derive2 { name="hagis"; version="3.1.11"; sha256="1s4n08zy7agqs8a1jzzyyba93j1nnd0d3bz63j5xd3yvw36brzjf"; depends=[data_table ggplot2 pander]; };
+  hagis = derive2 { name="hagis"; version="3.1.12"; sha256="18mcd8vm2dy50wfwfxbih841z1l8yml6fvb6y5qqq7a04h09k590"; depends=[data_table ggplot2 pander]; };
   hahmmr = derive2 { name="hahmmr"; version="1.0.0"; sha256="19bds84pkimr71dy1365b71k7ihn7x86yalgcmagvkxgygpg3409"; depends=[data_table dplyr GenomicRanges ggplot2 glue IRanges patchwork Rcpp RcppArmadillo roptim stringr tibble zoo]; };
   hakaiApi = derive2 { name="hakaiApi"; version="1.0.2"; sha256="0lxqk4cp1s1sm3nbsp74q1bpklmph620c2f1kii97h6yimnq9bi0"; depends=[dplyr httr R6 readr tibble]; };
   hal9001 = derive2 { name="hal9001"; version="0.4.6"; sha256="1p88rpm4alkr56w4cjl8sxj6ylq991dsny11njcdx5rzc25jh8qi"; depends=[assertthat data_table glmnet Matrix origami Rcpp RcppEigen stringr]; };
@@ -11466,7 +11653,7 @@ in with self; {
   hamlet = derive2 { name="hamlet"; version="0.9.6"; sha256="076fh28grlrv38qywshi79m84jsz1ck9k4n0rg4svvr3gqkdbcn2"; depends=[]; };
   handcodeR = derive2 { name="handcodeR"; version="0.1.2"; sha256="1icr2474y2q2jnax7ps9lmh13hkrpq4z2yacffc1scm2cpg18y6a"; depends=[shiny shinyWidgets]; };
   handlr = derive2 { name="handlr"; version="0.3.0"; sha256="0l0jwlslz2pyg7q447k56acfhgmx5njsriqdrwd02zzbsc3g6wm5"; depends=[crul jsonlite mime urltools xml2 yaml]; };
-  handwriter = derive2 { name="handwriter"; version="3.0.0"; sha256="0kb09bl8x3jqhr99j454q00d4cwnih49gpqbjydb2wk2vxzvq4gj"; depends=[doParallel dplyr foreach ggplot2 igraph lpSolve magick mc2d png purrr Rcpp RcppArmadillo reshape2 Rfast rjags stringr tidyr]; };
+  handwriter = derive2 { name="handwriter"; version="3.1.1"; sha256="1gwxp5nsw38f368z586hixk4i7b87vg0fcmxxdl2zldawv1sx0v9"; depends=[doParallel dplyr foreach ggplot2 igraph lpSolve magick mc2d png purrr Rcpp RcppArmadillo reshape2 Rfast rjags stringr tidyr]; };
   handyFunctions = derive2 { name="handyFunctions"; version="0.1.0"; sha256="0y476acqdm73y19k8s9c9vy8xryyjg16pay3vikslwccv7kgsigz"; depends=[ggplot2 rlang stringr]; };
   handyplots = derive2 { name="handyplots"; version="1.1.3"; sha256="0pcl0iichdw2lkv8y00mv6n6c0rvrnsk75ka5lwm2g7b64pphsvk"; depends=[]; };
   hans = derive2 { name="hans"; version="0.1"; sha256="0hh2nlzxs2kj93yb7yfm873m6nymjw5qmkin3qqn3acza6dr0k6q"; depends=[Rcpp]; };
@@ -11477,11 +11664,11 @@ in with self; {
   haploR = derive2 { name="haploR"; version="4.0.7"; sha256="1s8f556d9x5h76gyl4wggcx01f4qrx0fp5mz46yk2x9qmwiir89v"; depends=[DT httr plyr RCurl RJSONIO RUnit tibble XML]; };
   haplotyper = derive2 { name="haplotyper"; version="0.1"; sha256="0pcshlh29c4zazhkcq4371kqh9inrbx494y5a1qb1k2c92fkax31"; depends=[]; };
   haplotypes = derive2 { name="haplotypes"; version="1.1.3.1"; sha256="0w61ww76fq4iqzi6w9q2649925m5agnjaqhij40dwxyzsyqv9zjd"; depends=[ape network phangorn plotrix sna]; };
-  happign = derive2 { name="happign"; version="0.2.2"; sha256="1nzp41rnc5xjdhl9234gg646qrl86w7w8m3q46zxzdh3r5vvg43z"; depends=[archive dplyr httr2 jsonlite sf terra units xml2]; };
+  happign = derive2 { name="happign"; version="0.3.0"; sha256="0mg3w5djg0hg8x1826kqj3b75zyhibcpxrh5sp6w17pmamfif9a4"; depends=[archive dplyr httr2 jsonlite sf terra xml2]; };
   happytime = derive2 { name="happytime"; version="0.1.0"; sha256="03iblwb6w2dh9sibfi4nlswidck13hzsn7123838zp4sxfnrp041"; depends=[]; };
   hapsim = derive2 { name="hapsim"; version="0.31"; sha256="0jw6iw89d4y8wjy58biv40szp123ql7frz1mmdjdxljmwaby963h"; depends=[MASS]; };
-  harbinger = derive2 { name="harbinger"; version="1.0.737"; sha256="0amqpx3pfvnx30dknxs4759b7c4qd4839zkrwf4ayg5klc06v7zd"; depends=[changepoint daltoolbox dplyr dtwclust forecast ggplot2 reticulate rugarch stringr strucchange tsmp TSPred]; };
-  hardhat = derive2 { name="hardhat"; version="1.3.1"; sha256="0v0vvvyy075f0j9ppqkhys6w2k7zmfdg0v77l430582nhrvp99hf"; depends=[cli glue rlang tibble vctrs]; };
+  harbinger = derive2 { name="harbinger"; version="1.0.787"; sha256="0ibmcwxlcdw4k7xd0bdnixz5fbnc6avj6jg7sd9ij5kir82xi03f"; depends=[changepoint daltoolbox dplyr dtwclust forecast ggplot2 hht rugarch stringr strucchange tsmp wavelets zoo]; };
+  hardhat = derive2 { name="hardhat"; version="1.4.0"; sha256="1bdkn80ab25n1rn3n3x1b3gs157888fak3s7i7c0r54gzkfj7l26"; depends=[cli glue rlang tibble vctrs]; };
   harmonicmeanp = derive2 { name="harmonicmeanp"; version="3.0.1"; sha256="11lxiafclihb49j6psqrdb143sz1xv9v45fafj8dfm8r2yr5hp1g"; depends=[FMStable]; };
   harmonizer = derive2 { name="harmonizer"; version="0.3.2"; sha256="05iiph9zx4wllviiwr92bhiq24bmi62iq9wjn8j91dvascd6xh5i"; depends=[]; };
   harmony = derive2 { name="harmony"; version="1.2.0"; sha256="1df7bb9ba3m0c44fhmh8cs4hlkh4fffjwm8rz7l87lf5pdy7sg56"; depends=[cowplot dplyr ggplot2 Matrix Rcpp RcppArmadillo RcppProgress RhpcBLASctl rlang tibble]; };
@@ -11497,12 +11684,13 @@ in with self; {
   hawkesbow = derive2 { name="hawkesbow"; version="1.0.3"; sha256="1jbwvzw4j8l7ywrbm4bhxvwp1b3j4ahi6fchmmvfjnx0da1d8163"; depends=[BH nloptr Rcpp RcppArmadillo]; };
   hazer = derive2 { name="hazer"; version="1.1.1"; sha256="1d1qj6mamgxlvxq2hjik69zfzackjz5819iss98jf5gdbdngw41x"; depends=[]; };
   hbal = derive2 { name="hbal"; version="1.2.12"; sha256="1r3wlgvjy33cr0vi0lpckim4cybz67lh44fi6d36hms8pirnl4rl"; depends=[estimatr generics ggplot2 glmnet gridExtra gtable nloptr Rcpp RcppEigen stringr]; };
-  hbamr = derive2 { name="hbamr"; version="2.2.1"; sha256="0szxmzjwcz83s9qb062xl6nbxiwhk19d550ghjdb7xnv5p7zxmss"; depends=[BH dplyr future future_apply ggplot2 loo matrixStats plyr progressr RColorBrewer Rcpp RcppEigen RcppParallel rlang rstan rstantools StanHeaders tidyr]; };
+  hbamr = derive2 { name="hbamr"; version="2.3.1"; sha256="1cch2l4dazny7p5hn16v0fp5mir10fy4qa8ibpgx3j2vi8w05c1x"; depends=[BH colorspace dplyr future future_apply ggplot2 loo matrixStats plyr progressr RColorBrewer Rcpp RcppEigen RcppParallel rlang rstan rstantools StanHeaders tidyr]; };
   hbbr = derive2 { name="hbbr"; version="1.1.2"; sha256="09sph4vliyb63pd0abq02ix5wz373r70kgldw44fm279zq4z772h"; depends=[R2jags]; };
   hbim = derive2 { name="hbim"; version="1.1.2"; sha256="1wgzxmbdzigh9q6q2s4vfh58p8whmyp0jckfga1li5cibqbvpaf0"; depends=[mvtnorm]; };
   hbmem = derive2 { name="hbmem"; version="0.3-4"; sha256="0qhxc784zhilxhijlsykl10cqlxk9ll8m2cz9s1cmz76hlvrn0y9"; depends=[]; };
   hbsae = derive2 { name="hbsae"; version="1.2"; sha256="0fg782gxivkkwhqvxf09j1q20f2dqm7bd1y9bp99fy7mg88zp0gn"; depends=[Matrix]; };
   hcandersenr = derive2 { name="hcandersenr"; version="0.2.0"; sha256="0r8z8kb9hwvgcsxbd7arbmqclhwlbcjpnf3p9mp5vgyxm84iz515"; depends=[]; };
+  hcci = derive2 { name="hcci"; version="1.1.0"; sha256="1rkbds3inpkhpvqb7rhvvakf9n0xf1yr74c3ywm35lwv6lj8pi21"; depends=[]; };
   hce = derive2 { name="hce"; version="0.6.0"; sha256="0a9fdb3mx1rgnmdpjxjwgj0xlcd2cw43ydrj5mmld186w0c14kdz"; depends=[]; };
   hchinamap = derive2 { name="hchinamap"; version="0.1.0"; sha256="1pia593g50zf3286f9g51slkvrpj1iy7lws9d7a3nqgb2v3yji1y"; depends=[htmlwidgets]; };
   hcidata = derive2 { name="hcidata"; version="0.1.0"; sha256="16qzll0rhfc6szi9y5hxycq5462jm78kla70fnv1sqw7n34pvpg5"; depends=[Rdpack]; };
@@ -11510,21 +11698,23 @@ in with self; {
   hctrial = derive2 { name="hctrial"; version="0.1.0"; sha256="19li8i8hx0r3b63q80cnj6pr72rdbmykxq0kcfbn4azq3sdd046y"; depends=[clinfun GenBinomApps]; };
   hdImpute = derive2 { name="hdImpute"; version="0.2.1"; sha256="1gs3205z3v7zvr2xqi4jv8xpmngpw41nk0kbz7wx3g4a5152hagq"; depends=[cli dplyr magrittr missRanger plyr purrr tibble tidyr tidyselect]; };
   hda = derive2 { name="hda"; version="0.2-14"; sha256="0azfxyws7yslcqplfddmdp5ngk91j5h7llvrg77yh5z0kkd09j1b"; depends=[e1071]; };
+  hdbayes = derive2 { name="hdbayes"; version="0.0.3"; sha256="19c8nxa30sngrz8z01xc2qxkyi4vjjnvqacphm318ianpwi7pi69"; depends=[bridgesampling callr enrichwith formula_tools fs instantiate mclust posterior]; };
   hdbinseg = derive2 { name="hdbinseg"; version="1.0.2"; sha256="0q5lfczymrd4ln04lbdysncx6ylcsgrk69mhvm7jjk7pybrpm9wq"; depends=[doParallel foreach iterators Rcpp RcppArmadillo]; };
   hdbm = derive2 { name="hdbm"; version="0.9.0"; sha256="0lvaica195chl6bb10wvvr7fbmh8b954fpxcm9r0gyp0d0i2a2w4"; depends=[Rcpp RcppArmadillo]; };
   hdbma = derive2 { name="hdbma"; version="1.0"; sha256="0dj9hh6x5096znl7naga0qrx2fwr4crgjk7fyk5vxn6v1gl3llrh"; depends=[gplots lattice MASS R2jags survival]; };
   hdcate = derive2 { name="hdcate"; version="0.1.0"; sha256="1jv6y38lzvm75s44n1pjvkkf5xcvrvclil318gvx54b16hvgggcg"; depends=[caret hdm KernSmooth locpol R6]; };
+  hdcuremodels = derive2 { name="hdcuremodels"; version="0.0.1"; sha256="09ih9jlz7l4vcgqhpy9h5c8j19c5fdfn4hhka85as762lxxbkwrl"; depends=[doParallel flexsurv flexsurvcure foreach ggplot2 ggpubr glmnet knockoff mvnfast plyr survival]; };
   hdd = derive2 { name="hdd"; version="0.1.1"; sha256="1xl5p56qrnvli2ga1p8xyvgsp17jyjm0xng5prigyngnpj327qpk"; depends=[data_table dreamerr fst readr]; };
   hddplot = derive2 { name="hddplot"; version="0.59-2"; sha256="1q7mz7yxb4qvprj431kxv46cf9myckkycfbi6nzbkqw8mpwg02qy"; depends=[MASS multtest]; };
   hdf5r = derive2 { name="hdf5r"; version="1.3.10"; sha256="0khj94z6ls6dnc6fpxwf1w93mk6f3z2p39mbihf0lz52jc36wjcj"; depends=[bit64 R6]; };
-  hdf5r_Extra = derive2 { name="hdf5r.Extra"; version="0.0.5"; sha256="0mz7ilgs2zldvij7927l651lvwrb7zdfyakc55rvj9ij9nwnvpfx"; depends=[checkmate dplyr easy_utils hdf5r Matrix MatrixExtra rlang]; };
+  hdf5r_Extra = derive2 { name="hdf5r.Extra"; version="0.0.6"; sha256="0k8rvwxr30pbx0svikfar40465ff2daipsf91yp2px7hrgb4y129"; depends=[checkmate dplyr easy_utils hdf5r Matrix MatrixExtra rlang]; };
   hdflex = derive2 { name="hdflex"; version="0.2.1"; sha256="1f02gkgry8zilrk3sl4dl2jkbnvqn9700lv8k5zlh4cangq5jp9n"; depends=[checkmate dplyr Rcpp RcppArmadillo roll stringr]; };
   hdfqlr = derive2 { name="hdfqlr"; version="0.6-2"; sha256="07lfr0vblahh3xhckwmzbmlja0janb73qkl4663mqgp6xk21jmi1"; depends=[]; };
   hdi = derive2 { name="hdi"; version="0.1-9"; sha256="0k35zqz58lcx5p7ijhks4j7kqp553zggvrx4lh6k4s85lp601x22"; depends=[glmnet linprog MASS scalreg]; };
   hdiVAR = derive2 { name="hdiVAR"; version="1.0.2"; sha256="1vvsi1irnbjnyliz9wh783kbjkyz8agfbrx10436fsf8x33d1qs8"; depends=[abind lpSolve]; };
   hdm = derive2 { name="hdm"; version="0.3.2"; sha256="0spy2a23b6hxw6dm6zjqya066ar0224b64lckh6hrapha8kv4m1k"; depends=[checkmate Formula ggplot2 glmnet MASS]; };
   hdme = derive2 { name="hdme"; version="0.6.0"; sha256="04s9r29yjirkzki6drcyglh2hd712habzdgpw0fnf3cy9960wv4v"; depends=[ggplot2 glmnet Rcpp RcppArmadillo Rdpack Rglpk rlang]; };
-  hdmed = derive2 { name="hdmed"; version="1.0.0"; sha256="19n1m8wrzwf4lvmfw1bgyhymxv79irs341yfnhlc8znq4nm35yfh"; depends=[bama foreach freebird gcdnet genlasso hdi iterators MASS mediation ncvreg]; };
+  hdmed = derive2 { name="hdmed"; version="1.0.1"; sha256="1vmyf9w5dwl8ayxsk7ykd13hl41j4a435771rkgmkmnm5fbcqaai"; depends=[bama foreach freebird gcdnet genlasso hdi iterators MASS mediation ncvreg]; };
   hdnom = derive2 { name="hdnom"; version="6.0.3"; sha256="0n6wvjkg4dyq140a5grpnv526v2z5m7w726cnslrshcj31mngr46"; depends=[foreach ggplot2 glmnet gridExtra ncvreg penalized survival]; };
   hdpGLM = derive2 { name="hdpGLM"; version="1.0.3"; sha256="1hh0d0dmnqxzsfar86bd0cqjj5jljyhw073zi59bmjyg4m0rjyyn"; depends=[coda data_table dplyr formula_tools ggjoy ggplot2 ggpubr ggridges Hmisc isotone LaplacesDemon magrittr MASS MCMCpack mvtnorm png purrr questionr Rcpp RcppArmadillo rprojroot stringr tibble tidyr tidyverse]; };
   hdpca = derive2 { name="hdpca"; version="1.1.5"; sha256="0xcakpnp363lz98y3h87p1yhj0gs3f94gx2i8kz4mcizn1ll5xbd"; depends=[boot lpSolve]; };
@@ -11532,11 +11722,13 @@ in with self; {
   hds = derive2 { name="hds"; version="0.8.1"; sha256="1smg5ixrl7f2x3wn7s5i26dyadn5sigpf4jsk236z1bhnz617ax4"; depends=[survival tensor]; };
   headliner = derive2 { name="headliner"; version="0.0.3"; sha256="1llq007b032q526csfxxwrrwaxkzgq8wl4g4cr65j8biwwynpaba"; depends=[dplyr glue lubridate purrr rlang tibble tidyr]; };
   healthcare_antitrust = derive2 { name="healthcare.antitrust"; version="0.1.4"; sha256="1584j0ljvxp4b1ly0gxs9sdsnvvg96f91x94v5xngr4zrvsc21ga"; depends=[]; };
+  healthdb = derive2 { name="healthdb"; version="0.3.1"; sha256="1iyijm0hwqz0dypqfvk84iyj0qbh16sq09mcs2srj98yywd4nnz4"; depends=[clock data_table dbplyr dplyr glue lubridate magrittr purrr rlang stringr tidyr]; };
+  healthequal = derive2 { name="healthequal"; version="1.0.0"; sha256="1n96x414pa3khgbvxczavddg2fzfjc3awrpnzd460x12lhw8lfgn"; depends=[dplyr emmeans marginaleffects rlang srvyr survey]; };
   healthfinance = derive2 { name="healthfinance"; version="0.1.0"; sha256="163zhdd5mqp0q872dmr3xzw2ppapnwp46rr7vkkfnglz635nxvpz"; depends=[ggplot2 lubridate readr scales shiny tibble]; };
-  healthyAddress = derive2 { name="healthyAddress"; version="0.2.0"; sha256="0lw8r4cw1axgkb23ikzsn7jkqplp8cpydmww1pklp3cp4arkddmy"; depends=[data_table fastmatch fst hutils hutilscpp magrittr qs]; };
+  healthyAddress = derive2 { name="healthyAddress"; version="0.4.2"; sha256="1fbqka0gg7l11n6czb2z2480r7v5ispn54a17xjad547ndy12n5v"; depends=[data_table fastmatch fst hutils hutilscpp magrittr qs]; };
   healthyR = derive2 { name="healthyR"; version="0.2.1"; sha256="0wlw6sd187sw5ar58c4a5yz9fw0bc044cik1xsq54ipp4xprlnxp"; depends=[cowplot dplyr ggplot2 lubridate magrittr plotly purrr rlang scales sqldf stringr tibble timetk writexl]; };
   healthyR_ai = derive2 { name="healthyR.ai"; version="0.0.13"; sha256="0qck4118f0kg9rfnmjc14qh7kdzvxh28rdlydhz8i5j91a6731a4"; depends=[broom dials dplyr forcats ggplot2 ggrepel h2o magrittr modeltime parsnip purrr recipes rlang tibble tidyr tune workflows yardstick]; };
-  healthyR_data = derive2 { name="healthyR.data"; version="1.0.3"; sha256="1bbxy7x7q1jn5l48li3pfiqisxrfw87nql20v5c2f06m67mn2mq8"; depends=[dplyr janitor rlang]; };
+  healthyR_data = derive2 { name="healthyR.data"; version="1.1.0"; sha256="025pgadi0rgwz0yvkx3mgf6r66sk2phmsmvgpykwd6jxyfwix2yk"; depends=[dplyr httr2 janitor rlang stringr tidyr]; };
   healthyR_ts = derive2 { name="healthyR.ts"; version="0.3.0"; sha256="1h8x47k239f8mmylpiydw7yf9r0synrzjhdk12a3nnbxbajn6iab"; depends=[cowplot dplyr forcats ggplot2 hardhat lubridate magrittr modeltime parsnip plotly purrr recipes rlang stringi tibble tidyr timetk workflowsets]; };
   healthyverse = derive2 { name="healthyverse"; version="1.0.4"; sha256="1h3d8wq6if1nkqc1d3n6y0g7i7xsvx9ci09z3jvhqx62f464ybgm"; depends=[cli crayon dplyr healthyR healthyR_ai healthyR_data healthyR_ts magrittr purrr rlang rstudioapi tibble tidyAML TidyDensity]; };
   heapsofpapers = derive2 { name="heapsofpapers"; version="0.1.0"; sha256="1b88ff4j6rh0qif43iyb12wipkkjmp5qx33qfzgffr5m54df4kfy"; depends=[aws_s3 curl dplyr fs magrittr rlang scales]; };
@@ -11546,18 +11738,21 @@ in with self; {
   heatmapFlex = derive2 { name="heatmapFlex"; version="0.1.2"; sha256="0va8ac2wf1mzm6zamhfpid3xkm7310c6b695c5wbc705nwijnd9q"; depends=[Biobase Heatplus RColorBrewer]; };
   heatmaply = derive2 { name="heatmaply"; version="1.5.0"; sha256="1crdm7avxv3zx59byz2fqbcw95728crwf9cckjb9gal1065xv95c"; depends=[assertthat colorspace dendextend egg ggplot2 htmlwidgets magrittr plotly RColorBrewer reshape2 scales seriation viridis webshot]; };
   heatwaveR = derive2 { name="heatwaveR"; version="0.4.6"; sha256="172qg8dgyn5lbwmyq8dxdccxr4aqaq6iixn5dqb4fy99ahgdbhyv"; depends=[data_table dplyr ggplot2 lubridate plyr Rcpp RcppArmadillo RcppRoll tibble]; };
+  heck = derive2 { name="heck"; version="0.1.0"; sha256="0mpfxkzk171qql9jx8byaiyinyb1ibla11jzljlw9pkdf4gs6m4b"; depends=[]; };
   heddlr = derive2 { name="heddlr"; version="0.6.0"; sha256="0ixmcgvfbq4hi3wv1fyzpwacmxmixsw5yq6mq5xygk6ji03m1v23"; depends=[rlang utf8 yaml]; };
   hedgehog = derive2 { name="hedgehog"; version="0.1"; sha256="1mvjnm2zlc4pvw9vnhxr0dj1g1sfqvlrnnhcipzfbvr147yan9l5"; depends=[rlang testthat]; };
   heemod = derive2 { name="heemod"; version="1.0.1"; sha256="09kj8gy74dklkbvxxh95qa5s7iaksvyamggppcpnp5c115625rrb"; depends=[dplyr ggplot2 glue lifecycle memoise mvnfast purrr rlang tibble vctrs]; };
+  heimdall = derive2 { name="heimdall"; version="1.0.3"; sha256="02lpyiphzyirmi6fl0l4k3vm5b3gvw1f8ha5mmsrkcnnvixakb2y"; depends=[caret daltoolbox ggplot2]; };
   heims = derive2 { name="heims"; version="0.4.0"; sha256="0vnq31jwn09grni4gdhf1hzd87b62as4f65b2qw7ky6mi38ahr5d"; depends=[bit64 data_table fastmatch hutils lubridate magrittr]; };
+  heiscore = derive2 { name="heiscore"; version="0.0.1"; sha256="0bj1li0m4mpd04f4zqh1dj4v593cv5nvv17n2yasjbqrymi15mr5"; depends=[dplyr fmsb ggplot2 ggpubr magrittr RColorBrewer rlang shiny shinythemes stringr tibble tidyr]; };
   helixvis = derive2 { name="helixvis"; version="1.0.1"; sha256="113rnpnrcnw18ks78fgq79zdrw3kmpzpimlc45gvj0za2fbyci3p"; depends=[ggforce ggplot2 rlang]; };
   hellno = derive2 { name="hellno"; version="0.0.1"; sha256="1j787rw9hh75bvkckmlz5xkgwc22gd7si3mgjd7v60dd6lykfa88"; depends=[]; };
   helloJavaWorld = derive2 { name="helloJavaWorld"; version="0.0-9"; sha256="1a8yxja54iqdy2k8bicrcx1y3rkgslas03is4v78yhbz42c9fi8s"; depends=[rJava]; };
   hellorust = derive2 { name="hellorust"; version="1.2.0"; sha256="0x2lnbrii9z4kyd810rphcip9wpx7ibqx9b4fs5c5msrqa03amk3"; depends=[]; };
   helminthR = derive2 { name="helminthR"; version="1.0.10"; sha256="0ssw0smxc5zx3d189fq8c6kdg6d7db1sd5iblhz54pg41j9fvqhq"; depends=[httr magrittr plyr rvest taxize xml2]; };
   helsinki = derive2 { name="helsinki"; version="1.0.6"; sha256="1hsmxnfzbi8xvqz97rmq225w9prhxc558slmfxg03y5wpjqdpq4a"; depends=[curl dplyr httr jsonlite purrr sf xml2]; };
-  hemispheR = derive2 { name="hemispheR"; version="1.1.3"; sha256="13h6x73dzz7azzw251qqnqnva7bpagq78xcv88fbys9fjfy6w7bd"; depends=[autothresholdr dismo dplyr jpeg scales sf terra tidyr]; };
-  heplots = derive2 { name="heplots"; version="1.6.2"; sha256="09s3ys12p6rzyaza9dwvz83yifkbhkvfwcb0cwb3swd70zh9biml"; depends=[broom car magrittr MASS purrr rgl tibble]; };
+  hemispheR = derive2 { name="hemispheR"; version="1.1.4"; sha256="1x372rbi112l5hdmlkbn5x90h8a6y71zngdlfn1p27c10klwaspy"; depends=[autothresholdr dismo dplyr jpeg scales sf terra tidyr]; };
+  heplots = derive2 { name="heplots"; version="1.7.0"; sha256="0hkwfg2xfsmvxnzr2jdfxn93ny325rkhc2cakr4hvddvg65dckfx"; depends=[broom car magrittr MASS purrr rgl tibble]; };
   here = derive2 { name="here"; version="1.0.1"; sha256="0srlr8h8qmr0wrmp7gs4g2ry5dni2hx8n947bik3s3a26f091v88"; depends=[rprojroot]; };
   hereR = derive2 { name="hereR"; version="1.0.0"; sha256="0la67qdsq72x8k19v27g73fh6w04fdgfj1cxbd3a6w1sfvjvvy6z"; depends=[crul curl data_table flexpolyline jsonlite sf stringr]; };
   heritability = derive2 { name="heritability"; version="1.4"; sha256="053fqjc8772gqhxnm2gn7yz747432kizn5q5060g5bd77v15jlhp"; depends=[MASS]; };
@@ -11575,10 +11770,9 @@ in with self; {
   hettreatreg = derive2 { name="hettreatreg"; version="0.1.0"; sha256="092xd2yndg5n5shxmcyn2gh6a6w1i1497cvj009ih3ax8hk3crf0"; depends=[]; };
   hettx = derive2 { name="hettx"; version="0.1.3"; sha256="15i9n2fcfbkv11qlgh4gsjvfnzzziwbcn8izzxw2d0kbdhhk7h8c"; depends=[doParallel dplyr foreach formula_tools ggplot2 MASS moments mvtnorm plyr purrr quantreg tidyr]; };
   hetu = derive2 { name="hetu"; version="1.0.7"; sha256="1ml3jzfc71j0d7a7yn97sbfzlpdpg46jpjcn6xbnh17xrqc1mv2a"; depends=[checkmate lubridate]; };
-  heumilkr = derive2 { name="heumilkr"; version="0.1.0"; sha256="1m50lnvz2pljmbsc99z4q47nqd0k046zmf5r4vi6krfzyyx1g0lm"; depends=[cpp11 ggplot2 rlang]; };
+  heumilkr = derive2 { name="heumilkr"; version="0.2.0"; sha256="0zpjmsk0vzz9x5nngznma3znpjlhjihxq0i9hrjx4nzbbbayf9qp"; depends=[cli cpp11 ggplot2 rlang xml2]; };
   heuristica = derive2 { name="heuristica"; version="1.0.3"; sha256="1j88sviy6yabh5prab0f1snnicbg843kbwyawakj3xx3p43v23lb"; depends=[Hmisc]; };
   heuristicsmineR = derive2 { name="heuristicsmineR"; version="0.3.0"; sha256="0w4f7xpz2342k38b5a7fs6fq50045hh2836390zg36nqdapg8vlv"; depends=[BH bupaR data_table DiagrammeR dplyr ggplot2 ggthemes magrittr petrinetR processmapR purrr Rcpp rlang scales stringr tidyr]; };
-  hexFinder = derive2 { name="hexFinder"; version="0.8.2"; sha256="184fv8xbgaygsb8bxd0gzi1r5girc2i0s8816i7y5pb1ps8bqvzp"; depends=[ggplot2 glue hexSticker httr2 jsonlite magick pkgsearch purrr stringr]; };
   hexSticker = derive2 { name="hexSticker"; version="0.4.9"; sha256="0d9sz2cshn4lq18kd9fkgvjm3v29h0k22b6228rq2q3zhxi97ra0"; depends=[ggimage ggplot2 hexbin showtext sysfonts]; };
   hexView = derive2 { name="hexView"; version="0.3-4"; sha256="01hiqyibsd4as7jcklzg09pl12la341mg561vn16z4jzdarfvkfc"; depends=[]; };
   hexbin = derive2 { name="hexbin"; version="1.28.3"; sha256="0pyy97bh9xf9hijg3iw1z4ri01571r1fx7xqm3fjkzx4q48kbcqf"; depends=[lattice]; };
@@ -11596,10 +11790,10 @@ in with self; {
   hgwrr = derive2 { name="hgwrr"; version="0.3-0"; sha256="0m3h5zwdnj4l7i6nh0mrjj4wprajgazninzffxpy14g7fy907ifn"; depends=[Rcpp RcppArmadillo]; };
   hhh4contacts = derive2 { name="hhh4contacts"; version="0.13.3"; sha256="1hxdf8mkcaimglpq6z2gk523w7xh3ih0c2m9mlqbgrgnysb22biy"; depends=[sp surveillance]; };
   hhi = derive2 { name="hhi"; version="1.2.0"; sha256="1yl52c3nqdi8v60sr01l0vv8359803dm2i4c9ifazgj3h3a4h0yp"; depends=[ggplot2]; };
-  hhsmm = derive2 { name="hhsmm"; version="0.3.6"; sha256="0b7bjvhyva3858dv01s6r891jkk14gm01hjqsab32m9w1b4r477p"; depends=[CMAPSS magic MASS mice mvtnorm progress Rcpp Rdpack splines2]; };
+  hhsmm = derive2 { name="hhsmm"; version="0.4.0"; sha256="15lqb4k8q0c9w2fi03ndrzs5vdnh7r5wa4ifpzqvggw5vrnfmfy8"; depends=[CMAPSS magic MASS mice mvtnorm progress Rcpp Rdpack splines2]; };
   hht = derive2 { name="hht"; version="2.1.6"; sha256="13q30difb84byy62rrkxq2hjjl1526pn8j4qvhm5g3cgivvby5ci"; depends=[EMD fields]; };
   hibayes = derive2 { name="hibayes"; version="3.0.3"; sha256="04vkvqha82cpmjflxir83208d9mxwip7wlbc3zd12apvrg2c91x6"; depends=[BH bigmemory CMplot Matrix Rcpp RcppArmadillo RcppProgress stringr]; };
-  hicp = derive2 { name="hicp"; version="0.4.2"; sha256="0pqghxvby1ppjg1qx3wigak997a4rr9lpkxdwp2nq5z277znnrbl"; depends=[data_table restatapi]; };
+  hicp = derive2 { name="hicp"; version="0.5.1"; sha256="1xzjlwbmibzs362k6c9y346scqvx3lf6n3pnq6bhbklwfw8jd3hz"; depends=[data_table restatapi]; };
   hiddenf = derive2 { name="hiddenf"; version="2.0"; sha256="0shc1kfiq527mkc5i97zcm51hsvknnhjg7dyfvbfqyk145v6sz00"; depends=[]; };
   hidecan = derive2 { name="hidecan"; version="1.1.0"; sha256="08yhjgmcmrnrm6rm0vlzvizadvywcs1p6mchw1synxvclfaxyi28"; depends=[dplyr ggnewscale ggplot2 ggrepel purrr shiny tibble tidyr viridis vroom]; };
   hierBipartite = derive2 { name="hierBipartite"; version="0.0.2"; sha256="1f6agxrv363wksi33b29v42hys90351ninb4li9m52n0kzv25m1f"; depends=[irlba magrittr]; };
@@ -11610,7 +11804,6 @@ in with self; {
   highDmean = derive2 { name="highDmean"; version="0.1.0"; sha256="0z81iw1nb8y4pvmhk8ay9pq4kvqxwxwv8q6p47hy8s2b465sfy1f"; depends=[]; };
   highMLR = derive2 { name="highMLR"; version="0.1.1"; sha256="0jkv6blkzdnn263wxy7p0hspgf5fchl5fbmzpqb5lfvl2f3pi3j9"; depends=[coxme dplyr gtools missForest mlr3 mlr3learners R6 survival tibble]; };
   highOrderPortfolios = derive2 { name="highOrderPortfolios"; version="0.1.1"; sha256="0qjmxiv5dcpgyl5c9vbbizwwg4lpppc9z09rf4c4lf0dfrcj4c5i"; depends=[ECOSolveR fitHeavyTail lpSolveAPI nloptr PerformanceAnalytics quadprog]; };
-  highSCREEN = derive2 { name="highSCREEN"; version="0.4"; sha256="1nd4jayfhz89kpk4i7s3n3wlza1ik4w3gspplnjmfz951f8i3wlg"; depends=[gplots]; };
   highTtest = derive2 { name="highTtest"; version="1.3"; sha256="0w7114qnywpd3wcnxhpkmv0j7hqip25p6wdigg505k0gywanr7fp"; depends=[]; };
   highcharter = derive2 { name="highcharter"; version="0.9.4"; sha256="02yyzfhzgkrp8hgdp2gyqrrvxzh9wqn3c90lyd9nlavn4qn4789z"; depends=[assertthat broom dplyr htmltools htmlwidgets igraph jsonlite lubridate magrittr purrr quantmod rjson rlang rlist stringr tibble tidyr xts yaml zoo]; };
   highfrequency = derive2 { name="highfrequency"; version="1.0.1"; sha256="0jxkmgd3sfipz1z37w9flwy8i94q6vxwlxyaflfbprwlskmlnakd"; depends=[data_table numDeriv quantmod Rcpp RcppArmadillo RcppRoll robustbase Rsolnp sandwich xts zoo]; };
@@ -11618,7 +11811,7 @@ in with self; {
   highlightHTML = derive2 { name="highlightHTML"; version="0.2.5"; sha256="0j3zrvil7k5wfsbgfj2b4nbx77qsj3b4makv5angcf8s59p7q80r"; depends=[]; };
   highlighter = derive2 { name="highlighter"; version="0.1"; sha256="1ksgqx2ryg5lfka93yns5cphnf4xc4v55ncmpisydjbcpzd2105c"; depends=[cli glue htmltools htmlwidgets rlang]; };
   highmean = derive2 { name="highmean"; version="3.0"; sha256="1lq7z0l1737j4wvsy7951405afylyywp7vf2i7girzh459fdfzpc"; depends=[MASS mnormt mvtnorm]; };
-  highr = derive2 { name="highr"; version="0.10"; sha256="0yrlpjs8qzq1d7iy4gypnf4x1gvxq6vaghkdh1kfv433yqgvqmgc"; depends=[xfun]; };
+  highr = derive2 { name="highr"; version="0.11"; sha256="19z0gwdy46z6gb46b3fs2ljxa2cn0bpvx7aam0jk75h180l183g9"; depends=[xfun]; };
   highriskzone = derive2 { name="highriskzone"; version="1.4.9"; sha256="0sg3a99pb2559chalxh66zv9mvwbgfx64vp1209vbhbx3sya48r2"; depends=[deldir fields ks maps Matrix mvtnorm polyclip spatstat spatstat_explore spatstat_geom spatstat_random splancs]; };
   highs = derive2 { name="highs"; version="0.1-10"; sha256="1vjmzbfydlm434fa1mkwwfcdhmn6sq4ppib26nxfa9zakr7h7q2c"; depends=[checkmate Rcpp]; };
   hightR = derive2 { name="hightR"; version="0.3.0"; sha256="0d4p9qcj7z0ayk4nb3pxnfwww29d7ks0jzavxsbz6m82g7x1pmyh"; depends=[]; };
@@ -11655,19 +11848,18 @@ in with self; {
   hmcdm = derive2 { name="hmcdm"; version="2.1.1"; sha256="0w3ldx8bwcqbc0mv1f8yiby08w4s37jc7gp3p53pmldqk65s7qfb"; depends=[bayesplot progress Rcpp RcppArmadillo rstantools]; };
   hmclearn = derive2 { name="hmclearn"; version="0.0.5"; sha256="0zalvgnibd1kygryqcah5d008y6a0nxpy61yyiqsriw89r01jyjk"; depends=[bayesplot MASS mvtnorm]; };
   hmeasure = derive2 { name="hmeasure"; version="1.0-2"; sha256="0l4nlny532kddiaa1nmgd37971whhwzb54mb1pvbwax7fsg6hmhw"; depends=[]; };
-  hmer = derive2 { name="hmer"; version="1.5.6"; sha256="1rnav6vd67daf4v8x7038zvakx0hh7fgcmldsipknbkilm49vdh7"; depends=[cluster dplyr GGally ggbeeswarm ggplot2 isoband lhs MASS mvtnorm pdist purrr R6 rlang stringr tidyr viridis]; };
+  hmer = derive2 { name="hmer"; version="1.6.0"; sha256="0536bdrg4cw4kqmx6czzh63b8wia6fhm02fvjv9irlmxqhmy0mxa"; depends=[cluster dplyr GGally ggbeeswarm ggplot2 isoband lhs MASS mvtnorm pdist purrr R6 rlang stringr viridis]; };
   hmm_discnp = derive2 { name="hmm.discnp"; version="3.0-9"; sha256="1cwsgjf258hwyf12sn54iqiliikmadbknlvhclhmqrr2vvj7561f"; depends=[nnet]; };
   hmmTMB = derive2 { name="hmmTMB"; version="1.0.2"; sha256="1vrjkq5vv70wjvg588w2q7sd8qhnp4iz3swx8yc3x8w7zpwkf0hn"; depends=[CircStats ggplot2 MASS Matrix mgcv optimx R6 RcppEigen stringr TMB tmbstan]; };
-  hmmm = derive2 { name="hmmm"; version="1.0-4"; sha256="1sbr85lcmcw3lv0ygqwfbarr91dp3br1xnlygy49145cvl93nfci"; depends=[MASS mvtnorm nleqslv quadprog]; };
+  hmmm = derive2 { name="hmmm"; version="1.0-5"; sha256="0fknljb97x0nkj904dxx98p0mmx238ak33cy3j4d0626a2589kyg"; depends=[MASS mvtnorm nleqslv quadprog]; };
   hmmr = derive2 { name="hmmr"; version="1.0-0"; sha256="1m0jmw0i66hm5z5rycvpdmasq8zhgsz91km491n0n923mm480hmh"; depends=[depmixS4]; };
   hms = derive2 { name="hms"; version="1.1.3"; sha256="10h2k5j97fggq3hc0qzxv1q9821y21m326v3x99zsvpl1b3g89p6"; depends=[lifecycle pkgconfig rlang vctrs]; };
   hmsr = derive2 { name="hmsr"; version="1.0.1"; sha256="0zznji4cxkgbww7cyxad68bxmqf18y76wkyw9y03d97871jr0sny"; depends=[GA msm uuid]; };
   hmstimer = derive2 { name="hmstimer"; version="0.2.1"; sha256="178jnxhbpa5y2k2cw3w7czyapb23n6yygmymijvn3pzcgx607y3v"; depends=[hms]; };
   hnp = derive2 { name="hnp"; version="1.2-6"; sha256="12cbc353ipr2rcc93skf1766g38j1pvpdkqk3cswv0cxsjl2x7pl"; depends=[MASS]; };
-  hoardeR = derive2 { name="hoardeR"; version="0.9.4-2"; sha256="1jdxfalmi4p7gwb7jndxbzbklv1fk0c57shnl4jz27s81lndg437"; depends=[bamsignals Biostrings data_table GenomicRanges GenomicTools_fileHandler httr IRanges KernSmooth knitr MASS R_utils RCurl rmarkdown Rsamtools S4Vectors seqinr stringr XML]; };
+  hoardeR = derive2 { name="hoardeR"; version="0.10"; sha256="0maqypigq2942mqbnr7a11iryv6xhhfrnyarqw3r8z5zimjy1y7p"; depends=[bamsignals Biostrings data_table GenomicRanges GenomicTools_fileHandler httr IRanges KernSmooth knitr MASS R_utils RCurl rmarkdown Rsamtools S4Vectors seqinr stringr XML]; };
   hoardr = derive2 { name="hoardr"; version="0.5.4"; sha256="0dws91z1a25ynkdjj3f1lgp6qbgvfgnqi0mw14f4b13m670il0sf"; depends=[digest R6 rappdirs]; };
   hockeystick = derive2 { name="hockeystick"; version="0.8.4"; sha256="0l5sk4x66zalmznksf9c099jn9i2i90bs57h2f44z105hzpdi606"; depends=[dplyr ggplot2 jsonlite lubridate patchwork RColorBrewer readr rvest scales tibble tidyr treemapify]; };
-  holdem = derive2 { name="holdem"; version="1.2"; sha256="0mcb4civ4p7apm7kfl88apvb4yznsmn4hggfggmjhs046g6bi2p7"; depends=[]; };
   holiglm = derive2 { name="holiglm"; version="1.0.0"; sha256="02i6smmwmvbkx351ahjzz247kky377r6ara06c5wk5jrfsfjbbr7"; depends=[checkmate MASS ROI ROI_plugin_ecos slam SuppDists]; };
   holland = derive2 { name="holland"; version="0.1.2-1"; sha256="0f5nr17rmx1m3g4aw6c1f82xdj2ll5nr8slm8ha80cg2i6a90v10"; depends=[MplusAutomation mvtnorm]; };
   holodeck = derive2 { name="holodeck"; version="0.2.2"; sha256="1phaj4yw01301rgcdv4w44q6y5vxwggmks0xdbvg9i2ak3kjcyfp"; depends=[assertthat dplyr MASS purrr rlang tibble]; };
@@ -11691,7 +11883,7 @@ in with self; {
   housingData = derive2 { name="housingData"; version="0.3.0"; sha256="0ngfx2vjx705xixzpz0rgx1481cr2szj4yfi5g7ma1hhivddl7d1"; depends=[]; };
   hover = derive2 { name="hover"; version="0.1.1"; sha256="09lpga8a87h6fyg0j3av4xjna300ifsx2ygzwsnvh2l1d70fwf8m"; depends=[htmltools shiny]; };
   howManyImputations = derive2 { name="howManyImputations"; version="0.2.5"; sha256="1vcsf8l2hflr3csjrrgv4883hz0gb3vkaa26943wi8vss7h2lb4d"; depends=[mice]; };
-  howler = derive2 { name="howler"; version="0.2.1"; sha256="00l1952hf2ngypg67y88rgn0xiicsjsyl6xf8r9r65ar9k0fl3yb"; depends=[htmlwidgets shiny]; };
+  howler = derive2 { name="howler"; version="0.3.0"; sha256="1l66nkvca5ig7l133mdfs8g3x0s6agq3jkn3c358ypvls78v4dv8"; depends=[htmlwidgets shiny]; };
   howzatR = derive2 { name="howzatR"; version="1.0.1"; sha256="00mv9qkn4ndp74jwqkjwqmy7j8ywhpl4ycg81yw3xlabbnqb292j"; depends=[magrittr rlang]; };
   hpa = derive2 { name="hpa"; version="1.3.3"; sha256="1p3bi6syn211wp2xa90mcxsl11gk8w9rpn2axlxasnqc4c3ag64x"; depends=[Rcpp RcppArmadillo RcppParallel]; };
   hpackedbubble = derive2 { name="hpackedbubble"; version="0.1.0"; sha256="1br7q4958f1zgvisglsaf41nz2ahnqi3bzazvlfnmk3nq03cb1ri"; depends=[htmlwidgets]; };
@@ -11720,21 +11912,22 @@ in with self; {
   html5 = derive2 { name="html5"; version="1.0.2"; sha256="1icji4y2x7bn4nrsf99n8b6g5v053bb9hpwvmp8bf5wh63d1ns8l"; depends=[]; };
   htmlTable = derive2 { name="htmlTable"; version="2.4.2"; sha256="039nnxnvw5l284n7w8q0hnplm0b58nwhsrpjfi5asg61f9hxv0va"; depends=[checkmate htmltools htmlwidgets knitr magrittr rstudioapi stringr]; };
   htmldf = derive2 { name="htmldf"; version="0.6.0"; sha256="19brwxqnsxzvgsqq3gsjkcyag9ag3xa3mrl5c4s7x48xx2knfh9q"; depends=[cld3 dplyr httr lubridate magrittr processx progress R_utils ranger rvest stringr tibble tidyr urltools xml2]; };
-  htmltools = derive2 { name="htmltools"; version="0.5.7"; sha256="11mkk26pjck6r2w2nv6niy90c6l13g64zi01s3j4jgq634kdic7c"; depends=[base64enc digest ellipsis fastmap rlang]; };
+  htmltools = derive2 { name="htmltools"; version="0.5.8.1"; sha256="0xpi2g87vwanp0kbs22j90pa2bban3nwrdjdb3257hq6xj9j5xpr"; depends=[base64enc digest fastmap rlang]; };
   htmlwidgets = derive2 { name="htmlwidgets"; version="1.6.4"; sha256="1l0f7bz2icixsrgg5fg8k09mv0nq9vn5ch1fywkaqpa8605qzc3w"; depends=[htmltools jsonlite knitr rmarkdown yaml]; };
   hts = derive2 { name="hts"; version="6.0.2"; sha256="06mmxdm7a2fb1r4mb2x12b00rnkaxlrmlkv5yizr3yixmn4is9wb"; depends=[forecast Matrix Rcpp RcppEigen SparseM]; };
   htsr = derive2 { name="htsr"; version="2.1.4"; sha256="1z4s3xn82fq3gh2fp7ys0vifmpgxksi0hvjj9whlkjv2dmsnzqyz"; depends=[DBI dplyr fs ggplot2 lubridate purrr Rcpp readr readxl RSQLite shiny shinyFiles stringr tibble waiter WriteXLS]; };
+  httk = derive2 { name="httk"; version="2.3.1"; sha256="1ws9bxrl0r59nni6avvr7qgs866p90l88x9xyfw2s90j5q2zzil5"; depends=[data_table deSolve ggplot2 magrittr msm mvtnorm purrr Rdpack survey truncnorm]; };
   httpRequest = derive2 { name="httpRequest"; version="0.0.11"; sha256="0qsi01fcrkps0h6r7l3l5ph3zlq9gscmq19b9ah2q2qlcv3hk4cf"; depends=[]; };
   httpcache = derive2 { name="httpcache"; version="1.2.0"; sha256="026sl19301al3sid9hlwq8jz5b0zvh9a4n3cl4niqvc2b57h133r"; depends=[digest httr]; };
   httpcode = derive2 { name="httpcode"; version="0.3.0"; sha256="0xig0rvc81hg7mw0iq9s0an1nw24fg0kfs2p2n6dzhwl9w506fjr"; depends=[]; };
-  httpgd = derive2 { name="httpgd"; version="2.0.1"; sha256="14i358r0pix6xl0i3byarasa6sry3qcajj6p49rlk7p4gw4lh85c"; depends=[AsioHeaders cpp11 unigd]; };
+  httpgd = derive2 { name="httpgd"; version="2.0.2"; sha256="0y7c98a9xyk64wb81kmbdx1s04s70m5yv8d2nkf716mjq7mn89sg"; depends=[AsioHeaders cpp11 unigd]; };
   httping = derive2 { name="httping"; version="0.2.0"; sha256="0hdcf51yak8yagy4xj9cyck934lgmvpkd08jvlql33ir5mqvvv3i"; depends=[httpcode httr jsonlite magrittr pryr]; };
   httpproblems = derive2 { name="httpproblems"; version="1.0.1"; sha256="0zd683xd9f9hz6dxm4bmic54jqjcabr23kwl6afsmdjwnrwwsn06"; depends=[]; };
   httptest = derive2 { name="httptest"; version="4.2.2"; sha256="0c370jxkd9dzqg5pdf2mcv2kjzr9zp9qai9riivjgygj6jhlcjav"; depends=[curl digest httr jsonlite testthat]; };
-  httptest2 = derive2 { name="httptest2"; version="1.0.0"; sha256="0qgkw93a1cv1n81jvwp8i64snaac84rbr76mg8c5b4a2f4fhysi1"; depends=[digest httr2 jsonlite rlang testthat]; };
-  httpuv = derive2 { name="httpuv"; version="1.6.14"; sha256="10fi7j8rpa55l7bdygxl608i6f927ws2y1lv4qz8g6dx4spaq9j0"; depends=[later promises R6 Rcpp]; };
+  httptest2 = derive2 { name="httptest2"; version="1.1.0"; sha256="0vj6ynxc2xdq4xhl6df8aa3582s7jf5m71hxqxhjsjfqdzm72dv8"; depends=[digest httr2 jsonlite rlang testthat]; };
+  httpuv = derive2 { name="httpuv"; version="1.6.15"; sha256="1l2y435i3dvq7fnalpvc7h5wh0sc5clygdvcvghz77d34cvfsvay"; depends=[later promises R6 Rcpp]; };
   httr = derive2 { name="httr"; version="1.4.7"; sha256="0fisvq3zydmqagn7lj6x98zxkcl7l95gfydl27zkigb7zg1fcm8m"; depends=[curl jsonlite mime openssl R6]; };
-  httr2 = derive2 { name="httr2"; version="1.0.0"; sha256="0jaajfr1hr6bzb1vz2nw2csl2l09kbq619vsq5yrlchcarpjv1fb"; depends=[cli curl glue lifecycle magrittr openssl R6 rappdirs rlang vctrs withr]; };
+  httr2 = derive2 { name="httr2"; version="1.0.1"; sha256="1cpi2yr66g0nwd5ybz6254ivggvxql0bas2hwpakrcw1161jvs9k"; depends=[cli curl glue lifecycle magrittr openssl R6 rappdirs rlang vctrs withr]; };
   hubeau = derive2 { name="hubeau"; version="0.5.0"; sha256="1fzy24wx93rc9niiksir0hys2f1slafrng9rkwmjaf51lsj0n1qw"; depends=[dplyr httr magrittr purrr tibble urltools]; };
   hudr = derive2 { name="hudr"; version="1.2.0"; sha256="1kvqbgyhyr4lvzqvfsa1597px8ydqpacphnm902hchqv5qvbxgm4"; depends=[data_table httr janitor magrittr]; };
   hues = derive2 { name="hues"; version="0.2.0"; sha256="062i7yc16nmnp15c1jh4xffw2lpklp36wkn1yvagh186ahnlgffx"; depends=[colorspace]; };
@@ -11758,7 +11951,7 @@ in with self; {
   hwriter = derive2 { name="hwriter"; version="1.3.2.1"; sha256="1wxnv8h9cs65m3z01dpnnkgn2cpwfsck70g1jz9nbkr7mdaa4bzd"; depends=[]; };
   hwsdr = derive2 { name="hwsdr"; version="1.1"; sha256="1dfrqcd0nccrsv01hsvp2xic9nfhsqmvl7cqvv28amayqyv3lizk"; depends=[dplyr httr sf terra]; };
   hwwntest = derive2 { name="hwwntest"; version="1.3.2"; sha256="1j6lpbrf3jp3nrz9m0s74inkr2ww4g8ajz30qjhlfwmacww0hdsg"; depends=[polynom wavethresh]; };
-  hySAINT = derive2 { name="hySAINT"; version="1.2.0"; sha256="15rzlk599b5kanfqx4g9aaxnxvxk6nl6mlhvs97nn2aary91rci4"; depends=[energy Matrix pracma selectiveInference SIS VariableScreening]; };
+  hySAINT = derive2 { name="hySAINT"; version="1.2.1"; sha256="1mmw0k63rci7w19livfv7mnsrqjwk0cc51wlyn58ksnf9bbqphch"; depends=[energy Matrix pracma selectiveInference SIS VariableScreening]; };
   hySpc_testthat = derive2 { name="hySpc.testthat"; version="0.2.1"; sha256="12za828sw2al3aa236ksmnwxpy2sqw8gl8b3p3vvrjk1l31l1qcm"; depends=[testthat]; };
   hybridModels = derive2 { name="hybridModels"; version="0.3.7"; sha256="0fj3dvv7s1hlicvlb077pkhbj894brzgdxhp67jck9zpy2qymzxq"; depends=[doParallel doRNG foreach ggplot2 GillespieSSA reshape2 stringr]; };
   hybridogram = derive2 { name="hybridogram"; version="0.3.2"; sha256="14p2gwmgcaf84aycdc2a51frw2pccrffsjk8n83gvj2ans8phrr9"; depends=[pheatmap]; };
@@ -11767,8 +11960,9 @@ in with self; {
   hydflood = derive2 { name="hydflood"; version="0.5.7"; sha256="18gw2jipssaid5q004gyvfk56vgvajv69kd0f6zh2fp7sgq5w33d"; depends=[hyd1d raster Rdpack sf terra]; };
   hydra = derive2 { name="hydra"; version="0.1.0"; sha256="0r3r8cds4h15narawxhzkrvgnf00vlgrgqdgnmbzjyyb1dmry8wn"; depends=[]; };
   hydraulics = derive2 { name="hydraulics"; version="0.7.0"; sha256="0aw84gr2fcqgf20bjf9658wqyhlp40v3pkvsj72l27s39wma94xf"; depends=[ggplot2 gtools pracma purrr reshape2 tibble units]; };
+  hydroDCindex = derive2 { name="hydroDCindex"; version="1.0.0"; sha256="0nci4jj2aca2kaq4cgrv9sq9pksjaagqik2y8j1c2a1w39qjzyan"; depends=[]; };
   hydroEvents = derive2 { name="hydroEvents"; version="0.11"; sha256="1w433lmzk6lr2lnqn1qcq13c980kpi0r881cdzm56n53s89zdh36"; depends=[]; };
-  hydroGOF = derive2 { name="hydroGOF"; version="0.5-4"; sha256="0fif5kwpkxkwfw00whfprwibg21bgyk2a93k6323k7gax2c3r5ff"; depends=[hydroTSM xts zoo]; };
+  hydroGOF = derive2 { name="hydroGOF"; version="0.6-0"; sha256="17i68al88d4xvam1fq63knsqgd29s4wvpd31z6zhnbbcbpd3j67v"; depends=[hydroTSM xts zoo]; };
   hydroTSM = derive2 { name="hydroTSM"; version="0.7-0"; sha256="13jaz7mrjmfvankncfmnwxa0m2r78a9p686h0my3m3sv9bvz1qd6"; depends=[classInt e1071 lattice xts zoo]; };
   hydroToolkit = derive2 { name="hydroToolkit"; version="0.1.0"; sha256="0bij4365hczvq17wj9hp0570v35m8ili11mp9dzfj3mvhhqrc9p4"; depends=[ggplot2 lubridate plotly readxl reshape2]; };
   hydrogeo = derive2 { name="hydrogeo"; version="0.6-1"; sha256="16m6yvr9yhvb0vdh9pqd6gzf3h9km7gd89y6risjddv6g83469k8"; depends=[]; };
@@ -11778,15 +11972,16 @@ in with self; {
   hydrostats = derive2 { name="hydrostats"; version="0.2.9"; sha256="11ipfp5dnl336wbsw0nrrcd68hccp8igvlrr93rc3hrvif3slkim"; depends=[]; };
   hydrotoolbox = derive2 { name="hydrotoolbox"; version="1.1.2"; sha256="0m5crm8n8i3fv43am649cdyrbfcfbais8fwrg6c7zy81dbhmy9m9"; depends=[ggplot2 lubridate magrittr plotly Rcpp readxl reshape2 tibble zoo]; };
   hyfo = derive2 { name="hyfo"; version="1.4.6"; sha256="03z36ddq6vpld1v876adp5xrz0hjy46vhs5sn8sgaa57fhmya6cm"; depends=[data_table ggplot2 lmom maps MASS moments ncdf4 plyr reshape2 sf sp zoo]; };
-  hyper2 = derive2 { name="hyper2"; version="3.0-0"; sha256="09nq5vxih9f7731nrd5avpk6gw4wbh9rpq4bmq7373ikgc3qy3mf"; depends=[alabama calibrator cubature disordR magrittr mathjaxr partitions Rcpp Rdpack]; };
-  hyperSpec = derive2 { name="hyperSpec"; version="0.100.0"; sha256="0m0ws6lm5q1555n0qhixj4fqq4bbcf7i7d73pg85z74a3058gk5s"; depends=[dplyr ggplot2 lattice latticeExtra lazyeval testthat xml2]; };
+  hyper_fit = derive2 { name="hyper.fit"; version="1.2.1"; sha256="1w6ra4sqdvzcyhsiyi3lgzy9m4ca3898qjdssdfgmarkrc13bk3n"; depends=[LaplacesDemon magicaxis MASS rgl]; };
+  hyper2 = derive2 { name="hyper2"; version="3.1-0"; sha256="11bn7rhadisb46ls6ph9xbixz9zygd4ivjn3hgbv6059l2f2v0i0"; depends=[alabama calibrator cubature disordR frab magrittr partitions Rcpp Rdpack]; };
+  hyperSpec = derive2 { name="hyperSpec"; version="0.100.2"; sha256="0g4lc26prwpb7qsk4q0rzhzz7lw9x4hfrnsbzikwv3na6lqkhkip"; depends=[dplyr ggplot2 lattice latticeExtra lazyeval rlang testthat xml2]; };
   hyperbolicDEA = derive2 { name="hyperbolicDEA"; version="1.0.0"; sha256="05iqbkg3id7ysfmandan416mczzc76qq6kz5lm7s9444a6101agf"; depends=[Benchmarking doParallel dplyr foreach lpSolveAPI nloptr]; };
   hypercube = derive2 { name="hypercube"; version="0.2.1"; sha256="0m0n64rl5fnhvhfdknrza8a0h5lw8vbgakaqbyfx77ixhwqhjn1l"; depends=[dplyr plotly stringr]; };
   hypergate = derive2 { name="hypergate"; version="0.8.5"; sha256="10lhjj8sgjv9p6v0n93f1jgybvgb1yr92slrqjdphag4clqvygw0"; depends=[]; };
   hypergeo = derive2 { name="hypergeo"; version="1.2-13"; sha256="13jdiy216znwhr91iqnh03mvkmyscw439syb3h4i67dd78sphnvd"; depends=[contfrac deSolve elliptic]; };
   hyperoverlap = derive2 { name="hyperoverlap"; version="1.1.1"; sha256="10kcphn5zl1pl70xg9bn947i9mbnjxk03p6y7xhdlv152cihffw0"; depends=[e1071 ggplot2 MASS matlib misc3d rgl]; };
   hypersampleplan = derive2 { name="hypersampleplan"; version="0.1.1"; sha256="1sk3s1jm46ac4i7p433s3kyngj86kq2821zzhp30a3y8vi1j2psq"; depends=[]; };
-  hypervolume = derive2 { name="hypervolume"; version="3.1.3"; sha256="03x5zf1w44m5xb255lg4mwg98sr2cl4wvy7wb13lpk098w71q2id"; depends=[caret data_table doParallel dplyr e1071 fastcluster foreach geometry ggplot2 hitandrun ks maps MASS mvtnorm palmerpenguins pbapply pdist progress purrr raster Rcpp RcppArmadillo sp terra]; };
+  hypervolume = derive2 { name="hypervolume"; version="3.1.4"; sha256="1vw9s85gr1mv7c21x7rk66bz7wg3nfy874ixrhbcksyrxjq82q3c"; depends=[caret data_table doParallel dplyr e1071 fastcluster foreach geometry ggplot2 hitandrun ks maps MASS mvtnorm palmerpenguins pbapply pdist progress purrr raster Rcpp RcppArmadillo sp terra]; };
   hypoRF = derive2 { name="hypoRF"; version="1.0.0"; sha256="1yyq1pjxm9p395wq4zfimvcagspl8vlk0kzpa92pr084q5f7jcyr"; depends=[ranger]; };
   hypothesis = derive2 { name="hypothesis"; version="1.1.0"; sha256="0mllh8lamls0rrbr9d12xa7a56pa2zahvr243kbfmhad81nalpl7"; depends=[glue htmltools htmlwidgets httr jsonlite magrittr purrr rlang]; };
   hypothesisr = derive2 { name="hypothesisr"; version="0.1.1"; sha256="0z06risagphhvqiw4lrxy52q6q2yr10w2yxsm8iz1wh9ik097pcv"; depends=[dplyr httr jsonlite]; };
@@ -11795,6 +11990,7 @@ in with self; {
   hystReet = derive2 { name="hystReet"; version="0.0.3"; sha256="1vrby9lgy0nm5wa5r1y3k3l2s9fc8vdf4szy8isvnzayr464xvwi"; depends=[httr jsonlite lubridate]; };
   hystar = derive2 { name="hystar"; version="1.0.0"; sha256="1gyk78nfhhglry2dwy21h9s2hqlqisd7cffwg2864spmwml4brcf"; depends=[Rcpp]; };
   hysteresis = derive2 { name="hysteresis"; version="2.7.2"; sha256="0jn8glihvnf6l6gf91cisqi4h1iscp7qqvchkbcvz0mv8cvklmg8"; depends=[car MASS msm]; };
+  hytest = derive2 { name="hytest"; version="0.1.0"; sha256="0zqbfra2ynnk7xhqbisrbjycydz4f91m6aljyym67iv0lpizdrwi"; depends=[]; };
   i18n = derive2 { name="i18n"; version="0.2.0"; sha256="1ksvrrpymflfbr7acnv3sh4xa0xqjp44ngdpkp500p50mwpww1wr"; depends=[magrittr]; };
   i2extras = derive2 { name="i2extras"; version="0.2.1"; sha256="14k9s5ppq3c7ldh6gqi82awmkk34ac0br0qr42gqba9lrssf4bsr"; depends=[ciTools data_table dplyr ggplot2 incidence2 MASS rlang tibble tidyr tidyselect vctrs]; };
   iAR = derive2 { name="iAR"; version="1.2.0"; sha256="0svxn81a0yq3m51594zrpy99i8p9zcfjzbxsi19yyfcm6iymzv24"; depends=[ggplot2 Rcpp RcppArmadillo Rdpack]; };
@@ -11802,7 +11998,6 @@ in with self; {
   iBART = derive2 { name="iBART"; version="1.0.0"; sha256="05vwwdlm78s7qa5lv717yvw48alk7k8wapcs9b1rcrhpam0kr1y3"; depends=[bartMachine foreach glmnet]; };
   iBST = derive2 { name="iBST"; version="1.2"; sha256="0z7v679s5w270dfls61hh4fab9pzzj4lsqwsx06r59s0hlsrv5nw"; depends=[Rcpp rpart survival]; };
   iBreakDown = derive2 { name="iBreakDown"; version="2.1.2"; sha256="1qacvfzknchfm27mhl7a357fnb6lzjkj4vh8lch5aljz82sdmdaf"; depends=[ggplot2]; };
-  iC10 = derive2 { name="iC10"; version="1.5"; sha256="1xq6xv582wxdb0nc2nia3q38155gx8z26idiqyx7h1rjb20hhwdl"; depends=[iC10TrainingData impute pamr]; };
   iC10TrainingData = derive2 { name="iC10TrainingData"; version="1.3.1"; sha256="175ymib3h359296hk36psryksisipx63ybvacz8hys21irzx58j1"; depends=[]; };
   iCAMP = derive2 { name="iCAMP"; version="1.5.12"; sha256="0rx0mjkmlqf5awq387h1bzampvkwp67jbkjz29qmw85ma6vlqbpi"; depends=[ape bigmemory data_table DirichletReg Hmisc minpack_lm nortest permute vegan]; };
   iCARH = derive2 { name="iCARH"; version="2.0.2.1"; sha256="1x703ydssmgb7j0hgqn3d5sh9457jgj7s2m8i12x2b9wvkh0fz8j"; depends=[abind ggplot2 glue igraph KEGGgraph MASS Matrix mc2d RCurl reshape2 rstan]; };
@@ -11814,16 +12009,17 @@ in with self; {
   iForecast = derive2 { name="iForecast"; version="1.0.7"; sha256="03g15xps3bymx2jj6j02pr1llk3lcb5lc3s5r0i2c86qc92lprch"; depends=[caret magrittr]; };
   iGSEA = derive2 { name="iGSEA"; version="1.2"; sha256="1xlz8mbxqnrwyqj7jwma7vmvjlaccajbfxf3hi4wp5qs2pch8806"; depends=[]; };
   iGasso = derive2 { name="iGasso"; version="1.6.1"; sha256="050jq6b4k8k8hj0cbxz6dzzjp5lgp8bf00aq9jxwb74pmvmsrlwq"; depends=[CompQuadForm lattice MASS MBESS]; };
-  iGraphMatch = derive2 { name="iGraphMatch"; version="2.0.4"; sha256="1p0cp581h3pdarg9pglxsazdxdmnjwkib77cll71havjyl7i9b0z"; depends=[clue igraph irlba Matrix Rcpp]; };
+  iGraphMatch = derive2 { name="iGraphMatch"; version="2.0.5"; sha256="1cbmcqvw8xk55lv3nxj3xzmkasvaayv04xnzqjdr16yvjznpzkfd"; depends=[clue igraph irlba Matrix Rcpp]; };
   iIneq = derive2 { name="iIneq"; version="1.0.2"; sha256="15487majkslabw33dgqfx0jmbzzjhiy8z07bki5540d1wf6rmmnn"; depends=[doParallel foreach]; };
-  iMRMC = derive2 { name="iMRMC"; version="1.2.5"; sha256="0a99arybhv5awlkrmzyv6m4cbdszw77qjw90ywwbddkccq1fq2h2"; depends=[]; };
+  iMRMC = derive2 { name="iMRMC"; version="2.0.0"; sha256="13dz307rqyf9pm6pc8qzx2r8whvcm8k53pryzxh10pyqdswy8wgm"; depends=[]; };
   iMediate = derive2 { name="iMediate"; version="0.5.5"; sha256="1lwhrzm4g2fcazh782g7p11v5pyx165ig1dzgkmdmjffpwk0w8b4"; depends=[MBESS mvtnorm plotly]; };
   iNEXT = derive2 { name="iNEXT"; version="3.0.1"; sha256="1nf4jhwqx5im966qzq7si78c5q4jgsa73d74ya8q8aj02n49jcyy"; depends=[ggplot2 Rcpp reshape2]; };
-  iNEXT_3D = derive2 { name="iNEXT.3D"; version="1.0.2"; sha256="09m4r8j5c56l7qxzz5kxx8pzbf7lri40vqz4s4arpj9b7b5imfl7"; depends=[ape dplyr ggplot2 phyclust Rcpp reshape2 tibble tidytree]; };
-  iNEXT_beta3D = derive2 { name="iNEXT.beta3D"; version="1.0.0"; sha256="1ia5midwraq1im0gh61fcpg2whq43mlby80b92y5fjdhh0ghbx8f"; depends=[abind ape dplyr future_apply ggplot2 iNEXT_3D magrittr phyclust tibble tidyr tidytree]; };
+  iNEXT_3D = derive2 { name="iNEXT.3D"; version="1.0.5"; sha256="1dpfwf95sin8yn9mn60d9jappsq1spm02x4p0ikjj637qwisgpjs"; depends=[ape dplyr ggplot2 phyclust Rcpp reshape2 tibble tidytree]; };
+  iNEXT_4steps = derive2 { name="iNEXT.4steps"; version="1.0.0"; sha256="0kjzrgwhhzgvwyrcrqfbshscyrx34blfjxr23iay9wby6qpfmb1j"; depends=[dplyr ggplot2 ggpubr iNEXT_3D purrr reshape2]; };
+  iNEXT_beta3D = derive2 { name="iNEXT.beta3D"; version="1.0.2"; sha256="176gy6ldgslg6r2c18fmfc98jljsvvgx5fmgv0g6jzl64kirc5j8"; depends=[abind ape dplyr future_apply ggplot2 iNEXT_3D magrittr phyclust tibble tidyr tidytree]; };
   iNZightMR = derive2 { name="iNZightMR"; version="2.3.0"; sha256="162gw11lfg53m5iw18vr9kvbklr6601mi53fbczcv4ppfpnc5qwq"; depends=[]; };
   iNZightPlots = derive2 { name="iNZightPlots"; version="2.15.3"; sha256="0pc1z7ikh3c2l5s1dljdzaqk83m6i5p64p771waz5frkyyf3bg4r"; depends=[boot chron colorspace dichromat emmeans expss hexbin hms iNZightMR iNZightTools lubridate magrittr quantreg rlang s20x scales stringr survey units]; };
-  iNZightRegression = derive2 { name="iNZightRegression"; version="1.3.3"; sha256="1qlakpx509cfj9r6g0pw28s5wwjg9i0srvhjhzarq4myxzqd78yq"; depends=[car dplyr GGally ggplot2 ggrepel ggtext iNZightPlots multcomp patchwork]; };
+  iNZightRegression = derive2 { name="iNZightRegression"; version="1.3.4"; sha256="0zqfb25gz4dwf0hqccgq3pb5wv2zmkw3ldkpscwkmc12pz2xm7im"; depends=[car dplyr GGally ggplot2 ggrepel ggtext iNZightPlots multcomp patchwork]; };
   iNZightTS = derive2 { name="iNZightTS"; version="2.0.0"; sha256="1wzzzkl64m7mk0mpkvgkj7ahlqdja9hyhwficprd4kyqxrv00f0r"; depends=[colorspace dplyr evaluate fable fabletools feasts forcats ggplot2 ggtext glue lubridate patchwork rlang stringr tibble tidyr tsibble urca]; };
   iNZightTools = derive2 { name="iNZightTools"; version="2.0.1"; sha256="0qmpj8hwg4gmbyhp4r1li3rrq2f5743kg04r7s7ii0j9gwsw3y0s"; depends=[DBI dplyr forcats glue magrittr purrr readr rlang srvyr stringr survey tibble tidyr units]; };
   iRafNet = derive2 { name="iRafNet"; version="1.1-1"; sha256="0w9bry49apkrrrabglnv5w9l47jakmc30jh8q22a8gazwss293fb"; depends=[ROCR]; };
@@ -11864,7 +12060,7 @@ in with self; {
   iccCounts = derive2 { name="iccCounts"; version="1.1.2"; sha256="1g9fb42pdfa4jwwp789v22xzr9y69vf4ff06g2avxcv5s792i84w"; depends=[Deriv dplyr ggplot2 glmmTMB gridExtra VGAM]; };
   iccTraj = derive2 { name="iccTraj"; version="1.0.4"; sha256="0chac68jsxnmy0whm7ajnlv68xdplwzy5xa7pdybyp3zlxyj35ss"; depends=[doParallel dplyr foreach magic purrr sp spacetime trajectories]; };
   iccbeta = derive2 { name="iccbeta"; version="1.2.0"; sha256="03ms1c8qpbgxabj3hh4n0gwcazw6cd0cvixck5rz8fkvj04xzjak"; depends=[lme4 Rcpp RcppArmadillo]; };
-  iccde = derive2 { name="iccde"; version="0.3.5"; sha256="1z7ra8s0sddjmbfb8flgp4kmz1ckgwshz8h2nnpbd3liav84b5xv"; depends=[]; };
+  iccde = derive2 { name="iccde"; version="0.3.6"; sha256="1q6nrbhirrzjjmqwn7mc0wziknqx9zi70s5riza2ic5shgsjq87i"; depends=[]; };
   icd_data = derive2 { name="icd.data"; version="1.0"; sha256="0cynr9327wfg88661w4hali48mb6ghyvlqgybsa38k9bbf57v8aa"; depends=[]; };
   icdGLM = derive2 { name="icdGLM"; version="1.0.0"; sha256="1mh9kwn21n19v4lrmj33ghpna7dl66fx19gi6lcjanmrpzrkwdnz"; depends=[Matrix]; };
   icdpicr = derive2 { name="icdpicr"; version="1.0.1"; sha256="099ipcpz1cff7cr572lww34az4wwym8phpbk2ph0545k2fk0c56d"; depends=[stringr]; };
@@ -11883,7 +12079,7 @@ in with self; {
   icesTAF = derive2 { name="icesTAF"; version="4.2.0"; sha256="0xifza8s24gy09fibqdpkh0zc723jkx09ycx44gqffrx0ch8syds"; depends=[data_tree purrr roxygen2 TAF]; };
   icesVMS = derive2 { name="icesVMS"; version="1.1.4"; sha256="0ppml34s4zz3vav08fjaj71bml8amaslw22zmib0scvw8k70jlir"; depends=[glue httr icesConnect icesVocab]; };
   icesVocab = derive2 { name="icesVocab"; version="1.2.0"; sha256="0cd2w0w2m176mpfd3lzvxl88bcli1qrkjrli539i764nlyh0ipl0"; depends=[xml2]; };
-  ichimoku = derive2 { name="ichimoku"; version="1.5.0"; sha256="037w2mijv7srisypjydr6iwxf432gbcvvbmdghffax5lzh9lw266"; depends=[ggplot2 mirai nanonext RcppSimdJson secretbase shiny xts zoo]; };
+  ichimoku = derive2 { name="ichimoku"; version="1.5.2"; sha256="0ssvsdkzh9mk6jcg88sljgqdcwwbwy55si855mk8ihpcddvsy61x"; depends=[ggplot2 mirai nanonext RcppSimdJson secretbase shiny xts zoo]; };
   icmm = derive2 { name="icmm"; version="1.2"; sha256="179q8w60g4yrv6wqgfmg47by1zc1mbhsdjgl7jq4wirqvwnxvgym"; depends=[EbayesThresh]; };
   icosa = derive2 { name="icosa"; version="0.11.0"; sha256="1z1xajdg7q5n3ijjy45klrh4q3i855afl9088f42dwidyban3w3h"; depends=[igraph Rcpp sf sp]; };
   icpsrdata = derive2 { name="icpsrdata"; version="0.6.1"; sha256="0mc96yj0nld63s4bhagha9dp8c2a2c7qdnk3lfh7yk0vq9ghjfin"; depends=[httr purrr rvest]; };
@@ -11891,7 +12087,7 @@ in with self; {
   icrf = derive2 { name="icrf"; version="2.0.2"; sha256="1apd9klng8dhd9z9nzqzpx8i84rvpwgyam9mzyh8jk6vd49cgjaf"; depends=[]; };
   icsw = derive2 { name="icsw"; version="1.0.0"; sha256="0g7bcqs0rpbs1p202i9wjbl8hhy3r196zambm044xyf7kvsbzzf6"; depends=[]; };
   idar = derive2 { name="idar"; version="1.5"; sha256="0433kyhwzaicb10jmb6b6b6lbfhd5g2zsdrg6v02lndb2j7dlk5c"; depends=[ape FD picante spatstat spatstat_explore spatstat_geom spatstat_random]; };
-  idarps = derive2 { name="idarps"; version="0.0.3"; sha256="15ckavi7j4afwyq3m0z2kpq2j93wxmjfnhn7lh6r4ymwmj7bbsvy"; depends=[]; };
+  idarps = derive2 { name="idarps"; version="0.0.4"; sha256="0n76v5p69hkh98ckvcn8nwg6by29mmhkvbzffm52q5071qzx64b7"; depends=[]; };
   idbr = derive2 { name="idbr"; version="1.2"; sha256="1qcply9n3027mqm5fwi8j4dvjxly7pxm74b0ffah8jjjr9hvk5rv"; depends=[countrycode dplyr httr jsonlite purrr rnaturalearthdata sf stringr]; };
   idcnrba = derive2 { name="idcnrba"; version="1.1.0"; sha256="0kdsvp263q28fs0qdvrjshp02n6r01zwjj7sj7r24rxppn77xa40"; depends=[base64enc dplyr DT flexdashboard haven htmlwidgets markdown miniUI nrba openxlsx readr rmarkdown rstudioapi shiny shinyjs srvyr survey tibble]; };
   ideamdb = derive2 { name="ideamdb"; version="0.0.9"; sha256="1f4dcv6c8ny7pik547f4840vhll26mzfcijnfsiqx31xhn0gsizd"; depends=[dplyr ggplot2 stringr tidyr]; };
@@ -11911,23 +12107,26 @@ in with self; {
   ie2misc = derive2 { name="ie2misc"; version="0.9.1"; sha256="09f40nn56s6j70zz1fhkf7yyzdrypjd7khar82ffj1gsr1k0rnzi"; depends=[assertthat checkmate data_table gWidgets2 lubridate mgsub openxlsx reader readxl stringi]; };
   ie2miscdata = derive2 { name="ie2miscdata"; version="1.0.4"; sha256="18hvkip57gvrmz3m3p66mlw45h60091jxbd2b65dimmc0k6wi7q4"; depends=[]; };
   ieeeround = derive2 { name="ieeeround"; version="0.2-0"; sha256="0xaxrlalyn8w0w4fva8fd86306nvw3iyz44r0hvay3gsrmgn3fjh"; depends=[]; };
-  iemisc = derive2 { name="iemisc"; version="1.0.4"; sha256="1yrppxylsrlh1l549qn1x0qnyd32zj3a2xji1a3qiv1sd1h7js41"; depends=[anytime assertthat berryFunctions checkmate chem_databases data_table foreach fpCompare geosphere ggplot2 ggpubr gsubfn iemiscdata lubridate matlab matlab2r measurements mgsub pracma qdapRegex ramify rivr roperators round sf signal sjmisc stringi units USA_state_boundaries zoo]; };
-  iemiscdata = derive2 { name="iemiscdata"; version="1.0.1"; sha256="10cixkyx1x9m0vblxp0jrbxz3aqxf64v11ls630q55r4803dpfyz"; depends=[]; };
-  iemisctext = derive2 { name="iemisctext"; version="0.9.99"; sha256="02rr7sjjbrvfxwjl87f2ki245a8cw5fvx7z2z4rl8ixxlyxj9p5v"; depends=[]; };
+  iemisc = derive2 { name="iemisc"; version="1.0.5"; sha256="0dr9p4y0vdwxsd5dqp5ahqnv1sfckb3xy9i0bbas009g5hnzxp92"; depends=[anytime assertthat berryFunctions checkmate chem_databases data_table foreach fpCompare geosphere ggplot2 ggpubr gsubfn iemiscdata lubridate matlab matlab2r measurements mgsub pracma qdapRegex ramify rivr roperators round sf signal sjmisc stringi units USA_state_boundaries zoo]; };
+  iemiscdata = derive2 { name="iemiscdata"; version="1.0.2"; sha256="1wsakabhj9majl4w63bpc95ccdvfg7xz9arj0ikvdj6dh1ardac6"; depends=[]; };
+  iemisctext = derive2 { name="iemisctext"; version="1.0.1"; sha256="0280wib0xdnjl2ff8pvshjaj6riaqbwp2v96z2nj1w0lahyq69a3"; depends=[]; };
+  ieugwasr = derive2 { name="ieugwasr"; version="1.0.0"; sha256="0pgx2ii23rvflvz55hf31956rzp8y4avski27i2xmx3gqydzhgqr"; depends=[dplyr httr jsonlite]; };
   ifCNVR = derive2 { name="ifCNVR"; version="0.1.0"; sha256="0qcmgd3vi413n4ipa6ybkr7a1kwxyr2al8cw4gfr8fp2av1sk4vc"; depends=[data_table isotree rmarkdown]; };
   ifaTools = derive2 { name="ifaTools"; version="0.23"; sha256="16xf3165gkmh3f9843m0n4wqdwwdfs6rjh64qcpz8srsm2z5y3l2"; depends=[ggplot2 OpenMx reshape2 rpf shiny]; };
   ifctools = derive2 { name="ifctools"; version="0.3.6"; sha256="1qw50vc3icdfchas1l4d3i3i1r0i0w0kj91xm4wkyj4fsl19qqam"; depends=[]; };
+  ifo = derive2 { name="ifo"; version="0.1.0"; sha256="0f2c7c6z1h7b5c0g21yr2drb7yqk68ivnxaa8m3ck2xlm226fa5g"; depends=[readxl rvest tidyr]; };
   ifpd = derive2 { name="ifpd"; version="0.1.0"; sha256="06vylxzwk2p5wprxvzwj6wydsa1v9pfzd1v03m0jwgwk272slfg6"; depends=[readxl zoo]; };
   ifs = derive2 { name="ifs"; version="0.1.10"; sha256="0w27z3fjv007717dsn72bm9hbpgzd6pfib6maf9ihnsjllb6k0v5"; depends=[]; };
   ig_vancouver_2014_topcolour = derive2 { name="ig.vancouver.2014.topcolour"; version="0.1.2.0"; sha256="0yclvm6xppf4w1qf25nf82hg1pliah68z7h3f683svv0j62q748h"; depends=[]; };
   igate = derive2 { name="igate"; version="0.3.3"; sha256="0b8dk976z0764cmxwcq6w2f3akv7iivivharinq029p90b600qza"; depends=[dplyr ggplot2 kableExtra knitr rmarkdown stringr xtable]; };
   igcop = derive2 { name="igcop"; version="1.0.2"; sha256="19ffvkpsg41ba41jl3nd4s41kw4f4ncwcgpsf2h9cm0y19l4dja0"; depends=[Rcpp rlang vctrs]; };
-  iglu = derive2 { name="iglu"; version="4.0.0"; sha256="0gcw15pw54dngqlimdxl6jhq9pbaapw1zqyb6xf6pxxg6gb3k2fs"; depends=[caTools dplyr DT ggplot2 ggpubr gridExtra gtable hms lubridate magrittr patchwork pheatmap plotly scales shiny tibble tidyr zoo]; };
+  iglu = derive2 { name="iglu"; version="4.1.6"; sha256="1v73715hjmmyn1264m0q1skirvgfjwx316vlslysr5bvbcwggljf"; depends=[caTools dplyr DT ggplot2 ggpubr gridExtra gtable hms lubridate magrittr patchwork pheatmap plotly scales shiny tibble tidyr zoo]; };
   igoR = derive2 { name="igoR"; version="0.2.0"; sha256="06f9f363zf1k026a0xg5myydzhgl6kgkqp74sz0jwgl44j2zp44s"; depends=[]; };
   igraph = derive2 { name="igraph"; version="2.0.3"; sha256="0xlg5lxzr8dc260fii43chsspqvb962i1yrcars988b78lnig2lf"; depends=[cli cpp11 lifecycle magrittr Matrix pkgconfig rlang vctrs]; };
   igraphdata = derive2 { name="igraphdata"; version="1.0.1"; sha256="19w5npa4b8c054v94xlr7nmhhg2fhq4m8jbds86skp8zvipl4rkl"; depends=[]; };
   igraphinshiny = derive2 { name="igraphinshiny"; version="0.1"; sha256="1ww5s4jfihzcx4k35lbhzsf54z720xh7b2p5alzk843m6rx77986"; depends=[igraph shiny]; };
   igraphtosonia = derive2 { name="igraphtosonia"; version="1.0"; sha256="0vy9jnpjp68l8s0hi1l57j9p41c543h3iqv16pwl550f38zqp8j6"; depends=[igraph]; };
+  igraphwalshdata = derive2 { name="igraphwalshdata"; version="0.1.0"; sha256="06d0z8vbmnxqvinicr9ywdkyisl3kg93wyh3981b1ifl16fm8rdd"; depends=[igraph]; };
   igrf = derive2 { name="igrf"; version="1.0"; sha256="1287mx1fpbq9y8jbyb43hlignkqg313rn3kc52pm6b2n77ipkrc6"; depends=[]; };
   ihclust = derive2 { name="ihclust"; version="0.1.0"; sha256="049jlx8bspl1md06zyh3m7fr666cymmcwarsjrkr8pdd7vlg918j"; depends=[doParallel factoextra foreach ggplot2]; };
   iheatmapr = derive2 { name="iheatmapr"; version="0.7.1"; sha256="1c4dvp0mvw3m6x0kdw05yja2rm1mkrjjmjfj67f0vvs5sqyaqwhv"; depends=[fastcluster ggdendro htmlwidgets jsonlite knitr magrittr RColorBrewer scales]; };
@@ -11935,6 +12134,7 @@ in with self; {
   ihpdr = derive2 { name="ihpdr"; version="1.2.1"; sha256="1qa9ndb5aqbmlqbl0ivh10ddah2rbhsc6928dml20fjgz7lggdww"; depends=[curl dplyr httr lubridate magrittr purrr readxl rlang rvest tidyr xml2]; };
   iimi = derive2 { name="iimi"; version="1.0.2"; sha256="1bkxbqxa6i42mvz7j3191pzd2z35pqbzmn2b0kgbijlrfv8rg18z"; depends=[Biostrings caret data_table dplyr GenomicAlignments IRanges mltools MTPS R_utils randomForest Rsamtools stringr xgboost]; };
   ijtiff = derive2 { name="ijtiff"; version="2.3.4"; sha256="1abidy6fvz0qzxicviggkpvcq434cpbz4rm8nbxbfmyj3ndbadv9"; depends=[checkmate cli dplyr fs magrittr purrr readr rlang strex stringr withr zeallot]; };
+  ilabelled = derive2 { name="ilabelled"; version="0.9.0"; sha256="0a77dq1bf0ha6r0l2x7kq8nbmssprs8m62b8jsw3yh12f3kh895v"; depends=[]; };
   imabc = derive2 { name="imabc"; version="1.0.0"; sha256="1p420jlvqqcqdjqp7y4mcjkzimw3qiygph5yrvmm75znax3fkg4z"; depends=[data_table foreach lhs MASS truncnorm]; };
   image_CannyEdges = derive2 { name="image.CannyEdges"; version="0.1.1"; sha256="04maxzls7rg9kqmv1r5lhg11c18z0fkskn7im7b4plq5larw122y"; depends=[Rcpp]; };
   image_ContourDetector = derive2 { name="image.ContourDetector"; version="0.1.1"; sha256="0h9nq6k99rfmldw1c00k2anlpbjbpm26pp1d7jg2wz334dvlvlij"; depends=[Rcpp sp]; };
@@ -11950,7 +12150,7 @@ in with self; {
   imageData = derive2 { name="imageData"; version="0.1-62"; sha256="1q5s6zda1vvinp23afxjys3zl17xaidb11a7iibxpz6rla75183d"; depends=[dae GGally ggplot2 Hmisc RColorBrewer readxl reshape]; };
   imagefluency = derive2 { name="imagefluency"; version="0.2.5"; sha256="1vvr66a3mr6gyhs0acymics9k6k9lq6kbmpy0k86z91fb34pipfz"; depends=[magick OpenImageR pracma R_utils readbitmap]; };
   imagefx = derive2 { name="imagefx"; version="0.4.1"; sha256="1mxd33y8zbq8kig6m6xihb5w8wrjppgmpyjspvaxjwk7si9a09k1"; depends=[moments signal]; };
-  imager = derive2 { name="imager"; version="0.45.8"; sha256="0vrv7m9b9w8xjqa9w17xvrmpl403476zr0l9wqdp9ir6ssvnaf2f"; depends=[downloader igraph jpeg magrittr png purrr Rcpp readbitmap stringr]; };
+  imager = derive2 { name="imager"; version="1.0.2"; sha256="0sjn3ig5p020gml200cy5bdbrbql7qv1fqhhzjpcbmhprf39113w"; depends=[downloader igraph jpeg magrittr png purrr Rcpp readbitmap stringr]; };
   imagerExtra = derive2 { name="imagerExtra"; version="1.3.2"; sha256="1f6mxfn7am4ph9acbbx53r4bk4vsm73p7arh8rvrsic9pgma3gqf"; depends=[fftwtools imager magrittr Rcpp]; };
   imageseg = derive2 { name="imageseg"; version="0.5.0"; sha256="1ps303zcqmiy5jv65z1c1lyzbjdcb2akvy2rmcwbms8j7a1y1shg"; depends=[doParallel dplyr foreach keras magick magrittr purrr tibble]; };
   imageviewer = derive2 { name="imageviewer"; version="0.1.0"; sha256="1rsrwy5v0gnsmbay1zqijhvll2l1bs844m52w65588j9nlx4fci9"; depends=[htmlwidgets]; };
@@ -11965,7 +12165,7 @@ in with self; {
   imgpalr = derive2 { name="imgpalr"; version="0.3.2"; sha256="0wdddswyakcgwvp75ydp8q3wmxdgrms8r2lh9jm024f8im3j5ccw"; depends=[downloader dplyr farver jpeg magrittr tibble]; };
   imgrec = derive2 { name="imgrec"; version="0.1.3"; sha256="0va04b264v2ywvqdgmvigygsd5f6vdy5cj2ip2nsyi1fzh68hadx"; depends=[base64enc dplyr httr jsonlite knitr rlang]; };
   imguR = derive2 { name="imguR"; version="1.0.3"; sha256="14f7ghgc8rbrpqb21rinfbrj1wh80i6ii0awwi814152v5qzj4b3"; depends=[httr jpeg png]; };
-  iml = derive2 { name="iml"; version="0.11.1"; sha256="0fi37lv9czaxcc123f6r57607shqhs83ks96n2n0b93dl1qs0j52"; depends=[checkmate data_table Formula future future_apply ggplot2 Metrics prediction R6]; };
+  iml = derive2 { name="iml"; version="0.11.3"; sha256="1d0p41byqpw7niyyyqcj00y43dmhqrm2csmbarcy8mz7n0i1842b"; depends=[checkmate data_table Formula future future_apply ggplot2 Metrics R6]; };
   immcp = derive2 { name="immcp"; version="1.0.3"; sha256="0xjk0a1dr45rnf6fzir74805winn1wppci2wk7wr2pwpmba86vzq"; depends=[arules clusterProfiler DOSE dplyr factoextra ggheatmap ggplot2 igraph magrittr Matrix openxlsx org_Hs_eg_db pbapply proxyC purrr rlang visNetwork]; };
   immer = derive2 { name="immer"; version="1.5-13"; sha256="0fw657vq0rj00kgkwam9wahf8sg9rf4jh0jmy154q6hq9f80v299"; depends=[CDM coda psychotools Rcpp RcppArmadillo sirt TAM]; };
   immunarch = derive2 { name="immunarch"; version="0.9.1"; sha256="0z44z74zvb1ci931n8zxpvs36cpwx5my6qd77c4z50bgn2hr00rf"; depends=[airr ape circlize data_table doParallel dplyr dtplyr factoextra fpc ggalluvial ggplot2 ggpubr ggraph ggrepel ggseqlogo glue igraph jsonlite magrittr MASS patchwork phangorn pheatmap plyr purrr Rcpp readr readxl reshape2 rlang rlist Rtsne scales shiny shinythemes stringdist stringi stringr tibble tidyr tidyselect UpSetR uuid]; };
@@ -11996,16 +12196,16 @@ in with self; {
   imputeTestbench = derive2 { name="imputeTestbench"; version="3.0.3"; sha256="0yc1l3r7g7x2pgyli6j08ikvsbvr24kijnn7pdj54blw7c0pdmm2"; depends=[dplyr forecast ggplot2 imputeTS reshape2 tidyr zoo]; };
   imsig = derive2 { name="imsig"; version="1.1.3"; sha256="175is0b39grc609dskv9274czv4iwnmlg81dl4nr01xdp6f7g487"; depends=[ggplot2 gridExtra HiClimR igraph RColorBrewer survival]; };
   in2extRemes = derive2 { name="in2extRemes"; version="1.0-3"; sha256="1lgsqm29zmjyf8kynyra2p3q7bs4fyd7ac4v6s3pbahzhhzdk94y"; depends=[extRemes]; };
-  inTextSummaryTable = derive2 { name="inTextSummaryTable"; version="3.3.2"; sha256="0h95h31ghcwm7fpp9sfvg3za6381ghcpz4qn4dmw28kh7gd76y96"; depends=[clinUtils cowplot flextable ggplot2 ggrepel magrittr officer plyr reshape2 scales]; };
-  inTrees = derive2 { name="inTrees"; version="1.3"; sha256="1afyjh2winb591am1cawchkysyslzv01nwyihvjb7n844pqr5s2j"; depends=[arules data_table gbm RRF xgboost xtable]; };
+  inTextSummaryTable = derive2 { name="inTextSummaryTable"; version="3.3.3"; sha256="0zxxny28pra5hcfjijrki7qm29n9ys2mskcnqyvy6nn2b4y7p8wj"; depends=[clinUtils cowplot flextable ggplot2 ggrepel magrittr officer plyr reshape2 scales]; };
+  inTrees = derive2 { name="inTrees"; version="1.4"; sha256="18gbw7v4xbsxdifk32qga3h3j17w40ljs1mkk0b4fzwin9z4sh27"; depends=[arules data_table gbm RRF xgboost xtable]; };
   inaparc = derive2 { name="inaparc"; version="1.2.0"; sha256="0y3m2g5y12wj4af1wiqyi7nlb11avissd59g202rha0wqwzd8q3f"; depends=[kpeaks lhs]; };
   inbreedR = derive2 { name="inbreedR"; version="0.3.3"; sha256="0g7h4jgmnbpm4c6pb6fkmpzdg4adkc0k72444jpxbvyddq3hqh24"; depends=[data_table]; };
   incR = derive2 { name="incR"; version="2.1.0"; sha256="0mis4hwd9mw7ji322yqidiz8d9qsb4jkpndfdskxrrmpfpha9r91"; depends=[ggplot2 lubridate suncalc]; };
   inca = derive2 { name="inca"; version="0.0.4"; sha256="1r3niibd6pja59am8in9gpyvxi2g5bh8bqqhdixzwaj3xzyyipii"; depends=[Matrix Rcpp RcppArmadillo]; };
   incase = derive2 { name="incase"; version="0.3.2"; sha256="06qzzvxxwi0dp7ln864qszvk9xqbb4rgx5mbnkcvji7in6k2yj0n"; depends=[backports cli magrittr plu rlang]; };
   incgraph = derive2 { name="incgraph"; version="1.0.1"; sha256="0zjvxk2krdlm5bcr0m80nxy46f69a1xadfjw5sjw249b28wdclml"; depends=[BH dplyr orca purrr Rcpp testthat tibble]; };
-  incidence = derive2 { name="incidence"; version="1.7.3"; sha256="1wdxh2p7scm419fqki0i7vsz45rd7557h5n3zf9fshb8x1fdf2z7"; depends=[aweek ggplot2]; };
-  incidence2 = derive2 { name="incidence2"; version="2.2.3"; sha256="0l8qk8wvwnnjw81gvsm3f4j0qmj7801mka03wbnkhr90ii23f9x6"; depends=[data_table grates pillar]; };
+  incidence = derive2 { name="incidence"; version="1.7.5"; sha256="0ysvrbvgk7xiv2d931mgb8q18fxjhlknrlww7myidv7n5250sd0v"; depends=[aweek ggplot2]; };
+  incidence2 = derive2 { name="incidence2"; version="2.3.1"; sha256="1zv31csmvfia8m1z1cql17my5xvnhfjc6647g0f4bpcba33vqk9i"; depends=[data_table dplyr grates pillar rlang tibble tidyr tidyselect vctrs]; };
   incidental = derive2 { name="incidental"; version="0.1"; sha256="012pdwrkzlbnrrkvy67l6nvs1lrjgrzhfh3v4rqzk2ypdvfm3wmx"; depends=[dlnm ggplot2 MASS matrixStats numDeriv]; };
   incidentally = derive2 { name="incidentally"; version="1.0.2"; sha256="063m672ym9w5zmzvdhr17smqy1mffkl3vls7nhpsxc4bjswqls2g"; depends=[igraph Matrix xml2]; };
   inctools = derive2 { name="inctools"; version="1.0.15"; sha256="0ikldiwgizs2p9vcalk5729dr6krysnyr4ni0ybg9gljw7iafdlf"; depends=[binom cubature doParallel dplyr foreach ggplot2 glm2 magrittr plyr pracma rlang tibble tmvtnorm]; };
@@ -12024,8 +12224,8 @@ in with self; {
   ineq_2d = derive2 { name="ineq.2d"; version="0.1.0"; sha256="1l1d29krk1v66v4x66py8s6p30x6xw6d969ixcqnfsdyvbz3pwly"; depends=[]; };
   ineqJD = derive2 { name="ineqJD"; version="1.0"; sha256="0anv384jwzn5gkc0jqsl81bkmrjd21br99c5q30xd6ncxavj4s57"; depends=[]; };
   inet = derive2 { name="inet"; version="0.1.0"; sha256="1kjy2kgi5v29yk6pv776gwdqzkscjh96p3iv1j906vh47zp8wrag"; depends=[glmnet hdi MASS]; };
-  infer = derive2 { name="infer"; version="1.0.6"; sha256="0rlb7l6jl6f5kgzd9s08bifgvyafvjyfpazgqzl0w1ki875642n1"; depends=[broom cli dplyr generics ggplot2 glue magrittr patchwork purrr rlang tibble tidyr vctrs]; };
-  inferCSN = derive2 { name="inferCSN"; version="1.0.1"; sha256="18fqffkkvy4jzfqr71gmfva2hjb0mdhb6z4sd6pfvijg8r1d74yv"; depends=[ComplexHeatmap doParallel dplyr foreach ggnetwork ggplot2 ggraph Matrix patchwork progress purrr Rcpp RcppArmadillo]; };
+  infer = derive2 { name="infer"; version="1.0.7"; sha256="0a4hb83xrj3c6rbficds9h7lgra04f004wn6kfpszszz0is7k0r9"; depends=[broom cli dplyr generics ggplot2 glue lifecycle magrittr patchwork purrr rlang tibble tidyr vctrs]; };
+  inferCSN = derive2 { name="inferCSN"; version="1.0.3"; sha256="1c2aaysyjvxxynwp877bhi9w3lrydg96gp2is6a919dgmwi7ilvx"; depends=[ComplexHeatmap doParallel dplyr foreach ggnetwork ggplot2 ggraph Matrix patchwork progress purrr Rcpp RcppArmadillo]; };
   inferference = derive2 { name="inferference"; version="1.0.2"; sha256="171h9zhvaza7fklcg07wk9sm8k2fy39k3cdjkzb3vk8p8acd051v"; depends=[Formula lme4 numDeriv]; };
   inferr = derive2 { name="inferr"; version="0.3.1"; sha256="1ma90f31jcd65l5v3wqbx4x61gw3iay1a2hwjsd5aln1ivbgmzsv"; depends=[data_table magrittr Rcpp]; };
   infinitefactor = derive2 { name="infinitefactor"; version="1.0"; sha256="0j6f9q8z81znwakyx4h0l8ypz0y4yv11d7l3rwljmn4rgspyjl5c"; depends=[ggplot2 Rcpp RcppArmadillo reshape2]; };
@@ -12039,7 +12239,7 @@ in with self; {
   influxdbclient = derive2 { name="influxdbclient"; version="0.1.2"; sha256="0zyb6ycyw03kwg8f27vhy14i0bh58j040bjbi9vm1m692hcvcqcd"; depends=[bit64 httr jsonlite nanotime plyr R6]; };
   influxdbr = derive2 { name="influxdbr"; version="0.14.2"; sha256="03dzw86mvbc8w38q9skjki1z17vc04k9q8dx7sd3xg6xbr10f9d9"; depends=[dplyr httr jsonlite magrittr purrr rlang tibble tidyr xts zoo]; };
   infoDecompuTE = derive2 { name="infoDecompuTE"; version="0.6.2"; sha256="0r1capiv4zr31dsy0sqly9zb00i86zq2ihbgsmb5g4cy0f04xlqz"; depends=[MASS]; };
-  infoelectoral = derive2 { name="infoelectoral"; version="1.0.0"; sha256="0zrrc32xmw020djddfxdzsz5vch9aw4abqb04y9z3j5h14i07a1z"; depends=[dplyr stringr]; };
+  infoelectoral = derive2 { name="infoelectoral"; version="1.0.2"; sha256="1ni00y4wni9dgpaj6x2p50bgmzfh2ybr350ywqmnwz5q30r9kjsm"; depends=[dplyr httr stringr]; };
   informedSen = derive2 { name="informedSen"; version="1.0.7"; sha256="1zb93289jszyj57ji00r35hx8ralxw2n6i384h6myxddgl377qfv"; depends=[sensitivitymult]; };
   infotheo = derive2 { name="infotheo"; version="1.2.0.1"; sha256="1m1979vf8rvq3534mp1hihfadikhxrg3p6ac3hirz96kgb4qxyy0"; depends=[]; };
   infraFDTD_assist = derive2 { name="infraFDTD.assist"; version="0.6"; sha256="04j5nl5vxk79iciz6s9bpiyn319c2dbh7fdahgwira2r30w2fxv9"; depends=[fields]; };
@@ -12049,7 +12249,7 @@ in with self; {
   injurytools = derive2 { name="injurytools"; version="1.0.3"; sha256="0nk6rnyg8f2n7fki42xr8vradzkkmljrvd1ynh9p781849y77jz0"; depends=[checkmate dplyr forcats ggplot2 lubridate metR purrr rlang stringr tidyr tidyselect withr]; };
   inlabru = derive2 { name="inlabru"; version="2.10.1"; sha256="1sazv0jz458lvdslza1d4y53q6ws9rn2g6sfgv3hin30qk6jzizg"; depends=[dplyr fmesher lifecycle magrittr Matrix MatrixModels plyr rlang sf sp terra tibble withr]; };
   inlcolor = derive2 { name="inlcolor"; version="1.0.6"; sha256="0yhhy7yrycxg58shfwrja2zfdixss2wldi6qg262dfa9w6j68brj"; depends=[checkmate rlang scales]; };
-  inldata = derive2 { name="inldata"; version="1.1.4"; sha256="0b1lnbb21knr33yy6a2lswxhhxxdm6nw9zw1h7chmba9gb7gf24m"; depends=[checkmate sf stringi terra]; };
+  inldata = derive2 { name="inldata"; version="1.2.3"; sha256="0155mx8nx5g1vp3mcfar0n4qbxqyvs0fzqnmd8skrrygfk1aw0y5"; depends=[checkmate sf stringi terra]; };
   inline = derive2 { name="inline"; version="0.3.19"; sha256="1mcr9hgq6kkq03n7pkcccxa7vg8jma0q7lfxc5vvkc6snydk1s8f"; depends=[]; };
   inlinedocs = derive2 { name="inlinedocs"; version="2023.9.4"; sha256="115mng6fmjacb2mqa85mdqz79yfpgn08rshigsqcb2h234k0wnk3"; depends=[]; };
   inlpubs = derive2 { name="inlpubs"; version="1.1.1"; sha256="0gg39mkid9s57hd9r5y5pa8228m965diz61s94v38qyix8pjdj37"; depends=[checkmate tm]; };
@@ -12061,7 +12261,7 @@ in with self; {
   insect = derive2 { name="insect"; version="1.4.2"; sha256="0pbac9il1jrhii0hxvvqjc3phyr2iamxwzanxx5mrkyjh2wsl3jh"; depends=[ape aphid kmer openssl phylogram RANN seqinr xml2]; };
   insectDisease = derive2 { name="insectDisease"; version="1.2.2"; sha256="1ncj5fgmx19caf8m2p3ij5iamk941m9y725gs0nqpa9m6zfnzgf8"; depends=[plyr taxize]; };
   insee = derive2 { name="insee"; version="1.1.5"; sha256="1f6y19dysm0mh3fkrwnqcgi5j1lzy08m3ij3wrx26q2vgwv5lkfg"; depends=[crayon dplyr httr openssl purrr rappdirs rlang stringr tibble tidyselect xml2]; };
-  insight = derive2 { name="insight"; version="0.19.10"; sha256="0sh7pwnrlggizzpi0smpdq9fds2v8ql3bwdg4yxa2z2apaq3xk6y"; depends=[]; };
+  insight = derive2 { name="insight"; version="0.20.1"; sha256="19lg5dipnwlfxzcpq2mj348f8pnzn6i7sj77hf5ppzha370acgy2"; depends=[]; };
   inspectdf = derive2 { name="inspectdf"; version="0.0.12"; sha256="1k9dszjfpvpc10qr9nbw5r55mdwslgblhlrgnqjnwx9i89j03mlk"; depends=[dplyr ggfittext ggplot2 magrittr progress Rcpp rlang tibble tidyr]; };
   inspector = derive2 { name="inspector"; version="1.0.3"; sha256="16gc98af6wmwf32fz8zml5v17g5lkiybzyzsqgphx0k19hrbc6kr"; depends=[Rdpack]; };
   instaR = derive2 { name="instaR"; version="0.2.4"; sha256="0c4m471ragkpksr0h21cdgnjxcknf01xqz543dahxgzjg9ncjwhg"; depends=[httr jsonlite]; };
@@ -12070,11 +12270,10 @@ in with self; {
   installr = derive2 { name="installr"; version="0.23.4"; sha256="1qlwcww3bgbdfqk2qi1vvis11bnvkkwa6h2l195knhx0i0ha8pfj"; depends=[stringr]; };
   instantiate = derive2 { name="instantiate"; version="0.2.2"; sha256="0nmx2r0hkzbm5bzz28yvzdphkxhzcnd9dgi88wixzkbnmhny83d2"; depends=[callr fs rlang]; };
   insuranceData = derive2 { name="insuranceData"; version="1.0"; sha256="0wryh8i1v3bnpbqn6d6dpxr9bwwl6mnh5cb5igz0yanh4m1rx96w"; depends=[]; };
-  insurancerating = derive2 { name="insurancerating"; version="0.7.2"; sha256="0yllp7r1jmv09py3v8blir7nc3vpd8y5a8b3r8k5ncyx7k56nbwh"; depends=[ciTools classInt colorspace data_table DHARMa dplyr evtree fitdistrplus ggplot2 insight lubridate magrittr mgcv patchwork scales stringr]; };
+  insurancerating = derive2 { name="insurancerating"; version="0.7.4"; sha256="1bfl5khi70cfqg1kx0fa7ym6nxqhvk1rjff91kvxbc8q2nxj6wda"; depends=[ciTools classInt colorspace data_table DHARMa dplyr evtree fitdistrplus ggplot2 insight lubridate mgcv patchwork scales stringr]; };
   intRegGOF = derive2 { name="intRegGOF"; version="0.85-5"; sha256="0xjq8vdlgqlzrvp752gd4qfrpnpapx7k6xzfsvfril8ngvm9a162"; depends=[]; };
   intRinsic = derive2 { name="intRinsic"; version="1.0.2"; sha256="07hs1srvdzrqqqzzxkbrc10sns3i7nlp41b3ysaf1j03jgxwdyid"; depends=[dplyr FNN ggplot2 knitr latex2exp Rcpp RcppArmadillo reshape2 rlang salso]; };
   intRvals = derive2 { name="intRvals"; version="1.0.1"; sha256="013n0qp12dqnnk931rvs6lql2r13z5j4jf27s4aqfyd80mnl5w7k"; depends=[lme4 plyr]; };
-  intSDM = derive2 { name="intSDM"; version="2.0.2"; sha256="01gsq853vxkch69pmgypd4h5yfq1fnawa7qlamxglcxy6zmn3269"; depends=[blockCV geodata ggplot2 giscoR inlabru PointedSDMs R6 rgbif sf terra tidyterra]; };
   intamap = derive2 { name="intamap"; version="1.5-7"; sha256="1rvjqv58bfsya6sc9kbqkln3f9zw3cvqhqsdxfsksvjybnmychxq"; depends=[automap doParallel evd foreach gstat MASS MBA mvtnorm sf sp]; };
   intamapInteractive = derive2 { name="intamapInteractive"; version="1.2-6"; sha256="0mdn4fmc7skmf61pshyyc6g3xlxa2friyy0kzhn5d6q5ni3fm7rb"; depends=[automap gstat intamap sf sp spatstat_geom spcosa]; };
   intccr = derive2 { name="intccr"; version="3.0.4"; sha256="1bpzsik6yypkxskp7ar8a1j0wmndsx41xn4kaffz0fni988l23hc"; depends=[alabama doParallel foreach MASS splines2]; };
@@ -12110,15 +12309,15 @@ in with self; {
   intervalaverage = derive2 { name="intervalaverage"; version="0.8.0"; sha256="07p9r358q3jxm8n7nypxmvpfnh61njivcwaplgzzxrlcbway6fq9"; depends=[data_table Rcpp]; };
   intervals = derive2 { name="intervals"; version="0.15.4"; sha256="13wzwg5yc1wr8ww8bhv9x5ha78yajsfmb9phq4nbgrxkmbiy3h2h"; depends=[]; };
   intervcomp = derive2 { name="intervcomp"; version="0.1.2"; sha256="1l6x1fl84li6is3b92b96q3fbv0rpgqy2lvw9cbi2cq8nh9imnyx"; depends=[]; };
-  inti = derive2 { name="inti"; version="0.6.4"; sha256="0rfz3mipacp76dhn63616npn89jhhagmzx60r8l30kaarjm37y83"; depends=[agricolae dplyr DT emmeans FactoMineR ggplot2 lme4 purrr shiny stringi stringr tibble tidyr]; };
+  inti = derive2 { name="inti"; version="0.6.5"; sha256="1zbfxc34613r460mhln3qn4fsx999vi4qamf5c8pkjdwyd8nvvbz"; depends=[agricolae dplyr DT emmeans FactoMineR ggplot2 googlesheets4 lme4 purrr shiny stringi stringr tibble tidyr]; };
   intkrige = derive2 { name="intkrige"; version="1.0.1"; sha256="1p3fn5nzn1iliy025187k590qrsw3z3d47p67gzwwd6h050yrl86"; depends=[gstat raster Rcpp RcppArmadillo Rdpack sp]; };
   intmap = derive2 { name="intmap"; version="1.0.0"; sha256="1fxq0jkahangv4pwsvnrr4iq2y6qp61l81b28yzwl74b0lmx6hbf"; depends=[BH maybe R6 Rcpp]; };
   intmed = derive2 { name="intmed"; version="0.1.2"; sha256="0amcqzinj35yvb9nfy808bz098dqmnds13z335lgqm6sykriyjpl"; depends=[doParallel dplyr foreach MASS mice stringr tibble]; };
   intradayModel = derive2 { name="intradayModel"; version="0.0.1"; sha256="1rpcm6bix06lwkj7wndy3zarbxwm24x15vwwb2gfqj0527pvk0gl"; depends=[ggplot2 magrittr patchwork reshape2 scales xts zoo]; };
   intrinsicDimension = derive2 { name="intrinsicDimension"; version="1.2.0"; sha256="0cka20ifxx9njnvp18bzhrvmh3cwjnxkc0a23qzi43dahc51ijbc"; depends=[yaImpute]; };
-  intrinsicFRP = derive2 { name="intrinsicFRP"; version="2.0.1"; sha256="1grcbqncx2j0y71r3l7qapj4d4sgzdgqfz4336lgbndpqvlc538x"; depends=[Rcpp RcppArmadillo]; };
+  intrinsicFRP = derive2 { name="intrinsicFRP"; version="2.1.0"; sha256="1ji707s5501m6q8b2bgjd8d6avylb441710dkxaj96sznn8jf4ig"; depends=[glmnet Rcpp RcppArmadillo]; };
   intrinsicKappa = derive2 { name="intrinsicKappa"; version="0.1"; sha256="13m0k1r6l2havl6qi8m6403zkdbma47i29yb6xr9xnyqij2392qz"; depends=[]; };
-  intrval = derive2 { name="intrval"; version="0.1-2"; sha256="1fbgl2r359aml6cfz8x7h0381kxfx1dy0hr0c7012vr66f6c2lhi"; depends=[]; };
+  intrval = derive2 { name="intrval"; version="0.1-3"; sha256="0pq2pbvhhczh90p78zcgv5n1wgw0jswly8g5bfqxq5j2nhd8imbd"; depends=[]; };
   intsurv = derive2 { name="intsurv"; version="0.2.2"; sha256="02ds4gikrgg19knylg68ziani702dyhqc37fhf9j7awa1qxy2r9l"; depends=[Rcpp RcppArmadillo]; };
   intsvy = derive2 { name="intsvy"; version="2.9"; sha256="0bk8v9ds6jrp7pvw63k777wj4pvg5nx1df4w5jz1hhr0gsv0jw8v"; depends=[dplyr foreign ggplot2 Hmisc memisc plyr reshape]; };
   inum = derive2 { name="inum"; version="1.0-5"; sha256="1gbbsffbzxjrgi8yw21fl35fsbx7ns8hdrhja50byfqvnghbg5p6"; depends=[libcoin]; };
@@ -12153,6 +12352,7 @@ in with self; {
   ipcwswitch = derive2 { name="ipcwswitch"; version="1.0.4"; sha256="12z16c8sv1nhdv70kwx1a0wh588znkv5y5r0s9kcws0n3rjhzh9p"; depends=[survival]; };
   ipdw = derive2 { name="ipdw"; version="2.0-0"; sha256="0lgxassvdd8vc4fyc84rbwwgdis7h4p5psqxxyb7xznm3zdzxc7h"; depends=[gdistance raster sf]; };
   ipeadatar = derive2 { name="ipeadatar"; version="0.1.6"; sha256="1j600mhvy023ry9hx8ib6wqdv4mip1cjbwzs9190v8qpc9r2a460"; depends=[curl dplyr jsonlite lubridate magrittr purrr rlang sjlabelled stringr]; };
+  ipeaplot = derive2 { name="ipeaplot"; version="0.3.1"; sha256="0bhqgxx2jc8abn73slk2w0961d51kx0sj5cs8b3livp3idxdrl4l"; depends=[checkmate extrafont ggplot2 ggthemes paletteer rlang scales showtext]; };
   iperform = derive2 { name="iperform"; version="0.0.3"; sha256="0d54xd7aw5ipsgg4542k4b5gzysgsc76713jmq7kcd1djr56nk0v"; depends=[lubridate matrixStats]; };
   ipflasso = derive2 { name="ipflasso"; version="1.1"; sha256="0gf1yj35vr92qi59hffcf4hzrh2b439kfd6m745wgpxq6wic1hs3"; depends=[glmnet survival]; };
   ipfp = derive2 { name="ipfp"; version="1.0.2"; sha256="00588swwr7gz7gjx0clz55fgi4rm2h715fdmhsgm171bdmakh20r"; depends=[]; };
@@ -12165,9 +12365,9 @@ in with self; {
   ipolygrowth = derive2 { name="ipolygrowth"; version="0.1.2"; sha256="0q3n2mbkkra09kxq3scglli0ghj4g0j4xv3py9maq0ii7mbx0547"; depends=[dplyr magrittr rlang tidyr tidyselect]; };
   ipr = derive2 { name="ipr"; version="0.1.0"; sha256="1db06r784c6jga0anp6p5b3k47yfhr84nzxyjn52pc9zkg3yifjm"; depends=[]; };
   ipred = derive2 { name="ipred"; version="0.9-14"; sha256="0dcgabbqk7lb8pfqs06ix87caf5c9p6kcppi5sskv76h8z43vj41"; depends=[class MASS nnet prodlim rpart survival]; };
-  iprior = derive2 { name="iprior"; version="0.7.3"; sha256="15qzqwikxy85fcd7psz363b5wb0kpi85icfyb47hbgdhln8fi2qb"; depends=[doSNOW foreach ggplot2 mvtnorm Rcpp RcppEigen reshape2 scales]; };
-  ips = derive2 { name="ips"; version="0.0.11"; sha256="02jxanfhsjrabj33nwjv71vdc87hiyzikyqrfdj9ix6dky6lm199"; depends=[ape phangorn plyr seqinr XML]; };
-  ipsRdbs = derive2 { name="ipsRdbs"; version="0.2.6"; sha256="16qyq2jzv5nhwsnsg20213vhg62aqjk2fx9mr2343dlx5j3cjvb3"; depends=[extraDistr ggplot2 Rdpack]; };
+  iprior = derive2 { name="iprior"; version="0.7.4"; sha256="0zhyr19m6yxhn3gskfm14hmag5vjz1008fhxli2cg14z6hsdl1ww"; depends=[doSNOW foreach ggplot2 mvtnorm Rcpp RcppEigen reshape2 scales]; };
+  ips = derive2 { name="ips"; version="0.0.12"; sha256="0vnsalm94vzagksqv4ph6x7vdwhd1lq278sak30pr4m9bc9xxchw"; depends=[ape data_table phangorn plyr XML]; };
+  ipsRdbs = derive2 { name="ipsRdbs"; version="1.0.0"; sha256="018l91i88scak8mhz2p1a13dds7kyzig6wb8442hmzkwg63xi764"; depends=[extraDistr ggplot2 Rdpack]; };
   ipsecr = derive2 { name="ipsecr"; version="1.4.1"; sha256="10kliwx8rn4xrcrrmmmr0n2f01dynms5l9lk5xzbyr853x4am5bl"; depends=[BH MASS nlme Rcpp RcppArmadillo secr stringr]; };
   ipsfs = derive2 { name="ipsfs"; version="1.0.0"; sha256="1cpa0m19nddpp852vyiqw0azx8idyaqv225akfyrych9y8kw9n4d"; depends=[]; };
   ipumsr = derive2 { name="ipumsr"; version="0.7.2"; sha256="0zkj33xg6b7aapmp8qd333qc6mmcwhbqx3pd8ibhdlcd1pc89hww"; depends=[dplyr haven hipread httr jsonlite lifecycle purrr R6 readr rlang tibble tidyselect xml2 zeallot]; };
@@ -12177,8 +12377,8 @@ in with self; {
   iq = derive2 { name="iq"; version="1.9.12"; sha256="0ka189anzdyfbf1gyhbsq40rsf4b85ragjg84mwfcgwk324y307c"; depends=[Rcpp RcppEigen]; };
   ir = derive2 { name="ir"; version="0.2.1"; sha256="1ck5247w5lxffd2x3jrslfx13jigik48xmcnkr7my2kzjmnqiyr1"; depends=[baseline ChemoSpec dplyr ggplot2 hyperSpec lifecycle magrittr purrr Rdpack rlang signal stringr tibble tidyr units]; };
   irace = derive2 { name="irace"; version="3.5"; sha256="1x0b0qr1ccq3s4d6k3z6dz94z4caxsmaywwdalw4isd7lm28d4nr"; depends=[R6]; };
-  iraceplot = derive2 { name="iraceplot"; version="1.2"; sha256="0891wmk7m62qr0rzxxyzz7vpmzhjllj0d36vjafcf5bf12v0yzqk"; depends=[cli dplyr DT forcats ggforce ggplot2 gridExtra irace knitr matrixStats plotly rlang rmarkdown tibble tidyr truncnorm viridisLite withr]; };
-  irboost = derive2 { name="irboost"; version="0.1-1.3"; sha256="0a7d3scikj4lmnh70vwck8gkbzh4d49j4yw5gk5bfi8nx1hfi47v"; depends=[mpath xgboost]; };
+  iraceplot = derive2 { name="iraceplot"; version="1.3"; sha256="19scipjkxf08wmsv7vwscx3j120444l5ncin9l8fq1i3jq5w6pjy"; depends=[cli dplyr DT forcats ggforce ggplot2 gridExtra irace knitr labeling matrixStats plotly rlang rmarkdown tibble tidyr truncnorm viridisLite withr]; };
+  irboost = derive2 { name="irboost"; version="0.1-1.5"; sha256="0bn27mng7bacgxk13qf6pgyf0h0i6wphpdgp1ily00dphair6rva"; depends=[mpath xgboost]; };
   ircor = derive2 { name="ircor"; version="1.0"; sha256="07apa4l4ib11xw25d44b403s3la29sqlid13q41hjrlfxafm91ld"; depends=[]; };
   irg = derive2 { name="irg"; version="0.1.6"; sha256="1c9v5yk1512ga51356fjyl8zblw61p9m55vx89fy81qi0vcwxrgj"; depends=[chk data_table RcppRoll]; };
   irlba = derive2 { name="irlba"; version="2.3.5.1"; sha256="1ky5nlmyrnwz6121wwqd8p8r1ycnjkl5r290k4x2477rzs267zic"; depends=[Matrix]; };
@@ -12215,7 +12415,7 @@ in with self; {
   isocalcR = derive2 { name="isocalcR"; version="0.1.1"; sha256="1nn7pd0xj2j3xi5bvd6fvm062h1j0g1nxmp374r313fi2b0qcp0c"; depends=[]; };
   isocat = derive2 { name="isocat"; version="0.3.0"; sha256="0y6b7pgg20lgcl2bwvc76ha02qzra76g2jchbfzrc4np8hdd75ma"; depends=[foreach magrittr plyr raster sp]; };
   isocir = derive2 { name="isocir"; version="2.0-7.1"; sha256="0jgm0a26frq4fs5d578c44bpn15nshvzmrqfzcbwydf58x7w6sj2"; depends=[circular combinat TSP]; };
-  isocountry = derive2 { name="isocountry"; version="0.1.0"; sha256="0z9m666h86zjzbfv1fvnhajcqzywc0bswvhj5rax2x1gzg2rc4fc"; depends=[tibble]; };
+  isocountry = derive2 { name="isocountry"; version="0.2.0"; sha256="0n2sx731jy42g3yr3c6jba1x3fx42rczq95cwi94f4i78vsphl4f"; depends=[tibble]; };
   isodistrreg = derive2 { name="isodistrreg"; version="0.1.0"; sha256="0na7jipwzr16afvz2l6wxh62mv0mrq1ma1qwxnys83zhr0dca099"; depends=[Matrix osqp Rcpp]; };
   isogeochem = derive2 { name="isogeochem"; version="1.1.1"; sha256="112pcgbafjkgbfdkqvgz5i5iscfkjasq88k58az50cf47bqsqg0g"; depends=[]; };
   isokernel = derive2 { name="isokernel"; version="0.1.0"; sha256="04mrbq2822yhcq4q82xwm61a38zsk6w55jgjkp0xnardpv8a39pb"; depends=[Matrix RANN]; };
@@ -12224,8 +12424,8 @@ in with self; {
   isopleuros = derive2 { name="isopleuros"; version="1.2.0"; sha256="1vqazdpg8whpx5nw8gq8bchh93dl04xmygs9as1k5yx1sijw164j"; depends=[]; };
   isotone = derive2 { name="isotone"; version="1.1-1"; sha256="0kpzcfxac3yrvw4rszzc99r1mw78pq6bsgg0h332jamwvffhasgn"; depends=[nnls]; };
   isotonic_pen = derive2 { name="isotonic.pen"; version="1.0"; sha256="1lgw15df08f4dhrjjfr0jqkcvxwad92kflj2px526pcxwkj7cj3i"; depends=[coneproj Matrix]; };
-  isotracer = derive2 { name="isotracer"; version="1.1.5"; sha256="0qxdri6dq920d39ip1f37h1nzw90fr51bq4xc1m5bjv7vkqrqbks"; depends=[BH coda data_table dplyr latex2exp magrittr pillar purrr Rcpp RcppEigen RcppParallel rlang rstan rstantools StanHeaders tibble tidyr tidyselect]; };
-  isotree = derive2 { name="isotree"; version="0.5.24-3"; sha256="02cnk9y8kc5zc9jzzhhxhgqi2z19yj2glvylbmydiagwli1aqvfl"; depends=[Rcpp]; };
+  isotracer = derive2 { name="isotracer"; version="1.1.6"; sha256="0yapaaycakxzq6h3r2zp72zwf514qs64lhygiy3ix0dwxzafnh3b"; depends=[BH coda data_table dplyr latex2exp magrittr pillar purrr Rcpp RcppEigen RcppParallel rlang rstan rstantools StanHeaders tibble tidyr tidyselect]; };
+  isotree = derive2 { name="isotree"; version="0.6.1-1"; sha256="0v0lr1aimlvgm6bpnaz1z4707fnrqvzfc3rziz0vcbzgycs0abvd"; depends=[jsonlite Rcpp]; };
   ispd = derive2 { name="ispd"; version="0.2"; sha256="06h4z342d17rkpr2wwck4sq79kprdq6fgqf10jg8cs1f52q6pq0h"; depends=[ibd]; };
   ispdata = derive2 { name="ispdata"; version="1.1.2"; sha256="16vzfwn4q1q0k1m01ibknwm37j2d4x63a3zrrqj25mq8nrg134bs"; depends=[curl dplyr janitor openxlsx readr sf]; };
   istacr = derive2 { name="istacr"; version="0.2.2"; sha256="1hg94p0b5zkj50ckxrgas2a8rdwh0avspykscincxkfi0wk1cx0r"; depends=[jsonlite]; };
@@ -12244,7 +12444,7 @@ in with self; {
   itertools2 = derive2 { name="itertools2"; version="0.1.1"; sha256="0yra3x9ddvn5pp3jibm69205zazv81bz0cflw4mdvxpqadaf9f96"; depends=[iterators]; };
   itol_toolkit = derive2 { name="itol.toolkit"; version="1.1.7"; sha256="0p29p8qk03aqcmxdskrf2mjms1isffwwxgh1kr38fxi43f3kc9q0"; depends=[ape colourpicker data_table dplyr ggsci miniUI purrr RColorBrewer rstudioapi seqinr shiny stringr tidyr wesanderson]; };
   itp = derive2 { name="itp"; version="1.2.1"; sha256="0nj497zmdgh6y5npf7727gqn9f9pm5rv9bm0xfn8419lb9n3ann3"; depends=[Rcpp]; };
-  itraxR = derive2 { name="itraxR"; version="1.12.1"; sha256="0s3arm3ln2p92by8lfj5fl1rh7cspj9v2q30rb4r99vncxp85alk"; depends=[broom compositions dplyr ggcorrplot ggplot2 janitor munsellinterpol readr rlang stringr tibble tidyr tiff]; };
+  itraxR = derive2 { name="itraxR"; version="1.12.2"; sha256="0wp0kdzh8wlh3g2gxjz8lbylpwq3hzv5b6hwpvv2wabr1zhg1ya9"; depends=[broom compositions dplyr ggcorrplot ggplot2 janitor munsellinterpol readr rlang stringr tibble tidyr tiff]; };
   its_analysis = derive2 { name="its.analysis"; version="1.6.0"; sha256="1ig7yq59y5xl1z182bbvgx8vsqs9sb1xscf6zxqn1qmy9f0ggf7v"; depends=[boot car forecast ggplot2 plyr]; };
   itsadug = derive2 { name="itsadug"; version="2.4.1"; sha256="1sdqs279qxr3993hw08xg7b54yq03jw1597cqn6cf24sh9vpw9m1"; depends=[mgcv plotfunctions]; };
   itscalledsoccer = derive2 { name="itscalledsoccer"; version="0.2.4"; sha256="1xyfs9y60mrmmrpx5rhm2xg3ysgc75wfb62vb63rr7nlv6sfisgl"; depends=[clisymbols crayon data_table dplyr glue httpcache httr jsonlite magrittr R6 rlang stringi tidyr]; };
@@ -12260,8 +12460,7 @@ in with self; {
   ivmodel = derive2 { name="ivmodel"; version="1.9.1"; sha256="1glm4nwlzyzwbv3nbi23qslnnqf47ps7iyd3wbr1bfdln0sr2s0l"; depends=[Formula ggplot2 Matrix reshape2]; };
   ivmte = derive2 { name="ivmte"; version="1.4.0"; sha256="1bwvkw04pn4mf7iyfvaiabgx0qd83si13sr9jpqim9zqqhf1c1dc"; depends=[Formula]; };
   ivo_table = derive2 { name="ivo.table"; version="0.4.1"; sha256="0hs3x52566y7axri1wyzr2c5w156nwfiq0j9sddvl1lcvsrxdivg"; depends=[checkmate dplyr flextable officer tidyr]; };
-  ivprobit = derive2 { name="ivprobit"; version="1.1"; sha256="05b5gf5gmi2yrkg61n7w12qlgpnjakd1z8hhqxy6py8hahsf84gm"; depends=[Formula]; };
-  ivreg = derive2 { name="ivreg"; version="0.6-2"; sha256="15iqj8rzmb1hybvnw8h6v321sj4pv7bg67nfk8g9bpzyds3zm9xl"; depends=[car Formula lmtest MASS]; };
+  ivreg = derive2 { name="ivreg"; version="0.6-3"; sha256="1ccxs6bblknss41605vvvb473s936rvgj7ls7sd9ismxgq83ad5k"; depends=[car Formula lmtest MASS]; };
   ivs = derive2 { name="ivs"; version="0.2.0"; sha256="06gjlmqqwlp86l708lk36vnxj83r082mbcccvp3x6g0apiy8ak98"; depends=[glue lifecycle rlang vctrs]; };
   ivsacim = derive2 { name="ivsacim"; version="2.1.0"; sha256="0pldg086kaaqc2wab1m61anabqaf0mffv1hsb8plz1qn2f8gdcp3"; depends=[Rcpp RcppArmadillo]; };
   ivtools = derive2 { name="ivtools"; version="2.3.0"; sha256="1wv0r9dy893hafbbrjcjrphb8dgql71ya4zfbkl5dfp7d4ncfxl0"; depends=[ahaz data_table nleqslv numDeriv Rcpp survival]; };
@@ -12274,7 +12473,7 @@ in with self; {
   jaatha = derive2 { name="jaatha"; version="3.2.5"; sha256="0npqpb6p4ap64mn5x2y424ayz1gy9s2b1ls4f4bs9l9mhr60z4jy"; depends=[assertthat R6]; };
   jab_adverse_reactions = derive2 { name="jab.adverse.reactions"; version="1.0.3"; sha256="18rfaiv2w7lvd5psj6qkyfdc363y3xfrrg5fhmcv4s4n0cj8kbsv"; depends=[]; };
   jaccard = derive2 { name="jaccard"; version="0.1.0"; sha256="1dmla6qc1k8iw2d7zfjqhf13gqd2lpsrj09yh47ljf994fpab936"; depends=[dplyr magrittr qvalue Rcpp]; };
-  jack = derive2 { name="jack"; version="5.3.0"; sha256="0qxshhyrplq5bfgb1spjfh7iwazbjna5hv2rkn6fwbrpgvbc9jrg"; depends=[BH DescTools gmp multicool mvp partitions qspray Rcpp spray]; };
+  jack = derive2 { name="jack"; version="6.0.0"; sha256="11clvyv09kfxwwbx1kmxzvc8j6frkx45k8hzcvjigbc8wais7ffi"; depends=[BH DescTools gmp multicool mvp partitions qspray ratioOfQsprays Rcpp RcppArmadillo RcppCGAL spray symbolicQspray]; };
   jackalope = derive2 { name="jackalope"; version="1.1.5"; sha256="18k130d95k0zd7f88gbh0gnjmc41kyii82phslmrhyigrizhjq82"; depends=[ape R6 Rcpp RcppArmadillo RcppProgress Rhtslib zlibbioc]; };
   jackknifeR = derive2 { name="jackknifeR"; version="1.2.0"; sha256="0s2kf0r102gwcrjd2ggimyxw99nwcdd0pfwgyw922f2kzwf0rxq6"; depends=[doParallel foreach]; };
   jackstrap = derive2 { name="jackstrap"; version="0.1.0"; sha256="09y9pgb920lnbzlgm6j188q8lw1air83kx383a2f89zz7hhgg7jr"; depends=[Benchmarking doParallel dplyr fBasics foreach ggplot2 plyr reshape rlang scales tidyr]; };
@@ -12285,15 +12484,16 @@ in with self; {
   jage = derive2 { name="jage"; version="0.1.0"; sha256="159qgsj0syk6vg4sn4y2kk18hsm1xcp5i2cfjq8srgq14cdh91bd"; depends=[data_table mvtnorm pracma]; };
   jaggR = derive2 { name="jaggR"; version="0.1.1"; sha256="0qd4kwcc8zcvg2p1njcv7z4y5ssg77zsylph5bcaqdjxq996q7rv"; depends=[formatR glue]; };
   jagsUI = derive2 { name="jagsUI"; version="1.6.2"; sha256="012s8dcfaxvswwyjjff0x5c7cpvqqqx0zav0wjqm8gzq9pyv0lsn"; depends=[coda rjags]; };
-  jagshelper = derive2 { name="jagshelper"; version="0.2.2"; sha256="00g5pw6kzi5hzplnzb8x3z4a895hwccf17hhwplzrlhrs77ras2c"; depends=[jagsUI MASS]; };
-  jagstargets = derive2 { name="jagstargets"; version="1.1.0"; sha256="12iiqma5b114rnbcknid0qhhc1wr5hm4p2hg8d0bmxhsxnr9hfkr"; depends=[coda digest fst posterior purrr qs R2jags rjags rlang tarchetypes targets tibble withr]; };
+  jagshelper = derive2 { name="jagshelper"; version="0.2.3"; sha256="1q5y38jzxmvdicjcmck0bmai6xvpi3hzzngrsgdy5bks9mqdgnlj"; depends=[jagsUI MASS]; };
+  jagstargets = derive2 { name="jagstargets"; version="1.2.0"; sha256="10bx1sy5lcq1k1nliiwqjyq5hrywa97dh5zyyjdxq9rh94xhcc7p"; depends=[coda fst posterior purrr qs R2jags rjags rlang secretbase tarchetypes targets tibble tidyselect withr]; };
   jalcal = derive2 { name="jalcal"; version="0.1.0"; sha256="19smqrhvab8f2xb8pa8x6gmvr0r2lwvqisfahixs7aa8lxi708jw"; depends=[]; };
   janeaustenr = derive2 { name="janeaustenr"; version="1.0.0"; sha256="1ap8p1lpbj2wz90mpf1vbyzhv2spzv03bi8lwzpsir2y77hjxhxl"; depends=[]; };
   janitor = derive2 { name="janitor"; version="2.2.0"; sha256="1bmsyrmy833kzj3s9s6207f54bx1ca0ianwhiyrlp0jfbqcd1m99"; depends=[dplyr hms lifecycle lubridate magrittr purrr rlang snakecase stringi stringr tidyr tidyselect]; };
   janus = derive2 { name="janus"; version="1.0.0"; sha256="0dpd24qxwlnrrjyx2gffsmfbsf1schfnq9ck75k9935gmwy2ig04"; depends=[dplyr forcats ggplot2 hash keras lubridate Metrics narray purrr RcppAlgos readr reticulate Rmpfr StatRank tensorflow tictoc]; };
   japanstat = derive2 { name="japanstat"; version="0.1.0"; sha256="0rd2q23s9r075ns47ccmr8fjvdcv2jncjs9w1c668s597cwkf6lb"; depends=[cli dplyr httr pillar progress purrr rlang stringi stringr tibble tidyr vctrs]; };
-  jarbes = derive2 { name="jarbes"; version="2.0.0"; sha256="0lx565m9abvai47ndpryxbhpsdnh76sbaf0mixpd58raqnysc26b"; depends=[ggExtra ggplot2 gridExtra MASS mcmcplots R2jags rjags tidyr tidyverse]; };
+  jarbes = derive2 { name="jarbes"; version="2.2.1"; sha256="1gpm7by9wmqgr69876wqd1w3nrzmzsgchh2xlsf37jxz2m5827c0"; depends=[bookdown GGally ggExtra ggplot2 gridExtra kableExtra MASS mcmcplots qpdf R2jags rjags tidyr]; };
   jcext = derive2 { name="jcext"; version="0.1.1"; sha256="02zppiyq3gy551zi1g00gam1w4y1wgzn5zi9wrcz8yw915dla0ix"; depends=[ggplot2 maps RColorBrewer rworldmap sp stringr]; };
+  jcolors = derive2 { name="jcolors"; version="0.0.5"; sha256="13rwxavq6zrzq9k6x436ydl1rr98qz7ab6npkg82hwqvx3k30n57"; depends=[ggplot2 scales]; };
   jcp = derive2 { name="jcp"; version="1.2"; sha256="120hhysgnb5992ss2ays7ksyy0xb251lsxgnxihc11h2rqg6wqv8"; depends=[]; };
   jdenticon = derive2 { name="jdenticon"; version="0.1.1"; sha256="19gczsf3b00rm1hbqf2azsxh698h0xbbdn3fx3nj5hr7ka24chzr"; depends=[fs glue jsonlite magick processx yesno]; };
   jds_rmd = derive2 { name="jds.rmd"; version="0.3.3"; sha256="1ylpq3b6vqi8gj2q2vfkl9zshkwcn08mqms9rpvlwc34wrp09ian"; depends=[bookdown rmarkdown]; };
@@ -12301,9 +12501,9 @@ in with self; {
   jenga = derive2 { name="jenga"; version="1.3.0"; sha256="0yq1nkaakzajjdk3w6hzikl6pwqx0546mcb1ik688b0l55vmwphc"; depends=[abind dplyr entropy fANCOVA fastDummies ggplot2 greybox imputeTS lubridate modeest moments narray philentropy purrr readr Rfast scales tictoc]; };
   jetpack = derive2 { name="jetpack"; version="0.5.5"; sha256="0c2vvayci7jm1p97ccgb5nccrgvdyid4fgh12cab18xwrwx1hzxx"; depends=[desc docopt remotes renv]; };
   jetset = derive2 { name="jetset"; version="3.4.0"; sha256="0c99h5npsv2gf5d59s4qhkaqmjhbwa3prcykk24wzhnpfq6y6xhp"; depends=[AnnotationDbi org_Hs_eg_db]; };
-  jewel = derive2 { name="jewel"; version="2.0.1"; sha256="0lj97bgqd2q3s2dcksn1nv4wwiw4ik9aimwa7kamfl0lmrlcz165"; depends=[igraph MASS Matrix matrixcalc purrr SMUT]; };
+  jewel = derive2 { name="jewel"; version="2.0.2"; sha256="100lj4ydw7gx93lmnckxivb65yzjwi0cn5l070ss8532wrm297r3"; depends=[igraph MASS Matrix matrixcalc purrr SMUT]; };
   jfa = derive2 { name="jfa"; version="0.7.1"; sha256="167n554hpmz4iqszlsjzjiphsf857hysfjkd2gx9kwv6r1crmv3k"; depends=[bde BH extraDistr ggplot2 Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders truncdist]; };
-  jgsbook = derive2 { name="jgsbook"; version="1.0.4"; sha256="14rjs7ja2aj6rrq1xfv4r8zisnw4mkxiiwr7l8x7cai484adfqbf"; depends=[curl httr jsonlite statip]; };
+  jgsbook = derive2 { name="jgsbook"; version="1.0.5"; sha256="0d54cdvx97787vwm9pqcmfx66y0l1crz4w16khpqr2k4nqixnkqk"; depends=[curl httr jsonlite statip]; };
   jiebaR = derive2 { name="jiebaR"; version="0.11"; sha256="08v64xwr9jp4vh88x7y935khh4cmj8rwsjaxfd2c67n0445qppmd"; depends=[jiebaRD Rcpp]; };
   jiebaRD = derive2 { name="jiebaRD"; version="0.1"; sha256="1wadpcdca4pm56r8q22y4axmqdbb2dazsh2vlhjy73rpymqfcph4"; depends=[]; };
   jinjar = derive2 { name="jinjar"; version="0.3.1"; sha256="0d65a85pain2h642h4dd7sry58jkn2rkmaavzwiixp63j0gmixn8"; depends=[cli cpp11 fs jsonlite rlang]; };
@@ -12319,11 +12519,11 @@ in with self; {
   jmetrik = derive2 { name="jmetrik"; version="1.1"; sha256="1if1kxx8apgkbxpkjnlj2lpsfnyj2splsg1p3j5vxa7q6wx70f9j"; depends=[]; };
   jmotif = derive2 { name="jmotif"; version="1.1.1"; sha256="0b2qllpfgs6q5fwfhxl5b4xdyzbvnja7ld766akf0xxznxvglkrg"; depends=[Rcpp RcppArmadillo]; };
   jmuOutlier = derive2 { name="jmuOutlier"; version="2.2"; sha256="1vj9n1hsf780f7l0a22kmi3qm84j4dzjybjkh5zwh6bhwfjnjws3"; depends=[]; };
-  jmv = derive2 { name="jmv"; version="2.4.11"; sha256="02iaasl3crg924y3dipv7pjq67nj9lf2i2j53pa4ccwz22nrpsbw"; depends=[afex BayesFactor car dplyr emmeans GGally ggplot2 ggrepel ggridges GPArotation jmvcore lavaan magrittr MASS multcomp mvnormtest nnet PMCMR psych R6 ROCR vcd vcdExtra]; };
-  jmvReadWrite = derive2 { name="jmvReadWrite"; version="0.4.4"; sha256="13c4ja0b5162j19pkiwk3lvn41ak5ckwvhb9zh8p2l2hdnw48zgh"; depends=[jsonlite zip]; };
+  jmv = derive2 { name="jmv"; version="2.5.5"; sha256="0d98sk8c6m6zi1p8wycdmk5xh48ji04lrhmqpj5q081llv30y31m"; depends=[afex BayesFactor car dplyr emmeans GGally ggplot2 ggrepel ggridges GPArotation jmvcore lavaan magrittr MASS multcomp mvnormtest nnet PMCMR psych R6 ROCR vcd vcdExtra]; };
+  jmvReadWrite = derive2 { name="jmvReadWrite"; version="0.4.6"; sha256="02db03vmj377z5nyc7j8myrcxq48wqspnjf1v1sksdz66jxh4f7k"; depends=[jsonlite zip]; };
   jmvconnect = derive2 { name="jmvconnect"; version="2.3.13"; sha256="0b5klfn4986haw3hhy3aarf88g08s1d46b8xrpxxqnwqw8yd7l88"; depends=[BH evaluate httr jmvcore rappdirs Rcpp]; };
   jmvcore = derive2 { name="jmvcore"; version="2.4.7"; sha256="1pzcv5rkkhff73cf9kfp56d5frk5vjjj6ls1cd4bskyrm0754p3a"; depends=[base64enc jsonlite R6 rlang stringi]; };
-  job = derive2 { name="job"; version="0.3.0"; sha256="0d7pw3q5lqlgmav1vx63y8l6gdav96656bg378wj001rx5gx052h"; depends=[digest rstudioapi]; };
+  job = derive2 { name="job"; version="0.3.1"; sha256="14i0ljq2wp9k8112fr27sz0bc0zi2a68kls8vw5h3qa5n40v27cc"; depends=[digest rstudioapi]; };
   jocre = derive2 { name="jocre"; version="0.3.3"; sha256="1i9n3r16pq6r4sy3fc1rxpil5ws8v2is0xdxafinvwr1hzkv1gz6"; depends=[boot KernSmooth plyr TSP]; };
   joinXL = derive2 { name="joinXL"; version="1.0.1"; sha256="1l76bckjz5r1kdsh0s10i0gpca12rkfkp14346fn7avdcw73v23i"; depends=[data_table openxlsx R_utils rChoiceDialogs Rcpp readxl rJava timeDate timeSeries]; };
   joineR = derive2 { name="joineR"; version="1.2.8"; sha256="0hf83115g5m0m1wv9yji2wvyzb5j4wrzbzkspdcswk9i4hkmp4h7"; depends=[lattice MASS nlme statmod survival]; };
@@ -12338,15 +12538,15 @@ in with self; {
   jointVIP = derive2 { name="jointVIP"; version="0.1.2"; sha256="1m1fqngc2000i7mfp6rcs5js0bg0kzspmavi55ksrb1kybf8rh7k"; depends=[ggplot2 ggrepel]; };
   jointseg = derive2 { name="jointseg"; version="1.0.2"; sha256="0zilkxk30w3l9mwikmsgvpy5misjggs98c3bjrjy1pfc4b0is943"; depends=[acnr DNAcopy matrixStats]; };
   jomo = derive2 { name="jomo"; version="2.7-6"; sha256="1np2sw0kq21kdhkv227pz2rqvpxg06r3mk93ggkrz5nl45ajmyiz"; depends=[lme4 MASS ordinal survival tibble]; };
-  jordan = derive2 { name="jordan"; version="1.0-1"; sha256="1d0my0lf8bmlmygz9f23skywzsrhy4xaykyrblbmhb00l0vxpa5s"; depends=[emulator mathjaxr onion]; };
+  jordan = derive2 { name="jordan"; version="1.0-5"; sha256="10va924f3fjasmqahlrk0k7fmnyjfqmkcgimqpvhfk0vwgr8pv3a"; depends=[emulator mathjaxr Matrix onion]; };
   josaplay = derive2 { name="josaplay"; version="0.1.3"; sha256="0q6kjk3mjxwbqvq3zz0ylpi1viznp9pxzngqpjzv5sibv0ndh0lf"; depends=[magrittr utf8]; };
   jose = derive2 { name="jose"; version="1.2.0"; sha256="09k6wnnqlsbmlag4156rcsnavph52grqagkax9kd1sxgpknril3v"; depends=[jsonlite openssl]; };
   jot = derive2 { name="jot"; version="0.0.4"; sha256="0pzlj9vcz7p3zcg2y32cir593x193cxswkc3y9d1xh58vamrgs60"; depends=[cli yaml]; };
   journalabbr = derive2 { name="journalabbr"; version="0.4.3"; sha256="0cp319v6r70kralxblfwvii8glx040fxwiqbfrdq50cpyvf7vv5k"; depends=[data_table httr purrr shiny stringi stringr tidytable]; };
-  joyn = derive2 { name="joyn"; version="0.1.4"; sha256="17x9rwcrqv7qx9w0cfyshjsij9cdl0fk13cfqbv0ibnc2nfycw87"; depends=[cli data_table glue rlang]; };
-  jpcity = derive2 { name="jpcity"; version="0.1.1"; sha256="0aw97p2ac8kb32f0lmji7xqr985vxl1i708pjaghzc3q1w8mx9ab"; depends=[cli dplyr lubridate pillar purrr rlang stringr tibble vctrs]; };
+  joyn = derive2 { name="joyn"; version="0.2.0"; sha256="0p8s90fkjwlllhk7a60xs6pfvgbhyz5sk3rdvdp5sb4l037rb4m2"; depends=[cli collapse data_table lifecycle rlang]; };
+  jpcity = derive2 { name="jpcity"; version="0.2.1"; sha256="1wpznczyx9vmhyznzph0f4lc2rl5x3nhdygp2yfq3hl0kwxrgzfz"; depends=[cli dplyr lifecycle lubridate pillar purrr rlang stringr tibble vctrs]; };
   jpeg = derive2 { name="jpeg"; version="0.1-10"; sha256="1jkqj58hj33ar9wyl7c1cnj3h42icq7crmjk93n933q8qc4zdnf8"; depends=[]; };
-  jpgrid = derive2 { name="jpgrid"; version="0.3.1"; sha256="0pp5nwvv0sglr089m78q4kaq7pkj7w2qdylpaahyjqb4iqk06grh"; depends=[cli dplyr geosphere lifecycle pillar purrr rlang sf stars stringr tibble tidyr tidyselect units vctrs]; };
+  jpgrid = derive2 { name="jpgrid"; version="0.4.0"; sha256="01x2iyc37pfd1rz4avgiv1ng1d5g4hpi4viv8y0pcb9rpv3dymw1"; depends=[cli dplyr lifecycle pillar purrr rlang sf stars stringr tibble tidygraph tidyr units vctrs]; };
   jpmesh = derive2 { name="jpmesh"; version="2.1.0"; sha256="0q8adf582h92qwdwgh4dk53s8rixrrh96r8vzy6bwxvizqf0i3y8"; depends=[leaflet magrittr memoise miniUI purrr rlang sf shiny tibble units vctrs]; };
   jpstat = derive2 { name="jpstat"; version="0.4.0"; sha256="1vzqipxk019f9chm9nxcsifiv3i2cmqvwgyx45zrh2cxsrn8bhvk"; depends=[dplyr httr lifecycle navigatr pillar purrr rlang stickyr stringr tibble tidyr vctrs]; };
   jqbr = derive2 { name="jqbr"; version="1.0.3"; sha256="1afraa18zwv3lbgxpqj4zkvlhzmv5ziajww1iccpkr7ca1rn4zk3"; depends=[htmltools jsonlite shiny]; };
@@ -12359,10 +12559,10 @@ in with self; {
   jrvFinance = derive2 { name="jrvFinance"; version="1.4.3"; sha256="0g3w65avys5chni0zlahzwqgv09z9na08yhay385ax33ddwrcrjv"; depends=[]; };
   js = derive2 { name="js"; version="1.2"; sha256="0s5rj845255a4fzv4h76gcnnqyl5cg3c03r2ay3f00jxnxvvigcg"; depends=[V8]; };
   jsTree = derive2 { name="jsTree"; version="1.2"; sha256="06mmz55brm6w19vnlk1w8qaz0n3czlyl4fs62nzgdlsdjn8pad1h"; depends=[data_table htmltools htmlwidgets jsonlite]; };
-  jsTreeR = derive2 { name="jsTreeR"; version="2.5.0"; sha256="0qkywv3var6ash1vsl684pjhwrn7hmw3nl6i5kcqvb7xijs20cwp"; depends=[base64enc fontawesome htmltools htmlwidgets jquerylib miniUI R_utils rstudioapi shiny shinyAce]; };
+  jsTreeR = derive2 { name="jsTreeR"; version="2.6.0"; sha256="1wck0wnj41qs3cjjmp4b8bnjy7l736k5xqq89al40am0ixnf86bs"; depends=[base64enc fontawesome htmltools htmlwidgets jquerylib miniUI R_utils rstudioapi shiny shinyAce]; };
   jshintr = derive2 { name="jshintr"; version="0.1.0"; sha256="08j28c2ab9fh6g7qp2vl8j5hz5kkikvl2id979kv92ach9vranyd"; depends=[htmltools htmlwidgets rstudioapi]; };
   jskm = derive2 { name="jskm"; version="0.5.3"; sha256="078aij3n53q1pj5wb32bvmzncw9hhwxxp3s0lg8iqgpcyb4cgbj0"; depends=[ggplot2 ggpubr patchwork scales survey survival]; };
-  jsmodule = derive2 { name="jsmodule"; version="1.5.1"; sha256="1n3fq2i53vsbh0z6p8142mi00cy9zxbsh34s048h97hg0ljzwkz6"; depends=[data_table DT epiDisplay forestploter geepack GGally ggplot2 ggpubr haven Hmisc jskm jstable labelled MatchIt maxstat officer pROC purrr RColorBrewer readr readxl rstudioapi rvg see shiny shinycustomloader shinyWidgets survey survIDINRI survival timeROC]; };
+  jsmodule = derive2 { name="jsmodule"; version="1.5.5"; sha256="1av1c6wza8rrd7klkzhy5y7ncp3xc07bmvm32vskm7nkfglcky4k"; depends=[data_table DT epiDisplay flextable forestploter geepack GGally ggplot2 ggpubr haven Hmisc jskm jstable labelled MatchIt maxstat officer pROC purrr RColorBrewer readr readxl rstudioapi rvg scales see shiny shinycustomloader shinyjs shinyWidgets survey survIDINRI survival timeROC]; };
   json2aRgs = derive2 { name="json2aRgs"; version="0.3.0"; sha256="0n1kj1kll6x7ar00y32pf8z38z7z1bnj29nlv9dx068n4kmy89v7"; depends=[jsonlite yaml]; };
   json64 = derive2 { name="json64"; version="0.1.3"; sha256="19q8qgf4wnd3np12ajy180klpjy0g2csw5micwb4sl7qfzl6wc7j"; depends=[jsonlite]; };
   jsonNormalize = derive2 { name="jsonNormalize"; version="1.0.0"; sha256="1szvi8c0r75jv7y2y1jsampb783svvx04x4rvyw8v9qkiw0qpfis"; depends=[rstudioapi V8]; };
@@ -12372,7 +12572,8 @@ in with self; {
   jsonlite = derive2 { name="jsonlite"; version="1.8.8"; sha256="196an37f118qw43vyfaygh01dirh3hyz84ix8bbs6fsck0b17qkx"; depends=[]; };
   jsonstat = derive2 { name="jsonstat"; version="0.0.2"; sha256="0p0d3snl1971p5ikrkmwqrjjh4fy0b89qk3rnd1dayfb0r80xnnj"; depends=[cli dplyr jsonlite rlang]; };
   jsonvalidate = derive2 { name="jsonvalidate"; version="1.3.2"; sha256="0myvm93azl6mj60l8fp91qa3ln3nnwj4p48xli8k215sm6zhhv1b"; depends=[V8]; };
-  jstable = derive2 { name="jstable"; version="1.1.7"; sha256="1rg913xfyzyxrfpvidxh80y4m4ls9ns14d24j2kv7qsaxhzq00si"; depends=[coxme data_table dplyr geepack labelled lme4 magrittr purrr survey survival tableone tibble]; };
+  jstable = derive2 { name="jstable"; version="1.2.6"; sha256="1g8qfbm8fxjm48dwmwfgckdsynicbmpnj35yjy34nal98qs5andp"; depends=[coxme data_table dplyr geepack labelled lme4 magrittr purrr survey survival tableone tibble]; };
+  jstager = derive2 { name="jstager"; version="0.0.2"; sha256="14n4j8imka9rrnxidvsh3rax4qqbg2ccnj6pwcwgqyw897fimjkv"; depends=[dplyr httr openxlsx rvest tibble xml2]; };
   jstor = derive2 { name="jstor"; version="0.3.11"; sha256="1n5l6wz93bjhhhpikmvmjd5famxbrsk3d6z61bb7sp6xvslychlj"; depends=[cli crayon dplyr furrr magrittr pryr purrr readr rlang stringr tibble tidyr xml2]; };
   jtdm = derive2 { name="jtdm"; version="0.1-2"; sha256="034hajlqz7mypnia77nm1fihhc5sjwaxvrk83qj1miqd5yilygvx"; depends=[ggforce ggplot2 gridExtra mniw mvtnorm reshape2]; };
   jti = derive2 { name="jti"; version="0.8.4"; sha256="0jxqv3xa9yyzizx1rhxjv65c8b253shridy57skrd5kya701n460"; depends=[igraph Rcpp RcppArmadillo sparta]; };
@@ -12387,6 +12588,7 @@ in with self; {
   jvcoords = derive2 { name="jvcoords"; version="1.0.3"; sha256="1ixmz3pj18zddgah59iqd4zbm5praw0dvn6c93dn5mrwx92pa65c"; depends=[]; };
   jvnVaR = derive2 { name="jvnVaR"; version="1.0"; sha256="0zh0dc6wqlrxn5r2yv9vkpyfb8xsbdidkjv9g6qr94fyxlbs4yci"; depends=[]; };
   k5 = derive2 { name="k5"; version="0.2.1"; sha256="0mlanbp48b6y2wvcr6q1nka27vm861zyvlzj6fs046rw7qnzmg1k"; depends=[clipr dplyr fs ggplot2 glue lubridate magrittr purrr readr rlang stringr tibble usethis]; };
+  kDGLM = derive2 { name="kDGLM"; version="1.2.0"; sha256="10is3f3gcax317gxkbvsv35385q9cjmxb14dfxxmq7y7aw4p6iqb"; depends=[extraDistr generics Rdpack Rfast]; };
   kNNvs = derive2 { name="kNNvs"; version="0.1.0"; sha256="1zbfk8fanwmzn0ryhyxmq7npl1pysgnhs4chpfi1kxlnlbgfxfl1"; depends=[]; };
   kSamples = derive2 { name="kSamples"; version="1.2-10"; sha256="13ap5ggid3w3s3k5mzz1ir31j96hjg6msa2s1hcy66zv242wqrid"; depends=[SuppDists]; };
   kStatistics = derive2 { name="kStatistics"; version="2.1.1"; sha256="149aly73m7ls4pvyhg861j6yi2yyyr4hdwzh53hfyrakr73rq7y4"; depends=[]; };
@@ -12396,15 +12598,16 @@ in with self; {
   kairos = derive2 { name="kairos"; version="2.1.0"; sha256="1n59sicqffj7gn3l2726w0dnfxx4j8h16jkjv5lp4h3acpdnx6c9"; depends=[aion arkhe dimensio extraDistr]; };
   kalmanfilter = derive2 { name="kalmanfilter"; version="2.1.1"; sha256="0d45gx7r7d80bvn57g5xy24pf193ds3nyi5b8alpn4f5y93iy86h"; depends=[Rcpp RcppArmadillo]; };
   kamila = derive2 { name="kamila"; version="0.1.2"; sha256="01rwalv2qigxl3j3jyhrdbxlarwf0xdc8xa6c42sgcl6qpna5vn7"; depends=[abind gtools KernSmooth plyr Rcpp]; };
-  kangar00 = derive2 { name="kangar00"; version="1.4.1"; sha256="0c3wrzk7k322xj0yzladxdhh2j91qm7m0dyqqqfsshfkh8d22m48"; depends=[bigmemory biomaRt CompQuadForm data_table igraph KEGGgraph lattice sqldf]; };
-  kanjistat = derive2 { name="kanjistat"; version="0.9.1"; sha256="0yp5x1zvf8k4gaz2fpi6qa1mpfkmsvdv7y0b7scbf168yjqq8m7a"; depends=[crayon dendextend gsubfn lifecycle png purrr rlang ROI showtext stringi stringr sysfonts transport xml2]; };
-  kantorovich = derive2 { name="kantorovich"; version="3.1.0"; sha256="0hhqglqasc76pcybz7jc18dsq3bhgmbw11d2zc3xy8vg8i0ykz63"; depends=[CVXR gmp lpSolve ompr ompr_roi rcdd Rglpk ROI_plugin_glpk slam]; };
+  kangar00 = derive2 { name="kangar00"; version="1.4.2"; sha256="14i4i7m5y02hybllkawwxlc4g0j4lr1pybqip6zpqd612j5q4mfm"; depends=[bigmemory CompQuadForm data_table igraph lattice sqldf]; };
+  kanjistat = derive2 { name="kanjistat"; version="0.14.1"; sha256="1d6r923xczhr75dmb3vq2pr3l9maigk8zvvk4r5x0jlh8sgrwdr0"; depends=[crayon dendextend gsubfn lifecycle Matrix png purrr RANN Rcpp rlang ROI showtext stringi stringr sysfonts transport xml2]; };
+  kantorovich = derive2 { name="kantorovich"; version="3.2.0"; sha256="1fvf2j518h6mfjrkh7c9swpi8adfd6a5pr7b6pc6al16jbvbw3rf"; depends=[CVXR gmp lpSolve ompr ompr_roi rcdd Rglpk ROI_plugin_glpk slam]; };
   kaos = derive2 { name="kaos"; version="0.1.2"; sha256="0hzzb8ldydl4g3cl1579q8jv835q4cdmn8agafp6qqdhwi1xxw8k"; depends=[ggplot2 reshape2]; };
   kaphom = derive2 { name="kaphom"; version="0.3"; sha256="081drgckirc0wv2viyhhnabrlfzi0nkpq6pffw2rxfjyxdsyvnwa"; depends=[]; };
   kappaSize = derive2 { name="kappaSize"; version="1.2"; sha256="0lrcyj85zcl73m6bhbzl6rkprrfpfwmm4amyjkg1xsasy5zlwk67"; depends=[]; };
   kappalab = derive2 { name="kappalab"; version="0.4-12"; sha256="130k24wzan7slgvfld3yi12x8h9ybvwddfzdcvj3xvn7ijhjj25k"; depends=[kernlab lpSolve quadprog]; };
   karaoke = derive2 { name="karaoke"; version="2.0"; sha256="09fxf2pgs7nj96p8cfwc8ghwl8aqk6zal8njizbrz19m6l7ygxmk"; depends=[seewave tuneR]; };
   karel = derive2 { name="karel"; version="0.1.1"; sha256="0nvzvd8aq0sipcvn8agjjd2k1wykpgc99nrrk2cxrlvsjbpd2w52"; depends=[dplyr gganimate ggplot2 gifski magrittr purrr tidyr]; };
+  karlen = derive2 { name="karlen"; version="0.0.2"; sha256="0600m0hgll7sl8v3ah3g2dl5wa4brc929mp27iid9d1s9brhzgxv"; depends=[tibble]; };
   karyotapR = derive2 { name="karyotapR"; version="1.0.1"; sha256="01mxsv4ky6d16xjkvi6lc2cfvrdll6whyizxf500m8ds9bdlmqha"; depends=[circlize cli ComplexHeatmap dbscan dplyr fitdistrplus GenomicRanges ggplot2 gtools IRanges magrittr purrr rhdf5 rlang S4Vectors SingleCellExperiment SummarizedExperiment tibble tidyr umap viridisLite]; };
   katex = derive2 { name="katex"; version="1.4.1"; sha256="18cziglz8qy1v9gfcjiixq2d3l3na5p51zrxpy3x8asjiddq13d3"; depends=[V8]; };
   kayadata = derive2 { name="kayadata"; version="1.3.0"; sha256="1fq8yaiis38avmnklq2g17sz1aphplraqgw40q5zfs1kdvhr39gp"; depends=[dplyr forcats ggplot2 magrittr purrr scales stringr tidyr]; };
@@ -12414,7 +12617,7 @@ in with self; {
   kde1d = derive2 { name="kde1d"; version="1.0.7"; sha256="1z6g54qhiry04hx39akz1ll78rw49w7gwkcbjagxyrfq8gswa2yn"; depends=[BH randtoolbox Rcpp RcppEigen]; };
   kdecopula = derive2 { name="kdecopula"; version="0.9.2"; sha256="0g5c12wm3byd4chd8i9mxv599gsf4ip4qghx83j3mmhsmn05zf4y"; depends=[lattice locfit qrng quadprog Rcpp RcppArmadillo]; };
   kdensity = derive2 { name="kdensity"; version="1.1.0"; sha256="07d1p3ysdm66a9sf0gih5xjb3wfab44c3sr8aaraz22s2a9q9b55"; depends=[assertthat EQL univariateML]; };
-  kdevine = derive2 { name="kdevine"; version="0.4.4"; sha256="1508dyjqn4vrs83b70h06ffygrx6iwqcaa360b08j3qlrlq742c6"; depends=[cctools doParallel foreach kdecopula KernSmooth MASS qrng Rcpp VineCopula]; };
+  kdevine = derive2 { name="kdevine"; version="0.4.5"; sha256="0d157kl8x9jq4h8h0r8iia25wwdw1syc4f1iqp5mgn3l4kgark9s"; depends=[cctools doParallel foreach kdecopula KernSmooth MASS qrng Rcpp VineCopula]; };
   kdist = derive2 { name="kdist"; version="0.2"; sha256="18q7njvsb9sbm412c6ms4b4nxg768z9qahws5rnin06gvb25nfcx"; depends=[]; };
   kdpee = derive2 { name="kdpee"; version="1.0.0"; sha256="1vrpr1rkk0ypl5yi3cjgw0fglyx9r2fbcq21n172ax0w3kdyflgk"; depends=[checkmate]; };
   kdry = derive2 { name="kdry"; version="0.0.2"; sha256="0svmm8ycl3gk0z9w2rps4hdqyrc6k3nl024fbmq3dwa3vlv56rs0"; depends=[data_table doParallel foreach Hmisc magrittr]; };
@@ -12427,21 +12630,20 @@ in with self; {
   kerDAA = derive2 { name="kerDAA"; version="0.1.1"; sha256="0z27qkfasjian0wwn0q4400153ni5h0c6297j4b0qqjl3ylaqakb"; depends=[mvtnorm]; };
   kerSeg = derive2 { name="kerSeg"; version="1.1"; sha256="15j3l9zlyg0hax5ynj9pvf0h60yr1y7wcx5v5zvk64ssmdyw0cdc"; depends=[Rcpp]; };
   kerTests = derive2 { name="kerTests"; version="0.1.4"; sha256="135v5lcnvmlcabgqnlcba9q0wc51ajcklz04bknz3psaqv71bp71"; depends=[]; };
-  keras = derive2 { name="keras"; version="2.13.0"; sha256="1xjmkrz06rh8767pfqi81fgkljkyb4i7bzllahw7b62b9s2wp38l"; depends=[generics glue magrittr R6 reticulate rlang tensorflow tfruns zeallot]; };
-  keras3 = derive2 { name="keras3"; version="0.1.0"; sha256="017rdqpgxg28zpxdx4r63k51qz4sm4nzhdms0gh8cp7fafa34nkv"; depends=[cli fastmap generics glue magrittr reticulate rlang tensorflow tfruns zeallot]; };
-  kerastuneR = derive2 { name="kerastuneR"; version="0.1.0.6"; sha256="0n72m527slplgxxp7i5i91cpzbzgrlwmfc8gj2hs3wv41jrr1xl6"; depends=[crayon data_table dplyr echarts4r magick plotly reticulate rjson RJSONIO rstudioapi tensorflow tidyjson]; };
+  keras = derive2 { name="keras"; version="2.15.0"; sha256="0xahkgww3dzp8vjz0456sn6ihz0w0q0dz1gnmx07r2vx81isirvc"; depends=[generics glue magrittr R6 reticulate rlang tensorflow tfruns zeallot]; };
+  keras3 = derive2 { name="keras3"; version="1.0.0"; sha256="173l57wgnbjwmb8cgsmifk22dwiib50mkx0k68v080iavh4x44g6"; depends=[cli fastmap generics glue magrittr reticulate rlang tensorflow tfruns zeallot]; };
+  kerastuneR = derive2 { name="kerastuneR"; version="0.1.0.7"; sha256="05hyhgbc2533az1yrjj8v8idky0xwn20mxd92dna0is6pddf75hv"; depends=[crayon data_table dplyr echarts4r magick plotly reticulate rjson RJSONIO rstudioapi tensorflow tidyjson]; };
   kergp = derive2 { name="kergp"; version="0.5.7"; sha256="0cf6acz09cbzhnl26x2z0s674mvikl9lq31mdl2s10y6ah00cpsk"; depends=[doFuture doParallel lattice MASS nloptr numDeriv Rcpp testthat]; };
   kerndwd = derive2 { name="kerndwd"; version="2.0.3"; sha256="0lvm007wzhyagyafmq47819hn66riwdcpymn56clc1sgch9i933m"; depends=[]; };
   kernelFactory = derive2 { name="kernelFactory"; version="0.3.0"; sha256="001kw9k3ivd4drd4mwqapkkk3f4jgljiaprhg2630hmll064s89j"; depends=[AUC genalg kernlab randomForest]; };
   kernelboot = derive2 { name="kernelboot"; version="0.1.10"; sha256="1fv00hbm4l5dxcw8hq2wlfxng49bc8k608ny70g3fy0grkh7r8vy"; depends=[future future_apply parallelly Rcpp]; };
-  kernelshap = derive2 { name="kernelshap"; version="0.4.1"; sha256="11h5zxyxzdaw9dkxngcxpirhagd45f9n83v7db9pjcl2bjigip3n"; depends=[foreach]; };
+  kernelshap = derive2 { name="kernelshap"; version="0.5.0"; sha256="0wxv9b0h5kzikxglmhcirjpa0dv488ibdxd7n1x5ii6wz2bpzn7i"; depends=[foreach]; };
   kernhaz = derive2 { name="kernhaz"; version="0.1.0"; sha256="1cxwjnfyhxfjdbhs21airycs704jic21pdpsbxsx37wkl11cxpai"; depends=[doParallel foreach GA rgl]; };
   kernlab = derive2 { name="kernlab"; version="0.9-32"; sha256="1p3gbn9qgc6yqx9irkl8c23khvkx77jl96hk9hn4vsrx6i7g6kk5"; depends=[]; };
   kernplus = derive2 { name="kernplus"; version="0.1.2"; sha256="0z5zpj89nw7cdphg6frmjwqjxsl6g95xsa8zgsxmw2q75wwj1saz"; depends=[circular KernSmooth mixtools]; };
   kernscr = derive2 { name="kernscr"; version="1.0.6"; sha256="0vk0ppb24la6876sw96kk5s3lw4qqs56m507xncbdvjjgw6pq180"; depends=[MASS mvtnorm]; };
-  kernstadapt = derive2 { name="kernstadapt"; version="0.0.2"; sha256="0hbzc0xqlgs3kbblm247hkaic7s9a5slz22slh5dz9ddgfdy1z21"; depends=[misc3d sparr spatstat_explore spatstat_geom spatstat_random spatstat_utils]; };
   kesernetwork = derive2 { name="kesernetwork"; version="0.1.0"; sha256="0q42zry3qgg38aas0cxy7lwpj9mj45crcbs353d1d1is0w1avh09"; depends=[config data_table dplyr DT ggplot2 golem htmltools plotly reactable rintrojs rlang shiny shinyBS shinycssloaders shinydashboard shinydashboardPlus shinyhelper shinyWidgets stringr visNetwork yaml]; };
-  keyATM = derive2 { name="keyATM"; version="0.5.1"; sha256="00zwjhp0ghw9zbdrn7l6v8kb3ir9abck8328abz7x54xv80v9rlb"; depends=[cli dplyr fastmap fs future_apply ggplot2 ggrepel magrittr MASS Matrix matrixNormal pgdraw purrr quanteda Rcpp RcppEigen rlang stringr tibble tidyr tidyselect]; };
+  keyATM = derive2 { name="keyATM"; version="0.5.2"; sha256="1xd5ps0m6ymbdia89n2lr03pjhxhwsjwd648xpq42wkvir8an1nv"; depends=[cli dplyr fastmap fs future_apply ggplot2 ggrepel magrittr MASS Matrix matrixNormal pgdraw purrr quanteda Rcpp RcppEigen rlang stringr tibble tidyr tidyselect]; };
   keyToEnglish = derive2 { name="keyToEnglish"; version="0.2.1"; sha256="1wzn93gp1v6y8qh9kypydqadnf6fc7xzjili77b7j402hvb0a8zg"; depends=[jsonlite openssl stringr]; };
   keyholder = derive2 { name="keyholder"; version="0.1.7"; sha256="19xbzpanwyfxywzki3m5jvams40ppxkplm7p1jqm6d5rviidiq1j"; depends=[dplyr rlang tibble]; };
   keyperm = derive2 { name="keyperm"; version="0.1.1"; sha256="11jwh704iq134imv9p7brnjpvzbqyvd5bdw7id0ggnf7kp2w5rbj"; depends=[Rcpp slam tm]; };
@@ -12459,7 +12661,7 @@ in with self; {
   kgp = derive2 { name="kgp"; version="1.1.1"; sha256="021113hqs7ack852mksssaac1lj0k4mpf94yiws67qiygmsa693k"; depends=[]; };
   kgrams = derive2 { name="kgrams"; version="0.2.0"; sha256="09py3p85ffa03m3xjvwscz4w61k1yxkxqy96im06509bx51qha0q"; depends=[Rcpp RcppProgress Rdpack rlang]; };
   kgschart = derive2 { name="kgschart"; version="1.3.5"; sha256="1gdsrmnv8z99cldvig7grlq8gsbv3wpx7zdamw85lz563n4ln94d"; depends=[abind deepnet ggplot2 gridExtra magrittr matrixStats nnet png shiny stringr]; };
-  khisr = derive2 { name="khisr"; version="1.0.1"; sha256="0kaq64iz9wz38gh207lr6qw4ljiszh8ra1xg1p8zz1vs1vsip2dg"; depends=[cli curl dplyr httr2 jsonlite magrittr purrr rlang stringr tidyr withr]; };
+  khisr = derive2 { name="khisr"; version="1.0.4"; sha256="00myg7anp5c85bnxamwp59q0f2rgj9fqmsnzcj3ijbrqs1fdz1s3"; depends=[cli curl dplyr httr2 janitor jsonlite lifecycle lubridate magrittr purrr rlang stringr tidyr withr]; };
   khroma = derive2 { name="khroma"; version="1.12.0"; sha256="1w3rd98m3qk21p8zh3b13x9jbms5zd51il917qxdnxcyc4166n5s"; depends=[]; };
   kibior = derive2 { name="kibior"; version="0.1.1"; sha256="1acrdlqbklhhd69i1gija8r3nsdgcnfvk5ngz7b2ndy2f58w5ynf"; depends=[Biostrings data_table dplyr elastic jsonlite magrittr purrr R6 rio Rsamtools rtracklayer stringr tibble tidyr]; };
   kidney_epi = derive2 { name="kidney.epi"; version="1.2.0"; sha256="1hd6w7kxim5slmmqalf5sfjg8jcvhyzn5g4gf6h0lmaprsfszhja"; depends=[]; };
@@ -12476,7 +12678,7 @@ in with self; {
   kirby21_t1 = derive2 { name="kirby21.t1"; version="1.7.0"; sha256="0bv8rrk9jh02h3gill1g2w246j4zv98cjchz7i2c092lvqps8szs"; depends=[kirby21_base]; };
   kisopenapi = derive2 { name="kisopenapi"; version="0.0.2"; sha256="0vyz546nwxpz88hbjqp2q8ad9zqp1syln4yzmfdpzj8aqkdc3b0h"; depends=[cli data_table httr2 jsonlite]; };
   kissmig = derive2 { name="kissmig"; version="1.0-4"; sha256="0qm9psbi42xv69y2095j6nk51w15x6gl71qjhmfk9jq0r9llfbax"; depends=[raster Rcpp]; };
-  kit = derive2 { name="kit"; version="0.0.16"; sha256="17zvwj43vwq7cgw648iwriwq591llccynmd1fsrbx5110g30yjrr"; depends=[]; };
+  kit = derive2 { name="kit"; version="0.0.18"; sha256="0iv1bnh9gcxdxm4ydgsgsgrhygy7km94y3azk4q4xmg6s362q7hq"; depends=[]; };
   kitagawa = derive2 { name="kitagawa"; version="3.1.2"; sha256="0xn1gwa0whw6glypsf8wwrw0rlzy3xglqr7gdl5c7ldd5v1dffq9"; depends=[Bessel kelvin psd]; };
   kiwisR = derive2 { name="kiwisR"; version="0.2.0"; sha256="14fzf72swy221jcbiplss9dh7g03idrpbbyvbxp4bcqpxwr6hbsa"; depends=[dplyr httr jsonlite lubridate purrr tibble]; };
   kknn = derive2 { name="kknn"; version="1.3.1"; sha256="1nzkg3dxaiqp87p56wm895qx5xn86hv5hjr73qvl1yiaxiq0x112"; depends=[igraph Matrix]; };
@@ -12484,6 +12686,7 @@ in with self; {
   klaR = derive2 { name="klaR"; version="1.7-3"; sha256="1rg3p3y984s7k7y14agbh3kxh21rrvan3yzpvfimpnvw04f08v6k"; depends=[combinat MASS questionr]; };
   klassR = derive2 { name="klassR"; version="0.2.3"; sha256="0qq290c2n8diy3sgldw64bvsqsddfqpkb2cmqgdn9m6a0m3cg6s0"; depends=[httr jsonlite tm]; };
   klausuR = derive2 { name="klausuR"; version="0.12-14"; sha256="1nc84q5jaya4d7bi1m8zwbmyfsxzmv470nq2nj2j8xn5jv6ch4a5"; depends=[psych xtable]; };
+  kldest = derive2 { name="kldest"; version="1.0.0"; sha256="0wy2cdkf6jmqw4hw1hs7vdwxvqn5yh4al71b5nvhixby4mck0cm3"; depends=[RANN]; };
   kldtools = derive2 { name="kldtools"; version="1.2"; sha256="1r6j6ddylzxsfmymnf8hp7sm8c2ckr8xrdz75xlkgp4fgay106r2"; depends=[]; };
   klexdatr = derive2 { name="klexdatr"; version="0.1.2"; sha256="141xs03sb0ixhjpr388fwf5h124mqkbj0k1xqw0whdhrm5051qsz"; depends=[sf]; };
   klic = derive2 { name="klic"; version="1.0.4"; sha256="1ggsdq8xcg6hi12rq356myhngx3j475gpwlvpynm1581r4z0lkbk"; depends=[cluster coca Matrix pheatmap RColorBrewer]; };
@@ -12501,12 +12704,13 @@ in with self; {
   kmodR = derive2 { name="kmodR"; version="0.2.0"; sha256="1khp383k5rr7nnn1fih7wfw6k202igxcj3ddwawyp895qa9w12cj"; depends=[]; };
   knitLatex = derive2 { name="knitLatex"; version="0.9.0"; sha256="1igacc2sx8897wmnhh8kngd0fq6zqbi30chy5c8jw60zc38mi3wi"; depends=[knitr]; };
   knitcitations = derive2 { name="knitcitations"; version="1.0.12"; sha256="1c7pl8jh61pv0brqanmyfy6s0ipxn312b2hjypcsjaph6b8mhj2q"; depends=[digest httr RefManageR]; };
-  knitr = derive2 { name="knitr"; version="1.45"; sha256="1yw4fnzm8lvh6kpcdlvr1fahz7421h5mmaris58zlgn57fjxwbpf"; depends=[evaluate highr xfun yaml]; };
+  knitr = derive2 { name="knitr"; version="1.47"; sha256="1kx6g8ddbigwx3bmq771gwi3din3fxjn59l801904kjaz6dq9pgs"; depends=[evaluate highr xfun yaml]; };
   knitrBootstrap = derive2 { name="knitrBootstrap"; version="1.0.3"; sha256="157mn2gm7djfiw1b55vdr2ylrmgxlpfg95bmm82ghv5g6vr26smd"; depends=[knitr markdown rmarkdown]; };
   knitrProgressBar = derive2 { name="knitrProgressBar"; version="1.1.0"; sha256="18v5jrscfrin3mcs63bpj0q1drxk3zkhlbw93sqh0qrq04d4x02v"; depends=[R_oo R6]; };
   knitrdata = derive2 { name="knitrdata"; version="0.6.1"; sha256="1am79r4rkrw7vjmyzc0cq4p52l2ypdw99rfhrvdsaq11yllx08mx"; depends=[knitr xfun]; };
   knitxl = derive2 { name="knitxl"; version="0.1.0"; sha256="1l0qq9mqfwkxkkms8xrmf7wzrgg27syrndng7vrrymda67pcxnl4"; depends=[commonmark glue knitr magrittr openxlsx purrr R6 readbitmap readr stringr xml2 yaml]; };
   knn_covertree = derive2 { name="knn.covertree"; version="1.0"; sha256="0msfcmwydws7q7m5jdb0dxab0nkbl7mq5llg6v3r4qrnlvrdggvz"; depends=[Matrix Rcpp RcppEigen]; };
+  knnmi = derive2 { name="knnmi"; version="1.0"; sha256="16cdga8q6vl289yh7520khyfsg9aih7crq9wa13sn6lnimfah49r"; depends=[]; };
   knnp = derive2 { name="knnp"; version="2.0.0"; sha256="0qgq8la3zndlb1wwqv9b2kw52y9ns36pi4ds68pkm81bhzq5nqis"; depends=[doParallel foreach forecast parallelDist plyr]; };
   knnwtsim = derive2 { name="knnwtsim"; version="1.0.0"; sha256="1sxz1hzbx41z3w1qf2zf8fmf3pd64jrnc37ndxx28yc70vhwjd1n"; depends=[]; };
   knockoff = derive2 { name="knockoff"; version="0.3.6"; sha256="1fj6n39i8wfkc16pmkl8jli81nny8sjjfdgklys4mbcavcmlrv5g"; depends=[corpcor glmnet gtools Matrix Rdsdp RSpectra]; };
@@ -12519,7 +12723,7 @@ in with self; {
   kohonen = derive2 { name="kohonen"; version="3.0.12"; sha256="188cxw2fvpfr3dyi8g52igcyc8d5jffyn6rhc84dja52da8lp520"; depends=[Rcpp]; };
   kokudosuuchi = derive2 { name="kokudosuuchi"; version="1.0.0"; sha256="0h4r7bd9989pahx34lc2i5h1f8nipir941l7sahhgz28lskfkc3h"; depends=[glue rlang sf stringr tibble]; };
   komaletter = derive2 { name="komaletter"; version="0.5.0"; sha256="1wk1bhn699295pjj0ap6qkh11khdbx0nfxih74w1in53k4d3dajg"; depends=[rmarkdown]; };
-  konfound = derive2 { name="konfound"; version="0.5.0"; sha256="03phg563qigb8j8r35aj5v1r2m2v2lfncipqv684hskfx2bk9vww"; depends=[broom broom_mixed crayon dplyr ggplot2 ggrepel lavaan lme4 margins pbkrtest purrr rlang tibble tidyr]; };
+  konfound = derive2 { name="konfound"; version="0.5.1"; sha256="0gyz5n6x0brkv7c7j1k1fgna8bm1xl9i32qyxsl6h3lhqqi185dh"; depends=[broom broom_mixed crayon dplyr ggplot2 ggrepel lavaan lme4 pbkrtest purrr rlang tibble tidyr]; };
   kosel = derive2 { name="kosel"; version="0.0.1"; sha256="1gdsy4i58byqxddpsm5nk1r3hlgik5gs2b8jqcm8n1r4ib6pg0ay"; depends=[glmnet ordinalNet]; };
   kosis = derive2 { name="kosis"; version="0.0.1"; sha256="0nxrv1a48smgp36zcny38yfcz5dkx1dic4zicqkpvm93vf7jqn5i"; depends=[data_table httr jsonlite tibble]; };
   kpcalg = derive2 { name="kpcalg"; version="1.0.1"; sha256="1gd5bisyfwb12l9jmwhi2arlxrabc01vgv4m1qqs23vybsd6yh52"; depends=[energy graph kernlab mgcv pcalg RSpectra]; };
@@ -12547,7 +12751,7 @@ in with self; {
   kuiper_2samp = derive2 { name="kuiper.2samp"; version="1.0"; sha256="0gcgayh7qdic9zprdvs6r8qvpqs467zrm0qzp2acb7alcp01jhpi"; depends=[]; };
   kutils = derive2 { name="kutils"; version="1.73"; sha256="0xqg1s48afpn2w0mlqfwz3sj1gdjf05cpxq4z9r01k1476lvh6c9"; depends=[foreign openxlsx plyr RUnit xtable]; };
   kvh = derive2 { name="kvh"; version="1.4.2"; sha256="0lx7p2rgvcjgg99chcan0qb9hafx226sqvdb1g1xpkdwvzbyxci8"; depends=[Rcpp]; };
-  kyotil = derive2 { name="kyotil"; version="2024.1-30"; sha256="1gp9ijpar560ysssdf1xc96h4a1fvdi130pmaqdxq0r2wfxyn1m3"; depends=[]; };
+  kyotil = derive2 { name="kyotil"; version="2024.5-8"; sha256="1jcnk7bx12hjb8ycm1v93bsksgmcwb6m8kn7l4ipc00qwkzhs6r2"; depends=[]; };
   kza = derive2 { name="kza"; version="4.1.0.1"; sha256="1vx7wc8iwmr9d6ff2kcy6y3nyfj6jfzv4hxkv1fsas0rbjgfick4"; depends=[]; };
   kzs = derive2 { name="kzs"; version="1.4"; sha256="1srffwfg0ps8zx0c6hs2rc2y2p01qjl5g1ypqsbhq88vkcppx1w9"; depends=[lattice]; };
   l0ara = derive2 { name="l0ara"; version="0.1.6"; sha256="1cv48rbq080z7zx32hmlkpq7mi5axr09a1hyv3knl1vb9gql4qjq"; depends=[Rcpp RcppArmadillo]; };
@@ -12562,9 +12766,9 @@ in with self; {
   labelVector = derive2 { name="labelVector"; version="0.1.2"; sha256="06pqkgn852min2mqhjkia6qqdwkp8cz32lbxzp3a2b8bcggbijn4"; depends=[]; };
   labeleR = derive2 { name="labeleR"; version="0.1.2"; sha256="0a70jq7r9nvh84kaqig05qgv1yliv8vgf45f2nbpdq4slr5aq3rc"; depends=[rmarkdown]; };
   labeling = derive2 { name="labeling"; version="0.4.3"; sha256="1wk4wa1s8f17b5lf8vs5hxsmyadp2ccmyg4hamq7sdvlrk14yby6"; depends=[]; };
-  labelled = derive2 { name="labelled"; version="2.12.0"; sha256="1f6jh1mrbwb3v1kc49pb65sf5ffqs0h9vizpig4r5rhhv4n3q17y"; depends=[dplyr haven lifecycle rlang stringr tidyr vctrs]; };
+  labelled = derive2 { name="labelled"; version="2.13.0"; sha256="0dx2zwympwlys8ndyfz2qki3xywz7sqxfkbd8y52zdj34fj84bly"; depends=[dplyr haven lifecycle rlang stringr tidyr tidyselect vctrs]; };
   labelmachine = derive2 { name="labelmachine"; version="1.0.0"; sha256="18l7argmf7d60cv34w7acjg4bk08nhi2cc5p61sx2zmq28v8nndr"; depends=[yaml]; };
-  labelr = derive2 { name="labelr"; version="0.1.3"; sha256="0naalvy2bzi0hqnzr1aqm3r4dkkz293n7f9djvy9i4y0qv5gl9pj"; depends=[]; };
+  labelr = derive2 { name="labelr"; version="0.1.6"; sha256="1nf1gr876zr0l9nxisvy1h7k0f3a9f49g257lh967n9iin6vrj4q"; depends=[]; };
   lablaster = derive2 { name="lablaster"; version="1.0.1"; sha256="082gyfqaakl08d016p7sk1qapdkpry82sbxcsj46z50ls7sza3ab"; depends=[ggplot2 magrittr rlang scales smooth]; };
   labourR = derive2 { name="labourR"; version="1.0.0"; sha256="0skr8qr1m849l3gpcsn5bjxyjczlzzmsm2j6xcmxv33lf95qg6gi"; depends=[cld2 data_table magrittr stopwords stringdist]; };
   labsimplex = derive2 { name="labsimplex"; version="0.1.2"; sha256="07is5vi1y7qw9fjhhjf65z6fm77v26qgy908zhhp2581qqyn0b5s"; depends=[ggplot2 scatterplot3d]; };
@@ -12575,17 +12779,20 @@ in with self; {
   lactater = derive2 { name="lactater"; version="0.2.0"; sha256="11wv998mapys2hgwwdgvgllcjsd4y7g7p19kg419xlx3py0c077p"; depends=[broom dplyr forcats ggplot2 ggtext lubridate magrittr minpack_lm patchwork pracma rlang segmented stringr tidyr]; };
   lactcurves = derive2 { name="lactcurves"; version="1.1.0"; sha256="1ksllpgz519gzrs8gwfgg7743vj3j7ikmbwgisdjs77sdxxl7xyz"; depends=[orthopolynom polynom]; };
   lacunaritycovariance = derive2 { name="lacunaritycovariance"; version="1.1-7"; sha256="10l5q4plnh1nnbcb3zh68mglrilcmlxsviznli8w8vzj2h5yfnhm"; depends=[RcppRoll spatstat spatstat_explore spatstat_geom spatstat_random]; };
+  lacunr = derive2 { name="lacunr"; version="1.0.1"; sha256="132k5vis9k3snhfy3zl0py039pm1b12k70qijdkq11knhlng7b1b"; depends=[abind data_table ggplot2 Rcpp RcppArmadillo RcppThread rlang]; };
   laeken = derive2 { name="laeken"; version="0.5.3"; sha256="02z8jyya6xv0pyfqaalbry174fw44h13s7p1jk5b4h9a9x4myjb0"; depends=[boot MASS]; };
   lagged = derive2 { name="lagged"; version="0.3.2"; sha256="1ss69jdmfz2al131mvhflaa4hcg71a0balpnc8vkf0f9svhkcs52"; depends=[]; };
   lagsarlmtree = derive2 { name="lagsarlmtree"; version="1.0-1"; sha256="1v3a580scxb1v5na3ab3ax9qlzbnay7nhm3ln5l8f9zgsqrg5lyh"; depends=[Formula partykit spatialreg]; };
   lakemorpho = derive2 { name="lakemorpho"; version="1.3.2"; sha256="11bvrr4h9bxa01sf6qilgglhljmfpfil5yz1xrwlyaiv091gvlfp"; depends=[cluster geosphere raster sf sp]; };
   laketemps = derive2 { name="laketemps"; version="0.5.1"; sha256="04742r379bzgbfr4243wwkb26cvfmnw50jzgygq7vblq00grzska"; depends=[dplyr reshape2]; };
+  lakhesis = derive2 { name="lakhesis"; version="0.0.1"; sha256="0jbzzpvqid3samq90m3d8p0ac2cfh1qaqiglr19xpzlif63sl34y"; depends=[bslib ca ggplot2 Rdpack readr shiny shinydashboard]; };
   lamW = derive2 { name="lamW"; version="2.2.3"; sha256="0jq3xq2ll4lpj8f5aqwazqlb978nzyk7hln4iwlzrlkkcqc35qm1"; depends=[Rcpp RcppParallel]; };
   lambda_r = derive2 { name="lambda.r"; version="1.2.4"; sha256="1mh1g0gsd58gng0hb29vww2yqb2jfs07kba5kxnnqck5j3izwlnj"; depends=[formatR]; };
   lambdaTS = derive2 { name="lambdaTS"; version="1.1"; sha256="0fb44q5997588y6cv10kq3jv3qvwhg99q15i4cka4hsww08i9ib2"; depends=[abind bizdays car fANCOVA ggplot2 imputeTS lubridate modeest narray purrr readr scales stringr tictoc torch]; };
   lambdr = derive2 { name="lambdr"; version="1.2.5"; sha256="1vbaxy15a925lmc9a6d0b9yxivw0gd6pw4a89acg797y84fgmyl4"; depends=[httr jsonlite logger]; };
   lamle = derive2 { name="lamle"; version="0.3.1"; sha256="08fsylhqpk8hqm9kbqc4vlhmpaddr9cpgjjxvlfc9xqhnyhg7p3d"; depends=[fastGHQuad mvtnorm numDeriv Rcpp RcppArmadillo]; };
   lamme = derive2 { name="lamme"; version="0.0.1"; sha256="1x9jl79iqikpjixajly1k8w2nkzskns2m0v242giknl0ikw298h1"; depends=[]; };
+  lancor = derive2 { name="lancor"; version="0.1.2"; sha256="1wb50jy9qkb7knkmg2ghjb6h1s1c0y8mghaxn41pmbm9jzk8q6ym"; depends=[acepack arrangements boot sn]; };
   landest = derive2 { name="landest"; version="1.2"; sha256="1cr1qiz42j64yxpbpyll1l3lxazh1qq0ia4mh0qdyjk14kyyf9q0"; depends=[survival]; };
   landform = derive2 { name="landform"; version="0.2"; sha256="0i99glylj0nz3r5i0p22ng9aygmjkh7q2ynw02z7jm3bfpw0wmv0"; depends=[terra]; };
   landmix = derive2 { name="landmix"; version="1.0"; sha256="0qa5l82102r8y7sj7v5vcpqg93j2bpszp7fhlbxrzjxpisdh9vgx"; depends=[]; };
@@ -12593,7 +12800,7 @@ in with self; {
   landpred = derive2 { name="landpred"; version="1.2"; sha256="0xbmr896fyl2gvh6vy7fy7aixa5n2ycvwm509z6ys5wh0r8p296k"; depends=[survival]; };
   landsat = derive2 { name="landsat"; version="1.1.2"; sha256="13xjpw9hd1hhcs6d7xw9dc36808zjyqw3isn0ayafpww0wvv073n"; depends=[lmodel2 mgcv sp]; };
   landscapeR = derive2 { name="landscapeR"; version="1.2"; sha256="1zm5mj861ycbc2m28yjqnkifx8grc4l718mf8r422m78jfakvcjy"; depends=[raster Rcpp]; };
-  landscapemetrics = derive2 { name="landscapemetrics"; version="2.1.1"; sha256="0l5slwq0mgkchs1pn3ns4qzgsf994xn73waqsvrwl4vb99a3d2aj"; depends=[cli ggplot2 Rcpp RcppArmadillo terra tibble]; };
+  landscapemetrics = derive2 { name="landscapemetrics"; version="2.1.2"; sha256="0inzgd76wm63d35hwxz6if0y5glyl7v3zyl26z0c3sxxpnpq14bm"; depends=[cli ggplot2 Rcpp RcppArmadillo terra tibble]; };
   landscapetools = derive2 { name="landscapetools"; version="0.5.0"; sha256="11zp6r414nkj8vhsbryzhkxmpal2bva8msaxf1v69xax70ilxyf1"; depends=[ggplot2 raster Rcpp tibble]; };
   landsepi = derive2 { name="landsepi"; version="1.4.0"; sha256="0hd4cvik5bfw2yjls4wxnzxq7ylcg69yz34ncj7c3zrg4agka1nm"; depends=[DBI deSolve doParallel fields foreach Matrix mvtnorm Rcpp RSQLite sf sp splancs testthat]; };
   langevitour = derive2 { name="langevitour"; version="0.7"; sha256="1q1g2rz5z7wpk5fb0d2rcxw8hi8frs9360n2z6zv8d376r9i1lfr"; depends=[assertthat crosstalk htmlwidgets RANN]; };
@@ -12603,7 +12810,7 @@ in with self; {
   languageserversetup = derive2 { name="languageserversetup"; version="0.1.2"; sha256="05i8kcp1zpbkrqpq5vxxvxk9p7phyngxl0q6v76va0i7qnmy1v7a"; depends=[]; };
   lans2r = derive2 { name="lans2r"; version="1.2.0"; sha256="0hk7rklkic4frp5w6k9kn5xi8hf3s87bgbjm58ca79sh3iyl0cnv"; depends=[dplyr ggplot2 R_matlab reshape2 rlang tidyr]; };
   lar = derive2 { name="lar"; version="0.1-2"; sha256="0qda0y4ag10kg83wxs3z754kc8c1dg2rwciy64klk7an4ln43i5b"; depends=[data_table treemap xlsx]; };
-  lares = derive2 { name="lares"; version="5.2.5"; sha256="0nri8k87yr49p3h6szjsj73v6dlf1w62dd59vmj47sr1c83avnla"; depends=[dplyr ggplot2 httr jsonlite lubridate openxlsx patchwork pROC rlang rpart rpart_plot rvest stringr tidyr yaml]; };
+  lares = derive2 { name="lares"; version="5.2.8"; sha256="1859nwb7ymdamk7akwrmq011var821cww0bg6k89d5sjhs529jd7"; depends=[dplyr ggplot2 httr jsonlite lubridate openxlsx patchwork pROC rlang rpart rpart_plot rvest stringr tidyr yaml]; };
   lareshiny = derive2 { name="lareshiny"; version="0.0.3"; sha256="00pmlq3gz06p1g6xzx5y6n7ybljrhhmjnhi25chv3ii13r3nlfvf"; depends=[dplyr DT htmltools miniUI shiny shinydashboard shinyWidgets]; };
   lars = derive2 { name="lars"; version="1.3"; sha256="17al1g0pvfz9frs2kxicqr8dyp7ciz3x87yx2l4lqd53ls6nm7n6"; depends=[]; };
   lassopv = derive2 { name="lassopv"; version="0.2.0"; sha256="0yawnjw063jypk3riy9xab9cmliv6c9dnabi18670khd3gzb2r9z"; depends=[lars]; };
@@ -12611,6 +12818,7 @@ in with self; {
   latcontrol = derive2 { name="latcontrol"; version="0.1.0"; sha256="0y5amp5w8faw69lsi55akqfzgr8bwacvyi0whkxz2ik9dlxcwv3b"; depends=[lavaan]; };
   latdiag = derive2 { name="latdiag"; version="0.3"; sha256="13wk8vhiwr9drcx5f4wlgbin6hc83zv54yr4h3qhjagm3hxcxbw0"; depends=[Rdpack]; };
   latenetwork = derive2 { name="latenetwork"; version="1.0.1"; sha256="0isqjsivywv51h1lf4fwvscib8sfgnpvvdq6gj9zzz7nrjpgf7k1"; depends=[igraph statip]; };
+  latentFactoR = derive2 { name="latentFactoR"; version="0.0.6"; sha256="0zcvy7dafigv2zwjyyiwrs7zjn2j933ynfbwsk6qgzfbw1khh9bk"; depends=[BBmisc EGAnet fspe googledrive ineq lavaan Matrix mlr mvtnorm psych rstudioapi xgboost]; };
   latentcor = derive2 { name="latentcor"; version="2.0.1"; sha256="0c8ygjdqxb9zs6b42ncqh5va80vxamdphja18x8dazygynmcgjr0"; depends=[doFuture doRNG fMultivar foreach future geometry ggplot2 heatmaply MASS Matrix microbenchmark mnormt pcaPP plotly]; };
   latentgraph = derive2 { name="latentgraph"; version="1.1"; sha256="11h7nrd81licvdikiwwfkz4x9i7drz09w5ns672b7fw0pj4qqgsr"; depends=[glmnet MASS pracma Rcpp RcppArmadillo]; };
   latentnet = derive2 { name="latentnet"; version="2.11.0"; sha256="1vd004bqcgjip2wrs5znk15yy45ay07cv4pa94x93kyri64v1g2g"; depends=[abind coda ergm MASS mvtnorm network sna statnet_common]; };
@@ -12618,17 +12826,17 @@ in with self; {
   latex2exp = derive2 { name="latex2exp"; version="0.9.6"; sha256="1jp0l0hi5kv4yh28qg2yj2z5fj33gnfvdz2g2v4ibn516fj2d636"; depends=[magrittr stringr]; };
   latexdiffr = derive2 { name="latexdiffr"; version="0.2.0"; sha256="02myc3pgf8zmfd6ljknqlqakhhgb1dna2rbfa89v85gmf4fhsshh"; depends=[assertthat fs rprojroot]; };
   latexpdf = derive2 { name="latexpdf"; version="0.1.8"; sha256="1drpb4mal389k7z3pcfkz68n3q5z1qjqdwp7q7k25awpvxjbrfbg"; depends=[]; };
-  latrend = derive2 { name="latrend"; version="1.6.0"; sha256="06q23pl3x4fgxfaypl0xp74mmhwf31rq2yqp4fipcscyqcf1223c"; depends=[assertthat data_table foreach magrittr matrixStats R_utils Rdpack rlang rmarkdown]; };
+  latrend = derive2 { name="latrend"; version="1.6.1"; sha256="1g5hhl8himv1g3v70vs42jsxn1h04knh73m6yhzkgc2bnj16hr2r"; depends=[assertthat data_table foreach magrittr matrixStats R_utils Rdpack rlang rmarkdown]; };
   latte = derive2 { name="latte"; version="0.2.1"; sha256="1dcwxxj3yran5a3a8vvdfmx4ap69ql2jncxvmci4p4vcw4ki9j9g"; depends=[dplyr ggplot2 glue magrittr memoise mpoly stringr usethis]; };
   lattice = derive2 { name="lattice"; version="0.22-6"; sha256="1xq09lfjlca6c7mn412hjjav0q66p7wmjrwx5f3ygv3jwh8p4dsb"; depends=[]; };
   latticeExtra = derive2 { name="latticeExtra"; version="0.6-30"; sha256="1vcy4xr6c53nbvnxikjnlf5kd3n5hf4d8dzj5d41hj322dlsfl65"; depends=[interp jpeg lattice MASS png RColorBrewer]; };
   lava = derive2 { name="lava"; version="1.8.0"; sha256="0zz8hzmqd4qa14y52c8gw9hr6gn0d7srffrddxrmhb01rbp9dfcd"; depends=[cli future_apply numDeriv progressr SQUAREM survival]; };
   lavaSearch2 = derive2 { name="lavaSearch2"; version="2.0.3"; sha256="1z5aaajlgmn6i9jvziz2blrxkrnqfsyfgpflblxac5ljwmnw7yvn"; depends=[abind doParallel ggplot2 lava MASS Matrix multcomp mvtnorm nlme Rcpp RcppArmadillo reshape2 sandwich]; };
-  lavaan = derive2 { name="lavaan"; version="0.6-17"; sha256="1bppbv17b35h48vfci6zplix9zb5isi210za52cs9yyc68g2acwj"; depends=[MASS mnormt numDeriv pbivnorm quadprog]; };
+  lavaan = derive2 { name="lavaan"; version="0.6-18"; sha256="0lfz92dgqna6r6fcn2slads0gkqanqbny85jih9j08sadk6wl1xr"; depends=[MASS mnormt numDeriv pbivnorm quadprog]; };
   lavaan_shiny = derive2 { name="lavaan.shiny"; version="1.2"; sha256="0qgswdpxb5af0l3v70sg0jrgsdwr88gz6zzwbk3pw5x6qnvnwb6r"; depends=[lavaan psych semPlot shiny shinyAce]; };
   lavaanExtra = derive2 { name="lavaanExtra"; version="0.2.0"; sha256="0q443wx983vy2i4bn39psw2nwaqzjncdpm7lpwsj7bifjnsic5sb"; depends=[insight lavaan]; };
   lavaanPlot = derive2 { name="lavaanPlot"; version="0.8.1"; sha256="08isy888r5ispw2i74arnkc52qdba28yl6mzypx6j33rkbnbxrai"; depends=[DiagrammeR dplyr lavaan magrittr purrr rlang stringr]; };
-  lavacreg = derive2 { name="lavacreg"; version="0.2-1"; sha256="0hfkwsgkws1h910b3dgp7ka1mqmb5dnikrdjcsn99vfm61mq0rxk"; depends=[fastGHQuad pracma Rcpp RcppArmadillo SparseGrid]; };
+  lavacreg = derive2 { name="lavacreg"; version="0.2-2"; sha256="0jbqf52j5iva39lf9w34aabg6wh5i8rczln3l7pbdyz9lmvmgycc"; depends=[fastGHQuad pracma Rcpp RcppArmadillo SparseGrid]; };
   lawstat = derive2 { name="lawstat"; version="3.6"; sha256="1bmv3aw4z07ypsb1z65kwdybg6c268vdy46q9nri8xsmrby3fw8b"; depends=[Kendall mvtnorm Rdpack]; };
   lax = derive2 { name="lax"; version="1.2.3"; sha256="1ddl7vgf8xmp4scpiifxvjzzqifcp9q6xiw7kg4cl204scm5z39w"; depends=[chandwich exdex numDeriv revdbayes sandwich]; };
   lay = derive2 { name="lay"; version="0.1.3"; sha256="0cg3sxbphmfyzdbqrgij5nm8xvhp5dizbjx82pl0xx1ms5p40b0r"; depends=[purrr rlang tibble vctrs]; };
@@ -12643,7 +12851,7 @@ in with self; {
   lazytrade = derive2 { name="lazytrade"; version="0.5.3"; sha256="055wyaf36f5g27wly24i0sbf2k0rriga8xcgn241gszlzagrnh55"; depends=[cluster dplyr ggplot2 h2o lifecycle lubridate openssl readr ReinforcementLearning stringr tibble]; };
   lba = derive2 { name="lba"; version="2.4.52"; sha256="04w275da78naxz1imbw78kpd0rns4ipmjgfs4f23h1q8zp5711fw"; depends=[alabama MASS plotrix rgl scatterplot3d]; };
   lbfgs = derive2 { name="lbfgs"; version="1.2.1.2"; sha256="04fx9v1dn8rn09h98zxp71zcxidjmhmcv190h7mvbj3pqf3dh2bv"; depends=[Rcpp]; };
-  lbfgsb3c = derive2 { name="lbfgsb3c"; version="2020-3.3"; sha256="0wk3jk94rrdjy5jj5d4a7szyx9xa4pw42s4ycwbcg23b4vas9r30"; depends=[numDeriv Rcpp RcppArmadillo]; };
+  lbfgsb3c = derive2 { name="lbfgsb3c"; version="2024-3.4"; sha256="1dsacah7srkg0i9anl283244mvi8chkjkfplzj00dfzcj8nv2cgm"; depends=[numDeriv Rcpp RcppArmadillo]; };
   lbm = derive2 { name="lbm"; version="0.9.0.2"; sha256="0mn0k5liwrnbsl5lf4k5b8j2y79bkk689v8wrvcmj3l7q2abaxhf"; depends=[]; };
   lboxcox = derive2 { name="lboxcox"; version="1.2"; sha256="0jklfgw7dwslafsivb9z2q1vgv367kk9gbgjabz04y0kracxaa8q"; depends=[doParallel dplyr foreach MASS maxLik R_utils survey]; };
   lbreg = derive2 { name="lbreg"; version="1.3"; sha256="1z9vixf6sl0k9lizngc3859lk32srkk1d8y133sl6s37ppmqb4s2"; depends=[MASS]; };
@@ -12657,11 +12865,11 @@ in with self; {
   lcpm = derive2 { name="lcpm"; version="0.1.1"; sha256="0pqmizli5rhyaxvxrjycf8d5kqrm23i3vdz00r8zmijjpiz2p9s2"; depends=[Matrix numDeriv plyr]; };
   lcra = derive2 { name="lcra"; version="1.1.5"; sha256="0bzv6m2113hzxxlinicc2x296vi7q5z1d31gqzri70klwn9qqy1l"; depends=[coda rjags rlang]; };
   lcsm = derive2 { name="lcsm"; version="0.3.2"; sha256="13iy0d37rqlw7k6xgb2rsd2pz1rrjbc5c14gqaxgwmz9pk93dlxp"; depends=[broom cli dplyr ggplot2 lavaan magrittr purrr rlang semPlot stringr tibble tidyr]; };
-  lctools = derive2 { name="lctools"; version="0.2-8"; sha256="03k6d78lzc8jxndnwh39h6fagr6ibhr9354vzvsw873912sxs8c9"; depends=[MASS pscl reshape sp weights]; };
+  lctools = derive2 { name="lctools"; version="0.2-10"; sha256="0gv8glxwdjpmx9cvadf8ww9k79wps107h29i02mcsa43mvcb22k1"; depends=[MASS pscl reshape sp weights]; };
   lcyanalysis = derive2 { name="lcyanalysis"; version="1.0.4"; sha256="0pwr6r8nbvmppqwd9gxap6v49l7iaq5syaq11spxp5yc2h3pa2rg"; depends=[quantmod TTR xts zoo]; };
-  lda = derive2 { name="lda"; version="1.4.2"; sha256="03r4h5kgr8mfy44p66mfj5bp4k00g8zh4a1mhn46jw14pkhs21jn"; depends=[]; };
+  lda = derive2 { name="lda"; version="1.5.2"; sha256="1m0g2mz7rhjsp6pm784qjngzrb6kp69zjb85fflm48q0drw59lwm"; depends=[]; };
   ldaPrototype = derive2 { name="ldaPrototype"; version="0.3.1"; sha256="1gnwss71488837ry9zhri7yv68hhnrckrn8qb1b8sszvsch5apan"; depends=[batchtools checkmate colorspace data_table dendextend fs future lda parallelMap progress]; };
-  ldamatch = derive2 { name="ldamatch"; version="1.0.2"; sha256="1nzl9pf223z2nwpaw5721qw8p1va70avpjwj1myv9q054zaspmgb"; depends=[car data_table entropy foreach gmp iterators iterpc kSamples RUnit]; };
+  ldamatch = derive2 { name="ldamatch"; version="1.0.3"; sha256="1vksgild5j7g1skx28jki9kjknc08h2xf715azyfqgbmvbkkljgc"; depends=[car data_table entropy foreach gmp iterators iterpc kSamples RUnit]; };
   ldatuning = derive2 { name="ldatuning"; version="1.0.2"; sha256="0367y6k5i4sccwfcm89xyc62qblrlwnm6hsa2jf346rnrfz9hkkc"; depends=[ggplot2 reshape2 Rmpfr scales slam topicmodels]; };
   ldbod = derive2 { name="ldbod"; version="0.1.2"; sha256="1ylzkswnhf4jnjx2ijasy49pj78ffx333za0bx2fnf3g85kicqiv"; depends=[mnormt RANN]; };
   ldbounds = derive2 { name="ldbounds"; version="2.0.2"; sha256="19xx8a4qn9lz8r9hf344xn2rhr177nzscivxgsai9n3gwjc893d9"; depends=[]; };
@@ -12677,10 +12885,10 @@ in with self; {
   leafdown = derive2 { name="leafdown"; version="1.2.0"; sha256="0gpb37yjsjirglndld84bky83yyhy16qfk1wawkfpjv8j9pdfnqf"; depends=[checkmate leaflet magrittr R6 shiny shinyjs]; };
   leafem = derive2 { name="leafem"; version="0.2.3"; sha256="1qvmygxm5957k7mnbi05vs3sjcwng9f18hbxx6143nl38fm5pzfy"; depends=[base64enc geojsonsf htmltools htmlwidgets leaflet png raster sf]; };
   leafgl = derive2 { name="leafgl"; version="0.1.1"; sha256="042jps6zh4xr0xj19a7fbgrcb6q6gsw2q5f191lyskr8iajdrz1h"; depends=[geojsonsf htmltools jsonify leaflet sf]; };
-  leaflegend = derive2 { name="leaflegend"; version="1.2.0"; sha256="026ng3lvlpb313sck0wic2nvlh5kd9li83f8md88zi54wz4m7gl7"; depends=[base64enc htmltools htmlwidgets leaflet]; };
-  leaflet = derive2 { name="leaflet"; version="2.2.1"; sha256="1gfsf7bsmp418zv4gpk5i1xg5vvgqwpdkznnvj5x0mk4rcqk1i81"; depends=[crosstalk htmltools htmlwidgets jquerylib leaflet_providers magrittr png raster RColorBrewer scales sp viridis xfun]; };
+  leaflegend = derive2 { name="leaflegend"; version="1.2.1"; sha256="1lh6c0v365aaqygwfgzbgiy3g3wlq6w0nw0drdlhcgckw7a68mk2"; depends=[base64enc htmltools htmlwidgets leaflet]; };
+  leaflet = derive2 { name="leaflet"; version="2.2.2"; sha256="1sxq38dcjhn1bkav7fxglzk8nwi5p32jia2nhijcq5j1766pp1yj"; depends=[crosstalk htmltools htmlwidgets jquerylib leaflet_providers magrittr png raster RColorBrewer scales sp viridisLite xfun]; };
   leaflet_esri = derive2 { name="leaflet.esri"; version="1.0.0"; sha256="01bwzxh2rdhpvvazaxsji8axl765q1ix1fdxla6i61nvqkpw3dz1"; depends=[htmltools leaflet leaflet_extras]; };
-  leaflet_extras = derive2 { name="leaflet.extras"; version="1.0.0"; sha256="0li7651cwlz7sg04xdrmvhkrf0n6amaydck7gqz0wkb6wq8hcyzw"; depends=[htmltools htmlwidgets leaflet magrittr stringr]; };
+  leaflet_extras = derive2 { name="leaflet.extras"; version="2.0.0"; sha256="0bhqid6sqgfmk8ipjy34h54la0mbx02169rc7l3h3fkqs8ffpw0c"; depends=[htmltools htmlwidgets leaflet magrittr stringr]; };
   leaflet_extras2 = derive2 { name="leaflet.extras2"; version="1.2.2"; sha256="0r17wj2qg85y6wcszmbq6nf49k5ddsfprqdscqg2bwdszxrvw2c9"; depends=[htmltools leaflet magrittr]; };
   leaflet_minicharts = derive2 { name="leaflet.minicharts"; version="0.6.2"; sha256="0pmgr9c3z5zdm13kb17ldjdl3i792mv20gbxzn1asfyf7csp7jxi"; depends=[htmltools leaflet]; };
   leaflet_providers = derive2 { name="leaflet.providers"; version="2.0.0"; sha256="0rl69bfx2l10x80rl8cppqch3fnd05sk9w29h8589jc8h3ffmkn5"; depends=[htmltools]; };
@@ -12688,22 +12896,24 @@ in with self; {
   leafpop = derive2 { name="leafpop"; version="0.1.0"; sha256="1ccxglglfxbm9rlz1lx0jrp6h38w6gld3rld0cxdjjnvw636hm3f"; depends=[base64enc brew htmltools htmlwidgets sf svglite uuid]; };
   leafsync = derive2 { name="leafsync"; version="0.1.0"; sha256="0p6pb7w5yz2wj33kdh7ixii9f6b8zv018psp6b7ifr7npgdxi3vx"; depends=[htmltools htmlwidgets leaflet]; };
   leaftime = derive2 { name="leaftime"; version="0.2.0"; sha256="10ij06rq7kmfnzfa629l2kskwj96lh87m00wi9b1aq15b5h7bxls"; depends=[htmltools htmlwidgets leaflet]; };
+  leakyIV = derive2 { name="leakyIV"; version="0.0.1"; sha256="1pdxyw9sd78nwy70xlrckdjvdgrhcdjywrnbmilrffpzhb6hgky0"; depends=[corpcor data_table foreach glasso Matrix mvnfast]; };
   leanpubr = derive2 { name="leanpubr"; version="0.3.1"; sha256="0c8pmzn25cwv0wccf30zrrqrs5amlk8iqyyva9vp9976wzwgbxrx"; depends=[httr jsonlite xml2]; };
   leapp = derive2 { name="leapp"; version="1.3"; sha256="0w6pi527s4fig50zlwhqsp6zfdgqyyislm01vvp5rvxg7kskr5xr"; depends=[corpcor MASS sva]; };
-  leaps = derive2 { name="leaps"; version="3.1"; sha256="1dn3yl1p03n0iynd1vsdkrr0fhmvgrmfkv37y7n371765h83lz1x"; depends=[]; };
+  leaps = derive2 { name="leaps"; version="3.2"; sha256="1bbgm6l12gj1y28ks21awxphpmp07hb0ffiyrw7dqp3fcyxvxmm0"; depends=[]; };
   learnPopGen = derive2 { name="learnPopGen"; version="1.0.4"; sha256="04wxina3n2bspxdp3d4bgqrwyxqxx46pfp8zgzr3rsj89ml8if9l"; depends=[gtools phytools]; };
   learningr = derive2 { name="learningr"; version="0.29.1"; sha256="0z3rs7y9yd81f14sbk3dwq1ifr4vca2s3kl1gnkqlns3dycgyp08"; depends=[plyr]; };
   learningtower = derive2 { name="learningtower"; version="1.0.1"; sha256="041hx9a1jq5aw6gbgb1xj8pl9dhc3kb85cx670nkc3ngaj4j2g17"; depends=[dplyr tibble]; };
   learnr = derive2 { name="learnr"; version="0.11.5"; sha256="01xig6ijsjnkwdjh03zdp86mqm5pjlqp9br34pn644rf98qg8k2y"; depends=[checkmate digest ellipsis evaluate htmltools htmlwidgets jsonlite knitr lifecycle markdown promises rappdirs renv rlang rmarkdown rprojroot shiny withr]; };
-  learnrbook = derive2 { name="learnrbook"; version="1.0.2-1"; sha256="1m642zwbn10p355s8rhdrh61q9n85mh8xj4jhvramii2f09bzyhn"; depends=[]; };
+  learnrbook = derive2 { name="learnrbook"; version="2.0.1"; sha256="0yrh3d75zl4rqc22prw3rnwhzxh1nb9mk1rwdh2rr4sw71nmbvyv"; depends=[]; };
   leastcostpath = derive2 { name="leastcostpath"; version="2.0.12"; sha256="0nkahghj9vvhcsq8h39y8kvcpgglwhnb0wcdhvkqzwnsparl58kd"; depends=[doParallel foreach gstat igraph Matrix sf terra]; };
-  ledger = derive2 { name="ledger"; version="2.0.9"; sha256="0ynr1g7vfkabl78zjnshyxixk45g28bi9h1p4zjfl83009yhqjwx"; depends=[dplyr rlang stringr tibble tidyr tidyselect]; };
+  ledger = derive2 { name="ledger"; version="2.0.11"; sha256="0l26s7mnfrn9yi03xdx2i0965p17vif6cks1k9fi6h8lbfdj3id7"; depends=[dplyr rlang stringr tibble tidyr tidyselect]; };
   leem = derive2 { name="leem"; version="0.1.0"; sha256="1sm9v3m95fbg3apvv3jjf47qxn8v6ipdsm1103dqk4zngmsz4xia"; depends=[tkrplot]; };
   lefko3 = derive2 { name="lefko3"; version="6.2.1"; sha256="027x9k6wl59mbwfi1pd8jjhj60sbxi4gw27xb47rksbwkqbp0q4d"; depends=[BH glmmTMB lme4 MASS Matrix MuMIn pscl Rcpp RcppArmadillo VGAM]; };
   legion = derive2 { name="legion"; version="0.1.2"; sha256="0463a743n6k21v6nyacmp2li9dngaaww9lh83150621s7pdycw3s"; depends=[generics greybox nloptr Rcpp RcppArmadillo smooth zoo]; };
   legislatoR = derive2 { name="legislatoR"; version="1.1.0"; sha256="12ij2xqasc4j7gx79wzbdg3wvg8dn9azj0qj61s4c6ficyr0x0bv"; depends=[curl dplyr]; };
   legocolors = derive2 { name="legocolors"; version="0.3.1"; sha256="0ds9c2x0x590yk7mrjm4hh7k72p51slssg7jlprd71mw6hry91ma"; depends=[]; };
   lehdr = derive2 { name="lehdr"; version="1.1.3"; sha256="0jkfnda7dpkhvlam6l4r5b80yrrhnvlx61frxi56qr7mws5z2h1w"; depends=[dplyr glue httr2 magrittr readr rlang stringr]; };
+  lehuynh = derive2 { name="lehuynh"; version="0.1.1"; sha256="1959f73184l8npcvcrqxnnmw5xzc3f99mj8jsaq3ldaqfqhkrrpp"; depends=[brms dplyr fs ggplot2 ggpubr magrittr purrr readxl rio stringr tibble usethis]; };
   leiden = derive2 { name="leiden"; version="0.4.3.1"; sha256="1qihzjrwcb09aga27frcdrdv4dp0g295dbrk07fqykbjlb7vpv59"; depends=[igraph Matrix reticulate]; };
   leidenAlg = derive2 { name="leidenAlg"; version="1.1.3"; sha256="0g4gs6rrz3wn97ag7wsfr6qa4zgb75i0k9jc1siii4pf6h689d1x"; depends=[igraph Matrix Rcpp RcppArmadillo RcppEigen sccore]; };
   leidenbase = derive2 { name="leidenbase"; version="0.1.27"; sha256="09vvkn8czf6w4vib5jf3np2q9w3i8xdl2fbcikvzrb4ah9l8l5n3"; depends=[igraph]; };
@@ -12712,12 +12922,12 @@ in with self; {
   lemon = derive2 { name="lemon"; version="0.4.9"; sha256="1yjam478s6sz1spggybb34akpmpgq8ybyrhzy3b1v9s1j81b6k87"; depends=[ggplot2 gridExtra gtable knitr lattice plyr scales]; };
   lenght = derive2 { name="lenght"; version="0.1.0"; sha256="0w7r5rizif2g6dg5ldcdnd0lj1s6v2z46w9j9g0zdlidx83a8vdn"; depends=[]; };
   lenses = derive2 { name="lenses"; version="0.0.3"; sha256="08akwzlc5gk2rxbh9xp67n5ahdcld60932ascczjv0accrkxizhk"; depends=[magrittr rlang tidyselect]; };
-  leontief = derive2 { name="leontief"; version="0.2"; sha256="1gy23047c6gci9m83yrb662d5685x1kky6m94w68swms59gdc6yp"; depends=[Rcpp RcppArmadillo]; };
+  leontief = derive2 { name="leontief"; version="0.3"; sha256="0ms50fqnbfvwj5a2a0s647nyzpcbxyzf61f3rcp9h1qf1wil860b"; depends=[]; };
   leprechaun = derive2 { name="leprechaun"; version="1.0.0"; sha256="1y30s519502bqabzsf1njf3zzqlbmr4sbmsm57ci1r6dv4miijkh"; depends=[cli fs jsonlite roxygen2 usethis]; };
   leptokurticMixture = derive2 { name="leptokurticMixture"; version="1.1"; sha256="0k107im942mi6kkd8sx7qj6h8hfa3gv3bnjz5jl34a98kj91hk49"; depends=[]; };
   lero_lero = derive2 { name="lero.lero"; version="0.2"; sha256="03ll7jzcay0swwpmxyf0y9k2h8mxx4p5v3ggm9dgdz4j99934l70"; depends=[]; };
   less = derive2 { name="less"; version="0.1.0"; sha256="1pgixa04rjngfg0yhxyg4qhd6g0pj8zyb3q8mfa3fjxzpywdy70a"; depends=[caret e1071 FNN MLmetrics pracma R6 randomForest RANN rpart wordspace]; };
-  lessR = derive2 { name="lessR"; version="4.3.0"; sha256="16nnnswv7d0dz4bw8fvys1i7zd6c56l419fyk9bv0k37vhdnrini"; depends=[colorspace ellipse knitr lattice latticeExtra leaps openxlsx robustbase shiny]; };
+  lessR = derive2 { name="lessR"; version="4.3.3"; sha256="0yg9galvwnjzgkfj8hrmrscsdd7qh0g9fqxdqh444wkfarw55n0k"; depends=[colorspace ellipse knitr lattice latticeExtra leaps openxlsx robustbase shiny]; };
   lessSEM = derive2 { name="lessSEM"; version="1.5.5"; sha256="10wh8rx3rbr3gprmd5x633k68hxc1afqm6m5l3cinib4acdp0r22"; depends=[ggplot2 lavaan mvtnorm numDeriv Rcpp RcppArmadillo RcppParallel rlang stringr tidyr]; };
   lest = derive2 { name="lest"; version="1.1.0"; sha256="1d69kvdl31crv4ik8bwylq3s3f4skzrjc4x49c79w443g64n2jp9"; depends=[]; };
   lestat = derive2 { name="lestat"; version="1.9"; sha256="1skxymdf3ncmdbskh7711xxgwsmwxfxnl52gcgw06jscx6s6wrsd"; depends=[MASS]; };
@@ -12733,6 +12943,7 @@ in with self; {
   lfe = derive2 { name="lfe"; version="3.0-0"; sha256="16838gqglnc2l5hnyv46fpikh6h0l5yy59rmbisxpl1j571hab9l"; depends=[Formula Matrix sandwich xtable]; };
   lfl = derive2 { name="lfl"; version="2.2.0"; sha256="02kd7fz12v6xl1f3lv7kkxccln4fm8dmvbn7m9prbiawrbmy16dx"; depends=[e1071 foreach forecast plyr Rcpp tseries zoo]; };
   lfmm = derive2 { name="lfmm"; version="1.1"; sha256="1v2sb2qghwcln3b5rpzhakg562izlzyxzvz49nz74y0rh2gx7g9i"; depends=[foreach ggplot2 knitr MASS purrr Rcpp RcppEigen readr rmarkdown RSpectra]; };
+  lfproQC = derive2 { name="lfproQC"; version="0.1.0"; sha256="0cs6x5nqwm1n11i287f26x4lclpmd5vwj9wwnzlr7cr95riwrqxk"; depends=[dplyr ggplot2 Hmisc laeken limma magrittr MASS matrixStats pcaMethods plotly reshape reshape2 tidyr tidyselect VIM vsn]; };
   lfstat = derive2 { name="lfstat"; version="0.9.12"; sha256="0hl5b78llydcphbrg04fi5b4v7p6xxwlcwpl70m2537gra52wvdr"; depends=[dygraphs lattice latticeExtra lmom lmomRFA plyr scales xts zoo]; };
   lg = derive2 { name="lg"; version="0.4.1"; sha256="1srlklq6hkb4yd3lbbazswj866i3wzk2524hhj1v45yr7d5qhxv0"; depends=[ggplot2 ks localgauss logspline mvtnorm np tseries]; };
   lgarch = derive2 { name="lgarch"; version="0.6-2"; sha256="05xksc4d6dbf5ls4lf2gpk9xyi99fikr7dva88b84rfgads1yhrh"; depends=[zoo]; };
@@ -12748,13 +12959,14 @@ in with self; {
   libbib = derive2 { name="libbib"; version="1.6.4"; sha256="1jcdsvg5xgc7yzdc00k2brsiviyzflsdgiyk77icw08bwlbxh9mk"; depends=[curl data_table pbapply stringr xml2]; };
   libcoin = derive2 { name="libcoin"; version="1.0-10"; sha256="1bvysrq2s3951vr5ab1jzbz4hyx5j04yzh04vxdpd287bm4y08rh"; depends=[mvtnorm]; };
   libgeos = derive2 { name="libgeos"; version="3.11.1-2"; sha256="0d4gfcll0z4f57sv8vax2bbc4fvs4da4510qwisd7wf5ghjhsbb0"; depends=[]; };
-  libr = derive2 { name="libr"; version="1.3.1"; sha256="16cs8kpn6l8h1333cglsh50qydjk821bqyyyipn39s8v45yxzigf"; depends=[common crayon data_table dplyr haven openxlsx Rcpp readr readxl tibble]; };
+  libr = derive2 { name="libr"; version="1.3.3"; sha256="0xx4wpkwnraw3w0mf6k3p1l3y27dd1h94wvi3nbalyb8vm6igjiz"; depends=[common crayon data_table dplyr haven openxlsx Rcpp readr readxl tibble]; };
   librarian = derive2 { name="librarian"; version="1.8.1"; sha256="0bbgx9pdwcv64p6zdrw3m0893ar4bw6z90vhbgplp53l65cch548"; depends=[BiocManager remotes]; };
   librarysnapshot = derive2 { name="librarysnapshot"; version="0.1.2"; sha256="0v4x564zpm58kxs5n84bi6mcjhbzjg6a2lc30vsc8kbm3qy0nq38"; depends=[]; };
-  libstable4u = derive2 { name="libstable4u"; version="1.0.3"; sha256="1qhq255s20h30wrbfwdda35gjiijs9vri49jq2cnhl2kwmcgg71b"; depends=[Rcpp RcppGSL]; };
+  libstable4u = derive2 { name="libstable4u"; version="1.0.4"; sha256="1szyqm1vfx2c0mjzazg58jmw10a816279wa0blmwzvjs3ik7qfl3"; depends=[Rcpp RcppGSL]; };
   lidR = derive2 { name="lidR"; version="4.1.1"; sha256="0n0w5qv5mjfnxk7wixwivm68y8pb67sqyfkqinq85rnybhgzshmd"; depends=[BH classInt data_table glue lazyeval Rcpp RcppArmadillo rgl rlas sf stars terra]; };
   lidaRtRee = derive2 { name="lidaRtRee"; version="4.0.5"; sha256="1a3c0lmmg3my5rwaq30gcg3jhrd1dndlsa49dgav3gv9l214ri3w"; depends=[car gvlma imager leaps lidR reldist sf terra]; };
-  lifeR = derive2 { name="lifeR"; version="1.0.1"; sha256="1bgs8m2a4k4p31lw50kgv9mg0hg7afdaxg9sy6ss1n5s68920h5w"; depends=[curl dplyr ggplot2 jsonlite knitr maptiles readr rmarkdown stringr terra tidyterra]; };
+  lievens = derive2 { name="lievens"; version="0.0.1"; sha256="0px5fi06cl8kvi8wgs2nh616acznx108nfphhlfkp2x00hapln6z"; depends=[tibble]; };
+  lifeR = derive2 { name="lifeR"; version="1.0.2"; sha256="0cr70wcj84k3h6vgxw9s98md7q63q4qvxdp5065j4vwf49igi492"; depends=[curl dplyr ggplot2 jsonlite knitr maptiles readr rmarkdown stringr terra tidyterra]; };
   lifecontingencies = derive2 { name="lifecontingencies"; version="1.3.11"; sha256="1wz0v7abl3g3kgbp613rx5rw2ryxahk1h8bk8d3p5v7wyfwqignh"; depends=[markovchain Rcpp]; };
   lifecourse = derive2 { name="lifecourse"; version="2.0"; sha256="1m8ihqvzhzpq2m2pdvh37bpq9pdbj23r3y0jkl3q8farh3qj473d"; depends=[TraMineR]; };
   lifecycle = derive2 { name="lifecycle"; version="1.0.4"; sha256="1k4ibf2x90xgmzaq47vf9wrsh6a2fp2lg1l8bq89632bx33x795d"; depends=[cli glue rlang]; };
@@ -12762,8 +12974,7 @@ in with self; {
   liftLRD = derive2 { name="liftLRD"; version="1.0-9"; sha256="11xrh4pjvlqb0297a2wzngpa1m3b09axvcfd16hg393rifrisgh4"; depends=[adlift nlt]; };
   liftr = derive2 { name="liftr"; version="0.9.2"; sha256="0azi831c4f0vcq27a3q86vj90zvwrzcy4plhj9hqkk4qz8xw113x"; depends=[knitr rmarkdown rstudioapi stringr yaml]; };
   lifx = derive2 { name="lifx"; version="0.2.0"; sha256="0p9ljd3s3lc1rkhzpp801izy9y52f0yc1dsrsxwx5gi89cnib596"; depends=[assertthat crayon curl httr jsonlite]; };
-  liger = derive2 { name="liger"; version="2.0.1"; sha256="121ipwznm40x2xhhlxd20385va4nmvgni5dg24lbhyfn5sb3dsy1"; depends=[matrixStats Rcpp RcppArmadillo]; };
-  lightgbm = derive2 { name="lightgbm"; version="4.3.0"; sha256="1kk2jj7d1adqi9x1q3jij7fy8h9vc6bvzcz7jhi4bd9cybw8gpnh"; depends=[data_table jsonlite Matrix R6]; };
+  lightgbm = derive2 { name="lightgbm"; version="4.4.0"; sha256="082xmr33ki16i52a3z6lv9niv46pi4dbp0j3qn421sxml4115sf1"; depends=[data_table jsonlite Matrix R6]; };
   lightparser = derive2 { name="lightparser"; version="0.1.0"; sha256="176lsx2qmy3iqwg1ashf81hj8biwvplcs4y5fbw0mb34fw93n876"; depends=[knitr rlang tibble yaml]; };
   lightr = derive2 { name="lightr"; version="1.7.1"; sha256="0wbrwkkz11cp4n0ikxc541y9hpav5kvr4fv9s9llrd1ammpkzfw3"; depends=[future_apply progressr xml2]; };
   lightsout = derive2 { name="lightsout"; version="0.3.2"; sha256="0wkpg4yvn2br0r1vb23vl4ayhg4m8zph57p67wf3a4c0xqga3kvr"; depends=[magrittr shiny shinyjs]; };
@@ -12776,6 +12987,7 @@ in with self; {
   lillies = derive2 { name="lillies"; version="0.2.12"; sha256="1ys1fzi9azj0nxvf8byy30zbcf7p90p18842kwy98m6my8iwqqj2"; depends=[dplyr knitr pracma progress rlang survival tidyr]; };
   limSolve = derive2 { name="limSolve"; version="1.5.7.1"; sha256="14jvx0sjjdsm6fxvdck648h12sl4cmy8sgw8jx1744pmpcbm5555"; depends=[lpSolve MASS quadprog]; };
   lime = derive2 { name="lime"; version="0.5.3"; sha256="157ph4a1h3025nx5v8lw63bbrzk4skw2rnnw1g7h4d3qggcmlhf9"; depends=[assertthat ggplot2 glmnet gower Matrix Rcpp RcppEigen stringi]; };
+  limexhub = derive2 { name="limexhub"; version="0.1.5"; sha256="1f5s1m544fsm0dv5kd5g198f9f2lkz89f58pf28d4hvx89cmf103"; depends=[data_table httr jsonlite]; };
   liminal = derive2 { name="liminal"; version="0.1.2"; sha256="1ka16fm0gzhpydlk5pjf1vjcb7ygx1d3iv4z8cs6ywzrq4bb5r61"; depends=[dplyr jsonlite matrixStats miniUI rlang shiny tourr vegawidget]; };
   limonaid = derive2 { name="limonaid"; version="0.1.5"; sha256="04w9g0gv1cihljvmh1y40ygckhhv4jrg970913npvk5nc3id3bqd"; depends=[httr jsonlite R6]; };
   limorhyde = derive2 { name="limorhyde"; version="1.0.1"; sha256="0ksz8chs5v7qss5yf24zcpszi6v0ylbn98zaxy7mz62qfx5i441g"; depends=[pbs]; };
@@ -12788,18 +13000,19 @@ in with self; {
   lindia = derive2 { name="lindia"; version="0.10"; sha256="0i4mi19pcbpiqbwzj5ga9jhzi0z1qsf779kndyz9sdd9wgxdz8zg"; depends=[ggplot2 gridExtra MASS]; };
   linearModel = derive2 { name="linearModel"; version="1.0.2"; sha256="032liplyjw7n0ylvpqv038pf8sbfbcz58zka5rr76cvh2xzf87vg"; depends=[]; };
   lineartestr = derive2 { name="lineartestr"; version="1.0.0"; sha256="0bzsywk97j2mmsi7pj9267za1q2601crynh9kszwj6xjbg08nvsm"; depends=[dplyr forecast ggplot2 Matrix readr sandwich tidyr viridis]; };
-  linelist = derive2 { name="linelist"; version="1.1.0"; sha256="1f9alw5vvrb6nyzy2mfhyc4vqn2q05gwgr0hw9rajm84ym0l0g2r"; depends=[checkmate dplyr lifecycle rlang tidyselect]; };
+  linelist = derive2 { name="linelist"; version="1.1.3"; sha256="0bpsz61pdx3vl88g006iy5gzl1f2lwsfws6gjm1aki9rsih8fx0x"; depends=[checkmate dplyr lifecycle rlang tidyselect]; };
+  linelistBayes = derive2 { name="linelistBayes"; version="1.0"; sha256="08xgqp1ldb76063k4dgyjjdzk50l4x0ddz1q3y4zzf4jfisp9720"; depends=[coda dplyr lubridate magrittr Rcpp RcppArmadillo]; };
   linemap = derive2 { name="linemap"; version="0.3.0"; sha256="1fyvab2m742klsl94k2vc5qv0ykwcj0ybm3vv0mdv94nlmcm2gk7"; depends=[terra]; };
   lineup = derive2 { name="lineup"; version="0.42"; sha256="1k6l3vl9g6cz3jl1fz6r1dm3lfpmis6yylra69c3s8l8l4fz0gzy"; depends=[class qtl]; };
   lineup2 = derive2 { name="lineup2"; version="0.6"; sha256="0qkxwn30g0bjm9aq9a59pb3xq844qr43ribnk607zlf8lwbibsk2"; depends=[Rcpp]; };
   lineupjs = derive2 { name="lineupjs"; version="4.6.0"; sha256="198a87hhn1f77ix3mrv8mi04qxlv392aw1cg852h8s6sr2ayxqgl"; depends=[htmlwidgets]; };
   lingdist = derive2 { name="lingdist"; version="1.0"; sha256="17mcr487bb7brmjzbiq71snxxaxnfg33ml3dqdfldv13i8nv3shi"; depends=[Rcpp RcppThread]; };
   lingglosses = derive2 { name="lingglosses"; version="0.0.7"; sha256="0qa42bjx9mszdfnzgmi7i23czrqnz8vbdaj0vq5sx8rn547dhymx"; depends=[htmltools kableExtra knitr rmarkdown]; };
-  lingmatch = derive2 { name="lingmatch"; version="1.0.6"; sha256="01cp6sdns2bgfclcz21fhb69q39sr1zqxx2h582kp5s86ikkxbr3"; depends=[BH Matrix Rcpp RcppParallel]; };
+  lingmatch = derive2 { name="lingmatch"; version="1.0.7"; sha256="0qciq4dcxsv33scvzcn3lmivisq7hl3llky1p9fj2xjlgc5l53yv"; depends=[BH Matrix Rcpp RcppParallel]; };
   lingtypology = derive2 { name="lingtypology"; version="1.1.17"; sha256="07r9p41jhrx7hgy5h3bfhnry5b88chbim6nnvisw5v39b2mm1p9n"; depends=[jsonlite leaflet leaflet_minicharts stringdist]; };
   linguisticsdown = derive2 { name="linguisticsdown"; version="1.2.0"; sha256="1y2g8h0p4q4mjrawzyprsdw8ynqcbpnjypyhdaf03pcwqglcirkl"; depends=[DT knitr magrittr miniUI rstudioapi shiny stringr]; };
   link = derive2 { name="link"; version="2024.4.0"; sha256="0yz610hi3si6z9kgfzhn5wj00kbp7bfqfbg1iqs871jcwihbz5xc"; depends=[bslib downlit glue htmltools httr2 knitr rlang stringr xml2]; };
-  link2GI = derive2 { name="link2GI"; version="0.5-3"; sha256="192f3cilra1lq8wg2hn41z2a7ag4m9svkc6smw0rf7np2xv9b2a6"; depends=[devtools R_utils roxygen2 sf stringr terra xfun xml2]; };
+  link2GI = derive2 { name="link2GI"; version="0.6-1"; sha256="0ivzbmvwxx2v0pk7f1y84jxad5pvpl4m6czmjkga52wnk0y5dnn1"; depends=[brew devtools git2r R_utils renv roxygen2 rstudioapi sf terra xfun xml2 yaml]; };
   linkcomm = derive2 { name="linkcomm"; version="1.0-14"; sha256="15xm4c7sqpid1vjra250dnvdx98qgzbzmvaycf3zqqnqcmy5bw9n"; depends=[dynamicTreeCut igraph RColorBrewer]; };
   linkedInadsR = derive2 { name="linkedInadsR"; version="0.1.0"; sha256="1849n9lk3j6jryshz9vz6pxsrqarzqjfrnf91xiwws8kiv65v8p4"; depends=[jsonlite]; };
   linkprediction = derive2 { name="linkprediction"; version="1.0-0"; sha256="0p2abdq6ad689236w2d0khlycpjgy6j7xrlb96ngl6csgxwm07bl"; depends=[igraph intergraph]; };
@@ -12809,7 +13022,7 @@ in with self; {
   linpk = derive2 { name="linpk"; version="1.1.2"; sha256="0i87sfh01dl3xqs5vy3ha2prg952zpiq8fbl2amaiamg1qwl2y34"; depends=[mvtnorm]; };
   linprog = derive2 { name="linprog"; version="0.9-4"; sha256="1d34m2nyk7m6j2dci69bhy5mlw479xax1517j7f14pq7vhpsm9l1"; depends=[lpSolve]; };
   lintools = derive2 { name="lintools"; version="0.1.7"; sha256="03sfx1w3kl7xk79bpw6hddk7xylh2w2fp9zsgbd50150xp49p1ah"; depends=[]; };
-  lintr = derive2 { name="lintr"; version="3.1.1"; sha256="07c7h30nh1529wba8xkyg2sapj6r7jjckrxyzhrg2ssfwzs4dwdw"; depends=[backports codetools cyclocomp digest glue knitr rex xml2 xmlparsedata]; };
+  lintr = derive2 { name="lintr"; version="3.1.2"; sha256="0xska080wnifvibywmwalmp4a0xdnsgpn0k3m5ahjbqckfcpklrm"; depends=[backports codetools cyclocomp digest glue knitr rex xml2 xmlparsedata]; };
   lipidmapsR = derive2 { name="lipidmapsR"; version="1.0.4"; sha256="19yrqd28z5dvpvi0igarmz9fpv08yx78221nzrwc8yxp6m1agkgc"; depends=[httr RJSONIO]; };
   lipidomeR = derive2 { name="lipidomeR"; version="0.1.2"; sha256="1a9zi821mn7w18lg7psc9bagi3c5snvwqgda2f10rw5jff60fkfd"; depends=[BiocManager dplyr ggplot2 knitr limma reshape2 shadowtext stringr tableone tidyr]; };
   liqueueR = derive2 { name="liqueueR"; version="0.0.1"; sha256="0rpjib0dz39la63gy9bw9gmdfq2fcx40y4y4wcb6ky41qcjdp1nd"; depends=[itertools]; };
@@ -12819,7 +13032,7 @@ in with self; {
   list = derive2 { name="list"; version="9.2.6"; sha256="1r1j4jk54mcvsgxm2gxpjh66h13frdiq9cszc0wxg1zfrpcisava"; depends=[arm coda corpcor gamlss_dist magic MASS mvtnorm quadprog sandwich VGAM]; };
   listArray = derive2 { name="listArray"; version="0.1.1"; sha256="0j8hdsda7p6m1q06mi32yh3wqsdjr77kb8js42nm63dgpfy7mvv5"; depends=[]; };
   listWithDefaults = derive2 { name="listWithDefaults"; version="1.2.0"; sha256="1rv9jq9zlr5dm08mimba6ni2p5vkfybrgrqk1alm7y6mqpx56byp"; depends=[assertthat]; };
-  listarrays = derive2 { name="listarrays"; version="0.3.1"; sha256="0nfpqywq9pl9yj566y0jw0h89g0ppsc614538ns1jc3l5r2myils"; depends=[]; };
+  listarrays = derive2 { name="listarrays"; version="0.4.0"; sha256="1zrvab4d28rk0sp3prwmxn290423j83dvhbpc23d2c5601wlga9j"; depends=[]; };
   listcomp = derive2 { name="listcomp"; version="0.4.1"; sha256="0h3wmlm3y3vr21x4ik785ring57z5cjhlwvsljh06m5m3fkv8nxr"; depends=[rlang]; };
   listcompr = derive2 { name="listcompr"; version="0.4.0"; sha256="1pmk56wz6yl1qixfk9ci1p96z7qwz65xyb6k5k46l5nbwal6ik4a"; depends=[]; };
   listdown = derive2 { name="listdown"; version="0.5.7"; sha256="0dw41ylja9ibznsqfr0621sqsmwb4kzlrwaycjl2hc4wmbabbliv"; depends=[checkmate fs rmarkdown tibble yaml]; };
@@ -12851,7 +13064,8 @@ in with self; {
   lmap = derive2 { name="lmap"; version="0.1.2"; sha256="08bdznssicrl493zv5qa1vyjh38zhb83rwnipq83zi4qfp2s8n5p"; depends=[dplyr fmdu ggforce ggplot2 ggrepel magrittr MASS nnet Rfast]; };
   lmboot = derive2 { name="lmboot"; version="0.0.1"; sha256="1v7a3vlv0187mpg3y3pj7f3pbk1v5n6amw732chy10vdw5nmfkwd"; depends=[evd]; };
   lmds = derive2 { name="lmds"; version="0.1.0"; sha256="130azb0nc2wwxv0qi8v5s4rd02p9lc92zwn634pv7b8awbw81i65"; depends=[assertthat dynutils irlba Matrix]; };
-  lme4 = derive2 { name="lme4"; version="1.1-35.1"; sha256="0nzv1a22pfsf2ryw91h16ic4cb8y8g6wh0gx3msr7gv8dwwi3974"; depends=[boot lattice MASS Matrix minqa nlme nloptr Rcpp RcppEigen]; };
+  lme4 = derive2 { name="lme4"; version="1.1-35.3"; sha256="0ij37wly0d28x143xdkjry5jsj4chlbli2fl9zbp8fkcgh95r1xl"; depends=[boot lattice MASS Matrix minqa nlme nloptr Rcpp RcppEigen]; };
+  lme4breeding = derive2 { name="lme4breeding"; version="1.0.1"; sha256="12156nll73lwmf0si6pm46gvkc3pdgqwg6yc9bqdvgdggf7pnjqc"; depends=[crayon lme4 Matrix]; };
   lmeInfo = derive2 { name="lmeInfo"; version="0.3.2"; sha256="11sqfb9bj7npngli4h0mzjd2pqjjkza2zmq4b9g2fhmm9r2b0zvd"; depends=[nlme]; };
   lmeSplines = derive2 { name="lmeSplines"; version="1.1-12"; sha256="140l95c6yys2rdpyh7clqx4x4qfd4w36hpz6jkb2ygbh90ikzi2r"; depends=[nlme]; };
   lmerPerm = derive2 { name="lmerPerm"; version="0.1.9"; sha256="1z69qr8nz89f4qbkyjs4n171yz9g6znxkgykrn0k3qbd3d7r9jds"; depends=[lmerTest]; };
@@ -12868,19 +13082,19 @@ in with self; {
   lmom = derive2 { name="lmom"; version="3.0"; sha256="1482kbb4cm65m2d1xlxml93yjd3d43iiap6nvzg5vd33i9iyh2jb"; depends=[]; };
   lmomPi = derive2 { name="lmomPi"; version="0.6.6"; sha256="0a9ddfaa3micj3q7wcpkcsxhbd6dv3gn19rdy7ll3f76g63pknf1"; depends=[lmom stringr]; };
   lmomRFA = derive2 { name="lmomRFA"; version="3.6"; sha256="1av113gxif93v26g2x4c4l4fbax42w5bv3560p5sgdxbnb7sdmqp"; depends=[lmom]; };
-  lmomco = derive2 { name="lmomco"; version="2.4.14"; sha256="09adqsf70jz1rhwlzq8f9cwr1gf36l80l2vfhrsw3hh18cszs44k"; depends=[goftest Lmoments MASS]; };
+  lmomco = derive2 { name="lmomco"; version="2.5.1"; sha256="0jkqm5cavixb1wfcw00k0pa6y8j252h6mhq5ldcz1qakp07rhzb4"; depends=[goftest Lmoments MASS]; };
   lmreg = derive2 { name="lmreg"; version="1.2"; sha256="02a4nqqcfkjlq21mpk8abd4lj4ib2nps3ndf7zgmzygkd1z0df18"; depends=[MASS]; };
   lmridge = derive2 { name="lmridge"; version="1.2.2"; sha256="1lngzhxgjdg4j2bxi680zdsj0ambrpn23v2ib0mbilscbv3p8701"; depends=[]; };
   lmtest = derive2 { name="lmtest"; version="0.9-40"; sha256="15yr2kx08wy085bnziqmj1p6hf9mg3qp2a8465jk2df6di6hsh34"; depends=[zoo]; };
   lmtestrob = derive2 { name="lmtestrob"; version="0.1"; sha256="1637x7wp2kb97xbllyd0kwxszcjlajfr0c9qa956cn6fdk9yi61d"; depends=[MASS]; };
-  lmtp = derive2 { name="lmtp"; version="1.3.2"; sha256="124rahrbvrkr1mvazjwz7b42333az9sh26nml9snrcicl0ysjyzv"; depends=[checkmate cli data_table future generics nnls origami progressr R6 SuperLearner]; };
+  lmtp = derive2 { name="lmtp"; version="1.3.3"; sha256="12vq5rail8xdw84ms6nv4ncmdygk485vffyzqc9kcc7wxlbr127i"; depends=[checkmate cli data_table future generics nnls origami progressr R6 SuperLearner]; };
   lmviz = derive2 { name="lmviz"; version="0.2.0"; sha256="0sl2k02m5bxkb4jg8y666ln0xxhr4dhsfz9hlp55p9smlhycl5s2"; depends=[car lmtest MASS mgcv rgl scatterplot3d shiny shinyjs]; };
   lmw = derive2 { name="lmw"; version="0.0.2"; sha256="1ij9jdf8zr0pq4q5qxgvnvjf4ciqr86p39ajq5v6zlinbcs7qaiq"; depends=[backports chk sandwich]; };
   lncDIFF = derive2 { name="lncDIFF"; version="1.0.0"; sha256="012dwrcp0pny59hvzj7mnyyc3nijcjgxc0dyx7ab2fknp9bhs5w8"; depends=[]; };
   lnmCluster = derive2 { name="lnmCluster"; version="0.3.1"; sha256="1y5zf2m4kgysm15xnbd1zc21svif2mxpm1zla4nhg68hljl41j8s"; depends=[foreach gtools MASS mclust pgmm Rcpp stringr]; };
   loa = derive2 { name="loa"; version="0.2.48.3"; sha256="1fa1yxpsydx2kjbnj00vn9zv4dw9awng4lxrcllcgzkir9bikgq0"; depends=[lattice MASS mgcv OpenStreetMap plyr png RColorBrewer RgoogleMaps sp]; };
-  loadeR = derive2 { name="loadeR"; version="1.1.8"; sha256="0bh5c16sdgirw0pmpmg6mvglv9zlaz9l2mfmk85rxvg00zw0qrq4"; depends=[caret colourpicker config data_table DT echarts4r golem htmltools htmlwidgets readxl rlang shiny shinyAce shinycustomloader shinydashboard shinydashboardPlus shinyjs writexl]; };
-  loadings = derive2 { name="loadings"; version="0.4.1"; sha256="1ig9wz27mc5jdkah4z9ngdpanl5xcay2d27vdbfhannsw5i0lcdy"; depends=[geigen]; };
+  loadeR = derive2 { name="loadeR"; version="1.2.0"; sha256="0hxvmhl0xyyxjiinbh55clwdzihpxyw61k1gm6wcvj8hs21y8sl0"; depends=[caret colourpicker config data_table DT echarts4r golem htmltools htmlwidgets readxl rlang shiny shinyAce shinycustomloader shinydashboard shinydashboardPlus shinyjs writexl]; };
+  loadings = derive2 { name="loadings"; version="0.5.1"; sha256="0ar8xryk8xd2p5zscwshk83pg3ivwbp60kmjamjzwk56fjn8zb9k"; depends=[geigen]; };
   loadshaper = derive2 { name="loadshaper"; version="1.1.1"; sha256="10fypkybqi6kpvxcrwsvzczqc11mihyj5f1d3jhd22s8llm8k0gc"; depends=[]; };
   lobstr = derive2 { name="lobstr"; version="1.1.2"; sha256="060p7b7i2qx09d7nf0kdl85r9j886fivrkrsl2bn10cggvnk7icv"; depends=[cpp11 crayon prettyunits rlang]; };
   locStra = derive2 { name="locStra"; version="1.9"; sha256="0vblsxdlngpa0mzyay9w23nx85riq0dwjc04z20vyha0vdsnkfk6"; depends=[bigsnpr Matrix Rcpp RcppEigen Rdpack RSpectra]; };
@@ -12901,12 +13115,11 @@ in with self; {
   locits = derive2 { name="locits"; version="1.7.7"; sha256="13y313z0wmhrqfzgr3dbcmkdg6507p0wdvyxrnz1vm0rjwqv4911"; depends=[igraph wavethresh]; };
   locpol = derive2 { name="locpol"; version="0.8.0"; sha256="1bip9x45kdnwc14rvk3ckzfbs32yc2wiid1ypmbbin4mk7364zxk"; depends=[]; };
   locpolExpectile = derive2 { name="locpolExpectile"; version="0.1.1"; sha256="1phwcnbk1vmdk3qmfx2nd6crplly2lb8gb57yl67ky3c4sryh358"; depends=[expectreg lestat locpol matrixcalc quantreg]; };
-  locuszoomr = derive2 { name="locuszoomr"; version="0.2.1"; sha256="0ydz82vrqv5kwchsafnq15kfdz8vd7jzaxa3b8v7s7r2qfh23603"; depends=[AnnotationFilter BiocGenerics cowplot dplyr ensembldb GenomeInfoDb GenomicRanges gggrid ggplot2 ggrepel IRanges LDlinkR memoise plotly rlang rtracklayer zoo]; };
+  locuszoomr = derive2 { name="locuszoomr"; version="0.3.0"; sha256="1bah3sr0srnvafm69h62hfw5gajsnrasqwzzsk391ga73mqbi8mz"; depends=[AnnotationFilter BiocGenerics cowplot dplyr ensembldb GenomeInfoDb GenomicRanges gggrid ggplot2 ggrepel IRanges LDlinkR memoise plotly rlang rtracklayer zoo]; };
   lodGWAS = derive2 { name="lodGWAS"; version="1.0-7"; sha256="0g5b44d3wb5hnx5l2n76myb1pc9ml3a052n1a4gvgqapa5as35s2"; depends=[rms survival]; };
   loder = derive2 { name="loder"; version="0.2.1"; sha256="19l3rim2k3kd15i86gdbwlma63w68n1cjqbahqbrgck2irx9f6vy"; depends=[]; };
   lodi = derive2 { name="lodi"; version="0.9.2"; sha256="16xqcza87gsqi6kzx0bdv3w9zyvvppjd20rq08lc8vb75nlkx1yb"; depends=[rlang]; };
   lodr = derive2 { name="lodr"; version="1.0"; sha256="0bmdw489dv1069krnx9yi0bcgx1vx4ymc6s4pix4shha5c5fbiz4"; depends=[Rcpp RcppArmadillo Rdpack]; };
-  loe = derive2 { name="loe"; version="1.1"; sha256="1n16pgfxg9vcn729xxjbbvavg2ywbdcch9v2ph8nv3z7psc0q46c"; depends=[MASS]; };
   loedata = derive2 { name="loedata"; version="1.0.1"; sha256="01w0f83n1jzchw12w1wg18lq6idlp9ywr52nipg2l7pn9aa30gvv"; depends=[]; };
   loewesadditivity = derive2 { name="loewesadditivity"; version="0.1.0"; sha256="0j9vvh2ys09hy2k3mbrlf0p493ymrxvfsdcjw0p6rlls54z9lqqc"; depends=[dplyr ggplot2 gridExtra magrittr metR rlang rootSolve tidyr viridis]; };
   log = derive2 { name="log"; version="1.1.1"; sha256="1vzssrg2qqxd27b9d36v3mmkhgkx8n724ql9yhl5p8dy28zgsdxd"; depends=[cli crayon R6]; };
@@ -12921,10 +13134,12 @@ in with self; {
   logger = derive2 { name="logger"; version="0.3.0"; sha256="0ivhrmq408pb7gx7yhmrn6mjkx15dvkb4bpk4z5y642l3j2vv9vd"; depends=[]; };
   logging = derive2 { name="logging"; version="0.10-108"; sha256="13gd40ygx586vs6xcp6clg69a92aj8zxlk1rn3xzkx8klfjimjc5"; depends=[]; };
   loggit = derive2 { name="loggit"; version="2.1.1"; sha256="1fkr2fnfazxhm3pq0gysxhz6aqsdx38d017y0xbmlsg9hfgfx6q1"; depends=[]; };
+  loggit2 = derive2 { name="loggit2"; version="2.3.0"; sha256="06gvfh3jhgfiyxi950648ha123np77xqd2n2rh41pf1ipnhaxpca"; depends=[]; };
   logiBin = derive2 { name="logiBin"; version="0.3"; sha256="06y5bqm3j6xdr1cd607v2sqkghnd2bv6bvxc6cz8dvp8jabqa0zm"; depends=[data_table doParallel foreach iterators partykit]; };
   logib = derive2 { name="logib"; version="0.1.2"; sha256="09c528wrgyk0cg1flx2fsl53q4v9442rr44g9kh5jznqs788608b"; depends=[lubridate readxl]; };
   logicDT = derive2 { name="logicDT"; version="1.0.4"; sha256="0i60wqhhmscwhbcyril4n2g1hxja5w225s4vvnk778kd7s1ig6g2"; depends=[glmnet]; };
   logihist = derive2 { name="logihist"; version="1.0"; sha256="1q3322rh3g31c5i80aw54pln0m1jgxmbx30cn31nlh3ijkvnpq9a"; depends=[ggplot2]; };
+  login = derive2 { name="login"; version="0.9.3"; sha256="0sar30sy0g9pa3qsw68a3mfqwq1c2c5kqs8am8dljvf419pdbyrp"; depends=[cookies DBI digest emayili htmltools shiny shinybusy shinyjs stringr]; };
   logistf = derive2 { name="logistf"; version="1.26.0"; sha256="02qrh07c13khlpz3z3f6qq827h37j91i88n7jn3c8ky6r1lfa5pr"; depends=[formula_tools Matrix mgcv mice]; };
   logistic4p = derive2 { name="logistic4p"; version="1.6"; sha256="1gyg6wmv15l9kn30icrbh3zny0h419la6722nynv80ls0r2b495g"; depends=[MASS]; };
   logisticPCA = derive2 { name="logisticPCA"; version="0.2"; sha256="07ikyn127ld0fjdw7x911wrswqwqpw4lbcz0iffvh6jfjkgyk341"; depends=[ggplot2]; };
@@ -12935,16 +13150,15 @@ in with self; {
   loglognorm = derive2 { name="loglognorm"; version="1.0.2"; sha256="0ha1b7hl86486v38ap9rm71wwvg95szqx5rb5q097vm6dl091qcr"; depends=[]; };
   logmult = derive2 { name="logmult"; version="0.7.4"; sha256="1k9izgna3bfi8gvnpks85gj3zv3lp35991ml58q7pcqqr78giii2"; depends=[gnm qvcalc]; };
   lognorm = derive2 { name="lognorm"; version="0.1.10"; sha256="021g3g7hyxcrj2lzqfjxj2ypcn8c6qminr0l6sdydynvjdjjv0pc"; depends=[Matrix]; };
-  logr = derive2 { name="logr"; version="1.3.6"; sha256="1ndipzwlmql6qrkb9x0h1lw22rgr71vf0q2xr67a1gdqjn758vqg"; depends=[common withr]; };
-  logrx = derive2 { name="logrx"; version="0.3.0"; sha256="1qqy4hm0l6fijkzlxrzj1i65bdi3lf1p3mwd7jwm66yi9ynwkkbz"; depends=[digest dplyr lifecycle magrittr miniUI purrr rlang rstudioapi sessioninfo shiny stringi stringr tibble tidyr waiter]; };
-  logspline = derive2 { name="logspline"; version="2.1.21"; sha256="0xqbk3h28gkx3haj7hdg314616x673cmg9ia148g0q9j3zqkqflf"; depends=[]; };
-  lokern = derive2 { name="lokern"; version="1.1-10.1"; sha256="0l49ib9qnifpxacifxq5m9kmp3ralz9bdwv37zzazjbkm15zng4d"; depends=[sfsmisc]; };
+  logr = derive2 { name="logr"; version="1.3.8"; sha256="0d1r5ka83nd9s3b62m0wd7vdhfff7x229w9w8xll180qdswq04ay"; depends=[common withr]; };
+  logrx = derive2 { name="logrx"; version="0.3.1"; sha256="1dnz6g3rz15gl747gn9vbr5y67zlyqffqwmp5rqvwg75ga5mhkx3"; depends=[digest dplyr lifecycle magrittr miniUI purrr rlang rstudioapi sessioninfo shiny stringi stringr tibble tidyr waiter]; };
+  logspline = derive2 { name="logspline"; version="2.1.22"; sha256="00pdcfj1hmafxzs7gqw3n072p6pxp9hvsdm062n0xkiby6igffkp"; depends=[]; };
+  lokern = derive2 { name="lokern"; version="1.1-11"; sha256="1psv3c59lxn7nrb04v7kydlk4q1cg3v8hb1s1v2al19f0p2jhyhz"; depends=[sfsmisc]; };
   lolR = derive2 { name="lolR"; version="2.1"; sha256="0lrmn9lzyyfr1y0i7qp6xfpdxyisbkajwg0jkrqkiw687psnh2rc"; depends=[abind ggplot2 irlba MASS pls robust robustbase]; };
   lolliplot = derive2 { name="lolliplot"; version="0.2.2"; sha256="1rr0j0y298dmmllck11jq36glxczcsz6z7kw9290k77z75fi3vzi"; depends=[GenomicRanges grImport IRanges scales]; };
   lolog = derive2 { name="lolog"; version="1.3.1"; sha256="0hc95ff1radpc8q0xnrvhsgbhf902fhhhkjmj51sxds4mn5wdaj3"; depends=[BH ggplot2 intergraph Matrix network Rcpp reshape2]; };
-  lomb = derive2 { name="lomb"; version="2.2.0"; sha256="0hb9ilybd9b4i0b5778b4lin899gnix2xwxlcqiy05lhb8qxzzij"; depends=[ggplot2 gridExtra plotly pracma]; };
+  lomb = derive2 { name="lomb"; version="2.5.0"; sha256="1jlmdbxlxk2a1sbkzn3x18z82i0mwhjhy72j1l02qcnyxp3clbh4"; depends=[ggplot2 gridExtra knitr plotly pracma]; };
   long2lstmarray = derive2 { name="long2lstmarray"; version="0.2.0"; sha256="1d0w5qqqq3jak72ci7p12rcs4hjwmvwlaf47pibc6y9lax609kxw"; depends=[abind dplyr]; };
-  longCatEDA = derive2 { name="longCatEDA"; version="0.31"; sha256="0dji41lsknfwmgb2fczzm37dm97wvi45rh878w7pwlzwdh9vq8va"; depends=[]; };
   longROC = derive2 { name="longROC"; version="1.0"; sha256="1fs11vqi4hy99d7shzzdvd6ic5gay6rh2027w6j0qpd04n8q88m8"; depends=[survival]; };
   longRPart2 = derive2 { name="longRPart2"; version="0.2.3"; sha256="1vqcsxi6c4hqrpk3ns7yhghfryin1psxl38qkz2xz8cvyn58f685"; depends=[formula_tools ggplot2 MASS nlme rpart]; };
   longclust = derive2 { name="longclust"; version="1.5"; sha256="0x44arc5c3xnrby1c8f5q3lvbipjsm3gsair99ybrzs4j31sgcky"; depends=[]; };
@@ -12958,6 +13172,7 @@ in with self; {
   longmemo = derive2 { name="longmemo"; version="1.1-2"; sha256="01rj5x9cgscsrakbx9155mbvs35fd3j484cfz5cds9vl521fjr3r"; depends=[]; };
   longmixr = derive2 { name="longmixr"; version="1.0.0"; sha256="03hh1zrpxqnal4j7rmlllzdhhmrvbdnvdr7rd955hlnkr9946p6c"; depends=[checkmate ConsensusClusterPlus flexmix StatMatch]; };
   longpower = derive2 { name="longpower"; version="1.0.25"; sha256="023s4ckc6695l51025qji2ggkad8cj0gz5h4zmk7i5d3pwk7g14y"; depends=[lme4 nlme]; };
+  longreadvqs = derive2 { name="longreadvqs"; version="0.1.2"; sha256="07pdnipq4nl7v8sgbfrcz7slz36gnfj3zj6i6pcvq6zh4fy1bw3g"; depends=[ape Biostrings cowplot dplyr ggplot2 ggpubr magrittr plyr purrr QSutils RColorBrewer reshape2 scales seqinr stringdist stringr tibble tidyr]; };
   longsurr = derive2 { name="longsurr"; version="1.0"; sha256="0hlsgf7cfqg3f9m3hmqhsfa8a5xqwb3k0z22dzkrcmxynikc416s"; depends=[dplyr fda fda_usc fdapace fs glue grf here KernSmooth lme4 magrittr mgcv mvnfast plyr purrr readr refund Rsurrogate stringr tibble tidyr]; };
   longurl = derive2 { name="longurl"; version="0.3.3"; sha256="16r6gzyfy7aq8sqdzvc6wqinfp0yj46bsz4yg8n3jf0jdyx0zrc8"; depends=[httr]; };
   loo = derive2 { name="loo"; version="2.7.0"; sha256="0dnbbflglm7b29vr11rfrawnys9s3rl4h00h6xh9smjyalqz6r3n"; depends=[checkmate matrixStats posterior]; };
@@ -12966,24 +13181,25 @@ in with self; {
   lookupTable = derive2 { name="lookupTable"; version="0.1"; sha256="0ipy0glrad2gfr75kd8p3999xnfw4pgpbg6p064qa8ljqg0n1s49"; depends=[data_table dplyr]; };
   loon = derive2 { name="loon"; version="1.4.1"; sha256="096501q5lxxi9qcnziambi2zj09s8gwv6x85qjqa50bysqfjzdn2"; depends=[gridExtra]; };
   loon_data = derive2 { name="loon.data"; version="0.1.3"; sha256="0sdld3yggjadykqaljf0p4cymy2c47yaxjphc6jwyragzpv4awzw"; depends=[]; };
-  loon_ggplot = derive2 { name="loon.ggplot"; version="1.3.3"; sha256="15by2z3iy5p3frhb1y8rg17gbdds45b01qpcya210hia52b9vdlq"; depends=[cli ggmulti ggplot2 gridExtra loon patchwork rlang scales]; };
+  loon_ggplot = derive2 { name="loon.ggplot"; version="1.3.4"; sha256="1ysdzsb2cc6ps3mbssxgnwpd0j4m5zj14f7b49py939yl4qg42cj"; depends=[cli ggmulti ggplot2 gridExtra loon patchwork rlang scales]; };
   loon_shiny = derive2 { name="loon.shiny"; version="1.0.3"; sha256="1bv8a4rrrlf80r9pidjxaaql4rrm6gz13pjz1mii97q9s3xjn0id"; depends=[base64enc colourpicker gridExtra loon loon_ggplot shiny]; };
-  loon_tourr = derive2 { name="loon.tourr"; version="0.1.3"; sha256="1vdxqdsr89gzvsw9gx001rw416586lqyq0rp3g55n1lh6h9cy19d"; depends=[loon loon_ggplot MASS tibble tourr]; };
+  loon_tourr = derive2 { name="loon.tourr"; version="0.1.4"; sha256="1ggy3kkz86lk332pnlihc1i2bki3nks7r2bvl6bprcmds9lg689i"; depends=[loon loon_ggplot MASS tibble tourr]; };
   lorad = derive2 { name="lorad"; version="0.0.1.0"; sha256="1pab66bngvcmk38id42ns6imdn014g14j6inrdkj39v6djy8xg0w"; depends=[]; };
   lordif = derive2 { name="lordif"; version="0.3-3"; sha256="1yby9fvzdi1dzvzp6d6h144k1p9nfacd8l5bd66dmhnc8sp2nlx5"; depends=[mirt rms]; };
   lorec = derive2 { name="lorec"; version="0.6.1"; sha256="0mgypd8awixh1lzbh5559br4k7vi3pfmwniqhgh68wc06sc6bn65"; depends=[]; };
   lorem = derive2 { name="lorem"; version="1.0.0"; sha256="06pi088m1j60p3ckvz0mdfjlzqfdcjmzlalhy8pipnysv90ln5rm"; depends=[htmltools knitr]; };
-  lorentz = derive2 { name="lorentz"; version="1.0-5"; sha256="1py2s4x6vnlyyf5fnwbhws00dmf5qyzmx8wza337w3nzxkr6ns6b"; depends=[emulator magic magrittr tensor]; };
+  lorentz = derive2 { name="lorentz"; version="1.1-1"; sha256="1idkqxpmjqvh5jy8jmz0m40bbfyi6sk0h75hbb7sb36b1ryc5sn3"; depends=[emulator magic magrittr tensor]; };
   lorenz = derive2 { name="lorenz"; version="0.1.0"; sha256="1zclxjr1ya4rc48hm8a1s6ayr4yvjydgwwsi4fwg3qqf4mspa2dl"; depends=[dineq magrittr]; };
   lori = derive2 { name="lori"; version="2.2.2"; sha256="1153ilp1i849rwbbms4vfc6c1mxgpav04zfqm2sdj7s63nvknx6r"; depends=[data_table rARPACK svd]; };
   lotri = derive2 { name="lotri"; version="0.4.3"; sha256="1r24ldi8asa2n1w4czrwl5kp6b7xq27prrsxf23f436zfc4hhjvl"; depends=[crayon]; };
+  lotterybr = derive2 { name="lotterybr"; version="0.2.0"; sha256="1p0cv9g01l02917nndnw6f0wkms4kqpyiiddpjg251iy5j4qyl1k"; depends=[dplyr ggplot2 plotly shiny]; };
   lowmemtkmeans = derive2 { name="lowmemtkmeans"; version="0.1.2"; sha256="08zhdw48rzw47yzhg4s37bkliyngxs46cyb57dvng1s3m0w0dhvi"; depends=[Rcpp RcppArmadillo]; };
   lowpassFilter = derive2 { name="lowpassFilter"; version="1.0-2"; sha256="1ic4xissqm7cq951yw7cf74a520mnm34yr6mlw1byhn5w4nzbk2x"; depends=[Rcpp]; };
   lpSolve = derive2 { name="lpSolve"; version="5.6.20"; sha256="1nr1vjz6ma42kxbcay4g9j30r9srkbw79f06sdnc68sid2h0dziz"; depends=[]; };
   lpSolveAPI = derive2 { name="lpSolveAPI"; version="5.5.2.0-17.11"; sha256="191zjgyap3kcsvh8fygqqyr9p0agbzm160fzynnpaxf19yp6r3dh"; depends=[]; };
   lpacf = derive2 { name="lpacf"; version="1.0.1"; sha256="0lg1r7pjg9f5msvjqaq93v43mssvq7jqgv2canhp3wybnmcw0p8v"; depends=[locits wavethresh]; };
   lpc = derive2 { name="lpc"; version="1.0.2.1"; sha256="1g1dzm7pcrbrdk1dmhbdhj58j69dzar41al3i8q4gysf3adqzsvv"; depends=[]; };
-  lpcde = derive2 { name="lpcde"; version="0.1.2"; sha256="1i20ipc96anm40j10j9098sy7jhz7zcjslr12va2i47fhw1mfy88"; depends=[combinat ggplot2 MASS Matrix mvtnorm purrr Rcpp RcppArmadillo]; };
+  lpcde = derive2 { name="lpcde"; version="0.1.4"; sha256="0gb130x8177bcw3snrndm87p21na6v3zayqcn9z16rviiyy1nscg"; depends=[combinat ggplot2 MASS Matrix mvtnorm purrr Rcpp RcppArmadillo Rdpack]; };
   lpda = derive2 { name="lpda"; version="1.0.1"; sha256="0q54jid3vj5js0bhf4v4w5v3pmh4rr8dv0igcb2525fl731jsqfk"; depends=[Rglpk]; };
   lpdensity = derive2 { name="lpdensity"; version="2.4"; sha256="1vbbvg2wb2jggqls185bwpm8c8ky6693kai3lr5xz4r8f6ivdm29"; depends=[ggplot2 MASS]; };
   lphom = derive2 { name="lphom"; version="0.3.5-5"; sha256="08rnymy72p0c06mx6n70s2xirigp21d7g3dwnapad7w7iajw7iqf"; depends=[lpSolve]; };
@@ -12999,9 +13215,9 @@ in with self; {
   lrequire = derive2 { name="lrequire"; version="0.1.3"; sha256="03c8h9v2xhlv7bj5jv117a27gaqaly2kdxs9zyihsm9yh9rg3d79"; depends=[]; };
   lrgs = derive2 { name="lrgs"; version="0.5.4"; sha256="0mf6wqlv21z68w81hvpmhgngvdsklf3x2678d9c9lxfmqmpv4a7y"; depends=[mvtnorm]; };
   lrmest = derive2 { name="lrmest"; version="3.0"; sha256="1yddkgza672z9y0ipgl92pg9prhmr387zsqf0qbi9k2yzfz2vvs6"; depends=[MASS psych]; };
-  lrstat = derive2 { name="lrstat"; version="0.2.4"; sha256="1qwyp7dg6w2wr7rgyn6gwin502azygy33966a62rycl65shdbljp"; depends=[lpSolve mvtnorm Rcpp shiny]; };
+  lrstat = derive2 { name="lrstat"; version="0.2.7"; sha256="1r25716gq78imyy0f2cja2vh1ldjn5766iaa65x4z5rdcz3gcd80"; depends=[lpSolve mvtnorm Rcpp shiny]; };
   lsa = derive2 { name="lsa"; version="0.73.3"; sha256="16k1g0kh3yaw7azg76aqf3hn3b6jgqg92xx0syai8l0my9ci2zzh"; depends=[SnowballC]; };
-  lsasim = derive2 { name="lsasim"; version="2.1.4"; sha256="197grlgxvilw43lyjprmik0pjgns979xksi4pv422h9x9fwwyqpn"; depends=[cli mvtnorm polycor]; };
+  lsasim = derive2 { name="lsasim"; version="2.1.5"; sha256="1qxnf2s02sw5zx9snyszr6h5n2qw81d2qrj8i1d37kzk1hzkvxcd"; depends=[cli mvtnorm polycor]; };
   lsbclust = derive2 { name="lsbclust"; version="1.1"; sha256="1pbai58pfvhfcrd0nj13d54vrn9wrx2xapqhgqa1pkrjwbk5amj7"; depends=[clue doParallel foreach ggplot2 gridExtra mvtnorm plyr Rcpp reshape2]; };
   lsbs = derive2 { name="lsbs"; version="0.1"; sha256="14aq80zg89lq7hffv1v1m4n7hbzqzxkazcga4y2fq40ij3v7kv6n"; depends=[ks Matrix numDeriv]; };
   lsdbc = derive2 { name="lsdbc"; version="0.1.0"; sha256="1dk07zlvwwfhlll21ql264gx94v3jvgidy3yvxidwmhnyc1vx80x"; depends=[]; };
@@ -13009,7 +13225,7 @@ in with self; {
   lsirm12pl = derive2 { name="lsirm12pl"; version="1.3.1"; sha256="0w26zq4lylg9x2qyxx4d46phlkih2cdcgjar45k9x7fav8gw6cry"; depends=[coda dplyr fpc ggplot2 GPArotation gridExtra kernlab MCMCpack plotly pROC Rcpp RcppArmadillo rlang spatstat spatstat_geom spatstat_random]; };
   lsl = derive2 { name="lsl"; version="0.5.6"; sha256="1hwzklx1qp5ljc059j2hridg3caw4cgn7rbqs8xh2arzcvqdw3rb"; depends=[ggplot2 lavaan reshape2]; };
   lslx = derive2 { name="lslx"; version="0.6.11"; sha256="1mjkz3zgcajrrkq1igqq0a1rpxwvv41ankr5mj6mcjqpg4ggng1p"; depends=[ggplot2 R6 Rcpp RcppEigen]; };
-  lsm = derive2 { name="lsm"; version="0.2.1.2"; sha256="1sp6c3r3g0q9lynzpcjvfwrp7xml11q66cqcisjvidm79vxjgi5v"; depends=[dplyr ggplot2]; };
+  lsm = derive2 { name="lsm"; version="0.2.1.4"; sha256="0dfjz547fkysghv5mb5xhc91aqijz7falir1rkwshib55bb3ijl7"; depends=[dplyr ggplot2]; };
   lsmeans = derive2 { name="lsmeans"; version="2.30-0"; sha256="1z35dzfgib0fk201gzjhgmnryhl3mkz50gz8g6nfv4mj9kzc5x5f"; depends=[emmeans]; };
   lsnstat = derive2 { name="lsnstat"; version="1.0.0"; sha256="1ydda46j5yv51yq1pgf4nihsg5ihayk603vn3yxzhnnb1r3azh4w"; depends=[dplyr httr jsonlite]; };
   lspartition = derive2 { name="lspartition"; version="0.4"; sha256="1n0pag5l4kx211dl5z9xbqijp7l04jcm0i6jgvkk2b0x9v32q4r5"; depends=[combinat dplyr ggplot2 MASS matrixStats mgcv pracma]; };
@@ -13028,7 +13244,7 @@ in with self; {
   ltsk = derive2 { name="ltsk"; version="1.1.1"; sha256="01f0jvm4fihssgfhb062wlqqvrfdikixycxfz93dkqahjmrjz5dl"; depends=[]; };
   ltsspca = derive2 { name="ltsspca"; version="0.1.0"; sha256="0hgl2zd8y01z8mhnqg1hlv1l7klpwhwk7q8b99pw9vgnh1f2gnfs"; depends=[pracma Rcpp RcppArmadillo]; };
   ltxsparklines = derive2 { name="ltxsparklines"; version="1.1.3"; sha256="0f2ycgjdw9z9m730wh3k362aq71mwmxhnsxhcjxhj8c4lknr50br"; depends=[]; };
-  luajr = derive2 { name="luajr"; version="0.1.6"; sha256="171bzic19brmrvd201xr1jaj56a830iflkzb9xxbly4rh0kagqxx"; depends=[]; };
+  luajr = derive2 { name="luajr"; version="0.1.7"; sha256="123zvkq57n787l1aqnyddxzd1d45899hlbgb5ikzk1xy85851zsr"; depends=[]; };
   lubridate = derive2 { name="lubridate"; version="1.9.3"; sha256="1zvzycng2hsks9d7552nb93abzjrs43c975rc16s3c1is8318vib"; depends=[generics timechange]; };
   luca = derive2 { name="luca"; version="1.0-6"; sha256="0zrxrwpk7iblpysd4fbh50s5bmvd5l1bzbd8rdyk06wby6bcs1rk"; depends=[genetics survival]; };
   lucas = derive2 { name="lucas"; version="1.0"; sha256="1ws35f2pq2y7nnik40nj4qpz1d499gfc5isr1409pwy6r5knb78q"; depends=[DBI plyr rpostgis RPostgreSQL]; };
@@ -13047,20 +13263,21 @@ in with self; {
   lvplot = derive2 { name="lvplot"; version="0.2.1"; sha256="0zby40866kvqxdz4hk6r0f4rfh7rzmy0n899cjjg5rqzcap7s5di"; depends=[ggplot2 RColorBrewer tibble]; };
   lwgeom = derive2 { name="lwgeom"; version="0.2-14"; sha256="174jpsri9xpr9zb5hvzqhbhnajqw3aa38ajy1skl7ky8vgvnrnr6"; depends=[Rcpp sf units]; };
   lwqs = derive2 { name="lwqs"; version="0.5.0"; sha256="11hkz3b3sgm6v30gwaq463klljjf6c4qx26a5ccc1wl6r439gxqp"; depends=[data_table gamm4 ggplot2 gridExtra gWQS plyr]; };
+  lzstring = derive2 { name="lzstring"; version="0.1.2"; sha256="1wp822my088gzp8n1w97rk081qijls3p0lx749l1y68j44mhk8w9"; depends=[cpp11]; };
   m2b = derive2 { name="m2b"; version="1.0"; sha256="0agzw67mmwrw1f61yn24z5w1pgjssdapg3li0a53i3ylnij45mzr"; depends=[caret caTools e1071 geosphere ggplot2 randomForest]; };
   m2r = derive2 { name="m2r"; version="1.0.2"; sha256="0vwvpalap4z5x2004c92n0ka7i4l64ry5n8pmxs4vjpd8fyx91gc"; depends=[gmp memoise mpoly Rcpp stringr usethis]; };
   m5 = derive2 { name="m5"; version="0.1.1"; sha256="0cw9b31j564qc5s1b37r1p425p4gndlzgwy34cn0m2c65jwiyf6h"; depends=[data_table lubridate stringi]; };
   m61r = derive2 { name="m61r"; version="0.0.3"; sha256="0mhi70rvqgzrgmp261shlq5jdxxhjawdxfsfr0cyfyyils7xs7ln"; depends=[]; };
   mAr = derive2 { name="mAr"; version="1.2-0"; sha256="1yrsa2k9v11b3jczblf7fwdmyyybbmychl5cqlfj309s986zry5d"; depends=[MASS]; };
-  mBvs = derive2 { name="mBvs"; version="1.6"; sha256="14ds64mm0nrrpfr01kmx5fsvl0kqzhiq8qgmzgmyzs7c4hcs3050"; depends=[]; };
+  mBvs = derive2 { name="mBvs"; version="1.92"; sha256="1r6dv8w4y6d4m4yw84cnsvl7f3r5dhj3qrrzk7qb23gzds8pcv84"; depends=[mvtnorm]; };
   mDAG = derive2 { name="mDAG"; version="1.2.2"; sha256="0k85sl0jmpcpiz92cz6x3kd8jc6yyfv9z4wm1kyaikcf5q4qlad4"; depends=[bnlearn logistf mgm nnet pcalg Rcpp RcppArmadillo]; };
   mExplorer = derive2 { name="mExplorer"; version="1.0.0"; sha256="1563d9r7f25vw5vsph21z3dwz9n40dpaiyx28ay1bbp5i1x2l3rb"; depends=[nnet qusage]; };
   mFD = derive2 { name="mFD"; version="1.0.7"; sha256="1jr5d5669mz4ifacaghnj7109ypfrikagjgxi2a33iqj0g63x3hp"; depends=[ade4 ape betapart cluster dendextend FactoMineR gawdis geometry ggplot2 ggrepel Hmisc patchwork reshape2 rstatix vegan]; };
   mFDP = derive2 { name="mFDP"; version="0.1.0"; sha256="0mvqg3qpv1zcj5lsk36dw4qs75i66cmv4qazpmsilhfh0v46p2dx"; depends=[]; };
-  mFLICA = derive2 { name="mFLICA"; version="0.1.5"; sha256="0znjp95ifwqpqwrnlcb77r1cdwpvbpql6ggnck018xddc8x40hzv"; depends=[dtw ggplot2]; };
+  mFLICA = derive2 { name="mFLICA"; version="0.1.6"; sha256="02h53v124j38scl816ci8z5wfcrmh9p6m08fk2hhw973h7c6xbmy"; depends=[ggplot2]; };
   mFilter = derive2 { name="mFilter"; version="0.1-5"; sha256="0anc93mciq8j64knd0i38sfgv10w1gd375wnfzn1fq8sj3lby7kb"; depends=[]; };
   mHG = derive2 { name="mHG"; version="1.1"; sha256="1rz5ncrvvv9h9grls15apa63v2nh9j87fmp4mwjjil37jx6a5zki"; depends=[]; };
-  mHMMbayes = derive2 { name="mHMMbayes"; version="1.0.0"; sha256="19zqqq0dz3fscch5vxy1lfyq4hfmdbvzfqqm123l5snbdk52l4li"; depends=[MCMCpack mvtnorm Rcpp Rdpack]; };
+  mHMMbayes = derive2 { name="mHMMbayes"; version="1.1.0"; sha256="1z13zzim90akaz82dbp8s81zyhcd3xmx3wmqvkcaq5wqh2p64s7a"; depends=[MCMCpack mvtnorm Rcpp Rdpack]; };
   mMARCH_AC = derive2 { name="mMARCH.AC"; version="2.9.2.0"; sha256="0lp32m6cfplbm72g0j1cm1c7rcpmy5jrsd3p577p9a4bwqf5ynxc"; depends=[abind accelerometry ActCR ActFrag cosinor cosinor2 denseFLMM dplyr GGIR ineq kableExtra minpack_lm refund survival tidyr xlsx zoo]; };
   mMPA = derive2 { name="mMPA"; version="1.2.0"; sha256="0g4zjknz52fpk7f436j95aw93aa8q2jwcrb1pqkm294kr276nnd9"; depends=[]; };
   mRMRe = derive2 { name="mRMRe"; version="2.1.2.1"; sha256="1nbz2rq6fzzy01vhizpszw47c8yha1rvks6hf5dh0dx4h8p3jg6m"; depends=[igraph survival]; };
@@ -13089,10 +13306,10 @@ in with self; {
   madness = derive2 { name="madness"; version="0.2.8"; sha256="1a0jcvy7xq654hcjv0nsjfhwh9fgxzhk7grjy209mgzmkivdinpq"; depends=[expm Matrix matrixcalc]; };
   madr = derive2 { name="madr"; version="1.0.0"; sha256="0lzg75kphz4a0w6n0jbsq87g72jvrbkyas4j813mryq2nv4lmsl4"; depends=[]; };
   madrat = derive2 { name="madrat"; version="3.6.4"; sha256="03wkzpr0nx50li0g69fn2fznfh6nbg4sdpymsilx3387v50vc9vs"; depends=[callr digest igraph magclass Matrix pkgload renv stringi withr yaml]; };
-  madshapR = derive2 { name="madshapR"; version="1.0.3"; sha256="1dnw1mpby6kmfmya2vrsrk7lx9f1dh8sp7rwp29kjnm6j6inzm60"; depends=[bookdown crayon dplyr DT fabR forcats fs ggplot2 haven janitor knitr lifecycle lubridate readr rlang stringr tidyr tidytext]; };
+  madshapR = derive2 { name="madshapR"; version="1.1.0"; sha256="035hxkkhxi68id1f3q9qyl82kzphq9als60x7wv03gmzi6fn85zy"; depends=[bookdown crayon dplyr DT fabR forcats fs ggplot2 haven janitor knitr lifecycle lubridate readr rlang stringr tidyr tidytext]; };
   madsim = derive2 { name="madsim"; version="1.2.1"; sha256="11gfyimbz363p5xy1x6rsz5fcgzcr55myc5aaz5lazjkcnfn17aq"; depends=[]; };
   magclass = derive2 { name="magclass"; version="6.13.2"; sha256="1nv500vlmrl4d8rkmrk0fkklwigablb7ybgwr42zx50vjd9wz850"; depends=[abind data_table]; };
-  magi = derive2 { name="magi"; version="1.2.2"; sha256="0pj45j5qy3gqcl1v95cv2bmxsiimyz87wprf6g1v5sgb90fg2yjp"; depends=[BH deSolve gridBase gridExtra Rcpp RcppArmadillo roptim]; };
+  magi = derive2 { name="magi"; version="1.2.3"; sha256="047wzhqkdpjlhz7r6cks7pwvjc4bwv8hsd41zqm5gcvfhwjrnyxm"; depends=[BH deSolve gridBase gridExtra Rcpp RcppArmadillo roptim]; };
   magic = derive2 { name="magic"; version="1.6-1"; sha256="0xkrrg5qk62pfqx0avijdjaljzslpwd0hv2m52qnqwrbx5xfqyfa"; depends=[abind]; };
   magicLamp = derive2 { name="magicLamp"; version="0.1.0"; sha256="1nfcnbqd6vawz8l3vgkbhmm462xdvaa4pn6axzmz8hl05xv2k3cv"; depends=[httr tibble]; };
   magicaxis = derive2 { name="magicaxis"; version="2.4.5"; sha256="04wj0g345mlndd1s7v7klxldxlp293xdgjyrnfpzxckg59804j3d"; depends=[celestial mapproj MASS plotrix RANN sm]; };
@@ -13113,7 +13330,7 @@ in with self; {
   makeProject = derive2 { name="makeProject"; version="1.0"; sha256="09q8xa5j4s5spgzzr3y06l3xis93lqxlx0q66s2nczrhd8nrz3ca"; depends=[]; };
   makedummies = derive2 { name="makedummies"; version="1.2.1"; sha256="062rvijhy2dybpgxzp44cg46bfyb8lp9yasv3mhskhf3yg717sqp"; depends=[tibble]; };
   makeit = derive2 { name="makeit"; version="1.0.1"; sha256="1x0dwffzz1i88h9mqcigihm52fi47439jmd1v9712sf3h7hf5iiy"; depends=[]; };
-  makemyprior = derive2 { name="makemyprior"; version="1.2.0"; sha256="0a99jabji1rlpgxayxvydnvp8wbbg6fb0694xbvwyqqva18yb9m2"; depends=[ggplot2 MASS Matrix rlang shiny shinyBS shinyjs visNetwork]; };
+  makemyprior = derive2 { name="makemyprior"; version="1.2.1"; sha256="02zhgskkfr964g813rly0lym4j0msgmyggfgz6l00vcpnffqy9fq"; depends=[ggplot2 MASS Matrix rlang shiny shinyBS shinyjs visNetwork]; };
   makepipe = derive2 { name="makepipe"; version="0.2.1"; sha256="0mhabnmpvjamgam63nrjdimn94azn8crafr9jcwsr08lzlbv9kmv"; depends=[cli nomnoml R6 roxygen2]; };
   maketools = derive2 { name="maketools"; version="1.3.0"; sha256="06n14v9wrvbdplb42w7yqjjf8r995335fs2pn2b5848m0mrknsbv"; depends=[sys]; };
   makeunique = derive2 { name="makeunique"; version="1.0.0"; sha256="0pf8cl6p3q9fzj20s4gm8amw29291xf6711v0pmp0rcnwva1zav0"; depends=[]; };
@@ -13130,22 +13347,22 @@ in with self; {
   manet = derive2 { name="manet"; version="2.0"; sha256="1dnacgkdjmn7yiqk71qx5jgfipbpvqfdnrdd8wm0b9p8kgw4x7n4"; depends=[combinat igraph mclust MCMCpack]; };
   manhattanly = derive2 { name="manhattanly"; version="0.3.0"; sha256="007qvfzq8fyvnirywfpl6n1gqxxizz32z4xbgnnx7riyb7nxl1qh"; depends=[ggplot2 magrittr plotly]; };
   manhplot = derive2 { name="manhplot"; version="1.1"; sha256="17yw10gpfp6bqmilb09v61jd2amz6cv1z38si4nqnhbvmac065qd"; depends=[ggplot2 ggrepel gridExtra reshape2]; };
-  manifestoR = derive2 { name="manifestoR"; version="1.5.0"; sha256="0b4x4ampzmxcmlcyvl683rwynzwjg1cyx5zpamgy8027fh376zcp"; depends=[base64enc dplyr DT functional htmltools htmlwidgets httr jsonlite magrittr NLP psych purrr readr tibble tidyselect tm zoo]; };
+  manifestoR = derive2 { name="manifestoR"; version="1.6.0"; sha256="1ghzhsd7apib775h2nmv33mvwg5yqwp5w9bn7alppgfa16yznf31"; depends=[base64enc dplyr DT functional htmltools htmlwidgets httr jsonlite magrittr NLP psych purrr readr tibble tidyselect tm zoo]; };
   manifold = derive2 { name="manifold"; version="0.1.1"; sha256="1amvx0f0q4s2qgn7q23gp967bcm0djbnb8bmf1bf3fm3iyn432hv"; depends=[Matrix Rcpp RcppArmadillo]; };
   manipulate = derive2 { name="manipulate"; version="1.0.1"; sha256="1klknqdfppi5lf6zbda3r2aqzsghabcsaxmvd3vw3cy3aa984zky"; depends=[]; };
   manipulateWidget = derive2 { name="manipulateWidget"; version="0.11.1"; sha256="1dpgzmiv08afm57yxr017b014lfn9h3pa4w65prk5k3dgn6p4wsv"; depends=[base64enc codetools htmltools htmlwidgets knitr miniUI shiny shinyjs webshot]; };
   manta = derive2 { name="manta"; version="1.0.1"; sha256="1qlmpg4afplhi4m3maws0njx11am28f7hry9rb3k9mxlvss6cr66"; depends=[]; };
-  manydata = derive2 { name="manydata"; version="0.9.2"; sha256="1pd8fdj2sccqakyf2d2mdnkbsdx5pjb3pr81y7hxy557fahhxbff"; depends=[cli dplyr ggplot2 httr jsonlite messydates plyr purrr remotes stringr tidyr usethis zoo]; };
+  manydata = derive2 { name="manydata"; version="0.9.3"; sha256="18v7sm5i3xnffcv3p17xb5hx0dnlyarahv6b7j0208d7hsjg2pf0"; depends=[cli dplyr ggplot2 httr jsonlite messydates plyr purrr remotes stringr tidyr usethis zoo]; };
   manymodelr = derive2 { name="manymodelr"; version="0.3.7"; sha256="0kc4y9i21qkcg0pkwlas2mm06s54s70w5ybw4215qjwiy6xax268"; depends=[caret dplyr e1071 ggplot2 lme4 Metrics]; };
-  manymome = derive2 { name="manymome"; version="0.1.14"; sha256="0w8gf920qj46y62ga017rk0f4306jasqprplfn7j3vdnx8l9qmdr"; depends=[boot ggplot2 igraph lavaan MASS pbapply]; };
+  manymome = derive2 { name="manymome"; version="0.2.2"; sha256="1j7rvk3xdxxji7l1jqi0fgv9x9vwrymdmfpj7plg8vc53apnfy5f"; depends=[boot ggplot2 igraph lavaan MASS pbapply]; };
   manymome_table = derive2 { name="manymome.table"; version="0.3.0"; sha256="01znxw82k2ycp8cncbayn0c4jhkydd5nvydfyxv1bwgixdkad1ff"; depends=[flextable manymome]; };
   manynet = derive2 { name="manynet"; version="0.4.4"; sha256="1k17yikr7p6pvx5sm3k4xr0954r0a9sllrwywbkwz11w5703sk3y"; depends=[dplyr ggplot2 ggraph igraph network pillar tidygraph]; };
   maotai = derive2 { name="maotai"; version="0.2.5"; sha256="1axr16xs366011vkx3j8mljq98923kscz8wrl9m1zprw3pqif6jr"; depends=[cluster dbscan fastcluster labdsv Matrix pracma RANN Rcpp RcppArmadillo RcppDist Rdpack RSpectra Rtsne shapes]; };
-  mapSpain = derive2 { name="mapSpain"; version="0.9.0"; sha256="15ww2b9n3vd41dm6iz13ir2z477smabyc7417rvbnjr09jr7h37w"; depends=[countrycode giscoR rappdirs sf]; };
+  mapSpain = derive2 { name="mapSpain"; version="0.9.1"; sha256="144i03v3sjq1fsywhc2dgkm7p5gg019gvd5milga6hiirnhm3k5d"; depends=[countrycode giscoR rappdirs sf]; };
   mapStats = derive2 { name="mapStats"; version="3.1"; sha256="1jf5dgf9i9339xzk9fbipy9b2fkwdv6sy1ciif921snwj176zck9"; depends=[classInt colorspace Hmisc lattice RColorBrewer reshape2 sf sp survey ttutils]; };
-  mapaccuracy = derive2 { name="mapaccuracy"; version="0.1.1"; sha256="0bw69w2875z8s6ywifyx5yphzfrcv2nfbqbz1hy90x93iw6v5y0n"; depends=[assertthat]; };
+  mapaccuracy = derive2 { name="mapaccuracy"; version="0.1.2"; sha256="1bz1c346y70wzv900lvf63j59f3sk9fdf1nh8p81fz4f5dbck1qp"; depends=[]; };
   mapbayr = derive2 { name="mapbayr"; version="0.10.0"; sha256="07bl6vp86c7ydwln130d2ccvizwjvd7zq1l4ifl1nspbh6p0i359"; depends=[dplyr ggplot2 magrittr mrgsolve progress purrr rlang stringr tidyr]; };
-  mapboxapi = derive2 { name="mapboxapi"; version="0.5.3"; sha256="0xb75j7k2pl0c726wamv15ask5xqajmwxf0b0ssy6y1xjb46frar"; depends=[aws_s3 curl dplyr geojsonsf httr jpeg jsonlite leaflet magick png protolite purrr raster rlang sf slippymath stringi tidyr units]; };
+  mapboxapi = derive2 { name="mapboxapi"; version="0.6"; sha256="1nvs5ikg3vrcvbidpl50gp84vjig7j3k1wjkhqk6jpr4dspi4p60"; depends=[aws_s3 curl dplyr geojsonsf htmltools httr jpeg jsonlite leaflet magick png protolite purrr raster rlang sf slippymath stringi tidyr units]; };
   mapboxer = derive2 { name="mapboxer"; version="0.4.0"; sha256="0f873js87dgk8nqnhpxh88svvsbnk81vkm7gycb62mkr4xqsgqs7"; depends=[geojsonsf htmltools htmlwidgets magrittr purrr yaml]; };
   mapcan = derive2 { name="mapcan"; version="0.0.1"; sha256="1a4135wc1h4nzcv6xq0bg75i744wyq8p7q0ix7y2x2gb6s35w46k"; depends=[dplyr ggplot2 magrittr]; };
   mapchina = derive2 { name="mapchina"; version="0.1.0"; sha256="0f6ayq4izqxcj0hi2vfg0pc239hxgg7abb5476v5mfjjyi156mni"; depends=[sf]; };
@@ -13156,8 +13373,9 @@ in with self; {
   mapi = derive2 { name="mapi"; version="1.0.5"; sha256="1yljvapzkb43i2sbqsmn5aqp95hm8gjkz8m41x1chwyfddrzjsbw"; depends=[data_table pbapply Rcpp sf]; };
   mapiso = derive2 { name="mapiso"; version="0.3.0"; sha256="11mrvk45znna6irsd8mmkk8h63dm6wjlpsy0h8p3bldvk5mc8fi9"; depends=[isoband sf]; };
   maplegend = derive2 { name="maplegend"; version="0.1.0"; sha256="1jngbampps5gn3xdy292466qq4nhx0k7c08mams84xmmb9jbq0h0"; depends=[]; };
-  mapme_biodiversity = derive2 { name="mapme.biodiversity"; version="0.5.0"; sha256="0md2glm5zqqsf0vqxj14ln2l7cxx5cfg3v7kkikdx1nn38l6ixaz"; depends=[curl dplyr furrr httr magrittr progressr purrr R_utils rvest sf stringr terra tibble tidyr tidyselect]; };
-  mapmisc = derive2 { name="mapmisc"; version="2.0.6"; sha256="1s8sp1yrdx43jwzxcqvkj74h33xrb9wh70gkgcs608z7l4rliam3"; depends=[geosphere terra]; };
+  mapme_biodiversity = derive2 { name="mapme.biodiversity"; version="0.7.0"; sha256="093ffdmnfgfjs4ja07xp9knalnqx9il08vbkiq8i0y21g3q11k62"; depends=[dplyr furrr httr magrittr purrr R_utils sf terra tibble tidyr]; };
+  mapmisc = derive2 { name="mapmisc"; version="2.1.0"; sha256="1syznp0kh4alv8p4sc6zmphkpqpk9si3sddfizqlprp3ypm5gi85"; depends=[geosphere terra]; };
+  mapmixture = derive2 { name="mapmixture"; version="1.1.3"; sha256="0ndr0ds8fjlrx54042ch9ks07b6983fnqj84zih57aa4xk8y8sng"; depends=[bslib colourpicker dplyr ggplot2 ggspatial htmltools purrr rlang rnaturalearthdata sf shiny shinyFeedback shinyjs shinyWidgets stringr tidyr waiter]; };
   mapping = derive2 { name="mapping"; version="1.4.1"; sha256="0c1kghgzkbicy35dgwbyw6085glagdnck4dkcj7z89i3mgrjm17s"; depends=[cartography curl dplyr geojsonio ggplot2 htmltools httr jsonlite leaflet leafpop leafsync mapview s2 sf stringi stringr tmap tmaptools viridisLite]; };
   mappings = derive2 { name="mappings"; version="0.1"; sha256="1f7m6nbdzdcxsk4m8rh8fzrck8pzxl2lgfz5c6wramwmp8rxczzb"; depends=[]; };
   mapplots = derive2 { name="mapplots"; version="1.5.2"; sha256="064a3jc7p4wh5x8rxmjap6kqkg19zfkq8ac820d9sm35d0fia3pd"; depends=[]; };
@@ -13170,26 +13388,26 @@ in with self; {
   mapsRinteractive = derive2 { name="mapsRinteractive"; version="2.0.1"; sha256="0v2ijx54nyfgnxh77d47lsflvqfcbdzza3finfx3z1dwl6sdd056"; depends=[gstat terra]; };
   mapsapi = derive2 { name="mapsapi"; version="0.5.4"; sha256="0gk5k0zf3yzq7rzw17j7ph3fzpf6q6j777ri242wmi75xzkamrsc"; depends=[bitops httr RgoogleMaps sf stars xml2]; };
   mapscanner = derive2 { name="mapscanner"; version="0.0.6"; sha256="017m33v2523rjmspfbzq1xnb3clzmbn4p1qqzp480j71wy5c1dry"; depends=[cli curl fs glue magick magrittr memoise pdftools png purrr raster Rcpp reproj RNiftyReg sf slippymath tibble]; };
-  mapsf = derive2 { name="mapsf"; version="0.9.0"; sha256="16ynjfydwipg7x1l9l5hkqvrqz2a4yxs756il43hhgpz9i13pnqv"; depends=[classInt maplegend s2 sf]; };
+  mapsf = derive2 { name="mapsf"; version="0.10.1"; sha256="134hmnlbc7pmazkfm3jmisklgpnxvjhdwfandxclxy4pfrp92ixq"; depends=[classInt maplegend s2 sf]; };
   maptiles = derive2 { name="maptiles"; version="0.7.0"; sha256="064lxy2qzawbbdv69zpzkn2nbchvlcw4zjpxl5h44qrriivd60hh"; depends=[curl digest png sf slippymath terra]; };
   maptpx = derive2 { name="maptpx"; version="1.9-7"; sha256="0f85i3vwr5rvz261z6j7x15gsahxrq4qqddfb0qyhypgihvwh857"; depends=[slam]; };
   maptree = derive2 { name="maptree"; version="1.4-8"; sha256="1x35nk4fi2b62krcvcv187n5sbqrgvw4pbm7r19ps3jlanpi5ksm"; depends=[cluster rpart]; };
   mapview = derive2 { name="mapview"; version="2.11.2"; sha256="1c18fc8r5anc9wn541dzhchys2pmxc7pp797bq065brs5drpyka1"; depends=[base64enc htmltools htmlwidgets lattice leafem leaflet leafpop png raster satellite scales servr sf sp]; };
-  maq = derive2 { name="maq"; version="0.3.1"; sha256="1b835hw79kkmvmpln7mszczdhhqh5q371f2jviqabjl58b6wcsyd"; depends=[Rcpp]; };
+  maq = derive2 { name="maq"; version="0.4.0"; sha256="1rfwnwx9qglr49ymhhpglywrc6w2ilryiwxykxy0rdawml4zcw3j"; depends=[Rcpp]; };
   mar1s = derive2 { name="mar1s"; version="2.1.1"; sha256="1ljkvgxrramfx1rnp2rg6516mjxaa6s96amrnmqymnyjz7wlf37l"; depends=[cmrutils fda zoo]; };
   maraca = derive2 { name="maraca"; version="0.7"; sha256="0sy5vmgkbcr1gi7l0hkdzdmibkgs1yvbgj14sfi4jc8zabwbpkz2"; depends=[checkmate dplyr ggplot2 hce lifecycle patchwork tidyr]; };
-  marble = derive2 { name="marble"; version="0.0.2"; sha256="15m65ikk52khjrwgy2xl8pj671rf3yfqjghx2zdcs43afsyfisa0"; depends=[Rcpp RcppArmadillo]; };
+  marble = derive2 { name="marble"; version="0.0.3"; sha256="1jrk7dvb6ni950skdfqav40wr9s942w6fiysg8y1mk6q69aihzf6"; depends=[Rcpp RcppArmadillo]; };
   march = derive2 { name="march"; version="3.3.2"; sha256="1qdjajb5mkq2r7p224kbxhf01s75hry5c5hx1cnsb48dfzd2s5xg"; depends=[]; };
   marcher = derive2 { name="marcher"; version="0.0-2"; sha256="0hcxbfrwniih4kvx5sxhlffz1pc87kf52v8hvaf193rhhdykis5q"; depends=[magrittr Matrix minpack_lm mvtnorm numDeriv plyr RColorBrewer scales zoo]; };
   marelac = derive2 { name="marelac"; version="2.1.11"; sha256="0wl1z4sq61qq8d3szcd772rw35mlcrf7d9g8q9dr0znwvfj9gqdh"; depends=[seacarb shape]; };
   marg = derive2 { name="marg"; version="1.2-2.1"; sha256="1r6rl7dhvm8dghm7pm4hfw3924qja65hczl6d47v9ixnv4rxyzr9"; depends=[statmod survival]; };
   margaret = derive2 { name="margaret"; version="0.1.4"; sha256="1hyflwfw9pphcbxnx9wf0alqi17s5k3j7wvh95ka2h9fvyrpj11r"; depends=[devtools dplyr httr igraph lubridate purrr readr rlang rvest scholar stringi stringr tibble tidyr tidytext tidyverse treemapify usethis widyr writexl]; };
-  marginaleffects = derive2 { name="marginaleffects"; version="0.18.0"; sha256="1q8jlhwka0ji70agj98c3g01894xnl5cj9khhr1imk3ljx72fxrp"; depends=[checkmate data_table generics insight Rcpp RcppEigen rlang]; };
-  marginalizedRisk = derive2 { name="marginalizedRisk"; version="2024.1-27"; sha256="0lsa4q0jmc9ldjsfpbw7kxg2wd0gca9w2299j38md3x5lb2k87g5"; depends=[]; };
-  margins = derive2 { name="margins"; version="0.3.26.1"; sha256="00n3ldhln4dk8r8dck5wvv39hdgb3nynqpp192lhf74x6zs1h4j4"; depends=[data_table MASS prediction]; };
+  marginaleffects = derive2 { name="marginaleffects"; version="0.21.0"; sha256="1zq9xkaacgy3d3rsbhdjaprd352mcpbfwn9jazijx6csjs5pxqmp"; depends=[checkmate data_table generics insight Rcpp RcppEigen rlang]; };
+  marginalizedRisk = derive2 { name="marginalizedRisk"; version="2024.5-17"; sha256="1f0qql4nvd5bkvkx0wn8w7fjzplabm5is8ms8rl6bpayfhaa6zai"; depends=[]; };
+  margins = derive2 { name="margins"; version="0.3.27"; sha256="1jlxg8pwmyd4nzmczp2909rjd68nz7vl8m2g35jywh05b85b0slk"; depends=[data_table MASS prediction]; };
   marima = derive2 { name="marima"; version="2.2"; sha256="03nvh93r4052li84yjqzc106gwh1542q9s192s980gs6sgy8scm6"; depends=[]; };
-  mark = derive2 { name="mark"; version="0.7.0"; sha256="0zbzp4y7gh6bq20ymfpmfihxn0z8gl0xn5fcshikh59ikqrm0mff"; depends=[cli fs fuj magrittr rlang]; };
-  markdown = derive2 { name="markdown"; version="1.12"; sha256="182b290dj0c6m4qf4azyih521ski0ssk1awzmbzfbqlcy3lf7p3x"; depends=[commonmark xfun]; };
+  mark = derive2 { name="mark"; version="0.8.0"; sha256="16gzi253s6mdqr5axhp1fk0vcqc2sslnb8nmwjxarrcgh8d22ba3"; depends=[cli fs fuj magrittr rlang]; };
+  markdown = derive2 { name="markdown"; version="1.13"; sha256="1nfgngskgb4r34r3cnkm0gn7p1axpcb7rpyi0jxg4nygfk322m1q"; depends=[commonmark xfun]; };
   markdownInput = derive2 { name="markdownInput"; version="0.1.2"; sha256="1qxil2liikbbn6w8niyc03fwqvwvdv6wiy98ip8j77729i7g2hln"; depends=[markdown shiny shinyAce]; };
   marked = derive2 { name="marked"; version="1.2.8"; sha256="1i5vay60g6ddqnnqdj89yhsqxdcw9yzqpwq9gv7qc1psb8f77052"; depends=[bookdown coda data_table expm kableExtra knitr lme4 Matrix numDeriv optimx R2admb Rcpp TMB truncnorm]; };
   markerpen = derive2 { name="markerpen"; version="0.1.1"; sha256="0i9md9vbqkxibjkn37givxzq8mq0232cvv2fyz6g8cj6flxm6vzr"; depends=[Rcpp RcppEigen RSpectra]; };
@@ -13203,17 +13421,17 @@ in with self; {
   marmap = derive2 { name="marmap"; version="1.0.10"; sha256="0zmik6hpc44syknn7k9pbmy01jpnlp4sc9n3rhslrpnks39l0hvq"; depends=[adehabitatMA DBI gdistance geosphere ggplot2 ncdf4 plotrix raster reshape2 RSQLite shape sp]; };
   marp = derive2 { name="marp"; version="0.1.0"; sha256="0vywqsvmhghldrpnh2dpkgz41r7q463whfhgrn38pg8jnyhliiwi"; depends=[gtools statmod VGAM]; };
   marqLevAlg = derive2 { name="marqLevAlg"; version="2.0.8"; sha256="172zr3jg48wr631l61811vd04llm3chirdhbp2mc8zryn3bbcd6n"; depends=[doParallel foreach]; };
+  marquee = derive2 { name="marquee"; version="0.1.0"; sha256="150rnn4pk8wc5h1gpb7grsyxxbf3xjjain03xfc0hnx8s6c3fjzg"; depends=[cli cpp11 glue jpeg png rlang systemfonts textshaping vctrs]; };
   marradistrees = derive2 { name="marradistrees"; version="1.0"; sha256="1pl7mw354wczyplylk0w6k026ngf741dn4lq7cd87hnjcfifn86i"; depends=[]; };
-  mas = derive2 { name="mas"; version="0.2.1"; sha256="1c62fa1r36nymf2s6lxa6zg0j9zl527szn1gh3m0mcs1nx36lal5"; depends=[Rcpp RcppEigen truncdist]; };
+  mas = derive2 { name="mas"; version="0.3"; sha256="1d6ca7dj8bxrq0ka552sjb38j004bl1lzhfm14syr4h4wp08028m"; depends=[Rcpp RcppEigen truncdist]; };
   mase = derive2 { name="mase"; version="0.1.5.2"; sha256="0fvbsw6y5whysm70wr74pzj5knnw91gzpihi9snq69q1axg7yc17"; depends=[boot dplyr ellipsis glmnet Rcpp RcppEigen Rdpack rpms survey tidyr]; };
   mashr = derive2 { name="mashr"; version="0.2.79"; sha256="11pqhnzp1svhs565hm0v15ip1pgnl609ssm4d0qzl8vm4xq3d2qm"; depends=[abind ashr assertthat mvtnorm plyr Rcpp RcppArmadillo RcppGSL rmeta softImpute]; };
   maskRangeR = derive2 { name="maskRangeR"; version="1.1"; sha256="1pdj0jdxrqss6hp20163fh1ywdd6wmwjl4s8gnpd3m9d1j955gr3"; depends=[dplyr e1071 lubridate magrittr raster sp]; };
   masscor = derive2 { name="masscor"; version="0.0.7.1"; sha256="1153gx648csmzc2znf7l84f134qzp238hqj2s60r9najk1pczgf6"; depends=[metRology]; };
   massiveGST = derive2 { name="massiveGST"; version="1.2.3"; sha256="13qhn15gr4fvri1p843zz7y1q6701qmkxq5lysydfmdaxp5hsaxd"; depends=[formattable igraph msigdbr visNetwork WriteXLS]; };
-  mastif = derive2 { name="mastif"; version="2.2"; sha256="19i6hpwc6shyz9gr6xakg9s79crv1zwn8sqraf9k62scc22dl1p9"; depends=[cluster corrplot RANN Rcpp RcppArmadillo repmis robustbase stringi stringr xtable]; };
+  mastif = derive2 { name="mastif"; version="2.3"; sha256="04m2cpcq1n27zmckj6hz6yvzcs6ray53z4nwab3vza9pjaa0m6ab"; depends=[cluster corrplot RANN Rcpp RcppArmadillo repmis robustbase stringi stringr xtable]; };
   matRiks = derive2 { name="matRiks"; version="0.1.3"; sha256="0npl1dkjc4q4rgfhqd80xg7v751dkxbfc3rnj93rw3z2mdwkk50i"; depends=[DescTools]; };
   matahari = derive2 { name="matahari"; version="0.1.3"; sha256="03mhn4qh1vcz2hr0mxp6gijwgrzvbpfb8dq7lqhchbk5gq5g3fnh"; depends=[clipr jsonlite purrr readr rlang rstudioapi tibble]; };
-  match2C = derive2 { name="match2C"; version="1.2.4"; sha256="05g0g471dfxrfxq9a5l5zgj16m4kh39wfihjj8fdd9b7qxji7ps8"; depends=[ggplot2 mvnfast rcbalance Rcpp]; };
   matchFeat = derive2 { name="matchFeat"; version="1.0"; sha256="0jh484rr71b7887igfslbg7xbr661l9c34d650xd7ajx4gfpn540"; depends=[clue foreach]; };
   matchMulti = derive2 { name="matchMulti"; version="1.1.12"; sha256="1mkp4pkqhfrv3a0js8yc25gd2ifk8wwyrsskwggyxpqv6pnmpapw"; depends=[coin dplyr magrittr MASS mvtnorm plyr rcbsubset rlang sandwich weights]; };
   matchingMarkets = derive2 { name="matchingMarkets"; version="1.0-4"; sha256="0rrwzbzb8nmqriw0kvk07ypmvbxg429xfv79a60s79qqffc1vryd"; depends=[lattice lpSolve partitions Rcpp RcppArmadillo RcppProgress rJava]; };
@@ -13238,7 +13456,7 @@ in with self; {
   matrixLaplacian = derive2 { name="matrixLaplacian"; version="1.0"; sha256="1ixqdv3sz3sc79wn3vqhlq79j7x7cvl878m5hgvbcg6klfvlmmci"; depends=[scatterplot3d]; };
   matrixNormal = derive2 { name="matrixNormal"; version="0.1.1"; sha256="0l89s33sjxjb7dyzfny6v7cjw8qmlps4z1bjmlzvcka4qbn6kc2z"; depends=[mvtnorm]; };
   matrixProfile = derive2 { name="matrixProfile"; version="0.5.0"; sha256="0nd54k878xf7hzwxawh03c3na4jfvb68afarkwrmmffjlp3i8a9g"; depends=[fftw signal TTR zoo]; };
-  matrixStats = derive2 { name="matrixStats"; version="1.2.0"; sha256="0ws5lmzqm42vrn5791l21zr05l78x0xi6b89jw0gi0vjb4pc20z4"; depends=[]; };
+  matrixStats = derive2 { name="matrixStats"; version="1.3.0"; sha256="0ni4jgw3jfbwakzrcz6jcjr1zsnaq924jz2a9d8kq92vv43ycgj1"; depends=[]; };
   matrixStrucTest = derive2 { name="matrixStrucTest"; version="1.0.0"; sha256="06la9xmpi1viyjml4m1akbna3lwkz5lnq95v1nnf73i9zpfwz03k"; depends=[]; };
   matrixTests = derive2 { name="matrixTests"; version="0.2.3"; sha256="0d7i00cxzszfdnjm8q5b72ildic8nig6fbw7rba6acdnllpp7sza"; depends=[matrixStats]; };
   matrixcalc = derive2 { name="matrixcalc"; version="1.0-6"; sha256="09pk0ym6qzribxc6v18cpb6478i4r4kzxpkljjbb3n323zqx5iqb"; depends=[]; };
@@ -13251,6 +13469,7 @@ in with self; {
   matsindf = derive2 { name="matsindf"; version="0.4.8"; sha256="0jvgf87zrd1mrs3rrk4g1mfmf5ja1ww0pqf5cjvdw2id9vvc11jq"; depends=[assertthat dplyr lifecycle magrittr matsbyname purrr rlang tibble tidyr]; };
   matuR = derive2 { name="matuR"; version="0.0.1.0"; sha256="01nxs4czzs1kcxk63nwr2gnvffmlnx3yfllrhi8khdkj498s6sx1"; depends=[dplyr ggplot2 ggrepel lubridate magrittr tidyr]; };
   mau = derive2 { name="mau"; version="0.1.2"; sha256="1wgiai8f1kbjh9hfwv4m0kavd44ib5xb33p8m16zpawnw14m7sj5"; depends=[data_table ggplot2 gtools igraph RColorBrewer Rdpack stringr]; };
+  mauricer = derive2 { name="mauricer"; version="2.5.4"; sha256="0v0wwyfq3zj6p1w6qx6jmqm4cr5jg6l3caq8ycxbylqcmrqqp6ij"; depends=[beastier stringr]; };
   maxLik = derive2 { name="maxLik"; version="1.5-2.1"; sha256="0pcjhf8r7xz93qp4phs6l4i56y30ksivgv5ysnjh6khbdmicfm6h"; depends=[generics miscTools sandwich]; };
   maxcombo = derive2 { name="maxcombo"; version="1.0"; sha256="1hwv38a07ry5fv53r2vizifj83xf98znix8nx4zshqyk38vblgp5"; depends=[dplyr magrittr MCMCpack mstate mvtnorm purrr rlang survival]; };
   maximin = derive2 { name="maximin"; version="1.0-5"; sha256="1nk2qdj9kap16fakwzvswzhc3id7p06xhw48j8nnz5ffg79ai604"; depends=[plgp]; };
@@ -13272,20 +13491,20 @@ in with self; {
   mbir = derive2 { name="mbir"; version="1.3.5"; sha256="10sd5gk2k94cmi49nbpywqvh9bxj9q3psa3d00zmw1a7d6c0jjpd"; depends=[effsize psych]; };
   mblm = derive2 { name="mblm"; version="0.12.1"; sha256="1fipb3bryaimr30lcxsxrn0ymv24z39swca7s4z7p9xcfg3ban1b"; depends=[]; };
   mbmixture = derive2 { name="mbmixture"; version="0.4"; sha256="0g74jzhdf8grrp7pipj1m6hvyv4akycabm0ingy505a5a546ddzg"; depends=[numDeriv]; };
-  mboost = derive2 { name="mboost"; version="2.9-9"; sha256="1apcd90xsr9hl5f1szhyibdx61zi4p6s9bvag8bdk2yj4kqq6fmz"; depends=[lattice Matrix nnls partykit quadprog stabs survival]; };
+  mboost = derive2 { name="mboost"; version="2.9-10"; sha256="13dhs3q9gf5n6kwf6j3b29gvwxnkycfkpsw5fr4lnhllm9zs84z7"; depends=[lattice Matrix nnls partykit quadprog stabs survival]; };
   mbr = derive2 { name="mbr"; version="0.0.1"; sha256="08534d0ssj5zli7880a2wzl46ydf87gn5xlv6xp0iph71wlpc52y"; depends=[data_table dplR MASS Matrix Rfast]; };
   mbrdr = derive2 { name="mbrdr"; version="1.1.1"; sha256="1ck0l2zp10xlg2d99glb76fxhc1r21aknk8x8452v25gpaqvir4c"; depends=[]; };
   mbreaks = derive2 { name="mbreaks"; version="1.0.0"; sha256="1vnrn7f19j52jn707ps9mjz5p0rgcm7mmwbq585hf4c4mbyglrbz"; depends=[ggplot2]; };
   mbrglm = derive2 { name="mbrglm"; version="0.0.1"; sha256="0yxq1xk8qy5hpiqqldyrs78lp4ggdp5lj2lmh8rqq1xvsfr6nrh4"; depends=[enrichwith nleqslv]; };
   mbsts = derive2 { name="mbsts"; version="3.0"; sha256="0qgb74ah1jq6rla2qkid1i75xjp2l9qxkpbbqilhzqg64rkcn9ha"; depends=[BBmisc ggplot2 KFAS MASS Matrix matrixStats MCMCpack pscl reshape2]; };
   mc_heterogeneity = derive2 { name="mc.heterogeneity"; version="0.1.2"; sha256="1nsqbc4cqyg6g3s6ish3fbhqygy1kay68smbv0rhivp0x0dv7can"; depends=[boot_heterogeneity metafor]; };
-  mc2d = derive2 { name="mc2d"; version="0.2.0"; sha256="07h2gvmdfqjydikxksbqhikihg46fv6xyn8vk5kyni6x75gp9abk"; depends=[ggplot2 ggpubr mvtnorm]; };
+  mc2d = derive2 { name="mc2d"; version="0.2.1"; sha256="06kva55vm2cldd95caw5hfx0xjadyhgkqi0y9pyz7hs3zg0zq9xy"; depends=[ggplot2 ggpubr mvtnorm]; };
   mcMST = derive2 { name="mcMST"; version="1.1.1"; sha256="058da7hhcizh902pj99wmf5mhfd6fhpjvf6cprbsl0fx19x9l14w"; depends=[BBmisc checkmate ecr ggplot2 grapherator gtools igraph qgraph vegan viridis]; };
   mcStats = derive2 { name="mcStats"; version="0.1.2"; sha256="1r8dxdfcvznl2968xr6fbany1rh7wq5z1p7fhdf5g4b5l28j8pf9"; depends=[dplyr ggplot2 ggthemes gridExtra magrittr rlang tidyr]; };
   mcauchyd = derive2 { name="mcauchyd"; version="1.2.0"; sha256="18615ac3z8vgkqr0xslaama9sbvn7m4p116vv8l2wz65f623l0d4"; depends=[lifecycle MASS rgl]; };
   mcb = derive2 { name="mcb"; version="0.1.15"; sha256="0k986m2vyvfqxw3jmlyvf6r5bq68y92fymy03lffq5lmiqhypixj"; depends=[ggplot2 glmnet lars leaps MASS ncvreg reshape2 smoothmest]; };
   mcbiopi = derive2 { name="mcbiopi"; version="1.1.6"; sha256="1caw2sy15hw2zw0bdynwnsa7hn4rly34hlxp06nwm5lssz8l2597"; depends=[]; };
-  mcboost = derive2 { name="mcboost"; version="0.4.2"; sha256="0748av1dy6fag33slhi24km17qpi7y6cydl1vmdhxz96902lcr5r"; depends=[backports checkmate data_table glmnet mlr3 mlr3misc mlr3pipelines R6 rmarkdown rpart]; };
+  mcboost = derive2 { name="mcboost"; version="0.4.3"; sha256="17zflvafz6w91lxbr8saasxp9bn18bla1jqg53fka2k8fnziz4g8"; depends=[backports checkmate data_table glmnet mlr3 mlr3misc mlr3pipelines R6 rmarkdown rpart]; };
   mcca = derive2 { name="mcca"; version="0.7.0"; sha256="01nm0plgkik241qhd06v1vs84lf7agc0vkxa27cpr5qlfl4cm4zb"; depends=[caret e1071 MASS nnet pROC rgl rpart]; };
   mccca = derive2 { name="mccca"; version="1.1.0.1"; sha256="1bmcncm53pbmc9dv61rwmp8xk9zf70ihw2gg6d0lmd1sgmf5i4hz"; depends=[ggplot2 magic RColorBrewer Rcpp RcppArmadillo stringr wordcloud]; };
   mccf1 = derive2 { name="mccf1"; version="1.1"; sha256="023pvjfc1iv7hac3gz5rakg6ljs92j0qfm4givad5iiwv5n4k3zr"; depends=[ggplot2 ROCR]; };
@@ -13295,11 +13514,11 @@ in with self; {
   mcemGLM = derive2 { name="mcemGLM"; version="1.1.3"; sha256="0159zak179ziax5n1mmncidg50cjiqzfyc8j96585csah1dzx01d"; depends=[Rcpp RcppArmadillo trust]; };
   mcen = derive2 { name="mcen"; version="1.2.1"; sha256="16f7860h6hbpnv1drk793mz3vwm9q4ar6xkag05z0p22p69mm4qy"; depends=[faraway flexclust glmnet Matrix]; };
   mcga = derive2 { name="mcga"; version="3.0.7"; sha256="16vy5iy4k5i3mqchrrh8r229hyhwq4n2clvvp2mpz1iasvq7qz4f"; depends=[GA Rcpp]; };
-  mcgf = derive2 { name="mcgf"; version="1.0.1"; sha256="0yk0981qkd0irgifqh9i6pkca4yp7hn35ckyiicq3khyyy3hmbw7"; depends=[MASS sp]; };
+  mcgf = derive2 { name="mcgf"; version="1.1.0"; sha256="0lgvd9ibyg2rbccz9q5mmh0d85bli8qi7jwwh5kh5bbp754vss1f"; depends=[MASS sp]; };
   mcgibbsit = derive2 { name="mcgibbsit"; version="1.2.2"; sha256="1ykg2g57zxaw2z9f7sgyd6kc6wx1lmad13asiy7q79ydzw8x8smw"; depends=[coda]; };
   mclm = derive2 { name="mclm"; version="0.2.7"; sha256="1vpg6xsa8im60ld5mlm6yhf2prs6kmwn0sn12b9g8v27dgw3h0iq"; depends=[ca crayon dplyr Rcpp readr stringi stringr tibble tm xml2 yaml]; };
   mclogit = derive2 { name="mclogit"; version="0.9.6"; sha256="0sbglgak6jhhpx65jnj59hbpvzs8qjsdjc4w02z0m5j9hrnmzp4s"; depends=[Matrix memisc]; };
-  mclust = derive2 { name="mclust"; version="6.1"; sha256="0mchdxkc3y0v6dw8fzjnlqd6f3zrafm3xf1c53s6ps529b66kx2x"; depends=[]; };
+  mclust = derive2 { name="mclust"; version="6.1.1"; sha256="0xb726ssy224mzfg37nq5hffkdwi2hwjp1y9gwngk9vfbs703myx"; depends=[]; };
   mclustAddons = derive2 { name="mclustAddons"; version="0.8"; sha256="12wlj1rl5d384fydk27rpm62ghmwv3iax4nfsrcpczxrfk8zshc9"; depends=[foreach iterators mclust Rcpp RcppArmadillo]; };
   mclustcomp = derive2 { name="mclustcomp"; version="0.3.3"; sha256="1kxrms77m7n9lv32771zvwg82xqh5kx8al6f0bknsj8idq8aqbh3"; depends=[Rcpp RcppArmadillo Rdpack]; };
   mcmc = derive2 { name="mcmc"; version="0.9-8"; sha256="19vfh868lr4a491gc2x2b2xs83gldw294zbl4bqsgs2q9c6l81ka"; depends=[]; };
@@ -13318,8 +13537,10 @@ in with self; {
   mcparallelDo = derive2 { name="mcparallelDo"; version="1.1.0"; sha256="1ivh0d4f7ks6xwcjywk62h1zhr7h5bbhzpisky7973wi4g8vipbn"; depends=[checkmate R_utils R6]; };
   mcprofile = derive2 { name="mcprofile"; version="1.0-1"; sha256="118n3pxzjm4j9y09d1n2hw7pm0b8b0m8mnm5v9kq76vignklh75l"; depends=[ggplot2 mvtnorm quadprog]; };
   mcr = derive2 { name="mcr"; version="1.3.3"; sha256="1blaswdd1754fg6xdznkqq1igj6i6x8r3r9vdn3jpfq41qba5d40"; depends=[robslopes]; };
+  mcrPioda = derive2 { name="mcrPioda"; version="1.3.3"; sha256="16n9dgmv3cjk4qy27n62n5hw43slp8hxkfdhbl60qxyrmw80lijn"; depends=[mixtools robslopes rrcov]; };
   mcradds = derive2 { name="mcradds"; version="1.1.0"; sha256="11pa8y6q20rqsflxlsnyjq79l6xbfqy1739zvnvdl024mv0jvrw7"; depends=[boot checkmate DescTools dplyr formatters ggplot2 lifecycle magrittr mcr pROC purrr rlang tibble tidyr VCA]; };
   mcreplicate = derive2 { name="mcreplicate"; version="0.1.2"; sha256="12pmfp75sc00cdrkx4xniq74qqx3y67qxwdrrbp2mf562pdn2gmn"; depends=[]; };
+  mcstatsim = derive2 { name="mcstatsim"; version="0.1.0"; sha256="13ifkqx2c9v0pvkjg0r0sy07s2q7rp7wfx4q27vx4d7f7yk6va6r"; depends=[]; };
   mctest = derive2 { name="mctest"; version="1.3.1"; sha256="1d248r9ifwl1xhvka6z69l943rvbq7s7ag6vqp9lljkcybvg75f2"; depends=[]; };
   mctq = derive2 { name="mctq"; version="0.3.2"; sha256="1qp9jmpi6pbzn8jqg0i35zznc1sawi1jnky5cdf26hlyi2bjxy48"; depends=[checkmate cli dplyr ggplot2 hms lifecycle lubridate]; };
   mcunit = derive2 { name="mcunit"; version="0.3.2"; sha256="16nnm50g87iaf058b1w5w5hphx99xplczndcbv1356f2gs2gfy6l"; depends=[Rdpack rlang simctest testthat]; };
@@ -13331,6 +13552,7 @@ in with self; {
   mda = derive2 { name="mda"; version="0.5-4"; sha256="0nd7p3yz7qdzka7jizymv5vhbhzb4v8bjpmmn5wa83vxh0l7ypzj"; depends=[class]; };
   mdatools = derive2 { name="mdatools"; version="0.14.1"; sha256="1fbjrg0xwa9bgm8gkvd2xk17xax3yzf3zjzkh7c9627v8r6gnp8j"; depends=[Matrix]; };
   mdbr = derive2 { name="mdbr"; version="0.2.1"; sha256="0mzd0qvwq3dvqdhp0dk7ad11m9bqh8jf3m7b8i6255s7c3rs3r0h"; depends=[readr]; };
+  mddmaps = derive2 { name="mddmaps"; version="1.3.0"; sha256="1yxq4mzw67wfnbhfrllxpq0warpwfqsq6lfwnpr3cwbfqbil60p0"; depends=[httr progress readr stringr terra]; };
   mde = derive2 { name="mde"; version="0.3.2"; sha256="121bzypndsx4abls1f7rjrvg98rqkb155vd5aiql8vi1lwgzy9jl"; depends=[dplyr tidyr]; };
   mded = derive2 { name="mded"; version="0.1-2"; sha256="1j8fcz5yc70p9qd9l010xj1b625scdps8z1pqh75b45p2hiqbhlc"; depends=[]; };
   mdendro = derive2 { name="mdendro"; version="2.2.1"; sha256="0am5kda7ydwiniqmypzmmqnaz4pkd9hp82vm0pdk3plak5b0dz6w"; depends=[Rcpp]; };
@@ -13354,13 +13576,14 @@ in with self; {
   measurements = derive2 { name="measurements"; version="1.5.1"; sha256="061xjwsacsk8vblva4s09xdrvd7kfgxydnpgr7imigyny01c5bh9"; depends=[]; };
   measures = derive2 { name="measures"; version="0.3"; sha256="0325hhncg9fhq28cfl1hk6rhcmzzcngsmnkmbn9ri3b4hwqlafal"; depends=[]; };
   meboot = derive2 { name="meboot"; version="1.4-9.4"; sha256="0akap3dl6nsfvh2f6d96ij6dvbblyrdnbqqh23ay8ah0r51zx9fs"; depends=[dynlm hdrcde nlme tdigest]; };
-  meconetcomp = derive2 { name="meconetcomp"; version="0.4.1"; sha256="1nq65cb8hzm0wvlp2sm3xbl2s79n7l6fklww20xzyyx0z5z7f1j6"; depends=[dplyr ggplot2 ggpubr igraph magrittr microeco R6 reshape2]; };
+  meconetcomp = derive2 { name="meconetcomp"; version="0.5.0"; sha256="0fxgm8bhjs1vn1l0vb7jx7gvg3w4k0bwng66sfp87l5b0z2j082q"; depends=[dplyr ggplot2 ggpubr igraph magrittr microeco R6 reshape2]; };
   mecor = derive2 { name="mecor"; version="1.0.0"; sha256="0jcqf6d7x16hs0mrnkawlkl9idd2g5zb6l6mqdavkdx43fhk38j4"; depends=[lme4 lmerTest numDeriv]; };
   mecoturn = derive2 { name="mecoturn"; version="0.3.0"; sha256="1qr7p50wplg3nwvaz595nxfrf5b1dc8l4y13jx65r8kvksqrl07g"; depends=[betareg ggplot2 ggpubr glmmTMB GUniFrac lmerTest magrittr microeco R6]; };
   medExtractR = derive2 { name="medExtractR"; version="0.4.1"; sha256="0dn85yj61mz62bdxxvaxads6j9qf209sypmdvb9jx83c2sc7f4g6"; depends=[stringi stringr]; };
   medScan = derive2 { name="medScan"; version="1.0.2"; sha256="17h97fnklci6prj62nzg49dcczns7s1yzi410jrdypsfhpz912kv"; depends=[fdrtool HDMT locfdr qqman qvalue]; };
   mederrRank = derive2 { name="mederrRank"; version="0.1.0"; sha256="01dv7dabp2mvn99szaf8l44gbsy7zrllcm55zy6rbd0g9989ilnl"; depends=[BB numDeriv]; };
-  medfate = derive2 { name="medfate"; version="3.2.0"; sha256="1g8911izvcicfc7jyrz5n77ra8zsmf6qj4811v3xc0pjck71a0yq"; depends=[ggplot2 meteoland Rcpp shiny]; };
+  medfate = derive2 { name="medfate"; version="4.3.1"; sha256="0gs47ms58s86nclz1p1b12xi34b4p3q5py7f5kda4pffpbd9msh0"; depends=[ggplot2 meteoland Rcpp shiny]; };
+  medfateland = derive2 { name="medfateland"; version="2.4.3"; sha256="0h24s5sg2nl83jqarb6m6sw5gi0d5x9284ysgl2p38637qrim55w"; depends=[cli dplyr ggplot2 httr jsonlite lifecycle medfate meteoland Rcpp rlang sf shiny stars terra tibble tidyr tidyterra]; };
   medflex = derive2 { name="medflex"; version="0.6-10"; sha256="0cybshbk2qvh38n9sc6qf9jwjhzs4zz31awx3bbyqfwzjgzai2dx"; depends=[boot car Matrix multcomp sandwich]; };
   mediacloudr = derive2 { name="mediacloudr"; version="0.1.0"; sha256="1r11mpz44msla71lqw45r9s8z7rwvbnqi026l0ljx6crby183h0w"; depends=[httr jsonlite rvest xml2]; };
   mediateP = derive2 { name="mediateP"; version="0.2.0"; sha256="0qmams2hdvhq7abfidblgdz44nh5ja3byn233q3k61hvz7asxmc7"; depends=[boot]; };
@@ -13370,14 +13593,15 @@ in with self; {
   medicalrisk = derive2 { name="medicalrisk"; version="1.3"; sha256="12p3mjy6lphjajxz7is04cahp0598ip9ixfkdimvw1k8n5hs9mj0"; depends=[hash plyr reshape2]; };
   medicare = derive2 { name="medicare"; version="0.2.1"; sha256="00a1gml2khzisdavnaip6ap4bw45b17nbl9cqb1mqrm4y0p9gm16"; depends=[]; };
   meditations = derive2 { name="meditations"; version="1.0.1"; sha256="0wnx3zadpngfch0sb0ifqvsmzl613639f1yazwsgvhk29mycx4ss"; depends=[]; };
-  medrxivr = derive2 { name="medrxivr"; version="0.0.5"; sha256="19gakl39n2jch84sv35jkk4g2c0k4h3ch3l3hz1w5p94mn2jlgqr"; depends=[bib2df curl data_table dplyr httr jsonlite lubridate progress purrr rlang stringr tibble vroom]; };
+  medparser = derive2 { name="medparser"; version="0.1.0"; sha256="1xgylvgjcaxw49sy65chwr56iinsmfm0bj32mw1f4ssc6l0bm2ab"; depends=[]; };
   meerva = derive2 { name="meerva"; version="0.2-2"; sha256="1q1q6ydn1zwv8vif14qs2zgijhrdrnpx1ibd5afp2lb6yn8qd61i"; depends=[dplyr ggplot2 matrixcalc mvtnorm survival tidyr]; };
   meetupapi = derive2 { name="meetupapi"; version="0.1.0"; sha256="1iaxpfzgn478np9cjwz0zalfy1p7jwabnwpfv31svw052i8bs9yl"; depends=[dplyr httr magrittr purrr]; };
-  mefa = derive2 { name="mefa"; version="3.2-8"; sha256="0agq3vk0dw7i6plz3killybsf8jb57fmlbh5zq1h8lgy1dqry55a"; depends=[]; };
-  mefa4 = derive2 { name="mefa4"; version="0.3-9"; sha256="0g46z14r7d8wkyxsp58i6007r9jljf269snrbachamy2wlmpc1g1"; depends=[Matrix]; };
+  mefa = derive2 { name="mefa"; version="3.2-9"; sha256="1rllkxp218qsa1c0aaa5zdky5bh2rzqbhdc2n14bmvv4jlgzrl8c"; depends=[]; };
+  mefa4 = derive2 { name="mefa4"; version="0.3-11"; sha256="02npawccc316vwgmk0yna7wvlxzsbdishxzmfd4wgl7g218wjk3m"; depends=[Matrix]; };
+  mefdind = derive2 { name="mefdind"; version="0.1"; sha256="1w52c5bq0jy38d8lkf9dglw3nr3c8dqvhdk4mmhc3q8r5x3a8cz0"; depends=[rvest stringr]; };
   meifly = derive2 { name="meifly"; version="0.3.1"; sha256="0pgmxa4g16zhx3jx5g56h2s1f4cr4bkz3bp7404dm2729083rvjx"; depends=[leaps MASS plyr]; };
   mekko = derive2 { name="mekko"; version="0.1.0"; sha256="09y50k4r4mnx351a5zhkqg9s2xyl3d149dhmfy2z6hzm5yg2ajyi"; depends=[ggplot2]; };
-  melt = derive2 { name="melt"; version="1.11.2"; sha256="1dkdw3pjrwpl126kvhwani5k49gljm53pfij8bvlzbl4y44fks6d"; depends=[BH checkmate dqrng Rcpp RcppEigen]; };
+  melt = derive2 { name="melt"; version="1.11.4"; sha256="19g5cd8fnvvqlvrvim47ra53svjk07cr4dmgn3h6x13wkv0grg46"; depends=[BH checkmate dqrng Rcpp RcppEigen]; };
   meltr = derive2 { name="meltr"; version="1.0.2"; sha256="1h2a09n0az9s81m9n4a0h3dckxxgb9vpj03kal29ms0zwn525xpx"; depends=[cli cpp11 R6 rlang tibble]; };
   meltt = derive2 { name="meltt"; version="0.4.3"; sha256="1j2iz05xr9ddj9pk2yw7j7kjfr9rxmxkk123c6336fqdm14wvd21"; depends=[dplyr ggplot2 leaflet plyr Rcpp RcppArmadillo reticulate shiny shinyjs tibble tidyr]; };
   mem = derive2 { name="mem"; version="2.18"; sha256="1jz2zadwm9gvlgfr1dvi8m6p3zm3bjz4n4apkbpj8g594ghcbrpx"; depends=[boot dplyr EnvStats ggplot2 mclust purrr RColorBrewer RcppRoll sm tidyr]; };
@@ -13390,7 +13614,7 @@ in with self; {
   memo = derive2 { name="memo"; version="1.1.1"; sha256="1gqdb8y2khcnd1h2906kz1k7x58lw2ri48s9glfjq6whpj6bzpdk"; depends=[digest]; };
   memochange = derive2 { name="memochange"; version="1.1.1"; sha256="144134kpchb7ps8b2g7pyga5add0iqphzcwygf11aybmbzmp90x7"; depends=[forecast fracdiff longmemo LongMemoryTS sandwich strucchange urca]; };
   memofunc = derive2 { name="memofunc"; version="1.0.2"; sha256="02y32mnwafqnsvs3vy4g8v0jmdvnx935dqavy3q1f2n8c76p0bk9"; depends=[digest magrittr uuid]; };
-  memoiR = derive2 { name="memoiR"; version="1.2-7"; sha256="132pf6phcrwkwky6pr7k5g5zbh2qx1vp420j38blilh2phvgdhl6"; depends=[bookdown distill rmarkdown rmdformats usethis]; };
+  memoiR = derive2 { name="memoiR"; version="1.2-9"; sha256="0asaw2xfnbn0g37y0h4lz223hh4xkaa6z8679mbvp4pk7p86b95s"; depends=[bookdown distill rmarkdown rmdformats usethis]; };
   memoise = derive2 { name="memoise"; version="2.0.1"; sha256="1srdzv2bp0splislrabmf1sfbqfi3hn189nq7kxhgjn8k3p38l7q"; depends=[cachem rlang]; };
   memor = derive2 { name="memor"; version="0.2.3"; sha256="1b3rjh121in7gi6khbhh2d1r0998a24ifcg6hpv8cdksl6lhm330"; depends=[knitr rmarkdown yaml]; };
   memoria = derive2 { name="memoria"; version="1.0.0"; sha256="05nx6xkgf1mkn1ajjizwp66xhn7ddbvgdnmkdbcl4s7sq456vczw"; depends=[cowplot ggplot2 HH ranger stringr tidyr viridis viridisLite zoo]; };
@@ -13406,7 +13630,7 @@ in with self; {
   messaging = derive2 { name="messaging"; version="0.1.0"; sha256="0q19cqp1zgh0yhk1ql0jqf414bhx6jwhkairq6wx2cmkli2g7k1y"; depends=[dplyr glue magrittr rlang stringr]; };
   messi = derive2 { name="messi"; version="0.1.1"; sha256="1z3fjxfmvxc9zr98zmkd84rj27iabjmw71hwqgnbjwcw5mnw2b5h"; depends=[ggplot2 MASS patchwork progress]; };
   messy_cats = derive2 { name="messy.cats"; version="1.0"; sha256="0znjp1wcrkpgm778z5iqw91bnk8vv0x04dpng8pcmh0igsmc3j68"; depends=[dplyr gt rapportools stringdist stringr varhandle]; };
-  messydates = derive2 { name="messydates"; version="0.3.5"; sha256="1iqh72avq8pvirzpg227iyhhd413g2d07pa8blkqx5d4wdqnlwna"; depends=[dplyr lubridate purrr stringr tibble]; };
+  messydates = derive2 { name="messydates"; version="0.4.1"; sha256="1zljfs9igcm95s8dmiqn18b4dhpzgrll6zcfbwwsi35kl03b7655"; depends=[dplyr lubridate purrr stringr tibble]; };
   metR = derive2 { name="metR"; version="0.15.0"; sha256="17qhx6jx8h9dxfzxgg4nx3nx4xjnjpz9r0cix0qqbgngri55lap0"; depends=[checkmate data_table digest Formula formula_tools ggplot2 gtable isoband lubridate memoise plyr purrr scales sf stringr]; };
   metRology = derive2 { name="metRology"; version="0.9-28-1"; sha256="1syjwblyd18myxrs0hx4m91fgb6zs3r4g7w701j2f2pw6j9mvz0y"; depends=[MASS numDeriv robustbase]; };
   meta = derive2 { name="meta"; version="7.0-0"; sha256="0zfyjyaabwgzlnws8ny2r7f1qr6h827kba4fddv44aqd9z4xksnq"; depends=[CompQuadForm dplyr lme4 magrittr metadat metafor purrr readr stringr xml2]; };
@@ -13424,7 +13648,7 @@ in with self; {
   metaRNASeq = derive2 { name="metaRNASeq"; version="1.0.7"; sha256="1c9qxac7439wxnmr1jah37pmski5wyap1vd4nb8gvq4indbdiaz2"; depends=[]; };
   metaRange = derive2 { name="metaRange"; version="1.1.4"; sha256="05x7rs4ah42326xmpm4spm2ysmlw2c6cs1fxgngy9ndz6k2dmb64"; depends=[checkmate R6 Rcpp RcppArmadillo terra]; };
   metaSDTreg = derive2 { name="metaSDTreg"; version="0.2.2"; sha256="00lwfx083a449yppnh3zai2hyzc0g53v8nr8r4ippdv088612iq6"; depends=[Matrix maxLik ordinal truncnorm]; };
-  metaSEM = derive2 { name="metaSEM"; version="1.3.1"; sha256="0m3nc5kazi6pa7aih56g2022kklf56yk4f7lv0hlmjszhc6rhpww"; depends=[ellipse lavaan MASS Matrix mvtnorm numDeriv OpenMx]; };
+  metaSEM = derive2 { name="metaSEM"; version="1.4.0"; sha256="1gkgcczdm14cz2z4ys9qxy068g1ma6sik5ycas3z6m5rgwbd2amy"; depends=[ellipse lavaan MASS Matrix mvtnorm numDeriv OpenMx]; };
   metaSurvival = derive2 { name="metaSurvival"; version="0.1.0"; sha256="05f103fi287y64gys73a55snw54bnph69q8dykfii10dykd44g0y"; depends=[mvtnorm survival]; };
   metabias = derive2 { name="metabias"; version="0.1.1"; sha256="0xgckbyxjb6s43b3z48cxb2jbyd7jaw17x0w3wiafqjbz9ahzdmk"; depends=[Rdpack]; };
   metaboData = derive2 { name="metaboData"; version="0.6.3"; sha256="0a8jz7q0a5dri5p2qyw0ah0j4w0xjyfj6gkh2gcsazac1d5fl02i"; depends=[dplyr fs magrittr piggyback purrr readr rlang stringr tibble yaml]; };
@@ -13434,12 +13658,12 @@ in with self; {
   metacoder = derive2 { name="metacoder"; version="0.3.7"; sha256="0f7y7yzkqblqal71lp2kip8lzismdzlj3cpw0mb15hvca9dz12x4"; depends=[ape cowplot crayon dplyr GA ggfittext ggplot2 igraph lazyeval magrittr R6 Rcpp RCurl readr rlang seqinr stringr taxize tibble vegan]; };
   metacom = derive2 { name="metacom"; version="1.5.3"; sha256="0c0gzn28cl2sl52wx2n36jm9c18d9s3yqjyx88kgbmd9069z1nvk"; depends=[vegan]; };
   metaconfoundr = derive2 { name="metaconfoundr"; version="0.1.2"; sha256="0aiz10wjb24p52hx5srmws7myncjdvhd8kxbnxyaxg31wgxl3183"; depends=[dplyr forcats ggplot2 magrittr purrr rlang shiny stringr tibble tidyr tidyselect]; };
-  metacore = derive2 { name="metacore"; version="0.1.2"; sha256="0pc0z0i4psm00pack5rx4pmg0cq9x0yiv8xwmnkn80rl3yhagq98"; depends=[dplyr magrittr purrr R6 readxl rlang stringr tibble tidyr tidyselect xml2]; };
+  metacore = derive2 { name="metacore"; version="0.1.3"; sha256="06ba9p1by6hfagj0s43b6dwwfci5fczl2fr7kw3cchqsr90y3vfr"; depends=[dplyr magrittr purrr R6 readxl rlang stringr tibble tidyr tidyselect xml2]; };
   metadat = derive2 { name="metadat"; version="1.2-0"; sha256="1f7mb3pw5d0akr09jjva06ay223izhpzbr21bapnw99x1kiybk7h"; depends=[mathjaxr]; };
   metadynminer = derive2 { name="metadynminer"; version="0.1.7"; sha256="0ch86qqs3872d28c8wrs24ryg2xahqsmndmzjc3z6qznkrq1adzh"; depends=[Rcpp]; };
   metadynminer3d = derive2 { name="metadynminer3d"; version="0.0.2"; sha256="1y1csfp57qrv394hj96yr5v3brxw7v0a07k2pg7ypw08gshvgqjm"; depends=[metadynminer misc3d Rcpp rgl]; };
   metafolio = derive2 { name="metafolio"; version="0.1.2"; sha256="11y2igvwwkr4dj7v8ip66w1psi9wzb8q3sy018lhaxb42s1lspbh"; depends=[colorspace MASS plyr Rcpp RcppArmadillo]; };
-  metafor = derive2 { name="metafor"; version="4.4-0"; sha256="1m4762fn4zbjpnx9vxyy9gvzyzn3avxnqpzmbj45w8241g3s1b32"; depends=[mathjaxr Matrix metadat nlme numDeriv pbapply]; };
+  metafor = derive2 { name="metafor"; version="4.6-0"; sha256="0rl6w4j1fqvr7vn0dbzmir28xbi2wdn9m3lrxwjvvf47pp1lqd07"; depends=[mathjaxr Matrix metadat nlme numDeriv pbapply]; };
   metaforest = derive2 { name="metaforest"; version="0.1.4"; sha256="1b578s08621x5g2sqgi88sdlknq3zaql5xbhdggzml8c0n7lhbc1"; depends=[data_table ggplot2 gtable metafor ranger]; };
   metafuse = derive2 { name="metafuse"; version="2.0-1"; sha256="1zdw22f5kzvy2xr3c2csy873hcags60as567brc2sw17d0apfy8j"; depends=[evd glmnet MASS Matrix]; };
   metagam = derive2 { name="metagam"; version="0.4.0"; sha256="1kpxf2jxbx13if3ir9iqsqbdg6gg0l9pa3qnxmff4w5dd59by5kd"; depends=[ggplot2 metafor mgcv rlang]; };
@@ -13449,8 +13673,8 @@ in with self; {
   metainc = derive2 { name="metainc"; version="0.2-0"; sha256="12kli07sh2b2ynpaasqmx2vfxnvv50brfcqnrgsk9abapy8ckfag"; depends=[confintr ggplot2 meta]; };
   metajam = derive2 { name="metajam"; version="0.2.3"; sha256="0ryzsnwfhapsyz40ckjj6gn2chf37m62z3l7xv703878bghpdqwc"; depends=[dataone dplyr EML emld lubridate purrr readr rlang stringr tibble tidyr]; };
   metalite = derive2 { name="metalite"; version="0.1.3"; sha256="1pai4a5mnba80cyvhpdxhk0hwzhmw2xa23px1x7154ddl6rnykvg"; depends=[glue rlang]; };
-  metalite_ae = derive2 { name="metalite.ae"; version="0.1.1"; sha256="0z33yj8v67mkjg47zd627mnp0p1b2gnlvj7gf0d7np1j38572j1s"; depends=[dplyr glue metalite r2rtf tidyr]; };
-  metalite_table1 = derive2 { name="metalite.table1"; version="0.3.0"; sha256="042y400x994qhwidw5nadxf8mqd6kkrl081bzi6v1bqa17y8qw6c"; depends=[htmltools jsonlite metalite r2rtf reactable]; };
+  metalite_ae = derive2 { name="metalite.ae"; version="0.1.2"; sha256="0vf8v6nf4f7lagfzs4dr6q5gz2dh18wal74xmlfaw7cmw42z8nsh"; depends=[glue metalite r2rtf]; };
+  metalite_table1 = derive2 { name="metalite.table1"; version="0.4.0"; sha256="1vg6mprn2c633qr5v1rfgbg5bwc621chy69c8k1yz700rhzapcfa"; depends=[htmltools jsonlite metalite r2rtf reactable]; };
   metamedian = derive2 { name="metamedian"; version="1.1.1"; sha256="17p8npnaddsdikii9c8zhvbwhkpwgncksipzsslrs7d4pz6wlfvf"; depends=[estmeansd Hmisc metaBLUE metafor]; };
   metamer = derive2 { name="metamer"; version="0.3.0"; sha256="0b427cbasy1irks9jy5kjg3ay5xa01dcalhl8g14smhkdv5054wz"; depends=[FNN progress]; };
   metamicrobiomeR = derive2 { name="metamicrobiomeR"; version="1.2"; sha256="0fgdjy2s47pqmb9x79a4sf0kn4hbc49rd41jnzw0d3ll1l9kwy7f"; depends=[compositions dplyr gamlss gdata ggplot2 gridExtra lme4 lmerTest matrixStats meta plyr tidyr zCompositions]; };
@@ -13458,7 +13682,7 @@ in with self; {
   metan = derive2 { name="metan"; version="1.18.0"; sha256="0m7czvd7djv80c6kly8ckgs9m5ld0rqnd92y76n181d2xk9l6ypc"; depends=[dplyr GGally ggforce ggplot2 ggrepel lme4 lmerTest magrittr mathjaxr patchwork purrr rlang tibble tidyr tidyselect]; };
   metanetwork = derive2 { name="metanetwork"; version="0.7.0"; sha256="0rlnalmfmiih154zq6rk4sq12y7nr8fn1ws8mrlryy04gznz6igw"; depends=[dplyr GGally ggimage ggplot2 igraph intergraph magrittr Matrix network RColorBrewer rlang sna visNetwork]; };
   metansue = derive2 { name="metansue"; version="2.5"; sha256="098f3jfqxraf86p6ciqpryqs1vwbhsmy3wngqj50d5ndf302qxmc"; depends=[]; };
-  metap = derive2 { name="metap"; version="1.9"; sha256="1w4mv7vb94d4pkllvabz9az8sbrbfhigxw4is3j0jzi1pnlyc8kg"; depends=[lattice mathjaxr mutoss qqconf Rdpack TFisher]; };
+  metap = derive2 { name="metap"; version="1.10"; sha256="18l86026g5g0pdihw41h7yck1ad5k43bb7as5qih2k5xkr680mzx"; depends=[lattice mathjaxr mutoss qqconf Rdpack TFisher]; };
   metapack = derive2 { name="metapack"; version="0.3"; sha256="17j3xivpyq17is5vzmca9zck6dryzfnrzddvppik4ml3xq122br9"; depends=[BH Formula ggplot2 gridExtra Rcpp RcppArmadillo RcppProgress]; };
   metaplot = derive2 { name="metaplot"; version="0.8.4"; sha256="1ywr26sqbj0gqcyn4nqj0xi9018dzxwvm663xdrm31wnchh8iivg"; depends=[dplyr encode ggplot2 gridExtra gtable lattice magrittr rlang scales tidyr]; };
   metaplus = derive2 { name="metaplus"; version="1.0-4"; sha256="1lrlw5h3fgcrp0cdawxala36m8mpljbmp20fhf4sc0qj51h2ccs4"; depends=[bbmle boot doParallel doRNG fastGHQuad foreach lme4 MASS metafor numDeriv Rfast]; };
@@ -13476,7 +13700,7 @@ in with self; {
   metaviz = derive2 { name="metaviz"; version="0.3.1"; sha256="0jvv49rw66v7saj2y1q88rp6fyzq7473af5d3k77ymvjbpqyrbyz"; depends=[dplyr ggplot2 ggpubr gridExtra metafor nullabor RColorBrewer]; };
   metawho = derive2 { name="metawho"; version="0.2.0"; sha256="1mflkrlnb1wk9vbbj621cy64s78q677d8fcnsi1ybh49k7sqmw20"; depends=[dplyr forestmodel magrittr metafor purrr rlang]; };
   meteR = derive2 { name="meteR"; version="1.2"; sha256="02637d3dnfq0jv9d74y99x7ms89y3jcmkpazc44g44sa7jx4i510"; depends=[distr nleqslv]; };
-  meteo = derive2 { name="meteo"; version="2.0-2"; sha256="18aiy133527cxa3qj2mjwik6d7w6kgs7qmb5zywsbvb2bc3hmn5v"; depends=[caret CAST data_table DescTools doParallel dplyr foreach gstat nabor plyr ranger raster sf sftime snowfall sp spacetime terra units]; };
+  meteo = derive2 { name="meteo"; version="2.0-3"; sha256="1l3656yh0ggjd7kyvkknn6a6ad1z45qpxrndgkp52cph2607n324"; depends=[caret CAST data_table DescTools doParallel dplyr foreach gstat jsonlite nabor plyr ranger raster sf sftime snowfall sp spacetime terra units]; };
   meteoEVT = derive2 { name="meteoEVT"; version="0.1.0"; sha256="1i3zi1cgzv6lymmd7m92rmhmnxmdvi5nl367hnfbgxzy44van8l8"; depends=[ncdf4 purrr]; };
   meteoForecast = derive2 { name="meteoForecast"; version="0.56"; sha256="0nbjl4x06ni6jk8ji6n3cgd07iszw87lwg52rp8avvsz3kh19p5c"; depends=[ncdf4 raster sp XML zoo]; };
   meteoland = derive2 { name="meteoland"; version="2.2.1"; sha256="1543ka7yd7v1yca7my1114mb5j6wmn7dsj3kcr7gj8z99v8mxadk"; depends=[assertthat cli cubelyr dplyr lifecycle lubridate ncdfgeom ncmeta purrr Rcpp rlang sf stars tidyr units]; };
@@ -13488,22 +13712,22 @@ in with self; {
   metools = derive2 { name="metools"; version="1.0.0"; sha256="05l49ifx2nnlbdxh2qhdb0islf95fc67720rm5in7mrlida4khnq"; depends=[ggplot2 lubridate scales stringr tibble tidyr]; };
   metrica = derive2 { name="metrica"; version="2.0.3"; sha256="10pkd29vcrm74fxf4i5bmkrj6528vfzipf53nfdpic9bavk2s2i7"; depends=[DBI dplyr energy ggplot2 ggpp minerva rlang RSQLite tidyr]; };
   metricminer = derive2 { name="metricminer"; version="0.5.1"; sha256="156fzmcwgabi95qdjy7pq415l505y5mzcc99l77ykbf56w9fa9qs"; depends=[assertthat dplyr getPass gh googledrive googlesheets4 httr janitor jsonlite lubridate openssl purrr stringr tidyr]; };
-  metricsgraphics = derive2 { name="metricsgraphics"; version="0.9.0"; sha256="1zbx82b34y0rr4w7rzvyc1nzk95w6cdkg0j1kkshbmkvplq6v9i4"; depends=[htmltools htmlwidgets magrittr]; };
   metrix = derive2 { name="metrix"; version="1.1.0"; sha256="0ixp868pag05a6h4l8q4x55w0dg4xki4q6klfi9dzx82knzb7s9l"; depends=[Matrix stringr vegan]; };
   metro = derive2 { name="metro"; version="0.9.3"; sha256="1dm759z7rb86fnqmrhzbnljhq9v60w8gspy09zkzjdfjzn06q17d"; depends=[geodist hms httr jsonlite tibble]; };
   metropolis = derive2 { name="metropolis"; version="0.1.8"; sha256="031fcy0v13bvy7gg26988fvpqdsfndx2rynkhb1jvirnrf0fngy4"; depends=[coda]; };
   mets = derive2 { name="mets"; version="1.3.4"; sha256="0yisa6v0apxxw5ycjhc3hcghlmvzzaq431z8nzsrw5jc2g13c0ca"; depends=[lava mvtnorm numDeriv Rcpp RcppArmadillo survival timereg]; };
   metsyn = derive2 { name="metsyn"; version="0.1.2"; sha256="0iwp0nz07yd33qd93fjblmvik1l1xkv6rkccn3054zs2bkrzjq4f"; depends=[foreach readr stringr tibble]; };
   mev = derive2 { name="mev"; version="1.16"; sha256="0kavj6mzzsjxkac2q0fxyhnzwy51pwld4r77fg024ggliiswjmms"; depends=[alabama nleqslv Rcpp RcppArmadillo Rsolnp]; };
+  mevr = derive2 { name="mevr"; version="1.0.0"; sha256="0klhmlhn2v4ncsrwvpzhxxn8bbrjn5qjzi6rlxrxmp9yfk5wnxhy"; depends=[bamlss doParallel dplyr EnvStats foreach mgcv rlang]; };
   mewAvg = derive2 { name="mewAvg"; version="0.3.1"; sha256="1pnjzfq4rdjjlqp1mxxlpkhkfgq1nym8pgaqrvpm76zw4xnx7p7m"; depends=[]; };
   mexhaz = derive2 { name="mexhaz"; version="2.5"; sha256="0lpymgfknr8szpxf7g7qmvdklsclfsmvjjws7cdpxsiv6hv8y3p2"; depends=[lamW MASS numDeriv statmod survival]; };
   mexicolors = derive2 { name="mexicolors"; version="0.2.0"; sha256="0vbhwaq19hqd63qjybssgqxkawjr6vnar6k0nrb583hh1q9hjyg2"; depends=[]; };
   mfGARCH = derive2 { name="mfGARCH"; version="0.2.1"; sha256="1pcabijwhdxhdlrdjvi2zl8la939igsdy3j1yv0ic8wvkpw1sh4x"; depends=[maxLik numDeriv Rcpp zoo]; };
   mfaces = derive2 { name="mfaces"; version="0.1-4"; sha256="0svvnpka2y1p21gvdyc7csw6m0g3kziszw2ll9bq5gpcnl69qk4n"; depends=[face Matrix matrixcalc mgcv]; };
   mfdb = derive2 { name="mfdb"; version="7.3-1"; sha256="1l7bvacmvh53rq91jqdb6zqjn3974sy838zfvgfb6nam54r080y4"; depends=[DBI duckdb getPass logging rlang RPostgres RSQLite]; };
-  mfp = derive2 { name="mfp"; version="1.5.4"; sha256="0a4gfip5y42hn0pk8y8zmvlj65nr5a2ni77z14m1xj1azb9222by"; depends=[numDeriv survival]; };
+  mfp = derive2 { name="mfp"; version="1.5.4.1"; sha256="17sww972ymnddbi54575hdalbshfq81m849795pmi38j3mrhz25m"; depends=[numDeriv survival]; };
   mfp2 = derive2 { name="mfp2"; version="1.0.0"; sha256="03xv7zjdcsnyrawwpjgfw5g59h7miwh68wkmbvfkd8wxnfcdmmmv"; depends=[ggplot2 survival]; };
-  mfpp = derive2 { name="mfpp"; version="0.0.5"; sha256="0i8yp3rmhqy8w6xvdlkg6k8vm3hdihsqrrc94sbx1c1nsd5p2m95"; depends=[genalg ggplot2 igraph nsga2R pracma reshape2 Rfast]; };
+  mfpp = derive2 { name="mfpp"; version="0.0.7"; sha256="1z250grk06cmclyz4v3qnxdy43dm5vcrcq1rglpps3cfrg09i2g1"; depends=[genalg ggplot2 igraph nsga2R pracma reshape2 Rfast]; };
   mfx = derive2 { name="mfx"; version="1.2-2"; sha256="04pwp67i4sn4rf497pgy6qifwvrcmwyxn8x5sn96fy8qyrdzjfhj"; depends=[betareg lmtest MASS sandwich]; };
   mgarchBEKK = derive2 { name="mgarchBEKK"; version="0.0.5"; sha256="0i5f8xghdch9d1cvfgiq2pscpq53ms7ik7jk16gss8i0cx2d3m94"; depends=[mvtnorm tseries]; };
   mgc = derive2 { name="mgc"; version="2.0.2"; sha256="1l9qs4nz1rn56qp569nh26yz3c7i4zh3r43c209zh7kvizpagx0i"; depends=[abind boot energy MASS raster]; };
@@ -13517,13 +13741,13 @@ in with self; {
   mgpStreamingSDK = derive2 { name="mgpStreamingSDK"; version="0.2.0"; sha256="1fgcca0jca0jw6gpcqjb5wrcl9x3r2hfhf1xwiwv2w1m7bhc3mkp"; depends=[R6 reticulate]; };
   mgss = derive2 { name="mgss"; version="1.2"; sha256="0czzr5hc9sr8yc362q9xag3vphwk1gfahczpya2mh1l6fsa74fbn"; depends=[combinat Matrix Rcpp statmod]; };
   mgsub = derive2 { name="mgsub"; version="1.7.3"; sha256="1mci6x65h94qiz9cwikx2inbrwkykv43zbs8abfbx416zrh2bbn9"; depends=[]; };
-  mgwnbr = derive2 { name="mgwnbr"; version="0.1.0"; sha256="0c9y3jfg1s5cvpw6yjjcq80shdx1khx799qpcvba534vgz3mkh49"; depends=[sp]; };
+  mgwnbr = derive2 { name="mgwnbr"; version="0.2.0"; sha256="0vmpvfnnq1ylsivizz888akaq74ybz890nspj40zx5wr7dv2rkz7"; depends=[sp]; };
+  mgwrhw = derive2 { name="mgwrhw"; version="1.1.1.5"; sha256="0nk07rl4g4l9ng4fq9xh1smxz705akn25svadjwn17wvm9wjg7dk"; depends=[dplyr ggplot2 psych sf spgwr tidyr]; };
   mgwrsar = derive2 { name="mgwrsar"; version="1.0.5"; sha256="0xhxx1x625igm54n5wpl4aavcqg9dx9nmazr330538p334df3z8h"; depends=[caret doParallel dplyr foreach ggplot2 gridExtra htmltools knitr leaflet mapview Matrix mboost mgcv microbenchmark nabor Rcpp RcppEigen rlang sf sp spgwr]; };
   mhazard = derive2 { name="mhazard"; version="0.2.3"; sha256="030r0l11qplmypwfk45mj31gba96xda7nxzgiyjsgrb20jmcsja5"; depends=[boot plot3D Rcpp RcppArmadillo rootSolve survival]; };
   mhcnuggetsr = derive2 { name="mhcnuggetsr"; version="1.1"; sha256="0fq0niigf4lb6jqcy0w4mkfy65pxrw4brf3pg2nvmgnv3c91lgsb"; depends=[rappdirs reticulate stringr tibble]; };
   mhsmm = derive2 { name="mhsmm"; version="0.4.21"; sha256="1fibgpl65bl3rwlf9dhlams3gxbjqgwcd26gb0flp4wln6pl8d99"; depends=[mvtnorm]; };
   mhtboot = derive2 { name="mhtboot"; version="1.3.3"; sha256="1z0p8ny9lpnrshgas7cad2lv7j0blw0n6ihiimw600n70h73jwrn"; depends=[ggplot2 reshape2]; };
-  mhurdle = derive2 { name="mhurdle"; version="1.3-0"; sha256="1in07zk29z5fhrg75wl1fwbrsny4ihjnrqyh2kz1bd448p10f295"; depends=[Formula generics margins maxLik numDeriv prediction Rdpack survival truncreg]; };
   mi = derive2 { name="mi"; version="1.1"; sha256="11f75ivnax6p48mp2pasprws488cm2daym87sw2mcrywvf89fyjd"; depends=[arm Matrix]; };
   mi4p = derive2 { name="mi4p"; version="1.1"; sha256="1fl5vbykgw3wihv1gqbnqrfjiyng8mzfdg469x6y12mxdrgl4myj"; depends=[emmeans foreach imp4p impute limma mice stringr]; };
   miCoPTCM = derive2 { name="miCoPTCM"; version="1.1"; sha256="0bmb06rb53fq8ylcvz693akmz7nkjj50c6ypxsjbfp4crllpi5v9"; depends=[distr MASS nleqslv survival]; };
@@ -13555,17 +13779,18 @@ in with self; {
   microPop = derive2 { name="microPop"; version="1.6"; sha256="0if218csmnp5vcbcgr9zjk8d7y17al04rpfhjvp76v03xvwjizp5"; depends=[deSolve testthat visNetwork]; };
   microbats = derive2 { name="microbats"; version="0.1-1"; sha256="1mahvblaiwg1xk2s34wd1ic8ddc9lh6g0azik2pd97bsf0krkyw8"; depends=[]; };
   microbenchmark = derive2 { name="microbenchmark"; version="1.4.10"; sha256="10dlp4295jb5l7lhz80f4mkz3jccv02v277z666wx3bhfaz43k04"; depends=[]; };
-  microbial = derive2 { name="microbial"; version="0.0.20"; sha256="1y5vhh4sq22c4wxb3c9rzj53niacn97vfg0484d9wkcjb179lc79"; depends=[broom DESeq2 dplyr edgeR ggplot2 ggpubr magrittr phangorn phyloseq plyr randomForest rlang rstatix S4Vectors SummarizedExperiment testthat tidyr vegan]; };
+  microbial = derive2 { name="microbial"; version="0.0.21"; sha256="1d2sr4wwjlxcaxqr57gzf8m2pydgx4kp3h8mgyxzcm4s00i8m5bc"; depends=[broom DESeq2 dplyr edgeR ggplot2 ggpubr magrittr phangorn phyloseq plyr randomForest rlang rstatix S4Vectors SummarizedExperiment tidyr vegan]; };
   microclass = derive2 { name="microclass"; version="1.2"; sha256="0q6mn1hbi6nk29x2x5a1wcdqp06mjggbrpglk5i8pp4gkqlzhl8q"; depends=[dplyr microcontax microseq Rcpp RcppEigen RcppParallel rlang stringr tibble]; };
   microcontax = derive2 { name="microcontax"; version="1.2"; sha256="004g979hyg0asbah7hxr445fidil4ibw1b8pqpjdbgmpm1qgvw7y"; depends=[microseq]; };
-  microeco = derive2 { name="microeco"; version="1.5.0"; sha256="0ksrw3vfaj7w19vaf16hc4gg63cailqy1fzjqi8f6m81bzhrydnk"; depends=[ape data_table dplyr ggplot2 igraph magrittr R6 RColorBrewer reshape2 rlang scales tibble vegan]; };
+  microdiluteR = derive2 { name="microdiluteR"; version="1.0.1"; sha256="1x039ja5bwshblc4zr5pnj1mn7jn1x92fddjcjd08y75sgcbi5ng"; depends=[dplyr ggh4x ggplot2 ggthemes magrittr purrr rlang rstatix stringr tibble vctrs]; };
+  microeco = derive2 { name="microeco"; version="1.7.1"; sha256="1w01k7vd1s5w3xkjxkz5gwbql92k3r2nvxzhxhbpkj9amz1rb5wl"; depends=[ape data_table dplyr ggplot2 igraph magrittr R6 RColorBrewer reshape2 rlang scales tibble vegan]; };
   microhaplot = derive2 { name="microhaplot"; version="1.0.1"; sha256="0g15g7d19yz11nn2g0h8h2m8k1cvmpryz72pnalgv5yi58md5l5i"; depends=[dplyr DT ggiraph ggplot2 gtools magrittr scales shiny shinyBS shinyWidgets tidyr]; };
   micromap = derive2 { name="micromap"; version="1.9.8"; sha256="129q0a6jywxmhgddyacjl150zfxr04qdv17pqngp4xl0rd9r5zcz"; depends=[ggplot2 RColorBrewer sf sp]; };
-  micromapST = derive2 { name="micromapST"; version="3.0.2"; sha256="1r7lkwhqmcby1wjva9fij7b62vk4aqrwn4maj1zfpcm9f9s90jvp"; depends=[labeling RColorBrewer readxl rmapshaper sf spdep stringr writexl]; };
+  micromapST = derive2 { name="micromapST"; version="3.0.3"; sha256="0zg0wgqlk9z9k3qhcnd8y8swa7p3g8q30fvw3g0n71dd4vqxzdcl"; depends=[labeling RColorBrewer readxl rmapshaper sf spdep stringr writexl]; };
   micromodal = derive2 { name="micromodal"; version="1.0.0"; sha256="0qf5ckfcnkviilb2la8la9sjfcir7c79v4981jrpsxfy9n6y39vm"; depends=[htmltools]; };
+  micronutr = derive2 { name="micronutr"; version="0.1.1"; sha256="0gi2d8xkl1df5sncp4ndljfpd2wgkv9d634k3rk1cw4if0dp955c"; depends=[]; };
   micropan = derive2 { name="micropan"; version="2.1"; sha256="16zs6sqi2c5lwzhd5gbyddp8q4gx5r5sg0pbpk7924i8x4hh081h"; depends=[dplyr igraph microseq rlang stringr tibble]; };
   microplot = derive2 { name="microplot"; version="1.0-45"; sha256="0qprvn5zv9ai30lhd8qykffc5f8va886kc5qka34940lin63v389"; depends=[cowplot flextable ggplot2 HH Hmisc htmltools lattice officer]; };
-  microsamplingDesign = derive2 { name="microsamplingDesign"; version="1.0.8"; sha256="0swaqvzqbmlk9j2gr8z7x7xrkr38xndprg9k66whzcigxfh8nhiz"; depends=[abind deSolve devtools ggplot2 gridExtra gtools knitr MASS matrixcalc matrixStats plyr Rcpp RcppArmadillo readr reshape2 shiny stringr]; };
   microseq = derive2 { name="microseq"; version="2.1.6"; sha256="1xa8r908jic06kv1qjmdidh3zzslbimjyhsy6v27xqzrh45svq4c"; depends=[data_table dplyr Rcpp rlang stringr tibble]; };
   microsimulation = derive2 { name="microsimulation"; version="1.4.3"; sha256="0vn7lx6qa0dqd7h208s36jwcxswmnhdp4kazkavagd61sqr2gah2"; depends=[ascii Rcpp RcppArmadillo survival]; };
   microsynth = derive2 { name="microsynth"; version="2.0.44"; sha256="1a8xh4aqv0177p9vp05i6c881k4pkyyha7izbq3j3ssyb9id7yy6"; depends=[kernlab pracma survey]; };
@@ -13576,9 +13801,10 @@ in with self; {
   midasml = derive2 { name="midasml"; version="0.1.10"; sha256="0jhrifvqcis2lj59vybgkzgmdmxwfqmsbxijwcz8hsprshr69xl9"; depends=[doParallel doRNG foreach lubridate Matrix randtoolbox snow]; };
   midasr = derive2 { name="midasr"; version="0.8"; sha256="0mzyxf8q2wmbsiczkhhgigy7jmi8zr4w4a83f97va35vfhxi217k"; depends=[forecast Formula MASS Matrix numDeriv optimx quantreg sandwich texreg zoo]; };
   midastouch = derive2 { name="midastouch"; version="1.3"; sha256="1pjzcf0hjfhr5p0la8pz1njw7bhfrcrzpqfsdqk2z5c6dbh4awzq"; depends=[]; };
-  midfieldr = derive2 { name="midfieldr"; version="1.0.1"; sha256="1ckvwmlnpcvxavikhwjw029xh4w9153gkfwabilxzw58l8nwlry5"; depends=[checkmate data_table wrapr]; };
+  midfieldr = derive2 { name="midfieldr"; version="1.0.2"; sha256="18zh3nm8k13hzaa0rih4f76q7zj16qww2aaamifhhfimgpn9iib5"; depends=[checkmate data_table wrapr]; };
+  midi = derive2 { name="midi"; version="0.1.0"; sha256="06dc0lazi7pkdm66isaqa9igfrl8dq4klpg06aggmilgay09fi5s"; depends=[cli ggplot2 plotly purrr R6 rlang withr]; };
   midrangeMCP = derive2 { name="midrangeMCP"; version="3.1.1"; sha256="1yfwyglyxxk4i914m8n148cjydlcg7r16zl8acb1w8h963svirk9"; depends=[SMR writexl xtable]; };
-  miesmuschel = derive2 { name="miesmuschel"; version="0.0.3"; sha256="0gqdq1qsai0rql8l1s7qqdijxhjc48bkkx16c1k36c3skf2lam52"; depends=[bbotk checkmate data_table lgr matrixStats mlr3misc paradox R6]; };
+  miesmuschel = derive2 { name="miesmuschel"; version="0.0.4-1"; sha256="1n2svgi926m8i8d1yzj4dyy1nhxr8m46qp3fpi2kjnprxs303rnd"; depends=[bbotk checkmate data_table lgr matrixStats mlr3misc paradox R6]; };
   mifa = derive2 { name="mifa"; version="0.2.0"; sha256="1rj3ba746f8759gird0vpvyb4fl0z2ihccpiv3qkr3sc64wgplln"; depends=[checkmate dplyr mice]; };
   migest = derive2 { name="migest"; version="2.0.4"; sha256="0gksf8f1arpzxmcid1vskkf4s2r6k4n0ss85cag9429lmjpix5h4"; depends=[circlize dplyr forcats magrittr matrixStats migration_indices mipfp purrr stringr tibble tidyr]; };
   migraph = derive2 { name="migraph"; version="1.3.4"; sha256="1j43apygc7m5gff07zabv3plm3hhhnv091fdxkvzlms9w0f2j1zy"; depends=[dplyr furrr future generics ggplot2 igraph manynet network pillar purrr rlang sna tidygraph tidyr]; };
@@ -13601,7 +13827,7 @@ in with self; {
   mineSweepR = derive2 { name="mineSweepR"; version="0.1.1"; sha256="0bnaa0652pspsd80v66b83np58429g8044941bsmr3apgf8660gj"; depends=[ComplexHeatmap dplyr gsignal hms InteractiveComplexHeatmap mgc mmand pals rlang]; };
   mined = derive2 { name="mined"; version="1.0-3"; sha256="1ilfwm42r2mkcdxphqkz7b4szfr4m9gpfi9qid3625sq3rjk622r"; depends=[Rcpp RcppEigen]; };
   minerva = derive2 { name="minerva"; version="1.5.10"; sha256="03srkii3rmx40lyr050bnrxil6w0hfv5pr64k339m66ciwyka9ig"; depends=[Rcpp RcppArmadillo]; };
-  miniCRAN = derive2 { name="miniCRAN"; version="0.2.16"; sha256="1rr5wrh27055ikkvpsf19q9bkfhckafgmrn174iwzjh9s42w3nbq"; depends=[assertthat httr igraph]; };
+  miniCRAN = derive2 { name="miniCRAN"; version="0.3.0"; sha256="1dfqish0vhvdp1a6kiw18z088sghndv9pviby51s7kqv0bjs3ca7"; depends=[assertthat httr igraph]; };
   miniGUI = derive2 { name="miniGUI"; version="0.8-1"; sha256="0qb2fbkjwzn909yrk89d4951bwf8n05i0s265l8v2d4lpns9hc2i"; depends=[]; };
   miniMeta = derive2 { name="miniMeta"; version="0.3.1"; sha256="0qd55a0a03a3q62hjpmi0815x4jff6zhrxavm1wb46c09y1hm62j"; depends=[colourpicker jsonlite markdown meta metafor readxl rhandsontable shiny shinyjs shinyWidgets WriteXLS]; };
   miniPCH = derive2 { name="miniPCH"; version="0.3.2"; sha256="1z8zsagas50ndwygkxfdi933x5vq3dmq5kwmi3lg28hqdaf2hcnm"; depends=[checkmate Rcpp RcppArmadillo]; };
@@ -13610,17 +13836,17 @@ in with self; {
   minimalRSD = derive2 { name="minimalRSD"; version="1.0.0"; sha256="1p1jpi8lnv952k4c1wjgbgpb0hv4zg0f9qrd43cx0caibkqvhzf7"; depends=[]; };
   minimap = derive2 { name="minimap"; version="0.1.0"; sha256="0y5yzic9pwpzs01gnl82syankijcjp85n22jn5zda0bp3y01r53r"; depends=[]; };
   minimax = derive2 { name="minimax"; version="1.1.1"; sha256="1jx90xbxflsi1q2wm3dl4vhz246yxbvhc8zybiv5f7fafam28h6p"; depends=[]; };
-  minimaxApprox = derive2 { name="minimaxApprox"; version="0.4.1"; sha256="01jcj0hx3iab06wdb17ngjdx4npdz64jjngm1d9vxixl4gipr30k"; depends=[]; };
+  minimaxApprox = derive2 { name="minimaxApprox"; version="0.4.2"; sha256="069r2wcjlkv91vqvs7s089hmclngcrvawycr5vkfp65l7rlrg1qp"; depends=[]; };
   minioclient = derive2 { name="minioclient"; version="0.0.6"; sha256="1caqigfjlga5vv5nk7k0jmzhiakj4xrbvpf43n0byygqqfpxd6i8"; depends=[fs glue jsonlite processx]; };
   minpack_lm = derive2 { name="minpack.lm"; version="1.2-4"; sha256="0cg7arnmb7x6v5x487gkc2k4i5gchgdwblrrd0k0vw1w6pza83z3"; depends=[]; };
-  minqa = derive2 { name="minqa"; version="1.2.6"; sha256="0421b4ysslaqmdgwlz080abis8m4xkcvjq7lx1wywbsz1s2vi9si"; depends=[Rcpp]; };
+  minqa = derive2 { name="minqa"; version="1.2.7"; sha256="1qigwpcj8mz1fgq4ikq64pkqfwgw50bd928xbc4xaq6q3sflbwvn"; depends=[Rcpp]; };
   minque = derive2 { name="minque"; version="2.0.0"; sha256="0pczdg22i3if048i64chzcpnv3ay8p0anmhwjmzm29577z0jgms8"; depends=[]; };
   minsample1 = derive2 { name="minsample1"; version="0.1.0"; sha256="13kmqxa3pbllv16fzn0v7msffsaar79y8xnvnbrcfhwa76031f8f"; depends=[]; };
   minsample2 = derive2 { name="minsample2"; version="0.1.0"; sha256="0q1rp6mdyhcp806a0m0sr4ldm5rj78wk2fljzylxfjs4c734lpbk"; depends=[]; };
+  minty = derive2 { name="minty"; version="0.0.1"; sha256="1kbs4f36s5bnjpc5wcqawbk154n9wjpf549hsjj4xdcg7ihcdgfg"; depends=[cpp11 tzdb]; };
   mipfp = derive2 { name="mipfp"; version="3.2.1"; sha256="1gxazpg81vj5dywpb6jb29188jw28qil6pfygawa7znnjn3k5ca6"; depends=[cmm numDeriv Rsolnp]; };
   mipplot = derive2 { name="mipplot"; version="0.3.1"; sha256="126arvxq6gmaiwk3n3p0slnb1mhs3qf993m4lx95nlmnv612ag66"; depends=[data_table dplyr ggplot2 readr readxl reshape reshape2 rlang shiny shiny_i18n shinyalert shinyWidgets showtext showtextdb stringr tidyr]; };
-  mirai = derive2 { name="mirai"; version="0.12.1"; sha256="0565cx9gl1wzkapcy102yicyhpw3wc4xcjxsk58585zdxjvpr2ym"; depends=[nanonext]; };
-  mirai_promises = derive2 { name="mirai.promises"; version="0.4.1"; sha256="0yi9ks737b3afdbpj088lh33h2hb9bx993j2ag0klbwsfz2dffmi"; depends=[nanonext promises]; };
+  mirai = derive2 { name="mirai"; version="1.1.0"; sha256="0nq3wrgizlii8a17i033glbl5ixgdwjxzpyi5yzf0icxbqaylm5w"; depends=[nanonext]; };
   mirt = derive2 { name="mirt"; version="1.41"; sha256="0qx8qr4zd5jliamsmpr0c321g3k9ks1ki4fvy5lia3xgihp2s6yh"; depends=[dcurver Deriv GPArotation gridExtra lattice Matrix mgcv pbapply Rcpp RcppArmadillo vegan]; };
   mirtCAT = derive2 { name="mirtCAT"; version="1.13"; sha256="1vlv93wjwj3ajf0mqjz38bi9fdk1sl0wqyqr7kjhhdj4znhrprbs"; depends=[lattice lpSolve markdown mirt pbapply Rcpp RcppArmadillo shiny]; };
   mirtjml = derive2 { name="mirtjml"; version="1.4.0"; sha256="1zvm8acywpzi87lz0hpxmr8c9kyqkbx0490q3vlwxd90ffcdp9ml"; depends=[GPArotation Rcpp RcppArmadillo]; };
@@ -13637,7 +13863,6 @@ in with self; {
   miselect = derive2 { name="miselect"; version="0.9.2"; sha256="01jvxv79irqq1xkl826kqrdx9yx73lifb5xq90f5d34qycp1nxzi"; depends=[]; };
   mispitools = derive2 { name="mispitools"; version="1.0.0"; sha256="1s54dm6c48ahib2p5firx3l0fxqxrcvfpk02smisbxna85vbfwd5"; depends=[DirichletReg dplyr forrel ggplot2 highcharter patchwork pedtools plotly purrr reshape2 shiny tidyr tidyverse]; };
   mispr = derive2 { name="mispr"; version="1.0.0"; sha256="166piax3f7di8h0i07fbdx45lxz1p47j378v6yl6zdc3525adpjx"; depends=[e1071 MASS penalized]; };
-  misreport = derive2 { name="misreport"; version="0.1.1"; sha256="1f78zcw4cg51mjvflhwd64hip2gj8x9ng1mhh4w43yv3x8hmbd6h"; depends=[mvtnorm numDeriv VGAM]; };
   missCforest = derive2 { name="missCforest"; version="0.0.8"; sha256="1xdff1iddvagsw5b27wl0hbv21baj8cnkg17imfg9fkh1fik2s00"; depends=[partykit]; };
   missCompare = derive2 { name="missCompare"; version="1.0.3"; sha256="03j69xw54d076znx19dplw4xznvgky90hxh3wgypg0g5pjg63y53"; depends=[Amelia data_table dplyr ggdendro ggplot2 Hmisc ltm magrittr MASS Matrix mi mice missForest missMDA pcaMethods plyr rlang tidyr VIM]; };
   missDeaths = derive2 { name="missDeaths"; version="2.7"; sha256="1c8vbc7r1g4dkngmal6iqg7piw656h1vc6cmpkv16vjn4j0w2n2c"; depends=[cmprsk MASS mitools Rcpp relsurv rms survival]; };
@@ -13652,14 +13877,14 @@ in with self; {
   missingHE = derive2 { name="missingHE"; version="1.5.0"; sha256="0my6a768w7lixh6cw453bl2nrb5aqdiri309p5kp4psp17pzllak"; depends=[bayesplot BCEA coda ggmcmc ggplot2 ggpubr ggthemes gridExtra loo mcmcplots mcmcr R2jags]; };
   missoNet = derive2 { name="missoNet"; version="1.2.0"; sha256="1k7959wjxxpzgrnwil7n51zf76zyri8c2m4m5h2w9az5pil2qmf0"; depends=[circlize ComplexHeatmap glasso mvtnorm pbapply Rcpp RcppArmadillo scatterplot3d]; };
   misspi = derive2 { name="misspi"; version="0.1.0"; sha256="0rbkwfq3b7gvq3qwn3acbrdv4npvm5ixz6y7877alraqd0qjg1c8"; depends=[doParallel doSNOW foreach ggplot2 glmnet lightgbm plotly SIS]; };
-  mistat = derive2 { name="mistat"; version="2.0.4"; sha256="1hr1gps0w3mfphnc221c6k7h7rwk1f7g6nxkxkb9g8sdacr7ijhh"; depends=[]; };
   mistr = derive2 { name="mistr"; version="0.0.6"; sha256="103gvzcyrxscpsd8kv6zj8zx3r9mlbdjwd56msy0ngzcgrb4sb9d"; depends=[bbmle]; };
   mistral = derive2 { name="mistral"; version="2.2.2"; sha256="1ssgglw2y1bkhlwcrmw8bv8ic6vl5nj4l482hlq8kv1dgyrnbsas"; depends=[DiceKriging doParallel e1071 foreach ggplot2 iterators Matrix mvtnorm quadprog Rcpp]; };
-  misty = derive2 { name="misty"; version="0.6.2"; sha256="1jhmpw6hn11yqwx6iw8p7zfw28m60p8gdqhp1sc0wwhvz86ywns5"; depends=[ggplot2 haven lavaan lme4 nlme norm readxl rstudioapi writexl]; };
+  misty = derive2 { name="misty"; version="0.6.3"; sha256="1s0vkxxh13r62rdq2xlwkw93chi862ynr7lznp29g5iz3r3dz103"; depends=[ggplot2 haven lavaan lme4 nlme norm readxl rstudioapi writexl]; };
+  misuvi = derive2 { name="misuvi"; version="0.1.0"; sha256="0l62hm1d9bjxn53k50aq71i9f8fgj8v55m75l3f9qc88wr8fhqf2"; depends=[curl sf tigris]; };
   mitml = derive2 { name="mitml"; version="0.4-5"; sha256="1szfw993ma4qn377bab08bkvm4s0sxs5x2hdcj9kgk47661fqsh5"; depends=[haven jomo pan]; };
   mitools = derive2 { name="mitools"; version="2.4"; sha256="0c2x2n1p53lcw0vx4vmy5j7m2f95i7g2iwbryl89imr99rvz617j"; depends=[DBI]; };
   mitre = derive2 { name="mitre"; version="1.0.0"; sha256="0r5phzxiibwwhx3qh623grfy070c3vzm4q07rzhsp5q5ycb5jhn5"; depends=[dplyr igraph jsonlite plyr RJSONIO rlang stringr tidyr]; };
-  mix = derive2 { name="mix"; version="1.0-11"; sha256="1q565ymc1lh24lv0v70qwqb0p0nagg2jcz2nf7dz964bsnp20wjf"; depends=[]; };
+  mix = derive2 { name="mix"; version="1.0-12"; sha256="05a3mklaawkch7spcin1rfzx556w315bklwipd64kzhfxj5nds1x"; depends=[]; };
   mixAK = derive2 { name="mixAK"; version="5.7"; sha256="08n6shkibidqjmxjpjny48drxk3lmmnylh9l9ad3lrf8i2ixriqp"; depends=[coda colorspace fastGHQuad lme4 mnormt]; };
   mixAR = derive2 { name="mixAR"; version="0.22.8"; sha256="1fr3i54yvxqvh78pgn8y5hdwp1sf00gl9shg5bc7nnmmm84ki78q"; depends=[BB combinat e1071 fGarch gbutils MCMCpack mvtnorm permute Rdpack timeDate]; };
   mixIndependR = derive2 { name="mixIndependR"; version="1.0.0"; sha256="0wjzs56axdjas2a9ynw3gd78h0fgcfjpx3bk7nm895lmadyzih6y"; depends=[data_table]; };
@@ -13703,7 +13928,7 @@ in with self; {
   mkssd = derive2 { name="mkssd"; version="1.2"; sha256="1vgg5azr4qydqb6xbdbff9256bwz7gl3k3hpn7998rm9jhdmynnd"; depends=[]; };
   mlVAR = derive2 { name="mlVAR"; version="0.5.2"; sha256="0xvkhbjkzrvg9x5rd1yn9kzk27f4khwil1837l83jyd33hlyfsj3"; depends=[abind arm clusterGeneration corpcor dplyr graphicalVAR lme4 MplusAutomation mvtnorm plyr qgraph rlang]; };
   mlapi = derive2 { name="mlapi"; version="0.1.1"; sha256="1qyiii6x9b89i4pd4yi2zd23aabpmnpj18gqi5va0zy0l8r7kknr"; depends=[Matrix R6]; };
-  mlbench = derive2 { name="mlbench"; version="2.1-3.1"; sha256="1w2w7nkrp69c0di0lss82jf4fbxdpqwxzqa2lrp55av8i7awdzks"; depends=[]; };
+  mlbench = derive2 { name="mlbench"; version="2.1-5"; sha256="0vz7r4f0d0k7i9dx3r7gz8i7rs9f7b96qfjdajphqz6smm9ddgsd"; depends=[]; };
   mlbplotR = derive2 { name="mlbplotR"; version="1.1.0"; sha256="02509dghl22zwgbb94d794d61970svz1pqrx49bp8l9y3if9n36d"; depends=[cli data_table ggplot2 gt lifecycle magick magrittr rlang scales]; };
   mlbstats = derive2 { name="mlbstats"; version="0.1.0"; sha256="1pfsc1pc5986gykx8l6afahszhaj4940l8g33fdxyy7194kbcz70"; depends=[]; };
   mldr = derive2 { name="mldr"; version="0.4.3"; sha256="07lbxpydz78fya11bl3l1ckhbps3nx43ddh3z09ygg70jjbdhxwq"; depends=[circlize shiny XML]; };
@@ -13712,61 +13937,65 @@ in with self; {
   mle_tools = derive2 { name="mle.tools"; version="1.0.0"; sha256="02yndj1if31zr9y805mq5km5n8jz4w9jz1bmaz9nnqsqimrnigrb"; depends=[]; };
   mlearning = derive2 { name="mlearning"; version="1.2.1"; sha256="0fh28i36smpybhzd2kni435m7wf20i3yib6h7jy173r1v5adzkba"; depends=[class e1071 ipred MASS nnet randomForest rpart]; };
   mlegp = derive2 { name="mlegp"; version="3.1.9"; sha256="1cs0l04axp6f6f6m4h4kw8z4pasxgp5la3xib04wxzb2l4bnsab3"; depends=[]; };
+  mlelod = derive2 { name="mlelod"; version="1.0.0.1"; sha256="1rjdpc252ydxsh878nlgw65s41wl2hn5iwvd8mskxs72in9m8qsm"; depends=[]; };
   mlergm = derive2 { name="mlergm"; version="0.8"; sha256="0bpdljmbn4lfm263jcsp0hrknixn49m7hqsx0jjk3pfwhgjlajh8"; depends=[cowplot ergm GGally ggplot2 lpSolve Matrix network plyr reshape2 sna stringr]; };
   mlexperiments = derive2 { name="mlexperiments"; version="0.0.3"; sha256="0xkrppicb8h9ccnk25bl957ip6di19vk6fnc25r8q4ckpsyw2kz1"; depends=[data_table kdry progress R6 splitTools]; };
   mlf = derive2 { name="mlf"; version="1.2.1"; sha256="09ihnibpknpp26hdlbxyr99yz7z0n8qpsjs5aq3zngng0yh3wdn9"; depends=[]; };
   mlfit = derive2 { name="mlfit"; version="0.5.3"; sha256="0nyk5vmy2gkpz022djacy80gibskv96z0rsmjz2rw14zhc5kizsh"; depends=[BB dplyr forcats hms kimisc lifecycle Matrix plyr rlang tibble wrswoR]; };
-  mlflow = derive2 { name="mlflow"; version="2.11.1"; sha256="0y3xii7jw3kc6fw3qv0jig8hgjcczsm05y4gwd7c7r8y9dvna741"; depends=[base64enc forge fs git2r glue httpuv httr ini jsonlite openssl processx purrr rlang swagger tibble withr yaml zeallot]; };
+  mlflow = derive2 { name="mlflow"; version="2.13.1"; sha256="0jzqqdwychrandbcsih3g1gcpj0hg7lw53c6c762akll14g7yd5k"; depends=[base64enc forge fs git2r glue httpuv httr ini jsonlite openssl processx purrr rlang swagger tibble withr yaml zeallot]; };
   mlim = derive2 { name="mlim"; version="0.3.0"; sha256="16p3nprnxc0cghfbwcs3hf57aasqpvd4qv3wajhzrajqhmclzn0q"; depends=[curl h2o md_log memuse mice missRanger]; };
   mllrnrs = derive2 { name="mllrnrs"; version="0.0.3"; sha256="08xrinkbl4bws7hbid6907b618mqays4zimkwdni9s2amah3ja4b"; depends=[data_table kdry mlexperiments R6]; };
   mlmRev = derive2 { name="mlmRev"; version="1.0-8"; sha256="0ln4nazhc1prnlmvhfzhx268vx3klb0xnz1nsiwh0pwyskskyzym"; depends=[lme4]; };
   mlma = derive2 { name="mlma"; version="6.3-1"; sha256="16v3rwdc7kzn2k84ghkss14p1kqx86md9k1xv2k2x187f5lncamh"; depends=[abind car coxme gplots lme4 survival]; };
-  mlmhelpr = derive2 { name="mlmhelpr"; version="0.1.0"; sha256="1liqawmdz3a8jxnlbhxx9iz5nlybkyz7jr719y0xkqz4h741bj5s"; depends=[lme4 mathjaxr Rdpack]; };
+  mlmhelpr = derive2 { name="mlmhelpr"; version="0.1.1"; sha256="16p94w6lh6k5dlfmi1kfdnm7q05c0d30gf08qcm9z9mm9yyilp0d"; depends=[lme4 mathjaxr Rdpack]; };
   mlmi = derive2 { name="mlmi"; version="1.1.2"; sha256="1nkg7h0r716yv9y6xnx8qcpvrqr6cxlhqrcyiihkwgwbmkgkp5sz"; depends=[cat gsl MASS Matrix mix nlme norm]; };
   mlmm_gwas = derive2 { name="mlmm.gwas"; version="1.0.6"; sha256="14xp8k7sww1skyw5l2006gpaw2c6yrri5nmfx4yav4vqdlhcj2k1"; depends=[coxme Matrix multcomp multcompView sommer]; };
-  mlmpower = derive2 { name="mlmpower"; version="1.0.6"; sha256="1zj0irg72swii56rfx6ipjlzyvn1jickfv8aq2g301hh1npnfw1s"; depends=[cli lme4 lmerTest varTestnlme]; };
+  mlmpower = derive2 { name="mlmpower"; version="1.0.8"; sha256="0sakpiqi220j00w8s251ajaknm2lcg9jf9kif4l4qnz6z2vzn7y2"; depends=[cli lme4 lmerTest varTestnlme]; };
   mlmtools = derive2 { name="mlmtools"; version="1.0.2"; sha256="1fwa0cwrrhzxr5zkvmf0q1w2wlrhj58lwmrvqxfn00v0v9d6bi0g"; depends=[ggplot2 lme4]; };
   mlmts = derive2 { name="mlmts"; version="1.1.1"; sha256="10xy4qzdik1rjs11ql798ig7y5cm3hjc61n5dhxfzpi1w0wk3smi"; depends=[AID caret ClusterR complexplus DescTools dtw e1071 fda_usc forecast freqdom geigen ggplot2 igraph MASS Matrix MTS multiwave pracma pspline psych quantspec randomForest ranger Rdpack Rfast TSA TSclust TSdist tseries tseriesChaos tsfeatures waveslim]; };
   mlogit = derive2 { name="mlogit"; version="1.1-1"; sha256="0hyi6gi03n895iydrfr1ba2ifbsd6lyjyhkq62d95ghhniysjgkg"; depends=[dfidx Formula lmtest MASS Rdpack statmod zoo]; };
   mlogitBMA = derive2 { name="mlogitBMA"; version="0.1-7"; sha256="0q8c5897z8f519nf6p55ksc610a9dbpnah2rr4srij4gs9a4clx1"; depends=[abind BMA maxLik]; };
-  mlpack = derive2 { name="mlpack"; version="4.3.0.1"; sha256="0sam788qzqqqxs06hrzyndbkvpkyfsz4l2dfl1zrchyws7qk2rdd"; depends=[Rcpp RcppArmadillo RcppEnsmallen]; };
+  mlpack = derive2 { name="mlpack"; version="4.4.0"; sha256="0x8apd4pyyg5i326z7259y604yqcw02l1537nm83rdczrs5c9r3z"; depends=[Rcpp RcppArmadillo RcppEnsmallen]; };
   mlpwr = derive2 { name="mlpwr"; version="1.1.0"; sha256="18w0vklxy61v0r33xi57j3s76iwsb2cs2cjhg1gjyxzl07byj89j"; depends=[DiceKriging digest ggplot2 randtoolbox rgenoud rlist WeightSVM]; };
   mlquantify = derive2 { name="mlquantify"; version="0.2.0"; sha256="1fpwvix0f4bmqb1y1b6wryndqp6j24dwsspbfx1zrnhzwj1v4i9i"; depends=[caret FNN randomForest]; };
-  mlr = derive2 { name="mlr"; version="2.19.1"; sha256="00jjhvaqifj6glqsyzixlp56bvlch5smck8kk3klcmwx9pasyllx"; depends=[backports BBmisc checkmate data_table ggplot2 parallelMap ParamHelpers stringi survival XML]; };
-  mlr3 = derive2 { name="mlr3"; version="0.18.0"; sha256="0v83lwigpm227dqr8hz5x1khcjqf3q0glqvz812sckbcf74ibhdz"; depends=[backports checkmate data_table evaluate future future_apply lgr mlbench mlr3measures mlr3misc palmerpenguins paradox parallelly R6 RhpcBLASctl uuid]; };
+  mlr = derive2 { name="mlr"; version="2.19.2"; sha256="1icpa3xa0f7l40i52l3pl43m98j69r75qnqf1yp7wyh6y54p1rl5"; depends=[backports BBmisc checkmate data_table ggplot2 parallelMap ParamHelpers stringi survival XML]; };
+  mlr3 = derive2 { name="mlr3"; version="0.19.0"; sha256="0dgik4lfrw5m2sqxp33kzkdp7ihlcm27y5p5g5b9wah7h7ramiqs"; depends=[backports checkmate data_table evaluate future future_apply lgr mlbench mlr3measures mlr3misc palmerpenguins paradox parallelly R6 RhpcBLASctl uuid]; };
   mlr3batchmark = derive2 { name="mlr3batchmark"; version="0.1.1"; sha256="1qirzjmb17y1rzq69x1lpl56qk5w63zjq30if97vfab3spsd2ilf"; depends=[batchtools checkmate data_table lgr mlr3 mlr3misc uuid]; };
   mlr3benchmark = derive2 { name="mlr3benchmark"; version="0.1.6"; sha256="1bhn0lm0k9dm9mbji6cwgqkwsa1qg928fbjs8chra9s3d3bzcb0x"; depends=[checkmate data_table ggplot2 mlr3misc R6]; };
   mlr3cluster = derive2 { name="mlr3cluster"; version="0.1.9"; sha256="09fsw2b43f9m7clv1qwylimyz622snhn9ykq3xwbiric7zr4ca91"; depends=[backports checkmate clue cluster data_table fpc mlr3 mlr3misc paradox R6]; };
   mlr3data = derive2 { name="mlr3data"; version="0.7.0"; sha256="04hwmj8cdszwgd845va26pgzdw0k4cm025zjrmp3fr7ypp73mirg"; depends=[]; };
   mlr3db = derive2 { name="mlr3db"; version="0.5.2"; sha256="1cq22h9yj27ighh4clyak1xwx2wb5v4803hd7lrhnlgzs85dmhj2"; depends=[backports checkmate data_table mlr3 mlr3misc R6]; };
   mlr3fairness = derive2 { name="mlr3fairness"; version="0.3.2"; sha256="0rm6l50prwjjy55p14zs9mkdrczbyl7f63fqsmh7r5xjahcsnfi7"; depends=[checkmate data_table ggplot2 mlr3 mlr3learners mlr3measures mlr3misc mlr3pipelines paradox R6 rlang]; };
-  mlr3filters = derive2 { name="mlr3filters"; version="0.7.1"; sha256="07qgk26ls8wgf9k82xlnsjwi7mpnpgi7i2yplfb5hsqn8nfj6hcc"; depends=[backports checkmate data_table mlr3 mlr3misc paradox R6]; };
+  mlr3fda = derive2 { name="mlr3fda"; version="0.1.2"; sha256="1r1dqhh9s09vz3fsxwss7af7wb4nmm7lynh9wl67mjs52yf5d4k2"; depends=[checkmate data_table lgr mlr3 mlr3misc mlr3pipelines paradox R6 tf]; };
+  mlr3filters = derive2 { name="mlr3filters"; version="0.8.0"; sha256="16z359bc2li7f35xk4g08np3r2a3127avv0ak6bn9bywcs13z6bl"; depends=[backports checkmate data_table mlr3 mlr3misc paradox R6]; };
   mlr3fselect = derive2 { name="mlr3fselect"; version="0.12.0"; sha256="1f18y4ahnjzlwk9pfs87i80kb6z84hgyc5cdlj3mafawq790hg1h"; depends=[bbotk checkmate data_table lgr mlr3 mlr3misc paradox R6]; };
   mlr3hyperband = derive2 { name="mlr3hyperband"; version="0.5.0"; sha256="1x6vfhadxlb4c9q61d5qv957mkyfwdwchzbg3flfd0j28b4bck1p"; depends=[bbotk checkmate data_table lgr mlr3 mlr3misc mlr3tuning paradox R6]; };
   mlr3learners = derive2 { name="mlr3learners"; version="0.6.0"; sha256="06gz6h19cnb62js1b35nddy453dyj64mr788p8ww56kgfk6yzxr8"; depends=[checkmate data_table mlr3 mlr3misc paradox R6]; };
   mlr3mbo = derive2 { name="mlr3mbo"; version="0.2.2"; sha256="0jdj5dx6jb7n0g950h0j8jhafdj5mcalv5vxfiyf07myr6mjipri"; depends=[bbotk checkmate data_table lgr mlr3 mlr3misc mlr3tuning paradox R6 spacefillr]; };
   mlr3measures = derive2 { name="mlr3measures"; version="0.5.0"; sha256="0k0i1xx63lds1870p2ljy1dlp2i376gdd0sq9s4xiqljqjb8va57"; depends=[checkmate PRROC]; };
-  mlr3misc = derive2 { name="mlr3misc"; version="0.14.0"; sha256="19q20ld2phplrg6jqg849rjpi8yl3j5v1d8bgzagyyhka3nxn4fx"; depends=[backports checkmate data_table digest R6]; };
-  mlr3oml = derive2 { name="mlr3oml"; version="0.9.0"; sha256="08px4k8qrwwsay0f9h1nkpf7w30z0n4w189q2ijhb3kbrd0jhf1j"; depends=[backports bit64 checkmate curl data_table jsonlite lgr mlr3 mlr3misc paradox R6 stringi uuid withr]; };
-  mlr3pipelines = derive2 { name="mlr3pipelines"; version="0.5.0-2"; sha256="0iv09qmr1gpipcylw8mp1y7kqjljy8p5sx466l1wxfaqkf7kw15j"; depends=[backports checkmate data_table digest lgr mlr3 mlr3misc paradox R6 withr]; };
+  mlr3misc = derive2 { name="mlr3misc"; version="0.15.0"; sha256="1l40l0sx1dgs2rdblx7pd9nk93flad6y1mvppzg7qf4cyn8gfc3x"; depends=[backports checkmate data_table digest R6]; };
+  mlr3oml = derive2 { name="mlr3oml"; version="0.10.0"; sha256="0qlgqq22zy5kdgp6l6fg3yx8ywxpy4yaa2567j9z1pg5ij9yd49h"; depends=[backports bit64 checkmate curl data_table jsonlite lgr mlr3 mlr3misc paradox R6 stringi uuid withr]; };
+  mlr3pipelines = derive2 { name="mlr3pipelines"; version="0.5.2"; sha256="1glp4z5wnvcsil37gzvbvazn73088vilks9c5limnwhz8f454147"; depends=[backports checkmate data_table digest lgr mlr3 mlr3misc paradox R6 withr]; };
+  mlr3resampling = derive2 { name="mlr3resampling"; version="2024.4.14"; sha256="0fgn46vh8m9i2vb3ppkghl54a4rrp2mw8fm54l2kzj53y6hsjbvd"; depends=[checkmate data_table mlr3 mlr3misc paradox R6]; };
   mlr3shiny = derive2 { name="mlr3shiny"; version="0.3.0"; sha256="0rv5ybg6l1n7j6gq8wmvl1gd1mdmqd52vl91hkpv9k1l1w8m8mph"; depends=[data_table dplyr DT Metrics mlr3 mlr3learners mlr3measures mlr3pipelines patchwork plyr purrr shiny shinyalert shinydashboard shinyjs shinyWidgets stringr]; };
   mlr3spatial = derive2 { name="mlr3spatial"; version="0.5.0"; sha256="105wscgkrlgckrmisr1b5xf8wlj9w2w7ir8w1280isyg2zp1gva8"; depends=[checkmate data_table lgr mlr3 mlr3misc R6 sf terra]; };
-  mlr3spatiotempcv = derive2 { name="mlr3spatiotempcv"; version="2.3.0"; sha256="0a9vkq0s1g0sav78gmg0wz5yq871151rzavg6prhn4yqiznr0rwm"; depends=[checkmate data_table ggplot2 mlr3 mlr3misc paradox R6]; };
+  mlr3spatiotempcv = derive2 { name="mlr3spatiotempcv"; version="2.3.1"; sha256="04n5bzppkj9fmdhd54qk8738id0sfd3ij7p31l3hxmjbak5inh83"; depends=[checkmate data_table ggplot2 mlr3 mlr3misc paradox R6]; };
+  mlr3summary = derive2 { name="mlr3summary"; version="0.1.0"; sha256="16r9sjjjy3f3aqjw1npibqk0pwhdajh6r3rkrypjfl80mhk9fpi4"; depends=[backports checkmate cli data_table future_apply mlr3 mlr3misc]; };
   mlr3tuning = derive2 { name="mlr3tuning"; version="0.20.0"; sha256="1y1cqfqdx9v0lfb4619y2hw6clhhjzi7hjwrpwzdpd7ymcx3dgi3"; depends=[bbotk checkmate data_table lgr mlr3 mlr3misc paradox R6]; };
   mlr3tuningspaces = derive2 { name="mlr3tuningspaces"; version="0.5.0"; sha256="1snrd7xq388mvqh0ydaxvx8k9iwp40g06c3irp0m718jw3wsz5vm"; depends=[checkmate data_table mlr3 mlr3misc mlr3tuning paradox R6]; };
   mlr3verse = derive2 { name="mlr3verse"; version="0.2.8"; sha256="0ld4vch1qdq3gh8vhj38s2wz7acn5z7f8hxmnwnrq22g44gckd8s"; depends=[bbotk data_table mlr3 mlr3cluster mlr3data mlr3filters mlr3fselect mlr3hyperband mlr3learners mlr3mbo mlr3misc mlr3pipelines mlr3tuning mlr3tuningspaces mlr3viz paradox]; };
   mlr3viz = derive2 { name="mlr3viz"; version="0.8.0"; sha256="1m2f54yqhk1bd4c30vd1z509yblz6y4i8qkwhg73aa1sflnsycvf"; depends=[checkmate data_table ggplot2 mlr3misc scales viridis]; };
   mlrCPO = derive2 { name="mlrCPO"; version="0.3.7-7"; sha256="0nia2f8j5vgiradlcqi618mlv7146ml2pvbzh4p89p1pk75p6v0l"; depends=[backports BBmisc checkmate mlr ParamHelpers stringi]; };
   mlrMBO = derive2 { name="mlrMBO"; version="1.1.5.1"; sha256="16fwj7m28g4km7yalqppxmh3lw2jln0z072l6awia38qkdg6xwhc"; depends=[backports BBmisc checkmate data_table lhs mlr parallelMap ParamHelpers smoof]; };
-  mlrintermbo = derive2 { name="mlrintermbo"; version="0.5.0"; sha256="1nyaqf6vkckdh7jb27iwv5dnvrh4bp0kkc5jzbqkyi8af11phg1l"; depends=[backports bbotk callr checkmate data_table lhs mlr3misc mlr3tuning paradox R6]; };
+  mlrintermbo = derive2 { name="mlrintermbo"; version="0.5.1-1"; sha256="0hghnpsh6jm3vghn03v483cmqin2wxsvcahhzjg6x0wdszhmskhv"; depends=[backports bbotk callr checkmate data_table lhs mlr3misc mlr3tuning paradox R6]; };
   mlrpro = derive2 { name="mlrpro"; version="0.1.2"; sha256="1j8w8ji1n6cahcbyi1q4zq8gmhpcl15pb97f7bl1km29f4x4f272"; depends=[car dplyr MASS]; };
   mlrv = derive2 { name="mlrv"; version="0.1.1"; sha256="1r6q8wakvyz0d1fjc0xpl66yxj0c9jr721yx3h3986x6gi6s0k81"; depends=[doParallel foreach magrittr mathjaxr numDeriv Rcpp RcppArmadillo xtable]; };
   mlsbm = derive2 { name="mlsbm"; version="0.99.2"; sha256="1p6fflhjbbyzx51hb77aak1kdabjrmzd7b47vdcanhb0vd263aby"; depends=[Rcpp RcppArmadillo]; };
   mlsjunkgen = derive2 { name="mlsjunkgen"; version="0.1.2"; sha256="1icsssgi5xf420ajagr9nw0wgbxpfm7dsd5b7s77vyh5hsfzm1z3"; depends=[]; };
-  mlstrOpalr = derive2 { name="mlstrOpalr"; version="1.0.2"; sha256="0lifas5irjhyrys6ykbm1pji7rnhr4mg1f0asi26i8pk3048ri25"; depends=[dplyr fabR madshapR opalr rlang stringr tidyr]; };
+  mlstrOpalr = derive2 { name="mlstrOpalr"; version="1.0.3"; sha256="11h9i5yljd7k68rz1gj131yzv6idj7ji3fya7kc7rgpinivqxnxa"; depends=[dplyr fabR madshapR opalr rlang stringr tidyr]; };
   mlsurvlrnrs = derive2 { name="mlsurvlrnrs"; version="0.0.3"; sha256="0x4spjcgbqz13fxnyabd1vypbdg6r94zmh7h5h65rhnb5j8fgsm3"; depends=[data_table kdry mlexperiments mllrnrs R6]; };
-  mlt = derive2 { name="mlt"; version="1.5-0"; sha256="0l44l3p3f6px8kamli3fq479jy99wjfy8q8hkqjlwidr261bv6mz"; depends=[alabama basefun BB coneproj Matrix nloptr numDeriv sandwich survival variables]; };
-  mlt_docreg = derive2 { name="mlt.docreg"; version="1.1-7"; sha256="05vrgddg4j2yc6b07dqypid9gvvpilv9ky2bgwml0az629666111"; depends=[eha flexsurv lattice mlt multcomp numDeriv survival truncreg]; };
+  mlt = derive2 { name="mlt"; version="1.5-1"; sha256="1bhcw5b2mwvr9qsssxd9qd9qn5k0v8g925dqfm1ziycniaprm9g6"; depends=[alabama basefun BB coneproj Matrix nloptr numDeriv sandwich survival variables]; };
+  mlt_docreg = derive2 { name="mlt.docreg"; version="1.1-8"; sha256="1hyzfz2s27n4bavz9b9g50w5fdhinj4dgijadbll52dih7v97dnl"; depends=[eha flexsurv lattice mlt multcomp numDeriv survival truncreg]; };
   mltest = derive2 { name="mltest"; version="1.0.1"; sha256="14gyssfph088v936mpywmd4y8z9vdv0zk8638vlg23j8cf5j4al2"; depends=[]; };
   mltools = derive2 { name="mltools"; version="0.3.5"; sha256="045v28w7vz1zjxim8vfc6ncvg2mavr1q332x0hzlqpfzrk7gz4vh"; depends=[data_table Matrix]; };
   mlxR = derive2 { name="mlxR"; version="4.2.0"; sha256="0pr564376q7pn0wbbw5q9mjfzdc0bpq1g4xj0bcdmb64binqllvb"; depends=[ggplot2]; };
@@ -13784,20 +14013,18 @@ in with self; {
   mmconvert = derive2 { name="mmconvert"; version="0.10"; sha256="1bmvcvkisqmfnpwwwb8fvnqq5fbdd6ppsi6iw9parbmzrnir8zmj"; depends=[Rcpp]; };
   mme = derive2 { name="mme"; version="0.1-6"; sha256="1k60y1yrf7fv939v32kf3il7r3cws0kih4bpm0ap28fvbx3vr3yb"; depends=[MASS Matrix]; };
   mmeln = derive2 { name="mmeln"; version="1.5"; sha256="06knagiyhm24rk4m2p7yz61sscxplwpwbwf1356jazxp7y0v61xp"; depends=[]; };
-  mmeta = derive2 { name="mmeta"; version="3.0.0"; sha256="088mynadrcwrw7g31f6p0g3ykq2q44mwsbpp056v8s19hq5pxjn1"; depends=[aod ggplot2]; };
   mmiCATs = derive2 { name="mmiCATs"; version="0.1.1"; sha256="1dnh77ac2m8sbv3ly1wny2nn86f13bs90f91gzzy83x2r4a3bvfj"; depends=[broom broom_mixed clusterSEs DT lmerTest MASS mmcards robust robustbase shiny shinythemes]; };
-  mmibain = derive2 { name="mmibain"; version="0.1.1"; sha256="0m7ivz6ms06s9zh2696jz04cb1p8xhpippygvil9f16259a8yvrw"; depends=[bain broom car e1071 igraph lavaan mmcards psych shiny shinythemes]; };
+  mmibain = derive2 { name="mmibain"; version="0.2.0"; sha256="1ii2lfsbmp0n85a3y76zp87fpj5nm5ndigjyl09sl0cl2g8q7ql7"; depends=[bain broom car DT e1071 ggplot2 igraph lavaan mmcards psych shiny shinythemes]; };
   mmirestriktor = derive2 { name="mmirestriktor"; version="0.2.1"; sha256="1qgj3rrri87dj3h3v6r7f5kjyy8b85qn0s7i62qll0lf8fnj334d"; depends=[DT MASS mmcards restriktor shiny shinythemes]; };
   mmmgee = derive2 { name="mmmgee"; version="1.20"; sha256="0y3pwnc9h7y2l9cvgfl62nl1vnnkla2y8082jhdvxsb3mk88rgad"; depends=[Matrix mvtnorm]; };
   mmod = derive2 { name="mmod"; version="1.3.3"; sha256="1dz6887mlqbagjj98wcabmxj9hvsz8pgsizy1fqkwjhhs44c62y4"; depends=[adegenet pegas]; };
   mmodely = derive2 { name="mmodely"; version="0.2.5"; sha256="0fw2ncva8y5jxybi51bbqygkag5zaswni8bfg4gf78yjvjw3iyj5"; depends=[ape caper caroline]; };
   mmpca = derive2 { name="mmpca"; version="2.0.3"; sha256="1kzjwl0sn8cdgw3jw95lg90vgh47iw293ffn7c0fb9kgxisd6dma"; depends=[digest Rcpp RcppEigen RcppGSL]; };
-  mmpf = derive2 { name="mmpf"; version="0.0.5"; sha256="1w1ll1l7yzwb1wmlrcfpgqyzni7yb20kxy422y867hx2ndxlfwpz"; depends=[checkmate data_table]; };
   mmpp = derive2 { name="mmpp"; version="0.6"; sha256="16aypjf4i0ya3qgxqrrg8y0xbnq1pnqky1dpkgln5q494hphyg91"; depends=[]; };
   mmr = derive2 { name="mmr"; version="0.1.0"; sha256="0by2v47b4kpjhfxzzl6kc1shw7g46nwnww4rq333r2cywvrbkk4w"; depends=[]; };
   mmrm = derive2 { name="mmrm"; version="0.3.11"; sha256="1w7kpjsa59zri2jqaxlr4b7lg57xrnnwlak9wb6midlb3n8pw5f1"; depends=[checkmate generics lifecycle Matrix nlme Rcpp RcppEigen Rdpack stringr testthat tibble TMB]; };
   mmsample = derive2 { name="mmsample"; version="0.1"; sha256="0mdd2zryadd31a5pls5fvlxx52mr54jsi1i6mwrs4y7rl3i9v95z"; depends=[MASS Rcpp RcppArmadillo]; };
-  mmstat4 = derive2 { name="mmstat4"; version="0.1.6"; sha256="0glbf5s0d0l52by6iygnmr9yz6gw1mycgypfkfciixys4zii9ylj"; depends=[digest httr rappdirs rio rstudioapi shiny]; };
+  mmstat4 = derive2 { name="mmstat4"; version="0.2.1"; sha256="0n6vj5s5jlj09nmzhyv64ll07s4q7ci0q80xvl9zpa3idmbqjw24"; depends=[crayon digest httr knitr rappdirs reticulate rio rstudioapi shiny stringdist]; };
   mmtsne = derive2 { name="mmtsne"; version="0.1.0"; sha256="1by0hrggla6idc1isnq072i1wfpw4x7id3hkg8l65gy8iycccd12"; depends=[]; };
   mnda = derive2 { name="mnda"; version="1.0.9"; sha256="1lmkxdfym1jfq05vpjky1b6nz1xwzsdh9mz3017v23qyg7dmbzyi"; depends=[aggregation assertthat ggplot2 ggraph igraph keras magrittr MASS Matrix reticulate tensorflow usethis]; };
   mnet = derive2 { name="mnet"; version="0.1.2"; sha256="02chp8g5303nbcbvfmm10lh63170290fyg9kbfxgr2krg08gbr1v"; depends=[doParallel foreach mlVAR]; };
@@ -13820,7 +14047,7 @@ in with self; {
   mod09nrt = derive2 { name="mod09nrt"; version="0.14"; sha256="1wn1y33bj9r712l0f063j5gcl423anjzmvgfy0ddihcrbpz4l7a0"; depends=[]; };
   mod2rm = derive2 { name="mod2rm"; version="0.2.1"; sha256="1adx8ndz299hzlljahvbv1px60dfchwh2ic6njr12k3zcm52rsby"; depends=[ggplot2 scales]; };
   modACDC = derive2 { name="modACDC"; version="2.0.1"; sha256="1djgkch4lyca46vy8djqfk3qwi8zx21j4hkwylkydlgl9fzk59j3"; depends=[CCP data_table doParallel foreach genieclust genio ggplot2 partition tibble tidyr]; };
-  modEvA = derive2 { name="modEvA"; version="3.13.3"; sha256="1j1i9dyanv23szfsn0v1s4is2w5a5gvf9blg29q28ymn7v4xhig9"; depends=[terra]; };
+  modEvA = derive2 { name="modEvA"; version="3.17"; sha256="1c7kv3jn38kxxxgzmpanla5jnhadh3qzvjw8w5bivdmv1gda6yzj"; depends=[terra]; };
   modMax = derive2 { name="modMax"; version="1.1"; sha256="1mx4623az7vzaqf530pklx7j92qwwq93pa2416lnr24jjcxgva2h"; depends=[gtools igraph]; };
   modQR = derive2 { name="modQR"; version="0.1.3"; sha256="15ks5i7s19r4s9faxn36qlcf4y150b6xji970kxgilcgxvfqkgd8"; depends=[geometry lpSolve]; };
   modTurPoint = derive2 { name="modTurPoint"; version="0.1.0"; sha256="1m24vsi80ln1r7sr40pipaaanyc60yfxmjzf8l7nfy3yvyr8zqpn"; depends=[]; };
@@ -13832,26 +14059,26 @@ in with self; {
   modelObj = derive2 { name="modelObj"; version="4.2"; sha256="0qj8ri7aw9lc7cc7rcs618bcbarcs29zgbz8l74s55qajvwpssg0"; depends=[]; };
   modelSSE = derive2 { name="modelSSE"; version="0.1-3"; sha256="0fqxwdsvfpzd182pwwib2ci6q76hzlw5ykkwzk20l5hglhdf057q"; depends=[Delaporte]; };
   modelStudio = derive2 { name="modelStudio"; version="3.1.2"; sha256="10d1z0l5wfbyl2dm4n705bmj8wa5a99jnp4w6z66bx7cqamxapa3"; depends=[DALEX digest iBreakDown ingredients jsonlite progress r2d3]; };
-  modelbased = derive2 { name="modelbased"; version="0.8.7"; sha256="0xzayaxqlmzgpsc80gabmhwy1mv1cdn1zp9mkq9bmcgh6p3635vw"; depends=[bayestestR datawizard effectsize insight parameters performance]; };
+  modelbased = derive2 { name="modelbased"; version="0.8.8"; sha256="0fksigmpps5xrxqk2v7afm1zsg87mc11bfid160f84wixfk7hqw6"; depends=[bayestestR datawizard effectsize insight parameters performance]; };
   modelbpp = derive2 { name="modelbpp"; version="0.1.3"; sha256="1mji4i8xpl833lhs6prbvfy6vz4276qhi4zidy8rhdl6szvq8r6s"; depends=[igraph lavaan pbapply]; };
   modelc = derive2 { name="modelc"; version="1.0.0.0"; sha256="0xz1zgv5yyvq0yfnhm1kvb4wvlyn4ccd0lkwji55vq8hndvjvk98"; depends=[]; };
   modeldata = derive2 { name="modeldata"; version="1.3.0"; sha256="035gyxgs9byij9d5vpw35a96f7xlhfj3k6c140mql4yfplm5rk23"; depends=[dplyr MASS purrr rlang tibble]; };
-  modeldatatoo = derive2 { name="modeldatatoo"; version="0.2.1"; sha256="0qric17sxfy4w4pgp8cvmm30vq9lddk58hzqrm5f7s63ydjb4n2i"; depends=[pins]; };
+  modeldatatoo = derive2 { name="modeldatatoo"; version="0.3.0"; sha256="07wjrwgmg96gj8mxsx8g33l3609hrk4wvw31ml1sw3jgxpfziw7r"; depends=[pins]; };
   modeldb = derive2 { name="modeldb"; version="0.3.0"; sha256="109ggy93ikcc5mv8jx8z8kx41pzzbz96mgqzwf8z7175ir6bql6z"; depends=[cli dplyr ggplot2 progress purrr rlang tibble tidypredict]; };
   modelenv = derive2 { name="modelenv"; version="0.1.1"; sha256="1pnc3bs2fzanqzjv2y8a7yy6s8hmwwsccjc8pvifff5kp557a6di"; depends=[glue rlang tibble vctrs]; };
   modelfactory = derive2 { name="modelfactory"; version="1.0.0"; sha256="1bdcfcbd1lnx683npvwbxigqg3mbgnm2ji46nfywbay6disrc15h"; depends=[dplyr MASS tibble]; };
   modelfree = derive2 { name="modelfree"; version="1.2"; sha256="08kqc5a5ray0wgnd8c6d1frqzg9q990j1p78j7j7c5xll402c8ns"; depends=[PolynomF SparseM]; };
+  modelgrid = derive2 { name="modelgrid"; version="1.2.0"; sha256="0i8sdyp5ngpwzjcqyk4galnn42vzqspndffj7kcimikvrk30b4d7"; depends=[caret dplyr magrittr purrr]; };
   modelimpact = derive2 { name="modelimpact"; version="1.0.0"; sha256="16sy7r6bw5nzx77rd27ihgvp7bs39xchgid94ssklj6syc3kn2vq"; depends=[dplyr magrittr]; };
   modelr = derive2 { name="modelr"; version="0.1.11"; sha256="1lvv6gac3g4x1d58chbvlxlkd77qz21a3rlb64jvzwycx43dbswl"; depends=[broom magrittr purrr rlang tibble tidyr tidyselect vctrs]; };
-  modelsummary = derive2 { name="modelsummary"; version="1.4.5"; sha256="1jams44j0alfpk2lza4w2yfmq2h12kxnbhznndyz57pfajyh7glx"; depends=[checkmate data_table generics glue insight kableExtra parameters performance tables tinytable]; };
-  modeltests = derive2 { name="modeltests"; version="0.1.5"; sha256="032rd168blk73147fvxxxfnzwwmb92252qpdk5ljcb2mzv3id7x3"; depends=[dplyr generics purrr testthat tibble]; };
+  modelsummary = derive2 { name="modelsummary"; version="2.1.1"; sha256="1sqb5c34ymv2bvkrc2c3fd24ajjn2zz0rhasv3gdmbrp8fxgyxf8"; depends=[checkmate data_table generics glue insight parameters performance tables tinytable]; };
+  modeltests = derive2 { name="modeltests"; version="0.1.6"; sha256="112pwkrg3d1lmcqhs946nm4dxhp9h7gvjibvhcjzlmd1d0qhlivc"; depends=[dplyr generics purrr testthat tibble]; };
   modeltime = derive2 { name="modeltime"; version="1.2.8"; sha256="1wvmz4wr972msfrld26ygahn1sky3p10x18975kbaksrw8qgz4ag"; depends=[cli dials doParallel dplyr forcats foreach forecast ggplot2 glue gt hardhat janitor magrittr parallelly parsnip plotly prophet purrr reactable rlang scales StanHeaders stringr tibble tidymodels tidyr tidyverse timetk workflows xgboost yardstick]; };
-  modeltime_ensemble = derive2 { name="modeltime.ensemble"; version="1.0.3"; sha256="17mnz2x7i540gzwpqca106saafvsns9ar1q09pnnzkx2m4xv322i"; depends=[cli doParallel dplyr foreach generics glue magrittr modeltime modeltime_resample parsnip purrr recipes rlang rsample stringr tibble tictoc tidyr timetk tune workflows yardstick]; };
   modeltime_resample = derive2 { name="modeltime.resample"; version="0.2.3"; sha256="0prc4q5s6iwhknxlbaq43cyhmzwnmi52akpaf1zizw4c6flgny3v"; depends=[cli crayon dials dplyr forcats ggplot2 glue hardhat magrittr modeltime parsnip plotly progressr purrr recipes rlang rsample stringr tibble tictoc tidyr timetk tune workflows yardstick]; };
   modeltools = derive2 { name="modeltools"; version="0.2-23"; sha256="1vqh69256h344sbj5affm0kmc77dakrxp6442xfdnfd0y5d8sgkb"; depends=[]; };
   modelwordcloud = derive2 { name="modelwordcloud"; version="0.1"; sha256="0ardib0h923i7jk8bgcq6pn2zazx9acf9sdggifsk46hdz8hvqnm"; depends=[]; };
   moder = derive2 { name="moder"; version="0.2.1"; sha256="19lz6jl9lhzwafmxx8yp7sx5lkz2xixk2yl5ys5l82am402d1wwb"; depends=[]; };
-  moderate_mediation = derive2 { name="moderate.mediation"; version="0.0.8"; sha256="1rzn9s9zxwwwamgjrr925q59h3pywvsl4k0wahm1b5m9cii0g1bl"; depends=[cowplot distr doSNOW earth foreach ggplot2 mvtnorm reshape2 scales]; };
+  moderate_mediation = derive2 { name="moderate.mediation"; version="0.0.10"; sha256="1xpyjrp5mxlca9naiz7npa2gqqx9py74w8k4c81djwjxqgn93g60"; depends=[cowplot distr doSNOW earth foreach ggplot2 mvtnorm reshape2 scales]; };
   modernVA = derive2 { name="modernVA"; version="0.1.3"; sha256="0hk98m83gpy12yffj4hl3qjl6fc75hsmw8j2577w4j073aml8x6p"; depends=[]; };
   moderndive = derive2 { name="moderndive"; version="0.5.5"; sha256="0bgq6wsyyi6nsxqqh2k3zsmk64pfvb57z8pzk8ych3xih491hzlm"; depends=[broom dplyr formula_tools ggplot2 glue infer janitor knitr magrittr rlang stringr tibble]; };
   modest = derive2 { name="modest"; version="0.3-1"; sha256="07rs014hdcabp2n0gg14pz2gmqgbw38vjv7a80vkzzh3601hxqws"; depends=[knitr rhandsontable shiny shinyBS]; };
@@ -13862,13 +14089,13 @@ in with self; {
   modmarg = derive2 { name="modmarg"; version="0.9.6"; sha256="1l57sqhv1xm5g3z9rdlhkkq6gpbn7a3z8bk4dhvzm44xcfv8hi3i"; depends=[]; };
   modnets = derive2 { name="modnets"; version="0.9.0"; sha256="01mh7sbgq3796h6ciih5xww8hm0xn8975jv0784yw15hxhzfchci"; depends=[abind corpcor ggplot2 glinternet glmnet gridExtra gtools igraph interactionTest leaps lme4 lmerTest Matrix mvtnorm pbapply plyr psych qgraph reshape2 systemfit]; };
   modopt_matlab = derive2 { name="modopt.matlab"; version="1.0-2"; sha256="0g5mswalv4y7p1k3n8a6qf7wb072m4bjq2ml2j83dz2j2bmvygsd"; depends=[ROI ROI_plugin_glpk ROI_plugin_quadprog]; };
-  modsem = derive2 { name="modsem"; version="0.1.0"; sha256="1blww1n3kr994s793nmwmcbw4vihzcsg8lyrkma1mxpf3a8c4w7w"; depends=[dplyr lavaan MplusAutomation nlsem purrr R6 Rcpp rlang stringr]; };
+  modsem = derive2 { name="modsem"; version="0.1.4"; sha256="06abbk34blacwf7w38fxjh88l26v7wcpg8svmj76ll2pssybxv8r"; depends=[dplyr gaussquad ggplot2 lavaan MplusAutomation mvnfast mvtnorm nlme purrr R6 Rcpp RcppArmadillo rlang stringr]; };
   moduleColor = derive2 { name="moduleColor"; version="1.8-4"; sha256="0p45cc21vxjgjn91n0s09l20mf4a8vrkh1d9i27ndn5msrpwn15k"; depends=[dynamicTreeCut impute]; };
   modules = derive2 { name="modules"; version="0.13.0"; sha256="1z67nyjxcvz8hrmzbj2igvb43lgrn7s977r7wmfjdnr7cvr44fsm"; depends=[]; };
   moexer = derive2 { name="moexer"; version="0.3.0"; sha256="09jr2vhj00k1cv1a0ki68mkd3mhky3smxwkaxw2m2d0h8w34jsyi"; depends=[assertthat cli dplyr ggplot2 glue httr jsonlite lubridate purrr readr rlang stringr tibble]; };
   mogavs = derive2 { name="mogavs"; version="1.1.0"; sha256="0lhmwdv991bv7j8k066jr7ii94w60ydjpf5pzmv8jlblf3w2pr02"; depends=[cvTools]; };
   mojson = derive2 { name="mojson"; version="0.1"; sha256="077c92jhizpvg5gdwq1zb0d74m743l5qylj6df8hhgyvahswnhnq"; depends=[compareDF iterators magrittr RJSONIO stringr tidyr]; };
-  mokken = derive2 { name="mokken"; version="3.1.0"; sha256="1lm5wjczk6ibma3jxvj8pnc7n7zdb40sn692w958p7q6xmqd25nd"; depends=[poLCA Rcpp]; };
+  mokken = derive2 { name="mokken"; version="3.1.1"; sha256="0jnc3gsa4qfl4f6pg42m3mqncz0dgmdlx5jwhr0ck4gy02rpjv59"; depends=[poLCA Rcpp]; };
   molaR = derive2 { name="molaR"; version="5.3"; sha256="01l68a4jsp0dlylnp9ij1db0q4510l38jlql787bi6ah07xwf8zq"; depends=[alphahull pracma rgl Rvcg]; };
   mombf = derive2 { name="mombf"; version="3.5.4"; sha256="0pyq8jlx36075b77p5kalq5fn0y8f3s7l8crn3gvpjmp9shqv22y"; depends=[dplyr glasso glmnet intervals Matrix mclust mgcv mvtnorm ncvreg pracma Rcpp RcppArmadillo sparseMatrixStats survival]; };
   momentchi2 = derive2 { name="momentchi2"; version="0.1.5"; sha256="1fv0jmwws4mkl9dsaybfpj29ncvqx2idsijgwz2qjblcg309a6k9"; depends=[]; };
@@ -13878,7 +14105,7 @@ in with self; {
   monaco = derive2 { name="monaco"; version="0.2.2"; sha256="109m9rvy39bp7j3jj8y6qdr4dran0qqvcx267mvil9c8ipxr89ms"; depends=[htmltools htmlwidgets rstudioapi shiny]; };
   monashtipr = derive2 { name="monashtipr"; version="0.1.0"; sha256="050xa9ghhf5xy76vndry7rhqn3hn0lhz6wjwz9vxk6mcfy5j2wq5"; depends=[glue httr lifecycle magrittr purrr rlang rvest xml2]; };
   mondate = derive2 { name="mondate"; version="1.0"; sha256="1spz3xv450mw0i984hjp6r4lk653nmjawf9cipv9z7isc4zv3ac3"; depends=[]; };
-  mongolite = derive2 { name="mongolite"; version="2.7.3"; sha256="0ddzxqcp756yl9jn690bnzn54cb51i2vg3ciyc88sn1yms1vkfnm"; depends=[jsonlite mime openssl]; };
+  mongolite = derive2 { name="mongolite"; version="2.8.0"; sha256="0hmh7rvzjrmmq0rxs510lw0829h4fqrfhpszi7sz48zl2yp85zwn"; depends=[jsonlite mime openssl]; };
   mongopipe = derive2 { name="mongopipe"; version="0.1.1"; sha256="081l6d1kwh30wq5kwz9dd2a9221x9139x1xbvfiqixwv0g9sjjy0"; depends=[jsonlite magrittr rlang]; };
   monitOS = derive2 { name="monitOS"; version="0.1.5"; sha256="0hdyxb1f2hy3fjbmjf60xnb0x61cga047g007jr9rpb5cimnpk7b"; depends=[glue shiny shinydashboard]; };
   monitoR = derive2 { name="monitoR"; version="1.0.7"; sha256="1h1g0m1j13mz37xxwck4s7a0bfqvi0nrzfw60j7bkzaah8zxcc9n"; depends=[tuneR]; };
@@ -13895,10 +14122,10 @@ in with self; {
   monreg = derive2 { name="monreg"; version="0.1.4.1"; sha256="1i0dxv6azb6x2i7yd9w0254b50qgiidccrn5jn6rqvb5y3dj2rn1"; depends=[]; };
   moodef = derive2 { name="moodef"; version="1.1.0"; sha256="03crry7lkk04nm6vh9fgzmyq27xvzs4c8nal1j46bbrkb8i984bq"; depends=[blastula glue magick purrr readr readxl snakecase tibble tidyr xlsx xml2]; };
   moodleR = derive2 { name="moodleR"; version="1.0.1"; sha256="0wbrnbs03i6xzyhq82d75yjryfqfl11k55sj9h0j9f7z46dq7glp"; depends=[anytime cli config DBI dplyr ggplot2 ggwordcloud glue lifecycle rlang RMariaDB RPostgres RSQLite scales stringr tidytext usethis]; };
-  moodlequizR = derive2 { name="moodlequizR"; version="2.1.0"; sha256="0riwdmf0hmmywdi5zib8zwjfmifvlrfjm10amryzyrwj5jj74689"; depends=[base64 mvtnorm shiny]; };
+  moodlequizR = derive2 { name="moodlequizR"; version="2.1.1"; sha256="1bigckdga0jqn0qx5y2x0g74g1ln2hmsdyrjvfmp0cvmscr9w271"; depends=[base64 mvtnorm NMcalc shiny]; };
   moonBook = derive2 { name="moonBook"; version="0.3.1"; sha256="1ml4vvm0mvrprpyi0l50aw38brx18bk2qny4gybmkvlbakalz9bx"; depends=[crayon magrittr nortest sjmisc stringr survival]; };
   moose = derive2 { name="moose"; version="0.0.1"; sha256="06zjg3dbb4ascnbi3k2cpzswi2mybdbm55d3d5zj17bpa6j0j4cz"; depends=[]; };
-  mop = derive2 { name="mop"; version="0.1.1"; sha256="0vi9ff1mmpz1ihkmvddfwxh3x5zrdxbc3m2drnpsifil3sg2d9x8"; depends=[doSNOW foreach Rcpp snow terra]; };
+  mop = derive2 { name="mop"; version="0.1.2"; sha256="1x17mnh2lrgkqr1nzhk5dxmwpv9812i3ryvlspqhbrfadj3s76l7"; depends=[doSNOW foreach Rcpp snow terra]; };
   mopac = derive2 { name="mopac"; version="0.1.0"; sha256="07ljy6rwicyrv20l7zyxq2lb7qqfpl5mpv834m2n5c4air7sy23m"; depends=[]; };
   moreparty = derive2 { name="moreparty"; version="0.4"; sha256="0zny9bffj8dfl6i76ylrcgrbfbawk6aksdfkn4vf57zg7qfv0yqh"; depends=[datamods DT foreach ggplot2 iml MASS measures party partykit pdp phosphoricons plyr rclipboard rlang shiny shinyWidgets varImp vip]; };
   morepls = derive2 { name="morepls"; version="0.1"; sha256="14rpzq9833b5idf8jzx83rdmy3w7bk44iafpf5ynlnvz7lyc96fv"; depends=[ggplot2 ggrepel pls rlang]; };
@@ -13908,6 +14135,7 @@ in with self; {
   morphemepiece_data = derive2 { name="morphemepiece.data"; version="1.2.0"; sha256="1fs1g5vv5qwrab0cj5wff4r9skiaa5mwfawa2j32skga6niaqydz"; depends=[]; };
   morpheus = derive2 { name="morpheus"; version="1.0-4"; sha256="0y9immrs87yghp0j1h0vp1fhiah5wddfj6pj2hgcqch1imxprhy7"; depends=[jointDiag MASS pracma]; };
   morphomap = derive2 { name="morphomap"; version="1.5"; sha256="0kin6jvg3vlsbga0zr34nnq1zixicw7vsphiw45aifyfbnwiw0av"; depends=[Arothron colorRamps DescTools geometry lattice mgcv Morpho oce rgl Rvcg sp]; };
+  morrowplots = derive2 { name="morrowplots"; version="0.1.0"; sha256="09kpsarbv32cylr0qp067m184lnj95p50ayi49w7sgwrs70xdanb"; depends=[]; };
   morse = derive2 { name="morse"; version="3.3.2"; sha256="0534k96fhfdkfr3dh6q85fmsqqld7xv1zxvikwcb6z6by3nr9cpp"; depends=[coda deSolve dplyr epitools ggplot2 gridExtra magrittr reshape2 rjags tibble tidyr zoo]; };
   mort = derive2 { name="mort"; version="0.0.1"; sha256="09z5j2kknm8jk9153hxkyw5wk08bl2733jjdgy3g0iwna6fl5wrr"; depends=[lubridate rlang]; };
   mortAAR = derive2 { name="mortAAR"; version="1.1.6"; sha256="1n3s704k2lqpcbzk8rqa28jcqz37g2bdjkj6x1bygcbfdic2z0dc"; depends=[magrittr Rdpack reshape2 rlang tibble]; };
@@ -13929,7 +14157,7 @@ in with self; {
   mousetrap = derive2 { name="mousetrap"; version="3.2.3"; sha256="05dxbzwghm8gj6jwwy9wyz0xwyrj614x7db00zlb3gwz1kkyd9sz"; depends=[cstab diptest dplyr fastcluster fields ggplot2 lifecycle magrittr pracma psych RColorBrewer Rcpp rlang scales tidyr]; };
   movMF = derive2 { name="movMF"; version="0.2-8"; sha256="1rxi0qk5lg4nyhsbmpdkfj9ygnhx8zdkamb6s5hyjgw5z6lm6ni6"; depends=[clue skmeans slam]; };
   move = derive2 { name="move"; version="4.2.4"; sha256="1i6qyx4i8vb2g7i8c2hwjia81m2wd3pyvp6hf6f64j4lcrnafqz7"; depends=[geosphere httr memoise raster Rcpp sp terra xml2]; };
-  move2 = derive2 { name="move2"; version="0.2.7"; sha256="1r6xz7848g3fykm4l4iqf08ylyi9sg25y37h3iwcaj4zsdpj28l4"; depends=[assertthat bit64 cli dplyr rlang sf tibble tidyselect units vctrs vroom]; };
+  move2 = derive2 { name="move2"; version="0.3.0"; sha256="0ms6s0znjdrf7sfs7ydy6jfic39xi8fbd4r89z3scks7lhm0q1qb"; depends=[assertthat bit64 cli dplyr rlang sf tibble tidyselect units vctrs vroom]; };
   moveHMM = derive2 { name="moveHMM"; version="1.9"; sha256="0dq6p13rfv0dryl323zqc0ix12vzn0qaykb9qnxiipwvj0j3qmz2"; depends=[boot CircStats geosphere ggmap ggplot2 MASS numDeriv Rcpp RcppArmadillo sp]; };
   moveWindSpeed = derive2 { name="moveWindSpeed"; version="0.2.4"; sha256="0gj8qivwgxh9xzyfldb5hqmd8qi2q9xcazdl9iz39fxvwdshravz"; depends=[move Rcpp]; };
   movecost = derive2 { name="movecost"; version="2.1"; sha256="1rq0q8myszcssdxn77lrf7z6yisc5318k32qxaj98rpggr7pfs93"; depends=[chron elevatr gdistance Matrix raster sf sp terra]; };
@@ -13939,8 +14167,9 @@ in with self; {
   mp = derive2 { name="mp"; version="0.4.1"; sha256="0awvwqwb25q47j14b450k1k5mh2yzwhn7gizjv5j7lyiamk30iwq"; depends=[Rcpp RcppArmadillo]; };
   mpae = derive2 { name="mpae"; version="0.1.2"; sha256="0a6fbnqvp0fhbni0qivnrcdmbvlzy6biv5qgk9d13ydqaz15vbms"; depends=[caret RcmdrMisc]; };
   mpath = derive2 { name="mpath"; version="0.4-2.25"; sha256="1131bmp0jqz846snjbg57pd8kmn2jynz4xsck119qxspclw476ab"; depends=[bst doParallel foreach glmnet MASS numDeriv pamr pscl WeightSVM]; };
-  mpathsenser = derive2 { name="mpathsenser"; version="1.2.2"; sha256="04yhhwphkrsbrlmalzknf7n4x1kc3pfjpsz4zkhj4g1h7ajviq5j"; depends=[DBI dbplyr dplyr furrr jsonlite lifecycle lubridate purrr rlang RSQLite tibble tidyr]; };
+  mpathsenser = derive2 { name="mpathsenser"; version="1.2.3"; sha256="12hhcw76gn7mfd3xjsb7an7bwz95any8l89pglrk0bmj8iwhsns2"; depends=[DBI dbplyr dplyr furrr jsonlite lifecycle lubridate purrr rlang RSQLite tibble tidyr]; };
   mpindex = derive2 { name="mpindex"; version="0.2.1"; sha256="1csza6krcjclp98b9wj424vkmq5jfg2pglqrsp72pwagpas4dsg7"; depends=[dplyr jsonlite openxlsx purrr stringr tibble tidyr]; };
+  mpitbR = derive2 { name="mpitbR"; version="1.0.0"; sha256="01p82d0dzjlq3b0zyg25i7fh6l0amj55kcavcysqsjy2i0352fvb"; depends=[purrr survey]; };
   mplot = derive2 { name="mplot"; version="1.0.6"; sha256="15cmwk4lphxy5p3azy9lwhij76127h9g4g1j1sv59mbqvrqid0sk"; depends=[bestglm doParallel doRNG dplyr foreach ggplot2 glmnet googleVis leaps magrittr plyr reshape2 scales shiny shinydashboard tidyr]; };
   mplusParallel_automation = derive2 { name="mplusParallel.automation"; version="0.0.1.1"; sha256="012zbd09vqln1xb8lj6akiv1nyhiayiwiwbk8q70yv1mfpj5jgpm"; depends=[dplyr furrr future MplusAutomation]; };
   mpm = derive2 { name="mpm"; version="1.0-23"; sha256="1jpv2ddmw7aarqbbyfys1yb840arw33319wnny3v2hk84hldmayj"; depends=[KernSmooth MASS]; };
@@ -13961,14 +14190,14 @@ in with self; {
   mra = derive2 { name="mra"; version="2.16.11"; sha256="0268msdy4cs2ifpagmwiabi6aav54ckn214ai18aqv2h97hmixw0"; depends=[]; };
   mratios = derive2 { name="mratios"; version="1.4.2"; sha256="18pi0dks0qmw0gv76yqm4gvxdqrcvr25j1vb8k4mkp5p35kzkzff"; depends=[multcomp mvtnorm survival survPresmooth]; };
   mrbayes = derive2 { name="mrbayes"; version="0.5.1"; sha256="11n3d18di01vmwqs5a0i1h8839aammzbcavi1jk58bmrwb3l771j"; depends=[BH plyr Rcpp RcppEigen rstan rstantools StanHeaders]; };
-  mrbin = derive2 { name="mrbin"; version="1.7.4"; sha256="11k7k88ax9jpad32nbv52hkdrsh1px1aid3j54gbmvhf3kbqasmd"; depends=[]; };
+  mrbin = derive2 { name="mrbin"; version="1.7.5"; sha256="1pa6acqry480xf2hng10m2i3wlh9k5rxfxl8zarlpcczg8pb1pv2"; depends=[]; };
   mrbsizeR = derive2 { name="mrbsizeR"; version="1.3"; sha256="150ipzlkfzl3dpl4pkjdnrcxr82x9pb2rzhmgl3f02xd35x6am5z"; depends=[fields maps Rcpp]; };
   mrct = derive2 { name="mrct"; version="0.0.1.0"; sha256="0sgdkkg7x3zly7s35gz7mz79wrwlvnrp8mm7rabqs2lw7lc93lza"; depends=[fda fdapace ggplot2 Rdpack reshape2 robustbase]; };
   mrds = derive2 { name="mrds"; version="2.3.0"; sha256="1arp1nk393wbbvasvsp3mb08lbvl3y38bw06sxyk148za3lnhkhq"; depends=[mgcv numDeriv optimx Rsolnp]; };
   mreg = derive2 { name="mreg"; version="1.2.1"; sha256="1j958jkibjlvjh0nwbwmqk7imcv3srhnzg28gs9j5p8xhyx12i0f"; depends=[]; };
   mrf = derive2 { name="mrf"; version="0.1.6"; sha256="0jqpx0ng0l8f7y941awpi82yqbv8ir0sixiw6zdkqpj82d9a7j9m"; depends=[DEoptim forecast limSolve monmlp nnfor]; };
   mrf2d = derive2 { name="mrf2d"; version="1.0"; sha256="0fmxn178bkw77iz51bnjxala9xmhs44km57m8msvlw0k69sddyif"; depends=[dplyr ggplot2 Rcpp RcppArmadillo Rdpack tidyr]; };
-  mrfDepth = derive2 { name="mrfDepth"; version="1.0.16"; sha256="1xxq8in957zk04n4zha05p65y0h72gvfgmbqdv7b6cmwdmmms3hj"; depends=[abind geometry ggplot2 matrixStats Rcpp RcppArmadillo RcppEigen reshape2]; };
+  mrfDepth = derive2 { name="mrfDepth"; version="1.0.17"; sha256="05k7pzjry3dd7api52wlybl7k83jq0v6a306sdl9wcsqv95lw0mc"; depends=[abind geometry ggplot2 matrixStats Rcpp RcppArmadillo RcppEigen reshape2]; };
   mrfse = derive2 { name="mrfse"; version="0.4.1"; sha256="1kk6j7x4z4vaiwnd2mv2brzd1z7g4kyxxylxf31971i6klnsn4zb"; depends=[gtools Rcpp Rfast]; };
   mrgsim_parallel = derive2 { name="mrgsim.parallel"; version="0.2.1"; sha256="074c47fkwy5n9x89dswi3ybnck1f0rlbyad6by32jyslw8bz76ln"; depends=[callr dplyr fst future future_apply mrgsolve]; };
   mrgsim_sa = derive2 { name="mrgsim.sa"; version="0.2.0"; sha256="1ag6zxfyrcm1lipab6kpjbphvbamgyv3wgz8yf0qdj5dy0ra06hy"; depends=[assertthat dplyr ggplot2 glue mrgsolve patchwork purrr rlang tibble tidyr tidyselect withr]; };
@@ -13977,14 +14206,13 @@ in with self; {
   mritc = derive2 { name="mritc"; version="0.5-3"; sha256="1bpnm2qzq67dgjxsa4wxn51f4a4cxal5r6abgs3m7p5a9a16jmjp"; depends=[lattice misc3d oro_nifti]; };
   mro = derive2 { name="mro"; version="0.1.1"; sha256="00gc2hd8q5hb2xrswclcqqw1gxl83zmpma6bhsggg3kppsw1dpjv"; depends=[MASS matrixcalc]; };
   mrregression = derive2 { name="mrregression"; version="1.0.0"; sha256="1yy2sjs0b67bqyggzypp2g7x4fdmi86jx2nbcp2n7hcf9cdacysi"; depends=[data_table Rcpp]; };
-  ms_sev = derive2 { name="ms.sev"; version="1.0.4"; sha256="1sr2rgiskgwjhwif70qj6ga8i8kg4bh342hff66b2a54rxrchmw5"; depends=[]; };
   msBP = derive2 { name="msBP"; version="1.4-1"; sha256="1n833ghqh9n5m2qx8njsq5njbcap67y1v71a0vm1p2igh0f8b54i"; depends=[]; };
   msSPChelpR = derive2 { name="msSPChelpR"; version="0.9.1"; sha256="0m2cijzdgxq3f0ncqvk8klb2hvndm5rzl4swwh62wck12n7z250g"; depends=[cli dplyr lubridate magrittr purrr rlang sjlabelled stringr tidyr tidyselect tidytable]; };
   msaFACE = derive2 { name="msaFACE"; version="0.1.0"; sha256="1lh8crz507nlddm946lmn73xbnsh4cs0kg238ysnsvxs726c83fs"; depends=[]; };
   msaR = derive2 { name="msaR"; version="0.6.0"; sha256="12d6vql85d1mzcy889z7pbmldcwwmzijimcr9frm12ahmka81byx"; depends=[ape htmlwidgets]; };
   msae = derive2 { name="msae"; version="0.1.5"; sha256="0ra4qj0yvyi4nl492hqj7l6cpyxwm1hq7mm15sip4rk2fm7h0kjf"; depends=[magic]; };
   msaeHB = derive2 { name="msaeHB"; version="0.1.0"; sha256="1grmkr146csyim1lpgingjnp4km3sqlpzihln9cpkqaqhvl8rycj"; depends=[coda rjags]; };
-  msaenet = derive2 { name="msaenet"; version="3.1.1"; sha256="1lidrw79z7r463zfdbxcjpj6y0s7hhrwypjb13d28jyw8n6ijv3x"; depends=[foreach glmnet Matrix mvtnorm ncvreg survival]; };
+  msaenet = derive2 { name="msaenet"; version="3.1.2"; sha256="1gs5mcwdkc3wwaa49liywsrl8454801i6jiylfksyw1rlqlcnz9p"; depends=[foreach glmnet Matrix mvtnorm ncvreg survival]; };
   msamp = derive2 { name="msamp"; version="1.0.0"; sha256="0r5m50x8l5dijy7nzcbxl3ipfnkgvaa9r580b6b71ny3madsc8rh"; depends=[]; };
   msce = derive2 { name="msce"; version="1.0.1"; sha256="1x9ivc2bjp07pdn15p3qds00m1m00amcg2dfcdjsgbkx9x1kkfab"; depends=[Rcpp RcppParallel]; };
   mschart = derive2 { name="mschart"; version="0.4.0"; sha256="0znylmkzqsk9qw640bhqnn4np748s9q1zcwgyavb3b808nfcv6ri"; depends=[cellranger data_table htmltools officer writexl xml2]; };
@@ -13993,8 +14221,8 @@ in with self; {
   mscstts = derive2 { name="mscstts"; version="0.6.3"; sha256="1yqb9p7404yh9bjjjpy83k7yssvvpn3v9vddy47pgwjv4hbpbq19"; depends=[httr jsonlite tuneR]; };
   mscsweblm4r = derive2 { name="mscsweblm4r"; version="0.1.2"; sha256="031s00wpr9zfjpii56m67q1phn05vqlhb8cfzhyf6fbrxvpb8k7n"; depends=[httr jsonlite pander]; };
   msd = derive2 { name="msd"; version="0.3.1"; sha256="0n3zg2mwbmazbkk41jv94v28glj38d7f08d3w3xrlnlr9gsqh4sd"; depends=[]; };
-  msda = derive2 { name="msda"; version="1.0.3"; sha256="0lq6mqhksd35qpwl6ira72mwdzlpaxiv1wzms441r2fh1j0957dp"; depends=[MASS Matrix]; };
   msde = derive2 { name="msde"; version="1.0.5"; sha256="0q2jy5f8r5gfj2w8r0kmbgal3wjk37h62ahhjzbphrd8ghdf7za8"; depends=[Rcpp RcppProgress whisker]; };
+  msdrought = derive2 { name="msdrought"; version="0.1.0"; sha256="1h8g8i1f8hynr32c7xiz72ykqd0l4fnh8vl3dhm8agxa8l0ksjpm"; depends=[ggplot2 lubridate quantmod signal xts]; };
   mseapca = derive2 { name="mseapca"; version="2.0.3"; sha256="0kmli8dmkv7dacb52dz84plhr4ncagch2kzh61amhga4chwqhwzq"; depends=[loadings XML]; };
   msentropy = derive2 { name="msentropy"; version="0.1.4"; sha256="1wn71xqpzs06rnp27ci0lw86blyb25k9xkpkqwdv6656shf21iqp"; depends=[Rcpp]; };
   msgpackR = derive2 { name="msgpackR"; version="1.1"; sha256="0a6vm4q1zfy8wlvhl9wfy09ig1iag9fvjasz5w9bll7idky4ldx5"; depends=[]; };
@@ -14021,6 +14249,8 @@ in with self; {
   mstudentd = derive2 { name="mstudentd"; version="1.0.0"; sha256="03css731hv96nj8y07y4ngzv97fypiqcfynscxw5fx0s05c51331"; depends=[MASS rgl]; };
   msu = derive2 { name="msu"; version="0.0.1"; sha256="1vhh9725dbywmzihnmsq1jircpn91r8227j2f76fvma9rwss90p7"; depends=[entropy]; };
   mt = derive2 { name="mt"; version="2.0-1.20"; sha256="12r7hs83ijn7vw1qqgfrmd5ff7x6p3hxmaxnr3bjr5h2gd6sj42l"; depends=[class e1071 ellipse lattice latticeExtra MASS pls randomForest]; };
+  mtanan = derive2 { name="mtanan"; version="0.0.1"; sha256="10j1p5za9f9g9ygzpljfbnmhp32w6bmx9xwnjl84q32nkvagrmpx"; depends=[]; };
+  mtarm = derive2 { name="mtarm"; version="0.1.1"; sha256="1zmqpaw7yirs62xg20vfp6m481089651z5qhr52lqsqy537z2vby"; depends=[coda Formula GIGrvg]; };
   mtb = derive2 { name="mtb"; version="0.1.8"; sha256="1xlm3s34y9g4g6nqzm7zwl08j6587qnzmr5xx0fwgiv5mr45jdz4"; depends=[data_table ggplot2 htmltools labeling scales]; };
   mtdesign = derive2 { name="mtdesign"; version="0.1.0"; sha256="0fnyw6zcls12b6mmr9pxj3b9vs8pv1ik3h671kmxfgv1k6dwn6b9"; depends=[BH dplyr ggplot2 logger magrittr Rcpp rlang tibble tidyr]; };
   mthapower = derive2 { name="mthapower"; version="0.1.1"; sha256="0g6dn0qn7z6qc1gbzspy1n7b803427bc9fv5yqk7j8i1is1p8h94"; depends=[]; };
@@ -14037,13 +14267,14 @@ in with self; {
   muhaz = derive2 { name="muhaz"; version="1.2.6.4"; sha256="1ddy8ayr4rdhzcipdvxdwd7z5g9hfp0ppacl7xf6f2612cn1185g"; depends=[survival]; };
   muir = derive2 { name="muir"; version="0.1.0"; sha256="0h3qaqf549v40ms7c851sspaxzidmdpcj89ycdmfp94b2q3bmz98"; depends=[DiagrammeR dplyr stringr]; };
   mulSEM = derive2 { name="mulSEM"; version="1.0"; sha256="00lx8w3xxm7zdwv07pc3z5vsl4l1rj95s9wwil9y55bpf2ih4yp2"; depends=[OpenMx]; };
+  mulea = derive2 { name="mulea"; version="1.0.0"; sha256="07rhgf0qiwjxr0ckyizyry0vk33jfl2zh3lqipg0rc6s083shgv3"; depends=[data_table dplyr fgsea ggplot2 ggraph magrittr plyr Rcpp readr rlang scales stringi tibble tidygraph tidyverse]; };
   mulgar = derive2 { name="mulgar"; version="1.0.2"; sha256="00yaxi14x7g0pzdj65hgs2xm9m7w1w6xjhparbhcjz1jd34ga30y"; depends=[dplyr geozoo ggplot2 purrr tibble tidyr]; };
   mully = derive2 { name="mully"; version="2.1.38"; sha256="1lvyj1kyi9ad2byhc1amrjasc2brv7g4d2i08rf7149vp35cwrsg"; depends=[igraph randomcoloR rgl]; };
   mulset = derive2 { name="mulset"; version="1.0.0"; sha256="0pigiy6hfiqh6x4zx6zqn3ykk36s3abzzyb67jdlf4jzc5zhrl9g"; depends=[digest gtools]; };
   mult_latent_reg = derive2 { name="mult.latent.reg"; version="0.1.7"; sha256="0lvkysncxjlzlzdy1a7vvcr03sd6vcfqgflgaxxy6k1j9qvx92wf"; depends=[lme4 matrixStats mvtnorm]; };
   multDM = derive2 { name="multDM"; version="1.1.4"; sha256="132kqbrg1ism2byhal50j0hr0qqlnd30db9z6vvjc977d03hf41l"; depends=[MTS]; };
   multIntTestFunc = derive2 { name="multIntTestFunc"; version="0.2.0"; sha256="0z2wsbhb8lbmb5favqaang3rq4fk6ln9d5spssinzlbpqb04y6nk"; depends=[mvtnorm pracma]; };
-  multbxxc = derive2 { name="multbxxc"; version="1.0.1"; sha256="1ip5awjc2ljpy6nsr4y42x0yg4n7lyaxp9kzfjvwp41k9lriz4gm"; depends=[Rcpp RcppArmadillo rmumps]; };
+  multbxxc = derive2 { name="multbxxc"; version="1.0.2"; sha256="1g8m3mgqfvqf097rd3v78575gci77gphygjv66n0nlnv06hqrhr1"; depends=[Rcpp RcppArmadillo rmumps]; };
   multcomp = derive2 { name="multcomp"; version="1.4-25"; sha256="10njzzxdi3jw5f419s7chcynxkzyqmmvzf7jk7ybdrwrlqhpiylx"; depends=[codetools mvtnorm sandwich survival TH_data]; };
   multcompView = derive2 { name="multcompView"; version="0.1-10"; sha256="12mdk12xciq1d3zn94rixahhcah2qq41lvb5n4kzgjaq4yr4kwiq"; depends=[]; };
   multe = derive2 { name="multe"; version="1.0.0"; sha256="05hp59lsf0zdbp6lkyf9yq1i0isi68zgqwxxkssgw4r6w5yfh84g"; depends=[nnet]; };
@@ -14060,7 +14291,7 @@ in with self; {
   multiRDPG = derive2 { name="multiRDPG"; version="1.0.1"; sha256="0r6n148pakixw4caj0zwib8zirgl98lm0mxqmhvmqjh389icskxc"; depends=[]; };
   multiROC = derive2 { name="multiROC"; version="1.1.1"; sha256="15ydbxpkdyvsc55di13jvwh9p6dzxc1yj93w1cwsd8jp2y10wsd3"; depends=[boot magrittr zoo]; };
   multiUS = derive2 { name="multiUS"; version="1.2.3"; sha256="0wdvrkl6xvk8xpkm9n0hd5pjks3350ms09jrfqnnxyf3dsbs68dc"; depends=[gplots MASS]; };
-  multibias = derive2 { name="multibias"; version="1.4.0"; sha256="0zm0hamwrdhqclaqq783lm42smpz6qmwhrrqi4ci3w3r40jllfpf"; depends=[dplyr magrittr rlang]; };
+  multibias = derive2 { name="multibias"; version="1.5.0"; sha256="171fag2qx8vbydcajai2dq50l9hrhsrlifrni87b07pzsm6bv7nc"; depends=[dplyr magrittr rlang]; };
   multibiasmeta = derive2 { name="multibiasmeta"; version="0.2.2"; sha256="04qnb3l2y86xy8f1j754g8fy6hc1a26rwdznaka789k3dkkckk93"; depends=[dplyr EValue metabias metafor purrr Rdpack rlang robumeta]; };
   multibiplotGUI = derive2 { name="multibiplotGUI"; version="1.1"; sha256="08vmdhrn6qqq57q818cqnmsw7qaa4gnw3m5myzp4dc85njgzzi02"; depends=[cluster dendroextras MASS Matrix plotrix rgl shapes tcltk2 tkrplot]; };
   multiblock = derive2 { name="multiblock"; version="0.8.8.1"; sha256="0b4xk6pr4ffs44iras74mswligfyrx52fgm5yvcs5f4y94bsd6pp"; depends=[ade4 car lme4 MASS mixlm plotrix pls plsVarSel pracma progress Rcpp RcppEigen RSpectra SSBtools]; };
@@ -14077,15 +14308,14 @@ in with self; {
   multifear = derive2 { name="multifear"; version="0.1.3"; sha256="0240dk3cqdm9x9y139p5i0gj374f58qxnqw32cii1abhv852ijfm"; depends=[BayesFactor bayestestR bootstrap broom dplyr effectsize effsize esc ez forestplot ggplot2 nlme purrr reshape2 stringr tibble]; };
   multifunc = derive2 { name="multifunc"; version="0.9.4"; sha256="0gxgxfh8vmczc7dc4awfmmmwds98kk9d5c9rk1lz1himp19mqsj4"; depends=[broom dplyr magrittr MASS purrr]; };
   multifwf = derive2 { name="multifwf"; version="0.2.2"; sha256="1l6z3pzz6g6w1spp1f918jh6w0jm93qyc882rj8jhn1198d2s8nd"; depends=[]; };
-  multigraph = derive2 { name="multigraph"; version="0.99"; sha256="0hya5r8ak7vk0sda7flhj69cc87b56sxqwz09x2vfg0z05gxi3il"; depends=[multiplex]; };
+  multigraph = derive2 { name="multigraph"; version="0.99-3"; sha256="0q634jsr1m9nzn4g3bcy5dxl26bdzdg6imcym2jifaa29b7m1790"; depends=[multiplex]; };
   multigraphr = derive2 { name="multigraphr"; version="0.2.0"; sha256="13ac16zghccdapr0kmkcrj11b0ipgaajdpps867sgk6yqd7pyizx"; depends=[]; };
-  multigroup = derive2 { name="multigroup"; version="0.4.5"; sha256="1d3m2c3md9iiv1gfqfyik1xj3fsas85bmf2vbkaks8ljxa42f55k"; depends=[MASS]; };
   multilaterals = derive2 { name="multilaterals"; version="1.0"; sha256="11zfdhn6qzqz0n31g23bn40wnfzkjndb753iiqvihirphzb74v5v"; depends=[ape igraph]; };
-  multilevLCA = derive2 { name="multilevLCA"; version="1.5"; sha256="10fwcyvq5a820ji2n2m2smd450yw31lqjmd1aaxi7lr30sv7ijv8"; depends=[dplyr foreach klaR magrittr MASS Rcpp RcppArmadillo tidyr]; };
+  multilevLCA = derive2 { name="multilevLCA"; version="1.5.1"; sha256="0cf51abcypl3a3xl0lhvb614ja83s6nkcc0glws9x112wwm2dgs4"; depends=[dplyr foreach klaR magrittr MASS Rcpp RcppArmadillo tidyr]; };
   multilevel = derive2 { name="multilevel"; version="2.7"; sha256="0ds7q3q2ncldb4iik24xisyxyyv1yv8l1yz7zd7cy036bna1yp5i"; depends=[MASS nlme]; };
   multilevelPSA = derive2 { name="multilevelPSA"; version="1.2.5"; sha256="0926jaicdxk846vyfphb2hyg3zan3wal44x1bwamws0zf4flc4hj"; depends=[ggplot2 MASS party plyr PSAgraphics psych reshape xtable]; };
   multilevelTools = derive2 { name="multilevelTools"; version="0.1.1"; sha256="01fzx7j0mkb4fr7axv34184w6w5nfsdcr51nscci1mi5b2805x1s"; depends=[cowplot data_table extraoperators ggplot2 JWileymisc lavaan lme4 lmerTest nlme zoo]; };
-  multilevelcoda = derive2 { name="multilevelcoda"; version="1.2.3"; sha256="0v499gb26g14c207fqp5z9z0j76q0yk5mgfpmhj35377pib7c14b"; depends=[abind bayesplot bayestestR brms bslib compositions data_table doFuture DT emmeans extraoperators foreach ggplot2 hrbrthemes insight loo plotly shiny]; };
+  multilevelcoda = derive2 { name="multilevelcoda"; version="1.3.0"; sha256="1hmnapmcaa1m56afvx3ylikii462fhq8qy64xs0a8gpkg9d5ir0v"; depends=[abind bayesplot bayestestR brms bslib compositions data_table doFuture DT extraoperators foreach future ggplot2 hrbrthemes insight loo plotly shiny shinystan]; };
   multilevelmediation = derive2 { name="multilevelmediation"; version="0.3.1"; sha256="0aq38qz4i05sn3qa1f0lwpf57r4aya30i028gfdj66w0nh766pg0"; depends=[brms furrr future matrixcalc MCMCpack nlme parallelly posterior tidyr]; };
   multilevelmod = derive2 { name="multilevelmod"; version="1.0.0"; sha256="0sq16w2a0wvxbvca5wknc77lzkdfvr8j71bc0d569hdfm59nrp2k"; depends=[dplyr lme4 parsnip purrr rlang tibble withr]; };
   multilinguer = derive2 { name="multilinguer"; version="0.2.4"; sha256="16r8ishisrh5xxjvdqaczqd16fva9fhw7h1sk076if452wwwk3zl"; depends=[askpass rappdirs sys usethis]; };
@@ -14097,14 +14327,14 @@ in with self; {
   multiness = derive2 { name="multiness"; version="1.0.2"; sha256="08bgjs2mrmsdvha10dr74262yk5ghyflvs8pqbl7bc8aws7lv8f5"; depends=[glmnet Matrix RSpectra]; };
   multinet = derive2 { name="multinet"; version="4.1.2"; sha256="0i87r6k6pzr7gbspcq9d101gwnnlwqpr0y4s1dgqsa2abivk0p55"; depends=[igraph RColorBrewer Rcpp]; };
   multinets = derive2 { name="multinets"; version="0.2.2"; sha256="1i5jsq1xy0g0l5d1z3hz4gj6inj4rhd6lf2s5xzd5k8ccp5aba8c"; depends=[igraph Rcpp]; };
-  multinma = derive2 { name="multinma"; version="0.6.1"; sha256="04vc1669z94gmzy6ldsndsmf386mvxbadxcpv1p2mbsigpppk498"; depends=[bayesplot BH copula dplyr forcats ggdist ggplot2 ggraph glue igraph Matrix purrr randtoolbox Rcpp RcppEigen RcppParallel Rdpack rlang rstan rstantools StanHeaders stringr survival tibble tidyr truncdist]; };
+  multinma = derive2 { name="multinma"; version="0.7.1"; sha256="0p0bw7kz1i7bnmwzyzn7gbblpq05rf2axcklppj9h072ysh1x7mn"; depends=[bayesplot BH copula dplyr forcats ggdist ggplot2 ggraph glue igraph Matrix purrr randtoolbox Rcpp RcppEigen RcppParallel Rdpack rlang rstan rstantools StanHeaders stringr survival tibble tidyr truncdist]; };
   multinomialLogitMix = derive2 { name="multinomialLogitMix"; version="1.1"; sha256="11mv9xsixcjqv3cq5ay1id3736gzdk192cw2z9khlv1j9bf1x4xh"; depends=[coda doParallel foreach ggplot2 label_switching MASS matrixStats mvtnorm RColorBrewer Rcpp RcppArmadillo]; };
   multinomineq = derive2 { name="multinomineq"; version="0.2.6"; sha256="0ip5ax1s7bk98hq9yqvhx0hiawxbac901zw41v0issq302dhvylk"; depends=[coda quadprog Rcpp RcppArmadillo RcppProgress RcppXPtrUtils Rglpk]; };
   multiocc = derive2 { name="multiocc"; version="0.2.1"; sha256="1ndwky6rjyb7x0mg2xx5lsxr5yyhg7a9jrwmwryjg6jsw23965qx"; depends=[coda interp MASS tmvtnorm truncnorm]; };
-  multipanelfigure = derive2 { name="multipanelfigure"; version="2.1.5"; sha256="1jy23qp49kxn83gnrls6ci247zd430zgbyab1rn7l6ahazzcra72"; depends=[assertive_base assertive_files assertive_numbers ggplot2 gridGraphics gtable magick magrittr stringi]; };
+  multipanelfigure = derive2 { name="multipanelfigure"; version="2.1.6"; sha256="0f35hfpd5sxjawpq33bwlabppfy8s7x53p6fmzpxlpdgnw61kg7v"; depends=[ggplot2 gridGraphics gtable magick magrittr stringi]; };
   multipleDL = derive2 { name="multipleDL"; version="1.0.0"; sha256="0b8858w0g45xkhschg742kxicd1cp4xhfacn0q3yh17k2fcif7r3"; depends=[BH Rcpp RcppEigen RcppParallel rstan rstantools SparseM StanHeaders]; };
   multipleNCC = derive2 { name="multipleNCC"; version="1.2-4"; sha256="0vgldg31mb57l5lig9l4clv060fiwx842adv1qbdirfrpyrg295i"; depends=[mgcv survival]; };
-  multipleOutcomes = derive2 { name="multipleOutcomes"; version="0.2"; sha256="0wkfrz8v7sfgwiqlvia2rmiryiwz53n0qzlg05p0sgh90p38w037"; depends=[dplyr ggplot2 mvtnorm tidyr]; };
+  multipleOutcomes = derive2 { name="multipleOutcomes"; version="0.4"; sha256="1hdz7nsk8737pdnqf33ggddn23pm488i60w5cpq0qwynck5mk4rh"; depends=[dplyr momentfit numDeriv stringr survival]; };
   multiplestressR = derive2 { name="multiplestressR"; version="0.1.1"; sha256="167ch16bdlk4syjbgn1149q1np90w6299ph35p9npdh1zcynm95f"; depends=[ggplot2 patchwork viridis]; };
   multiplex = derive2 { name="multiplex"; version="3.1.1"; sha256="0y7bcqdma20ca4a7f20kwrhji7mc1rris31kqfb3ps7zwj9bkp3h"; depends=[]; };
   multipol = derive2 { name="multipol"; version="1.0-9"; sha256="0cn6l0f1mn3n2rzsfr6ncc37aqc7ij9a8pkxbxq74j11bib0bhsf"; depends=[abind]; };
@@ -14119,6 +14349,7 @@ in with self; {
   multitool = derive2 { name="multitool"; version="0.1.4"; sha256="1z8yby5prfmp0p9gia8pmr54sw017rqbpblhxk6qxz3w9vnl4zp8"; depends=[clipr correlation DiagrammeR dplyr flextable furrr future ggdist ggplot2 glue lme4 moments parameters performance purrr rlang stringr tibble tidyr]; };
   multivar = derive2 { name="multivar"; version="1.1.0"; sha256="1jyz921m16g24gjmscsz2mi78ng3c5hzhbcankdq9x1i7kdcqawi"; depends=[ggplot2 glmnet MASS Matrix Rcpp RcppArmadillo reshape2 vars]; };
   multivariance = derive2 { name="multivariance"; version="2.4.1"; sha256="1jbv1rhdy6jgvyhwz25hry3xmnxfsl8pwf0j4rj9r8rg6ik8rv1w"; depends=[igraph microbenchmark Rcpp]; };
+  multivarious = derive2 { name="multivarious"; version="0.2.0"; sha256="1lgb7agfdq4fiwg2c2f6an2bx7krl84n79d7744rc514rgl0klp0"; depends=[chk corpcor fitdistrplus glmnet irlba Matrix matrixStats pls proxy purrr rlang RSpectra rsvd svd]; };
   multivator = derive2 { name="multivator"; version="1.1-11"; sha256="1r9v15bg0kyhq5xqzkpj6ilz745q6k3j46zh1n68pf17zmi0k0ww"; depends=[emulator mathjaxr mvtnorm]; };
   multiverse = derive2 { name="multiverse"; version="0.6.1"; sha256="0l3h4pg450brw27n0jhc3k5fsl57kczxsmzzs3ffj9lwrpnvvn7z"; depends=[berryFunctions collections dplyr evaluate formatR future_apply knitr magrittr purrr R6 rlang rstudioapi tibble tidyr tidyselect]; };
   multiview = derive2 { name="multiview"; version="0.8"; sha256="1kf16w4wbj84383hvqxhrqlvghyra22p7k9vs03axqxqkhl8krhz"; depends=[glmnet Matrix RColorBrewer Rcpp RcppEigen survival]; };
@@ -14127,7 +14358,7 @@ in with self; {
   multiwayvcov = derive2 { name="multiwayvcov"; version="1.2.3"; sha256="1znsmca16jac8s5z0j64cck27pvf88anm1mfblabqchqqcz1ykfc"; depends=[boot sandwich]; };
   multxpert = derive2 { name="multxpert"; version="0.1.1"; sha256="1lq5lgdjaaacipkjqxz6jxsm6b8zfbjsf7rs135a7n6w7qh35pvw"; depends=[mvtnorm]; };
   munfold = derive2 { name="munfold"; version="0.3.5"; sha256="17zizx9r0f8dxb7dkgn1nn0fp7ydy6r155p1zfz0v93jc26lc1hb"; depends=[MASS memisc]; };
-  munsell = derive2 { name="munsell"; version="0.5.0"; sha256="16g1fzisbpqb15yh3pqf3iia4csppva5dnv1z88x9dg263xskwyh"; depends=[colorspace]; };
+  munsell = derive2 { name="munsell"; version="0.5.1"; sha256="19i9jjawlqciw4n4h99a4sm0lbc77la3pqyzjvnwsrh7qjdgv8h3"; depends=[colorspace]; };
   munsellinterpol = derive2 { name="munsellinterpol"; version="3.0-0"; sha256="15314dr42sikw8i1qdi5rw8r52whgxsda6m2jbldxdc67vlwmcwd"; depends=[rootSolve spacesRGB spacesXYZ]; };
   murphydiagram = derive2 { name="murphydiagram"; version="0.12.2"; sha256="0f699cdfsl4f9w9f18cxkdlq1vyhsv83ynl6ck0r3wwh8f1zsmnd"; depends=[]; };
   musclesyneRgies = derive2 { name="musclesyneRgies"; version="1.2.5"; sha256="1d99icy9hal9q716wpcl1xz2qjhqpshnxp761yqln0wina0241rj"; depends=[FNN ggplot2 gridExtra plyr proxy reshape2 signal umap]; };
@@ -14155,10 +14386,11 @@ in with self; {
   mvShapiroTest = derive2 { name="mvShapiroTest"; version="1.0"; sha256="0zcv5l28gwipkmymk12l4wcj9v047pr8k8q5avljdrs2a37f74v1"; depends=[]; };
   mvabund = derive2 { name="mvabund"; version="4.2.1"; sha256="01kss9dx4an1ir5zs46jypvhj8sdc8wcs00i1223ai09av4lcsgd"; depends=[MASS Rcpp RcppGSL statmod tweedie]; };
   mvbutils = derive2 { name="mvbutils"; version="2.8.232"; sha256="0awd0jy492ha321c20kmmgl20kqphdmrmswakc0rq6h8z9d55kdg"; depends=[]; };
-  mvcauchy = derive2 { name="mvcauchy"; version="1.0"; sha256="1szrzlyg1bsdbkmix4b8z301m5i7z38lba1wv1a8cw7v5hv74kjx"; depends=[Rfast Rfast2]; };
+  mvcauchy = derive2 { name="mvcauchy"; version="1.1"; sha256="0vnf5q71hkj6nqljm73rcmvr7ir6zhp4qwrjvi49d6zxpdrs8yx1"; depends=[Rfast Rfast2]; };
   mvctm = derive2 { name="mvctm"; version="1.2"; sha256="0810bmk748cvbls4djspqvkk65j605djqicqg4rkwy2a799l3rgc"; depends=[Formula MNM nlme quantreg Rfit SpatialNP]; };
   mvdalab = derive2 { name="mvdalab"; version="1.7"; sha256="0iblpg5yi9ig4hi6ff84m9pfgyrpkyfc9m9m98dpngpbhxfqnvhq"; depends=[car ggplot2 MASS moments penalized plyr reshape2 sn]; };
   mverse = derive2 { name="mverse"; version="0.1.0"; sha256="1qj77s98j05j8d1k1w3h56c7z2i1j973mflhklxhb3xxc7plyk3y"; depends=[broom cowplot dplyr ggplot2 ggraph igraph magrittr multiverse rlang stringr tidyr tidyselect]; };
+  mvgam = derive2 { name="mvgam"; version="1.1.1"; sha256="1hgrhly2wsrmsgbd888sx38hyl44bgicw54z8bgf4i54n4mmw8ph"; depends=[bayesplot brms dplyr ggplot2 insight loo magrittr marginaleffects Matrix matrixStats mgcv mvnfast pbapply posterior purrr Rcpp RcppArmadillo rlang rstan rstantools scoringRules smooth zoo]; };
   mvgb = derive2 { name="mvgb"; version="0.0.4"; sha256="1928mfbhlhwh03xiwlf5mvn6yp0i95rlknqb132b5hdsd3y5xin3"; depends=[]; };
   mvglmmRank = derive2 { name="mvglmmRank"; version="1.2-4"; sha256="09mkjx3xrpnv681d07z91g60fq7bna6142b2hh9xvh5nxcqixdnf"; depends=[MASS Matrix numDeriv]; };
   mvhist = derive2 { name="mvhist"; version="1.1"; sha256="057yhkivcfjm9yazx0x8rn2xysgyc6y7nlcxpjl00yfi7wcjpmlh"; depends=[mvmesh rcdd rgl SimplicialCubature]; };
@@ -14173,7 +14405,7 @@ in with self; {
   mvnimpute = derive2 { name="mvnimpute"; version="1.0.1"; sha256="0131dm8ma7qrzqsfdkdcp1vh0jcz3am3mry6x96m8fm3npi4dldz"; depends=[ggplot2 LaplacesDemon MASS Rcpp RcppArmadillo RcppDist reshape2 rlang truncnorm]; };
   mvnmle = derive2 { name="mvnmle"; version="0.1-11.2"; sha256="06ysl7ff0gy5iiggaicrk1x3sav86iz45zks6ybd3k9516qjjn39"; depends=[]; };
   mvnormalTest = derive2 { name="mvnormalTest"; version="1.0.0"; sha256="1hbapcmj1rzrdzlbkay94f3r2388sk60zizh48vbbkc83qlm7xbr"; depends=[copula moments nortest]; };
-  mvnormtest = derive2 { name="mvnormtest"; version="0.1-9"; sha256="1iaxjwp7bgxhaa4xqvgqb61316mq2fb0452d0pabhmbxkvmvdnj6"; depends=[]; };
+  mvnormtest = derive2 { name="mvnormtest"; version="0.1-9-3"; sha256="1hxxy08ldm2dczjfb34q1xk8yfs54pdishq4hnws8xy0cjh4xngg"; depends=[]; };
   mvnpermute = derive2 { name="mvnpermute"; version="1.0.1"; sha256="0jszhq2mfqm7k7zvmn1m286gnafpng6ybmvmwzmzzwla9f7sacjx"; depends=[]; };
   mvord = derive2 { name="mvord"; version="1.2.2"; sha256="15ln55a1lxpfka4lva84nsznbl8wgi95hvbr8wisqh05c5940s3x"; depends=[BB dfoptim MASS Matrix minqa mnormt mvtnorm numDeriv optimx pbivnorm ucminf]; };
   mvoutlier = derive2 { name="mvoutlier"; version="2.1.1"; sha256="1ll6zsy8svcsb3h60p0z2zpbgn919j9w0mamsdvvzi87dyy4hars"; depends=[robustbase sgeostat]; };
@@ -14183,17 +14415,17 @@ in with self; {
   mvs = derive2 { name="mvs"; version="1.0.2"; sha256="1p0782c940chysr4sk746gl9gjxzx7rx8xyxbkdp3y6z0904ib5w"; depends=[foreach glmnet]; };
   mvst = derive2 { name="mvst"; version="1.1.1"; sha256="0zfy7lgghmx6ziybxp3w1dar49bhnpzxjmdkzdnkcicrc4yjdl7w"; depends=[MCMCpack mnormt mvtnorm]; };
   mvtmeta = derive2 { name="mvtmeta"; version="1.1"; sha256="0s0s5922c5rs8cqk100nci3akqnhbvibm2n2gn8049v3qcyfajyb"; depends=[gtools]; };
-  mvtnorm = derive2 { name="mvtnorm"; version="1.2-4"; sha256="1zws7myh61622v46gir6bs0dpyp6siz0hx7lrsvymshn02xqg0l4"; depends=[]; };
+  mvtnorm = derive2 { name="mvtnorm"; version="1.2-5"; sha256="19pdwdkhc7bv6r9xkzpxmpgmz7mvsrzxfvj6jy02hpjdlaiq4y4y"; depends=[]; };
   mvtsplot = derive2 { name="mvtsplot"; version="1.0-4"; sha256="1391m4r58hbaqbq46isi15jx6vhx7frdspbs1ippbpw7rsanch9w"; depends=[RColorBrewer]; };
   mwTensor = derive2 { name="mwTensor"; version="1.1.0"; sha256="113asdl3hm1kk31x29x89bz3zxccrhbh64xl2fcgds1mkw0gr3mn"; depends=[ccTensor igraph iTensor MASS nnTensor rTensor]; };
   mwa = derive2 { name="mwa"; version="0.4.4"; sha256="0f994xpylqhhwwr3rv0y5y68989ssy7q4pb3hawq0ww0l3wj9lmd"; depends=[cem MASS rJava]; };
-  mwcsr = derive2 { name="mwcsr"; version="0.1.8"; sha256="0vyvxw708c2m832jwsnfd8jfig5qbnixfl85frpch1c9qqp3238p"; depends=[igraph Rcpp]; };
   mwlaxeref = derive2 { name="mwlaxeref"; version="0.0.1"; sha256="1rpm2l10xipggva5ghlvg0h9w0nvwkpc9a2ai1j4skp3f30zgczz"; depends=[dplyr rlang]; };
   mwshiny = derive2 { name="mwshiny"; version="2.1.0"; sha256="0c1a0d9qnaszffhzanmk31mdxqi7j3rn6bk7a3dwg4bq1da3rlgl"; depends=[htmltools shiny]; };
+  mxfda = derive2 { name="mxfda"; version="0.2.1"; sha256="0msfkyxdyy8p3rwxqyzqy9jmsjnv3ra7qspm1cfql3azpmhs8k4s"; depends=[dplyr ggplot2 lifecycle magrittr mgcv purrr refund reshape2 rlang SimDesign SpatEntropy spatstat_explore spatstat_geom tidyr]; };
   mxkssd = derive2 { name="mxkssd"; version="1.2"; sha256="19zz5y5gz84a7qicaj3v2j6l558vr6w8lcy67b3kmkq64mnnirda"; depends=[]; };
   mxmmod = derive2 { name="mxmmod"; version="1.1.0"; sha256="0x4m6y4ngb3vm9xpvwvn1zcbch2fhz8pb267hg2sb3kk5m504xxq"; depends=[OpenMx]; };
   mxnorm = derive2 { name="mxnorm"; version="1.0.3"; sha256="01845m5h4rd38n0fll2k2d9hw6j9dbjgs7kmwy30g9lkffvv73s8"; depends=[caret data_table dplyr e1071 fda fossil ggplot2 glue KernSmooth kSamples lme4 magrittr psych reticulate rlang stringr tidyr uwot]; };
-  mxsem = derive2 { name="mxsem"; version="0.0.8"; sha256="1a1fg5463vrcqgjz2yr5r26s937jdg1i3pq27kp0zwsa9fa3i5na"; depends=[dplyr OpenMx Rcpp]; };
+  mxsem = derive2 { name="mxsem"; version="0.0.9"; sha256="1n8dwb41gr2z8sjrkf0f75mcrvigr5p9p399s5bbi74kf9dsw0hr"; depends=[dplyr OpenMx Rcpp]; };
   myCRAN = derive2 { name="myCRAN"; version="1.1"; sha256="1b92jyk2nwlqx0sx05b1gj3ivy33rjz1394gazl0xm98jj1c1vkx"; depends=[cranlogs pkgsearch]; };
   myClim = derive2 { name="myClim"; version="1.1.0"; sha256="1wy5yzx4z2c9n9bq3imih339h20wigwy7120kk3wclpfxvhfi2b4"; depends=[data_table dplyr ggforce ggplot2 lubridate plotly progress purrr stringr tibble tidyr viridis vroom zoo]; };
   myTAI = derive2 { name="myTAI"; version="0.9.3"; sha256="0fd6srvwzqir8zif56cnyi02c952fgc67xzc17wn7xvmvljfvh4x"; depends=[cpp11 doParallel dplyr edgeR fitdistrplus foreach ggplot2 gridExtra nortest RColorBrewer Rcpp RcppArmadillo readr reshape2 scales taxize tibble]; };
@@ -14201,14 +14433,15 @@ in with self; {
   mycor = derive2 { name="mycor"; version="0.1.1"; sha256="00hqmvga22bv43833s974s7ky7lbry3r2bb5kza7kvkn1p6773rg"; depends=[lattice]; };
   mzipmed = derive2 { name="mzipmed"; version="1.4.0"; sha256="18k7ffq9mkslkxz4j0xj3xh0050gkysp2cls6w7825warflgclwz"; depends=[MASS matrixStats sandwich]; };
   n1qn1 = derive2 { name="n1qn1"; version="6.0.1-11"; sha256="17p48wm0wcw46lk9382yd9xpzx4rygdjyrbfdi6xnph1k5phjxpj"; depends=[Rcpp RcppArmadillo]; };
-  nCopula = derive2 { name="nCopula"; version="0.1.1"; sha256="03qbfvx0lg9prg52fk1jxar2bng2x6scac4g2c64kvp6vmf6x4mv"; depends=[copula Deriv stringi stringr]; };
   nFactors = derive2 { name="nFactors"; version="2.4.1.1"; sha256="08gydk231zijw3inp6d3hnc5mz0zywi4vzlvqb4jmibhv0hncdxv"; depends=[lattice MASS psych]; };
+  nFunNN = derive2 { name="nFunNN"; version="1.0"; sha256="07ivkql315nd68x4z7amnpbkznj3d6x8msrjfnmj2g5y8dgwmmny"; depends=[fda torch]; };
   nJira = derive2 { name="nJira"; version="0.1.1"; sha256="0vh167kxljp68f0dx307wl6fp8nlp34vgrkr815z30mhx03p8j9r"; depends=[httr plyr rjson]; };
   nLTT = derive2 { name="nLTT"; version="1.4.9"; sha256="1h87iwzy988jx1i70nxv24c3gjirrga5c3fw5al86m7qr1nz4sps"; depends=[ape coda testit]; };
   nRegression = derive2 { name="nRegression"; version="0.5.1"; sha256="0d02zgb25g67vgbilwvx7qqqaznzbhqfnllp41fn4rr5ysrc01l0"; depends=[covr data_table simitation]; };
   na_tools = derive2 { name="na.tools"; version="0.3.1"; sha256="1lbzsckfg297n85kzbin65x1l6qgg9l50hd3xi2gflxc7n2xb8bw"; depends=[]; };
   naaccr = derive2 { name="naaccr"; version="2.0.2"; sha256="1j30fb7qvxzpx0y7hq8sbqvszwjfnc4r2g0j8885fmn2wxvcgzdx"; depends=[data_table stringi XML]; };
   nabor = derive2 { name="nabor"; version="0.5.0"; sha256="1nj39cdfwrmhgsi3cq8imxv3n6xzc1v6dzdb2cf2hybjk368v4s7"; depends=[BH Rcpp RcppEigen]; };
+  nadiv = derive2 { name="nadiv"; version="2.18.0"; sha256="0n8hwf8mic479knq3dp6l49aw6injsk5f9jfsxl2qs5q4wsqsx76"; depends=[Matrix]; };
   naflex = derive2 { name="naflex"; version="0.1.0"; sha256="18fqfhm6p38z4h8dznac5v8yz53n86cw2x6ma29kvcbvdp4r3yd2"; depends=[]; };
   naijR = derive2 { name="naijR"; version="0.6.0"; sha256="1108fz4rhckmb2d9s63rjb44dpfazhvhsqprgx82akbssr7xf9br"; depends=[cli lifecycle mapdata maps RColorBrewer rlang sf stringi]; };
   naive = derive2 { name="naive"; version="1.2.3"; sha256="0ha54lc6g6yvh5g3kw5hdp2l7y2xi85b3ills3w1x092gma1q2cy"; depends=[entropy fANCOVA fastDummies ggplot2 greybox imputeTS lubridate modeest moments philentropy purrr readr Rfast scales tictoc]; };
@@ -14221,9 +14454,10 @@ in with self; {
   nametagger = derive2 { name="nametagger"; version="0.1.3"; sha256="1m6g8fx9fvd8zzvv4c9dh1dw63dkvl9i5mz8rqgvwqgqdvvvw1vi"; depends=[Rcpp]; };
   nandb = derive2 { name="nandb"; version="2.1.0"; sha256="1rbn4nibjzvwpccpmqn84w9a167f1avyl18kjlapy5dhafvixgbz"; depends=[assertthat autothresholdr BBmisc checkmate detrendr dplyr filesstrings ggplot2 glue ijtiff magrittr purrr Rcpp reshape2 rlang stringr viridis withr]; };
   naniar = derive2 { name="naniar"; version="1.1.0"; sha256="0i3gijr1l7hbcp75cyj26pxmm493lnvasl8aba9vv4w8lz1lck59"; depends=[cli dplyr forcats ggplot2 glue lifecycle magrittr norm purrr rlang tibble tidyr UpSetR vctrs viridis visdat]; };
-  nanoarrow = derive2 { name="nanoarrow"; version="0.4.0.1"; sha256="16vspbc31585f5wys634i4nyr43f6fzj6fgss8f5rdvvf73d2h4p"; depends=[]; };
-  nanonext = derive2 { name="nanonext"; version="0.13.2"; sha256="1ylf8qrsapzkyprpxhrdj4nzfdgpb33srbc2kj732dcpzh6gs5ld"; depends=[]; };
-  nanostringr = derive2 { name="nanostringr"; version="0.4.1"; sha256="1sivaycgg1j3q9iapy2nq7mp8cak316rgn475sv7pa57ig6g9b7b"; depends=[assertthat ccaPP dplyr purrr rlang tidyr]; };
+  nanoarrow = derive2 { name="nanoarrow"; version="0.5.0.1"; sha256="0rd2nd5b3zhfb4i8gygp9nrn9hbvzqqra0rzdp4msr11r4nkgh15"; depends=[]; };
+  nanonext = derive2 { name="nanonext"; version="1.1.0"; sha256="1j0xiww92kasy3ks3mrwxqk8gbfwqzyqnmanbcjswa4xiycqzsgv"; depends=[later]; };
+  nanoparquet = derive2 { name="nanoparquet"; version="0.3.0"; sha256="1q7msg1jc6mggggzm3sfcq7s6n8x0llmb7qbggqci4zai45dpj6b"; depends=[]; };
+  nanostringr = derive2 { name="nanostringr"; version="0.4.2"; sha256="0a6avc8gzq0mdswlsmp9i8pzk83cw2ziwrxfjphqa42akafzd63k"; depends=[assertthat ccaPP dplyr purrr rlang tidyr]; };
   nanotime = derive2 { name="nanotime"; version="0.3.7"; sha256="05fbdhbax6k1glidmgl0zjc7y7v1ppbpz4422q3jmxmfack7hwd7"; depends=[bit64 Rcpp RcppCCTZ RcppDate zoo]; };
   naptanr = derive2 { name="naptanr"; version="1.0.1"; sha256="074pxm1c8k24b3gbn3ibbwpsixbmjq3wx9agxg3ljflny2s6hhqp"; depends=[data_table httr]; };
   naptime = derive2 { name="naptime"; version="1.3.0"; sha256="1cadfv5sdsmz61kf96hf2gbnghf24q40g5c3h9b8prvkxslap691"; depends=[lubridate]; };
@@ -14231,7 +14465,7 @@ in with self; {
   narray = derive2 { name="narray"; version="0.5.1"; sha256="0vpx1fl24ba1c5x3bw0n8bx5yp77gsqybaxgbq6mj6by29ggq73l"; depends=[progress Rcpp stringr]; };
   naryn = derive2 { name="naryn"; version="2.6.26"; sha256="0v41cmmg19w2rfyndxzsv3k9h1clfc0p2py3mq47zl79qv79vqbr"; depends=[dplyr glue lifecycle magrittr purrr stringr tidyr yaml]; };
   nasadata = derive2 { name="nasadata"; version="0.9.0"; sha256="0y88qdy8c1y0prsajxic5vdqfixv9knjsbhw3vbfac8wv3a69bjl"; depends=[dplyr jsonlite plyr png]; };
-  nasapower = derive2 { name="nasapower"; version="4.2.0"; sha256="1lrrpqjhq6s3bj905zkakri2l8igczchmvqp8lm5r93v1s8kbxyf"; depends=[cli crul jsonlite lubridate readr rlang tibble]; };
+  nasapower = derive2 { name="nasapower"; version="4.2.1"; sha256="064n7yd5qkaqx1q5s16bm6fvkjlqjknrkkcpin5hz2nishmkqqwb"; depends=[cli crul jsonlite lubridate readr rlang tibble]; };
   nasaweather = derive2 { name="nasaweather"; version="0.1"; sha256="05pqrsf2vmkzc7l4jvvqbi8wf9f46854y73q2gilag62s85vm9xb"; depends=[]; };
   naspaclust = derive2 { name="naspaclust"; version="0.2.1"; sha256="1p4ilv2z5140h4kdix2w1v32vz1n8v33wq0fhc8n8mi7baknhd1i"; depends=[beepr rdist Rdpack stabledist]; };
   nat = derive2 { name="nat"; version="1.8.24"; sha256="1r3p5vwk96d93z8qm1lrb6g16l9fm2gcwy4h4n8clmxnpnimkj3k"; depends=[digest filehash igraph nabor nat_utils plyr rgl yaml]; };
@@ -14256,20 +14490,21 @@ in with self; {
   nberwp = derive2 { name="nberwp"; version="1.2.0"; sha256="0v1y51rmm0h3w0v5y97wprhdhyc14r4iprdpkmdh8q9ajj1ds1c0"; depends=[]; };
   nbfar = derive2 { name="nbfar"; version="0.1"; sha256="1gr9q83ff950x2lcyv9apsnjah4kpi8805mci9m0s3gvr7llpjq4"; depends=[glmnet magrittr MASS mpath Rcpp RcppArmadillo RcppParallel rrpack]; };
   nblR = derive2 { name="nblR"; version="0.0.4"; sha256="1p1m1jml7grpjfp5qibffm3dx8zz37h216bpcwybm293naprmbfr"; depends=[cli magrittr]; };
-  nbpMatching = derive2 { name="nbpMatching"; version="1.5.4"; sha256="0f7avg06lr5a1yixrl6mhcs98ywa91qbfkc7qlz2pxzpc1v13ffb"; depends=[Hmisc MASS]; };
+  nbpMatching = derive2 { name="nbpMatching"; version="1.5.5"; sha256="0r9q4vkqsrb1m0kzwgih797r3shy04fd185z3rwdi3w4cs03xydp"; depends=[Hmisc MASS]; };
   nc = derive2 { name="nc"; version="2024.2.21"; sha256="00m2128n3mpl9i77qcdrr49swpj2lr5wif8xxkfimhm3fciw2fgh"; depends=[data_table]; };
   ncappc = derive2 { name="ncappc"; version="0.3.0"; sha256="0bf00iskrd3x43839bwn957mi3qvm2dhcmqa7hl1ib0gp2r1cnzx"; depends=[bookdown Cairo dplyr ggplot2 gridExtra gtable knitr lazyeval magrittr PopED purrr readr reshape2 rlang rmarkdown scales tibble tidyr xtable]; };
   ncar = derive2 { name="ncar"; version="0.5.0"; sha256="1cyf06bml2dfdilvyzhal42s56a70fd88wk5zkmrgblckvfyl3cg"; depends=[NonCompart rtf]; };
   ncbit = derive2 { name="ncbit"; version="2013.03.29.1"; sha256="01352byijhwhcb7jji7bf5cm6v2yfz925f8wbivrx12x0c65fzw4"; depends=[]; };
   ncdf4 = derive2 { name="ncdf4"; version="1.22"; sha256="040jpcgsb98s6knch0z3f3f5fpmlwks1grpvb9k8s02c9w0a5adr"; depends=[]; };
   ncdf4_helpers = derive2 { name="ncdf4.helpers"; version="0.3-6"; sha256="0qnm41rbxb6v7aqh1mdkjhcc2rhs4wg6wmrllldzd99mzz8slv1r"; depends=[abind ncdf4 PCICt]; };
+  ncdfCF = derive2 { name="ncdfCF"; version="0.1.1"; sha256="1q6q36zml4lm3yznsb245ll80a1mdgykmrk6chq0ymn64azbd73l"; depends=[CFtime RNetCDF stringr]; };
   ncdfgeom = derive2 { name="ncdfgeom"; version="1.1.6"; sha256="1scbcysklqi761xbjxkdb54m3k31hps58lyg2l01m9pk117ywkz5"; depends=[areal dplyr ncmeta RNetCDF sf stars]; };
   ncdump = derive2 { name="ncdump"; version="0.0.3"; sha256="09g98mzpky32z41jf23ahzhyv34l34y1gqq99j2hl4pqlvvhxs9i"; depends=[dplyr ncdf4]; };
   ncf = derive2 { name="ncf"; version="1.3-2"; sha256="1lqswih19g76aswnf6xygficzf7ri3yayqicifj8cqx8iwvrk91y"; depends=[]; };
-  ncmeta = derive2 { name="ncmeta"; version="0.3.6"; sha256="0pk5wn0hmf5n1bgx96xighpmr2kkka3fgl6was9z2rsr0k981mc2"; depends=[dplyr rlang RNetCDF tibble tidyr]; };
+  ncmeta = derive2 { name="ncmeta"; version="0.4.0"; sha256="1aamxs3yza1hsgvkp6740lv1dc21a87mzl06n6w3zxkjshri020w"; depends=[CFtime dplyr rlang RNetCDF tibble tidyr]; };
   ncodeR = derive2 { name="ncodeR"; version="0.2.0.1"; sha256="1pxiqxhq2rxs8rxxhw1hbds7z2qkf7ws26a8wsbw815yn6jm10n8"; depends=[cli R6 rhoR]; };
   ncpen = derive2 { name="ncpen"; version="1.0.0"; sha256="0vl4cbrsifr5s1691gacmp0lk3aqyq0yfafafzv6g3zygi4igrsa"; depends=[Rcpp RcppArmadillo]; };
-  ncvreg = derive2 { name="ncvreg"; version="3.14.1"; sha256="1q6klmyf7gbzkinjhv83k8gn95jgn3vkc927wsmffqjqc3d71rd7"; depends=[]; };
+  ncvreg = derive2 { name="ncvreg"; version="3.14.2"; sha256="1hbidxb9f6ygvjkvcdr1b642akgz25kzamnav55snjny82fmfspv"; depends=[]; };
   nda = derive2 { name="nda"; version="0.1.13"; sha256="1v3nfjq0v0vjv3871qsx7sxl5b6p74187cvacj3jfjyxbzghb8pc"; depends=[energy igraph MASS Matrix ppcor psych visNetwork]; };
   ndi = derive2 { name="ndi"; version="0.1.5"; sha256="0gfjh6wsdcbjw6xyyr863gc7rxridm84d6x05b0yk105yxhi5vpk"; depends=[car dplyr MASS Matrix psych sf stringr tidycensus tidyr]; };
   ndjson = derive2 { name="ndjson"; version="0.9.0"; sha256="18j5bibranvbv84hvbsg6glmvhfancdsf2w6j99n3nw53bcgb12d"; depends=[data_table Rcpp tibble]; };
@@ -14285,7 +14520,7 @@ in with self; {
   needmining = derive2 { name="needmining"; version="0.1.1"; sha256="0qsj0ihjchrnl4s44rpsizbcz033z00dmzvic2y1msv0bnfawl6p"; depends=[randomForest rtweet SnowballC SparseM stringr tau tm]; };
   needs = derive2 { name="needs"; version="0.0.3"; sha256="16dkjpijz3rz7kd5ggxsdg55iwd42nll1vk6g5ix4xdbqrx6cp9x"; depends=[]; };
   negenes = derive2 { name="negenes"; version="1.0-12"; sha256="0b82822vl86gni0pv5f6pjfzmks35i7q2rqkhgyb9z9c677g991q"; depends=[]; };
-  negligible = derive2 { name="negligible"; version="0.1.6"; sha256="0igx64jfxv2dracfg220dkhds6sanjxjsnn9nmax5kr00hzrgfwx"; depends=[DescTools dplyr e1071 fungible ggplot2 lavaan MBESS nptest rockchalk tidyr WRS2]; };
+  negligible = derive2 { name="negligible"; version="0.1.8"; sha256="0ammn1zfzy2q4vd20bj40ix58lz5rkjl7csyp98hq6mq2h091gmv"; depends=[DescTools dplyr e1071 ez fungible ggplot2 lavaan MBESS nptest rockchalk WRS2]; };
   neighbours = derive2 { name="neighbours"; version="0.1-3"; sha256="0q0d8504kjvsgik7pdhsgh9n1xszxa7p4mzpxajki2ym0x7hqx9k"; depends=[]; };
   neighbr = derive2 { name="neighbr"; version="1.0.3"; sha256="1rmglfjmx6bfd4w1cpx4rvp7hy2vqvcamy854h5dq0l3kwk4pjcm"; depends=[]; };
   neldermead = derive2 { name="neldermead"; version="1.0-12"; sha256="0ws2knrq3b3icv6fzimypzwvzvqf0sayi2ndhacn6lk4snms5pm3"; depends=[optimbase optimsimplex]; };
@@ -14295,11 +14530,11 @@ in with self; {
   neo4jshell = derive2 { name="neo4jshell"; version="0.1.2"; sha256="0dkdg8ljyv7pi6zkpsq5akkl35vrhkr78xvc2ky99gwjsr0z77hf"; depends=[fs magrittr R_utils ssh sys]; };
   neo4r = derive2 { name="neo4r"; version="0.1.1"; sha256="0s4rjhn2mc8ca4p8p474a83dc277vrf7l968xwxkiac0d4fgbra7"; depends=[attempt data_table glue httr igraph jsonlite magrittr purrr R6 rlang rstudioapi shiny tibble tidyr tidyselect]; };
   neojags = derive2 { name="neojags"; version="0.1.4"; sha256="10z5x78a3mjy5jbxlzfzsixp6w8y0v0mkxnwf5bq3rk5dgnga0g0"; depends=[coda rjags runjags]; };
-  neonOS = derive2 { name="neonOS"; version="1.0.0"; sha256="11jgsf8c7rjfdbn9qljirzwvpnn4wckid4p4syx6py3dqjb4r19f"; depends=[curl data_table httr jsonlite]; };
-  neonPlantEcology = derive2 { name="neonPlantEcology"; version="1.5.0"; sha256="1g3j07jrmh9hdalnlbkrawk5gqyhs6y8yhnl1wi7lp6m2vvcgr15"; depends=[data_table dplyr dtplyr ggplot2 ggpubr lubridate neonUtilities sf stringr tibble tidyr vegan]; };
-  neonUtilities = derive2 { name="neonUtilities"; version="2.4.1"; sha256="1jrda57yi64lgr8c5z5lchbdin2fs47pb9q4rr6fwh5rzm6hf10x"; depends=[curl data_table downloader httr jsonlite pbapply R_utils stringr tidyr]; };
-  neonstore = derive2 { name="neonstore"; version="0.5.0"; sha256="1hj45bfx4m8afnggrhq47wxhvc37pkr87ilizxx2xa1f0vrwp8i0"; depends=[cachem DBI duckdb duckdbfs glue httr memoise progress R_utils thor vroom zip]; };
-  neotoma2 = derive2 { name="neotoma2"; version="1.0.3"; sha256="1a7qcpypbr7vakrzl039ckv3cdy040gl6m3jpya1s284r30b12fx"; depends=[assertthat dplyr geojsonsf gtools httr jsonlite leaflet lubridate magrittr progress purrr rlang sf stringr tidyr uuid wk]; };
+  neonOS = derive2 { name="neonOS"; version="1.1.0"; sha256="0qqm5g6h67v96kv8sjgiq15v0vkg5m7q96hkhhi3m5c4gkkj8wi0"; depends=[curl data_table httr jsonlite]; };
+  neonPlantEcology = derive2 { name="neonPlantEcology"; version="1.6.1"; sha256="0z41a5dsbvxkfx0yhqpqdzlzh7b4k4af54yj1rdpgp6gzwfd32nw"; depends=[data_table dplyr dtplyr ggplot2 ggpubr lubridate neonUtilities sf stringr tibble tidyr vegan]; };
+  neonSoilFlux = derive2 { name="neonSoilFlux"; version="1.0.0"; sha256="0mi03k83q7hr1i9wi91dkbg4a6kydpxxxs5cihr6h47jaz2m87aj"; depends=[dplyr ggplot2 lubridate neonUtilities purrr stringr tibble tidyr tidyselect]; };
+  neonUtilities = derive2 { name="neonUtilities"; version="2.4.2"; sha256="0mx0pj6zxi0kqn2bqhyrn4bwg9jl151lv3fhk7llswivxp8fzd1p"; depends=[curl data_table downloader httr jsonlite pbapply R_utils stringr tidyr]; };
+  neonstore = derive2 { name="neonstore"; version="0.5.1"; sha256="16xbvqk02ihqv2lilgsmp777v93m2m6px9wcmpg8lm8xhrbyj4gr"; depends=[cachem DBI duckdb duckdbfs glue httr memoise progress R_utils thor vroom zip]; };
   nephro = derive2 { name="nephro"; version="1.4"; sha256="12rrc46dniw09a6402ns868h9c6f0grpsk3wv29z4l92338waiwb"; depends=[]; };
   neptune = derive2 { name="neptune"; version="0.2.3"; sha256="04d5rdcvnik9rj58npvs5z1r6ngs9hzc24wzix64czcynkkvkad0"; depends=[ggplot2 htmlwidgets plotly reticulate rstudioapi this_path]; };
   nesRdata = derive2 { name="nesRdata"; version="0.3.1"; sha256="1lxvg11g8nizfn8sghirq2749fs9i4w1wiaz3v1djqbkzqcqfrcj"; depends=[dataone dplyr purrr rappdirs readr]; };
@@ -14317,8 +14552,8 @@ in with self; {
   netShiny = derive2 { name="netShiny"; version="1.0"; sha256="1k6dmhkjf29ww31c15jms0yxwyiqq1z7a9115zwbg620cjd3m6fm"; depends=[colourpicker DT future future_callr ggplot2 ggVennDiagram igraph ipc magrittr Matrix netgwas plotly promises readxl shiny shinyBS shinycssloaders shinydashboard shinyjs shinyscreenshot shinyWidgets visNetwork]; };
   netUtils = derive2 { name="netUtils"; version="0.8.2"; sha256="0laha093wxkvs06wh2hsmyxypn89n7vlh183zw6k26d67vl15a6j"; depends=[igraph Rcpp RcppArmadillo]; };
   netassoc = derive2 { name="netassoc"; version="0.7.0"; sha256="0hbyg31r9sjp0dyxlbsbw7r1kb1dwr0apilsw8saf1vlqwsiasga"; depends=[corpcor huge igraph infotheo vegan]; };
-  netchain = derive2 { name="netchain"; version="0.2.0"; sha256="1skpf1n6a17mjkcxqpl6vrskk04yvqa0v4n2zw9x5r1h46q9m6qk"; depends=[gtools igraph Matrix Rcpp stringr]; };
   netcmc = derive2 { name="netcmc"; version="1.0.2"; sha256="0w5xnnfglg0nm59wwqh2dpwkz0zlly3r2997wncf5whz5j4vcy88"; depends=[coda ggplot2 MASS MCMCpack mvtnorm Rcpp RcppArmadillo RcppProgress]; };
+  netcom = derive2 { name="netcom"; version="2.1.7"; sha256="1zbpr0bm9g0890isd4x6gfpk6lg5z823q5lym6mhww9gk7b4xl9q"; depends=[clue doParallel dplyr expm foreach GenSA ggfortify ggplot2 ggraph igraph magrittr Matrix optimx pdist pracma reshape2 rlang tibble vegan]; };
   netcontrol = derive2 { name="netcontrol"; version="0.1"; sha256="1gskb728ycnhz9a9g9ghm0dz3ajf3dzgyv23bsk9i01wj9hrxhc0"; depends=[expm MASS Matrix pracma Rcpp RcppArmadillo Rdpack]; };
   netcox = derive2 { name="netcox"; version="1.0.1"; sha256="04biaynmvqrilp0kdxw55b990j7iqnvn8gr07dhzm9f7r9sr7xk6"; depends=[glmnet Rcpp survival]; };
   netdiffuseR = derive2 { name="netdiffuseR"; version="1.22.6"; sha256="0f4d0x03970iqxkbr0r9jm8gf28r79rimfnfr1djcajzihxaj7l6"; depends=[boot igraph MASS MatchIt Matrix network networkDynamic Rcpp RcppArmadillo sna SparseM viridisLite]; };
@@ -14351,9 +14586,9 @@ in with self; {
   networktools = derive2 { name="networktools"; version="1.5.2"; sha256="0w2q5ncni5nv7lg9vm3bpxj64pg0f6w0rxknli0dy1q0asq4aw47"; depends=[cocor eigenmodel ggplot2 gridExtra igraph psych qgraph R_utils RColorBrewer reshape2 smacof wordcloud]; };
   networktree = derive2 { name="networktree"; version="1.0.1"; sha256="0hkrqpx7b6sxalw1qyrncck70mx6p5gr57mf558l5mlqi52v7hg0"; depends=[Formula gridBase Matrix mvtnorm partykit qgraph reshape2]; };
   neuRosim = derive2 { name="neuRosim"; version="0.2-14"; sha256="1ndgpx748q7flqbb0bbjzdnynd5vp85k6wi4karxgvgihsxn9hkz"; depends=[deSolve]; };
-  neuralGAM = derive2 { name="neuralGAM"; version="1.1.0"; sha256="10v47gqr2y7md9j4807zsnckavlv4p9lggj5ywkizhwgmdfn4bxx"; depends=[formula_tools ggplot2 gridExtra keras magrittr reticulate tensorflow]; };
+  neuralGAM = derive2 { name="neuralGAM"; version="1.1.1"; sha256="1dnqbz83px2sd58i6jfsp1nimm6k2ffsas270rsc1av5nr6zd4wh"; depends=[formula_tools ggplot2 gridExtra keras magrittr reticulate tensorflow]; };
   neuralnet = derive2 { name="neuralnet"; version="1.44.2"; sha256="09l808vgjh059a3f94vgsprfyp5c1hrbjn6i1cn34cxnbljwsrjz"; depends=[Deriv MASS]; };
-  neurobase = derive2 { name="neurobase"; version="1.32.3"; sha256="0jg4fspqmdbrisxxwbpql5kv9am3d02m5j2dp8305p8dl0wz5vyj"; depends=[abind matrixStats oro_nifti R_utils RNifti]; };
+  neurobase = derive2 { name="neurobase"; version="1.32.4"; sha256="0jgf7zv4j2r09is0r8fkizgy0mz3c0iyldhw8f1fgys4gwzia7cc"; depends=[abind matrixStats oro_nifti R_utils RNifti]; };
   neuroblastoma = derive2 { name="neuroblastoma"; version="2023.9.3"; sha256="18n2ysrxb47wn5xpf906i5hn84f45r3ijla7sravyrsh8lbx6xih"; depends=[]; };
   neurocInstall = derive2 { name="neurocInstall"; version="0.12.0"; sha256="1fkb6ji9gigqdjl50hbgdgfidqpjgqlh1aidf6vn4qnfr92bsvqf"; depends=[devtools]; };
   neurohcp = derive2 { name="neurohcp"; version="0.9.0"; sha256="02z0lhmw2mr2fk8d8wp7nfcrfl8izds68zskm5j0xfabfb4dwkbx"; depends=[aws_s3 base64enc digest httr xml2]; };
@@ -14365,17 +14600,18 @@ in with self; {
   neverhpfilter = derive2 { name="neverhpfilter"; version="0.4-0"; sha256="097nfz30pf4bd95l943ccsvndni0n8c6gpcdk5dv02802mcg0h81"; depends=[xts zoo]; };
   new_dist = derive2 { name="new.dist"; version="0.1.1"; sha256="1zkmwqhamrw7g4d1hffsyhcsjf0z0nmmgnixc7wny0qqpmyqlb2n"; depends=[expint pracma VGAM]; };
   newFocus = derive2 { name="newFocus"; version="1.1"; sha256="0j7wl4yf4dnz4vbbnhsk39w9zqbnad2lhxwqbns1plhdd02hzsfr"; depends=[ctgt]; };
+  newIMVC = derive2 { name="newIMVC"; version="0.1.0"; sha256="1zxdrrc4w93a3r2zibip7s8h75mjf0ir3wpy310s83cas2nywqvx"; depends=[CompQuadForm expm GGMridge limma quantreg]; };
   newTestSurvRec = derive2 { name="newTestSurvRec"; version="1.0.2"; sha256="06p782md33wqh5wa1735yg5i01d42p74kl7h5qhqs9cd732ls6pz"; depends=[]; };
   newsanchor = derive2 { name="newsanchor"; version="0.1.1"; sha256="1s8qhq9jk5gnsimnvy7kdayya0ks0ly309l7zxm5rafj5x7k5vwn"; depends=[askpass devtools httr jsonlite lubridate tidyr xml2]; };
   newscatcheR = derive2 { name="newscatcheR"; version="0.1.2"; sha256="18r9lmg9q6fj0ggnpqggqywsbycblsdc42mdcpc2abzp98dsvww9"; depends=[tidyRSS]; };
-  newsmap = derive2 { name="newsmap"; version="0.8.3"; sha256="08gdjszasfc62yz7q4s6a5971v0c0ddncryyfq1blpi6qqikjyhj"; depends=[Matrix quanteda quanteda_textstats stringi]; };
+  newsmap = derive2 { name="newsmap"; version="0.9.0"; sha256="103if7yh378c91bwq4j22p3krg00hwzah5wi1pjnni65yjjg2bqa"; depends=[Matrix quanteda quanteda_textstats stringi]; };
   newsmd = derive2 { name="newsmd"; version="0.5.1"; sha256="06iq628ysfbaawhx5yxkxh8a9d3nmzq87n80l88kj84k1lg1s5ph"; depends=[R6]; };
   nextGenShinyApps = derive2 { name="nextGenShinyApps"; version="2.0"; sha256="0994y5qnhxp23c6m08mgr9pp44jcm277qwxzq4fnsdy0gndcjrcw"; depends=[htmltools quickcode shiny]; };
   nexus = derive2 { name="nexus"; version="0.2.0"; sha256="0dyhgd18kz7yfdziycxkmqb58zx99fr99wxp3dfjfxip537sx1sn"; depends=[arkhe dimensio isopleuros MASS]; };
   nfer = derive2 { name="nfer"; version="1.1.3"; sha256="0s19ks4ildxqdbm4nv40f6c0rs1a6h9vx46654k8n0q18bgia448"; depends=[]; };
   nfl4th = derive2 { name="nfl4th"; version="1.0.4"; sha256="1ilvchs7g26ks6wgb8s8av0pm10s161fqiahcwbsm5xfy9bh8q78"; depends=[backports curl dplyr glue httr janitor jsonlite magrittr mgcv nflfastR nflreadr purrr rlang stringr tibble tidyr tidyselect xgboost]; };
   nflfastR = derive2 { name="nflfastR"; version="4.6.1"; sha256="0b9pn53kzgf0bni98j6f06piwp21wxkm15k9hvhbq0g3x9sj0zqg"; depends=[cli curl data_table dplyr fastrmodels furrr future glue janitor mgcv nflreadr progressr rlang stringr tibble tidyr tidyselect xgboost]; };
-  nflplotR = derive2 { name="nflplotR"; version="1.3.0"; sha256="11rmfwgpa5r0n98r4prngbfgdvk55vxkzp7pl5qlddhbh5jjcl9y"; depends=[cachem cli data_table ggpath ggplot2 gt lifecycle magick memoise nflreadr rappdirs rlang scales]; };
+  nflplotR = derive2 { name="nflplotR"; version="1.3.1"; sha256="1j6vhd1ysanc47ixa56gj0dgxqhiwdkbvkcmhdpkwc3zs5c78lzn"; depends=[cachem cli data_table ggpath ggplot2 gt lifecycle magick memoise nflreadr rappdirs rlang scales]; };
   nflreadr = derive2 { name="nflreadr"; version="1.4.0"; sha256="1437nzvqj0w5p3wxb0zfwjkn34ssd4q9zbsw0lmrbs0afifaf6dd"; depends=[cachem cli curl data_table glue memoise rappdirs rlang]; };
   nflseedR = derive2 { name="nflseedR"; version="1.2.0"; sha256="0nk6264alv0d8d1wj7xqk4m57rl1w185jj5qj58d9hwiy2wmzvqz"; depends=[cli data_table dplyr furrr future gsubfn magrittr nflreadr progressr purrr rlang tibble tidyr]; };
   nflverse = derive2 { name="nflverse"; version="1.0.3"; sha256="1pamkg80b83gb5ab3zshh36xsr31ihv6qbh1aa42m6k4g1wk5g3r"; depends=[cli crayon magrittr nfl4th nflfastR nflplotR nflreadr nflseedR rlang rstudioapi]; };
@@ -14385,12 +14621,12 @@ in with self; {
   ngramr = derive2 { name="ngramr"; version="1.9.3"; sha256="0iiaw8w3z8r45i129r78jwj4yicrp3lfzp7im6qmfn9k6v2bpsfv"; depends=[cli curl dplyr ggplot2 httr rjson rlang scales stringr textutils tibble tidyr xml2]; };
   ngramrr = derive2 { name="ngramrr"; version="0.2.0"; sha256="1p8s4p3h27g647rxx9qjfad5dzbngjbmvhw4gz0jbsmfqrsf72by"; depends=[tau tm]; };
   ngspatial = derive2 { name="ngspatial"; version="1.2-2"; sha256="09hdvmbna4m62zv18k5kj9718wzw7p43wnal2j6aa0m5sd2rx9rz"; depends=[batchmeans Rcpp RcppArmadillo]; };
-  nhanesA = derive2 { name="nhanesA"; version="1.0"; sha256="18r4cps3z4jg15nxy15g23k044rzhqnxaf679imw6w8sij2a4drc"; depends=[foreign plyr rvest stringr xml2]; };
+  nhanesA = derive2 { name="nhanesA"; version="1.1"; sha256="10vbgwz0m94yqjydrylyl699j92yr1f7j9cc23q9v4grg7zspk0b"; depends=[foreign plyr rvest stringr xml2]; };
   nhdR = derive2 { name="nhdR"; version="0.6.1"; sha256="1cf3lfkflwbvswdqnp74zrb7ndc2vbm9jj8dny1gqq3x9ciiy8gw"; depends=[curl digest dplyr foreign ggplot2 httr maps memoise purrr rappdirs rlang rvest sf stringr units xml2]; };
-  nhdplusTools = derive2 { name="nhdplusTools"; version="1.0.0"; sha256="109gipkpmszipljm19c1f9mrjpf647vk9kyz7dwcpwlra7x21ay3"; depends=[arrow dataRetrieval dplyr fst httr hydroloom jsonlite magrittr mapsf maptiles pbapply R_utils sf tidyr units xml2 zip]; };
+  nhdplusTools = derive2 { name="nhdplusTools"; version="1.2.1"; sha256="13jms0cfccydcc5jz2mv6ych8zwsvxf2g6qzspa9vqxyjdq1wzqn"; depends=[arrow dataRetrieval digest dplyr fst httr hydroloom jsonlite magrittr mapsf maptiles memoise pbapply R_utils sf tidyr units xml2 zip]; };
   nhlapi = derive2 { name="nhlapi"; version="0.1.4"; sha256="1c5s7fd9agzk20xi8v38dk8ih6lmn8c90mxncyr996bhipgr7vl3"; depends=[jsonlite]; };
   nhm = derive2 { name="nhm"; version="0.1.1"; sha256="1xc2kfc4g9f9nmsgm2fk5qhvlghgcyqiz9b5vr34a1x73cs9g0b8"; depends=[deSolve maxLik mvtnorm]; };
-  nhppp = derive2 { name="nhppp"; version="0.1.3"; sha256="07arj7i9d51b7v0wk7dpvgy09rzyd3infybhj3x4ipcgp5zh18kj"; depends=[lifecycle rstream]; };
+  nhppp = derive2 { name="nhppp"; version="0.1.4"; sha256="0822xcv2yq6f12naphh6d29q0215nwamf342fji6nffj6flfhh8d"; depends=[lifecycle Rcpp rstream]; };
   nhs_predict = derive2 { name="nhs.predict"; version="1.4.0"; sha256="0lgyi1v940pjqfpwligw5ml6vagiz8wwsxbr9kfd1j70b5i0kjwd"; depends=[]; };
   nhsnumber = derive2 { name="nhsnumber"; version="0.1.2"; sha256="10vm3591gjr13ggnagjkh0v2915yl05mwyphpckimmrrbc3zsdip"; depends=[]; };
   nhstplot = derive2 { name="nhstplot"; version="1.3.0"; sha256="162v85h9prl2kcchm219577ljw2an2hjapxyqxiv6xymp06cw4bn"; depends=[ggplot2]; };
@@ -14399,23 +14635,25 @@ in with self; {
   nic = derive2 { name="nic"; version="0.0.2"; sha256="1bsmwdnkxmpp1wr7w4qmpm1x8vgllif0yqbn4n0k477bzlm9p7m4"; depends=[]; };
   nice = derive2 { name="nice"; version="0.4-2"; sha256="0v4vd66kcblm0mq1ri73hs9vv79h03wmh7h60bj7vj1dlf4yzqj5"; depends=[]; };
   nicheROVER = derive2 { name="nicheROVER"; version="1.1.2"; sha256="03xal1bm4wfvq6943v1n3d0782yxcmlqjwxj4i0dgr3yi72759x2"; depends=[]; };
+  nichetools = derive2 { name="nichetools"; version="0.2.0"; sha256="12hcgqwq74pkf0x4240blb699qnazsls1dsni9arnf9hq06zypdy"; depends=[cli dplyr ellipse lifecycle nicheROVER purrr rlang tibble tidyr]; };
   nichevol = derive2 { name="nichevol"; version="0.1.20"; sha256="18c3l9mm4dh0pxpliv2sx7nyijdhmzgcd36xkzclhhh067lxifrs"; depends=[ape castor geiger stringr terra]; };
   nieve = derive2 { name="nieve"; version="0.1.3"; sha256="0r1acnb771wvxnpjzgrvxfs8fc6xibgggxk4smhq62nnyjlp0big"; depends=[]; };
   nifti_io = derive2 { name="nifti.io"; version="1.0.0"; sha256="03p0gn6id5bkn0qxf7v3splykpi9wpbasrhf2937gp25bsynrpjm"; depends=[]; };
   nilde = derive2 { name="nilde"; version="1.1-7"; sha256="014scmwhq9i66i2mhvrb71y6ccv0xzjqfgm2sqff9lzjv9smy2im"; depends=[]; };
   nima = derive2 { name="nima"; version="0.6.2"; sha256="0n8r8h1m0v0ssbpv6p32jby49f45qbicwr0awm7x054p48qk49cy"; depends=[assertthat dplyr ggplot2 ggthemes gridExtra gtools scales]; };
-  nimble = derive2 { name="nimble"; version="1.1.0"; sha256="16f1ljp6kiirc8kihib4d076k7czjhlh4bavrlhi1nllaf6q5p8b"; depends=[coda igraph numDeriv pracma R6]; };
-  nimbleAPT = derive2 { name="nimbleAPT"; version="1.0.4"; sha256="0615fm6sa6nf607ay98r81m0pp8yvydpwzn3972imf87irps2k3l"; depends=[nimble]; };
+  nimble = derive2 { name="nimble"; version="1.2.0"; sha256="16mq49fynkq3ki7g4dv5cxc493gi1sh728jaslzxzh1124n645f4"; depends=[coda igraph numDeriv pracma R6]; };
+  nimbleAPT = derive2 { name="nimbleAPT"; version="1.0.6"; sha256="17sv1f5dnrp33qfv7gr1s3isvwd79vnfiphjz45c7b4l28h3g2i6"; depends=[nimble]; };
   nimbleCarbon = derive2 { name="nimbleCarbon"; version="0.2.5"; sha256="0gqzdiid3x5k8286j3wy31pha76diniyj7si0mzrmq13kw77lsls"; depends=[coda doSNOW foreach nimble rcarbon snow]; };
   nimbleEcology = derive2 { name="nimbleEcology"; version="0.4.1"; sha256="1z4byxsana1fa2y7qhmiqbb8ana6zbas0cmbgcc703mqh1642jb2"; depends=[nimble]; };
   nimbleHMC = derive2 { name="nimbleHMC"; version="0.2.1"; sha256="1id9pqs1phc2vf8mwz2gdgirhmki4shw8h77828nbj10b3zik3zj"; depends=[nimble]; };
-  nimbleNoBounds = derive2 { name="nimbleNoBounds"; version="1.0.2"; sha256="1sbaj1ayvqn86av045h5n7rrlw5r3zyk1i6v5v9sjm3f9pxyffgw"; depends=[nimble]; };
+  nimbleNoBounds = derive2 { name="nimbleNoBounds"; version="1.0.3"; sha256="16dl6gh5lgih4wcfb31vkbzn9knmjicfzi1bkw0j62ah39vhhdh9"; depends=[nimble]; };
   nimbleSCR = derive2 { name="nimbleSCR"; version="0.2.1"; sha256="1gyc93isivvq0b8fv4pb2g3mpr1n7jfpj9bs86a417iwbf34x4a4"; depends=[nimble]; };
-  nimbleSMC = derive2 { name="nimbleSMC"; version="0.11.0"; sha256="14ps01rphi31570m2qhmgpjhdn73aldhm5a20y6fqf3j24k86jys"; depends=[nimble]; };
+  nimbleSMC = derive2 { name="nimbleSMC"; version="0.11.1"; sha256="1sh1jaf8hyndazxbfjblfn1mkwqk8gwdqcdmgciqvyw3chsddv9v"; depends=[nimble]; };
   nipals = derive2 { name="nipals"; version="0.8"; sha256="0nv7h68hysxnpiinmgw6v3bz4ya53c0p96k9bfvcmalfb7hs8j5z"; depends=[]; };
-  nipnTK = derive2 { name="nipnTK"; version="0.1.0"; sha256="0imy2x1h9d842ssw7hmmh21c4mj7s6y05mmjin1270skbnrk2zmr"; depends=[bbw withr]; };
+  nipnTK = derive2 { name="nipnTK"; version="0.2.0"; sha256="0y20nik6jrypywqr809891amf9aq6bwf1p0vskr43p0scblbbv0b"; depends=[withr]; };
   nivm = derive2 { name="nivm"; version="0.5"; sha256="194kc743hqjalvkvh80y2rj25b8caklcb15pi72d6r02apyvw43d"; depends=[bpcp ssanv]; };
   nixmass = derive2 { name="nixmass"; version="1.0.2"; sha256="0g8hm0mnbwahbnk44rfciiggxn5bscfni5gqc6y3za496cf9wlk1"; depends=[lubridate zoo]; };
+  nixtlar = derive2 { name="nixtlar"; version="0.5.2"; sha256="0r0vcrwpx7gyndbp6wwvlzvvl1ivk2js13m7lgpkdhriwy4bws9v"; depends=[dplyr ggplot2 httr2 lubridate rlang tidyr tidyselect tsibble]; };
   njgeo = derive2 { name="njgeo"; version="0.1.0"; sha256="1cc6gm0l5z31hqif2d8wd503pb48xsmyr28pbildkxgy9z022af5"; depends=[curl dplyr httr jsonlite sf]; };
   njtr1 = derive2 { name="njtr1"; version="0.3.2"; sha256="1fyp9myzlx670xjpzxq4ivbl1qs7f3rz6n424ydp1ml994mz709a"; depends=[curl dplyr httr lubridate readr stringi stringr tidyselect]; };
   nlMS = derive2 { name="nlMS"; version="1.1"; sha256="01ijg1bp3r0dg8ph7qpsx3hqzrrvfhbykml20hqchxk7c5n2w9wz"; depends=[nlme]; };
@@ -14424,16 +14662,16 @@ in with self; {
   nleqslv = derive2 { name="nleqslv"; version="3.3.5"; sha256="0fjby0qva2lp2i7x752wva0z15xqys9fgrrcfimqszg65wnig60j"; depends=[]; };
   nlgm = derive2 { name="nlgm"; version="1.0"; sha256="03byqqj8ayq7hbaab4cfrk0nbxmiiq2c2i98szfydzkimhrw922a"; depends=[ggplot2 Rfast Rfast2]; };
   nlist = derive2 { name="nlist"; version="0.3.3"; sha256="1wq7bp834c7cl37wbrgd9ars3mm0s5c3l3fxlrry728a27c27f9h"; depends=[abind chk coda extras generics lifecycle purrr term tibble universals]; };
-  nlive = derive2 { name="nlive"; version="0.2.0"; sha256="15h55ck0xha905wjg89rf8gcz49c3kpd5sqb2xxxkg9z4mlbn1q8"; depends=[dplyr ggplot2 knitr lcmm nlraa Rmisc saemix sitar sqldf]; };
-  nlme = derive2 { name="nlme"; version="3.1-164"; sha256="1s6lpp4hpjhyn7ygfngw2f60a40kbbikd0y2wqzbhdvhrqha19br"; depends=[lattice]; };
+  nlive = derive2 { name="nlive"; version="0.6.0"; sha256="07an5ds2v7hv15062dcbggdl04b2jqx7mil8a50n6jzdr2x0rb54"; depends=[dplyr fastDummies ggplot2 knitr lcmm nlraa Rmisc saemix sitar sqldf]; };
+  nlme = derive2 { name="nlme"; version="3.1-165"; sha256="16clxh0b8sr2k3vddfip3awimn17ffkd5kwgygi8n4y2jfjbndzw"; depends=[lattice]; };
   nlmeU = derive2 { name="nlmeU"; version="0.70-9"; sha256="10vk098mv8h9hv6cn8sih2fmg9cjsqmvndqzqm8bbaahla1v6n7q"; depends=[nlme]; };
   nlmeVPC = derive2 { name="nlmeVPC"; version="2.6"; sha256="0ymiif377c6rjplzvs3s4bgc62ymw2l3cigx8rh779blb0w90qf8"; depends=[ggplot2 Hmisc optimx quantreg Rcpp RcppArmadillo timeDate]; };
-  nlmixr2 = derive2 { name="nlmixr2"; version="2.1.1"; sha256="1br3q49ikx50brca5n6y7kmzxzjjl767hy3gg6as6y9khsaclazc"; depends=[cli crayon lotri magrittr nlmixr2data nlmixr2est nlmixr2extra nlmixr2plot rxode2]; };
+  nlmixr2 = derive2 { name="nlmixr2"; version="2.1.2"; sha256="1mfc9gyz21796j7h9g18hrkisrd6vyw4nc5dpfdd9r0abp8x61aw"; depends=[cli crayon lotri magrittr nlmixr2data nlmixr2est nlmixr2extra nlmixr2plot rxode2]; };
   nlmixr2data = derive2 { name="nlmixr2data"; version="2.0.9"; sha256="0m1ymsx509zs6w9h92q9h8xyrbv4y7vhdcvfnvw1j4z0055592wg"; depends=[]; };
-  nlmixr2est = derive2 { name="nlmixr2est"; version="2.2.1"; sha256="0k279z2lm0dw5pkjj9s8dwg4wisbc29s5xff8hwafdiq0jnxngr4"; depends=[backports BH checkmate cli knitr lbfgsb3c lotri magrittr Matrix minqa n1qn1 nlme nlmixr2data Rcpp RcppArmadillo rex rxode2 rxode2parse rxode2random symengine]; };
-  nlmixr2extra = derive2 { name="nlmixr2extra"; version="2.0.9"; sha256="154i98p0zavl5jl7rrincxrchrzd52454ma2jd2cjxhns7nwz3c5"; depends=[checkmate cli crayon data_table digest ggplot2 ggtext knitr lotri nlme nlmixr2est Rcpp RcppArmadillo rxode2 symengine]; };
+  nlmixr2est = derive2 { name="nlmixr2est"; version="2.2.2"; sha256="1g25cqh3yybq9lxbxma3fd11jw1wgpnadxjx78sqqbzwx54xiawf"; depends=[backports BH checkmate cli knitr lbfgsb3c lotri magrittr Matrix minqa n1qn1 nlme nlmixr2data Rcpp RcppArmadillo rex rxode2 rxode2parse rxode2random symengine]; };
+  nlmixr2extra = derive2 { name="nlmixr2extra"; version="2.0.10"; sha256="03k8f6v6qqgbl8ngga0n6xyx2kz98xfv6kvi7rad9n90fpdqiaxl"; depends=[checkmate cli crayon data_table digest ggplot2 ggtext knitr lotri nlme nlmixr2est Rcpp RcppArmadillo rxode2 symengine]; };
   nlmixr2lib = derive2 { name="nlmixr2lib"; version="0.2.0"; sha256="1clar5nw77dc07q1l014ajc5avfdd2n82chdpbv1gcs2mfyrwr9r"; depends=[checkmate cli nlmixr2est rxode2]; };
-  nlmixr2plot = derive2 { name="nlmixr2plot"; version="2.0.8"; sha256="0w6y80ih5fj9s0in46wgdwfy479pnv4r8k5l722kzkn70wr14gx6"; depends=[ggplot2 nlmixr2est nlmixr2extra rxode2 vpc xgxr]; };
+  nlmixr2plot = derive2 { name="nlmixr2plot"; version="2.0.9"; sha256="0n0crjmb5mwnrq52hf9hwi36ggvwrpyxsr9gm608dwwxky8zmrwg"; depends=[ggplot2 nlmixr2est nlmixr2extra rxode2 vpc xgxr]; };
   nlmixr2rpt = derive2 { name="nlmixr2rpt"; version="0.2.0"; sha256="1lc7pmh97wggfms2in37f5bdrri914ninr58ah92215p3fxcqmls"; depends=[cli dplyr flextable ggforce ggplot2 ggpubr nlmixr2 nlmixr2extra onbrand rxode2 stringr xpose xpose_nlmixr2 yaml]; };
   nlmm = derive2 { name="nlmm"; version="1.1.0"; sha256="0mi9nsdzsvaxfb3n3z3rijd8saw4l7x3g2gq8ivzxyilyav5anxb"; depends=[BH gsl lqmm MASS Matrix mvtnorm nlme numDeriv Qtools Rcpp RcppArmadillo statmod]; };
   nlmrt = derive2 { name="nlmrt"; version="2016.3.2"; sha256="1g0qq0a933ay65gkp04qgn2wqk6vw79pj2a228c2ski4rcmkjxyn"; depends=[]; };
@@ -14461,7 +14699,7 @@ in with self; {
   nlts = derive2 { name="nlts"; version="1.0-2"; sha256="0s49qjwavl9ns2746nn4zy4h4dh0njfcvznm3qd61qhs7np9w1db"; depends=[acepack locfit]; };
   nmaINLA = derive2 { name="nmaINLA"; version="1.1.0"; sha256="1qjb5n1qr89rv2a5ay2p74cs3i6swkn8wllklgn57fnahb9pcrgi"; depends=[]; };
   nmadb = derive2 { name="nmadb"; version="1.2.0"; sha256="17r5vc57ilhy6cfcqpfyp9nzzjaa5gc8qkgfn3y8sppqh1g1mi40"; depends=[devtools jsonlite RCurl readxl]; };
-  nmaplateplot = derive2 { name="nmaplateplot"; version="1.0.1"; sha256="1k6i4d1n2cadhp1nzb7ij1d58wrgyhrqpwq1flixgkyrzz375z9g"; depends=[ggplot2]; };
+  nmaplateplot = derive2 { name="nmaplateplot"; version="1.0.2"; sha256="0vc9v5xvcl8k312dng7z5xaz7k9a93hsayjncpij59fcrr01n16b"; depends=[ggplot2]; };
   nmarank = derive2 { name="nmarank"; version="0.3-0"; sha256="1i2vagjq96q2vhr2lxbm3hqspddfq9qkqjcr8smni6ikmw32akil"; depends=[data_tree dplyr MASS meta mvtnorm netmeta rlang tibble tidyr]; };
   nmathresh = derive2 { name="nmathresh"; version="0.1.6"; sha256="1jrf7k7an5y867k40aj28ib7vrjyqky2cslwzmfx28snp8ns1vd3"; depends=[ggplot2 gridExtra gtable Matrix nnls]; };
   nmfbin = derive2 { name="nmfbin"; version="0.2.1"; sha256="1g2yhb2g11fd0dl4xiq2xhjizyzg7f8x3rm01gjbdp1c68vlsf8q"; depends=[]; };
@@ -14472,15 +14710,15 @@ in with self; {
   nn2poly = derive2 { name="nn2poly"; version="0.1.1"; sha256="03p3asvx1913lkmi6f1bq71wxm83qc0lbniv4s9s9fcv13md3xml"; depends=[generics matrixStats pracma Rcpp RcppArmadillo]; };
   nnGarrote = derive2 { name="nnGarrote"; version="1.0.4"; sha256="0km7vx9qkfijj2af5ma4q88mhgkrw361hpv3n8dyzpr8654hrw4v"; depends=[glmnet]; };
   nnR = derive2 { name="nnR"; version="0.1.0"; sha256="1wxryfkmachsv5m3bbb7ym70p55l36b218q8r2wjy4bl0cwi83jp"; depends=[]; };
-  nnTensor = derive2 { name="nnTensor"; version="1.2.0"; sha256="1anyqk1pafvw20rgsbxcl604qdhnbcymfin3yz9nv2v4mv4sf1ci"; depends=[fields ggplot2 MASS plot3D rTensor tagcloud]; };
+  nnTensor = derive2 { name="nnTensor"; version="1.3.0"; sha256="1kkv3788qh3ls49d2ixvpyky96qz0qij8mbxaczqgrdmxpyfnc8k"; depends=[fields ggplot2 MASS plot3D rTensor tagcloud]; };
   nna = derive2 { name="nna"; version="0.0.2.1"; sha256="17cz1jf7iv61wspqldfdwbdjhlr0wq09idkzlivfb8aik5w9f0z5"; depends=[]; };
   nncc = derive2 { name="nncc"; version="2.0.0"; sha256="0sm54rskw84g3gl04i0cs1vhg3na54lbcwn1gh0yibfk7ihwf91q"; depends=[cluster dplyr furrr ggplot2 igraph rlang tidyr]; };
   nndiagram = derive2 { name="nndiagram"; version="1.0.0"; sha256="0x6gv8rmvnqvvwxgqmkybmvmf4g94im0lardkmb5a043krvgh3i4"; depends=[dplyr]; };
   nnet = derive2 { name="nnet"; version="7.3-19"; sha256="1rrc70shnrnn7gyq5fhnmw841a06d8y0vp5pp8xv1lvhj931y959"; depends=[]; };
   nnfor = derive2 { name="nnfor"; version="0.9.9"; sha256="0jrp840vr5jyk76808l0d1r46hhvz0l0vimwdc82wilfh8sb5sz5"; depends=[forecast generics glmnet MASS neuralnet plotrix tsutils uroot]; };
-  nngeo = derive2 { name="nngeo"; version="0.4.7"; sha256="0scfclw2prjfgm1liwbbys9ds00pyb0fk8q0mw6d6nqnbrw9kfnd"; depends=[data_table nabor sf units]; };
+  nngeo = derive2 { name="nngeo"; version="0.4.8"; sha256="18rww271wm9k8v1jibs6ans549yrz0zzl2c63sgdd1f9kkhr2apm"; depends=[data_table nabor sf units]; };
   nnlasso = derive2 { name="nnlasso"; version="0.3"; sha256="1n7karlmgq61z9ywfx9xb5wvmxx40ydpnzzazj1xr70qlv5m0qk4"; depends=[]; };
-  nnlib2Rcpp = derive2 { name="nnlib2Rcpp"; version="0.2.5"; sha256="1xmwx6vg4zrn81d34jsvzf61yh0g8nmssg87van25ysgxm6gzqs2"; depends=[Rcpp]; };
+  nnlib2Rcpp = derive2 { name="nnlib2Rcpp"; version="0.2.8"; sha256="06fb4wh39gdlywpyj86hnys87mrwrx2m6dw16zkrs1kawg4z5gvm"; depends=[class Rcpp]; };
   nnls = derive2 { name="nnls"; version="1.5"; sha256="0lilga63p7k5mkkfcf5p3swx76vwysl979jxszm6svzqhsrgww6d"; depends=[]; };
   nnspat = derive2 { name="nnspat"; version="0.1.2"; sha256="1svqdb20x5d4wsbi97lhjwkhl623ksawf4w4w1f0hwsx0f3xjzvi"; depends=[MASS pcds Rdpack]; };
   nnt = derive2 { name="nnt"; version="0.1.4"; sha256="1rrqq8m3plsq13hsh53h948wbx37gl87hplj4ms2pxxf1zwqsmnj"; depends=[survival survRM2]; };
@@ -14503,29 +14741,30 @@ in with self; {
   nolock = derive2 { name="nolock"; version="1.1.0"; sha256="1d909qq6091rbsmnls2lc8l64iy7cam281s4854v4iar8l4dxh77"; depends=[crayon NCmisc rstudioapi stringr]; };
   nombre = derive2 { name="nombre"; version="0.4.1"; sha256="16hpr628j8rzxg5k71qsgc9xhz1w4gpi3fry5vp1mbwvalmlish2"; depends=[fracture]; };
   nomclust = derive2 { name="nomclust"; version="2.8.0"; sha256="1bl92zaf4iidm48xjxj0v812lx7gk3i3frvb59xr71y91ranwjpv"; depends=[cluster clValid Rcpp]; };
-  nominatimlite = derive2 { name="nominatimlite"; version="0.3.0"; sha256="1pxajzf5pbqr7klzsd3kry7fxvs3va2si45irz07v3v7nr2a1id8"; depends=[dplyr jsonlite lifecycle sf]; };
+  nominatimlite = derive2 { name="nominatimlite"; version="0.4.0"; sha256="1qvbg4dpy65xjmh7i96xhm7cw07w375hm119540gqmc9z1zdh4g3"; depends=[dplyr jsonlite sf]; };
   nomisr = derive2 { name="nomisr"; version="0.4.7"; sha256="0mf301nhsl71h79jxfkwa27j5nifsxp7y6vxbnx87rybr80b3hg1"; depends=[dplyr httr jsonlite rlang rsdmx snakecase tibble]; };
   nomnoml = derive2 { name="nomnoml"; version="0.3.0"; sha256="0akxxc2yjpn0h7xvfpflmazihxnk9hpkn0l3353gbll388qxd620"; depends=[htmlwidgets lifecycle png rlang webshot2]; };
   nomogramEx = derive2 { name="nomogramEx"; version="3.0"; sha256="16235rwblnzn8k53817llwy2pzhnpifh6ij159nxymjm8ar9qpbp"; depends=[pracma rms]; };
   nomogramFormula = derive2 { name="nomogramFormula"; version="1.2.0.0"; sha256="1j6g5kndl0n2g8acwq8pn09sk0bjcsphbcd77ha1j5dnwdmy73c0"; depends=[do Hmisc rms]; };
-  nomordR = derive2 { name="nomordR"; version="0.1"; sha256="02d5gk5pd4vpd61ys9x81maxjrmbshx1wdv6xxsvafrnz7a7pmks"; depends=[]; };
   nonLinearDotPlot = derive2 { name="nonLinearDotPlot"; version="0.5.0"; sha256="073qgada7bqz8jnpac4f3qb9iwsaiyb5m5y0fjgvyrjnjij29zxk"; depends=[]; };
   noncompliance = derive2 { name="noncompliance"; version="0.2.2"; sha256="1lcybgj95z7lz7p26xbsdiv0vvms4ab4f8kad0pclacf1l43v0j6"; depends=[data_table Rcpp]; };
   noncomplyR = derive2 { name="noncomplyR"; version="1.0"; sha256="1a9m6r9cizw42nmy24jdsrsbllg5z84fs8b239axnh1fxzskg2qy"; depends=[MCMCpack]; };
   nonet = derive2 { name="nonet"; version="0.4.0"; sha256="1043vplj8libbzll172h82dfwnz2lsdba5na2g9liryg8p08h4v8"; depends=[caret dplyr e1071 ggplot2 glmnet pROC purrr randomForest rlang rlist tidyverse]; };
   nonlinearICP = derive2 { name="nonlinearICP"; version="0.1.2.1"; sha256="1m9a1f0yrbjl0nx2l7r76pyi78b2bxj8v4jx92yga91f975mw6np"; depends=[caTools CondIndTests data_tree randomForest]; };
-  nonlinearTseries = derive2 { name="nonlinearTseries"; version="0.2.12"; sha256="0fdyr7a5pac40wrrn6frj0q8pn03dic5a2rls3zr85yj48mimyfs"; depends=[lifecycle Matrix Rcpp RcppArmadillo tseries zoo]; };
+  nonlinearTseries = derive2 { name="nonlinearTseries"; version="0.3.0"; sha256="1qzg5azydivxp04bs1s3m21bigacyrv6cak3cx7xpgq2w4fnb3br"; depends=[lifecycle Matrix Rcpp RcppArmadillo tseries zoo]; };
   nonmem2R = derive2 { name="nonmem2R"; version="0.2.5"; sha256="0py0nn8sn9p4lcdbjsfmz3z0ch3i3qbvfjifmjzdhdjgd9vvi19r"; depends=[ggplot2 gridExtra lattice latticeExtra MASS mvtnorm reshape2 splines2]; };
-  nonmem2rx = derive2 { name="nonmem2rx"; version="0.1.3"; sha256="008lxg0n09alrv07i96crs430q6zvg5siasyqrfmaahq7cclsynn"; depends=[checkmate cli crayon data_table digest dparser ggforce ggplot2 lotri magrittr qs Rcpp rxode2 rxode2parse xml2]; };
+  nonmem2rx = derive2 { name="nonmem2rx"; version="0.1.4"; sha256="08yyh7jwlqfxprwrs2f3pgjzlii66p98ixnd5r2jliqdzxbx1ciy"; depends=[checkmate cli crayon data_table digest dparser ggforce ggplot2 lotri magrittr qs Rcpp rxode2 rxode2parse xml2]; };
   nonmemica = derive2 { name="nonmemica"; version="1.0.8"; sha256="000pjp7zk3pw7xhg0w8363b1q52l6ikqjpvdxjd1kb61y99bi6m2"; depends=[csv dplyr encode lazyeval magrittr metaplot rlang spec tidyr xml2]; };
   nonneg_cg = derive2 { name="nonneg.cg"; version="0.1.6-1"; sha256="1ppwv5yad8v7qhjr4z5p5vl51ry3sxqbmg0ynkx11j67byggn6xf"; depends=[Rcpp]; };
-  nonnest2 = derive2 { name="nonnest2"; version="0.5-6"; sha256="1s31a03c148azvc20ihmz8vhzgs7a3r0nxzf806zsr5j1zsl94dm"; depends=[CompQuadForm lavaan mvtnorm sandwich]; };
+  nonnest2 = derive2 { name="nonnest2"; version="0.5-7"; sha256="0gnv538wskgyp6v08b0grz76mfpc1qlbp0r5w19b9lrv9d3c4h74"; depends=[CompQuadForm lavaan mvtnorm sandwich]; };
   nonpar = derive2 { name="nonpar"; version="1.0.2"; sha256="0gflldd3kjbpdlvbwi073igj6shcqr9g5x6zcp5gfa12404qpflq"; depends=[]; };
   nonparaeff = derive2 { name="nonparaeff"; version="0.5-13"; sha256="04ya0b4nwfcyw7asby8j5npa59p8w8ri3cifpigvqmdg47v9kzmc"; depends=[geometry Hmisc lpSolve]; };
   nonparametric_bayes = derive2 { name="nonparametric.bayes"; version="0.0.1"; sha256="1acrjh0fcr15b9k2hpg0ihfav0w2lzjdpjyayz3f4hx596j32vi8"; depends=[mvtnorm progress]; };
+  nonprobsvy = derive2 { name="nonprobsvy"; version="0.1.0"; sha256="0p5x88dgas0hy3xydn5803pybf5ryxc85gzn9fb2c5kdrv2v0pcr"; depends=[doParallel foreach MASS mathjaxr Matrix maxLik ncvreg nleqslv RANN Rcpp RcppArmadillo survey]; };
   nopaco = derive2 { name="nopaco"; version="1.0.7"; sha256="0ffcbrk3l2xprd4jiilvk6i5l39x4mi7vrx4irzqnf3m9nwsz6w5"; depends=[Matrix]; };
   nopp = derive2 { name="nopp"; version="1.1.2"; sha256="1kcgwhwj02bivqqd86l9gk3gqiws9c4kjcsjmd0arcfd1bcygbj2"; depends=[MASS mlogit]; };
-  nor1mix = derive2 { name="nor1mix"; version="1.3-2"; sha256="0252kqhdsp374isc59pm1c6dmsb16jibpnsp1bpyh4k5mg73cdj6"; depends=[]; };
+  nor1mix = derive2 { name="nor1mix"; version="1.3-3"; sha256="0vh7vlvijska09rm0cb2lakwhjm38mc4daksc2zniyj7r3wd1gwp"; depends=[]; };
+  norMmix = derive2 { name="norMmix"; version="0.1-1"; sha256="1nkgidzbqp83bqvkpalxs58s2blpx9s1j9dm2i13plfx3kv0d6x3"; depends=[cluster MASS mclust mvtnorm sfsmisc]; };
   nord = derive2 { name="nord"; version="1.0.0"; sha256="1gisqca85vzbqq5hs5bgqjgrjyksxj176x97kv9vv6mwll8kijl9"; depends=[ggplot2]; };
   nordklimdata1 = derive2 { name="nordklimdata1"; version="1.2"; sha256="0c2hbh3qy8nrs275lxpzfgqsfgwp81m4kv0layvnjj09fcybm54x"; depends=[]; };
   norm = derive2 { name="norm"; version="1.0-11.1"; sha256="1g33g721c0f2b275b334ir6n0h81fh567vs9vrxk60y21z1ydzy2"; depends=[]; };
@@ -14539,15 +14778,15 @@ in with self; {
   nortestARMA = derive2 { name="nortestARMA"; version="1.0.2"; sha256="11ala9z0snsbn1xmj9yzs4kyh9js1w19x0dnnmh5cbr9bi7aag50"; depends=[astsa]; };
   nortsTest = derive2 { name="nortsTest"; version="1.1.2"; sha256="0z3ganmaz3p0s957g123gcmcf6x01gvsmrl6ddi3n588hysscqsy"; depends=[cowplot forecast ggplot2 gridExtra MASS nortest tseries uroot zoo]; };
   nos = derive2 { name="nos"; version="2.0.0"; sha256="1a2wgakyrp5gn0gxms83nmajxfr9b5r8pz5s4pccc0m325glzbqr"; depends=[bipartite dplyr gmp]; };
-  nose = derive2 { name="nose"; version="1.0"; sha256="17l78vmfqc22inq6zaqpnk2m91wp0nfjbbwfcpfqykf8lk9ipqna"; depends=[]; };
   nosoi = derive2 { name="nosoi"; version="1.1.2"; sha256="15s2asw2jn890dyjnx4rnv499wv6ks9k7vfpbcm2sznw95rmwc67"; depends=[data_table raster]; };
   not = derive2 { name="not"; version="1.5"; sha256="0g40500h2cwimzf7w3zqas924i4cvxddmqv0ysqrm4r7y2dpv48i"; depends=[]; };
-  notebookutils = derive2 { name="notebookutils"; version="1.5.1"; sha256="0f1vwc4y91k3yxsbbr7c47z3gwr3zk9dlyp3xx2ggrk4nnqhlafb"; depends=[]; };
+  notebookutils = derive2 { name="notebookutils"; version="1.5.3"; sha256="09jqh44jfbbqq34xkr6bznwc7swwjawfjpacikxpg3009i847pbl"; depends=[]; };
   notifyme = derive2 { name="notifyme"; version="0.3.0"; sha256="0b6xrv6c4id7rs0dafg96pl4brn4yma5xh9wjz78ql44bg3w5s91"; depends=[dplyr httr magrittr]; };
   novelforestSG = derive2 { name="novelforestSG"; version="2.1.0"; sha256="17xjcpb1chvclqwjc3948lf4n730s91hczdb73b5b620w276mdz2"; depends=[]; };
   novelqualcodes = derive2 { name="novelqualcodes"; version="0.13.1"; sha256="0126nkn68hgw258zqpp0abcq1a3s0v2x0b3nc9brrzvfl2ynpnpm"; depends=[ggpattern ggplot2 naturalsort readxl]; };
   noweb = derive2 { name="noweb"; version="1.1-4"; sha256="16425n0cqfkjqs8wv1vkxbdm5xlryvsa2sxwa3nqjsfj6d7pc6mv"; depends=[]; };
   np = derive2 { name="np"; version="0.60-17"; sha256="0dkz8aing2zdah83sjs874cxgwyzx82x60idziqfbhjf4g5mfyfr"; depends=[boot cubature quadprog quantreg]; };
+  npDoseResponse = derive2 { name="npDoseResponse"; version="0.1"; sha256="0gfr210xxq1lq4c60a1fzwjcqcs9m9jixlqlzy0mblbcab3br6h1"; depends=[]; };
   npExact = derive2 { name="npExact"; version="0.2"; sha256="055wm5lcj98wb71lqp2zdyl8kkwvi6lwmnaylynvr907xqabaqvd"; depends=[]; };
   npIntFactRep = derive2 { name="npIntFactRep"; version="1.5"; sha256="14ms66ppzb4jjsa3fparic6gdn913f6wv2ccjyb02j1ahs4iaa4g"; depends=[ez plyr]; };
   npROCRegression = derive2 { name="npROCRegression"; version="1.0-7"; sha256="0fl10gj6s09gfmb7wl1y62fr49qnckjqxbzhjkyx029v9klbfvp7"; depends=[lattice]; };
@@ -14567,7 +14806,7 @@ in with self; {
   npcurePK = derive2 { name="npcurePK"; version="1.0-2"; sha256="1p1vl9w8z8xq6bfsn1kgq5cnzyf4aiax8iis0vb4xcxrb2wl0mav"; depends=[data_table DescTools doParallel foreach npcure]; };
   npde = derive2 { name="npde"; version="3.5"; sha256="04bksbziqapj1nx0xnjrhgapfd6mxfh5kbyvf86k02jszmxlzr4d"; depends=[ggplot2 gridExtra mclust rlang scales]; };
   nph = derive2 { name="nph"; version="2.1"; sha256="100x7ar498s18rs8m4bx0kf4h8vqk1clb4z4kdnlni16lrpc90hy"; depends=[ggplot2 muhaz multcomp mvtnorm survival]; };
-  nphPower = derive2 { name="nphPower"; version="1.0.0"; sha256="0jqrbjm56nmhrmhsidz0bzyifq6kpqch8r64j8vd98b7xgcb6w4h"; depends=[MASS mvtnorm survival zoo]; };
+  nphPower = derive2 { name="nphPower"; version="1.1.0"; sha256="0mvynqmpsgfwmvxi478mkw15rscxdb6mvrj1djfhhm54h0w0133k"; depends=[MASS mvtnorm survival zoo]; };
   nphRCT = derive2 { name="nphRCT"; version="0.1.0"; sha256="0b29izx3rz17g0jx72s33jj8ps0z3kq8fj2v0035hcjacnswz9ya"; depends=[ggplot2 purrr survival]; };
   npi = derive2 { name="npi"; version="0.2.0"; sha256="0akf9m46iy18nqm678sga1dxq1135jj33yrxz30yhd75w6nicgri"; depends=[checkLuhn checkmate curl dplyr glue httr magrittr purrr rlang stringr tibble tidyr]; };
   nplplot = derive2 { name="nplplot"; version="4.7"; sha256="18959kvp68h3lp1zwv726rfsj509mcdmjx0qh41qrff76cdhvrb7"; depends=[]; };
@@ -14580,28 +14819,28 @@ in with self; {
   npordtests = derive2 { name="npordtests"; version="1.2"; sha256="1axzcyy45h3rs67m0i3cvwbmza1mnmraxan9j4zlpxdd5x9nz4h8"; depends=[]; };
   nppbib = derive2 { name="nppbib"; version="1.2-0"; sha256="1nn6wf89jhr3gy4rcd6px0cd5b1bsr7pbaxng4adba8n3yrss7vs"; depends=[]; };
   npphen = derive2 { name="npphen"; version="2.0.0"; sha256="17q9zhh7abpsddb25km1y6kyijlf6lh8j43lqv58jsjig98rrk6w"; depends=[ks lubridate terra]; };
-  npreg = derive2 { name="npreg"; version="1.0-9"; sha256="10pgcjhiannvxkbsw3ywkjzmgsq2m7dqwqhxkfcdnbc052n7s6di"; depends=[]; };
+  npreg = derive2 { name="npreg"; version="1.1.0"; sha256="09z51svfigw7xzs8s20m19amy2ypi9gdihqsjvqngh6pwsci5v9n"; depends=[]; };
   npregderiv = derive2 { name="npregderiv"; version="1.0"; sha256="1k873cs3rs15l13z8017n4anacandx7di6yk1zlamcc5p3vlh59n"; depends=[]; };
   npregfast = derive2 { name="npregfast"; version="1.5.2"; sha256="1d2p23qqwa06rxfl5v9bcvq2j6pcsvjywq74qgrflkjk45g2kjb5"; depends=[doParallel foreach ggplot2 mgcv sfsmisc shiny shinyjs wesanderson]; };
   nprobust = derive2 { name="nprobust"; version="0.4.0"; sha256="1vry64r3xms6xls6bqq918prjyhs5svhl2yjvq0jxycaaqw2sgyp"; depends=[ggplot2 Rcpp RcppArmadillo]; };
   nproc = derive2 { name="nproc"; version="2.1.5"; sha256="1p5wjz0rafg27fsl48l9pmki3px1k0pav3ignz4swik5i1nhnc8w"; depends=[ada e1071 glmnet MASS naivebayes randomForest ROCR tree]; };
   nprotreg = derive2 { name="nprotreg"; version="1.1.1"; sha256="152z2wsm4gwqw51imk80vxg9spvl9293vqsja8d8gh1rmsm6m5r2"; depends=[foreach]; };
   npsf = derive2 { name="npsf"; version="0.8.0"; sha256="011y8k3sdhhgzf4yn0wdxx55yv4kdpgyhj0bbm6krjdpphnr9557"; depends=[Formula Rcpp]; };
-  npsm = derive2 { name="npsm"; version="1.1.1"; sha256="0ri0nn7ahagwcgyq75z20a2xprfagwxynjim8q9ls5y7vav17486"; depends=[class plyr Rfit]; };
+  npsm = derive2 { name="npsm"; version="2.0.0"; sha256="0d2pa55jcxrphmsnv0wcv3xsdidjcr8b8s9krbal27rjrvqqh27s"; depends=[class plyr Rfit]; };
   npsp = derive2 { name="npsp"; version="0.7-13"; sha256="1js40ir7gb0r24aiv9biyvf1mddhmaxkdlraflcay7w6b9yir2jm"; depends=[quadprog sp spam]; };
-  npsr = derive2 { name="npsr"; version="0.1.1"; sha256="1fzvilzjg9z05991sr1s1bdp17kfl6d1580qdllk8is9ac06np0v"; depends=[gmp infotheo MASS]; };
   npsurv = derive2 { name="npsurv"; version="0.5-0"; sha256="1ihxhb42cga1hssj2jv4ah0f4hlwsky899ij5261fzh1wxvdp1xw"; depends=[lsei]; };
-  npsurvSS = derive2 { name="npsurvSS"; version="1.0.1"; sha256="0k9xvxii5527vynf7yy50j7z4jhxgk5ydhdcaaygm9ynx5yq14ip"; depends=[]; };
+  npsurvSS = derive2 { name="npsurvSS"; version="1.1.0"; sha256="070sggfz5p3zmf1dxrjnrhh2xj27azcc7sgv33libzbc3hsi3dg7"; depends=[]; };
   nptest = derive2 { name="nptest"; version="1.1"; sha256="1yfxpw3xlscv0maqgvadxj93qgs25w027lk2br1zlckll8dvdakz"; depends=[]; };
   npwbs = derive2 { name="npwbs"; version="0.2.0"; sha256="029vxc6iy1p6nv0vw6097rvpkwlf0a24643gr6dbycpbail9qlqg"; depends=[]; };
   nrba = derive2 { name="nrba"; version="0.3.1"; sha256="1d3mgz9riy14a7n7swzizjl8y5qmbk9p9c01ml968nk60ivb6ppv"; depends=[broom dplyr magrittr rlang srvyr survey svrep tidyr]; };
   nricens = derive2 { name="nricens"; version="1.6"; sha256="0fpgp6k3mhb0qxbx6248k9bscnmlzwj70mqh631a1nc4cpdjvw3q"; depends=[survival]; };
-  nsRFA = derive2 { name="nsRFA"; version="0.7-16"; sha256="1l6072fqpqlzpp5350mg98vsv0w58mcn8masvyivfqqw9v5h4bzn"; depends=[]; };
+  nsRFA = derive2 { name="nsRFA"; version="0.7-17"; sha256="083ljzfpcxq769xwb0vfk20kj38gbq22vxf5j597b4qlvdwh5qbq"; depends=[]; };
   nsROC = derive2 { name="nsROC"; version="1.1"; sha256="1fi7k61fja98kpn528jprjdycwz01rnqm368m82anxh21k7q4s1m"; depends=[sde survival]; };
   nsarfima = derive2 { name="nsarfima"; version="0.2.0.0"; sha256="0sv63anrsh0ajfvvkb44zsvc7sxws3xpsgwxqa951gy98w8h58g5"; depends=[]; };
   nscancor = derive2 { name="nscancor"; version="0.7.0-6"; sha256="1fcw3qpsc7kpg2ha1qkp2277ir2kyhy71vjwypfp49y7nqiwm7kh"; depends=[]; };
   nse = derive2 { name="nse"; version="1.21"; sha256="0mw2ijc6z0l8sa7z5fbcapp1rl87zhh5v32iw1mcjw4khwc93bk7"; depends=[coda mcmc mcmcse np Rcpp sandwich]; };
-  nser = derive2 { name="nser"; version="1.5.1"; sha256="1bsdq4hym492hw6sq7swbxqbk7x7q085crqd7f8ch4s9zxfijj5l"; depends=[curl dplyr googleVis lubridate magrittr purrr readr reticulate rvest stringr xml2]; };
+  nseq = derive2 { name="nseq"; version="0.1.1"; sha256="189s543dchbjki4vj4yszmlnarpghdn4s53k2mlwfzps1m7m39df"; depends=[checkmate]; };
+  nser = derive2 { name="nser"; version="1.5.2"; sha256="0p7yz561m85962l0cfld7aa932rkiypjg8lc46zf43wzk2idlgxi"; depends=[curl dplyr googleVis lubridate magrittr purrr readr reticulate rvest stringr xml2]; };
   nseval = derive2 { name="nseval"; version="0.5.1"; sha256="10b9kvvnlgc0jpbjnpkjmrkbl8plbkbggckwzy41kv41ha7rgda2"; depends=[]; };
   nsga2R = derive2 { name="nsga2R"; version="1.1"; sha256="1b3kkd1mi6g13bl2mkzqyvz0ki296fa9pv055r8mpkdm6gk12lb4"; depends=[mco]; };
   nsga3 = derive2 { name="nsga3"; version="0.0.3"; sha256="1jv3kw22jw24n7lnwhq3857mygr2yfv8c5xp3lbqqgz5840cdfa1"; depends=[mlr parallelMap rPref xgboost]; };
@@ -14611,8 +14850,9 @@ in with self; {
   nsprcomp = derive2 { name="nsprcomp"; version="0.5.1-2"; sha256="1zlc1ximx96f235c0l8qfs6vbp1kpnbf943wxsfahnnlnxvwi59f"; depends=[]; };
   nswgeo = derive2 { name="nswgeo"; version="0.4.0"; sha256="18s7mkcf32h7si5b9n1djqz9jl24n6f6pg38ifafb1a5jnkwqs2f"; depends=[cartographer sf]; };
   nsyllable = derive2 { name="nsyllable"; version="1.0.1"; sha256="1rxzfivg5pkx8485l4bxxrdnvik31g5jps5l386x0w7mfs6498jg"; depends=[]; };
-  ntdr = derive2 { name="ntdr"; version="0.3.3"; sha256="1v8lwsp9c81pg0i140fc9zfng6cf4a0p0jyc2k8gdg7hsl9dwks1"; depends=[curl dplyr httr lubridate purrr readxl rvest tidyr]; };
-  ntsDists = derive2 { name="ntsDists"; version="2.0.0"; sha256="1a0yqnrryx6irvcab4iwgnv6wmsndij4ycgbq2kbv86zkw2rgw59"; depends=[]; };
+  ntdr = derive2 { name="ntdr"; version="0.3.4"; sha256="1s4zqfi9nyr1sksiq0bpdjgnv32qp1yk3igqs5jsrzdrgzbda1z9"; depends=[curl dplyr httr lubridate purrr readxl rvest tidyr]; };
+  ntranova = derive2 { name="ntranova"; version="0.0.1"; sha256="0is9avgam63irzrah6s8yfkh9amwq9rsfhlpfx9s375ih8d3pzww"; depends=[]; };
+  ntsDists = derive2 { name="ntsDists"; version="2.1.1"; sha256="02q78hzqv5306fgy590y951ybvixaibmslhvgb34rfp8fnpj1zm3"; depends=[]; };
   nucim = derive2 { name="nucim"; version="1.0.11"; sha256="12qfs4xd8lnkjhb0gkvxym07rndrwh5idvppj16v78amrk96rj5z"; depends=[bioimagetools EBImage fields stringr]; };
   nuggets = derive2 { name="nuggets"; version="1.0.2"; sha256="1ijlzcp42bhb2qpnnv9gi3nm87pprgs54m8s6vl7lgqv2njdasdg"; depends=[cli Rcpp rlang testthat tibble tidyr tidyselect]; };
   nullabor = derive2 { name="nullabor"; version="0.3.9"; sha256="19nfmsnzndg9pdjg7m9w4vm4c3209ny52cpjdhmmhggvf7dxaiyg"; depends=[dplyr forecast fpc ggplot2 magrittr MASS moments purrr rlang tibble tidyr tsibble viridis]; };
@@ -14621,6 +14861,7 @@ in with self; {
   numKM = derive2 { name="numKM"; version="0.2.0"; sha256="0g5jw12fmfc6nl6a3ghpslkjd2d7pbihl70sks35r7dalmr6ihzk"; depends=[survival]; };
   numOSL = derive2 { name="numOSL"; version="2.8"; sha256="08bkwr4mx7lxlwfavxggvfn6cbn3wqhyix0wbh92ayb2y92c7fp4"; depends=[]; };
   numbat = derive2 { name="numbat"; version="1.4.0"; sha256="1a9rcna5m7lyh56d8dwwzq32svgad8vwidikna1j2j63i4frjms4"; depends=[ape caTools data_table dendextend dplyr GenomicRanges ggplot2 ggraph ggtree glue hahmmr igraph IRanges logger magrittr Matrix optparse parallelDist patchwork pryr purrr R_utils Rcpp RcppArmadillo RhpcBLASctl roptim scales scistreer stringr tibble tidygraph tidyr vcfR zoo]; };
+  numberize = derive2 { name="numberize"; version="1.0.0"; sha256="1p3zcknlrv4ayyxk79vd021r9jwk2dxwp3saryzn4vgj8fnac8iy"; depends=[]; };
   numberofalleles = derive2 { name="numberofalleles"; version="1.0.1"; sha256="0rjl21844yqp2503gy71c6vg8xywc4lcx7qr9vwvkjw5wiwxls11"; depends=[partitions pedtools Rcpp ribd]; };
   numbers = derive2 { name="numbers"; version="0.8-5"; sha256="02r2mlq3jygvwi7anbrrid6693qc7iklxhc9ksmqjdlmgzdxxmbp"; depends=[]; };
   numbersBR = derive2 { name="numbersBR"; version="0.0.2"; sha256="0ihxlny745gpz1ngq862rydn1zwn8zni1xw9mmgw8hkylsrnjfq8"; depends=[stringr]; };
@@ -14636,8 +14877,9 @@ in with self; {
   nzffdr = derive2 { name="nzffdr"; version="2.1.0"; sha256="14s2dfrrknaswg4l69lncsdbd7algpd9pzgrhpip0vbmyq9pa2ni"; depends=[curl httr rlang stringi tidyr xml2]; };
   nzilbb_labbcat = derive2 { name="nzilbb.labbcat"; version="1.3-0"; sha256="1nrd67d78klhnbslrpqaigbv1qrvl2nr6l9qhmgm2j34qpjrv7n5"; depends=[httr jsonlite rstudioapi stringr]; };
   nzpullover = derive2 { name="nzpullover"; version="0.3.0"; sha256="0b3mz5i58m48fa1x7gv4l3gqj0gvrar201ph2l1gkbcnfmazwjp8"; depends=[]; };
+  o2geosocial = derive2 { name="o2geosocial"; version="1.1.2"; sha256="0myzr25jjjvlszr0j5ay2nha1nrccwhgh0qd01p52xrlggfjhz1g"; depends=[data_table geosphere ggplot2 outbreaker2 Rcpp visNetwork]; };
   o2plsda = derive2 { name="o2plsda"; version="0.0.18"; sha256="17dmb82q4g7lspvrvrz9324qinkr07vlhxsr2vd5ikj7cqxivgmv"; depends=[dplyr ggplot2 ggrepel magrittr Rcpp RcppArmadillo]; };
-  oHMMed = derive2 { name="oHMMed"; version="1.0.1"; sha256="17g74kss72l2isxl5klpdx7prq5fgpbf90cq9as8v6a9pkl75wif"; depends=[cvms ggmcmc ggplot2 gridExtra mistr scales vcd]; };
+  oHMMed = derive2 { name="oHMMed"; version="1.0.2"; sha256="09ii42791qyfzc641906k92p5nd8r162jji3fxjdidw2ncwnnn8b"; depends=[cvms ggmcmc ggplot2 gridExtra mistr scales vcd]; };
   oRus = derive2 { name="oRus"; version="1.0.0"; sha256="0q6hgiidcpm95pyisndihxjg78v6k1zycdqd72309aankdk0g5h4"; depends=[dplyr knitr rmarkdown stringr tibble tidytext tm topicmodels xlsx]; };
   oaColors = derive2 { name="oaColors"; version="0.0.4"; sha256="040sdqrk9dciylnnrrshlj06s9qhvngii9shx1p8412ip7mk8r1m"; depends=[MASS RColorBrewer]; };
   oaPlots = derive2 { name="oaPlots"; version="0.0.25"; sha256="0c5ig1ar02vg38pjjmp3gd53ij1j7pzajs0zrlfajz141qkv2ysr"; depends=[ggplot2 oaColors]; };
@@ -14658,14 +14900,14 @@ in with self; {
   oc = derive2 { name="oc"; version="1.2.1"; sha256="0g4ij5g2xkkd73srm21b2xc170rgwbdsdx2qjkp3pr30axb0bf91"; depends=[pscl]; };
   occ = derive2 { name="occ"; version="1.1"; sha256="1aka29qqwbd494kvi15yyyqkb9hks4ky2gcvykxhx2drm2fnsn4g"; depends=[]; };
   occCite = derive2 { name="occCite"; version="0.5.6"; sha256="08bc0pi2i2fmc9fcmir150b7g8jnd58q3qaakw2gk25yjy14rp7j"; depends=[bib2df BIEN curl DBI dplyr ggplot2 htmltools httr leaflet lubridate RColorBrewer rgbif rlang RPostgreSQL stringr taxize tidyr viridis waffle]; };
-  occumb = derive2 { name="occumb"; version="1.0.3"; sha256="1gvcfhj3lhqj9y9qm3fh0f66bckv4wslpy9ri1dan96lp4qlqx2f"; depends=[checkmate crayon jagsUI knitr]; };
+  occumb = derive2 { name="occumb"; version="1.1.0"; sha256="1rfaswipykflwkdiacq66ibbvf2hzzal2ffibsgrl8q1m6frj5k3"; depends=[checkmate crayon jagsUI knitr]; };
   occupancy = derive2 { name="occupancy"; version="1.2"; sha256="0j50vg1405n1hp72xqsq1hp3gdbfx5yq9w1zdv6dzjc6vjhbx00d"; depends=[matrixStats]; };
   occupationMeasurement = derive2 { name="occupationMeasurement"; version="0.3.2"; sha256="03kq8sbcbb1swnc7rl2qqzmvlhfb7n5ba8q546v657cm35h15rr9"; depends=[data_table digest shiny stringdist stringr text2vec tm]; };
   ocd = derive2 { name="ocd"; version="1.1"; sha256="06pyc352pvn85k76z9797gwk0ksbb3snvh6krysp68k3lcygq872"; depends=[]; };
   oce = derive2 { name="oce"; version="1.8-2"; sha256="1a9zld3q009v9bvqpkn4fy0qfrsjmcz9j1f0jva75ygi8hdywpyg"; depends=[gsw Rcpp]; };
   oceCens = derive2 { name="oceCens"; version="0.1.2"; sha256="1ckp89n22scmjli30x99iaxgyk41a27v1n9gxjp9n29y66lw71nb"; depends=[survival]; };
   oceanexplorer = derive2 { name="oceanexplorer"; version="0.1.0"; sha256="07l2la7nrqj8bsyv0flyjs08wishlvq6v2hx5n1g9kag4bcfl6vz"; depends=[bslib dplyr DT fs ggplot2 glue maps miniUI ncmeta purrr rlang RNetCDF rstudioapi sf shiny shinyFeedback shinyjs stars thematic waiter]; };
-  oceanic = derive2 { name="oceanic"; version="0.1.6"; sha256="12lrn13xfrxny8nqhjh5qg61bx1y8akyqxf7slbpg9npbwp04f1n"; depends=[broom ggplot2 maps sf sp spData]; };
+  oceanic = derive2 { name="oceanic"; version="0.1.7"; sha256="0nfz257i0gfkqvnpi4gaki79mgh1ff6h075dyylk0fs0gw01dddm"; depends=[broom ggplot2 maps sf sp spData]; };
   oceanis = derive2 { name="oceanis"; version="1.8.5"; sha256="13zdzqjlf5pihji6np9a3m2j5ycy4jvfl75knzry2ir78zr9ngj7"; depends=[classInt dplyr DT ggplot2 htmlwidgets leaflet leaflet_extras lwgeom sf shiny shinyBS shinyjs shinythemes stringr webshot zip]; };
   oceanmap = derive2 { name="oceanmap"; version="0.1.6"; sha256="12ppcqk2s14p7hg0a6b3hgnz90dxn3kagfgkpykz6ks93vjy8pd7"; depends=[abind extrafont fields ggedit ggplot2 lubridate mapdata maps ncdf4 plotly plotrix raster reshape2 sf sp]; };
   oceanwaves = derive2 { name="oceanwaves"; version="0.2.0"; sha256="1v4gj4ippv1l3r77z2ic19x5zi5lpsh5wihaqay3264zhpb3kv9a"; depends=[bspec ggplot2 signal]; };
@@ -14673,13 +14915,12 @@ in with self; {
   ocf = derive2 { name="ocf"; version="1.0.0"; sha256="04d0j863a2zqj3v9s9iwlc4v7fxpp6cydpphxcfr6n22f8ciq5bd"; depends=[glmnet Matrix orf ranger Rcpp RcppEigen stringr]; };
   ockc = derive2 { name="ockc"; version="1.1"; sha256="1iqv9vjdcv96a8k5ccrh6r3jpjq39g4g0qjhb4hzvfv17p28rpcb"; depends=[flexclust modeltools]; };
   oclust = derive2 { name="oclust"; version="0.2.0"; sha256="08247vcjs7hhzbj69f2x39n5y5ycns0qd7pdlvpwyn4j7yd1ji31"; depends=[dbscan entropy MASS mclust mixture mvtnorm]; };
-  ocomposition = derive2 { name="ocomposition"; version="1.1"; sha256="0fk8ia95yjlvyvmjw7qg72piqa40kcqq9wlb3flc6a81pys1ycb5"; depends=[bayesm coda]; };
   ocp = derive2 { name="ocp"; version="0.1.1"; sha256="0q52s8j3z3xwnma3sxx6019qxid66bf0a43w4g8xjagplwps57dx"; depends=[]; };
   ocs4R = derive2 { name="ocs4R"; version="0.2-3"; sha256="09zl9jl1kzvyq0wccp41j32pr3as93qh250iaawhwkpcswjpyl89"; depends=[curl httr jsonlite keyring openssl R6 XML]; };
   octopus = derive2 { name="octopus"; version="0.4.2"; sha256="0a24czpsvq5xpr3g9m6d2bsd3dv5jcr2m724gz4z3c56f4xbxd8b"; depends=[bslib data_table DBI dplyr DT glue httr janitor rio shiny shinyAce shinyjs]; };
   octopusR = derive2 { name="octopusR"; version="1.0.1"; sha256="1hah1zphwrvj1kx344s9nxq8bw4q358fz9j487hi6dkfhjvg7j21"; depends=[askpass cli glue httr2 rlang tibble]; };
   od = derive2 { name="od"; version="0.4.4"; sha256="0msfgqcx2qh728fqzdkhaab7b5na8wa3sga7hfzvxjy996bdfliw"; depends=[sfheaders vctrs]; };
-  odbc = derive2 { name="odbc"; version="1.4.2"; sha256="00x6cwfga2x3mbjf849wj96v3mwaa1nz1kr6pa9k3bm1k32zkym7"; depends=[bit64 blob DBI hms lifecycle Rcpp rlang]; };
+  odbc = derive2 { name="odbc"; version="1.5.0"; sha256="1c49209bf1swsk5mhwb4zxymlg5dha9rg500nq83kbgib6ikkk9f"; depends=[bit64 blob cli DBI hms lifecycle Rcpp rlang]; };
   odbr = derive2 { name="odbr"; version="0.1.0"; sha256="03bdhmya86whrzijc8h6gvd4yzmivdskm42a80n4ryqn4szfyrpd"; depends=[data_table fs haven piggyback R_utils sf usethis]; };
   oddnet = derive2 { name="oddnet"; version="0.1.1"; sha256="0wa3vjjsn9f60b4c2l43sy41x0qhkbsg0yjy1ki6pgflgavr9ldg"; depends=[dplyr fable fabletools igraph lookout pcaPP rlang tibble tidyr tsibble]; };
   odds_converter = derive2 { name="odds.converter"; version="1.4.8"; sha256="09s8pg55gpsxmrbimzg5rsr1n07la93781sar6vab5p9zn9zxgx4"; depends=[]; };
@@ -14691,9 +14932,8 @@ in with self; {
   odetector = derive2 { name="odetector"; version="1.0.1"; sha256="094i6ykv3s0c5yhdnlgpkz1wb6pr9k6r3vsh7zgkxyy5iayi6dlv"; depends=[ppclust]; };
   odin = derive2 { name="odin"; version="1.2.5"; sha256="1fczgf3x35inlyhkw1h4mf8j9alrv4w98b9jfmbc2a9q29gi161p"; depends=[cinterpolate deSolve digest glue jsonlite R6 ring withr]; };
   odk = derive2 { name="odk"; version="1.5"; sha256="0fcnr4c1clwx1sk6fgg4cx506gdi90n2h05g0i47p4s5bra0qwwl"; depends=[gsheet openxlsx]; };
-  odpc = derive2 { name="odpc"; version="2.0.5"; sha256="0cbkq8parb8br1j386xk5mgwz8gkmwvp79f9sjvzhs7z6wlbp0pv"; depends=[doParallel foreach forecast MASS Rcpp RcppArmadillo]; };
   odr = derive2 { name="odr"; version="1.4.4"; sha256="037v6523kbl0izfzyg6lp6h4r5p8w23dp8r1fpx07wyr34q2w8vn"; depends=[]; };
-  oeli = derive2 { name="oeli"; version="0.4.1"; sha256="0jmzi65d565p2cifsj20c5q08v79hzda766g2afr698fxhvdjkrw"; depends=[benchmarkme checkmate cli ggplot2 hexSticker latex2exp Rcpp RcppArmadillo rprojroot showtext sysfonts testthat usethis]; };
+  oeli = derive2 { name="oeli"; version="0.5.0"; sha256="0v6pk49arigm9v979in9h06pqhz3gz56a1d7vcbd1pxqa8y4ypaz"; depends=[benchmarkme checkmate cli ggplot2 hexSticker latex2exp Rcpp RcppArmadillo rprojroot showtext sysfonts testthat usethis]; };
   oem = derive2 { name="oem"; version="2.0.11"; sha256="0p9s68zgma9mcjnz0xg6h07yp38rqj209asg18hji8528iazbv8g"; depends=[BH bigmemory foreach Matrix Rcpp RcppArmadillo RcppEigen]; };
   oenb = derive2 { name="oenb"; version="0.0.2"; sha256="1jgxw7ycx2lcdzglg9nix8k08fs4r6i5jdsjzrd6w1dg6smsinl5"; depends=[dplyr XML]; };
   oesr = derive2 { name="oesr"; version="0.1.0"; sha256="078jjvm9d0g8jaab0x2z4h7h8m2pznamiglhkwv07xc65cskjmpb"; depends=[broom dplyr estimatr extrafont ggplot2 rlang sandwich tibble]; };
@@ -14701,9 +14941,10 @@ in with self; {
   oews2021 = derive2 { name="oews2021"; version="1.0.0"; sha256="0b03jqn7bz528qky6h35h3kxr6pnfqpllc4h2lgpf790slsfc054"; depends=[]; };
   ofGEM = derive2 { name="ofGEM"; version="1.0"; sha256="0xdkl8k12an9pdy6i5nay4m2iakrwsp0lr3zl8gphii75j0ywz7k"; depends=[CompQuadForm forestplot MASS]; };
   officedown = derive2 { name="officedown"; version="0.3.1"; sha256="0ymidhrnbk8z7ni4y0ngizyc7d3f35nmhmhpfqw8jg9faizich8z"; depends=[knitr memoise officer rlang rmarkdown rvg uuid xml2 yaml]; };
-  officer = derive2 { name="officer"; version="0.6.5"; sha256="1lzpabpdrwx3331b9qn43376r25bzgph1j9gbxzqjhzr1h871cpb"; depends=[openssl R6 ragg uuid xml2 zip]; };
+  officer = derive2 { name="officer"; version="0.6.6"; sha256="04mlmq64gjdicdlai78iy28n8z64p3k4mnk4k381znlrj9x3zz7i"; depends=[openssl R6 ragg uuid xml2 zip]; };
   offlineChange = derive2 { name="offlineChange"; version="0.0.4"; sha256="005afrm4ki4zz3zkgrf8c1v9gf5cjhc5g50mjkqya3r8npaccwq2"; depends=[Rcpp]; };
-  offsetreg = derive2 { name="offsetreg"; version="1.0.0"; sha256="1bnb41q8n3bmh73r44mlf70icy7mma1rixdhxkz6xmmss5cs88zp"; depends=[generics glue parsnip poissonreg rlang]; };
+  offsetreg = derive2 { name="offsetreg"; version="1.1.0"; sha256="1nxiaz5p3s4i3dxl3cph5c8aily3d6g212086wrxy38jyqk55xkm"; depends=[generics glue parsnip poissonreg rlang]; };
+  ofpetrial = derive2 { name="ofpetrial"; version="0.1.1"; sha256="1wid8d4m8bk087z8fi4ls493p1g30cymyl5xcbzcv0an2rkd739j"; depends=[bookdown data_table dplyr ggExtra ggplot2 ggpubr leaflet lwgeom magrittr purrr rmarkdown sf terra tibble tidyr tmap zip]; };
   oglmx = derive2 { name="oglmx"; version="3.0.0.0"; sha256="13axmhbqhv4kkcdsdmp9r7p0d0kyqlsaqgyyllbkxlxb4hfz79b6"; depends=[maxLik]; };
   ogrdbstats = derive2 { name="ogrdbstats"; version="0.5.0"; sha256="140i4wippqr1260a1c4syg6lfspkf9q8rifnalf6iaaqx2bz4yfq"; depends=[alakazam argparser Biostrings bookdown ComplexHeatmap data_table dplyr ggplot2 gridExtra magrittr RColorBrewer scales stringdist stringr tidyr tigger]; };
   ohenery = derive2 { name="ohenery"; version="0.1.1"; sha256="0i7cc110c30y7dm86srh2xkikkmlr28mvy0kkjxywxmiwnrsmzjq"; depends=[dplyr magrittr maxLik Rcpp]; };
@@ -14715,6 +14956,7 @@ in with self; {
   ojsr = derive2 { name="ojsr"; version="0.1.2"; sha256="0nwdws9kqnya9qjc939b7ksrf7ri6d25zzcdxhyhabirhnrqdg7m"; depends=[dplyr magrittr purrr rlang rvest tidyr urltools xml2]; };
   okxAPI = derive2 { name="okxAPI"; version="0.1.1"; sha256="0wysfpkij9l265clw6qi4zpr1c860idxfp82xz2nmy1l5b2n8ri0"; depends=[base64enc data_table digest httr jsonlite R6 websocket]; };
   olctools = derive2 { name="olctools"; version="0.3.0"; sha256="1gbchwynvmryarz32f24v56kj57h7x6nrrm878fkjkpq140cqwzz"; depends=[Rcpp]; };
+  ollamar = derive2 { name="ollamar"; version="1.1.1"; sha256="0zw71221fyjczkfj47hbs2ddl7p8h8igzp9zijfb5c6m4qg03gbl"; depends=[glue httr2 jsonlite tibble]; };
   ollg = derive2 { name="ollg"; version="1.0.0"; sha256="1xjfn3hlmmx65kphchhxqa9fx6qmkiyx24lp19si1y3v92wdv2i9"; depends=[]; };
   ollggamma = derive2 { name="ollggamma"; version="1.0.2"; sha256="1990hr9gww636xr4gkvc816hd0pc78nw3ypbzflkh5g3pmsn7bc2"; depends=[]; };
   olr = derive2 { name="olr"; version="1.1"; sha256="1l6m2gbglh8idy4k2q23qgfb7in1a6pnwiji1gbygfan6paw4xza"; depends=[plyr]; };
@@ -14722,9 +14964,9 @@ in with self; {
   omics = derive2 { name="omics"; version="0.1-5"; sha256="1y2x33mfgq98nglhvpr1wq1v6nfiq4njy2yac47x72rpwxsj9vb1"; depends=[lme4 pheatmap]; };
   omicsTools = derive2 { name="omicsTools"; version="1.0.5"; sha256="0k6cpdxafz6x5360m97x8mvvi09mb36yx42slkq6nr4axpm089pf"; depends=[bs4Dash config dplyr DT golem magrittr readr shiny tibble]; };
   omicwas = derive2 { name="omicwas"; version="0.8.0"; sha256="03l53vbsard0hpaffcaa9l1aa3nh3w16j00k2jz2jqrrg02z0d7h"; depends=[broom data_table dplyr ff glmnet magrittr MASS matrixStats purrr rlang tidyr]; };
-  omnibus = derive2 { name="omnibus"; version="1.2.9"; sha256="1shd5a519vac8m80869hssjfhl3i5k9ia0z2a0dgfbqsdd591nsv"; depends=[]; };
-  omock = derive2 { name="omock"; version="0.1.0"; sha256="10fnmrsh1002sg8s7l7ksy5k4kyd4lkh1d3c6aijq6fw2523cqsk"; depends=[cli dplyr lubridate omopgenerics purrr rlang snakecase stringr]; };
-  omopgenerics = derive2 { name="omopgenerics"; version="0.1.2"; sha256="0xawvpkvzffsqs378sl2h79014vadmwxhr98wgl2kj41ywyiif29"; depends=[cli dbplyr dplyr glue rlang snakecase stringr tidyr]; };
+  omnibus = derive2 { name="omnibus"; version="1.2.13"; sha256="0a528lk2snhav6yw6z1sx6il5sazjqwfs2vb2c6smy9frs3vlgq7"; depends=[]; };
+  omock = derive2 { name="omock"; version="0.2.0"; sha256="14qqvjviwr45x5g9i036pkd9y0qjaqhx27win3j1xb4c8mj20k02"; depends=[cli dplyr lubridate omopgenerics purrr rlang snakecase]; };
+  omopgenerics = derive2 { name="omopgenerics"; version="0.2.1"; sha256="15vqym797spa9fcxq25is2fjc5q6id4h731vh720wjg857aja4h0"; depends=[cli dbplyr dplyr glue rlang snakecase stringr tidyr]; };
   ompr = derive2 { name="ompr"; version="1.0.4"; sha256="02glc09yrdvwls0i8ik1wh6fp3qa9ry55xd3yy3xk0rav8r3hcj3"; depends=[data_table fastmap lazyeval listcomp Matrix rlang]; };
   ompr_roi = derive2 { name="ompr.roi"; version="1.0.2"; sha256="1w0cyw5ixkri8523vdcfrlaf49farhgdf1bxiizwk5gppb3w5ibl"; depends=[Matrix ompr ROI slam]; };
   omsvg = derive2 { name="omsvg"; version="0.1.0"; sha256="018sphpmmgpq5alag0il83q51f3r3jx3pnnzjrvg4gn6691nkwvz"; depends=[dplyr gt htmltools magrittr rlang sass xml2]; };
@@ -14734,7 +14976,7 @@ in with self; {
   onbrand = derive2 { name="onbrand"; version="1.0.5"; sha256="1iyizky2vrdpl325qg4mllzgs2aabshpp7cshvldfyxnlw4dxvrn"; depends=[digest dplyr flextable ggplot2 magrittr officer rlang stringr yaml]; };
   onc_api = derive2 { name="onc.api"; version="2.0.1.0"; sha256="10scbhg6aniqzrbkblhfhz9ni710xzppbzfrr4wrhsy1z5y2nfwc"; depends=[anytime crayon httr humanize lubridate stringi testthat tictoc]; };
   once = derive2 { name="once"; version="0.4.1"; sha256="0yshpww3rq68m0qx7kid3zlcxi1nf81vmziclyvpg61aikj8fhx5"; depends=[magrittr]; };
-  oncoPredict = derive2 { name="oncoPredict"; version="0.2"; sha256="1slq5vp78n5hcq24vlg35r6xansdgriyjw8y9iyb0lj3cdaq38c3"; depends=[BiocGenerics car gdata genefilter GenomicFeatures GenomicRanges glmnet IRanges maftools org_Hs_eg_db pls preprocessCore readxl ridge S4Vectors sva tidyverse TxDb_Hsapiens_UCSC_hg19_knownGene]; };
+  oncoPredict = derive2 { name="oncoPredict"; version="1.2"; sha256="0cp0b0d5nbanflp1jrkvdcybjii4lzv275d880wbadsx960rax2l"; depends=[BiocGenerics car GenomicFeatures GenomicRanges glmnet IRanges org_Hs_eg_db pls preprocessCore ridge S4Vectors sva TCGAbiolinks tidyverse TxDb_Hsapiens_UCSC_hg19_knownGene]; };
   oncomsm = derive2 { name="oncomsm"; version="0.1.4"; sha256="1crjpfa7yxcafnhsxs2sbf153lsr9ffaqdxjxp0zkd7hiash0mfm"; depends=[BH checkmate dplyr furrr ggplot2 magrittr purrr Rcpp RcppEigen RcppNumerical RcppParallel rlang rstan rstantools StanHeaders stringr tibble tidyr]; };
   oncrawlR = derive2 { name="oncrawlR"; version="0.2.0"; sha256="0cm26diaf3jlzfrpgh13q0hakakmj6vy41wk9z0w81az4jcg9sn9"; depends=[caret DALEX dplyr e1071 formattable fs ggplot2 htmltools jsonlite pdp pROC RCurl readr rjson rlang rlist scales sparkline tidyr webshot xgboost]; };
   ondisc = derive2 { name="ondisc"; version="1.0.0"; sha256="071jrldclkaz5lfp3k5fh1ilpgvvcnakh2vvnr69n3pri9dl3fls"; depends=[crayon data_table dplyr magrittr Matrix Rcpp readr rhdf5 Rhdf5lib]; };
@@ -14744,7 +14986,7 @@ in with self; {
   onemap = derive2 { name="onemap"; version="3.0.0"; sha256="0h5bi4zyiglic60msrkfny28k1rb7avqbs87ipzwwayb452b970c"; depends=[dendextend dplyr ggplot2 ggpubr htmlwidgets plotly princurve RColorBrewer Rcpp rebus reshape2 smacof tidyr vcfR]; };
   onetime = derive2 { name="onetime"; version="0.2.0"; sha256="1yyi8r8dniavsjlqmj5z9x52av2qz0iz01i2r7qx69apqbkwd57b"; depends=[filelock rappdirs]; };
   onewaytests = derive2 { name="onewaytests"; version="3.0"; sha256="0qmzgg869pdj3sfi8znd02z62px9n04fxl1psrfw8mxl4ainp0v7"; depends=[car ggplot2 moments nortest wesanderson]; };
-  onion = derive2 { name="onion"; version="1.5-0"; sha256="07q5wwphb6jsk7ya7hgsf5782yalvhyc7h43hsd9rg4rhpmy8in9"; depends=[emulator]; };
+  onion = derive2 { name="onion"; version="1.5-3"; sha256="0ja3nqi684c314hh9y5lp59bdfi01vycz17ridw1xlzh89na8c60"; depends=[emulator freealg mathjaxr Matrix]; };
   onlineBcp = derive2 { name="onlineBcp"; version="0.1.8"; sha256="1pwpnmpgh3hl8mv1pbn577dn832nxbsfaxn3hqghvs4dn06lwngf"; depends=[VIM]; };
   onlineCOV = derive2 { name="onlineCOV"; version="1.3"; sha256="04ikvsd76f6xhja7djyv433m88lfj2vf0y9qi6x1s4i9kh8xkbz9"; depends=[]; };
   onlinePCA = derive2 { name="onlinePCA"; version="1.3.2"; sha256="1xc9kjqvpspymywzaykw4nw14y43fi4ydwj4jfhvx5ws51f7y9i8"; depends=[Rcpp RcppArmadillo RSpectra]; };
@@ -14756,50 +14998,50 @@ in with self; {
   onpoint = derive2 { name="onpoint"; version="1.0.5"; sha256="1ib7bj8y1ykrsl84bjz0y6ncc9rj5pazad9541vpn3xpr7c11xj1"; depends=[ggplot2 spatstat_explore spatstat_geom spatstat_random]; };
   onsr = derive2 { name="onsr"; version="1.0.2"; sha256="07aa0rq41vw4xy76fwwjwcvl2bv15phh5bsk4xb3j7gahy6g9xxi"; depends=[httr jsonlite readr tibble]; };
   onsvplot = derive2 { name="onsvplot"; version="0.3.2"; sha256="06jkq25ivi8qn3c46616a7z47g2qfjpvnfwlzjx8shw4c36j5737"; depends=[ggplot2]; };
+  onsvtables = derive2 { name="onsvtables"; version="0.1.0"; sha256="181z69m5ws74wzrka6xb9cxz3yr1m7z57yyr401mxiz4cd466xlw"; depends=[gt]; };
   ontoFAST = derive2 { name="ontoFAST"; version="1.0.0"; sha256="0l3d8bp86849rp0qrs1dfv7bjmrfdqvahb1x656vk69fi20722ma"; depends=[dplyr ontologyIndex pbapply plyr shiny shinydashboard stringr sunburstR usethis visNetwork]; };
   ontologics = derive2 { name="ontologics"; version="0.7.0"; sha256="1ggdnydxl5xdh8vjjxna778d3c3wvw1rcvvjdcnrllms8i30cvga"; depends=[beepr checkmate dplyr fuzzyjoin httr magrittr purrr rdflib readr rlang stringr tibble tidyr tidyselect]; };
   ontologyIndex = derive2 { name="ontologyIndex"; version="2.12"; sha256="0gf0z0vgc1f4f70f2zpwz9bka0gbgbj4w3fcxncv1b7lbrxddrd8"; depends=[]; };
   ontologyPlot = derive2 { name="ontologyPlot"; version="1.7"; sha256="06ynryr4yx2mg85v12vhggx795hwwwfniskv3dgmb5nmrxhvh26m"; depends=[ontologyIndex paintmap Rgraphviz]; };
-  ontologySimilarity = derive2 { name="ontologySimilarity"; version="2.5"; sha256="035z572lbsfcnr9c0hl8gir1kgk0dw8dxzr3v8dqd93k6jr6kaxb"; depends=[ontologyIndex Rcpp]; };
+  ontologySimilarity = derive2 { name="ontologySimilarity"; version="2.7"; sha256="03fga6xqvxpa3hwf5pb0dzyz4scz2szvbgm8bsj1wl35gl477cjp"; depends=[ontologyIndex Rcpp]; };
   ontophylo = derive2 { name="ontophylo"; version="1.1.3"; sha256="1pb8w39ckx2ffchrrxp1jqs555b5bfz7cv5kbwgyzpfshv9s0ca4"; depends=[ape dplyr fANCOVA ggplot2 grImport magrittr ontologyIndex phytools purrr RColorBrewer stringdist tibble tidyr truncnorm]; };
-  oolong = derive2 { name="oolong"; version="0.6.0"; sha256="1siqix9npnhk7flc1dafpg6xpvn8i1fkvid2yfpk966qx4cg2ggk"; depends=[cli cowplot digest ggplot2 irr purrr quanteda R6 seededlda shiny tibble]; };
+  oolong = derive2 { name="oolong"; version="0.6.1"; sha256="10fn3llypnglz6i02pii7i4lki0hrh46b76y8wd7df8j4bcixnn5"; depends=[cli cowplot digest ggplot2 irr purrr quanteda R6 seededlda shiny tibble]; };
   oompaBase = derive2 { name="oompaBase"; version="3.2.9"; sha256="1cmw2s5dznmv675484jgvkzgvi6vhg0zbxsq6zhpqsisf672pjhl"; depends=[cluster]; };
-  oompaData = derive2 { name="oompaData"; version="3.1.3"; sha256="0gdp7bghgpz3q0h06w8r926x7wkpcvkpyf0v5qfi1qixbpvk5fdf"; depends=[]; };
+  oompaData = derive2 { name="oompaData"; version="3.1.4"; sha256="0g9d551djqa67y2l9nmajnsgf7kys4jcvgi3yx7az7jgm44j8986"; depends=[]; };
   ooplah = derive2 { name="ooplah"; version="0.2.0"; sha256="1p74jh9g62yicrw0lhpbn0diqi2myl24z28kpd2b3mglyffadr0b"; depends=[R6]; };
   oosse = derive2 { name="oosse"; version="1.0.11"; sha256="08nx25j5m6vqg9hqns6psldfdmsb81ixjlzdhxpx392ad0j4yfbx"; depends=[BiocParallel doParallel Matrix Rdpack]; };
   oottest = derive2 { name="oottest"; version="0.9.1"; sha256="1y0k0jcncjkcgfxybs2yyfcc7ywa49jnalrw8mn7m04h58gqg77x"; depends=[]; };
-  opGMMassessment = derive2 { name="opGMMassessment"; version="0.3.5"; sha256="09ii297524q2bgw2iqvd4s5bhnmm6gm5dh4lxskq1yxynfqdl77r"; depends=[AdaptGauss caTools cluster ClusterR DataVisualizations DistributionOptimization doParallel dplyr foreach ggplot2 mclust mixAK mixtools multimode NbClust rlang]; };
+  opGMMassessment = derive2 { name="opGMMassessment"; version="0.4"; sha256="0qnxq9i0spygz2lmjb23y94r9cgvkkariv0v8llqdb6l89bhfdqm"; depends=[AdaptGauss caTools cluster ClusterR DataVisualizations DistributionOptimization doParallel dplyr foreach ggplot2 mclust mixAK mixtools multimode NbClust rlang]; };
   opa = derive2 { name="opa"; version="0.8.3"; sha256="09k3bkh2glkl0sf5pcbii9cxq6ijpdsayncb02dm0ing2bh9kh0m"; depends=[lattice Rcpp RcppArmadillo]; };
   opalr = derive2 { name="opalr"; version="3.4.1"; sha256="14pv1rbmmhgcid2gcs1hxwr8a84jn6cyrqpfjlw10ia76qd63qkk"; depends=[httr jsonlite labelled mime progress readr tibble]; };
-  opdisDownsampling = derive2 { name="opdisDownsampling"; version="0.8.3"; sha256="0aq7ghy5syiic0nplnp74qhyw1yxih9bsfc0jgvz45zvcsp4gdwx"; depends=[benchmarkme caTools doParallel foreach memuse pracma twosamples]; };
+  opdisDownsampling = derive2 { name="opdisDownsampling"; version="1.0.1"; sha256="10r6s87ffxzdcrwfwxwikxilpd4ccksma9g9sbz80l3mhlakvskl"; depends=[caTools doParallel foreach pbmcapply pracma twosamples]; };
   openCR = derive2 { name="openCR"; version="2.2.6"; sha256="08cqv6xxv35hzllab0glb42h54racgqk0x3dvam6lk7c561kbas4"; depends=[abind BH MASS nlme plyr Rcpp RcppParallel secr stringr]; };
   openEBGM = derive2 { name="openEBGM"; version="0.9.1"; sha256="19q5xlvgc91mcr6sjzppgkmvdlfb6cr7rs952i2yys3w7ylwk3bj"; depends=[data_table ggplot2]; };
   openMSE = derive2 { name="openMSE"; version="1.0.0"; sha256="15jp9hybnkwmnkcqawhpd3y3imq6wfxxzxzh90yx4cvzky36hf89"; depends=[crayon DLMtool MSEtool SAMtool]; };
   openNLP = derive2 { name="openNLP"; version="0.2-7"; sha256="15yl74wv6w1d2wwpn1xlkkpam3c62977gnqal651fv623v29gg35"; depends=[NLP openNLPdata rJava]; };
   openNLPdata = derive2 { name="openNLPdata"; version="1.5.3-5"; sha256="03a194yjzlxymq64c6pd28ja71gv2z5465hb7qmxbw0gqpirz3l0"; depends=[rJava]; };
-  openSkies = derive2 { name="openSkies"; version="1.1.6"; sha256="03nlbmxp36z82myrbamwl1zngsnfxfw80niisapv53n605p4lrg1"; depends=[cluster dbscan ggmap ggplot2 httr magick R6 ssh xml2]; };
+  openSkies = derive2 { name="openSkies"; version="1.2.1"; sha256="0ky11gpgnf2afv6kzhwbzwzrmril99ixxxzzmav3h9hzcig3igyj"; depends=[cluster DBI dbscan ggmap ggplot2 httr magick R6 RPresto ssh xml2]; };
   openVA = derive2 { name="openVA"; version="1.1.2"; sha256="0ywf9hh4liz992ym1xdqpk4pnywy9azasyvqdy3ih8idmj3y5h0d"; depends=[cli crayon ggplot2 InSilicoVA InterVA4 InterVA5 Tariff]; };
   openai = derive2 { name="openai"; version="0.4.1"; sha256="1fi1nc9c7kfnig6b5ifpb1v9r3gxszk984rwyq7i1lb6s5jv0b9z"; depends=[assertthat glue httr jsonlite lifecycle magrittr]; };
   openair = derive2 { name="openair"; version="2.18-2"; sha256="1pw4bdqkd515n7fdcjavjmanhpaywxamzywgiaz4nk5bqq5mh84b"; depends=[cli cluster dplyr hexbin lattice latticeExtra lubridate mapproj MASS mgcv purrr Rcpp readr rlang tibble tidyr]; };
-  openairmaps = derive2 { name="openairmaps"; version="0.8.1"; sha256="14jb8a3i5ywzfqlqgy6smcfrj7lrq4fzamvcwdp9za5cxk9yi8cj"; depends=[cli dplyr forcats ggmap ggplot2 ggtext leaflet lifecycle lubridate magrittr mgcv openair purrr rlang sf stringr tibble tidyr]; };
-  openaistream = derive2 { name="openaistream"; version="0.2.0"; sha256="1wafn299pv6bwk3qbzvfqi0l3x8639dx3cgz99a8vkrv5n68y47c"; depends=[curl httr2 iterators jsonlite R6]; };
-  openalexR = derive2 { name="openalexR"; version="1.2.3"; sha256="1ww45blq54lq55ypassmanabnfs8lv2p72gh6qlmha45mnhkwh51"; depends=[httr jsonlite progress tibble]; };
+  openairmaps = derive2 { name="openairmaps"; version="0.9.0"; sha256="1g3jxks2qvys3rv5z4lz0889fq5b5wyjmzfgcj6pl3l67lgy5yj1"; depends=[cli dplyr forcats ggplot2 ggspatial ggtext leaflet lifecycle lubridate magrittr mgcv openair prettymapr purrr rlang rosm sf stringr tibble tidyr]; };
+  openaistream = derive2 { name="openaistream"; version="0.3.0"; sha256="0zihkpq6p7a3n0qdwpazds4qbpagk7zh6ziflm9194vbygyskv2z"; depends=[curl httr2 iterators jsonlite R6]; };
+  openalexR = derive2 { name="openalexR"; version="1.3.1"; sha256="1hhsqzplcp0xr70q9g5k45ra92c3i9rnk4xdbjnjzwyqhmjf1fiw"; depends=[httr jsonlite progress tibble]; };
   openbankeR = derive2 { name="openbankeR"; version="0.1.1"; sha256="04jh3nnp53dzbk96dcz0xi67jqmp66mzbj81cy8mhhd2rl5ry9cj"; depends=[dplyr glue httpcode httr jsonlite magrittr tidyr]; };
   openblender = derive2 { name="openblender"; version="0.5.81"; sha256="01akixxj04kgrxhv04icrivfpnipnpg9j62i3y19q3jkl9846lh1"; depends=[httr jsonlite]; };
   opencage = derive2 { name="opencage"; version="0.2.2"; sha256="1sjkpp6cj6ivd68p6ql6vwgdvy0fwfkjv84wgwgb4i7f4mnxgnff"; depends=[crul dplyr jsonlite lifecycle memoise progress purrr ratelimitr rlang tibble tidyr withr]; };
-  opencpu = derive2 { name="opencpu"; version="2.2.11"; sha256="1hdvfbzc8xmv8hrmchad590f91s4vq1nq83wi2ffh4n7q6ixr03s"; depends=[brew curl evaluate httpuv jsonlite knitr mime openssl protolite rappdirs remotes rlang sys vctrs webutils zip]; };
+  opencpu = derive2 { name="opencpu"; version="2.2.12"; sha256="144rq0lyag4b93gshjaf4zghshnvx5vcbnahy4x43f22r0zq5gkv"; depends=[brew curl evaluate httpuv jsonlite knitr mime openssl protolite rappdirs remotes rlang sys vctrs webutils zip]; };
   opencv = derive2 { name="opencv"; version="0.4.0"; sha256="0bplljn5qpgb3yp3jlmr99vrffqr53q8hlznbzpmj78kn5f1j71y"; depends=[magrittr Rcpp]; };
   opendatatoronto = derive2 { name="opendatatoronto"; version="0.1.5"; sha256="1fiviazs0ydxvmsqaayhwnxf4wl4sx1psn8i5mpis7218d9ihagy"; depends=[ckanr curl magrittr readxl sf tibble xml2]; };
   opendotaR = derive2 { name="opendotaR"; version="0.1.4"; sha256="17cygsw3nkg6zincfrcdh1509rlz3n5zrv9wvv7mjngm61sn79nf"; depends=[dplyr jsonlite lubridate]; };
   openeo = derive2 { name="openeo"; version="1.3.1"; sha256="02rm34mgjhcb3pp71x0rspyz7cmpmj4g5rs93xnly304il8v0rx2"; depends=[base64enc htmltools httr2 IRdisplay jsonlite lubridate R6 rlang sf]; };
-  openintro = derive2 { name="openintro"; version="2.4.0"; sha256="1svvlhdnv8dvqwphsn83asfd5xzvvar2bz334aqndqx76dv9j88j"; depends=[airports cherryblossom ggplot2 readr rmarkdown tibble usdata]; };
+  openintro = derive2 { name="openintro"; version="2.5.0"; sha256="0d9x109806ylay80ih6zrfqqjylbi0ralr9k7rz6xar40rimzb5z"; depends=[airports cherryblossom ggplot2 readr rmarkdown tibble usdata]; };
   openmeteo = derive2 { name="openmeteo"; version="0.2.4"; sha256="147zc2mn9ma6rkdz5czkmq8pp9slkvz44vf00mi64jkq2gp9kfpx"; depends=[dplyr httr testthat tibble tibblify tidyr yaml]; };
   openmetrics = derive2 { name="openmetrics"; version="0.3.0"; sha256="0bcljsirlkxn0h87j2g2jb6spcik84h7nms06mcj40ckx188yr82"; depends=[R6]; };
-  openscoring = derive2 { name="openscoring"; version="1.0.1"; sha256="0cyay8gahv8xyssyjhc18myvzi060rvlkakf69w2xpfkrfjsk2rf"; depends=[cli glue httr jsonlite lifecycle rlang stringr]; };
-  openssl = derive2 { name="openssl"; version="2.1.1"; sha256="1p2bnr4z4vx3yqq5isqb3z4d9vg2isiz8i0h3vxdb5ramzwjd9zs"; depends=[askpass]; };
-  opentripplanner = derive2 { name="opentripplanner"; version="0.5.1"; sha256="04qf01jy675glwnxjf430z43c9hi5dxjv6g2h85ny778hzvhq087"; depends=[checkmate curl data_table geodist googlePolylines progressr purrr RcppSimdJson rjson sf sfheaders]; };
+  openssl = derive2 { name="openssl"; version="2.2.0"; sha256="1cyx2yv2l446xwf0a0im70zfd6jlpg8113ncgdydajyvx1mb9f0q"; depends=[askpass]; };
+  opentripplanner = derive2 { name="opentripplanner"; version="0.5.2"; sha256="0h0dq72gfiyhnl9j8pdr295a93xcd59mqag4ca5hnvq8v93hn0cc"; depends=[checkmate curl data_table geodist googlePolylines progressr purrr RcppSimdJson rjson sf sfheaders]; };
   openxlsx = derive2 { name="openxlsx"; version="4.2.5.2"; sha256="0rwvzhk2brhbf1cdpg5jmwiwx5jhr9ybzvnhw0pg4bl3wpkqjw7f"; depends=[Rcpp stringi zip]; };
-  openxlsx2 = derive2 { name="openxlsx2"; version="1.4"; sha256="0hrikqbmylr0sbxq478alm290c5a8mlxwxmnhlzxvbmzfbv2ywhl"; depends=[magrittr R6 Rcpp stringi zip]; };
+  openxlsx2 = derive2 { name="openxlsx2"; version="1.7"; sha256="0kkkb755z2wqyjszpqsq3db489qblbkq733lr83sj01b00chw0sy"; depends=[magrittr R6 Rcpp stringi zip]; };
   opera = derive2 { name="opera"; version="1.2.0"; sha256="09gh0c74y3n25f9p1rya8ybql5mfaqkcnr8i8wwwzfm67vqdfrnh"; depends=[alabama htmltools htmlwidgets pipeR rAmCharts Rcpp RcppEigen Rdpack]; };
   operator_tools = derive2 { name="operator.tools"; version="1.6.3"; sha256="1v4dg7xhz24dnp0zxn815x1405ig64ibii6y40la1gvmzcc41dz5"; depends=[]; };
   operators = derive2 { name="operators"; version="0.1-8"; sha256="0zgcv2q46qyqv4dhbd33s4044zjw38w8dqfpzs0c1lxjpkil3dnx"; depends=[]; };
@@ -14814,11 +15056,12 @@ in with self; {
   optbin = derive2 { name="optbin"; version="1.3"; sha256="09pdmbvhwj7g13bqcql70x1c6l1islyasbhxcbqdf1cr7r6ylysz"; depends=[]; };
   optedr = derive2 { name="optedr"; version="2.0.0"; sha256="17r0axfh7yjv5xj9060vi5vysnmi38pz5dsvm0fazfcpzzlxnld7"; depends=[cli crayon dplyr ggplot2 nleqslv purrr rlang shiny]; };
   optextras = derive2 { name="optextras"; version="2019-12.4"; sha256="1sqkid6h13h8i8wzri26s828ycwlxlwpwxd85r8bw9h8hs1n602r"; depends=[numDeriv]; };
+  optiSel = derive2 { name="optiSel"; version="2.0.8"; sha256="1fgh9lb4pmis8wm9vr5p7883xnhx50r5a2swdy2vlhwpgcc3caqz"; depends=[data_table doParallel ECOSolveR foreach kinship2 magic MASS Matrix nadiv optiSolve pedigree plyr pspline purrr quadprog Rcpp RcppArmadillo reshape2 stringr]; };
   optiSolve = derive2 { name="optiSolve"; version="1.0"; sha256="0mhl5gdz3y3cs3p6v7z4n50na3sqj0w739gixcf4qgb1ppx0h1xa"; depends=[alabama cccp MASS Matrix nloptr plyr Rcpp shapes stringr]; };
   optic = derive2 { name="optic"; version="1.0.1"; sha256="166ngas1zp1ln951n26kmyfj9jcpi2fm2g2yxs9vs4as6fl1yf2n"; depends=[did dplyr future_apply lmtest magrittr MASS purrr R6 rlang sandwich tidyr]; };
   optical = derive2 { name="optical"; version="1.7.1"; sha256="1g400s4xbf9c8ss02qhm6q31sv7mrki4a9x1fdjjsyrgmclv9q2s"; depends=[]; };
   opticskxi = derive2 { name="opticskxi"; version="0.1"; sha256="1vdz5sgjgyh2nj034w87d2yxcbbg97f1b0vijlwzwjkrfz5knfhl"; depends=[ggplot2 magrittr]; };
-  opticut = derive2 { name="opticut"; version="0.1-2"; sha256="1j479wa7mlp62c2y7shha1w7ybhfy8wvjfaz27kmwd1f61ma1g0l"; depends=[betareg MASS mefa4 pbapply pscl ResourceSelection]; };
+  opticut = derive2 { name="opticut"; version="0.1-3"; sha256="1knjxfz52gisnkz62m885zf4gn73dnkhc0q2wfvmhj02vqq0sfhf"; depends=[betareg MASS mefa4 pbapply pscl ResourceSelection]; };
   optifunset = derive2 { name="optifunset"; version="1.0"; sha256="18pvdl04ln1i0w30ljdb3k86j27zg2nvrn3ws54c1g6zg9haqhbg"; depends=[]; };
   optigrab = derive2 { name="optigrab"; version="0.9.2.1"; sha256="1c3q4kx8rkgpjsy0hy2w2dd9kv51avnw1ab82hzmjgngfnvaig0n"; depends=[magrittr stringi]; };
   optim_functions = derive2 { name="optim.functions"; version="0.1"; sha256="1la3v8yd9cdichp3mka4x86hr9lynh6qfg7h9ab6cwijw6kzkn6g"; depends=[lhs randtoolbox stringr]; };
@@ -14827,27 +15070,28 @@ in with self; {
   optimParallel = derive2 { name="optimParallel"; version="1.0-2"; sha256="178ayfaivkbxkghxbg97lx4gl27kxkmgaaw9y8q5206r4cncd6qg"; depends=[]; };
   optimStrat = derive2 { name="optimStrat"; version="2.4"; sha256="0p52ly7yfz9jjlhd5912xdv1j01j1ccm57ygp9nz3rks7fi3b5r5"; depends=[cubature mvtnorm shiny]; };
   optimalThreshold = derive2 { name="optimalThreshold"; version="1.0"; sha256="1m39q36p7i7z31b90awriq5jf9rfybyw5lj3m1w33v2ssipkzp1n"; depends=[ars coda HDInterval mgcv rjags]; };
-  optimall = derive2 { name="optimall"; version="0.1.5"; sha256="15390zp1hacxvm64a3b0c8837q0js1vbwipk5fpvx17p76c24dzv"; depends=[dplyr glue magrittr rlang tibble]; };
+  optimall = derive2 { name="optimall"; version="1.1.1"; sha256="0pc7bswfaz0fc9mjr8m29xvm9a1015fb80sr7si65zkkmjhxwldz"; depends=[dplyr glue magrittr rlang tibble]; };
   optimbase = derive2 { name="optimbase"; version="1.0-10"; sha256="0hdzbqr03jwy1vz3q9iw0kvii5p9g1vm4c3hs3jxszcj1rgrfm12"; depends=[Matrix]; };
   optimg = derive2 { name="optimg"; version="0.1.2"; sha256="0fc7d3g5nxjjcbwh6v5m0ryhanw80v250j8m7j2gv4c9ql4g650d"; depends=[ucminf]; };
   optimization = derive2 { name="optimization"; version="1.0-9"; sha256="1pg9a78hhm0h4pfagj13r1dmynv714knhw2dxhzhcvlgk9inpam8"; depends=[colorspace Rcpp]; };
-  optimizeR = derive2 { name="optimizeR"; version="1.0.5"; sha256="1izw17wa59kk27bmbamb1nwcd4hhfn5p9hw3ismm48zxcxzz82cy"; depends=[checkmate cli lbfgsb3c oeli R6 TestFunctions ucminf]; };
+  optimizeR = derive2 { name="optimizeR"; version="1.1.0"; sha256="07p7bjh0jhg74csh094473dflpc1va4p45laxbdwv3hbxagk1zkx"; depends=[checkmate cli lbfgsb3c oeli R6 TestFunctions ucminf]; };
   optimos_prime = derive2 { name="optimos.prime"; version="0.1.2"; sha256="1a76gfzpd2s4gq15cd3frndak7wc6q3xqh9sllkk665031fx6z1h"; depends=[ggplot2 plotly tidyverse]; };
   optimsimplex = derive2 { name="optimsimplex"; version="1.0-8"; sha256="1q5hfbiq265q5im6wg78spaqsfj421hpzh8bz51zmi188h6xwnwr"; depends=[optimbase]; };
   optimus = derive2 { name="optimus"; version="0.2.0"; sha256="01njyjfrm6kjwx2qq41c0hsgxzydnrmr3538cpbfdn5i0z5blgyx"; depends=[mvabund ordinal]; };
   optimx = derive2 { name="optimx"; version="2023-10.21"; sha256="1da4daxgk4kbq1n2mn72482c3j96wba0xf4mzffgasn20ib2swqd"; depends=[nloptr numDeriv pracma]; };
   optional = derive2 { name="optional"; version="2.0.1"; sha256="1q7k9rsa7m3ag7mwx88101ksy0c01gk0xl0425jfkwm0d4g5pyy0"; depends=[magrittr]; };
-  options = derive2 { name="options"; version="0.1.0"; sha256="0pprbp2pxvgh120f8dahswws44gpdm4f4nlq3h3nvqrlhnspwnb8"; depends=[]; };
+  options = derive2 { name="options"; version="0.2.0"; sha256="02qnbipdmnw01f40300pg1ycrcbnr37f8yiqbabm6jznf6r4ihm9"; depends=[]; };
   optionstrat = derive2 { name="optionstrat"; version="1.4.1"; sha256="0vidaf888zdls5yxy7637fqg6r39l3rxw9bhn16s4xmag7kawljv"; depends=[]; };
+  optiscale = derive2 { name="optiscale"; version="1.2.3"; sha256="06qx6fha6vz46bchqswkdv3blxkpv2zg21kiwnb0rzz66srfkljn"; depends=[lattice]; };
   optistock = derive2 { name="optistock"; version="0.0.2"; sha256="1wl637hgdhiyk56xv39bb8m4v6nnlqyy6vgkradf90k084m9q52p"; depends=[]; };
   optmatch = derive2 { name="optmatch"; version="0.10.7"; sha256="07bx6bs5kk9pv0a2nsvq5y4bq4z17sa5f54kpxpim476xd8w43rk"; depends=[dplyr Rcpp rlemon tibble]; };
-  optparse = derive2 { name="optparse"; version="1.7.4"; sha256="122x490161f836l7mmd021dpylz50qrqdhjcgvkd8wpsjijxd8lk"; depends=[getopt]; };
+  optparse = derive2 { name="optparse"; version="1.7.5"; sha256="04jp85jik1zkbb08w44m2h0hqyzd80w4pjnfp1lnwy40ax81gj8c"; depends=[getopt]; };
   optpart = derive2 { name="optpart"; version="3.0-3"; sha256="18h659gbgzflq81lcchc058xjgljkmhpsjkh51ylygwrv1qjrz2i"; depends=[cluster labdsv MASS plotrix]; };
   optrcdmaeAT = derive2 { name="optrcdmaeAT"; version="1.0.0"; sha256="16g4612mwyfsckn6l71fbrjnnjv4yvnac1cccbrn3k8jh07qgb1h"; depends=[igraph MASS Matrix]; };
   optrefine = derive2 { name="optrefine"; version="1.1.0"; sha256="1ijahjraiaax0xyr1y4s3aq1b4xk8h7ablrvy2m2fr879q3xfi9i"; depends=[ggplot2 MASS Rglpk sampling]; };
   optweight = derive2 { name="optweight"; version="0.2.5"; sha256="1mfk9sp47flqq7i762wip5191j8m0q9kbyxs4a7f0pd76qwf67q2"; depends=[ggplot2 Matrix osqp]; };
   opusminer = derive2 { name="opusminer"; version="0.1-1"; sha256="1vw6pbk1iiaxmfws95wmwf56p3afk10s5c3x9f0lliamckpyzkck"; depends=[arules Matrix Rcpp]; };
-  orbweaver = derive2 { name="orbweaver"; version="0.0.3"; sha256="0lmxcjh621nsq5qrhg76h034dnzsybxs7r3sbqr91lifl2mpdnsd"; depends=[]; };
+  orbweaver = derive2 { name="orbweaver"; version="0.10.2"; sha256="1n8gay2nsxh0pc1jc6hgs2n5knk5ajaaqisq2l5dsnkl172r62rf"; depends=[glue rlang]; };
   orca = derive2 { name="orca"; version="1.1-2"; sha256="0nzm0i0ms2l4n10pgs1jg7mb9pd1k3pg7nvyd0w3ivq490g2py79"; depends=[]; };
   orclus = derive2 { name="orclus"; version="0.2-6"; sha256="0d78mn2vl2yxlvdswyxkxp9zg59b8cvfksz9m56kddn79aps1ikl"; depends=[]; };
   orcutt = derive2 { name="orcutt"; version="2.3"; sha256="0pj7pqzbcg4gp35nsz3avyawmx69dgj0l2w0x8ypw5qwl4zhmnyk"; depends=[lmtest]; };
@@ -14869,18 +15113,18 @@ in with self; {
   ordinalRR = derive2 { name="ordinalRR"; version="1.1"; sha256="1sfkq8gryyls22208ympw5scgb4jkd27pyc1qklw4x7cz9wfnfbp"; depends=[rjags]; };
   ordinalbayes = derive2 { name="ordinalbayes"; version="0.1.1"; sha256="13f9rv6gndjr18rfk60rmginzam1xjsssjn45l6hhl6y3gglsyzh"; depends=[coda dclone DESeq2 devtools runjags SummarizedExperiment]; };
   ordinalgmifs = derive2 { name="ordinalgmifs"; version="1.0.8"; sha256="0c97c3zss34x9n8szr95z51qx8ix55mlrbqvg8dz128xpd3684rj"; depends=[survival]; };
-  ordinalpattern = derive2 { name="ordinalpattern"; version="0.2.3"; sha256="1xxii1lxbkip778wj92kicj4xlpriqa47b258bvmng2s4djkmg0y"; depends=[gtools mvtnorm]; };
+  ordinalpattern = derive2 { name="ordinalpattern"; version="0.2.4"; sha256="0d2vb73318agam3bmcva2mirwlskhfl66jzla36yihkb2r64cxgn"; depends=[gtools mvtnorm]; };
   ordr = derive2 { name="ordr"; version="0.1.1"; sha256="07nsl6mdm4dmyl8vsqzcpd2mihcxsm68gjx3v1dfqgjqmz477nvf"; depends=[dplyr generics ggplot2 ggrepel labeling magrittr purrr rlang scales stringr tibble tidyr tidyselect]; };
   ore = derive2 { name="ore"; version="1.7.4.1"; sha256="01ayvjyjbarmi7l2jwp7bp4m0k42zy8bvf9rbwynfwmm8mv6vx0j"; depends=[]; };
   oreo = derive2 { name="oreo"; version="1.0"; sha256="1qzv6fjana5fx45msqasqfniiancsch6j8r1llh1xyg2wjhqdj23"; depends=[fftwtools ggplot2 gridExtra openxlsx pracma scales spectral]; };
   orf = derive2 { name="orf"; version="0.1.4"; sha256="1njcnya5f2wx50l7gyf53js16xj1y6pwgbghxq4nm4grf2ck3mz1"; depends=[ggplot2 ranger Rcpp xtable]; };
-  org = derive2 { name="org"; version="2022.11.23"; sha256="0ppiwdzy7x0fnqq5j23dim4g64cn3bq72v2vd91c2i3sg4n5ahlk"; depends=[]; };
+  org = derive2 { name="org"; version="2024.6.5"; sha256="1kpaij3qz6amccf01kplmx6ql90qkkqmswq364jj5x2jwx7k5w26"; depends=[]; };
   orgR = derive2 { name="orgR"; version="0.9.0"; sha256="1q4qbwnbhmja8rqiph7g7m4wxhzhk9mh91x1jgbnky8bs4ljdgrx"; depends=[data_table ggplot2 ggthemes lubridate stringr]; };
   organizr = derive2 { name="organizr"; version="0.1.0"; sha256="1i6j7c7d588gnjmh3ddknrs95mhw6ikq53c6wd3zy82lmjvh96bv"; depends=[fs here readr rlang rstudioapi stringr]; };
   orgutils = derive2 { name="orgutils"; version="0.5-0"; sha256="1gvj82m67xmi0kwd883zmqgxnc621q30bgbnnszm5fnb3y2ni7d6"; depends=[textutils]; };
   orientlib = derive2 { name="orientlib"; version="0.10.5"; sha256="05xwx040l1ln06rkmsg8l4394b3inaf663mw4fng54wwacgv9jfj"; depends=[]; };
   origami = derive2 { name="origami"; version="1.0.7"; sha256="0b66alm1mr6vsgj5cgliqxw8vpm1x504qs42crlf0n6339a38h5l"; depends=[abind assertthat data_table future future_apply listenv]; };
-  origin = derive2 { name="origin"; version="1.1.1"; sha256="0m10x4d8qh67davyznx759blrb548jk8d7my2zc285yax0d6wp5z"; depends=[cli rstudioapi]; };
+  origin = derive2 { name="origin"; version="1.1.2"; sha256="0gnq66zsnmnwsn0xaxavw4ipkcb91371g5rh7i9pk863q7fvzkc0"; depends=[cli rstudioapi]; };
   orloca = derive2 { name="orloca"; version="5.6"; sha256="0zfi64whis248fi5fggjqym7jhyh7ix7l371kchkdxcib3xylnps"; depends=[knitr png rmarkdown ucminf]; };
   orloca_es = derive2 { name="orloca.es"; version="4.9"; sha256="00zb08dqcsh1ljl4f2djm1pwbrfbaddgapn3v8nascmwxlhb2hkw"; depends=[orloca]; };
   ormBigData = derive2 { name="ormBigData"; version="0.0.1"; sha256="1rq202k4assmij21bjjk1ba7121p5p3rp21k548cc6lk81xj1rcc"; depends=[benchmarkme doParallel foreach Hmisc iterators rms SparseM]; };
@@ -14903,9 +15147,9 @@ in with self; {
   oskeyring = derive2 { name="oskeyring"; version="0.1.6"; sha256="1fsgz4jln3nk53bxpmjpc7dcapc9j1wdqlrab169ymvrlzypgvqc"; depends=[]; };
   osmclass = derive2 { name="osmclass"; version="0.1.3"; sha256="16vpb1fq93s386anvyl6i8ynk5mijs0c40sh86lcpmp9wmdb6msp"; depends=[collapse data_table stringi]; };
   osmdata = derive2 { name="osmdata"; version="0.2.5"; sha256="0073dnnznq479ffnizrv8wqmfiv3gmdmmlkmkh1hxgr7p32v1i4z"; depends=[curl httr2 lubridate magrittr Rcpp reproj rvest tibble xml2]; };
-  osmextract = derive2 { name="osmextract"; version="0.5.0"; sha256="0fapfydxgm9wliqqapjdrpcj7w4f1s9k8ff8nw6hki8hh5hyrk4x"; depends=[httr jsonlite sf]; };
-  osqp = derive2 { name="osqp"; version="0.6.3.2"; sha256="0i1jh3fr8d45b7inq9s6iyqszhh18hps8jpzkm0hzgj2k8r3nm0q"; depends=[Matrix R6 Rcpp]; };
-  osrm = derive2 { name="osrm"; version="4.1.1"; sha256="05zvsmgrfg8143cma3xr2c758a7lbabsb53sxzw5xkc7z19amfyb"; depends=[curl googlePolylines mapiso RcppSimdJson sf]; };
+  osmextract = derive2 { name="osmextract"; version="0.5.1"; sha256="03q3ra119j8rxkqasyxg0m4dlcpb378milfa1mwihsmmq4qd6ak5"; depends=[httr jsonlite sf]; };
+  osqp = derive2 { name="osqp"; version="0.6.3.3"; sha256="1fzmw813iab07vnc714zyaszbnsagbmba7j69la36hvnqx78wggz"; depends=[Matrix R6 Rcpp]; };
+  osrm = derive2 { name="osrm"; version="4.2.0"; sha256="1256pksd8mxzxi1vnl6ghhyl8f7g2li4wabs0kllw9i54yxvc83b"; depends=[curl googlePolylines mapiso RcppSimdJson sf]; };
   osrmr = derive2 { name="osrmr"; version="0.1.36"; sha256="1vnf6g1d9fjckz9ay910nb9gr1km2adwk3b0k460mxvpr36izkh7"; depends=[assertthat bitops R_utils rjson stringr]; };
   otargen = derive2 { name="otargen"; version="1.1.1"; sha256="0hdnxwrlqchmbbg3fvcbfdr6m3igdcmd1i0plmhh2vy5xg3fn1r9"; depends=[cli dplyr ggiraphExtra ggplot2 ggrepel ghql janitor jsonlite magrittr rlang stringr tibble tidyr]; };
   otinference = derive2 { name="otinference"; version="0.1.0"; sha256="1l75jjnkyk8yzaw9zyk45jq9ys304i6pzm2xd5apxrb1jk75a3li"; depends=[MASS Rglpk sm transport]; };
@@ -14923,9 +15167,9 @@ in with self; {
   outbreaker2 = derive2 { name="outbreaker2"; version="1.1.3"; sha256="06wlmf51ciy7zy5nchfn2myvkwrvq44cnzzjl75vz32ixn8iy56v"; depends=[ape ggplot2 magrittr Rcpp visNetwork]; };
   outbreaks = derive2 { name="outbreaks"; version="1.9.0"; sha256="0x6r4rzcvd1rp8j4brq9c0zl2xsl5jfi18dny20an7aqk310p11v"; depends=[]; };
   outcomerate = derive2 { name="outcomerate"; version="1.0.1"; sha256="07mwml7r98qjgvrp938sqf7klyspz110583j0zwb72j69n4whmrj"; depends=[Rdpack]; };
-  outerbase = derive2 { name="outerbase"; version="0.1.0"; sha256="18c73vp0fjcgg4vhf9bfxm21j8s85cmicqi5j76q0wm800qaqvm9"; depends=[Rcpp RcppArmadillo]; };
   outlierensembles = derive2 { name="outlierensembles"; version="0.1.0"; sha256="0m2iaf3rbpwvyrjz6qglbrinmz676hnbqqm6vc38zb3k3cjcllaq"; depends=[airt apcluster EstCRM psych]; };
   outliers = derive2 { name="outliers"; version="0.15"; sha256="1yrmwvjjb0a6sbx940k9svf23cykcxz8rrwcgyic7lpgzbrdfcfc"; depends=[]; };
+  outliers_ts_oga = derive2 { name="outliers.ts.oga"; version="0.0.1"; sha256="1v10v4nw7xkrranv4pa4xqw3cayb1lq2p3qda76w6vxxwfch32pi"; depends=[caret forecast gsarima parallelly robust SLBDD]; };
   outliertree = derive2 { name="outliertree"; version="1.9.0"; sha256="1sk4bdkqd4i47zh0hlaviyif936v608qrgirpi6pdry3r24jgwbl"; depends=[Rcereal Rcpp]; };
   outreg = derive2 { name="outreg"; version="0.2.2"; sha256="04f1x7mxq4swbd7bfwjjgx4838jm6qj4piaighmhcscwrdkxa1cp"; depends=[magrittr reshape2 sandwich stringr tidyr]; };
   overdisp = derive2 { name="overdisp"; version="0.1.2"; sha256="155zkxpv0jqy21winp3r17vnrd6xh2a92glha4d9i2vi541d9kix"; depends=[]; };
@@ -14957,7 +15201,7 @@ in with self; {
   pROC = derive2 { name="pROC"; version="1.18.5"; sha256="129cnh3kh9sr42nc7n9f14kr9svi3501834x40njynnzlr0wi4sm"; depends=[plyr Rcpp]; };
   pRSR = derive2 { name="pRSR"; version="3.1.1"; sha256="1irx95b7cwvx3gpn9brjjn4k947m8frz542r18nilc9f1159mb3s"; depends=[]; };
   pRecipe = derive2 { name="pRecipe"; version="3.0.1-3"; sha256="0mwv2xrxp4iws19dwph713xqnkgq3fnwfq1vmw68934qacyjmk79"; depends=[data_table doParallel foreach ggplot2 ggpubr lubridate magrittr ncdf4 openair raster scales sf sp]; };
-  pRepDesigns = derive2 { name="pRepDesigns"; version="1.1.0"; sha256="1bsdgd6zaywr5bh96khjinp5qrv72ibv9y60v63rqzpkdixdzp5z"; depends=[]; };
+  pRepDesigns = derive2 { name="pRepDesigns"; version="1.2.0"; sha256="1n8yzn4k3gsldrxr7fs7qmys854lfl54cwssd47w1k7kr259gvdg"; depends=[]; };
   pTITAN2 = derive2 { name="pTITAN2"; version="1.0.2"; sha256="1mwx7k8ql4l572xvwb5gns9n4kqk779wwm4sg7nbgzz8xvcdh665"; depends=[data_table]; };
   pa = derive2 { name="pa"; version="1.2-4"; sha256="0rjq0b68qh5ayn5nd174bw6h7d707fy4kli1zi74vj4yc51z0las"; depends=[ggplot2]; };
   pack = derive2 { name="pack"; version="0.1-1"; sha256="0x4p8clwp49s2y67y7in530xwhjngnqwagf9xnyb1jp0z3myd3r7"; depends=[]; };
@@ -14965,7 +15209,7 @@ in with self; {
   packHV = derive2 { name="packHV"; version="2.2"; sha256="0bj7zhlz2283y1hfdqdn7xil4wscwri1f5hszarwjwczx4n5sv81"; depends=[survival WriteXLS]; };
   packMBPLSDA = derive2 { name="packMBPLSDA"; version="0.9.0"; sha256="1d9plb88d4hic6881ibij888ic3p65d0ijlsyxcghi93ag3wsfj3"; depends=[ade4 doParallel FactoMineR foreach MASS pROC]; };
   packageDiff = derive2 { name="packageDiff"; version="0.1"; sha256="0qxgx2ac0x7p9j9clj7hgjahf7xwzcjkcw0d2n6w0r9c4g0mw9w2"; depends=[diffr htmlwidgets]; };
-  packageRank = derive2 { name="packageRank"; version="0.8.3"; sha256="04hr4ygpb4wxairlsr4z4knqs5797jspj2mpisd2ci233b6k4y0s"; depends=[cranlogs curl data_table ggplot2 ISOcodes memoise pkgsearch R_utils RCurl rversions sugrrants]; };
+  packageRank = derive2 { name="packageRank"; version="0.9.1"; sha256="1d8savfry05xy3lxd5yhvmpky34563y433yxqsa2v6p252s6d6p7"; depends=[cranlogs curl data_table ggplot2 ISOcodes memoise pkgsearch R_utils RCurl rlang rversions sugrrants]; };
   packagefinder = derive2 { name="packagefinder"; version="0.3.5"; sha256="1fxv6q6pla3yfr32z6j5g4f0c0f1f9gsyn4w8bp23692lfpip721"; depends=[clipr crayon formattable htmlTable httr jsonlite lubridate pander reactable shiny shinybusy shinyjs stringr textutils tidyr]; };
   packagepal = derive2 { name="packagepal"; version="0.1.0"; sha256="0l49qfxdf54m07dpbj3gb3safh4nbc5hz1vgh4dyqxnkrvmh49xl"; depends=[available cli usethis]; };
   packager = derive2 { name="packager"; version="1.15.2"; sha256="0kvlc0cn3v1wpffh4hn29q8jgfxxg4pcxnfnnhykbx13wilrvrph"; depends=[callr checkmate codetools crayon cyclocomp desc fakemake fritools fs gert httr pkgbuild pkgload rcmdcheck remotes rhub rprojroot tinytest whisker whoami]; };
@@ -14984,7 +15228,6 @@ in with self; {
   pagenum = derive2 { name="pagenum"; version="1.2"; sha256="0nid26wmrm76ifxqpqqry232q4alf80i7df1rg237qil8asx06k1"; depends=[]; };
   pageviews = derive2 { name="pageviews"; version="0.6.0"; sha256="187gy6czxkicxghhklma87pfa23xcm07c4n9jfsr5yl9hwwfcna6"; depends=[curl httr jsonlite]; };
   pagoda2 = derive2 { name="pagoda2"; version="1.0.12"; sha256="1kck12ri52nwsrxhjs8ghjji3rv1dxxjy8bxn1kk1hbg30265fsw"; depends=[dendsort drat fastcluster igraph irlba magrittr MASS Matrix mgcv N2R plyr R_utils R6 Rcpp RcppArmadillo RcppEigen RcppProgress rjson rlang RMTstat Rook Rtsne sccore urltools]; };
-  pagoo = derive2 { name="pagoo"; version="0.3.17"; sha256="0scf40vyw7lh5jh4p28894fa05nfl8n71g55w9bs9gbkszmn792k"; depends=[BiocGenerics Biostrings dendextend DT GenomicRanges ggfortify ggplot2 heatmaply magrittr plotly R6 reshape2 S4Vectors shiny shinydashboard shinyWidgets vegan]; };
   painbow = derive2 { name="painbow"; version="1.0.1"; sha256="10c8spknh7sqa4vl0q4bjdwd03nl4qk28hj2qa9sbyb1ryc7p4j9"; depends=[ggplot2]; };
   painter = derive2 { name="painter"; version="0.1.0"; sha256="0qr6p13h50rlavcsamxmijfr4dfrbv1k088m28qf8a4gam3ap85b"; depends=[]; };
   paintingr = derive2 { name="paintingr"; version="0.1.0"; sha256="0km21rv6f137nngx4nzamplzgzhfgijlh1skfvvkp0cbjxv17cpi"; depends=[]; };
@@ -14994,11 +15237,11 @@ in with self; {
   pairwiseCI = derive2 { name="pairwiseCI"; version="0.1-27"; sha256="0yp9nibdrsddjqq6vdlfbpvmfgm209h99b6qqqd6wgfzng327822"; depends=[boot coin MASS MCPAN mcprofile]; };
   pak = derive2 { name="pak"; version="0.7.2"; sha256="0bgl3np3x2a4si99mx618jd8c4skq8bfdnxjwq7m59bapqc1s7c8"; depends=[]; };
   palaeoSig = derive2 { name="palaeoSig"; version="2.1-3"; sha256="121akb42lqzp2vvfj6kjlaxsivxd71r7vnwyg6pcymkin94r8c3k"; depends=[assertr dplyr forcats ggplot2 ggrepel magrittr MASS mgcv purrr rioja rlang TeachingDemos tibble tidyr vegan]; };
-  palaeoverse = derive2 { name="palaeoverse"; version="1.2.1"; sha256="0jvc6gamlzvam3r2iwgjz02hpj47ya7vacvq2mpqbgc6sbnjmi7k"; depends=[ape curl geosphere h3jsr httr pbapply sf stringdist]; };
+  palaeoverse = derive2 { name="palaeoverse"; version="1.3.0"; sha256="1qfi5cv2xg89azax1v4hvajv1g6m59shp5q9db44rn65idxld7x5"; depends=[ape curl geosphere h3jsr httr pbapply sf stringdist]; };
   palasso = derive2 { name="palasso"; version="0.0.9"; sha256="1qx6xa1csa4dz4vjr0q83pr22yxy01dzzqrjp5mxqqm6265wxqdh"; depends=[glmnet Matrix survival]; };
-  pald = derive2 { name="pald"; version="0.0.3"; sha256="1d99fr96jy9a65fpn7pdbbwaj3n1dfqqd2s9cs3pr43h14h0ra9g"; depends=[glue igraph]; };
-  paleoDiv = derive2 { name="paleoDiv"; version="0.2.2"; sha256="1ypl7qdfddijh13ydlk335d4q2i06ib5y4997gn0hhpq0n8f8akg"; depends=[ape stringr]; };
-  paleoTS = derive2 { name="paleoTS"; version="0.5.3"; sha256="1hpgyjnviw9gzy21rsa4vqkiyfpim5y70yrbjyq5z3ifanszggi5"; depends=[doParallel foreach mnormt]; };
+  pald = derive2 { name="pald"; version="0.0.4"; sha256="1b24z6lls2z2c3mwmnbp3qjr63hc1css8d2zy61fzrc78v6v42am"; depends=[glue igraph]; };
+  paleoDiv = derive2 { name="paleoDiv"; version="0.3.0"; sha256="1gj26y0ipc6rvf39293blxchnvm89pbmcwhqbnjz81cgp2zrw514"; depends=[ape stringr]; };
+  paleoTS = derive2 { name="paleoTS"; version="0.6.1"; sha256="0ni3rxhmd30gqm2hkq23qr106pkxr2rnl318lzgrh7hxk9nwpgnl"; depends=[doParallel foreach mnormt]; };
   paleobioDB = derive2 { name="paleobioDB"; version="1.0.0"; sha256="146p6pn3y6ca9vrdbkg3gyqfpb9drvbkkzq50y3qnzwiz15hmxq5"; depends=[curl gtools maps rjson terra]; };
   paleobuddy = derive2 { name="paleobuddy"; version="1.0.0"; sha256="0kaq6vvzw5h0fpvggmvf6v2zg6a06kxcyajv1krzx0p9482nwyzi"; depends=[]; };
   paleomorph = derive2 { name="paleomorph"; version="0.1.4"; sha256="05l55miahkmj8ikq8qz20y6kgxvxmdf04kji898i7fp8qyj4vfpa"; depends=[]; };
@@ -15018,14 +15261,14 @@ in with self; {
   pamm = derive2 { name="pamm"; version="1.122"; sha256="0jd0v3vlq1hrhlyhw008h1jlx9f2nd72ngpyn6km0ay04pnbhkvs"; depends=[lattice lme4 lmerTest mvtnorm]; };
   pammtools = derive2 { name="pammtools"; version="0.5.93"; sha256="0xihvszndsnzzh3kzn67yqqdxms5pba609lvlg68k3gfxbxk104l"; depends=[checkmate dplyr Formula ggplot2 lazyeval magrittr mgcv mvtnorm pec purrr rlang survival tibble tidyr vctrs]; };
   pampe = derive2 { name="pampe"; version="1.1.2"; sha256="092n04nrp886kd163v32f5vhp9r7gnayxzqb6pj57ilm5w1yrcsk"; depends=[leaps]; };
-  pamr = derive2 { name="pamr"; version="1.56.1"; sha256="0ycpgkk23y3zzkb42n2skcyl35ps1n7jmyzfj7pbxr3f6gr2grfh"; depends=[cluster survival]; };
+  pamr = derive2 { name="pamr"; version="1.56.2"; sha256="0n7wpgzdadngj44ddsg3171wap4qhiaap75ndr6g768r3mv6q119"; depends=[cluster survival]; };
   pan = derive2 { name="pan"; version="1.9"; sha256="0liwcym035174h6c4b9ddmqxa3vkpkk3alyr9psk8yhv7i61hzp3"; depends=[]; };
   pander = derive2 { name="pander"; version="0.6.5"; sha256="144zkq5w7v6fpzk3x40i0baybbp0y6x2ckh4b9qljryas9mhgp9a"; depends=[digest Rcpp]; };
   pandoc = derive2 { name="pandoc"; version="0.2.0"; sha256="00bmvxvp4rskbjphp93lpwkp58bkqzlglir7my3icdgrbcyxagj3"; depends=[fs rappdirs rlang]; };
   pandocfilters = derive2 { name="pandocfilters"; version="0.1-6"; sha256="0y2n49n4ln3ac45176nkdd7407bk5vdc0fpl872nasgsvia0zknk"; depends=[jsonlite]; };
   panelPomp = derive2 { name="panelPomp"; version="1.1"; sha256="054nma2h355xd8bazbjrwgxa825qrwfjjwny5m9hry5pyb2vszwm"; depends=[pomp]; };
   panelSUR = derive2 { name="panelSUR"; version="0.1.0"; sha256="025p6dqd7fxa0nh07mwrkbvi5cb6jsfx28kskqvzf8zvar6rbr41"; depends=[fastmatrix formula_tools MASS matlib plm]; };
-  panelView = derive2 { name="panelView"; version="1.1.17"; sha256="05zfkjmkypjw72z3ph11q1wzac55b6knv4ngvb47jjpi3n5i91ga"; depends=[dplyr ggplot2 gridExtra]; };
+  panelView = derive2 { name="panelView"; version="1.1.18"; sha256="1kp8cvc0qklbdxmjh5n4sxzv3ncvrykcyvdsnvil40pmikmd0599"; depends=[dplyr ggplot2 gridExtra]; };
   panelWranglR = derive2 { name="panelWranglR"; version="1.2.13"; sha256="0zj0m08518zi6xsa7qik61ys1qqa2lqiar4l7acclkw58w5zrmbc"; depends=[caret data_table Hmisc]; };
   panelaggregation = derive2 { name="panelaggregation"; version="0.1.1"; sha256="0x8ldqb9216pclfvs4ymdpian43v2ydkyflpf0k6lcn35r04xfr6"; depends=[data_table]; };
   panelhetero = derive2 { name="panelhetero"; version="1.0.1"; sha256="12csjgcjxwl7fxlqib0vgywf32frd7jri3dj9lyq5fmz9riqkdix"; depends=[boot ggplot2 KernSmooth Rearrangement]; };
@@ -15033,33 +15276,36 @@ in with self; {
   panelsummary = derive2 { name="panelsummary"; version="0.1.2.1"; sha256="00rscxkblqkhyx2kdnl78hy82y9bjwdzhiia7bdx9qbjf0g2qjkl"; depends=[dplyr fixest kableExtra modelsummary rlang stringr tidyselect]; };
   panelvar = derive2 { name="panelvar"; version="0.5.5"; sha256="15bks8aqy29rslgbjp4w8xw7w2mcpgcc77bya7a9jcs5715j9xdb"; depends=[ggplot2 knitr MASS Matrix matrixcalc progress reshape2 texreg]; };
   pangaear = derive2 { name="pangaear"; version="1.1.0"; sha256="1x1dbf7jahzc5s4gs0hn6xpw35xxbgp61aym50k384pavsdm9xgw"; depends=[crul hoardr jsonlite oai png tibble xml2]; };
+  panstarrs = derive2 { name="panstarrs"; version="0.2.2"; sha256="0vynq6mycsirwb0kkl85xxijap0jk12k3m7lw7hljf6vwp2p2zc0"; depends=[bit64 checkmate curl data_table httr jsonlite]; };
   papaja = derive2 { name="papaja"; version="0.1.2"; sha256="08ydk9fws5x37q120cdjdx1dsib0y2g9bp826vxzxcaymlwx3dl7"; depends=[bookdown broom glue knitr rmarkdown rmdfiltr tinylabels yaml zip]; };
   papci = derive2 { name="papci"; version="0.1.0"; sha256="0ma1pfwgmj6qcg23yzhbnqip4qnxhsmfnvrgrr3ln65q5plmvh58"; depends=[binom dplyr DT Hmisc PropCIs ratesci readxl shiny shinythemes tidyverse]; };
   papeR = derive2 { name="papeR"; version="1.0-5"; sha256="095qfgv6h3sl5p69gm1v0qh9axap8gq2a9a3v95688fia2ppym4x"; depends=[car gmodels xtable]; };
   paperplanes = derive2 { name="paperplanes"; version="0.0.1.9"; sha256="1d9grc95xqxn91lvk8v7w3z90bhl8savkhihwshyjp8ij2xpzfkl"; depends=[]; };
   parSim = derive2 { name="parSim"; version="0.1.5"; sha256="0gcycp0gcgz2a1w7nzrlwq41wvyg36931c9q4zjyq876nd43ah12"; depends=[data_table dplyr pbapply snow]; };
+  parTimeROC = derive2 { name="parTimeROC"; version="0.1.0"; sha256="0rshkjckv0llzgp2yywrbz55ahbzcq140k78wwwsjlwymjfxim9f"; depends=[BH cubature DescTools flexsurv Matrix moments mvtnorm Rcpp RcppEigen RcppParallel rstan rstantools sn StanHeaders survival VineCopula]; };
   parabar = derive2 { name="parabar"; version="1.1.1"; sha256="1hhhcxaap1ih4chf5l2c8mqkv9i4bsqml64ak3nfydsi4znymha4"; depends=[callr filelock progress R6]; };
   parade = derive2 { name="parade"; version="0.1"; sha256="07x02j9jlldz4p0cyhw292041l3pziv56bhbzp4f0qpxhcbn5zn4"; depends=[]; };
-  paradox = derive2 { name="paradox"; version="0.11.1"; sha256="0igza40ycirnf5chs7z2nnh0w6d48v4wv102zn2vnvh0kkvgv3hd"; depends=[backports checkmate data_table mlr3misc R6]; };
+  paradox = derive2 { name="paradox"; version="1.0.0"; sha256="0lll3sjyn0hmxfzg71zk53f3fddibvq7762ax7gxjgiy6zgi9mny"; depends=[backports checkmate data_table mlr3misc R6]; };
   parallelDist = derive2 { name="parallelDist"; version="0.2.6"; sha256="01ly4hxwa64a0ya5gla8rvv72s9mcknsfznivjkh937pbjwb7iih"; depends=[Rcpp RcppArmadillo RcppParallel]; };
   parallelMCMCcombine = derive2 { name="parallelMCMCcombine"; version="2.0"; sha256="18xw0s9lga2w981cx4daywp6b6gxvgl9mh68r13c5mmhis3b8v14"; depends=[mvtnorm]; };
   parallelMap = derive2 { name="parallelMap"; version="1.5.1"; sha256="1qg7zpz5sd9jp8wzjqahkhipwj1jn192llwg06q4gv9mlcsac261"; depends=[BBmisc checkmate]; };
   parallelPlot = derive2 { name="parallelPlot"; version="0.3.1"; sha256="12rpzcz1nc8c9rnsdg7kx6gh98plhp2jv22h58gg5gyl0pcsh2hx"; depends=[htmlwidgets]; };
   parallelly = derive2 { name="parallelly"; version="1.37.1"; sha256="189ngbh9i6mqmfn4z6446in7687ddlpdq6v5rj3hr8zqinqlwznz"; depends=[]; };
   parallelpam = derive2 { name="parallelpam"; version="1.4"; sha256="0iv11jqr9040rnw7hkfdj4vq4s7lhzz6as7f0zcy6jm36b3hllh2"; depends=[memuse Rcpp]; };
-  param2moment = derive2 { name="param2moment"; version="0.1.0"; sha256="1dv078231xyc4fa05zkh289wxhm5pjijsbkyvpm3zh9ybxdnmd4p"; depends=[]; };
+  param2moment = derive2 { name="param2moment"; version="0.1.2"; sha256="1k5zgzi985hglk5xh0qan6f6bsayln6vq1jykrxyxlffvpbc4hg1"; depends=[]; };
   paramGUI = derive2 { name="paramGUI"; version="2.2.0"; sha256="16z7fbrykyfysiqfrj00ks567wwrz2mpcwx75crbg45spdw0dck6"; depends=[fields shiny shinydashboard TIMP]; };
-  parameters = derive2 { name="parameters"; version="0.21.6"; sha256="004ld3m9qdq3bwl8qmp3h700kzqlgbmgz739d7fpiqgrs0s2gv83"; depends=[bayestestR datawizard insight]; };
+  parameters = derive2 { name="parameters"; version="0.21.7"; sha256="1br7mxfmb58f0kcinb1cyr7zvw1l37zhidsqf6280zyqqwdg46ir"; depends=[bayestestR datawizard insight]; };
   paramhetero = derive2 { name="paramhetero"; version="1.0.0"; sha256="1zkwzmh3igkwfq87v3rmp3axfspl20qn4qmpyqql6ain564yyabw"; depends=[ggplot2 MASS]; };
   paramlink = derive2 { name="paramlink"; version="1.1-5"; sha256="0a21cy8q3zv96zdq5q2hfkb2ga1fham00in7wfyyd9wpck9gp009"; depends=[assertthat kinship2 maxLik]; };
   paramlink2 = derive2 { name="paramlink2"; version="1.0.4"; sha256="1dw6z49yd7g89hmnzpb5m0w8fz56iwwf7zr01kji0ss9p9vnr9pg"; depends=[pedprobr pedtools]; };
   params = derive2 { name="params"; version="0.7.3"; sha256="0zii9nxgl2z46vyqn2l0kdjmib90534ybpizck74mp2wp1vh9ndj"; depends=[glue purrr RcppTOML readr whisker]; };
   paramsim = derive2 { name="paramsim"; version="0.1.0"; sha256="1a227s1xglcc1skpsmwmmwr04mql73plc557sp8bl8444fhjz228"; depends=[doParallel foreach forecast future tibble]; };
   paramtest = derive2 { name="paramtest"; version="0.1.0"; sha256="0yn1s1qkgby8x0qn7cy1zhxzc0wyi7bm30pkvijhn5h5afjpylsy"; depends=[boot]; };
-  paran = derive2 { name="paran"; version="1.5.2"; sha256="0d9la83mxfpfgdfrqa40ck5fcp3j2b70d8c8nl9wmdsgvgqrl23s"; depends=[MASS]; };
+  paran = derive2 { name="paran"; version="1.5.3"; sha256="0lfhizz1vdmlwwcnm3y1nm127rm02icdk56x2p0m7vrcqbxybyqp"; depends=[MASS]; };
   parcats = derive2 { name="parcats"; version="0.0.5"; sha256="1imlifi6zdyv1wnvasw8n7cxwq06hj6rr1g2xc1d8j2ic3dbk4ig"; depends=[dplyr easyalluvial forcats htmlwidgets magrittr purrr stringr tibble tidyr]; };
-  parcr = derive2 { name="parcr"; version="0.5.1"; sha256="10ww3m0nhs5lx4bf34iyb00w3pdik3z3lmp843lz87nqwnh5farc"; depends=[]; };
+  parcr = derive2 { name="parcr"; version="0.5.2"; sha256="0288l0jl246jp44zzi0avgz8yip23b64hg8pgnnadl7271xx0nvx"; depends=[]; };
   parfm = derive2 { name="parfm"; version="2.7.7"; sha256="12kcvdpmp99lqgr1775xqjkcn3s5agng1hwhjq2sa3bgrjgmhsh5"; depends=[msm optimx sn survival]; };
+  pargasite = derive2 { name="pargasite"; version="2.1.0"; sha256="0jna1mjq4k8zfnszw3yarn6s0bhc70awins3nz4kmply01jy5jfi"; depends=[cli gstat leaflet leafsync raqs rlang sf shiny shinycssloaders stars]; };
   parglm = derive2 { name="parglm"; version="0.1.7"; sha256="11knspjg0s7x8c5dqrkdkr33af39rhyggs0s0dxv726zfmg1ldy3"; depends=[Matrix Rcpp RcppArmadillo]; };
   parma = derive2 { name="parma"; version="1.7"; sha256="0rv53d3ailqh5a0qarpw9967ghnvslr2kcn02yn8xbkpcvnb7lfk"; depends=[corpcor nloptr quadprog Rglpk slam truncnorm]; };
   parmigene = derive2 { name="parmigene"; version="1.1.0"; sha256="067rqxqyzy1fsjj0s1g7af4527whwdhzjzc5b8a8n7683na59ns4"; depends=[]; };
@@ -15067,7 +15313,7 @@ in with self; {
   paropt = derive2 { name="paropt"; version="0.3.3"; sha256="0rmiamj3s0s9qcymx74lmk266mrja3mxkflf32dpahnric9rvpsl"; depends=[ast2ast dfdr Rcpp RcppArmadillo RcppThread rlang]; };
   parqr = derive2 { name="parqr"; version="0.1.0"; sha256="11956dvv46sgpmbv429c24wxdhfqvc07jxc1i4yymyz1l8wgr3yb"; depends=[arrow magrittr purrr]; };
   parquetize = derive2 { name="parquetize"; version="0.5.7"; sha256="0vmvjycyw4kihdx13wgi8qbynnaic96wgvw2hhdjz8fjrg1lb9sy"; depends=[arrow cli curl DBI dplyr fst glue haven jsonlite lifecycle readr rlang RSQLite tidyselect]; };
-  parseRPDR = derive2 { name="parseRPDR"; version="1.1.0"; sha256="0jbph3sjhp0qa0gk9vixr2bswcmkjbwz142nplzlsym9x9j02626"; depends=[data_table doFuture doParallel foreach future parallelly progressr readr stringr]; };
+  parseRPDR = derive2 { name="parseRPDR"; version="1.1.1"; sha256="1ih4mrk0vfr8rkm55zgx4rlv3791asvsahk9w4pavns3r0wiq6av"; depends=[data_table doFuture foreach future parallelly progressr readr stringr]; };
   parsec = derive2 { name="parsec"; version="1.2.7"; sha256="0k6w4nd37yz9jlzwv0bkv90v72y5bjz7rhk8gjpbl6ym63brxps6"; depends=[igraph netrankr]; };
   parsedate = derive2 { name="parsedate"; version="1.3.1"; sha256="1cfinqlbchmkhkgmdwiy3mnxb17lp02jfk2gpw56hq9vh6wimhqz"; depends=[]; };
   parsel = derive2 { name="parsel"; version="0.3.0"; sha256="0d2sviaq94v5szd2qq1kdpirp3zyrx6r3kyins9xyfma9026770x"; depends=[lubridate purrr rlang RSelenium]; };
@@ -15078,7 +15324,7 @@ in with self; {
   partialised = derive2 { name="partialised"; version="0.1.1"; sha256="0rb9d5p21f1y0c8arwh1lf516vw30qinf15rkrv49qw97dvvb9db"; depends=[pillar purrr rlang vctrs]; };
   particle_swarm_optimisation = derive2 { name="particle.swarm.optimisation"; version="1.0"; sha256="0y3pq129irxifiph40mf027gbc02c4pwkchs305pcbj3vr9pwsyw"; depends=[R6 rgl]; };
   particles = derive2 { name="particles"; version="0.2.3"; sha256="0x76q9qcfaraiy0w8hrdk4ws16w1a8m363a3l4cphpi6xi329027"; depends=[cpp11 digest dplyr igraph mgcv rlang tidygraph]; };
-  partition = derive2 { name="partition"; version="0.2.0"; sha256="0h58dzwmndvaz535hshv50c657gjpadv2g60mylj4rb064li51lk"; depends=[crayon dplyr forcats ggplot2 infotheo magrittr MASS pillar progress purrr Rcpp RcppArmadillo rlang stringr tibble tidyr]; };
+  partition = derive2 { name="partition"; version="0.2.1"; sha256="0nbhkzx4rp8zm6n49sf2kdzqkyfjh9032qbkpp4f4mnk5434z1qk"; depends=[crayon dplyr forcats ggplot2 infotheo magrittr MASS pillar progress purrr Rcpp RcppArmadillo rlang stringr tibble tidyr]; };
   partitionBEFsp = derive2 { name="partitionBEFsp"; version="1.0"; sha256="0rirqk9v5jbjs2jpjjkg7kvay9f093q2gwx5fx3bm9b0f5869w1b"; depends=[]; };
   partitionComparison = derive2 { name="partitionComparison"; version="0.2.6"; sha256="1z4ckjgjsq94wbnazb3335rcy6hhqh8pf9j5d22z6qkgfgxcv7w6"; depends=[lpSolve Rdpack]; };
   partitionMetric = derive2 { name="partitionMetric"; version="1.1"; sha256="1wry9d3s814yp79ayab7rzf8z5l2mwpgnrc5j7d2sac24vp4pd48"; depends=[]; };
@@ -15086,7 +15332,7 @@ in with self; {
   partools = derive2 { name="partools"; version="1.1.6"; sha256="0w7p88y4ab4v14k16k95cyb5f3yl2g6ban11775rmi2h9xqkfxk8"; depends=[data_table pdist regtools]; };
   partsm = derive2 { name="partsm"; version="1.1-3"; sha256="17md3j41knscllckiqnvkqvf2v0fgsig101vgg6z5ic1yzvzfxgs"; depends=[]; };
   parttime = derive2 { name="parttime"; version="0.1.2"; sha256="0n8yyi2c14b0rharb2afj9xkmjjfqalzyl164m5arzscwpxl9y2i"; depends=[crayon lubridate pillar vctrs]; };
-  party = derive2 { name="party"; version="1.3-14"; sha256="0rq88zd8bqqqavlnmijf2j53livpr4pkmxlxhf5acsl2jxf9fc5w"; depends=[coin modeltools mvtnorm sandwich strucchange survival zoo]; };
+  party = derive2 { name="party"; version="1.3-15"; sha256="05r2mp7hfqxqnhk5wy73510x7yn1r15gww4mhxkvl9jm44p7rqn0"; depends=[coin modeltools mvtnorm sandwich strucchange survival zoo]; };
   partykit = derive2 { name="partykit"; version="1.2-20"; sha256="1np0sa7fx7wvwxbpk5lpgbdpz0xwcvppq0sc52nifx1dxnirll33"; depends=[Formula inum libcoin mvtnorm rpart survival]; };
   parzer = derive2 { name="parzer"; version="0.4.1"; sha256="0v97cfjkggkdhv8gc0ffgbijgwxzpz7n44z7gsmkvggjj3wsxvpr"; depends=[Rcpp withr]; };
   pasadr = derive2 { name="pasadr"; version="1.0"; sha256="0gc44jbqn96bn7f6xjmszz5lgsby24sxziixvhbkh5lgs4zap8i2"; depends=[pracma scales]; };
@@ -15094,6 +15340,7 @@ in with self; {
   passport = derive2 { name="passport"; version="0.3.0"; sha256="176pkc7x76339bawdwywdcmiynzzlrwr91fgf5q0rq7asd9nc7d1"; depends=[]; };
   passt = derive2 { name="passt"; version="0.1.3"; sha256="0yphnw38wwv303lkbfj2y3fwfjnd8l7gyi60c7xaj6qwy4y5ww8k"; depends=[dplyr magrittr rlang tidyr]; };
   password = derive2 { name="password"; version="1.0-0"; sha256="1ijzqdw54l8wvpy6ys28njvhplzjxzzi5i9y41vjnrr88n13977v"; depends=[]; };
+  pastaPlot = derive2 { name="pastaPlot"; version="0.1.0"; sha256="16a1rk903py7bm36wkywwspq927698k1kvv5h1h7ln6rcd2376r3"; depends=[ggeffects ggplot2 glmmTMB lme4]; };
   pastclim = derive2 { name="pastclim"; version="2.0.0"; sha256="00zkf6flv4f5ljn0difpa8j3n221gvflsjnfdhfjbxnnw80qbyrp"; depends=[curl lubridate ncdf4 terra]; };
   pasteAsComment = derive2 { name="pasteAsComment"; version="0.2.1"; sha256="165wsvgnrsbx9lh6bmffzyhdfhviap4vl556sbgr8f45lqcgsh69"; depends=[clipr rstudioapi]; };
   pastecs = derive2 { name="pastecs"; version="1.4.2"; sha256="1y3nngdmslbs1rls0n2nbx8jpp9z3nvv11w1z6rff6v0ky05ddj3"; depends=[boot]; };
@@ -15103,42 +15350,42 @@ in with self; {
   patentr = derive2 { name="patentr"; version="0.1.4"; sha256="14jxqaq306mpppzz14f0qw1d0brrrkcs121h5fdiskvly3vjvs1j"; depends=[dplyr lubridate magrittr progress Rcpp rlang xml2]; };
   patentsview = derive2 { name="patentsview"; version="0.3.0"; sha256="1ysqarmqqbw7zy1c3nfa08i6byima31pmcvv60qz9qjpyd2np0fn"; depends=[httr jsonlite]; };
   path_chain = derive2 { name="path.chain"; version="0.2.0"; sha256="1p28mcar4krgvkgn02xrlwcpzchnppn2l2k2iwh511c3qrfpy653"; depends=[logger rlang stringi]; };
-  pathfindR = derive2 { name="pathfindR"; version="2.3.1"; sha256="152n1kjmaplykcxrnjf9ms7abamy0aisinbwf61j1gwxg7j6ddq3"; depends=[AnnotationDbi DBI doParallel foreach fpc ggplot2 ggraph ggupset igraph KEGGgraph KEGGREST knitr magick msigdbr org_Hs_eg_db pathfindR_data R_utils rmarkdown]; };
-  pathfindR_data = derive2 { name="pathfindR.data"; version="2.0.0"; sha256="17gq9na4d6ls0dkvy4v1gjg29v7jm7ms9k83c2p6q2q1273ahxpb"; depends=[]; };
-  pathling = derive2 { name="pathling"; version="6.4.2"; sha256="1i60b3caa1fn36gb04wwmr043pmxr234xhfy5m07z891andx90jj"; depends=[rlang sparklyr]; };
+  pathfindR = derive2 { name="pathfindR"; version="2.4.1"; sha256="0lwjnw6krqz2yi39as07zcpyh13c6b4d0qxxhhqbqcms6anms7q3"; depends=[AnnotationDbi DBI doParallel foreach fpc ggkegg ggplot2 ggraph ggupset httr igraph knitr msigdbr org_Hs_eg_db pathfindR_data R_utils rmarkdown]; };
+  pathfindR_data = derive2 { name="pathfindR.data"; version="2.1.0"; sha256="1plc83y35nbvn554kf52d3wc4q44fdm3rh5qs6asfcqif17g6k82"; depends=[]; };
+  pathling = derive2 { name="pathling"; version="7.0.0"; sha256="092pff81qg3pypygakihabi64kgw1fvdsn2pbkcvhnfa07yrirm1"; depends=[rlang sparklyr]; };
   pathlit = derive2 { name="pathlit"; version="0.1.0"; sha256="0harvldkhq2c1wb9i4n72w1s3frhjzyn4cjpwk1n350zg12kh9gz"; depends=[httr jsonlite testthat timeSeries usethis]; };
   pathmodelfit = derive2 { name="pathmodelfit"; version="1.0.5"; sha256="1nxcnmz9r99znqmwibvvix7h3acp22cs6wp1jmp21p862ncabll8"; depends=[lavaan]; };
   paths = derive2 { name="paths"; version="0.1.1"; sha256="19fl54r2myb9ky8ffnx71xw23a8dlg15sj9v36xcpv79z61ryws9"; depends=[BART boot gbm ggplot2 metR pryr tidyr twang]; };
   pathviewr = derive2 { name="pathviewr"; version="1.1.7"; sha256="0n3jv5zzwb7579ymv8s6vr7nzrc3gz5bi30yf6qvqixr8j0k4ggr"; depends=[cowplot data_table dplyr fANCOVA ggplot2 lubridate magrittr purrr R_matlab stringr tibble tidyr tidyselect]; };
   pathwayTMB = derive2 { name="pathwayTMB"; version="0.1.3"; sha256="1zrs7l9vifrsixk20p0nxs6s8kadc3l3mj933s7ribaby2fb0r8m"; depends=[BiocGenerics caret clusterProfiler data_table glmnet maftools pROC purrr randomForest RColorBrewer survival survminer]; };
-  patientProfilesVis = derive2 { name="patientProfilesVis"; version="2.0.7"; sha256="04vdiyia3xkirnpwd88i7j46gvwcxn6wdzc50660pkqkn1gwiyhn"; depends=[clinUtils cowplot ggplot2 gridExtra knitr plyr reshape2 scales stringr]; };
+  patientProfilesVis = derive2 { name="patientProfilesVis"; version="2.0.8"; sha256="1ivc356cr6zsyggw6if43h135ynij9c36rg9p467945q8dcf4hcr"; depends=[clinUtils cowplot ggplot2 gridExtra knitr plyr reshape2 scales stringr]; };
   patrick = derive2 { name="patrick"; version="0.2.0"; sha256="1ghjvm82hgal091hfjfyz3ndg32xsggip5pp4y0g7rmrzpfjmpjs"; depends=[dplyr purrr rlang testthat tibble]; };
   patternator = derive2 { name="patternator"; version="0.1.0"; sha256="0s4vrhdfblllnhpz2awhhrkwm8d4170xg7fpsp7kvvqy8z8biwvi"; depends=[data_table]; };
   patternize = derive2 { name="patternize"; version="0.0.5"; sha256="1d0x27fy41sdxhmyj4cy01xxxcbyp4hvxjcybbmgg1r4ivi1sp08"; depends=[abind ClusterR dplyr geomorph imager magrittr Morpho purrr raster RNiftyReg sf sp vegan]; };
   patternplot = derive2 { name="patternplot"; version="1.0.0"; sha256="0n4y23g894amwi62lx10k15i28rsmiaw52bds8dzmvkykkp9mm8q"; depends=[dplyr ggplot2 gridExtra gtable jpeg png R6 Rcpp RcppParallel]; };
   pavo = derive2 { name="pavo"; version="2.9.0"; sha256="1kl3qd1q6p4rmfbml0lfjj3wi40w3kkb9gahvin8k62m5aa4hmq6"; depends=[cluster farver future_apply geometry lightr magick plot3D progressr sf viridisLite]; };
   pawacc = derive2 { name="pawacc"; version="1.2.3"; sha256="150bvmnv5myq856x19kg1ca9favcsh1cid70y8hv3wd9f25w9r8c"; depends=[SparseM]; };
-  paws = derive2 { name="paws"; version="0.5.0"; sha256="1dwk1fnsrykvgz4l3hiapcqvvajwr3kmwxl3gza07nh573j8439h"; depends=[paws_analytics paws_application_integration paws_common paws_compute paws_cost_management paws_customer_engagement paws_database paws_developer_tools paws_end_user_computing paws_machine_learning paws_management paws_networking paws_security_identity paws_storage]; };
-  paws_analytics = derive2 { name="paws.analytics"; version="0.5.0"; sha256="07nwa39mn749a9rqb683wf19kd8si7ksws87annbldmd57r072l8"; depends=[paws_common]; };
-  paws_application_integration = derive2 { name="paws.application.integration"; version="0.5.0"; sha256="1sgzp0yr1jsmbyzyk26m762rhpxb89wrwqqvrrw3xr1ib0cg06ah"; depends=[paws_common]; };
-  paws_common = derive2 { name="paws.common"; version="0.7.1"; sha256="1mjbyykav3f5yv59hnaihqsqhinvrlhphp93ks9xp756w6abciqf"; depends=[base64enc curl digest httr jsonlite Rcpp xml2]; };
-  paws_compute = derive2 { name="paws.compute"; version="0.5.0"; sha256="1vsxwzqgk0004nmfy79pd0zc208fczay95p7h16mzqgds9586ma1"; depends=[paws_common]; };
-  paws_cost_management = derive2 { name="paws.cost.management"; version="0.5.0"; sha256="1fvxird0kmwhj930j7hm95h34c0vsf8p0lh6qrnz9d9i689fiw92"; depends=[paws_common]; };
-  paws_customer_engagement = derive2 { name="paws.customer.engagement"; version="0.5.0"; sha256="1380waqavwga17fvdzfpag4snzynkykh3pnia5bi73476y7myj5h"; depends=[paws_common]; };
-  paws_database = derive2 { name="paws.database"; version="0.5.0"; sha256="0nlkbnyxd3znmvqxqb3w43sznacmikq32d9fihyc1dx7ghvmf61z"; depends=[paws_common]; };
-  paws_developer_tools = derive2 { name="paws.developer.tools"; version="0.5.0"; sha256="177q7x8l9asyidpc7j20xwpyk0bd9x9m20cy4qzlnnmr14anyvjm"; depends=[paws_common]; };
-  paws_end_user_computing = derive2 { name="paws.end.user.computing"; version="0.5.0"; sha256="0qz5kps9819yfqjdqjmv7wx70ll7xayfxmd5dc867k14i41f91cm"; depends=[paws_common]; };
-  paws_machine_learning = derive2 { name="paws.machine.learning"; version="0.5.0"; sha256="0zcw758xsw2360571dj215gyd1amaxx07i58h1r6r5zys940lxis"; depends=[paws_common]; };
-  paws_management = derive2 { name="paws.management"; version="0.5.0"; sha256="0k40lrgxx91bijj3648zsgj55x120mhmx8dyx3hm2yvh2k96ks7h"; depends=[paws_common]; };
-  paws_networking = derive2 { name="paws.networking"; version="0.5.0"; sha256="0qs6bp0vlbazxir9jmdcnazh90yrvhrw6k9046id73hw1j7h5zaf"; depends=[paws_common]; };
-  paws_security_identity = derive2 { name="paws.security.identity"; version="0.5.0"; sha256="01gh761ykc4h81whn649bm28b01njqm1kjqkn9l4n7hhnalddy06"; depends=[paws_common]; };
-  paws_storage = derive2 { name="paws.storage"; version="0.5.0"; sha256="0v2g1shv9m4h2fz2lvjad479g3nmxc92wlyrxj4s7fifzzs2pd97"; depends=[paws_common]; };
+  paws = derive2 { name="paws"; version="0.6.0"; sha256="1w8jzkcr86s67rclx994zkfwqqy02mlj2gk52a198dxg737w5nw0"; depends=[paws_analytics paws_application_integration paws_common paws_compute paws_cost_management paws_customer_engagement paws_database paws_developer_tools paws_end_user_computing paws_machine_learning paws_management paws_networking paws_security_identity paws_storage]; };
+  paws_analytics = derive2 { name="paws.analytics"; version="0.6.0"; sha256="0w65f4bmcybp30zas20b90f1cmw1znhpjhcsf8xnq7x4s2lnpy3d"; depends=[paws_common]; };
+  paws_application_integration = derive2 { name="paws.application.integration"; version="0.6.0"; sha256="0wmkxnrjmaf88bw1xypj7n41klxxhf538krsk0xrnwjb14v7lqla"; depends=[paws_common]; };
+  paws_common = derive2 { name="paws.common"; version="0.7.3"; sha256="1h7xsddwjhjx5n3fns16nhk249h6mypk80d3jp7lwpianhdll90m"; depends=[base64enc curl digest httr jsonlite Rcpp xml2]; };
+  paws_compute = derive2 { name="paws.compute"; version="0.6.1"; sha256="0s1d7gj7lb6fra4l6h3c74v3hsp701qbiqirnk0q0qm7ild5399r"; depends=[paws_common]; };
+  paws_cost_management = derive2 { name="paws.cost.management"; version="0.6.1"; sha256="03mpmwg3lnky9ylpc4707a10y7b1hv228c0jc0yik0zfvrka0h64"; depends=[paws_common]; };
+  paws_customer_engagement = derive2 { name="paws.customer.engagement"; version="0.6.0"; sha256="1akwx39xmkms9zpsb7i5wx2hzvhhkmi0xlxag13cf9gjpg822361"; depends=[paws_common]; };
+  paws_database = derive2 { name="paws.database"; version="0.6.0"; sha256="0jm3cwl2scfc4jgxzlwnax195xlii2b3p9kjmid48p8zx6h68hb9"; depends=[paws_common]; };
+  paws_developer_tools = derive2 { name="paws.developer.tools"; version="0.6.0"; sha256="1cj9k005267wpd9pblvhk0sdy2ll2n0wcq4ch5wjwkz9kgl02jjr"; depends=[paws_common]; };
+  paws_end_user_computing = derive2 { name="paws.end.user.computing"; version="0.6.0"; sha256="17550n93d0lndhfk9r8zdh2yif4hw3m4wn7wzgj53akgqy1jg10y"; depends=[paws_common]; };
+  paws_machine_learning = derive2 { name="paws.machine.learning"; version="0.6.0"; sha256="1l2gy9bzibbjwqxb5x72dpfaylxa999c3zyb3y3359ckqkxsqgpy"; depends=[paws_common]; };
+  paws_management = derive2 { name="paws.management"; version="0.6.1"; sha256="0yxh3lr5b9cgsq9gmbjwfikiv38wa4d82mrq0fdqidhcsqfbz62g"; depends=[paws_common]; };
+  paws_networking = derive2 { name="paws.networking"; version="0.6.0"; sha256="1lfkll2gb83vw9zfb7bnmlg4alncqhp48s1w046fkh9qlg8hc7j6"; depends=[paws_common]; };
+  paws_security_identity = derive2 { name="paws.security.identity"; version="0.6.1"; sha256="14zcvd2cf2015r7b4y69176czznz69nzjp344ys262a8r31nliz5"; depends=[paws_common]; };
+  paws_storage = derive2 { name="paws.storage"; version="0.6.0"; sha256="1mngxy88r94n1zwbvimj71hw4w9myk5kgqpgyj0m3spwv7338rfd"; depends=[paws_common]; };
   pawscore = derive2 { name="pawscore"; version="1.0.3"; sha256="0pf8lczi0g3cwi4hxrz4lggphpkbabswj0sppm7h688ijb1ph9qg"; depends=[brglm2 signal]; };
   pbANOVA = derive2 { name="pbANOVA"; version="0.1.0"; sha256="0m7946jv4zbs0k74klxkl8nbwirc48g6paqrfl5fadkd17xxqq2j"; depends=[DescTools dplyr lmtest MASS plyr Rmisc]; };
   pbapply = derive2 { name="pbapply"; version="1.7-2"; sha256="04xf1p7c0066cwnxfmzaikbc322bxnw022ziv8kkhzlc6268rvdf"; depends=[]; };
   pbatR = derive2 { name="pbatR"; version="2.2-17"; sha256="1i4rjq8p6j5d7nh9lyrz5zh2s7jf81ljl0jgam2nkrzx3vagy91r"; depends=[rootSolve survival]; };
   pbbd = derive2 { name="pbbd"; version="1.0.0"; sha256="07g029qw5949500c879iv86zwg2fldqrz8wzfz335jmcinqimgj6"; depends=[ibd]; };
-  pbcc = derive2 { name="pbcc"; version="0.0.4"; sha256="1bmb9zn9ryis1fnhr6gz24y1mxbi876hkss0kpyl359pbgiq46p3"; depends=[ggplot2 ggpubr qcc rgenoud]; };
+  pbcc = derive2 { name="pbcc"; version="0.0.5"; sha256="09yx6p0v8pa049l85kwm0rw15amyna9r35kbbahby3lfb212syb2"; depends=[ggplot2 ggpubr qcc rgenoud]; };
   pbdMPI = derive2 { name="pbdMPI"; version="0.5-1"; sha256="047pxra6n3pacyqg5qdg8dbz32s8bq8z9dyi5rvs0ax76vr1v8v4"; depends=[float]; };
   pbdSLAP = derive2 { name="pbdSLAP"; version="0.3-5"; sha256="0l6w1kxn0clqi36lqg494d71dd3rv77v94nzqn0rp7zv33n63cnp"; depends=[pbdMPI]; };
   pbdZMQ = derive2 { name="pbdZMQ"; version="0.3-11"; sha256="0ns0fpfsbx28iyxmas691i29sh1gia0bspx0flgj0w3khm6j0zns"; depends=[]; };
@@ -15147,6 +15394,7 @@ in with self; {
   pbm = derive2 { name="pbm"; version="1.2.1"; sha256="0nkqhrvlzf2imkq5pbni3c1k4vc75y26rra3czbchs111v7jrcqv"; depends=[]; };
   pbmcapply = derive2 { name="pbmcapply"; version="1.5.1"; sha256="1p8jf7c4k45482w72sr0jw4jkz787krrxai3sl6jz5l4lda2iz3z"; depends=[]; };
   pbo = derive2 { name="pbo"; version="1.3.5"; sha256="0grj5h06kz8w2p7rzdibg95zpy30r056w14hmy7ij3bpi98sm79z"; depends=[foreach lattice latticeExtra]; };
+  pbox = derive2 { name="pbox"; version="0.1.8"; sha256="037wry356n3z5z4ggd6k5yna778134vjagaii1r4yahg15ksp7gk"; depends=[copula data_table gamlss gamlss_dist purrr stringr]; };
   pbr = derive2 { name="pbr"; version="0.0.2"; sha256="1y984v487hqn22cnhn3cghbvn5bxpvpqsrsizjd06vjwnflpazg2"; depends=[htmltools httr jsonlite leaflet]; };
   pbs = derive2 { name="pbs"; version="1.1"; sha256="0cpgs6k5h8y2cia01zs1p4ri8r7ljg2z4x8xcbx73s680dvnxa2w"; depends=[]; };
   pbv = derive2 { name="pbv"; version="0.5-47"; sha256="14n7szbhasw0qly3cbzh4jw8plinbxarzdbj46vilq3am7ph8yp1"; depends=[Rcpp RcppArmadillo]; };
@@ -15172,18 +15420,19 @@ in with self; {
   pcgen = derive2 { name="pcgen"; version="0.2.0"; sha256="1v2fmxbj9gz5sg0hizw03ad8cfm9v25708h7fvnf6gb42b2mmyb3"; depends=[ggm graph Hmisc lme4 MASS Matrix pcalg sommer]; };
   pch = derive2 { name="pch"; version="2.1"; sha256="15dvrcrbcql54wf011r1a3pl3v2b551mq0pf4wcr7wjrf330h1w3"; depends=[Hmisc survival]; };
   pchc = derive2 { name="pchc"; version="1.2"; sha256="0h1b1n9mw22wsh51nciphgyqk2cp98qkm4wskxw4ryj6lyqjk4k2"; depends=[bigstatsr bnlearn dcov doParallel foreach Rfast Rfast2 robustbase]; };
+  pci = derive2 { name="pci"; version="1.0.1"; sha256="08wfwy2ncm3cxbg31wimw0bd64lwwp19wsjd970zvwxs7wgpsdx2"; depends=[vek]; };
   pcmabc = derive2 { name="pcmabc"; version="1.1.3"; sha256="1wrdbinc3y71q4ix8cb1vn4nhaa0bp9yxw1n8d5bzdyhg29df2hj"; depends=[ape mvSLOUCH phangorn yuima]; };
   pcnetmeta = derive2 { name="pcnetmeta"; version="2.8"; sha256="18q3fprxzbmm2nsqazppjkl5rvbmn1s9985f2wmzm2dslwpm5a23"; depends=[coda rjags]; };
   pco = derive2 { name="pco"; version="1.0.1"; sha256="0k1m450wfmlym976g7p9g8arqrvnsxgdpcazk5kh3m3jsrvrcchf"; depends=[]; };
-  pcoxtime = derive2 { name="pcoxtime"; version="1.0.4"; sha256="1ill4vkkxv9iymknfkk72sff932l3jb0m70aga1skxkriyr02nwf"; depends=[doParallel foreach ggplot2 pec PermAlgo prodlim Rcpp RcppArmadillo riskRegression survival]; };
   pcr = derive2 { name="pcr"; version="1.2.2"; sha256="1lmgm8k3s7780ivrdj0zk1ninx7b5jffir6q5p2p47h62qqjmp5d"; depends=[ggplot2]; };
   pcse = derive2 { name="pcse"; version="1.9.1.1"; sha256="1rb9146vjkf36vc5v3frykmsff7kp6qp1hhmj8pak583in4rz8f8"; depends=[]; };
   pcsstools = derive2 { name="pcsstools"; version="0.1.2"; sha256="0pqc6qpl95dxphi77wcgi0v22a1q455iqaplsrvg32cf0mn3gikg"; depends=[gtools Rdpack]; };
   pct = derive2 { name="pct"; version="0.9.9"; sha256="15rshwdrfkr0ahnywss0qqbcyfxakknv9ffvb58nzc960c97zmy8"; depends=[boot crul readr sf stplanr]; };
+  pctax = derive2 { name="pctax"; version="0.1.1"; sha256="153vbgs3fw3x5n20wn58r3958kqrzcx0y15z5xjyc0lzhc66bzfs"; depends=[ade4 dplyr ggnewscale ggplot2 ggpubr ggrepel magrittr pcutils RColorBrewer reshape2 scales tibble vegan]; };
   pcts = derive2 { name="pcts"; version="0.15.7"; sha256="1cr44w561sh05qpi0jyf2ypj4dadwyqkbaqn347v533bywasip2h"; depends=[BB gbutils lagged lubridate Matrix mcompanion PolynomF Rdpack sarima xts zoo]; };
   pcutils = derive2 { name="pcutils"; version="0.2.5"; sha256="1fq8gzc63951q87akjqklvi4mqy29wywg0hknw7mn5zs9bim0zdd"; depends=[dplyr ggplot2 magrittr RColorBrewer reshape2 scales tibble tidyr]; };
   pcv = derive2 { name="pcv"; version="1.1.0"; sha256="03rpfxdpinr1a6964gch0j852h96jfk4sccs4bv1pzkvv2qsnzlr"; depends=[]; };
-  pdR = derive2 { name="pdR"; version="1.9.1"; sha256="1vkgzkk5l2wjxldriqxjrkkvyyg6n3bhb69hx90ficnyy5q3z7s7"; depends=[]; };
+  pdR = derive2 { name="pdR"; version="1.9.2"; sha256="1g7qs1x4794rdkb0z25qxqyg3mgq8b4iq7fbiz51s6sjrmdwljk4"; depends=[glmmTMB lme4 pglm plm]; };
   pdSpecEst = derive2 { name="pdSpecEst"; version="1.2.4"; sha256="1sf2d7vh7a1qc0cq230an8pzg9qi9g640z0ql8x2pp9wfawfzn1f"; depends=[ddalpha multitaper Rcpp RcppArmadillo Rdpack]; };
   pda = derive2 { name="pda"; version="1.2.7"; sha256="0cdbjp6yrbqhkznsr282iyy76nzw9dz8z0gz48y12czjk9k6nvfd"; depends=[data_table glmnet httr jsonlite MASS metafor minqa numDeriv ordinal plyr Rcpp RcppArmadillo rvest survival]; };
   pdc = derive2 { name="pdc"; version="1.0.3"; sha256="0503n7aiy0qrl790yfjvpm7bbyz1i4818rlg96q0fvzb58zqmyvc"; depends=[]; };
@@ -15203,28 +15452,29 @@ in with self; {
   pdxTrees = derive2 { name="pdxTrees"; version="0.4.0"; sha256="0cw1zrkawc2wnbd2pif8732kl92qvklxvx6hnikx3siz22psvbl8"; depends=[dplyr magrittr rlang]; };
   pdynmc = derive2 { name="pdynmc"; version="0.9.10"; sha256="1zz0q3s7cj3ypqz2hp3x2hy7d0m10130qdlk501l8w9z22f7raxq"; depends=[data_table MASS Matrix optimx Rdpack]; };
   peRiodiCS = derive2 { name="peRiodiCS"; version="0.5.0"; sha256="1366gmn6qfciwcjsfnbl3hfa16ffn11g00fm0kv74ilvm3nnawk3"; depends=[Hmisc rms]; };
-  peRspective = derive2 { name="peRspective"; version="0.1.1"; sha256="1dca7592h9yp8lfj866hjzg0d48c84v2kd9l5bsvkw935wwxwg2w"; depends=[crayon dplyr glue httr jsonlite magrittr purrr rlang rlist stringr tibble]; };
   peacesciencer = derive2 { name="peacesciencer"; version="1.1.0"; sha256="06mlz2yjihm4xbdipv167ldf8z7r0ldwfn9day5c3lphg73fym5b"; depends=[dplyr geosphere lifecycle magrittr rlang stevemisc stringr tidyr]; };
+  peacots = derive2 { name="peacots"; version="1.3.2"; sha256="1mhbch6y580pc07asm77zcwfmc99gvf7ibd0mrsgrg1mk6ybx4iy"; depends=[]; };
   peakRAM = derive2 { name="peakRAM"; version="1.0.2"; sha256="0mj7f8jqkfky61xag2km0svbgvfmif3c1d8ccav6pv1963cg3cvv"; depends=[]; };
   pearson7 = derive2 { name="pearson7"; version="1.0-3"; sha256="0vdhhds1lngaff7dkx4b1az3syqw8b22w2jskcrw0m49wp1dbbha"; depends=[]; };
   pec = derive2 { name="pec"; version="2023.04.12"; sha256="15ggf3fa1p5r0dl7k2j99cc920jvmk0p1ny0jzyrpddh8fcgwlk5"; depends=[foreach lava prodlim riskRegression rms survival timereg]; };
   pecora = derive2 { name="pecora"; version="0.1.1"; sha256="0l66brd5d24hn279ck785jy4qnxiv9lc3d1czh4f3l25d0hj99xi"; depends=[matrixStats Rcpp RcppArmadillo]; };
-  pedFamilias = derive2 { name="pedFamilias"; version="0.2.0"; sha256="1zlnm6pj1x9wb5cjl5dzyzlqyxh5k82s86b1mg7kg5q7qhhmpj9s"; depends=[pedmut pedtools]; };
+  pedFamilias = derive2 { name="pedFamilias"; version="0.2.2"; sha256="0fxwsamflw4vkw2hi0gmgkds0vx9yikda31s6fdcvnbjs1cpf1zd"; depends=[pedmut pedtools]; };
+  pedMermaid = derive2 { name="pedMermaid"; version="1.0.2"; sha256="135pmjhhg2f8fgp3x5dddfssbfkdwxq86mlpqzhfiwn9pa07xbfc"; depends=[]; };
   pedSimulate = derive2 { name="pedSimulate"; version="1.4.3"; sha256="11p7gkxzd9ajyivxnpw4mzdn4c812gihl8q0x5w6h3s9ixsk8qrl"; depends=[]; };
   pedalfast_data = derive2 { name="pedalfast.data"; version="1.0.1"; sha256="027npj067r4cv0mdgd26x6ilrfz9a0hd0yagkkl3b06nx292pba5"; depends=[]; };
-  pedbp = derive2 { name="pedbp"; version="1.0.2"; sha256="0yc6185i3jzpwkpmkm38vggyfba0pvz6hvzqfkl6ch591dvkldch"; depends=[ggplot2 scales]; };
+  pedbp = derive2 { name="pedbp"; version="2.0.0"; sha256="1cs03920am54c944ca8xif5k154zwzrvb8pa8kr0j03nxymkp7dm"; depends=[ggplot2 Rcpp RcppArmadillo scales]; };
   pedbuildr = derive2 { name="pedbuildr"; version="0.3.0"; sha256="1yq5ag62yf6qjkxvr4g0xggag0ic5gyby4y5vnhlakwn0h78yirv"; depends=[forrel glue pedmut pedprobr pedtools ribd]; };
-  pedgene = derive2 { name="pedgene"; version="3.8"; sha256="150cfqk8krrjm8v173ag06ia95n30xvx6vvxhzyf15djniidfb6b"; depends=[CompQuadForm kinship2 Matrix survey]; };
+  pedgene = derive2 { name="pedgene"; version="3.9"; sha256="18b0galqql6pci0bfy8k93p29mqsk707wz4lr72plnciqg04l5sf"; depends=[CompQuadForm kinship2 Matrix survey]; };
   pedigree = derive2 { name="pedigree"; version="1.4.2"; sha256="1b3zhjn6sl1pnkfqim6xzk6qdak6acdpim585xhjl1rbc41540qx"; depends=[HaploSim Matrix reshape]; };
   pedigreeTools = derive2 { name="pedigreeTools"; version="0.2"; sha256="048lpzg0mmbzdc5cd52ssvzlji5293xz7bpqy3cjjszwcfjppc6c"; depends=[Matrix]; };
   pedigreemm = derive2 { name="pedigreemm"; version="0.3-4"; sha256="1fy9fq5g94p7v2s0yih1kj4in5gqmip8dd96pls0k9ixbgcqj95v"; depends=[lme4 Matrix]; };
   pedmod = derive2 { name="pedmod"; version="0.2.4"; sha256="1xr98vp2s3s2cw4bjdw6156zas15jxvp9fbyz9rxd68i3zrblplx"; depends=[alabama BH psqn Rcpp RcppArmadillo testthat]; };
   pedmut = derive2 { name="pedmut"; version="0.7.1"; sha256="1wjz0mqwwvxn44lyrdnns0zsadglfs50np8sy6b0w07bpr6izlii"; depends=[]; };
   pedometrics = derive2 { name="pedometrics"; version="0.12.1"; sha256="06s1iyv2nldqqkh1n3cgl3a7ribk17kyadgfx76lpgy016fi7vz5"; depends=[lattice latticeExtra Rcpp]; };
-  pedprobr = derive2 { name="pedprobr"; version="0.9.2"; sha256="0vir7x7qm4hjpcilcsqv9rpxky6fpjig0ybjv2m9nk4jpcszh8c8"; depends=[pedmut pedtools]; };
+  pedprobr = derive2 { name="pedprobr"; version="0.9.4"; sha256="17gzrv43gz8r1y31vzmc1arkr4wvzirk64vps6d98gk0r4i5vv71"; depends=[pedmut pedtools]; };
   pedquant = derive2 { name="pedquant"; version="0.2.4"; sha256="07b2jd3fryv3jdhp5wrsycnzfwhbx55dw34lxll60zn73m4ii24w"; depends=[curl data_table echarts4r httr jsonlite lubridate PerformanceAnalytics readr readxl rvest stringi TTR xefun zoo]; };
   pedsuite = derive2 { name="pedsuite"; version="1.2.0"; sha256="1l7yyn8w1lsqlnd79vp2yaxyh6wrkxn4rm1kcbcv5bd9ivxc9k8b"; depends=[dvir forrel ibdsim2 paramlink2 pedbuildr pedmut pedprobr pedtools ribd segregatr verbalisr]; };
-  pedtools = derive2 { name="pedtools"; version="2.5.0"; sha256="0nlabc5q90qzm506a9ys0nfpr89w42p50w3vxvp8s2sxin9xfngl"; depends=[kinship2 pedmut]; };
+  pedtools = derive2 { name="pedtools"; version="2.6.0"; sha256="1df3dh0znwwp556krnfais7cs7970jzz8kgmmiiqz6c7g3acchrp"; depends=[kinship2 pedmut]; };
   peermodels = derive2 { name="peermodels"; version="0.10.3"; sha256="116xn5w7rwm9q0m7bj4z29l4hspj2nqdcxzir9dqpdqmf7z58v67"; depends=[curl httr httr2 jsonlite stringr]; };
   pegas = derive2 { name="pegas"; version="1.3"; sha256="1j1xrnwi80ycwziwcsb48sfdm2ifdzgsn8clh0ai7rvhknrb4ghh"; depends=[ape]; };
   pell = derive2 { name="pell"; version="0.1.0"; sha256="1621lnv6sii072did3kj6wapgh9iiqajayvkrmz7q86bp89405sm"; depends=[]; };
@@ -15240,33 +15490,30 @@ in with self; {
   penalizedcdf = derive2 { name="penalizedcdf"; version="0.1.0"; sha256="17r9f7n6icn2yhfy5ibr8zccr10yq5k4vgyh59fgdzzf5qk407n3"; depends=[plot_matrix]; };
   penalizedclr = derive2 { name="penalizedclr"; version="2.0.0"; sha256="1dg54h6mgy8s3bq3s4xmj4lj0z6wvf0nj5np81mfzzp6fhjqyxhm"; depends=[clogitL1 penalized survival]; };
   penaltyLearning = derive2 { name="penaltyLearning"; version="2024.1.25"; sha256="0nvh5szn27dsvdr80ldgq9d2bqvfplp4hdcwgv5f6g2lfcsmiil8"; depends=[data_table ggplot2]; };
-  pencal = derive2 { name="pencal"; version="2.1.1"; sha256="1ddiyygd6mv6qbr4z7i445hp8j0x0slxy56xz54vvdbv8l1gxlvg"; depends=[doParallel dplyr foreach glmnet lcmm magic MASS Matrix nlme purrr riskRegression survcomp survival survivalROC]; };
+  pencal = derive2 { name="pencal"; version="2.2.2"; sha256="1wafrq4qgljycdmxhgc2jgbd2ayr9h4nbvss6l5dk2fxsq7yyv6x"; depends=[doParallel dplyr foreach glmnet lcmm magic MASS Matrix nlme purrr riskRegression survcomp survival survivalROC]; };
   pencopulaCond = derive2 { name="pencopulaCond"; version="0.2"; sha256="18hjjxnd0l2ms20ddqkghfbd4as5kq2rgwqzpz4y38k6nw76x511"; depends=[doParallel fda foreach igraph lattice latticeExtra pacotest quadprog TSP]; };
   pendensity = derive2 { name="pendensity"; version="0.2.13"; sha256="1wcsib7m2161nqqrmgdvrj7lr8zq6njc9xr935hwfh3qbbgkmfjb"; depends=[fda lattice]; };
   penfa = derive2 { name="penfa"; version="0.1.1"; sha256="1r8lq4kvlwlk7q0mdzkrdm9sx7lqq4l27jfxa1zcfh50sk1qlam2"; depends=[GJRM MASS mgcv trust]; };
   penppml = derive2 { name="penppml"; version="0.2.3"; sha256="1pxfnq5z7aygd2i3qcn2nvzvbw83gp4zhy3bavir3vpjd655llc3"; depends=[collapse devtools dplyr fixest glmnet magrittr matrixStats Rcpp RcppEigen rlang]; };
   pense = derive2 { name="pense"; version="2.2.0"; sha256="1v077lmi7hs793yqv9m4ir0hd8s671714nj2gf3ya48qjmbizyg0"; depends=[lifecycle Matrix Rcpp RcppArmadillo rlang]; };
   pensim = derive2 { name="pensim"; version="1.3.6"; sha256="18z43p1iswmnvwaf3k5vhv6rzzmfn618har0a0bl9j5nfzx20rpx"; depends=[MASS penalized]; };
-  pensynth = derive2 { name="pensynth"; version="0.3.0"; sha256="1xwp53ljn6kprp7cbri7l106fvj2iil7cqpwrgm5x2521g3vwqi6"; depends=[clarabel geometry]; };
+  pensynth = derive2 { name="pensynth"; version="0.5.1"; sha256="1ph3552y3jsm9kmv68bx15xn383djq2yhc34rpvazc8dyd3impkv"; depends=[clarabel Matrix]; };
   peopleanalytics = derive2 { name="peopleanalytics"; version="0.1.0"; sha256="0ay85yxx30p4i8icn8l8ppjddiwkbw1g6ymnmvw5gnd9hgmwbrx0"; depends=[]; };
   peopleanalyticsdata = derive2 { name="peopleanalyticsdata"; version="0.2.1"; sha256="0ig65y4sl6wagzcvj8wwjw2dblb61hgbsqvp76wvxbhga1q0wnpf"; depends=[]; };
   pepe = derive2 { name="pepe"; version="1.2.0"; sha256="1ihms63crxq0k7hd2yjyxmfw0yfy668srw012vi8mf8p31jdcr3j"; depends=[dplyr ggplot2 psych tidyr]; };
   peperr = derive2 { name="peperr"; version="1.5"; sha256="0045bc206y13467kw5xh3awkwcz24sb5xmdcgh5x1w6q1cab7ygp"; depends=[snowfall survival]; };
   peppm = derive2 { name="peppm"; version="0.0.1"; sha256="1lvk1rjsx39mb93s9pclriw4fmf1sx05s59qqx5m3aqb4q8ffxkg"; depends=[Rcpp]; };
   pepr = derive2 { name="pepr"; version="0.5.0"; sha256="0q2pfsch6g3zhaj6cffg6rzmlrmzwpvny84nls6x5jjljhan4nzz"; depends=[data_table pryr RCurl stringr yaml]; };
-  peptider = derive2 { name="peptider"; version="0.2.2"; sha256="109z81x6jcsx2651lclff7ak55zb1i89pyi58rxri40aamx4b1x2"; depends=[discreteRV dplyr plyr]; };
   peptoolkit = derive2 { name="peptoolkit"; version="0.0.1"; sha256="067x3v8m3ph2mqcglbd2h4y7xsslcvdr5iailiqxzfqg77mcqxx6"; depends=[caret dplyr Peptides stringr]; };
-  pequod = derive2 { name="pequod"; version="0.0-5"; sha256="0mwrgyrxgiifpnpy15qxpdrdmd7dxqihccrnj5nh8fq9fvwymamg"; depends=[car ggplot2]; };
   perARMA = derive2 { name="perARMA"; version="1.7"; sha256="1d3gg5yb2gj3mfmk72lps40hkiaf65wv7zhhgxf918kqyqi5zhs2"; depends=[corpcor gnm matlab Matrix signal]; };
   peramo = derive2 { name="peramo"; version="0.1.3"; sha256="0ngzf6piglr00r4i1m3r9mvlw67hs96lbfxv832vwisf631fdvlf"; depends=[dplyr emmeans lme4 magrittr parameters]; };
   perccalc = derive2 { name="perccalc"; version="1.0.5"; sha256="14557k7khc3l5m0vlam0fvbsb6p78v9gfcnx5ksxcvrab28xj7p3"; depends=[multcomp tibble]; };
-  performance = derive2 { name="performance"; version="0.11.0"; sha256="03zs162lah8yv2x2q829ifc3jwy7m89r6md4ildjz8qmfjf0js82"; depends=[bayestestR datawizard insight]; };
+  performance = derive2 { name="performance"; version="0.12.0"; sha256="0py6b1mix26z7fmarya7gfa9bwb8ymsr7z78ag8kld6ih3slga7z"; depends=[bayestestR datawizard insight]; };
   performanceEstimation = derive2 { name="performanceEstimation"; version="1.1.0"; sha256="08jx2zl6xh0rp54xa70gb717wbfdzfrx9b47i3b3ly41qaf85vrc"; depends=[dplyr ggplot2 parallelMap tidyr]; };
-  pergola = derive2 { name="pergola"; version="1.0"; sha256="1650ipp2b455xdkznwm7bnxvimad7nbyr9i1lg2vdh64j1qfh7gl"; depends=[seriation]; };
   periscope = derive2 { name="periscope"; version="1.0.4"; sha256="0w7p8clpaa605jcyvlkj86w8l92pgvilifwnagqj3x1nqaxgyhw3"; depends=[DT fresh ggplot2 lubridate shiny shinyBS shinydashboard writexl yaml]; };
   periscope2 = derive2 { name="periscope2"; version="0.2.3"; sha256="00zjap5l8aqyn6ykf3vmhsgiahkkgzkakjzc7z0wlm5ksv0cskdm"; depends=[bs4Dash DT fresh lifecycle lubridate shiny shinyFeedback shinyWidgets writexl yaml]; };
   perm = derive2 { name="perm"; version="1.0-0.4"; sha256="1sbvc9pd8j4wigblncd5jsgfnphp4kz1jy3acyivcclh79wh27jn"; depends=[]; };
-  permChacko = derive2 { name="permChacko"; version="0.2.0"; sha256="1jcgg0v7a70sw02qw6kxyc58kn4rczcrvgwsjpg9sj4ybgax42s9"; depends=[]; };
+  permChacko = derive2 { name="permChacko"; version="1.0.0"; sha256="0wnq6wgh78cp8d0xab00fb94p9sm67412dvxrki56rajjsagclqq"; depends=[]; };
   permGS = derive2 { name="permGS"; version="0.2.5"; sha256="0d2kp3c1fmnjjmsvc2qwh6m66yqvy2vrrxgv1fj2i4clsbavfa0y"; depends=[coin survival]; };
   permPATH = derive2 { name="permPATH"; version="1.3"; sha256="1xjhpndlqdafv7g5yrps2rby8by76sh6y7kg2jhwbh6bv7x0d975"; depends=[R2HTML xtable]; };
   permimp = derive2 { name="permimp"; version="1.0-2"; sha256="1zq513bkallkkqghjilvgc5iw0pcglrdyc0r2sns4ck07a3q378j"; depends=[ipred party randomForest survival]; };
@@ -15276,6 +15523,7 @@ in with self; {
   permutations = derive2 { name="permutations"; version="1.1-2"; sha256="0ilwf5d3cl6vv7dgdcdw4crlrxa6h5q4d3z17la71k3cz6ib3hvk"; depends=[freealg magic mathjaxr numbers partitions]; };
   permute = derive2 { name="permute"; version="0.9-7"; sha256="1h4dyhcsv8p3h3qxsy98pib9v79dddvrnq7qx6abkblsazxqzy7g"; depends=[]; };
   permutes = derive2 { name="permutes"; version="2.8"; sha256="1ibpjg72vfvw3yvldqka0c70ydxvl2vbpqv1cn07yiwf7l0d5f51"; depends=[plyr]; };
+  perplexR = derive2 { name="perplexR"; version="0.0.3"; sha256="19rxk8xf7pb8mbd4j6zdxwj62hfzczx8nvbh7qqlnib2w6pgdpw2"; depends=[clipr httr jsonlite miniUI rstudioapi shiny]; };
   perry = derive2 { name="perry"; version="0.3.1"; sha256="0c3i9dc6hfdjfkjq2p630w6l1pz21mmqb8p0ikv6m159cfl3i3nq"; depends=[ggplot2]; };
   perryExamples = derive2 { name="perryExamples"; version="0.1.1"; sha256="1abfrri0lq7iwdlk1qfzlq8378xpyvzfwcg1i18rmndfwsyyihjp"; depends=[lars perry quantreg robustbase]; };
   persDx = derive2 { name="persDx"; version="0.5.0"; sha256="14lafg5xhpp7m2shhf7ymfikl83ldqzssji61vwgqhvk78kaw3dc"; depends=[pROC survivalROC]; };
@@ -15290,6 +15538,7 @@ in with self; {
   perutimber = derive2 { name="perutimber"; version="0.1.0"; sha256="119zilijflhj8a9hn4swdpgy99ffa9n7b53wphgi4641hlnlpif5"; depends=[lifecycle]; };
   pesel = derive2 { name="pesel"; version="0.7.5"; sha256="06d10yzarnfifvdx6lch4fpag5qignjpij513kip1d9afrs3gm73"; depends=[]; };
   pestr = derive2 { name="pestr"; version="0.8.2"; sha256="15w89cipky9di4csbp0cbw7s3qslr5mk94wivps77i3k0j9ys74g"; depends=[curl DBI dplyr httr jsonlite magrittr readr rlang RSQLite tidyr]; };
+  petersenlab = derive2 { name="petersenlab"; version="1.0.0"; sha256="1333k1kcy1ih9z09bl37zalsqrgf2xkqkqnsm28clc0r5np8df1d"; depends=[digest dplyr ggplot2 Hmisc lavaan mitools mix mvtnorm nlme plyr psych RColorBrewer reshape2 scales stringr tidyselect viridisLite xtable]; };
   petitr = derive2 { name="petitr"; version="1.0"; sha256="0i13zhdrdka0ij0khdzj6ylvvcn4wxvplb8a368i1s64cpgak30c"; depends=[]; };
   petrinetR = derive2 { name="petrinetR"; version="0.3.0"; sha256="0s67clfpphwxx8lyb2559sk6i6a5zmxdds0pzfj23blbacnlk16c"; depends=[DiagrammeR dplyr lifecycle purrr visNetwork xml2]; };
   pewdata = derive2 { name="pewdata"; version="0.3.2"; sha256="1a4ci8hzpmwxs48lsppswcwkxv72yn44w486m9izwvx8wr1nlh2d"; depends=[foreign magrittr purrr rio RSelenium stringr]; };
@@ -15304,7 +15553,7 @@ in with self; {
   pgam = derive2 { name="pgam"; version="0.4.17"; sha256="03sln908xwg909m3pxi6ihpq3vzb0v0mj6yac7bx29x5rxcd6psy"; depends=[]; };
   pgdraw = derive2 { name="pgdraw"; version="1.1"; sha256="1s1b1izpgryrqsjkdh3yvr137054sipj3kwdkzlx2af8xjr53f85"; depends=[Rcpp]; };
   pgee_mixed = derive2 { name="pgee.mixed"; version="0.1.0"; sha256="115vvpv54q80486i3xs2yhmfyx476cf4g1v43q6l7wj3jwzcrvbg"; depends=[copula mvtnorm Rcpp RcppArmadillo]; };
-  pgenlibr = derive2 { name="pgenlibr"; version="0.3.5"; sha256="1njc0y2pni834wj73cpvx40hw5v8ggnzmmalbrj0iw9zjn4729py"; depends=[Rcpp]; };
+  pgenlibr = derive2 { name="pgenlibr"; version="0.3.7"; sha256="1wbbm4n9ilwwa7mgb3z81nj0kh11nrgbfbc936cb95pjgs18v4h3"; depends=[Rcpp]; };
   pgirmess = derive2 { name="pgirmess"; version="2.0.3"; sha256="1c1sccpc31xxrdmvybl1xviwfwq05mdhfk2brfaf0mq8kb7p2lkn"; depends=[boot sf sp spdep]; };
   pglm = derive2 { name="pglm"; version="0.2-3"; sha256="16ghdgnpwyqgfa6z6gc93bw933dvazb3alv1867cbn7qnp2gaj3j"; depends=[Formula maxLik plm statmod]; };
   pgmm = derive2 { name="pgmm"; version="1.2.7"; sha256="08fz5la19fnzsk80d1nsqg0fd27z3bq3s8kzizj11r5k1fn95sy8"; depends=[]; };
@@ -15320,8 +15569,8 @@ in with self; {
   pharmaRTF = derive2 { name="pharmaRTF"; version="0.1.4"; sha256="1h16r4yhlm6mbwq3k24ssm70bsrg2hvykqh8dayigz5wi2nq5c1f"; depends=[assertthat huxtable purrr stringr]; };
   pharmaverse = derive2 { name="pharmaverse"; version="0.0.2"; sha256="0wvil5fswdzfvmqii5j7y81ik2bwjznywb8c9nj3yd99az96qxg4"; depends=[httr]; };
   pharmaverseadam = derive2 { name="pharmaverseadam"; version="0.2.0"; sha256="18pmbvjy4v7182kriffp733snb84inqjii6gj1g0l5ahh24k7xim"; depends=[]; };
-  pharmaversesdtm = derive2 { name="pharmaversesdtm"; version="0.2.0"; sha256="1xbpvf3xf4n94q52makvrmfjgsqg8syx0rza0g93srqnsmrka7i1"; depends=[]; };
-  pharmr = derive2 { name="pharmr"; version="0.96.0"; sha256="0kwa3jvchayx7jkfp896h0dkq2h2nw5wj0fpnqvspfj0r94pg8m1"; depends=[altair reticulate]; };
+  pharmaversesdtm = derive2 { name="pharmaversesdtm"; version="1.0.0"; sha256="0nd6v6lg8a05z83f1h2wqan5vq7p26hvkrjh36f6521aakw4if74"; depends=[]; };
+  pharmr = derive2 { name="pharmr"; version="1.0.1"; sha256="0vxaas0rrzfcia47bhqd54d2sjnwgx3djbfy9ggf2hr3cw3dz7fg"; depends=[altair reticulate]; };
   phase = derive2 { name="phase"; version="1.2.9"; sha256="12v453jn99jzvicr5xipzkgb1yqmrkv9gbpw7ykl19kakw7qnqs3"; depends=[behavr circular lubridate plotly pracma shiny shinycssloaders shinydashboard shinyFiles shinythemes signal wesanderson zeitgebr zoo]; };
   phase1PRMD = derive2 { name="phase1PRMD"; version="1.0.2"; sha256="0gr73nsp0an0ci6l86h9fw6l791jdw0b1497qi58w25zypggdyac"; depends=[arrayhelpers coda dplyr ggplot2 gridExtra kableExtra knitr MASS plyr RColorBrewer reshape2 rjags]; };
   phase1RMD = derive2 { name="phase1RMD"; version="1.0.9"; sha256="0dnyqa6jias2jqjqjpiq32jnd21ghb2shw45vdq8b5xyb8rxclwj"; depends=[arrayhelpers boot coda ggplot2 mvtnorm rjags]; };
@@ -15349,20 +15598,22 @@ in with self; {
   phia = derive2 { name="phia"; version="0.3-1"; sha256="1lsprm49njwp0gfn4knvwdq7d5lpq4irhysl8f26glcz9x929sff"; depends=[car Matrix]; };
   philentropy = derive2 { name="philentropy"; version="0.8.0"; sha256="0gmycszk86mc9clmxfdrspqh5z0g3cw2cgzaaqngxx38h68x99is"; depends=[KernSmooth poorman Rcpp]; };
   phm = derive2 { name="phm"; version="1.1.2"; sha256="05ymrynv5zzrbj3vsdrijay841hv5jbkn8c0v4l6dqndysl9xis4"; depends=[data_table Matrix NLP shiny smallstuff tm]; };
-  phoenix = derive2 { name="phoenix"; version="1.0.0"; sha256="17szlh7dqi3xd9y3knwyflsk8paypgzgrdzvzn77y8g6s5z2jnss"; depends=[]; };
+  phoenics = derive2 { name="phoenics"; version="0.1"; sha256="06312f3awzpgfhzl4ahla37hkw0nqyw8zb5yv7m25i53x0afxwr5"; depends=[blme factoextra FactoMineR lme4 tibble tidyr]; };
+  phoenix = derive2 { name="phoenix"; version="1.1.0"; sha256="1yhjbj1wgjlywa965d89pzk9c8gm3bjaapmi2dpdf7nzj9114n9r"; depends=[]; };
   phonR = derive2 { name="phonR"; version="1.0-7"; sha256="0al2cbynnbvmd90lk1w1g1ppslqq0ng8vbb6bl7m4kqwd2lgv056"; depends=[deldir plotrix splancs]; };
   phonTools = derive2 { name="phonTools"; version="0.2-2.2"; sha256="0r5ylbxvzpa23yys4rxdlglfc5jq997ziw6yf8v9jyavy4p1ppkx"; depends=[]; };
   phonenumber = derive2 { name="phonenumber"; version="0.2.3"; sha256="1gwh7cg1zyy197sj16wcxqyz2rx5z83cd4rwmf22ycpgvz2dwzw9"; depends=[]; };
+  phonfieldwork = derive2 { name="phonfieldwork"; version="0.0.14"; sha256="130gcpcblniasnqjjp085225ccq98wyqhcknxcn0iqs4v6m59dyc"; depends=[mime phonTools readr rmarkdown tuneR xml2]; };
   phonics = derive2 { name="phonics"; version="1.3.10"; sha256="1g4gmfz190xaj800gawl79fzhmgimssa31kqzw8a70scp5psz3fw"; depends=[BH data_table Rcpp]; };
-  phosphoricons = derive2 { name="phosphoricons"; version="0.2.0"; sha256="0g9qqgxnzi773mjrrzvlykmvqb7dpi2gxc999arbxkdnbp1lv463"; depends=[htmltools]; };
-  photobiology = derive2 { name="photobiology"; version="0.11.1"; sha256="014192fikcb9q0bb0d8q7qxrw47kziwhfp2fbskh6n0npi2djvay"; depends=[dplyr lubridate plyr polynom rlang splus2R stringr tibble tidyr zoo]; };
+  phosphoricons = derive2 { name="phosphoricons"; version="0.2.1"; sha256="0p14gw09im5zzpsfl0dr9xpcs0c0585flrk3hv2k62ww5n9wcymn"; depends=[htmltools]; };
+  photobiology = derive2 { name="photobiology"; version="0.11.2"; sha256="1vsxkcjng0cdjzg76k944cm01jfmq52vqqwvblsq6hr8klbcvp8k"; depends=[dplyr lubridate plyr polynom rlang splus2R stringr tibble tidyr zoo]; };
   photobiologyFilters = derive2 { name="photobiologyFilters"; version="0.6.0"; sha256="03shhykqwmmcpkzpy42kb3rn5n5kwahhjmbmspqnli5vfdvq4gim"; depends=[photobiology]; };
   photobiologyInOut = derive2 { name="photobiologyInOut"; version="0.4.27"; sha256="1z5vyh44mp4nfp3b2piv6fs8b6k963yw0zb2dgiz8qfgzsyfhnzr"; depends=[anytime colorSpec dplyr lubridate photobiology readr readxl stringr tibble tidyr tidyselect]; };
   photobiologyLEDs = derive2 { name="photobiologyLEDs"; version="0.5.2"; sha256="0868ja97wy0cj3nia31xp646yni0q56na87rz63pb33spkw36r6p"; depends=[photobiology]; };
   photobiologyLamps = derive2 { name="photobiologyLamps"; version="0.5.2"; sha256="1sl6340zblq6j3djdygqydf9x0bh5jm0mir8j1jjw2snbppy6dfl"; depends=[photobiology]; };
-  photobiologyPlants = derive2 { name="photobiologyPlants"; version="0.4.3"; sha256="0s3c3x7l3q8a8zaf9nww7w551mdracp6ljy08959p3sgmrjic4kw"; depends=[photobiology photobiologyWavebands]; };
+  photobiologyPlants = derive2 { name="photobiologyPlants"; version="0.5.0"; sha256="0va72n6fa5w0xffyyhqsmpgy4ac6mva5gxdxl907ch1d02r8zgya"; depends=[photobiology photobiologyWavebands]; };
   photobiologySensors = derive2 { name="photobiologySensors"; version="0.5.1"; sha256="0jc801c8fm5fdbs67nc8d5cga9c2cfdfrjh6i6qf60g7kxddsnsf"; depends=[photobiology]; };
-  photobiologySun = derive2 { name="photobiologySun"; version="0.4.1"; sha256="15wp8q29m5c4qplind9098ikxmm1r60lw8cm0pa48lmh33638ia3"; depends=[photobiology]; };
+  photobiologySun = derive2 { name="photobiologySun"; version="0.5.0"; sha256="00mb44wk5q8slvibr2iafwljr9w7m5qf0zk6bn5zji5i4l01gpi5"; depends=[photobiology]; };
   photobiologyWavebands = derive2 { name="photobiologyWavebands"; version="0.5.2"; sha256="0p4as2kpcjy0mc38pmjjlpngbf4568zn5rpz9rhrlc0ynarrgnzj"; depends=[photobiology]; };
   photosynthesis = derive2 { name="photosynthesis"; version="2.1.4"; sha256="1bilhqzhwxanlxvn98piysv45bpw7zh7f5w56rvllxgrpmra68pq"; depends=[checkmate crayon dplyr furrr ggplot2 glue gunit lifecycle magrittr minpack_lm nlme progress purrr readr rlang stringr tealeaves units]; };
   phrases = derive2 { name="phrases"; version="0.1"; sha256="1am90fgi8bqf4mmw797knczj7pv7py2in4rm0m6l1xz4zfjihqw3"; depends=[tidyverse usethis]; };
@@ -15371,6 +15622,7 @@ in with self; {
   phuassess = derive2 { name="phuassess"; version="1.1"; sha256="0jplj9gih32dllx2hw5aqvc9b94sbrbv66s3a5r8mdbpjh93rhng"; depends=[]; };
   phyclust = derive2 { name="phyclust"; version="0.1-34"; sha256="1wzmd02ng7zphn97xdra3hgivrxqpizqcy5kpg45sk7jx4q7016j"; depends=[ape]; };
   phyext2 = derive2 { name="phyext2"; version="0.0.4"; sha256="0j871kgqm9fll0vdgh071z77ib51y8pxxm0ssjszljvvpx1mb8rb"; depends=[ape phylobase]; };
+  phylepic = derive2 { name="phylepic"; version="0.2.0"; sha256="16ll8w5zsdiw48rhz3gl3svp7xiwjap0bwy6hpjpyvsk6dzjx3mi"; depends=[ape cli cowplot dplyr forcats ggnewscale ggplot2 ggraph igraph rlang scales tidygraph vctrs]; };
   phylin = derive2 { name="phylin"; version="2.0.2"; sha256="0v6fyk2prja448vdi7ipwzws28fjfi188pfncjf9mhn8jrgpfxl6"; depends=[]; };
   phyloTop = derive2 { name="phyloTop"; version="2.1.2"; sha256="1f7sr0qp5i0kj1j2xr7fwpkjnpfnpdjy51dx33yz2q8jmn2axxdf"; depends=[ape igraph NHPoisson phylobase]; };
   phylobase = derive2 { name="phylobase"; version="0.8.12"; sha256="084gfzq51acmvzbsfpkqv3kgghdbncnwr008f95yf5b2vihcm0cv"; depends=[ade4 ape Rcpp rncl RNeXML]; };
@@ -15380,11 +15632,11 @@ in with self; {
   phylogram = derive2 { name="phylogram"; version="2.1.0"; sha256="1p4h5pirc0m5pzc18q0jk3mcmb5n48gdf9abz03vml3a209xxl2v"; depends=[ape]; };
   phylolm = derive2 { name="phylolm"; version="2.6.2"; sha256="04pz7i44s8w6py4nk2zilzjlkrf1c5dbb6jij7zfkk49hvslbynn"; depends=[ape future_apply]; };
   phylometrics = derive2 { name="phylometrics"; version="0.0.1"; sha256="1pmr6l3wmaf91wdlsc5m63l07fibngnly2qzkma0rdi463ii03il"; depends=[mvtnorm]; };
-  phylopath = derive2 { name="phylopath"; version="1.2.1"; sha256="1s00sj9wmmq554lx5s55akznad80vhzs546fqsa0fzz20pnshs8n"; depends=[ape future_apply ggm ggplot2 ggraph igraph MuMIn phylolm purrr tibble]; };
+  phylopath = derive2 { name="phylopath"; version="1.3.0"; sha256="1a99b55xi28d0nygnb6y4a1n9y28zjz2sw6k0hfv09kb3xzr03wy"; depends=[ape future_apply ggm ggplot2 ggraph igraph phylolm purrr tibble]; };
   phyloraster = derive2 { name="phyloraster"; version="2.1.0"; sha256="0xildxiv8k2hrxdp0zkf939zbag62griq1ksalq0vfb32sb5l106"; depends=[ape SESraster terra]; };
   phyloregion = derive2 { name="phyloregion"; version="1.0.8"; sha256="10i5s3dv71nr0m3wmph2rynzg9zj8xqzb6a25r5kj66r8v91jz3d"; depends=[ape betapart clustMixType colorspace igraph maptpx Matrix phangorn predicts smoothr terra vegan]; };
   phylosamp = derive2 { name="phylosamp"; version="1.0.1"; sha256="1y48c4qjcxcxia2ggp2dfi051z8zpp0a0ks3a7h69gsw34vh9kd7"; depends=[cli lifecycle rlang]; };
-  phylosem = derive2 { name="phylosem"; version="1.1.3"; sha256="13yyvja5ayznbk751l0al2j0d7jpbv0jfkqrsfw73913r0b6w6kb"; depends=[ape phylobase phylopath RcppEigen sem TMB]; };
+  phylosem = derive2 { name="phylosem"; version="1.1.4"; sha256="0x93v0316xd79ab0pdc0w4pb4ljds89ihpp7a61kfdla7v2548bj"; depends=[ape phylobase phylopath RcppEigen sem TMB]; };
   phyloseqGraphTest = derive2 { name="phyloseqGraphTest"; version="0.1.1"; sha256="0kp7ll92zcgzjlipp75xz0x1jiyp6d96qg8nzpj8f3y4dvhkppf5"; depends=[ggnetwork ggplot2 igraph phyloseq]; };
   phylosignal = derive2 { name="phylosignal"; version="1.3.1"; sha256="13gahqnxvqzvyr4x1aq3cq08832ljizsa5c71hf44175dfmdz5cd"; depends=[adephylo ape boot DBI igraph phylobase Rcpp RcppArmadillo]; };
   phylotate = derive2 { name="phylotate"; version="1.3"; sha256="092kvn32j06vm8ilwjkgidcz11r3qhsmi0cb0g0nnykw0a0vii4p"; depends=[]; };
@@ -15393,9 +15645,8 @@ in with self; {
   phyr = derive2 { name="phyr"; version="1.1.0"; sha256="0jvjxvxx2nz9ra9vp00bmm3dxr2am4zs8cvxij8w4jjyskznxc96"; depends=[ape dplyr gridExtra latticeExtra lme4 Matrix mvtnorm nloptr Rcpp RcppArmadillo tidyr]; };
   phyreg = derive2 { name="phyreg"; version="1.0.2"; sha256="0m1psq79zl7h8791pl8g6i0ybda7vgddza8r9mwqhg4sw1q4bzcp"; depends=[]; };
   physiology = derive2 { name="physiology"; version="1.2.1"; sha256="1z7xymwgj7bqn0yvcz3q8pvwhpr5vx5qd0x8sayal1vgpqc0nccb"; depends=[Rcpp]; };
-  phytoclass = derive2 { name="phytoclass"; version="1.0.0"; sha256="0ci2xzhxzg8fmdjr1ij8r551mm5gzwcxbq328qnzkx8hyph7fbgf"; depends=[bestNormalize dplyr dynamicTreeCut ggplot2 Metrics RcppML tidyr]; };
-  phytools = derive2 { name="phytools"; version="2.1-1"; sha256="05035zv9605hr4ig42k3krijaqkbbh9fvv4w5384fz1wlgqap0c6"; depends=[ape clusterGeneration coda combinat doParallel expm foreach maps MASS mnormt nlme numDeriv optimParallel phangorn scatterplot3d]; };
-  piRF = derive2 { name="piRF"; version="0.1.0"; sha256="04k09ylc6hqw57dlv7sfnisn1167dr550y1j9xl7prvlf3jksg06"; depends=[Rdpack]; };
+  phytoclass = derive2 { name="phytoclass"; version="1.2.0"; sha256="12b1xmzwcp90km4irjsrnks44b1rd82p8yn9cn4m6hsaiq6mb45c"; depends=[bestNormalize dplyr dynamicTreeCut ggplot2 Metrics RcppML tidyr]; };
+  phytools = derive2 { name="phytools"; version="2.3-0"; sha256="10fh8svaxdk7s9abbzih9pj6carmv4r6fzbxlfafygxyjnk20c4p"; depends=[ape clusterGeneration coda combinat DEoptim doParallel expm foreach maps MASS mnormt nlme numDeriv optimParallel phangorn scatterplot3d]; };
   piar = derive2 { name="piar"; version="0.7.0"; sha256="04m2xcym1pm0v6riz18mdfjzhgw9hpi67djym2a15970av15ld9l"; depends=[gpindex Matrix]; };
   picClip = derive2 { name="picClip"; version="0.1.0"; sha256="1gxl9v39zm2hx04rdfnnbrg6q5rnpzj7aybva6zxh3skfi0dbidr"; depends=[base64enc htmltools shiny stringr testthat]; };
   picR = derive2 { name="picR"; version="1.0.0"; sha256="0x5a9qgn66w06sl2c448ricby1bqiw3cpli1mnpslanym7m60nsb"; depends=[]; };
@@ -15405,7 +15656,7 @@ in with self; {
   pid = derive2 { name="pid"; version="0.50"; sha256="05s3xqf95d4avh7gkr49jsm8jzacbv694c3wgppkkc40zip6vkc7"; depends=[DoE_base FrF2 FrF2_catlg128 ggplot2 png]; };
   piecemaker = derive2 { name="piecemaker"; version="1.0.2"; sha256="15zk36cpip49286djl45qqdfbj4w3yc6if1vk4bqphrascrg2val"; depends=[cli glue rlang stringi stringr]; };
   piecepackr = derive2 { name="piecepackr"; version="1.13.10"; sha256="1pplmwgi0wyp4qx6arlh96qiqxhlwb77g57bx70r10p99pfmjhyn"; depends=[gridGeometry grImport2 jpeg png purrr R6 rlang stringr tibble]; };
-  piecewiseSEM = derive2 { name="piecewiseSEM"; version="2.3.0"; sha256="0f1ya6p85iai52cdm510zm6qvkpsfkn48948q8lz9v6ykz59v5h2"; depends=[car DiagrammeR emmeans igraph lme4 MASS multcomp MuMIn nlme performance]; };
+  piecewiseSEM = derive2 { name="piecewiseSEM"; version="2.3.0.1"; sha256="0cgzvfcc0pwz4qvdmx7xj5wl8cki2ss0kjmlqz2kmxklfiz3y5c0"; depends=[car DiagrammeR emmeans igraph lme4 MASS multcomp MuMIn nlme performance]; };
   piggyback = derive2 { name="piggyback"; version="0.1.5"; sha256="1vkawf3jk8ddzapgvbixzq2kswnprfpjkvinby4z5x9gg535lfwq"; depends=[cli fs gh glue httr jsonlite lubridate memoise]; };
   pillar = derive2 { name="pillar"; version="1.9.0"; sha256="1k3sp37dpn46d2xbq621alpvzgnm06x5qb87nk169y47q23b8gpj"; depends=[cli fansi glue lifecycle rlang utf8 vctrs]; };
   pim = derive2 { name="pim"; version="2.0.2"; sha256="0kwlm6n23ccs0jz4plsqprg6inj3qv74zhvg9gpxyj3ksvdxp58i"; depends=[BB nleqslv]; };
@@ -15420,16 +15671,16 @@ in with self; {
   pinterestadsR = derive2 { name="pinterestadsR"; version="0.1.0"; sha256="0fjnb9kp3s3v7xp8cwrdljms6vwldq3n37lz5ly0j6wsw4p4ssx5"; depends=[jsonlite]; };
   pinyin = derive2 { name="pinyin"; version="1.1.6"; sha256="0rw9qd5hbcmpi30vdqs31ijy37d8jlpqv0xif2nndb8cwj8x5bw2"; depends=[data_table splitstackshape]; };
   pipe_design = derive2 { name="pipe.design"; version="0.5.1"; sha256="0r0szkdzifxmnnbr6675w8ij4zwqgxj3gwahc7a74mxr51f7qh8j"; depends=[ggplot2 gtools xtable]; };
-  pipeGS = derive2 { name="pipeGS"; version="0.4"; sha256="0ki4i70r5f195b4jfv3hxlxz3zj57mhy2yf4984bwr11impilz5w"; depends=[]; };
   pipeR = derive2 { name="pipeR"; version="0.6.1.3"; sha256="16lj227x24pviqb4dcrj7a55l31p5mm0cbwsb6m3y3n6k5wcd2nh"; depends=[]; };
   pipebind = derive2 { name="pipebind"; version="0.1.2"; sha256="0z9xs4q06bis9xmzx260c0jn7v5vwvsrjlq32xd42vp56m0f63vw"; depends=[]; };
   pipefittr = derive2 { name="pipefittr"; version="0.1.2"; sha256="0pzd7f0rhn0rydncki666zlajdwyiay3apa17cb0xy5454d99mvh"; depends=[magrittr miniUI rstudioapi shiny stringr]; };
   pipeliner = derive2 { name="pipeliner"; version="0.1.1"; sha256="1cyyd1bin89dh0zrhic3i541bj8nnaphg6jq2jqkhnxn2nvax11g"; depends=[]; };
+  pipenostics = derive2 { name="pipenostics"; version="0.2.0"; sha256="1pqv5jz3dm5k7ldvja7h5s8zd0mbgm1dbkfmfppnxhv2nmnzm3p1"; depends=[checkmate iapws]; };
   piqp = derive2 { name="piqp"; version="0.2.2"; sha256="0cipmcbxfyply01kccv0bycip4lcg46s15g97fms8qijhpwi2n3c"; depends=[Matrix R6 Rcpp RcppEigen]; };
   piratings = derive2 { name="piratings"; version="0.1.9"; sha256="0krrcf2bwicdf9fn657vkcjg5zliwi82hw3xmaqi46mdix8896gh"; depends=[ggplot2]; };
   pisaRT = derive2 { name="pisaRT"; version="2.0.2"; sha256="1dpskdi4kd9zajj2pl7n686sd2w8kai7zilrwsrcfgl1dkfr1m82"; depends=[]; };
   piton = derive2 { name="piton"; version="1.0.0"; sha256="1krf6zi238m275nxjlpyayv8y2drbgs2kg19dpkqm0lmlz5y5ar8"; depends=[Rcpp]; };
-  pivmet = derive2 { name="pivmet"; version="0.5.0"; sha256="15fq48grdsmgr3ximar8g45jhlbix6745965rfwl9sjwvwk1bb9q"; depends=[bayesmix bayesplot cluster corpcor MASS mclust mvtnorm rjags rstan runjags scales]; };
+  pivmet = derive2 { name="pivmet"; version="0.6.0"; sha256="0cz8grr03w29dnlhmf5r8yjcklhw6qz8rdf8ng1hdqcbp3ysplhk"; depends=[bayesmix bayesplot cluster corpcor MASS mclust mvtnorm rjags rstan runjags scales]; };
   pivotaltrackR = derive2 { name="pivotaltrackR"; version="0.2.0"; sha256="141aaanb00qc3z4mdws42zhg7j6bcd2i1gp6nf6h6h7ikkmr0v0y"; depends=[curl httr]; };
   pivotea = derive2 { name="pivotea"; version="1.0.1"; sha256="1lrxpvas2m3p25x8j9mjbvpnsz984i847knibfjpmhkwyd3ik86z"; depends=[dplyr magrittr purrr rlang tidyr]; };
   pivottabler = derive2 { name="pivottabler"; version="1.5.5"; sha256="1kf9z2ashfvgjl0sviryx2r9b9k1k9j9b9nzivr1nxm0d9x9n3yn"; depends=[data_table dplyr htmltools htmlwidgets R6]; };
@@ -15439,24 +15690,25 @@ in with self; {
   pixelpuzzle = derive2 { name="pixelpuzzle"; version="1.0.1"; sha256="0z0afcjv9wpz5fw21vhv11jx2wrl4fy5nf9q5x5adwncsdmrqjhz"; depends=[beepr cli stringr]; };
   pixels = derive2 { name="pixels"; version="0.1.1"; sha256="1vvahrajm8ys5vgfc0iyzj2a6vzvgaakkj6i0m2sy40l2w44dn0q"; depends=[htmlwidgets miniUI shiny]; };
   pixiedust = derive2 { name="pixiedust"; version="0.9.4"; sha256="17gaahjzmjgqdkjqjpa7rh3wj1wx55v032ylijqaqklpfnbn7jkq"; depends=[broom checkmate htmltools knitr labelVector magrittr reshape2 scales]; };
-  pixmap = derive2 { name="pixmap"; version="0.4-12"; sha256="1v1a1adsgh5jlvvi98j4nhb1h681s97ip76zdrga12rlsjaahfw9"; depends=[]; };
+  pixmap = derive2 { name="pixmap"; version="0.4-13"; sha256="04g74v8g9r0f3czzk4r3n0wxyg7ldgfdlh21bas7axa9l10wdnz3"; depends=[]; };
   pk4adi = derive2 { name="pk4adi"; version="0.1.3.2"; sha256="0iq34byjg5hvmg282z6ppjag5df0y0adij1d1zn32966c1mq9ad2"; depends=[data_table]; };
   pkdata = derive2 { name="pkdata"; version="0.1.0"; sha256="1kmcalidw2zidd6i8ds0k057b3187by2k8z6764va43d5garbbcv"; depends=[lubridate]; };
+  pkgGraphR = derive2 { name="pkgGraphR"; version="0.2.0"; sha256="0qmrbwgm6aclzdgpcwr2c2bvakh3rcrf9z8m5mqd9vxgjykjfgks"; depends=[DiagrammeR dplyr purrr]; };
   pkgKitten = derive2 { name="pkgKitten"; version="0.2.3"; sha256="10q0sa6l4phi04d7a2pdiy5pykg9y4c8sp3hhg6g19jbldvyhx2w"; depends=[]; };
   pkgbuild = derive2 { name="pkgbuild"; version="1.4.4"; sha256="1a72s2gg7ddjj94naiii44f3vyhky05gaa6xvdf72m1nshy88wjr"; depends=[callr cli desc processx R6]; };
-  pkgcache = derive2 { name="pkgcache"; version="2.2.1"; sha256="04g74p50dd2108jc7xll3glk0y4p3ciib8qa11956zfkj4h1bj9x"; depends=[callr cli curl filelock jsonlite processx R6]; };
+  pkgcache = derive2 { name="pkgcache"; version="2.2.2"; sha256="1qsvgdhinrz2mb4fr33pp6rm23pra6bgwzc70kjyl983zk2nrgby"; depends=[callr cli curl filelock jsonlite processx R6]; };
   pkgcond = derive2 { name="pkgcond"; version="0.1.1"; sha256="03a4blq3niw1mljzylamvmr3l43czqlww4i6n7zb0dlym9x8gs1w"; depends=[assertthat]; };
   pkgconfig = derive2 { name="pkgconfig"; version="2.0.3"; sha256="0l1qph8zyi2sic3k2qcd7vlfl7rzfh1q7z7zvjkl5f7y1x2fy3rk"; depends=[]; };
   pkgdepR = derive2 { name="pkgdepR"; version="1.0.0"; sha256="098fcj1s5rcjxmn57449f4zk9z2w4mqwxkvxxjazd1nj7wa45z8p"; depends=[dplyr magrittr scales viridisLite visNetwork]; };
   pkgdepends = derive2 { name="pkgdepends"; version="0.7.2"; sha256="09nddbcz0z5lh6aaspjvfvbp74na7693a5w3hq36p4ah2b824zmi"; depends=[callr cli curl desc filelock jsonlite lpSolve pkgbuild pkgcache processx ps R6 zip]; };
-  pkgdown = derive2 { name="pkgdown"; version="2.0.7"; sha256="0sim3fwayf4mpxqi8y9v7clnkzs56amhxsc75lc1k0zskn374f7k"; depends=[bslib callr cli desc digest downlit fs httr jsonlite magrittr memoise purrr ragg rlang rmarkdown tibble whisker withr xml2 yaml]; };
+  pkgdown = derive2 { name="pkgdown"; version="2.0.9"; sha256="186xzilh4079a6xjig3j4pdn99ipg4d5s5q1k75qclivq0b24m3f"; depends=[bslib callr cli desc digest downlit fs httr jsonlite magrittr memoise purrr ragg rlang rmarkdown tibble whisker withr xml2 yaml]; };
   pkgfilecache = derive2 { name="pkgfilecache"; version="0.1.5"; sha256="0nzikz51444s6fpr3yvzshs2wv4nja6v0a44i791i4djm1qkyibb"; depends=[curl downloader rappdirs]; };
   pkggraph = derive2 { name="pkggraph"; version="0.2.3"; sha256="1isiywgm20rypc5qr03p0k7lis76zzd96x5ncbvia644d2n13brm"; depends=[curl data_table dplyr ggnetwork ggplot2 htmltools igraph intergraph Matrix network networkD3 plyr RColorBrewer tibble]; };
   pkglite = derive2 { name="pkglite"; version="0.2.2"; sha256="1781gkzz5p1rbksyxaznqp7n0ixig8lzjg88bj3v24r0zg5wwdwc"; depends=[crayon magrittr remotes]; };
   pkgload = derive2 { name="pkgload"; version="1.3.4"; sha256="1ki6k7l7dpb6bncvvcndrv5764jb1adrzs5iaxicakfsija4pc30"; depends=[cli crayon desc fs glue pkgbuild rlang rprojroot withr]; };
   pkgmaker = derive2 { name="pkgmaker"; version="0.32.10"; sha256="0cr95vmsb4gkl917wg4wwq8jihvwasdg18qzhk2cq224lrrh8awp"; depends=[assertthat codetools digest registry stringr withr xtable]; };
   pkgndep = derive2 { name="pkgndep"; version="1.99.3"; sha256="1llpizr2wkhfgygr9fd79qxym0xcrxfvz8w5n0kwvkvlq3iqid44"; depends=[BiocManager BiocVersion brew ComplexHeatmap GetoptLong GlobalOptions hash]; };
-  pkgnet = derive2 { name="pkgnet"; version="0.4.2"; sha256="0y1b5psn680agsnyiy8yr5m5pzb1y6wsa7gms43nwgj6jjmmvgvv"; depends=[assertthat covr data_table DT futile_logger glue igraph knitr magrittr R6 rlang rmarkdown visNetwork]; };
+  pkgnet = derive2 { name="pkgnet"; version="0.5.0"; sha256="10sjvd3mwwlbj71zmdmczyrx5s95zax0w7m07nr6413c96ahny14"; depends=[assertthat covr data_table DT futile_logger glue igraph knitr magrittr R6 rlang rmarkdown visNetwork]; };
   pkgnews = derive2 { name="pkgnews"; version="0.0.2"; sha256="0kqyy1fchpcyclxh6gly23pkfcf5b3hpsq1bhj4ykzbl4bc002h2"; depends=[]; };
   pkgsearch = derive2 { name="pkgsearch"; version="3.1.3"; sha256="0b4w6sk65r77sfkvnyirxk0mpikqladi14pmc9sqhfcjbwvqgjx7"; depends=[curl jsonlite]; };
   pkgverse = derive2 { name="pkgverse"; version="0.0.1"; sha256="0lsv7s9vsjvfpy19nxbdlbm363j01wwqqnrp0nlrik590hfq4w83"; depends=[devtools usethis]; };
@@ -15470,20 +15722,21 @@ in with self; {
   plan = derive2 { name="plan"; version="0.4-5"; sha256="0p81pzysbl58580393hw90w5svqiva9yvcwlmx247fld83lbh9qq"; depends=[]; };
   planets = derive2 { name="planets"; version="0.1.0"; sha256="01zh7lgaykr9p186yy0vksn2pmc69b3xxh78w7z6wclvqjb7zh1p"; depends=[]; };
   planningML = derive2 { name="planningML"; version="1.0.1"; sha256="1s9lf43kkiciqkrcyq9icxdqfs8a1za60pwpbxnrdsa7gzf76i29"; depends=[caret dplyr glmnet lubridate Matrix MESS pROC]; };
-  planr = derive2 { name="planr"; version="0.3.0"; sha256="0v2lb7py5wmdcq6xqv4yaqqh0zncxv9hmcfw7k87zlygqnqx6xzk"; depends=[dplyr lubridate magrittr RcppRoll]; };
+  planr = derive2 { name="planr"; version="0.4.1"; sha256="0qk8m235qja26g02rkg4sla6998mswqsy3hjwq39zdsmh88zy6bi"; depends=[dplyr lubridate magrittr RcppRoll tidyr]; };
   planscorer = derive2 { name="planscorer"; version="0.0.1"; sha256="0jyjbi36bn6biw6h99w6s8zx7wllx5argfhhx8lqq5wmh9vb8vl1"; depends=[cli curl dplyr fs httr2 jsonlite purrr readr rlang sf stringr tibble tidyr]; };
   plantTracker = derive2 { name="plantTracker"; version="1.1.0"; sha256="0qn07pb84j110zrml24gwb27za4wdxn0a4yfhc0c1174fipl6az1"; depends=[igraph Matrix sf units]; };
   plantecophys = derive2 { name="plantecophys"; version="1.4-6"; sha256="1qf9a38n8nvvz8dvqra9mdsmkbkhxymjrin0wfis8g1ndf1f406c"; depends=[]; };
   plantecowrap = derive2 { name="plantecowrap"; version="1.0.4"; sha256="0syxf63xy5whzw03ys5cxyw7689mr7ihgmqddv53jb8rlbwm84p8"; depends=[ggplot2 minpack_lm plantecophys tidyr]; };
+  plantphysioR = derive2 { name="plantphysioR"; version="1.0.0"; sha256="15hp22b1h37dp0llbifz369rdaqzn0jl9dw07z4c4j0jnmr50h8h"; depends=[]; };
   plaqr = derive2 { name="plaqr"; version="2.0"; sha256="15pdb57123m3cahvcsyrrvxjwxvs2f389yxip91gjxn68jf6cx1l"; depends=[quantreg]; };
-  plasma = derive2 { name="plasma"; version="1.0.0"; sha256="0vxgs0vicpd39ynlnc1xpvimb4327njqlasm9xc5ccffbxnywg36"; depends=[beanplot oompaBase pls plsRcox Polychrome survival viridisLite]; };
+  plasma = derive2 { name="plasma"; version="1.1.3"; sha256="02ygj3sjjds6iyh1d2jz8ifqc4m31zslplsmf88c8q8l67ilvrhl"; depends=[beanplot oompaBase pls plsRcox Polychrome survival viridisLite]; };
   plasso = derive2 { name="plasso"; version="0.1.2"; sha256="09pc210wb98xnhm9wxsqvf217gysj9c2piwwhzxdp3lxb3my533x"; depends=[doParallel foreach glmnet iterators Matrix]; };
   plater = derive2 { name="plater"; version="1.0.4"; sha256="0k2ha44ydcf180y44cgxd1haq55k96df39lahs6fji04imh75fii"; depends=[dplyr rlang]; };
   platetools = derive2 { name="platetools"; version="0.1.7"; sha256="1y4ih36y8z32pqd3cjz2qwysg4c8d6lqdgdb0pixi4i3nxsxq85b"; depends=[ggplot2 RColorBrewer]; };
   platowork = derive2 { name="platowork"; version="0.0.1"; sha256="09ps20lqli50nhhd3368fwf8cjsbshn428fbbbckbxnynxk5cwsy"; depends=[]; };
   plattice = derive2 { name="plattice"; version="1.0"; sha256="00kc0ymrdr0glxzix1hrwn2vxnkzvq6ji4hkd1fjp5p2fws9ymfq"; depends=[ggplot2]; };
   play = derive2 { name="play"; version="0.1.3"; sha256="0ys8z84ap4v37ifz84q18dms5b0rqin6dvb6av0vl5rjpbgpvbhd"; depends=[dplyr forcats ggplot2 purrr stringr tibble tidyr worldfootballR]; };
-  pldamixture = derive2 { name="pldamixture"; version="0.1.0"; sha256="14jvlfpgw687g6746wkz6x3inqnmghjd692z5qddlxxw1fc9qp7j"; depends=[survival]; };
+  pldamixture = derive2 { name="pldamixture"; version="0.1.1"; sha256="0gqk17n8vrbfxzyqfmxyw53dh7dakcgyhgg27k5mcby6mkc42yhb"; depends=[survival]; };
   plde = derive2 { name="plde"; version="0.1.2"; sha256="1g1b1sgyfxgfkjcr3sdkan8jd6r7yyi0izc83vyj11bdk08jx22h"; depends=[]; };
   pleLMA = derive2 { name="pleLMA"; version="0.2.1"; sha256="1n6q4x8qv00j0hikzzr600xgikhr462zm73zllb9n0valhmzy18z"; depends=[dfidx mlogit]; };
   pleio = derive2 { name="pleio"; version="1.9"; sha256="1p2fksf026wv8cr6scdg9pclzrbamjf9nl1s0bpr7wrggjw67n0q"; depends=[Matrix rms]; };
@@ -15496,7 +15749,7 @@ in with self; {
   plink = derive2 { name="plink"; version="1.5-1"; sha256="0rn2i9i8af9aq0xgxhpcdchs2952lq2d2sg8x3js0zi3vcml76k0"; depends=[lattice MASS statmod]; };
   plinkFile = derive2 { name="plinkFile"; version="0.2.1"; sha256="1vbhgwb08bbq4pmagrrn6zl1aw5cqcnfvicajj5c4y5qjm6y7s0m"; depends=[]; };
   plinkQC = derive2 { name="plinkQC"; version="0.3.4"; sha256="0l5gf7wf33fhzby0n2qzph02v7an2gj2dji1i129hxsxqnynx7dy"; depends=[cowplot data_table dplyr ggforce ggplot2 ggrepel igraph optparse R_utils sys UpSetR]; };
-  plm = derive2 { name="plm"; version="2.6-3"; sha256="00scwxk8aw9s85ls3igspd7rk2jz3lk4irrgmy2crhpcbf3hpays"; depends=[bdsmatrix collapse Formula lattice lmtest MASS maxLik nlme Rdpack sandwich zoo]; };
+  plm = derive2 { name="plm"; version="2.6-4"; sha256="0xpd6r75g2mc9dsf8ckafbd3pjyrvlyrh12izj9yaqfw4v0vr9fx"; depends=[bdsmatrix collapse Formula lattice lmtest MASS maxLik nlme Rdpack sandwich zoo]; };
   pln = derive2 { name="pln"; version="0.2-2"; sha256="03jjmfr1dwz6p652y917g9rv2alyam9ws6xh9ig02d3w78b0rsv9"; depends=[]; };
   plnr = derive2 { name="plnr"; version="2022.11.23"; sha256="1qi24zpvclamxxfppgll7rcmq7fysxf8chk6wlkwkzmjl5c3cs4n"; depends=[data_table digest foreach fs glue purrr R6 usethis uuid]; };
   plogr = derive2 { name="plogr"; version="0.2.0"; sha256="0a8dhzlna79ggyhfr0nncgh15a9n6r0dsz664pz0ah323wpblqqf"; depends=[]; };
@@ -15513,6 +15766,7 @@ in with self; {
   plotROC = derive2 { name="plotROC"; version="2.3.1"; sha256="15jvn1dlx8qh5ghnkhqyc49frw6rp58ikpjs3ga8mjxrqyz7wb1g"; depends=[ggplot2 gridSVG plyr rlang shiny]; };
   plotSEMM = derive2 { name="plotSEMM"; version="2.4"; sha256="0fircrayhz92zvkigkyb1zpn07bvssqs1ip15p926zj3rl77fqgy"; depends=[MplusAutomation plotrix plyr Rcpp shiny]; };
   plotbb = derive2 { name="plotbb"; version="0.0.6"; sha256="0vyp558i0gvr9r3xldkd4ldkd6wx95w7xkkas8cyw0s7i13qqq60"; depends=[magrittr rlang scales]; };
+  plotcli = derive2 { name="plotcli"; version="0.1.0"; sha256="0qk78gagn5i6zs4srr3q2kzhi5vlyxhmxgwg2ah9c24asnfa3hyg"; depends=[crayon ggplot2 knitr R6 rlang rmarkdown stringr]; };
   plotdap = derive2 { name="plotdap"; version="1.0.3"; sha256="151vaz61ycm95sazbn7d03wr7hcmvcmbz12rjls334lp38735954"; depends=[cmocean dplyr gganimate ggnewscale ggplot2 lazyeval lubridate magrittr mapdata maps raster rerddap scales sf tidyr viridis]; };
   plotfunctions = derive2 { name="plotfunctions"; version="1.4"; sha256="0asmxw8283fpvl83h478j5nyg59xqifqaa8f2f6l199gvvswhhg2"; depends=[]; };
   plothelper = derive2 { name="plothelper"; version="0.1.9"; sha256="1ibznjqs4gpbq1vx79gg0fkm842xfqgpmmgqji2m6s712j3bdn5k"; depends=[farver ggfittext ggplot2 gridExtra magick plyr scales]; };
@@ -15531,26 +15785,28 @@ in with self; {
   plsRbeta = derive2 { name="plsRbeta"; version="0.3.0"; sha256="0xikaxg1n298j8mm4vzzn7bfma1lmhak39aawfhp3ny3j1d8llr4"; depends=[betareg boot Formula MASS mvtnorm plsRglm]; };
   plsRcox = derive2 { name="plsRcox"; version="1.7.7"; sha256="1fkbynjlwi070yshnqcmw2f331yzr61f1mvm5dbw3iwg9ldhcbwr"; depends=[kernlab lars mixOmics pls plsRglm risksetROC rms survAUC survcomp survival]; };
   plsRglm = derive2 { name="plsRglm"; version="1.5.1"; sha256="1xpf4rz4midrl62yn39bq4ax5yl8h18kcyv2ckxis888yv5b1bqr"; depends=[bipartite boot car MASS mvtnorm]; };
-  plsVarSel = derive2 { name="plsVarSel"; version="0.9.10"; sha256="0aqg4vw16s80ajss8pjlmm9n2650srqi1v8rr7hz1mjpvzc9626g"; depends=[bdsmatrix genalg MASS MSQC mvtnorm pls praznik progress]; };
+  plsVarSel = derive2 { name="plsVarSel"; version="0.9.12"; sha256="0130hqnjwgm2l7sacxh5m98gm35qxgqwylbk42jnlp03azwqdbax"; depends=[bdsmatrix genalg MASS mvtnorm pls praznik progress]; };
   plsdepot = derive2 { name="plsdepot"; version="0.2.0"; sha256="0n2idfkgisbr6b04dcv47yy5f7j1ndxs53p5hinpghg8ikncbvwf"; depends=[]; };
   plsdof = derive2 { name="plsdof"; version="0.3-2"; sha256="1bqk98f9zyi4hvna1sfx4fwiivndlwanjaphlqa03bg6bghcj60p"; depends=[MASS]; };
-  plsgenomics = derive2 { name="plsgenomics"; version="1.5-2.1"; sha256="1cn7ljq3nmvcm5g0ifhghm52sl25fyfalp7v7r8bl4iq9vblj2wa"; depends=[boot fields MASS plyr reshape2 RhpcBLASctl]; };
+  plsgenomics = derive2 { name="plsgenomics"; version="1.5-3"; sha256="0a1vzpbjd0lyj9vzx6fav4swiv89f3aj8i82g4yj0vd83vwakrnr"; depends=[boot fields MASS plyr reshape2 RhpcBLASctl]; };
+  plsmmLasso = derive2 { name="plsmmLasso"; version="1.1.0"; sha256="0xdpscm6villr4fby19jvg60y3mc81bcj6hwavrbmnbp02b4lhcj"; depends=[dplyr ggplot2 glmnet hdi MASS mvtnorm rlang scalreg]; };
   plsmod = derive2 { name="plsmod"; version="1.0.0"; sha256="1fyv2v3jmf1hdii9z477ijy5d9gvpc3jg9cyl9lbplgc18l2pd2b"; depends=[dplyr generics magrittr mixOmics parsnip purrr rlang tibble tidyr]; };
   plsmselect = derive2 { name="plsmselect"; version="0.2.0"; sha256="044mwdqv5vw0apmx3yhn6xkdmw6baalvb8c6hhmawcs279kwi1m9"; depends=[dplyr glmnet mgcv survival]; };
   plspm = derive2 { name="plspm"; version="0.5.1"; sha256="00kbyi5qqm51wsli3h8kfshjs99wa602rbmi1jss65vw3p1jhsqs"; depends=[amap diagram shape tester turner]; };
   pltesim = derive2 { name="pltesim"; version="1.0"; sha256="0mvqp8di2gwhd9wc9kvnnpxd3hkr9b9lj6g5qlkqcbrgkq6fjahs"; depends=[coreSim ggplot2]; };
   plu = derive2 { name="plu"; version="0.3.0"; sha256="0s4k5vqgwbw7ayjhs2j8w9az7pn8km5hykkic1ii4jpdiy03c23g"; depends=[lifecycle]; };
   plugdensity = derive2 { name="plugdensity"; version="0.8-5"; sha256="1gxjr6984p4awps5syzknzjyhpnjzqshv9c3cdx4xbkp1ax3xrw9"; depends=[]; };
-  plumber = derive2 { name="plumber"; version="1.2.1"; sha256="1k0y7ylc8bld16imn86g0i0dmxmr3kmh9ax4ys0yrxqzrvji7z3g"; depends=[crayon ellipsis httpuv jsonlite lifecycle magrittr mime promises R6 rlang sodium stringi swagger webutils]; };
+  plumber = derive2 { name="plumber"; version="1.2.2"; sha256="1ycq3kjkrlx66h05g5ncvmq2cr051609xs4bzs8n49c70h6p0bpr"; depends=[crayon ellipsis httpuv jsonlite lifecycle magrittr mime promises R6 rlang sodium stringi swagger webutils]; };
   plumberDeploy = derive2 { name="plumberDeploy"; version="0.2.1"; sha256="0icl35wck94scjyqw6di2sl6fq7zlvd8hm13fw79iqr0wyrich0r"; depends=[analogsea jsonlite lifecycle ssh]; };
   plumbertableau = derive2 { name="plumbertableau"; version="0.1.1"; sha256="1r4a7c5zagqm2qiyj2k8ywal0dg5kfx17ckkv1ks8wqzkpgr3c07"; depends=[curl debugme htmltools httpuv httr jsonlite knitr later magrittr markdown plumber promises rlang stringi urltools]; };
   plumbr = derive2 { name="plumbr"; version="0.6.10"; sha256="1ncrqg8j4baqrjkd95fkdanaylwl1ygdr7xzc891gig3rknx0n1i"; depends=[objectSignals]; };
-  plume = derive2 { name="plume"; version="0.2.3"; sha256="0vrrx7jw75xqplcm1mjsxqbd4fvys8sm6r53n691kx56xcp79m0p"; depends=[dplyr glue jsonlite knitr lifecycle purrr R6 readr rlang stringr tibble tidyr tidyselect vctrs yaml]; };
+  plume = derive2 { name="plume"; version="0.2.4"; sha256="00czlz71wwj77kxppxrfvsgi23g71h5r4xbdsadqjr8jidcplhch"; depends=[dplyr glue jsonlite knitr lifecycle purrr R6 readr rlang stringr tibble tidyr tidyselect vctrs yaml]; };
+  plusCode2 = derive2 { name="plusCode2"; version="0.1.0"; sha256="0kslqzngb5y8d5x7gc1kja345f69c7azilwzcspv127k00mg4n3k"; depends=[sf]; };
   pluscode = derive2 { name="pluscode"; version="0.1.0"; sha256="1j9yr5j6mb346a5dn7v9bsppgnxdj1ryimlla4a08rv7bjyq5i6q"; depends=[httr jsonlite]; };
   plutor = derive2 { name="plutor"; version="0.1.0"; sha256="09wwv47rigjl61q2c7bhq5qa2gghklzia5pqm4vwp66v3j7nb1pn"; depends=[baizer cli dplyr ggh4x ggplot2 ggsci magrittr purrr RColorBrewer repr rlang scales stringr tibble tidyr]; };
   plyr = derive2 { name="plyr"; version="1.8.9"; sha256="00z1mvqisnzbbwcwax1gm9ilahpgp21kk4l7hqdz8fym27vygd8m"; depends=[Rcpp]; };
   pm3 = derive2 { name="pm3"; version="0.1.9"; sha256="03q36qmq9hvkws5v79c39z698fjgfpyfxz5nx7g8diy6sj834mw6"; depends=[tableone]; };
-  pmartR = derive2 { name="pmartR"; version="2.4.4"; sha256="1ns65iglnz9kpc14jnwb6z7jn0drlqnqblg8ibf4y405kv7mw3zy"; depends=[BH data_table doParallel dplyr e1071 foreach ggplot2 glmpca magrittr mvtnorm parallelly patchwork pcaMethods purrr RColorBrewer Rcpp RcppArmadillo rrcov stringr tidyr]; };
+  pmartR = derive2 { name="pmartR"; version="2.4.5"; sha256="07996a2xs3rwxaa8dw53pm07n2052lq223prqd4lbf8ijy3za765"; depends=[BH data_table doParallel dplyr e1071 foreach ggplot2 glmpca magrittr mvtnorm parallelly patchwork pcaMethods purrr RColorBrewer Rcpp RcppArmadillo rrcov stringr tidyr]; };
   pmc = derive2 { name="pmc"; version="1.0.6"; sha256="1j2qiabq2qd4i8y28s87k0jxbbvv2yhjxmxsvvh9i8gzar17p5g7"; depends=[dplyr geiger ggplot2 ouch phytools tidyr]; };
   pmcalibration = derive2 { name="pmcalibration"; version="0.1.0"; sha256="1zhg55jdf8jd92216waa2g18mvni8qh6j2idgf77k6mcwb63m9zw"; depends=[checkmate chk Hmisc MASS mgcv pbapply survival]; };
   pmclust = derive2 { name="pmclust"; version="0.2-1"; sha256="0wldf0bj406qxmlc7hsbamiak7qcwf8ixng9dfkswh511m3p05jd"; depends=[MASS pbdMPI]; };
@@ -15568,7 +15824,8 @@ in with self; {
   pmvalsampsize = derive2 { name="pmvalsampsize"; version="0.1.0"; sha256="1wrdid3rcl7h7sdgm2gxkmcb4vdzg0krkmb09bh50y7nnrq70i22"; depends=[pROC]; };
   pmwg = derive2 { name="pmwg"; version="0.2.7"; sha256="17q2w48bgk7m4jp5567ig0gvvcz14rswf36q8561ykd0kyaxq2vj"; depends=[checkmate coda condMVNorm MASS mvtnorm]; };
   pmxTools = derive2 { name="pmxTools"; version="1.3"; sha256="1is56is0xg9syfwma90wqp7rxbgcv36qcpmcxnz0dlf7ypnvqsak"; depends=[chron data_tree dplyr ggdist gghalves ggplot2 magrittr MASS patchwork PKNCA scales stringr tibble xml2]; };
-  pmxcode = derive2 { name="pmxcode"; version="0.1.2"; sha256="0qa0g3fz2dqccpf059m5jygicvl6a7qcmjn9dq0afv16y6w9074a"; depends=[bsicons bslib config dplyr glue golem htmltools htmlwidgets jsonlite magrittr markdown pillar rclipboard readr rhandsontable rlang shiny shinyAce shinyBS shinyFiles tidyr xfun]; };
+  pmxcode = derive2 { name="pmxcode"; version="0.1.3"; sha256="1zh8461zxdrp6xf7795ivgjhhjvnlyhkif8cqmijnjjylvami09g"; depends=[bsicons bslib config dplyr glue golem htmltools htmlwidgets jsonlite magrittr markdown pillar rclipboard readr rhandsontable rlang shiny shinyAce shinyBS shinyFiles tidyr xfun]; };
+  pmxcv = derive2 { name="pmxcv"; version="0.0.1.0"; sha256="0x74pjmj9335bnh2zbhidxwzq28f4a9281dhgnkbyllfq2kw2dsc"; depends=[]; };
   pmxpartab = derive2 { name="pmxpartab"; version="0.5.0"; sha256="13r4xy0jvxdwjz3gic67fzgq87v18vs7df1ggd3hq89h6f28fxar"; depends=[data_table htmltools knitr table1]; };
   png = derive2 { name="png"; version="0.1-8"; sha256="077nca3x0l6mq2g6izknzcn994bqs3nfqk7wscrjbfk2dnxzldjs"; depends=[]; };
   poLCA = derive2 { name="poLCA"; version="1.6.0.1"; sha256="05kbkyrds430v729hi56q48yfwfi5m1f371gpb4h417z5fj6137d"; depends=[MASS scatterplot3d]; };
@@ -15579,7 +15836,7 @@ in with self; {
   poibin = derive2 { name="poibin"; version="1.5"; sha256="1sxryvwwz6ldsnkzdy56p8c895s5yvpcai9ndyjv1x5q3l05wf9v"; depends=[]; };
   poilog = derive2 { name="poilog"; version="0.4.2"; sha256="0dk2c65b7aac2ak3ajgh3wa2jhqyfv1qp90flw8xcx3f5w5gyv7s"; depends=[]; };
   pointRes = derive2 { name="pointRes"; version="2.0.2"; sha256="1a3yj94rg16fbc47ahwdq17i8pganm6vg6xfl3b0glybw5f2hpkj"; depends=[DescTools dplR ggplot2 plyr TripleR]; };
-  pointblank = derive2 { name="pointblank"; version="0.12.0"; sha256="0ysd78ad00a08knw5lmd09rq7sr41p8grfq5f7f2xr487q67mzgk"; depends=[base64enc blastula cli DBI dbplyr digest dplyr fs glue gt htmltools knitr magrittr rlang scales testthat tibble tidyr tidyselect yaml]; };
+  pointblank = derive2 { name="pointblank"; version="0.12.1"; sha256="1wwb9ncji7450rbbmrh9mznl4pnpmxq8ibx785bz9dsswdglzfhq"; depends=[base64enc blastula cli DBI dbplyr digest dplyr fs glue gt htmltools knitr magrittr rlang scales testthat tibble tidyr tidyselect yaml]; };
   pointdensityP = derive2 { name="pointdensityP"; version="0.3.5"; sha256="0n7p3b77m47avbr7n85knf31m9rlp43mdl3748ysj6wvxvhnivx4"; depends=[data_table]; };
   pointr = derive2 { name="pointr"; version="0.2.0"; sha256="1qfxcyzi2sa49x00hidz054njj9mm7gkhv99faafb9x4gp3pcq0v"; depends=[stringr]; };
   poisDoubleSamp = derive2 { name="poisDoubleSamp"; version="1.1.1"; sha256="0s0x3x3f620752ggai0jlkgrg1mh53giyh92q2lpwyvawyg8nyav"; depends=[Rcpp]; };
@@ -15587,25 +15844,24 @@ in with self; {
   poisbinom = derive2 { name="poisbinom"; version="1.0.1"; sha256="0mjxg0s3nck7qrmq4bbrhwxfwr6fqml54s9k8q1mkfzlifa7qyf7"; depends=[Rcpp]; };
   poismf = derive2 { name="poismf"; version="0.4.0-4"; sha256="1pl0vxrczknfrxx70wc6wy0hjxzdk7jip9was5saxby3b5as2bhp"; depends=[Matrix]; };
   poisson_glm_mix = derive2 { name="poisson.glm.mix"; version="1.4"; sha256="02mnrrynlmcbcywmgm829kajlixwr91aj49d43pkfc3yxcnj815w"; depends=[]; };
-  poissonMT = derive2 { name="poissonMT"; version="0.3-5"; sha256="14qkc8qz3423b13gp6gsp8cbb1nv9wwjjfa4i9zc15qy5i99ha26"; depends=[checkmate MASS robcbi robustbase]; };
   poissonreg = derive2 { name="poissonreg"; version="1.0.1"; sha256="1hlp6lvag9a3yv1iapcs3r14w6y5pqdb0zwlhjw88g72amwp7g43"; depends=[dplyr generics glue parsnip purrr rlang tibble tidyr]; };
   poistweedie = derive2 { name="poistweedie"; version="1.0.2"; sha256="0afr2rzn1bdbfk2ayzrxp62zwghlpml4lvhv7kixkk8a4raxv4h3"; depends=[]; };
   pokemon = derive2 { name="pokemon"; version="0.1.3"; sha256="13j0a893w803brmwsa98x04mmz35l2vmlj1i86m0qxbjb4ysnkbb"; depends=[]; };
   polaroid = derive2 { name="polaroid"; version="0.1.0"; sha256="11i1xxvj3ik8kjpm8q1ind3qkwrgyhv0sdcynwj4wld2n6i1v2v5"; depends=[shiny]; };
-  policytree = derive2 { name="policytree"; version="1.2.2"; sha256="1xkki4x9s5h4261rdjnafaxwz7baa8pv8gzysbb3cy1gjm52sq4r"; depends=[BH grf Rcpp]; };
+  policytree = derive2 { name="policytree"; version="1.2.3"; sha256="1a0yqg754gb793k9zrhp2zb1j5lw1kv1ziv9dr7rk2zmzgs1k5pb"; depends=[BH grf Rcpp]; };
   polimetrics = derive2 { name="polimetrics"; version="1.2.1.14"; sha256="0zzqzcfmvb6a9lav5sdgzhx4637r068q3kyjqk1ykdjg2d7s7lrv"; depends=[car dplyr formula_tools ggplot2 gplots MASS purrr rlang rstatix stringr tidyverse]; };
   poliscidata = derive2 { name="poliscidata"; version="2.3.0"; sha256="1ywfhksc6gcc2xk5lp6s8nn4wib92sv7p3wq92dzabf75q6mscix"; depends=[abind car descr gplots Hmisc plotrix plyr survey weights xtable]; };
   polished = derive2 { name="polished"; version="0.8.1"; sha256="0qn7zlxw7jr0apvn23a6x00xn5fbg2c2hg6713biwsi7iqhb0amc"; depends=[automagic desc digest dplyr DT htmltools httr jose jsonlite lubridate otp purrr rlang rmarkdown shiny shinycssloaders shinydashboard shinyFeedback shinyjs shinyWidgets stringr tibble tidyr uuid yaml]; };
   polite = derive2 { name="polite"; version="0.1.3"; sha256="0k0zqmm1zd0kgmqns41gxfa8pak1k11c3zbvsr0xbqc6x1bc5xyj"; depends=[httr magrittr memoise ratelimitr robotstxt rvest usethis]; };
   politeness = derive2 { name="politeness"; version="0.9.3"; sha256="1p3d7xyyx79cq3w5qg49fc25i7v2qhfqsr938jmrnvrx5ds42i40"; depends=[data_table ggplot2 glmnet quanteda spacyr stringi stringr textir tm]; };
   politicsR = derive2 { name="politicsR"; version="0.1.0"; sha256="1msf394i70g9k2lcfmp0drq8qm138wdhbf9qaa5342z4wcasmvdv"; depends=[ineq]; };
-  polle = derive2 { name="polle"; version="1.3"; sha256="1b8hbps8nmvvb8hbcd8y6zs5wc18p9rw878s4nf9q31zi3k33h56"; depends=[data_table DynTxRegime future_apply lava policytree progressr SuperLearner survival targeted]; };
+  polle = derive2 { name="polle"; version="1.4"; sha256="11n2g4gbwvcgw49pfr7qgbfidfwliqkag3n6wxcinl44b2l6jjfi"; depends=[data_table DynTxRegime future_apply lava policytree progressr SuperLearner survival targeted]; };
   pollen = derive2 { name="pollen"; version="0.82.0"; sha256="0vmggbvacpbdz4zvn3cinip1b0ac44vgbydmsk6698hwgx9iwmfp"; depends=[dplyr lubridate purrr]; };
   pollimetry = derive2 { name="pollimetry"; version="1.0.1"; sha256="09zmcwlgzl4fnkdg2m424ibv3izzrm595c7pi4mc3bd1g8sa2ypn"; depends=[brms repmis]; };
   pollster = derive2 { name="pollster"; version="0.1.6"; sha256="0zjyy36mapg1c3fj8cav43f1x1aqg3ysf74fgsiiwqwjhdm08hpx"; depends=[dplyr forcats labelled rlang stringr tidyr]; };
   polmineR = derive2 { name="polmineR"; version="0.8.9"; sha256="0cxjy3w4k52kdjf66yysvd1yd96rv5xrzqjrkdvl4wrhxvla3202"; depends=[cli data_table DT fs jsonlite knitr lifecycle magrittr Matrix pbapply RcppCWB rlang slam stringi tm xml2]; };
-  polspline = derive2 { name="polspline"; version="1.1.24"; sha256="0mal78f79jl6cj02xabv9vqf88m4iiadmgiv3qliv117cxkc6hb6"; depends=[]; };
-  polyCub = derive2 { name="polyCub"; version="0.9.0"; sha256="0rdcb0jdfjxj09vrhsgf7jy65fffldi2dp32gh04c0mhbi38bhx9"; depends=[sp]; };
+  polspline = derive2 { name="polspline"; version="1.1.25"; sha256="18wv3v76y4xdlrz7qdp6amr0ynhyqbja1rjqmbz0lc12v56gqhr9"; depends=[]; };
+  polyCub = derive2 { name="polyCub"; version="0.9.1"; sha256="14hifd0ixppy3bg49y4kpjgvwhvz6nj43nh37hgwsy5qdifayzq7"; depends=[sp]; };
   polyMatrix = derive2 { name="polyMatrix"; version="0.9.16"; sha256="13amrjl0nsyz6d9c9xxgnlkhdiicy8rx27ds5k47r8x48386vz14"; depends=[Matrix polynom]; };
   polyRAD = derive2 { name="polyRAD"; version="2.0.0"; sha256="12qlws0d6s94rand1a7azd7yv22qzij1aqmhrvw4az0y7jy2wka4"; depends=[fastmatch pcaMethods Rcpp stringi]; };
   polySegratio = derive2 { name="polySegratio"; version="0.2-5"; sha256="0djw49mbhd7x6jr0f5qkb9akw3fw3ax4w9xv8iwa5f65q5gbxpdf"; depends=[gdata]; };
@@ -15614,10 +15870,10 @@ in with self; {
   polyapost = derive2 { name="polyapost"; version="1.7"; sha256="1inq3b8qq17w5zx2lrkrxjzb7drfajsp4qgy0194971m6x2j4cfx"; depends=[boot rcdd]; };
   polyclip = derive2 { name="polyclip"; version="1.10-6"; sha256="0qwb5w1ishbhg1nhdp8985ddvcs7ljdyrbv059hx576xmgni6brw"; depends=[]; };
   polycor = derive2 { name="polycor"; version="0.8-1"; sha256="0285rvx8238qp8dix0jq0cqq7ks8h6cjwsscbc7dx4n9nph56pzh"; depends=[admisc Matrix mvtnorm]; };
-  polyglotr = derive2 { name="polyglotr"; version="1.4.0"; sha256="0s4lb934il8h49gnjicw5iq00x7x62shiyl1rbxs0b6fc4qn2hip"; depends=[dplyr httr jsonlite magrittr purrr RCurl rlang rvest stringr tibble urltools]; };
+  polyglotr = derive2 { name="polyglotr"; version="1.5.0"; sha256="0v3ada7279i619gv5r92xnyhjgb3qyydq88b5w7mj58al1wni6cg"; depends=[dplyr httr jsonlite magrittr purrr RCurl rlang rvest stringr tibble urltools]; };
   polyhedralCubature = derive2 { name="polyhedralCubature"; version="1.1.0"; sha256="1la8cj261c4vshr4yd3vgplzv1ykrkgvlwrjm49fgzh142rk59gc"; depends=[gmp magrittr Matrix ompr qspray rcdd SimplicialCubature spray tessellation]; };
   polylabelr = derive2 { name="polylabelr"; version="0.2.0"; sha256="01b2v0l5g8nxwbd6nwqv8ahypgh6gfhd4qabg75brlj7z1iyfzf2"; depends=[Rcpp]; };
-  polymapR = derive2 { name="polymapR"; version="1.1.5"; sha256="0mc4gblzznd0md740bzrd3cpk5ikf3dms72iqq18g76yc2y8iy2r"; depends=[doParallel foreach igraph knitr MDSMap]; };
+  polymapR = derive2 { name="polymapR"; version="1.1.6"; sha256="0aschby014m0j0nrr2q4pfghhakx89jq6wn8pv2dnbfpbg779l18"; depends=[doParallel foreach igraph knitr MDSMap]; };
   polynom = derive2 { name="polynom"; version="1.4-1"; sha256="0y4j07syjwpnq5w6a1d90z6h1hjzijmm42pq0f8jk2vcn5xxn7mw"; depends=[]; };
   polypharmacy = derive2 { name="polypharmacy"; version="1.0.0"; sha256="1rimhy7z5xglkxfp3yh4vqm5g075n8g09nl4a8nxxf6cyl504gcv"; depends=[data_table doParallel foreach itertools lubridate stringr]; };
   polypoly = derive2 { name="polypoly"; version="0.0.3"; sha256="1xd5s2gj3x47dvq02lkjih6rbvmjh3hwybzwsvnq3dxvcj9jjkyw"; depends=[ggplot2 reshape2 rlang tibble]; };
@@ -15626,10 +15882,10 @@ in with self; {
   polysat = derive2 { name="polysat"; version="1.7-7"; sha256="0fpdy2yya91hz1n24j4mqiggrjjihddaia5p24phgbkw8rxqqp40"; depends=[Rcpp]; };
   polywog = derive2 { name="polywog"; version="0.4-1"; sha256="02qk1cyvkd77mwlvhj1zzzi0bmy7qxz29j2v730wp7rz4w7h5x5n"; depends=[foreach Formula glmnet iterators Matrix miscTools ncvreg Rcpp stringr]; };
   pomcheckr = derive2 { name="pomcheckr"; version="0.1.1"; sha256="0fm2v388ya7v4vrb5rvilghlf49d15jlwz0isf95ldr81a55m9ij"; depends=[assertthat dplyr ggplot2 magrittr rlang stringr tidyr]; };
-  pomdp = derive2 { name="pomdp"; version="1.1.3"; sha256="0fw8phi09c7i301v5dankplnhx0i099npsdc9b2hfqif5ykhh7f2"; depends=[foreach igraph Matrix pomdpSolve processx Rcpp]; };
+  pomdp = derive2 { name="pomdp"; version="1.2.3"; sha256="1l873a4p0fzfmgz52v57i2ccmpsrv10lvbrm7mr39qwqsaklh3bv"; depends=[foreach igraph Matrix pomdpSolve processx Rcpp]; };
   pomdpSolve = derive2 { name="pomdpSolve"; version="1.0.4"; sha256="0ywiqry0df1cjy3k8r3rzpd42rmnn578ih03qvp8qydq66bdrh3b"; depends=[]; };
   pomodoro = derive2 { name="pomodoro"; version="3.8.0"; sha256="1y7a6097jlrrgqkxhb43n5nahf4m814inhmkm1495w0k5q1zmraf"; depends=[caret gbm ipred pROC randomForest tibble]; };
-  pomp = derive2 { name="pomp"; version="5.6"; sha256="0flpd1ayh39bfalvw3w3111z5ca79rp42znfskzdy5gfh4b4wcqc"; depends=[coda data_table deSolve digest mvtnorm]; };
+  pomp = derive2 { name="pomp"; version="5.9"; sha256="1hhsv06vcqfzzb42nk0sidp9gd1larqrr3s6f5qh7hf1jv1b0d86"; depends=[coda data_table deSolve digest mvtnorm]; };
   pompom = derive2 { name="pompom"; version="0.2.1"; sha256="09jy4lrb2p71yk604ndfhqfz6znlc3bq72k42f0d1i1a8g3by8h6"; depends=[ggplot2 lavaan qgraph reshape2]; };
   pompp = derive2 { name="pompp"; version="0.1.3"; sha256="0svlzhsm1kfwgjpx2cas63jm8v5b9cxlksipv758vxlnc3jiarvk"; depends=[coda geoR Rcpp RcppEigen RcppProgress]; };
   pooh = derive2 { name="pooh"; version="0.3-2"; sha256="0qwa5j91aypasvsf4xcfbl6lz7llawdr38jiflzmfak2ad72rv7j"; depends=[]; };
@@ -15644,12 +15900,12 @@ in with self; {
   pop = derive2 { name="pop"; version="0.1"; sha256="0hbxdrkasb69x7ipddvyrzl5vvc7dd6rzj1vy7v3chg3rzgq89cj"; depends=[igraph MASS]; };
   pop_lion = derive2 { name="pop.lion"; version="1.0.1"; sha256="1rj95wwcxvsfd1smd21717y9c0672a8vnpnbdsa63pxbzdxc4kaj"; depends=[abind testthat]; };
   pop_wolf = derive2 { name="pop.wolf"; version="1.0"; sha256="113l9skpggjxjpwxibfp611z2gnjikfqh6kmj6in52sn9q4yqv83"; depends=[abind]; };
-  popEpi = derive2 { name="popEpi"; version="0.4.11"; sha256="0407vw95id6537q7kmaar0qbkdls6j9w7b2d8y957zrrd1wb43xg"; depends=[data_table Epi survival]; };
+  popEpi = derive2 { name="popEpi"; version="0.4.12"; sha256="13fasp84hxxpbn6gmfjfl1kzija7y11mvlhc77rpqnj1l5wcm1rn"; depends=[data_table Epi survival]; };
   popPCR = derive2 { name="popPCR"; version="0.1.1.1"; sha256="03ppgjmdp3rivlgqs7aq082j4rzndf9fw5aq8mzci7fvjkj7whc4"; depends=[mvtnorm]; };
   popPyramid = derive2 { name="popPyramid"; version="0.1.1"; sha256="1fvq63d0pjhpzyf6pb2v5w9wy0pskiv2n07jipg98bgyiih1w584"; depends=[dplyr ggplot2 tibble]; };
   popReconstruct = derive2 { name="popReconstruct"; version="1.0-6"; sha256="0nmf93dy2qf7z9mafpy99ry53aapbxlismn7drn732r8gvravapx"; depends=[coda]; };
   popbayes = derive2 { name="popbayes"; version="1.2.0"; sha256="1qrxjk1y52rsf203nnylpksjv2hv3x8pk2flvjlwxj5fv5335a9y"; depends=[R2jags usethis]; };
-  popbio = derive2 { name="popbio"; version="2.7"; sha256="02dbb2sinn1n8a9dg8lvf35sc8hb14c90mjymz2gk64xdysf0m2j"; depends=[]; };
+  popbio = derive2 { name="popbio"; version="2.8"; sha256="0fpf13d0h5mmi1xrxfqgz1map8v6g388kcm901ajdnsf57awbqpg"; depends=[]; };
   popdemo = derive2 { name="popdemo"; version="1.3-1"; sha256="0xvqp71spqh5khi2gdzxmj8pp71i6l2qpcgcw8s9xbqwx9w905mq"; depends=[expm MCMCpack]; };
   popgenr = derive2 { name="popgenr"; version="0.2"; sha256="164dhizka0yadzihbjqkfs5p0hknw966mq0grigs7r9ppbq9kajh"; depends=[]; };
   popkin = derive2 { name="popkin"; version="1.3.23"; sha256="07wlja7c96az0d82c3b0m1kmc04sbgp73asbaks26jwvjw4vmby5"; depends=[ape RColorBrewer]; };
@@ -15659,6 +15915,7 @@ in with self; {
   populR = derive2 { name="populR"; version="0.2.1"; sha256="1j0ip93pd5sq2rcqd0pw5c0nmi1pjjaxi5k4xk97kgwnqcq5ib7n"; depends=[dplyr Metrics osmdata rlang sf units usethis]; };
   population = derive2 { name="population"; version="0.3"; sha256="00kagbz4pr4c5z6cb5w4y9nlbjzaa2awc45z2cvrivng76376br3"; depends=[abind]; };
   populationPDXdesign = derive2 { name="populationPDXdesign"; version="1.0.3"; sha256="0p73ddv3j1s1vs4j3axnsf39n626qjv0w1qlq9p7km4s6729bhgv"; depends=[devtools ggplot2 plyr roxygen2 shiny shinycssloaders]; };
+  poputils = derive2 { name="poputils"; version="0.3.1"; sha256="1bd9zb1kmzw1xfrslnp89iw2ilgxy5vv6r918dss76lwab9qja5c"; depends=[cli cpp11 rlang rvec tibble tidyselect vctrs]; };
   porridge = derive2 { name="porridge"; version="0.3.3"; sha256="0zya6zv8rsmbwv330jmx2pz1cn97m359nb0a7cjiyjgbggygxryf"; depends=[MASS Matrix mvtnorm pracma Rcpp RcppArmadillo]; };
   port4me = derive2 { name="port4me"; version="0.7.1"; sha256="1rvp9aj0m2dbkw03xl8sa4qvl20n5smik8dbq5cj0254rwcvmahd"; depends=[]; };
   portalr = derive2 { name="portalr"; version="0.4.1"; sha256="1i241nn694nyyljldpsah1555spbhksassf7i18pmqigzpk01qix"; depends=[clipr clisymbols crayon dplyr forecast httr lubridate lunar magrittr rlang tidyr tidyselect zoo]; };
@@ -15695,13 +15952,13 @@ in with self; {
   powerCompRisk = derive2 { name="powerCompRisk"; version="1.0.1"; sha256="11xprjn9hzi8gxrsi7wivwgchg9h2apgxa63fp466ngjfy5ybxf4"; depends=[mvtnorm]; };
   powerEQTL = derive2 { name="powerEQTL"; version="0.3.4"; sha256="124mwkjf5m19znn7zdnncdc3klgqyid08kvihk0gws2y9bw0m1zs"; depends=[GLMMadaptive nlme]; };
   powerGWASinteraction = derive2 { name="powerGWASinteraction"; version="1.1.3"; sha256="1i8gfsk9qzx54yn661i4x9k7n7b6r1jd808wv1hcq7870mzyb27k"; depends=[mvtnorm pwr]; };
-  powerLATE = derive2 { name="powerLATE"; version="0.1.1"; sha256="1dmvvh7ynvr8krl5p1qbg8ib1s595vqci2r80zmwsm28jhv8ka4w"; depends=[]; };
+  powerLATE = derive2 { name="powerLATE"; version="0.1.2"; sha256="0bxwzskqc4f4f5nvzxd5dm2pd5524x68zdzhiqdp1fsfwb555rkd"; depends=[]; };
   powerMediation = derive2 { name="powerMediation"; version="0.3.4"; sha256="08zszskhd21pbjamch5q7v7vx2p78c1d53zrp31hmpxk1ymx2xf3"; depends=[]; };
   powerPLS = derive2 { name="powerPLS"; version="0.1.0"; sha256="03y06wnd8i3lkw5fakihgrb9karjfw496vfygqgl8b6fxb2nz2yw"; depends=[compositions foreach ks MASS mvtnorm nipals simukde]; };
   powerSurvEpi = derive2 { name="powerSurvEpi"; version="0.1.3"; sha256="1p1fw4jq4rxc273hmycxf4bkqm6zmfw0jdy2s65jy10q37r53ial"; depends=[pracma survival]; };
   powerbiR = derive2 { name="powerbiR"; version="0.1.0"; sha256="0b7409j55m5nnp5nm9sgij635xpm39qkm3hajg3x0x8zxvfczfz6"; depends=[AzureAuth data_table httr jsonlite]; };
   powerbydesign = derive2 { name="powerbydesign"; version="1.0.5"; sha256="006m127rc49bshgljd5d3ii6sfx24ndn2690ixj0vnqm2dp3zjnw"; depends=[gdata ggplot2 lme4 MASS plyr reshape2 stringr]; };
-  powerindexR = derive2 { name="powerindexR"; version="1.5"; sha256="1dj5mnwx1wbygxjn538niwai5yxp6wry41l33j5xip10f2lbyzc3"; depends=[]; };
+  powerindexR = derive2 { name="powerindexR"; version="1.6"; sha256="1q8g60awv2sq4fm0kd2dzrgkwfk6mjvglgwihqspapb1zv9ild4z"; depends=[]; };
   powerjoin = derive2 { name="powerjoin"; version="0.1.0"; sha256="19b7y7aqf5159x2fi5nrx179nc673qqzkv9c8kgw85hmmjzjgnb3"; depends=[cli dplyr glue purrr rlang tibble tidyr tidyselect vctrs]; };
   powerly = derive2 { name="powerly"; version="1.8.6"; sha256="0vc2wpx2b4i9vx9jvvlywq5w4dx22bn4r9fcwz123h1m09252ng8"; depends=[bootnet ggplot2 mvtnorm osqp patchwork progress qgraph quadprog R6 rlang splines2]; };
   powerpkg = derive2 { name="powerpkg"; version="1.6"; sha256="18cq3zsdvzmqjp0niq0libjk4riarmiar3h6lifq54spqgrvvxh2"; depends=[]; };
@@ -15713,21 +15970,23 @@ in with self; {
   ppdiag = derive2 { name="ppdiag"; version="0.1.1"; sha256="1p2nbkv2jsqdwwipyp3mz9cpy9lkia2cmigbcpjsa2d2i655hvs5"; depends=[]; };
   ppendemic = derive2 { name="ppendemic"; version="0.1.7"; sha256="0f9gqhkgg1vd3di1xfx0ix4is30v3abcyldpkbnj81kv60zmzcfr"; depends=[]; };
   ppgam = derive2 { name="ppgam"; version="1.0.1"; sha256="0w2jci5k0y8m7rapj8w6xq849y59m7y4fp9n3f5l6q954mbc6bv0"; depends=[evgam MASS mgcv]; };
+  ppgm = derive2 { name="ppgm"; version="1.0.3"; sha256="0fvir7fw1qzx1z0kjaaqsq13ljk5l0i4rdvpl75j6nnpd59yhyyh"; depends=[animation ape fields geiger phangorn phytools sf sp stringi]; };
   ppgmmga = derive2 { name="ppgmmga"; version="1.3"; sha256="0ms6pqhdvws6dp27mgvwdm039h6z3psgbdmy2k6wq1wqr5jbsiz1"; depends=[cli crayon GA ggplot2 mclust Rcpp RcppArmadillo]; };
-  ppitables = derive2 { name="ppitables"; version="0.5.4"; sha256="0hssk8yf8f15x7m03x71v9yrshrzgkww8xfacbbsw5mpqcghc9zl"; depends=[tibble tidyr]; };
+  ppitables = derive2 { name="ppitables"; version="0.5.5"; sha256="1wrscfgdbhnb7z0n44yw3yhw5dmr5jd7g1m69nkx61n6dfzj7mi2"; depends=[tibble tidyr]; };
   ppmHR = derive2 { name="ppmHR"; version="1.0"; sha256="1fc9rrk3ir3dq5d518ih67dvknhz1ln6668wy2mzsdndaysgm12g"; depends=[nleqslv]; };
   ppmSuite = derive2 { name="ppmSuite"; version="0.3.4"; sha256="1n83v59v5b68d0xw3yh6xrpy480857rkkwfxclbnwnh7cj14cybm"; depends=[Matrix]; };
   ppmf = derive2 { name="ppmf"; version="0.1.3"; sha256="0xphk27frlcr87jwjbgwf77c8bhv0nswmffj9ny2vd1b176bi9xn"; depends=[censable dplyr magrittr readr rlang stringr tibble tidyr zip]; };
   ppmlasso = derive2 { name="ppmlasso"; version="1.4"; sha256="082f5ij43iyfw1i864va4cdklfnv5zs4i21f1kcai2dlcqs5kc0v"; depends=[data_table lattice plyr spatstat spatstat_explore spatstat_geom spatstat_model]; };
   pps = derive2 { name="pps"; version="1.0"; sha256="0k06rkzdx07qcndqym44q6xyawdd253i3kbyqlmlavadsizp657g"; depends=[]; };
   ppsbm = derive2 { name="ppsbm"; version="0.2.2"; sha256="0y4whxv14jqx7mqxj7n427vpbxb5rkwj8xvx0mj4knnwy9v437z4"; depends=[clue gtools Rfast]; };
-  ppseq = derive2 { name="ppseq"; version="0.2.3"; sha256="0kvsspzcnpc1asvy72imifx184m102027m5r8z38v58hvmzgl8mm"; depends=[dplyr furrr ggplot2 patchwork plotly purrr tibble tidyr]; };
+  ppseq = derive2 { name="ppseq"; version="0.2.4"; sha256="1yf0pyfkb2knjn2gf36jhy0qpxwzil37s3zhp3a97cq80jza47hd"; depends=[dplyr furrr ggplot2 patchwork plotly purrr tibble tidyr]; };
   ppsr = derive2 { name="ppsr"; version="0.0.5"; sha256="0k8y8vk8y0nnp1w26h7q9xyfbdx2q61ijnwh202j76wq6znr8yva"; depends=[ggplot2 gridExtra parsnip rpart withr]; };
   pqantimalarials = derive2 { name="pqantimalarials"; version="0.2"; sha256="0azxkf1rvk9cyzr4gbp4y2vcxrxw3d4f002d5gjkvv1f4kx8faw1"; depends=[plyr RColorBrewer reshape2 shiny]; };
+  pql = derive2 { name="pql"; version="0.1.0"; sha256="10gify86gywwahxj5hzwqnbx22a42jkmry2jkz7ywfsgznzldffw"; depends=[pracma]; };
   pqrBayes = derive2 { name="pqrBayes"; version="1.0.2"; sha256="0mbhkha99qyk5hkpk13ysb0686lcn6q9vq34838fz1l7xy47mzw3"; depends=[glmnet Rcpp RcppArmadillo]; };
   pqrfe = derive2 { name="pqrfe"; version="1.1"; sha256="0apsrlgricjmv202yg1h3iz2715nmf05wcvyznnha0nil7cqg0qi"; depends=[MASS Rcpp RcppArmadillo]; };
   prWarp = derive2 { name="prWarp"; version="1.0.1"; sha256="1iibz1gjx5r51jvv1g7csir871ccl74p0jcqnx6cs78i7xg02wf6"; depends=[Morpho]; };
-  praatpicture = derive2 { name="praatpicture"; version="1.0.0"; sha256="0k00dk5yj4q05smiy2cb0im0wymapmvmcmrgr3zxhfisbm1d80np"; depends=[av crayon emuR gifski gsignal ipa phonTools rPraat rstudioapi soundgen tuneR wrassp]; };
+  praatpicture = derive2 { name="praatpicture"; version="1.2.0"; sha256="1gbarx2s59k1nz78g3g3l4mj586v75pyw16h33kwrfhhpfd3sxd7"; depends=[av bslib crayon emuR gifski gsignal ipa phonTools rPraat rstudioapi shiny shinyjs soundgen tuneR wrassp]; };
   prabclus = derive2 { name="prabclus"; version="2.3-3"; sha256="1haq8dvvi21fdnzl7ykm28sif5nv9pybir96vrqfcmy3k8500p80"; depends=[MASS mclust]; };
   pracma = derive2 { name="pracma"; version="2.4.4"; sha256="0zxsqr7f4pcr1nmbbzliihyldv091ykzajv1mbdrkycp46pz6khs"; depends=[]; };
   pracpac = derive2 { name="pracpac"; version="0.2.0"; sha256="0c9vr6lxw6yslfv8vap78mxdf10jz8rswas50ld0dnx1qrfpgliy"; depends=[fs glue magrittr pkgbuild renv rprojroot]; };
@@ -15743,21 +16002,21 @@ in with self; {
   precisePlacement = derive2 { name="precisePlacement"; version="0.1.0"; sha256="1w48k4kv3xm8br7dgbpx2rcdxjh0g0aw8xa1snqy0ig8a992804b"; depends=[]; };
   precisely = derive2 { name="precisely"; version="0.1.2"; sha256="1zzg2fgf58gjq081rklqjf8wxz8mf7rc3vyhbji3j3n6j0x125n4"; depends=[dplyr ggplot2 magrittr purrr rlang shiny shinycssloaders shinythemes tidyr]; };
   precmed = derive2 { name="precmed"; version="1.0.0"; sha256="1hkdm1fqq9fswfii9ac016xfnbggdvxcvazi5l8ir0vna9jfkcwb"; depends=[dplyr gam gbm ggplot2 glmnet MASS MESS mgcv randomForestSRC rlang stringr survival tidyr]; };
-  precommit = derive2 { name="precommit"; version="0.4.0"; sha256="08fxmxvi4dg93y5k60wy8fqy6admfh6cpdjji0kxfljaibjixdcm"; depends=[cli fs here magrittr purrr R_cache rlang rprojroot withr yaml]; };
+  precommit = derive2 { name="precommit"; version="0.4.2"; sha256="15ll48m3aw7gg99vqvbrygms6hwlpgmpnz56n7x1drqwzl59qgf7"; depends=[cli fs here magrittr purrr R_cache rlang rprojroot withr yaml]; };
   precondition = derive2 { name="precondition"; version="0.1.0"; sha256="0srmr33q56dimkn0m7aad19ddrp28a0dzrpnyh4hglwy9zxfqz9j"; depends=[rlang]; };
   precrec = derive2 { name="precrec"; version="0.14.4"; sha256="03hvp5h7fz4v2aswxim0mqgj9rdrhnk5xqz212161kpcrw6m67z8"; depends=[assertthat data_table ggplot2 gridExtra Rcpp rlang withr]; };
   predReliability = derive2 { name="predReliability"; version="0.1.0"; sha256="18s9ijg3fcg6qb0y6pnwngmv69ajm93z0xjdzkq3fp5bxk1qylyb"; depends=[cluster rpart]; };
   predRupdate = derive2 { name="predRupdate"; version="0.1.1"; sha256="087jkaw27lssh7400gjbjd9d583aiz7fm6a70cjhxwf5f8s8qpp8"; depends=[ggplot2 ggpubr pROC rlang survival]; };
   predfairness = derive2 { name="predfairness"; version="0.1.0"; sha256="0b9d6a2rk6vw4y5hnh721gmirnm419yynbfg7arjb96558l282kd"; depends=[]; };
-  predhy = derive2 { name="predhy"; version="2.0.1"; sha256="00p75lxs2fy1815c3hb5qifhv210vxi4kr650rhiig6bh5bhb9il"; depends=[BGLR doParallel foreach glmnet lightgbm pls xgboost]; };
-  predhy_GUI = derive2 { name="predhy.GUI"; version="1.0"; sha256="0jxx6mqw0rll4idn92hgwqpj48kd155xl49iw3xwy33gqabg9gn7"; depends=[BGLR data_table doParallel DT foreach glmnet htmltools pls predhy randomForest shiny xgboost]; };
-  predict3d = derive2 { name="predict3d"; version="0.1.4"; sha256="0pnp2p4h28mpygzg13v8g9lza0cpfhdg3m8h1ziwrkvi3bg1y97m"; depends=[dplyr ggiraphExtra ggplot2 magrittr modelr plyr prediction purrr reshape2 rgl rlang stringr tidyr]; };
+  predhy = derive2 { name="predhy"; version="2.1.1"; sha256="0s38gzbynvllf4fi1mrjd2yj24sc091gi5cd8vbj63pl8qkbfjjc"; depends=[BGLR doParallel foreach glmnet lightgbm pls xgboost]; };
+  predhy_GUI = derive2 { name="predhy.GUI"; version="2.0.1"; sha256="04grfxb18vqhdh3ylq7dm3z3kal21nkr33pgj9698lzy1gn6ki22"; depends=[BGLR data_table doParallel DT foreach glmnet htmltools lightgbm pls predhy shiny xgboost]; };
+  predict3d = derive2 { name="predict3d"; version="0.1.5"; sha256="1qfr9ixdzcr2v030fds2h3fmyx4xhc5lbbg44i4imzg96w1z3lxy"; depends=[dplyr ggiraphExtra ggplot2 magrittr modelr plyr purrr reshape2 rgl rlang stringr tidyr]; };
   predictMe = derive2 { name="predictMe"; version="0.1"; sha256="0n4sv9ahyvly17grlilybb7vwq9pzyn6mvhcn8z9cyswqa7svs49"; depends=[ggplot2 Rdpack reshape2]; };
   predictNMB = derive2 { name="predictNMB"; version="0.2.1"; sha256="1g4mak6n3ris9hdk6pl0zb6jmh5ziicqbfv7y6p2i304af768pgy"; depends=[assertthat cutpointr dplyr ggplot2 magrittr pmsampsize rlang scales tibble tidyr]; };
-  prediction = derive2 { name="prediction"; version="0.3.14"; sha256="0awlq5lxfia6m2b91w73rksp93rbwv5gwqb36wbji4rgq41rzbrx"; depends=[data_table]; };
+  prediction = derive2 { name="prediction"; version="0.3.18"; sha256="194p2zbypslkd7slnvqw2z456xxwfzjxd11dirhpffjcsizkgrnh"; depends=[data_table]; };
   predictionInterval = derive2 { name="predictionInterval"; version="1.0.0"; sha256="029hc57cblfcbqckrghf95l2rkn7acgb4yr36da01bx8bmpww0bn"; depends=[ggplot2 MASS MBESS pbapply]; };
   predictmeans = derive2 { name="predictmeans"; version="1.1.0"; sha256="1010s79c55vndv3v4my0xrmdxvgpy7vhp46j1anxvr3xzgx1279q"; depends=[car ggplot2 glmmTMB HRW lme4 lmeInfo lmerTest lmeSplines MASS Matrix nlme numDeriv pbkrtest plotly plyr splines2]; };
-  predictoR = derive2 { name="predictoR"; version="3.0.3"; sha256="1r96kclzkybzplssf2ql0grv34p6ff01vplp8bv3ivckmkln8qgz"; depends=[colourpicker config dplyr DT echarts4r glmnet golem htmltools loadeR rlang rpart_plot shiny shinyAce shinycustomloader shinydashboard shinydashboardPlus shinyjs traineR xgboost xtable]; };
+  predictoR = derive2 { name="predictoR"; version="3.0.10"; sha256="0lj13rn9dpx0rqxb03abisa06ihphmrq5shpv6q2p0qb857pgmkf"; depends=[colourpicker config dplyr DT echarts4r glmnet golem htmltools loadeR rlang rpart_plot shiny shinyAce shinycustomloader shinydashboard shinydashboardPlus shinyjs traineR xgboost xtable]; };
   predictrace = derive2 { name="predictrace"; version="2.0.1"; sha256="0xy1vkxgqq9faa62shbdkg3fgwwm8khybbhagqwc6a01ibm32mnk"; depends=[dplyr]; };
   predicts = derive2 { name="predicts"; version="0.1-11"; sha256="1jvaayy7qwi2l8q8m8r42b6rj3945z9vrpgdds6dz8qz35clrpir"; depends=[terra]; };
   predieval = derive2 { name="predieval"; version="0.1.1"; sha256="096zfb94iixza0lfzr4p21gkcs9hl7h0d5jhbzdi3hhyz80zymrj"; depends=[ggplot2 Hmisc MASS Matching]; };
@@ -15783,7 +16042,7 @@ in with self; {
   preseqR = derive2 { name="preseqR"; version="4.0.0"; sha256="1g2rnnmi45649vpy6z45v5i3wxm54s138ajqrzwi3a5r7x3xnhq1"; depends=[polynom]; };
   presize = derive2 { name="presize"; version="0.3.7"; sha256="1qabv7lsrd0rrjkg7icr7qxj4jrx78s6rh1n961s6qrw6gldq4ga"; depends=[kappaSize shiny]; };
   presmTP = derive2 { name="presmTP"; version="1.1.0"; sha256="134p58zzk8i0whscvl5qdfn4niksypyxavq1m15cvw4zzk4dk6fw"; depends=[mgcv survPresmooth]; };
-  pressuRe = derive2 { name="pressuRe"; version="0.2.3"; sha256="1i73706wpa06zaz5zdb25dshpzwdfyxl160s8nr4pjx5bczaigsh"; depends=[abind dplyr gdistance ggmap ggplot2 magick magrittr pracma raster readxl scales sf stringr zoo]; };
+  pressuRe = derive2 { name="pressuRe"; version="0.2.4"; sha256="14cidhyfngzimpxj7cgb1588dzr363dqbngh2rahhcg5rhivz9zc"; depends=[abind dplyr gdistance ggmap ggplot2 magick magrittr pracma raster readxl scales sf stringr zoo]; };
   pretest = derive2 { name="pretest"; version="0.2"; sha256="11q90wf2sis0km20xnpx5wr7h7p80vl2bpah5m1a56qixswql5cm"; depends=[]; };
   prettifyAddins = derive2 { name="prettifyAddins"; version="2.6.1"; sha256="0ncj10j1ygc1dhlqdg5vklzf258bjbg6mry8i8vqqh1dxvl2djwr"; depends=[chromote httr rstudioapi shiny webdriver xml2 XRJulia]; };
   prettyB = derive2 { name="prettyB"; version="0.2.2"; sha256="1wszcmn5jnk02iyvjld42291m1irfp9m0b3lcdyyp41iq3icm67g"; depends=[]; };
@@ -15801,7 +16060,7 @@ in with self; {
   previsionio = derive2 { name="previsionio"; version="11.7.0"; sha256="08hrklr3ngphdhp50lkz6ls9nn1bzdvs6xj583spsw4vm7j44yfr"; depends=[data_table futile_logger httr jsonlite magrittr Metrics plotly XML]; };
   prevtoinc = derive2 { name="prevtoinc"; version="0.12.0"; sha256="0ypdxcx9gh87a7ih3cw3yai47rzv41qwh4kpk6007ai8jkjv4n9w"; depends=[dplyr purrr rlang tibble]; };
   priceR = derive2 { name="priceR"; version="1.0.1"; sha256="0yf7hgvbm8a0ks2c8wnim8b9kqk7dljnaahw7faq2lzn67751dqc"; depends=[dplyr gsubfn jsonlite lubridate purrr stringi stringr tidyr]; };
-  pricelevels = derive2 { name="pricelevels"; version="1.0.2"; sha256="06997bxch7klpkibpszpwm2lr6kyl6fnxrphnw379hx3vac2p4zx"; depends=[data_table minpack_lm]; };
+  pricelevels = derive2 { name="pricelevels"; version="1.3.0"; sha256="1mi949l7fczcsha81qlviaq14882062v7wr4raxavhb5hg1m057r"; depends=[data_table minpack_lm]; };
   pricesensitivitymeter = derive2 { name="pricesensitivitymeter"; version="1.3.0"; sha256="136y3dfm6chznp8bnyw6xd9wkv265j3ykqicxib1vwgwaprg6zdm"; depends=[ggplot2 rlang survey]; };
   prim = derive2 { name="prim"; version="1.0.21"; sha256="085dwmflag45qg0p4w2f9v000zj2kfaijp6jm11dj85swxmx7vjm"; depends=[plot3D scales]; };
   primate = derive2 { name="primate"; version="0.2.0"; sha256="0agrz57xvk8azvb8af299l0g0iwamxy0l0m5y41rlsi03szszlii"; depends=[caroline]; };
@@ -15815,13 +16074,13 @@ in with self; {
   prinvars = derive2 { name="prinvars"; version="1.0.0"; sha256="10cxp5dqjmi0kbx8g2qvpvwv2lcdg4sd2njg81l9g8dphx0c662f"; depends=[elasticnet PMA Rdpack]; };
   prioGene = derive2 { name="prioGene"; version="1.0.1"; sha256="0k1rlvmfhj1m2zp5zaac8wcwjypd6f4dd8fxxsyrzsafp9aw189l"; depends=[AnnotationDbi org_Hs_eg_db]; };
   prioriactions = derive2 { name="prioriactions"; version="0.5.0"; sha256="0k0vaqpdj9rlxcmfn6qb1bj8ssbazj33qa4rg4l8agpf9x83n9f8"; depends=[assertthat BH dplyr magrittr Matrix proto Rcpp RcppArmadillo rlang tidyr]; };
-  prioritizr = derive2 { name="prioritizr"; version="8.0.3"; sha256="0049mgziwlhh68rnv3g3h55ln36wdi6ypf8pb9vpwnl9c72zh0ld"; depends=[ape assertthat BH cli exactextractr igraph magrittr Matrix R6 raster Rcpp RcppArmadillo rlang sf slam terra tibble withr]; };
+  prioritizr = derive2 { name="prioritizr"; version="8.0.4"; sha256="18z5zm34ry45kapp0a146gvwij41wyhhxxyzwiz7ly79l6lwgs9s"; depends=[ape assertthat BH cli exactextractr igraph magrittr Matrix R6 raster Rcpp RcppArmadillo rlang sf slam terra tibble withr]; };
   prioritizrdata = derive2 { name="prioritizrdata"; version="0.3.2"; sha256="0dvxh43dk9mhsqdj89zilh3r91cqngl07ggw5r5rj761xl3km10w"; depends=[sf terra tibble]; };
   prioritylasso = derive2 { name="prioritylasso"; version="0.3.1"; sha256="1vn4i7rg1nsir98lgaxnw4851rwyv8kx25z8nc942qsr3r7cvdf6"; depends=[checkmate glmnet survival]; };
   prism = derive2 { name="prism"; version="0.2.1"; sha256="1fgmv58igvkp11n8jgqvxd2qpccpv3s6xwzm2678ikrgc3hynj0x"; depends=[dplyr ggplot2 httr magrittr raster readr stringr]; };
   prismadiagramR = derive2 { name="prismadiagramR"; version="1.0.0"; sha256="13x3y4rv9b2d013jd6853zkq8rbxq88wlffmdnjs1rca0fnfrn4f"; depends=[DiagrammeR dplyr]; };
-  prismatic = derive2 { name="prismatic"; version="1.1.1"; sha256="013i0mq4n8s2zbzvfrz1vjcn2a6l98bamslkcv1a3cn70gpphja9"; depends=[farver]; };
-  prismjs = derive2 { name="prismjs"; version="1.1.0"; sha256="0siga7l60d0axlnjwbl4smw28rggyxrjwzv8ypw9bhb6x1xnn8in"; depends=[V8 xml2]; };
+  prismatic = derive2 { name="prismatic"; version="1.1.2"; sha256="0qg2f5d7sz6q0ijrrdmjhp1msx9n77wndphrqqhjkdf9six5pgxs"; depends=[farver]; };
+  prismjs = derive2 { name="prismjs"; version="2.0.0"; sha256="032m8brgsvgdry8y1hsigl8pnckh13d23ylsj4hsga6dbyvkj7lf"; depends=[V8 xml2]; };
   prisonbrief = derive2 { name="prisonbrief"; version="0.1.2"; sha256="06550fnnffpcnv4q2nicrm7p573313lvnj6hkdrf7979ygrsmmfi"; depends=[dplyr httr magrittr passport rnaturalearth rnaturalearthdata rvest sf stringr tibble tidyr xml2]; };
   prithulib = derive2 { name="prithulib"; version="1.0.2"; sha256="12ybksrvxzc5gjz8m38cs35b7r3kd8m0zqm2c67pqw38vq82sjxm"; depends=[]; };
   prnsamplr = derive2 { name="prnsamplr"; version="0.3.0"; sha256="1qhrk6am6irp5m0gh61vv6612738p0kwjcvgdnza50731rias8v7"; depends=[]; };
@@ -15830,6 +16089,7 @@ in with self; {
   probably = derive2 { name="probably"; version="1.0.3"; sha256="1ck84r63n72nf8w4v5kfyvhk7b8r6j1hq3sdcclar1k965yphl8n"; depends=[butcher cli dplyr furrr generics ggplot2 hardhat pillar purrr rlang tidyr tidyselect tune vctrs withr workflows yardstick]; };
   probe = derive2 { name="probe"; version="1.1"; sha256="1bgkbsx8aa0r5dpnr1nv2q9p6af40dfzl3g333wmdg1dd6d2zp4n"; depends=[glmnet Rcpp RcppArmadillo]; };
   probout = derive2 { name="probout"; version="1.1.2"; sha256="1x7q878xzw1b1c6jfx856akxzcxrwanv67jji2ifkcdx2hgmgvpx"; depends=[FNN MASS mclust]; };
+  probstats4econ = derive2 { name="probstats4econ"; version="0.2.0"; sha256="1xjf4i5jw0qf87zmizkwbb9i0fd0gji40kwvm9nz5gxyns98fqmk"; depends=[]; };
   proccalibrad = derive2 { name="proccalibrad"; version="0.14"; sha256="0vr55rpcqh9wvy3bklssrimp42x85w3sanjgshfij657v68vmx46"; depends=[]; };
   proceduralnames = derive2 { name="proceduralnames"; version="0.2.2"; sha256="1jdaizvsmw1ipbjm2qbgfvnkaz68zga7i8lp7yjf5rfzjvfi1hwq"; depends=[]; };
   processanimateR = derive2 { name="processanimateR"; version="1.0.5"; sha256="054m578ifb4hhlalijkdmjxifn36vy61sdzjgcr1gg4yxfi2fbx3"; depends=[bupaR DiagrammeR dplyr htmltools htmlwidgets magrittr processmapR rlang stringr tidyr]; };
@@ -15838,6 +16098,7 @@ in with self; {
   processmonitR = derive2 { name="processmonitR"; version="0.1.0"; sha256="1ckr438yifpsh095j6bb65dq3rdm7cfm8k7qsjmcqwjkww4j74z8"; depends=[bupaR dplyr edeaR ggplot2 magrittr miniUI shiny]; };
   processpredictR = derive2 { name="processpredictR"; version="0.1.0"; sha256="161gbyq21j5yip5p8p235mvcffchm7c8ksks1z7q5cwbrilcx380"; depends=[bupaR cli data_table dplyr edeaR forcats ggplot2 glue keras magrittr mltools plotly progress purrr reticulate rlang stringr tensorflow tidyr tidyselect]; };
   processx = derive2 { name="processx"; version="3.8.4"; sha256="02z7n59pglz6jw1vyyl0mkc7mz2c7y8yzsnhq5yz62digwnnf9v6"; depends=[ps R6]; };
+  proclhmm = derive2 { name="proclhmm"; version="1.0.0"; sha256="05pwa09bkclzshyk3jsnhsj43vdp89miw3zznj082zj9484vfhzj"; depends=[Rcpp statmod]; };
   procmaps = derive2 { name="procmaps"; version="0.0.5"; sha256="0c5cby1942s9vdl0a6nyiih6x7kxii02w2l4fp8n9z07h7j5jb69"; depends=[]; };
   procs = derive2 { name="procs"; version="1.0.6"; sha256="06hsdzw23854pc9zirbbfzm451ybllrp5gx6b4bk0pd8wv1iza01"; depends=[common fmtr reporter sasLM tibble]; };
   prodest = derive2 { name="prodest"; version="1.0.1"; sha256="16nqgd9wrjfxymwbxrnlak54cagbv3fxgbql0w5bxnmyrbbqy509"; depends=[AER DEoptim dplyr Matrix Rsolnp]; };
@@ -15852,7 +16113,7 @@ in with self; {
   profileR = derive2 { name="profileR"; version="0.3-5"; sha256="0fgc7585a7194c67irafjnx8g2j6mn3qhcfn76c6dh28clp20qp9"; depends=[ggplot2 lavaan RColorBrewer reshape]; };
   profiplots = derive2 { name="profiplots"; version="0.2.3"; sha256="0b2i1m9x7aqhlizv059q1gv8m15myim4q0s81gaskqf9rid83apz"; depends=[ggplot2]; };
   profmem = derive2 { name="profmem"; version="0.6.0"; sha256="0gg6ja0ifwn9jj42rw1gnyil55sl9r2y5rjb6yjcvqwd5arajp3l"; depends=[]; };
-  profoc = derive2 { name="profoc"; version="1.3.1"; sha256="1clickjw8v43p6p35mkyw303adnnr0zrm5ppnvslz2gjlybfp94q"; depends=[abind generics ggplot2 lifecycle Matrix Rcpp RcppArmadillo RcppProgress splines2 tibble]; };
+  profoc = derive2 { name="profoc"; version="1.3.2"; sha256="1vs5l6f18maga6v27wschxzsbr5i4wqwsd64mz4z666rf92d7l60"; depends=[abind generics ggplot2 lifecycle Matrix Rcpp RcppArmadillo RcppProgress rcpptimer splines2 tibble]; };
   profr = derive2 { name="profr"; version="0.3.3"; sha256="00bv1q0qn46nz4zjfs0l2yfh3hk71rajlp2rrlwg442z11k79ap9"; depends=[plyr stringr]; };
   profrep = derive2 { name="profrep"; version="1.0.0"; sha256="0p2sd95w8n4l2mxyzjxppynfdqbg6znd69360mgyci3r61za2z6z"; depends=[]; };
   proftools = derive2 { name="proftools"; version="0.99-3"; sha256="095pxyyv6k818qwcjygbz1h24k0xkqi1agns8cqh2m5g64aynd70"; depends=[]; };
@@ -15869,25 +16130,25 @@ in with self; {
   prolsirm = derive2 { name="prolsirm"; version="0.1.0"; sha256="1nx4bal130r3c7hb0x5j22rh7988p62qll3rm0j8wkiqdnqkyhay"; depends=[MCMCpack]; };
   prome = derive2 { name="prome"; version="1.9.1.0"; sha256="134nc90av9js4qdq7dxy7z93h621i6w1vbgly38minprfam0wwm0"; depends=[BH Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
   promethee123 = derive2 { name="promethee123"; version="0.1.0"; sha256="0s1wkcrvm32dpqg9ahn10kni1xv3ll7akqz4y6yn1d36km81bf21"; depends=[cowplot ggplot2]; };
-  promises = derive2 { name="promises"; version="1.2.1"; sha256="1gp55inqbbj0ifm4n0j5h8854a9v109xpikyhwv7b8lyydns5q1w"; depends=[fastmap later magrittr R6 Rcpp rlang]; };
+  promises = derive2 { name="promises"; version="1.3.0"; sha256="1lzs65csxaq26d1g37qjjgxzm418xv52c3ccpk0l0cxkpbrrs87q"; depends=[fastmap later magrittr R6 Rcpp rlang]; };
   promor = derive2 { name="promor"; version="0.2.1"; sha256="0cpf6946522lhnsr6fxm8ppvq69vjpkx7p7p0chx7kibc9ivb1ia"; depends=[caret ggplot2 ggrepel gridExtra kernlab limma missForest naivebayes pcaMethods pROC reshape2 statmod VIM viridis xgboost]; };
   promote = derive2 { name="promote"; version="1.1.1"; sha256="1cdz4xqinyzpbbgkxxd4f86n1h8zj88vp5z6w01cxd5ykyjf5411"; depends=[httr jsonlite stringr]; };
   promotionImpact = derive2 { name="promotionImpact"; version="0.1.5"; sha256="18iq2r5zirddlfx20alm6qnxf9qv3ii3c9bcm789q0q18d2hyj2q"; depends=[crayon dplyr ggplot2 ggpubr KernSmooth lmtest prophet Rcpp reshape2 scales stringr strucchange]; };
   prompt = derive2 { name="prompt"; version="1.0.2"; sha256="12fqdz906b96h4iaa1hpfwamp94c9am5287l57dsh2g4dpqvw91l"; depends=[cli]; };
-  prompter = derive2 { name="prompter"; version="1.1.0"; sha256="113gk5wwsaw0kh7z6caarlp7g536w3ibq3bnm53zp35rij7zrynz"; depends=[shiny]; };
+  prompter = derive2 { name="prompter"; version="1.2.0"; sha256="18bbgcirw6z1vwna4bad4f4s4wnfq62bf9mzkakzlrn59kq9rxgc"; depends=[shiny]; };
   promr = derive2 { name="promr"; version="0.1.3"; sha256="0b737gyg828s2m30l77qc59caazdsp84cg8a72arg0fqs70hk580"; depends=[httr tibble urltools]; };
   prop_comb_RR = derive2 { name="prop.comb.RR"; version="1.2"; sha256="10s52fkq7rv6v4gw1yd46f0fbg89ksim0qhgb5jbglzrqh585ny5"; depends=[rootSolve]; };
   propOverlap = derive2 { name="propOverlap"; version="1.0"; sha256="0q72z9vbkpll4i3wy3fq06rz97in2cm3jjnvl6p9w8qc44zjlcyl"; depends=[Biobase]; };
   propagate = derive2 { name="propagate"; version="1.0-6"; sha256="17jinz1jramlsf87i7vyn2qp82rc1dacljfaxxplrk3crhw3bhs7"; depends=[ff MASS minpack_lm Rcpp tmvtnorm]; };
   properties = derive2 { name="properties"; version="0.0-9"; sha256="1zd66cg31yd53rqsc0cwxhlpfn7kvc67qdh3vyj9qib8kwxaw1zl"; depends=[]; };
   prophet = derive2 { name="prophet"; version="1.0"; sha256="06mryavky9xj54ig4scqjgpx7i56nwhs53g0zqsbs9f6qxja7gll"; depends=[BH dplyr dygraphs extraDistr ggplot2 lubridate Rcpp RcppEigen RcppParallel rlang rstan rstantools scales StanHeaders tidyr xts]; };
-  proporz = derive2 { name="proporz"; version="1.4.0"; sha256="0han6vhdlzywcvw02w3rgmh4513kcl825ca4991igh15vssjy617"; depends=[]; };
+  proporz = derive2 { name="proporz"; version="1.5.0"; sha256="0yvrmrbvv9dmcl6ry42whr40dlirirrr5xdn591qim5lkwxc17y1"; depends=[]; };
   prospectr = derive2 { name="prospectr"; version="0.2.7"; sha256="0hg2afw5aixx0xdwwr6g0wi8sksn7r21hz8diyqxg2345rwnzbg4"; depends=[foreach iterators lifecycle mathjaxr Rcpp RcppArmadillo]; };
   protHMM = derive2 { name="protHMM"; version="0.1.1"; sha256="0j4n24dfvg6qqmyf5qljx34jr9p073hqflmzj57gyb8vwfzq6psr"; depends=[gtools phonTools]; };
   protViz = derive2 { name="protViz"; version="0.7.9"; sha256="1wsjr4asjsknv8fkfv15xqnl67zfv8d2xmvw1i2l0wflxbps3af7"; depends=[Rcpp]; };
   protag = derive2 { name="protag"; version="1.0.0"; sha256="1iaw2w1d7hdvlg5vplpqc49wq08dgmm0ifvp2v0ggqb8invvdnw8"; depends=[dplyr ggplot2 RColorBrewer]; };
   protein8k = derive2 { name="protein8k"; version="0.0.1"; sha256="11qj4sadhcsp1kk5kjmvzj2jnd3srsm5mp0q9h9khp1ps6dk35yw"; depends=[dplyr ggplot2 gridExtra lattice magick pryr rjson rlang shiny]; };
-  proteomicsCV = derive2 { name="proteomicsCV"; version="0.1.0"; sha256="0yf1shzqmvsvaywv7xxidx3dw2wfx6vm1kgnygdfvq0hqkj0c5n7"; depends=[]; };
+  proteomicsCV = derive2 { name="proteomicsCV"; version="0.2.5"; sha256="0wkyp21ns3k8812k109ilm9yi1y89m524cwwpa4wr0vqy65lrgba"; depends=[]; };
   proteus = derive2 { name="proteus"; version="1.1.4"; sha256="1i8h07k5pdsywpw5g8d06xgl5gk06g5q93jimfwkbry9ykagh1cw"; depends=[abind actuar dplyr fANCOVA furrr future ggplot2 ggthemes greybox imputeTS lubridate modeest moments narray purrr readr scales sn stringr tictoc torch VGAM]; };
   proto = derive2 { name="proto"; version="1.0.0"; sha256="1l843p8vckjckdhgv37ngv47fga5jzy0n00pmipvp05nnaixk54j"; depends=[]; };
   protoclust = derive2 { name="protoclust"; version="1.6.4"; sha256="0cbl9jxdc2j4z5viczl70zcd9z83qlipvkqi5f2bpypyvi2s0xs1"; depends=[]; };
@@ -15895,8 +16156,8 @@ in with self; {
   proton = derive2 { name="proton"; version="1.0"; sha256="1mgaw54is8l6ac1rf8s70rj7kv9xgsfdrlvjz01ggfwg7c6pyr3s"; depends=[digest]; };
   protoshiny = derive2 { name="protoshiny"; version="0.1.0"; sha256="0ms8sy8p5cd8vg82m7pny6jcg5mis1l7548m2g392gjcf3hf1sf7"; depends=[DT dynamicTreeCut protoclust rare shiny shinycssloaders shinythemes]; };
   prototest = derive2 { name="prototest"; version="1.2"; sha256="07g58hq2qdpczqhjsv6dq1bya9rs958r103n91icw5yc19bvyhi2"; depends=[glmnet intervals MASS Rcpp RcppArmadillo]; };
-  protr = derive2 { name="protr"; version="1.7-0"; sha256="0hb7pixd2qa48bsv86ygdxs6v8sd0hksq99xpzr9d50nprzjmhj4"; depends=[]; };
-  protti = derive2 { name="protti"; version="0.7.0"; sha256="1k05z9c8801gylmv4d0n5baqmzdhv38jpkmxm4qm34y2gyh10n0l"; depends=[curl data_table dplyr forcats ggplot2 ggrepel httr janitor lifecycle magrittr plotly progress purrr R_utils readr rlang stringr tibble tidyr]; };
+  protr = derive2 { name="protr"; version="1.7-1"; sha256="1dakbkj07l2mnmnmi9j2xv0lk1bm8qpzac8s9gg7j4xpwsf0yyl7"; depends=[]; };
+  protti = derive2 { name="protti"; version="0.8.0"; sha256="052ffldvy7a1h1z1c2gq9hdmhhwwiia5l6cyikq5j7yb8g1ff1n3"; depends=[curl data_table dplyr forcats ggplot2 ggrepel httr janitor lifecycle magrittr plotly progress purrr R_utils readr rlang stringr tibble tidyr]; };
   proustr = derive2 { name="proustr"; version="0.4.0"; sha256="1qp4v4vb1qh137qn7zi1d2g999z17kq6kpyxy9355mj8c49iy8pn"; depends=[attempt rlang SnowballC stringr tidyr tokenizers]; };
   provDebugR = derive2 { name="provDebugR"; version="1.0.1"; sha256="0ynz5m1gkaj1wks5l71r3iz7npf3mz0r04jsa8zwg670zsv2x7rf"; depends=[httr jsonlite provGraphR provParseR textutils]; };
   provExplainR = derive2 { name="provExplainR"; version="1.1.1"; sha256="1bkwdz6zm3wq8j16kyqiqmz5mqzizyacgh5rmhfa94rvsb9vh008"; depends=[diffobj digest dplyr provParseR stringr]; };
@@ -15905,13 +16166,13 @@ in with self; {
   provSummarizeR = derive2 { name="provSummarizeR"; version="1.5.1"; sha256="1sab34fhyzzzj600ks2xwyv2y1657ir5k2dzkjry8y1mwvag796j"; depends=[provParseR]; };
   provTraceR = derive2 { name="provTraceR"; version="1.0"; sha256="19iillyh5zw64mmr6ik4ci1n2p651xqzxa4iq5bwa70imbzyy5ip"; depends=[provParseR]; };
   provViz = derive2 { name="provViz"; version="1.0.9"; sha256="0hwd9x02xcldrmmnpknsycqlb78ngdsphs7n141rcxsv167gbmcq"; depends=[]; };
-  provenance = derive2 { name="provenance"; version="4.2"; sha256="1ghdvc6h25zx1hn1x2wqbc1zc1jdxv77lg0l6msymy9ap5ndcdrn"; depends=[IsoplotR MASS]; };
+  provenance = derive2 { name="provenance"; version="4.3"; sha256="07dhpbwkn5x876i2zjrmc8rb5463956lqx6snddcraywc3jplgvb"; depends=[IsoplotR MASS]; };
   proverbs = derive2 { name="proverbs"; version="0.4.0"; sha256="1ilfzkpw3m8q4cr1ndygzjz363ghv0f1j5n7sw4whrzafhnlbdvg"; depends=[checkmate cli crayon glue httr2 lubridate purrr rvest stringr]; };
   proxirr = derive2 { name="proxirr"; version="0.4"; sha256="0fknabfdvcmcpxai9sasnqay9ymy1vm9bvghiw9awx1lvn85024r"; depends=[]; };
   proxy = derive2 { name="proxy"; version="0.4-27"; sha256="0gsng2aggnljl4z82la9hpnd26hngzhj8fizx4wx22npqjj93694"; depends=[]; };
-  proxyC = derive2 { name="proxyC"; version="0.3.4"; sha256="1skq5cxd0kh2pccfg4h9bis4wbqb6zm04q4iwfa6dqml6hyiv7gk"; depends=[Matrix Rcpp RcppArmadillo RcppParallel]; };
+  proxyC = derive2 { name="proxyC"; version="0.4.1"; sha256="1a124nzxldc6687kvgkg41dqfbqb7yqdgm9dj5fj8g4bax9qcgg8"; depends=[Matrix Rcpp RcppArmadillo]; };
   prozor = derive2 { name="prozor"; version="0.3.1"; sha256="0gcjfjsvj2pjp9ih7nxvs9gfj5b94g8d3ziaz16wfbnjqm4a38lp"; depends=[AhoCorasickTrie docopt dplyr Matrix purrr readr rlang seqinr stringr]; };
-  prqlr = derive2 { name="prqlr"; version="0.8.0"; sha256="1gppj2y5za85j63wgf1xi2gdvxhl4dj1gyfdnbnfj10xvmnvkvgy"; depends=[]; };
+  prqlr = derive2 { name="prqlr"; version="0.8.1"; sha256="00i9y7yb0czhr7853v9syrcjr74v6x1a022nawjmryl831f4bl9g"; depends=[]; };
   prrd = derive2 { name="prrd"; version="0.0.6"; sha256="1wr469jvzgsic38x8xr72lx7px0k6l957z4hl63bgj7w2dczwyqz"; depends=[config crayon data_table DBI liteq RSQLite]; };
   prt = derive2 { name="prt"; version="0.2.0"; sha256="02f75a9ici0a7fm08r0dhykf73jpixg5cm8ym2z18dhghas4zly4"; depends=[assertthat backports cli crayon data_table fst pillar rlang tibble vctrs]; };
   pryr = derive2 { name="pryr"; version="0.1.6"; sha256="013p2xxd51kr9ddx051cvn45mzgj44fm47nkchdb13l0885a7hb8"; depends=[codetools lobstr Rcpp stringr]; };
@@ -15922,27 +16183,27 @@ in with self; {
   psbcGroup = derive2 { name="psbcGroup"; version="1.7"; sha256="08gabhcpjsm92xrld3h14y092x05apz4b1znf10d6j3n1880fbl4"; depends=[LearnBayes mvtnorm SuppDists survival]; };
   psbcSpeedUp = derive2 { name="psbcSpeedUp"; version="2.0.6"; sha256="0dyvpdr9jafnac0m7x8rdsjbsl0fbd3c5lzc5483p3nnnynnml4q"; depends=[GGally ggplot2 MASS Rcpp RcppArmadillo riskRegression survival xml2]; };
   psborrow = derive2 { name="psborrow"; version="0.2.1"; sha256="0m2jcf5awlwkzscsps0fczpaflxzi0w6m9qxlzm7abip277lhgpd"; depends=[data_table doParallel dplyr foreach futile_logger ggplot2 MatchIt mvtnorm rjags survival]; };
+  psborrow2 = derive2 { name="psborrow2"; version="0.0.3.4"; sha256="05mcfbgkdlx6yfiysvh3yk75c8rdcci7ql89n76vlm9h17ff5fm1"; depends=[checkmate future generics glue Matrix mvtnorm posterior simsurv]; };
   pscl = derive2 { name="pscl"; version="1.5.9"; sha256="1zkfzrc1cr3f5dlz0mv45ym0as1yp9gicds6lhxpj13qk38zz1c0"; depends=[MASS]; };
   pscore = derive2 { name="pscore"; version="0.4.0"; sha256="0flzqr9x0z2mjnbm5cjm8hqndkbv2yp11agkx89mbaafsg0hmjn1"; depends=[ggplot2 JWileymisc lavaan reshape2]; };
   psd = derive2 { name="psd"; version="2.1.1"; sha256="1c9kq5g2p4iy1jdc9fhfs1v0hcnc8cbrpvafdpy3l4n9m66hahky"; depends=[RColorBrewer Rcpp RcppArmadillo]; };
   psdr = derive2 { name="psdr"; version="1.0.1"; sha256="02ypgi1gxnp0mn9p1w2j34ypnpbkrwp9i0ma0i7657zddcfnf391"; depends=[devtools ggplot2 qpdf]; };
   pseudo = derive2 { name="pseudo"; version="1.4.3"; sha256="0ccf3gz2g7g5y4acpj2qnb39hrghhdganizlddg6rx7al869fffs"; depends=[geepack KMsurv]; };
   pseudohouseholds = derive2 { name="pseudohouseholds"; version="0.1.1"; sha256="102kc3j106bw6dlarmvwyh4mg68imbyxzc5j6pkzn6xpnvils3fm"; depends=[dplyr furrr sf]; };
-  pseudorank = derive2 { name="pseudorank"; version="1.0.1"; sha256="1hjcvl38di1digkqg7nysd7bkljz1v7y54z2rz10fyk9lyp9mpmy"; depends=[doBy Rcpp]; };
   pseval = derive2 { name="pseval"; version="1.3.1"; sha256="1jgnv1l9adhwrmkmp6wkzz7jf7w1hyqy47ajr29l21p4g037py45"; depends=[survival]; };
   psfmi = derive2 { name="psfmi"; version="1.4.0"; sha256="1nda2vzmq7cz04g9irl186vkvi3dxpmcsm9dxhjiql3mrax82r8c"; depends=[car cvAUC dplyr ggplot2 lme4 magrittr mice mitml mitools norm pROC purrr rms rsample stringr survival tibble tidyr]; };
   psgp = derive2 { name="psgp"; version="0.3-21"; sha256="1pcg6q1g5ipial8kyk20n15zzls4ig0m0sxcc7d3ngryir89cyzs"; depends=[automap doParallel foreach gstat intamap Rcpp RcppArmadillo sp]; };
   psica = derive2 { name="psica"; version="1.0.2"; sha256="1cnrd1p8ikv0hl97jwypw8np1ypa0d8k2mizwd1clkv7inbb264g"; depends=[BayesTree gridBase party partykit randomForest Rdpack rpart]; };
-  psidR = derive2 { name="psidR"; version="2.1"; sha256="06rsi6ai58yggf73hjaidjhlgc09jjk76a4drvvgfs3v0qm296mm"; depends=[data_table foreign futile_logger openxlsx RCurl SAScii]; };
+  psidR = derive2 { name="psidR"; version="2.2"; sha256="0vfvx5aidd7g3s02hajnlfr8c0czzzbsrkgzfw5zx1lm4rxw8z26"; depends=[data_table foreign futile_logger openxlsx RCurl SAScii]; };
   psidread = derive2 { name="psidread"; version="1.0.3"; sha256="0k1rk5bsdhf9x7znmq99snw8p5qfnysz7hlh7s7adg7hn79rifx4"; depends=[asciiSetupReader dplyr stringr tidyr]; };
+  psm3mkv = derive2 { name="psm3mkv"; version="0.3.2"; sha256="0fbqyqgmjzqncx68x1cydfa9cm5k00k57d7hbb0iffcq08c0ya36"; depends=[admiral dplyr flexsurv ggplot2 pharmaverseadam purrr rlang SimplicialCubature stringr survival tibble tidyr]; };
   psmineR = derive2 { name="psmineR"; version="0.1.0"; sha256="0fc30hsqkbfjj7wz2s7yn1w3hrr80k8bmj6ah8diswrq1ms12k3i"; depends=[bupaR cli data_table dplyr forcats ggplot2 glue rlang stringi tidyr]; };
   pso = derive2 { name="pso"; version="1.0.4"; sha256="0dq02pv86iwxpvd8wfbryxfsxqrrw4991iim60nyh8mn02gflkmi"; depends=[]; };
   psoptim = derive2 { name="psoptim"; version="1.0"; sha256="1yziabkd3h05cfl5jy5l8ji2y3w21acvxsq3inxyh0iwyr8qdkkl"; depends=[]; };
   psp = derive2 { name="psp"; version="1.0.0"; sha256="0fjpjzf0m1f5xw1jrxn78m4r8ghwkcs2fsfhivbvws31gc11h7k0"; depends=[data_table Rcpp RcppArmadillo]; };
   pspatreg = derive2 { name="pspatreg"; version="1.1.2"; sha256="0giaxz7zdwik6qw9xlgipxwksdia044y2h64ik2bz03hi21w5n2i"; depends=[AmesHousing dplyr fields ggplot2 MASS Matrix MBA minqa numDeriv plm Rdpack sf spatialreg spdep stringr]; };
   pspearman = derive2 { name="pspearman"; version="0.3-1"; sha256="09l3knwaj4xs9dfz1xcj4mbynd4w1vxcgmzfqxz97czzbf7ingwh"; depends=[]; };
-  pspline = derive2 { name="pspline"; version="1.0-19"; sha256="0h7y9l64knx291ms5mlc65dl3ljzgmrfzdqk1rd7iy8x7wcvymds"; depends=[]; };
-  pspline_inference = derive2 { name="pspline.inference"; version="1.0.4"; sha256="1ijz642igm27xg3928w9ffvykai26aar5awbcilrjbkm6fk7yd4w"; depends=[assertthat dplyr magrittr mgcv plotrix plyr reshape2 rlang]; };
+  pspline = derive2 { name="pspline"; version="1.0-20"; sha256="12pbjdxvb92qwzxrdag3cgaa12v9psy5whvw8p7i0p8dhydwv9za"; depends=[]; };
   psqn = derive2 { name="psqn"; version="0.3.1"; sha256="05nzyapilhzwjgc3lizg424i28mshmwirpggg79hssjqmqraflpj"; depends=[Matrix Rcpp RcppEigen testthat]; };
   pssmooth = derive2 { name="pssmooth"; version="1.0.3"; sha256="08syh52gjaf72kq01v6b5dljmwi29nvmjmkkgmjb97zsi15z1wd3"; depends=[chngpt MASS np osDesign]; };
   pstest = derive2 { name="pstest"; version="0.1.3.900"; sha256="1rhd4vgqpr9yq0pc3xql3nfgl30v20ldywapp9n967ky2dja4k0z"; depends=[glmx MASS]; };
@@ -15956,18 +16217,17 @@ in with self; {
   psycho = derive2 { name="psycho"; version="0.6.1"; sha256="1a3qccr9jwrbwkfbrvckkhhk9qygrc5n4mq80kpzx0zy5bylxi0a"; depends=[bayestestR dplyr effectsize ggplot2 insight parameters scales stringr]; };
   psychometric = derive2 { name="psychometric"; version="2.4"; sha256="1mlggzw80pb7kfykva1s4ic726l8dckrgik2519njh32ycvk9x1s"; depends=[dplyr multilevel nlme purrr]; };
   psychomix = derive2 { name="psychomix"; version="1.1-8"; sha256="0lfhfcmrk65gkr1yp317b515vmadbcf0vjcnc76d07yp6yfkz5qw"; depends=[flexmix Formula lattice modeltools psychotools]; };
-  psychonetrics = derive2 { name="psychonetrics"; version="0.11.5"; sha256="0syfnjmkwlzfjpl6wpqrbrww1wmddj0l9vwjll1mg0v3as69m28b"; depends=[abind combinat corpcor dplyr GA glasso IsingSampler lavaan magrittr Matrix mgcv numDeriv optimx pbapply pbv psych qgraph Rcpp RcppArmadillo rlang roptim tidyr VCA]; };
-  psychotools = derive2 { name="psychotools"; version="0.7-3"; sha256="1yl5b3ws95c80gwjxdrcqj5pv7k3vf6ixb390xc758hz0b4gawqx"; depends=[]; };
-  psychotree = derive2 { name="psychotree"; version="0.16-0"; sha256="1mk747m37yhhgvwikc88s0m86rgwbzkkv797jwxfpk8fsd79xqc8"; depends=[Formula partykit psychotools]; };
+  psychonetrics = derive2 { name="psychonetrics"; version="0.12"; sha256="0kpfkn1sy773vafh7jxbdmcawyssl7lkvr8bg0wr864dq6j1jjbc"; depends=[abind combinat corpcor dplyr GA glasso IsingSampler lavaan magrittr Matrix mgcv numDeriv optimx pbapply pbv psych qgraph Rcpp RcppArmadillo rlang roptim tidyr VCA]; };
+  psychotools = derive2 { name="psychotools"; version="0.7-4"; sha256="197hym0fxfsyg6kf0pf9g5wbsa1kkicd4lqrxfy2g3c7aczad9zy"; depends=[]; };
+  psychotree = derive2 { name="psychotree"; version="0.16-1"; sha256="04ipl6kadfvyl28wx8jbpisb4pcswrwq1qiqm90h47ldbnmha932"; depends=[Formula partykit psychotools]; };
   psychrolib = derive2 { name="psychrolib"; version="2.5.2"; sha256="0d43zhpl5ik90hqpdy62x7rwmxag3z1mdrn3cl1whr04rmymhk20"; depends=[Rcpp]; };
   psymetadata = derive2 { name="psymetadata"; version="1.0.1"; sha256="1m1b1fhiv31hjc7iy20c065w25mgzmsbp0vlh2vlzrlqmfw0qpwv"; depends=[Rdpack]; };
   psyntur = derive2 { name="psyntur"; version="0.1.0"; sha256="0dh7vdj3ynsxibcf0wmh5h4yknijg78azjzlma25glihpgd2nbbw"; depends=[dplyr effsize ez fastDummies formula_tools GGally ggplot2 ggthemes magrittr plyr psych purrr rlang tidyr tidyselect]; };
   psyphy = derive2 { name="psyphy"; version="0.3"; sha256="0s3bdzbjbdapfgg44qlk4dp2m3h3hhcqy93vh32170rzkxj82p4p"; depends=[]; };
   psyverse = derive2 { name="psyverse"; version="0.2.6"; sha256="1ry7n2nsj3vq8j5f10iqcldg3bas9mr1995d7hm1ih6dc4gbg934"; depends=[yaml yum]; };
   ptable = derive2 { name="ptable"; version="1.0.0"; sha256="142nw1rq9nm9fc6amcsdfy4qnv89p5yz90cxxbw1r4bylm86grs2"; depends=[data_table flexdashboard ggplot2 nloptr RColorBrewer rlang rmarkdown]; };
-  ptest = derive2 { name="ptest"; version="1.0-8"; sha256="1d30a23yknf7xgqj8adgr36pnh9dpffl1v5fq682f26fk3ss30qp"; depends=[quantreg]; };
   ptinpoly = derive2 { name="ptinpoly"; version="2.8"; sha256="126chp92ha48agx5i819bzdij79zbgj32msijvaid3zhxjx7qy1j"; depends=[misc3d]; };
-  ptm = derive2 { name="ptm"; version="0.2.6"; sha256="1ibkl9nz58nh52vyc18m1j8h0ackfc50ay6rd5dw33rrl0wiw1cp"; depends=[bio3d Biostrings curl httr igraph jsonlite muscle RCurl seqinr xml2]; };
+  ptm = derive2 { name="ptm"; version="1.0.1"; sha256="1g5yfck6dnlb5bc3cqjch9x7k9z4p84q84nnakjnf56c3ddvwrjr"; depends=[bio3d curl httr jsonlite]; };
   ptmixed = derive2 { name="ptmixed"; version="1.1.3"; sha256="1wdasnmddb2k8n7vzsjqw6kjg6hgh8bjn6m8fgrhxdrpp2pgrqx4"; depends=[GLMMadaptive lme4 matrixcalc moments mvtnorm numDeriv tweeDEseq]; };
   ptools = derive2 { name="ptools"; version="2.0.0"; sha256="12k47f2nwf5r0d4r1n3qksdsd1gk3ax519hqz6803hynwlcqx2a3"; depends=[igraph partitions RANN raster sf sp spatstat_geom spatstat_utils]; };
   ptspotter = derive2 { name="ptspotter"; version="1.0.2"; sha256="0mw9s2h6bhyjrcw9f0ayzcwg30inwyr7dqfk43qc24ppkclh85wh"; depends=[beepr log4r pryr stringr this_path]; };
@@ -15980,16 +16240,16 @@ in with self; {
   public_ctn0094data = derive2 { name="public.ctn0094data"; version="1.0.6"; sha256="105v4if9fqbqfrgkvcc6ws2cggn67fp3nh9y41absd7jvmzsb49h"; depends=[]; };
   public_ctn0094extra = derive2 { name="public.ctn0094extra"; version="1.0.4"; sha256="0zmf0nx6skzpbdy8niqm2d7an1q4wy6y30wim53i18mzpm84wys4"; depends=[dplyr magrittr public_ctn0094data purrr tibble tidyr]; };
   publipha = derive2 { name="publipha"; version="0.1.2"; sha256="03fpwxh5fyiq84wvmp5yyvsvqnznxyc4ncffn0nfhdnj5giymqvh"; depends=[BH loo Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders truncnorm]; };
-  pubmed_mineR = derive2 { name="pubmed.mineR"; version="1.0.19"; sha256="0yh4gjhh7nw5vh3ksay2z5pgskmasbagzbgb3bfxch9b6arv6kgc"; depends=[boot R2HTML RCurl RJSONIO XML]; };
+  pubmed_mineR = derive2 { name="pubmed.mineR"; version="1.0.20"; sha256="0apmdrn5bdis55d73j8xgfvv4x54fplmny5c28y5pwa262kchbid"; depends=[boot R2HTML RCurl RJSONIO XML]; };
   pubmedR = derive2 { name="pubmedR"; version="0.0.3"; sha256="153br94iqayrvvgzrzx0r3ilcrmnznfdnzk8yaii01s8i1g1wxcd"; depends=[rentrez XML]; };
   pubmedtk = derive2 { name="pubmedtk"; version="1.0.4"; sha256="176idn5q7aac9bsvw0qbxq8qdx9axg5prsvv2rjrwx6hhf2gz20a"; depends=[assertthat dplyr httr jsonlite magrittr rlang stringr xml2]; };
   pubtatordb = derive2 { name="pubtatordb"; version="0.1.4"; sha256="0i5azbf75bwxxzpsr5fc2hh22pbwix00hz9dcdpn5jgp2957f7wx"; depends=[assertthat DBI dplyr R_utils readr RSQLite]; };
   pullword = derive2 { name="pullword"; version="0.3"; sha256="125d091ba9h8h61y0m1bnflklmz898sp9w6ibca50vwz3d2qy5rz"; depends=[RCurl]; };
   puls = derive2 { name="puls"; version="0.1.2"; sha256="0cdgcm4fvakk2mdjmlsnin3d0bf56wrm23p9f4bhh5j1ib68lsh5"; depends=[cluster dplyr fda fda_usc ggplot2 monoClust purrr rlang tibble tidyr]; };
   pulsar = derive2 { name="pulsar"; version="0.3.11"; sha256="14wkqxgi8vi5szd01j5q5vis07zav22wljy32g3vljxyn8jyz0pf"; depends=[Matrix]; };
-  pulseTD = derive2 { name="pulseTD"; version="0.1.0"; sha256="0sdnswinpnm0vvplrh5gl9gx4p03dx175mqxzg5r52rkzd3rfbsr"; depends=[AnnotationDbi Biobase GenomicAlignments GenomicFeatures ggplot2 Rsamtools S4Vectors SummarizedExperiment]; };
   pumilioR = derive2 { name="pumilioR"; version="1.3.1"; sha256="1791r5lkr6hafd2rz9f9nfy5vc03c4833f292khvd2cg43sb0bfc"; depends=[RCurl XML]; };
   puniform = derive2 { name="puniform"; version="0.2.7"; sha256="15q5wlcps7387rjz7p1f5kifg1fl5yxxy7gjx6fvspvqwjkjbs4z"; depends=[ADGofTest metafor numDeriv Rcpp RcppArmadillo]; };
+  puremoe = derive2 { name="puremoe"; version="1.0.1"; sha256="18sjbsaljhwzmw2sbmb5hb9w9s3i3qfppizk74fpqnm720rbcfd1"; depends=[curl data_table httr jsonlite pbapply rappdirs rentrez textshape xml2]; };
   pureseqtmr = derive2 { name="pureseqtmr"; version="1.4"; sha256="105v0ydl458xzgkdas7m8llf0672s9klv816sjl27dy0a3k8163f"; depends=[data_table devtools dplyr ggplot2 Peptides plyr rappdirs Rcpp readr stringr tibble]; };
   purge = derive2 { name="purge"; version="0.2.1"; sha256="1faf8mkaxsnj63wnig5rs50hd3j6vzaj0xkdz8kn0j7y2vvshp9p"; depends=[]; };
   purgeR = derive2 { name="purgeR"; version="1.8.2"; sha256="0w3mcij7q5aqbs5phiyqprgr3hvs77fnjmbayp2rwn9qm1sx160a"; depends=[doSNOW foreach progress Rcpp RcppProgress]; };
@@ -16021,16 +16281,17 @@ in with self; {
   pwt9 = derive2 { name="pwt9"; version="9.1-0"; sha256="0m2df89lali9945avcv4gdjpxch9in7vdd042nx0q8nv0alb4ijd"; depends=[]; };
   pxR = derive2 { name="pxR"; version="0.42.7"; sha256="05i1cg35hq0z37xnh2qfcp8mnrphadrg7av5d0mcgi9nx6c1w80j"; depends=[plyr reshape2 RJSONIO stringr]; };
   pxweb = derive2 { name="pxweb"; version="0.17.0"; sha256="10c3cdlgjkp0bfr6xdn5h1221krv4c4i1j4mgbh38ykrzrm4d6am"; depends=[checkmate curl httr jsonlite]; };
-  pyMTurkR = derive2 { name="pyMTurkR"; version="1.1.5"; sha256="1b1cbvjbnvw2h8l3lbm0ma80zgpm212wzfhyyr6dr115k237xy89"; depends=[curl reticulate XML]; };
+  pyMTurkR = derive2 { name="pyMTurkR"; version="1.1.6"; sha256="16a16rjm71xlv57lkw0w49cv563pg1b8ihligmacrnv9vmzv0843"; depends=[curl reticulate XML]; };
   pycno = derive2 { name="pycno"; version="1.4"; sha256="1df7fbizm8r705dddb9xhypf39i6avsn5gpq0r7jx07nv1gmbmbw"; depends=[sf sp]; };
   pyinit = derive2 { name="pyinit"; version="1.1.3"; sha256="0cbwip549d17ysbk4lrvn6a25vfjjnimjsd5myvnbvg8c9nq5ryn"; depends=[robustbase]; };
   pylintR = derive2 { name="pylintR"; version="0.1.0"; sha256="00k9p3igdxhyx353gq8j9mnhrs9fh0j4q2iqa2ljfjdsdw1r2asr"; depends=[fansi htmlwidgets rstudioapi]; };
   pyramid = derive2 { name="pyramid"; version="1.5"; sha256="0lakn9knmhqvhrp98sc3hhwd4bilpplxbr5j9bv8w6li0qd3d04a"; depends=[]; };
   pysd2r = derive2 { name="pysd2r"; version="0.1.0"; sha256="1dqvgdxj6m683wkjyjhv685xnhl9328bm921zphm1i9p70fahs0n"; depends=[knitr reticulate tibble]; };
-  pysparklyr = derive2 { name="pysparklyr"; version="0.1.3"; sha256="13y0a9sxsfj5zn83k5583wsbpz12s583p3zxdm0q3jg8zr76yci2"; depends=[cli DBI dbplyr dplyr fs glue httr2 magrittr processx purrr reticulate rlang rsconnect rstudioapi sparklyr tidyr tidyselect vctrs]; };
+  pysparklyr = derive2 { name="pysparklyr"; version="0.1.4"; sha256="1qya9v6hh2jrsxihz87yk2sxhyp7mcnjl4invv7n5awq9ljz946l"; depends=[cli DBI dbplyr dplyr fs glue httr2 magrittr processx purrr reticulate rlang rsconnect rstudioapi sparklyr tidyr tidyselect vctrs]; };
   pzfx = derive2 { name="pzfx"; version="0.3.0"; sha256="0f8bvwnk44wq8j58rw80b9bclknrh4a3iqdl3p4y26q100cpisgr"; depends=[xml2]; };
   qCBA = derive2 { name="qCBA"; version="0.5.1"; sha256="1r9khpmdxjcnlbx4ccg26vsyp3wdc06bvlx9yl9zm4kwfi68aj9y"; depends=[arc arules rJava]; };
   qGaussian = derive2 { name="qGaussian"; version="0.1.8"; sha256="02xy35xg4swr1ldnsbywnz2h0ga1pbsivnj0aqmpll7kvwl9qz4c"; depends=[Rcpp robustbase zipfR]; };
+  qMRI = derive2 { name="qMRI"; version="1.2.7.6"; sha256="0mbxgg80p159vkz05hbzvvip7h5y5rpvjrjnq1vivz855dk0053g"; depends=[adimpro aws awsMethods oro_nifti stringr]; };
   qPCRhelper = derive2 { name="qPCRhelper"; version="0.1.0"; sha256="0v1d4k2v2sgcy0xh2vq21yv9sw71bj44rc273g9ggg214zqdprxd"; depends=[dplyr ggplot2 ggpubr magrittr rstatix]; };
   qPCRtools = derive2 { name="qPCRtools"; version="1.0.1"; sha256="1m9niwqva1b7spkk8xn4n6f7xnfv9zmh1ardahaq10wr7c0x11sy"; depends=[broom dplyr ggplot2 ggpmisc ggthemes kableExtra magrittr multcomp rstatix tibble tidyr]; };
   qacBase = derive2 { name="qacBase"; version="1.0.3"; sha256="0rmxmaaa162w1qrbkcm2fd2rnrp2kqjjh6mpszpv1lpfdaq7p4yq"; depends=[crayon dplyr ggcorrplot ggExtra ggplot2 haven multcompView patchwork PMCMRplus purrr rlang tidyr]; };
@@ -16045,7 +16306,7 @@ in with self; {
   qcauchyreg = derive2 { name="qcauchyreg"; version="1.0"; sha256="1jry8xg6q4d9bxznrw8jxlbivnf5y944xdzv320fv4milk22g30x"; depends=[quantreg]; };
   qcc = derive2 { name="qcc"; version="2.7"; sha256="0lc26w7p3d023lfr8v6v75m2vwqg9vi9pdipap19l4vbdq29l4zz"; depends=[MASS]; };
   qccrs = derive2 { name="qccrs"; version="0.1.0"; sha256="0lwrmf2809zzdj5f25bb1psh57ibyw90ra41fy2i9vjmgph9wgiq"; depends=[dplyr magrittr purrr tibble]; };
-  qch = derive2 { name="qch"; version="1.0.0"; sha256="1kizr319kjr6xsgz7n0dhgp8rxr4j1x4bcr5cnifkp6z2zh92vka"; depends=[ks mclust]; };
+  qch = derive2 { name="qch"; version="2.0.0"; sha256="1d2mcyzfnpmr4pv036crhsc91gypj0jrn6hmd9jcnm49khqc0lan"; depends=[copula dplyr ks purrr qvalue Rcpp RcppArmadillo stringr]; };
   qcpm = derive2 { name="qcpm"; version="0.3"; sha256="0yjqbhazmdgw08yn1r8pxafgwxzhb76nmxzb8k68risd2r49jikj"; depends=[broom cSEM quantreg]; };
   qcr = derive2 { name="qcr"; version="1.4"; sha256="14nilw60p2kcabh9w5k8bvdjqx4lm5lj79qiigg3i372byq5gb7r"; depends=[fda_usc MASS mvtnorm qcc]; };
   qcv = derive2 { name="qcv"; version="1.0"; sha256="0hf02l9c1cpzs02mfn9swfc8l635qsvh6xrhj21g19h5rxaf8jwg"; depends=[]; };
@@ -16065,23 +16326,25 @@ in with self; {
   qgisprocess = derive2 { name="qgisprocess"; version="0.3.0"; sha256="0l7696hl728vcjapsczkj3lvip23b1n22skk6cinwkjb8hyc7h9y"; depends=[assertthat glue jsonlite processx rappdirs rlang stringr tibble vctrs withr]; };
   qgraph = derive2 { name="qgraph"; version="1.9.8"; sha256="1m019j5nxc0184p0r2zgdn457g555nxsp2s08maa053nydj1va0l"; depends=[abind colorspace corpcor fdrtool ggplot2 glasso gtools Hmisc igraph jpeg lavaan Matrix pbapply plyr png psych Rcpp reshape2]; };
   qgshiny = derive2 { name="qgshiny"; version="0.1.0"; sha256="0ydhwg4abn8n9pwnjnwf1n1k854zw31z8f2splzdm5j279lsjg3r"; depends=[rmarkdown shiny]; };
-  qgtools = derive2 { name="qgtools"; version="2.0"; sha256="1gj7vbam53yr2rnxzfxng1p107bjcyjmyj47cxyzaiv19pznkbmw"; depends=[]; };
   qicharts = derive2 { name="qicharts"; version="0.5.8"; sha256="1n8jvb9dfb2k60zi9z99sncpwqbbj0h8zngmqq2k795zpa79gf1d"; depends=[ggplot2 lattice latticeExtra scales]; };
-  qicharts2 = derive2 { name="qicharts2"; version="0.7.4"; sha256="147wzp1n55nrmrjzkzflrz1g2r4iif5nyncjlmcp9zk22qx1kl05"; depends=[ggplot2 scales]; };
+  qicharts2 = derive2 { name="qicharts2"; version="0.7.5"; sha256="12r191bb1fri33h5lcb8lcpzv0f916a8x36fg87i31zh6id94vyc"; depends=[ggplot2 scales]; };
   qif = derive2 { name="qif"; version="1.5"; sha256="12azs7c0anpd71d5663y1jrhirry6cr78wislp4fk64hmsbx7sx4"; depends=[MASS]; };
   qiitr = derive2 { name="qiitr"; version="0.1.1"; sha256="0qbqx7g4np2ygyxiqmq5cww1az6ijjx6na6b1mp4ywmyxkjg3k29"; depends=[httr jsonlite purrr rstudioapi]; };
   qkerntool = derive2 { name="qkerntool"; version="1.19"; sha256="14inry2hqvkmy0y2y3cl75ri4vri0hirv98gw2rymny69lia5x0s"; depends=[class]; };
-  qlcal = derive2 { name="qlcal"; version="0.0.10"; sha256="1kw1xgxkzvjwdk4wg8h9r0kd31d6vwrblhxgysz5d490q80np6sr"; depends=[BH Rcpp]; };
+  qlcData = derive2 { name="qlcData"; version="0.3"; sha256="0zwmp5567v7mzjki8sf0xc7vzzyb3bfsnmr2liak5j2a7dsp81hb"; depends=[ape data_tree docopt phytools shiny stringi yaml]; };
+  qlcMatrix = derive2 { name="qlcMatrix"; version="0.9.8"; sha256="0d38jb653787s05g8syc9wgaljaifmkviijwz5rzcd881glgs8sv"; depends=[docopt Matrix slam sparsesvd]; };
+  qlcVisualize = derive2 { name="qlcVisualize"; version="0.3"; sha256="0njckbdrvzjlmdxmdygcxh6zc30r0gcna5i8jyr1cibmckcbl96h"; depends=[alphahull cartogramR concaveman fields geodata mapplots maps MASS qlcMatrix RSpectra seriation sf sp spatstat_geom spatstat_random]; };
+  qlcal = derive2 { name="qlcal"; version="0.0.11"; sha256="0r40vjnp8aqsdd6wznaff6awadcm64j0am5nln564zw8g8amwl6l"; depends=[BH Rcpp]; };
   qlifetable = derive2 { name="qlifetable"; version="0.0.2-4"; sha256="01p5gkadmfw2hc9h1gdg88k2g7rq204km9ncldmpf10vnglpiww0"; depends=[]; };
   qmap = derive2 { name="qmap"; version="1.0-4"; sha256="02xvq1mw83gln7phacbi3vhkvb100crggbldv13mhwq3wjnmg5k2"; depends=[fitdistrplus]; };
   qmd = derive2 { name="qmd"; version="1.1.2"; sha256="15y1bivli3jy09l4j37zp327x1nchkg6qm8hs46srcxznh9zb99d"; depends=[cowplot dplyr ggplot2 qad Rcpp]; };
   qmethod = derive2 { name="qmethod"; version="1.8.4"; sha256="0smkqqq8pcxix4lf35skkf9p5jw9mc3llkmyr334qkk85kvgnwn6"; depends=[digest knitr psych xtable]; };
   qmrparser = derive2 { name="qmrparser"; version="0.1.6"; sha256="0d17b64gzf5xlhc5z8qxjj759c1paiv8kxikk2r6ph6zfwvvxw0y"; depends=[]; };
   qmvs = derive2 { name="qmvs"; version="0.2.0"; sha256="0mmz0f62n5yip3h7knagc3rp7kb5jyfr9a24ih6knya5lri5d70h"; depends=[]; };
-  qoi = derive2 { name="qoi"; version="0.0.4"; sha256="0sdarr3f6by3kgaq7302kwkgv0vcy4q0mkprdlawkybaafzlzb9x"; depends=[]; };
+  qoi = derive2 { name="qoi"; version="0.1.0"; sha256="1zia8k95lmxpqfpkci6kln5d8n86fnnahyb8xd52ivqglifv5g56"; depends=[]; };
   qpNCA = derive2 { name="qpNCA"; version="1.1.6"; sha256="1mlv9yc929w8ypfzhfplhjbxxj1qdx4v9gh6dr68lylvm9ahx032"; depends=[dplyr ggplot2 knitr magrittr tidyr]; };
   qpcR = derive2 { name="qpcR"; version="1.4-1"; sha256="1r01q7jv3w59yx1gc0qw91rq7rvdhqsi8y57sqqkmwyqfw2x2vsv"; depends=[MASS Matrix minpack_lm rgl robustbase]; };
-  qpdf = derive2 { name="qpdf"; version="1.3.2"; sha256="0xp9x11jpih59s0skfswi5chmv1p8zhz4f66w0nxfx4jhyj0bjfr"; depends=[askpass curl Rcpp]; };
+  qpdf = derive2 { name="qpdf"; version="1.3.3"; sha256="0lzyc1g7q809h047il5nkizv124j13m1zf3j32in0gx7dyz10mj1"; depends=[askpass curl Rcpp]; };
   qpmadr = derive2 { name="qpmadr"; version="1.1.0-0"; sha256="0krv3zhr42z2mkkbn2bkglzfxbf06dmd9vnnc3rcyhm1r85n4fbq"; depends=[checkmate Rcpp RcppEigen]; };
   qqboxplot = derive2 { name="qqboxplot"; version="0.3.0"; sha256="1rsipw7cn2gqpqpa0ysj99ms5jpnbynjs4gkkmbr2w0c2466fhgx"; depends=[ggplot2]; };
   qqconf = derive2 { name="qqconf"; version="1.3.2"; sha256="18wfvljd6gbf9am3hh14fgp06gpa04vw9nhl7q07li7rmlkxc1cl"; depends=[MASS Rcpp robustbase]; };
@@ -16096,7 +16359,7 @@ in with self; {
   qrcmNP = derive2 { name="qrcmNP"; version="0.2.1"; sha256="10yqksn9761fryjvx6srv2z1pzmlr5m69bch16j256j9k2lknsr4"; depends=[qrcm survival]; };
   qrcode = derive2 { name="qrcode"; version="0.2.2"; sha256="07dkvga60532ngqg77icdfzv1wmx1qdn02js7pwyjf55xgim3fvn"; depends=[assertthat]; };
   qrencoder = derive2 { name="qrencoder"; version="0.1.0"; sha256="1lg60lg2fiqdw0m228i8pln2p0kqp9f21qmrx6r6rwxifvwlfhv8"; depends=[base64enc png raster Rcpp]; };
-  qreport = derive2 { name="qreport"; version="1.0-0"; sha256="06ycxcs9kkx3m9f74bjvlj84jjp60wd0hjd40mgpir2559hqmqnb"; depends=[data_table Formula ggplot2 Hmisc htmltools knitr rms viridis]; };
+  qreport = derive2 { name="qreport"; version="1.0-1"; sha256="1d3dlpcf6w4bj6bwmydr3rlnscfdqyad6j2cm1rda7565q7k9iyf"; depends=[data_table Formula ggplot2 Hmisc htmltools knitr rms viridis]; };
   qris = derive2 { name="qris"; version="1.1.1"; sha256="0nx4x4ywgwg55fpv9cr30r09in4rzm6070fm0g88qpvgvrihs9a6"; depends=[ggplot2 nleqslv quantreg Rcpp RcppArmadillo stringr survival]; };
   qrjoint = derive2 { name="qrjoint"; version="2.0-9"; sha256="0dvz5adawy143r0ddgrblzac76igwmngnblr6vq57sxlvj1nsm7h"; depends=[coda kernlab Matrix quantreg]; };
   qrlabelr = derive2 { name="qrlabelr"; version="0.2.0"; sha256="1bv76d3fkficcaqg4kzkkxjq1p24c6hxd25jyfia96nkmxyds44m"; depends=[argonDash argonR assertthat bslib desplot dplyr ggplot2 purrr QBMS qrencoder raster reactable readxl shiny shinyBS shinycssloaders shinyjs shinyWidgets uuid]; };
@@ -16105,30 +16368,34 @@ in with self; {
   qrmtools = derive2 { name="qrmtools"; version="0.0-17"; sha256="1vv9y6mmvqnlimghw3dl873r4l47imwcp2x58yzrn53fa2y7b6mi"; depends=[ADGofTest lattice Quandl quantmod rugarch xts zoo]; };
   qrng = derive2 { name="qrng"; version="0.0-10"; sha256="0j46rlxyfahz271hckcr42i437n0vc77bvg5p1fi5zb6pywlxvji"; depends=[]; };
   qrnn = derive2 { name="qrnn"; version="2.1.1"; sha256="1jacj0ybcbfhll5nvx31h00jm1rlcyzw3kcbxffrmpa9hd1spxql"; depends=[]; };
-  qs = derive2 { name="qs"; version="0.26.1"; sha256="0qmgnc4igy8mjzarm30cgi4z75hh8f01kvcs6n6s63cy4qk30vs6"; depends=[BH RApiSerialize Rcpp stringfish]; };
+  qs = derive2 { name="qs"; version="0.26.3"; sha256="1qqy6aada9jkq0z6bmzb5vhb18cdxvy7b6nwjd8saqaidqgs80c8"; depends=[BH RApiSerialize Rcpp stringfish]; };
   qsimulatR = derive2 { name="qsimulatR"; version="1.1.1"; sha256="00022yyfwpv7f28isbnqy8001nm6xvxnfb2sbjckl8vbv0sjvs9n"; depends=[]; };
+  qslice = derive2 { name="qslice"; version="0.3.1"; sha256="0df8988pr0kcz8xdi8sgl99mifs8djzjrannx52n42yck58g5hky"; depends=[]; };
   qsort = derive2 { name="qsort"; version="0.2.3"; sha256="1xvp29dijfa2207wyw3z09rmffn61fngfy0f00qjk284n1jnnvrg"; depends=[cowplot ggplot2 gridExtra purrr]; };
   qsplines = derive2 { name="qsplines"; version="1.0.1"; sha256="0zln3w2qx8ck9631hkq8ig5bc2l55wg5mdp3i0fm9amg8mhzq37i"; depends=[BH onion Rcpp shiny]; };
-  qspray = derive2 { name="qspray"; version="2.1.1"; sha256="164ls4a4cij7szbi6jwia2021cgrv4zjhmamslyhnfymdj2nz051"; depends=[BH DescTools gmp purrr RationalMatrix Rcpp RcppArmadillo Ryacas]; };
+  qspray = derive2 { name="qspray"; version="3.0.0"; sha256="1vxs8z6whl5a829nk4cjljl47722nzgi8pl0wfhry1skans6gbkq"; depends=[BH DescTools gmp partitions purrr RationalMatrix Rcpp RcppArmadillo Ryacas]; };
   qst = derive2 { name="qst"; version="0.1.2"; sha256="0f5c4088y9c5fxyy2dyfkp049lnzvys3zyizazxsa82xwkwsbc8a"; depends=[DBI dbplyr dplyr magrittr RSQLite tibble]; };
   qsub = derive2 { name="qsub"; version="1.1.3"; sha256="0ygys183pj420jr9bz13x009qis3qr1aqxgw3l2d4xx3xv90iy3g"; depends=[dplyr glue pbapply processx purrr random readr ssh stringr tidyr]; };
   qte = derive2 { name="qte"; version="1.3.1"; sha256="1hz3rwsi3w2b1xjigf5s3866djcxdkjz7jwcz0rin22v5h6sql80"; depends=[BMisc data_table formula_tools ggplot2 Hmisc pbapply quantreg texreg]; };
   qtl = derive2 { name="qtl"; version="1.66"; sha256="10fnc3ms97rdqsqxz5jpvg2cmrwmz69wjxxs3h65r1yhy94pssnl"; depends=[]; };
-  qtl2 = derive2 { name="qtl2"; version="0.34"; sha256="1h3wim850b2xk09z9vgnyfp20k7vg94zf7szcrlw5nf1w9gn4wzy"; depends=[data_table jsonlite Rcpp RcppEigen RSQLite yaml]; };
-  qtl2convert = derive2 { name="qtl2convert"; version="0.28"; sha256="06703m9mkpc77agkmikr9bhr4ag1z161k8pq8l1i562mkd0qlgs8"; depends=[qtl qtl2 Rcpp]; };
+  qtl2 = derive2 { name="qtl2"; version="0.36"; sha256="0sy4j3f1dw7w7qcp3lsc5mmd8kwa5qaxcl8c4236a8zbzkvvnp5j"; depends=[data_table jsonlite Rcpp RcppEigen RSQLite yaml]; };
+  qtl2convert = derive2 { name="qtl2convert"; version="0.30"; sha256="1rpg74gblh30qy0byxvyhlrimcgx7ml5jn7dxs032my7pa58mspf"; depends=[qtl qtl2 Rcpp]; };
   qtl2fst = derive2 { name="qtl2fst"; version="0.26"; sha256="0wpqpmj752pwjgghv7b30r69nc950h5fnsszsj142p7vws7ss8j9"; depends=[fst qtl2]; };
   qtl2ggplot = derive2 { name="qtl2ggplot"; version="1.2.4"; sha256="0ygadcm05fqkpa8j2h6rpcxpd287g2av7qnlwlqp1s86zfxshk96"; depends=[assertthat dplyr ggplot2 ggrepel purrr qtl2 RColorBrewer Rcpp rlang stringr tidyr]; };
   qtl2pattern = derive2 { name="qtl2pattern"; version="1.2.1"; sha256="12ysbqcf7bq1ibdyznlzc3kg71k7vd6cgy9xgmmhmdv8hkhdlf26"; depends=[assertthat dplyr fst ggplot2 qtl2 qtl2fst rlang stringr tidyr]; };
   qtl2pleio = derive2 { name="qtl2pleio"; version="1.4.3"; sha256="0az71vgj1gv7rfz0hnc9rysh49ak2pnkvmih5mwmymr4an84c34k"; depends=[dplyr gemma2 ggplot2 magrittr MASS Rcpp RcppEigen rlang tibble]; };
+  qtlDesign = derive2 { name="qtlDesign"; version="0.953"; sha256="1lgdmkvmakad7w40pm79gdas1zraz2rcymdsysas0hyfvwxyly95"; depends=[]; };
   qtlbook = derive2 { name="qtlbook"; version="0.18-8"; sha256="1c849xy2ki7niddajv5wnsm0zdp5381w8zm9lc8rvkdbs2v6rhf4"; depends=[]; };
   qtlc = derive2 { name="qtlc"; version="1.0"; sha256="17ij4alx4qg556b5kq7qsjygj5jf8iyx1f0v52pvx1z2sm6nppww"; depends=[plot3D rgl tiff]; };
   qtlcharts = derive2 { name="qtlcharts"; version="0.16"; sha256="1bf7cdcbbxblsx357pymq54yr4aa7iaxpq4f73nbxdal9nbcqkda"; depends=[htmlwidgets qtl]; };
   qtlhot = derive2 { name="qtlhot"; version="1.0.4"; sha256="0gf0fsq91g830vqg5kz01zznm40qpjncy964ccvmms3i6d3hxd9m"; depends=[corpcor mnormt qtl]; };
   qtlmt = derive2 { name="qtlmt"; version="0.1-6"; sha256="023h60z8d05832l2g7mg776hfjb0i7xpvhz3i899rc3h5pgjd94c"; depends=[]; };
   qtlnet = derive2 { name="qtlnet"; version="1.5.4"; sha256="0jdf3hyzas0lyv2v4gqai9mhh7218a1mvm0nlwv9hfdbij0hi84v"; depends=[graph igraph pcalg qtl sem]; };
+  qtlpoly = derive2 { name="qtlpoly"; version="0.2.4"; sha256="1lcfb19akddxljwvgsryjvhks0lqkdg7f1br1l2szd6qyd4mmdvs"; depends=[abind CompQuadForm doParallel foreach ggplot2 gtools mappoly MASS Matrix mvtnorm nlme quadprog Rcpp RcppArmadillo RcppProgress RLRsim]; };
   qtwAcademic = derive2 { name="qtwAcademic"; version="2022.12.13"; sha256="1llckj25x2wr3g3wa1m43fqa6v9ddyf444wbwwjdfwc9ix9j5fkj"; depends=[fs]; };
   quRan = derive2 { name="quRan"; version="0.1.0"; sha256="108d797l9ggggc5b61pl7f6avzknmnnib2ys5vrg385zfbx9srvw"; depends=[]; };
   quadcleanR = derive2 { name="quadcleanR"; version="1.1.0"; sha256="1kiadc6wwq89yb6pdld646afqhh7i3xs1f667vab3svygfqn670x"; depends=[magrittr]; };
+  quadform = derive2 { name="quadform"; version="0.0-2"; sha256="0w01v688xfb9zl7yr2prr9hwpylbx2cc8qwidxkzyzxzk21ywdn3"; depends=[mathjaxr]; };
   quadmatrix = derive2 { name="quadmatrix"; version="0.1.0"; sha256="0nngrvvbalmrr6g9bq9f5qrllvwfq5p1b9yhs4zb098s3wga8jms"; depends=[geigen matrixcalc]; };
   quadmesh = derive2 { name="quadmesh"; version="0.5.5"; sha256="0af795r29976ir0ma48chmlm17001xg5wd29waz356cfhinzs2nk"; depends=[geometry gridBase palr png raster reproj scales sp]; };
   quadprog = derive2 { name="quadprog"; version="1.5-8"; sha256="1ka9g8zak8sg4y2xbz93dfrldznlk9qpd4pq9z21cdcdn3b8s4i2"; depends=[]; };
@@ -16145,10 +16412,10 @@ in with self; {
   quantCurves = derive2 { name="quantCurves"; version="1.0.0"; sha256="0z00agd4q157cjkc4gwyfw3kka043wcf5j7yzn8cqm281fqh1jny"; depends=[KernSmooth locpol np quantreg quantregGrowth]; };
   quantdates = derive2 { name="quantdates"; version="1.0"; sha256="1hyds8rwr1yg740aq4w5fqjrwdf3dl4phf8mj8qsgbb7i0wbbf3q"; depends=[lubridate]; };
   quantdr = derive2 { name="quantdr"; version="1.2.2"; sha256="0w6jdd6i4wxbk4fp44rmy32mwq9ng63zwamq8zpa1hlfbm5qh4s2"; depends=[dr KernSmooth mvtnorm quantreg]; };
-  quanteda = derive2 { name="quanteda"; version="3.3.1"; sha256="0rj13m0fmk0h9akmqwwp7nkwrvym7sj97jgvjr4mvi3sglq451b2"; depends=[fastmatch jsonlite magrittr Matrix Rcpp RcppArmadillo RcppParallel SnowballC stopwords stringi xml2 yaml]; };
-  quanteda_textmodels = derive2 { name="quanteda.textmodels"; version="0.9.6"; sha256="1shsyz8nz8cabmsgrimxym4b0fd3zbjp3vx5si41rp9gr9c94sx1"; depends=[glmnet LiblineaR Matrix quanteda Rcpp RcppArmadillo RcppParallel RSpectra SparseM stringi]; };
+  quanteda = derive2 { name="quanteda"; version="4.0.2"; sha256="1s046p3bnf36z2mqh5ijirq7jygqj5clal3r0l3f89gr0466a75j"; depends=[fastmatch jsonlite lifecycle magrittr Matrix Rcpp RcppArmadillo SnowballC stopwords stringi xml2 yaml]; };
+  quanteda_textmodels = derive2 { name="quanteda.textmodels"; version="0.9.7"; sha256="0whzy9hbybxmlzkckhlp6whbbg17vskx9bk40iy02j2z6fw6bqxg"; depends=[glmnet LiblineaR Matrix quanteda Rcpp RcppArmadillo RSpectra SparseM stringi]; };
   quanteda_textplots = derive2 { name="quanteda.textplots"; version="0.94.4"; sha256="0adl3dahr51f2sqdr0fng99r87pq4mknlqmhg6nfjx617rni9w2a"; depends=[extrafont ggplot2 ggrepel igraph Matrix network quanteda RColorBrewer Rcpp sna stringi]; };
-  quanteda_textstats = derive2 { name="quanteda.textstats"; version="0.96.4"; sha256="0x0b3zk1lmy0mxjpfnw7nshc9vp1i45gkd53g838ks207sdr8q4l"; depends=[Matrix nsyllable proxyC quanteda Rcpp RcppArmadillo RcppParallel stringi]; };
+  quanteda_textstats = derive2 { name="quanteda.textstats"; version="0.97"; sha256="0h8fyb8smyyhbfk677a2ldyl6b7sdjl0pzk5bbgz8qymw6yg1zdj"; depends=[Matrix nsyllable proxyC quanteda Rcpp RcppArmadillo stringi]; };
   quantification = derive2 { name="quantification"; version="0.2.0"; sha256="116cp88q9cmizxc2a8lsysa1vwyp1y86457fx5qkq5dcm4g721g8"; depends=[car]; };
   quantileDA = derive2 { name="quantileDA"; version="1.2"; sha256="136rjrim7q07pl3w76xs77nhsv7xvi8isw2924ngxmfp35hbhq16"; depends=[]; };
   quantilogram = derive2 { name="quantilogram"; version="2.2.1"; sha256="0gvr93d6jjixcrislym0mna2l3plqhl8adaqiagdvxg4y0adfmf0"; depends=[np quantreg SparseM]; };
@@ -16156,29 +16423,30 @@ in with self; {
   quantkriging = derive2 { name="quantkriging"; version="0.1.0"; sha256="0v6kckgzhgsn3158sc06xszdhmk8sfny10j1qyppxsl2hk89n8jf"; depends=[ggplot2 hetGP Matrix reshape2]; };
   quantmod = derive2 { name="quantmod"; version="0.4.26"; sha256="165vp2ygry8ibcpxjbyfvfrjbv98syln12kkyzci2ygp84r5sv1r"; depends=[curl jsonlite TTR xts zoo]; };
   quantoptr = derive2 { name="quantoptr"; version="0.1.3"; sha256="0f9vy9yhya4wpya8n345s6n7a5sb29chdkl5fz6dwa31lp1mvvj3"; depends=[quantreg Rdpack rgenoud stringr]; };
-  quantreg = derive2 { name="quantreg"; version="5.97"; sha256="18bdcxm2f8gc2bxdxrk80dcafl8d5snckp0913pkdsfyfrbxxrw7"; depends=[MASS Matrix MatrixModels SparseM survival]; };
+  quantreg = derive2 { name="quantreg"; version="5.98"; sha256="0qbad2wzw7qvsrm821k2vr0dsx75jj3qbs2sl9k3ymngv1cv5359"; depends=[MASS Matrix MatrixModels SparseM survival]; };
   quantreg_nonpar = derive2 { name="quantreg.nonpar"; version="1.0"; sha256="1f9120awnkwsgdiqg98lg7xs5l4y80930869x6k9q76595r5m92k"; depends=[fda mnormt quantreg Rearrangement]; };
   quantregForest = derive2 { name="quantregForest"; version="1.3-7"; sha256="0lk7r02i6zpx9sdl2rp0r7fc3a84s8qhg49nh2x7k3vxwa095pjz"; depends=[randomForest RColorBrewer]; };
-  quantregGrowth = derive2 { name="quantregGrowth"; version="1.7-0"; sha256="0as226mcchbq41wrhl3vb8j4szqvcfk9zdsnf9fnyn50ymh4c5mb"; depends=[quantreg SparseM]; };
+  quantregGrowth = derive2 { name="quantregGrowth"; version="1.7-1"; sha256="07hj5kanas42kj70p03h77j5m9vnvsnsb02r31snai4smbaps4ad"; depends=[quantreg SparseM]; };
   quantregRanger = derive2 { name="quantregRanger"; version="1.0"; sha256="1a9q2prr790bpw6s0y5ni5ppd3vqkjr0v4nqp6ywcj5n3sk69pvx"; depends=[ranger Rcpp]; };
   quantspec = derive2 { name="quantspec"; version="1.2-3"; sha256="0ifwq2jmvxhpijz9yd9hffkff6ixcliaqkp9ispp9k1b8icwi8zn"; depends=[abind quantreg Rcpp snowfall zoo]; };
-  quarks = derive2 { name="quarks"; version="1.1.3"; sha256="132ic5wr59sb89f352p7zspjx214575x45gla01dkcsimfrinjdg"; depends=[dygraphs ggplot2 progress rugarch shiny shinyjs smoots xts yfR]; };
+  quarks = derive2 { name="quarks"; version="1.1.4"; sha256="0srachhn2jxyz3i7ky5hb982232xnngaq66q76ffr3p1v4yfvgw3"; depends=[dygraphs ggplot2 progress rugarch shiny shinyjs smoots xts yfR]; };
   quarrint = derive2 { name="quarrint"; version="1.0.0"; sha256="13fdmmrgn23xd9vpywmcl7pf729gmcxjfl1wxs30axsbp4h1s6rk"; depends=[neuralnet]; };
   quartets = derive2 { name="quartets"; version="0.1.1"; sha256="0j5qgk3ha621l3njah54rnxf12ndafcai5bdvv96n888c3yki3nd"; depends=[]; };
   quarto = derive2 { name="quarto"; version="1.4"; sha256="092v5vbrqb1qbmzf0wv29lrkhcbk4nz8kz8cb27dmhx08ns7zk5c"; depends=[cli jsonlite later processx rlang rmarkdown rstudioapi yaml]; };
+  quaxnat = derive2 { name="quaxnat"; version="1.0.0"; sha256="0indrll8yqj95lx3f30sic2w5730r5my44sqn59mwhgvdh5rw693"; depends=[terra]; };
   queryparser = derive2 { name="queryparser"; version="0.3.2"; sha256="0va2h1midvf8adymqwg79flpqq7ciznk285kmyqdskkn87argjd2"; depends=[]; };
   queryup = derive2 { name="queryup"; version="1.0.5"; sha256="0rl31vs1m7qjbix1qgmvnxrvjf2k2ikd8p9frz1yia7xxaq1m286"; depends=[httr jsonlite]; };
   quest = derive2 { name="quest"; version="0.2.0"; sha256="0a3slzskacp0pj0whnnqysqiclf6fby5x81i4mjdvckidgdyjprf"; depends=[abind boot car checkmate lavaan lme4 MBESS multilevel nlme plyr psych str2str]; };
   questionr = derive2 { name="questionr"; version="0.7.8"; sha256="1abbnxnmljnn6ak55l4yrihr6fwrhzsb1rd7h8r0dijjwsgyawmg"; depends=[classInt highr htmltools labelled miniUI rlang rstudioapi shiny styler]; };
   queuecomputer = derive2 { name="queuecomputer"; version="1.2.0"; sha256="0qlcj4rqfkp8qanzwi1p2s7r89x5w6aa8zwkcl7rqapbd4nwayhc"; depends=[dplyr Rcpp RcppArmadillo tidyr]; };
   queueing = derive2 { name="queueing"; version="0.2.12"; sha256="0hw1ykm24cjpfwh7ac7fjf7mhc59mq8wy2g07aacpy5ibwi8bbsf"; depends=[]; };
-  quhomology = derive2 { name="quhomology"; version="1.1.1"; sha256="0wiih00zk4682wy1r4nyifh76h5bnvl3f785wjzmrwylnfy951l3"; depends=[MASS numbers]; };
   quickNmix = derive2 { name="quickNmix"; version="1.1.1"; sha256="01gnvnpfxry354qf772m187mfvjigqngjpi1k9y1g5nvlv7a4d62"; depends=[doParallel foreach optimParallel]; };
+  quickPWCR = derive2 { name="quickPWCR"; version="1.0"; sha256="1igxjrmli16lxf07xawkslb8gkas63sdpmxrl07vfwl8yq8n6wwl"; depends=[dplyr pbmcapply Rcpp]; };
   quickPlot = derive2 { name="quickPlot"; version="1.0.2"; sha256="0228mcv6cz74whzxmgcdb79w0k8mibszw4kwnjjs6pljz41rxcbq"; depends=[data_table fpCompare terra]; };
   quickReg = derive2 { name="quickReg"; version="1.5.0"; sha256="1l1v3k8albxlaz18l2b2x2ryifq4pbdq6n4q7555hnfcik9rqmw5"; depends=[dplyr ggplot2 nortest psych rlang survival]; };
   quickblock = derive2 { name="quickblock"; version="0.2.1"; sha256="1pl3cwb4byz3b4s08rahk20ckkwrl977qr4a7cw0pd09qm0qgcq3"; depends=[distances scclust]; };
   quickcheck = derive2 { name="quickcheck"; version="0.1.3"; sha256="0rm3pvhyqg1px8fp31cmbmv0zk9mvqhzl8qx9gm51kih2zfrksqy"; depends=[data_table hedgehog hms magrittr purrr testthat tibble]; };
-  quickcode = derive2 { name="quickcode"; version="0.7"; sha256="1v3vipcxzvz8radbkj7rq8v4l4pmx38cyyz5a042k2v7fzj24bw3"; depends=[Polychrome rstudioapi]; };
+  quickcode = derive2 { name="quickcode"; version="0.8"; sha256="04v95f8ppxqiyqi42z8lrgcygdfc9vb3zk30824jh83vwba9h2y8"; depends=[fitdistrplus Polychrome rstudioapi]; };
   quickmatch = derive2 { name="quickmatch"; version="0.2.2"; sha256="0y1yss83q4mpdb5ipldg2080vrnc5725452zrs89gxnsykx1qv6j"; depends=[distances sandwich scclust]; };
   quickpsy = derive2 { name="quickpsy"; version="0.1.5.1"; sha256="0dfqlpghnw79idw3ir03cxx9n88sqs5p14jz7jgpkdwvjpw1y4q9"; depends=[DEoptim dplyr ggplot2 MPDiR]; };
   quickregression = derive2 { name="quickregression"; version="0.2"; sha256="1z0sspi8q7dvgxqbj5na56v458pv6jhxrssnm6j23156dchgw39h"; depends=[car]; };
@@ -16191,7 +16459,6 @@ in with self; {
   quollr = derive2 { name="quollr"; version="0.1.1"; sha256="1qvgajd7bx38nhisb7y5i48fmw9vx6di34s08dkna34rjhafak0a"; depends=[dplyr ggplot2 interp langevitour proxy rlang rsample tibble tidyselect]; };
   quoradsR = derive2 { name="quoradsR"; version="0.1.0"; sha256="1gdb5zvi7hs2mpzv07w1mbm9w4ksidbz28mjb6w20bfpy6casfz5"; depends=[jsonlite]; };
   quotedargs = derive2 { name="quotedargs"; version="0.1.3"; sha256="11cswg9bmddsl1axxcdz11flq46p1zkpv022526f2vgl4qsprwbm"; depends=[]; };
-  qut = derive2 { name="qut"; version="2.2"; sha256="1jsp3sv1631ar1sad8fy4l60ar2pbi20g50yz9mhs83427n3l63b"; depends=[flare glmnet lars Matrix]; };
   qvcalc = derive2 { name="qvcalc"; version="1.0.3"; sha256="17sr4100ciy5jp0b8sxvqjxf4m176ayzd5yyaw40ri4xf6h0z7la"; depends=[]; };
   qwalkr = derive2 { name="qwalkr"; version="0.1.0"; sha256="0mxzx782lvdrm0hx0v6xgzvw3r9zlfp9bz1vss2l59fgdqlhavn4"; depends=[lifecycle]; };
   qwraps2 = derive2 { name="qwraps2"; version="0.6.0"; sha256="06i3h6ydjfvy7qrhzznsb272r843fgvykfsgaviq83gi8k5c5i00"; depends=[ggplot2 knitr Rcpp RcppArmadillo xfun]; };
@@ -16203,9 +16470,9 @@ in with self; {
   r2d2 = derive2 { name="r2d2"; version="1.0.1"; sha256="1956p9xr9as8v4673d6fsdyas3racfzh6a5pafqz56r8ai1ssbyq"; depends=[KernSmooth MASS sp]; };
   r2d3 = derive2 { name="r2d3"; version="0.2.6"; sha256="15mphywsr0603ipbgzac65n1nj7m77fmw3ypc33p9ng4fllg035r"; depends=[htmltools htmlwidgets jsonlite rstudioapi]; };
   r2dictionary = derive2 { name="r2dictionary"; version="0.2"; sha256="09xsmgb1vpqafn9z4yh64qc3gwpd1rpiyj4vpagck8779rxdkqph"; depends=[rstudioapi stringr]; };
-  r2dii_analysis = derive2 { name="r2dii.analysis"; version="0.3.0"; sha256="11bhhwigybrcr8nbrdwbv6a9rk944la5apnn5y3ahvr457jqdjsv"; depends=[dplyr glue lifecycle magrittr r2dii_data rlang tidyr tidyselect zoo]; };
-  r2dii_data = derive2 { name="r2dii.data"; version="0.4.1"; sha256="1sf8jyzn9ly8hn1fdph440pl666hcgpjds51h8apprqivn3ky9cv"; depends=[lifecycle]; };
-  r2dii_match = derive2 { name="r2dii.match"; version="0.1.4"; sha256="1nb0yik39wdcc22c0clszg9j3xk5sm5i9rzzcyj7zij55pcak7np"; depends=[data_table dplyr glue lifecycle magrittr purrr r2dii_data rlang stringdist stringi tibble tidyr tidyselect]; };
+  r2dii_analysis = derive2 { name="r2dii.analysis"; version="0.4.0"; sha256="02rawyr3z0zg2yhc04mdnjkwrczwwv2822vphwyv3vwwlayjy3fh"; depends=[dplyr glue lifecycle magrittr r2dii_data rlang tidyr tidyselect zoo]; };
+  r2dii_data = derive2 { name="r2dii.data"; version="0.5.0"; sha256="1f8gvian0l3wsw9bwyxzlwv0qpw4mz1qq4747hjm8d4jr37hi0r6"; depends=[lifecycle]; };
+  r2dii_match = derive2 { name="r2dii.match"; version="0.2.0"; sha256="12h7bn4dha4fiplwm7az4fyaa8cdkn3b4j3ndmwr6c2r11gfwy0n"; depends=[data_table dplyr glue lifecycle magrittr purrr r2dii_data rlang stringdist stringi tibble tidyr tidyselect]; };
   r2dii_plot = derive2 { name="r2dii.plot"; version="0.4.0"; sha256="0gfqhqkp9dnzjipgzf665am9mzyv5p7l13ahcw44bpmya4zrsifg"; depends=[dplyr ggplot2 ggrepel glue magrittr r2dii_data rlang scales stringr]; };
   r2fireworks = derive2 { name="r2fireworks"; version="0.1.0"; sha256="1kifyr4g92ca7n432jwi5x5qigikvka40k54xb6s8w5fjgfv7g9b"; depends=[htmltools shiny]; };
   r2glmm = derive2 { name="r2glmm"; version="0.1.2"; sha256="0iim92blpa59vgz97c2pi05yhbjjmaffdbkbmk5kplfb2vmazgiy"; depends=[afex data_table dplyr ggplot2 gridExtra lmerTest MASS Matrix mgcv pbkrtest]; };
@@ -16216,8 +16483,8 @@ in with self; {
   r2redux = derive2 { name="r2redux"; version="1.0.17"; sha256="07666saxzxy48i2dd0gi0m1x912dn5s78m9rqriwnavnx76ca20i"; depends=[]; };
   r2resize = derive2 { name="r2resize"; version="1.9"; sha256="19dsc3ljvgi8f4na71gbkz7fgq63y7vvwknzbwfrgz2ygpd0vyqg"; depends=[DT htmltools nextGenShinyApps quickcode shiny]; };
   r2rtf = derive2 { name="r2rtf"; version="1.1.1"; sha256="0lhz6ay2f250hqalz96h4x8pshg8v8zljzz3x9lvrdsygcc8hjyn"; depends=[]; };
-  r2shortcode = derive2 { name="r2shortcode"; version="0.1"; sha256="03djy8m146k31xgvwcbrd1nzwj4wdlvvwzgviv80kskgr6ld9jrj"; depends=[magrittr stringr]; };
-  r2social = derive2 { name="r2social"; version="1.1"; sha256="1a75ck2h5f6nnjniwj1a1y31dfsda6gw1db2l2j8fd5nf10piwgk"; depends=[htmltools shiny]; };
+  r2shortcode = derive2 { name="r2shortcode"; version="0.2"; sha256="1q6zf3pxdmh8p2mlls1iw2043cbn5pixfw1b4sv03gcipymp5jzy"; depends=[stringr]; };
+  r2social = derive2 { name="r2social"; version="1.2"; sha256="0lwdjbb99zab94nkbdw6ilkz3rvgv6lkrgcvb1z24midiykwfmfs"; depends=[htmltools quickcode shiny]; };
   r2spss = derive2 { name="r2spss"; version="0.3.2"; sha256="1d0znbw0bmgl8k9xwz78lmidh8338n3vq4f9qyqmb87nvjmiilhl"; depends=[car ggplot2 scales]; };
   r2stl = derive2 { name="r2stl"; version="1.0.3"; sha256="0xh4kz64013gpvrics7p24nq091953zh8yccifknrl7bn15z6sal"; depends=[]; };
   r2sundials = derive2 { name="r2sundials"; version="6.5.0-4"; sha256="03ibv93yh7idjrrrkjdbpsi4pnb3rjd48qdlqa89w0wn99lf5qqd"; depends=[Rcpp RcppArmadillo rmumps]; };
@@ -16229,7 +16496,7 @@ in with self; {
   r4googleads = derive2 { name="r4googleads"; version="0.1.1"; sha256="1v7nfr6fk9q5dchf3ig4169kv0vx1jrbbsgkdgfhhc2mz3cqck16"; depends=[curl jsonlite]; };
   r4lineups = derive2 { name="r4lineups"; version="0.1.1"; sha256="1p0dnrp21zx1l9lqx01jnq54d5ppb8siibv47i4gsp7c7db9ymxc"; depends=[boot dplyr ggplot2 ggrepel here magick magrittr pROC psych purrr]; };
   r4ss = derive2 { name="r4ss"; version="1.44.0"; sha256="1khcp386kxz2rwzfvx0a3bf3ws69dh9vqhjsnwh29gy6g238050d"; depends=[coda corpcor dplyr forcats ggplot2 kableExtra lifecycle stringr]; };
-  r5r = derive2 { name="r5r"; version="1.1.0"; sha256="07w7riqh7vkq4zqvi5hqcbk1nr8y2lq2kbg9738wpc7fsr4m5amg"; depends=[checkmate concaveman curl data_table httr jsonlite rJava sf sfheaders zip]; };
+  r5r = derive2 { name="r5r"; version="2.0"; sha256="1kvn7341v2dfbv580bzc3zhdmnxk400mjrbrs5bar2hwkwvv4w4r"; depends=[checkmate cli concaveman data_table jsonlite rJava rlang sf sfheaders zip]; };
   r6extended = derive2 { name="r6extended"; version="0.1.2"; sha256="1kq1j5rx57053mslj8jx1s0wjvhis7x3y264zw44q4k2x48q9wxs"; depends=[digest hellno magrittr R6]; };
   r6methods = derive2 { name="r6methods"; version="0.1.0"; sha256="18q1qd7hkxbk0yilqdk17cp7qbl4c71jv10z732539wcmy8svb1v"; depends=[dplyr glue magrittr miniUI purrr rstudioapi shiny stringr]; };
   rADA = derive2 { name="rADA"; version="1.1.9"; sha256="0p47nqm8mki03pq5gzc2r5vx4vixs6hpf7am1fvadgi2bn2jrcl2"; depends=[car dplyr e1071 forestplot ggplot2 gridExtra Hmisc knitr lme4 lmerTest matrixStats openxlsx reshape2 stringr tidyr]; };
@@ -16241,7 +16508,7 @@ in with self; {
   rBDAT = derive2 { name="rBDAT"; version="1.0.0"; sha256="02s91p6nvxbm3wflvs75aln3zw0g6535sxrmzkhywcc9k3x63926"; depends=[]; };
   rBMF = derive2 { name="rBMF"; version="1.1"; sha256="16yg1k7vv88q421nk1a70626c7c54bwnb3x7kiyxv2c0ha00f3g8"; depends=[Matrix Rcpp]; };
   rBahadur = derive2 { name="rBahadur"; version="1.0.0"; sha256="1gqr70v5xklzncqrn72879yg10hjz059r4wsvq5hq9jf4gfaqsgz"; depends=[]; };
-  rBayesianOptimization = derive2 { name="rBayesianOptimization"; version="1.2.0"; sha256="0gwdzv4wl4n940ph23yhjh0s192k9visvivww5k1kmy2b1j88cva"; depends=[data_table foreach GPfit magrittr]; };
+  rBayesianOptimization = derive2 { name="rBayesianOptimization"; version="1.2.1"; sha256="071317r3xbcvkckzvgiac786zi2cy7zbrknscj3r521kaki1rfaf"; depends=[data_table foreach GPfit magrittr]; };
   rBeta2009 = derive2 { name="rBeta2009"; version="1.0"; sha256="0ljzxlndn9ba36lh7s3k4biim2qkh2mw9c0kj22a507qbzw1vgnq"; depends=[]; };
   rBiasCorrection = derive2 { name="rBiasCorrection"; version="0.3.4"; sha256="1ivxxw7jf1s95abjwc794mqklkvlgvgyyb6ii99x6mnga6flh11n"; depends=[data_table future future_apply ggplot2 magrittr nls2 polynom]; };
   rCBA = derive2 { name="rCBA"; version="0.4.3"; sha256="10rc08gwsf15f4lci8bbgwpwj8n7k1m23hxk633v68g9amla5nvx"; depends=[arules R_utils rJava TunePareto]; };
@@ -16253,8 +16520,8 @@ in with self; {
   rDNAse = derive2 { name="rDNAse"; version="1.1-1"; sha256="0cl51q61kwvdsm5f49cjjbzggqam1fnr6gp15cmy6m2yahyxg1lk"; depends=[]; };
   rDataPipeline = derive2 { name="rDataPipeline"; version="0.54.1"; sha256="0i0vb7gsjshh1wn0lksdma51xdyn6qw54j02cb0xmzcg896gl2p9"; depends=[assertthat cli configr dplyr git2r httr jsonlite openssl R6 rhdf5 semver usethis yaml]; };
   rDecode = derive2 { name="rDecode"; version="0.1.0"; sha256="1d0rrhycw9anhvx6czz7axkzhzqprdgi9sqfglmc962zf1x3hmn2"; depends=[]; };
-  rEDM = derive2 { name="rEDM"; version="1.15.3"; sha256="04dmk5q6rm3rhihprpswkcwyimwq8i5q1c9fwj2wl83ldf6lvigf"; depends=[Rcpp RcppThread]; };
-  rEMM = derive2 { name="rEMM"; version="1.2.0"; sha256="1qicpxxbm8gc5nb2j2n8sa5i342dw8pjgmbw01963vsybhkwzsim"; depends=[cluster clusterGeneration igraph MASS proxy stream]; };
+  rEDM = derive2 { name="rEDM"; version="1.15.4"; sha256="1h2mda6m70r976jzh4znz73bzdiib524iyz6khz2j0wzs0gbl5sk"; depends=[Rcpp RcppThread]; };
+  rEMM = derive2 { name="rEMM"; version="1.2.1"; sha256="13pxw0np8pn895wcb3rxvc0s7ayr968567fx4p2z8gnz2hp7g62j"; depends=[cluster clusterGeneration igraph MASS proxy stream]; };
   rENA = derive2 { name="rENA"; version="0.2.7"; sha256="136rlzm4pkip0j1zhn4ycsfmq4hjwvhp4d5359wsjkym6lr9n846"; depends=[concatenate data_table doParallel foreach magrittr plotly R6 Rcpp RcppArmadillo scales]; };
   rFSA = derive2 { name="rFSA"; version="0.9.6"; sha256="1fxd194iq8jnlsnj76mjq2f6db7ln641qwfsf5v63kx3qqhn8x5s"; depends=[hash rPref tibble tidyr]; };
   rFerns = derive2 { name="rFerns"; version="5.0.0"; sha256="1yw3np5iamnr7f3nrd507dkyz76nxmzdpinwxncv87yw30g6gnkq"; depends=[]; };
@@ -16267,6 +16534,7 @@ in with self; {
   rKIN = derive2 { name="rKIN"; version="1.0.2"; sha256="0dp8m7x5a9glz7yvbv207j3l0226xjxmgf0k2x6rv7zwg9v6y5qk"; depends=[dplyr ggplot2 ks MASS randomcoloR RColorBrewer sf shades]; };
   rKOMICS = derive2 { name="rKOMICS"; version="1.3"; sha256="0v04f9kjdwxdggk3cv29hrnbykz3yq523gxh1kh7vls9xpm6c5wr"; depends=[ape circlize ComplexHeatmap dplyr factoextra FactoMineR ggplot2 ggpubr magrittr reshape2 stringr]; };
   rKenyaForex = derive2 { name="rKenyaForex"; version="0.1.0"; sha256="1y5hdc1n8kan42vzg6kpfgz68s1bpd93pavcisxh03c76zkf9ap9"; depends=[]; };
+  rKolada = derive2 { name="rKolada"; version="0.2.3"; sha256="0q4npg3f50rx9vx9d3zmh2i6m0rnd2f7pvgr624ickja6s28bjc1"; depends=[dplyr glue httr jsonlite magrittr purrr rlang stringr tibble tidyr urltools]; };
   rLDCP = derive2 { name="rLDCP"; version="1.0.2"; sha256="0k7zc1xyqmcl7070hhpqw1d2k1ij6bd4wjym8cw263pds2n7nx21"; depends=[XML]; };
   rLFT = derive2 { name="rLFT"; version="1.0.1"; sha256="0d86z5ckhkavgr2xi9pk7pw8ss3whrssa7na43kj0pirax9cys4z"; depends=[Rcpp sf]; };
   rLTP = derive2 { name="rLTP"; version="0.1.4"; sha256="04w432m03xwh0szshsrfw5h7wy43q4lj8z0y07k8w6gsf27cy5bx"; depends=[RCurl]; };
@@ -16284,24 +16552,26 @@ in with self; {
   rPACI = derive2 { name="rPACI"; version="0.2.2"; sha256="10i9lx8h67x3ldysjqgfi6dqbclj7pwfg15wxzr2vw3qzsjyb9cz"; depends=[bnlearn ggplot2 ggpubr rlang tidyr]; };
   rPAex = derive2 { name="rPAex"; version="1.0.5"; sha256="1gx0hgyizhkv6wkdi4wrfc5vl2j548x418gff0ysq2nmifm5lpcy"; depends=[agricolae terra]; };
   rPBK = derive2 { name="rPBK"; version="0.2.4"; sha256="0sbnxhbv7gi1y1in96cw875sgbr54w5i43al2ivwj6kkdds0i91i"; depends=[BH ggplot2 Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
-  rPDBapi = derive2 { name="rPDBapi"; version="1.0"; sha256="1mzv5spr7z2khr9vvhy6pmn7mswz1rjqw0hs7jhhxay7lv636xyz"; depends=[bio3d dplyr httr jsonlite magrittr purrr stringr xml2]; };
+  rPDBapi = derive2 { name="rPDBapi"; version="1.3"; sha256="16vfwln7k55010h3x9f7znljf0m4x0x97dgnaycxnqf5gpsv65iw"; depends=[bio3d dplyr httr jsonlite magrittr purrr xml2]; };
   rPackedBar = derive2 { name="rPackedBar"; version="0.2.2"; sha256="1nh0kvj4bqkinczj8llcgy63ibsnk9vgsvm0vqg8g526x0vffdma"; depends=[data_table plotly scales shiny]; };
   rPanglaoDB = derive2 { name="rPanglaoDB"; version="0.2.1"; sha256="1ykzih3idgp2yhbw4039hhhzv0nmrmn3wx2c4dxmgp5qzhrg42nf"; depends=[Matrix pbapply Seurat XML xml2]; };
   rPowerSampleSize = derive2 { name="rPowerSampleSize"; version="1.0.2"; sha256="1insdfvcn1pirsnf7nwfia0kzgsmh2zpghgfj2yc35ld1r9j2hp2"; depends=[mvtnorm ssanv]; };
   rPraat = derive2 { name="rPraat"; version="1.3.2-1"; sha256="19qd3hylp8m0y171xhdd3k84izxyid7k2f9583gkxq8kik3md1v2"; depends=[dplyr dygraphs readr stringr tuneR]; };
   rPref = derive2 { name="rPref"; version="1.4.0"; sha256="1ylb4mc5fjvmi8wly9w4v25l7sc8i9hk28lfidgzaavp5447af2w"; depends=[dplyr igraph lazyeval Rcpp RcppParallel]; };
   rQCC = derive2 { name="rQCC"; version="2.22.12"; sha256="0z5gq6pgdp3hxlngcr5lxzj01sf9h9bmdyr1hh6ikr5wjb36wjzx"; depends=[]; };
+  rQSAR = derive2 { name="rQSAR"; version="1.0.0"; sha256="1s2s7bvb9pd7vsdcbkk4zmndixfwfmiv4a9bkaix7rdh5fk057kw"; depends=[caret corrplot dplyr ggplot2 gridExtra leaps pls randomForest rcdk tibble]; };
   rRAP = derive2 { name="rRAP"; version="1.1"; sha256="1nzvs8bjkbjraa33azxf9mrxsxh87qhh3qlldrcs5y4fq4ancyqb"; depends=[lars lassoshooting MASS]; };
   rSAFE = derive2 { name="rSAFE"; version="0.1.4"; sha256="1ghpwpvjid2dfn2c3fml18vf1d5yr092mj6dg7yxsp47vy3m1r6b"; depends=[DALEX dendextend ggplot2 ggpubr ingredients sets]; };
   rSCA = derive2 { name="rSCA"; version="3.1"; sha256="0dhd5325x05cbnw34mlipndw5xnncl9kj7kppb2s5bx2gllcdqqd"; depends=[]; };
-  rSEA = derive2 { name="rSEA"; version="2.1.1"; sha256="18108ds65ykxygbw1s4i5rb1ngzwymv1x3dhcv1lcwkmqplnaar9"; depends=[ggplot2 hommel]; };
+  rSDI = derive2 { name="rSDI"; version="0.2.1"; sha256="1rmbxl010n38lrn0z9prn2hzb6afk889gipbahchmcv7f767sdwa"; depends=[igraph]; };
+  rSEA = derive2 { name="rSEA"; version="2.1.2"; sha256="094immjsmgkhl68aflbai1y15d50wkq2qbrmcs8bj7in17iw5qfq"; depends=[ggplot2 hommel]; };
   rSFA = derive2 { name="rSFA"; version="1.5"; sha256="17jabv64rgaxs5kx579vjrhcw2k08c6ah6a11cswl8v9h0vjjz8i"; depends=[MASS]; };
   rSHAPE = derive2 { name="rSHAPE"; version="0.3.2"; sha256="0z6dizsxlkmaymbd24b1m1i8kmndcf21nxxnyfzq6gvdii7bal4h"; depends=[abind DBI doParallel evd foreach RSQLite sn VGAM]; };
   rSPARCS = derive2 { name="rSPARCS"; version="0.1.1"; sha256="1693i1jnk2py46d1cngi8gqv8bq3i0fc7invliyv6lfpshwbi388"; depends=[data_table dplyr geosphere plyr raster sf sp tigris]; };
   rSPDE = derive2 { name="rSPDE"; version="2.3.3"; sha256="1l03rd8knh9mws1fbagspvpyli1sdgijslc0axwwbfjqxcpqg6yq"; depends=[broom fmesher lifecycle Matrix]; };
   rSRD = derive2 { name="rSRD"; version="0.1.7"; sha256="1srvv49xxkq2nx7fvbn3d2hr4v6ypkxgz6ms1l89zgd0ypdgmypa"; depends=[dplyr ggplot2 ggrepel gplots janitor Rcpp rlang stringr tibble]; };
   rSpectral = derive2 { name="rSpectral"; version="1.0.0.10"; sha256="12fgyjlk4a6gm2ccjw4mh47ccln2i7iklqammmk8y20i3hd3mh6x"; depends=[graph igraph Rcpp RcppArmadillo Rdpack]; };
-  rStrava = derive2 { name="rStrava"; version="1.3.0"; sha256="0k2nz17s4rlb86gmr0c4r56abw4j7dqshjk599kqy28jqmf2nkyy"; depends=[dplyr geosphere ggplot2 ggspatial googleway httr magrittr plyr prettymapr purrr RCurl rvest tibble tidyr XML xml2]; };
+  rStrava = derive2 { name="rStrava"; version="1.3.1"; sha256="1kn2x208iyz235zf64r2wz4jqgas5srzzjf6gpckqh8dkc6s234f"; depends=[dplyr geosphere ggplot2 ggspatial googleway httr magrittr maptiles purrr RCurl rvest tibble tidyr tidyterra XML xml2]; };
   rTCRBCRr = derive2 { name="rTCRBCRr"; version="0.1.1"; sha256="0k4blxbnyzgfgcvn59zw8fnw6avhgbmbgkk6a1ycpz1jijy1sn2z"; depends=[magrittr readr tidyr tidyselect]; };
   rTG = derive2 { name="rTG"; version="1.0.2"; sha256="1zg8ly42z7dy2b7iaggfc1wgf7hw2fsaj0ixbf5kw0gqmf7gxzss"; depends=[brnn dplyr ggplot2 knitr magrittr mgcv minpack_lm]; };
   rTLsDeep = derive2 { name="rTLsDeep"; version="0.0.5"; sha256="1hkhshpcfdrv7df8lawsgmbrfkmbasd1jc4dddz6yzc21fkg136p"; depends=[caret ggplot2 keras lidR matrixStats reticulate rgl sf tensorflow]; };
@@ -16310,16 +16580,15 @@ in with self; {
   rTRNG = derive2 { name="rTRNG"; version="4.23.1-2"; sha256="0rba3dxy97r75mxfn8rxrk2081my79la2m5m9h5ms2z5px07llqd"; depends=[Rcpp RcppParallel]; };
   rTableICC = derive2 { name="rTableICC"; version="1.0.9"; sha256="110jcrry258mw6dskv1p3pz5h9161y2dk3m8xl92ycvjfnxxzcbx"; depends=[aster partitions]; };
   rTensor = derive2 { name="rTensor"; version="1.4.8"; sha256="1ks4rwaish24sg5gc2jkfdqfq6h8gh9f3wdxk3dxjgpwjqwijz8f"; depends=[]; };
-  rTensor2 = derive2 { name="rTensor2"; version="0.2.0"; sha256="1aspffwgk5937vl6r1ha5is9i3aznmcpmnjgwa5ar5w4pnyilvnj"; depends=[gsignal Matrix matrixcalc rTensor wavethresh]; };
+  rTensor2 = derive2 { name="rTensor2"; version="2.0.0"; sha256="0bangmph2hmk50gx21dkky0b22aimh168bndbp7a0s5vg2m49ijz"; depends=[gsignal Matrix matrixcalc png raster rTensor wavethresh]; };
   rTephra = derive2 { name="rTephra"; version="0.1"; sha256="045f2sp2j4hiwa9k1vs6cxr59x1yr34jq1z2crasxflsxbwa3xz8"; depends=[]; };
   rTorch = derive2 { name="rTorch"; version="0.4.2"; sha256="03a9vls09mgd77xm1q1h1pqw4q026rdibbjr218706h4iqphrqm7"; depends=[jsonlite reticulate rstudioapi]; };
-  rUM = derive2 { name="rUM"; version="1.0.2"; sha256="02bwkgr8c7dbijnz0bsz9snw74d5xjykj6irvv983cd5rmb1kpsy"; depends=[bookdown conflicted rlang rmarkdown table1 tidyverse usethis]; };
+  rTwig = derive2 { name="rTwig"; version="1.0.2"; sha256="1d3h4ym2vrlp04arjxg4s8zd9d5kyxf6ibvv169calsvkd4rfcn7"; depends=[cobs colourvalues data_table DescTools doFuture foreach future igraph kit Matrix Morpho progressr purrr R_matlab randomcoloR Rdpack rgl rmatio tidytable]; };
+  rUM = derive2 { name="rUM"; version="2.0.0"; sha256="1x9waiyxq5jgi6ggd078wfzgq29adawfs7jn4m5qj4wba7sddq2m"; depends=[bookdown conflicted glue gtsummary here quarto rio rlang rmarkdown roxygen2 stringr table1 tidymodels tidyverse usethis]; };
   rWCVP = derive2 { name="rWCVP"; version="1.2.4"; sha256="1qs3h66m2nw44iry5jlczwd00s79669vrk8k1crdh7vgvhnf5r4y"; depends=[cli dplyr ggplot2 gt htmltools magrittr phonics purrr RecordLinkage rlang rmarkdown sf stringr tibble tidyr withr]; };
-  rWind = derive2 { name="rWind"; version="1.1.7"; sha256="1dvzkhi9hbxd9wvggcbkfx7hxaxjssbmfnqsc7qakj8pkbvr7nax"; depends=[gdistance lubridate Matrix raster]; };
   rWishart = derive2 { name="rWishart"; version="0.1.2"; sha256="0wzijc454mrvmggb7a5jqwjbmk0kzr4bmy0iwniz5cn343pr1rri"; depends=[lazyeval MASS Matrix]; };
   rYoutheria = derive2 { name="rYoutheria"; version="1.0.3"; sha256="07l7xn0csy95hvviyn6p0h2ybh36cqrm5lz60dphwsq3ahf7sw68"; depends=[plyr RCurl reshape2 RJSONIO]; };
   ra4bayesmeta = derive2 { name="ra4bayesmeta"; version="1.0-8"; sha256="1v55ci595x4rhrfswh53m8556sc4lj49b1339yja8ww4rsrx872a"; depends=[bayesmeta]; };
-  rabhit = derive2 { name="rabhit"; version="0.2.5"; sha256="0c513sbldd85snww412k3c5rhmzd5k89s2wq4d713qsvzsh4v1xl"; depends=[alakazam cowplot data_table dendextend dplyr fastmatch ggdendro ggplot2 gridExtra gtable gtools htmlwidgets plotly plyr RColorBrewer readr reshape2 rlang splitstackshape stringi tidyr tigger]; };
   rabi = derive2 { name="rabi"; version="1.0.2"; sha256="0jndx1gvsnsv1xrx3ismgvjp7d4kj3436zcawvw32c5klvxx0y4j"; depends=[numbers polynom shiny stringdist]; };
   racademyocean = derive2 { name="racademyocean"; version="0.3.2"; sha256="0p16xwlm67rvbla6mnky6yv5aa2r61v645jlwhg0zn2dyc8xpajk"; depends=[cli dplyr httr2 pbapply purrr rappdirs retry rlang stringr tidyr withr]; };
   raceland = derive2 { name="raceland"; version="1.2.1"; sha256="0kkl12amzaff6y4bj1c62p1clkvxlfm8d20i6d09x35hkkxblnjk"; depends=[comat plotwidgets Rcpp RcppArmadillo sf terra]; };
@@ -16328,18 +16597,18 @@ in with self; {
   radar = derive2 { name="radar"; version="1.0.0"; sha256="1wh5j3cfbj01jx2kbm9ca5cqhbb0vw7ifjn426bllm4lbbd8l273"; depends=[]; };
   radarBoxplot = derive2 { name="radarBoxplot"; version="1.0.5"; sha256="1lmgh8j3c6jiiwpdz9l5zd07xcv87laxnj789bpqnmxa0szsfngl"; depends=[]; };
   radarchart = derive2 { name="radarchart"; version="0.3.1"; sha256="0gcxnbgj8ja1m4wzhbjy67m6zphf0c5ni9yx7sr7f0abm03ry753"; depends=[htmltools htmlwidgets]; };
-  radiant = derive2 { name="radiant"; version="1.6.1"; sha256="19h0l41n5qjqy0g3ga09a44anj1c429n4fakpxh3glhwv5xy4314"; depends=[r_import radiant_basics radiant_data radiant_design radiant_model radiant_multivariate shiny]; };
-  radiant_basics = derive2 { name="radiant.basics"; version="1.6.0"; sha256="1dr53n39a7g4dar6zxmdkrzqqksc124s8whj6idy97jg9vj3qjsf"; depends=[dplyr ggplot2 lubridate magrittr patchwork polycor psych r_import radiant_data rlang scales shiny tidyr]; };
-  radiant_data = derive2 { name="radiant.data"; version="1.6.3"; sha256="1nwiw5dps0030f893gs0fixis6xigfr8y8rqhi3l505yx2bsrjbj"; depends=[arrow base64enc broom bslib car curl dplyr DT ggplot2 glue jsonlite knitr lubridate magrittr markdown MASS patchwork plotly png psych r_import randomizr readr readxl rlang rmarkdown rstudioapi scales shiny shinyAce shinyFiles stringi tibble tidyr writexl]; };
-  radiant_design = derive2 { name="radiant.design"; version="1.6.1"; sha256="0rv9cpw80rhc47fza44z6a9jkij07ajpivr2ky0y2hixzf5c8h5a"; depends=[AlgDesign dplyr magrittr mvtnorm polycor pwr r_import radiant_data randomizr shiny]; };
-  radiant_model = derive2 { name="radiant.model"; version="1.6.3"; sha256="182w8wj3zh2ynhxscy9d4wrfc3n3yj89569w7102l1rxyrssi755"; depends=[broom car data_tree DiagrammeR dplyr e1071 ggplot2 ggrepel lubridate magrittr NeuralNetTools nnet patchwork pdp psych r_import radiant_basics radiant_data ranger rlang rpart sandwich scales shiny stringi stringr tidyr tidyselect vip xgboost yaml]; };
-  radiant_multivariate = derive2 { name="radiant.multivariate"; version="1.6.1"; sha256="0xqn7j8r2v5j8ajkj8ghdrnkhfi10m2351kr926b3qg4898ywfwn"; depends=[car clustMixType dplyr ggplot2 ggrepel gower GPArotation lubridate magrittr MASS patchwork polycor psych r_import radiant_data radiant_model rlang scales shiny]; };
+  radiant = derive2 { name="radiant"; version="1.6.6"; sha256="1v4vb5dpqljpk3xya26psg988v17nfcybjzw3dnp6bi77x24cq5k"; depends=[r_import radiant_basics radiant_data radiant_design radiant_model radiant_multivariate shiny]; };
+  radiant_basics = derive2 { name="radiant.basics"; version="1.6.6"; sha256="12sm0zypd5n9f5pk7bpdqh7h0p54cmvxp3slzdmi5sa0mbklfc9q"; depends=[dplyr ggplot2 lubridate magrittr patchwork polycor psych r_import radiant_data rlang scales shiny tidyr]; };
+  radiant_data = derive2 { name="radiant.data"; version="1.6.6"; sha256="09cbd21bvj4a3n5r1ch638y5dgi7xmmg1y62i6ixcjhbr8wypjmn"; depends=[arrow base64enc broom bslib car curl dplyr DT ggplot2 glue jsonlite knitr lubridate magrittr markdown MASS patchwork plotly png psych r_import randomizr readr readxl rlang rmarkdown rstudioapi scales shiny shinyAce shinyFiles stringi tibble tidyr writexl]; };
+  radiant_design = derive2 { name="radiant.design"; version="1.6.6"; sha256="0dcc8f6w07hpsjhgan7x0l9zsql82f3d8b9kannsnm2m54cnp5ja"; depends=[AlgDesign dplyr magrittr mvtnorm polycor pwr r_import radiant_data randomizr shiny]; };
+  radiant_model = derive2 { name="radiant.model"; version="1.6.6"; sha256="0y1qvngicw279m9065pr6kj2yp80iz88bf4jqj1dawjvcbrl27wv"; depends=[broom car data_tree DiagrammeR dplyr e1071 ggplot2 ggrepel lubridate magrittr NeuralNetTools nnet patchwork pdp psych r_import radiant_basics radiant_data ranger rlang rpart sandwich scales shiny stringi stringr tidyr tidyselect vip xgboost yaml]; };
+  radiant_multivariate = derive2 { name="radiant.multivariate"; version="1.6.6"; sha256="02nviya2i45xpgnjsldpm5hvy30nh5z1nb6yk5wrps3hl044lqgi"; depends=[car clustMixType dplyr ggplot2 ggrepel gower GPArotation lubridate magrittr MASS patchwork polycor psych r_import radiant_data radiant_model rlang scales shiny]; };
   radir = derive2 { name="radir"; version="1.0.4"; sha256="12a99ig3n6kp5wa5rjp2w1nal4qqjs6vq05d3lrqcyl3bind6lqb"; depends=[hermite]; };
   radlibs = derive2 { name="radlibs"; version="0.2.0"; sha256="1xl7pacqgiv68ay7mkr6bkx3rqqr7z8b9yh42n4zm7ybqfxbx6dr"; depends=[data_table lexicon stringr]; };
   radous = derive2 { name="radous"; version="0.1.3"; sha256="1pip3givlkzb8i65nz6w724818jjr8j8nizpc3g35r9bvpmn7c2y"; depends=[checkmate curl glue httr readr]; };
   radsafer = derive2 { name="radsafer"; version="2.3.0"; sha256="0zw0dn8pi1yn786fcmm414dap77wdni43dma2pyjbxb15zagpmli"; depends=[dplyr ggplot2 ggthemes lifecycle magrittr RadData readr rlang scatterplot3d stringr]; };
   rafalib = derive2 { name="rafalib"; version="1.0.0"; sha256="1dmxjl66bfdgrybhwyaa8d4i460liqcdw8b29a6w7shgksh29m0k"; depends=[RColorBrewer]; };
-  ragg = derive2 { name="ragg"; version="1.3.0"; sha256="1chlas4i6p8gigx02x1y7nanmz9jbv1h4fa145zk223bbg9j931j"; depends=[systemfonts textshaping]; };
+  ragg = derive2 { name="ragg"; version="1.3.2"; sha256="0cb9dcp47pl0nizwy0a2ml8hm11bhf7ay20j237hmmgx159a8dw0"; depends=[systemfonts textshaping]; };
   rags2ridges = derive2 { name="rags2ridges"; version="2.2.7"; sha256="09dp04y8wl7cws5y94k9j2rlrmm2ci1lk8y77cb17lxr0i1yv6gb"; depends=[expm fdrtool ggplot2 graph gRbase Hmisc igraph RBGL Rcpp RcppArmadillo reshape RSpectra sfsmisc snowfall]; };
   ragtop = derive2 { name="ragtop"; version="1.1.1"; sha256="0vgc2q71g8ysccq19kbk9a4swxgd5qj91xm4bshfgdg5chxqnb50"; depends=[futile_logger limSolve]; };
   rai = derive2 { name="rai"; version="1.0.0"; sha256="0qimfzchbrarkwmv3mxxbdgvqzk16sc8m1h140zm0cnfgr2pvi5p"; depends=[dplyr ggplot2 readr rlang]; };
@@ -16363,6 +16632,7 @@ in with self; {
   randnet = derive2 { name="randnet"; version="0.7"; sha256="1zb2arx63avjlqjpbf37cvix080khkihh6bb0g1h2alv4lbaaaak"; depends=[AUC data_table entropy irlba Matrix mgcv nnls poweRlaw pracma RSpectra sparseFLMM]; };
   rando = derive2 { name="rando"; version="0.2.0"; sha256="085g48yzwapxxfmm5bvkz0v7pmjwmakb7nl128550ppgc16wxkgb"; depends=[dplyr glue rlang tibble]; };
   random = derive2 { name="random"; version="0.2.6"; sha256="0sdhagwjlhldb8hn6h4nd1sflzhwkapzybdlb8hzisy3w2ygjn9b"; depends=[curl]; };
+  random_cdisc_data = derive2 { name="random.cdisc.data"; version="0.3.15"; sha256="05hq7hvypc4nm72f879pjyf2iyvj9hgrr1gwjyvwj8by7pkyyw2y"; depends=[checkmate dplyr lifecycle lubridate magrittr rlang stringr tibble tidyr yaml]; };
   random_polychor_pa = derive2 { name="random.polychor.pa"; version="1.1.4-5"; sha256="1a8mnggdmyklxzqid81a88sx6v5jvhfnx5khvy21idsd8pp7pav2"; depends=[boot MASS mvtnorm nFactors psych sfsmisc]; };
   randomForest = derive2 { name="randomForest"; version="4.7-1.1"; sha256="1micz9794j7xmj755ln2692rzip8azndflxgdg6xn3j86issi7pm"; depends=[]; };
   randomForestExplainer = derive2 { name="randomForestExplainer"; version="0.10.1"; sha256="1ny8c3vn2zvdx12avwvlm4lp648jigkrkcvnhf5qmj8rh0w069v0"; depends=[data_table dplyr DT GGally ggplot2 ggrepel randomForest ranger reshape2 rmarkdown]; };
@@ -16371,7 +16641,7 @@ in with self; {
   randomGLM = derive2 { name="randomGLM"; version="1.10-1"; sha256="0557dpca39nj1451l28x4xxfr92cf48gy7crlfhnv4k91kglwcnz"; depends=[doParallel foreach geometry Hmisc MASS matrixStats survival]; };
   randomLCA = derive2 { name="randomLCA"; version="1.1-3"; sha256="1hjkglqdr9czjr91iwshcdb0acrlk461x896rca4bzc9jv8in9cy"; depends=[boot doParallel doRNG fastGHQuad foreach lattice Matrix Rfast]; };
   randomMachines = derive2 { name="randomMachines"; version="0.1.0"; sha256="1b34jwvs2x67kbjmxa5rpxlrqsvghgnyddz250nwpchj2s4lgc17"; depends=[kernlab]; };
-  randomNames = derive2 { name="randomNames"; version="1.5-0.0"; sha256="1lv1vqb4wgs0j1gqy84dpa30qsvbp6928zpshczpw87yf32k71vh"; depends=[crayon data_table toOrdinal]; };
+  randomNames = derive2 { name="randomNames"; version="1.6-0.0"; sha256="13zqkg0hpi6bpisnn4wwwypv8kbvcnksl5n7p9kj7mdlw8vk38j1"; depends=[crayon data_table toOrdinal]; };
   randomUniformForest = derive2 { name="randomUniformForest"; version="1.1.6"; sha256="1qr7c0pkqn2a9knpbc2ch6chwwrvfw1sr5949mkgml36xyv1syv7"; depends=[cluster doParallel foreach ggplot2 iterators MASS pROC Rcpp]; };
   randomcoloR = derive2 { name="randomcoloR"; version="1.1.0.1"; sha256="0rqh1zrdza12qq7475f77yvryhh4hj0pg25lb8ywrcljgaj53bnb"; depends=[cluster colorspace Rtsne scales stringr V8]; };
   randomizationInference = derive2 { name="randomizationInference"; version="1.0.4"; sha256="0viji0qblnc423abhccn02gl30jbwa866vl7az9fdp95psaij1kp"; depends=[matrixStats permute]; };
@@ -16379,7 +16649,7 @@ in with self; {
   randomizeR = derive2 { name="randomizeR"; version="3.0.2"; sha256="00w4h8xamf6wix67g921j0xqma5y6zmzd23vr8k2qa48an9bnkfm"; depends=[coin dplyr ggplot2 gsDesign insight magrittr mstate mvtnorm plotrix purrr PwrGSD reshape2 rlang survival]; };
   randomizr = derive2 { name="randomizr"; version="1.0.0"; sha256="0r7yawh4dnxawinnlz09f57kgdwa08rpwxq3y35jam3x2q48qijn"; depends=[]; };
   randquotes = derive2 { name="randquotes"; version="0.1.1"; sha256="0fj9vx0c4059511wka7ip30yz87y144pz7ny840gp72qm73pp8li"; depends=[curl httr jsonlite xml2]; };
-  randtests = derive2 { name="randtests"; version="1.0.1"; sha256="1r1b76g9qlss75qqyh05wic4k08xixgx6lgs7gc49an71h0mi5a7"; depends=[]; };
+  randtests = derive2 { name="randtests"; version="1.0.2"; sha256="1yrs0p7bmcjmwmm8iyadrb6p0w8ypwxzhmw6wkx3h2pi7730d6da"; depends=[]; };
   randtoolbox = derive2 { name="randtoolbox"; version="2.0.4"; sha256="0jwylffr8zajgd1x24nrv4xxlkic10i8cfd9sy0pkz2g7sai9nll"; depends=[rngWELL]; };
   rang = derive2 { name="rang"; version="0.3.0"; sha256="1g5crf9k8pkyvbxxz2wb7pwa91fpk579jaq3d46kafr98xxvrnyb"; depends=[fastmap here httr jsonlite memoise parsedate pkgsearch remotes renv vctrs]; };
   rangeBuilder = derive2 { name="rangeBuilder"; version="2.1"; sha256="1r82rmmfwbfl2lxcsnl9xwyr2932jv43cjlvlihi5172irpfgvpw"; depends=[alphahull pbapply Rcpp rnaturalearth sf stringi terra units]; };
@@ -16393,10 +16663,10 @@ in with self; {
   rankdist = derive2 { name="rankdist"; version="1.1.4"; sha256="1xqrkss8d5vv3blqpvrvdczsygphbx259hy9j7w9b2ahssw8cjr5"; depends=[hash optimx permute Rcpp]; };
   rankhazard = derive2 { name="rankhazard"; version="1.1.0"; sha256="0kljn9b74alrd22b5pwfnamdbaqi2wa2z6yzpmgpfs3x0hv72fw7"; depends=[survival]; };
   rankinPlot = derive2 { name="rankinPlot"; version="1.1.0"; sha256="1kf8xwzx2mjgv3ad1yj70gm0mrsyghwkmjk98pwcj3a82qk94skr"; depends=[ggplot2 scales]; };
-  rankinma = derive2 { name="rankinma"; version="0.2.1"; sha256="13zqi6lqgvfdr1p0p45n1icckwh4zcqrllh6k1dddfb8dy7hvpgd"; depends=[mvtnorm netmeta]; };
+  rankinma = derive2 { name="rankinma"; version="0.2.2"; sha256="12l627drysk2hkc62q8i8x25plqyl1iz9phw4x3hy34h3hdkq6wa"; depends=[mvtnorm netmeta]; };
   rankrate = derive2 { name="rankrate"; version="1.2.0"; sha256="14262gwyr9n9vwj0njb9piw0algmfr2y6sswarsafvmficagbfhm"; depends=[gtools isotone]; };
-  ranktreeEnsemble = derive2 { name="ranktreeEnsemble"; version="0.22"; sha256="1hn66622p3jbm1s0pf438lmws27pwab1qv1zwnsph8zg9qprb2nm"; depends=[data_tree gbm randomForestSRC Rcpp]; };
-  rapiclient = derive2 { name="rapiclient"; version="0.1.3"; sha256="1pm4kdga2nz1cpmchdb0ad8gr3bqfm84b1kl32cyc0x3x5rr2syz"; depends=[httr jsonlite yaml]; };
+  ranktreeEnsemble = derive2 { name="ranktreeEnsemble"; version="0.23"; sha256="09nax4h3jajbkbjkxwd8zd075lkhgcfhh42c2zqwwn8bkdyk03gr"; depends=[data_tree gbm randomForestSRC Rcpp]; };
+  rapiclient = derive2 { name="rapiclient"; version="0.1.5"; sha256="1xp6mmk2rrlk0wmvv23k1dgr7pydw46iinvd138167frmr0rdica"; depends=[httr jsonlite yaml]; };
   rapidjsonr = derive2 { name="rapidjsonr"; version="1.2.0"; sha256="07zdirhbzmvq3cp4xn8ngk1lgxbbabzays315zxbs3sxrz6lzjb2"; depends=[]; };
   rapidoc = derive2 { name="rapidoc"; version="9.3.4"; sha256="1nzwf4wx8syl9xpvmqn3mz72nhj80ssnm6wbfwnasg003ccfi43c"; depends=[]; };
   rapidphylo = derive2 { name="rapidphylo"; version="0.1.2"; sha256="1q0p43ikfpmza8prjcgf12471d0z0bmid33zyhkngykagrg5j2aa"; depends=[ape phangorn]; };
@@ -16427,22 +16697,25 @@ in with self; {
   rasterdiv = derive2 { name="rasterdiv"; version="0.3.4"; sha256="1pq9xsm6yyb97b8nvqlmb4s3kmd72a9mqxqqd31225qjnm6gv9pz"; depends=[doParallel foreach ggforce ggplot2 progress proxy terra viridis]; };
   rasterize = derive2 { name="rasterize"; version="0.1"; sha256="18nrhmq1qmi05rkyr86xsyc8nz0fbdpf2d45h62bbfzbfynqd4qy"; depends=[png]; };
   rasterpdf = derive2 { name="rasterpdf"; version="0.1.1"; sha256="0zi54nifbb4dzb29i8rskynblw3z42vzaykwbq30ia5zs9q1bvm5"; depends=[png]; };
-  rasterpic = derive2 { name="rasterpic"; version="0.2.4"; sha256="1il05pg1paa7y2y9jcsca8g4sh3l6hmdqw16bkww0a0l5yzzdg60"; depends=[png sf terra]; };
+  rasterpic = derive2 { name="rasterpic"; version="0.2.5"; sha256="03p24iw384dxws25mwfzclhpfj9hm3wrv8xmhgrcsffw61q3ad0x"; depends=[png sf terra]; };
   ratdat = derive2 { name="ratdat"; version="1.1.0"; sha256="14p8dnc6a3yj98xqa8i90jb8nbwhr4g9drl3djdyswjwiiz30jlg"; depends=[]; };
   ratelimitr = derive2 { name="ratelimitr"; version="0.4.1"; sha256="06x759jxr5zcnvg9q120n5bpipkb16piw15kxrpk7i918mby889b"; depends=[assertthat]; };
   ratematrix = derive2 { name="ratematrix"; version="1.2.4"; sha256="0azn52d88m1xxckv4g02vraa9gdr5jmsxqwxwaim90p2s8jy33np"; depends=[ape coda corpcor ellipse geiger MASS mvMORPH phylolm Rcpp RcppArmadillo readr]; };
   rater = derive2 { name="rater"; version="1.3.1"; sha256="0ipgjhxn8d9g6yv369hckvq84v8rrw5b230zz24h72dy9s2nyr44"; depends=[BH ggplot2 loo Rcpp RcppEigen RcppParallel rlang rstan rstantools StanHeaders]; };
   rateratio_test = derive2 { name="rateratio.test"; version="1.1"; sha256="1vajhgawlwf99rb1w1im1njngbb5n37y7lah1l5vv9j5i3pha1y7"; depends=[]; };
-  raters = derive2 { name="raters"; version="2.0.3"; sha256="0nqk45jv9r3m47kid1irxf1nf9p95pvdp1i87xss1jhyqfx2zxzl"; depends=[]; };
+  raters = derive2 { name="raters"; version="2.0.4"; sha256="1ypg3inqbn4rkwcmqbcwkiydp7sb2bpfrcfdgd1pfp0k73zbin2s"; depends=[]; };
   ratesci = derive2 { name="ratesci"; version="0.4-0"; sha256="1imraj95vcwz3i6r767zwckjqs1vp7bfww9d792l5nvwi5zyddp4"; depends=[]; };
+  ratioOfQsprays = derive2 { name="ratioOfQsprays"; version="1.0.0"; sha256="1xzss28wpyx9c5n504sllnlsjqv6ybiswbn3ws9is03024fzcaa9"; depends=[BH gmp qspray Rcpp RcppArmadillo RcppCGAL Ryacas]; };
   rationalfun = derive2 { name="rationalfun"; version="0.1-1"; sha256="0xabnqgzl8qdc4x9547mmkr1rm78p3fysdvk6jhjdi8cp2p6kcjh"; depends=[polynom]; };
   ratios = derive2 { name="ratios"; version="1.2.0"; sha256="16q9v2lhgklvdp3hi9x3afdldznfpwg775p80m2g5074q2dzjpgg"; depends=[data_table stringr]; };
   rattle = derive2 { name="rattle"; version="5.5.1"; sha256="1nhknpdy2a3szcbylg9cq1c1g9ds5y3m35dbbi6rh8r85777qviy"; depends=[bitops dplyr ggplot2 magrittr rpart_plot stringi stringr tibble tidyr XML]; };
   ravelRy = derive2 { name="ravelRy"; version="0.1.0"; sha256="07mywv57rw2b309i2qisbpx1x3sb3z6n2b5gia9bdmb2m4hhpdai"; depends=[dplyr httr jsonlite purrr tibble tidyr]; };
   raven_rdf = derive2 { name="raven.rdf"; version="0.2.0"; sha256="12jy3md6d1qwzkks5iljn4h0iv5lj3n39ll7r3fvrxjwh7afvw7r"; depends=[]; };
+  ravetools = derive2 { name="ravetools"; version="0.1.6"; sha256="1akid3qsjppracvqz6cxwaz1w9v251m0xb534gd2dsfibk1s2jli"; depends=[digest filearray pracma R6 Rcpp RcppEigen RNiftyReg signal waveslim]; };
   raw = derive2 { name="raw"; version="0.1.8"; sha256="1y2vhpgigzkd2xyj3986wlzm1g3pp99w6fspmhlff5czd73g16is"; depends=[]; };
   rawKS = derive2 { name="rawKS"; version="0.1.0"; sha256="1yiw9imhgij49qbm9hk6psb73zngqmxxwnaxq144ydwb7fbk6j0z"; depends=[dplyr ggplot2 magrittr ROCR tidyr]; };
   raws_profile = derive2 { name="raws.profile"; version="0.1.0"; sha256="04f7wk7x9j3rb6nn3zqss9vw0h9a4vpcjyilc2vqy0fm2by41xkg"; depends=[stringr tibble withr]; };
+  raybevel = derive2 { name="raybevel"; version="0.1.3"; sha256="0431mk0lslqwffknarb7zm2nbgv564d3karf9davc7w1xgnf11fj"; depends=[BH decido digest progress rayvertex Rcpp RcppCGAL RcppThread sf]; };
   rayimage = derive2 { name="rayimage"; version="0.10.0"; sha256="1ss1l8cbm0p7d413s81ncqhd7dqhyd22v5z1z48s9a56pxm2lw5l"; depends=[jpeg png progress Rcpp RcppArmadillo]; };
   raymolecule = derive2 { name="raymolecule"; version="0.5.3"; sha256="0lwjx43wd4ziriqd3rxar14z5497x79nfh3h05kn9b7rsiiv8ir9"; depends=[httr magrittr PeriodicTable rayrender rayvertex]; };
   rayrender = derive2 { name="rayrender"; version="0.32.2"; sha256="1vmxnwr8bf4w8kfizqvbi94p2bh7cnwsl8xcljvf4cslsx2ky8l3"; depends=[cli decido magrittr pillar png progress raster rayimage rayvertex Rcpp RcppThread spacefillr vctrs withr]; };
@@ -16453,7 +16726,7 @@ in with self; {
   rbacon = derive2 { name="rbacon"; version="3.2.0"; sha256="18d0mcfmslycbsi9sgqkxw1xwm9cgq4rxkwrvlbm67g0ryad86l3"; depends=[coda data_table Rcpp rintcal]; };
   rbbnp = derive2 { name="rbbnp"; version="0.1.0"; sha256="0lpzccb645lbzplwq8rvxd9jx90k3wy70ijwx8c7gdpn9kxb13jr"; depends=[dplyr ggplot2 gridExtra pracma purrr tidyr]; };
   rbcb = derive2 { name="rbcb"; version="0.1.14"; sha256="1i6gxcz90r536sp9khafzb5lfbqymh61nvaancvl8jl8wqindxp4"; depends=[digest httr jsonlite purrr tibble xml2 xts]; };
-  rbcc = derive2 { name="rbcc"; version="0.1.0"; sha256="0mfwkbgcnahrk19n14icf26rxf93nqm1r0kr2gi02gmpqrycl0br"; depends=[ggplot2 PearsonDS pracma qcc reshape2]; };
+  rbcc = derive2 { name="rbcc"; version="0.1.1"; sha256="1v99cpbq7wd9kfjfanyxfmxifvnr73882hh0zyrp6n3nvj7l85rz"; depends=[ggplot2 PearsonDS pracma qcc reshape2]; };
   rbch = derive2 { name="rbch"; version="0.1-1"; sha256="0n2s5qfgjvg7vv65myz6dcmmaf37z883z1sw4hryngz2z6w4zz5q"; depends=[gmp httr openssl rjson]; };
   rbedrock = derive2 { name="rbedrock"; version="0.3.2"; sha256="0jyc7cikr86927ax3qhniv8injqwndzhr4bhd4yphh2sliv6ci8c"; depends=[bit64 digest dplyr fs magrittr purrr R6 rappdirs readr rlang stringr tibble tidyr vctrs]; };
   rbenchmark = derive2 { name="rbenchmark"; version="1.0.0"; sha256="010fn3qwnk2k411cbqyvra1d12c3bhhl3spzm8kxffmirj4p2al9"; depends=[]; };
@@ -16463,7 +16736,7 @@ in with self; {
   rbibutils = derive2 { name="rbibutils"; version="2.2.16"; sha256="1brab8vzzf44d9rpp9k3r2ajvrs09cbwf4ak014iffzn8yx0yz4w"; depends=[]; };
   rbin = derive2 { name="rbin"; version="0.2.0"; sha256="18g6s4m0yc1bzrymk8km553kcwi4vj16b6mxw2lmv48z7243iq87"; depends=[data_table ggplot2]; };
   rbioacc = derive2 { name="rbioacc"; version="1.2.1"; sha256="0yz3mlkz6869rlg56m49bl5bq16gnmr69lznlvcsz7vmwli2ic4x"; depends=[BH GGally ggmcmc ggplot2 loo Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders stringr zoo]; };
-  rbioapi = derive2 { name="rbioapi"; version="0.8.0"; sha256="0dxd58y0a5pd5zw3agd405xb6325z629n7lg9ps7hqc66jy59pba"; depends=[httr jsonlite]; };
+  rbioapi = derive2 { name="rbioapi"; version="0.8.1"; sha256="1ijmdqmmshqb3f6gv8rp6liz31cj00nmady28jdxadpxpp1bp34k"; depends=[httr jsonlite]; };
   rbiom = derive2 { name="rbiom"; version="1.0.3"; sha256="13nma1s3p4bzh8mvikrnmkqyyrx9axvxavq6fyk2w0j804w1qzcg"; depends=[magrittr openxlsx plyr R_utils Rcpp RcppParallel rjson rlang slam]; };
   rbiouml = derive2 { name="rbiouml"; version="1.11"; sha256="1g1q6xc8x8y71ji75c5fl35sxxss964xmhcqlriybb5zc38m1dh0"; depends=[RCurl RJSONIO]; };
   rbit = derive2 { name="rbit"; version="1.0.0"; sha256="09ywr711gv0vgfims2vfcxk3rnd0iadzlksil0q9159yarapfc59"; depends=[R6]; };
@@ -16492,8 +16765,8 @@ in with self; {
   rcdklibs = derive2 { name="rcdklibs"; version="2.9"; sha256="1hdln6530xs8jinshn78gcmpi6dbidn9hfy0rspmnp7k242av4gg"; depends=[rJava]; };
   rcens = derive2 { name="rcens"; version="0.1.1"; sha256="13g99c3w6b1j8g3s6llsk9qx4pfldjf6di9l25a4qlljk1n4r1ar"; depends=[]; };
   rchallenge = derive2 { name="rchallenge"; version="1.3.4"; sha256="0i402p6ccjn10ix5nln30pab5nd78hg5q4ivvgc4i99nx7aq0xpx"; depends=[knitr rmarkdown]; };
-  rchemo = derive2 { name="rchemo"; version="0.1-1"; sha256="18jcx4f4vs6qjhv2ypy4wgqdcprjpbi738lyr28f0ih7185fipm0"; depends=[data_table e1071 FNN signal]; };
-  rcheology = derive2 { name="rcheology"; version="4.3.3.0"; sha256="0q1n6ivzab7kjlakbx1v9fqf7w1i0gg646pd043mvvaacqispai7"; depends=[]; };
+  rchemo = derive2 { name="rchemo"; version="0.1-2"; sha256="06wrpv3bnzq9sz6wq4f1sgcq549rafnqh6rzldl160hv7yb7rl80"; depends=[data_table e1071 FNN signal]; };
+  rcheology = derive2 { name="rcheology"; version="4.4.0.0"; sha256="1iazraakb1jvcjs2ygay1r7f04fpnmsgcgv028bdxj8ck6pqksrq"; depends=[]; };
   rciplot = derive2 { name="rciplot"; version="0.1.1"; sha256="0pz5lvrm9ifhypq490cnqawr87wlh4m0812612s079b9ljsw6dr0"; depends=[dplyr ggplot2 tibble]; };
   rcites = derive2 { name="rcites"; version="1.3.0"; sha256="192cdkd4pybpsdab8dzchx96385bdjsm30p8qrlw9wzmij03rx2x"; depends=[cli curl httr jsonlite]; };
   rclipboard = derive2 { name="rclipboard"; version="0.2.1"; sha256="18dj35vi5xdg0yhdm58vdgklwyl2zsjkvz01jcvwy7nvhkqm6c82"; depends=[bslib shiny]; };
@@ -16501,7 +16774,7 @@ in with self; {
   rco = derive2 { name="rco"; version="1.0.2"; sha256="1ch7ak802ri4jr10jqvhvdi6q9fhyhql15ja395xfv6j81d5cmia"; depends=[]; };
   rcoder = derive2 { name="rcoder"; version="0.3.0"; sha256="09l1gvcf453j058rls4y2r342y3p4ywvf1g0qzq4kwavxxcl5rn2"; depends=[dplyr glue rlang]; };
   rcolors = derive2 { name="rcolors"; version="0.1.0"; sha256="19lkwd1wdwq9if957qjgrz9mq6s8x49dig8snivhw9ksffcfy4xp"; depends=[magrittr]; };
-  rcompanion = derive2 { name="rcompanion"; version="2.4.35"; sha256="184fsaandg34ijg1826r10bbm9wq2a02j68zb37hsm8zrggzm8jc"; depends=[boot coin DescTools lmtest multcompView nortest plyr]; };
+  rcompanion = derive2 { name="rcompanion"; version="2.4.36"; sha256="0r6kppwfm44h9y5wda3pfnxgsjvrdj3ysdmxclhrciq5rlzs2n8v"; depends=[boot coin DescTools lmtest multcompView nortest plyr]; };
   rcompendium = derive2 { name="rcompendium"; version="1.3"; sha256="10df6lr776qr2lhc4phpkl53par60f35c694knzfx4s81mprd842"; depends=[cffr clisymbols crayon devtools gert gh gtools renv rmarkdown rstudioapi stringr usethis xfun]; };
   rconfig = derive2 { name="rconfig"; version="0.3.0"; sha256="1qxm9l0yd4xir6wr31r1v87g7flbpgggy7lh9lbvg307k8li1j2h"; depends=[jsonlite yaml]; };
   rcontroll = derive2 { name="rcontroll"; version="0.1.1"; sha256="14xh5hhb96qk0f3kvvvjbkyswcq17g6y70v5prazldq7i4bzpv8q"; depends=[doParallel doSNOW dplyr foreach gganimate ggplot2 iterators lidR lubridate magrittr Rcpp RcppGSL readr reshape2 sys terra tibble tidyr viridis vroom]; };
@@ -16524,7 +16797,7 @@ in with self; {
   rddi = derive2 { name="rddi"; version="0.1.1"; sha256="19izmky8rwz98i6w76mac9b1sppjdpa48jm33gy38zd3k6k2054j"; depends=[glue rlang xml2]; };
   rddtools = derive2 { name="rddtools"; version="1.6.0"; sha256="12lxdpazfhwn5kkzs91qhs0xcky30dj01yp0v5708ahr1ywqdxmd"; depends=[AER Formula ggplot2 KernSmooth lmtest locpol np rdd rdrobust rmarkdown sandwich]; };
   rde = derive2 { name="rde"; version="0.1.0"; sha256="1zw9gdh90hl0wc5c0xwl5x7566r611wk73sbqdmpzpswjyyl9aqm"; depends=[clipr]; };
-  rdecision = derive2 { name="rdecision"; version="1.2.0"; sha256="0505xzmz8qsnchm51w2s39d9hs90cyzd8dzv0zgfh183n69lvmfz"; depends=[R6 rlang withr]; };
+  rdecision = derive2 { name="rdecision"; version="1.2.1"; sha256="1jd5hgcj9idqs81l8gb8hq57zxjpbziqyj1dj67kzls6mr1kjzil"; depends=[R6 rlang withr]; };
   rdeps = derive2 { name="rdeps"; version="0.2"; sha256="0zcik1lf3b37h089sx8pvcdkdilkx832gjwsvzach5mdg1sv3plc"; depends=[cli]; };
   rdflib = derive2 { name="rdflib"; version="0.2.8"; sha256="0massic915hyw2752jkaa3rx9nf2v7a87gp3c5qpyn4fnqjai4dn"; depends=[dplyr readr redland stringi tidyr]; };
   rdfp = derive2 { name="rdfp"; version="0.1.4"; sha256="1490227hhfjjscfmd8p897v1ijs61pk5sc0a2vr9yjnfmsnxpqrl"; depends=[curl data_table dplyr httr lubridate plyr purrr readr XML xml2]; };
@@ -16536,13 +16809,12 @@ in with self; {
   rdlocrand = derive2 { name="rdlocrand"; version="1.0"; sha256="0kh66bvfg7jq2rj6zx541xrr887f8jfyinhl6jf21vizcijyf3k6"; depends=[AER sandwich]; };
   rdmulti = derive2 { name="rdmulti"; version="1.1"; sha256="1bx97r6d4rfq2y7h85j9g1hqmyf7qmmr7faw4gjxnlh1q281fvdv"; depends=[ggplot2 rdrobust]; };
   rdnb = derive2 { name="rdnb"; version="0.1-5"; sha256="00fpycbsczla7vcik649kdw9q0ckqml5f1f1bhphk2mazk12pqva"; depends=[brew httr stringr xml2]; };
-  rdoc = derive2 { name="rdoc"; version="0.1.0"; sha256="0ac6413jyrr7m25z30n3bpiafsvjx38ik6rrjzsiqxrfp41j6l9x"; depends=[cli crayon prettycode R6]; };
   rdomains = derive2 { name="rdomains"; version="0.2.1"; sha256="1gpgryfdv4dhv98nfnr15lqq9ndwi8q17rwm5z7j2klgi5d644ld"; depends=[aws_alexa curl devtools glmnet httr jsonlite Matrix R_utils urltools virustotal XML xml2]; };
   rdoxygen = derive2 { name="rdoxygen"; version="1.0.0"; sha256="16907969w66xvy62k45rw10qfv4x8z6jkkc6i97vppkgnlvf4d4b"; depends=[devtools]; };
   rdpower = derive2 { name="rdpower"; version="2.2"; sha256="0v598jqka5skffbzb4knfmm5hfbg6gmwjgbclv774wrxxn62sj4z"; depends=[rdrobust]; };
+  rdracor = derive2 { name="rdracor"; version="1.0.3"; sha256="014xa4n6av0g3ffplna8z25b00176war3h2pv20wclx9lq8wz9hs"; depends=[data_table httr igraph jsonlite purrr Rdpack stringr tibble tidyr xml2]; };
   rdrobust = derive2 { name="rdrobust"; version="2.2"; sha256="1p9k8gd39090r5ml1sk30k3hvfns2v6laysbaswsn9i2ka70zj42"; depends=[ggplot2 MASS]; };
   rdryad = derive2 { name="rdryad"; version="1.0.0"; sha256="00f1qwsbwg5jggm5b83nhk1lxyw272rv2kg77bcwqvlf3074c3mz"; depends=[crul curl hoardr jsonlite mime tibble zip]; };
-  rdss = derive2 { name="rdss"; version="1.0.8"; sha256="0wzmiq53x5mid2lqvqgjgp8m7kz2wzlwkki1q561qmqbkkgk4ma8"; depends=[broom dataverse dplyr estimatr generics ggplot2 prediction purrr randomizr readr rlang tibble tidyr]; };
   rdtLite = derive2 { name="rdtLite"; version="1.4"; sha256="0m2fxwz0h4rriw62g2hp20iw6ddbq5l8n80z9xgxk49n6pfm1ywj"; depends=[curl digest gtools jsonlite knitr provViz rlang rmarkdown sessioninfo stringi XML]; };
   rdwd = derive2 { name="rdwd"; version="1.8.0"; sha256="0lb9r2wcdyix3im460wvv2q7yni3yixl7z8py4nbzp7ah0dc7g1z"; depends=[berryFunctions pbapply]; };
   rdwplus = derive2 { name="rdwplus"; version="1.0.0"; sha256="0bcdpza4rbvfzn69zws5s2l32rs7m39a5h3zxyz4gszff3yn37fx"; depends=[rgrass sf stars stringr]; };
@@ -16555,6 +16827,7 @@ in with self; {
   reactable_extras = derive2 { name="reactable.extras"; version="0.2.0"; sha256="16cfldbfcz34jp0kfxiaz8l49ri2s9fr1r9kissqzs0xzjrp78in"; depends=[checkmate dplyr htmltools purrr reactable rjson rlang shiny]; };
   reactablefmtr = derive2 { name="reactablefmtr"; version="2.0.0"; sha256="1r864j8ma1sas2fglw5hdkhf3lxrkri7mf2k5j8cpq7398kgzp94"; depends=[dplyr htmltools htmlwidgets magrittr purrr reactable sass shiny stringr tippy webshot]; };
   reactlog = derive2 { name="reactlog"; version="1.1.1"; sha256="1njihrnq1x162nc2wk16kj1l0vpvk8xcdgjvj36arw4z8nv8wpah"; depends=[jsonlite]; };
+  read_dbc = derive2 { name="read.dbc"; version="1.0.7"; sha256="1virjl00x1yzby6wvxjdf1kqbjgm2kkdv53b72c0jq4nrfrl55nw"; depends=[foreign]; };
   read_gb = derive2 { name="read.gb"; version="2.2"; sha256="1ym285y6ii71lz3c68imvcdpw24jdxbdxzq9ia533dy5himclrg7"; depends=[rentrez]; };
   read_gt3x = derive2 { name="read.gt3x"; version="1.2.0"; sha256="0xnl9vg3jvrz4zk721d1mhqpaflrgbs2vbbvfhhr3j394zlcf55b"; depends=[R_utils Rcpp]; };
   readABF = derive2 { name="readABF"; version="1.0.2"; sha256="1lyjl3j62nrsml9vmgwbach9qm8mh2d2pxjj8sfbkkw79krvdnsd"; depends=[]; };
@@ -16564,23 +16837,22 @@ in with self; {
   readMLData = derive2 { name="readMLData"; version="0.9-7"; sha256="0l752j1jq37j9pdcsbmcb23b5l8fkfsbisfr3yjy3q4rxsphc7k6"; depends=[XML]; };
   readMzXmlData = derive2 { name="readMzXmlData"; version="2.8.3"; sha256="1mh6rgy8s0rkvycv99p3zgw831pgzi5cacsj4awb7h4dl11sf8sf"; depends=[base64enc digest XML]; };
   readNSx = derive2 { name="readNSx"; version="0.0.4"; sha256="1mllas238wvmpc094vw242h2gv9qgdyfml9k618ijp1s0mabnwcc"; depends=[cpp11 data_table fastmap hdf5r jsonlite R6]; };
-  readODS = derive2 { name="readODS"; version="2.2.0"; sha256="1f87bnvjxalr0gp651axpyq4abzirxq7l3mirbak0c4b4l2phb1n"; depends=[cellranger cpp11 readr stringi tibble vctrs zip]; };
+  readODS = derive2 { name="readODS"; version="2.3.0"; sha256="14849i7c48ilx212kp5zh33fkvps7j2b89kpy007wk5kzpw0y4hy"; depends=[cellranger minty stringi tibble vctrs zip]; };
   readOffice = derive2 { name="readOffice"; version="0.2.2"; sha256="0dg7fwxdl41nrjqnxvh9rpz0la99iid0wy51gncjwrh3s85fj2ks"; depends=[magrittr purrr rvest xml2]; };
-  readabs = derive2 { name="readabs"; version="0.4.14"; sha256="1m6n8w2hi2r0rrnmy9cnb5a0c37wlq23j6w49lx1zspsfqk6iqiv"; depends=[dplyr fst glue httr hutils labelled purrr readxl rlang rvest stringi tidyr xml2]; };
+  readabs = derive2 { name="readabs"; version="0.4.16"; sha256="0f05x7lk2mvccqh6d9zwg35wjcjw59n8skl5n5awrp2hzpavdh57"; depends=[dplyr fst glue httr hutils labelled purrr readxl rlang rvest stringi tidyr xml2]; };
   readbitmap = derive2 { name="readbitmap"; version="0.1.5"; sha256="14825906l326w59g6apy00j55jg3h5kx2r6s031f4gdkbrc7szbk"; depends=[bmp jpeg png tiff]; };
   readbulk = derive2 { name="readbulk"; version="1.1.4"; sha256="1i9wax1dkl6xn37zmmlg2g4cxfzj88fyynrn3gv60sbw6s1a4r30"; depends=[plyr]; };
   reader = derive2 { name="reader"; version="1.0.6"; sha256="1x489q3ljap4zpny68mx83mgxaqiwlkglcy57whwhnh33dd7qp4h"; depends=[NCmisc]; };
   readit = derive2 { name="readit"; version="1.0.0"; sha256="1sq2spjgdc9rq8cr5i9qjmqd4vcf7cknpx5dndwjdqrv112y8bk9"; depends=[crayon haven jsonlite readr readxl]; };
   readmet = derive2 { name="readmet"; version="1.7.1"; sha256="1q6d37d6s420ns8pdmqj002z2df35ci3jjvpjr5z53ii6fsf21mz"; depends=[]; };
   readmission = derive2 { name="readmission"; version="0.1.0"; sha256="14jdy4w49g7v843hn3hiqgr33nns6hq62a62b0cyainbkvrgrgwk"; depends=[]; };
-  readmnist = derive2 { name="readmnist"; version="1.0.6"; sha256="0f2kp5r04k47gpvbj8x13c47zsis3bw3y8f5f37sh6jggblqr004"; depends=[]; };
   readmoRe = derive2 { name="readmoRe"; version="0.2-12"; sha256="18zxhnh8nzh3l5j94mrqf9l94bxvc82nzhl8sx5k9h08gj4f1zfw"; depends=[plyr R_utils readxl xml2]; };
   readobj = derive2 { name="readobj"; version="0.4.1"; sha256="0ga0kk6n98zy8w9wc2fahn15bgsv73n4ncqgqb5ldyr4vjqxr2sr"; depends=[Rcpp]; };
   readr = derive2 { name="readr"; version="2.1.5"; sha256="02p1jjal73j39r49ba4jlvbx8bdqmm96nsdp47igyv54w1gmm9hg"; depends=[cli clipr cpp11 crayon hms lifecycle R6 rlang tibble tzdb vroom]; };
   readrba = derive2 { name="readrba"; version="0.1.8"; sha256="0hvz8zss5gh7r2w9ar3qh66k7vgbdikz942fp8pbzag8khah5rza"; depends=[dplyr httr lubridate purrr readxl rlang rvest stringr tidyr xml2]; };
   readroper = derive2 { name="readroper"; version="0.9.3"; sha256="00l731hryx0igj0x7knljs9xq4gaczmsgw2hh05ngrl9y5s528dc"; depends=[readr]; };
   readsdmx = derive2 { name="readsdmx"; version="0.3.1"; sha256="0rqi9kfhis2il0jw08rsbpk9ca0hm3i7vh9l3d0rvx5acck7z4z2"; depends=[Rcpp]; };
-  readsdr = derive2 { name="readsdr"; version="0.2.0"; sha256="0s16m1cam69c83k6cdpysdfyqzh0ihyjdwdzv3hqxa9054iv5ifx"; depends=[deSolve dplyr magrittr purrr rlang stringi stringr xml2]; };
+  readsdr = derive2 { name="readsdr"; version="0.3.0"; sha256="0jg7iz6bnilxb5l3xs13v13zg96cjdv24ijvhqw7kh1i10g5kdk2"; depends=[deSolve dplyr future future_apply magrittr progressr purrr rlang stringi stringr xml2]; };
   readsparse = derive2 { name="readsparse"; version="0.1.5-6"; sha256="0njvk51057bi6chd6vqcfwif5b18943k67biyk4gk80rj01ggscc"; depends=[Matrix Rcpp]; };
   readstata13 = derive2 { name="readstata13"; version="0.10.1"; sha256="18yr7nsz80dsxxsdgyi68k7506digjawk6khnzpvk5y80yz7hyqi"; depends=[Rcpp]; };
   readtext = derive2 { name="readtext"; version="0.91"; sha256="0bzaq0vx6c83i4xf7p9zwka7h7jbv1qfy6w4v3kljx30hl048dpn"; depends=[antiword data_table digest httr jsonlite pdftools pillar readODS readxl streamR stringi striprtf xml2]; };
@@ -16588,7 +16860,7 @@ in with self; {
   readwritesqlite = derive2 { name="readwritesqlite"; version="0.2.0"; sha256="1p80ghra71j83xrrsqrpqkdaylp4sl1daw1paxw9jpajw679n986"; depends=[chk crayon DBI glue hms lifecycle rlang RSQLite sf tibble]; };
   readxl = derive2 { name="readxl"; version="1.4.3"; sha256="0j2rkb012h0kvcm8n3817lgfir52dvmkwaxn7mij71gbxz6vpzky"; depends=[cellranger cpp11 progress tibble]; };
   readxlsb = derive2 { name="readxlsb"; version="0.1.61"; sha256="1l7lklfk6ifjq6v4m0ha5k1fxak62zac2yn698r03x41k29382f7"; depends=[cellranger Rcpp xml2]; };
-  readysignal = derive2 { name="readysignal"; version="0.0.9"; sha256="0fhm3xdxilmvs3r6vlbzydfq5xk0vxdkmpw49haknlwpvb18r403"; depends=[httr jsonlite progress rvest]; };
+  ready4 = derive2 { name="ready4"; version="0.1.9"; sha256="0y7mjsah7a1f8jzz9mf3f9dvqnv30qdn2m4hccw0hyqvwcr1a4pf"; depends=[dataverse dplyr gh kableExtra lifecycle magrittr piggyback purrr rlang rvest stringi stringr tibble tidyRSS tidyselect]; };
   realTimeloads = derive2 { name="realTimeloads"; version="1.0.0"; sha256="0ragbi8sczhs8hsbgxl4gmb8lwbmhnxiz88almpml2slsmx7nrrq"; depends=[data_table imputeTS mice signal TideHarmonics]; };
   realtest = derive2 { name="realtest"; version="0.2.3"; sha256="1k2chcxpqrl4b4xfc80b8kvkn0nw8dfbl6n1965zjzszf7qaizkp"; depends=[]; };
   reappraised = derive2 { name="reappraised"; version="0.1.1"; sha256="1f8qmxzn4vyn68dfc6c31jrjnymy6r7r4fg9qddx9cv01asfscws"; depends=[boot broom data_table dplyr epitools flextable ggplot2 ggpubr magrittr officer purrr readxl rlang tidyr vcd vcdExtra]; };
@@ -16602,9 +16874,11 @@ in with self; {
   rebus_datetimes = derive2 { name="rebus.datetimes"; version="0.0-2"; sha256="1hq5mr1v8ziikmkncb9ix11877rmzbjhz54nigwbkswbjwj7vhdf"; depends=[rebus_base]; };
   rebus_numbers = derive2 { name="rebus.numbers"; version="0.0-1"; sha256="0drgszz0824j49c6jk9ry0cfjky7g843ldlxrx3g2vjp0v7hznj3"; depends=[rebus_base]; };
   rebus_unicode = derive2 { name="rebus.unicode"; version="0.0-2"; sha256="185313wh4zpp6addfdr78pjhxzazlfwgsddwk02zrzblf4iwzjdm"; depends=[rebus_base]; };
+  recalibratiNN = derive2 { name="recalibratiNN"; version="0.2.0"; sha256="10baqzbwggry9lwydr6vbsx5mx2jpbggm7dxamz9887min8n2lfa"; depends=[dplyr ggplot2 glue Hmisc magrittr purrr RANN Rdpack tibble tidyr]; };
   recapr = derive2 { name="recapr"; version="0.4.4"; sha256="1grp8aczn3qjm8ihn2466v5yay60vwyf1x7jsmihgxlvgwki6dh7"; depends=[MASS]; };
-  receptiviti = derive2 { name="receptiviti"; version="0.1.7"; sha256="1qshi14shq21pnpb3n8wwykz5qgzhc14mr50iiwyif6d0f4n82gb"; depends=[curl digest jsonlite progressr stringi]; };
+  receptiviti = derive2 { name="receptiviti"; version="0.1.8"; sha256="1z8f8wky1r712mi3by4jf0iv973i3bppgslj7kkvzwnrbij458fj"; depends=[curl digest jsonlite progressr stringi]; };
   recexcavAAR = derive2 { name="recexcavAAR"; version="0.3.0"; sha256="0b91jbgqzkgzvk658ckk639yyz1daa0xql3qgl0kzgqg68d53x20"; depends=[kriging Rcpp]; };
+  rechaRge = derive2 { name="rechaRge"; version="1.0.0"; sha256="05in0rv36g282f79b0f3crn1y7azfvw7863n8c583jgvhmvndqsn"; depends=[airGR data_table doFuture foreach future hydrostats lubridate ncdf4 plyr progressr R_utils raster sp zoo]; };
   rechonest = derive2 { name="rechonest"; version="1.2"; sha256="0vpff8q5p6in7vjyl62bx3wmksravcg4mpx20qlgy5ia47vyhqp2"; depends=[httr jsonlite RCurl]; };
   recipes = derive2 { name="recipes"; version="1.0.10"; sha256="1m4v9j7by0w5avqljmwck1jsgjgwc8rsby0affa5zii3xkvvvifg"; depends=[cli clock dplyr ellipsis generics glue gower hardhat ipred lifecycle lubridate magrittr Matrix purrr rlang tibble tidyr tidyselect timeDate vctrs withr]; };
   reclin2 = derive2 { name="reclin2"; version="0.5.0"; sha256="08jf6r74fmsj2bvhz76vf74hphg8543x4wj1dnbsj44xjzh6abi4"; depends=[data_table lpSolve Rcpp stringdist]; };
@@ -16614,7 +16888,6 @@ in with self; {
   recodeflow = derive2 { name="recodeflow"; version="0.1.0"; sha256="0qi5y1rbdw6dcvkl8gw9fh7rcb0f6ckig8464sgxslgf7cdk2gcz"; depends=[dplyr haven magrittr sjlabelled stringr tidyr XML]; };
   recogito = derive2 { name="recogito"; version="0.2.1"; sha256="0hirzw446r192gdvscgqmm7n3bh2fy0qkf9pqnqm2vziv1cqf1bq"; depends=[htmltools htmlwidgets jsonlite]; };
   recolorize = derive2 { name="recolorize"; version="0.1.0"; sha256="1biiyqqvnm3310gc9q0apwqfmvmh6cnj9pc77l44js4x3576w3aq"; depends=[abind colorRamps imager mgcv pavo plot3D plotfunctions png raster]; };
-  recom = derive2 { name="recom"; version="1.0"; sha256="13g8wq4qaa850r7q09cr9x0brxki98h86cq83573jcv4lh3r97yq"; depends=[Rcpp]; };
   recombinator = derive2 { name="recombinator"; version="1.0.1"; sha256="1dbsqig2jjp3zypcqxf9c2brb09pv6xikmh6fhz5vgxy5wkyivks"; depends=[crayon]; };
   recometrics = derive2 { name="recometrics"; version="0.1.6-3"; sha256="1i7842k6qw9zbcslfwgdfd7358jh63aybi4mifq6knc8qm577nqk"; depends=[float Matrix MatrixExtra Rcpp RhpcBLASctl]; };
   recommenderlab = derive2 { name="recommenderlab"; version="1.0.6"; sha256="1dxpdgmv3hfwix1w8lzc0ijcd8myslsqnznr5pbwsrh7wypwqk1h"; depends=[arules irlba Matrix matrixStats proxy recosystem registry]; };
@@ -16627,11 +16900,10 @@ in with self; {
   recurrentpseudo = derive2 { name="recurrentpseudo"; version="1.0.0"; sha256="1vnljzn933k4wcc751r6s67dfjz1mrwvcb37yziv6qn8zimn8xrz"; depends=[dplyr geepack magrittr prodlim stringr survival]; };
   recurse = derive2 { name="recurse"; version="1.3.0"; sha256="05x2qcabxw0xgirvb39si1j8szrz328fx1f3v8yvdysmfa3bg408"; depends=[Rcpp]; };
   red = derive2 { name="red"; version="1.6.1"; sha256="1xij1wshb5bv5zd9svhgprdjpn3snxb7wjqjdrqkbgs8y49cixx6"; depends=[BAT dismo gdistance geosphere jsonlite predicts sp terra]; };
-  redR = derive2 { name="redR"; version="1.0.1"; sha256="0bd1jzjip6p449m9ysi4kybxqljh2wj8z9mrgyk1cy08bjivd1cd"; depends=[imager]; };
   reda = derive2 { name="reda"; version="0.5.4"; sha256="1lrfbcvxgbbpi7l3vls3rdj8y3w30gg5f1fjcfscmykvp0i01j3d"; depends=[ggplot2 Rcpp RcppArmadillo splines2]; };
   redbookperu = derive2 { name="redbookperu"; version="0.0.2"; sha256="0pf6ihk5k4milzz9j2y5wsxj7ishadlx1zvffhkw600c3i7ssi5b"; depends=[]; };
-  redcapAPI = derive2 { name="redcapAPI"; version="2.8.4"; sha256="1a1vxw290ff1h5qv02139lxp1im5cfybhcg3ws8yghra4237y1bg"; depends=[checkmate chron getPass httr keyring labelVector lubridate yaml]; };
-  reddPrec = derive2 { name="reddPrec"; version="2.0.1"; sha256="0qi81d0yjjw7iqzi88zrdiixmiw0a06arlc7yxl3nv0q35dgmapz"; depends=[doParallel foreach qmap reshape terra]; };
+  redcapAPI = derive2 { name="redcapAPI"; version="2.9.1"; sha256="1zz5dwd1i7j0d9qf79zmlqb5i4d4qk59sg7qqzb6y8vmp1ldqwm7"; depends=[checkmate chron getPass httr keyring labelVector lubridate yaml]; };
+  reddPrec = derive2 { name="reddPrec"; version="2.0.3"; sha256="0cxssbqkbnjphankwa7hrdcf76l9ss8zjnk1981yd14nh8lhy459"; depends=[doParallel foreach qmap reshape terra]; };
   redditadsR = derive2 { name="redditadsR"; version="0.1.0"; sha256="00kn34d8277f8m4xigr28lpq4s55lvli4xw70g4cbsir7m6ibklv"; depends=[jsonlite]; };
   redist = derive2 { name="redist"; version="4.2.0"; sha256="1ibwldd24zj2fhpn18q4381mp82p7wbv61xmqm2lzybil92y800w"; depends=[cli doParallel doRNG dplyr foreach ggplot2 patchwork Rcpp RcppArmadillo RcppThread redistmetrics rlang servr sf stringr sys tidyselect vctrs]; };
   redistmetrics = derive2 { name="redistmetrics"; version="1.0.7"; sha256="0r9fa0p65bpklgcb5nbbsm2s3vhrcbbp4glciglmw185vfjqg7s2"; depends=[cli doParallel dplyr foreach geos magrittr Rcpp RcppArmadillo RcppThread rlang sf vctrs wk]; };
@@ -16642,14 +16914,16 @@ in with self; {
   ref_ICAR = derive2 { name="ref.ICAR"; version="2.0.1"; sha256="1mix12qxap6rqs6dg4nlbm9vlkzxgr1ivkjjkzap3k0km0agldx9"; depends=[classInt coda dplyr ggplot2 gtools MCMCglmm mvtnorm pracma Rdpack sf sp spdep]; };
   refdb = derive2 { name="refdb"; version="0.1.1"; sha256="1g30n7jvn532nhbn4mrfkfym40vw1ha0q8yi3d3d3v86gyr5ga4n"; depends=[ape bioseq bold dplyr ggplot2 ggraph igraph leaflet readr rentrez rlang rmarkdown stringr taxize tibble tidyr xml2 yaml]; };
   refer = derive2 { name="refer"; version="0.1.0"; sha256="1y0n4xzhn96d25mwjr0735w990rz2kbxhcpsc5k5vwbwq64q6wsd"; depends=[eList matchr]; };
-  referenceIntervals = derive2 { name="referenceIntervals"; version="1.3.0"; sha256="0q6rpz8llfsk86y8i1sdlqi97gcfx9k7q510pnz9nr7ag0w6w5mc"; depends=[boot extremevalues MASS outliers]; };
+  referenceIntervals = derive2 { name="referenceIntervals"; version="1.3.1"; sha256="1vgiy0ds982y9mjnpigzhmckxwj010ymfip2x2gfsqrc320gl2hq"; depends=[boot extremevalues MASS outliers]; };
   refineR = derive2 { name="refineR"; version="1.6.1"; sha256="1bwafqcvsvmb6svdcr4ri31wvyzws33xfxrf42g4dzx03q0wwkin"; depends=[ash future future_apply]; };
   refinr = derive2 { name="refinr"; version="0.3.3"; sha256="05shfsif1s2pyyxxrrjg8qlr1bdp3yxviw2jjll3p5r65nn3gnh1"; depends=[Rcpp stringdist stringi]; };
   refitME = derive2 { name="refitME"; version="1.2.2"; sha256="125hxp24vlwg3g0v1rlhi3zbvnnzyj95a6d9f52f98hf6bp05yhb"; depends=[caret dplyr expm MASS mgcv mvtnorm sandwich scales SemiPar VGAM VGAMdata]; };
+  reflectR = derive2 { name="reflectR"; version="2.1.3"; sha256="1jf8zk4gca78rf7fjv0ksfag0n3i5b3n8wn22cgxrlky02sp7nd0"; depends=[stringr]; };
   reflimR = derive2 { name="reflimR"; version="1.0.6"; sha256="02phm6jjhwdcc82vw292kcwwrprl7zcd8fyvb479rs3c1ippkrhc"; depends=[]; };
-  reformulas = derive2 { name="reformulas"; version="0.2.0"; sha256="1bjq9ncpb4jn4q0hibhmnq5s9izvixac7fvw90cyk7r24kkv10mr"; depends=[Matrix Rdpack]; };
+  reformulas = derive2 { name="reformulas"; version="0.3.0"; sha256="0p8v8j0xw4np84vvkbd41r4n1rvj5awlrnpbvqccgjasspl07smh"; depends=[Matrix Rdpack]; };
   refreg = derive2 { name="refreg"; version="0.1.1"; sha256="0dqlqh3ndpqjab2cz3aikb9srhmyj3j133lwcnajgycwr5334mri"; depends=[doParallel foreach ggplot2 gridExtra KernSmooth ks matrixcalc mbend mgcv misc3d pracma RColorBrewer rgl sp stringr]; };
   refreshr = derive2 { name="refreshr"; version="0.1.0"; sha256="0p240a7f2yajrd5qqjv0la49vm2cs6i32zyxxjcs6rd2a1z9xwfs"; depends=[crayon dplyr lubridate stringr]; };
+  refseqR = derive2 { name="refseqR"; version="1.0.2"; sha256="076ai3jgpll30fx7hnvy5b11n7v4c9vgsnkw98pfddi7p5xxiw2f"; depends=[Biostrings IRanges rentrez tibble]; };
   refset = derive2 { name="refset"; version="0.1.1"; sha256="1xbwvm9066g3f7pd34z5jh04vph4ddy2lkcgmf4kiwa1k5czpwg1"; depends=[]; };
   refuge = derive2 { name="refuge"; version="0.3.3"; sha256="0cq62rgawlam4j4h4sz4zvkgi0x21k4syy4vh7i40bxrq0z9ysyz"; depends=[dplyr httr jsonlite tibble]; };
   refugees = derive2 { name="refugees"; version="2023.6.0"; sha256="1sy93zg4vjv02ga96vzhdjvgnwmv3gmd3m7w2fplah7d49i3z85v"; depends=[tibble]; };
@@ -16657,13 +16931,12 @@ in with self; {
   refund_shiny = derive2 { name="refund.shiny"; version="1.0"; sha256="1qzz9q6bxl9hdr7mqhmva96x12g62m9h9mb6yqhq6003w7cz186g"; depends=[dplyr ggplot2 gridExtra lme4 plotly refund reshape2 shiny tidyr]; };
   regDIF = derive2 { name="regDIF"; version="1.1.1"; sha256="0b7sdkykvdgzss1ipqsxfna870g8nry1aa83gsm43fp2y9kmv62z"; depends=[foreach statmod]; };
   regRSM = derive2 { name="regRSM"; version="0.5"; sha256="0nbp3yjk9r7qvwm7wla39155rmqnvpdb720iq3b0hcy1bbsxbk9s"; depends=[doParallel foreach Rmpi]; };
-  regcensus = derive2 { name="regcensus"; version="1.0.1"; sha256="0sab5pwbnc06vds23nzcargk8igfngsyqhvnh0q40g95b55fm0c8"; depends=[dplyr httr jsonlite stringr tidyverse]; };
   regclass = derive2 { name="regclass"; version="1.6"; sha256="0m974k3yhf0dgv5f1qjs8c53mam0cll3cjn35ywfrmlfla0wlhf5"; depends=[bestglm leaps randomForest rpart rpart_plot VGAM]; };
   regda = derive2 { name="regda"; version="1.0"; sha256="0zdipzkf8yil1cf142g66cls9d2yabzag9k4nm9nab0nyfidkdcw"; depends=[doParallel foreach Rfast Rfast2]; };
   regexPipes = derive2 { name="regexPipes"; version="0.0.1"; sha256="1hk0rhvmgzcyf5cyl8hjznl3ll25kpasqikfr6nxd6ian2slvmmb"; depends=[]; };
   regexSelect = derive2 { name="regexSelect"; version="1.0.0"; sha256="0xnb9qa8l63ang4r40ky4qhlrs5mbzvmj98dgij26j3mq1ys1pa7"; depends=[shiny shinyjs]; };
   reghelper = derive2 { name="reghelper"; version="1.1.2"; sha256="1vd8kd719kyjp65zym6zx3vax1q2kbhpl6la71d5aa59s54ylri3"; depends=[ggplot2 lme4 MASS nlme rlang]; };
-  regional = derive2 { name="regional"; version="0.3.3"; sha256="0gwm3lqmils8dpv0g0919caqifa90lv3vrjqcky33i7jd18c20g2"; depends=[philentropy terra]; };
+  regional = derive2 { name="regional"; version="0.4.4"; sha256="1z41hwkgh8c9xzil95gam6d1pi4m2788xc26d0r0wbynrxjdpqq4"; depends=[philentropy terra]; };
   regioncode = derive2 { name="regioncode"; version="0.1.2"; sha256="1q3d2s6x79i7v7phspabk3m7kld74jplv5wda9ybpyv1vzdinx99"; depends=[dplyr pinyin]; };
   regions = derive2 { name="regions"; version="0.1.8"; sha256="16i0w1my9zfwh0p9qvc3vcid0r6rb6gbvvrx03vbg81l6cxrglr4"; depends=[assertthat countrycode dplyr glue here magrittr purrr readxl rlang stringr tibble tidyr tidyselect]; };
   registr = derive2 { name="registr"; version="2.1.0"; sha256="033kvhcx27g0vw85gi8xb035wijqb6xsg8jjskqpp4l1gw3a1v1c"; depends=[dplyr gamm4 lme4 magrittr MASS Matrix mgcv pbs purrr Rcpp RcppArmadillo tidyr]; };
@@ -16692,10 +16965,12 @@ in with self; {
   rehydratoR = derive2 { name="rehydratoR"; version="0.5.2"; sha256="1d94m9hv1l72l9lph2vzbq4qqbfcgyhv2qk82p9vb8l2ckavjzvv"; depends=[dplyr jsonlite rtweet tibble]; };
   reinstallr = derive2 { name="reinstallr"; version="0.1.5"; sha256="0yr1fzfahxqffjh5vm6y6b0iay8p0cirlzq2z4hlz7nci57fx5yr"; depends=[]; };
   reinsureR = derive2 { name="reinsureR"; version="0.1.0"; sha256="19ayikzcq6z4i7xrlby76yy2nwvrsv6xdfrmvzyr7rz934flh8kd"; depends=[data_table dplyr ggplot2 viridis viridisLite]; };
+  relMix = derive2 { name="relMix"; version="1.4"; sha256="17b0121yqnkl36jkn03qzlkhibl528jz95rzrj602jf2gpah4a9x"; depends=[Familias flextable gWidgets2 gWidgets2tcltk officer pedFamilias pedtools]; };
   relSim = derive2 { name="relSim"; version="1.0.0"; sha256="1f2dz25hkh2ak7cypn3zj9rabj3z7d59q4yhrrq4f6mzdki80d15"; depends=[multicool Rcpp rvest stringr xml2 xtable]; };
   relaimpo = derive2 { name="relaimpo"; version="2.2-7"; sha256="1430p6kxh582k0saagns6mxz7qp6myf6n66hp1p02isl61w3w6sa"; depends=[boot corpcor MASS mitools survey]; };
   relatable = derive2 { name="relatable"; version="1.0.0"; sha256="0147gin6dn76gg7gassar64f0w2gny1sh0k60v7914qhb4sj4s7i"; depends=[compare]; };
   relations = derive2 { name="relations"; version="0.6-13"; sha256="1nnr0kcr3whbwzi36sg7wn46jp7r0hfkvcwlybvjsjhczcvc6ngq"; depends=[cluster sets slam]; };
+  relcircle = derive2 { name="relcircle"; version="1.0"; sha256="109fc4zngsrwxszij1y4y0mvzfnyv6f90d2imfrppa5aaivrq07j"; depends=[]; };
   reldist = derive2 { name="reldist"; version="1.7-2"; sha256="1j99j9a0igb9nwkp7fkqqkmvyz770xmbi1d25pbnaz7d2jy6q26r"; depends=[densEstBayes mgcv]; };
   relevance = derive2 { name="relevance"; version="2.1"; sha256="1x6abdraxzyf1anmxsx82g4am4hamj0cpayvhbph51dcf49wkvh0"; depends=[]; };
   relevent = derive2 { name="relevent"; version="1.2-1"; sha256="13nvz6gsjqm10hc9fy9vf4x39grj65ynlmy9v4fww02pzih89zjj"; depends=[coda sna trust]; };
@@ -16711,7 +16986,7 @@ in with self; {
   rematch = derive2 { name="rematch"; version="2.0.0"; sha256="09jwg3glp32q4ml4khhzi8j7bzg9zhqqdg1m6r8gibh756zzgnhm"; depends=[]; };
   rematch2 = derive2 { name="rematch2"; version="2.1.2"; sha256="1fzpz8vhghw8ygwg6rsvfy3783pqk7ch029i5851lwypkplvz77y"; depends=[tibble]; };
   remedy = derive2 { name="remedy"; version="0.1.0"; sha256="1lsa5az9jwy4ngjmfzcb7qj4wm8phsgajlnp5kwa4nav0g1dhb4s"; depends=[knitr rematch2 rstudioapi]; };
-  remify = derive2 { name="remify"; version="3.2.5"; sha256="0l0haz3g9x6ycsiiz760dmcq5kclxyyhba69qvp7s9jhcacf6y12"; depends=[igraph Rcpp RcppArmadillo]; };
+  remify = derive2 { name="remify"; version="3.2.6"; sha256="062bgggz4bkzm3ijpghsrlf9q813zmzisxdwgzlizpqhzppwvzig"; depends=[igraph Rcpp RcppArmadillo]; };
   remindR = derive2 { name="remindR"; version="0.0.1"; sha256="0b27v2qm3z8l9vcng8f0rkphjidxkw5n017ysflx180qjizqq632"; depends=[assertthat]; };
   remiod = derive2 { name="remiod"; version="1.0.2"; sha256="1darwljspxm6mkkp0d7xx375kvhlfwpzxc93yr2mb0mwi2877yi9"; depends=[coda data_table doFuture foreach future ggplot2 JointAI mathjaxr Matrix mcmcse ordinal progressr rjags survival]; };
   remmy = derive2 { name="remmy"; version="0.1.0"; sha256="180b943fb1134r22avidv0s8gvsbx21kpl865l1xfzz95gzj6d7w"; depends=[curl httr2]; };
@@ -16720,15 +16995,15 @@ in with self; {
   remotes = derive2 { name="remotes"; version="2.5.0"; sha256="0345s9q0fyv0wrxkklcy97h7bi85jfb3vwkh80px926d4qa3yrjd"; depends=[]; };
   rempsyc = derive2 { name="rempsyc"; version="0.1.7"; sha256="1s4iv2ssz12pppjc9glhnryfkqnafid3fz9gmvhs9k5jk3cnq4pa"; depends=[dplyr rlang]; };
   remss = derive2 { name="remss"; version="1.0.1"; sha256="15s3qvcfyp1880ddzpvgiw3q5av21052iy1vnpw0hib5pb7xfkfb"; depends=[survival]; };
-  remstats = derive2 { name="remstats"; version="3.2.1"; sha256="1n1byjjaj1d87s3289szsr3in67fkx4dqyy2dzy86kijzvx2qinl"; depends=[Rcpp RcppArmadillo RcppProgress]; };
-  remstimate = derive2 { name="remstimate"; version="2.3.8"; sha256="0i94w0wrdwcflay3a7lx85wi7mqkrl74zbsbf30sb3kr81iivjzh"; depends=[mvnfast Rcpp RcppArmadillo remify remstats trust]; };
+  remstats = derive2 { name="remstats"; version="3.2.2"; sha256="0ismgr1kj35hgaiam0xs03y28jmxl030l3xb46c45cdg44avhhdk"; depends=[Rcpp RcppArmadillo RcppProgress]; };
+  remstimate = derive2 { name="remstimate"; version="2.3.11"; sha256="0sa1fxpy9cpfxkm9pkb7kq6qbkv9bvq900j2182yrsx4g02sxa41"; depends=[mvnfast Rcpp RcppArmadillo remify remstats trust]; };
   renpow = derive2 { name="renpow"; version="0.1-1"; sha256="0kbfpzr17fvf5zzxpzdhvfmrqmlkba2w3rzxl5q5ac1w3h75gfhc"; depends=[]; };
   rentrez = derive2 { name="rentrez"; version="1.2.3"; sha256="0x1g2f6hvkqqlb39z8m5qxhcvsizddic5i7rpqw0wy77xfbna9gv"; depends=[httr jsonlite XML]; };
-  renv = derive2 { name="renv"; version="1.0.5"; sha256="07y1xqnx5jkgk0cqgf8c4p5vm3qy87zjl31zv6s0jssy3v7amq4p"; depends=[]; };
+  renv = derive2 { name="renv"; version="1.0.7"; sha256="01s5g4w96s0jz9xa1gdj8y4pfvz8cf3gg0kz2smh6f3l4f5baq3v"; depends=[]; };
   renz = derive2 { name="renz"; version="0.2.1"; sha256="06zj7qkpjvl0zy33d67g4ig9z3mvay66bxz08l0sshgkas9nxbjq"; depends=[VGAM]; };
   repairData = derive2 { name="repairData"; version="0.1.0"; sha256="1l5ag952165b0nm59mp9v768dp53xm51ckg01i4c6l04qfzx1lm7"; depends=[]; };
-  repana = derive2 { name="repana"; version="2.1.0"; sha256="11yp1l9s9j9spm1nvz0zc55ajnjm96wm1gik0h63ynnhv2yfcsn3"; depends=[config DBI digest dplyr lubridate magrittr openxlsx pool processx readr rmarkdown rstudioapi yaml]; };
-  repeated = derive2 { name="repeated"; version="1.1.7"; sha256="15d4igg4s87rj22kxi1sc1chfd1z7v08q6cvglabysaymbz1nbmw"; depends=[rmutil]; };
+  repana = derive2 { name="repana"; version="2.2.0"; sha256="1iyxyq8fl7cbbw374xc32fsrxsl40306anvyia6fwjr5j5dy7v5g"; depends=[config DBI digest dplyr lubridate magrittr openxlsx pool processx readr rmarkdown rstudioapi yaml]; };
+  repeated = derive2 { name="repeated"; version="1.1.8"; sha256="07bm52dwkd4hpk57k7rlmcac2kfb8ri2znss2bcvjasy4pacm3jd"; depends=[rmutil]; };
   repec = derive2 { name="repec"; version="0.1.0"; sha256="0alr9fbmfxmnnnn1qymy65crcycynwz435jj0vangbb4p0qhv8pm"; depends=[jsonlite]; };
   repello = derive2 { name="repello"; version="1.0.1"; sha256="118m0vybgf5ys856zivn7gvjxqq163gkrhrpyl1avylib4bp3mcq"; depends=[dplyr httr stringr]; };
   repfdr = derive2 { name="repfdr"; version="1.2.3"; sha256="0jpk44arg1jib0h2w90h851bs5cd1ss32fab9bfvf9iir2jk8985"; depends=[Rcpp]; };
@@ -16754,8 +17029,8 @@ in with self; {
   represtools = derive2 { name="represtools"; version="0.1.3"; sha256="00hnvzkkcl9d3k115i5l9gs0wah5d11amn7q62m1j158lkqlcfza"; depends=[whisker]; };
   reprex = derive2 { name="reprex"; version="2.1.0"; sha256="0ld90pkw2r7z115xdnyqk4p39vnxrc8jnn57sl4bkpg5frczw38a"; depends=[callr cli clipr fs glue knitr lifecycle rlang rmarkdown rstudioapi withr]; };
   reproducer = derive2 { name="reproducer"; version="0.5.3"; sha256="0nm8x1bwigbvkz7bbr313fmxb9ypk6dw2yl9g1cppdws2c6rq1mr"; depends=[dplyr GetoptLong ggplot2 gridExtra httr jsonlite lme4 MASS metafor nortest openxlsx readr reshape stringr tibble tidyr xtable]; };
-  reproducible = derive2 { name="reproducible"; version="2.0.10"; sha256="0q0wgbyr2gqjrxb1jwb6ysyqbgpsc0nq6501smqgrmhxfavb0m1d"; depends=[data_table digest filelock fpCompare fs lobstr]; };
-  reproj = derive2 { name="reproj"; version="0.4.3"; sha256="0bcg5bz2sl4d31iwr55nwr85p1jna9fpbcli26lf04dwznwmx0rl"; depends=[crsmeta PROJ proj4]; };
+  reproducible = derive2 { name="reproducible"; version="2.1.0"; sha256="0axrhjzd8wv17f2djx6yg8f4kiwrcs267jwj4h4a10jykqrl9p4v"; depends=[data_table digest filelock fpCompare fs lobstr]; };
+  reproj = derive2 { name="reproj"; version="0.7.0"; sha256="1r2m8j75hmy61h7ld0ra1kpigr1ax6zap8kjxkgjkxcdlqznbbxj"; depends=[crsmeta PROJ proj4]; };
   repsd = derive2 { name="repsd"; version="1.0.1"; sha256="102rnc2g31aijhwsmad86k2wjcvbvzi51c2rp0wk711riq5v7cm1"; depends=[progress]; };
   repurrrsive = derive2 { name="repurrrsive"; version="1.1.0"; sha256="123hf7qhhs4jyjbmw4246zmhyngjq7r9ihgg3nxg594kja40khd9"; depends=[tibble]; };
   reqres = derive2 { name="reqres"; version="0.2.5"; sha256="1j8gxacbfnaqvrhjqy851yb8shc73issv08yca6mbnx6aq34wcrd"; depends=[assertthat brotli jsonlite R6 stringi urltools webutils xml2]; };
@@ -16779,28 +17054,27 @@ in with self; {
   resilience = derive2 { name="resilience"; version="2023.1.1"; sha256="0pa0c5l3jm5szn7vffg030krn7f9lz9riqvjz9n7waiszfs0mzdr"; depends=[doParallel foreach nptest]; };
   reslife = derive2 { name="reslife"; version="0.2.1"; sha256="17n9p0kj5sx0zhdyfs4s15rwjkcx9hmly8m51xyv2y70vr1nl4cc"; depends=[flexsurv gsl pracma]; };
   reslr = derive2 { name="reslr"; version="0.1.1"; sha256="0hklhkr0fxrhhi6apskq498z1vv1w90zsfvvc344rmj9qid2lj2a"; depends=[data_table dplyr fastDummies fields geosphere ggplot2 magrittr ncdf4 plyr posterior purrr R2jags stringr tidybayes tidyr]; };
-  resmush = derive2 { name="resmush"; version="0.1.0"; sha256="1zfjnih4x452i3wnnw796qwq9qy89nlimj2lhn4xqkvkgi7ilk00"; depends=[cli curl httr2]; };
+  resmush = derive2 { name="resmush"; version="0.1.1"; sha256="1qmgkxnbdlb544vyzwcsinpdafgq07bligx05pilcz73kic4bwla"; depends=[cli curl httr2]; };
   resourcer = derive2 { name="resourcer"; version="1.4.0"; sha256="0rffkz2ybvr58jpa3kfiw4s3rk0cmrm9r5ca2abbzlcny7kxb7v5"; depends=[httr R6]; };
-  respR = derive2 { name="respR"; version="2.3.2"; sha256="1nywhy50zbk4lvygm9vlkdya3pz1x3mkv8560r2nbcd8yd4w4y71"; depends=[data_table dplyr glue lubridate magrittr marelac purrr readxl roll segmented stringr xml2]; };
+  respR = derive2 { name="respR"; version="2.3.3"; sha256="1dcgfqln7q2y1mvgr85f5linsscj6rsla1dbnrmf81gci0lzk19k"; depends=[data_table dplyr glue lubridate magrittr marelac purrr roll segmented stringr xml2]; };
   respirometry = derive2 { name="respirometry"; version="1.5.0"; sha256="17sfg3c1y7yhyyvq7krii2vazyvnqf1l0ifcdqsr477wwlnwyynr"; depends=[birk dplyr lubridate marelac measurements minpack_lm plyr rlang seacarb segmented]; };
   responsePatterns = derive2 { name="responsePatterns"; version="0.1.1"; sha256="0ym6jbacsi4lv9rcw3k80wiil94ymivm55c4hz6hwbv54ybkzlcj"; depends=[]; };
-  restatapi = derive2 { name="restatapi"; version="0.22.5"; sha256="1vaj20z45y3af1k38fqcxxkpn4fb8arwgm0q5jnf3shfq6ddnzyh"; depends=[data_table rjson xml2]; };
+  restatapi = derive2 { name="restatapi"; version="0.23.1"; sha256="0sbyy35c7klwb9j99krmfr2hww16n51qmw1xdif32kmdq9sjiqdc"; depends=[data_table rjson xml2]; };
   restatis = derive2 { name="restatis"; version="0.1.0"; sha256="0y36qdnadmcdmwik2iyjh8h47jchrbwpal8djy29hx7q1140ra2r"; depends=[askpass httr2 memoise readr tibble vctrs]; };
   restaurant = derive2 { name="restaurant"; version="0.1.0"; sha256="1dr9nw5xkll1wnra2xi8dg2yiv85nibdg1i9lsn44v7cgr9vb32j"; depends=[]; };
   restez = derive2 { name="restez"; version="2.1.4"; sha256="1jzffv1lsxwa2dvkqx48ldwffghkg91vz99d9l3kjdxmg9gb8y9k"; depends=[ape assertthat cli crayon curl DBI duckdb fs rentrez stringi]; };
   restfulr = derive2 { name="restfulr"; version="0.0.15"; sha256="14p6h0gjknqy5z2fprxw7waf4p0cd2qmp18s7qig4ylqn8gqzzs0"; depends=[RCurl rjson S4Vectors XML yaml]; };
   restimizeapi = derive2 { name="restimizeapi"; version="1.0.0"; sha256="1ss6fng5pmqg6cafc256g9ddz8f660c68ysxfan6mn4gdaigz7lb"; depends=[RCurl RJSONIO]; };
   restoptr = derive2 { name="restoptr"; version="1.0.6"; sha256="0m7nw277qgjdxfwx3i1k73l93rqyf766l2af9ymap9dl7hrp8jaq"; depends=[assertthat crayon magrittr rJava terra units]; };
-  restorepoint = derive2 { name="restorepoint"; version="0.2"; sha256="0pjp5dvycvfg75hhj8lrr2lrjn6n6bqj0ziwyd87lyi15b9j8w4s"; depends=[]; };
-  restriktor = derive2 { name="restriktor"; version="0.5-30"; sha256="1qlb892rx2i42mlidl5dm20a848j8cca8zq1d100la2829g9k49g"; depends=[boot ggplot2 ic_infer lavaan MASS mvtnorm norm quadprog]; };
+  restriktor = derive2 { name="restriktor"; version="0.5-60"; sha256="0ksb1jqrkvqjhxcfx4wc6f27p097228h5ck3682409lmj3amp11r"; depends=[boot ggplot2 glue ic_infer lavaan MASS mvtnorm norm pbapply quadprog tmvtnorm]; };
   result = derive2 { name="result"; version="0.1.0"; sha256="031vviwvn85k7hl04c4hqxycj8mnr2j00gi2jqpwdxrxjaaf1dzb"; depends=[]; };
   resumer = derive2 { name="resumer"; version="0.0.5"; sha256="0k3s2i102hvsag7jiahgfpjc09646xjpxcpv5x3d91ch3xipdc0b"; depends=[dplyr rmarkdown useful]; };
   retel = derive2 { name="retel"; version="0.1.0"; sha256="1rajv6y3zsk7hd9wr7szxi685rh377hhvj69rvg77fn0pk56g40b"; depends=[checkmate Matrix matrixcalc nloptr]; };
   rethinker = derive2 { name="rethinker"; version="1.1.0"; sha256="02zfx08s5xisv1v4y16iqbddi9kb3fcr249b3414fzvs4nm5as94"; depends=[rjson]; };
   rethnicity = derive2 { name="rethnicity"; version="0.2.4"; sha256="1h8d9q06dc98l55lqmjxf69ngvdj6r9fcck1bdvk0rin40q07zfk"; depends=[cli Rcpp RcppEigen RcppThread]; };
-  reticulate = derive2 { name="reticulate"; version="1.35.0"; sha256="0693gzb7ihx4qzsr07k664k5r8vygcinwbdiiccmq9lshl1g64sy"; depends=[here jsonlite Matrix png rappdirs Rcpp RcppTOML rlang withr]; };
+  reticulate = derive2 { name="reticulate"; version="1.37.0"; sha256="0zn7rjdfrjhbghngaiir3safidbwqk3hpw6ik227gbhmm3zlk1l9"; depends=[here jsonlite Matrix png rappdirs Rcpp RcppTOML rlang withr]; };
   retriever = derive2 { name="retriever"; version="0.2.1"; sha256="0vachj8rzh8g55y18hz85bsrzr86614frdmr7wz6hszgiq8qgcxy"; depends=[pbapply preprocessCore]; };
-  retrodesign = derive2 { name="retrodesign"; version="0.2.1"; sha256="19bhfmbhd2q4zlkgxm0v563rr4r30d79hsxr3micnzql4hgar2zp"; depends=[]; };
+  retrodesign = derive2 { name="retrodesign"; version="0.2.2"; sha256="0iq1xiqhqp2na9dqyx30hyzsjqi22xq0z11j1zb6h2l2rxbx163p"; depends=[]; };
   retroharmonize = derive2 { name="retroharmonize"; version="0.2.0"; sha256="10fwmm91p3dgad99a7imkg9cjlk0gy2bkpmzgfr6s9bp07splj6i"; depends=[assertthat dplyr fs glue haven here labelled magrittr pillar purrr rlang snakecase stringr tibble tidyr tidyselect vctrs]; };
   retrosheet = derive2 { name="retrosheet"; version="1.1.6"; sha256="0j4c3a7rm26gx0avn4wgz0jzgff23hxb35j04hdly2h36vhw38xf"; depends=[httr rvest stringi stringr xml2]; };
   retry = derive2 { name="retry"; version="0.1.1"; sha256="0vjfck3yf52zxpllp8ffqcm0cqps84p0kr1b89kih5068dxl3kr3"; depends=[later rlang]; };
@@ -16827,7 +17101,7 @@ in with self; {
   rfVarImpOOB = derive2 { name="rfVarImpOOB"; version="1.0.3"; sha256="1f0ljy51xqqrncdg4xpic6ir8zlgvp952pr0s217v7ybgdzs42v6"; depends=[dplyr ggplot2 ggpubr magrittr randomForest ranger titanic]; };
   rfacebookstat = derive2 { name="rfacebookstat"; version="2.10.0"; sha256="179wwpyzhli8h1skn7y3jjms3rigfrgxsv9v0n0npwr1g0r5sv8r"; depends=[dplyr httr jsonlite pbapply purrr stringr tidyr tidyselect]; };
   rfacts = derive2 { name="rfacts"; version="0.2.1"; sha256="0h2ryyl5zc3pxi85y0qwadfz7sdzz0m6ilwzabw317sb0z5lms5b"; depends=[digest fs tibble xml2]; };
-  rfars = derive2 { name="rfars"; version="1.1.0"; sha256="06wxphwsb1cy5i36zsyi7mlibc9vsgyp36nx3xj1z451fgbc29l0"; depends=[data_table downloader dplyr haven janitor lubridate magrittr purrr readr rlang sas7bdat stringr tidyr tidyselect zoo]; };
+  rfars = derive2 { name="rfars"; version="1.2.0"; sha256="1wk0gzg50hd7iq7l4c4rdzwvn0i6ikarp4pyqnv4ginvwlxyf591"; depends=[data_table downloader dplyr haven janitor lubridate magrittr purrr readr rlang sas7bdat stringr tidyr tidyselect zoo]; };
   rfieldclimate = derive2 { name="rfieldclimate"; version="0.1.1"; sha256="0g22lkz8pygmgrj138y15ldcacr6im7gxq579wfrgjaxs3q8ymcp"; depends=[digest dplyr httr jsonlite lubridate magrittr purrr tidyr]; };
   rfigshare = derive2 { name="rfigshare"; version="0.3.8"; sha256="10shwl1y9220m7ld5w9fjsjzy5yg8myrz9cz97ps9z2bw7bvka5j"; depends=[ggplot2 httpuv httr RJSONIO XML yaml]; };
   rfinterval = derive2 { name="rfinterval"; version="1.0.0"; sha256="1z7v0sbql6g2h3fr1268nj79rbx1d33hjfaraxhbikrjgb8mbp0w"; depends=[MASS ranger]; };
@@ -16837,7 +17111,7 @@ in with self; {
   rfishnet2 = derive2 { name="rfishnet2"; version="0.2.0"; sha256="0g90h4353kp7szv3971kb4l5x3x08qx4f9ln85n5g3b3zdg77dkz"; depends=[dplyr ggplot2 pracma rworldmap sf]; };
   rflashtext = derive2 { name="rflashtext"; version="1.0.0"; sha256="12iyd6r6dyjafbpxmd4kah0kqnc6kb4p1lbz2xgxg4v912swxcsm"; depends=[R6 Rcpp]; };
   rflexscan = derive2 { name="rflexscan"; version="1.1.0"; sha256="0jlswyfdmi4c8jd2m56inid08injjjmmjy3m3hmqspm6arv9flq1"; depends=[igraph Rcpp sf]; };
-  rflsgen = derive2 { name="rflsgen"; version="1.2.1"; sha256="0cfvbzc9a09738ygrq5jsjniblb8slfvmnscgk7jx0dprgcxj7yn"; depends=[checkmate jsonlite rJava terra]; };
+  rflsgen = derive2 { name="rflsgen"; version="1.2.2"; sha256="168kb9346fkcv65y0fzm2l946hgmgcycivfl5nqpw26ggmflbz6f"; depends=[checkmate jsonlite rJava terra]; };
   rfm = derive2 { name="rfm"; version="0.3.0"; sha256="0n0sbf9c3p0df0vdymyp6pbfvyf0nh90fxjxwkdg3l5hm8m26hkp"; depends=[dplyr ggplot2 magrittr RColorBrewer rlang scales treemapify xplorerr]; };
   rfoaas = derive2 { name="rfoaas"; version="2.3.2"; sha256="03rz1cas0anmfpnax66nr3bsiqgkq02wbvslvqc0q9ayl6p02avh"; depends=[httr]; };
   rfold = derive2 { name="rfold"; version="0.2.0"; sha256="1p83sj362ggwip6hvpbqahhlrh60fb42jqniybwv5f4x86vgrzd1"; depends=[cli fs glue here usethis]; };
@@ -16846,7 +17120,7 @@ in with self; {
   rfviz = derive2 { name="rfviz"; version="1.0.1"; sha256="1pxr9bsqg27vgbngj89hhjq0gyzgdlg69rz6kzvvd8gclg42wisv"; depends=[loon randomForest]; };
   rgTest = derive2 { name="rgTest"; version="0.1"; sha256="02cdi05izgl7xkhp9zl01jm762x3dqjmzxjl3akjrid825x6c220"; depends=[ade4]; };
   rgabriel = derive2 { name="rgabriel"; version="0.9"; sha256="1za8njmasl7kmmiqgxhr8k2p1kygkadkqgim9wgyjkcnzljg46kb"; depends=[]; };
-  rgbif = derive2 { name="rgbif"; version="3.7.9"; sha256="1ni0pkxp2rmjbvxrn3r19hdig64f4jwrq8awd96x4grb8z45fw7d"; depends=[crul data_table ggplot2 jsonlite lazyeval magrittr oai R6 tibble whisker wk xml2]; };
+  rgbif = derive2 { name="rgbif"; version="3.8.0"; sha256="1s1cdls4sv2ncxp8c9a2rah9yw95rlvfskzcg2bx74a282bd0p4b"; depends=[crul data_table ggplot2 jsonlite lazyeval magrittr oai R6 tibble whisker wk xml2]; };
   rgdax = derive2 { name="rgdax"; version="1.2.1"; sha256="01hpyyhb6jcw9w0q9h4ghgh4cbba27mfl9zdv4vv4ppakvl80czl"; depends=[digest httr jsonlite plyr RCurl]; };
   rgee = derive2 { name="rgee"; version="1.1.7"; sha256="1v6xczz7n3gby7ckh323yr5jqvzsvpjy1qszqh9hk7a56m3y31mh"; depends=[cli crayon jsonlite leafem leaflet magrittr processx R6 reticulate rstudioapi]; };
   rgeedim = derive2 { name="rgeedim"; version="0.2.7"; sha256="17vxxhkmafm6vlgb5b6lp2mq316gph84i9r58xvx6sya7ckyi8dh"; depends=[jsonlite reticulate]; };
@@ -16860,14 +17134,14 @@ in with self; {
   rgexf = derive2 { name="rgexf"; version="0.16.2"; sha256="00c2zka1n3k7p1l0mlchr063s6x58p9r3fb64d4wgl4rvsq55q3f"; depends=[igraph servr XML]; };
   rgho = derive2 { name="rgho"; version="3.0.2"; sha256="1j46pkb8n2hn1isz5xgfagwn77cxs48wv3rs4qqvq2nq1r5bpa4x"; depends=[curl dplyr httr lifecycle magrittr ODataQuery rlang tibble tidyr]; };
   rgl = derive2 { name="rgl"; version="1.3.1"; sha256="0jbda1b4lrkcpdld369687pm7isy69l5sx1wg2yrpvvzvmcppslz"; depends=[base64enc htmltools htmlwidgets jsonlite knitr magrittr mime R6]; };
-  rgl_cry = derive2 { name="rgl.cry"; version="0.1.0"; sha256="0yj0gx0k5q6lhc5ifpdbn4pdqmzr38mjln8jqm20nhpd57iwqg2p"; depends=[cry rgl]; };
+  rgl_cry = derive2 { name="rgl.cry"; version="0.1.1"; sha256="0zp7qq893cjs41rml64abdps4mddmsqafsc4mvqrg8lkir4awljw"; depends=[cry pracma rgl]; };
   rgl2gltf = derive2 { name="rgl2gltf"; version="1.0.3"; sha256="0krn4dp8xf6z5363agz42v4dwhhxdrxpqzhmf9yd8xl2l3yj6pfp"; depends=[base64enc jsonlite R6 rgl]; };
   rglobi = derive2 { name="rglobi"; version="0.3.4"; sha256="14jwl1cl20q7sgsiidd2sd2p2vjjfvqam0bijg9j8328g27cbi63"; depends=[curl RCurl readr]; };
-  rglplus = derive2 { name="rglplus"; version="1.1"; sha256="1i9i62214yljaxplzk8qk9dbslj1shgddmdvpqj35nr45pavnnqm"; depends=[rgl]; };
+  rglplus = derive2 { name="rglplus"; version="1.3"; sha256="1x2zbisgdvfz868c342lbnc2r3fc849ahsy8kk34qrnpzmawb5f5"; depends=[rgl]; };
   rgm = derive2 { name="rgm"; version="1.0.4"; sha256="0d6149mg0mvnp64dnn3nh9bxqcal324pjipnbqsmfslhk8sw8bwb"; depends=[BDgraph ggplot2 huge MASS pROC Rcpp reshape2 truncnorm]; };
   rgnoisefilt = derive2 { name="rgnoisefilt"; version="1.1.2"; sha256="0rdjbxws1bimpnwfv46yycafvwjc2lcqgdf993f5mm2sg2fxv2da"; depends=[arules class e1071 entropy FNN gbm ggplot2 infotheo kknn modelr nnet randomForest rpart]; };
   rgnparser = derive2 { name="rgnparser"; version="0.3.0"; sha256="0fjkbgrglybvjj2cqswkf8wjxqad91h6xv1pf9ly5iggc2z830v1"; depends=[jsonlite lifecycle readr sys tibble]; };
-  rgoogleads = derive2 { name="rgoogleads"; version="0.10.0"; sha256="1v2g580js7avyqd02d9vyawj04x3yil6iw3w865h5901k40q817d"; depends=[cachem cli dplyr gargle httr jsonlite memoise pbapply purrr rappdirs rlang rlist rvest snakecase stringr tidyr withr]; };
+  rgoogleads = derive2 { name="rgoogleads"; version="0.11.0"; sha256="1bw12cwxwk6rvhym6vaz9va2pvg54n9najx611dd10p5cvqgp0gs"; depends=[cachem cli dplyr gargle httr jsonlite lifecycle memoise pbapply purrr rappdirs rlang rlist rvest snakecase stringr tidyr withr]; };
   rgoogleclassroom = derive2 { name="rgoogleclassroom"; version="0.9.1"; sha256="0s4s5ipvnbwrf76ihzcjqkf3l1j008gn0ncl2a4znp9ka432gk49"; depends=[assertthat attempt curl dplyr httr jsonlite knitr lubridate magrittr openssl ottrpal purrr R6 stringr]; };
   rgoogleslides = derive2 { name="rgoogleslides"; version="0.3.2"; sha256="0h9gws1vcf0zdd21d8b65c2yz9kxppp3218h5lhd5iz879ajwa2i"; depends=[assertthat httr jsonlite R6]; };
   rgplates = derive2 { name="rgplates"; version="0.4.0"; sha256="1yrqx0m9va1izszpz6s2vd3hx5db9p4hsbj3i1ismd5pryb4xk1j"; depends=[sf]; };
@@ -16875,25 +17149,26 @@ in with self; {
   rgrass = derive2 { name="rgrass"; version="0.4-2"; sha256="0b95b52yrpagjcfi8wxsg8cf5zfhrdlxzvppnb73815cj39wdfns"; depends=[xml2]; };
   rgsp = derive2 { name="rgsp"; version="0.2.0"; sha256="1fk0k479srfr0f4a5abyzcrzwy9hr1v5xf0jgs36fbim9bh7njlc"; depends=[dplyr magrittr tibble]; };
   rgtmx = derive2 { name="rgtmx"; version="0.1.4"; sha256="0zqab6zhfkc302nsa13nbi5bc45xwrhsrn42g2jnjw2xpnfk3ynz"; depends=[httr jsonlite]; };
-  rgugik = derive2 { name="rgugik"; version="0.4.0"; sha256="0lkjnwg679fn6ii86h3w6n9b9aylp7m5bipji46bi92v2s2sssm2"; depends=[jsonlite sf]; };
+  rgugik = derive2 { name="rgugik"; version="0.4.1"; sha256="0a3bk0p7p4ay9nx3vz22fnlvb928isgab5ll50s1mffbzx32iwqd"; depends=[jsonlite sf]; };
   rgw = derive2 { name="rgw"; version="0.3.0"; sha256="0hzkajmvqkmv6c238rdgyc6g16h96d5a0lnajnn5m87j0gwsl6wa"; depends=[]; };
   rhandsontable = derive2 { name="rhandsontable"; version="0.3.8"; sha256="07fj6npq65pq836vdwblkhprdaq4i4f13cwdmm9gmxrnk72xj7lh"; depends=[htmlwidgets jsonlite magrittr]; };
   rhcoclust = derive2 { name="rhcoclust"; version="2.0.0"; sha256="0ck5slv3y08vcxkdxhw5j6n3jjsg4jj6r8hkb0yhkq2k59b18rg0"; depends=[fields igraph]; };
   rheroicons = derive2 { name="rheroicons"; version="1.0.0"; sha256="02yknpdgfjjkkk9456pxfl9qhaphwrhbxw7fh04ki9a1rgalk0xw"; depends=[htmltools shiny stringr]; };
   rhierbaps = derive2 { name="rhierbaps"; version="1.1.4"; sha256="0717h3j9pamz0hkwcfadivhfh9n2bd9l55kvll1ipc4dz85cp324"; depends=[ape ggplot2 matrixStats patchwork purrr]; };
-  rhino = derive2 { name="rhino"; version="1.7.0"; sha256="1max1wlwv5fa4gl2h2zpd8ia0y7ss122jsm5vb9mih204p2ydcrz"; depends=[box cli config fs glue lintr logger purrr renv rstudioapi sass shiny styler testthat withr xml2 yaml]; };
+  rhino = derive2 { name="rhino"; version="1.8.0"; sha256="1vsf5bvbqdrvsd21z1ps1hxxmpkf39x2xk5wk45695pg9zq8dy19"; depends=[box box_linters cli config fs glue lintr logger purrr renv rstudioapi sass shiny styler testthat withr yaml]; };
   rhmc = derive2 { name="rhmc"; version="1.0.0"; sha256="1m79f1hx404y0k8lk3n6jnzhr6wwrk83xiym68sq1zvj0wjqiqmw"; depends=[]; };
   rhnerm = derive2 { name="rhnerm"; version="1.1"; sha256="1fkh2pr4kzvqvagdyjlyab7p591s913104gyq05q170gmvlpmiww"; depends=[]; };
   rhoR = derive2 { name="rhoR"; version="1.3.0.3"; sha256="0l387m6l2x3djn1liag4m49835m2mny006sjzqbravb1famrvawi"; depends=[Rcpp RcppArmadillo]; };
   rhoneycomb = derive2 { name="rhoneycomb"; version="2.3.4"; sha256="1vh6y4hfpcbpm448hd083ln197fc7h6pg6bngvmla2aj9vp6rlmx"; depends=[]; };
-  rhosa = derive2 { name="rhosa"; version="0.2.0"; sha256="00j4s3x05cyz0nr63v9ajj9k13nyml0s3m3hg1zm7hfyzr9gzdjq"; depends=[]; };
+  rhosa = derive2 { name="rhosa"; version="0.3.0"; sha256="170k380vmp2h78vysxzvarr7ar0fcr9xd6rh8bj6f9pfxzkyyjmg"; depends=[]; };
   rhosp = derive2 { name="rhosp"; version="1.10"; sha256="1k0rb4fchjlzinky6ysdvyk0xjsx5986aqwn3yc6s7m3v7y9wb9m"; depends=[]; };
-  rhub = derive2 { name="rhub"; version="1.1.2"; sha256="12m751d8qyl7fhrg8660wman2msz3qjkrw0h49pxf7lyzfamn9wm"; depends=[assertthat callr cli crayon desc digest httr jsonlite parsedate pillar prettyunits processx R6 rappdirs rcmdcheck rematch tibble uuid whoami withr]; };
+  rhub = derive2 { name="rhub"; version="2.0.0"; sha256="05q1jv7c2l09ssb72d17hhcisvzqmcd3d1njc1j6w8lhvc5kqs47"; depends=[callr cli curl desc gert gitcreds glue jsonlite pkgbuild processx R6 rappdirs rematch rprojroot whoami]; };
   rhymer = derive2 { name="rhymer"; version="1.2.0"; sha256="0pjazv3daysg14ikilq0gly1d9fl1rfs3j92wg67wyy8hwqd74zx"; depends=[httr jsonlite]; };
   rhype = derive2 { name="rhype"; version="0.3.0"; sha256="16nzycgvp8xrjjly7j96kvy816xna5i5rdnd27gmyjmpf0dvp429"; depends=[Matrix R6 RSpectra]; };
   ri2 = derive2 { name="ri2"; version="0.4.0"; sha256="0k85rmjl0inida4wx6d612vp35sr4cg2zsmrby8rl7p4gwrbix5v"; depends=[estimatr generics ggplot2 pbapply randomizr]; };
-  rib = derive2 { name="rib"; version="0.19.3"; sha256="1ysrkgk6rjg2q4dwz3rbbvkdd4nv2c20c1b8sa8rj98mjvs0ch2m"; depends=[R6]; };
-  ribd = derive2 { name="ribd"; version="1.6.1"; sha256="1pzkbazm5mcr05ib2x0cs8aa7jk96k9nhkish96awjd2ihq6c019"; depends=[glue kinship2 pedtools slam]; };
+  riAFTBART = derive2 { name="riAFTBART"; version="0.3.3"; sha256="0wcnw955zqmr7qqwwb3d37km6nkhwvhvaissv97fxkq9rwyz67ky"; depends=[BART cowplot dbarts doParallel dplyr foreach ggplot2 magrittr MCMCpack msm nnet randomForest RRF stringr survival tidyr twang]; };
+  rib = derive2 { name="rib"; version="0.20.0"; sha256="03nj88x8zbspadprqhzcs8781cmp5bkl4gdrncbl4lzcjdi4mn0h"; depends=[R6]; };
+  ribd = derive2 { name="ribd"; version="1.7.0"; sha256="1g378kpi6660176d64r84kw8zk662sai83r33ayjxbfn6w8s48xy"; depends=[glue kinship2 pedtools slam]; };
   ricegeneann = derive2 { name="ricegeneann"; version="1.0.2"; sha256="0wxqp4pfdhvq4mwzjrqi3m9jiayk5bp1ha222mpm4qz1pl41cy9w"; depends=[riceidconverter]; };
   riceidconverter = derive2 { name="riceidconverter"; version="1.1.1"; sha256="143f76v3k2q9ddcxf2nzvd04pjgy7p120ln0zkmxpal20c81dwq6"; depends=[dplyr]; };
   riceware = derive2 { name="riceware"; version="0.4"; sha256="0pky0bwf10qcdgg9fgysafr35xbmnr9q0jbh56fawj99nbyj3m70"; depends=[random]; };
@@ -16904,8 +17179,9 @@ in with self; {
   ridgregextra = derive2 { name="ridgregextra"; version="0.1.1"; sha256="1xv6icprb2i5cy80i8aqv72yxpg4ybi6hc5y4hvbhvs6m22ydkiq"; depends=[isdals mctest plotly]; };
   ridigbio = derive2 { name="ridigbio"; version="0.3.8"; sha256="1202w1gf77xnbgiwjyajjf2bvi879q4nlfnq6fwd03bzmypdn675"; depends=[httr jsonlite plyr]; };
   ridittools = derive2 { name="ridittools"; version="0.1"; sha256="1m9xbwxb277l4cd85qxmpw66gyavpwamgwr8kyf8vqarzfbwiilr"; depends=[]; };
-  riem = derive2 { name="riem"; version="0.3.0"; sha256="0a0nl1857x7qw8y8n5fq9hfhh1s25cihd2532zxfyvy14icwf72i"; depends=[httr2 jsonlite lubridate magrittr purrr rlang tibble]; };
+  riem = derive2 { name="riem"; version="0.3.1"; sha256="04j9g0g3wgwm0qikad35vi0jb55n7bna12gq5jgy1kkc26l1srgw"; depends=[cli httr2 jsonlite lubridate magrittr purrr rlang tibble]; };
   rifle = derive2 { name="rifle"; version="1.0"; sha256="1r0cfj3vzndgiarl9sb38zmpnpm4p8v9l5cm9c1m6g2q9kvpgpbs"; depends=[MASS]; };
+  rifreg = derive2 { name="rifreg"; version="0.1.0"; sha256="053hlvx3yibiadzwjsv55qvysc0bkznzqk61rjwb23lyxvjbb3rq"; depends=[Formula ggplot2 Hmisc pbapply sandwich]; };
   rigr = derive2 { name="rigr"; version="1.0.4"; sha256="0x0f8a33zqid6gld2mc0k8jsmbfz2d58myr8zn7i5cr6w02lpi35"; depends=[sandwich survival]; };
   riingo = derive2 { name="riingo"; version="0.3.1"; sha256="1ww9ps0v1yga9dwb68crbhf56xw2svl7az95ifrdrswyyikj02vj"; depends=[crayon glue httr jsonlite purrr rlang tibble vctrs]; };
   rim = derive2 { name="rim"; version="0.6.4"; sha256="0i4xb56kj4w9hd5i4g42y1ml6yy3p94lsmfm5mlkwixg8f25hhwj"; depends=[GlobalOptions knitr R6 Rcpp]; };
@@ -16917,9 +17193,10 @@ in with self; {
   rintcal = derive2 { name="rintcal"; version="0.6.4"; sha256="0gc6wzmhvbmhvcxl17bhdzcms5zqvc7bl2s2jbhcqr010zignybs"; depends=[data_table jsonlite]; };
   rintimg = derive2 { name="rintimg"; version="0.1.0"; sha256="0jzs4mdwpzbpl0wchyhl3cpywk25ayaxalr12p4cnjl7vnmdm7dp"; depends=[glue htmltools]; };
   rintrojs = derive2 { name="rintrojs"; version="0.3.4"; sha256="12944h3h6131l916bsz6vmccq8pvq831b52s3wb1hpwygqfj0a6l"; depends=[jsonlite shiny]; };
-  rio = derive2 { name="rio"; version="1.0.1"; sha256="1vkvajlmp8kgmkadamy0xm885whfkwacq2jxcrshz1w8amy16k3m"; depends=[curl data_table foreign haven lifecycle R_utils readxl stringi tibble writexl]; };
+  rio = derive2 { name="rio"; version="1.1.1"; sha256="0llvdd4vdxpvjvbya3b6kh04h0k48ijy4dkjl77ynvhlh9wyzw9y"; depends=[curl data_table foreign haven lifecycle R_utils readr readxl tibble writexl]; };
   rioja = derive2 { name="rioja"; version="1.0-6"; sha256="029p70d3ih5prnjxrk60rnqnfky1xkajmq6ldf6sz8bq6idkn2d3"; depends=[mgcv vegan]; };
-  ripc = derive2 { name="ripc"; version="0.2.1"; sha256="0ilydrfzhbfbp677qhcbrzn99mjf69w3jy39i8j3igpjbm0qfgix"; depends=[countrycode dplyr httr lifecycle lubridate magrittr purrr rlang stringr tidyr]; };
+  rioplot = derive2 { name="rioplot"; version="1.1.1"; sha256="02la6a8rbj7ksjb4yzywp96hlblkv2vww7s5qizs78r5r5z13hwb"; depends=[ggplot2]; };
+  ripc = derive2 { name="ripc"; version="0.3.0"; sha256="1a89qg6q6ysvaggf50qdrpcfcjk6zrv133g93p9pq35d2ldava55"; depends=[countrycode dplyr httr jsonlite lifecycle lubridate purrr readr rlang sf stringr tidyr]; };
   ripserr = derive2 { name="ripserr"; version="0.1.1"; sha256="1rwsd1yi5vrzdscjgr27fw0d1a6nkc8g2w5hqgqijiwm25h4wl17"; depends=[Rcpp]; };
   rirods = derive2 { name="rirods"; version="0.2.0"; sha256="1ca82i240cy74ig8fb71lcbabw3pbg0w5df8nc8c2yhqymgclxdc"; depends=[curl httr2 jsonlite rappdirs testthat withr]; };
   rise = derive2 { name="rise"; version="1.0.4"; sha256="12r7mbaxp9pjypbpjxlsbqg7spw80gjgm2w0lsvgvclffc50a6ni"; depends=[dplyr ggplot2]; };
@@ -16931,7 +17208,7 @@ in with self; {
   riskclustr = derive2 { name="riskclustr"; version="0.4.1"; sha256="0c5gc4kllhf8i5x0dw0lkdkp40r6smv5hkiq57pih9ahz18did9i"; depends=[Matrix mlogit stringr]; };
   riskmetric = derive2 { name="riskmetric"; version="0.2.4"; sha256="00zc0jnnkx8z4mgr4h7w1xh8id4bai5l8jvh10xhylsvc1gy4ysg"; depends=[backports BiocManager covr cranlogs curl devtools httr memoise pillar pkgload tibble urltools vctrs xml2]; };
   risks = derive2 { name="risks"; version="0.4.2"; sha256="1f28v9yqcbg2qp0xilggm61phyqcwfn9rw0vlg09wv12g3ii05xp"; depends=[bcaboot boot broom dplyr purrr rlang sandwich tibble tidyr]; };
-  riskscores = derive2 { name="riskscores"; version="1.0.2"; sha256="068g0dq3cjnfrb09bkcivbm9n62lb59bvmkbh468hnzayp4lli9w"; depends=[dplyr foreach ggplot2 magrittr]; };
+  riskscores = derive2 { name="riskscores"; version="1.1.1"; sha256="0m2f4mk8zghnqvry949lqajv9q9l7p663qqx7j62mnax41y9ylx2"; depends=[dplyr foreach ggplot2 magrittr]; };
   risksetROC = derive2 { name="risksetROC"; version="1.0.4.1"; sha256="11x6qga8m8xgl4hlnjsznd4sicfxc5pbi4gv27s0gnjml0f3irhg"; depends=[MASS survival]; };
   riskyr = derive2 { name="riskyr"; version="0.4.0"; sha256="1ki3r46d73ws0gnm93llmkv42yfm0mfwvxxafnrhsdcj5kinl4ir"; depends=[]; };
   ritis = derive2 { name="ritis"; version="1.0.0"; sha256="0dk1hpj2cahlw4lcdjnnllpnvdimaml57sfcw07iz2s0f8c24yrj"; depends=[crul data_table jsonlite solrium tibble]; };
@@ -16939,25 +17216,26 @@ in with self; {
   riverconn = derive2 { name="riverconn"; version="0.3.31"; sha256="094w6mkndpvwldmlak2z1dm7n093n3s81mnz4x9dac6mrdl63s19"; depends=[dodgr doParallel dplyr foreach igraph magrittr reshape2 rlang tidyr tidyselect]; };
   riverdist = derive2 { name="riverdist"; version="0.16.3"; sha256="0ai29wb3ah27v58xqzhip3kaj7zhkzrsi4300n9kf7yvb2y018gp"; depends=[sf]; };
   rivernet = derive2 { name="rivernet"; version="1.2.3"; sha256="197y3sv75a7wg1i7a7m5yxpsv6j5hyv0fs5anqkxbz45qhhf163z"; depends=[]; };
-  rivnet = derive2 { name="rivnet"; version="0.4.0"; sha256="0i55yb7v2vl8lks5ax3v8mkwy3hspdh1xsy6m2hyqf1azh10p324"; depends=[curl elevatr fields OCNet raster Rcpp sf spam terra traudem]; };
+  rivnet = derive2 { name="rivnet"; version="0.4.2"; sha256="1mzhxf3xirblbrz13w29970ja9ldhsfjk2pszj86z39dyby17dj0"; depends=[curl elevatr fields OCNet raster Rcpp sf spam terra traudem]; };
   rivr = derive2 { name="rivr"; version="1.2-3"; sha256="10k4cqrlzcy5g0yqbkrzxfz0dwsnf8kgmfq011lj13kxpb38bpvy"; depends=[Rcpp]; };
   rjade = derive2 { name="rjade"; version="0.1.1"; sha256="0wv1vpy8ql1r9ya5mfqxdj7jv5wk029g8hjjp0xqp8dm507vj11x"; depends=[V8]; };
   rjags = derive2 { name="rjags"; version="4-15"; sha256="188qxyanny4yb1cq8hrz0y7pjafgvj0vhly0gaw271dam8glrk9m"; depends=[coda]; };
   rjdmarkdown = derive2 { name="rjdmarkdown"; version="0.2.2"; sha256="1g1r11zi8agifndlnayrh1vbz570s2x535kn89yz1llrk378v9c5"; depends=[kableExtra knitr magrittr RJDemetra]; };
-  rjdqa = derive2 { name="rjdqa"; version="0.1.4"; sha256="0g2qb7mkalcwnlrzb5943dg9pazlppn9xjmpp6a2jzgq9dzim753"; depends=[ggdemetra plotrix RJDemetra]; };
+  rjdqa = derive2 { name="rjdqa"; version="0.1.5"; sha256="0m3r5ficsj1hlp72imb1v2fbl2kvh9gni2rkff66wag805v0sjxp"; depends=[ggdemetra plotrix RJDemetra]; };
+  rjdworkspace = derive2 { name="rjdworkspace"; version="1.1.7"; sha256="19knl5qynwa3f2f77fkxv0fg13hqcdrkh5rwrpzd3gv71iifzc8r"; depends=[rJava RJDemetra XML]; };
   rje = derive2 { name="rje"; version="1.12.1"; sha256="07a1wbn5ps9ygfi25fffgmrzw90izj4yk8gxb47r85x6lvqv1p0h"; depends=[]; };
   rjmcmc = derive2 { name="rjmcmc"; version="0.4.5"; sha256="14rzvp6z5avlcnmlmvb6w4gvlh6v4ncbcai3v4c4svnjv555vz45"; depends=[coda madness mvtnorm]; };
   rjqpd = derive2 { name="rjqpd"; version="0.2.3"; sha256="14vbp9s2859h4n3m3bq830nvxvk58h3mvvdnb27qsalbcfwd94v5"; depends=[]; };
   rjson = derive2 { name="rjson"; version="0.2.21"; sha256="1qm27r1w677zg31gsiln60hcciszbymkw78cnaq7s36cbk9mcawq"; depends=[]; };
-  rjsoncons = derive2 { name="rjsoncons"; version="1.2.0"; sha256="17mhik2hkiwqv90prylva0aajigx0xp9r76yz67v5ijbhlkpkccn"; depends=[cpp11]; };
+  rjsoncons = derive2 { name="rjsoncons"; version="1.3.0"; sha256="09dxvw64kri4dx5hn399r0w50zvi13sk9fzyijy45a7m5366wq0w"; depends=[cli cpp11]; };
   rjstat = derive2 { name="rjstat"; version="0.4.3"; sha256="1x49x3f00dv0fxnyl0kj03q6z654mv0dhzhh8cbn1r4pg5pj63ns"; depends=[checkmate jsonlite]; };
-  rjtools = derive2 { name="rjtools"; version="1.0.12"; sha256="1sdyxnj4qf693cvmxjgbykamn2b69pznsgr5qsjia20pq72yzijk"; depends=[BiocManager bookdown callr cli distill fs glue here hunspell purrr rlang rmarkdown stringr tinytex whisker xfun yaml yesno]; };
+  rjtools = derive2 { name="rjtools"; version="1.0.13"; sha256="14asxv74bdddrc0k8pl8dylmsp6qgii55hmqwg6nci6n35a6qd34"; depends=[BiocManager bookdown callr cli distill fs glue here hunspell purrr rlang rmarkdown stringr tinytex whisker xfun yaml yesno]; };
   rjwsacruncher = derive2 { name="rjwsacruncher"; version="0.2.0"; sha256="14yg801mxj0kvg3aswxvhbncs6mh63ddk0mnfawm39ycgwc19g3d"; depends=[XML]; };
   rkafkajars = derive2 { name="rkafkajars"; version="1.2"; sha256="1z1rn02ymzaq3v3pz206wlm78y591xa9780fwf77i4vfq2k9pxrz"; depends=[rJava RUnit]; };
   rkt = derive2 { name="rkt"; version="1.7"; sha256="1hzbrfpp10xfvmrl0wqqf21d886mar8jvipzaiki76ms2a1yp78j"; depends=[]; };
   rkvo = derive2 { name="rkvo"; version="0.1"; sha256="0ci8jqf9nc8hb063nckxdnp0nlyr4ghby356lxm00anw44jlmw8v"; depends=[Rcpp]; };
   rlandfire = derive2 { name="rlandfire"; version="1.0.0"; sha256="18l5fjx3aw89wybhjbw3lyk8a0619919s6d4mbh293vbyfgng0a8"; depends=[httr sf]; };
-  rlang = derive2 { name="rlang"; version="1.1.3"; sha256="02mz53g8lk26yi0js6qq57ijhl1mw7xm82vwbwzbvi62bm5l58r4"; depends=[]; };
+  rlang = derive2 { name="rlang"; version="1.1.4"; sha256="1qd6chyciwhj6f6w56d3pcy4q8qdvqkyn2s709qjiwwba0klbmzj"; depends=[]; };
   rlas = derive2 { name="rlas"; version="1.7.0"; sha256="0abbzh17cyiamgdln55b23nsywr3p60bk7n3wv70asg945pqnxhi"; depends=[BH data_table Rcpp]; };
   rlc = derive2 { name="rlc"; version="0.5.0"; sha256="1n13hlspsb118md6nh1w09gww4b58kxqf3lcp8g3zv14hr2dgwkr"; depends=[hwriter jrc jsonlite plyr R6 stringr]; };
   rlcv = derive2 { name="rlcv"; version="1.0.0"; sha256="00fz949jabbzci22yjlhc7bh4j2h44llplcrgsrbi3h97lrg7hc0"; depends=[statmod]; };
@@ -16968,10 +17246,10 @@ in with self; {
   rless = derive2 { name="rless"; version="0.1.1"; sha256="0ham8kf2hbswrcnc5i5b3svywdwq3kwp9n66n4k9sllahl4x9jdn"; depends=[V8]; };
   rlfsm = derive2 { name="rlfsm"; version="1.1.2"; sha256="0qlyz4v1966x73hx3lwv1kgk18304xfp9qm66cb9a6g8bk54xp8z"; depends=[doParallel foreach ggplot2 plyr Rcpp Rdpack reshape2 stabledist]; };
   rlibkriging = derive2 { name="rlibkriging"; version="0.8-0.1"; sha256="07k0vb21bk83ygvgks4fspfik5zjwlqilwjy2rjzimhikx87srgk"; depends=[DiceKriging Rcpp RcppArmadillo]; };
-  rliger = derive2 { name="rliger"; version="2.0.0"; sha256="0bxbggzv795qz4vmiricyprbqxz81xkmbpjnh1jiv8g52daji2d1"; depends=[circlize cli ComplexHeatmap cowplot dplyr ggplot2 hdf5r leidenAlg lifecycle magrittr Matrix RANN RColorBrewer Rcpp RcppArmadillo RcppProgress rlang Rtsne S4Vectors scales uwot viridis]; };
+  rliger = derive2 { name="rliger"; version="2.0.1"; sha256="1903jylhv6pb87p4zywx8b5aqvf3c96lpx479r1c58lbc0i3f5p1"; depends=[circlize cli ComplexHeatmap cowplot dplyr ggplot2 hdf5r leidenAlg lifecycle magrittr Matrix RANN RColorBrewer Rcpp RcppArmadillo RcppProgress rlang Rtsne S4Vectors scales uwot viridis]; };
   rlinkedinads = derive2 { name="rlinkedinads"; version="0.2.0"; sha256="1d35imrikv94ldsf0c3x5hilzrsdyisshbw7hby1d76ki40gcj03"; depends=[cli dplyr httr2 pbapply rappdirs rlang snakecase stringr tidyr urltools]; };
   rlist = derive2 { name="rlist"; version="0.4.6.2"; sha256="15q99rhbbjq8zd976yjmfnny45dd5fg2p2dv1sljg2kwi66nbppb"; depends=[data_table jsonlite XML yaml]; };
-  rlistings = derive2 { name="rlistings"; version="0.2.7"; sha256="0fbcj4m40gpavf631mya9yjyvzln0nv2v50s35m17y2kzmqyr25k"; depends=[checkmate formatters tibble]; };
+  rlistings = derive2 { name="rlistings"; version="0.2.8"; sha256="1x0i2gis01ik9r0fy2znzlg0chgcjablk74xncsj7cgpgvdzfwmi"; depends=[checkmate formatters tibble]; };
   rllama = derive2 { name="rllama"; version="0.4.4"; sha256="0waxh1di0ga9ya40n3gs9r12vwsb2nq9hd38nqcasy98y2x9p5b7"; depends=[data_table httr]; };
   rlmDataDriven = derive2 { name="rlmDataDriven"; version="0.4.0"; sha256="1fhh2siafpqmvpxi2piccxvvn5n38s5d6as6iyn43rgpsslswc8g"; depends=[MASS tseries]; };
   rlme = derive2 { name="rlme"; version="0.5"; sha256="0p26mw4g12l279lh80vqcjs3pvjr759ap2m622490k1i2ralxzif"; depends=[magic MASS mgcv nlme quantreg Rcpp robustbase stringr]; };
@@ -16984,7 +17262,7 @@ in with self; {
   rmapzen = derive2 { name="rmapzen"; version="0.5.1"; sha256="17nphlsck1fjkhfjbwdxzyxxn23z626wy49gpkf2jvan4lg7bb84"; depends=[assertthat digest dplyr geojsonio httr ISOcodes jsonlite purrr sf tibble tidyr]; };
   rmarchingcubes = derive2 { name="rmarchingcubes"; version="0.1.3"; sha256="0cdmy728irmbd40xsc2k4r2g8am7s72ks7cw465fa92ml2xa6iq8"; depends=[Rcpp RcppArmadillo]; };
   rmargint = derive2 { name="rmargint"; version="2.0.3"; sha256="1z76wz067jnd8zg343gkmn4ac4zyzxyafpndkhdrrh5h33y2whjs"; depends=[]; };
-  rmarkdown = derive2 { name="rmarkdown"; version="2.26"; sha256="1q6z2j1y6pjdz4nzw44srv9j62irnxqhkvrsi46ma7xrzq6ig34g"; depends=[bslib evaluate fontawesome htmltools jquerylib jsonlite knitr tinytex xfun yaml]; };
+  rmarkdown = derive2 { name="rmarkdown"; version="2.27"; sha256="17rba2k1n945i56am345v9zfgdwm4rjmhcwdm7z8g1agmczcpsb1"; depends=[bslib evaluate fontawesome htmltools jquerylib jsonlite knitr tinytex xfun yaml]; };
   rmass2 = derive2 { name="rmass2"; version="0.0.0.2"; sha256="0bbjqna65ldxv3wjidzv89fnsxm939scfsiba4pi54saxa7d9vqc"; depends=[]; };
   rmatio = derive2 { name="rmatio"; version="0.19.0"; sha256="0640h71vbhasbankasxi24069g1la8b69vhz82ds0j52pf7kn2rb"; depends=[Matrix]; };
   rmcfs = derive2 { name="rmcfs"; version="1.3.5"; sha256="0rbq2b9fw1x44v7ifxp8qgp4yciinw2sw9mqp4ms5jsxznpi2pi6"; depends=[data_table dplyr ggplot2 gridExtra igraph reshape2 rJava stringi yaml]; };
@@ -16993,6 +17271,7 @@ in with self; {
   rmda = derive2 { name="rmda"; version="1.6"; sha256="1m7j79jwii9la47w34ka3yl1n7nql8pfn32if0aycn4yw5sy8dmc"; depends=[caret MASS pander reshape]; };
   rmdfiltr = derive2 { name="rmdfiltr"; version="0.1.3"; sha256="0llnn4pdfznidalm4f7fpyxbhzsqv1096fkbsl1pgf4f7ll6w7a7"; depends=[assertthat rmarkdown]; };
   rmdformats = derive2 { name="rmdformats"; version="1.0.4"; sha256="00iccwxlks1y4v6m3abzkb0hcpk4cgagigzgy98xaja846lc8acz"; depends=[bookdown htmltools knitr rmarkdown]; };
+  rmdl = derive2 { name="rmdl"; version="0.1.0"; sha256="10kx3bwwb5v2k37mn1wwqrbqj6nhgz649l4fzg12l8g6mpk5m1w1"; depends=[broom dplyr generics janitor pillar purrr rlang tibble tidyr vctrs]; };
   rmdpartials = derive2 { name="rmdpartials"; version="0.5.8"; sha256="15dw0pk1hdif839k60swna4li04inf7fzsiq9bxbw2wk5pdkqirn"; depends=[digest knitr rlang]; };
   rmdplugr = derive2 { name="rmdplugr"; version="0.4.1"; sha256="16wmrya8wdipqcrh34k4v4iq05aqd0jwf7rg6w1wsvx2i9211xg6"; depends=[bookdown rmarkdown]; };
   rmdwc = derive2 { name="rmdwc"; version="0.3.0"; sha256="0s7k54ggf0zdkkjg8k5jz2kfjpw99i59k82xqgvj7qaxvakm7vss"; depends=[knitr rstudioapi]; };
@@ -17006,22 +17285,20 @@ in with self; {
   rminizinc = derive2 { name="rminizinc"; version="0.0.8"; sha256="0yyg8ikdlksxlsc8ms4gb8dvpdjk26np6cpm5a7rjp748x8is6qx"; depends=[checkmate R6 Rcpp rjson rlang rlist]; };
   rminqa = derive2 { name="rminqa"; version="0.2.2"; sha256="1wq4cz9m8xqzii64rmdg42fv8khs1ybw3bax4s44aapcg56vj1i3"; depends=[Rcpp]; };
   rmio = derive2 { name="rmio"; version="0.4.0"; sha256="1gkd8nkqyfpkp6nvqb7c698difak5ymih3vy6njzqd3gwdp09mhy"; depends=[bigassertr ff]; };
-  rmonad = derive2 { name="rmonad"; version="0.7.0"; sha256="1vjx8kk57xk7c2a05c6kn75n17842ya7j41hqj3wmgq8yvaxrngx"; depends=[digest glue igraph magrittr pryr]; };
   rmoo = derive2 { name="rmoo"; version="0.2.0"; sha256="180dz1b92iswfflbciss13qn730f3nx4km194wn7vci9xghsw1mf"; depends=[GA ggplot2 plotly]; };
   rmp = derive2 { name="rmp"; version="2.2"; sha256="1993195mdaa0dp7hf4d1bmfxjzx061r71ccmpqdqcr8b54ps8lxw"; depends=[]; };
   rmpw = derive2 { name="rmpw"; version="0.0.5"; sha256="150wvnzhwvi8vv76glrbqns1r09cx42fxjrpfvvkdjd5vsbhmibv"; depends=[gtools MASS]; };
-  rms = derive2 { name="rms"; version="6.8-0"; sha256="1cd6m6i2ild2f2x9rkyd2aqb33q3xy0596bs3dnvr2mnh5fcar5d"; depends=[cluster colorspace digest ggplot2 Hmisc htmlTable htmltools knitr MASS multcomp nlme polspline quantreg rpart SparseM survival]; };
+  rms = derive2 { name="rms"; version="6.8-1"; sha256="0sjr4lwvh05ji8s6jk2f4imnyzsaw8f1iqds8b1661s395bm8f4x"; depends=[cluster colorspace digest ggplot2 Hmisc htmlTable htmltools knitr MASS multcomp nlme polspline quantreg rpart SparseM survival]; };
   rmsb = derive2 { name="rmsb"; version="1.1-0"; sha256="1pwx9y1jppy7fvm7wr5gnxmjrcfzc1x9n5p2ybc5xisz1ymb2fdn"; depends=[BH cluster digest ggplot2 Hmisc knitr loo MASS Rcpp RcppEigen RcppParallel rms rstan StanHeaders survival]; };
   rmsfact = derive2 { name="rmsfact"; version="0.0.3"; sha256="05s23rfs9prr2ia3h4h9y614xhv91lbgppgf3mrrssxkwz220kd5"; depends=[]; };
   rmsfuns = derive2 { name="rmsfuns"; version="1.0.0.1"; sha256="18bpj7xh3kc7pl6ivi3cripam26bsaf9r9099cjf22qndvy18hb6"; depends=[dplyr magrittr PerformanceAnalytics purrr readr tbl2xts xts zoo]; };
   rmstcompsens = derive2 { name="rmstcompsens"; version="0.1.5"; sha256="1bjwf4s5mgl60i3psdzga0nmngnx2a90j2kpf6zysd2939rirv1n"; depends=[dplyr survival]; };
   rmt = derive2 { name="rmt"; version="1.0"; sha256="165cqnwqr0dx7b8dgq7xlfk4j55p9l6dr5b2rzyvfy5l23k4kckn"; depends=[]; };
-  rmumps = derive2 { name="rmumps"; version="5.2.1-28"; sha256="1cq7zrq730lj1z5xirzk5fvvlvdq101ppg47n0z7c0v17rvs80n6"; depends=[Rcpp]; };
+  rmumps = derive2 { name="rmumps"; version="5.2.1-30"; sha256="0mz6dmb16dd8pflyd29ikj0wjlfbp4ri3xvc3fgmh26v1mvvaic4"; depends=[Rcpp]; };
   rmutil = derive2 { name="rmutil"; version="1.1.10"; sha256="1yd5gkg4jg3rvqrfl8c5r07lcr37n1p9h1a7b6s45iswd77dg7w1"; depends=[]; };
-  rmweather = derive2 { name="rmweather"; version="0.2.5"; sha256="0d76k80b7y3ay2njmanz45qvs5rj8mx076lln89bmi22fzwjarhj"; depends=[cli dplyr ggplot2 lubridate magrittr pdp purrr ranger stringr strucchange tibble tidyr viridis]; };
+  rmweather = derive2 { name="rmweather"; version="0.2.6"; sha256="04xa3v5nkffz4b7r3a7il9qy0gmcpv741jvcjbn24z05ks6b17q3"; depends=[cli dplyr ggplot2 lubridate magrittr pdp purrr ranger stringr strucchange tibble tidyr viridis]; };
   rmytarget = derive2 { name="rmytarget"; version="2.4.0"; sha256="1csl5b76r706gzvzhqgg4pdznbdl4i3b0srazwa7xdfc6zbrzljp"; depends=[dplyr httr lubridate purrr stringr tidyr]; };
-  rmzqc = derive2 { name="rmzqc"; version="0.5.3"; sha256="0w740vx4f7sbj105ybv1rvfywlbpkfr7jdkvb6j09amzxr1bg9mg"; depends=[jsonlite jsonvalidate knitr ontologyIndex R6 R6P rmarkdown testthat]; };
-  rnaCrosslinkOO = derive2 { name="rnaCrosslinkOO"; version="0.1.2"; sha256="146595ib0730ppx4dxfq7vmvxwgf1vs1w3vkhb8ylrc8id3lki4z"; depends=[ClassDiscovery doParallel foreach GenomicRanges ggplot2 ggrepel heatmap3 igraph IRanges MASS mixtools patchwork R4RNA RColorBrewer reshape2 RRNA S4Vectors seqinr tidyverse TopDom]; };
+  rmzqc = derive2 { name="rmzqc"; version="0.5.4"; sha256="18nyw4amg8l8hby3fpfbafz730g0bsk4xp31fgfhlv2qzcbm07aw"; depends=[jsonlite jsonvalidate knitr ontologyIndex R6 R6P rmarkdown testthat]; };
   rnames = derive2 { name="rnames"; version="1.0.1"; sha256="1213cg1br7sj0ky6bbrz1yc6gm8z38xfymvmrmlrx48j5bgxijx7"; depends=[]; };
   rnassqs = derive2 { name="rnassqs"; version="0.6.1"; sha256="00daka4pgvmipqq3151jj35fsicpfc06mnim8mm5jx5cyqcvilf7"; depends=[httr jsonlite]; };
   rnaturalearth = derive2 { name="rnaturalearth"; version="1.0.1"; sha256="1vfkn4bf77mr2n7dhmnl55ma4cvwy2nazhizmdqd98w2ydl13z3p"; depends=[httr jsonlite sf terra]; };
@@ -17035,7 +17312,7 @@ in with self; {
   rngtools = derive2 { name="rngtools"; version="1.5.2"; sha256="0kd7x214cqw7hzpmk1iqy1bn7j6x0ady0yz2hsdbclbq9k57d33z"; depends=[digest]; };
   rnmamod = derive2 { name="rnmamod"; version="0.4.0"; sha256="0gwx4mwrirricbfwlsfq9ckbn34w8dwy3d0c532s50vcwpd3dm1g"; depends=[cluster dendextend fdrtool gemtc ggfittext ggplot2 ggpubr ggrepel heatmaply igraph knitr MASS mcmcplots R2jags reshape2 scales stringr writexl]; };
   rnn = derive2 { name="rnn"; version="1.9.0"; sha256="12js613gmmcpniq5adbmb3anqsza67m0jxk69486jv3am2vyqi5p"; depends=[attention sigmoid]; };
-  rnndescent = derive2 { name="rnndescent"; version="0.1.4"; sha256="1l9jjx73icciqfmhgc2p0c6b5rvwayxr78aw9dclvkdd87lpa0d0"; depends=[BH dqrng Matrix Rcpp sitmo]; };
+  rnndescent = derive2 { name="rnndescent"; version="0.1.6"; sha256="1qgmy4sqs14zbv1mm6cany6xxk0hsaaiblsd4am85qj8gbjflm3f"; depends=[BH dqrng Matrix Rcpp sitmo]; };
   rnpn = derive2 { name="rnpn"; version="1.2.8.0"; sha256="1svamnpfs76551cil1grch4nr6716j2qncdq7nqzp3ni5ia8522w"; depends=[curl data_table httr jsonlite magrittr plyr raster sp tibble XML]; };
   rnr = derive2 { name="rnr"; version="0.2.1"; sha256="1z9bab3qmq8d79bcvjzldbxlah2w8mqp2ifd0cn1348dafwa0dhi"; depends=[assertthat purrr]; };
   rnrfa = derive2 { name="rnrfa"; version="2.1.0.5"; sha256="1fqfcj4z05p6lxc9708pbal7fkwhdqrm4c2cx2jb76s09rc840ci"; depends=[curl ggmap ggplot2 httr jsonlite lubridate sf tibble zoo]; };
@@ -17045,11 +17322,8 @@ in with self; {
   robCompositions = derive2 { name="robCompositions"; version="2.4.1"; sha256="1kln6b95hjx3cyr9957ga7a5p6lnafn49q3pnb7vlvcw3p0zyhrf"; depends=[cluster cvTools data_table dplyr e1071 fda fpc GGally ggfortify ggplot2 kernlab magrittr MASS mclust pls Rcpp RcppEigen reshape2 robustbase robustHD rrcov tidyr VIM zCompositions]; };
   robStepSplitReg = derive2 { name="robStepSplitReg"; version="1.1.0"; sha256="04azi5pk8jpq5lcssbax8jyf1lb0g8grmxpj56kaifzp764y66wn"; depends=[cellWise glmnet Rcpp RcppArmadillo]; };
   robber = derive2 { name="robber"; version="0.2.4"; sha256="0db1cnf8f3f1i0mnp58cjq46cr0x6ffx6yzqnsdg6v7mwppdranb"; depends=[blockmodels ggplot2 GREMLINS igraph magrittr pammtools partitions purrr]; };
-  robcbi = derive2 { name="robcbi"; version="1.1-4"; sha256="17i1isd9j14qbrrp3vqslwi1iig9m10hxyhzmjkpffcm2hsjddwc"; depends=[robeth]; };
   robcor = derive2 { name="robcor"; version="0.1-6.1"; sha256="0gmhklk8nayhfl2zfp7mhsawryyn950gdh5lgg3vq1nkl12sc8y7"; depends=[]; };
-  robcp = derive2 { name="robcp"; version="0.3.7"; sha256="0v5sb8q7knzs8qb4a8cmnm6n9x52xffcjhcgirlqmgm3ix1cl3mb"; depends=[Rcpp]; };
   roben = derive2 { name="roben"; version="0.1.1"; sha256="0ak3l17wmw2z0rgaymqczv40z8kqaflzzjj0fbdfcnskdik2ynfq"; depends=[glmnet Rcpp RcppArmadillo]; };
-  robeth = derive2 { name="robeth"; version="2.7-8"; sha256="0f5j9vc1d5nzisqa54ws3l7gn3ccnxg70ybl4fnawi531ih3rw60"; depends=[]; };
   robfilter = derive2 { name="robfilter"; version="4.1.4"; sha256="10wrfd2ii99vscnajjrd48msn4ka75pn7h9yhgclilc9l9r0q1wn"; depends=[lattice MASS robustbase]; };
   robflreg = derive2 { name="robflreg"; version="1.2"; sha256="1zhc2m8j4yzd5z54jx2lqks1bvvf4w0w3i7hr4hd46k8i3iy2cj2"; depends=[expm fda fda_usc fields goffda MASS mvtnorm pcaPP robustbase]; };
   robin = derive2 { name="robin"; version="1.1.2"; sha256="1xzcq81a08mpj7nx11z8vq0g1w8jq2257glvm5jgzz9z4spcc0xz"; depends=[DescTools fdatest ggplot2 gridExtra igraph Matrix networkD3 qpdf spam]; };
@@ -17069,7 +17343,6 @@ in with self; {
   robslopes = derive2 { name="robslopes"; version="1.1.3"; sha256="0hhdpp03ybf71x6wz766glqlq4ywc4v65mj0ca3idv69p488mvb5"; depends=[Rcpp RcppArmadillo]; };
   robsurvey = derive2 { name="robsurvey"; version="0.6"; sha256="0y1yw89ms0805iixv5xz9sq8zbdr7l89hb1nhwccdn7v62ydpxip"; depends=[KernSmooth survey]; };
   robumeta = derive2 { name="robumeta"; version="2.1"; sha256="1lybq36p1n1z9p0iqiyzwmv5f07q1wlkqfgrnx9kjf6pwlp9mkyk"; depends=[]; };
-  robusTest = derive2 { name="robusTest"; version="1.0.1"; sha256="0rgm0cl47c8ddhbl0da3jdrkxhgy3jqlabmi4fqkc80zcmaldmhi"; depends=[Rcpp]; };
   robust = derive2 { name="robust"; version="0.7-4"; sha256="0qh816ha18v0n021cccjan1kplmyj0xyb7jmkmrnb6gxf8kma3b3"; depends=[fit_models lattice MASS robustbase rrcov]; };
   robust2sls = derive2 { name="robust2sls"; version="0.2.2"; sha256="1q12lvb5kifcn6qjaw1zpzq8p59lw92x79jfj9ffgy3sswhznpq4"; depends=[exactci foreach ivreg MASS mathjaxr pracma]; };
   robustBLME = derive2 { name="robustBLME"; version="0.1.3"; sha256="18wx116l1riy4wn4083kxl637mkyyi9wbwnmvhkgqw3vb36s4vxd"; depends=[doParallel foreach iterators lme4 mvtnorm numDeriv Rcpp RcppArmadillo]; };
@@ -17094,7 +17367,7 @@ in with self; {
   robvis = derive2 { name="robvis"; version="0.3.0"; sha256="0xzvx3230ydd082jmdlm70vyhjizknngfzhvcbqpdcm403klni5h"; depends=[ggplot2 scales tidyr]; };
   rocNIT = derive2 { name="rocNIT"; version="1.0"; sha256="18vxyh1wcq6dv62xf2dyl4226cd00n4hlbaqnynl9j5gnrmmsvi1"; depends=[]; };
   rocTree = derive2 { name="rocTree"; version="1.1.1"; sha256="1hd5v47gymffg5829swpd38xscm4vq75d46fibwkrr7jp9iy37ra"; depends=[data_tree DiagrammeR flexsurv ggplot2 MASS Rcpp RcppArmadillo survival]; };
-  rocbc = derive2 { name="rocbc"; version="2.0.0"; sha256="18p7ydnaayia072dhpxlb184ib4rv0zmm8zymcry76znny2milm6"; depends=[clinfun formattable mvtnorm pracma splancs]; };
+  rocbc = derive2 { name="rocbc"; version="3.1.0"; sha256="1c2lbh3zmgzi87irbrxx8bdvvnz9ck24839nci00ylh8dvwq8893"; depends=[clinfun formattable MRMCaov mvtnorm pracma pROC splancs]; };
   rocc = derive2 { name="rocc"; version="1.3"; sha256="1j15l28c7kv7x850ycjprqi5gpbsl6wfv97h9lbrx11q5l4r9ivb"; depends=[ROCR]; };
   roccv = derive2 { name="roccv"; version="1.2"; sha256="18kq2gzcbz97dw168xppql8k3slpkfl8yv1d8ac48damlhvipif1"; depends=[glmnet pROC]; };
   rock = derive2 { name="rock"; version="0.8.1"; sha256="04byjz2k1wnjxbj22b307ghdrp7zz2ik5cxkxa0v980isfq5dv9i"; depends=[data_tree DiagrammeR DiagrammeRsvg dplyr ggplot2 glue htmltools markdown purrr yaml yum]; };
@@ -17103,22 +17376,22 @@ in with self; {
   rockr = derive2 { name="rockr"; version="1.0.0"; sha256="190xaxcbb7miqw5mxyfqqlb2vzacifc8a7a3cqfdlpxra4d4jc25"; depends=[httr jsonlite mime progress]; };
   roclang = derive2 { name="roclang"; version="0.2.2"; sha256="1irqscbj89mfkbq66kb7k1cx2ygilqwr6spxsm36rgqfbk1j5g6m"; depends=[dplyr magrittr purrr rex rlang roxygen2 stringr tibble tidyr]; };
   rocnp = derive2 { name="rocnp"; version="0.1.0"; sha256="1xqlmihhgjn6g3kabgmdx1qn18sxqd43sq3nb39i8pbwvaxhjqjr"; depends=[dplyr glue magrittr purrr rlang stringr tibble]; };
-  rococo = derive2 { name="rococo"; version="1.1.7"; sha256="1fp3kk5j9kc0vyr50rlbsxjc9p3qz5137sifxsbd297p7zj1fcs2"; depends=[Rcpp]; };
+  rococo = derive2 { name="rococo"; version="1.1.9"; sha256="1za16w2b8xazb1crl7701r0mqg0z3v86pyc3rvznwmyh3bzdaq0g"; depends=[Rcpp]; };
   rocsvm_path = derive2 { name="rocsvm.path"; version="0.1.0"; sha256="1pd59bzcz96sxpp725pqa7pjh2gdrfapbilp4wccjkf5290zw56v"; depends=[quadprog svmpath]; };
   rodd = derive2 { name="rodd"; version="0.2-1"; sha256="01zrkw4lr21vxk2grfc37iyrcipfdcj5m0i7gnxsvs435y9fqagd"; depends=[Matrix matrixcalc numDeriv quadprog rootSolve]; };
   rodeo = derive2 { name="rodeo"; version="0.7.8"; sha256="0sqds225bvnw1z6a36f14fck0jnaa0ilz2n8ylkw6j5f7dx1yf0n"; depends=[deSolve R6]; };
   rofanova = derive2 { name="rofanova"; version="1.0.0"; sha256="0w8c5c5q0s2qv1b4nxgf8y1z3g0l9c6jr6i0280b5mp9in9wn8a6"; depends=[abind fda_usc Rcpp RcppArmadillo robustbase]; };
   roger = derive2 { name="roger"; version="1.5-1"; sha256="1k00xbc0iprcfjx6lgg5y910y76is8f984mcp4g6711zi16ljf5j"; depends=[]; };
   rolap = derive2 { name="rolap"; version="2.5.1"; sha256="1j538xnfilrhhh3rk8rr1941353kn96a469h810h0h6l1cn5z2vp"; depends=[dm dplyr purrr readr rlang sf snakecase starschemar tibble tidyr tidyselect when xlsx]; };
-  roll = derive2 { name="roll"; version="1.1.6"; sha256="1crzr0kqdls08n6i3769zrxbxvh2m4hv5k3xi6ky6ps8hhicwqc9"; depends=[Rcpp RcppArmadillo RcppParallel]; };
-  rollama = derive2 { name="rollama"; version="0.0.3"; sha256="0r42r0wzjs6wjfq27g5z7d8xnx4h5ppfl8ls3pj0nza5zzwzdzfn"; depends=[callr cli dplyr httr2 jsonlite prettyunits purrr rlang tibble]; };
+  roll = derive2 { name="roll"; version="1.1.7"; sha256="0kl3ag3yslw91nwhlyk16qfxs336n6x9087h7vgchi09i41cr04g"; depends=[Rcpp RcppArmadillo RcppParallel]; };
+  rollama = derive2 { name="rollama"; version="0.1.0"; sha256="1sldaddmklqljfmmxqri0xfbsa977qg3kgymcprkybd59wbxxrd4"; depends=[callr cli dplyr httr2 jsonlite prettyunits purrr rlang tibble]; };
   rollbar = derive2 { name="rollbar"; version="0.1.0"; sha256="1q2ym0vkgbdnibxmwx0bp9c20g3bm8fzwwgs3j4bxg1ydg3gnkj4"; depends=[httr]; };
   rolldown = derive2 { name="rolldown"; version="0.1"; sha256="1awr8lcxz7y9mjhia4p85jvixc72gj525gk2jjl13njgq6shp0b5"; depends=[bookdown htmltools jsonlite]; };
   rollinglda = derive2 { name="rollinglda"; version="0.1.3"; sha256="0xnj7p1b737308syqrgjcavjppb11rv8hrmyld31xwvnzkfarw01"; depends=[checkmate data_table ldaPrototype lubridate tosca]; };
   rollmatch = derive2 { name="rollmatch"; version="2.0.3"; sha256="099nc02gxcd8vma9lpdiw449bcq7shp8p5z5ldj9bawll32k91sz"; depends=[dplyr magrittr]; };
   roloc = derive2 { name="roloc"; version="0.1-2"; sha256="1f229racpdh12zyqwy8q1nbfkqzw90fdz2dkiycbv0j39rl6qkp8"; depends=[colorspace]; };
   rolocISCCNBS = derive2 { name="rolocISCCNBS"; version="0.1"; sha256="100jh5m2c1zp5wg3wd4y2i47dzx1j0g6lfwyqmwk4bz99yzzz5am"; depends=[colorspace roloc]; };
-  rolog = derive2 { name="rolog"; version="0.9.15"; sha256="1mgb7p4yqjwxrsjs16adcybjmhrylihv7279vjrxgfrlgqflnjxx"; depends=[Rcpp rswipl]; };
+  rolog = derive2 { name="rolog"; version="0.9.17"; sha256="1h69xgj1gx8w8vrkrnwpcs1cakz08k8c9fzdh62bxbk512y7p5za"; depends=[Rcpp rswipl]; };
   rolr = derive2 { name="rolr"; version="1.0.0"; sha256="04nm4q0mlr4w6jb0frykzlyknfn3gn02ysqr5ll5jch6wawichy2"; depends=[survival]; };
   romic = derive2 { name="romic"; version="1.1.3"; sha256="0gaiysrg6f0xriphkbkmxvwrp3hk3spg26wlprw7lmi72k81mmaj"; depends=[checkmate cli dplyr ggplot2 glue purrr readr reshape2 rlang shiny stringr tibble tidyr]; };
   rootSolve = derive2 { name="rootSolve"; version="1.8.2.4"; sha256="0p9qmn82bg0ks9hmh2dkygnzhxcnp5z8z8b8aq52w6clliz32sp1"; depends=[]; };
@@ -17137,7 +17410,7 @@ in with self; {
   rosetteApi = derive2 { name="rosetteApi"; version="1.14.4"; sha256="166p3dvib0xpvhkb92b3imassv1b9mrblz2m05jai2nzlz0q7hzk"; depends=[httr jsonlite]; };
   rosm = derive2 { name="rosm"; version="0.3.0"; sha256="022f564d0qh3rivp6sxak4amib7c17m383vlfvac0vi0y4x49hf3"; depends=[curl glue jpeg png progress rlang wk]; };
   rosmium = derive2 { name="rosmium"; version="0.1.0"; sha256="04ygbjvcp3gz61ac8r5d10jn1ivmwyrrya1lix4cj0g4hwxv6ipz"; depends=[checkmate geojsonsf processx sf]; };
-  rospca = derive2 { name="rospca"; version="1.0.4"; sha256="1pxm34xsc2610n0i6dwcm4rhn016yqb03f8vrm93r7285c04n4q7"; depends=[elasticnet mrfDepth mvtnorm pcaPP pracma robustbase rrcov rrcovHD]; };
+  rospca = derive2 { name="rospca"; version="1.1.0"; sha256="0my95jgza6irihdbsqj05sjfrhcy7705aca7j5qifkr21pk0n4dq"; depends=[elasticnet mrfDepth mvtnorm pcaPP pracma robustbase rrcov]; };
   rosv = derive2 { name="rosv"; version="0.5.1"; sha256="1xgmn2n9iryijp36a7vzyaylc21wmfv2gjqn0qwa57hwy30f1wbw"; depends=[digest furrr httr2 jsonlite memoise purrr R6]; };
   rotasym = derive2 { name="rotasym"; version="1.1.5"; sha256="04vmxfj7jwd6h1d5ns4hq8xbc4sm008vsyiw5jlp212a4fdrplaj"; depends=[Rcpp RcppArmadillo]; };
   rotationForest = derive2 { name="rotationForest"; version="0.1.3"; sha256="1z2wk3mcs5hrahsxralidbc0dd8gxdbwjpr2f71g4g3isfx1ic8d"; depends=[rpart]; };
@@ -17158,7 +17431,7 @@ in with self; {
   roxylint = derive2 { name="roxylint"; version="0.1.0"; sha256="03pfianwlax9v9p1ciq80hzkswksca96vmcpn24nsjkqwam9nzgz"; depends=[cli roxygen2]; };
   roxytest = derive2 { name="roxytest"; version="0.0.2"; sha256="17cxhdlywng6nky6c5m49yjs2pgrs1jqrzw6rj8kb6cp2zssclas"; depends=[roxygen2]; };
   roxytypes = derive2 { name="roxytypes"; version="0.1.0"; sha256="02i2ki8s2dfnr3qdvgmklgsh0aidrymi46gp2x1xx2xfs6bi4mrv"; depends=[cli glue roxygen2]; };
-  rpact = derive2 { name="rpact"; version="3.5.1"; sha256="0fn2hxikhwj2qzxj9d1dzay4kfjndbvfr9iykw4rbn0fy7qcixh2"; depends=[knitr Rcpp rlang]; };
+  rpact = derive2 { name="rpact"; version="4.0.0"; sha256="1mwsy5y917sihyq3i001hzz98zx5zvm8042inv072vxik2pybngc"; depends=[knitr R6 Rcpp rlang]; };
   rpaleoclim = derive2 { name="rpaleoclim"; version="1.0.1"; sha256="1fqlqs8l18dy5l24hzyj19hdk6yaxmd25g56hg1c6cm677z1xcli"; depends=[curl fs rlang terra]; };
   rpanel = derive2 { name="rpanel"; version="1.1-5.2"; sha256="0b9r458dx65p1s0az14s3bhyh5isqx5ax9dblpsxxm6i9jcnx8f9"; depends=[]; };
   rpart = derive2 { name="rpart"; version="4.1.23"; sha256="1bxbvbv3jwz1j6yhgswbr6qy574n9rbp3cnwl9badkm6dbnrmf7r"; depends=[]; };
@@ -17168,13 +17441,13 @@ in with self; {
   rpca = derive2 { name="rpca"; version="0.2.3"; sha256="135q3g8jmn9rwamrc9ss45cnbfyw8kxcbrf0kinw8asz70fihj9z"; depends=[]; };
   rpdo = derive2 { name="rpdo"; version="0.3.2"; sha256="0sh52y7hmnm9qhyp0m6vp3c23wzz3ds8j577z105s6f3pdf398l0"; depends=[chk lifecycle]; };
   rpf = derive2 { name="rpf"; version="1.0.14"; sha256="15pp6fdqxngsmcibxfzv72g25q3ww3hrazsl4c5fgi0fh450kfz4"; depends=[lifecycle mvtnorm Rcpp RcppEigen]; };
-  rphylopic = derive2 { name="rphylopic"; version="1.3.0"; sha256="1v6fz6kl9y92g714mjlwc36jajd1fismjsbx8y95sfz6l065kvma"; depends=[curl ggplot2 grImport2 httr jsonlite knitr lifecycle pbapply png rsvg]; };
+  rphylopic = derive2 { name="rphylopic"; version="1.4.0"; sha256="13kgk5icqs6n6v985p0r0ifiham0m7i2w4ds8pr52mvizg76ymmi"; depends=[curl ggplot2 grImport2 httr jsonlite knitr lifecycle pbapply png rsvg]; };
   rpinterest = derive2 { name="rpinterest"; version="0.3.1"; sha256="0kkf73byhgzqxw85wda3nh7qsq81pc035vi6z3fhnvb9ssszwakc"; depends=[httr magrittr rjson]; };
   rpivotTable = derive2 { name="rpivotTable"; version="0.3.0"; sha256="0ndhsw4nnz6wf0v8dh4sz8867m01jjkzw6aq7f490z1ypa3d9fv5"; depends=[htmlwidgets]; };
   rplotengine = derive2 { name="rplotengine"; version="1.0-9"; sha256="0bmxn578z1arjical1xhzy7ib32ys7p8wkmrjw1b66islwi4b79k"; depends=[xtable]; };
   rpls = derive2 { name="rpls"; version="0.6.0"; sha256="0r3y63pi4d7hfzs53d9w23ymmk86gvm85v0dx7n1gicha5nn1mk8"; depends=[pcaPP robustbase]; };
   rplum = derive2 { name="rplum"; version="0.4.0"; sha256="0fwzfbbg5dv0rg0w8xijn9zjrp5gclzrf8m2m8nla61dzbpn2jsx"; depends=[rbacon rintcal]; };
-  rpm = derive2 { name="rpm"; version="0.7-1"; sha256="0kr1hzhfx1kxrrszvvk6xwfy2vpp1vqn75xi3l70m275ay8kip6p"; depends=[abind coda doFuture doRNG dplyr foreach future ggplot2 MASS matrixStats nloptr Rcpp RcppArmadillo]; };
+  rpm = derive2 { name="rpm"; version="0.7-3"; sha256="1bzlvyrjib7wgv57didcqmlvzv4skp587jmn7vpfwpqb4lkp7ia1"; depends=[abind coda doFuture doRNG dplyr foreach future ggplot2 MASS matrixStats nloptr Rcpp RcppArmadillo]; };
   rpmodel = derive2 { name="rpmodel"; version="1.2.0"; sha256="131kzag51r1fpa63xzj77b9hh4b1723lc424ch8dhbrcdrnjh730"; depends=[]; };
   rpms = derive2 { name="rpms"; version="0.5.1"; sha256="1y686da4ylv403gbfx43yaa2i2zdcgdv9p1zmlq05dvbkjkvlvw9"; depends=[Rcpp RcppArmadillo]; };
   rpnf = derive2 { name="rpnf"; version="1.0.5"; sha256="07byg0ym4d2cr6fp74z379jhsaw4c0xrwf622dvhwa4frn4anl60"; depends=[]; };
@@ -17192,10 +17465,10 @@ in with self; {
   rptR = derive2 { name="rptR"; version="0.9.22"; sha256="0vvjc6qiq71d5wckl77z606q1fp43mgrfzp1bxcab96n5whb2r9k"; depends=[lme4 pbapply]; };
   rpyANTs = derive2 { name="rpyANTs"; version="0.0.3"; sha256="1dmlpwx9x1gh2x0a4krp0v5a4km7pp65zalvbibb6r69iqmqr858"; depends=[reticulate RNifti rpymat]; };
   rpymat = derive2 { name="rpymat"; version="0.1.7"; sha256="0zrq4j0xw4blv9bsdrnkf0wb61bsm1lrlh92a2qw8p3daa48833q"; depends=[fastmap glue IRkernel jsonlite rappdirs reticulate rstudioapi]; };
-  rqPen = derive2 { name="rqPen"; version="3.2.2"; sha256="1l9kg5i7sx64860fbdnvb7ijpyxckqj3qq007hyn795akyr7ks68"; depends=[data_table hqreg hrqglas lifecycle plyr quantreg Rdpack]; };
+  rqPen = derive2 { name="rqPen"; version="4.1.1"; sha256="112x6y6ykmd1isw19xdpzn8alf5llz6jp7l5pfi6vp22w27z852w"; depends=[data_table hqreg hrqglas lifecycle Matrix plyr quantreg Rcpp RcppArmadillo Rdpack]; };
   rqdatatable = derive2 { name="rqdatatable"; version="1.3.3"; sha256="08bjhfay2n58zsa19r81b8884zahdxi1rylhs4a241sqc0zmns23"; depends=[data_table rquery wrapr]; };
-  rqlm = derive2 { name="rqlm"; version="1.2-1"; sha256="0vyz4q239dvbgkhq8jsdxc8blygaa3hk0whm7fff4bhmadqi7wbw"; depends=[MASS sandwich]; };
-  rqti = derive2 { name="rqti"; version="0.1.1"; sha256="0y20pkj1i6pj9c10gkjnkzxpnmj10fgqngkj3s3khdvz1bn0cxbv"; depends=[curl digest fs getPass htmltools httr2 kableExtra keyring knitr lubridate magrittr rmarkdown rstudioapi servr stringr xml2 yaml zip]; };
+  rqlm = derive2 { name="rqlm"; version="2.1-1"; sha256="1l11l4p7d331jspfwnsjawfg1mk91v78fp669586jq9xs9vv25fb"; depends=[MASS mice sandwich]; };
+  rqti = derive2 { name="rqti"; version="0.2.1"; sha256="0waayqsqwydd3mv5zplbivqspxnkdznq47mj8v5yyzf28042aax7"; depends=[curl digest fs getPass htmltools httr2 kableExtra keyring knitr lubridate magrittr rmarkdown rstudioapi servr stringr textutils xml2 yaml zip]; };
   rquery = derive2 { name="rquery"; version="1.4.99"; sha256="0540xw33wxk4w73s234pc0ss6vffzdkz7wqlca67im9h4sph19y3"; depends=[wrapr]; };
   rr = derive2 { name="rr"; version="1.4.2"; sha256="1xzyys6hjh01iy66a63sxda502pr4jr79pz0kcml9vgaqwf16bdp"; depends=[arm coda magic MASS]; };
   rr2 = derive2 { name="rr2"; version="1.1.1"; sha256="0c80zl8qyfd4fdvxp381vixfr8q2dxzn2j7siqawf0dbbvxpdr73"; depends=[ape lme4 Matrix nlme phylolm phyr]; };
@@ -17223,14 +17496,14 @@ in with self; {
   rrtable = derive2 { name="rrtable"; version="0.3.0"; sha256="1y1hfscnw466azxk1c2kpa486xn8561zl5inv7yk5q8926ls2zc3"; depends=[devEMF editData flextable ggplot2 ggpubr magrittr moonBook officer purrr readr rlang rmarkdown rvg shiny shinyWidgets stringr ztable]; };
   rrum = derive2 { name="rrum"; version="0.2.1"; sha256="047gsyipvbaw4n2i103fsj1dp0rqwvh5dqhjgiclzb9h7vm840gv"; depends=[Rcpp RcppArmadillo rgen simcdm]; };
   rsae = derive2 { name="rsae"; version="0.3"; sha256="1722vv5c0qbksb22yhsx28wxhsl7i7pc0y5w2bzfaksls3nk2knf"; depends=[]; };
-  rsample = derive2 { name="rsample"; version="1.2.0"; sha256="1vayyj6cijq1ag9r7fpcjfzrgkqhb4zxgajz78hz8dq01q3bgjg0"; depends=[cli dplyr furrr generics glue lifecycle pillar purrr rlang slider tibble tidyr tidyselect vctrs]; };
+  rsample = derive2 { name="rsample"; version="1.2.1"; sha256="1igdcicympnbrypb5c47bmf4q997q6s98i1lzb4x29x53vr3gx73"; depends=[cli dplyr furrr generics glue lifecycle pillar purrr rlang slider tibble tidyr tidyselect vctrs]; };
   rsat = derive2 { name="rsat"; version="0.1.21"; sha256="1fi2xy9q49w77b0xgqqny8y5v53jxybdpysv0mw4nlfq0q8glvgx"; depends=[calendR curl fields httr leafem leaflet raster Rdpack rjson rvest sf sp stars terra tmap XML xml2 zip]; };
   rsatscan = derive2 { name="rsatscan"; version="1.0.7"; sha256="14q568xyigjsq8g98y393ln7m45bnrf3sy201mi7432wzxjl6ia8"; depends=[foreign]; };
   rscc = derive2 { name="rscc"; version="0.2.1"; sha256="10srbalj8i67z30amvf08zfa4hs6phvq17kfgys9ihwaknckcyx3"; depends=[crayon formatR highlight igraph tm]; };
-  rsconnect = derive2 { name="rsconnect"; version="1.2.1"; sha256="0snfzr2xf91630hd2w1q9yy09vlfdy4dzb9gc8g14nq9hh34h999"; depends=[cli curl digest jsonlite lifecycle openssl packrat renv rlang rstudioapi yaml]; };
+  rsconnect = derive2 { name="rsconnect"; version="1.3.1"; sha256="0msmrdw7933xics464asyy9v2gm5b4jb8gr4nfhy54x45n1qmpj7"; depends=[cli curl digest jsonlite lifecycle openssl packrat PKI renv rlang rstudioapi yaml]; };
   rscontract = derive2 { name="rscontract"; version="0.1.2"; sha256="0gn0xcvg9nj6m97g4si6bgmgaj6hxpicz8yig7n84jnczh6w510x"; depends=[]; };
   rscopus = derive2 { name="rscopus"; version="0.6.6"; sha256="0kl6rv0j2396b8izvy0lp1f588il6w3yhq6d4swv8x8z14rsgcpw"; depends=[dplyr glue httr jsonlite plyr tidyr]; };
-  rscorecard = derive2 { name="rscorecard"; version="0.26.0"; sha256="0l0xx5q93na2fbl1gb11mv4xd514jmkhz95w4054pdmrq6smdc97"; depends=[dplyr httr jsonlite lazyeval magrittr purrr tidyr]; };
+  rscorecard = derive2 { name="rscorecard"; version="0.28.1"; sha256="090n5sw7r6qhcryi41agnh65mqny01s1a0h7m9ksf8mzvwpqdqv5"; depends=[dplyr httr jsonlite lazyeval purrr tibble tidyr tidyselect]; };
   rsdNE = derive2 { name="rsdNE"; version="1.1.0"; sha256="0xjnkg009m51zfwih1rpgwch8bs7vvri0x4skrikzx3nvlszcjh3"; depends=[]; };
   rsdepth = derive2 { name="rsdepth"; version="0.1-22"; sha256="067mx424qvl9xskcd5r5i3dp92mwjcc8xpd9kd1y0yjbax0dkcg9"; depends=[]; };
   rsdmx = derive2 { name="rsdmx"; version="0.6-3"; sha256="0axy02p6kh67sc1nqp67sa1i2n3r24j1cdd3lczxzfkxms0qznc7"; depends=[httr plyr R6 XML]; };
@@ -17240,24 +17513,25 @@ in with self; {
   rsf = derive2 { name="rsf"; version="0.3.0"; sha256="0vlnmqj6if2d8m4frdyarc985s73zapsj74rjv1nv074z422l2ci"; depends=[bookdown gert here knitr magrittr renv rlang usethis yaml ymlthis]; };
   rsgeo = derive2 { name="rsgeo"; version="0.1.6"; sha256="04mv8ifl1k2vqacglw0j41j96l9ls8khiligjhk499c5zg4aadip"; depends=[rlang vctrs]; };
   rshift = derive2 { name="rshift"; version="3.0.0"; sha256="0w82dqya4qmcdpin1d7pg2cri69qjsm1qhjn2gfpbs6wkd7m7mic"; depends=[dplyr ggplot2 tibble]; };
-  rsi = derive2 { name="rsi"; version="0.1.2"; sha256="11in248gaixjm6g9qrnl4l60lghiclrgzijqcgncz4bd9v47d3rv"; depends=[future_apply glue jsonlite proceduralnames rlang rstac sf terra tibble]; };
+  rsi = derive2 { name="rsi"; version="0.2.0"; sha256="1r6igxar0mbnqscnrp7mq98isi40njiwf8377rk2qpyq69108v7h"; depends=[future_apply glue httr jsonlite lifecycle proceduralnames rlang rstac sf terra tibble]; };
+  rsides = derive2 { name="rsides"; version="0.1"; sha256="08vwk7d7p6m38gmnbmx50kb44jhxdxvq6pbm6ym66ifhlxmbigr1"; depends=[BH doParallel doRNG flextable foreach officer Rcpp RcppEigen survival xml2]; };
   rsimsum = derive2 { name="rsimsum"; version="0.13.0"; sha256="1crxqx3vhnwrjwr556dw6qq9789jgccvv9z2bbqi003h7w483q5k"; depends=[checkmate generics ggplot2 ggridges knitr lifecycle rlang scales]; };
   rsinaica = derive2 { name="rsinaica"; version="1.0.0"; sha256="0ndskcgzd38mblk3xfazszhh3f5fjlmz6rmc297nka2c8rw56lz2"; depends=[dplyr httr jsonlite lubridate stringr]; };
   rskey = derive2 { name="rskey"; version="0.4.4"; sha256="1la3apypp1kk425r753vqwm3nk9zmynp9gix6db0ckkssw0fjxpw"; depends=[berryFunctions rstudioapi]; };
-  rsleep = derive2 { name="rsleep"; version="1.0.12"; sha256="1sqczgfkpa7bg8hbmy0baxlb9n6r76g4n5nh19v50wrdh87h3771"; depends=[abind dplyr edfReader ggplot2 jsonlite psd readr signal xml2 xts]; };
   rslp = derive2 { name="rslp"; version="0.2.0"; sha256="186k1gngirqhvhii4ysq77wjf5gf75c7gya73minb0pfg9fn16l7"; depends=[magrittr plyr stringi stringr tokenizers]; };
   rslurm = derive2 { name="rslurm"; version="0.6.2"; sha256="0z5lyrkvfh2201sc772gzbz3hc1mc04pxww611iwjf6qwzn5h0al"; depends=[whisker]; };
-  rsm = derive2 { name="rsm"; version="2.10.4"; sha256="1bh2kp0j10zsrkhv9ylghbi9cyrj4q6crbngv9pk0kkby2r4am2h"; depends=[estimability]; };
+  rsm = derive2 { name="rsm"; version="2.10.5"; sha256="064gsbaxg9s1f8aq7lb1s9kdd0s0qca95905i8zqbwvpaim1w6q0"; depends=[estimability]; };
   rsmatch = derive2 { name="rsmatch"; version="0.2.1"; sha256="0fncr8gakhldnvlzyv2sb2cqz3ninnwa353l8vvxvy122lnjlwbz"; depends=[dplyr MASS Matrix]; };
   rsmatrix = derive2 { name="rsmatrix"; version="0.2.8"; sha256="1yc9zhfpzadlk39z7lzxd26qmg9hq24c32md7bkny6yyrhy857sn"; depends=[Matrix]; };
   rsnell = derive2 { name="rsnell"; version="0.1"; sha256="0syz4d761sfka7ykg574sdzp3gi781m6xzz2m1d0yfmb1hl2d2xz"; depends=[dplyr tibble tidyr tidyselect]; };
+  rsocialwatcher = derive2 { name="rsocialwatcher"; version="0.1.1"; sha256="1ch8n35pa325ihgkld8j8mrgn631r9m1b10r68a08ydj1nxrjv9z"; depends=[curl dplyr httr jsonlite lubridate purrr sf splitstackshape stringr]; };
   rsoi = derive2 { name="rsoi"; version="0.5.6"; sha256="0x22mh27bsjrpc90dss59ycib6qlpvk9vb9p07fxlk6b68vdfi06"; depends=[curl memoise]; };
   rsolr = derive2 { name="rsolr"; version="0.0.13"; sha256="1pky70f4w44xaz57ricq40c950l443q693h0wfvk684wcvgnga0s"; depends=[BiocGenerics graph RCurl restfulr rjson S4Vectors XML]; };
   rspa = derive2 { name="rspa"; version="0.2.8"; sha256="0cl00y9xy5iwmx003zja7b21db5sib7izs8qgmp6731w68bvdj2q"; depends=[lintools validate]; };
   rsparkling = derive2 { name="rsparkling"; version="0.2.19"; sha256="1rb43lslhlg8jpniirzch8gnl86x6d3shcfp9fpxm0qd3fqrlm6z"; depends=[h2o sparklyr]; };
   rsparse = derive2 { name="rsparse"; version="0.5.1"; sha256="15kdllm2lh6xdlv4j0ljyj5pczhx26s9d8cac7953zbb0sd45chz"; depends=[data_table float lgr Matrix MatrixExtra Rcpp RcppArmadillo RhpcBLASctl]; };
   rspiro = derive2 { name="rspiro"; version="0.4"; sha256="1k91zdph8inkdyafz73lacbgq8x7rp55407rkpnr7nf0sbshxrr2"; depends=[]; };
-  rspm = derive2 { name="rspm"; version="0.5.0"; sha256="03wr8m6vk6fbxvpir3hfg3pjv22x5l641b6089zk468iygylg2a4"; depends=[]; };
+  rspm = derive2 { name="rspm"; version="0.5.3"; sha256="0zl3mpr1k40jfhx45xhjvwr4p7qpyxnaphrc5mbjypflaxcns4ym"; depends=[]; };
   rsppfp = derive2 { name="rsppfp"; version="1.0.4"; sha256="123yv54i58xj4wx9n08qp50mm4l271fm1zhzimrxx22wn2bg8zy5"; depends=[doParallel dplyr foreach igraph stringr tidyr]; };
   rsprite2 = derive2 { name="rsprite2"; version="0.2.1"; sha256="1j1v9d5h2p9574zsl8gi4lkmq1yblklmpd40fd19bw1p67fqhpm0"; depends=[checkmate Rdpack]; };
   rsq = derive2 { name="rsq"; version="2.6"; sha256="01b9rl2ng1sq0ibpfsf50agkwh01pfpw354vvgdjd0lzh9dxmsgp"; depends=[deming Deriv lme4 MASS Matrix nlme]; };
@@ -17278,18 +17552,19 @@ in with self; {
   rstudioapi = derive2 { name="rstudioapi"; version="0.16.0"; sha256="1rjgxn7p15a69vfkhwrxywag6w9k4ccnklpvhr1sb1wy35ksizvl"; depends=[]; };
   rsubgroup = derive2 { name="rsubgroup"; version="1.1"; sha256="16glxyv6aja7j0vfjccfi8w84wzm2ajfl62l0g5vpl73j7cs6gnk"; depends=[foreign rJava]; };
   rsurface = derive2 { name="rsurface"; version="1.1.0"; sha256="1pymbgvr72nqd66wap5wrcizzx2k9bfr6vkxv6dkvjmi8q7jl2gv"; depends=[plotly rsm]; };
+  rsurv = derive2 { name="rsurv"; version="0.0.1"; sha256="1xin45sc6zlap0w2ydq0ji4w3kz4ksvhark7vgim6vb1d1zv3py0"; depends=[dplyr Rdpack stabledist]; };
   rsurveycto = derive2 { name="rsurveycto"; version="0.1.6"; sha256="1w9xg2qcgqachc8y24vqxgw701si5g9qb5ps68lrn4w33hbywzjl"; depends=[checkmate cli curl data_table glue httr jsonlite rlang withr]; };
   rsvd = derive2 { name="rsvd"; version="1.0.5"; sha256="07p2hjmpcwcsang8z9sjkpy94rydcin7m3hyvcgzgm5cd6w8c1p4"; depends=[Matrix]; };
   rsvddpd = derive2 { name="rsvddpd"; version="1.0.0"; sha256="0p2cpv3ipkvl27zhncpcyxp6lqw54ncdnxyk659qc24l0fqbw7dc"; depends=[MASS matrixStats Rcpp RcppArmadillo]; };
   rsvg = derive2 { name="rsvg"; version="2.6.0"; sha256="0w29isj7n33vwacvk5h6ghgm9j3phghnz7a98b1xi60cyk08qi2b"; depends=[]; };
-  rswipl = derive2 { name="rswipl"; version="9.3.3"; sha256="1pjd6kzgzhd9rabcvp9d1qbmjrxwpp36bic48d4k0z5l8xj4qaw1"; depends=[Rcpp]; };
+  rswipl = derive2 { name="rswipl"; version="9.3.5.1"; sha256="07l9vrjn4cfzz517sqn9q7aj4026b2bqbqm15agr2211z3ppjfmz"; depends=[Rcpp]; };
   rsyncrosim = derive2 { name="rsyncrosim"; version="1.5.0"; sha256="0pg7i40m8qjcfwamb9prhkzyf4571jgnamqibxzd35n6vm6s9npy"; depends=[DBI gtools lifecycle RSQLite terra]; };
   rsyntax = derive2 { name="rsyntax"; version="0.1.4"; sha256="0bmi0qc535scdzrdr9sxnigby5ynw9dk95f99p55plc506z3pfya"; depends=[base64enc data_table digest igraph magrittr png rlang stringi tidyselect tokenbrowser]; };
   rsyslog = derive2 { name="rsyslog"; version="1.0.3"; sha256="1wslqvc8d49qz13vixfb8pqinb5p1k0w297wvflslhfkk5rx98x4"; depends=[]; };
   rt = derive2 { name="rt"; version="1.1.0"; sha256="1wwx3pjwsqvar25cddc4090vcngir81a7n9yiv4q8i47h58xmc2g"; depends=[httr stringr]; };
   rt_test = derive2 { name="rt.test"; version="1.18.7.9"; sha256="0ywkdjvfzmrmmsfkz4jbhwzbzv7wivx80xy8wr92dch1862h6ias"; depends=[]; };
   rt3 = derive2 { name="rt3"; version="0.1.2"; sha256="1fqbymkz4csavkxrs26glzrh0kw3qy9x5smgddgda9a1dxh9ljkm"; depends=[]; };
-  rtables = derive2 { name="rtables"; version="0.6.6"; sha256="003hsjp023gxbidk3m3i78hvak9ixv2c5yv1h7kfjir0jcgjm2gp"; depends=[checkmate formatters htmltools magrittr stringi]; };
+  rtables = derive2 { name="rtables"; version="0.6.7"; sha256="0x0wnv3zscbb4csgg656518krc88pqss7pd40n61q474mf6jj5s7"; depends=[checkmate formatters htmltools magrittr stringi]; };
   rtape = derive2 { name="rtape"; version="2.2"; sha256="0q7rs7pc1k1kayr734lvh367j5qig2nnq5mgak1wbpimhl7z3wm7"; depends=[]; };
   rtdists = derive2 { name="rtdists"; version="0.11-5"; sha256="1v8yhyvliw3dm3ciwxxaa9spfw05wp334l7gmvgv20mab2kjxkwp"; depends=[evd gsl msm Rcpp]; };
   rtematres = derive2 { name="rtematres"; version="0.2"; sha256="1d0vrprvnlk4hl2dbc6px9xn9kx9d1qvlqxd798hzda6qg5wwvf2"; depends=[gdata plyr RCurl XML]; };
@@ -17297,7 +17572,7 @@ in with self; {
   rtern = derive2 { name="rtern"; version="0.1.2"; sha256="0i9493f3rykhjxwbvydz6aikzkwfphq3dyc8jw0fzw057zd24cgb"; depends=[rlang]; };
   rtf = derive2 { name="rtf"; version="0.4-14.1"; sha256="032ff0yavqmd2d9svgwkmvxwh0cxjbac6pj48v4cshi898f02rhh"; depends=[R_methodsS3 R_oo]; };
   rtgstat = derive2 { name="rtgstat"; version="0.3.2"; sha256="1alvs2gd0kp11vlnk6ql2hk6fm1mn5wdkm6p9c8amb1n6i3c097x"; depends=[cli dplyr httr2 purrr snakecase stringr tidyr]; };
-  rticles = derive2 { name="rticles"; version="0.26"; sha256="0v1sji223iifqmq9hakr1wcgzfca52nvmh3vbi6s6d309qc77vkk"; depends=[knitr lifecycle rmarkdown tinytex xfun yaml]; };
+  rticles = derive2 { name="rticles"; version="0.27"; sha256="1a5i8vzcf058dqk30yir3ngs02f17s4d0b0px31pxa0d1ak1yfh7"; depends=[knitr lifecycle rmarkdown tinytex xfun yaml]; };
   rticulate = derive2 { name="rticulate"; version="1.7.3"; sha256="0h22ixngz4nw85s79ssanms9ysvx0kgp0srq2nvyfk4mm7g4hfi7"; depends=[dplyr ggplot2 glue magrittr mgcv purrr readr rlang tibble tidymv tidyr tidyselect]; };
   rtiddlywiki = derive2 { name="rtiddlywiki"; version="0.1.0"; sha256="1nipbly7b6gn49rwy6mrbg1bnh437qyayxrnskixc0fifzln43xl"; depends=[bookdown httr jsonlite rmarkdown settings stringr]; };
   rtide = derive2 { name="rtide"; version="0.0.9"; sha256="0gr0j52jy7y1w1s0s88rjv9l85yvavypagmi0qw2ix9ca2xadlzl"; depends=[abind chk dttr2 tibble]; };
@@ -17306,20 +17581,20 @@ in with self; {
   rtip = derive2 { name="rtip"; version="1.1.1"; sha256="0lfny8nvgnf90xsmgmr32nzjbw8117m4vw7d0bc3xm4pzpnymjdq"; depends=[boot ggplot2 mvtnorm plyr rootSolve]; };
   rtist = derive2 { name="rtist"; version="1.0.0"; sha256="0p4jlz0z0nbvmixdrym6nqagz2i28zbsijcj785rd6wiy72d2hg5"; depends=[]; };
   rtk = derive2 { name="rtk"; version="0.2.6.1"; sha256="1xafmp5y5p8fnsh16wj8n08x69v2hawnsvsy7g4dcz1i5xkhyc0m"; depends=[Rcpp]; };
-  rtkore = derive2 { name="rtkore"; version="1.6.10"; sha256="1mdvlqnhp0m79j5ak81i91w5y1jqh43f6qyxajn20a8jryj0f68b"; depends=[inline Rcpp]; };
+  rtkore = derive2 { name="rtkore"; version="1.6.12"; sha256="10mwa5m6papd6a3vx7zb36fy93wjkhzyxgcvi3i88lslh5hsccnm"; depends=[inline Rcpp]; };
   rtlr = derive2 { name="rtlr"; version="0.1.0"; sha256="1jvm45kkz6gfwnhaxy06snh1r3qc4ayrb84mi2zy2n2axhb2lvng"; depends=[lifecycle stringr]; };
-  rtmpt = derive2 { name="rtmpt"; version="2.0-0"; sha256="1bmibm83a0p90xk7j1qfybi5yllhs2740nqjkhy1livxp5qizngq"; depends=[coda data_table loo Ryacas stringr truncnorm]; };
+  rtmpt = derive2 { name="rtmpt"; version="2.0-1"; sha256="0isd7vwr1qbyzym0awmgb38fiix8v8r46ckl0d24q0hqls3aydz5"; depends=[coda data_table loo Ryacas stringr truncnorm]; };
   rtms = derive2 { name="rtms"; version="0.2.0"; sha256="0zqa386i37wlicwriahmjmx39q4pqyx92p8v895w8s1nssma8nnh"; depends=[ggplot2]; };
   rtodoist = derive2 { name="rtodoist"; version="0.1.0"; sha256="12lh14ps4snlyykhc65nvn8ipic8is8ssmgcx73snmifhrzxgdyb"; depends=[digest dplyr getPass glue httr keyring magrittr purrr]; };
   rtoot = derive2 { name="rtoot"; version="0.3.4"; sha256="0zil9zkmgwmncw1q4nxrnz93bmjg0lfa34qbrf6a5yj63x4dmwar"; depends=[clipr curl dplyr httr jsonlite tibble]; };
   rtop = derive2 { name="rtop"; version="0.6-9"; sha256="0ksvjyrcyygv68sp8ygnh2fd1vpp1vf10xviclnlm2rm829hjmr1"; depends=[gstat sf sp units]; };
+  rtpcr = derive2 { name="rtpcr"; version="1.0.9"; sha256="0pwwkcgzhmhdc5fic8h623w1qggmaa3cb1li6vprsxi4k5diq44c"; depends=[dplyr emmeans ggplot2 lmerTest multcomp multcompView purrr reshape2 tidyr]; };
   rtrek = derive2 { name="rtrek"; version="0.4.0"; sha256="0w5726mjy8yf9h1kk3snqc4rqbg6b55ybvkbk5xqnp5iarnsd7v4"; depends=[downloader dplyr ggplot2 jpeg jsonlite memoise purrr rvest tibble tidyr xml2]; };
   rtrend = derive2 { name="rtrend"; version="0.1.5"; sha256="03spmnqbydwfv0nx0rmp6pj67y8vxaqwaj2c76jrrk5qmjvpjkc1"; depends=[boot fftwtools lubridate magrittr matrixStats plyr Rcpp RcppArmadillo terra]; };
   rtrends = derive2 { name="rtrends"; version="0.1.0"; sha256="04xdggf36m294drb9z8khdjr6fgsg4bwkb4mmbbvqfzjpq4mq4y1"; depends=[dplyr lubridate tidyr]; };
-  rtrim = derive2 { name="rtrim"; version="2.1.1"; sha256="1l2ijkm4p3nd7n4q1b4y9pdyafgyf76zizpi7hhzw1rr9zkxhff2"; depends=[]; };
   rtry = derive2 { name="rtry"; version="1.1.0"; sha256="00a9sm08il7g0hq62jxsfib8952wdlkrhlrljnxahmaixghn7hww"; depends=[curl data_table dplyr jsonlite magrittr tidyr]; };
   rts = derive2 { name="rts"; version="1.1-14"; sha256="07rnpn8bz9r7p6xymzmbynrg2xq8wfpzh50j7i578v6rmyhm2fl8"; depends=[raster RCurl terra xts zoo]; };
-  rts2 = derive2 { name="rts2"; version="0.7.2"; sha256="1fqklpffxdwz58512fpja6hpc5x63fk5cxj44r3nlrwnb442g9p3"; depends=[BH glmmrBase lubridate R6 Rcpp RcppEigen RcppParallel rstan rstantools sf SparseChol StanHeaders]; };
+  rts2 = derive2 { name="rts2"; version="0.7.4"; sha256="13s1v4izqhq3w6ahna228wgs3n9zxqbmxzjjy69lmvrksfrkdy57"; depends=[BH glmmrBase lubridate R6 Rcpp RcppEigen RcppParallel rstan rstantools sf SparseChol StanHeaders]; };
   rtsdata = derive2 { name="rtsdata"; version="0.1.4"; sha256="0djw6qp6jdkz4r0j5dzjql2rhap4syl7psdglgd9razv5vzqmn6c"; depends=[anytime brotli curl data_table mongolite Quandl quantmod xts zoo]; };
   rtson = derive2 { name="rtson"; version="1.3"; sha256="1gwvk7nmq9bz90jy1zh7lhr735iw804pmwxykdpaigcsnxk7zx03"; depends=[R6]; };
   rtsplot = derive2 { name="rtsplot"; version="0.1.5"; sha256="1vryh0s1mz9h9ksf5n27vvrdbsjk8yvizd31cnj4grz71v4c1dh1"; depends=[quantmod RColorBrewer xts zoo]; };
@@ -17330,14 +17605,15 @@ in with self; {
   rucm = derive2 { name="rucm"; version="0.6"; sha256="1n6axmxss08f2jf5impvyamyhpbha13lvrk7pplxl0mrrrl5g0n8"; depends=[KFAS]; };
   rucrdtw = derive2 { name="rucrdtw"; version="0.1.6"; sha256="0qa6jw6g8ax5l2js09px4chy4n0ibvprj0ygdh3iwf1pbskw3kma"; depends=[Rcpp]; };
   rugarch = derive2 { name="rugarch"; version="1.5-1"; sha256="07nyfwaqqlizg0cawgiv8wdj7qr36pgi0z1mk9lambzb0w453zlz"; depends=[chron ks nloptr numDeriv Rcpp RcppArmadillo Rsolnp SkewHyperbolic spd xts zoo]; };
-  ruijter = derive2 { name="ruijter"; version="0.1.2"; sha256="0phsqnwh47hwl26qihgrrlrazhdzhi6jnmhbylzkpqsclcpl52b7"; depends=[]; };
+  ruijter = derive2 { name="ruijter"; version="0.1.3"; sha256="0gdpl32acwq8cjsv04s5p6rwc1v3x59p4knm4qlzlgmv5dsvil64"; depends=[tibble]; };
   ruimtehol = derive2 { name="ruimtehol"; version="0.3.2"; sha256="1fjyrcqb1hv86xwdq5zds8gdgnvcv1nnbh5j7mf17870miy0vzln"; depends=[BH Rcpp]; };
   ruin = derive2 { name="ruin"; version="0.1.1"; sha256="124xs1c2mjfy6z0bp83rwkqw2y73g77xwn3q4yd2xw0v2frnpvpz"; depends=[ggplot2]; };
   ruler = derive2 { name="ruler"; version="0.3.0"; sha256="0k6xvb06cqiinvkpbmylzm0r11h52yay6k70jfmz2c0g5rb6bj4r"; depends=[dplyr keyholder magrittr purrr rlang tibble tidyr]; };
   rules = derive2 { name="rules"; version="1.0.2"; sha256="1y9872akqsb1lm9hyj698dxakd53yxhbanv4z2yb43g84s5bsscl"; depends=[dials dplyr generics parsnip purrr rlang stringr tidyr]; };
   rumidas = derive2 { name="rumidas"; version="0.1.2"; sha256="1y2fahyffdmnybj3hi4826sc7m5q9vvrcbz4xvd9dmm1zpgjqajx"; depends=[lubridate maxLik Rdpack roll tseries xts zoo]; };
-  ruminate = derive2 { name="ruminate"; version="0.2.2"; sha256="0zvkjg5wc45cwnhmx3znqfil6kvhjvfb2vx56j4044ywcjgqpwga"; depends=[digest dplyr DT flextable formods ggplot2 onbrand PKNCA plotly rhandsontable rlang rxode2 shiny shinyAce shinyWidgets stringr tidyr yaml]; };
-  runMCMCbtadjust = derive2 { name="runMCMCbtadjust"; version="1.0.5"; sha256="0lf14704h1a5zfpq8f4h2f5isvsn7j4bj5ks4y5p362hrin07ld0"; depends=[coda]; };
+  ruminate = derive2 { name="ruminate"; version="0.2.4"; sha256="1i3b5mlg4kcd8hsphax75r046yq180jrbnyr7iylkyilf6dgqyyf"; depends=[digest dplyr DT flextable formods ggplot2 onbrand PKNCA plotly rhandsontable rlang rxode2 shiny shinyAce shinyWidgets stringr tidyr yaml]; };
+  runDRT = derive2 { name="runDRT"; version="0.1.0"; sha256="1q90xismkzdpx7hfsyjpagv3jdj8slmdpdf7f2kbw6lx5mcv4v3x"; depends=[]; };
+  runMCMCbtadjust = derive2 { name="runMCMCbtadjust"; version="1.1.1"; sha256="1m4f0vx69y060pm1asbbk166y0ih0vmqywwwc7fn8c4frj07g40k"; depends=[coda]; };
   runcharter = derive2 { name="runcharter"; version="0.2.0"; sha256="0n4jkgvlbpafjks22fjackazp246c7skphirjsrzkrg169qwdin0"; depends=[data_table ggplot2 magrittr zoo]; };
   runes = derive2 { name="runes"; version="0.1.0"; sha256="1s2vhwya434q70j4aq4qbds8wivscc5cyldr5pch7p41nqj0j7aw"; depends=[]; };
   runexp = derive2 { name="runexp"; version="0.2.1"; sha256="0pcxwz0kpfrcsfalwlcwp81k3dyc9rqm9rba25xkp51bwz5scv64"; depends=[doParallel foreach]; };
@@ -17347,14 +17623,13 @@ in with self; {
   runstats = derive2 { name="runstats"; version="1.1.0"; sha256="0n9348af60j8a2mwgbafabspb4nm45ry92zlzmynja06zyx8lb2d"; depends=[fftwtools]; };
   rusda = derive2 { name="rusda"; version="1.0.8"; sha256="0xx72jjf1pyixwpnvvgx5n2vc5gl46bam1caav043iqki68wb338"; depends=[foreach httr plyr RCurl stringr taxize testthat XML]; };
   rusk = derive2 { name="rusk"; version="0.1.1"; sha256="0a6vbcnfzlfq9fmibiy0cwcfix65qhxq4f7wc7d53riga82s00lk"; depends=[dplyr ggforce ggplot2 reshape2 shiny tidyr]; };
-  rusquant = derive2 { name="rusquant"; version="1.0.5"; sha256="0x9l5hy9jp41gks33g6ls9axvbi0z18vn07aa2xaxr4aj6yh1xbv"; depends=[base64enc data_table httr jose jsonlite quantmod rvest stringr XML xts]; };
+  rusquant = derive2 { name="rusquant"; version="1.1.1"; sha256="02saxymlmjmbzczhn2ihyn09106005wi39f2q9dyasrzi7n6v6pk"; depends=[base64enc data_table httr jose jsonlite quantmod rvest stringr XML xts]; };
   rust = derive2 { name="rust"; version="1.4.2"; sha256="1pp37h27pyjzcwabazyfmlgrma6x0k8hbq3ksfvlgphsk9hac93z"; depends=[Rcpp RcppArmadillo]; };
   rutifier = derive2 { name="rutifier"; version="1.0.4"; sha256="045pr8apd105azs1glpwqrbamglqddxfpml9yrfrlaivz3fjd9l8"; depends=[R_utils]; };
-  rutledge = derive2 { name="rutledge"; version="0.1.0"; sha256="04ili75fj8dxhhwmbzgb2mnak89zscdyfaxss7rsl0byjgr0h8zs"; depends=[magrittr tibble]; };
+  rutledge = derive2 { name="rutledge"; version="0.1.1"; sha256="1f1hgss5spc3jw1j5636mgxhrkcqwkgb335aihliivpqix744hr3"; depends=[tibble]; };
   ruv = derive2 { name="ruv"; version="0.9.7.1"; sha256="1n4q9mrp9f644spbns6bbnzmlabrg90hwkdfg3hnm3rxp9b4xid0"; depends=[ggplot2 gridExtra scales]; };
-  rv = derive2 { name="rv"; version="2.3.5"; sha256="1rjbhlvd7cxn7yw001p859zl5ibxl4di03j1aadm4zycq1zyr6q7"; depends=[]; };
   rvHPDT = derive2 { name="rvHPDT"; version="4.0"; sha256="0a6mzb714cvgwgam7429wzv0r28yl2aqhfsx7wjpw265ys8qyw1h"; depends=[gtools]; };
-  rvMF = derive2 { name="rvMF"; version="0.0.8"; sha256="1386206s3i8a58fk3vsc7zg323hnmq5sc5p9yhcim6qbabsfnljc"; depends=[Bessel Rcpp Rfast scModels]; };
+  rvMF = derive2 { name="rvMF"; version="0.1.0"; sha256="0mlmkax5f86zpr1r81xvzcq874i18smh9af19jdkb70skg92jafs"; depends=[Bessel Rcpp Rfast scModels]; };
   rvalues = derive2 { name="rvalues"; version="0.7.1"; sha256="0vgizlm5g6mnzvwsprgg0wj0k2y3nc8zn1bqdaw58py92mqpvj1d"; depends=[]; };
   rvcheck = derive2 { name="rvcheck"; version="0.2.1"; sha256="09khjklvzbafd7r55496by01a9g3y291d87hpy43w44dmz9fzn9a"; depends=[BiocManager yulab_utils]; };
   rvec = derive2 { name="rvec"; version="0.0.6"; sha256="15wwpkhnzib5nnyv15mdv8avxrzwc57xrpk7xr6qx440ibsg60x9"; depends=[cli glue matrixStats rlang tibble tidyselect vctrs]; };
@@ -17365,6 +17640,7 @@ in with self; {
   rviewgraph = derive2 { name="rviewgraph"; version="1.4.2"; sha256="161fdvk1gn5mz15shkd2w0yv0y9bp5rzyrmg43yl7h75csfl7l8g"; depends=[rJava]; };
   rvif = derive2 { name="rvif"; version="1.0"; sha256="0aqzh8n889avbjdf4244h4a5y5a6w9hxxgm15ygxvysrw5rjb37f"; depends=[multiColl]; };
   rvinecopulib = derive2 { name="rvinecopulib"; version="0.6.3.1.1"; sha256="0cmzijh03mbl3b3x8gin3vzgc52yrxmai45dxw5a6zrfal3x15fz"; depends=[assertthat BH kde1d lattice Rcpp RcppEigen RcppThread wdm]; };
+  rvisidata = derive2 { name="rvisidata"; version="1.0.0"; sha256="0y65g4lhgjpaqkap1g07dxiaax8rypbb50bg9r5akqy2x2p9sjrg"; depends=[]; };
   rvkstat = derive2 { name="rvkstat"; version="3.2.0"; sha256="0nk6bx04jnm55k5323w1n4zg7qgds6c53fvdz329kqfsrmpj4wgq"; depends=[dplyr httr jsonlite lgr stringr tidyr]; };
   rvmethod = derive2 { name="rvmethod"; version="0.1.2"; sha256="1g2d5pvz5s1sj2kalxaz7nb8874m4113ly809zbimngi1lhg8zi1"; depends=[assertthat locfit]; };
   rwa = derive2 { name="rwa"; version="0.0.3"; sha256="11irb6ayr1a1rbmhc9zqwyb1vjfc0fq7imji0lfa30zplwgf1mqh"; depends=[dplyr ggplot2 magrittr tidyr]; };
@@ -17384,22 +17660,21 @@ in with self; {
   rwty = derive2 { name="rwty"; version="1.0.2"; sha256="0p0bpq5dk8vjqx8ry364xhaq3rgxa49planapggicg7by2mhaacc"; depends=[ape coda GGally ggdendro ggplot2 phangorn plyr reshape2 viridis]; };
   rwunderground = derive2 { name="rwunderground"; version="0.1.8"; sha256="02p26gkicd5v511kb04p1h3wxj57r7j5vr97n3ibywc6ivz7nqxa"; depends=[countrycode dplyr httr lubridate tibble]; };
   rxSeq = derive2 { name="rxSeq"; version="0.99.3"; sha256="0g0n2pzbssz61psghjp1vrlspgph4s39x1k1zhcz7ivdn5pjb2nx"; depends=[MASS numDeriv VGAM]; };
-  rxode2 = derive2 { name="rxode2"; version="2.1.2"; sha256="1g9g36pjpmcsz3f5g7swwhq065x6cj5gaxwd2hgq3maqqxlhvlss"; depends=[backports BH checkmate cli data_table ggplot2 inline lotri magrittr memoise PreciseSums qs Rcpp RcppArmadillo rex rxode2et rxode2ll rxode2parse rxode2random sys]; };
-  rxode2et = derive2 { name="rxode2et"; version="2.0.12"; sha256="07hjw31i2fczxi3hzpx6rbhg85sgzg7gln0qnmq9520fnsklixba"; depends=[checkmate cli crayon lotri magrittr Rcpp rxode2parse rxode2random]; };
+  rxode2 = derive2 { name="rxode2"; version="2.1.3"; sha256="0r6j4wxkzxw4dabz2z1lssbw98mfk7sb64br01bmsqr1d19p5n1v"; depends=[backports BH checkmate cli data_table ggplot2 inline lotri magrittr memoise PreciseSums qs Rcpp RcppArmadillo rex rxode2et rxode2ll rxode2parse rxode2random sys]; };
+  rxode2et = derive2 { name="rxode2et"; version="2.0.13"; sha256="1pprky6j5vzijichr7kzfavc8ly3k272xnzvwix60v77z9zn5kyw"; depends=[checkmate cli crayon lotri magrittr Rcpp rxode2parse rxode2random]; };
   rxode2ll = derive2 { name="rxode2ll"; version="2.0.11"; sha256="0fj5lbs67g1adjywfnav88rsj0sy3lwwf4gyimdh89rbm1glrrs3"; depends=[BH checkmate Rcpp RcppEigen RcppParallel StanHeaders]; };
-  rxode2parse = derive2 { name="rxode2parse"; version="2.0.18"; sha256="180af1lfvm8zqkdihvij8x25gid3zagjpg46455iy4hb05ms2byv"; depends=[BH checkmate crayon data_table digest dparser knitr qs Rcpp RcppEigen rex StanHeaders symengine]; };
-  rxode2random = derive2 { name="rxode2random"; version="2.0.13"; sha256="0c6nwb7f61yb98zg7gzbyk2xzbr8k780l8ns444qc17a9ad74wqd"; depends=[BH checkmate lotri Rcpp RcppArmadillo rxode2parse sitmo]; };
+  rxode2parse = derive2 { name="rxode2parse"; version="2.0.19"; sha256="01q3chhq7nl1jl50w623m1nik9jdrizpc4hi792ynsr27lsqlhcx"; depends=[BH checkmate crayon data_table digest dparser knitr qs Rcpp RcppEigen rex StanHeaders symengine]; };
+  rxode2random = derive2 { name="rxode2random"; version="2.1.1"; sha256="1zrddjq1i2wfx6ai4wwp1l0vnyk5i19dcr7f2q3f66jhlj9fqp27"; depends=[BH checkmate lotri Rcpp RcppArmadillo rxode2parse sitmo]; };
   rxylib = derive2 { name="rxylib"; version="0.2.12"; sha256="1drmizyvbhza6p5gdqn2ahkppa99z1xvc1w7s4mbxjh15x3c633g"; depends=[BH Rcpp]; };
   ryandexdirect = derive2 { name="ryandexdirect"; version="3.6.2"; sha256="03k4z32wgc2rkmz4lj89s3w7w9ywwbdbkqm2nfapl5q45pz6wwzz"; depends=[bitops data_table dplyr httr jsonlite magrittr purrr readr stringr tidyr xml2]; };
   rym = derive2 { name="rym"; version="1.0.6"; sha256="135h9lmyrpnkc4q5kdcpbr96glc0a9bah01sm4qakzdcb6zsxsh1"; depends=[httr purrr stringr]; };
-  rytstat = derive2 { name="rytstat"; version="0.3.0"; sha256="1shsc54ss9120ngl59pnd6kqclfh2ilva97xdsx58a9c2kry2dmm"; depends=[cli dplyr gargle httr pbapply rlang snakecase stringr tidyr withr]; };
+  rytstat = derive2 { name="rytstat"; version="0.3.2"; sha256="0fm5aa4dbr8g1zsmqsjasy1vkvpb4ss7nyl73rb7fn5zdlm6cvim"; depends=[cli dplyr gargle httr pbapply rlang snakecase stringr tidyr withr]; };
   rzentra = derive2 { name="rzentra"; version="0.1.0"; sha256="1knp1616ck64wgf3r80s1nywdnljc1r9fjvgg531j0fxir04aqkl"; depends=[data_table dplyr httr jsonlite lubridate magrittr purrr]; };
-  rzmq = derive2 { name="rzmq"; version="0.9.12"; sha256="0033kipyla0sic1sr6wldnq40q0l9865zdkb0lsb5zh50y036vrz"; depends=[]; };
+  rzmq = derive2 { name="rzmq"; version="0.9.13"; sha256="1wb3nhgik436nq2518npy7z8c1nh0c6ck5a95csph2rsn91kaq4d"; depends=[]; };
   s2 = derive2 { name="s2"; version="1.1.6"; sha256="0rm0jd5k5w725v1bnn6ix8vic40grdh61y6qdy8jy4lhg1mjx78x"; depends=[Rcpp wk]; };
   s20x = derive2 { name="s20x"; version="3.1-40"; sha256="1b2bbkbkmr4d4bfihd87c3vwdfxb21hzaxhd6zqnwz1n0xg2zhb5"; depends=[]; };
   s2dv = derive2 { name="s2dv"; version="2.0.0"; sha256="0lgkdb1gphqsggqnyrl1hlfx1x5zxbhb9msr6xyj4hhp03m16z9x"; depends=[abind bigmemory ClimProjDiags easyNCDF easyVerification mapproj maps multiApply NbClust ncdf4 plyr SpecsVerification]; };
-  s2dverification = derive2 { name="s2dverification"; version="2.10.3"; sha256="10zqw7w8hm7cqbaxy6asflw0i8s5rmki2xhv3d51sm67vb7qn6f4"; depends=[abind bigmemory GEOmap geomapdata mapproj maps NbClust ncdf4 plyr SpecsVerification]; };
-  s2net = derive2 { name="s2net"; version="1.0.4"; sha256="0wq3y96m2h85kw755rnmnzvxknk5s7ii0g7p0zd8ahcnppkdk6kl"; depends=[MASS Rcpp RcppArmadillo]; };
+  s2net = derive2 { name="s2net"; version="1.0.7"; sha256="18n3zq4hd07ipba7n6qc0fhxbraam70kypzf17hiaqrsjcjpw58x"; depends=[MASS Rcpp RcppArmadillo]; };
   s3 = derive2 { name="s3"; version="1.0.0"; sha256="1cb9xmi4fb0bi3vglbg3jk872nci015v1yxk3049482r92v6lnsn"; depends=[aws_signature cli digest dplyr fs glue httr prettyunits purrr]; };
   s3_resourcer = derive2 { name="s3.resourcer"; version="1.1.1"; sha256="0njl93c1pxsg04fr74pnrpvx3z5m8nk2xv700l0jhbygshw8k5z2"; depends=[aws_s3 httr R6 resourcer sparklyr]; };
   s3fs = derive2 { name="s3fs"; version="0.1.5"; sha256="08i8a1629b63b1ai3ngh59xwnh8vzmzpz1wvxhwylpk7igwwsbg0"; depends=[curl data_table fs future future_apply lgr paws_storage R6]; };
@@ -17422,6 +17697,7 @@ in with self; {
   saasCNV = derive2 { name="saasCNV"; version="0.3.4"; sha256="12h5vrl55sb4wmx0hzib5iax8p0q2qzk19h15r0asfkh9l7qz94l"; depends=[DNAcopy RANN]; };
   sabre = derive2 { name="sabre"; version="0.4.3"; sha256="0vcfcsfc53022rglqxgf5p9b8d8lphyy161jmvlvb77qp959nbrh"; depends=[dplyr entropy raster rlang sf tibble tidyr]; };
   sac = derive2 { name="sac"; version="1.0.2"; sha256="1yg133zm0db2lv0m62ij7c27bs4k3kbjic15dwrak534lk885sj2"; depends=[]; };
+  sacRebleu = derive2 { name="sacRebleu"; version="0.1.3"; sha256="0piapn7srrfc4qmwkpjrsfyhz253pl69ppm3y9flqlffki5b5zx1"; depends=[checkmate Rcpp tok]; };
   saccadr = derive2 { name="saccadr"; version="0.1.3"; sha256="0c51zbkh8b0xi0sshzq5agbijw6nprrb3r1k77wcfqsr2mazfwi5"; depends=[cluster dplyr magrittr Rcpp rlang signal tidyr]; };
   sad = derive2 { name="sad"; version="0.1.3"; sha256="0wr4xdx68hrxaw5izy36gm10smk6s1gzrzwayhfp4lhvkn75qsww"; depends=[dualtrees emdist]; };
   sadists = derive2 { name="sadists"; version="0.2.5"; sha256="0c7bmca6yyz5hca2ghr2zc6lmwi94cywz8gkpsakrnmk0f7680xi"; depends=[hypergeo orthopolynom PDQutils]; };
@@ -17439,17 +17715,17 @@ in with self; {
   saeHB_unit = derive2 { name="saeHB.unit"; version="0.1.0"; sha256="0z1p41aa398qgysm3yp7siz38any3z3rjw8hn4hrj9zxx9zn2lcy"; depends=[cli coda dplyr rjags]; };
   saeME = derive2 { name="saeME"; version="1.3.1"; sha256="071f345gpm5qwsj6k7vm8jfm80lgzk5l1gyds3zcxy955gk288cs"; depends=[MASS]; };
   saeMSPE = derive2 { name="saeMSPE"; version="1.2"; sha256="086nmcx14sjwnydka805il11lc02jv9l39kk9j1h2j5p9gz0b3gp"; depends=[Matrix Rcpp RcppArmadillo smallarea]; };
+  saePseudo = derive2 { name="saePseudo"; version="0.1.0"; sha256="1zppb1k9rz13v0p3vgs42rhcbm93hp3xl7mavk2cxy9l36gnd40g"; depends=[dplyr sae]; };
   saeRobust = derive2 { name="saeRobust"; version="0.5.0"; sha256="0rq4az5rzjljjswkdbcz7y5lyrnhyx9b20w81s4665iwrl3fcniw"; depends=[aoos assertthat ggplot2 magrittr MASS Matrix memoise modules pbapply Rcpp RcppArmadillo spdep]; };
   saeSim = derive2 { name="saeSim"; version="0.11.0"; sha256="0s0zcls4j3cx7wbvi0l3q4c3b0f9x9i2wcqnz4gzwyqik6pcfaic"; depends=[dplyr functional ggplot2 MASS parallelMap spdep tibble]; };
-  saeTrafo = derive2 { name="saeTrafo"; version="1.0.2"; sha256="1kdd70jq7dm3dfg801wy48fzwkw4xvw18l6sdfx1sfkj20s4nyna"; depends=[emdi ggplot2 gridExtra HLMdiag moments MuMIn nlme openxlsx parallelMap readODS reshape2 rlang sfsmisc stringr]; };
+  saeTrafo = derive2 { name="saeTrafo"; version="1.0.4"; sha256="1sqmymazs3g1xlqvphbwmpvl5yhkmbmpcyc1mxqdxaj3yap44qwr"; depends=[emdi ggplot2 gridExtra HLMdiag moments nlme openxlsx parallelMap readODS reshape2 rlang sfsmisc stringr]; };
   saebnocov = derive2 { name="saebnocov"; version="0.1.0"; sha256="0dxbicvmq13wh2xj820qw2ah3j005pqjynynhgkynfvm9nmymrvr"; depends=[descr dplyr rlang]; };
-  saeczi = derive2 { name="saeczi"; version="0.1.1"; sha256="1rbxmjq8mdb3nscpnvan733n4qdi89zs5ddp295p5fj5vqpba65s"; depends=[dplyr furrr future lme4 progressr purrr Rcpp RcppEigen rlang]; };
+  saeczi = derive2 { name="saeczi"; version="0.2.0"; sha256="02jsmmzaig5d8lr9avra3acy93klh7f88izxsf04gn0w855y37cv"; depends=[dplyr furrr future lme4 progressr purrr Rcpp RcppEigen rlang]; };
   saeeb = derive2 { name="saeeb"; version="0.1.0"; sha256="04vjxmnqcgqcamgjd9qq1dbx0msm40mnn94jjy9pzvsj2gsbws39"; depends=[COUNT MASS]; };
   saekernel = derive2 { name="saekernel"; version="0.1.1"; sha256="0zk124kkxrwr3bliy01d3ag4r0flnjg4z3lmm5wmq3w0r4gwgy4f"; depends=[]; };
   saemix = derive2 { name="saemix"; version="3.3"; sha256="1xx6254sj6lyarkkdkl3lajflyh8c2y8261bl9a19d1457l1h8wv"; depends=[ggplot2 gridExtra MASS mclust npde rlang scales]; };
   saens = derive2 { name="saens"; version="0.1.0"; sha256="1fmg7lcryc426hclrzhj26l8zaar0cc2j3vqxd752g86h4n0g6hz"; depends=[cli dplyr ggplot2 rlang tidyr]; };
-  safedata = derive2 { name="safedata"; version="1.1.3"; sha256="127ciirz3sjq2qfnx5zrh2nwglign55if9gwplvr579m0jjysjf5"; depends=[chron curl httr igraph jsonlite readxl sf]; };
-  safejoin = derive2 { name="safejoin"; version="0.1.0"; sha256="0qvra505g7cay3nhq6yqrddb7sw3kx50y8jhgvxi47rxdc3alzba"; depends=[dplyr glue]; };
+  safejoin = derive2 { name="safejoin"; version="0.2.0"; sha256="19ja9nxgnh7xpsdaqy866qz6zf2mkfxinh757dmha1avr7bjhmfx"; depends=[dplyr glue lifecycle]; };
   safer = derive2 { name="safer"; version="0.2.1"; sha256="1lmhaj9y0hi4ybxfkllxl99vsagcg73sy4kkcmlvn3bs69jky1r9"; depends=[assertthat base64enc sodium]; };
   safestats = derive2 { name="safestats"; version="0.8.7"; sha256="1jxdnvmf6w8hgd5wcfjcmm796nchig1xizhngbzdgl85yi6nw1yy"; depends=[BiasedUrn boot dplyr hypergeo purrr rlang survival]; };
   safetensors = derive2 { name="safetensors"; version="0.1.2"; sha256="0xvg5y2sd7gzcal0qqgxbx8vcvmy50jm0j2ajr8iw3wyy5qpyvkp"; depends=[cli jsonlite R6 rlang]; };
@@ -17461,7 +17737,7 @@ in with self; {
   salesforcer = derive2 { name="salesforcer"; version="1.0.1"; sha256="19z4q5k0k1c1s2piqjg0z6nrwabap016nbx3jpf51lvmh5lp8ycf"; depends=[anytime base64enc curl data_table dplyr httr jsonlite lifecycle lubridate mime purrr readr rlang rlist tibble vctrs XML xml2 zip]; };
   salso = derive2 { name="salso"; version="0.3.35"; sha256="1jgslcn5lc34aj58kg1madbhf3v9n9ap70jv349rsr97p9vqi2bx"; depends=[]; };
   salty = derive2 { name="salty"; version="0.1.0"; sha256="1dxq62yrkv416fy09l03slc7ci6mnwiyvjlsxhbqnj8yjy3kbhr6"; depends=[assertthat purrr stringr]; };
-  samadb = derive2 { name="samadb"; version="0.2.6"; sha256="1jmk94zf42msgpm3i6d1b1njnpxax3hnbs8w957f6frk97idwp27"; depends=[collapse data_table DBI RMySQL writexl]; };
+  samadb = derive2 { name="samadb"; version="0.3.0"; sha256="1qbjjnchx9h3wrhf23cpmwfaixdkm4jcpkgniz3h5ghrhqv32grr"; depends=[collapse data_table DBI RMySQL writexl]; };
   sambia = derive2 { name="sambia"; version="0.1.0"; sha256="15yz5lrjav5bs8m52crg3l43xmi4gf7wydji76p181ssyg43z2ln"; depends=[dplyr e1071 FNN mvtnorm pROC ranger smotefamily]; };
   samc = derive2 { name="samc"; version="3.2.1"; sha256="0i5k27699p28xzfbdk41ni45l5lp1k2zla5mf15x3livmnn8c3d4"; depends=[circular Matrix raster Rcpp RcppEigen RcppThread terra]; };
   samon = derive2 { name="samon"; version="4.0.2"; sha256="1gv3kvl2jf6x6fcy52k61frcnsnz6xafyfhwq1n08pyzbynlsf08"; depends=[]; };
@@ -17479,7 +17755,8 @@ in with self; {
   samplingR = derive2 { name="samplingR"; version="1.0.1"; sha256="1ikmd7dvmrzc06vgpl8f7777pmds3vcfv74r9izlqhxyz39hgc9s"; depends=[dplyr]; };
   samplingVarEst = derive2 { name="samplingVarEst"; version="1.5"; sha256="0h78dzb18cknmg6bnjfxaqfdayyghq6skxca1dj1idqh9p4igaqq"; depends=[]; };
   samplingbook = derive2 { name="samplingbook"; version="1.2.4"; sha256="08fhzanzb725hlagm0225121gdgipkbfkixizwykggaimkz5j1ad"; depends=[pps sampling survey]; };
-  samplingin = derive2 { name="samplingin"; version="1.0.7"; sha256="16yrd35q4f7bbjcipf13nrya6mcl6z1fhzi4z2rblaks4vxaqac2"; depends=[data_table dplyr magrittr rlang]; };
+  samplingin = derive2 { name="samplingin"; version="1.1.0"; sha256="0a7c078vz4p5x5r29xsvab630pq3p7fwsn31qdcjdcl7n4475rhr"; depends=[data_table dplyr magrittr rlang sampling]; };
+  samplrData = derive2 { name="samplrData"; version="1.0.0"; sha256="09gp4hh1kbf1lmvc10i679fxa7mwmcs3j16f80zc0c3cml1shlsq"; depends=[Rdpack]; };
   sampsizeval = derive2 { name="sampsizeval"; version="1.0.0.0"; sha256="06mghabwqcc92hdvirm1gcna24hwll2gvm105ljkf5hgn0fa5xii"; depends=[dplyr plyr pracma sn]; };
   samr = derive2 { name="samr"; version="3.0"; sha256="01km0f7qgm73x19vbvsxl083hs1dq4dj8qm5h64cxbf20b08my15"; depends=[GSA impute matrixStats openxlsx shiny shinyFiles]; };
   sams = derive2 { name="sams"; version="0.4.3"; sha256="01rknjgxyvj3i12mqgnlr7m0wdvxp2ja0rx8hnb700vlxa1xdmhi"; depends=[]; };
@@ -17496,14 +17773,14 @@ in with self; {
   sanon = derive2 { name="sanon"; version="1.6"; sha256="0h3l1dzgkddvb3vzg7pcgwrgidphy73jys2h49v84nbfvqr6l85z"; depends=[]; };
   sansa = derive2 { name="sansa"; version="0.0.1"; sha256="1p5qv94f62dxzkbl1jn1fx3vksyhqqa3w2ipqwiflaxlk7q9k5pq"; depends=[data_table FNN ggplot2]; };
   santaR = derive2 { name="santaR"; version="1.2.4"; sha256="048zbx7fr71ibxzgsayzifzv8gka7dmdfsdyvmzssxvzyjcm4qwc"; depends=[bslib doParallel DT foreach ggplot2 gridExtra iterators pcaMethods plyr reshape2 shiny]; };
-  santoku = derive2 { name="santoku"; version="0.10.0"; sha256="09zm2m3wcn3gzixmq8b9n1j11pca95sg4yw5zxm91cm7fd7f33cd"; depends=[assertthat glue lifecycle Rcpp rlang vctrs]; };
+  santoku = derive2 { name="santoku"; version="1.0.0"; sha256="054bl8sgl0rcvymsqsg8br201snw6rlmac54mfb05a4hsd8y7vq4"; depends=[assertthat glue lifecycle Rcpp rlang vctrs]; };
   sanzo = derive2 { name="sanzo"; version="0.1.0"; sha256="1fqsx2mgjsy6vjvsp2avi2i5cw7cjs2p53l1z6hb3bzid3067s87"; depends=[]; };
   saotd = derive2 { name="saotd"; version="0.3.1"; sha256="1x3zpzhs11bgxa8zhjdwr7n9fi55glhrif43zblh55ih3cqpcfc1"; depends=[dplyr ggplot2 ggraph igraph ldatuning lubridate magrittr reshape2 rtweet scales stringr tidyr tidytext topicmodels widyr]; };
   sapevom = derive2 { name="sapevom"; version="0.2.0"; sha256="0vq4rx85pdjc0wjxjf7wj8j5qs3cb20hwhlc2ypbgrlw7zkcp1z4"; depends=[]; };
   sapfluxnetr = derive2 { name="sapfluxnetr"; version="0.1.4"; sha256="0x437nhv3g327apxnihr1wnp4mmzxn9pfk24shpj6a8amxphlzxd"; depends=[assertthat dplyr furrr ggplot2 glue lubridate magrittr purrr rlang stringr tibble tidyr]; };
   saqgetr = derive2 { name="saqgetr"; version="0.2.21"; sha256="0s7mmc8gqx89697wkv369x6sp3d1wha4q2zkkwikh835i3alx4zd"; depends=[dplyr httr lubridate magrittr purrr readr stringr tidyr]; };
   sara4r = derive2 { name="sara4r"; version="0.1.0"; sha256="1z112s7z9hcafmags76bazkyrmrrwykhf58g6z637w516nbgn314"; depends=[tcltk2 terra]; };
-  sarima = derive2 { name="sarima"; version="0.9.2"; sha256="0zya0qpqvyiyq9lv8y2kcyd3v0hqw8n3chlqn2v24pyiq94h7kqg"; depends=[Formula lagged ltsa numDeriv PolynomF Rcpp RcppArmadillo Rdpack]; };
+  sarima = derive2 { name="sarima"; version="0.9.3"; sha256="0x6wndy7mdmnliabrbs9qbpm7ibf2h7s3m4d90pasna6hw11yg3d"; depends=[Formula lagged ltsa numDeriv PolynomF Rcpp RcppArmadillo Rdpack]; };
   saros = derive2 { name="saros"; version="1.0.4"; sha256="1b43hzvhagv43g7p2xqzk3ay3ylph41l4d69zm7hvbq6sdm69s27"; depends=[bcrypt cli clipr dplyr forcats fs ggiraph ggplot2 glue mschart officer rlang rstudioapi rvest stringi tidyr tidyselect vctrs yaml]; };
   sarp_snowprofile = derive2 { name="sarp.snowprofile"; version="1.3.2"; sha256="1nrkifs6kq8kr3jmwi76d6jjbps1ijrnjxrslsyrpyvr2rj4p82h"; depends=[data_table xml2]; };
   sarp_snowprofile_alignment = derive2 { name="sarp.snowprofile.alignment"; version="1.2.2"; sha256="1cjs31m3y9971m5zq9fpv4p2l6wjm5kb1wj6r42yj5p27yajv3vy"; depends=[data_table dtw sarp_snowprofile]; };
@@ -17511,11 +17788,11 @@ in with self; {
   sars = derive2 { name="sars"; version="1.3.6"; sha256="198dz3gbzm7iqa2p813anifzpjkna3blf4yzyy73j43h8w4k5v0b"; depends=[AICcmodavg cli crayon doParallel foreach nortest numDeriv]; };
   sarsop = derive2 { name="sarsop"; version="0.6.14"; sha256="0y315gg3masbpvsf9zk0abj0mh0834h1yhmjg1fwwbqvygg64cjp"; depends=[BH digest Matrix processx xml2]; };
   sas7bdat = derive2 { name="sas7bdat"; version="0.7"; sha256="0pwmngwmkybz64sqby86vzxq5wwfkh5hxnqncdv0fmp6w6x7jhjn"; depends=[]; };
-  sasLM = derive2 { name="sasLM"; version="0.10.2"; sha256="1i8lzs9nxzr76chwdb8wsps96a73id7vy9xmlv3rdy70ck4cwwy7"; depends=[mvtnorm]; };
+  sasLM = derive2 { name="sasLM"; version="0.10.4"; sha256="0saw3n0n1yw32ajnvp4g2gk4ikhgxc83rnyzqrndji39kc9qffkq"; depends=[mvtnorm]; };
   sasfunclust = derive2 { name="sasfunclust"; version="1.0.0"; sha256="1ba7g3rxyq5h806na6bsdvh6mw6hydgcf3740qkfd4d5fx7m0mq4"; depends=[fda MASS Matrix matrixcalc mclust Rcpp RcppArmadillo]; };
   sasr = derive2 { name="sasr"; version="0.1.2"; sha256="1cpmfclxphk5s3nr1znricm195j9xix5pw8jkyq3hhg0h7xirzi7"; depends=[checkmate reticulate]; };
   sass = derive2 { name="sass"; version="0.4.9"; sha256="1lnl2xssz33vg7p6a8ij55hg6j1p1d3y2mq22pvf0r3rmnd08cz1"; depends=[fs htmltools R6 rappdirs rlang]; };
-  sassy = derive2 { name="sassy"; version="1.2.3"; sha256="11h2pwg29nlpbzb0dys6xhbjvar2igwqbhh8x4n5spkiccn6l4cj"; depends=[common fmtr libr logr procs reporter]; };
+  sassy = derive2 { name="sassy"; version="1.2.5"; sha256="1w2hgkwvwzvzmd1gw9x6y5zvxvmp704zk5jny6ppq44wavm7nl52"; depends=[common fmtr libr logr procs reporter]; };
   satdad = derive2 { name="satdad"; version="1.1"; sha256="1ig7z0z4filq57sk9rc38pnx79j1lxm1sacl9hbi407y0pqx01k7"; depends=[BH graphicalExtremes igraph maps partitions Rcpp RcppArmadillo]; };
   sate = derive2 { name="sate"; version="2.1.0"; sha256="19jd8z1343ajx27b14grjnvxxf38b008fzclv7rcpqqp717ajpnv"; depends=[ellipse MASS]; };
   satellite = derive2 { name="satellite"; version="1.0.5"; sha256="1bd1f8mimx53dcy3fnlhjk7yam08jvr3lhh39zcb5c2yj0pkhk1y"; depends=[plyr raster Rcpp terra]; };
@@ -17523,10 +17800,11 @@ in with self; {
   satres = derive2 { name="satres"; version="1.1.1"; sha256="0651vv381b5j8zn9gngkqz7asbz3bwrrln57448j2w0qa1lfpq87"; depends=[sf snakecase terra]; };
   saturnin = derive2 { name="saturnin"; version="1.1.1"; sha256="0cjp4h1s9ivn17v8ar48mxflaj9vgv92c8p9l2k5bc9yqx9mcs36"; depends=[Rcpp RcppEigen]; };
   savonliquide = derive2 { name="savonliquide"; version="0.2.0"; sha256="1f1s2pzvpqrcb68fqk4ivpimwsphnjjx3b42jivw63y7q7ak4azh"; depends=[crayon glue htmltools httr]; };
-  savvyr = derive2 { name="savvyr"; version="0.1.0"; sha256="01wl5a0s223rwqdysknjqzaiahzpi4mkgfhz3c8sy8ck0k32wbgf"; depends=[checkmate etm Rdpack]; };
+  savvyr = derive2 { name="savvyr"; version="0.1.1"; sha256="08lrhb4nc0hcbqjdv1ar31l80gbfgxjivpc5k0farcldksybxjsg"; depends=[checkmate etm Rdpack]; };
   sawnuti = derive2 { name="sawnuti"; version="0.1.1"; sha256="07abg9gqm59iz05jly47h9jnf8majnhjqss2ybjpa9mx1aclm50b"; depends=[]; };
   saws = derive2 { name="saws"; version="0.9-7.0"; sha256="11mnh0m627y3w2yzsb17z5sk3v584vny36m32bxi8niscrfv9im8"; depends=[gee]; };
   sazedR = derive2 { name="sazedR"; version="2.0.2"; sha256="0v8ap9ivwj5h4w2iwhww16v1jm6jpkkphvkh5vq06mv1a72p0inz"; depends=[bspec dplyr fftwtools pracma zoo]; };
+  sbd = derive2 { name="sbd"; version="0.1.0"; sha256="0wf46p330l2lx6j9w4600q27n4jzhpzb2kw056654fz2ggd8x6kn"; depends=[bbmle dplyr MASS]; };
   sbde = derive2 { name="sbde"; version="1.0-1"; sha256="0npsf2s3j87j6gxjbpf46qndazjm2al43pxbhnx0jd6gd8fmr631"; depends=[coda extremefit]; };
   sbfc = derive2 { name="sbfc"; version="1.0.3"; sha256="0yfbxp3b9j2xjpd1xffkjl2bfxixc7hhzfiwicd9lyi5w2kfwavf"; depends=[DiagrammeR discretization Matrix Rcpp RcppArmadillo]; };
   sbgcop = derive2 { name="sbgcop"; version="0.980"; sha256="0vmg8b4462qghlyx6hq0raf9xqvygzgwi5y0cbqcljhmbmqjrwxs"; depends=[]; };
@@ -17535,19 +17813,22 @@ in with self; {
   sbmSDP = derive2 { name="sbmSDP"; version="0.2"; sha256="1sl46lqi6w0s7ghv4bywhic56cm2vib3kawprga760m6igargx4y"; depends=[Rcpp RcppArmadillo]; };
   sbo = derive2 { name="sbo"; version="0.5.0"; sha256="00pnvpcl6441gf8npf6b6cvzxh0kq4qbfxggjiqdny6lq2nl0d47"; depends=[dplyr Rcpp rlang testthat tidyr]; };
   sboost = derive2 { name="sboost"; version="0.1.2"; sha256="1vh3hk15chkyrkpnj4i40542bck9ny45g424bncxdxl9fgxc4nhk"; depends=[dplyr Rcpp rlang]; };
+  sbrl = derive2 { name="sbrl"; version="1.4"; sha256="0sr57zfd75ywgv4az0y7jiacalywf36z3gmsjdgmw0adzaxxdcsg"; depends=[arules Rcpp]; };
   sbtools = derive2 { name="sbtools"; version="1.3.2"; sha256="14yjml5d34jkyw7rsc02zpb4wy9w30sxqzpdjk02znxpm9baxsj1"; depends=[cli curl httr jsonlite keyring mime]; };
   sbw = derive2 { name="sbw"; version="1.1.5"; sha256="10ks912f4xiy0i484vf24w5zz9n7kxlcy77ikz95p8vr5zlqkvgc"; depends=[MASS Matrix quadprog slam spatstat_geom]; };
   sc2sc = derive2 { name="sc2sc"; version="0.0.1-12"; sha256="0cdfx47vlcqqbl6d75zr91x8j4ayar7wdk5mkdilgw0izcxwscjf"; depends=[]; };
   scAnnotate = derive2 { name="scAnnotate"; version="0.3"; sha256="02hrfs5ci2ii3hr4d4ks5bj80n5ajdnx71m6swmdciiy72sdm1lc"; depends=[glmnet harmony Seurat SeuratObject]; };
-  scBSP = derive2 { name="scBSP"; version="0.0.1"; sha256="14c150xn0zmdra8ycqcv5dl6s904zbbn8glpjy24y7z0g75vq9lf"; depends=[fitdistrplus Matrix RANN spam sparseMatrixStats]; };
+  scBSP = derive2 { name="scBSP"; version="1.0.0"; sha256="0cabj2hizmnadq5vijaip4d1wcsycwy5bdpgjwivzgqkhy9r5ss7"; depends=[fitdistrplus Matrix RANN spam sparseMatrixStats]; };
   scBio = derive2 { name="scBio"; version="0.1.6"; sha256="1bpizxm9fbxd4sfapi1ayfg5csacb4dvqbvappd79jkq4mrsk12q"; depends=[doSNOW fields foreach LiblineaR limma raster sp]; };
+  scCAN = derive2 { name="scCAN"; version="1.0.5"; sha256="0iypyh34583wmp4hkvhhkyz72aw8y58ynmx1iml82iwvivvwjk1s"; depends=[FNN purrr scDHA]; };
   scCATCH = derive2 { name="scCATCH"; version="3.2.2"; sha256="0skd6gsm30bsxr7qi63y890qrx7zq8fvp0ik8jrpwfnsvfgyzx8v"; depends=[Matrix progress reshape2]; };
   scCustomize = derive2 { name="scCustomize"; version="2.1.2"; sha256="150h8aj9qyg7v9yh5mhkr6nbf05ia91l5v9cqy58ipg6bwa9lmib"; depends=[circlize cli cowplot data_table dplyr forcats ggbeeswarm ggplot2 ggprism ggrastr ggrepel glue janitor lifecycle magrittr Matrix paletteer patchwork pbapply purrr rlang scales scattermore Seurat SeuratObject stringi stringr tibble tidyr]; };
-  scDHA = derive2 { name="scDHA"; version="1.2.1"; sha256="075prhak80d6v9hcxsmn3f1mlc4liahh0fdpn8n6hs3ghczrk5cl"; depends=[cluster coro doParallel foreach igraph Matrix matrixStats Rcpp RcppAnnoy RcppArmadillo RcppParallel RhpcBLASctl torch uwot]; };
+  scDECO = derive2 { name="scDECO"; version="0.1.0"; sha256="0gm7xlkv3rr6mzwbgggyaby75ia1avrflasrsszniph13bcndb9g"; depends=[MASS msm rjags]; };
+  scDHA = derive2 { name="scDHA"; version="1.2.2"; sha256="1l9i5r7z4n387mrfmq43md2a0wrhvshrggb4nc3varjyq3drh3yd"; depends=[cluster coro doParallel foreach igraph Matrix matrixStats Rcpp RcppAnnoy RcppArmadillo RcppParallel RhpcBLASctl torch uwot]; };
   scDIFtest = derive2 { name="scDIFtest"; version="0.1.1"; sha256="1hq68g7zf7372cach2qfc7l1l8gh5aqkp66k0cxjnrhmvvb1qcax"; depends=[mirt sandwich strucchange zoo]; };
   scDiffCom = derive2 { name="scDiffCom"; version="1.0.0"; sha256="17scb8hhx2d67cbhzxd0l2hzy4sj22x5j9rvc71ba2d958wk4ysa"; depends=[data_table DelayedArray future future_apply magrittr Seurat]; };
   scGOclust = derive2 { name="scGOclust"; version="0.2.1"; sha256="0jbmjrc5xmxvkc6q93blbryqvyxcy6ia6bmca03vq05l6isybal6"; depends=[biomaRt dplyr limma magrittr Matrix networkD3 Seurat slanter tibble tidyr]; };
-  scGate = derive2 { name="scGate"; version="1.6.0"; sha256="0h12d36zjc6fvxbhkxrzbpvw49z9fgyn1jc941q70ajw1yqi2hhh"; depends=[BiocParallel dplyr ggplot2 ggridges patchwork reshape2 Seurat UCell]; };
+  scGate = derive2 { name="scGate"; version="1.6.2"; sha256="0zlbrvr6lxcihspfqgpvv5kyrzqqpy3451j0kpnqc0n93bbs4cqk"; depends=[BiocParallel dplyr ggplot2 ggridges patchwork reshape2 Seurat UCell]; };
   scINSIGHT = derive2 { name="scINSIGHT"; version="0.1.4"; sha256="1zkm2n19px3yh3y2z1g5l84ym36ar31i96i54mm7wa0ki179swap"; depends=[igraph RANN Rcpp RcppArmadillo stringr]; };
   scISR = derive2 { name="scISR"; version="0.1.1"; sha256="0m4sgbyc05qy1zklw45zj4w4wx0fhiwqr90fc3gpkqq7xkd7ihbw"; depends=[cluster entropy irlba markdown matrixStats PINSPlus]; };
   scITD = derive2 { name="scITD"; version="1.0.4"; sha256="0xcx8bvl2w2qa4c68w5hvfx9412qvscjvj8d6hp4q62z58xqy1f8"; depends=[circlize ComplexHeatmap dplyr edgeR fgsea ggplot2 ggpubr ica Matrix mgcv msigdbr NMF RColorBrewer Rcpp RcppArmadillo RcppProgress reshape2 Rmisc rTensor sccore sva]; };
@@ -17555,7 +17836,7 @@ in with self; {
   scMappR = derive2 { name="scMappR"; version="1.0.11"; sha256="0a2jm2a10lawqrlcglaz31gx3kbvjz19f4ynhllkj0px61awxjah"; depends=[ADAPTS downloader ggplot2 gProfileR gprofiler2 GSVA limSolve pbapply pcaMethods pheatmap reshape Seurat]; };
   scModels = derive2 { name="scModels"; version="1.0.4"; sha256="01minq4b0pdjlh2r56lvr2ab6r7sp7l9sjz8a9hmx5xmizmygmvr"; depends=[gamlss_dist Rcpp]; };
   scOntoMatch = derive2 { name="scOntoMatch"; version="0.1.1"; sha256="1x08qm492yjkbi0srbx6l2z92cd7740iajrvv34hzfdbgjvx289s"; depends=[ontologyIndex ontologyPlot purrr]; };
-  scPloidy = derive2 { name="scPloidy"; version="0.3.0"; sha256="0wbrpr6zwmhihbqsa5f4mfv05vx7v53bhgr4cx88k0p5jgzb6fs5"; depends=[dplyr GenomicRanges magrittr matrixStats mixtools rlang Rsamtools]; };
+  scPloidy = derive2 { name="scPloidy"; version="0.6.2"; sha256="0p8rn2c58601yjkampgw360w6r8sbwg0rk007jnvkayfad5xhdvd"; depends=[dplyr GenomicRanges magrittr MASS matrixStats mixtools nimble rlang Rsamtools tibble tidyr]; };
   scRNAstat = derive2 { name="scRNAstat"; version="0.1.1"; sha256="0yv5np7jafmygg77bwisrha5y2rdb1va906ngzs4zc8mvxr0dvlm"; depends=[clustree dplyr ggplot2 magrittr Matrix patchwork Seurat stringr]; };
   scRNAtools = derive2 { name="scRNAtools"; version="1.0"; sha256="0x0lniqhq6q87y08kkkyvmk1g5b8i73hm3h86ba8rcv0v0n7ap9a"; depends=[ALL ConsensusClusterPlus corrplot edgeR foreach ggplot2 ggthemes Hmisc igraph lattice limma PerformanceAnalytics plyr reshape2 Rmisc Rtsne scatterplot3d survival TPEA]; };
   scROSHI = derive2 { name="scROSHI"; version="1.0.0.0"; sha256="15mgbgb21wz1gnkw6mxkvckxj345cxi4w5hzwgxfqjvxq9wx6bik"; depends=[limma S4Vectors SingleCellExperiment SummarizedExperiment uwot]; };
@@ -17585,7 +17866,7 @@ in with self; {
   scatterD3 = derive2 { name="scatterD3"; version="1.0.1"; sha256="187jq1y5va5npsmpkfyi6mhgynq956590q4z8v1ibadsrcldw34m"; depends=[digest ellipse htmlwidgets]; };
   scatterPlotMatrix = derive2 { name="scatterPlotMatrix"; version="0.2.0"; sha256="0jnahr5hxcbs742h4wr0r6yz8qgfli8xqmxwl29cbr32ipkwjmfg"; depends=[htmlwidgets]; };
   scattermore = derive2 { name="scattermore"; version="1.2"; sha256="1l820rc4ncmqd5sacdc420xf6r5dh34sbhgzzgq7a4yx1dxshd2m"; depends=[ggplot2 scales]; };
-  scatterpie = derive2 { name="scatterpie"; version="0.2.1"; sha256="0wfrckyvy4zw34qdvgg1gwqfdi1xhs63v3gfwa4akm7ifd1canlb"; depends=[dplyr ggforce ggfun ggplot2 rlang tidyr]; };
+  scatterpie = derive2 { name="scatterpie"; version="0.2.3"; sha256="0iv4i775s22j3wg6mhsdx5d9zdb23v4fanfnznp2jiwkzxr10kvh"; depends=[dplyr ggforce ggfun ggplot2 rlang tidyr]; };
   scatterplot3d = derive2 { name="scatterplot3d"; version="0.3-44"; sha256="1hkfislhzx05y5qqa7pvrils3qf9rhxbf37lkpsjbn9yihs0i70w"; depends=[]; };
   scbursts = derive2 { name="scbursts"; version="1.6"; sha256="09yxnq6m35xmp0priavjnh0bdcwkr5hhy7j33cz13xwkrd1cgw5j"; depends=[readxl tibble]; };
   sccca = derive2 { name="sccca"; version="0.1.1"; sha256="193d6015zchnmky0kic0msdw040ykvw3isxpzw5ccmg9dqr7j1xp"; depends=[dplyr HGNChelper openxlsx plyr scales Seurat]; };
@@ -17594,10 +17875,11 @@ in with self; {
   sccr = derive2 { name="sccr"; version="2.1"; sha256="0cjlzv92b5qrs43d3ry33zcggiqvsqaf8wq4k19ws9lvgh59b62v"; depends=[dplyr]; };
   scdensity = derive2 { name="scdensity"; version="1.0.2"; sha256="173xm3bf8vxl30zk4n451al7m003byg9q4d1l1pfyfa4xnv8qdg9"; depends=[lpSolve quadprog]; };
   scdhlm = derive2 { name="scdhlm"; version="0.7.3"; sha256="03bfn02x5gfbp7fd0fhcvpm9pf1h71kz1lcd0jkmddqmbj7v2i48"; depends=[dplyr lmeInfo magrittr nlme readxl rlang tidyselect]; };
+  scdtb = derive2 { name="scdtb"; version="0.1.0"; sha256="0f79lrdrfn064gsgjpj9mr4sx2wyc5z2d6kkz42kb67rqpk23ibl"; depends=[broom_mixed DT ggplot2 mmcards nlme shiny shinythemes]; };
   scellpam = derive2 { name="scellpam"; version="1.4.5"; sha256="0sgwqpmjwnwvs8s3l4x264kndjsh3k7h5mpxyl0za9s4na3y6s9j"; depends=[cluster memuse Rcpp]; };
   scenes = derive2 { name="scenes"; version="0.1.0"; sha256="068x0f9j9apdrv07m4facxxs60axv43q57laypfavxsns3r4dk30"; depends=[cli cookies glue purrr rlang shiny]; };
-  scfetch = derive2 { name="scfetch"; version="0.5.0"; sha256="0qyixanc72vang1zsr6v9yfv2j911iniiylw3fcxvykvfxp9zhmv"; depends=[Biobase curl data_table dplyr GEOquery httr jsonlite LoomExperiment magrittr Matrix openxlsx pbapply purrr reticulate rlang rPanglaoDB scater Seurat SingleCellExperiment SummarizedExperiment tibble tidyr]; };
   scgwr = derive2 { name="scgwr"; version="0.1.2-21"; sha256="15pwasxkwirr2wwf8w02cy8zx0bqavzyfixjz3m37c1llrhddpka"; depends=[dplyr FNN optimParallel sp spData]; };
+  sched = derive2 { name="sched"; version="1.0.1"; sha256="0cbbchax694aqbi12hxnssmfk8x56k5wdzkshbzanwjn2ivvr1rb"; depends=[chk fscache lgr openssl R6 RCurl]; };
   schemr = derive2 { name="schemr"; version="0.2.0"; sha256="192dk2b69wlwwkqrkk1n05q8hsn6djxhscjizj3amj4b701xw612"; depends=[apcluster dplyr magrittr OpenImageR purrr stringr]; };
   schoRsch = derive2 { name="schoRsch"; version="1.10"; sha256="0bf4lahfzi6dchqfnykh4saiagcka12h82d9mvd1ddv5phmbyi10"; depends=[]; };
   schoenberg = derive2 { name="schoenberg"; version="2.0.3"; sha256="1d6pflj7kafcx4xwcqyxgvxgygnf51zk9b0a28fiz05gxnb4bhp6"; depends=[crayon]; };
@@ -17610,22 +17892,22 @@ in with self; {
   scico = derive2 { name="scico"; version="1.5.0"; sha256="1c6905y62s03kiah8ykhkag275pn06ihk5szldib2621ysrj2wb4"; depends=[scales]; };
   scicomptools = derive2 { name="scicomptools"; version="1.0.0"; sha256="193byqr8sjb0hk1k4qj26pnqr5dgqfsxn47ckddgcvzk6ybd6cpl"; depends=[data_tree dplyr ggplot2 ggwordcloud gitcreds googledrive magrittr purrr readxl SemNetCleaner stringr tibble tidyr tidytext tidyxl]; };
   scidesignR = derive2 { name="scidesignR"; version="1.0.0"; sha256="0krr7kn3l4c0dyn9ln3dz0h9ivr21dnrlmncpxiv560wqxnwi7z0"; depends=[]; };
-  scientific = derive2 { name="scientific"; version="2024.1"; sha256="0krdp2xvhim9kv0fv65lbwy88p76rxhcfqwkh0nfjsspvw5l01lj"; depends=[htmltools knitr rmarkdown xfun]; };
+  scientific = derive2 { name="scientific"; version="2024.2"; sha256="04pnc8fnc7ijvagp4mxfhg6kkrsczcc1a9j6m72sbyavv0k4dcin"; depends=[htmltools knitr rmarkdown xfun]; };
   scientoText = derive2 { name="scientoText"; version="0.1"; sha256="0f18hg9s50lbbgl0fqjv45yhynpnsxj8wwm07g126snzr68gbd21"; depends=[stringr tm]; };
   scifigure = derive2 { name="scifigure"; version="0.2"; sha256="1zc88r1lnb0cws130hq4rjc34rrp6zkmi8yhkwsm3vkznbhi4iba"; depends=[]; };
+  scimo = derive2 { name="scimo"; version="0.0.2"; sha256="1fvljxn6m01wv4hmljcrki2wzbc0nlr3zrbyw80jbzw3p55vqgls"; depends=[dplyr generics magrittr recipes rlang tibble tidyr]; };
   sciplot = derive2 { name="sciplot"; version="1.2-0"; sha256="097zcgjsv54f6wd8fjwh2xb406j6yrw94v9pcxa0zln1q7fs93vk"; depends=[]; };
   scipub = derive2 { name="scipub"; version="1.2.3"; sha256="1491xdlxfqh1h178lrl01b9f4wwdgxaid3dxippyf3b1wxb1gqcf"; depends=[dplyr forcats gghalves ggplot2 purrr stringr tibble tidyr tidyselect]; };
   scistreer = derive2 { name="scistreer"; version="1.2.0"; sha256="03nd4p7ik66v09yv18c0z1bvdnkr5m0axk78yapd2ri80ihmyi3c"; depends=[ape dplyr ggplot2 ggtree igraph parallelDist patchwork phangorn Rcpp RcppArmadillo RcppParallel reshape2 RhpcBLASctl stringr tidygraph]; };
-  scitb = derive2 { name="scitb"; version="0.1.7"; sha256="1j62axyd26i6mzyhvcqlfksm225f4zhhxf1spyb68vdzvh4zg1hr"; depends=[ggplot2 MASS nortest reshape2 stringi]; };
+  scitb = derive2 { name="scitb"; version="0.1.8"; sha256="1dkp4ch2n3j09b49pp0wsnx7pd9c3007kjm4jm72mpk1z17w5c9f"; depends=[ggplot2 MASS nortest reshape2 stringi]; };
   sclr = derive2 { name="sclr"; version="0.3.1"; sha256="10pihx35889w509ijbyq5hzslk9n7kakjnfscg7p0dq198nbpyca"; depends=[broom dplyr purrr rlang tibble]; };
   scoper = derive2 { name="scoper"; version="1.3.0"; sha256="0y0bqdxr4g929paddrgs8qqxzp0pwsc62kxl6lbzp4l2xmg3j2j2"; depends=[alakazam data_table doParallel dplyr foreach ggplot2 Rcpp rlang scales shazam stringi tidyr]; };
   score = derive2 { name="score"; version="1.0.2"; sha256="1p289k1vmc7qg70rv15x05dyb92r7s6315whr1ibi40sqln62a5s"; depends=[msm]; };
-  scorecard = derive2 { name="scorecard"; version="0.4.3"; sha256="105xqhipd1vlmm23frjq3qjsd0k6q7cxzakrvw0s2r1v8m4iqagv"; depends=[cli data_table doParallel foreach ggplot2 gridExtra openxlsx stringi xefun xml2]; };
+  scorecard = derive2 { name="scorecard"; version="0.4.4"; sha256="0aql9rfvq1fhlq13vj5dmz37nd31c1rrm808zh8mzx6425vx72d1"; depends=[cli data_table doParallel foreach ggplot2 gridExtra openxlsx stringi xefun xml2]; };
   scorecardModelUtils = derive2 { name="scorecardModelUtils"; version="0.0.1.0"; sha256="09znaxrv14m58hsk5pac458xbpcsidc6ygcsw4q9j0p4yd80qbvl"; depends=[car e1071 gbm ggplot2 partykit randomForest reshape2 sqldf stringr]; };
   scorepeak = derive2 { name="scorepeak"; version="0.1.2"; sha256="1g9n7kjqb9qk5b7hw8ysrc069w9dzc4z29ay6z1kbm0v4kkzp7bi"; depends=[checkmate Rcpp]; };
   scoring = derive2 { name="scoring"; version="0.6"; sha256="114jlpbnm15fdan5lr40adxdzwajy3yhdw6dm4kvkvky6qhcx7q5"; depends=[]; };
   scoringRules = derive2 { name="scoringRules"; version="1.1.1"; sha256="1qy521jhr5mj7999ncz27f3ggld2rqvgy3y3wznk23772xpgjgrr"; depends=[knitr MASS Rcpp RcppArmadillo]; };
-  scoringTools = derive2 { name="scoringTools"; version="0.1.3"; sha256="00bai8pm1wmal2dsqsyq9nrpkmrxc8bwccqp3gvf18b5s4s46k2r"; depends=[discretization dplyr magrittr sqldf]; };
   scoringfunctions = derive2 { name="scoringfunctions"; version="0.0.6"; sha256="05bxqj8pq8halwljsy89l2p8hq8gghvivyhk1078w6yrrn8w18lq"; depends=[]; };
   scoringutils = derive2 { name="scoringutils"; version="1.2.2"; sha256="1ylw7ql5ayfn6fcxnmmmr3zpvczax6mhmis28r03kwm8val5q233"; depends=[data_table ggdist ggplot2 lifecycle rlang scoringRules]; };
   scout = derive2 { name="scout"; version="1.0.4"; sha256="0vr497g7g1xhf75cwjbjsns2fvdzy86iibbf5w0g2xylw82s4lh2"; depends=[glasso]; };
@@ -17638,7 +17920,7 @@ in with self; {
   scraEP = derive2 { name="scraEP"; version="1.2"; sha256="1qkfd4bp3sd3xrh9bdaqwmmvx7f9rvjcch6hi2p387ky04ywwqn4"; depends=[data_table rvest XML xml2]; };
   scrapeR = derive2 { name="scrapeR"; version="0.1.8"; sha256="1hrxlj3x05vksa7pj8qkgyrc50l1b3d006nlzn174nn9ywhw6ypg"; depends=[httr magrittr rvest stringr]; };
   scrappy = derive2 { name="scrappy"; version="0.0.1"; sha256="0dckq2pdqabnv5cinfqgbrjxp55x4z81lp8xh4yhyb2cnz9gdsqy"; depends=[magrittr rvest xml2]; };
-  screenshot = derive2 { name="screenshot"; version="0.9.0"; sha256="14mkm5nsnyxvfzlq2gs9m88xgsvqwjra2j9ax1fx6wya970a1skd"; depends=[dplyr fs imager magrittr purrr rlang tibble]; };
+  screenshot = derive2 { name="screenshot"; version="0.9.1"; sha256="16b1dzagy92jk1y1dymq6r2yzri3lynaj9a2bjqqjn0bh21aqsxr"; depends=[dplyr fs imager purrr rlang stringr tibble]; };
   scribe = derive2 { name="scribe"; version="0.3.0"; sha256="02gwv7c107vaphkpr3giz2lqbaabk32fg6yf6zi0sirkp8dph93d"; depends=[]; };
   scrime = derive2 { name="scrime"; version="1.3.5"; sha256="0y2mh9fsffjf3i15bafpasa17z99c1s75r8g6h4hgcwfgpjx75sx"; depends=[]; };
   script = derive2 { name="script"; version="0.1.1"; sha256="1ba0mr77g4v4nv7yfs5yaj7x8yqrl3q8a1yia105pclgwq9ybs8i"; depends=[rstudioapi]; };
@@ -17668,43 +17950,42 @@ in with self; {
   sdcTable = derive2 { name="sdcTable"; version="0.32.6"; sha256="15jjc25zmxlhh6jvf1ml9q2ngf3blr6c1rarfsx993i4lbb6lg12"; depends=[data_table glpkAPI knitr Matrix progress Rcpp Rglpk rlang sdcHierarchies slam SSBtools stringr]; };
   sde = derive2 { name="sde"; version="2.0.18"; sha256="1rk9wqaam21fipsinag3ychfkl6p7fpgbamr0119v8gjgskajxl8"; depends=[fda MASS zoo]; };
   sdetorus = derive2 { name="sdetorus"; version="0.1.10"; sha256="09y23s5pxrhfv2l4q08vi8rf1nwainyy7dm0aij10sfwr86k0brn"; depends=[mvtnorm Rcpp RcppArmadillo]; };
-  sdm = derive2 { name="sdm"; version="1.2-32"; sha256="124j571lfr0nhycl4p1k0pl8ylh2cbigf6qs5az4zj29mqarspz9"; depends=[raster sp terra]; };
-  sdmTMB = derive2 { name="sdmTMB"; version="0.4.3"; sha256="0qfnf3mcx80rrpzpmnn9c6n808s92ixhnwdzvf22060rfy3b7vav"; depends=[assertthat cli clisymbols fishMod fmesher generics lifecycle lme4 Matrix mgcv mvtnorm nlme RcppEigen rlang TMB]; };
+  sdm = derive2 { name="sdm"; version="1.2-40"; sha256="1mcalw96mpylgi9yalm0pxxcmv9724vaylgkanmx2cbnsjracq2z"; depends=[raster sp terra]; };
+  sdmTMB = derive2 { name="sdmTMB"; version="0.6.0"; sha256="0v2kmyppax5f1g1jji7l2m6v49kxj65r81giv84hnkwmcqdzsic8"; depends=[assertthat cli clisymbols fishMod fmesher generics lifecycle lme4 Matrix mgcv mvtnorm nlme RcppEigen rlang TMB]; };
   sdmpredictors = derive2 { name="sdmpredictors"; version="0.2.15"; sha256="19znyvz98b3ykwqllzs2sjrw4sd6pd90130ws5d739xgpgsj1zwv"; depends=[R_utils raster terra]; };
   sdmvspecies = derive2 { name="sdmvspecies"; version="0.3.2"; sha256="19avkag13ij1k65vqhmvcy8j50j8vrgw4mjc49x8i63w3d4z1wxh"; depends=[psych raster]; };
   sdpdth = derive2 { name="sdpdth"; version="0.2"; sha256="1yn8fsjxpbagargf3mv0p23vsgnl64dxfkggrzvfp0ylxsx8nnvc"; depends=[Matrix matrixcalc rCMA Rcpp RcppArmadillo rJava]; };
   sdprisk = derive2 { name="sdprisk"; version="1.1-6"; sha256="061x78irryc5phd8bv9cs2mfgiajgwmr85ryp1r47anadydb2haa"; depends=[numDeriv PolynomF rootSolve]; };
   sdpt3r = derive2 { name="sdpt3r"; version="0.3"; sha256="02qv889mkzcilxzszzqcqgn9z5zmki0093mdriradbl1y8a27bp5"; depends=[Matrix]; };
+  sdrt = derive2 { name="sdrt"; version="1.0.0"; sha256="1kiq73m1wzqa8d0542nhm2bh7rc0bib0jnrwccawjyxmhm4jix73"; depends=[pracma psych tseries]; };
   sdtmval = derive2 { name="sdtmval"; version="0.4.1"; sha256="1alwjknkgbabmivn1wrrbd0wyrs0hxpvx47ibdn7zl7ksfbhlsld"; depends=[dplyr glue haven knitr lubridate magrittr purrr readxl rlang stringr tidyr tidyselect]; };
   sdwd = derive2 { name="sdwd"; version="1.0.5"; sha256="14x5hjdbkr5lsh8x3wninxg88acqh6q50famf6qjlfm7727rdysc"; depends=[Matrix]; };
   seacarb = derive2 { name="seacarb"; version="3.3.3"; sha256="1xrwvkal60dkj4i6h27dskbliizkz6q476s06627asjacy8vdls3"; depends=[gsw oce SolveSAPHE]; };
   sealasso = derive2 { name="sealasso"; version="0.1-3"; sha256="0j43my9mj73ada3bzzxazgwcahm2bhzbmqc128xara46gxvwrbzz"; depends=[lars]; };
-  searchConsoleR = derive2 { name="searchConsoleR"; version="0.4.0"; sha256="1ffg5359pbwylw265wbahwl3hy1b0qqv4al71v5r8lgfircibn0j"; depends=[googleAuthR stringr]; };
   searcher = derive2 { name="searcher"; version="0.0.7"; sha256="09h2jzm7y5c79z8an2nm392xmcn2ay7brcch7h1a7h9dbaakf1fb"; depends=[]; };
   seas = derive2 { name="seas"; version="0.6-0"; sha256="0cr4lsbd599gzjzc6px7hkm3np34zh6sjzgzamlp4mdrphpvlvn7"; depends=[MASS]; };
   season = derive2 { name="season"; version="0.3.15"; sha256="0f63ichlnj49g0ni9560avr4415iyj5061pixkjmqj83y7bbsz22"; depends=[ggplot2 MASS survival]; };
   seasonal = derive2 { name="seasonal"; version="1.9.0"; sha256="0kpmqix7lxlsnhacrhk5aa9gvzng3fg024ngpk5apmhai7m2bp20"; depends=[x13binary]; };
-  seasonalclumped = derive2 { name="seasonalclumped"; version="0.3.2"; sha256="0a9ryds9l00dw6pr9s6r6fzrby53zz63idjywh127a4ga48jwnq3"; depends=[ggplot2 gridExtra magrittr TTR]; };
   seasonalityPlot = derive2 { name="seasonalityPlot"; version="1.2.1"; sha256="03gfbpzy97kjw1mxm9xqh384ilyap2nqn4j5ir22rdyg60rfj2mp"; depends=[assertthat crypto2 dygraphs htmltools lubridate magrittr plotrix quantmod TTR zoo]; };
   seasonalview = derive2 { name="seasonalview"; version="0.3"; sha256="1l705yc7ssldsfckbgnvd95sh3zzhpkmf1rr6ar2s60s3wsyly4n"; depends=[dygraphs htmlwidgets openxlsx seasonal shiny shinydashboard xtable xts zoo]; };
   seastests = derive2 { name="seastests"; version="0.15.4"; sha256="1xy2hacd57v75y5snhn4al7bi71wr994jy6m2sdr6qzzsd5pbgpc"; depends=[forecast xts zoo]; };
   seawaveQ = derive2 { name="seawaveQ"; version="2.0.2"; sha256="1x4vvassal1lwb9xnwisrhlx2maaqxl84h7klfy8yg9x80fdrhsw"; depends=[lubridate plyr reshape2 rms survival]; };
-  secr = derive2 { name="secr"; version="4.6.6"; sha256="128ihlaf63q2mk4qkyd13lfna5isw8r83iz1lqrdv7q3gi7wl4w0"; depends=[abind BH MASS mgcv nlme raster Rcpp RcppEigen RcppNumerical RcppParallel sf stringr terra]; };
-  secrdesign = derive2 { name="secrdesign"; version="2.9.0"; sha256="02nm4psgcfv93qq2bgrmx8f3z1b9rgx7gff3rkldkbd80pqz2iwp"; depends=[abind BH kofnGA Rcpp RcppArmadillo secr sf]; };
+  secr = derive2 { name="secr"; version="4.6.7"; sha256="1zr2yp51dx5f8ggvwd9bspa3j08yjh6bpph7mpxqky7cn2clbf9b"; depends=[abind BH MASS mgcv nlme raster Rcpp RcppEigen RcppNumerical RcppParallel sf stringr terra]; };
+  secrdesign = derive2 { name="secrdesign"; version="2.9.1"; sha256="03aibck9r4rs9cc9rywm8rs9s9swp7wil1xgfgy6fxpxypapqfvx"; depends=[abind BH kofnGA Rcpp RcppArmadillo secr sf]; };
   secret = derive2 { name="secret"; version="1.1.0"; sha256="063gpyc2s2l6zw1j8b8ppzsv9kjsf0s77s5wcn7ipmwkj8qr2g4b"; depends=[assertthat curl jsonlite openssl rprojroot]; };
-  secretbase = derive2 { name="secretbase"; version="0.3.0.1"; sha256="0mhfkkl35g10lgz4llm017f2jbgp7vmgi0g301r4agx1iqj5g51w"; depends=[]; };
+  secretbase = derive2 { name="secretbase"; version="1.0.0"; sha256="1lnmkppw6scgdd3qd45jfvnrxx5bsa4b37z212aq6ss7xxjlv8wh"; depends=[]; };
   secrettext = derive2 { name="secrettext"; version="0.1.0"; sha256="129v524yyb464mcij7hvzv05cxliaz5nm7v30g9g9ppskcdqhsx2"; depends=[dplyr magrittr rlang stringr testthat tidyr]; };
   secrlinear = derive2 { name="secrlinear"; version="1.2.2"; sha256="1ivhl5imc7ic72h4v5276d2n02s39j78lcdr0rcx3dqycf3yyqag"; depends=[igraph MASS secr sf sp]; };
-  secsse = derive2 { name="secsse"; version="3.0.2"; sha256="08rb3s40jj7jyi7294ba7pm9qgycdpk1lp18krh464jbr0iim62h"; depends=[ape BH DDD geiger ggplot2 Rcpp RcppParallel rlang tibble]; };
+  secsse = derive2 { name="secsse"; version="3.1.0"; sha256="0v4qjsjmc7shqx8cy92c99fh6bfy2zdkwi2as05r2h4c2vk3p73z"; depends=[ape BH DDD geiger ggplot2 Rcpp RcppParallel rlang tibble treestats]; };
   sectorgap = derive2 { name="sectorgap"; version="0.1.0"; sha256="0nn9cpy7svil2y9snvk5zznnlqd825gb4kxp31kzwcvwf5frx8q2"; depends=[dplyr ggplot2 KFAS MCMCpack tempdisagg tidyr zoo]; };
-  secuTrialR = derive2 { name="secuTrialR"; version="1.1.1"; sha256="0i45zhbbvq052yn04j0xg69minclr7ns7f1pqdahx1cmf274pl42"; depends=[dplyr haven lubridate magrittr purrr readr readxl rlang stringr tibble tidyr]; };
+  secuTrialR = derive2 { name="secuTrialR"; version="1.3.3"; sha256="1g6xfvgq4qgpgbhihpjxgxk87dwa9k2lhwrka4w1icyabchk6yg2"; depends=[dplyr haven lubridate magrittr purrr readr readxl rlang stringr tibble tidyr]; };
   secure = derive2 { name="secure"; version="0.6"; sha256="1i0csl90w4qvhpnrxwrdhxzlmjw7hn30py36r41cd28igycz2bw3"; depends=[MASS Rcpp RcppArmadillo]; };
   sedproxy = derive2 { name="sedproxy"; version="0.7.5"; sha256="1n5970pbdc0zl9vh0fslirlww56as5c090mnhzbic1fdzkhli245"; depends=[dplyr ggplot2 mvtnorm rlang tidyr]; };
-  see = derive2 { name="see"; version="0.8.3"; sha256="00iikrn1jgaxawm1afi20biadk85f2y5zi2nrwah5vsd9m3g9n1m"; depends=[bayestestR correlation datawizard effectsize ggplot2 insight modelbased parameters performance]; };
+  see = derive2 { name="see"; version="0.8.4"; sha256="0xz1n8n232jhp8r8w5isp1nzxscj0fqfm3hxgq6725hm14sl9wqj"; depends=[bayestestR correlation datawizard effectsize ggplot2 insight modelbased parameters performance]; };
   seeclickfixr = derive2 { name="seeclickfixr"; version="1.1.0"; sha256="1agsqq2msrqrssffc6liyjjs6nqm90xy2inlcjbkdac5dhinjc4n"; depends=[jsonlite RCurl]; };
   seecolor = derive2 { name="seecolor"; version="0.2.0"; sha256="1qfiq8dmakban9mh7rizm54risq48vw1ck7i5yl48ggqmr47mvzf"; depends=[crayon dplyr fansi ggplot2 magrittr purrr rstudioapi stringr]; };
   seedCCA = derive2 { name="seedCCA"; version="3.1"; sha256="01v8hwhw5pap69n11czn0ma22vakhi3kfbly0rzasw9fsvf66xhg"; depends=[CCA corpcor]; };
-  seededlda = derive2 { name="seededlda"; version="1.1.0"; sha256="16f39byv8ilhmz546q20702s6zfvwz8hwmg8cgyxyy76dqxxgmch"; depends=[Matrix proxyC quanteda Rcpp RcppArmadillo RcppParallel testthat]; };
+  seededlda = derive2 { name="seededlda"; version="1.2.1"; sha256="1nvlmfx1ib9ffgippnlgiy7srnc4gasqailvsc0xfyxn70hsz9pb"; depends=[Matrix proxyC quanteda Rcpp RcppArmadillo testthat]; };
   seedr = derive2 { name="seedr"; version="0.3.0"; sha256="15drbc0iplb97a2sym6jnrwij7ak5qckcw98n3m65x45apjwdmhq"; depends=[binom data_table]; };
   seedreg = derive2 { name="seedreg"; version="1.0.3"; sha256="07wg48pn2v3wcwf5a34b4hc0s1flfpphrylr4d9bayaxsvi3k0xk"; depends=[boot car crayon dplyr drc emmeans ggplot2 gridExtra hnp multcomp multcompView sf stringr]; };
   seeds = derive2 { name="seeds"; version="0.9.1"; sha256="0adk7y5ripg78bwkdgnlfwq9w9h6mlpdrikgbnn5z8az2qahc0in"; depends=[callr coda Deriv deSolve dplyr ggplot2 Hmisc MASS matrixStats mvtnorm pracma R_utils Ryacas statmod tidyr]; };
@@ -17713,11 +17994,11 @@ in with self; {
   seewave = derive2 { name="seewave"; version="2.2.3"; sha256="13c48sn453yp4j0ap8slnnr2gfhlxasz926p2pazkrg817w7m28z"; depends=[tuneR]; };
   segMGarch = derive2 { name="segMGarch"; version="1.2"; sha256="0chw41h25jka9wa3rf3d8dq2ym47379jflv33q6qxaak8xy1kmd9"; depends=[corpcor doParallel fGarch foreach iterators mvtnorm Rcpp RcppArmadillo]; };
   segRDA = derive2 { name="segRDA"; version="1.0.2"; sha256="0az27z4pppyz5slckwmgk6qqix710m1s96drlq4fh8bqn2qmz812"; depends=[vegan]; };
-  segclust2d = derive2 { name="segclust2d"; version="0.3.1"; sha256="0g1x3871ah2vxyr8rk0dgjkcfridg7zhjsp9ahl50ighmmjdg9mp"; depends=[cli dplyr ggplot2 magrittr plyr RColorBrewer Rcpp RcppArmadillo reshape2 rlang scales zoo]; };
+  segclust2d = derive2 { name="segclust2d"; version="0.3.3"; sha256="0vsdmlpf9nd8lbv8iwvywrzajbpc76ifvx2fx7mlai1pskgyqfwm"; depends=[cli dplyr ggplot2 magrittr plyr RColorBrewer Rcpp RcppArmadillo reshape2 rlang scales zoo]; };
   segen = derive2 { name="segen"; version="1.1.0"; sha256="1l60rb1w0rfp1rv5favi4yxzyqs1nb1881mcz66xv789r3awhp11"; depends=[entropy fANCOVA fastDummies ggplot2 greybox imputeTS lubridate modeest moments narray philentropy purrr readr Rfast scales tictoc]; };
   segmag = derive2 { name="segmag"; version="1.2.4"; sha256="1i717xg1z7s35pkwzywgjf9wx7zj9xksv0k87h7p1q62y073qbqm"; depends=[plyr Rcpp]; };
   segmenTier = derive2 { name="segmenTier"; version="0.1.2"; sha256="01xbcddinjbkbqkwq2lnsxd3gw8fxys58p498dc2lw8psz3g2wgc"; depends=[Rcpp]; };
-  segmented = derive2 { name="segmented"; version="2.0-3"; sha256="1f89v6zbxwl6yhx3qi7wrr3rndnxfwaf49mygw357f7cf3i8ma77"; depends=[MASS nlme]; };
+  segmented = derive2 { name="segmented"; version="2.1-0"; sha256="1whcch1lw9y5fgy205377hr69xdjmav57z63vzgj7ammihja0yvd"; depends=[MASS nlme]; };
   segmentr = derive2 { name="segmentr"; version="0.2.0"; sha256="0q5kxxiw0akpk7w2a2l9zp7v4pvqblzdvrld5fjyl5f6h8hsb40z"; depends=[foreach glue Rcpp]; };
   segmetric = derive2 { name="segmetric"; version="0.3.0"; sha256="1cpkak3d91xjz6z4ls29ys1m5gmkqm7pq86vs88xy51z0av4kji7"; depends=[magrittr sf units]; };
   segregation = derive2 { name="segregation"; version="1.1.0"; sha256="1l2dlqva58l9glpsn1bflbggk0645zhsr3a1n1ydikp7q54wf72m"; depends=[checkmate data_table Rcpp RcppProgress]; };
@@ -17735,7 +18016,7 @@ in with self; {
   selectiveInference = derive2 { name="selectiveInference"; version="1.2.5"; sha256="07kzpvdmflca1sriqfzn20f84fx2b9kwwiqm91lqjpx854bsx5kh"; depends=[adaptMCMC glmnet intervals MASS Rcpp survival]; };
   selectr = derive2 { name="selectr"; version="0.4-2"; sha256="09y1n3iy297g49xlpl7xrjpwgnm57pskx5991lyfcpizbz8ax22m"; depends=[R6 stringr]; };
   selectspm = derive2 { name="selectspm"; version="0.6"; sha256="02gzbzjdr8ij9gsrvx8wmz9q8r35zjniwcri2hmiz57h0svybvll"; depends=[ecespa spatstat spatstat_explore spatstat_geom spatstat_model spatstat_random]; };
-  selenider = derive2 { name="selenider"; version="0.3.0"; sha256="13ay90p6andlwzsg60d67yl2ma1zaib66iir6gpgmw3y32gdqnhn"; depends=[cli coro curl lifecycle prettyunits processx rlang vctrs withr]; };
+  selenider = derive2 { name="selenider"; version="0.4.0"; sha256="1pxc8vxrvx5dfvx4gqj025wddsmpys8grs33nmz7hlnj1vichlp3"; depends=[cli coro curl lifecycle prettyunits processx rlang vctrs withr]; };
   selenium = derive2 { name="selenium"; version="0.1.3"; sha256="1v1bh9a1ybzwyzfsy7q82cjjaz2011zi9i80y275ayjwdsw1rfyf"; depends=[httr2 jsonlite lifecycle processx R6 rappdirs rlang]; };
   seleniumPipes = derive2 { name="seleniumPipes"; version="0.3.7"; sha256="1krpzh2gy3yl07c2n1d8q21xjc2qcv5ac1kv7212710bxkdyfad6"; depends=[httr jsonlite magrittr whisker xml2]; };
   selfingTree = derive2 { name="selfingTree"; version="0.2"; sha256="18ylxmg2ms4ccgm4ahzfl65x614wiq5id7zazjjz5y75h8gs7gzj"; depends=[foreach]; };
@@ -17749,22 +18030,22 @@ in with self; {
   semantic_dashboard = derive2 { name="semantic.dashboard"; version="0.2.1"; sha256="0518pdxgjjv8ql1aaysk64pv1pa01bbg3s7qdibw1v0c6pcf3adb"; depends=[checkmate glue htmltools shiny shiny_semantic]; };
   semdrw = derive2 { name="semdrw"; version="0.1.0"; sha256="16hm1ifgspnxnlf3rfg5ylmql2fq91ig8nc5953ggyhfrjwbqx15"; depends=[dplyr lavaan psych semPlot semTools shiny shinyAce]; };
   semds = derive2 { name="semds"; version="0.9-6"; sha256="10kvcmcy6qa2r5sram6azqgzl528rghfxgw2f2bq2fvhhq127dzq"; depends=[minpack_lm pracma]; };
-  semfindr = derive2 { name="semfindr"; version="0.1.6"; sha256="0a51bpc4m9hq9kyyiibm8gi09lcrjmjw5i1biqnyfdii69yaf2w0"; depends=[ggplot2 ggrepel lavaan Matrix rlang]; };
+  semfindr = derive2 { name="semfindr"; version="0.1.8"; sha256="02p2l5xsy53v6485as8azqamqy6cnjfmxb9zav1wnhm9p7d1f9ss"; depends=[ggplot2 ggrepel lavaan Matrix rlang]; };
   semgram = derive2 { name="semgram"; version="0.1.0"; sha256="0l5n176mhjkn5kcjd1kfq9s897rg510m1acnmjxcaw0kmmhi4ggs"; depends=[data_table rsyntax stringr]; };
-  semhelpinghands = derive2 { name="semhelpinghands"; version="0.1.10"; sha256="1rahflk228hla3pcchlpmd7b9sb5fd8851k9jnbxrfgbflxmxgrq"; depends=[boot ggplot2 ggrepel lavaan rlang]; };
+  semhelpinghands = derive2 { name="semhelpinghands"; version="0.1.11"; sha256="1v6gyjk2awlpz8zpczkxifb2pdnd7js6l75kmrh9lbyy5s7q9xxi"; depends=[boot ggplot2 ggrepel lavaan rlang]; };
   semiArtificial = derive2 { name="semiArtificial"; version="2.4.1"; sha256="0zsn3r5n7n3dsa02i194lr6ail7mizq9xp8x3kc5k17z4ckcfysd"; depends=[cluster CORElearn flexclust fpc ks logspline MASS mcclust nnet robustbase RSNNS StatMatch timeDate]; };
   semicmprskcoxmsm = derive2 { name="semicmprskcoxmsm"; version="0.2.0"; sha256="00nxmyp4g1pxzqrw3zd5il92vinzpy12wnjnpm33nbh4wx2i5356"; depends=[fastGHQuad ggplot2 Rcpp survival twang]; };
   semicontMANOVA = derive2 { name="semicontMANOVA"; version="0.1-8"; sha256="08z4r8klp2drch89jd4j3ji0439p6dr93db51vnm3bzic0dbrm01"; depends=[matrixcalc mvtnorm]; };
   semidist = derive2 { name="semidist"; version="0.1.0"; sha256="0bgl7z78psd2b3v4c4fzhq0r8w0zfn408ji21cw1x7h87dg70qr2"; depends=[energy FNN furrr purrr Rcpp RcppArmadillo]; };
-  seminr = derive2 { name="seminr"; version="2.3.2"; sha256="1385wwh7b0fq4jqm6ragdywwafdidq4scbljzbdpvm3wis07abqv"; depends=[DiagrammeR DiagrammeRsvg glue knitr lavaan rmarkdown testthat webp]; };
-  semlbci = derive2 { name="semlbci"; version="0.10.4"; sha256="07qm89a0hcbp0w6mly6gs0212pczai22bfjy61c4b1q8i3a3bj8x"; depends=[ggplot2 ggrepel lavaan MASS nloptr pbapply rlang]; };
+  seminr = derive2 { name="seminr"; version="2.3.3"; sha256="0y9lf8ik8rdq3j4hqw86zwaa4xsizgdryxsc8njxfzaw51z57ljm"; depends=[DiagrammeR DiagrammeRsvg glue knitr lavaan rmarkdown testthat webp]; };
+  semlbci = derive2 { name="semlbci"; version="0.11.2"; sha256="131nbwq8g0l2imbjv61l83c5avhwqndhdgwkaf0hj0h6a0qwvhqa"; depends=[callr ggplot2 ggrepel lavaan MASS nloptr pbapply rlang]; };
   semmcci = derive2 { name="semmcci"; version="1.1.4"; sha256="1j65z1h267pn941gcm5qbxgr6h7wf75iy6wz1jlzg76yfzsa47va"; depends=[lavaan mice]; };
   semmcmc = derive2 { name="semmcmc"; version="0.0.6"; sha256="13asqiw3zazh9k3p39582a0bzm00gmagls2w76kvpygilj4r5391"; depends=[MASS msm]; };
   semnar = derive2 { name="semnar"; version="0.8.1"; sha256="18c509yh52sdmvm60p0kzyz86fmzi0by4gnb2jw8nppv8qlnz6zb"; depends=[jsonlite leaflet lubridate parsedate urlshorteneR]; };
   semnova = derive2 { name="semnova"; version="0.1-6"; sha256="1vghf8gy0vahwn3nq752wm0rbj33jdy69yqjzin94sk8xa42d0wi"; depends=[lavaan MASS Matrix]; };
   semptools = derive2 { name="semptools"; version="0.2.10"; sha256="15rzkavr3njaln9mgn93ypbxw93prskvxw1s0865xqp58mh14k8y"; depends=[lavaan rlang semPlot]; };
   semsfa = derive2 { name="semsfa"; version="1.1"; sha256="1k6i1m4r9y7j85rlrsgfjm8w15ax4xgf70xyvqwsszmf9950ldxx"; depends=[doParallel foreach gamlss iterators mgcv moments np]; };
-  semtree = derive2 { name="semtree"; version="0.9.19"; sha256="0jasb4r07wv030isgxbbnaa9av2sm62qdzi4fljy2pgf94dx2x6l"; depends=[bitops clisymbols cluster crayon ctsemOMX data_table expm future_apply ggplot2 gridBase lavaan OpenMx rpart rpart_plot sandwich stringr strucchange tidyr zoo]; };
+  semtree = derive2 { name="semtree"; version="0.9.20"; sha256="1dcxnlnl5j9dha5bdmj4rn117cbssdzp1gwdnch2pc0234ziq4ys"; depends=[clisymbols cluster crayon data_table expm future_apply ggplot2 gridBase lavaan OpenMx rpart rpart_plot sandwich strucchange tidyr zoo]; };
   semver = derive2 { name="semver"; version="0.2.0"; sha256="10wpkyms2cix3bsin2q0qhkbl445pwwpa5gm2s4jjw1989namkxy"; depends=[assertthat Rcpp]; };
   semverutils = derive2 { name="semverutils"; version="0.1.0"; sha256="0y3zh8n8bgs3ag8yy9cnp0i0xrn0iqflcbrya70glyb40148w9sw"; depends=[foreach R6]; };
   sendgridr = derive2 { name="sendgridr"; version="0.6.1"; sha256="1lw17lhd3iwkp5mcbpwvwhlzgwk1nbz7xxic8fid8i22z1js22gc"; depends=[base64enc cli emayili httr jsonlite keyring magrittr usethis]; };
@@ -17790,29 +18071,29 @@ in with self; {
   sentiment_ai = derive2 { name="sentiment.ai"; version="0.1.1"; sha256="1wz34m5imzfwzf1ywidgb1xscsvf9nhri3w3wa2d8r7bk0nvlfjs"; depends=[data_table jsonlite reticulate roperators tensorflow tfhub xgboost]; };
   sentimentr = derive2 { name="sentimentr"; version="2.9.0"; sha256="0i0lg2fl079wjv30lpqcxhx62miqakb9kzwwhrr4c18kl0bxbaav"; depends=[data_table ggplot2 lexicon stringi syuzhet textclean textshape]; };
   sentometrics = derive2 { name="sentometrics"; version="1.0.0"; sha256="06qvwfgshr70n1qgf2zqjvycwwrak8d5hfyn3v5k2qzkfaxkihmm"; depends=[caret data_table foreach ggplot2 glmnet ISOweek quanteda Rcpp RcppArmadillo RcppParallel RcppRoll stringi]; };
-  sentopics = derive2 { name="sentopics"; version="0.7.2"; sha256="0gi52lxkmhbhlsbpamwcrji1y664lrwk3k0pigc2gad3za9rdimc"; depends=[data_table quanteda Rcpp RcppArmadillo RcppHungarian RcppProgress]; };
+  sentopics = derive2 { name="sentopics"; version="0.7.3"; sha256="1n9z2k4nwzd7j2nliar4v1as1vixx6cbmcysf4phjmh7qfay8bqk"; depends=[data_table generics quanteda Rcpp RcppArmadillo RcppHungarian RcppProgress]; };
   sentryR = derive2 { name="sentryR"; version="1.1.2"; sha256="08k4ws4jrd50ymkp7v0i5jjss5brqxyxr36x1jnyqw1nzmchas5x"; depends=[httr jsonlite stringr tibble uuid]; };
   separationplot = derive2 { name="separationplot"; version="1.4"; sha256="1dvm073mckn6mkyf6fvclc8glsr8d3p2413x5i91w00hphm2lg8z"; depends=[foreign Hmisc MASS RColorBrewer]; };
   sephora = derive2 { name="sephora"; version="0.1.31"; sha256="1axh5qd8mp55d45k34935sm0wc6ib4b309a92d1vaxz3hzgvbygi"; depends=[doParallel dplyr dtwclust eBsc foreach geoTS ggnewscale ggplot2 MASS nlme rootSolve spiralize]; };
   sepkoski = derive2 { name="sepkoski"; version="0.0.1"; sha256="1jx1ilbz7md501035vklk5bsw8krg8dn18pwkqynsacqy8wjwl2s"; depends=[]; };
-  seqCBS = derive2 { name="seqCBS"; version="1.2.1"; sha256="176ggpdcgmpsjixmz0ldknyd0vw120kjyrid3bq2bn4cgkwzb74z"; depends=[clue]; };
   seqDesign = derive2 { name="seqDesign"; version="1.2"; sha256="10p8ldj83mvhpcz1yas4xns5qh8zbs533na8nv87phngi8dsb76m"; depends=[survival]; };
   seqHMM = derive2 { name="seqHMM"; version="1.2.6"; sha256="17rphq6n2pzgxma0v27vaixi4a343gzc6sk15czfd96kfz7m0gad"; depends=[gridBase igraph Matrix nloptr numDeriv Rcpp RcppArmadillo TraMineR]; };
   seqICP = derive2 { name="seqICP"; version="1.1"; sha256="1dfhl7g47icjw38p9c0hyvnn3pwzw7pndywk22vgcyfhiz23xjcp"; depends=[dHSIC mgcv]; };
+  seqSHP = derive2 { name="seqSHP"; version="0.1.1"; sha256="1p1flpw055jb135jpqlgdyyn19p6hwiqj9kx085irlyczi5kiimi"; depends=[dplyr haven]; };
   seqest = derive2 { name="seqest"; version="1.0.1"; sha256="06zk87n26305m0hy6lg7v3bpxmsqvinwkvw3dvmzkqp5jdkhwikb"; depends=[foreach geepack MASS mvtnorm nnet Rcpp RcppArmadillo VGAM]; };
-  seqgendiff = derive2 { name="seqgendiff"; version="1.2.3"; sha256="0vyrs4i3q3lyqx0b1as7h2rm3s5kbapq6jxzag8dwhf0ch7yz8gv"; depends=[assertthat cate clue irlba matchingR pdist sva]; };
+  seqgendiff = derive2 { name="seqgendiff"; version="1.2.4"; sha256="0gc07dpmixf5cw8i2i42jyfjayzqy4c0w2ggwiyc7vrpxsrkxc02"; depends=[assertthat clue irlba matchingR pdist sva]; };
   seqhandbook = derive2 { name="seqhandbook"; version="0.1.1"; sha256="0pr4h19g4sa9g7x3di3k18abmabn6ywigdhx2h4b5y88zcnizfam"; depends=[TraMineR]; };
-  seqimpute = derive2 { name="seqimpute"; version="1.8"; sha256="1vivs790zbwm8c7fwifz0nj0n9wzjmr8whz0f4pwp44gvcickxwn"; depends=[Amelia cluster dfidx doRNG doSNOW dplyr foreach mice mlr nnet plyr ranger rms stringr swfscMisc TraMineR]; };
+  seqimpute = derive2 { name="seqimpute"; version="2.0.0"; sha256="1g60drnx12j6wzkisxlmhidvqzzgsrmmmmp8dljq94bb5iv8xjmz"; depends=[Amelia cluster dfidx doRNG doSNOW dplyr foreach mice mlr nnet plyr ranger rms stringr TraMineR TraMineRextras]; };
   seqinr = derive2 { name="seqinr"; version="4.2-36"; sha256="09dj2k5mi6xylsihnwbmdd8f4qg855gyh7yvz9gamam7j6h646lk"; depends=[ade4 segmented]; };
   seqmagick = derive2 { name="seqmagick"; version="0.1.7"; sha256="1rdq24192yl7w0jsnw1zhj7qzi8qb08dw95iyxyf0rm2q34q1kwm"; depends=[Biostrings magrittr yulab_utils]; };
   seqminer = derive2 { name="seqminer"; version="9.4"; sha256="0m9ysdq4ch4c2i3d86gd32rbi0v637djvr295wzzwgkflk66sz5c"; depends=[]; };
-  seqmon = derive2 { name="seqmon"; version="2.4"; sha256="1aqrg9aqvsabg5mm9jfj5vaxxaapfs1qw3yyzbx7vsspcgjdhyca"; depends=[]; };
+  seqmon = derive2 { name="seqmon"; version="2.5"; sha256="0y08xn0r6sj6priksz72mgfdasm167smvqi4rjiwrcv5qqv0blbl"; depends=[]; };
   seqtest = derive2 { name="seqtest"; version="0.1-0"; sha256="1bdfww9szh7h278id5xpfc39mxkcix3yvsdwc68wx3q3x0wxhqhq"; depends=[]; };
-  seqtrie = derive2 { name="seqtrie"; version="0.2.6"; sha256="17kpj96vmgy9rhfk64mzcpm3cdfq73z2m4j8qx8g4l46zyv3cr1i"; depends=[BH dplyr R6 Rcpp RcppParallel rlang stringi]; };
-  sequoia = derive2 { name="sequoia"; version="2.9.0"; sha256="0fqmhhcwpa8ikp94qzxnl0pyp3mkjfp7hp8qwfinfjxvawnm26ph"; depends=[plyr]; };
+  seqtrie = derive2 { name="seqtrie"; version="0.2.8"; sha256="12pkcb5ylqlr7ljzrwna6fjqvnikgvsr7k664bw6xkbx1g370s2a"; depends=[BH dplyr R6 Rcpp RcppParallel rlang stringi]; };
+  sequoia = derive2 { name="sequoia"; version="2.11.2"; sha256="09ji88hylic73m23gq24m9fp2zqlfz06xypd8sajj2k6q8105nbn"; depends=[cli plyr]; };
   sergeant = derive2 { name="sergeant"; version="0.9.1"; sha256="0mgrrlny1qfddznyc34awh8vkbjnyskbyqrxszdhsm2c5wgp2nwh"; depends=[bit64 DBI dbplyr dplyr htmltools httr jsonlite magrittr purrr readr scales stringi tibble]; };
   serial = derive2 { name="serial"; version="3.0"; sha256="1y1gj0lcdn5apiv6c6arks6pqhsbvnrfym6n2izjarx2c27ijrjj"; depends=[]; };
-  seriation = derive2 { name="seriation"; version="1.5.4"; sha256="17rk4674r5knfgqyik9gbz6yj42qv6h79j2prw79glc1ym99qcyj"; depends=[ca cluster colorspace foreach gclus MASS qap registry TSP vegan]; };
+  seriation = derive2 { name="seriation"; version="1.5.5"; sha256="0v84pic838rpbcmrz8ip466aagz57vmzlgfk0vkhlcv8zn34r0zp"; depends=[ca cluster colorspace foreach gclus MASS qap registry TSP vegan]; };
   serieslcb = derive2 { name="serieslcb"; version="0.4.0"; sha256="1ip4k2xzg06hwsni62ai1whs1zzhwlf94507inpfpqz3jmmafrhq"; depends=[gplots shiny]; };
   serp = derive2 { name="serp"; version="0.2.4"; sha256="0hd25rxknj636ssy2289xjvq5fflp2p561yb9w0siqihfc7cfjpc"; depends=[crayon ordinal]; };
   serpstatr = derive2 { name="serpstatr"; version="0.2.1"; sha256="09yzxkwgargd42f0bngv6jzhd8arzbvwj2js7lb9yf7vhjq1xv5f"; depends=[httr]; };
@@ -17825,8 +18106,8 @@ in with self; {
   setRNG = derive2 { name="setRNG"; version="2024.2-1"; sha256="0h2wbpsi07c48h72zjglvp9b58hq3j77289sah32qg6vnw41pcp3"; depends=[]; };
   setartree = derive2 { name="setartree"; version="0.2.1"; sha256="13j0shmnnwnbkzgl1wnirvfd9yi29smn3a5cjxg5xg89bjh77wc6"; depends=[generics]; };
   sets = derive2 { name="sets"; version="1.0-25"; sha256="1x14q29jjmrs5ldbjc7pxp5pr52j3dw6zr9k5qvz4ycniwhnk92w"; depends=[]; };
-  setter = derive2 { name="setter"; version="0.0-1"; sha256="10fwrx8yysp99rrkbnn3rbz79vyzr2h3p7zxxlqapw1k2lllp0r5"; depends=[assertive_base]; };
   settings = derive2 { name="settings"; version="0.2.7"; sha256="1i9ij5k8p2v9gxr48vas8hj337mbyx9c4ywv9bbdwkz6kzah46k5"; depends=[]; };
+  settingsSync = derive2 { name="settingsSync"; version="3.0.2"; sha256="0bb8cdj68473hi4fvwhcqyhpxclx4x42dpc9ghvhp42lhw1lgbi4"; depends=[cli dplyr glue googledrive jsonlite rappdirs tibble yesno]; };
   sevenbridges2 = derive2 { name="sevenbridges2"; version="0.1.0"; sha256="1z3sp85jvqzzf6szi2bz69wyp44spvc0r2gm81shak2fk5z8460f"; depends=[checkmate cli curl data_table DescTools glue httr jsonlite purrr R6 readr rlang stringr yaml]; };
   sever = derive2 { name="sever"; version="0.0.7"; sha256="10jckf6q31blsl1yhs5f1mx7b8sm8sqb86iakcvaslf651ijx81m"; depends=[cli htmltools shiny]; };
   sewage = derive2 { name="sewage"; version="0.2.5"; sha256="171rd59w90q29a9ywdx5225gw6m57bz9rcj25ql38jk62xdmrx69"; depends=[cli DiagrammeR glue]; };
@@ -17844,15 +18125,16 @@ in with self; {
   sfhotspot = derive2 { name="sfhotspot"; version="0.8.0"; sha256="17vlayqqhv59p9mhrxzxs5r6gfqd6wyyi1k6p05n2sd9c06jzadb"; depends=[ggplot2 rlang sf SpatialKDE spdep tibble]; };
   sfinx = derive2 { name="sfinx"; version="1.7.99"; sha256="14v47y00qwvc2s0vzjw19hwn85nzj8lna539c75qq6zkn6kir6va"; depends=[]; };
   sfislands = derive2 { name="sfislands"; version="1.0.0"; sha256="1x3jybr0nhms375ynik8v8nx9n2r9gada1fpnx9vhbykdiz5w8jm"; depends=[broom_mixed dplyr ggplot2 purrr sf spdep stringr tidyr]; };
-  sfnetworks = derive2 { name="sfnetworks"; version="0.6.3"; sha256="0caqqcdkm5g8f08k7dws6gcm560m88w6g98sbx0bsamf54cxda33"; depends=[crayon dplyr igraph lwgeom rlang sf sfheaders tibble tidygraph units]; };
+  sfnetworks = derive2 { name="sfnetworks"; version="0.6.4"; sha256="0q64ki4ylgkwnz4g43pq43hv9lspi1akyssjpbd4947x69hlyhiz"; depends=[crayon dplyr igraph lwgeom rlang sf sfheaders tibble tidygraph units]; };
   sfo = derive2 { name="sfo"; version="0.1.2"; sha256="0q821i9w4kbzpmiym1sha086nr59yydbyig84jy7hws186lkvi7m"; depends=[]; };
-  sfsmisc = derive2 { name="sfsmisc"; version="1.1-17"; sha256="06ih8zljs57scy7jfnv32yxijgv1i60vggmlyyblwnff6mr2fm60"; depends=[]; };
+  sfsmisc = derive2 { name="sfsmisc"; version="1.1-18"; sha256="1bc3qjnh3k4ia7w2sdbawr4rp8w9pmcbzbdjg7qbiwmpx6h2w19k"; depends=[]; };
   sft = derive2 { name="sft"; version="2.2-1"; sha256="0fxz64ba58n6ghfqsgq64n1c7qkvi8c3lsa86732mil9w71yxw33"; depends=[fda SuppDists]; };
   sftime = derive2 { name="sftime"; version="0.2-0"; sha256="1ymi60ag8kqb3293bdcvb83zwsgrz000ylifjvlpzzmh1xsisanq"; depends=[sf]; };
   sftrack = derive2 { name="sftrack"; version="0.5.4"; sha256="0cm87fla8bnhp1j35wq2llw1jziqhgfcj1yn503z4ds40gh4wnqa"; depends=[sf]; };
   sgPLS = derive2 { name="sgPLS"; version="1.8"; sha256="16cjhrla1f4pf2gqfnbi5n1ai69nbr80crwn1f29ldk483d6hjc5"; depends=[mixOmics mvtnorm]; };
-  sgapi = derive2 { name="sgapi"; version="1.0.1"; sha256="11wkj0x4rhbijkd0vpmd2rdjzfkf9ia1fzaswidrl0wp8kw2a5x7"; depends=[dplyr httr magrittr readr sf xml2]; };
+  sgapi = derive2 { name="sgapi"; version="1.0.2"; sha256="0q0qamhzsn4421wzbjfqlwrs2w4qj61ynvjh9pjv7fkk89szh7xx"; depends=[dplyr httr magrittr readr sf xml2]; };
   sgat = derive2 { name="sgat"; version="0.9"; sha256="14sniq5yfh7xmbnd8d0ighw97352qjgfdg587a6hxafisx9is61p"; depends=[data_table dplyr plyr qdapRegex RCurl RSelenium stringr]; };
+  sgboost = derive2 { name="sgboost"; version="0.1.3"; sha256="1x3ppg2sivl2r3w1pbqvam7cvrd86agxbqdmkgf2qkvy3hf5gdga"; depends=[dplyr ggforce ggplot2 mboost rlang stringr tibble]; };
   sgd = derive2 { name="sgd"; version="1.1.2"; sha256="0spcv9dysl2vlgrpjxicai9nkg7hylf2wci45pjpl8jph6yj8c70"; depends=[BH bigmemory ggplot2 MASS Rcpp RcppArmadillo]; };
   sgee = derive2 { name="sgee"; version="0.6-0"; sha256="055iydainzywb1s5id5rl9i94dj5arr9b6qz15p8wps49vm2mlp3"; depends=[copula mvtnorm]; };
   sgeostat = derive2 { name="sgeostat"; version="1.0-27"; sha256="1iq9p2jk8bpv1h853a1l91d5c5dxnhkk3cmkd01siqqvj04hv4vb"; depends=[]; };
@@ -17865,6 +18147,7 @@ in with self; {
   sgolay = derive2 { name="sgolay"; version="1.0.3"; sha256="0qry7286kw6ks5kc3wp89ax43smmb6b77gral72izpbw5wkblphm"; depends=[signal]; };
   sgpv = derive2 { name="sgpv"; version="1.1.0"; sha256="0w0slnnw239a34c0h7xr76c4m0rfwl0hq61g9n12vzxd6lfh3gqz"; depends=[]; };
   sgr = derive2 { name="sgr"; version="1.3.1"; sha256="0m7rl3yii6zz4p21aiaifj1ram6gi6x5kywpyx9yjan79180q8h7"; depends=[MASS]; };
+  sgraph = derive2 { name="sgraph"; version="1.0.0"; sha256="07kqgzdfhkmannx5kpnmm2hrw74ywpnbi9964628lk82pi9g8la9"; depends=[cowplot ggplot2 htmlwidgets igraph jsonlite magrittr RColorBrewer stringi]; };
   sgs = derive2 { name="sgs"; version="0.1.1"; sha256="0glyxlimh97qyhjsqkal05ncjmr6wqa00y9fa4j9ilkqyq6nn0jq"; depends=[caret faux MASS Matrix Rcpp RcppArmadillo Rlab SLOPE]; };
   sgsR = derive2 { name="sgsR"; version="1.4.5"; sha256="1ircbwlc6ysv8v8vxn5snjqx47qhi5rdqyd3vvf3cx54jndsnvah"; depends=[BalancedSampling clhs dplyr ggplot2 SamplingBigData sf spatstat_geom terra tidyr]; };
   sgstar = derive2 { name="sgstar"; version="0.1.2"; sha256="0b3bw10lf5h4kgg3c0s3lxsafaffhn8gc9kxmg7bg35lbxv0r1vn"; depends=[dplyr ggplot2 tidyr]; };
@@ -17877,7 +18160,7 @@ in with self; {
   shapeR = derive2 { name="shapeR"; version="1.0-1"; sha256="02al1g9ycfb63mcx4s16abniggl825ihjanx6silbpv6dn6g1ms8"; depends=[jpeg MASS pixmap plotrix vegan wavethresh]; };
   shapefiles = derive2 { name="shapefiles"; version="0.7.2"; sha256="03sdcxbah05x0j6cpygx3ivkzrdlz2c0frxi30cinb05q6a41yjb"; depends=[foreign]; };
   shapes = derive2 { name="shapes"; version="1.2.7"; sha256="155q6asc9202f85snyjaxhm8qpj7swgzhg95sisjy506gvcb6c8z"; depends=[MASS minpack_lm rgl scatterplot3d]; };
-  shapley = derive2 { name="shapley"; version="0.1"; sha256="0x8fdl1kg027gl48ki9r1xlihqfhqvlaqkwjjrrw51k85r4ly1kb"; depends=[curl ggplot2 h2o waffle]; };
+  shapley = derive2 { name="shapley"; version="0.3"; sha256="0zr1mjpsn7s1wb708vza5vlv5biqcx3h7ng36rfq7v08lzrakwqk"; depends=[curl ggplot2 h2o waffle]; };
   shapper = derive2 { name="shapper"; version="0.1.3"; sha256="1jaj9j894md45611gdrz05n0kfakawf7vlcc3zxhwdh3f7kwz4lp"; depends=[DALEX ggplot2 reticulate]; };
   shapr = derive2 { name="shapr"; version="0.2.2"; sha256="0c8vivr1ia7x4jvdsffv06nl2yahxx38r5xbws5cdkalhbhlwv4h"; depends=[condMVNorm data_table Matrix mvnfast Rcpp RcppArmadillo]; };
   shapviz = derive2 { name="shapviz"; version="0.9.3"; sha256="01zq6kr5na40xgypif6sv2pjynhva9v0npx779k7fxck1db68z80"; depends=[ggfittext gggenes ggplot2 ggrepel patchwork rlang xgboost]; };
@@ -17887,8 +18170,8 @@ in with self; {
   sharpPen = derive2 { name="sharpPen"; version="1.9"; sha256="0ra1iq6bfiy87arj7nb4s4adiji3pcp7vrjhsfbm2agfw05k4zj4"; depends=[glmnet KernSmooth locpol Matrix np]; };
   sharpeRratio = derive2 { name="sharpeRratio"; version="1.4.3"; sha256="0ndqckz7pi099yynzfwzcbz9jcz93bb9jcd2a4px2sjbagfmx7ag"; depends=[ghyp Rcpp]; };
   sharpr2 = derive2 { name="sharpr2"; version="1.1.1.0"; sha256="1r7anfr296l5sbhgry6rb15hlca6mpcm24qssdzz9bckavyfvqgi"; depends=[Matrix mvtnorm]; };
-  sharpshootR = derive2 { name="sharpshootR"; version="2.2"; sha256="0qy2glasnsmrdbgx7pvbhi0dzidgkfjl67ay5gkfjdy477n5micy"; depends=[ape aqp circular cluster curl digest e1071 lattice plyr RColorBrewer reshape2 scales soilDB stringi vegan]; };
-  sharx = derive2 { name="sharx"; version="1.0-5"; sha256="10sfjg6946jfk4051da0w1v89503av40wckqaabr12syf8kn0aw8"; depends=[dclone dcmle Formula]; };
+  sharpshootR = derive2 { name="sharpshootR"; version="2.3.1"; sha256="1cvq2wh05dkaijkmwm20bs7xcmcv0xwv1gcf535xnd9gkzpy8xdr"; depends=[ape aqp circular cluster curl digest e1071 lattice plyr RColorBrewer reshape2 scales soilDB stringi]; };
+  sharx = derive2 { name="sharx"; version="1.0-6"; sha256="0fyz7m8zx2i4r1kj5svzmn6l43f7zg2sj4c3ynyjwa1lzi5wf75v"; depends=[dclone dcmle Formula]; };
   shattering = derive2 { name="shattering"; version="1.0.7"; sha256="0dmb57pdgzwm001gfm1zm8ba7x71bp2vjk4ml0cy4r05hpdswfh3"; depends=[e1071 FNN NMF pdist pracma rmarkdown Ryacas slam]; };
   shazam = derive2 { name="shazam"; version="1.2.0"; sha256="16bkwm903v4hv6ng6ncfzax2s5x8qfa4ldlwzclry7iggniq7dzh"; depends=[alakazam ape diptest doParallel dplyr foreach ggplot2 igraph iterators KernSmooth lazyeval MASS progress rlang scales seqinr stringi tidyr tidyselect]; };
   shelltrace = derive2 { name="shelltrace"; version="3.5.1"; sha256="1xgbavaa26185i6q3907ds3bzq4xrw027x1sw5vsybqrxdz04jiz"; depends=[bmp tiff xlsx]; };
@@ -17897,19 +18180,19 @@ in with self; {
   shide = derive2 { name="shide"; version="0.2.0"; sha256="1czdl0i93plqc1d2cf874603s4fiym96kv4d23vr1kvy2kx1jnh9"; depends=[cpp11 rlang tzdb vctrs]; };
   shiftR = derive2 { name="shiftR"; version="1.5"; sha256="18y2qzqx8hd6yph1wnsq4ygm16pcdszynh174xsrxrhvx2h9mi4x"; depends=[]; };
   shinipsum = derive2 { name="shinipsum"; version="0.1.1"; sha256="1l6skq9y5417x174l7svbvvlh10vv5kdnp2s4q7g76l62y710ks4"; depends=[attempt DT dygraphs ggplot2 magrittr plotly]; };
-  shiny = derive2 { name="shiny"; version="1.8.0"; sha256="0ha6w3pxmc1v2q10frhhf0qmbrfs0aq2gbdjmcyqnzkh52x411zj"; depends=[bslib cachem commonmark crayon ellipsis fastmap fontawesome glue htmltools httpuv jsonlite later lifecycle mime promises R6 rlang sourcetools withr xtable]; };
+  shiny = derive2 { name="shiny"; version="1.8.1.1"; sha256="0lv7wfbmv72ilckm46dvkc0cg6qzih9iy4793h4w5qjhsysmz3d3"; depends=[bslib cachem commonmark crayon fastmap fontawesome glue htmltools httpuv jsonlite later lifecycle mime promises R6 rlang sourcetools withr xtable]; };
   shiny_benchmark = derive2 { name="shiny.benchmark"; version="0.1.1"; sha256="14k51vhd3gngdpg67kn9gsd6i47sn9vkxx1qni139jlza7g9n0jx"; depends=[dplyr fs ggplot2 glue jsonlite progress renv shinytest2 stringr testthat]; };
-  shiny_blueprint = derive2 { name="shiny.blueprint"; version="0.2.0"; sha256="1g0c0iqp5yx24yzzxjnh7yjflx0k5pgkz6p415ml39pyczgq7107"; depends=[checkmate htmltools shiny shiny_react]; };
+  shiny_blueprint = derive2 { name="shiny.blueprint"; version="0.3.0"; sha256="1hxn9z565g34fx7wbx5648sx2q4q1w2nggbfcjplrjwg709swbdr"; depends=[checkmate htmltools shiny shiny_react]; };
   shiny_emptystate = derive2 { name="shiny.emptystate"; version="0.1.0"; sha256="07vw8dw6yv3gqp400h2b1x2nv2v3hzgfgmhb8fxxdicbx08vxv47"; depends=[fontawesome htmltools R6 shiny]; };
   shiny_exe = derive2 { name="shiny.exe"; version="0.2.0"; sha256="0657ywbnkg3k67321v9rkmfqqrkn89qzyidri0gfhs53c96yrijm"; depends=[]; };
-  shiny_fluent = derive2 { name="shiny.fluent"; version="0.3.0"; sha256="14cqa2czg3b60cxb8v4kycgk74cgdg9y8pg76mglnjv6rksmvwkl"; depends=[htmltools jsonlite rlang shiny shiny_react]; };
+  shiny_fluent = derive2 { name="shiny.fluent"; version="0.4.0"; sha256="0d6925apv6vwbhyzxlzli7j18yzz4raxf32p7mgwsrwirjkhj21s"; depends=[htmltools jsonlite purrr shiny shiny_react]; };
   shiny_i18n = derive2 { name="shiny.i18n"; version="0.3.0"; sha256="0kcdvan8ds1kdqdxk6yvqpxlxv6xj4nxr8mp1qns3fzklyf4n4gy"; depends=[glue jsonlite R6 rstudioapi shiny stringr yaml]; };
   shiny_info = derive2 { name="shiny.info"; version="0.2.0"; sha256="162wvb02z5h1y7xgsyl6wv88zlfmbm1jlnz48f56fyybs54baw41"; depends=[git2r glue shiny]; };
   shiny_pwa = derive2 { name="shiny.pwa"; version="0.2.1"; sha256="120wqqy7fh7nm2bib3dq02a92jb3lykkl7qayiw6bnax8sdr18yw"; depends=[htmltools readr shiny urltools]; };
-  shiny_react = derive2 { name="shiny.react"; version="0.3.0"; sha256="0s4v2k0x04qcpjsb44c3rhgkzh0004r4hga3dkghcpzkgz6pfx2h"; depends=[glue htmltools jsonlite logger purrr rlang shiny]; };
+  shiny_react = derive2 { name="shiny.react"; version="0.4.0"; sha256="115kxwfpwirj34djzk7r4akdq1a6ril3lg9xzii60wiqc1panbdd"; depends=[glue htmltools jsonlite logger purrr rlang shiny stringi]; };
   shiny_reglog = derive2 { name="shiny.reglog"; version="0.5.2"; sha256="018dnnisidmn799api7kgwknvm3ka2sk1vvq2wcx65acqc450i18"; depends=[dplyr lifecycle lubridate R6 scrypt shiny shinyjs stringi uuid]; };
   shiny_router = derive2 { name="shiny.router"; version="0.3.1"; sha256="1zg8cdxmw620i1iv7jrghd768gw7iv52hi6lx79xvnfjz8w4si3x"; depends=[glue htmltools rlang shiny]; };
-  shiny_semantic = derive2 { name="shiny.semantic"; version="0.5.0"; sha256="18ap0n3jgbpa9z5wk66qxf6qpdclhvmx6pralk4b8c8h5g57w465"; depends=[glue htmltools htmlwidgets jsonlite magrittr purrr R6 semantic_assets shiny]; };
+  shiny_semantic = derive2 { name="shiny.semantic"; version="0.5.1"; sha256="1gfkwgij365j0i9wz7dqdadpa9mdarn8n70cygm46fcak7lp08h8"; depends=[glue htmltools htmlwidgets jsonlite magrittr purrr R6 semantic_assets shiny]; };
   shiny_tailwind = derive2 { name="shiny.tailwind"; version="0.2.2"; sha256="12z6cnir7gyh01pw2l2wmsx1kw4yjh7i4p6afr05mqik9kfiljw2"; depends=[htmltools shiny]; };
   shiny_telemetry = derive2 { name="shiny.telemetry"; version="0.2.0"; sha256="0kp0wb3rh501bg7y8r90bwy1bbz5skmlvfjsqxj3nc1gpanndbjs"; depends=[checkmate digest dplyr glue httr2 jsonlite logger lubridate odbc purrr R6 rlang RSQLite shiny tidyr]; };
   shiny_worker = derive2 { name="shiny.worker"; version="0.0.1"; sha256="1l30dx46s3q1x9nd42r6dracd3lqkjk80r9jyjqy8lmdsq48300i"; depends=[future R6 shiny]; };
@@ -17917,12 +18200,12 @@ in with self; {
   shinyBS = derive2 { name="shinyBS"; version="0.61.1"; sha256="0h51685a9qll4agayldjyryi60ih969219ibg071slv0613p5v8a"; depends=[htmltools shiny]; };
   shinyChakraSlider = derive2 { name="shinyChakraSlider"; version="0.1.0"; sha256="1vsbw9dm8ai2w6mfdaksxh13ryh2awajqgkcwcxb99l47h17rvpy"; depends=[htmltools reactR shiny]; };
   shinyChakraUI = derive2 { name="shinyChakraUI"; version="1.1.1"; sha256="08qy6qrrprqlarwd3kab9s92dlx51jkhk7mikkf0mdhl6n2q26py"; depends=[fontawesome formatR htmltools jsonlite reactR rlang shiny stringr]; };
-  shinyChatR = derive2 { name="shinyChatR"; version="1.1.0"; sha256="08370x2yc8v32h2qgvwd26c2yrx2n89k85sz5dinv110lkrwr6f2"; depends=[data_table DBI purrr R6 shiny]; };
+  shinyChatR = derive2 { name="shinyChatR"; version="1.2.0"; sha256="174jm8a52h7lr4bvl88ajllhknzczq8lwvbrldh07hiphbid071d"; depends=[data_table DBI purrr R6 shiny]; };
   shinyCohortBuilder = derive2 { name="shinyCohortBuilder"; version="0.2.1"; sha256="1ld8sing87s5r2yxhd5w9wybacx508hgp1crbrpnirq80jnmrazy"; depends=[bslib cohortBuilder dplyr ggiraph ggplot2 glue highr htmltools htmlwidgets jsonlite lifecycle magrittr purrr rlang shiny shinyGizmo shinyWidgets tibble tryCatchLog]; };
-  shinyCox = derive2 { name="shinyCox"; version="1.0.1"; sha256="1fl2dj3568x7s47njz2lgnwr12s72mny4wi5gs99wm66mhzi5bf3"; depends=[shiny survival]; };
+  shinyCox = derive2 { name="shinyCox"; version="1.1.0"; sha256="055v9mxy3z0ks5fvfqs1qf7cb8mavxd2p55790ndj3k04vf6mwd2"; depends=[shiny survival]; };
   shinyCyJS = derive2 { name="shinyCyJS"; version="1.0.0"; sha256="1xgrjk7iyg313x0wkg9q3mp63aidbbhxmjp3jv8cgr4w6qcv0ny6"; depends=[htmlwidgets]; };
   shinyDND = derive2 { name="shinyDND"; version="0.1.0"; sha256="0nkvz4hmjzmxlzj4vkjrdy8xlbxapg1amk180irgvwicqldi4jpm"; depends=[htmltools shiny]; };
-  shinyDatetimePickers = derive2 { name="shinyDatetimePickers"; version="1.1.0"; sha256="1wlll71j8yxgpf08lgsy5hgp0jdy0ldybsqflw2q8vdd3219n67v"; depends=[htmltools lubridate reactR shiny]; };
+  shinyDatetimePickers = derive2 { name="shinyDatetimePickers"; version="1.2.0"; sha256="1vl61mp3skpzq7cbcxz6ylkiajj7krk00ci9kzqb8d0hynrgx1ii"; depends=[htmltools lubridate reactR shiny]; };
   shinyEffects = derive2 { name="shinyEffects"; version="0.2.0"; sha256="1ajar09hmrk7vcw89wkgvkz2yl0cfnkz915b57w1lmbvpxzgsq3i"; depends=[htmltools shiny]; };
   shinyExprPortal = derive2 { name="shinyExprPortal"; version="1.1.0"; sha256="0740qzwz2wcl5avby2x50kjg51la6nfzz92lfk2ysnfvq58ph6aa"; depends=[bslib cli config data_table dplyr DT htmltools iheatmapr markdown qvalue Rfast rlang shiny shinyhelper tidyr vegawidget yaml]; };
   shinyFeedback = derive2 { name="shinyFeedback"; version="0.4.0"; sha256="1xfznq2d4wkk0b0y4k25rwg4d3bhn3gxlkf3chfqk44f4rgril11"; depends=[fontawesome htmltools jsonlite shiny]; };
@@ -17932,14 +18215,14 @@ in with self; {
   shinyHeatmaply = derive2 { name="shinyHeatmaply"; version="0.2.0"; sha256="1n7c7dvvb9kqay2phcf0bkwi990x1cjl7js6pq05xx7rli5bc5h4"; depends=[dplyr heatmaply htmltools plotly readxl rmarkdown shiny xtable]; };
   shinyHugePlot = derive2 { name="shinyHugePlot"; version="0.2.6"; sha256="1sf26jz2jbyrs11a1gricnb3iq4106cpf10kbhqx0hy12q47lk1y"; depends=[assertthat bit64 data_table dplyr htmltools jsonlite lazyeval nanotime plotly purrr R6 rlang shiny shinyjs stringr tibble tidyr tidyselect]; };
   shinyIRT = derive2 { name="shinyIRT"; version="0.1"; sha256="01x7nhjs1dx2ldwznhbavc5vzqhgkn73xg395vlf2hgzbxa2ydvj"; depends=[irtoys magrittr mirt psych readxl shiny shinycssloaders shinydashboard]; };
-  shinyInvoice = derive2 { name="shinyInvoice"; version="0.0.4"; sha256="1s1zmjp37px2wksa4acw3jng659k5zgm1a8pk23kb4f9kr7hjpfd"; depends=[dplyr lubridate quantmod rlang shiny stringr tibble]; };
+  shinyInvoice = derive2 { name="shinyInvoice"; version="0.0.5"; sha256="024dnyrdkb4ws0glj6yib0fxz22biysvndsppffdhxri3afvs2by"; depends=[dplyr lubridate quantmod rlang shiny stringr tibble]; };
   shinyKGode = derive2 { name="shinyKGode"; version="1.0.5"; sha256="004zwz4kqfijzvvwkq8v1gi25w1wrdlg8230g93w36gbi6cl2vk1"; depends=[ggplot2 gridExtra KGode mvtnorm pracma pspline reshape2 shiny shinyjs XML]; };
   shinyKnobs = derive2 { name="shinyKnobs"; version="0.1.3"; sha256="1rxlvq4vr87krf7d6mpx0y53hyz8q1jnx6nv7mlhc1ck13q6fgac"; depends=[htmltools shiny]; };
   shinyLP = derive2 { name="shinyLP"; version="1.1.3"; sha256="1cdi9dbaz1q71c0wb5a910xz3rspqgqxdk14ibhh06lb0hs9n4nc"; depends=[shiny]; };
   shinyML = derive2 { name="shinyML"; version="1.0.1"; sha256="086iavycv1gd6scfsixf7cmw0s5a4dc6x5cylfasxrzgiixd76c9"; depends=[argonDash argonR data_table dplyr DT dygraphs ggplot2 h2o lubridate plotly shiny shinycssloaders shinyjs shinyWidgets sparklyr tidyr]; };
-  shinyMatrix = derive2 { name="shinyMatrix"; version="0.6.0"; sha256="17v7gg5bli6x3w063id804859m6g07i9ksbm2jyb65489pjgpadk"; depends=[jsonlite shiny]; };
+  shinyMatrix = derive2 { name="shinyMatrix"; version="0.8.0"; sha256="0dlmih1xf49vaw27r83dyzbz7w6wfvz06iz214pcp0xp51hx37gw"; depends=[jsonlite shiny]; };
   shinyMergely = derive2 { name="shinyMergely"; version="0.2.0"; sha256="1rvv5lcbb17i263xx1zn9524iwpmw56xwh0b2qii8096l20w6cnd"; depends=[shiny]; };
-  shinyMobile = derive2 { name="shinyMobile"; version="1.0.1"; sha256="1nsvqcv6bspmbgkjrw4ysm08g1d2qf68rh8bdk0kvc27shzyw33z"; depends=[gplots htmltools httr jsonlite magrittr shiny]; };
+  shinyMobile = derive2 { name="shinyMobile"; version="2.0.0"; sha256="0n678q4rqf2fxv8mv683byd9zjl7hg6rlvycf3g519griksba5mn"; depends=[gplots htmltools jsonlite lifecycle magrittr shiny]; };
   shinyMolBio = derive2 { name="shinyMolBio"; version="0.2"; sha256="09lq5pvis450il1agcq5n9cilnq84rfv08w2dz1d0bbq1qgrgnvg"; depends=[checkmate dplyr plotly purrr RColorBrewer RDML shiny stringr whisker]; };
   shinyMonacoEditor = derive2 { name="shinyMonacoEditor"; version="1.1.0"; sha256="12inzz9vrxi1465l82fafjva198qxyzwailx1s0fm58cqzhnqxr6"; depends=[shiny]; };
   shinyNORRRM = derive2 { name="shinyNORRRM"; version="0.8.6"; sha256="1cb6n3bwqfygqc0p25z62nmrrns6hm2by4chi45sl898is5hkhdn"; depends=[pracma shiny shinythemes shinyWidgets Ternary]; };
@@ -17958,10 +18241,10 @@ in with self; {
   shinyTime = derive2 { name="shinyTime"; version="1.0.3"; sha256="04vpq9fpp1iwila9l33cljig3hfyw7lsg03fqny0q260ka8chhgz"; depends=[htmltools shiny]; };
   shinyToastify = derive2 { name="shinyToastify"; version="2.0.0"; sha256="0ipqwgl89pjiycwg78p0db45lbzry989kn6aqjsf79lpvghnk5qs"; depends=[fontawesome htmltools reactR shiny]; };
   shinyTree = derive2 { name="shinyTree"; version="0.3.1"; sha256="0krffsgdv99cvyzdspb9l7cdnq1vibsbmpd4w48r5pi4v8jbvfj6"; depends=[htmlwidgets jsonlite promises shiny stringr]; };
-  shinyWidgets = derive2 { name="shinyWidgets"; version="0.8.3"; sha256="02z8fwvnmi6lacqi6ryxssm1w3mh4vfphjrp3v1d6dij3s3l6z0q"; depends=[anytime bslib htmltools jsonlite rlang sass shiny]; };
+  shinyWidgets = derive2 { name="shinyWidgets"; version="0.8.6"; sha256="1dv0bwp3rxc1c3n05sczvshg5i9mffqxb61r1z2radwmj5c28g46"; depends=[anytime bslib htmltools jsonlite rlang sass shiny]; };
   shinyXYpad = derive2 { name="shinyXYpad"; version="0.2.0"; sha256="08acqbh41379p2jh0wc30m4h7rlx81cf578qc604jxnsvilvjr9n"; depends=[shiny]; };
   shinyaframe = derive2 { name="shinyaframe"; version="1.0.1"; sha256="1flhgsm4q7p5acb41v73pf8ni92y9dwdppxjb9czlz1sxwf03p1s"; depends=[htmltools htmlwidgets shiny]; };
-  shinyalert = derive2 { name="shinyalert"; version="3.0.0"; sha256="1gws8vshnqngm55rnw22qjlqsn9d240p734dnjvsv96d22b8bsnl"; depends=[htmltools knitr shiny uuid]; };
+  shinyalert = derive2 { name="shinyalert"; version="3.1.0"; sha256="1gips6hr8h8njv2hx1dv0nqcmihjknqkkyydhff9cgfgs242g27f"; depends=[htmltools shiny uuid]; };
   shinyanimate = derive2 { name="shinyanimate"; version="0.4.0"; sha256="1n8nf42imw0qcgdh1h0yhqid2g688cxrp22npj3z1mnynmjvsxp9"; depends=[shiny]; };
   shinyauthr = derive2 { name="shinyauthr"; version="1.0.0"; sha256="0apaqjkxpr96kx9indl0pifk5y75gdx5npfcvxfg5k2crpx9vmxk"; depends=[dplyr glue rlang shiny shinyjs sodium]; };
   shinybrms = derive2 { name="shinybrms"; version="1.8.0"; sha256="0qsmgswkk7l7nn4sabisg4gwiqiicjdxi0g96778ad4d4prnx107"; depends=[brms rlang rstan shiny]; };
@@ -17970,7 +18253,7 @@ in with self; {
   shinycssloaders = derive2 { name="shinycssloaders"; version="1.0.0"; sha256="0r3xm273lhdhzbs2mkgw1m2kwb7z1dh1pzya8yxy5vacda1l2ikl"; depends=[digest glue shiny]; };
   shinycustomloader = derive2 { name="shinycustomloader"; version="0.9.0"; sha256="1klx71vr26g0gjf6hbiia1qidqii5d467i1sdjvlrg1hxdcggqff"; depends=[glue shiny]; };
   shinydashboard = derive2 { name="shinydashboard"; version="0.7.2"; sha256="0hrqkwlpb8rnmp5j74p134g4c4cl16icmwc2ip6k1634fa2y8vm5"; depends=[htmltools promises shiny]; };
-  shinydashboardPlus = derive2 { name="shinydashboardPlus"; version="2.0.3"; sha256="10sdb1vddx2ij867pqijr63l4233hw1vnn7mzbs0z23g77x8ra29"; depends=[fresh htmltools lifecycle shiny shinydashboard waiter]; };
+  shinydashboardPlus = derive2 { name="shinydashboardPlus"; version="2.0.4"; sha256="11ckx8il1v4jk26ss0bylk73xb5bh3xd2d5421i5s8wlxlwd0z5q"; depends=[fresh htmltools lifecycle shiny shinydashboard waiter]; };
   shinydbauth = derive2 { name="shinydbauth"; version="1.0.0.1"; sha256="04f8cq5vismbl05cvkd4kh5h1bzank5fhsgfmxdqwpy3jp68a1kf"; depends=[billboarder DT glue htmltools openssl R_utils R6 scrypt shiny yaml]; };
   shinydisconnect = derive2 { name="shinydisconnect"; version="0.1.1"; sha256="1yhppfx8jpvz48iwxnimcwqhj02vqjrfmh4z5rdn9d35p51c8zjc"; depends=[checkmate glue htmltools shiny]; };
   shinydlplot = derive2 { name="shinydlplot"; version="0.1.4"; sha256="1gxr98p2zyvwa6q8a80bz4h1pkgbdn58cwqbd19dbn4liszfxsy8"; depends=[htmltools htmlwidgets plotly shiny shinyBS shinyjs]; };
@@ -17982,28 +18265,28 @@ in with self; {
   shinyhttr = derive2 { name="shinyhttr"; version="1.1.0"; sha256="1snrl7bg1bc5jxqs1c5a2ir6qnf1nq576aigk19k0ms4gb9hh66m"; depends=[httr shinyWidgets]; };
   shinyjqui = derive2 { name="shinyjqui"; version="0.4.1"; sha256="135gwz7syyb6pbn0lkvmq0v1c6r1zivavnqhi1rnzbbzlysi27v1"; depends=[htmltools htmlwidgets jsonlite rlang shiny]; };
   shinyjs = derive2 { name="shinyjs"; version="2.1.0"; sha256="1id9gsrkr28xl80a8794in17rxmmz06zqvd5hlns7mqz3fzhrhky"; depends=[digest jsonlite shiny]; };
-  shinylight = derive2 { name="shinylight"; version="1.1.2"; sha256="0y2gmi8y5b595dca1sch9mzhq2mbbj7mv879md0ajc16ycfi17rp"; depends=[httpuv jsonlite later]; };
+  shinylight = derive2 { name="shinylight"; version="1.2"; sha256="0kqblyxzdknnnhi8ma4aviqrsysnfarz5pfqjzs86wsrp1ghplzj"; depends=[httpuv jsonlite later]; };
   shinylive = derive2 { name="shinylive"; version="0.1.1"; sha256="1hsvcsbzrzv0gb99mfc02sd77mlwcxjqzzr5v2jfr5ajq33q3ffb"; depends=[archive brio fs httr2 jsonlite progress rappdirs rlang]; };
   shinyloadtest = derive2 { name="shinyloadtest"; version="1.1.0"; sha256="0684p9anbc3qdn4rqkxp33nm0d04zb264b3blwa23pa5akis2klq"; depends=[curl dplyr ggplot2 httpuv jsonlite magrittr R6 rlang scales stringr svglite vroom websocket xml2]; };
   shinylogs = derive2 { name="shinylogs"; version="0.2.1"; sha256="1w19z0zw2k3ni7ckg04q7j0jx4k3cm490z0qccj1smq01wn3czjj"; depends=[anytime bit64 data_table digest htmltools jsonlite nanotime shiny]; };
   shinymanager = derive2 { name="shinymanager"; version="1.0.410"; sha256="0nl672dgwj34wm4i3pxk28lv6qw9xsgg3hm0h78q3zdgk8a33kdn"; depends=[billboarder DBI DT htmltools openssl R_utils R6 RSQLite scrypt shiny]; };
   shinymaterial = derive2 { name="shinymaterial"; version="1.2.0"; sha256="0nqakim0cx722sydbv12kgva1nis7h2i0lrvi9c0h54733x7lbza"; depends=[jsonlite sass shiny]; };
   shinymeta = derive2 { name="shinymeta"; version="0.2.0.3"; sha256="1lizg5sjg0f2axr9vk8z4w43lbyim83gd4dzx91dygknv3kgyp89"; depends=[callr fastmap fs htmltools rlang shiny sourcetools styler]; };
+  shinymgr = derive2 { name="shinymgr"; version="1.1.0"; sha256="000r7vh8myc10jxna5h65kjx1sqw45aqjj24brls5vnvz5rg4i3w"; depends=[DBI reactable renv RSQLite shiny shinydashboard shinyjs]; };
   shinymodels = derive2 { name="shinymodels"; version="0.1.1"; sha256="1ydj4ny94y77akbsq0asaz29s3hnkb237icbxsnrh18z2wnyhhll"; depends=[dplyr DT generics ggplot2 glue htmltools magrittr parsnip plotly purrr rlang scales shiny shinydashboard tidyr tidyselect tune yardstick]; };
   shinyobjects = derive2 { name="shinyobjects"; version="0.2.0"; sha256="0fg5gyssia2fqar635vrqgfwpfrk4pqachsgg10y13ljp09lcdm3"; depends=[dplyr glue knitr magrittr pander purrr readr rlang rstudioapi shiny stringr styler tibble tidyr]; };
   shinypanel = derive2 { name="shinypanel"; version="0.1.5"; sha256="003sp6x78mwjf5hl8m4gqwyxlg3zilli6932l7k82s1hbaksar1j"; depends=[htmltools jsonlite shiny shinyBS shinyjs]; };
   shinypanels = derive2 { name="shinypanels"; version="0.5.0"; sha256="1rslz9wl3gx11dm6il77j4k5swxvcfy5mf0zffbs4zk8xjgpzzj6"; depends=[glue htmltools shiny shinyjs]; };
   shinypivottabler = derive2 { name="shinypivottabler"; version="1.2"; sha256="0qjk2xgbcl60aqva5jn0bbrzmcql8kaqs1air2xyjbfj73axsrig"; depends=[colourpicker htmltools openxlsx pivottabler shiny]; };
   shinyquiz = derive2 { name="shinyquiz"; version="0.0.1"; sha256="0d4n15dx2kizl37gvmgwc49b0n99x59xp168an8n3k0h8qzdcyd4"; depends=[cli fontawesome glue htmltools purrr reactable scales shiny shinyjs stringi stringr]; };
-  shinyr = derive2 { name="shinyr"; version="0.3.0"; sha256="1r4xpb5x0711jbh4v8wkfhgg3s7l1sxqr6i90wsh0k0q3501fs2i"; depends=[caret corrplot dplyr e1071 knitr nnet plotly randomForest RColorBrewer shiny shinydashboard tm wordcloud]; };
   shinyrecipes = derive2 { name="shinyrecipes"; version="0.1.0"; sha256="1b4l27qsl1lpssh3jv1pqmw2mq8hanfj0m269yp5618nd5nxd2ck"; depends=[dplyr DT esquisse miniUI purrr recipes rstudioapi shiny shinyglide shinyWidgets sortable stringr tidyr]; };
   shinyreforms = derive2 { name="shinyreforms"; version="0.0.1"; sha256="1g1blc57c6zkca0m52bqkw8jwgpplabns07x1cwkk46dmv6sgqci"; depends=[htmltools R6 shiny]; };
   shinyscreenshot = derive2 { name="shinyscreenshot"; version="0.2.1"; sha256="1pa1fc0yhsdsc2glyj77zsbpl8qv9x2i7qfha7s77k1zif74px88"; depends=[base64enc htmltools jsonlite shiny uuid]; };
   shinyservicebot = derive2 { name="shinyservicebot"; version="0.1.0"; sha256="18xbggiai6ssyl3q0nqhnszxb7zlbffaw0iy3r7vbzswzqx522la"; depends=[digest htmltools htmlwidgets shiny]; };
   shinystan = derive2 { name="shinystan"; version="2.6.0"; sha256="0afm703zriyqprz1zvypir80lq2ylfff3qvj5i7p9n365mm8b150"; depends=[bayesplot colourpicker DT dygraphs ggplot2 gridExtra gtools markdown reshape2 rstan shiny shinyjs shinythemes threejs xtable xts]; };
   shinysurveys = derive2 { name="shinysurveys"; version="0.2.0"; sha256="01bj0g8r71jng03psw9dcjann78divy2xr5yn6y1pa82d96s46b5"; depends=[htmltools jsonlite sass shiny]; };
-  shinytest = derive2 { name="shinytest"; version="1.5.4"; sha256="16nb6xyk941a8vxk79416j7f4165gwf84w5a64i0rcaxyx5i66b6"; depends=[assertthat callr crayon debugme digest htmlwidgets httpuv httr jsonlite parsedate pingr R6 rematch rlang rstudioapi shiny testthat webdriver withr]; };
-  shinytest2 = derive2 { name="shinytest2"; version="0.3.1"; sha256="0d0x9hl6vmf7wc5nbpb9rz0wydxvr6z5sl0hkn9g7d32rl6rwq36"; depends=[callr checkmate chromote cpp11 crayon ellipsis fs globals httr jsonlite pingr R6 rlang rmarkdown shiny testthat withr]; };
+  shinytest = derive2 { name="shinytest"; version="1.6.1"; sha256="0h9ciivic0fg7w5yq9cycdj1fh4zhdg4fz1gkn2fdx87c0d5j7a4"; depends=[assertthat callr crayon debugme digest htmlwidgets httpuv httr jsonlite parsedate pingr R6 rematch rlang rstudioapi shiny testthat webdriver withr]; };
+  shinytest2 = derive2 { name="shinytest2"; version="0.3.2"; sha256="1qrnh9cfgi67szv1yiaqkv10vf1r70i9l88h6dssgiv1q2fw8yx1"; depends=[callr checkmate chromote cpp11 crayon fs globals httr jsonlite pingr R6 rlang rmarkdown shiny testthat withr]; };
   shinythemes = derive2 { name="shinythemes"; version="1.2.0"; sha256="0qr9bfxw8afxns44i2j4msignf6g5qb2nzpay2lpv343rrlqbmip"; depends=[shiny]; };
   shinytitle = derive2 { name="shinytitle"; version="0.1.0"; sha256="1k05s2fmqvz3drnqkxcpxvvmn0sisdqivg7i4x5c6649b97rsbsx"; depends=[shiny]; };
   shinytoastr = derive2 { name="shinytoastr"; version="2.2.0"; sha256="1zcf4ya9anlq6n97iq0b86ybcqbbd2h66vrr41m80zvlkav3z46z"; depends=[shiny]; };
@@ -18015,7 +18298,7 @@ in with self; {
   shoredate = derive2 { name="shoredate"; version="1.1.1"; sha256="1zhfaj2wqpmi3ar71czbss32k00sqv1inj6rvj9kqhzshsi0w3zv"; depends=[ggplot2 ggrepel ggridges ggspatial sf terra]; };
   shortIRT = derive2 { name="shortIRT"; version="0.1.3"; sha256="1z2db31r332dayaprdjrm9r3yihj7jnpk7j106m74q5ckwsaw859"; depends=[dplyr ggplot2 TAM]; };
   shortcuts = derive2 { name="shortcuts"; version="1.4.0"; sha256="0y77napfz1v3s667cmyn8357xg5lncbw1hc3hm5kra6nalhq1jps"; depends=[rstudioapi]; };
-  shorts = derive2 { name="shorts"; version="3.1.0"; sha256="08xya7v51y3zbd889fa011rykf0gd78cjx1c5l7y20avihmbw0vl"; depends=[ggplot2 LambertW minpack_lm purrr tidyr]; };
+  shorts = derive2 { name="shorts"; version="3.2.0"; sha256="1ajqvm6y5djdjh5prci31hyv1ilycn1vf5gniq92gxqhzab7bnxc"; depends=[ggplot2 LambertW minpack_lm purrr tidyr]; };
   shotGroups = derive2 { name="shotGroups"; version="0.8.2"; sha256="0m3n3ja6ny45rdd13s9f7nm1ml3p3y7nisbhfg0fj369wym95r1p"; depends=[boot coin CompQuadForm KernSmooth robustbase]; };
   showimage = derive2 { name="showimage"; version="1.0.0"; sha256="1c0x3iqjdjsz3cdhc02b3qm2pwxjr1q2k87jwvxj9lnzzw81f1pl"; depends=[png]; };
   showtext = derive2 { name="showtext"; version="0.9-7"; sha256="12a8j87ca39fd8vn9ixzfgkbffz8ajyslhsx2hqjry1gzbk864i5"; depends=[showtextdb sysfonts]; };
@@ -18033,7 +18316,7 @@ in with self; {
   sidier = derive2 { name="sidier"; version="4.1.0"; sha256="0zayhvhaq0q00rpgy0z01rhf3lcc3791klc8b30pdj627cl9xj01"; depends=[ape ggmap ggplot2 gridBase igraph network]; };
   sidrar = derive2 { name="sidrar"; version="0.2.9"; sha256="1q3imj1nfjrgs9hxwwzf9bq7pfcyphjj8967mmkwgdyakkpxrzz3"; depends=[httr magrittr rjson rvest stringr xml2]; };
   siebanxicor = derive2 { name="siebanxicor"; version="1.0.0"; sha256="0bnpqqhqvqq9kxvzljzp4d5aw9drh78cwyxyqzdvshijl7mmqjwc"; depends=[httr jsonlite]; };
-  sievePH = derive2 { name="sievePH"; version="1.0.4"; sha256="0lrpk2dx0n8cdgwrshnw41xsg2gd6qbgn1bddvzifnibh082gb27"; depends=[ggplot2 ggpubr scales survival]; };
+  sievePH = derive2 { name="sievePH"; version="1.1"; sha256="0bzf7k3qk8ih9qvkr196wcy8b6wq5q6x6cn311z312713n9jly10"; depends=[ggplot2 ggpubr np plyr Rcpp RcppArmadillo scales survival]; };
   sievetest = derive2 { name="sievetest"; version="1.2.3"; sha256="17qrm7axvlr2yzp8brbibp26f8qdpqm85hc2kjzxm5zqwfvd6dfs"; depends=[]; };
   sift = derive2 { name="sift"; version="0.1.0"; sha256="030vv2rha5d20045bwsp6ihdcgiw9glnchyahpzwym3m6fnkg0y5"; depends=[cpp11 dplyr glue pastecs purrr rlang tibble tidyr tidyselect]; };
   sig = derive2 { name="sig"; version="0.0-6"; sha256="02narc84by24rldna6qi8vyygxfarhbaddv1kdmb1ywhbsq86597"; depends=[]; };
@@ -18041,7 +18324,7 @@ in with self; {
   sigQC = derive2 { name="sigQC"; version="0.1.23"; sha256="0fpci6l0h6047qq7igwmm38rma768l706xfmfdfn1qqgkm5sv0x8"; depends=[biclust circlize class cluster ComplexHeatmap fmsb gplots gridGraphics GSVA KernSmooth lattice MASS mclust moments nnet]; };
   sigclust = derive2 { name="sigclust"; version="1.1.0.1"; sha256="1q3jdalm7cbsl78gssl3jsifh56wyczrlx2ya4p74r4fb6sv9kga"; depends=[]; };
   sigmajs = derive2 { name="sigmajs"; version="0.1.5"; sha256="1d26llpgnj687b8rwgbyhw88zakp334n4a9gabf72qwrg4awm1v5"; depends=[crosstalk dplyr htmltools htmlwidgets igraph jsonlite magrittr purrr scales shiny]; };
-  sigminer = derive2 { name="sigminer"; version="2.3.0"; sha256="1i6qf5g58gi857szlpiqkcv5rfskh2qv53ywx7bxl3hzgy9178lb"; depends=[cli cowplot data_table dplyr furrr future ggplot2 ggpubr maftools magrittr NMF purrr Rcpp rlang tidyr]; };
+  sigminer = derive2 { name="sigminer"; version="2.3.1"; sha256="0fwmq6p6qyz5pq1vhh26ddrivcqaqnfv1bsnhzfplz1glmv6r0xj"; depends=[cli cowplot data_table dplyr furrr future ggplot2 ggpubr maftools magrittr NMF purrr Rcpp rlang tidyr]; };
   sigmoid = derive2 { name="sigmoid"; version="1.4.0"; sha256="067ygikaaniikig1ypd6ry187981xar7i539917zf0avszshisxq"; depends=[]; };
   signal = derive2 { name="signal"; version="1.8-0"; sha256="1126p631zm0wc4h9ghqai5yb9vklpz676fygb0d0aavs2raaijw9"; depends=[MASS]; };
   signalHsmm = derive2 { name="signalHsmm"; version="1.5"; sha256="1d4v6cbvcbi8pb5zmn58s01h3jb0kv7yr7qvcnx4p2v82knvhik7"; depends=[Rcpp seqinr shiny]; };
@@ -18055,10 +18338,11 @@ in with self; {
   siie = derive2 { name="siie"; version="0.4.0"; sha256="1i095ys39q9p9bz12ia93k45ayl8cip956vh5wylw05m82vms2f0"; depends=[data_table]; };
   siland = derive2 { name="siland"; version="3.0.2"; sha256="1dhjwl8akkziiax7a369rbxy8bmmnggnnd44v3zj1d2fqskskvdg"; depends=[fasterize fields ggforce ggplot2 lme4 raster reshape2 sf sp]; };
   silicate = derive2 { name="silicate"; version="0.7.1"; sha256="193n0gh2kg5900si1m94cliyh0fbmp9dybs17vl1xxn34pg9c9s9"; depends=[crsmeta decido dplyr gibble gridBase magrittr purrr rlang tibble unjoin]; };
+  sim_BA = derive2 { name="sim.BA"; version="0.1.0"; sha256="0rwr77n7bg5w1f8ikz88lzm4kq32nxs4h2zr2fqwrwwwwp8paixf"; depends=[chk cobalt ggplot2 pbapply rlang scales survival]; };
   sim1000G = derive2 { name="sim1000G"; version="1.40"; sha256="1avq6xfc34izavvp9vb5ccc2b9nc4m7cwr06ygnsmpgwi5nswbb8"; depends=[hapsim MASS readr stringr]; };
   sim2Dpredictr = derive2 { name="sim2Dpredictr"; version="0.1.1"; sha256="14v35ngwj27j2r4mszwjz1dnk4iydakk5qf4z0swwi931q1jiphc"; depends=[dplyr MASS matrixcalc Rdpack spam tibble]; };
   simCAT = derive2 { name="simCAT"; version="1.0.0"; sha256="1ngdfzackzm82v7qs8809w3k70hayzan4zsvf061w04wvlhgzllp"; depends=[dplyr mirt mirtCAT shiny shinycssloaders]; };
-  simDAG = derive2 { name="simDAG"; version="0.1.1"; sha256="0lh2q4zb88rpvh9bzlrhgjdjsh5v1pdjw9clzli7nrb90d2317l3"; depends=[data_table dplyr Rfast rlang]; };
+  simDAG = derive2 { name="simDAG"; version="0.1.2"; sha256="18zbqpvndblrqmdz7hsbc0kf1w8v6a75z4x9yr95f3saazirrj6p"; depends=[data_table igraph Rfast rlang]; };
   simDNAmixtures = derive2 { name="simDNAmixtures"; version="1.0.1"; sha256="17865ihl8bv3nqhsqy3dpi82x4q1q5dzff6r3qygdnmh0ymhr7d2"; depends=[dplyr pedtools readr]; };
   simET = derive2 { name="simET"; version="1.0.3"; sha256="0l3mk2n1ik9xg660js97n03gix5im2f42q2r7hs9gvhs0g2552kp"; depends=[dplyr ggplot2 ggpmisc ggpubr lubridate magrittr plyr rlang stringr tidyr]; };
   simEd = derive2 { name="simEd"; version="2.0.1"; sha256="1r4ahsfkrymhachdcjj7nvdiplxjla0jlsay3bi04n6rrl758rny"; depends=[rstream shape]; };
@@ -18073,10 +18357,10 @@ in with self; {
   simPH = derive2 { name="simPH"; version="1.3.13"; sha256="086060f78f1dmpa6cyhx160blchckplw04gs6997f1hwzswci2l2"; depends=[data_table dplyr ggplot2 gridExtra lazyeval MASS mgcv quadprog stringr survival]; };
   simPop = derive2 { name="simPop"; version="2.1.3"; sha256="0rgaalkaxxh92yryzd39qnpahzi7d2bqnnsgx4i5rai2vrj1hqfi"; depends=[colorspace data_table doParallel e1071 EnvStats fitdistrplus foreach lattice MASS matrixStats nnet partykit ranger Rcpp RcppArmadillo vcd VIM wrswoR xgboost]; };
   simRestore = derive2 { name="simRestore"; version="1.1.4"; sha256="1psw58k5i7vj7a49cski28dxwryi6qk167w2v003ja209pdpbfx8"; depends=[Rcpp shiny subplex tibble]; };
-  simStateSpace = derive2 { name="simStateSpace"; version="1.2.0"; sha256="1da0zsyqpnpnndz10yk0ccfhmldg263qr83760zf3pa14fzcxb7s"; depends=[Rcpp RcppArmadillo]; };
+  simStateSpace = derive2 { name="simStateSpace"; version="1.2.1"; sha256="1151r60vrb3b9crjb77a4aba6mzv13wq5awd0hrh8684h6pz9f76"; depends=[Rcpp RcppArmadillo]; };
   simTargetCov = derive2 { name="simTargetCov"; version="1.0.1"; sha256="0gdqqwg9i2hga6l4s5x7wbbsm20b3sgwrci1g6hc04x1h9aawiw2"; depends=[MASS]; };
   simTool = derive2 { name="simTool"; version="1.1.7"; sha256="0q093dlfj23zq3w4schn1ycff79vgzr2s3wgbz2qz4s3b7fddk70"; depends=[dplyr purrr tibble tidyr vctrs]; };
-  simaerep = derive2 { name="simaerep"; version="0.4.3"; sha256="1s13d8f4izwzrav7rhmx3s8nv36m5kwz806r85k7gqn24lnaa5ra"; depends=[cowplot dplyr forcats furrr ggplot2 knitr magrittr progressr purrr RColorBrewer rlang stringr tibble tidyr]; };
+  simaerep = derive2 { name="simaerep"; version="0.5.0"; sha256="1r0hgf8i7grpiww42l28az4pr81s998ghyrmbrva8ap27vj3r269"; depends=[cowplot dplyr forcats furrr ggplot2 knitr magrittr progressr purrr RColorBrewer rlang stringr tibble tidyr]; };
   simboot = derive2 { name="simboot"; version="0.2-8"; sha256="1kw2sy13vsys2rs0ss7016y8k8ykcbp6v959ylbp86dl9bnh3vpr"; depends=[boot mvtnorm]; };
   simcausal = derive2 { name="simcausal"; version="0.5.6"; sha256="0r87i5m8sd9bf8ddlkgq9dl0pglhxl9pj5b0vx79va9r5wb55vgk"; depends=[assertthat data_table igraph Matrix R6 stringr]; };
   simcdm = derive2 { name="simcdm"; version="0.1.2"; sha256="1pwh1ial7naanqpxhlsn6ij2i35xnj8hwyhvipzc7csd5l5ss5z1"; depends=[Rcpp RcppArmadillo]; };
@@ -18133,11 +18417,11 @@ in with self; {
   simsem = derive2 { name="simsem"; version="0.5-16"; sha256="0scjb308pb8ivy5blbk1wj9d1yxcqknhvh95a3728crfq2xcqnh0"; depends=[lavaan]; };
   simsl = derive2 { name="simsl"; version="0.2.1"; sha256="12dc9lcy11g1yynycvcqm62npq0v13bg6fnykb5m9ijwga4x51il"; depends=[mgcv]; };
   simstandard = derive2 { name="simstandard"; version="0.6.3"; sha256="1l1vny3csrr7krfpn25rzysmwjfv6mclf51y3mq02cimcwq9fzcy"; depends=[lavaan magrittr mvtnorm purrr rlang tibble]; };
-  simstudy = derive2 { name="simstudy"; version="0.7.1"; sha256="0917x93dy3c83b0kfbsgx7qfilwik0s2fgmjkc6xmj4d7zfbsbyf"; depends=[backports data_table fastglm glue mvnfast pbv Rcpp]; };
+  simstudy = derive2 { name="simstudy"; version="0.8.0"; sha256="1xdqk5jikhvxxd78frfj3s3m7aigkhkavzryifhzv47l22rmpkcb"; depends=[backports data_table fastglm glue mvnfast pbv Rcpp]; };
   simsurv = derive2 { name="simsurv"; version="1.0.0"; sha256="16b2a3br107hy2fc0vann9wf5h9kb5j76baa37g1sfc0h19kg6kr"; depends=[]; };
   simtimer = derive2 { name="simtimer"; version="4.0.0"; sha256="1c5017xmh4767d75k4rs1pssyn7p5w41bcsjjmwk4c9g6w1jgx1w"; depends=[]; };
   simtrait = derive2 { name="simtrait"; version="1.1.3"; sha256="0zwas19q7lmmmznv44km1f9wj4vq34hl5zlakfs98lkp7f0z29nx"; depends=[PRROC]; };
-  simtrial = derive2 { name="simtrial"; version="0.3.2"; sha256="0d0fvrlbpj4zq32ifx7p1wd1h1xg83lkvl3mp92vck1y0ap1yd2f"; depends=[data_table doFuture foreach future mvtnorm Rcpp survival]; };
+  simtrial = derive2 { name="simtrial"; version="0.4.1"; sha256="1gsd7ykqws7y5ggblbjjrg3yid9fj7samrnbk7fb4dnknvv8lgls"; depends=[data_table doFuture foreach future mvtnorm Rcpp rlang survival]; };
   simts = derive2 { name="simts"; version="0.2.2"; sha256="12v6djqij8w0vy25pndri4kng7zq7bncvbg9h28vg1m8sk3nlfc4"; depends=[broom dplyr magrittr purrr Rcpp RcppArmadillo robcor scales tidyr]; };
   simuclustfactor = derive2 { name="simuclustfactor"; version="0.0.3"; sha256="0yjcknqx44zjzk1ch8bnfbpf7dg34nwdhsmbnhyskzc67022g470"; depends=[Rdpack]; };
   simukde = derive2 { name="simukde"; version="1.3.0"; sha256="0mpj8pfrlagc97v53idsiypjcpbaj07y6klanph5lkiwzsgbz8sv"; depends=[ks MASS mvtnorm]; };
@@ -18147,7 +18431,7 @@ in with self; {
   simule = derive2 { name="simule"; version="1.3.0"; sha256="0jzyk1r2jfs7qivmy9x44c5bagy55jpy3hf0xpl9xnk409c3y2wd"; depends=[igraph lpSolve pcaPP]; };
   sinaplot = derive2 { name="sinaplot"; version="1.1.0"; sha256="0zfq6l8wjvdj7rndsfyh0a2xjlxmn2ij1q50hg3xjfpwrjxcsck8"; depends=[plyr]; };
   sinar = derive2 { name="sinar"; version="0.1.0"; sha256="0dywgqmvbrsygyvnln2mc5p6gaxvphr5byx7hkf0nkil54f2jzdf"; depends=[MASS numDeriv]; };
-  sindyr = derive2 { name="sindyr"; version="0.2.3"; sha256="0dk7zwj5hdr7fcxhdj9klml11sciyaj0v59dfgvnhhkxndwwdbrr"; depends=[arrangements crqa igraph matrixStats plot3D pracma]; };
+  sindyr = derive2 { name="sindyr"; version="0.2.4"; sha256="1jhy7p5f4hphvl05gibzqva2szzman62y2j5irxk86fmwj9kqajc"; depends=[arrangements igraph matrixStats pracma]; };
   sinew = derive2 { name="sinew"; version="0.4.0"; sha256="14ccm7i3zkjmj077b9ba2557n4v77k7646vylnrd22f20dzr52ba"; depends=[cli crayon rematch2 rstudioapi sos stringi yaml]; };
   singR = derive2 { name="singR"; version="0.1.2"; sha256="1xfmgavcm63imc5a57vk9x3yvdsf2y9599ipmimivdi6q0cxv7bc"; depends=[clue gam ICtest MASS Rcpp RcppArmadillo]; };
   singcar = derive2 { name="singcar"; version="0.1.5"; sha256="0ixarjv8jxxpnc6imkk0gisjl0xv0bd9ah7y1sxdj2c8kb9d8k3n"; depends=[CholWishart MASS withr]; };
@@ -18164,6 +18448,7 @@ in with self; {
   sisal = derive2 { name="sisal"; version="0.48"; sha256="1fh35ndra58dryw222ng7ys3gx1izyk5789k30lyd4n8wqy6sjjd"; depends=[boot digest lattice mgcv R_matlab R_methodsS3]; };
   sisireg = derive2 { name="sisireg"; version="1.1.1"; sha256="1jw1nl8l7kh5fa3hh7zh418brck6zayhhqm50nqhbghlmjs7y67i"; depends=[raster reticulate zoo]; };
   sistec = derive2 { name="sistec"; version="0.2.0"; sha256="0y43anin9vybiivf3jrxg19i9z4smmhhjvp52gci6icpn839kr8x"; depends=[dplyr openxlsx rlang shiny stringi stringr]; };
+  sisti = derive2 { name="sisti"; version="0.0.1"; sha256="020m38k1sndrhz42dg5w12x2gjyhxiissm07v0y4ps7wvqlp0hpa"; depends=[tibble]; };
   sistmr = derive2 { name="sistmr"; version="0.1.1"; sha256="08kajkb0ypbzcyxs9wv6mdz51r7zj01k2ahskidhlqww80rd407r"; depends=[BlandAltmanLeh dplyr ggbeeswarm ggplot2 ggrepel rlang scales]; };
   sitar = derive2 { name="sitar"; version="1.4.0"; sha256="14qc5qy21qyj4gml0gwfn8izbsmzwy30ddc7mazhszi487jrcrp0"; depends=[dplyr forcats ggplot2 glue magrittr nlme purrr rlang rsample tibble tidyr]; };
   sitepickR = derive2 { name="sitepickR"; version="0.0.1"; sha256="1cqvf4d2jpav53v7h7vzknm8cbr5kqk1djqkhmjrwv2zjnx3fg97"; depends=[data_table dplyr ggplot2 magrittr MatchIt reshape2 sampling scales stringr tidyr tidyselect]; };
@@ -18172,45 +18457,48 @@ in with self; {
   sitools = derive2 { name="sitools"; version="1.4"; sha256="0c0qnvsv06g6v7hxad96fkp9j641v8472mbphvaxa60k3xc7ackb"; depends=[]; };
   sitree = derive2 { name="sitree"; version="0.1-14"; sha256="0b2dzws3n9q5ss8bna8prq0r0xg5ngqgkrwg92q51r9cv83vw1rf"; depends=[data_table ggplot2]; };
   sitreeE = derive2 { name="sitreeE"; version="0.0-8"; sha256="0jwxca8y0nn1aqx4c6gikgf31nb4dll543m0akd4jmqx6fc450kd"; depends=[data_table sitree]; };
-  sits = derive2 { name="sits"; version="1.4.2-1"; sha256="135qk50vbnyxnl2bkxwz00j4z36ynhiidm1yyfjvssxq3i3m6878"; depends=[dplyr gdalUtilities lubridate purrr Rcpp RcppArmadillo rstac sf showtext slider sysfonts terra tibble tidyr torch yaml]; };
+  sits = derive2 { name="sits"; version="1.5.0"; sha256="0ym6dkw1nvijvhyskiwp9m4pys9gmsxqhjwmqs6n670mxfnqibss"; depends=[dplyr gdalUtilities lubridate purrr Rcpp RcppArmadillo rstac sf showtext slider sysfonts terra tibble tidyr torch yaml]; };
   sivs = derive2 { name="sivs"; version="0.2.10"; sha256="1mf881yy1f6s4f6bx4p5010f45pg09lww3npkkp1s11zpawgmdjq"; depends=[doParallel foreach glmnet pROC varhandle]; };
   sizeMat = derive2 { name="sizeMat"; version="1.1.2"; sha256="1vbndadsn80ddrg471vp1qxf0gan38w6dkjk1p2npvfb47wdjj2h"; depends=[MASS matrixStats MCMCpack]; };
-  sjPlot = derive2 { name="sjPlot"; version="2.8.15"; sha256="10lvn8dnckpjjpapmf0d2zwjkzjvs4iiswd3rmijzviz4ichhxjs"; depends=[bayestestR datawizard dplyr ggeffects ggplot2 insight knitr MASS parameters performance purrr rlang scales sjlabelled sjmisc sjstats tidyr]; };
+  sjPlot = derive2 { name="sjPlot"; version="2.8.16"; sha256="093nmn1gq8i4kr5nhwby883rxpdiyb959shqvfnvplwcnnv762ji"; depends=[bayestestR datawizard dplyr ggeffects ggplot2 insight knitr MASS parameters performance purrr rlang scales sjlabelled sjmisc sjstats tidyr]; };
   sjSDM = derive2 { name="sjSDM"; version="1.0.5"; sha256="1qrslxrminbzvqkcngx875kkbaj9f2wd8svdwsd0706v5w72pisg"; depends=[abind checkmate cli crayon ggplot2 ggtern mathjaxr Metrics mgcv mvtnorm reticulate rstudioapi]; };
   sjdbc = derive2 { name="sjdbc"; version="1.6.1"; sha256="0cz5qc5lsipd3nlkzj8j03xmpzxp52c3q5av8pr7fm3vsdclawfk"; depends=[rJava]; };
   sjlabelled = derive2 { name="sjlabelled"; version="1.2.0"; sha256="1va86q5wddyvqgdpy8d0an2c7v1qbb4hpn0ai6y1v5v1ff87w73k"; depends=[datawizard insight]; };
-  sjmisc = derive2 { name="sjmisc"; version="2.8.9"; sha256="1gzkq95ckxr0vhrzggflzli9hs7zr8c0yym9zn1wf74yrr0mgc3q"; depends=[dplyr insight magrittr purrr rlang sjlabelled tidyselect]; };
-  sjstats = derive2 { name="sjstats"; version="0.18.2"; sha256="0a1y6bqyvgs0avzasr8g6vwcxcnj4d9g0rfz2qiznwadpjzqw66h"; depends=[bayestestR broom datawizard dplyr effectsize emmeans insight lme4 magrittr MASS modelr parameters performance purrr rlang sjlabelled sjmisc tidyr]; };
+  sjmisc = derive2 { name="sjmisc"; version="2.8.10"; sha256="12y5aa820h95dbak9zd2rbg1hc0636b2dpg0mn9mkb76a4ssnr1d"; depends=[datawizard dplyr insight magrittr purrr rlang sjlabelled tidyselect]; };
+  sjstats = derive2 { name="sjstats"; version="0.19.0"; sha256="07qv32gnrhrl21zgj1xp1gqdqjn6ax1nf40s11nmpag8r0xgvqnk"; depends=[datawizard effectsize insight parameters performance]; };
   sjtable2df = derive2 { name="sjtable2df"; version="0.0.3"; sha256="1vb2wr122pfn6qald36mn1dkz6gygp81skl11halrwa7cvxwkl7z"; depends=[data_table kableExtra magrittr rlang rvest xml2]; };
   skater = derive2 { name="skater"; version="0.1.2"; sha256="1hw6hk2v6jxhv86dzjpqnakkrbp2k7gayg2zffpyd2z8l4mpgmxd"; depends=[corrr dplyr kinship2 magrittr purrr readr rlang tibble tidyr]; };
   skedastic = derive2 { name="skedastic"; version="2.0.2"; sha256="1ln0scwgvpif610jgwdl0rzlx41i8w2ri1vaq0kl11vg69xp5105"; depends=[bazar broom caret CompQuadForm inflection MASS Matrix mgcv osqp pracma quadprog quadprogXT Rdpack Rfast ROI ROI_plugin_qpoases slam]; };
   skeletor = derive2 { name="skeletor"; version="1.0.4"; sha256="1jfbfbkjx8mdwamsrkhvcnyn470in702vgcyw3g2dbgs84gl29q8"; depends=[]; };
-  skellam = derive2 { name="skellam"; version="0.2.0"; sha256="0r5wbs5h7xc3k2vjxd4axwnxr9cmwm008fcyj1vyixkg8fa680gx"; depends=[]; };
+  skellam = derive2 { name="skellam"; version="0.2.3"; sha256="0hmms6709v7mzp6qgcxljjxq4nccqiwphn1nk3jh6mp2n0zvaqjd"; depends=[]; };
   sketch = derive2 { name="sketch"; version="1.1.20.3"; sha256="03ssz4vwrcfcqs5lvnrkm7yqc8ir62kz3zp8aycgl88rw5qm9003"; depends=[base64enc glue htmltools jsonlite magrittr purrr rlang rstudioapi shiny V8]; };
   sketcher = derive2 { name="sketcher"; version="0.1.3"; sha256="011lx15whrdj5q5h33h9brkzbn2fnpm1nx9ip1v9xl5xfkbj7952"; depends=[downloader dplyr imager jpeg magrittr png readbitmap stringr]; };
   sketching = derive2 { name="sketching"; version="0.1.2"; sha256="0k2rdiawj84zhfik3qzqqzabm9sdjwnr008p0fhaaqpifbr0q5xj"; depends=[MASS phangorn Rcpp]; };
-  sketchy = derive2 { name="sketchy"; version="1.0.2"; sha256="0nvf87w3zcnly4b39rg8pa1651pk8zixkn6rj7y2hbf1qiyjwsqg"; depends=[crayon git2r knitr packrat stringi]; };
+  sketchy = derive2 { name="sketchy"; version="1.0.3"; sha256="1vr3vwzbm1k1g05wxdv0y543zn1fspprr121i8pxqmgbyhcs1i65"; depends=[cli crayon git2r knitr packrat remotes rmarkdown stringi xaringanExtra]; };
   skewMLRM = derive2 { name="skewMLRM"; version="1.6"; sha256="16gr0haag0pqw7k7nvfqlc6s5i92lkpd0ghkgvlwgql8jzw7zmlk"; depends=[clusterGeneration doParallel foreach MASS matrixcalc moments mvtnorm]; };
   skewlmm = derive2 { name="skewlmm"; version="1.1.0"; sha256="04jxf7bwh71r33s1s2xhiy0ipfaqz97ya86rr4m0f5kxnb942ggv"; depends=[dplyr furrr future ggplot2 ggrepel haven matrixcalc moments MomTrunc mvtnorm nlme numDeriv optimParallel purrr relliptical TruncatedNormal]; };
   skewsamp = derive2 { name="skewsamp"; version="1.0.0"; sha256="1b41zjjnn7vphcrbvrvqx66jfd9fb8v22xmgql6wh26a2y81bman"; depends=[]; };
   skewt = derive2 { name="skewt"; version="1.0"; sha256="1jaldnqgjzky2vr290vzpzdwsa5s92l977v6k2yhpzmmw4k4x3l7"; depends=[]; };
   skilljaR = derive2 { name="skilljaR"; version="0.1.2"; sha256="04x1hfg0kvbr5c1abl0kfh1x07kvgyzhxzd38j6blg16awcvfxva"; depends=[dplyr httr jsonlite magrittr purrr]; };
   skimr = derive2 { name="skimr"; version="2.1.5"; sha256="11w32vfwm6pz4cvmm60na6pjbyjvw2xq489ij5xqzx0n3pma7wq6"; depends=[cli dplyr knitr magrittr pillar purrr repr rlang stringr tibble tidyr tidyselect vctrs]; };
+  skipTrack = derive2 { name="skipTrack"; version="0.1.0"; sha256="0s5w2jixm52pbpi2cmgf9s1d6prs49dz4kcrr135d0nbdx34ma2w"; depends=[doParallel foreach genMCMCDiag ggplot2 ggtext glmnet gridExtra LaplacesDemon lifecycle mvtnorm optimg]; };
   sklarsomega = derive2 { name="sklarsomega"; version="3.0-2"; sha256="027rx1x5hsn0qx7s6s2sqf13p49jbhi6g7w0fzfqf619p3fzkghg"; depends=[dfoptim extraDistr hash LaplacesDemon Matrix mcmcse numDeriv spam]; };
   skm = derive2 { name="skm"; version="0.1.5.4"; sha256="06g3bdncq2r56d8k3dr87gqnibypbsps0gj4jxkw9q1sq1yaff3v"; depends=[data_table magrittr plyr Rcpp RcppArmadillo RcppParallel]; };
   skmeans = derive2 { name="skmeans"; version="0.2-16"; sha256="0rigfkjq41ivj2hz35rqak23mmzyz15ic5izzkm3vxbwhsmk9ars"; depends=[clue cluster slam]; };
-  skpr = derive2 { name="skpr"; version="1.6.2"; sha256="0hc3lk9d1c92cfv7cvk85jb9pp8ilh8sgwjg3vgr11yxnzay7hmk"; depends=[car doFuture doParallel doRNG foreach future iterators lazyeval lme4 lmerTest magrittr progress progressr Rcpp RcppEigen scales survival viridis]; };
+  skpr = derive2 { name="skpr"; version="1.7.1"; sha256="1g19pq73map54sypkarvyw191zgf4cbmr1hskr8amg75wvw8mg11"; depends=[car doFuture doParallel doRNG foreach future iterators lme4 lmerTest magrittr progress progressr Rcpp RcppEigen scales survival viridis]; };
   skylight = derive2 { name="skylight"; version="1.2"; sha256="1yh3hk1z4c25pkb9gzyc16a68jd1za4h9z4l9xh5avkg68ixff5j"; depends=[]; };
   skynet = derive2 { name="skynet"; version="1.4.3"; sha256="08a5p3rk0qhsxawdxj5sfw07rdk56x6viy37w1b0hxqaxxxv239i"; depends=[data_table dplyr geosphere ggplot2 ggrepel httr igraph leaflet maps RCurl stringr]; };
   skyscapeR = derive2 { name="skyscapeR"; version="1.0.0"; sha256="1x3s003wdmnf0h1k3gl6cvd35g516y7v2yzahr3wxk2np832kjli"; depends=[doParallel foreach httr MESS numDeriv oce plotrix png RColorBrewer rootSolve swephR zoo]; };
   slackr = derive2 { name="slackr"; version="3.3.1"; sha256="08yyl0s2rb7yzq9zd173avdxrl8z59dknsxbmgg4m94wf09xwy55"; depends=[cachem dplyr httr jsonlite magrittr memoise rlang tibble withr]; };
   slam = derive2 { name="slam"; version="0.1-50"; sha256="1ggqcf8l1z2hpi7qy4mg0d2ps48bjjb8z1y1xz6fq162cqrbz6bq"; depends=[]; };
   slanter = derive2 { name="slanter"; version="0.2-0"; sha256="024dkman0r5qzc215gw0ds932vdaz8krrhv64fjw9pni37ixc3mf"; depends=[Matrix pheatmap pracma]; };
+  slap = derive2 { name="slap"; version="2024.4.1"; sha256="1w1av896q4jfc1kv3mpisqra6s3cbcr7i7x8nm24hwq24bx0kdik"; depends=[cli rlang]; };
   slasso = derive2 { name="slasso"; version="1.0.0"; sha256="0k83szk6jzvn5353p9ia2ipmjyl65ivx95rj62rq8dyjfrdyzs0d"; depends=[cxxfunplus fda fda_usc inline MASS matrixcalc matrixStats plot3D Rcpp RcppArmadillo]; };
+  slca = derive2 { name="slca"; version="1.0.0"; sha256="0wllwz9cn9wvxwb4gd4g3blwhaplmfdxx06jki41ii64sq9cxbyq"; depends=[DiagrammeR magrittr MASS Rcpp]; };
   slcm = derive2 { name="slcm"; version="0.1.0"; sha256="0avbgsf3hgvpamw6cbs9l7l8s8bc89sqyjskj7mhjbvxsjdqd416"; depends=[Rcpp RcppArmadillo]; };
   sld = derive2 { name="sld"; version="1.0.1"; sha256="1sx3wmpc89hjabj476dhhmsp0mxbfpqxr65y63jrqngx1c3zgbx1"; depends=[lmom]; };
   sleekts = derive2 { name="sleekts"; version="1.0.2"; sha256="0syk244xrsv8hz5sxm7wizk0kyn1nc6z4c63c8xn57fz130zj75k"; depends=[]; };
-  sleeperapi = derive2 { name="sleeperapi"; version="1.0.4"; sha256="0hllaz584xqdj9inmibdm9pd0vcirwz4jdk2prc5cwjavxhkj51y"; depends=[httr jsonlite plyr]; };
+  sleeperapi = derive2 { name="sleeperapi"; version="1.1.1"; sha256="1lmpcpd407bz7fwb20c8m5vaxq7l7sgna7jmh6mjy579az0fzllj"; depends=[dplyr DT htmltools htmlwidgets httr jsonlite plotly purrr RColorBrewer rlang scales shiny shinycssloaders shinyWidgets stringr tidyr]; };
   sleepr = derive2 { name="sleepr"; version="0.3.0"; sha256="1ka4pl6a09d1qga5svcirc5ywmzz9pcml09053745lz3p1v8fnn3"; depends=[behavr data_table]; };
   sleepwalk = derive2 { name="sleepwalk"; version="0.3.2"; sha256="1y0945r9ksz8x6w5rx31sm9x2q2ydd9sc1fwa0paq5f11hygss5d"; depends=[cowplot ggplot2 httpuv jrc jsonlite scales]; };
   sleev = derive2 { name="sleev"; version="1.0.3"; sha256="0irc0k4asml5vfqwkv5rxw6xv1dj6sllravyggg49cdqfbhwcv3w"; depends=[Rcpp RcppArmadillo RcppEigen]; };
@@ -18247,10 +18535,10 @@ in with self; {
   smartsnp = derive2 { name="smartsnp"; version="1.1.0"; sha256="1gzzhys6bja55iclkji254kri6r3iamiw7bv881mp615wi9r3hx2"; depends=[bootSVD data_table foreach Rcpp RcppArmadillo Rfast RSpectra vegan vroom]; };
   smatr = derive2 { name="smatr"; version="3.4-8"; sha256="0qqqbg65flxh48sw7x90zvgzbpcfzb1811h0pz3zlhdw9a7khs9n"; depends=[]; };
   smbinning = derive2 { name="smbinning"; version="0.9"; sha256="1sr0nsqqzxdf402g9qx1ycigbh330idl9n2cyli4x4zxj1nqm3yv"; depends=[Formula gsubfn partykit sqldf]; };
-  smcfcs = derive2 { name="smcfcs"; version="1.7.1"; sha256="1i57rgibm5fqdw8gk61f79mvz60ygzgbfsb2nyckfxiamy25nfq2"; depends=[abind brglm2 checkmate MASS rlang survival VGAM]; };
+  smcfcs = derive2 { name="smcfcs"; version="1.8.0"; sha256="0l658ynkf3lb1nckfrgysj19m6735fi2k48r7l5qaf6jq7f3l3bh"; depends=[abind brglm2 checkmate MASS rlang survival VGAM]; };
   smcryptoR = derive2 { name="smcryptoR"; version="0.1.2"; sha256="05njdwx1ah1559k2fsvqg4wcm07k0570zxlnl4zscr042ixyg0sw"; depends=[]; };
   smcure = derive2 { name="smcure"; version="2.1"; sha256="0377dj6wvny2y44phsf7177ivn70a55v316skwf02n03ghqx73k9"; depends=[survival]; };
-  smd = derive2 { name="smd"; version="0.6.6"; sha256="1nvlka2prqh1hcj4ngpj2c2gmfryziijqwjyfy9fmq78skiq0jij"; depends=[MASS]; };
+  smd = derive2 { name="smd"; version="0.7.0"; sha256="15npiffznxlvd8rih0z63vdxykhh8fcdsgbrjkjgnakd9fi5xad5"; depends=[MASS]; };
   smdata = derive2 { name="smdata"; version="1.2"; sha256="1p26b46kg4hmhs2fl9h9vchar00llqv58ylx438bjgzz4f229qvr"; depends=[]; };
   smdi = derive2 { name="smdi"; version="0.2.2"; sha256="0bjwh9qbcr8221k43gayridqrsr3sf7mwgvlwy76k9dmjr0bid63"; depends=[broom dplyr fastDummies forcats ggplot2 glue gt Hotelling lifecycle magrittr mice naniar pROC randomForest stringr survival tableone tibble tidyr tidyselect]; };
   smdocker = derive2 { name="smdocker"; version="0.1.4"; sha256="13jkd81irk32m1w9djsgsgl79s8i9ynz10j7m8imqpk402zc7cbd"; depends=[jsonlite paws_compute paws_developer_tools paws_machine_learning paws_management paws_security_identity paws_storage uuid zip]; };
@@ -18258,22 +18546,23 @@ in with self; {
   smetlite = derive2 { name="smetlite"; version="0.2.10"; sha256="1q7fqfdd6m7jv5waajmmsc7ql16lcyy6z2k41mz6gvdqz914gg16"; depends=[readr stringr]; };
   smfishHmrf = derive2 { name="smfishHmrf"; version="0.1"; sha256="1k6mpyp11zv5rc3k98baymr903p2pf424nf9xng20q1li8s8y2ab"; depends=[fs pracma Rdpack]; };
   smfsb = derive2 { name="smfsb"; version="1.5"; sha256="092f9zcds183ya1j3qv2jjpi3rbpzzhb2wirlzpqk5bsfbyri93c"; depends=[abind]; };
-  smicd = derive2 { name="smicd"; version="1.1.3"; sha256="070dbi637rk6c938fljmwfhz4lpc4n09gj8lkbvbvdsb7m8bjk73"; depends=[formula_tools Hmisc ineq laeken lme4 MuMIn mvtnorm truncnorm weights]; };
+  smicd = derive2 { name="smicd"; version="1.1.5"; sha256="0lcdclp2bxs5g47a49xhwqgsl15czg2pym0d6z287wj4ccpxihxh"; depends=[formula_tools Hmisc ineq laeken lme4 mvtnorm truncnorm weights]; };
   smidm = derive2 { name="smidm"; version="1.0"; sha256="1a26y70mb5qzl1zjaicvnb8i7z3r94qqzda2cpac776h1w35zy51"; depends=[dplyr extraDistr]; };
-  smile = derive2 { name="smile"; version="1.0.4.1"; sha256="0781rzkqwpqnl22phxdcf533p55pshfp4v01k8d1bhd5yvr13y7k"; depends=[Matrix mvtnorm numDeriv Rcpp RcppArmadillo sf]; };
+  smile = derive2 { name="smile"; version="1.0.5"; sha256="1474jfk6vqcx3jv0mlf45l93bnn3f2qgm2j03rbjid4skg811618"; depends=[Matrix mvtnorm numDeriv Rcpp RcppArmadillo sf]; };
   smirnov = derive2 { name="smirnov"; version="1.0-1"; sha256="09mpb45wj8rfi6n6822h4c335xp2pl0xsyxgin1bkfw97yjcvrgk"; depends=[]; };
+  smlePH = derive2 { name="smlePH"; version="0.1.0"; sha256="0vkzgm5cjlwdxvrk4jjmj4jcwvpfs0kkc182iz0bkx6vp0ykmin7"; depends=[MASS splines2]; };
   smlmkalman = derive2 { name="smlmkalman"; version="0.1.1"; sha256="1ns717rq0vipplh3l2ypinrscv3bjv86j68aw53ygs6g59h0v2vp"; depends=[pracma scales spdep truncnorm]; };
   smmR = derive2 { name="smmR"; version="1.0.3"; sha256="0b6w2k5j65jdngc871ch9ragr7qgwbkl4nhk3gqnbpvkr9m4x88f"; depends=[DiscreteWeibull Rcpp RcppArmadillo seqinr]; };
   smof = derive2 { name="smof"; version="1.1.0"; sha256="0sysqz2jxzfpiril7i6496in43zpk5nrvybzz40rb5dashwwh4nv"; depends=[]; };
   smoke = derive2 { name="smoke"; version="2.0.1"; sha256="0kq64l5w5c86qnnqd3q5cm2n33dkfphpjgyxz30d2i0ayq4mjl0s"; depends=[Rdpack]; };
   smoof = derive2 { name="smoof"; version="1.6.0.3"; sha256="1cazhnd0m5jjzixaqgqh2h3rsa2sw3k8slj5cmgm8v47aaqn91mg"; depends=[BBmisc checkmate ggplot2 ParamHelpers Rcpp RcppArmadillo]; };
-  smooth = derive2 { name="smooth"; version="4.0.0"; sha256="0r123h71wxgwn694mn2vhc7hhicj8d33h5q4djmkp3m72dkzxyqj"; depends=[generics greybox MASS nloptr pracma Rcpp RcppArmadillo statmod xtable zoo]; };
+  smooth = derive2 { name="smooth"; version="4.0.1"; sha256="0z9iacmrvlrz6rk1dmih6qqfgmav14aar2nkmk7f1gr5f285r56d"; depends=[generics greybox MASS nloptr pracma Rcpp RcppArmadillo statmod xtable zoo]; };
   smoothAPC = derive2 { name="smoothAPC"; version="0.3"; sha256="11f34qqdm8m0hmy9jf29q439slchvmqgdfrmak7vcdhfnjcylr5r"; depends=[colorspace lmtest quantreg rgl SparseM]; };
   smoothHR = derive2 { name="smoothHR"; version="1.0.5"; sha256="0ljgk297sm201hzzjajddv39x78d90wn49sbzjrvia2d2hwz5s3j"; depends=[survival]; };
   smoothROCtime = derive2 { name="smoothROCtime"; version="0.1.0"; sha256="03iihjxb5xdaf74cm9cajqqjli754mdmv5v1y4hla9vv23017ca1"; depends=[ks]; };
   smoothSurv = derive2 { name="smoothSurv"; version="2.6"; sha256="1fw5ibcsr13n3ycs1rkcnd3x08qgxz31hzfra6hpjkzcavcxdlk4"; depends=[survival]; };
   smoothedLasso = derive2 { name="smoothedLasso"; version="1.6"; sha256="0007i40a12jgavgd95fbpiil1s331qd05ww6v19l49lbnlk3ldxg"; depends=[Matrix Rdpack]; };
-  smoother = derive2 { name="smoother"; version="1.1"; sha256="0nqr1bvlr5bnasqg74zmknjjl4x28kla9h5cxpga3kq5z215pdci"; depends=[TTR]; };
+  smoother = derive2 { name="smoother"; version="1.3"; sha256="0xw28qv8f5i05ajx32njnql6hql5njqyc47wcq6c75cxiv44ppz8"; depends=[TTR]; };
   smoothic = derive2 { name="smoothic"; version="1.2.0"; sha256="11id442cgnk6a0nd0c20rz5ccxlq3hhpsmvmlvg93jf4v6c2046z"; depends=[data_table dplyr ggplot2 MASS numDeriv purrr rlang stringr tibble tidyr toOrdinal]; };
   smoothie = derive2 { name="smoothie"; version="1.0-3"; sha256="1ari4av4vsydaxg56vsfifc50kxsqy8xlxl7by32capc6pcjwvq8"; depends=[]; };
   smoothmest = derive2 { name="smoothmest"; version="0.1-3"; sha256="1m8kiwv9nl3c7xggwspa9pridmpgsq3s1ivwrgsv2aaxddwg1wis"; depends=[MASS]; };
@@ -18285,6 +18574,7 @@ in with self; {
   smotefamily = derive2 { name="smotefamily"; version="1.4.0"; sha256="05ck6c4pldqqspb7abjh8vabc3g0fp6ivfbd9y2q2rm031mil4p2"; depends=[dbscan FNN igraph]; };
   smovie = derive2 { name="smovie"; version="1.1.6"; sha256="0a2npwp8bwkqqwpdb99mm993na282qaj63xhwf1s8bwvia4q4npp"; depends=[rpanel]; };
   smpic = derive2 { name="smpic"; version="0.1.0"; sha256="0ff2146gjcrc6nvrbf4779jh076abhb843zzlk2zvqir13qfap61"; depends=[ggplot2 imager stringr]; };
+  smplot2 = derive2 { name="smplot2"; version="0.2.3"; sha256="1cn4sv7a7gra2b7xwkwjglaygrrcd9b6mdh00dgq3mpf0b8rllvg"; depends=[cowplot dplyr ggplot2 ggpubr Hmisc patchwork pwr rlang tibble zoo]; };
   sms = derive2 { name="sms"; version="2.3.1"; sha256="0vr5jy8bxbczaqr9kg0fnanxhv9nj51yzgacrb63k33cs85p981m"; depends=[doParallel foreach iterators]; };
   smss = derive2 { name="smss"; version="1.0-2"; sha256="04lgfdcvnzpnpplyl62fy7slyiy8wkqpjjrzmclgqis3c9zkkncp"; depends=[]; };
   smurf = derive2 { name="smurf"; version="1.1.5"; sha256="1gpzzj67x0i70vw1x4rv56mhk2b74ynvdsy93rzmdk6b2h3dvv46"; depends=[catdata glmnet MASS Matrix mgcv RColorBrewer Rcpp RcppArmadillo]; };
@@ -18302,27 +18592,27 @@ in with self; {
   snfa = derive2 { name="snfa"; version="0.0.1"; sha256="01k2nw8b8mwsd07jijfqk3rj88l9m36c5jai7qma56fjxx23s3wb"; depends=[abind ggplot2 prodlim quadprog Rdpack rootSolve]; };
   snha = derive2 { name="snha"; version="0.1.3"; sha256="1bksc9s23widrdvp1wfx6808b4cdwvmq3iqkd87pbcr16bvpvnwc"; depends=[MASS]; };
   snn = derive2 { name="snn"; version="1.1"; sha256="0yywn3v1iz9xizwli3gmzprkx66b5a813mbp8hq2vsj8n4lfj8r5"; depends=[]; };
-  snotelr = derive2 { name="snotelr"; version="1.2"; sha256="140f34dsylsb0z9aw446xhsghl1r1qnddwai87201pymmjgqryn0"; depends=[dplyr httr memoise rvest shiny]; };
+  snotelr = derive2 { name="snotelr"; version="1.4"; sha256="1sr5ihr8qsa0lcihx8cgkr3q9qhc9grjyjp2fbf4siv7j3p21xzp"; depends=[dplyr httr memoise rvest shiny]; };
   snow = derive2 { name="snow"; version="0.4-4"; sha256="1j8kvf3imxijsqkdjz4i9s7qggfxqrpas46y5wz6za92y937yn44"; depends=[]; };
   snowFT = derive2 { name="snowFT"; version="1.6-1"; sha256="0y7ql23vv5qdx0pgblfybjwxc0rgvv7z868c6axgy78xrzm6qjd1"; depends=[rlecuyer snow]; };
   snowboot = derive2 { name="snowboot"; version="1.0.2"; sha256="0jj3p0g4rwml8vmlwj10rfisxfjlipcrpvq5z134z4j35jp6ggv3"; depends=[igraph Rcpp Rdpack]; };
   snowfall = derive2 { name="snowfall"; version="1.84-6.3"; sha256="0hxip3rzv7slxvif1000avbcid2mjxj1y9mimyvk87h404mr6h96"; depends=[snow]; };
   snowflakes = derive2 { name="snowflakes"; version="1.0.0"; sha256="0adna9jfs0wv4dhyjczxhq7c0ldjfai07p1q9119avxyilv9x0vi"; depends=[]; };
-  snowquery = derive2 { name="snowquery"; version="1.0.0"; sha256="0dkalqpfnqgjkaancljyksn83cqbvzxx8j2998wlg9kmrkjvw6kk"; depends=[DBI reticulate RPostgres yaml]; };
+  snowquery = derive2 { name="snowquery"; version="1.2.0"; sha256="1q9qbz35pid2y010gs69yqb4x2cq56xkgxk1grl8hhvp4fb1iszg"; depends=[DBI reticulate RPostgres RSQLite yaml]; };
   snpAIMeR = derive2 { name="snpAIMeR"; version="2.1.1"; sha256="1b24x8aqfk909nzy3xzpvrcrfisnvh0p5v895yrsx8knm1cjh0x3"; depends=[adegenet doParallel dplyr forcats foreach ggplot2 magrittr readr tidyr withr yaml]; };
   snpReady = derive2 { name="snpReady"; version="0.9.6"; sha256="1r96j8zh84dn7qh3zgl0p0v3a80hx2wd3c4jgjlr43hzl7yglpqr"; depends=[impute Matrix matrixcalc rgl stringr]; };
   snplinkage = derive2 { name="snplinkage"; version="1.0.0"; sha256="112wg2gnr4ikj916nb71sm39g41ls05d4j56hhml9hfnkiv76x5p"; depends=[gdsfmt ggplot2 gtable GWASTools magrittr]; };
   snplist = derive2 { name="snplist"; version="0.18.2"; sha256="1sa2s3br4agx920jpr250iih61p99v500nh0c1w99w0846g9908c"; depends=[biomaRt DBI R_utils Rcpp RSQLite]; };
   snpsettest = derive2 { name="snpsettest"; version="0.1.2"; sha256="0djz39b59x3kd5albdwjsgvln1qbm9xfbbglbym87xc3924sbwqj"; depends=[data_table gaston Rcpp RcppArmadillo]; };
   sns = derive2 { name="sns"; version="1.2.2"; sha256="1zb0s89lp2049i7l919dpd7bd396y9s6v8913qz56fvsq95sbvcn"; depends=[coda mvtnorm numDeriv]; };
-  snvecR = derive2 { name="snvecR"; version="3.9.1"; sha256="1ax3ckipylqnwnk2534fd6akk2n7vqwg0nsxyvrig4kqwl1dfhns"; depends=[cli deSolve dplyr glue lubridate purrr readr rlang tibble tidyr tidyselect]; };
+  snvecR = derive2 { name="snvecR"; version="3.9.4"; sha256="1z383bbhbpz0hx3biwlh4dzzc0hmjqzka351xn572sb2pycxrgbb"; depends=[backports cli deSolve dplyr glue purrr readr rlang tibble tidyselect]; };
   sobolnp = derive2 { name="sobolnp"; version="0.1.0"; sha256="00rmigjyd3fsmhrhbvjzrfsl4ir0xpfr4xbgjws6vkx2rmcqnq1s"; depends=[minqa np pbmcapply]; };
   soc_ca = derive2 { name="soc.ca"; version="0.8.0"; sha256="16l0synym91b7djgzdcz43dnvw44fkyxky9gm37ixbxzq1czdp9w"; depends=[dplyr ellipse FactoMineR flextable forcats ggplot2 ggrepel gridExtra htmlTable magrittr Matrix purrr RColorBrewer reshape2 rlang shiny stringr tibble tidyr]; };
   socceR = derive2 { name="socceR"; version="0.1.1"; sha256="1vd0r3vixavg1br2q3kfn3nvl7dw854vkcfwcvyw411k84ivb13y"; depends=[Rcpp]; };
   social = derive2 { name="social"; version="1.0"; sha256="0ny81bhj80rlwwa6cgbkdz2rxz6bp0f3nvjr1sqxr4s8l8rnf4ic"; depends=[Rcpp]; };
   socialh = derive2 { name="socialh"; version="0.1.1"; sha256="134jdhnnjxgnc8k1ws7pni5g44imxblngf106rwp8ff5a2gmrf6c"; depends=[circlize data_table dplyr ggplot2 magrittr]; };
-  socialmixr = derive2 { name="socialmixr"; version="0.3.1"; sha256="1idkc4gsf5jnirgvnrcj9ciaz11r1kqkh7167jfly7wm5r31r3y3"; depends=[countrycode curl data_table fields httr jsonlite lubridate oai wpp2017 xml2]; };
-  socialranking = derive2 { name="socialranking"; version="1.1.0"; sha256="0mhm1981nixa6vlkjnjsc292pkypjx666sz8p5sxv75zpajxjzfw"; depends=[Rdpack relations rlang]; };
+  socialmixr = derive2 { name="socialmixr"; version="0.3.2"; sha256="1gj7gsjzrx170i8ifnpi38pas5k952nrm1bx59zbjz46wc2h3n2h"; depends=[countrycode curl data_table fields httr jsonlite lifecycle lubridate oai wpp2017 xml2]; };
+  socialranking = derive2 { name="socialranking"; version="1.2.0"; sha256="0py0p2hbdfaf3phs94i97a955l6r7kxhc3ip2fg6r7glvgjrcrzn"; depends=[Rdpack relations rlang]; };
   socialrisk = derive2 { name="socialrisk"; version="0.5.1"; sha256="1v9hvrqwihfprs32pplxsv00myf0p5pa32601s8s826jss3fkx4w"; depends=[dplyr magrittr rlang stringr tidyr tidyselect]; };
   sociome = derive2 { name="sociome"; version="2.2.5"; sha256="1fyimv1i83ck7hwb7nnbdk46fiasi4kb8h944dni73536mnhc57g"; depends=[dplyr magrittr mice psych purrr rlang stringr tidycensus tidyr]; };
   socviz = derive2 { name="socviz"; version="1.2"; sha256="1294xwy26vshmaiw3pkx3f90j8g6fv64gygv88b7lnz6fhai1nq5"; depends=[dplyr fs magrittr rlang tibble]; };
@@ -18332,7 +18622,7 @@ in with self; {
   softImpute = derive2 { name="softImpute"; version="1.4-1"; sha256="1v2a4d688ij5zcvkzpra9yx40xckdfnllnfnyq2450zf3n1kjk7a"; depends=[Matrix]; };
   softbib = derive2 { name="softbib"; version="0.0.2"; sha256="0rhia0vx53lhmykf2rmnr9kbcvld35n2and1l3riqdfr6jrdg8pb"; depends=[bibtex checkmate renv rmarkdown]; };
   softclassval = derive2 { name="softclassval"; version="1.0-20160527"; sha256="1f5qj5sajy3dg0mgss6f9w6v5a2prcypld9jcv457bd4n4a409kr"; depends=[arrayhelpers svUnit]; };
-  soilDB = derive2 { name="soilDB"; version="2.8.1"; sha256="1k5793ilp5ysb28w778jq51nxhn550dp8bx3zs48q5cm814ccwkf"; depends=[aqp curl data_table DBI]; };
+  soilDB = derive2 { name="soilDB"; version="2.8.3"; sha256="1b85j3fpcvzm05pyv6zmd7j8af1nvkrbpsiz5cxzcx1l8kg1fmy4"; depends=[aqp curl data_table DBI]; };
   soilassessment = derive2 { name="soilassessment"; version="0.2.6"; sha256="0cgyji88q3r6b57q32nk8xgxb4q29678h8zgh9ywxhr3mr40i0qv"; depends=[caret deSolve e1071 FuzzyAHP googledrive Hmisc nnet png randomForest raster sf soiltexture sp terra]; };
   soilchemistry = derive2 { name="soilchemistry"; version="0.1.0"; sha256="1fkq5zpkcwh7ps2r79kc2pw7q2i4hjjnckx2f29l8064hswd9jc4"; depends=[]; };
   soilfoodwebs = derive2 { name="soilfoodwebs"; version="1.0.2"; sha256="09nc2ywxk8kl0akdwxz5zddrnqljvqpixjaz2bjkpxy0xj0qd82l"; depends=[deSolve diagram lpSolve quadprog rootSolve stringr]; };
@@ -18350,18 +18640,18 @@ in with self; {
   solrium = derive2 { name="solrium"; version="1.2.0"; sha256="16x4gjk0x6m9yjq9sk3kwbw8qm7w16vmbnfy5xa9zikw96cl3iky"; depends=[crul dplyr jsonlite plyr R6 tibble xml2]; };
   solvebio = derive2 { name="solvebio"; version="2.14.0"; sha256="182ybiia1qc25fnc9wrzrfzvgd4m340nrrn7llx0pbc1iq1q7as2"; depends=[httr jsonlite mime]; };
   som = derive2 { name="som"; version="0.3-5.1"; sha256="1fbza1jxvwrkf5x3inkj36vshhkn7mz0ajqlxalbfmk6ngjw1x56"; depends=[]; };
-  som_nn = derive2 { name="som.nn"; version="1.1.0"; sha256="0mw2c2lqvdq9bhndpjyawjy43l4x7clcsx2350j45g7fnchhy602"; depends=[class hexbin kohonen som]; };
+  som_nn = derive2 { name="som.nn"; version="1.4.4"; sha256="1qirkm54yav7h5836l81rah07r4nm8iy7ky6pf7c2a7vfbwddiqk"; depends=[class hexbin kohonen som]; };
   soma = derive2 { name="soma"; version="1.2.0"; sha256="05hm6yqh1d10kbgvy5j0cj2lvcnib4p9lmjcl32zxy1hazpagplq"; depends=[reportr]; };
   someMTP = derive2 { name="someMTP"; version="1.4.1.1"; sha256="197ajnnp92qh807a55z0i9z8nw0vmf5vvr216nxjwa2l9kw8c84k"; depends=[]; };
   sommer = derive2 { name="sommer"; version="4.3.4"; sha256="0c6g0ldla3ix40aw0h7mylz3xlvdnvrlz288hjkq86r8g9i5mq2b"; depends=[crayon MASS Matrix Rcpp RcppArmadillo RcppProgress]; };
   somspace = derive2 { name="somspace"; version="1.2.4"; sha256="1268sj89cbkp2nm0i905s991a92w4aki93hxia2vqk6fdh200rdl"; depends=[data_table ggplot2 kohonen maps reshape2]; };
   sonar = derive2 { name="sonar"; version="1.0.2"; sha256="1f0f5iqi3y9vnxyym14nm8dqxw0vcpnxmvvkx4sm612i4fclg1f9"; depends=[]; };
   sonicLength = derive2 { name="sonicLength"; version="1.4.7"; sha256="1wvdcjk641kcmflda0mibqr519qbqgb26mgwibjhm6pzgvwpy2dg"; depends=[]; };
-  sonicscrewdriver = derive2 { name="sonicscrewdriver"; version="0.0.6"; sha256="061yk6z9b4d2hb40zvj22sdk9dgjsc6vp6lgjh0j75623nw2ggim"; depends=[ggplot2 hms jsonlite mime Rdpack seewave stringi suncalc tuneR]; };
+  sonicscrewdriver = derive2 { name="sonicscrewdriver"; version="0.0.7"; sha256="0z18hyicbh6naxq5hz5bzx61x7kr1j5jsk98j71m8dalch2wysbm"; depends=[ggplot2 hms jsonlite mime Rdpack seewave stringi suncalc tuneR]; };
   sonify = derive2 { name="sonify"; version="0.0-1"; sha256="1wkqqgf8fhhaz1dmri2zzr8cdwmx3cgrxbprrz3yily5r1m17d15"; depends=[tuneR]; };
   soptdmaeA = derive2 { name="soptdmaeA"; version="1.0.0"; sha256="03n1y82myq0rz14awjnx9nx1dz3dxqq58m13cw7a7ncap7fmw9r5"; depends=[igraph MASS Matrix]; };
   soql = derive2 { name="soql"; version="0.1.1"; sha256="12wvbxy9xx140b7mga4ma7hkg4q6kv549gkq15fnf4dn8q43x8nf"; depends=[]; };
-  sorcering = derive2 { name="sorcering"; version="1.0.0.1"; sha256="1av5hi2qs1yrcxgfr7g1c1pv32ljza6jiapkxy10lvlbnkk3by15"; depends=[mathjaxr Rcpp RcppArmadillo Rdpack]; };
+  sorcering = derive2 { name="sorcering"; version="1.0.1"; sha256="195m83n57fsxg3w59y8q33b4hl9ng752lxdnvmvfb1m7iy1yaj49"; depends=[mathjaxr Rcpp RcppArmadillo Rdpack]; };
   sorocs = derive2 { name="sorocs"; version="0.1.0"; sha256="0gy23rldhnlz6jmf9rdzl4mmfkn5gjcavq2jfcz6dgjafl3v9vgl"; depends=[MASS MCMCpack mvtnorm]; };
   sortable = derive2 { name="sortable"; version="0.5.0"; sha256="1y6cljcjai2k2j7abzn07ab170gpp25zvl9gk755l4gwi7clgl2c"; depends=[assertthat ellipsis htmltools htmlwidgets jsonlite learnr rlang shiny]; };
   sorvi = derive2 { name="sorvi"; version="0.8.21"; sha256="0l8lznn2vnnyzq3i1hab7lcylmhkn9mpzrdymdmai4w2khg8r43b"; depends=[checkmate dlstats dplyr ggplot2 gh lubridate magrittr purrr rlang rvest sf tidyr xml2]; };
@@ -18370,66 +18660,66 @@ in with self; {
   sotu = derive2 { name="sotu"; version="1.0.4"; sha256="0hx37as51q3rk7z9vp8awhkj7a87nwd2jlp1hvfkli2j6l07sk7d"; depends=[]; };
   sound = derive2 { name="sound"; version="1.4.6"; sha256="14jk5lg73v3gvnyvam3bsbcayawprasvlvaxwqryh148brqgfcrd"; depends=[]; };
   soundClass = derive2 { name="soundClass"; version="0.0.9.2"; sha256="0z697asv2kzs93b45ndbkxfdzq3fmi1f6aprvpxps4x354gg2pi6"; depends=[DBI dbplyr dplyr generics htmltools keras magrittr RSQLite seewave shiny shinyBS shinyFiles shinyjs signal tuneR zoo]; };
-  soundcorrs = derive2 { name="soundcorrs"; version="0.4.0"; sha256="1azvsv3bghlab8q24wbb6xwd5a4cydx1cagvhk8h0h5ib9957zab"; depends=[]; };
   soundecology = derive2 { name="soundecology"; version="1.3.3"; sha256="16h6gbdlyav7wbfisdv1f2zsqhr45liidgj7qqk8giwjxgan8q97"; depends=[ineq oce pracma seewave tuneR vegan]; };
-  soundgen = derive2 { name="soundgen"; version="2.6.2"; sha256="15db2zdy90kbc4qx5wcnx90ks9ijc8c1znz4a6rkq16sf12p39jd"; depends=[data_table doParallel dtw foreach mvtnorm nonlinearTseries phonTools seewave shiny shinyBS shinyjs signal tuneR zoo]; };
+  soundgen = derive2 { name="soundgen"; version="2.6.3"; sha256="1d865daz5ylbcklb67yqwjflw5pv16rgyvjqxlwnn2knkxhm6m92"; depends=[data_table doParallel dtw foreach mvtnorm nonlinearTseries phonTools seewave shiny shinyBS shinyjs signal tuneR zoo]; };
   sourcetools = derive2 { name="sourcetools"; version="0.1.7-1"; sha256="1l9i9ram12pjks8h2gzmj119wf4ixwyhljsfv289dn8dgbdjp0cn"; depends=[]; };
   sovereign = derive2 { name="sovereign"; version="1.2.1"; sha256="1v5cchwia8v9h4fpb506v6nikp5k042axmryjmqrgimaly8dk9nv"; depends=[broom dplyr furrr future ggplot2 gridExtra lmtest lubridate magrittr mclust purrr randomForest sandwich stringr strucchange tidyr xts zoo]; };
   sox = derive2 { name="sox"; version="1.1"; sha256="03lnl431k0fr19akhdwzci2dgmcclkqqj30984wp05ldn87drcyy"; depends=[glmnet Rcpp survival]; };
-  sp = derive2 { name="sp"; version="2.1-3"; sha256="0m44qr2l8xmqbgi95h200bwy9ca8jihiqzfarws1p09lwmr954zs"; depends=[lattice]; };
+  sp = derive2 { name="sp"; version="2.1-4"; sha256="02lz8wcx16ay3zdqhdb57847i9qg2wzajrfp1z2xpmyjc7xyg1g1"; depends=[lattice]; };
   sp23design = derive2 { name="sp23design"; version="0.9-1"; sha256="1ivsds210rpxj52labc9mf2ncm3vji983w0kj757jl1b308ql30s"; depends=[mvtnorm survival]; };
   spANOVA = derive2 { name="spANOVA"; version="0.99.4"; sha256="0y1kqqfrl9rrskyvmzdjw9zyjgyqmz8b3cfgbba49n41wx2aiw79"; depends=[ape car DT geoR gtools knitr MASS Matrix multcomp multcompView mvtnorm rmarkdown ScottKnott shiny shinyBS shinycssloaders shinythemes spatialreg spdep xtable]; };
-  spAbundance = derive2 { name="spAbundance"; version="0.1.1"; sha256="1g3kbgjn1rwgniprfmxknygkxa0g8ghhw7nrv7inc56nhhqvxs3r"; depends=[abind coda doParallel foreach lme4 RANN]; };
+  spAbundance = derive2 { name="spAbundance"; version="0.1.3"; sha256="02qvgyiyrwaz2jgfp746fyr1bwd8m4lwjijaml9ychq4rdmrfjli"; depends=[abind coda doParallel foreach lme4 RANN]; };
   spAddins = derive2 { name="spAddins"; version="0.2.0"; sha256="19wbcghcf0f9qvqy92jhsdcpmd9b4lkhxndvr71cyhzga539lh1n"; depends=[magrittr purrr rstudioapi stringr]; };
   spBFA = derive2 { name="spBFA"; version="1.3"; sha256="1bi3lhbx37zlj2x0nql51x5422zxc1gcbn8vqjf81badwf80fwsp"; depends=[msm mvtnorm pgdraw Rcpp RcppArmadillo]; };
   spBayes = derive2 { name="spBayes"; version="0.4-7"; sha256="18rb4k7yfnz07ilrgdipbl30a78zzl3yaikd999l482v1a95hibr"; depends=[coda Formula magic Matrix sp]; };
   spBayesSurv = derive2 { name="spBayesSurv"; version="1.1.8"; sha256="0z91k88m5bh8ipicb43kknxshjr6dwr6whfkm28j49xwjrm4ydsy"; depends=[coda fields MASS Rcpp RcppArmadillo survival]; };
   spCP = derive2 { name="spCP"; version="1.3"; sha256="0rphd8zawr2r14dzwv77plk5xw020pkc26ir72qiqc1acin42xd1"; depends=[msm mvtnorm Rcpp RcppArmadillo]; };
-  spData = derive2 { name="spData"; version="2.3.0"; sha256="12w4chk71vqy1chij79928ppxdg2cz03hx9bgs5cgwj9f1ciyb2b"; depends=[sp]; };
+  spData = derive2 { name="spData"; version="2.3.1"; sha256="0x80qzn12lrr8al5igj5nass3aqasg65drhdrb2p9cmp4chpydwc"; depends=[sp]; };
   spDates = derive2 { name="spDates"; version="1.1"; sha256="0k6383hgrs4751qnwx03s85a9a0ldpxm7xanrnmg13plc2713kvm"; depends=[data_table dplyr ggplot2 gstat magrittr raster rcarbon rlang smatr sp viridisLite]; };
   spFSR = derive2 { name="spFSR"; version="2.0.4"; sha256="1d4hdbgy21cq6hl5r8ig9mydiab4wr2df9wbrlhyy90a4x7gxfyi"; depends=[future ggplot2 lgr mlr3 mlr3learners mlr3pipelines ranger tictoc]; };
   spFW = derive2 { name="spFW"; version="0.1.0"; sha256="1d00a01mnwc7lcnqgz2dfglhwqwhh9vm4yd904zq3s26zv4qapyf"; depends=[Rcpp RcppArmadillo]; };
   spGARCH = derive2 { name="spGARCH"; version="0.2.2"; sha256="1wrmk2ybgysvibfy8vvp7pyqda5apqp0jxjfp3hlb416fza52966"; depends=[Matrix nleqslv Rcpp RcppEigen Rsolnp spdep truncnorm]; };
-  spINAR = derive2 { name="spINAR"; version="0.1.0"; sha256="1g4yms3h7m42zfjix1n2yrxi5zj0v97klry6d4r7n0iwx4rllpp4"; depends=[checkmate progress]; };
+  spINAR = derive2 { name="spINAR"; version="0.2.0"; sha256="02y0y6xzckzhygs7fwvnd3mgw8ay78wg850d46v4q6vxpb144wjy"; depends=[checkmate progress]; };
   spMC = derive2 { name="spMC"; version="0.3.15"; sha256="1fv6769xz44xc50ad00df7bacqbwy6xnqm2072zjgkl1dbskfjma"; depends=[]; };
   spMaps = derive2 { name="spMaps"; version="0.5.0"; sha256="1v5gvnyfj04rxraqngrmpkpq3874y422hr6yirj52iksb8ry0kgh"; depends=[sf sp]; };
   spNNGP = derive2 { name="spNNGP"; version="1.0.0"; sha256="0z09hxmm2pbxsbm3zqk839z2gb3g2n2hqkahcbvcgywrqn3v8cal"; depends=[coda Formula RANN]; };
-  spNetwork = derive2 { name="spNetwork"; version="0.4.3.8"; sha256="0jxm3csq6prqssw9jdlk0k1ipm19kfv1y8kjgyqfb5m5l1za5xvq"; depends=[abind BH cubature data_table dbscan dplyr future_apply ggplot2 igraph progressr Rcpp RcppArmadillo RcppProgress Rdpack sf spdep]; };
-  spOccupancy = derive2 { name="spOccupancy"; version="0.7.2"; sha256="13zqdiwk692y1spqwi3wj9rmvy6v3165f162l1y37hg24m0000j0"; depends=[abind coda doParallel foreach lme4 RANN]; };
+  spOccupancy = derive2 { name="spOccupancy"; version="0.7.6"; sha256="0gl6z2dch254nmyd19w7z3jmivadzvv27ymsbn1rk08qm19bf69g"; depends=[abind coda doParallel foreach lme4 RANN spAbundance]; };
   spRingsteen = derive2 { name="spRingsteen"; version="0.1.0"; sha256="13mdbsbq51sp34xp04lgc4klwb3chnnkvh5r99qfapbbr0vra8vl"; depends=[devtools rlang]; };
   spTDyn = derive2 { name="spTDyn"; version="2.0.2"; sha256="010x3rjncasly1scngwyiys7asmk4ay51bzhk0zfjazwfkmqd12r"; depends=[coda sp spacetime spTimer]; };
   spThin = derive2 { name="spThin"; version="0.2.0"; sha256="0j10j1cbbwp3baqm3b59rxlnd643mkx1mirlxpnr1ad2g7xpm69f"; depends=[fields knitr spam]; };
   spTimer = derive2 { name="spTimer"; version="3.3.2"; sha256="0dlsyj0mawpgxr1yn4ldqm3xh148c79lk55fq475zjzyiwz9ynfc"; depends=[coda extraDistr sp spacetime]; };
-  spaMM = derive2 { name="spaMM"; version="4.4.16"; sha256="11drqd7fxby8s6dk13v94aqbhi2sj40qcjsmr7r7g0c95m8fsxj4"; depends=[backports boot crayon geometry gmp MASS Matrix minqa nlme nloptr numDeriv pbapply proxy Rcpp RcppEigen ROI]; };
+  spaMM = derive2 { name="spaMM"; version="4.5.0"; sha256="1nr44jg73gnbc3q1ip7zmzl1n5bggbcgjrdlh6fg81zp41ba3ydv"; depends=[backports boot crayon geometry gmp MASS Matrix minqa nlme nloptr numDeriv pbapply proxy Rcpp RcppEigen ROI]; };
   spaa = derive2 { name="spaa"; version="0.2.2"; sha256="163iipz1knxx1lzby9a3n1f014yqkf25z1wpwwy4gbx7sia499d5"; depends=[]; };
   spaceNet = derive2 { name="spaceNet"; version="1.2"; sha256="1s2672icxs0qvdhl52xhllgvh1i9mjfrn5j3icyw6h61ljbnhy11"; depends=[MASS mclust permute RcppTN Rfast sna vegan]; };
-  spacefillr = derive2 { name="spacefillr"; version="0.3.2"; sha256="0raaw9ib8b2dzkh4w28wpxcgxs7ky328yaayb64lc39syf7g19dv"; depends=[Rcpp]; };
+  spacefillr = derive2 { name="spacefillr"; version="0.3.3"; sha256="08ghp7ym454911yymqa15mq8d3my2qpc7mphj17akm8pyskymnkc"; depends=[Rcpp]; };
   spacejamr = derive2 { name="spacejamr"; version="0.2.1"; sha256="05rprsgnihhz3xhh7p9mkn4scpi318kvrkkrrw9j645d6bwfms5l"; depends=[crsuggest dplyr ggplot2 ggraph ggthemes igraph magrittr sf spatstat_geom spatstat_random]; };
   spacesRGB = derive2 { name="spacesRGB"; version="1.5-0"; sha256="1v4az4qn965p0xds10ff7f4565j5n9pqc44501l6fi5j7h819hsc"; depends=[]; };
   spacesXYZ = derive2 { name="spacesXYZ"; version="1.3-0"; sha256="10pmmfskgj1gfwfk5s44wdfk81l7kmga8xsirz49qnwy6xs148pv"; depends=[]; };
   spacetime = derive2 { name="spacetime"; version="1.3-1"; sha256="1kr12pbi6hqns30kqy4jv5pcm3lgfcfyc2gwaak1jbg894csahhr"; depends=[intervals lattice sp xts zoo]; };
   spacyr = derive2 { name="spacyr"; version="1.3.0"; sha256="1z4nx8phrc0l73xic2lkff03a54kjw343425h5mm2afz6zidcmf4"; depends=[data_table reticulate]; };
   spaero = derive2 { name="spaero"; version="0.6.0"; sha256="0xigwi6w21y2fwicml0s2gylwnwp2qvrqskr0v8rd3bn01hg9ja3"; depends=[]; };
+  spagmix = derive2 { name="spagmix"; version="0.4-1"; sha256="1vy951y7c1dabykqiij56qa56hc2lqahrav80698hpjbmxcr3w5f"; depends=[abind mvtnorm sparr spatstat spatstat_geom spatstat_random]; };
   spam = derive2 { name="spam"; version="2.10-0"; sha256="0ydc513jg7phzdqg8jp7210ayrrmxq91jafqzx8z1v0172i8d73i"; depends=[dotCall64 Rcpp]; };
   spam64 = derive2 { name="spam64"; version="2.10-0"; sha256="0kb7jz12xb0i45b70x3p785md01s7wbwl8lgisq4i83jvlz016ln"; depends=[]; };
   spanish = derive2 { name="spanish"; version="0.4.2"; sha256="15drc11lh0qxpww50p0smi8qxfbln82bx0yd74jqf71irhk5jxyp"; depends=[magrittr xml2]; };
-  spant = derive2 { name="spant"; version="2.19.0"; sha256="0s2rlcgw7y07ba81k528915b2b9i6ccvmk3cms2h7xjna16fzn4d"; depends=[abind expm fields irlba jsonlite minpack_lm mmand nloptr numDeriv plyr pracma ptw RNifti RNiftyReg signal stringr]; };
+  spant = derive2 { name="spant"; version="2.21.0"; sha256="0qaspbgphlicaak1c2n7bip60dv5wib1nxhv4x8za33s1v45h549"; depends=[abind expm fields irlba jsonlite minpack_lm mmand nloptr numDeriv plyr pracma ptw RNifti RNiftyReg signal stringr]; };
   sparcl = derive2 { name="sparcl"; version="1.0.4"; sha256="138krflvfdlx4hlh90mswds51i8aw2vv00gm5lgkfsvxj4w324jg"; depends=[]; };
   spark_sas7bdat = derive2 { name="spark.sas7bdat"; version="1.4"; sha256="1s1hd6hvjxnfb3w10v93pggijmm2h4rcsf7ckl34j2sw9bvv7zka"; depends=[sparklyr]; };
   sparkavro = derive2 { name="sparkavro"; version="0.3.0"; sha256="0g6ac9msfbx8f8j8rj0hvlxjsn317zyam207q7i8kf0hshs1r58f"; depends=[DBI dplyr sparklyr]; };
   sparkbq = derive2 { name="sparkbq"; version="0.1.1"; sha256="0gccm8q5a45k9zm8f90r7fhcmriq8d038p022k7cikbr6rqsrmyh"; depends=[sparklyr]; };
   sparkhail = derive2 { name="sparkhail"; version="0.1.1"; sha256="1a9p9i7fs6l9rx5ha6akjjl7qhfak01xsjg28ysv0imikmwp6hy7"; depends=[dplyr sparklyr sparklyr_nested]; };
   sparkline = derive2 { name="sparkline"; version="2.0"; sha256="0lrr1lm7603di7x3mf53cp13d9ssjh9gmb43wa6z9yqapis2djm2"; depends=[htmltools htmlwidgets]; };
-  sparklyr = derive2 { name="sparklyr"; version="1.8.4"; sha256="0xc38xq8izpg0fh4kjb5f223jvhrczs66aydw32kyk6mx07c43ch"; depends=[config DBI dbplyr dplyr generics globals glue httr jsonlite openssl purrr rappdirs rlang rstudioapi tibble tidyr tidyselect uuid vctrs withr xml2]; };
+  sparklyr = derive2 { name="sparklyr"; version="1.8.6"; sha256="1yp3hwi1rhxx8sdhibcnjxsz1sd5jhfxn6cy9bphkwadrd19pn63"; depends=[config DBI dbplyr dplyr generics globals glue httr jsonlite openssl purrr rlang rstudioapi tidyr tidyselect uuid vctrs withr xml2]; };
   sparklyr_flint = derive2 { name="sparklyr.flint"; version="0.2.2"; sha256="0sszblvgxi8l8wlic5nrnm4pc9m0byyvayrja2476vnz0pqliv69"; depends=[dbplyr dplyr rlang sparklyr]; };
   sparklyr_nested = derive2 { name="sparklyr.nested"; version="0.0.4"; sha256="185cq40958fgwrng14ifil1vwrni5nn6haxfknzarhn805hfkv7c"; depends=[dplyr jsonlite listviewer purrr rlang sparklyr tidyselect]; };
   sparktex = derive2 { name="sparktex"; version="0.1"; sha256="0r6jnn9fj166pdhnjbsaqmfmnkq0qr1cjprihlnln9jad05mrkjx"; depends=[]; };
   sparktf = derive2 { name="sparktf"; version="0.1.0"; sha256="0jd018n7553q0ldv6whxbj2s38myig0m8zq4fbp8fsv34q5wnsx4"; depends=[sparklyr]; };
   sparkwarc = derive2 { name="sparkwarc"; version="0.1.6"; sha256="0nzw6lgjrgqd1hj46jd52s8s3vdb7q2nc500jlgd0ydrr12zd123"; depends=[DBI Rcpp sparklyr]; };
-  sparkxgb = derive2 { name="sparkxgb"; version="0.1.1"; sha256="1h7jk76v9wfm8qzqy6lhsmsp767wydwba9xyqszndl88295iac1j"; depends=[forge sparklyr]; };
+  sparkxgb = derive2 { name="sparkxgb"; version="0.2.0"; sha256="0rfj22ipp78nf6baa6rjzdphb6y7nrg07h5d3f2npdnirigihb3b"; depends=[fs magrittr rlang sparklyr vctrs]; };
   sparr = derive2 { name="sparr"; version="2.3-10"; sha256="03dp6gvkpw8vjsf0p4igr2q4lgahn24j5f94h43jdrm4ppz860zh"; depends=[doParallel foreach misc3d spatstat spatstat_explore spatstat_geom spatstat_random spatstat_utils]; };
   sparrpowR = derive2 { name="sparrpowR"; version="0.2.8"; sha256="0lzsm04m80l9h20xc1ifzw30fzbmg3xqspf1arzw5hk5081iid0q"; depends=[doFuture doRNG fields foreach future iterators lifecycle sparr spatstat_geom spatstat_random terra]; };
   sparseBC = derive2 { name="sparseBC"; version="1.2"; sha256="0a1siyi9kc805qji4alnw3c21spf4iw4wpsbfl50zvs52p8vl8w2"; depends=[fields glasso]; };
+  sparseCov = derive2 { name="sparseCov"; version="0.0.1"; sha256="1zgqfjahlbbwimxcn7l0jn316xd2a65s8gy4pck0aksyfqh56kb1"; depends=[Matrix mvnfast Rfast sparseMVN]; };
   sparseDFM = derive2 { name="sparseDFM"; version="1.0"; sha256="0w4xn0hyk3l94b9nplbhlbzkjkh2fx4cyqyjjn5x6dpkf1wj9aaz"; depends=[ggplot2 Matrix Rcpp RcppArmadillo]; };
   sparseEigen = derive2 { name="sparseEigen"; version="0.1.0"; sha256="0vqcy61rarmp3liz8fr3vs3y40hkb3wfw89b5xsj1byaiap4772s"; depends=[]; };
   sparseFLMM = derive2 { name="sparseFLMM"; version="0.4.1"; sha256="174lnhqig7m6fjfsj114ld059z9mjih3jzm5cq8iscxnhr9m11lr"; depends=[data_table MASS Matrix mgcv refund]; };
@@ -18444,7 +18734,6 @@ in with self; {
   sparseR = derive2 { name="sparseR"; version="0.2.3"; sha256="1q77n45kl1hqx5a6cr4hschj8zv0ymw8v7yvm748sdplan2dj417"; depends=[dplyr magrittr ncvreg recipes rlang]; };
   sparseSEM = derive2 { name="sparseSEM"; version="4.0"; sha256="15pgh5x01inyl8kxaqsz9hf7iv3splzarch89yz1nappv86c7khq"; depends=[]; };
   sparseSVM = derive2 { name="sparseSVM"; version="1.1-6"; sha256="0b0qiikjyyh9qfd4jl69zqnlp7adxq63mwsxvgwvyc0pv5ccg8i0"; depends=[]; };
-  sparsebnUtils = derive2 { name="sparsebnUtils"; version="0.0.8"; sha256="1x1phd33r3ci72sbm0pkmigwbi4x59pdz8n5919119mkxdf740vs"; depends=[Matrix nnet]; };
   sparsediscrim = derive2 { name="sparsediscrim"; version="0.3.0"; sha256="1fzvki3az1y5bz6d7lygv3hjbzn17gq8g2s7xqmldlpq1v4dhjar"; depends=[bdsmatrix corpcor dplyr ggplot2 mvtnorm rlang]; };
   sparsegl = derive2 { name="sparsegl"; version="1.0.2"; sha256="0c5iqhq3rn5wsy8a5lj37b4spqhy46d7d5k5q3kn034amml4cyfb"; depends=[cli dotCall64 ggplot2 magrittr Matrix rlang RSpectra tidyr]; };
   sparseinv = derive2 { name="sparseinv"; version="0.1.3"; sha256="06inzix9m7b5g7c97lyvyl2g7fdr4iz60791hl2w9mah7nd6bfja"; depends=[Matrix Rcpp spam]; };
@@ -18456,50 +18745,54 @@ in with self; {
   sparsesvd = derive2 { name="sparsesvd"; version="0.2-2"; sha256="0dnqjqypjwac8aqdqsqdgcd70lyrfv6idz8q2kzjiv1sxrlwqh5v"; depends=[Matrix]; };
   sparsevar = derive2 { name="sparsevar"; version="0.1.0"; sha256="1kcy6bm04mccky529nryy5l001bv71hx304ysiabl4myakw0rwy7"; depends=[corpcor doParallel ggplot2 glmnet Matrix mvtnorm ncvreg picasso reshape2]; };
   sparsevb = derive2 { name="sparsevb"; version="0.1.0"; sha256="1cigq8hwymrrkiy3iyrxsjjbj228ahrd7mq9lqar4jlb925jzqx4"; depends=[glmnet Rcpp RcppArmadillo RcppEnsmallen selectiveInference]; };
+  sparsevctrs = derive2 { name="sparsevctrs"; version="0.1.0"; sha256="18w5d1ggyxvwm6rcf0bspsblf6s5m0snr4pf22y9sqfjb282vdz0"; depends=[cli rlang vctrs]; };
   sparsio = derive2 { name="sparsio"; version="1.0.1"; sha256="181kzs9x3h497c7shfalbzrjz05bkj7mmjh9nyphxyi2jjrr6y1q"; depends=[Matrix Rcpp]; };
   sparta = derive2 { name="sparta"; version="0.8.4"; sha256="109i8yhv8snhpccrhxy1k8xcy9jj8m3li2d7vaylvxbrlnc26d89"; depends=[Rcpp RcppArmadillo]; };
   sparvaride = derive2 { name="sparvaride"; version="0.1.0"; sha256="17skm44cdv540jik8lv5y0dp6yzjgy775vjzq3dv1jv58nqjvps1"; depends=[Rcpp RcppArmadillo]; };
   spass = derive2 { name="spass"; version="1.3"; sha256="1c148z0i3d185hnf54xmgppjrblv3b2s3sm0lmj78gvav04mj5s4"; depends=[geepack MASS multcomp mvtnorm Rcpp]; };
-  spatPomp = derive2 { name="spatPomp"; version="0.34.2"; sha256="1d4zdwxd2sy6c3z316izm9g0rp42q09694h4m0cid0m04779qs2a"; depends=[abind dplyr foreach ggplot2 magrittr pomp rlang stringr tidyr]; };
+  spatPomp = derive2 { name="spatPomp"; version="0.35.0"; sha256="0zz6xbbxrj287mjphhq21jpmnbdm60fii13sv8dg8v95l4lhi8pl"; depends=[abind dplyr foreach ggplot2 pomp rlang stringr tidyr]; };
   spate = derive2 { name="spate"; version="1.7.5"; sha256="114amd3rh9ns6pyh92c5n991904mfwd6vi5cljzm2w3rhyf9vjci"; depends=[mvtnorm truncnorm]; };
   spatgeom = derive2 { name="spatgeom"; version="0.3.0"; sha256="1z6haqqzghji6703crs69nvqx93h19bdkw0frpmrcxa60fxm0kyr"; depends=[cowplot dplyr ggplot2 lwgeom purrr scales sf]; };
   spatgraphs = derive2 { name="spatgraphs"; version="3.4"; sha256="1xiq4a8br46qk19k23kkb6l1b7ciw9lmmrvwfznwkamwps6dwlg8"; depends=[Matrix Rcpp]; };
   spathial = derive2 { name="spathial"; version="0.1.2"; sha256="1vwzcwpmx8kwv821vjf940qd5am3k0shf1s14jva71mgxs70ddmb"; depends=[class igraph irlba knitr MASS matrixStats pracma rmarkdown Rtsne]; };
+  spaths = derive2 { name="spaths"; version="1.1.2"; sha256="08gzw4lbk288230309g1craf4jm5xv4kqxcbpy649g1cdzqq4lf1"; depends=[data_table Rcpp]; };
   spatial = derive2 { name="spatial"; version="7.3-17"; sha256="1msxbxz50qmzjxgix2vcq0f50b4cdvj8nz3qlilp397jrzc3w07i"; depends=[]; };
   spatialCovariance = derive2 { name="spatialCovariance"; version="0.6-9"; sha256="1m86s9a059spp97y37dcirrgjshcqzpdj11cq92vji624w4nrhlb"; depends=[]; };
   spatialEco = derive2 { name="spatialEco"; version="2.0-2"; sha256="0z5m78x72if7bbhfjb92xv2qg4i7vh5hq9w5djd615piin9qwfsk"; depends=[sf terra]; };
   spatialRF = derive2 { name="spatialRF"; version="1.1.4"; sha256="1lbwk7ziv292kxkz6rpr44jij3q13ljmqaccq56x6c2l8wkxl583"; depends=[doParallel dplyr foreach ggplot2 huxtable magrittr patchwork ranger rlang tibble tidyr tidyselect viridis]; };
-  spatialTIME = derive2 { name="spatialTIME"; version="1.3.4-3"; sha256="0ya7kzi79c3nimx6cjki76g5dzlwi49zczd3wmn25jcxjxknr6da"; depends=[crayon dixon dplyr furrr future ggplot2 magrittr pbmcapply purrr RColorBrewer scales spatstat_explore spatstat_geom stringr tibble tidyr tidyselect]; };
+  spatialTIME = derive2 { name="spatialTIME"; version="1.3.4-5"; sha256="0i5fcy2q53612kq1qjg2sp10lwsiva6nay0v2jl2mw28zx6p22s9"; depends=[crayon dixon dplyr furrr future ggplot2 magrittr pbmcapply purrr RColorBrewer scales spatstat_explore spatstat_geom spatstat_univar stringr tibble tidyr tidyselect]; };
   spatialising = derive2 { name="spatialising"; version="0.6.0"; sha256="0q2gj16crhr1s92pazj6zbhr03xjp0pqwdc64qanpxmv4sbm65wq"; depends=[comat Rcpp terra]; };
   spatialprobit = derive2 { name="spatialprobit"; version="1.0.4"; sha256="0smb4k366xf7yzxxbk85963vi0jrk9jz83v7b2l1djhk4gxp7qm4"; depends=[Matrix mvtnorm spatialreg spdep tmvtnorm]; };
-  spatialreg = derive2 { name="spatialreg"; version="1.3-2"; sha256="0qvf85l287qak2cs0l87rl4vacphnanvj8cgs82aiq6vkl52igp3"; depends=[boot coda LearnBayes MASS Matrix multcomp nlme sf spData spdep]; };
+  spatialreg = derive2 { name="spatialreg"; version="1.3-4"; sha256="0sgvcqswfpa9aq1x2ir1d5vg52gny1r1l15g66nk0113vvbrz982"; depends=[boot coda LearnBayes MASS Matrix multcomp nlme sf spData spdep]; };
   spatialrisk = derive2 { name="spatialrisk"; version="0.7.1"; sha256="1r6dr4n3d0x1yb4vcbfq0aqdqmy0h4n73snl86wrk86agvi5rmwp"; depends=[classInt colourvalues data_table dplyr fs GenSA geohashTools ggplot2 leafem leafgl leaflet Rcpp RcppProgress sf tmap units viridis]; };
   spatialsample = derive2 { name="spatialsample"; version="0.5.1"; sha256="0pcwf15ani4r8j3zgqz093jkimazzwi0218qx18xglymk180hhcp"; depends=[cpp11 dplyr ggplot2 glue purrr rlang rsample sf tibble tidyselect units vctrs]; };
   spatialwarnings = derive2 { name="spatialwarnings"; version="3.0.3"; sha256="03a0gb8v6028v6q5w3iap8fn9nkb2rpnabqgzmr2dyxnpfgr9dn3"; depends=[future future_apply ggplot2 gsl plyr Rcpp RcppArmadillo segmented]; };
   spatialwidget = derive2 { name="spatialwidget"; version="0.2.5"; sha256="01w0iwwjfbb8cxfs3l1vxlay8x6694d7c7ksrfrdd003h7dxwksj"; depends=[BH colourvalues geojsonsf geometries interleave jsonify rapidjsonr Rcpp sfheaders]; };
   spatsoc = derive2 { name="spatsoc"; version="0.2.2"; sha256="0aj9kg9013m0j3nx5qr2mvwczskkk0wy19yx1pb33wnqvhv2w0n0"; depends=[adehabitatHR data_table igraph sf units]; };
-  spatstat = derive2 { name="spatstat"; version="3.0-7"; sha256="1h6fnri3ma5kgzkwv4lr2i2jvsx8sg4am3rgzb29h7l89x59yxrk"; depends=[spatstat_data spatstat_explore spatstat_geom spatstat_linnet spatstat_model spatstat_random spatstat_utils]; };
+  spatstat = derive2 { name="spatstat"; version="3.0-8"; sha256="0ghhj161n7bxd6hpk3hz6lq2gv8bwx5clrdp729lfyi9d1xjw162"; depends=[spatstat_data spatstat_explore spatstat_geom spatstat_linnet spatstat_model spatstat_random spatstat_utils]; };
   spatstat_Knet = derive2 { name="spatstat.Knet"; version="3.0-2"; sha256="1yvdasrxmsa2m9016kclb33kv5893fsz5rcr416yhpf6jixdsfh8"; depends=[Matrix spatstat spatstat_data spatstat_explore spatstat_geom spatstat_linnet spatstat_model spatstat_random spatstat_sparse spatstat_utils]; };
   spatstat_data = derive2 { name="spatstat.data"; version="3.0-4"; sha256="1s0ns5nhgigfn3d9rdy3f4ymnwj1w71v26iphkhwxddm9qzk80yi"; depends=[Matrix spatstat_utils]; };
   spatstat_explore = derive2 { name="spatstat.explore"; version="3.2-7"; sha256="08740yclqv86mnds0a8xhn6r2qdqhw4qgkbrb2cl93crqwcdkr2f"; depends=[abind goftest Matrix nlme spatstat_data spatstat_geom spatstat_random spatstat_sparse spatstat_utils]; };
   spatstat_geom = derive2 { name="spatstat.geom"; version="3.2-9"; sha256="05ymr4h6g5kp6kinm8qi6mcwi51d2rp671cm3hqgyrhk91k72cx7"; depends=[deldir polyclip spatstat_data spatstat_utils]; };
   spatstat_gui = derive2 { name="spatstat.gui"; version="3.0-1"; sha256="1y6z3gdad0nhqg494b5pjq4h0mr3mcrhnnc0chy56lf8chb6p5jb"; depends=[rpanel spatstat spatstat_data spatstat_explore spatstat_geom spatstat_linnet spatstat_model spatstat_random spatstat_utils]; };
-  spatstat_linnet = derive2 { name="spatstat.linnet"; version="3.1-4"; sha256="1inqirh58q19mvf4wvnhm31418xfzd1ysvcxwda3g11pv8jq2g3d"; depends=[Matrix spatstat_data spatstat_explore spatstat_geom spatstat_model spatstat_random spatstat_sparse spatstat_utils]; };
+  spatstat_linnet = derive2 { name="spatstat.linnet"; version="3.1-5"; sha256="18zp6dsddc9js4ck6iqh5li4hw5qbyvh16vsa9vqk4ccgc1krl57"; depends=[Matrix spatstat_data spatstat_explore spatstat_geom spatstat_model spatstat_random spatstat_sparse spatstat_utils]; };
   spatstat_local = derive2 { name="spatstat.local"; version="5.0-1"; sha256="02ip6d2mr07n3lv4i5xdmb1j55syk5hwjwr7j81ibxkp3gj8gm61"; depends=[spatstat spatstat_data spatstat_explore spatstat_geom spatstat_model spatstat_random spatstat_sparse spatstat_utils tensor]; };
   spatstat_model = derive2 { name="spatstat.model"; version="3.2-11"; sha256="0hvnqig6cdrp8hk2fkcajag3hrqsamfr6h66wn4cs30iblic23bh"; depends=[abind goftest Matrix mgcv nlme rpart spatstat_data spatstat_explore spatstat_geom spatstat_random spatstat_sparse spatstat_utils tensor]; };
   spatstat_random = derive2 { name="spatstat.random"; version="3.2-3"; sha256="19rl757lccr169fj00zmhb1a20bxw4kljzb81hbbr5xhj0za6lp0"; depends=[spatstat_data spatstat_geom spatstat_utils]; };
   spatstat_sparse = derive2 { name="spatstat.sparse"; version="3.0-3"; sha256="0scdk3ns4nl1v1avbggnsinfpvl4i8391qy3x1iwxvkimr14xg3b"; depends=[abind Matrix spatstat_utils tensor]; };
-  spatstat_utils = derive2 { name="spatstat.utils"; version="3.0-4"; sha256="1i1w1ys29s22jfjvliqnbw3zi6zar8bxxz3r8za182p2w0wqwhax"; depends=[]; };
+  spatstat_univar = derive2 { name="spatstat.univar"; version="2.0-3"; sha256="0lsn7hjvrzfz0nzp601izm856ccm14zqwx8gpw84n772b9lmz4z8"; depends=[spatstat_utils]; };
+  spatstat_utils = derive2 { name="spatstat.utils"; version="3.0-5"; sha256="15pm4fpc3fvqkh9kh4i0pgalxbxfp9y3blsyaw37s07v41gnd67b"; depends=[]; };
   spatsurv = derive2 { name="spatsurv"; version="2.0-1"; sha256="17s88w8ikrazhjbilvwcw1i1r9b77ci7f69jgr8lni7dd7l0b0hy"; depends=[fields iterators lubridate Matrix raster RColorBrewer sf sp spatstat_explore spatstat_geom spatstat_random stringr survival]; };
   spbabel = derive2 { name="spbabel"; version="0.6.0"; sha256="0y30v7p54mmy43w7wclhywwk1zih6h66hkgd7dc101yiqvnx4m84"; depends=[dplyr pkgconfig rlang sp tibble]; };
-  spc = derive2 { name="spc"; version="0.6.7"; sha256="02dw1hh3ksx119wf7qkg01m7h60pmsc3vkryw5fikyxyfz871ldl"; depends=[]; };
+  spbal = derive2 { name="spbal"; version="1.0.0"; sha256="0wh0d1zfb1368bzpg0cjy0wa0ms4x6xr9y6n773prr8r8vs6fp09"; depends=[Rcpp RcppThread sf units]; };
+  spc = derive2 { name="spc"; version="0.6.8"; sha256="1w63rwalw6m4dd44nhpdvvwawj1i8001vli9359a6q50m96i4ij5"; depends=[]; };
   spc4sts = derive2 { name="spc4sts"; version="0.6.3"; sha256="0lvsixjgdfgnr7y7kk2227bcs8sqy2mrpw50dwwgdjvm5q0sr7l7"; depends=[gridExtra rpart]; };
   spcadjust = derive2 { name="spcadjust"; version="1.1"; sha256="016i3zaaq800x4niz4fixa57nfj1m10sz5xskff4vq4v9fjn2sl0"; depends=[]; };
   spcosa = derive2 { name="spcosa"; version="0.4-2"; sha256="1y3qbz9kslb5k7h62pk7g2lk69y9i625r2q0dychhj91fdqx30n4"; depends=[ggplot2 rJava sp]; };
   spcov = derive2 { name="spcov"; version="1.3"; sha256="037pl4kh87b85v7q1nrxcm7vw5f3pr7m2b76424ic9sxa56wfdnp"; depends=[]; };
   spcr = derive2 { name="spcr"; version="2.1.1"; sha256="09clpz0vqssagmfjcrs2qp5i61ppjr9nxn342l6gbdnbw91wc7f3"; depends=[]; };
   spd = derive2 { name="spd"; version="2.0-1"; sha256="00zxh4ri47b61jkcjf5idl9hhlfld6rhczsnhmjsax59884f2i8m"; depends=[KernSmooth]; };
-  spdep = derive2 { name="spdep"; version="1.3-3"; sha256="06j26v0w33vyh5ilq1cn0rh8z0lrr3n0lxwxc7bsk2w524d3v6yw"; depends=[boot deldir e1071 s2 sf sp spData units]; };
+  spdep = derive2 { name="spdep"; version="1.3-5"; sha256="09p6aqzg109vnbh56nf0v4qj34l4dmh8ak3d9y7l04mwvl3gm3ms"; depends=[boot deldir e1071 s2 sf sp spData units]; };
   spdesign = derive2 { name="spdesign"; version="0.0.3"; sha256="0gz7862pp18cliz8n6grjzjq0ldy5cxln16w1i18ifqpjdhss53s"; depends=[cli dplyr future matrixStats randtoolbox stringr tibble]; };
   spdl = derive2 { name="spdl"; version="0.0.5"; sha256="185qzlwac7acq126xpvcd71nv25zgkrdr8m73gv2sn1zxj78hyid"; depends=[RcppSpdlog]; };
   spdownscale = derive2 { name="spdownscale"; version="0.1.0"; sha256="0pl560km9629iwy13h7359ab7ixzs09hg986kvk0xbnc348srb86"; depends=[]; };
@@ -18507,7 +18800,7 @@ in with self; {
   spdynmod = derive2 { name="spdynmod"; version="1.1.6"; sha256="1zbh1p3lmil4vsrw7q6af3p5xqvhw2k9hx59kbzabnzj4gy8wjk3"; depends=[animation deSolve raster sp]; };
   speakr = derive2 { name="speakr"; version="3.2.2"; sha256="159ir49i2fdw5fcq93rqdhf5ij5s9sfr2ygdy2snbgnx3rgi1sfc"; depends=[cli ggplot2 lifecycle quarto readr stringr tibble]; };
   speaq = derive2 { name="speaq"; version="2.7.0"; sha256="0z9a3nbfazphp090c6hg892vjq7jp4g4cij3s5wbs1q567inbmlk"; depends=[cluster data_table doSNOW foreach ggplot2 gridExtra impute MassSpecWavelet missForest reshape2 Rfast rvest xml2]; };
-  spearmanCI = derive2 { name="spearmanCI"; version="1.0"; sha256="1xi51dphv91j5hgrd25sqs1li0g24cwpa1k162arw5b0qfl04f17"; depends=[emplik MASS]; };
+  spearmanCI = derive2 { name="spearmanCI"; version="1.1"; sha256="0dn5gbyvw5rqqqbag16ljfwm4pc8mzyjq3fb49g7zq3c6l16wj27"; depends=[emplik MASS]; };
   spec = derive2 { name="spec"; version="0.1.9"; sha256="0jsl37m912pg3dcphs8l83ywj5rr9q0s9si57nkvz64skdkypcav"; depends=[csv encode magrittr]; };
   speccurvieR = derive2 { name="speccurvieR"; version="0.3.0"; sha256="01lxyc2v7schci37m1lafjqxqas9dxy614ia742i1g4mb530cch8"; depends=[combinat dplyr fixest ggplot2 magrittr pbapply stringr tidyr]; };
   specieschrom = derive2 { name="specieschrom"; version="1.0.0"; sha256="0h2hgh0amvv7in5hplh6x3k95bnjm6d24nzmc57yihcsqjndli9k"; depends=[colorRamps ggplot2 reshape2]; };
@@ -18523,14 +18816,13 @@ in with self; {
   spectralGraphTopology = derive2 { name="spectralGraphTopology"; version="0.2.3"; sha256="09nsszm2f6q8kz84kn7ihhb627q186jwpvr6fm633l8app4ilf2x"; depends=[MASS Matrix progress Rcpp RcppArmadillo RcppEigen rlist]; };
   spectralR = derive2 { name="spectralR"; version="0.1.3"; sha256="1kz47gydsqa3g47m6z546sf5jnfscsly1v3dpj97ns0qf5sh57bp"; depends=[dplyr geojsonio ggplot2 reshape2 rgee rlang sf tibble tidyr]; };
   spectre = derive2 { name="spectre"; version="1.0.2"; sha256="1n5z7970pzhavdf7qhxsb7gzz8dsrwa1pwyxf8n6sxvmdbk8v2z1"; depends=[ggplot2 Rcpp RcppProgress testthat]; };
-  spectrolab = derive2 { name="spectrolab"; version="0.0.18"; sha256="1iwhsz19yfvf71zg1ifg9d3xb9rjbng1h5g7vfakm1jckin9mrv2"; depends=[RColorBrewer shiny shinyjs]; };
   sped = derive2 { name="sped"; version="0.3"; sha256="0dxfr9fpwmnl0nq6szg5ph1mfl2qp28n4d2kkq092qyzbvk74rnp"; depends=[pooh]; };
   spedecon = derive2 { name="spedecon"; version="0.1"; sha256="06vyyznf5xlwqb662plvnm7pjjwwsb6h745yr9izjam1zyavvq1c"; depends=[quadprog]; };
   speech = derive2 { name="speech"; version="0.1.5"; sha256="1jxlk24vspsbk27p63kccadbf09vvb7xxx0wahj7908ygg7q5a1f"; depends=[dplyr lubridate magrittr pdftools purrr rvest stringr tibble tidyr tm]; };
   speechbr = derive2 { name="speechbr"; version="2.0.0"; sha256="0jf0zj64hm1zxbpcry1iff3nddf2wl315whzcbzj8936qfam92p5"; depends=[abjutils dplyr glue httptest httr janitor lubridate magrittr purrr rlang rvest stringr tibble tidyr xml2]; };
   speedglm = derive2 { name="speedglm"; version="0.3-5"; sha256="0jxvh9gbhip1hj7hzjs5fj8iw6ibvl6hc0llcg2j9wqgq5vkcrpq"; depends=[biglm MASS Matrix]; };
   speedycode = derive2 { name="speedycode"; version="0.3.0"; sha256="0k9pnrmv5zmiyia1js3va2gx7nwbg2b35jl4r1lm2hwl3c901jfw"; depends=[dplyr purrr stringr]; };
-  speedytax = derive2 { name="speedytax"; version="1.0.3"; sha256="13h3zcxc28a830pqhbkq1val1rli0khhalqdnizv7gyxjgd38qph"; depends=[dplyr phyloseq Rcpp stringr tibble tidyr]; };
+  speedytax = derive2 { name="speedytax"; version="1.0.4"; sha256="0iqgn0mxw5ygnnjz1sbmpz1wqcx1gx5xpncbl93ra8k7qmidw7gk"; depends=[dplyr phyloseq Rcpp stringr tibble tidyr]; };
   spef = derive2 { name="spef"; version="1.0.9"; sha256="115lmv2a21ws1mj22v1fbk72mqn3siqmw3frbg4nci96lnyr7qh6"; depends=[BB ggplot2 nleqslv plyr sm SQUAREM survival]; };
   speff2trial = derive2 { name="speff2trial"; version="1.0.5"; sha256="18g4ap6m9li42amj1aa9dazp2sqz161zfijklmnphq63f2b5gczc"; depends=[leaps survival]; };
   spellcheckr = derive2 { name="spellcheckr"; version="0.1.2"; sha256="09snc1ymzr4njnr3w502b84dqwjjd414higjxqi48jvh27br5k1l"; depends=[data_table dplyr stringr]; };
@@ -18542,14 +18834,14 @@ in with self; {
   spfa = derive2 { name="spfa"; version="1.0"; sha256="0xkq5679whrvxnbbcbari533jpima27gcyqbszvkg0z95q956ndj"; depends=[Rcpp RcppArmadillo]; };
   spfda = derive2 { name="spfda"; version="0.9.1"; sha256="094j68gyy5yw7d2mn3n864h6vf8nd76x9ypfzc1liggnw7qs0fdl"; depends=[mathjaxr]; };
   spfilteR = derive2 { name="spfilteR"; version="1.1.5"; sha256="1s11d88y4jwzd85lyircgz9j67mwbqld1jicynxb7wayk8akfyf4"; depends=[]; };
-  spflow = derive2 { name="spflow"; version="0.1.0"; sha256="0a5nirccwcc2z4dn3gxdlhdjz7sxv1r23clawy0kwn4ggdkmphp1"; depends=[coda Matrix Rdpack RSpectra]; };
   spgs = derive2 { name="spgs"; version="1.0-4"; sha256="0ln0fhxiavzwp5qlz5akk5896dyznwbz23f816vkjnxmw7pi4p70"; depends=[]; };
-  spgwr = derive2 { name="spgwr"; version="0.6-36"; sha256="1fkz37zwmarcsl101z172kiar48zyi6s216lhc8zc39g4kqpj99a"; depends=[sp spData]; };
+  spgwr = derive2 { name="spgwr"; version="0.6-37"; sha256="1lxl4byihwih0iban0ypsh7p7vzbprjzl4xv62181dbsjm5xhmyk"; depends=[sp spData]; };
   sphereTessellation = derive2 { name="sphereTessellation"; version="1.2.0"; sha256="1b8wxbh44qd0rznjln3icp9k4jy598rva9kwcgzscpjm5j86r97w"; depends=[BH colorsGen Polychrome Rcpp RcppCGAL RcppEigen rgl]; };
   spherepc = derive2 { name="spherepc"; version="0.1.7"; sha256="0y05ylyxzawgjlivaxs513mfjjfmw6fm98b83sq76n8yw56pr9ny"; depends=[geosphere rgl sphereplot]; };
   sphereplot = derive2 { name="sphereplot"; version="1.5.1"; sha256="1jxjd66hcyqdizzikxsncswswj7c1rprigz1xii82rkcms8iygzm"; depends=[rgl]; };
+  spheresmooth = derive2 { name="spheresmooth"; version="0.1.0"; sha256="1xf1cg3y7dvx274ccmia97lj278ghpx2p1ayqrfxxl1cnw4p53rv"; depends=[]; };
   sphet = derive2 { name="sphet"; version="2.0"; sha256="1qr4n4kbmc58qmr8niqq3mnwv18x9q2f24c1kg67asf7n3pnmy77"; depends=[coda Matrix mvtnorm nlme sf sp spatialreg spData spdep stringr]; };
-  sphunif = derive2 { name="sphunif"; version="1.3.0"; sha256="1m4id7h3jd0r8p9j5ip4d5r79lk27j7xk4iwizjapd74i0vm84az"; depends=[doFuture doRNG foreach future gsl Rcpp RcppArmadillo rotasym]; };
+  sphunif = derive2 { name="sphunif"; version="1.4.0"; sha256="125w91cz60j3lkx8dm74c8gh67k5j2k8mypx7rihym9rsdibdric"; depends=[doFuture doRNG foreach future gsl Rcpp RcppArmadillo rotasym]; };
   spidR = derive2 { name="spidR"; version="1.0.2"; sha256="09n0fz9iqc3n4c72h9hyc0ybzaqzy4l1rypvaig5kl98kx5nng1i"; depends=[httr jsonlite rgbif rworldmap rworldxtra]; };
   spider = derive2 { name="spider"; version="1.5.0"; sha256="1y034v42jxjl3vj87iz5kaizq7fwppmn56z7yyvrrmk5ps4nqr1j"; depends=[ape pegas]; };
   spiderbar = derive2 { name="spiderbar"; version="0.2.5"; sha256="0yhxm3ns9xymm6msklpm1x0ahcq7gkfp1w92aafk2r3pip1g3ds5"; depends=[Rcpp]; };
@@ -18564,12 +18856,11 @@ in with self; {
   spiralize = derive2 { name="spiralize"; version="1.0.6"; sha256="10zz0f3z033pqi9rm3kgac85i5h8ngg2cx4dlr8z5y8v08dpln6b"; depends=[circlize GetoptLong GlobalOptions lubridate]; };
   spiritR = derive2 { name="spiritR"; version="0.1.1"; sha256="1fjr63rl9hwqxzgm4lkb9v74cxxpi4lrlcgjixdm7zgccm8ihdvh"; depends=[httr magrittr xml2]; };
   spiro = derive2 { name="spiro"; version="0.2.1"; sha256="08v290c62x915624hydzns6qdbfxh08zsbgffkgd89inn2bwj55g"; depends=[cowplot digest ggplot2 knitr readxl signal xml2]; };
-  splancs = derive2 { name="splancs"; version="2.01-44"; sha256="0wf1vr8ykcgfcvh4ajqpnpj2qa9l277n2qmnq5f95234npwnvm08"; depends=[sp]; };
+  splancs = derive2 { name="splancs"; version="2.01-45"; sha256="1lvn9gm2n7ic4cxz255jls33kkbblrdcka87v99apskz3pbg3k4b"; depends=[sp]; };
   splash = derive2 { name="splash"; version="1.0.2"; sha256="1iviwf7dxlrbfzjigl8wd8q3i0jkdnb7mr8zy6zg0w81p4416q42"; depends=[]; };
   spldv = derive2 { name="spldv"; version="0.1.3"; sha256="10bvx4z2b0kl2dl91dvr611cfp28dvch41vj9z1k1qlw03ybqpr8"; depends=[car Formula MASS Matrix maxLik memisc numDeriv spatialreg sphet]; };
-  splines2 = derive2 { name="splines2"; version="0.5.1"; sha256="0aac9p93sngr4ydyg0s9v3p2w444d09ghb3lan3r14j9v8i1aw1f"; depends=[Rcpp RcppArmadillo]; };
+  splines2 = derive2 { name="splines2"; version="0.5.2"; sha256="1wvj57b92qpqnn4bmd5gbbnnds32s6bm04bq72c1q3fr069r9r8b"; depends=[Rcpp RcppArmadillo]; };
   splinetree = derive2 { name="splinetree"; version="0.2.0"; sha256="0gqb3kwca42crrx6fj42ryl5pkxvankhp1chdlvi5lgg8mzmqsnl"; depends=[ggplot2 mclust mosaic nlme rpart treeClust]; };
-  splitFeas = derive2 { name="splitFeas"; version="0.1.0"; sha256="1cfiis32h5kkp8r1mndmj4xss9gw96vdzk7q68q3jhbwqiaxp9rp"; depends=[corpcor matrixStats]; };
   splitSelect = derive2 { name="splitSelect"; version="1.0.3"; sha256="03gziy1hhm35hw8q2w9w6d4x2zci5q2wds0mkzihvfm0wkshi4fw"; depends=[doParallel foreach glmnet multicool]; };
   splitTools = derive2 { name="splitTools"; version="1.0.1"; sha256="1qm9rippq5726vgsdcim4xvssv5r00d46zjzbcg06vy71klgrc6p"; depends=[]; };
   splitfngr = derive2 { name="splitfngr"; version="0.1.2"; sha256="0cf9y68m72j890a732m0n784nr12ydljr6s8i80f0in6q8lmw8ls"; depends=[lbfgs]; };
@@ -18577,29 +18868,28 @@ in with self; {
   splithalfr = derive2 { name="splithalfr"; version="2.2.2"; sha256="0zy7p2cvxbq2p24vyi55hl4qcj42igfbsapmx3xh15rpcdhzsmm0"; depends=[bcaboot dplyr psych rlang tibble]; };
   splitstackshape = derive2 { name="splitstackshape"; version="1.4.8"; sha256="0mpyf2kkfdl69pdc6brl1r6101vyc6pgr7z17s55ppg3y71k4q35"; depends=[data_table]; };
   splm = derive2 { name="splm"; version="1.6-5"; sha256="0zwyl8pyx5ldr1rwqlkmzzbjc7r4dp261lsvw4b37ydm0sdhsizk"; depends=[bdsmatrix MASS Matrix maxLik nlme plm spam spatialreg spdep stringr]; };
-  splmm = derive2 { name="splmm"; version="1.1.3"; sha256="0z04arwzy5169f6bhc8cbdc07zcmd5safpii5a3g7bqallmzipnr"; depends=[emulator ggplot2 gridExtra MASS miscTools penalized plot3D Rcpp RcppArmadillo]; };
+  splmm = derive2 { name="splmm"; version="1.2.0"; sha256="1qnzm1mnx5i0q1a5534s5n6fwgs95fdknc6k5s65z9jqd33n39c4"; depends=[emulator ggplot2 gridExtra MASS miscTools penalized plot3D progress Rcpp RcppArmadillo]; };
   splot = derive2 { name="splot"; version="0.5.4"; sha256="14x2fsf41izlb99pxypgy3f4yaj33j04a68nan0f9545fjl78v4x"; depends=[]; };
   spls = derive2 { name="spls"; version="2.2-3"; sha256="0bmb0ai5z80njhypd342i711x0bdkwcvlyn374lyyzj8h3d97mmv"; depends=[MASS nnet pls]; };
   splus2R = derive2 { name="splus2R"; version="1.3-5"; sha256="097bpzazw5ryb6izbmz2sdlghn3qvh7c7wsnn0j08j65f9bfmc77"; depends=[]; };
   splutil = derive2 { name="splutil"; version="2022.6.20"; sha256="02hic08ckjg7iyjcyjncrkvjnpbpxk0v8g1yxy2s1vaw0mmfj4cz"; depends=[data_table ggplot2 magrittr]; };
   spm = derive2 { name="spm"; version="1.2.2"; sha256="0slpy3cmv5l2gbgvy3yfdhzm73427bl39shadpmf3jkkbflcczsn"; depends=[biomod2 gbm gstat psy randomForest ranger sp]; };
   spm2 = derive2 { name="spm2"; version="1.1.3"; sha256="1fac131zg5z7jxbkjy6745b4pggpmkjyl9iyq15yr7yzfs77yz62"; depends=[e1071 fields gbm glmnet gstat nlme randomForest sp spm]; };
-  spmodel = derive2 { name="spmodel"; version="0.5.1"; sha256="1mzayk0ncd7kwjc3bdv3kl9zisd93giawl060d1fj923pz0rzcpx"; depends=[generics Matrix sf tibble]; };
+  spmodel = derive2 { name="spmodel"; version="0.6.0"; sha256="0dllygmpc75s8cwxxgzy49a8098zb37k3xalk4l0n1ccfqxspf8b"; depends=[generics Matrix sf tibble]; };
   spmoran = derive2 { name="spmoran"; version="0.2.3"; sha256="0gjniczvggcpgyriskcbry8hn5pbf4ga4nx6hj98kvy5qrv5dcnj"; depends=[doParallel fields FNN foreach ggplot2 Matrix rARPACK RColorBrewer sf spdep vegan]; };
-  spnaf = derive2 { name="spnaf"; version="0.3.1"; sha256="06gz7gxh3r0ci1v46hgcs5a1837vqlqbg6vkcv1m5r4vp2n4hkc8"; depends=[dplyr magrittr rlang sf spdep tidyr]; };
+  spnaf = derive2 { name="spnaf"; version="1.0.0"; sha256="1xiky882smpyqscdwaqgjx505f5gwpl9i419n15j90lv4f768k6q"; depends=[deldir dplyr magrittr rlang sf spdep tidyr]; };
   spnn = derive2 { name="spnn"; version="1.2.1"; sha256="1yj89j7nynfyw1ikm6q5kdwdgiiwxx0aa6kgnri5wfnb4l0356l7"; depends=[MASS Rcpp RcppArmadillo]; };
   spocc = derive2 { name="spocc"; version="1.2.3"; sha256="0ldr7n889jch6q4b4y2ligd3z5g4z4jdf5rk1cig86x9m5wdw57f"; depends=[crul data_table jsonlite lubridate rebird rgbif ridigbio rvertnet s2 tibble whisker wk]; };
   spoiler = derive2 { name="spoiler"; version="1.0.0"; sha256="105shgv62x3qjw4477qfi79h9bdih4n8hg6wn842dyfq940wkr5b"; depends=[htmltools shiny]; };
   spongebob = derive2 { name="spongebob"; version="0.4.0"; sha256="1ar5173fwx1am5rgjlnczfla6b49g0azl0h9vn89ipw7f71rr5j7"; depends=[]; };
   spongecake = derive2 { name="spongecake"; version="0.1.2"; sha256="13fxizbfjvqkhkmxk5bwv2fj2xyjkbxrxicpdgwpg0wsk4dhj3s8"; depends=[ggplot2 jpeg magrittr plyr]; };
   spooky = derive2 { name="spooky"; version="1.4.0"; sha256="18qlm1dvspw2n7xanrxvflgvdppva3pxrs6m56cia2klv95rn1xn"; depends=[entropy fANCOVA fastDummies ggplot2 greybox imputeTS lubridate modeest moments philentropy purrr readr scales tictoc]; };
-  spork = derive2 { name="spork"; version="0.3.2"; sha256="0p9r203nnvannghlr3vggg30nmyz5j902dr7p2p2d3f1gh9vf3ss"; depends=[ggplot2 kableExtra latexpdf png]; };
+  spork = derive2 { name="spork"; version="0.3.3"; sha256="035s59y1jfjyjmi7352yj04nzv29q6v48maifikdzn4b7l6mlsbg"; depends=[ggplot2 kableExtra latexpdf png]; };
   sport = derive2 { name="sport"; version="0.2.1"; sha256="1vifh5x3rqnj0y7lzxhxa8jiiq9gza7r55kajcdib0hr65amwssk"; depends=[data_table ggplot2 Rcpp]; };
   sportyR = derive2 { name="sportyR"; version="2.2.2"; sha256="1br7wbxr488pknqq3ik6w86rrkx5cn61jrm2b8az27zh8k362dv6"; depends=[ggfittext ggplot2 glue rlang]; };
   spotidy = derive2 { name="spotidy"; version="0.1.0"; sha256="0hg8d3piiwp4q3257qsv5l41zc3c5a8mbq595ci63id8fc2q2pkd"; depends=[dplyr httr magrittr purrr]; };
   spotifyr = derive2 { name="spotifyr"; version="2.2.4"; sha256="14rq4yzvly3yl1xnndpzp6mp2mmbvc0qwkx75lb85gad8271a4ij"; depends=[assertthat dplyr httr janitor jsonlite lubridate magrittr purrr readr rlang rvest stringr tibble xml2]; };
   spotoroo = derive2 { name="spotoroo"; version="0.1.4"; sha256="004pjlad31xkxvl9bm4ga33ikmph93blb0qd1rpvs8s0lgi7v6pn"; depends=[cli dplyr geodist ggbeeswarm ggExtra ggplot2 ggrepel patchwork progress]; };
-  spqdep = derive2 { name="spqdep"; version="0.1.3.2"; sha256="03lzp368ylkf1hrnl00kndlkmp9lwma0j9w9b3hn5glzdljhalxl"; depends=[broom dplyr ggplot2 gridExtra gt gtools igraph lwgeom magrittr Matrix purrr rgeoda rsample sf sp spatialreg spdep tidyr]; };
   spray = derive2 { name="spray"; version="1.0-25"; sha256="1mdnabkrj10r4bqll0qd2h7nqpmalbwfs8kzry1wxxy0j1886fv3"; depends=[disordR magic mathjaxr partitions Rcpp]; };
   spreadr = derive2 { name="spreadr"; version="0.2.0"; sha256="180dvr39i1glc0jllsnnglwrxh133q20v7px2fmdi7229pr175id"; depends=[assertthat extrafont ggplot2 igraph Matrix Rcpp]; };
   spreval = derive2 { name="spreval"; version="1.1.0"; sha256="1zapfld0d6yyxqvijkb243zqin9xwqhmnznd2nnd4cp0rq3106zf"; depends=[interp timeDate]; };
@@ -18617,7 +18907,6 @@ in with self; {
   spsurv = derive2 { name="spsurv"; version="1.0.0"; sha256="11jlbzvzxv3d1d0nwpbii46ddvphglrxv25rw7pvxbybcx2i7k6x"; depends=[BH coda loo MASS Rcpp RcppEigen rstan rstantools StanHeaders survival]; };
   spsurvey = derive2 { name="spsurvey"; version="5.5.1"; sha256="13h25mhb45s2k73a5709zlxfxylxqls0avan6d8pcp0iyrmpxjak"; depends=[boot crossdes deldir lme4 MASS sampling sf survey units]; };
   spt = derive2 { name="spt"; version="2.5.1"; sha256="04j38d2b35p4798znnc49vqrg8r8bygwi07vybfj3nzimlp2mkrn"; depends=[]; };
-  sptm = derive2 { name="sptm"; version="2019.11-25"; sha256="1hdymzngdppmh56dqh0k88n9hg68pbx9rgmimbz4ihnfx2plvadh"; depends=[kyotil survey survival]; };
   sptotal = derive2 { name="sptotal"; version="1.0.1"; sha256="09wkcc1lbc9d0m19ncqcb3xxgl30lyii6r5nqb9rbjqyf2jl2iak"; depends=[ggplot2 viridis]; };
   spuRs = derive2 { name="spuRs"; version="2.0.2"; sha256="00c0hnyrcbkbj269czxbfgmgi88y0vxzm79sxclllkzr9rdd1p53"; depends=[lattice MASS]; };
   spup = derive2 { name="spup"; version="1.4-0"; sha256="045bvl2nzr78yrzp07718m5929wxmj0g4rd535f4qdaj95m137dm"; depends=[gstat magrittr mvtnorm purrr raster whisker]; };
@@ -18630,14 +18919,16 @@ in with self; {
   sqlparseR = derive2 { name="sqlparseR"; version="0.1.0"; sha256="0zcna9y61v1qklpnhrwgv1djg4hyx3k5an32caapszi8qm9nq3x8"; depends=[reticulate]; };
   sqlscore = derive2 { name="sqlscore"; version="0.1.4"; sha256="1wvjiy7g0rxfy10vssdrv5li5sbvrin9wjy0ai0nxk503kw7g74k"; depends=[dbplyr]; };
   sqlstrings = derive2 { name="sqlstrings"; version="1.0.0"; sha256="147496898m4rqa63p72axw0g0a208pcy22mdhn0s7zv0j50lilc4"; depends=[fs readr stringr]; };
-  squant = derive2 { name="squant"; version="1.1.4"; sha256="1z4qi1svv6186gj3nh4z3hvjd54i7grj6ckgdyk4dmyn7zh8fw5w"; depends=[ggplot2 glmnet survival]; };
+  sqltargets = derive2 { name="sqltargets"; version="0.0.1"; sha256="1lf1p0lk3z8hmfpbzprjsp77m5dszgdwzq5vhrcrg5mbr2mkz697"; depends=[cli DBI fs glue purrr readr rlang RSQLite stringr tarchetypes targets withr]; };
+  squant = derive2 { name="squant"; version="1.1.5"; sha256="0ab4hrjkvd04jxfp40dz350mkv4a8a57gjf74mg631pmipw3cd5n"; depends=[ggplot2 glmnet survival]; };
   squash = derive2 { name="squash"; version="1.0.9"; sha256="1x66iamj5pir6l9aqx4x7xylxxjpjrw8vcix9rbhfd0y0y2iqf7z"; depends=[]; };
   squat = derive2 { name="squat"; version="0.3.0"; sha256="0a5vm1ldwysadf50jvq7p988gv9arszg2a1hppcfjvwq193ywy0g"; depends=[cli dbscan dtw fdacluster funData furrr ggplot2 ggrepel MFPCA progressr purrr Rcpp RcppArmadillo RcppEigen rlang roahd scales tibble tidyr]; };
   squeezy = derive2 { name="squeezy"; version="1.1-1"; sha256="1dykp6hz056f9ajx1sg5bl89v4qmn41lsp9p9zzd9yib6d6ryfsm"; depends=[glmnet Matrix multiridge mvtnorm]; };
   squid = derive2 { name="squid"; version="0.2.1"; sha256="1zpm787ifzrhww32ghi57ii37p9dssq7q7gbai9iqass78z90y2j"; depends=[arm brms data_table ggplot2 lme4 MASS plotly shiny shinyMatrix]; };
   sr = derive2 { name="sr"; version="0.1.0"; sha256="0d8c7gsr48xxg7y09n0namzqp148bk4idz51d2d5xlmlzcyq74k8"; depends=[dplyr ggplot2 progress RANN vdiffr]; };
   sra = derive2 { name="sra"; version="0.1.4.1"; sha256="080pdhzsf1bawi9l1bbvzdk7s9733sdlx4cpcm3whf9ffdbg6ahz"; depends=[]; };
-  srcr = derive2 { name="srcr"; version="1.1.0"; sha256="1cv4j27w9lssllih0lg172x1p001sk13p9hg39579lx6rpb9l75q"; depends=[DBI dplyr jsonlite]; };
+  srcpkgs = derive2 { name="srcpkgs"; version="0.1"; sha256="1j7yzm6hl98jy9jx203zkr65d2zivx3k6zhnk3fnpvvpki1ma61s"; depends=[cli devtools pkgload]; };
+  srcr = derive2 { name="srcr"; version="1.1.1"; sha256="0hmlvq8rwhdv8hh7i517ml46p1hvd2idby4xx7firin8ca1829n5"; depends=[DBI dplyr jsonlite]; };
   sregsurvey = derive2 { name="sregsurvey"; version="0.1.3"; sha256="1wpqsjhj4vl8gzma4i9y75srzwl8zmkj55lmrhni7xar4d81mnb4"; depends=[caret dplyr gamlss gamlss_dist magrittr TeachingSampling]; };
   srlTS = derive2 { name="srlTS"; version="0.1.1"; sha256="1alqywbp36adgnak1s78mcwfg0gcg90a9412nypylsk6bfa7wgsv"; depends=[dplyr ncvreg RcppRoll rlang yardstick]; };
   srlars = derive2 { name="srlars"; version="1.0.1"; sha256="1l98d24r746h0yh1g885slaq292d3xiy355ihkwdrhvvmirs7l0f"; depends=[cellWise glmnet]; };
@@ -18648,6 +18939,7 @@ in with self; {
   ss3sim = derive2 { name="ss3sim"; version="1.0.3"; sha256="0s2yajlhi07fvqc0rr4msd9g2jrswb83dx55wsxnw925vikqa5kz"; depends=[bbmle foreach ggplot2 gtools r4ss]; };
   ssMRCD = derive2 { name="ssMRCD"; version="0.1.0"; sha256="16s7jpm9yik1l5s682hdrmh22hrxk5qzy31ls54g48125j8v96la"; depends=[car dbscan dplyr ggplot2 plot3D robustbase scales]; };
   ssMousetrack = derive2 { name="ssMousetrack"; version="1.1.6"; sha256="014b1ylynn3l3k24p4zr001ys32ajrxxdpk3jwl0lmfm7r63as58"; depends=[BH CircStats cowplot dtw ggplot2 Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
+  ssMutPA = derive2 { name="ssMutPA"; version="0.1.0"; sha256="15nrv2yzs5ydzm7030cznyqxdisg68hld28z3060bvq4ad3a9wvq"; depends=[ggplot2 ggridges igraph kernlab maftools Matrix NbClust pheatmap RColorBrewer survival]; };
   ssaBSS = derive2 { name="ssaBSS"; version="0.1.1"; sha256="1sfhrp5y4hhnc417jq2vyk935iyicl58jbw4nwrj3rayh0ng7dbp"; depends=[BSSprep ggplot2 ICtest JADE tsBSS xts zoo]; };
   ssanv = derive2 { name="ssanv"; version="1.1"; sha256="17a4a5azxm5h2vxia16frcwdyd36phpfm7fi40q6mnnrwbpkzsjd"; depends=[]; };
   ssc = derive2 { name="ssc"; version="2.1-0"; sha256="1lq71p8hbjfg4a52009810k5dmhak9ddk1dywvhy7v2gjmxqnadw"; depends=[proxy]; };
@@ -18670,12 +18962,13 @@ in with self; {
   ssmodels = derive2 { name="ssmodels"; version="1.0.1"; sha256="19w3vr4zz23xbb4mr4zwqwj024i10hgnpm0cf47qh5c1zkjcwdib"; depends=[miscTools numDeriv pracma Rdpack sn]; };
   ssmrob = derive2 { name="ssmrob"; version="1.0"; sha256="1xzhk8ni6375p2nfnl39x51ny2wi53a09fkr95nrdbxhkcm5flvz"; depends=[MASS robustbase sampleSelection]; };
   ssmsn = derive2 { name="ssmsn"; version="0.2.0"; sha256="0fzqdkqhj5hh8pzcwh7i0rglgdq22a5mriyis8r1vhlkdc7n5m39"; depends=[MCMCpack]; };
-  sspse = derive2 { name="sspse"; version="1.1.0"; sha256="1akyzzf76gc8k18my1b4knwnam0dg3nakrq79n4240k8vwyix1vj"; depends=[coda KernSmooth RDS scam]; };
+  sspse = derive2 { name="sspse"; version="1.1.0-1"; sha256="0dy78fkazjm6ai2smxfkkhfzgbqk4sxvq7yhj89zdnk1vp1p1fy7"; depends=[coda KernSmooth RDS scam]; };
   ssr = derive2 { name="ssr"; version="0.1.1"; sha256="0l2f8lsmwv2f4y708g32jy2s4jj0j686830qp4a5ailyrdbbz1ix"; depends=[caret e1071]; };
   ssrm_logmer = derive2 { name="ssrm.logmer"; version="0.1"; sha256="1i9rrsixl3swd04w1gf9gf1r2wb9nkvwhc8ld4bx4zxzm1031f67"; depends=[sfsmisc statmod]; };
   ssrn = derive2 { name="ssrn"; version="0.1.0"; sha256="1s78wiyn6ff6f55cp5knhram6m61cbckdnzm9q6imrjwngjci6cx"; depends=[dplyr magrittr purrr rlang stringr tibble tidyr]; };
   sss = derive2 { name="sss"; version="0.2.2"; sha256="1v2y3mykbh09573jdadl7rjdv1dy7f86pc98sdvkfz2g1ivwnnc3"; depends=[assertthat xml2]; };
   sssc = derive2 { name="sssc"; version="1.0.0"; sha256="00m5zfd3jnbxa8x76v4pfyl4qdfq90n8rqx4hngany0ka1z5g7m6"; depends=[changepoint e1071 ggplot2 VGAM]; };
+  sstvars = derive2 { name="sstvars"; version="1.0.1"; sha256="16ans039cx5kj0l1l8108jfplgz4mq5bbqhixks2dqmlsn5qn34m"; depends=[pbapply Rcpp RcppArmadillo]; };
   ssym = derive2 { name="ssym"; version="1.5.8"; sha256="06qmzlsk232d3vwzb7hjrbrfw0jn6br55v1nldjij3nl75c52xw7"; depends=[Formula GIGrvg normalp numDeriv sandwich survival]; };
   st = derive2 { name="st"; version="1.2.7"; sha256="0j29k9fg8659yw1jwmcakiic51rin1dj1fmvpapy2wmz4c3pr0fp"; depends=[corpcor fdrtool sda]; };
   stR = derive2 { name="stR"; version="0.6"; sha256="1gh26yhcpkiif6zyrrg0rw4118xcf7j1d1wf70wgyrwb1hrr6vcv"; depends=[foreach forecast Matrix quantreg SparseM]; };
@@ -18693,6 +18986,7 @@ in with self; {
   stabm = derive2 { name="stabm"; version="1.2.2"; sha256="1vslidq2pzpwhsrsklghaqsdjjf4w4wqs2dng0p68zhrv5vlivhq"; depends=[checkmate Matrix]; };
   stabreg = derive2 { name="stabreg"; version="0.1.2"; sha256="1jrxyv0d33vd9vdlj1cv1a2qdz8iqgr726f54dgazwsz3cpyy2ia"; depends=[numDeriv]; };
   stabs = derive2 { name="stabs"; version="0.6-4"; sha256="1nf1yg14cgxrs4np1yghpzw1nczaslfv3rvf3918wrlzg0vp6l7q"; depends=[]; };
+  stackgbm = derive2 { name="stackgbm"; version="0.1.0"; sha256="05fvp2d96n82dsldlip47lc146a094al6i7dyq5zg3ika14mq6hw"; depends=[pROC progress rlang]; };
   stacking = derive2 { name="stacking"; version="0.1.2"; sha256="0kizp8ivkan5qjqvc19fg5f5n1k32z1nw81m41nrnblp5c9klvg7"; depends=[caret]; };
   stacks = derive2 { name="stacks"; version="1.0.4"; sha256="1i28m6jxg83h3as74ax39frdwbzwnsq20vb18shswc62azrimw9q"; depends=[butcher cli doFuture dplyr foreach future generics ggplot2 glmnet glue parsnip purrr recipes rlang rsample tibble tidyr tune vctrs workflows]; };
   stacomiR = derive2 { name="stacomiR"; version="0.6.1"; sha256="0ik0804j8fvqmpj0xyzmjdsykw3672a5vyb4dhiss7dc1g4la20f"; depends=[DBI dplyr ggplot2 Hmisc intervals lattice lubridate magrittr mgcv pool RColorBrewer reshape2 rlang RPostgres scales stacomirtools stringr withr xtable]; };
@@ -18701,7 +18995,7 @@ in with self; {
   stagedtrees = derive2 { name="stagedtrees"; version="2.3.0"; sha256="1xvik7wk8kccdrnzxxqw3vga4498bm2k50bz4hmfx4xrrq3bapwg"; depends=[cli matrixStats rlang]; };
   staggered = derive2 { name="staggered"; version="1.1"; sha256="0z9358qbgn637j8iz5qwr4nyrlvi9w85l325vxpc61mcwksx5ip8"; depends=[coop dplyr magrittr MASS purrr Rcpp RcppEigen reshape2 tidyr]; };
   stampr = derive2 { name="stampr"; version="0.3.1"; sha256="15jzf67db9yx4rw1c849v50fcjch8f37h37ly57nxp057zj2b1d2"; depends=[dplyr geosphere lwgeom rlang sf spdep]; };
-  stan4bart = derive2 { name="stan4bart"; version="0.0-7"; sha256="08c6s9kg6pzsh411wnv3pg7717r6kyl1sbm3j4vl0b0sssv12z9s"; depends=[BH dbarts Matrix Rcpp RcppEigen RcppParallel]; };
+  stan4bart = derive2 { name="stan4bart"; version="0.0-8"; sha256="1i0asl380p38ksi59wmyi23jwq05mm9kxymphyqjniq68i0lban4"; depends=[BH dbarts Matrix Rcpp RcppEigen RcppParallel]; };
   standardize = derive2 { name="standardize"; version="0.2.2"; sha256="008nz9vf08qxwdsn373yzpmsw5lhbm6mpm6dlwyys58wq0bdvh28"; depends=[lme4 MASS stringr]; };
   standardlastprofile = derive2 { name="standardlastprofile"; version="1.0.0"; sha256="0hj4hb2x7j1mfhkr6ccxjl4zkvhy3h0lvs71vzrz4mja3453bs5x"; depends=[]; };
   standartox = derive2 { name="standartox"; version="0.0.2"; sha256="03g07yfw1l0j2xqjl74pvidlrrv2ia2kmhb94asj5d5xq7hr1004"; depends=[data_table fst httr jsonlite]; };
@@ -18713,10 +19007,10 @@ in with self; {
   starma = derive2 { name="starma"; version="1.3"; sha256="07r0kyabhgbm2v39fcrw0qhxcxj9a9cb45g9chzcnn9qmvramcwx"; depends=[ggplot2 Rcpp RcppArmadillo scales]; };
   starnet = derive2 { name="starnet"; version="0.0.6"; sha256="0gbg8svyj4nh846q7986ap7jjry599kb1348k9lifz19kvyr4rn4"; depends=[cornet glmnet Matrix survival]; };
   starry = derive2 { name="starry"; version="0.1.2"; sha256="18dn18y5vs4fhj3jzm2zmvyx2wqakkrkppmggizz60vrarnaqp8i"; depends=[bslib car corrr dplyr ggplot2 magrittr shiny shinyjs shinyWidgets stringr]; };
-  stars = derive2 { name="stars"; version="0.6-4"; sha256="0mqd2dfa8jhxjmfphvv3rkw2lri5sz49042asj5lyln3wkylqjj2"; depends=[abind classInt rlang sf units]; };
+  stars = derive2 { name="stars"; version="0.6-5"; sha256="1b5gs0qa8097f2mvz4rgl46wrvk1rbbbi2a4s901hdg4bkr15jsg"; depends=[abind classInt rlang sf units]; };
   starsExtra = derive2 { name="starsExtra"; version="0.2.8"; sha256="0r3nqdgwx0nz1q9nm9nfc1awdbm3n52pqrc5hln6dw23wbpvzfd3"; depends=[mgcv nngeo sf stars units]; };
   starsTileServer = derive2 { name="starsTileServer"; version="0.1.1"; sha256="04z3xaijhgn5g10vvx19lya6v17ypcq00w4jlgkap3fafw61pqhn"; depends=[assertthat leaflet plumber png R6 rlang sf stars units]; };
-  starschemar = derive2 { name="starschemar"; version="1.2.4"; sha256="0q2d4a7frg7ffcsgs0sgkq7a3aazpbg3fbcxf0ygiwg4v4djir57"; depends=[dplyr generics purrr rlang snakecase tibble tidyr]; };
+  starschemar = derive2 { name="starschemar"; version="1.2.5"; sha256="11wbsxn5rvppinhhs12vma5xjva1ii440mqvnl5vjj23p0ldynmb"; depends=[dplyr generics purrr rlang snakecase tibble tidyr]; };
   startR = derive2 { name="startR"; version="2.3.1"; sha256="03wdaqiyrjhihsnw33z87baplv854znh4l7ww4ywmp17hl6hr7l8"; depends=[abind bigmemory ClimProjDiags easyNCDF future multiApply PCICt s2dv]; };
   starter = derive2 { name="starter"; version="0.1.15"; sha256="0lzaiw4m6wxniv8bgri33z8np49mqbgip4jhibsw0xa717anlqa4"; depends=[cli dplyr gert glue R_utils renv rlang rprojroot rstudioapi]; };
   startup = derive2 { name="startup"; version="0.21.0"; sha256="0iwq1nbiv2j78g17mq566qqv5p5msk1gmi0bb0hs1j1xx9vjamnl"; depends=[]; };
@@ -18725,8 +19019,8 @@ in with self; {
   starvz = derive2 { name="starvz"; version="0.8.0"; sha256="0slym8xwvihbslxm4llbzb8fybjbk040lbzng4fh5dsw58zf04r1"; depends=[BH data_tree dplyr ggplot2 gtools lpSolve magrittr patchwork purrr RColorBrewer Rcpp readr rlang stringr tibble tidyr yaml zoo]; };
   starwarsdb = derive2 { name="starwarsdb"; version="0.1.2"; sha256="00n9qqw4lbfk698qgvw8i42sy3dv5i5fiiqma3zks4rr9yspkldq"; depends=[DBI duckdb magrittr tibble]; };
   statBasics = derive2 { name="statBasics"; version="0.2.0"; sha256="1yphfzwj8hmqsz1qfckb05xxjyyi9r6g6iqcl8n20bs5hgr3d2s9"; depends=[stringr tibble]; };
-  statConfR = derive2 { name="statConfR"; version="0.0.1"; sha256="149aj19kp52yrgzs6aca50m3lfxrbiiy1mljhr6bxspckilmi36x"; depends=[]; };
-  statGraph = derive2 { name="statGraph"; version="0.5.1"; sha256="04m678ricwbrs64zrs36bzygkf5g6frsisyzyfxml9i40fzdv8pa"; depends=[cluster doParallel foreach igraph MASS rARPACK]; };
+  statConfR = derive2 { name="statConfR"; version="0.1.1"; sha256="0yzg2259r8w8b1kkrrj6494p9iyj7mk0zvxbwmgi8hbclrfqyw2n"; depends=[plyr]; };
+  statGraph = derive2 { name="statGraph"; version="1.0.1"; sha256="0jqb8bp0szzp67n52y0wsxpb0amb3sy00l25l933pxgfcj5hpdnz"; depends=[cluster doParallel foreach igraph MASS rARPACK]; };
   statVisual = derive2 { name="statVisual"; version="1.2.1"; sha256="1cc9p9g8lzn0lgh793r977yhqbk89l74m443gnznjlfml69bfb21"; depends=[Biobase dplyr factoextra forestplot gbm GGally ggdendro ggfortify ggplot2 ggrepel glmnet gridExtra knitr limma magrittr pheatmap pROC pvca randomForest RColorBrewer reshape2 rmarkdown rpart_plot tibble tidyverse]; };
   statar = derive2 { name="statar"; version="0.7.6"; sha256="0fjlmzndcm88dlqf6kmd1ssy0ll2g7vap6cai954lh37zbbbb674"; depends=[data_table dplyr ggplot2 lazyeval matrixStats rlang stringr tidyselect]; };
   statcanR = derive2 { name="statcanR"; version="0.2.6"; sha256="1hnf3zjlpfp86lii9sz8m2dvzbj9bs320ffdr81q2jsla71xybaa"; depends=[curl data_table dplyr DT ggplot2 httr qpdf qs readr reshape2 tibble]; };
@@ -18737,12 +19031,12 @@ in with self; {
   states = derive2 { name="states"; version="0.3.2"; sha256="1ffaj7rzqnwzki4hr5f90hz3racaigmk8qbzanxbbbfsy881avmr"; depends=[dplyr lifecycle rlang]; };
   statespacer = derive2 { name="statespacer"; version="0.5.0"; sha256="18bir894yrbff5h5pbqr342xckb78zzb24x2yrv9ffhrl5dvyk5d"; depends=[Rcpp RcppArmadillo Rdpack]; };
   statgenGWAS = derive2 { name="statgenGWAS"; version="1.0.9"; sha256="0isjzb83vwml654b1azgvnwiijpihdk24b3jamls976is359qvrv"; depends=[data_table ggplot2 Rcpp RcppArmadillo sommer]; };
-  statgenGxE = derive2 { name="statgenGxE"; version="1.0.7"; sha256="1jvlc2c6s07ivb89lsdahp3k5g0fn1cv1bkhm6fp6m21qzsrakag"; depends=[emmeans ggplot2 gridExtra knitr lme4 rlang statgenSTA xtable]; };
+  statgenGxE = derive2 { name="statgenGxE"; version="1.0.8"; sha256="16ngsxg3vhbg1kg0zs6ddfbcfgkz40ybxll2jfyc1n4l4ip9j52q"; depends=[emmeans ggplot2 gridExtra knitr lme4 rlang statgenSTA xtable]; };
   statgenHTP = derive2 { name="statgenHTP"; version="1.0.6.1"; sha256="1lhs72y9p98vas7iv1zgqb9zac6plzgv5lffccyg75r88784xn1s"; depends=[animation factoextra ggforce ggnewscale ggplot2 gridExtra LMMsolver locfit lubridate Matrix reshape2 rlang scales spam SpATS]; };
   statgenIBD = derive2 { name="statgenIBD"; version="1.0.7"; sha256="1dw0riwycd59hcidnxczy61xib8if8m2hv6dni2qd6n2i99vfbpc"; depends=[data_table ggplot2 Matrix Rcpp RcppArmadillo rlang statgenGWAS stringi]; };
   statgenMPP = derive2 { name="statgenMPP"; version="1.0.2"; sha256="1qpf9gic9671hr6zyj56sqwx9wl51qr6gj84rfssdla718h766im"; depends=[data_table foreach ggplot2 gridExtra LMMsolver Matrix scales spam statgenGWAS statgenIBD stringi]; };
   statgenQTLxT = derive2 { name="statgenQTLxT"; version="1.0.2"; sha256="1lq8v49zf9l6gaifdwc0qpx8kknnhqw2jg19v2vr7da1xqd7wfdi"; depends=[data_table foreach Rcpp RcppArmadillo sommer statgenGWAS]; };
-  statgenSTA = derive2 { name="statgenSTA"; version="1.0.12"; sha256="17svv7193wlmgsslcghr2gpbzhn8v1c5pwmk1ksh7l5imn792z21"; depends=[emmeans ggplot2 ggrepel gridExtra knitr lme4 mapproj maps qtl rlang scales SpATS xtable]; };
+  statgenSTA = derive2 { name="statgenSTA"; version="1.0.13"; sha256="1pnb13psnyqj4mjry6g78pjc4qz642wjnxi9ki8i4h73i335ixxv"; depends=[emmeans ggplot2 ggrepel gridExtra knitr lme4 mapproj maps qtl rlang scales SpATS xtable]; };
   stationaRy = derive2 { name="stationaRy"; version="0.5.1"; sha256="1620fdlybn3hr96yngnp802imr9b7n90835lyyd86r2wn6psdzvl"; depends=[downloader dplyr lubridate lutz magrittr progress readr stringr tidyr]; };
   stationery = derive2 { name="stationery"; version="1.1"; sha256="1n5mzk6ibb8j4vy2ca3bj0jm2bk2qg5x6nsch2hwcyspm3gym4jl"; depends=[knitr kutils rmarkdown]; };
   statip = derive2 { name="statip"; version="0.2.3"; sha256="0kymc3ds1nx0h11ffmm3vmqr1w34gd0k788vf72x2v45h8c1ma2n"; depends=[clue rpart]; };
@@ -18751,7 +19045,7 @@ in with self; {
   statnet = derive2 { name="statnet"; version="2019.6"; sha256="17dj6vjnjyqrfhzjq1lys5b29j942kd15zffb69jidni3slf20q9"; depends=[ergm ergm_count network networkDynamic sna statnet_common tergm tsna]; };
   statnet_common = derive2 { name="statnet.common"; version="4.9.0"; sha256="1mrdzhxxrr6a0hwxczs40f8ppkdimlki1gbg6f3kv69s6rpdr1d4"; depends=[coda]; };
   statnetWeb = derive2 { name="statnetWeb"; version="0.5.6"; sha256="1haf2kr1mwvaz4hlwla2ysbcy3sbfcg3i4hyiy9y6lcffvy4w9w0"; depends=[ergm lattice latticeExtra network RColorBrewer shiny sna]; };
-  statnipokladna = derive2 { name="statnipokladna"; version="0.7.2"; sha256="1n7gvr57c27ilxrnpmr0bz6hc0d39lp6rnn4dkqdwdapzyhfymq4"; depends=[cli curl dplyr httr jsonlite lifecycle lubridate magrittr purrr readr rlang stringi stringr tibble tidyr xml2]; };
+  statnipokladna = derive2 { name="statnipokladna"; version="0.7.3"; sha256="0zym16mmimyfkz4f9h5xm9ispqnr7pbfxragv71d6kl3iz2185hp"; depends=[cli curl dplyr httr jsonlite lifecycle lubridate magrittr purrr readr rlang stringi stringr tibble tidyr xml2]; };
   statprograms = derive2 { name="statprograms"; version="0.2.0"; sha256="0m7px7fmpz2zzlfdi7rbllcjvcjp8iy94f6fa1w4xinh7vz3y6vq"; depends=[]; };
   statpsych = derive2 { name="statpsych"; version="1.5.0"; sha256="0sgdz97svj2krg6576pc74jiqpws4qjvvk351d88av3cc9s3g9y8"; depends=[mathjaxr mnonr Rdpack]; };
   statquotes = derive2 { name="statquotes"; version="0.3.2"; sha256="0y805alr98zz306jjnikggdd02c3yrp5izzwhh457bsb85i22yri"; depends=[stringr tidytext wordcloud]; };
@@ -18761,8 +19055,10 @@ in with self; {
   statsearchanalyticsr = derive2 { name="statsearchanalyticsr"; version="0.1.4"; sha256="0m2zv5sgv7w9yk6q7rwx8x2zy6xx5w0d6c9vynddr08pn4mdqjhs"; depends=[glue httr jsonlite lubridate purrr stringr tibble tidyr]; };
   statsr = derive2 { name="statsr"; version="0.3.0"; sha256="138yjifz8q3dqcm3wbzn4sxdydwnqvwkz0h20r8ls3pijqh6fc2y"; depends=[BayesFactor broom cubature dplyr ggplot2 gridExtra knitr rmarkdown shiny tibble tidyr]; };
   statswalesr = derive2 { name="statswalesr"; version="0.2.0"; sha256="03h0gq8ag51my5z8mw78rhbkksfpa7af8my6lb468wrcfv69k0gl"; depends=[curl dplyr httr jsonlite rlang]; };
+  stbl = derive2 { name="stbl"; version="0.1.1"; sha256="0hlc73i0qkxixw8z27sc0fj0i613x248i4bwk2zdrsby4zfhbxvq"; depends=[cli glue rlang vctrs]; };
   stcos = derive2 { name="stcos"; version="0.3.1"; sha256="146s0jdd88pax9xsn2z56x8sfkjx8yr8sf59ma9zryq42ajyq43d"; depends=[dplyr Matrix Rcpp RcppArmadillo sf]; };
   stcov = derive2 { name="stcov"; version="0.1.0"; sha256="166w929sgd7nanw1zjhzwv50hd5vqhgsrgxnsga4dzrcvndalw70"; depends=[]; };
+  stcpR6 = derive2 { name="stcpR6"; version="0.9.6"; sha256="1336fdr5gy84j9mj15r4kgc88p53x4alk8z5gd3j4b7f1fd9skpa"; depends=[R6 Rcpp]; };
   stdReg = derive2 { name="stdReg"; version="3.4.1"; sha256="0x4awgbja70mdpbavgkg9mpnrxxc0qpsnl8i3rj9hs4vwbdkalr8"; depends=[data_table drgee numDeriv survival]; };
   stddiff = derive2 { name="stddiff"; version="3.1"; sha256="1lirfxqiq59vhjkq1zv27ycybbs9n62c14klkkcf74j15a54cmbn"; depends=[]; };
   stdmod = derive2 { name="stdmod"; version="0.2.10"; sha256="1rjky1llvj1w883xj2dicdqw9qz06az5aqj0ls9lhdnz9ipqp6i6"; depends=[boot ggplot2 lavaan manymome rlang]; };
@@ -18782,10 +19078,10 @@ in with self; {
   stepgbm = derive2 { name="stepgbm"; version="1.0.1"; sha256="1wcc4m9alphacdf9df5z29hz881625czxpyq93kzwc0nhnvz2gp0"; depends=[spm steprf]; };
   stepjglm = derive2 { name="stepjglm"; version="0.0.1"; sha256="0xsb0wg7ka4ska2jkzaic7kqdzj2fkhpf5sxr3a116f2najj9ax2"; depends=[rsq]; };
   stepmixr = derive2 { name="stepmixr"; version="0.1.2"; sha256="0yh0dbv14bdzwlz3fwl5ibmmg2nzb6prfdwribavfndx8zxbwgn7"; depends=[reticulate]; };
-  stepp = derive2 { name="stepp"; version="3.2.6"; sha256="0b2jq9fdnakqrwcss4cw8nd5zq122w2ba607z71fmp1gx8rw4sf7"; depends=[car rstudioapi scales survival]; };
+  stepp = derive2 { name="stepp"; version="3.2.7"; sha256="0kdjp3kxvyjy8fyrzisiv9fjx53dpsg69ksd08lnngvzw31rv5yy"; depends=[car rstudioapi scales survival]; };
   steprf = derive2 { name="steprf"; version="1.0.2"; sha256="1wscxnglxi61agmfn1zmhh75c7h5394r8d8khr02p22a234npqqi"; depends=[psy randomForest spm spm2]; };
   steps = derive2 { name="steps"; version="1.3.0"; sha256="0yvqz5jhzwqkm3gphb2mmlq1ip6sr8g6c09hirs827j12dj63ixf"; depends=[future future_apply memuse raster rasterVis Rcpp viridisLite]; };
-  stevedata = derive2 { name="stevedata"; version="1.1.0"; sha256="0pb5w0jzyf4igi76n9cr97zxk5l8m7mjjjn18bd71w3mbpnsig7r"; depends=[]; };
+  stevedata = derive2 { name="stevedata"; version="1.3.0"; sha256="0ggfgf3g240r69g4wnhyxvzp46by9b79hzhhpbs1rmh2pzd6zj96"; depends=[]; };
   stevedore = derive2 { name="stevedore"; version="0.9.6"; sha256="0mx4l7yiicvpri5qdw9czlvr27a9753a6z98s8k19lbz58nim1wr"; depends=[crayon curl jsonlite yaml]; };
   stevemisc = derive2 { name="stevemisc"; version="1.7.0"; sha256="1xngshwsqd3z0zygrzxwnmr3jwha2kbw7fcf0vc0yngqg62gzrvn"; depends=[arm dplyr forcats ggplot2 httr labelled lme4 magrittr purrr rlang rmarkdown stringr tibble tidyr]; };
   stevetemplates = derive2 { name="stevetemplates"; version="1.0.0"; sha256="1q9wj132y5ms7wdsxv90c6hawni5b2vynsxnym3rzr5wmif5a7v0"; depends=[rmarkdown]; };
@@ -18800,18 +19096,16 @@ in with self; {
   stlARIMA = derive2 { name="stlARIMA"; version="0.1.0"; sha256="1bh88dd9md8w8qhmha02v2b7cz0pfk6yrc5bhxj8xv9cwanl7g6r"; depends=[forecast]; };
   stlELM = derive2 { name="stlELM"; version="0.1.1"; sha256="1q3lcfqq06jfky388v7iilnnqbr5f4gq451xkc2kl04yl0dwcv2h"; depends=[forecast nnfor]; };
   stlTDNN = derive2 { name="stlTDNN"; version="0.1.0"; sha256="1j2f9kxlry15xp7bc03h5jr7v8gzq8frdxyzhq9s78m3d3dbixf4"; depends=[forecast nnfor]; };
-  stlnpp = derive2 { name="stlnpp"; version="0.3.10"; sha256="1xhg3ksgdaazlp2k4ff9af6lv64acrskjbqn5z42qj0fvz91qr5a"; depends=[spatstat spatstat_explore spatstat_geom spatstat_linnet spatstat_random]; };
+  stlnpp = derive2 { name="stlnpp"; version="0.4.0"; sha256="1r80qzrvz5nmspark5xk59wi3r1kxjhrqpscwqrab9lnl7cal76s"; depends=[spatstat spatstat_explore spatstat_geom spatstat_linnet spatstat_random spatstat_univar]; };
   stlplus = derive2 { name="stlplus"; version="0.5.1"; sha256="14728xsm982z9sg4rbqg307pbwqlsiyzj8z3sr9wr6fi0dayf6z5"; depends=[lattice Rcpp yaImpute]; };
   stm = derive2 { name="stm"; version="1.3.7"; sha256="0cvv6q5r55iqk327rav25dymvnn77rj8chmgkbkwd0c1dpqf4x5q"; depends=[data_table glmnet lda Matrix matrixStats quadprog quanteda Rcpp RcppArmadillo slam stringr]; };
   stmCorrViz = derive2 { name="stmCorrViz"; version="1.3"; sha256="1a4pckrbzsihyf1bqvw3cl0hxrc4yq1pnkgxgf4b8jday6zkxwcv"; depends=[jsonlite SnowballC stm tm]; };
   stmgp = derive2 { name="stmgp"; version="1.0.4"; sha256="1yf0hr5gaql424ikjm9ra50vz4ppfsshhf89xphl7c9v9a6bjvw0"; depends=[MASS]; };
   stmgui = derive2 { name="stmgui"; version="0.1.6"; sha256="1fn2m5l7y3p1riw39g6r3hpjxdccygih7yipp7dvc4msl9fm4h5c"; depends=[markdown shiny shinyBS shinyjs shinythemes stm tm]; };
-  stminsights = derive2 { name="stminsights"; version="0.4.2"; sha256="1a0wglrsl5sr7fc6vhiwva0lmr0ac3ns4rfis2y8ib2vxxwhwb8j"; depends=[dplyr ggplot2 ggraph ggrepel huge igraph purrr readr scales shiny shinyBS shinydashboard shinyjs stm stringr tibble tidygraph]; };
   stoRy = derive2 { name="stoRy"; version="0.2.2"; sha256="05lji6gl8nzkxhygfvfm7alk5yp5gw1dkkr5r993vnj67m10pcbq"; depends=[cli crayon dplyr fansi httr lifecycle purrr R6 rappdirs readr rlang stringr tibble tidyjson tidyr]; };
   stocc = derive2 { name="stocc"; version="1.31"; sha256="0d0n9nrcva0vradippq30y6dc6klwd1mllnzpnzq9rczpz5cw7mw"; depends=[coda fields Matrix rARPACK truncnorm]; };
   stochLAB = derive2 { name="stochLAB"; version="1.1.2"; sha256="1gixw8rjhivcz71ypmbn0cs27gi5bsmmm37nsx0psas7nvw8zwxi"; depends=[cli dplyr glue logr magrittr msm pracma purrr rlang tibble tidyr]; };
   stochQN = derive2 { name="stochQN"; version="0.1.2-1"; sha256="1lfzivl745dj94kap103arz0zy75wk69kc6v84xaaxk7ad3icnaj"; depends=[]; };
-  stochprofML = derive2 { name="stochprofML"; version="2.0.3"; sha256="0j6m2byh7w9kcbp3mfvmg6fm6z0dq8k4qabj1yfkl0d1y2ifd1zd"; depends=[MASS numDeriv]; };
   stochvol = derive2 { name="stochvol"; version="3.2.4"; sha256="1cr8rn4nzdbvgjhsahyijn2kgbndiyvycbn6rjxc0x5prc99j52w"; depends=[coda Rcpp RcppArmadillo]; };
   stochvolTMB = derive2 { name="stochvolTMB"; version="0.2.0"; sha256="07m3qz8j1sw37lrxzmbkbifd3nsdvd2blbca8vr1aq5bbafr1g1b"; depends=[data_table ggplot2 MASS RcppEigen sn TMB]; };
   stockAnalyst = derive2 { name="stockAnalyst"; version="1.0.1"; sha256="1pqghpyvwylc00hcnqgcr03js3dz6id012ixn5gj3d3wqyh008bl"; depends=[]; };
@@ -18819,9 +19113,9 @@ in with self; {
   stocks = derive2 { name="stocks"; version="1.1.4"; sha256="0b6rl7pfkgzbpwnv7zzkr36hs5f1zb60d16ijslf7g9m25vvcyg6"; depends=[dvmisc Hmisc lubridate quantmod rbenchmark RColorBrewer Rcpp TTR zoo]; };
   stodom = derive2 { name="stodom"; version="0.0.1"; sha256="065m94xp0qsh00f451a90g6dn8p9iksjqj5w7dzyjcbqxvmbadww"; depends=[dplyr ggplot2 pracma tibble tidyr]; };
   stoichcalc = derive2 { name="stoichcalc"; version="1.1-5"; sha256="077mp485i844cdmjxy0spvh1scgakrwlf16qd0k5fn3h9lkgyg1c"; depends=[]; };
-  stokes = derive2 { name="stokes"; version="1.2-0"; sha256="0jxjpbscs28v675fkclrxwh0ndqbnsb6lylszdir8ivmgr4vcjam"; depends=[disordR mathjaxr partitions permutations spray]; };
+  stokes = derive2 { name="stokes"; version="1.2-1"; sha256="02pia2szr5mbl3cyr6agiydq5py0sjariws3mhaqmcni8infapvh"; depends=[disordR partitions permutations spray]; };
   stopdetection = derive2 { name="stopdetection"; version="0.1.2"; sha256="0hgz18fiqp6ykv9h711fbjx234cjiwa6gifdgg460b0pib8hc66i"; depends=[data_table geodist lubridate]; };
-  stopp = derive2 { name="stopp"; version="0.2.0"; sha256="0dxbq4g6zc26pp31hyq09gljlkn6lk8g7w0l5vir04k9xg9xd8ap"; depends=[fields KernSmooth MASS mgcv optimx plot3D sparr spatstat_explore spatstat_geom spatstat_linnet spatstat_model spatstat_random spatstat_utils splancs stlnpp stpp]; };
+  stopp = derive2 { name="stopp"; version="0.2.4"; sha256="09cvh2h8c91zb8iak7g4j0sznv8kxbn0r2xjl36p663mqk2lb5ss"; depends=[fields KernSmooth MASS mgcv optimx plot3D sparr spatstat_explore spatstat_geom spatstat_linnet spatstat_model spatstat_random spatstat_univar spatstat_utils splancs stlnpp stpp]; };
   stoppingrule = derive2 { name="stoppingrule"; version="0.4.0"; sha256="07gchj75hj1sjgp6nx1hry563vcd33q1j0iw1w1z9qaf3ivqby5a"; depends=[matrixStats pracma]; };
   stops = derive2 { name="stops"; version="1.0-1"; sha256="12zc338wh78an1nsmqr7sbfcr96yrb6xqzg9miwlb58sv28hm8i3"; depends=[acepack clue cmaes cordillera dfoptim DiceKriging DiceOptim energy MASS minerva nloptr pomp pso rgl scagnostics scatterplot3d smacof tgp vegan]; };
   stopwords = derive2 { name="stopwords"; version="2.3"; sha256="1ci1cgxrcvlhhplximsfv0plvjdbcd5kv0nphxnpildsn5m1rv65"; depends=[ISOcodes]; };
@@ -18829,7 +19123,7 @@ in with self; {
   stortingscrape = derive2 { name="stortingscrape"; version="0.3.0"; sha256="0a3i9dfd1mp1xmwcslvrlphf0j0z1b45hpaz9ady73kr7d5zs2j8"; depends=[httr2 rvest stringr]; };
   storywranglr = derive2 { name="storywranglr"; version="0.2.0"; sha256="07w3dwv2naqbbdzjcv58cisj7cv1rbhrk96a30q8ww11rf953rj4"; depends=[dplyr httr jsonlite tibble urltools]; };
   stosim = derive2 { name="stosim"; version="0.0.15"; sha256="09fxi9wv47fvc59jnr9y6kmc2gzvxs28hwf15h3f62vvh3v9ksn6"; depends=[Rcpp]; };
-  stplanr = derive2 { name="stplanr"; version="1.1.2"; sha256="0n32d8916qkavaqr4016gnggyqrh75lndlvayl8qxq88lmjps2bf"; depends=[curl data_table dplyr httr jsonlite lwgeom magrittr nabor od pbapply Rcpp rlang sf sfheaders]; };
+  stplanr = derive2 { name="stplanr"; version="1.2.1"; sha256="08hhx6lagfwy153xwbpqbvsz13dfq29607bp2640c5bfmddgnaxp"; depends=[curl data_table dplyr geosphere httr jsonlite lwgeom magrittr nabor od pbapply Rcpp rlang sf sfheaders]; };
   stpm = derive2 { name="stpm"; version="1.7.12"; sha256="16kp69356bj1s26iwwysxdyr87kd3jqhj2gmmz4vc003ai63ga6y"; depends=[MASS nloptr Rcpp RcppArmadillo sas7bdat survival]; };
   stpp = derive2 { name="stpp"; version="2.0-7"; sha256="1w9jn71ha817gldfhkmr2vfx3nkr78g1y662rfxg6flx2wyxs3kq"; depends=[ggplot2 gridExtra KernSmooth plot3D rgl rpanel spatstat_explore spatstat_geom spatstat_random splancs]; };
   stppSim = derive2 { name="stppSim"; version="1.3.2"; sha256="00wxbahfamxf4y2fmscq48n5j81qx4xsnh8har2mhhnqvaiikbvz"; depends=[chron cowplot data_table dplyr future_apply geosphere ggplot2 gstat ks leaflet lubridate magrittr otuSummary progressr raster sf SiMRiv sp sparr spatstat_geom splancs stringr terra tibble tidyr]; };
@@ -18837,7 +19131,7 @@ in with self; {
   str2str = derive2 { name="str2str"; version="1.0.0"; sha256="1hzi8ns2v9y0mzv59aafh5gq4vyza2qbsmaxpj945nmfi4x3qqwi"; depends=[abind checkmate plyr reshape]; };
   strand = derive2 { name="strand"; version="0.2.0"; sha256="0gd9nnbdilvk4bszg77bxilan6qpg1np7c38w1b7j5sr3r30y5in"; depends=[arrow dplyr ggplot2 lubridate Matrix R6 Rglpk rlang tibble tidyr yaml]; };
   stranslate = derive2 { name="stranslate"; version="0.1.3"; sha256="10a2xrpg1vw9mci9w9hwcjnic942s3j5658wd5nw14ndxm1xhv79"; depends=[crayon knitr stringr]; };
-  strap = derive2 { name="strap"; version="1.6-0"; sha256="1c4p9gjjjjc7zjml7r7qhb040va8s4x16jqia3j1j5h56d6wlh7m"; depends=[ape geoscale pbapply]; };
+  strap = derive2 { name="strap"; version="1.6-1"; sha256="12cxdm3mmyw1bqyic03axckzy7la10m05a0bi5nsc1fvs1p1w268"; depends=[ape geoscale pbapply]; };
   strat = derive2 { name="strat"; version="0.1"; sha256="1axxrp750kjzcgxjdqfscjmryv1mkv4l23zk8k23z8l4ymhd2f5w"; depends=[Hmisc Rcpp RcppArmadillo]; };
   stratEst = derive2 { name="stratEst"; version="1.1.6"; sha256="0m41866xr21h4mih4z98y6pcrp2ws0mxxx157vdhbv7rhlh5djvp"; depends=[Rcpp RcppArmadillo]; };
   strata_MaxCombo = derive2 { name="strata.MaxCombo"; version="0.0.1"; sha256="1iafnxa0z0rsal3v1y1l9ddzdgi594abhc4jkrsqp33316cmm2az"; depends=[mvtnorm]; };
@@ -18852,27 +19146,28 @@ in with self; {
   straweib = derive2 { name="straweib"; version="1.1"; sha256="0hi59p580yg6rj72grq4jx6grv7lmpi2cimp0rbxhkjpj6i1hav9"; depends=[]; };
   strawr = derive2 { name="strawr"; version="0.0.91"; sha256="1nbcn20g3f3f5x9sscj3020n5h4iaphr70s90n2fz31vc4snzq2m"; depends=[Rcpp]; };
   stray = derive2 { name="stray"; version="0.1.1"; sha256="1pjw1bdkqsp085lrwca1psma95ncapfz8a5iampxgghydkhh3dm8"; depends=[colorspace FNN ggplot2 ks pcaPP]; };
-  stream = derive2 { name="stream"; version="2.0-1"; sha256="1mz1gdqfb92qy09w0jkm5j58bz0sqvnagd4lfb4s40412n77khgh"; depends=[BH clue cluster clusterGeneration dbscan fpc magrittr MASS mlbench proxy Rcpp rpart]; };
+  stream = derive2 { name="stream"; version="2.0-2"; sha256="0qpn6rf0rp1nklarw0jkdlvpalcnvvjs26h8slnqkgrkb1rr0vhc"; depends=[BH clue cluster clusterGeneration dbscan fpc magrittr MASS mlbench proxy Rcpp rpart]; };
+  streamConnect = derive2 { name="streamConnect"; version="0.0-4"; sha256="0sg28i9p6frlccabq9cq2j4w47jgcknwpjhpwl32qrwll7q9k4r3"; depends=[callr httr jsonlite plumber readr stream stringr]; };
   streamDAG = derive2 { name="streamDAG"; version="1.5"; sha256="1zzpjp1k0x0kh4jja8x0yjv35pygp5qb8ivqqg7wc7dr5plv87y5"; depends=[asbio igraph plotrix]; };
   streamDepletr = derive2 { name="streamDepletr"; version="0.2.0"; sha256="0pa0hsnhscsa98xkqzg7l83yagzq1r6m250m3m4r79baab8ndqp4"; depends=[dplyr Rmpfr sf]; };
-  streamMOA = derive2 { name="streamMOA"; version="1.3-0"; sha256="0mdkwbph225xsjwnihmzj2gn56n7w6ffd1h432kjlj3b2lwdsyyn"; depends=[rJava stream]; };
+  streamMOA = derive2 { name="streamMOA"; version="1.3-1"; sha256="12fa19z31a9046xn6v5w0kj4pmprdfmzakiwikg3y0k31fpjhqk6"; depends=[proxy rJava stream]; };
   streamR = derive2 { name="streamR"; version="0.4.5"; sha256="1clx3b0j2515r1nmnl6ki7qw5n54q3x2jvqv3zrc00kq71mlj7ix"; depends=[ndjson RCurl rjson]; };
   streambugs = derive2 { name="streambugs"; version="1.4"; sha256="0j7fi5rvs2apkzgyk9idpdcbxaa7kqj650gycfsq2md23fl75jpw"; depends=[deSolve]; };
+  streetscape = derive2 { name="streetscape"; version="1.0.2"; sha256="0y06719766yh6ifbk1h7wgdsw3asnwagli50czwqyilcp8p0fc4z"; depends=[dplyr httr mapview OpenImageR osmdata parallelly pbmcapply quickPWCR reticulate rlang sf sp SuperpixelImageSegmentation]; };
   stressaddition = derive2 { name="stressaddition"; version="3.1.0"; sha256="14ggy4ka9kll723jdir22g5l5xkwdckvd08gg6rxsmxryhznqd4a"; depends=[drc plotrix]; };
-  stressor = derive2 { name="stressor"; version="0.1.0"; sha256="0dr6i9p7zv8lz4l4c7l71c5l9kfabjlymalaa24dkkvqlzzrwvyx"; depends=[dplyr reticulate]; };
+  stressor = derive2 { name="stressor"; version="0.2.0"; sha256="1bm7f5mz529c0r1qq33z7di0d1c77yhpnrnmywlkx9ccvq7dicyc"; depends=[dplyr reticulate]; };
   stressr = derive2 { name="stressr"; version="1.0.0"; sha256="00b93gfh1jd5r7i3dhsfqjidrczf693kyqlsa1krdndg8f0jkyj7"; depends=[lattice latticeExtra XML xts]; };
   strex = derive2 { name="strex"; version="2.0.0"; sha256="1cxkpqwnpsqkg0i6n6bkkgbf3jkbgff5s8db95rz57lki8xwlqp9"; depends=[checkmate lifecycle magrittr rlang stringi stringr]; };
   strider = derive2 { name="strider"; version="1.3"; sha256="114j0qpdyg8rrhj68zq596pgc4h7ja39n0rfxf0x9qg7imhaj1h6"; depends=[BH Rcpp]; };
-  string2path = derive2 { name="string2path"; version="0.1.6"; sha256="1pv031684l198a96glgx65pp1ri9wvixk9zqmxbqdfb6d86ls9rp"; depends=[cli tibble]; };
-  stringb = derive2 { name="stringb"; version="0.1.17"; sha256="0bfwwbg64nzxrx30cndqvdlhanjkx6875lg5dzm9cbwvwg2wbxcn"; depends=[backports]; };
+  string2path = derive2 { name="string2path"; version="0.1.7"; sha256="00gzfibv3pw35r9lqzxpik1x3daffrs5xlbbxm46d9gvd2bhrzxd"; depends=[cli tibble]; };
   stringdist = derive2 { name="stringdist"; version="0.9.12"; sha256="1i365vwjx8kk47wzry8d3zhzrlv51hn76s2ipk9vi121zx939171"; depends=[]; };
   stringfish = derive2 { name="stringfish"; version="0.16.0"; sha256="14vrg6mkwwgw1klgpvjn7936yfxav55rainz71xjjih2j21vq21n"; depends=[Rcpp RcppParallel]; };
   stringformattr = derive2 { name="stringformattr"; version="0.1.2"; sha256="0x56k30clj5ajk0qg5sr8b9l0asz6ldivwr1ddy1vp1djliih1fx"; depends=[stringr]; };
-  stringi = derive2 { name="stringi"; version="1.8.3"; sha256="09a964g8q3iphq24ln9c9g5158ynr75pfh3ghddarn0xvn7bw0hn"; depends=[]; };
-  stringmagic = derive2 { name="stringmagic"; version="1.1.0"; sha256="1iwsfzpmcsbhqdxidcypqk7098sld7k0di3h7mrwqjs4c465g8r7"; depends=[Rcpp]; };
+  stringi = derive2 { name="stringi"; version="1.8.4"; sha256="1wv9qqxl84l44kpvkx0lmyciinrh9pa5512jm56gsaqs9pvgh6f2"; depends=[]; };
+  stringmagic = derive2 { name="stringmagic"; version="1.1.2"; sha256="134g9c358d3730fvkhcwcrhy4w7ig614jcnxrygakrcvm55c1lgf"; depends=[Rcpp]; };
   stringr = derive2 { name="stringr"; version="1.5.1"; sha256="1pj5xwg8kq2jllmszgkw96qj37wlb0x0vx4f3m5j211zpd8yrbd4"; depends=[cli glue lifecycle magrittr rlang stringi vctrs]; };
   stringstatic = derive2 { name="stringstatic"; version="0.1.2"; sha256="0kj85yas07l9xl49l2j0bk42ymdg57fmgyk45wwl0kmxp146skfq"; depends=[]; };
-  stringx = derive2 { name="stringx"; version="0.2.6"; sha256="0n11y2w9gm37kfkg44df95ib1xbjglz7ys9ffw05pbc71ai0njjp"; depends=[stringi]; };
+  stringx = derive2 { name="stringx"; version="0.2.8"; sha256="0rcbbc1x07am5ag5fnirvyg7r640pp9cs2vqzs9jlx8xx385p4md"; depends=[stringi]; };
   strip = derive2 { name="strip"; version="1.0.0"; sha256="1j3kq6w8k66z45rpd1cgxplpnldzbyqklgs4bnbv906pyd8wk9ak"; depends=[rlist]; };
   stripless = derive2 { name="stripless"; version="1.0-3"; sha256="08mdp7kq6r5bk77j09477d1dnn7iwa346pr24b5bqsxwnbknyrsr"; depends=[lattice]; };
   striprtf = derive2 { name="striprtf"; version="0.6.0"; sha256="1c8z2qf1kp43ir4dmyxq6hc46dclq8vx3ggkj02p8j1icjswm9bh"; depends=[magrittr Rcpp stringr]; };
@@ -18884,9 +19179,9 @@ in with self; {
   studentlife = derive2 { name="studentlife"; version="1.1.0"; sha256="1xvlcwg7ckxsm5hb5ax8r3hzdqnx61ax59ini5xc5jrsmir13g67"; depends=[crayon dplyr ggplot2 jsonlite purrr R_utils readr skimr tibble tidyr visdat]; };
   studyStrap = derive2 { name="studyStrap"; version="1.0.0"; sha256="0lvzqnq40j0xn74qrj0pqhr8zz34mbhfd7dg8bnadscsvj5ffm4c"; depends=[caret CCA dplyr MatrixCorrelation nnls pls tibble tidyverse]; };
   stxplore = derive2 { name="stxplore"; version="0.1.0"; sha256="1bnpp53s7r8ghvbxvnlk103h66a55xf7y9fcdhvmfgf31d2x5dsd"; depends=[fields ggmap ggplot2 ggridges gridExtra gstat lubridate magrittr RColorBrewer rlang sp spacetime stars tidyr]; };
-  styler = derive2 { name="styler"; version="1.10.2"; sha256="043v9xwm72jqrrzzmjgrkf34lncjnn69650ks72z7rjb1wqmbh56"; depends=[cli magrittr purrr R_cache rlang rprojroot vctrs withr]; };
+  styler = derive2 { name="styler"; version="1.10.3"; sha256="0hfspw1q40jqla238dw86iyf0lyk1agc19flwvf9nrm824hw5fdd"; depends=[cli magrittr purrr R_cache rlang rprojroot vctrs withr]; };
   stylest2 = derive2 { name="stylest2"; version="0.1"; sha256="1r8vasbhynw7bv94j2wrh7l37552x77m1p7jaig1cr6s4r53flvg"; depends=[Matrix quanteda]; };
-  stylo = derive2 { name="stylo"; version="0.7.4"; sha256="0vjfpz4bpdrsax7a0gsj9cwddbsayb4n5fr5xskz63lfrjg2ppcb"; depends=[ape class e1071 lattice pamr tcltk2 tsne]; };
+  stylo = derive2 { name="stylo"; version="0.7.5"; sha256="00iw5yr6qnf01hd0a9dsqwjv2cdhq82pfj5wiy1fz0jg0q1ghh9n"; depends=[ape class e1071 lattice pamr tcltk2 tsne]; };
   suRtex = derive2 { name="suRtex"; version="0.9"; sha256="0xcy3x1079v10bn3n3y6lxignb9n3h57w4hhrvzi5y14x05jjyda"; depends=[]; };
   subcopem2D = derive2 { name="subcopem2D"; version="1.3"; sha256="06wwd847g9pxd0z2a8494h3nc9s280a3s1510bir24m3z7w1pqf3"; depends=[]; };
   subdetect = derive2 { name="subdetect"; version="1.2"; sha256="0p9153dhxf9k5qs554vdcgpdsqas41ylc5qb2i2j76z8nvi0v9hm"; depends=[]; };
@@ -18896,7 +19191,6 @@ in with self; {
   submax = derive2 { name="submax"; version="1.1.1"; sha256="0b9x55gqzw20smr3hx9izvyr0i8zv0h03hadn4c7ks7w8ga5i0kj"; depends=[mvtnorm sensitivityfull]; };
   subplex = derive2 { name="subplex"; version="1.8"; sha256="19g5bd39gmcn27xdsklkzxg99x1r5v5q8zcw1iwry31qj24ivhrv"; depends=[]; };
   subrank = derive2 { name="subrank"; version="0.9.9.3"; sha256="1sg1krlzck5m7g9klppxcwpbj6dnwlnc1pjvyyyw0hb5raz102w1"; depends=[]; };
-  subsamp = derive2 { name="subsamp"; version="0.1.0"; sha256="1bfz2z2qy1war3id8qr1asygwvwxgf2hhlh075hr6bjdkxz0j0nd"; depends=[]; };
   subscore = derive2 { name="subscore"; version="3.3"; sha256="01y7bp7nj0p47n69pxvj2gyrcvgj617ymhwhxlqp0jrkns1wqjy5"; depends=[boot cocor CTT irtoys ltm sirt]; };
   subscreen = derive2 { name="subscreen"; version="3.0.7"; sha256="0vxwyx08bjha7vgv3lcgigar43f74fr3w7wna6z8viawh3bc7k96"; depends=[bsplus colourpicker data_table dplyr DT jsonlite plyr purrr ranger shiny shinyjs shinyWidgets]; };
   subselect = derive2 { name="subselect"; version="0.15.5"; sha256="1xw8ya8kq1b7vn7rp976b3i4bsxvnw53xw34bhsq6xk2c9idk3pw"; depends=[corpcor ISwR MASS]; };
@@ -18922,7 +19216,6 @@ in with self; {
   suntools = derive2 { name="suntools"; version="1.0.0"; sha256="1qlp0q2ckqg5v3yvbr98k3nr9awgg7ks0l1103nqvm1ssadv7ds2"; depends=[sf]; };
   supc = derive2 { name="supc"; version="0.2.6.2"; sha256="0gvrmhvjkfbgi0ivwa8ri69rxj4kqn3xqrc2d5rfrdfm9jmqb56h"; depends=[BH Rcpp]; };
   supclust = derive2 { name="supclust"; version="1.1-1"; sha256="1iar957gdarp1m677fjmph0ll8zsqiy2bzkzx03gv37k56w1acpd"; depends=[class rpart]; };
-  supcluster = derive2 { name="supcluster"; version="1.0.1"; sha256="131s9q4p2lzs09q5zc702pafnisk1aylq9i52wk27hvpcsh0v1pc"; depends=[gtools mvtnorm]; };
   superMICE = derive2 { name="superMICE"; version="1.1.1"; sha256="0wf043vyd89a5jdvm128rqmfrnm9c0lhir35jyzy20rm75aqqh1w"; depends=[mice SuperLearner]; };
   superb = derive2 { name="superb"; version="0.95.9"; sha256="1amqfmkn7zfpsmq1r7xdc8x4kpshpjd54jpdwbbwj0mw8qzs2g7n"; depends=[foreign ggplot2 lsr MASS plyr Rdpack shiny shinyBS stringr]; };
   superbiclust = derive2 { name="superbiclust"; version="1.2"; sha256="0mk3d820skp99hl8ilwic2fz90yb9dwy2jq3vfjb726gj1qich3b"; depends=[biclust fabia Matrix]; };
@@ -18939,7 +19232,7 @@ in with self; {
   support_BWS2 = derive2 { name="support.BWS2"; version="0.4-0"; sha256="1zhhgd24r1xsrcf9av8hg7sc5pp165kff44lzzvhh79rl8rzrmyy"; depends=[]; };
   support_BWS3 = derive2 { name="support.BWS3"; version="0.2-1"; sha256="074h4c0c42mq6b7kkv1slwsjx0ig9i2mxqf1sqf90c6afsdkzmg3"; depends=[]; };
   support_CEs = derive2 { name="support.CEs"; version="0.7-0"; sha256="09snvzvskjhw0l6g1gm5jl7c7idmincmqld1bqhcdinsqiq15h1d"; depends=[DoE_base MASS simex]; };
-  supportR = derive2 { name="supportR"; version="1.2.0"; sha256="0sk6dnssg8gggdlsvr7dg8cbn67r6fqsqdh6hqvar8204fwn4xcw"; depends=[data_tree dplyr ggplot2 gh googledrive lifecycle magrittr purrr rlang rmarkdown scales stringr tidyr vegan]; };
+  supportR = derive2 { name="supportR"; version="1.4.0"; sha256="0z18rmfn5hmrirks6arkpia9biiq2b6r57sak9yhk6j68yhbkjvs"; depends=[data_tree dplyr ggplot2 gh googledrive lifecycle magrittr purrr rlang rmarkdown scales stringi stringr tidyr vegan]; };
   sur = derive2 { name="sur"; version="1.0.4"; sha256="0rp5pwx3m6nzcy73wzmxpsxp9pc7swj2w5b82m0zdxq5kv9hsjsl"; depends=[learnr]; };
   surbayes = derive2 { name="surbayes"; version="0.1.2"; sha256="0n01g84cwq5aj4qafk1zf60ka7s9z3q2gkgzp5xw9dx5lgfh7dgb"; depends=[Matrix Rcpp RcppArmadillo rlist]; };
   sure = derive2 { name="sure"; version="0.2.0"; sha256="0gwr2j321i2vq98rin5b1m4sl123dm1nih1ghcmj0zd1wd6x5x54"; depends=[ggplot2 goftest gridExtra]; };
@@ -18971,21 +19264,22 @@ in with self; {
   survSpearman = derive2 { name="survSpearman"; version="1.0.1"; sha256="1b6nj2ikf931926a47a441icbrfjcadwxxnkc35c9yz8nw1kn1ii"; depends=[]; };
   survcompare = derive2 { name="survcompare"; version="0.1.2"; sha256="15x37k5zrydak6aby5b1x0q9pnxmk6crxpbfpqjkb3g86b4kpm0q"; depends=[caret glmnet randomForestSRC survival timeROC]; };
   surveil = derive2 { name="surveil"; version="0.2.2"; sha256="1bk048mjnviwrls2s25wqrrm3iwi6qjkjlhnpb0i7wjm9cckzz7j"; depends=[BH dplyr ggdist ggplot2 gridExtra Rcpp RcppEigen RcppParallel rlang rstan rstantools scales StanHeaders tidybayes tidyr]; };
-  surveillance = derive2 { name="surveillance"; version="1.22.1"; sha256="1gmpyfrvbq19x056xcryx21131vg8c7mvrnn4wmaw3mvxifp6zs6"; depends=[MASS Matrix nlme polyCub Rcpp sp spatstat_geom xtable]; };
+  surveillance = derive2 { name="surveillance"; version="1.23.0"; sha256="1xqcm71mfmk3x8kq9sb66a4654c1vblpjz4may4xn7yh62nbcy2n"; depends=[MASS Matrix nlme polyCub Rcpp sp spatstat_geom xtable]; };
   survex = derive2 { name="survex"; version="1.2.0"; sha256="09kksjpfikw96njblplgqn33lhfvbpqzsid35cs3wmxhi2xv5fbf"; depends=[DALEX ggplot2 kernelshap patchwork pec survival]; };
   survexp_fr = derive2 { name="survexp.fr"; version="1.1"; sha256="0ci65w3w06kwab98q9gb7nb7smq9r25qfibkgfilsg1i5li6p9h5"; depends=[survival WriteXLS]; };
   survey = derive2 { name="survey"; version="4.4-2"; sha256="1ggisal5g16p3n03bch7ymawd4hig3fmm02nhxy1z5zh48qhyjla"; depends=[lattice Matrix minqa mitools numDeriv Rcpp RcppArmadillo survival]; };
   surveyCV = derive2 { name="surveyCV"; version="0.2.0"; sha256="183ybmfin4xmpsmssw7hskj1rgwpabpa616bzxlir27kygyrswbz"; depends=[magrittr survey]; };
+  surveyPrev = derive2 { name="surveyPrev"; version="1.0.0"; sha256="1vp4v27vj9w0vsab6jjy9hvx36lrn01qkx3d0idmx0zwbd0bxy50"; depends=[data_table dplyr ggplot2 labelled matrixStats naniar raster rdhs sf sjlabelled sp spdep stringr SUMMER survey tidyverse]; };
   surveybootstrap = derive2 { name="surveybootstrap"; version="0.0.3"; sha256="1ci6gqs1kiizpmddkw9r5nsq9wqdhha3kxhnn6b28fczrsypilf8"; depends=[dplyr functional plyr purrr Rcpp RcppArmadillo stringr]; };
   surveydata = derive2 { name="surveydata"; version="0.2.7"; sha256="0wrp92j50a19is4xvh5s82zkp3rvn46gi2344pxinppfax0kjf2h"; depends=[assertthat dplyr DT ggplot2 magrittr purrr rlang scales tidyr]; };
-  surveyexplorer = derive2 { name="surveyexplorer"; version="0.1.0"; sha256="1kgnsz2lg0gf7fahby127i4pcav4cigq9qllmp8sk5x7zyrjgwmk"; depends=[dplyr ggplot2 ggupset gt purrr rlang scales stringr tidyr tidyselect]; };
-  surveygraph = derive2 { name="surveygraph"; version="0.1.0"; sha256="0bvdvylck3m2891v2aap73ygpqkndrxl4ah1bjpa0lyajgvwlbzh"; depends=[]; };
+  surveyexplorer = derive2 { name="surveyexplorer"; version="0.2.0"; sha256="0znrisi4y2nkvxmqv6909mfz8cap9wmq32jafafnmihc99k7a6kq"; depends=[dplyr ggplot2 ggupset gt purrr rlang scales stringr tidyr tidyselect]; };
+  surveygraph = derive2 { name="surveygraph"; version="0.1.2"; sha256="06izdycgrggzgyf730fkrd1m3d9a8k2f4fvs9hhihsbkcns2kpgi"; depends=[]; };
   surveyplanning = derive2 { name="surveyplanning"; version="4.0"; sha256="19ydgcwyvkhknf4qmlw7j25skcj9a4rd6s8j5n7bdqpljl60zync"; depends=[data_table laeken]; };
   surveysd = derive2 { name="surveysd"; version="1.3.1"; sha256="16l17ying9xshfn563kp7nn3hdqrg03ny578sgi08b7zfds5yf8b"; depends=[data_table ggplot2 laeken Rcpp]; };
-  surveytable = derive2 { name="surveytable"; version="0.9.2"; sha256="0apzh0jwqb3zniwswafxz5vnn8sn00rigpyb2xlap7i6pp7yfac5"; depends=[assertthat forcats huxtable magrittr survey]; };
+  surveytable = derive2 { name="surveytable"; version="0.9.4"; sha256="0prfr3y7xbx6fylc5xpyg74biiqim4sjsfbc4f8khm57nznpg91v"; depends=[assertthat huxtable kableExtra magrittr survey]; };
   surveyvoi = derive2 { name="surveyvoi"; version="1.0.6"; sha256="0lkws90jlvr4l40l8h7fkck0skpf9yp4989a3bsqvm670l8qvc1w"; depends=[assertthat doParallel dplyr groupdata2 Matrix nloptr plyr PoissonBinomial progress Rcpp RcppAlgos RcppEigen Rsymphony scales sf tibble vegan withr xgboost]; };
   survidm = derive2 { name="survidm"; version="1.3.2"; sha256="0ass7ffpk70ph7dcdjm2f6xyzqaavlkhr1pcij2vcasiy4v1vyiv"; depends=[doParallel doRNG foreach ggplot2 gridExtra KernSmooth np plotly Rcpp survival TPmsm]; };
-  survival = derive2 { name="survival"; version="3.5-8"; sha256="1d0qvw4200mjldna9n0acis0fk8xj28wwzqb8c3d4537l92zivbi"; depends=[Matrix]; };
+  survival = derive2 { name="survival"; version="3.7-0"; sha256="1vzy8kg159yqnvg733air11la2qrirwcqhn9d67h5c18r67b15nd"; depends=[Matrix]; };
   survival_svb = derive2 { name="survival.svb"; version="0.0-2"; sha256="13lipzn1cnkd5dcg8n69cdghycifiin3jnjvgzsv0g60l1jk0lmp"; depends=[glmnet Rcpp RcppEigen survival]; };
   survival666 = derive2 { name="survival666"; version="0.5"; sha256="11vs546lrbxnhpxjmwxhh2hnp6kwcf4hzgigi3x9525hr8n9cy01"; depends=[ggplot2 survival survminer]; };
   survivalAnalysis = derive2 { name="survivalAnalysis"; version="0.3.0"; sha256="0s4cihmjhg94zcbvr7c1pxdjyc0rpbqlw1gni5xkdhqp4lnqmygf"; depends=[cowplot dplyr forcats ggplot2 gridExtra magrittr purrr rlang scales stringr survival survminer tibble tidyr tidytidbits]; };
@@ -18994,15 +19288,16 @@ in with self; {
   survivalREC = derive2 { name="survivalREC"; version="1.1"; sha256="14b4zzdjhk258lsy6dhlgdpkpyry6bd01dncrm9g0qj36hlwll3d"; depends=[KernSmooth survival]; };
   survivalROC = derive2 { name="survivalROC"; version="1.0.3.1"; sha256="0p6irjs8a9xxgxwax0y9fzapcib237if3iy8g6lzv793mzmsyx41"; depends=[]; };
   survivalSL = derive2 { name="survivalSL"; version="0.94"; sha256="03d38fh8pw5m2cd3v6hvcwc9d9b15idzrh9nj48cn6k27cnzf8qg"; depends=[caret date dplyr flexsurv glmnet glmnetUtils hdnom MASS randomForestSRC rpart survival]; };
+  survivalVignettes = derive2 { name="survivalVignettes"; version="0.1.6"; sha256="140pwwgfi0h3gh33vwka3fxrpaxzgzf06g3g19nnwmpn4b8xm061"; depends=[survival]; };
   survivalmodels = derive2 { name="survivalmodels"; version="0.1.191"; sha256="0iwbpfaqr0yl0ryi1d6y343cprm9ncn8c4qfp5q2vj193pzv10q0"; depends=[Rcpp]; };
   survivalsvm = derive2 { name="survivalsvm"; version="0.0.5"; sha256="1b4hrdrqq1z0kfn8vpdwg54388m25df2s6w9i574x3mkxkmkjkga"; depends=[Hmisc kernlab Matrix pracma quadprog survival]; };
-  survivoR = derive2 { name="survivoR"; version="2.3.1"; sha256="19yrk1qvpfqq7nqph9gmzyjb28a785gfq4kdbbdam9jmbyjijf9g"; depends=[crayon dplyr DT ggplot2 glue lubridate magrittr purrr readr shiny shinycssloaders shinyjs stringr tidyr]; };
+  survivoR = derive2 { name="survivoR"; version="2.3.3"; sha256="08ficbw2bwc7pk5gcis6q6ghm7ivs47j5x3bjw4grrbr1jwssy18"; depends=[crayon dplyr DT ggplot2 glue lubridate magrittr purrr readr shiny shinycssloaders shinyjs stringr tidyr]; };
   survminer = derive2 { name="survminer"; version="0.4.9"; sha256="0byh0wxdbjfwdrzsnqv4xlmnik6lj0vkkzfxy7lssk8dv5zmj7nz"; depends=[broom dplyr ggplot2 ggpubr ggtext gridExtra magrittr maxstat purrr rlang scales survival survMisc tibble tidyr]; };
   survmixer = derive2 { name="survmixer"; version="1.3"; sha256="00s06h7nn8li4d2kn4yzlnj3px1wkpvnx5w73y98cvrcwm0ad71g"; depends=[]; };
-  survobj = derive2 { name="survobj"; version="3.0.0"; sha256="0nwa3yk6pi1pmbd3asm519kqkp9w8w06rd7n4yh76zvbl7yl87y5"; depends=[dplyr ggplot2 survival tidyr]; };
+  survobj = derive2 { name="survobj"; version="3.1.0"; sha256="0wd6ghnzvla7lxpg8nnjxmal6v82321q7kpwmvlswp8b4s0rp89l"; depends=[dplyr ggplot2 survival tidyr]; };
   survout = derive2 { name="survout"; version="0.1.0"; sha256="1ypxhdirppr6061zk1is473b8k8yy3m14ij4fa66rczs8gqy5sj2"; depends=[cmprsk dplyr openxlsx survival tibble]; };
   survsim = derive2 { name="survsim"; version="1.1.8"; sha256="0gv54bd94a6vdz8li0j409qv7r0h4d681l1p9hj9ilzk7y5bfm70"; depends=[eha statmod]; };
-  survstan = derive2 { name="survstan"; version="0.0.7"; sha256="13mby2xb3pa4mq0znm9p0i7r0yrp7wz77czk0n0sbb5j899mr1yf"; depends=[actuar BH broom doFuture dplyr extraDistr foreach future generics ggplot2 gridExtra MASS purrr Rcpp RcppEigen RcppParallel Rdpack rlang rstan rstantools StanHeaders survival tibble tidyr]; };
+  survstan = derive2 { name="survstan"; version="0.0.7.1"; sha256="1yd634a4bqv5sfmsp2n4xxjjn23ms67iw3zzaa0yqzwldh09z6ng"; depends=[actuar BH broom doFuture dplyr extraDistr foreach future generics ggplot2 gridExtra MASS purrr Rcpp RcppEigen RcppParallel Rdpack rlang rstan rstantools StanHeaders survival tibble tidyr]; };
   susieR = derive2 { name="susieR"; version="0.12.35"; sha256="0fhdc3lkhl4s9h2ng72gypy2z3hgk6566jfhwhsfbddyzd22drpd"; depends=[crayon ggplot2 Matrix matrixStats mixsqp reshape]; };
   susographql = derive2 { name="susographql"; version="0.1.6"; sha256="1drh8vqkdmvd9v80ibjx3jhnp5f8ggs445mr6r9j69ygw259npbk"; depends=[cli curl data_table glue httr2 jsonlite lubridate readr rlang stringr withr]; };
   svDialogs = derive2 { name="svDialogs"; version="1.1.0"; sha256="0z3a5glsi0ab43mdk2yvslxyzg12nbqqqc35jvgzj475mpkbgjif"; depends=[rstudioapi svGUI]; };
@@ -19023,22 +19318,23 @@ in with self; {
   svgPanZoom = derive2 { name="svgPanZoom"; version="0.3.4"; sha256="1iglgwbyxf5q4716h9ba2cfmxh1qq16zwy54krnawg4580v8ydh2"; depends=[htmlwidgets]; };
   svgViewR = derive2 { name="svgViewR"; version="1.4.3"; sha256="0nsm397i1p0z1bbp92k6r12fgkxbgn624wvdwh5r7ydpiam6pvg8"; depends=[Rcpp rjson]; };
   svglite = derive2 { name="svglite"; version="2.1.3"; sha256="0m0axxrkiih4wmrp9qh803p4l92fdgrsbxaww38z89widx75da7h"; depends=[cpp11 systemfonts]; };
-  svgtools = derive2 { name="svgtools"; version="1.1.0"; sha256="1ipwj3qw8c62381b6yf5mazhg2a3ssddijqrq3bac57i8i6m8az1"; depends=[magick rsvg stringr xml2]; };
+  svgtools = derive2 { name="svgtools"; version="1.1.2"; sha256="0jp53x1nlclwsg5adyr1764car0z52rjq95ppijfkqi7yrbbi6ja"; depends=[magick rsvg stringr xml2]; };
   svines = derive2 { name="svines"; version="0.2.3"; sha256="0pmipkywpffs5zkvgdncz4ila6wndhvcm73bl73ncg7jqrrsi86r"; depends=[assertthat BH fGarch Rcpp RcppEigen RcppThread rvinecopulib univariateML wdm]; };
   svmpath = derive2 { name="svmpath"; version="0.970"; sha256="19b5hfqqsh072l5mbkafm5pjd6qhyj20qd2vq6zl5jjmc45r72w1"; depends=[kernlab]; };
   svplots = derive2 { name="svplots"; version="0.1.0"; sha256="0fa3mnsdaz85dy7rr6w454z516simj1zrf08sfbm05rp6jr3c7ws"; depends=[ggplot2]; };
-  svrep = derive2 { name="svrep"; version="0.6.3"; sha256="1b36d4f7dd5hf1wxmkwpp7sz9sfykf492xakp0v1b3qsby8gcdbc"; depends=[DBI Matrix mvtnorm survey]; };
+  svrep = derive2 { name="svrep"; version="0.6.4"; sha256="110vbkzrlyx8f9arqw39jxw2z4lpggcjq180radyxz2a2is7lwvc"; depends=[DBI Matrix mvtnorm survey]; };
   svrpath = derive2 { name="svrpath"; version="0.1.2"; sha256="18h40555jmqpbsnhlwkvc5fl7d0r2bgscdv8amjvhjxmx9y952a2"; depends=[quadprog svmpath]; };
   svs = derive2 { name="svs"; version="3.0.0"; sha256="1jn3dbaqpgydkwf9y7hq97nva26vvrpl9zmw2bw4ky1qgzgz1ypb"; depends=[gtools Matrix]; };
   svyVGAM = derive2 { name="svyVGAM"; version="1.2"; sha256="01y372p52xjd7j20xk5gwxkl8sfnwdvixx3pb3f6r407ca7l330h"; depends=[survey VGAM]; };
-  svydiags = derive2 { name="svydiags"; version="0.5"; sha256="0j47wqmk9045dla9lb5bh73b135qjhw99q9ddiq3ihb2f9m19lfm"; depends=[MASS Matrix survey]; };
+  svydiags = derive2 { name="svydiags"; version="0.6"; sha256="13rmy02f5d2ysbi5r9w9mhnyqrsvikhqwjk1d3dgkxgvz9lyqas0"; depends=[MASS Matrix survey]; };
   svylme = derive2 { name="svylme"; version="1.5-1"; sha256="1bbg6ha0crg166856h65aly9l5x8y18wv39jymbaczqhs0ba5w1s"; depends=[lme4 Matrix minqa survey]; };
   svyweight = derive2 { name="svyweight"; version="0.1.0"; sha256="1pg22gc8798dn9r8gphzlagryybb8gv6l18x650wq82mirnvgl6h"; depends=[gdata survey]; };
   swCRTdesign = derive2 { name="swCRTdesign"; version="4.0"; sha256="0q0f6f2fhjgqwvlhs14x6vz1fjq4iadx2g7cypifzpr1pq474nwf"; depends=[lme4 lmerTest]; };
   swa = derive2 { name="swa"; version="0.8.1"; sha256="1zy1a6c17vmdkmkwp8vv3niww2zs1m0hylsa0b2cz68vfhnmpim4"; depends=[ggplot2 reshape ROCR]; };
   swaRm = derive2 { name="swaRm"; version="0.6.0"; sha256="0p29dyig4zyrjp5gbm17q4s4g2jxl2idq6cqp6zyhsr0n197d38h"; depends=[geosphere lubridate MASS splancs]; };
+  swaRmverse = derive2 { name="swaRmverse"; version="0.1.0"; sha256="1z14ys2y42griwbwcjilk552haczlfbazjzwa5g6kvlxjibm1dq0"; depends=[geosphere pbapply Rtsne swaRm trackdf]; };
   swag = derive2 { name="swag"; version="0.1.0"; sha256="1w6schbj5gw7278krjzkcwafz3wv7vp7cfsvy17c0i1b5g3qqkpd"; depends=[caret Rdpack]; };
-  swagger = derive2 { name="swagger"; version="3.33.1"; sha256="1ldgmy5vjzd11z5yl5a518wkw6y0l469b2zf0lp12hk19jq6k0sj"; depends=[]; };
+  swagger = derive2 { name="swagger"; version="5.17.14"; sha256="0vbz6cm6qclgydjlbymjjcsdb94bs8yprk5wmzzp6ny3ghaxjh9k"; depends=[]; };
   swamp = derive2 { name="swamp"; version="1.5.1"; sha256="1mj6cqrc19p07v051fg6ikhhbccsg2lvz7wjiakaswqqm0269843"; depends=[amap gplots impute MASS]; };
   swaprinc = derive2 { name="swaprinc"; version="1.0.1"; sha256="0r90w387chh4xgqn7jfi2wawsgr8faansp94hrp4vkhdmbbsb86z"; depends=[broom broom_mixed dplyr Gifi lme4 magrittr rlang tidyselect]; };
   swatches = derive2 { name="swatches"; version="0.5.0"; sha256="1kivscgka8gn44rjj0s5sjan1s04znnyn0nd37a74zaik0hm8zs0"; depends=[colorspace httr pack stringr xml2]; };
@@ -19068,16 +19364,17 @@ in with self; {
   sylly_en = derive2 { name="sylly.en"; version="0.1-3"; sha256="0jw48qin172vv7skcpvcpi9wzgav5l9afzb09hhgcxvivbz6dl93"; depends=[sylly]; };
   sym_arma = derive2 { name="sym.arma"; version="1.0"; sha256="13fhmgzd50mwlnz9m6nnn4arr4jdqf5h7dgli5lk08da9wx6cy69"; depends=[]; };
   symDMatrix = derive2 { name="symDMatrix"; version="2.1.1"; sha256="0xmpw37qkbadqp1idv8qmazdmmv0sd4fwgihg1b97hxzqhsxw0fh"; depends=[bit ff LinkedMatrix]; };
-  symSEM = derive2 { name="symSEM"; version="0.2"; sha256="05km458ffmy9sc93zjvfg0c7qcwb62fh3scllw67rv5919lq5hh9"; depends=[caracas metaSEM OpenMx]; };
+  symSEM = derive2 { name="symSEM"; version="0.4"; sha256="0zk9a1l1pcyjg43j8jafbms072kzz6qqz514a0kbnyg7ja0bfrmj"; depends=[caracas metaSEM OpenMx]; };
   symbol_equation_gpt = derive2 { name="symbol.equation.gpt"; version="1.1.3"; sha256="1z7ww9wvyd4ma7bk0ynp2rbkrajd8b3frb1msh8wn2msj5k7pfpg"; depends=[htmltools markdown nextGenShinyApps r2symbols rstudioapi shiny shinyStorePlus]; };
   symbolicDA = derive2 { name="symbolicDA"; version="0.7-1"; sha256="1x1qwrf587lgp9ciakrhiy3wj4g90x4g7r784rr2b97g1xwysjff"; depends=[ade4 cluster clusterSim e1071 RSDA shapes XML]; };
+  symbolicQspray = derive2 { name="symbolicQspray"; version="1.0.0"; sha256="03znlsgyli2jdbv4i1k358j1796w11zbiidl3iy9lgv9adrh3cnh"; depends=[BH gmp qspray ratioOfQsprays Rcpp RcppArmadillo RcppCGAL]; };
   symengine = derive2 { name="symengine"; version="0.2.6"; sha256="1vwgd3bclsc93s1688xnf65f1hy2l7qn3g25rqsyqshdd5w2hzw9"; depends=[Rcpp]; };
   symmetry = derive2 { name="symmetry"; version="0.2.3"; sha256="01sk0v6kh9qi3phl51wk83c5v413ab23qmcqjd3hl2x4hn2rv2z6"; depends=[Rcpp RcppArmadillo Rdpack]; };
   symmoments = derive2 { name="symmoments"; version="1.2.1"; sha256="0wl68nsvydfhlbyaj54alj31dphqigyp1s4h2xdapxj4zvwf2sws"; depends=[combinat cubature multipol mvtnorm]; };
   symphony = derive2 { name="symphony"; version="0.1.1"; sha256="0bgdhah202sh5mjbzqzk14vkl6xwdxxhri0ik03xh654b4s8hscc"; depends=[class data_table dplyr ggplot2 harmony irlba magrittr Matrix purrr RANN RColorBrewer Rcpp RcppArmadillo rlang tibble tidyr uwot]; };
-  symptomcheckR = derive2 { name="symptomcheckR"; version="0.1.1"; sha256="1dh4j950ha9l6kp4y8ygfxp5lp42x6j3bjzdbdpsz9a6hdb3l9az"; depends=[dplyr ggplot2 ggpubr tidyr]; };
+  symptomcheckR = derive2 { name="symptomcheckR"; version="0.1.3"; sha256="0mhcn5df3nlli55wv50mmc5gk9yjkgazvagivwk0k033f0k73cjl"; depends=[dplyr ggplot2 ggpubr irr tidyr]; };
   syn = derive2 { name="syn"; version="0.1.0"; sha256="12apdjbsazwfxizsw4dj0y3vkdjmki8dzpyv3bi9gnhpysdd1jzx"; depends=[]; };
-  synMicrodata = derive2 { name="synMicrodata"; version="1.0.0"; sha256="111ifrnxg253prr3ql9581279r4dy12rbixn29j0zv9j0wjaa190"; depends=[Rcpp RcppArmadillo]; };
+  synMicrodata = derive2 { name="synMicrodata"; version="2.0.0"; sha256="03fx8lzg90p8cw237lgn6yqxnxlknximpyafx6jnd9yh2sc3ccjb"; depends=[Rcpp RcppArmadillo]; };
   synchronicity = derive2 { name="synchronicity"; version="1.3.10"; sha256="12svf4xzb9s3m1h2ddqgl6q2v57ifsj2p80j8cg2k0543a43pww2"; depends=[BH bigmemory_sri Rcpp uuid]; };
   synchrony = derive2 { name="synchrony"; version="0.3.8"; sha256="1zpxg4dkxnvafiyp0j00wig5ymj10bzfg2376x56rzpnabhg57hi"; depends=[]; };
   synlik = derive2 { name="synlik"; version="0.1.6"; sha256="0pslag0nb9v872yr383chjdavz8hv9m0ba3pvxhfpshxsfzczcca"; depends=[Matrix Rcpp RcppArmadillo]; };
@@ -19087,14 +19384,16 @@ in with self; {
   synthACS = derive2 { name="synthACS"; version="1.7.1"; sha256="1s4jawg2g0zy41y0ajacki4nif9m3r0hnaz63yhapcnizc37lyy1"; depends=[acs data_table Rcpp retry]; };
   synthesis = derive2 { name="synthesis"; version="1.2.4"; sha256="1yb0z4klz4hd7ab83j3h4x8v2yp2glmnnvz64g76iclx5mcgl6az"; depends=[MASS]; };
   synthesisr = derive2 { name="synthesisr"; version="0.3.0"; sha256="0b50d5hfkscggn2f6h8wyljkar08r8cbc0a4l12f809w5hdnjc63"; depends=[stringdist]; };
+  synthesizer = derive2 { name="synthesizer"; version="0.2.0"; sha256="1d676d75bf6nh535iz9wp8887203xzfggnvw1z95l599jz6mbymr"; depends=[randomForest]; };
   synthpop = derive2 { name="synthpop"; version="1.8-0"; sha256="0ljq3vhprzxj0p5s57pr223n3mxbiwz0p5bdvjcdkw4xykx7zkka"; depends=[broman classInt foreign ggplot2 lattice MASS mipfp nnet party plyr polspline proto randomForest ranger rmutil rpart stringr survival]; };
   sys = derive2 { name="sys"; version="3.4.2"; sha256="1cz57jkc159zfgffvcdb40wv9avb5id7pdvgx8q1hs7vy1kcxgdp"; depends=[]; };
   sysfonts = derive2 { name="sysfonts"; version="0.8.9"; sha256="124zcnw88xnlhx27qjm07mw59f98jiwspmm65v94k815lqs9qiaj"; depends=[]; };
   sysid = derive2 { name="sysid"; version="1.0.4"; sha256="0fr9gf5yjin3zvz850z4r4pqc1r4mwx8d46sl64i4csdm9qnqagy"; depends=[bitops ggplot2 polynom reshape2 signal tframe zoo]; };
   syslognet = derive2 { name="syslognet"; version="0.1.2.1"; sha256="0nwni2mn7w43pfasqa2dwy1l6r0ymlkwlsyd5q47fajdr8v1ir0q"; depends=[]; };
   systemfit = derive2 { name="systemfit"; version="1.1-30"; sha256="1qhw8gda85lliqhj67zsgva4cb6wihr5hks1c9c34y0n3ywgp52r"; depends=[car lmtest MASS Matrix sandwich]; };
-  systemfonts = derive2 { name="systemfonts"; version="1.0.6"; sha256="1mqxb2njfnk5rfwkqc940xbpwd3dh25zac4sapv5mjyddrxnwn6i"; depends=[cpp11]; };
-  syt = derive2 { name="syt"; version="0.3.0"; sha256="19vjqkk0ji35zm3xqrjmlahjawnxapmsh0d6v9klb6h05aamd0gg"; depends=[Matrix partitions]; };
+  systemfonts = derive2 { name="systemfonts"; version="1.1.0"; sha256="0i5n7zhpmllgmz7064s3v85ycsvkrd9qr8r6q172h803sadhch8r"; depends=[cpp11 lifecycle]; };
+  systemicrisk = derive2 { name="systemicrisk"; version="0.4.3"; sha256="05isv0wdx98s824nk0v8r3mqvmnrmsq7ffki40092snsfda3451z"; depends=[lpSolve Rcpp]; };
+  syt = derive2 { name="syt"; version="0.4.0"; sha256="1iw3nx0xsjrmmxmvr88nkawix7imdwv2agzhg7hqy6iaa263k6mi"; depends=[Matrix partitions]; };
   syuzhet = derive2 { name="syuzhet"; version="1.0.7"; sha256="0cpjg16hwn6843jdxp4h94qjw1wwwblvjzg30w54rac08m62nkxg"; depends=[dplyr dtt NLP rlang textshape tidyr zoo]; };
   tLagInterim = derive2 { name="tLagInterim"; version="1.0"; sha256="17fz38bc4r7m3racscr9yn1s8vmzlkkc14144bb3x4sg40ybyfpx"; depends=[R_utils survival]; };
   tLagPropOdds = derive2 { name="tLagPropOdds"; version="1.9"; sha256="0bygx77s28izfwdyk6gihcyanch55cha7x52h29kxxp1kaapyf11"; depends=[dplyr R_utils survival]; };
@@ -19109,25 +19408,25 @@ in with self; {
   table_express = derive2 { name="table.express"; version="0.4.2"; sha256="0iyx45q64ya82054alj1jm53zh2l8m05z743k0ifscyr0lkmp3zm"; depends=[data_table dplyr magrittr R6 rlang tidyselect]; };
   table_glue = derive2 { name="table.glue"; version="0.0.3"; sha256="1viaz9swdhgk4ysjhyvl9fr4m430qvmwwblij2b2dadwbdl0z9k4"; depends=[glue stringi]; };
   table1 = derive2 { name="table1"; version="1.4.3"; sha256="1wr5cqc6a81b5b2fjvw4swb579q5llf63658l6srhxbxx0qba5l3"; depends=[Formula htmltools knitr yaml]; };
-  tableExtra = derive2 { name="tableExtra"; version="1.0.1"; sha256="1rbcxd3rjhvcpayj6d7mh30vkbc7g4mv4qa7552xz3x1wny0n4mm"; depends=[gtable]; };
   tableHTML = derive2 { name="tableHTML"; version="2.1.2"; sha256="0x86q0nddkyan9yh2jaldrnc30q1n3q0fnza2fnavzbz5c2hxapw"; depends=[htmltools jpeg magrittr png shiny webshot]; };
   tableMatrix = derive2 { name="tableMatrix"; version="0.82.0"; sha256="1sskijhbqakamrk2rv7v5zpjsdi8jw0jl2z96l0vhsvsiq0cz1c8"; depends=[data_table]; };
   tablecompare = derive2 { name="tablecompare"; version="0.1.1"; sha256="1n5qykpsn43w9x030ymspryx69k5wd3vlkw471wxpf3cqkxqbkdg"; depends=[data_table glue magrittr purrr rlang tidyselect]; };
-  tabledown = derive2 { name="tabledown"; version="0.0.3"; sha256="0pvd9i7ycsarsp7m9hdss86vx0mdrv57iqxk8nyqixfdvrwb48pv"; depends=[data_table dplyr ggplot2 lavaan magrittr mirt MOTE psych tibble tidyselect]; };
+  tabledown = derive2 { name="tabledown"; version="1.0.0"; sha256="1l2snq2damqckqi3nqiwlh3hiin3qs0wlkmlim9h9ar87dp56r44"; depends=[data_table dplyr ggplot2 kutils lavaan magrittr mirt MOTE plotly psych tibble tidyr tidyselect]; };
   tableeasy = derive2 { name="tableeasy"; version="1.1.2"; sha256="1aa3af245w1frj94j0qynyjv5pvvajas2fmdnyyiknrnrghcn7n2"; depends=[lmtest mgcv nortest survival tableone]; };
   tableone = derive2 { name="tableone"; version="0.13.2"; sha256="1br78y68037g5v5jhgi9l393kj2msamdklim8ki40hmxk9bibkxi"; depends=[e1071 gmodels labelled MASS nlme survey zoo]; };
   tablerDash = derive2 { name="tablerDash"; version="0.1.0"; sha256="1mnp6lxa7d669r325aynq1n3f35r9sy4v1fvdh4cymbf33s8mkmm"; depends=[htmltools knitr shiny]; };
-  tables = derive2 { name="tables"; version="0.9.17"; sha256="1ygf1jir32dwy7617imrr2pkqf5qf894lbxrjm7kqflq3ar6zf5z"; depends=[htmltools knitr]; };
+  tables = derive2 { name="tables"; version="0.9.25"; sha256="1yqwnq44ylvqhr0lpadff6y9x362naz00j76jbfirjrrdrwhw05r"; depends=[htmltools knitr]; };
   tableschema_r = derive2 { name="tableschema.r"; version="1.1.2"; sha256="1lnl1xybwzg00hqksbj2g6r1hrzwlh2al08hhml0n42khmvpg05g"; depends=[config future httr jsonlite jsonvalidate lubridate purrr R6 RCurl rlist stringr urltools]; };
   tablesgg = derive2 { name="tablesgg"; version="0.9-1"; sha256="1gw6pfqa64xq4akbzzn5d1nd9wd505k8lqldy46b40h6ahkr1k78"; depends=[ggplot2 tables]; };
-  tablet = derive2 { name="tablet"; version="0.6.5"; sha256="0vqzql4103qfbsy0ryncznmrrk7dsr28awgrrrgccsvkp8fgh7hf"; depends=[dplyr fs kableExtra magrittr reactable rlang spork tidyr yamlet]; };
-  tablexlsx = derive2 { name="tablexlsx"; version="0.1.0"; sha256="0rispm626s59g3irdkx8clmjlqsg1vdlyjkzx0z74m13nkgmfw82"; depends=[dplyr magrittr openxlsx]; };
-  tabnet = derive2 { name="tabnet"; version="0.5.0"; sha256="1myw6qx2h7szp6p0d5y4vy9mw5nsxmj64ybshp2q22whlbiqad7k"; depends=[coro dplyr hardhat magrittr progress rlang tibble tidyr torch vctrs zeallot]; };
+  tablet = derive2 { name="tablet"; version="0.6.8"; sha256="0yg58dh8k32155pm16ai327a33i0bx7qkrd4jvj7mf4qy9ava6v3"; depends=[dplyr fs kableExtra magrittr reactable rlang spork tidyr yamlet]; };
+  tablexlsx = derive2 { name="tablexlsx"; version="1.0.0"; sha256="11xnazwsmm3gwmwqnqjv2yc3bwcz5na168dkl8i2g7p983z4999p"; depends=[cli magrittr openxlsx]; };
+  tabnet = derive2 { name="tabnet"; version="0.6.0"; sha256="1bvbl1b4i3mx2qf6hjbkk114s1bq76gnhpfasy4c5q2f9k6z33c7"; depends=[coro data_tree dials dplyr ggplot2 hardhat magrittr Matrix parsnip progress purrr rlang stringr tibble tidyr torch tune vctrs withr zeallot]; };
   taboolaR = derive2 { name="taboolaR"; version="0.1.0"; sha256="1nv189d6sjjrhc1nr7xhdf22gfh1z93rlcgm2vk7kcs43avm8fwb"; depends=[jsonlite]; };
   tabr = derive2 { name="tabr"; version="0.4.9"; sha256="0dsm98lhl7j2bb3z5cliz1f34sv904svhniw6iar1nqh6p9y8a5l"; depends=[crayon dplyr ggplot2 purrr tibble tidyr]; };
   tabshiftr = derive2 { name="tabshiftr"; version="0.4.1"; sha256="1ri28zxsxn9bkbq0f47q6mkr889krvixvk63in0jbn9hya77gdy8"; depends=[checkmate crayon dplyr magrittr purrr rlang stringr testthat tibble tidyr tidyselect]; };
   tabuSearch = derive2 { name="tabuSearch"; version="1.1.1"; sha256="0396a8hla508na1hmyyhfbl8w10dbg810cln2xyhhvxi7rr223dj"; depends=[]; };
-  tabula = derive2 { name="tabula"; version="3.0.1"; sha256="0w26lp0if0lxkr8hrlw57jf5cwqji4q8yqaay6fasy08z4j9lvhf"; depends=[arkhe]; };
+  tabula = derive2 { name="tabula"; version="3.1.0"; sha256="03h4i899ciiwhwjwbkkm6x93r3469r1bmw6dfrrya5iykk434v0d"; depends=[arkhe]; };
+  tabulapdf = derive2 { name="tabulapdf"; version="1.0.5-3"; sha256="1cavgzchfpwa8mg7g4di5sys41909iwvy6sj0ah7p8cd623k9f7g"; depends=[png readr rJava]; };
   tabularMLC = derive2 { name="tabularMLC"; version="0.0.3"; sha256="1gppzbf780ci4vrvy7rd3xa0bvwxca5f05a9xk194xv913vyd440"; depends=[Rcpp RcppArmadillo]; };
   tabularaster = derive2 { name="tabularaster"; version="0.7.2"; sha256="1v64cdh098nmlaj8g3dbyssxrwizaqhabsb7djvz60g2x3z2d20k"; depends=[dplyr fasterize magrittr raster silicate spatstat_geom tibble]; };
   tabularmaps = derive2 { name="tabularmaps"; version="0.1.0"; sha256="07i76n2fpl2ma6jl3zdbay0zmmaaxrxhv1368xm2d575br42nri4"; depends=[ggforce ggplot2 purrr rlang]; };
@@ -19152,10 +19451,10 @@ in with self; {
   tangram_pipe = derive2 { name="tangram.pipe"; version="1.1.2"; sha256="0v86xn5rvr6c74cqhiwfxgfb4mizqlf5bqc51870na28i2ariaap"; depends=[dplyr]; };
   tapkee = derive2 { name="tapkee"; version="1.2"; sha256="1xgz2cv5jb1hdnl8y8zs4x6p1dk1vv8zbs4wfsj61gpfyf9gkh4f"; depends=[]; };
   tapnet = derive2 { name="tapnet"; version="0.3"; sha256="1fjg98m19iwbzijs5b5l4ssrbx1shv1hmgn1166cbni9y76m44sh"; depends=[ape bipartite MPSEM phytools vegan]; };
-  tarchetypes = derive2 { name="tarchetypes"; version="0.8.0"; sha256="18vn2mx5nqlib0by5v7493g8gsbzcdbg0dn92cpbf713r69v1lbk"; depends=[digest dplyr fs rlang targets tibble tidyselect vctrs withr]; };
+  tarchetypes = derive2 { name="tarchetypes"; version="0.9.0"; sha256="0lb5y3rlm369szabmamhq8rrjh7ybngmd3av0jisi84bwdvrwhxk"; depends=[dplyr fs rlang secretbase targets tibble tidyselect vctrs withr]; };
   tardis = derive2 { name="tardis"; version="0.1.4"; sha256="1hfqnszhly6cfi7aii3v9nnrj3md389bflvf3igixrn4wb7mfyi5"; depends=[cpp11 dplyr magrittr purrr rlang stringi stringr tidyr]; };
   targeted = derive2 { name="targeted"; version="0.5"; sha256="176h4zswxf33394ngf4kczcan4acs91jnpk5pyz5fw49l5yhkqlg"; depends=[data_table digest futile_logger future_apply lava mets optimx progressr R6 Rcpp RcppArmadillo survival]; };
-  targets = derive2 { name="targets"; version="1.6.0"; sha256="1ddpbhvdydxm62k6ay7hpqjh8kh2isjpcdh3gygzcdrghx6d7x65"; depends=[base64url callr cli codetools data_table digest igraph knitr ps R6 rlang secretbase tibble tidyselect vctrs yaml]; };
+  targets = derive2 { name="targets"; version="1.7.0"; sha256="1h939mvyxd1wjakcbxjxcmn6a7i23ya1kc89aqwarizsj00hdjil"; depends=[base64url callr cli codetools data_table igraph knitr ps R6 rlang secretbase tibble tidyselect vctrs yaml]; };
   tashu = derive2 { name="tashu"; version="0.1.1"; sha256="0rirjalridr79a7j3qz80l2vp6m8paqr97ac241b58756k7nr5j7"; depends=[dplyr drat ggplot2 lubridate plyr randomForest RColorBrewer reshape2]; };
   tastypie = derive2 { name="tastypie"; version="0.1.1"; sha256="0a7wq8jg3f0852y9pla1f63dqnkwn3vnb9p7fh9jq9rf75ljcpjk"; depends=[dplyr fmsb ggplot2 packcircles RColorBrewer scales shadowtext tibble]; };
   tatest = derive2 { name="tatest"; version="1.0"; sha256="1yd9pdpdhxwpllnj5wxa7ly29qiw8qywx9lx0w3nizczlx35fgjy"; depends=[]; };
@@ -19171,12 +19470,13 @@ in with self; {
   taxlist = derive2 { name="taxlist"; version="0.2.4"; sha256="144nsiz90nkrm2v4nnhpvdnzpvjg2jh88dkqrm4gjm0drl9s981g"; depends=[biblio foreign stringdist stringi stringr vegdata]; };
   taxonbridge = derive2 { name="taxonbridge"; version="1.2.2"; sha256="1ivks3bvwyn0ybvyz6dhsx7qxnlskf4icjkgsichdv4p24w5iwb9"; depends=[dplyr ggplot2 purrr rje stringr vroom withr]; };
   taxonomizr = derive2 { name="taxonomizr"; version="0.10.6"; sha256="1g4r42zc9h6f0x875b0nyg56frzn4q7k5vk1jkwczz6ic5cbwigj"; depends=[curl data_table R_utils RSQLite]; };
-  taxotools = derive2 { name="taxotools"; version="0.0.132"; sha256="0f24356bmvbm6p18zw9vsyz0zqyijq8757c83mv14mkbqs2apqip"; depends=[plyr rmarkdown sqldf stringdist stringi stringr taxize wikitaxa]; };
+  taxotools = derive2 { name="taxotools"; version="0.0.139"; sha256="1nx79a0jfy0xrd83zk3zwk65mdk35lgz564b3fmhdv9rqpmg9q7n"; depends=[plyr rmarkdown sqldf stringdist stringi stringr taxize wikitaxa]; };
   tayloRswift = derive2 { name="tayloRswift"; version="0.1.0"; sha256="1gr179hzqxih49v214dqawfhsbsahhyj1lbj77vqv00zq1siigpl"; depends=[]; };
-  taylor = derive2 { name="taylor"; version="3.0.0"; sha256="0qxy0kvqylpy3bcp2va4c3453x160zf8kaw34jydg78mibmjlghr"; depends=[crayon ggplot2 glue lifecycle rlang scales tibble vctrs]; };
+  taylor = derive2 { name="taylor"; version="3.1.0"; sha256="179kb49ch0178vmvbx2vmrvnld4nq36gvq65bj334338sc85fmsl"; depends=[crayon ggplot2 glue lifecycle rlang scales tibble vctrs]; };
   tbd = derive2 { name="tbd"; version="0.1.0"; sha256="1wmfy3p82gckhfsslxzapryfygmircii7x24j6ysfyx52gy8iwf5"; depends=[numDeriv]; };
+  tbea = derive2 { name="tbea"; version="1.4.2"; sha256="1lffwmy4qiy24vkhizv8vxhffm35xh7ls818fhn50j7my8gzpip1"; depends=[ape boot coda Rfit]; };
   tbl2xts = derive2 { name="tbl2xts"; version="1.0.4"; sha256="1h54yhwbmlzgii202dcrz336d790374p213f1ba6rlm5syad88v9"; depends=[dplyr rlang tibble xts zoo]; };
-  tbm = derive2 { name="tbm"; version="0.3-5"; sha256="0qq6zjz37j31jrw0lxsf6vgxwhs8swkqg48jwc320vpz1qjqj7xv"; depends=[basefun coneproj mboost mlt sandwich variables]; };
+  tbm = derive2 { name="tbm"; version="0.3-6"; sha256="1d9ny184b5lbjxaxbm1qzrkpar1l5ggh8g92yq2kc46kall04cxh"; depends=[basefun coneproj mboost mlt sandwich variables]; };
   tboot = derive2 { name="tboot"; version="0.2.1"; sha256="0pijvs5k28ndnkyy4lwln6wlcag0pnbndg33c5djyaxhns77faz2"; depends=[kernlab quadprog]; };
   tbrf = derive2 { name="tbrf"; version="0.1.5"; sha256="1mxfvgb18a62igdh3af4m8x6fl69s25j4x7isd70w744w6jvch3h"; depends=[boot dplyr lubridate purrr rlang tibble tidyr]; };
   tcftt = derive2 { name="tcftt"; version="0.1.0"; sha256="0p5ln0sl0fasdn49252g4lvwgwajgl7lh33a4r073ib54hxbj7bk"; depends=[]; };
@@ -19184,14 +19484,14 @@ in with self; {
   tci = derive2 { name="tci"; version="0.2.0"; sha256="15drq6rvakf8jxmb1g5d7jjl7vnbzg314d809zzq19bicivvxsqj"; depends=[ggplot2 gridExtra knitr mvtnorm Rcpp RcppArmadillo reshape reshape2 truncnorm xtable]; };
   tcl = derive2 { name="tcl"; version="0.2.0"; sha256="0n735xyl0fr3zgigw68xpy1ky3rfd2djwg9qhgbgif0cvgrrki1n"; depends=[eRm lattice ltm MASS Matrix numDeriv psychotools rlang]; };
   tcltk2 = derive2 { name="tcltk2"; version="1.2-11"; sha256="1ibxld379600xx7kiqq3fck083s8psry12859980218rnzikl65d"; depends=[]; };
-  tclust = derive2 { name="tclust"; version="1.5-6"; sha256="1p7y58mklcwq76msh1q8pm2v6v19ja6fy07xg1j07d2zw2wa0phy"; depends=[]; };
+  tclust = derive2 { name="tclust"; version="2.0-4"; sha256="0y05aqpmal7ky33hs8n1phai94d7f48ich43jvy4m5wbfxkp2rm6"; depends=[doParallel foreach MASS Rcpp RcppArmadillo]; };
   tcpl = derive2 { name="tcpl"; version="3.1.0"; sha256="0s35j9ky49d2f58hg93a47l6j855vm95a3qzwq3i8wd0p2zh1x7b"; depends=[data_table DBI dplyr ggplot2 gridExtra numDeriv plotly RColorBrewer RMariaDB sqldf stringr tcplfit2 tidyr]; };
   tcplfit2 = derive2 { name="tcplfit2"; version="0.1.6"; sha256="1znhma87nyy36m3viyh80m6gygqh4iwwh1xj0nw6wh88qal4935p"; depends=[numDeriv RColorBrewer stringr]; };
   td = derive2 { name="td"; version="0.0.6"; sha256="1zycwnl7n03jw76n8qrk2zhgnakj6npid25pflj6dnmbjc47ih32"; depends=[RcppSimdJson]; };
   tdROC = derive2 { name="tdROC"; version="2.0"; sha256="0m53a9w2365mb1bq9wlj7gwsabnbh9m4ax8klq22frj2dzvlk7xm"; depends=[magrittr Rcpp survival]; };
   tdata = derive2 { name="tdata"; version="0.3.0"; sha256="1plgqd4pllj06rc3cvyaqs0c23r3c688fg5h8fzfkbhrrxfpwdn8"; depends=[BH Rcpp]; };
   tdaunif = derive2 { name="tdaunif"; version="0.1.1"; sha256="03m8lzg4w1ys0shr2gir5m78c02r71l5pwqgvpcn004kirh3xhwv"; depends=[]; };
-  tdcmStan = derive2 { name="tdcmStan"; version="2.0.0"; sha256="0xa80r37abc9fzf9zcf0zpimadwa3glhw3qbn7wbg0cq93cm04df"; depends=[dplyr glue magrittr rlang stringr tibble tidyr tidyselect]; };
+  tdcmStan = derive2 { name="tdcmStan"; version="3.0.0"; sha256="1cykg4d1v42s9b2afhjfffbps40dxpgl2slacmhzbxjwlr24ci35"; depends=[dplyr glue magrittr rlang stringr tibble tidyr tidyselect]; };
   tdigest = derive2 { name="tdigest"; version="0.4.1"; sha256="1g4yk01lmx8cz5q06bxm3kcsi7c9cvpdfi925csc4qaf5rdrad4y"; depends=[magrittr]; };
   tdr = derive2 { name="tdr"; version="0.13"; sha256="0i0hnb3fc4d1mbbxcpzmyfh1w2rahfjabg5iyxym3yjd6377al15"; depends=[ggplot2 lattice RColorBrewer]; };
   tdsa = derive2 { name="tdsa"; version="1.1-0"; sha256="0zp0g2jcpl26vszbw3s5v6qc6l8jk2jll0nz0f3gywhiv93mjmgr"; depends=[deSolve mathjaxr numDeriv]; };
@@ -19200,18 +19500,18 @@ in with self; {
   tea = derive2 { name="tea"; version="1.1"; sha256="0ql7lrxk0ihm49kqsvz79ig8i54rwiy9nxav4v9hy72j9kj5bgjn"; depends=[Matrix]; };
   teal = derive2 { name="teal"; version="0.15.2"; sha256="1kgdrkf6rx85ng3h51hgy9zzbmjrlbd68hr3vi2n7pq5fcxnx5qq"; depends=[checkmate jsonlite lifecycle logger magrittr rlang shiny shinyjs teal_code teal_data teal_logger teal_reporter teal_slice teal_widgets]; };
   teal_code = derive2 { name="teal.code"; version="0.5.0"; sha256="0dhfvhdb61sp5i1za8lmp823y6la8dkisc8z9s9hvf4ypf63n05a"; depends=[checkmate lifecycle rlang]; };
-  teal_data = derive2 { name="teal.data"; version="0.5.0"; sha256="1ifp9pzd4a396f1kqgf79h31wfw9dhva16lwyq7im3dwqwrji3xi"; depends=[checkmate lifecycle rlang teal_code]; };
+  teal_data = derive2 { name="teal.data"; version="0.6.0"; sha256="05j05i6mxblza2xvmmx3bvhks2p30jrwm11i0lx3bh5n88hch02w"; depends=[checkmate lifecycle rlang teal_code]; };
   teal_logger = derive2 { name="teal.logger"; version="0.2.0"; sha256="1kji87sajwh06r2gqbj6gyg7q4kcw6am9cf2clwr39qg9srq2lri"; depends=[glue lifecycle logger shiny withr]; };
-  teal_modules_clinical = derive2 { name="teal.modules.clinical"; version="0.9.0"; sha256="1f8dz6lvv0syr2f1qkwk365d8i936hd8i464svmawmcjzvs5mac6"; depends=[broom checkmate dplyr DT formatters ggplot2 ggrepel lifecycle logger rlistings rmarkdown rtables scales shiny shinyjs shinyvalidate shinyWidgets teal teal_code teal_data teal_logger teal_reporter teal_transform teal_widgets tern tern_gee tern_mmrm vistime]; };
+  teal_modules_clinical = derive2 { name="teal.modules.clinical"; version="0.9.1"; sha256="1fvy0xcbxjfskdyp3y4y70y7q6swmkjzpswkw7z3fq856fbnaz75"; depends=[broom checkmate cowplot dplyr DT ggplot2 ggrepel lifecycle rlistings rmarkdown rtables scales shiny shinyjs shinyvalidate shinyWidgets teal teal_code teal_data teal_logger teal_reporter teal_transform teal_widgets tern tern_gee tern_mmrm vistime]; };
   teal_modules_general = derive2 { name="teal.modules.general"; version="0.3.0"; sha256="0j07ak6g2rk8b16pix853j7hvyhac580akflwxxb97zvzipy51qx"; depends=[checkmate dplyr DT forcats ggmosaic ggplot2 logger scales shiny shinyjs shinyTree shinyvalidate shinyWidgets stringr teal teal_code teal_data teal_logger teal_reporter teal_transform teal_widgets tern tibble tidyr]; };
   teal_reporter = derive2 { name="teal.reporter"; version="0.3.1"; sha256="1hgp17rjmwjqi00w28qgh5h13vn58wnwhx4y8825qnc8v45vchb5"; depends=[bslib checkmate flextable htmltools knitr lifecycle R6 rmarkdown shiny shinybusy shinyWidgets yaml zip]; };
-  teal_slice = derive2 { name="teal.slice"; version="0.5.0"; sha256="0i797v717jy7w6qcg82pl1rmr6hdp750wxzigynv6mcipibfms4r"; depends=[bslib checkmate dplyr htmltools jsonlite lifecycle logger plotly R6 shiny shinycssloaders shinyjs shinyWidgets teal_data teal_logger teal_widgets]; };
+  teal_slice = derive2 { name="teal.slice"; version="0.5.1"; sha256="0vnp61cmmbxfjmli7y9i9b388yh6rqic33a061s2k61j925cisg0"; depends=[bslib checkmate dplyr htmltools jsonlite lifecycle logger plotly R6 shiny shinycssloaders shinyjs shinyWidgets teal_data teal_logger teal_widgets]; };
   teal_transform = derive2 { name="teal.transform"; version="0.5.0"; sha256="0g171h3lqym99w6h4msm00xx88fc23fq67n8lxal55zdrvv1flg0"; depends=[checkmate dplyr lifecycle logger rlang shiny shinyjs shinyvalidate teal_data teal_logger teal_widgets tidyr tidyselect]; };
   teal_widgets = derive2 { name="teal.widgets"; version="0.4.2"; sha256="0qdjc1w1kh0k155vp0w0rs5yh26lmds9i6xv4dhrgnn7h2gaqgv1"; depends=[bslib checkmate ggplot2 htmltools lifecycle rtables shiny shinyjs shinyWidgets styler]; };
   tealeaves = derive2 { name="tealeaves"; version="1.0.6"; sha256="0gfga3fx047kpngwrkinsq3w5f34svnh3vpfjnc78bvrmmm70wqw"; depends=[checkmate crayon dplyr furrr future glue magrittr purrr rlang stringr units]; };
   teamcolors = derive2 { name="teamcolors"; version="0.0.4"; sha256="0mqrjnkpxzv7armgbl9nwz42pjb9l94yml5lp41rhjj9414b2729"; depends=[dplyr ggplot2 tibble tidyr]; };
   teamr = derive2 { name="teamr"; version="0.0.1"; sha256="01gngws8lf093598wlzrv4ls74avsli6ij33v1plqgc0znyaw4s2"; depends=[httr jsonlite R6]; };
-  tectonicr = derive2 { name="tectonicr"; version="0.2.95"; sha256="0ywq3iq6p4gfrdrmhh4fxw4gkw2ff1h55zlad6c579yc138yq5an"; depends=[boot dplyr ggplot2 RColorBrewer sf smoothr spatstat_explore spatstat_geom spatstat_utils terra tidyr viridis zoo]; };
+  tectonicr = derive2 { name="tectonicr"; version="0.3.2"; sha256="0w2pg7b3bk4vc72aw2n7hcp47aq7a25l41m9yh3x3a6ssnzcg350"; depends=[boot dplyr ggplot2 RColorBrewer sf smoothr spatstat_explore spatstat_geom spatstat_univar spatstat_utils terra tidyr viridis zoo]; };
   teda = derive2 { name="teda"; version="0.1.1"; sha256="0yx469jbkw9cgx73zi5mkykrdn16kn01zh524x9411314aa32avx"; depends=[]; };
   tehtuner = derive2 { name="tehtuner"; version="0.3.0"; sha256="1m1gkkl0kgjrlkbh3vz8lh64gq6l8v3vay0977lwx8g3yzs40z0g"; depends=[earth foreach glmnet party randomForestSRC Rdpack rpart stringr SuperLearner]; };
   teigen = derive2 { name="teigen"; version="2.2.2"; sha256="1k5k3lj6av5pyx130w1j7avd0jdmm12ryc71mi5mq49sp95ndl4v"; depends=[]; };
@@ -19219,22 +19519,24 @@ in with self; {
   telegram = derive2 { name="telegram"; version="0.6.0"; sha256="02wwa115f0vz2d9y4nf01397hjkpc3cv2gdl47snrajrm41gji7y"; depends=[curl httr jsonlite R6]; };
   telegram_bot = derive2 { name="telegram.bot"; version="3.0.0"; sha256="0fqv2piddb8i37rpvw6li25jhc9mbi7fyqmib90xah6qmlaji02g"; depends=[curl httpuv httr jsonlite openssl R6]; };
   telemetR = derive2 { name="telemetR"; version="1.0"; sha256="04samfr6m3lnyvq03an5an6z4iyqizn3qyjjblphrix2p5wrl37r"; depends=[dplyr ggplot2 lubridate tidyr zoo]; };
-  tempR = derive2 { name="tempR"; version="0.9.9.23"; sha256="1s1qyvxc0mz2wydyz4ba94sh71b4d52wzfiq9qsw6y5clff3282p"; depends=[]; };
+  telescope = derive2 { name="telescope"; version="0.1-0"; sha256="1r6ciiy12jy7z4hb2jhgv1ml7p57rqcpfbz2fs0bn5bc1jbzm3ch"; depends=[abind bayesm DirichletReg extraDistr MCMCpack mvtnorm]; };
+  telraamStats = derive2 { name="telraamStats"; version="1.1.2"; sha256="1n589sj7apwanq3v388f0v76mdhmk092n8mj91mwkdfjrn3r73ha"; depends=[config dplyr ggplot2 httr jsonlite lubridate paletteer purrr reshape2 rlang scales tidyr yaml]; };
+  tempR = derive2 { name="tempR"; version="0.10.1.1"; sha256="0ybf0kspzi7707bzdsra34hrgjizzxlh6yg2yz2i5rxhmfyddnb7"; depends=[]; };
   tempdisagg = derive2 { name="tempdisagg"; version="1.1.1"; sha256="11dr5z1s9d8d2xsl4gm9x15v7jyi88f5c5gk05layh5nl2c1bxni"; depends=[]; };
   temperatureresponse = derive2 { name="temperatureresponse"; version="0.2"; sha256="1id3wjzfs132hj8cm7gpf105qaay9dff07ixah9rmn5sk6si0zmq"; depends=[AICcmodavg broom dplyr minpack_lm numDeriv rootSolve]; };
   templateICAr = derive2 { name="templateICAr"; version="0.6.4"; sha256="15f2bv4vcsnqcb2rnpa1ylhxj8a511ab3mil3b8n9icffpzgahy0"; depends=[abind excursions expm fMRItools ica Matrix matrixStats pesel Rcpp RcppEigen SQUAREM]; };
   templates = derive2 { name="templates"; version="0.4.0"; sha256="07zkq1lnnlj9ik7vyxl4yphhj8pph4qql6qg7kvqd432hy43mwvm"; depends=[magrittr stringr]; };
   templr = derive2 { name="templr"; version="0.2-0"; sha256="1s2awbcf3vaalbrwz5ryfiz69vhapy9h6jhy6zgzqqs5l1aw4ad0"; depends=[jsonlite remotes xml2]; };
-  tempted = derive2 { name="tempted"; version="0.1.0"; sha256="0s2yqb5fn9aihjhkwffgd010ziihg3xx6j5i5d3a4vy2ki2l2a0w"; depends=[ggplot2 np]; };
+  tempted = derive2 { name="tempted"; version="0.1.1"; sha256="1chlnrlsjdw4b3bi4yh292x7n3yqnihsmf9cpm3l18rdpb964x77"; depends=[ggplot2 np]; };
   tenispolaR = derive2 { name="tenispolaR"; version="0.1.4"; sha256="0xpp1hi3xnkg55aixgy2bp5476i503h8gsiss9x7f15274kx0d7s"; depends=[stringr]; };
   tensor = derive2 { name="tensor"; version="1.5"; sha256="19mfsgr6vz4lgwidm80i4yw0y1dr3n8i6qz7g4n2xa0k74zc5pp1"; depends=[]; };
   tensorA = derive2 { name="tensorA"; version="0.36.2.1"; sha256="1dvxc4d5c8k3mqkx6bjgfmnb98rrdd1rsazyva76mzvxzrhq4n06"; depends=[]; };
   tensorBF = derive2 { name="tensorBF"; version="1.0.2"; sha256="1dw1a6xqcsl4isbzbfiplgqq5nak5n9ffzm23mzzmkh1r1a8kl1y"; depends=[tensor]; };
   tensorBSS = derive2 { name="tensorBSS"; version="0.3.8"; sha256="1chgkdshjpxzy0cxkgjzpr5k4v2hyad1vchrxyqhsj9isfic2581"; depends=[abind fICA ggplot2 ICtest JADE Rcpp RcppArmadillo tensor tsBSS]; };
-  tensorEVD = derive2 { name="tensorEVD"; version="0.1.1"; sha256="024127fv1gc631i8dfczg350gaqims4i6amhbq7v8ws2g1sf1hi9"; depends=[]; };
-  tensorMiss = derive2 { name="tensorMiss"; version="0.1.1"; sha256="0kl20c0z1x38z85pm88ld64xsmlbb9pi0dirwraykm268j7kxfqb"; depends=[Rcpp RcppEigen rTensor]; };
-  tensorTS = derive2 { name="tensorTS"; version="1.0.1"; sha256="0qn6h3icgcg7ipyjk0cc9pbc97d58m56f1w8ijydms42r2xcnipg"; depends=[abind expm MASS Matrix pracma rTensor tensor]; };
-  tensorflow = derive2 { name="tensorflow"; version="2.15.0"; sha256="16650x0skqi4nyd2zmgdfj574gnw98k00d13rap7n95cv7sv9abw"; depends=[config lifecycle processx reticulate rstudioapi tfautograph tfruns yaml]; };
+  tensorEVD = derive2 { name="tensorEVD"; version="0.1.3"; sha256="0gqcnigv5hwp955q21ms7xgn30926yqi8bg8vnc409jp9mz5km8a"; depends=[]; };
+  tensorMiss = derive2 { name="tensorMiss"; version="1.1.1"; sha256="1q8rdlm829if88cq76iaarwgryawl43ry2gm8k3q8yw3rndfj1v9"; depends=[Rcpp RcppEigen rTensor]; };
+  tensorTS = derive2 { name="tensorTS"; version="1.0.2"; sha256="11kmp5qy54rhb302jwpncsbqifgqn7zivav8ph1qbz3f3911chw2"; depends=[abind expm MASS Matrix pracma rTensor tensor]; };
+  tensorflow = derive2 { name="tensorflow"; version="2.16.0"; sha256="113ikbg2k56zigxwgxy242vxpikxkfkv150wn21zyfn9885wgbzm"; depends=[config lifecycle processx reticulate rstudioapi tfautograph tfruns yaml]; };
   tensorregress = derive2 { name="tensorregress"; version="5.1"; sha256="13khpymifjd8bsqb5j43kaqbpampzifp0lzmh4m3hi17jhcg33aq"; depends=[MASS pracma]; };
   tensorsparse = derive2 { name="tensorsparse"; version="3.0"; sha256="0xx003nh5bi87cbsqb7ikpcs4yhjhphh7pybzzas44qkwbn4fn1k"; depends=[]; };
   tensr = derive2 { name="tensr"; version="1.0.1"; sha256="1z6b3ra7fgn88mxbhsq65x3frj5j7p17n119s9kbw7sg9y633vfx"; depends=[assertthat]; };
@@ -19242,28 +19544,29 @@ in with self; {
   tergmLite = derive2 { name="tergmLite"; version="2.6.1"; sha256="03dr3bfi5ywavfijkc6gmci8i1kmbsh26awhl7748mn9wcsgs2pc"; depends=[ergm network networkDynamic Rcpp statnet_common tergm tibble]; };
   term = derive2 { name="term"; version="0.3.5"; sha256="1ig1hvyv18d1x19jmvkg66m6nn8kdlffj5hx70vzd4sxz68j2k0v"; depends=[chk extras lifecycle purrr rlang universals vctrs]; };
   terminaldigits = derive2 { name="terminaldigits"; version="0.1.0"; sha256="0vj7pylr410wi59qj2313iximsyl0v9ffg7z9gcfg720g5zrvfkm"; depends=[discretefit Rcpp]; };
-  tern = derive2 { name="tern"; version="0.9.3"; sha256="0znhq8sz5v229rlxgqgfzdlzc5vr8fwlz6xccycmqsq5w2c7zjhf"; depends=[broom car checkmate cowplot dplyr emmeans forcats formatters ggplot2 gridExtra gtable labeling lifecycle magrittr Rdpack rlang rtables scales survival tibble tidyr]; };
-  tern_gee = derive2 { name="tern.gee"; version="0.1.3"; sha256="1nnficsy1irry6fjx6bdlq2jm6vpgfkl8h9z780y29rhid5jbv4d"; depends=[checkmate emmeans formatters geeasy geepack nlme rtables tern]; };
-  tern_mmrm = derive2 { name="tern.mmrm"; version="0.3.0"; sha256="0iiyqcc34dicgfvr2wk499m234cb9nb4zxndgxdb2xnzisx53inq"; depends=[checkmate cowplot dplyr emmeans formatters generics ggplot2 lifecycle magrittr mmrm parallelly rlang rtables tern tidyr]; };
+  tern = derive2 { name="tern"; version="0.9.4"; sha256="1byv3q2kjd1aibzxhvwnm7fl2vsz069pxmcjx1zjl6w6453y5s3h"; depends=[broom car checkmate cowplot dplyr emmeans forcats formatters ggplot2 gridExtra gtable labeling lifecycle magrittr MASS Rdpack rlang rtables scales survival tibble tidyr]; };
+  tern_gee = derive2 { name="tern.gee"; version="0.1.4"; sha256="03znf66m3alai8n75g9sxl47wsnai6kgav8pm28zk3nimcx0b0bw"; depends=[checkmate emmeans formatters geeasy geepack nlme rtables tern]; };
+  tern_mmrm = derive2 { name="tern.mmrm"; version="0.3.1"; sha256="1jklh18fmhcjpkp85cpf4q1xcgidp8rr9py5qfns2iwkac530sdn"; depends=[checkmate cowplot dplyr emmeans formatters generics ggplot2 lifecycle magrittr mmrm parallelly rlang rtables tern tidyr]; };
   ternvis = derive2 { name="ternvis"; version="1.2"; sha256="057i6i3ygxrin0npc18gsg3dpdldzafyb5sr6lix5mhy6b09lkxf"; depends=[dichromat maps quadprog]; };
-  terra = derive2 { name="terra"; version="1.7-71"; sha256="0dq47d5irkplgxcv0h0xgawwf9cc48vygg94zdiqppg5cspz7dqx"; depends=[Rcpp]; };
+  terra = derive2 { name="terra"; version="1.7-78"; sha256="0zjb5m5nh1r307g9lm5s6va5hsvmy4b06c7pznp724waknvmd2b5"; depends=[Rcpp]; };
   terrainmeshr = derive2 { name="terrainmeshr"; version="0.1.0"; sha256="1xab6wzq2izzdvsss1rlgp5m3cn45naxhymq6cglipj0fd792jbr"; depends=[Rcpp]; };
   terrainr = derive2 { name="terrainr"; version="0.7.5"; sha256="1bxwv94pkd4yskhqcwg891caiknipgr2lwcmy54znr8gchsm5527"; depends=[base64enc ggplot2 glue httr magick png rlang sf terra unifir units]; };
   tessellation = derive2 { name="tessellation"; version="2.3.0"; sha256="0l8ffw7szmfd51lf9x8vh673zq0zg8rrx1527hgllddk82kyhmia"; depends=[colorsGen cxhull english hash Polychrome R6 rgl Rvcg scales sets]; };
   tesselle = derive2 { name="tesselle"; version="1.4.0"; sha256="10ahssk9qaj7a0x82364cdqigx8af1vrxvnm2z44x7j688mc17cg"; depends=[dimensio folio isopleuros kairos khroma nexus tabula]; };
   tesseract = derive2 { name="tesseract"; version="5.2.1"; sha256="1zhpl6pbi7gwwc9y1d8cd7hb21ljcs561lyysjva4cfmqm0sdazz"; depends=[curl digest pdftools rappdirs Rcpp]; };
-  test2norm = derive2 { name="test2norm"; version="0.2.1"; sha256="1llzvdggjvc72qwkv9iiqxx7prj3hnr9bqpwsib4qmfpmmxsif37"; depends=[mfp]; };
-  testCompareR = derive2 { name="testCompareR"; version="1.0.2"; sha256="1k4y7hk7f9bs0bkcmi434khfg1c0lr930l50rydvjlwdgbhfy4k1"; depends=[]; };
+  test2norm = derive2 { name="test2norm"; version="0.3.0"; sha256="1qfnzxry84y9y22xp1cfhpg9q5yrchhhasn3p81qx7ay9ii9n7j7"; depends=[mfp2]; };
+  testCompareR = derive2 { name="testCompareR"; version="1.0.3"; sha256="09pfdnc0hfaj8f3vgsprm5pjlwygliflm40dk3cnr71v89ihddxg"; depends=[]; };
   testDriveR = derive2 { name="testDriveR"; version="0.5.2"; sha256="144bni3dg7bdmxnxyyal94j1nddqshgys9wfkdcc262n8y3v13i5"; depends=[]; };
   testarguments = derive2 { name="testarguments"; version="0.0.1"; sha256="1x77z0pljfi6z4bs6db3zsjbpyypsd3jbd0ykh4pq07595phh8x5"; depends=[dplyr ggplot2 magrittr plyr reshape2]; };
   testassay = derive2 { name="testassay"; version="0.1.1"; sha256="1gc35s5an0cpvadwx4bswy5lzcp01az3gnkjhvph6sm3pi3xjxm7"; depends=[]; };
   testcorr = derive2 { name="testcorr"; version="0.2.0"; sha256="0bqhf4p4csyd430240d8gh09axpz3h108fh78sbgpyqdhiq3d1fh"; depends=[forcats ggplot2 knitr reshape2 scales]; };
   testdat = derive2 { name="testdat"; version="0.4.2"; sha256="0ybmw0i7pr40h720iwpzvyyr26zb7akjkwbmw6243f644yl4rr0w"; depends=[dplyr glue lifecycle rlang stringr testthat tidyselect]; };
   testequavar = derive2 { name="testequavar"; version="0.1.5"; sha256="1b8xrv7y3502wb7d2mj20lfdpignc7bs80zbrjy8w3f5qjxlalyc"; depends=[]; };
-  tester = derive2 { name="tester"; version="0.1.7"; sha256="1x5m43abk3x3fvb2yrb1xwa7rb4jxl8wjrnkyd899ii1kh8lbimr"; depends=[]; };
+  tester = derive2 { name="tester"; version="0.2.0"; sha256="02q2l0c38ddzlh2jwbzkcyhh2k5a4gnfm8khl8cqvjkjhldi9j5y"; depends=[]; };
+  testex = derive2 { name="testex"; version="0.2.0"; sha256="0rf7smgb7ha0wfaslxcy97xhdx4bqnj48ifxf20v2h33psqlr374"; depends=[]; };
   testforDEP = derive2 { name="testforDEP"; version="0.2.0"; sha256="1mgzhj8b35r5cm4bl0nnyxj0h7rwd28d17qvgvaky2kvm2r83cf9"; depends=[Hmisc minerva Rcpp]; };
   testit = derive2 { name="testit"; version="0.13"; sha256="104dcxdmzgj340mwk4lpw1y6j1xc4rv4a2v09ckx3nvbmdl73m4h"; depends=[]; };
-  testthat = derive2 { name="testthat"; version="3.2.1"; sha256="1ba80zk9jzs91xl82bykhrvvgamfvp1h189rfq099h813dhhx60x"; depends=[brio callr cli desc digest evaluate jsonlite lifecycle magrittr pkgload praise processx ps R6 rlang waldo withr]; };
+  testthat = derive2 { name="testthat"; version="3.2.1.1"; sha256="1xz94i0r62lslyqya8gz6i2r100wi26y5c2822v2i7lkflwwx1fp"; depends=[brio callr cli desc digest evaluate jsonlite lifecycle magrittr pkgload praise processx ps R6 rlang waldo withr]; };
   testthatmulti = derive2 { name="testthatmulti"; version="0.1.0"; sha256="1w1bwqjk721g4zvz3chx65rfvr47w3z2savx0qnh0sk09rj0zx50"; depends=[]; };
   testthis = derive2 { name="testthis"; version="1.1.1"; sha256="0csragn695698dpkr9d3md0g81bzpy5mybd0jik669q9cs8sdzh2"; depends=[assertthat devtools fs magrittr pkgload rprojroot stringi testthat usethis]; };
   testtwice = derive2 { name="testtwice"; version="1.0.3"; sha256="06fr13ww2wqk753p0cnl1ldn3nqrvdfnz0lgkpldcn0xwiwjh2x2"; depends=[mvtnorm]; };
@@ -19274,9 +19577,9 @@ in with self; {
   texmex = derive2 { name="texmex"; version="2.4.9"; sha256="1vdrhf4mn7c54w9zz0k4xpmvg9w3ysi67ncbr4pbllnarxa582yz"; depends=[ggplot2 mvtnorm Rcpp]; };
   texor = derive2 { name="texor"; version="1.3.0"; sha256="12sjrxg82ynjs3s4mah5mhm011d9qmmv1s10kbna69n84j4a6vlc"; depends=[cli logger pdftools rebib rjtools rmarkdown stringr tinytex whisker xfun yaml]; };
   texreg = derive2 { name="texreg"; version="1.39.3"; sha256="0kbdnxfgdin4vydrw84xzbw9xldvn8paikij9ya8976la6gpf6il"; depends=[httr]; };
-  text = derive2 { name="text"; version="1.2.0"; sha256="17cy9napn2ffh91klv1chp61mxk6ddcdq82bcgfi17mapplfp2hk"; depends=[cowplot dplyr furrr future ggplot2 ggrepel magrittr overlapping parsnip purrr recipes reticulate rlang rsample stringi tibble tidyr tune workflows yardstick]; };
+  text = derive2 { name="text"; version="1.2.1"; sha256="06rvcdl06ki3qw46r7yp21jjjbgmmr2cyb0rgr7d1kqcwl12gcg4"; depends=[cowplot dplyr furrr future ggplot2 ggrepel magrittr overlapping parsnip purrr recipes reticulate rlang rsample stringi tibble tidyr tune workflows yardstick]; };
   text_alignment = derive2 { name="text.alignment"; version="0.1.4"; sha256="1zw0hxrplpvn2w36q9cwm7s8hxixdin9yzkwj1fhxh5sgc7fq471"; depends=[Rcpp]; };
-  text2map = derive2 { name="text2map"; version="0.1.9"; sha256="0ikiwfhm0m6ygzgx05ds1vhxlvvajb20fs5aif6h35y3zb5p24zl"; depends=[ClusterR doParallel dplyr fastmatch foreach igraph kit Matrix permute qgraph rlang rsvd stringi text2vec tibble]; };
+  text2map = derive2 { name="text2map"; version="0.2.0"; sha256="0fs51r2gz2kzyqd9i9vbyyvd8lx9ng40vxw3ncrph22b3vn9q5dl"; depends=[ClusterR doParallel dplyr fastmatch foreach igraph kit Matrix permute qgraph rlang rsvd stringi text2vec tibble]; };
   text2sdg = derive2 { name="text2sdg"; version="1.1.1"; sha256="133cqh9j3akqfh0m3cbi6splbmzp7plm5gxaiv2w0f0qih31f5fk"; depends=[corpustools dplyr ggplot2 lifecycle magrittr ranger stringr text2sdgData tibble tidyr]; };
   text2sdgData = derive2 { name="text2sdgData"; version="0.1.1"; sha256="0wqfpkixbgmbd0i13a0vrzjnw2fj0qiyxrmd7grlyjkk1cq8i7yn"; depends=[]; };
   text2speech = derive2 { name="text2speech"; version="1.0.0"; sha256="0xgdwwzfbc1l8bj3xvrj67xnhhq6si7n1cq3fgznqhw4ycxkgih7"; depends=[aws_signature cli conrad dplyr googleAuthR googleLanguageR knitr magrittr tidyr tuneR withr]; };
@@ -19287,7 +19590,7 @@ in with self; {
   textab = derive2 { name="textab"; version="1.0.1"; sha256="1z965iw7457yldz6nm2hfjq6c5q12j1cza7v0jkbgi9zaydsbml2"; depends=[]; };
   textcat = derive2 { name="textcat"; version="1.0-8"; sha256="17kl76m6065ci84p4ii7fxhwg1fckwf8690m71w9rbkbax3h2rfb"; depends=[slam tau]; };
   textclean = derive2 { name="textclean"; version="0.9.3"; sha256="0kgjh6c4f14qkjc4fds7q7rpf4nkma3p0igm54fplmm3p853nvrz"; depends=[data_table english glue lexicon mgsub qdapRegex stringi textshape]; };
-  textdata = derive2 { name="textdata"; version="0.4.4"; sha256="1hz74sdhypf67w1p71igwaqdiv0w635lbdm4hvd0zdzhz1w1cxd7"; depends=[fs rappdirs readr tibble]; };
+  textdata = derive2 { name="textdata"; version="0.4.5"; sha256="0vvk2g3nb5szla0qlj5ld78x8a4533fqyz8ffljxy71kzaqd07h2"; depends=[fs rappdirs readr tibble]; };
   texteffect = derive2 { name="texteffect"; version="0.3"; sha256="1qcbr18h3vakh6ymw4axzqcqrpss6z68a592xl879b82l2nlq8a7"; depends=[boot ggplot2 MASS]; };
   texter = derive2 { name="texter"; version="0.1.9"; sha256="1vj1dlv2dyb3hyr60p91sh4p514i0m7gf86zk32xbdyv6k9zdkmf"; depends=[dplyr ggplot2 magrittr plyr purrr stopwords stringr textdata tidyr tidytext]; };
   textgRid = derive2 { name="textgRid"; version="1.0.1"; sha256="1wi5vq5f7ixhz39l5hqi2jlmjjacx4lyrs4h8xfbd47pj6g16lc6"; depends=[]; };
@@ -19297,14 +19600,15 @@ in with self; {
   textometry = derive2 { name="textometry"; version="0.1.6"; sha256="0frxwi3n7syjgjxgzc4ync9svd25bq2zyppiyrla1n85dawi3r8f"; depends=[]; };
   textplot = derive2 { name="textplot"; version="0.2.2"; sha256="1ag2h365zsx0fxbl05s2yfhf1q13p40akvbqg4qwsb5ynh2a56bf"; depends=[data_table lattice Matrix]; };
   textrank = derive2 { name="textrank"; version="0.3.1"; sha256="0a777wchiax0y8jprvz5xw8h1xh7yvad0wrqhkgbqy5p3cvlcih6"; depends=[data_table digest igraph]; };
+  textrar = derive2 { name="textrar"; version="0.8.0"; sha256="0bl6f1v0vkbjjlq31wm1j4890jz1zmacsqf7drpirmcn38pq61zh"; depends=[httr jsonlite]; };
   textrecipes = derive2 { name="textrecipes"; version="1.0.6"; sha256="0c4l54vqawnwl1341mk5jvqwj1r0dwdprbp2fh362493c8fy04iv"; depends=[cpp11 dplyr generics glue lifecycle magrittr Matrix purrr recipes rlang SnowballC tibble tokenizers vctrs]; };
   textreg = derive2 { name="textreg"; version="0.1.5"; sha256="0h44z5hyndnvzd9axix7gpmhbdx347dfgxw9r8w38kyw6dklbjy6"; depends=[NLP Rcpp tm]; };
   textreuse = derive2 { name="textreuse"; version="0.1.5"; sha256="1mva0f6pk0kpfw0vf90qw3a25f1i3imdhk2s7hxyzans0z2237jd"; depends=[assertthat BH digest dplyr NLP Rcpp RcppProgress stringr tibble tidyr]; };
-  textshape = derive2 { name="textshape"; version="1.7.3"; sha256="0k9injxykgj2qprc7dygd7gafvcbh3r9x84qzaa1al21pk0dz7ds"; depends=[data_table slam stringi]; };
-  textshaping = derive2 { name="textshaping"; version="0.3.7"; sha256="0hpcjz66ykji89g2lzpp6hfkz10388py8vn2ss08n4xl3yz4v4ps"; depends=[cpp11 systemfonts]; };
+  textshape = derive2 { name="textshape"; version="1.7.5"; sha256="1g193dg4rhw8a1iwkyqsswlj95h9irm9xziclwc1mhd3jm5wyify"; depends=[data_table slam stringi]; };
+  textshaping = derive2 { name="textshaping"; version="0.4.0"; sha256="0ylx4fdvm64cxcy62q84in3nrj7q8r7mvd8vwq6mcy5jddw41s9m"; depends=[cpp11 lifecycle systemfonts]; };
   textstem = derive2 { name="textstem"; version="0.1.4"; sha256="1pbhi5ia3w16vsix2x3if51zd2v9bcv0j4lj9hfikgq1yz9zxmw2"; depends=[dplyr hunspell koRpus koRpus_lang_en lexicon quanteda SnowballC stringi textclean textshape]; };
-  textutils = derive2 { name="textutils"; version="0.3-2"; sha256="1911450yhq1f97arv96lxljjpa41kikx8gv71x39zbpwkgz2xsxh"; depends=[]; };
-  tf = derive2 { name="tf"; version="0.3.2"; sha256="1w1ifnxfh963rqbx7kljsf3s0dc1nj0kgc9dkwn8jh2j1qi69bcn"; depends=[checkmate mgcv mvtnorm pracma purrr rlang vctrs zoo]; };
+  textutils = derive2 { name="textutils"; version="0.4-1"; sha256="0li2arblc1542sadk7sjdg0avjwavvvy2rrvlh28wznj8vxc3xy3"; depends=[]; };
+  tf = derive2 { name="tf"; version="0.3.4"; sha256="03hiqhlijf86sh4pgqr20nr5135vnf4ryfhzj9pgym9nbamwpa44"; depends=[checkmate mgcv mvtnorm pracma purrr rlang vctrs zoo]; };
   tfCox = derive2 { name="tfCox"; version="0.1.0"; sha256="06mbiz1jwp8mv5dbwyvdvy1wpp8s3xp9hhsm94vrbvjaxg680g28"; depends=[Rcpp survival]; };
   tfNeuralODE = derive2 { name="tfNeuralODE"; version="0.1.0"; sha256="1wspn1i5dvxly9ggbi07npv314krvb7472kx3crqalcxgjjfzfjl"; depends=[deSolve keras reticulate tensorflow]; };
   tfaddons = derive2 { name="tfaddons"; version="0.10.0"; sha256="16adig97qmafval6i29pqdinsgbwjz2isajxdx1xvbf1mrawkmz0"; depends=[keras purrr reticulate rstudioapi tensorflow]; };
@@ -19314,7 +19618,7 @@ in with self; {
   tfdeploy = derive2 { name="tfdeploy"; version="0.6.1"; sha256="1vbxyvmzaafbwp1pmvzn16zyl4nz85787m79gn7iazh9zw9f7j34"; depends=[httpuv httr jsonlite magrittr reticulate swagger tensorflow]; };
   tfer = derive2 { name="tfer"; version="1.3"; sha256="1a5i9jccj39n61ixx8q2qq9ismr43jybp0vlvy6jda99r92zdhhl"; depends=[]; };
   tfestimators = derive2 { name="tfestimators"; version="1.9.2"; sha256="1gwj2xal5an0m9c2x1rxzsg07hgzjyxr4m08sd3salgyc2h3bi5g"; depends=[forge magrittr progress purrr reticulate rlang tensorflow tfruns tibble tidyr tidyselect]; };
-  tfevents = derive2 { name="tfevents"; version="0.0.2"; sha256="177dplz6chrpxaqgh84134p5xvxxzly3wprwvcbhsjgxkzyqya8x"; depends=[blob cli digest ellipsis fs png Rcpp rlang vctrs withr zeallot]; };
+  tfevents = derive2 { name="tfevents"; version="0.0.3"; sha256="1a8dgmi71smaqc71r7pjpdgks6z7s0wkz5nll951846sxkhxpg5v"; depends=[blob cli digest ellipsis fs png Rcpp rlang vctrs withr zeallot]; };
   tfhub = derive2 { name="tfhub"; version="0.8.1"; sha256="19wbmdh31wsqmxwsm7ks3j5n60my49b3safp587cpwf0y70rihsi"; depends=[magrittr reticulate rstudioapi tensorflow vctrs]; };
   tfio = derive2 { name="tfio"; version="0.4.1"; sha256="089vh0k12z0ymk4v585hfnl5yqp28rgzqgy633m874h6fqzhhxvp"; depends=[forge magrittr reticulate tensorflow tfdatasets]; };
   tfplot = derive2 { name="tfplot"; version="2021.6-1"; sha256="0w0m9d2lvjl96vxwvks2v086y4gqiv2n0d50j2yrngys9p2nrlxc"; depends=[tframe]; };
@@ -19322,12 +19626,12 @@ in with self; {
   tframe = derive2 { name="tframe"; version="2015.12-1.1"; sha256="1yff22jzh1mp73zbz2mav6z8m42lylfjhb8dgxj4337fv3if3i13"; depends=[]; };
   tframePlus = derive2 { name="tframePlus"; version="2024.2-1"; sha256="02c4fjgwywqi6s7g42rpzz070j28cjr4bs94298jv2x14zkwf4v8"; depends=[tframe timeSeries]; };
   tfrmt = derive2 { name="tfrmt"; version="0.1.1"; sha256="1jz5xvmfi53mki0d0jx5bvlmmz2y6pmmasij4c9jgdpd9p57ryaf"; depends=[dplyr forcats ggplot2 glue gt jsonlite magrittr purrr rlang stringi stringr tibble tidyr tidyselect]; };
-  tfrmtbuilder = derive2 { name="tfrmtbuilder"; version="0.0.5"; sha256="0zm2z607vi8chrqcfm4yx3xic6cq7ws0r3fqy6p66nyn3h7zndbx"; depends=[bslib dplyr DT fontawesome forcats gt purrr rio rlang shiny shinyAce shinycssloaders shinyFeedback shinyjs shinyWidgets sortable stringr tfrmt tidyr webshot2]; };
-  tfruns = derive2 { name="tfruns"; version="1.5.2"; sha256="1iw80r31jddngby48wf53ayjhvvx77kas4hvvp7j65klvx337aqw"; depends=[base64enc config jsonlite magrittr reticulate rlang rstudioapi tidyselect whisker yaml]; };
+  tfrmtbuilder = derive2 { name="tfrmtbuilder"; version="0.0.6"; sha256="0c5x0sva90q7ghfz64fjy4w83a549ism6hwl6a1j4j81l9w6p8f7"; depends=[bslib dplyr DT fontawesome forcats gt purrr rio rlang shiny shinyAce shinycssloaders shinyFeedback shinyjs shinyWidgets sortable stringr tfrmt tidyr webshot2]; };
+  tfruns = derive2 { name="tfruns"; version="1.5.3"; sha256="0z0cbw4fr374s82ds0vdxmd37bbd6yrixwgby26qzkjr7dvzsbmy"; depends=[base64enc config jsonlite magrittr reticulate rlang rstudioapi tidyselect whisker yaml]; };
   tgamtheme = derive2 { name="tgamtheme"; version="0.1.0"; sha256="1igv6vl3vqqx8pbvj5qr21cjphpizq3b5sjss359bhw2gy747npl"; depends=[ggplot2]; };
   tgcd = derive2 { name="tgcd"; version="2.7"; sha256="0ncd642yamwg4xgwrzavfral0gwkk0zlffw4w4ixw0yn0f7d7vv9"; depends=[]; };
   tggd = derive2 { name="tggd"; version="0.1.1"; sha256="1izar1b3w148vp2r8gv3vpwfndib8ilxcjxgbfzbxn7q5mr73mwa"; depends=[gsl]; };
-  tglkmeans = derive2 { name="tglkmeans"; version="0.5.4"; sha256="1plg03k9r4sp8ck5qcj8shblr8378bynyyc7yqwcqv856vkl9icd"; depends=[cli doFuture dplyr future ggplot2 magrittr Matrix plyr purrr Rcpp RcppParallel tgstat tibble]; };
+  tglkmeans = derive2 { name="tglkmeans"; version="0.5.5"; sha256="0hdnxgkxpgb8jm9aygv3wlhd42blm5nz906vlpl72blgcyc77hhh"; depends=[cli doFuture doRNG dplyr future ggplot2 magrittr Matrix plyr purrr Rcpp RcppParallel tgstat tibble]; };
   tgp = derive2 { name="tgp"; version="2.4-22"; sha256="0gpndjq2xiic6fb5187f4hgrqj3477pd83caajnw3yy9wan4vly6"; depends=[maptree]; };
   tgram = derive2 { name="tgram"; version="0.2-3"; sha256="0vlnry8drq3fqfy8dk50pcwcx9dj657kx6s19fs2b6acigkr4g7w"; depends=[zoo]; };
   tgstat = derive2 { name="tgstat"; version="2.3.27"; sha256="0scljimskda5hinkb4y5va9c9qlqwf6k6zrm20bjk133710qsscb"; depends=[]; };
@@ -19342,7 +19646,6 @@ in with self; {
   themis = derive2 { name="themis"; version="1.0.2"; sha256="1qg1kxax866s84rgjlp2c153793j45lrvay8bqfjnc2cj04h2dgi"; depends=[dplyr generics glue gower hardhat lifecycle purrr RANN recipes rlang ROSE tibble vctrs withr]; };
   thermocouple = derive2 { name="thermocouple"; version="1.0.2"; sha256="1rlvhw3i83iq1vibli84gj67d98whvgkxafwpmisva1m4s1bmij4"; depends=[]; };
   thestats = derive2 { name="thestats"; version="0.1.0"; sha256="15y6ibw7i4nrm8990yirqf64gl1x4l7lj3ajk19vi6ccxw82x2gl"; depends=[dplyr]; };
-  thewitcher = derive2 { name="thewitcher"; version="1.0.1"; sha256="140f0insb5gqrfdaq5cnzj6bl0akbif57jnyy7ai3rb2rwy9n2nv"; depends=[dplyr ggplot2 gridExtra magrittr MASS readr tidyverse usethis]; };
   thgenetics = derive2 { name="thgenetics"; version="0.4-2"; sha256="1314gry3xs9v4jy13g08q16qy4ax3s0bc7d74gi0wbpkgdrk3lql"; depends=[]; };
   thief = derive2 { name="thief"; version="0.3"; sha256="12ymkkisg5p0g1gmvlczhp4dc7mirjg55fqqmz2d90673vlg6rfq"; depends=[forecast ggplot2 hts]; };
   thinkr = derive2 { name="thinkr"; version="0.16"; sha256="104n4g70fk209b721qchrbv95dwxzq6vvhz36asdk40kzzacdzp2"; depends=[assertthat cli devtools dplyr ggplot2 lazyeval lubridate magrittr officer rvg stringi stringr tidyr withr]; };
@@ -19358,7 +19661,7 @@ in with self; {
   threshr = derive2 { name="threshr"; version="1.0.5"; sha256="0gr5vnb3bc6b2blpa63mvyhgyjkplq8x0p27h7czjnwinzwsrwrg"; depends=[revdbayes rust]; };
   thriftr = derive2 { name="thriftr"; version="1.1.7"; sha256="0qx96nd9wdmxgvlvv43q51qrqpmb98vz6hmrhlq3hp91w3g20p5a"; depends=[R6 rly stringi]; };
   thunder = derive2 { name="thunder"; version="1.1.3"; sha256="0gn4kkpagh5blhp1zpgilkpa8mwfz8w05qlri5ca4wwcy7xkmn41"; depends=[aiRthermo curl dplyr httr Rcpp]; };
-  thurstonianIRT = derive2 { name="thurstonianIRT"; version="0.12.4"; sha256="1gvijkxiy4zwg5hxg4qhy3dgcck2gm4nh6bjacxsz5yvai3fagsa"; depends=[BH dplyr lavaan magrittr mvtnorm Rcpp RcppEigen RcppParallel rlang rstan rstantools StanHeaders tibble tidyr]; };
+  thurstonianIRT = derive2 { name="thurstonianIRT"; version="0.12.5"; sha256="0rdiv9pdxxp36ggxlfs1g6jcv1f259ky2cpxb6kg21s4xfllrah2"; depends=[BH dplyr lavaan magrittr mvtnorm Rcpp RcppEigen RcppParallel rlang rstan rstantools StanHeaders tibble tidyr]; };
   tibble = derive2 { name="tibble"; version="3.2.1"; sha256="0c916wl19wbhncv05hjzs2vmvvbcxlswjl6i232ygmkzal62v9v5"; depends=[fansi lifecycle magrittr pillar pkgconfig rlang vctrs]; };
   tibbletime = derive2 { name="tibbletime"; version="0.1.8"; sha256="18a63vipcw95yk37r490a3a4xag59v7475bch2dizq7nqhfc5wfn"; depends=[assertthat dplyr glue hms lifecycle lubridate pillar purrr Rcpp rlang tibble vctrs zoo]; };
   tibblify = derive2 { name="tibblify"; version="0.3.1"; sha256="165ygq6wf35siiml6dsm4hxqg5lndqhwh82cdwyfwnl829nbz9a7"; depends=[cli lifecycle purrr rlang tibble tidyselect vctrs withr]; };
@@ -19366,21 +19669,21 @@ in with self; {
   tictoc = derive2 { name="tictoc"; version="1.2.1"; sha256="0cw8r1gn4p2v1l3d80brk9sfr9nyckyyym5nr9xq3d74l74vgkcg"; depends=[]; };
   tidier = derive2 { name="tidier"; version="0.2.0"; sha256="0n6gzanssni5l5wmm5iqql1k2wfxg7dzq1rk3dhar7rpyxghdnf1"; depends=[checkmate dbplyr dplyr furrr magrittr rlang slider tidyr]; };
   tidyAML = derive2 { name="tidyAML"; version="0.0.5"; sha256="0vv6nfw113h1pph06h9smm31b1j2zz3z5a9dalc6ldgs7pjb16gi"; depends=[broom dplyr forcats ggplot2 magrittr parsnip purrr rlang rsample tidyr workflows workflowsets]; };
-  tidyBdE = derive2 { name="tidyBdE"; version="0.3.5"; sha256="0mzl8bckfgz7qfdnb1xa0b6i45jx881cf94cf6kw3m4dmixh056k"; depends=[dplyr ggplot2 readr scales tibble tidyr]; };
+  tidyBdE = derive2 { name="tidyBdE"; version="0.3.6"; sha256="0mvjv9qfb93mq8bn2mc8sphyppqw9pn0ia4jb5wvgakwbqs5gf3i"; depends=[dplyr ggplot2 readr scales tibble tidyr]; };
   tidyCDISC = derive2 { name="tidyCDISC"; version="0.2.1"; sha256="06pri456bqmvnfna7g092ccd7lqr3bc9gdnw67d7nfz91qwnsny6"; depends=[cicerone config dplyr DT GGally ggcorrplot ggplot2 glue golem gt haven IDEAFilter plotly purrr rlang rmarkdown shiny shinyjs shinyWidgets sjlabelled stringr survival tidyr timevis tippy]; };
   tidyCpp = derive2 { name="tidyCpp"; version="0.0.7"; sha256="0h2h0r8v1fp3sl4caf3nkhf4f75zncadkz9axzwncig7a7qvb00z"; depends=[]; };
   tidyDenovix = derive2 { name="tidyDenovix"; version="2.1.0"; sha256="0lm5yr86l7vnx11fn7abydsc6jpvj4jyzzk8q9jwhi4sjy8jp0wl"; depends=[data_table dplyr janitor readxl tibble tidyr]; };
-  tidyEdSurvey = derive2 { name="tidyEdSurvey"; version="0.1.2"; sha256="0m7nf7kzniwqkissfgmmdda75aiww6r5ih17h1xswr8xh7sb4q4y"; depends=[cli dplyr EdSurvey ggplot2 lifecycle rlang tidyselect]; };
+  tidyEdSurvey = derive2 { name="tidyEdSurvey"; version="0.1.3"; sha256="0vimgaq09dbz78i68ks5p3wiiahl59grdcvbg4bgdq3147pbmd3k"; depends=[cli dplyr EdSurvey ggplot2 lifecycle rlang tidyselect]; };
   tidyEmoji = derive2 { name="tidyEmoji"; version="0.1.1"; sha256="0gy178kdj5c2mdxmczhbh3wai8lk9d2fk6c8qn8fpz3mc97zlx7p"; depends=[dplyr emoji purrr stringr tibble tidyr]; };
   tidyHeatmap = derive2 { name="tidyHeatmap"; version="1.8.1"; sha256="19gpp8p3ms60qzny26vx8h7x4zl495ynrfrvf1nndhm2njbx6i4m"; depends=[circlize ComplexHeatmap dendextend dplyr lifecycle magrittr patchwork purrr RColorBrewer rlang tibble tidyr viridis]; };
   tidyLPA = derive2 { name="tidyLPA"; version="1.1.0"; sha256="1lyd8cx90j49bm65330i57jyimiid75c2pvnzk7dcp6mbmglvimz"; depends=[dplyr ggplot2 gtable mclust mix MplusAutomation tibble]; };
   tidyMC = derive2 { name="tidyMC"; version="1.0.0"; sha256="0mf2xxckxxvcgw1381yscmzppwgmmn44zpfyw6glkbw6963z542k"; depends=[checkmate dplyr furrr future ggplot2 hms kableExtra magrittr purrr rlang stringr tibble tidyr]; };
   tidyREDCap = derive2 { name="tidyREDCap"; version="1.1.1"; sha256="1k06bnxvq5k4j005h269n5ivxn1vr2i8nkdg048q8m7vmpanwz4m"; depends=[cli dplyr janitor labelVector magrittr purrr REDCapR rlang stringr tibble tidyr tidyselect vctrs]; };
   tidyRSS = derive2 { name="tidyRSS"; version="2.0.7"; sha256="1v9c4cjh2apxsk5s1qyqg5pb02l83qhlg6bj684zvdmc4fqac6zw"; depends=[anytime dplyr glue httr jsonlite magrittr purrr rlang tibble tidyselect vctrs xml2]; };
-  tidySEM = derive2 { name="tidySEM"; version="0.2.6"; sha256="0vsk4z1mpzmyg618c5sqmblv8c8pzhwbrbxwdq4cpg7sl6agbhb0"; depends=[bain blavaan car dbscan future_apply ggplot2 gtable igraph lavaan Matrix MplusAutomation nonnest2 OpenMx progressr psych RANN]; };
+  tidySEM = derive2 { name="tidySEM"; version="0.2.7"; sha256="1da0hpapns93a1znlq8gh1nmjczczy4sg4c14kikkxhar1wq4lrk"; depends=[bain blavaan car dbscan future_apply ggplot2 gtable igraph lavaan Matrix MplusAutomation nonnest2 OpenMx progressr psych RANN]; };
   tidyUSDA = derive2 { name="tidyUSDA"; version="0.4.1"; sha256="1llqz8xs6zkg0vqz6hks6jghxsfyp35k3n4882qg3w6lr080ir8b"; depends=[checkmate crayon dplyr fuzzyjoin ggplot2 httr jsonlite magrittr sf tigris]; };
   tidybayes = derive2 { name="tidybayes"; version="3.0.6"; sha256="146vmb3sf3ld6n20bbd8lj972g6xcclmisqsmnjq99jmg3hl8q3h"; depends=[arrayhelpers cli coda dplyr ggdist ggplot2 magrittr posterior rlang tibble tidyr tidyselect vctrs withr]; };
-  tidybins = derive2 { name="tidybins"; version="0.1.0"; sha256="1kwwz0y1anlf1l8yl80xyiggdi8alsh0drb1529rijfk2jxlljg9"; depends=[badger ClusterR dplyr framecleaner ggplot2 janitor lubridate magrittr OneR purrr rlang rlist scales strex stringr tibble tidyselect xgboost]; };
+  tidybins = derive2 { name="tidybins"; version="0.1.1"; sha256="11213qv79qlqlkxh10y3vhidy120f9gyfwj4xqbr6w3wqa5cjg60"; depends=[autostats badger ClusterR dplyr framecleaner ggplot2 janitor lubridate magrittr OneR purrr rlang rlist scales strex stringr tibble tidyselect xgboost]; };
   tidyboot = derive2 { name="tidyboot"; version="0.1.1"; sha256="0nss1ci763g9p5f33g163ppamx72axc8xhrils0cql3ka8439pmn"; depends=[dplyr modelr purrr rlang tidyr]; };
   tidycat = derive2 { name="tidycat"; version="0.1.2"; sha256="1c8ib5zcz2xk7yrzh4j5q4ccv6lnw58sh2ggqn04k2wp0gcj2zcs"; depends=[dplyr forcats magrittr stringr tibble tidyr]; };
   tidycensus = derive2 { name="tidycensus"; version="1.6.3"; sha256="160swqjrcfkqrjpgvyxqqpvm2xnbb1yr0jb89w9mva4mmlnncfj4"; depends=[crayon dplyr httr jsonlite purrr rappdirs readr rlang rvest sf stringr tidyr tidyselect tigris units xml2]; };
@@ -19397,10 +19700,10 @@ in with self; {
   tidyedgar = derive2 { name="tidyedgar"; version="1.0.1"; sha256="1xg56slll4pjqfxi23jpfg4n68b5a14jk6jibc0vcmr05fvd04lr"; depends=[dplyr httr jsonlite tidyr]; };
   tidyestimate = derive2 { name="tidyestimate"; version="1.1.1"; sha256="0jsi14az84np5wr5zrqgnvy3rn9sv7v8yf7k34iacj35gdw7yx6c"; depends=[dplyr ggplot2 ggrepel glue rlang]; };
   tidyfast = derive2 { name="tidyfast"; version="0.4.0"; sha256="0218avgj27mn47vdk5yf34ckkmywdz2mzarvlhxn5l0x7pf8zn68"; depends=[cpp11 data_table]; };
-  tidyfinance = derive2 { name="tidyfinance"; version="0.1.0"; sha256="1b4is9czzyd4kjj9zh279mlp2lax9l9bzymhl3kp2bhc8l9i90kl"; depends=[dplyr lifecycle lubridate purrr rlang tibble tidyr]; };
+  tidyfinance = derive2 { name="tidyfinance"; version="0.2.0"; sha256="1vch27q03gg447hkndl55fgmwxl0ggq524zbrkslj1cf9dzs9r20"; depends=[dplyr lifecycle lubridate purrr rlang tibble tidyr]; };
   tidyfit = derive2 { name="tidyfit"; version="0.7.1"; sha256="117x0cmrs0hhp0k4c2c6dx80jjvar7bfgipjzx5d977l4343fhx7"; depends=[broom crayon dials dplyr furrr generics magrittr MASS progressr purrr rlang rsample tibble tidyr vctrs yardstick]; };
   tidyformula = derive2 { name="tidyformula"; version="0.1.0"; sha256="1sz5v8l1gpci1jzs87qgxr95nr881rz5lidlfwgfi8963kgvigvg"; depends=[dplyr purrr rlang]; };
-  tidyfst = derive2 { name="tidyfst"; version="1.7.7"; sha256="1vmlbsnj3kq2gl71kv3xz87cdwkkkmn6lnl4j8rf65njsjh1r9ra"; depends=[data_table fst stringr]; };
+  tidyfst = derive2 { name="tidyfst"; version="1.7.9"; sha256="114wdgrcwkl5mpjxdilp51xc9qn4sa3qj5fclyz84s305hiaba6d"; depends=[data_table fst stringr]; };
   tidyft = derive2 { name="tidyft"; version="0.5.7"; sha256="00qcsr2sx8fwyil384vgppx0q72qjrkj7h5nv4mdxdi8f9h6ph2r"; depends=[data_table fst stringr]; };
   tidygam = derive2 { name="tidygam"; version="0.2.0"; sha256="1m2lzmbvxflnyqf7m0waq0svgwhqh1snc2zn3n8wjh70lkzclpkx"; depends=[cli dplyr ggplot2 glue insight magrittr mgcv rlang stringr tibble tidyr tidyselect]; };
   tidygapminder = derive2 { name="tidygapminder"; version="0.1.1"; sha256="1m6bynwnw1msrzvdmy12w3ympinqpd8j3may3rwmg9941nndjv2d"; depends=[data_table dplyr readxl tidyr]; };
@@ -19413,10 +19716,10 @@ in with self; {
   tidyhydat = derive2 { name="tidyhydat"; version="0.6.1"; sha256="0rcb3q17ckp7l7xrjf3r32dlnxm6ykwlk20w5h7amnc2vimjnir9"; depends=[cli crayon DBI dbplyr dplyr httr lubridate rappdirs readr rlang RSQLite tidyr]; };
   tidyindex = derive2 { name="tidyindex"; version="0.1.0"; sha256="1ziiycfldcy94bsl65mf9c6iav7xn2wamncdkz41d76bsxrjzbnx"; depends=[cli dplyr generics ggplot2 glue purrr rlang tidyr tidyselect tsibble vctrs]; };
   tidyjson = derive2 { name="tidyjson"; version="0.3.2"; sha256="0znm590kpvkh8zl08saasnsi77x459640mqv0pq15gmsjnycldp6"; depends=[assertthat dplyr jsonlite magrittr purrr rlang tibble tidyr]; };
-  tidylda = derive2 { name="tidylda"; version="0.0.4"; sha256="0hc2la5fsl0z1svxzkn4ipr1ylabmhmhgdc0jgzafkwrz07dpkn2"; depends=[dplyr generics gtools Matrix mvrsquared Rcpp RcppArmadillo RcppProgress RcppThread rlang stringr tibble tidyr tidytext]; };
+  tidylda = derive2 { name="tidylda"; version="0.0.5"; sha256="1i5nhb49g5sw5dwha7ia61yp5nnqi9bln35ij0smhrrfjwxz5djp"; depends=[dplyr generics gtools Matrix mvrsquared Rcpp RcppArmadillo RcppProgress RcppThread rlang stringr tibble tidyr tidytext]; };
   tidylo = derive2 { name="tidylo"; version="0.2.0"; sha256="07xnbycwrqg3cmbxx76drbjd0mx4s23vf3kihlc9rj4ajjx48z8r"; depends=[dplyr rlang]; };
-  tidylog = derive2 { name="tidylog"; version="1.0.2"; sha256="076am30ayc16wm3bilznxqzd5806yi7dx5m9yv4w7q90i7imsqk7"; depends=[clisymbols dplyr glue tidyr]; };
-  tidymodels = derive2 { name="tidymodels"; version="1.1.1"; sha256="1ilmxxmbi9czxwv8n6xajaww9047h34i9vy2dmglj7nqply8wzl0"; depends=[broom cli conflicted dials dplyr ggplot2 hardhat infer modeldata parsnip purrr recipes rlang rsample rstudioapi tibble tidyr tune workflows workflowsets yardstick]; };
+  tidylog = derive2 { name="tidylog"; version="1.1.0"; sha256="06bp0avpksh7q3kd2g8l22fz8kg9x4s1hbi21b7l44kv2pv5s9vi"; depends=[clisymbols dplyr glue rlang tidyr]; };
+  tidymodels = derive2 { name="tidymodels"; version="1.2.0"; sha256="04lj7mjg9q72x19d9j4wqarp38w64b0klq8phsall82p0x2bg9pc"; depends=[broom cli conflicted dials dplyr ggplot2 hardhat infer modeldata parsnip purrr recipes rlang rsample rstudioapi tibble tidyr tune workflows workflowsets yardstick]; };
   tidymv = derive2 { name="tidymv"; version="3.4.2"; sha256="0jl6lhi47nz8a7crlqmrqm0cnj4gx3l06gxjvdw8p52y706a478a"; depends=[dplyr ggplot2 lifecycle magrittr mgcv rlang tibble tidyr]; };
   tidync = derive2 { name="tidync"; version="0.3.0"; sha256="0w8i8h3rr7mjxbc5zasw6zi9v95z51635pdl91ip4awgkrkyn9f3"; depends=[dplyr forcats magrittr ncdf4 ncmeta purrr rlang RNetCDF tibble tidyr]; };
   tidypaleo = derive2 { name="tidypaleo"; version="0.1.3"; sha256="18z3w068q011a8xw75qm7wd6hqc358q38a5hd2lmm29p65c8mjxj"; depends=[digest dplyr ggplot2 ggstance purrr rioja rlang scales stringr styler tibble tidyr tidyselect vctrs withr]; };
@@ -19427,7 +19730,6 @@ in with self; {
   tidypredict = derive2 { name="tidypredict"; version="0.5"; sha256="1h05gm6fwjh6v9qqi9jbislf008h7d50k003qymb0x9gz6p75qgy"; depends=[dplyr generics knitr purrr rlang tibble tidyr]; };
   tidyquant = derive2 { name="tidyquant"; version="1.0.7"; sha256="1pb7d6x2b8kf16aah1n9kq4il4kp54lcvzd27r5viwdbgvk1sr4h"; depends=[alphavantager curl dplyr ggplot2 httr jsonlite lazyeval lubridate magrittr PerformanceAnalytics purrr Quandl quantmod readr readxl riingo rlang stringr tibble tidyr tidyselect tidyverse timeDate timetk TTR xts]; };
   tidyquery = derive2 { name="tidyquery"; version="0.2.4"; sha256="0ld48yqnfhn8j9ikadic55qwjxacp1f8bzihrfw0sh1r3kvl8yib"; depends=[dplyr lubridate queryparser rlang stringr]; };
-  tidyqwi = derive2 { name="tidyqwi"; version="0.1.2"; sha256="16f0c2mdx6aiji6i7237kpc9awqdgrg6rhs408w6ag28dhxpgwlv"; depends=[dplyr furrr future httr jsonlite labelled magrittr purrr stringr tidyr xml2]; };
   tidyr = derive2 { name="tidyr"; version="1.3.1"; sha256="0pc3ad9k36lk3c5qbgx4blhs8aihqyysfxljyirgahsmrdhw4878"; depends=[cli cpp11 dplyr glue lifecycle magrittr purrr rlang stringr tibble tidyselect vctrs]; };
   tidyrates = derive2 { name="tidyrates"; version="0.0.1"; sha256="00j4s13q8vvh5m28rspwm2kf59gcbhmaif31746p2g8499535di8"; depends=[checkmate dplyr epitools forcats magrittr purrr rlang tibble tidyr]; };
   tidyrgee = derive2 { name="tidyrgee"; version="0.1.0"; sha256="0sdjbl4ivjrppg215j1wpcyjlbhn0g7z9cpljvqkwq3mb1abhdfd"; depends=[assertthat crayon dplyr glue lubridate purrr readr reticulate rgee rlang sf stringr tidyr]; };
@@ -19437,22 +19739,22 @@ in with self; {
   tidyseurat = derive2 { name="tidyseurat"; version="0.8.0"; sha256="0xm1vls01d6pcsh824w6li8wp9nf5xrxm9ranrx673vjkjrdwilf"; depends=[cli dplyr ellipsis fansi ggplot2 lifecycle magrittr Matrix pillar plotly purrr rlang Seurat SeuratObject stringr tibble tidyr tidyselect ttservice vctrs]; };
   tidysmd = derive2 { name="tidysmd"; version="0.2.0"; sha256="1sbn4x59wdshc0xhxycvkf6ssm3w3pgfl64r8s3m77piara2i0dm"; depends=[dplyr purrr rlang smd tidyr tidyselect]; };
   tidysq = derive2 { name="tidysq"; version="1.1.3"; sha256="1k4ws5zymrc93rlh8118xxfgjdwr7g99cyhzjp34abcsip1c3g21"; depends=[checkmate cli crayon dplyr pillar Rcpp testthat tibble vctrs]; };
-  tidystats = derive2 { name="tidystats"; version="0.6.0"; sha256="1hlybkzx940nrl9pgvcdvvz95kn4pn6y8dpamj91fjx41blyjcsp"; depends=[checkmate dplyr jsonlite purrr readr stringr tibble tidyr]; };
+  tidystats = derive2 { name="tidystats"; version="0.6.1"; sha256="1cq4xkmjk2q9fds8m21l4dhmr9jivk9n1g199kn3jprjwfydhy96"; depends=[checkmate dplyr jsonlite purrr readr stringr tibble tidyr]; };
   tidystopwords = derive2 { name="tidystopwords"; version="0.9.1"; sha256="00kak679ddwdgvqmjs5312w9k8sapc1n7dxipgqqfjqw2xy0h1jh"; depends=[dplyr]; };
   tidystringdist = derive2 { name="tidystringdist"; version="0.1.4"; sha256="1srxh5gyspcghzvnmpyq36ky608ipf71vv0s1jg01mgf2i5pdkf4"; depends=[attempt rlang stringdist tibble]; };
   tidysynth = derive2 { name="tidysynth"; version="0.2.0"; sha256="1arvjv3w6my47xwrzxrnpb2npskhqb9xmqhszgrxcqa55s1x6p15"; depends=[dplyr forcats ggplot2 kernlab magrittr optimx rgenoud rlang tibble tidyr]; };
   tidytable = derive2 { name="tidytable"; version="0.11.0"; sha256="09xcjh9vpkz6bcv8rg8g25rpirvsjvbl282ys6y1r1npgb3mrdgm"; depends=[data_table glue lifecycle magrittr pillar rlang tidyselect vctrs]; };
-  tidyterra = derive2 { name="tidyterra"; version="0.5.2"; sha256="1bi7xy2c8iqfn22bqd8gf5cip7p8axj0fh3fqswbvpxj3z4j7161"; depends=[cli data_table dplyr ggplot2 magrittr rlang scales sf terra tibble tidyr]; };
-  tidytext = derive2 { name="tidytext"; version="0.4.1"; sha256="05f8209qx1rvddnkl0h05yig09xahs8lqgq9w5dvdiwarji50rsj"; depends=[cli dplyr generics janeaustenr lifecycle Matrix purrr rlang stringr tibble tokenizers vctrs]; };
+  tidyterra = derive2 { name="tidyterra"; version="0.6.1"; sha256="1viqpi1gzgy6y2qhh7qbfp1yjvb9ycnz9a9am7jypmdqkl13g78m"; depends=[cli data_table dplyr ggplot2 magrittr rlang scales sf terra tibble tidyr]; };
+  tidytext = derive2 { name="tidytext"; version="0.4.2"; sha256="0m1dxlrmkany4pjbr2p2m9hzn59gldmznyvs6dcb3zdr5861ix0c"; depends=[cli dplyr generics janeaustenr lifecycle Matrix purrr rlang stringr tibble tokenizers vctrs]; };
   tidytidbits = derive2 { name="tidytidbits"; version="0.3.2"; sha256="1zbm165bimjag7azhy77zlzqilygybqxz35q4r3d7hi7p6m96w78"; depends=[dplyr extrafont forcats magrittr purrr rlang stringr tibble tidyr tidyselect]; };
-  tidytlg = derive2 { name="tidytlg"; version="0.1.4"; sha256="0di871am8zplavhkh2kjqazc3nv3cn5dzzff0sgj4hxwhfla1f12"; depends=[assertthat cellranger crayon dplyr forcats ggplot2 glue huxtable magrittr png purrr readxl rlang rstudioapi stringr tibble tidyr tidyselect usethis]; };
+  tidytlg = derive2 { name="tidytlg"; version="0.1.5"; sha256="0w4ah32b82b14y6nxw8l5z06mxx9cxipqmjnmifxxb86qjhqpp9f"; depends=[assertthat cellranger cli crayon dplyr forcats ggplot2 glue huxtable magrittr png purrr readxl rlang rstudioapi stringr tibble tidyr]; };
   tidytransit = derive2 { name="tidytransit"; version="1.6.1"; sha256="0n5iy7cpj94r396rf6rzx2n258836rjf7906hrdj58rgc28qhacm"; depends=[data_table digest dplyr geodist gtfsio hms rlang sf]; };
   tidytreatment = derive2 { name="tidytreatment"; version="0.2.2"; sha256="04z3afharkqyjk5kk097kpqlrmvq5220bsdlzmbzwl5k56vgxgxx"; depends=[dplyr purrr readr rlang tidybayes tidyr]; };
   tidytree = derive2 { name="tidytree"; version="0.4.6"; sha256="14i2v6ryqw4cd74n8kz4qwwx730wzx4f0rssg5vgm0vjfsx0kafv"; depends=[ape cli dplyr lazyeval magrittr pillar rlang tibble tidyr tidyselect yulab_utils]; };
   tidytuesdayR = derive2 { name="tidytuesdayR"; version="1.0.3"; sha256="0n6pl2n3gv3f1idqfgb5w2pr71za551kgc4whxda4dwzl5ylkc0v"; depends=[httr jsonlite lubridate magrittr purrr readr readxl rstudioapi rvest usethis xml2]; };
   tidyverse = derive2 { name="tidyverse"; version="2.0.0"; sha256="1r980y6d4a5brvxwdx41qzi8f3fck36c5l89sd3k4csna09jsg1x"; depends=[broom cli conflicted dbplyr dplyr dtplyr forcats ggplot2 googledrive googlesheets4 haven hms httr jsonlite lubridate magrittr modelr pillar purrr ragg readr readxl reprex rlang rstudioapi rvest stringr tibble tidyr xml2]; };
   tidyvpc = derive2 { name="tidyvpc"; version="1.5.1"; sha256="1i7dsmji1kjjs7lncpdxg5kpy0r4rc9ylb197fnbgkkz8yxjb8q3"; depends=[classInt cluster data_table egg fastDummies ggplot2 magrittr mgcv quantreg rlang]; };
-  tidywikidatar = derive2 { name="tidywikidatar"; version="0.5.7"; sha256="0lpdg4iaqis3hnklf3qm0xjan0pdmpkwgc4zm6hl4b5m1zr4s2fx"; depends=[DBI dplyr fs glue jsonlite magrittr pool progress purrr rlang RSQLite stringr tibble tidyr usethis vctrs WikidataQueryServiceR WikidataR WikipediR]; };
+  tidywikidatar = derive2 { name="tidywikidatar"; version="0.5.8"; sha256="1f6651nh98assi6wr6k1qp55bspqln83arz6di1fx8p7mlkrh8li"; depends=[cli DBI dplyr fs glue jsonlite magrittr pool progress purrr rlang RSQLite stringr tibble tidyr vctrs WikidataQueryServiceR WikidataR WikipediR]; };
   tidyxl = derive2 { name="tidyxl"; version="1.0.10"; sha256="1y8bbll3mhxb2drdraymblzw8gjxym2lrj90fg2z75rn00lnwf8f"; depends=[piton Rcpp]; };
   tiff = derive2 { name="tiff"; version="0.1-12"; sha256="0p41irri0nxg9mm06g8jp5zqssv80g5zg0iifrr7ancjkxqww46z"; depends=[]; };
   tigerhitteR = derive2 { name="tigerhitteR"; version="1.1.0"; sha256="0inyi12lf8bn7nbklf2rjixk6wrgrjcp8njv7knai4dgvv7v0rfa"; depends=[Hmisc magrittr openxlsx zoo]; };
@@ -19465,7 +19767,7 @@ in with self; {
   tigris = derive2 { name="tigris"; version="2.1"; sha256="15zxsqxwns9vm8ymk2nadxjh3h91pxr69206sqakhch3w1nfssvr"; depends=[dplyr httr magrittr rappdirs sf stringr uuid]; };
   tiktokadsR = derive2 { name="tiktokadsR"; version="0.1.0"; sha256="17x6nxp88iji376qhvvkgxyfcbxz9bvfgv9kmhiznlhq64srdjfs"; depends=[jsonlite]; };
   tikzDevice = derive2 { name="tikzDevice"; version="0.12.6"; sha256="1b04a3hmfx0r5iw6836cb9pvqspijb2dz17vc40n9jwsr9ij3nq4"; depends=[filehash png]; };
-  tiledb = derive2 { name="tiledb"; version="0.25.0"; sha256="0azczjh9imcjc6rq7l0lcp0mvab0jmmq6y8i5xvyndf5q79mn002"; depends=[nanoarrow nanotime Rcpp RcppInt64 spdl]; };
+  tiledb = derive2 { name="tiledb"; version="0.28.0"; sha256="1m4larx3d6si1283hza8pvf0z49rb7h2v3dv5bn9mm6cf82xm5fx"; depends=[nanoarrow nanotime Rcpp RcppInt64 spdl]; };
   tilegramsR = derive2 { name="tilegramsR"; version="0.2.0"; sha256="11cnyvlghg8z7lr9ahzsjpyjrqnxqs77wdcydqvavrsqj745xvi2"; depends=[sf sp]; };
   tilemaps = derive2 { name="tilemaps"; version="0.2.0"; sha256="06pwwlndb7nvw2b0h0fak3vnpbi11mxsby43qm9ng3k3sqwrqjz2"; depends=[clue ggplot2 igraph lwgeom sf smoothr]; };
   tiler = derive2 { name="tiler"; version="0.3.1"; sha256="09xxfkbgjd9x27fjkbk1ady7sxz9lqkmaw5027xgakn65g9vmssz"; depends=[png raster sp]; };
@@ -19473,21 +19775,20 @@ in with self; {
   timbeR = derive2 { name="timbeR"; version="2.0.1"; sha256="01lpx4pk22k9j4sbbhr9z7r6spfdrfazpxsyp7cxndrswa8m83zq"; depends=[cowplot dplyr ggplot2 magrittr miniUI shiny tibble tidyr]; };
   timbr = derive2 { name="timbr"; version="0.2.2"; sha256="1bz368s1iryxrrxsvq2sbzlm2cnrfqxafzvbsgm6smb3skwyp3sb"; depends=[cli dplyr lifecycle memoise pillar purrr rlang tibble tidygraph vctrs]; };
   time_slots = derive2 { name="time.slots"; version="0.2.0"; sha256="04qh8cgk3ixvvc67m2hal935m5kisq2n67cvjmsg1frz1bf2yvld"; depends=[dplyr ggfittext ggplot2 lubridate scales]; };
-  timeDF = derive2 { name="timeDF"; version="0.9.0"; sha256="1civib75j61b5hw6jm0ga15y9q67mhd927a5jhk9wik7sfxrd7ll"; depends=[Rcpp]; };
+  timeDF = derive2 { name="timeDF"; version="0.9.1"; sha256="1mcz600vrwm8s0vq4b6svraxpk2d7sjs97lw71xvbjm5a6albgbq"; depends=[Rcpp]; };
   timeDate = derive2 { name="timeDate"; version="4032.109"; sha256="0n5rzi3bb1wjpqcgpxcagjy815vy8ksjzpkkjzs3333yljyl2a20"; depends=[]; };
   timeLineGraphics = derive2 { name="timeLineGraphics"; version="1.0"; sha256="06i2palpc19g0480d53232fj4jd5j0brhdkmj5vcr6p58qsvhyhm"; depends=[berryFunctions magick pdftools R2HTML]; };
   timeR = derive2 { name="timeR"; version="1.2.0"; sha256="0lkx2ilbzq29w1c9ssya4f0za0sj7y30y9ml4v3zc21c1la0b6vi"; depends=[lubridate R6]; };
   timeROC = derive2 { name="timeROC"; version="0.4"; sha256="1qxijg7hazc8bifwj2254ig2p3cbrp9p0bsyhhh3aikf1rg113v1"; depends=[mvtnorm pec]; };
-  timeSeq = derive2 { name="timeSeq"; version="1.0.4"; sha256="0m59g12dmnwpmwjmyb9x6z53x3gjmxcaxqva2dlbazsqkbzgaayp"; depends=[gss lattice mgcv pheatmap reshape]; };
   timeSeries = derive2 { name="timeSeries"; version="4032.109"; sha256="07vkppp9azbrn0lv1xhi4s3vpy4mglhysp7d250fl08b9rc4f32y"; depends=[timeDate]; };
   timechange = derive2 { name="timechange"; version="0.3.0"; sha256="1d26mr3avw6bpx786k223bnylzqr7z1h7rrjc38pi5db2iahnp6q"; depends=[cpp11]; };
   timedelay = derive2 { name="timedelay"; version="1.0.11"; sha256="0hr5a2m621ybvl4qyx1xgwzviszj4ccvb149yclds9z87r5h2gm4"; depends=[MASS mvtnorm]; };
   timedeppar = derive2 { name="timedeppar"; version="1.0.3"; sha256="0cg3akp5clyh0jm2808n4glmvfb8pjfsrpiw8724q7zsx3mfhgff"; depends=[mvtnorm]; };
-  timeless = derive2 { name="timeless"; version="0.1.0"; sha256="1ak2kksfk78yhjylf6iwcmdgzv8lwx6alck52dznn74y2w6zlr6m"; depends=[]; };
+  timeless = derive2 { name="timeless"; version="0.2.1"; sha256="061pfg9p15kywzwmg7mfacj9mdrcn7zxlspb7fjfnmcay40v39n7"; depends=[]; };
   timelineS = derive2 { name="timelineS"; version="0.1.1"; sha256="076w8ckzzl59bc1gnwjgdwynnz86320hyfmzb0k26hl3k13jlmxs"; depends=[dplyr ggplot2 lubridate magrittr]; };
   timeordered = derive2 { name="timeordered"; version="1.0.0"; sha256="0gcf2mvqzqrqxf7qqfhvxb42y32vxaz5nc29vnyig1lh6bnywkhq"; depends=[igraph plyr]; };
   timeperiodsR = derive2 { name="timeperiodsR"; version="0.7.3"; sha256="1ah3am6fyyp3hp3n2028iysx7qv3bbg7mwcvviq7hqi6xrwq7qqi"; depends=[lubridate]; };
-  timeplyr = derive2 { name="timeplyr"; version="0.5.0"; sha256="11wk68z8jnpff6is2avlwn60xq11a39y7c9jx6qq26sffidh3ihh"; depends=[collapse cpp11 cppdoubles data_table dplyr ggplot2 lubridate pillar rlang stringr tidyselect timechange vctrs]; };
+  timeplyr = derive2 { name="timeplyr"; version="0.8.1"; sha256="0ghr0vrg53fgxmi1w8lx7nfrfxfxhcd4rbi2qrk6pl254n41zwm7"; depends=[cheapr collapse cpp11 cppdoubles data_table dplyr ggplot2 lubridate pillar rlang scales stringr tidyselect timechange vctrs]; };
   timereg = derive2 { name="timereg"; version="2.0.5"; sha256="1vzphh7hfkc65r61wms1dh58i3ng7340whqkw947yb4nyvmdvld0"; depends=[lava numDeriv survival]; };
   timeseriesdb = derive2 { name="timeseriesdb"; version="1.0.0-1.1.2"; sha256="17j1nxpgbfbzmfc6zrgcw68ri9ncslic9qdkxkdpfr2gi1w61bpc"; depends=[data_table DBI jsonlite RPostgres xts]; };
   timetk = derive2 { name="timetk"; version="2.9.0"; sha256="1f6v6gipxi0ydj6fcckk6hgxdx8cfj0f1fyyf092lqx9a7flfp3g"; depends=[anytime dplyr forcats forecast generics ggplot2 hms lubridate padr plotly purrr readr recipes rlang rsample slider stringi stringr tibble tidyr tidyselect timeDate tsfeatures xts zoo]; };
@@ -19500,25 +19801,25 @@ in with self; {
   tint = derive2 { name="tint"; version="0.1.4"; sha256="1vkdgxxgcj3qk3858sp3zi7c2id3dq0zxz23xd4i8lgbqgvvh2s3"; depends=[htmltools knitr rmarkdown]; };
   tinter = derive2 { name="tinter"; version="0.1.0"; sha256="02hfw2720qn70x0piahm8cy2ajsb5bqapr4vyvknm4v1yka1wmw3"; depends=[chk]; };
   tinyProject = derive2 { name="tinyProject"; version="0.6.1"; sha256="0cflnfp5mib3j1y3n5yvi867h5a7z6xr6163gq9y9b6nrl2skxfk"; depends=[brew R_utils]; };
-  tinyarray = derive2 { name="tinyarray"; version="2.3.2"; sha256="0m2nmkf8ql8v61l6g5j1gl9cjgic98pidr5dl9rvk3xqchp4rmrj"; depends=[BiocManager clusterProfiler dplyr ggplot2 limma patchwork pheatmap stringr survival survminer tibble]; };
-  tinycodet = derive2 { name="tinycodet"; version="0.4.5"; sha256="1c4mgawxk54d7m1zalf53a9ipfnx6bv5l0wjx9v3r7filzisvhh2"; depends=[Rcpp stringi]; };
+  tinyarray = derive2 { name="tinyarray"; version="2.4.2"; sha256="188zc58yb68jyw3dw7y323slnlgl7872icrwf3zl6s7rm44dmljc"; depends=[BiocManager clusterProfiler dplyr ggplot2 Hmisc limma patchwork pheatmap stringr survival survminer tibble]; };
+  tinycodet = derive2 { name="tinycodet"; version="0.5.0"; sha256="1zw9f0586mf78hs115l6bib6c3r1d5n8c9mgyxhqc52vdxv0cqhn"; depends=[Rcpp stringi]; };
   tinylabels = derive2 { name="tinylabels"; version="0.2.4"; sha256="01pvnirma3wzfqnnz8zvyqajjyysjm3sd6813bgdhz199lcg7hhz"; depends=[]; };
   tinyscholar = derive2 { name="tinyscholar"; version="0.1.7"; sha256="0cd9xbm1gk0v241fqa42hly40vkqb6hcvi8jp9iqq8sgmrs33adh"; depends=[curl dplyr ggplot2 gt jsonlite magrittr purrr R_utils rlang rvest stringr xml2]; };
-  tinysnapshot = derive2 { name="tinysnapshot"; version="0.0.4"; sha256="1w9p7fkp7shcks8p1g6y3liqjhcqpydw116x3d0bchwmlra7zpcs"; depends=[diffobj magick tinytest]; };
+  tinysnapshot = derive2 { name="tinysnapshot"; version="0.0.5"; sha256="1w41xcimj7p51v484vqkwlzjcv3667mibs2p830wd6r2aq7zadiy"; depends=[diffobj magick tinytest]; };
   tinyspotifyr = derive2 { name="tinyspotifyr"; version="0.2.2"; sha256="19nicp1ml73lylja2np52rcc070maxm9286fjm7bfx3zsblxmakc"; depends=[httr jsonlite]; };
-  tinytable = derive2 { name="tinytable"; version="0.2.0"; sha256="183lqqp2rxcfszdywhgxclqwlhslmaifybgmc7q1a8nvm9glj82c"; depends=[]; };
+  tinytable = derive2 { name="tinytable"; version="0.3.0"; sha256="0ckqa4vl873939wvjalpyafi00dxigiy2219lcn9gr4nyxscpzsq"; depends=[]; };
   tinytest = derive2 { name="tinytest"; version="1.4.1"; sha256="0x0w1fiqd98vmpz8yrp9ig0ry1wfr16g6bkjzd2a8sq9gn417z7n"; depends=[]; };
-  tinytest2JUnit = derive2 { name="tinytest2JUnit"; version="1.0.3"; sha256="01x43bfma2r5sqk2ccxlmiwnz86gx14vapiszp2daf38f5x82l3b"; depends=[]; };
-  tinytex = derive2 { name="tinytex"; version="0.50"; sha256="11k0pl073b4k4wmpxkw4a071jbpvhr1g3cwm9v99rw3gh6p6x15l"; depends=[xfun]; };
+  tinytest2JUnit = derive2 { name="tinytest2JUnit"; version="1.1.2"; sha256="1c7vzdyjqqayrsbdasr7zif2m367yvid5y00fhy35r43ggzzhb4n"; depends=[tinytest]; };
+  tinytex = derive2 { name="tinytex"; version="0.51"; sha256="1sn8fkmz01x0igsh7ynkqsl5h50ccl4xf8025a87i3mmni8kn4dv"; depends=[xfun]; };
   tinythemes = derive2 { name="tinythemes"; version="0.0.2"; sha256="0ps69r9jn5cmx68spq3rgqn784203g8n6lzkdh6ijlx7bzh8frm5"; depends=[ggplot2]; };
-  tinytiger = derive2 { name="tinytiger"; version="0.0.8"; sha256="1ixbq9qfv0jlwqca8anng2z9dykpsv46vyrkc7p82a55mx1x8vbg"; depends=[cli curl glue rlang sf]; };
+  tinytiger = derive2 { name="tinytiger"; version="0.0.9"; sha256="0nfy0zd7byy2j9mgq4piyjvxdlzw98jajmvni8pp5m6ilac116zy"; depends=[cli curl glue sf]; };
   tip = derive2 { name="tip"; version="0.1.0"; sha256="11khhkszd5a81q0h6acx5rvp1k97qj1srcvz2jilwf3v6nrz7daz"; depends=[changepoint doParallel foreach GGally ggplot2 igraph LaplacesDemon mniw network rlang]; };
   tipa = derive2 { name="tipa"; version="1.0.8"; sha256="0w637cmg82h758kayf17z70kls7gs1h44b1ridd311j0yz4f5x6a"; depends=[optimx]; };
   tipitaka = derive2 { name="tipitaka"; version="0.1.2"; sha256="0xf64bpzwywwjm0135c7zjn4ha0h1zj36rj2d4h8dskiq9z90xqi"; depends=[cpp11 dplyr magrittr stringi stringr]; };
   tipmap = derive2 { name="tipmap"; version="0.5.2"; sha256="11wznnhv1jf0g72ahdcxvxm4n3kpdbx6ivdx9cb0c5gdyjh482ss"; depends=[assertthat dplyr furrr future ggplot2 magrittr purrr RBesT]; };
   tippy = derive2 { name="tippy"; version="0.1.0"; sha256="00c9v07ax7l0x5wpx3ca8hqvdqs3p62d58igp51rsbh9x1ylgjcn"; depends=[htmltools htmlwidgets jsonlite shiny]; };
   tipr = derive2 { name="tipr"; version="1.0.2"; sha256="1vbcgh40j20x8r8f005g1i6iwwrr9sdb68sc4ql8nyddm5bk3rx3"; depends=[cli glue purrr rlang sensemakr tibble]; };
-  tipsae = derive2 { name="tipsae"; version="0.0.18"; sha256="0w7ig4p23zgsn8q95cx6l031yz8kd1dk8jmzw5sf7b2b5snxlhvd"; depends=[BH ggplot2 ggpubr nlme Rcpp RcppEigen RcppParallel Rdpack rstan shiny sp StanHeaders]; };
+  tipsae = derive2 { name="tipsae"; version="1.0.1"; sha256="1ay67c3hlfzzflzcjwh9jqmy70jbvxp0bri1cc8vvs3ipdinygg9"; depends=[BH ggplot2 ggpubr nlme Rcpp RcppEigen RcppParallel Rdpack rstan shiny sp StanHeaders]; };
   tis = derive2 { name="tis"; version="1.39"; sha256="1sq3acz8mybsbxng5fga4ynqvh1ly9hs3ca727jiyx1gam712mis"; depends=[]; };
   titanic = derive2 { name="titanic"; version="0.1.0"; sha256="0mdmh0ciwfig00847bmvp50cyvj8pra6q4i4vdg7md19z5rjlx3j"; depends=[]; };
   titeIR = derive2 { name="titeIR"; version="0.1.0"; sha256="047vidn3zydbjijwgz6qm2d9j2ny8ng2sv5jzm8zb300y7k2426c"; depends=[Iso]; };
@@ -19527,11 +19828,11 @@ in with self; {
   tkRplotR = derive2 { name="tkRplotR"; version="0.1.7"; sha256="1n8ihn6ys68dzfxi1wqdbq00qm41fwjw2vn9i3wyb4w1j73v82zy"; depends=[]; };
   tkrplot = derive2 { name="tkrplot"; version="0.0-27"; sha256="19bj4wn1fs4wrx5k4gakhpz4q59fgx0584wyaw7hnh0ljj8i34n9"; depends=[]; };
   tlars = derive2 { name="tlars"; version="1.0.1"; sha256="1hahhyw9imhkf1aq48m8prrm46cj9r6ibnrq9k1l5zxy4gzw630g"; depends=[Rcpp RcppArmadillo]; };
-  tldr = derive2 { name="tldr"; version="0.3.0"; sha256="0p02ivcy5as46ffds1pg3ibhq0f06lrs2dygfair32cp21x0y9f7"; depends=[ggplot2 reshape2 tableone]; };
+  tldr = derive2 { name="tldr"; version="0.4.0"; sha256="10cf5d5wa0vhpysqjai220aps9v8wk2hsyvjj74alj5x5knh5p41"; depends=[ggplot2 reshape2 tableone]; };
   tlm = derive2 { name="tlm"; version="0.1.5"; sha256="1iw08pa70nb25fnv64834s5c8vl456a2rcng7x6v9vs5q37610g6"; depends=[boot]; };
   tlrmvnmvt = derive2 { name="tlrmvnmvt"; version="1.1.2"; sha256="0zcf4pz7dz49hz8srr49rvksx7jfjss1sp4zlipbx89aq0l2l94p"; depends=[BH Rcpp RcppEigen]; };
   tls = derive2 { name="tls"; version="0.1.0"; sha256="183b5m70s2whlgp9s1gb4xnylhlp4hnh3lw6b8f2vx4kahaid763"; depends=[]; };
-  tm = derive2 { name="tm"; version="0.7-12"; sha256="1z0zpz6jgzg34cz07cdpya2zwwsvywrd8xgwahhlz15vnaij7j3y"; depends=[BH NLP Rcpp slam xml2]; };
+  tm = derive2 { name="tm"; version="0.7-13"; sha256="1d0xczmmfsj82183nygvb4f9h1qbydz763b3jlzxb6ns8pi6q9p5"; depends=[BH NLP Rcpp slam xml2]; };
   tm_plugin_alceste = derive2 { name="tm.plugin.alceste"; version="1.1.1"; sha256="1l1vn7nn54s92l7ag6kk9vrxzchvp0mvmm62irigk9byqmvrnjcc"; depends=[NLP tm]; };
   tm_plugin_dc = derive2 { name="tm.plugin.dc"; version="0.2-10"; sha256="0v14fj3r438pvs88k4zwlzkgax8r0k6cx4mqjnzzad15frqficij"; depends=[DSL NLP slam tm]; };
   tm_plugin_europresse = derive2 { name="tm.plugin.europresse"; version="1.4"; sha256="03qi9rkfwgjvir4cjpi9imc8zaldvan42v9lqfr5d6zhr0ajy6wx"; depends=[NLP tm XML]; };
@@ -19544,28 +19845,28 @@ in with self; {
   tmaptools = derive2 { name="tmaptools"; version="3.1-1"; sha256="0bal3czrdr93qig8s5cf5szld5vjbbks67rismfhlkmlgw6wp2gx"; depends=[dichromat lwgeom magrittr RColorBrewer sf stars units viridisLite XML]; };
   tmbstan = derive2 { name="tmbstan"; version="1.0.91"; sha256="0wsa1999iaxzzbh27xmw8qfka1hzfi81kf6p3zlhfq8299vrg4py"; depends=[BH Rcpp RcppEigen RcppParallel rstan StanHeaders TMB]; };
   tmcn = derive2 { name="tmcn"; version="0.2-13"; sha256="0rf8mz6kdm83pm85kzfyzb8kd3iwaxv5bgphjpxlnq6z32m9yds7"; depends=[]; };
-  tmle = derive2 { name="tmle"; version="2.0.0"; sha256="19rgp2m793zs8wd97c0fmjqj1mvq608xj8nm4w12c9nl8nvwm4w6"; depends=[glmnet SuperLearner]; };
+  tmle = derive2 { name="tmle"; version="2.0.1.1"; sha256="1xl71md4rld9yk0z47qki1pg4mhgblmc9adqzwd2157dfvqlh94c"; depends=[glmnet SuperLearner]; };
   tmod = derive2 { name="tmod"; version="0.50.13"; sha256="160aibvkz4ilyaig3bvkam6g96cngaynwsfrzh6vpq9xyraqxpix"; depends=[beeswarm ggplot2 ggrepel gplots pheatmap plotwidgets purrr RColorBrewer rlang tagcloud tibble tidyr tidyselect XML]; };
   tmplate = derive2 { name="tmplate"; version="0.0.3"; sha256="1w04bmir23ip3c7janix8i2qhdnmlg78jrrjlykl95vnsvjwld6g"; depends=[tRnslate]; };
   tmpm = derive2 { name="tmpm"; version="1.0.3"; sha256="1fqk39zyc07gh0ygi7pfljlnj6ih37jsb7bcxm05zcd4796wil8j"; depends=[reshape2]; };
   tmsens = derive2 { name="tmsens"; version="0.3.0"; sha256="0xdcmz2mqfb7agjgmkv4kgschsdlxqsjv5z30z8bpqxbi45x9ry0"; depends=[]; };
-  tmt = derive2 { name="tmt"; version="0.3.1-10"; sha256="02jqa2ddmwp5qb06gbcfgm39pc54y9igmcwrqkqhdbj55jcbmy7l"; depends=[ggplot2 Rcpp rlang]; };
+  tmt = derive2 { name="tmt"; version="0.3.4-0"; sha256="0n0wrgrf99bvlwbgjgx3sa8icmjqy1swc0ck3l1yja228qc26179"; depends=[ggplot2 Rcpp rlang]; };
   tmvmixnorm = derive2 { name="tmvmixnorm"; version="1.1.1"; sha256="0i1g3598d43azyy1bsrvkjybqa5cd991fpmfqi5wv5703zaha2fj"; depends=[MASS]; };
   tmvnsim = derive2 { name="tmvnsim"; version="1.0-2"; sha256="03xsvsg9bqvgl98ywid3h91mmlhax5s6wvmypp3hq91vmc5kvxlp"; depends=[]; };
   tmvtnorm = derive2 { name="tmvtnorm"; version="1.6"; sha256="1fhvisddn3x4li2q12c3hss0cj735c0iq32c9cw646ni619jr6rd"; depends=[gmm Matrix mvtnorm]; };
   tmvtnsim = derive2 { name="tmvtnsim"; version="0.1.3"; sha256="15nhk21x9yklpxnqmd6qblmh0g4p9065hkvy26gd8ppaz19law5s"; depends=[Rcpp RcppArmadillo]; };
   tnet = derive2 { name="tnet"; version="3.0.16"; sha256="0922y9zb64zazl2irwfxxbghkgcwi2q57gylpiaxgmj4q6lc62l9"; depends=[igraph survival]; };
   tnl_Test = derive2 { name="tnl.Test"; version="0.1.0"; sha256="13yhxsj33lzbd5mbrwznilim5zsqcnj9y9c1qfh7c3ml2pa3s2vp"; depends=[partitions plyr]; };
-  tntpr = derive2 { name="tntpr"; version="1.0.2"; sha256="0ic95bbc91lih6wjmb61zg3m01qzbzkf5y03iy2wrac03yvlym88"; depends=[cli dplyr extrafont formattable ggplot2 janitor keyring labelled lubridate magrittr purrr readr rlang rstudioapi scales stringr tibble tidyr tidyselect]; };
+  tntpr = derive2 { name="tntpr"; version="1.0.3"; sha256="09vxsv5f5inl8pdlz4lap4zfry90lb58h3bypvj9grd2n75qxsrf"; depends=[cli dplyr extrafont formattable ggplot2 janitor keyring labelled lubridate magrittr purrr readr rlang rstudioapi scales stringr tibble tidyr tidyselect]; };
   toOrdinal = derive2 { name="toOrdinal"; version="1.3-0.0"; sha256="1zfx91024dyafkfyjsm2829qsqkz57g6p5v47lp2x0ykrwpdbm37"; depends=[crayon testthat]; };
-  toastui = derive2 { name="toastui"; version="0.3.2"; sha256="0hkww0q39skcah6mvbbs0pdlnzac3jwjgwkidp9as99qb1l4bzj8"; depends=[htmltools htmlwidgets magrittr phosphoricons rlang shiny shinyWidgets]; };
+  toastui = derive2 { name="toastui"; version="0.3.3"; sha256="1m6l3acvsznhm22gvc9jjl8jnlxa3l6l6s42mdv04kwzw1qqm6xp"; depends=[htmltools htmlwidgets magrittr phosphoricons rlang shiny shinyWidgets]; };
   todor = derive2 { name="todor"; version="0.1.2"; sha256="1ncg88wh9l2mja5w53ry2b19sa5x9m6cnkvw8lszbmc92idpspig"; depends=[R_utils rex rstudioapi stringr]; };
   togglr = derive2 { name="togglr"; version="0.2.1"; sha256="12fmj6h8vx8f46qhadgwcaq0cn55jwi8kvnci1hw7cld46f4s50l"; depends=[assertthat cachem dplyr getPass glue httr jsonlite keyring lubridate magrittr memoise parsedate prettyunits purrr rappdirs rstudioapi]; };
   tok = derive2 { name="tok"; version="0.1.1"; sha256="1rbn5b6gc5qx8d8rggxbvcs2phrdxj9r72sl6l75vpn4hh4ffpi6"; depends=[cli R6]; };
   tokenbrowser = derive2 { name="tokenbrowser"; version="0.1.5"; sha256="17hbkcan74j4fkk4j1xcgikaanp3xhs5njjxkapg2yjdhmf2dng6"; depends=[Rcpp stringi]; };
   tokenizers = derive2 { name="tokenizers"; version="0.3.0"; sha256="0a8wm4cff3hrll991h2rimw79kpf2jsn78y7yksdk8m18931wmr4"; depends=[Rcpp SnowballC stringi]; };
   tokenizers_bpe = derive2 { name="tokenizers.bpe"; version="0.1.3"; sha256="0ar84a19c2qafdyx666ggbvl0sqv3pxg3yg3qpv59s7cbbdymwc1"; depends=[Rcpp]; };
-  tolerance = derive2 { name="tolerance"; version="2.0.0"; sha256="001snzr2ipag3zprynydlbi9prkjzrllc054qh7m0qwkb3r19jjd"; depends=[MASS rgl]; };
+  tolerance = derive2 { name="tolerance"; version="3.0.0"; sha256="0pk75i0qmfrpm02jm4c0vvryq3f2drmj9dzj1q0zr3sbmp9w6mpf"; depends=[MASS plotly]; };
   tomba = derive2 { name="tomba"; version="1.0.1"; sha256="1433jxghx8jrgy8r9kfp506vn58qpzp4wbzncks7fnignbb6cp50"; depends=[httr jsonlite testthat]; };
   tongfen = derive2 { name="tongfen"; version="0.3.5"; sha256="1xg5jvrl4cv86rylhyiyfdyhb9gr5vdabsp1cdfnz7wpmdkpwnxl"; depends=[dplyr lifecycle purrr readr rlang sf stringr tibble tidyr]; };
   toolStability = derive2 { name="toolStability"; version="0.1.2"; sha256="032czpmr484jm10i0pz9f3jyzkqrz5s11q2nxrhk8jrlg0s427lr"; depends=[data_table dplyr nortest Rdpack]; };
@@ -19585,11 +19886,11 @@ in with self; {
   toprdata = derive2 { name="toprdata"; version="1.0.2"; sha256="1zn8w1c74nxm67xzk556zirhnfyi82wk34amy5a869a15lwchhaz"; depends=[]; };
   topsis = derive2 { name="topsis"; version="1.0"; sha256="056cgi684qy2chh1rvhgkxwhfv9nnfd7dfzc05m24gy2wyypgxj3"; depends=[]; };
   tor = derive2 { name="tor"; version="1.1.2"; sha256="1s34hzw3a4cm9gk85fcxgxwmn2xc7njs1iw1snd91id3gdl6vppx"; depends=[fs readr rlang tibble]; };
-  torch = derive2 { name="torch"; version="0.12.0"; sha256="024c8szg3xa2zrl5406jx3bmazbjwp2f07ja7m61ja0dr3z7lvbq"; depends=[bit64 callr cli coro desc ellipsis glue jsonlite magrittr R6 Rcpp rlang safetensors withr]; };
+  torch = derive2 { name="torch"; version="0.13.0"; sha256="1vy855ahji98np2q5j5fag2zcnv4ki5mysxwg3y5kdns6mifd5ns"; depends=[bit64 callr cli coro desc ellipsis glue jsonlite magrittr R6 Rcpp rlang safetensors withr]; };
   torchaudio = derive2 { name="torchaudio"; version="0.3.1"; sha256="1zn9z2z2yv1xjmpf5xcyxachmmbwk2g0y3nipvjgpwbqkjr7p9y6"; depends=[av fs glue rlang torch]; };
   torchdatasets = derive2 { name="torchdatasets"; version="0.3.0"; sha256="1mq87sgy9v1526iy03zpslkjxx7379q6x9dqs0nslvvfwk9sry4q"; depends=[fs pins stringr torch torchvision withr zip]; };
   torchopt = derive2 { name="torchopt"; version="0.1.4"; sha256="0qcygp8jpx2192nfcki5mqb9gi4gzlc68yf6in8y88lvy8dj8ll2"; depends=[torch]; };
-  torchvision = derive2 { name="torchvision"; version="0.5.1"; sha256="0649rgrh4fbswc3ab92af2z1hf61nbb7wf8yf5n9b9ajnvfkvxbp"; depends=[abind fs jpeg magrittr png rappdirs rlang torch withr]; };
+  torchvision = derive2 { name="torchvision"; version="0.6.0"; sha256="0n78x9dyj9dk2dpsmx5zbm1842nhfnb7jszva320avr72w6a4386"; depends=[abind fs jpeg magrittr png rappdirs rlang torch withr]; };
   torchvisionlib = derive2 { name="torchvisionlib"; version="0.5.0"; sha256="1n9gvidi3lvcq730c70mzh94w42asv903708fqyqp2wrs68884na"; depends=[glue Rcpp rlang torch withr]; };
   tornado = derive2 { name="tornado"; version="0.1.3"; sha256="0bbbrsdnb77svji981py33hq2z27if5qsv5xpmpl29sf3h1s1yjc"; depends=[assertthat ggplot2 gridExtra rlang scales survival]; };
   tosca = derive2 { name="tosca"; version="0.3-2"; sha256="1z8svczy93lpdj7n1gk9jz8jgzkjsf886ldlkgq1mfi1j6m8557y"; depends=[data_table htmltools lda lubridate quanteda RColorBrewer stringr tm WikipediR]; };
@@ -19597,8 +19898,9 @@ in with self; {
   toscutil = derive2 { name="toscutil"; version="2.7.4"; sha256="07b89f43d9dm0lyfc0fd15bv2gxqmzz3ly9gzggix04v8zxivm2i"; depends=[languageserver rlang]; };
   tosr = derive2 { name="tosr"; version="0.1.4"; sha256="1ab1jh60dp2b8vnd2vvva6w5rsidyavp8i9gsbwcqr5rmnmxg67q"; depends=[bibliometrix dplyr igraph magrittr rebus rlang stringr tibble tidyr]; };
   totalcensus = derive2 { name="totalcensus"; version="0.6.6"; sha256="09c7hm9yys48p8pjp9kv3szbwrg9xb1xf47zya24yir0gxs7bfmi"; depends=[data_table magrittr purrr stringr]; };
+  touRnamentofchampions = derive2 { name="touRnamentofchampions"; version="0.1.0"; sha256="0mkqqfai4gq5ccfhmxysvvhcx304z511cv210iam9p0ypnyh01lk"; depends=[tidyverse]; };
   touch = derive2 { name="touch"; version="0.1-6"; sha256="0w25zxxj5qaxkx64vz55qw4k4szx85ncbcam7q600ryy1kc5xxxv"; depends=[Rcpp]; };
-  tourr = derive2 { name="tourr"; version="1.1.0"; sha256="1hs4f5ry8pn50c93433q4cg9ksyj78g7x4fv7p5i1qg3pjnr7rh0"; depends=[dplyr MASS tibble]; };
+  tourr = derive2 { name="tourr"; version="1.2.0"; sha256="1sbaf94ms03jw5bc04xf974zp7zgfdx9xv8yl4hch82kfmfcdmxy"; depends=[dplyr MASS tibble]; };
   toweranNA = derive2 { name="toweranNA"; version="0.1.0"; sha256="1nncjhfz0fgjhvhkfy55kjr6as6qm0n1d1mj1w1z3d6304ai6863"; depends=[FNN pdist regtools rmarkdown]; };
   toxEval = derive2 { name="toxEval"; version="1.3.2"; sha256="1dyrbvb2l7bdz6d0lph7s8m3ydy6wz9k01qd9ilvkdqcf3y05ih0"; depends=[dplyr DT ggplot2 leaflet magrittr RColorBrewer readxl shiny shinyAce shinycssloaders shinydashboard tidyr]; };
   toxSummary = derive2 { name="toxSummary"; version="1.0.0"; sha256="1pxd8sgbby2n6bpcfxng0mj60xx5mx5m0svmqn355cl49vfccsbg"; depends=[cicerone data_table DBI dplyr DT flextable fs ggiraph ggplot2 htmltools magrittr patchwork rlang RSQLite scales shiny shinycssloaders shinydisconnect stringr]; };
@@ -19606,16 +19908,19 @@ in with self; {
   tpAUC = derive2 { name="tpAUC"; version="2.1.1"; sha256="0wix9qwcidj7xfqhh7bmrpnadd9qlkvg3515gaamdxkjbz2kyydc"; depends=[pROC]; };
   tpc = derive2 { name="tpc"; version="1.0"; sha256="0zkls2vf8j1rq5ryn4w295a6gcy57vr3zghyck8jwgl9pd5zcc4x"; depends=[graph pcalg]; };
   tpfp = derive2 { name="tpfp"; version="0.0.1"; sha256="0vm5qssaanvi0sck2hj1qgjra89a42i6nvzbva5z0aj2hkd5h4vh"; depends=[knitr readxl xlsx]; };
+  tpm = derive2 { name="tpm"; version="2.0.2"; sha256="1hya9sa8sdhcqk1nn2f9lr420mdj9qq6dv3gbkn8rwa0w12zbqhz"; depends=[data_table fasttime]; };
   tpn = derive2 { name="tpn"; version="1.8"; sha256="1jhddrgkzlwmljqzy4hgday4ydyc76fskk2ahnz9x2abfm21dx7g"; depends=[moments pracma RBE3 skewMLRM VGAM]; };
   tpr = derive2 { name="tpr"; version="0.3-3"; sha256="13xi4a9pdhqyg56jcimcqxfz3zcpzyhb6y7nh73dr09w8picq6gj"; depends=[lgtdl]; };
+  tpwb = derive2 { name="tpwb"; version="0.1.0"; sha256="120mwlbi5q4ghja9n3mw65g7zi2ji17zgjpzcyyk7isvmrn426h1"; depends=[]; };
   tqk = derive2 { name="tqk"; version="0.1.8"; sha256="1l4zsmfnpzcn34pjwzfr511qn7y03bymdak4pcysrj4s49xgx4qj"; depends=[dplyr httr jsonlite magrittr tibble]; };
   tr_iatgen = derive2 { name="tr.iatgen"; version="1.0.0"; sha256="0bwr6c5mg41avsjj55wql0nyvb9pix8n5rpzlqjsq93xwixapy5s"; depends=[shiny]; };
   tracee = derive2 { name="tracee"; version="0.0.4"; sha256="0ny6769zdl2i5y3fy3ysww91i5s0n86rcciaalryg6ms18989x0r"; depends=[data_table flextable ggplot2 gridExtra NMdata]; };
+  tracenma = derive2 { name="tracenma"; version="0.1.0"; sha256="087bqwnl8n8aqb7k2xc39flvdn6c1z353p0zk8z1rn4nbyswp2nv"; depends=[]; };
   tracer = derive2 { name="tracer"; version="1.0.0"; sha256="1jdh4ljcz7d0w2y5miggqkvv397jdx7fn108hbjw93af2gnh698q"; depends=[clisymbols crayon prettycode]; };
   tracerer = derive2 { name="tracerer"; version="2.2.3"; sha256="0jqf0p0j0g4naspgg9k7jxslwcdqwv7mxca41wyffrgglgya8rci"; depends=[jsonlite Rcpp testit]; };
   tracheideR = derive2 { name="tracheideR"; version="0.1.1"; sha256="1x1jwzgs2aqb3k17mm9mhfhnbwcmilhkjaz9rl40rcg84xjqdrpl"; depends=[tgram]; };
   track2KBA = derive2 { name="track2KBA"; version="1.1.1"; sha256="0lhx18vilxlac3z9vrwjcxjvinkdpp1njkvg82dyz1sqby3fa9f8"; depends=[adehabitatHR dplyr foreach geosphere ggplot2 lubridate magrittr maps Matching move purrr raster rlang sf sp tidyr]; };
-  trackdem = derive2 { name="trackdem"; version="0.6"; sha256="069nl1i73ayjnlsds4dnz6w4n765jijimgz20n9az7r0irvaddhi"; depends=[MASS neuralnet png raster Rcpp RcppArmadillo shiny]; };
+  trackdem = derive2 { name="trackdem"; version="0.7.2"; sha256="0i3zjdykdv92b4g7gvr83rmx8cvwmm7w5chbxr6si08zw0jipzzn"; depends=[MASS neuralnet png raster Rcpp RcppArmadillo shiny]; };
   trackdf = derive2 { name="trackdf"; version="0.3.3"; sha256="0ymg8ykr02qvkkp2avrfg384bhgzaqj3wff8shwnhkiaabi50d7b"; depends=[data_table dplyr lubridate sf tibble]; };
   trackdown = derive2 { name="trackdown"; version="1.1.1"; sha256="1l8mqdfpdf25vyibxqcqhyip6aqllb9riz2v6w4k1rfc8b9dl07f"; depends=[cli googledrive rmarkdown]; };
   trackeR = derive2 { name="trackeR"; version="1.6.0"; sha256="06fyki3w73hdmwlsmp6k5g5x6vs60ysznji3bgi9kpphcbn85frg"; depends=[fda foreach ggmap ggplot2 ggridges gridExtra gtable jsonlite leaflet raster RSQLite scam sp xml2 zoo]; };
@@ -19627,14 +19932,15 @@ in with self; {
   trafo = derive2 { name="trafo"; version="1.0.1"; sha256="0gq3snjpkw0ncny7pkfi686qkgdhd8id73jxjk3chhqf5mzrrsbc"; depends=[FNN lmtest moments pryr]; };
   trainR = derive2 { name="trainR"; version="0.0.1"; sha256="0wmxhw8yxkxpw08jma3r0zy7dhsrkbh5wjvd3izp5gf9dn9533cd"; depends=[dplyr glue lubridate magrittr purrr RCurl stringr tibble tidyr usethis xml2]; };
   traineR = derive2 { name="traineR"; version="2.2.0"; sha256="0a07l38k18x97yzqh8qcaza4fac0r2ngf3588v3nrvhcm3wz70az"; depends=[ada adabag dplyr e1071 gbm ggplot2 glmnet kknn MASS neuralnet nnet randomForest ROCR rpart stringr xgboost]; };
+  trainsplit = derive2 { name="trainsplit"; version="1.1"; sha256="12qmjpqi7ib4p6lbk3v6z63xdygbyry0a33whgy42jm0jcjswwx8"; depends=[data_table]; };
   traipse = derive2 { name="traipse"; version="0.3.0"; sha256="1ln0l8dkslj8pf0h5g5pj5iwy9x05nfkp1x36dxbi5iab88cv76w"; depends=[geodist geosphere magrittr]; };
-  traits = derive2 { name="traits"; version="0.5.0"; sha256="04s2523wkbjqxpwllvcy7ikyfri5gldgnynjswsxdy0k945wacvz"; depends=[crul data_table hoardr httr jsonlite readr rvest taxize tibble xml2]; };
+  traits = derive2 { name="traits"; version="0.5.1"; sha256="1jkap9qh3m2hxwib0h3vqzs2rc0dfnk875nbsr682sad8mx8i01h"; depends=[crul data_table hoardr httr jsonlite readr rvest taxize tibble xml2]; };
   traitstrap = derive2 { name="traitstrap"; version="0.1.0"; sha256="1yq4ngpqizlcmbcypdbsxrc9kixm6b44zimyijl7404bzz6hbs5a"; depends=[dplyr e1071 fitdistrplus ggplot2 glue purrr rlang stringr tibble tidyr]; };
-  traj = derive2 { name="traj"; version="2.0.1"; sha256="049vllrxsgp1hsjh8w79nybmcl40wlnjp5bxdkjrc0r3yi8mvc0v"; depends=[cluster psych]; };
+  traj = derive2 { name="traj"; version="2.1.0"; sha256="157v3bhb10x0fndx64pq3m5ddmwj070j1ca3d8ff64kpkfbxdgd3"; depends=[cluster psych]; };
   trajectories = derive2 { name="trajectories"; version="0.2-8"; sha256="0rs4jlj2w9byvx47kvp4aayh485ck2xra3pkpjl95dyk8b0xpl4d"; depends=[lattice sp spacetime zoo]; };
   trajmsm = derive2 { name="trajmsm"; version="0.1.0"; sha256="1nxklv2hsv4kry3zzyga2qgjjb0jhsx4f3l8a0k1j6lx2p7ysjah"; depends=[class e1071 flexmix geepack ggplot2 sandwich survival]; };
   trajr = derive2 { name="trajr"; version="1.5.1"; sha256="0sc0lyyp6qw71l6p2d6g5iszkcqpps6k2vb4798j76cl72fw5b52"; depends=[plotrix signal]; };
-  tram = derive2 { name="tram"; version="1.0-2"; sha256="1kl4hcjpp52xx2z0xk0wd0zibqrxb1smigxsvfgrzr8djvm4si3b"; depends=[basefun Formula Matrix mlt multcomp mvtnorm sandwich survival variables]; };
+  tram = derive2 { name="tram"; version="1.0-4"; sha256="04hbvsqawfqvfgmzbnbwxy6jlpnglpgmrnl9gp5kb6in36as92jz"; depends=[basefun Formula Matrix mlt multcomp mvtnorm sandwich survival variables]; };
   tramME = derive2 { name="tramME"; version="1.0.5"; sha256="1rfs38v0w2rxldxngbc1d6118cjnc8ad4zn2csqk8bg882b1yn18"; depends=[alabama basefun coneproj lme4 MASS Matrix mgcv mlt mvtnorm nlme numDeriv RcppEigen TMB tram variables]; };
   tramicp = derive2 { name="tramicp"; version="0.0-2"; sha256="1d5dj695q16il35pmfi6kb0m78mdjj5gsirqb2sd74jwgj32qy5b"; depends=[basefun coin cotram dHSIC MASS mlt multcomp ranger sandwich survival tram variables]; };
   tramnet = derive2 { name="tramnet"; version="0.0-8"; sha256="19hx2hn8m5abfzp4sm0myhxlx9hp2rl7dry5izxsfjjls3h8z1n4"; depends=[basefun CVXR lhs mlr mlrMBO mlt ParamHelpers sandwich smoof tram]; };
@@ -19653,12 +19959,12 @@ in with self; {
   transmdl = derive2 { name="transmdl"; version="0.1.0"; sha256="16lvcjwb7hq4a4925kqnas7c4xqw3gpbad3fcghp0qm4whyig8dg"; depends=[Rcpp RcppEigen statmod survival]; };
   transmem = derive2 { name="transmem"; version="0.1.1"; sha256="1a3c5ddmh9k4f80rbk363s7rkx30qhk9ssmf7xg7rr0lwxphahf3"; depends=[cmna ggformula ggplot2 plot3D]; };
   transplantr = derive2 { name="transplantr"; version="0.2.0"; sha256="1kzi8rvswsmibxqnhqd1j42y848si6cxd8hpvwi55y8s4hcylw0y"; depends=[]; };
-  transport = derive2 { name="transport"; version="0.14-7"; sha256="05l7slph5as2kzxv1s81v7pjc83w8ak7d8cxndc2pqny14sx07n0"; depends=[data_table Rcpp RcppEigen]; };
+  transport = derive2 { name="transport"; version="0.15-2"; sha256="0pf0lza2qf0alwphiy978fyp58k3lz5i44kcw86a3rrf7cpf4rwa"; depends=[data_table Rcpp RcppEigen]; };
   transreg = derive2 { name="transreg"; version="1.0.2"; sha256="1kh106kgnjliw84p219g317img4aaas8s2bm5x6pakvswqf2qjxw"; depends=[glmnet joinet starnet]; };
   transx = derive2 { name="transx"; version="0.0.1"; sha256="1xx934w4fhk2nwm5h6lf4irj83wsfp8lbplzcha5rnc7aka8pn3v"; depends=[rlang]; };
   trapezoid = derive2 { name="trapezoid"; version="2.0-2"; sha256="1pqb888w0q2zhcgjn0q4na2qwbxy4i8kfk6pp2id20gh8s96sm3f"; depends=[]; };
-  traudem = derive2 { name="traudem"; version="1.0.2"; sha256="11bwmn1fgymya5scsbby815mvaa037nnvb2y1l9h4jy1q3g8zwga"; depends=[cli purrr rlang sys withr]; };
-  traveltimeR = derive2 { name="traveltimeR"; version="1.1.4"; sha256="00mak79ixyzr2d4s8gp4hh84akh97xrdqxih483md0ybnn69j4i9"; depends=[data_table httr jsonlite RProtoBuf]; };
+  traudem = derive2 { name="traudem"; version="1.0.3"; sha256="043bk7zv80n3s3f616n1qls10aqzfy4hflgz8rgkjdmjxhmk0657"; depends=[cli purrr rlang sys withr]; };
+  traveltimeR = derive2 { name="traveltimeR"; version="1.2.1"; sha256="1029hxdgzapx0irvq5ir18fpdm5cyj5wjvl1h88x3g1rs88pvfzi"; depends=[data_table httr jsonlite RProtoBuf]; };
   trawl = derive2 { name="trawl"; version="0.2.2"; sha256="1a8cvkmw7bmdljggfv26n2nrad6974spga2yw5386k70ghq56mz3"; depends=[DEoptim ggplot2 ggpubr MASS rootSolve Runuran squash TSA]; };
   treasury = derive2 { name="treasury"; version="0.1.0"; sha256="1h87pwzd474bw2rsq2cvv2jw2nkr9lxjnc5grhqsq6vd2hlkwch5"; depends=[httr2 rlang xml2]; };
   treats = derive2 { name="treats"; version="1.0"; sha256="16ahw46wkjhvxhkiy4313ky9vvzjrg2bhxw1pz0j4hasdkd9xq1s"; depends=[ape dispRity MASS rgl]; };
@@ -19668,10 +19974,9 @@ in with self; {
   treeClust = derive2 { name="treeClust"; version="1.1-7"; sha256="1s7kh6q0bkixsygrip95zf1bi10ihddsa5lq9dfxd68yh8rsby6z"; depends=[cluster rpart]; };
   treeDA = derive2 { name="treeDA"; version="0.0.5"; sha256="0rdqvjj16w7ykpxd6m800h4zv79y9c1phhkl14xy10gbi2cqh10g"; depends=[ape ggplot2 gtable Matrix mvtnorm phyloseq reshape2 sparseLDA]; };
   treeDbalance = derive2 { name="treeDbalance"; version="1.0.1"; sha256="0i2sqvqjiw26z3fnbz6h3ki2yjhy0g33rr7wd4bl4vwvr833z7c2"; depends=[rgl]; };
-  treePlotArea = derive2 { name="treePlotArea"; version="2.0.0"; sha256="1wi39lbsml9zg2pp52x81l27iq1780036vfq5zmhxv26zn6bajf9"; depends=[fritools sf]; };
+  treePlotArea = derive2 { name="treePlotArea"; version="2.1.0"; sha256="0swj43mv121jjljabng43ljllrb3ap7clmxjy8j6aav28i2mv0f5"; depends=[fritools sf]; };
   treebalance = derive2 { name="treebalance"; version="1.2.0"; sha256="0mj621kx0gsik8ds0gch3g5b7ndbncw4hin2h2jzlgp7hylkmlhi"; depends=[ape gmp memoise]; };
   treebase = derive2 { name="treebase"; version="0.1.5"; sha256="07rggigdgjbmz9wvbkxs6xcwg6k53zb4j4rvlfrgb5b4mq44s0wj"; depends=[ape httr RCurl XML]; };
-  treeclim = derive2 { name="treeclim"; version="2.0.6.0"; sha256="0zdn766vxgycisjyjw7nh7hs817kqhdihyla3fhpzykw9pxnw0b2"; depends=[abind boot ggplot2 lmodel2 lmtest np plyr Rcpp RcppArmadillo]; };
   treedata_table = derive2 { name="treedata.table"; version="0.1.0"; sha256="0dhnb8if5wq6hzhjg40cw80sacigqmlm7nplm1f1ay5cqx1ynfi7"; depends=[ape data_table geiger lazyeval]; };
   treedater = derive2 { name="treedater"; version="0.5.0"; sha256="007rdrbv3v1z3qbyasla22rck105sqlqh93yfmxklihdydl7smfd"; depends=[ape limSolve]; };
   treediff = derive2 { name="treediff"; version="0.2.1"; sha256="00yhqbxgz35fnz940zkqr0kylzqb55l1yhilphw1yzks3wmsd4id"; depends=[adjclust BiocGenerics csaw data_table dplyr HiCDOC InteractionSet limma purrr reshape2 rlang SummarizedExperiment testthat]; };
@@ -19679,7 +19984,6 @@ in with self; {
   treeheatr = derive2 { name="treeheatr"; version="0.2.1"; sha256="0618j5rlq0xik9vl2l8ircnh98wzdzf9bxnfgmiqrpywgmc8r5nk"; depends=[cluster dplyr ggnewscale ggparty ggplot2 gtable partykit seriation tidyr yardstick]; };
   treemap = derive2 { name="treemap"; version="2.4-4"; sha256="1h3pas3kn8zrpdpvp9vs745q94kixw5lxkbq74l5lh0n3wkqnnn5"; depends=[colorspace data_table ggplot2 gridBase igraph RColorBrewer shiny]; };
   treemapify = derive2 { name="treemapify"; version="2.5.6"; sha256="1w15y842rp2zg5whf3x4fahsi0mvnk92w9rgnsgqivdamzrnd9qg"; depends=[cli ggfittext ggplot2]; };
-  treemisc = derive2 { name="treemisc"; version="0.0.1"; sha256="0289grmgcvdszsb9lhgygm1dahlcn1m50lh110ny5yjh1b4627kn"; depends=[Matrix Rcpp rpart]; };
   treenomial = derive2 { name="treenomial"; version="1.1.4"; sha256="0vx5x7078ccn2bsmcxdls3ymmc7jx71xzq0va0n7gyw36gi7k3nn"; depends=[ape Rcpp RcppArmadillo RcppThread]; };
   treeshap = derive2 { name="treeshap"; version="0.3.1"; sha256="1ipj5k9dgrnbny0z2ydsdvdzg5ba53alyidnh90a08y2dhd4wffs"; depends=[data_table ggplot2 Rcpp]; };
   treesliceR = derive2 { name="treesliceR"; version="1.0.1"; sha256="1hsb4rjl7kl2q9z4mkpsnwf6a8r0j1m6y4sl112rssrwrk836gb8"; depends=[ape doParallel foreach ggplot2 sf]; };
@@ -19703,6 +20007,7 @@ in with self; {
   triangle = derive2 { name="triangle"; version="1.0"; sha256="0vl8rgasmxb64kkk4vph4b7jzmyq9c0lp5jfr9ybmd8czaz6947l"; depends=[assertthat]; };
   triangulation = derive2 { name="triangulation"; version="0.5.0"; sha256="1zp09g0s0qpqgz2k6jx32pswh2zqyyd0b62lf1dx1p46m28dafkn"; depends=[]; };
   triangulr = derive2 { name="triangulr"; version="1.2.1"; sha256="1fjibp1rhgj363z3gn2iia5iv1hahdabwpxd7q3lxqzxwzs4nfd5"; depends=[cpp11 rlang vctrs]; };
+  tricolore = derive2 { name="tricolore"; version="1.2.4"; sha256="1vnzw1nnnpq5w52y5dr9lygbpyys171vpxnmnd0yp1pk9mjxays7"; depends=[assertthat ggplot2 ggtern rlang shiny]; };
   triebeard = derive2 { name="triebeard"; version="0.4.1"; sha256="1xz0xwq9c986as6g7z2g1ycvw1ryh4g89ygldvakpr21cgpjybqr"; depends=[Rcpp]; };
   triggerstrategy = derive2 { name="triggerstrategy"; version="1.2.0"; sha256="1p3x693nc9sx33s8z5v8gmdv3sn1mh1gbm0pdcjriklss3d9d28b"; depends=[GA ldbounds mvtnorm nleqslv]; };
   trigpoints = derive2 { name="trigpoints"; version="1.0.0"; sha256="1hckjh2gb0fvd2c8x6mj0idpk3im7b831y7mbli1hqhry6qqdw15"; depends=[sf tibble]; };
@@ -19717,9 +20022,9 @@ in with self; {
   triplesmatch = derive2 { name="triplesmatch"; version="1.0.0"; sha256="1qjwnyijk3yf9dl18baww806xz2w1jhxcnaw3nlb27g24m28j2dq"; depends=[MASS optmatch rcbalance rlang rlemon]; };
   triplot = derive2 { name="triplot"; version="1.3.0"; sha256="1apmdpxdnnmjyi7gcrjrqw44iqphr84nbgw0nfxcspzjgxhc81l1"; depends=[DALEX ggdendro ggplot2 glmnet patchwork]; };
   tripsAndDipR = derive2 { name="tripsAndDipR"; version="0.1.0"; sha256="1gm96fxgql9y08w177nyxw0bahyafcs75maz743a9hfb0gjixvy2"; depends=[]; };
-  triptych = derive2 { name="triptych"; version="0.1.2"; sha256="171wf85hjjdqv5m78galsrqwjri6j62l0kh5ixgrjvglwvlz15iz"; depends=[class cpp11 dplyr geomtextpath ggplot2 ggrepel monotone patchwork pROC purrr rlang scales tibble tidyr tidyselect vctrs]; };
+  triptych = derive2 { name="triptych"; version="0.1.3"; sha256="1ggifvzqa5ifa66mhg0bsv47g54nbih9zg4sbm6m9483wvnsxhhs"; depends=[class cpp11 dplyr geomtextpath ggplot2 ggrepel monotone patchwork pROC purrr rlang scales tibble tidyr tidyselect vctrs]; };
   triversity = derive2 { name="triversity"; version="1.0"; sha256="1bar2bpy8jvj91jmzzdwy6rlvirsbxrzqnx4r825irqhc69gc53r"; depends=[data_tree Matrix]; };
-  troopdata = derive2 { name="troopdata"; version="0.1.5"; sha256="0s86j75jzinrwn1p5z9l13srzhy55mj3hcnbjr89ia1m6kgih6dc"; depends=[dplyr magrittr rlang tibble]; };
+  troopdata = derive2 { name="troopdata"; version="1.0.0"; sha256="0y7rkb2lvv8yy3sl4r0zha873basfbh51gpwcxcqb1ihrn8i8c4c"; depends=[dplyr magrittr rlang]; };
   tropAlgebra = derive2 { name="tropAlgebra"; version="0.1.1"; sha256="1idvhxhw2f6z8iq0nfdj6jmzy8913vid84rvln6rx2dkzw3s9wnl"; depends=[]; };
   trotter = derive2 { name="trotter"; version="0.6"; sha256="0i8r2f2klkkfnjm7jhvga3gx6m7r97pd73d88004jzlm9ficspgy"; depends=[]; };
   trouBBlme4SolveR = derive2 { name="trouBBlme4SolveR"; version="0.1.1"; sha256="0718n2lgwyj8c2cnxs6r6gy41ygv8pl04fnjb07c6jhzr30ndc6l"; depends=[lme4]; };
@@ -19736,6 +20041,7 @@ in with self; {
   trustOptim = derive2 { name="trustOptim"; version="0.8.7.3"; sha256="11cx90zq9987i7kc86kxbip6c75bmw51shlwq2x9ywhybzk8vxl8"; depends=[Matrix Rcpp RcppEigen]; };
   trustedtimestamping = derive2 { name="trustedtimestamping"; version="0.2.6"; sha256="1rx7ypy331mq5ni5hxhqcfnicvwdgg9j2pm3aj097a5hhigibdrq"; depends=[digest httr jsonlite]; };
   tryCatchLog = derive2 { name="tryCatchLog"; version="1.3.1"; sha256="0k40a48qzwmardjnkf0h5s5zryivzvdanz61kxdqdfqlil19ma0d"; depends=[]; };
+  tryr = derive2 { name="tryr"; version="0.1.1"; sha256="0al9kf7jp2c4rp2djgk3qdhvfa9ky5gmmxcw6rc4ifh2xi9sk5gz"; depends=[]; };
   tsBSS = derive2 { name="tsBSS"; version="1.0.0"; sha256="04nsbifc6zkilqifj6iwc0vf2z84y8wcbf8pndgkzi039kk6c385"; depends=[boot BSSprep forecast ICtest JADE Rcpp RcppArmadillo xts zoo]; };
   tsDyn = derive2 { name="tsDyn"; version="11.0.4.1"; sha256="04w7kf66q9bspyh62g8r9xzcb6mj6nd11za63b0h5jyj6rv6kbrq"; depends=[foreach forecast MASS Matrix mgcv mnormt nnet tseries tseriesChaos urca vars]; };
   tsLSTMx = derive2 { name="tsLSTMx"; version="0.1.0"; sha256="12ghcqb85adws6z3587z2pb0bavqf5xs1bvap6g74pw34kzgjyhi"; depends=[AllMetrics keras reticulate tensorflow]; };
@@ -19752,10 +20058,10 @@ in with self; {
   tsdecomp = derive2 { name="tsdecomp"; version="0.2"; sha256="1wy37gjp49dr60s4zhwv19iv3mzr1fjz5yilqmqgy78j5d45ns15"; depends=[]; };
   tsdf = derive2 { name="tsdf"; version="1.1-8"; sha256="00s0aiis88611xsq9px61f9gwprp803wcvi5milvc7qckrh1kw0z"; depends=[]; };
   tsdisagg2 = derive2 { name="tsdisagg2"; version="0.1.0"; sha256="1vjypf9d4rdprpgxfsgpccn412kvar59v341ridq2hcdp7hfb70s"; depends=[]; };
-  tsdistributions = derive2 { name="tsdistributions"; version="1.0.0"; sha256="0nvaf2p02kyvcq63mbpi2534j9jd1nxvxacv89d6m6cy61fbkran"; depends=[data_table future future_apply GeneralizedHyperbolic progressr RcppEigen Rsolnp sandwich SkewHyperbolic TMB tsmethods zoo]; };
+  tsdistributions = derive2 { name="tsdistributions"; version="1.0.1"; sha256="0xhia2w6s0b2zfva2pj58n8vj666ffmmgcbdid9lbgcsy09fsf01"; depends=[data_table future future_apply GeneralizedHyperbolic KernSmooth mev progressr RcppEigen Rdpack Rsolnp sandwich SkewHyperbolic TMB tsmethods zoo]; };
   tsensembler = derive2 { name="tsensembler"; version="0.1.0"; sha256="0amb3dn96hdgy5a0j6s43mf82cdjwbz8dhz3yrjlr07nknxzirzi"; depends=[Cubist doParallel earth foreach gbm glmnet kernlab monmlp pls ranger RcppRoll softImpute xgboost xts zoo]; };
   tsentiment = derive2 { name="tsentiment"; version="1.0.5"; sha256="1sa1xy1v7p166r3sc3mg66zzw72n8vsy8q636knhyl71zzbvacsw"; depends=[dplyr ggplot2 httr reshape2 stringi syuzhet tibble tidytext wordcloud]; };
-  tseries = derive2 { name="tseries"; version="0.10-55"; sha256="03jb2ij4jyhrbygi0gha549vq262kx1ffjmy12rf0gak0qmq5iwp"; depends=[jsonlite quadprog quantmod zoo]; };
+  tseries = derive2 { name="tseries"; version="0.10-56"; sha256="1s7sz95j6mm4708s3hffrnfkmdjgj43gba07wr6v24fg9xygq7m8"; depends=[jsonlite quadprog quantmod zoo]; };
   tseriesChaos = derive2 { name="tseriesChaos"; version="0.1-13.1"; sha256="0qfrrzd0h8n9zp7wj5fl88wkiv22fs5zy8x509g316j0avm5zjr3"; depends=[deSolve]; };
   tseriesEntropy = derive2 { name="tseriesEntropy"; version="0.7-2"; sha256="0zlyzda09q7r5iwfsyrv0qr6xpm1rcwjril85hm3mgb2c55c6v9r"; depends=[cubature ks]; };
   tseriesTARMA = derive2 { name="tseriesTARMA"; version="0.3-4"; sha256="00ch7dg9fia7yh9q502wndi72nhz5ywqhhla9qgpgg08sfj2414f"; depends=[lbfgsb3c mathjaxr Matrix Rdpack Rsolnp rugarch zoo]; };
@@ -19763,6 +20069,7 @@ in with self; {
   tsfgrnn = derive2 { name="tsfgrnn"; version="1.0.5"; sha256="0pbscnz2mr7nnxvgcs7sw3awq78p5r4h0nwwycn6fi7wq7ngpd92"; depends=[ggplot2 Rcpp]; };
   tsfknn = derive2 { name="tsfknn"; version="0.6.0"; sha256="1yw0k2ivx31b4170wf93vvha4jpkapg4sg5j59igiayf750x1j6h"; depends=[ggplot2 Rcpp]; };
   tsfngm = derive2 { name="tsfngm"; version="0.1.0"; sha256="1wx1imbvnc2bjvfal45zhgpz296fiydqffb0rk428xpjgp2dj6p7"; depends=[]; };
+  tsgarch = derive2 { name="tsgarch"; version="1.0.2"; sha256="1hlbz6iycq9fvmcrdf238a48dl9hdpdrvxa5vfz1j28061r3sp8f"; depends=[data_table flextable future future_apply lubridate nloptr numDeriv progressr Rcpp RcppArmadillo RcppEigen Rdpack sandwich TMB tsdistributions tsmethods xts zoo]; };
   tsiR = derive2 { name="tsiR"; version="0.4.3"; sha256="0xzcfdad1z8336wnsrk9sy21psd898wwkdkndq7dshqwp2rj2kxl"; depends=[ggplot2 kernlab reshape2]; };
   tsibble = derive2 { name="tsibble"; version="1.1.4"; sha256="17zdlrp9rfh61q23k21yqzs6q7c0g5r93cxxqa3ig5ibmvhsfsrl"; depends=[anytime dplyr ellipsis generics lifecycle lubridate rlang tibble tidyselect vctrs]; };
   tsibbledata = derive2 { name="tsibbledata"; version="0.4.1"; sha256="1wh0i5rm5cp4f9hqgxjlhbsj3ag6wgdq38fpzc0gdsl84m6xvwnh"; depends=[rappdirs tsibble vctrs]; };
@@ -19775,11 +20082,12 @@ in with self; {
   tsnet = derive2 { name="tsnet"; version="0.1.0"; sha256="14wy4mfzxkigdm3abfybijqicfqxl0gfbf72asadwipaqyw91nf6"; depends=[BH cowplot dplyr ggdist ggokabeito ggplot2 posterior Rcpp RcppEigen RcppParallel rlang rstan rstantools StanHeaders tidyr]; };
   tsoutliers = derive2 { name="tsoutliers"; version="0.6-10"; sha256="0q05bv2y1zrjbzrwrnqs09fi0879lwasjmsy38h6f7l6v2y317hf"; depends=[forecast]; };
   tspmeta = derive2 { name="tspmeta"; version="1.2"; sha256="028jbbd0pwpbjq4r6jcc1h0p7c4djcb9d2mvgzw1rmpphaxjvrkd"; depends=[BBmisc checkmate fpc ggplot2 MASS splancs stringr TSP vegan]; };
-  tspredit = derive2 { name="tspredit"; version="1.0.747"; sha256="0hsh3r2r4g63fjlsasw9iwddxfr5xbghi17kc3arn85jkwr6k9yz"; depends=[daltoolbox DescTools doBy dplyr forecast FSelector glmnet KFAS leaps mFilter smotefamily]; };
+  tspredit = derive2 { name="tspredit"; version="1.0.767"; sha256="0gxsbhigq0qxiw6kx4p7wgqjx7c09qj03w7j6600p2jzaqz959zj"; depends=[daltoolbox DescTools dplyr forecast KFAS mFilter]; };
   tsqn = derive2 { name="tsqn"; version="1.0.0"; sha256="1iv1wwa6a9824dbgfk5a609szppc3a8j250z74hb8csjvwwx9qq9"; depends=[fracdiff MASS robustbase]; };
   tsriadditive = derive2 { name="tsriadditive"; version="1.0.0"; sha256="1zk97vz5ag6j0r8w3b5kgl2cx628jmdy73spmwmsw7x5yc24901d"; depends=[survival]; };
   tsrobprep = derive2 { name="tsrobprep"; version="0.3.2"; sha256="0y7h8kh721r859b7y5vxh4q7dmjlx50qcc6pib204x3hhzv1yyrc"; depends=[glmnet MASS Matrix mclust quantreg Rdpack textTinyR zoo]; };
   tssim = derive2 { name="tssim"; version="0.1.7"; sha256="154snb0npy8zbkspp475nv9rvv1ls6rbgxz3jr152j79vsiis3ng"; depends=[dsa timeDate tsbox xts zoo]; };
+  tstests = derive2 { name="tstests"; version="1.0.0"; sha256="00gjmvg1b7v2cdrv95l9ic9j50wch8y23qxkiqmrp1nznjjicpsy"; depends=[car data_table flextable ks Rdpack tsmethods xts]; };
   tstools = derive2 { name="tstools"; version="0.4.3"; sha256="1wwxbc27yspal4yhck0pw5fz99nck0jdd6hrry90957zyxshyrw7"; depends=[data_table jsonlite xts yaml zoo]; };
   tsutils = derive2 { name="tsutils"; version="0.9.4"; sha256="1jf37asxg4nfm1jhf6q6fjs8dljlqs1r57kr4q38dnz11hz1jsm4"; depends=[forecast MAPA plotrix RColorBrewer]; };
   tsvio = derive2 { name="tsvio"; version="1.0.6"; sha256="0x1b5wf5n5ljx377s1mgrm1ym6wvcvpq1brrxmfv179rhlm2ifzw"; depends=[]; };
@@ -19792,8 +20100,8 @@ in with self; {
   ttbbeer = derive2 { name="ttbbeer"; version="1.1.0"; sha256="1azffcizm3460kxvrxxkilc6qxspyi247x8drrw5ywfichwhmdhc"; depends=[]; };
   ttcg = derive2 { name="ttcg"; version="1.0.1"; sha256="1kha6jp89r8qx5rycwlcl1dprw33j71yng03k9l7q3b7d4lz4bg5"; depends=[numDeriv]; };
   ttdo = derive2 { name="ttdo"; version="0.0.9"; sha256="0i0qw4zxi1cbqzdfxfdrm2vfppiddgsyf795wny6hz03fl416xkp"; depends=[diffobj tinytest]; };
-  tth = derive2 { name="tth"; version="4.12-0-1"; sha256="0sdk519sx8h2l0ggddkwlnh9llrx4fzmvwzdjrbi2bg8zv2y30x1"; depends=[]; };
-  ttservice = derive2 { name="ttservice"; version="0.4.0"; sha256="1qqf6vrp9bx72wzy4z6js2svglix3xpn367k5rh4kqi7k860g8fp"; depends=[dplyr Matrix plotly]; };
+  tth = derive2 { name="tth"; version="4.16-0"; sha256="1yddgyfa6wnvjr2qna86ld4x49mqa2rhkin9rzs6ghl7010l6czf"; depends=[]; };
+  ttservice = derive2 { name="ttservice"; version="0.4.1"; sha256="1r0prv3p3xlcfn16bxjyvkr255rsaf5m26c394qxc78y6qf6wrbd"; depends=[dplyr Matrix plotly]; };
   ttt = derive2 { name="ttt"; version="1.0"; sha256="12bjhp78162v5y64qxfccaqxgwdqhmd3iwjda6pi7j6zqmy9p0gm"; depends=[Formula htmltools knitr]; };
   tttplot = derive2 { name="tttplot"; version="1.1.1"; sha256="0rmgp1888y07w0h8kwq1azpr6bysjq4pyjf6ygpra75jj4563wx9"; depends=[]; };
   ttutils = derive2 { name="ttutils"; version="1.0-1.1"; sha256="01lmnlyj6pn2r73hhr57r9c83h3pw9x506h4dj09wmlgrzv4w30a"; depends=[]; };
@@ -19804,19 +20112,19 @@ in with self; {
   tufterhandout = derive2 { name="tufterhandout"; version="1.2.1"; sha256="04fvvbx69a28nk7i4wz5ynamz1yvsa2ibz542r1xaq1ikk0ywqbw"; depends=[knitr rmarkdown]; };
   tukeytrend = derive2 { name="tukeytrend"; version="0.7"; sha256="15j7g0drb92rpxq7d0jl9h0hxpi9pbgpvfcxaicrcgypxap3721q"; depends=[lme4 Matrix mgcv multcomp nlme pbkrtest]; };
   tumgr = derive2 { name="tumgr"; version="0.0.4"; sha256="1ylfmrsg177g75l2scjpgw6v4dpz62r7cy89pql9zd5zqy167xqj"; depends=[minpack_lm]; };
-  tune = derive2 { name="tune"; version="1.2.0"; sha256="1z5id7mp9yknxz4lbb0304wn47ii61zmds3grffc4q84v3d9gb76"; depends=[cli dials doFuture dplyr foreach future generics ggplot2 glue GPfit hardhat lifecycle parsnip purrr recipes rlang rsample tibble tidyr tidyselect vctrs withr workflows yardstick]; };
-  tuneR = derive2 { name="tuneR"; version="1.4.6"; sha256="1l270rk1m3967fvgpshrbd71l7ns74wdhivbmavayk68dnsiyi65"; depends=[signal]; };
+  tune = derive2 { name="tune"; version="1.2.1"; sha256="1qb4ncadq10pzy8xhkpgg06raahbv6n8002wdjdh4jlv73hsk6ki"; depends=[cli dials doFuture dplyr foreach future generics ggplot2 glue GPfit hardhat lifecycle parsnip purrr recipes rlang rsample tibble tidyr tidyselect vctrs withr workflows yardstick]; };
+  tuneR = derive2 { name="tuneR"; version="1.4.7"; sha256="02lnnsh2r22qg54ygdjjpd6986gqr5r3qbzxxrz34lq98jh58h9n"; depends=[signal]; };
   tuneRanger = derive2 { name="tuneRanger"; version="0.7"; sha256="17hsqwg4h2pjns4bx3yjrkml8yn1vdxarf8lc4g9d4z01k4m7jk8"; depends=[BBmisc DiceKriging lhs mlr mlrMBO ParamHelpers ranger smoof]; };
   tuple = derive2 { name="tuple"; version="0.4-02"; sha256="0fm8fsdfiwknjpc20ivi5m5b19r9scdxhzij70l8qi3ixw1f0rnk"; depends=[]; };
   turboEM = derive2 { name="turboEM"; version="2021.1"; sha256="17j308qla2680k0j8cf2c4v1jlsm21z93zglncmw3n0isa7cwjly"; depends=[doParallel foreach iterators numDeriv quantreg]; };
-  turkeyelections = derive2 { name="turkeyelections"; version="0.1.1"; sha256="07plalp9f7vxb49h1b0waqa6dxgrami4bw3i34mp0wx563mcs7sl"; depends=[dplyr ggparliament ggplot2 stringr]; };
-  turner = derive2 { name="turner"; version="0.1.7"; sha256="1xckb750hbfmzhvabj0lzrsscib7g187b44ag831z58zvawwh772"; depends=[tester]; };
-  tutorial_helpers = derive2 { name="tutorial.helpers"; version="0.2.6"; sha256="1pqw8gw29gjlsvpiv0n4a0gjcf1d0pdarv0kjxpb495cibl2m09y"; depends=[dplyr gridExtra learnr parsermd purrr readr rmarkdown rstudioapi shiny stringr tibble]; };
+  turkeyelections = derive2 { name="turkeyelections"; version="0.1.2"; sha256="0jngbrz147h3adlbvz6dzr8194g1n27iixpnnhllvip7jc19lb85"; depends=[colorRamp2 dplyr ggplot2 ggpol stringr]; };
+  turner = derive2 { name="turner"; version="0.1.9"; sha256="0qcf018k7kz84hpwp3i3fv270kjb9id1dh8rqcvnmaqn1jy829hq"; depends=[tester]; };
+  tutorial_helpers = derive2 { name="tutorial.helpers"; version="0.2.7"; sha256="0r8dadwd6gcvbcyy7kj0l0n8rmbmjfjg3d31pjlfmmgbv0ax21hc"; depends=[dplyr gridExtra learnr parsermd purrr readr rmarkdown rstudioapi shiny stringr tibble]; };
   tv = derive2 { name="tv"; version="2.0.2"; sha256="152yigfmfwwsykh8v2y86cl1ybz4p17msxcva8iiqg0ijnhrxhg2"; depends=[dplyr lubridate magrittr rlang]; };
   tvR = derive2 { name="tvR"; version="0.3.2"; sha256="1i20z09f714fyn3ipcn9i5g4dx7cyjfkyjqzyqzqapkg0m9ny91m"; depends=[Matrix Rcpp RcppArmadillo Rdpack]; };
   tvReg = derive2 { name="tvReg"; version="0.5.9"; sha256="0viv485l2b93j72274h9m3dkrm2ah0kn37pgbxby3ajg2gi86bh9"; depends=[bvarsv MASS Matrix plm systemfit vars]; };
   tvem = derive2 { name="tvem"; version="1.4.1"; sha256="09kcz30nh2yaj1cvldvksx6sjhh1ny2ba0n16k34np8ar4ppcb91"; depends=[mgcv]; };
-  tvgarch = derive2 { name="tvgarch"; version="2.4.1"; sha256="17cnk855c4y5bxxnhhi05vjrppw5bbarnrhkasza3ygbnm77cmsd"; depends=[garchx numDeriv zoo]; };
+  tvgarch = derive2 { name="tvgarch"; version="2.4.2"; sha256="1f7ylwq3988kqd765768b3qcwk6mrrlhjlfq10yifn3040wpgx8w"; depends=[garchx numDeriv zoo]; };
   tvgeom = derive2 { name="tvgeom"; version="1.0.1"; sha256="1lr2vqgj5jfhzavwd43wcchhbicmf4dqjvyf66rvnjkw3jaig8dm"; depends=[]; };
   tvm = derive2 { name="tvm"; version="0.5.2"; sha256="0kswqml9h12mvs6q48vibq8qd3l9dd9nxi8lmp90cxd4hkmg6vgw"; depends=[ggplot2 reshape2 scales]; };
   tvmComp = derive2 { name="tvmComp"; version="1.0.2"; sha256="1q5c3ahdjjz4h19pwq0dpasv87mzbyqs0hadlfx7mpmncdgyqcqq"; depends=[Rdpack]; };
@@ -19859,7 +20167,7 @@ in with self; {
   uGMAR = derive2 { name="uGMAR"; version="3.4.5"; sha256="01zs919b24qb102qf9m19x0zzyg7yx8v8w674awzfk4lvm27d2aq"; depends=[Brobdingnag gsl pbapply]; };
   uHMM = derive2 { name="uHMM"; version="1.0"; sha256="1516ipadxi7rc1dbinr5rva2fbcr5i2zg3rlli5wy7r6naf8fzzl"; depends=[chron class cluster clValid corrplot FactoMineR HMM tcltk2 tkrplot]; };
   uaparserjs = derive2 { name="uaparserjs"; version="0.3.5"; sha256="0v24smgsz1p2wa23mc2llx7dycwmgf7zyxdhwxgwplabpmy3xzhl"; depends=[progress V8]; };
-  uavRmp = derive2 { name="uavRmp"; version="0.6.2"; sha256="0jv0ls8wbxciv6lhr7qvzarg4s3gckkc1n4w833sfpr0sk4gakaj"; depends=[brew data_table exifr geosphere jsonlite link2GI log4r rlist sf sp zoo]; };
+  uavRmp = derive2 { name="uavRmp"; version="0.7"; sha256="1bv5979x3c3vbls40vih83mm29cq7yjv37w544cg63sml2k2bj3v"; depends=[brew concaveman data_table dplyr exifr geosphere jsonlite link2GI log4r rlist sf sp spatialEco terra xfun zoo]; };
   ubiquity = derive2 { name="ubiquity"; version="2.0.3"; sha256="1w1agdarsh45zf66cbczvippzk3f0ns5dajfbr1181j274f39rnh"; depends=[cli deSolve digest doParallel dplyr flextable foreach ggplot2 knitr magrittr MASS onbrand optimx PKNCA pso readxl rhandsontable rmarkdown scales shiny stringr]; };
   ubms = derive2 { name="ubms"; version="1.2.6"; sha256="10jr2nb8pq0rxx1h0zci4zybbj108maa5kdzgf9bj87pzsrxhda7"; depends=[BH ggplot2 gridExtra lme4 loo Matrix pbapply Rcpp RcppArmadillo RcppEigen RcppParallel rlang RSpectra rstan rstantools StanHeaders unmarked]; };
   uci = derive2 { name="uci"; version="0.3.0"; sha256="0bqyj69xplr8hbc1b9rpjxvzmnhwkqy2xdyd4my53niq2gm55750"; depends=[checkmate cppRouting data_table fields furrr future pbapply sf spdep]; };
@@ -19881,12 +20189,13 @@ in with self; {
   ukgasapi = derive2 { name="ukgasapi"; version="0.21"; sha256="1acl04bm8f2hgi26mpmzcwp44yv9zxarzw4r4k20b367k8g9rh8a"; depends=[httr XML]; };
   uklr = derive2 { name="uklr"; version="1.0.2"; sha256="1x5lfzb0a64k84dscdj61kcibww8mizf9w62anmb207f8dggj7lg"; depends=[curl httr jsonlite tibble]; };
   ukpolice = derive2 { name="ukpolice"; version="0.2.2"; sha256="1dwwixhiarlpdss7rhiamzcsl1k2yphgmjzh7wn2my4vxj06817l"; depends=[httr jsonlite purrr snakecase tibble]; };
+  ulid = derive2 { name="ulid"; version="0.4.0"; sha256="1g227bslfb4ffm2s0s6yblss4449kkpgq7cndcd5nmg5h48dxh4q"; depends=[Rcpp]; };
   ulrb = derive2 { name="ulrb"; version="0.1.3"; sha256="0xwlj8cc7y4p51r0p46bz1ac7klrl2b9h7cr704d0cpvcwy11y7f"; depends=[cluster clusterSim dplyr ggplot2 gridExtra purrr rlang tidyr]; };
   umap = derive2 { name="umap"; version="0.2.10.0"; sha256="1abfddi0rq75b7nlx6550fx9nrqa62vb92xyp05ris25jf98ciwd"; depends=[Matrix openssl Rcpp reticulate RSpectra]; };
   umbridge = derive2 { name="umbridge"; version="1.0"; sha256="0p49mwi8qy90vb5xbv6w97sjv373cmp26vkk5y1nacqx6g6yvc5f"; depends=[httr2 jsonlite magrittr]; };
   umiAnalyzer = derive2 { name="umiAnalyzer"; version="1.0.0"; sha256="147x48mr9mj0njwbz39876795rninvk89zm9immkppdm4s5g1ghf"; depends=[BiocManager dplyr DT forcats ggplot2 gridExtra magrittr pheatmap plotly readr Rsamtools scales shiny shinydashboard shinyFiles shinyWidgets stringr tibble tidyr viridis]; };
   ump = derive2 { name="ump"; version="0.5-8"; sha256="1sg226caq9y41cwl7wr5s9z3bpq2j5p6rj6fy2pasbzimgzw0byx"; depends=[]; };
-  umx = derive2 { name="umx"; version="4.19.0"; sha256="0cp482g025ivhkxsj9zdyp3abcn4nyiy5psh0w4vvspgb5lvghs5"; depends=[cowplot DiagrammeR foreign gert ggplot2 hrbrthemes kableExtra knitr lavaan MASS Matrix MuMIn mvtnorm nlme OpenMx openxlsx paran polycor psych psychTools pwr R2HTML RCurl rmarkdown scales xtable]; };
+  umx = derive2 { name="umx"; version="4.20.0"; sha256="1b0xkwy9b8sq686smjjl08wmvijnkvm0rh3gy31lamcbw7k0b60w"; depends=[cowplot DiagrammeR foreign gert ggplot2 hrbrthemes kableExtra knitr lavaan MASS Matrix MuMIn mvtnorm nlme OpenMx openxlsx paran polycor psych psychTools pwr R2HTML RCurl rmarkdown scales xtable]; };
   unbalhaar = derive2 { name="unbalhaar"; version="2.1"; sha256="0fgnvl9ammawgm5nf2icw64yzivqw7sl07dpvrsb5rypvrm8d040"; depends=[]; };
   uncertainty = derive2 { name="uncertainty"; version="0.2.0"; sha256="1mq14ny7l3gy3wjsqijnm37azavyapxszjnckd861h4hgcpdcdjz"; depends=[mvtnorm triangle]; };
   uncmbb = derive2 { name="uncmbb"; version="0.2.2"; sha256="0szlz52p0ywl8526mhm0i0pk1vx72kc3474cx0w47xxig83a1j9b"; depends=[dplyr rlang]; };
@@ -19895,24 +20204,23 @@ in with self; {
   unglue = derive2 { name="unglue"; version="0.1.0"; sha256="0w8ld4xllx0lj1jz8i2sj92f8136hlwri1d8ldpg1ymxj7aw93vg"; depends=[]; };
   ungroup = derive2 { name="ungroup"; version="1.4.4"; sha256="12dqhysz26l1jrnf4sz43hdpsxch8g1iah7cxsx7rcac42lhzwdk"; depends=[Matrix pbapply Rcpp RcppEigen Rdpack]; };
   unhcrthemes = derive2 { name="unhcrthemes"; version="0.6.2"; sha256="1qi3clng771mzbaa4j6a80wn6am0fl2gix2xdmy3d6ygrrgkgd7r"; depends=[extrafont ggplot2 ggrepel ggtext scales systemfonts]; };
-  unheadr = derive2 { name="unheadr"; version="0.3.3"; sha256="1870nn28d7yf9ag31hvhvq00jms4fywjddsk3yd645dhvkr4afcs"; depends=[dplyr forcats magrittr readxl rlang stringr tibble tidyr tidyxl]; };
+  unheadr = derive2 { name="unheadr"; version="0.4.0"; sha256="1p5dl3906gbaszvny33gj56phqcclnj1c73lmnz6l1b1h5xahyw0"; depends=[dplyr forcats magrittr readxl rlang stringr tibble tidyr tidyxl]; };
   uni_survival_tree = derive2 { name="uni.survival.tree"; version="1.5"; sha256="1brkppsk7likpffzz0ykhqxw99qin57zzcjcib2fcdn3n8gpwq7w"; depends=[compound_Cox survival]; };
   uniReg = derive2 { name="uniReg"; version="1.1"; sha256="0wjc7pgaisvk26j7grxp2ypsabb5my9wg6c9i5w9zhh5jdx1fdab"; depends=[DoseFinding MASS mvtnorm quadprog SEL]; };
   uniah = derive2 { name="uniah"; version="1.2"; sha256="0hv7zgj55am1mlb8vl8k690z641lwsnsxdcvg7zzkhfpj58p7wai"; depends=[ahaz Iso survival]; };
-  unicol = derive2 { name="unicol"; version="0.2.0"; sha256="0fxndcj3x60nv934xkxkc10ws7lah5rv8r264inqs1fbhqjrrln6"; depends=[unikn]; };
+  unicol = derive2 { name="unicol"; version="0.3.0"; sha256="07fxp7gh8sbvr88b4a0kllqskd88w7xfawj6y6gjkgmhn5ykmxx0"; depends=[unikn]; };
   unifDAG = derive2 { name="unifDAG"; version="1.0.4"; sha256="0h620q5cy6x4f7fnf65vq6xjyjk1frc2b0sbia5da2y1ppk4y48a"; depends=[gmp graph]; };
   unifed = derive2 { name="unifed"; version="1.1.6"; sha256="0wy2hasgkzw08l50qq30wb62i1q4skc3zccipv8pm911qlldk3sr"; depends=[]; };
   unifir = derive2 { name="unifir"; version="0.2.4"; sha256="02d9h1yalha7b7bdsjqpq1xa3gg0spfk42q2wxv1bjsizzbnbq2r"; depends=[glue proceduralnames R6]; };
   uniformly = derive2 { name="uniformly"; version="0.5.0"; sha256="05zhx5a3ka3xa3h2j2dc17q7alq3zcnahvzbngyrz5ri0q3w1l5l"; depends=[abind pgnorm rgl]; };
-  unigd = derive2 { name="unigd"; version="0.1.0"; sha256="0519v2p4jzfpilai022blvyxi56kfdidafwjpa1g6lnmwmpk4isq"; depends=[cpp11 systemfonts]; };
-  unikn = derive2 { name="unikn"; version="0.9.0"; sha256="040wqf8hnbvij8b044q7akzhd9dkb6k4fcv1dfn9cahqpmlgb02l"; depends=[cli ggplot2]; };
+  unigd = derive2 { name="unigd"; version="0.1.2"; sha256="0iykjsfi8rjayrb4nhnm8ifdlsaxr7918bk6ackgfj1qz5g33wr7"; depends=[cpp11 systemfonts]; };
+  unikn = derive2 { name="unikn"; version="1.0.0"; sha256="1h8d6m1dvck2ps2kqiv2b8i6sw3gm799bimmcq86k93m0515vpbf"; depends=[cli ggplot2]; };
   unine = derive2 { name="unine"; version="0.2.0"; sha256="051dk8fss19h4d9815a7994krr1s3n5q0pxq9gir6zns0vvn05pw"; depends=[Rcpp]; };
   uniqtag = derive2 { name="uniqtag"; version="1.0.1"; sha256="0vmd5w4p2qvpg6djddl92q9d3c6kiq0rjv6hq6j7x1b1zwqhgfi5"; depends=[]; };
   unisensR = derive2 { name="unisensR"; version="0.3.3"; sha256="1pqfb8i3rj64l9hh1bn9mm78wlfqphgrlp7zrydznqy88f4jwgvy"; depends=[hexView vroom XML]; };
   uniset = derive2 { name="uniset"; version="0.3.1"; sha256="1lpwsx1l6x186aj7wl5kvfmc5mp4g95p5h69alg8dn1sns84zqjs"; depends=[easycsv]; };
-  uniswappeR = derive2 { name="uniswappeR"; version="0.6.1"; sha256="0vsw2jvp3gndjrl7v9fndpaqx4kryf4szsz1si1cx1rxhqvlsf92"; depends=[dplyr ggplot2 ghql jsonlite lubridate patchwork purrr reticulate rlang scales tidyr]; };
   unitedR = derive2 { name="unitedR"; version="0.4"; sha256="0h4i814awb8419693jz3x5cyhs2x6y5flmz339bg6ivmg13d9h3s"; depends=[plyr]; };
-  unitizer = derive2 { name="unitizer"; version="1.4.20"; sha256="0s2jgvxdlz95ykdz3mwy6l5iry74qyv716d6fz18jxnixcx6vyss"; depends=[crayon diffobj]; };
+  unitizer = derive2 { name="unitizer"; version="1.4.21"; sha256="0xr9xf5ams0j9vxgn1p0gm9yzq4g2il9q8qqlsic5v75gp3nj2g1"; depends=[crayon diffobj]; };
   unitquantreg = derive2 { name="unitquantreg"; version="0.0.6"; sha256="087d4v5fpiznl37frjg6c01bfgvx3vx0yw8cnbm3wsdj9dak94ym"; depends=[Formula MASS numDeriv optimx quantreg Rcpp]; };
   units = derive2 { name="units"; version="0.8-5"; sha256="1c836qazrs8z9p1xkcfl9gl882i8q7qf2g73l483w18bfspq0pnr"; depends=[Rcpp]; };
   unittest = derive2 { name="unittest"; version="1.6-1"; sha256="1y035zj23am2d6cmfz93nyflwwivfy5lq4m5d17yb6s1lir057pn"; depends=[]; };
@@ -19920,7 +20228,7 @@ in with self; {
   unival = derive2 { name="unival"; version="1.1.0"; sha256="0j7fl77my2273k72s8k9v5pcb85swxfipjxmk4vw487i7aq8b1nq"; depends=[psych]; };
   univariateML = derive2 { name="univariateML"; version="1.1.1"; sha256="0a4h19hmw0k2x5yqs92xp48r2srycv4sax97p7gci8hahjw8qzdf"; depends=[actuar assertthat extraDistr fGarch logitnorm nakagami tibble]; };
   universals = derive2 { name="universals"; version="0.0.5"; sha256="1038x1ymzyiim7gdz09hrs8i0qdzya0p0c5l7y3kgw1a4if2zhmj"; depends=[]; };
-  unix = derive2 { name="unix"; version="1.5.7"; sha256="11h8z2k2p42kjj76wx4gj9ghgd5z0gc0lxs8h6y1ikprgy5xaw32"; depends=[]; };
+  unix = derive2 { name="unix"; version="1.5.8"; sha256="0jjy4vhxvyd7i85g50xz392m7blqai8crfrnyf7kbgzkbibr7jb0"; depends=[]; };
   unjoin = derive2 { name="unjoin"; version="0.1.0"; sha256="1hp9fxkb59z0cpnwxpaf5whglrljg2nrmsygdb98klxsama9gr5z"; depends=[dplyr rlang tibble]; };
   unmarked = derive2 { name="unmarked"; version="1.4.1"; sha256="1ishwzqkkvin7vralpxnb2fdc75gvsxz1l5b9902y4h0mm4749qw"; depends=[lattice lme4 MASS Matrix Rcpp RcppArmadillo RcppEigen TMB]; };
   unmconf = derive2 { name="unmconf"; version="0.1.0"; sha256="1cs9kjyq4s6s48ck1wg7piy9r9f6s27kiawzpv6mb514z09gvgr7"; depends=[glue janitor rjags]; };
@@ -19944,7 +20252,7 @@ in with self; {
   uptimeRobot = derive2 { name="uptimeRobot"; version="1.0.0"; sha256="1sbr0vs6jqcyxjbs7q45bsfdnp3bc59phw0h3fwajqq1cxjgzdww"; depends=[plyr RCurl rjson]; };
   ura = derive2 { name="ura"; version="1.0.0"; sha256="18gs49hcmii951f995ch1sbk69lpf458halff539l8birv26q70d"; depends=[dplyr irr magrittr rlang tibble tidyr]; };
   urbin = derive2 { name="urbin"; version="0.1-12"; sha256="18zskhpcngpw0zanya88l8znhbac5f7a89kq231w59yml9ll7y52"; depends=[]; };
-  urca = derive2 { name="urca"; version="1.3-3"; sha256="1wg9f691pif59xds43gnnw77mmzc9xpnhhvaksk2b0szffvaifj3"; depends=[nlme]; };
+  urca = derive2 { name="urca"; version="1.3-4"; sha256="05nb1an5a8r0w6gca6cf40nws2v4hxhznz8kyfm7q7hz0kjnqggy"; depends=[nlme]; };
   urlchecker = derive2 { name="urlchecker"; version="1.0.1"; sha256="06034lb94krbzawqg5xklwcksvyyzl3qy355f66baj5pw7dms5k2"; depends=[cli curl xml2]; };
   urlshorteneR = derive2 { name="urlshorteneR"; version="1.5.7"; sha256="0zfvcwcy2ykvkbnqgxhzxf99shcby81cx8fjbmy6b07rj9407arj"; depends=[assertthat cli clipr httr jsonlite lubridate miniUI shiny stringr]; };
   urltools = derive2 { name="urltools"; version="1.7.3"; sha256="04x3my655dd287cbsszbnf75q0swmjlxxrblcsay7a8n3df3a830"; depends=[Rcpp triebeard]; };
@@ -19955,10 +20263,10 @@ in with self; {
   uscoauditlog = derive2 { name="uscoauditlog"; version="1.0.3"; sha256="156by8lans2jk8kjll88ljc6z5idgvqwkvrgdwjkr4l4xnsz0sif"; depends=[openxlsx readxl stringr]; };
   usdampr = derive2 { name="usdampr"; version="1.0.1"; sha256="0x84hzsylg22jhvhn4xhkzv4g8j17g73cpj274n7f8cwzcmpj9sx"; depends=[dplyr httr jsonlite tidyr]; };
   usdarnass = derive2 { name="usdarnass"; version="0.1.0"; sha256="10fh9anpmbb7i70q3hjxbplrkqa1q86zgh8nldsf2i526p62hpm1"; depends=[httr jsonlite readr]; };
-  usdata = derive2 { name="usdata"; version="0.2.0"; sha256="1gnd662v6vcmjvj18c1p61q8lxahkyxnk5dbvf26j6z4jvbhk975"; depends=[tibble]; };
+  usdata = derive2 { name="usdata"; version="0.3.1"; sha256="0b6q733l5mrkdbxi9h9gpzz19pmr3c5phigrmmp6fas8gnsm3b3c"; depends=[tibble]; };
   usdm = derive2 { name="usdm"; version="2.1-7"; sha256="1mr728wmi37kj8m47wjlkc23ifv4rk2fyypyj8rqkpwml5nwjprh"; depends=[raster terra]; };
   usedist = derive2 { name="usedist"; version="0.4.0"; sha256="0ddf1zcalbrn293qmr9kdzz3x16fzc4k1bwb1pjmwnspisqfi8kj"; depends=[]; };
-  usedthese = derive2 { name="usedthese"; version="0.3.3"; sha256="0frdjwqhxkvhahm22vvcyfr464i3mi10y1ynm3k98zypcgp0lkdx"; depends=[conflicted dplyr highr kableExtra knitr purrr readr rlang stringr tibble tidyr tidyselect withr]; };
+  usedthese = derive2 { name="usedthese"; version="0.4.0"; sha256="0qzhydj0i6cg2w8qfgabx10vqfzkfhv7vq8qds6d624c3ayc653h"; depends=[conflicted dplyr highr kableExtra knitr purrr readr rlang stringr tibble tidyr tidyselect withr]; };
   useful = derive2 { name="useful"; version="1.2.6.1"; sha256="1gb9hqvbm6pr56dfqlsgz26lan7xargfsm8jpdja18mpgli2gyvc"; depends=[assertthat dplyr ggplot2 magrittr Matrix plyr purrr scales]; };
   usefun = derive2 { name="usefun"; version="0.5.0"; sha256="1gpyix8xpn4jmfjrycan6r1qvp7z7mhcngp02fcws6k2hvd7jajr"; depends=[dplyr PRROC]; };
   usemodels = derive2 { name="usemodels"; version="0.2.0"; sha256="1dc74v4dnbj532cdphskm0y7sqgq1q4yzq634dbvq2bjpqdzf3si"; depends=[cli clipr dplyr purrr recipes rlang tidyr tune]; };
@@ -19969,7 +20277,7 @@ in with self; {
   uskewFactors = derive2 { name="uskewFactors"; version="2.0"; sha256="0ndi5987ak8sa7krgiglsibfg0k7z9j8fg47hg1m8ar0sq4r1yj6"; depends=[MASS MCMCpack mvtnorm tmvtnorm]; };
   usl = derive2 { name="usl"; version="3.0.3"; sha256="0hql4bc40xa62r465lm4x14yf8dbhsl046i5k8xlq1qr93cw6pnx"; depends=[nlsr]; };
   usmap = derive2 { name="usmap"; version="0.7.1"; sha256="04fw3k9h11av7idn8cvcphq7wncgp9pf7mrrdb2a63wirlgd14w6"; depends=[rlang usmapdata]; };
-  usmapdata = derive2 { name="usmapdata"; version="0.2.2"; sha256="05v4332q4fjw145m4gbp79pzn4y0m1xskk1qfdgqmrfk5zxysw5w"; depends=[rlang sf]; };
+  usmapdata = derive2 { name="usmapdata"; version="0.3.0"; sha256="0bvsx7d7k2fjffmwjwrb0l5qwfga2px1ahaqkbg3bgq0vcpzbx2i"; depends=[rlang sf]; };
   ussherR = derive2 { name="ussherR"; version="1.10"; sha256="0awhric6xrhgv4wb9saq7jyikd3h74i6vlq3aqip4i1m9j3ym3k1"; depends=[]; };
   ustfd = derive2 { name="ustfd"; version="0.4.4"; sha256="1s4qwfjjy0x9hwhfgxx2f1fjwf09dx6m3z3x3mhmpxxgw5arzn5y"; depends=[dplyr glue httr lubridate purrr readr rlang snakecase stringr tibble]; };
   ustyc = derive2 { name="ustyc"; version="1.0.0"; sha256="1267bng2dz3229cbbq47w22i2yq2ydpw26ngqa1nbi3ma6hwqsv4"; depends=[plyr XML]; };
@@ -19984,7 +20292,7 @@ in with self; {
   utiml = derive2 { name="utiml"; version="0.1.7"; sha256="16l64scyipj7plwyv6whv3h040sgvzxx43jhjxyhrcdci4pqwh94"; depends=[mldr ROCR]; };
   uuid = derive2 { name="uuid"; version="1.2-0"; sha256="1z9a4b7hkymkwjq69d00myy5xw8kl9g99f4m2y4lxqqjz0a0lwbk"; depends=[]; };
   uwedragon = derive2 { name="uwedragon"; version="0.1.0"; sha256="00rrklym9ms74ad58cbn4xkibp8k5d12kcrnb68x7b27grvgfnqf"; depends=[gtools]; };
-  uwot = derive2 { name="uwot"; version="0.1.16"; sha256="0j4f7vnb3mwf6p4nhg2limy7i32qrcj2gxbs8wsq9c6xxpcs0qsz"; depends=[dqrng FNN irlba Matrix Rcpp RcppAnnoy RcppProgress]; };
+  uwot = derive2 { name="uwot"; version="0.2.2"; sha256="1lbckamb2hk24qxcvchdfid982cvcz64j9hvdnrx8c4ms91qr4yr"; depends=[dqrng FNN irlba Matrix Rcpp RcppAnnoy RcppProgress RSpectra]; };
   uxr = derive2 { name="uxr"; version="0.2.0"; sha256="0zq89xjbmbc4pmzb3w8frnrqafpxbj2s8lhgj7kvmf6k0yqvpyd3"; depends=[cli dplyr huxtable magrittr purrr rlang scales stringr tibble tidyr]; };
   vDiveR = derive2 { name="vDiveR"; version="1.2.1"; sha256="1rxygl5micg07p7la9wyvp4dmfwkjdbhqp660mrq6a3drr4x5bj2"; depends=[dplyr DT gghalves ggplot2 ggpubr ggtext gridExtra magrittr maps plyr readr rentrez rlang scales stringr tidyr]; };
   vICC = derive2 { name="vICC"; version="1.0.0"; sha256="13lcs7wwj1xfbjf3q7r8ssf00jg5hr1vjp2pyw0r42iz7mx47xjv"; depends=[coda ggplot2 nlme Rdpack rjags]; };
@@ -20008,12 +20316,13 @@ in with self; {
   validateIt = derive2 { name="validateIt"; version="1.2.1"; sha256="16lcbn853rfnyh8hlvjdxh4abx6wkzsn876fh4mlfkpbcrnmp0ps"; depends=[here pyMTurkR rlang SnowballC tm]; };
   validatesuggest = derive2 { name="validatesuggest"; version="0.3.2"; sha256="0pp2zan5ri3bh4ianqdzgylwbq53n7zcd3pxk85rrqx0jxyj3fy9"; depends=[rpart validate whisker]; };
   validatetools = derive2 { name="validatetools"; version="0.5.2"; sha256="16pgqk96daz0dgsq2r9kfl6mkc4fffkai0ir1sh2js9v6d5c74k0"; depends=[lpSolveAPI validate]; };
+  validmind = derive2 { name="validmind"; version="0.1.1"; sha256="1rj93fgkix3xr1lla286whf06pnhs0n9hz23s85yn9155f7xgndk"; depends=[base64enc dplyr DT glue htmltools plotly reticulate rmarkdown]; };
   valmetrics = derive2 { name="valmetrics"; version="1.0.0"; sha256="1fdaljdfvfmqarxdyjs9pcd8ji2z9i379vcxf65jvnhiaqlsms57"; depends=[]; };
   valorate = derive2 { name="valorate"; version="1.0-1"; sha256="06vczszpkipsxfs7h6ld33vvxb5ci62rwg3cglwy3lcfifhbnsfi"; depends=[survival]; };
   valottery = derive2 { name="valottery"; version="0.0.1"; sha256="0rlv8agm9ng4jcb9ixqifh7kjczvkx7047brq8yf9kg7rb8mzgpz"; depends=[]; };
-  valr = derive2 { name="valr"; version="0.7.0"; sha256="038s5n8cbffpb9132rpw7q82cxfzlsc86fcywhv63c8szm5g9nrk"; depends=[broom cli dplyr ggplot2 lifecycle Rcpp readr rlang rtracklayer stringr tibble]; };
-  valse = derive2 { name="valse"; version="0.1-0"; sha256="0l3fdsgrmalifcxscjsxsfq07v8vipg0rdw6xh94q7xw5gdfsms0"; depends=[cowplot ggplot2 MASS reshape2]; };
+  valr = derive2 { name="valr"; version="0.8.1"; sha256="1pp8naglh26yi8c2p15arx8jkj3jyslzw7j3n5bnzngdpfprk3as"; depends=[broom cli dplyr ggplot2 lifecycle Rcpp readr rlang rtracklayer stringr tibble]; };
   valueEQ5D = derive2 { name="valueEQ5D"; version="0.7.2"; sha256="1w1l07s1rfxc1ba6kdq0l1vmb2qib6gmdm91706cmy1azfa92n4d"; depends=[testthat]; };
+  valueSetCompare = derive2 { name="valueSetCompare"; version="1.0.0"; sha256="06cb1hz1gp5gzbxbnv7306fyvvczggnaclab9llsbvfnmacbc2k5"; depends=[dplyr eq5dsuite ggplot2 rlang]; };
   valuemap = derive2 { name="valuemap"; version="2.0.4"; sha256="1mmk60njwbylgp3nn5lkbkvyw6xkq4gg9k18smjlr47ys6bn6k4p"; depends=[devtools dplyr h3jsr htmltools leaflet sf]; };
   vamc = derive2 { name="vamc"; version="0.2.1"; sha256="04kkli4xzf3gzvs215lzch8bl877cdq3awh3mz1k321zhsa1d0jn"; depends=[Rdpack]; };
   vampyr = derive2 { name="vampyr"; version="1.1.1"; sha256="137sdv4shmjg1cpndjknrys2jkvyq3p9l11nrdh0bzp9xxc1wkh1"; depends=[corpcor EFA_MRFA fungible GPArotation lavaan moments PCovR psych semPlot]; };
@@ -20021,7 +20330,7 @@ in with self; {
   vangogh = derive2 { name="vangogh"; version="0.1.1"; sha256="1ny4dgwkk54pgwgg3lwcv8vcdnizlajdck68ihpzh2s1yz4n38bm"; depends=[ggplot2]; };
   vannstats = derive2 { name="vannstats"; version="1.3.4.14"; sha256="0fzs2w2rqmdl4a595xi34l7b0sw68yik3yv4mxzqfznwsxiaj8m4"; depends=[dplyr formula_tools gdata ggplot2 ggpubr ggrepel gplots plm purrr rlang rstatix stringr]; };
   vanquish = derive2 { name="vanquish"; version="1.0.0"; sha256="01di1j36npl7vnyhgsagvyf6j8bxcw867dwf9dgi7l1328s7lf0l"; depends=[changepoint e1071 ggplot2 VGAM]; };
-  vapour = derive2 { name="vapour"; version="0.9.5"; sha256="0m4mqx3chd7w98ky6man0ynvh7i310bw0bk5gg1cs4gm2myzs20p"; depends=[jsonlite nanoarrow Rcpp]; };
+  vapour = derive2 { name="vapour"; version="0.10.0"; sha256="18icwn62mpjjrfn7y19svyipq1xziz3vag5vmgp7wxy5i8q5kvch"; depends=[jsonlite Rcpp]; };
   varEst = derive2 { name="varEst"; version="0.1.0"; sha256="0i6nsxl5w4zipzrmdvx8plmxr33n405w2qhks3s7zzs3kcys32v6"; depends=[caret glmnet lm_beta SAM]; };
   varImp = derive2 { name="varImp"; version="0.4"; sha256="1bxlfqxi8iiv6raawl9668yhlmbak96ahd0ljzwrilnciqbclc2b"; depends=[measures party]; };
   varSel = derive2 { name="varSel"; version="0.2"; sha256="05dk2s4lzd4sxrwsfs2yqsj08qrdrfwx1fs07nb9a8sd0in6vlpj"; depends=[]; };
@@ -20038,7 +20347,7 @@ in with self; {
   variables = derive2 { name="variables"; version="1.1-1"; sha256="13hji43m9nb7rpc8p4bz1qva5jhxwdk16mcprvhb5pxp78w7clyf"; depends=[]; };
   varian = derive2 { name="varian"; version="0.2.2"; sha256="0jyw46qx2w19h02mrwv3w3n8qc1n4b3ckm38qly1y4a4w9ib6c2i"; depends=[Formula ggplot2 gridExtra MASS rstan]; };
   variantspark = derive2 { name="variantspark"; version="0.1.1"; sha256="13hkp6l64hi7xlll09gin7kdlkqrkn0lggrw8147zy9ivhknhk59"; depends=[sparklyr]; };
-  variationalDCM = derive2 { name="variationalDCM"; version="2.0.0"; sha256="0kf9dw8nm728wf825bflvjma49qgdr0sm4zmnnfp1n3xwj2lswxn"; depends=[mvtnorm]; };
+  variationalDCM = derive2 { name="variationalDCM"; version="2.0.1"; sha256="1qdbl72a251q3l72d6zjd2ins2q924yvmj394qa7yvb7q2wkw5sw"; depends=[mvtnorm]; };
   variosig = derive2 { name="variosig"; version="0.3-1"; sha256="09cxigii0sj78yqd18p4mm9jjqvd1k2cgjy43pxpmqdhia0q2pmv"; depends=[gstat sp testthat]; };
   varitas = derive2 { name="varitas"; version="0.0.2"; sha256="16y0fcisdf4pypwqshy9c45v57axa25k8cpp1pr2ij95zycs3g1k"; depends=[assertthat doParallel dplyr foreach magrittr openxlsx stringr tidyr VennDiagram yaml]; };
   varjmcm = derive2 { name="varjmcm"; version="0.1.1"; sha256="1xgy3n57pxhv6wrsw9h4dranxbw6hdpm1f9ra3kwlzrpz5c3289x"; depends=[expm jmcm MASS Matrix]; };
@@ -20046,41 +20355,46 @@ in with self; {
   varrank = derive2 { name="varrank"; version="0.5"; sha256="0f2k18v6ygb5cwd6jri9ws97zq47znrqacv2adkd2yqp3jhwd24f"; depends=[FNN]; };
   vars = derive2 { name="vars"; version="1.6-1"; sha256="1i8ldzb44wnlaww8a0k6sgfj1khgah5v445gi45d7vgv68rg0gcv"; depends=[lmtest MASS sandwich strucchange urca]; };
   varsExplore = derive2 { name="varsExplore"; version="0.3.0"; sha256="0d18wqq7fbs5ljdphsdgqmv8ab0wrzzykjhf4lqksi7n78s1fa2r"; depends=[dplyr DT glue magrittr purrr rio rstudioapi stringr tidyr]; };
-  vartest = derive2 { name="vartest"; version="1.0"; sha256="0syxypmrvv9zd8qv10j1mvksacny3w4bdjm35kyjwp3jgh1rnv9g"; depends=[psych SuppDists]; };
+  vartest = derive2 { name="vartest"; version="1.2"; sha256="0bnfyp6qh19nxsl9hzkz7ib9jgbv00vywzqwz6jvvcrxlii7023z"; depends=[psych SuppDists]; };
   varycoef = derive2 { name="varycoef"; version="0.3.4"; sha256="1dfych3qhqq4qadizxjgh4lswnm47m2g59gv14c8j349ji94i8qh"; depends=[glmnet lhs mlr mlrMBO optimParallel ParamHelpers pbapply smoof spam]; };
   vasicek = derive2 { name="vasicek"; version="0.0.3"; sha256="04g5dfn8zlm8n8sxmdq9xgkf0qbvvznqx27nyan268s5wlnnabd6"; depends=[mvtnorm]; };
   vasicekreg = derive2 { name="vasicekreg"; version="1.0.1"; sha256="0hlac3p6mm7x88wdlqc93byx1s2a287kvhwzhz01pz4anap30683"; depends=[gamlss gamlss_dist mvtnorm Rcpp]; };
   vatcheckapi = derive2 { name="vatcheckapi"; version="0.1.0"; sha256="1jmfd6qksvw1dnlp4dyb33mr7y9phq9yw0k9qjla0z1jqc0gsnps"; depends=[httr jsonlite]; };
   vaultr = derive2 { name="vaultr"; version="1.2.0"; sha256="1dbwr50jsx8m615wdlk437ac23y4dk9iqcihlbnail470hfdq5gw"; depends=[getPass httr jsonlite R6]; };
   vaxpmx = derive2 { name="vaxpmx"; version="0.0.3"; sha256="0slbp5iaafwa3bw8mrzraq8yvklvyji1r4bvmvwlmgr99yk2kgk4"; depends=[dplyr MASS]; };
+  vcPB = derive2 { name="vcPB"; version="1.1.1"; sha256="11dn0l1w46shw4dqkwad5y91hfs9crkwrj6d1l4n9sc3f71b3zxq"; depends=[KernSmooth lme4 rlist]; };
   vccp = derive2 { name="vccp"; version="0.1.1"; sha256="1c0mk46c74kj5y9rfniywbxxmwb2z16szzpq6b2sw8q0qi1cf5ji"; depends=[mosum mvtnorm VineCopula]; };
   vcd = derive2 { name="vcd"; version="1.4-12"; sha256="127dkln826ah5ydp3pmd5bqyns9m9m6yrjnmn7fir4r9al8yycf9"; depends=[colorspace lmtest MASS]; };
   vcdExtra = derive2 { name="vcdExtra"; version="0.8-5"; sha256="09kpfnyi6q7xn4x6f7i3k8g6f2fdnm7kk81lxjmlhhn36jxc2p2i"; depends=[ca dplyr glue gnm here MASS purrr readxl stringr tidyr vcd]; };
   vcfR = derive2 { name="vcfR"; version="1.15.0"; sha256="1yj91cphin232m09wrpj8l27vxblyryh658siakz55hxjs5y85yz"; depends=[ape dplyr magrittr memuse pinfsc50 Rcpp stringr tibble vegan viridisLite]; };
+  vcfppR = derive2 { name="vcfppR"; version="0.4.6"; sha256="19qw5x92v15x6cyamigf4fq36h5cw573fp0ln9n2bwsy89px5ghm"; depends=[Rcpp]; };
   vcmeta = derive2 { name="vcmeta"; version="1.3.0"; sha256="11z1kfmd2kamkf39gr5ppry1g4pgrpqnyzbc2bgd1yay6yjhl93z"; depends=[ggplot2 mathjaxr Rdpack]; };
   vcov = derive2 { name="vcov"; version="0.0.1"; sha256="1w89mr8dk6436bxap28rszajgm9k7sjfqsr1i4p68dlhw8zk4yq1"; depends=[]; };
   vcpen = derive2 { name="vcpen"; version="1.9"; sha256="0gg5ln9r7i8rh91pf7789fic4aah22jc259qyg606bax2w57qmi5"; depends=[knitr Rcpp RcppArmadillo]; };
   vcr = derive2 { name="vcr"; version="1.2.2"; sha256="0vqq4lwgk9ss3x2vhkmgcymdwfppxjbaycm7pwik70sz9pkdk2d4"; depends=[base64enc crul httr R6 rprojroot urltools webmockr yaml]; };
+  vcrpart = derive2 { name="vcrpart"; version="1.0-5"; sha256="1h3p95gmy9lymnhw061awrxfn3xsadcmdr84azyn6c4p2l2qk5b6"; depends=[formula_tools nlme numDeriv partykit rpart sandwich strucchange ucminf zoo]; };
   vctrs = derive2 { name="vctrs"; version="0.6.5"; sha256="00p4r1z4xc05m25y0qa7svr67lbypcfqyp2b0ja9asgx90i7s5j3"; depends=[cli glue lifecycle rlang]; };
   vctsfr = derive2 { name="vctsfr"; version="0.1.1"; sha256="048bkayjhgy6h47pmy0cld9yzmrg93mk3rv5afpn518c42gjsc69"; depends=[ggplot2 shiny]; };
   vcvComp = derive2 { name="vcvComp"; version="1.0.2"; sha256="0mip0v8gv358aadc3b4913dcz27kscx3dv15nwns20pan5jvyhv2"; depends=[]; };
   vdar = derive2 { name="vdar"; version="0.1.3-2"; sha256="061ahwf8gyjqs5j9mkqnpn7899mivn4qbygnnzihmv065xj5vpd9"; depends=[compositions]; };
-  vdg = derive2 { name="vdg"; version="1.2.2"; sha256="0fdqmvzw6dd18w653kfvnw16489jpsyl1395xffhm8rz1dqkrhj1"; depends=[ggplot2 gridExtra proxy quantreg]; };
+  vdg = derive2 { name="vdg"; version="1.2.3"; sha256="00c7ayc791h0lr124a3l1cxrc5wsnbdm47jf5d7ws02xvd1p8fbq"; depends=[ggplot2 gridExtra proxy quantreg]; };
   vdiffr = derive2 { name="vdiffr"; version="1.0.7"; sha256="1ljj94swqgs8pvicdrlals6pckm7knwfvxxmmbhhi2zfcxdjwhzd"; depends=[cpp11 diffobj glue htmltools lifecycle rlang testthat xml2]; };
   vec2dtransf = derive2 { name="vec2dtransf"; version="1.1.3"; sha256="0sxsbm1q7v58b907xvpppwfljmqm2pyrch2zc82nmb10wfiha8k8"; depends=[sp]; };
   veccompare = derive2 { name="veccompare"; version="0.1.0"; sha256="03nyyxvhhwfxxg5w6qflk7q234ipbhj9fd4abcp50sxz3diabch1"; depends=[corrplot gtools pander purrr qgraph reshape2 VennDiagram]; };
   vecsets = derive2 { name="vecsets"; version="1.4"; sha256="0v6l8kmshb6ipcvjx9i26mwrc810z7lv4ys8qqyzzpz0wwnlii7m"; depends=[pracma]; };
   vectorbitops = derive2 { name="vectorbitops"; version="1.1.2"; sha256="1hgygcmyfaib72j9ck88312f4nqk0s5m01jqyizsy1j3ss8jaqi6"; depends=[]; };
+  vectorsurvR = derive2 { name="vectorsurvR"; version="0.1.0"; sha256="00j2blaf5l8ancn4yjfywmw4l1kysxqkqfd5pg4klcr0h4idcnqd"; depends=[dplyr DT ggplot2 httr jsonlite kableExtra knitr lubridate magrittr plotly rstudioapi stringr tidyr]; };
   vectorwavelet = derive2 { name="vectorwavelet"; version="0.1.0"; sha256="1z0gl28hgrqgx0ynv248a80fh190pm15c9cg1l1665acrw62kqs7"; depends=[biwavelet fields foreach iterators maps Rcpp spam]; };
   vegalite = derive2 { name="vegalite"; version="0.6.1"; sha256="0dlzhvrg3nj6knyycdgg3d1vzq3dn9vxb34fjin9hzilszqmarbk"; depends=[base64 clipr digest htmltools htmlwidgets jsonlite magrittr webshot]; };
-  vegan = derive2 { name="vegan"; version="2.6-4"; sha256="01hxlb5sy0d28ajq993fqs4z0qjcyl610d0ahjyjpbkrpszd92jx"; depends=[cluster lattice MASS mgcv permute]; };
+  vegan = derive2 { name="vegan"; version="2.6-6.1"; sha256="0q0bp7xxmab1gcqk8wwm81sdvhccdvz5vqyn0grbwfb619q5wakx"; depends=[cluster lattice MASS mgcv permute]; };
   vegan3d = derive2 { name="vegan3d"; version="1.3-0"; sha256="0y8x11551gaal2v4nyd97pwxaw5bqazfqywwrdj4wkp0gidn3hhh"; depends=[cluster rgl scatterplot3d vegan]; };
   vegawidget = derive2 { name="vegawidget"; version="0.5.0"; sha256="1rar2a4rwzw3qvcazjvxqa0bmcrssqkxyqymdsyghl6kds8kx604"; depends=[assertthat digest glue htmltools htmlwidgets jsonlite magrittr rlang]; };
   vegclust = derive2 { name="vegclust"; version="2.0.2"; sha256="18v1iqgabhsdxi76kvy9wgp9h2i17aw4c43kcki7lzyqiyyql0nx"; depends=[vegan]; };
   vegdata = derive2 { name="vegdata"; version="0.9.12"; sha256="1fgha0sxgymiqnr6gwa3pjmbvb76iwxnpxs666zifscch4fz3z99"; depends=[curl DBI dbplyr dplyr foreign hoardr httr indicspecies magrittr plyr RSQLite stringr xml2]; };
   vegperiod = derive2 { name="vegperiod"; version="0.4.0"; sha256="0m10m85cf0qk2q2ln1qziqicv79rbjqqi9py18r412j7m43pn013"; depends=[]; };
   vegtable = derive2 { name="vegtable"; version="0.1.8"; sha256="0q854isd0bm53xxj45h64cxnvkck0hm43vrxizyxxgqwqf0syg3z"; depends=[foreign qdapRegex sp stringi taxlist vegdata]; };
-  vein = derive2 { name="vein"; version="1.0.2"; sha256="0g0j9whhli4hhv4minciyj0dpnms85lzy6parlppjb2wfsxyp2aa"; depends=[cptcity data_table dotCall64 sf units]; };
+  vein = derive2 { name="vein"; version="1.1.3"; sha256="018nnldvawijw9qnh6d4l9gy0x5chb2nx0fga7bpb91p20vd7lfd"; depends=[cptcity data_table dotCall64 sf units]; };
+  vek = derive2 { name="vek"; version="1.0.0"; sha256="0ph67wfbs9r0fam79lmikbf0j0zbk0qqip7maxrxiy2zdbbf6xg2"; depends=[]; };
   velociraptr = derive2 { name="velociraptr"; version="1.1.0"; sha256="0a67vmv05cxc9f27aqzr6nkgy2mj3fhykwj5nb23qwfqa669a5hi"; depends=[sf]; };
   vembedr = derive2 { name="vembedr"; version="0.1.5"; sha256="1hmwgrp9vj7qwmsvnvgry8h707kj53wp5chpxqsbgxi9jryabpc0"; depends=[assertthat glue htmltools httr lifecycle magrittr stringr]; };
   venn = derive2 { name="venn"; version="1.12"; sha256="07bjv0m21gljdr3sj1z9rp6xhgxspah9j1m3a8rskvlwv6dvd1pd"; depends=[admisc]; };
@@ -20090,7 +20404,7 @@ in with self; {
   verbalisr = derive2 { name="verbalisr"; version="0.5.2"; sha256="1h00dwfsw2k5x2m0mpwh2ni8wsvixv7i4ps4vl4pmhq73xxx3f9a"; depends=[pedtools ribd]; };
   verhoeff = derive2 { name="verhoeff"; version="0.4.0"; sha256="0kpxpl5s5342ajg22cwb7y9ks240drp37q1g67n19krdy6ih14kz"; depends=[]; };
   verification = derive2 { name="verification"; version="1.42"; sha256="0pdqvg7cm9gam49lhc2xy42w788hh2zd06apydc95q2gj95xnaiw"; depends=[boot CircStats dtw fields MASS]; };
-  vermeulen = derive2 { name="vermeulen"; version="0.1.1"; sha256="10jlgrwpgkfiwlyli6mpd0wavi71h39sj6mklnvfskhnblvqdrz8"; depends=[memoise]; };
+  vermeulen = derive2 { name="vermeulen"; version="0.1.2"; sha256="0wy7ml7z09n3hr4xma8nblv83bqpnsd6hmh9cqhqbndcrm3nbfby"; depends=[memoise]; };
   versioning = derive2 { name="versioning"; version="0.1.0"; sha256="0r4ffd1s9warfan7ldcd6sn98qimsllf77dhxfygblr8spxcl7h5"; depends=[assertthat data_table foreign glue haven R6 sf terra yaml]; };
   versions = derive2 { name="versions"; version="0.3"; sha256="0zm49j785dgv7fyr1yl9q5f0dsk8hhpim5q5bpkgrkzv7pwjribd"; depends=[]; };
   versionsort = derive2 { name="versionsort"; version="1.1.0"; sha256="00r0h2iqlfq0nidqbhx4fv29rlppfx43jv2n2zp38lpx5vbqjhnj"; depends=[]; };
@@ -20110,10 +20424,10 @@ in with self; {
   video = derive2 { name="video"; version="0.1.1"; sha256="0h500mpbjiwggx1m8zfydhr9n4v27is9s46ay9856d2lgv2srlfg"; depends=[htmlwidgets jsonlite shiny]; };
   vietnamcode = derive2 { name="vietnamcode"; version="0.1.1"; sha256="0vc0c1fg30afar2dkch5h27b8jbglcd9ja6d5hcypnibqz4c68vz"; depends=[]; };
   vietnameseConverter = derive2 { name="vietnameseConverter"; version="0.4.0"; sha256="1bnscv1yz4hr6cvpavdj2gjn6dqy96rbagxl9280a2xxav09mps3"; depends=[gsubfn sf utf8]; };
-  viewpoly = derive2 { name="viewpoly"; version="0.3.2"; sha256="1say30d46vj67ng5mprhwl02jf9d0kv573j80r05z08szmcm4sxb"; depends=[abind config curl dplyr DT ggplot2 ggpubr golem JBrowseR markdown plotly reshape2 shiny shinydashboard shinyjs shinythemes shinyWidgets tidyr vroom]; };
+  viewpoly = derive2 { name="viewpoly"; version="0.4.1"; sha256="1c97khxsfnml21wh8np4qp7w2w31zxw72dl5vy25jjpx06dbp814"; depends=[abind config dplyr DT ggplot2 ggpubr golem hidecan JBrowseR markdown plotly purrr reshape2 shiny shinydashboard shinyjs shinythemes shinyWidgets tidyr vroom]; };
   viewscape = derive2 { name="viewscape"; version="1.0.0"; sha256="1hjr6r6p5n4knmbdd38dpdlwdpycq8k5im0i0rfk28xnix7769mv"; depends=[dplyr ForestTools pbmcapply Rcpp rlang sf sp terra]; };
   viking = derive2 { name="viking"; version="1.0.2"; sha256="145xrfifdqnzclzx2c7aj89yw5sd8f34jijpia595dy30lssywwi"; depends=[]; };
-  villager = derive2 { name="villager"; version="1.1.1"; sha256="0g72zpsqi39ax44n3s3x66b1fbgyx6w2wraf531jsy7vj95ivr2p"; depends=[R6 readr uuid]; };
+  villager = derive2 { name="villager"; version="2.0.0"; sha256="1jcgjz6sn5izn3bqi6g45f40nw921vvqj74apb2i44h6a3qnxqjg"; depends=[R6 readr uuid]; };
   vimp = derive2 { name="vimp"; version="2.3.3"; sha256="069pcxzavi213idpslnc1skylsb1wn6xldajnn54prlwq9hkfb19"; depends=[boot data_table dplyr magrittr MASS rlang ROCR SuperLearner tibble]; };
   vimpclust = derive2 { name="vimpclust"; version="0.1.0"; sha256="0ly7piz7q88sh2g7zq5b2pqph9467b4fclgq9amm0m7xc8vrv4f9"; depends=[ggplot2 mclust PCAmixdata Polychrome rlang]; };
   vindecodr = derive2 { name="vindecodr"; version="0.1.1"; sha256="0yvchdf90l8lkzyba5wrpma6vjcgf19li159s8s79y8sgp5pyx7p"; depends=[httr]; };
@@ -20125,16 +20439,15 @@ in with self; {
   vipor = derive2 { name="vipor"; version="0.4.7"; sha256="17hb6y1i9bva0fr4k9m6wncmnzdjad1b7fhsvfhva4xavpll3bds"; depends=[]; };
   viraldomain = derive2 { name="viraldomain"; version="0.0.3"; sha256="10lk3rjfr2faj8wdxd0v1c0xk22bzsrl1arz6ab5xxsd0zzc9kxh"; depends=[applicable dplyr earth ggplot2 kknn nnet parsnip recipes vdiffr workflows]; };
   viralmodels = derive2 { name="viralmodels"; version="1.2.0"; sha256="0azpydlvbkbsaj7zcvl95s5y8d8pj72rkv4zna2851046yz170jl"; depends=[dplyr earth kknn nnet parsnip recipes rsample tidyselect tune vdiffr workflows workflowsets]; };
-  viralx = derive2 { name="viralx"; version="1.2.0"; sha256="03zjyajr790cpv92rfdjn6llc80hf03zqyycqxd8649p15przc6v"; depends=[DALEX DALEXtra dplyr earth Formula kknn parsnip plotmo plotrix recipes rsample TeachingDemos vdiffr workflows]; };
+  viralx = derive2 { name="viralx"; version="1.3.0"; sha256="1449r74g4q7qigyqb21sasdyr80542b4lfavjszh2s5bd8pkc8di"; depends=[DALEX DALEXtra dplyr earth Formula kknn parsnip plotmo plotrix recipes rsample TeachingDemos vdiffr workflows]; };
   viridis = derive2 { name="viridis"; version="0.6.5"; sha256="0p00s24d8bsifw3r0afwrx98bqixnf5krpbw42hfwp8ipsv5qaw6"; depends=[ggplot2 gridExtra viridisLite]; };
   viridisLite = derive2 { name="viridisLite"; version="0.4.2"; sha256="18g1rk24kr47jl01r70vvni2146fl9xxpjcvjp6d5k6y64fi2gw9"; depends=[]; };
   virtualPollen = derive2 { name="virtualPollen"; version="1.0.1"; sha256="0caiyl7h9qn3nv34dafv5rs4v7n4avyjpng0rkz6aw3ri1zn8sa0"; depends=[cowplot ggplot2 mgcv plyr tidyr viridis]; };
   virtualspecies = derive2 { name="virtualspecies"; version="1.6"; sha256="1bqrh17fcskklsdkwkg9lvlki67jigr0c32mq4bfl16iisrc1342"; depends=[ade4 raster rnaturalearth terra viridis]; };
   virtuoso = derive2 { name="virtuoso"; version="0.1.8"; sha256="1smb8sjfqcp3jflplgf92swasxzrp72fnnqwyisf87pjknm91qsc"; depends=[curl DBI digest fs ini odbc processx ps rappdirs]; };
-  viruslearner = derive2 { name="viruslearner"; version="0.0.1"; sha256="1x8d3zs6dzl34y7lamkxsn7f9pxy5034yn2q79g3fwzmvvrnniy5"; depends=[dials dplyr hardhat parsnip recipes rsample stacks tidyselect tune workflows workflowsets yardstick]; };
   virustotal = derive2 { name="virustotal"; version="0.2.2"; sha256="020kwhki5740857zd24xm18dg3whzhf527qhmfx1cxyqyld404wy"; depends=[httr plyr]; };
   visNetwork = derive2 { name="visNetwork"; version="2.1.2"; sha256="116w3l65lgv18xzav5zz1pbgwpwck66n9cjpja9axrl9zi19vja7"; depends=[htmltools htmlwidgets jsonlite magrittr]; };
-  visOmopResults = derive2 { name="visOmopResults"; version="0.2.0"; sha256="1g0vf28r1lbmisczdpbffgaxr40ac173arha2f6hcw5083s54plj"; depends=[cli dplyr generics glue lifecycle omopgenerics rlang stringr tidyr]; };
+  visOmopResults = derive2 { name="visOmopResults"; version="0.3.0"; sha256="1lfvihny8r8x0qhzlqhq3wysijypkqz3mgd70j9cy71m5hhypx6z"; depends=[cli dplyr generics glue lifecycle omopgenerics rlang stringr tidyr]; };
   visR = derive2 { name="visR"; version="0.4.1"; sha256="1ra2fky23fv3rc9gj4zg64s2c2xcc52whf24wp2nfmg1f0nr278g"; depends=[broom cowplot dplyr DT forcats ggplot2 gridExtra gt gtable kableExtra knitr lifecycle rlang survival tibble tidycmprsk tidyr]; };
   visStatistics = derive2 { name="visStatistics"; version="0.1.1"; sha256="0lp6sf2wrjjp1zh77yhlgr9sfpls54z0bny0l36v98ik4qykky0f"; depends=[Cairo multcompView nortest vcd]; };
   visTree = derive2 { name="visTree"; version="0.8.1"; sha256="1l07zfr2hagjpdxfw5290wa3ki4bl7iqxrrhda0d1bp3wmwfz0ai"; depends=[colorspace partykit rpart]; };
@@ -20149,7 +20462,7 @@ in with self; {
   vismeteor = derive2 { name="vismeteor"; version="1.8.5"; sha256="059v7qxpkhir066rrw9kxnb8wnyjgwi2fj9mkb7wl0zrqbknhglb"; depends=[DBI]; };
   visreg = derive2 { name="visreg"; version="2.7.0"; sha256="070yhyxxh3w16i54k790n47bgcjn4b10b6g1z553x6afjc3l3a6d"; depends=[lattice]; };
   vistime = derive2 { name="vistime"; version="1.2.4"; sha256="14nm2p8yyl0zcf4al31cvnji4a9fi6zs1hvcjpa7dcyjdxd6yfyi"; depends=[assertthat ggplot2 ggrepel plotly RColorBrewer rlang]; };
-  vistla = derive2 { name="vistla"; version="2.0.1"; sha256="0chlmlq6ydkb36dmfx5j4syhm9s3sqhhr20fxyp3jhbhv19c83bj"; depends=[]; };
+  vistla = derive2 { name="vistla"; version="2.0.2"; sha256="06mjzm00q3zfw3a7a7pivdnn47zxi0qrqlv47izhy6baqlrxp3mr"; depends=[]; };
   vistributions = derive2 { name="vistributions"; version="0.1.2"; sha256="1nzkbyqks38n7gp55iqhrlxqyfwxk4fvqzi9vsb45h0m0hlmwhxr"; depends=[ggplot2 magrittr]; };
   visualFields = derive2 { name="visualFields"; version="1.0.1"; sha256="1z62xappwjdv9f7ql5spydkb626rdj3hvpvzy3d71fwm0y3qwki3"; depends=[boot combinat deldir dplyr DT gtools Hmisc htmlTable oro_dicom plotrix polyclip pracma rlang shiny shinyjs XML]; };
   visualize = derive2 { name="visualize"; version="4.5.0"; sha256="0bsdyqakidgdgxhzyl6w0pg3mnkj84550c4s7dwcwjjqqjsr9bj1"; depends=[]; };
@@ -20157,15 +20470,15 @@ in with self; {
   visvow = derive2 { name="visvow"; version="1.3.11"; sha256="1my0gvp63lri56hkqrs7xsr5i6ji9w17xm94mrrc9lgwy5sj3vf0"; depends=[Cairo dplyr DT effectsize formattable ggdendro ggplot2 ggrepel MASS PBSmapping plot3D plyr pracma psych Rdpack readxl Rtsne shiny shinyBS shinybusy splitstackshape svglite tidyr tikzDevice vegan WriteXLS]; };
   visxhclust = derive2 { name="visxhclust"; version="1.1.0"; sha256="1wx16mg5g58p4mgf5y776i5ahgpqqjy4wbfqhfjph36mrhs6qr22"; depends=[bsplus circlize cluster clValid ComplexHeatmap dendextend dplyr DT dunn_test fastcluster ggplot2 kableExtra knitr patchwork RColorBrewer readr shiny shinycssloaders shinyhelper tidyr]; };
   vita = derive2 { name="vita"; version="1.0.0"; sha256="114p2lzcr8rn68f0z4kmjdnragqlmi18axda9ma4sbqh8mrmjs9v"; depends=[randomForest Rcpp]; };
-  vitae = derive2 { name="vitae"; version="0.5.4"; sha256="11vp146fqxcq10kpsyrxmyc3i2kcwx15swgill61zs6g9l54asky"; depends=[dplyr glue jsonlite knitr pillar rlang rmarkdown tibble vctrs xfun yaml]; };
+  vitae = derive2 { name="vitae"; version="0.6.0"; sha256="0mb6kps08za2sma2d5xw441kpri425arlbwznygifd7g3c5zyvhv"; depends=[dplyr glue jsonlite knitr pillar rlang rmarkdown tibble vctrs xfun yaml]; };
+  vital = derive2 { name="vital"; version="1.0.0"; sha256="0rq7abqpqj5l5vvawj8x0p4bhvs0pcd883xiqbjzc65girn9ffar"; depends=[cobs distributional dplyr fable fabletools future_apply generics ggplot2 HMDHFDplus mgcv patchwork progressr purrr rlang tibble tidyr tidyselect tsibble vctrs]; };
   vitality = derive2 { name="vitality"; version="1.3"; sha256="17micfmlksnw167vavvhlk431fm20k74y5ggs47pgz5fwpm854zp"; depends=[]; };
-  vivainsights = derive2 { name="vivainsights"; version="0.5.2"; sha256="14ca964i5akcjrgqrazizhdaz291p15vj75awqxd5y32412hykjq"; depends=[data_table dplyr ggplot2 ggraph ggrepel ggwordcloud htmltools igraph lifecycle magrittr markdown networkD3 purrr reshape2 rmarkdown scales tidyr tidyselect tidytext wpa]; };
+  vivainsights = derive2 { name="vivainsights"; version="0.5.3"; sha256="0gdhq8qdzzzvv2l5cr57wp6lnn082hcs7svbdjaphzx6ryw1bqna"; depends=[data_table dplyr ggplot2 ggraph ggrepel ggwordcloud htmltools igraph lifecycle magrittr markdown networkD3 purrr reshape2 rmarkdown scales tidyr tidyselect tidytext wpa]; };
   vivaldi = derive2 { name="vivaldi"; version="1.0.1"; sha256="1dvihjc6vjzg2w1j0q6vjhlhpwkknwsd97lpbqbfpacpp337mvx8"; depends=[dplyr ggplot2 glue magrittr plotly seqinr tidyr tidyselect vcfR]; };
   vivid = derive2 { name="vivid"; version="0.2.8"; sha256="0zl9p8dsrz9lmylnfxj4b50g1lvk7563ss0w3k1pidkwrs4kazin"; depends=[colorspace condvis2 DendSer dplyr flashlight GGally ggalt ggnewscale ggplot2 igraph RColorBrewer sp]; };
   vivo = derive2 { name="vivo"; version="0.2.1"; sha256="1cfval06byviw7himr5nql34h4jaway9gb6dzya3v994p7v851cg"; depends=[DALEX ggplot2]; };
   vizdraws = derive2 { name="vizdraws"; version="2.0.0"; sha256="1swf1xk6l086my4gknb9q4gyc3a37vs9z2p2484zf5ba9inzwix1"; depends=[dplyr htmlwidgets magrittr stringr]; };
   vkR = derive2 { name="vkR"; version="0.2"; sha256="1pk444fcw4yyv2dnfrw9vynbpc4gwr5yv9jd41djp9yipdf6d53l"; depends=[httr jsonlite purrr XML]; };
-  vlda = derive2 { name="vlda"; version="1.1.5"; sha256="17xn8qqh043dm05ib3h4l1qx07wxncf5d06x9l1wl6jbkvnsm2nq"; depends=[dplyr ggiraph ggplot2 ggrepel ggsci]; };
   vmdTDNN = derive2 { name="vmdTDNN"; version="0.1.1"; sha256="08bdihlf2lj1wfxilshxww3sav7c35qiqzs468mdahbn4vnzbngr"; depends=[forecast nnfor VMDecomp]; };
   vmeasur = derive2 { name="vmeasur"; version="0.1.4"; sha256="17rqr8zpfnq3f0d3yi9w09wvrbq79g4w7rkqf4l2wyd8ic5npwb0"; depends=[av crayon doFuture dplyr foreach future ggplot2 ggpubr imager magrittr pdftools pracma progressr purrr readr rlang scales stringr svDialogs tidyr]; };
   vmr = derive2 { name="vmr"; version="0.0.6"; sha256="0vm4wxf9zb2xgjd9xam3gy6mqr621x922ldshrxs4cibaag3lq5x"; depends=[curl jsonlite]; };
@@ -20179,7 +20492,7 @@ in with self; {
   volcano3D = derive2 { name="volcano3D"; version="2.0.9"; sha256="1k1n49pzsdkwia09mf9ra75cbnx49q99ygn5c92kyq8kqv83d1w8"; depends=[ggplot2 ggpubr htmlwidgets magrittr matrixTests plotly Rfast rlang]; };
   volcanoPlot = derive2 { name="volcanoPlot"; version="1.0.0"; sha256="06nkv56c36wgnb7s6gkpp14syzhm5zm2wdfjx9wamxp5cf0wk3mk"; depends=[dplyr DT fmsb ggplot2 purrr shiny tidyr]; };
   volesti = derive2 { name="volesti"; version="1.1.2-7"; sha256="1x730da30y763j6dcdahspbpf81zqaazqzfvfznsi0kq05856z2n"; depends=[BH Rcpp RcppEigen]; };
-  volker = derive2 { name="volker"; version="1.0.2"; sha256="00f4qzi8r9nm3b05lw4sbrajw9srnz7gqfzi8pvixvbi8ks91wpg"; depends=[base64enc dplyr forcats ggplot2 glue janitor kableExtra knitr lifecycle magrittr psych purrr rlang rmarkdown scales skimr stringr tibble tidyr tidyselect]; };
+  volker = derive2 { name="volker"; version="2.0.1"; sha256="18dmzr6ginlqdmkqbdzsqfwndgkgx7fydkq32d6plinb2fsaccd7"; depends=[base64enc broom car dplyr effectsize ggplot2 kableExtra knitr lifecycle magrittr psych purrr rlang rmarkdown scales skimr tibble tidyr tidyselect]; };
   volleystat = derive2 { name="volleystat"; version="0.2.0"; sha256="0n1r0bvvmba21cs3qgpnw9jxpgl2n82fhxa40sa1w2gav5rch5i6"; depends=[]; };
   voluModel = derive2 { name="voluModel"; version="0.2.1"; sha256="1kkqgbsjsgwia03v7mfbn2zc830hfsayx4q6f4qmrv6ql6x5imcg"; depends=[dplyr fields ggplot2 ggtext modEvA rangeBuilder sf terra viridisLite]; };
   voronoiTreemap = derive2 { name="voronoiTreemap"; version="0.2.0"; sha256="1wvnqdrvba4ss4f3k8gzb720irdq2brv2aaq16ywifv8fnjf02r3"; depends=[data_tree DT htmlwidgets rlang shiny shinyjs]; };
@@ -20203,18 +20516,20 @@ in with self; {
   vscc = derive2 { name="vscc"; version="0.7"; sha256="082jxk8fw4rplal9672bi6rr1jwpb5h6clrdlv9jj4ffvlbg6vaz"; depends=[ManlyMix mclust MixGHD teigen]; };
   vsd = derive2 { name="vsd"; version="0.1.0"; sha256="18whnvary4glblzx1vxf3yzsllnnnbnyijwhbw7bi3agppnwrf22"; depends=[dplyr flexsurv ggplot2 ggpubr magrittr muhaz survival survminer]; };
   vsgoftest = derive2 { name="vsgoftest"; version="1.0-1"; sha256="0vypi4cf04bljmx3jwq3ixs86ivd6p7a825ik189y71fyqg9g70v"; depends=[fitdistrplus Rcpp]; };
+  vsmi = derive2 { name="vsmi"; version="0.1.0"; sha256="1slyz8ldd3vqqqcpjccr0qsfy664m4zjczgr5qh0d4pcy0yg5f4x"; depends=[MASS Matrix mice qif]; };
   vsp = derive2 { name="vsp"; version="0.1.1"; sha256="0aa3vqzazh0x5irbmqh9ac1xiprwnbgbrjl9bybxzynl91hwg9yw"; depends=[ggplot2 glue invertiforms LRMF3 magrittr Matrix rlang RSpectra tibble withr]; };
   vstdct = derive2 { name="vstdct"; version="0.2"; sha256="0g26cplp5vjppyw8w37vdy3wah3i9wi14j64vl7i8d2fjbhqhqxp"; depends=[dtt MASS nlme]; };
   vstsr = derive2 { name="vstsr"; version="1.1.0"; sha256="071nfxkwwpbp2d8khxq7d1pp268pa1fcfj619bs6xwg4wk9srr3k"; depends=[httr jsonlite R6 RCurl]; };
   vtable = derive2 { name="vtable"; version="1.4.6"; sha256="1via6iz6ykw02wh5aagr9vqbzlqjvc5iyzfjr13yzyxarpi8zpdr"; depends=[haven kableExtra knitr rstudioapi sjlabelled]; };
-  vtreat = derive2 { name="vtreat"; version="1.6.4"; sha256="1b32rrmnkpm53vgdg479q4wwzlgcisbz9x24rvcn42pjm9r8wwf8"; depends=[digest wrapr]; };
+  vtreat = derive2 { name="vtreat"; version="1.6.5"; sha256="04ymyv7ybahs4k6yc2dbmhhnxnjsa09h8cbfayslr655rzlgyqx5"; depends=[digest wrapr]; };
   vtree = derive2 { name="vtree"; version="5.6.5"; sha256="0qszya11qh2xzq1blbrcli3l8hhf0dannhh2hn3gi59c9dn3jr16"; depends=[DiagrammeR DiagrammeRsvg htmlwidgets rsvg shiny utf8]; };
   vtype = derive2 { name="vtype"; version="0.8"; sha256="0j070bn86a6hlg99h2qaf0dlbnjjsmx1zdcmvl3acymr31bqyvrj"; depends=[randomForest]; };
   vudc = derive2 { name="vudc"; version="1.1"; sha256="0zxz6n3ixa3xjzcinky8ymqjx9w8y8z65mz8d84dl00mxzkmkz4h"; depends=[]; };
   vueR = derive2 { name="vueR"; version="0.6.0"; sha256="07l1q5dgwplcfcp1ipbcx2i4d54f7fn4rclb71yb7ms2g98lq1gw"; depends=[htmltools htmlwidgets]; };
   vvauditor = derive2 { name="vvauditor"; version="0.6.0"; sha256="10f9ylb7kpm28smw8nsnlmiqk8pp9zdfvkrk4qxk6pfyriv341jb"; depends=[checkmate cli dplyr findR janitor kit lubridate magrittr purrr stringr tibble]; };
-  vvcanvas = derive2 { name="vvcanvas"; version="0.0.3"; sha256="1dm8d9zammsgl7rq07m0a2brrb2vxinyqpwcmvlpls2aphgsg077"; depends=[dplyr htm2txt httr jsonlite magrittr purrr rlang stringr tidyr]; };
-  vvconverter = derive2 { name="vvconverter"; version="0.5.9"; sha256="1hrdqlnlafdkrggzqfj7zinsz0w47ikzf098fbjcssgchfp91g8m"; depends=[checkmate dplyr lubridate magrittr polyglotr stringr]; };
+  vvcanvas = derive2 { name="vvcanvas"; version="0.0.4"; sha256="1var5p4znz8xgbvhpcz2m4z9c129nxb4yqhwjmj8sf8y6m2dsbrw"; depends=[dplyr htm2txt httr jsonlite magrittr purrr rlang stringr tidyr]; };
+  vvconverter = derive2 { name="vvconverter"; version="0.5.10"; sha256="1dl0vvglj2p1i1c1a9vxgr6cr5f7bxqqnv7w1ds0gzgwv5zyhz1c"; depends=[checkmate dplyr lubridate magrittr polyglotr stringr]; };
+  vvdoctor = derive2 { name="vvdoctor"; version="0.0.1"; sha256="1sxj7a6pg1kynwsb1fc28l3ipj3jf5azn4cyck0489hsxqnyjn5p"; depends=[datamods DescTools DT exact2x2 irr magrittr rintrojs rstatix shiny shinyjs shinyWidgets]; };
   vvfiller = derive2 { name="vvfiller"; version="0.6.7"; sha256="0kknnnkfdw9h4wxs215pgmg1j0mbl5lqfw4xl0il8rw6n0yy7vsn"; depends=[dplyr purrr rlang]; };
   vvmover = derive2 { name="vvmover"; version="1.6.0"; sha256="0bg7mc8wz3d9ibp2kbc8lc0zdbbf8i2rj3hxsrnk0yrzxbb6czdg"; depends=[dplyr magrittr readr readxl]; };
   vvsculptor = derive2 { name="vvsculptor"; version="0.4.10"; sha256="076fdzhr5b39k1vavj3jf7897vpdjgfbf8fxxqi6y4cy0pz4iisi"; depends=[dplyr]; };
@@ -20222,13 +20537,11 @@ in with self; {
   vvtableau = derive2 { name="vvtableau"; version="0.6.0"; sha256="0l5ma8004zw69w55qvdmrl1jzg25bp69szyhqddn2h5qcnbg9r1j"; depends=[data_table dplyr httr jsonlite magrittr purrr stringr tidyr XML xml2]; };
   vvtermtime = derive2 { name="vvtermtime"; version="0.0.1"; sha256="0c7cry87wgk86wydrw0l8icc25lx5fcxzm1wyfs2ls8ppmpkz3l7"; depends=[httr jsonlite magrittr]; };
   vwline = derive2 { name="vwline"; version="0.2-2"; sha256="1hilr996xn5wh8kfyab55w2i1c02a8x909h4ahag5q6s7603qng5"; depends=[gridBezier polyclip]; };
-  vyos = derive2 { name="vyos"; version="1.0.2"; sha256="0mqhxib04frcwqxq8qchmxm4d4kr4q2pjf3ki99q5dillihhk2fs"; depends=[crayon digest dplyr glue httr httr2 jsonlite lubridate magrittr purrr Rcpp rlang rlist stringr tibble]; };
   wCorr = derive2 { name="wCorr"; version="1.9.8"; sha256="0ja51w17q80r7xpwqhzn416b48ji9178026wf5ibm4s0hsfz7vb2"; depends=[minqa mnormt Rcpp RcppArmadillo]; };
   wINEQ = derive2 { name="wINEQ"; version="1.2.0"; sha256="1b47dxa9q34xylp2bvzl0c9bbsd2l4fw8avq50575sc3w3v0bs62"; depends=[dplyr sampling]; };
   wISAM = derive2 { name="wISAM"; version="0.2.8"; sha256="0c5ic98ihpzkycsj9wg0127civm4w1rmkkw6zsjp8sfn20cl8a8z"; depends=[MASS]; };
   wNNSel = derive2 { name="wNNSel"; version="0.1"; sha256="19j2yz6lvkxpmjr0vv6pjc7j1c02y0hb3gay5sy1y0xk706aggb5"; depends=[]; };
   wPerm = derive2 { name="wPerm"; version="1.0.1"; sha256="0f3v0kba87wkwyii0pzvs6a8ja897aifpvwkvryl2hzxxxaml7z4"; depends=[]; };
-  wTO = derive2 { name="wTO"; version="2.0.2"; sha256="0c5cr48h2zvp629iyg1n05fgh1v2wvc5bmzc75c1flrj2rrfs83v"; depends=[data_table HiClimR igraph magrittr plyr reshape2 Rfast som visNetwork]; };
   wacolors = derive2 { name="wacolors"; version="0.3.1"; sha256="0c5ja70vgb2f1l2k5j7amxhkydbj44nc290ccr816xglj31nvsiy"; depends=[ggplot2 scales]; };
   wactor = derive2 { name="wactor"; version="0.0.1"; sha256="0dc7413jb3yz0nns2lc93w32wv6m4sg17j2ip63gc12vis0nf855"; depends=[ggplot2 Matrix R6 text2vec tibble tokenizers xgboost]; };
   waffle = derive2 { name="waffle"; version="1.0.2"; sha256="17z05mlnp2k9dywr0bbqz633sq1xs8q9879bl2na1in39qxq0l76"; depends=[curl DT extrafont ggplot2 gridExtra gtable htmlwidgets plyr RColorBrewer rlang stringr]; };
@@ -20249,7 +20562,7 @@ in with self; {
   warbleR = derive2 { name="warbleR"; version="1.1.30"; sha256="1fdlivdqawk4g9xb1zc4hdbdd0v44kpdzfb8z75i09zg2nqhgpw1"; depends=[bioacoustics cli dtw fftw knitr monitoR NatureSounds pbapply Rcpp RCurl rjson seewave testthat tuneR]; };
   warp = derive2 { name="warp"; version="0.2.1"; sha256="1gj65kgs7x63f6y2vnv13k293b52k4afbmdlcam635h9vs8da2h2"; depends=[]; };
   warpMix = derive2 { name="warpMix"; version="0.1.0"; sha256="13zbl4aifhg7j5b3vpwgzgs09hr7yblz0rckmj5qh40s78j8cpfn"; depends=[fda fields lme4 MASS nlme reshape2]; };
-  washdata = derive2 { name="washdata"; version="0.1.3"; sha256="0m7rwwi189sbsv3144x14jqmfax30f6ri1pisy47yggmmjpdplps"; depends=[]; };
+  washdata = derive2 { name="washdata"; version="0.1.4"; sha256="17hmhcnh53fivxaywa0hvjl9y527ms2pqlapd1wvyx3gjqkggwyg"; depends=[]; };
   washeR = derive2 { name="washeR"; version="0.1.3"; sha256="082myz7lw9dyk4ygyj0q39n4h1gghsd1q7667ngzxa20lm0658wd"; depends=[gplots]; };
   washex = derive2 { name="washex"; version="1.2.0"; sha256="0g5cgs6y3l7ng4bcia1w3ysb8z7s3187ph5g052bssd3w01kim6g"; depends=[curl dplyr httr purrr rlang XML xml2]; };
   washi = derive2 { name="washi"; version="0.2.0"; sha256="04cibvi0d9spx8h0r28m1sz5drrkiblzfp63v6csm2n4dv55x075"; depends=[cli flextable ggplot2 officer scales systemfonts]; };
@@ -20263,13 +20576,13 @@ in with self; {
   watson = derive2 { name="watson"; version="0.4"; sha256="02wf4nh8gqq0ks9mzv4w1ly194syiixrfr8b6c61m90qwswglx1l"; depends=[Rcpp RcppArmadillo Tinflex]; };
   wav = derive2 { name="wav"; version="0.1.0"; sha256="1f5y53max7vliq4sq66hqjjns8s9lsx9pkdjk6rm929gk371x7by"; depends=[Rcpp]; };
   wavScalogram = derive2 { name="wavScalogram"; version="1.1.3"; sha256="06a38hvggvx39h0m7g35r0d4v8gbi1a5m0x1kv9q88vngwm4mxkv"; depends=[abind fields]; };
-  waveband = derive2 { name="waveband"; version="4.7.2"; sha256="1aa1rdwpfj3fx3xc7i9h0la268yv7hsm1fxndq3rk5slzy12zq8z"; depends=[wavethresh]; };
+  waveband = derive2 { name="waveband"; version="4.7.3"; sha256="08pa6vasv5miyw492ybwlszhk12ws61qd7a1rwjm1xkl838ca7kp"; depends=[wavethresh]; };
   waved = derive2 { name="waved"; version="1.3"; sha256="120dh64288daiq3k9ixcqxscy3brafwvv1964ndab1am0w466bqc"; depends=[]; };
   wavelets = derive2 { name="wavelets"; version="0.3-0.2"; sha256="07706rsjdmzj46ib2kfm5lfk4bnm2wfw7rby0ixs6x0myyzxdl92"; depends=[]; };
   wavemulcor = derive2 { name="wavemulcor"; version="3.1.2"; sha256="0a9qhcgf0l3zpwq8m476py94wb4rasy6a8xj302y6kwg3gvh1smm"; depends=[plot3D RColorBrewer waveslim]; };
   waver = derive2 { name="waver"; version="0.3.0"; sha256="1yhbp1jimx33g4sjigr5vmqqrinz1mdfgvkaaj4y2gcx7sihiiwx"; depends=[geosphere sf]; };
   waves = derive2 { name="waves"; version="0.2.5"; sha256="1ggpldwdgc97jp03n3z5s8hw3ib6q09yyinryz78xs798v9l4qdl"; depends=[caret dplyr ggplot2 lifecycle magrittr pls prospectr randomForest readr rlang scales spectacles stringr tibble tidyr tidyselect]; };
-  waveslim = derive2 { name="waveslim"; version="1.8.4"; sha256="1510xpkgrhdw394m5anxccdczjikcxazyd09ix2z73i15akyx3j0"; depends=[]; };
+  waveslim = derive2 { name="waveslim"; version="1.8.5"; sha256="0xd7006skrsvkwj4pkxqbfsbs58rfcpfcfk1lf0gsd2y0wisi60y"; depends=[multitaper]; };
   wavethresh = derive2 { name="wavethresh"; version="4.7.2"; sha256="0mmn8f5x8iw8vn0zsskzs3g41bm28prvzy9bmbng8va94g5795ws"; depends=[MASS]; };
   waydown = derive2 { name="waydown"; version="1.1.0"; sha256="1yjx9cd8h8rsi44s7dcqrvfmsbjhw7vkg2z7bl4knsgbki0c978g"; depends=[Matrix numDeriv]; };
   waywiser = derive2 { name="waywiser"; version="0.5.1"; sha256="1ffi4422dph90lwdc72za0sj224mwwddr66awf9yicszj42a6q81"; depends=[dplyr fields FNN glue hardhat Matrix purrr rlang sf spdep tibble tidyselect vctrs yardstick]; };
@@ -20280,7 +20593,7 @@ in with self; {
   wbsts = derive2 { name="wbsts"; version="2.1"; sha256="07h3wqmb9ya878fwdj49r0npks0pnd3jlnzri1cmf27c691hwka4"; depends=[mvtnorm Rcpp wavelets]; };
   wcde = derive2 { name="wcde"; version="0.0.7"; sha256="1wyq4m6ziv4b8zkzg3gjjnyhj2bg18ikfxz98q9c2nxqdiq4kbir"; depends=[countrycode dplyr forcats magrittr progress purrr RCurl stringr tibble tidyr]; };
   wcep = derive2 { name="wcep"; version="1.0.2"; sha256="0ydlfd6ngmrccaf9zybyzp11x98kih40kj3i2dq81ixxsgk2pjnq"; depends=[coin dplyr progress tidyr]; };
-  wconf = derive2 { name="wconf"; version="1.0.0"; sha256="1a2h8zzkb1lmk29f0i724df6rr4x9azn5bbkg23i8j7qy23vdsmv"; depends=[]; };
+  wconf = derive2 { name="wconf"; version="1.1.0"; sha256="0860shxvyzgvbnfr0xrpi5cx0r5n6bcrk6ivhgryn48r0k3yrlp4"; depends=[]; };
   wcox = derive2 { name="wcox"; version="1.0"; sha256="13shz5iz2ab9yqp24m6z7ciw70sdg2jdyqifmshq4flp4a737fr7"; depends=[dplyr survival tidyr]; };
   wdm = derive2 { name="wdm"; version="0.2.4"; sha256="1lrmscy29ir292vxrgr5b1nprbi1zp3rj65nq963kf9gx829rlg2"; depends=[Rcpp]; };
   wdman = derive2 { name="wdman"; version="0.2.6"; sha256="0n0wwb9ip6qc8qzdxn4dsqfbc8b3f607n8l6jigryd7g83ibnbp6"; depends=[assertthat binman processx semver yaml]; };
@@ -20297,11 +20610,10 @@ in with self; {
   webdeveloper = derive2 { name="webdeveloper"; version="1.0.5"; sha256="1nw97df9q0dpzl82pdybw527hc407ch2xg8f0s2z4kf89yp6ckhg"; depends=[future html5 httpuv promises readr stringi]; };
   webdriver = derive2 { name="webdriver"; version="1.0.6"; sha256="0k87any9rvv367p2zwy89r3rxszsq3w78pzdq36by4ijn659la2l"; depends=[base64enc callr curl debugme httr jsonlite R6 showimage withr]; };
   webexercises = derive2 { name="webexercises"; version="1.1.0"; sha256="1r2wgg89a84q54mrwqv4wcsjvcndiwwjn6rk7qz37pfyciv68hzy"; depends=[jsonlite knitr rmarkdown rstudioapi yaml]; };
-  webfakes = derive2 { name="webfakes"; version="1.3.0"; sha256="1w3ysb5m9pv74wdp75kaa6fzw44pdrij9wiq50mhivvbgh70xsi6"; depends=[]; };
+  webfakes = derive2 { name="webfakes"; version="1.3.1"; sha256="0c4ja653fzamafkz7chfv16f1h7iibah683ma8sk2yaayywp7j47"; depends=[]; };
   webglobe = derive2 { name="webglobe"; version="1.0.3"; sha256="0gbg4pai4cn7hdc1943aqpx4bn3vgc82zp93a1wl6bmmajv1da4b"; depends=[geojsonio httpuv jsonlite]; };
-  webmap = derive2 { name="webmap"; version="1.0.7"; sha256="0md00ahy6v8rhr1ch6nikqgjs86arbal48d7k2hl3q75f15jx0v9"; depends=[checkmate htmltools htmlwidgets leaflet]; };
+  webmap = derive2 { name="webmap"; version="1.1.0"; sha256="1j73d0hx9rrvc81id98lp2s2ya4whdkppw27cbz4rcwpa6lgzyg3"; depends=[checkmate htmltools htmlwidgets leaflet]; };
   webmockr = derive2 { name="webmockr"; version="0.9.0"; sha256="1a590fyzmag1p6c9a82yp93wd1s4jdznk0416i0pv8r5jwarkdv7"; depends=[base64enc crul curl fauxpas jsonlite magrittr R6 urltools]; };
-  webmorphR = derive2 { name="webmorphR"; version="0.1.1"; sha256="1f3sjzck4ys1knn2jmk472yww65wblrdwdlvn1gz2a00nc738rn4"; depends=[dplyr geomorph ggplot2 httr jsonlite magick progress rsvg]; };
   webp = derive2 { name="webp"; version="1.2.0"; sha256="0srmqrjff3c15d2921rd3b203c6qq170gschbp92fi3d3qshv0fk"; depends=[]; };
   webr = derive2 { name="webr"; version="0.1.5"; sha256="03yhlla74i71nphrfhr5sd57ykj7rjanh2a8nw3cq22rg9g668jk"; depends=[dplyr flextable ggforce ggplot2 magrittr moonBook psych purrr rlang rrtable scales shiny sjlabelled stringr tibble tidyr tidyselect vcd ztable]; };
   webreadr = derive2 { name="webreadr"; version="0.4.0"; sha256="0l3l5g4zj5faxqi1kqwx9lq91gbj40z2q3csrsmpal08qnwkxs90"; depends=[Rcpp readr]; };
@@ -20309,7 +20621,7 @@ in with self; {
   webshot = derive2 { name="webshot"; version="0.5.5"; sha256="04xrrf72323sgzsdkbl05p2fdsi486i9avrrxvw0l3n8r8y92xfn"; depends=[callr jsonlite magrittr]; };
   webshot2 = derive2 { name="webshot2"; version="0.1.1"; sha256="1i4432ifw6nxid9cjgly5qpirj245pvh1vfvhm695z3grkk5nvlv"; depends=[callr chromote later magrittr promises]; };
   websocket = derive2 { name="websocket"; version="1.4.1"; sha256="1ks9cyj39jnb0rkx2ii3ckmpl373m5f8sz0i4q3gk7kkv3js07r8"; depends=[AsioHeaders cpp11 later R6]; };
-  webtrackR = derive2 { name="webtrackR"; version="0.1.0"; sha256="0ksfrwmbcl6ss1pyj696k1swrdpn6hv6pq4844rrjq2p42cgybnw"; depends=[data_table httr igraph rvest tibble urltools]; };
+  webtrackR = derive2 { name="webtrackR"; version="0.3.1"; sha256="18lch5l2i6pkwsba32mlnw13m2drqn1mqj9ivdihz8d1jmq4ikz0"; depends=[adaR data_table fastmatch httr]; };
   webuse = derive2 { name="webuse"; version="0.1.3"; sha256="09xvw0v991cq1ck2kfxblp5cngfh9j6swvh5xv420mvky0kshv32"; depends=[haven]; };
   webutils = derive2 { name="webutils"; version="1.2.0"; sha256="0g3zrbwiyq9z0chc66dr8gndqs0xdqkc49bpisbb7ns3g0fkl92i"; depends=[curl jsonlite]; };
   wec = derive2 { name="wec"; version="0.4-1"; sha256="10lqh43536d44d6082rpp11q1323pmjbmgrgb8v9mrk9c1ysf50w"; depends=[dplyr]; };
@@ -20322,7 +20634,6 @@ in with self; {
   weightedGCM = derive2 { name="weightedGCM"; version="0.1.0"; sha256="04c24mxpvqdaprg6627w84ikmwxy96c1zcifn2y5n9ir7dlih5r3"; depends=[GeneralisedCovarianceMeasure mgcv xgboost]; };
   weightedRank = derive2 { name="weightedRank"; version="0.2.5"; sha256="0sz2d482cjp0z2wxlqjq745xz3ap6h7v03l19q4y99p86909i0v4"; depends=[mvtnorm sensitivitymv]; };
   weightedScores = derive2 { name="weightedScores"; version="0.9.5.3"; sha256="1wf01z94snwbqp22waz7qays3ymg5lsxpfpafdarad2b6mg5j2g8"; depends=[mvtnorm rootSolve]; };
-  weightedZdiff = derive2 { name="weightedZdiff"; version="0.1.0"; sha256="1mrhjg0h7qiwya8jrmf5h4gc352ahc6fczlk5kfhqw5vkwr0b1k3"; depends=[]; };
   weightr = derive2 { name="weightr"; version="2.0.2"; sha256="1qsyak91kdgv48wf6qhpfbiirlg4ba9w6rw8ynjcsnqqdvmly1lb"; depends=[ggplot2 scales]; };
   weights = derive2 { name="weights"; version="1.0.4"; sha256="1fnchf7f0hyl514bk8sc3l884kg25kb5xm4mc2l28n6hm7l6bgpg"; depends=[gdata Hmisc lme4 mice]; };
   weird = derive2 { name="weird"; version="1.0.2"; sha256="1xn1a7ssdwjvqynh5crr9dqf81smm1ldix1xlgfm42mpc478wplb"; depends=[aplpack broom cli crayon dbscan dplyr evd ggplot2 interpolation ks purrr rlang robustbase rstudioapi stray tibble]; };
@@ -20337,7 +20648,6 @@ in with self; {
   wfindr = derive2 { name="wfindr"; version="0.1.0"; sha256="0m5xj50hqdjj4lpbgx1kp3my4njr0nz09hd63rf4qf1ls8r7zil9"; depends=[dplyr magrittr]; };
   wflo = derive2 { name="wflo"; version="1.9"; sha256="1lxndfm58jz9q7vg1w9jzdf0m3w504hsx7xcsjj78s9sn8d4a0xq"; depends=[emstreeR plotrix progress sf terra]; };
   wgaim = derive2 { name="wgaim"; version="2.0-1"; sha256="1qiyfkpsbzjr9xsq5kqq6rlqpndngkn2irdfh3gyi45h6hn118j4"; depends=[ggplot2 qtl]; };
-  wgeesel = derive2 { name="wgeesel"; version="1.5"; sha256="0lybvsq5168cjybzv2dbyx2z8aakcx7i7ivm8zc90haiispm9n5x"; depends=[bindata CRTgeeDR geepack MASS PoisNor]; };
   whSample = derive2 { name="whSample"; version="0.9.6.2"; sha256="1dkw155xk36r9vmkqxlg2vw45nbpypivd8q5v3i5995biyib4l2k"; depends=[bit64 data_table dplyr magrittr openxlsx purrr]; };
   whatthreewords = derive2 { name="whatthreewords"; version="0.1.3"; sha256="1shr4d1q2vallz251s6h0m2ncbx7lh0i194pm416q32ha0cz8ska"; depends=[dplyr httr2]; };
   wheatmap = derive2 { name="wheatmap"; version="0.2.0"; sha256="064idlrnb85xxav39gp3n854fic6514khvazrf5d0x48crpzyvdp"; depends=[colorspace RColorBrewer]; };
@@ -20346,7 +20656,7 @@ in with self; {
   whereport = derive2 { name="whereport"; version="0.1"; sha256="1gdqzr2hrnpxbwl7cfps4m3xja8wkgwfs50i2nailybympvdnxm4"; depends=[dplyr]; };
   whippr = derive2 { name="whippr"; version="0.1.3"; sha256="17r1wcgpriynpd3z7l6wa4al72x4ad07y1mr5jjafxgms6l554lx"; depends=[broom cli dplyr ggplot2 glue lubridate magrittr minpack_lm nlstools patchwork pillar purrr readxl rlang stringr tibble tidyr zoo]; };
   whisker = derive2 { name="whisker"; version="0.4.1"; sha256="1g7jy6dnc5igs7yqy1n7cmy0ia8dm2yi3qj1mil2y0q88m4m2ldz"; depends=[]; };
-  whitebox = derive2 { name="whitebox"; version="2.3.4"; sha256="044r2aczhr7l83xx00zwzlhr7mlqs9pwl6ix93j8ch19j2dcrsg5"; depends=[]; };
+  whitebox = derive2 { name="whitebox"; version="2.4.0"; sha256="0bprfkqik3ix6lyfdq6wvp0xfbi1z539w4mm7bk1696s55sxnw27"; depends=[]; };
   whitechapelR = derive2 { name="whitechapelR"; version="0.3.0"; sha256="0mnq5m59mw8w5g1p0h2xzlz738j397b3444km59bm5yln3j0nsbi"; depends=[igraph plyr]; };
   whitening = derive2 { name="whitening"; version="1.4.0"; sha256="1gc5pf4b9s8w4jh1wygyb9a9w6hi4zfd7ivlwshhzrmb43x5srsp"; depends=[corpcor]; };
   whitestrap = derive2 { name="whitestrap"; version="0.0.1"; sha256="1jcnxqxvkhyz9j6jay5834ncv5fxb9qiyyyj3b8al75mqknmn8ra"; depends=[]; };
@@ -20359,7 +20669,7 @@ in with self; {
   widyr = derive2 { name="widyr"; version="0.1.5"; sha256="05300hslrfpsqaxzzbmxgl2s2dz3wldpmnxh9hzgy97xkdc0c6fn"; depends=[broom dplyr Matrix purrr reshape2 rlang tibble tidyr tidytext]; };
   wiesbaden = derive2 { name="wiesbaden"; version="1.2.9"; sha256="0sf61xrkzlk1pbjv1ha019nav20a5w1svx5jnsyck5050xxs2y06"; depends=[httr jsonlite keyring readr stringi stringr xml2]; };
   wig = derive2 { name="wig"; version="0.1.0"; sha256="0gj8sxd5903h0rizd260ffskarywkvf87ck4ixf8gb1z1vgqf8i4"; depends=[dplyr magrittr stringr tibble]; };
-  wikiTools = derive2 { name="wikiTools"; version="0.0.6"; sha256="1h0xi7vw2vzmarxfx0gdy895sh53mz4gj4zwrpynwc9d8cppx50q"; depends=[httr jsonlite ratelimitr WikidataQueryServiceR WikidataR]; };
+  wikiTools = derive2 { name="wikiTools"; version="1.2.4"; sha256="1s6rssxalg3p4xfh1dc2igiqpiwyd8h5dlyfs5vwixn7pjyd3ac5"; depends=[httr jsonlite ratelimitr]; };
   wikibooks = derive2 { name="wikibooks"; version="0.2.1"; sha256="1ws6spwxxcnjrzcngbr6n4hqy1di7s2h8iz6a62gyw84kpl542bw"; depends=[]; };
   wikifacts = derive2 { name="wikifacts"; version="0.4.2"; sha256="1fw1chha6mcrmv1f9rjg01g84bgzkgf1h76l926brjs5gsn4i414"; depends=[magrittr rvest xml2]; };
   wikilake = derive2 { name="wikilake"; version="0.7.0"; sha256="0niym9azy4qzcr4rriw0bfd97scx1mdpx67szinj7qsh569xb61m"; depends=[dplyr maps rvest selectr sp stringi stringr tidyr units WikipediR xml2]; };
@@ -20371,15 +20681,15 @@ in with self; {
   wildlifeDI = derive2 { name="wildlifeDI"; version="1.0.0"; sha256="1jl21mnsl993fc3y9z56zb8yfz3j0hvg8f9q69ghlicx139mik0m"; depends=[adehabitatLT dplyr lwgeom move2 sf sp units]; };
   wildmeta = derive2 { name="wildmeta"; version="0.3.2"; sha256="1ixrajbxmlsr8xniagywlfd8knik7c93phvsdbpas0k8ai7wfv9r"; depends=[clubSandwich metafor robumeta sandwich]; };
   wildpoker = derive2 { name="wildpoker"; version="1.1"; sha256="1302ain55spz34irmq49sp9b1pvrn2nxmzmqs8m9wdk6g82h3s27"; depends=[]; };
-  wildrwolf = derive2 { name="wildrwolf"; version="0.6.1"; sha256="1cl3rv8v3y8y86cl6y5da63qkzha37f20naaqrypk65rn47savig"; depends=[dreamerr fabricatr fixest fwildclusterboot MASS]; };
   wilson = derive2 { name="wilson"; version="2.4.2"; sha256="050hi6rigs024is1ry0yymqapgqfhzpp0ghk5ya028k71k22lksx"; depends=[circlize colourpicker ComplexHeatmap data_table DESeq2 DT factoextra FactoMineR ggplot2 ggrepel gplots heatmaply log4r openssl plotly plyr R6 RColorBrewer reshape rintrojs rje rjson RJSONIO scales shiny shinycssloaders shinydashboard shinyjs shinyWidgets viridis zip]; };
   winch = derive2 { name="winch"; version="0.1.1"; sha256="1ib3qz09r40gwxvzsapi6xs80phxxn2x04f6vgsvrbplfy5nxg6k"; depends=[lifecycle procmaps]; };
   windAC = derive2 { name="windAC"; version="1.2.10"; sha256="077kl7j1db0g2pnr7gc91x2anbw80y5sbl4gy49rzclbhhnwjlrs"; depends=[mvtnorm sf]; };
-  windex = derive2 { name="windex"; version="2.0.7"; sha256="0dhan3wqfr5997kmpl6visijij15a53swc9dcv90ymd5l7minvdr"; depends=[ape geiger phangorn phytools scatterplot3d]; };
+  windex = derive2 { name="windex"; version="2.0.8"; sha256="0i8qvgc9r8j082m93bsvl082h32bsvjwqzmyn8cb6qnpynn4k2a0"; depends=[ape geiger phangorn phytools scatterplot3d]; };
   windows_pls = derive2 { name="windows.pls"; version="0.1.0"; sha256="1n8az7zsbj2xlgkws7rfnk4ihnj1lchsjvglm7qnkrmjchj8asmn"; depends=[dplyr ggplot2 mdatools readr stringr tidyr tidyverse]; };
   windsoraiR = derive2 { name="windsoraiR"; version="0.1.2"; sha256="1smd3zw5ra1fba6mds3diadcmbw59jlvmrvfzzi4fss91wv50jql"; depends=[jsonlite]; };
   winfapReader = derive2 { name="winfapReader"; version="0.1-5"; sha256="01hc0kcm7qfzk47rci6lfmrqs4zfj8z7abqydgi2ckq8n1k2pd0h"; depends=[lubridate]; };
-  wingen = derive2 { name="wingen"; version="2.1.1"; sha256="1jd2zk3qrhj0k1n63qv60212ap1b5rk37h39i29b0vfx5sl0flqq"; depends=[automap crayon dplyr furrr gdistance ggplot2 hierfstat magrittr pegas purrr raster rlang sf terra tidyr tidyselect vcfR viridis]; };
+  wingen = derive2 { name="wingen"; version="2.1.2"; sha256="0a4lhsvwd1jh48nb2b6nxkybp4j5pblf94j8pmx6v2yq11k2ddki"; depends=[automap crayon dplyr furrr gdistance ggplot2 hierfstat magrittr pegas purrr raster rlang sf terra tidyr tidyselect vcfR viridis]; };
+  winputall = derive2 { name="winputall"; version="1.0.1"; sha256="17jwnnzy5a38a2n9ixhs8vk8ybq2a8lhjv5hfx4dwdg73iklnmib"; depends=[BH dplyr future future_apply ks LearnBayes MASS Matrix matrixcalc matrixStats plm Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
   wiqid = derive2 { name="wiqid"; version="0.3.3"; sha256="1d5bckkr6cnixccxaa14n7vbsya5cc00y9mryy1j69shhsmxp5ks"; depends=[coda HDInterval MASS mcmcOutput plotrix truncnorm]; };
   withdots = derive2 { name="withdots"; version="0.1.1"; sha256="0vpbw9swyi8qf5s2nlml9pdmrzvwn4rpm4gbfsc0vikbzp29dmvi"; depends=[]; };
   withr = derive2 { name="withr"; version="3.0.0"; sha256="1rz0pgm1bg3cnc09s8q8yyg83lmf8bv9arlasciqqr0fdpgfwy4c"; depends=[]; };
@@ -20389,8 +20699,8 @@ in with self; {
   wkutils = derive2 { name="wkutils"; version="0.1.3"; sha256="01gsvyzxd89j979zdm8q159wgkha277xwsn097ja5absxlny6991"; depends=[Rcpp tibble vctrs wk]; };
   wmm = derive2 { name="wmm"; version="1.1.1"; sha256="0qy4cp4d8nlcqlcs4mqjv1f1kf1yh9y2wvh1ak6f049qlj7yfwfb"; depends=[]; };
   wmwpow = derive2 { name="wmwpow"; version="0.1.3"; sha256="03rd75r4wih1w7srhnwqxjkirisb43y1sd2f1wzixqj8lq0dmb25"; depends=[lamW MASS smoothmest]; };
-  wnl = derive2 { name="wnl"; version="0.8.0"; sha256="06vq8pwszh3nplh7j7lb65amnf0l0pzsnpg1icsyralc8gmzv91h"; depends=[numDeriv]; };
-  wnominate = derive2 { name="wnominate"; version="1.4"; sha256="1zidc30j3hqa54spafz2h27a719s347k4i6qqs2jy9zk0ngrgiqz"; depends=[pscl]; };
+  wnl = derive2 { name="wnl"; version="0.8.1"; sha256="1jsizbn4kampn8gqm3ry0m6a5sv9nb8adih8a7pnd2g3h0rjm7lx"; depends=[numDeriv]; };
+  wnominate = derive2 { name="wnominate"; version="1.5"; sha256="1lqz57438ikcbf2smi54qavwnw6p27qqh0ri33ijyzmcl6yakncg"; depends=[pscl]; };
   wodds = derive2 { name="wodds"; version="0.1.0"; sha256="00rk7wmz0rknh4v9p0r6syi1c5dch7wkq7cz9zg6n8d72sia4azv"; depends=[dplyr glue magrittr purrr tibble]; };
   woe = derive2 { name="woe"; version="0.2"; sha256="15mvcmwnrqxpzn054lq85vyzq5rgxkiwbd40gnn4s3ny1xdrwgsm"; depends=[]; };
   woeBinning = derive2 { name="woeBinning"; version="0.1.6"; sha256="0x890h5fh59n54587adyzphr956fkg3px8i7c378aq1fs7k35gxs"; depends=[]; };
@@ -20401,11 +20711,10 @@ in with self; {
   word_alignment = derive2 { name="word.alignment"; version="1.1"; sha256="0inlq96j4zkjncz2v66amz91l5y3b5lx49qi2jg6jbqdldw7aa02"; depends=[data_table openxlsx]; };
   word2vec = derive2 { name="word2vec"; version="0.4.0"; sha256="14ba0cj430d02bd6fay3nl4ldwqyj77iwjm4gzgdc0f6sx597iiq"; depends=[Rcpp RcppProgress]; };
   wordPuzzleR = derive2 { name="wordPuzzleR"; version="0.1.1"; sha256="04cxniagz9y2szq2b9qhz8lfjsmbdc6d928rfayy22yigy6mwi1i"; depends=[purrr scales stringr]; };
-  wordbankr = derive2 { name="wordbankr"; version="1.0.3"; sha256="1c09nj9gx71an6w6l4z4g08xpp8a36kygh4q140gi19d36ywjdra"; depends=[assertthat DBI dbplyr dplyr glue jsonlite lifecycle purrr quantregGrowth rlang RMySQL robustbase stringr tidyr]; };
   wordcloud = derive2 { name="wordcloud"; version="2.6"; sha256="0j96yyvm6bcrrpbdx4w26piqx44a0vbsr3px9cb4zk8a8da6jwak"; depends=[RColorBrewer Rcpp]; };
   wordcloud2 = derive2 { name="wordcloud2"; version="0.2.1"; sha256="1a2q42bn65q4idxq0vxysyam16q6c18inxv4dqhfy0x52j8z9x6k"; depends=[base64enc htmlwidgets]; };
   wordler = derive2 { name="wordler"; version="0.3.1"; sha256="0pvnijh2gvwjbd86ivky0zbi8y1x40xazsv2bdy5s2rfsscf4l88"; depends=[crayon]; };
-  wordnet = derive2 { name="wordnet"; version="0.1-16"; sha256="0biivpg3zkjr5ccjricsj9cw14a2a4n4cri6gcl9m1r9amhh54iv"; depends=[rJava]; };
+  wordnet = derive2 { name="wordnet"; version="0.1-17"; sha256="1m08k2z7a1zf41n8gnffv6q3b3rgssw3smdwy7v9fjvngf04w7ax"; depends=[rJava]; };
   wordpiece = derive2 { name="wordpiece"; version="2.1.3"; sha256="1xg9xsaqpz5l2f2vk1qnc7cwplnwvv6jl9wbdg0f92klhk1nanyp"; depends=[dlr fastmatch memoise piecemaker rlang stringi wordpiece_data]; };
   wordpiece_data = derive2 { name="wordpiece.data"; version="2.0.0"; sha256="0x5m8vkszxpz8mf9pblzm39wpaa247336zkja560zsqgzdvcj3hx"; depends=[]; };
   wordpredictor = derive2 { name="wordpredictor"; version="0.0.3"; sha256="0079nkjimzz07yzqx8ksgk7isi0b5j1nxmisicbc8qvsamirm68v"; depends=[digest dplyr ggplot2 patchwork SnowballC stringr]; };
@@ -20422,8 +20731,7 @@ in with self; {
   worrrd = derive2 { name="worrrd"; version="0.1.0"; sha256="1czzm30xwssjrhw7kqw23d2s03v9lbwa0crld9qf9q80h5zc0kxi"; depends=[cowplot dplyr ggfittext ggplot2 ggtext glue magrittr purrr stringr tibble yaml]; };
   wosr = derive2 { name="wosr"; version="0.3.0"; sha256="0fl9mizrjg3r7n7gslsxgaw3k2v63scqmvnv6341q8sq7018hzln"; depends=[httr jsonlite pbapply xml2]; };
   wowa = derive2 { name="wowa"; version="1.0.2"; sha256="0i677bzgd9qx57x7n7qsaqpacgpap2d0n8gq1lc9hsmg13bs2v8f"; depends=[Rcpp]; };
-  woylier = derive2 { name="woylier"; version="0.0.5"; sha256="1xa2qdkkqnd6c98a15rfsa3m8jil7gipr4mann3dhkf0zl59g0a4"; depends=[dplyr geozoo tibble tourr]; };
-  wpa = derive2 { name="wpa"; version="1.9.0"; sha256="0pdvj8q74dd7z3xdp4cb2j85jfhiljvribr23n99k7bi6kdxwyxi"; depends=[data_table dplyr DT ggplot2 ggraph ggrepel ggwordcloud htmltools igraph magrittr markdown networkD3 proxy purrr reshape2 rmarkdown scales tidyr tidyselect tidytext]; };
+  wpa = derive2 { name="wpa"; version="1.9.1"; sha256="0likivdwxl66nj6wxkcssqgz8slhagbw9qhxbxwsw10gyq4769rb"; depends=[data_table dplyr DT ggplot2 ggraph ggrepel ggwordcloud htmltools igraph magrittr markdown networkD3 proxy purrr reshape2 rmarkdown scales tidyr tidyselect tidytext]; };
   wpp2008 = derive2 { name="wpp2008"; version="1.0-1"; sha256="0gd3vjw1fpzhp3qlf1jpc24f76i0pxsjs5pb1v3k2si6df7q4msd"; depends=[]; };
   wpp2010 = derive2 { name="wpp2010"; version="1.2-0"; sha256="1h87r1cn4lnx80dprvawsyzfkriscqjgr27gvv7n19wvsx8qd57k"; depends=[]; };
   wpp2012 = derive2 { name="wpp2012"; version="2.2-1"; sha256="00283s4r36zzwn67fydrl7ldg6jhn14qkf47h0ifmsky95bd1n5k"; depends=[]; };
@@ -20431,15 +20739,15 @@ in with self; {
   wpp2017 = derive2 { name="wpp2017"; version="1.2-3"; sha256="1w7cg31larvgaah16ch6z11jjq02i5f20hfwg63wvw5p6fyafivz"; depends=[data_table]; };
   wpp2019 = derive2 { name="wpp2019"; version="1.1-1"; sha256="12h1z082xs9l58v69nilaqhdgz5jd0c90p85szibfzhfb7vs6xl5"; depends=[data_table]; };
   wppExplorer = derive2 { name="wppExplorer"; version="2.3-4"; sha256="1pbmjg6y543aih8mxf9njfwpm090virhgqf8w0a5yx0jdfjwmz04"; depends=[DT ggplot2 googleVis Hmisc plyr reshape2 shiny shinyjs shinythemes wpp2019]; };
-  wql = derive2 { name="wql"; version="1.0.0"; sha256="1s702gvwx49wky2ylh8q5h1vmh6sls2pq69w6jcijh1qs587dngs"; depends=[ggplot2 reshape2 zoo]; };
+  wql = derive2 { name="wql"; version="1.0.1"; sha256="1n28n7ijfypnqk7cwnvmkzhvp65sh7b00a9c2z72kdbxha0yn74w"; depends=[ggplot2 reshape2 zoo]; };
   wqs = derive2 { name="wqs"; version="0.0.1"; sha256="14qaa9g9v4nqrv897laflib3wwhflyfaf9wpllmbi5xfv9223rcg"; depends=[glm2 Rsolnp]; };
   wqspt = derive2 { name="wqspt"; version="1.0.1"; sha256="1xd588kw171djx7q21b2jjarhbzd4i0gx7ccv1j1wyl95yzq07ba"; depends=[cowplot extraDistr ggplot2 gWQS mvtnorm pbapply rlang viridis]; };
   wqtrends = derive2 { name="wqtrends"; version="1.4.2"; sha256="17hgh4kp5nlq5n8nrd0zrjj87rlk8ny67nbdlqnr9q0y5yxbyw63"; depends=[dplyr ggplot2 lubridate mgcv mixmeta plotly purrr tibble tidyr viridisLite]; };
   wrGraph = derive2 { name="wrGraph"; version="1.3.7"; sha256="127s4i73ww817q9k7x463633rlk8fj0kjvpwqwcaxswdc7a3ks7b"; depends=[lattice RColorBrewer wrMisc]; };
-  wrMisc = derive2 { name="wrMisc"; version="1.14.2"; sha256="0y8g33vsrlzr6x0mpk7vr01wbv96w4xhg8byvmi817lwvmfzl5pm"; depends=[MASS]; };
+  wrMisc = derive2 { name="wrMisc"; version="1.15.0.3"; sha256="0680lxkwyxyy0ks3cyp41gxkv7vjf235mwml5ixk07rkin195w9c"; depends=[MASS]; };
   wrProteo = derive2 { name="wrProteo"; version="1.11.0.1"; sha256="0v9a62r4881aax5h5mnzgjzk2mgkrfa14lvy2w8i9mhcz5q6dg7k"; depends=[knitr limma wrMisc]; };
   wrTopDownFrag = derive2 { name="wrTopDownFrag"; version="1.0.2"; sha256="1rdg6rzjz2h514i3c8z89mvj2j3h1s7rr5fry2mq3xvrwrgd3738"; depends=[wrMisc wrProteo]; };
-  wrangle = derive2 { name="wrangle"; version="0.6.3"; sha256="11bryvsggjphcrz7a92xanx9wcnaxmgm503ns9yq3nxfpyvxfgvf"; depends=[dplyr magrittr rlang tidyr]; };
+  wrangle = derive2 { name="wrangle"; version="0.6.4"; sha256="04l9m3x0yj5nccqpyaxd55dzw7mk2kjyrsysn680wx98jhwj05b2"; depends=[dplyr magrittr rlang tidyr]; };
   wrappedtools = derive2 { name="wrappedtools"; version="0.9.5"; sha256="1rpbfsh8cs07icc8440rmcmgwzjwrax86hk7hx7zwmsjigap3pxi"; depends=[boot broom coin DescTools dplyr flextable forcats ggplot2 glue kableExtra knitr lifecycle purrr rlang rlist stringr tibble tidyr]; };
   wrappr = derive2 { name="wrappr"; version="0.1.0"; sha256="0n60var32fyk40mgk6crq565qcpif8cbgmqkqkl0a2ip1l0vrs30"; depends=[]; };
   wrapr = derive2 { name="wrapr"; version="2.1.0"; sha256="1r2mqgf4wiwx83lgs20r59c3h7yynkaif4qp6lbd20y06avb1jz1"; depends=[]; };
@@ -20447,7 +20755,7 @@ in with self; {
   write_snns = derive2 { name="write.snns"; version="0.0-4.2"; sha256="0sxg7z8rnh4lssbivkrfxldv4ivy37wkndzzndpbvq2gbvbjnp4l"; depends=[]; };
   writexl = derive2 { name="writexl"; version="1.5.0"; sha256="1kkd17xw7giy1k2azw1xnagka7ihicp17bi7nzlm3gqay1cdqlz2"; depends=[]; };
   wrswoR = derive2 { name="wrswoR"; version="1.1.1"; sha256="1q0nc08q8f3kl9yvcivzylykk1ar5j5dw3ian2y9nrzgzri5l10i"; depends=[logging Rcpp]; };
-  wru = derive2 { name="wru"; version="3.0.1"; sha256="13vxhipyy5cl3i0gn7d8f5ljn0qxhjh35gy5kj2i2yczp1sfrnq1"; depends=[cli dplyr furrr future piggyback PL94171 purrr Rcpp RcppArmadillo rlang tidyr]; };
+  wru = derive2 { name="wru"; version="3.0.3"; sha256="1d8k9bmzwg11ypkhhcnj2l6i2qnk13a09la0nc713nlwc21zqc44"; depends=[cli dplyr furrr future piggyback PL94171 purrr Rcpp RcppArmadillo rlang tidyr]; };
   wsbackfit = derive2 { name="wsbackfit"; version="1.0-5"; sha256="18y2r6v19a4lnpa3y2q0whm5kizmd29r0abj7rcirb9fd5jqrsp2"; depends=[]; };
   wsjplot = derive2 { name="wsjplot"; version="0.1.0"; sha256="1vgf823j3ychdnvg4nq59ah4rkv5lpwbg0r7sijir2b18sgxsrbi"; depends=[dplyr ggplot2 magrittr scales stringr]; };
   wskm = derive2 { name="wskm"; version="1.4.40"; sha256="0x5nc3bwqawx0k95v088dsx83dm7lw5lkryjvq6bl57bgrcn7n0l"; depends=[fpc lattice latticeExtra]; };
@@ -20457,7 +20765,7 @@ in with self; {
   wtest = derive2 { name="wtest"; version="3.2"; sha256="063ax9mbb2dy33l1cl533mjzpvhf2akw3613pklfjg6bhprlniz7"; depends=[]; };
   wv = derive2 { name="wv"; version="0.1.2"; sha256="0dx33bs05k6zi6rnk12v6z2l2pvvx2jdl99vafbpyydf0ls4ppbk"; depends=[coda Rcpp RcppArmadillo simts]; };
   wwntests = derive2 { name="wwntests"; version="1.1.0"; sha256="0bs0i66ydy5zg66nwhniqzd000rc5qcmkliqpb3f9n749x2sj2f6"; depends=[fda ftsa MASS rainbow sde]; };
-  wxgenR = derive2 { name="wxgenR"; version="1.3.6"; sha256="1q9rfkb2iv0h1pcra0jg3s8xp57fhxfyn000sgf5gf67k62ia32x"; depends=[doParallel dplyr foreach lubridate magrittr msm plyr sm]; };
+  wxgenR = derive2 { name="wxgenR"; version="1.4.0"; sha256="00i89r7299psykl1pgaxp3hmkx7na0g9m0yh4gp68cnp6xla7wxh"; depends=[doParallel dplyr foreach lubridate magrittr msm plyr sm]; };
   wyz_code_metaTesting = derive2 { name="wyz.code.metaTesting"; version="1.1.22"; sha256="0xhcqqvh0lkw9mqdrib0q1inwgla5y9ayjc6pdkix6ckabfybagg"; depends=[crayon data_table tidyr wyz_code_offensiveProgramming]; };
   wyz_code_offensiveProgramming = derive2 { name="wyz.code.offensiveProgramming"; version="1.1.24"; sha256="1q3yn5yp2qlzqg1xpxlkpdkiij4kzwn9yj8mc9xxx4bxnbspkakq"; depends=[crayon data_table R6 stringr tidyr]; };
   wyz_code_rdoc = derive2 { name="wyz.code.rdoc"; version="1.1.19"; sha256="02k6wk45dn6i8kzxhgcxqxvrzxf063dny17jjnj83wsxx2b37jgv"; depends=[crayon data_table digest R6 stringr tidyr wyz_code_offensiveProgramming]; };
@@ -20472,7 +20780,7 @@ in with self; {
   xVA = derive2 { name="xVA"; version="1.1"; sha256="06y9qhly14y5r8d1g85jdzz8x5lwzfjkiy5zak6146mknl4nzz11"; depends=[data_table SACCR Trading]; };
   xadmix = derive2 { name="xadmix"; version="1.0.0"; sha256="0vrk40q9nn40aisvgj3pq9q6z5kb68j614wpg7bx98fx3gqnxzxv"; depends=[dplyr forcats ggplot2 magrittr rlang stringr tidyr viridis]; };
   xaringan = derive2 { name="xaringan"; version="0.30"; sha256="0gz52xwxa1w5im3rns805mgfagaqg9f8whjsrsk0yv9kc3j7mc5i"; depends=[htmltools knitr rmarkdown servr xfun]; };
-  xaringanExtra = derive2 { name="xaringanExtra"; version="0.7.0"; sha256="1snj4yf5mxn419d3qbm2pixj7gvhmf133sxvjbirjrr3ib6iyn84"; depends=[htmltools jsonlite knitr uuid]; };
+  xaringanExtra = derive2 { name="xaringanExtra"; version="0.8.0"; sha256="1w5j5lhp7vckx4pj2xy4q5kyw7yhdxfqnawl5ipbxj6cbsxq7js5"; depends=[htmltools jsonlite knitr uuid]; };
   xaringanthemer = derive2 { name="xaringanthemer"; version="0.4.2"; sha256="074lq9m61647ac7crjmpf8qjj4l60ps0ic4c4b83g47drar79v2z"; depends=[colorspace glue purrr whisker]; };
   xdcclarge = derive2 { name="xdcclarge"; version="0.1.0"; sha256="1j8wsidwmfjygqlwavxinv4bqc6rddy42jdmlknsjfrrs49yj8kn"; depends=[nlshrink Rcpp RcppArmadillo]; };
   xefun = derive2 { name="xefun"; version="0.1.5"; sha256="0rzd9xi5hxxbydzg67h17zb1q9qmw1y9790vy04k6kj444apxc2j"; depends=[data_table]; };
@@ -20488,7 +20796,7 @@ in with self; {
   xegaSelectGene = derive2 { name="xegaSelectGene"; version="1.0.0.0"; sha256="1vrs5d1p6x1c3n9pv6556185rx1a01zdsjqx8y5vpa37f8di7iwk"; depends=[]; };
   xergm_common = derive2 { name="xergm.common"; version="1.7.8"; sha256="03mjpafwfkmyj5ba84jydap9rp0i602izjlbd511xbxcw6dx2k0b"; depends=[ergm network]; };
   xesreadR = derive2 { name="xesreadR"; version="0.2.3"; sha256="1pvdx0mxg2f885bhy4hb3kqzcgva4q7hzzaipkfzyi5lnjdsbc81"; depends=[bupaR data_table dplyr lubridate purrr stringr tidyr XML xml2]; };
-  xfun = derive2 { name="xfun"; version="0.42"; sha256="02kmlp5hzkcs35hwbvz06178i9rn96yfh93n6swzr89b47nzmfq7"; depends=[]; };
+  xfun = derive2 { name="xfun"; version="0.45"; sha256="049nk6h9xbdn2i6m07s26rqn790adww2y6mya03v95yj5xfg05iq"; depends=[]; };
   xgb2sql = derive2 { name="xgb2sql"; version="0.1.2"; sha256="1gw5dw0ck5hip8mv347zaswrggk395bg2hgn02bvqs0d31jhmgvi"; depends=[data_table xgboost]; };
   xgboost = derive2 { name="xgboost"; version="1.7.7.1"; sha256="08wpxr8jkzsqb5zaw43bmq5r7k3jnb1ibjkliwh2ffjq7b7jr4gp"; depends=[data_table jsonlite Matrix]; };
   xgrove = derive2 { name="xgrove"; version="0.1-7"; sha256="0sfnylzpgqsg7jvcy9yjywj13zl6np59qiciw0yr8fm4d91sxwnh"; depends=[dplyr gbm rpart rpart_plot]; };
@@ -20496,6 +20804,7 @@ in with self; {
   xhaz = derive2 { name="xhaz"; version="2.0.1"; sha256="1kipqscniyb4s7p29pdkg8hg95wb78jpnax8qh058vzrk5vqz181"; depends=[gtools numDeriv optimParallel statmod stringr survexp_fr survival]; };
   xkcd = derive2 { name="xkcd"; version="0.0.6"; sha256="1z2y0ihn68ppay7xkglhw7djki5654g6z4bbpyy41if57z9q554f"; depends=[extrafont ggplot2 Hmisc]; };
   xkcdcolors = derive2 { name="xkcdcolors"; version="1.0"; sha256="07fnjv01r3b951dqca2zs9b9f6hsgbpbpsrggvb8rps53kpid0i7"; depends=[FNN]; };
+  xlcharts = derive2 { name="xlcharts"; version="0.0.2"; sha256="0kh6d0b6wlsf41dc5pbb9yns416svx8a7ls3vh1dq4hrsaxw9wjh"; depends=[reticulate writexl]; };
   xlcutter = derive2 { name="xlcutter"; version="0.1.1"; sha256="07gjsz8jab5f2c1v7rcfv9pva8hikdl94nzvixvg6v0a7sq7qa6h"; depends=[tidyxl]; };
   xlink = derive2 { name="xlink"; version="1.0.1"; sha256="02ahgjampy92gcwhv269px5w8651a7j50dn1295zwqxj44lk4g9q"; depends=[survival]; };
   xlsx = derive2 { name="xlsx"; version="0.6.5"; sha256="01r1ngdm51w18bdan8h94r91m731knkf04zal4g67mx3fpa5x31p"; depends=[rJava xlsxjars]; };
@@ -20508,32 +20817,32 @@ in with self; {
   xmlparsedata = derive2 { name="xmlparsedata"; version="1.0.5"; sha256="1c6bnz3ng1qw7sfip8wq3a4dn36a4d6rbja0sadn0a4pbsmk8q3n"; depends=[]; };
   xmlr = derive2 { name="xmlr"; version="0.1.2"; sha256="00mxdb4899sx5py0ngzh3dvhz1sqsar2hmsrkm4jf0b3q9psc86w"; depends=[]; };
   xmlrpc2 = derive2 { name="xmlrpc2"; version="1.1"; sha256="13rfw0civp3hzi4hn31x1idliid1qb73495x4c31z5msd35lzxrs"; depends=[base64enc curl xml2]; };
-  xmpdf = derive2 { name="xmpdf"; version="0.1.4"; sha256="0hqk40zwwxkx0zhw2a1phm49lwlwsbphhb3g87b1vvy3xsxilph6"; depends=[datetimeoffset jsonlite purrr R6 rlang]; };
+  xmpdf = derive2 { name="xmpdf"; version="0.2.1"; sha256="0pma8njk77ggpky6m4l9p7n7ardy41lsn0q67wkgr0mwgjjyil7w"; depends=[brio datetimeoffset jsonlite purrr R6 rlang stringi]; };
   xmrr = derive2 { name="xmrr"; version="1.1.1"; sha256="1kb4kzxb9rcx9fp1answln0sv9c3wdrk82gz79k0i9ypq7dls2ah"; depends=[dplyr ggplot2 purrr qpdf rlang tibble tidyr]; };
   xnet = derive2 { name="xnet"; version="0.1.11"; sha256="18lda1gv53awsbkk5p4bzrbilndgybdz8xc6lhl6wy647fw9q9hv"; depends=[]; };
   xoi = derive2 { name="xoi"; version="0.72"; sha256="0q1q43540qz97qad36dcwmcmgdci3sbhxk9li897gnjv9gjazdlr"; depends=[qtl]; };
-  xopen = derive2 { name="xopen"; version="1.0.0"; sha256="1vrvgdika1d63dwygynbv2wmd87ll8dji5dy89hj576n8hw601z2"; depends=[processx]; };
+  xopen = derive2 { name="xopen"; version="1.0.1"; sha256="1v4sna4md4cpqwi7802m4mfflgi506fxh78la0kam894qfw7icp3"; depends=[processx]; };
   xpectr = derive2 { name="xpectr"; version="0.4.3"; sha256="0qpv2r4dz5g37v2b6y5jscsxm1hdmimq8pm0dwwf8df0pp351r3b"; depends=[checkmate clipr dplyr fansi lifecycle plyr rlang rstudioapi testthat tibble withr]; };
   xplain = derive2 { name="xplain"; version="0.2.2"; sha256="152a83ckmhns6yniy87mmjva5bkv5x3phv63l1kkcmrr9bclfgz0"; depends=[httr RCurl readr XML]; };
   xplorerr = derive2 { name="xplorerr"; version="0.1.2"; sha256="0sca6nngjs6f51di4dgzx868p75bzas0msr0kgivavsv6rj5fz0r"; depends=[Rcpp shiny]; };
-  xportr = derive2 { name="xportr"; version="0.3.2"; sha256="1gj325cmx0p3ppkxc7grybi6pcq7dvdnglj0qfyxvard78majqpl"; depends=[cli dplyr glue haven lifecycle magrittr purrr readr rlang stringr tidyselect]; };
+  xportr = derive2 { name="xportr"; version="0.4.0"; sha256="0yxd94qr30lq8pmkc7cfxccnq5ln1sawk8bxpv1v29hgafnr2wgv"; depends=[checkmate cli dplyr glue haven lifecycle magrittr purrr readr rlang stringr tidyselect]; };
   xpose = derive2 { name="xpose"; version="0.4.18"; sha256="18l8dcg9zng47gzmyxf3ksz22xqxsyqz64bqlxg2yl6d068sk3k9"; depends=[dplyr ggforce ggplot2 purrr readr rlang stringr tibble tidyr vpc]; };
   xpose_nlmixr2 = derive2 { name="xpose.nlmixr2"; version="0.4.0"; sha256="0scq6brd7sn1ybmacxlpdlmkwxbn9sc2gpzw6438fwfjss6sza8s"; depends=[crayon dplyr ggplot2 magrittr nlmixr2est rlang stringr tibble tidyr vpc xpose]; };
   xpose4 = derive2 { name="xpose4"; version="4.7.3"; sha256="0w670g9y8nsdjcdxnvwpx8j9yfr7xhb5x3a171z1xizdfgpcpjxz"; depends=[dplyr gam Hmisc lattice lazyeval readr survival tibble]; };
   xray = derive2 { name="xray"; version="0.2"; sha256="1ibj92ljlj8a5rmbrci691yhpd4kwrfyl944nzl2dcbf58l01dzq"; depends=[dplyr foreach ggplot2 lubridate scales]; };
   xrf = derive2 { name="xrf"; version="0.2.2"; sha256="0917chdkl6b20fdbwwj5b6wyihn9p444anwjspd0zqxmp8ag0i5f"; depends=[dplyr fuzzyjoin glmnet Matrix rlang xgboost]; };
   xrnet = derive2 { name="xrnet"; version="0.1.7"; sha256="136aadrvsdg9hizjg4q12h56ih0s3w88j3jpfb54ajgdmqw3pldi"; depends=[BH bigmemory foreach Rcpp RcppEigen]; };
-  xslt = derive2 { name="xslt"; version="1.4.4"; sha256="0caci3mhqkl1bg1pzjhi22c431vgcy4ibsg2mg1p9d5c5pzwmak4"; depends=[Rcpp xml2]; };
+  xslt = derive2 { name="xslt"; version="1.4.5"; sha256="03blm5sa4dw44i2gp015y349hw424r2ykwdn992dblwn6k6sgqxk"; depends=[Rcpp xml2]; };
   xsp = derive2 { name="xsp"; version="0.1.2"; sha256="1jbmxa234v52qji8sz4bkg24c2n65b0zh9py1wyyfzw9n1wx5w0r"; depends=[ggplot2 reshape2]; };
   xtable = derive2 { name="xtable"; version="1.8-4"; sha256="077xfm0gphvhsay75amd9v90zk57kjgrrlgih04fyrbqqblc1gjs"; depends=[]; };
-  xtal = derive2 { name="xtal"; version="1.15"; sha256="1zq3vd5x3vw6acn47yd2x7kflr9sm3znmdkm68cs64ha54jbl3vs"; depends=[]; };
   xtranat = derive2 { name="xtranat"; version="0.1.0"; sha256="1gv0kc1gj305iwwhv7wrfrh45rqwaks696q6q39a55m2vxw11xl1"; depends=[]; };
-  xts = derive2 { name="xts"; version="0.13.2"; sha256="1yqx1x395hvdav1fvmpwrfm8sir398ky1bi0x5zsm7acbkv91maa"; depends=[zoo]; };
+  xts = derive2 { name="xts"; version="0.14.0"; sha256="1nfgbwzibzjni2p8ssvrsyhf75y1g53j1z6kp8ashxlqzbp1d2yj"; depends=[zoo]; };
   xtsum = derive2 { name="xtsum"; version="0.1.0"; sha256="0vq3rm0rwmqyilq7056swlwg2vqq2rpmqsx5apg0imkjq1p26vcb"; depends=[dplyr kableExtra knitr magrittr plm rlang sampleSelection]; };
   xtune = derive2 { name="xtune"; version="2.0.0"; sha256="0k5cf7n84j73cdxzfr7ijjxc65h6lx6fjry81rsxa80fn0sn8qiz"; depends=[crayon glmnet lbfgs selectiveInference]; };
   xutils = derive2 { name="xutils"; version="0.0.2"; sha256="1h07gs8pj7hn64r35ld1j1zakc243aiiwdrz92viqrg7z75czdzl"; depends=[Rcpp]; };
   xwf = derive2 { name="xwf"; version="0.2-3"; sha256="1byj6vjk2abm9j919107xsa3nd40zbsvxaldvv4ml3c47k1fg3kc"; depends=[mgcv]; };
   xxIRT = derive2 { name="xxIRT"; version="2.1.2"; sha256="0b8yv8ixmcjiv9hlvpfdknx815smy7df7f2ixifnvhxxafgf1fwq"; depends=[ggplot2 glpkAPI lpSolveAPI reshape2]; };
+  xxdi = derive2 { name="xxdi"; version="1.0.0"; sha256="1xvx9z24xrqfhpgzfdvscscg3lcjsy6abrw60amcww36sl41fas2"; depends=[agop ggplot2 Matrix tidyr]; };
   xxhashlite = derive2 { name="xxhashlite"; version="0.2.2"; sha256="088cndqrwgqx2yxc6qsfvfqlxw2404ycdajgz9maz15p7h3sjh9z"; depends=[]; };
   yaConsensus = derive2 { name="yaConsensus"; version="1.0"; sha256="1srph1yc8lr00yvx6sjm0br9h2cq94xqb9yjxfb0bqvvmskp6s2s"; depends=[doParallel foreach pheatmap]; };
   yaImpute = derive2 { name="yaImpute"; version="1.0-34"; sha256="0wwaibplh4p8lwz5ck63jrdg9jaxr1w9q8xwpf048y6abz4rij5l"; depends=[]; };
@@ -20541,14 +20850,14 @@ in with self; {
   yager = derive2 { name="yager"; version="0.1.1"; sha256="178ypdr3f0w9rb4ci8q2hshr62b7993m8q6zxc4pf0msq175n1ml"; depends=[lhs MLmetrics randtoolbox]; };
   yahoofinancer = derive2 { name="yahoofinancer"; version="0.3.0"; sha256="197pidwi69hqrw6qpjg5d2y5mqp2rma4p8wsr2h51957qqql4z5d"; depends=[curl httr jsonlite lubridate magrittr purrr R6 stringr]; };
   yaml = derive2 { name="yaml"; version="2.3.8"; sha256="1n1zlbnq3ldipnnm08whpvm8r21vxg4c9jzg7x7j3blw2pi7kl4y"; depends=[]; };
-  yamlet = derive2 { name="yamlet"; version="1.0.0"; sha256="18n462s4w80zfj3nq5xc5n03dr7qlv6275gqsa3fyaymy1knz5nf"; depends=[csv dplyr encode ggplot2 knitr pillar rlang scales spork tidyr units vctrs xtable yaml]; };
+  yamlet = derive2 { name="yamlet"; version="1.0.3"; sha256="06nkxzc5g6asznib73g22710i5dvk4vmmjg2yvnxnf27fyx1s6aq"; depends=[csv dplyr encode ggplot2 knitr pillar rlang scales spork tidyr units vctrs xtable yaml]; };
   yamlme = derive2 { name="yamlme"; version="0.1.2"; sha256="1019nzchqif4r3c7ywq23bjx711g359q44s8jy0rxyv03rij6xh9"; depends=[rmarkdown yaml]; };
   yardstick = derive2 { name="yardstick"; version="1.3.1"; sha256="1l6s06sj9hpb20xndnmm8xim9c9h444w6g98b56i5whb11x37d18"; depends=[cli dplyr generics hardhat lifecycle rlang tibble tidyselect vctrs withr]; };
   yarr = derive2 { name="yarr"; version="0.1.2"; sha256="16q109jrydckz7s1rkmr2sh8q92cgr1c534fvpbh3h0bc3fvvf8g"; depends=[]; };
   yarrr = derive2 { name="yarrr"; version="0.1.5"; sha256="1258bj7x4icaxfabnnd3fgwydnqbzxkih7zw0sdlwdax3q8fw5c5"; depends=[BayesFactor circlize jpeg]; };
   yasp = derive2 { name="yasp"; version="0.2.0"; sha256="0fza8h9y1wmarsmjcvw4r970d6j4ii795pd2h4xh9nlsirv50adi"; depends=[]; };
-  yatah = derive2 { name="yatah"; version="0.2.1"; sha256="0cckmslzm19kg7vkv28aq8h4yx8m2khqs9d6y98gwl64qrjiz42g"; depends=[ape purrr stringr]; };
-  ycevo = derive2 { name="ycevo"; version="0.1.2"; sha256="1s61rdsll7b9dyc1lamyp4mlsw7vyf9lshw2dg3x5i3xf5rmrrsd"; depends=[dplyr magrittr Matrix Rcpp RcppArmadillo rlang]; };
+  yatah = derive2 { name="yatah"; version="1.0.0"; sha256="0q0c9rgkjcj4i7jjc6a9znlvk7b4vawa84g9d1i4v6m5z7nrfdzd"; depends=[ape lifecycle purrr stringr]; };
+  ycevo = derive2 { name="ycevo"; version="0.2.1"; sha256="0gih1dq62k7163pjsjl32smdqy54wjhsp31mv7ddhp4xmr6qb7cw"; depends=[dplyr future_apply generics ggplot2 lubridate Matrix progressr Rcpp RcppArmadillo rlang tibble tidyr tidyselect]; };
   yesno = derive2 { name="yesno"; version="0.1.2"; sha256="1n9v8m1wkk9p2ahl7d1khbffxmshv68q1v44v04y4v1k6qjvm0i2"; depends=[]; };
   yfR = derive2 { name="yfR"; version="1.1.0"; sha256="1jdqz0cb13fgvrak1sgs4h2cwgr8rcbg68c35mlaqnmkfn2w3xvc"; depends=[cli dplyr furrr future glue httr humanize jsonlite lubridate magrittr pingr purrr quantmod readr rvest stringr tibble tidyr tidyselect zoo]; };
   yhat = derive2 { name="yhat"; version="2.0-4"; sha256="0hzf6fns37jv67ssa6zwivpj2nlaykfjmj5y21dyh739i3102jnv"; depends=[boot miscTools plotrix yacca]; };
@@ -20556,7 +20865,8 @@ in with self; {
   yll = derive2 { name="yll"; version="1.0.0"; sha256="0lf3cd6pfzki29nk2iy0vd6v4dw6zlsbrjh2839zq5vlpiimsvck"; depends=[]; };
   ymd = derive2 { name="ymd"; version="0.1.0"; sha256="18ivf09r7df4jq60pm0gdagcvpb4pz9a19y7dfb096h1yk7rqfa4"; depends=[]; };
   ymlthis = derive2 { name="ymlthis"; version="0.1.7"; sha256="127rh8mfff0ii6wcd7iaaz60vlkynjlrs188wwcap8l2qgv67idy"; depends=[crayon fs glue magrittr purrr rlang rmarkdown rstudioapi stringr usethis whoami withr yaml]; };
-  ympes = derive2 { name="ympes"; version="1.0.0"; sha256="1pksi1927n6y9m27mh3nyrzf9z01i0ws117h2i2nbm4n6srm3fmi"; depends=[]; };
+  ympes = derive2 { name="ympes"; version="1.3.0"; sha256="12bs2b4gb4767sbkpvykspm5ip62y88bk3rxbmn6l23i3k2j1fl4"; depends=[]; };
+  yodel = derive2 { name="yodel"; version="1.0.0"; sha256="04glh59dcwahprxcw9a1wanbcxrmbfmkndw3w1idynwbmyarj4wf"; depends=[dplyr purrr rlang]; };
   yorkr = derive2 { name="yorkr"; version="0.0.42"; sha256="0czi3ylqlzpd2h8g5500hrk0ql4b3qlcgmlcmcfa44s1w8fgny33"; depends=[dplyr ggplot2 gridExtra reshape2 rpart_plot yaml]; };
   youngSwimmers = derive2 { name="youngSwimmers"; version="0.0.1"; sha256="02ih66ad8v5qkgyszllkh9319sfd6fqcci4zrvbjr1dfwlwa2ri1"; depends=[data_table lifecycle]; };
   ypr = derive2 { name="ypr"; version="0.6.0"; sha256="0hn4zbg270p8yg4wxcszwfc0vsf2mb21lkqi1745000rh5cbz8sa"; depends=[chk ggplot2 lifecycle purrr tibble tidyplus yesno]; };
@@ -20565,19 +20875,21 @@ in with self; {
   yuimaGUI = derive2 { name="yuimaGUI"; version="1.3.1"; sha256="1sl45kmqqq7hg3lkpn3cy70f409fwsgg76gjldx1l4cvmyzyf9hl"; depends=[DT ggplot2 ghyp plotly quantmod sde shiny shinyBS shinydashboard shinyjs yuima]; };
   yulab_utils = derive2 { name="yulab.utils"; version="0.1.4"; sha256="0m1iip6w711z92y6qw0rc0flxl9bzj85vrhm2q2rqjz9pyqf3m1j"; depends=[cli digest fs memoise rlang]; };
   yum = derive2 { name="yum"; version="0.1.0"; sha256="1k9q34n1pzv4c7hp7cd4yhm8v1qv41an8vfh65n4byvyzipxp85y"; depends=[yaml]; };
-  yyjsonr = derive2 { name="yyjsonr"; version="0.1.18"; sha256="0z31rw7ls1qnfk4ww7l87jc1blgba229r1yd6i70mn80p7k7yy30"; depends=[]; };
+  yyjsonr = derive2 { name="yyjsonr"; version="0.1.20"; sha256="0gkvls7rd1rbklg9f548rhpmqpa0kb0s1xgf7mhvlhxk45x32ipd"; depends=[]; };
   zCompositions = derive2 { name="zCompositions"; version="1.5.0-3"; sha256="1gbwx3vgx5viqnn5jsszild6ikyc2pmf1hdjc9475caf9xx9l589"; depends=[MASS NADA truncnorm]; };
   zTree = derive2 { name="zTree"; version="1.0.7"; sha256="005zk6wpchpss6865ki35yawgf668pn70163ah97rnfkhfaswm6y"; depends=[plyr]; };
   zalpha = derive2 { name="zalpha"; version="0.3.0"; sha256="04hi5lxgcqzmkbqppp5fv8x7wdgap3bgr8b8pv4pvavzh73jlmxs"; depends=[]; };
   zctaCrosswalk = derive2 { name="zctaCrosswalk"; version="2.0.0"; sha256="14yda45nqn9ywb7zpwp4kmjziglj0qjgm02lmi8ndvc5wi2r1ma7"; depends=[dplyr readr rlang stringr]; };
-  zcurve = derive2 { name="zcurve"; version="2.4.0"; sha256="0cc5prmslj9nffs0bl7xg6fdy7qc1qc12p6kpzfi23w3x1m62dx1"; depends=[evmix ggplot2 nleqslv Rcpp Rdpack rlang]; };
-  zdeskR = derive2 { name="zdeskR"; version="0.4.0"; sha256="15kb85xmn133yby4p03afkib3wrv5baswsdalj8sigyv452id7k6"; depends=[dplyr httr jsonlite magrittr plyr purrr tidyr tidyselect]; };
+  zcurve = derive2 { name="zcurve"; version="2.4.2"; sha256="0a9x0j04mfjn2vfycylvqmsh7v4b1a5lx5j501xbzqp9m3m9bh9q"; depends=[evmix ggplot2 nleqslv Rcpp Rdpack rlang]; };
+  zdeskR = derive2 { name="zdeskR"; version="0.4.1"; sha256="11nk8rvsqipqh9w13hi31yy3yv6hd2dk1si61p3frr9g5lsbi5l0"; depends=[dplyr httr jsonlite magrittr plyr purrr tidyr tidyselect]; };
   zeallot = derive2 { name="zeallot"; version="0.1.0"; sha256="1sd1igcfnv27pa3bqxlbyxchi562h7grnjg1l7wxx3bwr49i57s3"; depends=[]; };
   zebu = derive2 { name="zebu"; version="0.2.2.0"; sha256="1bxzc110nxyssdvnk330qs8qbmf6m7v5gglcfdkxdzy5gcbs1bm6"; depends=[data_table ggplot2 Rcpp reshape2]; };
   zeitgebr = derive2 { name="zeitgebr"; version="0.3.5"; sha256="1h2zx3ah1xdyyag40ragrv7gvpnlzqmappbnjp971dn9khqdxfqs"; depends=[behavr data_table lomb pracma WaveletComp]; };
-  zen4R = derive2 { name="zen4R"; version="0.9"; sha256="09r3kd5mvaps30k4vszbfbhfb8hp6jq4f1v3kr9b8wgv7vqsa2k4"; depends=[atom4R httr jsonlite keyring R6 utf8 XML xml2]; };
+  zen4R = derive2 { name="zen4R"; version="0.10"; sha256="0sizxy7ck26jrq77y09qcqyzppamfm0kh2zw8s7n83z0bfy54vs6"; depends=[atom4R cli httr jsonlite keyring plyr R6 utf8 XML xml2]; };
   zendeskR = derive2 { name="zendeskR"; version="0.4"; sha256="06cjwk08w3x6dx717123psinid5bx6c563jnfn890373jw6xnfrk"; depends=[RCurl rjson]; };
+  zendown = derive2 { name="zendown"; version="0.1.0"; sha256="0xmz4m9c96dm79csxwh878vvjyq147fzcy833i6a5flc5z9asw3z"; depends=[checkmate cli curl fs glue httr2 RCurl tibble tidyr]; };
   zenplots = derive2 { name="zenplots"; version="1.0.6"; sha256="0rf690qip2x7w037cbq51cfzqmla398a6x857wpz8cy9fd26ns7p"; depends=[graph MASS PairViz]; };
+  zenstats = derive2 { name="zenstats"; version="0.1.2"; sha256="1ji4pqb0vh8ad8jr4pd6dkjr5cfckrlp24jncjc079wahw64fgs5"; depends=[checkmate cli curl polite purrr RCurl readr rlang rvest tibble]; };
   zeroEQpart = derive2 { name="zeroEQpart"; version="0.1.0"; sha256="1n24nqyl0irpyspwx4b73xy228a84aa8zsn9fcf2lrlni5vyzmm0"; depends=[MASS ppcor]; };
   zerotradeflow = derive2 { name="zerotradeflow"; version="0.1.0"; sha256="03fvhk3yd6grqs0d6m3j537xzy0n9s64947g7gagaqbrm3n8j1m6"; depends=[cli dplyr magrittr purrr rlang tidyr tidyverse]; };
   zetadiv = derive2 { name="zetadiv"; version="1.2.1"; sha256="0m147z864g2pca28gbna1bb7jqr2f74x15fj8v8hhs3a2lr8lh37"; depends=[car geodist glm2 mgcv nnls scam vegan]; };
@@ -20620,6 +20932,7 @@ in with self; {
   AGSDest = derive2 { name="AGSDest"; version="2.3.4"; sha256="140bqzgaagdyzgxsn998jw2sxak448i47xyacn2psfnps440gfjr"; depends=[ldbounds]; broken = true; };
   AGread = derive2 { name="AGread"; version="1.3.2"; sha256="1l7h6hpf28hpff50s7qaj9cwiqki98wiz2a7z773d7qzm28074gy"; depends=[anytime data_table DBI DescTools dplyr lubridate magrittr PAutilities R_utils Rcpp read_gt3x readr reshape2 rlang RSQLite stringr]; broken = true; };
   AIG = derive2 { name="AIG"; version="0.1.9"; sha256="1jnnfmcwxcv4fsdcz7jb2lgczxdwrq3qxg2bhsh1610iwz4gzii7"; depends=[dplyr magrittr mgcv rgl]; broken = true; };
+  ALSM = derive2 { name="ALSM"; version="0.2.0"; sha256="1g7zk8q462j4faq5wzzghkjc003ny6rj8hrymsgvh3fg3a72lvy3"; depends=[car leaps SuppDists]; broken = true; };
   AMAP_Seq = derive2 { name="AMAP.Seq"; version="1.0"; sha256="0z0rrzps6rm58k4m1ybg77s3w05m5zfya4x8ril78ksxsjwi3636"; depends=[]; broken = true; };
   AMGET = derive2 { name="AMGET"; version="1.0"; sha256="18wdzzg5wr7akbd1iasa4mvmy44fb2n5gpghwcrx80knnicy3dxq"; depends=[]; broken = true; };
   AMOEBA = derive2 { name="AMOEBA"; version="1.1"; sha256="1npzh3rpfnxd4r1pj1hm214sfgbw4wmq4ws093lnl7pvsl0q37xn"; depends=[rlecuyer snowfall spdep]; broken = true; };
@@ -20641,12 +20954,11 @@ in with self; {
   AWAPer = derive2 { name="AWAPer"; version="0.1.46"; sha256="02n662wvd8qwshfmj9qfff730qs6ls82hkdsphw05jj6llddi4k5"; depends=[chron Evapotranspiration maptools ncdf4 raster sp xts zoo]; broken = true; };
   AWR_Athena = derive2 { name="AWR.Athena"; version="2.0.7-0"; sha256="1j9bqhyk0jzry4g379ml65gwxlszn7pjif1dywgns98jbry8mavh"; depends=[rJava RJDBC]; broken = true; };
   AWR_KMS = derive2 { name="AWR.KMS"; version="0.1"; sha256="00aqhyqlncsv0vfcyhaazxaclwm63v5kscssash7529avdwd4gqg"; depends=[AWR jsonlite rJava]; broken = true; };
-  AZIAD = derive2 { name="AZIAD"; version="0.0.2"; sha256="0w5s367zkf857hzs1lczjgnd8ydnam8k5fwf155drxxdr5c3gm2z"; depends=[corpcor doParallel dplyr EnvStats extraDistr foreach lqmm matrixcalc MixAll QRM rmutil rootSolve]; broken = true; };
-  AccelStab = derive2 { name="AccelStab"; version="1.0.0"; sha256="0bjbxnbi809hf57inf09y0635917spw1l0mmpjx89ncrvngvzkxx"; depends=[dplyr ggplot2 minpack_lm mvtnorm]; broken = true; };
   ActiSleep = derive2 { name="ActiSleep"; version="0.2.1"; sha256="0nkfddfv0g1bvsg6811lrmy0cx7knmi225snyp22bh9ly9fnlqp8"; depends=[accelerometry DBI dplyr lazyeval lubridate RSQLite stringr tibble]; broken = true; };
   ActiveDriverWGS = derive2 { name="ActiveDriverWGS"; version="1.2.0"; sha256="0xnplgwxd197a4d422bsxg753q158i12ils16awd1cw30wafdxkk"; depends=[Biostrings BSgenome BSgenome_Hsapiens_UCSC_hg19 BSgenome_Hsapiens_UCSC_hg38 BSgenome_Mmusculus_UCSC_mm10 BSgenome_Mmusculus_UCSC_mm9 GenomeInfoDb GenomicRanges IRanges S4Vectors]; broken = true; };
   AdapEnetClass = derive2 { name="AdapEnetClass"; version="1.2"; sha256="01k3mj4g1ckbng7wkzzn9h0k9yf01cpnnkly0sjda574c5jhj0rc"; depends=[glmnet imputeYn lars quadprog]; broken = true; };
   AdaptFitOS = derive2 { name="AdaptFitOS"; version="0.69"; sha256="0mclsnsxjyg1q7p7654gjsczzdzpa6avx3b9jpmdb0n63zdgmwy3"; depends=[MASS mgcv nlme SemiPar]; broken = true; };
+  AdaptiveSparsity = derive2 { name="AdaptiveSparsity"; version="1.6"; sha256="0imr5m8mll9j6n4icsv6z9rl5kbnwsp9wvzrg7n90nnmcxq2cz91"; depends=[MASS Matrix Rcpp RcppArmadillo]; broken = true; };
   AdjBQR = derive2 { name="AdjBQR"; version="1.0"; sha256="14437pyz9v09ighwqvy1lcw0vfp2gaqzs9nzrb1gkfbb8ndzjw7k"; depends=[coda MHadaptive quantreg survival]; broken = true; };
   AirSensor = derive2 { name="AirSensor"; version="1.0.8"; sha256="0wpfg3mry1vdyd9v1981hasizj1mn5wy60ig9swxlqdm7j11wxan"; depends=[countrycode cowplot dplyr dygraphs geodist geosphere GGally ggmap ggplot2 gridExtra httpcode httr jsonlite leaflet lubridate magrittr MazamaCoreUtils MazamaLocationUtils MazamaSpatialUtils openair PWFSLSmoke RColorBrewer readr rlang scales seismicRoll sp stringr tibble tidyr tidyselect worldmet xts zoo]; broken = true; };
   AllPossibleSpellings = derive2 { name="AllPossibleSpellings"; version="1.1"; sha256="0ksfm2pfjka3yjgcd257v7sns1niaylsfxvhhh2jwdi016cpdw10"; depends=[]; broken = true; };
@@ -20659,6 +20971,7 @@ in with self; {
   AnnotLists = derive2 { name="AnnotLists"; version="1.2"; sha256="1g2khb2ggniwg2zcjamsm3bxyrl2zabvk540b5vyy9am9k83m1g9"; depends=[]; broken = true; };
   AntWeb = derive2 { name="AntWeb"; version="0.7"; sha256="1ykfg3zzjdvjppr2l4f26lx00cn5vaqhhz1j1b5yh113ggyl40qw"; depends=[assertthat httr leafletR plyr rjson]; broken = true; };
   AquaBPsim = derive2 { name="AquaBPsim"; version="0.0.1"; sha256="0bf83kp8j7il5q9kr8r0pxlnsf6l9nvhgkny4y5wgc8pbki0dsmz"; depends=[MASS matlib pedigree readxl]; broken = true; };
+  ArchaeoChron = derive2 { name="ArchaeoChron"; version="0.1"; sha256="1qma2432mm73h72g9ah1k02wlcb6yrhc6mpai9nj7v58s126ffxn"; depends=[ArchaeoPhases Bchron coda rjags]; broken = true; };
   AssotesteR = derive2 { name="AssotesteR"; version="0.1-10"; sha256="0aysilg79vprcyjirqz6c5s1ry1ia92xik3l38qrw1gf3vfli9cw"; depends=[mvtnorm]; broken = true; };
   AtmRay = derive2 { name="AtmRay"; version="1.31"; sha256="162078jd032i72sgaar9hqcnn1lh60ajcqpsz4l5ysxfkghcxlh8"; depends=[]; broken = true; };
   AugmenterR = derive2 { name="AugmenterR"; version="0.1.0"; sha256="0hi501p8ksaqzc9dq16dbmkz50kakgw3k0awdkbpci5can2sqvfl"; depends=[]; broken = true; };
@@ -20673,9 +20986,11 @@ in with self; {
   BBRecapture = derive2 { name="BBRecapture"; version="0.2"; sha256="1w0m8p4mwjsycv9krmsgdyjckic2nwxbyhrz1s2gng2v1h20zvlf"; depends=[HI lme4 locfit secr]; broken = true; };
   BBcor = derive2 { name="BBcor"; version="1.0.3"; sha256="160d34an9837i9myw9m0yxplh1z2cmhx2wc7m59dlld5zap4glag"; depends=[bayeslincom ggplot2 pbapply psych Rdpack wdm]; broken = true; };
   BCA = derive2 { name="BCA"; version="0.9-3"; sha256="0ksd6b0ykydgdn33x29bwwqkrp23cvdj3imps0l6qs1p4465j5nf"; depends=[car clv flexclust Rcmdr RcmdrMisc rpart]; broken = true; };
+  BCE = derive2 { name="BCE"; version="2.2.0"; sha256="13banjjk14rrmyd66iayywip9aznfsk8x3yk4pamlw87byf0z3vk"; depends=[FME limSolve Matrix]; broken = true; };
   BCellMA = derive2 { name="BCellMA"; version="0.3.4"; sha256="1njprs7ksv0w18ffs0agz0290aa2akw48225iaa3bjhbl08dpidl"; depends=[ggplot2 reshape2]; broken = true; };
   BEST = derive2 { name="BEST"; version="0.5.4"; sha256="109zl99bz1bndan1pm3hm0f1da86a18lcyzl0741z14l0m0d91a9"; depends=[coda HDInterval rjags]; broken = true; };
   BGSIMD = derive2 { name="BGSIMD"; version="1.0"; sha256="0xkr56z8l72wps7faqi5pna1nzalc3qj09jvd3v9zy8s7zf5r7w4"; depends=[]; broken = true; };
+  BHTSpack = derive2 { name="BHTSpack"; version="0.6"; sha256="01y3ly83i70lkg2kgbw1r7r1g4k9rk41qyzzscbp8zgc9z63ll8z"; depends=[R2HTML xtable]; broken = true; };
   BIDistances = derive2 { name="BIDistances"; version="0.0.2"; sha256="1ajwa7ib0m3krhizi905rzkdqm9fhcypm58yqn4c6hnq4kpc9fm1"; depends=[parallelDist]; broken = true; };
   BIOM_utils = derive2 { name="BIOM.utils"; version="0.9"; sha256="0xckhdvf15a62awfk9rjyqbi6rm7p4awxz7vg2m7bqiqzdll80p7"; depends=[]; broken = true; };
   BIS = derive2 { name="BIS"; version="0.3.1"; sha256="1nmbcdk4p34grss2bwwqw5zynp5c2xfhhqs9h9s85nhdm7ark78v"; depends=[dplyr readr rvest tidyr tidyselect xml2]; broken = true; };
@@ -20715,14 +21030,17 @@ in with self; {
   BigDataStatMeth = derive2 { name="BigDataStatMeth"; version="0.99.32"; sha256="0iz6pzlhkziwdwv80sy9zcxfvkxxjhqmgn7lk7lv1mkhywqkd9jk"; depends=[beachmat BH data_table Rcpp RcppEigen RcppParallel RCurl rhdf5 Rhdf5lib RSpectra]; broken = true; };
   BigTSP = derive2 { name="BigTSP"; version="1.0"; sha256="1jdpa8rcnrhzn0hilb422pdxprdljrzpgr4f26668c1vv0kd6k4v"; depends=[gbm glmnet randomForest tree]; broken = true; };
   BinQuasi = derive2 { name="BinQuasi"; version="0.1-6"; sha256="0jf7zf3yqr2kgcm6h35234x2dqf65d2dzsh63b4q8m5l36r77k59"; depends=[BiocGenerics csaw edgeR GenomicAlignments GenomicRanges IRanges mgcv pracma quadprog RMySQL Rsamtools S4Vectors SummarizedExperiment]; broken = true; };
-  BinaryEPPM = derive2 { name="BinaryEPPM"; version="2.3"; sha256="0fydh3pp7y0glk2rhihcslzx10hgn5la922jbnqzg2nplvzv7ybj"; depends=[expm Formula lmtest numDeriv]; broken = true; };
   BioFTF = derive2 { name="BioFTF"; version="1.2-0"; sha256="03r6fhpc4dqrcnbl73j9kav1l7rblgfldpbkl2p367vv20xggqih"; depends=[]; broken = true; };
   BioMedR = derive2 { name="BioMedR"; version="1.2.1"; sha256="0l3nmnqv0gzkbby4fhajbba910zpnbyckvxwds353pn54g9pcry7"; depends=[Biostrings ChemmineR fmcsR GOSemSim MASS org_Hs_eg_db pls randomForest rcdk RCurl rjson]; broken = true; };
+  Biocomb = derive2 { name="Biocomb"; version="0.4"; sha256="0jqfac81r5731m0i9jq7v5ns9263p8r7i03jyz10y915kfr6ikh6"; depends=[arules class e1071 FSelector gtools MASS nnet pamr pROC randomForest Rcpp rgl ROCR rpart RWeka]; broken = true; };
   Biolinv = derive2 { name="Biolinv"; version="0.1-3"; sha256="1c081rhbgl6n76p2knaiyvjx0l02slix92vgfl2spss5cb9qzkln"; depends=[classInt fields raster sp spatstat spatstat_core spatstat_geom]; broken = true; };
   Biopeak = derive2 { name="Biopeak"; version="1.0"; sha256="1l08m1jl8yygbdfzk8klpj1q2m7icvxi98vmk7akxs0sswjc6wd2"; depends=[cluster dbscan factoextra gplots RColorBrewer]; broken = true; };
+  Bios2cor = derive2 { name="Bios2cor"; version="2.2.1"; sha256="0xj7ab9a463p4a67y0hlv6mfd08xf8didkn2mwrfa7gxjqqvix4z"; depends=[bigmemory bio3d circular igraph]; broken = true; };
   BiplotML = derive2 { name="BiplotML"; version="1.1.0"; sha256="1wrn3bz3lwh05fs97m4zq12xy7vgkwb9kn4xvx5kfiipps1kqw8s"; depends=[optimr optimx shapes]; broken = true; };
   BivarP = derive2 { name="BivarP"; version="1.0"; sha256="08f7sphylaj3kximy1avaf29hxj2n800adsnssh01p9bcxnzb2i4"; depends=[copula dfoptim survival]; broken = true; };
+  BlackCarbon = derive2 { name="BlackCarbon"; version="0.1.0"; sha256="19ll2lcdxj5bmgh4wyk47ddxpwrqdiy67wsvj7mi1vm7y5ccyfhn"; depends=[]; broken = true; };
   BlanketStatsments = derive2 { name="BlanketStatsments"; version="0.1.2"; sha256="00zh3ivqrzlz6wz0nalmdqp8pfki3kkxm9idh2ri6sfxsb6kfdp6"; depends=[assertive_types basecamb DescTools Hmisc survAUC survival]; broken = true; };
+  Blaunet = derive2 { name="Blaunet"; version="2.2.1"; sha256="070vqkd24ydzs277acpwcqay8nrp3ip1wf2zkdkg1qc2crip86hs"; depends=[digest ergm foreign gWidgets2 gWidgets2tcltk haven network plot3D plot3Drgl rgl sna statnet_common]; broken = true; };
   BlockFeST = derive2 { name="BlockFeST"; version="2.0"; sha256="1fcl3yc1cf09znqbj787d3fd2kl5rp63la7pxawsgmap7nxwkp65"; depends=[BASIX]; broken = true; };
   BlockMessage = derive2 { name="BlockMessage"; version="1.0"; sha256="1jrcb9j1ikbpw098gqbcj29yhffa15xav90y6vpginmhbfpwlbf4"; depends=[]; broken = true; };
   Bmix = derive2 { name="Bmix"; version="0.6"; sha256="17swhn2p7jv29fkspacg2v181lkc9yd3xww2fx31xs8hsndcm857"; depends=[mvtnorm]; broken = true; };
@@ -20759,8 +21077,10 @@ in with self; {
   CRAC = derive2 { name="CRAC"; version="1.0"; sha256="0vnqmmmwakx5jnzqp20dng35p7rvmz3ypm2m7bs41m8nhh2wq1xa"; depends=[]; broken = true; };
   CSCDRNA = derive2 { name="CSCDRNA"; version="1.0.3"; sha256="0ym6bzk8n9kf0pvd3h4dv2hhxmmrr54hvs7vccmxrhxikr8ix5iy"; depends=[Biobase BisqueRNA limSolve MAST nlshrink plyr Seurat]; broken = true; };
   CSFA = derive2 { name="CSFA"; version="1.2.0"; sha256="1nkyhk8qhrrlx8v26yw86l954m4xfcxma4pqbhgw95jvqql5h3li"; depends=[elasticnet fabia FactoMineR pls randomcoloR snowFT]; broken = true; };
+  CSTE = derive2 { name="CSTE"; version="2.0.0"; sha256="0r38pvd83aw9zrq43malw50vlbnknh3b53x3ydj0wxrk95wsmy46"; depends=[dfoptim fda locpol Rcpp survival]; broken = true; };
   CSUV = derive2 { name="CSUV"; version="0.1.1"; sha256="1gh8gxwnrg4j017c08xfhm57rwci24sqmxxx00k3d0mw6j0mbdvw"; depends=[caret doParallel DT futile_logger ggplot2 glmnet HDCI MASS ncvreg relaxo reshape2 shiny shinyjs]; broken = true; };
   CTP = derive2 { name="CTP"; version="3.0.1"; sha256="02f423y7yx0hchzghfdbrrljsfq3af1wcbvk8z1q5wyzq99xcag5"; depends=[clinfun diagram dplyr emmeans Gmisc magrittr MASS shape survival]; broken = true; };
+  CVEK = derive2 { name="CVEK"; version="0.1-2"; sha256="03z4s0szi8rl3izc651rvrhl2z247aaflyphzizplgmpw81xv1ry"; depends=[limSolve MASS]; broken = true; };
   CVTuningCov = derive2 { name="CVTuningCov"; version="1.0"; sha256="1bwzis82lqwcqp2djy4bnd3vvjr47krlv3pdc5msh12wcs0xhs7n"; depends=[]; broken = true; };
   CVarE = derive2 { name="CVarE"; version="1.1"; sha256="132bsqvdhalifn47xka23ikas1axxkg4jw8yja6ba8dflb8r753i"; depends=[mda]; broken = true; };
   CVcalibration = derive2 { name="CVcalibration"; version="1.0-1"; sha256="0ca582fnysrldlzxc3pihsph9pvdgygdh7sfzgxvr5fc3z1jbjzb"; depends=[]; broken = true; };
@@ -20770,12 +21090,13 @@ in with self; {
   CensRegMod = derive2 { name="CensRegMod"; version="1.0"; sha256="0qqwkxn8knhcjb6mph7mp7mma56zxslbvkfgfajq2lq4gbg901y4"; depends=[]; broken = true; };
   CepLDA = derive2 { name="CepLDA"; version="1.0.0"; sha256="15vhk7l5mw2kicw2x60r4z71hc415g8kaf2p06jgf7ykxmzkj7kg"; depends=[astsa class MASS multitaper]; broken = true; };
   CfEstimateQuantiles = derive2 { name="CfEstimateQuantiles"; version="1.0"; sha256="1qf85pnl81r0ym1mmsrhbshwi4h1iv19a2wjnghbylpjaslgxp6i"; depends=[]; broken = true; };
+  ChIPtest = derive2 { name="ChIPtest"; version="1.0"; sha256="1yn5b5s56k2dbhw6damxj18xbaiz180ym7fiq2i3p2gkcgwpddbz"; depends=[]; broken = true; };
+  ChangePointTaylor = derive2 { name="ChangePointTaylor"; version="0.2"; sha256="0rf3h7l8l6fw2i489ldcqhsf9ppjzpx298p5ciyp9iyc0zcykz38"; depends=[bench dplyr ggplot2 magrittr purrr Rcpp rlang tidyr]; broken = true; };
   ChargeTransport = derive2 { name="ChargeTransport"; version="1.0.2"; sha256="0mq06ckp3yyj5g1z2sla79fiqdk2nlbclm618frhqcgmq93h0vha"; depends=[]; broken = true; };
   CityPlot = derive2 { name="CityPlot"; version="2.0"; sha256="0lskgxmagqjglvpq39hgbygkf4qp28i2bj6b4m2av1s3pzb4465g"; depends=[]; broken = true; };
   CityWaterBalance = derive2 { name="CityWaterBalance"; version="0.1.0"; sha256="0nvm6bv2cxszjf33xgn1xcvhrgrgbdcar0jahwf7bs03gdlpmgi1"; depends=[dataRetrieval dplyr EcoHydRology geoknife lubridate reshape2 tgp xts zoo]; broken = true; };
   ClimDown = derive2 { name="ClimDown"; version="1.0.8"; sha256="0qcag9jwvhi9yss55wy5jxabrvym9hljn1fs5gfkzjs5hiwv3gxv"; depends=[abind fields foreach ncdf4 PCICt seas udunits2]; broken = true; };
   ClustMMDD = derive2 { name="ClustMMDD"; version="1.0.4"; sha256="0sblf3crpai53dflhyi27yn6mg0xyy9dxhwsk8j57sq5vr50x686"; depends=[Rcpp]; broken = true; };
-  CodeDepends = derive2 { name="CodeDepends"; version="0.6.5"; sha256="0l7kiv3awx50glf5cs841b4zzsff1ml90f0zr868ygvwsr4ps1hq"; depends=[codetools graph XML]; broken = true; };
   CoinMinD = derive2 { name="CoinMinD"; version="1.1"; sha256="0invnbj5589wbs0k2w5aq9qak7axc3s0g9nw85c48lnl0v95s91i"; depends=[MCMCpack]; broken = true; };
   ColorPalette = derive2 { name="ColorPalette"; version="1.0-1"; sha256="1dsj5njikx3qm2lnamqqg4qgwwyr11fwx9s5sdi7dkfx3nmf6dac"; depends=[]; broken = true; };
   CombMSC = derive2 { name="CombMSC"; version="1.4.2.1"; sha256="1jxf59hs1px271im2dwc1653y9pfp79gwmacafcva224bvh5vi49"; depends=[]; broken = true; };
@@ -20792,6 +21113,7 @@ in with self; {
   CondReg = derive2 { name="CondReg"; version="0.20"; sha256="1ffnrjfjcb66i9nyvidkcn4k9pcj4r7xanjwzcxcrj2qm39apkqx"; depends=[]; broken = true; };
   ConfoundedMeta = derive2 { name="ConfoundedMeta"; version="1.3.0"; sha256="17l6dfff2v0a4p022qclrmkzi78ga9adkgxgrgk9imz0n9m9424d"; depends=[ggplot2 metafor]; broken = true; };
   ConjointChecks = derive2 { name="ConjointChecks"; version="0.0.9"; sha256="097mhiz8zjmmkiiapr3zfx7v35xirg57nqp1swd72dixaa23nhr1"; depends=[]; broken = true; };
+  CopulaDTA = derive2 { name="CopulaDTA"; version="1.0.1"; sha256="1a9v398yn7gflpnsrgzap8gy1b676ri1m3fwiv1jpc5l1cw154pm"; depends=[ggplot2 plyr reshape2 rstan]; broken = true; };
   CopyDetect = derive2 { name="CopyDetect"; version="1.3"; sha256="1g3bwd805h62x93xvvn67acf9v6vn7s7ghxpvjhwcfdfj7fwzh6l"; depends=[mirt]; broken = true; };
   CorDiff = derive2 { name="CorDiff"; version="1.0"; sha256="12rgfhygrdq1ign4ybr8g171wxic8zbp83n1xdsnqpj910k5jdr5"; depends=[mcc]; broken = true; };
   CorporaCoCo = derive2 { name="CorporaCoCo"; version="2.0"; sha256="1ly9na1lyjwzm23ip8cnpkrdabsvn0db11i4mhyvxpq4r38zvhnn"; depends=[data_table RColorBrewer rlist stringi]; broken = true; };
@@ -20801,13 +21123,12 @@ in with self; {
   CoxPhLb = derive2 { name="CoxPhLb"; version="1.2.0"; sha256="0jlh2k5ygj896sfx7dcw5qlb80bl64rsvqfayv0c6a107bmrzsw4"; depends=[survival]; broken = true; };
   Cprob = derive2 { name="Cprob"; version="1.4.1"; sha256="1m4ys8xpj1jbn3lf8fym935y94dxipiimsf9zxwyw5sy71y7skgq"; depends=[geepack lattice lgtdl prodlim tpr]; broken = true; };
   CreditMetrics = derive2 { name="CreditMetrics"; version="0.0-2"; sha256="16g3xw8r6axqwqv2f0bbqmwicgyx7nwzff59dz967iqna1wh3spi"; depends=[]; broken = true; };
-  CreditRisk = derive2 { name="CreditRisk"; version="0.1.3"; sha256="09ks8xlsrbp3an1drcwmmd6df4fsfz61z21ma2p62a1pk0bnc86c"; depends=[fOptions]; broken = true; };
   CropDetectR = derive2 { name="CropDetectR"; version="0.0.1"; sha256="14sabqld94if7f2m39bh6652cb62hcwx53k8q5k23anzzsn93qlj"; depends=[dplyr EBImage imager reshape2]; broken = true; };
   CrypticIBDcheck = derive2 { name="CrypticIBDcheck"; version="0.3-3"; sha256="1c7n020i9lxp0fam05k9v4az4rvx8fakhzi9fkma82smpl709x8q"; depends=[car chopsticks ellipse rJPSGCS]; broken = true; };
   CytobankAPIstats = derive2 { name="CytobankAPIstats"; version="2.0"; sha256="0xczcgaxd8dv6fd1j5c8y4il852lq8859d1y16sxs8a3gqn9fbz2"; depends=[CytobankAPI pheatmap shiny shinyFiles xlsx]; broken = true; };
   CytobankBridgeR = derive2 { name="CytobankBridgeR"; version="1.0.0"; sha256="0m8gxbm3p9gvdszymqx10n5rzb406r4f70a0in798c56mp2rcsl4"; depends=[CytobankAPI]; broken = true; };
-  D3GB = derive2 { name="D3GB"; version="1.1"; sha256="1r4hxx2qdws7c7hsnswzfh6az8mn720sk8nygilljl2ghnwpq7pa"; depends=[DBI RSQLite]; broken = true; };
   DAMisc = derive2 { name="DAMisc"; version="1.7.2"; sha256="1mg40fqb0bj8jlw50dkkby67rj83g6pjhw9vbqvfxq30a1pq9inm"; depends=[AICcmodavg boot car clarkeTest coda dplyr DT effects ggplot2 haven janitor jtools lattice latticeExtra magrittr MASS nnet optiscale rlang srvyr survey tibble tidyr tidyselect xtable]; broken = true; };
+  DAP = derive2 { name="DAP"; version="1.0"; sha256="0zzb05yxfaqp6qnr979q20rqy8sl5l825mxs0x9366qr7mz5k5ws"; depends=[MASS]; broken = true; };
   DBERlibR = derive2 { name="DBERlibR"; version="0.1.3"; sha256="19hqp0q7j6b7h9bamn3v2d1kdwzi0mlqvx7b618fkixpibqndzn7"; depends=[car dplyr emmeans ggplot2 ggpubr ggrepel psych readr reshape rstatix tibble]; broken = true; };
   DBGSA = derive2 { name="DBGSA"; version="1.2"; sha256="04zqh9y3nqcdzs5jn8aaq5idy9zl450ikvl788xs860wlg692qv2"; depends=[fdrtool]; broken = true; };
   DBIsqldf = derive2 { name="DBIsqldf"; version="0.9.9-2"; sha256="1yp9xqrf6dbq9478w0bd55rzhqf78anwrqzlkphbl7fk2d2ipy6i"; depends=[DBI]; broken = true; };
@@ -20817,8 +21138,11 @@ in with self; {
   DEEPR = derive2 { name="DEEPR"; version="0.1"; sha256="0q8970q3gpjxwxdf2bkhpnqrxpm00w27b20a9sn9vv314rn1n7s8"; depends=[dirmult]; broken = true; };
   DESnowball = derive2 { name="DESnowball"; version="1.0"; sha256="012kdnxmzap6afc3ffkcvk1mazlkp286av6g9fwz2wcbf5mh9n1m"; depends=[clue cluster combinat MASS]; broken = true; };
   DET = derive2 { name="DET"; version="3.0.1"; sha256="0r2q1r4wc4nhhrr9bllxsp2w6ajja61mh34dyijjsfchx4025ljb"; depends=[doParallel pROC]; broken = true; };
+  DGCA = derive2 { name="DGCA"; version="1.0.3"; sha256="15n6nlnb20xzn4swcclyarfq7pq7rwmm2n0rv7m2q9jkxr9vp4w0"; depends=[matrixStats WGCNA]; broken = true; };
   DLSSM = derive2 { name="DLSSM"; version="0.1.0"; sha256="0ca9z48kfzximk6b49mqcfw50av9zh3jf9frjjsc8xwyyc6fq381"; depends=[Matrix]; broken = true; };
+  DMLLZU = derive2 { name="DMLLZU"; version="0.1.1"; sha256="0ck87abcd5gkq69q1g5g0yshfhx94m3vgayvxgzgnkidn9mivx22"; depends=[caret gbm ISLR lmtest nnet randomForest rlang sandwich]; broken = true; };
   DMRMark = derive2 { name="DMRMark"; version="1.1.1"; sha256="15wr6j0v9kvbv8y6flkp4svfqy059ziv89nxv91vp0pjmavhpdlz"; depends=[ellipse MCMCpack mvtnorm]; broken = true; };
+  DOBAD = derive2 { name="DOBAD"; version="1.0.6"; sha256="0ifrrfm4yp1416z58qgnak042rgj1xvqby2vvzgrv19z6b3250p3"; depends=[lattice Matrix numDeriv]; broken = true; };
   DPWeibull = derive2 { name="DPWeibull"; version="1.8"; sha256="05sasi42cakq0k3syvn2hnvb0sl2dflw6x98riwgrjvsmnw6bh2g"; depends=[binaryLogic prodlim Rcpp RcppArmadillo survival truncdist]; broken = true; };
   DSsim = derive2 { name="DSsim"; version="1.1.5"; sha256="0dr8dc91m7s5c198k9cb26a09f14wb8ihr46c0mr9cg33l2wf3nv"; depends=[fields mgcv mrds rgeos shapefiles sp splancs]; broken = true; };
   DStree = derive2 { name="DStree"; version="1.0"; sha256="14wba25ylmsyrndh007kl377dv4r34wr1555yxl6kyxrs4yg3jir"; depends=[Ecdat pec Rcpp rpart rpart_plot survival]; broken = true; };
@@ -20829,7 +21153,6 @@ in with self; {
   DWBmodelUN = derive2 { name="DWBmodelUN"; version="1.0.0"; sha256="1m71fx9l2rq27d2q5hiqxiyljvf5wjcfkcblqw19rpiixrinv4va"; depends=[dygraphs htmltools ncdf4 raster rgdal]; broken = true; };
   Data2LD = derive2 { name="Data2LD"; version="3.2.1"; sha256="1y6nyysm96q5mlrcl0vkjhq5lr624n2266xpmyl4ck0h1dhjb6bz"; depends=[deSolve fda knitr rmarkdown]; broken = true; };
   DataEntry = derive2 { name="DataEntry"; version="0.9-3"; sha256="0gfsg7wfwy88x7y1dwpgwi6fkizjnhrzj0a5ij70y4a4sjmyiy55"; depends=[digest gWidgets2 gWidgets2RGtk2 RGtk2]; broken = true; };
-  DataPackageR = derive2 { name="DataPackageR"; version="0.15.8"; sha256="0jrla69v47nycrqb4lccw2s2qabk2l9nm4sgwd1lfpq1zl8b3jwg"; depends=[assertthat crayon desc devtools digest futile_logger knitr purrr rmarkdown roxygen2 rprojroot stringr usethis yaml]; broken = true; };
   DeLorean = derive2 { name="DeLorean"; version="1.5.0"; sha256="1ry6j4mvxms9hddi9c56p9yhjh66fzss41wqkf6xq398h1wbn4q1"; depends=[BH broom coda dplyr fastICA functional ggplot2 kernlab lattice MASS memoise Rcpp RcppEigen reshape2 rstan rstantools seriation StanHeaders stringr]; broken = true; };
   DeducerPlugInExample = derive2 { name="DeducerPlugInExample"; version="0.2-0"; sha256="03aw7wr957xzw920ybyzxnck5kx0q2xpcrpq8jh2afyzszy6hzbi"; depends=[Deducer]; broken = true; };
   DeducerPlugInScaling = derive2 { name="DeducerPlugInScaling"; version="0.1-0"; sha256="1qg11vi4szznchh54p9345jbmrfzfr9z5l3x5xz4m86myjkys1mb"; depends=[Deducer GPArotation irr klaR mvnormtest psych]; broken = true; };
@@ -20867,6 +21190,8 @@ in with self; {
   EDFIR = derive2 { name="EDFIR"; version="1.0"; sha256="0nv1badyg1dri6z91fvs68a72g22vdg0rpi3fkpxw527r11fvrrv"; depends=[geometry lpSolve MASS vertexenum]; broken = true; };
   EIAdata = derive2 { name="EIAdata"; version="0.1.3"; sha256="0cx8x16jn8pfik7yd6vfqh23fqlfxnfj3ya42h5zbvsbka8rislh"; depends=[httr XML xts zoo]; broken = true; };
   EILA = derive2 { name="EILA"; version="0.1-2"; sha256="0wxl9k4fa0f7jadw3lvn97iwy7n2d02m8wvm9slnhr2n8r8sx3hb"; depends=[class quantreg]; broken = true; };
+  ELCIC = derive2 { name="ELCIC"; version="0.2.1"; sha256="1yflpbnqjcz47jyf3w32x5gra576q2f401p19zy0fz2cyradiggm"; depends=[bindata geepack MASS mvtnorm PoisNor wgeesel]; broken = true; };
+  EMAtools = derive2 { name="EMAtools"; version="0.1.4"; sha256="0gx55ddw7dz1lm599i0gj15dlc3m58a8rf223hiykszb5c8bi372"; depends=[anytime DataCombine ggplot2 lmerTest plyr sjstats]; broken = true; };
   EMC = derive2 { name="EMC"; version="1.3"; sha256="0sdpxf229z3j67mr9s7z4adzvvphgvynna09xkkpdj21mpml23p6"; depends=[MASS mvtnorm]; broken = true; };
   EMVS = derive2 { name="EMVS"; version="1.2.1"; sha256="1aikms2i77hwv6hrk8kn9wrh1v5j5zm918cwdwm5s6cy8fcqf406"; depends=[Rcpp RcppArmadillo]; broken = true; };
   EPGMr = derive2 { name="EPGMr"; version="1.0.0"; sha256="1ii4lccv4hyydy3sd5l7c22pgx27x3mdml20sfbdj85pmpyab6q9"; depends=[]; broken = true; };
@@ -20878,7 +21203,6 @@ in with self; {
   EcoHydRology = derive2 { name="EcoHydRology"; version="0.4.12.1"; sha256="075kgy6cxppkclk6nj5xs1f5yv9w8cpr09xwhf2101a6wswknb88"; depends=[DEoptim operators topmodel XML]; broken = true; };
   EffectsRelBaseline = derive2 { name="EffectsRelBaseline"; version="0.5"; sha256="1dsnakcrgmlx44599ii92wvhxbxrh0hij59709wsskx1x1152zvh"; depends=[]; broken = true; };
   ElectionsLATAM = derive2 { name="ElectionsLATAM"; version="0.1.1"; sha256="0xs3qff1ayq12cr7xszxvzmyihs4p9vsyrwcglll794vj096ylz4"; depends=[boot dplyr foreign lgr magrittr networkD3 R6 readr readxl testthat webshot]; broken = true; };
-  EloOptimized = derive2 { name="EloOptimized"; version="0.3.1"; sha256="09bg1gm8jhjj0r7yzdgi2zlyavrizgiljwh26mpb6ng6p5mkliid"; depends=[BAMMtools dplyr lubridate magrittr reshape2 rlang]; broken = true; };
   ElstonStewart = derive2 { name="ElstonStewart"; version="1.2"; sha256="1lsapsz8w8srdqdkxvlg5nsn157wbihxjgdaf53r5iaxzcljkzxc"; depends=[digest kinship2]; broken = true; };
   EntropyExplorer = derive2 { name="EntropyExplorer"; version="1.1"; sha256="02ljnq9ayxg4lrrnb6nlxr1k5ki8dd5i8hjb9fvvb19hwr2id5h4"; depends=[]; broken = true; };
   EnvExpInd = derive2 { name="EnvExpInd"; version="0.1.0"; sha256="063f3c10a7k9j3f85xilj1s6dd9ky5sw8sbvhzkhg5hg92c9dpns"; depends=[dplyr gstat maptools RCurl sp stringi zoo]; broken = true; };
@@ -20887,8 +21211,9 @@ in with self; {
   Eplot = derive2 { name="Eplot"; version="1.0"; sha256="1glmkjjj432z9g4gi56pgvfrm5w86iplirnd5hm4s99qci2hgc64"; depends=[]; broken = true; };
   EstHer = derive2 { name="EstHer"; version="1.0"; sha256="1j8sczwfzil16j85mw5d1c7cxy7wimh0qq7zhmkh7mfnr36m9phr"; depends=[glmnet MASS Rcpp RcppArmadillo]; broken = true; };
   EstSimPDMP = derive2 { name="EstSimPDMP"; version="1.2"; sha256="05gp0gdix4d98111sky8y88p33qr5w4vffkp6mg9klggn37kdj8j"; depends=[]; broken = true; };
-  Eunomia = derive2 { name="Eunomia"; version="1.0.1"; sha256="06a42qsf3nx1pbynikkdvmbhh1rmgnfmiggdn86b3a0ij6cq0p2r"; depends=[DatabaseConnector RSQLite SqlRender]; broken = true; };
+  Euronext = derive2 { name="Euronext"; version="2.0.2"; sha256="09pj10rc3rhwpdxyh6np4978jjg74k8c7m8di7c7j70ran270ybq"; depends=[dplyr flextable highcharter httr httr2 jsonlite magrittr rlang rvest stringr xts]; broken = true; };
   EvalEst = derive2 { name="EvalEst"; version="2021.2-1"; sha256="0ws7x0dkzb3h2m801dkzx2as146whm63mcipy4iia90jd9944zir"; depends=[dse setRNG tfplot tframe]; broken = true; };
+  EventStudy = derive2 { name="EventStudy"; version="0.39.2"; sha256="1z12nrkmpsv5cgm97g36vbwfdf0m1abfmwfln4xhy38d0qs61zi9"; depends=[curl data_table dplyr ggplot2 httr jsonlite magrittr miniUI purrr RColorBrewer readr rlang rstudioapi scales shiny stringr testthat tidyr]; broken = true; };
   EvoRAG = derive2 { name="EvoRAG"; version="2.0"; sha256="0gb269mpl2hbx1cqakv3qicpyrlfb4k8a3a7whhg90masbgmh8f6"; depends=[]; broken = true; };
   ExomeDepth = derive2 { name="ExomeDepth"; version="1.1.16"; sha256="1r7b9h5i562fa67ghisyw6ciwawfyjwrpn95kdws4dd4gqgbb9kv"; depends=[aod Biostrings dplyr GenomicAlignments GenomicRanges IRanges magrittr Rsamtools VGAM]; broken = true; };
   ExprNet = derive2 { name="ExprNet"; version="1.0.0"; sha256="1cskr8mihnjihgddc44j24wkbiswm6ra1qj5nxva7klc744q5vk7"; depends=[doParallel foreach here igraph]; broken = true; };
@@ -20901,10 +21226,12 @@ in with self; {
   FLightR = derive2 { name="FLightR"; version="0.5.4"; sha256="1lbdh4m0s12617s7sarqhlj88j3rn8zaiiwz361rx83map4vvhad"; depends=[bit CircStats circular fields geosphere ggmap ggplot2 ggsn maps mgcv nlme RcppArmadillo sf suntools truncnorm]; broken = true; };
   FPCA2D = derive2 { name="FPCA2D"; version="1.0"; sha256="18bb90ppd9gd8pg9jxfyfkmlsaqk8w25fgaj9fk18ybm2nhsxqm6"; depends=[corpcor]; broken = true; };
   FREG = derive2 { name="FREG"; version="1.1"; sha256="1f9ss0aj6w6n0x4np6wi3ynhhcibr5zk54gzbkgpk6q3y7pv0qs1"; depends=[fda]; broken = true; };
+  FSAtools = derive2 { name="FSAtools"; version="2.0.5"; sha256="0i4grcr155vbsnw823jiwngyayzymka9k7zhsbw1f208q6xyrx4d"; depends=[]; broken = true; };
+  FSMUMI = derive2 { name="FSMUMI"; version="1.0"; sha256="06ri1zi86cm4arjdlp2pha2bvcc8vz6irvd9n3ja074hv62wxcw4"; depends=[FuzzyR lsa]; broken = true; };
+  FSinR = derive2 { name="FSinR"; version="2.0.5"; sha256="11ss38qpasbyym9hcfqmv254jvr8lzsw6r85dlm7xlnhfnxil59l"; depends=[caret class digest dplyr e1071 GA mlbench neuralnet prodlim purrr Rdpack rlang rpart tidyr]; broken = true; };
   FacPad = derive2 { name="FacPad"; version="3.0"; sha256="0h7knzin0rfk25li127zwjsyz223w7nx959cs328p6b2azhgn59b"; depends=[MASS Rlab]; broken = true; };
   FactMixtAnalysis = derive2 { name="FactMixtAnalysis"; version="1.0"; sha256="1l4wfp39b7g38vdk6jpd5zq08sjhsg0s71f662aca2rj6l3a2x3r"; depends=[MASS mvtnorm]; broken = true; };
   FactorsR = derive2 { name="FactorsR"; version="1.5"; sha256="1rla44g75hrqalrblr1yaawmyixmivlacn50marqgd9fjh8blgcd"; depends=[]; broken = true; };
-  FamEvent = derive2 { name="FamEvent"; version="3.0"; sha256="1f2cfbd799gkva0jyf7x6x37x95nlg1zv85h85irkwh0kfwk55gh"; depends=[cmprsk eha kinship2 MASS pracma survival truncnorm]; broken = true; };
   FastHCS = derive2 { name="FastHCS"; version="0.0.7"; sha256="0l3fi3siwg2jhsj0jbhgccx8pnwd8h8f4z37g1najb41hw8dwn8d"; depends=[matrixStats Rcpp RcppEigen]; broken = true; };
   FastLZeroSpikeInference = derive2 { name="FastLZeroSpikeInference"; version="2018.12.10"; sha256="0ybpmns7bc1j5xzqjl7734grihmvvpa3h52gixv3h70l0r89d8ys"; depends=[]; broken = true; };
   FcircSEC = derive2 { name="FcircSEC"; version="1.0.0"; sha256="06c1n0xx1q0zh16bgylwbvqzp8q4c5bj626shm2c6r8f9kcjgysh"; depends=[Biostrings seqRFLP stringi]; broken = true; };
@@ -20925,6 +21252,7 @@ in with self; {
   G1DBN = derive2 { name="G1DBN"; version="3.1.1"; sha256="015rw3bpz32a8254janddgg1ip947qgcvmiwx5r3v7g8n854bwxn"; depends=[igraph MASS]; broken = true; };
   GABi = derive2 { name="GABi"; version="0.1"; sha256="1zmiaqbd1jrpiz9hk16s8rggcpl3xyyhjkkdliymx2p42vy5b5mf"; depends=[hash]; broken = true; };
   GADMTools = derive2 { name="GADMTools"; version="3.9-1"; sha256="0l62gsd3sdyvhsw7bqvgn3fv15xwm13y9nsm8r9fgcqbfpw45g32"; depends=[classInt dplyr ggmap ggplot2 ggspatial gridExtra jsonlite lattice maptools prettymapr raster RColorBrewer rgdal rgeos rosm sf sp stringr]; broken = true; };
+  GAabbreviate = derive2 { name="GAabbreviate"; version="1.3"; sha256="0cq6bg3w0ji44rsz1p4j17fk0jg8rafbjixwi3fjdndc3yd874r5"; depends=[GA psych]; broken = true; };
   GBcurves = derive2 { name="GBcurves"; version="0.1.6"; sha256="1agd7nkgahhwcc5p1zybnd6xws0kr0ggk70aznxfn2nijhw7sqwr"; depends=[curl functional httr magrittr readxl rvest xml2 xts]; broken = true; };
   GCAI_bias = derive2 { name="GCAI.bias"; version="1.0"; sha256="10092mwpmfbcga0n39a0i6g8xxch8xiwg15cckipw6yxjyx0sivc"; depends=[]; broken = true; };
   GENEAsphere = derive2 { name="GENEAsphere"; version="1.5.1"; sha256="1kgj7i9v2yn0b8lvvsf0nc6lg3i2syrcygwa51pcrzp57vv7hxn5"; depends=[GENEAread ggplot2 MASS misc3d rgl]; broken = true; };
@@ -20941,6 +21269,7 @@ in with self; {
   GRANCore = derive2 { name="GRANCore"; version="0.2.7"; sha256="0xnm7jb2s4ag4qvsfs1fq0f2ikvfqm3bvxhj8kmmxwynwl5pw287"; depends=[switchr]; broken = true; };
   GRPtests = derive2 { name="GRPtests"; version="0.1.2"; sha256="12w0vskf1n31zspk3vjgdlhrjwpsysvwwr0l0vm57j6faqc31i3s"; depends=[glmnet MASS randomForest ranger RPtests]; broken = true; };
   GSAgm = derive2 { name="GSAgm"; version="1.0"; sha256="18bhk67rpss6gg1ncaj0nrz0wbfxv7kvy1cxria083vi60z0vwbb"; depends=[edgeR survival]; broken = true; };
+  GSNA = derive2 { name="GSNA"; version="0.1.4.2"; sha256="0id71ik7s1hl57nzy3qzrdszvy3a83gf3gx8xwdswy53r6yiijf2"; depends=[circlize dendextend dplyr DT ggplot2 igraph Matrix psych raster Rcpp stringi stringr tibble tidyr tmod withr]; broken = true; };
   GWG = derive2 { name="GWG"; version="1.0"; sha256="1va0cd229dhhi1lmrkpwapcm96hrdmxilrmba02xnl7ikhisw0my"; depends=[]; broken = true; };
   GWPR_light = derive2 { name="GWPR.light"; version="0.2.1"; sha256="0ilgmdsfdrbam86vvlzm1avd337rqq1al0cvrl6i5cjpwaffncih"; depends=[data_table doParallel dplyr foreach GWmodel iterators lmtest plm sp]; broken = true; };
   GaDiFPT = derive2 { name="GaDiFPT"; version="1.0"; sha256="15fnj1w30h0zdj032f3js0bbb1qlyk4b54a4aclykwzicqdgalkg"; depends=[]; broken = true; };
@@ -20966,6 +21295,7 @@ in with self; {
   GlobalDeviance = derive2 { name="GlobalDeviance"; version="0.4"; sha256="0s318arq2kmn8fh0rd5hd1h9wmadr9q8yw8ramsjzvdc41bxqq1a"; depends=[snowfall]; broken = true; };
   GlobalFit = derive2 { name="GlobalFit"; version="1.2"; sha256="01s51nxcsl8xxn6khbv5jsvpwblwf0iamvr477a1rraqqqj94zx0"; depends=[sybil]; broken = true; };
   GmAMisc = derive2 { name="GmAMisc"; version="1.2.1"; sha256="0rvdphdgk1bdfamwf6spy5k9qa5ws92mvf3q3dlhn6qfazp7j4hr"; depends=[caTools classInt cluster coin corrplot DescTools dismo ggplot2 ggrepel gridExtra Hmisc InPosition kimisc lsr maptools plyr pROC raster RcmdrMisc rgdal rgeos sp spatstat_core spatstat_geom spatstat_random]; broken = true; };
+  GraphPCA = derive2 { name="GraphPCA"; version="1.1"; sha256="0x6j3lyd70zc0c1al1407ma8crzi174d5dqkz6lx4vx24knrlhbs"; depends=[FactoMineR ggplot2 ggplot2movies scatterplot3d]; broken = true; };
   GrassmannOptim = derive2 { name="GrassmannOptim"; version="2.0.1"; sha256="1gdjx9dazrff2nj16044b7vr7jwddf5cj0iwnlhan46fnibsfwjf"; depends=[Matrix]; broken = true; };
   GuessCompx = derive2 { name="GuessCompx"; version="1.0.3"; sha256="1xbkh1wh2z0n964w8lwi7q4rr7mls0awf5k7n5jjklhq4b6gswic"; depends=[boot dplyr ggplot2 lubridate reshape2]; broken = true; };
   GxM = derive2 { name="GxM"; version="1.1"; sha256="02rv8qb46ylk22iqn9cgh63vkyrg9a8nr1d0d3j5hqhi0wyhc41r"; depends=[minqa nlme Rcpp]; broken = true; };
@@ -20983,7 +21313,10 @@ in with self; {
   HIest = derive2 { name="HIest"; version="2.0"; sha256="0ik55kxhzjyg6z6072iz9nfaj7x1nvf91l1kysgvkjccr6jf3y86"; depends=[nnet]; broken = true; };
   HLSM = derive2 { name="HLSM"; version="0.9.0"; sha256="1nvjgv8lbqpig9snnxm3k1qs1r7bf43gw7a3prj9l3kmqdd0i4j3"; depends=[abind coda igraph MASS]; broken = true; };
   HMMCont = derive2 { name="HMMCont"; version="1.0"; sha256="1drni4f72x83sprn65wnhw0pv1q8lfkgmxdr9h4rwv1accril85x"; depends=[]; broken = true; };
+  HMMcopula = derive2 { name="HMMcopula"; version="1.0.4"; sha256="1gmvav02r3miaq4jx05qjcgzw5qv6w1j77vck5gpps8p38zcp34m"; depends=[copula doParallel foreach matrixcalc mvtnorm]; broken = true; };
+  HMVD = derive2 { name="HMVD"; version="1.0"; sha256="0agzvsl2n3zg3i519b93jqpiq9zix0bbrjdzk3ymsbb42dzkmj0d"; depends=[MASS]; broken = true; };
   HPbayes = derive2 { name="HPbayes"; version="0.1"; sha256="1kpqnv7ymf95sgb0ik7npc4qfkzc1zb483vwnjpba4f42jhf508y"; depends=[boot corpcor MASS mvtnorm numDeriv]; broken = true; };
+  HRM = derive2 { name="HRM"; version="1.2.1"; sha256="0qsxwi0v61k1waw21nrz86jazd5wgq2drhan3w8pmb35q2z20s35"; depends=[data_table doBy ggplot2 MASS matrixcalc mvtnorm plyr pseudorank Rcpp reshape2 xtable]; broken = true; };
   HRM_curve = derive2 { name="HRM.curve"; version="0.0.1"; sha256="0p3kvldpz347c0cdjkrdm0x2nfj85hm5cp59lirqhq77hf1zfnd5"; depends=[]; broken = true; };
   HSAR = derive2 { name="HSAR"; version="0.5.1"; sha256="03ryscvgiiwjcqk6gy3251nqqk43x508kz3ibw35hi84m2s7fsxj"; depends=[Rcpp RcppArmadillo spatialreg spdep]; broken = true; };
   HW_pval = derive2 { name="HW.pval"; version="1.0"; sha256="14nmyqw2d9cmn64789yc54fmiqanh6n1dizp7vj94h7b0jwq63yy"; depends=[]; broken = true; };
@@ -20997,11 +21330,13 @@ in with self; {
   HierDpart = derive2 { name="HierDpart"; version="1.5.0"; sha256="10sphan6slzj6bsbzff4z7pglkjhv6xy719dm7594fmgqfjz0ici"; depends=[ade4 adegenet ape diveRsity entropart GGally ggplot2 hierfstat mmod pegas permute reshape2 tibble vegan]; broken = true; };
   HierO = derive2 { name="HierO"; version="0.2"; sha256="1lqj5grjly4kzxl7wb192aagz2kdvpnjdan2kcg5yxwvg1xcvwv1"; depends=[bitops RCurl rneos tcltk2 XML]; broken = true; };
   HierPorfolios = derive2 { name="HierPorfolios"; version="0.1.0"; sha256="0lx10lnslal689ykp7idvngc074yhfx3mkddyrax91djnqsc8aq4"; depends=[cluster fastcluster RiskPortfolios]; broken = true; };
+  HistogramTools = derive2 { name="HistogramTools"; version="0.3.2"; sha256="1wkv6ypn006d8j6bpbhc1knw0bky4y8r7jp87482yd19q5ljsgv0"; depends=[ash Hmisc stringr]; broken = true; };
   Holidays = derive2 { name="Holidays"; version="1.0-7"; sha256="1srfbhlrf0pd6gzhp4hbic555lb7camk084rn1qz2g7fjvyijqiq"; depends=[TimeWarp]; broken = true; };
   HostSwitch = derive2 { name="HostSwitch"; version="0.1.3"; sha256="1937rjjz3lzriym1brjfpp1b02zd40ry4205yrkrs3vxp1lp4234"; depends=[checkmate ggplot2 shiny tippy]; broken = true; };
   HyPhy = derive2 { name="HyPhy"; version="1.0"; sha256="0994ymv7sswbp8qw3pay34s926cflw2hq2gnchw7rknybvlsrinq"; depends=[ape R_utils]; broken = true; };
   HybridMC = derive2 { name="HybridMC"; version="0.2"; sha256="1wgzfyk0scwq9s2sdmc91fj7r4d7zlgwgnj6mdiia8w88ja8kzqy"; depends=[coda]; broken = true; };
   HydeNet = derive2 { name="HydeNet"; version="0.10.11"; sha256="1qi87k2drizqba1nz8psh697ks8ai8xz492kzsrs76xlxpbk1i9k"; depends=[checkmate DiagrammeR dplyr graph magrittr nnet pixiedust plyr rjags stringr]; broken = true; };
+  HypergeoMat = derive2 { name="HypergeoMat"; version="4.0.2"; sha256="06ljg2v0dbqi9mf2l236p616x62cbx4q05qymbsj8inmajwv0piz"; depends=[EigenR gsl JuliaConnectoR Rcpp RcppEigen]; broken = true; };
   IAbin = derive2 { name="IAbin"; version="1.0"; sha256="1cpj2mx72n4v0yd8jbbnhj2w5d0sc8pw7rc8ahnn1hfa38pwwsyx"; depends=[]; broken = true; };
   IBDLabels = derive2 { name="IBDLabels"; version="1.1"; sha256="1m9fd058yjxva6hin7i72i2nl285wfm0jkdn5xcng27yqlijyrm9"; depends=[]; broken = true; };
   IBDhaploRtools = derive2 { name="IBDhaploRtools"; version="1.8"; sha256="1754239pdil6b383mpzyi8zb9l9hzg15dwgn5246v97g1y3mlp5r"; depends=[]; broken = true; };
@@ -21041,6 +21376,7 @@ in with self; {
   Interpol_T = derive2 { name="Interpol.T"; version="2.1.1"; sha256="1fbsl1ypkc65y6c0p32gpi2a2aal8jg02mclz7ri57hf4c1k09gz"; depends=[chron date]; broken = true; };
   IsoCI = derive2 { name="IsoCI"; version="1.1"; sha256="0r7ksfic6p2v95c953s4gbzzclk4ldxysm8szb8xba1w0nx2izil"; depends=[KernSmooth]; broken = true; };
   IsoCorr = derive2 { name="IsoCorr"; version="1.0"; sha256="0rhbclbpfd9d0dawbwwprlzx2j9k59gsmrb11yabiv5305b7vpx8"; depends=[]; broken = true; };
+  IsoGene = derive2 { name="IsoGene"; version="1.0-24"; sha256="0flm0mszankvl3aizwsazyhvz2xkr4gfqiqywpc0r1swqj19610r"; depends=[affy Biobase ff Iso xtable]; broken = true; };
   JASPAR = derive2 { name="JASPAR"; version="0.0.1"; sha256="0wiyn7cz45hwy9zkvacx28zdrg78q6715cg4r9xgcb39q25s0dcy"; depends=[gtools]; broken = true; };
   JGEE = derive2 { name="JGEE"; version="1.1"; sha256="078348n623hlyc3n9yh67vv5acsnxapmbwybvrb1i7kawmqw5msi"; depends=[gee MASS]; broken = true; };
   JMcmprsk = derive2 { name="JMcmprsk"; version="0.9.10"; sha256="1hkylfrr2036vgkxfs98szm3883bmyvvyr0f3a8xygccf3pn28xc"; depends=[dplyr MASS pracma Rcpp reshape2 statmod]; broken = true; };
@@ -21068,6 +21404,7 @@ in with self; {
   LDOD = derive2 { name="LDOD"; version="1.0"; sha256="0mf2sy01yv57mqicrz08a17m6crigklx6fmw9zpxv7g85qw1iq4v"; depends=[Rmpfr Rsolnp]; broken = true; };
   LDPD = derive2 { name="LDPD"; version="1.1.2"; sha256="1khdx8vwlpliyjc4sxcdiywbxl8lc9f5s3457vcip1j8dv537lbm"; depends=[MASS nleqslv]; broken = true; };
   LDheatmap = derive2 { name="LDheatmap"; version="1.0-6"; sha256="0gr99kys1ahyl8s6cbj6rmh4vwid8kn92lcbjnwh0ahb73m2xjjc"; depends=[genetics Rcpp snpStats]; broken = true; };
+  LEANR = derive2 { name="LEANR"; version="1.4.9"; sha256="053xy13ys5hibafdnbkwqdk36hw7dhanp4frfacpfpn5f9nfh95r"; depends=[foreach igraph]; broken = true; };
   LEAP = derive2 { name="LEAP"; version="0.2"; sha256="1yrhanxvr7krvllqzv17qkc4wvmd7mgl57am8sn53773dbfipfc4"; depends=[]; broken = true; };
   LEAPFrOG = derive2 { name="LEAPFrOG"; version="1.0.7"; sha256="0z9ahkk4qzc45h1r806frv9cd84vvshvn5mr84gx7qdxljfkfq6h"; depends=[alabama MASS]; broken = true; };
   LICORS = derive2 { name="LICORS"; version="0.2.0"; sha256="0p9y21k1mj1v397jpb5g6jiw7rpzbyfwr4kv2rp3lyxyasy2ykf0"; depends=[fields FNN locfit Matrix mvtnorm RColorBrewer zoo]; broken = true; };
@@ -21088,10 +21425,12 @@ in with self; {
   LinearDetect = derive2 { name="LinearDetect"; version="0.1.5"; sha256="0i79k42avcv2nhk9p71a74zv8d204jgqzrs2mni6zp8brhwmxlki"; depends=[factoextra ggplot2 glmnet mvtnorm Rcpp RcppArmadillo sparsevar]; broken = true; };
   LocFDRPois = derive2 { name="LocFDRPois"; version="1.0.0"; sha256="0zzdp9wgwr6wn3grimghpj4vq34x37c8bqg8acfzlzih8frqal3r"; depends=[dplyr ggplot2]; broken = true; };
   LocalControlStrategy = derive2 { name="LocalControlStrategy"; version="1.4"; sha256="1slkhgac7izkmp5g203lhzvh991mnqf2qz1m0nd1k89084wvkv7b"; depends=[cluster lattice]; broken = true; };
+  Lock5withR = derive2 { name="Lock5withR"; version="1.2.2"; sha256="10x3i11pb4cig4pgfmw9984na5zjbg7d41y6crakiimf53ihx0c2"; depends=[]; broken = true; };
   LogisticDx = derive2 { name="LogisticDx"; version="0.3"; sha256="1hry32grqwlarp0cplx8szf4pf7ml1nxd11ahffmr72ihcv5ckga"; depends=[aod data_table pROC RColorBrewer rms speedglm statmod]; broken = true; };
   LogitNet = derive2 { name="LogitNet"; version="0.1-1"; sha256="08xi5rpbqkc1b3qj24blv3l0r68wcqbsbjcqxiypm75f3c2irc4i"; depends=[]; broken = true; };
   LogrankA = derive2 { name="LogrankA"; version="1.0"; sha256="005zkpzi8h03qvqlpkygrf9xv4q77klafkfxw47x04jvkhklwigb"; depends=[]; broken = true; };
-  M3 = derive2 { name="M3"; version="0.3"; sha256="1l40alk166lshckqp72k5zmsgm7s5mgyzxlp11l64mgncjwkw2r3"; depends=[mapdata maps ncdf4 rgdal]; broken = true; };
+  LotkasLaw = derive2 { name="LotkasLaw"; version="0.0.1.0"; sha256="11kq52yavicimp7ll7ljrs69a5fxf68ydb9md7v6b02iw5mwbmz7"; depends=[]; broken = true; };
+  MACP = derive2 { name="MACP"; version="0.1.0"; sha256="097qqqv0xmkm8cc5a2zr96lnnrkw92nzr3cj4sfnfa6whlpi72fn"; depends=[caret dplyr fmsb ggplot2 Hmisc igraph lsa pROC PRROC stringr tibble tidyr WGCNA zoo]; broken = true; };
   MAFDash = derive2 { name="MAFDash"; version="0.2.1"; sha256="11d503sw423ddawj8lapxpm59532nxz4b6wh06fn4kqzh0gq1mbj"; depends=[bsplus canvasXpress circlize ComplexHeatmap crosstalk data_table dplyr DT ensurer flexdashboard GenomicRanges ggbeeswarm ggplot2 htmltools IRanges knitr maftools pheatmap plotly readr reshape2 rmarkdown TCGAbiolinks tibble tidyr]; broken = true; };
   MAPLES = derive2 { name="MAPLES"; version="1.0"; sha256="0hzsh7z1k7qazpxjqbm9842zgdpl51irg7yfd119a7b2sd3a8li9"; depends=[mgcv]; broken = true; };
   MARX = derive2 { name="MARX"; version="0.2"; sha256="1rc87hz719khl8mclbkfdix499nsc4nyihaaavd73nany7iprm02"; depends=[fBasics matlab metRology stabledist tseries]; broken = true; };
@@ -21099,7 +21438,6 @@ in with self; {
   MAVTgsa = derive2 { name="MAVTgsa"; version="1.3"; sha256="0rzal9nsi8y873cbf6hrdyzyxnpd4r1yr9fj66cn0s1c8g93ls0y"; depends=[corpcor foreach MASS multcomp randomForest]; broken = true; };
   MAc = derive2 { name="MAc"; version="1.1.1"; sha256="1dawqmziffaz8wgcqzwc0yifdq65abgn24vafkrwa9850048c26f"; depends=[]; broken = true; };
   MAclinical = derive2 { name="MAclinical"; version="1.0-5"; sha256="1g0ka1kqww2xim8rp5rznkzn0a541zvf841s3lbphfh9k3y3ixs3"; depends=[e1071 party plsgenomics st]; broken = true; };
-  MBCbook = derive2 { name="MBCbook"; version="0.1.1"; sha256="0jmvgyzrahnxfkwdn86k3ffk0zfbbd34ya4zmlnsmp2m9xds7lgn"; depends=[MASS mclust mvtnorm Rmixmod]; broken = true; };
   MBCluster_Seq = derive2 { name="MBCluster.Seq"; version="1.0"; sha256="0xbi2r0g0gzsy05qrq1ljr5f5s3glwxj204vk2f1lgwdx3fd116m"; depends=[]; broken = true; };
   MBI = derive2 { name="MBI"; version="1.0"; sha256="1lb0sjwa6x360n9a9pagz6yhxh37gxq1fk0f5c3i2sd56ny9jpns"; depends=[]; broken = true; };
   MC2toPath = derive2 { name="MC2toPath"; version="0.0.16"; sha256="0jdn9wpxavn2wrml907v23mfxr62wwjdh7487ihjj59g434ry7wh"; depends=[RNetCDF]; broken = true; };
@@ -21115,6 +21453,7 @@ in with self; {
   MHMM = derive2 { name="MHMM"; version="1.0.0"; sha256="0d3djaydw0h7x3vlaghrbgmx024rgv36wfsjhlixzzssb2d6lqzi"; depends=[BH ggplot2 gridExtra Rcpp RcppArmadillo reshape2]; broken = true; };
   MHTcop = derive2 { name="MHTcop"; version="0.1.1"; sha256="1mr8y8brsi37b5qx3fqm0bj90dgknzzwhxfmvyd9kxbxh19whgxq"; depends=[copula matrixStats MCMCpack mvtnorm stabledist]; broken = true; };
   MHadaptive = derive2 { name="MHadaptive"; version="1.1-8"; sha256="1w3bm82v8ahxrf0vqn0pznv7dqn212drinkz8y5kr1flx423l9ws"; depends=[MASS]; broken = true; };
+  MIDASwrappeR = derive2 { name="MIDASwrappeR"; version="0.5.1"; sha256="07108dg16i20fg6cvsnbflfz65smwk08vjmf1b193zyvhdikwhfm"; depends=[Rcpp]; broken = true; };
   MIICD = derive2 { name="MIICD"; version="2.4"; sha256="1xlvhyh3gg77cym10i8hrxm8r1jm4plvny2c4izic6w89snplyq6"; depends=[MASS mstate survival]; broken = true; };
   MILC = derive2 { name="MILC"; version="1.0"; sha256="14xsiw5al6kixwvf3ph0dlm8s13gsbqvzb92da6ng3x4iiyb1g0w"; depends=[]; broken = true; };
   MIPHENO = derive2 { name="MIPHENO"; version="1.2"; sha256="0hcaq66biv4izszdhqkgxgz91mgkjk1yrwq27fx07a2zmzj44sfv"; depends=[doBy gdata]; broken = true; };
@@ -21133,6 +21472,7 @@ in with self; {
   MOrder = derive2 { name="MOrder"; version="0.1"; sha256="1vhy20xyvfc18f04hvlb1jm2n0caaz8ysy13w2rra5i4kjdvz52i"; depends=[]; broken = true; };
   MPAgenomics = derive2 { name="MPAgenomics"; version="1.2.3"; sha256="0096jy94zpbbd2n862hc4m3i4s7vpl2q3vybx96hvv6qi1ny47cm"; depends=[changepoint glmnet HDPenReg R_utils spikeslab]; broken = true; };
   MPINet = derive2 { name="MPINet"; version="1.0"; sha256="1zw3piqhhpagg5qahc2xahxxfdwdk8w94aass1virlpl0f52ik8s"; depends=[BiasedUrn mgcv]; broken = true; };
+  MPLikelihoodWB = derive2 { name="MPLikelihoodWB"; version="1.1"; sha256="0xgj349jkv29ldia4lmsiwnkhrk99aqcrvyiy3si5knmi1jvx9q0"; depends=[MASS survival]; broken = true; };
   MPR_genotyping = derive2 { name="MPR.genotyping"; version="0.8"; sha256="0lsrbks7nhfnrmk8kclh09rc132j3divjxrzjfrg8zijbzkfx1pn"; depends=[qtl]; broken = true; };
   MPkn = derive2 { name="MPkn"; version="0.1.0"; sha256="0nvd6sv1wypcmphm0wcymbibcxrqzx3c9s9b191p1pmxyz607vxv"; depends=[]; broken = true; };
   MRCV = derive2 { name="MRCV"; version="0.3-3"; sha256="0m29mpsd3kackwrawvahi22j0aghfb12x9j18xk4x1w4bkpiscmf"; depends=[tables]; broken = true; };
@@ -21140,7 +21480,7 @@ in with self; {
   MRMR = derive2 { name="MRMR"; version="0.1.4"; sha256="0dgbhlynaaka7mdzl6igwgcdzvy6cm2y8mbxaf9pfla8w3z8y0lq"; depends=[ggplot2 lmtest lubridate plyr reshape2]; broken = true; };
   MRsurv = derive2 { name="MRsurv"; version="0.2"; sha256="148myzk6r8whkpv1yv59dmdlr2n8vdwmaww165aw696xfjxwq550"; depends=[mvtnorm survival]; broken = true; };
   MSGLasso = derive2 { name="MSGLasso"; version="2.1"; sha256="1k17vnvzr647pwfbdxrpqcsp34iygq86wf0ns4rq8cj6q5mik1bv"; depends=[]; broken = true; };
-  MSTest = derive2 { name="MSTest"; version="0.1.1"; sha256="0icrpzvgbr84scx44lkg0r3f0x6hppqqikcnr0hpsbg6125ihq5f"; depends=[foreach GA GenSA lmf nloptr numDeriv pso Rcpp RcppArmadillo rlang]; broken = true; };
+  MSQC = derive2 { name="MSQC"; version="1.1.0"; sha256="1irs750n38513si9gw2fs9xibmlw0g3yd9w3rfcj7gbbgp2l6p4f"; depends=[rgl]; broken = true; };
   MSinference = derive2 { name="MSinference"; version="0.1.0"; sha256="1016i5khs5sh90ywffwkl1jjj3j08iw9hs1zhw08xz9p6sj6qz9n"; depends=[doParallel foreach Rcpp Rdpack]; broken = true; };
   MVB = derive2 { name="MVB"; version="1.1"; sha256="0an8b594rknlcz6zxjva6br8f34sgwdi2jil3xh1xzb5fa55dw0f"; depends=[Rcpp RcppArmadillo]; broken = true; };
   MWLasso = derive2 { name="MWLasso"; version="1.3.1"; sha256="11lyk46lmjcd60q0mixi41b8ybjgyp1xi18g3ag4450xyhw3r17s"; depends=[]; broken = true; };
@@ -21176,7 +21516,6 @@ in with self; {
   MinBAR = derive2 { name="MinBAR"; version="1.1.3"; sha256="0d0l7sr99kg6s0pxw10zrnwz699kzqaylawymd7kggc3dag9frbx"; depends=[dismo ecospat geosphere lattice latticeExtra maxnet raster rgdal sp]; broken = true; };
   Miney = derive2 { name="Miney"; version="0.1"; sha256="0sgln0653rgglinr8rns5s2az0lgyp9slmynyhhhs265grkhrfj0"; depends=[]; broken = true; };
   MinkowskiSum = derive2 { name="MinkowskiSum"; version="1.0.0"; sha256="1v7i3jzj65y8xy8kyl4jp651pqk5xd9bbfj8az1443ng9l39n57h"; depends=[BH data_table gmp PolygonSoup Rcpp RcppCGAL RcppEigen]; broken = true; };
-  MixAll = derive2 { name="MixAll"; version="1.5.1"; sha256="1jsh29ygy1n7lbz93ks725li9hnvfa0kp1qik13m72nmgw7g7q5a"; depends=[Rcpp rtkore]; broken = true; };
   MixMAP = derive2 { name="MixMAP"; version="1.3.4"; sha256="0gxghym5ghbyxf589hda2fhv5l3x5jvm6i40x5xdwx4hadcn8k9a"; depends=[lme4]; broken = true; };
   MixtureInf = derive2 { name="MixtureInf"; version="1.1"; sha256="12qcflmrpzh4w5b40xq5qicks6p0cwqpf5k84pwabkjb168afddv"; depends=[quadprog]; broken = true; };
   MixtureRegLTIC = derive2 { name="MixtureRegLTIC"; version="1.0.0"; sha256="052gyk4gqv49fa2rxbxnib29f1vjxiw4q8llkfhsv8kw5pw38699"; depends=[]; broken = true; };
@@ -21194,10 +21533,12 @@ in with self; {
   Myrrix = derive2 { name="Myrrix"; version="1.2"; sha256="05x2h4ppjhfm0wlpwyp8ycjg59qj3gv0yqdilxrzb1lkrzln92xb"; depends=[Myrrixjars rJava]; broken = true; };
   Myrrixjars = derive2 { name="Myrrixjars"; version="1.0-2"; sha256="1hhfg83z5kl6l250z3lippx3qc68k1wj1qlfzd6m66rgmk699gyl"; depends=[rJava]; broken = true; };
   NB = derive2 { name="NB"; version="0.9"; sha256="1gh42z7lp6g09fsfmikxqzyvqp2874cx3a6vr96w43jfwmgi2diq"; depends=[]; broken = true; };
+  NBBttest = derive2 { name="NBBttest"; version="1.0.1"; sha256="13p6kkakg2hd27xmh6vjnn8w161qaw23xzsx99pjgvz7w0n9idv3"; depends=[gplots gtools]; broken = true; };
   NEff = derive2 { name="NEff"; version="1.1"; sha256="16ys1fi28kbzg3am9vz1c5pc9x0ac47pl6za04h63lspk99yplzk"; depends=[bit msm]; broken = true; };
   NFP = derive2 { name="NFP"; version="0.99.4"; sha256="1ybkkqdwq72inwyak5d2598xizfph5sg3zzb855l0kpxplcqnp2f"; depends=[apcluster dplyr ggplot2 graph igraph KEGGgraph magrittr plyr stringr tidyr]; broken = true; };
   NGSSEML = derive2 { name="NGSSEML"; version="2.2"; sha256="1jyjjhxq2kmm8hbsp3b27vxyin7j32056wi06gz5s02rmrhld97h"; depends=[car dlm fields interp mvtnorm]; broken = true; };
   NHMM = derive2 { name="NHMM"; version="3.11"; sha256="1ynxk4dpllb3w8229dmxzjdmf0zh5cgmh3wa55d02disc6yhm77k"; depends=[BayesLogit MASS MCMCpack msm Rcpp]; broken = true; };
+  NHMSAR = derive2 { name="NHMSAR"; version="1.19"; sha256="0xbnzq3zlpda1xcfiz1lsa5q5frvrsf87z3xc41fvk1n5viak5fk"; depends=[glasso lars ncvreg ucminf]; broken = true; };
   NITPicker = derive2 { name="NITPicker"; version="1.0.1"; sha256="00jmin7y1bp7a4a1qcvv3rkgiy9qij7gbkxcdgpiyzcs6aaif59z"; depends=[fda fda_usc fdasrvf]; broken = true; };
   NLMR = derive2 { name="NLMR"; version="1.1"; sha256="1m08nm71wbam6d8nj8akwqrm6nq5bvm3v76kdlasdgs7v36xzri6"; depends=[checkmate dplyr fasterize igraph RandomFields raster Rcpp sf spatstat_core spatstat_geom tibble]; broken = true; };
   NMproject = derive2 { name="NMproject"; version="0.6.9"; sha256="0br58m07yf5bxizz3m14rbskhracyg99gq6di9a5rgzycgs3rvg4"; depends=[crayon diffobj dplyr DT dygraphs git2r htmltools lifecycle magrittr miniUI rlang rmarkdown rprojroot rstudioapi shiny stringr tidyr usethis]; broken = true; };
@@ -21205,16 +21546,20 @@ in with self; {
   NPC = derive2 { name="NPC"; version="1.1.0"; sha256="06y6vdln5zyinq9bsp66yz6i1v5bkw9pa2hknl9brwc75z359apn"; depends=[coin dplyr matlab permute]; broken = true; };
   NPMLEmix = derive2 { name="NPMLEmix"; version="1.2"; sha256="056jb3kz34lajryfbzkhq0g372iib6h8mr74mq18xkarp5blgmsl"; depends=[CAMAN dplyr FDRreg Hmisc latexpdf Matrix mosaic pbapply pracma progress R_utils Rcpp REBayes Rmosek spatstat]; broken = true; };
   NPMVCP = derive2 { name="NPMVCP"; version="1.1"; sha256="13jpm46abwziq8859jhl6hg1znk3ws1q7g4vlr2jyri3qa6h22dd"; depends=[]; broken = true; };
+  NPRED = derive2 { name="NPRED"; version="1.0.7"; sha256="0nkfgc9zy3gszmnay77yj7i0p8w1q8j1m9wb05hkrmhiacp4mbn4"; depends=[]; broken = true; };
   NPS = derive2 { name="NPS"; version="1.1"; sha256="02idja149a2sj97sks4lhsaflpifyxi6n0rjlcq9993f84szfgsi"; depends=[]; broken = true; };
   NRAHDLTP = derive2 { name="NRAHDLTP"; version="0.1.2"; sha256="1dryd9riba3gch7z6ylszbrzw7j40b7cp1z2kyllhk4w2hzrkxm7"; depends=[expm Rcpp RcppArmadillo Rdpack readr]; broken = true; };
   NSUM = derive2 { name="NSUM"; version="1.0"; sha256="1as4g3v7qlk9wxlpwhg293980jq9gy6qay77bbcrjf481gvkkbp6"; depends=[MASS MCMCpack]; broken = true; };
   NetComp = derive2 { name="NetComp"; version="1.6"; sha256="11rxpdihn575diqfvc7yvxhlr2c19fig4v4a5c6jhqyfdsd60fsv"; depends=[gdata]; broken = true; };
   NetData = derive2 { name="NetData"; version="0.3"; sha256="1jf05zwy0c6gmm7kvxlwvai61bz4wpsw7cl0h4i21ipzn1rqxmqj"; depends=[]; broken = true; };
+  NetSci = derive2 { name="NetSci"; version="1.0.0"; sha256="1fliilk5z7lldkry5kijwab0k6ysqy87fcfrnwyywxkpxxrv1578"; depends=[binr cubature dplyr igraph magrittr Rfast wTO]; broken = true; };
   NoiseFiltersR = derive2 { name="NoiseFiltersR"; version="0.1.0"; sha256="0y90si8f5hsi273g10hw700r72la30hwqlwg59gaq76wqlkm8j0p"; depends=[caret e1071 kknn MASS nnet randomForest rJava rpart RWeka]; broken = true; };
   NominalLogisticBiplot = derive2 { name="NominalLogisticBiplot"; version="0.2"; sha256="0m9442d9i78x57gdwyl3ckwp1m6j27cam774zkb358dw5nmwxbmz"; depends=[gmodels MASS mirt]; broken = true; };
+  NonlinearRDD = derive2 { name="NonlinearRDD"; version="0.0.4"; sha256="0jj8s8nvv5jcp74zlid0y5j4b1vl6cg4mxaw6m45wnaxansqfcq3"; depends=[copula lpcde lpdensity quantreg rddensity rdrobust Rfast]; broken = true; };
   NonpModelCheck = derive2 { name="NonpModelCheck"; version="4.1"; sha256="0yd30gy1145zizdvy2zh73ppbiz3awg8j1h7j6iabqxy61h0llnw"; depends=[dr]; broken = true; };
   NormalBetaPrime = derive2 { name="NormalBetaPrime"; version="2.2"; sha256="03il9c57dbwgw38rzckkk0wkc37z8kfdrb7b4k471gm7mqhsm3m3"; depends=[GIGrvg glmnet HyperbolicDist MASS Matrix pracma pscl truncnorm]; broken = true; };
   NormalGamma = derive2 { name="NormalGamma"; version="1.1"; sha256="0r3hhfscif0sx9v8f450yf119gpvf3ilpb8n3ziy4v4qf2jlcfnk"; depends=[histogram optimx]; broken = true; };
+  OBsMD = derive2 { name="OBsMD"; version="11.1"; sha256="0gxx3ja4ii5ql1ss43g23jrbwzg3193wchqmrdm0iq7g33mmd16y"; depends=[]; broken = true; };
   OData = derive2 { name="OData"; version="0.6"; sha256="10r4kfhdabramjmkgc4fl0bljaiqbvc7rq4byas7q8cmji2czw6f"; depends=[RJSONIO XML]; broken = true; };
   OLScurve = derive2 { name="OLScurve"; version="0.2.0"; sha256="1zqapfwgwy9rxnbhmlgplkphw1bdia4cyi9q6iwcppw3rjw75f1n"; depends=[lattice]; broken = true; };
   ONETr = derive2 { name="ONETr"; version="1.0.3"; sha256="14l56qcmyyk2ivcfkfv7j2k4i1mfrngpi9zcc88w6xfhz5qlb548"; depends=[plyr RCurl XML]; broken = true; };
@@ -21236,7 +21581,6 @@ in with self; {
   OutlierDC = derive2 { name="OutlierDC"; version="0.3-0"; sha256="1vm3zx4qmj9l0ddfqbksm1qyqzzqrxf93gh4kj52h68zlsfxwv41"; depends=[Formula quantreg survival]; broken = true; };
   OutlierDM = derive2 { name="OutlierDM"; version="1.1.1"; sha256="0n8iq464ryc3v4wms7cdka39870w5pg29z9v8gmdsp4d9cfsx9v4"; depends=[MatrixModels outliers pcaPP quantreg]; broken = true; };
   OutrankingTools = derive2 { name="OutrankingTools"; version="1.0"; sha256="0z7pslkkinn7flc4xwjg0bsfswf8ad4jv9rmglaj3fmjcx9b6wgj"; depends=[igraph]; broken = true; };
-  PAFit = derive2 { name="PAFit"; version="1.2.5"; sha256="07n27g2yy2lskna7qa4j6am3prdcwfnx98ppvcarsxgzvywz0scv"; depends=[ggplot2 igraph knitr magicaxis mapproj MASS network networkDynamic plyr RColorBrewer Rcpp VGAM]; broken = true; };
   PAGI = derive2 { name="PAGI"; version="1.0"; sha256="01j1dz5ihqslpwp9yidmhw86l112l7rfkswmf03vss872mpvyp3f"; depends=[igraph]; broken = true; };
   PALMO = derive2 { name="PALMO"; version="0.1.2"; sha256="0vh0i5qb26267w5dzply091dh4mcxyza7yyhh7sy2wmwb04834ak"; depends=[circlize ComplexHeatmap cowplot dplyr factoextra ggforce ggplot2 ggrepel knitr lme4 MAST pbapply pheatmap reshape2 Rtsne Seurat tidyverse]; broken = true; };
   PAMA = derive2 { name="PAMA"; version="1.2.0"; sha256="12fvkcdkn66gzr193fq9byf64qlq2x9dkjv9hpfw770l4yw496jn"; depends=[ExtMallows mc2d PerMallows rankdist Rcpp]; broken = true; };
@@ -21245,6 +21589,7 @@ in with self; {
   PBRF = derive2 { name="PBRF"; version="1.0.0"; sha256="1ibwywgbxnxcb3z2kl2bgh7fz512nhgy2zcdym67asp76c6rkqg6"; depends=[]; broken = true; };
   PCA4TS = derive2 { name="PCA4TS"; version="0.1"; sha256="1qi9nlaf5181afrdvddh10a9vxyhry102n3dhai86im8yz4if9y6"; depends=[tseries]; broken = true; };
   PCRedux = derive2 { name="PCRedux"; version="1.1-2"; sha256="1x3a4pdv54ppar9fjshk0avgpxvqsar4x7fgy9w0i76fgndr7qs5"; depends=[bcp changepoint chipPCR ecp fda_usc MBmca pbapply pracma qpcR robustbase segmented shiny zoo]; broken = true; };
+  PDXpower = derive2 { name="PDXpower"; version="1.0.0"; sha256="144phmshjmm891f8sd8aagm7ql6hwb1i24mbpcfgak61q7anw2xy"; depends=[frailtypack ggplot2 ggpubr nlme survival]; broken = true; };
   PEMM = derive2 { name="PEMM"; version="1.0"; sha256="18dd9hsbdrnhrrff7gpdqrw2jv44j8lg0v3lkcdpbd4pppcaq84h"; depends=[]; broken = true; };
   PIGShift = derive2 { name="PIGShift"; version="1.0.1"; sha256="115dnsh4b1rxx1d2kc8x3vl5366h5f0i6gg8l1w3v0f8309qigis"; depends=[ape mvtnorm]; broken = true; };
   PIPS = derive2 { name="PIPS"; version="1.0.1"; sha256="1c5v3s6xys9p1q32k6mpsffhi9gwsq951rh12hs76dmak862yspc"; depends=[]; broken = true; };
@@ -21255,6 +21600,7 @@ in with self; {
   POFIBGE = derive2 { name="POFIBGE"; version="0.1.6"; sha256="0llam63hjf1yi6qc44bpgr6dmc4b8sy0sn8gwcgzz50apsn1glc9"; depends=[dplyr httr magrittr projmgr RCurl readr readxl survey tibble timeDate]; broken = true; };
   POPdemog = derive2 { name="POPdemog"; version="1.0.3"; sha256="0j83c853ligmw8ag4pb0vj46sfn2w2ynh4wvgkabzs688hxxni8r"; depends=[]; broken = true; };
   PP3 = derive2 { name="PP3"; version="1.2"; sha256="1g36al9w1rxyhfzbvpw9siqq57h2xl0zr94wysz8i0jzqkkqkrvf"; depends=[]; broken = true; };
+  PRANA = derive2 { name="PRANA"; version="1.0.4"; sha256="1i9gwz4dlsz9w0z3d995w6s6f10gwvwhyb77agbmmwym1fd2k2wh"; depends=[dnapath dplyr minet robustbase]; broken = true; };
   PROTOLIDAR = derive2 { name="PROTOLIDAR"; version="0.1"; sha256="0bz3071b0wlcvh40vl3dyiiixk5avsj6kjjnvlvx264i5g08rij4"; depends=[]; broken = true; };
   PSIMEX = derive2 { name="PSIMEX"; version="1.1"; sha256="0cndzasvg4y49incyd9nfz8y3z88ywbc7xk0zzjir665pv2xn23b"; depends=[knitr MCMCglmm pedigree plotrix]; broken = true; };
   PWD = derive2 { name="PWD"; version="1.0"; sha256="0ksr3biaqd4p5a4lv28i4cwk1fn9822ndq2161mgvc1c344p06fj"; depends=[Rcpp RcppArmadillo]; broken = true; };
@@ -21268,11 +21614,14 @@ in with self; {
   PatternClass = derive2 { name="PatternClass"; version="2.0.1"; sha256="1xwlk6shms38nqxad3d15254wgnkfzy7jyf5w9bbm96kg05mndbz"; depends=[landscapemetrics raster]; broken = true; };
   PedCNV = derive2 { name="PedCNV"; version="0.1"; sha256="09qxcjzwdgzdkbj28rzmfv7k3q2qsiapnvx3m45a835r57h5gynp"; depends=[ggplot2 Rcpp RcppArmadillo]; broken = true; };
   PerMallows = derive2 { name="PerMallows"; version="1.13"; sha256="0ny2vc8f0npixaw1kp2d93xr4g46nsg8jjwvi6afv9xjvaz0i6wy"; depends=[Rcpp]; broken = true; };
+  PhViD = derive2 { name="PhViD"; version="1.0.8"; sha256="038pw24sb8ja8pbbmj05rww6413i2ljybb2dxwgrpffv22aqawmc"; depends=[LBE MCMCpack]; broken = true; };
   PharmPow = derive2 { name="PharmPow"; version="1.0"; sha256="0gabkd8p4zsig9p697lyk8m2jxb5abjk81rpzd5ih1yk1qanhsn5"; depends=[scatterplot3d]; broken = true; };
   Phxnlme = derive2 { name="Phxnlme"; version="1.0.0"; sha256="0h9mi8p95rp1s8xsdv38j9fpy2cy9zvjnldjmnj0n469kimp2782"; depends=[ggplot2 gridExtra lattice manipulate testthat]; broken = true; };
+  PhyInsight = derive2 { name="PhyInsight"; version="0.1.0"; sha256="1r7y10g2vriy360f7j8agmjw5sgzm2vr2dypj8v78ssklb6apd08"; depends=[ape Biostrings bold DECIPHER]; broken = true; };
   PhyloMeasures = derive2 { name="PhyloMeasures"; version="2.1"; sha256="01axs78s10y1bkx8dbs9vvnphdzik7hpibkwyib1x9mznmyg90hr"; depends=[ape]; broken = true; };
   PivotalR = derive2 { name="PivotalR"; version="0.1.18.5"; sha256="1xcr7769d9jixq0lbc89jqzzxnnzxb8gjlws2l6cjm40hcid2yc9"; depends=[Matrix semver]; broken = true; };
   Plasmode = derive2 { name="Plasmode"; version="0.1.0"; sha256="1qcni9zdckhsnw616jn7rdfd09kbl5wd4hljdja0w73jz1wd1z14"; depends=[arm epiDisplay foreign gbm glm2 lattice latticeExtra lme4 MASS Matrix mgcv nlme nnet RColorBrewer survey survival twang xtable]; broken = true; };
+  Platypus = derive2 { name="Platypus"; version="3.5.0"; sha256="03ymh011wyhlc4pisnrac1nijfw08gc793dj2pzwxzkcwk7g3q99"; depends=[Biostrings cowplot dplyr ggplot2 ggtree jsonlite knitr magrittr Matrix plyr reshape2 seqinr Seurat SeuratObject stringr tibble tidyr useful]; broken = true; };
   PlotRegionHighlighter = derive2 { name="PlotRegionHighlighter"; version="1.0"; sha256="0n1nkfr3sdaq6f5p9kgx4slrsvhpdbax3rinrkfkb1vnjj4swj77"; depends=[]; broken = true; };
   PoissonSeq = derive2 { name="PoissonSeq"; version="1.1.2"; sha256="1hhx0gv06cp6hm6h36mqy411qn9x15y45crpzbyf8crfs85c6gbg"; depends=[combinat]; broken = true; };
   PolygonSoup = derive2 { name="PolygonSoup"; version="1.0.1"; sha256="1b9hwgfcac8jrr8na5g2n779hhm24cy7q4xr3kz9nlr8sp5zymb8"; depends=[BH data_table gmp Rcpp RcppCGAL RcppEigen rgl]; broken = true; };
@@ -21294,6 +21643,7 @@ in with self; {
   QCAfalsePositive = derive2 { name="QCAfalsePositive"; version="1.1.1"; sha256="03qzb6vdnbri52gfx3laz14988p2swdv9m8i5z7gpsv3f3bjrxbp"; depends=[]; broken = true; };
   QPmin = derive2 { name="QPmin"; version="0.5-1"; sha256="1hfvbi2qfynnkg2pmr7qsw75bmijwglnxchbzxcbikm5yw3sd2mz"; depends=[Matrix]; broken = true; };
   QQperm = derive2 { name="QQperm"; version="1.0.1"; sha256="06xhv54zgnx8i22j23a0dqxhh7my416idpkkwq93qd1rdzgamzc8"; depends=[]; broken = true; };
+  Qardl = derive2 { name="Qardl"; version="0.1.1"; sha256="1sb6xp8hm4rh30dfnw9n5x10hr3sd9p0cv98fr31kdaiqji0vglw"; depends=[dplyr MASS Matrix pbapply quantreg]; broken = true; };
   QuACN = derive2 { name="QuACN"; version="1.8.0"; sha256="1597blp8gqc5djvbgpfzi8wamvy0x50wh5amxj9cy99qa0jlglxi"; depends=[combinat graph igraph RBGL]; broken = true; };
   QualInt = derive2 { name="QualInt"; version="1.0.0"; sha256="1ms96m3nz54848gm9kdcydnk5kn2i8p1rgl2dwn7cqcqblfvsr4j"; depends=[ggplot2 survival]; broken = true; };
   QuantTools = derive2 { name="QuantTools"; version="0.5.7.1"; sha256="1nkf7ihzfwgz7svh1jybgcvqwbim2dqzi00l4m9pma463va4q19d"; depends=[data_table fasttime R6 Rcpp RCurl readxl]; broken = true; };
@@ -21321,6 +21671,7 @@ in with self; {
   RDIDQ = derive2 { name="RDIDQ"; version="1.0"; sha256="09gincmxv20srh4h82ld1ifwncaibic9b30i56zhy0w35353pxm2"; depends=[]; broken = true; };
   RDSTK = derive2 { name="RDSTK"; version="1.1"; sha256="07vfhsyah8vpvgfxfnmp5py1pxf4vvfzy8jk7zp1x2gl6dz2g7hq"; depends=[plyr RCurl rjson]; broken = true; };
   RDataCanvas = derive2 { name="RDataCanvas"; version="0.1"; sha256="1aw19lmdphxwva5cs3f4fb8hllirzfkk48nqdgrarz32l11y5z5j"; depends=[jsonlite]; broken = true; };
+  RDocumentation = derive2 { name="RDocumentation"; version="0.8.2"; sha256="0qdn3c5xbjyrhk56wfch50xpyyfd4f79hs0v00cqk9iwsnjlwmb5"; depends=[httr proto rjson]; broken = true; };
   REREFACT = derive2 { name="REREFACT"; version="1.0"; sha256="0nggva4qfqlcs58df3sgiigw0z75l5kg8c1yh0k5qsvjnhiq19vn"; depends=[combinat gdata Matrix psych]; broken = true; };
   REST = derive2 { name="REST"; version="1.0.1"; sha256="16v89z7p9qkg7bsypf9vkrnbmb2n7gw3fqnfzbyxwj496wzxdv1x"; depends=[Rcmdr]; broken = true; };
   RFGLS = derive2 { name="RFGLS"; version="1.1"; sha256="13ggxj74h5b2hfhjyc50ndxznkvlg18j80m78hkzwh25d3948fsk"; depends=[bdsmatrix Matrix]; broken = true; };
@@ -21334,6 +21685,7 @@ in with self; {
   RHT = derive2 { name="RHT"; version="1.0"; sha256="1gxf8nhj3y92h8al7l3fxa45wc568kb3cykrbdjlsy2zjacf7fcc"; depends=[]; broken = true; };
   RKEELjars = derive2 { name="RKEELjars"; version="1.0.20"; sha256="1wsxn9l7xdmm9q3z9lbbkdcnwsfmcrayg08m4mkbwynii5z9x548"; depends=[downloader]; broken = true; };
   RM2 = derive2 { name="RM2"; version="0.0"; sha256="1v57nhwg8jrpv4zi22fhrphw0p0haynq13pg9k992sb0c72dx70a"; depends=[msm]; broken = true; };
+  RNAsmc = derive2 { name="RNAsmc"; version="0.8.0"; sha256="0lssw4qwcsdwcd3chkb1kslqh7yn25prl1npp1464nvmvz9yqdwm"; depends=[circlize RRNA]; broken = true; };
   RNAstructureModuleMiner = derive2 { name="RNAstructureModuleMiner"; version="0.1.0"; sha256="026r1h4z1jdfww0ay9iixa77ax6b19pgp589bbn77xg1vwjjlbsk"; depends=[RRNA]; broken = true; };
   RNRCS = derive2 { name="RNRCS"; version="0.2.5"; sha256="19q78l8mh4701vqvr36vqc87n39s5ivzhiy5lvnxbd4dgibk1jr2"; depends=[ggplot2 magrittr rvest xml2]; broken = true; };
   RNaviCell = derive2 { name="RNaviCell"; version="0.2"; sha256="15k8hkagn5520fy7x672fy329s2v7l0x44s44f6v7ql9mmg4b635"; depends=[RCurl RJSONIO]; broken = true; };
@@ -21352,6 +21704,7 @@ in with self; {
   RSarules = derive2 { name="RSarules"; version="1.0"; sha256="0lrql4q45hyhqbix86ixl12mknnjbz3137gx2zkvqpz91bsk145j"; depends=[arules Matrix]; broken = true; };
   RSeed = derive2 { name="RSeed"; version="0.1.60"; sha256="0rvb6w4z5c2wcdgx5w6vv7c8il8d0096pgv3fyvw21ag25z605jc"; depends=[graph RBGL sybil]; broken = true; };
   RSiteCatalyst = derive2 { name="RSiteCatalyst"; version="1.4.16"; sha256="1plcmxj6sahdy3vvcmxry8cbq1j23bqzhnhn593bkwmzczka24cy"; depends=[base64enc digest httr jsonlite plyr stringr]; broken = true; };
+  RStorm = derive2 { name="RStorm"; version="1.0"; sha256="1n2kiy9b8w6rnv2zmzbl22grwibf619hadf2cjq1ch7rmbr7qb65"; depends=[plyr]; broken = true; };
   RStripe = derive2 { name="RStripe"; version="0.1"; sha256="0vp7zsd5xm8rf7196fivb76kkmxfx3gawxlyjhn9xqv92vawivra"; depends=[httr jsonlite RCurl]; broken = true; };
   RSurvey = derive2 { name="RSurvey"; version="0.9.3"; sha256="0yk969jdvpgv01zbmk4zyxcmrbdizh37bddj1k128ndyf191z37x"; depends=[colorspace inlmisc MBA raster rgdal rgeos sp]; broken = true; };
   RSwissMaps = derive2 { name="RSwissMaps"; version="0.1.0.1"; sha256="16sdd0115793yj74i9m64yfxxn3gkk4nvb0qk2w8j7jjbqhflis0"; depends=[downloader dplyr ggplot2]; broken = true; };
@@ -21380,7 +21733,9 @@ in with self; {
   Rcgmin = derive2 { name="Rcgmin"; version="2022-4.30"; sha256="04dr5w8ss004fk0w814x4hb78i7l3h1q5r00pjps43cpzgkvi116"; depends=[optextras]; broken = true; };
   RcmdrPlugin_FuzzyClust = derive2 { name="RcmdrPlugin.FuzzyClust"; version="1.1"; sha256="1lg6k3h4n45s6wjkl3ycwfngfr2i6mkhirifhbazsvv297bg0iba"; depends=[clue doParallel foreach ggplot2 iterators MASS Rcmdr reshape2 tcltk2 tkrplot]; broken = true; };
   RcmdrPlugin_IPSUR = derive2 { name="RcmdrPlugin.IPSUR"; version="0.2-1.1"; sha256="0dbdsxdxhxm79cq7hi0rh8qphan73521lmivcnb4ca8g6ha2y32v"; depends=[Rcmdr]; broken = true; };
+  RcmdrPlugin_SCDA = derive2 { name="RcmdrPlugin.SCDA"; version="1.2.0"; sha256="1yg2b5vcnf956w04phxg15a4my9hvkbc27nzyn30b2wn47ysxghj"; depends=[Rcmdr SCMA SCRT SCVA]; broken = true; };
   RcmdrPlugin_SLC = derive2 { name="RcmdrPlugin.SLC"; version="0.2"; sha256="1nwpzmgfla1y05dxf81w0wmvvmvcq5jn5k8phlq30920ia7ybs8g"; depends=[Rcmdr SLC]; broken = true; };
+  RcmdrPlugin_coin = derive2 { name="RcmdrPlugin.coin"; version="1.0-23"; sha256="1xl077cvabsbzhq3hn4yyc500645lbmyvdnvx2m9rcpwvyghlzvf"; depends=[coin multcomp Rcmdr survival]; broken = true; };
   RcmdrPlugin_lfstat = derive2 { name="RcmdrPlugin.lfstat"; version="0.8.3"; sha256="1rcr43dqyb9zw9av3awkz0640vmvhxrafal5brnhqnpg4hfbpma3"; depends=[lfstat Rcmdr]; broken = true; };
   RcmdrPlugin_plotByGroup = derive2 { name="RcmdrPlugin.plotByGroup"; version="0.1-0"; sha256="10wc7lnihsrldsynq2s0syr1aqmvfnj9rhgwh1nkk7jlrwcgj0z6"; depends=[lattice Rcmdr]; broken = true; };
   RcmdrPlugin_pointG = derive2 { name="RcmdrPlugin.pointG"; version="0.6.6"; sha256="0sc3akbpdys353va05b40g3rq8qihw0pmhvv0kckkhsgrbr8mc07"; depends=[Rcmdr RColorBrewer]; broken = true; };
@@ -21405,7 +21760,6 @@ in with self; {
   Reliability = derive2 { name="Reliability"; version="0.0-2"; sha256="12zsicgbjqih3grbs62pw37x8wlkmnyc7g0yz6bqnfb4ym2yb7fg"; depends=[]; broken = true; };
   ReorderCluster = derive2 { name="ReorderCluster"; version="2.0"; sha256="0zq143xvv2br7016f9b1501ymcpkjqm3al1dn5qfm21axyi2p1iq"; depends=[gplots gtools Rcpp]; broken = true; };
   Replication = derive2 { name="Replication"; version="0.1.2"; sha256="1za7zcdaf839xf8hxy4rcrr1p80n6a3ywb2bsl3wikwa0pxdvvbh"; depends=[blavaan lavaan MASS mice quadprog rjags runjags]; broken = true; };
-  Rfmtool = derive2 { name="Rfmtool"; version="4.1.10"; sha256="150y9xbnwhmazfd7az283pkyb02sfzv6y7f6fjwixx4cqv4bjzqf"; depends=[]; broken = true; };
   Rga4gh = derive2 { name="Rga4gh"; version="0.1.1"; sha256="0h5y722blkkwn6ask6vjnhl22v9l6511chdm50ig6xcs5dvjam2m"; depends=[httr jsonlite]; broken = true; };
   Rhpc = derive2 { name="Rhpc"; version="0.21-247"; sha256="0r4zikqzkcyyvywxq1s8jcq6h559mxilkmzpnl79781hh537jvii"; depends=[]; broken = true; };
   RichR = derive2 { name="RichR"; version="1.0.0"; sha256="0z0ri90jqdmw0vwxd1b4wr9if5cgm1gqpf6g9p1fdvncf4sdi9by"; depends=[magrittr metap plyr reshape2]; broken = true; };
@@ -21428,7 +21782,6 @@ in with self; {
   Rrdrand = derive2 { name="Rrdrand"; version="0.1-16"; sha256="0j9yyvq8r1cgwj3kw1ak6hyazr67f2q0c1m651wdm0wcvm1ajx7f"; depends=[]; broken = true; };
   RstoxData = derive2 { name="RstoxData"; version="1.2.1"; sha256="0xfznv0nl7xymlxbd7g0lbxqw1zcyc9mm4mx0nwpw896vz7dvyvw"; depends=[data_table Rcpp stringi units xml2 xslt]; broken = true; };
   RtD3 = derive2 { name="RtD3"; version="0.0.1"; sha256="0zbm9pf1z8xl99aj64xy8q3hly98c2rzy34fzkbjyndysvxf9032"; depends=[data_table geojsonsf htmlwidgets jsonlite purrr]; broken = true; };
-  Rtapas = derive2 { name="Rtapas"; version="1.1"; sha256="16mlmml7d381zxfqjfcnk77l5ic6dp890a74jb8va4yi32cb88yw"; depends=[ape distory GiniWegNeg paco parallelly phytools stringr vegan]; broken = true; };
   RtutoR = derive2 { name="RtutoR"; version="1.2"; sha256="19wmi30b5i6zj673d76gxl6j0k3ppfyl5fqrcs0dwmmadrrvbajq"; depends=[colourpicker devtools dplyr DT FSelector ggplot2 ggthemes officer plotly rlang rmarkdown shiny shinyBS shinydashboard shinyjs tidyr]; broken = true; };
   Runiversal = derive2 { name="Runiversal"; version="1.0.2"; sha256="0667mspsjydmxi848c6wsf14gz72bmdj9b3lilma92b7fhqnv7ai"; depends=[]; broken = true; };
   Rvmmin = derive2 { name="Rvmmin"; version="2018-4.17.1"; sha256="0kl1h4mlvb1bngb40r3dhrjkpnh3lsqddis65hbjzm2pzz20l02m"; depends=[optextras]; broken = true; };
@@ -21440,6 +21793,7 @@ in with self; {
   S2sls = derive2 { name="S2sls"; version="0.1"; sha256="0qq1rff2cdgrm5rj69jxgrl71i0wmzyn424fdvcg02zdv9ggqhd3"; depends=[spanel]; broken = true; };
   SACOBRA = derive2 { name="SACOBRA"; version="1.2"; sha256="1v45l56vifkg3v2bfhk3kfg4fn0dfvrjcgy13zzymm8blr7vazi5"; depends=[mgcv R6 testit]; broken = true; };
   SAEforest = derive2 { name="SAEforest"; version="1.0.0"; sha256="135rjszhmyjadcysyc4inymap1n6irh7bydizc5aadd89805b0il"; depends=[caret dplyr ggplot2 haven ineq lme4 maptools pbapply pdp ranger reshape2 vip]; broken = true; };
+  SAMM = derive2 { name="SAMM"; version="1.1.1"; sha256="175jk3s9w68ccw1h019380lp9cajfsy3zigcnplp87pcn3qg7x2i"; depends=[Rcpp RcppArmadillo]; broken = true; };
   SAMURAI = derive2 { name="SAMURAI"; version="1.2.1"; sha256="02fipbjcsbp2b2957x6183z20icv1yly2pd1747nyww9bmpa7ycm"; depends=[metafor]; broken = true; };
   SASPECT = derive2 { name="SASPECT"; version="0.1-1"; sha256="1d3yqxg76h9y485pl5mvlx6ls1076f80b320yvx4zxmqq9yxmaba"; depends=[]; broken = true; };
   SASxport = derive2 { name="SASxport"; version="1.7.0"; sha256="1na94lxrn8kbhxpiflg14nkdx13rjq9bvvqbxyxh1mq0q7vz7a2l"; depends=[Hmisc stringi]; broken = true; };
@@ -21447,11 +21801,9 @@ in with self; {
   SBRect = derive2 { name="SBRect"; version="0.26"; sha256="16g0ciy9q9irypsl8x36i0lavl41j3af13r2si0by8q6wj56pxi4"; depends=[rJava]; broken = true; };
   SBSA = derive2 { name="SBSA"; version="0.2.3"; sha256="1v23lzzziyjlvgn5p2n1qcq2zv9hsyz2w15lbnfi5wvinxhlg8sc"; depends=[Rcpp RcppArmadillo]; broken = true; };
   SCAT = derive2 { name="SCAT"; version="0.5.0"; sha256="16dh4l5r8b49n68s571npmk14dnnx6y0np7lzvalg61z31zlya29"; depends=[]; broken = true; };
-  SCCS = derive2 { name="SCCS"; version="1.6"; sha256="03737abfpg4bpbmgxryls9vfhhmx3kw02kw36y3rd3pnn2mcfd4v"; depends=[corpcor fda gnm R_methodsS3 survival]; broken = true; };
   SCORER2 = derive2 { name="SCORER2"; version="0.99.0"; sha256="1a28wga69ip9s98ch2dqgl0qkwa3w6frmaqcvhclc360ik813mxq"; depends=[]; broken = true; };
   SCPME = derive2 { name="SCPME"; version="1.0"; sha256="0yhsaaa349wbrswcvp7w8c52wzp7rs3528rs4wqa8b3r3fh983mh"; depends=[doParallel dplyr foreach ggplot2 Rcpp RcppArmadillo RcppProgress]; broken = true; };
   SCRSELECT = derive2 { name="SCRSELECT"; version="1.3-3"; sha256="118vwnd5gggvdhq7fbs0553l84vh5mhiag41q4svprd7p0pqd9hd"; depends=[mvtnorm]; broken = true; };
-  SCtools = derive2 { name="SCtools"; version="0.3.2.1"; sha256="0pw0kpqv4hzskfigl7ch509jj2cmp674l9ms2ivbx3sxq9l0hhj1"; depends=[cvTools dplyr furrr future ggplot2 magrittr purrr stringr Synth]; broken = true; };
   SDALGCP = derive2 { name="SDALGCP"; version="0.4.0"; sha256="0az11v9dj3pwl5q2kr2apac06b5hg0msi5r17qrcik1d65k18hm0"; depends=[geoR maptools mapview Matrix pdist PrevMap progress raster sp spacetime spatstat spatstat_geom splancs]; broken = true; };
   SDD = derive2 { name="SDD"; version="1.2"; sha256="0wzgm1hgjv5s00bpd7j387qbvn5zvyrrd5fr2rgyll4cw9p4sd33"; depends=[Hmisc rgl rpanel sm tseries]; broken = true; };
   SDDE = derive2 { name="SDDE"; version="1.0.1"; sha256="14vql1bypn409w9xcx1jdzff6apiagcz2wng3y24h3mk7yjv9bzy"; depends=[doParallel foreach igraph iterators]; broken = true; };
@@ -21484,9 +21836,10 @@ in with self; {
   SPIAssay = derive2 { name="SPIAssay"; version="1.1.0"; sha256="0y02122lj4v95g62w84jmdjdazfz3rch133aid5sgakj2kv68cvh"; depends=[]; broken = true; };
   SPIn = derive2 { name="SPIn"; version="1.1"; sha256="109xxrg7bsmmfd6ik85kxrw2qclxbh5ipsh5mmrdl4hki3hnyp2s"; depends=[quadprog]; broken = true; };
   SPODT = derive2 { name="SPODT"; version="0.9-1"; sha256="01yq429a4s63855bwpn2mqjj2k3cz4187kfpi7n7qqdpdvmxz109"; depends=[rgdal sp tree]; broken = true; };
+  SPOT = derive2 { name="SPOT"; version="2.11.14"; sha256="15hgf0mx48z7yxb1zrhilc0lradcxak7wrbibq1r8yhxdf736zlr"; depends=[DEoptim ggplot2 glmnet laGP MASS nloptr plgp plotly randomForest ranger rgenoud rpart rsm]; broken = true; };
+  SPOTMisc = derive2 { name="SPOTMisc"; version="1.19.52"; sha256="0l3css9hw75r76g2iykf2iih8lqnpzqqv2l734zix3agjr5cmmlh"; depends=[callr dplyr GGally ggplot2 keras magrittr Metrics mlr plotly RColorBrewer reticulate rlang rpart_plot rsample sensitivity smoof SPOT tensorflow tfdatasets]; broken = true; };
   SPQR = derive2 { name="SPQR"; version="0.1.0"; sha256="1hsz9pbn428vbiwq5chs9j9hpsrsk1aqzjhgqwc5dybqi4x4qb8v"; depends=[coro ggplot2 interp loo progress progressr RColorBrewer Rcpp RcppArmadillo splines2 torch yaImpute]; broken = true; };
   SPRT = derive2 { name="SPRT"; version="1.0"; sha256="1r4pfqh8k5avi8qgpk5x1cy8lmkn341yvjvd2r7wqwb3mr242r0v"; depends=[]; broken = true; };
-  SPUTNIK = derive2 { name="SPUTNIK"; version="1.4.1"; sha256="0446qh43q09l7kvcgsp4gkp7p9v9448xx0xwngxgghnnmwh8fa4p"; depends=[doSNOW e1071 edgeR foreach ggplot2 imager infotheo irlba reshape spatstat_explore spatstat_geom viridis]; broken = true; };
   SQB = derive2 { name="SQB"; version="0.4"; sha256="12ii8xlwd2r77bj76j7l43898ras25z3plhhv106jaklhpcnk23m"; depends=[caret nnet pls rpart]; broken = true; };
   SQDA = derive2 { name="SQDA"; version="1.0"; sha256="0nfimk625wb64010r5r7hzr64jfwgc6rbn13wvrpn0jgayji87h6"; depends=[limma mvtnorm PDSCE]; broken = true; };
   SSDL = derive2 { name="SSDL"; version="1.1"; sha256="0m05m00qsjyc69kix124z6nrplqv1yaaag7qxpiizbn664h9hmjb"; depends=[bigstatsr chickn doParallel doRNG foreach glmnet pracma Rcpp RcppArmadillo RcppParallel Rdpack reshape2 rmio]; broken = true; };
@@ -21517,7 +21870,9 @@ in with self; {
   SimRAD = derive2 { name="SimRAD"; version="0.96"; sha256="0ivvd3k04v1akbblxcjhlyc315z3ig7wjs0g3b37lvlfp54ppbrg"; depends=[Biostrings ShortRead zlibbioc]; broken = true; };
   SimRVPedigree = derive2 { name="SimRVPedigree"; version="0.4.4"; sha256="0z7wwwl814bwaijkmg9wcdj5xisiamc9yqypmk0hzj950569aj8p"; depends=[dplyr kinship2]; broken = true; };
   SimSCRPiecewise = derive2 { name="SimSCRPiecewise"; version="0.1.1"; sha256="0mhlx9m5db8a40wf275qh59345676m8bpjjmyx1v22f6m9p3b2n4"; depends=[]; broken = true; };
+  SimilaR = derive2 { name="SimilaR"; version="1.0.8"; sha256="1wlxscl94r3gxwsc9yw0y4z5nj28nxilijp0pbzv4z2n4aqc7vy6"; depends=[BH Rcpp stringi]; broken = true; };
   SimpleTable = derive2 { name="SimpleTable"; version="0.1-2"; sha256="1rkybrp7zlb7cj37799npss1ldic0yf519q5l7a6ikal4yl1afyb"; depends=[hdrcde locfit MCMCpack]; broken = true; };
+  SimplifyStats = derive2 { name="SimplifyStats"; version="2.0.4"; sha256="08775g6fdx09y8pkfq4k8zxbxpwah7yqq5cg30lmxl7zrpmza5hv"; depends=[assertthat broom dplyr moments tibble]; broken = true; };
   Simpsons = derive2 { name="Simpsons"; version="0.1.0"; sha256="1pm6wga1yxc35zgz72plzq23d3l4bbzfdvhszdxmkn1pkk64h8ms"; depends=[mclust]; broken = true; };
   SinIW = derive2 { name="SinIW"; version="0.2"; sha256="1z7rcjy0i09a9hjpjj1x8i46lv042l20lvb6b0pnsky2sx3v78pd"; depends=[fdrtool pracma]; broken = true; };
   SiteAdapt = derive2 { name="SiteAdapt"; version="1.1.0"; sha256="1k79j29d92a8m578xj61iavljikksdmjr2vlzwmdvxpa6rp1i2ff"; depends=[ggplot2 ggpubr glmulti hyfo RColorBrewer solaR]; broken = true; };
@@ -21525,7 +21880,6 @@ in with self; {
   SkeweDF = derive2 { name="SkeweDF"; version="0.1.0"; sha256="11i6zbjhkcrr6g848sms21l1ixk401vd50cia74j78d4nvl8d8zc"; depends=[dplyr matrixStats optimr purrr Rcpp stringr zipfR]; broken = true; };
   Sky = derive2 { name="Sky"; version="1.0"; sha256="02vjdggvanzsjx7ihxskapp5d5dlyalj02122wmarj8qf1ha1i2m"; depends=[EBImage]; broken = true; };
   SmithWilsonYieldCurve = derive2 { name="SmithWilsonYieldCurve"; version="1.0.1"; sha256="0qvhd1dn2wm9gzyp6k7iq057xqpkngkb4cfmvmjqmf0vhysp371w"; depends=[]; broken = true; };
-  SmoothHazard = derive2 { name="SmoothHazard"; version="2023.06.27"; sha256="1jigxihw7mw0ivbarjic5qjx4ky450ys8db4j0i5i4z6sv9nfqix"; depends=[lava mvtnorm prodlim]; broken = true; };
   SoDA = derive2 { name="SoDA"; version="1.0-6.1"; sha256="0d3jb1dsg1q06c08ldmhj0q2sb1pc0g08rfal29ddng3b4qm1lhh"; depends=[]; broken = true; };
   SocialNetworks = derive2 { name="SocialNetworks"; version="1.1"; sha256="0d868xka6d35i17r28cvm0ya971xk6y1kycsfff0279w27cjd9x0"; depends=[Rcpp]; broken = true; };
   SocialPosition = derive2 { name="SocialPosition"; version="1.0.1"; sha256="1rrrjlq6czzhzipvkisbq024ca22v2vzx7wa4ddr9j7hnyyzzpic"; depends=[]; broken = true; };
@@ -21535,7 +21889,6 @@ in with self; {
   SourceSet = derive2 { name="SourceSet"; version="0.1.5"; sha256="17dbxdqm9jkhyip6xdwrxsqqyncs5skclbi9drjbdcw745p7c6lh"; depends=[graph gRbase gtools igraph plyr progress reshape2 scales]; broken = true; };
   SpNetPrep = derive2 { name="SpNetPrep"; version="1.2"; sha256="1jhjyrb0k5z21vn9bc444rxax3lxsyzyhggrcy7zl9ps7p4ra990"; depends=[leaflet maptools prodlim raster rgdal shiny shinythemes sp spatstat spatstat_core spatstat_geom spatstat_linnet]; broken = true; };
   SpaCCr = derive2 { name="SpaCCr"; version="0.1.0"; sha256="0qm1fr6nnax3i1i77fi73x1z8db557avh6kivs0nskb1dfj8ri4m"; depends=[abind dplyr ggplot2 Rcpp RcppArmadillo tidyr]; broken = true; };
-  SpaDES = derive2 { name="SpaDES"; version="2.0.9"; sha256="11acb05b957qwbii701y1b4lvcnvmiixkrlmqkccc8n9icqq107n"; depends=[quickPlot reproducible SpaDES_core SpaDES_tools]; broken = true; };
   SpaDES_addins = derive2 { name="SpaDES.addins"; version="0.1.4"; sha256="0ly411y95rcm30slaj02vn7clmyq3dvinzg1x40vbsqzcjjg1h6l"; depends=[magrittr miniUI reproducible rstudioapi shiny SpaDES_core stringi]; broken = true; };
   SpaTimeClus = derive2 { name="SpaTimeClus"; version="1.0.1"; sha256="0w2jxaz2kxfksyss5vy6xy499p8jg8lpqlykwgm2srp1fd2l3rs9"; depends=[Rcpp RcppArmadillo]; broken = true; };
   SparseFactorAnalysis = derive2 { name="SparseFactorAnalysis"; version="1.0"; sha256="0lgfvydxb86r5hks1mf0p0yhgpx8s8fbkc3q6dimc728rw26qcv5"; depends=[directlabels ggplot2 MASS proto Rcpp RcppArmadillo truncnorm VGAM]; broken = true; };
@@ -21544,6 +21897,7 @@ in with self; {
   SpatialFloor = derive2 { name="SpatialFloor"; version="1.1.0"; sha256="07mwgcvkkq478l6wxvrdjs9d578x0kgs5xy86lgy5my0xqfcv6y8"; depends=[blocksdesign fields reshape2 taRifx]; broken = true; };
   SphericalK = derive2 { name="SphericalK"; version="1.2"; sha256="18py4ylm10s75pihjvcy7w948379zy9l9azriw7g7pyp7px29wda"; depends=[]; broken = true; };
   SportsAnalytics = derive2 { name="SportsAnalytics"; version="0.2"; sha256="1vb080ak1mfvr6d0q9i3r8hd547ba80bavjdcri0gclqqcjf1ach"; depends=[]; broken = true; };
+  SpotSampling = derive2 { name="SpotSampling"; version="0.1.0"; sha256="0s47dvigzkcl9ynrdiwrjzwap18dpkb29jngi8ddvf9m4xywj4al"; depends=[BalancedSampling MASS pracma sampling WaveSampling]; broken = true; };
   StVAR = derive2 { name="StVAR"; version="1.1"; sha256="0wz5f5i9927fs1s8yczwqs022k912220m28l1sv5f0r081iv656i"; depends=[ADGofTest matlab MCMCpack numDeriv]; broken = true; };
   StandardizeText = derive2 { name="StandardizeText"; version="1.0"; sha256="0s267k2b109pcdiyd26gm4ag5afikrnnb55d3cs6g2fvzp744hfp"; depends=[]; broken = true; };
   StatCharrms = derive2 { name="StatCharrms"; version="0.90.96"; sha256="1451aj1476qjpmxhpbgd8g55i7rp2msml64xsiy25h7x9g6d9w05"; depends=[cairoDevice car clinfun coxme gWidgets2 gWidgets2RGtk2 lattice multcomp nlme R2HTML RGtk2 RSCABS survival]; broken = true; };
@@ -21552,6 +21906,7 @@ in with self; {
   SteinerNet = derive2 { name="SteinerNet"; version="3.1.0"; sha256="03wr746dkwp8vg91y986q0xvgz1y9b5q25g0kig2sx6m75li3yif"; depends=[igraph]; broken = true; };
   Stem = derive2 { name="Stem"; version="1.0"; sha256="1fr02mi5qyxbqavdh2hg8ggw4nfjh3vs7g0vh834h6y0v53l71r5"; depends=[MASS mvtnorm]; broken = true; };
   StratifiedSampling = derive2 { name="StratifiedSampling"; version="0.4.1"; sha256="15gg1qc2znyba2y6kq8qq6wz69lq3kkpps0a3j9jdq8n67x65zkp"; depends=[MASS Matrix proxy Rcpp RcppArmadillo Rglpk sampling transport]; broken = true; };
+  StructFDR = derive2 { name="StructFDR"; version="1.4"; sha256="1gxv2pgypbxgwii5d71zrhasfdj33wjw4jfa3frc4q28nbh8a2l8"; depends=[ape cluster dirmult matrixStats nlme]; broken = true; };
   SubCultCon = derive2 { name="SubCultCon"; version="1.0"; sha256="08q6k4nsv3gl5qk87s87smdg047yc2a4i7kg0fp08i7q7h62jkvz"; depends=[]; broken = true; };
   SubgrPlots = derive2 { name="SubgrPlots"; version="0.1.3"; sha256="1bi5zndkpgvyk563i0jdfrw73kkpa6zi3yx922dv90w6bdb9kvl2"; depends=[alluvial circlize colorspace diagram dplyr ggplot2 ggrepel gridBase gridExtra plyr polyclip scales shape sp survival survRM2 UpSetR VennDiagram]; broken = true; };
   SubpathwayGMir = derive2 { name="SubpathwayGMir"; version="1.0"; sha256="1rw94idhbnaszr2xv1wgnjcxlnxkml912pvmqh2a1nqpwca5mscy"; depends=[igraph XML]; broken = true; };
@@ -21561,7 +21916,6 @@ in with self; {
   SurfaceReconstruction = derive2 { name="SurfaceReconstruction"; version="0.1.0"; sha256="0xgzr0hl6imgyq0ljyqipjkdjbyc0pz35z1k20b5gbz0b6rfz4c9"; depends=[BH Rcpp RcppCGAL RcppEigen rgl Rvcg]; broken = true; };
   SurvGSD = derive2 { name="SurvGSD"; version="1.0.0"; sha256="0aa5zaf9akkqkxs8iqwnm93sfwakhhhs3qfafbk0vrwmb5yvzzm1"; depends=[flexsurv ldbounds mnormt]; broken = true; };
   Survgini = derive2 { name="Survgini"; version="1.0"; sha256="1gxkdv2j1njbgnwb52vyhz7p2lrcg3hp6sry3kyhp4wkvf6gnhxi"; depends=[survival]; broken = true; };
-  SurviMChd = derive2 { name="SurviMChd"; version="0.1.1"; sha256="1sj3i950nmam3r70as85kdx6nd88iidb5jpiz2a5a39i5lb7mgf7"; depends=[dplyr ICBayes icenReg R2jags Rdpack readr rjags rlang survival tidyverse]; broken = true; };
   SurvivalPath = derive2 { name="SurvivalPath"; version="1.3.2"; sha256="17glrkz63ms76cmg7lfz0nay131ngwxigwfs0rzgfjna9gy06dgi"; depends=[dplyr ggplot2 ggtree Hmisc rms survival survivalROC survminer treeio]; broken = true; };
   SwarmSVM = derive2 { name="SwarmSVM"; version="0.1-7"; sha256="03q9sv51lvf64gdzmcb8sskghqib3afy5hx9nwxba1sk2cziinpb"; depends=[BBmisc checkmate e1071 kernlab LiblineaR Matrix SparseM]; broken = true; };
   SyNet = derive2 { name="SyNet"; version="2.0"; sha256="0mb9dscddkvmkf7l3bbcy4dlfmrvvy588vxdqy5dr783bpa5dkiw"; depends=[tkrplot]; broken = true; };
@@ -21574,6 +21928,7 @@ in with self; {
   TFX = derive2 { name="TFX"; version="0.1.0"; sha256="0xrjdbvg0ng4i0s8ql1pfyma10x4n045spilkb05750677r5j44p"; depends=[XML]; broken = true; };
   TInPosition = derive2 { name="TInPosition"; version="0.13.6.1"; sha256="1c0h9zg71whmsjn5rnzv5kdrabl9kqrq627caznvrpa74c7pjks9"; depends=[ExPosition InPosition prettyGraphs TExPosition]; broken = true; };
   TLBC = derive2 { name="TLBC"; version="1.0"; sha256="08w187akbhfbz6nrrf7avf02lrhgj7bbrjmim9gkh4wlbjhzvw67"; depends=[caret HMM randomForest signal stringr]; broken = true; };
+  TMTI = derive2 { name="TMTI"; version="1.0.1"; sha256="080k4lmwspxi6salv4zq9lipwcah3zr6vfc0lrll1z8gynk8arq9"; depends=[Rcpp]; broken = true; };
   TREXr = derive2 { name="TREXr"; version="1.0.0"; sha256="1dkp3l5cix06bhidmr9npd2f2my9hcm0qmdar0hwkcm1zrl1ha4w"; depends=[boot chron doParallel doSNOW dplyr foreach lhs lubridate magrittr msm randtoolbox sensitivity solaR tibble zoo]; broken = true; };
   TSMCP = derive2 { name="TSMCP"; version="1.0"; sha256="1wzi6wzd8l5bkm0qc1mfvj067xywm208xl6r87a4svcn1ydr4vl4"; depends=[lars plus]; broken = true; };
   TSMining = derive2 { name="TSMining"; version="1.0"; sha256="1n32acagffiw31pr485ly3phx33zw7vj009bvw4lbqpixa1pszj2"; depends=[foreach ggplot2 plyr reshape2]; broken = true; };
@@ -21596,9 +21951,9 @@ in with self; {
   TauStar = derive2 { name="TauStar"; version="1.1.4"; sha256="06bb6570mqzfbjw2qp4bjl4a1bdpwsvcr0vw2y4l1x444m670ds1"; depends=[Rcpp RcppArmadillo]; broken = true; };
   Taxonstand = derive2 { name="Taxonstand"; version="2.4"; sha256="0zph4618bwjfvx41ap9d2534kknbni216y90nmcvaniskw4ixm7d"; depends=[pbapply]; broken = true; };
   Thinknum = derive2 { name="Thinknum"; version="1.3.0"; sha256="0j48vgr4wsc2chm95aprq0xm0dk720xk5zmiijxasg92sfp0va6n"; depends=[RCurl RJSONIO]; broken = true; };
+  ThreeArmedTrials = derive2 { name="ThreeArmedTrials"; version="1.0-4"; sha256="1czlr94mgs99pzd1a80wqfjhrwrfsk8fvbbr37nwcixs0fw431yw"; depends=[MASS numDeriv]; broken = true; };
   TickExec = derive2 { name="TickExec"; version="1.1"; sha256="0v0m0wi49yw0ply19vnirl2zwnk61sxalx24l8cadvkssgs13509"; depends=[]; broken = true; };
   TiddlyWikiR = derive2 { name="TiddlyWikiR"; version="1.0.1"; sha256="0vwwjdmfc8c0y2gfa8gls1mzvp29y39c9sxryrgpk253jj9px1kr"; depends=[]; broken = true; };
-  TidyConsultant = derive2 { name="TidyConsultant"; version="0.1.0"; sha256="1ipv0nx0xmba62c7qjgadpjsr850d9dl0z5zjkh1rj6kfxdgiis2"; depends=[autostats badger framecleaner pacman presenter tidybins validata]; broken = true; };
   TileManager = derive2 { name="TileManager"; version="0.4.1"; sha256="0pcskdqxxm07j47bw1j4d3jqf64pk0jqwcp5379hnpi6kr7f5gvh"; depends=[APfun raster rgeos sp XML]; broken = true; };
   TimeProjection = derive2 { name="TimeProjection"; version="0.2.0"; sha256="04yr4cg2khkw9n3y3qk0ni1327k4pxm09zz2xg8mpjdvgi4p9yi3"; depends=[lubridate Matrix timeDate]; broken = true; };
   TimeSeries_OBeu = derive2 { name="TimeSeries.OBeu"; version="1.2.4"; sha256="0ihigrbdkfbqqjxqfx3y5q8ii8n60301s7190jr50a88l1xzgmh8"; depends=[forecast jsonlite locfit trend tseries]; broken = true; };
@@ -21614,7 +21969,9 @@ in with self; {
   TwoCop = derive2 { name="TwoCop"; version="1.0"; sha256="1ycxq8vbp68z82r2dfg2wkc9zk3bn33d94xay20g2p55lnzl2ifd"; depends=[]; broken = true; };
   TwoRegression = derive2 { name="TwoRegression"; version="1.0.0"; sha256="0mpgdz7swrzabpf835pawlwvbzqajc329whcsxddwq4l6c71sb11"; depends=[dplyr ggplot2 gridExtra lubridate magrittr PAutilities pROC RcppRoll rlang tidyr]; broken = true; };
   UMR = derive2 { name="UMR"; version="1.1.0"; sha256="05g2gk7bmhzyill6fgq396yk0yi7qz4mdcy3cfzzx5nyr11rc8a7"; depends=[decon distr trust]; broken = true; };
+  UNCLES = derive2 { name="UNCLES"; version="2.0"; sha256="0c61sm09dh0yfrjrjjnizg7qrf8xgc1zdldwhjh64kq8k8g5wa69"; depends=[class kohonen pdist]; broken = true; };
   UNF = derive2 { name="UNF"; version="2.0.8"; sha256="1gag7yqh5zs4azds0axlkpksymakw19s4n50pnhx7k6m9hgcbdgh"; depends=[base64enc digest]; broken = true; };
+  UPMASK = derive2 { name="UPMASK"; version="1.2"; sha256="160rsb0nbndf61khcs3s8xv9nj7ln8zl6l11157ywdcjqd2q5qnq"; depends=[DBI dimRed loe MASS RSQLite]; broken = true; };
   USAboundaries = derive2 { name="USAboundaries"; version="0.4.0"; sha256="0wwaywg01vz8hmwm58bnf86m8yqivi53bww5y3ycg891msnjwrgr"; depends=[]; broken = true; };
   UScancer = derive2 { name="UScancer"; version="0.1-2"; sha256="0p1kxw1phqq598ljk3njznc9kmgscc8gmwdrvx1scba9rr6n61kl"; depends=[rgdal]; broken = true; };
   UScensus2000cdp = derive2 { name="UScensus2000cdp"; version="0.03"; sha256="143hqnzdla3p31n422ddzaaa34wc6xnnhil4y53m4qydyg407700"; depends=[foreign maptools sp]; broken = true; };
@@ -21625,6 +21982,7 @@ in with self; {
   VARSEDIG = derive2 { name="VARSEDIG"; version="2.1"; sha256="1cxp80i5160c6kx666nl0gxs8ypfmkzxr2gqph5a9v6ibiq801sj"; depends=[]; broken = true; };
   VARsignR = derive2 { name="VARsignR"; version="0.1.3"; sha256="09mnf9hvsi4wx1c81yq97mzggwk6s7nka7awrws63icjybqjmra9"; depends=[HI minqa mvnfast]; broken = true; };
   VARtests = derive2 { name="VARtests"; version="2.0.5"; sha256="0gmm2qrrl4v5vx0nhiwq5brvanhybpb2q0zlf4dihramhjjbwyar"; depends=[Rcpp RcppArmadillo sn]; broken = true; };
+  VHDClassification = derive2 { name="VHDClassification"; version="0.3"; sha256="1ij4h3gzxb9mm9q743kc3sg2q609mnqz6mhlrbim1wcjji2b7bv4"; depends=[e1071 lattice]; broken = true; };
   VIF = derive2 { name="VIF"; version="1.0"; sha256="0yvg6ikrcs7mhg0pavhcywrfysv7ylvnhxpc5sam86dbp69flx9x"; depends=[]; broken = true; };
   VIFCP = derive2 { name="VIFCP"; version="1.2"; sha256="0w41k25vss806m5vpwmmcfsmwaixmln0pliql3a6xlwsihha5i34"; depends=[]; broken = true; };
   VNM = derive2 { name="VNM"; version="7.1"; sha256="19qglcibb7r6jjz0n0piklwfv3hi4jphd6vmyfbm0ccjjkmn5nin"; depends=[Rcpp]; broken = true; };
@@ -21643,16 +22001,17 @@ in with self; {
   WLinfer = derive2 { name="WLinfer"; version="1.2.0"; sha256="1d4x3w5mamwk7binjr45s62zd7lvxw3abadw22084p10kw7lwfk7"; depends=[bbmle boot cubature goftest LindleyR nleqslv pracma]; broken = true; };
   WMDB = derive2 { name="WMDB"; version="1.0"; sha256="10wdjy3g2qg975yf1dhy09w9b8rs3w6iszhbzqx9igfqvi8isrr1"; depends=[]; broken = true; };
   WPC = derive2 { name="WPC"; version="1.0"; sha256="0li502hwa4n945yfnilslyvl12ls66kazbfmxb4kkjbaf500mjp9"; depends=[msm survival]; broken = true; };
+  WSGeometry = derive2 { name="WSGeometry"; version="1.2.1"; sha256="073cvvbhzx5nllrwfyz6bxvskmkm88i7wq93m2d0q60pzwzsxwzl"; depends=[expm imager lpSolve Matrix plot3D Rcpp RcppArmadillo RSpectra transport]; broken = true; };
   WWR = derive2 { name="WWR"; version="1.2.2"; sha256="0ia1dd12r1l08s9nhgvk55jmqwv58jawm25gd2ni6wpa3mcmq02g"; depends=[inline]; broken = true; };
   Watersheds = derive2 { name="Watersheds"; version="1.1"; sha256="1gn52nl0rr29pqq94gjasc4fi1kjxlrpjdkgm2x56j5jbd162drk"; depends=[lattice maptools rgeos sp splancs]; broken = true; };
   WikipediaR = derive2 { name="WikipediaR"; version="1.1"; sha256="0fxk247jb82g0f3nmwraa4kvdpjxy5s4dcyzj9vkjw2lq8by3l0h"; depends=[httr XML]; broken = true; };
   WilcoxCV = derive2 { name="WilcoxCV"; version="1.0-2"; sha256="1kbb7ikgnlxybmvqrbn4cd8xnqrkwipk4xd6yja1xsi39a109xzl"; depends=[]; broken = true; };
   XHWE = derive2 { name="XHWE"; version="1.0"; sha256="1ca8y9q3623d0vn91g62nrqf3pkbcbkpclmddw5byd37sdrgsi5l"; depends=[]; broken = true; };
-  XML2R = derive2 { name="XML2R"; version="0.0.6"; sha256="0azfh950r2b7ck3n1vzk3mdll7zy844nx3mbk676jxnj8gg7nxk5"; depends=[plyr RCurl XML]; broken = true; };
   XPolaris = derive2 { name="XPolaris"; version="1.0.2"; sha256="1l05svscgkv9bzkawi2kp9zhchrhxxma3271b828j34pkrnnmq5m"; depends=[curl dplyr ggplot2 httr magrittr purrr raster sf tidyr]; broken = true; };
   Xmisc = derive2 { name="Xmisc"; version="0.2.1"; sha256="11gwlcyxhz1p50m68cnqrxmisdk99v8vrsbvyr7k67f0kvsznzs1"; depends=[]; broken = true; };
   Yamm = derive2 { name="Yamm"; version="1.3.2"; sha256="1x0214nw4hk1xs2qgz532ff1fydkwkq449l1zdbv088rhxs8c2ch"; depends=[depth interp robustX]; broken = true; };
   ZIBBSeqDiscovery = derive2 { name="ZIBBSeqDiscovery"; version="1.0"; sha256="12g9rga9z6318ni6x6q9hdqlgl93y2xn8vf3gc6sm97fz8pliswx"; depends=[mcc]; broken = true; };
+  ZIBseq = derive2 { name="ZIBseq"; version="1.2"; sha256="13rjy4jl9wil6hhpra4qmdis0iyqxchzsf9l7q6r0dz1f7dpd2nq"; depends=[gamlss gamlss_dist nlme]; broken = true; };
   Zelig = derive2 { name="Zelig"; version="5.1.7"; sha256="1x1zcmlhbbzxbb0y91ynz50nfhpki913lnmhcpmlds7drcbbirnk"; depends=[AER Amelia coda dplyr Formula geepack jsonlite MASS MatchIt maxLik MCMCpack quantreg sandwich survey survival VGAM]; broken = true; };
   ZipRadius = derive2 { name="ZipRadius"; version="1.0.1"; sha256="00q4a2bsajs5ns4vdm289iaj9mczxjn3ssyrnmg2z4wicr2ljizv"; depends=[dplyr geosphere ggplot2 magrittr rlang testthat]; broken = true; };
   aCRM = derive2 { name="aCRM"; version="0.1.1"; sha256="0kzp568hd9c9a9qgniia5s5gv0q5f89xfvvwpzb197gqhs3x092v"; depends=[ada dummies kernelFactory randomForest]; broken = true; };
@@ -21673,7 +22032,6 @@ in with self; {
   adass = derive2 { name="adass"; version="1.0.0"; sha256="1g702pg335q9jwgdygb7n364ibad6z27fcd9yfim8gi4fcpjwlkq"; depends=[fda matrixcalc mvtnorm plot3D Rfast SparseM]; broken = true; };
   adhoc = derive2 { name="adhoc"; version="1.1"; sha256="0a59fv9glcqh4zzd0887ndrhlcaylja6vay2ifajp8an29gjk1vv"; depends=[ape pegas polynom]; broken = true; };
   adoption = derive2 { name="adoption"; version="0.6.4"; sha256="1xjkvj1ys2xmjgswqfsrry27zyqcc9hk9khl0j4s72gcc8az8sz6"; depends=[quadprog RandomFieldsUtils tkrplot]; broken = true; };
-  adoptr = derive2 { name="adoptr"; version="1.0.0"; sha256="08d2fsqh5vczfr9cc8l554p6f0x85g58i5zg5j2m0chlmcispfk2"; depends=[glue nloptr]; broken = true; };
   advclust = derive2 { name="advclust"; version="0.4"; sha256="1g8a8q4zh6d4152jb66fh7wj7k6ks5k4kfcazzw70jdn10yi6b38"; depends=[clue ggplot2 knitr MASS reshape2]; broken = true; };
   aemo = derive2 { name="aemo"; version="0.3.0"; sha256="108scwyf0dyvn969cks3ikbj2pf2g4dw051asahx26pl0ggw7ijw"; depends=[assertthat dplyr lubridate stringr]; broken = true; };
   agroclim = derive2 { name="agroclim"; version="0.3.0"; sha256="06mv18a73dpcdw2y2df83rx9kfxsd5x2zv6j5md3yzm9ij3rylvx"; depends=[abind cowplot easyNCDF ggforce ggplot2 ggpubr gtable multiApply ncdf4 raster reshape sp zoo]; broken = true; };
@@ -21684,6 +22042,7 @@ in with self; {
   akmedoids = derive2 { name="akmedoids"; version="1.3.0"; sha256="19d9fh1cygn04riwc7y7lzdncyxki9rzikf9f5m96vp0y687z2ka"; depends=[clusterCrit dplyr ggplot2 Hmisc kml signal]; broken = true; };
   alignfigR = derive2 { name="alignfigR"; version="0.1.1"; sha256="0jsj0h7zpzj6ynfydl8qbggm03xx8db769rli7rcx9909xdxabk6"; depends=[ggplot2]; broken = true; };
   allhomes = derive2 { name="allhomes"; version="0.3.0"; sha256="1z39qd7hkl2xy0lhf8sgc4rjf4ihi3zbsadchc97h7p7cn9mjbpk"; depends=[dplyr htmltab httr jsonlite magrittr purrr readr rlang stringr tibble tidyr]; broken = true; };
+  allometric = derive2 { name="allometric"; version="2.1.0"; sha256="15g9xyyiipg602s465kc082h7mlpwjfg6p9g2ba6n9ahhvcrhma7"; depends=[curl dplyr ISOcodes jsonlite magrittr openssl progress purrr RefManageR rlang stringr tibble tidyr units vctrs]; broken = true; };
   amber = derive2 { name="amber"; version="1.0.3"; sha256="0kc7g5rb0wrs1id1k0qay56063gpffwvcll38983b1l3k215mxiv"; depends=[classInt doParallel foreach Hmisc latex2exp ncdf4 raster rgdal rgeos scico sp viridis xtable]; broken = true; };
   ambhasGW = derive2 { name="ambhasGW"; version="0.0.2"; sha256="0v517i4whip45pk6bwlwval9pz367pcgzz62b2z22mrwgi6m6bck"; depends=[raster rgdal yaml]; broken = true; };
   ambiorix = derive2 { name="ambiorix"; version="2.1.0"; sha256="1831i5fv966cghp5xgq71wqzldlajyjj2p4nkhbw007w2dcn0y21"; depends=[assertthat cli fs glue httpuv jsonlite log promises websocket]; broken = true; };
@@ -21691,6 +22050,7 @@ in with self; {
   analogueExtra = derive2 { name="analogueExtra"; version="0.1-1"; sha256="1s3qs10hf6hkna0bicid1mc8x8r449bl93xpgyw6lnsjgh2yx62c"; depends=[analogue rgl vegan3d]; broken = true; };
   analysisPipelines = derive2 { name="analysisPipelines"; version="1.0.2"; sha256="1rxam52wrbcjrvixb35b9ha37i8a0fczby49vmgzpnrbvkc50ldx"; depends=[dplyr futile_logger ggplot2 magrittr pipeR proto purrr RCurl rlang]; broken = true; };
   analyz = derive2 { name="analyz"; version="1.4"; sha256="0qdh1gld2dkl0krbhm2vcqg8dfs03dn51rclgsw02554s06dlgxw"; depends=[]; broken = true; };
+  anapuce = derive2 { name="anapuce"; version="2.3"; sha256="05k3ypy4dc8q4jv0by37k66pdwb1wmsd24i6nciris5knfdy9csg"; depends=[]; broken = true; };
   anchors = derive2 { name="anchors"; version="3.0-8"; sha256="12gd2526y7s2a8i6b9xma2c3sc6zxnwzl6sn8b50hbxizwr8d34j"; depends=[MASS rgenoud]; broken = true; };
   animalTrack = derive2 { name="animalTrack"; version="1.0.0"; sha256="0jlvfflpaq64s48sblzh1n1vx8g3870iss97whigri29s6hn79ry"; depends=[rgl]; broken = true; };
   animaltracker = derive2 { name="animaltracker"; version="0.2.0"; sha256="1zv2nj4wfskz1lxfgw8l4gyrlv418drk8zl4cw55i5na6a39shcv"; depends=[dplyr forcats geosphere ggplot2 httr leaflet leaflet_extras lubridate maptools raster rgdal scales shiny shinyBS shinycssloaders shinyjs shinythemes shinyWidgets sp tibble tidyr zoo]; broken = true; };
@@ -21703,17 +22063,24 @@ in with self; {
   arcos = derive2 { name="arcos"; version="1.27"; sha256="02s4vpfsipww6i73lhrdawqlg01gp929n4sx6z869b12jixnq3ni"; depends=[curl dplyr httr jsonlite magrittr stringr tidyr urltools vroom]; broken = true; };
   argon2 = derive2 { name="argon2"; version="0.4-0"; sha256="09hzl0wz0lw2v7g64rdv0lij2hq36zl37a6rmxwvinmjdzijcsyw"; depends=[]; broken = true; };
   ariExtra = derive2 { name="ariExtra"; version="0.3.1"; sha256="1j8x2m9799i5kxrvsf2cjrffb5p6r4zjrr0khsy4i22xn7kyl8nf"; depends=[ari docxtractr httr jsonlite magrittr mime pdftools rmarkdown rvest text2speech tuneR xml2 yaml]; broken = true; };
+  armada = derive2 { name="armada"; version="0.1.0"; sha256="191iwf5y1za3wssawkyi9jcingfqqxcvv88hglpw6j7y3x5f47hf"; depends=[anapuce circlize ClustOfVar ComplexHeatmap doParallel FAMT glmnet impute mvtnorm qvalue VSURF]; broken = true; };
   artemis = derive2 { name="artemis"; version="1.1.1"; sha256="1v875xn0mvw7p7jdp6d3hpc4cp8yq2aq0b80rq1c619n9rkjq4ks"; depends=[BH ggplot2 lme4 loo Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; broken = true; };
   asVPC = derive2 { name="asVPC"; version="1.0.2"; sha256="07nfwr0lsfpwgfdgzcdn1svw8dnjfni5ga9q77yjd1bj0wf76ci2"; depends=[ggplot2 plyr]; broken = true; };
   assemblerr = derive2 { name="assemblerr"; version="0.1.1"; sha256="12kwdp71bgbk67d4038j2bhbw9ja3vqm0m01bzdsrpk4dxh2p3d3"; depends=[cli glue magrittr purrr rlang tidyselect vctrs]; broken = true; };
   assertive = derive2 { name="assertive"; version="0.3-6"; sha256="02palil82idqhhshcdjsfsja9qkqnd0dczqzj5gbccy4hfg1c0y4"; depends=[assertive_base assertive_code assertive_data assertive_data_uk assertive_data_us assertive_datetimes assertive_files assertive_matrices assertive_models assertive_numbers assertive_properties assertive_reflection assertive_sets assertive_strings assertive_types knitr]; broken = true; };
+  assertive_base = derive2 { name="assertive.base"; version="0.0-9"; sha256="07m0ddz092bgbl2fn1yk932h0iajdcqkri632477wl5a1q5r3w2b"; depends=[]; broken = true; };
   assertive_code = derive2 { name="assertive.code"; version="0.0-4"; sha256="11qkhbjyxw0njzhcszyc2452518yrn3jr5l4n9jnzq10xms090ig"; depends=[assertive_base assertive_properties assertive_types]; broken = true; };
   assertive_data = derive2 { name="assertive.data"; version="0.0-3"; sha256="00cvg2g36mdl8plrzx40m63qd55742mddqrchwy9n3c7mm4gn02s"; depends=[assertive_base assertive_strings]; broken = true; };
   assertive_data_uk = derive2 { name="assertive.data.uk"; version="0.0-2"; sha256="1fzjvhwp7mwkqqix29khvs6zcrc82n6j4czvzzb473vyjyvdlj5b"; depends=[assertive_base assertive_strings]; broken = true; };
   assertive_data_us = derive2 { name="assertive.data.us"; version="0.0-2"; sha256="1bgspn0sccmp9z7s7djvdvprgxlyc5vrxznp4zfjb79kwvgn83hq"; depends=[assertive_base assertive_strings]; broken = true; };
   assertive_datetimes = derive2 { name="assertive.datetimes"; version="0.0-3"; sha256="151d05z8n6dpl44pqsa1jfi0ijbigr3zfc43xlw53nd8ymi22kh1"; depends=[assertive_base assertive_types]; broken = true; };
+  assertive_files = derive2 { name="assertive.files"; version="0.0-2"; sha256="02pfz8j5vwcj5kl6zca46894li7lxwnlrr29j922f14ay6kdssmy"; depends=[assertive_base assertive_numbers]; broken = true; };
+  assertive_matrices = derive2 { name="assertive.matrices"; version="0.0-2"; sha256="16sykzcndv6y2d43x6v9n7m95kv76364h39kh10w4z0xw6ksfqil"; depends=[assertive_base]; broken = true; };
+  assertive_models = derive2 { name="assertive.models"; version="0.0-2"; sha256="0bn4j4v5qvb2d672cgri61p8d9v258pmz35y3lvm6b9mdxwdi9mr"; depends=[assertive_base]; broken = true; };
+  assertive_numbers = derive2 { name="assertive.numbers"; version="0.0-2"; sha256="0jc3ss64j4m7bjydhagwwmka5n7c72vpw4kfcch0m5jvkq5qrqds"; depends=[assertive_base]; broken = true; };
   assertive_properties = derive2 { name="assertive.properties"; version="0.0-5"; sha256="1pgljbwwbvbl4kc5c8mcv0qbzq3k6fzi29k88811yml263sm92dn"; depends=[assertive_base]; broken = true; };
   assertive_reflection = derive2 { name="assertive.reflection"; version="0.0-5"; sha256="1g9lpwzy6r2xmyi2mlbcccnfgyzhzbmx5bsicf3vkffxrlkrpjn2"; depends=[assertive_base]; broken = true; };
+  assertive_sets = derive2 { name="assertive.sets"; version="0.0-3"; sha256="1cqvh2syvh5b6d85h601zjmsdbbf3h8q98ids4dfl4frdshpasc7"; depends=[assertive_base]; broken = true; };
   assertive_strings = derive2 { name="assertive.strings"; version="0.0-3"; sha256="0n6jrk88670g4ym0r8ii40a08a90z1xadj8wcryk8h0nl04dchfm"; depends=[assertive_base assertive_types stringi]; broken = true; };
   assertive_types = derive2 { name="assertive.types"; version="0.0-3"; sha256="0zxq1jfrzgw95ll7alvm0xnk7aihjdksngq4ya2whyvfjbmv4vdb"; depends=[assertive_base assertive_properties codetools]; broken = true; };
   astrolibR = derive2 { name="astrolibR"; version="0.1"; sha256="0gkgry5aiz29grp9vdq9zgg6ss47ql08nwcmz1pfvd0g0h9h75l8"; depends=[]; broken = true; };
@@ -21727,14 +22094,14 @@ in with self; {
   autoencoder = derive2 { name="autoencoder"; version="1.1"; sha256="0ly1aanayk28nx6yqfhl7d0zm4vg6rfjikf5ibn8zhmkrfyflj1y"; depends=[]; broken = true; };
   autohd = derive2 { name="autohd"; version="0.1.0"; sha256="14wyiqhmbp8v52s1p5svvcjpwg8pwqrqh3zzm17blcl2hr4p9cy8"; depends=[broom coxme hdbm Hmisc ICBayes icenReg missForest mlr3 Rdpack rjags schoolmath survival SurvRegCensCov tibble usethis]; broken = true; };
   automultinomial = derive2 { name="automultinomial"; version="2.0.0"; sha256="04rjg3xjlhnkchzvdxqm762z5abm81s5b9czgzmli30zh07bf3fd"; depends=[igraph Matrix numDeriv]; broken = true; };
-  autostats = derive2 { name="autostats"; version="0.4.0"; sha256="0xyfv2akv308g3r0wq2dcg7l24p6bf3524x1ikj1lfmw07hca6k6"; depends=[broom data_table dials dplyr framecleaner ggeasy ggplot2 ggthemes gtools janitor jtools magrittr nnet parsnip party patchwork presenter purrr recipes recosystem rlang rlist rsample stringr tibble tidyr tidyselect tune workflows xgboost yardstick]; broken = true; };
   avfintools = derive2 { name="avfintools"; version="0.1.0"; sha256="1v04z9qr80zikjb5q0h9796sgnmw43l5ygxs99gsgsghlyj9nrla"; depends=[alphavantager dplyr ggplot2 lubridate plotly tibble]; broken = true; };
   aziztest = derive2 { name="aziztest"; version="0.2.1"; sha256="0rpnyrb7zi42l1fc8ni0r5d0y6a4dr56917z8i54mv1jrk4hijjd"; depends=[]; broken = true; };
   b6e6rl = derive2 { name="b6e6rl"; version="1.1"; sha256="17scdskn677vaxx1h2jypqaffvjgczryplg17nr3wigi1x0cxg7a"; depends=[]; broken = true; };
   bPeaks = derive2 { name="bPeaks"; version="1.2"; sha256="1z6jghcmw0lwv17ms7gdp5zzimaawq3ahbwkxa4062g373592smd"; depends=[]; broken = true; };
-  bRacatus = derive2 { name="bRacatus"; version="1.0.11"; sha256="0mj9bqgvmss9jdaphc4rgmxp4909lnwgi3c86pr6yfsd9zcjgd74"; depends=[data_table geojsonio jsonlite maptools plotfunctions raster rgbif rgdal rgeos rworldmap sp]; broken = true; };
+  baRulho = derive2 { name="baRulho"; version="1.0.6"; sha256="17g3xs0lxdpbbi52x27r00vfdgxdhjblyy939scm3c5z01fhxxnb"; depends=[fftw pbapply seewave tuneR warbleR]; broken = true; };
   babar = derive2 { name="babar"; version="1.0"; sha256="13j5klrcnd4dwrgdbxlvwcj56l9mzi4j9ga6jj5i04pgdc6vsfx5"; depends=[]; broken = true; };
   babette = derive2 { name="babette"; version="2.3.3"; sha256="0c9v6dm3n9bnr5x4nln9a51dff557vrhxdfji9xikwnz0vv8656v"; depends=[beastier beautier mauricer phangorn remotes stringr tracerer xml2]; broken = true; };
+  babsim_hospital = derive2 { name="babsim.hospital"; version="11.8.8"; sha256="03kd9kvqq0jy1f7qjbbmm5zn8w0nqwwdpan64ymyzmsxb59407cj"; depends=[checkmate curl data_table dplyr ggplot2 golem igraph lubridate markovchain padr plyr rvest scales simmer slider SPOT testthat xml2]; broken = true; };
   badgecreatr = derive2 { name="badgecreatr"; version="0.2.0"; sha256="0mdixklaxky5gs8zm99ky280vxxlbq1mxnaarq6x0d1cb71bzv4l"; depends=[git2r]; broken = true; };
   baggedcv = derive2 { name="baggedcv"; version="1.0"; sha256="1rqs4sm6g1anck5s2dxlm1vcmylpphcbs2dpvf1sjki5lrzdq9z4"; depends=[doParallel foreach kedd mclust]; broken = true; };
   baggingbwsel = derive2 { name="baggingbwsel"; version="1.0"; sha256="0khvkxml4nwkahgl5ijdv0bjgwabmznzq99p71iw26ck808hafkl"; depends=[doParallel foreach kedd mclust misc3d nor1mix Rcpp rgl rpanel sm tkrplot]; broken = true; };
@@ -21742,12 +22109,12 @@ in with self; {
   barplot3d = derive2 { name="barplot3d"; version="1.0.1"; sha256="182kpiknv3id1bsgcc6b3ahbxmm8x3lxcpf1r6rckpr3s0whfx3g"; depends=[rgl]; broken = true; };
   bartBMA = derive2 { name="bartBMA"; version="1.0"; sha256="15syk5a3lgzfyp17wk8mk14317yxsr47br26kyah5jg3dq4cyqdg"; depends=[BH mvnfast Rcpp RcppArmadillo Rdpack]; broken = true; };
   baseballDBR = derive2 { name="baseballDBR"; version="0.1.2"; sha256="0w54g1avcqamc12lmvjchlqbqck9jfjccm441k03nsql460mpydq"; depends=[dplyr magrittr rvest xml2]; broken = true; };
-  basecamb = derive2 { name="basecamb"; version="1.1.2"; sha256="01zigv4wp19vmp645dzvbr26nrvhv4jxpqssvfc480v0dj3mavva"; depends=[assertive_types assertthat dplyr Hmisc mice purrr survival]; broken = true; };
   baseflow = derive2 { name="baseflow"; version="0.13.2"; sha256="02ygx32dfszk66f33wfszkvwi51v8zw2s45y9nlrgfws9rlpzll2"; depends=[airGR]; broken = true; };
   basicTrendline = derive2 { name="basicTrendline"; version="2.0.5"; sha256="0402nvm3i32sx3m3c7r74iaj22h570v819yiwkraicjpmg55dghi"; depends=[investr scales]; broken = true; };
   basicspace = derive2 { name="basicspace"; version="0.24"; sha256="1cy226njbax7dcgql89fns4l4w9fq328x3h0vb93l5jk883jgi8h"; depends=[]; broken = true; };
   bastah = derive2 { name="bastah"; version="1.0.7"; sha256="08xdba16wj0inp0kq2sbcrdr6wj8bwlq7rqnfrzjrz03wxhc5bk0"; depends=[BigQuic foreach glmnet lars MASS Matrix scalreg]; broken = true; };
   batchr = derive2 { name="batchr"; version="0.0.2"; sha256="0fkrv6dlyla7bbl00f16lypnz5idyjz9kdqslgbx3pnfwx5hngwx"; depends=[chk cli furrr hms hmstimer yesno]; broken = true; };
+  bayesbr = derive2 { name="bayesbr"; version="0.0.1.0"; sha256="0zx123xqw2qglwxsnq0jy56kwk6zczslagapij9aj9n5bsifbcmx"; depends=[BH coda dplyr fdrtool Formula ggplot2 loo magrittr Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders stringr tidyr]; broken = true; };
   bayeslincom = derive2 { name="bayeslincom"; version="1.3.0"; sha256="0gk2ybp0m717kv986j91n5amfc282gdpcrjkq46gwzn0zhyxg8b8"; depends=[ggplot2]; broken = true; };
   bayesloglin = derive2 { name="bayesloglin"; version="1.0.1"; sha256="0j2ziahf6mwsz2gvb1azvdzlmszlpqgr5zqcqa68pxgq947sa2cs"; depends=[igraph]; broken = true; };
   bayesmodels = derive2 { name="bayesmodels"; version="0.1.1"; sha256="1m9428fzirpfzypd2zdcqhjv2cm05s3qmlxj4ymz6i1dg32svqzr"; depends=[BASS bayesforecast brms bsts cli crayon dials dplyr magrittr modeltime parsnip purrr rlang Rlgt rstan rstudioapi tibble timetk workflows]; broken = true; };
@@ -21758,7 +22125,6 @@ in with self; {
   bbricks = derive2 { name="bbricks"; version="0.1.4"; sha256="1hv4hvnns9vgl6c3n7kg3g9mfcp26ksps29hdl5nwi28cgkx80w2"; depends=[]; broken = true; };
   bbsBayes = derive2 { name="bbsBayes"; version="2.5.3"; sha256="0vh7idcj89l5nlgg0kf41pvs1d1lpn5r1p254afcycn0sr06ky6f"; depends=[dplyr geofacet ggplot2 ggrepel jagsUI mgcv progress rappdirs sbtools sf stringr]; broken = true; };
   bcTSNE = derive2 { name="bcTSNE"; version="0.11.1"; sha256="1j7aab9j30iypbjvid3dfg8rnz69i83k59ympkycv9k6xwpi330p"; depends=[RSpectra Rtsne splatter]; broken = true; };
-  bcc = derive2 { name="bcc"; version="1.3.1"; sha256="0ac0wasdifd0v47r9sxrsix5hv7masiphn6dyxpqdrd11z7iimgz"; depends=[qcc]; broken = true; };
   bcp = derive2 { name="bcp"; version="4.0.3"; sha256="0vhs89lb2wpanqsljclpvwbjmgdsc3jicws8bzqiqh8mbs3nzpxy"; depends=[Rcpp RcppArmadillo]; broken = true; };
   bcpmeta = derive2 { name="bcpmeta"; version="1.0"; sha256="02fw1qz9cvr7pvmcng7qg7p04wxxpmvb2s8p78f52w4bf694iqhl"; depends=[mvtnorm]; broken = true; };
   bdchecks = derive2 { name="bdchecks"; version="0.1.7"; sha256="1pzsvn1m1f9bdmhxmh57pvn9jm4z41rkvv6h60hq2lfgkapnjy7q"; depends=[bdDwC data_table DT finch knitr rgbif shiny shinyBS shinydashboard shinyjs spocc yaml]; broken = true; };
@@ -21775,6 +22141,8 @@ in with self; {
   biasbetareg = derive2 { name="biasbetareg"; version="1.0"; sha256="1562zdin0y5mrp36ih11ir3h9cv49cx1l98chxd89fkj8x3c1fbg"; depends=[betareg]; broken = true; };
   biclique = derive2 { name="biclique"; version="1.0.5"; sha256="1fdf2r1jc2x8yw0fcw7yyjdxz4b870w6y7mr68qixqxwpl6943zq"; depends=[]; broken = true; };
   bigQueryR = derive2 { name="bigQueryR"; version="0.5.0"; sha256="051c8rkj77dm78237dzhf3lcdawv0xv72pwfiim9bi89z9mp6f9m"; depends=[assertthat googleAuthR googleCloudStorageR httr jsonlite]; broken = true; };
+  bigdist = derive2 { name="bigdist"; version="0.1.4"; sha256="1qfnmhyfadmnnagbhdl4jjrb53i1srszf19idp8fy6bczbjq85yi"; depends=[assertthat bigstatsr furrr proxy]; broken = true; };
+  biglmm = derive2 { name="biglmm"; version="0.9-2"; sha256="1zj1h2hszps3w913j2dk4cyj5jsqkkxsm3pcjlc4jnq810j100l6"; depends=[DBI]; broken = true; };
   bimetallic = derive2 { name="bimetallic"; version="1.0"; sha256="181qi4dr0zc7x6wziq7jdc1his20jmprfpq3hrfm56fr5n1sj8wl"; depends=[]; broken = true; };
   bimixt = derive2 { name="bimixt"; version="1.0"; sha256="0nhszpzjqy8z3vngl5jdzqxzshnn92wgi0ci5n3n5kzi24xkfrzc"; depends=[pROC]; broken = true; };
   binaryLogic = derive2 { name="binaryLogic"; version="0.3.9"; sha256="19ig9qgjjnivfihjy41pc13qlrb95679mmk4zks5lbbri8qi4qxj"; depends=[]; broken = true; };
@@ -21785,6 +22153,7 @@ in with self; {
   binomialcftp = derive2 { name="binomialcftp"; version="1.0"; sha256="00c7ymlxk1xnx3x1814x7bcyir7q5sy4rb82dcpzf2bdly4xa1qr"; depends=[]; broken = true; };
   binomlogit = derive2 { name="binomlogit"; version="1.2"; sha256="1njz1g9sciwa8q6h0zd8iw45vg3i1fwcvicj5y8srpk8wqw3qp7k"; depends=[]; broken = true; };
   bioOED = derive2 { name="bioOED"; version="0.2.1"; sha256="0wx58bngpzlrbbcnx8l1lqhsg51y98wcym1238p87drf64x2mj1n"; depends=[bioinactivation corrplot dplyr FME ggplot2 rlang tidyr tidyselect tidyverse]; broken = true; };
+  bioassays = derive2 { name="bioassays"; version="1.0.1"; sha256="1y32wxkv14l7r0f35y4hxxxh3zpw2gd4hsjmkajhmzmnvg5jdw78"; depends=[dplyr ggplot2 magrittr nplr reshape2 rlang]; broken = true; };
   biogeo = derive2 { name="biogeo"; version="1.0"; sha256="14sqgg8b06gp5dajxvyj9s3ndsk7jpkfr0mkyl2l61kgp6qx53rh"; depends=[maptools raster sp stringr vegan]; broken = true; };
   biokNN = derive2 { name="biokNN"; version="0.1.0"; sha256="113lynbxmv88ycvbsq9drn2f75md7yajhicfw8qd8l6lawiq1fqc"; depends=[cluster desc dplyr ggplot2 lme4 magrittr mice mitml tidyr]; broken = true; };
   bioset = derive2 { name="bioset"; version="0.2.3"; sha256="15vchim8cim42j1if0jars696rh50vmbggr9748q321f6ngm1w1i"; depends=[dplyr magrittr rlang tibble tidyr]; broken = true; };
@@ -21808,7 +22177,6 @@ in with self; {
   bnormnlr = derive2 { name="bnormnlr"; version="1.0"; sha256="0l2r7vqikak47nr6spdzgjzhvmkr9dc61lfnxybmajvcyy6ymqs9"; depends=[mvtnorm numDeriv]; broken = true; };
   bnpmr = derive2 { name="bnpmr"; version="1.2"; sha256="0vpqhs1h2mphn9w5yngb7lxvmzrhn7mkj7ca6hykhhg48s2ra98g"; depends=[]; broken = true; };
   bnspatial = derive2 { name="bnspatial"; version="1.1.1"; sha256="1drm9ia4lr80wahbbn9xrw658ppmgxm4iadwv77jz1x786dda2n1"; depends=[doParallel foreach gRain gRbase raster rgdal sf]; broken = true; };
-  bolsec = derive2 { name="bolsec"; version="0.1.0"; sha256="0wrfw8h7s59ln2b0m9g0jgvwqvr4icv2wjxqjx6rcj366a0nx3sk"; depends=[dplyr formattable rvest]; broken = true; };
   bookdownplus = derive2 { name="bookdownplus"; version="1.5.8"; sha256="1cdxz5c69cgdk7wxr0xwhzw361rpg7j8xjv9hjf1877qqmhxbrkd"; depends=[bookdown knitr magick xaringan]; broken = true; };
   boomer = derive2 { name="boomer"; version="0.1.1"; sha256="16gwdvcp8bz5bgmvxsvc9iyz2a6mpwf5vgilc1lhf9l4n0l1m685"; depends=[crayon pryr rlang rstudioapi styler withr]; broken = true; };
   boostr = derive2 { name="boostr"; version="1.0.0"; sha256="123ag8m042i1dhd4i5pqayqxbkfdj4z0kq2fyhxfy92a7550gib2"; depends=[foreach iterators stringr]; broken = true; };
@@ -21819,11 +22187,11 @@ in with self; {
   breakage = derive2 { name="breakage"; version="1.1-1"; sha256="0zjazyz92criiimpz4wyd4hd8ccspvh3hhqpd4qkfdzdf9wp3kns"; depends=[Imap]; broken = true; };
   brickr = derive2 { name="brickr"; version="0.3.5"; sha256="1a6yxhq2zly3i3gs4dd19xhyrin1qaxdr7x3a887j7zbcj0j4z9q"; depends=[colorspace dplyr farver ggplot2 magrittr purrr rgl scales tidyr]; broken = true; };
   briskaR = derive2 { name="briskaR"; version="1.0.4"; sha256="016gpgbf5zc9jkagj439n2ylfbmsikg0n6v76wf4lchv4wvrsby4"; depends=[deldir deSolve fasterize fftwtools MASS mvtnorm raster Rcpp RcppArmadillo rgdal rgeos sf sp testthat]; broken = true; };
-  brolgar = derive2 { name="brolgar"; version="1.0.0"; sha256="0jw0cnszwdcj6jdxpr17bq338jaxihaacg62rr3n1ayig54bgbyn"; depends=[dplyr fabletools ggplot2 glue magrittr purrr rlang tibble tidyr tsibble vctrs]; broken = true; };
   broomExtra = derive2 { name="broomExtra"; version="4.3.2"; sha256="02ijhqgymm8nv40fy4j6psqkhak3dfwz8i5k0ay3g7aic49lzcbf"; depends=[broom broom_mixed dplyr magrittr parameters performance rlang]; broken = true; };
   brr = derive2 { name="brr"; version="1.0.0"; sha256="050ivnqcaxiyypd1sxfpy6ianhzzmvs6c77ga40g3440cvfigkgw"; depends=[gsl hypergeo pander stringr SuppDists TeachingDemos]; broken = true; };
   brranching = derive2 { name="brranching"; version="0.7.0"; sha256="06jy3qhbr0v4m1j4j8a7fb7ic59sx4zhlsm1yb3g6rdwc00d67wj"; depends=[ape conditionz crul curl phylocomr phytools taxize]; broken = true; };
   bsem = derive2 { name="bsem"; version="1.0.0"; sha256="1h4wsib6ppqj8nbvj4pzkm04bzrdkg9l7xfmzzmld9cswai4iw52"; depends=[BH coda DiagrammeR lattice magrittr Rcpp RcppEigen rstan rstantools shiny StanHeaders viridis visNetwork]; broken = true; };
+  bucky = derive2 { name="bucky"; version="1.0.7"; sha256="1ymlpmhgvhp7n7y9dbvi6zh73y8jvr09axq4skcliam8ks2xx1pm"; depends=[lmtest sandwich]; broken = true; };
   buffeRs = derive2 { name="buffeRs"; version="0.31"; sha256="1yr2bg2cyl8sm4g7jrjw9apj5lqhbqscw5mshs8r8niz0fkyq6lg"; depends=[sf]; broken = true; };
   bvenn = derive2 { name="bvenn"; version="0.1"; sha256="1xrya49w5bd2b7plfxpqla60b2828rkm0rjmc4qnqzvrahsbal0y"; depends=[]; broken = true; };
   bvpSolve = derive2 { name="bvpSolve"; version="1.4.4.1"; sha256="0xq5m57cya6l3c1glshrd29ywpm1rky36kqqrp4mw2scakz9p4wj"; depends=[deSolve rootSolve]; broken = true; };
@@ -21835,6 +22203,8 @@ in with self; {
   calcWOI = derive2 { name="calcWOI"; version="1.0.3"; sha256="1bxsn9b99hnb365qvlzr0ymwavamlyhs5sm9s2fdjh4zv3f32n3l"; depends=[dualtrees LS2W wavethresh]; broken = true; };
   caliver = derive2 { name="caliver"; version="2.0.0"; sha256="04qa3zrk70c8ak70djfh23jyfxs8293s8wzkk6cs0nyrknhaxzzj"; depends=[ggplot2 lubridate ncdf4 raster rworldmap]; broken = true; };
   canadacovid = derive2 { name="canadacovid"; version="0.3.4"; sha256="1hxcz3bk0p063cidj19zzacvxarpracnzglmb1212b2jx9w4i3gw"; depends=[dplyr httr jsonlite lubridate magrittr purrr rlang stringr tibble tidyr tidyselect]; broken = true; };
+  cancerTiming = derive2 { name="cancerTiming"; version="3.1.8"; sha256="1sfi8q2f5ag7iak0sf9pmqncb89w3gnxdiwjwpivkwhr28ais4mq"; depends=[gplots LearnBayes]; broken = true; };
+  cap = derive2 { name="cap"; version="1.0"; sha256="1pv8hskxjbp589dn7rx80yaa1ld76x1w37bss2fyrys1p3qr78aa"; depends=[MASS multigroup]; broken = true; };
   captioner = derive2 { name="captioner"; version="2.2.3"; sha256="0xg72pmgm84f0v45phfwxpsslhf12nhn1swmrj1yifj7g9sjvybj"; depends=[]; broken = true; };
   capwire = derive2 { name="capwire"; version="1.1.4"; sha256="18a3dnbgr55yjdk6pd7agmb48lsiqjpd7fm64dr1si6rpgpl4i9c"; depends=[]; broken = true; };
   cartools = derive2 { name="cartools"; version="0.1.0"; sha256="0gc5502373f0c2m2rh6awvyfqrg1wx1f341dm2byk9znba887lgs"; depends=[animation devtools dplyr gapminder ggplot2 knitr rlist rmarkdown roxygen2 sde shiny tidyverse usethis]; broken = true; };
@@ -21845,6 +22215,7 @@ in with self; {
   cat_dt = derive2 { name="cat.dt"; version="0.3.1"; sha256="0qr3azaxs339kfiiyzasc46xz4rb37prdwvdmv0c40cvba6zvapf"; depends=[ggplot2 Matrix Rglpk]; broken = true; };
   catSplit = derive2 { name="catSplit"; version="0.1.0"; sha256="0nifbwczfs5g9xxlmqfwvcaxd940k5xmbdmamwlhvgif7myi6xr4"; depends=[caret data_table dplyr farff OpenML rpart stringr]; broken = true; };
   catchr = derive2 { name="catchr"; version="0.2.31"; sha256="0mj3cgv2d217hcmyr8x0i83wysxhixgly5y1fs6jb1x09gs1cwnd"; depends=[purrr rlang]; broken = true; };
+  cate = derive2 { name="cate"; version="1.1.1"; sha256="0wqfblyr7rjx9wnpbnv5lw2zv7nw3mbdjn866l1ng779vka1wdc5"; depends=[corpcor esaBcv leapp MASS Matrix ruv sva]; broken = true; };
   catenary = derive2 { name="catenary"; version="1.1.2"; sha256="1n64kq3lkaf00a2mghs67hnxvi4dp6g12pwifyx0bd418wkw9wf3"; depends=[boot broom dplyr ggplot2 tidyverse]; broken = true; };
   catnet = derive2 { name="catnet"; version="1.15.7"; sha256="015qh9k0jj5plp777j3kl20601qiwadkaqrdb0483h3gwqwy828g"; depends=[]; broken = true; };
   catspec = derive2 { name="catspec"; version="0.97"; sha256="1crry0vg2ijahkq9msbkqknljx6vnx2m88bmy34p9vb170g9dbs1"; depends=[]; broken = true; };
@@ -21865,7 +22236,9 @@ in with self; {
   censusGeography = derive2 { name="censusGeography"; version="0.1.0"; sha256="1ncgd05ml571g3vy1g4p5xxg2bm08hbb6d5r3hpz7frn7w3l8l1d"; depends=[qdapTools]; broken = true; };
   censusxy = derive2 { name="censusxy"; version="1.1.1"; sha256="1gdry73xzcixa3hfchlf2xmmlnhk1vsg7k3axvynvlr493i7qf2a"; depends=[doParallel foreach httr]; broken = true; };
   censys = derive2 { name="censys"; version="0.1.0"; sha256="0r0yvaidn0qn96hx461415hywsjfgaz9wvvdssx7w97v2ndnk9sy"; depends=[httr jsonlite purrr stringi]; broken = true; };
+  centralplot = derive2 { name="centralplot"; version="0.1.0"; sha256="1slzvbm1vvgj1gkcx9pb46fz8q55vfyqrxsvx4qzi5kp7d9h4dy2"; depends=[ggplot2]; broken = true; };
   cernn = derive2 { name="cernn"; version="0.1"; sha256="0gz2x20pgsiq85hwkkpg4s1cdlw9plygx0446djc7qsymp469p2w"; depends=[]; broken = true; };
+  cfbfastR = derive2 { name="cfbfastR"; version="1.9.0"; sha256="0b5zagk5nwmq5gn3m3sva8ns7pbp5iqhkyfcwv3xf95qbshvpz6b"; depends=[cli data_table dplyr glue httr janitor jsonlite magrittr mgcv nnet progressr purrr Rcpp RcppParallel rlang stringr tibble tidyr]; broken = true; };
   cgalMeshes = derive2 { name="cgalMeshes"; version="2.2.0"; sha256="09iq6v5xizf0y3qzr7lkbwck8yh8rhbvr8c3m5gw95rs056njmj8"; depends=[BH data_table onion R6 Rcpp RcppCGAL RcppColors RcppEigen rgl]; broken = true; };
   cgalPolygons = derive2 { name="cgalPolygons"; version="0.1.1"; sha256="13gj0wkpcs51zpvas8rai8wk0wpvmkz91x9r99qfaz4fwzq692aj"; depends=[BH R6 Rcpp RcppCGAL RcppEigen]; broken = true; };
   cgdsr = derive2 { name="cgdsr"; version="1.3.0"; sha256="07yc819hkabpzzh0g0cbqza6bcfy67b2marrzz1lj97f9iba78ja"; depends=[httr R_methodsS3 R_oo]; broken = true; };
@@ -21879,6 +22252,7 @@ in with self; {
   cheb = derive2 { name="cheb"; version="0.3"; sha256="0vqkdx7i40w493vr7xywjypr398rjzdk5g410m1yi95cy1nk4mc7"; depends=[]; broken = true; };
   chebpol = derive2 { name="chebpol"; version="2.1-2"; sha256="126cgqnl9jy332q0ywg9dr11d4q1aichwwakb1xcrxrqw2j26zzi"; depends=[geometry]; broken = true; };
   checkr = derive2 { name="checkr"; version="0.5.0"; sha256="14hkpfbw5ibdwz2jygir2f2bb2qgrj62gn3449n4dif31nswaj2f"; depends=[err]; broken = true; };
+  chemmodlab = derive2 { name="chemmodlab"; version="2.0.0"; sha256="01af0j24vymxiqahwhcf4kp0x603yllvlgcxnybsi2wnzm71swk7"; depends=[caret class e1071 elasticnet KernSmooth lars MASS MSQC nnet pls pROC randomForest rpart tree]; broken = true; };
   chessR = derive2 { name="chessR"; version="1.5.2"; sha256="1czv5y4ybbi15b87959vri25fy31yv2l2cdd5q6p9fw291kj1qnp"; depends=[curl dplyr httr jsonlite lubridate magrittr purrr rlang rvest stringr tidyr xml2]; broken = true; };
   chi2x3way = derive2 { name="chi2x3way"; version="1.1"; sha256="13qc8sigiw4gcxk8y50q7yfgzbssjyl41fizzjqzcp3p14kpsmzw"; depends=[]; broken = true; };
   chickn = derive2 { name="chickn"; version="1.2.3"; sha256="1d3xl2pigan6vb29nk2ks04dsl5vy16cv9z7miskmhcqcx2wm1qb"; depends=[bigstatsr doParallel doRNG foreach MASS mvnfast nloptr pracma Rcpp RcppArmadillo RcppParallel Rdpack rmio zipfR]; broken = true; };
@@ -21891,19 +22265,22 @@ in with self; {
   citccmst = derive2 { name="citccmst"; version="1.0.2"; sha256="1b7awn1hjckxisfdi4ck697hwd4a5sqklwi7xzh6kgqhk9pv7vjn"; depends=[]; broken = true; };
   ciuupi = derive2 { name="ciuupi"; version="1.1.0"; sha256="0czfmmf62p1vml24s87pdwv52spqycchpkqzwk8vyd4n1z27r5s2"; depends=[functional nloptr pracma statmod]; broken = true; };
   clampSeg = derive2 { name="clampSeg"; version="1.1-1"; sha256="1zrndnd8n7ssn2fm0l7y31a2la0nsybqsl4j44r0mmc1m0m94vks"; depends=[lowpassFilter stepR]; broken = true; };
-  clarkeTest = derive2 { name="clarkeTest"; version="0.1.0"; sha256="0vbb3j9rnh42qyp78a4jykp7p560d0ryfp28xgvxax8h8hr80457"; depends=[]; broken = true; };
   classyfireR = derive2 { name="classyfireR"; version="0.3.8"; sha256="1k1j4p5xmracrlaxfmvpp1r6krirvpfrv0f0jq8377kmhxmdwmm5"; depends=[cli clisymbols crayon dplyr httr jsonlite magrittr purrr rjson RSQLite stringr tibble tidyjson tidyr]; broken = true; };
   cleanerR = derive2 { name="cleanerR"; version="0.1.1"; sha256="0rghn8rx7dj5clmc1dqvqwfm9kiva04k9gxsjjga3109l4jcpg63"; depends=[data_table plyr]; broken = true; };
   clere = derive2 { name="clere"; version="1.2.0"; sha256="0qc26ycycxphrbksk7jb1m6vh66a2zsnw8k4jnazs23sqdg24im9"; depends=[Rcpp RcppEigen]; broken = true; };
   climate = derive2 { name="climate"; version="1.0.5"; sha256="17hfxav8j0zyyl1839sj7nysv08j5z7xwz3p42di16cyx57czm4w"; depends=[curl data_table httr XML]; broken = true; };
   climdex_pcic = derive2 { name="climdex.pcic"; version="1.1-11"; sha256="01ax0kas43g3h21ixzc80f9gl4m9846gmk8v48rr0gkhcmbcc6jx"; depends=[PCICt Rcpp]; broken = true; };
+  climenv = derive2 { name="climenv"; version="1.0.0"; sha256="0w1pz725b6sw854pinypgi57vb2xjis3xx53b4mggwpdghck6mk7"; depends=[climaemet dismo dplyr elevatr exactextractr geodata glue plyr randomForest sf sp Ternary terra]; broken = true; };
   clinUtiDNA = derive2 { name="clinUtiDNA"; version="1.0"; sha256="0x3hb09073gkh60fc8ia0sfk948sm6z6j8sqkz275k4m8ryrabas"; depends=[]; broken = true; };
   clpAPI = derive2 { name="clpAPI"; version="1.3.1"; sha256="0hjpdbmwaww5fznqkkg9jli5y8f8zyd7crn0imdb0xxypmnp7zgf"; depends=[]; broken = true; };
+  clpm = derive2 { name="clpm"; version="1.0"; sha256="1dj9jx7r5d2azxkggkkqyhci7v80gl24qchw0x8xh84krl4cz2pz"; depends=[]; broken = true; };
+  clustDRM = derive2 { name="clustDRM"; version="0.1-0"; sha256="1c5z08a15scp3nrwyh0c03pdaawvm3ivbygqpbglwxim7zf73rd2"; depends=[caret doParallel DoseFinding DT foreach IsoGene MCPMod multcomp ORCME ORIClust pheatmap RColorBrewer readr shiny]; broken = true; };
   clustcurv = derive2 { name="clustcurv"; version="2.0.1"; sha256="1xkl84pd1a3phl5yfm21yr5c0gbmmg1wk9b0lyl2x8466v5hl53q"; depends=[doParallel doRNG foreach ggfortify ggplot2 Gmedian npregfast RColorBrewer survival]; broken = true; };
   clusterGenomics = derive2 { name="clusterGenomics"; version="1.0"; sha256="127hvpg06is4x486g1d5x7dfkrbk7dj35qkds0pggnqxkq3wsc1c"; depends=[]; broken = true; };
   clusterPower = derive2 { name="clusterPower"; version="0.7.0"; sha256="1ha7iz1afmgccxhxsl3y1fd9rbf35nrzp6bsz4c4zl0931xbazfb"; depends=[car dplyr foreach lme4 lmerTest mathjaxr nlme progress R_utils shiny tidyr]; broken = true; };
   clustsig = derive2 { name="clustsig"; version="1.1"; sha256="0n5nf712vsa8zb0c2lv4gjqsgva62678vjngr9idgswb73shxm8v"; depends=[]; broken = true; };
   cns = derive2 { name="cns"; version="0.1.0"; sha256="1kn1cq32pp05ag22n7iwjxn6lxpqn443npzk6vdskjm5pbnsc33k"; depends=[]; broken = true; };
+  coalitions = derive2 { name="coalitions"; version="0.6.24"; sha256="1ya9g2i1ds2w4hxbacmql67a3hh1grycj74g6b7xb05h478ym87n"; depends=[checkmate dplyr ggplot2 gtools jsonlite lubridate magrittr purrr RCurl rlang rvest stringr tibble tidyr xml2]; broken = true; };
   codadiags = derive2 { name="codadiags"; version="1.0"; sha256="1x243pn6qnkjyxs31h1hxy8x852r0fc952ww77g40qnrk8qw79xg"; depends=[coda]; broken = true; };
   coexist = derive2 { name="coexist"; version="1.0"; sha256="15ydhrx996i6caa0360c2bgn2zvgwfg5wdhsqq1gvrggs15w7nml"; depends=[]; broken = true; };
   collectArgs = derive2 { name="collectArgs"; version="0.4.0"; sha256="0fz5w1xsxiddzrwahrg50px4igyhd4plq655jaix6grancs7kvix"; depends=[magrittr]; broken = true; };
@@ -21918,7 +22295,10 @@ in with self; {
   compicc = derive2 { name="compicc"; version="0.1.0"; sha256="1j2yy4dw3g96vpm3dq81dixhfzm3nqqawphmmg9hcsqir5f6xg9a"; depends=[irr]; broken = true; };
   composits = derive2 { name="composits"; version="0.1.1"; sha256="0njz6yn3dxi5czzmp93lcz2xr5gphiii857s5jggygq0xdszlx86"; depends=[anomalize dobin dplyr fastICA forecast ggplot2 gridExtra ICS kableExtra otsad pracma rlang tibble tidyr tsoutliers]; broken = true; };
   compstatr = derive2 { name="compstatr"; version="0.2.1"; sha256="0pg8yacfb7jvg9xr0gmis8a4g339isd77h6wr8dd6w900q47xac0"; depends=[dplyr fs httr janitor lubridate purrr readr rlang rvest sf stringr tibble tidyr xml2]; broken = true; };
+  comradesOO = derive2 { name="comradesOO"; version="0.1.1"; sha256="0x0y3c4ihfss6rxdd9fws506vip9rr11485icxq41rp4x8zm2rk9"; depends=[doParallel foreach GenomicRanges ggplot2 ggrepel heatmap3 igraph IRanges MASS mixtools R4RNA RColorBrewer reshape2 RRNA S4Vectors seqinr tidyverse TopDom]; broken = true; };
+  concordancer = derive2 { name="concordancer"; version="1.0.2"; sha256="1hkm0ybzaiyd2qsic11gjkq2iw7j9rw85rfgrss0qmnak506kim7"; depends=[Rcpp]; broken = true; };
   concreg = derive2 { name="concreg"; version="0.7"; sha256="0g4my3ra9p797vcky5hsgcicsdbmczgd8fklxrkw2jrgwc0xrkaf"; depends=[survival]; broken = true; };
+  concrete = derive2 { name="concrete"; version="1.0.5"; sha256="05hl3ikdh8776hgw0wqz6acir8brkszgg01169q2v1dhgcsnfyjb"; depends=[data_table MASS nleqslv origami Rcpp RcppArmadillo SuperLearner survival zoo]; broken = true; };
   concurve = derive2 { name="concurve"; version="2.7.7"; sha256="185jwz7a33sc9gbkfbcxwzgzd39xn5x72d0nk6p045mq3xssk3j9"; depends=[bcaboot boot colorspace dplyr flextable ggplot2 knitr metafor officer pbmcapply ProfileLikelihood scales survival survminer tibble tidyr]; broken = true; };
   condmixt = derive2 { name="condmixt"; version="1.1"; sha256="1x6n3ylaa9ywvz7v63i2pvd2lxm95wq19xy741g9hy73ld7hd7zn"; depends=[evd]; broken = true; };
   confoundr = derive2 { name="confoundr"; version="1.2"; sha256="000vf828qv04pplx8yc8q3mafxf4g0axip6z5zbsj2581yxv9jjh"; depends=[dplyr ggplot2 gridExtra magrittr purrr rlang Rmpfr scales stringr tidyr]; broken = true; };
@@ -21929,6 +22309,7 @@ in with self; {
   convertGraph = derive2 { name="convertGraph"; version="0.1"; sha256="1jsrygj6ydzc0nzyzaq95j4blqavj7dqz182vgm1ckv8an3if0jx"; depends=[]; broken = true; };
   convexjlr = derive2 { name="convexjlr"; version="0.8.1"; sha256="1x2ra1xcyd7bvc7wq49wpihh0g9ygh1bq5214vvrhfrjfjifvlaw"; depends=[JuliaCall magrittr]; broken = true; };
   cooltools = derive2 { name="cooltools"; version="2.1.27"; sha256="1f22qpwf9ynqf9n4hl0kz6cy8bsz47dcmvz0wawq2isw5wn3jcs5"; depends=[bit64 celestial cubature data_table FNN jpeg MASS plotrix png pracma randtoolbox raster Rcpp sp]; broken = true; };
+  coopProductGame = derive2 { name="coopProductGame"; version="2.0"; sha256="1348pgqfvvysdixsjibgkvwjsmqasnlmwf9kyr39lw8jb81z25h0"; depends=[dplyr GameTheory ggplot2 gtools kappalab lpSolveAPI]; broken = true; };
   cooptrees = derive2 { name="cooptrees"; version="1.0"; sha256="0izvwna1jsqik3v5fz1r4c86irvma42clw0p4rdvwswv5pk698i1"; depends=[gtools igraph optrees]; broken = true; };
   corTools = derive2 { name="corTools"; version="1.0"; sha256="0arvqk2xp19ap73zmdk0kb1fycb3v2mf65b4bhanvcqwr4kg4vdk"; depends=[]; broken = true; };
   coreTDT = derive2 { name="coreTDT"; version="1.0"; sha256="14rnh61gk3m6g8rq77hm9ybds0px15di2mxm3jiyfdfynx5ng58f"; depends=[]; broken = true; };
@@ -21939,7 +22320,6 @@ in with self; {
   couchDB = derive2 { name="couchDB"; version="1.4.1"; sha256="1n99amvnsjp88y091603hjsvp243c5i6dbrsvdjfmzgj5dsrv70m"; depends=[bitops httr RCurl rjson]; broken = true; };
   countyfloods = derive2 { name="countyfloods"; version="0.1.0"; sha256="0ld8p8dfk9khvwffbn8sad0j3an25s7cvbi6jxljgx4zc6ldh699"; depends=[dataRetrieval dplyr ggplot2 lubridate maps plyr R_utils tidyr]; broken = true; };
   countytimezones = derive2 { name="countytimezones"; version="1.0.0"; sha256="0sk22fmz9d3wvlfvjl1xdavvl04q1ywy8ww2gi5am3yiizkf0v9w"; depends=[dplyr lubridate]; broken = true; };
-  coursekata = derive2 { name="coursekata"; version="0.15.0"; sha256="06w8ql6frbbr41q0d1y3gpjwkhlfkhyv45mjlxpg5q0k8r0ydvwi"; depends=[cli dslabs ggformula ggplot2 glue Lock5withR lsr Metrics mosaic pak palmerpenguins purrr rlang supernova vctrs viridisLite]; broken = true; };
   covLCA = derive2 { name="covLCA"; version="1.0"; sha256="15jsjrlaws1cqyrwvh4lzbhxkb11jmgpmddg98nfrzmjpczn2iw3"; depends=[Matrix mlogit poLCA]; broken = true; };
   covidregionaldata = derive2 { name="covidregionaldata"; version="0.9.3"; sha256="1pq3il8wzygih419avf3nn5swd0z09mf2n0q361w3n7aa2m20yjf"; depends=[countrycode dplyr httr jsonlite lifecycle lubridate memoise purrr R6 readxl rlang stringr tidyr tidyselect vroom xml2]; broken = true; };
   covreg = derive2 { name="covreg"; version="1.0"; sha256="0v19yhknklmgl58zhvg4szznb374cdh65i7s8pcj2nwrarycwzaq"; depends=[]; broken = true; };
@@ -21977,6 +22357,7 @@ in with self; {
   cytoDiv = derive2 { name="cytoDiv"; version="0.5-3"; sha256="00c0gqgypywgbhavb15bvj6ijrk4b5zk86w85n9kwr4069b7jvwc"; depends=[GenKern plotrix]; broken = true; };
   dagHMM = derive2 { name="dagHMM"; version="0.1.0"; sha256="1dw4clv2x71km1sqz1mydscwyj6y9yqx06v3rkmdz13qqcacfmhi"; depends=[bnclassify bnlearn future gtools matrixStats PRROC]; broken = true; };
   dalmatian = derive2 { name="dalmatian"; version="1.0.0"; sha256="0hpyg8sl5v87l1hxax9sj863hy9njdyp7hnsaw3cida365p0dswa"; depends=[coda dglm dplyr ggmcmc rlang tidyr]; broken = true; };
+  dampack = derive2 { name="dampack"; version="1.0.1"; sha256="0mh3x0xgcipbd9341x3sfapysrd9m8aaakc1f53vwjj31c8vayqc"; depends=[dplyr ellipse ggplot2 ggrepel mgcv reshape2 scales stringr triangle truncnorm]; broken = true; };
   dapr = derive2 { name="dapr"; version="0.0.3"; sha256="136chxijyxrl5sbiggxf56zga26zqds647z1z2igwn5mdff1wxyb"; depends=[]; broken = true; };
   darts = derive2 { name="darts"; version="1.0"; sha256="07i5349s335jaags352mdx8chf47ay41q7b0mh2xjwn2h9kzgqib"; depends=[]; broken = true; };
   dash = derive2 { name="dash"; version="0.9.4"; sha256="1ggdfzlf7ayv2nc6qpmyrg3cx31cikhnv7smwpx6xlmj2sc75war"; depends=[assertthat base64enc brotli crayon digest fiery glue htmltools jsonlite magrittr mime plotly R6 reqres rlang routr]; broken = true; };
@@ -22005,6 +22386,7 @@ in with self; {
   deGradInfer = derive2 { name="deGradInfer"; version="1.0.1"; sha256="0yczn63fhpirvz1g1kq9q0m04sisflxxgxy70c87jyvrw12nfwss"; depends=[deSolve gdata gptk]; broken = true; };
   deTestSet = derive2 { name="deTestSet"; version="1.1.7.4"; sha256="0cknv6d37vxfpvnckhgyrg5bw7i18gj85pyrrdyl5fxsqkqwk6ni"; depends=[deSolve]; broken = true; };
   deamer = derive2 { name="deamer"; version="1.0"; sha256="1xbxr78n6s1yhf192ab4syi1naqlwl9z4cxzchrkw80q7bxqfiz8"; depends=[]; broken = true; };
+  deconstructSigs = derive2 { name="deconstructSigs"; version="1.8.0"; sha256="014x0nb23jb98666kaav2phkvmkr38pi38jv0dqd4jv7zp0gdf1a"; depends=[BSgenome BSgenome_Hsapiens_UCSC_hg19 GenomeInfoDb reshape2]; broken = true; };
   deepboost = derive2 { name="deepboost"; version="0.1.6"; sha256="1nf9gjk9gjl2dz7cr3vh5lg8nxkbqwr82a132nw853axbdgbs9ga"; depends=[Rcpp]; broken = true; };
   define = derive2 { name="define"; version="0.2.9"; sha256="0sq7ryiz1py0yw7g2bncd834zsdiy1y7rck8k4grrx2ips5gv2jy"; depends=[encode Hmisc latexpdf SASxport spec]; broken = true; };
   defm = derive2 { name="defm"; version="0.1-1"; sha256="1pq89pma7gmahjhd6l5cjxd1768v7xjnv206ghls8w495xnl6qjs"; depends=[Rcpp]; broken = true; };
@@ -22023,6 +22405,7 @@ in with self; {
   dfexplore = derive2 { name="dfexplore"; version="0.2.1"; sha256="04nbhn59l1kas26nwj4qflkjvvr33sj1mm7zg7fhvya85gvlhrbf"; depends=[ggplot2]; broken = true; };
   dfpk = derive2 { name="dfpk"; version="3.5.1"; sha256="010rlxj66ar3y61fnm7ys3p6aimlr8ylqq4q4flzr9m88klz8701"; depends=[BH dfcrm ggplot2 PK Rcpp RcppEigen rstan StanHeaders]; broken = true; };
   dhReg = derive2 { name="dhReg"; version="0.1.1"; sha256="0cfiy0wwd9b6h1qs6nw2m29zc3j2qqcybf879s5zbgnyxzp2ga2w"; depends=[forecast future future_apply testthat]; broken = true; };
+  dhis2r = derive2 { name="dhis2r"; version="0.1.1"; sha256="019qrkcssxmvmhla3vfjq9m0vwv9j9h7njr2sjpmk4cqcdxvcbjn"; depends=[attempt curl dplyr httr2 R6]; broken = true; };
   dialectR = derive2 { name="dialectR"; version="1.0"; sha256="11fd2fdxczlcxkk3pwhiw0vb51bndh9qcfp7pqcfj1z7aga52xk0"; depends=[deldir dplyr dtw ggplot2 ggvoronoi Rcpp RcppProgress reticulate sf tibble]; broken = true; };
   dicionariosIBGE = derive2 { name="dicionariosIBGE"; version="1.6"; sha256="1rss1ydhcn6sma2lmlpq6s0h3dglwc20w499x1jzkcjnzc1rc7gl"; depends=[]; broken = true; };
   dief = derive2 { name="dief"; version="1.2"; sha256="1i4icdfqvw7imaj1fh392zmzfyz8aqlv9s5naqxm1pm0lqfxl6ca"; depends=[flux fmsb ggplot2 plyr]; broken = true; };
@@ -22033,10 +22416,11 @@ in with self; {
   diffusr = derive2 { name="diffusr"; version="0.1.4"; sha256="1f3h387kblw1xzdnxphwgfl1n7f6i07kk7kfslvbfxkalbish6ii"; depends=[igraph Rcpp RcppEigen]; broken = true; };
   dils = derive2 { name="dils"; version="0.8.1"; sha256="1q6ba9j14hzf7xy895mzxc6n9yjgind55jf350iqscwzxf7ynp33"; depends=[igraph Rcpp]; broken = true; };
   dimensionalAnalysis = derive2 { name="dimensionalAnalysis"; version="0.1.0"; sha256="0pzncdrphnldgpvkm847wr6yrk30p1ayfwjlrg44kxackpl1w1y8"; depends=[caracas hash reticulate]; broken = true; };
-  disastr_api = derive2 { name="disastr.api"; version="1.0.5"; sha256="1h5i6pwak16w0gdk8qjz4w9qpffjhzlsrvjkb4acrvgjgrsvz9kp"; depends=[httr jsonlite]; broken = true; };
   discgolf = derive2 { name="discgolf"; version="0.2.0"; sha256="07clh1awnibgrh7vl4a51r8dbya2rbmicm8v8x8mq8h8am2b3j0s"; depends=[crul jsonlite xml2]; broken = true; };
   disco = derive2 { name="disco"; version="0.6"; sha256="1abvhf0yb4mw02j1krjb7q68jpwdnl2narcalf3vkjcbflcp76z3"; depends=[ggplot2 RColorBrewer tmod]; broken = true; };
   discreteMTP = derive2 { name="discreteMTP"; version="0.1-2"; sha256="13qsf1kc3rph0kkdkz31qj072www5dwjyk73lfpy141rzhcn1v1x"; depends=[]; broken = true; };
+  discreteRV = derive2 { name="discreteRV"; version="1.2.2"; sha256="1lhf67cccr96zl3j1sysh2bv0pbgvkbgjdzm35fvrdm7k74ypjsi"; depends=[MASS plyr]; broken = true; };
+  discretecdAlgorithm = derive2 { name="discretecdAlgorithm"; version="0.0.7"; sha256="01x3qfjj7dwv0m9q8zdhfrpbj9ys9y5p7d3z8ywjrqy4jw88svjs"; depends=[igraph Rcpp RcppEigen sparsebnUtils]; broken = true; };
   diseq = derive2 { name="diseq"; version="0.4.6"; sha256="0j8xx40qs62ky5wrc4zymsfai2aqh2n3fcd17648n56d7m2p274x"; depends=[bbmle dplyr Formula magrittr MASS Rcpp RcppGSL RcppParallel rlang systemfit tibble tidyr]; broken = true; };
   diskImageR = derive2 { name="diskImageR"; version="1.0.0"; sha256="1r19k5fdjn6vkn11p5df77fnxfqaz3nciiaai0f3pr2bgpfppzka"; depends=[subplex zoo]; broken = true; };
   displayHTS = derive2 { name="displayHTS"; version="1.0"; sha256="0mqfdyvn2c5c3204ykyq29ydldsq0kb3a1d7mrzqr7cvrj1ahlqa"; depends=[]; broken = true; };
@@ -22050,6 +22434,7 @@ in with self; {
   dmdScheme = derive2 { name="dmdScheme"; version="1.3.5"; sha256="0q7jnbk2ymm0vb0yk5xpg8krsj4gs8dcp7qg0pp1z74x635biqhz"; depends=[digest knitr magrittr rappdirs readxl rlang rmarkdown stringr writexl xml2 yaml]; broken = true; };
   dmt = derive2 { name="dmt"; version="0.8.20"; sha256="0rwc8l9k2y46hslsb3y8a1g2yjxalcvp1l3v7jix0c5kz2q7917w"; depends=[MASS Matrix mvtnorm]; broken = true; };
   dna = derive2 { name="dna"; version="2.1-2"; sha256="0l7i9640yd25cbxd3vbmlsqgk3pi2f7v6g5q0lrgycxl7jla9v1k"; depends=[]; broken = true; };
+  dnapath = derive2 { name="dnapath"; version="0.7.4"; sha256="1xpx981sws51kyryc2frsn9ppd55xbkz0rz9v5qbxc3rhpa8f01g"; depends=[corpcor curl dplyr ggplot2 gtools igraph Rcpp RcppArmadillo Rdpack SeqNet tibble wCorr]; broken = true; };
   dnet = derive2 { name="dnet"; version="1.1.7"; sha256="05mqgp8x2h6vjf8j9466kpng7bbga134c2y808qgdmjdnv9fcaxc"; depends=[graph igraph Matrix Rgraphviz supraHex]; broken = true; };
   doMIsaul = derive2 { name="doMIsaul"; version="1.0.1"; sha256="17a363gj8hsdpga6b07c4lzrswgf553dfqxacv2jfx0rswxnrsb0"; depends=[aricode arules clusterCrit dplyr ggplot2 Gmedian MASS mice NbClust ncvreg plyr scales survival withr]; broken = true; };
   docket = derive2 { name="docket"; version="1.20"; sha256="104v18dqhw1npxyhrmpwvvnlmv9n67gh0pfv4983gmzalbka9xk9"; depends=[stringr XML xml2 zip]; broken = true; };
@@ -22069,8 +22454,10 @@ in with self; {
   drmdel = derive2 { name="drmdel"; version="1.3.2"; sha256="1772fxm3qs01h14qklp2rawcdm0vmjmb2mi62v1zl1hbxisnfq4s"; depends=[]; broken = true; };
   dropR = derive2 { name="dropR"; version="0.1"; sha256="0sw5lqlfdn64dbykxdhk1pz18f83if871vkapa2nxgcfiy79b0vs"; depends=[plyr shiny]; broken = true; };
   dse = derive2 { name="dse"; version="2020.2-1"; sha256="170rxrniszs8h59ah4mn4mz8d7kzix4g3vlz4icd8w6bl40c6ykc"; depends=[setRNG tfplot tframe]; broken = true; };
+  dsfa = derive2 { name="dsfa"; version="2.0.2"; sha256="1fsq3ydphgi9b97fr92y2d5fc34rf4raff6ki1d3aqn210h9d53z"; depends=[copula gratia mgcv Rcpp RcppArmadillo Rdpack]; broken = true; };
   dtree = derive2 { name="dtree"; version="0.4.2"; sha256="1cpv0pyf515610djxzfw1c83p3alk5a93clg4x9gk7a7qy4cyhr1"; depends=[caret evtree party partykit rpart]; broken = true; };
   dtwSat = derive2 { name="dtwSat"; version="1.0.0"; sha256="04bmic5qxz8ka6gn7npixcgky1vyf4jaq48i6h4cc34n9wwhzi4a"; depends=[ggplot2 mgcv proxy sf stars tidyr twdtw]; broken = true; };
+  dual_spls = derive2 { name="dual.spls"; version="0.1.4"; sha256="1ap4wngcakfr7q5jji63zlmbz3xw02chbqj4kwg9v9g0bq90y7k4"; depends=[pdist]; broken = true; };
   dummies = derive2 { name="dummies"; version="1.5.6"; sha256="01f84crqx17xd6xy55qxlvsj3knm8lhw7jl26p2rh2w3y0nvqlbm"; depends=[]; broken = true; };
   durmod = derive2 { name="durmod"; version="1.1-4"; sha256="0d721sbxjfh00gpxd4hj8iq04awfd0pcd6bw8cv7kny21l2f3w44"; depends=[data_table mvtnorm nloptr numDeriv Rcpp]; broken = true; };
   dycdtools = derive2 { name="dycdtools"; version="0.4.3"; sha256="06hm00mfkkg5yxpf30xb4i21bna0hpa0g86vx9qz9vf7f7cvdwjx"; depends=[dplyr ggplot2 lubridate ncdf4 R_utils RColorBrewer tidyr]; broken = true; };
@@ -22096,10 +22483,12 @@ in with self; {
   eel = derive2 { name="eel"; version="1.1"; sha256="0cv6dhw57yy140g73z94g9x1s42fpyfliv9cm2z1alm7xwap1l0x"; depends=[emplik rootSolve]; broken = true; };
   effectFusion = derive2 { name="effectFusion"; version="1.1.3"; sha256="0653857zgfv2lrksja6k9i7m2jn3ha4lri6mlmcn6fgxkmr54bgw"; depends=[bayesm cluster ggplot2 GreedyEPL gridExtra MASS Matrix mcclust]; broken = true; };
   eflm = derive2 { name="eflm"; version="0.3.0"; sha256="0pl1z0yy257x4yhy2m7w6xkicr2a5b37rdsrf7a5ramk7z2nvs4m"; depends=[tibble]; broken = true; };
+  efreadr = derive2 { name="efreadr"; version="0.2.2"; sha256="1h27by1m451wrnw017005avs5yj3fjzrm2lq5153aqm1mbbxxwvs"; depends=[dplyr ensurer magrittr readr]; broken = true; };
   efts = derive2 { name="efts"; version="0.9-0"; sha256="1cdn37sij3q73z9gal6x3nnnds55whfj5ywyww119hx092xcb2h4"; depends=[lubridate magrittr ncdf4 plyr stringr udunits2 xts]; broken = true; };
   eiCompare = derive2 { name="eiCompare"; version="3.0.4"; sha256="15s75hy6dp7pqsp5rhh9lqyy8z8cd7gq4hxl08ah4jki82cf877d"; depends=[bayestestR coda data_table doSNOW dplyr ei eiPack foreach ggplot2 magrittr mcmcse overlapping purrr rlang sf stringr tidyr tidyselect wru]; broken = true; };
   eigeninv = derive2 { name="eigeninv"; version="2011.8-1"; sha256="18dh29js824d7mrvmq3a33gl05fyldzvgi8mmmr477573iy9r30g"; depends=[]; broken = true; };
   eigenprcomp = derive2 { name="eigenprcomp"; version="1.0"; sha256="156qyv7sl8nng55n3ay6dnpayyfrqv27ndz40xf4w92is9zmymy0"; depends=[]; broken = true; };
+  elaborator = derive2 { name="elaborator"; version="1.1"; sha256="1kq3qqqywpzrk1ichsljvfijhsybmj7s0scmswmwi2crqi67gzp8"; depends=[bsplus dendextend dplyr forcats haven purrr RColorBrewer reshape2 rlang seriation shape shiny shinydashboard shinyWidgets tidyr]; broken = true; };
   elasticIsing = derive2 { name="elasticIsing"; version="0.2"; sha256="1zjgvz7w5j06x2cd1fzjl85di95ah67m1lanw01kic2bvhfwfbn6"; depends=[cvTools glmnet magrittr qgraph reshape2]; broken = true; };
   elbird = derive2 { name="elbird"; version="0.2.5"; sha256="1n9z71xii5kymrm5ar4gldz2czk8z94qzd2ms7fwk0cwynbdcc5k"; depends=[cpp11 dplyr matchr purrr R6 tibble vroom]; broken = true; };
   elec_strat = derive2 { name="elec.strat"; version="0.1.1"; sha256="09196k5c3jsikh98d33bn70izwcbx0wb5ki9fv1ij0dw9mnv4c3p"; depends=[elec]; broken = true; };
@@ -22116,6 +22505,8 @@ in with self; {
   engsoccerdata = derive2 { name="engsoccerdata"; version="0.1.5"; sha256="06fdgjgnk4lwshrkd0jad411x5nz9sxlri9fdhxrf2dr2hik4l8q"; depends=[dplyr magrittr tidyr]; broken = true; };
   ensModelVis = derive2 { name="ensModelVis"; version="0.1.0"; sha256="06nhk616h32225p65ms4k9ia5qwd7kngpa4z6hxzn9nzmiirma60"; depends=[dplyr forcats ggplot2 magrittr rlang tidyr]; broken = true; };
   ensemblQueryR = derive2 { name="ensemblQueryR"; version="0.1.0"; sha256="0yz7c8lvy9hivm60brx72iph36jrx5d11i9fbdhbl2l3gi4w0fbd"; depends=[dplyr httr jsonlite magrittr purrr rlang tibble tidyr vroom xml2]; broken = true; };
+  ensembleR = derive2 { name="ensembleR"; version="0.1.0"; sha256="0xvq1jlsp7gsk46i847nfvadxwlh09gi2rgwss2wf2xmh1855ray"; depends=[caret]; broken = true; };
+  ensurer = derive2 { name="ensurer"; version="1.1"; sha256="1gbbni73ayzcmzhxb88pz6xx418lqjbp37sdkggbrxcyhsxpdkid"; depends=[]; broken = true; };
   entcn = derive2 { name="entcn"; version="1.0.0"; sha256="0zwhhjrc24d3hr9494p9ayxlkd0g6jml9raxwv59mpvpprrasdws"; depends=[RYoudaoTranslate stringr]; broken = true; };
   enviPick = derive2 { name="enviPick"; version="1.5"; sha256="04q6zwqq2ip8b8h2n1jpgx1bzcvi7lazljs0806wiakbc79x232p"; depends=[readMzXmlData shiny]; broken = true; };
   envlpaster = derive2 { name="envlpaster"; version="0.1-2"; sha256="11a5n40k1ln5gxxvwq1vh4dhmhifhlm89hkhf36qnhj4bjh3v3y0"; depends=[aster aster2 caTools MASS]; broken = true; };
@@ -22129,12 +22520,13 @@ in with self; {
   epitopeR = derive2 { name="epitopeR"; version="1.0.0"; sha256="0zp23cm43j9mm1fvz65y3xgjy0bm2s5h02y046zx2akx24sh3fjh"; depends=[Biostrings dplyr fs httr janitor purrr readr rlang seqinr stringr tibble tidyverse]; broken = true; };
   eqs2lavaan = derive2 { name="eqs2lavaan"; version="3.0"; sha256="1lj6jwkfd84h9ldb6l74lrx2pnsl1c0d7mnrcrjkska87djb2nzd"; depends=[lavaan stringr]; broken = true; };
   eqtl = derive2 { name="eqtl"; version="1.1-7"; sha256="0xfr8344irhzyxs9flnqn4avk3iv1scqhzac5c2ppmzqhb398azr"; depends=[qtl]; broken = true; };
-  equatiomatic = derive2 { name="equatiomatic"; version="0.3.1"; sha256="0gy1wy10zc7h7h1s0hwd545iv4af5x2g8pqsgzyryydd6426g2gj"; depends=[broom broom_mixed knitr shiny]; broken = true; };
   ergm_userterms = derive2 { name="ergm.userterms"; version="3.10.0"; sha256="1aqrgdayh73dkr71gf8vawlj6qgv66pxr4klxgqb6ffan66b5p8g"; depends=[ergm network statnet_common]; broken = true; };
   ergmclust = derive2 { name="ergmclust"; version="1.0.0"; sha256="18vx02vr2wi0gw09g4hxb8glf38y06v4a0c6q666qv8bgcb0pgkw"; depends=[igraph lda MASS quadprog Rcpp RcppArmadillo viridis]; broken = true; };
   erpR = derive2 { name="erpR"; version="0.2.0"; sha256="1y6abc5fkcyyjh36maj1zbxppqzwd5wkvzvqahyvzsz5fqpjkcdx"; depends=[rpanel]; broken = true; };
   erratum = derive2 { name="erratum"; version="2.2.0"; sha256="0id03wm8knll548ydwv3cpn282xvw05vyaih8jy6nlmlis18wybf"; depends=[R6 rlang]; broken = true; };
+  errint = derive2 { name="errint"; version="1.0"; sha256="1ya7fsvwhmgxw87r32m4345n8pw2pbpv026xvml03s1kiam8qwbw"; depends=[rootSolve VGAM]; broken = true; };
   errorizer = derive2 { name="errorizer"; version="0.2.1"; sha256="10p7ydm81x2gls0wn692llgj2rxhg4s96rv7gvihmgi5dflraypq"; depends=[]; broken = true; };
+  esaBcv = derive2 { name="esaBcv"; version="1.2.1.1"; sha256="0d2z03jab1c59v9x0qfwbipf0zbdz7zqj96ndbs0wnpjpgrvcp1d"; depends=[corpcor svd]; broken = true; };
   estout = derive2 { name="estout"; version="1.2"; sha256="0whrwlh4kzyip45s4zifj64mgsbnrllpvphs6i5csb7hi3mdb3i5"; depends=[]; broken = true; };
   estudy2 = derive2 { name="estudy2"; version="0.10.0"; sha256="0axlhniir8sz06mn18y49q8np3rbx3jfnz410agfajqhq7b5m9s1"; depends=[curl matrixStats quantmod Rcpp zoo]; broken = true; };
   ether = derive2 { name="ether"; version="0.1.6"; sha256="1f3phh5vdfvlxqrpzsn6ysz0q3mbhr862fzsd3sp8m8qhry86cbx"; depends=[dplyr httr jsonlite Rmpfr]; broken = true; };
@@ -22151,6 +22543,7 @@ in with self; {
   exp2flux = derive2 { name="exp2flux"; version="0.1"; sha256="1b3ychb4wcf6dbccx2ddms5xygdgc296cnw4474fm81yrfjznplv"; depends=[gage igraph sybil]; broken = true; };
   expands = derive2 { name="expands"; version="2.1.3"; sha256="00zb57gmpj86c7rvpqywpn4c5wl51immps935n3hd2fyk73vqljh"; depends=[ape commonsMath flexclust flexmix gplots matlab moments NbClust plyr RColorBrewer rJava]; broken = true; };
   expert = derive2 { name="expert"; version="1.0-0"; sha256="0y9vcigvzhymalpv31b9nvmr86z1dz7x29yj838vks0dsv23rgrf"; depends=[]; broken = true; };
+  expertsurv = derive2 { name="expertsurv"; version="1.3.0"; sha256="0m8p902528z3ih0mzgds0jg8iv885279mmdpv0zhf2wc3hd99ri7"; depends=[abind BH dplyr flexsurv ggplot2 loo magrittr Rcpp RcppEigen RcppParallel Rdpack rlang rms rstan rstantools scales SHELF StanHeaders stringr survival tibble tidyselect]; broken = true; };
   expose = derive2 { name="expose"; version="0.0.3"; sha256="0dlxlxm3g9d8vmgp13i1825z1jzah94ih1vyif46s43xq0nf9anj"; depends=[e1071 foreach gam ggplot2 glmnet Matrix nnet polspline RColorBrewer Rcpp repmis SuperLearner xgboost]; broken = true; };
   expp = derive2 { name="expp"; version="1.2.5"; sha256="0hb4392biyy85gs7af4p9m7r51ijmqr7wp7c7b0i7lzdf1bnd7fz"; depends=[deldir rgeos sp spatstat_geom spdep]; broken = true; };
   exptest = derive2 { name="exptest"; version="1.2"; sha256="0wgjg62rjhnr206hkg5h2923q8dq151wyv54pi369hzy3lp8qrvq"; depends=[]; broken = true; };
@@ -22173,7 +22566,6 @@ in with self; {
   factorEx = derive2 { name="factorEx"; version="1.0.1"; sha256="03dgxxykxgq63cgan5gy5vz4hnwqmg48z2wdv8f69mk9452mg9m2"; depends=[arm doParallel estimatr foreach genlasso igraph mvtnorm pbapply pbmcapply prodlim sandwich stringr]; broken = true; };
   factorMerger = derive2 { name="factorMerger"; version="0.4.0"; sha256="127k5h1gbbnjr6gxgck2n9glvvwkd69xq7n6gzmrq8gszk8v1x5m"; depends=[agricolae colorRamps dplyr forcats formula_tools ggplot2 ggpubr knitr magrittr MASS mvtnorm proxy reshape2 scales survival]; broken = true; };
   factorQR = derive2 { name="factorQR"; version="0.1-4"; sha256="1vl01fm5qfyhnqbl5y86vkr50b8cv07vzlqs3v6smqaqq6yp4lv4"; depends=[lattice]; broken = true; };
-  factorplot = derive2 { name="factorplot"; version="1.1-2"; sha256="025lfk122w66yxym3njcpzwnbhg40xi7p1c9vnxczcb8kz31745s"; depends=[multcomp nnet]; broken = true; };
   factualR = derive2 { name="factualR"; version="0.5"; sha256="1wz8ibcmilcx62yy29nd2i1pdmjf7fm0g9i5s58gdn8cjlhnw1jl"; depends=[RCurl RJSONIO]; broken = true; };
   faisalconjoint = derive2 { name="faisalconjoint"; version="1.15"; sha256="08sb4za8qyadvigq2z7b0r44qk2lpahpnz9nv16xfjb1zhdkz5w3"; depends=[]; broken = true; };
   fakeR = derive2 { name="fakeR"; version="1.0"; sha256="0f4ngnd8s34j1327zp3aqnsiw0gfxkp1i24ng20hrmfl13s1qmxp"; depends=[mvtnorm polycor pscl VGAM]; broken = true; };
@@ -22184,8 +22576,6 @@ in with self; {
   fastCorrDiff = derive2 { name="fastCorrDiff"; version="0.5"; sha256="0fis04xfarvmhpdkh7524ffga8f8svpcn3837rqwy0g039dcfa64"; depends=[irlba Matrix plyr RSpectra]; broken = true; };
   fastHICA = derive2 { name="fastHICA"; version="1.0.2"; sha256="1h794ybbii0k7v3x0r1499zxdqa1i1dpi3i7idzqdrffnb5kmwlv"; depends=[energy fastICA]; broken = true; };
   fastclime = derive2 { name="fastclime"; version="1.4.1"; sha256="0zcir8r11b2hxr9vvkmvxlzmhfcaxbr0wbjy86ysr912mp8fs9i3"; depends=[igraph lattice MASS Matrix]; broken = true; };
-  fastcmprsk = derive2 { name="fastcmprsk"; version="1.1.1"; sha256="00jpmmlpldrqamgw7q7gx6s4rl1bxqlzw2jglw36k5zawcdb69y6"; depends=[dynpred foreach survival]; broken = true; };
-  fastdigest = derive2 { name="fastdigest"; version="0.6-3"; sha256="02csl261v7nassi5119ygw6jglm8q6rssg7lgyxzj73mkyilm832"; depends=[]; broken = true; };
   fasteraster = derive2 { name="fasteraster"; version="1.1.1"; sha256="1ycr2h046jds2758xvxn00rhglx3zarbzn3r38j66j5pnz2iiq4f"; depends=[Rcpp]; broken = true; };
   fasthplus = derive2 { name="fasthplus"; version="1.0"; sha256="05j4lg1gkkz1vi99dx73igvk9xyrli8j6m4hzhpcnyhy0h9bxiqj"; depends=[]; broken = true; };
   fastlogranktest = derive2 { name="fastlogranktest"; version="0.2.1"; sha256="1j5mgvi3nwnlarj31cknx2cikypql370qds2h0877vmm80942z25"; depends=[BH Rcpp]; broken = true; };
@@ -22202,13 +22592,16 @@ in with self; {
   feedeR = derive2 { name="feedeR"; version="0.0.10"; sha256="1p64c7ibwn6k5k3vsjxrcjr84czild7g8bqw0yv4axk52vk5jfkx"; depends=[digest dplyr lubridate readr stringr tibble xml2]; broken = true; };
   fellov = derive2 { name="fellov"; version="0.1"; sha256="0z4b08ykajzwa5852dknqz5qqlmhklbwdq8x5zhyfmwba5zfbjav"; depends=[]; broken = true; };
   ffbase = derive2 { name="ffbase"; version="0.13.3"; sha256="1dp6lblfq2j7r1b4b8ls47jlx8j27n88d5vp8w116lb8pa01zxmk"; depends=[bit fastmatch ff]; broken = true; };
+  fflr = derive2 { name="fflr"; version="2.2.3"; sha256="1ib0lgkxxjrsvhl4h4dpyk9qzlsxz95ki0q5qy4flqdm28vl633z"; depends=[httr jsonlite tibble]; broken = true; };
   ffmetadata = derive2 { name="ffmetadata"; version="1.0.0"; sha256="0gjv5fl3p0kz28c91l4qf34a2685a24l5841ixdg7wivfs5v9npv"; depends=[httr jsonlite]; broken = true; };
   ffsimulator = derive2 { name="ffsimulator"; version="1.2.3"; sha256="0vl8sr32l5l4v6jb59ch98fg850d6w8zqqy2v8zay7v04qwbwqiz"; depends=[checkmate cli data_table ffscrapr glue magrittr nflreadr Rglpk rlang tidytable]; broken = true; };
+  ffstream = derive2 { name="ffstream"; version="0.1.7.2"; sha256="0xc549sp443isn3rk96m28wsrsg66qzsvz51nx9bykjzi3zy5wjk"; depends=[Rcpp]; broken = true; };
   fgac = derive2 { name="fgac"; version="0.6-1"; sha256="0paddf5a4w0g2i0ay7my0bppwh534d8ghy6csfxl5jj034xjgwkk"; depends=[]; broken = true; };
   fgof = derive2 { name="fgof"; version="0.2-1"; sha256="0bclkb3as0fl2gyggqxczndfyj9pfnni5pa3inpn5msrnjg4g2j2"; depends=[mvtnorm numDeriv]; broken = true; };
   fgpt = derive2 { name="fgpt"; version="2.3"; sha256="1d0qzsn4b68jhk07k97iv765jpmzzh1gwqpid0r76vg4cwqfs3n7"; depends=[]; broken = true; };
   fidap = derive2 { name="fidap"; version="0.0.3"; sha256="0zq07395qx59xxb3cj5axhpkwnad2h88qbm3aan43q5cip9wi2bx"; depends=[httr jsonlite]; broken = true; };
   fieldRS = derive2 { name="fieldRS"; version="0.2.3"; sha256="0jr2l5cnrawd6wibmb6r0sngd851z9mbz4mwprnbbqbv3hzzrpm9"; depends=[caret concaveman geosphere ggplot2 raster rgeos sp stringdist vegan]; broken = true; };
+  filteRjsats = derive2 { name="filteRjsats"; version="1.0"; sha256="19zi44av3f5zahinqvgz5bvgh82qrpg4r4fffwjh8a09s975q5mg"; depends=[broman dplyr lubridate rerddap stringr tidyr]; broken = true; };
   fipe = derive2 { name="fipe"; version="0.0.1"; sha256="055jav8h4wws76jahm2d5dj49wkvzchh3f2vk5d50pny4dc7smar"; depends=[dplyr forcats furrr future httr jsonlite lubridate magrittr purrr readr stringr tibble tidyr]; broken = true; };
   fisheyeR = derive2 { name="fisheyeR"; version="0.9"; sha256="1w6va7gakqq2q8hsvdszpn8s2ysdfc648bk5p5v3wbl5s403bci8"; depends=[tkrplot]; broken = true; };
   fishflux = derive2 { name="fishflux"; version="0.0.1.6"; sha256="0n2lqx995w3vy0kq45kh8n79wbg2lsa12mar03kr2vc65acys6j2"; depends=[BH curl dplyr fishualize ggplot2 httr plyr Rcpp RcppEigen RcppParallel rfishbase rstan rstantools StanHeaders tidybayes tidyr]; broken = true; };
@@ -22233,8 +22626,8 @@ in with self; {
   foster = derive2 { name="foster"; version="0.1.1"; sha256="1gkn3mgxsq3p7nazw80z61yhc1dqxhjvd667xklpjka4rrk2am8p"; depends=[caret data_table dplyr randomForest raster reshape2 rgdal RStoolbox sp spatstat spatstat_geom trend yaImpute]; broken = true; };
   fpca = derive2 { name="fpca"; version="0.2-1"; sha256="13b102026xlfb7c2rb3xsqsymm7xpmaxppaafjkb5dx0b1lz0jrc"; depends=[sm]; broken = true; };
   fpmoutliers = derive2 { name="fpmoutliers"; version="0.1.0"; sha256="108bp3smk9jnckd5237xly4ywmal03rq1kidq5z61l6zrhc3yfh9"; depends=[arules doParallel foreach Matrix pmml pryr R_utils XML]; broken = true; };
+  frailtypack = derive2 { name="frailtypack"; version="3.6.0"; sha256="03hm6kala923fr02sjmysm2ycxbynsp3h43f8mlw8agi52hf9nz2"; depends=[boot doBy MASS nlme rootSolve shiny statmod survC1 survival]; broken = true; };
   frambgrowth = derive2 { name="frambgrowth"; version="0.1.0"; sha256="1xmy1zxp7aa2n8frlxhn1bl41zda1jldvvxb3q41yam3pslc8m1q"; depends=[]; broken = true; };
-  freesurfer = derive2 { name="freesurfer"; version="1.6.8"; sha256="0ks6ms5vp38pykcg66w960nmfgq383iprrbbzw5dlx9xnrx4yhbh"; depends=[neurobase R_utils reshape2]; broken = true; };
   frm = derive2 { name="frm"; version="1.2.2"; sha256="1dl0vca9r2dams99sc13pfpi0b3yb02x59f4c1jz07zz005c8l23"; depends=[]; broken = true; };
   frmhet = derive2 { name="frmhet"; version="1.1.3"; sha256="07sgsfhzrci8g1b0gicjfca1mgd8ppfqpkpp4q9bdxnjvdvlf45s"; depends=[]; broken = true; };
   frmpd = derive2 { name="frmpd"; version="1.1.0"; sha256="0irgqdr0vr8k408lsxcrjkjbjvqvmy5mnjw9c1ghs86isrp5mciz"; depends=[]; broken = true; };
@@ -22246,12 +22639,12 @@ in with self; {
   fugeR = derive2 { name="fugeR"; version="0.1.2"; sha256="0kd90s91vzv0g3v9ii733h10d8y6i05lk21p5npb3csizqbdx94l"; depends=[Rcpp snowfall]; broken = true; };
   fulltext = derive2 { name="fulltext"; version="2.0"; sha256="104wkas9azyb2drfaz1hrgbx2ilbb0k2mb8411l10rsbkqva099f"; depends=[aRxiv crul data_table digest fauxpas hoardr jsonlite magrittr microdemic pdftools rcrossref rentrez rplos storr tibble xml2]; broken = true; };
   funHDDC = derive2 { name="funHDDC"; version="2.3.1"; sha256="1fd3n3y5icm2lcdz5jzfybbbmmzbbgq949x1g4bx4s0h0dnc0rkk"; depends=[fda MASS]; broken = true; };
-  funModeling = derive2 { name="funModeling"; version="1.9.4"; sha256="1zhmazw77phcdwj9wwxpwjfhwd8wyjc538acqiwq9f6sz8fw1cbb"; depends=[cli dplyr entropy ggplot2 gridExtra Hmisc lazyeval moments pander RColorBrewer reshape2 ROCR scales stringr]; broken = true; };
   functClust = derive2 { name="functClust"; version="0.1.6"; sha256="0mdfxvrx3wk497a9bbkwnzbm6hm2s4wqs3h09m3hj48ybpqmhz9i"; depends=[clusterCrit multcompView]; broken = true; };
   futile_paradigm = derive2 { name="futile.paradigm"; version="2.0.4"; sha256="14xsp1mgwhsawwmswqq81bv6jfz2z6ilr6pmnkx8cblyrl2nwh0v"; depends=[futile_options RUnit]; broken = true; };
   futureheatwaves = derive2 { name="futureheatwaves"; version="1.0.3"; sha256="122b2z86bzxfch67y6cpq8wj62mw0dgkzbmnpwi247kdx7w5mw1f"; depends=[data_table dplyr ggplot2 ggthemes leaflet Rcpp stringr tidyr]; broken = true; };
   fuzzyFDR = derive2 { name="fuzzyFDR"; version="1.0"; sha256="0zd8i9did0d9gp42xjmwrccm32glabvvy08kl8phhwb1yaq53h7w"; depends=[]; broken = true; };
   fwi_fbp = derive2 { name="fwi.fbp"; version="1.7"; sha256="1wk9cr0kk6zkbf111bv87n7b1wwx1qrsbjxydvbjvy8bgz0nfa62"; depends=[]; broken = true; };
+  fwildclusterboot = derive2 { name="fwildclusterboot"; version="0.13.0"; sha256="0slm28pgvfsrsdvz2i1h231gkf4iq6gdlspyzppn8nwhngvic5hd"; depends=[collapse dqrng dreamerr Formula generics gtools JuliaConnectoR MASS Matrix Rcpp RcppArmadillo RcppEigen rlang summclust]; broken = true; };
   g2f = derive2 { name="g2f"; version="0.2"; sha256="1jsmiv6v8ilpxg1k1npcgqa467hpyw7mzh5m8dp7bxar4j5npsp4"; depends=[KEGGREST minval sybil]; broken = true; };
   g3viz = derive2 { name="g3viz"; version="1.1.5"; sha256="0pjn1rgqbrkbdrcnf01j9lm3257fnp7b0p5p3hyhg8srd990wp61"; depends=[cBioPortalData htmlwidgets jsonlite stringr]; broken = true; };
   gDefrag = derive2 { name="gDefrag"; version="0.3"; sha256="016vpj03drygxsa06jin225rfgjvjm938x65990ms15xcwrgv8nb"; depends=[igraph maptools rgdal rgeos sp]; broken = true; };
@@ -22261,27 +22654,30 @@ in with self; {
   gWidgets2RGtk2 = derive2 { name="gWidgets2RGtk2"; version="1.0-7"; sha256="14c933j0wj3lb5da75zxg3w3mfqh0nqk8rczbi4dnqd8sna6jks9"; depends=[gWidgets2 memoise RGtk2]; broken = true; };
   gameofthrones = derive2 { name="gameofthrones"; version="1.0.2"; sha256="10ns4yl1s8adlf334gl8yararj1fpxbg3gy7h69s554m4h878awk"; depends=[ggplot2 gridExtra MASS]; broken = true; };
   games = derive2 { name="games"; version="1.1.2"; sha256="01hbbr2hsxi5j9axpdl0jihpd55pa9hacjxmab8p7cixk3xqqqbf"; depends=[Formula MASS maxLik stringr]; broken = true; };
-  gamlss_ggplots = derive2 { name="gamlss.ggplots"; version="2.1-2"; sha256="0b205awv7abl1jv2gg2ki2xdz91i0xikvixgygwjmwz6vri0p7zx"; depends=[ellipse foreach gamlss gamlss_dist gamlss_foreach gamlss_inf ggplot2 ggridges mgcv]; broken = true; };
   gamlss_nl = derive2 { name="gamlss.nl"; version="4.1-0"; sha256="083l5lsb0csxcp4vffvdv2nr7jk3s2gkcavx66m8inzw16j7xilz"; depends=[gamlss survival]; broken = true; };
   gamm4_test = derive2 { name="gamm4.test"; version="0.1.0"; sha256="0ab6rksr88fsv6whp6cxyshpv5ixmf9lw51cl3rzk870r8q326wg"; depends=[doParallel foreach gamm4 Matrix mgcv plotly RColorBrewer]; broken = true; };
-  gamma = derive2 { name="gamma"; version="1.0.4"; sha256="02qdv1kzz1pw07zksxl97ra4wd15xgdzfaq9qfwfcci67xmx88ap"; depends=[ggplot2 IsoplotR rlang rxylib]; broken = true; };
   ganalytics = derive2 { name="ganalytics"; version="0.10.7"; sha256="03jf7325cgg5p6lzcrzzzx0b40vf3l5vhw95lih098kpmlr1zadf"; depends=[assertthat googleAnalyticsR httpuv httr jsonlite lazyeval lubridate plyr R6 rvest scales selectr stringr tibble XML xml2]; broken = true; };
   garchmodels = derive2 { name="garchmodels"; version="0.1.1"; sha256="1nmhsxhfbp7jn85jwnhm4p5kl0jc5n1bjwwwpia774ycr6krazwn"; depends=[dials dplyr magrittr parsnip purrr rlang rmgarch rugarch stringr tibble tidyr]; broken = true; };
   gazepath = derive2 { name="gazepath"; version="1.3"; sha256="1sv0vdwzmvpnj2k8lphnf4y12fi5md0j2725fjkv1n7a3dkd6faa"; depends=[jpeg scales shiny sp zoo]; broken = true; };
+  gdalBindings = derive2 { name="gdalBindings"; version="0.1.17"; sha256="1z4n9113by1igd9kpmvjll7rp3hf2ijgrrvc1p8l43595546fcp2"; depends=[data_table R6 Rcpp]; broken = true; };
   gdalUtils = derive2 { name="gdalUtils"; version="2.0.3.2"; sha256="0krapdy50nd5dvcdflz39dzxpig3zklng3hgxavqg2nvwazalvsc"; depends=[foreach R_utils raster rgdal sp]; broken = true; };
   gdmp = derive2 { name="gdmp"; version="0.2.0"; sha256="0fy8x9l6swrb78apwq9d9msz2y8dkfd2fkyp1pkmzxwdb85lmcdm"; depends=[]; broken = true; };
   gdns = derive2 { name="gdns"; version="0.5.0"; sha256="1bicimkxsyfg9yqaikapwlv8x9xdvsb00fqnfka07i6b63109sxh"; depends=[httr jsonlite magrittr stringi tinytest]; broken = true; };
   geckor = derive2 { name="geckor"; version="0.2.0"; sha256="06infn0icgsa10szsc8bqams57swx6a4ch3a1n2a68rp8q2f6lw2"; depends=[curl dplyr httr jsonlite knitr lifecycle magrittr rlang tibble tidyr tidyselect]; broken = true; };
+  gemlog = derive2 { name="gemlog"; version="0.41"; sha256="16pdhpx21avxjrawj7i47dxzz2wfhabzz5x3nln2pwaz5b147syz"; depends=[signal]; broken = true; };
   genasis = derive2 { name="genasis"; version="1.0"; sha256="1r0733cc2hss3f8dp19s1ji55yp72mds7p3x1zvvpiks2r7w712p"; depends=[fitdistrplus Kendall]; broken = true; };
   gencve = derive2 { name="gencve"; version="0.3"; sha256="00wbmaffm7mbfv3zl6mb24w1df1a8p24girwdh3a522lw3045iwf"; depends=[C50 class e1071 glmnet lars MASS nnet plus randomForest rpart]; broken = true; };
   geneListPie = derive2 { name="geneListPie"; version="1.0"; sha256="0z2gawfzhm05dafj4zlj6ifmf0dy7p1hrpa59lzxrnrc0wr6laji"; depends=[]; broken = true; };
   geneNetBP = derive2 { name="geneNetBP"; version="2.0.1"; sha256="0sp1chyln5k2zsq7cdhvrqxwr2nhrll1pdl1l5g6fd4gjl2m1nwk"; depends=[bnlearn ggm gRain graph igraph Rgraphviz scales]; broken = true; };
   geneSignatureFinder = derive2 { name="geneSignatureFinder"; version="2014.02.17"; sha256="1s9jj87wnzzgm9hnws09yhrxdlb6jw56i3ddwznvmh8vpzrspv4h"; depends=[class cluster survival]; broken = true; };
+  genetic_algo_optimizeR = derive2 { name="genetic.algo.optimizeR"; version="0.2.6"; sha256="08jc17nwvycfgkzqisgyj741ykwsm0q8kh3f464zzwp5s6612ajy"; depends=[biocViews dplyr ggplot2 magrittr rsconnect stringr tinytex]; broken = true; };
   genius = derive2 { name="genius"; version="2.2.3"; sha256="03j6yry39nn8bccrnwjx1y36rdw167gjlkzl56g5lqwbrgx26bqy"; depends=[dplyr magrittr purrr reshape2 rlang rvest stringr tibble tidyr tidytext]; broken = true; };
   genomeplot = derive2 { name="genomeplot"; version="1.0"; sha256="15v01ngxq7kxav1bhw1mvqradrmvwsad5xh9l5skivb5smh9795w"; depends=[ggplot2]; broken = true; };
   genotypeR = derive2 { name="genotypeR"; version="0.0.1.8"; sha256="1kwzjn6hrnfizs44cz4a8qa4mdhdzqssc4axx0s6vngmkmsrffig"; depends=[colorspace doBy plyr reshape2 zoo]; broken = true; };
   geodetector = derive2 { name="geodetector"; version="1.0-4"; sha256="00zyx68jjl4mldah8mxfvwvv5yfkd4f1s2rlx6fsw6h8y2cwzj3l"; depends=[maptools rgdal rgeos sp]; broken = true; };
   geofabrik = derive2 { name="geofabrik"; version="0.1.0"; sha256="0k92gmivccw3kbgkb9bjw7pxc4zc3zdj35x0cbzmjq0k3qxq8ad0"; depends=[]; broken = true; };
+  geofd = derive2 { name="geofd"; version="2.0"; sha256="1rsgy4nxfp1gi4vwh8zfzksr6sr2ga31kmd56q5m56gw530570ra"; depends=[fda]; broken = true; };
+  geohabnet = derive2 { name="geohabnet"; version="2.1.2"; sha256="03d1zv8p5d75qj42g4xfq4fhif304a1wfkcggib5xqwkj5zkqabs"; depends=[beepr config easycsv future future_apply geodata geosphere igraph magrittr memoise rlang rnaturalearth stringr terra viridisLite yaml]; broken = true; };
   geojsonlint = derive2 { name="geojsonlint"; version="0.4.0"; sha256="0l6xlf6l9shyvdd2ghkhcgbkxpmycapfpxakzbvd92j1x8dmr9az"; depends=[crul jsonlite jsonvalidate V8]; broken = true; };
   geoknife = derive2 { name="geoknife"; version="1.6.11"; sha256="0396ms1yrmih1s5rppiifq6j50lmmzdyjvlbhk48xkw4ahzq5cmm"; depends=[curl httr progress sf whisker xml2]; broken = true; };
   geomedb = derive2 { name="geomedb"; version="2.0.1"; sha256="1l35c9x1mhqd7z5ragd7w3ay8v2fdnbmbfx9grwi622j8yz1fbmq"; depends=[ape httr jsonlite]; broken = true; };
@@ -22297,6 +22693,7 @@ in with self; {
   getlandsat = derive2 { name="getlandsat"; version="0.2.0"; sha256="15450v93lc4i2qda0zlb5vplwbarkmf3f6sb4rlrdpv9vlj85hff"; depends=[crul data_table rappdirs readr tibble xml2]; broken = true; };
   getpublist = derive2 { name="getpublist"; version="0.1.0"; sha256="0p6l7qha6i7vhqvav74yxpa6qph35g41v00173mjjqsvyhd0qc5i"; depends=[dplyr magrittr rvest stringr tibble tidyr xml2]; broken = true; };
   gfmR = derive2 { name="gfmR"; version="1.1-0"; sha256="0qzzbcra1fnbp0h31b1as20yhmqmi7p62xrhikj64an9avg9b277"; depends=[faraway nnet]; broken = true; };
+  gfpop = derive2 { name="gfpop"; version="1.1.1"; sha256="0jm7ri25qhkc80s4vfz2p9516m7wl0x8fcci6mggm4mc4ksx78f4"; depends=[Rcpp]; broken = true; };
   ggDCA = derive2 { name="ggDCA"; version="1.1"; sha256="0jpg7n6nk2jgq668ff0l9zk26zk39abc74f6w5x8gf4zsb8y0zp9"; depends=[base_rms do ggplot2 rms set survival]; broken = true; };
   ggROC = derive2 { name="ggROC"; version="1.0"; sha256="0p9gdy7ia59d5m84z9flz5b03ri7nbigb3fav2v2wrml300d24vn"; depends=[ggplot2]; broken = true; };
   ggasym = derive2 { name="ggasym"; version="0.1.6"; sha256="1vgsqq2m4w5clmf27mmj6jqn2s8m1izz3gj2bxqpmdcvzf5vxkgr"; depends=[dplyr ggplot2 magrittr purrr rlang scales stringr tibble tidyr]; broken = true; };
@@ -22305,12 +22702,13 @@ in with self; {
   ggcoverage = derive2 { name="ggcoverage"; version="0.7.1"; sha256="088gyc6054d8xx3k3pg5i40cnvyryyq4k6rn214li0yslj3fphyi"; depends=[Biostrings BSgenome dplyr GenomeInfoDb GenomicAlignments GenomicRanges ggbio ggh4x ggplot2 ggrepel IRanges magrittr patchwork RColorBrewer reshape2 rlang Rsamtools rtracklayer S4Vectors scales seqinr]; broken = true; };
   ggfan = derive2 { name="ggfan"; version="0.1.3"; sha256="1p3hbznpsaznlk0lnjyazc130www0p5919qplg3kspng7qh8p22w"; depends=[colorspace dplyr ggplot2 rstan]; broken = true; };
   ggguitar = derive2 { name="ggguitar"; version="0.1.1"; sha256="1lmfs54h91gzcxin37v4flkywbq3fs648mm1h9ak03xlj5nagzsi"; depends=[dplyr ggplot2 gridExtra lazyeval readr tibble]; broken = true; };
+  gghdr = derive2 { name="gghdr"; version="0.2.0"; sha256="1id0ky2mf656xqsmg76f627zw8iff4q1wzgih32nryk0hfvm2gfi"; depends=[digest farver ggplot2 hdrcde scales tibble]; broken = true; };
   gglogo = derive2 { name="gglogo"; version="0.1.5"; sha256="08wg0svcksdzchp6bdllmsnklxia3d0ygqwzgmqb2sga8nbkf5hl"; depends=[dplyr ggplot2 jpeg knitr magrittr plyr purrr reshape2 rlang tidyr]; broken = true; };
   ggloop = derive2 { name="ggloop"; version="0.1.0"; sha256="0jpbgb16jfsv557zvishln98y7nd6p1ryp6hxkrkmhp9p35vzvc0"; depends=[assertthat ggplot2 lazyeval magrittr plyr]; broken = true; };
   ggmotif = derive2 { name="ggmotif"; version="0.2.1"; sha256="1pqkl5zw4v6b81nbxcrpz44sjs4j65iw23j9xiy4d7yqj1bx7604"; depends=[ape cowplot data_table dplyr ggplot2 ggsci ggtree magrittr memes patchwork stringr tidyverse treeio universalmotif XML]; broken = true; };
   ggpacman = derive2 { name="ggpacman"; version="0.1.0"; sha256="1040d6aciyllrpszh7l7y55fw4dx8cya2yvj0x4i2fibvygz83p6"; depends=[dplyr gganimate ggforce ggplot2 magrittr purrr rlang tidyr]; broken = true; };
+  ggparliament = derive2 { name="ggparliament"; version="2.0.0"; sha256="04za4lm3lir95bgda1rzlsyil2fkac3j5f5f1pjw2samy6pjz80r"; depends=[dplyr ggplot2 rlang]; broken = true; };
   ggsn = derive2 { name="ggsn"; version="0.5.0"; sha256="04vnap83w06hbqqi5kgxmrdb3a13n5mcdk5lllymv6nrzvl84f2x"; depends=[ggmap ggplot2 maptools png sf]; broken = true; };
-  ggtikz = derive2 { name="ggtikz"; version="0.1.2"; sha256="00l91sw6h8h7wvzj6nn30q7rniw8kb0pxrvy4xah5bhb44iz7gmk"; depends=[dplyr ggplot2 stringr tikzDevice]; broken = true; };
   ggvoronoi = derive2 { name="ggvoronoi"; version="0.8.5"; sha256="0q02r0nql64am6ixjq59fjn2kzsj2is22ys1j1rzscwkh9f6f17m"; depends=[deldir ggplot2 raster rgeos sp]; broken = true; };
   ghee = derive2 { name="ghee"; version="0.1.0"; sha256="0b3czx2ibi5p8xl7i36zxnab032vrkh5bv204r7wgg1xpx8pdlra"; depends=[gh jsonlite]; broken = true; };
   gibbs_met = derive2 { name="gibbs.met"; version="1.1-3"; sha256="1yb5n8rkphsnxqn8rv8i54pgycv9p7x1xhinx4l5wzrds3xhf2dc"; depends=[]; broken = true; };
@@ -22318,6 +22716,7 @@ in with self; {
   giftwrap = derive2 { name="giftwrap"; version="0.0.4"; sha256="1zsw529h69x9yaq2csfws4iqn3mm39z34kwzj0b2y850wzbn2dvp"; depends=[namespace processx readr tibble]; broken = true; };
   giphyr = derive2 { name="giphyr"; version="0.2.0"; sha256="0273f7lama8bhaalafs66m6ksp32vx0j6rmh1qr4484i7wkmdfqn"; depends=[dplyr httr miniUI purrr rstudioapi shiny tibble]; broken = true; };
   glacierSMBM = derive2 { name="glacierSMBM"; version="0.1"; sha256="0117fzz2b1lccs0kkwz59w2yysi72j54yvz7373pz11w7rjds84f"; depends=[raster sp udunits2]; broken = true; };
+  glancedata = derive2 { name="glancedata"; version="1.0.1"; sha256="01j7syjn33pc7hq032nmyak38wn35yv3n7is9g2ggs14kj3xqb0c"; depends=[dplyr forcats GGally ggplot2 gridExtra openxlsx purrr tibble tidyr]; broken = true; };
   glmdisc = derive2 { name="glmdisc"; version="0.6"; sha256="031rz3s5d7hz9fzmsj7aqhzwrn05rnfvk9292k2r0qpr6k02mk3b"; depends=[caret dplyr gam magrittr MASS nnet Rcpp RcppEigen RcppNumerical]; broken = true; };
   glmdm = derive2 { name="glmdm"; version="2.60"; sha256="09vljki24fccqkvxkmg2i6a8pxqhfwm155b41m2q51lqaq29bfw7"; depends=[]; broken = true; };
   glmmsr = derive2 { name="glmmsr"; version="0.2.3"; sha256="1fbg5zji0xjr9q1yc6phsp37nsrj7nfs8yiri0j9s84wzgwjili1"; depends=[BH lme4 Matrix numDeriv R6 Rcpp RcppEigen]; broken = true; };
@@ -22325,6 +22724,7 @@ in with self; {
   glrt = derive2 { name="glrt"; version="2.0"; sha256="0p2b0digndvnn396ynv56cdg436n3ll7pxkb81rs3dhwbyqyc948"; depends=[survival]; broken = true; };
   gmat = derive2 { name="gmat"; version="0.2.2"; sha256="0iq2b3s60fyam45ykk67xyi2yhr8ma1s2vw4059357j1948525p2"; depends=[gRbase igraph]; broken = true; };
   gmeta = derive2 { name="gmeta"; version="2.3-1"; sha256="02w3a8c189wdvcxsnclbgzb6bc9fq88rcw2danxa6i9g7q4kq2sp"; depends=[BiasedUrn binom]; broken = true; };
+  gofastr = derive2 { name="gofastr"; version="0.3.0"; sha256="02jn4xbbafl7siwvkqns1818wmw813x9cvqfcnpnmcippiqhrb0b"; depends=[data_table quanteda slam SnowballC tm]; broken = true; };
   goldi = derive2 { name="goldi"; version="1.0.1"; sha256="191ac02bwrxr3khq6qirhxzfhv7pqfhqyg7jb473p5vwygpvc53l"; depends=[dplyr futile_logger magrittr Rcpp RcppArmadillo SnowballC tm]; broken = true; };
   goldilocks = derive2 { name="goldilocks"; version="0.3.0"; sha256="1h16kfalyklc7i3rix1ml83wjcbi9wv3z3rwxa83gp2h6nfpzpwl"; depends=[dplyr fastlogranktest pbmcapply PWEALL rlang survival]; broken = true; };
   googlePrintr = derive2 { name="googlePrintr"; version="0.0.1"; sha256="19rm78x8qd61ilc6h1kn3dw63m6dfsckqkd3n76krvi0akgl72w5"; depends=[googleAuthR httr jsonlite]; broken = true; };
@@ -22339,13 +22739,13 @@ in with self; {
   graphscan = derive2 { name="graphscan"; version="1.1.1"; sha256="1dgjb0grdymhimdgwnddjcivgy2i9r1i1nni4v9mx0447skcahk9"; depends=[ape rgl snowfall sp]; broken = true; };
   graphseg = derive2 { name="graphseg"; version="0.1.1"; sha256="0rgr9k0imif79prw5kkcnkpw3hx8ndzh1bvd0wxgqga8f9vr1cgk"; depends=[flsa igraph magrittr Matrix sf]; broken = true; };
   graphx = derive2 { name="graphx"; version="1.0"; sha256="1k7vq0j58yskmaqknpkhccrc5n1hh8p2fsw7419r7k6a2c3syj8a"; depends=[cubature docore jpeg magicaxis MASS plotrix png pracma raster sp]; broken = true; };
-  gratis = derive2 { name="gratis"; version="1.0.5"; sha256="05ac9rxzps2mal20xqwa937ybdgl73nngswvjxwya20pbwhz6l73"; depends=[doRNG dplyr foreach forecast GA generics magrittr mvtnorm polynom purrr shiny tibble tsfeatures tsibble]; broken = true; };
   gremes = derive2 { name="gremes"; version="0.1.1"; sha256="1i3j23ssx0grkzq1qf4naiqrfd753m992pqhxy5y7c805acm77mj"; depends=[abind copula igraph mev mvtnorm quadprog]; broken = true; };
   gren = derive2 { name="gren"; version="0.0.1"; sha256="1wb5wwdjxi7q36md7xzmbw5lrggcgghkz3pmxipjpxw8kfv804xp"; depends=[glmnet Iso pROC Rcpp RcppArmadillo]; broken = true; };
   greyzoneSurv = derive2 { name="greyzoneSurv"; version="1.0"; sha256="115i0d4fy4p4g4vd419hj9f23hi8cbiyfilgpgmag91ilr1xpcdp"; depends=[Hmisc survAUC survival]; broken = true; };
   groupRemMap = derive2 { name="groupRemMap"; version="0.1-0"; sha256="1bfp746j0dx7kk44nyjqmimvgw14par9ayvqxnzldc05qsazjdwx"; depends=[]; broken = true; };
   grouped = derive2 { name="grouped"; version="0.6-0"; sha256="1glxgacpwk7yjbkwg5ci6bmb2il6hf5zhydwi5bbq6hc032m9976"; depends=[MASS]; broken = true; };
   groupsubsetselection = derive2 { name="groupsubsetselection"; version="1.0.3"; sha256="118cj5xc8nbq4fs2gbzg1nhynixaflbl0si77gyy4ybw0drsz4nj"; depends=[]; broken = true; };
+  grplassocat = derive2 { name="grplassocat"; version="1.0"; sha256="0pi5vq7yqg0ha91y6296ckshxyq3135cg6zcs9x6xba5m5024k4p"; depends=[grplasso]; broken = true; };
   gsdensity = derive2 { name="gsdensity"; version="0.1.2"; sha256="0qaigqwlaf03ski08hv3jbqxg3h7zyj7bwaff4kl0q2x95k0pyd4"; depends=[anticlust CelliD dnet dplyr future_apply igraph infotheo MASS Matrix multimode philentropy RANN reshape2 Rgraphviz Seurat supraHex]; broken = true; };
   gset = derive2 { name="gset"; version="1.1.0"; sha256="1gingqw6la8n7mnl47wpz9sicxca4zi2m8p35n6cnihrniibhajc"; depends=[Hmisc MCMCpack mvtnorm]; broken = true; };
   gtcorr = derive2 { name="gtcorr"; version="0.2-1"; sha256="1n56zmyv58jwr95p453jb86j82pdnq57gfc8m15jndjc9p31zl0m"; depends=[]; broken = true; };
@@ -22362,7 +22762,6 @@ in with self; {
   hazus = derive2 { name="hazus"; version="0.1"; sha256="1c0ahjdy9di1683nk5k4rmr6rhb66523ny039nyv842rgqdy625j"; depends=[reshape2]; broken = true; };
   hbm = derive2 { name="hbm"; version="1.0"; sha256="0qz28azm91a6pbss1mfc47a21d3q9rs3mmw0kgwc7i2a2m43mysm"; depends=[doParallel foreach Matrix]; broken = true; };
   hcc = derive2 { name="hcc"; version="0.54"; sha256="14b3pamkywb0wsjpbm0wpflcds0b5mfymvgk92rmf6ngz1bkpdbq"; depends=[]; broken = true; };
-  hcci = derive2 { name="hcci"; version="1.0.0"; sha256="11piy1ajg3j3dbh66szzf7lhc3x28fz75ai39vlx0gl5nc2v5zs5"; depends=[]; broken = true; };
   hcp = derive2 { name="hcp"; version="0.1"; sha256="0hhcy70g13kclxv733kgiys7qn5bi28abpkli5n2vj0a58ac333m"; depends=[]; broken = true; };
   hddtools = derive2 { name="hddtools"; version="0.9.4"; sha256="011yhs8c6riimz63pa2am56n5aip2yk5gryx2amvk29pzp1v6my9"; depends=[curl raster readxl rgdal sp tidyr XML zoo]; broken = true; };
   hdlm = derive2 { name="hdlm"; version="1.3.1"; sha256="1zl6bksw0apkmn5shf8qjpxjyx6vb40dc4m4db76hhn5nhcp10ic"; depends=[foreach glmnet iterators MASS Matrix]; broken = true; };
@@ -22373,6 +22772,7 @@ in with self; {
   helda = derive2 { name="helda"; version="1.1.5"; sha256="0wza0l52l4ijpasrm3czfncajvcc3p2y2ljmp61xxmn38hhvqyk9"; depends=[dplyr ggplot2 rlang sqldf stringr]; broken = true; };
   hergm = derive2 { name="hergm"; version="4.1-10"; sha256="04vr5mmsr39rpjnans8xwp1z304rd3hi5za7qhjv7dn5s8c8pw9h"; depends=[ergm igraph intergraph latentnet Matrix mlergm network Rcpp sna stringr]; broken = true; };
   heritEWAS = derive2 { name="heritEWAS"; version="0.2.0"; sha256="0yss9vf2m9szq8xi5i2nhf85mfvzvhv6c1f4kvvb2z9lmaicjni5"; depends=[]; broken = true; };
+  hexFinder = derive2 { name="hexFinder"; version="0.8.2"; sha256="184fv8xbgaygsb8bxd0gzi1r5girc2i0s8816i7y5pb1ps8bqvzp"; depends=[ggplot2 glue hexSticker httr2 jsonlite magick pkgsearch purrr stringr]; broken = true; };
   hhcartr = derive2 { name="hhcartr"; version="1.0.0"; sha256="104xy3ihpi031pyzifnpc0jfq68gsbc12gzv6hp1vjrgy0nqw5l1"; depends=[bookdown captioner checkmate DiagrammeR DiagrammeRsvg ggplot2 hash Matrix rsvg]; broken = true; };
   hiPOD = derive2 { name="hiPOD"; version="1.0"; sha256="1i15ickz2s0kffh99qq30pl5hsl0lbj0kp55jnbv4x72hndzhmla"; depends=[rgl]; broken = true; };
   hier_part = derive2 { name="hier.part"; version="1.0-6"; sha256="15wlpb2rsn6am8galsbjiy4psp78nlv1x2hz3cnqbwj508w6gsj0"; depends=[betareg gtools MASS]; broken = true; };
@@ -22381,6 +22781,7 @@ in with self; {
   hierbase = derive2 { name="hierbase"; version="0.1.2"; sha256="1rsyjlwa8x5n83ymwv7qm373k3y7jfp64g717xd1jmn9vrmm052b"; depends=[glmnet hdi SIHR]; broken = true; };
   hiertest = derive2 { name="hiertest"; version="1.1"; sha256="17maf1w4vkqknxff3f00fzv136j3dbbigyzl4vq4sln9j27w10r3"; depends=[]; broken = true; };
   highD2pop = derive2 { name="highD2pop"; version="1.0"; sha256="1s4v6m2d3vzvxsgmjzczv1zj3kv3ygvv6gbkkbjwsdhkvc1rdmf0"; depends=[fastclime]; broken = true; };
+  highSCREEN = derive2 { name="highSCREEN"; version="0.4"; sha256="1nd4jayfhz89kpk4i7s3n3wlza1ik4w3gspplnjmfz951f8i3wlg"; depends=[gplots]; broken = true; };
   hillmakeR = derive2 { name="hillmakeR"; version="0.2"; sha256="1baynibgn4xqmpsxna8irggxvdc484mq5nza00rwg58vh1bc7wzq"; depends=[]; broken = true; };
   histry = derive2 { name="histry"; version="0.2.4"; sha256="01rdpzkfq7nyiq1gh0cm89dn3466cmhgfj9x19lhl2yvh8xsdz8x"; depends=[CodeDepends evaluate fastdigest roprov]; broken = true; };
   hit = derive2 { name="hit"; version="0.4.0"; sha256="1vyla7jlg61rlrmqjb1wya404xj90xys175h12qy30paxsl5icqz"; depends=[glmnet Rcpp speedglm]; broken = true; };
@@ -22392,6 +22793,7 @@ in with self; {
   hmma = derive2 { name="hmma"; version="1.1.0"; sha256="1qsvczqq44h46z0nfblv4rarbg64imz8m0jhxdhva27kbzdvqf97"; depends=[bnlearn graph MCMCpack mhsmm Rgraphviz]; broken = true; };
   hoa = derive2 { name="hoa"; version="2.1.4.1"; sha256="152vz6cddphmxvm7vi6f3b7jjpib0nsb6qv2k1wrmfrpvv3hgsxx"; depends=[statmod survival]; broken = true; };
   hockeyR = derive2 { name="hockeyR"; version="1.3.0"; sha256="0nb42c1fbmpmpmc9yjcdrypl5jvlqc2ibrzlvz7n51zwvx4v5gc0"; depends=[dplyr glue httr janitor jsonlite lubridate magrittr padr purrr rvest stringr tidyr tidyselect xgboost zoo]; broken = true; };
+  holdem = derive2 { name="holdem"; version="1.2"; sha256="0mcb4civ4p7apm7kfl88apvb4yznsmn4hggfggmjhs046g6bi2p7"; depends=[]; broken = true; };
   homeR = derive2 { name="homeR"; version="0.3.0"; sha256="0gi383392rs7snb2l9760vkws5hqfikyaj3i7cyby9g1sc2s6yx8"; depends=[]; broken = true; };
   homtest = derive2 { name="homtest"; version="1.0-5"; sha256="1lnqlg3dwq174ic6dbjllysw5fjy5kvvgbl6gvabjmcs66z27fp0"; depends=[]; broken = true; };
   horserule = derive2 { name="horserule"; version="1.0.0"; sha256="0d348pn0ld7lr9lfl1z05905l9kl296j0xic1pib6r5l1c5600r9"; depends=[gbm ggplot2 inTrees MASS mvnfast randomForest RColorBrewer Rdpack]; broken = true; };
@@ -22407,20 +22809,19 @@ in with self; {
   htmltab = derive2 { name="htmltab"; version="0.8.2"; sha256="09hnf339f3hzll7a0shq615h9d6f6xqrcv0c9iid6575m5qsallf"; depends=[httr XML]; broken = true; };
   htmltidy = derive2 { name="htmltidy"; version="0.5.0"; sha256="1djkjff3750fm1sp54kf9cjvsqz2x7ia1ns12h5vqqcvwzfd0701"; depends=[htmltools htmlwidgets Rcpp XML xml2]; broken = true; };
   htree = derive2 { name="htree"; version="2.0.0"; sha256="15bi5c2p4aghihp3k12s78447j2x9hbsaq56b5lc8jmd1vf0jdwb"; depends=[]; broken = true; };
-  httk = derive2 { name="httk"; version="2.3.0"; sha256="1vlv7c1zair8y02y39hmqnnwmmvwb96qcvrhb2bwasi68i15sqm5"; depends=[data_table deSolve ggplot2 magrittr msm mvtnorm purrr Rdpack survey truncnorm]; broken = true; };
   hybridEnsemble = derive2 { name="hybridEnsemble"; version="1.7.9"; sha256="0rvaxvkf72g7ycjpw579kd88p7gyldxcnlvhxijyddvwyx7d7kcy"; depends=[ada AUC doParallel e1071 FNN foreach genalg GenSA glmnet kernelFactory NMOF nnet nnls pso quadprog randomForest reportr Rmalschains ROCR rotationForest rpart soma tabuSearch]; broken = true; };
   hydroApps = derive2 { name="hydroApps"; version="0.1-1"; sha256="1ycv7l2ywwnx2mgklg6rry7n24jyhi4spvp1xl345yvyn9kf15dz"; depends=[nsRFA]; broken = true; };
   hydroMOPSO = derive2 { name="hydroMOPSO"; version="0.1-3"; sha256="14yvsxzlzpisn5hqyqcq1fmqsbj96pqcgyhnj414mj366x6w5qxp"; depends=[hydroTSM lhs randtoolbox xts zoo]; broken = true; };
   hydroPSO = derive2 { name="hydroPSO"; version="0.5-1"; sha256="16gdv19yqla80s9fjmvahfn21jv62zivirzs5ch4zm9db54g6bry"; depends=[data_table Hmisc hydroGOF hydroTSM lattice lhs scatterplot3d sp vioplot zoo]; broken = true; };
   hydrorecipes = derive2 { name="hydrorecipes"; version="0.0.3"; sha256="0if79msr8rn1ylk36sqa7maynz20v4y6q7h6xiqijlbnikm7n502"; depends=[dplyr earthtide fftw generics Rcpp RcppArmadillo RcppParallel recipes rlang tibble tidyr]; broken = true; };
   hydroscoper = derive2 { name="hydroscoper"; version="1.4.1"; sha256="0jhvjmhcprjdjg6a54ic2f4kxfanpgwzzrkyyiggmj5jjg9yfhfw"; depends=[jsonlite pingr readr stringi stringr tibble]; broken = true; };
-  hyper_fit = derive2 { name="hyper.fit"; version="1.1.1"; sha256="1xibiydfkhzsw0yqfc0xfzj4yz8xyxqlvnfpyxg33v5fwp9wap3v"; depends=[LaplacesDemon magicaxis MASS rgl]; broken = true; };
   hyperSMURF = derive2 { name="hyperSMURF"; version="2.0"; sha256="1aczsph6ax5xfd5rfvsd9bmgaq3j2f5f82fx8whrgbin0hxz19d8"; depends=[randomForest unbalanced]; broken = true; };
   hyperbrick = derive2 { name="hyperbrick"; version="1.0"; sha256="1a6l6dlylqm1dxz573rz5zqxn1nk85hcbfdxk0qwkr7z3yzl13c8"; depends=[caTools dfoptim OpenImageR pbapply raster rgdal]; broken = true; };
   hypothesestest = derive2 { name="hypothesestest"; version="1.0"; sha256="0g8sm386m1zm9i3900r62x83wb600cy8hqk7dlvbx6wcgrxg82sm"; depends=[]; broken = true; };
   hzar = derive2 { name="hzar"; version="0.2-5"; sha256="000l4ki3hvznnhkxc5j422h5ifnsfqalv666j48yby1hsf1lc3kg"; depends=[coda foreach MCMCpack]; broken = true; };
   i2dash = derive2 { name="i2dash"; version="0.2.4"; sha256="0silwp4pasry7z1yjhzyw06xpa8021v9bkhinc73i7dzr720ld5v"; depends=[assertive_sets assertive_types flexdashboard glue htmltools knitr magrittr rmarkdown stringi stringr xfun ymlthis]; broken = true; };
   iBATCGH = derive2 { name="iBATCGH"; version="1.3.1"; sha256="0xq4q4kc2f0whrxz1vmi2gca9pxqix2qm4sfkwbch85if2k8l8fj"; depends=[msm Rcpp RcppArmadillo]; broken = true; };
+  iC10 = derive2 { name="iC10"; version="1.5"; sha256="1xq6xv582wxdb0nc2nia3q38155gx8z26idiqyx7h1rjb20hhwdl"; depends=[iC10TrainingData impute pamr]; broken = true; };
   iCiteR = derive2 { name="iCiteR"; version="0.2.1"; sha256="0hbps2q5i7yj6zvqawlayhqqr5iv39yqc0xnk7fvra7rimzc1qid"; depends=[httr]; broken = true; };
   iCluster = derive2 { name="iCluster"; version="2.1.0"; sha256="09j36xv87d382m5ijkhmp2mxaajc4k97cf9k1hb11ksk7fxdqz6r"; depends=[caTools gdata gplots gtools lattice]; broken = true; };
   iDynoR = derive2 { name="iDynoR"; version="1.0"; sha256="01702vl10191mbq2wby1m0y6h8i6y6ic4pa83d27cg3yccsrhziz"; depends=[vegan XML]; broken = true; };
@@ -22458,6 +22859,7 @@ in with self; {
   ino = derive2 { name="ino"; version="1.0.2"; sha256="18pl1scg8lxz0x1r2ksvrlpr7qvwp88bxvwiz4j4w3if5w0i0qhk"; depends=[cli crayon doSNOW dplyr forcats foreach ggplot2 glue mvtnorm optimizeR reshape2 rlang scales]; broken = true; };
   insiderTrades = derive2 { name="insiderTrades"; version="0.0.1"; sha256="1hz2jmghfihbn1dbrr38zlwa0s44gm84pjhhk0yfrnljg9mqf4qy"; depends=[magrittr RCurl stringr]; broken = true; };
   insol = derive2 { name="insol"; version="1.2.2"; sha256="166kgxgzbh55y2qqya6c2si22x0v7asi70im054g6xxwc5187kh3"; depends=[raster]; broken = true; };
+  intSDM = derive2 { name="intSDM"; version="2.0.2"; sha256="01gsq853vxkch69pmgypd4h5yfq1fnawa7qlamxglcxy6zmn3269"; depends=[blockCV geodata ggplot2 giscoR inlabru PointedSDMs R6 rgbif sf terra tidyterra]; broken = true; };
   intdag = derive2 { name="intdag"; version="1.0.1"; sha256="0mb0a1ccc67clfa75b4hl901zdmx7fxw713c4ybx3i5wc2ldl8ph"; depends=[]; broken = true; };
   intePareto = derive2 { name="intePareto"; version="0.1.2"; sha256="0shq97r6x4j7p9vcf855jcvmfhghngbhk5dfqlqqhhcf8ibm2si5"; depends=[biomaRt DESeq2 GenomeInfoDb GenomicAlignments GenomicRanges IRanges rPref Rsamtools]; broken = true; };
   intensity_analysis = derive2 { name="intensity.analysis"; version="0.1.6"; sha256="1ydmn7njqk6i2667zaha8mvfndss4im39czadg1f3z6sndp2lsji"; depends=[diffeR ggplot2 raster reshape2 rgdal]; broken = true; };
@@ -22485,13 +22887,13 @@ in with self; {
   ivfixed = derive2 { name="ivfixed"; version="1.0"; sha256="0a26zrkvz0ffq4zxdx5vhr1nvsi9c15s6gvc1zy2pddjz31x2xi5"; depends=[Formula]; broken = true; };
   ivpack = derive2 { name="ivpack"; version="1.2"; sha256="0cr5acjrn41d3q0b77hlg2jmsbf1msvys9gcavm1blsryg2bc03c"; depends=[AER lmtest sandwich]; broken = true; };
   ivpanel = derive2 { name="ivpanel"; version="1.0"; sha256="0irjmkw3nnd8ssidvj23lr0hihlhd9acsbaznh88lknx53ijc2qv"; depends=[Formula]; broken = true; };
+  ivprobit = derive2 { name="ivprobit"; version="1.1"; sha256="05b5gf5gmi2yrkg61n7w12qlgpnjakd1z8hhqxy6py8hahsf84gm"; depends=[Formula]; broken = true; };
   ivregEX = derive2 { name="ivregEX"; version="1.0"; sha256="0zh3rqvhn8ald6lxv9kywy2v1p0nr9ijv6plhpbxc6k51zzsgyl8"; depends=[AER Formula lmtest sandwich]; broken = true; };
   jSonarR = derive2 { name="jSonarR"; version="1.1.1"; sha256="054q3ly471xa64yyz2as6vkr440ip1y8n5wl6s3zbhqy3bqkdqif"; depends=[jsonlite RCurl]; broken = true; };
   jackknifeKME = derive2 { name="jackknifeKME"; version="1.2"; sha256="0c5shl6s46kz7a623gccqk2plrrf2g29nwr6vbny6009pq3jvzam"; depends=[imputeYn]; broken = true; };
   james_analysis = derive2 { name="james.analysis"; version="1.0.1"; sha256="1b2n4ds4ivfk564z87s2rxjl9j0y4drd3cmyv8jqpccmdvx1137d"; depends=[naturalsort rjson]; broken = true; };
   jaod = derive2 { name="jaod"; version="0.3.0"; sha256="071j3xqk7gzsic1sk8v0pwmqv6pav0nj9vvbskss3l1gczy80dfr"; depends=[crul jsonlite tibble]; broken = true; };
   japanmesh = derive2 { name="japanmesh"; version="0.1.1"; sha256="1p6kssz0q2zjx7yd4x7jf56n62nx4g8gmbc8v2din1mgks4rm614"; depends=[dplyr geosphere lifecycle magrittr purrr rlang sf stringr tibble tidyr units vctrs]; broken = true; };
-  jcolors = derive2 { name="jcolors"; version="0.0.4"; sha256="18dmjcrci0z1xy2kglrarzm0idr9g3nhbbw7f1ijls3i0piqdri6"; depends=[ggplot2 scales]; broken = true; };
   jdx = derive2 { name="jdx"; version="0.1.4"; sha256="0jqf0nkdyv9g4rifzlkls0n64fdcma2yphwl478772jlgfmxm2jb"; depends=[rJava]; broken = true; };
   jgcricolors = derive2 { name="jgcricolors"; version="1.0.0"; sha256="1lg6yzqly5y2cf396b6rvfqplnfyz9v9ay2g4q9m110mng5ln96l"; depends=[ggplot2 knitr markdown RColorBrewer stringr]; broken = true; };
   jjAnno = derive2 { name="jjAnno"; version="0.0.3"; sha256="1xqkkqzdalpzc9d9kibc7b2lfmpzxn84f9y8pl1wjs7ins4dhsck"; depends=[dplyr ggiraphExtra ggplot2 magick magrittr]; broken = true; };
@@ -22509,6 +22911,7 @@ in with self; {
   kerdiest = derive2 { name="kerdiest"; version="1.2"; sha256="16xj2br520ls8vw5qksxq9hqlpxlwmxccfk5balwgk5n2yhjs6r3"; depends=[chron date evir]; broken = true; };
   kernelPSI = derive2 { name="kernelPSI"; version="1.1.1"; sha256="1gnp3ixqmijy6xanlc4l8255biwxmlfyhd3y68arry9rzfjkmxpz"; depends=[CompQuadForm kernlab lmtest pracma Rcpp RcppArmadillo]; broken = true; };
   kernelPhil = derive2 { name="kernelPhil"; version="0.1"; sha256="0pzsknb0ibm3v0ibfaklb4g2mx7zrva4m29356cirwd29nmd8bqw"; depends=[benchmarkme directlabels dplyr ggplot2 gridExtra Hmisc pbapply reshape2 rgdal wordspace]; broken = true; };
+  kernstadapt = derive2 { name="kernstadapt"; version="0.0.2"; sha256="0hbzc0xqlgs3kbblm247hkaic7s9a5slz22slh5dz9ddgfdy1z21"; depends=[misc3d sparr spatstat_explore spatstat_geom spatstat_random spatstat_utils]; broken = true; };
   kineticF = derive2 { name="kineticF"; version="1.0"; sha256="1k54zikgva9fw9c4vhkc9b0kv8sq5pmc962s8wxr6qv97liv9p46"; depends=[circular lqmm MASS plotrix sp splancs]; broken = true; };
   kmcudaR = derive2 { name="kmcudaR"; version="1.1.0"; sha256="16dkv9ag5375zc23nqakbg7v6knxvh1pips9rjsls0d7rw2bg1bs"; depends=[Rcpp RcppEigen]; broken = true; };
   kmlShape = derive2 { name="kmlShape"; version="0.9.5"; sha256="1p35ihjq84jnzq78yksdblc0c1qcn13f8n4khddsxcqvk3a44xb1"; depends=[class kml lattice longitudinalData]; broken = true; };
@@ -22528,7 +22931,6 @@ in with self; {
   lass0 = derive2 { name="lass0"; version="1.1.0"; sha256="01fafgyhi3fw8ldjw2gf0z9w1si7il3ailwm197fxmw4wqgys9fl"; depends=[doRNG foreach ismev lpSolve]; broken = true; };
   lasso2 = derive2 { name="lasso2"; version="1.2-22"; sha256="1l87djh539m444p5nl9975dd3v5nc7j8af9rj4xr54h5d0mbcbjv"; depends=[]; broken = true; };
   lassoscore = derive2 { name="lassoscore"; version="0.6"; sha256="1i3i07da8sw9w47rcflhylz8zxvzkyycbc1a4gf6hbcpp21rqd7d"; depends=[glasso glmnet Matrix]; broken = true; };
-  latentFactoR = derive2 { name="latentFactoR"; version="0.0.4"; sha256="0kgzgympcfp6l4jysccrlxrbmqasz1v95wkmfsw8qgi7dzfsgywc"; depends=[BBmisc EGAnet fspe googledrive ineq Matrix mlr mvtnorm psych qgraph rstudioapi xgboost]; broken = true; };
   latticeDensity = derive2 { name="latticeDensity"; version="1.2.6"; sha256="0l9ypdpy09nnmanj2gvaxzj79s8d9iqwy6rv0rig5fwbqv1y6135"; depends=[sf sp spam spatialreg spatstat spatstat_geom spdep splancs]; broken = true; };
   lavaan_survey = derive2 { name="lavaan.survey"; version="1.1.3.1"; sha256="133hpy8s00y6jzwwzl9brdh70w26jycdm3n1c6bcryghwh3ai4xr"; depends=[lavaan MASS survey]; broken = true; };
   layer = derive2 { name="layer"; version="0.0.1"; sha256="0mmijkk4ppbmhlp6ah88a9v3iwdd9j6yw7ff8kk7p1iw63qkiyxi"; depends=[dplyr ggnewscale ggplot2 raster scico sf stars]; broken = true; };
@@ -22553,6 +22955,7 @@ in with self; {
   libsoc = derive2 { name="libsoc"; version="0.7.3"; sha256="0baglknb67gmzr4cimlvz44f11np8glcdjdgs3jy8qlz0c8pm95p"; depends=[]; broken = true; };
   libstableR = derive2 { name="libstableR"; version="1.0.2"; sha256="1gkcgbc8a7ks9x8mqmlz98hk55q3qy62izam7csz1s0r5dzsyqcr"; depends=[Rcpp RcppGSL]; broken = true; };
   lift = derive2 { name="lift"; version="0.0.2"; sha256="0ynsyl6lw7z7bvwzk2idgxzzqji5ffnnc3bll9h4gwdw666g7fln"; depends=[]; broken = true; };
+  liger = derive2 { name="liger"; version="2.0.1"; sha256="121ipwznm40x2xhhlxd20385va4nmvgni5dg24lbhyfn5sb3dsy1"; depends=[matrixStats Rcpp RcppArmadillo]; broken = true; };
   likeLTD = derive2 { name="likeLTD"; version="6.3.0"; sha256="1mjf4667xd9pf2684d7vqaj54l5s9pgljn4vkfp32wzbfknq6y8r"; depends=[DEoptim gdata ggplot2 gtools rtf]; broken = true; };
   limitplot = derive2 { name="limitplot"; version="1.2"; sha256="0wj1xalm80fa5pvjwh2zf5hpvxa3r1hnkh2z9z285wkbrcl0qfl2"; depends=[]; broken = true; };
   linLIR = derive2 { name="linLIR"; version="1.1"; sha256="1v5bwki5j567x2kndfd5nli5i093a33in31025h9hsvkbal1dxgp"; depends=[]; broken = true; };
@@ -22573,7 +22976,9 @@ in with self; {
   lmvar = derive2 { name="lmvar"; version="1.5.2"; sha256="0wrny8yzk5y4mzpri6xv5wibbnbaxm0195lcbk5jrl5l5gs99bn6"; depends=[Matrix matrixcalc maxLik]; broken = true; };
   loadflux = derive2 { name="loadflux"; version="0.0.2"; sha256="08lbpd0nwwck36bkklmqx62lyj9p1ywwk80v1qx7f6zhgfjx8pj4"; depends=[dplyr dygraphs ggplot2 lubridate rlang tidyr tsibble xts zoo]; broken = true; };
   loadr = derive2 { name="loadr"; version="0.1.3"; sha256="01nsjsv7c8grsizfisczqwjrz5saff0pgn7716ig4i8nzargvz7a"; depends=[]; broken = true; };
+  loe = derive2 { name="loe"; version="1.1"; sha256="1n16pgfxg9vcn729xxjbbvavg2ywbdcch9v2ph8nv3z7psc0q46c"; depends=[MASS]; broken = true; };
   logcondens_mode = derive2 { name="logcondens.mode"; version="1.0.1"; sha256="1i2c2prk5j863p3a3q3xnsv684igfi5czz3dib7zfjldpf0qyaq7"; depends=[distr logcondens]; broken = true; };
+  longCatEDA = derive2 { name="longCatEDA"; version="0.31"; sha256="0dji41lsknfwmgb2fczzm37dm97wvi45rh878w7pwlzwdh9vq8va"; depends=[]; broken = true; };
   loop = derive2 { name="loop"; version="1.1"; sha256="1gr257fm92rfh1sdhsb4hy0fzwjkwvwm3v85302gzn02f86qr5dm"; depends=[MASS]; broken = true; };
   loose_rock = derive2 { name="loose.rock"; version="1.2.0"; sha256="13p3mp8m2in3cbcwgj42hgzrwxmgalc2v0z3r1zn1n77iqjvcd7r"; depends=[digest dplyr futile_options ggplot2 httr MASS reshape2]; broken = true; };
   lpbrim = derive2 { name="lpbrim"; version="1.0.0"; sha256="1cbkzl23vgs9hf83ggkcnkmxvvj8867k5b9vhfdrznpqyqv1f2gp"; depends=[Matrix plyr RColorBrewer]; broken = true; };
@@ -22604,11 +23009,11 @@ in with self; {
   marl = derive2 { name="marl"; version="1.0"; sha256="0rndnf3rbcibv3gsrw1kfp5zhg37cw9wwlz0b7dbwprd0m71l3pm"; depends=[]; broken = true; };
   mason = derive2 { name="mason"; version="0.3.0"; sha256="1x5wiagb1sy5gkp0xkbr1jzhrjg1c2bqdh4hy6igwcnws2cbhxyr"; depends=[broom dplyr magrittr purrr rlang tibble tidyr tidyselect]; broken = true; };
   matR = derive2 { name="matR"; version="0.9.1"; sha256="1qw2vqmpq7gc3dmr9r000ccjj7xa0h82waxnvryz3l17ggryyjjm"; depends=[BIOM_utils MGRASTer]; broken = true; };
+  match2C = derive2 { name="match2C"; version="1.2.4"; sha256="05g0g471dfxrfxq9a5l5zgj16m4kh39wfihjj8fdd9b7qxji7ps8"; depends=[ggplot2 mvnfast rcbalance Rcpp]; broken = true; };
   matchbook = derive2 { name="matchbook"; version="1.0.7"; sha256="0xfqg8z2zkn215kqmjjkqdwrgsk7cn4jdpxfgd6razhcbvflg48j"; depends=[]; broken = true; };
   matie = derive2 { name="matie"; version="1.2"; sha256="1ymx49cyvz63imqw5n48grilphiqvvdirwsrv82p7jgxdyav2xv0"; depends=[cba dfoptim gplots igraph mvtnorm seriation]; broken = true; };
   matric = derive2 { name="matric"; version="0.2.0"; sha256="16mwn81g6s10fjyc0f2npsck3aggh643xmcwqy49kyf5jvs188c5"; depends=[arrow dplyr foreach furrr future ggplot2 glue jsonlite logger magrittr purrr readr rlang stringr tibble tidyr yardstick]; broken = true; };
   matrixpls = derive2 { name="matrixpls"; version="1.0.13"; sha256="0m9gqq5waicj3znlsyz50cj6w1x6rkvfwknavhxid8r4p9h891ak"; depends=[assertive lavaan MASS matrixcalc psych]; broken = true; };
-  mauricer = derive2 { name="mauricer"; version="2.5.2"; sha256="1zd68dzbbcck0y7bk6dw3yp6v9rh824cp3f0vza6y7lav40q1p2v"; depends=[beastier stringr]; broken = true; };
   maxTPR = derive2 { name="maxTPR"; version="0.1.0"; sha256="13x5rz0mfha5pzahkk4x67ncz9v77sa690cyl6wigwsldsrvzr3h"; depends=[aucm Rsolnp]; broken = true; };
   maxadjAUC = derive2 { name="maxadjAUC"; version="0.1.0"; sha256="04zdaqmavhhrj63s2k5pqncvlzbfnxan7r0fagfka9dypwwcl5qm"; depends=[aucm Hmisc Rsolnp survival]; broken = true; };
   mbclusterwise = derive2 { name="mbclusterwise"; version="1.0"; sha256="1ilqaxcxf1k3ck910s0xqwnp88w8ag5rn1dpvaa1i7jlcldsbnhp"; depends=[ade4 doParallel foreach kknn]; broken = true; };
@@ -22630,6 +23035,7 @@ in with self; {
   meaRtools = derive2 { name="meaRtools"; version="1.0.4"; sha256="1nxyvdq4670696mhg0svxxlvk9hnr8szai8b18pw6754kmw1bjvn"; depends=[emdist ggplot2 gridExtra gtools lattice plyr Rcpp reshape2]; broken = true; };
   meditate = derive2 { name="meditate"; version="0.1.3"; sha256="02mgnbxlvi73zpnghlcx89jvri8144cf0bzq0hrbhh2nq2c1sdjg"; depends=[audio checkmate deldir wesanderson]; broken = true; };
   medmod = derive2 { name="medmod"; version="1.0.0"; sha256="1f7bzdcjnbz9izlfblxcaa85qxx8kzn62qgjd3qlb7jl7mdy5q54"; depends=[ggplot2 jmvcore lavaan R6]; broken = true; };
+  medrxivr = derive2 { name="medrxivr"; version="0.0.5"; sha256="19gakl39n2jch84sv35jkk4g2c0k4h3ch3l3hz1w5p94mn2jlgqr"; depends=[bib2df curl data_table dplyr httr jsonlite lubridate progress purrr rlang stringr tibble vroom]; broken = true; };
   mergedblocks = derive2 { name="mergedblocks"; version="1.1.0"; sha256="0hgfyb99hdph4rx32072v40j3z56bwl8lvpxqmms783b997alaml"; depends=[randomizeR]; broken = true; };
   met = derive2 { name="met"; version="0.1.0"; sha256="0714103xzc4n178307czxmcv7ygjiigjr9b6xnj240ljp7qmln19"; depends=[DiPs]; broken = true; };
   metScanR = derive2 { name="metScanR"; version="1.2.3"; sha256="1v7zrxj3wspx6f5n5s75skcygbf3r85rn4p0z9iwbrbrgxwi4qgs"; depends=[geosphere leaflet matlab plyr RCurl]; broken = true; };
@@ -22640,14 +23046,17 @@ in with self; {
   metacor = derive2 { name="metacor"; version="1.0-2.1"; sha256="0y3z7jbhw5c2dbn9fx9wlw1311irjc2xvnm5hnaixbbj53qz24n0"; depends=[gsl rmeta]; broken = true; };
   metaplotr = derive2 { name="metaplotr"; version="0.0.3"; sha256="01iala6cxsxv30fnlh80md5mpy3ksd2piw90zcls8f68g1c6v1jy"; depends=[ggplot2 gridExtra]; broken = true; };
   meteogRam = derive2 { name="meteogRam"; version="1.0"; sha256="167gyxjnl4dyfqs3znv8sdpkvpqdxzdqi1g730s30gycrm9snap9"; depends=[ggplot2 RadioSonde]; broken = true; };
+  metricsgraphics = derive2 { name="metricsgraphics"; version="0.9.0"; sha256="1zbx82b34y0rr4w7rzvyc1nzk95w6cdkg0j1kkshbmkvplq6v9i4"; depends=[htmltools htmlwidgets magrittr]; broken = true; };
   mfbvar = derive2 { name="mfbvar"; version="0.5.6"; sha256="1wv46h6cr0xnvr8dxymx362skf7nf77yw84y6g48rj9mbq8kkkcj"; depends=[dplyr ggplot2 GIGrvg lubridate magrittr Rcpp RcppArmadillo RcppParallel RcppProgress stochvol tibble zoo]; broken = true; };
   mfe = derive2 { name="mfe"; version="0.1.5"; sha256="1pw9gw9bd778s57dyjwbmrmsla4m8dkf8g49gplv4zrsvlgsgbr3"; depends=[cluster clusterCrit e1071 ECoL infotheo MASS rpart rrcov]; broken = true; };
   mgpd = derive2 { name="mgpd"; version="1.99"; sha256="0cxpgza9i0hjm5w1i5crzlgh740v143120zwjn95cav8pk8n2wyb"; depends=[corpcor evd fields numDeriv]; broken = true; };
+  mhurdle = derive2 { name="mhurdle"; version="1.3-0"; sha256="1in07zk29z5fhrg75wl1fwbrsny4ihjnrqyh2kz1bd448p10f295"; depends=[Formula generics margins maxLik numDeriv prediction Rdpack survival truncreg]; broken = true; };
   miRada = derive2 { name="miRada"; version="1.13.8-8"; sha256="1m6rm65pv4r16r0s5ih69nr3v2rnpsvpdpk07pi7k4f7v9wck71v"; depends=[]; broken = true; };
   miceMNAR = derive2 { name="miceMNAR"; version="1.0.2"; sha256="1s607icaf3c25mn8xdi3zkzmm8m7qd9a6vjdlz5j7ig2gc9f2y2d"; depends=[GJRM mice mvtnorm pbivnorm sampleSelection]; broken = true; };
   microSTASIS = derive2 { name="microSTASIS"; version="0.1.0"; sha256="09zyf80l964lfil56vln70i0r2d8ry2ffx4zz3f3xcka22m94r78"; depends=[crayon fmsb future future_apply ggplot2 ggside progressr reshape2 stringr]; broken = true; };
   microclustr = derive2 { name="microclustr"; version="0.1.0"; sha256="04xn8p4wgmxq1jbxawq0rhx6l7y1kddlbdfid8zsi4x4arkz7hvp"; depends=[Rcpp]; broken = true; };
   microdemic = derive2 { name="microdemic"; version="0.6.0"; sha256="1w4zh0vagnar95l5b8cgmcvp8q7vk2iba5g8d8g2ywynqiqcx5fc"; depends=[crul data_table httpcode jsonlite tibble]; broken = true; };
+  microsamplingDesign = derive2 { name="microsamplingDesign"; version="1.0.8"; sha256="0swaqvzqbmlk9j2gr8z7x7xrkr38xndprg9k66whzcigxfh8nhiz"; depends=[abind deSolve devtools ggplot2 gridExtra gtools knitr MASS matrixcalc matrixStats plyr Rcpp RcppArmadillo readr reshape2 shiny stringr]; broken = true; };
   microservices = derive2 { name="microservices"; version="0.2.0"; sha256="1yrjjlqmmbbwjd34pm06d6v88b63m2mx37flaw4zpkqni6rsvmwq"; depends=[config desc dplyr fs glue purrr withr]; broken = true; };
   migrbc = derive2 { name="migrbc"; version="2.0.9"; sha256="1nbxdm70a9lvbp4sw78719hdpbqnziw1y7r4xk8i390q2c195am1"; depends=[dplyr futile_logger lubridate Rcpp stringr]; broken = true; };
   milorGWAS = derive2 { name="milorGWAS"; version="0.6"; sha256="1gl4lg3m11hkj47g7zqq0xavxzj5z1vjbb88pf03r7200qnb5ff8"; depends=[gaston Rcpp RcppEigen]; broken = true; };
@@ -22658,9 +23067,12 @@ in with self; {
   minxent = derive2 { name="minxent"; version="0.01"; sha256="1a0kak4ff1mnpvc9arr3sihp4adialnxxyaacdgmwpw61wgcir7h"; depends=[]; broken = true; };
   mipred = derive2 { name="mipred"; version="0.0.1"; sha256="0kijn2xj0dh28rm2sjgd8j1a3c5avc3fjfvvcmzfasvxqdjflv6j"; depends=[mice]; broken = true; };
   miraculix = derive2 { name="miraculix"; version="0.9.23"; sha256="0i08v5hq43296k3sa7akpq4h5dmvpkgn7cfpqwdyp0qaxkqk0k0s"; depends=[RandomFieldsUtils]; broken = true; };
+  mirai_promises = derive2 { name="mirai.promises"; version="0.4.1"; sha256="0yi9ks737b3afdbpj088lh33h2hb9bx993j2ag0klbwsfz2dffmi"; depends=[nanonext promises]; broken = true; };
   miscor = derive2 { name="miscor"; version="0.1-1"; sha256="1vn0q0i2f1szjywddb7h7krpbf0qch6gmbzs03m4zb03xd70983b"; depends=[]; broken = true; };
   mise = derive2 { name="mise"; version="0.1.0"; sha256="1ydbm76w3y0p5h82shxjblwlzbrmzwx0bgq9w2axjwz2nx8jfw0a"; depends=[]; broken = true; };
   misha = derive2 { name="misha"; version="4.2.8"; sha256="0s4c3ryjg7l4r217x0xdbw2ha22h3gbcl2s70hwqzd9qmikjvzdn"; depends=[curl magrittr]; broken = true; };
+  misreport = derive2 { name="misreport"; version="0.1.1"; sha256="1f78zcw4cg51mjvflhwd64hip2gj8x9ng1mhh4w43yv3x8hmbd6h"; depends=[mvtnorm numDeriv VGAM]; broken = true; };
+  mistat = derive2 { name="mistat"; version="2.0.4"; sha256="1hr1gps0w3mfphnc221c6k7h7rwk1f7g6nxkxkb9g8sdacr7ijhh"; depends=[]; broken = true; };
   mixComp = derive2 { name="mixComp"; version="0.1-2"; sha256="01zgf31mmnjnwwji9yadfhwa49xy4i3wf0f5glifmpnvmr6d7y1d"; depends=[boot cluster expm kdensity matrixcalc Rsolnp]; broken = true; };
   mixEMM = derive2 { name="mixEMM"; version="1.0"; sha256="0344ay1avi37kvh5w9bknayx67yh7rflj6zhw68d2888v7cbghjy"; depends=[]; broken = true; };
   mixRasch = derive2 { name="mixRasch"; version="1.1"; sha256="1r067pv7b54y1bz8p496wxv4by96dxfi2n1c99gziqf5ramx3qzp"; depends=[]; broken = true; };
@@ -22677,8 +23089,9 @@ in with self; {
   mlmc = derive2 { name="mlmc"; version="1.0.0"; sha256="01h7w0ajyg3bccynlpbi3yjpy089wczbfbajpg6yw5v4dppw7k7a"; depends=[ggplot2 Rcpp]; broken = true; };
   mlmmm = derive2 { name="mlmmm"; version="0.3-1.2"; sha256="1m5ziiqs3ll1xjm1yf7x4sdc910jypn3kjnbadf95xxkvqmfrsqq"; depends=[]; broken = true; };
   mlr3proba = derive2 { name="mlr3proba"; version="0.4.9"; sha256="1qhxwx881b482wp85chw0s9390kwyhq32bjr4rlpscb53ppqx6v5"; depends=[checkmate data_table distr6 mlr3 mlr3misc paradox R6 Rcpp survival survivalmodels]; broken = true; };
-  mlr3resampling = derive2 { name="mlr3resampling"; version="2024.1.8"; sha256="0fzh0b3bpg2llqgl0bm7v72h0ffy3dgr310gw8lsgv28b9i7sc1g"; depends=[checkmate data_table mlr3 mlr3misc paradox R6]; broken = true; };
+  mmeta = derive2 { name="mmeta"; version="3.0.0"; sha256="088mynadrcwrw7g31f6p0g3ykq2q44mwsbpp056v8s19hq5pxjn1"; depends=[aod ggplot2]; broken = true; };
   mmm2 = derive2 { name="mmm2"; version="1.2"; sha256="1h9pn5s3jjs4bydrr1qysjb4hv7vs4h3m7mvi22ggs2dzyz3b298"; depends=[gee]; broken = true; };
+  mmpf = derive2 { name="mmpf"; version="0.0.5"; sha256="1w1ll1l7yzwb1wmlrcfpgqyzni7yb20kxy422y867hx2ndxlfwpz"; depends=[checkmate data_table]; broken = true; };
   mnj = derive2 { name="mnj"; version="1.0"; sha256="05rz6krcq56zqvvaz3myf1aki2z635g2zrqyl25n2da1cvyjwdzq"; depends=[rpart]; broken = true; };
   mnlogit = derive2 { name="mnlogit"; version="1.2.6"; sha256="0dfwpkl8g7ap5xr48smiv8vdbamd2r1liy9nwpsn0kcsr9cj65n9"; depends=[Formula lmtest mlogit]; broken = true; };
   mnmer = derive2 { name="mnmer"; version="0.99.1"; sha256="0smy7n016nax4wng8pikmgwmbkrhykc2hzvh60hwfbqlbfda66yj"; depends=[Biostrings cpp11]; broken = true; };
@@ -22687,8 +23100,8 @@ in with self; {
   modchart = derive2 { name="modchart"; version="0.5"; sha256="1mn8zywqhxhvy0k6mn0jsn90g9yb6sxyv34syzzxrxs2kdzx5szg"; depends=[collapsibleTree dplyr DT dygraphs highcharter htmlwidgets jsonlite lazyeval leaflet magrittr networkD3 plotly RColorBrewer rgdal shiny shinyBS shinydashboard shinydashboardPlus sp sparkline sunburstR treemap]; broken = true; };
   modcmfitr = derive2 { name="modcmfitr"; version="0.1.0"; sha256="1d6fi7pc10w2a97h1prhkg5cvzmxjp11c5bwrz90zry0m8anwjyh"; depends=[gtools nloptr]; broken = true; };
   modelROC = derive2 { name="modelROC"; version="1.0"; sha256="0iyx7c98ym7dy6pfssj7474h9wjpzjwy0fyc5bnqyi1lmjgd508k"; depends=[do ggplot2 ROCit survivalROC tmcn]; broken = true; };
-  modelgrid = derive2 { name="modelgrid"; version="1.1.1.0"; sha256="1z6g0akczry7vldkk6anfq572zbsfzbd6qnyllgjpbxhy3rrrq0r"; depends=[caret dplyr ggplot2 lattice magrittr purrr]; broken = true; };
   modelplotr = derive2 { name="modelplotr"; version="1.1.0"; sha256="0i1ssfcyl97zaxc9khdngrmsq9ydrmgv2nd7c6kc6i9z93jbkk4k"; depends=[dplyr ggfittext ggplot2 gridExtra magrittr RColorBrewer rlang scales]; broken = true; };
+  modeltime_ensemble = derive2 { name="modeltime.ensemble"; version="1.0.3"; sha256="17mnz2x7i540gzwpqca106saafvsns9ar1q09pnnzkx2m4xv322i"; depends=[cli doParallel dplyr foreach generics glue magrittr modeltime modeltime_resample parsnip purrr recipes rlang rsample stringr tibble tictoc tidyr timetk tune workflows yardstick]; broken = true; };
   modeltime_gluonts = derive2 { name="modeltime.gluonts"; version="0.1.0"; sha256="1nivqpdyr2s6q70bixna0a18gbhrf1r20vm0gj8b51idjignwpp7"; depends=[dplyr forcats fs glue magrittr modeltime parsnip purrr reticulate rlang stringr tibble tidyr timetk]; broken = true; };
   modeltime_h2o = derive2 { name="modeltime.h2o"; version="0.1.1"; sha256="0rg7ha1zy0a1fbwrljsglfnfgkl747hjga8xajlzyrczhrmh4vnk"; depends=[dplyr fs glue h2o magrittr modeltime parsnip purrr rlang stringr tibble tidyr timetk]; broken = true; };
   modiscloud = derive2 { name="modiscloud"; version="0.14"; sha256="0vwhfp50yb21xkanvzk983vk0laflv60kj1ybx3fydfljwqx0rwj"; depends=[date raster rgdal sfsmisc sp]; broken = true; };
@@ -22715,11 +23128,13 @@ in with self; {
   mppa = derive2 { name="mppa"; version="1.0"; sha256="06v6vq2nfh4b407x2gyvcp5wbdrcnk3m8y58akapi66lj8xplcx4"; depends=[]; broken = true; };
   mptools = derive2 { name="mptools"; version="1.0.1"; sha256="1g4fbfwxv9hir0jn22nh9854blgkh0b5jan3lv0888izj4isa1hc"; depends=[animation lattice latticeExtra raster rasterVis sp viridis zoo]; broken = true; };
   mregions = derive2 { name="mregions"; version="0.1.8"; sha256="16z610j01nf9k1hamsxydk2j6qdqpbyj29b5hm9r3fi8fm3smhd6"; depends=[data_table geojson geojsonio geojsonsf httr jsonlite rappdirs sf sp tibble xml2]; broken = true; };
+  ms_sev = derive2 { name="ms.sev"; version="1.0.4"; sha256="1sr2rgiskgwjhwif70qj6ga8i8kg4bh342hff66b2a54rxrchmw5"; depends=[]; broken = true; };
   msSurv = derive2 { name="msSurv"; version="1.2-2"; sha256="02qm3mq17d2yj5mbz6gapd3zfi1wmiad5hpyimcb39impk43n2hf"; depends=[class graph lattice]; broken = true; };
   msaeDB = derive2 { name="msaeDB"; version="0.2.1"; sha256="0ccvg41d28qjbknhsamw95nq8fdibmz03pwblddkqywfl5yarii3"; depends=[magic MASS]; broken = true; };
   msaeOB = derive2 { name="msaeOB"; version="0.1.0"; sha256="05m6r5jk21l9d2j546h7vf8caic83nm0y55zfamr94z4q221486x"; depends=[abind magic MASS Matrix]; broken = true; };
   msaeRB = derive2 { name="msaeRB"; version="0.2.1"; sha256="0mpyirvaflmp6gc35kbz1rw5ydxxdgfji3j9c8hjrjqz6759birb"; depends=[abind magic MASS Matrix]; broken = true; };
   msap = derive2 { name="msap"; version="1.1.8"; sha256="0z5lm782jjb9w1h5vgz8bmxjdcrq9zb3xp1w5cb479jjc7krlgg3"; depends=[ade4 ape]; broken = true; };
+  msda = derive2 { name="msda"; version="1.0.3"; sha256="0lq6mqhksd35qpwl6ira72mwdzlpaxiv1wzms441r2fh1j0957dp"; depends=[MASS Matrix]; broken = true; };
   msgl = derive2 { name="msgl"; version="2.3.9"; sha256="0793d12cd1mcnr97byhfwpnvm329w78f56n7dcs4116hlizp8l9h"; depends=[BH Matrix Rcpp RcppArmadillo RcppProgress sglOptim]; broken = true; };
   mssm = derive2 { name="mssm"; version="0.1.6"; sha256="08bgfli7kvvsfpvlvlcdxp301gy6wggidlgllarxjwi06v9c8as5"; depends=[nloptr Rcpp RcppArmadillo testthat]; broken = true; };
   mssqlR = derive2 { name="mssqlR"; version="1.0.0"; sha256="0qdnm7cx9cg14vfcnkmcjqr1jpxsw8xlrbnxldvzz44mzv2n878l"; depends=[magrittr RODBC]; broken = true; };
@@ -22736,6 +23151,7 @@ in with self; {
   multicon = derive2 { name="multicon"; version="1.6"; sha256="16glkgnm4vlpxkhf1xw1gl1q10yavx9479i21v29lldag35z8pqx"; depends=[abind foreach mvtnorm psych sciplot]; broken = true; };
   multicross = derive2 { name="multicross"; version="2.1.0"; sha256="17hk03wsms9ij6hp6dw77cvvngdb5i66is6pcl1q21pyp327zqi6"; depends=[crossmatch MASS Matrix nbpMatching]; broken = true; };
   multifluo = derive2 { name="multifluo"; version="1.1"; sha256="1hnh1gj6lfnh2fn0v064bszydgsr6p9f7p8yxyw5rdxfrxymiw09"; depends=[agricolae ellipse imager]; broken = true; };
+  multigroup = derive2 { name="multigroup"; version="0.4.5"; sha256="1d3m2c3md9iiv1gfqfyik1xj3fsas85bmf2vbkaks8ljxa42f55k"; depends=[MASS]; broken = true; };
   multilateral = derive2 { name="multilateral"; version="1.0.0"; sha256="13zp2357vqaj09m6af8gzjgf74983icikbnn11z18r8c3wb5kngy"; depends=[assertive data_table fastmatch MatrixModels yaml]; broken = true; };
   multinbmod = derive2 { name="multinbmod"; version="1.0"; sha256="1c4jyzlcjkqdafj9b6hrqp6zs33q6qnp3wb3d7ldlij7ns9fhg71"; depends=[]; broken = true; };
   multinomRob = derive2 { name="multinomRob"; version="1.8-6.1"; sha256="1fdjfk77a79fy7jczhpd2jlbyj6dyscl1w95g64jwxiq4hsix9s6"; depends=[MASS mvtnorm rgenoud]; broken = true; };
@@ -22750,14 +23166,15 @@ in with self; {
   mvprpb = derive2 { name="mvprpb"; version="1.0.4"; sha256="1kcjynz9s7vrvcgjb9sbqv7g50yiymbpkpg6ci34wznd33f7nrxm"; depends=[]; broken = true; };
   mvrtn = derive2 { name="mvrtn"; version="1.0"; sha256="0k0k76wk5zq0cjydncsrb60rdhmb58mlf7zhclhaqmli1cy697k8"; depends=[]; broken = true; };
   mwaved = derive2 { name="mwaved"; version="1.1.8"; sha256="092sqd9harx289bgghw9x495llzhab0vkgkjka5jhi4ad1rfk3vh"; depends=[Rcpp shiny]; broken = true; };
+  mwcsr = derive2 { name="mwcsr"; version="0.1.8"; sha256="0vyvxw708c2m832jwsnfd8jfig5qbnixfl85frpch1c9qqp3238p"; depends=[igraph Rcpp]; broken = true; };
   myepisodes = derive2 { name="myepisodes"; version="1.1.1"; sha256="0xk9bwgpl630nhc8qa2pc0rwqbqk3haxnp78gfxq6sn6z7i44k1p"; depends=[XML]; broken = true; };
   mztwinreg = derive2 { name="mztwinreg"; version="1.0-1"; sha256="1rg6ikaqdrc7q44s3r3km8h45prnvcpzpxd7nxbmh209iz9j19ai"; depends=[mclogit rms]; broken = true; };
   nCDunnett = derive2 { name="nCDunnett"; version="1.1.0"; sha256="0q2db1pixqr0wbx4bd05c98i1p0vgaqsfa1iwjxr08c62a5xhkks"; depends=[]; broken = true; };
   nCal = derive2 { name="nCal"; version="2021.9-12"; sha256="133dpy2rp8sabwdlk0wjxs9rzixzcja73im94qaw26z5xsnaydhf"; depends=[drc gdata gWidgets2 kyotil]; broken = true; };
+  nCopula = derive2 { name="nCopula"; version="0.1.1"; sha256="03qbfvx0lg9prg52fk1jxar2bng2x6scac4g2c64kvp6vmf6x4mv"; depends=[copula Deriv stringi stringr]; broken = true; };
   nCov2019 = derive2 { name="nCov2019"; version="0.4.6"; sha256="00jwywvb4prypn7cvwd1fb29jffvzdmg18axnl9ncncr0xjmvgx3"; depends=[downloader ggplot2 jsonlite RColorBrewer]; broken = true; };
   nFCA = derive2 { name="nFCA"; version="0.3"; sha256="1jyyzagmppm3i7vh3ia4ic0zql1w04f66z81v0zpdihd4cbl5ra7"; depends=[]; broken = true; };
   nVennR = derive2 { name="nVennR"; version="0.2.3"; sha256="035gblc8427v0vq288rib3jfpz5fmcpvqg6nfaijwmbkz3gd41b6"; depends=[Rcpp]; broken = true; };
-  nadiv = derive2 { name="nadiv"; version="2.17.2"; sha256="0v2jw0md4bjn15g6slx2bx7ipr3r0s1zv3frjach3rd7b1bs9z7k"; depends=[Matrix]; broken = true; };
   namedCapture = derive2 { name="namedCapture"; version="2020.4.1"; sha256="0zdw3h3n4qjv9cpidb3g523ld6rrh49l2c1yhfqhk5wb7vddrs46"; depends=[]; broken = true; };
   namespace = derive2 { name="namespace"; version="0.9.1"; sha256="1bsx5q19l7m3q2qys87izvq06zgb22b7hqblx0spkvzgiiwlq236"; depends=[]; broken = true; };
   nanop = derive2 { name="nanop"; version="2.0-6"; sha256="007gdc93pk0vpfmsw7zgfma2k1045n2cxwwsyy276smy0ys9fdhp"; depends=[distrEx rgl]; broken = true; };
@@ -22767,7 +23184,8 @@ in with self; {
   neariso = derive2 { name="neariso"; version="1.0.1"; sha256="1b2gnws75kkqsi8mg9n0zzdaawx57a6zz47cswabj5m6nb09ikh8"; depends=[]; broken = true; };
   needy = derive2 { name="needy"; version="0.2"; sha256="1ixgpnwrg6ph1n5vy91qhl1mqirli9586nzkmfvzjrhdvrm0j5l0"; depends=[]; broken = true; };
   neotoma = derive2 { name="neotoma"; version="1.7.4"; sha256="1fknzp7qg5l5lkfvqfld0x67zj3xmi8vivsg70m47mbpcs92hmcf"; depends=[analogue dplyr httr jsonlite leaflet plyr reshape2 xml2]; broken = true; };
-  netcom = derive2 { name="netcom"; version="2.1.6"; sha256="1i9d7w497qqjkwqvskbm1k5jj03pf84am8jifhhmxmmvd9sk6ldw"; depends=[clue doParallel dplyr expm foreach GenSA ggfortify ggplot2 ggraph igraph magrittr Matrix optimx pdist pracma reshape2 rlang tibble vegan]; broken = true; };
+  neotoma2 = derive2 { name="neotoma2"; version="1.0.3"; sha256="1a7qcpypbr7vakrzl039ckv3cdy040gl6m3jpya1s284r30b12fx"; depends=[assertthat dplyr geojsonsf gtools httr jsonlite leaflet lubridate magrittr progress purrr rlang sf stringr tidyr uuid wk]; broken = true; };
+  netchain = derive2 { name="netchain"; version="0.2.0"; sha256="1skpf1n6a17mjkcxqpl6vrskk04yvqa0v4n2zw9x5r1h46q9m6qk"; depends=[gtools igraph Matrix Rcpp stringr]; broken = true; };
   netgen = derive2 { name="netgen"; version="1.3.2"; sha256="1yqi4rb6w9ipxgbl1j1s2s81cg7nzrn65irn5gs82hsq94d6vv2j"; depends=[BBmisc checkmate ggplot2 igraph lhs mvtnorm stringr]; broken = true; };
   netjack = derive2 { name="netjack"; version="1.2.0"; sha256="060ygb0kxi0gx1ya38cmf5hhyy6jkwq5519azdqhq5i324cwzzm7"; depends=[brainGraph ggplot2 igraph Rdpack]; broken = true; };
   networkTomography = derive2 { name="networkTomography"; version="0.3"; sha256="1hd7av231zz0d2f9ql5p6c95k7dj62hp0shdfshmyfjh8900amw7"; depends=[coda igraph KFAS limSolve plyr Rglpk]; broken = true; };
@@ -22787,17 +23205,20 @@ in with self; {
   nnetpredint = derive2 { name="nnetpredint"; version="1.2"; sha256="1c6s9wm6vhylwv4xhp2hkllw18zj8hdr17ls9vlxm9qs3wx1v48w"; depends=[RSNNS]; broken = true; };
   nntrf = derive2 { name="nntrf"; version="0.1.4"; sha256="1kasj861ln5q93wna1pk6sbjsssy3vpfzvk8jxd0drb17x3brpx8"; depends=[FNN NeuralNetTools nnet pracma]; broken = true; };
   nodeHarvest = derive2 { name="nodeHarvest"; version="0.7-3"; sha256="0nh3g50rk9qzrarpf29kijwkz9v60682i0ag77j2ipyvhhbpwpkc"; depends=[quadprog randomForest]; broken = true; };
+  nomordR = derive2 { name="nomordR"; version="0.1"; sha256="02d5gk5pd4vpd61ys9x81maxjrmbshx1wdv6xxsvafrnz7a7pmks"; depends=[]; broken = true; };
   nontarget = derive2 { name="nontarget"; version="1.9"; sha256="0ndqcr73sja5ks5kdahhakpz9lw3rp26imklagdv4f5agqnb608s"; depends=[enviPat mgcv nontargetData]; broken = true; };
   nontargetData = derive2 { name="nontargetData"; version="1.1"; sha256="07cdbpmn64sg4jfhljdcx503d55azyz58x7nkji044z3jmdryzqw"; depends=[]; broken = true; };
   norgeo = derive2 { name="norgeo"; version="2.3.1"; sha256="1437b49ig7j5c3ympb8mjn0qz43szpmwqd3s8rlqmlfhycnh9maw"; depends=[data_table DBI httr2 magrittr odbc RSQLite writexl]; broken = true; };
   norm2 = derive2 { name="norm2"; version="2.0.4"; sha256="0ahz6x59k00pqalzjc3ajiby1ysmarjssga9amwh9vd6vmzzyfb7"; depends=[]; broken = true; };
   normtest = derive2 { name="normtest"; version="1.1"; sha256="073r2mwfs6c4vqh8921nlyygl0f20nhv997s0iwf00d3jckkc4pp"; depends=[]; broken = true; };
   normwhn_test = derive2 { name="normwhn.test"; version="1.0"; sha256="1kr45bfydk40hgdg24i2f28cdaw65hg9gmsgv4lsvvr2m3r74vi6"; depends=[]; broken = true; };
+  nose = derive2 { name="nose"; version="1.0"; sha256="17l78vmfqc22inq6zaqpnk2m91wp0nfjbbwfcpfqykf8lk9ipqna"; depends=[]; broken = true; };
   notifyR = derive2 { name="notifyR"; version="1.02"; sha256="0jx76ic5r1crcgg0n0yqnka0gwniflfxakh838a98j9wb11wi6h5"; depends=[RCurl rjson]; broken = true; };
   nowcastDFM = derive2 { name="nowcastDFM"; version="1.0.0"; sha256="1g2mngg4r6jl37cv9s8a2a5hlid7n4igdxp3rxk593jnqxl9a0ha"; depends=[dplyr matlab pracma signal]; broken = true; };
   nowcasting = derive2 { name="nowcasting"; version="1.1.4"; sha256="1nj34cbkv1xlhmcfhxs32shv00mz02rp95xj59qkq5by53sx8qwq"; depends=[corpcor DBI httr lubridate magic matlab Matrix RCurl RMySQL vars xts zoo]; broken = true; };
   npm = derive2 { name="npm"; version="1.0.0"; sha256="01v913ylsh895yxkkpyviplcxcc3c90znccvjp7wbflmxxnvrasd"; depends=[assertthat cli crayon erratum]; broken = true; };
   nprcgenekeepr = derive2 { name="nprcgenekeepr"; version="1.0.5"; sha256="1j6pfc694yf1m42a0fhlbh5wdbmgs61fswbw7083h69d2sr2zq05"; depends=[anytime futile_logger htmlTable lubridate Matrix plotrix readxl Rlabkey rlang shiny stringi WriteXLS]; broken = true; };
+  npsr = derive2 { name="npsr"; version="0.1.1"; sha256="1fzvilzjg9z05991sr1s1bdp17kfl6d1580qdllk8is9ac06np0v"; depends=[gmp infotheo MASS]; broken = true; };
   npst = derive2 { name="npst"; version="2.0"; sha256="1y5ij3nmh9pj6p97jpx75g26sk508mznr0l67cwj381zfb77hj1n"; depends=[]; broken = true; };
   nsapi = derive2 { name="nsapi"; version="0.1.1"; sha256="06xf2p6f911vwpzky47r35fjgjvlhp13p9pf1zlvjrv66kdw8vbp"; depends=[crul xml2]; broken = true; };
   nsdr = derive2 { name="nsdr"; version="0.1.1"; sha256="1p73aj465lk52n3dikkqi54zm2f9v00ikpmry10p42qhfkgrw61l"; depends=[]; broken = true; };
@@ -22806,13 +23227,14 @@ in with self; {
   nsrr = derive2 { name="nsrr"; version="0.2.0"; sha256="1x1c7pvyfvzmaymxcz6ghr5002wz48796c3hsihwbx6951w623sq"; depends=[digest httr jsonlite]; broken = true; };
   ntwk = derive2 { name="ntwk"; version="1.0.0"; sha256="1c12c3pq992f02z3ikx17zv2djq9d9ly232ha0j5jswsksqzx024"; depends=[assertthat copCAR ghyp Matrix mvtnorm pracma zoo]; broken = true; };
   nutrientr = derive2 { name="nutrientr"; version="0.1"; sha256="09623rimvy0jd6i26bm8d80jhvgwril9r2vbnlcwznmqr4fr6fhm"; depends=[dplyr ggplot2 httr jsonlite qpdf stringr testthat tibble tidyr tidyselect]; broken = true; };
-  o2geosocial = derive2 { name="o2geosocial"; version="1.1.1"; sha256="1vsp71c06vyryrbbm44ms57fqqprxidrnwbncqfgjfc1wrii4crw"; depends=[data_table geosphere ggplot2 outbreaker2 Rcpp visNetwork]; broken = true; };
   obliqueRF = derive2 { name="obliqueRF"; version="0.3"; sha256="1bwlgv820mmpc6vg26bsdlfy2p78586i3y42hkzbw3z1fmwq3pz5"; depends=[e1071 mda pls ROCR]; broken = true; };
   obs_agree = derive2 { name="obs.agree"; version="1.0"; sha256="191xshnrncjqzwd2rdq334vsx0338q3y3k1nbm04hdaysbnla9jv"; depends=[]; broken = true; };
  occTest  = derive2 { name="occTest"; version="0.1.1"; sha256="11dqkah6z50zbxiyniv4f2f0n742gmgzqdaarvc17vn750b6b595"; depends=[alphahull biogeo CoordinateCleaner countrycode data_table dataPreparation dplyr DT ggplot2 Matrix outliers pingr plyr raster rgbif rgdal rgeos rnaturalearth rnaturalearthdata sf sp spocc stringr svMisc tictoc tidyverse]; broken = true; };
   occUncertain = derive2 { name="occUncertain"; version="0.1.0"; sha256="0rlcwiy45kx9168g7bf1hkz9rkbpfgn7b085lzksg97f05hij52z"; depends=[ConR knitr rgdal]; broken = true; };
+  ocomposition = derive2 { name="ocomposition"; version="1.1"; sha256="0fk8ia95yjlvyvmjw7qg72piqa40kcqq9wlb3flc6a81pys1ycb5"; depends=[bayesm coda]; broken = true; };
   odeintr = derive2 { name="odeintr"; version="1.7.1"; sha256="0wfb5lgv10p0qyfbn9hdg14bda37v43lpgbwv6nbw63zzbsbazqi"; depends=[BH Rcpp]; broken = true; };
   odns = derive2 { name="odns"; version="1.0.2"; sha256="0a2ifmyrsfih5a7jwc0b6l9wl7c1s5x08fq5bfm27xm9jnb8fwsn"; depends=[data_table glue httr jsonlite]; broken = true; };
+  odpc = derive2 { name="odpc"; version="2.0.5"; sha256="0cbkq8parb8br1j386xk5mgwz8gkmwvp79f9sjvzhs7z6wlbp0pv"; depends=[doParallel foreach forecast MASS Rcpp RcppArmadillo]; broken = true; };
   okmesonet = derive2 { name="okmesonet"; version="0.1.5"; sha256="1kzyzmg702ayzphn9jsk64m51mlnz37ylxiwq5gsr23vaiida680"; depends=[plyr]; broken = true; };
   oldbailey = derive2 { name="oldbailey"; version="1.1.0"; sha256="17wvnz23rhl0n50mq2b93523kxdvc3imvfii9b33viwcm4cq6zkn"; depends=[dplyr httr jsonlite rvest stringr tidyr]; broken = true; };
   omd = derive2 { name="omd"; version="1.0"; sha256="0s1wcgivqapbkzjammga8m12gqgw113729kzfzgn02nsfzmsxspv"; depends=[]; broken = true; };
@@ -22824,16 +23246,15 @@ in with self; {
   oops = derive2 { name="oops"; version="0.2.0"; sha256="0xg69riqphvsqqa953v4mlcakvl0invf29678nrljibg31n4wak5"; depends=[]; broken = true; };
   openSTARS = derive2 { name="openSTARS"; version="1.2.3"; sha256="1xpba5bagq16n1k94izshdizqyx99mad1nx2w77ljznmx5qrpqa6"; depends=[data_table progress raster rgdal rgrass7 sp SSN]; broken = true; };
   openadds = derive2 { name="openadds"; version="0.2.0"; sha256="1jb8zd3rpxfkjkg895iab6m4cfi53p5vy3nnpjkgq7ym6499qjcv"; depends=[crul dplyr jsonlite maptools rappdirs readr tibble xml2]; broken = true; };
+  openscoring = derive2 { name="openscoring"; version="1.0.1"; sha256="0cyay8gahv8xyssyjhc18myvzi060rvlkakf69w2xpfkrfjsk2rf"; depends=[cli glue httr jsonlite lifecycle rlang stringr]; broken = true; };
   opensensmapr = derive2 { name="opensensmapr"; version="0.6.0"; sha256="0inq86zrkax281wh5rj3pxjp3lgrhsqvma0p6kvizb5c7cwws5in"; depends=[digest dplyr httr lazyeval magrittr purrr readr]; broken = true; };
   opentimsr = derive2 { name="opentimsr"; version="1.0.13"; sha256="0m4xp70cq4h76r4qk7krn5p9w3xv44z5lrkpys7kbvxr38g5y0il"; depends=[DBI Rcpp RSQLite]; broken = true; };
   opentraj = derive2 { name="opentraj"; version="1.0"; sha256="13nqal96199l8vkgmkvl542ksnappkscb6rbdmdapxyi977qrgxk"; depends=[doParallel foreach maptools openair plyr raster reshape rgdal sp]; broken = true; };
   optAUC = derive2 { name="optAUC"; version="1.0"; sha256="0j1llzqa3n7kqw3i5bb7284z0hi6s5jbjfl9zap0l7xf6hg4x1dn"; depends=[MASS]; broken = true; };
   optCluster = derive2 { name="optCluster"; version="1.3.2"; sha256="11k6mbkwmvhmcvnc4hgl8aa3j7n7im5g3040dgppahzdndysgnw3"; depends=[cluster gplots kohonen MBCluster_Seq mclust RankAggreg]; broken = true; };
   optiRum = derive2 { name="optiRum"; version="0.40.1"; sha256="1kl9mzh53pwhrxbn89dsjjpfji7k8vmysscd1qd9sw7vqdan8g6x"; depends=[AUC data_table ggplot2 knitr plyr scales stringr XML]; broken = true; };
-  optiSel = derive2 { name="optiSel"; version="2.0.7"; sha256="0rqwwc33rb4bp8j3m0lqrv8l539h6bbfhlj4gwa07xsdpvkyq4b5"; depends=[data_table doParallel ECOSolveR foreach kinship2 magic MASS Matrix nadiv optiSolve pedigree plyr pspline purrr quadprog Rcpp RcppArmadillo reshape2 stringr]; broken = true; };
   optimr = derive2 { name="optimr"; version="2019-12.16"; sha256="003wz9r3xdi47ad22l4dkhp0dalknb2s9fp82yamjx7x1xbfvcbk"; depends=[numDeriv optextras Rcgmin Rvmmin setRNG]; broken = true; };
   optinterv = derive2 { name="optinterv"; version="0.1.0"; sha256="1yvjb9fyqj3pfglfdwdq4kpw9i5g5i3klgpqb05xdnacbnpdxvmp"; depends=[boot distances Hmisc lattice pbapply rootSolve weights]; broken = true; };
-  optiscale = derive2 { name="optiscale"; version="1.2.2"; sha256="1ay2lfk4isv0gir5diwxlx4ml5bv5qyqbwm34py85fp6bh92987r"; depends=[lattice]; broken = true; };
   optrees = derive2 { name="optrees"; version="1.0"; sha256="1zqpjii8dsfs98n58qpif81ckvyxkr0661svhlbgzi19xb2vszqs"; depends=[igraph]; broken = true; };
   orQA = derive2 { name="orQA"; version="0.2.1"; sha256="0vivjrpcbql42y078gi91kfpfdpv73j23jkiv8fpazzwzdi8ydqq"; depends=[genefilter gtools nlme Rcpp]; broken = true; };
   ora = derive2 { name="ora"; version="2.0-1"; sha256="0albxqma220rnrpfdq3z9cawr83q1a0zzczbbcy4nijjm4mswphy"; depends=[DBI ROracle]; broken = true; };
@@ -22847,6 +23268,7 @@ in with self; {
   ospsuite_utils = derive2 { name="ospsuite.utils"; version="1.2.0"; sha256="16gcqnkqz0nz7mhgbnji3p1k2vv43jypx2xbcz4i4d8v1368akly"; depends=[R6]; broken = true; };
   ot = derive2 { name="ot"; version="0.2.0"; sha256="0lym92hsxhfjdkh738rxlpkq084454055vgxm2b4wdhqw00jwf5y"; depends=[]; broken = true; };
   otvPlots = derive2 { name="otvPlots"; version="0.2.1"; sha256="0fjx0kl9y77mazwy7lg4mxc9sg8ysvvbl4h3k6bvfpnjm5x62hff"; depends=[data_table ggplot2 gridExtra Hmisc moments quantreg scales stringi]; broken = true; };
+  outerbase = derive2 { name="outerbase"; version="0.1.0"; sha256="18c73vp0fjcgg4vhf9bfxm21j8s85cmicqi5j76q0wm800qaqvm9"; depends=[Rcpp RcppArmadillo]; broken = true; };
   outsider = derive2 { name="outsider"; version="0.1.1"; sha256="082yygvjs31clz8b3p59gkc26249gqp8hl1071gm6zi4vi2ng43x"; depends=[crayon curl jsonlite outsider_base remotes tibble yaml]; broken = true; };
   outsider_base = derive2 { name="outsider.base"; version="0.1.4"; sha256="1wlr3a14a330r9p4lahdmgs4hbgfsp05rsbzr30djwpv21bfl03a"; depends=[callr cli crayon devtools pkgload sys tibble yaml]; broken = true; };
   ouxy = derive2 { name="ouxy"; version="2.1"; sha256="0mdjxg7wm68882hbwl0gg15dld6f90xyf0s6hk2z90r34bvyky0i"; depends=[abc adephylo ape coda EasyABC geiger maps MCMCpack nlme phytools Sim_DiffProc TreeSim]; broken = true; };
@@ -22859,6 +23281,7 @@ in with self; {
   packagetrackr = derive2 { name="packagetrackr"; version="0.1.1"; sha256="1dgpll7ycn6c8qj9xndi2xrnwsg0mp3ifg11jnlrw4n270444hwi"; depends=[dplyr httr magrittr rappdirs]; broken = true; };
   pacviz = derive2 { name="pacviz"; version="1.0.3"; sha256="17njy4m4hfkrksnicb4dphvdx7kc2fa1lr7mb7vv9cxb4ch32fph"; depends=[circlize e1071 plotrix]; broken = true; };
   paf = derive2 { name="paf"; version="1.0"; sha256="0wrqn67jfrjjxwcrkka6dljgi3mdk00vfjkzzcv2v7c97gx1zvwn"; depends=[survival]; broken = true; };
+  pagoo = derive2 { name="pagoo"; version="0.3.17"; sha256="0scf40vyw7lh5jh4p28894fa05nfl8n71g55w9bs9gbkszmn792k"; depends=[BiocGenerics Biostrings dendextend DT GenomicRanges ggfortify ggplot2 heatmaply magrittr plotly R6 reshape2 S4Vectors shiny shinydashboard shinyWidgets vegan]; broken = true; };
   pairedCI = derive2 { name="pairedCI"; version="0.5-4"; sha256="03wf526n3bbr2ai44zwrdhbfx99pxq1nbng9wsbndrdg2ji4dar2"; depends=[]; broken = true; };
   pairheatmap = derive2 { name="pairheatmap"; version="1.0.1"; sha256="1awmqr5n9gbqxadkblpxwcjl9hm73019bwwfwy1f006jpn050d6l"; depends=[]; broken = true; };
   pairwiseComparisons = derive2 { name="pairwiseComparisons"; version="3.1.6"; sha256="0aiq8gr33pr5lia6cf6ak7zy5z81am5j5a0py0a2m9ljgmsgmn4s"; depends=[BayesFactor dplyr insight ipmisc parameters PMCMRplus purrr rlang WRS2]; broken = true; };
@@ -22868,7 +23291,6 @@ in with self; {
   palmid = derive2 { name="palmid"; version="0.0.3"; sha256="0bh0p7alcbqkingxbg8gai7bch2cv8q90sfw92y7vj857nl09fh7"; depends=[DBI dbplyr downloadthis dplyr DT ggExtra ggplot2 ggplotify ggwordcloud gridExtra htmltools htmlwidgets leaflet plotly rmarkdown RPostgreSQL scales viridisLite]; broken = true; };
   pamctdp = derive2 { name="pamctdp"; version="0.3.2"; sha256="0qs8lj5g2fx5rfd0afv76x9x7wqm333qmjv6zzip6pf11dzkghyj"; depends=[ade4 FactoClass xtable]; broken = true; };
   panelAR = derive2 { name="panelAR"; version="0.1"; sha256="1ka2rbl9gs65xh2y2m4aqwh5qj4szibjy101hqfmza9wmdh25gpq"; depends=[car]; broken = true; };
-  panstarrs = derive2 { name="panstarrs"; version="0.2.1"; sha256="07i7v8rjvzw3qxidvjdh73q8v8rfl8xs9zg1nzphz663flqhl6sd"; depends=[bit64 checkmate curl data_table httr jsonlite]; broken = true; };
   papayar = derive2 { name="papayar"; version="1.0"; sha256="11vkjhazfwfixsr6dba5jrcsr3r3mqgvj5s070b4gp70d6k1z8s5"; depends=[htmltools neurobase oro_nifti servr]; broken = true; };
   parallelML = derive2 { name="parallelML"; version="1.2"; sha256="05j0rb81i8342m8drwgmgi1w30q96yf501d83cdq4zhjbchphbl1"; depends=[doParallel foreach]; broken = true; };
   param6 = derive2 { name="param6"; version="0.2.4"; sha256="0h4r2l670zvsbq0cakbm7f5yc0ghaf40kby80q3ql8lwgfnay1jd"; depends=[checkmate data_table dictionar6 R6 set6]; broken = true; };
@@ -22892,14 +23314,18 @@ in with self; {
   pbixr = derive2 { name="pbixr"; version="0.1.4"; sha256="098fwmar56l8w5r58grirqypdmc2c4hil7bi11z18llja62fncnw"; depends=[dplyr formatR jsonlite stringr textclean xml2 zip]; broken = true; };
   pca3d = derive2 { name="pca3d"; version="0.10.2"; sha256="0xpln78zdh6q7xff6pj2jaq2kafrijmlikmpnsfar2fzgkaw7jx6"; depends=[ellipse rgl]; broken = true; };
   pcaBootPlot = derive2 { name="pcaBootPlot"; version="0.2.0"; sha256="1320d969znk9xvm1ylhc3a31nynhzyjpbg1fsryq72nhf8jxijaa"; depends=[FactoMineR RColorBrewer]; broken = true; };
+  pcoxtime = derive2 { name="pcoxtime"; version="1.0.4"; sha256="1ill4vkkxv9iymknfkk72sff932l3jb0m70aga1skxkriyr02nwf"; depends=[doParallel foreach ggplot2 pec PermAlgo prodlim Rcpp RcppArmadillo riskRegression survival]; broken = true; };
   pds3 = derive2 { name="pds3"; version="0.5.0"; sha256="1hipi4ygk30khrrslxq3m9qdichazhrl34k444shs7gi6wjx9ilr"; depends=[rly]; broken = true; };
-  peacots = derive2 { name="peacots"; version="1.3"; sha256="128qpz06b0giz80lp9yq9l6pxcjglfr97yickg7z64vzzl2jilmq"; depends=[]; broken = true; };
+  peRspective = derive2 { name="peRspective"; version="0.1.1"; sha256="1dca7592h9yp8lfj866hjzg0d48c84v2kd9l5bsvkw935wwxwg2w"; depends=[crayon dplyr glue httr jsonlite magrittr purrr rlang rlist stringr tibble]; broken = true; };
   peakPick = derive2 { name="peakPick"; version="0.11"; sha256="1zf7ff9arm4hkdxrfhb0p8p7npd51icy773g2raaqsfys825xwhm"; depends=[matrixStats]; broken = true; };
   penDvine = derive2 { name="penDvine"; version="0.2.4"; sha256="0znpvsr7zy2wgy7znha1qiajcrz1z6mypi3f5hpims33z7npa7dl"; depends=[doParallel fda foreach lattice latticeExtra Matrix quadprog TSP]; broken = true; };
   penalizedLDA = derive2 { name="penalizedLDA"; version="1.1"; sha256="1bw5wiixmmg1vr3v0d59vh67f0gy2rvr30bi58skvrkb25qcjq6l"; depends=[flsa]; broken = true; };
+  peptider = derive2 { name="peptider"; version="0.2.2"; sha256="109z81x6jcsx2651lclff7ak55zb1i89pyi58rxri40aamx4b1x2"; depends=[discreteRV dplyr plyr]; broken = true; };
+  pequod = derive2 { name="pequod"; version="0.0-5"; sha256="0mwrgyrxgiifpnpy15qxpdrdmd7dxqihccrnj5nh8fq9fvwymamg"; depends=[car ggplot2]; broken = true; };
   perccal = derive2 { name="perccal"; version="1.0"; sha256="1akak068d0g70amj5sbvnqbywzy21l4wz11mhp71b7cp4xmr9n12"; depends=[Rcpp RcppArmadillo RcppEigen]; broken = true; };
   percentiles = derive2 { name="percentiles"; version="0.2.2"; sha256="08gzl2qq0856nj20bdxl3r0a7p5f4cjmvxkaqkjvq4n275ghvskq"; depends=[assertive_types assertthat dplyr R6]; broken = true; };
   perfectphyloR = derive2 { name="perfectphyloR"; version="0.2.1"; sha256="1i1h5k2aqaqygd8gzq2bmz266mjzdi2mfikkz6hzmhi2il8708w9"; depends=[ape phytools Rcpp RcppArmadillo]; broken = true; };
+  pergola = derive2 { name="pergola"; version="1.0"; sha256="1650ipp2b455xdkznwm7bnxvimad7nbyr9i1lg2vdh64j1qfh7gl"; depends=[seriation]; broken = true; };
   permGPU = derive2 { name="permGPU"; version="0.15"; sha256="1bxydc5dw7ka45k6ban35d5xb1dw9yq9480qns8b39cc0x3acmhc"; depends=[Biobase foreach RUnit survival]; broken = true; };
   persiandictionary = derive2 { name="persiandictionary"; version="1.0"; sha256="0rgi36ngpiax3p5zk4cdgf3463vgx7zg5wxscs2j7834yh37jwax"; depends=[]; broken = true; };
   personograph = derive2 { name="personograph"; version="0.1.3"; sha256="07lrlbw4222l1d5rwn0hfqliyk8sqjf6ipz4n2zwcbk113bb8sy7"; depends=[grImport]; broken = true; };
@@ -22907,14 +23333,14 @@ in with self; {
   pguIMP = derive2 { name="pguIMP"; version="0.0.0.3"; sha256="1kdwpykyxxd1zy531smijdd1n74a12pkxc9ld4pa3jcxih71xl0y"; depends=[bbmle DataVisualizations dbscan dplyr DT e1071 finalfit ggplot2 ggthemes gridExtra Hmisc magrittr MASS mice nortest outliers plotly psych purrr R6 rcompanion readr readxl rJava rlang rmarkdown robust RWeka shiny shinydashboard shinyjs shinyWidgets stringr tibble tidyr tidyselect VIM writexl]; broken = true; };
   ph2rand = derive2 { name="ph2rand"; version="0.1.0"; sha256="0k6azygcvzkirjx3vpx6kbhax1yai8r467kmmnvhh3p0v46mc5zp"; depends=[dplyr ggplot2 Rcpp scales tibble tidyr]; broken = true; };
   phenability = derive2 { name="phenability"; version="2.0"; sha256="0can8qgdpfr4h6jfg23cnwh7hhmwv6538wg2jla9w138la7rhpd1"; depends=[calibrate]; broken = true; };
-  phonfieldwork = derive2 { name="phonfieldwork"; version="0.0.11"; sha256="0a5qnl1r8g0h1nsp22awp6hy0lkdi6adc729grpz8mbniz4vdlkc"; depends=[phonTools rmarkdown tuneR uchardet xml2]; broken = true; };
   phyloland = derive2 { name="phyloland"; version="1.3"; sha256="10g40m6n2s4qvnzlqcwpy3k0j7bxdp79f586jj910b8p00ymrksp"; depends=[ape]; broken = true; };
   physx = derive2 { name="physx"; version="1.0"; sha256="1b6bx08jzfg4pxicawkn013bqrvqkp19pigxl3iwjrqclvi8mx73"; depends=[celestial cubature data_table docore MASS pracma Rcpp]; broken = true; };
   phytotools = derive2 { name="phytotools"; version="1.0"; sha256="049znviv2vvzv23biy1l28axm7bc7biwmq4bnn0cnjqgkk48ysz3"; depends=[FME insol]; broken = true; };
+  piRF = derive2 { name="piRF"; version="0.1.0"; sha256="04k09ylc6hqw57dlv7sfnisn1167dr550y1j9xl7prvlf3jksg06"; depends=[Rdpack]; broken = true; };
   piglet = derive2 { name="piglet"; version="1.0.1"; sha256="09l2qj8naalk8ywkmx0wmk82jllyd60g373jvy619kz7ad9dc1xp"; depends=[alakazam Biostrings circlize ComplexHeatmap data_table DECIPHER dendextend dplyr ggmsa ggplot2 jsonlite magrittr R6 RColorBrewer rlang splitstackshape tigger zen4R]; broken = true; };
   pinbasic = derive2 { name="pinbasic"; version="1.2.2"; sha256="0mcw68wrixz2jf62nfifdgg8bnp4h1p3byivz28wi61blj8iaa75"; depends=[fastcluster ggplot2 lubridate Rcpp reshape2 scales]; broken = true; };
   pinnacle_API = derive2 { name="pinnacle.API"; version="2.3.3"; sha256="1b6adns1xr3cgcj2mdjvl16cm2vjjgsj2l8m2c47plyc5jh05qmb"; depends=[data_table httr jsonlite magrittr openssl purrr rjson uuid]; broken = true; };
-  pipenostics = derive2 { name="pipenostics"; version="0.1.7"; sha256="0c0qnh8kjgnmsg8arj7jhpdyjcdm58j9lzwi0yvl7ygk4k2klgv3"; depends=[checkmate]; broken = true; };
+  pipeGS = derive2 { name="pipeGS"; version="0.4"; sha256="0ki4i70r5f195b4jfv3hxlxz3zj57mhy2yf4984bwr11impilz5w"; depends=[]; broken = true; };
   pirate = derive2 { name="pirate"; version="1.0.0"; sha256="160mmyqdwbc4g7n7q9i4xcqp6h9bcpcz7vavsgdcpvs2mjfhfpjx"; depends=[ggplot2 MASS plyr Rcpp RcppArmadillo]; broken = true; };
   pirouette = derive2 { name="pirouette"; version="1.6.9"; sha256="1khcfic386pyhxxyzv3c28krc6rpy334cdk1adawx7c87pyvsp16"; depends=[ape babette beastier beautier DDD forcats magrittr mauricer mcbette nodeSub phangorn phytools plyr pryr readr stringr TESS tibble tidyr tracerer xtable]; broken = true; };
   pitchRx = derive2 { name="pitchRx"; version="1.8.2"; sha256="0lg0xab40r8wzrww986l5q9jkg1m83g4bhsbh0kr7f2rv90av662"; depends=[ggplot2 hexbin MASS mgcv plyr XML2R]; broken = true; };
@@ -22941,6 +23367,7 @@ in with self; {
   poems = derive2 { name="poems"; version="1.1.0"; sha256="123sq2ixm8qzj6jc95skwl6rr4hiy7dcf34x4mrhqv5sf7k41yzs"; depends=[abc doParallel foreach gdistance geosphere lhs metRology R6 raster trend]; broken = true; };
   poio = derive2 { name="poio"; version="0.0-4"; sha256="12d47hn9rsx2n0fl107dpswfklnh8nkm0kspcxf7yfljayvxr474"; depends=[assertive_base assertive_files assertive_properties assertive_sets assertive_strings assertive_types devtools digest dplyr magrittr purrr R6 stringi tibble whoami]; broken = true; };
   poisson = derive2 { name="poisson"; version="1.0"; sha256="1diyf1b84sr6iai3ghd3kcp6fc6w7fan49wzs1lzvxxsmp15ag2d"; depends=[]; broken = true; };
+  poissonMT = derive2 { name="poissonMT"; version="0.3-5"; sha256="14qkc8qz3423b13gp6gsp8cbb1nv9wwjjfa4i9zc15qy5i99ha26"; depends=[checkmate MASS robcbi robustbase]; broken = true; };
   poker = derive2 { name="poker"; version="0.8.8"; sha256="14ik77440z22k4kwq0p1fn7adzi0p8mh8j8hd7ayinvrab4b5r85"; depends=[]; broken = true; };
   polyPK = derive2 { name="polyPK"; version="3.1.0"; sha256="0cb83sq8iz4swr73vwhh8n4k62p6321nsy1sz5fba0wiicycxf55"; depends=[circlize corrplot gplots Hmisc impute imputeLCMD mixOmics pcaMethods pkr plyr ropls sqldf xlsx]; broken = true; };
   polyfreqs = derive2 { name="polyfreqs"; version="1.0.2"; sha256="13859vbpys5yj1qiapyzv9wlvi6x6k0rm335bsi1v07ch3x2bh3b"; depends=[Rcpp]; broken = true; };
@@ -22976,6 +23403,8 @@ in with self; {
   protoclass = derive2 { name="protoclass"; version="1.0"; sha256="17d2m6r1shgb47v8mwdg1a7f5h29m5l7f5m0nsmv0xc90s9cpvk8"; depends=[class]; broken = true; };
   psda = derive2 { name="psda"; version="1.4.0"; sha256="0if42szf0gkgdl7d02x43i0fdb6hp47j918vx06aw7qcw6a8j3k2"; depends=[ggplot2 plyr raster rgeos sp]; broken = true; };
   pse = derive2 { name="pse"; version="0.4.7"; sha256="0kigfzsvx3gw7jwym4f19dydwwarwxgmha7hpy54gg0zzi4k9icl"; depends=[boot Hmisc]; broken = true; };
+  pseudorank = derive2 { name="pseudorank"; version="1.0.1"; sha256="1hjcvl38di1digkqg7nysd7bkljz1v7y54z2rz10fyk9lyp9mpmy"; depends=[doBy Rcpp]; broken = true; };
+  pspline_inference = derive2 { name="pspline.inference"; version="1.0.4"; sha256="1ijz642igm27xg3928w9ffvykai26aar5awbcilrjbkm6fk7yd4w"; depends=[assertthat dplyr magrittr mgcv plotrix plyr reshape2 rlang]; broken = true; };
   psr = derive2 { name="psr"; version="0.1.0"; sha256="0lnszaspilk88hmdjbgid7nh0zrpc57mymchva4kqc3cpckw247a"; depends=[dplyr psych tidyr]; broken = true; };
   psre = derive2 { name="psre"; version="0.1.2"; sha256="0xk8aigj8x3skg5ikrbpmfh3gfw0yd3gn0xlpwjgkhhj706jvri3"; depends=[boot car cowplot DAMisc dplyr fANCOVA ggplot2 ggrepel lawstat magrittr MASS metap mgcv multcomp nortest rlang sm tibble tidyr]; broken = true; };
   psrwe = derive2 { name="psrwe"; version="3.1"; sha256="0gmsh0294jzazxw4ss6jys92dckgfh4fqirfcdi3pzr6a7nnam8s"; depends=[BH cowplot dplyr ggplot2 randomForest Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders survival]; broken = true; };
@@ -22983,30 +23412,31 @@ in with self; {
   psychtm = derive2 { name="psychtm"; version="2021.1.0"; sha256="1qx3ks23wyi7c53p05jq2w18qz0kym0j43japz9sgj6zyh0c5649"; depends=[coda label_switching Rcpp RcppArmadillo RcppProgress rlang tibble]; broken = true; };
   psymonitor = derive2 { name="psymonitor"; version="0.0.2"; sha256="09288w2bk5jhnbyj516jqn5qb33yqqg5kqbg6ylqk7anlq2yg2sl"; depends=[doParallel foreach magrittr]; broken = true; };
   psyosphere = derive2 { name="psyosphere"; version="0.1.6"; sha256="1hcas3jk2n11lyw1ysmci0sysxf7qg9h2msqqg7q9nqp5gbf90np"; depends=[geosphere ggplot2 Hmisc lubridate plyr rgdal RgoogleMaps sp]; broken = true; };
+  ptest = derive2 { name="ptest"; version="1.0-8"; sha256="1d30a23yknf7xgqj8adgr36pnh9dpffl1v5fq682f26fk3ss30qp"; depends=[quantreg]; broken = true; };
   ptf = derive2 { name="ptf"; version="0.0.1"; sha256="1s9nzn823z2capil83vcfs7frg8f6bpygx8aw1zz4sacnhvryr52"; depends=[Matrix plyr rARPACK Rcpp RcppArmadillo]; broken = true; };
   pts2polys = derive2 { name="pts2polys"; version="0.1.3"; sha256="0rmgryv0vds20npvaqvvwrhrx0grfcz9qwdy2w3bx945r0chhw39"; depends=[Rcpp]; broken = true; };
   ptsuite = derive2 { name="ptsuite"; version="1.0.0"; sha256="1df273p8v6zvhy2jj6imhjigwj77grx6sxqmg0sidxwqny5d1d9c"; depends=[Rcpp]; broken = true; };
   pubchunks = derive2 { name="pubchunks"; version="0.3.0"; sha256="14jzl0ra0d68s246a9jhfgp1wyy9g7d0rzahvl97crkklld1crvx"; depends=[data_table rcrossref xml2]; broken = true; };
+  pulseTD = derive2 { name="pulseTD"; version="0.1.0"; sha256="0sdnswinpnm0vvplrh5gl9gx4p03dx175mqxzg5r52rkzd3rfbsr"; depends=[AnnotationDbi Biobase GenomicAlignments GenomicFeatures ggplot2 Rsamtools S4Vectors SummarizedExperiment]; broken = true; };
   pvsR = derive2 { name="pvsR"; version="0.3"; sha256="1ijmqlcsc8z0aphdd3j37ci8yqsy50wnr2fwn7h8fxbyd12ax2nj"; depends=[httr nnet XML]; broken = true; };
   qLearn = derive2 { name="qLearn"; version="1.0"; sha256="1ilxmgazm8gjz8c1hhbp4fccibnvnalxrag8b0rn081zsqmhf094"; depends=[]; broken = true; };
-  qMRI = derive2 { name="qMRI"; version="1.2.7"; sha256="0jiwvnhmm4zwqydqkzsygwkm23nc0zzjz5w7yckwdfc5zafch4hk"; depends=[adimpro aws awsMethods oro_nifti stringr]; broken = true; };
   qat = derive2 { name="qat"; version="0.74"; sha256="04n1jnbkf9dzafjh1n5d4q9p7hvyhnr63nmgl51jqxcf3nan5rlx"; depends=[boot fields gdata gplots moments ncdf4 XML]; broken = true; };
+  qgtools = derive2 { name="qgtools"; version="2.0"; sha256="1gj7vbam53yr2rnxzfxng1p107bjcyjmyj47cxyzaiv19pznkbmw"; depends=[]; broken = true; };
   qha = derive2 { name="qha"; version="0.0.8"; sha256="0sdf6g6884wn73i237xkwszg2mq8xddhvyy225qzpplh5za4pnhl"; depends=[ade4 FactoClass FactoMineR]; broken = true; };
-  qlcMatrix = derive2 { name="qlcMatrix"; version="0.9.7"; sha256="0iqkcvvy8rxlk0s83sjq57dd6fadb18p5z31lzy0gnzv1hsy1x8y"; depends=[docopt Matrix slam sparsesvd]; broken = true; };
   qmix = derive2 { name="qmix"; version="0.1.2.0"; sha256="172lhvj7adphxq9gws2i9lysc9bj1wpk60f4hf2h5sisnli15v0x"; depends=[BH Formula Rcpp RcppEigen rstan StanHeaders]; broken = true; };
   qoma_smuggler = derive2 { name="qoma.smuggler"; version="0.0.1"; sha256="03p9i0kr6i3adpb9lcszcmdr9p26nfy7f8hw2sbydazglaw4hscr"; depends=[lubridate rhli tibble]; broken = true; };
   qqr = derive2 { name="qqr"; version="0.0.1"; sha256="1vi4nbm356vahm4hnvy686nysbn4n63p9cjd4i9dm73lhsf9ilmn"; depends=[dplyr rvest stringr tidyverse xml2]; broken = true; };
   qrage = derive2 { name="qrage"; version="1.0"; sha256="00j74bnkcpp0h8v44jwzj67q9aaw47ajc2fvgr6dckj9rymydinl"; depends=[htmlwidgets]; broken = true; };
   qrandom = derive2 { name="qrandom"; version="1.2.6"; sha256="00s2c3f9ji27drfyz674bszq1a7xxx8mx0m9g5vrzk9hbm1kcsfj"; depends=[curl jsonlite Rmpfr]; broken = true; };
-  qtlDesign = derive2 { name="qtlDesign"; version="0.941"; sha256="138yi85i5xiaqrns4v2hw46b731bdgnb301wg2h4cfrxvrw4l0d5"; depends=[]; broken = true; };
-  qtlpoly = derive2 { name="qtlpoly"; version="0.2.3"; sha256="10a9zcsf2f6hkigwa3gpck2vg2pf9qa1z19kpk9kxbv4j1hja23s"; depends=[abind CompQuadForm ggplot2 gtools MASS Matrix mvtnorm nlme quadprog Rcpp RcppArmadillo RcppProgress RLRsim]; broken = true; };
   quad = derive2 { name="quad"; version="1.0"; sha256="0fak12l19f260k0ygh6zimx8dabzsv7a9i2njw8hnfcs3ndffhv5"; depends=[PearsonDS]; broken = true; };
   qualCI = derive2 { name="qualCI"; version="0.1"; sha256="09mzsy5ryyrn1gz9ahrh95cpfk7g09pmjjy0m82fh4xc7j5w6kpf"; depends=[combinat]; broken = true; };
   qualypsoss = derive2 { name="qualypsoss"; version="1.1.1"; sha256="1kcdmbj0wyycp7i4d3hb1addnl1c7ndkc6qnbnds0vcfk1dfxd8h"; depends=[doParallel foreach ggthemes MASS mvtnorm QUALYPSO]; broken = true; };
   quantable = derive2 { name="quantable"; version="0.3.6"; sha256="15q4phc2j7aihl8f4qzpdwxcvshq2cfzkfcxc8k4qypsxk9a00sb"; depends=[caret dplyr e1071 ggplot2 ggrepel gplots Matrix plyr pROC RColorBrewer readr reshape2 rlang scales stringr tibble tidyr]; broken = true; };
+  quhomology = derive2 { name="quhomology"; version="1.1.1"; sha256="0wiih00zk4682wy1r4nyifh76h5bnvl3f785wjzmrwylnfy951l3"; depends=[MASS numbers]; broken = true; };
   quickerstats = derive2 { name="quickerstats"; version="0.0.1"; sha256="0jlczz042701p6j4m60k425m9x3q88m27mmf62ngz80dylcl2fdx"; depends=[curl httr readr tibble]; broken = true; };
   quickmapr = derive2 { name="quickmapr"; version="0.3.0"; sha256="0962qm8ak0wpqld8nrb8rvvb78743zfrfsq2xrwdlql681j2nv8c"; depends=[httr raster rgdal rgeos sf sp]; broken = true; };
   quokar = derive2 { name="quokar"; version="0.1.0"; sha256="1qnl3x1aa665xpyb3ac07xrnnjdwbmj645p103144k5is5b8likc"; depends=[ald ALDqr bayesQR dplyr ggplot2 GIGrvg gridExtra knitr magrittr MCMCpack purrr quantreg robustbase tidyr]; broken = true; };
+  qut = derive2 { name="qut"; version="2.2"; sha256="1jsp3sv1631ar1sad8fy4l60ar2pbi20g50yz9mhs83427n3l63b"; depends=[flare glmnet lars Matrix]; broken = true; };
   r2dRue = derive2 { name="r2dRue"; version="1.0.4"; sha256="1apdq7zj5fhs349wm9g6y06nn33x24pg3gdp4z1frd18qlacf8z5"; depends=[matrixStats rgdal sp]; broken = true; };
   r511 = derive2 { name="r511"; version="0.1.1"; sha256="1njsnjf0746cv6x7fznq4cg556fczqcfawwb869r3w9zv0zj1iy9"; depends=[assertthat dplyr httr tibble xml2]; broken = true; };
   rAltmetric = derive2 { name="rAltmetric"; version="0.7.0"; sha256="1vbvjv273vg3pi30vxxa2bivlajfsbqrzflk3payp6ym9myi27mg"; depends=[httr jsonlite rlist]; broken = true; };
@@ -23027,7 +23457,6 @@ in with self; {
   rIP = derive2 { name="rIP"; version="1.2.0"; sha256="1f3gbd3ij047n0rh4a7yy6wdjz3b89rki7zaz4y9zgw6bad6ylkl"; depends=[amerika dplyr httr iptools jsonlite]; broken = true; };
   rJPSGCS = derive2 { name="rJPSGCS"; version="0.2-10"; sha256="0a00s10yp22fkvk67dkq43sbphcqla65x9j4qpv076bmdchn7arw"; depends=[chopsticks rJava]; broken = true; };
   rJython = derive2 { name="rJython"; version="0.0-4"; sha256="13fpcw37cca738v9idqgi3gv9avfkfwfacxj54p2c4wyg46ghnah"; depends=[rJava rjson]; broken = true; };
-  rKolada = derive2 { name="rKolada"; version="0.2.1"; sha256="1c1ci6dn3yqgp7qm1fih8dlq67dpbc1wlxhzcrzs0zzign47vgvd"; depends=[dplyr glue httr jsonlite magrittr purrr rlang stringr tibble tidyr urltools]; broken = true; };
   rLiDAR = derive2 { name="rLiDAR"; version="0.1.5"; sha256="0sw79zr7hdwprlwijlg6qmn7pmpcnhxfr7ycdz09058c0kd815h8"; depends=[bitops deldir geometry plyr raster rgeos rgl sp spatstat_geom]; broken = true; };
   rMisbeta = derive2 { name="rMisbeta"; version="1.0"; sha256="1h4vilnndl0gnz9z0sgbywp4zy44718zpiqcqigbjbd4lymi0y61"; depends=[ROC]; broken = true; };
   rModeling = derive2 { name="rModeling"; version="0.0.3"; sha256="0xrjxayp59f31wwcqqkzs5my2j2lpbv1f4pp709fmqxz02vbdzhv"; depends=[caret e1071 MASS]; broken = true; };
@@ -23036,6 +23465,8 @@ in with self; {
   rSQM = derive2 { name="rSQM"; version="1.3.14"; sha256="0m69n2pnfv2085dln6p149a5gw0gif9xk00xmad5s9j68hwjdmym"; depends=[dplyr EcoHydRology ggplot2 gsubfn mise ncdf4 qmap reshape2 stringr yaml zoo]; broken = true; };
   rTLS = derive2 { name="rTLS"; version="0.2.5.6"; sha256="0xjcqmjq3s9bfzfzndj2fi3830c3p1rrjr511amp186wmfnslmyd"; depends=[alphashape3d boot data_table doSNOW foreach Rcpp RcppArmadillo RcppHNSW RcppProgress rgeos rgl sp]; broken = true; };
   rWBclimate = derive2 { name="rWBclimate"; version="0.1.3"; sha256="0vs56hx7a85pw4jx8nb8bdlr9dbkl4zdhzhqsm0505xc3qz18vxh"; depends=[ggplot2 httr jsonlite plyr reshape2 rgdal sp]; broken = true; };
+  rWind = derive2 { name="rWind"; version="1.1.7"; sha256="1dvzkhi9hbxd9wvggcbkfx7hxaxjssbmfnqsc7qakj8pkbvr7nax"; depends=[gdistance lubridate Matrix raster]; broken = true; };
+  rabhit = derive2 { name="rabhit"; version="0.2.5"; sha256="0c513sbldd85snww412k3c5rhmzd5k89s2wq4d713qsvzsh4v1xl"; depends=[alakazam cowplot data_table dendextend dplyr fastmatch ggdendro ggplot2 gridExtra gtable gtools htmlwidgets plotly plyr RColorBrewer readr reshape2 rlang splitstackshape stringi tidyr tigger]; broken = true; };
   radix = derive2 { name="radix"; version="0.6"; sha256="0290n0yax8649srdjbq4439h0d9f6jsmxayyhp86igcnszcxilnb"; depends=[base64enc bookdown digest downloader htmltools jsonlite knitr lubridate mime png progress rmarkdown rprojroot rstudioapi stringr whisker xfun xml2 yaml]; broken = true; };
   radmixture = derive2 { name="radmixture"; version="0.0.1"; sha256="0rs60xjd43lg5c9972qhpg6bsqfg2578qvrz7gz3bdip10jb1ryj"; depends=[magrittr MCMCpack plyr quadprog]; broken = true; };
   ragt2ridges = derive2 { name="ragt2ridges"; version="0.3.4"; sha256="17i3z0p3a4dqa0bch5l1r830w5nlxhdg71y82jipp6cfiwli588z"; depends=[abind Biobase CGHbase expm fdrtool igraph MASS Matrix mvtnorm rags2ridges Rcpp RcppArmadillo]; broken = true; };
@@ -23051,7 +23482,6 @@ in with self; {
   rattle_data = derive2 { name="rattle.data"; version="1.0.2"; sha256="0cnmyzvy23jc4vz521c3jg0w4165waycvy5014l5773fy19zq75c"; depends=[]; broken = true; };
   ravedash = derive2 { name="ravedash"; version="0.1.2"; sha256="1hlsg2dcbsk8gpiw7s66n39jzjzdsh0hv9h4vzmasq2mvwjfqyaz"; depends=[dipsaus htmlwidgets logger raveio rpymat shidashi shiny shinyvalidate shinyWidgets threeBrain]; broken = true; };
   raveio = derive2 { name="raveio"; version="0.9.0"; sha256="13nzhhlwv1wmhgbgsdpznhcvj6k289dsmcirx7a803w9yqk9ssnd"; depends=[callr data_table dipsaus edfReader filearray fst globals glue hdf5r jsonlite promises R_matlab R6 ravetools remotes rpymat stringr targets threeBrain yaml]; broken = true; };
-  ravetools = derive2 { name="ravetools"; version="0.1.3"; sha256="145f86yzd492l6q3nqqjvgykr3riw6v86h80wd84ca1xian5lhd3"; depends=[digest filearray pracma R6 Rcpp RNiftyReg Rvcg signal waveslim]; broken = true; };
   rawr = derive2 { name="rawr"; version="0.1.3"; sha256="0k0x1pmxs73j6dmjg33n4hhwjwzpnhzbmmmjza6kw7hj6lfmipx4"; depends=[clipr dplyr jsonlite rvest stringr xml2]; broken = true; };
   rbace = derive2 { name="rbace"; version="0.2.2"; sha256="04jcbrcp0l1v2q8hhwr5w72spdja8r0fw71v68kx39yigy7m1sgp"; depends=[crul data_table tibble xml2]; broken = true; };
   rbart = derive2 { name="rbart"; version="1.0"; sha256="1byfm1ycw9nfhdblqklyn8pxn6b9q5fa3inbgfpynqpsid97ig35"; depends=[Rcpp]; broken = true; };
@@ -23077,19 +23507,23 @@ in with self; {
   rdaemon = derive2 { name="rdaemon"; version="1.0.6"; sha256="1qr6v7kgk9nd5qp96667x51331xmpp1yz1r190dgd1fqigw735s5"; depends=[base64enc futile_logger Rcpp]; broken = true; };
   rdddr = derive2 { name="rdddr"; version="1.0.0"; sha256="0biq1nxfhkbmay70hfp5yg6zakzcdr7rp0x2zpmyq200cwyyr6lm"; depends=[broom dataverse DeclareDesign dplyr estimatr fabricatr generics ggplot2 prediction purrr randomizr readr rlang tibble tidyr]; broken = true; };
   rdetools = derive2 { name="rdetools"; version="1.0"; sha256="0pkl990viv7ifr7ihgdcsww93sk2wlzp2cg931wywagfp8dijd02"; depends=[]; broken = true; };
-  rdracor = derive2 { name="rdracor"; version="0.7.6"; sha256="1zjd5w2kmpqbnm4j4w72r8bdy3hnvbvvckv3azdjsarbhnpqyfvw"; depends=[data_table httr igraph jsonlite purrr Rdpack stringr tibble tidyr xml2]; broken = true; };
+  rdoc = derive2 { name="rdoc"; version="0.1.0"; sha256="0ac6413jyrr7m25z30n3bpiafsvjx38ik6rrjzsiqxrfp41j6l9x"; depends=[cli crayon prettycode R6]; broken = true; };
   rdrop2 = derive2 { name="rdrop2"; version="0.8.2.1"; sha256="02rhcq1vn349ddjkqamxb0wjb3z3m4wzkvin1mprcz4fzrjxgbdr"; depends=[assertive digest dplyr httr jsonlite magrittr purrr]; broken = true; };
-  read_dbc = derive2 { name="read.dbc"; version="1.0.6"; sha256="0v10fnia615hj6kw3504v455f6k4syy2pilbmvcspk5r6lfs1pcg"; depends=[foreign]; broken = true; };
+  rdss = derive2 { name="rdss"; version="1.0.8"; sha256="0wzmiq53x5mid2lqvqgjgp8m7kz2wzlwkki1q561qmqbkkgk4ma8"; depends=[broom dataverse dplyr estimatr generics ggplot2 prediction purrr randomizr readr rlang tibble tidyr]; broken = true; };
   readSX = derive2 { name="readSX"; version="0.8.4"; sha256="0g8nwm1vk8spiffnb93a63vq14q6xm2b9wy708qfkriijrn8n52i"; depends=[cli readxl rlang]; broken = true; };
+  readmnist = derive2 { name="readmnist"; version="1.0.6"; sha256="0f2kp5r04k47gpvbj8x13c47zsis3bw3y8f5f37sh6jggblqr004"; depends=[]; broken = true; };
   readthat = derive2 { name="readthat"; version="0.0.1"; sha256="04vnpvfa8in3gxi6nv3si59hr8hj17wq3a5n8rnpiaczg46qr1dr"; depends=[curl Rcpp]; broken = true; };
+  readysignal = derive2 { name="readysignal"; version="0.0.9"; sha256="0fhm3xdxilmvs3r6vlbzydfq5xk0vxdkmpw49haknlwpvb18r403"; depends=[httr jsonlite progress rvest]; broken = true; };
   reclin = derive2 { name="reclin"; version="0.1.2"; sha256="0bskmlysc12g5invscr0vvshy8bp1gxjx4wihwbbfzmnk2951qrc"; depends=[dplyr ldat lpSolve lvec Rcpp stringdist]; broken = true; };
   recoder = derive2 { name="recoder"; version="0.1"; sha256="0wh0lqp7hfd4lx2xnmszv1m932ax87k810aqxdb6liwbmvwqnfgd"; depends=[stringr]; broken = true; };
+  recom = derive2 { name="recom"; version="1.0"; sha256="13g8wq4qaa850r7q09cr9x0brxki98h86cq83573jcv4lh3r97yq"; depends=[Rcpp]; broken = true; };
+  redR = derive2 { name="redR"; version="1.0.1"; sha256="0bd1jzjip6p449m9ysi4kybxqljh2wj8z9mrgyk1cy08bjivd1cd"; depends=[imager]; broken = true; };
   refnr = derive2 { name="refnr"; version="0.1.0"; sha256="1gjjzxpyxm1kf1pqk99bd7f2j85rzmww3r1268bccivf19rs881i"; depends=[]; broken = true; };
+  regcensus = derive2 { name="regcensus"; version="1.0.1"; sha256="0sab5pwbnc06vds23nzcargk8igfngsyqhvnh0q40g95b55fm0c8"; depends=[dplyr httr jsonlite stringr tidyverse]; broken = true; };
   regexTestR = derive2 { name="regexTestR"; version="0.1.3"; sha256="0nnp2xlrrywpi1lmj8ymsjgiqvq8777hhdgcwjq549m7whfw6lsg"; depends=[config data_table DT golem htmltools pkgload processx purrr RColorBrewer rvest shiny shinyBS shinythemes stringr tidyr xml2]; broken = true; };
   regfilter = derive2 { name="regfilter"; version="1.1.1"; sha256="0s5gijp6pgqh9r57mz0kykkbrdvkc3wxbpz9wh15539rgkplynb6"; depends=[arules e1071 entropy FNN gbm ggplot2 infotheo modelr nnet randomForest rpart sf UBL]; broken = true; };
   regpro = derive2 { name="regpro"; version="0.1.1"; sha256="02axbq63hsqwg3q2ixr0lpsdai9q6wj57s5k1343q9m0pw90vr73"; depends=[denpro]; broken = true; };
   regweight = derive2 { name="regweight"; version="1.0.2"; sha256="1ziqii9xlp86n6ga99glwnh2kf6pkm8m326yra40yf2w3h180pbm"; depends=[checkmate dplyr ggplot2 glue gt lpdensity rlang scales tidyr tidyselect]; broken = true; };
-  relMix = derive2 { name="relMix"; version="1.3.3"; sha256="03zzmsx2i7ib1mhdfk5igvr1winl9g2dfjqz2kzvcx3rl7l6hjym"; depends=[Familias gWidgets2 gWidgets2tcltk]; broken = true; };
   rela = derive2 { name="rela"; version="4.1"; sha256="00ksm7zh1mpd2d5c5d823id3sxj0h3x0ccg6a40fadibvr1ay3ny"; depends=[]; broken = true; };
   relaxo = derive2 { name="relaxo"; version="0.1-2"; sha256="1rzmq7q3j271s6qwwrmwidv0vxcjpgjhyiqgr6fkczkai2lbnd8x"; depends=[lars]; broken = true; };
   relen = derive2 { name="relen"; version="1.0.1"; sha256="0br7c3j30a1yc61pyinmk5lvk8zw9rivd0z2096g6crgmbzix8ml"; depends=[]; broken = true; };
@@ -23098,6 +23532,7 @@ in with self; {
   renderthis = derive2 { name="renderthis"; version="0.2.0"; sha256="1hvqwq2w30j29pwjm498mza9zxg8ga5bizm795hmdbz1k30m4j3p"; depends=[cli digest fs jsonlite magick pagedown progress quarto rmarkdown withr xaringan zip]; broken = true; };
   replicationInterval = derive2 { name="replicationInterval"; version="2.0.1"; sha256="1jyvyqr8r2fs1cmbz7zjcc8p116bnkslvx27pqi92y5pxgqvsqvr"; depends=[ggplot2 MASS MBESS pbapply]; broken = true; };
   rescue = derive2 { name="rescue"; version="1.0.3"; sha256="0wq4ka1a7yhbjwr99ngykhn2r3czn3rqi63r6jn46pz15vnicwad"; depends=[data_table dbscan igraph irlba Matrix reticulate]; broken = true; };
+  restorepoint = derive2 { name="restorepoint"; version="0.2"; sha256="0pjp5dvycvfg75hhj8lrr2lrjn6n6bqj0ziwyd87lyi15b9j8w4s"; depends=[]; broken = true; };
   restrictedMVN = derive2 { name="restrictedMVN"; version="1.0"; sha256="0qynkg244gzq0yjb0716w7g1sxdq66i11ss8jij86h2mz3ykj137"; depends=[MASS]; broken = true; };
   retistruct = derive2 { name="retistruct"; version="0.6.3"; sha256="1zij37n2ja3yx6n1agdkb3lj42p01parcg6djv60bng9c2qq0wsl"; depends=[foreign geometry png R_matlab R6 rgl RImageJROI RTriangle sp ttutils]; broken = true; };
   retractcheck = derive2 { name="retractcheck"; version="1.0.0"; sha256="1c4p8afh9g359s560sswcys3manc0lqvk0aqgvd09p4rpzls2dm7"; depends=[httr plyr textreadr]; broken = true; };
@@ -23118,7 +23553,6 @@ in with self; {
   rgudhi = derive2 { name="rgudhi"; version="0.2.0"; sha256="0biljmhg95wlfhhr9n8idggwzwmhal5idsm2ppgxxx8y1b8cmxbd"; depends=[cli curl dplyr fs ggplot2 purrr R6 Rdpack reticulate rlang tibble withr]; broken = true; };
   rhli = derive2 { name="rhli"; version="0.0.2"; sha256="1mb6bizqkg7zd8nc5a81fw7d0y0vcv6zh6y28k9vikqmc5l1n21q"; depends=[]; broken = true; };
   ri = derive2 { name="ri"; version="0.9"; sha256="00y01n9cx95bjhdpnh7vi0xd5p6al3sxbjszbyxafn7m9mygmnhv"; depends=[]; broken = true; };
-  riAFTBART = derive2 { name="riAFTBART"; version="0.3.2"; sha256="0nj7xqvb711fi764dk7v60sr5s5955cglyf54zkdc6ax365xlnj0"; depends=[BART cowplot dbarts doParallel dplyr foreach ggplot2 magrittr MASS MCMCpack msm nnet randomForest RRF stringr survival tidyr twang]; broken = true; };
   rich = derive2 { name="rich"; version="1.0.1"; sha256="0kasr9gb85qhngfayqy3fvrsr0a066krwxsx21nsxcnss0mrqygr"; depends=[boot vegan]; broken = true; };
   rijkspalette = derive2 { name="rijkspalette"; version="1.0.2"; sha256="00726q8s36si08ghd9sgi7ikadcj11xqwhgv8f3cml6lvwz7ppzz"; depends=[crayon imager jsonlite]; broken = true; };
   riot = derive2 { name="riot"; version="1.1.0"; sha256="1a5w6m443rc16fbzkmrrsisac92ch2x2psvywl5i60hlr0r88d60"; depends=[cli dplyr fs purrr Rcpp readr rlang tibble]; broken = true; };
@@ -23135,11 +23569,17 @@ in with self; {
   rmangal = derive2 { name="rmangal"; version="2.1.3"; sha256="1sh3ggbp5f4p8jqjr7l5an32ikr4gcdll2d7gl7mqjayq497c865"; depends=[httr igraph jsonlite memoise]; broken = true; };
   rmdcev = derive2 { name="rmdcev"; version="1.2.5"; sha256="1080351hs89zsm7y9yvy660r87qa643zsxyzhhfw0q0nzgyidfya"; depends=[BH dplyr Formula purrr Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders tibble tidyr]; broken = true; };
   rmdshower = derive2 { name="rmdshower"; version="2.1.1"; sha256="1sjpi5ils31adii51gaa8ly7x93l9ganp6in8rsln6si4jc2ppg9"; depends=[rmarkdown]; broken = true; };
+  rmonad = derive2 { name="rmonad"; version="0.7.0"; sha256="1vjx8kk57xk7c2a05c6kn75n17842ya7j41hqj3wmgq8yvaxrngx"; depends=[digest glue igraph magrittr pryr]; broken = true; };
   rms_gof = derive2 { name="rms.gof"; version="1.0"; sha256="1n0h3nrp11f2x70mfjxpk2f3g4vwjaf4476pjjwy49smxxlxwz82"; depends=[]; broken = true; };
+  rnaCrosslinkOO = derive2 { name="rnaCrosslinkOO"; version="0.1.2"; sha256="146595ib0730ppx4dxfq7vmvxwgf1vs1w3vkhb8ylrc8id3lki4z"; depends=[ClassDiscovery doParallel foreach GenomicRanges ggplot2 ggrepel heatmap3 igraph IRanges MASS mixtools patchwork R4RNA RColorBrewer reshape2 RRNA S4Vectors seqinr tidyverse TopDom]; broken = true; };
   rngwell19937 = derive2 { name="rngwell19937"; version="0.6-0"; sha256="0m6icqf7nckdxxvmqvwfkrpjs10hc7l8xisc65q8iqpnpwl5p2f6"; depends=[]; broken = true; };
   rnoaa = derive2 { name="rnoaa"; version="1.4.0"; sha256="15rhnvzzfdxc37j4yixp21hw5p9ijg7c0la4cyrxj57wnc1r71m1"; depends=[crul data_table dplyr geonames ggplot2 gridExtra hoardr isdparser jsonlite lubridate scales tibble tidyr tidyselect XML xml2]; broken = true; };
   robFitConGraph = derive2 { name="robFitConGraph"; version="0.4.1"; sha256="0w5x4ndv5r8v7ji3dhmch0di4krphxrclyidfg5b3qbmn1hlhlih"; depends=[Rcpp RcppArmadillo]; broken = true; };
+  robcbi = derive2 { name="robcbi"; version="1.1-4"; sha256="17i1isd9j14qbrrp3vqslwi1iig9m10hxyhzmjkpffcm2hsjddwc"; depends=[robeth]; broken = true; };
+  robcp = derive2 { name="robcp"; version="0.3.7"; sha256="0v5sb8q7knzs8qb4a8cmnm6n9x52xffcjhcgirlqmgm3ix1cl3mb"; depends=[Rcpp]; broken = true; };
+  robeth = derive2 { name="robeth"; version="2.7-8"; sha256="0f5j9vc1d5nzisqa54ws3l7gn3ccnxg70ybl4fnawi531ih3rw60"; depends=[]; broken = true; };
   robets = derive2 { name="robets"; version="1.4"; sha256="0lvzfpv6569pjysblhadd05sglx0qvyr9wipb9cpiya4a1992n61"; depends=[forecast Rcpp]; broken = true; };
+  robusTest = derive2 { name="robusTest"; version="1.0.1"; sha256="0rgm0cl47c8ddhbl0da3jdrkxhgy3jqlabmi4fqkc80zcmaldmhi"; depends=[Rcpp]; broken = true; };
   robustarima = derive2 { name="robustarima"; version="0.2.6"; sha256="137x9w3fq523bw2wix7bwc255mq7kvqa047chcnb2prihn9d6as7"; depends=[splusTimeDate splusTimeSeries]; broken = true; };
   robustgam = derive2 { name="robustgam"; version="0.1.7"; sha256="0s1z7jylj757g91najbyi1aiqnssd207jfm9yhias746540qp3kw"; depends=[mgcv Rcpp RcppArmadillo robustbase]; broken = true; };
   roistats = derive2 { name="roistats"; version="0.1.1"; sha256="1278cap5il85s1qls3sc0f4gqq2hi80442qidnsc6d8r3l4ba3fr"; depends=[dplyr magrittr purrr rlang tidyr]; broken = true; };
@@ -23162,17 +23602,21 @@ in with self; {
   rsbp = derive2 { name="rsbp"; version="0.1.0"; sha256="0aardngvj9apn8q5vhfpv67rf7d5iqb7xdq7rh8xmgr8341fvbgc"; depends=[dplyr lubridate magrittr purrr reshape2 tibble tidyr xml2]; broken = true; };
   rscala = derive2 { name="rscala"; version="3.2.25"; sha256="0nybhx8pblnniinvg74kbgg5bvw7y80ql8frij0178yglpbgrka9"; depends=[]; broken = true; };
   rscimark = derive2 { name="rscimark"; version="1.0"; sha256="1jsjz4d5bnxb90qqzz42m4nyvm8d8w8bs0m1r5g2n78zmckqb8vy"; depends=[checkmate]; broken = true; };
+  rsleep = derive2 { name="rsleep"; version="1.0.12"; sha256="1sqczgfkpa7bg8hbmy0baxlb9n6r76g4n5nh19v50wrdh87h3771"; depends=[abind dplyr edfReader ggplot2 jsonlite psd readr signal xml2 xts]; broken = true; };
   rsnps = derive2 { name="rsnps"; version="0.6.0"; sha256="1qslwgqcr4xf5vnrqx02nj84iyq8fhxfsj7yyyl6727v5xvgc12p"; depends=[crul data_table httr jsonlite plyr stringr]; broken = true; };
   rsofun = derive2 { name="rsofun"; version="4.4"; sha256="1vq5hrjqq3ppki5rxd2gl3219p3cxg5ajgr14ynxkyg9sdbmnsb0"; depends=[BayesianTools dplyr GenSA magrittr multidplyr purrr tidyr]; broken = true; };
   rsqliteadmin = derive2 { name="rsqliteadmin"; version="1.0.1"; sha256="1d9szm3nsr1q3hqrmapxdlymmgb3655n8v6x2vpcpahg54ajqrp5"; depends=[config data_table disk_frame DT fs golem magrittr RSQLite shiny shinyAce shinydashboard shinyFiles shinyjqui]; broken = true; };
   rstoat = derive2 { name="rstoat"; version="1.0.2"; sha256="0npwv33a7axwhnfyz39nh0x5kk4q3chscings3msx532lzvif0cl"; depends=[curl httr jsonlite keyring]; broken = true; };
   rsurfer = derive2 { name="rsurfer"; version="0.2"; sha256="14zd8fhak12yha6miwb84085722v5ipk8lagijhc6af291kp70i9"; depends=[gdata stringr]; broken = true; };
   rtext = derive2 { name="rtext"; version="0.1.22"; sha256="0wsy0iqzbfin92pw0bqj4bxm2p4f2y4frr137l6c3yvd0jrax3q4"; depends=[digest hellno magrittr R6 Rcpp RSQLite stringb]; broken = true; };
+  rtrim = derive2 { name="rtrim"; version="2.1.1"; sha256="1l2ijkm4p3nd7n4q1b4y9pdyafgyf76zizpi7hhzw1rr9zkxhff2"; depends=[]; broken = true; };
   rtsVis = derive2 { name="rtsVis"; version="0.0.3"; sha256="0j48p4cdkd3dwc5bxv8kmmqj38yaq4rz0wp47kx21msbajcw5m3m"; depends=[assertthat dplyr forcats ggplot2 magrittr moveVis pbapply raster RStoolbox sf sp tidyr]; broken = true; };
   ruta = derive2 { name="ruta"; version="1.2.0"; sha256="0nycvy38aci3flrnqns3ppyxph9f57gdpxkpj7jfv871lzd3bkqw"; depends=[keras purrr R_utils tensorflow]; broken = true; };
+  rv = derive2 { name="rv"; version="2.3.5"; sha256="1rjbhlvd7cxn7yw001p859zl5ibxl4di03j1aadm4zycq1zyr6q7"; depends=[]; broken = true; };
   rvTDT = derive2 { name="rvTDT"; version="1.0"; sha256="09c2fbqnlwkhaxfmgpsdprl0bb447ajk9xl7qdlda201fvxkdc8v"; depends=[CompQuadForm]; broken = true; };
   rwt = derive2 { name="rwt"; version="1.0.2"; sha256="17ydpjnhg0glgpvbcwnrmyk49qqvflss1njk044j4f0zk7h0i6wi"; depends=[matlab]; broken = true; };
   ryouready = derive2 { name="ryouready"; version="0.4"; sha256="1d9z3paxcrkwsgn5g83x57jwz2iqarks30x0bwg48i5ispw6xbr3"; depends=[car ggplot2 stringr]; broken = true; };
+  s2dverification = derive2 { name="s2dverification"; version="2.10.3"; sha256="10zqw7w8hm7cqbaxy6asflw0i8s5rmki2xhv3d51sm67vb7qn6f4"; depends=[abind bigmemory GEOmap geomapdata mapproj maps NbClust ncdf4 plyr SpecsVerification]; broken = true; };
   sBF = derive2 { name="sBF"; version="1.1.1"; sha256="0dankakl4rwl9apl46hk57ps4mvn2l1crw4gdqds26fc8w6f6rab"; depends=[]; broken = true; };
   sabarsi = derive2 { name="sabarsi"; version="0.1.0"; sha256="14c94zby3jjm6jr28nrg3qp6r6iw68wsb5l5bpd6jjz9pkljrk9i"; depends=[]; broken = true; };
   saccades = derive2 { name="saccades"; version="0.1-1"; sha256="138a6g3hjmcyvflpxx1lhgxnb8svrynplrjnvzij7c4bzkp8zip6"; depends=[zoom]; broken = true; };
@@ -23183,6 +23627,7 @@ in with self; {
   saeHB_zinb = derive2 { name="saeHB.zinb"; version="0.1.1"; sha256="0z8yngvd3rizxkfb8j6jn9gfm7q8888igdq354r9dibprkw4fxbs"; depends=[coda rjags stringr]; broken = true; };
   saery = derive2 { name="saery"; version="1.0"; sha256="09x1v627llqbpiwkh1wr0z7gsndfdrjzag2hprhq1adbzh05k47z"; depends=[]; broken = true; };
   safeBinaryRegression = derive2 { name="safeBinaryRegression"; version="0.1-3"; sha256="1g68r6pp5l41rbgyfqgcha1gpsisnl0ybdmdqr4ylr43f61dpgvd"; depends=[lpSolveAPI]; broken = true; };
+  safedata = derive2 { name="safedata"; version="1.1.3"; sha256="127ciirz3sjq2qfnx5zrh2nwglign55if9gwplvr579m0jjysjf5"; depends=[chron curl httr igraph jsonlite readxl sf]; broken = true; };
   sail = derive2 { name="sail"; version="0.1.0"; sha256="1wrh2dam5lblascqd8gl76jks72ys1amz84c6p08y8ykdmn2saq1"; depends=[gglasso glmnet]; broken = true; };
   salbm = derive2 { name="salbm"; version="1.0"; sha256="06nizpphyn5q292b2kbsjax0ljw3340n655qwiyp8lvi2zcnl6jy"; depends=[randomForestSRC]; broken = true; };
   salem = derive2 { name="salem"; version="0.2.0"; sha256="1pk27d57bmds0jvnvwai2scjy798lb7w6lb84yxl4ccgyn1ldh45"; depends=[]; broken = true; };
@@ -23194,13 +23639,15 @@ in with self; {
   satscanMapper = derive2 { name="satscanMapper"; version="1.0.2"; sha256="12vx1gr2z942wrjn6ks4lq9rb9ycnfg2rnl18scglqjqzlbsn9al"; depends=[foreign RColorBrewer SeerMapper sp stringr]; broken = true; };
   saves = derive2 { name="saves"; version="0.5"; sha256="1b4mfi2851bwcp0frx079h5yl6y1bhc2s8ziigmr8kwy1y1cxw10"; depends=[]; broken = true; };
   sbioPN = derive2 { name="sbioPN"; version="1.1.0"; sha256="0yvg55xnkhm35hfl7rldy2grb26hm4a68jr4x9n45fs7hhdylxri"; depends=[]; broken = true; };
-  scCAN = derive2 { name="scCAN"; version="1.0.4"; sha256="1w509y629xpqd748k7rghv8plav0jyyigfcf3n2c1m2a6qhh338x"; depends=[FNN purrr scDHA]; broken = true; };
   scImmuneGraph = derive2 { name="scImmuneGraph"; version="1.1.3"; sha256="0mvajasskcl4v0bjwzvkqjdicxb0329nxk93ich7qr37wfcp2n1n"; depends=[BiocStyle cowplot dplyr easypackages forcats ggplot2 gtools plyr purrr RColorBrewer readr scales stringr tibble tidyr tidyverse]; broken = true; };
   scPOP = derive2 { name="scPOP"; version="0.1.0"; sha256="0bi9dmqj9cd8f09qmfl3d65922xn3j3jipxi6615jbk6bz67kkh9"; depends=[cluster Matrix RANN Rcpp RcppArmadillo]; broken = true; };
   scTEP = derive2 { name="scTEP"; version="0.1.0"; sha256="1qdmsdn56sl5na0smhis9p3jwdwfs88p1x409fbpskxwpzz5cd52"; depends=[BiocGenerics doParallel dplyr foreach ggsci igraph Matrix psych rlang scDHA SingleCellExperiment SummarizedExperiment tibble]; broken = true; };
   scatteR = derive2 { name="scatteR"; version="0.0.1"; sha256="0w6sf8zkp0jjgrx2nbp43crx3w3dbrld3pk6hzjrqhf2l9wrqygw"; depends=[GenSA rJava scagnostics]; broken = true; };
   scenario = derive2 { name="scenario"; version="1.0"; sha256="0v1b00kiny21yx4qkk2x51cy1zqibdnd68z76qia7h5py28yhxsi"; depends=[]; broken = true; };
+  scfetch = derive2 { name="scfetch"; version="0.5.0"; sha256="0qyixanc72vang1zsr6v9yfv2j911iniiylw3fcxvykvfxp9zhmv"; depends=[Biobase curl data_table dplyr GEOquery httr jsonlite LoomExperiment magrittr Matrix openxlsx pbapply purrr reticulate rlang rPanglaoDB scater Seurat SingleCellExperiment SummarizedExperiment tibble tidyr]; broken = true; };
   scopr = derive2 { name="scopr"; version="0.3.4"; sha256="1zskhhbdgijkbh4jrvlfd46q4s8fyycqcgcx3lzyvi5xvv6h0sxg"; depends=[behavr curl data_table memoise readr RSQLite stringr]; broken = true; };
+  scorematchingad = derive2 { name="scorematchingad"; version="0.0.60"; sha256="1jaqhqahg2pszmw9d9pgywpdlzdnwridj54y3mc3kkxwv7npd59r"; depends=[ellipsis FixedPoint MCMCpack optimx R6 Rcpp RcppEigen Rdpack rlang]; broken = true; };
+  scoringTools = derive2 { name="scoringTools"; version="0.1.3"; sha256="00bai8pm1wmal2dsqsyq9nrpkmrxc8bwccqp3gvf18b5s4s46k2r"; depends=[discretization dplyr magrittr sqldf]; broken = true; };
   scpm = derive2 { name="scpm"; version="2.0.0"; sha256="1ib46m3i50annp90n2ih4qdxabxik4ngg9j0a5hgspsvk1i4hrvp"; depends=[interp lattice MASS Matrix mvtnorm RandomFields rgl]; broken = true; };
   scriptests = derive2 { name="scriptests"; version="1.0-16"; sha256="11l145gvzkxqwbzw976rq94krly1p4lahqw051dwaacarq4hnrdg"; depends=[]; broken = true; };
   sdStaf = derive2 { name="sdStaf"; version="1.0.2"; sha256="0r7lqj30r3f0b18kpahi63zsdizcw2zjf1vvvs04s4cg1djjbcp3"; depends=[dismo dplyr ggplot2 raster rasterVis rgdal rgeos sp tidyr]; broken = true; };
@@ -23211,6 +23658,8 @@ in with self; {
   sdtoolkit = derive2 { name="sdtoolkit"; version="2.33-1"; sha256="0pirgzcn8b87hjb35bmg082qp14idc5pfvm6dikpgkswag23hwh8"; depends=[]; broken = true; };
   seAMLess = derive2 { name="seAMLess"; version="0.1.0"; sha256="18rpka0qq6hh7v241bv5k8ln03qk90lpf3ak2plq861lnf3p0wxb"; depends=[Biobase ggplot2 ggtern randomForest]; broken = true; };
   seagull = derive2 { name="seagull"; version="1.1.0"; sha256="1kmidbxzs8zrjji6wsn8nrdv5mpfmmf6q30h1w4rc0swx1ycsgx4"; depends=[matrixStats Rcpp RcppArmadillo]; broken = true; };
+  searchConsoleR = derive2 { name="searchConsoleR"; version="0.4.0"; sha256="1ffg5359pbwylw265wbahwl3hy1b0qqv4al71v5r8lgfircibn0j"; depends=[googleAuthR stringr]; broken = true; };
+  seasonalclumped = derive2 { name="seasonalclumped"; version="0.3.2"; sha256="0a9ryds9l00dw6pr9s6r6fzrby53zz63idjywh127a4ga48jwnq3"; depends=[ggplot2 gridExtra magrittr TTR]; broken = true; };
   seedwater = derive2 { name="seedwater"; version="2.0"; sha256="1q6q612245hqqx89jzlp77f73vj2baxi0bghd9l8kpjz4ydh6rv8"; depends=[rpanel]; broken = true; };
   seg = derive2 { name="seg"; version="0.5-7"; sha256="165hl55vzyf3jqlykqji37p2syzhc8dxdjxd4wwr562qnlymzszx"; depends=[sp splancs]; broken = true; };
   selfea = derive2 { name="selfea"; version="1.0.1"; sha256="0zyxbd5vg8nhigill3ndcvavzbb9sbh5bz6yrdsvzy8i5gzpspvx"; depends=[ggplot2 MASS plyr pwr]; broken = true; };
@@ -23222,6 +23671,7 @@ in with self; {
   sensitivityPStrat = derive2 { name="sensitivityPStrat"; version="1.0-6"; sha256="0rfzvkpz7dll3173gll6np65dyb40zms63fkvaiwn0lk4aryinlh"; depends=[survival]; broken = true; };
   seplyr = derive2 { name="seplyr"; version="1.0.4"; sha256="09lv2jic2dhwl2pra56kf7087inbjg9b5461dyy2a31h5ji68j08"; depends=[dplyr rlang tidyr wrapr]; broken = true; };
   seq2R = derive2 { name="seq2R"; version="2.0.0"; sha256="1ynhmfch8w2s0mh55km6v9afn0z3p43ckg79cz08d2z25lv5syrj"; depends=[seqinr]; broken = true; };
+  seqCBS = derive2 { name="seqCBS"; version="1.2.1"; sha256="176ggpdcgmpsjixmz0ldknyd0vw120kjyrid3bq2bn4cgkwzb74z"; depends=[clue]; broken = true; };
   seqR = derive2 { name="seqR"; version="1.0.1"; sha256="0a80w7pyf2hbyzlm010xj3xv1dzkdc2w9s48hhfbsig88f497ki7"; depends=[Matrix Rcpp RcppParallel rlang slam]; broken = true; };
   seqRFLP = derive2 { name="seqRFLP"; version="1.0.1"; sha256="1i98hm8wgwr8b6hd237y2i9i0xgn35w4n2rxy4lqc5zq71gkwkvk"; depends=[]; broken = true; };
   sequence = derive2 { name="sequence"; version="2.0"; sha256="0r5h96gcp18lwgrl2pjlr71xqspkf6qmm1m0xjq5vadalfa7y294"; depends=[]; broken = true; };
@@ -23230,6 +23680,7 @@ in with self; {
   seroincidence = derive2 { name="seroincidence"; version="2.0.0"; sha256="0sam4y7w6prswz0izkm1a9v2k5rv7z22g1ajy15n9xix9aml5ms4"; depends=[]; broken = true; };
   session = derive2 { name="session"; version="1.0.3"; sha256="04mcy1ac75fd33bg70c47nxqxrmqh665m9r8b1zsz5jij1sbl8q5"; depends=[]; broken = true; };
   set6 = derive2 { name="set6"; version="0.2.4"; sha256="06swz60p73a7m7rvsv1545hsr2chkk2w2hmnfwkwfz4hrbdxm709"; depends=[checkmate ooplah R6 Rcpp]; broken = true; };
+  setter = derive2 { name="setter"; version="0.0-1"; sha256="10fwrx8yysp99rrkbnn3rbz79vyzr2h3p7zxxlqapw1k2lllp0r5"; depends=[assertive_base]; broken = true; };
   severity = derive2 { name="severity"; version="2.0"; sha256="1mp19y2pn7nl9m8xfljc515kk5dirv0r2kypazpmd956lcivziqq"; depends=[]; broken = true; };
   sfa = derive2 { name="sfa"; version="1.0-1"; sha256="1acqxgydf8j5csdkx0yf169x3yaa31r0ccdrqarh6vj1hacm89ad"; depends=[]; broken = true; };
   sglOptim = derive2 { name="sglOptim"; version="1.3.8"; sha256="15bkkvgp9v9vsp65wps48g3c2fa0fj1025hbrziywq14j7wayyjr"; depends=[BH doParallel foreach Matrix Rcpp RcppArmadillo RcppProgress]; broken = true; };
@@ -23237,6 +23688,7 @@ in with self; {
   shadow = derive2 { name="shadow"; version="0.7.1"; sha256="055064jwxf9fkvw95w8if5aqcxrgg3b224qs1c81v8m8adr46v0r"; depends=[raster rgeos sp]; broken = true; };
   shallot = derive2 { name="shallot"; version="0.4.10"; sha256="05ciafpahcrsh9kwg1yqwbmanvkbv1i1cjjpvq3w4cdqkhn4fam7"; depends=[commonsMath rscala]; broken = true; };
   shinybootstrap2 = derive2 { name="shinybootstrap2"; version="0.2.1"; sha256="17634l3swlvgj1sv56nvrpgd6rqv7y7qjq0gygljbrgpwmfj198c"; depends=[htmltools jsonlite shiny]; broken = true; };
+  shinyr = derive2 { name="shinyr"; version="0.3.0"; sha256="1r4xpb5x0711jbh4v8wkfhgg3s7l1sxqr6i90wsh0k0q3501fs2i"; depends=[caret corrplot dplyr e1071 knitr nnet plotly randomForest RColorBrewer shiny shinydashboard tm wordcloud]; broken = true; };
   shinyrecap = derive2 { name="shinyrecap"; version="0.1.0"; sha256="1mic7azxz2in67g3a2ir550w8psh6kc75p6hja6m62a0yy7j2n92"; depends=[CARE1 coda conting dga future ggplot2 ipc LCMCR promises Rcapture reshape shiny shinycssloaders testthat]; broken = true; };
   shinyypr = derive2 { name="shinyypr"; version="0.0.2"; sha256="1k6jsw6gnpwk90hkpa9grki0b68cab57vbd0h6ldjqr11giwcz8z"; depends=[bsplus chk dplyr DT ggplot2 lifecycle magrittr purrr readr shiny shinyjs waiter ypr]; broken = true; };
   shutterstock = derive2 { name="shutterstock"; version="0.1.0"; sha256="1vqbrjbwl2gdcf607f51cdzkjbkmk11n08mzx01j7bwcd278ny8r"; depends=[httr jsonlite]; broken = true; };
@@ -23272,13 +23724,15 @@ in with self; {
   somebm = derive2 { name="somebm"; version="0.1"; sha256="1iwwc94k6znh4d3bbjnvwp4chc4wg0iy4v2f99cs4jasrsimb4p8"; depends=[]; broken = true; };
   somplot = derive2 { name="somplot"; version="1.6.4"; sha256="06c8p2lqz3yxmxdl7ji8a3czvxnsbl7bwyiig76pkwc3a5qqfbb9"; depends=[hexbin]; broken = true; };
   soobench = derive2 { name="soobench"; version="1.9.18"; sha256="06wzlxdw0l6jc1zqsgkn120ibprfalwqd38xh7dpi30vdqiqskcc"; depends=[]; broken = true; };
+  soundcorrs = derive2 { name="soundcorrs"; version="0.4.0"; sha256="1azvsv3bghlab8q24wbb6xwd5a4cydx1cagvhk8h0h5ib9957zab"; depends=[]; broken = true; };
   sourceR = derive2 { name="sourceR"; version="1.1.0"; sha256="09mikl6rkigx2bdnwqsgxwksz40lspq27hsrhlnfyz5yhs31ssda"; depends=[assertthat cluster dplyr gplots gtools R6 Rcpp reshape2 SPIn tensorA]; broken = true; };
+  spNetwork = derive2 { name="spNetwork"; version="0.4.4"; sha256="049fc00rnslairlryzlvgir05ha4pbsdbn0shrbvfh9yhwk2llpk"; depends=[abind BH cubature data_table dbscan future_apply ggplot2 igraph progressr Rcpp RcppArmadillo RcppProgress Rdpack sf sfheaders spdep]; broken = true; };
   space = derive2 { name="space"; version="0.1-1.1"; sha256="09dpksbda4lg5hax47a9h9shjmggza6583slvdj0fldblykpyxck"; depends=[]; broken = true; };
   spacey = derive2 { name="spacey"; version="0.1.1"; sha256="1p8kx3d08q9kz1wb286m3d8ckwkhfm5n42m65m4w5gz5kpfx0xfz"; depends=[httr jsonlite magrittr png raster rayshader rgdal]; broken = true; };
-  spagmix = derive2 { name="spagmix"; version="0.3-5"; sha256="0rjdsg1pl8vpbcyyiqaqgc10h3i0q8xqivpawfaw43ybz15csnzl"; depends=[abind mvtnorm RandomFields sparr spatstat spatstat_core spatstat_geom spatstat_linnet spatstat_random]; broken = true; };
   spamtree = derive2 { name="spamtree"; version="0.2.2"; sha256="1z1dyv6cvcdilqyfpzgl3zr0jmzjn2sznrvypvxx7c8i6qfq8nd0"; depends=[dplyr FNN magrittr Rcpp RcppArmadillo rlang tibble]; broken = true; };
   spanel = derive2 { name="spanel"; version="0.1"; sha256="1riyvvfij277mclgik41gyi01qv0k466wyk2wbqqhlvrlj79yzsc"; depends=[]; broken = true; };
   sparsebn = derive2 { name="sparsebn"; version="0.1.2"; sha256="1b1601n3nmxck6a27xqxpsa79p4xnz7yyzdfqiddn9zd2b4v9wc5"; depends=[ccdrAlgorithm discretecdAlgorithm sparsebnUtils]; broken = true; };
+  sparsebnUtils = derive2 { name="sparsebnUtils"; version="0.0.8"; sha256="1x1phd33r3ci72sbm0pkmigwbi4x59pdz8n5919119mkxdf740vs"; depends=[Matrix nnet]; broken = true; };
   spatialfusion = derive2 { name="spatialfusion"; version="0.6-6"; sha256="14qccp9ca7b7v9w4fj04a99mx6qchfs8588fl16qfdmfbazwnfra"; depends=[deldir fields Rcpp rgeos rstan sp spam]; broken = true; };
   spatialnbda = derive2 { name="spatialnbda"; version="1.0"; sha256="14mx5jybymasyia752f3vnr5vmswcavbz8bpqr69vlxphw27qkwk"; depends=[mvtnorm SocialNetworks]; broken = true; };
   spatstat_core = derive2 { name="spatstat.core"; version="2.4-4"; sha256="0fyi8y1z919nzn47kaviln7gflhcp5qdi3gfvf7nwkdix3pkk373"; depends=[abind goftest Matrix mgcv nlme rpart spatstat_data spatstat_geom spatstat_random spatstat_sparse spatstat_utils tensor]; broken = true; };
@@ -23287,12 +23741,15 @@ in with self; {
   speccalt = derive2 { name="speccalt"; version="0.1.1"; sha256="0j7rbidmmx78vgwsqvqjbjjh92fnkf2sdx0q79xlpjl2dph7d6l6"; depends=[]; broken = true; };
   specmine = derive2 { name="specmine"; version="3.1.6"; sha256="0ik3nsb9mrja6709fwsf97f9qbf7lmmyc2zqrm7398h3mibf64l7"; depends=[baseline caret compare e1071 ellipse genefilter GGally ggplot2 impute imputeTS MASS Metrics mrbin narray pcaPP plotly pls RColorBrewer readJDX speaq specmine_datasets]; broken = true; };
   specmine_datasets = derive2 { name="specmine.datasets"; version="0.0.2"; sha256="0amqb4qy5ac1jc4g95sf4678ll3xhscyrcxq6pgh8imfyk1ifrmx"; depends=[xcms]; broken = true; };
+  spectrolab = derive2 { name="spectrolab"; version="0.0.18"; sha256="1iwhsz19yfvf71zg1ifg9d3xb9rjbng1h5g7vfakm1jckin9mrv2"; depends=[RColorBrewer shiny shinyjs]; broken = true; };
+  spflow = derive2 { name="spflow"; version="0.1.0"; sha256="0a5nirccwcc2z4dn3gxdlhdjz7sxv1r23clawy0kwn4ggdkmphp1"; depends=[coda Matrix Rdpack RSpectra]; broken = true; };
   spfrontier = derive2 { name="spfrontier"; version="0.2.5"; sha256="1vnvwcjbhvbmyn5rp4760amzy8k3y156q629fjymw9rw6zy45pbf"; depends=[ezsim moments mvtnorm numDeriv optimx spdep tmvtnorm]; broken = true; };
   spftir = derive2 { name="spftir"; version="0.1.0"; sha256="07vw8igy698jx671cj6hmf6ll9xvaq81fb6la7j95pqbd6jl284z"; depends=[pracma]; broken = true; };
   spgrass6 = derive2 { name="spgrass6"; version="0.8-9"; sha256="05xvdhisad0d7c69mvahzg6pvgvmb6dph50r34981palykic7qhn"; depends=[sp XML]; broken = true; };
   spiR = derive2 { name="spiR"; version="0.2.1"; sha256="0v3304d0ar6344377m6zd4p6f9m8ibq37i5ys4lnxnw41lhjx1x2"; depends=[dplyr ggplot2 ggsci gsheet lubridate readr reshape2]; broken = true; };
   spiders = derive2 { name="spiders"; version="1.2"; sha256="1qklm178bgkgpvrjf024jphsdh9can8300sf0702l4h0rk2daqbq"; depends=[plyr]; broken = true; };
   splashr = derive2 { name="splashr"; version="0.6.0"; sha256="0l57w5gwr0p2049z1201nlqsy23h37gsybd1lj3vycxz43ir7213"; depends=[curl dplyr formatR HARtools httr jsonlite lubridate magick openssl purrr scales stevedore stringi xml2]; broken = true; };
+  splitFeas = derive2 { name="splitFeas"; version="0.1.0"; sha256="1cfiis32h5kkp8r1mndmj4xss9gw96vdzk7q68q3jhbwqiaxp9rp"; depends=[corpcor matrixStats]; broken = true; };
   splusTimeDate = derive2 { name="splusTimeDate"; version="2.5.4"; sha256="131g7vd6kqr4vx58myciwlvkvpbblvzhj4qw0l57a45mwa90sqy3"; depends=[]; broken = true; };
   splusTimeSeries = derive2 { name="splusTimeSeries"; version="1.5.5"; sha256="0j62vb601036zj1zj68qhgmg0bbrbrpz8bak0g6n5qf25yr9y09x"; depends=[splusTimeDate]; broken = true; };
   spm12r = derive2 { name="spm12r"; version="2.8.3"; sha256="04bv4x7p2vv9n8zi5axpkcj13h6q08lc6qyd1czvxrpdmzsp40yb"; depends=[git2r matlabr neurobase oro_nifti R_utils]; broken = true; };
@@ -23301,11 +23758,13 @@ in with self; {
   spotGUI = derive2 { name="spotGUI"; version="0.2.3"; sha256="0hybpw0lgqrzrryfp08qvl42hrgdmx2hq7bavxjihm8mp0375dmz"; depends=[batchtools gridExtra httpuv plotly rclipboard rhandsontable shiny shinyBS shinydashboard shinyFiles shinyjs smoof SPOT XML]; broken = true; };
   spots = derive2 { name="spots"; version="0.1.0"; sha256="0q5jfb99hrlz5c1jnn4a96pg07bccbw0khfq8mvaq4r3vdykzmqy"; depends=[Matrix RSpectra]; broken = true; };
   spp = derive2 { name="spp"; version="1.16.0"; sha256="08zxxgyp0h6733b08jmml7k4rhfd3mi5dda3jrzid0s184y0z29w"; depends=[BH caTools Rcpp Rsamtools]; broken = true; };
+  spqdep = derive2 { name="spqdep"; version="0.1.3.2"; sha256="03lzp368ylkf1hrnl00kndlkmp9lwma0j9w9b3hn5glzdljhalxl"; depends=[broom dplyr ggplot2 gridExtra gt gtools igraph lwgeom magrittr Matrix purrr rgeoda rsample sf sp spatialreg spdep tidyr]; broken = true; };
   sprm = derive2 { name="sprm"; version="1.2.2"; sha256="0iyijkjnyz4yx2cmazlnhkk0f5ls0c2q2aikwlzl13w6zbj040a8"; depends=[cvTools ggplot2 pcaPP reshape2 robustbase]; broken = true; };
   sprsmdl = derive2 { name="sprsmdl"; version="0.1-0"; sha256="09klwsjp5w6p7dkn5ddmqp7m9a3zcmpr9vhcf00ynwyp1w7d26gi"; depends=[]; broken = true; };
   spruce = derive2 { name="spruce"; version="0.99.1"; sha256="1kklv4d2ycjcxv183cpqa6qn46zn8nww1z8xn4sy7ipz394i10cf"; depends=[BayesLogit dplyr ggplot2 igraph MCMCpack mvtnorm patchwork Rcpp RcppArmadillo rlang Seurat tidyr tidyselect truncnorm]; broken = true; };
   spsann = derive2 { name="spsann"; version="2.2.0"; sha256="00nlrwk50ch128brzvfxld0pcpq1syks9rvwdrcf1i2pcxnva7d0"; depends=[pedometrics Rcpp sp SpatialTools]; broken = true; };
   spsi = derive2 { name="spsi"; version="0.1"; sha256="0q995hdp7knic6nca0kf5yzkvv8rsskisbzpkh9pijxjmp1wnjrx"; depends=[plot3D]; broken = true; };
+  sptm = derive2 { name="sptm"; version="2019.11-25"; sha256="1hdymzngdppmh56dqh0k88n9hg68pbx9rgmimbz4ihnfx2plvadh"; depends=[kyotil survey survival]; broken = true; };
   sqlutils = derive2 { name="sqlutils"; version="1.2"; sha256="0dq4idg8i4hv9xg8jllllizqf3s75pdfm1wgncdjj52xhxh169pf"; depends=[DBI roxygen2 stringr]; broken = true; };
   sqp = derive2 { name="sqp"; version="0.5"; sha256="0l01zwcryv5bmzmd98gj0m5ip8nvr8lziq1awvfif1bzwvvd2kzx"; depends=[Matrix Rcpp RcppArmadillo RcppEigen Rdpack]; broken = true; };
   squashinformr = derive2 { name="squashinformr"; version="0.2.6"; sha256="0qsgvcmw4yxsj3y2li3k33mycr2k3n8v9b09rcvs0qk036fmivgx"; depends=[dplyr Hmisc janitor lubridate naniar plyr polite rlang rvest stringr tibble tidyr]; broken = true; };
@@ -23324,16 +23783,21 @@ in with self; {
   static = derive2 { name="static"; version="0.1.0"; sha256="1n9ijilh81w2fz4cyd4abjj7qam8q7rirmp8lni5cxsb4il0qbfa"; depends=[]; broken = true; };
   stickr = derive2 { name="stickr"; version="0.3.1"; sha256="0krz123vz4bdcdi4p27r637pgz4rcj6kmyiqdf5x69riddvfxx8r"; depends=[base64enc fs gh stringr]; broken = true; };
   stlcsb = derive2 { name="stlcsb"; version="0.1.2"; sha256="08pnj1yb4xcbhnrp2wny8lq9rvcvmsgaza07k4358csfksvmcira"; depends=[dplyr lubridate purrr readr readxl rlang rvest sf stringr tibble xml2]; broken = true; };
+  stminsights = derive2 { name="stminsights"; version="0.4.2"; sha256="1a0wglrsl5sr7fc6vhiwva0lmr0ac3ns4rfis2y8ib2vxxwhwb8j"; depends=[dplyr ggplot2 ggraph ggrepel huge igraph purrr readr scales shiny shinyBS shinydashboard shinyjs stm stringr tibble tidygraph]; broken = true; };
+  stochprofML = derive2 { name="stochprofML"; version="2.0.3"; sha256="0j6m2byh7w9kcbp3mfvmg6fm6z0dq8k4qabj1yfkl0d1y2ifd1zd"; depends=[MASS numDeriv]; broken = true; };
   stockfish = derive2 { name="stockfish"; version="1.0.0"; sha256="1il3na3d96k34vj62pvxrs2ah3a9ly8ww3gi3nr0459piw4wd611"; depends=[processx R6]; broken = true; };
+  stringb = derive2 { name="stringb"; version="0.1.17"; sha256="0bfwwbg64nzxrx30cndqvdlhanjkx6875lg5dzm9cbwvwg2wbxcn"; depends=[backports]; broken = true; };
   strm = derive2 { name="strm"; version="0.1.3"; sha256="1jwsdr2pja7gjrrdn37bv9r8xvyzl03akrgldh4qbrvx9p03w67w"; depends=[dplyr knitr magrittr purrr rgdal rlang rmarkdown spatialreg testthat tidyr]; broken = true; };
   stsm = derive2 { name="stsm"; version="1.9"; sha256="18ypmkd7l7m7qkahb0nqf8f1m8g4irxlw48v2ms0dq1bsnhbzx7j"; depends=[KFKSDS]; broken = true; };
   stubthat = derive2 { name="stubthat"; version="1.2.1"; sha256="130naxzvswcyadwcgldvwnxxdxbfwx5vljac7901vn3ahjp75d8z"; depends=[testthat]; broken = true; };
   stylest = derive2 { name="stylest"; version="0.2.0"; sha256="1c036zsn1gi5vhsz37p56wz1bcr3pwdp2k62j7ikmrrnkcv2w9kz"; depends=[corpus Matrix]; broken = true; };
   sublime = derive2 { name="sublime"; version="1.3"; sha256="0455fppc68azxknxjvxci4kjpcj6c1jkp9adbxqrn3qnnywaj5v2"; depends=[AnalyzeFMRI downloader oro_nifti]; broken = true; };
   subniche = derive2 { name="subniche"; version="1.5"; sha256="1w5xsfqq1y9gy8wrxmfxk02jhzmyg2cdky7vm7qdcg9l63dhracj"; depends=[ade4 polyclip SIBER wordcloud]; broken = true; };
+  subsamp = derive2 { name="subsamp"; version="0.1.0"; sha256="1bfz2z2qy1war3id8qr1asygwvwxgf2hhlh075hr6bjdkxz0j0nd"; depends=[]; broken = true; };
   subtee = derive2 { name="subtee"; version="1.0.1"; sha256="090k3p1j9fj7qk121qb488vzfgzxnvqp7z60jhcyy8l47aazf5g0"; depends=[ggplot2 httr MASS matrixStats survival]; broken = true; };
   subtype = derive2 { name="subtype"; version="1.0"; sha256="1094q46j0njkkqv09slliclp3jf8hkg4147hmisggy433xwd19xh"; depends=[penalized ROCR]; broken = true; };
   sundialr = derive2 { name="sundialr"; version="0.1.4.1"; sha256="1ln8zbihxfa7dnbhrm254l8qzdw16fhva58p5bd0p8j43grq6qrv"; depends=[Rcpp RcppArmadillo]; broken = true; };
+  supcluster = derive2 { name="supcluster"; version="1.0.1"; sha256="131s9q4p2lzs09q5zc702pafnisk1aylq9i52wk27hvpcsh0v1pc"; depends=[gtools mvtnorm]; broken = true; };
   superMDS = derive2 { name="superMDS"; version="1.0.2"; sha256="0jxbwm3izk7bc3bd01ygisn6ihnapg9k5lr6nbkr96d3blpikk04"; depends=[]; broken = true; };
   support = derive2 { name="support"; version="0.1.5"; sha256="0gs6mva1lwanq4rm8l70sid28if2l0k249ydirqkz72lz12hg1br"; depends=[BH MHadaptive nloptr randtoolbox Rcpp RcppArmadillo]; broken = true; };
   supportInt = derive2 { name="supportInt"; version="1.1"; sha256="14fh75sds05c06xkcfbijd8my3sa9kpnczzh96xx0gwj1193yya9"; depends=[ProfileLikelihood]; broken = true; };
@@ -23363,10 +23827,10 @@ in with self; {
   synRNASeqNet = derive2 { name="synRNASeqNet"; version="1.0"; sha256="05ncwbv8kvvhqqrxa8qq7s0jc6krs5a56ph04z50iwgd91rzyi7x"; depends=[GenKern igraph KernSmooth parmigene]; broken = true; };
   synfd = derive2 { name="synfd"; version="0.1.3"; sha256="1h8vfrfw00449vjbj6z4y7m5p7rxzvqjcykyxw5sb473f63gr5px"; depends=[L1pack Rdpack]; broken = true; };
   synoptReg = derive2 { name="synoptReg"; version="1.2.1"; sha256="1v282ag4275p5lm6yvzwkpndrf4cnrpn0rw3v6mh5hxnb2pbmjl5"; depends=[dplyr ggplot2 kohonen lubridate magrittr metR raster rnaturalearth rnaturalearthdata RNCEP sf stringr tibble tidyr]; broken = true; };
-  systemicrisk = derive2 { name="systemicrisk"; version="0.4.2"; sha256="021ypw9fag5kmk2q041pj2jfzgfg640yda7wvh0yzdmg73p6fvsw"; depends=[lpSolve Rcpp]; broken = true; };
   tRophicPosition = derive2 { name="tRophicPosition"; version="0.8.0"; sha256="0ap7j15qfywilyx8zsnq061mis69yja16hjnla5grlqc0mcrdd7d"; depends=[coda data_table ggplot2 gridExtra hdrcde MCMCglmm plyr RColorBrewer rjags]; broken = true; };
   taRifx = derive2 { name="taRifx"; version="1.0.6.2"; sha256="05cvjsi65fvy9hg2v3fldzwn1yd2kfirl3ffg9yfajm903dk3l49"; depends=[plyr reshape2]; broken = true; };
   table1xls = derive2 { name="table1xls"; version="0.4.0"; sha256="0ixbshbp9hkcg12hj32vgb5bp0pj4rbc3i6g1xdg2zhqp7zanics"; depends=[XLConnect]; broken = true; };
+  tableExtra = derive2 { name="tableExtra"; version="1.0.1"; sha256="1rbcxd3rjhvcpayj6d7mh30vkbc7g4mv4qa7552xz3x1wny0n4mm"; depends=[gtable]; broken = true; };
   tabulizer = derive2 { name="tabulizer"; version="0.2.2"; sha256="0zd5cfqwgirqchw1mvziscxvzl8pb1y6rbfywkn9i9pxfydkm5vi"; depends=[png rJava tabulizerjars]; broken = true; };
   tabulizerjars = derive2 { name="tabulizerjars"; version="1.0.1"; sha256="005n2gyzzmq8h0mpj8xs6ri6llzwag7nqzpm4vnzp81vwy8kmf92"; depends=[rJava]; broken = true; };
   tangles = derive2 { name="tangles"; version="0.8.1"; sha256="06a5hn5hkvgr6pcjz3n0vi1zwmv00wypi5f62agqh8mas80v44vh"; depends=[digest raster sp]; broken = true; };
@@ -23384,6 +23848,7 @@ in with self; {
   tfse = derive2 { name="tfse"; version="0.5.0"; sha256="05q75xsiy955xwgchagk7l7725y6mylp5lj5284xm7y2xh197zp3"; depends=[dapr magrittr]; broken = true; };
   thectar = derive2 { name="thectar"; version="1.0.0"; sha256="1qh0qzg0ybb38kzm56xxlvhm201pdjm16aky5f1fdflcsszgy8mx"; depends=[proxy smacof]; broken = true; };
   themetagenomics = derive2 { name="themetagenomics"; version="1.0.2"; sha256="14i81cd9cyzhi3j2d9ygwlairkimhx8ffvva3pg3xwwvpywb6mla"; depends=[ggplot2 lda lme4 Matrix plotly Rcpp rstan scales shiny stm]; broken = true; };
+  thewitcher = derive2 { name="thewitcher"; version="1.0.1"; sha256="140f0insb5gqrfdaq5cnzj6bl0akbif57jnyy7ai3rb2rwy9n2nv"; depends=[dplyr ggplot2 gridExtra magrittr MASS readr tidyverse usethis]; broken = true; };
   thickmatch = derive2 { name="thickmatch"; version="0.3.1"; sha256="0q7wpilbk8jm3q7m5hb114jpbv4ri1745v9sbdf222l6ymds6pia"; depends=[DiPs MASS plyr rcbalance]; broken = true; };
   threeBrain = derive2 { name="threeBrain"; version="1.0.1"; sha256="0pg5azxjqvwjl6235f0vnic04rz8vvaski0ac17mjn5ny1l0qnc1"; depends=[digest dipsaus freesurferformats gifti htmlwidgets jsonlite oro_nifti R6 ravetools servr shiny stringr xml2]; broken = true; };
   threeboost = derive2 { name="threeboost"; version="1.1"; sha256="033vwn42ys81w6z90w5ii41xfihjilk61vdnsgap269l9l0c8gmn"; depends=[Matrix]; broken = true; };
@@ -23393,8 +23858,10 @@ in with self; {
   tidygate = derive2 { name="tidygate"; version="0.4.9"; sha256="0zs2z4xf76d9hw7zwwpd3bisjvq672smbmxl0qgjb7xdzh66cqsf"; depends=[dplyr lifecycle magrittr purrr RColorBrewer rlang scales stringr tibble tidyr viridis]; broken = true; };
   tidylab = derive2 { name="tidylab"; version="4.1.1"; sha256="052wgx4dfbr806b9r0cfblkwaf1qnrlf5ngm1c029ggss3br7ki4"; depends=[cli crayon decorators dplyr microservices purrr rstudioapi tibble usethat]; broken = true; };
   tidyndr = derive2 { name="tidyndr"; version="0.2.1"; sha256="0scjqnyl78aqqc03adlv3v0i67k3pi2a6m0cg6cxypaxhzzb2xg0"; depends=[dplyr forcats janitor lubridate magrittr purrr rlang stringr tibble tidyr tidyselect vroom]; broken = true; };
+  tidyqwi = derive2 { name="tidyqwi"; version="0.1.2"; sha256="16f0c2mdx6aiji6i7237kpc9awqdgrg6rhs408w6ag28dhxpgwlv"; depends=[dplyr furrr future httr jsonlite labelled magrittr purrr stringr tidyr xml2]; broken = true; };
   tidytags = derive2 { name="tidytags"; version="1.1.1"; sha256="0x4gv6k9ccs9r6s73xsk25ixwgmz5818s6jpndg0yqczybw3y5dm"; depends=[dplyr googlesheets4 rlang rtweet stringr]; broken = true; };
   tiger = derive2 { name="tiger"; version="0.2.3.1"; sha256="0xr56c46b956yiwkili6vp8rhk885pcmfyd3j0rr4h8sz085md6n"; depends=[e1071 hexbin klaR lattice qualV som]; broken = true; };
+  timeSeq = derive2 { name="timeSeq"; version="1.0.4"; sha256="0m59g12dmnwpmwjmyb9x6z53x3gjmxcaxqva2dlbazsqkbzgaayp"; depends=[gss lattice mgcv pheatmap reshape]; broken = true; };
   timeline = derive2 { name="timeline"; version="0.9"; sha256="0zkanz3ac6cgsfl80sydgwnjrj9rm7pcfph7wzl3xkh4k0inyjq3"; depends=[ggplot2]; broken = true; };
   timelineR = derive2 { name="timelineR"; version="1.0.0"; sha256="01bb4201p18l1l5yp622ml9zd8spc978hvhw1s7j57qki5rw4kdf"; depends=[dplyr futile_logger ggplot2 gtable lubridate mtconnectR rlang stringr]; broken = true; };
   timesboot = derive2 { name="timesboot"; version="1.0"; sha256="1ixmcigi1bf42np93md8d3w464papg9hp85v0c3hg3vl4nsm2bji"; depends=[boot]; broken = true; };
@@ -23422,15 +23889,16 @@ in with self; {
   translateR = derive2 { name="translateR"; version="1.0"; sha256="11kh9hjpsj5rfmzybnh345n1gzb0pdksrjp04nzlv948yc0mg5gm"; depends=[httr RCurl RJSONIO textcat]; broken = true; };
   translation_ko = derive2 { name="translation.ko"; version="0.0.1.5.2"; sha256="1w5xibg4znhd39f3i0vsqckp6iia43nblqxnzgj0ny6s7zmdq1wd"; depends=[]; broken = true; };
   treasuryTR = derive2 { name="treasuryTR"; version="0.1.6"; sha256="1m7pw2y9q03vn32y63la56l816b3yqkix1yd3j3nk6mwmdyqcyjq"; depends=[dplyr lubridate quantmod xts zoo]; broken = true; };
+  treeclim = derive2 { name="treeclim"; version="2.0.6.0"; sha256="0zdn766vxgycisjyjw7nh7hs817kqhdihyla3fhpzykw9pxnw0b2"; depends=[abind boot ggplot2 lmodel2 lmtest np plyr Rcpp RcppArmadillo]; broken = true; };
   treecm = derive2 { name="treecm"; version="1.2.2"; sha256="0vrawg4vvy270dn20gb2k99xi4q89l4mjz0mm7ikpz8wxqypzq2l"; depends=[plyr]; broken = true; };
   treeducken = derive2 { name="treeducken"; version="1.1.0"; sha256="0i2r1l508yi0cq7fzdds0hz2k4bxm67nknybxvbyylmwnwv6a0a1"; depends=[ape apTreeshape Rcpp RcppArmadillo]; broken = true; };
   treelet = derive2 { name="treelet"; version="1.1"; sha256="0k3qhxjg7ws6jfhcvvv9jmy26v2wzi4ghnxnwpjm8nh7b90lbysd"; depends=[]; broken = true; };
   treeman = derive2 { name="treeman"; version="1.1.4"; sha256="1rlq8sklvpj6an8x9wvs3501y6dpl2vhl5zfmz0yvmif04msf49v"; depends=[ape bigmemory plyr RJSONIO stringr]; broken = true; };
+  treemisc = derive2 { name="treemisc"; version="0.0.1"; sha256="0289grmgcvdszsb9lhgygm1dahlcn1m50lh110ny5yjh1b4627kn"; depends=[Matrix Rcpp rpart]; broken = true; };
   treeperm = derive2 { name="treeperm"; version="1.6"; sha256="0mz7p9khrsq4dbkijymfvlwr01y4fvs0x6si4x5xid16s2zsnmm4"; depends=[]; broken = true; };
   treeplyr = derive2 { name="treeplyr"; version="0.1.10"; sha256="0k5hblnpbs8h2812blc6crx1j9w9r7lzkz3fraxkn4gdfpfi5100"; depends=[ape dplyr geiger lazyeval phytools Rcpp]; broken = true; };
   treetop = derive2 { name="treetop"; version="0.0.5"; sha256="11lyg0izlzzvds8vig8ryicg94ydapr0wgfk5rj2shxqk9mxzfiz"; depends=[geometry lidR pryr raster rasterVis RColorBrewer rgdal rgl sf shiny sp spatstat_explore spatstat_geom stars]; broken = true; };
   tribe = derive2 { name="tribe"; version="0.1.8"; sha256="01z1b9k3j4xi5fp9pkpr991yr7x8vk8vysipy7iwdmdr7xg4w4p0"; depends=[dplyr lazyeval magrittr rlang rstudioapi]; broken = true; };
-  tricolore = derive2 { name="tricolore"; version="1.2.2"; sha256="0pxahddc3dah4n4xk4i0dkiwvh4wf03gcx8q3nfrsk07zzap1zh1"; depends=[assertthat ggplot2 ggtern shiny]; broken = true; };
   trimTrees = derive2 { name="trimTrees"; version="1.2"; sha256="0v75xf5186dy76332x4w7vdwcz7zpqga8mxrb5all2miq2v45fi8"; depends=[mlbench randomForest]; broken = true; };
   trioGxE = derive2 { name="trioGxE"; version="0.1-1"; sha256="1ra86l3i7fhb6nsy8izixyvm6z23shv7fcjmnnpil54995j15ax4"; depends=[gtools mgcv msm]; broken = true; };
   tropicalSparse = derive2 { name="tropicalSparse"; version="0.1.0"; sha256="1ay6i3pzz5lpvznxqln31mijp86p6z0df7rvp0gm4lxvn294m7f8"; depends=[]; broken = true; };
@@ -23455,10 +23923,10 @@ in with self; {
   ucbthesis = derive2 { name="ucbthesis"; version="1.0"; sha256="0l855if3a7862lxlnkbx52qa617mby634sbb2gkprj21rwd7lcbp"; depends=[knitr stringr]; broken = true; };
   uchardet = derive2 { name="uchardet"; version="1.1.1"; sha256="0m3xy807smqdxhkhd9cwrcf3ljlyvfmnkd7831qzpgcadam2jcdj"; depends=[]; broken = true; };
   udapi = derive2 { name="udapi"; version="0.1.3"; sha256="0qyn6fdh8ia913hn2dl0x99xsm20ps8zm52snswlyb00prinm668"; depends=[curl httr]; broken = true; };
-  ulid = derive2 { name="ulid"; version="0.3.0"; sha256="0xxkqrnlz3pkb3s1gacfzqav54w97gc0w8rh0fn1qy5rkmg2bplv"; depends=[Rcpp]; broken = true; };
   unbalanced = derive2 { name="unbalanced"; version="2.0"; sha256="18hy9nnq42s1viij0a5i9wzrrfmmbf7y3yzjzymz2wnrx4f2pqwv"; depends=[doParallel FNN foreach mlr RANN]; broken = true; };
   unfoldr = derive2 { name="unfoldr"; version="0.7.1"; sha256="1khas7d04g4y2kwldnsja5xk1n5mys2s66pln3l0gqlsbk67na12"; depends=[]; broken = true; };
   uniftest = derive2 { name="uniftest"; version="1.1"; sha256="0a37m7l3lc6rznx10w9h9krnn5paim2i2wvw47ckwag7bv0d4pm4"; depends=[orthopolynom]; broken = true; };
+  uniswappeR = derive2 { name="uniswappeR"; version="0.6.1"; sha256="0vsw2jvp3gndjrl7v9fndpaqx4kryf4szsz1si1cx1rxhqvlsf92"; depends=[dplyr ggplot2 ghql jsonlite lubridate patchwork purrr reticulate rlang scales tidyr]; broken = true; };
   uplift = derive2 { name="uplift"; version="0.3.5"; sha256="11xikfmg6dg8mhwqq6wq9j9aw4ljh84vywpm9v0fk8r5a1wyy2f6"; depends=[coin MASS penalized RItools tables]; broken = true; };
   uplifteval = derive2 { name="uplifteval"; version="0.1.0"; sha256="1gnn40c47rpx40j210bz6fb48d70p6spv3drr8hd5b3vzfz6686c"; depends=[dplyr ggplot2 gridExtra whisker]; broken = true; };
   usdoj = derive2 { name="usdoj"; version="1.1.0"; sha256="0ddvp3qh1ynzzpzq8rgblkb1z5j5jwyzkfgd9xyzdkcby90k7zya"; depends=[anytime dplyr httr jsonlite stringr tibble]; broken = true; };
@@ -23469,19 +23937,20 @@ in with self; {
   uwo4419 = derive2 { name="uwo4419"; version="0.3.0"; sha256="0hk5qhyarjxz7ngj5ak37vx0rak6xv0hfb4sdrsbci3kv5fqijv7"; depends=[DescTools dplyr ggplot2 gmodels haven magrittr psych RColorBrewer rio tibble tidyr]; broken = true; };
   validateRS = derive2 { name="validateRS"; version="1.0.0"; sha256="1ivw9ddr6z2wrsqvhbn87p5pikhkxlz8p45pb5nq13dvs359vkww"; depends=[data_table reshape2 triangle truncnorm]; broken = true; };
   validatedb = derive2 { name="validatedb"; version="0.1.4"; sha256="0lq0d0hcszd2jgip9m5j07lgbc279nxryz5drzv2qaap357ic9l1"; depends=[dbplyr dplyr validate]; broken = true; };
+  valse = derive2 { name="valse"; version="0.1-0"; sha256="0l3fdsgrmalifcxscjsxsfq07v8vipg0rdw6xh94q7xw5gdfsms0"; depends=[cowplot ggplot2 MASS reshape2]; broken = true; };
   valuer = derive2 { name="valuer"; version="1.1.2"; sha256="0mbwzsvy34ppngyxdzpd9w1r4f00cik4maqab9kpiflrrv9xdp78"; depends=[ggplot2 orthopolynom R6 Rcpp RcppEigen timeDate yuima]; broken = true; };
  vanddraabe  = derive2 { name="vanddraabe"; version="1.1.1"; sha256="094kd72slq0n3pk0p6zps241aszb9yql49h4mr007zf0kn8wlf8v"; depends=[bio3d cowplot fastcluster ggplot2 openxlsx reshape2 scales]; broken = true; };
   vbdm = derive2 { name="vbdm"; version="0.0.4"; sha256="1rbff0whhbfcf6q5wpr3ws1n4n2kcr79yifcni12vxg69a3v6dd3"; depends=[]; broken = true; };
   vbsr = derive2 { name="vbsr"; version="0.0.5"; sha256="1avskbxxyinjjdga4rnghcfvd4sypv4m39ysfaij5avvmi89bx3b"; depends=[]; broken = true; };
-  vcfppR = derive2 { name="vcfppR"; version="0.3.5"; sha256="1shk4xr1i3azbh5s13ngzny2gysa4mbkfv240ky22yqdcj3qxi37"; depends=[Rcpp]; broken = true; };
-  vcrpart = derive2 { name="vcrpart"; version="1.0-4"; sha256="1mg87jpdih33lalxhfcxbri439d4cgi7hqdrnvijr7qabjmnc7p4"; depends=[formula_tools nlme numDeriv partykit rpart sandwich strucchange ucminf zoo]; broken = true; };
   vdra = derive2 { name="vdra"; version="1.0.0"; sha256="1ldl3wm55a5ywc5398lzky6l6x5a9djxwrqnrd570fg4iq6d30l1"; depends=[]; broken = true; };
   vennLasso = derive2 { name="vennLasso"; version="0.1.6"; sha256="0maydvx0qhdn5alqzqxjn485y9hw9qdr1xvgkmgwnjq59vni6d31"; depends=[foreach igraph MASS Matrix Rcpp RcppEigen RcppNumerical survival VennDiagram visNetwork]; broken = true; };
   vertexenum = derive2 { name="vertexenum"; version="1.0.2"; sha256="16ywz3z1kzhb3knhhi2i5igm3djdaaxyyrw69wkc5saa7ayhdb4y"; depends=[numbers]; broken = true; };
   vetools = derive2 { name="vetools"; version="1.3-28"; sha256="1470xgqdq9n5kj86gdfds15k3vqidk3h99zi3g76hhyfl8gyl1c0"; depends=[lubridate maptools plyr scales sp stringr tis xts]; broken = true; };
   viewshed3d = derive2 { name="viewshed3d"; version="4.0.0"; sha256="039xx39w3k3hckf0qci7j1364s47vja5s18siqjh6c5yy1w8q737"; depends=[data_table hyper_fit lidR nabor pkgcond plotrix pracma raster rgl sp viridis]; broken = true; };
   viopoints = derive2 { name="viopoints"; version="0.2-1"; sha256="0cpbkkzm1rxch8gnvlmmzy8g521f5ang3nhlcnin419gha0w6avf"; depends=[]; broken = true; };
+  viruslearner = derive2 { name="viruslearner"; version="0.0.1"; sha256="1x8d3zs6dzl34y7lamkxsn7f9pxy5034yn2q79g3fwzmvvrnniy5"; depends=[dials dplyr hardhat parsnip recipes rsample stacks tidyselect tune workflows workflowsets yardstick]; broken = true; };
   vlad = derive2 { name="vlad"; version="0.2.2"; sha256="0c3zfjm5nj7iisfnl822sk8wdszv6hcsaf51sn7aqnlp579hq2jk"; depends=[BH checkmate dplyr magrittr Rcpp RcppArmadillo tidyr]; broken = true; };
+  vlda = derive2 { name="vlda"; version="1.1.5"; sha256="17xn8qqh043dm05ib3h4l1qx07wxncf5d06x9l1wl6jbkvnsm2nq"; depends=[dplyr ggiraph ggplot2 ggrepel ggsci]; broken = true; };
   vmd = derive2 { name="vmd"; version="0.1.0"; sha256="17c06a9l6i90ivpvf3rgv6yrsqv36qmywmmy92y5b81zqhgmh907"; depends=[ggplot2 magrittr R6 Rcpp reshape2 scales]; broken = true; };
   vmsbase = derive2 { name="vmsbase"; version="2.2.1"; sha256="1xxn0vm9r8kiix6whlc12r0wanf6acrl9a86h44nwm019xfmlfyp"; depends=[AMORE cairoDevice chron cluster DBI ecodist fields foreign ggmap ggplot2 gmt gsubfn gWidgets2 gWidgets2RGtk2 intervals mapdata maps maptools marmap outliers PBSmapping plotrix R6 RSQLite sp sqldf VennDiagram]; broken = true; };
   vortexR = derive2 { name="vortexR"; version="1.1.7"; sha256="06i2rqbc3h2kv8jjrdlrg03xrzb3yiyzpnv2rvlkjcnn46f84bgf"; depends=[betareg data_table GGally ggplot2 glmulti gtools irr plyr R_utils stringr vortexRdata]; broken = true; };
@@ -23489,8 +23958,10 @@ in with self; {
   vrcp = derive2 { name="vrcp"; version="0.1.1"; sha256="1wrch1dqy752gkj24h1dgi2x3kf1797xj4pf1s9mszf3x3ic905d"; depends=[ggplot2]; broken = true; };
   vrmlgen = derive2 { name="vrmlgen"; version="1.4.9"; sha256="0lifhhf41yml4k83wpkssl14jgn8jaw1lcknwbci1sd8s1c4478l"; depends=[]; broken = true; };
   vwr = derive2 { name="vwr"; version="0.3.0"; sha256="1h790vjcdfngs1siwldvqz8jrxpkajl3266lzadfnmchfan1x7xv"; depends=[lattice latticeExtra stringdist]; broken = true; };
+  vyos = derive2 { name="vyos"; version="1.0.2"; sha256="0mqhxib04frcwqxq8qchmxm4d4kr4q2pjf3ki99q5dillihhk2fs"; depends=[crayon digest dplyr glue httr httr2 jsonlite lubridate magrittr purrr Rcpp rlang rlist stringr tibble]; broken = true; };
   wBoot = derive2 { name="wBoot"; version="1.0.3"; sha256="08qgkkv6jvqmxq5gvfp7jbrc3k8mxajfww7k8a3p8888aq411p7q"; depends=[boot simpleboot]; broken = true; };
   wSVM = derive2 { name="wSVM"; version="0.1-7"; sha256="0c7rblzgagwfb8mmddkc0nd0f9rv6kapw8znpwapv3fv0j2qzq7h"; depends=[MASS quadprog]; broken = true; };
+  wTO = derive2 { name="wTO"; version="2.0.2"; sha256="0c5cr48h2zvp629iyg1n05fgh1v2wvc5bmzc75c1flrj2rrfs83v"; depends=[data_table HiClimR igraph magrittr plyr reshape2 Rfast som visNetwork]; broken = true; };
   waccR = derive2 { name="waccR"; version="0.1.0"; sha256="092p1bibyqx1gcrch68l9ilzilg5aqf46b6iagm562292cfi074l"; depends=[dplyr lubridate magrittr rvest tibble xml2]; broken = true; };
   wahc = derive2 { name="wahc"; version="1.0"; sha256="1324xhajgmxq6dxzpnkcvxdpm2m3g47drhyb2b3h227cn3aakxyg"; depends=[]; broken = true; };
   water = derive2 { name="water"; version="0.8"; sha256="0qglf922dlgi41jzz3sivq7ckmzl8axqjfg4klcgnddycmm3ha5j"; depends=[raster rgdal sp]; broken = true; };
@@ -23498,23 +23969,29 @@ in with self; {
   weathercan = derive2 { name="weathercan"; version="0.6.2"; sha256="1mr926rymacx1f8k79pwhcyl5xcymq77l4dxaa2ddlrx5cmyh5cv"; depends=[dplyr httr lubridate memoise purrr rappdirs readr rlang rvest stringi stringr tidyr tidyselect xml2]; broken = true; };
   weatherr = derive2 { name="weatherr"; version="0.1.3"; sha256="14w7kkja3a1zmdc7l084iprx1czqgdfjzjc29wdlwzmaiq02c4d3"; depends=[ggmap lubridate RJSONIO XML]; broken = true; };
   webTRISr = derive2 { name="webTRISr"; version="0.2.0"; sha256="10xj8qvibhnywsxd1yb4laz6b38qwn483a7bflizsndsgrbzdi5n"; depends=[dplyr httr jsonlite lubridate magrittr purrr readr sf stringr]; broken = true; };
+  webmorphR = derive2 { name="webmorphR"; version="0.1.1"; sha256="1f3sjzck4ys1knn2jmk472yww65wblrdwdlvn1gz2a00nc738rn4"; depends=[dplyr geomorph ggplot2 httr jsonlite magick progress rsvg]; broken = true; };
   webtools = derive2 { name="webtools"; version="0.7.12"; sha256="0qbwsm1cypa39m2h5qmi1r42sc74msf0ag6w0dyzns1mm0ipyzxp"; depends=[crayon dplyr jsonlite pkgsearch RCurl readr rstudioapi stringr tibble]; broken = true; };
   weco = derive2 { name="weco"; version="1.2"; sha256="1prk8hn782pd8g2rbbaj7y10vjimqs9n8i4rab6aw6fc3k759d6b"; depends=[]; broken = true; };
   weibull4 = derive2 { name="weibull4"; version="1.0.0"; sha256="1a95yw67iy7dqib33v31apxmskl019zng66jrlflbqx6p2vjdh30"; depends=[]; broken = true; };
+  weightedZdiff = derive2 { name="weightedZdiff"; version="0.1.0"; sha256="1mrhjg0h7qiwya8jrmf5h4gc352ahc6fczlk5kfhqw5vkwr0b1k3"; depends=[]; broken = true; };
   wellknown = derive2 { name="wellknown"; version="0.7.4"; sha256="0d0sxmp58dscfxny1492lgw8x0ypwakmrkkl7rcfs2fz7v26ygj8"; depends=[BH jsonlite Rcpp wk]; broken = true; };
+  wgeesel = derive2 { name="wgeesel"; version="1.5"; sha256="0lybvsq5168cjybzv2dbyx2z8aakcx7i7ivm8zc90haiispm9n5x"; depends=[bindata CRTgeeDR geepack MASS PoisNor]; broken = true; };
   wiad = derive2 { name="wiad"; version="0.0.1.0"; sha256="1yr1cng5659n8chfghpyfxvqzl8b57vdjzv5m22cbcvrlq6m6p4j"; depends=[abind data_table dplyr DT shiny]; broken = true; };
   wikipediatrend = derive2 { name="wikipediatrend"; version="2.1.6"; sha256="11ng7qsb4954mgsz55ix86z0ynh4xgflcp6dzl0y4zi6zdrj87i7"; depends=[ggplot2 glue hellno httr pageviews rvest stringr xml2]; broken = true; };
+  wildrwolf = derive2 { name="wildrwolf"; version="0.6.1"; sha256="1cl3rv8v3y8y86cl6y5da63qkzha37f20naaqrypk65rn47savig"; depends=[dreamerr fabricatr fixest fwildclusterboot MASS]; broken = true; };
   wildviz = derive2 { name="wildviz"; version="0.1.2"; sha256="03vhacaxp5fahq5afcf1q0qvmndpqc6a63pnins7h3p8ryvlpx14"; depends=[DBI dplyr ggplot2 ggthemes httr jsonlite lubridate plotly purrr rnoaa RSQLite shiny shinythemes tibble tidyr]; broken = true; };
   winRatioAnalysis = derive2 { name="winRatioAnalysis"; version="0.1.0"; sha256="1msvc06bfzw9clinxbvr5fdw38dff0c0xii46182nwnk5kj0libr"; depends=[data_table JM Matrix MLEcens mvtnorm nlme plyr pssm survival]; broken = true; };
   wingui = derive2 { name="wingui"; version="0.2"; sha256="0yf6k33qpcjzyb7ckwsxpdw3pcsja2wsf08vaca7qw27yxrbmaa3"; depends=[Rcpp]; broken = true; };
   wiseR = derive2 { name="wiseR"; version="1.0.1"; sha256="187ylwhk06957x9zm5r0m6w9wg08im83myz3s4gr927ig8yv3b5f"; depends=[arules bnlearn DescTools dplyr DT graph HydeNet igraph linkcomm missRanger psych RBGL Rgraphviz rhandsontable rintrojs shiny shinyalert shinyBS shinycssloaders shinydashboard shinyWidgets visNetwork]; broken = true; };
   wkNNMI = derive2 { name="wkNNMI"; version="1.0.0"; sha256="0qpl1b2134kz9mjl38w93lp3g6kpv9ygv9hygpssm845k02hkw7c"; depends=[foreach infotheo]; broken = true; };
   wmlf = derive2 { name="wmlf"; version="0.1.2"; sha256="0zxw84l5v12r15hpyd1kbajjz3cbkn5g884kmj72y7yi0yi1b6d6"; depends=[waveslim]; broken = true; };
+  wordbankr = derive2 { name="wordbankr"; version="1.0.3"; sha256="1c09nj9gx71an6w6l4z4g08xpp8a36kygh4q140gi19d36ywjdra"; depends=[assertthat DBI dbplyr dplyr glue jsonlite lifecycle purrr quantregGrowth rlang RMySQL robustbase stringr tidyr]; broken = true; };
   wordgraph = derive2 { name="wordgraph"; version="0.1.0"; sha256="06q42sjdj7i680zqx66hsvrpmkrlcyxnvsk1lygnqhlv97ycl3vv"; depends=[dplyr ggplot2 ggraph plyr purrr tibble tidygraph]; broken = true; };
   wordmatch = derive2 { name="wordmatch"; version="1.0"; sha256="0zscp361qf79y1zsliga18hc7wj36cnydshrqb9pv67b65njrznz"; depends=[plyr reshape2]; broken = true; };
   workboots = derive2 { name="workboots"; version="0.2.0"; sha256="0n55iypiw59n1f09fbynsdznv5mz885rbz4gaqi48ig0hwz896b7"; depends=[assertthat dplyr generics lifecycle Metrics purrr rlang rsample tibble tidyr vip workflows]; broken = true; };
   worldriskpollr = derive2 { name="worldriskpollr"; version="0.7.4"; sha256="1m3apmdf0ksih7yq9bp5nkyyyxkp6hdw3jjx071df83c4iv8abm9"; depends=[curl dplyr httr janitor labelled magrittr rlang sjlabelled tidyr]; broken = true; };
   worms = derive2 { name="worms"; version="0.2.2"; sha256="183chjdi5qvsmdznvc9igcxaz769a37rwh5nzgvf5zf012a85wir"; depends=[httr plyr]; broken = true; };
+  woylier = derive2 { name="woylier"; version="0.0.5"; sha256="1xa2qdkkqnd6c98a15rfsa3m8jil7gipr4mann3dhkf0zl59g0a4"; depends=[dplyr geozoo tibble tourr]; broken = true; };
   wux = derive2 { name="wux"; version="2.2-1"; sha256="0iw0kf0wfspnpc83v7gxhcakmp0z34cccnm0jn9c2za9ay9l2swv"; depends=[abind class corpcor fields gdata Hmisc ncdf4 reshape rgdal rgeos rworldmap sp stringr]; broken = true; };
   wvtool = derive2 { name="wvtool"; version="1.0"; sha256="0x9awj6g5lzqp2lhwgh9ib7jmfdzyhwazrjvw1vwacqqfhbz8qxv"; depends=[]; broken = true; };
   x12GUI = derive2 { name="x12GUI"; version="0.13.0"; sha256="1mga7g9gwb3nv2qs27lz4n9rp6j3svads28hql88sxaif6is3nk1"; depends=[cairoDevice Hmisc lattice RGtk2 stringr x12]; broken = true; };
@@ -23527,6 +24004,7 @@ in with self; {
   xpose_nlmixr = derive2 { name="xpose.nlmixr"; version="0.3.0"; sha256="1qxcq18mp5zxc7karixjfi93zm5mvpfnvp8sd8x0ibdbq8vk20my"; depends=[crayon dplyr ggplot2 magrittr nlme nlmixr rlang stringr tibble tidyr vpc xpose]; broken = true; };
   xptr = derive2 { name="xptr"; version="1.1.3"; sha256="0352vs8dz61hgpwnf3r9r9haz3adg2wk9qxzrv313p1fcyfjz91v"; depends=[]; broken = true; };
   xspliner = derive2 { name="xspliner"; version="0.0.4"; sha256="1j3wlw39r3ahhdfq3rks1zhnlmz14f4wk7bl7gf94yffasqg6k2r"; depends=[dplyr ggplot2 magrittr mgcv pdp pROC purrr tidyr]; broken = true; };
+  xtal = derive2 { name="xtal"; version="1.15"; sha256="1zq3vd5x3vw6acn47yd2x7kflr9sm3znmdkm68cs64ha54jbl3vs"; depends=[]; broken = true; };
   xtensor = derive2 { name="xtensor"; version="0.14.1-0"; sha256="1qni98kxyaggb1ixmmj1hh1jmbz8rhji91nifgrjxc1wsvmvswh0"; depends=[Rcpp]; broken = true; };
   xtermStyle = derive2 { name="xtermStyle"; version="3.0.5"; sha256="1q4qq8w4sgxbbb1x0i4k5xndvwisvjszg830wspwb37wigxz8xvz"; depends=[]; broken = true; };
   xtreg2way = derive2 { name="xtreg2way"; version="1.0.0"; sha256="0wllz0frakmadavgpqhd2b8fiw6wgwh5wzd270czc6cm5bq9gfng"; depends=[MASS Matrix pracma]; broken = true; };
diff --git a/pkgs/development/r-modules/default.nix b/pkgs/development/r-modules/default.nix
index 8d4004d7580f3..cb5cc5220dfe8 100644
--- a/pkgs/development/r-modules/default.nix
+++ b/pkgs/development/r-modules/default.nix
@@ -310,12 +310,17 @@ let
     rmsb = [ self.rstantools ];
     gastempt = [ self.rstantools ];
     interactiveDisplay = [ self.BiocManager ];
+    disbayes = [ self.rstantools ];
+    tipsae = [ self.rstantools ];
+    TriDimRegression = [ self.rstantools ];
+    bbmix = [ self.rstantools ];
   };
 
   packagesWithNativeBuildInputs = {
     adbcpostgresql = [ pkgs.postgresql ];
     adimpro = [ pkgs.imagemagick ];
     animation = [ pkgs.which ];
+    Apollonius = with pkgs; [ pkg-config gmp.dev mpfr.dev ];
     arrow = with pkgs; [ pkg-config cmake ] ++ lib.optionals stdenv.isDarwin [ intltool ];
     audio = [ pkgs.portaudio ];
     BayesSAE = [ pkgs.gsl ];
@@ -323,6 +328,7 @@ let
     BayesXsrc = with pkgs; [ readline.dev ncurses gsl ];
     bioacoustics = [ pkgs.fftw.dev pkgs.cmake ];
     bigGP = [ pkgs.mpi ];
+    bigrquerystorage = with pkgs; [ grpc protobuf which ];
     bio3d = [ pkgs.zlib ];
     BiocCheck = [ pkgs.which ];
     Biostrings = [ pkgs.zlib ];
@@ -344,9 +350,14 @@ let
     diversitree = with pkgs; [ gsl fftw ];
     exactextractr = [ pkgs.geos ];
     EMCluster = [ pkgs.lapack ];
+    fangs = [ pkgs.cargo ];
+    fcl = [ pkgs.cargo ];
     fftw = [ pkgs.fftw.dev ];
     fftwtools = with pkgs; [ fftw.dev pkg-config ];
+    fingerPro = [ pkgs.gsl ];
     Formula = [ pkgs.gmp ];
+    frailtyMMpen = [ pkgs.gsl ];
+    gamstransfer = [ pkgs.zlib ];
     gdalraster = [ pkgs.pkg-config ];
     gdtools = with pkgs; [ cairo.dev fontconfig.lib freetype.dev ];
     GeneralizedWendland = [ pkgs.gsl ];
@@ -362,13 +373,20 @@ let
     gert = [ pkgs.libgit2 ];
     haven = with pkgs; [ zlib.dev ];
     hellorust = [ pkgs.cargo ];
+    hgwrr = [ pkgs.gsl ];
     h5vc = with pkgs; [ zlib.dev bzip2.dev xz.dev ];
     yyjsonr = with pkgs; [ zlib.dev ];
+    RNifti = with pkgs; [ zlib.dev ];
+    RNiftyReg = with pkgs; [ zlib.dev ];
     highs = [ pkgs.which pkgs.cmake ];
+    crc32c = [ pkgs.which pkgs.cmake ];
     rbedrock = [ pkgs.zlib.dev pkgs.which pkgs.cmake ];
     HiCseg = [ pkgs.gsl ];
     imager = [ pkgs.xorg.libX11.dev ];
+    imbibe = [ pkgs.zlib.dev ];
+    image_CannyEdges = with pkgs; [ fftw.dev libpng.dev ];
     iBMQ = [ pkgs.gsl ];
+    jack = [ pkgs.pkg-config ];
     JavaGD = [ pkgs.jdk ];
     jpeg = [ pkgs.libjpeg.dev ];
     jqr = [ pkgs.jq.dev ];
@@ -377,7 +395,10 @@ let
     kza = [ pkgs.fftw.dev ];
     leidenAlg = [ pkgs.gmp.dev ];
     Libra = [ pkgs.gsl ];
+    libstable4u = [ pkgs.gsl ];
+    heck = [ pkgs.cargo ];
     LOMAR = [ pkgs.gmp.dev ];
+    littler = [ pkgs.libdeflate ];
     lpsymphony = with pkgs; [ pkg-config gfortran gettext ];
     lwgeom = with pkgs; [ proj geos gdal ];
     rsbml = [ pkgs.pkg-config ];
@@ -390,6 +411,7 @@ let
     mzR = with pkgs; [ zlib netcdf ];
     nanonext = with pkgs; [ mbedtls nng ];
     ncdf4 = [ pkgs.netcdf ];
+    neojags = [ pkgs.jags ];
     nloptr = with pkgs; [ nlopt pkg-config ];
     n1qn1 = [ pkgs.gfortran ];
     odbc = [ pkgs.unixODBC ];
@@ -401,6 +423,7 @@ let
     pbdZMQ = [ pkgs.pkg-config ] ++ lib.optionals stdenv.isDarwin [ pkgs.which ];
     pcaL1 = [ pkgs.pkg-config pkgs.clp ];
     pdftools = [ pkgs.poppler.dev ];
+    PEPBVS = [ pkgs.gsl ];
     phytools = [ pkgs.which ];
     PKI = [ pkgs.openssl.dev ];
     png = [ pkgs.libpng.dev ];
@@ -425,7 +448,7 @@ let
     Rhpc = with pkgs; [ zlib bzip2.dev icu xz.dev mpi pcre.dev ];
     Rhtslib = with pkgs; [ zlib.dev automake autoconf bzip2.dev xz.dev curl.dev ];
     rjags = [ pkgs.jags ];
-    rJava = with pkgs; [ zlib bzip2.dev icu xz.dev pcre.dev jdk libzip ];
+    rJava = with pkgs; [ zlib bzip2.dev icu xz.dev pcre.dev jdk libzip libdeflate ];
     Rlibeemd = [ pkgs.gsl ];
     rmatio = [ pkgs.zlib.dev pkgs.pkg-config ];
     Rmpfr = with pkgs; [ gmp mpfr.dev ];
@@ -454,6 +477,7 @@ let
     sdcTable = with pkgs; [ gmp glpk ];
     seewave = with pkgs; [ fftw.dev libsndfile.dev ];
     seqinr = [ pkgs.zlib.dev ];
+    smcryptoR = with pkgs; [ cargo rustc which ];
     webp = [ pkgs.pkg-config ];
     seqminer = with pkgs; [ zlib.dev bzip2 ];
     sf = with pkgs; [ gdal proj geos libtiff curl ];
@@ -461,6 +485,10 @@ let
     string2path = [ pkgs.cargo ];
     terra = with pkgs; [ gdal proj geos ];
     tok = [ pkgs.cargo ];
+    rshift = [ pkgs.cargo ];
+    arcgisutils = with pkgs; [ cargo rustc ];
+    arcgisgeocode = with pkgs; [ cargo rustc ];
+    arcgisplaces = with pkgs; [ pkg-config openssl.dev cargo rustc ];
     apcf = with pkgs; [ geos ];
     SemiCompRisks = [ pkgs.gsl ];
     showtext = with pkgs; [ zlib libpng icu freetype.dev ];
@@ -483,7 +511,7 @@ let
     units = [ pkgs.udunits ];
     unigd = [ pkgs.pkg-config ];
     vdiffr = [ pkgs.libpng.dev ];
-    V8 = [ pkgs.v8 ];
+    V8 = [ pkgs.nodejs.libv8 ];
     XBRL = with pkgs; [ zlib libxml2.dev ];
     XLConnect = [ pkgs.jdk ];
     xml2 = [ pkgs.libxml2.dev ] ++ lib.optionals stdenv.isDarwin [ pkgs.perl ];
@@ -497,7 +525,7 @@ let
     Rsubread = [ pkgs.zlib.dev ];
     XVector = [ pkgs.zlib.dev ];
     Rsamtools = with pkgs; [ zlib.dev curl.dev bzip2 xz ];
-    rtracklayer = [ pkgs.zlib.dev ];
+    rtracklayer = with pkgs; [ zlib.dev curl.dev ];
     affyio = [ pkgs.zlib.dev ];
     snpStats = [ pkgs.zlib.dev ];
     vcfppR = [ pkgs.curl.dev pkgs.bzip2 pkgs.zlib.dev pkgs.xz];
@@ -533,6 +561,7 @@ let
     redux = [ pkgs.pkg-config ];
     rswipl = with pkgs; [ cmake pkg-config ];
     rrd = [ pkgs.pkg-config ];
+    surveyvoi = [ pkgs.pkg-config ];
     Rbwa = [ pkgs.zlib.dev ];
     trackViewer = [ pkgs.zlib.dev ];
     themetagenomics = [ pkgs.zlib.dev ];
@@ -544,16 +573,19 @@ let
     ragg = [ pkgs.pkg-config ];
     qqconf = [ pkgs.pkg-config ];
     qspray = [ pkgs.pkg-config ];
+    ratioOfQsprays = [ pkgs.pkg-config ];
+    symbolicQspray = [ pkgs.pkg-config ];
+    sphereTessellation = [ pkgs.pkg-config ];
     vapour = [ pkgs.pkg-config ];
   };
 
   packagesWithBuildInputs = {
     # sort -t '=' -k 2
-    asciicast = with pkgs; [ xz.dev bzip2.dev zlib.dev icu.dev ];
+    asciicast = with pkgs; [ xz.dev bzip2.dev zlib.dev icu.dev libdeflate ];
     island = [ pkgs.gsl.dev ];
     svKomodo = [ pkgs.which ];
     ulid = [ pkgs.zlib.dev ];
-    unrtf = with pkgs; [ xz.dev bzip2.dev zlib.dev icu.dev ];
+    unrtf = with pkgs; [ xz.dev bzip2.dev zlib.dev icu.dev libdeflate ];
     nat = [ pkgs.which ];
     nat_templatebrains = [ pkgs.which ];
     pbdZMQ = [ pkgs.zeromq ] ++ lib.optionals stdenv.isDarwin [ pkgs.darwin.binutils ];
@@ -572,7 +604,7 @@ let
     RMark = [ pkgs.which ];
     RPushbullet = [ pkgs.which ];
     stpphawkes = [ pkgs.gsl ];
-    registr = with pkgs; [ icu.dev zlib.dev bzip2.dev xz.dev ];
+    registr = with pkgs; [ icu.dev zlib.dev bzip2.dev xz.dev libdeflate ];
     RCurl = [ pkgs.curl.dev ];
     R2SWF = [ pkgs.pkg-config ];
     rDEA = [ pkgs.glpk ];
@@ -628,6 +660,7 @@ let
     Rsymphony = with pkgs; [ symphony doxygen graphviz subversion cgl clp];
     tcltk2 = with pkgs; [ tcl tk ];
     rswipl = with pkgs; [ ncurses.dev libxcrypt zlib.dev ];
+    GrafGen = [ pkgs.zlib ];
     tikzDevice = with pkgs; [ which texliveMedium ];
     gridGraphics = [ pkgs.which ];
     adimpro = with pkgs; [ which xorg.xdpyinfo ];
@@ -670,6 +703,7 @@ let
     zlib = [ pkgs.zlib.dev ];
     divest = [ pkgs.zlib.dev ];
     hipread = [ pkgs.zlib.dev ];
+    jack = with pkgs; [ gmp.dev mpfr.dev ];
     jackalope = with pkgs; [ zlib.dev xz.dev bzip2.dev ];
     largeList = [ pkgs.zlib.dev ];
     mappoly = [ pkgs.zlib.dev ];
@@ -725,10 +759,13 @@ let
     RITCH = [ pkgs.zlib.dev ];
     RcppMeCab = [ pkgs.mecab ];
     PING = [ pkgs.gsl ];
+    PROJ = [ pkgs.proj.dev ];
     RcppAlgos = [ pkgs.gmp.dev ];
     RcppBigIntAlgos = [ pkgs.gmp.dev ];
     spaMM = [ pkgs.gsl ];
     shrinkTVP = [ pkgs.gsl ];
+    sbrl = with pkgs; [ gsl gmp.dev ];
+    surveyvoi = with pkgs; [ gmp.dev mpfr.dev ];
     unigd = with pkgs; [ cairo.dev libpng.dev ];
     HilbertVisGUI = [ pkgs.gtkmm2.dev ];
     textshaping = with pkgs; [ harfbuzz.dev freetype.dev fribidi libpng ];
@@ -739,216 +776,103 @@ let
     qqconf = [ pkgs.fftw.dev ];
     spFW = [ pkgs.fftw.dev ];
     qspray = with pkgs; [ gmp.dev mpfr.dev ];
+    ratioOfQsprays = with pkgs; [ gmp.dev mpfr.dev ];
+    symbolicQspray = with pkgs; [ gmp.dev mpfr.dev ];
+    sphereTessellation = with pkgs; [ gmp.dev mpfr.dev ];
     vapour = with pkgs; [ proj.dev gdal ];
     MedianaDesigner = [ pkgs.zlib.dev ];
     ChemmineOB = [ pkgs.eigen ];
   };
 
   packagesRequiringX = [
-    "accrual"
-    "ade4TkGUI"
-    "analogue"
     "analogueExtra"
     "AnalyzeFMRI"
     "AnnotLists"
-    "AnthropMMD"
-    "aplpack"
     "asbio"
-    "BAT"
     "BCA"
-    "betapart"
-    "BiodiversityR"
-    "bio_infer"
-    "bipartite"
     "biplotbootGUI"
-    "blender"
     "cairoDevice"
-    "canceR"
-    "CCTpack"
     "cncaGUI"
-    "cocorresp"
     "CommunityCorrelogram"
-    "confidence"
-    "constrainedKriging"
-    "ConvergenceConcepts"
-    "cpa"
-    "DALY"
     "dave"
-    "Deducer"
     "DeducerPlugInExample"
     "DeducerPlugInScaling"
     "DeducerSpatial"
     "DeducerSurvival"
     "DeducerText"
     "Demerelate"
-    "detrendeR"
+    "diveR"
     "dpa"
     "dynamicGraph"
-    "dynBiplotGUI"
     "EasyqpcR"
-    "EcoVirtual"
     "exactLoglinTest"
-    "fat2Lpoly"
-    "fbati"
-    "FD"
-    "feature"
-    "FeedbackTS"
-    "FFD"
-    "fgui"
     "fisheyeR"
     "forams"
     "forensim"
-    "FreeSortR"
-    "fscaret"
-    "gcmr"
-    "geomorph"
-    "geoR"
-    "georob"
     "GGEBiplotGUI"
-    "gnm"
-    "GrapheR"
-    "GroupSeq"
     "gsubfn"
-    "GUniFrac"
     "gWidgets2RGtk2"
     "gWidgets2tcltk"
-    "HH"
     "HiveR"
     "ic50"
     "iDynoR"
-    "in2extRemes"
     "iplots"
-    "isopam"
-    "IsotopeR"
-    "JGR"
-    "KappaGUI"
     "likeLTD"
-    "logmult"
     "loon"
     "loon_ggplot"
-    "LS2Wstat"
-    "MareyMap"
-    "memgene"
-    "metacom"
+    "loon_shiny"
+    "loon_tourr"
     "Meth27QC"
-    "migui"
-    "miniGUI"
     "mixsep"
-    "MplusAutomation"
-    "mpmcorrelogram"
-    "mritc"
-    "multgee"
     "multibiplotGUI"
     "OligoSpecificitySystem"
-    "onemap"
-    "OpenRepGrid"
+    "optbdmaeAT"
+    "optrcdmaeAT"
     "paleoMAS"
-    "pbatR"
-    "PBSadmb"
-    "PBSmodelling"
-    "PCPS"
-    "pez"
-    "phylotools"
-    "picante"
-    "plotSEMM"
-    "plsRbeta"
-    "plsRglm"
-    "PopGenReport"
-    "poppr"
-    "powerpkg"
-    "PredictABEL"
-    "prefmod"
-    "PrevMap"
-    "r4ss"
     "RandomFields"
-    "rareNMtests"
-    "rAverage"
     "rfviz"
     "RclusTool"
-    "Rcmdr"
     "RcmdrPlugin_coin"
-    "RcmdrPlugin_depthTools"
-    "RcmdrPlugin_DoE"
-    "RcmdrPlugin_EACSPIR"
-    "RcmdrPlugin_EBM"
-    "RcmdrPlugin_EcoVirtual"
-    "RcmdrPlugin_EZR"
-    "RcmdrPlugin_FactoMineR"
     "RcmdrPlugin_FuzzyClust"
-    "RcmdrPlugin_HH"
     "RcmdrPlugin_IPSUR"
-    "RcmdrPlugin_KMggplot2"
     "RcmdrPlugin_lfstat"
-    "RcmdrPlugin_MA"
-    "RcmdrPlugin_MPAStats"
-    "RcmdrPlugin_orloca"
     "RcmdrPlugin_PcaRobust"
     "RcmdrPlugin_plotByGroup"
     "RcmdrPlugin_pointG"
-    "RcmdrPlugin_ROC"
     "RcmdrPlugin_sampling"
     "RcmdrPlugin_SCDA"
     "RcmdrPlugin_SLC"
-    "RcmdrPlugin_sos"
     "RcmdrPlugin_steepness"
-    "RcmdrPlugin_survival"
-    "RcmdrPlugin_TeachingDemos"
-    "RcmdrPlugin_temis"
-    "RcmdrPlugin_UCA"
-    "recluster"
-    "relimp"
-    "RHRV"
     "rich"
-    "RNCEP"
-    "RSDA"
     "RSurvey"
     "simba"
-    "Simile"
     "SimpleTable"
     "SOLOMON"
-    "soundecology"
-    "spatsurv"
-    "sqldf"
-    "SSDforR"
-    "statcheck"
-    "StatDA"
-    "STEPCAM"
-    "stosim"
+    "soptdmaeA"
     "strvalidator"
     "stylo"
-    "svDialogstcltk"
-    "svIDE"
-    "svSocket"
-    "svWidgets"
-    "SYNCSA"
     "SyNet"
     "switchboard"
-    "tcltk2"
-    "TestScorer"
-    "TIMP"
-    "tkrplot"
-    "tmap"
-    "tspmeta"
+    "tkImgR"
     "TTAinterfaceTrendAnalysis"
     "twiddler"
     "uHMM"
-    "vcdExtra"
     "VecStatGraphs3D"
-    "vegan"
-    "vegan3d"
-    "vegclust"
-    "x12GUI"
   ];
 
   packagesRequiringHome = [
     "aroma_affymetrix"
     "aroma_cn"
     "aroma_core"
+    "avotrex"
+    "beer"
     "ceramic"
     "connections"
+    "covidmx"
     "csodata"
     "DiceView"
     "facmodTS"
+    "gasanalyzer"
     "margaret"
     "MSnID"
     "OmnipathR"
@@ -1048,6 +972,7 @@ let
     "benchmarkfdrData2019"
     "bodymapRat"
     "clustifyrdatahub"
+    "CTexploreR"
     "depmap"
     "emtdata"
     "metaboliteIDmapping"
@@ -1069,6 +994,11 @@ let
     # this is a straightforward approach. Example where patching was necessary
     # -> arrow 14.0.0.2 on CRAN; was lagging behind libarrow release:
     #   https://github.com/apache/arrow/issues/39698 )
+
+    vegan3d = old.vegan3d.overrideAttrs (attrs: {
+      RGL_USE_NULL = "true";
+    });
+
     arrow = old.arrow.overrideAttrs (attrs: {
       src = pkgs.arrow-cpp.src;
       name = "r-arrow-${pkgs.arrow-cpp.version}";
@@ -1157,10 +1087,18 @@ let
       preConfigure = "patchShebangs configure";
     });
 
+    Colossus = old.Colossus.overrideAttrs (_: {
+      postPatch = "patchShebangs configure";
+    });
+
    gmailr = old.gmailr.overrideAttrs (attrs: {
       postPatch = "patchShebangs configure";
     });
 
+    heck = old.heck.overrideAttrs (attrs: {
+      postPatch = "patchShebangs configure";
+    });
+
    surtvep = old.surtvep.overrideAttrs (attrs: {
       postPatch = "patchShebangs configure";
     });
@@ -1178,6 +1116,10 @@ let
       patchPhase = "patchShebangs configure";
     });
 
+    RcppGetconf = old.RcppGetconf.overrideAttrs (attrs: {
+      postPatch = "patchShebangs configure";
+    });
+
     SpliceWiz = old.SpliceWiz.overrideAttrs (attrs: {
       postPatch = "patchShebangs configure";
     });
@@ -1203,6 +1145,26 @@ let
       patchPhase = "patchShebangs configure";
     });
 
+    cisPath = old.cisPath.overrideAttrs (attrs: {
+      hardeningDisable = [ "format" ];
+    });
+
+    HilbertVis = old.HilbertVis.overrideAttrs (attrs: {
+      hardeningDisable = [ "format" ];
+    });
+
+    HilbertVisGUI = old.HilbertVisGUI.overrideAttrs (attrs: {
+      hardeningDisable = [ "format" ];
+    });
+
+    MANOR = old.MANOR.overrideAttrs (attrs: {
+      hardeningDisable = [ "format" ];
+    });
+
+    rGADEM = old.rGADEM.overrideAttrs (attrs: {
+      hardeningDisable = [ "format" ];
+    });
+
    rsgeo = old.rsgeo.overrideAttrs (attrs: {
       nativeBuildInputs = [ pkgs.cargo ] ++ attrs.nativeBuildInputs;
       postPatch = "patchShebangs configure";
@@ -1303,19 +1265,12 @@ let
       propagatedBuildInputs = attrs.propagatedBuildInputs ++ [ pkgs.quarto ];
       postPatch = ''
         substituteInPlace "R/quarto.R" \
-          --replace "path_env <- Sys.getenv(\"QUARTO_PATH\", unset = NA)" "path_env <- Sys.getenv(\"QUARTO_PATH\", unset = '${lib.getBin pkgs.quarto}/bin/quarto')"
+          --replace-fail "Sys.getenv(\"QUARTO_PATH\", unset = NA_character_)" "Sys.getenv(\"QUARTO_PATH\", unset = '${lib.getBin pkgs.quarto}/bin/quarto')"
       '';
     });
 
-    # backported patch from 1.9
-    Rhisat2= old.Rhisat2.overrideAttrs (attrs: {
-      patches = [ (pkgs.fetchpatch {
-        url = "https://github.com/fmicompbio/Rhisat2/commit/a0f27b018831b39f080f99e6db8a4b876fd56fc3.patch";
-        sha256 = "sha256-FbYkP/WFmbfQmxArkHgushgVgY0XSypbK8Z5ivQK8k4=";
-      }) ];
-      env = (attrs.env or { }) // {
-        NIX_CFLAGS_COMPILE = attrs.env.NIX_CFLAGS_COMPILE + " -w";
-      };
+    Rhisat2 = old.Rhisat2.overrideAttrs (attrs: {
+      enableParallelBuilding = false;
     });
 
     s2 = old.s2.overrideAttrs (attrs: {
@@ -1335,6 +1290,14 @@ let
       ];
     });
 
+    covidsymptom = old.covidsymptom.overrideAttrs (attrs: {
+      preConfigure = "rm R/covidsymptomdata.R";
+    });
+
+    cubature = old.cubature.overrideAttrs (attrs: {
+      enableParallelBuilding = false;
+    });
+
     RVowpalWabbit = old.RVowpalWabbit.overrideAttrs (attrs: {
       configureFlags = [
         "--with-boost=${pkgs.boost.dev}" "--with-boost-libdir=${pkgs.boost.out}/lib"
@@ -1372,10 +1335,6 @@ let
       PKG_LIBS = "-L${pkgs.blas}/lib -lblas -L${pkgs.lapack}/lib -llapack";
     });
 
-    spMC = old.spMC.overrideAttrs (attrs: {
-      patches = [ ./patches/spMC.patch ];
-    });
-
     FLAMES = old.FLAMES.overrideAttrs (attrs: {
       patches = [ ./patches/FLAMES.patch ];
     });
@@ -1407,12 +1366,15 @@ let
     V8 = old.V8.overrideAttrs (attrs: {
       postPatch = ''
         substituteInPlace configure \
-          --replace " -lv8_libplatform" ""
+          --replace-fail " -lv8_libplatform" ""
+        # Bypass the test checking if pointer compression is needed
+        substituteInPlace configure \
+          --replace-fail "./pctest1" "true"
       '';
 
       preConfigure = ''
-        export INCLUDE_DIR=${pkgs.v8}/include
-        export LIB_DIR=${pkgs.v8}/lib
+        export INCLUDE_DIR=${pkgs.nodejs.libv8}/include
+        export LIB_DIR=${pkgs.nodejs.libv8}/lib
         patchShebangs configure
       '';
 
@@ -1454,7 +1416,7 @@ let
     });
 
     rgoslin = old.rgoslin.overrideAttrs (attrs: {
-      patches = [ ./patches/rgoslin.patch ];
+      enableParallelBuilding = false;
     });
 
     rpanel = old.rpanel.overrideAttrs (attrs: {
@@ -1464,6 +1426,16 @@ let
       TCLLIBPATH = "${pkgs.bwidget}/lib/bwidget${pkgs.bwidget.version}";
     });
 
+    networkscaleup = old.networkscaleup.overrideAttrs (attrs: {
+      env = (attrs.env or { }) // {
+        # needed to avoid "log limit exceeded" on Hydra
+        NIX_CFLAGS_COMPILE = attrs.env.NIX_CFLAGS_COMPILE + " -Wno-ignored-attributes";
+      };
+
+      # consumes a lot of resources in parallel
+      enableParallelBuilding = false;
+    });
+
     RPostgres = old.RPostgres.overrideAttrs (attrs: {
       preConfigure = ''
         export INCLUDE_DIR=${pkgs.postgresql}/include
@@ -1494,10 +1466,69 @@ let
         '';
     });
 
+    FlexReg = old.FlexReg.overrideAttrs (attrs: {
+      env = (attrs.env or { }) // {
+        # needed to avoid "log limit exceeded" on Hydra
+        NIX_CFLAGS_COMPILE = attrs.env.NIX_CFLAGS_COMPILE + " -Wno-ignored-attributes";
+      };
+
+      # consumes a lot of resources in parallel
+      enableParallelBuilding = false;
+    });
+
     geojsonio = old.geojsonio.overrideAttrs (attrs: {
       buildInputs = [ cacert ] ++ attrs.buildInputs;
     });
 
+
+    immunotation = let
+      MHC41alleleList = fetchurl {
+        url = "https://services.healthtech.dtu.dk/services/NetMHCpan-4.1/allele.list";
+        hash = "sha256-CRZ+0uHzcq5zK5eONucAChXIXO8tnq5sSEAS80Z7jhg=";
+      };
+
+      MHCII40alleleList = fetchurl {
+        url = "https://services.healthtech.dtu.dk/services/NetMHCIIpan-4.0/alleles_name.list";
+        hash = "sha256-K4Ic2NUs3P4IkvOODwZ0c4Yh8caex5Ih0uO5jXRHp40=";
+      };
+
+      # List of valid countries, regions and ethnic groups
+      # The original page is changing a bit every day, but the relevant
+      # content does not. Use archive.org to get a stable snapshot.
+      # It can be updated from time to time, or when the package becomes
+      # deficient. This may be difficult to know.
+      # Update the snapshot date, and add id_ after it, as described here:
+      # https://web.archive.org/web/20130806040521/http://faq.web.archive.org/page-without-wayback-code/
+      validGeographics = fetchurl {
+        url = "https://web.archive.org/web/20240418194005id_/http://www.allelefrequencies.net/hla6006a.asp";
+        hash = "sha256-m7Wkmh/cPxeqn94LwoznIh+fcFXskmSGErUYj6kTqak=";
+      };
+    in old.immunotation.overrideAttrs (attrs: {
+      patches = [ ./patches/immunotation.patch ];
+      postPatch = ''
+        substituteInPlace "R/external_resources_input.R" --replace-fail \
+          "nix-NetMHCpan-4.1-allele-list" ${MHC41alleleList}
+
+        substituteInPlace "R/external_resources_input.R" --replace-fail \
+          "nix-NETMHCIIpan-4.0-alleles-name-list" ${MHCII40alleleList}
+
+        substituteInPlace "R/AFND_interface.R" --replace-fail \
+          "nix-valid-geographics" ${validGeographics}
+      '';
+    });
+
+    nearfar = let
+      angrist = fetchurl {
+        url = "https://raw.githubusercontent.com/joerigdon/nearfar/master/angrist.csv";
+        hash = "sha256-lb+HMHnRGonc26merFGB0B7Vk1Lk+sIJlay+JtQC8m4=";
+      };
+    in old.nearfar.overrideAttrs (attrs: {
+      postPatch = ''
+        substituteInPlace "R/nearfar.R" --replace-fail \
+         'url("https://raw.githubusercontent.com/joerigdon/nearfar/master/angrist.csv")'  '"${angrist}"'
+      '';
+    });
+
     rstan = old.rstan.overrideAttrs (attrs: {
       env = (attrs.env or { }) // {
         NIX_CFLAGS_COMPILE = attrs.env.NIX_CFLAGS_COMPILE + " -DBOOST_PHOENIX_NO_VARIADIC_EXPRESSION";
@@ -1607,6 +1638,15 @@ let
       hardeningDisable = [ "format" ];
     });
 
+    Rbwa = old.Rbwa.overrideAttrs (attrs: {
+      # Parallel build cleans up *.o before they can be packed in a library
+      postPatch = ''
+        substituteInPlace src/Makefile --replace-fail \
+          "all:\$(PROG) ../inst/bwa clean" \
+          "all:\$(PROG) ../inst/bwa" \
+      '';
+    });
+
     ROracle = old.ROracle.overrideAttrs (attrs: {
       configureFlags = [
         "--with-oci-lib=${pkgs.oracle-instantclient.lib}/lib"
@@ -1670,14 +1710,37 @@ let
       postPatch = "patchShebangs configure";
     });
 
+    SharedObject = old.SharedObject.overrideAttrs (attrs: {
+      # backport PR resolving build issues: https://github.com/Jiefei-Wang/SharedObject/pull/17
+      patches = let inherit (pkgs) fetchpatch; in [
+        (fetchpatch {
+          url = "https://github.com/Jiefei-Wang/SharedObject/pull/17/commits/50c4b2964649d7f5a14d843bd7089ab62650fcd3.patch";
+          sha256 = "sha256-zn535IeOYRvyQ2yxgoGEq2wccrl9xdu9nREmy7sV+PQ=";
+        })
+        (fetchpatch {
+          url = "https://github.com/Jiefei-Wang/SharedObject/pull/17/commits/bf096a39858e9210cbe246d4b136905d4cfbfaf4.patch";
+          sha256 = "sha256-Z+BZOkFnLgIBiVuPsAHp7bMXzADcvuHV4hILdmLvd+k=";
+        })
+      ];
+    });
+
     httr2 = old.httr2.overrideAttrs (attrs: {
       preConfigure = "patchShebangs configure";
     });
 
+    dbarts = old.dbarts.override { platforms = lib.platforms.x86_64 ++ lib.platforms.x86; };
+
     geomorph = old.geomorph.overrideAttrs (attrs: {
       RGL_USE_NULL = "true";
     });
 
+    gpuMagic = old.gpuMagic.overrideAttrs (_: {
+      hardeningDisable = ["format"];
+    });
+
+    Rdisop = old.Rdisop.overrideAttrs (_: {
+      hardeningDisable = ["format"];
+    });
 
     opencv = let
       opencvGtk = pkgs.opencv.override (old : { enableGtk2 = true; });
@@ -1723,6 +1786,10 @@ let
       '';
     });
 
+    oligo = old.oligo.overrideAttrs (_: {
+      hardeningDisable = ["format"];
+    });
+
     tesseract = old.tesseract.overrideAttrs (_: {
       preConfigure = ''
         substituteInPlace configure \
diff --git a/pkgs/development/r-modules/generate-r-packages.R b/pkgs/development/r-modules/generate-r-packages.R
index 2395329a645ac..af2678b03105f 100755
--- a/pkgs/development/r-modules/generate-r-packages.R
+++ b/pkgs/development/r-modules/generate-r-packages.R
@@ -12,9 +12,9 @@ if ("release" %in% biocVersion$BiocStatus) {
   biocVersion <-  max(as.numeric(as.character(biocVersion$Bioc)))
 }
 
-mirrorUrls <- list( bioc=paste0("http://bioconductor.statistik.tu-dortmund.de/packages/", biocVersion, "/bioc/src/contrib/")
-                  , "bioc-annotation"=paste0("http://bioconductor.statistik.tu-dortmund.de/packages/", biocVersion, "/data/annotation/src/contrib/")
-                  , "bioc-experiment"=paste0("http://bioconductor.statistik.tu-dortmund.de/packages/", biocVersion, "/data/experiment/src/contrib/")
+mirrorUrls <- list( bioc=paste0("http://bioconductor.org/packages/", biocVersion, "/bioc/src/contrib/")
+                  , "bioc-annotation"=paste0("http://bioconductor.org/packages/", biocVersion, "/data/annotation/src/contrib/")
+                  , "bioc-experiment"=paste0("http://bioconductor.org/packages/", biocVersion, "/data/experiment/src/contrib/")
                   , cran="https://cran.r-project.org/src/contrib/"
                   )
 
diff --git a/pkgs/development/r-modules/patches/immunotation.patch b/pkgs/development/r-modules/patches/immunotation.patch
new file mode 100644
index 0000000000000..2019e8e50a029
--- /dev/null
+++ b/pkgs/development/r-modules/patches/immunotation.patch
@@ -0,0 +1,47 @@
+diff --git a/R/AFND_interface.R b/R/AFND_interface.R
+index b62e8e0..0f22d85 100644
+--- a/R/AFND_interface.R
++++ b/R/AFND_interface.R
+@@ -244,9 +244,9 @@ check_population <- function(hla_population) {
+ #' @return list of valid countries, regions and ethnic origin
+ #' @keywords internal
+ get_valid_geographics <- function() {
+-    url <- "http://www.allelefrequencies.net/hla6006a.asp?"
+-    html_input <- getURL(url, read_method = "html")
+-    
++    # http://www.allelefrequencies.net/hla6006a.asp?
++    html_input <- xml2::read_html("nix-valid-geographics")
++      
+     rvest_tables <- rvest::html_table(html_input, fill = TRUE)
+     
+     # country
+diff --git a/R/external_resources_input.R b/R/external_resources_input.R
+index c4b1dc1..8fc5881 100644
+--- a/R/external_resources_input.R
++++ b/R/external_resources_input.R
+@@ -74,16 +74,17 @@ getURL <- function(URL, N.TRIES=2L,
+ # MHC I
+ # netmhcI_input_template is an internal variable containing list of valid 
+ # NetMHCpan input alleles
+-netmhcI_input_template <- getURL(
+-    URL="https://services.healthtech.dtu.dk/services/NetMHCpan-4.1/allele.list",
+-    read_method = "delim", delim = "\t",
+-    col_names = c("netmhc_input", "hla_chain_name", "HLA_gene"))
++netmhcI_input_template <- readr::read_delim(
++        # https://services.healthtech.dtu.dk/services/NetMHCpan-4.1/allele.list
++	"nix-NetMHCpan-4.1-allele-list",
++	delim = "\t",
++	skip = 0,
++        col_names = c("netmhc_input", "hla_chain_name", "HLA_gene")
++    )
+ 
+ # MHC II
+-lines <- getURL(
+-    URL = paste0("https://services.healthtech.dtu.dk/services/",
+-    "NetMHCIIpan-4.0/alleles_name.list"),
+-    read_method = "lines")
++# https://services.healthtech.dtu.dk/services/NetMHCIIpan-4.0/alleles_name.list
++lines <- readr::read_lines("nix-NETMHCIIpan-4.0-alleles-name-list")
+ lines_rep <- stringr::str_replace_all(lines, "\t+|\\s\\s+", "\t")
+ netmhcII_input_template <- suppressWarnings(
+     suppressMessages(read.delim(textConnection(lines_rep), sep = "\t")))
diff --git a/pkgs/development/r-modules/patches/rgoslin.patch b/pkgs/development/r-modules/patches/rgoslin.patch
deleted file mode 100644
index 4e17b69b383f1..0000000000000
--- a/pkgs/development/r-modules/patches/rgoslin.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/cppgoslin/cppgoslin/domain/StringFunctions.h b/src/cppgoslin/cppgoslin/domain/StringFunctions.h
-index 70e8544..de5c040 100644
---- a/src/cppgoslin/cppgoslin/domain/StringFunctions.h
-+++ b/src/cppgoslin/cppgoslin/domain/StringFunctions.h
-@@ -35,6 +35,7 @@ SOFTWARE.
- #include "cppgoslin/domain/Element.h"
- #include <algorithm>
- #include <cctype>
-+#include <cstdint>
- 
- 
- #define contains_val(X, Y) ((X).find(Y) != (X).end())
diff --git a/pkgs/development/r-modules/patches/spMC.patch b/pkgs/development/r-modules/patches/spMC.patch
deleted file mode 100644
index 04239d721c077..0000000000000
--- a/pkgs/development/r-modules/patches/spMC.patch
+++ /dev/null
@@ -1,8 +0,0 @@
-Only in spMC_orig: spMC
-diff -ru -x '*~' spMC_orig/src/Makevars spMC/src/Makevars
---- spMC_orig/src/Makevars	2014-09-19 21:23:30.000000000 +0900
-+++ spMC/src/Makevars	2014-10-25 18:14:48.366954769 +0900
-@@ -1,2 +1,2 @@
- PKG_CFLAGS=$(SHLIB_OPENMP_CFLAGS)
--PKG_LIBS=$(SHLIB_OPENMP_CFLAGS) $(BLAS_LIBS) $(LAPACK_LIBS) $(FLIBS)
-+PKG_LIBS=$(SHLIB_OPENMP_CFLAGS) $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)
diff --git a/pkgs/development/rocm-modules/5/rocm-runtime/default.nix b/pkgs/development/rocm-modules/5/rocm-runtime/default.nix
index f94f49d00bd4c..58730f40817fe 100644
--- a/pkgs/development/rocm-modules/5/rocm-runtime/default.nix
+++ b/pkgs/development/rocm-modules/5/rocm-runtime/default.nix
@@ -7,7 +7,7 @@
 , xxd
 , rocm-device-libs
 , rocm-thunk
-, libelf
+, elfutils
 , libdrm
 , numactl
 , valgrind
@@ -35,7 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   buildInputs = [
     rocm-thunk
-    libelf
+    elfutils
     libdrm
     numactl
     valgrind
diff --git a/pkgs/development/rocm-modules/6/hiprand/default.nix b/pkgs/development/rocm-modules/6/hiprand/default.nix
index 7251a0e5a07e5..1541ff3ef95f9 100644
--- a/pkgs/development/rocm-modules/6/hiprand/default.nix
+++ b/pkgs/development/rocm-modules/6/hiprand/default.nix
@@ -66,7 +66,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A HIP wrapper for rocRAND and cuRAND";
+    description = "HIP wrapper for rocRAND and cuRAND";
     homepage = "https://github.com/ROCm/hipRAND";
     license = with licenses; [ mit ];
     maintainers = teams.rocm.members;
diff --git a/pkgs/development/rocm-modules/6/rocm-runtime/default.nix b/pkgs/development/rocm-modules/6/rocm-runtime/default.nix
index f603b708265de..1e728fb73cf79 100644
--- a/pkgs/development/rocm-modules/6/rocm-runtime/default.nix
+++ b/pkgs/development/rocm-modules/6/rocm-runtime/default.nix
@@ -8,7 +8,7 @@
 , xxd
 , rocm-device-libs
 , rocm-thunk
-, libelf
+, elfutils
 , libdrm
 , numactl
 , valgrind
@@ -36,7 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   buildInputs = [
     rocm-thunk
-    libelf
+    elfutils
     libdrm
     numactl
     valgrind
diff --git a/pkgs/development/ruby-modules/bundled-common/default.nix b/pkgs/development/ruby-modules/bundled-common/default.nix
index cd2f6f379efc5..3bb95521132b0 100644
--- a/pkgs/development/ruby-modules/bundled-common/default.nix
+++ b/pkgs/development/ruby-modules/bundled-common/default.nix
@@ -23,6 +23,7 @@
 , nativeBuildInputs ? []
 , buildInputs ? []
 , extraConfigPaths ? []
+, passthru ? {}
 , ...
 }@args:
 
@@ -182,7 +183,7 @@ let
             exit 1
           '';
         };
-    });
+    } // passthru);
   };
 
   basicEnv =
diff --git a/pkgs/development/ruby-modules/bundler/default.nix b/pkgs/development/ruby-modules/bundler/default.nix
index b9389603670d7..581c2544a2205 100644
--- a/pkgs/development/ruby-modules/bundler/default.nix
+++ b/pkgs/development/ruby-modules/bundler/default.nix
@@ -4,8 +4,8 @@ buildRubyGem rec {
   inherit ruby;
   name = "${gemName}-${version}";
   gemName = "bundler";
-  version = "2.5.9";
-  source.sha256 = "sha256-4rYTJb41m85U6w/tiEBO/mfl4fgAPTSiIYQeO3Za7AY=";
+  version = "2.5.11";
+  source.sha256 = "sha256-3XhL/lODSzmlbmQtvG4eyhmi5kVOTVOZTLcpgAWsTC4=";
   dontPatchShebangs = true;
 
   postFixup = ''
diff --git a/pkgs/development/ruby-modules/gem-config/default.nix b/pkgs/development/ruby-modules/gem-config/default.nix
index 02d014bef8995..2e59b8a99cc11 100644
--- a/pkgs/development/ruby-modules/gem-config/default.nix
+++ b/pkgs/development/ruby-modules/gem-config/default.nix
@@ -18,7 +18,7 @@
 # (to make gems behave if necessary).
 
 { lib, fetchurl, writeScript, ruby, libkrb5, libxml2, libxslt, python2, stdenv, which
-, libiconv, postgresql, v8, clang, sqlite, zlib, imagemagick, lasem
+, libiconv, postgresql, nodejs, clang, sqlite, zlib, imagemagick, lasem
 , pkg-config , ncurses, xapian, gpgme, util-linux, tzdata, icu, libffi
 , cmake, libssh2, openssl, openssl_1_1, libmysqlclient, git, perl, pcre, pcre2, gecode_3, curl
 , libsodium, snappy, libossp_uuid, lxc, libpcap, xorg, gtk2, gtk3, buildRubyGem
@@ -28,7 +28,7 @@
 , bundler, libsass, dart-sass, libexif, libselinux, libsepol, shared-mime-info, libthai, libdatrie
 , CoreServices, DarwinTools, cctools, libtool, discount, exiv2, libepoxy, libxkbcommon, libmaxminddb, libyaml
 , cargo, rustc, rustPlatform
-, autoSignDarwinBinariesHook, fetchpatch
+, autoSignDarwinBinariesHook
 }@args:
 
 let
@@ -476,7 +476,7 @@ in
   # otherwise the gem will fail to link to the libv8 binary.
   # see: https://github.com/cowboyd/libv8/pull/161
   libv8 = attrs: {
-    buildInputs = [ which v8 python2 ];
+    buildInputs = [ which nodejs.libv8 python2 ];
     buildFlags = [ "--with-system-v8=true" ];
     dontBuild = false;
     # The gem includes broken symlinks which are ignored during unpacking, but
@@ -496,7 +496,7 @@ in
   };
 
   execjs = attrs: {
-    propagatedBuildInputs = [ v8 ];
+    propagatedBuildInputs = [ nodejs.libv8 ];
   };
 
   libxml-ruby = attrs: {
diff --git a/pkgs/development/ruby-modules/gem/default.nix b/pkgs/development/ruby-modules/gem/default.nix
index 409c2c9d027b8..6f3245849f68c 100644
--- a/pkgs/development/ruby-modules/gem/default.nix
+++ b/pkgs/development/ruby-modules/gem/default.nix
@@ -62,7 +62,7 @@ let
     if type == "gem" then
       fetchurl {
         urls = map (
-          remote: "${remote}/gems/${gemName}-${version}.gem"
+          remote: "${remote}/gems/${gemName}-${suffix}.gem"
         ) (attrs.source.remotes or [ "https://rubygems.org" ]);
         inherit (attrs.source) sha256;
       }
@@ -80,6 +80,8 @@ let
   suffix =
     if type == "git" then
       builtins.substring 0 12 attrs.source.rev
+    else if platform != "ruby" then
+      "${version}-${platform}"
     else
       version;
 
diff --git a/pkgs/development/scheme-modules/scheme-bytestructures/default.nix b/pkgs/development/scheme-modules/scheme-bytestructures/default.nix
index cfdb39e586163..b0ad8d4ec1b0a 100644
--- a/pkgs/development/scheme-modules/scheme-bytestructures/default.nix
+++ b/pkgs/development/scheme-modules/scheme-bytestructures/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "scheme-bytestructures";
-  version = "2.0.1";
+  version = "2.0.2";
 
   src = fetchFromGitHub {
     owner = "TaylanUB";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Wvs288K8BVjUuWvvzpDGBwOxL7mAXjVtgIwJAsQd0L4=";
+    sha256 = "sha256-7FK1dXD1Qz6fFYjNUtHMaDGaezHLVaDvdgOboNNw0Lc=";
   };
 
   strictDeps = true;
diff --git a/pkgs/development/skaware-packages/execline/default.nix b/pkgs/development/skaware-packages/execline/default.nix
index fc8dffe32fdee..1b995df6d485f 100644
--- a/pkgs/development/skaware-packages/execline/default.nix
+++ b/pkgs/development/skaware-packages/execline/default.nix
@@ -1,14 +1,14 @@
-{ lib, fetchFromGitHub, skawarePackages, skalibs }:
+{ lib, skawarePackages, skalibs }:
 
 let
-  version = "2.9.5.1";
+  version = "2.9.6.0";
 
 in skawarePackages.buildPackage {
   inherit version;
 
   pname = "execline";
   # ATTN: also check whether there is a new manpages version
-  sha256 = "33UANdD7IccmW/+37X4bZh3h6EKUSiJSvc3cMtDZchc=";
+  sha256 = "uion6Xxetr18pqCYeokl5ERlpb6ZbaoNGPj+yjfXVxo=";
 
   # Maintainer of manpages uses following versioning scheme: for every
   # upstream $version he tags manpages release as ${version}.1, and,
@@ -16,13 +16,13 @@ in skawarePackages.buildPackage {
   # ${version}.3 and so on are created.
   manpages = skawarePackages.buildManPages {
     pname = "execline-man-pages";
-    version = "2.9.5.1.1";
-    sha256 = "hLo0TJJ4F2UQ+NkyO9DvVHO0ec86Eps1z99HthBzoIc=";
+    version = "2.9.6.0.1";
+    sha256 = "0lyX3rIUZ2JqWioRSm22uDS+q9ONkwIZxfR5E2pSDC4=";
     description = "Port of the documentation for the execline suite to mdoc";
     maintainers = [ lib.maintainers.sternenseemann ];
   };
 
-  description = "A small scripting language, to be used in place of a shell in non-interactive scripts";
+  description = "Small scripting language, to be used in place of a shell in non-interactive scripts";
 
   outputs = [ "bin" "lib" "dev" "doc" "out" ];
 
diff --git a/pkgs/development/skaware-packages/mdevd/default.nix b/pkgs/development/skaware-packages/mdevd/default.nix
index 0e78d112c8bbe..dcc78ad4f60b9 100644
--- a/pkgs/development/skaware-packages/mdevd/default.nix
+++ b/pkgs/development/skaware-packages/mdevd/default.nix
@@ -2,8 +2,8 @@
 
 skawarePackages.buildPackage {
   pname = "mdevd";
-  version = "0.1.6.3";
-  sha256 = "9uzw73zUjQTvx1rLLa2WfYULyIFb2wCY8cnvBDOU1DA=";
+  version = "0.1.6.4";
+  sha256 = "c1jOUwtrm++3FeSBkJgem2mhLMqFhRnm0uS0bqt+JHA=";
 
   description = "mdev-compatible Linux hotplug manager daemon";
   platforms = lib.platforms.linux;
diff --git a/pkgs/development/skaware-packages/nsss/default.nix b/pkgs/development/skaware-packages/nsss/default.nix
index 6171a36f11478..06e7f7603164e 100644
--- a/pkgs/development/skaware-packages/nsss/default.nix
+++ b/pkgs/development/skaware-packages/nsss/default.nix
@@ -5,7 +5,7 @@ skawarePackages.buildPackage {
   version = "0.2.0.4";
   sha256 = "ObUE+FvY9rUj0zTlz6YsAqOV2zWZG3XyBt8Ku9Z2Gq0=";
 
-  description = "An implementation of a subset of the pwd.h, group.h and shadow.h family of functions.";
+  description = "Implementation of a subset of the pwd.h, group.h and shadow.h family of functions";
 
   # TODO: nsss support
   configureFlags = [
diff --git a/pkgs/development/skaware-packages/s6-dns/default.nix b/pkgs/development/skaware-packages/s6-dns/default.nix
index 1393a2c156346..e51beccd74d2a 100644
--- a/pkgs/development/skaware-packages/s6-dns/default.nix
+++ b/pkgs/development/skaware-packages/s6-dns/default.nix
@@ -2,10 +2,10 @@
 
 skawarePackages.buildPackage {
   pname = "s6-dns";
-  version = "2.3.7.1";
-  sha256 = "zwJYV07H1itlTgwq14r0x9Z6xMnLN/eBSA9ZflSzD20=";
+  version = "2.3.7.2";
+  sha256 = "au4yu2jQH1EJ9x4xooMhPGaM08Dnn7nkaebKu1gHnys=";
 
-  description = "A suite of DNS client programs and libraries for Unix systems";
+  description = "Suite of DNS client programs and libraries for Unix systems";
 
   outputs = [ "bin" "lib" "dev" "doc" "out" ];
 
diff --git a/pkgs/development/skaware-packages/s6-linux-init/default.nix b/pkgs/development/skaware-packages/s6-linux-init/default.nix
index 0de3673717026..d7d44aeac42ac 100644
--- a/pkgs/development/skaware-packages/s6-linux-init/default.nix
+++ b/pkgs/development/skaware-packages/s6-linux-init/default.nix
@@ -12,7 +12,7 @@ skawarePackages.buildPackage {
   version = "1.1.2.0";
   sha256 = "sha256-Ea4I0KZiELXla2uu4Pa5sbafvtsF/aEoWxFaMcpGx38=";
 
-  description = "A set of minimalistic tools used to create a s6-based init system, including a /sbin/init binary, on a Linux kernel";
+  description = "Set of minimalistic tools used to create a s6-based init system, including a /sbin/init binary, on a Linux kernel";
   platforms = lib.platforms.linux;
 
   outputs = [ "bin" "dev" "doc" "out" ];
diff --git a/pkgs/development/skaware-packages/s6-linux-utils/default.nix b/pkgs/development/skaware-packages/s6-linux-utils/default.nix
index b3c52edc7e73d..23d0d2be69fe4 100644
--- a/pkgs/development/skaware-packages/s6-linux-utils/default.nix
+++ b/pkgs/development/skaware-packages/s6-linux-utils/default.nix
@@ -5,7 +5,7 @@ skawarePackages.buildPackage {
   version = "2.6.2.0";
   sha256 = "j5RGM8qH09I+DwPJw4PRUC1QjJusFtOMP79yOl6rK7c=";
 
-  description = "A set of minimalistic Linux-specific system utilities";
+  description = "Set of minimalistic Linux-specific system utilities";
   platforms = lib.platforms.linux;
 
   outputs = [ "bin" "dev" "doc" "out" ];
diff --git a/pkgs/development/skaware-packages/s6-networking/default.nix b/pkgs/development/skaware-packages/s6-networking/default.nix
index f9078351fdcd0..b8c2c56a69e9e 100644
--- a/pkgs/development/skaware-packages/s6-networking/default.nix
+++ b/pkgs/development/skaware-packages/s6-networking/default.nix
@@ -18,18 +18,18 @@ assert sslSupportEnabled -> sslLibs ? ${sslSupport};
 
 skawarePackages.buildPackage {
   pname = "s6-networking";
-  version = "2.7.0.2";
-  sha256 = "wzxvGyvhb4miGvlGz9BiQqEvmBhMiYt1XdskM4ZxzrE=";
+  version = "2.7.0.3";
+  sha256 = "20EcVDcaF+19RUPdhs+VMM4l/PYkvvg64rV5Ug5ecL8=";
 
   manpages = skawarePackages.buildManPages {
     pname = "s6-networking-man-pages";
-    version = "2.5.1.3.3";
-    sha256 = "02ba5jyfpbib402mfl42pbbdxyjy2vhpiz1b2qdg4ax58yr4jzqk";
+    version = "2.7.0.3.1";
+    sha256 = "9u2C1TF9vma+7Qo+00uZ6eOCn/9eMgKALgHDVgMcrfg=";
     description = "Port of the documentation for the s6-networking suite to mdoc";
     maintainers = [ lib.maintainers.sternenseemann ];
   };
 
-  description = "A suite of small networking utilities for Unix systems";
+  description = "Suite of small networking utilities for Unix systems";
 
   outputs = [ "bin" "lib" "dev" "doc" "out" ];
 
diff --git a/pkgs/development/skaware-packages/s6-portable-utils/default.nix b/pkgs/development/skaware-packages/s6-portable-utils/default.nix
index 816b5cd3cdf79..51fb31b574bf7 100644
--- a/pkgs/development/skaware-packages/s6-portable-utils/default.nix
+++ b/pkgs/development/skaware-packages/s6-portable-utils/default.nix
@@ -13,7 +13,7 @@ skawarePackages.buildPackage {
     maintainers = [ lib.maintainers.somasis ];
   };
 
-  description = "A set of tiny general Unix utilities optimized for simplicity and small size";
+  description = "Set of tiny general Unix utilities optimized for simplicity and small size";
 
   outputs = [ "bin" "dev" "doc" "out" ];
 
diff --git a/pkgs/development/skaware-packages/s6-rc/default.nix b/pkgs/development/skaware-packages/s6-rc/default.nix
index 8ccdd867688f5..dee9e4ed7209a 100644
--- a/pkgs/development/skaware-packages/s6-rc/default.nix
+++ b/pkgs/development/skaware-packages/s6-rc/default.nix
@@ -2,18 +2,18 @@
 
 skawarePackages.buildPackage {
   pname = "s6-rc";
-  version = "0.5.4.2";
-  sha256 = "AL36WW+nFhUS6XLskoKiq9j9DjHwkXe616K8PY8oOYI=";
+  version = "0.5.4.3";
+  sha256 = "4ycnlqlHkE3jerNOwQQw4mEHuO8FIQ2BBZyLNiA+ap8=";
 
   manpages = skawarePackages.buildManPages {
     pname = "s6-rc-man-pages";
-    version = "0.5.4.2.1";
+    version = "0.5.4.3.1";
     sha256 = "Ywke3FG/xhhUd934auDB+iFRDCvy8IJs6IkirP6O/As=";
     description = "mdoc(7) versions of the documentation for the s6-rc service manager";
     maintainers = [ lib.maintainers.qyliss ];
   };
 
-  description = "A service manager for s6-based systems";
+  description = "Service manager for s6-based systems";
   platforms = lib.platforms.unix;
 
   outputs = [ "bin" "lib" "dev" "doc" "out" ];
diff --git a/pkgs/development/skaware-packages/s6/default.nix b/pkgs/development/skaware-packages/s6/default.nix
index 761ee34e9702c..188e33696c8fc 100644
--- a/pkgs/development/skaware-packages/s6/default.nix
+++ b/pkgs/development/skaware-packages/s6/default.nix
@@ -2,13 +2,13 @@
 
 skawarePackages.buildPackage {
   pname = "s6";
-  version = "2.12.0.4";
-  sha256 = "yV1ReHYC4MjI5PkqcQy9qk7nl+6IbnE0Jyfil0+VwGs=";
+  version = "2.13.0.0";
+  sha256 = "fkb49V2Auw4gJaZNXWSa9KSsIeNIAgyqrd4wul5bSDA=";
 
   manpages = skawarePackages.buildManPages {
     pname = "s6-man-pages";
-    version = "2.12.0.4.1";
-    sha256 = "9n4oIGfgcu+Q/UcY1Edr3n09Ecrbg77AI8TRBQoFzs0=";
+    version = "2.13.0.0.1";
+    sha256 = "oZgyJ2mPxpgsV2Le29XM+NsjMhqvDQ70SUZ2gjYg5U8=";
     description = "Port of the documentation for the s6 supervision suite to mdoc";
     maintainers = [ lib.maintainers.sternenseemann ];
   };
diff --git a/pkgs/development/skaware-packages/skalibs/2_10.nix b/pkgs/development/skaware-packages/skalibs/2_10.nix
index af4c04dab1e7f..c9a38b2c02246 100644
--- a/pkgs/development/skaware-packages/skalibs/2_10.nix
+++ b/pkgs/development/skaware-packages/skalibs/2_10.nix
@@ -5,7 +5,7 @@ skawarePackages.buildPackage {
   version = "2.10.0.3";
   sha256 = "0ka6n5rnxd5sn5lycarf596d5wlak5s535zqqlz0rnhdcnpb105p";
 
-  description = "A set of general-purpose C programming libraries";
+  description = "Set of general-purpose C programming libraries";
 
   outputs = [ "lib" "dev" "doc" "out" ];
 
diff --git a/pkgs/development/skaware-packages/skalibs/default.nix b/pkgs/development/skaware-packages/skalibs/default.nix
index 49d0363e85821..8af02e348312e 100644
--- a/pkgs/development/skaware-packages/skalibs/default.nix
+++ b/pkgs/development/skaware-packages/skalibs/default.nix
@@ -6,10 +6,10 @@
 
 skawarePackages.buildPackage {
   pname = "skalibs";
-  version = "2.14.1.1";
-  sha256 = "trebgW9LoLaAFnaw7UF5tZyMeAnu/+JttnLkBGNr78M=";
+  version = "2.14.2.0";
+  sha256 = "sha256-3f7Fcw5bLxnQOB7Pf3lrOabkcyNr2grY03dqP+ewfkM=";
 
-  description = "A set of general-purpose C programming libraries";
+  description = "Set of general-purpose C programming libraries";
 
   outputs = [ "lib" "dev" "doc" "out" ];
 
diff --git a/pkgs/development/skaware-packages/tipidee/default.nix b/pkgs/development/skaware-packages/tipidee/default.nix
index 8e858c858cb3e..4df0a2e2a3bb3 100644
--- a/pkgs/development/skaware-packages/tipidee/default.nix
+++ b/pkgs/development/skaware-packages/tipidee/default.nix
@@ -2,10 +2,10 @@
 
 skawarePackages.buildPackage {
   pname = "tipidee";
-  version = "0.0.4.0";
-  sha256 = "sha256-FzZRGg8IBTkzXINb9WCdVukej9KyPFQIUuXfdcLz1RQ=";
+  version = "0.0.5.0";
+  sha256 = "2ekfxxmHmkPVQym5mwLGZJxU5Cjne8lqBXNQa1K/FCI=";
 
-  description = "A HTTP 1.1 webserver, serving static files and CGI/NPH";
+  description = "HTTP 1.1 webserver, serving static files and CGI/NPH";
 
   outputs = [ "bin" "lib" "out" "dev" "doc" ];
 
diff --git a/pkgs/development/skaware-packages/utmps/default.nix b/pkgs/development/skaware-packages/utmps/default.nix
index 97ea0f7ed7cea..c287e70d957a5 100644
--- a/pkgs/development/skaware-packages/utmps/default.nix
+++ b/pkgs/development/skaware-packages/utmps/default.nix
@@ -5,7 +5,7 @@ skawarePackages.buildPackage {
   version = "0.1.2.2";
   sha256 = "sha256-9/+jcUxllzu5X7zxUBwG/AR42TpRzqGzc+xoEcJCX1I=";
 
-  description = "A secure utmpx and wtmp implementation";
+  description = "Secure utmpx and wtmp implementation";
 
   configureFlags = [
     "--libdir=\${lib}/lib"
diff --git a/pkgs/development/tools/aapt/default.nix b/pkgs/development/tools/aapt/default.nix
index c02e644c158b7..4af284948f0b8 100644
--- a/pkgs/development/tools/aapt/default.nix
+++ b/pkgs/development/tools/aapt/default.nix
@@ -7,17 +7,17 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "aapt";
-  version = "8.0.2-9289358";
+  version = "8.4.1-11315950";
 
   src =
     let
       urlAndHash =
         if stdenvNoCC.isLinux then {
           url = "https://dl.google.com/android/maven2/com/android/tools/build/aapt2/${version}/aapt2-${version}-linux.jar";
-          hash = "sha256-P8eVIS6zaZGPh4Z7SXUiLtZaX1YIsSmGOdvF6Xb1WHI=";
+          hash = "sha256-eSQaZrRtb5aCG320hrXAL256fxa/oMhBC4hcTA1KRxs=";
         } else if stdenvNoCC.isDarwin then {
           url = "https://dl.google.com/android/maven2/com/android/tools/build/aapt2/${version}/aapt2-${version}-osx.jar";
-          hash = "sha256-hDfEPk3IJt+8FbRVEiHQbn24vsuOe6m36UcQsT6tGsQ=";
+          hash = "sha256-LUihNjase79JbUkHDb10A5d6pJ+VXDVfv7m09hkL8kY=";
         } else throw "Unsupport platform: ${stdenvNoCC.system}";
     in
     fetchzip (urlAndHash // {
@@ -37,7 +37,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = {
-    description = "A build tool that compiles and packages Android app's resources";
+    description = "Build tool that compiles and packages Android app's resources";
     mainProgram = "aapt2";
     homepage = "https://developer.android.com/tools/aapt2";
     license = lib.licenses.asl20;
diff --git a/pkgs/development/tools/air/default.nix b/pkgs/development/tools/air/default.nix
index 467f05150622c..952f43fff4fd2 100644
--- a/pkgs/development/tools/air/default.nix
+++ b/pkgs/development/tools/air/default.nix
@@ -1,26 +1,34 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+}:
 
 buildGoModule rec {
   pname = "air";
-  version = "1.52.0";
+  version = "1.52.2";
 
   src = fetchFromGitHub {
-    owner = "cosmtrek";
+    owner = "air-verse";
     repo = "air";
     rev = "v${version}";
-    hash = "sha256-7iqS8p53Pyk2WQVkbTVA7eJNnD2KvO41S+JJBTFOToQ=";
+    hash = "sha256-j1iyVEvg7hqZ634hbAvH5RmVnV7bNsezw72OJ1CNvmY=";
   };
 
   vendorHash = "sha256-dSu00NAq6hEOdJxXp+12UaUq32z53Wzla3/u+2nxqPw=";
 
-   ldflags = [ "-s" "-w" "-X=main.airVersion=${version}" ];
+  ldflags = [
+    "-s"
+    "-w"
+    "-X=main.airVersion=${version}"
+  ];
 
   subPackages = [ "." ];
 
   meta = with lib; {
     description = "Live reload for Go apps";
     mainProgram = "air";
-    homepage = "https://github.com/cosmtrek/air";
+    homepage = "https://github.com/air-verse/air";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ Gonzih ];
   };
diff --git a/pkgs/development/tools/algolia-cli/default.nix b/pkgs/development/tools/algolia-cli/default.nix
index 1f2456b8cc618..f8572eeb19412 100644
--- a/pkgs/development/tools/algolia-cli/default.nix
+++ b/pkgs/development/tools/algolia-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "algolia-cli";
-  version = "1.6.9";
+  version = "1.6.11";
 
   src = fetchFromGitHub {
     owner = "algolia";
     repo = "cli";
     rev = "v${version}";
-    hash = "sha256-I4aANk/FurYsT2e3YFxRgbfpl7nEXgBwNiQeA2LMdkw=";
+    hash = "sha256-VqY0h0Z3ocmgw0uFI4f6B5C/bTt3zoUXBlYPgOPxBo0=";
   };
 
   vendorHash = "sha256-cNuBTH7L2K4TgD0H9FZ9CjhE5AGXADaniGLD9Lhrtrk=";
diff --git a/pkgs/development/tools/allure/default.nix b/pkgs/development/tools/allure/default.nix
index 2d247e3f7d419..b711e38364a33 100644
--- a/pkgs/development/tools/allure/default.nix
+++ b/pkgs/development/tools/allure/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta =  {
     homepage = "https://docs.qameta.io/allure/";
-    description = "Allure Report is a flexible, lightweight multi-language test reporting tool.";
+    description = "Allure Report is a flexible, lightweight multi-language test reporting tool";
     longDescription = ''
       Allure Report is a flexible, lightweight multi-language test reporting
       tool providing clear graphical reports and allowing everyone involved
diff --git a/pkgs/development/tools/altair-graphql-client/default.nix b/pkgs/development/tools/altair-graphql-client/default.nix
index f49c1cdfcc895..98b0861b7b632 100644
--- a/pkgs/development/tools/altair-graphql-client/default.nix
+++ b/pkgs/development/tools/altair-graphql-client/default.nix
@@ -26,7 +26,7 @@ appimageTools.wrapType2 {
   '';
 
   meta = with lib; {
-    description = "A feature-rich GraphQL Client IDE";
+    description = "Feature-rich GraphQL Client IDE";
     mainProgram = "altair";
     homepage = "https://github.com/imolorhe/altair";
     license = licenses.mit;
diff --git a/pkgs/development/tools/amazon-qldb-shell/default.nix b/pkgs/development/tools/amazon-qldb-shell/default.nix
index 0200f4e0fb3cb..2aa7ba99479db 100644
--- a/pkgs/development/tools/amazon-qldb-shell/default.nix
+++ b/pkgs/development/tools/amazon-qldb-shell/default.nix
@@ -33,7 +33,7 @@ let
     passthru.tests.version = testers.testVersion { inherit package; };
 
     meta = with lib; {
-      description = "An interface to send PartiQL statements to Amazon Quantum Ledger Database (QLDB)";
+      description = "Interface to send PartiQL statements to Amazon Quantum Ledger Database (QLDB)";
       homepage = "https://github.com/awslabs/amazon-qldb-shell";
       license = licenses.asl20;
       maintainers = [ maintainers.terlar ];
diff --git a/pkgs/development/tools/ameba/default.nix b/pkgs/development/tools/ameba/default.nix
index f98ec6183f997..6f15544953b8f 100644
--- a/pkgs/development/tools/ameba/default.nix
+++ b/pkgs/development/tools/ameba/default.nix
@@ -14,7 +14,7 @@ crystal.buildCrystalPackage rec {
   format = "make";
 
   meta = with lib; {
-    description = "A static code analysis tool for Crystal";
+    description = "Static code analysis tool for Crystal";
     mainProgram = "ameba";
     homepage = "https://crystal-ameba.github.io";
     changelog = "https://github.com/crystal-ameba/ameba/releases/tag/v${version}";
diff --git a/pkgs/development/tools/amqpcat/default.nix b/pkgs/development/tools/amqpcat/default.nix
index 7672e8379089c..38c0b5302ff18 100644
--- a/pkgs/development/tools/amqpcat/default.nix
+++ b/pkgs/development/tools/amqpcat/default.nix
@@ -24,7 +24,7 @@ crystal.buildCrystalPackage rec {
   };
 
   meta = with lib; {
-    description = "A CLI tool for publishing to and consuming from AMQP servers";
+    description = "CLI tool for publishing to and consuming from AMQP servers";
     mainProgram = "amqpcat";
     homepage = "https://github.com/cloudamqp/amqpcat";
     license = licenses.mit;
diff --git a/pkgs/development/tools/analysis/actionlint/default.nix b/pkgs/development/tools/analysis/actionlint/default.nix
index a17b62998e0bb..417a28cd1599a 100644
--- a/pkgs/development/tools/analysis/actionlint/default.nix
+++ b/pkgs/development/tools/analysis/actionlint/default.nix
@@ -10,7 +10,7 @@
 
 buildGoModule rec {
   pname = "actionlint";
-  version = "1.7.0";
+  version = "1.7.1";
 
   subPackages = [ "cmd/actionlint" ];
 
@@ -18,10 +18,10 @@ buildGoModule rec {
     owner = "rhysd";
     repo = "actionlint";
     rev = "v${version}";
-    hash = "sha256-+Mnlqsdk4VzXtdBUtCRvnTJ6EIDPIsBNNQJ30TIO9kQ=";
+    hash = "sha256-nu3Bj85L68YFNE4loh548A8ik3NCj4V32FlDV8V6BEE=";
   };
 
-  vendorHash = "sha256-v0bmugCOP1XUrfe9xqN7gYKFchv6l/WpUK016xfyiCE=";
+  vendorHash = "sha256-ZREtrdHUD1B1Mogidp1y/kFTK+KR4qYJj1c/M+0utPM=";
 
   nativeBuildInputs = [ makeWrapper ronn installShellFiles ];
 
diff --git a/pkgs/development/tools/analysis/banana-vera/default.nix b/pkgs/development/tools/analysis/banana-vera/default.nix
index 03e26e5eaedee..8be5e84addf12 100644
--- a/pkgs/development/tools/analysis/banana-vera/default.nix
+++ b/pkgs/development/tools/analysis/banana-vera/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     mainProgram = "vera++";
-    description = "A fork of vera using python3.10";
+    description = "Fork of vera using python3.10";
     homepage = "https://github.com/Epitech/banana-vera";
     license = lib.licenses.boost;
     maintainers = with lib.maintainers; [ sigmanificient ];
diff --git a/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix b/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix
index 55a5108dbbdaf..88968be7b40e8 100644
--- a/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix
+++ b/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix
@@ -30,7 +30,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A code coverage tool for Rust projects";
+    description = "Code coverage tool for Rust projects";
     mainProgram = "cargo-tarpaulin";
     homepage = "https://github.com/xd009642/tarpaulin";
     changelog = "https://github.com/xd009642/tarpaulin/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/development/tools/analysis/checkov/default.nix b/pkgs/development/tools/analysis/checkov/default.nix
index 9cf0dc6653b45..3b925694c93ca 100644
--- a/pkgs/development/tools/analysis/checkov/default.nix
+++ b/pkgs/development/tools/analysis/checkov/default.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "checkov";
-  version = "3.2.92";
+  version = "3.2.140";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "bridgecrewio";
     repo = "checkov";
     rev = "refs/tags/${version}";
-    hash = "sha256-v1StSo9j0Psr3om3qbcE+Ha9Wz7t6EfGzbyAe34M2qY=";
+    hash = "sha256-CqmXUz58eBMNrgfTDP/7M03R8vw9ys9/devRfFvWbBw=";
   };
 
   patches = [ ./flake8-compat-5.x.patch ];
@@ -34,6 +34,7 @@ python3.pkgs.buildPythonApplication rec {
     "pycep-parser"
     "rustworkx"
     "termcolor"
+    "urllib3"
   ];
 
   pythonRemoveDeps = [
diff --git a/pkgs/development/tools/analysis/checkstyle/default.nix b/pkgs/development/tools/analysis/checkstyle/default.nix
index 1565d7bdc546f..24b8e1715fc45 100644
--- a/pkgs/development/tools/analysis/checkstyle/default.nix
+++ b/pkgs/development/tools/analysis/checkstyle/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenvNoCC, fetchurl, makeBinaryWrapper, jre }:
 
 stdenvNoCC.mkDerivation rec {
-  version = "10.16.0";
+  version = "10.17.0";
   pname = "checkstyle";
 
   src = fetchurl {
     url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-${version}/checkstyle-${version}-all.jar";
-    sha256 = "sha256-0Hmg7WnLAGy9YOipW7Oe6KQDxRiRqZ5eI3bKQGU0aQQ=";
+    sha256 = "sha256-UcNNc4UgwTidcZmKmrDm2r4NfPJiFJ8+AacpRJYGLkI=";
   };
 
   nativeBuildInputs = [ makeBinaryWrapper ];
diff --git a/pkgs/development/tools/analysis/coan/default.nix b/pkgs/development/tools/analysis/coan/default.nix
index 7104074a6a747..94c45614ed844 100644
--- a/pkgs/development/tools/analysis/coan/default.nix
+++ b/pkgs/development/tools/analysis/coan/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, perl }:
+{ lib, stdenv, fetchurl, autoreconfHook, perl }:
 
 stdenv.mkDerivation rec {
   version = "6.0.1";
@@ -9,9 +9,14 @@ stdenv.mkDerivation rec {
     sha256 = "1d041j0nd1hc0562lbj269dydjm4rbzagdgzdnmwdxr98544yw44";
   };
 
-  nativeBuildInputs = [ perl ];
+  patches = [
+    # fix compile error in configure.ac
+    ./fix-big-endian-config-check.diff
+  ];
 
-  CXXFLAGS = "-std=c++11";
+  nativeBuildInputs = [ autoreconfHook perl ];
+
+  configureFlags = [ "CXXFLAGS=-std=c++11" ];
 
   enableParallelBuilding = true;
 
@@ -20,7 +25,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The C preprocessor chainsaw";
+    description = "C preprocessor chainsaw";
     mainProgram = "coan";
     longDescription = ''
       A software engineering tool for analysing preprocessor-based
diff --git a/pkgs/development/tools/analysis/coan/fix-big-endian-config-check.diff b/pkgs/development/tools/analysis/coan/fix-big-endian-config-check.diff
new file mode 100644
index 0000000000000..7a2965361da03
--- /dev/null
+++ b/pkgs/development/tools/analysis/coan/fix-big-endian-config-check.diff
@@ -0,0 +1,22 @@
+diff --git a/configure.ac b/configure.ac
+index 23ba6f0..13e6647 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -4,7 +4,7 @@ AC_PREREQ(2.59)
+ AM_INIT_AUTOMAKE(1.13 no-define)
+ AC_CHECK_HEADERS(strings.h)
+ AC_MSG_CHECKING(for big-endian host)
+-AC_TRY_RUN([main () {
++AC_TRY_RUN([int main () {
+   /* Are we little or big endian?  From Harbison&amp;Steele.  */
+   union
+   {
+@@ -12,7 +12,7 @@ AC_TRY_RUN([main () {
+     char c[sizeof (long)];
+   } u;
+   u.l = 1;
+-  exit (u.c[sizeof (long) - 1] == 1);
++  return u.c[sizeof (long) - 1] == 1;
+ }], BIG_ENDIAN=no, BIG_ENDIAN=yes)
+ AC_MSG_RESULT([$BIG_ENDIAN])
+ AM_CONDITIONAL([IS_BIG_ENDIAN],[test "$BIG_ENDIAN" = "yes"])
diff --git a/pkgs/development/tools/analysis/codeql/default.nix b/pkgs/development/tools/analysis/codeql/default.nix
index beff3c5aeb41b..fa5881a1cb0c2 100644
--- a/pkgs/development/tools/analysis/codeql/default.nix
+++ b/pkgs/development/tools/analysis/codeql/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "codeql";
-  version = "2.17.3";
+  version = "2.17.5";
 
   dontConfigure = true;
   dontBuild = true;
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   src = fetchzip {
     url = "https://github.com/github/codeql-cli-binaries/releases/download/v${version}/codeql.zip";
-    hash = "sha256-g/+Hf+4cOkud+Gfj/2rqlZ6duzn3A3fkF6mXjXjTypA=";
+    hash = "sha256-Ay+8NOYq1sBIDhCoju2/L8Ghegmxz5NmtpBLb0hqH/E=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/analysis/cppcheck/default.nix b/pkgs/development/tools/analysis/cppcheck/default.nix
index 00fd9b08b1e13..bf30b47d54ee1 100644
--- a/pkgs/development/tools/analysis/cppcheck/default.nix
+++ b/pkgs/development/tools/analysis/cppcheck/default.nix
@@ -14,7 +14,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "cppcheck";
-  version = "2.14.0";
+  version = "2.14.1";
 
   outputs = [ "out" "man" ];
 
@@ -22,7 +22,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "danmar";
     repo = "cppcheck";
     rev = finalAttrs.version;
-    hash = "sha256-w5k7WO2Kwx0ac/vP54ndPUp/AG6jG3MDf03h5z/+Cso=";
+    hash = "sha256-KXE3zmhaTweQhs0Qh7Xd5ILiuGVewtrvOkRkt8hjU58=";
   };
 
   nativeBuildInputs = [
@@ -72,7 +72,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A static analysis tool for C/C++ code";
+    description = "Static analysis tool for C/C++ code";
     homepage = "http://cppcheck.sourceforge.net";
     license = lib.licenses.gpl3Plus;
     longDescription = ''
diff --git a/pkgs/development/tools/analysis/emma/default.nix b/pkgs/development/tools/analysis/emma/default.nix
index a1804eafd8cf4..4a284ac0d6032 100644
--- a/pkgs/development/tools/analysis/emma/default.nix
+++ b/pkgs/development/tools/analysis/emma/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://emma.sourceforge.net/";
-    description = "A code coverage tool for Java";
+    description = "Code coverage tool for Java";
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
     platforms = lib.platforms.unix;
     license = lib.licenses.cpl10;
diff --git a/pkgs/development/tools/analysis/eresi/default.nix b/pkgs/development/tools/analysis/eresi/default.nix
index 3d5571ddea427..1b3cf09365022 100644
--- a/pkgs/development/tools/analysis/eresi/default.nix
+++ b/pkgs/development/tools/analysis/eresi/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
                 ++ lib.optional stdenv.is64bit "install64";
 
   meta = {
-    description = "The ERESI Reverse Engineering Software Interface";
+    description = "ERESI Reverse Engineering Software Interface";
     license = lib.licenses.gpl2Only;
     homepage = "https://github.com/thorkill/eresi"; # Formerly http://www.eresi-project.org/
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/tools/analysis/findbugs/default.nix b/pkgs/development/tools/analysis/findbugs/default.nix
index 63301622c1fb4..a3f52f8da092e 100644
--- a/pkgs/development/tools/analysis/findbugs/default.nix
+++ b/pkgs/development/tools/analysis/findbugs/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A static analysis tool to find bugs in Java programs automatically";
+    description = "Static analysis tool to find bugs in Java programs automatically";
     homepage = "https://findbugs.sourceforge.net/";
     maintainers = with maintainers; [ pSub ];
     platforms = with platforms; unix;
diff --git a/pkgs/development/tools/analysis/flow/default.nix b/pkgs/development/tools/analysis/flow/default.nix
index 3f50cd0df3e92..0ae0c3559300c 100644
--- a/pkgs/development/tools/analysis/flow/default.nix
+++ b/pkgs/development/tools/analysis/flow/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flow";
-  version = "0.236.0";
+  version = "0.237.2";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "flow";
     rev = "v${version}";
-    hash = "sha256-W0JLnX+IGFMjIi6EkHRzvB3jSl/8/+3iuc9dwlXB2Po=";
+    hash = "sha256-VL547H8cGxuhx5Ho5gRVl60CUQ5EcBuH+xoE0zM5m7A=";
   };
 
   postPatch = ''
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     ++ (with ocamlPackages; [ core_kernel dtoa fileutils lwt_log lwt_ppx ocaml_lwt ppx_deriving ppx_gen_rec ppx_let sedlex visitors wtf8 ] ++ lib.optionals stdenv.isLinux [ inotify ]);
 
   meta = with lib; {
-    description = "A static type checker for JavaScript";
+    description = "Static type checker for JavaScript";
     mainProgram = "flow";
     homepage = "https://flow.org/";
     changelog = "https://github.com/facebook/flow/blob/v${version}/Changelog.md";
diff --git a/pkgs/development/tools/analysis/frama-c/default.nix b/pkgs/development/tools/analysis/frama-c/default.nix
index 26cd487d9ebed..87234ba584dbe 100644
--- a/pkgs/development/tools/analysis/frama-c/default.nix
+++ b/pkgs/development/tools/analysis/frama-c/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, makeWrapper, writeText
+{ lib, stdenv, fetchurl, writeText
 , graphviz, doxygen
 , ocamlPackages, ltl2ba, coq, why3
 , gdk-pixbuf, wrapGAppsHook3
@@ -99,7 +99,7 @@ stdenv.mkDerivation rec {
 
 
   meta = {
-    description = "An extensible and collaborative platform dedicated to source-code analysis of C software";
+    description = "Extensible and collaborative platform dedicated to source-code analysis of C software";
     homepage    = "http://frama-c.com/";
     license     = lib.licenses.lgpl21;
     maintainers = with lib.maintainers; [ thoughtpolice amiddelk ];
diff --git a/pkgs/development/tools/analysis/hopper/default.nix b/pkgs/development/tools/analysis/hopper/default.nix
index 2d28046033467..8fcaa144ab8c1 100644
--- a/pkgs/development/tools/analysis/hopper/default.nix
+++ b/pkgs/development/tools/analysis/hopper/default.nix
@@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.hopperapp.com/index.html";
-    description = "A macOS and Linux Disassembler";
+    description = "MacOS and Linux Disassembler";
     license = licenses.unfree;
     maintainers = with maintainers; [
       Enteee
diff --git a/pkgs/development/tools/analysis/hotspot/default.nix b/pkgs/development/tools/analysis/hotspot/default.nix
index b0165266b1a05..f769ac1b28c6c 100644
--- a/pkgs/development/tools/analysis/hotspot/default.nix
+++ b/pkgs/development/tools/analysis/hotspot/default.nix
@@ -86,7 +86,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A GUI for Linux perf";
+    description = "GUI for Linux perf";
     mainProgram = "hotspot";
     longDescription = ''
       hotspot is a GUI replacement for `perf report`.
diff --git a/pkgs/development/tools/analysis/jacoco/default.nix b/pkgs/development/tools/analysis/jacoco/default.nix
index 6fa9c520186cd..4794e8474d6a8 100644
--- a/pkgs/development/tools/analysis/jacoco/default.nix
+++ b/pkgs/development/tools/analysis/jacoco/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A free code coverage library for Java";
+    description = "Free code coverage library for Java";
     mainProgram = "jacoco";
     homepage = "https://www.jacoco.org/jacoco";
     changelog = "https://www.jacoco.org/jacoco/trunk/doc/changes.html";
diff --git a/pkgs/development/tools/analysis/oclgrind/default.nix b/pkgs/development/tools/analysis/oclgrind/default.nix
index 74f856e23de03..a95c227fae768 100644
--- a/pkgs/development/tools/analysis/oclgrind/default.nix
+++ b/pkgs/development/tools/analysis/oclgrind/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An OpenCL device simulator and debugger";
+    description = "OpenCL device simulator and debugger";
     homepage = "https://github.com/jrprice/oclgrind";
     license = licenses.bsd3;
     platforms = platforms.linux;
diff --git a/pkgs/development/tools/analysis/panopticon/default.nix b/pkgs/development/tools/analysis/panopticon/default.nix
index 06fe22a42abd6..08dd8d397f984 100644
--- a/pkgs/development/tools/analysis/panopticon/default.nix
+++ b/pkgs/development/tools/analysis/panopticon/default.nix
@@ -36,7 +36,7 @@ rustPlatform.buildRustPackage rec {
      '';
 
   meta = with lib; {
-    description = "A libre cross-platform disassembler";
+    description = "Libre cross-platform disassembler";
     longDescription = ''
       Panopticon is a cross platform disassembler for reverse
       engineering written in Rust. It can disassemble AMD64,
diff --git a/pkgs/development/tools/analysis/pev/default.nix b/pkgs/development/tools/analysis/pev/default.nix
index a46bc067f11b6..75cdc15cdca0c 100644
--- a/pkgs/development/tools/analysis/pev/default.nix
+++ b/pkgs/development/tools/analysis/pev/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
   installFlags = [ "prefix=$(out)" ];
 
   meta = with lib; {
-    description = "A full-featured, open source, multiplatform command line toolkit to work with PE (Portable Executables) binaries";
+    description = "Full-featured, open source, multiplatform command line toolkit to work with PE (Portable Executables) binaries";
     homepage = "https://pev.sourceforge.net/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ jeschli ];
diff --git a/pkgs/development/tools/analysis/pmd/default.nix b/pkgs/development/tools/analysis/pmd/default.nix
index f50fb16d8bc84..d8a300fb08d83 100644
--- a/pkgs/development/tools/analysis/pmd/default.nix
+++ b/pkgs/development/tools/analysis/pmd/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An extensible cross-language static code analyzer";
+    description = "Extensible cross-language static code analyzer";
     homepage = "https://pmd.github.io/";
     changelog = "https://pmd.github.io/pmd-${version}/pmd_release_notes.html";
     platforms = platforms.unix;
diff --git a/pkgs/development/tools/analysis/qcachegrind/default.nix b/pkgs/development/tools/analysis/qcachegrind/default.nix
index 6a463c5660915..2d7e18d53e4cf 100644
--- a/pkgs/development/tools/analysis/qcachegrind/default.nix
+++ b/pkgs/development/tools/analysis/qcachegrind/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A Qt GUI to visualize profiling data";
+    description = "Qt GUI to visualize profiling data";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ periklis ];
diff --git a/pkgs/development/tools/analysis/radare2/default.nix b/pkgs/development/tools/analysis/radare2/default.nix
index 61ac7bbfe4640..8d75f994aee61 100644
--- a/pkgs/development/tools/analysis/radare2/default.nix
+++ b/pkgs/development/tools/analysis/radare2/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , buildPackages
 , pkg-config
 , meson
@@ -30,8 +29,8 @@
 }:
 
 let
-  # FIXME: Compare revision with
-  # https://github.com/radareorg/radare2/blob/master/libr/arch/p/arm/v35/Makefile#L26-L27
+  # NOTE: Check these revision changes when updating the package.
+  # https://github.com/radareorg/radare2/blob/master/libr/arch/p/arm/v35/Makefile#L25-L26
   arm64 = fetchFromGitHub {
     owner = "radareorg";
     repo = "vector35-arch-arm64";
@@ -45,15 +44,15 @@ let
     hash = "sha256-YhfgJ7M8ys53jh1clOzj0I2yfJshXQm5zP0L9kMYsmk=";
   };
 in
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "radare2";
-  version = "5.9.0";
+  version = "5.9.2";
 
   src = fetchFromGitHub {
     owner = "radare";
     repo = "radare2";
-    rev = "refs/tags/${version}";
-    hash = "sha256-h2IYOGr+yCgCJR1gB4jibcUt1A+8IuNVoTUcJ83lKHw=";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-smsjGfTvSTVwd7nhWhptYpkus2fEQ2EVdT5bDt/rHZE=";
   };
 
   preBuild = ''
@@ -67,30 +66,27 @@ stdenv.mkDerivation rec {
   '';
 
   postFixup = lib.optionalString stdenv.isDarwin ''
-    install_name_tool -add_rpath $out/lib $out/lib/libr_io.${version}.dylib
+    install_name_tool -add_rpath $out/lib $out/lib/libr_io.${finalAttrs.version}.dylib
   '';
 
   mesonFlags = [
+   "-Dr2_gittap=${finalAttrs.version}"
    "-Duse_sys_capstone=true"
+   "-Duse_sys_lz4=true"
    "-Duse_sys_magic=true"
-   "-Duse_sys_zip=true"
+   "-Duse_sys_openssl=true"
    "-Duse_sys_xxhash=true"
-   "-Duse_sys_lz4=true"
-   "-Dr2_gittap=${version}"
+   "-Duse_sys_zip=true"
   ];
 
-  # TODO: remove when upstream fixes the issue
-  # https://github.com/radareorg/radare2/issues/22793
-  env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.isDarwin [
-     "-DTHREAD_CONVERT_THREAD_STATE_TO_SELF=1"
-  ]);
-
   enableParallelBuilding = true;
+
   depsBuildBuild = [ buildPackages.stdenv.cc ];
 
   strictDeps = true;
 
   nativeBuildInputs = [ pkg-config meson ninja python3 ];
+
   buildInputs = [
     capstone
     file
@@ -114,11 +110,27 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "UNIX-like reverse engineering framework and command-line tools";
+    description = "UNIX-like reverse engineering framework and command-line toolset";
+    longDescription = ''
+      r2 is a complete rewrite of radare. It provides a set of libraries, tools
+      and plugins to ease reverse engineering tasks. Distributed mostly under
+      LGPLv3, each plugin can have different licenses.
+
+      The radare project started as a simple command-line hexadecimal editor
+      focused on forensics. Today, r2 is a featureful low-level command-line
+      tool with support for scripting with the embedded JavaScript interpreter
+      or via r2pipe.
+
+      r2 can edit files on local hard drives, view kernel memory, and debug
+      programs locally or via a remote gdb/windbg servers. r2's wide
+      architecture support allows you to analyze, emulate, debug, modify, and
+      disassemble any binary.
+    '';
     homepage = "https://radare.org";
-    changelog = "https://github.com/radareorg/radare2/releases/tag/${version}";
-    license = licenses.gpl2Plus;
+    changelog = "https://github.com/radareorg/radare2/releases/tag/${finalAttrs.version}";
+    license = with licenses; [ gpl3Only lgpl3Only ];
     maintainers = with maintainers; [ azahi raskin makefu mic92 arkivm ];
+    mainProgram = "radare2";
     platforms = platforms.unix;
   };
-}
+})
diff --git a/pkgs/development/tools/analysis/retdec/default.nix b/pkgs/development/tools/analysis/retdec/default.nix
index 95e95bb34babc..2448556aa62cc 100644
--- a/pkgs/development/tools/analysis/retdec/default.nix
+++ b/pkgs/development/tools/analysis/retdec/default.nix
@@ -227,7 +227,7 @@ stdenv.mkDerivation (self: {
   '';
 
   meta = with lib; {
-    description = "A retargetable machine-code decompiler based on LLVM";
+    description = "Retargetable machine-code decompiler based on LLVM";
     homepage = "https://retdec.com";
     license = licenses.mit;
     maintainers = with maintainers; [ dtzWill katrinafyi ];
diff --git a/pkgs/development/tools/analysis/rizin/default.nix b/pkgs/development/tools/analysis/rizin/default.nix
index c3f85d1940067..f83c3dcdcfac9 100644
--- a/pkgs/development/tools/analysis/rizin/default.nix
+++ b/pkgs/development/tools/analysis/rizin/default.nix
@@ -135,7 +135,7 @@ let rizin = stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "UNIX-like reverse engineering framework and command-line toolset.";
+    description = "UNIX-like reverse engineering framework and command-line toolset";
     homepage = "https://rizin.re/";
     license = lib.licenses.gpl3Plus;
     mainProgram = "rizin";
diff --git a/pkgs/development/tools/analysis/rr/default.nix b/pkgs/development/tools/analysis/rr/default.nix
index 587bb7758909a..3a2ecc4c6d48e 100644
--- a/pkgs/development/tools/analysis/rr/default.nix
+++ b/pkgs/development/tools/analysis/rr/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch
+{ lib, stdenv, fetchFromGitHub
 , cmake, pkg-config, which, makeWrapper
 , libpfm, zlib, python3Packages, procps, gdb, capnproto
 }:
diff --git a/pkgs/development/tools/analysis/smatch/default.nix b/pkgs/development/tools/analysis/smatch/default.nix
index 7c4a497d04d17..93a74f2b4a6a7 100644
--- a/pkgs/development/tools/analysis/smatch/default.nix
+++ b/pkgs/development/tools/analysis/smatch/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=${placeholder "out"}" "CXX=${stdenv.cc.targetPrefix}c++" ];
 
   meta = with lib; {
-    description = "A semantic analysis tool for C";
+    description = "Semantic analysis tool for C";
     homepage = "https://sparse.docs.kernel.org/";
     maintainers = with maintainers; [ ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/development/tools/analysis/stylelint/default.nix b/pkgs/development/tools/analysis/stylelint/default.nix
index f2c478ea49cf1..c2a216afea9a9 100644
--- a/pkgs/development/tools/analysis/stylelint/default.nix
+++ b/pkgs/development/tools/analysis/stylelint/default.nix
@@ -2,16 +2,16 @@
 
 buildNpmPackage rec {
   pname = "stylelint";
-  version = "16.5.0";
+  version = "16.6.1";
 
   src = fetchFromGitHub {
     owner = "stylelint";
     repo = "stylelint";
     rev = version;
-    hash = "sha256-kbcf0OPAIeEdh5YI2qqaLJww+ZejfXt/llJTK10nE0M=";
+    hash = "sha256-wt9EVE3AAnOVJsDHG+qIXSqZ1I2MSITHjGpEGLPWOBY=";
   };
 
-  npmDepsHash = "sha256-tENUngFWjrmsJErvbmFflwGL0uxou0vQjC/MwfCpm+Y=";
+  npmDepsHash = "sha256-+74oklREFCDEa8E0QDBlIzfW943AStJxfXkQDqRGFyo=";
 
   dontNpmBuild = true;
 
diff --git a/pkgs/development/tools/analysis/svlint/default.nix b/pkgs/development/tools/analysis/svlint/default.nix
index 07693196a956d..ef859f2a66a29 100644
--- a/pkgs/development/tools/analysis/svlint/default.nix
+++ b/pkgs/development/tools/analysis/svlint/default.nix
@@ -5,14 +5,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "svlint";
-  version = "0.9.2";
+  version = "0.9.3";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-5fPra4kgvykeQnvRtO3enbMIzbh5+nDJ2x0aHYMGiww=";
+    sha256 = "sha256-u61gmkO7eij7r1A1RPk0ro+pml7ZmMsg0ukJLCFNaD0=";
   };
 
-  cargoHash = "sha256-R7jqFgMj4YjUbEObdRxxvataYMXe9wq8B8k+t7+Dv30=";
+  cargoHash = "sha256-HBfCTOETQ1hHzLFDw12W58omRmliiWDFGSrmr3PELD8=";
 
   cargoBuildFlags = [ "--bin" "svlint" ];
 
diff --git a/pkgs/development/tools/analysis/tflint-plugins/tflint-ruleset-google.nix b/pkgs/development/tools/analysis/tflint-plugins/tflint-ruleset-google.nix
index 5dd4429280606..5fa8efd23a1c6 100644
--- a/pkgs/development/tools/analysis/tflint-plugins/tflint-ruleset-google.nix
+++ b/pkgs/development/tools/analysis/tflint-plugins/tflint-ruleset-google.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "tflint-ruleset-google";
-  version = "0.28.0";
+  version = "0.29.0";
 
   src = fetchFromGitHub {
     owner = "terraform-linters";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-9/JCpT7zwuT8Tf8Pa2cj/pVlowFbQ8kv2XPvwJf/b10=";
+    hash = "sha256-cflmuvILMJX7jsz6OKPcaN/KezvWiqiv20Sw4vJ/mUk=";
   };
 
-  vendorHash = "sha256-mh8RXD+RD8juhSY2jWGsmwqAnnudIZIZmq8JjHh/eNQ=";
+  vendorHash = "sha256-xxSOjnzqESCOWtXsAGuTwVEoinvBNuJFaxDrIVc1O08=";
 
   # upstream Makefile also does a go test $(go list ./... | grep -v integration)
   preCheck = ''
diff --git a/pkgs/development/tools/analysis/valgrind/default.nix b/pkgs/development/tools/analysis/valgrind/default.nix
index c8046b68cd96d..547f07d2ee6d3 100644
--- a/pkgs/development/tools/analysis/valgrind/default.nix
+++ b/pkgs/development/tools/analysis/valgrind/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "valgrind";
-  version = "3.22.0";
+  version = "3.23.0";
 
   src = fetchurl {
     url = "https://sourceware.org/pub/${pname}/${pname}-${version}.tar.bz2";
-    hash = "sha256-yBHbWt0sX3KZRMr0fE56Zdyqu5Rh5HK1eHZd179tLUw=";
+    hash = "sha256-xcNKM4BFe5t1YG34kBAuffLHArlCDC6++VQPi11WJk0=";
   };
 
   patches = [
@@ -28,18 +28,19 @@ stdenv.mkDerivation rec {
     })
     # Fix build on armv7l.
     # https://bugs.kde.org/show_bug.cgi?id=454346
-    (fetchpatch {
-      url = "https://bugsfiles.kde.org/attachment.cgi?id=149172";
-      sha256 = "sha256-4MASLsEK8wcshboR4YOc6mIt7AvAgDPvqIZyHqlvTEs=";
-    })
-    (fetchpatch {
-      url = "https://bugsfiles.kde.org/attachment.cgi?id=149173";
-      sha256 = "sha256-jX9hD4utWRebbXMJYZ5mu9jecvdrNP05E5J+PnKRTyQ=";
-    })
-    (fetchpatch {
-      url = "https://bugsfiles.kde.org/attachment.cgi?id=149174";
-      sha256 = "sha256-f1YIFIhWhXYVw3/UNEWewDak2mvbAd3aGzK4B+wTlys=";
-    })
+    #   Applied on 3.22.0. Does not apply on 3.23.0.
+    #(fetchpatch {
+    #  url = "https://bugsfiles.kde.org/attachment.cgi?id=149172";
+    #  sha256 = "sha256-4MASLsEK8wcshboR4YOc6mIt7AvAgDPvqIZyHqlvTEs=";
+    #})
+    #(fetchpatch {
+    #  url = "https://bugsfiles.kde.org/attachment.cgi?id=149173";
+    #  sha256 = "sha256-jX9hD4utWRebbXMJYZ5mu9jecvdrNP05E5J+PnKRTyQ=";
+    #})
+    #(fetchpatch {
+    #  url = "https://bugsfiles.kde.org/attachment.cgi?id=149174";
+    #  sha256 = "sha256-f1YIFIhWhXYVw3/UNEWewDak2mvbAd3aGzK4B+wTlys=";
+    #})
   ];
 
   outputs = [ "out" "dev" "man" "doc" ];
diff --git a/pkgs/development/tools/apktool/default.nix b/pkgs/development/tools/apktool/default.nix
index 9af6d2c9f90b2..460d0686ff60e 100644
--- a/pkgs/development/tools/apktool/default.nix
+++ b/pkgs/development/tools/apktool/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = with lib; {
-    description = "A tool for reverse engineering Android apk files";
+    description = "Tool for reverse engineering Android apk files";
     mainProgram = "apktool";
     homepage = "https://ibotpeaches.github.io/Apktool/";
     changelog = "https://github.com/iBotPeaches/Apktool/releases/tag/v${version}";
diff --git a/pkgs/development/tools/asn2quickder/default.nix b/pkgs/development/tools/asn2quickder/default.nix
index 6a1bd5396fdcd..9300534209d8d 100644
--- a/pkgs/development/tools/asn2quickder/default.nix
+++ b/pkgs/development/tools/asn2quickder/default.nix
@@ -36,7 +36,7 @@ buildPythonApplication rec {
   doCheck = false; # Flaky tests
 
   meta = with lib; {
-    description = "An ASN.1 compiler with a backend for Quick DER";
+    description = "ASN.1 compiler with a backend for Quick DER";
     homepage = "https://gitlab.com/arpa2/quick-der";
     license = licenses.bsd3;
     platforms = platforms.linux;
diff --git a/pkgs/development/tools/async/default.nix b/pkgs/development/tools/async/default.nix
index ba6b62281eb8a..ae5a1d8256756 100644
--- a/pkgs/development/tools/async/default.nix
+++ b/pkgs/development/tools/async/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "0y2q46i838gha58p95vcv5r5i14il1kv86k35s30ncfibijgp0lc";
 
   meta = with lib; {
-    description = "A tool to parallelize shell commands";
+    description = "Tool to parallelize shell commands";
     mainProgram = "async";
     longDescription = ''
       `async` is a tool to run shell commands in parallel and is designed to be
diff --git a/pkgs/development/tools/aws-sam-cli/default.nix b/pkgs/development/tools/aws-sam-cli/default.nix
index f12d4f44de32f..e94a98a6a96a8 100644
--- a/pkgs/development/tools/aws-sam-cli/default.nix
+++ b/pkgs/development/tools/aws-sam-cli/default.nix
@@ -10,7 +10,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "aws-sam-cli";
-  version = "1.116.0";
+  version = "1.119.0";
   pyproject = true;
 
   disabled = python3.pythonOlder "3.8";
@@ -19,14 +19,17 @@ python3.pkgs.buildPythonApplication rec {
     owner = "aws";
     repo = "aws-sam-cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-bQET2acu2G2tKkBYrj+37f8vnvnByiqMwkMZzrhT95Q=";
+    hash = "sha256-0H1C2z01nwJtlSNjTCi2bH6ExBnmn8xNXD/jzYFxvCs=";
   };
 
   build-system = with python3.pkgs; [
-    pythonRelaxDepsHook
     setuptools
   ];
 
+  nativeBuildInputs = with python3.pkgs; [
+    pythonRelaxDepsHook
+  ];
+
   pythonRelaxDeps = [
     "aws-lambda-builders"
     "aws-sam-translator"
@@ -36,10 +39,12 @@ python3.pkgs.buildPythonApplication rec {
     "docker"
     "jsonschema"
     "pyopenssl"
+    "requests"
     "rich"
     "ruamel-yaml"
     "tomlkit"
     "tzlocal"
+    "watchdog"
   ];
 
   dependencies = with python3.pkgs; [
diff --git a/pkgs/development/tools/azcopy/default.nix b/pkgs/development/tools/azcopy/default.nix
index b6074198be3ce..2ca6ed71c2730 100644
--- a/pkgs/development/tools/azcopy/default.nix
+++ b/pkgs/development/tools/azcopy/default.nix
@@ -6,18 +6,18 @@
 
 buildGoModule rec {
   pname = "azure-storage-azcopy";
-  version = "10.24.0";
+  version = "10.25.0";
 
   src = fetchFromGitHub {
     owner = "Azure";
     repo = "azure-storage-azcopy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-K/Q0vlcMX6YKjvdWNzsJe1uUSS9WY8pN6SD5yiVF1Sg=";
+    hash = "sha256-OjNezXjC9SyRV+8CDkKtIm7Mzks+Quuj92M7tR0LZX0=";
   };
 
   subPackages = [ "." ];
 
-  vendorHash = "sha256-VWSr7K2WrBY4jzFv8B9ocp7GdBxTBSePMX8mLeSbKow=";
+  vendorHash = "sha256-/SNQl80szkOZwtRHVxyAmapCFxDwQBM0Go6p0ILrKRM=";
 
   doCheck = false;
 
@@ -26,7 +26,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "The new Azure Storage data transfer utility - AzCopy v10";
+    description = "New Azure Storage data transfer utility - AzCopy v10";
     homepage = "https://github.com/Azure/azure-storage-azcopy";
     changelog = "https://github.com/Azure/azure-storage-azcopy/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/tools/azure-static-sites-client/versions.json b/pkgs/development/tools/azure-static-sites-client/versions.json
index 6c672039bd721..c2bd3989b8bc6 100644
--- a/pkgs/development/tools/azure-static-sites-client/versions.json
+++ b/pkgs/development/tools/azure-static-sites-client/versions.json
@@ -1,58 +1,58 @@
 [
   {
     "version": "latest",
-    "buildId": "1.0.026361",
-    "publishDate": "2024-03-20T18:04:43.3376902Z",
+    "buildId": "1.0.026911",
+    "publishDate": "2024-05-15T19:23:23.3973684Z",
     "files": {
       "linux-x64": {
-        "url": "https://swalocaldeploy.azureedge.net/downloads/1.0.026361/linux/StaticSitesClient",
-        "sha": "e7430ccd96669bbb91204affa5bc313dc6af1f848d704dd7dacf9a2927b3d130"
+        "url": "https://swalocaldeploy.azureedge.net/downloads/1.0.026911/linux/StaticSitesClient",
+        "sha": "e1d9e033c973a35f64b7e41b6a114bd8e48022c9c3f7676e79047e87245a874d"
       },
       "win-x64": {
-        "url": "https://swalocaldeploy.azureedge.net/downloads/1.0.026361/windows/StaticSitesClient.exe",
-        "sha": "f3e2e686f742029a7b641e7cc6d3727398fbe783505df8cf75c334da980d2cd4"
+        "url": "https://swalocaldeploy.azureedge.net/downloads/1.0.026911/windows/StaticSitesClient.exe",
+        "sha": "c67e5eed2b28fcf5c98348732653d1e2b37d842e6dde9a6b30322832c5d86fc7"
       },
       "osx-x64": {
-        "url": "https://swalocaldeploy.azureedge.net/downloads/1.0.026361/macOS/StaticSitesClient",
-        "sha": "85bc201ed956ec41bc0a730dc5652c3c8bded946ebcf1c1ff31350490118a324"
+        "url": "https://swalocaldeploy.azureedge.net/downloads/1.0.026911/macOS/StaticSitesClient",
+        "sha": "18ca42a1b13db9b8b6db6bd8c77e65def56fa7bf3ce3fb1184e890d8cd7dd033"
       }
     }
   },
   {
     "version": "stable",
-    "buildId": "1.0.026361",
-    "publishDate": "2024-03-20T18:04:43.3376902Z",
+    "buildId": "1.0.026911",
+    "publishDate": "2024-05-15T19:23:23.3973684Z",
     "files": {
       "linux-x64": {
-        "url": "https://swalocaldeploy.azureedge.net/downloads/1.0.026361/linux/StaticSitesClient",
-        "sha": "e7430ccd96669bbb91204affa5bc313dc6af1f848d704dd7dacf9a2927b3d130"
+        "url": "https://swalocaldeploy.azureedge.net/downloads/1.0.026911/linux/StaticSitesClient",
+        "sha": "e1d9e033c973a35f64b7e41b6a114bd8e48022c9c3f7676e79047e87245a874d"
       },
       "win-x64": {
-        "url": "https://swalocaldeploy.azureedge.net/downloads/1.0.026361/windows/StaticSitesClient.exe",
-        "sha": "f3e2e686f742029a7b641e7cc6d3727398fbe783505df8cf75c334da980d2cd4"
+        "url": "https://swalocaldeploy.azureedge.net/downloads/1.0.026911/windows/StaticSitesClient.exe",
+        "sha": "c67e5eed2b28fcf5c98348732653d1e2b37d842e6dde9a6b30322832c5d86fc7"
       },
       "osx-x64": {
-        "url": "https://swalocaldeploy.azureedge.net/downloads/1.0.026361/macOS/StaticSitesClient",
-        "sha": "85bc201ed956ec41bc0a730dc5652c3c8bded946ebcf1c1ff31350490118a324"
+        "url": "https://swalocaldeploy.azureedge.net/downloads/1.0.026911/macOS/StaticSitesClient",
+        "sha": "18ca42a1b13db9b8b6db6bd8c77e65def56fa7bf3ce3fb1184e890d8cd7dd033"
       }
     }
   },
   {
     "version": "backup",
-    "buildId": "1.0.026164",
-    "publishDate": "2024-02-29T20:38:30.619614Z",
+    "buildId": "1.0.026792",
+    "publishDate": "2024-05-03T18:31:36.0288058Z",
     "files": {
       "linux-x64": {
-        "url": "https://swalocaldeploy.azureedge.net/downloads/1.0.026164/linux/StaticSitesClient",
-        "sha": "7b2d674a63fb0cb1ee39b84348260755c872a2922d03c0ee55eea1c8eb385524"
+        "url": "https://swalocaldeploy.azureedge.net/downloads/1.0.026792/linux/StaticSitesClient",
+        "sha": "a9dcd998d22a3476fb97fe1c446e83cc7f060a3a36cdb6757b828d0facc42347"
       },
       "win-x64": {
-        "url": "https://swalocaldeploy.azureedge.net/downloads/1.0.026164/windows/StaticSitesClient.exe",
-        "sha": "57f8db0e48c772f4eadd9cbab1996354ecdf193f0d123df02dfa4a7eb6398a15"
+        "url": "https://swalocaldeploy.azureedge.net/downloads/1.0.026792/windows/StaticSitesClient.exe",
+        "sha": "15f03e3f91208db2ea4015c4fce0623a692da1a289f23a782578ab7bc8a810e2"
       },
       "osx-x64": {
-        "url": "https://swalocaldeploy.azureedge.net/downloads/1.0.026164/macOS/StaticSitesClient",
-        "sha": "fd0e8fe34ba0776c1fc44a8e66017b3abe33b044f429a95e6863919e920bf555"
+        "url": "https://swalocaldeploy.azureedge.net/downloads/1.0.026792/macOS/StaticSitesClient",
+        "sha": "454b10f0351694ec3475a3d85b8746356932b2061a5be7e7fc093a6509cf000c"
       }
     }
   }
diff --git a/pkgs/development/tools/b4/default.nix b/pkgs/development/tools/b4/default.nix
index a4de4f93ce558..aebe38d88b7e8 100644
--- a/pkgs/development/tools/b4/default.nix
+++ b/pkgs/development/tools/b4/default.nix
@@ -23,7 +23,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://git.kernel.org/pub/scm/utils/b4/b4.git/about";
     license = licenses.gpl2Only;
-    description = "A helper utility to work with patches made available via a public-inbox archive";
+    description = "Helper utility to work with patches made available via a public-inbox archive";
     mainProgram = "b4";
     maintainers = with maintainers; [ jb55 qyliss mfrw ];
   };
diff --git a/pkgs/development/tools/backblaze-b2/default.nix b/pkgs/development/tools/backblaze-b2/default.nix
index 2021604637a19..b7e2265c49157 100644
--- a/pkgs/development/tools/backblaze-b2/default.nix
+++ b/pkgs/development/tools/backblaze-b2/default.nix
@@ -10,18 +10,19 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "backblaze-b2";
-  version = "3.19.1";
+  version = "4.0.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Backblaze";
     repo = "B2_Command_Line_Tool";
     rev = "refs/tags/v${version}";
-    hash = "sha256-/P1cgAC+a2YCcvbsysYdD+fEwibo+GyE0XY4A0+gMh4=";
+    hash = "sha256-rZUWPSI7CrKOdEKdsSpekwBerbIMf2iiVrWkV8WrqSc=";
   };
 
-  nativeBuildInputs = [
+  nativeBuildInputs = with python3Packages; [
     installShellFiles
+    argcomplete
   ];
 
   build-system = with python3Packages; [
@@ -77,8 +78,8 @@ python3Packages.buildPythonApplication rec {
   ''
   + ''
     installShellCompletion --cmd ${execName} \
-      --bash <(${python3Packages.argcomplete}/bin/register-python-argcomplete ${execName}) \
-      --zsh <(${python3Packages.argcomplete}/bin/register-python-argcomplete ${execName})
+      --bash <(register-python-argcomplete ${execName}) \
+      --zsh <(register-python-argcomplete ${execName})
   '';
 
   passthru.tests.version = (testers.testVersion {
diff --git a/pkgs/development/tools/bacon/default.nix b/pkgs/development/tools/bacon/default.nix
index 6334b0210e351..d3341c19e167f 100644
--- a/pkgs/development/tools/bacon/default.nix
+++ b/pkgs/development/tools/bacon/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "bacon";
-  version = "2.18.0";
+  version = "2.18.2";
 
   src = fetchFromGitHub {
     owner = "Canop";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-Lwmp6csNX0oYk2JOo3fojyjYpOSZg4ev8aZmkEzzAKA=";
+    hash = "sha256-hW37pz7iLkBspnQ0ckfVdZUKppXUPrgjHgwmlhsanlI=";
   };
 
-  cargoHash = "sha256-WxrdeE3x/WAHpJBsPsIP+qzxRkinVc8IyLZ75GwB1/g=";
+  cargoHash = "sha256-5o7TtqJh2CRwTrBU2Xbdh7qae5iWVlUfg4ddzxYepmU=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     CoreServices
diff --git a/pkgs/development/tools/bazel-gazelle/default.nix b/pkgs/development/tools/bazel-gazelle/default.nix
index 6b0a0d09eba23..030b02b1b5265 100644
--- a/pkgs/development/tools/bazel-gazelle/default.nix
+++ b/pkgs/development/tools/bazel-gazelle/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "bazel-gazelle";
-  version = "0.36.0";
+  version = "0.37.0";
 
   src = fetchFromGitHub {
     owner = "bazelbuild";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-jT+h3ehaqA6LLg2Q5JdWeHPwUomRDIapNALwa7nFDJ4=";
+    hash = "sha256-YtgqhwPpkw+lPgsBDCDxkcNsSu1/ZoIhXMuQeZgLXNU=";
   };
 
   vendorHash = null;
diff --git a/pkgs/development/tools/bazelisk/default.nix b/pkgs/development/tools/bazelisk/default.nix
index 4001ad4bbef83..41bc278d805c2 100644
--- a/pkgs/development/tools/bazelisk/default.nix
+++ b/pkgs/development/tools/bazelisk/default.nix
@@ -18,7 +18,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" "-X main.BazeliskVersion=${version}" ];
 
   meta = with lib; {
-    description = "A user-friendly launcher for Bazel";
+    description = "User-friendly launcher for Bazel";
     mainProgram = "bazelisk";
     longDescription = ''
       BEWARE: This package does not work on NixOS.
diff --git a/pkgs/development/tools/bearer/default.nix b/pkgs/development/tools/bearer/default.nix
index 6eca38cf6f14a..30f7defdfe428 100644
--- a/pkgs/development/tools/bearer/default.nix
+++ b/pkgs/development/tools/bearer/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "bearer";
-  version = "1.43.5";
+  version = "1.43.8";
 
   src = fetchFromGitHub {
     owner = "bearer";
     repo = "bearer";
     rev = "refs/tags/v${version}";
-    hash = "sha256-VMg07HOPvQK57DWVjuxtt5w1xMM4ansngL8clBOhPSc=";
+    hash = "sha256-rDmS13eDPYE/UmyCRsBi1wHOZerYf9QS/pOiPKVxwKA=";
   };
 
-  vendorHash = "sha256-rRlOWQ5M+aNMsnt7zHphm/SQyvPBZUCWpZH1J7TZe28=";
+  vendorHash = "sha256-7rTbLnFfdmRQgQfx2w/mO3Ac5ENEFm5XPzApKwlImkE=";
 
   subPackages = [ "cmd/bearer" ];
 
diff --git a/pkgs/development/tools/bingo/default.nix b/pkgs/development/tools/bingo/default.nix
index 9d9863ca32036..9af3b77dfbffb 100644
--- a/pkgs/development/tools/bingo/default.nix
+++ b/pkgs/development/tools/bingo/default.nix
@@ -22,7 +22,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "Like `go get` but for Go tools! CI Automating versioning of Go binaries in a nested, isolated Go modules.";
+    description = "Like `go get` but for Go tools! CI Automating versioning of Go binaries in a nested, isolated Go modules";
     mainProgram = "bingo";
     homepage = "https://github.com/bwplotka/bingo";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/bloaty/default.nix b/pkgs/development/tools/bloaty/default.nix
index 147d882d50af2..f9b133f2aaa79 100644
--- a/pkgs/development/tools/bloaty/default.nix
+++ b/pkgs/development/tools/bloaty/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "a size profiler for binaries";
+    description = "Size profiler for binaries";
     mainProgram = "bloaty";
     homepage = "https://github.com/google/bloaty";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/boomerang/default.nix b/pkgs/development/tools/boomerang/default.nix
index 0e67ab90c5239..e0e6823b0a27f 100644
--- a/pkgs/development/tools/boomerang/default.nix
+++ b/pkgs/development/tools/boomerang/default.nix
@@ -32,7 +32,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/BoomerangDecompiler/boomerang";
     license = licenses.bsd3;
-    description = "A general, open source, retargetable decompiler";
+    description = "General, open source, retargetable decompiler";
     maintainers = with maintainers; [ dtzWill ];
   };
 }
diff --git a/pkgs/development/tools/buf/default.nix b/pkgs/development/tools/buf/default.nix
index 603c0865419ce..3edfe7aea5746 100644
--- a/pkgs/development/tools/buf/default.nix
+++ b/pkgs/development/tools/buf/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
-, protobuf
+, protobuf_26
 , git
 , testers
 , buf
@@ -10,20 +10,19 @@
 
 buildGoModule rec {
   pname = "buf";
-  version = "1.31.0";
+  version = "1.32.2";
 
   src = fetchFromGitHub {
     owner = "bufbuild";
-    repo = pname;
+    repo = "buf";
     rev = "v${version}";
-    hash = "sha256-CNt7ZfUMRQNNVusaBgEW64WH1TFYz8yEBfKksGVRVUM=";
+    hash = "sha256-lSK1ETeCnK/NeCHaZoHcgFO5OhbE6XcvbJg1+p9x4Hg=";
   };
 
-  vendorHash = "sha256-kagSvwxVE+URRY2C5tRtdRwtHBIdQh3BWUG1b3+L8Os=";
+  vendorHash = "sha256-LMjDR8tTZPLiIKxvdGjeaVMOh76eYhmAlI7lDJ7HG7I=";
 
   patches = [
-    # Skip a test that requires networking to be available to work,
-    # and a test which requires the source checkout to be part of a git repository
+    # Skip a test that requires networking to be available to work.
     ./skip_broken_tests.patch
   ];
 
@@ -33,7 +32,11 @@ buildGoModule rec {
 
   nativeCheckInputs = [
     git # Required for TestGitCloner
-    protobuf # Required for buftesting.GetProtocFilePaths
+    protobuf_26 # Required for buftesting.GetProtocFilePaths
+  ];
+
+  checkFlags = [
+    "-skip=TestWorkspaceGit"
   ];
 
   preCheck = ''
@@ -74,5 +77,6 @@ buildGoModule rec {
     description = "Create consistent Protobuf APIs that preserve compatibility and comply with design best-practices";
     license = licenses.asl20;
     maintainers = with maintainers; [ jk lrewega ];
+    mainProgram = "buf";
   };
 }
diff --git a/pkgs/development/tools/buf/skip_broken_tests.patch b/pkgs/development/tools/buf/skip_broken_tests.patch
index c25f8c8c93043..8bde6a9f70bfd 100644
--- a/pkgs/development/tools/buf/skip_broken_tests.patch
+++ b/pkgs/development/tools/buf/skip_broken_tests.patch
@@ -1,21 +1,8 @@
-diff --git a/private/buf/cmd/buf/workspace_unix_test.go b/private/buf/cmd/buf/workspace_unix_test.go
-index 22c84385..22548555 100644
---- a/private/buf/cmd/buf/workspace_unix_test.go
-+++ b/private/buf/cmd/buf/workspace_unix_test.go
-@@ -93,6 +93,8 @@ func TestWorkspaceAbsoluteFail(t *testing.T) {
- // Workflow run: https://github.com/bufbuild/buf/actions/runs/6510804063/job/17685247791.
- // Potential fix: https://stackoverflow.com/questions/22575662/filename-too-long-in-git-for-windows.
- func TestWorkspaceGit(t *testing.T) {
-+	// Fails because the source checkout is not part of a git repository while building with nix
-+	t.Skip()
- 	// Directory paths specified as a git reference within a workspace.
- 	t.Parallel()
- 	testRunStdout(
-diff --git a/private/bufpkg/buftesting/buftesting.go b/private/bufpkg/buftesting/buftesting.go
-index d9e1fdc6..6e08c439 100644
---- a/private/bufpkg/buftesting/buftesting.go
-+++ b/private/bufpkg/buftesting/buftesting.go
-@@ -104,6 +104,10 @@ func RunActualProtoc(
+diff --git a/private/buf/buftesting/buftesting.go b/private/buf/buftesting/buftesting.go
+index 1c650077..5422f703 100644
+--- a/private/buf/buftesting/buftesting.go
++++ b/private/buf/buftesting/buftesting.go
+@@ -106,6 +106,10 @@ func RunActualProtoc(
  
  // GetGoogleapisDirPath gets the path to a clone of googleapis.
  func GetGoogleapisDirPath(t *testing.T, buftestingDirPath string) string {
diff --git a/pkgs/development/tools/build-managers/alire/default.nix b/pkgs/development/tools/build-managers/alire/default.nix
index b7613fe6e0452..cfa6e58ff3a0f 100644
--- a/pkgs/development/tools/build-managers/alire/default.nix
+++ b/pkgs/development/tools/build-managers/alire/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , gprbuild
 , gnat
 }:
@@ -44,7 +43,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A source-based package manager for the Ada and SPARK programming languages";
+    description = "Source-based package manager for the Ada and SPARK programming languages";
     homepage = "https://alire.ada.dev";
     changelog = "https://github.com/alire-project/alire/releases/tag/v${finalAttrs.version}";
     license = lib.licenses.gpl3Only;
diff --git a/pkgs/development/tools/build-managers/apache-ant/default.nix b/pkgs/development/tools/build-managers/apache-ant/default.nix
index 9e3ff98f285d2..17f750a9450c7 100644
--- a/pkgs/development/tools/build-managers/apache-ant/default.nix
+++ b/pkgs/development/tools/build-managers/apache-ant/default.nix
@@ -80,7 +80,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://ant.apache.org/";
-    description = "A Java-based build tool";
+    description = "Java-based build tool";
     mainProgram = "ant";
 
     longDescription = ''
diff --git a/pkgs/development/tools/build-managers/apache-maven/default.nix b/pkgs/development/tools/build-managers/apache-maven/default.nix
deleted file mode 100644
index c8b5fdaa04a95..0000000000000
--- a/pkgs/development/tools/build-managers/apache-maven/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ lib
-, stdenvNoCC
-, fetchurl
-, jdk
-, makeWrapper
-, callPackage
-}:
-
-assert jdk != null;
-
-stdenvNoCC.mkDerivation (finalAttrs: {
-  pname = "apache-maven";
-  version = "3.9.6";
-
-  src = fetchurl {
-    url = "mirror://apache/maven/maven-3/${finalAttrs.version}/binaries/${finalAttrs.pname}-${finalAttrs.version}-bin.tar.gz";
-    hash = "sha256-bu3SyuNibWrTpcnuMkvSZYU9ZCl/B/AzQwdVvQ4MOks=";
-  };
-
-  sourceRoot = ".";
-
-  nativeBuildInputs = [ makeWrapper ];
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/maven
-    cp -r ${finalAttrs.pname}-${finalAttrs.version}/* $out/maven
-
-    makeWrapper $out/maven/bin/mvn $out/bin/mvn \
-      --set-default JAVA_HOME "${jdk}"
-    makeWrapper $out/maven/bin/mvnDebug $out/bin/mvnDebug \
-      --set-default JAVA_HOME "${jdk}"
-
-    runHook postInstall
-  '';
-
-  passthru.buildMavenPackage = callPackage ./build-package.nix {
-    maven = finalAttrs.finalPackage;
-  };
-
-  meta = with lib; {
-    mainProgram = "mvn";
-    description = "Build automation tool (used primarily for Java projects)";
-    homepage = "https://maven.apache.org/";
-    license = licenses.asl20;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ cko ];
-  };
-})
diff --git a/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix b/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
index 9f1058bd9e486..182b66c8db085 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "bazel-remote";
-  version = "2.4.3";
+  version = "2.4.4";
 
   src = fetchFromGitHub {
     owner = "buchgr";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-yvdsRc5KZAwzekktSu9tR9R2vvAMi+4JVkvy+ANFkQ8=";
+    hash = "sha256-ncYE48DtH+mIM9ZR7IB38SzQFordhMGLp79poqDKWLE=";
   };
 
-  vendorHash = "sha256-0rmqsUMwk5ytAZc94JzvZTuh0WAmQwBEWSE96yNALE0=";
+  vendorHash = "sha256-7rxrnxZwxqRRQf1sWk8ILi2IV/pYmxBuwHl9khfCrKE=";
 
   subPackages = [ "." ];
 
@@ -24,7 +24,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/buchgr/bazel-remote";
-    description = "A remote HTTP/1.1 cache for Bazel";
+    description = "Remote HTTP/1.1 cache for Bazel";
     mainProgram = "bazel-remote";
     changelog = "https://github.com/buchgr/bazel-remote/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_5/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_5/default.nix
index 5ef2a183fa0aa..2e1459c16bea9 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_5/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_5/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, callPackage, lib, fetchurl, fetchpatch, fetchFromGitHub, installShellFiles
+{ stdenv, callPackage, lib, fetchurl, fetchFromGitHub, installShellFiles
 , runCommand, runCommandCC, makeWrapper, recurseIntoAttrs
 # this package (through the fixpoint glass)
 , bazel_self
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_6/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_6/default.nix
index 186d585d626e4..5521fcf0d53df 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_6/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_6/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, callPackage, lib, fetchurl, fetchpatch, fetchFromGitHub, installShellFiles
+{ stdenv, callPackage, lib, fetchurl, fetchFromGitHub, installShellFiles
 , runCommand, runCommandCC, makeWrapper, recurseIntoAttrs
 # this package (through the fixpoint glass)
 , bazel_self
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_7/MODULE.bazel.lock b/pkgs/development/tools/build-managers/bazel/bazel_7/MODULE.bazel.lock
index 2e380bbea3239..a1fd039a5f0d3 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_7/MODULE.bazel.lock
+++ b/pkgs/development/tools/build-managers/bazel/bazel_7/MODULE.bazel.lock
@@ -1,5 +1,5 @@
 {
-  "lockFileVersion": 3,
+  "lockFileVersion": 6,
   "moduleFileHash": "c07897f4cf2ea76f689df2779f50aed06ea638d666542078234ebb0efd3ea5a5",
   "flags": {
     "cmdRegistries": [
@@ -13,7 +13,7 @@
     "compatibilityMode": "ERROR"
   },
   "localOverrideHashes": {
-    "bazel_tools": "922ea6752dc9105de5af957f7a99a6933c0a6a712d23df6aad16a9c399f7e787",
+    "bazel_tools": "1ae69322ac3823527337acf02016e8ee95813d8d356f47060255b8956fa642f0",
     "googleapis": "89bad67656f73e953cbf62f12165f56e97cf2cc17d56974c593de76200fa3471",
     "remoteapis": "3862bfbe3d308e71852b8f025f4b33ea9c0dc8790829eda4a71425c5a2ca814e"
   },
@@ -653,10 +653,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "rules_license~0.0.7",
           "urls": [
             "https://github.com/bazelbuild/rules_license/releases/download/0.0.7/rules_license-0.0.7.tar.gz"
           ],
@@ -684,10 +683,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "bazel_skylib~1.5.0",
           "urls": [
             "https://github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz"
           ],
@@ -764,10 +762,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "protobuf~21.7",
           "urls": [
             "https://github.com/protocolbuffers/protobuf/releases/download/v21.7/protobuf-all-21.7.zip"
           ],
@@ -845,10 +842,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "grpc~1.48.1.bcr.1",
           "urls": [
             "https://github.com/grpc/grpc/archive/refs/tags/v1.48.1.tar.gz"
           ],
@@ -875,10 +871,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "platforms",
           "urls": [
             "https://github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz"
           ],
@@ -905,10 +900,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "rules_pkg~0.9.1",
           "urls": [
             "https://github.com/bazelbuild/rules_pkg/releases/download/0.9.1/rules_pkg-0.9.1.tar.gz"
           ],
@@ -934,10 +928,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "stardoc~0.5.3",
           "urls": [
             "https://github.com/bazelbuild/stardoc/releases/download/0.5.3/stardoc-0.5.3.tar.gz"
           ],
@@ -963,10 +956,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "zstd-jni~1.5.2-3.bcr.1",
           "urls": [
             "https://github.com/luben/zstd-jni/archive/refs/tags/v1.5.2-3.zip"
           ],
@@ -995,10 +987,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "blake3~1.3.3.bcr.1",
           "urls": [
             "https://github.com/BLAKE3-team/BLAKE3/archive/refs/tags/1.3.3.tar.gz"
           ],
@@ -1027,10 +1018,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "zlib~1.3",
           "urls": [
             "https://github.com/madler/zlib/releases/download/v1.3/zlib-1.3.tar.gz"
           ],
@@ -1078,10 +1068,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "rules_cc~0.0.9",
           "urls": [
             "https://github.com/bazelbuild/rules_cc/releases/download/0.0.9/rules_cc-0.0.9.tar.gz"
           ],
@@ -1112,10 +1101,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "rules_graalvm~0.10.3",
           "urls": [
             "https://github.com/sgammon/rules_graalvm/releases/download/v0.10.3/rules_graalvm-0.10.3.zip"
           ],
@@ -1213,10 +1201,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "rules_java~7.4.0",
           "urls": [
             "https://github.com/bazelbuild/rules_java/releases/download/7.4.0/rules_java-7.4.0.tar.gz"
           ],
@@ -1243,10 +1230,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "rules_proto~5.3.0-21.7",
           "urls": [
             "https://github.com/bazelbuild/rules_proto/archive/refs/tags/5.3.0-21.7.tar.gz"
           ],
@@ -1283,7 +1269,7 @@
           "hasNonDevUseExtension": true
         },
         {
-          "extensionBzlFile": ":extensions.bzl",
+          "extensionBzlFile": "@rules_jvm_external//:extensions.bzl",
           "extensionName": "maven",
           "usingModule": "rules_jvm_external@5.2",
           "location": {
@@ -1332,10 +1318,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "rules_jvm_external~5.2",
           "urls": [
             "https://github.com/bazelbuild/rules_jvm_external/releases/download/5.2/rules_jvm_external-5.2.tar.gz"
           ],
@@ -1344,7 +1329,7 @@
           "remote_patches": {},
           "remote_patch_strip": 0,
           "patches": [
-            "//third_party:rules_jvm_external_5.2.patch"
+            "@@//third_party:rules_jvm_external_5.2.patch"
           ],
           "patch_cmds": [],
           "patch_args": [
@@ -1448,10 +1433,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "rules_python~0.26.0",
           "urls": [
             "https://github.com/bazelbuild/rules_python/releases/download/0.26.0/rules_python-0.26.0.tar.gz"
           ],
@@ -1478,10 +1462,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "rules_testing~0.0.4",
           "urls": [
             "https://github.com/bazelbuild/rules_testing/releases/download/v0.0.4/rules_testing-v0.0.4.tar.gz"
           ],
@@ -1510,10 +1493,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "googletest~1.14.0",
           "urls": [
             "https://github.com/google/googletest/archive/refs/tags/v1.14.0.tar.gz"
           ],
@@ -1598,10 +1580,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "apple_support~1.8.1",
           "urls": [
             "https://github.com/bazelbuild/apple_support/releases/download/1.8.1/apple_support.1.8.1.tar.gz"
           ],
@@ -1630,10 +1611,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "abseil-cpp~20230125.1",
           "urls": [
             "https://github.com/abseil/abseil-cpp/archive/refs/tags/20230125.1.tar.gz"
           ],
@@ -1662,10 +1642,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "c-ares~1.15.0",
           "urls": [
             "https://github.com/c-ares/c-ares/releases/download/cares-1_15_0/c-ares-1.15.0.tar.gz"
           ],
@@ -1799,10 +1778,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "rules_go~0.39.1",
           "urls": [
             "https://github.com/bazelbuild/rules_go/releases/download/v0.39.1/rules_go-v0.39.1.zip"
           ],
@@ -1831,10 +1809,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "upb~0.0.0-20220923-a547704",
           "urls": [
             "https://github.com/protocolbuffers/upb/archive/a5477045acaa34586420942098f5fecd3570f577.tar.gz"
           ],
@@ -1864,7 +1841,7 @@
           "usingModule": "bazel_tools@_",
           "location": {
             "file": "@@bazel_tools//:MODULE.bazel",
-            "line": 17,
+            "line": 18,
             "column": 29
           },
           "imports": {
@@ -1882,7 +1859,7 @@
           "usingModule": "bazel_tools@_",
           "location": {
             "file": "@@bazel_tools//:MODULE.bazel",
-            "line": 21,
+            "line": 22,
             "column": 32
           },
           "imports": {
@@ -1899,7 +1876,7 @@
           "usingModule": "bazel_tools@_",
           "location": {
             "file": "@@bazel_tools//:MODULE.bazel",
-            "line": 24,
+            "line": 25,
             "column": 32
           },
           "imports": {
@@ -1921,7 +1898,7 @@
           "usingModule": "bazel_tools@_",
           "location": {
             "file": "@@bazel_tools//:MODULE.bazel",
-            "line": 35,
+            "line": 36,
             "column": 39
           },
           "imports": {
@@ -1938,7 +1915,7 @@
           "usingModule": "bazel_tools@_",
           "location": {
             "file": "@@bazel_tools//:MODULE.bazel",
-            "line": 39,
+            "line": 40,
             "column": 48
           },
           "imports": {
@@ -1955,7 +1932,7 @@
           "usingModule": "bazel_tools@_",
           "location": {
             "file": "@@bazel_tools//:MODULE.bazel",
-            "line": 42,
+            "line": 43,
             "column": 42
           },
           "imports": {
@@ -1966,6 +1943,23 @@
           "tags": [],
           "hasDevUseExtension": false,
           "hasNonDevUseExtension": true
+        },
+        {
+          "extensionBzlFile": "@buildozer//:buildozer_binary.bzl",
+          "extensionName": "buildozer_binary",
+          "usingModule": "bazel_tools@_",
+          "location": {
+            "file": "@@bazel_tools//:MODULE.bazel",
+            "line": 47,
+            "column": 33
+          },
+          "imports": {
+            "buildozer_binary": "buildozer_binary"
+          },
+          "devImports": [],
+          "tags": [],
+          "hasDevUseExtension": false,
+          "hasNonDevUseExtension": true
         }
       ],
       "deps": {
@@ -1974,6 +1968,7 @@
         "rules_license": "rules_license@0.0.7",
         "rules_proto": "rules_proto@5.3.0-21.7",
         "rules_python": "rules_python@0.26.0",
+        "buildozer": "buildozer@6.4.0.2",
         "platforms": "platforms@0.0.8",
         "com_google_protobuf": "protobuf@21.7",
         "zlib": "zlib@1.3",
@@ -2008,10 +2003,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "boringssl~0.0.0-20211025-d4f1ab9",
           "urls": [
             "https://github.com/google/boringssl/archive/d4f1ab983065e4616319f59c723c7b9870021fae.tar.gz"
           ],
@@ -2038,10 +2032,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "re2~2021-09-01",
           "urls": [
             "https://github.com/google/re2/archive/refs/tags/2021-09-01.zip"
           ],
@@ -2086,10 +2079,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "bazel_features~1.1.0",
           "urls": [
             "https://github.com/bazel-contrib/bazel_features/releases/download/v1.1.0/bazel_features-v1.1.0.tar.gz"
           ],
@@ -2211,10 +2203,9 @@
         "local_config_platform": "local_config_platform@_"
       },
       "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
         "ruleClassName": "http_archive",
         "attributes": {
-          "name": "gazelle~0.30.0",
           "urls": [
             "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.30.0/bazel-gazelle-v0.30.0.tar.gz"
           ],
@@ -2224,20 +2215,86 @@
           "remote_patch_strip": 0
         }
       }
+    },
+    "buildozer@6.4.0.2": {
+      "name": "buildozer",
+      "version": "6.4.0.2",
+      "key": "buildozer@6.4.0.2",
+      "repoName": "buildozer",
+      "executionPlatformsToRegister": [],
+      "toolchainsToRegister": [],
+      "extensionUsages": [
+        {
+          "extensionBzlFile": "@buildozer//:buildozer_binary.bzl",
+          "extensionName": "buildozer_binary",
+          "usingModule": "buildozer@6.4.0.2",
+          "location": {
+            "file": "https://bcr.bazel.build/modules/buildozer/6.4.0.2/MODULE.bazel",
+            "line": 7,
+            "column": 33
+          },
+          "imports": {
+            "buildozer_binary": "buildozer_binary"
+          },
+          "devImports": [],
+          "tags": [
+            {
+              "tagName": "buildozer",
+              "attributeValues": {
+                "sha256": {
+                  "darwin-amd64": "d29e347ecd6b5673d72cb1a8de05bf1b06178dd229ff5eb67fad5100c840cc8e",
+                  "darwin-arm64": "9b9e71bdbec5e7223871e913b65d12f6d8fa026684daf991f00e52ed36a6978d",
+                  "linux-amd64": "8dfd6345da4e9042daa738d7fdf34f699c5dfce4632f7207956fceedd8494119",
+                  "linux-arm64": "6559558fded658c8fa7432a9d011f7c4dcbac6b738feae73d2d5c352e5f605fa",
+                  "windows-amd64": "e7f05bf847f7c3689dd28926460ce6e1097ae97380ac8e6ae7147b7b706ba19b"
+                },
+                "version": "6.4.0"
+              },
+              "devDependency": false,
+              "location": {
+                "file": "https://bcr.bazel.build/modules/buildozer/6.4.0.2/MODULE.bazel",
+                "line": 8,
+                "column": 27
+              }
+            }
+          ],
+          "hasDevUseExtension": false,
+          "hasNonDevUseExtension": true
+        }
+      ],
+      "deps": {
+        "bazel_tools": "bazel_tools@_",
+        "local_config_platform": "local_config_platform@_"
+      },
+      "repoSpec": {
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+        "ruleClassName": "http_archive",
+        "attributes": {
+          "urls": [
+            "https://github.com/fmeum/buildozer/releases/download/v6.4.0.2/buildozer-v6.4.0.2.tar.gz"
+          ],
+          "integrity": "sha256-k7tFKQMR2AygxpmZfH0yEPnQmF3efFgD9rBPkj+Yz/8=",
+          "strip_prefix": "buildozer-6.4.0.2",
+          "remote_patches": {
+            "https://bcr.bazel.build/modules/buildozer/6.4.0.2/patches/module_dot_bazel_version.patch": "sha256-gKANF2HMilj7bWmuXs4lbBIAAansuWC4IhWGB/CerjU="
+          },
+          "remote_patch_strip": 1
+        }
+      }
     }
   },
   "moduleExtensions": {
     "//:extensions.bzl%bazel_android_deps": {
       "general": {
-        "bzlTransitiveDigest": "MO3e2koSmZi0NExoX7q3lkNlyquuSaUeNAzVxet7a1c=",
-        "accumulatedFileDigests": {},
+        "bzlTransitiveDigest": "KBarN1/r/5veMYz+cUHOlEzjGUdmUkxNYymHZwCJULg=",
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "desugar_jdk_libs": {
             "bzlFile": "@@//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "_main~bazel_android_deps~desugar_jdk_libs",
               "sha256": "ef71be474fbb3b3b7bd70cda139f01232c63b9e1bbd08c058b00a8d538d4db17",
               "strip_prefix": "desugar_jdk_libs-24dcd1dead0b64aae3d7c89ca9646b5dc4068009",
               "url": "https://github.com/google/desugar_jdk_libs/archive/24dcd1dead0b64aae3d7c89ca9646b5dc4068009.zip"
@@ -2248,17 +2305,17 @@
           [
             "",
             "abseil-cpp",
-            "abseil-cpp~20230125.1"
+            "abseil-cpp~"
           ],
           [
             "",
             "apple_support",
-            "apple_support~1.8.1"
+            "apple_support~"
           ],
           [
             "",
             "bazel_skylib",
-            "bazel_skylib~1.5.0"
+            "bazel_skylib~"
           ],
           [
             "",
@@ -2268,27 +2325,27 @@
           [
             "",
             "blake3",
-            "blake3~1.3.3.bcr.1"
+            "blake3~"
           ],
           [
             "",
             "c-ares",
-            "c-ares~1.15.0"
+            "c-ares~"
           ],
           [
             "",
             "com_github_grpc_grpc",
-            "grpc~1.48.1.bcr.1"
+            "grpc~"
           ],
           [
             "",
             "com_google_protobuf",
-            "protobuf~21.7"
+            "protobuf~"
           ],
           [
             "",
             "io_bazel_skydoc",
-            "stardoc~0.5.3"
+            "stardoc~"
           ],
           [
             "",
@@ -2298,62 +2355,62 @@
           [
             "",
             "rules_cc",
-            "rules_cc~0.0.9"
+            "rules_cc~"
           ],
           [
             "",
             "rules_go",
-            "rules_go~0.39.1"
+            "rules_go~"
           ],
           [
             "",
             "rules_graalvm",
-            "rules_graalvm~0.10.3"
+            "rules_graalvm~"
           ],
           [
             "",
             "rules_java",
-            "rules_java~7.4.0"
+            "rules_java~"
           ],
           [
             "",
             "rules_jvm_external",
-            "rules_jvm_external~5.2"
+            "rules_jvm_external~"
           ],
           [
             "",
             "rules_license",
-            "rules_license~0.0.7"
+            "rules_license~"
           ],
           [
             "",
             "rules_pkg",
-            "rules_pkg~0.9.1"
+            "rules_pkg~"
           ],
           [
             "",
             "rules_proto",
-            "rules_proto~5.3.0-21.7"
+            "rules_proto~"
           ],
           [
             "",
             "rules_python",
-            "rules_python~0.26.0"
+            "rules_python~"
           ],
           [
             "",
             "upb",
-            "upb~0.0.0-20220923-a547704"
+            "upb~"
           ],
           [
             "",
             "zlib",
-            "zlib~1.3"
+            "zlib~"
           ],
           [
             "",
             "zstd-jni",
-            "zstd-jni~1.5.2-3.bcr.1"
+            "zstd-jni~"
           ],
           [
             "bazel_tools",
@@ -2365,18 +2422,18 @@
     },
     "//:extensions.bzl%bazel_build_deps": {
       "general": {
-        "bzlTransitiveDigest": "MO3e2koSmZi0NExoX7q3lkNlyquuSaUeNAzVxet7a1c=",
-        "accumulatedFileDigests": {
-          "@@//src/test/tools/bzlmod:MODULE.bazel.lock": "0cae3b3c6186baa47cd8a48fe55530f613f22016845926e7825dce52dd496540",
-          "@@//:MODULE.bazel": "c07897f4cf2ea76f689df2779f50aed06ea638d666542078234ebb0efd3ea5a5"
+        "bzlTransitiveDigest": "KBarN1/r/5veMYz+cUHOlEzjGUdmUkxNYymHZwCJULg=",
+        "recordedFileInputs": {
+          "@@//MODULE.bazel": "c07897f4cf2ea76f689df2779f50aed06ea638d666542078234ebb0efd3ea5a5",
+          "@@//src/test/tools/bzlmod/MODULE.bazel.lock": "0cae3b3c6186baa47cd8a48fe55530f613f22016845926e7825dce52dd496540"
         },
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "openjdk_macos_aarch64_vanilla": {
             "bzlFile": "@@//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "_main~bazel_build_deps~openjdk_macos_aarch64_vanilla",
               "sha256": "2a7a99a3ea263dbd8d32a67d1e6e363ba8b25c645c826f5e167a02bbafaff1fa",
               "downloaded_file_path": "zulu-macos-aarch64-vanilla.tar.gz",
               "url": "https://cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-macosx_aarch64.tar.gz"
@@ -2386,25 +2443,24 @@
             "bzlFile": "@@//:distdir.bzl",
             "ruleClassName": "repo_cache_tar",
             "attributes": {
-              "name": "_main~bazel_build_deps~bazel_tools_repo_cache",
               "repos": [
-                "rules_cc~0.0.9",
-                "rules_java~7.4.0",
-                "rules_license~0.0.7",
-                "rules_proto~5.3.0-21.7",
-                "rules_python~0.22.1",
-                "buildozer~6.4.0.2",
+                "rules_cc~",
+                "rules_java~",
+                "rules_license~",
+                "rules_proto~",
+                "rules_python~",
+                "buildozer~",
                 "platforms",
-                "protobuf~21.7",
-                "zlib~1.3",
-                "apple_support~1.5.0",
-                "bazel_skylib~1.3.0",
-                "rules_pkg~0.7.0",
-                "abseil-cpp~20211102.0",
-                "upb~0.0.0-20220923-a547704",
-                "rules_jvm_external~4.4.2",
-                "googletest~1.11.0",
-                "stardoc~0.5.1"
+                "protobuf~",
+                "zlib~",
+                "apple_support~",
+                "bazel_skylib~",
+                "rules_pkg~",
+                "abseil-cpp~",
+                "upb~",
+                "rules_jvm_external~",
+                "googletest~",
+                "stardoc~"
               ],
               "lockfile": "@@//src/test/tools/bzlmod:MODULE.bazel.lock"
             }
@@ -2413,7 +2469,6 @@
             "bzlFile": "@@//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "_main~bazel_build_deps~openjdk_linux_vanilla",
               "sha256": "0c0eadfbdc47a7ca64aeab51b9c061f71b6e4d25d2d87674512e9b6387e9e3a6",
               "downloaded_file_path": "zulu-linux-vanilla.tar.gz",
               "url": "https://cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-linux_x64.tar.gz"
@@ -2423,7 +2478,6 @@
             "bzlFile": "@@//tools/distributions:system_repo.bzl",
             "ruleClassName": "system_repo",
             "attributes": {
-              "name": "_main~bazel_build_deps~debian_cc_deps",
               "symlinks": {},
               "build_file": "@@//tools/distributions/debian:debian_cc.BUILD"
             }
@@ -2432,7 +2486,6 @@
             "bzlFile": "@@//tools/distributions:system_repo.bzl",
             "ruleClassName": "system_repo",
             "attributes": {
-              "name": "_main~bazel_build_deps~debian_java_deps",
               "symlinks": {
                 "java": "/usr/share/java"
               },
@@ -2443,7 +2496,6 @@
             "bzlFile": "@@//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "_main~bazel_build_deps~openjdk_linux_s390x_vanilla",
               "sha256": "f2512f9a8e9847dd5d3557c39b485a8e7a1ef37b601dcbcb748d22e49f44815c",
               "downloaded_file_path": "adoptopenjdk-s390x-vanilla.tar.gz",
               "url": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.2%2B7/OpenJDK19U-jdk_s390x_linux_hotspot_19.0.2_7.tar.gz"
@@ -2453,36 +2505,35 @@
             "bzlFile": "@@//:distdir.bzl",
             "ruleClassName": "repo_cache_tar",
             "attributes": {
-              "name": "_main~bazel_build_deps~bootstrap_repo_cache",
               "repos": [
-                "abseil-cpp~20230125.1",
-                "apple_support~1.8.1",
-                "bazel_skylib~1.5.0",
-                "blake3~1.3.3.bcr.1",
-                "c-ares~1.15.0",
-                "grpc~1.48.1.bcr.1",
-                "protobuf~21.7",
-                "stardoc~0.5.3",
+                "abseil-cpp~",
+                "apple_support~",
+                "bazel_skylib~",
+                "blake3~",
+                "c-ares~",
+                "grpc~",
+                "protobuf~",
+                "stardoc~",
                 "platforms",
-                "rules_cc~0.0.9",
-                "rules_go~0.39.1",
-                "rules_java~7.4.0",
-                "rules_jvm_external~5.2",
-                "rules_graalvm~0.10.3",
-                "rules_license~0.0.7",
-                "rules_pkg~0.9.1",
-                "rules_proto~5.3.0-21.7",
-                "rules_python~0.26.0",
-                "upb~0.0.0-20220923-a547704",
-                "zlib~1.3",
-                "zstd-jni~1.5.2-3.bcr.1",
-                "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~bazel_gazelle",
-                "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~bazel_skylib",
-                "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~com_envoyproxy_protoc_gen_validate",
-                "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~com_github_cncf_udpa",
-                "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~com_google_googleapis",
-                "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~envoy_api",
-                "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~rules_cc"
+                "rules_cc~",
+                "rules_go~",
+                "rules_java~",
+                "rules_jvm_external~",
+                "rules_graalvm~",
+                "rules_license~",
+                "rules_pkg~",
+                "rules_proto~",
+                "rules_python~",
+                "upb~",
+                "zlib~",
+                "zstd-jni~",
+                "grpc~~grpc_repo_deps_ext~bazel_gazelle",
+                "grpc~~grpc_repo_deps_ext~bazel_skylib",
+                "grpc~~grpc_repo_deps_ext~com_envoyproxy_protoc_gen_validate",
+                "grpc~~grpc_repo_deps_ext~com_github_cncf_udpa",
+                "grpc~~grpc_repo_deps_ext~com_google_googleapis",
+                "grpc~~grpc_repo_deps_ext~envoy_api",
+                "grpc~~grpc_repo_deps_ext~rules_cc"
               ],
               "dirname": "derived/repository_cache"
             }
@@ -2491,7 +2542,6 @@
             "bzlFile": "@@//tools/distributions:system_repo.bzl",
             "ruleClassName": "system_repo",
             "attributes": {
-              "name": "_main~bazel_build_deps~debian_bin_deps",
               "symlinks": {
                 "protoc": "/usr/bin/protoc",
                 "grpc_cpp_plugin": "/usr/bin/grpc_cpp_plugin",
@@ -2504,7 +2554,6 @@
             "bzlFile": "@@//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "_main~bazel_build_deps~openjdk_win_arm64_vanilla",
               "sha256": "975603e684f2ec5a525b3b5336d6aa0b09b5b7d2d0d9e271bd6a9892ad550181",
               "downloaded_file_path": "zulu-win-arm64.zip",
               "url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.0-windows-aarch64.zip"
@@ -2514,7 +2563,6 @@
             "bzlFile": "@@//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "_main~bazel_build_deps~openjdk_linux_ppc64le_vanilla",
               "sha256": "45dde71faf8cbb78fab3c976894259655c8d3de827347f23e0ebe5710921dded",
               "downloaded_file_path": "adoptopenjdk-ppc64le-vanilla.tar.gz",
               "url": "https://github.com/adoptium/temurin20-binaries/releases/download/jdk-20%2B36/OpenJDK20U-jdk_ppc64le_linux_hotspot_20_36.tar.gz"
@@ -2524,7 +2572,6 @@
             "bzlFile": "@@//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "_main~bazel_build_deps~openjdk_macos_x86_64_vanilla",
               "sha256": "9639b87db586d0c89f7a9892ae47f421e442c64b97baebdff31788fbe23265bd",
               "downloaded_file_path": "zulu-macos-vanilla.tar.gz",
               "url": "https://cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-macosx_x64.tar.gz"
@@ -2534,7 +2581,6 @@
             "bzlFile": "@@//:distdir.bzl",
             "ruleClassName": "_distdir_tar",
             "attributes": {
-              "name": "_main~bazel_build_deps~workspace_repo_cache",
               "archives": [
                 "rules_cc-0.0.9.tar.gz",
                 "rules_java-7.4.0.tar.gz",
@@ -2592,7 +2638,6 @@
             "bzlFile": "@@//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "_main~bazel_build_deps~openjdk_win_vanilla",
               "sha256": "e9959d500a0d9a7694ac243baf657761479da132f0f94720cbffd092150bd802",
               "downloaded_file_path": "zulu-win-vanilla.zip",
               "url": "https://cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-win_x64.zip"
@@ -2602,7 +2647,6 @@
             "bzlFile": "@@//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "_main~bazel_build_deps~openjdk_linux_aarch64_vanilla",
               "sha256": "1fb64b8036c5d463d8ab59af06bf5b6b006811e6012e3b0eb6bccf57f1c55835",
               "downloaded_file_path": "zulu-linux-aarch64-vanilla.tar.gz",
               "url": "https://cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-linux_aarch64.tar.gz"
@@ -2612,7 +2656,6 @@
             "bzlFile": "@@//tools/distributions:system_repo.bzl",
             "ruleClassName": "system_repo",
             "attributes": {
-              "name": "_main~bazel_build_deps~debian_proto_deps",
               "symlinks": {
                 "google/protobuf": "/usr/include/google/protobuf"
               },
@@ -2624,17 +2667,17 @@
           [
             "",
             "abseil-cpp",
-            "abseil-cpp~20230125.1"
+            "abseil-cpp~"
           ],
           [
             "",
             "apple_support",
-            "apple_support~1.8.1"
+            "apple_support~"
           ],
           [
             "",
             "bazel_skylib",
-            "bazel_skylib~1.5.0"
+            "bazel_skylib~"
           ],
           [
             "",
@@ -2644,27 +2687,27 @@
           [
             "",
             "blake3",
-            "blake3~1.3.3.bcr.1"
+            "blake3~"
           ],
           [
             "",
             "c-ares",
-            "c-ares~1.15.0"
+            "c-ares~"
           ],
           [
             "",
             "com_github_grpc_grpc",
-            "grpc~1.48.1.bcr.1"
+            "grpc~"
           ],
           [
             "",
             "com_google_protobuf",
-            "protobuf~21.7"
+            "protobuf~"
           ],
           [
             "",
             "io_bazel_skydoc",
-            "stardoc~0.5.3"
+            "stardoc~"
           ],
           [
             "",
@@ -2674,62 +2717,62 @@
           [
             "",
             "rules_cc",
-            "rules_cc~0.0.9"
+            "rules_cc~"
           ],
           [
             "",
             "rules_go",
-            "rules_go~0.39.1"
+            "rules_go~"
           ],
           [
             "",
             "rules_graalvm",
-            "rules_graalvm~0.10.3"
+            "rules_graalvm~"
           ],
           [
             "",
             "rules_java",
-            "rules_java~7.4.0"
+            "rules_java~"
           ],
           [
             "",
             "rules_jvm_external",
-            "rules_jvm_external~5.2"
+            "rules_jvm_external~"
           ],
           [
             "",
             "rules_license",
-            "rules_license~0.0.7"
+            "rules_license~"
           ],
           [
             "",
             "rules_pkg",
-            "rules_pkg~0.9.1"
+            "rules_pkg~"
           ],
           [
             "",
             "rules_proto",
-            "rules_proto~5.3.0-21.7"
+            "rules_proto~"
           ],
           [
             "",
             "rules_python",
-            "rules_python~0.26.0"
+            "rules_python~"
           ],
           [
             "",
             "upb",
-            "upb~0.0.0-20220923-a547704"
+            "upb~"
           ],
           [
             "",
             "zlib",
-            "zlib~1.3"
+            "zlib~"
           ],
           [
             "",
             "zstd-jni",
-            "zstd-jni~1.5.2-3.bcr.1"
+            "zstd-jni~"
           ],
           [
             "bazel_tools",
@@ -2741,29 +2784,25 @@
     },
     "//:extensions.bzl%bazel_test_deps": {
       "general": {
-        "bzlTransitiveDigest": "MO3e2koSmZi0NExoX7q3lkNlyquuSaUeNAzVxet7a1c=",
-        "accumulatedFileDigests": {},
+        "bzlTransitiveDigest": "KBarN1/r/5veMYz+cUHOlEzjGUdmUkxNYymHZwCJULg=",
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "local_config_winsdk": {
             "bzlFile": "@@//src/main/res:winsdk_configure.bzl",
             "ruleClassName": "winsdk_configure",
-            "attributes": {
-              "name": "_main~bazel_test_deps~local_config_winsdk"
-            }
+            "attributes": {}
           },
           "local_bazel_source_list": {
             "bzlFile": "@@//src/test/shell/bazel:list_source_repository.bzl",
             "ruleClassName": "list_source_repository",
-            "attributes": {
-              "name": "_main~bazel_test_deps~local_bazel_source_list"
-            }
+            "attributes": {}
           },
           "bazelci_rules": {
             "bzlFile": "@@//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "_main~bazel_test_deps~bazelci_rules",
               "sha256": "eca21884e6f66a88c358e580fd67a6b148d30ab57b1680f62a96c00f9bc6a07e",
               "strip_prefix": "bazelci_rules-1.0.0",
               "url": "https://github.com/bazelbuild/continuous-integration/releases/download/rules-1.0.0/bazelci_rules-1.0.0.tar.gz"
@@ -2774,17 +2813,17 @@
           [
             "",
             "abseil-cpp",
-            "abseil-cpp~20230125.1"
+            "abseil-cpp~"
           ],
           [
             "",
             "apple_support",
-            "apple_support~1.8.1"
+            "apple_support~"
           ],
           [
             "",
             "bazel_skylib",
-            "bazel_skylib~1.5.0"
+            "bazel_skylib~"
           ],
           [
             "",
@@ -2794,27 +2833,27 @@
           [
             "",
             "blake3",
-            "blake3~1.3.3.bcr.1"
+            "blake3~"
           ],
           [
             "",
             "c-ares",
-            "c-ares~1.15.0"
+            "c-ares~"
           ],
           [
             "",
             "com_github_grpc_grpc",
-            "grpc~1.48.1.bcr.1"
+            "grpc~"
           ],
           [
             "",
             "com_google_protobuf",
-            "protobuf~21.7"
+            "protobuf~"
           ],
           [
             "",
             "io_bazel_skydoc",
-            "stardoc~0.5.3"
+            "stardoc~"
           ],
           [
             "",
@@ -2824,62 +2863,62 @@
           [
             "",
             "rules_cc",
-            "rules_cc~0.0.9"
+            "rules_cc~"
           ],
           [
             "",
             "rules_go",
-            "rules_go~0.39.1"
+            "rules_go~"
           ],
           [
             "",
             "rules_graalvm",
-            "rules_graalvm~0.10.3"
+            "rules_graalvm~"
           ],
           [
             "",
             "rules_java",
-            "rules_java~7.4.0"
+            "rules_java~"
           ],
           [
             "",
             "rules_jvm_external",
-            "rules_jvm_external~5.2"
+            "rules_jvm_external~"
           ],
           [
             "",
             "rules_license",
-            "rules_license~0.0.7"
+            "rules_license~"
           ],
           [
             "",
             "rules_pkg",
-            "rules_pkg~0.9.1"
+            "rules_pkg~"
           ],
           [
             "",
             "rules_proto",
-            "rules_proto~5.3.0-21.7"
+            "rules_proto~"
           ],
           [
             "",
             "rules_python",
-            "rules_python~0.26.0"
+            "rules_python~"
           ],
           [
             "",
             "upb",
-            "upb~0.0.0-20220923-a547704"
+            "upb~"
           ],
           [
             "",
             "zlib",
-            "zlib~1.3"
+            "zlib~"
           ],
           [
             "",
             "zstd-jni",
-            "zstd-jni~1.5.2-3.bcr.1"
+            "zstd-jni~"
           ],
           [
             "bazel_tools",
@@ -2892,32 +2931,38 @@
     "//:rbe_extension.bzl%bazel_rbe_deps": {
       "general": {
         "bzlTransitiveDigest": "oNMQ9KtzGcqNHdpe8zMO3lRAVIKWWDmz8n5SMubtIIc=",
-        "accumulatedFileDigests": {},
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "rbe_ubuntu2004_java11": {
             "bzlFile": "@@_main~bazel_test_deps~bazelci_rules//:rbe_repo.bzl",
             "ruleClassName": "rbe_preconfig",
             "attributes": {
-              "name": "_main~bazel_rbe_deps~rbe_ubuntu2004_java11",
               "toolchain": "ubuntu2004-bazel-java11"
             }
           }
         },
-        "recordedRepoMappingEntries": []
+        "recordedRepoMappingEntries": [
+          [
+            "",
+            "bazelci_rules",
+            "_main~bazel_test_deps~bazelci_rules"
+          ]
+        ]
       }
     },
     "//tools/android:android_extensions.bzl%remote_android_tools_extensions": {
       "general": {
         "bzlTransitiveDigest": "S0n86BFe4SJ3lRaZiRA5D46oH52UO2hP1T50t/zldOw=",
-        "accumulatedFileDigests": {},
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "android_tools": {
             "bzlFile": "@@//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "_main~remote_android_tools_extensions~android_tools",
               "sha256": "2b661a761a735b41c41b3a78089f4fc1982626c76ddb944604ae3ff8c545d3c2",
               "url": "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.30.0.tar"
             }
@@ -2926,7 +2971,6 @@
             "bzlFile": "@@//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_jar",
             "attributes": {
-              "name": "_main~remote_android_tools_extensions~android_gmaven_r8",
               "sha256": "57a696749695a09381a87bc2f08c3a8ed06a717a5caa3ef878a3077e0d3af19d",
               "url": "https://maven.google.com/com/android/tools/r8/8.1.56/r8-8.1.56.jar"
             }
@@ -2938,14 +2982,14 @@
     "//tools/test:extensions.bzl%remote_coverage_tools_extension": {
       "general": {
         "bzlTransitiveDigest": "l5mcjH2gWmbmIycx97bzI2stD0Q0M5gpDc0aLOHKIm8=",
-        "accumulatedFileDigests": {},
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "remote_coverage_tools": {
             "bzlFile": "@@//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "_main~remote_coverage_tools_extension~remote_coverage_tools",
               "sha256": "7006375f6756819b7013ca875eab70a541cf7d89142d9c511ed78ea4fefa38af",
               "urls": [
                 "https://mirror.bazel.build/bazel_coverage_output_generator/releases/coverage_output_generator-v2.6.zip"
@@ -2956,54 +3000,49 @@
         "recordedRepoMappingEntries": []
       }
     },
-    "@@apple_support~1.8.1//crosstool:setup.bzl%apple_cc_configure_extension": {
+    "@@apple_support~//crosstool:setup.bzl%apple_cc_configure_extension": {
       "general": {
         "bzlTransitiveDigest": "JFciz9+xRmE31CdyrcEUeZSKFxwiLTQ+PNMg6Bcc6s8=",
-        "accumulatedFileDigests": {},
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "local_config_apple_cc": {
-            "bzlFile": "@@apple_support~1.8.1//crosstool:setup.bzl",
+            "bzlFile": "@@apple_support~//crosstool:setup.bzl",
             "ruleClassName": "_apple_cc_autoconf",
-            "attributes": {
-              "name": "apple_support~1.8.1~apple_cc_configure_extension~local_config_apple_cc"
-            }
+            "attributes": {}
           },
           "local_config_apple_cc_toolchains": {
-            "bzlFile": "@@apple_support~1.8.1//crosstool:setup.bzl",
+            "bzlFile": "@@apple_support~//crosstool:setup.bzl",
             "ruleClassName": "_apple_cc_autoconf_toolchains",
-            "attributes": {
-              "name": "apple_support~1.8.1~apple_cc_configure_extension~local_config_apple_cc_toolchains"
-            }
+            "attributes": {}
           }
         },
         "recordedRepoMappingEntries": [
           [
-            "apple_support~1.8.1",
+            "apple_support~",
             "bazel_tools",
             "bazel_tools"
           ]
         ]
       }
     },
-    "@@bazel_features~1.1.0//private:extensions.bzl%version_extension": {
+    "@@bazel_features~//private:extensions.bzl%version_extension": {
       "general": {
         "bzlTransitiveDigest": "LKmXjK1avT44pRhO3x6Hplu1mU9qrNOaHP+/tJ0VFfE=",
-        "accumulatedFileDigests": {},
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "bazel_features_version": {
-            "bzlFile": "@@bazel_features~1.1.0//private:version_repo.bzl",
+            "bzlFile": "@@bazel_features~//private:version_repo.bzl",
             "ruleClassName": "version_repo",
-            "attributes": {
-              "name": "bazel_features~1.1.0~version_extension~bazel_features_version"
-            }
+            "attributes": {}
           },
           "bazel_features_globals": {
-            "bzlFile": "@@bazel_features~1.1.0//private:globals_repo.bzl",
+            "bzlFile": "@@bazel_features~//private:globals_repo.bzl",
             "ruleClassName": "globals_repo",
             "attributes": {
-              "name": "bazel_features~1.1.0~version_extension~bazel_features_globals",
               "globals": {
                 "RunEnvironmentInfo": "5.3.0",
                 "DefaultInfo": "0.0.1",
@@ -3017,15 +3056,15 @@
     },
     "@@bazel_tools//tools/android:android_extensions.bzl%remote_android_tools_extensions": {
       "general": {
-        "bzlTransitiveDigest": "4x/FXzwoadac6uV9ItZ4eGOyCculGHHrKUhLFNWo3lA=",
-        "accumulatedFileDigests": {},
+        "bzlTransitiveDigest": "S0n86BFe4SJ3lRaZiRA5D46oH52UO2hP1T50t/zldOw=",
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "android_tools": {
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "bazel_tools~remote_android_tools_extensions~android_tools",
               "sha256": "2b661a761a735b41c41b3a78089f4fc1982626c76ddb944604ae3ff8c545d3c2",
               "url": "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.30.0.tar"
             }
@@ -3034,7 +3073,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_jar",
             "attributes": {
-              "name": "bazel_tools~remote_android_tools_extensions~android_gmaven_r8",
               "sha256": "57a696749695a09381a87bc2f08c3a8ed06a717a5caa3ef878a3077e0d3af19d",
               "url": "https://maven.google.com/com/android/tools/r8/8.1.56/r8-8.1.56.jar"
             }
@@ -3045,23 +3083,20 @@
     },
     "@@bazel_tools//tools/cpp:cc_configure.bzl%cc_configure_extension": {
       "general": {
-        "bzlTransitiveDigest": "mcsWHq3xORJexV5/4eCvNOLxFOQKV6eli3fkr+tEaqE=",
-        "accumulatedFileDigests": {},
+        "bzlTransitiveDigest": "PHpT2yqMGms2U4L3E/aZ+WcQalmZWm+ILdP3yiLsDhA=",
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "local_config_cc": {
             "bzlFile": "@@bazel_tools//tools/cpp:cc_configure.bzl",
             "ruleClassName": "cc_autoconf",
-            "attributes": {
-              "name": "bazel_tools~cc_configure_extension~local_config_cc"
-            }
+            "attributes": {}
           },
           "local_config_cc_toolchains": {
             "bzlFile": "@@bazel_tools//tools/cpp:cc_configure.bzl",
             "ruleClassName": "cc_autoconf_toolchains",
-            "attributes": {
-              "name": "bazel_tools~cc_configure_extension~local_config_cc_toolchains"
-            }
+            "attributes": {}
           }
         },
         "recordedRepoMappingEntries": [
@@ -3076,14 +3111,14 @@
     "@@bazel_tools//tools/osx:xcode_configure.bzl%xcode_configure_extension": {
       "general": {
         "bzlTransitiveDigest": "Qh2bWTU6QW6wkrd87qrU4YeY+SG37Nvw3A0PR4Y0L2Y=",
-        "accumulatedFileDigests": {},
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "local_config_xcode": {
             "bzlFile": "@@bazel_tools//tools/osx:xcode_configure.bzl",
             "ruleClassName": "xcode_autoconf",
             "attributes": {
-              "name": "bazel_tools~xcode_configure_extension~local_config_xcode",
               "xcode_locator": "@bazel_tools//tools/osx:xcode_locator.m",
               "remote_xcode": ""
             }
@@ -3095,15 +3130,14 @@
     "@@bazel_tools//tools/sh:sh_configure.bzl%sh_configure_extension": {
       "general": {
         "bzlTransitiveDigest": "hp4NgmNjEg5+xgvzfh6L83bt9/aiiWETuNpwNuF1MSU=",
-        "accumulatedFileDigests": {},
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "local_config_sh": {
             "bzlFile": "@@bazel_tools//tools/sh:sh_configure.bzl",
             "ruleClassName": "sh_config",
-            "attributes": {
-              "name": "bazel_tools~sh_configure_extension~local_config_sh"
-            }
+            "attributes": {}
           }
         },
         "recordedRepoMappingEntries": []
@@ -3111,15 +3145,15 @@
     },
     "@@bazel_tools//tools/test:extensions.bzl%remote_coverage_tools_extension": {
       "general": {
-        "bzlTransitiveDigest": "y48q5zUu2oMiYv7yUyi7rFB0wt14eqiF/RQcWT6vP7I=",
-        "accumulatedFileDigests": {},
+        "bzlTransitiveDigest": "l5mcjH2gWmbmIycx97bzI2stD0Q0M5gpDc0aLOHKIm8=",
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "remote_coverage_tools": {
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "bazel_tools~remote_coverage_tools_extension~remote_coverage_tools",
               "sha256": "7006375f6756819b7013ca875eab70a541cf7d89142d9c511ed78ea4fefa38af",
               "urls": [
                 "https://mirror.bazel.build/bazel_coverage_output_generator/releases/coverage_output_generator-v2.6.zip"
@@ -3130,22 +3164,47 @@
         "recordedRepoMappingEntries": []
       }
     },
-    "@@gazelle~0.30.0//:extensions.bzl%go_deps": {
+    "@@buildozer~//:buildozer_binary.bzl%buildozer_binary": {
       "general": {
-        "bzlTransitiveDigest": "qA0ex33bTMERZ7C8nXKz92cjvx42TwSWN1J1CSDT0K8=",
-        "accumulatedFileDigests": {
-          "@@rules_go~0.39.1//:go.sum": "022d36c9ebcc7b5dee1e9b85b3da9c9f3a529ee6f979946d66e4955b8d54614a",
-          "@@rules_go~0.39.1//:go.mod": "a7143f329c2a3e0b983ce74a96c0c25b0d0c59d236d75f7e1b069aadd988d55e",
-          "@@gazelle~0.30.0//:go.sum": "c9624aa41e5ffd61a8581d57a3c4046e62b46630dddc8b191e65017f34ff12a5",
-          "@@gazelle~0.30.0//:go.mod": "5346019bf0673364b383d56ffbc9fced98b7b4ee921e865dfe905a1ebe82d326"
+        "bzlTransitiveDigest": "EleDU/FQ1+e/RgkW3aIDmdaxZEthvoWQhsqFTxiSgMI=",
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
+        "envVariables": {},
+        "generatedRepoSpecs": {
+          "buildozer_binary": {
+            "bzlFile": "@@buildozer~//private:buildozer_binary.bzl",
+            "ruleClassName": "_buildozer_binary_repo",
+            "attributes": {
+              "sha256": {
+                "darwin-amd64": "d29e347ecd6b5673d72cb1a8de05bf1b06178dd229ff5eb67fad5100c840cc8e",
+                "darwin-arm64": "9b9e71bdbec5e7223871e913b65d12f6d8fa026684daf991f00e52ed36a6978d",
+                "linux-amd64": "8dfd6345da4e9042daa738d7fdf34f699c5dfce4632f7207956fceedd8494119",
+                "linux-arm64": "6559558fded658c8fa7432a9d011f7c4dcbac6b738feae73d2d5c352e5f605fa",
+                "windows-amd64": "e7f05bf847f7c3689dd28926460ce6e1097ae97380ac8e6ae7147b7b706ba19b"
+              },
+              "version": "6.4.0"
+            }
+          }
         },
+        "recordedRepoMappingEntries": []
+      }
+    },
+    "@@gazelle~//:extensions.bzl%go_deps": {
+      "general": {
+        "bzlTransitiveDigest": "V0I2A6HQbPqRuhGhygxjQV47OuSSxVaAXG5m+/637Zw=",
+        "recordedFileInputs": {
+          "@@rules_go~//go.mod": "a7143f329c2a3e0b983ce74a96c0c25b0d0c59d236d75f7e1b069aadd988d55e",
+          "@@gazelle~//go.sum": "c9624aa41e5ffd61a8581d57a3c4046e62b46630dddc8b191e65017f34ff12a5",
+          "@@rules_go~//go.sum": "022d36c9ebcc7b5dee1e9b85b3da9c9f3a529ee6f979946d66e4955b8d54614a",
+          "@@gazelle~//go.mod": "5346019bf0673364b383d56ffbc9fced98b7b4ee921e865dfe905a1ebe82d326"
+        },
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "com_github_fsnotify_fsnotify": {
-            "bzlFile": "@@gazelle~0.30.0//internal:go_repository.bzl",
+            "bzlFile": "@@gazelle~//internal:go_repository.bzl",
             "ruleClassName": "go_repository",
             "attributes": {
-              "name": "gazelle~0.30.0~go_deps~com_github_fsnotify_fsnotify",
               "importpath": "github.com/fsnotify/fsnotify",
               "sum": "h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=",
               "replace": "",
@@ -3154,10 +3213,9 @@
             }
           },
           "org_golang_x_text": {
-            "bzlFile": "@@gazelle~0.30.0//internal:go_repository.bzl",
+            "bzlFile": "@@gazelle~//internal:go_repository.bzl",
             "ruleClassName": "go_repository",
             "attributes": {
-              "name": "gazelle~0.30.0~go_deps~org_golang_x_text",
               "importpath": "golang.org/x/text",
               "sum": "h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=",
               "replace": "",
@@ -3166,10 +3224,9 @@
             }
           },
           "org_golang_google_protobuf": {
-            "bzlFile": "@@gazelle~0.30.0//internal:go_repository.bzl",
+            "bzlFile": "@@gazelle~//internal:go_repository.bzl",
             "ruleClassName": "go_repository",
             "attributes": {
-              "name": "gazelle~0.30.0~go_deps~org_golang_google_protobuf",
               "importpath": "google.golang.org/protobuf",
               "sum": "h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw=",
               "replace": "",
@@ -3178,10 +3235,9 @@
             }
           },
           "com_github_bmatcuk_doublestar_v4": {
-            "bzlFile": "@@gazelle~0.30.0//internal:go_repository.bzl",
+            "bzlFile": "@@gazelle~//internal:go_repository.bzl",
             "ruleClassName": "go_repository",
             "attributes": {
-              "name": "gazelle~0.30.0~go_deps~com_github_bmatcuk_doublestar_v4",
               "importpath": "github.com/bmatcuk/doublestar/v4",
               "sum": "h1:HTuxyug8GyFbRkrffIpzNCSK4luc0TY3wzXvzIZhEXc=",
               "replace": "",
@@ -3190,10 +3246,9 @@
             }
           },
           "com_github_pmezard_go_difflib": {
-            "bzlFile": "@@gazelle~0.30.0//internal:go_repository.bzl",
+            "bzlFile": "@@gazelle~//internal:go_repository.bzl",
             "ruleClassName": "go_repository",
             "attributes": {
-              "name": "gazelle~0.30.0~go_deps~com_github_pmezard_go_difflib",
               "importpath": "github.com/pmezard/go-difflib",
               "sum": "h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=",
               "replace": "",
@@ -3202,10 +3257,9 @@
             }
           },
           "org_golang_x_mod": {
-            "bzlFile": "@@gazelle~0.30.0//internal:go_repository.bzl",
+            "bzlFile": "@@gazelle~//internal:go_repository.bzl",
             "ruleClassName": "go_repository",
             "attributes": {
-              "name": "gazelle~0.30.0~go_deps~org_golang_x_mod",
               "importpath": "golang.org/x/mod",
               "sum": "h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs=",
               "replace": "",
@@ -3214,10 +3268,9 @@
             }
           },
           "org_golang_x_tools": {
-            "bzlFile": "@@gazelle~0.30.0//internal:go_repository.bzl",
+            "bzlFile": "@@gazelle~//internal:go_repository.bzl",
             "ruleClassName": "go_repository",
             "attributes": {
-              "name": "gazelle~0.30.0~go_deps~org_golang_x_tools",
               "importpath": "golang.org/x/tools",
               "sum": "h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4=",
               "replace": "",
@@ -3226,10 +3279,9 @@
             }
           },
           "org_golang_x_net": {
-            "bzlFile": "@@gazelle~0.30.0//internal:go_repository.bzl",
+            "bzlFile": "@@gazelle~//internal:go_repository.bzl",
             "ruleClassName": "go_repository",
             "attributes": {
-              "name": "gazelle~0.30.0~go_deps~org_golang_x_net",
               "importpath": "golang.org/x/net",
               "sum": "h1:4nGaVu0QrbjT/AK2PRLuQfQuh6DJve+pELhqTdAj3x0=",
               "replace": "",
@@ -3238,10 +3290,9 @@
             }
           },
           "com_github_bazelbuild_buildtools": {
-            "bzlFile": "@@gazelle~0.30.0//internal:go_repository.bzl",
+            "bzlFile": "@@gazelle~//internal:go_repository.bzl",
             "ruleClassName": "go_repository",
             "attributes": {
-              "name": "gazelle~0.30.0~go_deps~com_github_bazelbuild_buildtools",
               "importpath": "github.com/bazelbuild/buildtools",
               "sum": "h1:XmPu4mXICgdGnC5dXGjUGbwUD/kUmS0l5Aop3LaevBM=",
               "replace": "",
@@ -3250,10 +3301,9 @@
             }
           },
           "org_golang_google_genproto": {
-            "bzlFile": "@@gazelle~0.30.0//internal:go_repository.bzl",
+            "bzlFile": "@@gazelle~//internal:go_repository.bzl",
             "ruleClassName": "go_repository",
             "attributes": {
-              "name": "gazelle~0.30.0~go_deps~org_golang_google_genproto",
               "importpath": "google.golang.org/genproto",
               "sum": "h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY=",
               "replace": "",
@@ -3262,10 +3312,9 @@
             }
           },
           "com_github_gogo_protobuf": {
-            "bzlFile": "@@gazelle~0.30.0//internal:go_repository.bzl",
+            "bzlFile": "@@gazelle~//internal:go_repository.bzl",
             "ruleClassName": "go_repository",
             "attributes": {
-              "name": "gazelle~0.30.0~go_deps~com_github_gogo_protobuf",
               "importpath": "github.com/gogo/protobuf",
               "sum": "h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=",
               "replace": "",
@@ -3276,10 +3325,9 @@
             }
           },
           "com_github_pelletier_go_toml": {
-            "bzlFile": "@@gazelle~0.30.0//internal:go_repository.bzl",
+            "bzlFile": "@@gazelle~//internal:go_repository.bzl",
             "ruleClassName": "go_repository",
             "attributes": {
-              "name": "gazelle~0.30.0~go_deps~com_github_pelletier_go_toml",
               "importpath": "github.com/pelletier/go-toml",
               "sum": "h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8=",
               "replace": "",
@@ -3288,10 +3336,9 @@
             }
           },
           "com_github_golang_protobuf": {
-            "bzlFile": "@@gazelle~0.30.0//internal:go_repository.bzl",
+            "bzlFile": "@@gazelle~//internal:go_repository.bzl",
             "ruleClassName": "go_repository",
             "attributes": {
-              "name": "gazelle~0.30.0~go_deps~com_github_golang_protobuf",
               "importpath": "github.com/golang/protobuf",
               "sum": "h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=",
               "replace": "",
@@ -3300,10 +3347,9 @@
             }
           },
           "com_github_golang_mock": {
-            "bzlFile": "@@gazelle~0.30.0//internal:go_repository.bzl",
+            "bzlFile": "@@gazelle~//internal:go_repository.bzl",
             "ruleClassName": "go_repository",
             "attributes": {
-              "name": "gazelle~0.30.0~go_deps~com_github_golang_mock",
               "importpath": "github.com/golang/mock",
               "sum": "h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc=",
               "replace": "",
@@ -3312,10 +3358,9 @@
             }
           },
           "org_golang_x_sync": {
-            "bzlFile": "@@gazelle~0.30.0//internal:go_repository.bzl",
+            "bzlFile": "@@gazelle~//internal:go_repository.bzl",
             "ruleClassName": "go_repository",
             "attributes": {
-              "name": "gazelle~0.30.0~go_deps~org_golang_x_sync",
               "importpath": "golang.org/x/sync",
               "sum": "h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=",
               "replace": "",
@@ -3324,10 +3369,9 @@
             }
           },
           "bazel_gazelle_go_repository_config": {
-            "bzlFile": "@@gazelle~0.30.0//internal/bzlmod:go_deps.bzl",
+            "bzlFile": "@@gazelle~//internal/bzlmod:go_deps.bzl",
             "ruleClassName": "_go_repository_config",
             "attributes": {
-              "name": "gazelle~0.30.0~go_deps~bazel_gazelle_go_repository_config",
               "importpaths": {
                 "com_github_gogo_protobuf": "github.com/gogo/protobuf",
                 "com_github_golang_mock": "github.com/golang/mock",
@@ -3352,10 +3396,9 @@
             }
           },
           "org_golang_google_grpc": {
-            "bzlFile": "@@gazelle~0.30.0//internal:go_repository.bzl",
+            "bzlFile": "@@gazelle~//internal:go_repository.bzl",
             "ruleClassName": "go_repository",
             "attributes": {
-              "name": "gazelle~0.30.0~go_deps~org_golang_google_grpc",
               "importpath": "google.golang.org/grpc",
               "sum": "h1:fPVVDxY9w++VjTZsYvXWqEf9Rqar/e+9zYfxKK+W+YU=",
               "replace": "",
@@ -3366,10 +3409,9 @@
             }
           },
           "org_golang_x_sys": {
-            "bzlFile": "@@gazelle~0.30.0//internal:go_repository.bzl",
+            "bzlFile": "@@gazelle~//internal:go_repository.bzl",
             "ruleClassName": "go_repository",
             "attributes": {
-              "name": "gazelle~0.30.0~go_deps~org_golang_x_sys",
               "importpath": "golang.org/x/sys",
               "sum": "h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ=",
               "replace": "",
@@ -3378,10 +3420,9 @@
             }
           },
           "com_github_google_go_cmp": {
-            "bzlFile": "@@gazelle~0.30.0//internal:go_repository.bzl",
+            "bzlFile": "@@gazelle~//internal:go_repository.bzl",
             "ruleClassName": "go_repository",
             "attributes": {
-              "name": "gazelle~0.30.0~go_deps~com_github_google_go_cmp",
               "importpath": "github.com/google/go-cmp",
               "sum": "h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=",
               "replace": "",
@@ -3392,51 +3433,56 @@
         },
         "recordedRepoMappingEntries": [
           [
-            "gazelle~0.30.0",
+            "gazelle~",
             "bazel_tools",
             "bazel_tools"
           ]
         ]
       }
     },
-    "@@gazelle~0.30.0//internal/bzlmod:non_module_deps.bzl%non_module_deps": {
+    "@@gazelle~//internal/bzlmod:non_module_deps.bzl%non_module_deps": {
       "general": {
         "bzlTransitiveDigest": "30wev+wJfzc4s72MCfbP9U8W+3Js2b+Xbo5ofgZbHw8=",
-        "accumulatedFileDigests": {},
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "bazel_gazelle_go_repository_tools": {
-            "bzlFile": "@@gazelle~0.30.0//internal:go_repository_tools.bzl",
+            "bzlFile": "@@gazelle~//internal:go_repository_tools.bzl",
             "ruleClassName": "go_repository_tools",
             "attributes": {
-              "name": "gazelle~0.30.0~non_module_deps~bazel_gazelle_go_repository_tools",
-              "go_cache": "@@gazelle~0.30.0~non_module_deps~bazel_gazelle_go_repository_cache//:go.env"
+              "go_cache": "@@gazelle~~non_module_deps~bazel_gazelle_go_repository_cache//:go.env"
             }
           },
           "bazel_gazelle_go_repository_cache": {
-            "bzlFile": "@@gazelle~0.30.0//internal:go_repository_cache.bzl",
+            "bzlFile": "@@gazelle~//internal:go_repository_cache.bzl",
             "ruleClassName": "go_repository_cache",
             "attributes": {
-              "name": "gazelle~0.30.0~non_module_deps~bazel_gazelle_go_repository_cache",
               "go_sdk_name": "go_default_sdk",
               "go_env": {}
             }
           }
         },
-        "recordedRepoMappingEntries": []
+        "recordedRepoMappingEntries": [
+          [
+            "gazelle~",
+            "bazel_gazelle_go_repository_cache",
+            "gazelle~~non_module_deps~bazel_gazelle_go_repository_cache"
+          ]
+        ]
       }
     },
-    "@@grpc~1.48.1.bcr.1//bazel:grpc_deps.bzl%grpc_repo_deps_ext": {
+    "@@grpc~//bazel:grpc_deps.bzl%grpc_repo_deps_ext": {
       "general": {
-        "bzlTransitiveDigest": "Vi/A+pHz0UslIVgXw0k4nRhXybndFcXR259m5TlMQXA=",
-        "accumulatedFileDigests": {},
+        "bzlTransitiveDigest": "CQymQeM+xKJtqfP8mRUSq0+RY5mOsGzDgE0qRby0QbY=",
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "io_opencensus_cpp": {
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~io_opencensus_cpp",
               "sha256": "90d6fafa8b1a2ea613bf662731d3086e1c2ed286f458a95c81744df2dbae41b1",
               "strip_prefix": "opencensus-cpp-c9a4da319bc669a772928ffc55af4a61be1a1176",
               "urls": [
@@ -3449,8 +3495,7 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~com_github_libuv_libuv",
-              "build_file": "@@grpc~1.48.1.bcr.1//third_party:libuv.BUILD",
+              "build_file": "@@grpc~//third_party:libuv.BUILD",
               "sha256": "5ca4e9091f3231d8ad8801862dc4e851c23af89c69141d27723157776f7291e7",
               "strip_prefix": "libuv-02a9e1be252b623ee032a3137c0b0c94afbe6809",
               "urls": [
@@ -3463,7 +3508,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~com_google_googleapis",
               "sha256": "5bb6b0253ccf64b53d6c7249625a7e3f6c3bc6402abd52d3778bfa48258703a0",
               "strip_prefix": "googleapis-2f9af297c84c55c8b871ba4495e01ade42476c92",
               "urls": [
@@ -3476,7 +3520,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~upb",
               "sha256": "d0fe259d650bf9547e75896a1307bfc7034195e4ae89f5139814d295991ba681",
               "strip_prefix": "upb-bef53686ec702607971bd3ea4d4fefd80c6cc6e8",
               "urls": [
@@ -3489,7 +3532,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~rules_cc",
               "sha256": "35f2fb4ea0b3e61ad64a369de284e4fbbdcdba71836a5555abb5e194cf119509",
               "strip_prefix": "rules_cc-624b5d59dfb45672d4239422fa1e3de1822ee110",
               "urls": [
@@ -3502,7 +3544,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~boringssl",
               "sha256": "534fa658bd845fd974b50b10f444d392dfd0d93768c4a51b61263fd37d851c40",
               "strip_prefix": "boringssl-b9232f9e27e5668bc0414879dcdedb2a59ea75f2",
               "urls": [
@@ -3515,7 +3556,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~bazel_gazelle",
               "sha256": "de69a09dc70417580aabf20a28619bb3ef60d038470c7cf8442fafcf627c21cb",
               "urls": [
                 "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.24.0/bazel-gazelle-v0.24.0.tar.gz",
@@ -3527,7 +3567,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~opencensus_proto",
               "sha256": "b7e13f0b4259e80c3070b583c2f39e53153085a6918718b1c710caf7037572b0",
               "strip_prefix": "opencensus-proto-0.3.0/src",
               "urls": [
@@ -3535,7 +3574,7 @@
                 "https://github.com/census-instrumentation/opencensus-proto/archive/v0.3.0.tar.gz"
               ],
               "patches": [
-                "@@grpc~1.48.1.bcr.1//third_party:opencensus-proto.patch"
+                "@@grpc~//third_party:opencensus-proto.patch"
               ],
               "patch_args": [
                 "-p2"
@@ -3546,7 +3585,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~com_googlesource_code_re2",
               "sha256": "319a58a58d8af295db97dfeecc4e250179c5966beaa2d842a82f0a013b6a239b",
               "strip_prefix": "re2-8e08f47b11b413302749c0d8b17a1c94777495d5",
               "urls": [
@@ -3559,7 +3597,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~bazel_skylib",
               "urls": [
                 "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.0.2/bazel-skylib-1.0.2.tar.gz",
                 "https://github.com/bazelbuild/bazel-skylib/releases/download/1.0.2/bazel-skylib-1.0.2.tar.gz"
@@ -3571,8 +3608,7 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~com_github_cares_cares",
-              "build_file": "@@grpc~1.48.1.bcr.1//third_party:cares/cares.BUILD",
+              "build_file": "@@grpc~//third_party:cares/cares.BUILD",
               "sha256": "ec76c5e79db59762776bece58b69507d095856c37b81fd35bfb0958e74b61d93",
               "strip_prefix": "c-ares-6654436a307a5a686b008c1d4c93b0085da6e6d8",
               "urls": [
@@ -3585,7 +3621,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~build_bazel_apple_support",
               "sha256": "76df040ade90836ff5543888d64616e7ba6c3a7b33b916aa3a4b68f342d1b447",
               "urls": [
                 "https://storage.googleapis.com/grpc-bazel-mirror/github.com/bazelbuild/apple_support/releases/download/0.11.0/apple_support.0.11.0.tar.gz",
@@ -3597,8 +3632,7 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~zlib",
-              "build_file": "@@grpc~1.48.1.bcr.1//third_party:zlib.BUILD",
+              "build_file": "@@grpc~//third_party:zlib.BUILD",
               "sha256": "ef47b0fbe646d69a2fc5ba012cb278de8e8946a8e9649f83a807cc05559f0eff",
               "strip_prefix": "zlib-21767c654d31d2dccdde4330529775c6c5fd5389",
               "urls": [
@@ -3611,7 +3645,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~com_google_googletest",
               "sha256": "c8de6c60e12ad014a28225c5247ee735861d85cf906df617f6a29954ca05f547",
               "strip_prefix": "googletest-0e402173c97aea7a00749e825b194bfede4f2e45",
               "urls": [
@@ -3623,7 +3656,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~envoy_api",
               "sha256": "c5807010b67033330915ca5a20483e30538ae5e689aa14b3631d6284beca4630",
               "strip_prefix": "data-plane-api-9c42588c956220b48eb3099d186487c2f04d32ec",
               "urls": [
@@ -3636,7 +3668,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~build_bazel_rules_apple",
               "sha256": "0052d452af7742c8f3a4e0929763388a66403de363775db7e90adecb2ba4944b",
               "urls": [
                 "https://storage.googleapis.com/grpc-bazel-mirror/github.com/bazelbuild/rules_apple/releases/download/0.31.3/rules_apple.0.31.3.tar.gz",
@@ -3648,7 +3679,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~com_github_cncf_udpa",
               "sha256": "5bc8365613fe2f8ce6cc33959b7667b13b7fe56cb9d16ba740c06e1a7c4242fc",
               "strip_prefix": "xds-cb28da3451f158a947dfc45090fe92b07b243bc1",
               "urls": [
@@ -3661,7 +3691,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~com_github_google_benchmark",
               "sha256": "0b921a3bc39e35f4275c8dcc658af2391c150fb966102341287b0401ff2e6f21",
               "strip_prefix": "benchmark-0baacde3618ca617da95375e0af13ce1baadea47",
               "urls": [
@@ -3674,14 +3703,13 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~com_envoyproxy_protoc_gen_validate",
               "strip_prefix": "protoc-gen-validate-4694024279bdac52b77e22dc87808bd0fd732b69",
               "sha256": "1e490b98005664d149b379a9529a6aa05932b8a11b76b4cd86f3d22d76346f47",
               "urls": [
                 "https://github.com/envoyproxy/protoc-gen-validate/archive/4694024279bdac52b77e22dc87808bd0fd732b69.tar.gz"
               ],
               "patches": [
-                "@@grpc~1.48.1.bcr.1//third_party:protoc-gen-validate.patch"
+                "@@grpc~//third_party:protoc-gen-validate.patch"
               ],
               "patch_args": [
                 "-p1"
@@ -3692,7 +3720,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~com_google_absl",
               "sha256": "4208129b49006089ba1d6710845a45e31c59b0ab6bff9e5788a87f55c5abd602",
               "strip_prefix": "abseil-cpp-20220623.0",
               "urls": [
@@ -3705,7 +3732,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~bazel_toolchains",
               "sha256": "179ec02f809e86abf56356d8898c8bd74069f1bd7c56044050c2cd3d79d0e024",
               "strip_prefix": "bazel-toolchains-4.1.0",
               "urls": [
@@ -3718,7 +3744,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~bazel_compdb",
               "sha256": "bcecfd622c4ef272fd4ba42726a52e140b961c4eac23025f18b346c968a8cfb4",
               "strip_prefix": "bazel-compilation-database-0.4.5",
               "urls": [
@@ -3730,29 +3755,29 @@
         },
         "recordedRepoMappingEntries": [
           [
-            "grpc~1.48.1.bcr.1",
+            "grpc~",
             "bazel_tools",
             "bazel_tools"
           ],
           [
-            "grpc~1.48.1.bcr.1",
+            "grpc~",
             "com_github_grpc_grpc",
-            "grpc~1.48.1.bcr.1"
+            "grpc~"
           ]
         ]
       }
     },
-    "@@grpc~1.48.1.bcr.1//bazel:grpc_extra_deps.bzl%grpc_extra_deps_ext": {
+    "@@grpc~//bazel:grpc_extra_deps.bzl%grpc_extra_deps_ext": {
       "general": {
-        "bzlTransitiveDigest": "a/Diq7iDATaU2rBTMgcQ5R3n2KlPdis6c56UUe28yBU=",
-        "accumulatedFileDigests": {},
+        "bzlTransitiveDigest": "APB5VWiSPsu/YjQruUlTuHP2OspkSapZzpofR9h3kOc=",
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "com_google_googleapis_imports": {
-            "bzlFile": "@@grpc~1.48.1.bcr.1~grpc_repo_deps_ext~com_google_googleapis//:repository_rules.bzl",
+            "bzlFile": "@@grpc~~grpc_repo_deps_ext~com_google_googleapis//:repository_rules.bzl",
             "ruleClassName": "switched_rules",
             "attributes": {
-              "name": "grpc~1.48.1.bcr.1~grpc_extra_deps_ext~com_google_googleapis_imports",
               "rules": {
                 "proto_library_with_info": [
                   "",
@@ -3896,89 +3921,89 @@
         },
         "recordedRepoMappingEntries": [
           [
-            "grpc~1.48.1.bcr.1",
+            "grpc~",
             "com_envoyproxy_protoc_gen_validate",
-            "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~com_envoyproxy_protoc_gen_validate"
+            "grpc~~grpc_repo_deps_ext~com_envoyproxy_protoc_gen_validate"
           ],
           [
-            "grpc~1.48.1.bcr.1",
+            "grpc~",
             "com_google_googleapis",
-            "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~com_google_googleapis"
+            "grpc~~grpc_repo_deps_ext~com_google_googleapis"
           ],
           [
-            "grpc~1.48.1.bcr.1",
+            "grpc~",
             "com_google_protobuf",
-            "protobuf~21.7"
+            "protobuf~"
           ],
           [
-            "grpc~1.48.1.bcr.1",
+            "grpc~",
             "envoy_api",
-            "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~envoy_api"
+            "grpc~~grpc_repo_deps_ext~envoy_api"
           ],
           [
-            "grpc~1.48.1.bcr.1",
+            "grpc~",
             "io_bazel_rules_go",
-            "rules_go~0.39.1"
+            "rules_go~"
           ],
           [
-            "grpc~1.48.1.bcr.1",
+            "grpc~",
             "upb",
-            "upb~0.0.0-20220923-a547704"
+            "upb~"
           ],
           [
-            "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~bazel_gazelle",
+            "grpc~~grpc_repo_deps_ext~bazel_gazelle",
             "bazel_gazelle",
-            "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~bazel_gazelle"
+            "grpc~~grpc_repo_deps_ext~bazel_gazelle"
           ],
           [
-            "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~bazel_gazelle",
+            "grpc~~grpc_repo_deps_ext~bazel_gazelle",
             "bazel_tools",
             "bazel_tools"
           ],
           [
-            "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~com_envoyproxy_protoc_gen_validate",
+            "grpc~~grpc_repo_deps_ext~com_envoyproxy_protoc_gen_validate",
             "bazel_gazelle",
-            "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~bazel_gazelle"
+            "grpc~~grpc_repo_deps_ext~bazel_gazelle"
           ],
           [
-            "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~envoy_api",
+            "grpc~~grpc_repo_deps_ext~envoy_api",
             "bazel_tools",
             "bazel_tools"
           ],
           [
-            "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~envoy_api",
+            "grpc~~grpc_repo_deps_ext~envoy_api",
             "envoy_api",
-            "grpc~1.48.1.bcr.1~grpc_repo_deps_ext~envoy_api"
+            "grpc~~grpc_repo_deps_ext~envoy_api"
           ],
           [
-            "protobuf~21.7",
+            "protobuf~",
             "bazel_tools",
             "bazel_tools"
           ],
           [
-            "rules_go~0.39.1",
+            "rules_go~",
             "bazel_tools",
             "bazel_tools"
           ],
           [
-            "upb~0.0.0-20220923-a547704",
+            "upb~",
             "bazel_tools",
             "bazel_tools"
           ]
         ]
       }
     },
-    "@@rules_go~0.39.1//go:extensions.bzl%go_sdk": {
+    "@@rules_go~//go:extensions.bzl%go_sdk": {
       "general": {
-        "bzlTransitiveDigest": "cvuDQzKTBy1BBsQPA+7jKTCEaEg3uqu2SQX9x2Z1vz4=",
-        "accumulatedFileDigests": {},
+        "bzlTransitiveDigest": "k4MEsADgBfRC+sbMqB3lZL0JpdsCxlwSYO+z9zn9Y80=",
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "go_default_sdk": {
-            "bzlFile": "@@rules_go~0.39.1//go/private:sdk.bzl",
+            "bzlFile": "@@rules_go~//go/private:sdk.bzl",
             "ruleClassName": "go_download_sdk_rule",
             "attributes": {
-              "name": "rules_go~0.39.1~go_sdk~go_default_sdk",
               "goos": "",
               "goarch": "",
               "sdks": {},
@@ -3989,10 +4014,9 @@
             }
           },
           "go_toolchains": {
-            "bzlFile": "@@rules_go~0.39.1//go/private:sdk.bzl",
+            "bzlFile": "@@rules_go~//go/private:sdk.bzl",
             "ruleClassName": "go_multiple_toolchains",
             "attributes": {
-              "name": "rules_go~0.39.1~go_sdk~go_toolchains",
               "prefixes": [
                 "_0000_go_default_sdk_"
               ],
@@ -4016,24 +4040,24 @@
         },
         "recordedRepoMappingEntries": [
           [
-            "rules_go~0.39.1",
+            "rules_go~",
             "bazel_tools",
             "bazel_tools"
           ]
         ]
       }
     },
-    "@@rules_go~0.39.1//go/private:extensions.bzl%non_module_dependencies": {
+    "@@rules_go~//go/private:extensions.bzl%non_module_dependencies": {
       "general": {
-        "bzlTransitiveDigest": "CamLV5C1Q66aY4Gu2ce5shMFpOJV/A+fmw4qzuGHmJk=",
-        "accumulatedFileDigests": {},
+        "bzlTransitiveDigest": "n/KyfNdKeML6sHRHvHLrPCzPU5vSJfn9Z5b0n2xjRbQ=",
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "org_golang_x_xerrors": {
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_go~0.39.1~non_module_dependencies~org_golang_x_xerrors",
               "urls": [
                 "https://mirror.bazel.build/github.com/golang/xerrors/archive/04be3eba64a22a838cdb17b8dca15a52871c08b4.zip",
                 "https://github.com/golang/xerrors/archive/04be3eba64a22a838cdb17b8dca15a52871c08b4.zip"
@@ -4041,7 +4065,7 @@
               "sha256": "ffad2b06ef2e09d040da2ff08077865e99ab95d4d0451737fc8e33706bb01634",
               "strip_prefix": "xerrors-04be3eba64a22a838cdb17b8dca15a52871c08b4",
               "patches": [
-                "@@rules_go~0.39.1//third_party:org_golang_x_xerrors-gazelle.patch"
+                "@@rules_go~//third_party:org_golang_x_xerrors-gazelle.patch"
               ],
               "patch_args": [
                 "-p1"
@@ -4049,17 +4073,14 @@
             }
           },
           "gogo_special_proto": {
-            "bzlFile": "@@rules_go~0.39.1//proto:gogo.bzl",
+            "bzlFile": "@@rules_go~//proto:gogo.bzl",
             "ruleClassName": "gogo_special_proto",
-            "attributes": {
-              "name": "rules_go~0.39.1~non_module_dependencies~gogo_special_proto"
-            }
+            "attributes": {}
           },
           "org_golang_google_protobuf": {
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_go~0.39.1~non_module_dependencies~org_golang_google_protobuf",
               "sha256": "cb1a05581c33b3705ede6c08edf9b9c1dbc579559ba30f532704c324e42bf801",
               "urls": [
                 "https://mirror.bazel.build/github.com/protocolbuffers/protobuf-go/archive/refs/tags/v1.30.0.zip",
@@ -4067,7 +4088,7 @@
               ],
               "strip_prefix": "protobuf-go-1.30.0",
               "patches": [
-                "@@rules_go~0.39.1//third_party:org_golang_google_protobuf-gazelle.patch"
+                "@@rules_go~//third_party:org_golang_google_protobuf-gazelle.patch"
               ],
               "patch_args": [
                 "-p1"
@@ -4078,7 +4099,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_go~0.39.1~non_module_dependencies~com_github_mwitkow_go_proto_validators",
               "urls": [
                 "https://mirror.bazel.build/github.com/mwitkow/go-proto-validators/archive/refs/tags/v0.3.2.zip",
                 "https://github.com/mwitkow/go-proto-validators/archive/refs/tags/v0.3.2.zip"
@@ -4091,7 +4111,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_go~0.39.1~non_module_dependencies~org_golang_x_tools",
               "urls": [
                 "https://mirror.bazel.build/github.com/golang/tools/archive/refs/tags/v0.7.0.zip",
                 "https://github.com/golang/tools/archive/refs/tags/v0.7.0.zip"
@@ -4099,8 +4118,8 @@
               "sha256": "9f20a20f29f4008d797a8be882ef82b69cf8f7f2b96dbdfe3814c57d8280fa4b",
               "strip_prefix": "tools-0.7.0",
               "patches": [
-                "@@rules_go~0.39.1//third_party:org_golang_x_tools-deletegopls.patch",
-                "@@rules_go~0.39.1//third_party:org_golang_x_tools-gazelle.patch"
+                "@@rules_go~//third_party:org_golang_x_tools-deletegopls.patch",
+                "@@rules_go~//third_party:org_golang_x_tools-gazelle.patch"
               ],
               "patch_args": [
                 "-p1"
@@ -4111,7 +4130,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_go~0.39.1~non_module_dependencies~go_googleapis",
               "urls": [
                 "https://mirror.bazel.build/github.com/googleapis/googleapis/archive/83c3605afb5a39952bf0a0809875d41cf2a558ca.zip",
                 "https://github.com/googleapis/googleapis/archive/83c3605afb5a39952bf0a0809875d41cf2a558ca.zip"
@@ -4119,9 +4137,9 @@
               "sha256": "ba694861340e792fd31cb77274eacaf6e4ca8bda97707898f41d8bebfd8a4984",
               "strip_prefix": "googleapis-83c3605afb5a39952bf0a0809875d41cf2a558ca",
               "patches": [
-                "@@rules_go~0.39.1//third_party:go_googleapis-deletebuild.patch",
-                "@@rules_go~0.39.1//third_party:go_googleapis-directives.patch",
-                "@@rules_go~0.39.1//third_party:go_googleapis-gazelle.patch"
+                "@@rules_go~//third_party:go_googleapis-deletebuild.patch",
+                "@@rules_go~//third_party:go_googleapis-directives.patch",
+                "@@rules_go~//third_party:go_googleapis-gazelle.patch"
               ],
               "patch_args": [
                 "-E",
@@ -4133,7 +4151,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_go~0.39.1~non_module_dependencies~org_golang_google_genproto",
               "urls": [
                 "https://mirror.bazel.build/github.com/googleapis/go-genproto/archive/6ac7f18bb9d5eeeb13a9f1ae4f21e4374a1952f8.zip",
                 "https://github.com/googleapis/go-genproto/archive/6ac7f18bb9d5eeeb13a9f1ae4f21e4374a1952f8.zip"
@@ -4141,7 +4158,7 @@
               "sha256": "3470e7a89b24971b20c4bb8900a668df25279e4b741f72bc09418c1f22543215",
               "strip_prefix": "go-genproto-6ac7f18bb9d5eeeb13a9f1ae4f21e4374a1952f8",
               "patches": [
-                "@@rules_go~0.39.1//third_party:org_golang_google_genproto-gazelle.patch"
+                "@@rules_go~//third_party:org_golang_google_genproto-gazelle.patch"
               ],
               "patch_args": [
                 "-p1"
@@ -4152,7 +4169,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_go~0.39.1~non_module_dependencies~bazel_skylib",
               "urls": [
                 "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.4.1/bazel-skylib-1.4.1.tar.gz",
                 "https://github.com/bazelbuild/bazel-skylib/releases/download/1.4.1/bazel-skylib-1.4.1.tar.gz"
@@ -4165,7 +4181,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_go~0.39.1~non_module_dependencies~com_github_gogo_protobuf",
               "urls": [
                 "https://mirror.bazel.build/github.com/gogo/protobuf/archive/refs/tags/v1.3.2.zip",
                 "https://github.com/gogo/protobuf/archive/refs/tags/v1.3.2.zip"
@@ -4173,7 +4188,7 @@
               "sha256": "f89f8241af909ce3226562d135c25b28e656ae173337b3e58ede917aa26e1e3c",
               "strip_prefix": "protobuf-1.3.2",
               "patches": [
-                "@@rules_go~0.39.1//third_party:com_github_gogo_protobuf-gazelle.patch"
+                "@@rules_go~//third_party:com_github_gogo_protobuf-gazelle.patch"
               ],
               "patch_args": [
                 "-p1"
@@ -4184,7 +4199,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_go~0.39.1~non_module_dependencies~com_github_golang_protobuf",
               "urls": [
                 "https://mirror.bazel.build/github.com/golang/protobuf/archive/refs/tags/v1.5.3.zip",
                 "https://github.com/golang/protobuf/archive/refs/tags/v1.5.3.zip"
@@ -4192,7 +4206,7 @@
               "sha256": "2dced4544ae5372281e20f1e48ca76368355a01b31353724718c4d6e3dcbb430",
               "strip_prefix": "protobuf-1.5.3",
               "patches": [
-                "@@rules_go~0.39.1//third_party:com_github_golang_protobuf-gazelle.patch"
+                "@@rules_go~//third_party:com_github_golang_protobuf-gazelle.patch"
               ],
               "patch_args": [
                 "-p1"
@@ -4200,10 +4214,9 @@
             }
           },
           "io_bazel_rules_nogo": {
-            "bzlFile": "@@rules_go~0.39.1//go/private:nogo.bzl",
+            "bzlFile": "@@rules_go~//go/private:nogo.bzl",
             "ruleClassName": "go_register_nogo",
             "attributes": {
-              "name": "rules_go~0.39.1~non_module_dependencies~io_bazel_rules_nogo",
               "nogo": "@io_bazel_rules_go//:default_nogo"
             }
           },
@@ -4211,13 +4224,12 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_go~0.39.1~non_module_dependencies~com_github_golang_mock",
               "urls": [
                 "https://mirror.bazel.build/github.com/golang/mock/archive/refs/tags/v1.7.0-rc.1.zip",
                 "https://github.com/golang/mock/archive/refs/tags/v1.7.0-rc.1.zip"
               ],
               "patches": [
-                "@@rules_go~0.39.1//third_party:com_github_golang_mock-gazelle.patch"
+                "@@rules_go~//third_party:com_github_golang_mock-gazelle.patch"
               ],
               "patch_args": [
                 "-p1"
@@ -4230,7 +4242,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_go~0.39.1~non_module_dependencies~org_golang_x_sys",
               "urls": [
                 "https://mirror.bazel.build/github.com/golang/sys/archive/refs/tags/v0.6.0.zip",
                 "https://github.com/golang/sys/archive/refs/tags/v0.6.0.zip"
@@ -4238,7 +4249,7 @@
               "sha256": "7f2399398b2eb4f1f495cc754d6353566e0ad934ee0eb46505e55162e0def56d",
               "strip_prefix": "sys-0.6.0",
               "patches": [
-                "@@rules_go~0.39.1//third_party:org_golang_x_sys-gazelle.patch"
+                "@@rules_go~//third_party:org_golang_x_sys-gazelle.patch"
               ],
               "patch_args": [
                 "-p1"
@@ -4248,32 +4259,31 @@
         },
         "recordedRepoMappingEntries": [
           [
-            "rules_go~0.39.1",
+            "rules_go~",
             "bazel_tools",
             "bazel_tools"
           ]
         ]
       }
     },
-    "@@rules_graalvm~0.10.3//:extensions.bzl%graalvm": {
+    "@@rules_graalvm~//:extensions.bzl%graalvm": {
       "general": {
         "bzlTransitiveDigest": "RNOMan/EiPbz5i2nh2YxhbeTAOvTd9ReDe7arDK0PeY=",
-        "accumulatedFileDigests": {},
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "graalvm_toolchains": {
-            "bzlFile": "@@rules_graalvm~0.10.3//internal:graalvm_bindist.bzl",
+            "bzlFile": "@@rules_graalvm~//internal:graalvm_bindist.bzl",
             "ruleClassName": "_toolchain_config",
             "attributes": {
-              "name": "rules_graalvm~0.10.3~graalvm~graalvm_toolchains",
-              "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"graalvm_20\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"20\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"toolchain_gvm\",\n    actual = \"gvm\",\n    visibility = [\"//visibility:public\"],\n)\ntoolchain(\n    name = \"gvm\",\n    exec_compatible_with = [\n        \n    ],\n    target_compatible_with = [\n        \n    ],\n    toolchain = \"@graalvm//:gvm\",\n    toolchain_type = \"@rules_graalvm//graalvm/toolchain\",\n    visibility = [\"//visibility:public\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@graalvm//:jdk\",\n    visibility = [\"//visibility:public\"],\n)\n\n"
+              "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"graalvm_20\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"20\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"toolchain_gvm\",\n    actual = \"gvm\",\n    visibility = [\"//visibility:public\"],\n)\ntoolchain(\n    name = \"gvm\",\n    exec_compatible_with = [\n        \n    ],\n    target_compatible_with = [\n        \n    ],\n    toolchain = \"@graalvm//:gvm\",\n    toolchain_type = \"@rules_graalvm//graalvm/toolchain\",\n    visibility = [\"//visibility:public\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@graalvm//:jdk\",\n    visibility = [\"//visibility:public\"],\n)\n\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@graalvm//:jdk\",\n    visibility = [\"//visibility:public\"],\n)\n\n"
             }
           },
           "graalvm": {
-            "bzlFile": "@@rules_graalvm~0.10.3//internal:graalvm_bindist.bzl",
+            "bzlFile": "@@rules_graalvm~//internal:graalvm_bindist.bzl",
             "ruleClassName": "_graalvm_bindist_repository",
             "attributes": {
-              "name": "rules_graalvm~0.10.3~graalvm~graalvm",
               "version": "20.0.2",
               "java_version": "20",
               "distribution": "ce",
@@ -4284,52 +4294,54 @@
             }
           }
         },
-        "recordedRepoMappingEntries": []
+        "recordedRepoMappingEntries": [
+          [
+            "rules_graalvm~",
+            "bazel_skylib",
+            "bazel_skylib~"
+          ]
+        ]
       }
     },
-    "@@rules_java~7.4.0//java:extensions.bzl%toolchains": {
+    "@@rules_java~//java:extensions.bzl%toolchains": {
       "general": {
-        "bzlTransitiveDigest": "aBRZna7UIPTRv5GXYZ2u+AfFtxUOl9IjgmCeWzNSieQ=",
-        "accumulatedFileDigests": {},
+        "bzlTransitiveDigest": "tJHbmWnq7m+9eUBnUdv7jZziQ26FmcGL9C5/hU3Q9UQ=",
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "remotejdk21_linux_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.4.0//toolchains:remote_java_repository.bzl",
+            "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl",
             "ruleClassName": "_toolchain_config",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk21_linux_toolchain_config_repo",
               "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_21\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"21\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk21_linux//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk21_linux//:jdk\",\n)\n"
             }
           },
           "remotejdk17_linux_s390x_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.4.0//toolchains:remote_java_repository.bzl",
+            "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl",
             "ruleClassName": "_toolchain_config",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk17_linux_s390x_toolchain_config_repo",
               "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_17\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"17\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:s390x\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_linux_s390x//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:s390x\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_linux_s390x//:jdk\",\n)\n"
             }
           },
           "remotejdk17_macos_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.4.0//toolchains:remote_java_repository.bzl",
+            "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl",
             "ruleClassName": "_toolchain_config",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk17_macos_toolchain_config_repo",
               "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_17\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"17\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_macos//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_macos//:jdk\",\n)\n"
             }
           },
           "remotejdk21_macos_aarch64_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.4.0//toolchains:remote_java_repository.bzl",
+            "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl",
             "ruleClassName": "_toolchain_config",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk21_macos_aarch64_toolchain_config_repo",
               "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_21\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"21\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk21_macos_aarch64//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk21_macos_aarch64//:jdk\",\n)\n"
             }
           },
           "remotejdk17_linux_aarch64_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.4.0//toolchains:remote_java_repository.bzl",
+            "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl",
             "ruleClassName": "_toolchain_config",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk17_linux_aarch64_toolchain_config_repo",
               "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_17\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"17\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_linux_aarch64//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_linux_aarch64//:jdk\",\n)\n"
             }
           },
@@ -4337,7 +4349,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk21_macos_aarch64",
               "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 21,\n)\n",
               "sha256": "e8260516de8b60661422a725f1df2c36ef888f6fb35393566b00e7325db3d04e",
               "strip_prefix": "zulu21.32.17-ca-jdk21.0.2-macosx_aarch64",
@@ -4348,10 +4359,9 @@
             }
           },
           "remotejdk17_linux_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.4.0//toolchains:remote_java_repository.bzl",
+            "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl",
             "ruleClassName": "_toolchain_config",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk17_linux_toolchain_config_repo",
               "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_17\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"17\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_linux//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_linux//:jdk\",\n)\n"
             }
           },
@@ -4359,7 +4369,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk17_macos_aarch64",
               "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 17,\n)\n",
               "sha256": "314b04568ec0ae9b36ba03c9cbd42adc9e1265f74678923b19297d66eb84dcca",
               "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-macosx_aarch64",
@@ -4373,7 +4382,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remote_java_tools_windows",
               "sha256": "fe2f88169696d6c6fc6e90ba61bb46be7d0ae3693cbafdf336041bf56679e8d1",
               "urls": [
                 "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.4/java_tools_windows-v13.4.zip",
@@ -4385,7 +4393,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk11_win",
               "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 11,\n)\n",
               "sha256": "43408193ce2fa0862819495b5ae8541085b95660153f2adcf91a52d3a1710e83",
               "strip_prefix": "zulu11.66.15-ca-jdk11.0.20-win_x64",
@@ -4396,10 +4403,9 @@
             }
           },
           "remotejdk11_win_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.4.0//toolchains:remote_java_repository.bzl",
+            "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl",
             "ruleClassName": "_toolchain_config",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk11_win_toolchain_config_repo",
               "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_11\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"11\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_win//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_win//:jdk\",\n)\n"
             }
           },
@@ -4407,7 +4413,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk11_linux_aarch64",
               "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 11,\n)\n",
               "sha256": "54174439f2b3fddd11f1048c397fe7bb45d4c9d66d452d6889b013d04d21c4de",
               "strip_prefix": "zulu11.66.15-ca-jdk11.0.20-linux_aarch64",
@@ -4421,7 +4426,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk17_linux",
               "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 17,\n)\n",
               "sha256": "b9482f2304a1a68a614dfacddcf29569a72f0fac32e6c74f83dc1b9a157b8340",
               "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-linux_x64",
@@ -4432,18 +4436,16 @@
             }
           },
           "remotejdk11_linux_s390x_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.4.0//toolchains:remote_java_repository.bzl",
+            "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl",
             "ruleClassName": "_toolchain_config",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk11_linux_s390x_toolchain_config_repo",
               "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_11\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"11\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:s390x\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_linux_s390x//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:s390x\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_linux_s390x//:jdk\",\n)\n"
             }
           },
           "remotejdk11_linux_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.4.0//toolchains:remote_java_repository.bzl",
+            "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl",
             "ruleClassName": "_toolchain_config",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk11_linux_toolchain_config_repo",
               "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_11\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"11\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_linux//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_linux//:jdk\",\n)\n"
             }
           },
@@ -4451,7 +4453,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk11_macos",
               "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 11,\n)\n",
               "sha256": "bcaab11cfe586fae7583c6d9d311c64384354fb2638eb9a012eca4c3f1a1d9fd",
               "strip_prefix": "zulu11.66.15-ca-jdk11.0.20-macosx_x64",
@@ -4465,7 +4466,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk11_win_arm64",
               "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 11,\n)\n",
               "sha256": "b8a28e6e767d90acf793ea6f5bed0bb595ba0ba5ebdf8b99f395266161e53ec2",
               "strip_prefix": "jdk-11.0.13+8",
@@ -4478,7 +4478,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk17_macos",
               "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 17,\n)\n",
               "sha256": "640453e8afe8ffe0fb4dceb4535fb50db9c283c64665eebb0ba68b19e65f4b1f",
               "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-macosx_x64",
@@ -4492,7 +4491,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk21_macos",
               "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 21,\n)\n",
               "sha256": "3ad8fe288eb57d975c2786ae453a036aa46e47ab2ac3d81538ebae2a54d3c025",
               "strip_prefix": "zulu21.32.17-ca-jdk21.0.2-macosx_x64",
@@ -4503,18 +4501,16 @@
             }
           },
           "remotejdk21_macos_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.4.0//toolchains:remote_java_repository.bzl",
+            "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl",
             "ruleClassName": "_toolchain_config",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk21_macos_toolchain_config_repo",
               "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_21\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"21\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk21_macos//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk21_macos//:jdk\",\n)\n"
             }
           },
           "remotejdk17_macos_aarch64_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.4.0//toolchains:remote_java_repository.bzl",
+            "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl",
             "ruleClassName": "_toolchain_config",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk17_macos_aarch64_toolchain_config_repo",
               "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_17\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"17\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_macos_aarch64//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_macos_aarch64//:jdk\",\n)\n"
             }
           },
@@ -4522,7 +4518,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk17_win",
               "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 17,\n)\n",
               "sha256": "192f2afca57701de6ec496234f7e45d971bf623ff66b8ee4a5c81582054e5637",
               "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-win_x64",
@@ -4533,18 +4528,16 @@
             }
           },
           "remotejdk11_macos_aarch64_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.4.0//toolchains:remote_java_repository.bzl",
+            "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl",
             "ruleClassName": "_toolchain_config",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk11_macos_aarch64_toolchain_config_repo",
               "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_11\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"11\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_macos_aarch64//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_macos_aarch64//:jdk\",\n)\n"
             }
           },
           "remotejdk11_linux_ppc64le_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.4.0//toolchains:remote_java_repository.bzl",
+            "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl",
             "ruleClassName": "_toolchain_config",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk11_linux_ppc64le_toolchain_config_repo",
               "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_11\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"11\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:ppc\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_linux_ppc64le//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:ppc\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_linux_ppc64le//:jdk\",\n)\n"
             }
           },
@@ -4552,7 +4545,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk21_linux",
               "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 21,\n)\n",
               "sha256": "5ad730fbee6bb49bfff10bf39e84392e728d89103d3474a7e5def0fd134b300a",
               "strip_prefix": "zulu21.32.17-ca-jdk21.0.2-linux_x64",
@@ -4566,7 +4558,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remote_java_tools_linux",
               "sha256": "ba10f09a138cf185d04cbc807d67a3da42ab13d618c5d1ce20d776e199c33a39",
               "urls": [
                 "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.4/java_tools_linux-v13.4.zip",
@@ -4578,7 +4569,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk21_win",
               "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 21,\n)\n",
               "sha256": "f7cc15ca17295e69c907402dfe8db240db446e75d3b150da7bf67243cded93de",
               "strip_prefix": "zulu21.32.17-ca-jdk21.0.2-win_x64",
@@ -4592,7 +4582,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk21_linux_aarch64",
               "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 21,\n)\n",
               "sha256": "ce7df1af5d44a9f455617c4b8891443fbe3e4b269c777d8b82ed66f77167cfe0",
               "strip_prefix": "zulu21.32.17-ca-jdk21.0.2-linux_aarch64",
@@ -4603,10 +4592,9 @@
             }
           },
           "remotejdk11_linux_aarch64_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.4.0//toolchains:remote_java_repository.bzl",
+            "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl",
             "ruleClassName": "_toolchain_config",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk11_linux_aarch64_toolchain_config_repo",
               "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_11\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"11\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_linux_aarch64//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_linux_aarch64//:jdk\",\n)\n"
             }
           },
@@ -4614,7 +4602,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk11_linux_s390x",
               "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 11,\n)\n",
               "sha256": "a58fc0361966af0a5d5a31a2d8a208e3c9bb0f54f345596fd80b99ea9a39788b",
               "strip_prefix": "jdk-11.0.15+10",
@@ -4628,7 +4615,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk17_linux_aarch64",
               "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 17,\n)\n",
               "sha256": "6531cef61e416d5a7b691555c8cf2bdff689201b8a001ff45ab6740062b44313",
               "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-linux_aarch64",
@@ -4639,10 +4625,9 @@
             }
           },
           "remotejdk17_win_arm64_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.4.0//toolchains:remote_java_repository.bzl",
+            "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl",
             "ruleClassName": "_toolchain_config",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk17_win_arm64_toolchain_config_repo",
               "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_17\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"17\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:arm64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_win_arm64//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:arm64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_win_arm64//:jdk\",\n)\n"
             }
           },
@@ -4650,7 +4635,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk11_linux",
               "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 11,\n)\n",
               "sha256": "a34b404f87a08a61148b38e1416d837189e1df7a040d949e743633daf4695a3c",
               "strip_prefix": "zulu11.66.15-ca-jdk11.0.20-linux_x64",
@@ -4661,18 +4645,16 @@
             }
           },
           "remotejdk11_macos_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.4.0//toolchains:remote_java_repository.bzl",
+            "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl",
             "ruleClassName": "_toolchain_config",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk11_macos_toolchain_config_repo",
               "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_11\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"11\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_macos//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_macos//:jdk\",\n)\n"
             }
           },
           "remotejdk17_linux_ppc64le_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.4.0//toolchains:remote_java_repository.bzl",
+            "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl",
             "ruleClassName": "_toolchain_config",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk17_linux_ppc64le_toolchain_config_repo",
               "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_17\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"17\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:ppc\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_linux_ppc64le//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:ppc\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_linux_ppc64le//:jdk\",\n)\n"
             }
           },
@@ -4680,7 +4662,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk17_win_arm64",
               "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 17,\n)\n",
               "sha256": "6802c99eae0d788e21f52d03cab2e2b3bf42bc334ca03cbf19f71eb70ee19f85",
               "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-win_aarch64",
@@ -4694,7 +4675,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remote_java_tools_darwin_arm64",
               "sha256": "076a7e198ad077f8c7d997986ef5102427fae6bbfce7a7852d2e080ed8767528",
               "urls": [
                 "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.4/java_tools_darwin_arm64-v13.4.zip",
@@ -4706,7 +4686,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk17_linux_ppc64le",
               "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 17,\n)\n",
               "sha256": "00a4c07603d0218cd678461b5b3b7e25b3253102da4022d31fc35907f21a2efd",
               "strip_prefix": "jdk-17.0.8.1+1",
@@ -4717,26 +4696,23 @@
             }
           },
           "remotejdk21_linux_aarch64_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.4.0//toolchains:remote_java_repository.bzl",
+            "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl",
             "ruleClassName": "_toolchain_config",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk21_linux_aarch64_toolchain_config_repo",
               "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_21\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"21\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk21_linux_aarch64//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk21_linux_aarch64//:jdk\",\n)\n"
             }
           },
           "remotejdk11_win_arm64_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.4.0//toolchains:remote_java_repository.bzl",
+            "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl",
             "ruleClassName": "_toolchain_config",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk11_win_arm64_toolchain_config_repo",
               "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_11\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"11\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:arm64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_win_arm64//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:arm64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_win_arm64//:jdk\",\n)\n"
             }
           },
           "local_jdk": {
-            "bzlFile": "@@rules_java~7.4.0//toolchains:local_java_repository.bzl",
+            "bzlFile": "@@rules_java~//toolchains:local_java_repository.bzl",
             "ruleClassName": "_local_java_repository_rule",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~local_jdk",
               "java_home": "",
               "version": "",
               "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = {RUNTIME_VERSION},\n)\n"
@@ -4746,7 +4722,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remote_java_tools_darwin_x86_64",
               "sha256": "4523aec4d09c587091a2dae6f5c9bc6922c220f3b6030e5aba9c8f015913cc65",
               "urls": [
                 "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.4/java_tools_darwin_x86_64-v13.4.zip",
@@ -4758,7 +4733,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remote_java_tools",
               "sha256": "e025fd260ac39b47c111f5212d64ec0d00d85dec16e49368aae82fc626a940cf",
               "urls": [
                 "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.4/java_tools-v13.4.zip",
@@ -4770,7 +4744,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk17_linux_s390x",
               "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 17,\n)\n",
               "sha256": "ffacba69c6843d7ca70d572489d6cc7ab7ae52c60f0852cedf4cf0d248b6fc37",
               "strip_prefix": "jdk-17.0.8.1+1",
@@ -4781,10 +4754,9 @@
             }
           },
           "remotejdk17_win_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.4.0//toolchains:remote_java_repository.bzl",
+            "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl",
             "ruleClassName": "_toolchain_config",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk17_win_toolchain_config_repo",
               "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_17\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"17\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_win//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_win//:jdk\",\n)\n"
             }
           },
@@ -4792,7 +4764,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk11_linux_ppc64le",
               "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 11,\n)\n",
               "sha256": "a8fba686f6eb8ae1d1a9566821dbd5a85a1108b96ad857fdbac5c1e4649fc56f",
               "strip_prefix": "jdk-11.0.15+10",
@@ -4806,7 +4777,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk11_macos_aarch64",
               "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 11,\n)\n",
               "sha256": "7632bc29f8a4b7d492b93f3bc75a7b61630894db85d136456035ab2a24d38885",
               "strip_prefix": "zulu11.66.15-ca-jdk11.0.20-macosx_aarch64",
@@ -4817,43 +4787,42 @@
             }
           },
           "remotejdk21_win_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.4.0//toolchains:remote_java_repository.bzl",
+            "bzlFile": "@@rules_java~//toolchains:remote_java_repository.bzl",
             "ruleClassName": "_toolchain_config",
             "attributes": {
-              "name": "rules_java~7.4.0~toolchains~remotejdk21_win_toolchain_config_repo",
               "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_21\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"21\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk21_win//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk21_win//:jdk\",\n)\n"
             }
           }
         },
         "recordedRepoMappingEntries": [
           [
-            "rules_java~7.4.0",
+            "rules_java~",
             "bazel_tools",
             "bazel_tools"
           ],
           [
-            "rules_java~7.4.0",
+            "rules_java~",
             "remote_java_tools",
-            "rules_java~7.4.0~toolchains~remote_java_tools"
+            "rules_java~~toolchains~remote_java_tools"
           ]
         ]
       }
     },
-    "@@rules_jvm_external~5.2//:extensions.bzl%maven": {
+    "@@rules_jvm_external~//:extensions.bzl%maven": {
       "general": {
-        "bzlTransitiveDigest": "TILQV9AUWIcMmCzpK8EI/A8Y1Nz/OC6X3NPuJDA23kg=",
-        "accumulatedFileDigests": {
-          "@@//:maven_install.json": "8330632656f46859ec2600c18fed75624e2a8f46b81c12db34c8afeba527e5be",
-          "@@rules_jvm_external~5.2//:rules_jvm_external_deps_install.json": "3ab1f67b0de4815df110bc72ccd6c77882b3b21d3d1e0a84445847b6ce3235a3",
-          "@@//src/tools/android:maven_android_install.json": "09bff3e33d291336046f7c9201630fb5e014f0e60b78b6f09b84e4f5f73ed04f"
+        "bzlTransitiveDigest": "B6t/mRhE/mRDl5qa+DdAZxxx+S+k0GCqCtP1EHDa3sI=",
+        "recordedFileInputs": {
+          "@@//src/tools/android/maven_android_install.json": "09bff3e33d291336046f7c9201630fb5e014f0e60b78b6f09b84e4f5f73ed04f",
+          "@@rules_jvm_external~//rules_jvm_external_deps_install.json": "3ab1f67b0de4815df110bc72ccd6c77882b3b21d3d1e0a84445847b6ce3235a3",
+          "@@//maven_install.json": "8330632656f46859ec2600c18fed75624e2a8f46b81c12db34c8afeba527e5be"
         },
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "com_google_api_gax_1_60_0": {
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_api_gax_1_60_0",
               "sha256": "02f37d4ff1a7b8d71dff8064cf9568aa4f4b61bcc4485085d16130f32afa5a79",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/api/gax/1.60.0/gax-1.60.0.jar",
@@ -4866,7 +4835,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_http_client_google_http_client_appengine_1_38_0",
               "sha256": "f97b495fd97ac3a3d59099eb2b55025f4948230da15a076f189b9cff37c6b4d2",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/http-client/google-http-client-appengine/1.38.0/google-http-client-appengine-1.38.0.jar",
@@ -4879,7 +4847,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_ryanharter_auto_value_auto_value_gson_factory_1_3_1",
               "sha256": "5a76c3d401c984999d59868f08df05a15613d1428f7764fed80b722e2a277f6c",
               "urls": [
                 "https://repo1.maven.org/maven2/com/ryanharter/auto/value/auto-value-gson-factory/1.3.1/auto-value-gson-factory-1.3.1.jar"
@@ -4891,7 +4858,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_auth_google_auth_library_oauth2_http_0_22_0",
               "sha256": "1722d895c42dc42ea1d1f392ddbec1fbb28f7a979022c3a6c29acc39cc777ad1",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/auth/google-auth-library-oauth2-http/0.22.0/google-auth-library-oauth2-http-0.22.0.jar",
@@ -4904,7 +4870,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_grpc_grpc_protobuf_1_48_1",
               "sha256": "6ab68b0a3bb3834af44208df058be4631425b56ef95f9b9412aa21df3311e8d3",
               "urls": [
                 "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf/1.48.1/grpc-protobuf-1.48.1.jar"
@@ -4916,7 +4881,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_jimfs_jimfs_1_1",
               "sha256": "c4828e28d7c0a930af9387510b3bada7daa5c04d7c25a75c7b8b081f1c257ddd",
               "urls": [
                 "https://dl.google.com/android/maven2/com/google/jimfs/jimfs/1.1/jimfs-1.1.jar",
@@ -4929,7 +4893,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_googlecode_json_simple_json_simple_1_1",
               "sha256": "2d9484f4c649f708f47f9a479465fc729770ee65617dca3011836602264f6439",
               "urls": [
                 "https://dl.google.com/android/maven2/com/googlecode/json-simple/json-simple/1.1/json-simple-1.1.jar",
@@ -4942,7 +4905,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_github_kevinstern_software_and_algorithms_1_0",
               "sha256": "61ab82439cef37343b14f53154c461619375373a56b9338e895709fb54e0864c",
               "urls": [
                 "https://repo1.maven.org/maven2/com/github/kevinstern/software-and-algorithms/1.0/software-and-algorithms-1.0.jar"
@@ -4954,7 +4916,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_jimfs_jimfs_1_2",
               "sha256": "de16d5c8489729a8512f1a02fbd81f58f89249b72066987da4cc5c87ecb9f72d",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/jimfs/jimfs/1.2/jimfs-1.2.jar"
@@ -4966,7 +4927,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_reactivestreams_reactive_streams_1_0_3",
               "sha256": "1dee0481072d19c929b623e155e14d2f6085dc011529a0a0dbefc84cf571d865",
               "urls": [
                 "https://repo1.maven.org/maven2/org/reactivestreams/reactive-streams/1.0.3/reactive-streams-1.0.3.jar"
@@ -4978,7 +4938,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_android_tools_annotations_30_1_3",
               "sha256": "630ab4c6f211fa1c0f5c884152cb6311360f1b796442196c287a658645a99645",
               "urls": [
                 "https://dl.google.com/android/maven2/com/android/tools/annotations/30.1.3/annotations-30.1.3.jar",
@@ -4991,7 +4950,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_transport_4_1_72_Final",
               "sha256": "c5fb68e9a65b6e8a516adfcb9fa323479ee7b4d9449d8a529d2ecab3d3711d5a",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-transport/4.1.72.Final/netty-transport-4.1.72.Final.jar",
@@ -5004,7 +4962,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_ow2_asm_asm_util_9_1",
               "sha256": "380e2ecd16f7cc0f1a76ba9ba049179b5760a57b282a87a4c653caeff2cd5bd6",
               "urls": [
                 "https://dl.google.com/android/maven2/org/ow2/asm/asm-util/9.1/asm-util-9.1.jar",
@@ -5017,7 +4974,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_ow2_asm_asm_util_9_2",
               "sha256": "ff5b3cd331ae8a9a804768280da98f50f424fef23dd3c788bb320e08c94ee598",
               "urls": [
                 "https://repo1.maven.org/maven2/org/ow2/asm/asm-util/9.2/asm-util-9.2.jar"
@@ -5029,7 +4985,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_opencensus_opencensus_api_0_24_0",
               "sha256": "f561b1cc2673844288e596ddf5bb6596868a8472fd2cb8993953fc5c034b2352",
               "urls": [
                 "https://repo1.maven.org/maven2/io/opencensus/opencensus-api/0.24.0/opencensus-api-0.24.0.jar",
@@ -5042,7 +4997,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~javax_activation_javax_activation_api_1_2_0",
               "sha256": "43fdef0b5b6ceb31b0424b208b930c74ab58fac2ceeb7b3f6fd3aeb8b5ca4393",
               "urls": [
                 "https://repo1.maven.org/maven2/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar"
@@ -5054,7 +5008,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~it_unimi_dsi_fastutil_8_4_0",
               "sha256": "2ad2824a4a0a0eb836b52ee2fc84ba2134f44bce7bfa54015ae3f31c710a3071",
               "urls": [
                 "https://dl.google.com/android/maven2/it/unimi/dsi/fastutil/8.4.0/fastutil-8.4.0.jar",
@@ -5067,7 +5020,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_android_tools_build_manifest_merger_30_1_3",
               "sha256": "fb04445bd588ccd27dacd5e139abed42246f55e6785eebf66659857233207fac",
               "urls": [
                 "https://dl.google.com/android/maven2/com/android/tools/build/manifest-merger/30.1.3/manifest-merger-30.1.3.jar",
@@ -5080,7 +5032,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_glassfish_jaxb_jaxb_runtime_2_3_2",
               "sha256": "e6e0a1e89fb6ff786279e6a0082d5cef52dc2ebe67053d041800737652b4fd1b",
               "urls": [
                 "https://dl.google.com/android/maven2/org/glassfish/jaxb/jaxb-runtime/2.3.2/jaxb-runtime-2.3.2.jar",
@@ -5093,7 +5044,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~software_amazon_awssdk_netty_nio_client_2_17_183",
               "sha256": "a6d356f364c56d7b90006b0b7e503b8630010993a5587ce42e74b10b8dca2238",
               "urls": [
                 "https://repo1.maven.org/maven2/software/amazon/awssdk/netty-nio-client/2.17.183/netty-nio-client-2.17.183.jar",
@@ -5106,7 +5056,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_guava_guava_31_1_jre",
               "sha256": "a42edc9cab792e39fe39bb94f3fca655ed157ff87a8af78e1d6ba5b07c4a00ab",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/guava/guava/31.1-jre/guava-31.1-jre.jar",
@@ -5119,7 +5068,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_transport_native_unix_common_4_1_72_Final",
               "sha256": "6f8f1cc29b5a234eeee9439a63eb3f03a5994aa540ff555cb0b2c88cefaf6877",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.72.Final/netty-transport-native-unix-common-4.1.72.Final.jar",
@@ -5132,7 +5080,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_grpc_grpc_context_1_48_1",
               "sha256": "2fb9007e12f768e9c968f9db292be4ea9cba2ef40fb8d179f3f8746ebdc73c1b",
               "urls": [
                 "https://repo1.maven.org/maven2/io/grpc/grpc-context/1.48.1/grpc-context-1.48.1.jar"
@@ -5144,7 +5091,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_opencensus_opencensus_contrib_http_util_0_24_0",
               "sha256": "7155273bbb1ed3d477ea33cf19d7bbc0b285ff395f43b29ae576722cf247000f",
               "urls": [
                 "https://repo1.maven.org/maven2/io/opencensus/opencensus-contrib-http-util/0.24.0/opencensus-contrib-http-util-0.24.0.jar",
@@ -5157,7 +5103,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_codec_4_1_93_Final",
               "sha256": "990c378168dc6364c6ff569701f4f2f122fffe8998b3e189eba4c4d868ed1084",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-codec/4.1.93.Final/netty-codec-4.1.93.Final.jar"
@@ -5169,7 +5114,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_errorprone_error_prone_core_2_22_0",
               "sha256": "32a3df226a9a47f48dd895a9a89678d50ac404282c33400781c38757e8143f2c",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/errorprone/error_prone_core/2.22.0/error_prone_core-2.22.0.jar"
@@ -5181,7 +5125,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_apache_httpcomponents_httpcore_4_4_10",
               "sha256": "78ba1096561957db1b55200a159b648876430342d15d461277e62360da19f6fd",
               "urls": [
                 "https://dl.google.com/android/maven2/org/apache/httpcomponents/httpcore/4.4.10/httpcore-4.4.10.jar",
@@ -5194,7 +5137,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_android_tools_build_builder_model_7_1_3",
               "sha256": "232604983a99b8372eb1a93e5183d48fc8fc69239e5e6229170be0e3320df430",
               "urls": [
                 "https://dl.google.com/android/maven2/com/android/tools/build/builder-model/7.1.3/builder-model-7.1.3.jar",
@@ -5207,7 +5149,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_android_zipflinger_7_1_3",
               "sha256": "c6ed9458f3a85c847f168a7e3719bbd1e7484b97ec00096122ac8a9c4141665f",
               "urls": [
                 "https://dl.google.com/android/maven2/com/android/zipflinger/7.1.3/zipflinger-7.1.3.jar",
@@ -5220,7 +5161,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_apache_httpcomponents_httpcore_4_4_13",
               "sha256": "e06e89d40943245fcfa39ec537cdbfce3762aecde8f9c597780d2b00c2b43424",
               "urls": [
                 "https://repo1.maven.org/maven2/org/apache/httpcomponents/httpcore/4.4.13/httpcore-4.4.13.jar",
@@ -5233,7 +5173,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_turbine_turbine_0_4_0",
               "sha256": "1947490c23263ae1c0a95acceb7cb419724f236d14cfbbe5a558101e79842b28",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/turbine/turbine/0.4.0/turbine-0.4.0.jar"
@@ -5245,7 +5184,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_handler_proxy_4_1_93_Final",
               "sha256": "2ac5f7fbefa0b73ef783889069344d5515505a14b2303be693c5002c486df2b4",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.93.Final/netty-handler-proxy-4.1.93.Final.jar"
@@ -5257,7 +5195,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_common_4_1_72_Final",
               "sha256": "8adb4c291260ceb2859a68c49f0adeed36bf49587608e2b81ecff6aaf06025e9",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-common/4.1.72.Final/netty-common-4.1.72.Final.jar",
@@ -5270,7 +5207,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_android_tools_build_builder_7_1_3",
               "sha256": "4b33ed3941563ffc67f8aeedc480aafd958ec6cd1fe661f0b2b5b0d9c1423649",
               "urls": [
                 "https://dl.google.com/android/maven2/com/android/tools/build/builder/7.1.3/builder-7.1.3.jar",
@@ -5283,7 +5219,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_sun_istack_istack_commons_runtime_3_0_8",
               "sha256": "4ffabb06be454a05e4398e20c77fa2b6308d4b88dfbef7ca30a76b5b7d5505ef",
               "urls": [
                 "https://dl.google.com/android/maven2/com/sun/istack/istack-commons-runtime/3.0.8/istack-commons-runtime-3.0.8.jar",
@@ -5296,7 +5231,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_protobuf_protobuf_java_3_10_0",
               "sha256": "161d7d61a8cb3970891c299578702fd079646e032329d6c2cabf998d191437c9",
               "urls": [
                 "https://dl.google.com/android/maven2/com/google/protobuf/protobuf-java/3.10.0/protobuf-java-3.10.0.jar",
@@ -5309,7 +5243,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~software_amazon_awssdk_utils_2_17_183",
               "sha256": "7bd849bb5aa71bfdf6b849643736ecab3a7b3f204795804eefe5754104231ec6",
               "urls": [
                 "https://repo1.maven.org/maven2/software/amazon/awssdk/utils/2.17.183/utils-2.17.183.jar",
@@ -5322,7 +5255,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_truth_extensions_truth_proto_extension_1_1_3",
               "sha256": "821993e4794e7034ae4a7b68105ef83f1913f0de6112f2fe4b5a7130f6a2bf49",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/truth/extensions/truth-proto-extension/1.1.3/truth-proto-extension-1.1.3.jar"
@@ -5334,7 +5266,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_errorprone_error_prone_type_annotations_2_22_0",
               "sha256": "6618b1d28df562622b77187b5c6dfc9c4c97851af73bd64dc0300efe9a439b20",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/errorprone/error_prone_type_annotations/2.22.0/error_prone_type_annotations-2.22.0.jar"
@@ -5346,7 +5277,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_transport_native_kqueue_jar_osx_aarch_64_4_1_93_Final",
               "sha256": "6e9f04b5a16ba95b7371a735d60851602a3f3c549981edb74eeaf90e1b8fecce",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.93.Final/netty-transport-native-kqueue-4.1.93.Final-osx-aarch_64.jar"
@@ -5355,10 +5285,9 @@
             }
           },
           "unpinned_maven": {
-            "bzlFile": "@@rules_jvm_external~5.2//:coursier.bzl",
+            "bzlFile": "@@rules_jvm_external~//:coursier.bzl",
             "ruleClassName": "coursier_fetch",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~unpinned_maven",
               "repositories": [
                 "{ \"repo_url\": \"https://repo1.maven.org/maven2\" }"
               ],
@@ -5510,7 +5439,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_testing_compile_compile_testing_0_18",
               "sha256": "92cfbee5ad356a403d36688ab7bae74be65db9a117478ace34ac3ab4d1f9feb9",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/testing/compile/compile-testing/0.18/compile-testing-0.18.jar"
@@ -5522,7 +5450,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_transport_native_kqueue_jar_osx_x86_64_4_1_93_Final",
               "sha256": "bf3a21e503d26a600e2469e98f5acaadb57c18f207a51e8a7073b875c5f50e03",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.93.Final/netty-transport-native-kqueue-4.1.93.Final-osx-x86_64.jar"
@@ -5534,7 +5461,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_apache_tomcat_tomcat_annotations_api_8_0_5",
               "sha256": "748677bebb1651a313317dfd93e984ed8f8c9e345538fa8b0ab0cbb804631953",
               "urls": [
                 "https://repo1.maven.org/maven2/org/apache/tomcat/tomcat-annotations-api/8.0.5/tomcat-annotations-api-8.0.5.jar"
@@ -5546,7 +5472,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_android_tools_analytics_library_protos_30_1_3",
               "sha256": "6c7c2fc5ea590797db1532d7879b717cdd6328c8f74c0e32ddccdf392e94ffe6",
               "urls": [
                 "https://dl.google.com/android/maven2/com/android/tools/analytics-library/protos/30.1.3/protos-30.1.3.jar",
@@ -5559,7 +5484,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_android_signflinger_7_1_3",
               "sha256": "899a4da318f83e6e8e64d3a51bf97add91b4c642a52f7162d3333c2f74ff4555",
               "urls": [
                 "https://dl.google.com/android/maven2/com/android/signflinger/7.1.3/signflinger-7.1.3.jar",
@@ -5572,7 +5496,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_checkerframework_checker_compat_qual_2_5_3",
               "sha256": "d76b9afea61c7c082908023f0cbc1427fab9abd2df915c8b8a3e7a509bccbc6d",
               "urls": [
                 "https://repo1.maven.org/maven2/org/checkerframework/checker-compat-qual/2.5.3/checker-compat-qual-2.5.3.jar"
@@ -5584,7 +5507,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_ow2_asm_asm_9_2",
               "sha256": "b9d4fe4d71938df38839f0eca42aaaa64cf8b313d678da036f0cb3ca199b47f5",
               "urls": [
                 "https://repo1.maven.org/maven2/org/ow2/asm/asm/9.2/asm-9.2.jar"
@@ -5596,7 +5518,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_android_tools_repository_30_1_3",
               "sha256": "11e2489f49f45b7709d080c2a82691ba42cfe8e13d3ac55487592fb550adb597",
               "urls": [
                 "https://dl.google.com/android/maven2/com/android/tools/repository/30.1.3/repository-30.1.3.jar",
@@ -5609,7 +5530,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_checkerframework_checker_compat_qual_2_5_5",
               "sha256": "11d134b245e9cacc474514d2d66b5b8618f8039a1465cdc55bbc0b34e0008b7a",
               "urls": [
                 "https://repo1.maven.org/maven2/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar",
@@ -5622,7 +5542,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_ow2_asm_asm_9_1",
               "sha256": "cda4de455fab48ff0bcb7c48b4639447d4de859a7afc30a094a986f0936beba2",
               "urls": [
                 "https://dl.google.com/android/maven2/org/ow2/asm/asm/9.1/asm-9.1.jar",
@@ -5635,7 +5554,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_tcnative_boringssl_static_jar_linux_aarch_64_2_0_56_Final",
               "sha256": "8e5a30fc4a9514714367813f8027df4c9672746797b0699d83958d678e5cfeca",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-tcnative-boringssl-static/2.0.56.Final/netty-tcnative-boringssl-static-2.0.56.Final-linux-aarch_64.jar"
@@ -5647,7 +5565,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_googlejavaformat_google_java_format_1_15_0",
               "sha256": "4f546cfe159547ac3b9547daa9649e728f6abc254979c975f1cb9971793692c3",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/googlejavaformat/google-java-format/1.15.0/google-java-format-1.15.0.jar",
@@ -5660,7 +5577,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_guava_listenablefuture_9999_0_empty_to_avoid_conflict_with_guava",
               "sha256": "b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar"
@@ -5672,7 +5588,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_transport_4_1_93_Final",
               "sha256": "a5a78019bc1cd43dbc3c7b7cdd3801912ca26d1f498fb560514fee497864ba96",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-transport/4.1.93.Final/netty-transport-4.1.93.Final.jar"
@@ -5684,7 +5599,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_oauth_client_google_oauth_client_1_34_1",
               "sha256": "193edf97aefa28b93c5892bdc598bac34fa4c396588030084f290b1440e8b98a",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/oauth-client/google-oauth-client/1.34.1/google-oauth-client-1.34.1.jar"
@@ -5696,7 +5610,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_bouncycastle_bcprov_jdk15on_1_56",
               "sha256": "963e1ee14f808ffb99897d848ddcdb28fa91ddda867eb18d303e82728f878349",
               "urls": [
                 "https://dl.google.com/android/maven2/org/bouncycastle/bcprov-jdk15on/1.56/bcprov-jdk15on-1.56.jar",
@@ -5709,7 +5622,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_flogger_flogger_system_backend_0_5_1",
               "sha256": "685de33b53eb313049bbeee7f4b7a80dd09e8e754e96b048a3edab2cebb36442",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/flogger/flogger-system-backend/0.5.1/flogger-system-backend-0.5.1.jar"
@@ -5721,7 +5633,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_jetbrains_kotlin_kotlin_reflect_1_4_32",
               "sha256": "dbf19e9cdaa9c3c170f3f6f6ce3922f38dfc1d7fa1cab5b7c23a19da8b5eec5b",
               "urls": [
                 "https://dl.google.com/android/maven2/org/jetbrains/kotlin/kotlin-reflect/1.4.32/kotlin-reflect-1.4.32.jar",
@@ -5734,7 +5645,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~androidx_databinding_databinding_compiler_3_4_0_alpha10",
               "sha256": "2d741da6cc20a3f0136b6fdce6babf92d8b5115b37b05c61dd8ce6832499d629",
               "urls": [
                 "https://dl.google.com/android/maven2/androidx/databinding/databinding-compiler/3.4.0-alpha10/databinding-compiler-3.4.0-alpha10.jar",
@@ -5747,7 +5657,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~net_sf_jopt_simple_jopt_simple_4_9",
               "sha256": "26c5856e954b5f864db76f13b86919b59c6eecf9fd930b96baa8884626baf2f5",
               "urls": [
                 "https://dl.google.com/android/maven2/net/sf/jopt-simple/jopt-simple/4.9/jopt-simple-4.9.jar",
@@ -5760,7 +5669,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~software_amazon_awssdk_auth_2_17_183",
               "sha256": "8820c6636e5c14efc29399fb5565ce50212b0c1f4ed720a025a2c402d54e0978",
               "urls": [
                 "https://repo1.maven.org/maven2/software/amazon/awssdk/auth/2.17.183/auth-2.17.183.jar",
@@ -5773,7 +5681,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~jakarta_activation_jakarta_activation_api_1_2_1",
               "sha256": "8b0a0f52fa8b05c5431921a063ed866efaa41dadf2e3a7ee3e1961f2b0d9645b",
               "urls": [
                 "https://dl.google.com/android/maven2/jakarta/activation/jakarta.activation-api/1.2.1/jakarta.activation-api-1.2.1.jar",
@@ -5786,7 +5693,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_grpc_grpc_core_1_48_1",
               "sha256": "6d472ee6d2b60ef3f3e6801e7cd4dbec5fbbef81e883a0de1fbc55e6defe1cb7",
               "urls": [
                 "https://repo1.maven.org/maven2/io/grpc/grpc-core/1.48.1/grpc-core-1.48.1.jar"
@@ -5798,7 +5704,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_codec_http_4_1_93_Final",
               "sha256": "dacf78ce78ab2d29570325db4cd2451ea589639807de95881a0fa7155a9e6b55",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.93.Final/netty-codec-http-4.1.93.Final.jar"
@@ -5810,7 +5715,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_android_tools_common_30_1_3",
               "sha256": "194ea15f8b182cca975544fb97d92bc1c6ceb6059f35250a5971ac3c306ebdcc",
               "urls": [
                 "https://dl.google.com/android/maven2/com/android/tools/common/30.1.3/common-30.1.3.jar",
@@ -5823,7 +5727,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_codec_4_1_72_Final",
               "sha256": "5d8591ca271a1e9c224e8de3873aa9936acb581ee0db514e7dc18523df36d16c",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-codec/4.1.72.Final/netty-codec-4.1.72.Final.jar",
@@ -5836,7 +5739,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_grpc_grpc_auth_1_48_1",
               "sha256": "ae63be5fe345ffdd5157284d90b783138eb31634e274182a8495242f9ad66a56",
               "urls": [
                 "https://repo1.maven.org/maven2/io/grpc/grpc-auth/1.48.1/grpc-auth-1.48.1.jar"
@@ -5848,7 +5750,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_apache_httpcomponents_httpmime_4_5_6",
               "sha256": "0b2b1102c18d3c7e05a77214b9b7501a6f6056174ae5604e0e256776eda7553e",
               "urls": [
                 "https://dl.google.com/android/maven2/org/apache/httpcomponents/httpmime/4.5.6/httpmime-4.5.6.jar",
@@ -5861,7 +5762,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_resolver_dns_4_1_93_Final",
               "sha256": "2744ccc1bbd653c9f65f5764ab211f51cae56aa6c2e2288850a9add9c805be56",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-resolver-dns/4.1.93.Final/netty-resolver-dns-4.1.93.Final.jar"
@@ -5873,7 +5773,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_github_ben_manes_caffeine_caffeine_3_0_5",
               "sha256": "8a9b54d3506a3b92ee46b217bcee79196b21ca6d52dc2967c686a205fb2f9c15",
               "urls": [
                 "https://repo1.maven.org/maven2/com/github/ben-manes/caffeine/caffeine/3.0.5/caffeine-3.0.5.jar"
@@ -5885,7 +5784,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_apache_httpcomponents_httpclient_4_5_6",
               "sha256": "c03f813195e7a80e3608d0ddd8da80b21696a4c92a6a2298865bf149071551c7",
               "urls": [
                 "https://dl.google.com/android/maven2/org/apache/httpcomponents/httpclient/4.5.6/httpclient-4.5.6.jar",
@@ -5898,7 +5796,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_tcnative_classes_2_0_46_Final",
               "sha256": "d3ec888dcc4ac7915bf88b417c5e04fd354f4311032a748a6882df09347eed9a",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-tcnative-classes/2.0.46.Final/netty-tcnative-classes-2.0.46.Final.jar",
@@ -5911,7 +5808,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_tcnative_boringssl_static_jar_osx_aarch_64_2_0_56_Final",
               "sha256": "3b962ce1361b479ec7375f04e5d149e7b374a99ecf4f583c9aa0f0a92e5fa415",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-tcnative-boringssl-static/2.0.56.Final/netty-tcnative-boringssl-static-2.0.56.Final-osx-aarch_64.jar"
@@ -5923,7 +5819,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_errorprone_error_prone_annotations_2_3_4",
               "sha256": "baf7d6ea97ce606c53e11b6854ba5f2ce7ef5c24dddf0afa18d1260bd25b002c",
               "urls": [
                 "https://dl.google.com/android/maven2/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar",
@@ -5936,7 +5831,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_api_api_common_1_10_1",
               "sha256": "2a033f24bb620383eda440ad307cb8077cfec1c7eadc684d65216123a1b9613a",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/api/api-common/1.10.1/api-common-1.10.1.jar",
@@ -5949,7 +5843,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_auth_google_auth_library_oauth2_http_1_6_0",
               "sha256": "2220f02fcfc480e3798bab43b2618d158319f9fcb357c9eb04b4a68117699808",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/auth/google-auth-library-oauth2-http/1.6.0/google-auth-library-oauth2-http-1.6.0.jar"
@@ -5961,7 +5854,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~javax_annotation_javax_annotation_api_1_3_2",
               "sha256": "e04ba5195bcd555dc95650f7cc614d151e4bcd52d29a10b8aa2197f3ab89ab9b",
               "urls": [
                 "https://repo1.maven.org/maven2/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar"
@@ -5973,7 +5865,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_common_4_1_93_Final",
               "sha256": "443bb316599fb16e3baeba2fb58881814d7ff0b7af176fe76e38071a6e86f8c0",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-common/4.1.93.Final/netty-common-4.1.93.Final.jar"
@@ -5985,7 +5876,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_j2objc_j2objc_annotations_1_3",
               "sha256": "21af30c92267bd6122c0e0b4d20cccb6641a37eaf956c6540ec471d584e64a7b",
               "urls": [
                 "https://dl.google.com/android/maven2/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar",
@@ -5998,7 +5888,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_resolver_4_1_93_Final",
               "sha256": "e59770b66e81822e5d111ac4e544d7eb0c543e0a285f52628e53941acd8ed759",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.93.Final/netty-resolver-4.1.93.Final.jar"
@@ -6010,7 +5899,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_flogger_flogger_0_5_1",
               "sha256": "b5ecd1483e041197012786f749968a62063c1964d3ecfbf96ba92a95797bb8f5",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/flogger/flogger/0.5.1/flogger-0.5.1.jar"
@@ -6022,7 +5910,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_tcnative_boringssl_static_jar_linux_x86_64_2_0_56_Final",
               "sha256": "725c26b4dd58a1aa782020952ad949bdb607235dd20ee49e5a5875c15456ca86",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-tcnative-boringssl-static/2.0.56.Final/netty-tcnative-boringssl-static-2.0.56.Final-linux-x86_64.jar"
@@ -6034,7 +5921,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_truth_extensions_truth_liteproto_extension_1_1_3",
               "sha256": "71cce6284554e546d1b5ba48e310ee4b4050676f09fb0eced136d779284ff78d",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/truth/extensions/truth-liteproto-extension/1.1.3/truth-liteproto-extension-1.1.3.jar"
@@ -6046,7 +5932,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_ryanharter_auto_value_auto_value_gson_runtime_1_3_1",
               "sha256": "84ee23b7989d4bf19930b5bd3d03c0f2efb9e73bcee3a0208a9d1b2e1979c049",
               "urls": [
                 "https://repo1.maven.org/maven2/com/ryanharter/auto/value/auto-value-gson-runtime/1.3.1/auto-value-gson-runtime-1.3.1.jar"
@@ -6058,7 +5943,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_apache_velocity_velocity_1_7",
               "sha256": "ec92dae810034f4b46dbb16ef4364a4013b0efb24a8c5dd67435cae46a290d8e",
               "urls": [
                 "https://repo1.maven.org/maven2/org/apache/velocity/velocity/1.7/velocity-1.7.jar"
@@ -6070,7 +5954,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_ow2_asm_asm_tree_9_2",
               "sha256": "aabf9bd23091a4ebfc109c1f3ee7cf3e4b89f6ba2d3f51c5243f16b3cffae011",
               "urls": [
                 "https://repo1.maven.org/maven2/org/ow2/asm/asm-tree/9.2/asm-tree-9.2.jar"
@@ -6082,7 +5965,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_transport_classes_epoll_4_1_93_Final",
               "sha256": "23722fa366ba017137a68c5e92fc3ee27bbb341c681ac4790f61c6adb7289e26",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-transport-classes-epoll/4.1.93.Final/netty-transport-classes-epoll-4.1.93.Final.jar"
@@ -6094,7 +5976,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_ow2_asm_asm_tree_9_1",
               "sha256": "fd00afa49e9595d7646205b09cecb4a776a8ff0ba06f2d59b8f7bf9c704b4a73",
               "urls": [
                 "https://dl.google.com/android/maven2/org/ow2/asm/asm-tree/9.1/asm-tree-9.1.jar",
@@ -6107,7 +5988,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~androidx_databinding_databinding_compiler_common_3_4_0_alpha10",
               "sha256": "7e1ffef1c21064f2b065b17a69bc217270e14b6723311cf795f4276a05b83750",
               "urls": [
                 "https://dl.google.com/android/maven2/androidx/databinding/databinding-compiler-common/3.4.0-alpha10/databinding-compiler-common-3.4.0-alpha10.jar",
@@ -6120,7 +6000,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_codec_http2_4_1_72_Final",
               "sha256": "c89a70500f59e8563e720aaa808263a514bd9e2bd91ba84eab8c2ccb45f234b2",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.72.Final/netty-codec-http2-4.1.72.Final.jar",
@@ -6130,10 +6009,9 @@
             }
           },
           "rules_jvm_external_deps": {
-            "bzlFile": "@@rules_jvm_external~5.2//:coursier.bzl",
+            "bzlFile": "@@rules_jvm_external~//:coursier.bzl",
             "ruleClassName": "pinned_coursier_fetch",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~rules_jvm_external_deps",
               "repositories": [
                 "{ \"repo_url\": \"https://repo1.maven.org/maven2\" }"
               ],
@@ -6151,7 +6029,7 @@
               "fetch_sources": false,
               "fetch_javadoc": false,
               "generate_compat_repositories": false,
-              "maven_install_json": "@@rules_jvm_external~5.2//:rules_jvm_external_deps_install.json",
+              "maven_install_json": "@@rules_jvm_external~//:rules_jvm_external_deps_install.json",
               "override_targets": {},
               "strict_visibility": false,
               "strict_visibility_value": [
@@ -6172,7 +6050,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_apache_commons_commons_compress_1_20",
               "sha256": "0aeb625c948c697ea7b205156e112363b59ed5e2551212cd4e460bdb72c7c06e",
               "urls": [
                 "https://repo1.maven.org/maven2/org/apache/commons/commons-compress/1.20/commons-compress-1.20.jar"
@@ -6184,7 +6061,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~software_amazon_awssdk_http_client_spi_2_17_183",
               "sha256": "fe7120f175df9e47ebcc5d946d7f40110faf2ba0a30364f3b935d5b8a5a6c3c6",
               "urls": [
                 "https://repo1.maven.org/maven2/software/amazon/awssdk/http-client-spi/2.17.183/http-client-spi-2.17.183.jar",
@@ -6197,7 +6073,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_checkerframework_checker_qual_3_5_0",
               "sha256": "729990b3f18a95606fc2573836b6958bcdb44cb52bfbd1b7aa9c339cff35a5a4",
               "urls": [
                 "https://dl.google.com/android/maven2/org/checkerframework/checker-qual/3.5.0/checker-qual-3.5.0.jar",
@@ -6210,7 +6085,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_oauth_client_google_oauth_client_1_31_1",
               "sha256": "4ed4e2948251dbda66ce251bd7f3b32cd8570055e5cdb165a3c7aea8f43da0ff",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/oauth-client/google-oauth-client/1.31.1/google-oauth-client-1.31.1.jar",
@@ -6223,7 +6097,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_code_java_allocation_instrumenter_java_allocation_instrumenter_3_3_0",
               "sha256": "1ef5535a8bd41cf3072469f381b9ee6ab28275311a7499f53d6e52adf976fef0",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/code/java-allocation-instrumenter/java-allocation-instrumenter/3.3.0/java-allocation-instrumenter-3.3.0.jar"
@@ -6235,7 +6108,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_4_32",
               "sha256": "5f801e75ca27d8791c14b07943c608da27620d910a8093022af57f543d5d98b6",
               "urls": [
                 "https://dl.google.com/android/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.4.32/kotlin-stdlib-jdk7-1.4.32.jar",
@@ -6245,10 +6117,9 @@
             }
           },
           "maven_android": {
-            "bzlFile": "@@rules_jvm_external~5.2//:coursier.bzl",
+            "bzlFile": "@@rules_jvm_external~//:coursier.bzl",
             "ruleClassName": "pinned_coursier_fetch",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~maven_android",
               "repositories": [
                 "{ \"repo_url\": \"https://dl.google.com/android/maven2\" }",
                 "{ \"repo_url\": \"https://repo1.maven.org/maven2\" }"
@@ -6287,7 +6158,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_code_gson_gson_2_8_6",
               "sha256": "c8fb4839054d280b3033f800d1f5a97de2f028eb8ba2eb458ad287e536f3f25f",
               "urls": [
                 "https://dl.google.com/android/maven2/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar",
@@ -6300,7 +6170,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_auto_service_auto_service_annotations_1_0_1",
               "sha256": "c7bec54b7b5588b5967e870341091c5691181d954cf2039f1bf0a6eeb837473b",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/auto/service/auto-service-annotations/1.0.1/auto-service-annotations-1.0.1.jar"
@@ -6312,7 +6181,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_truth_extensions_truth_java8_extension_1_1_3",
               "sha256": "2bbd32dd2fa9470d17f1bbda4f52b33b60bce4574052c1d46610a0aa371fc446",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/truth/extensions/truth-java8-extension/1.1.3/truth-java8-extension-1.1.3.jar"
@@ -6324,7 +6192,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~software_amazon_awssdk_annotations_2_17_183",
               "sha256": "8e4d72361ca805a0bd8bbd9017cd7ff77c8d170f2dd469c7d52d5653330bb3fd",
               "urls": [
                 "https://repo1.maven.org/maven2/software/amazon/awssdk/annotations/2.17.183/annotations-2.17.183.jar",
@@ -6337,7 +6204,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_transport_native_unix_common_jar_linux_aarch_64_4_1_93_Final",
               "sha256": "29675f1d9a2f09e426c0016e5fb89328d38afad0403f1bd1b98f985253d96ad8",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.93.Final/netty-transport-native-unix-common-4.1.93.Final-linux-aarch_64.jar"
@@ -6349,7 +6215,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_jetbrains_kotlin_kotlin_stdlib_1_4_32",
               "sha256": "13e9fd3e69dc7230ce0fc873a92a4e5d521d179bcf1bef75a6705baac3bfecba",
               "urls": [
                 "https://dl.google.com/android/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.4.32/kotlin-stdlib-1.4.32.jar",
@@ -6362,7 +6227,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_auto_value_auto_value_annotations_1_7_4",
               "sha256": "fedd59b0b4986c342f6ab2d182f2a4ee9fceb2c7e2d5bdc4dc764c92394a23d3",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/auto/value/auto-value-annotations/1.7.4/auto-value-annotations-1.7.4.jar",
@@ -6375,7 +6239,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_android_tools_layoutlib_layoutlib_api_30_1_3",
               "sha256": "14d7ffdcedeea701c7316d6eba58ae32d329293de215c3b7218d14711ecfffaf",
               "urls": [
                 "https://dl.google.com/android/maven2/com/android/tools/layoutlib/layoutlib-api/30.1.3/layoutlib-api-30.1.3.jar",
@@ -6388,7 +6251,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_transport_classes_kqueue_4_1_93_Final",
               "sha256": "453fe595c3e12b9228b930b845140aaed93a9fb87d1a5d829c55b31d670def9f",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-transport-classes-kqueue/4.1.93.Final/netty-transport-classes-kqueue-4.1.93.Final.jar"
@@ -6400,7 +6262,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~junit_junit_4_13_2",
               "sha256": "8e495b634469d64fb8acfa3495a065cbacc8a0fff55ce1e31007be4c16dc57d3",
               "urls": [
                 "https://repo1.maven.org/maven2/junit/junit/4.13.2/junit-4.13.2.jar"
@@ -6412,7 +6273,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_auth_google_auth_library_credentials_0_22_0",
               "sha256": "42c76031276de5b520909e9faf88c5b3c9a722d69ee9cfdafedb1c52c355dfc5",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/auth/google-auth-library-credentials/0.22.0/google-auth-library-credentials-0.22.0.jar",
@@ -6425,7 +6285,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_guava_guava_32_1_1_jre",
               "sha256": "91fbba37f1c8b251cf9ea9e7d3a369eb79eb1e6a5df1d4bbf483dd0380740281",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/guava/guava/32.1.1-jre/guava-32.1.1-jre.jar"
@@ -6437,7 +6296,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_android_tools_sdklib_30_1_3",
               "sha256": "edf456a67ada3154c9fd23f9829699e8b654dc7f33f2430b50839d6904760b48",
               "urls": [
                 "https://dl.google.com/android/maven2/com/android/tools/sdklib/30.1.3/sdklib-30.1.3.jar",
@@ -6450,7 +6308,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_tukaani_xz_1_9",
               "sha256": "211b306cfc44f8f96df3a0a3ddaf75ba8c5289eed77d60d72f889bb855f535e5",
               "urls": [
                 "https://repo1.maven.org/maven2/org/tukaani/xz/1.9/xz-1.9.jar"
@@ -6462,7 +6319,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_guava_guava_testlib_31_1_jre",
               "sha256": "aadc71b10d5c3ac474dd16be84cfb18d257e584d1e0a59f8cab64ef4376226ce",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/guava/guava-testlib/31.1-jre/guava-testlib-31.1-jre.jar"
@@ -6474,7 +6330,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_http_client_google_http_client_1_42_0",
               "sha256": "82ca0e08171846d1768d5ac3f13244d6fe5a54102c14735ef40bf15d57d478e5",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/http-client/google-http-client/1.42.0/google-http-client-1.42.0.jar"
@@ -6486,7 +6341,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_android_tools_sdk_common_30_1_3",
               "sha256": "6c44d6ffa3b1b34505fcb05422f08bd293391648dc974cc252ddc541fd9b27f5",
               "urls": [
                 "https://dl.google.com/android/maven2/com/android/tools/sdk-common/30.1.3/sdk-common-30.1.3.jar",
@@ -6499,7 +6353,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_checkerframework_checker_qual_3_33_0",
               "sha256": "e316255bbfcd9fe50d165314b85abb2b33cb2a66a93c491db648e498a82c2de1",
               "urls": [
                 "https://repo1.maven.org/maven2/org/checkerframework/checker-qual/3.33.0/checker-qual-3.33.0.jar"
@@ -6511,7 +6364,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_hamcrest_hamcrest_core_1_3",
               "sha256": "66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9",
               "urls": [
                 "https://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar"
@@ -6523,7 +6375,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_cloud_google_cloud_core_http_1_93_10",
               "sha256": "81ac67c14c7c4244d2b7db2607ad352416aca8d3bb2adf338964e8fea25b1b3c",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/cloud/google-cloud-core-http/1.93.10/google-cloud-core-http-1.93.10.jar",
@@ -6536,7 +6387,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_transport_native_unix_common_jar_osx_aarch_64_4_1_93_Final",
               "sha256": "6c6ecf73016d360e09a1cac31acd953f508309612f1b97d73db2ed0813d8bf14",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.93.Final/netty-transport-native-unix-common-4.1.93.Final-osx-aarch_64.jar"
@@ -6548,7 +6398,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_sweers_autotransient_autotransient_1_0_0",
               "sha256": "914ce84508410ee1419514925f93b1855a9f7a7b5b5d02fc07f411d2a45f1bba",
               "urls": [
                 "https://repo1.maven.org/maven2/io/sweers/autotransient/autotransient/1.0.0/autotransient-1.0.0.jar"
@@ -6557,10 +6406,9 @@
             }
           },
           "unpinned_rules_jvm_external_deps": {
-            "bzlFile": "@@rules_jvm_external~5.2//:coursier.bzl",
+            "bzlFile": "@@rules_jvm_external~//:coursier.bzl",
             "ruleClassName": "coursier_fetch",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~unpinned_rules_jvm_external_deps",
               "repositories": [
                 "{ \"repo_url\": \"https://repo1.maven.org/maven2\" }"
               ],
@@ -6586,7 +6434,7 @@
               "strict_visibility_value": [
                 "@@//visibility:private"
               ],
-              "maven_install_json": "@@rules_jvm_external~5.2//:rules_jvm_external_deps_install.json",
+              "maven_install_json": "@@rules_jvm_external~//:rules_jvm_external_deps_install.json",
               "resolve_timeout": 600,
               "jetify": false,
               "jetify_include_list": [
@@ -6601,7 +6449,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_auth_google_auth_library_credentials_1_6_0",
               "sha256": "153fa3cdc153ac3ee25649e8037aeda4438256153d35acf3c27e83e4ee6165a4",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/auth/google-auth-library-credentials/1.6.0/google-auth-library-credentials-1.6.0.jar"
@@ -6613,7 +6460,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_tcnative_boringssl_static_jar_windows_x86_64_2_0_56_Final",
               "sha256": "b0d9505b09427ab655369506a802358966762edcb7cf08fc162dc2b368a2041c",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-tcnative-boringssl-static/2.0.56.Final/netty-tcnative-boringssl-static-2.0.56.Final-windows-x86_64.jar"
@@ -6625,7 +6471,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~software_amazon_awssdk_aws_query_protocol_2_17_183",
               "sha256": "4dace03c76f80f3dec920cb3dedb2a95984c4366ef4fda728660cb90bed74848",
               "urls": [
                 "https://repo1.maven.org/maven2/software/amazon/awssdk/aws-query-protocol/2.17.183/aws-query-protocol-2.17.183.jar",
@@ -6638,7 +6483,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_errorprone_error_prone_check_api_2_22_0",
               "sha256": "1717bbf65757b8e1a83f3b0aa78c5ac25a6493008bc730091d404cf798fc0639",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/errorprone/error_prone_check_api/2.22.0/error_prone_check_api-2.22.0.jar"
@@ -6650,7 +6494,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_codec_http_4_1_72_Final",
               "sha256": "fa6fec88010bfaf6a7415b5364671b6b18ffb6b35a986ab97b423fd8c3a0174b",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.72.Final/netty-codec-http-4.1.72.Final.jar",
@@ -6663,7 +6506,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_googlecode_juniversalchardet_juniversalchardet_1_0_3",
               "sha256": "757bfe906193b8b651e79dc26cd67d6b55d0770a2cdfb0381591504f779d4a76",
               "urls": [
                 "https://dl.google.com/android/maven2/com/googlecode/juniversalchardet/juniversalchardet/1.0.3/juniversalchardet-1.0.3.jar",
@@ -6676,7 +6518,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_opencensus_opencensus_contrib_http_util_0_31_1",
               "sha256": "3ea995b55a4068be22989b70cc29a4d788c2d328d1d50613a7a9afd13fdd2d0a",
               "urls": [
                 "https://repo1.maven.org/maven2/io/opencensus/opencensus-contrib-http-util/0.31.1/opencensus-contrib-http-util-0.31.1.jar"
@@ -6688,7 +6529,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_flogger_google_extensions_0_5_1",
               "sha256": "8b0862cad85b9549f355fe383c6c63816d2f19529634e033ae06d0107ab110b9",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/flogger/google-extensions/0.5.1/google-extensions-0.5.1.jar"
@@ -6700,7 +6540,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_sun_activation_javax_activation_1_2_0",
               "sha256": "993302b16cd7056f21e779cc577d175a810bb4900ef73cd8fbf2b50f928ba9ce",
               "urls": [
                 "https://dl.google.com/android/maven2/com/sun/activation/javax.activation/1.2.0/javax.activation-1.2.0.jar",
@@ -6713,7 +6552,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_ryanharter_auto_value_auto_value_gson_extension_1_3_1",
               "sha256": "261be84be30a56994e132d718a85efcd579197a2edb9426b84c5722c56955eca",
               "urls": [
                 "https://repo1.maven.org/maven2/com/ryanharter/auto/value/auto-value-gson-extension/1.3.1/auto-value-gson-extension-1.3.1.jar"
@@ -6725,7 +6563,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_truth_truth_1_1_3",
               "sha256": "fc0b67782289a2aabfddfdf99eff1dcd5edc890d49143fcd489214b107b8f4f3",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/truth/truth/1.1.3/truth-1.1.3.jar"
@@ -6737,7 +6574,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_guava_guava_30_1_jre",
               "sha256": "e6dd072f9d3fe02a4600688380bd422bdac184caf6fe2418cfdd0934f09432aa",
               "urls": [
                 "https://dl.google.com/android/maven2/com/google/guava/guava/30.1-jre/guava-30.1-jre.jar",
@@ -6750,7 +6586,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~net_bytebuddy_byte_buddy_agent_1_14_5",
               "sha256": "55f19862b870f5d85890ba5386b1b45e9bbc88d5fe1f819abe0c788b4929fa6b",
               "urls": [
                 "https://repo1.maven.org/maven2/net/bytebuddy/byte-buddy-agent/1.14.5/byte-buddy-agent-1.14.5.jar"
@@ -6762,7 +6597,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_j2objc_j2objc_annotations_2_8",
               "sha256": "f02a95fa1a5e95edb3ed859fd0fb7df709d121a35290eff8b74dce2ab7f4d6ed",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/j2objc/j2objc-annotations/2.8/j2objc-annotations-2.8.jar"
@@ -6774,7 +6608,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_http_client_google_http_client_1_38_0",
               "sha256": "411f4a42519b6b78bdc0fcfdf74c9edcef0ee97afa4a667abe04045a508d6302",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/http-client/google-http-client/1.38.0/google-http-client-1.38.0.jar",
@@ -6787,7 +6620,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~net_java_dev_jna_jna_platform_5_6_0",
               "sha256": "9ecea8bf2b1b39963939d18b70464eef60c508fed8820f9dcaba0c35518eabf7",
               "urls": [
                 "https://dl.google.com/android/maven2/net/java/dev/jna/jna-platform/5.6.0/jna-platform-5.6.0.jar",
@@ -6800,7 +6632,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_android_tools_analytics_library_shared_30_1_3",
               "sha256": "7c7d19727641e1fbbb61e8569712b3a0229e4e0352636b5745049d41e1a71e00",
               "urls": [
                 "https://dl.google.com/android/maven2/com/android/tools/analytics-library/shared/30.1.3/shared-30.1.3.jar",
@@ -6813,7 +6644,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_code_findbugs_jsr305_3_0_2",
               "sha256": "766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar"
@@ -6825,7 +6655,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_errorprone_error_prone_annotation_2_22_0",
               "sha256": "554c42449c9920ea1f6baec1d1b8aaac404a88be653f7cb441ee059316f8a1d1",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotation/2.22.0/error_prone_annotation-2.22.0.jar"
@@ -6837,7 +6666,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_http_client_google_http_client_gson_1_42_0",
               "sha256": "cb852272c1cb0c8449d8b1a70f3e0f2c1efb2063e543183faa43078fb446f540",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/http-client/google-http-client-gson/1.42.0/google-http-client-gson-1.42.0.jar"
@@ -6849,7 +6677,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_protobuf_protobuf_java_util_3_13_0",
               "sha256": "d9de66b8c9445905dfa7064f6d5213d47ce88a20d34e21d83c4a94a229e14e62",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java-util/3.13.0/protobuf-java-util-3.13.0.jar",
@@ -6862,7 +6689,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_mockito_mockito_core_5_4_0",
               "sha256": "b1689b06617ea01fd777bfaedbdde512faf083d639a049f79b388d5a4e96d2e5",
               "urls": [
                 "https://repo1.maven.org/maven2/org/mockito/mockito-core/5.4.0/mockito-core-5.4.0.jar"
@@ -6874,7 +6700,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_guava_failureaccess_1_0_1",
               "sha256": "a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar"
@@ -6886,7 +6711,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_opencensus_opencensus_api_0_31_1",
               "sha256": "f1474d47f4b6b001558ad27b952e35eda5cc7146788877fc52938c6eba24b382",
               "urls": [
                 "https://repo1.maven.org/maven2/io/opencensus/opencensus-api/0.31.1/opencensus-api-0.31.1.jar"
@@ -6898,7 +6722,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_grpc_grpc_context_1_33_1",
               "sha256": "99b8aea2b614fe0e61c3676e681259dc43c2de7f64620998e1a8435eb2976496",
               "urls": [
                 "https://repo1.maven.org/maven2/io/grpc/grpc-context/1.33.1/grpc-context-1.33.1.jar",
@@ -6911,7 +6734,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_api_grpc_proto_google_iam_v1_1_0_3",
               "sha256": "64cee7383a97e846da8d8e160e6c8fe30561e507260552c59e6ccfc81301fdc8",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-iam-v1/1.0.3/proto-google-iam-v1-1.0.3.jar",
@@ -6924,7 +6746,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_objenesis_objenesis_3_3",
               "sha256": "02dfd0b0439a5591e35b708ed2f5474eb0948f53abf74637e959b8e4ef69bfeb",
               "urls": [
                 "https://repo1.maven.org/maven2/org/objenesis/objenesis/3.3/objenesis-3.3.jar"
@@ -6936,7 +6757,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~software_amazon_awssdk_metrics_spi_2_17_183",
               "sha256": "08a11dc8c4ba464beafbcc7ac05b8c724c1ccb93da99482e82a68540ac704e4a",
               "urls": [
                 "https://repo1.maven.org/maven2/software/amazon/awssdk/metrics-spi/2.17.183/metrics-spi-2.17.183.jar",
@@ -6949,7 +6769,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_http_client_google_http_client_jackson2_1_38_0",
               "sha256": "e6504a82425fcc2168a4ca4175138ddcc085168daed8cdedb86d8f6fdc296e1e",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/http-client/google-http-client-jackson2/1.38.0/google-http-client-jackson2-1.38.0.jar",
@@ -6962,7 +6781,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_android_tools_build_apksig_7_1_3",
               "sha256": "095885c56af3e52e9c7d2ac9b6cf07a8e3bf7fedfbab3914c75c39677d346ada",
               "urls": [
                 "https://dl.google.com/android/maven2/com/android/tools/build/apksig/7.1.3/apksig-7.1.3.jar",
@@ -6975,7 +6793,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_beust_jcommander_1_82",
               "sha256": "deeac157c8de6822878d85d0c7bc8467a19cc8484d37788f7804f039dde280b1",
               "urls": [
                 "https://repo1.maven.org/maven2/com/beust/jcommander/1.82/jcommander-1.82.jar"
@@ -6987,7 +6804,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~it_unimi_dsi_fastutil_7_2_1",
               "sha256": "d73dec5ec18f973f380869b6125d60f5cda77cf6e40e321bd06e0308ed0a40b7",
               "urls": [
                 "https://repo1.maven.org/maven2/it/unimi/dsi/fastutil/7.2.1/fastutil-7.2.1.jar"
@@ -6999,7 +6815,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~androidx_databinding_databinding_common_3_4_0_alpha10",
               "sha256": "1b2cfc3beaf6139e1851dd4a888cda8192ba0ad4be3de43450d5f30569845303",
               "urls": [
                 "https://dl.google.com/android/maven2/androidx/databinding/databinding-common/3.4.0-alpha10/databinding-common-3.4.0-alpha10.jar",
@@ -7012,7 +6827,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~software_amazon_awssdk_third_party_jackson_core_2_17_183",
               "sha256": "1bc27c9960993c20e1ab058012dd1ae04c875eec9f0f08f2b2ca41e578dee9a4",
               "urls": [
                 "https://repo1.maven.org/maven2/software/amazon/awssdk/third-party-jackson-core/2.17.183/third-party-jackson-core-2.17.183.jar",
@@ -7025,7 +6839,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~tools_profiler_async_profiler_3_0",
               "sha256": "8f798860049d01f4a2f853596d28c85d2983f0c098f165a32909b7da9c74209f",
               "urls": [
                 "https://repo1.maven.org/maven2/tools/profiler/async-profiler/3.0/async-profiler-3.0.jar"
@@ -7037,7 +6850,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~software_amazon_eventstream_eventstream_1_0_1",
               "sha256": "0c37d8e696117f02c302191b8110b0d0eb20fa412fce34c3a269ec73c16ce822",
               "urls": [
                 "https://repo1.maven.org/maven2/software/amazon/eventstream/eventstream/1.0.1/eventstream-1.0.1.jar",
@@ -7050,7 +6862,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_threeten_threeten_extra_1_5_0",
               "sha256": "e7def554536188fbaf8aac1a0a2f956b039cbbb5696edc3b8336c442c56ae445",
               "urls": [
                 "https://repo1.maven.org/maven2/org/threeten/threeten-extra/1.5.0/threeten-extra-1.5.0.jar"
@@ -7062,7 +6873,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_codec_dns_4_1_93_Final",
               "sha256": "10a278b19d6393d5637f745007cb26d47dd16d468898dcc4a43e26d39c6cdd29",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-codec-dns/4.1.93.Final/netty-codec-dns-4.1.93.Final.jar"
@@ -7074,7 +6884,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~software_amazon_awssdk_aws_xml_protocol_2_17_183",
               "sha256": "566bba05d49256fa6994efd68fa625ae05a62ea45ee74bb9130d20ea20988363",
               "urls": [
                 "https://repo1.maven.org/maven2/software/amazon/awssdk/aws-xml-protocol/2.17.183/aws-xml-protocol-2.17.183.jar",
@@ -7087,7 +6896,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_transport_native_unix_common_jar_linux_x86_64_4_1_93_Final",
               "sha256": "8923a73ba8a373f7b994906f5902ba9f6bb59d181d4ad01576a6e0c5abb09b67",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.93.Final/netty-transport-native-unix-common-4.1.93.Final-linux-x86_64.jar"
@@ -7099,7 +6907,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_handler_4_1_93_Final",
               "sha256": "4e5f563ae14ed713381816d582f5fcfd0615aefb29203486cdfb782d8a00a02b",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-handler/4.1.93.Final/netty-handler-4.1.93.Final.jar"
@@ -7111,7 +6918,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_android_databinding_baseLibrary_3_4_0_alpha10",
               "sha256": "1aed4f3e46bf83c80a1722ce6cc64a8133c4554a668c483f6b3d0f2c06dd7461",
               "urls": [
                 "https://dl.google.com/android/maven2/com/android/databinding/baseLibrary/3.4.0-alpha10/baseLibrary-3.4.0-alpha10.jar",
@@ -7124,7 +6930,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_codehaus_mojo_animal_sniffer_annotations_1_21",
               "sha256": "2f25841c937e24959a57b630e2c4b8525b3d0f536f2e511c9b2bed30b1651d54",
               "urls": [
                 "https://repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.21/animal-sniffer-annotations-1.21.jar"
@@ -7136,7 +6941,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_fasterxml_jackson_core_jackson_core_2_11_3",
               "sha256": "78cd0a6b936232e06dd3e38da8a0345348a09cd1ff9c4d844c6ee72c75cfc402",
               "urls": [
                 "https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.11.3/jackson-core-2.11.3.jar",
@@ -7149,7 +6953,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_cloud_google_cloud_core_1_93_10",
               "sha256": "832d74eca66f4601e162a8460d6f59f50d1d23f93c18b02654423b6b0d67c6ea",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/cloud/google-cloud-core/1.93.10/google-cloud-core-1.93.10.jar",
@@ -7162,7 +6965,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_codec_http2_4_1_93_Final",
               "sha256": "d96cc09045a1341c6d47494352aa263b87b72fb1d2ea9eca161aa73820bfe8bb",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.93.Final/netty-codec-http2-4.1.93.Final.jar"
@@ -7174,7 +6976,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_buffer_4_1_93_Final",
               "sha256": "007c7d9c378df02d390567d0d7ddf542ffddb021b7313dbf502392113ffabb08",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.93.Final/netty-buffer-4.1.93.Final.jar"
@@ -7186,7 +6987,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~commons_lang_commons_lang_2_6",
               "sha256": "50f11b09f877c294d56f24463f47d28f929cf5044f648661c0f0cfbae9a2f49c",
               "urls": [
                 "https://repo1.maven.org/maven2/commons-lang/commons-lang/2.6/commons-lang-2.6.jar"
@@ -7198,7 +6998,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_antlr_antlr4_4_5_3",
               "sha256": "a32de739cfdf515774e696f91aa9697d2e7731e5cb5045ca8a4b657f8b1b4fb4",
               "urls": [
                 "https://dl.google.com/android/maven2/org/antlr/antlr4/4.5.3/antlr4-4.5.3.jar",
@@ -7211,7 +7010,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_tcnative_classes_2_0_56_Final",
               "sha256": "eede807f0dd5eb1ad74ea1ae1094430631da63fcde00d4dc20eb0cd048bb0ac3",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-tcnative-classes/2.0.56.Final/netty-tcnative-classes-2.0.56.Final.jar"
@@ -7223,7 +7021,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_transport_classes_epoll_4_1_72_Final",
               "sha256": "e1528a9751c1285aa7beaf3a1eb0597151716426ce38598ac9bc0891209b9e68",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-transport-classes-epoll/4.1.72.Final/netty-transport-classes-epoll-4.1.72.Final.jar",
@@ -7236,7 +7033,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_checkerframework_checker_qual_3_12_0",
               "sha256": "ff10785ac2a357ec5de9c293cb982a2cbb605c0309ea4cc1cb9b9bc6dbe7f3cb",
               "urls": [
                 "https://repo1.maven.org/maven2/org/checkerframework/checker-qual/3.12.0/checker-qual-3.12.0.jar",
@@ -7249,7 +7045,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~software_amazon_awssdk_regions_2_17_183",
               "sha256": "d3079395f3ffc07d04ffcce16fca29fb5968197f6e9ea3dbff6be297102b40a5",
               "urls": [
                 "https://repo1.maven.org/maven2/software/amazon/awssdk/regions/2.17.183/regions-2.17.183.jar",
@@ -7262,7 +7057,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_http_client_google_http_client_apache_v2_1_42_0",
               "sha256": "1fc4964236b67cf3c5651d7ac1dff668f73b7810c7f1dc0862a0e5bc01608785",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/http-client/google-http-client-apache-v2/1.42.0/google-http-client-apache-v2-1.42.0.jar"
@@ -7274,7 +7068,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_perfmark_perfmark_api_0_25_0",
               "sha256": "2044542933fcdf40ad18441bec37646d150c491871157f288847e29cb81de4cb",
               "urls": [
                 "https://repo1.maven.org/maven2/io/perfmark/perfmark-api/0.25.0/perfmark-api-0.25.0.jar"
@@ -7286,7 +7079,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_handler_4_1_72_Final",
               "sha256": "9cb6012af7e06361d738ac4e3bdc49a158f8cf87d9dee0f2744056b7d99c28d5",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-handler/4.1.72.Final/netty-handler-4.1.72.Final.jar",
@@ -7299,7 +7091,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_testparameterinjector_test_parameter_injector_1_0",
               "sha256": "c3d4c8d7055b6fd7f1047ab37e3d476709c492510d485f1bfb204a3c16f0351c",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/testparameterinjector/test-parameter-injector/1.0/test-parameter-injector-1.0.jar"
@@ -7311,7 +7102,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_grpc_grpc_api_1_48_1",
               "sha256": "aeb8d7a1361aa3d8f5a191580fa7f8cbc5ceb53137a4a698590f612f791e2c45",
               "urls": [
                 "https://repo1.maven.org/maven2/io/grpc/grpc-api/1.48.1/grpc-api-1.48.1.jar"
@@ -7323,7 +7113,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_ow2_asm_asm_analysis_9_2",
               "sha256": "878fbe521731c072d14d2d65b983b1beae6ad06fda0007b6a8bae81f73f433c4",
               "urls": [
                 "https://repo1.maven.org/maven2/org/ow2/asm/asm-analysis/9.2/asm-analysis-9.2.jar"
@@ -7335,7 +7124,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_ow2_asm_asm_analysis_9_1",
               "sha256": "81a88041b1b8beda5a8a99646098046c48709538270c49def68abff25ac3be34",
               "urls": [
                 "https://dl.google.com/android/maven2/org/ow2/asm/asm-analysis/9.1/asm-analysis-9.1.jar",
@@ -7348,7 +7136,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_squareup_javapoet_1_12_0",
               "sha256": "2b70cdfa8c9e997b4007035a266c273c0df341f9c57c9d0b45a680ae3fd882db",
               "urls": [
                 "https://repo1.maven.org/maven2/com/squareup/javapoet/1.12.0/javapoet-1.12.0.jar"
@@ -7357,10 +7144,9 @@
             }
           },
           "unpinned_maven_android": {
-            "bzlFile": "@@rules_jvm_external~5.2//:coursier.bzl",
+            "bzlFile": "@@rules_jvm_external~//:coursier.bzl",
             "ruleClassName": "coursier_fetch",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~unpinned_maven_android",
               "repositories": [
                 "{ \"repo_url\": \"https://dl.google.com/android/maven2\" }",
                 "{ \"repo_url\": \"https://repo1.maven.org/maven2\" }"
@@ -7401,7 +7187,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_resolver_4_1_72_Final",
               "sha256": "6474598aab7cc9d8d6cfa06c05bd1b19adbf7f8451dbdd73070b33a6c60b1b90",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.72.Final/netty-resolver-4.1.72.Final.jar",
@@ -7414,7 +7199,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~software_amazon_awssdk_protocol_core_2_17_183",
               "sha256": "10e7c4faa1f05e2d73055d0390dbd0bb6450e2e6cb85beda051b1e4693c826ce",
               "urls": [
                 "https://repo1.maven.org/maven2/software/amazon/awssdk/protocol-core/2.17.183/protocol-core-2.17.183.jar",
@@ -7427,7 +7211,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_squareup_javapoet_1_8_0",
               "sha256": "8e108c92027bb428196f10fa11cffbe589f7648a6af2016d652279385fdfd789",
               "urls": [
                 "https://dl.google.com/android/maven2/com/squareup/javapoet/1.8.0/javapoet-1.8.0.jar",
@@ -7440,7 +7223,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_grpc_grpc_protobuf_lite_1_48_1",
               "sha256": "0a4c735bb80e342d418c0ef7d2add7793aaf72b91c449bde2769ea81f1869737",
               "urls": [
                 "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf-lite/1.48.1/grpc-protobuf-lite-1.48.1.jar"
@@ -7452,7 +7234,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~software_amazon_awssdk_s3_2_17_183",
               "sha256": "ab073b91107a9e4ed9f030314077d137fe627e055ad895fabb036980a050e360",
               "urls": [
                 "https://repo1.maven.org/maven2/software/amazon/awssdk/s3/2.17.183/s3-2.17.183.jar",
@@ -7465,7 +7246,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_squareup_javawriter_2_5_0",
               "sha256": "fcfb09fb0ea0aa97d3cfe7ea792398081348e468f126b3603cb3803f240197f0",
               "urls": [
                 "https://dl.google.com/android/maven2/com/squareup/javawriter/2.5.0/javawriter-2.5.0.jar",
@@ -7478,7 +7258,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_apache_httpcomponents_httpclient_4_5_13",
               "sha256": "6fe9026a566c6a5001608cf3fc32196641f6c1e5e1986d1037ccdbd5f31ef743",
               "urls": [
                 "https://repo1.maven.org/maven2/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar",
@@ -7491,7 +7270,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~net_sf_kxml_kxml2_2_3_0",
               "sha256": "f264dd9f79a1fde10ce5ecc53221eff24be4c9331c830b7d52f2f08a7b633de2",
               "urls": [
                 "https://dl.google.com/android/maven2/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0.jar",
@@ -7504,7 +7282,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_code_gson_gson_2_9_0",
               "sha256": "c96d60551331a196dac54b745aa642cd078ef89b6f267146b705f2c2cbef052d",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/code/gson/gson/2.9.0/gson-2.9.0.jar"
@@ -7516,7 +7293,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_buffer_4_1_72_Final",
               "sha256": "568ff7cd9d8e2284ec980730c88924f686642929f8f219a74518b4e64755f3a1",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.72.Final/netty-buffer-4.1.72.Final.jar",
@@ -7529,7 +7305,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~jakarta_xml_bind_jakarta_xml_bind_api_2_3_2",
               "sha256": "69156304079bdeed9fc0ae3b39389f19b3cc4ba4443bc80508995394ead742ea",
               "urls": [
                 "https://dl.google.com/android/maven2/jakarta/xml/bind/jakarta.xml.bind-api/2.3.2/jakarta.xml.bind-api-2.3.2.jar",
@@ -7542,7 +7317,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_pcollections_pcollections_3_1_4",
               "sha256": "34f579ba075c8da2c8a0fedd0f04e21eac2fb6c660d90d0fabb573e8b4dc6918",
               "urls": [
                 "https://repo1.maven.org/maven2/org/pcollections/pcollections/3.1.4/pcollections-3.1.4.jar"
@@ -7554,7 +7328,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~xerces_xercesImpl_2_12_0",
               "sha256": "b50d3a4ca502faa4d1c838acb8aa9480446953421f7327e338c5dda3da5e76d0",
               "urls": [
                 "https://dl.google.com/android/maven2/xerces/xercesImpl/2.12.0/xercesImpl-2.12.0.jar",
@@ -7567,7 +7340,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_android_tools_analytics_library_tracker_30_1_3",
               "sha256": "c30e3634f83d524680f3aba2861078fb14bd347e6f9f0e5c079fba6142eec7e9",
               "urls": [
                 "https://dl.google.com/android/maven2/com/android/tools/analytics-library/tracker/30.1.3/tracker-30.1.3.jar",
@@ -7580,7 +7352,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_tcnative_boringssl_static_jar_osx_x86_64_2_0_56_Final",
               "sha256": "9a77e8910af04becbdb535592c6a1e1a9accecde522aa1bb925a023c2c59d6dc",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-tcnative-boringssl-static/2.0.56.Final/netty-tcnative-boringssl-static-2.0.56.Final-osx-x86_64.jar"
@@ -7592,7 +7363,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_grpc_grpc_stub_1_48_1",
               "sha256": "6436f19cef264fd949fb7a41e11424e373aa3b1096cad0b7e518f1c81aa60f23",
               "urls": [
                 "https://repo1.maven.org/maven2/io/grpc/grpc-stub/1.48.1/grpc-stub-1.48.1.jar"
@@ -7604,7 +7374,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_slf4j_slf4j_api_1_7_30",
               "sha256": "cdba07964d1bb40a0761485c6b1e8c2f8fd9eb1d19c53928ac0d7f9510105c57",
               "urls": [
                 "https://repo1.maven.org/maven2/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar",
@@ -7617,7 +7386,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_jetbrains_annotations_13_0",
               "sha256": "ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478",
               "urls": [
                 "https://dl.google.com/android/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar",
@@ -7630,7 +7398,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_jvnet_staxex_stax_ex_1_8_1",
               "sha256": "20522549056e9e50aa35ef0b445a2e47a53d06be0b0a9467d704e2483ffb049a",
               "urls": [
                 "https://dl.google.com/android/maven2/org/jvnet/staxex/stax-ex/1.8.1/stax-ex-1.8.1.jar",
@@ -7643,7 +7410,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_api_grpc_proto_google_common_protos_2_0_1",
               "sha256": "5ce71656118618731e34a5d4c61aa3a031be23446dc7de8b5a5e77b66ebcd6ef",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-common-protos/2.0.1/proto-google-common-protos-2.0.1.jar",
@@ -7656,7 +7422,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~commons_logging_commons_logging_1_2",
               "sha256": "daddea1ea0be0f56978ab3006b8ac92834afeefbd9b7e4e6316fca57df0fa636",
               "urls": [
                 "https://dl.google.com/android/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar",
@@ -7669,7 +7434,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_api_client_google_api_client_gson_1_35_2",
               "sha256": "54e5be675e5c2ab0958647fcaa35c14bd8f7c08358c634f5ab786e4ed7268576",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/api-client/google-api-client-gson/1.35.2/google-api-client-gson-1.35.2.jar"
@@ -7681,7 +7445,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_sun_xml_fastinfoset_FastInfoset_1_2_16",
               "sha256": "056f3a1e144409f21ed16afc26805f58e9a21f3fce1543c42d400719d250c511",
               "urls": [
                 "https://dl.google.com/android/maven2/com/sun/xml/fastinfoset/FastInfoset/1.2.16/FastInfoset-1.2.16.jar",
@@ -7694,7 +7457,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_cloud_google_cloud_storage_1_113_4",
               "sha256": "796833e9bdab80c40bbc820e65087eb8f28c6bfbca194d2e3e00d98cb5bc55d6",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/cloud/google-cloud-storage/1.113.4/google-cloud-storage-1.113.4.jar",
@@ -7707,7 +7469,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~commons_io_commons_io_2_4",
               "sha256": "cc6a41dc3eaacc9e440a6bd0d2890b20d36b4ee408fe2d67122f328bb6e01581",
               "urls": [
                 "https://dl.google.com/android/maven2/commons-io/commons-io/2.4/commons-io-2.4.jar",
@@ -7720,7 +7481,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_transport_native_epoll_jar_linux_x86_64_4_1_93_Final",
               "sha256": "f87a502f3d257bc41f80bd0b90c19e6b4a48d0600fb26e7b5d6c2c675680fa0e",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.93.Final/netty-transport-native-epoll-4.1.93.Final-linux-x86_64.jar"
@@ -7732,7 +7492,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_typesafe_netty_netty_reactive_streams_2_0_5",
               "sha256": "f949849fc8ee75fde468ba3a35df2e04577fa31a2940b83b2a7dc9d14dac13d6",
               "urls": [
                 "https://repo1.maven.org/maven2/com/typesafe/netty/netty-reactive-streams/2.0.5/netty-reactive-streams-2.0.5.jar",
@@ -7745,7 +7504,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_github_stephenc_jcip_jcip_annotations_1_0_1",
               "sha256": "4fccff8382aafc589962c4edb262f6aa595e34f1e11e61057d1c6a96e8fc7323",
               "urls": [
                 "https://repo1.maven.org/maven2/com/github/stephenc/jcip/jcip-annotations/1.0-1/jcip-annotations-1.0-1.jar"
@@ -7757,7 +7515,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_typesafe_netty_netty_reactive_streams_http_2_0_5",
               "sha256": "b39224751ad936758176e9d994230380ade5e9079e7c8ad778e3995779bcf303",
               "urls": [
                 "https://repo1.maven.org/maven2/com/typesafe/netty/netty-reactive-streams-http/2.0.5/netty-reactive-streams-http-2.0.5.jar",
@@ -7770,7 +7527,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_api_client_google_api_client_1_35_2",
               "sha256": "f195cd6228d3f99fa7e30ff2dee60ad0f2c7923be31399a7dcdc1abd679aa22e",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/api-client/google-api-client/1.35.2/google-api-client-1.35.2.jar"
@@ -7782,7 +7538,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_ow2_asm_asm_commons_9_2",
               "sha256": "be4ce53138a238bb522cd781cf91f3ba5ce2f6ca93ec62d46a162a127225e0a6",
               "urls": [
                 "https://repo1.maven.org/maven2/org/ow2/asm/asm-commons/9.2/asm-commons-9.2.jar"
@@ -7794,7 +7549,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_ow2_asm_asm_commons_9_1",
               "sha256": "afcb26dc1fc12c0c4a99ada670908dd82e18dfc488caf5ee92546996b470c00c",
               "urls": [
                 "https://dl.google.com/android/maven2/org/ow2/asm/asm-commons/9.1/asm-commons-9.1.jar",
@@ -7807,7 +7561,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_android_tools_dvlib_30_1_3",
               "sha256": "50886691517d30762c571f585a07f384e6a8cca5fcbea9d46660ba078b613bfa",
               "urls": [
                 "https://dl.google.com/android/maven2/com/android/tools/dvlib/30.1.3/dvlib-30.1.3.jar",
@@ -7820,7 +7573,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_threeten_threetenbp_1_5_0",
               "sha256": "dcf9c0f940739f2a825cd8626ff27113459a2f6eb18797c7152f93fff69c264f",
               "urls": [
                 "https://repo1.maven.org/maven2/org/threeten/threetenbp/1.5.0/threetenbp-1.5.0.jar",
@@ -7833,7 +7585,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_reactivex_rxjava3_rxjava_3_1_2",
               "sha256": "8d784075bec0b7c55042c109a4de8923b3b6d2ebd2e00912d518f07240f9c23a",
               "urls": [
                 "https://repo1.maven.org/maven2/io/reactivex/rxjava3/rxjava/3.1.2/rxjava-3.1.2.jar"
@@ -7845,7 +7596,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_android_tools_build_apkzlib_7_1_3",
               "sha256": "5c10846c4a325b4313cdfcb236505ce1defa68f55d1a4259b503be115453c661",
               "urls": [
                 "https://dl.google.com/android/maven2/com/android/tools/build/apkzlib/7.1.3/apkzlib-7.1.3.jar",
@@ -7858,7 +7608,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_github_java_diff_utils_java_diff_utils_4_12",
               "sha256": "9990a2039778f6b4cc94790141c2868864eacee0620c6c459451121a901cd5b5",
               "urls": [
                 "https://repo1.maven.org/maven2/io/github/java-diff-utils/java-diff-utils/4.12/java-diff-utils-4.12.jar"
@@ -7870,7 +7619,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_grpc_grpc_netty_1_48_1",
               "sha256": "2a51593342a2ee4f8f1b946dc48d06b02d0721493238e4ae83d1ad66f8b0c9f4",
               "urls": [
                 "https://repo1.maven.org/maven2/io/grpc/grpc-netty/1.48.1/grpc-netty-1.48.1.jar"
@@ -7879,10 +7627,9 @@
             }
           },
           "maven": {
-            "bzlFile": "@@rules_jvm_external~5.2//:coursier.bzl",
+            "bzlFile": "@@rules_jvm_external~//:coursier.bzl",
             "ruleClassName": "pinned_coursier_fetch",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~maven",
               "repositories": [
                 "{ \"repo_url\": \"https://repo1.maven.org/maven2\" }"
               ],
@@ -8026,7 +7773,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_auto_service_auto_service_1_0",
               "sha256": "4ae44dd05b49a1109a463c0d2aaf920c24f76d1e996bb89f29481c4ff75ec526",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/auto/service/auto-service/1.0/auto-service-1.0.jar"
@@ -8038,7 +7784,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~aopalliance_aopalliance_1_0",
               "sha256": "0addec670fedcd3f113c5c8091d783280d23f75e3acb841b61a9cdb079376a08",
               "urls": [
                 "https://repo1.maven.org/maven2/aopalliance/aopalliance/1.0/aopalliance-1.0.jar"
@@ -8050,7 +7795,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_bouncycastle_bcpkix_jdk15on_1_56",
               "sha256": "7043dee4e9e7175e93e0b36f45b1ec1ecb893c5f755667e8b916eb8dd201c6ca",
               "urls": [
                 "https://dl.google.com/android/maven2/org/bouncycastle/bcpkix-jdk15on/1.56/bcpkix-jdk15on-1.56.jar",
@@ -8063,7 +7807,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_transport_native_unix_common_jar_osx_x86_64_4_1_93_Final",
               "sha256": "deded602209c23f624e9d91f3d4c27cbba9b303e35ea9b4693090d54ac245b6c",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.93.Final/netty-transport-native-unix-common-4.1.93.Final-osx-x86_64.jar"
@@ -8075,7 +7818,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_android_tools_build_builder_test_api_7_1_3",
               "sha256": "6259c32a8602d9a18fc9a5abb274b915dbba32837c5ce91ac07a2d229460078a",
               "urls": [
                 "https://dl.google.com/android/maven2/com/android/tools/build/builder-test-api/7.1.3/builder-test-api-7.1.3.jar",
@@ -8088,7 +7830,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~commons_collections_commons_collections_3_2_2",
               "sha256": "eeeae917917144a68a741d4c0dff66aa5c5c5fd85593ff217bced3fc8ca783b8",
               "urls": [
                 "https://repo1.maven.org/maven2/commons-collections/commons-collections/3.2.2/commons-collections-3.2.2.jar"
@@ -8100,7 +7841,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~software_amazon_awssdk_profiles_2_17_183",
               "sha256": "78833b32fde3f1c5320373b9ea955c1bbc28f2c904010791c4784e610193ee56",
               "urls": [
                 "https://repo1.maven.org/maven2/software/amazon/awssdk/profiles/2.17.183/profiles-2.17.183.jar",
@@ -8113,7 +7853,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_github_eisop_dataflow_errorprone_3_34_0_eisop1",
               "sha256": "89b4f5d2bd5059f067c5982a0e5988b87dfc8a8234795d68c6f3178846de3319",
               "urls": [
                 "https://repo1.maven.org/maven2/io/github/eisop/dataflow-errorprone/3.34.0-eisop1/dataflow-errorprone-3.34.0-eisop1.jar"
@@ -8125,7 +7864,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_api_grpc_proto_google_common_protos_2_9_0",
               "sha256": "0d830380ec66bd7e25eee63aa0a5a08578e46ad187fb72d99b44d9ba22827f91",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-common-protos/2.9.0/proto-google-common-protos-2.9.0.jar"
@@ -8137,7 +7875,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_android_tools_ddms_ddmlib_30_1_3",
               "sha256": "b88ba88a1a8f0156c9a056eb0c83a181321541bdbb78e834bf837fd1dd07e4f3",
               "urls": [
                 "https://dl.google.com/android/maven2/com/android/tools/ddms/ddmlib/30.1.3/ddmlib-30.1.3.jar",
@@ -8150,7 +7887,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_apache_commons_commons_lang3_3_8_1",
               "sha256": "dac807f65b07698ff39b1b07bfef3d87ae3fd46d91bbf8a2bc02b2a831616f68",
               "urls": [
                 "https://repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.8.1/commons-lang3-3.8.1.jar",
@@ -8163,7 +7899,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~software_amazon_awssdk_aws_core_2_17_183",
               "sha256": "bccbdbea689a665a702ff19828662d87fb7fe81529df13f02ef1e4c474ea9f93",
               "urls": [
                 "https://repo1.maven.org/maven2/software/amazon/awssdk/aws-core/2.17.183/aws-core-2.17.183.jar",
@@ -8176,7 +7911,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_api_gax_httpjson_0_77_0",
               "sha256": "fd4dae47fa016d3b26e8d90b67ddc6c23c4c06e8bcdf085c70310ab7ef324bd6",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/api/gax-httpjson/0.77.0/gax-httpjson-0.77.0.jar",
@@ -8189,7 +7923,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_apache_commons_commons_pool2_2_8_0",
               "sha256": "5efa9fbb54a58b1a12205a5fac565f6982abfeb0ff45bdbc318748ef5fd3a3ff",
               "urls": [
                 "https://repo1.maven.org/maven2/org/apache/commons/commons-pool2/2.8.0/commons-pool2-2.8.0.jar"
@@ -8201,7 +7934,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_errorprone_error_prone_annotations_2_11_0",
               "sha256": "721cb91842b46fa056847d104d5225c8b8e1e8b62263b993051e1e5a0137b7ec",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.11.0/error_prone_annotations-2.11.0.jar",
@@ -8214,7 +7946,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_inject_guice_5_1_0",
               "sha256": "4130e50bfac48099c860f0d903b91860c81a249c90f38245f8fed58fc817bc26",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/inject/guice/5.1.0/guice-5.1.0.jar"
@@ -8226,7 +7957,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_codec_socks_4_1_93_Final",
               "sha256": "0ea47b5ba23ca1da8eb9146c8fc755c1271414633b1e2be2ce1df764ba0fff2a",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.93.Final/netty-codec-socks-4.1.93.Final.jar"
@@ -8238,7 +7968,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_auto_value_auto_value_1_8_2",
               "sha256": "2067b788d4c1c96fd621ad861053a5c4d8a801cfafc77fec20d49a6e9340a745",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/auto/value/auto-value/1.8.2/auto-value-1.8.2.jar"
@@ -8250,7 +7979,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_auto_auto_common_1_2_1",
               "sha256": "f43f29fe2a6ebaf04b2598cdeec32a4e346d49a9404e990f5fc19c19f3a28d0e",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/auto/auto-common/1.2.1/auto-common-1.2.1.jar"
@@ -8262,7 +7990,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_transport_native_unix_common_4_1_93_Final",
               "sha256": "774165a1c4dbaacb17f9c1ad666b3569a6a59715ae828e7c3d47703f479a53e7",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.93.Final/netty-transport-native-unix-common-4.1.93.Final.jar"
@@ -8274,7 +8001,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~net_bytebuddy_byte_buddy_1_14_5",
               "sha256": "e99761a526df0fefbbd3fe14436b0f953000cdfa5151dc63c0b18d37d9c46f1c",
               "urls": [
                 "https://repo1.maven.org/maven2/net/bytebuddy/byte-buddy/1.14.5/byte-buddy-1.14.5.jar"
@@ -8286,7 +8012,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_apis_google_api_services_storage_v1_rev20200927_1_30_10",
               "sha256": "52d26a9d105f8d8a0850807285f307a76cea8f3e0cdb2be4d3b15b1adfa77351",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/apis/google-api-services-storage/v1-rev20200927-1.30.10/google-api-services-storage-v1-rev20200927-1.30.10.jar",
@@ -8299,7 +8024,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_api_client_google_api_client_1_30_11",
               "sha256": "ee6f97865cc7de6c7c80955c3f37372cf3887bd75e4fc06f1058a6b4cd9bf4da",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/api-client/google-api-client/1.30.11/google-api-client-1.30.11.jar",
@@ -8312,7 +8036,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_apache_maven_maven_artifact_3_8_6",
               "sha256": "de22a4c6f54fe31276a823b1bbd3adfd6823529e732f431b5eff0852c2b9252b",
               "urls": [
                 "https://repo1.maven.org/maven2/org/apache/maven/maven-artifact/3.8.6/maven-artifact-3.8.6.jar",
@@ -8325,7 +8048,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_auto_value_auto_value_annotations_1_9",
               "sha256": "fa5469f4c44ee598a2d8f033ab0a9dcbc6498a0c5e0c998dfa0c2adf51358044",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/auto/value/auto-value-annotations/1.9/auto-value-annotations-1.9.jar"
@@ -8337,7 +8059,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_errorprone_error_prone_annotations_2_22_0",
               "sha256": "82a027b86541f58d1f9ee020cdf6bebe82acc7a267d3c53a2ea5cd6335932bbd",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.22.0/error_prone_annotations-2.22.0.jar"
@@ -8349,7 +8070,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~software_amazon_awssdk_apache_client_2_17_183",
               "sha256": "78ceae502fce6a97bbe5ff8f6a010a52ab7ea3ae66cb1a4122e18185fce45022",
               "urls": [
                 "https://repo1.maven.org/maven2/software/amazon/awssdk/apache-client/2.17.183/apache-client-2.17.183.jar",
@@ -8362,7 +8082,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~software_amazon_awssdk_arns_2_17_183",
               "sha256": "659a185e191d66c71de81209490e66abeaccae208ea7b2831a738670823447aa",
               "urls": [
                 "https://repo1.maven.org/maven2/software/amazon/awssdk/arns/2.17.183/arns-2.17.183.jar",
@@ -8375,7 +8094,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_jetbrains_kotlin_kotlin_stdlib_common_1_4_32",
               "sha256": "e1ff6f55ee9e7591dcc633f7757bac25a7edb1cc7f738b37ec652f10f66a4145",
               "urls": [
                 "https://dl.google.com/android/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.4.32/kotlin-stdlib-common-1.4.32.jar",
@@ -8388,7 +8106,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_jetbrains_intellij_deps_trove4j_1_0_20181211",
               "sha256": "affb7c85a3c87bdcf69ff1dbb84de11f63dc931293934bc08cd7ab18de083601",
               "urls": [
                 "https://dl.google.com/android/maven2/org/jetbrains/intellij/deps/trove4j/1.0.20181211/trove4j-1.0.20181211.jar",
@@ -8401,7 +8118,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_4_32",
               "sha256": "adc43e54757b106e0cd7b3b7aa257dff471b61efdabe067fc02b2f57e2396262",
               "urls": [
                 "https://dl.google.com/android/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.4.32/kotlin-stdlib-jdk8-1.4.32.jar",
@@ -8414,7 +8130,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~javax_inject_javax_inject_1",
               "sha256": "91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff",
               "urls": [
                 "https://repo1.maven.org/maven2/javax/inject/javax.inject/1/javax.inject-1.jar"
@@ -8426,7 +8141,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~commons_codec_commons_codec_1_11",
               "sha256": "e599d5318e97aa48f42136a2927e6dfa4e8881dff0e6c8e3109ddbbff51d7b7d",
               "urls": [
                 "https://repo1.maven.org/maven2/commons-codec/commons-codec/1.11/commons-codec-1.11.jar",
@@ -8439,7 +8153,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~commons_codec_commons_codec_1_10",
               "sha256": "4241dfa94e711d435f29a4604a3e2de5c4aa3c165e23bd066be6fc1fc4309569",
               "urls": [
                 "https://dl.google.com/android/maven2/commons-codec/commons-codec/1.10/commons-codec-1.10.jar",
@@ -8452,7 +8165,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_android_annotations_4_1_1_4",
               "sha256": "ba734e1e84c09d615af6a09d33034b4f0442f8772dec120efb376d86a565ae15",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar"
@@ -8464,7 +8176,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~xml_apis_xml_apis_1_4_01",
               "sha256": "a840968176645684bb01aed376e067ab39614885f9eee44abe35a5f20ebe7fad",
               "urls": [
                 "https://dl.google.com/android/maven2/xml-apis/xml-apis/1.4.01/xml-apis-1.4.01.jar",
@@ -8477,7 +8188,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_android_tools_build_jetifier_jetifier_core_1_0_0_beta02",
               "sha256": "ef61f84302f8b41dce3858c1fc7e7a90ec74a263a0213b1f65e80c56145a4793",
               "urls": [
                 "https://dl.google.com/android/maven2/com/android/tools/build/jetifier/jetifier-core/1.0.0-beta02/jetifier-core-1.0.0-beta02.jar",
@@ -8490,7 +8200,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~software_amazon_awssdk_json_utils_2_17_183",
               "sha256": "51ab7f550adc06afcb49f5270cdf690f1bfaaee243abaa5d978095e2a1e4e1a5",
               "urls": [
                 "https://repo1.maven.org/maven2/software/amazon/awssdk/json-utils/2.17.183/json-utils-2.17.183.jar",
@@ -8503,7 +8212,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_codehaus_plexus_plexus_utils_3_3_1",
               "sha256": "4b570fcdbe5a894f249d2eb9b929358a9c88c3e548d227a80010461930222f2a",
               "urls": [
                 "https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/3.3.1/plexus-utils-3.3.1.jar",
@@ -8516,7 +8224,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_glassfish_jaxb_txw2_2_3_2",
               "sha256": "4a6a9f483388d461b81aa9a28c685b8b74c0597993bf1884b04eddbca95f48fe",
               "urls": [
                 "https://dl.google.com/android/maven2/org/glassfish/jaxb/txw2/2.3.2/txw2-2.3.2.jar",
@@ -8529,7 +8236,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~org_yaml_snakeyaml_1_28",
               "sha256": "35446a1421435d45e4c6ac0de3b5378527d5cc2446c07183e24447730ce1fffa",
               "urls": [
                 "https://repo1.maven.org/maven2/org/yaml/snakeyaml/1.28/snakeyaml-1.28.jar"
@@ -8541,7 +8247,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~io_netty_netty_transport_native_epoll_jar_linux_aarch_64_4_1_93_Final",
               "sha256": "cca126fd095563fa67288300b6ac2ef4a92e623600e9a3273382211de364695d",
               "urls": [
                 "https://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.93.Final/netty-transport-native-epoll-4.1.93.Final-linux-aarch_64.jar"
@@ -8553,7 +8258,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_android_tools_build_aapt2_proto_7_0_0_beta04_7396180",
               "sha256": "1ca4f1b0f550c6c25f63c1916da84f6e7a92c66b7ad38ab1d5d49a20552a5984",
               "urls": [
                 "https://dl.google.com/android/maven2/com/android/tools/build/aapt2-proto/7.0.0-beta04-7396180/aapt2-proto-7.0.0-beta04-7396180.jar",
@@ -8566,7 +8270,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~com_google_protobuf_protobuf_java_3_13_0",
               "sha256": "97d5b2758408690c0dc276238707492a0b6a4d71206311b6c442cdc26c5973ff",
               "urls": [
                 "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.13.0/protobuf-java-3.13.0.jar",
@@ -8579,7 +8282,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~net_java_dev_jna_jna_5_6_0",
               "sha256": "5557e235a8aa2f9766d5dc609d67948f2a8832c2d796cea9ef1d6cbe0b3b7eaf",
               "urls": [
                 "https://dl.google.com/android/maven2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.jar",
@@ -8592,7 +8294,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_file",
             "attributes": {
-              "name": "rules_jvm_external~5.2~maven~software_amazon_awssdk_sdk_core_2_17_183",
               "sha256": "677e9cc90fdd82c1f40f97b99cb115b13ad6c3f58beeeab1c061af6954d64c77",
               "urls": [
                 "https://repo1.maven.org/maven2/software/amazon/awssdk/sdk-core/2.17.183/sdk-core-2.17.183.jar",
@@ -8604,29 +8305,29 @@
         },
         "recordedRepoMappingEntries": [
           [
-            "rules_jvm_external~5.2",
+            "rules_jvm_external~",
             "bazel_tools",
             "bazel_tools"
           ],
           [
-            "rules_jvm_external~5.2",
+            "rules_jvm_external~",
             "rules_jvm_external",
-            "rules_jvm_external~5.2"
+            "rules_jvm_external~"
           ]
         ]
       }
     },
-    "@@rules_jvm_external~5.2//:non-module-deps.bzl%non_module_deps": {
+    "@@rules_jvm_external~//:non-module-deps.bzl%non_module_deps": {
       "general": {
-        "bzlTransitiveDigest": "zXwz7xFBNBig3QRyd5WAZU3y/6fZvd6jnP6EkJIutS0=",
-        "accumulatedFileDigests": {},
+        "bzlTransitiveDigest": "DqBh3ObkOvjDFKv8VTy6J2qr7hXsJm9/sES7bha7ftA=",
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "io_bazel_rules_kotlin": {
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_jvm_external~5.2~non_module_deps~io_bazel_rules_kotlin",
               "sha256": "946747acdbeae799b085d12b240ec346f775ac65236dfcf18aa0cd7300f6de78",
               "urls": [
                 "https://github.com/bazelbuild/rules_kotlin/releases/download/v1.7.0-RC-2/rules_kotlin_release.tgz"
@@ -8636,26 +8337,26 @@
         },
         "recordedRepoMappingEntries": [
           [
-            "rules_jvm_external~5.2",
+            "rules_jvm_external~",
             "bazel_tools",
             "bazel_tools"
           ]
         ]
       }
     },
-    "@@rules_python~0.26.0//python/extensions:pip.bzl%pip": {
+    "@@rules_python~//python/extensions:pip.bzl%pip": {
       "os:osx,arch:aarch64": {
-        "bzlTransitiveDigest": "2Q6H3h9+kogr9SW/SFMKOX5+pjW4YEdf9qiRMX0IQBw=",
-        "accumulatedFileDigests": {
-          "@@//:requirements.txt": "ff12967a755bb8e9b4c92524f6471a99e14c30474a3d428547c55745ec8f23a0"
+        "bzlTransitiveDigest": "V/mJWEApn8zkI54PHr3DQqQTCCKVab6KCrve7FZ1Nj4=",
+        "recordedFileInputs": {
+          "@@//requirements.txt": "ff12967a755bb8e9b4c92524f6471a99e14c30474a3d428547c55745ec8f23a0"
         },
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "bazel_pip_dev_deps": {
-            "bzlFile": "@@rules_python~0.26.0//python/pip_install:pip_repository.bzl",
+            "bzlFile": "@@rules_python~//python/pip_install:pip_repository.bzl",
             "ruleClassName": "pip_hub_repository_bzlmod",
             "attributes": {
-              "name": "rules_python~0.26.0~pip~bazel_pip_dev_deps",
               "repo_name": "bazel_pip_dev_deps",
               "whl_map": {
                 "bazel_runfiles": [
@@ -8666,15 +8367,14 @@
             }
           },
           "bazel_pip_dev_deps_38_bazel_runfiles": {
-            "bzlFile": "@@rules_python~0.26.0//python/pip_install:pip_repository.bzl",
+            "bzlFile": "@@rules_python~//python/pip_install:pip_repository.bzl",
             "ruleClassName": "whl_library",
             "attributes": {
-              "name": "rules_python~0.26.0~pip~bazel_pip_dev_deps_38_bazel_runfiles",
               "requirement": "bazel-runfiles==0.24.0",
               "repo": "bazel_pip_dev_deps_38",
               "repo_prefix": "bazel_pip_dev_deps_38_",
               "python_interpreter": "",
-              "python_interpreter_target": "@@rules_python~0.26.0~python~python_3_8_aarch64-apple-darwin//:bin/python3",
+              "python_interpreter_target": "@@rules_python~~python~python_3_8_aarch64-apple-darwin//:bin/python3",
               "quiet": true,
               "timeout": 600,
               "isolated": true,
@@ -8688,134 +8388,134 @@
         },
         "recordedRepoMappingEntries": [
           [
-            "bazel_features~1.1.0",
+            "bazel_features~",
             "bazel_features_globals",
-            "bazel_features~1.1.0~version_extension~bazel_features_globals"
+            "bazel_features~~version_extension~bazel_features_globals"
           ],
           [
-            "bazel_features~1.1.0",
+            "bazel_features~",
             "bazel_features_version",
-            "bazel_features~1.1.0~version_extension~bazel_features_version"
+            "bazel_features~~version_extension~bazel_features_version"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "bazel_features",
-            "bazel_features~1.1.0"
+            "bazel_features~"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "bazel_skylib",
-            "bazel_skylib~1.5.0"
+            "bazel_skylib~"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "bazel_tools",
             "bazel_tools"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__build",
-            "rules_python~0.26.0~internal_deps~pypi__build"
+            "rules_python~~internal_deps~pypi__build"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__click",
-            "rules_python~0.26.0~internal_deps~pypi__click"
+            "rules_python~~internal_deps~pypi__click"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__colorama",
-            "rules_python~0.26.0~internal_deps~pypi__colorama"
+            "rules_python~~internal_deps~pypi__colorama"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__importlib_metadata",
-            "rules_python~0.26.0~internal_deps~pypi__importlib_metadata"
+            "rules_python~~internal_deps~pypi__importlib_metadata"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__installer",
-            "rules_python~0.26.0~internal_deps~pypi__installer"
+            "rules_python~~internal_deps~pypi__installer"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__more_itertools",
-            "rules_python~0.26.0~internal_deps~pypi__more_itertools"
+            "rules_python~~internal_deps~pypi__more_itertools"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__packaging",
-            "rules_python~0.26.0~internal_deps~pypi__packaging"
+            "rules_python~~internal_deps~pypi__packaging"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__pep517",
-            "rules_python~0.26.0~internal_deps~pypi__pep517"
+            "rules_python~~internal_deps~pypi__pep517"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__pip",
-            "rules_python~0.26.0~internal_deps~pypi__pip"
+            "rules_python~~internal_deps~pypi__pip"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__pip_tools",
-            "rules_python~0.26.0~internal_deps~pypi__pip_tools"
+            "rules_python~~internal_deps~pypi__pip_tools"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__pyproject_hooks",
-            "rules_python~0.26.0~internal_deps~pypi__pyproject_hooks"
+            "rules_python~~internal_deps~pypi__pyproject_hooks"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__setuptools",
-            "rules_python~0.26.0~internal_deps~pypi__setuptools"
+            "rules_python~~internal_deps~pypi__setuptools"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__tomli",
-            "rules_python~0.26.0~internal_deps~pypi__tomli"
+            "rules_python~~internal_deps~pypi__tomli"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__wheel",
-            "rules_python~0.26.0~internal_deps~pypi__wheel"
+            "rules_python~~internal_deps~pypi__wheel"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__zipp",
-            "rules_python~0.26.0~internal_deps~pypi__zipp"
+            "rules_python~~internal_deps~pypi__zipp"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pythons_hub",
-            "rules_python~0.26.0~python~pythons_hub"
+            "rules_python~~python~pythons_hub"
           ],
           [
-            "rules_python~0.26.0~python~pythons_hub",
+            "rules_python~~python~pythons_hub",
             "python_3_11_aarch64-apple-darwin",
-            "rules_python~0.26.0~python~python_3_11_aarch64-apple-darwin"
+            "rules_python~~python~python_3_11_aarch64-apple-darwin"
           ],
           [
-            "rules_python~0.26.0~python~pythons_hub",
+            "rules_python~~python~pythons_hub",
             "python_3_8_aarch64-apple-darwin",
-            "rules_python~0.26.0~python~python_3_8_aarch64-apple-darwin"
+            "rules_python~~python~python_3_8_aarch64-apple-darwin"
           ]
         ]
       },
-      "os:osx,arch:x86_64": {
-        "bzlTransitiveDigest": "E9m/UFADncm3CKBrsnAfkVQxBz0IsqZ8jnkRQr/RO40=",
-        "accumulatedFileDigests": {
-          "@@//:requirements.txt": "ff12967a755bb8e9b4c92524f6471a99e14c30474a3d428547c55745ec8f23a0"
+      "os:windows,arch:amd64": {
+        "bzlTransitiveDigest": "8m8gxEmSM3y/RtPAp1jOYs+V8swJ5KTtRw96l48hkic=",
+        "recordedFileInputs": {
+          "@@//requirements.txt": "ff12967a755bb8e9b4c92524f6471a99e14c30474a3d428547c55745ec8f23a0"
         },
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "bazel_pip_dev_deps": {
-            "bzlFile": "@@rules_python~0.26.0//python/pip_install:pip_repository.bzl",
+            "bzlFile": "@@rules_python~//python/pip_install:pip_repository.bzl",
             "ruleClassName": "pip_hub_repository_bzlmod",
             "attributes": {
-              "name": "rules_python~0.26.0~pip~bazel_pip_dev_deps",
               "repo_name": "bazel_pip_dev_deps",
               "whl_map": {
                 "bazel_runfiles": [
@@ -8826,15 +8526,14 @@
             }
           },
           "bazel_pip_dev_deps_38_bazel_runfiles": {
-            "bzlFile": "@@rules_python~0.26.0//python/pip_install:pip_repository.bzl",
+            "bzlFile": "@@rules_python~//python/pip_install:pip_repository.bzl",
             "ruleClassName": "whl_library",
             "attributes": {
-              "name": "rules_python~0.26.0~pip~bazel_pip_dev_deps_38_bazel_runfiles",
               "requirement": "bazel-runfiles==0.24.0",
               "repo": "bazel_pip_dev_deps_38",
               "repo_prefix": "bazel_pip_dev_deps_38_",
               "python_interpreter": "",
-              "python_interpreter_target": "@@rules_python~0.26.0~python~python_3_8_x86_64-apple-darwin//:bin/python3",
+              "python_interpreter_target": "@@rules_python~~python~python_3_8_x86_64-pc-windows-msvc//:python.exe",
               "quiet": true,
               "timeout": 600,
               "isolated": true,
@@ -8848,134 +8547,134 @@
         },
         "recordedRepoMappingEntries": [
           [
-            "bazel_features~1.1.0",
+            "bazel_features~",
             "bazel_features_globals",
-            "bazel_features~1.1.0~version_extension~bazel_features_globals"
+            "bazel_features~~version_extension~bazel_features_globals"
           ],
           [
-            "bazel_features~1.1.0",
+            "bazel_features~",
             "bazel_features_version",
-            "bazel_features~1.1.0~version_extension~bazel_features_version"
+            "bazel_features~~version_extension~bazel_features_version"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "bazel_features",
-            "bazel_features~1.1.0"
+            "bazel_features~"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "bazel_skylib",
-            "bazel_skylib~1.5.0"
+            "bazel_skylib~"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "bazel_tools",
             "bazel_tools"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__build",
-            "rules_python~0.26.0~internal_deps~pypi__build"
+            "rules_python~~internal_deps~pypi__build"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__click",
-            "rules_python~0.26.0~internal_deps~pypi__click"
+            "rules_python~~internal_deps~pypi__click"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__colorama",
-            "rules_python~0.26.0~internal_deps~pypi__colorama"
+            "rules_python~~internal_deps~pypi__colorama"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__importlib_metadata",
-            "rules_python~0.26.0~internal_deps~pypi__importlib_metadata"
+            "rules_python~~internal_deps~pypi__importlib_metadata"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__installer",
-            "rules_python~0.26.0~internal_deps~pypi__installer"
+            "rules_python~~internal_deps~pypi__installer"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__more_itertools",
-            "rules_python~0.26.0~internal_deps~pypi__more_itertools"
+            "rules_python~~internal_deps~pypi__more_itertools"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__packaging",
-            "rules_python~0.26.0~internal_deps~pypi__packaging"
+            "rules_python~~internal_deps~pypi__packaging"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__pep517",
-            "rules_python~0.26.0~internal_deps~pypi__pep517"
+            "rules_python~~internal_deps~pypi__pep517"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__pip",
-            "rules_python~0.26.0~internal_deps~pypi__pip"
+            "rules_python~~internal_deps~pypi__pip"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__pip_tools",
-            "rules_python~0.26.0~internal_deps~pypi__pip_tools"
+            "rules_python~~internal_deps~pypi__pip_tools"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__pyproject_hooks",
-            "rules_python~0.26.0~internal_deps~pypi__pyproject_hooks"
+            "rules_python~~internal_deps~pypi__pyproject_hooks"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__setuptools",
-            "rules_python~0.26.0~internal_deps~pypi__setuptools"
+            "rules_python~~internal_deps~pypi__setuptools"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__tomli",
-            "rules_python~0.26.0~internal_deps~pypi__tomli"
+            "rules_python~~internal_deps~pypi__tomli"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__wheel",
-            "rules_python~0.26.0~internal_deps~pypi__wheel"
+            "rules_python~~internal_deps~pypi__wheel"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__zipp",
-            "rules_python~0.26.0~internal_deps~pypi__zipp"
+            "rules_python~~internal_deps~pypi__zipp"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pythons_hub",
-            "rules_python~0.26.0~python~pythons_hub"
+            "rules_python~~python~pythons_hub"
           ],
           [
-            "rules_python~0.26.0~python~pythons_hub",
-            "python_3_11_x86_64-apple-darwin",
-            "rules_python~0.26.0~python~python_3_11_x86_64-apple-darwin"
+            "rules_python~~python~pythons_hub",
+            "python_3_11_x86_64-pc-windows-msvc",
+            "rules_python~~python~python_3_11_x86_64-pc-windows-msvc"
           ],
           [
-            "rules_python~0.26.0~python~pythons_hub",
-            "python_3_8_x86_64-apple-darwin",
-            "rules_python~0.26.0~python~python_3_8_x86_64-apple-darwin"
+            "rules_python~~python~pythons_hub",
+            "python_3_8_x86_64-pc-windows-msvc",
+            "rules_python~~python~python_3_8_x86_64-pc-windows-msvc"
           ]
         ]
       },
-      "os:windows,arch:amd64": {
-        "bzlTransitiveDigest": "QSSju3r1BqdiBI2rQ5F0t+LW+/VktSbD2ScOupIGWT4=",
-        "accumulatedFileDigests": {
-          "@@//:requirements.txt": "ff12967a755bb8e9b4c92524f6471a99e14c30474a3d428547c55745ec8f23a0"
+      "os:linux,arch:amd64": {
+        "bzlTransitiveDigest": "sBI+YA5K6wPfH6tuVyLhRwgswRsEs79OpYRdbKNukwQ=",
+        "recordedFileInputs": {
+          "@@//requirements.txt": "ff12967a755bb8e9b4c92524f6471a99e14c30474a3d428547c55745ec8f23a0"
         },
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "bazel_pip_dev_deps": {
-            "bzlFile": "@@rules_python~0.26.0//python/pip_install:pip_repository.bzl",
+            "bzlFile": "@@rules_python~//python/pip_install:pip_repository.bzl",
             "ruleClassName": "pip_hub_repository_bzlmod",
             "attributes": {
-              "name": "rules_python~0.26.0~pip~bazel_pip_dev_deps",
               "repo_name": "bazel_pip_dev_deps",
               "whl_map": {
                 "bazel_runfiles": [
@@ -8986,15 +8685,14 @@
             }
           },
           "bazel_pip_dev_deps_38_bazel_runfiles": {
-            "bzlFile": "@@rules_python~0.26.0//python/pip_install:pip_repository.bzl",
+            "bzlFile": "@@rules_python~//python/pip_install:pip_repository.bzl",
             "ruleClassName": "whl_library",
             "attributes": {
-              "name": "rules_python~0.26.0~pip~bazel_pip_dev_deps_38_bazel_runfiles",
               "requirement": "bazel-runfiles==0.24.0",
               "repo": "bazel_pip_dev_deps_38",
               "repo_prefix": "bazel_pip_dev_deps_38_",
               "python_interpreter": "",
-              "python_interpreter_target": "@@rules_python~0.26.0~python~python_3_8_x86_64-pc-windows-msvc//:python.exe",
+              "python_interpreter_target": "@@rules_python~~python~python_3_8_x86_64-unknown-linux-gnu//:bin/python3",
               "quiet": true,
               "timeout": 600,
               "isolated": true,
@@ -9008,134 +8706,134 @@
         },
         "recordedRepoMappingEntries": [
           [
-            "bazel_features~1.1.0",
+            "bazel_features~",
             "bazel_features_globals",
-            "bazel_features~1.1.0~version_extension~bazel_features_globals"
+            "bazel_features~~version_extension~bazel_features_globals"
           ],
           [
-            "bazel_features~1.1.0",
+            "bazel_features~",
             "bazel_features_version",
-            "bazel_features~1.1.0~version_extension~bazel_features_version"
+            "bazel_features~~version_extension~bazel_features_version"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "bazel_features",
-            "bazel_features~1.1.0"
+            "bazel_features~"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "bazel_skylib",
-            "bazel_skylib~1.5.0"
+            "bazel_skylib~"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "bazel_tools",
             "bazel_tools"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__build",
-            "rules_python~0.26.0~internal_deps~pypi__build"
+            "rules_python~~internal_deps~pypi__build"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__click",
-            "rules_python~0.26.0~internal_deps~pypi__click"
+            "rules_python~~internal_deps~pypi__click"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__colorama",
-            "rules_python~0.26.0~internal_deps~pypi__colorama"
+            "rules_python~~internal_deps~pypi__colorama"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__importlib_metadata",
-            "rules_python~0.26.0~internal_deps~pypi__importlib_metadata"
+            "rules_python~~internal_deps~pypi__importlib_metadata"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__installer",
-            "rules_python~0.26.0~internal_deps~pypi__installer"
+            "rules_python~~internal_deps~pypi__installer"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__more_itertools",
-            "rules_python~0.26.0~internal_deps~pypi__more_itertools"
+            "rules_python~~internal_deps~pypi__more_itertools"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__packaging",
-            "rules_python~0.26.0~internal_deps~pypi__packaging"
+            "rules_python~~internal_deps~pypi__packaging"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__pep517",
-            "rules_python~0.26.0~internal_deps~pypi__pep517"
+            "rules_python~~internal_deps~pypi__pep517"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__pip",
-            "rules_python~0.26.0~internal_deps~pypi__pip"
+            "rules_python~~internal_deps~pypi__pip"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__pip_tools",
-            "rules_python~0.26.0~internal_deps~pypi__pip_tools"
+            "rules_python~~internal_deps~pypi__pip_tools"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__pyproject_hooks",
-            "rules_python~0.26.0~internal_deps~pypi__pyproject_hooks"
+            "rules_python~~internal_deps~pypi__pyproject_hooks"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__setuptools",
-            "rules_python~0.26.0~internal_deps~pypi__setuptools"
+            "rules_python~~internal_deps~pypi__setuptools"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__tomli",
-            "rules_python~0.26.0~internal_deps~pypi__tomli"
+            "rules_python~~internal_deps~pypi__tomli"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__wheel",
-            "rules_python~0.26.0~internal_deps~pypi__wheel"
+            "rules_python~~internal_deps~pypi__wheel"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__zipp",
-            "rules_python~0.26.0~internal_deps~pypi__zipp"
+            "rules_python~~internal_deps~pypi__zipp"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pythons_hub",
-            "rules_python~0.26.0~python~pythons_hub"
+            "rules_python~~python~pythons_hub"
           ],
           [
-            "rules_python~0.26.0~python~pythons_hub",
-            "python_3_11_x86_64-pc-windows-msvc",
-            "rules_python~0.26.0~python~python_3_11_x86_64-pc-windows-msvc"
+            "rules_python~~python~pythons_hub",
+            "python_3_11_x86_64-unknown-linux-gnu",
+            "rules_python~~python~python_3_11_x86_64-unknown-linux-gnu"
           ],
           [
-            "rules_python~0.26.0~python~pythons_hub",
-            "python_3_8_x86_64-pc-windows-msvc",
-            "rules_python~0.26.0~python~python_3_8_x86_64-pc-windows-msvc"
+            "rules_python~~python~pythons_hub",
+            "python_3_8_x86_64-unknown-linux-gnu",
+            "rules_python~~python~python_3_8_x86_64-unknown-linux-gnu"
           ]
         ]
       },
-      "os:linux,arch:amd64": {
-        "bzlTransitiveDigest": "aOMK5S3yh0GqKqizev0aeyRIiUVXUnJ9qs4MjoGIsmU=",
-        "accumulatedFileDigests": {
-          "@@//:requirements.txt": "ff12967a755bb8e9b4c92524f6471a99e14c30474a3d428547c55745ec8f23a0"
+      "os:osx,arch:x86_64": {
+        "bzlTransitiveDigest": "4qX9XayUU4+ssvkUImaig9sNH2WtD/3dpOpLKPS713E=",
+        "recordedFileInputs": {
+          "@@//requirements.txt": "ff12967a755bb8e9b4c92524f6471a99e14c30474a3d428547c55745ec8f23a0"
         },
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "bazel_pip_dev_deps": {
-            "bzlFile": "@@rules_python~0.26.0//python/pip_install:pip_repository.bzl",
+            "bzlFile": "@@rules_python~//python/pip_install:pip_repository.bzl",
             "ruleClassName": "pip_hub_repository_bzlmod",
             "attributes": {
-              "name": "rules_python~0.26.0~pip~bazel_pip_dev_deps",
               "repo_name": "bazel_pip_dev_deps",
               "whl_map": {
                 "bazel_runfiles": [
@@ -9146,15 +8844,14 @@
             }
           },
           "bazel_pip_dev_deps_38_bazel_runfiles": {
-            "bzlFile": "@@rules_python~0.26.0//python/pip_install:pip_repository.bzl",
+            "bzlFile": "@@rules_python~//python/pip_install:pip_repository.bzl",
             "ruleClassName": "whl_library",
             "attributes": {
-              "name": "rules_python~0.26.0~pip~bazel_pip_dev_deps_38_bazel_runfiles",
               "requirement": "bazel-runfiles==0.24.0",
               "repo": "bazel_pip_dev_deps_38",
               "repo_prefix": "bazel_pip_dev_deps_38_",
               "python_interpreter": "",
-              "python_interpreter_target": "@@rules_python~0.26.0~python~python_3_8_x86_64-unknown-linux-gnu//:bin/python3",
+              "python_interpreter_target": "@@rules_python~~python~python_3_8_x86_64-apple-darwin//:bin/python3",
               "quiet": true,
               "timeout": 600,
               "isolated": true,
@@ -9168,134 +8865,134 @@
         },
         "recordedRepoMappingEntries": [
           [
-            "bazel_features~1.1.0",
+            "bazel_features~",
             "bazel_features_globals",
-            "bazel_features~1.1.0~version_extension~bazel_features_globals"
+            "bazel_features~~version_extension~bazel_features_globals"
           ],
           [
-            "bazel_features~1.1.0",
+            "bazel_features~",
             "bazel_features_version",
-            "bazel_features~1.1.0~version_extension~bazel_features_version"
+            "bazel_features~~version_extension~bazel_features_version"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "bazel_features",
-            "bazel_features~1.1.0"
+            "bazel_features~"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "bazel_skylib",
-            "bazel_skylib~1.5.0"
+            "bazel_skylib~"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "bazel_tools",
             "bazel_tools"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__build",
-            "rules_python~0.26.0~internal_deps~pypi__build"
+            "rules_python~~internal_deps~pypi__build"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__click",
-            "rules_python~0.26.0~internal_deps~pypi__click"
+            "rules_python~~internal_deps~pypi__click"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__colorama",
-            "rules_python~0.26.0~internal_deps~pypi__colorama"
+            "rules_python~~internal_deps~pypi__colorama"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__importlib_metadata",
-            "rules_python~0.26.0~internal_deps~pypi__importlib_metadata"
+            "rules_python~~internal_deps~pypi__importlib_metadata"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__installer",
-            "rules_python~0.26.0~internal_deps~pypi__installer"
+            "rules_python~~internal_deps~pypi__installer"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__more_itertools",
-            "rules_python~0.26.0~internal_deps~pypi__more_itertools"
+            "rules_python~~internal_deps~pypi__more_itertools"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__packaging",
-            "rules_python~0.26.0~internal_deps~pypi__packaging"
+            "rules_python~~internal_deps~pypi__packaging"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__pep517",
-            "rules_python~0.26.0~internal_deps~pypi__pep517"
+            "rules_python~~internal_deps~pypi__pep517"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__pip",
-            "rules_python~0.26.0~internal_deps~pypi__pip"
+            "rules_python~~internal_deps~pypi__pip"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__pip_tools",
-            "rules_python~0.26.0~internal_deps~pypi__pip_tools"
+            "rules_python~~internal_deps~pypi__pip_tools"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__pyproject_hooks",
-            "rules_python~0.26.0~internal_deps~pypi__pyproject_hooks"
+            "rules_python~~internal_deps~pypi__pyproject_hooks"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__setuptools",
-            "rules_python~0.26.0~internal_deps~pypi__setuptools"
+            "rules_python~~internal_deps~pypi__setuptools"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__tomli",
-            "rules_python~0.26.0~internal_deps~pypi__tomli"
+            "rules_python~~internal_deps~pypi__tomli"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__wheel",
-            "rules_python~0.26.0~internal_deps~pypi__wheel"
+            "rules_python~~internal_deps~pypi__wheel"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pypi__zipp",
-            "rules_python~0.26.0~internal_deps~pypi__zipp"
+            "rules_python~~internal_deps~pypi__zipp"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "pythons_hub",
-            "rules_python~0.26.0~python~pythons_hub"
+            "rules_python~~python~pythons_hub"
           ],
           [
-            "rules_python~0.26.0~python~pythons_hub",
-            "python_3_11_x86_64-unknown-linux-gnu",
-            "rules_python~0.26.0~python~python_3_11_x86_64-unknown-linux-gnu"
+            "rules_python~~python~pythons_hub",
+            "python_3_11_x86_64-apple-darwin",
+            "rules_python~~python~python_3_11_x86_64-apple-darwin"
           ],
           [
-            "rules_python~0.26.0~python~pythons_hub",
-            "python_3_8_x86_64-unknown-linux-gnu",
-            "rules_python~0.26.0~python~python_3_8_x86_64-unknown-linux-gnu"
+            "rules_python~~python~pythons_hub",
+            "python_3_8_x86_64-apple-darwin",
+            "rules_python~~python~python_3_8_x86_64-apple-darwin"
           ]
         ]
       }
     },
-    "@@rules_python~0.26.0//python/extensions:python.bzl%python": {
+    "@@rules_python~//python/extensions:python.bzl%python": {
       "general": {
-        "bzlTransitiveDigest": "8WVQIVnIXBFr70L5lVEwzdfZo6ozRWUK790TujH0YSE=",
-        "accumulatedFileDigests": {},
+        "bzlTransitiveDigest": "CTlgB1kgpACRR86vMKUCvV1re9yIbHoFbQxl5Idc1zI=",
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "python_3_11_s390x-unknown-linux-gnu": {
-            "bzlFile": "@@rules_python~0.26.0//python:repositories.bzl",
+            "bzlFile": "@@rules_python~//python:repositories.bzl",
             "ruleClassName": "python_repository",
             "attributes": {
-              "name": "rules_python~0.26.0~python~python_3_11_s390x-unknown-linux-gnu",
               "sha256": "f9f19823dba3209cedc4647b00f46ed0177242917db20fb7fb539970e384531c",
               "patches": [],
               "platform": "s390x-unknown-linux-gnu",
@@ -9311,10 +9008,9 @@
             }
           },
           "python_3_8_aarch64-apple-darwin": {
-            "bzlFile": "@@rules_python~0.26.0//python:repositories.bzl",
+            "bzlFile": "@@rules_python~//python:repositories.bzl",
             "ruleClassName": "python_repository",
             "attributes": {
-              "name": "rules_python~0.26.0~python~python_3_8_aarch64-apple-darwin",
               "sha256": "1825b1f7220bc93ff143f2e70b5c6a79c6469e0eeb40824e07a7277f59aabfda",
               "patches": [],
               "platform": "aarch64-apple-darwin",
@@ -9330,10 +9026,9 @@
             }
           },
           "python_3_11_aarch64-unknown-linux-gnu": {
-            "bzlFile": "@@rules_python~0.26.0//python:repositories.bzl",
+            "bzlFile": "@@rules_python~//python:repositories.bzl",
             "ruleClassName": "python_repository",
             "attributes": {
-              "name": "rules_python~0.26.0~python~python_3_11_aarch64-unknown-linux-gnu",
               "sha256": "3e26a672df17708c4dc928475a5974c3fb3a34a9b45c65fb4bd1e50504cc84ec",
               "patches": [],
               "platform": "aarch64-unknown-linux-gnu",
@@ -9349,10 +9044,9 @@
             }
           },
           "python_3_11_aarch64-apple-darwin": {
-            "bzlFile": "@@rules_python~0.26.0//python:repositories.bzl",
+            "bzlFile": "@@rules_python~//python:repositories.bzl",
             "ruleClassName": "python_repository",
             "attributes": {
-              "name": "rules_python~0.26.0~python~python_3_11_aarch64-apple-darwin",
               "sha256": "916c35125b5d8323a21526d7a9154ca626453f63d0878e95b9f613a95006c990",
               "patches": [],
               "platform": "aarch64-apple-darwin",
@@ -9368,10 +9062,9 @@
             }
           },
           "pythons_hub": {
-            "bzlFile": "@@rules_python~0.26.0//python/extensions/private:pythons_hub.bzl",
+            "bzlFile": "@@rules_python~//python/extensions/private:pythons_hub.bzl",
             "ruleClassName": "hub_repo",
             "attributes": {
-              "name": "rules_python~0.26.0~python~pythons_hub",
               "default_python_version": "3.8",
               "toolchain_prefixes": [
                 "_0000_python_3_11_",
@@ -9392,10 +9085,9 @@
             }
           },
           "python_3_8_aarch64-unknown-linux-gnu": {
-            "bzlFile": "@@rules_python~0.26.0//python:repositories.bzl",
+            "bzlFile": "@@rules_python~//python:repositories.bzl",
             "ruleClassName": "python_repository",
             "attributes": {
-              "name": "rules_python~0.26.0~python~python_3_8_aarch64-unknown-linux-gnu",
               "sha256": "236a300f386ead02ca98dbddbc026ff4ef4de6701a394106e291ff8b75445ee1",
               "patches": [],
               "platform": "aarch64-unknown-linux-gnu",
@@ -9411,19 +9103,17 @@
             }
           },
           "python_3_8": {
-            "bzlFile": "@@rules_python~0.26.0//python/private:toolchains_repo.bzl",
+            "bzlFile": "@@rules_python~//python/private:toolchains_repo.bzl",
             "ruleClassName": "toolchain_aliases",
             "attributes": {
-              "name": "rules_python~0.26.0~python~python_3_8",
               "python_version": "3.8.18",
               "user_repository_name": "python_3_8"
             }
           },
           "python_3_11_x86_64-pc-windows-msvc": {
-            "bzlFile": "@@rules_python~0.26.0//python:repositories.bzl",
+            "bzlFile": "@@rules_python~//python:repositories.bzl",
             "ruleClassName": "python_repository",
             "attributes": {
-              "name": "rules_python~0.26.0~python~python_3_11_x86_64-pc-windows-msvc",
               "sha256": "3933545e6d41462dd6a47e44133ea40995bc6efeed8c2e4cbdf1a699303e95ea",
               "patches": [],
               "platform": "x86_64-pc-windows-msvc",
@@ -9439,10 +9129,9 @@
             }
           },
           "python_3_8_x86_64-apple-darwin": {
-            "bzlFile": "@@rules_python~0.26.0//python:repositories.bzl",
+            "bzlFile": "@@rules_python~//python:repositories.bzl",
             "ruleClassName": "python_repository",
             "attributes": {
-              "name": "rules_python~0.26.0~python~python_3_8_x86_64-apple-darwin",
               "sha256": "fcf04532e644644213977242cd724fe5e84c0a5ac92ae038e07f1b01b474fca3",
               "patches": [],
               "platform": "x86_64-apple-darwin",
@@ -9458,10 +9147,9 @@
             }
           },
           "python_3_8_x86_64-pc-windows-msvc": {
-            "bzlFile": "@@rules_python~0.26.0//python:repositories.bzl",
+            "bzlFile": "@@rules_python~//python:repositories.bzl",
             "ruleClassName": "python_repository",
             "attributes": {
-              "name": "rules_python~0.26.0~python~python_3_8_x86_64-pc-windows-msvc",
               "sha256": "a9d203e78caed94de368d154e841610cef6f6b484738573f4ae9059d37e898a5",
               "patches": [],
               "platform": "x86_64-pc-windows-msvc",
@@ -9477,19 +9165,17 @@
             }
           },
           "python_3_11": {
-            "bzlFile": "@@rules_python~0.26.0//python/private:toolchains_repo.bzl",
+            "bzlFile": "@@rules_python~//python/private:toolchains_repo.bzl",
             "ruleClassName": "toolchain_aliases",
             "attributes": {
-              "name": "rules_python~0.26.0~python~python_3_11",
               "python_version": "3.11.6",
               "user_repository_name": "python_3_11"
             }
           },
           "python_3_11_ppc64le-unknown-linux-gnu": {
-            "bzlFile": "@@rules_python~0.26.0//python:repositories.bzl",
+            "bzlFile": "@@rules_python~//python:repositories.bzl",
             "ruleClassName": "python_repository",
             "attributes": {
-              "name": "rules_python~0.26.0~python~python_3_11_ppc64le-unknown-linux-gnu",
               "sha256": "7937035f690a624dba4d014ffd20c342e843dd46f89b0b0a1e5726b85deb8eaf",
               "patches": [],
               "platform": "ppc64le-unknown-linux-gnu",
@@ -9505,10 +9191,9 @@
             }
           },
           "python_3_11_x86_64-apple-darwin": {
-            "bzlFile": "@@rules_python~0.26.0//python:repositories.bzl",
+            "bzlFile": "@@rules_python~//python:repositories.bzl",
             "ruleClassName": "python_repository",
             "attributes": {
-              "name": "rules_python~0.26.0~python~python_3_11_x86_64-apple-darwin",
               "sha256": "178cb1716c2abc25cb56ae915096c1a083e60abeba57af001996e8bc6ce1a371",
               "patches": [],
               "platform": "x86_64-apple-darwin",
@@ -9524,10 +9209,9 @@
             }
           },
           "python_versions": {
-            "bzlFile": "@@rules_python~0.26.0//python/private:toolchains_repo.bzl",
+            "bzlFile": "@@rules_python~//python/private:toolchains_repo.bzl",
             "ruleClassName": "multi_toolchain_aliases",
             "attributes": {
-              "name": "rules_python~0.26.0~python~python_versions",
               "python_versions": {
                 "3.8": "python_3_8",
                 "3.11": "python_3_11"
@@ -9535,10 +9219,9 @@
             }
           },
           "python_3_8_x86_64-unknown-linux-gnu": {
-            "bzlFile": "@@rules_python~0.26.0//python:repositories.bzl",
+            "bzlFile": "@@rules_python~//python:repositories.bzl",
             "ruleClassName": "python_repository",
             "attributes": {
-              "name": "rules_python~0.26.0~python~python_3_8_x86_64-unknown-linux-gnu",
               "sha256": "1e8a3babd1500111359b0f5675d770984bcbcb2cc8890b117394f0ed342fb9ec",
               "patches": [],
               "platform": "x86_64-unknown-linux-gnu",
@@ -9554,10 +9237,9 @@
             }
           },
           "python_3_11_x86_64-unknown-linux-gnu": {
-            "bzlFile": "@@rules_python~0.26.0//python:repositories.bzl",
+            "bzlFile": "@@rules_python~//python:repositories.bzl",
             "ruleClassName": "python_repository",
             "attributes": {
-              "name": "rules_python~0.26.0~python~python_3_11_x86_64-unknown-linux-gnu",
               "sha256": "ee37a7eae6e80148c7e3abc56e48a397c1664f044920463ad0df0fc706eacea8",
               "patches": [],
               "platform": "x86_64-unknown-linux-gnu",
@@ -9575,24 +9257,24 @@
         },
         "recordedRepoMappingEntries": [
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "bazel_tools",
             "bazel_tools"
           ]
         ]
       }
     },
-    "@@rules_python~0.26.0//python/extensions/private:internal_deps.bzl%internal_deps": {
+    "@@rules_python~//python/extensions/private:internal_deps.bzl%internal_deps": {
       "general": {
-        "bzlTransitiveDigest": "XP8MssHdcgRUzPajlA0Te3SmGmjfmGdDZ8HceIw8FTQ=",
-        "accumulatedFileDigests": {},
+        "bzlTransitiveDigest": "ne6idUaoP4SJ3e18pSCQ6R4ugdw8ElmkOXa9kpkE0M4=",
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
           "pypi__wheel": {
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_python~0.26.0~internal_deps~pypi__wheel",
               "url": "https://files.pythonhosted.org/packages/b8/8b/31273bf66016be6ad22bb7345c37ff350276cfd46e389a0c2ac5da9d9073/wheel-0.41.2-py3-none-any.whl",
               "sha256": "75909db2664838d015e3d9139004ee16711748a52c8f336b52882266540215d8",
               "type": "zip",
@@ -9603,7 +9285,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_python~0.26.0~internal_deps~pypi__click",
               "url": "https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl",
               "sha256": "ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28",
               "type": "zip",
@@ -9614,7 +9295,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_python~0.26.0~internal_deps~pypi__importlib_metadata",
               "url": "https://files.pythonhosted.org/packages/cc/37/db7ba97e676af155f5fcb1a35466f446eadc9104e25b83366e8088c9c926/importlib_metadata-6.8.0-py3-none-any.whl",
               "sha256": "3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb",
               "type": "zip",
@@ -9625,7 +9305,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_python~0.26.0~internal_deps~pypi__pyproject_hooks",
               "url": "https://files.pythonhosted.org/packages/d5/ea/9ae603de7fbb3df820b23a70f6aff92bf8c7770043254ad8d2dc9d6bcba4/pyproject_hooks-1.0.0-py3-none-any.whl",
               "sha256": "283c11acd6b928d2f6a7c73fa0d01cb2bdc5f07c57a2eeb6e83d5e56b97976f8",
               "type": "zip",
@@ -9636,7 +9315,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_python~0.26.0~internal_deps~pypi__pep517",
               "url": "https://files.pythonhosted.org/packages/ee/2f/ef63e64e9429111e73d3d6cbee80591672d16f2725e648ebc52096f3d323/pep517-0.13.0-py3-none-any.whl",
               "sha256": "4ba4446d80aed5b5eac6509ade100bff3e7943a8489de249654a5ae9b33ee35b",
               "type": "zip",
@@ -9647,7 +9325,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_python~0.26.0~internal_deps~pypi__packaging",
               "url": "https://files.pythonhosted.org/packages/ab/c3/57f0601a2d4fe15de7a553c00adbc901425661bf048f2a22dfc500caf121/packaging-23.1-py3-none-any.whl",
               "sha256": "994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61",
               "type": "zip",
@@ -9658,7 +9335,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_python~0.26.0~internal_deps~pypi__pip_tools",
               "url": "https://files.pythonhosted.org/packages/e8/df/47e6267c6b5cdae867adbdd84b437393e6202ce4322de0a5e0b92960e1d6/pip_tools-7.3.0-py3-none-any.whl",
               "sha256": "8717693288720a8c6ebd07149c93ab0be1fced0b5191df9e9decd3263e20d85e",
               "type": "zip",
@@ -9669,7 +9345,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_python~0.26.0~internal_deps~pypi__setuptools",
               "url": "https://files.pythonhosted.org/packages/4f/ab/0bcfebdfc3bfa8554b2b2c97a555569c4c1ebc74ea288741ea8326c51906/setuptools-68.1.2-py3-none-any.whl",
               "sha256": "3d8083eed2d13afc9426f227b24fd1659489ec107c0e86cec2ffdde5c92e790b",
               "type": "zip",
@@ -9680,7 +9355,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_python~0.26.0~internal_deps~pypi__zipp",
               "url": "https://files.pythonhosted.org/packages/8c/08/d3006317aefe25ea79d3b76c9650afabaf6d63d1c8443b236e7405447503/zipp-3.16.2-py3-none-any.whl",
               "sha256": "679e51dd4403591b2d6838a48de3d283f3d188412a9782faadf845f298736ba0",
               "type": "zip",
@@ -9691,7 +9365,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_python~0.26.0~internal_deps~pypi__colorama",
               "url": "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl",
               "sha256": "4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6",
               "type": "zip",
@@ -9702,7 +9375,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_python~0.26.0~internal_deps~pypi__build",
               "url": "https://files.pythonhosted.org/packages/58/91/17b00d5fac63d3dca605f1b8269ba3c65e98059e1fd99d00283e42a454f0/build-0.10.0-py3-none-any.whl",
               "sha256": "af266720050a66c893a6096a2f410989eeac74ff9a68ba194b3f6473e8e26171",
               "type": "zip",
@@ -9710,17 +9382,14 @@
             }
           },
           "rules_python_internal": {
-            "bzlFile": "@@rules_python~0.26.0//python/private:internal_config_repo.bzl",
+            "bzlFile": "@@rules_python~//python/private:internal_config_repo.bzl",
             "ruleClassName": "internal_config_repo",
-            "attributes": {
-              "name": "rules_python~0.26.0~internal_deps~rules_python_internal"
-            }
+            "attributes": {}
           },
           "pypi__pip": {
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_python~0.26.0~internal_deps~pypi__pip",
               "url": "https://files.pythonhosted.org/packages/50/c2/e06851e8cc28dcad7c155f4753da8833ac06a5c704c109313b8d5a62968a/pip-23.2.1-py3-none-any.whl",
               "sha256": "7ccf472345f20d35bdc9d1841ff5f313260c2c33fe417f48c30ac46cccabf5be",
               "type": "zip",
@@ -9731,7 +9400,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_python~0.26.0~internal_deps~pypi__installer",
               "url": "https://files.pythonhosted.org/packages/e5/ca/1172b6638d52f2d6caa2dd262ec4c811ba59eee96d54a7701930726bce18/installer-0.7.0-py3-none-any.whl",
               "sha256": "05d1933f0a5ba7d8d6296bb6d5018e7c94fa473ceb10cf198a92ccea19c27b53",
               "type": "zip",
@@ -9742,7 +9410,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_python~0.26.0~internal_deps~pypi__more_itertools",
               "url": "https://files.pythonhosted.org/packages/5a/cb/6dce742ea14e47d6f565589e859ad225f2a5de576d7696e0623b784e226b/more_itertools-10.1.0-py3-none-any.whl",
               "sha256": "64e0735fcfdc6f3464ea133afe8ea4483b1c5fe3a3d69852e6503b43a0b222e6",
               "type": "zip",
@@ -9753,7 +9420,6 @@
             "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
             "ruleClassName": "http_archive",
             "attributes": {
-              "name": "rules_python~0.26.0~internal_deps~pypi__tomli",
               "url": "https://files.pythonhosted.org/packages/97/75/10a9ebee3fd790d20926a90a2547f0bf78f371b2f13aa822c759680ca7b9/tomli-2.0.1-py3-none-any.whl",
               "sha256": "939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc",
               "type": "zip",
@@ -9763,12 +9429,12 @@
         },
         "recordedRepoMappingEntries": [
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "bazel_skylib",
-            "bazel_skylib~1.5.0"
+            "bazel_skylib~"
           ],
           [
-            "rules_python~0.26.0",
+            "rules_python~",
             "bazel_tools",
             "bazel_tools"
           ]
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_7/bazel-repository-cache.nix b/pkgs/development/tools/build-managers/bazel/bazel_7/bazel-repository-cache.nix
index 7ca026d0ada5a..392737af0efed 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_7/bazel-repository-cache.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_7/bazel-repository-cache.nix
@@ -12,23 +12,45 @@ let
   modules = builtins.fromJSON (builtins.readFile lockfile);
   modulesVersion = modules.lockFileVersion;
 
-  # a foldl' for json values
-  foldlJSON = op: acc: value:
-    let
-      # preorder, visit the current node first
-      acc' = op acc value;
+  # A foldl' for moduleDepGraph repoSpecs.
+  # We take any RepoSpec object under .moduleDepGraph.<moduleName>.repoSpec
+  foldlModuleDepGraph = op: acc: value:
+    if builtins.isAttrs value && value ? moduleDepGraph && builtins.isAttrs value.moduleDepGraph
+    then
+      lib.foldlAttrs
+        (_acc: moduleDepGraphName: module: (
+          if builtins.isAttrs module && module ? repoSpec
+          then op _acc { inherit moduleDepGraphName; } module.repoSpec
+          else _acc
+        ))
+        acc
+        value.moduleDepGraph
+    else acc;
 
-      # then visit child values, ignoring attribute names
-      children =
-        if builtins.isList value then
-          lib.foldl' (foldlJSON op) acc' value
-        else if builtins.isAttrs value then
-          lib.foldlAttrs (_acc: _name: foldlJSON op _acc) acc' value
-        else
-          acc';
-    in
-    # like foldl', force evaluation of intermediate results
-    builtins.seq acc' children;
+  # a foldl' for moduleExtensions generatedRepoSpecs
+  # We take any RepoSpec object under .moduleExtensions.<moduleExtensionName>.general.generatedRepoSpecs.<generatedRepoName>
+  foldlGeneratedRepoSpecs = op: acc: value:
+    if builtins.isAttrs value && value ? moduleExtensions
+    then
+      lib.foldlAttrs
+        (_acc: moduleExtensionName: moduleExtension: (
+          if builtins.isAttrs moduleExtension
+            && moduleExtension ? general
+            && builtins.isAttrs moduleExtension.general
+            && moduleExtension.general ? generatedRepoSpecs
+            && builtins.isAttrs moduleExtension.general.generatedRepoSpecs
+          then
+            lib.foldlAttrs
+              (__acc: moduleExtensionGeneratedRepoName: repoSpec: (
+                op __acc { inherit moduleExtensionName moduleExtensionGeneratedRepoName; } repoSpec
+              ))
+              _acc
+              moduleExtension.general.generatedRepoSpecs
+          else _acc
+        ))
+        acc
+        value.moduleExtensions
+    else acc;
 
   # remove the "--" prefix, abusing undocumented negative substring length
   sanitize = str:
@@ -36,6 +58,22 @@ let
     then builtins.substring 2 (-1) str
     else str;
 
+  unmangleName = mangledName:
+    if mangledName ? moduleDepGraphName
+    then builtins.replaceStrings [ "@" ] [ "~" ] mangledName.moduleDepGraphName
+    else
+    # given moduleExtensionName = "@scope~//path/to:extension.bzl%extension"
+    # and moduleExtensionGeneratedRepoName = "repoName"
+    # return "scope~extension~repoName"
+      let
+        isMainModule = lib.strings.hasPrefix "//" mangledName.moduleExtensionName;
+        moduleExtensionParts = builtins.split "^@*([a-zA-Z0-9_~]*)//.*%(.*)$" mangledName.moduleExtensionName;
+        match = if (builtins.length moduleExtensionParts >= 2) then builtins.elemAt moduleExtensionParts 1 else [ "unknownPrefix" "unknownScope" "unknownExtension" ];
+        scope = if isMainModule then "_main" else builtins.elemAt match 0;
+        extension = builtins.elemAt match 1;
+      in
+      "${scope}~${extension}~${mangledName.moduleExtensionGeneratedRepoName}";
+
   # We take any "attributes" object that has a "sha256" field. Every value
   # under "attributes" is assumed to be an object, and all the "attributes"
   # with a "sha256" field are assumed to have either a "urls" or "url" field.
@@ -55,9 +93,10 @@ let
   #
   # !REMINDER! This works on a best-effort basis, so try to keep it from
   # failing loudly. Prefer warning traces.
-  extract_source = f: acc: value:
+  extract_source = f: acc: mangledName: value:
     let
       attrs = value.attributes;
+      name = unmangleName mangledName;
       entry = hash: urls: name: {
         ${hash} = fetchurl {
           name = "source"; # just like fetch*, to get some deduplication
@@ -72,11 +111,10 @@ let
         let
           validUrls = builtins.isList urls
             && builtins.all (url: builtins.isString url && builtins.substring 0 4 url == "http") urls;
-          validName = builtins.isString attrs.name;
           validHash = builtins.isString hash;
-          valid = validUrls && validName && validHash;
+          valid = validUrls && validHash;
         in
-        if valid then acc // entry hash urls attrs.name
+        if valid then acc // entry hash urls name
         else acc;
       withToplevelValue = acc: insert acc
         (attrs.integrity or attrs.sha256)
@@ -94,15 +132,16 @@ let
       addSources = acc: withToplevelValue (withRemotePatches (withArchives acc));
     in
     if builtins.isAttrs value && value ? attributes
-      && builtins.isAttrs attrs && attrs ? name
+      && value ? ruleClassName
+      && builtins.isAttrs attrs
       && (attrs ? sha256 || attrs ? integrity)
       && (attrs ? urls || attrs ? url)
-      && f attrs.name
+      && f name
     then addSources acc
     else acc;
 
   requiredSourcePredicate = n: requiredDepNamePredicate (sanitize n);
-  requiredDeps = foldlJSON (extract_source requiredSourcePredicate) { } modules;
+  requiredDeps = foldlModuleDepGraph (extract_source requiredSourcePredicate) { } modules // foldlGeneratedRepoSpecs (extract_source requiredSourcePredicate) { } modules;
 
   command = ''
     mkdir -p $out/content_addressable/sha256
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_7/cpp-test-MODULE.bazel.lock b/pkgs/development/tools/build-managers/bazel/bazel_7/cpp-test-MODULE.bazel.lock
index 4112726ac2cd2..5612a85bca99a 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_7/cpp-test-MODULE.bazel.lock
+++ b/pkgs/development/tools/build-managers/bazel/bazel_7/cpp-test-MODULE.bazel.lock
@@ -1,6 +1,6 @@
 {
   "lockFileVersion": 6,
-  "moduleFileHash": "80605390be5478a274618e3f8fd7c7a7e1ce3036e086e1e1593ceba1b132b7f2",
+  "moduleFileHash": "88511df1b260515dce141aec0a1990a64de221731dfb656746b7ae1395acf57f",
   "flags": {
     "cmdRegistries": [
       "https://bcr.bazel.build/"
@@ -25,155 +25,8 @@
       "toolchainsToRegister": [],
       "extensionUsages": [],
       "deps": {
-        "rules_proto": "rules_proto@5.3.0-21.7",
-        "protobuf": "protobuf@21.7",
-        "zlib": "zlib@1.3",
-        "bazel_tools": "bazel_tools@_",
-        "local_config_platform": "local_config_platform@_"
-      }
-    },
-    "rules_proto@5.3.0-21.7": {
-      "name": "rules_proto",
-      "version": "5.3.0-21.7",
-      "key": "rules_proto@5.3.0-21.7",
-      "repoName": "rules_proto",
-      "executionPlatformsToRegister": [],
-      "toolchainsToRegister": [],
-      "extensionUsages": [],
-      "deps": {
-        "bazel_skylib": "bazel_skylib@1.3.0",
-        "com_google_protobuf": "protobuf@21.7",
-        "rules_cc": "rules_cc@0.0.9",
-        "bazel_tools": "bazel_tools@_",
-        "local_config_platform": "local_config_platform@_"
-      },
-      "repoSpec": {
-        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-        "ruleClassName": "http_archive",
-        "attributes": {
-          "urls": [
-            "https://github.com/bazelbuild/rules_proto/archive/refs/tags/5.3.0-21.7.tar.gz"
-          ],
-          "integrity": "sha256-3D+yBqLLNEG0heseQjFlsjEjWh6psDG0Qzz3vB+kYN0=",
-          "strip_prefix": "rules_proto-5.3.0-21.7",
-          "remote_patches": {},
-          "remote_patch_strip": 0
-        }
-      }
-    },
-    "protobuf@21.7": {
-      "name": "protobuf",
-      "version": "21.7",
-      "key": "protobuf@21.7",
-      "repoName": "protobuf",
-      "executionPlatformsToRegister": [],
-      "toolchainsToRegister": [],
-      "extensionUsages": [
-        {
-          "extensionBzlFile": "@rules_jvm_external//:extensions.bzl",
-          "extensionName": "maven",
-          "usingModule": "protobuf@21.7",
-          "location": {
-            "file": "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel",
-            "line": 22,
-            "column": 22
-          },
-          "imports": {
-            "maven": "maven"
-          },
-          "devImports": [],
-          "tags": [
-            {
-              "tagName": "install",
-              "attributeValues": {
-                "name": "maven",
-                "artifacts": [
-                  "com.google.code.findbugs:jsr305:3.0.2",
-                  "com.google.code.gson:gson:2.8.9",
-                  "com.google.errorprone:error_prone_annotations:2.3.2",
-                  "com.google.j2objc:j2objc-annotations:1.3",
-                  "com.google.guava:guava:31.1-jre",
-                  "com.google.guava:guava-testlib:31.1-jre",
-                  "com.google.truth:truth:1.1.2",
-                  "junit:junit:4.13.2",
-                  "org.mockito:mockito-core:4.3.1"
-                ]
-              },
-              "devDependency": false,
-              "location": {
-                "file": "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel",
-                "line": 24,
-                "column": 14
-              }
-            }
-          ],
-          "hasDevUseExtension": false,
-          "hasNonDevUseExtension": true
-        }
-      ],
-      "deps": {
-        "bazel_skylib": "bazel_skylib@1.3.0",
-        "rules_python": "rules_python@0.22.1",
-        "rules_cc": "rules_cc@0.0.9",
-        "rules_proto": "rules_proto@5.3.0-21.7",
-        "rules_java": "rules_java@7.4.0",
-        "rules_pkg": "rules_pkg@0.7.0",
-        "com_google_abseil": "abseil-cpp@20211102.0",
-        "zlib": "zlib@1.3",
-        "upb": "upb@0.0.0-20220923-a547704",
-        "rules_jvm_external": "rules_jvm_external@4.4.2",
-        "com_google_googletest": "googletest@1.11.0",
-        "bazel_tools": "bazel_tools@_",
-        "local_config_platform": "local_config_platform@_"
-      },
-      "repoSpec": {
-        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-        "ruleClassName": "http_archive",
-        "attributes": {
-          "urls": [
-            "https://github.com/protocolbuffers/protobuf/releases/download/v21.7/protobuf-all-21.7.zip"
-          ],
-          "integrity": "sha256-VJOiH17T/FAuZv7GuUScBqVRztYwAvpIkDxA36jeeko=",
-          "strip_prefix": "protobuf-21.7",
-          "remote_patches": {
-            "https://bcr.bazel.build/modules/protobuf/21.7/patches/add_module_dot_bazel.patch": "sha256-q3V2+eq0v2XF0z8z+V+QF4cynD6JvHI1y3kI/+rzl5s=",
-            "https://bcr.bazel.build/modules/protobuf/21.7/patches/add_module_dot_bazel_for_examples.patch": "sha256-O7YP6s3lo/1opUiO0jqXYORNHdZ/2q3hjz1QGy8QdIU=",
-            "https://bcr.bazel.build/modules/protobuf/21.7/patches/relative_repo_names.patch": "sha256-RK9RjW8T5UJNG7flIrnFiNE9vKwWB+8uWWtJqXYT0w4=",
-            "https://bcr.bazel.build/modules/protobuf/21.7/patches/add_missing_files.patch": "sha256-Hyne4DG2u5bXcWHNxNMirA2QFAe/2Cl8oMm1XJdkQIY="
-          },
-          "remote_patch_strip": 1
-        }
-      }
-    },
-    "zlib@1.3": {
-      "name": "zlib",
-      "version": "1.3",
-      "key": "zlib@1.3",
-      "repoName": "zlib",
-      "executionPlatformsToRegister": [],
-      "toolchainsToRegister": [],
-      "extensionUsages": [],
-      "deps": {
-        "platforms": "platforms@0.0.7",
-        "rules_cc": "rules_cc@0.0.9",
         "bazel_tools": "bazel_tools@_",
         "local_config_platform": "local_config_platform@_"
-      },
-      "repoSpec": {
-        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-        "ruleClassName": "http_archive",
-        "attributes": {
-          "urls": [
-            "https://github.com/madler/zlib/releases/download/v1.3/zlib-1.3.tar.gz"
-          ],
-          "integrity": "sha256-/wukwpIBPbwnUws6geH5qBPNOd4Byl4Pi/NVcC76WT4=",
-          "strip_prefix": "zlib-1.3",
-          "remote_patches": {
-            "https://bcr.bazel.build/modules/zlib/1.3/patches/add_build_file.patch": "sha256-Ei+FYaaOo7A3jTKunMEodTI0Uw5NXQyZEcboMC8JskY=",
-            "https://bcr.bazel.build/modules/zlib/1.3/patches/module_dot_bazel.patch": "sha256-fPWLM+2xaF/kuy+kZc1YTfW6hNjrkG400Ho7gckuyJk="
-          },
-          "remote_patch_strip": 0
-        }
       }
     },
     "bazel_tools@_": {
@@ -341,36 +194,6 @@
         "bazel_tools": "bazel_tools@_"
       }
     },
-    "bazel_skylib@1.3.0": {
-      "name": "bazel_skylib",
-      "version": "1.3.0",
-      "key": "bazel_skylib@1.3.0",
-      "repoName": "bazel_skylib",
-      "executionPlatformsToRegister": [],
-      "toolchainsToRegister": [
-        "//toolchains/unittest:cmd_toolchain",
-        "//toolchains/unittest:bash_toolchain"
-      ],
-      "extensionUsages": [],
-      "deps": {
-        "platforms": "platforms@0.0.7",
-        "bazel_tools": "bazel_tools@_",
-        "local_config_platform": "local_config_platform@_"
-      },
-      "repoSpec": {
-        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-        "ruleClassName": "http_archive",
-        "attributes": {
-          "urls": [
-            "https://github.com/bazelbuild/bazel-skylib/releases/download/1.3.0/bazel-skylib-1.3.0.tar.gz"
-          ],
-          "integrity": "sha256-dNVE2W9KW7Yw1GXKi7z+Ix41lOWq5X4e2/F6brPKJQY=",
-          "strip_prefix": "",
-          "remote_patches": {},
-          "remote_patch_strip": 0
-        }
-      }
-    },
     "rules_cc@0.0.9": {
       "name": "rules_cc",
       "version": "0.0.9",
@@ -420,6 +243,161 @@
         }
       }
     },
+    "rules_java@7.4.0": {
+      "name": "rules_java",
+      "version": "7.4.0",
+      "key": "rules_java@7.4.0",
+      "repoName": "rules_java",
+      "executionPlatformsToRegister": [],
+      "toolchainsToRegister": [
+        "//toolchains:all",
+        "@local_jdk//:runtime_toolchain_definition",
+        "@local_jdk//:bootstrap_runtime_toolchain_definition",
+        "@remotejdk11_linux_toolchain_config_repo//:all",
+        "@remotejdk11_linux_aarch64_toolchain_config_repo//:all",
+        "@remotejdk11_linux_ppc64le_toolchain_config_repo//:all",
+        "@remotejdk11_linux_s390x_toolchain_config_repo//:all",
+        "@remotejdk11_macos_toolchain_config_repo//:all",
+        "@remotejdk11_macos_aarch64_toolchain_config_repo//:all",
+        "@remotejdk11_win_toolchain_config_repo//:all",
+        "@remotejdk11_win_arm64_toolchain_config_repo//:all",
+        "@remotejdk17_linux_toolchain_config_repo//:all",
+        "@remotejdk17_linux_aarch64_toolchain_config_repo//:all",
+        "@remotejdk17_linux_ppc64le_toolchain_config_repo//:all",
+        "@remotejdk17_linux_s390x_toolchain_config_repo//:all",
+        "@remotejdk17_macos_toolchain_config_repo//:all",
+        "@remotejdk17_macos_aarch64_toolchain_config_repo//:all",
+        "@remotejdk17_win_toolchain_config_repo//:all",
+        "@remotejdk17_win_arm64_toolchain_config_repo//:all",
+        "@remotejdk21_linux_toolchain_config_repo//:all",
+        "@remotejdk21_linux_aarch64_toolchain_config_repo//:all",
+        "@remotejdk21_macos_toolchain_config_repo//:all",
+        "@remotejdk21_macos_aarch64_toolchain_config_repo//:all",
+        "@remotejdk21_win_toolchain_config_repo//:all"
+      ],
+      "extensionUsages": [
+        {
+          "extensionBzlFile": "@rules_java//java:extensions.bzl",
+          "extensionName": "toolchains",
+          "usingModule": "rules_java@7.4.0",
+          "location": {
+            "file": "https://bcr.bazel.build/modules/rules_java/7.4.0/MODULE.bazel",
+            "line": 19,
+            "column": 27
+          },
+          "imports": {
+            "remote_java_tools": "remote_java_tools",
+            "remote_java_tools_linux": "remote_java_tools_linux",
+            "remote_java_tools_windows": "remote_java_tools_windows",
+            "remote_java_tools_darwin_x86_64": "remote_java_tools_darwin_x86_64",
+            "remote_java_tools_darwin_arm64": "remote_java_tools_darwin_arm64",
+            "local_jdk": "local_jdk",
+            "remotejdk11_linux_toolchain_config_repo": "remotejdk11_linux_toolchain_config_repo",
+            "remotejdk11_linux_aarch64_toolchain_config_repo": "remotejdk11_linux_aarch64_toolchain_config_repo",
+            "remotejdk11_linux_ppc64le_toolchain_config_repo": "remotejdk11_linux_ppc64le_toolchain_config_repo",
+            "remotejdk11_linux_s390x_toolchain_config_repo": "remotejdk11_linux_s390x_toolchain_config_repo",
+            "remotejdk11_macos_toolchain_config_repo": "remotejdk11_macos_toolchain_config_repo",
+            "remotejdk11_macos_aarch64_toolchain_config_repo": "remotejdk11_macos_aarch64_toolchain_config_repo",
+            "remotejdk11_win_toolchain_config_repo": "remotejdk11_win_toolchain_config_repo",
+            "remotejdk11_win_arm64_toolchain_config_repo": "remotejdk11_win_arm64_toolchain_config_repo",
+            "remotejdk17_linux_toolchain_config_repo": "remotejdk17_linux_toolchain_config_repo",
+            "remotejdk17_linux_aarch64_toolchain_config_repo": "remotejdk17_linux_aarch64_toolchain_config_repo",
+            "remotejdk17_linux_ppc64le_toolchain_config_repo": "remotejdk17_linux_ppc64le_toolchain_config_repo",
+            "remotejdk17_linux_s390x_toolchain_config_repo": "remotejdk17_linux_s390x_toolchain_config_repo",
+            "remotejdk17_macos_toolchain_config_repo": "remotejdk17_macos_toolchain_config_repo",
+            "remotejdk17_macos_aarch64_toolchain_config_repo": "remotejdk17_macos_aarch64_toolchain_config_repo",
+            "remotejdk17_win_toolchain_config_repo": "remotejdk17_win_toolchain_config_repo",
+            "remotejdk17_win_arm64_toolchain_config_repo": "remotejdk17_win_arm64_toolchain_config_repo",
+            "remotejdk21_linux_toolchain_config_repo": "remotejdk21_linux_toolchain_config_repo",
+            "remotejdk21_linux_aarch64_toolchain_config_repo": "remotejdk21_linux_aarch64_toolchain_config_repo",
+            "remotejdk21_macos_toolchain_config_repo": "remotejdk21_macos_toolchain_config_repo",
+            "remotejdk21_macos_aarch64_toolchain_config_repo": "remotejdk21_macos_aarch64_toolchain_config_repo",
+            "remotejdk21_win_toolchain_config_repo": "remotejdk21_win_toolchain_config_repo"
+          },
+          "devImports": [],
+          "tags": [],
+          "hasDevUseExtension": false,
+          "hasNonDevUseExtension": true
+        }
+      ],
+      "deps": {
+        "platforms": "platforms@0.0.7",
+        "rules_cc": "rules_cc@0.0.9",
+        "bazel_skylib": "bazel_skylib@1.3.0",
+        "rules_proto": "rules_proto@5.3.0-21.7",
+        "rules_license": "rules_license@0.0.7",
+        "bazel_tools": "bazel_tools@_",
+        "local_config_platform": "local_config_platform@_"
+      },
+      "repoSpec": {
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+        "ruleClassName": "http_archive",
+        "attributes": {
+          "urls": [
+            "https://github.com/bazelbuild/rules_java/releases/download/7.4.0/rules_java-7.4.0.tar.gz"
+          ],
+          "integrity": "sha256-l27wi0nJKXQfIBeQ5Z44B8cq2B9CjIvJU82+/1/tFes=",
+          "strip_prefix": "",
+          "remote_patches": {},
+          "remote_patch_strip": 0
+        }
+      }
+    },
+    "rules_license@0.0.7": {
+      "name": "rules_license",
+      "version": "0.0.7",
+      "key": "rules_license@0.0.7",
+      "repoName": "rules_license",
+      "executionPlatformsToRegister": [],
+      "toolchainsToRegister": [],
+      "extensionUsages": [],
+      "deps": {
+        "bazel_tools": "bazel_tools@_",
+        "local_config_platform": "local_config_platform@_"
+      },
+      "repoSpec": {
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+        "ruleClassName": "http_archive",
+        "attributes": {
+          "urls": [
+            "https://github.com/bazelbuild/rules_license/releases/download/0.0.7/rules_license-0.0.7.tar.gz"
+          ],
+          "integrity": "sha256-RTHezLkTY5ww5cdRKgVNXYdWmNrrddjPkPKEN1/nw2A=",
+          "strip_prefix": "",
+          "remote_patches": {},
+          "remote_patch_strip": 0
+        }
+      }
+    },
+    "rules_proto@5.3.0-21.7": {
+      "name": "rules_proto",
+      "version": "5.3.0-21.7",
+      "key": "rules_proto@5.3.0-21.7",
+      "repoName": "rules_proto",
+      "executionPlatformsToRegister": [],
+      "toolchainsToRegister": [],
+      "extensionUsages": [],
+      "deps": {
+        "bazel_skylib": "bazel_skylib@1.3.0",
+        "com_google_protobuf": "protobuf@21.7",
+        "rules_cc": "rules_cc@0.0.9",
+        "bazel_tools": "bazel_tools@_",
+        "local_config_platform": "local_config_platform@_"
+      },
+      "repoSpec": {
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+        "ruleClassName": "http_archive",
+        "attributes": {
+          "urls": [
+            "https://github.com/bazelbuild/rules_proto/archive/refs/tags/5.3.0-21.7.tar.gz"
+          ],
+          "integrity": "sha256-3D+yBqLLNEG0heseQjFlsjEjWh6psDG0Qzz3vB+kYN0=",
+          "strip_prefix": "rules_proto-5.3.0-21.7",
+          "remote_patches": {},
+          "remote_patch_strip": 0
+        }
+      }
+    },
     "rules_python@0.22.1": {
       "name": "rules_python",
       "version": "0.22.1",
@@ -528,89 +506,246 @@
         }
       }
     },
-    "rules_java@7.4.0": {
-      "name": "rules_java",
-      "version": "7.4.0",
-      "key": "rules_java@7.4.0",
-      "repoName": "rules_java",
+    "buildozer@6.4.0.2": {
+      "name": "buildozer",
+      "version": "6.4.0.2",
+      "key": "buildozer@6.4.0.2",
+      "repoName": "buildozer",
       "executionPlatformsToRegister": [],
-      "toolchainsToRegister": [
-        "//toolchains:all",
-        "@local_jdk//:runtime_toolchain_definition",
-        "@local_jdk//:bootstrap_runtime_toolchain_definition",
-        "@remotejdk11_linux_toolchain_config_repo//:all",
-        "@remotejdk11_linux_aarch64_toolchain_config_repo//:all",
-        "@remotejdk11_linux_ppc64le_toolchain_config_repo//:all",
-        "@remotejdk11_linux_s390x_toolchain_config_repo//:all",
-        "@remotejdk11_macos_toolchain_config_repo//:all",
-        "@remotejdk11_macos_aarch64_toolchain_config_repo//:all",
-        "@remotejdk11_win_toolchain_config_repo//:all",
-        "@remotejdk11_win_arm64_toolchain_config_repo//:all",
-        "@remotejdk17_linux_toolchain_config_repo//:all",
-        "@remotejdk17_linux_aarch64_toolchain_config_repo//:all",
-        "@remotejdk17_linux_ppc64le_toolchain_config_repo//:all",
-        "@remotejdk17_linux_s390x_toolchain_config_repo//:all",
-        "@remotejdk17_macos_toolchain_config_repo//:all",
-        "@remotejdk17_macos_aarch64_toolchain_config_repo//:all",
-        "@remotejdk17_win_toolchain_config_repo//:all",
-        "@remotejdk17_win_arm64_toolchain_config_repo//:all",
-        "@remotejdk21_linux_toolchain_config_repo//:all",
-        "@remotejdk21_linux_aarch64_toolchain_config_repo//:all",
-        "@remotejdk21_macos_toolchain_config_repo//:all",
-        "@remotejdk21_macos_aarch64_toolchain_config_repo//:all",
-        "@remotejdk21_win_toolchain_config_repo//:all"
+      "toolchainsToRegister": [],
+      "extensionUsages": [
+        {
+          "extensionBzlFile": "@buildozer//:buildozer_binary.bzl",
+          "extensionName": "buildozer_binary",
+          "usingModule": "buildozer@6.4.0.2",
+          "location": {
+            "file": "https://bcr.bazel.build/modules/buildozer/6.4.0.2/MODULE.bazel",
+            "line": 7,
+            "column": 33
+          },
+          "imports": {
+            "buildozer_binary": "buildozer_binary"
+          },
+          "devImports": [],
+          "tags": [
+            {
+              "tagName": "buildozer",
+              "attributeValues": {
+                "sha256": {
+                  "darwin-amd64": "d29e347ecd6b5673d72cb1a8de05bf1b06178dd229ff5eb67fad5100c840cc8e",
+                  "darwin-arm64": "9b9e71bdbec5e7223871e913b65d12f6d8fa026684daf991f00e52ed36a6978d",
+                  "linux-amd64": "8dfd6345da4e9042daa738d7fdf34f699c5dfce4632f7207956fceedd8494119",
+                  "linux-arm64": "6559558fded658c8fa7432a9d011f7c4dcbac6b738feae73d2d5c352e5f605fa",
+                  "windows-amd64": "e7f05bf847f7c3689dd28926460ce6e1097ae97380ac8e6ae7147b7b706ba19b"
+                },
+                "version": "6.4.0"
+              },
+              "devDependency": false,
+              "location": {
+                "file": "https://bcr.bazel.build/modules/buildozer/6.4.0.2/MODULE.bazel",
+                "line": 8,
+                "column": 27
+              }
+            }
+          ],
+          "hasDevUseExtension": false,
+          "hasNonDevUseExtension": true
+        }
       ],
+      "deps": {
+        "bazel_tools": "bazel_tools@_",
+        "local_config_platform": "local_config_platform@_"
+      },
+      "repoSpec": {
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+        "ruleClassName": "http_archive",
+        "attributes": {
+          "urls": [
+            "https://github.com/fmeum/buildozer/releases/download/v6.4.0.2/buildozer-v6.4.0.2.tar.gz"
+          ],
+          "integrity": "sha256-k7tFKQMR2AygxpmZfH0yEPnQmF3efFgD9rBPkj+Yz/8=",
+          "strip_prefix": "buildozer-6.4.0.2",
+          "remote_patches": {
+            "https://bcr.bazel.build/modules/buildozer/6.4.0.2/patches/module_dot_bazel_version.patch": "sha256-gKANF2HMilj7bWmuXs4lbBIAAansuWC4IhWGB/CerjU="
+          },
+          "remote_patch_strip": 1
+        }
+      }
+    },
+    "platforms@0.0.7": {
+      "name": "platforms",
+      "version": "0.0.7",
+      "key": "platforms@0.0.7",
+      "repoName": "platforms",
+      "executionPlatformsToRegister": [],
+      "toolchainsToRegister": [],
+      "extensionUsages": [],
+      "deps": {
+        "rules_license": "rules_license@0.0.7",
+        "bazel_tools": "bazel_tools@_",
+        "local_config_platform": "local_config_platform@_"
+      },
+      "repoSpec": {
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+        "ruleClassName": "http_archive",
+        "attributes": {
+          "urls": [
+            "https://github.com/bazelbuild/platforms/releases/download/0.0.7/platforms-0.0.7.tar.gz"
+          ],
+          "integrity": "sha256-OlYcmee9vpFzqmU/1Xn+hJ8djWc5V4CrR3Cx84FDHVE=",
+          "strip_prefix": "",
+          "remote_patches": {},
+          "remote_patch_strip": 0
+        }
+      }
+    },
+    "protobuf@21.7": {
+      "name": "protobuf",
+      "version": "21.7",
+      "key": "protobuf@21.7",
+      "repoName": "protobuf",
+      "executionPlatformsToRegister": [],
+      "toolchainsToRegister": [],
       "extensionUsages": [
         {
-          "extensionBzlFile": "@rules_java//java:extensions.bzl",
-          "extensionName": "toolchains",
-          "usingModule": "rules_java@7.4.0",
+          "extensionBzlFile": "@rules_jvm_external//:extensions.bzl",
+          "extensionName": "maven",
+          "usingModule": "protobuf@21.7",
           "location": {
-            "file": "https://bcr.bazel.build/modules/rules_java/7.4.0/MODULE.bazel",
-            "line": 19,
-            "column": 27
+            "file": "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel",
+            "line": 22,
+            "column": 22
           },
           "imports": {
-            "remote_java_tools": "remote_java_tools",
-            "remote_java_tools_linux": "remote_java_tools_linux",
-            "remote_java_tools_windows": "remote_java_tools_windows",
-            "remote_java_tools_darwin_x86_64": "remote_java_tools_darwin_x86_64",
-            "remote_java_tools_darwin_arm64": "remote_java_tools_darwin_arm64",
-            "local_jdk": "local_jdk",
-            "remotejdk11_linux_toolchain_config_repo": "remotejdk11_linux_toolchain_config_repo",
-            "remotejdk11_linux_aarch64_toolchain_config_repo": "remotejdk11_linux_aarch64_toolchain_config_repo",
-            "remotejdk11_linux_ppc64le_toolchain_config_repo": "remotejdk11_linux_ppc64le_toolchain_config_repo",
-            "remotejdk11_linux_s390x_toolchain_config_repo": "remotejdk11_linux_s390x_toolchain_config_repo",
-            "remotejdk11_macos_toolchain_config_repo": "remotejdk11_macos_toolchain_config_repo",
-            "remotejdk11_macos_aarch64_toolchain_config_repo": "remotejdk11_macos_aarch64_toolchain_config_repo",
-            "remotejdk11_win_toolchain_config_repo": "remotejdk11_win_toolchain_config_repo",
-            "remotejdk11_win_arm64_toolchain_config_repo": "remotejdk11_win_arm64_toolchain_config_repo",
-            "remotejdk17_linux_toolchain_config_repo": "remotejdk17_linux_toolchain_config_repo",
-            "remotejdk17_linux_aarch64_toolchain_config_repo": "remotejdk17_linux_aarch64_toolchain_config_repo",
-            "remotejdk17_linux_ppc64le_toolchain_config_repo": "remotejdk17_linux_ppc64le_toolchain_config_repo",
-            "remotejdk17_linux_s390x_toolchain_config_repo": "remotejdk17_linux_s390x_toolchain_config_repo",
-            "remotejdk17_macos_toolchain_config_repo": "remotejdk17_macos_toolchain_config_repo",
-            "remotejdk17_macos_aarch64_toolchain_config_repo": "remotejdk17_macos_aarch64_toolchain_config_repo",
-            "remotejdk17_win_toolchain_config_repo": "remotejdk17_win_toolchain_config_repo",
-            "remotejdk17_win_arm64_toolchain_config_repo": "remotejdk17_win_arm64_toolchain_config_repo",
-            "remotejdk21_linux_toolchain_config_repo": "remotejdk21_linux_toolchain_config_repo",
-            "remotejdk21_linux_aarch64_toolchain_config_repo": "remotejdk21_linux_aarch64_toolchain_config_repo",
-            "remotejdk21_macos_toolchain_config_repo": "remotejdk21_macos_toolchain_config_repo",
-            "remotejdk21_macos_aarch64_toolchain_config_repo": "remotejdk21_macos_aarch64_toolchain_config_repo",
-            "remotejdk21_win_toolchain_config_repo": "remotejdk21_win_toolchain_config_repo"
+            "maven": "maven"
           },
           "devImports": [],
-          "tags": [],
+          "tags": [
+            {
+              "tagName": "install",
+              "attributeValues": {
+                "name": "maven",
+                "artifacts": [
+                  "com.google.code.findbugs:jsr305:3.0.2",
+                  "com.google.code.gson:gson:2.8.9",
+                  "com.google.errorprone:error_prone_annotations:2.3.2",
+                  "com.google.j2objc:j2objc-annotations:1.3",
+                  "com.google.guava:guava:31.1-jre",
+                  "com.google.guava:guava-testlib:31.1-jre",
+                  "com.google.truth:truth:1.1.2",
+                  "junit:junit:4.13.2",
+                  "org.mockito:mockito-core:4.3.1"
+                ]
+              },
+              "devDependency": false,
+              "location": {
+                "file": "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel",
+                "line": 24,
+                "column": 14
+              }
+            }
+          ],
           "hasDevUseExtension": false,
           "hasNonDevUseExtension": true
         }
       ],
       "deps": {
+        "bazel_skylib": "bazel_skylib@1.3.0",
+        "rules_python": "rules_python@0.22.1",
+        "rules_cc": "rules_cc@0.0.9",
+        "rules_proto": "rules_proto@5.3.0-21.7",
+        "rules_java": "rules_java@7.4.0",
+        "rules_pkg": "rules_pkg@0.7.0",
+        "com_google_abseil": "abseil-cpp@20211102.0",
+        "zlib": "zlib@1.3",
+        "upb": "upb@0.0.0-20220923-a547704",
+        "rules_jvm_external": "rules_jvm_external@4.4.2",
+        "com_google_googletest": "googletest@1.11.0",
+        "bazel_tools": "bazel_tools@_",
+        "local_config_platform": "local_config_platform@_"
+      },
+      "repoSpec": {
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+        "ruleClassName": "http_archive",
+        "attributes": {
+          "urls": [
+            "https://github.com/protocolbuffers/protobuf/releases/download/v21.7/protobuf-all-21.7.zip"
+          ],
+          "integrity": "sha256-VJOiH17T/FAuZv7GuUScBqVRztYwAvpIkDxA36jeeko=",
+          "strip_prefix": "protobuf-21.7",
+          "remote_patches": {
+            "https://bcr.bazel.build/modules/protobuf/21.7/patches/add_module_dot_bazel.patch": "sha256-q3V2+eq0v2XF0z8z+V+QF4cynD6JvHI1y3kI/+rzl5s=",
+            "https://bcr.bazel.build/modules/protobuf/21.7/patches/add_module_dot_bazel_for_examples.patch": "sha256-O7YP6s3lo/1opUiO0jqXYORNHdZ/2q3hjz1QGy8QdIU=",
+            "https://bcr.bazel.build/modules/protobuf/21.7/patches/relative_repo_names.patch": "sha256-RK9RjW8T5UJNG7flIrnFiNE9vKwWB+8uWWtJqXYT0w4=",
+            "https://bcr.bazel.build/modules/protobuf/21.7/patches/add_missing_files.patch": "sha256-Hyne4DG2u5bXcWHNxNMirA2QFAe/2Cl8oMm1XJdkQIY="
+          },
+          "remote_patch_strip": 1
+        }
+      }
+    },
+    "zlib@1.3": {
+      "name": "zlib",
+      "version": "1.3",
+      "key": "zlib@1.3",
+      "repoName": "zlib",
+      "executionPlatformsToRegister": [],
+      "toolchainsToRegister": [],
+      "extensionUsages": [],
+      "deps": {
         "platforms": "platforms@0.0.7",
         "rules_cc": "rules_cc@0.0.9",
+        "bazel_tools": "bazel_tools@_",
+        "local_config_platform": "local_config_platform@_"
+      },
+      "repoSpec": {
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+        "ruleClassName": "http_archive",
+        "attributes": {
+          "urls": [
+            "https://github.com/madler/zlib/releases/download/v1.3/zlib-1.3.tar.gz"
+          ],
+          "integrity": "sha256-/wukwpIBPbwnUws6geH5qBPNOd4Byl4Pi/NVcC76WT4=",
+          "strip_prefix": "zlib-1.3",
+          "remote_patches": {
+            "https://bcr.bazel.build/modules/zlib/1.3/patches/add_build_file.patch": "sha256-Ei+FYaaOo7A3jTKunMEodTI0Uw5NXQyZEcboMC8JskY=",
+            "https://bcr.bazel.build/modules/zlib/1.3/patches/module_dot_bazel.patch": "sha256-fPWLM+2xaF/kuy+kZc1YTfW6hNjrkG400Ho7gckuyJk="
+          },
+          "remote_patch_strip": 0
+        }
+      }
+    },
+    "apple_support@1.5.0": {
+      "name": "apple_support",
+      "version": "1.5.0",
+      "key": "apple_support@1.5.0",
+      "repoName": "build_bazel_apple_support",
+      "executionPlatformsToRegister": [],
+      "toolchainsToRegister": [
+        "@local_config_apple_cc_toolchains//:all"
+      ],
+      "extensionUsages": [
+        {
+          "extensionBzlFile": "@build_bazel_apple_support//crosstool:setup.bzl",
+          "extensionName": "apple_cc_configure_extension",
+          "usingModule": "apple_support@1.5.0",
+          "location": {
+            "file": "https://bcr.bazel.build/modules/apple_support/1.5.0/MODULE.bazel",
+            "line": 17,
+            "column": 35
+          },
+          "imports": {
+            "local_config_apple_cc": "local_config_apple_cc",
+            "local_config_apple_cc_toolchains": "local_config_apple_cc_toolchains"
+          },
+          "devImports": [],
+          "tags": [],
+          "hasDevUseExtension": false,
+          "hasNonDevUseExtension": true
+        }
+      ],
+      "deps": {
         "bazel_skylib": "bazel_skylib@1.3.0",
-        "rules_proto": "rules_proto@5.3.0-21.7",
-        "rules_license": "rules_license@0.0.7",
+        "platforms": "platforms@0.0.7",
         "bazel_tools": "bazel_tools@_",
         "local_config_platform": "local_config_platform@_"
       },
@@ -619,9 +754,39 @@
         "ruleClassName": "http_archive",
         "attributes": {
           "urls": [
-            "https://github.com/bazelbuild/rules_java/releases/download/7.4.0/rules_java-7.4.0.tar.gz"
+            "https://github.com/bazelbuild/apple_support/releases/download/1.5.0/apple_support.1.5.0.tar.gz"
           ],
-          "integrity": "sha256-l27wi0nJKXQfIBeQ5Z44B8cq2B9CjIvJU82+/1/tFes=",
+          "integrity": "sha256-miM41vja0yRPgj8txghKA+TQ+7J8qJLclw5okNW0gYQ=",
+          "strip_prefix": "",
+          "remote_patches": {},
+          "remote_patch_strip": 0
+        }
+      }
+    },
+    "bazel_skylib@1.3.0": {
+      "name": "bazel_skylib",
+      "version": "1.3.0",
+      "key": "bazel_skylib@1.3.0",
+      "repoName": "bazel_skylib",
+      "executionPlatformsToRegister": [],
+      "toolchainsToRegister": [
+        "//toolchains/unittest:cmd_toolchain",
+        "//toolchains/unittest:bash_toolchain"
+      ],
+      "extensionUsages": [],
+      "deps": {
+        "platforms": "platforms@0.0.7",
+        "bazel_tools": "bazel_tools@_",
+        "local_config_platform": "local_config_platform@_"
+      },
+      "repoSpec": {
+        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
+        "ruleClassName": "http_archive",
+        "attributes": {
+          "urls": [
+            "https://github.com/bazelbuild/bazel-skylib/releases/download/1.3.0/bazel-skylib-1.3.0.tar.gz"
+          ],
+          "integrity": "sha256-dNVE2W9KW7Yw1GXKi7z+Ix41lOWq5X4e2/F6brPKJQY=",
           "strip_prefix": "",
           "remote_patches": {},
           "remote_patch_strip": 0
@@ -837,174 +1002,6 @@
         }
       }
     },
-    "platforms@0.0.7": {
-      "name": "platforms",
-      "version": "0.0.7",
-      "key": "platforms@0.0.7",
-      "repoName": "platforms",
-      "executionPlatformsToRegister": [],
-      "toolchainsToRegister": [],
-      "extensionUsages": [],
-      "deps": {
-        "rules_license": "rules_license@0.0.7",
-        "bazel_tools": "bazel_tools@_",
-        "local_config_platform": "local_config_platform@_"
-      },
-      "repoSpec": {
-        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-        "ruleClassName": "http_archive",
-        "attributes": {
-          "urls": [
-            "https://github.com/bazelbuild/platforms/releases/download/0.0.7/platforms-0.0.7.tar.gz"
-          ],
-          "integrity": "sha256-OlYcmee9vpFzqmU/1Xn+hJ8djWc5V4CrR3Cx84FDHVE=",
-          "strip_prefix": "",
-          "remote_patches": {},
-          "remote_patch_strip": 0
-        }
-      }
-    },
-    "rules_license@0.0.7": {
-      "name": "rules_license",
-      "version": "0.0.7",
-      "key": "rules_license@0.0.7",
-      "repoName": "rules_license",
-      "executionPlatformsToRegister": [],
-      "toolchainsToRegister": [],
-      "extensionUsages": [],
-      "deps": {
-        "bazel_tools": "bazel_tools@_",
-        "local_config_platform": "local_config_platform@_"
-      },
-      "repoSpec": {
-        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-        "ruleClassName": "http_archive",
-        "attributes": {
-          "urls": [
-            "https://github.com/bazelbuild/rules_license/releases/download/0.0.7/rules_license-0.0.7.tar.gz"
-          ],
-          "integrity": "sha256-RTHezLkTY5ww5cdRKgVNXYdWmNrrddjPkPKEN1/nw2A=",
-          "strip_prefix": "",
-          "remote_patches": {},
-          "remote_patch_strip": 0
-        }
-      }
-    },
-    "buildozer@6.4.0.2": {
-      "name": "buildozer",
-      "version": "6.4.0.2",
-      "key": "buildozer@6.4.0.2",
-      "repoName": "buildozer",
-      "executionPlatformsToRegister": [],
-      "toolchainsToRegister": [],
-      "extensionUsages": [
-        {
-          "extensionBzlFile": "@buildozer//:buildozer_binary.bzl",
-          "extensionName": "buildozer_binary",
-          "usingModule": "buildozer@6.4.0.2",
-          "location": {
-            "file": "https://bcr.bazel.build/modules/buildozer/6.4.0.2/MODULE.bazel",
-            "line": 7,
-            "column": 33
-          },
-          "imports": {
-            "buildozer_binary": "buildozer_binary"
-          },
-          "devImports": [],
-          "tags": [
-            {
-              "tagName": "buildozer",
-              "attributeValues": {
-                "sha256": {
-                  "darwin-amd64": "d29e347ecd6b5673d72cb1a8de05bf1b06178dd229ff5eb67fad5100c840cc8e",
-                  "darwin-arm64": "9b9e71bdbec5e7223871e913b65d12f6d8fa026684daf991f00e52ed36a6978d",
-                  "linux-amd64": "8dfd6345da4e9042daa738d7fdf34f699c5dfce4632f7207956fceedd8494119",
-                  "linux-arm64": "6559558fded658c8fa7432a9d011f7c4dcbac6b738feae73d2d5c352e5f605fa",
-                  "windows-amd64": "e7f05bf847f7c3689dd28926460ce6e1097ae97380ac8e6ae7147b7b706ba19b"
-                },
-                "version": "6.4.0"
-              },
-              "devDependency": false,
-              "location": {
-                "file": "https://bcr.bazel.build/modules/buildozer/6.4.0.2/MODULE.bazel",
-                "line": 8,
-                "column": 27
-              }
-            }
-          ],
-          "hasDevUseExtension": false,
-          "hasNonDevUseExtension": true
-        }
-      ],
-      "deps": {
-        "bazel_tools": "bazel_tools@_",
-        "local_config_platform": "local_config_platform@_"
-      },
-      "repoSpec": {
-        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-        "ruleClassName": "http_archive",
-        "attributes": {
-          "urls": [
-            "https://github.com/fmeum/buildozer/releases/download/v6.4.0.2/buildozer-v6.4.0.2.tar.gz"
-          ],
-          "integrity": "sha256-k7tFKQMR2AygxpmZfH0yEPnQmF3efFgD9rBPkj+Yz/8=",
-          "strip_prefix": "buildozer-6.4.0.2",
-          "remote_patches": {
-            "https://bcr.bazel.build/modules/buildozer/6.4.0.2/patches/module_dot_bazel_version.patch": "sha256-gKANF2HMilj7bWmuXs4lbBIAAansuWC4IhWGB/CerjU="
-          },
-          "remote_patch_strip": 1
-        }
-      }
-    },
-    "apple_support@1.5.0": {
-      "name": "apple_support",
-      "version": "1.5.0",
-      "key": "apple_support@1.5.0",
-      "repoName": "build_bazel_apple_support",
-      "executionPlatformsToRegister": [],
-      "toolchainsToRegister": [
-        "@local_config_apple_cc_toolchains//:all"
-      ],
-      "extensionUsages": [
-        {
-          "extensionBzlFile": "@build_bazel_apple_support//crosstool:setup.bzl",
-          "extensionName": "apple_cc_configure_extension",
-          "usingModule": "apple_support@1.5.0",
-          "location": {
-            "file": "https://bcr.bazel.build/modules/apple_support/1.5.0/MODULE.bazel",
-            "line": 17,
-            "column": 35
-          },
-          "imports": {
-            "local_config_apple_cc": "local_config_apple_cc",
-            "local_config_apple_cc_toolchains": "local_config_apple_cc_toolchains"
-          },
-          "devImports": [],
-          "tags": [],
-          "hasDevUseExtension": false,
-          "hasNonDevUseExtension": true
-        }
-      ],
-      "deps": {
-        "bazel_skylib": "bazel_skylib@1.3.0",
-        "platforms": "platforms@0.0.7",
-        "bazel_tools": "bazel_tools@_",
-        "local_config_platform": "local_config_platform@_"
-      },
-      "repoSpec": {
-        "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-        "ruleClassName": "http_archive",
-        "attributes": {
-          "urls": [
-            "https://github.com/bazelbuild/apple_support/releases/download/1.5.0/apple_support.1.5.0.tar.gz"
-          ],
-          "integrity": "sha256-miM41vja0yRPgj8txghKA+TQ+7J8qJLclw5okNW0gYQ=",
-          "strip_prefix": "",
-          "remote_patches": {},
-          "remote_patch_strip": 0
-        }
-      }
-    },
     "stardoc@0.5.1": {
       "name": "stardoc",
       "version": "0.5.1",
@@ -1066,7 +1063,7 @@
     },
     "@@bazel_tools//tools/android:android_extensions.bzl%remote_android_tools_extensions": {
       "general": {
-        "bzlTransitiveDigest": "S0n86BFe4SJ3lRaZiRA5D46oH52UO2hP1T50t/zldOw=",
+        "bzlTransitiveDigest": "ZggrqnDIPRFCqT9XaCYOxLiJx1XuMtOZNG1jvKYZ5lA=",
         "recordedFileInputs": {},
         "recordedDirentsInputs": {},
         "envVariables": {},
@@ -1155,7 +1152,7 @@
     },
     "@@bazel_tools//tools/test:extensions.bzl%remote_coverage_tools_extension": {
       "general": {
-        "bzlTransitiveDigest": "l5mcjH2gWmbmIycx97bzI2stD0Q0M5gpDc0aLOHKIm8=",
+        "bzlTransitiveDigest": "7n9r2sWPYvn/OzUdHUoiJN/1hgIqWKOFCEQFVwHZGU0=",
         "recordedFileInputs": {},
         "recordedDirentsInputs": {},
         "envVariables": {},
@@ -1201,7 +1198,7 @@
     },
     "@@rules_java~//java:extensions.bzl%toolchains": {
       "general": {
-        "bzlTransitiveDigest": "tJHbmWnq7m+9eUBnUdv7jZziQ26FmcGL9C5/hU3Q9UQ=",
+        "bzlTransitiveDigest": "0N5b5J9fUzo0sgvH4F3kIEaeXunz4Wy2/UtSFV/eXUY=",
         "recordedFileInputs": {},
         "recordedDirentsInputs": {},
         "envVariables": {},
@@ -1706,7 +1703,7 @@
     },
     "@@rules_jvm_external~//:extensions.bzl%maven": {
       "general": {
-        "bzlTransitiveDigest": "v8HssW6WP6B8s0BwuAMJuQCz6cQ9jlhOfx4dKBtPYB4=",
+        "bzlTransitiveDigest": "9ol/f6R1HONuabXvQTFIEvT1pWikli+mTIbvGRmDubk=",
         "recordedFileInputs": {
           "@@rules_jvm_external~//rules_jvm_external_deps_install.json": "10442a5ae27d9ff4c2003e5ab71643bf0d8b48dcf968b4173fa274c3232a8c06"
         },
@@ -2729,7 +2726,7 @@
     },
     "@@rules_jvm_external~//:non-module-deps.bzl%non_module_deps": {
       "general": {
-        "bzlTransitiveDigest": "DqBh3ObkOvjDFKv8VTy6J2qr7hXsJm9/sES7bha7ftA=",
+        "bzlTransitiveDigest": "Fq6CvJMzD0/LbttG5TUaCtEm/pFvTgO5X9tCUH87Fb0=",
         "recordedFileInputs": {},
         "recordedDirentsInputs": {},
         "envVariables": {},
@@ -2756,7 +2753,7 @@
     },
     "@@rules_python~//python/extensions:python.bzl%python": {
       "general": {
-        "bzlTransitiveDigest": "31xtOi5rmBJ3jSHeziLzV7KKKgCc6tMnRUZ1BQLBeao=",
+        "bzlTransitiveDigest": "2Az37kOCPyZmcfbxYv3bex98d5KhE/dEXOXLzid2XhA=",
         "recordedFileInputs": {},
         "recordedDirentsInputs": {},
         "envVariables": {},
@@ -2785,7 +2782,7 @@
     },
     "@@rules_python~//python/extensions/private:internal_deps.bzl%internal_deps": {
       "general": {
-        "bzlTransitiveDigest": "fUb5iKCtPgjhclraX+//BnJ+LOcG6I6+O9UUxT+gZ50=",
+        "bzlTransitiveDigest": "6qzMi1W/Ln/TUQ7+HG3HnNFz+oFeaWSDOnjCcoByfhI=",
         "recordedFileInputs": {},
         "recordedDirentsInputs": {},
         "envVariables": {},
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_7/cpp-test.nix b/pkgs/development/tools/build-managers/bazel/bazel_7/cpp-test.nix
index 1761358c263e6..8f5592b5e897b 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_7/cpp-test.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_7/cpp-test.nix
@@ -24,8 +24,8 @@ let
     # Take all the rules_ deps, bazel_ deps and their transitive dependencies,
     # but none of the platform-specific binaries, as they are large and useless.
     requiredDepNamePredicate = name:
-      null == builtins.match ".*(macos|osx|linux|win|apple|android|maven).*" name
-      && null != builtins.match "(platforms|com_google_|protobuf|rules_|bazel_).*" name ;
+      null == builtins.match ".*(macos|osx|linux|win|android|maven).*" name
+      && null != builtins.match "(platforms|com_google_|protobuf|rules_|bazel_|apple_support).*" name;
   };
 
   mergedDistDir = symlinkJoin {
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_7/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_7/default.nix
index ee622ca65cd77..1a31de96ca4f0 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_7/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_7/default.nix
@@ -43,7 +43,7 @@
   # Always assume all markers valid (this is needed because we remove markers; they are non-deterministic).
   # Also, don't clean up environment variables (so that NIX_ environment variables are passed to compilers).
 , enableNixHacks ? false
-, version ? "7.1.0",
+, version ? "7.1.2"
 }:
 
 let
@@ -51,7 +51,7 @@ let
 
   src = fetchurl {
     url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-dist.zip";
-    hash = "sha256-HiDQyJ98nRtKOBqMWGtKQ1qWv8Qfu880osKUlOs4Z6E=";
+    hash = "sha256-nPbtIxnIFpGdlwFe720MWULNGu1I4DxzuggV2VPtYas=";
   };
 
   # Use builtins.fetchurl to avoid IFD, in particular on hydra
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_7/protobuf-test.MODULE.bazel.lock b/pkgs/development/tools/build-managers/bazel/bazel_7/protobuf-test.MODULE.bazel.lock
index 4112726ac2cd2..8a59108bd55d3 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_7/protobuf-test.MODULE.bazel.lock
+++ b/pkgs/development/tools/build-managers/bazel/bazel_7/protobuf-test.MODULE.bazel.lock
@@ -1066,7 +1066,7 @@
     },
     "@@bazel_tools//tools/android:android_extensions.bzl%remote_android_tools_extensions": {
       "general": {
-        "bzlTransitiveDigest": "S0n86BFe4SJ3lRaZiRA5D46oH52UO2hP1T50t/zldOw=",
+        "bzlTransitiveDigest": "ZggrqnDIPRFCqT9XaCYOxLiJx1XuMtOZNG1jvKYZ5lA=",
         "recordedFileInputs": {},
         "recordedDirentsInputs": {},
         "envVariables": {},
@@ -1155,7 +1155,7 @@
     },
     "@@bazel_tools//tools/test:extensions.bzl%remote_coverage_tools_extension": {
       "general": {
-        "bzlTransitiveDigest": "l5mcjH2gWmbmIycx97bzI2stD0Q0M5gpDc0aLOHKIm8=",
+        "bzlTransitiveDigest": "7n9r2sWPYvn/OzUdHUoiJN/1hgIqWKOFCEQFVwHZGU0=",
         "recordedFileInputs": {},
         "recordedDirentsInputs": {},
         "envVariables": {},
@@ -1201,7 +1201,7 @@
     },
     "@@rules_java~//java:extensions.bzl%toolchains": {
       "general": {
-        "bzlTransitiveDigest": "tJHbmWnq7m+9eUBnUdv7jZziQ26FmcGL9C5/hU3Q9UQ=",
+        "bzlTransitiveDigest": "0N5b5J9fUzo0sgvH4F3kIEaeXunz4Wy2/UtSFV/eXUY=",
         "recordedFileInputs": {},
         "recordedDirentsInputs": {},
         "envVariables": {},
@@ -1706,7 +1706,7 @@
     },
     "@@rules_jvm_external~//:extensions.bzl%maven": {
       "general": {
-        "bzlTransitiveDigest": "v8HssW6WP6B8s0BwuAMJuQCz6cQ9jlhOfx4dKBtPYB4=",
+        "bzlTransitiveDigest": "9ol/f6R1HONuabXvQTFIEvT1pWikli+mTIbvGRmDubk=",
         "recordedFileInputs": {
           "@@rules_jvm_external~//rules_jvm_external_deps_install.json": "10442a5ae27d9ff4c2003e5ab71643bf0d8b48dcf968b4173fa274c3232a8c06"
         },
@@ -2729,7 +2729,7 @@
     },
     "@@rules_jvm_external~//:non-module-deps.bzl%non_module_deps": {
       "general": {
-        "bzlTransitiveDigest": "DqBh3ObkOvjDFKv8VTy6J2qr7hXsJm9/sES7bha7ftA=",
+        "bzlTransitiveDigest": "Fq6CvJMzD0/LbttG5TUaCtEm/pFvTgO5X9tCUH87Fb0=",
         "recordedFileInputs": {},
         "recordedDirentsInputs": {},
         "envVariables": {},
@@ -2756,7 +2756,7 @@
     },
     "@@rules_python~//python/extensions:python.bzl%python": {
       "general": {
-        "bzlTransitiveDigest": "31xtOi5rmBJ3jSHeziLzV7KKKgCc6tMnRUZ1BQLBeao=",
+        "bzlTransitiveDigest": "2Az37kOCPyZmcfbxYv3bex98d5KhE/dEXOXLzid2XhA=",
         "recordedFileInputs": {},
         "recordedDirentsInputs": {},
         "envVariables": {},
@@ -2785,7 +2785,7 @@
     },
     "@@rules_python~//python/extensions/private:internal_deps.bzl%internal_deps": {
       "general": {
-        "bzlTransitiveDigest": "fUb5iKCtPgjhclraX+//BnJ+LOcG6I6+O9UUxT+gZ50=",
+        "bzlTransitiveDigest": "6qzMi1W/Ln/TUQ7+HG3HnNFz+oFeaWSDOnjCcoByfhI=",
         "recordedFileInputs": {},
         "recordedDirentsInputs": {},
         "envVariables": {},
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_7/protobuf-test.nix b/pkgs/development/tools/build-managers/bazel/bazel_7/protobuf-test.nix
index 6658c0d5b0ed5..4d188ed414544 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_7/protobuf-test.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_7/protobuf-test.nix
@@ -5,7 +5,6 @@
 , darwin
 , distDir
 , extraBazelArgs ? ""
-, fetchFromGitHub
 , fetchurl
 , jdk11_headless
 , lib
diff --git a/pkgs/development/tools/build-managers/bazel/buildtools/default.nix b/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
index 65574129ab938..f5b3e03f8609c 100644
--- a/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "bazel-buildtools";
-  version = "7.1.1";
+  version = "7.1.2";
 
   src = fetchFromGitHub {
     owner = "bazelbuild";
     repo = "buildtools";
     rev = "v${version}";
-    hash = "sha256-funwP4D8ck7RT+0z+42MVud/3Da6HvVhFLTqQIucHrQ=";
+    hash = "sha256-Ax7UKkClYsoqxaR+tsQnTv6BFafl9SkY7MC4kYJNmwY=";
   };
 
   vendorHash = "sha256-DigTREfI6I48wxRpGp/bfH1NbUZ4E1B5UTQXpI0LY1A=";
diff --git a/pkgs/development/tools/build-managers/bear/default.nix b/pkgs/development/tools/build-managers/bear/default.nix
index 2b8d3106f3ce5..13f16c9171b6e 100644
--- a/pkgs/development/tools/build-managers/bear/default.nix
+++ b/pkgs/development/tools/build-managers/bear/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , ninja
 , pkg-config
@@ -89,6 +88,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/rizsotto/Bear";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ babariviere DieracDelta ];
+    maintainers = with maintainers; [ DieracDelta ];
   };
 }
diff --git a/pkgs/development/tools/build-managers/bloop/default.nix b/pkgs/development/tools/build-managers/bloop/default.nix
index b7ff801c24ec7..1f3929620f1fc 100644
--- a/pkgs/development/tools/build-managers/bloop/default.nix
+++ b/pkgs/development/tools/build-managers/bloop/default.nix
@@ -10,7 +10,7 @@
 
 stdenv.mkDerivation rec {
   pname = "bloop";
-  version = "1.5.17";
+  version = "1.5.18";
 
   platform =
     if stdenv.isLinux && stdenv.isx86_64 then "x86_64-pc-linux"
@@ -35,8 +35,8 @@ stdenv.mkDerivation rec {
   bloop-binary = fetchurl rec {
     url = "https://github.com/scalacenter/bloop/releases/download/v${version}/bloop-${platform}";
     sha256 =
-      if stdenv.isLinux && stdenv.isx86_64 then "sha256-lP7j7pPG7wC36sG+d80F2E6ZHPZcOZN/M/j6CniaNGY="
-      else if stdenv.isDarwin && stdenv.isx86_64 then "sha256-awSBYSN4do4w9dAx6JwoexiptfC01vW1/o53Tp13xj0="
+      if stdenv.isLinux && stdenv.isx86_64 then "sha256-gfmsroHyr/xrbQ72x6LNRvIYaxgUjBOxYsyKqc0c9Oo="
+      else if stdenv.isDarwin && stdenv.isx86_64 then "sha256-fluOkbpVy895YyWisfTaDP2yXbqF+gToc1KbVL8Mon8="
       else throw "unsupported platform";
   };
 
@@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
     homepage = "https://scalacenter.github.io/bloop/";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
-    description = "A Scala build server and command-line tool to make the compile and test developer workflows fast and productive in a build-tool-agnostic way";
+    description = "Scala build server and command-line tool to make the compile and test developer workflows fast and productive in a build-tool-agnostic way";
     mainProgram = "bloop";
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
     maintainers = with maintainers; [ kubukoz tomahna ];
diff --git a/pkgs/development/tools/build-managers/bob/default.nix b/pkgs/development/tools/build-managers/bob/default.nix
index 98559d1ca4b4a..ba93433b68626 100644
--- a/pkgs/development/tools/build-managers/bob/default.nix
+++ b/pkgs/development/tools/build-managers/bob/default.nix
@@ -44,7 +44,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A build system for microservices";
+    description = "Build system for microservices";
     mainProgram = "bob";
     homepage = "https://bob.build";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/build-managers/buck/default.nix b/pkgs/development/tools/build-managers/buck/default.nix
index a21a38839b10d..f494e4053525c 100644
--- a/pkgs/development/tools/build-managers/buck/default.nix
+++ b/pkgs/development/tools/build-managers/buck/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://buck.build/";
-    description = "A high-performance build tool";
+    description = "High-performance build tool";
     mainProgram = "buck";
     maintainers = [ maintainers.jgertm ];
     license = licenses.asl20;
diff --git a/pkgs/development/tools/build-managers/buck2/default.nix b/pkgs/development/tools/build-managers/buck2/default.nix
index 3aad79ce1e581..c1e504a2da5db 100644
--- a/pkgs/development/tools/build-managers/buck2/default.nix
+++ b/pkgs/development/tools/build-managers/buck2/default.nix
@@ -38,7 +38,7 @@ let
   buildHashes = builtins.fromJSON (builtins.readFile ./hashes.json);
 
   # our version of buck2; this should be a git tag
-  version = "2024-03-15";
+  version = "2024-05-15";
 
   # the platform-specific, statically linked binary — which is also
   # zstd-compressed
@@ -63,7 +63,7 @@ let
   # tooling
   prelude-src =
     let
-      prelude-hash = "c68a0e4b35928891e72df1738c890bfcb76a6174";
+      prelude-hash = "4e9e6d50b8b461564a7e351ff60b87fe59d7e53b";
       name = "buck2-prelude-${version}.tar.gz";
       hash = buildHashes."_prelude";
       url = "https://github.com/facebook/buck2-prelude/archive/${prelude-hash}.tar.gz";
diff --git a/pkgs/development/tools/build-managers/buck2/hashes.json b/pkgs/development/tools/build-managers/buck2/hashes.json
index 280228e6f4e8e..0aa1592ceb1fc 100644
--- a/pkgs/development/tools/build-managers/buck2/hashes.json
+++ b/pkgs/development/tools/build-managers/buck2/hashes.json
@@ -1,7 +1,7 @@
 { "_comment": "@generated by pkgs/development/tools/build-managers/buck2/update.sh"
-, "_prelude": "sha256-PTetJetdpFU3bKLU1WESMwIEZox86IcrczvCxmaQzoE="
-, "x86_64-linux": "sha256-2vaKYCFRu2fNA/Nsu3HHT5DWtNeMnEfE8FVl7bat1HQ="
-, "x86_64-darwin": "sha256-zzB3sPOCDGWAb4CQO0yjb7Bph+ioi3cJoMYO/2YzXfU="
-, "aarch64-linux": "sha256-sx8rcADlfdAECL/SSHeB7vzxoedqx6+yT7yJp1qLBgM="
-, "aarch64-darwin": "sha256-GKQ8Xfe9iRpgq5SrM6nyyIPBh9gC25uN/vzGRjViQdQ="
+, "_prelude": "sha256-r2opeCtXAFxF3PbqKDKK0+pcySe70hUEtMiX7QlWZCQ="
+, "x86_64-linux": "sha256-Ln2FkZDQRKlTLU+EvcEE0VNW0BdnaZRd9nNeY8YgGVA="
+, "x86_64-darwin": "sha256-qSO+eERWWBH7KKBft/cze3sV04QZl3itpFNud6AFrFM="
+, "aarch64-linux": "sha256-KNYsZv5io4NYa/45rxzx+5ta6L7LrxV/GnqNWT4Y5/k="
+, "aarch64-darwin": "sha256-YUMrU5WsRu9ZAMzUS3xS/FFuiXtfbByMtT49CRGQ8do="
 }
diff --git a/pkgs/development/tools/build-managers/corrosion/default.nix b/pkgs/development/tools/build-managers/corrosion/default.nix
index c452e9aa4f5bb..6809ee7ffd7ac 100644
--- a/pkgs/development/tools/build-managers/corrosion/default.nix
+++ b/pkgs/development/tools/build-managers/corrosion/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "corrosion";
-  version = "0.4.8";
+  version = "0.5";
 
   src = fetchFromGitHub {
     owner = "corrosion-rs";
     repo = "corrosion";
     rev = "v${version}";
-    hash = "sha256-ChoeN7qQRR1YmYYvPdJVJ2SVGTDGlM7PsN9jzFjQEyU=";
+    hash = "sha256-vaNXXXaGqYNmhonU+ANN857LAUgwv+PMcON+nBuUoeo=";
   };
 
   buildInputs = lib.optional stdenv.isDarwin libiconv;
diff --git a/pkgs/development/tools/build-managers/drake/default.nix b/pkgs/development/tools/build-managers/drake/default.nix
index 2f753c82521e2..139f8e0436a50 100644
--- a/pkgs/development/tools/build-managers/drake/default.nix
+++ b/pkgs/development/tools/build-managers/drake/default.nix
@@ -8,7 +8,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "drake";
 
   meta = with lib; {
-    description = "A branch of Rake supporting automatic parallelizing of tasks";
+    description = "Branch of Rake supporting automatic parallelizing of tasks";
     homepage = "http://quix.github.io/rake/";
     maintainers = with maintainers; [ romildo manveru nicknovitski ];
     license = licenses.mit;
diff --git a/pkgs/development/tools/build-managers/gn/generic.nix b/pkgs/development/tools/build-managers/gn/generic.nix
index dab03ebfb7581..c890caa5da9f8 100644
--- a/pkgs/development/tools/build-managers/gn/generic.nix
+++ b/pkgs/development/tools/build-managers/gn/generic.nix
@@ -53,7 +53,7 @@ in stdenv.mkDerivation {
   setupHook = ./setup-hook.sh;
 
   meta = with lib; {
-    description = "A meta-build system that generates build files for Ninja";
+    description = "Meta-build system that generates build files for Ninja";
     mainProgram = "gn";
     homepage = "https://gn.googlesource.com/gn";
     license = licenses.bsd3;
diff --git a/pkgs/development/tools/build-managers/gnumake/4.2/default.nix b/pkgs/development/tools/build-managers/gnumake/4.2/default.nix
index 21e9abd04f203..8e29846e91c77 100644
--- a/pkgs/development/tools/build-managers/gnumake/4.2/default.nix
+++ b/pkgs/development/tools/build-managers/gnumake/4.2/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "man" "info" ];
 
   meta = with lib; {
-    description = "A tool to control the generation of non-source files from sources";
+    description = "Tool to control the generation of non-source files from sources";
     longDescription = ''
       Make is a tool which controls the generation of executables and
       other non-source files of a program from the program's source files.
diff --git a/pkgs/development/tools/build-managers/gnumake/default.nix b/pkgs/development/tools/build-managers/gnumake/default.nix
index 774ea50f86238..55b73888bc069 100644
--- a/pkgs/development/tools/build-managers/gnumake/default.nix
+++ b/pkgs/development/tools/build-managers/gnumake/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, updateAutotoolsGnuConfigScriptsHook
 , guileSupport ? false, guile
 # avoid guile depend on bootstrap to prevent dependency cycles
 , inBootstrap ? false
@@ -31,7 +32,7 @@ stdenv.mkDerivation rec {
     ./0002-remove-impure-dirs.patch
   ];
 
-  nativeBuildInputs = lib.optionals guileEnabled [ pkg-config ];
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ] ++ lib.optionals guileEnabled [ pkg-config ];
   buildInputs = lib.optionals guileEnabled [ guile ];
 
   configureFlags = lib.optional guileEnabled "--with-guile"
@@ -54,7 +55,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A tool to control the generation of non-source files from sources";
+    description = "Tool to control the generation of non-source files from sources";
     longDescription = ''
       Make is a tool which controls the generation of executables and
       other non-source files of a program from the program's source files.
diff --git a/pkgs/development/tools/build-managers/gup/default.nix b/pkgs/development/tools/build-managers/gup/default.nix
index 05820b97bd9a0..3576b67208c37 100644
--- a/pkgs/development/tools/build-managers/gup/default.nix
+++ b/pkgs/development/tools/build-managers/gup/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   ];
   meta = {
     inherit (src.meta) homepage;
-    description = "A better make, inspired by djb's redo";
+    description = "Better make, inspired by djb's redo";
     license = lib.licenses.lgpl2Plus;
     maintainers = [ lib.maintainers.timbertson ];
     platforms = lib.platforms.all;
diff --git a/pkgs/development/tools/build-managers/icmake/default.nix b/pkgs/development/tools/build-managers/icmake/default.nix
index 6320646974ad0..039d4ee6970c1 100644
--- a/pkgs/development/tools/build-managers/icmake/default.nix
+++ b/pkgs/development/tools/build-managers/icmake/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A program maintenance (make) utility using a C-like grammar";
+    description = "Program maintenance (make) utility using a C-like grammar";
     homepage = "https://fbb-git.gitlab.io/icmake/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ pSub ];
diff --git a/pkgs/development/tools/build-managers/kati/default.nix b/pkgs/development/tools/build-managers/kati/default.nix
index dba8eb6381fa5..9ceeb2f8c490c 100644
--- a/pkgs/development/tools/build-managers/kati/default.nix
+++ b/pkgs/development/tools/build-managers/kati/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "An experimental GNU make clone";
+    description = "Experimental GNU make clone";
     mainProgram = "ckati";
     homepage = "https://github.com/google/kati";
     platforms = platforms.all;
diff --git a/pkgs/development/tools/build-managers/knit/default.nix b/pkgs/development/tools/build-managers/knit/default.nix
index 6a2779cd7136d..387985087a7ed 100644
--- a/pkgs/development/tools/build-managers/knit/default.nix
+++ b/pkgs/development/tools/build-managers/knit/default.nix
@@ -27,7 +27,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "A simple and flexible build tool using Lua, similar to make/mk";
+    description = "Simple and flexible build tool using Lua, similar to make/mk";
     mainProgram = "knit";
     homepage = "https://github.com/zyedidia/knit";
     changelog = "https://github.com/zyedidia/knit/releases/tag/v${version}";
diff --git a/pkgs/development/tools/build-managers/leiningen/default.nix b/pkgs/development/tools/build-managers/leiningen/default.nix
index 168b4688343cc..4c10652d678fa 100644
--- a/pkgs/development/tools/build-managers/leiningen/default.nix
+++ b/pkgs/development/tools/build-managers/leiningen/default.nix
@@ -3,17 +3,16 @@
 
 stdenv.mkDerivation rec {
   pname = "leiningen";
-  version = "2.10.0";
+  version = "2.11.2";
 
   src = fetchurl {
     url = "https://codeberg.org/leiningen/leiningen/raw/tag/${version}/bin/lein-pkg";
-    hash = "sha256-sXV86UHky/Fcv2Sbe09BM2XmEtqJLSKEHsFyg5G7Zq8=";
+    hash = "sha256-KKGmJmjF9Ce0E6hnfjdq/6qZXwI7H80G4tTJisHfXz4=";
   };
 
-  # Check https://codeberg.org/leiningen/leiningen/releases to get the URL for the new version
   jarsrc = fetchurl {
-    url = "https://codeberg.org/attachments/43cebda5-a7c2-405b-b641-5143a00051b5";
-    hash = "sha256-0nKZutNAdawoZNC9BVn4NcbixHbAsKKDvL21dP2tuzQ=";
+    url = "https://codeberg.org/leiningen/leiningen/releases/download/${version}/leiningen-${version}-standalone.jar";
+    hash = "sha256-fTGuI652npJ0OLDNVdFak+faurCf1PwVh3l5Fh4Qh3Q=";
   };
 
   JARNAME = "${pname}-${version}-standalone.jar";
diff --git a/pkgs/development/tools/build-managers/mage/default.nix b/pkgs/development/tools/build-managers/mage/default.nix
index 066bbef7d6262..3ba789eacfe86 100644
--- a/pkgs/development/tools/build-managers/mage/default.nix
+++ b/pkgs/development/tools/build-managers/mage/default.nix
@@ -22,7 +22,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "A Make/Rake-like Build Tool Using Go";
+    description = "Make/Rake-like Build Tool Using Go";
     mainProgram = "mage";
     homepage = "https://magefile.org/";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/build-managers/mill/default.nix b/pkgs/development/tools/build-managers/mill/default.nix
index fc071b7e21224..bb24f55a2e9a6 100644
--- a/pkgs/development/tools/build-managers/mill/default.nix
+++ b/pkgs/development/tools/build-managers/mill/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, jre, makeWrapper }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "mill";
   version = "0.11.7";
 
   src = fetchurl {
-    url = "https://github.com/com-lihaoyi/mill/releases/download/${version}/${version}-assembly";
+    url = "https://github.com/com-lihaoyi/mill/releases/download/${finalAttrs.version}/${finalAttrs.version}-assembly";
     hash = "sha256-iijKZlQoiIWos+Kdq9hIgiM5yM7xCf11abrJ71LO9jA=";
   };
 
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://com-lihaoyi.github.io/mill/";
     license = licenses.mit;
-    description = "A build tool for Scala, Java and more";
+    description = "Build tool for Scala, Java and more";
     mainProgram = "mill";
     longDescription = ''
       Mill is a build tool borrowing ideas from modern tools like Bazel, to let you build
@@ -50,4 +50,4 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ scalavision zenithal ];
     platforms = lib.platforms.all;
   };
-}
+})
diff --git a/pkgs/development/tools/build-managers/moon/default.nix b/pkgs/development/tools/build-managers/moon/default.nix
index 1ffd2b95436db..5e6ad1c1e16fd 100644
--- a/pkgs/development/tools/build-managers/moon/default.nix
+++ b/pkgs/development/tools/build-managers/moon/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "moon";
-  version = "1.24.5";
+  version = "1.25.6";
 
   src = fetchFromGitHub {
     owner = "moonrepo";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-9ChvfyXo16wtIKqAHtmmU9veArCX+VtuaG0d6sxz8UE=";
+    hash = "sha256-DFBQryGbanytawHtD3ygSL9ypzM9hoxVoVB1H9ruPu4=";
   };
 
-  cargoHash = "sha256-C3uLmPb8nZVu5McfhVjlhE46ehtcoUesx5dNzzY+wAU=";
+  cargoHash = "sha256-6Ipfz4649vf7qsavkif/zNbElMiZPEi/2ZXHbRcxRTw=";
 
   env = {
     RUSTFLAGS = "-C strip=symbols";
@@ -36,7 +36,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A task runner and repo management tool for the web ecosystem, written in Rust";
+    description = "Task runner and repo management tool for the web ecosystem, written in Rust";
     mainProgram = "moon";
     homepage = "https://github.com/moonrepo/moon";
     license = licenses.mit;
diff --git a/pkgs/development/tools/build-managers/msbuild/default.nix b/pkgs/development/tools/build-managers/msbuild/default.nix
index 1f5261649b855..c9d6c19c450e9 100644
--- a/pkgs/development/tools/build-managers/msbuild/default.nix
+++ b/pkgs/development/tools/build-managers/msbuild/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, makeWrapper, glibcLocales, mono, nuget, unzip, dotnetCorePackages, writeText, roslyn }:
+{ lib, stdenv, fetchurl, makeWrapper, glibcLocales, mono, nuget, unzip, dotnetCorePackages, writeText, roslyn }:
 
 let
 
diff --git a/pkgs/development/tools/build-managers/muon/default.nix b/pkgs/development/tools/build-managers/muon/default.nix
index 92593bb60e5fe..a479dd23d29be 100644
--- a/pkgs/development/tools/build-managers/muon/default.nix
+++ b/pkgs/development/tools/build-managers/muon/default.nix
@@ -125,7 +125,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://muon.build/";
-    description = "An implementation of Meson build system in C99";
+    description = "Implementation of Meson build system in C99";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
diff --git a/pkgs/development/tools/build-managers/qbs/default.nix b/pkgs/development/tools/build-managers/qbs/default.nix
index 9d1305f776752..092f8efe785c3 100644
--- a/pkgs/development/tools/build-managers/qbs/default.nix
+++ b/pkgs/development/tools/build-managers/qbs/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ qtbase qtscript ];
 
   meta = with lib; {
-    description = "A tool that helps simplify the build process for developing projects across multiple platforms";
+    description = "Tool that helps simplify the build process for developing projects across multiple platforms";
     homepage = "https://wiki.qt.io/Qbs";
     license = licenses.lgpl3;
     maintainers = with maintainers; [ expipiplus1 ];
diff --git a/pkgs/development/tools/build-managers/rake/default.nix b/pkgs/development/tools/build-managers/rake/default.nix
index 9efb8881ab79c..0017a099be0de 100644
--- a/pkgs/development/tools/build-managers/rake/default.nix
+++ b/pkgs/development/tools/build-managers/rake/default.nix
@@ -8,7 +8,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "rake";
 
   meta = with lib; {
-    description = "A software task management and build automation tool";
+    description = "Software task management and build automation tool";
     homepage = "https://github.com/ruby/rake";
     license  = with licenses; mit;
     maintainers = with maintainers; [ manveru nicknovitski ];
diff --git a/pkgs/development/tools/build-managers/rebar3/rebar-deps.nix b/pkgs/development/tools/build-managers/rebar3/rebar-deps.nix
index 7f6be584098d7..21bb25c2e3086 100644
--- a/pkgs/development/tools/build-managers/rebar3/rebar-deps.nix
+++ b/pkgs/development/tools/build-managers/rebar3/rebar-deps.nix
@@ -1,6 +1,6 @@
 # Generated by rebar3_nix
 let fetchOnly = { src, ... }: src;
-in { builder ? fetchOnly, fetchHex, fetchgit, fetchFromGitHub, overrides ? (x: y: { }) }:
+in { builder ? fetchOnly, fetchHex, fetchgit, overrides ? (x: y: { }), ... }:
 let
   self = packages // (overrides self packages);
   packages = with self; {
diff --git a/pkgs/development/tools/build-managers/redo-c/default.nix b/pkgs/development/tools/build-managers/redo-c/default.nix
index 14d33cba03956..ffa93b0d7dcb5 100644
--- a/pkgs/development/tools/build-managers/redo-c/default.nix
+++ b/pkgs/development/tools/build-managers/redo-c/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An implementation of the redo build system in portable C with zero dependencies";
+    description = "Implementation of the redo build system in portable C with zero dependencies";
     homepage = "https://github.com/leahneukirchen/redo-c";
     license = licenses.cc0;
     platforms = platforms.all;
diff --git a/pkgs/development/tools/build-managers/redo/default.nix b/pkgs/development/tools/build-managers/redo/default.nix
index 594a0f8c2c439..08910725104ae 100644
--- a/pkgs/development/tools/build-managers/redo/default.nix
+++ b/pkgs/development/tools/build-managers/redo/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://jdebp.eu./Softwares/redo/";
-    description = "A system for building target files from source files";
+    description = "System for building target files from source files";
     license = lib.licenses.bsd2;
     maintainers = [ lib.maintainers.vrthra ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/tools/build-managers/sbt-extras/default.nix b/pkgs/development/tools/build-managers/sbt-extras/default.nix
index e510b0fd29adf..f3cbd6091ca18 100644
--- a/pkgs/development/tools/build-managers/sbt-extras/default.nix
+++ b/pkgs/development/tools/build-managers/sbt-extras/default.nix
@@ -1,16 +1,17 @@
 { lib, stdenv, fetchFromGitHub, which, curl, makeWrapper, jdk, writeScript
-, common-updater-scripts, cacert, git, nixfmt-classic, nix, jq, coreutils, gnused }:
+, common-updater-scripts, cacert, git, nixfmt-classic, nix, jq, coreutils
+, gnused }:
 
 stdenv.mkDerivation rec {
   pname = "sbt-extras";
-  rev = "e3e7378fa325f942da4b0688c83fc42e28bd67f1";
-  version = "2024-02-27";
+  rev = "7208170046457c70a67e4b86c833a074be9de958";
+  version = "2024-05-06";
 
   src = fetchFromGitHub {
     owner = "paulp";
     repo = "sbt-extras";
     inherit rev;
-    sha256 = "W9aol4bJ5UC1LICDlcV2uQH0YHLpLQwSn4GEBEujeiw=";
+    sha256 = "Ci4V1GHKzGux5qU33Z6+NC+YApqlQfgjekGb+WHtLaQ=";
   };
 
   dontBuild = true;
diff --git a/pkgs/development/tools/build-managers/sbt/default.nix b/pkgs/development/tools/build-managers/sbt/default.nix
index 3596f94b61de6..42b9a493d3e85 100644
--- a/pkgs/development/tools/build-managers/sbt/default.nix
+++ b/pkgs/development/tools/build-managers/sbt/default.nix
@@ -4,6 +4,7 @@
 , jre
 , autoPatchelfHook
 , zlib
+, ncurses
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -26,6 +27,11 @@ stdenv.mkDerivation (finalAttrs: {
     zlib
   ];
 
+  propagatedBuildInputs = [
+    # for infocmp
+    ncurses
+  ];
+
   installPhase = ''
     runHook preInstall
 
@@ -33,9 +39,9 @@ stdenv.mkDerivation (finalAttrs: {
     cp -ra . $out/share/sbt
     ln -sT ../share/sbt/bin/sbt $out/bin/sbt
     ln -sT ../share/sbt/bin/sbtn-${
-      if (stdenv.hostPlatform.isAarch64) then "aarch64" else "x86_64"
-    }-${
-      if (stdenv.isDarwin) then "apple-darwin" else "pc-linux"
+      if (stdenv.isDarwin) then "universal-apple-darwin"
+      else if (stdenv.hostPlatform.isAarch64) then "aarch64-pc-linux"
+      else "x86_64-pc-linux"
     } $out/bin/sbtn
 
     runHook postInstall
@@ -48,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
       binaryBytecode
       binaryNativeCode
     ];
-    description = "A build tool for Scala, Java and more";
+    description = "Build tool for Scala, Java and more";
     maintainers = with maintainers; [ nequissimus kashw2 ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/tools/build-managers/scala-cli/sources.json b/pkgs/development/tools/build-managers/scala-cli/sources.json
index aa8a580f45ac8..27db1b9db55e1 100644
--- a/pkgs/development/tools/build-managers/scala-cli/sources.json
+++ b/pkgs/development/tools/build-managers/scala-cli/sources.json
@@ -1,21 +1,21 @@
 {
-  "version": "1.3.1",
+  "version": "1.3.2",
   "assets": {
     "aarch64-darwin": {
       "asset": "scala-cli-aarch64-apple-darwin.gz",
-      "sha256": "04piwgd7jy7m4mx263lmlxfwh839q02b9jzycrr9bydqgfx7i0sk"
+      "sha256": "0xs60pnqsxxkamcq0n0am4jbnx4lgnr91ngcwxk0ccfpqf24jpk8"
     },
     "aarch64-linux": {
       "asset": "scala-cli-aarch64-pc-linux.gz",
-      "sha256": "0f01ilxr7zc0p6jcmn034j16ynjv1r2miik25pqlhcafjhv9sp20"
+      "sha256": "1419s6dnwk703mkp209m5fxqphx8g65h0b2kam3zs9z9rii3mjvs"
     },
     "x86_64-darwin": {
       "asset": "scala-cli-x86_64-apple-darwin.gz",
-      "sha256": "1yj49fskajf1fffkxh5hyg3vcrxyhjgcha1hj61dw0iblazfa440"
+      "sha256": "0ms7yggldckkyayz8wksyg79kgk6xl13g47a2jc7q66syzr495yw"
     },
     "x86_64-linux": {
       "asset": "scala-cli-x86_64-pc-linux.gz",
-      "sha256": "1kr035l4vwv76041yy82347f01kvbl8n676jd3dayzw48xg6j5l2"
+      "sha256": "1jy5xz8n79ck8gxcmy14ldsaj7dfrwrqgdfhp5h39hzvgcs1mjvl"
     }
   }
 }
diff --git a/pkgs/development/tools/build-managers/scons/3.1.2.nix b/pkgs/development/tools/build-managers/scons/3.1.2.nix
index 0bac0685b0d1f..a9d55f59ee0de 100644
--- a/pkgs/development/tools/build-managers/scons/3.1.2.nix
+++ b/pkgs/development/tools/build-managers/scons/3.1.2.nix
@@ -32,7 +32,7 @@ python3.pkgs.buildPythonApplication {
   };
 
   meta = {
-    description = "An improved, cross-platform substitute for Make";
+    description = "Improved, cross-platform substitute for Make";
     longDescription = ''
       SCons is an Open Source software construction tool. Think of SCons as an
       improved, cross-platform substitute for the classic Make utility with
diff --git a/pkgs/development/tools/build-managers/scons/4.1.0.nix b/pkgs/development/tools/build-managers/scons/4.1.0.nix
index f2edf5161aafa..13357dfb99a95 100644
--- a/pkgs/development/tools/build-managers/scons/4.1.0.nix
+++ b/pkgs/development/tools/build-managers/scons/4.1.0.nix
@@ -42,7 +42,7 @@ python3.pkgs.buildPythonApplication {
   };
 
   meta = {
-    description = "An improved, cross-platform substitute for Make";
+    description = "Improved, cross-platform substitute for Make";
     longDescription = ''
       SCons is an Open Source software construction tool. Think of SCons as an
       improved, cross-platform substitute for the classic Make utility with
diff --git a/pkgs/development/tools/build-managers/scons/4.5.2.nix b/pkgs/development/tools/build-managers/scons/4.5.2.nix
index f63702cb7ef44..6b5720c86ee62 100644
--- a/pkgs/development/tools/build-managers/scons/4.5.2.nix
+++ b/pkgs/development/tools/build-managers/scons/4.5.2.nix
@@ -47,7 +47,7 @@ python3.pkgs.buildPythonApplication {
   };
 
   meta = {
-    description = "An improved, cross-platform substitute for Make";
+    description = "Improved, cross-platform substitute for Make";
     longDescription = ''
       SCons is an Open Source software construction tool. Think of SCons as an
       improved, cross-platform substitute for the classic Make utility with
diff --git a/pkgs/development/tools/build-managers/xmake/default.nix b/pkgs/development/tools/build-managers/xmake/default.nix
index f0d48ac331d1e..8bb971deef84c 100644
--- a/pkgs/development/tools/build-managers/xmake/default.nix
+++ b/pkgs/development/tools/build-managers/xmake/default.nix
@@ -12,11 +12,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xmake";
-  version = "2.9.1";
+  version = "2.9.2";
 
   src = fetchurl {
     url = "https://github.com/xmake-io/xmake/releases/download/v${version}/xmake-v${version}.tar.gz";
-    hash = "sha256-ox2++MMDrqEmgGi0sawa7BQqxBJMfLfZx+61fEFPjRU=";
+    hash = "sha256-H2F7akVox+s+irDzpnwWmJJFrcVH46fR/YYayzCPtbI=";
   };
 
   nativeBuildInputs = [
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--external=y" ];
 
   meta = with lib; {
-    description = "A cross-platform build utility based on Lua";
+    description = "Cross-platform build utility based on Lua";
     homepage = "https://xmake.io";
     license = licenses.asl20;
     platforms = lua.meta.platforms;
diff --git a/pkgs/development/tools/buildah/default.nix b/pkgs/development/tools/buildah/default.nix
index d1ba00dc616d6..531e87df84bcd 100644
--- a/pkgs/development/tools/buildah/default.nix
+++ b/pkgs/development/tools/buildah/default.nix
@@ -17,13 +17,13 @@
 
 buildGoModule rec {
   pname = "buildah";
-  version = "1.35.4";
+  version = "1.36.0";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "buildah";
     rev = "v${version}";
-    hash = "sha256-lcB23yU7Wn+aILGFLDBnFg30NRDQgJt3J61FmGuQtRo=";
+    hash = "sha256-Ttz1D/jFbxFfpbT2VAkcao2AFwFRD8PLrH8yDSYt3AI=";
   };
 
   outputs = [ "out" "man" ];
@@ -69,7 +69,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A tool which facilitates building OCI images";
+    description = "Tool which facilitates building OCI images";
     mainProgram = "buildah";
     homepage = "https://buildah.io/";
     changelog = "https://github.com/containers/buildah/releases/tag/v${version}";
diff --git a/pkgs/development/tools/buildah/wrapper.nix b/pkgs/development/tools/buildah/wrapper.nix
index 7b9a672d69938..b5042ae1b8273 100644
--- a/pkgs/development/tools/buildah/wrapper.nix
+++ b/pkgs/development/tools/buildah/wrapper.nix
@@ -14,6 +14,7 @@
 , iptables
 , aardvark-dns
 , netavark
+, passt
 }:
 
 let
@@ -36,6 +37,7 @@ let
     ] ++ lib.optionals stdenv.isLinux [
       aardvark-dns
       netavark
+      passt
     ];
   };
 
diff --git a/pkgs/development/tools/buildkit/default.nix b/pkgs/development/tools/buildkit/default.nix
index e4b9f050d6f34..89a1ea0e09867 100644
--- a/pkgs/development/tools/buildkit/default.nix
+++ b/pkgs/development/tools/buildkit/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "buildkit";
-  version = "0.13.2";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
     owner = "moby";
     repo = "buildkit";
     rev = "v${version}";
-    hash = "sha256-Kb5p838jezDTJnc2jcKnima1gE7ENMm+4cmN6F6vh+Y=";
+    hash = "sha256-I0r9ovydRmGdg5EB+b69Iv2BuvVy82Ydz40UWmStumc=";
   };
 
   vendorHash = null;
diff --git a/pkgs/development/tools/buildpack/default.nix b/pkgs/development/tools/buildpack/default.nix
index 307a5e58493f0..1acea5abc6ef0 100644
--- a/pkgs/development/tools/buildpack/default.nix
+++ b/pkgs/development/tools/buildpack/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "pack";
-  version = "0.33.2";
+  version = "0.34.2";
 
   src = fetchFromGitHub {
     owner = "buildpacks";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-nKMgyMPPBon3DChkikNvb2s41osub+fdCeGFzXwhQJo=";
+    hash = "sha256-1s/0eBRnir2MyrDALcOi5drCIJVkrPBB4RXKX08mxKs=";
   };
 
-  vendorHash = "sha256-/2GO99kfZTra7tJy90Y0nixNafiP65ZpDQnvEhOaGoA=";
+  vendorHash = "sha256-jhgTHhiQUDf9738Zusk1SxEae9G6MQapBRq7DBN5Tuc=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/development/tools/bunyan-rs/default.nix b/pkgs/development/tools/bunyan-rs/default.nix
index 28f53a148e22d..314af560ca87b 100644
--- a/pkgs/development/tools/bunyan-rs/default.nix
+++ b/pkgs/development/tools/bunyan-rs/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "sha256-sQ6f8BHGsPFPchFDjNlZimnu9i99SGYf5bYfM1/2Gac=";
 
   meta = with lib; {
-    description = "A CLI to pretty print logs in bunyan format (Rust port of the original JavaScript bunyan CLI)";
+    description = "CLI to pretty print logs in bunyan format (Rust port of the original JavaScript bunyan CLI)";
     homepage = "https://github.com/LukeMathWalker/bunyan";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ netcrns ];
diff --git a/pkgs/development/tools/butane/default.nix b/pkgs/development/tools/butane/default.nix
index 3c13c8971af80..01ba6089364ea 100644
--- a/pkgs/development/tools/butane/default.nix
+++ b/pkgs/development/tools/butane/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "butane";
-  version = "0.20.0";
+  version = "0.21.0";
 
   src = fetchFromGitHub {
     owner = "coreos";
     repo = "butane";
     rev = "v${version}";
-    hash = "sha256-bSzXiA9dAMuljKCDpbWd1hSICNBAMCAUGPLH+0Sz1mA=";
+    hash = "sha256-KsI+mt7nJHwrq0+GPNcI79jRy/4WEjHp2/egw0PcRLM=";
   };
 
   vendorHash = null;
diff --git a/pkgs/development/tools/capnproto-java/default.nix b/pkgs/development/tools/capnproto-java/default.nix
index fa59a5ad2abf5..73c068543fb3b 100644
--- a/pkgs/development/tools/capnproto-java/default.nix
+++ b/pkgs/development/tools/capnproto-java/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, capnproto, pkg-config }:
+{ lib, stdenv, fetchFromGitHub, capnproto, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "capnproto-java";
diff --git a/pkgs/development/tools/cbfmt/default.nix b/pkgs/development/tools/cbfmt/default.nix
index f4af306400ab3..6b13d852b201d 100644
--- a/pkgs/development/tools/cbfmt/default.nix
+++ b/pkgs/development/tools/cbfmt/default.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A tool to format codeblocks inside markdown and org documents";
+    description = "Tool to format codeblocks inside markdown and org documents";
     mainProgram = "cbfmt";
     homepage = "https://github.com/lukas-reineke/cbfmt";
     license = licenses.mit;
diff --git a/pkgs/development/tools/cddl/default.nix b/pkgs/development/tools/cddl/default.nix
index f99e547435ce9..3192a1d4ffbec 100644
--- a/pkgs/development/tools/cddl/default.nix
+++ b/pkgs/development/tools/cddl/default.nix
@@ -32,7 +32,7 @@ bundlerApp rec {
   passthru.updateScript = bundlerUpdateScript "cddl";
 
   meta = with lib; {
-    description = "A parser, generator, and validator for CDDL";
+    description = "Parser, generator, and validator for CDDL";
     homepage    = "https://rubygems.org/gems/cddl";
     license     = with licenses; mit;
     maintainers = with maintainers; [ fdns nicknovitski amesgen ];
diff --git a/pkgs/development/tools/cdecrypt/default.nix b/pkgs/development/tools/cdecrypt/default.nix
index 9f742a34a002e..4965eb31e98cc 100644
--- a/pkgs/development/tools/cdecrypt/default.nix
+++ b/pkgs/development/tools/cdecrypt/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A utility that decrypts Wii U NUS content files";
+    description = "Utility that decrypts Wii U NUS content files";
     mainProgram = "cdecrypt";
     homepage = "https://github.com/VitaSmith/cdecrypt";
     changelog = "https://github.com/VitaSmith/cdecrypt/releases/tag/v${version}";
diff --git a/pkgs/development/tools/ceedling/default.nix b/pkgs/development/tools/ceedling/default.nix
index 5910b47b7424a..25c6dd5bb8364 100644
--- a/pkgs/development/tools/ceedling/default.nix
+++ b/pkgs/development/tools/ceedling/default.nix
@@ -8,7 +8,7 @@ bundlerApp {
   exes = [ "ceedling" ];
 
   meta = with lib; {
-    description = "A build system for C projects that is something of an extension around Ruby's Rake";
+    description = "Build system for C projects that is something of an extension around Ruby's Rake";
     homepage    = "http://www.throwtheswitch.org/ceedling";
     license     = licenses.mit;
     platforms   = platforms.unix;
diff --git a/pkgs/development/tools/check-jsonschema/default.nix b/pkgs/development/tools/check-jsonschema/default.nix
index c4cd5903ddeb6..fa2d4920a26be 100644
--- a/pkgs/development/tools/check-jsonschema/default.nix
+++ b/pkgs/development/tools/check-jsonschema/default.nix
@@ -4,7 +4,7 @@ with python3.pkgs;
 
 buildPythonApplication rec {
   pname = "check-jsonschema";
-  version = "0.28.3";
+  version = "0.28.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -13,7 +13,7 @@ buildPythonApplication rec {
     owner = "python-jsonschema";
     repo = "check-jsonschema";
     rev = "refs/tags/${version}";
-    hash = "sha256-1nbaaUr/3yX/ZTTXzlwLKCRsa58UFONQnDWmcvmdhsU=";
+    hash = "sha256-O2w9P/5og0cI7Ol+d5YVwLuvCjiskrRLL3V/jsYB4k4=";
   };
 
   propagatedBuildInputs = [
@@ -40,7 +40,7 @@ buildPythonApplication rec {
   ];
 
   meta = with lib; {
-    description = "A jsonschema CLI and pre-commit hook";
+    description = "Jsonschema CLI and pre-commit hook";
     mainProgram = "check-jsonschema";
     homepage = "https://github.com/python-jsonschema/check-jsonschema";
     changelog = "https://github.com/python-jsonschema/check-jsonschema/blob/${version}/CHANGELOG.rst";
diff --git a/pkgs/development/tools/check/default.nix b/pkgs/development/tools/check/default.nix
index 8f068c678896d..e7bb571cb199c 100644
--- a/pkgs/development/tools/check/default.nix
+++ b/pkgs/development/tools/check/default.nix
@@ -18,7 +18,7 @@ buildGoModule rec {
   vendorHash = "sha256-DyysiVYFpncmyCzlHIOEtWlCMpm90AC3gdItI9WinSo=";
 
   meta = with lib; {
-    description = "A set of utilities for checking Go sources";
+    description = "Set of utilities for checking Go sources";
     homepage = "https://gitlab.com/opennota/check";
     license = licenses.gpl3;
     maintainers = with maintainers; [ kalbasit ];
diff --git a/pkgs/development/tools/click/default.nix b/pkgs/development/tools/click/default.nix
index da05368a2ce4b..7c6bb5ba6c3f3 100644
--- a/pkgs/development/tools/click/default.nix
+++ b/pkgs/development/tools/click/default.nix
@@ -83,7 +83,7 @@ buildPythonApplication {
   ];
 
   meta = {
-    description = "A tool to build click packages. Mainly used for Ubuntu Touch.";
+    description = "Tool to build click packages. Mainly used for Ubuntu Touch";
     homepage = "https://gitlab.com/ubports/development/core/click";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ ilyakooo0 OPNA2608 ];
diff --git a/pkgs/development/tools/clickable/default.nix b/pkgs/development/tools/clickable/default.nix
index 82a276f9aff0e..5400e4189379d 100644
--- a/pkgs/development/tools/clickable/default.nix
+++ b/pkgs/development/tools/clickable/default.nix
@@ -75,7 +75,7 @@ buildPythonPackage rec {
     ];
 
   meta = {
-    description = "A build system for Ubuntu Touch apps";
+    description = "Build system for Ubuntu Touch apps";
     mainProgram = "clickable";
     homepage = "https://clickable-ut.dev";
     changelog = "https://clickable-ut.dev/en/latest/changelog.html";
diff --git a/pkgs/development/tools/clj-kondo/default.nix b/pkgs/development/tools/clj-kondo/default.nix
index f1900ed9a3302..bfdcdb3ee0873 100644
--- a/pkgs/development/tools/clj-kondo/default.nix
+++ b/pkgs/development/tools/clj-kondo/default.nix
@@ -3,12 +3,12 @@
 
 buildGraalvmNativeImage rec {
   pname = "clj-kondo";
-  version = "2024.03.13";
+  version = "2024.05.24";
 
   src = fetchurl {
     url =
       "https://github.com/clj-kondo/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
-    sha256 = "sha256-4V0YtGRbSzebxGYkoyCJEA4e1vtYWNbIHyXOlTfvGTU=";
+    sha256 = "sha256-vqdTfsIRPi2VlJLcbesRSqa/KFgqbk13vJBbEYd3heM=";
   };
 
   graalvmDrv = graalvmCEPackages.graalvm-ce;
@@ -23,7 +23,7 @@ buildGraalvmNativeImage rec {
   '';
 
   meta = with lib; {
-    description = "A linter for Clojure code that sparks joy";
+    description = "Linter for Clojure code that sparks joy";
     homepage = "https://github.com/clj-kondo/clj-kondo";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.epl10;
diff --git a/pkgs/development/tools/cloud-nuke/default.nix b/pkgs/development/tools/cloud-nuke/default.nix
index 122a9826d664a..2ca64c5c74e67 100644
--- a/pkgs/development/tools/cloud-nuke/default.nix
+++ b/pkgs/development/tools/cloud-nuke/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "cloud-nuke";
-  version = "0.35.0";
+  version = "0.36.0";
 
   src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-mSkQW4fSpylbOS8x/o/578NV+SU4ao/yqB81Ifb7LFQ=";
+    hash = "sha256-OFfcr8BXkTEB6lxImwHVFxnvursGcg83dVWsjegKf4w=";
   };
 
-  vendorHash = "sha256-Fmfr9feTibAjiZaakJalGTS7X2RhGz6engMNhy48Zus=";
+  vendorHash = "sha256-ealTxDNG6uJc0Lb20e8W3zv0azgpwI2kBn92d0lWaoc=";
 
   nativeBuildInputs = [
     makeBinaryWrapper
@@ -35,7 +35,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/gruntwork-io/cloud-nuke";
-    description = "A tool for cleaning up your cloud accounts by nuking (deleting) all resources within it";
+    description = "Tool for cleaning up your cloud accounts by nuking (deleting) all resources within it";
     mainProgram = "cloud-nuke";
     changelog = "https://github.com/gruntwork-io/cloud-nuke/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/tools/cloudsmith-cli/default.nix b/pkgs/development/tools/cloudsmith-cli/default.nix
index bfdb2416bde5a..0131a5029060f 100644
--- a/pkgs/development/tools/cloudsmith-cli/default.nix
+++ b/pkgs/development/tools/cloudsmith-cli/default.nix
@@ -1,19 +1,37 @@
 { lib
 , python3
-, fetchPypi
+, fetchFromGitHub
+, fetchpatch
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "cloudsmith-cli";
-  version = "1.2.3";
-  format = "wheel";
+  version = "1.2.5";
+  format = "setuptools";
 
-  src = fetchPypi {
-    pname = "cloudsmith_cli";
-    inherit format version;
-    hash = "sha256-MIoRLWk6G8uchQlGOYOsg3XliZ1wMrYSOhAEQrus+fQ=";
+  src = fetchFromGitHub {
+    owner = "cloudsmith-io";
+    repo = "cloudsmith-cli";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-UzyfOmjJzYEJYA6c4kn5XCvRVIMuiIpiq0kH9UhBwmo=";
   };
 
+  patches = [
+    # Fix compatibility with urllib3 2.0
+    (fetchpatch {
+      url = "https://github.com/cloudsmith-io/cloudsmith-cli/commit/1a8d2d91c01320537b26778003735d6b694141c2.patch";
+      revert = true;
+      includes = [
+        "cloudsmith_cli/core/rest.py"
+      ];
+      hash = "sha256-Rf3MMJuLr8fzkRqSftIJ1eUbgNdfrng2V609jYvpogc=";
+    })
+  ];
+
+  nativeBuildInputs = with python3.pkgs; [
+    pip
+  ];
+
   propagatedBuildInputs = with python3.pkgs; [
     click
     click-configfile
@@ -30,13 +48,38 @@ python3.pkgs.buildPythonApplication rec {
     setuptools # needs pkg_resources
   ];
 
-  # Wheels have no tests
-  doCheck = false;
+  nativeCheckInputs = with python3.pkgs; [
+    pytestCheckHook
+    pytest-cov
+  ];
+
+  checkInputs = with python3.pkgs; [
+    httpretty
+  ];
 
   pythonImportsCheck = [
     "cloudsmith_cli"
   ];
 
+  postPatch = ''
+    # Permit urllib3 2.0
+    substituteInPlace setup.py \
+      --replace-fail 'urllib3<2.0' 'urllib3'
+  '';
+
+  preCheck = ''
+    # E   _pytest.pathlib.ImportPathMismatchError: ('cloudsmith_cli.cli.tests.conftest', '/build/source/build/lib/cloudsmith_cli/cli/tests/conftest.py', PosixPath('/build/source/cloudsmith_cli/cli/tests/conftest.py'))
+    # ___________ ERROR collecting cloudsmith_cli/core/tests/test_init.py ____________
+    # import file mismatch:
+    # imported module 'cloudsmith_cli.core.tests.test_init' has this __file__ attribute:
+    #   /build/source/build/lib/cloudsmith_cli/core/tests/test_init.py
+    # which is not the same as the test file we want to collect:
+    #   /build/source/cloudsmith_cli/core/tests/test_init.py
+    # HINT: remove __pycache__ / .pyc files and/or use a unique basename for your test file modules
+    # https://github.com/NixOS/nixpkgs/issues/255262
+    cd "$out"
+  '';
+
   meta = with lib; {
     homepage = "https://help.cloudsmith.io/docs/cli/";
     description = "Cloudsmith Command Line Interface";
diff --git a/pkgs/development/tools/cmake-format/default.nix b/pkgs/development/tools/cmake-format/default.nix
index 85efc5f19ccfd..281f36dfe0070 100644
--- a/pkgs/development/tools/cmake-format/default.nix
+++ b/pkgs/development/tools/cmake-format/default.nix
@@ -31,6 +31,7 @@ buildPythonApplication rec {
     homepage = "https://github.com/cheshirekow/cmake_format";
     license = licenses.gpl3;
     maintainers = [ maintainers.tobim ];
+    mainProgram = "cmake-format";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/cocogitto/default.nix b/pkgs/development/tools/cocogitto/default.nix
index e193ce4e09414..aae8fb39722c3 100644
--- a/pkgs/development/tools/cocogitto/default.nix
+++ b/pkgs/development/tools/cocogitto/default.nix
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A set of cli tools for the conventional commit and semver specifications";
+    description = "Set of cli tools for the conventional commit and semver specifications";
     mainProgram = "cog";
     homepage = "https://github.com/oknozor/cocogitto";
     license = licenses.mit;
diff --git a/pkgs/development/tools/code-maat/default.nix b/pkgs/development/tools/code-maat/default.nix
index c5aa3c0b5d842..2046322390c11 100644
--- a/pkgs/development/tools/code-maat/default.nix
+++ b/pkgs/development/tools/code-maat/default.nix
@@ -36,7 +36,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
     '';
 
   meta = with lib; {
-    description = "A command line tool to mine and analyze data from version-control systems";
+    description = "Command line tool to mine and analyze data from version-control systems";
     mainProgram = "code-maat";
     homepage = "https://github.com/adamtornhill/code-maat";
     platforms = platforms.unix;
diff --git a/pkgs/development/tools/codeowners/default.nix b/pkgs/development/tools/codeowners/default.nix
index 3a92def28895d..703d46efa7fe3 100644
--- a/pkgs/development/tools/codeowners/default.nix
+++ b/pkgs/development/tools/codeowners/default.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
   vendorHash = "sha256-G+oaX3SXsHJu3lq6n8dLmoRXDAYcFkrYarwePB/MdEU=";
 
   meta = with lib; {
-    description = "A CLI and Go library for Github's CODEOWNERS file";
+    description = "CLI and Go library for Github's CODEOWNERS file";
     mainProgram = "codeowners";
     homepage = "https://github.com/hmarr/codeowners";
     license = licenses.mit;
diff --git a/pkgs/development/tools/coder/default.nix b/pkgs/development/tools/coder/default.nix
index df4522faf26ea..a1cbbf93d07b2 100644
--- a/pkgs/development/tools/coder/default.nix
+++ b/pkgs/development/tools/coder/default.nix
@@ -13,21 +13,21 @@ let
 
   channels = {
     stable = {
-      version = "2.10.2";
+      version = "2.11.2";
       hash = {
-        x86_64-linux = "sha256-U3qHEjIKq8JkpDp6TehMs6t5L3GpSGt4D10XSAQ9Ii0=";
-        x86_64-darwin = "sha256-ibfqqxRRD3IfIN2FqSxk5qd7d87RvBgKKFv9F0hACgo=";
-        aarch64-linux = "sha256-HdBVnLKen6W1crZfnc2hpA0cAYIYeYFHKvANwnLqkjY=";
-        aarch64-darwin = "sha256-3sHmR6PTRlBSIdD4rja4y8v0gOY4cbbyhW7qssgpqp8=";
+        x86_64-linux = "sha256-kvQPrYGDkfzTOb3c9f3VNdg3oltKmm1Z4pXeHJ9LIyo=";
+        x86_64-darwin = "sha256-AUfbdJNBK2fCJ6Pq4gkH4+y/undu6Nx64wcejVAB7iU=";
+        aarch64-linux = "sha256-FWgTLE3fW/6j1W1FNDqyVOTMGuFqc4e3Eq2tj8IEcWk=";
+        aarch64-darwin = "sha256-oM+dEUYNUcYHemDWYBf5mqUo3aHXEu6LUuLOboGfTrQ=";
       };
     };
     mainline = {
-      version = "2.11.0";
+      version = "2.12.1";
       hash = {
-        x86_64-linux = "sha256-aJwL4WCJXxSBrfaUHEECQqedz2lKBOa8sdRItSBpxp4=";
-        x86_64-darwin = "sha256-4D4MoDrEJtawFeUBG9BiJ6HZ9uqx9uQDIHHNB7m2pp8=";
-        aarch64-linux = "sha256-2UlCxykSfnK50OPb61YC42MTTlPL1njf0vpwmqaUbI8=";
-        aarch64-darwin = "sha256-mh0Lr+SH4jZTx1xH7QoqfSLDma5nS61sv31QuOYAgQk=";
+        x86_64-linux = "sha256-YOm2qpw9c5L0bwcodR0quUO2d0eRqDBeUfGB6bZNC9I=";
+        x86_64-darwin = "sha256-ePpwnXoVQby0l4Az8OtygPBpXumjIR8MaDVPH4FzrwM=";
+        aarch64-linux = "sha256-ZPAWzLjtJsgtcMT+w2n8o4cQtQ7HXrL+EejOib/Ab3c=";
+        aarch64-darwin = "sha256-ZcJiLLcZcge0MXiuQH4slAqxXLuytdHL+LZfUNx25jY=";
       };
     };
   };
diff --git a/pkgs/development/tools/comby/default.nix b/pkgs/development/tools/comby/default.nix
index f6f7357c1557b..ad7ab8559688f 100644
--- a/pkgs/development/tools/comby/default.nix
+++ b/pkgs/development/tools/comby/default.nix
@@ -16,7 +16,7 @@ let
       inherit pname preBuild;
       version = "1.8.1";
       duneVersion = "3";
-      minimalOcamlVersion = "4.08.1";
+      minimalOCamlVersion = "4.08.1";
       doCheck = true;
 
       src = fetchFromGitHub {
diff --git a/pkgs/development/tools/conftest/default.nix b/pkgs/development/tools/conftest/default.nix
index d44aedf372bfe..76974e0fd25a5 100644
--- a/pkgs/development/tools/conftest/default.nix
+++ b/pkgs/development/tools/conftest/default.nix
@@ -6,15 +6,15 @@
 
 buildGoModule rec {
   pname = "conftest";
-  version = "0.52.0";
+  version = "0.53.0";
 
   src = fetchFromGitHub {
     owner = "open-policy-agent";
     repo = "conftest";
     rev = "refs/tags/v${version}";
-    hash = "sha256-TjBBKFWyqrqeiddAn5SDiLZ4HirWC4vYwIEA43IFSxY=";
+    hash = "sha256-Fg9U6xCOivolwpH4C63HAhSEcfkTJYrNRzwr0OLtLqs=";
   };
-  vendorHash = "sha256-wQBeKPT/MSTd89UmtwKH7uX3sv7x1N5MXMKo/DZRmBk=";
+  vendorHash = "sha256-tFJf0wYai1Nc8zbTXE/FSM0K7IkGQjsrMCwpi3rcwzg=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/development/tools/continuous-integration/buildbot/master.nix b/pkgs/development/tools/continuous-integration/buildbot/master.nix
index 7bf5eeab82ec4..a0e11089497c2 100644
--- a/pkgs/development/tools/continuous-integration/buildbot/master.nix
+++ b/pkgs/development/tools/continuous-integration/buildbot/master.nix
@@ -1,7 +1,8 @@
 { lib
 , stdenv
 , buildPythonApplication
-, fetchPypi
+, fetchFromGitHub
+, fetchpatch
 , makeWrapper
 # Tie withPlugins through the fixed point here, so it will receive an
 # overridden version properly
@@ -72,14 +73,16 @@ let
 in
 buildPythonApplication rec {
   pname = "buildbot";
-  version = "3.11.2";
+  version = "3.11.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-x7RaApfIe1x7Py1KLQCcotxU6dJRXTOk67W+QOhNJf0=";
+  src = fetchFromGitHub {
+    owner = "buildbot";
+    repo = "buildbot";
+    rev = "v${version}";
+    hash = "sha256-rDbAWLoEEjygW72YDBsVwiaHdRTVYA9IFxY3XMDleho=";
   };
 
   build-system = [
@@ -134,10 +137,20 @@ buildPythonApplication rec {
     # This patch disables the test that tries to read /etc/os-release which
     # is not accessible in sandboxed builds.
     ./skip_test_linux_distro.patch
+    # Fix gitpoller, source: https://github.com/buildbot/buildbot/pull/7664
+    # Included in next release.
+    (fetchpatch {
+      url = "https://github.com/buildbot/buildbot/commit/dd5d61e63e3b0740cc538a225ccf104ccecfc734.patch";
+      sha256 = "sha256-CL6uRaKxh8uCBfWQ0tNiLh2Ym0HVatWni8hcuTyAAw0=";
+      excludes = ["master/buildbot/test/unit/changes/test_gitpoller.py"];
+    })
   ];
 
   postPatch = ''
-    substituteInPlace buildbot/scripts/logwatcher.py --replace '/usr/bin/tail' "$(type -P tail)"
+    substituteInPlace master/buildbot/scripts/logwatcher.py --replace '/usr/bin/tail' "$(type -P tail)"
+  '';
+  preBuild = ''
+    cd master
   '';
 
   # Silence the depreciation warning from SqlAlchemy
@@ -163,7 +176,7 @@ buildPythonApplication rec {
   };
 
   meta = with lib; {
-    description = "An open-source continuous integration framework for automating software build, test, and release processes";
+    description = "Open-source continuous integration framework for automating software build, test, and release processes";
     homepage = "https://buildbot.net/";
     changelog = "https://github.com/buildbot/buildbot/releases/tag/v${version}";
     maintainers = teams.buildbot.members;
diff --git a/pkgs/development/tools/continuous-integration/buildbot/pkg.nix b/pkgs/development/tools/continuous-integration/buildbot/pkg.nix
index d121ec68cbded..a93cbf28e3b84 100644
--- a/pkgs/development/tools/continuous-integration/buildbot/pkg.nix
+++ b/pkgs/development/tools/continuous-integration/buildbot/pkg.nix
@@ -6,7 +6,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ZgDHPC2j3vV3m7wBZhUUh/Th/oGKq+8RxnfQ71Cr6oY=";
+    hash = "sha256-pO2TmTwbY0cnR+882pl7wDiR6JEK+sHHpAltKmTxiIM=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/tools/continuous-integration/buildbot/plugins.nix b/pkgs/development/tools/continuous-integration/buildbot/plugins.nix
index ade8f2e243d47..7403498a8c614 100644
--- a/pkgs/development/tools/continuous-integration/buildbot/plugins.nix
+++ b/pkgs/development/tools/continuous-integration/buildbot/plugins.nix
@@ -8,7 +8,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-xOsz71kprzKKqvvwpsZTACWf4z+Svx9BQ72xGEZXKdw=";
+      hash = "sha256-EL5iZ257VXnL+29Jr6r3PVeURX1AcugfZ4RLTjClsXo=";
     };
 
     # Remove unnecessary circular dependency on buildbot
@@ -35,7 +35,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-wUiMEAFmqjHXPjnPhsaLWqxvOXyEQIeRBL4W3LB3vkw=";
+      hash = "sha256-5QLw5nXnU+z11E5Tgvu9bbbpCTRpV2zXndukcZPRjtE=";
     };
 
     # Remove unnecessary circular dependency on buildbot
@@ -62,7 +62,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-KerHS5F4b30TvlGeSf6QLUt49S6Iki7O5nex6KPypJY=";
+      hash = "sha256-tzqifo9A/KJF9dLpO7jblVaDjx7++v0wLz1Olc79JxI=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -84,7 +84,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-XrywoVM2ErJ4i7WrRKPRaCOwt5JVDJT6xP7L/Dfv+gk=";
+      hash = "sha256-fzaqYmaO+vWnQpUvOsPCny3W27atcIHsgeGV6dKEJeg=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -106,7 +106,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-mhVbuOhe0BrXHbn8bd41Q7I8Xak7fO8ahIK0r113vGY=";
+      hash = "sha256-BLIs91k8/A4LYMTDgct7TOWFoLU4qK47Javr8qRzkZQ=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -128,7 +128,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-X89XrjdD0GL7MabLWtkQcdCa4Ain1AGre6mXF/inmck=";
+      hash = "sha256-dX+tp+WidfLy612+41jz+do/iXQTaIQPcetG8td3jp4=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -150,7 +150,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-YH5SfYuW07Pp00LoBvcDB8MiHB1HzYWg5kQVICrkS5s=";
+      hash = "sha256-2kLGdvmf2mnF21gkDCf6h+bhnsxveaNNh95qczRY824=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -172,7 +172,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-rmyAsFCTeIYPdrlWDCxlbjw+BCKwcIaTHlK8KJP0T88=";
+      hash = "sha256-rIAbk9+6Wi1PCjizHp9p6jpCwaBgBT5Ch1Sa4VKDoww=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -194,7 +194,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-Ls3NJka5vVTx1GW9bnr3jlulj7/pNkX9omXrTIWrwtU=";
+      hash = "sha256-D9mjEKFrh+ytNbpuN/06XbiBnKjFLopXfjDg28j7niw=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -216,7 +216,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-t3LLZJ+kPcowqSyeRcuH3kEjBEiju1MI0z1qhU6KPBs=";
+      hash = "sha256-q3In0IMAIBUjxSzv4LlH9EJukLYJ3WzoEYkFBZB96W8=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -238,7 +238,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-//MftUqUWE2+RpxRPzDEH7tOCN2D1HD8dETZw1OQe5s=";
+      hash = "sha256-TK4KYn3CWxymTsKWeqHr2i5rdO9ZDHvJrb9RqfKNJV4=";
     };
 
     buildInputs = [ buildbot-pkg ];
diff --git a/pkgs/development/tools/continuous-integration/buildbot/skip_test_linux_distro.patch b/pkgs/development/tools/continuous-integration/buildbot/skip_test_linux_distro.patch
index 8fe5c7b56b4f2..e7190680ad2e1 100644
--- a/pkgs/development/tools/continuous-integration/buildbot/skip_test_linux_distro.patch
+++ b/pkgs/development/tools/continuous-integration/buildbot/skip_test_linux_distro.patch
@@ -1,6 +1,6 @@
-diff -Nur buildbot-0.9.6/buildbot/test/unit/test_buildbot_net_usage_data.py buildbot-0.9.6.patched/buildbot/test/unit/test_buildbot_net_usage_data.py
---- buildbot-0.9.6/buildbot/test/unit/test_buildbot_net_usage_data.py	2017-04-19 16:57:02.000000000 +0200
-+++ buildbot-0.9.6.patched/buildbot/test/unit/test_buildbot_net_usage_data.py	2017-05-04 12:22:54.575762551 +0200
+diff -Nur buildbot-0.9.6/master/buildbot/test/unit/test_buildbot_net_usage_data.py buildbot-0.9.6.patched/buildbot/test/unit/test_buildbot_net_usage_data.py
+--- buildbot-0.9.6/master/buildbot/test/unit/test_buildbot_net_usage_data.py	2017-04-19 16:57:02.000000000 +0200
++++ buildbot-0.9.6.patched/master/buildbot/test/unit/test_buildbot_net_usage_data.py	2017-05-04 12:22:54.575762551 +0200
 @@ -147,6 +147,7 @@
          _sendBuildbotNetUsageData({'foo': 'bar'})
  
diff --git a/pkgs/development/tools/continuous-integration/buildbot/worker.nix b/pkgs/development/tools/continuous-integration/buildbot/worker.nix
index 80e255153b778..071559eccf6c2 100644
--- a/pkgs/development/tools/continuous-integration/buildbot/worker.nix
+++ b/pkgs/development/tools/continuous-integration/buildbot/worker.nix
@@ -28,7 +28,7 @@ buildPythonPackage (rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-7DAo1Yy20FeWXawV4wHzXDGtgyIGDJQuD2joJma96rM=";
+    hash = "sha256-TFymBnUufOEWZ/IUKd7nebZ+yl58ZChFkGrUxOXn28g=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix b/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix
index 5e191cb83b327..dd81126d68fd1 100644
--- a/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix
+++ b/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix
@@ -24,7 +24,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" "-X main.VERSION=${version}" ];
 
   meta = with lib; {
-    description = "A command line interface for Buildkite";
+    description = "Command line interface for Buildkite";
     homepage = "https://github.com/buildkite/cli";
     license = licenses.mit;
     maintainers = with maintainers; [ groodt ];
diff --git a/pkgs/development/tools/continuous-integration/cirrus-cli/default.nix b/pkgs/development/tools/continuous-integration/cirrus-cli/default.nix
index c9b74bfb0f4e8..e50259bed2366 100644
--- a/pkgs/development/tools/continuous-integration/cirrus-cli/default.nix
+++ b/pkgs/development/tools/continuous-integration/cirrus-cli/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "cirrus-cli";
-  version = "0.118.0";
+  version = "0.119.1";
 
   src = fetchFromGitHub {
     owner = "cirruslabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-b3riwH3/hsn5PL3QYk/TzVrMpVCVaFxn9gbEn0oTILQ=";
+    sha256 = "sha256-nEGeh0ZTYE4Ff0x+1G38KUFcUsr39kvM8QUfmHCFyK4=";
   };
 
-  vendorHash = "sha256-d3cHXO4SFeNybiVDc3dUmd1XzUJ1SlMqSw7KPC3ZrXQ=";
+  vendorHash = "sha256-rL4bXt6VBG2b9nZ1M2FF6E8ODPT3UF4aRHSJqpVWyTw=";
 
   ldflags = [
     "-X github.com/cirruslabs/cirrus-cli/internal/version.Version=v${version}"
diff --git a/pkgs/development/tools/continuous-integration/drone/default.nix b/pkgs/development/tools/continuous-integration/drone/default.nix
index 26d98065c8207..e481df1d538bb 100644
--- a/pkgs/development/tools/continuous-integration/drone/default.nix
+++ b/pkgs/development/tools/continuous-integration/drone/default.nix
@@ -25,7 +25,7 @@ buildGoModule rec {
     description = "Continuous Integration platform built on container technology";
     mainProgram = "drone-server";
     homepage = "https://github.com/harness/drone";
-    maintainers = with maintainers; [ elohmeier vdemeester techknowlogick ];
+    maintainers = with maintainers; [ vdemeester techknowlogick ];
     license = with licenses; if enableUnfree then unfreeRedistributable else asl20;
   };
 }
diff --git a/pkgs/development/tools/continuous-integration/gitea-actions-runner/default.nix b/pkgs/development/tools/continuous-integration/gitea-actions-runner/default.nix
index a2ed89e2ca760..10e07234aafac 100644
--- a/pkgs/development/tools/continuous-integration/gitea-actions-runner/default.nix
+++ b/pkgs/development/tools/continuous-integration/gitea-actions-runner/default.nix
@@ -36,6 +36,6 @@ buildGoModule rec {
     license = licenses.mit;
     changelog = "https://gitea.com/gitea/act_runner/releases/tag/v${version}";
     homepage = "https://gitea.com/gitea/act_runner";
-    description = "A runner for Gitea based on act";
+    description = "Runner for Gitea based on act";
   };
 }
diff --git a/pkgs/development/tools/continuous-integration/github-runner/default.nix b/pkgs/development/tools/continuous-integration/github-runner/default.nix
index f93517265e655..227f03bf8770c 100644
--- a/pkgs/development/tools/continuous-integration/github-runner/default.nix
+++ b/pkgs/development/tools/continuous-integration/github-runner/default.nix
@@ -22,13 +22,13 @@ assert builtins.all (x: builtins.elem x [ "node20" ]) nodeRuntimes;
 
 buildDotnetModule rec {
   pname = "github-runner";
-  version = "2.316.1";
+  version = "2.317.0";
 
   src = fetchFromGitHub {
     owner = "actions";
     repo = "runner";
     rev = "v${version}";
-    hash = "sha256-y7HU71Pk0SrZ+IPaVa/XyMeHylfjUSEju+gp1vyVKtQ=";
+    hash = "sha256-+VwEH4hmEjeYFWm7TOndD5SOJwsyPZEhKkCSyl7x8cE=";
     leaveDotGit = true;
     postFetch = ''
       git -C $out rev-parse --short HEAD > $out/.git-revision
diff --git a/pkgs/development/tools/continuous-integration/github-runner/deps.nix b/pkgs/development/tools/continuous-integration/github-runner/deps.nix
index d2db246003506..4c05dc60a162e 100644
--- a/pkgs/development/tools/continuous-integration/github-runner/deps.nix
+++ b/pkgs/development/tools/continuous-integration/github-runner/deps.nix
@@ -258,13 +258,13 @@
   (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
   (fetchNuGet { pname = "System.Xml.XmlDocument"; version = "4.3.0"; sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi"; })
   (fetchNuGet { pname = "System.Xml.XmlSerializer"; version = "4.3.0"; sha256 = "07pa4sx196vxkgl3csvdmw94nydlsm9ir38xxcs84qjn8cycd912"; })
-  (fetchNuGet { pname = "xunit"; version = "2.4.1"; sha256 = "0xf3kaywpg15flqaqfgywqyychzk15kz0kz34j21rcv78q9ywq20"; })
+  (fetchNuGet { pname = "xunit"; version = "2.7.1"; sha256 = "18bvbmqzkyia862x0jaj3ax5zlnlgsdpl52ai53g0fn8hcnnzzvi"; })
   (fetchNuGet { pname = "xunit.abstractions"; version = "2.0.3"; sha256 = "00wl8qksgkxld76fgir3ycc5rjqv1sqds6x8yx40927q5py74gfh"; })
-  (fetchNuGet { pname = "xunit.analyzers"; version = "0.10.0"; sha256 = "15n02q3akyqbvkp8nq75a8rd66d4ax0rx8fhdcn8j78pi235jm7j"; })
-  (fetchNuGet { pname = "xunit.assert"; version = "2.4.1"; sha256 = "1imynzh80wxq2rp9sc4gxs4x1nriil88f72ilhj5q0m44qqmqpc6"; })
-  (fetchNuGet { pname = "xunit.core"; version = "2.4.1"; sha256 = "1nnb3j4kzmycaw1g76ii4rfqkvg6l8gqh18falwp8g28h802019a"; })
-  (fetchNuGet { pname = "xunit.extensibility.core"; version = "2.4.1"; sha256 = "103qsijmnip2pnbhciqyk2jyhdm6snindg5z2s57kqf5pcx9a050"; })
-  (fetchNuGet { pname = "xunit.extensibility.execution"; version = "2.4.1"; sha256 = "1pbilxh1gp2ywm5idfl0klhl4gb16j86ib4x83p8raql1dv88qia"; })
+  (fetchNuGet { pname = "xunit.analyzers"; version = "1.12.0"; sha256 = "1shs5afb00r3ipnq7wnyvxyp4hnfcmbbf89qcpn4awhd355cv9k6"; })
+  (fetchNuGet { pname = "xunit.assert"; version = "2.7.1"; sha256 = "1nz05bh78d6ilz2g2vqp3jgxag5p3h1cnidwr9qxzgr89nj2fas6"; })
+  (fetchNuGet { pname = "xunit.core"; version = "2.7.1"; sha256 = "1lr7dm4f9i6xcjq1d8sj3a11y1kj50z43wmr84m8aj6lkwqkbv6z"; })
+  (fetchNuGet { pname = "xunit.extensibility.core"; version = "2.7.1"; sha256 = "00pjk2i95kzjqm6j86i589vf265cmczk748xl4qcqalwrzhhc1g8"; })
+  (fetchNuGet { pname = "xunit.extensibility.execution"; version = "2.7.1"; sha256 = "1s90pc6fm3i5r3wjip9jkk2m5giyimik9f05b77yylknl9yipcfw"; })
   (fetchNuGet { pname = "xunit.runner.visualstudio"; version = "2.4.1"; sha256 = "0fln5pk18z98gp0zfshy1p9h6r9wc55nyqhap34k89yran646vhn"; })
   (fetchNuGet { pname = "YamlDotNet.Signed"; version = "5.3.0"; sha256 = "1gnp5aa2zzg7v61bbn2ra1npy0p07szp5w8vqk44fdj3fcvrdxib"; })
 ]
diff --git a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
index 1c6cfdc5090e0..fbce84a679125 100644
--- a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
+++ b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
@@ -1,7 +1,7 @@
 { lib, buildGoModule, fetchFromGitLab, bash }:
 
 let
-  version = "16.11.1";
+  version = "17.0.0";
 in
 buildGoModule rec {
   inherit version;
@@ -23,7 +23,7 @@ buildGoModule rec {
     owner = "gitlab-org";
     repo = "gitlab-runner";
     rev = "v${version}";
-    sha256 = "sha256-ISL11AvKIy/tW/3MhVZ2/XT5RcaYj+x9rHKWAB/9TdU=";
+    sha256 = "sha256-u9yA9v2UojBTDElfZhi8k9D1of0vIj3c14ZFmwa+yj4=";
   };
 
   patches = [
diff --git a/pkgs/development/tools/continuous-integration/gocd-agent/default.nix b/pkgs/development/tools/continuous-integration/gocd-agent/default.nix
index 6a6c5674bb67e..314dd38c07952 100644
--- a/pkgs/development/tools/continuous-integration/gocd-agent/default.nix
+++ b/pkgs/development/tools/continuous-integration/gocd-agent/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-L2MOkbVHoQu99lKrbnsNkhuU0SZ8VANSK72GZrGLbiQ=";
   };
   meta = with lib; {
-    description = "A continuous delivery server specializing in advanced workflow modeling and visualization";
+    description = "Continuous delivery server specializing in advanced workflow modeling and visualization";
     homepage = "http://www.go.cd";
     license = licenses.asl20;
     platforms = platforms.all;
diff --git a/pkgs/development/tools/continuous-integration/gocd-server/default.nix b/pkgs/development/tools/continuous-integration/gocd-server/default.nix
index 6fc577225f42e..ce01ff95cc5a3 100644
--- a/pkgs/development/tools/continuous-integration/gocd-server/default.nix
+++ b/pkgs/development/tools/continuous-integration/gocd-server/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A continuous delivery server specializing in advanced workflow modeling and visualization";
+    description = "Continuous delivery server specializing in advanced workflow modeling and visualization";
     homepage = "http://www.go.cd";
     license = licenses.asl20;
     platforms = platforms.all;
diff --git a/pkgs/development/tools/continuous-integration/hci/default.nix b/pkgs/development/tools/continuous-integration/hci/default.nix
index 0fac1dfc04c66..4f04e0494f0ff 100644
--- a/pkgs/development/tools/continuous-integration/hci/default.nix
+++ b/pkgs/development/tools/continuous-integration/hci/default.nix
@@ -31,7 +31,10 @@ let
           makeWrapper $out/libexec/hci $out/bin/hci --prefix PATH : ${lib.escapeShellArg (makeBinPath bundledBins)}
         '';
       })
-      (addBuildTools [ makeWrapper ] (justStaticExecutables (haskellPackages.hercules-ci-cli.override overrides)));
+      (addBuildTools [ makeWrapper ]
+        # TODO: Erroneous references to GHC on aarch64-darwin: https://github.com/NixOS/nixpkgs/issues/318013
+        ((if stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64 then lib.id else haskell.lib.compose.justStaticExecutables)
+          (haskellPackages.hercules-ci-cli.override overrides)));
 in pkg // {
     meta = pkg.meta // {
       position = toString ./default.nix + ":1";
diff --git a/pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix b/pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix
index 8d4805341d55b..0da85bae969a5 100644
--- a/pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix
+++ b/pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix
@@ -23,6 +23,10 @@ let
       (o: {
         postInstall = ''
           ${o.postInstall or ""}
+          ${lib.optionalString (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) ''
+            remove-references-to -t ${haskellPackages.hercules-ci-cnix-expr} $out/bin/hercules-ci-agent
+            remove-references-to -t ${haskellPackages.hercules-ci-cnix-expr} $out/bin/hercules-ci-agent-worker
+          ''}
           mkdir -p $out/libexec
           mv $out/bin/hercules-ci-agent $out/libexec
           makeWrapper $out/libexec/hercules-ci-agent $out/bin/hercules-ci-agent --prefix PATH : ${lib.escapeShellArg (makeBinPath bundledBins)}
diff --git a/pkgs/development/tools/continuous-integration/jenkins/default.nix b/pkgs/development/tools/continuous-integration/jenkins/default.nix
index 10f2d9faba12b..c657c7bcf8aac 100644
--- a/pkgs/development/tools/continuous-integration/jenkins/default.nix
+++ b/pkgs/development/tools/continuous-integration/jenkins/default.nix
@@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "An extendable open source continuous integration server";
+    description = "Extendable open source continuous integration server";
     homepage = "https://jenkins.io/";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.mit;
diff --git a/pkgs/development/tools/continuous-integration/woodpecker-pipeline-transform/default.nix b/pkgs/development/tools/continuous-integration/woodpecker-pipeline-transform/default.nix
deleted file mode 100644
index af05fafea40b4..0000000000000
--- a/pkgs/development/tools/continuous-integration/woodpecker-pipeline-transform/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ lib, buildGoModule, fetchFromGitea }:
-buildGoModule rec {
-  pname = "woodpecker-pipeline-transform";
-  version = "0.1.1";
-
-  src = fetchFromGitea {
-    domain = "codeberg.org";
-    owner = "lafriks";
-    repo = "woodpecker-pipeline-transform";
-    rev = "v${version}";
-    sha256 = "sha256-tWDMbOkajZ3BB32Vl630EZrY+Owm72MD2Z2JjMucVkI=";
-  };
-
-  vendorHash = "sha256-qKzGALMagf6QHeLdABfNGG4f/3K/F6CjVYjOJtyTNoM=";
-
-  meta = with lib; {
-    description = "Utility to convert different pipelines to Woodpecker CI pipelines";
-    homepage = "https://codeberg.org/lafriks/woodpecker-pipeline-transform";
-    license = licenses.mit;
-    mainProgram = "pipeline-convert";
-    maintainers = with maintainers; [ ambroisie ];
-  };
-}
diff --git a/pkgs/development/tools/continuous-integration/woodpecker-plugin-git/default.nix b/pkgs/development/tools/continuous-integration/woodpecker-plugin-git/default.nix
index c058002376373..37596774bbdec 100644
--- a/pkgs/development/tools/continuous-integration/woodpecker-plugin-git/default.nix
+++ b/pkgs/development/tools/continuous-integration/woodpecker-plugin-git/default.nix
@@ -32,7 +32,7 @@ buildGoModule rec {
   passthru.tests.version = testers.testVersion { package = woodpecker-plugin-git; };
 
   meta = with lib; {
-    description = "Woodpecker plugin for cloning Git repositories.";
+    description = "Woodpecker plugin for cloning Git repositories";
     homepage = "https://woodpecker-ci.org/";
     changelog = "https://github.com/woodpecker-ci/plugin-git/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/continuous-integration/woodpecker/common.nix b/pkgs/development/tools/continuous-integration/woodpecker/common.nix
index 214e1c35b2762..53aac9d5d4df9 100644
--- a/pkgs/development/tools/continuous-integration/woodpecker/common.nix
+++ b/pkgs/development/tools/continuous-integration/woodpecker/common.nix
@@ -1,7 +1,7 @@
 { lib, fetchzip }:
 let
-  version = "2.4.1";
-  srcHash = "sha256-03y0xLXgdvw1NAtH2FDW91wp13ohimqjz3kl2mWc11E=";
+  version = "2.6.0";
+  srcHash = "sha256-SuTizOHsj1t4WovbOX5MuMZixbPo7TyCnD6nnf62/H4=";
   # The tarball contains vendored dependencies
   vendorHash = null;
 in
diff --git a/pkgs/development/tools/cotton/default.nix b/pkgs/development/tools/cotton/default.nix
index 1fce291cc4b59..ec39c399bdd50 100644
--- a/pkgs/development/tools/cotton/default.nix
+++ b/pkgs/development/tools/cotton/default.nix
@@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
   meta = with lib; {
-    description = "A package manager for JavaScript projects";
+    description = "Package manager for JavaScript projects";
     mainProgram = "cotton";
     homepage = "https://github.com/danielhuang/cotton";
     license = licenses.gpl3Only;
diff --git a/pkgs/development/tools/cpm-cmake/default.nix b/pkgs/development/tools/cpm-cmake/default.nix
index 98d56d16c1ce3..f0b45f8a50f65 100644
--- a/pkgs/development/tools/cpm-cmake/default.nix
+++ b/pkgs/development/tools/cpm-cmake/default.nix
@@ -5,13 +5,13 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "cpm-cmake";
-  version = "0.39.0";
+  version = "0.40.0";
 
   src = fetchFromGitHub {
     owner = "cpm-cmake";
     repo = "cpm.cmake";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-cDFt+fDpb/gDlFx+3C5Hw/ybf4hdjZOrpeNR8yBwd1M=";
+    hash = "sha256-307U/7gO8Ps5UvslYGOrVKHRjO9TYJrYsnAzu0Kljt8=";
   };
 
   dontConfigure = true;
diff --git a/pkgs/development/tools/crd2pulumi/default.nix b/pkgs/development/tools/crd2pulumi/default.nix
index aacf306008050..58baefc71269f 100644
--- a/pkgs/development/tools/crd2pulumi/default.nix
+++ b/pkgs/development/tools/crd2pulumi/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "crd2pulumi";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "pulumi";
     repo = "crd2pulumi";
     rev = "v${version}";
-    sha256 = "sha256-UBfb6PI+Ivk6JxSBIHw4tN09BHN1J+un04mnR3ByDfc=";
+    sha256 = "sha256-PfgFDYZS5zKywQH6f5L8mFmEagxcEQ74Ht7D22hSYHY=";
   };
 
-  vendorHash = "sha256-Fs43ITqfZYEcuRzm5bTTgmG/tWGIX9k8gdYBHmO4tMQ=";
+  vendorHash = "sha256-k6YJhYY2P/D8Vbsp5PExKrcGXBv2GsIkqb3m6KeYm6g=";
 
   ldflags = [ "-s" "-w" "-X github.com/pulumi/crd2pulumi/gen.Version=${src.rev}" ];
 
diff --git a/pkgs/development/tools/ctlptl/default.nix b/pkgs/development/tools/ctlptl/default.nix
index 3c2abdd454974..f7dca069d483f 100644
--- a/pkgs/development/tools/ctlptl/default.nix
+++ b/pkgs/development/tools/ctlptl/default.nix
@@ -2,19 +2,21 @@
 
 buildGoModule rec {
   pname = "ctlptl";
-  version = "0.8.28";
+  version = "0.8.29";
 
   src = fetchFromGitHub {
     owner = "tilt-dev";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-GFCyFJrhl6VEnIuZNpIIYgdTHYxeBmaukpJ72xspwFM=";
+    hash = "sha256-4drk8mqFVGXUktPiWuVNzWVBQr4TRcutZgGsF3vpRIE=";
   };
 
-  vendorHash = "sha256-DEUZbqHHYfjD5jGT5nn3UbWT1aODRsLailSorI/W6w4=";
+  vendorHash = "sha256-rf/4xyridcsSlGOVQ91Wr8bHnm7wfuXs6HSPKW2J8hM=";
 
   nativeBuildInputs = [ installShellFiles ];
 
+  subPackages = [ "cmd/ctlptl" ];
+
   ldflags = [
     "-s"
     "-w"
diff --git a/pkgs/development/tools/database/apgdiff/default.nix b/pkgs/development/tools/database/apgdiff/default.nix
index 2aa53fbabd293..8ce720efd6819 100644
--- a/pkgs/development/tools/database/apgdiff/default.nix
+++ b/pkgs/development/tools/database/apgdiff/default.nix
@@ -1,22 +1,33 @@
 { lib
-, stdenvNoCC
-, fetchurl
-, makeWrapper
+, maven
+, fetchFromGitHub
 , jre
+, makeWrapper
 }:
-stdenvNoCC.mkDerivation (finalAttrs: {
-  version = "2.7.0";
+maven.buildMavenPackage rec {
   pname = "apgdiff";
+  version = "2.7.0";
 
-  src = fetchurl {
-    url = "https://github.com/fordfrog/apgdiff/raw/release_${finalAttrs.version}/releases/apgdiff-${finalAttrs.version}.jar";
-    sha256 = "sha256-6OempDmedl6LOwP/s5y0hOIxGDWHd7qM7/opW3UwQ+I=";
+  src = fetchFromGitHub {
+    sparseCheckout = [ "src" ];
+    owner = "fordfrog";
+    repo = "apgdiff";
+    rev = "refs/tags/release_${version}";
+    hash = "sha256-2m+9QNwQV2tJwOabTXE2xjRB5gDrSwyL6zL2op+wmkM=";
   };
 
+  # Fix wrong version string in --help
+  postPatch = ''
+    sed -i 's/VersionNumber=.*/VersionNumber=${version}/' \
+      src/main/resources/cz/startnet/utils/pgdiff/Resources.properties
+  '';
+
+  mvnHash = "sha256-zJQirS8sVqHKZsBukEOf7ox5IeiAVOP6wEHWb4CAyxc=";
+
   nativeBuildInputs = [ makeWrapper ];
 
-  buildCommand = ''
-    install -Dm644 $src $out/lib/apgdiff.jar
+  installPhase = ''
+    install -Dm644 target/apgdiff-${version}.jar $out/lib/apgdiff.jar
 
     mkdir -p $out/bin
     makeWrapper ${jre}/bin/java $out/bin/apgdiff \
@@ -30,7 +41,6 @@ stdenvNoCC.mkDerivation (finalAttrs: {
     homepage = "https://apgdiff.com";
     license = licenses.mit;
     inherit (jre.meta) platforms;
-    sourceProvenance = [ sourceTypes.binaryBytecode ];
     maintainers = [ maintainers.misterio77 ];
   };
-})
+}
diff --git a/pkgs/development/tools/database/atlas/default.nix b/pkgs/development/tools/database/atlas/default.nix
index a46ba0255924b..3901c068d0985 100644
--- a/pkgs/development/tools/database/atlas/default.nix
+++ b/pkgs/development/tools/database/atlas/default.nix
@@ -2,19 +2,19 @@
 
 buildGoModule rec {
   pname = "atlas";
-  version = "0.23.0";
+  version = "0.24.0";
 
   src = fetchFromGitHub {
     owner = "ariga";
     repo = "atlas";
     rev = "v${version}";
-    hash = "sha256-eMYr+U95+xym7PZ02OmZbDG7g/kxE1Nojp3mZM6mf9Q=";
+    hash = "sha256-kmsDTHnYSkCRdLXPzE5g2qzzb8EuGunrM9SDfaul8Xo=";
   };
 
   modRoot = "cmd/atlas";
 
   proxyVendor = true;
-  vendorHash = "sha256-rM2l7U/ZkL0NIGPPbmBQ+P6mzGxdX4aQeS8Hz6EFmQc=";
+  vendorHash = "sha256-z2+u6jPTP6MOs7PTF6UzPwhnofQOhRll0zrmsLrN+PQ=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -36,7 +36,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A modern tool for managing database schemas";
+    description = "Modern tool for managing database schemas";
     homepage = "https://atlasgo.io/";
     changelog = "https://github.com/ariga/atlas/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/database/clickhouse-backup/default.nix b/pkgs/development/tools/database/clickhouse-backup/default.nix
index a958bba1ac451..2b7a31d05f2e8 100644
--- a/pkgs/development/tools/database/clickhouse-backup/default.nix
+++ b/pkgs/development/tools/database/clickhouse-backup/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "clickhouse-backup";
-  version = "2.5.9";
+  version = "2.5.14";
 
   src = fetchFromGitHub {
-    owner = "AlexAkulov";
+    owner = "Altinity";
     repo = "clickhouse-backup";
     rev = "v${version}";
-    hash = "sha256-wzc++enDDjUfj5zYW+hRTOtXkZbFByl2pmFGSrAtUHo=";
+    hash = "sha256-y57P6AM0w1AaOxCOHPjdgyhvqP/yasOP46JdErnYEvg=";
   };
 
   vendorHash = "sha256-vwcItklYe6ljFdGTxef19plaI5OMoOtQohY0xZLBUos=";
@@ -31,11 +31,10 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "Tool for easy ClickHouse backup and restore with cloud storages support";
+    description = "Tool for easy ClickHouse backup and restore using object storage for backup files";
     mainProgram = "clickhouse-backup";
-    homepage = "https://github.com/AlexAkulov/clickhouse-backup";
+    homepage = "https://github.com/Altinity/clickhouse-backup";
     license = licenses.mit;
-    maintainers = with maintainers; [ ];
-    platforms = platforms.linux;
+    maintainers = with maintainers; [ devusb ];
   };
 }
diff --git a/pkgs/development/tools/database/dblab/default.nix b/pkgs/development/tools/database/dblab/default.nix
index 52a0aefdcc932..a797f18be70c6 100644
--- a/pkgs/development/tools/database/dblab/default.nix
+++ b/pkgs/development/tools/database/dblab/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "dblab";
-  version = "0.22.0";
+  version = "0.24.1";
 
   src = fetchFromGitHub {
     owner = "danvergara";
     repo = "dblab";
     rev = "v${version}";
-    hash = "sha256-eIkHaNFvXU9GGyYOH8lqzvwQQ6pz8zWeO4xY9jP25dU=";
+    hash = "sha256-p579rxv8ntNLfunKl6JGYE7eFZc51p2OGWGhQmAuADY=";
   };
 
-  vendorHash = "sha256-WzyH3Ja/Znk/9aavIoBQRpJVnGb5o/ded0g92MTa4M4=";
+  vendorHash = "sha256-RmZkSlA6KU1wXKFHPLYVhRjwxsDjO1XNoGBdNCmeGSw=";
 
   ldflags = [ "-s -w -X main.version=${version}" ];
 
@@ -22,7 +22,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "The database client every command line junkie deserves";
+    description = "Database client every command line junkie deserves";
     homepage = "https://github.com/danvergara/dblab";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
diff --git a/pkgs/development/tools/database/dbmate/default.nix b/pkgs/development/tools/database/dbmate/default.nix
index 38f5ba2f19e5c..4ff96bfd32679 100644
--- a/pkgs/development/tools/database/dbmate/default.nix
+++ b/pkgs/development/tools/database/dbmate/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "dbmate";
-  version = "2.15.0";
+  version = "2.17.0";
 
   src = fetchFromGitHub {
     owner = "amacneil";
     repo = "dbmate";
     rev = "refs/tags/v${version}";
-    hash = "sha256-crn2FSJm7CSBg5TOcB5bJOsWqBrlwDoik7OS3HiCIGw=";
+    hash = "sha256-r0C03K/jyL8P0iysa6R1AaHVpB6Bw/FUwBIz7V/rGak=";
   };
 
-  vendorHash = "sha256-eFGQ59fdS+QQounT/byA0w9W+MK2Lhp+mlXAWWAtk6U=";
+  vendorHash = "sha256-8NVkpJEAp3UsM2BnZVcavK+89MELo0T96tTcY0pke6Q=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/database/gobang/default.nix b/pkgs/development/tools/database/gobang/default.nix
deleted file mode 100644
index b3611169996cb..0000000000000
--- a/pkgs/development/tools/database/gobang/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib
-, rustPlatform
-, fetchFromGitHub
-, stdenv
-, CoreFoundation
-, Security
-, SystemConfiguration
-}:
-
-rustPlatform.buildRustPackage rec {
-  pname = "gobang";
-  version = "0.1.0-alpha.5";
-
-  src = fetchFromGitHub {
-    owner = "tako8ki";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "02glb3hlprpdc72ji0248a7g0vr36yxr0gfbbms2m25v251dyaa6";
-  };
-
-  cargoSha256 = "sha256-Tiefet5gLpiuYY6Scg5fjnaPiZfVl5Gy2oZFdhgNRxY=";
-
-  buildInputs = lib.optionals stdenv.isDarwin [
-    CoreFoundation
-    Security
-    SystemConfiguration
-  ];
-
-  meta = with lib; {
-    description = "A cross-platform TUI database management tool written in Rust";
-    homepage = "https://github.com/tako8ki/gobang";
-    license = licenses.mit;
-    maintainers = with maintainers; [ figsoda ];
-  };
-}
diff --git a/pkgs/development/tools/database/indradb/default.nix b/pkgs/development/tools/database/indradb/default.nix
index 50f4d32221296..0df697b8df9d9 100644
--- a/pkgs/development/tools/database/indradb/default.nix
+++ b/pkgs/development/tools/database/indradb/default.nix
@@ -14,7 +14,7 @@ let
   };
 
   meta = with lib; {
-    description = "A graph database written in rust ";
+    description = "Graph database written in rust ";
     homepage = "https://github.com/indradb/indradb";
     license = licenses.mpl20;
     maintainers = with maintainers; [ happysalada ];
diff --git a/pkgs/development/tools/database/liquibase/default.nix b/pkgs/development/tools/database/liquibase/default.nix
index 7e6a8334cff40..742884fbacb03 100644
--- a/pkgs/development/tools/database/liquibase/default.nix
+++ b/pkgs/development/tools/database/liquibase/default.nix
@@ -25,11 +25,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "liquibase";
-  version = "4.27.0";
+  version = "4.28.0";
 
   src = fetchurl {
     url = "https://github.com/liquibase/liquibase/releases/download/v${version}/${pname}-${version}.tar.gz";
-    hash = "sha256-UNieH8ECSb8ZjxqP8tgf0LaObKCAXbKKlNOGSXhNgvA=";
+    hash = "sha256-l90H6soEBqCeGuGbQH7qQqfpRMf0Vxkiv/znG0O3XOg=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/database/mermerd/default.nix b/pkgs/development/tools/database/mermerd/default.nix
index 7331f5f61750d..f73cca5d01ec6 100644
--- a/pkgs/development/tools/database/mermerd/default.nix
+++ b/pkgs/development/tools/database/mermerd/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "mermerd";
-  version = "0.10.0";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "KarnerTh";
     repo = "mermerd";
     rev = "refs/tags/v${version}";
-    hash = "sha256-SzDwVkV7rV/pctFNWzgCfsDAHqcf/R5UMRJ48o+Iel0=";
+    hash = "sha256-7oBN9EeF3JBrOFuIM3lkNR2WMZA8PNDaKqdsVPawHBE=";
   };
 
-  vendorHash = "sha256-rLOYJ/do4HSztnHrQZOUOG0Y3e3BupUGlijP5x8WtZc=";
+  vendorHash = "sha256-bd/1LT0Pw25NhbnwQH3nmuCm3m8jBKPOYGRIRpcOGQI=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/development/tools/database/movine/default.nix b/pkgs/development/tools/database/movine/default.nix
index 6aba244be3ace..51a4d8f2943b1 100644
--- a/pkgs/development/tools/database/movine/default.nix
+++ b/pkgs/development/tools/database/movine/default.nix
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A migration manager written in Rust, that attempts to be smart yet minimal";
+    description = "Migration manager written in Rust, that attempts to be smart yet minimal";
     mainProgram = "movine";
     homepage = "https://github.com/byronwasti/movine";
     license = licenses.mit;
diff --git a/pkgs/development/tools/database/pg_activity/default.nix b/pkgs/development/tools/database/pg_activity/default.nix
index 4313e2a648ca3..ccb4444c01c96 100644
--- a/pkgs/development/tools/database/pg_activity/default.nix
+++ b/pkgs/development/tools/database/pg_activity/default.nix
@@ -23,7 +23,7 @@ python3Packages.buildPythonApplication rec {
   pythonImportsCheck = [ "pgactivity" ];
 
   meta = with lib; {
-    description = "A top like application for PostgreSQL server activity monitoring";
+    description = "Top like application for PostgreSQL server activity monitoring";
     mainProgram = "pg_activity";
     homepage = "https://github.com/dalibo/pg_activity";
     license = licenses.postgresql;
diff --git a/pkgs/development/tools/database/pgweb/default.nix b/pkgs/development/tools/database/pgweb/default.nix
index 9fa1436bee1b6..81eaef5c5ee6c 100644
--- a/pkgs/development/tools/database/pgweb/default.nix
+++ b/pkgs/development/tools/database/pgweb/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "pgweb";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "sosedoff";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-n8MFYwne25MdzVwYmmXt9d9rqKU37patAazb3Wn9coM=";
+    hash = "sha256-3iSnFzHqk3KBLvs7XixqpT4j2T/t2O2R7rMD4nlkIuw=";
   };
 
   postPatch = ''
@@ -42,7 +42,7 @@ buildGoModule rec {
 
   meta = with lib; {
     changelog = "https://github.com/sosedoff/pgweb/releases/tag/v${version}";
-    description = "A web-based database browser for PostgreSQL";
+    description = "Web-based database browser for PostgreSQL";
     longDescription = ''
       A simple postgres browser that runs as a web server. You can view data,
       run queries and examine tables and indexes.
diff --git a/pkgs/development/tools/database/prisma-engines/default.nix b/pkgs/development/tools/database/prisma-engines/default.nix
index b2f3d29a216f0..57c91c1719b91 100644
--- a/pkgs/development/tools/database/prisma-engines/default.nix
+++ b/pkgs/development/tools/database/prisma-engines/default.nix
@@ -70,7 +70,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A collection of engines that power the core stack for Prisma";
+    description = "Collection of engines that power the core stack for Prisma";
     homepage = "https://www.prisma.io/";
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/pkgs/development/tools/database/prqlc/default.nix b/pkgs/development/tools/database/prqlc/default.nix
index 41e144f5b5f28..f929704d3dd45 100644
--- a/pkgs/development/tools/database/prqlc/default.nix
+++ b/pkgs/development/tools/database/prqlc/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "prqlc";
-  version = "0.11.4";
+  version = "0.12.2";
 
   src = fetchFromGitHub {
     owner = "prql";
     repo = "prql";
     rev = version;
-    hash = "sha256-YQqGy6BadoTjlCrF7N2PhxmXyuNa6V4sFHRphxQfF4o=";
+    hash = "sha256-nD3B4R2eBX52wekBrBT3jiIYdE/p6xgnHrvDFFofl/s=";
   };
 
-  cargoHash = "sha256-0UEbg6f+9eew5RxmuPsOrtiSBsP9mPMO8h5mJEeTFFU=";
+  cargoHash = "sha256-Rhvl9rqtJyEpZZYUaN+ih6KXgEVKZCyovf34l883bZM=";
 
   nativeBuildInputs = [
     pkg-config
@@ -50,7 +50,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A CLI for the PRQL compiler - a simple, powerful, pipelined SQL replacement";
+    description = "CLI for the PRQL compiler - a simple, powerful, pipelined SQL replacement";
     homepage = "https://github.com/prql/prql";
     changelog = "https://github.com/prql/prql/blob/${src.rev}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/database/pyrseas/default.nix b/pkgs/development/tools/database/pyrseas/default.nix
index cf93f114e7db5..03b0a5cecbbbf 100644
--- a/pkgs/development/tools/database/pyrseas/default.nix
+++ b/pkgs/development/tools/database/pyrseas/default.nix
@@ -41,7 +41,7 @@ python3Packages.buildPythonApplication rec {
   doCheck = false;
 
   meta = {
-    description = "A declarative language to describe PostgreSQL databases";
+    description = "Declarative language to describe PostgreSQL databases";
     homepage = "https://perseas.github.io/";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ pmeunier ];
diff --git a/pkgs/development/tools/database/sleek/default.nix b/pkgs/development/tools/database/sleek/default.nix
index c92bc7ed2be30..0218917a2caa9 100644
--- a/pkgs/development/tools/database/sleek/default.nix
+++ b/pkgs/development/tools/database/sleek/default.nix
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage rec {
   cargoLock.lockFile = ./Cargo.lock;
 
   meta = with lib; {
-    description = "A CLI tool for formatting SQL";
+    description = "CLI tool for formatting SQL";
     homepage = "https://github.com/nrempel/sleek";
     license = licenses.mit;
     maintainers = with maintainers; [ xrelkd ];
diff --git a/pkgs/development/tools/database/sqlcmd/default.nix b/pkgs/development/tools/database/sqlcmd/default.nix
index 7e23d5e624bdd..f636092ec5c97 100644
--- a/pkgs/development/tools/database/sqlcmd/default.nix
+++ b/pkgs/development/tools/database/sqlcmd/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "sqlcmd";
-  version = "1.6.0";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     repo = "go-sqlcmd";
     owner = "microsoft";
     rev = "v${version}";
-    sha256 = "sha256-LLRNaY6ArUNoKSWSauCh2RKEGO5+G1OnoCAqMaAfOkY=";
+    sha256 = "sha256-69vSRwRl6Ep+lBpy31PkDdEV58yEhtqQBeisaih43CU=";
   };
 
-  vendorHash = "sha256-NVmgAlNQvRj/7poIEWjMyKw2qWMd/HwbdSFHpumnRlo=";
+  vendorHash = "sha256-boMvZf8+o1JDaxiyttbW/7hcuTN9wAeTUWT89N0FsSU=";
   proxyVendor = true;
 
   ldflags = [ "-s" "-w" "-X main.version=${version}" ];
@@ -46,7 +46,7 @@ buildGoModule rec {
   };
 
   meta = {
-    description = "A command line tool for working with Microsoft SQL Server, Azure SQL Database, and Azure Synapse";
+    description = "Command line tool for working with Microsoft SQL Server, Azure SQL Database, and Azure Synapse";
     mainProgram = "sqlcmd";
     homepage = "https://github.com/microsoft/go-sqlcmd";
     changelog = "https://github.com/microsoft/go-sqlcmd/releases/tag/v${version}";
diff --git a/pkgs/development/tools/database/sqlfluff/default.nix b/pkgs/development/tools/database/sqlfluff/default.nix
index 7db4d2c7d3a5f..9d2d4a36b453b 100644
--- a/pkgs/development/tools/database/sqlfluff/default.nix
+++ b/pkgs/development/tools/database/sqlfluff/default.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "sqlfluff";
-  version = "3.0.6";
+  version = "3.0.7";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "sqlfluff";
     repo = "sqlfluff";
     rev = "refs/tags/${version}";
-    hash = "sha256-VDLUCxDQKWQEeZQkeZP13KNm48GCQ3i4CLOAB/Kermo=";
+    hash = "sha256-nq+c9NHtQ6pMouJEI7YUhgb9+ljlJECP8REL4Gm4B10=";
   };
 
   build-system = with python3.pkgs; [ setuptools ];
diff --git a/pkgs/development/tools/database/surrealdb-migrations/default.nix b/pkgs/development/tools/database/surrealdb-migrations/default.nix
index 39ecd0678ed1e..22c39698dfed7 100644
--- a/pkgs/development/tools/database/surrealdb-migrations/default.nix
+++ b/pkgs/development/tools/database/surrealdb-migrations/default.nix
@@ -59,7 +59,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "An awesome SurrealDB migration tool, with a user-friendly CLI and a versatile Rust library that enables seamless integration into any project.";
+    description = "Awesome SurrealDB migration tool, with a user-friendly CLI and a versatile Rust library that enables seamless integration into any project";
     homepage = "https://crates.io/crates/surrealdb-migrations";
     mainProgram = "surrealdb-migrations";
     license = licenses.mit;
diff --git a/pkgs/development/tools/database/termdbms/default.nix b/pkgs/development/tools/database/termdbms/default.nix
index 4cfc905c6c158..06521cde30a91 100644
--- a/pkgs/development/tools/database/termdbms/default.nix
+++ b/pkgs/development/tools/database/termdbms/default.nix
@@ -19,7 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/mathaou/termdbms/";
-    description = "A TUI for viewing and editing database files";
+    description = "TUI for viewing and editing database files";
     license = licenses.mit;
     maintainers = with maintainers; [ izorkin ];
     mainProgram = "sqlite3-viewer";
diff --git a/pkgs/development/tools/database/timescaledb-tune/default.nix b/pkgs/development/tools/database/timescaledb-tune/default.nix
index 88c1bc0f63888..121ccee544ad0 100644
--- a/pkgs/development/tools/database/timescaledb-tune/default.nix
+++ b/pkgs/development/tools/database/timescaledb-tune/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "A tool for tuning your TimescaleDB for better performance";
+    description = "Tool for tuning your TimescaleDB for better performance";
     mainProgram = "timescaledb-tune";
     homepage = "https://github.com/timescale/timescaledb-tune";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/database/trino-cli/default.nix b/pkgs/development/tools/database/trino-cli/default.nix
index b43fbc180194e..e52881c6f5f5b 100644
--- a/pkgs/development/tools/database/trino-cli/default.nix
+++ b/pkgs/development/tools/database/trino-cli/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The Trino CLI provides a terminal-based, interactive shell for running queries";
+    description = "Trino CLI provides a terminal-based, interactive shell for running queries";
     mainProgram = "trino";
     homepage = "https://github.com/trinodb/trino";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/database/vitess/default.nix b/pkgs/development/tools/database/vitess/default.nix
index 2d107cc56246a..6f21999ab5d84 100644
--- a/pkgs/development/tools/database/vitess/default.nix
+++ b/pkgs/development/tools/database/vitess/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "vitess";
-  version = "19.0.3";
+  version = "19.0.4";
 
   src = fetchFromGitHub {
     owner = "vitessio";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Zy54nZCnwyZ1JNPvaKi0/bRt5g5ucPANwer/3pl4dGU=";
+    hash = "sha256-rP2a/t+5FhGIj9T6CQodMp9YXYf3fL5oBdFpAn7e7hw=";
   };
 
-  vendorHash = "sha256-QUzBxYEvxVzv4c8tKiFb+4NLy8RsXh0QTn9twfstMtw=";
+  vendorHash = "sha256-BlHd5GQJwdntmvVti+Jvfw65LrYM+hjwdvQ0duKk5d8=";
 
   buildInputs = [ sqlite ];
 
@@ -23,7 +23,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://vitess.io/";
     changelog = "https://github.com/vitessio/vitess/releases/tag/v${version}";
-    description = "A database clustering system for horizontal scaling of MySQL";
+    description = "Database clustering system for horizontal scaling of MySQL";
     license = licenses.asl20;
     maintainers = with maintainers; [ urandom ];
   };
diff --git a/pkgs/development/tools/database/webdis/default.nix b/pkgs/development/tools/database/webdis/default.nix
index d9f23d93d4a5e..02cab4c36570f 100644
--- a/pkgs/development/tools/database/webdis/default.nix
+++ b/pkgs/development/tools/database/webdis/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = {
-    description = "A Redis HTTP interface with JSON output";
+    description = "Redis HTTP interface with JSON output";
     mainProgram = "webdis";
     homepage = "https://webd.is/";
     license = lib.licenses.bsd2;
diff --git a/pkgs/development/tools/dbus-test-runner/default.nix b/pkgs/development/tools/dbus-test-runner/default.nix
index f9ccd41f6835d..15f219ac9b1d6 100644
--- a/pkgs/development/tools/dbus-test-runner/default.nix
+++ b/pkgs/development/tools/dbus-test-runner/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
 
   meta = with lib; {
-    description = "A small little utility to run a couple of executables under a new DBus session for testing";
+    description = "Small little utility to run a couple of executables under a new DBus session for testing";
     mainProgram = "dbus-test-runner";
     homepage = "https://launchpad.net/dbus-test-runner";
     license = licenses.gpl3Only;
diff --git a/pkgs/development/tools/devbox/default.nix b/pkgs/development/tools/devbox/default.nix
index c11e8cdf81ab6..7680bb1d1ff7a 100644
--- a/pkgs/development/tools/devbox/default.nix
+++ b/pkgs/development/tools/devbox/default.nix
@@ -5,13 +5,13 @@
 }:
 buildGoModule rec {
   pname = "devbox";
-  version = "0.10.7";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "jetpack-io";
     repo = pname;
     rev = version;
-    hash = "sha256-iaPdFDoYmukv1T+HSaGRrbvjvkioX5PlCc9t2VHGJ30=";
+    hash = "sha256-v2EBN9zp6ssY0hWJQnhsIlRU3L7oOad46bvDUILGIv0=";
   };
 
   ldflags = [
@@ -23,7 +23,7 @@ buildGoModule rec {
   # integration tests want file system access
   doCheck = false;
 
-  vendorHash = "sha256-bSCgjSXdPOWgftlInl3MailtiXslLH/TZw95FiEnCxQ=";
+  vendorHash = "sha256-efXYFVs+W6jkShWrU21WCiQqfaNX/9HLD8CxesbkR0s=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -35,7 +35,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "Instant, easy, predictable shells and containers.";
+    description = "Instant, easy, predictable shells and containers";
     homepage = "https://www.jetpack.io/devbox";
     license = licenses.asl20;
     maintainers = with maintainers; [ urandom lagoja ];
diff --git a/pkgs/development/tools/devd/default.nix b/pkgs/development/tools/devd/default.nix
index 5d2e0a83b4415..271f9048db1dc 100644
--- a/pkgs/development/tools/devd/default.nix
+++ b/pkgs/development/tools/devd/default.nix
@@ -26,7 +26,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "A local webserver for developers";
+    description = "Local webserver for developers";
     mainProgram = "devd";
     homepage = "https://github.com/cortesi/devd";
     license = licenses.mit;
diff --git a/pkgs/development/tools/devpod/default.nix b/pkgs/development/tools/devpod/default.nix
index 6b66869828d10..2a1133bce7749 100644
--- a/pkgs/development/tools/devpod/default.nix
+++ b/pkgs/development/tools/devpod/default.nix
@@ -23,13 +23,13 @@
 
 let
   pname = "devpod";
-  version = "0.5.4";
+  version = "0.5.12";
 
   src = fetchFromGitHub {
     owner = "loft-sh";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-BXr+2uia5skNRpdo8T+0uOVdh6WmWeC42PGNSURJhas=";
+    sha256 = "sha256-5JdA5isU4TNqOX8b2mLHLfVBkLNkh6SdaRUXdZHjEM0=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/tools/devtodo/default.nix b/pkgs/development/tools/devtodo/default.nix
index 34fdd2c794e56..1cc83d7fd9797 100644
--- a/pkgs/development/tools/devtodo/default.nix
+++ b/pkgs/development/tools/devtodo/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://swapoff.org/devtodo1.html";
-    description = "A hierarchical command-line task manager";
+    description = "Hierarchical command-line task manager";
     license = licenses.gpl2;
     maintainers = [ maintainers.woffs ];
     platforms = platforms.linux;
diff --git a/pkgs/development/tools/dive/default.nix b/pkgs/development/tools/dive/default.nix
index cfa8ecb5bc6ba..a29e3a23a26b0 100644
--- a/pkgs/development/tools/dive/default.nix
+++ b/pkgs/development/tools/dive/default.nix
@@ -50,7 +50,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" "-X main.version=${version}" ];
 
   meta = with lib; {
-    description = "A tool for exploring each layer in a docker image";
+    description = "Tool for exploring each layer in a docker image";
     mainProgram = "dive";
     homepage = "https://github.com/wagoodman/dive";
     changelog = "https://github.com/wagoodman/dive/releases/tag/v${version}";
diff --git a/pkgs/development/tools/doctl/default.nix b/pkgs/development/tools/doctl/default.nix
index f12baca266756..2e4bb56d0f256 100644
--- a/pkgs/development/tools/doctl/default.nix
+++ b/pkgs/development/tools/doctl/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "doctl";
-  version = "1.106.0";
+  version = "1.107.0";
 
   vendorHash = null;
 
@@ -31,11 +31,11 @@ buildGoModule rec {
     owner = "digitalocean";
     repo = "doctl";
     rev = "v${version}";
-    sha256 = "sha256-Un1qBQbrgdudAfnviP8d6A7nNwi1ZGAFPN33NLKXNwI=";
+    sha256 = "sha256-svwFIM1lJI60bdmzZS/QZSzy30HtOf498GgnqLFGKAQ=";
   };
 
   meta = with lib; {
-    description = "A command line tool for DigitalOcean services";
+    description = "Command line tool for DigitalOcean services";
     mainProgram = "doctl";
     homepage = "https://github.com/digitalocean/doctl";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/documentation/antora/default.nix b/pkgs/development/tools/documentation/antora/default.nix
index 34625022df6bf..de28518259c86 100644
--- a/pkgs/development/tools/documentation/antora/default.nix
+++ b/pkgs/development/tools/documentation/antora/default.nix
@@ -25,7 +25,7 @@ buildNpmPackage rec {
   '';
 
   meta = with lib; {
-    description = "A modular documentation site generator. Designed for users of Asciidoctor.";
+    description = "Modular documentation site generator. Designed for users of Asciidoctor";
     mainProgram = "antora";
     homepage = "https://antora.org";
     license = licenses.mpl20;
diff --git a/pkgs/development/tools/dprint/default.nix b/pkgs/development/tools/dprint/default.nix
index f762a1e9afe40..e2d35dd403d55 100644
--- a/pkgs/development/tools/dprint/default.nix
+++ b/pkgs/development/tools/dprint/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "dprint";
-  version = "0.45.1";
+  version = "0.46.3";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-dVtUUQ9AUQ85vsFwDb3xnR3UWxvSDMosC8QPW8AGHf4=";
+    sha256 = "sha256-IyhKxCqLyboEZINalI6bd///sUxWvmWlQVrzMA2sNdU=";
   };
 
-  cargoHash = "sha256-NXofEGJ1Sn7xnn8xxD9ZXBjoG/ZJgWvP0vCAJiwxK38=";
+  cargoHash = "sha256-46t6Y2UuRCAnvOhEPLgYN+fHHtJYxuflRT3DClLTDQk=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreFoundation Security ];
 
diff --git a/pkgs/development/tools/drip/default.nix b/pkgs/development/tools/drip/default.nix
index 2724e41e8e616..30684d20252f6 100644
--- a/pkgs/development/tools/drip/default.nix
+++ b/pkgs/development/tools/drip/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A launcher for the Java Virtual Machine intended to be a drop-in replacement for the java command, only faster";
+    description = "Launcher for the Java Virtual Machine intended to be a drop-in replacement for the java command, only faster";
     license = licenses.epl10;
     homepage = "https://github.com/ninjudd/drip";
     platforms = platforms.linux;
diff --git a/pkgs/development/tools/dum/default.nix b/pkgs/development/tools/dum/default.nix
index 85b89979960dc..6a68c502d9680 100644
--- a/pkgs/development/tools/dum/default.nix
+++ b/pkgs/development/tools/dum/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "sha256-aMx4xfWYiiz5TY/CVCogZ3WNR6md77jb8RKhhVwqeto=";
 
   meta = with lib; {
-    description = "An npm scripts runner written in Rust";
+    description = "Npm scripts runner written in Rust";
     mainProgram = "dum";
     homepage = "https://github.com/egoist/dum";
     changelog = "https://github.com/egoist/dum/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/development/tools/dump_syms/default.nix b/pkgs/development/tools/dump_syms/default.nix
index 67454a7382782..f29473ef85e77 100644
--- a/pkgs/development/tools/dump_syms/default.nix
+++ b/pkgs/development/tools/dump_syms/default.nix
@@ -17,7 +17,7 @@
 
 let
   pname = "dump_syms";
-  version = "2.3.1";
+  version = "2.3.3";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -26,10 +26,10 @@ rustPlatform.buildRustPackage {
     owner = "mozilla";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-mSup3AMYsPu/Az6QXhdCFSxGcIpel4zNN0g/95gPDS0=";
+    hash = "sha256-pZlWA7LZeMb+ZhnfQh9MzvDDlre1kkPc6aSVNZcVi/w=";
   };
 
-  cargoSha256 = "sha256-INzCyF/tvCp4L6Btrw8AGTBAgdFiBlywzO3+SSE4beI=";
+  cargoSha256 = "sha256-srphb7jFSJB08hSShk3f5QYPoYu8UwbUzkzn0zpMqyg=";
 
   nativeBuildInputs = [
     pkg-config
@@ -54,7 +54,7 @@ rustPlatform.buildRustPackage {
   };
 
   meta = with lib; {
-    changelog = "https://github.com/mozilla/dump_syms/releases/tag/v${version}";
+    changelog = "https://github.com/mozilla/dump_syms/blob/v${version}/CHANGELOG.md";
     description = "Command-line utility for parsing the debugging information the compiler provides in ELF or stand-alone PDB files";
     mainProgram = "dump_syms";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/dyff/default.nix b/pkgs/development/tools/dyff/default.nix
index 7557af0d97357..a4d29757aea51 100644
--- a/pkgs/development/tools/dyff/default.nix
+++ b/pkgs/development/tools/dyff/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "dyff";
-  version = "1.7.1";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "homeport";
     repo = "dyff";
     rev = "v${version}";
-    sha256 = "sha256-4jW8KJqdhrx79Q5ioyMGOlmLosTEkEIrdBwMjfiIcsY=";
+    sha256 = "sha256-RRLIogNOvbXylmdR59anMVSYCILdVr0Xeot21HqXlXU=";
   };
 
-  vendorHash = "sha256-JhjngBZK3vWlKzCCkTWJf/VrBXUW6T4FcUivn5CMBjE=";
+  vendorHash = "sha256-BLwdNBthYTMSNDcT5Cf8IcAr4uUmpewLdZRgIvq5htE=";
 
   subPackages = [
     "cmd/dyff"
@@ -41,7 +41,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A diff tool for YAML files, and sometimes JSON";
+    description = "Diff tool for YAML files, and sometimes JSON";
     mainProgram = "dyff";
     longDescription = ''
       dyff is inspired by the way the old BOSH v1 deployment output reported
diff --git a/pkgs/development/tools/earthly/default.nix b/pkgs/development/tools/earthly/default.nix
index 0a266560d5598..8dabbd7dfade2 100644
--- a/pkgs/development/tools/earthly/default.nix
+++ b/pkgs/development/tools/earthly/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "earthly";
-  version = "0.8.11";
+  version = "0.8.14";
 
   src = fetchFromGitHub {
     owner = "earthly";
     repo = "earthly";
     rev = "v${version}";
-    hash = "sha256-73Ftm5/eGqgjtYcvKcRuHGzKnKYdCJ5WqDBsMSSiMuA=";
+    hash = "sha256-G9AvJMrgb71KxOaYScYOVuYSwubLlSd6a9KhzA8DKlA=";
   };
 
-  vendorHash = "sha256-Uj7GGRknXtcu64rzS7SSnwQyE84hnGAyiT62vyppDE4=";
+  vendorHash = "sha256-Uy/h6TBmDYHSewq3TbchLe+AtdvO2xNSp9pVDglRKVc=";
   subPackages = [ "cmd/earthly" "cmd/debugger" ];
 
   CGO_ENABLED = 0;
diff --git a/pkgs/development/tools/ejson/default.nix b/pkgs/development/tools/ejson/default.nix
index c6ec3e3b6b25a..42e5e6cb33a52 100644
--- a/pkgs/development/tools/ejson/default.nix
+++ b/pkgs/development/tools/ejson/default.nix
@@ -35,7 +35,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A small library to manage encrypted secrets using asymmetric encryption";
+    description = "Small library to manage encrypted secrets using asymmetric encryption";
     mainProgram = "ejson";
     license = licenses.mit;
     homepage = "https://github.com/Shopify/ejson";
diff --git a/pkgs/development/tools/electron-fiddle/default.nix b/pkgs/development/tools/electron-fiddle/default.nix
index 16d96297c544f..2588a85de2e83 100644
--- a/pkgs/development/tools/electron-fiddle/default.nix
+++ b/pkgs/development/tools/electron-fiddle/default.nix
@@ -167,7 +167,7 @@ buildFHSEnv {
     ];
 
   meta = with lib; {
-    description = "The easiest way to get started with Electron";
+    description = "Easiest way to get started with Electron";
     homepage = "https://www.electronjs.org/fiddle";
     license = licenses.mit;
     maintainers = with maintainers; [ andersk ];
diff --git a/pkgs/development/tools/electron/binary/generic.nix b/pkgs/development/tools/electron/binary/generic.nix
index f9e493e6b7cbd..a11baed163da2 100644
--- a/pkgs/development/tools/electron/binary/generic.nix
+++ b/pkgs/development/tools/electron/binary/generic.nix
@@ -42,7 +42,7 @@ let
       ++ optionals (versionAtLeast version "11.0.0") [ "aarch64-darwin" ]
       ++ optionals (versionOlder version "19.0.0") [ "i686-linux" ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
-    knownVulnerabilities = optional (versionOlder version "27.0.0") "Electron version ${version} is EOL";
+    knownVulnerabilities = optional (versionOlder version "29.0.0") "Electron version ${version} is EOL";
   };
 
   fetcher = vers: tag: hash: fetchurl {
diff --git a/pkgs/development/tools/electron/binary/info.json b/pkgs/development/tools/electron/binary/info.json
index fedd02fe733df..d5760841b2e24 100644
--- a/pkgs/development/tools/electron/binary/info.json
+++ b/pkgs/development/tools/electron/binary/info.json
@@ -23,35 +23,35 @@
     },
     "28": {
         "hashes": {
-            "aarch64-darwin": "53fc040cd09e955e013254f784cf51712029ded4a574559cf5fa19c9a911d75d",
-            "aarch64-linux": "3e46c3076041386213f7b9ebc12335889fbad5822ffc306cf7514abb88de8512",
-            "armv7l-linux": "2e22fbab2376a9bbeb8cbdd7d9bb3ca69fda6adeafa2b22ffb67157fcfcdb6ff",
-            "headers": "07iv5fh0yxv17c1akb2j4ab5xhv29d9zsgi6dm2r0n4pnf72wxwr",
-            "x86_64-darwin": "bd8a220fd906625ad4a8edf92e80e8eff89d51f40c22168e05090daa7c12bd66",
-            "x86_64-linux": "e3be93e1a15d61f72e074aee021e12f20465b81f51b8c1170bd9072d7d695c3a"
+            "aarch64-darwin": "c310ab098d8849c4aa05f05b1c8521031241a046e023a911f964fd1db31c64c9",
+            "aarch64-linux": "f77107266581a6b9880757876518df1c4bf6eeff5c193bb5de0a8f6c9902bd1f",
+            "armv7l-linux": "384d8b43f52b5350a438031ad12980418fc244b4b0aecfa5f7dcc3d6f103ebed",
+            "headers": "1d407g6yb81l9p0pbsidrsmnzkrwb4f2qb221kc9k2r7qdpf64px",
+            "x86_64-darwin": "6bc63916b7fe52de7559e7631fef5c93315a18ee90a0d3d08168c91414b09ecf",
+            "x86_64-linux": "20f6be493cbd6c9924206e744b1c490af1f97f4735451b9dc19f0d305366d546"
         },
-        "version": "28.3.1"
+        "version": "28.3.3"
     },
     "29": {
         "hashes": {
-            "aarch64-darwin": "c16d05f1231bb3c77da05ab236b454b3a2b6a642403be51e7c9b16cd2c421a19",
-            "aarch64-linux": "c3764d6c3799950e3418e8e5a5a5b2c41abe421dd8bcdebf054c7c85798d9860",
-            "armv7l-linux": "c5e92943ad78b4e41a32ae53c679e148ea2ae09f95f914b1834dbdbae578ba91",
-            "headers": "0macff2ir515szp2nd6jimnpg9ig87whhfi08h2hwaxp4xn9j5hn",
-            "x86_64-darwin": "8ed7924f77a5c43c137a57097c5c47c2e8e9a78197e18af11a767c98035c123e",
-            "x86_64-linux": "91e5eb374c2c85a07c2d4e99a89eb18515ff0169a49c3fa75289800e1225729e"
+            "aarch64-darwin": "e9934a8eaecaab05dcc572b47576cdba78491c144c19348c9c9e9524c8c5917b",
+            "aarch64-linux": "a5c2bc148d3f6c3ee2bd15289243a1b75093afde3753d0aa1125d2cb621f5b59",
+            "armv7l-linux": "a75e2487ea1a1b292fbc160618167c204f161c602780f2b997b75d6ef5bbe539",
+            "headers": "0z4n8c95z48n54d1fph2p2i6cb43gk202zg09vmv168ajpspi2rr",
+            "x86_64-darwin": "b875c884efe86eb2e1922781f55193d82520e923510f19af87a58dfe07d21562",
+            "x86_64-linux": "eb07a8137fde970450242c51e0c2f8ef6556f377a21c357584aa2632ee9e1d3f"
         },
-        "version": "29.4.0"
+        "version": "29.4.2"
     },
     "30": {
         "hashes": {
-            "aarch64-darwin": "9189d4a8d69175d94edafa4cb29a47389ebaff22c9baf0dd67a448e7a5240129",
-            "aarch64-linux": "37b520604e319f86f372cc1da8244b27d24708a4bdc1cc07a6f1d793f37e96c3",
-            "armv7l-linux": "6202a7ccde4ca344c01c124bd997bcfad06d475dd2e35bba70379cf2d93b5268",
-            "headers": "15nzay60m1v720243n3iizbcldn6ka9vcphh050pih8rnh74ds5p",
-            "x86_64-darwin": "7d9e81712a4b0ab209d03d0eef08ee9c4da1f5293fb169ff08766356a2e65fbb",
-            "x86_64-linux": "5a2bfd0f6a8703dd1b408675c9349732c4713b378d9ae0f64ea4661f6b5c7fd4"
+            "aarch64-darwin": "7497d7926a094d6e1bf34f70ef206c4f2d9df072b1f9fa8cd431f6ea4fab680c",
+            "aarch64-linux": "bdb3485cd87861bb1d99f6b417f979ac899974a4322191a648efc311af9f8c5c",
+            "armv7l-linux": "3941ab1f23576d8f55fdf525e40387f97c2c9809173a8a933402b62ec95a592f",
+            "headers": "1jz8grs7sjncg68s34hf7rhd830414avxs1xg5lng5n7wmwfiw8i",
+            "x86_64-darwin": "bdadef26dac934416b17fa2af6bcd55424eb8b1ceb5f6fae068dbd5fd8b0d357",
+            "x86_64-linux": "4d00e8cd5f37962dc8fbefe2941d89dcb1c180f1568bb32122c7eb40d21f39c4"
         },
-        "version": "30.0.6"
+        "version": "30.1.1"
     }
 }
diff --git a/pkgs/development/tools/electron/common.nix b/pkgs/development/tools/electron/common.nix
index 3ac10225bedfc..36cecd7ce6a63 100644
--- a/pkgs/development/tools/electron/common.nix
+++ b/pkgs/development/tools/electron/common.nix
@@ -49,7 +49,7 @@ in (chromium.override { upstream-info = info.chromium; }).mkDerivation (base: {
 
   src = null;
 
-  patches = base.patches ++ lib.optional (lib.versionAtLeast info.version "29" && lib.versionOlder info.version "30")
+  patches = base.patches ++ lib.optional (lib.versionOlder info.version "30")
     (substituteAll {
       # disable a component that requires CIPD blobs
       name = "disable-screen-ai.patch";
@@ -172,10 +172,8 @@ in (chromium.override { upstream-info = info.chromium; }).mkDerivation (base: {
     use_perfetto_client_library = false;
     v8_builtins_profiling_log_file = "";
     enable_dangling_raw_ptr_checks = false;
-  } // lib.optionalAttrs (lib.versionAtLeast info.version "28") {
     dawn_use_built_dxc = false;
     v8_enable_private_mapping_fork_optimization = true;
-  } // lib.optionalAttrs (lib.versionAtLeast info.version "29") {
     v8_expose_public_symbols = true;
   } // {
 
@@ -236,7 +234,7 @@ in (chromium.override { upstream-info = info.chromium; }).mkDerivation (base: {
     homepage = "https://github.com/electron/electron";
     platforms = lib.platforms.linux;
     license = licenses.mit;
-    maintainers = with maintainers; [ yayayayaka ];
+    maintainers = with maintainers; [ yayayayaka teutat3s ];
     mainProgram = "electron";
     hydraPlatforms = lib.optionals (!(hasInfix "alpha" info.version) && !(hasInfix "beta" info.version)) ["aarch64-linux" "x86_64-linux"];
     timeout = 172800; # 48 hours (increased from the Hydra default of 10h)
diff --git a/pkgs/development/tools/electron/info.json b/pkgs/development/tools/electron/info.json
index cf5b041441ff4..26349f02fa60c 100644
--- a/pkgs/development/tools/electron/info.json
+++ b/pkgs/development/tools/electron/info.json
@@ -1,1788 +1,4 @@
 {
-    "27": {
-        "chrome": "118.0.5993.159",
-        "chromium": {
-            "deps": {
-                "gn": {
-                    "hash": "sha256-SwlET5h5xtDlQvlt8wbG73ZfUWJr4hlWc+uQsBH5x9M=",
-                    "rev": "cc56a0f98bb34accd5323316e0292575ff17a5d4",
-                    "url": "https://gn.googlesource.com/gn",
-                    "version": "2023-08-10"
-                }
-            },
-            "version": "118.0.5993.159"
-        },
-        "chromium_npm_hash": "sha256-5cjqpYB45nw2gop54VP+tL7/0w63nQGfQ4x6a6KS7XQ=",
-        "deps": {
-            "src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-3yFHjd3LMXVbF4LX6Bi3yJF0CDVug0cDpGFbP8Ibvk4=",
-                "postFetch": "rm -r $out/third_party/blink/web_tests; rm -r $out/third_party/hunspell/tests; rm -r $out/content/test/data; rm -r $out/courgette/testdata; rm -r $out/extensions/test/data; rm -r $out/media/test/data; ",
-                "rev": "118.0.5993.159",
-                "url": "https://chromium.googlesource.com/chromium/src.git"
-            },
-            "src/chrome/test/data/perf/canvas_bench": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-svOuyBGKloBLM11xLlWCDsB4PpRjdKTBdW2UEW4JQjM=",
-                "rev": "a7b40ea5ae0239517d78845a5fc9b12976bfc732",
-                "url": "https://chromium.googlesource.com/chromium/canvas_bench.git"
-            },
-            "src/chrome/test/data/perf/frame_rate/content": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-t4kcuvH0rkPBkcdiMsoNQaRwU09eU+oSvyHDiAHrKXo=",
-                "rev": "c10272c88463efeef6bb19c9ec07c42bc8fe22b9",
-                "url": "https://chromium.googlesource.com/chromium/frame_rate/content.git"
-            },
-            "src/chrome/test/data/xr/webvr_info": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-BsAPwc4oEWri0TlqhyxqFNqKdfgVSrB0vQyISmYY4eg=",
-                "rev": "c58ae99b9ff9e2aa4c524633519570bf33536248",
-                "url": "https://chromium.googlesource.com/external/github.com/toji/webvr.info.git"
-            },
-            "src/docs/website": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-6/LSJGUVZuJe1WIBJEJO/dXZYnsby+X3EzeBbvWjUZU=",
-                "rev": "243c1406199960e001e1dceccafc6fc2db6897f9",
-                "url": "https://chromium.googlesource.com/website.git"
-            },
-            "src/electron": {
-                "fetcher": "fetchFromGitHub",
-                "hash": "sha256-DmDAKUUyiDASGGylDVQe2OkDVfiA1ficDG+oaMbKqdo=",
-                "owner": "electron",
-                "repo": "electron",
-                "rev": "v27.3.11"
-            },
-            "src/media/cdm/api": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-6J6aSYW0or99VAgMNJJOdJqMJspoG7w1HxDN50MV5bw=",
-                "rev": "fef0b5aa1bd31efb88dfab804bdbe614f3d54f28",
-                "url": "https://chromium.googlesource.com/chromium/cdm.git"
-            },
-            "src/net/third_party/quiche/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-hB3gUqi/9SI9PGNkXNpli/TifI1kJEBScqRFIw7hm4c=",
-                "rev": "7d201495d8a5ef115787765fb12af0d5575281c1",
-                "url": "https://quiche.googlesource.com/quiche.git"
-            },
-            "src/third_party/angle": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-It05E3+qG17dEbhbaX/VQJaydWOQ1mpsj95dT5IJkgo=",
-                "rev": "05f45adc147393562b518ca1f82a3ccba7ee40f7",
-                "url": "https://chromium.googlesource.com/angle/angle.git"
-            },
-            "src/third_party/angle/third_party/VK-GL-CTS/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-LWGll3KiMYndiLZBizhN+mzELjYpSxvtIctH+LO+20Q=",
-                "rev": "385ae8bed1f99e497cdf2f3a5640905b90e69292",
-                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS"
-            },
-            "src/third_party/angle/third_party/glmark2/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-L7+zWM0qn8WFhmON7DGvarTsN1YHt1sn5+hazTOZrrk=",
-                "rev": "ca8de51fedb70bace5351c6b002eb952c747e889",
-                "url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2"
-            },
-            "src/third_party/angle/third_party/rapidjson/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-btUl1a/B0sXwf/+hyvCvVJjWqIkXfVYCpHm3TeBuOxk=",
-                "rev": "781a4e667d84aeedbeb8184b7b62425ea66ec59f",
-                "url": "https://chromium.googlesource.com/external/github.com/Tencent/rapidjson"
-            },
-            "src/third_party/anonymous_tokens/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-TcNIocV0p53NJCudvy8wf+fIPIP2tnkoBf1F7mEBFLs=",
-                "rev": "8c8d20953d502db31fec2353b199e6c22ef0236e",
-                "url": "https://chromium.googlesource.com/external/github.com/google/anonymous-tokens.git"
-            },
-            "src/third_party/beto-core/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-qgsPK7RyVqGRji0sTcMck1JqX9iCsYIExGoGwNZyVT0=",
-                "rev": "b902b346037ea3f4aadf8177021f6f917b16e648",
-                "url": "https://beto-core.googlesource.com/beto-core.git"
-            },
-            "src/third_party/boringssl/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-P0Aj2Puy6S1aRIHrAhmokiAmSmHfuWQR6UW/AbQFW+M=",
-                "rev": "85081c6b3c0b26129893c1bff6bfa42bc3ba2d2c",
-                "url": "https://boringssl.googlesource.com/boringssl.git"
-            },
-            "src/third_party/breakpad/breakpad": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-8AkC/8oX4OWAcV21laJ0AeMRB9G04rFc6UJFy7Wus4A=",
-                "rev": "8988364bcddd9b194b0bf931c10bc125987330ed",
-                "url": "https://chromium.googlesource.com/breakpad/breakpad.git"
-            },
-            "src/third_party/cast_core/public/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-AalRQhJmornCqmvE2+36J/3LubaA0jr6P1PXy32lX4I=",
-                "rev": "71f51fd6fa45fac73848f65421081edd723297cd",
-                "url": "https://chromium.googlesource.com/cast_core/public"
-            },
-            "src/third_party/catapult": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-AK85yVeCR3GKGtdW8G9Of+6UMJirJ9BNVyp9pffft7s=",
-                "rev": "f16ca3c78e46cefa982100444844da3fcb25390e",
-                "url": "https://chromium.googlesource.com/catapult.git"
-            },
-            "src/third_party/ced/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-ySG74Rj2i2c/PltEgHVEDq+N8yd9gZmxNktc56zIUiY=",
-                "rev": "ba412eaaacd3186085babcd901679a48863c7dd5",
-                "url": "https://chromium.googlesource.com/external/github.com/google/compact_enc_det.git"
-            },
-            "src/third_party/chromium-variations": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-2lP3uGdqIZY3DpxGzfDhR2dW+o3Arduaeu56Au7h/5Q=",
-                "rev": "e0c145ca93c0439a65bcb1607e813edfbc97520b",
-                "url": "https://chromium.googlesource.com/chromium-variations.git"
-            },
-            "src/third_party/clang-format/script": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-7VvofDDQe+SoMRBfVk26q+C+OPyOE7QH35wVWkfDKxs=",
-                "rev": "e5337933f2951cacd3aeacd238ce4578163ca0b9",
-                "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/clang/tools/clang-format.git"
-            },
-            "src/third_party/cld_3/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-C3MOMBUy9jgkT9BAi/Fgm2UH4cxRuwSBEcRl3hzM2Ss=",
-                "rev": "b48dc46512566f5a2d41118c8c1116c4f96dc661",
-                "url": "https://chromium.googlesource.com/external/github.com/google/cld_3.git"
-            },
-            "src/third_party/colorama/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-6ZTdPYSHdQOLYMSnE+Tp7PgsVTs3U2awGu9Qb4Rg/tk=",
-                "rev": "3de9f013df4b470069d03d250224062e8cf15c49",
-                "url": "https://chromium.googlesource.com/external/colorama.git"
-            },
-            "src/third_party/content_analysis_sdk/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-auHBX00DSvyMyhEsZGkpKh9KOO2RcaeP9PK6kmmMYls=",
-                "rev": "8d5118720805fdce0dd3ee2999c964501de4532c",
-                "url": "https://chromium.googlesource.com/external/github.com/chromium/content_analysis_sdk.git"
-            },
-            "src/third_party/cpu_features/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-E8LoVzhe+TAmARWZTSuINlsVhzpUJMxPPCGe/dHZcyA=",
-                "rev": "936b9ab5515dead115606559502e3864958f7f6e",
-                "url": "https://chromium.googlesource.com/external/github.com/google/cpu_features.git"
-            },
-            "src/third_party/cpuinfo/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-oZjA2cMQMyhFcI+m6eOmdZ9A1oPAbyISeLxNyaoGivk=",
-                "rev": "c13d0bbb266d200a13532b5915d704c30d21081b",
-                "url": "https://chromium.googlesource.com/external/github.com/pytorch/cpuinfo.git"
-            },
-            "src/third_party/crc32c/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-urg0bmnfMfHagLPELp4WrNCz1gBZ6DFOWpDue1KsMtc=",
-                "rev": "fa5ade41ee480003d9c5af6f43567ba22e4e17e6",
-                "url": "https://chromium.googlesource.com/external/github.com/google/crc32c.git"
-            },
-            "src/third_party/cros-components/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-s8pfcu5SkxXFCat76TJaDi1NTTQckZ1F+T8URCxOUdI=",
-                "rev": "bf7aaccb73b26c11e8bf21cb7d90314338e1743f",
-                "url": "https://chromium.googlesource.com/external/google3/cros_components.git"
-            },
-            "src/third_party/cros_system_api": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-wq7fJVNRSiyaADrCYB0TEmWQ//BJg4GYiHZNtMb1QlI=",
-                "rev": "81ac4449008dffea00e4e8f251f87fabc5abe0d3",
-                "url": "https://chromium.googlesource.com/chromiumos/platform2/system_api.git"
-            },
-            "src/third_party/crossbench": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-s/+y5bMj+CRnljFZ5aWKirPCsRUjckLOZ5F65WnPYSY=",
-                "rev": "06981428c28d66678ebec13ca1fac3785cf51bb1",
-                "url": "https://chromium.googlesource.com/crossbench.git"
-            },
-            "src/third_party/dav1d/libdav1d": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-KSo2s3M3S13gY84NlAdnPsjoKfJZy7ipTlWSvUHD9Ak=",
-                "rev": "f8ae94eca0f53502a2cddd29a263c1edea4822a0",
-                "url": "https://chromium.googlesource.com/external/github.com/videolan/dav1d.git"
-            },
-            "src/third_party/dawn": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-7iCJ1h51S/8pxQRMoDtGXzyuP6Dzxnc/1Cu4ALU8NYg=",
-                "rev": "deb3b674b26854204c8082ed93926207e42d3cf2",
-                "url": "https://dawn.googlesource.com/dawn.git"
-            },
-            "src/third_party/dawn/third_party/dxc": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-u29t+pF7aRfhRmi36YyEPcQU7gIDqsjrf38+C0YIpFk=",
-                "rev": "50c4c887f1ccfa1a4bfb158b7dbc93058659ed01",
-                "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler"
-            },
-            "src/third_party/dawn/third_party/dxheaders": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-0Miw1Cy/jmOo7bLFBOHuTRDV04cSeyvUEyPkpVsX9DA=",
-                "rev": "980971e835876dc0cde415e8f9bc646e64667bf7",
-                "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers"
-            },
-            "src/third_party/dawn/third_party/glfw": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-TwAPRjQxIz3J+zbNxzCp5Tek7MwisxdekMpY5QGsKyg=",
-                "rev": "62e175ef9fae75335575964c845a302447c012c7",
-                "url": "https://chromium.googlesource.com/external/github.com/glfw/glfw"
-            },
-            "src/third_party/dawn/third_party/khronos/EGL-Registry": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-Z6DwLfgQ1wsJXz0KKJyVieOatnDmx3cs0qJ6IEgSq1A=",
-                "rev": "7dea2ed79187cd13f76183c4b9100159b9e3e071",
-                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/EGL-Registry"
-            },
-            "src/third_party/dawn/third_party/khronos/OpenGL-Registry": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-K3PcRIiD3AmnbiSm5TwaLs4Gu9hxaN8Y91WMKK8pOXE=",
-                "rev": "5bae8738b23d06968e7c3a41308568120943ae77",
-                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry"
-            },
-            "src/third_party/dawn/third_party/webgpu-cts": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-gbZpmcbqLisjLb6vnKKvHS6eRqjqvavvTRgxJsaE/RQ=",
-                "rev": "5dfa3b88f0863c3949f713804e0461c9cc34a030",
-                "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts"
-            },
-            "src/third_party/depot_tools": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-EXxlQGA7qwjuZ2Qg/rZinkllkdfCbKXz8c4JJEr4mtU=",
-                "rev": "7e251262409b3401809e57c5314dd158210355b8",
-                "url": "https://chromium.googlesource.com/chromium/tools/depot_tools.git"
-            },
-            "src/third_party/devtools-frontend/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-D3W8U19i5pHWPLviMKbpzhiDoF6A0+tClYJcZWdbTqk=",
-                "rev": "bcf0ed097be848d234fb5290c1e4d69672dc5405",
-                "url": "https://chromium.googlesource.com/devtools/devtools-frontend"
-            },
-            "src/third_party/dom_distiller_js/dist": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-yuEBD2XQlV3FGI/i7lTmJbCqzeBiuG1Qow8wvsppGJw=",
-                "rev": "199de96b345ada7c6e7e6ba3d2fa7a6911b8767d",
-                "url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git"
-            },
-            "src/third_party/eigen3/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-c/4bf5+sJEgsKOJ34wPDNm1+6QUzETZZr/nE4SG5nKA=",
-                "rev": "66e8f38891841bf88ee976a316c0c78a52f0cee5",
-                "url": "https://chromium.googlesource.com/external/gitlab.com/libeigen/eigen.git"
-            },
-            "src/third_party/electron_node": {
-                "fetcher": "fetchFromGitHub",
-                "hash": "sha256-SI4qIix+sXWIS3WJyJoTdPb1cmSIhpLAmfa9iX/5Jlg=",
-                "owner": "nodejs",
-                "repo": "node",
-                "rev": "v18.17.1"
-            },
-            "src/third_party/emoji-segmenter/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-oT9mAKoKnrsFsBAeTRfPOXM76HRQQabFAlPpfKUGFhs=",
-                "rev": "9ba6d25d0d9313569665d4a9d2b34f0f39f9a50e",
-                "url": "https://chromium.googlesource.com/external/github.com/google/emoji-segmenter.git"
-            },
-            "src/third_party/expat/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-FXTDGAK03jc2wvazhRKqtsFRKZUYS/9HLpZNp4JfZJI=",
-                "rev": "441f98d02deafd9b090aea568282b28f66a50e36",
-                "url": "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git"
-            },
-            "src/third_party/farmhash/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-5n58VEUxa/K//jAfZqG4cXyfxrp50ogWDNYcgiXVHdc=",
-                "rev": "816a4ae622e964763ca0862d9dbd19324a1eaf45",
-                "url": "https://chromium.googlesource.com/external/github.com/google/farmhash.git"
-            },
-            "src/third_party/ffmpeg": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-uRgHTVaCAEaoqY20SmePQbApPmjimgggm5922KKfnbc=",
-                "rev": "0ba37733400593b162e5ae9ff26b384cff49c250",
-                "url": "https://chromium.googlesource.com/chromium/third_party/ffmpeg.git"
-            },
-            "src/third_party/flac": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-gvTFPNOlBfozptaH7lTb9iD/09AmpdT3kCl9ClszjEs=",
-                "rev": "689da3a7ed50af7448c3f1961d1791c7c1d9c85c",
-                "url": "https://chromium.googlesource.com/chromium/deps/flac.git"
-            },
-            "src/third_party/flatbuffers/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-yibx1WMAwNajROMGVqox3naMU09RSayxUaTCJ860euo=",
-                "rev": "28861d1d7d5ec6ce34d4bbdc10bec4aace341167",
-                "url": "https://chromium.googlesource.com/external/github.com/google/flatbuffers.git"
-            },
-            "src/third_party/fontconfig/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-7PFmgr/+KNEYxCMuxMD2Zi9Ydcbp88IU7exr55a392Q=",
-                "rev": "2fb3419a92156569bc1ec707401258c922cd0d99",
-                "url": "https://chromium.googlesource.com/external/fontconfig.git"
-            },
-            "src/third_party/fp16/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-m2d9bqZoGWzuUPGkd29MsrdscnJRtuIkLIMp3fMmtRY=",
-                "rev": "0a92994d729ff76a58f692d3028ca1b64b145d91",
-                "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FP16.git"
-            },
-            "src/third_party/freetype-testing/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-2aHPchIK5Oce5+XxdXVCC+8EM6i0XT0rFbjSIVa2L1A=",
-                "rev": "7a69b1a2b028476f840ab7d4a2ffdfe4eb2c389f",
-                "url": "https://chromium.googlesource.com/external/github.com/freetype/freetype2-testing.git"
-            },
-            "src/third_party/freetype/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-RRieGqEeAk5AYzJqPRpF25FmxMpEYwR7AQWLzXkED50=",
-                "rev": "45903920b984540bb629bc89f4c010159c23a89a",
-                "url": "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git"
-            },
-            "src/third_party/fuzztest/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-tVtrSbLxnHrbh027cafNbqkfjq/afQxw57rW9yGsRe0=",
-                "rev": "25f44f341f701eccc29d22f69313a54363c6099b",
-                "url": "https://chromium.googlesource.com/external/github.com/google/fuzztest.git"
-            },
-            "src/third_party/fxdiv/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-LjX5kivfHbqCIA5pF9qUvswG1gjOFo3CMpX0VR+Cn38=",
-                "rev": "63058eff77e11aa15bf531df5dd34395ec3017c8",
-                "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FXdiv.git"
-            },
-            "src/third_party/gemmlowp/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-O5wD8wxgis0qYMaY+xZ21GBDVQFphMRvInCOswS6inA=",
-                "rev": "13d57703abca3005d97b19df1f2db731607a7dc2",
-                "url": "https://chromium.googlesource.com/external/github.com/google/gemmlowp.git"
-            },
-            "src/third_party/google_benchmark/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-h2ryAQAuHI54Cni88L85e7Np4KATGVTRdDcmUvCNeWc=",
-                "rev": "b177433f3ee2513b1075140c723d73ab8901790f",
-                "url": "https://chromium.googlesource.com/external/github.com/google/benchmark.git"
-            },
-            "src/third_party/googletest/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-VYRjcM3dDY2FarviXyFMgSkXCqKfWXwtGAj2Msgm7zg=",
-                "rev": "af29db7ec28d6df1c7f0f745186884091e602e07",
-                "url": "https://chromium.googlesource.com/external/github.com/google/googletest.git"
-            },
-            "src/third_party/grpc/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-64JEVCx/PCM0dvv7kAQvSjLc0QbRAZVBDzwD/FAV6T8=",
-                "rev": "822dab21d9995c5cf942476b35ca12a1aa9d2737",
-                "url": "https://chromium.googlesource.com/external/github.com/grpc/grpc.git"
-            },
-            "src/third_party/harfbuzz-ng/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-+fClyD9Rsge9qdGF8WCv8taLTWNL8iManpXZUzDL2LM=",
-                "rev": "db700b5670d9475cc8ed4880cc9447b232c5e432",
-                "url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git"
-            },
-            "src/third_party/highway/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-kNb9UVcFq2BIf9nftUgN8ciFFCzRCou/sLwVf08jf3E=",
-                "rev": "8f20644eca693cfb74aa795b0006b6779c370e7a",
-                "url": "https://chromium.googlesource.com/external/github.com/google/highway.git"
-            },
-            "src/third_party/hunspell_dictionaries": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-67mvpJRFFa9eMfyqFMURlbxOaTJBICnk+gl0b0mEHl8=",
-                "rev": "41cdffd71c9948f63c7ad36e1fb0ff519aa7a37e",
-                "url": "https://chromium.googlesource.com/chromium/deps/hunspell_dictionaries.git"
-            },
-            "src/third_party/icu": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-9yFRBrHdWcYgrZAaigS8XnxNsqJNklGdFkAAgVdHXFU=",
-                "rev": "a622de35ac311c5ad390a7af80724634e5dc61ed",
-                "url": "https://chromium.googlesource.com/chromium/deps/icu.git"
-            },
-            "src/third_party/jsoncpp/source": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-bSLNcoYBz3QCt5VuTR056V9mU2PmBuYBa0W6hFg2m8Q=",
-                "rev": "42e892d96e47b1f6e29844cc705e148ec4856448",
-                "url": "https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp.git"
-            },
-            "src/third_party/leveldatabase/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-TTX2FrmcWsgqrh4uzqMyGnnnG51cVC2ILfdLxD65MLY=",
-                "rev": "068d5ee1a3ac40dabd00d211d5013af44be55bea",
-                "url": "https://chromium.googlesource.com/external/leveldb.git"
-            },
-            "src/third_party/libFuzzer/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-Zp8Ea/7GwmEl964MEIk3UM6IR5+FtUz8InlqZaOniDA=",
-                "rev": "26cc39e59b2bf5cbc20486296248a842c536878d",
-                "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git"
-            },
-            "src/third_party/libaddressinput/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-xvUUQSPrvqUp5DI9AqlRTWurwDW087c6v4RvI+4sfOQ=",
-                "rev": "e8712e415627f22d0b00ebee8db99547077f39bd",
-                "url": "https://chromium.googlesource.com/external/libaddressinput.git"
-            },
-            "src/third_party/libaom/source/libaom": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-Z8td6FIvHibTQsB6x/A/69xduogj2b2lteiQB6l56vE=",
-                "rev": "5f8db64abce68a3698fb732697ae50880bc9cac4",
-                "url": "https://aomedia.googlesource.com/aom.git"
-            },
-            "src/third_party/libavif/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-KfRRGTS8kBwi9Z9wafpSwL29RU38THG2xBCvNBXtZtg=",
-                "rev": "b2d36b1c3bfc806694cd4ff0cb188270823fe6d8",
-                "url": "https://chromium.googlesource.com/external/github.com/AOMediaCodec/libavif.git"
-            },
-            "src/third_party/libavifinfo/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-yTv1AGtWfxXcywZycpsQBkBRLwuUJMPFKtpj7nrsc4A=",
-                "rev": "707919b2f8ac1920b2f7ae252c233f9c6dcf84e1",
-                "url": "https://aomedia.googlesource.com/libavifinfo.git"
-            },
-            "src/third_party/libc++/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-YP1LAUaV8epDAsd9LOovdXUyzpaLgffOJcGM6VmTaKc=",
-                "rev": "84fb809dd6dae36d556dc0bb702c6cc2ce9d4b80",
-                "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git"
-            },
-            "src/third_party/libc++abi/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-CBUw50T/jFMXU0cR+BQH6JyEY3mHamLM6kA8YdvI24Q=",
-                "rev": "331847d7a5e6f8706689cf5d468e6e58c868fa10",
-                "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git"
-            },
-            "src/third_party/libdrm/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-NUxS2rBJ0nFblvHRQUfKT933+DAws5RUTDb+RLxRF4M=",
-                "rev": "98e1db501173303e58ef6a1def94ab7a2d84afc1",
-                "url": "https://chromium.googlesource.com/chromiumos/third_party/libdrm.git"
-            },
-            "src/third_party/libgav1/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-dT8/Mdit3Qc5Sno6DYKv1qSNr+6Lhiy24ZNNBKoVq8I=",
-                "rev": "df0023cc95b8e606a2fd243522d823401ef86637",
-                "url": "https://chromium.googlesource.com/codecs/libgav1.git"
-            },
-            "src/third_party/libipp/libipp": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-gxU92lHLd6uxO8T3QWhZIK0hGy97cki705DV0VimCPY=",
-                "rev": "2209bb84a8e122dab7c02fe66cc61a7b42873d7f",
-                "url": "https://chromium.googlesource.com/chromiumos/platform2/libipp.git"
-            },
-            "src/third_party/libjpeg_turbo": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-bcmp8RqQYp4lRI9NfdfYgrAJsDLecJEhgRu9oosB9lQ=",
-                "rev": "30bdb85e302ecfc52593636b2f44af438e05e784",
-                "url": "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git"
-            },
-            "src/third_party/liblouis/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-EI/uaHXe0NlqdEw764q0SjerThYEVLRogUlmrsZwXnY=",
-                "rev": "9700847afb92cb35969bdfcbbfbbb74b9c7b3376",
-                "url": "https://chromium.googlesource.com/external/liblouis-github.git"
-            },
-            "src/third_party/libphonenumber/dist": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-3hSnTFTD3KAdbyxfKg12qbIYTmw6YlTCH64gMP/HUJo=",
-                "rev": "140dfeb81b753388e8a672900fb7a971e9a0d362",
-                "url": "https://chromium.googlesource.com/external/libphonenumber.git"
-            },
-            "src/third_party/libprotobuf-mutator/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-ZyPweW+V5foxFQwjjMLkaRUo+FNV+kEDGIH/4oRV614=",
-                "rev": "a304ec48dcf15d942607032151f7e9ee504b5dcf",
-                "url": "https://chromium.googlesource.com/external/github.com/google/libprotobuf-mutator.git"
-            },
-            "src/third_party/libsrtp": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-pfLFh2JGk/g0ZZxBKTaYW9/PBpkCm0rtJeyNePUMTTc=",
-                "rev": "5b7c744eb8310250ccc534f3f86a2015b3887a0a",
-                "url": "https://chromium.googlesource.com/chromium/deps/libsrtp.git"
-            },
-            "src/third_party/libsync/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-Mkl6C1LxF3RYLwYbxiSfoQPt8QKFwQWj/Ati2sNJ32E=",
-                "rev": "f4f4387b6bf2387efbcfd1453af4892e8982faf6",
-                "url": "https://chromium.googlesource.com/aosp/platform/system/core/libsync.git"
-            },
-            "src/third_party/libunwind/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-rqmY4JNm4zuYqXs7o+1QhNnaNX4Cmt7PTJMGploHPnY=",
-                "rev": "a321409e66c212098e755cfae1a978bbcff1ccbb",
-                "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git"
-            },
-            "src/third_party/libvpx/source/libvpx": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-5x0Sk8/DXaTCIydK79vWZgIx3IHeQbLUxoNyE7E+Sdo=",
-                "rev": "38a707faef72eeff89d669c553e7bfe9e08dba8f",
-                "url": "https://chromium.googlesource.com/webm/libvpx.git"
-            },
-            "src/third_party/libwebm/source": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-u/5nkJed0DzdhR5OLL2kIhZhOnrbyzL1Kx37vV/jcEo=",
-                "rev": "e4fbea0c9751ae8aa86629b197a28d8276a2b0da",
-                "url": "https://chromium.googlesource.com/webm/libwebm.git"
-            },
-            "src/third_party/libwebp/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-79peh0y3eeiW5cVQqVq0mUgDcGZ9BlY+OXkPZylKARY=",
-                "rev": "2af26267cdfcb63a88e5c74a85927a12d6ca1d76",
-                "url": "https://chromium.googlesource.com/webm/libwebp.git"
-            },
-            "src/third_party/libyuv": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-jxs9kHI40gRFhm9cU6uS1Rxj+LLUUqT9b3myihxgW7s=",
-                "rev": "04821d1e7d60845525e8db55c7bcd41ef5be9406",
-                "url": "https://chromium.googlesource.com/libyuv/libyuv.git"
-            },
-            "src/third_party/lss": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-hE8uZf9Fst66qJkoVYChiB8G41ie+k9M4X0W+5JUSdw=",
-                "rev": "ce877209e11aa69dcfffbd53ef90ea1d07136521",
-                "url": "https://chromium.googlesource.com/linux-syscall-support.git"
-            },
-            "src/third_party/material_color_utilities/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-oi28dWuTd6ijn/RKSPukDr5GSzYiCTM2klFb7WSMDHY=",
-                "rev": "234a000e507d586c20df6e3bf5b9e035bc5ce7b1",
-                "url": "https://chromium.googlesource.com/external/github.com/material-foundation/material-color-utilities.git"
-            },
-            "src/third_party/minigbm/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-9HwvjTETerbQ7YKXH9kUB2eWa8PxGWMAJfx1jAluhrs=",
-                "rev": "3018207f4d89395cc271278fb9a6558b660885f5",
-                "url": "https://chromium.googlesource.com/chromiumos/platform/minigbm.git"
-            },
-            "src/third_party/nan": {
-                "fetcher": "fetchFromGitHub",
-                "hash": "sha256-tur5CExvwuSmwqBwH9o8OZWzDuifRybjEb+4/tm6exk=",
-                "owner": "nodejs",
-                "repo": "nan",
-                "rev": "16fa32231e2ccd89d2804b3f765319128b20c4ac"
-            },
-            "src/third_party/nasm": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-L+b3X3vsfpY6FSlIK/AHhxhmq2cXd50vND6uT6yn8Qs=",
-                "rev": "7fc833e889d1afda72c06220e5bed8fb43b2e5ce",
-                "url": "https://chromium.googlesource.com/chromium/deps/nasm.git"
-            },
-            "src/third_party/nearby/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-5d7c8WvkjmBuwcwqhxQf0wRE3qaF8fFsiqUE1sHh0nc=",
-                "rev": "8725391822b8901784b379a4573ab8828e7091d3",
-                "url": "https://chromium.googlesource.com/external/github.com/google/nearby-connections.git"
-            },
-            "src/third_party/neon_2_sse/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-299ZptvdTmCnIuVVBkrpf5ZTxKPwgcGUob81tEI91F0=",
-                "rev": "a15b489e1222b2087007546b4912e21293ea86ff",
-                "url": "https://chromium.googlesource.com/external/github.com/intel/ARM_NEON_2_x86_SSE.git"
-            },
-            "src/third_party/openh264/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-J7Eqe2QevZh1xfap19W8AVCcwfRu7ztknnbKFJUAH1c=",
-                "rev": "09a4f3ec842a8932341b195c5b01e141c8a16eb7",
-                "url": "https://chromium.googlesource.com/external/github.com/cisco/openh264"
-            },
-            "src/third_party/openscreen/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-TyZ/sZ0gnesWjKUnO2RVM2TTdpVIxsBWueHDgix0/wg=",
-                "rev": "971d6055e7b78c474e2e734e55a2991fbb7ab665",
-                "url": "https://chromium.googlesource.com/openscreen"
-            },
-            "src/third_party/openscreen/src/third_party/tinycbor/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-fMKBFUSKmODQyg4hKIa1hwnEKIV6WBbY1Gb8DOSnaHA=",
-                "rev": "d393c16f3eb30d0c47e6f9d92db62272f0ec4dc7",
-                "url": "https://chromium.googlesource.com/external/github.com/intel/tinycbor.git"
-            },
-            "src/third_party/ots/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-kiUXrXsaGOzPkKh0dVmU1I13WHt0Stzj7QLMqHN9FbU=",
-                "rev": "46bea9879127d0ff1c6601b078e2ce98e83fcd33",
-                "url": "https://chromium.googlesource.com/external/github.com/khaledhosny/ots.git"
-            },
-            "src/third_party/pdfium": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-u+El2jEnvlcQs5j5TthpKj8s255n2AhJPW+Q/s0Ljm0=",
-                "rev": "6e55da0c45788fdc22fa3aab7ead414fc42b74c1",
-                "url": "https://pdfium.googlesource.com/pdfium.git"
-            },
-            "src/third_party/perfetto": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-/8WQO0r10Hz3yLNh1MtjE8rGfzbpDkUowA2OPwEuRvA=",
-                "rev": "43b72e3ce703b676c9c923b04540472d10790f56",
-                "url": "https://android.googlesource.com/platform/external/perfetto.git"
-            },
-            "src/third_party/pthreadpool/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-Pfvievhma1rOpbLdSrIX4KaZyRpdvrnjRzzPYl3fDQo=",
-                "rev": "1787867f6183f056420e532eec640cba25efafea",
-                "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/pthreadpool.git"
-            },
-            "src/third_party/pyelftools": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-I/7p3IEvfP/gkes4kx18PvWwhAKilQKb67GXoW4zFB4=",
-                "rev": "19b3e610c86fcadb837d252c794cb5e8008826ae",
-                "url": "https://chromium.googlesource.com/chromiumos/third_party/pyelftools.git"
-            },
-            "src/third_party/pywebsocket3/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-WEqqu2/7fLqcf/2/IcD7/FewRSZ6jTgVlVBvnihthYQ=",
-                "rev": "50602a14f1b6da17e0b619833a13addc6ea78bc2",
-                "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/pywebsocket3.git"
-            },
-            "src/third_party/quic_trace/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-Nf9ZDLcE1JunhbpEMHhrY2ROnbgrvVZoRkPwWq1DU0g=",
-                "rev": "caa0a6eaba816ecb737f9a70782b7c80b8ac8dbc",
-                "url": "https://chromium.googlesource.com/external/github.com/google/quic-trace.git"
-            },
-            "src/third_party/re2/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-9V/Q5o24sL1TJUDNifUqpyrQ2zTSrhU0Bxo9qDwd0+4=",
-                "rev": "87d09ef4f0307e53f1d3796843f4b90d41cfccaa",
-                "url": "https://chromium.googlesource.com/external/github.com/google/re2.git"
-            },
-            "src/third_party/ruy/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-hNco0Jol4vQS1bkYiXaoZ1IPHwoRq3DD3iY0TeLygew=",
-                "rev": "c04e5e52ae6b144f74ac032652e3c538bda15c9b",
-                "url": "https://chromium.googlesource.com/external/github.com/google/ruy.git"
-            },
-            "src/third_party/securemessage/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-GS4ccnuiqxMs/LVYAtvSlVAYFp4a5GoZsxcriTX3k78=",
-                "rev": "fa07beb12babc3b25e0c5b1f38c16aa8cb6b8f84",
-                "url": "https://chromium.googlesource.com/external/github.com/google/securemessage.git"
-            },
-            "src/third_party/skia": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-Ck15ddYoo8pVLHcwW5P8Ei1sBQf23EGd/ySGOVSWAFQ=",
-                "rev": "b4f0c1163c955e42489f62d842585720cf0df0ea",
-                "url": "https://skia.googlesource.com/skia.git"
-            },
-            "src/third_party/smhasher/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-RyC//me08hwGXRrWcK8GZ1uhIkBq4FByA7fHCVDsniw=",
-                "rev": "e87738e57558e0ec472b2fc3a643b838e5b6e88f",
-                "url": "https://chromium.googlesource.com/external/smhasher.git"
-            },
-            "src/third_party/snappy/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-5fV6NfO8vmqK+iCwpLtE2YjYOzjsshctauyjNIOxrH0=",
-                "rev": "c9f9edf6d75bb065fa47468bf035e051a57bec7c",
-                "url": "https://chromium.googlesource.com/external/github.com/google/snappy.git"
-            },
-            "src/third_party/speedometer/v3.0": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-PqrwtPFU3TI840za3UU8p+t4ZdyX0l79esEA602Mbq0=",
-                "rev": "5107c739c1b2a008e7293e3b489c4f80a8fb2e01",
-                "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git"
-            },
-            "src/third_party/sqlite/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-35rSG+ptFMC62FsprLvAqfXZknKu40Ee6H2qpAcA3wI=",
-                "rev": "b7e480172bb2411f9afedefdcc69a57a12f18b7b",
-                "url": "https://chromium.googlesource.com/chromium/deps/sqlite.git"
-            },
-            "src/third_party/squirrel.mac": {
-                "fetcher": "fetchFromGitHub",
-                "hash": "sha256-4GfKQg0u3c9GI+jl3ixESNqWXQJKRMi+00QT0s2Shqw=",
-                "owner": "Squirrel",
-                "repo": "Squirrel.Mac",
-                "rev": "0e5d146ba13101a1302d59ea6e6e0b3cace4ae38"
-            },
-            "src/third_party/squirrel.mac/vendor/Mantle": {
-                "fetcher": "fetchFromGitHub",
-                "hash": "sha256-ogFkMJybf2Ue606ojXJu6Gy5aXSi1bSKm60qcTAIaPk=",
-                "owner": "Mantle",
-                "repo": "Mantle",
-                "rev": "78d3966b3c331292ea29ec38661b25df0a245948"
-            },
-            "src/third_party/squirrel.mac/vendor/ReactiveObjC": {
-                "fetcher": "fetchFromGitHub",
-                "hash": "sha256-/MCqC1oFe3N9TsmfVLgl+deR6qHU6ZFQQjudb9zB5Mo=",
-                "owner": "ReactiveCocoa",
-                "repo": "ReactiveObjC",
-                "rev": "74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76"
-            },
-            "src/third_party/swiftshader": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-PCPb5opTATGCCQmw8TGF09TbLL8QES+So+yaL68H//I=",
-                "rev": "32f9332d1d7aacbdba7c1aa5df894bb1890bb2cc",
-                "url": "https://swiftshader.googlesource.com/SwiftShader.git"
-            },
-            "src/third_party/text-fragments-polyfill/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-4rW2u1cQAF4iPWHAt1FvVXIpz2pmI901rEPks/w/iFA=",
-                "rev": "c036420683f672d685e27415de0a5f5e85bdc23f",
-                "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/text-fragments-polyfill.git"
-            },
-            "src/third_party/tflite/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-3gawK1S5+nr5yOAHgYozLWSoT1TbJmB6Md1fID6du9w=",
-                "rev": "91946956f81a2d9fd12a6d6baba20c997d3f8890",
-                "url": "https://chromium.googlesource.com/external/github.com/tensorflow/tensorflow.git"
-            },
-            "src/third_party/ukey2/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-aaLs6ZS+CdBlCJ6ZhsmdAPFxiBIij6oufsDcNeRSV1E=",
-                "rev": "0275885d8e6038c39b8a8ca55e75d1d4d1727f47",
-                "url": "https://chromium.googlesource.com/external/github.com/google/ukey2.git"
-            },
-            "src/third_party/vulkan-deps": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-xYX77wsgG+2TzS0AinFJndnID5P3/anY4TPh3cjRaIY=",
-                "rev": "4b7a5f2a3522cbc4e4334cdc64bfaf3f832b89c3",
-                "url": "https://chromium.googlesource.com/vulkan-deps"
-            },
-            "src/third_party/vulkan-deps/glslang/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-Y9AmEtFPj+sp/a5YnHChqlqgW/1kdaJ1CEbBB5r2cuI=",
-                "rev": "e3a711b6fc942307be7cb634698015dfd13c37fe",
-                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang"
-            },
-            "src/third_party/vulkan-deps/spirv-cross/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-I8RXVat6//rlpmZuuC99Ar/Rct6MFce4FGKgQA2gBj0=",
-                "rev": "54997fb4bc3adeb47b9b9f7bb67f1c25eaca2204",
-                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross"
-            },
-            "src/third_party/vulkan-deps/spirv-headers/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-OqLxyrTzg1Q2zmQd0YalWtl7vX5lRJFmE2VH7fHC8/8=",
-                "rev": "d790ced752b5bfc06b6988baadef6eb2d16bdf96",
-                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers"
-            },
-            "src/third_party/vulkan-deps/spirv-tools/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-wFdAzbOQdOqeuVaWl5036qkli1gkSiL5JHH82Z5cFL4=",
-                "rev": "4c16c35b16bbd462a0e89707ebeecc0bce956b2f",
-                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools"
-            },
-            "src/third_party/vulkan-deps/vulkan-headers/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-9+tHkkHsP5ft6+tbofOYV1yBFDpFlJz4Q6YS8c6T5As=",
-                "rev": "2634c969d7dc0e983f005f7f2e665cce8449efe6",
-                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers"
-            },
-            "src/third_party/vulkan-deps/vulkan-loader/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-q7/dYKQ3O0aSs326YbEeLlS+SciFWugBGm/G+b8RNd0=",
-                "rev": "d34bfafff23602e857064bea6d99a35eb63f37f2",
-                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader"
-            },
-            "src/third_party/vulkan-deps/vulkan-tools/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-tcaJmosHwTo38keV5qkumkLB1o1qq8v2ZmSsi2zDGoE=",
-                "rev": "389110e4600669d82bca042859fddf898387c0d2",
-                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools"
-            },
-            "src/third_party/vulkan-deps/vulkan-utility-libraries/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-7M47ZCbNwIppaotMfJTFTRsYNvSZNc0FUufoyXyUu/g=",
-                "rev": "dd26ae7065a9ed60c8ab517ed79bf7935394aec7",
-                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries"
-            },
-            "src/third_party/vulkan-deps/vulkan-validation-layers/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-lj6MIQctcK6gsJlLdLwQ9PHbiAtTbNIPinii8vGZdGk=",
-                "rev": "b89f48ae89ec064c91e8b77468cebc18c3faa682",
-                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers"
-            },
-            "src/third_party/vulkan_memory_allocator": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-FdRPPdLZHj3RX3YzcmF58JJuIqeWQV3TDiiXPEW2lsc=",
-                "rev": "e87036508bb156f9986ea959323de1869e328f58",
-                "url": "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git"
-            },
-            "src/third_party/wayland-protocols/gtk": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-75XNnLkF5Lt1LMRGT+T61k0/mLa3kkynfN+QWvZ0LiQ=",
-                "rev": "40ebed3a03aef096addc0af09fec4ec529d882a0",
-                "url": "https://chromium.googlesource.com/external/github.com/GNOME/gtk.git"
-            },
-            "src/third_party/wayland-protocols/kde": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-Dmcp/2ms/k7NxPPmPkp0YNfM9z2Es1ZO0uX10bc7N2Y=",
-                "rev": "0b07950714b3a36c9b9f71fc025fc7783e82926e",
-                "url": "https://chromium.googlesource.com/external/github.com/KDE/plasma-wayland-protocols.git"
-            },
-            "src/third_party/wayland-protocols/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-3QK+ZN6IFUFkDxySSoQwP1J3JnTlD7JPaUk6Tr/d/k4=",
-                "rev": "4624cfaaf563cd7be5e2e2087c8de6d3a48ea867",
-                "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland-protocols.git"
-            },
-            "src/third_party/wayland/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-aVcy7bW1cqEKbowlVgfa9FI8/oG7k5CzPZbRl+cPcX8=",
-                "rev": "a8c7553ec9af6462474524fd2bb4e9a7dc7217dd",
-                "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland.git"
-            },
-            "src/third_party/webdriver/pylib": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-WIqWXIKVgElgg8P8laLAlUrgwodGdeVcwohZxnPKedw=",
-                "rev": "fc5e7e70c098bfb189a9a74746809ad3c5c34e04",
-                "url": "https://chromium.googlesource.com/external/github.com/SeleniumHQ/selenium/py.git"
-            },
-            "src/third_party/webgl/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-h4by/1pp9oQGetZNnc1Rt5X5izgQf8ZUZDfsxQacqC0=",
-                "rev": "eab0468fc0405b21e59bea30a441d8e38c9db2b7",
-                "url": "https://chromium.googlesource.com/external/khronosgroup/webgl.git"
-            },
-            "src/third_party/webgpu-cts/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-Wch3opAvU/6rJVptOKxOJssev8NhNpbYZddScTlzuMw=",
-                "rev": "4c8d2f67ecd03fbd3cb4c517ef8461427b6d635d",
-                "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts.git"
-            },
-            "src/third_party/webrtc": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-KpiNGAue945kGCuQYGhxiWVUFTE1tcntSAXBZdkrE9A=",
-                "rev": "d8f2b0380b3ec980af35ce4b92ba6a211ec8c76d",
-                "url": "https://webrtc.googlesource.com/src.git"
-            },
-            "src/third_party/weston/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-sfJm1CBGXX13pFcqeOVPqWlXrUfwjRl+rYf2BoT8Bt8=",
-                "rev": "775f8a1edf357f59e6b2e284297f396f4fac95a4",
-                "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/weston.git"
-            },
-            "src/third_party/wuffs/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-HP8Vf1C9DuA9H+busf3lFoF9SsYqviLKv0l73CxmNEI=",
-                "rev": "fe9d08f2b6e80af691bfb1a718e144c49a1b9eba",
-                "url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git"
-            },
-            "src/third_party/xdg-utils": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-t3uV9JkkQQIwmezzSoEdTMLSizZdLQB7eLKTRQGH4kQ=",
-                "rev": "d80274d5869b17b8c9067a1022e4416ee7ed5e0d",
-                "url": "https://chromium.googlesource.com/chromium/deps/xdg-utils.git"
-            },
-            "src/third_party/xnnpack/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-vsn3lrog5affus0qxc4TK2Z/tdd/E6hBYeUQRWoDZPQ=",
-                "rev": "b9d4073a6913891ce9cbd8965c8d506075d2a45a",
-                "url": "https://chromium.googlesource.com/external/github.com/google/XNNPACK.git"
-            },
-            "src/third_party/zstd/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-yzv/R/GnqlXLeAjBEIev+8uM7MC0HeK0MfppnMTJ7Eg=",
-                "rev": "25822342be59d831bad65426ae51f5cc22157b09",
-                "url": "https://chromium.googlesource.com/external/github.com/facebook/zstd.git"
-            },
-            "src/tools/page_cycler/acid3": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-s/49EaYQRsyxuLejXc1zGDYTD7uO0ddaQIJBP50Bvw0=",
-                "rev": "a926d0a32e02c4c03ae95bb798e6c780e0e184ba",
-                "url": "https://chromium.googlesource.com/chromium/deps/acid3.git"
-            },
-            "src/v8": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-Fn4HoS7O2J3nGXFyq7r7AheRQzKy80USTQnNnC4rWqM=",
-                "rev": "36e4828ab658b8ad72f80974883c4c94f6e7012c",
-                "url": "https://chromium.googlesource.com/v8/v8.git"
-            }
-        },
-        "electron_yarn_hash": "1yq854829a4q0yqyjyn2lq4l3amsqdhfd7fjcnc3mz8l2ci3n964",
-        "modules": "118",
-        "node": "18.17.1",
-        "version": "27.3.11"
-    },
-    "28": {
-        "chrome": "120.0.6099.291",
-        "chromium": {
-            "deps": {
-                "gn": {
-                    "hash": "sha256-dwluGOfq05swtBM5gg4a6gY3IpFHaKKkD0TV1XW7c7k=",
-                    "rev": "e4702d7409069c4f12d45ea7b7f0890717ca3f4b",
-                    "url": "https://gn.googlesource.com/gn",
-                    "version": "2023-10-23"
-                }
-            },
-            "version": "120.0.6099.291"
-        },
-        "chromium_npm_hash": "sha256-zexxXAAJDnhMmh7HfBO1V1z1Yds06C3gSpXacsbjUb4=",
-        "deps": {
-            "src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-g0aRiWCPrXPKBsOsAgtLmRbOeYigtm05MrWH6/fhQs0=",
-                "postFetch": "rm -r $out/third_party/blink/web_tests; rm -r $out/third_party/hunspell/tests; rm -r $out/content/test/data; rm -r $out/courgette/testdata; rm -r $out/extensions/test/data; rm -r $out/media/test/data; ",
-                "rev": "120.0.6099.291",
-                "url": "https://chromium.googlesource.com/chromium/src.git"
-            },
-            "src/chrome/test/data/perf/canvas_bench": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-svOuyBGKloBLM11xLlWCDsB4PpRjdKTBdW2UEW4JQjM=",
-                "rev": "a7b40ea5ae0239517d78845a5fc9b12976bfc732",
-                "url": "https://chromium.googlesource.com/chromium/canvas_bench.git"
-            },
-            "src/chrome/test/data/perf/frame_rate/content": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-t4kcuvH0rkPBkcdiMsoNQaRwU09eU+oSvyHDiAHrKXo=",
-                "rev": "c10272c88463efeef6bb19c9ec07c42bc8fe22b9",
-                "url": "https://chromium.googlesource.com/chromium/frame_rate/content.git"
-            },
-            "src/chrome/test/data/xr/webvr_info": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-BsAPwc4oEWri0TlqhyxqFNqKdfgVSrB0vQyISmYY4eg=",
-                "rev": "c58ae99b9ff9e2aa4c524633519570bf33536248",
-                "url": "https://chromium.googlesource.com/external/github.com/toji/webvr.info.git"
-            },
-            "src/docs/website": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-+UawYfW5FAMpv0TbzSR8qITPGUQulLIZ0mUh6ZdnmMI=",
-                "rev": "07714da3c28b942dc8522affed4487403e971545",
-                "url": "https://chromium.googlesource.com/website.git"
-            },
-            "src/electron": {
-                "fetcher": "fetchFromGitHub",
-                "hash": "sha256-Y0uNoq5LhlFMxQfqrTjzOokbB7Y6UUAlBCj+Nghiz5w=",
-                "owner": "electron",
-                "repo": "electron",
-                "rev": "v28.3.1"
-            },
-            "src/media/cdm/api": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-6J6aSYW0or99VAgMNJJOdJqMJspoG7w1HxDN50MV5bw=",
-                "rev": "fef0b5aa1bd31efb88dfab804bdbe614f3d54f28",
-                "url": "https://chromium.googlesource.com/chromium/cdm.git"
-            },
-            "src/net/third_party/quiche/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-JXWGEsJrXRXs2BrkWIC8cUBD6uvt8ftb9V5Dy2yLc/w=",
-                "rev": "a01a131ca6df63e774809d623f47e8cf28c574cc",
-                "url": "https://quiche.googlesource.com/quiche.git"
-            },
-            "src/third_party/angle": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-aOV7kxrF8FeoHYodZjaUrDDUtpXg2gUiZg6Olv90puk=",
-                "rev": "6fff8ebc937f07e31473ac014a55f662248ab39a",
-                "url": "https://chromium.googlesource.com/angle/angle.git"
-            },
-            "src/third_party/angle/third_party/VK-GL-CTS/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-+g1yjF1yETrL1X6Cxu5mhPWXukWygg1dnawU8S9cGkA=",
-                "rev": "7d738783bf286e82937e431c295d4682f3767267",
-                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS"
-            },
-            "src/third_party/angle/third_party/glmark2/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-L7+zWM0qn8WFhmON7DGvarTsN1YHt1sn5+hazTOZrrk=",
-                "rev": "ca8de51fedb70bace5351c6b002eb952c747e889",
-                "url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2"
-            },
-            "src/third_party/angle/third_party/rapidjson/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-btUl1a/B0sXwf/+hyvCvVJjWqIkXfVYCpHm3TeBuOxk=",
-                "rev": "781a4e667d84aeedbeb8184b7b62425ea66ec59f",
-                "url": "https://chromium.googlesource.com/external/github.com/Tencent/rapidjson"
-            },
-            "src/third_party/anonymous_tokens/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-2B0j9vNF8nMhmedk+ghz4JJJiDKN6jnVfdqsa4zRWeU=",
-                "rev": "47d423347823088a21b26262ca553eadb8e5b220",
-                "url": "https://chromium.googlesource.com/external/github.com/google/anonymous-tokens.git"
-            },
-            "src/third_party/beto-core/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-qgsPK7RyVqGRji0sTcMck1JqX9iCsYIExGoGwNZyVT0=",
-                "rev": "b902b346037ea3f4aadf8177021f6f917b16e648",
-                "url": "https://beto-core.googlesource.com/beto-core.git"
-            },
-            "src/third_party/boringssl/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-hxPNJzWS2f4iUsNYwRvxiTL9vRrcZzZT5KpIx3+WuGM=",
-                "rev": "c38dc29860a72540eb2c4fdb8a8bfb27ef94ddf3",
-                "url": "https://boringssl.googlesource.com/boringssl.git"
-            },
-            "src/third_party/breakpad/breakpad": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-8AkC/8oX4OWAcV21laJ0AeMRB9G04rFc6UJFy7Wus4A=",
-                "rev": "8988364bcddd9b194b0bf931c10bc125987330ed",
-                "url": "https://chromium.googlesource.com/breakpad/breakpad.git"
-            },
-            "src/third_party/cast_core/public/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-AalRQhJmornCqmvE2+36J/3LubaA0jr6P1PXy32lX4I=",
-                "rev": "71f51fd6fa45fac73848f65421081edd723297cd",
-                "url": "https://chromium.googlesource.com/cast_core/public"
-            },
-            "src/third_party/catapult": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-jueHC5YC+WmGRtGZ8yD6QT2pVj21n1THpIz/vI9M334=",
-                "rev": "47efdb4b1428e549c58a6d6c2fa79c4a8ceaf9b4",
-                "url": "https://chromium.googlesource.com/catapult.git"
-            },
-            "src/third_party/ced/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-ySG74Rj2i2c/PltEgHVEDq+N8yd9gZmxNktc56zIUiY=",
-                "rev": "ba412eaaacd3186085babcd901679a48863c7dd5",
-                "url": "https://chromium.googlesource.com/external/github.com/google/compact_enc_det.git"
-            },
-            "src/third_party/chromium-variations": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-cRFzDmGoyrxwPDVvatGm3EutOXtWqqlI7v7BeX5d43s=",
-                "rev": "cb7fe7e32de8b885ccdd6293444d8e4028b03eca",
-                "url": "https://chromium.googlesource.com/chromium-variations.git"
-            },
-            "src/third_party/clang-format/script": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-7VvofDDQe+SoMRBfVk26q+C+OPyOE7QH35wVWkfDKxs=",
-                "rev": "e5337933f2951cacd3aeacd238ce4578163ca0b9",
-                "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/clang/tools/clang-format.git"
-            },
-            "src/third_party/cld_3/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-C3MOMBUy9jgkT9BAi/Fgm2UH4cxRuwSBEcRl3hzM2Ss=",
-                "rev": "b48dc46512566f5a2d41118c8c1116c4f96dc661",
-                "url": "https://chromium.googlesource.com/external/github.com/google/cld_3.git"
-            },
-            "src/third_party/colorama/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-6ZTdPYSHdQOLYMSnE+Tp7PgsVTs3U2awGu9Qb4Rg/tk=",
-                "rev": "3de9f013df4b470069d03d250224062e8cf15c49",
-                "url": "https://chromium.googlesource.com/external/colorama.git"
-            },
-            "src/third_party/content_analysis_sdk/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-f5Jmk1MiGjaRdLun+v/GKVl8Yv9hOZMTQUSxgiJalcY=",
-                "rev": "9a408736204513e0e95dd2ab3c08de0d95963efc",
-                "url": "https://chromium.googlesource.com/external/github.com/chromium/content_analysis_sdk.git"
-            },
-            "src/third_party/cpu_features/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-E8LoVzhe+TAmARWZTSuINlsVhzpUJMxPPCGe/dHZcyA=",
-                "rev": "936b9ab5515dead115606559502e3864958f7f6e",
-                "url": "https://chromium.googlesource.com/external/github.com/google/cpu_features.git"
-            },
-            "src/third_party/cpuinfo/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-BcSG/1aa/cyT8CCd1Qdsm/yXa5bCrmrtaRxnYjwkspY=",
-                "rev": "76d5e8f5b563daa65340a60fce0e9aec73a936df",
-                "url": "https://chromium.googlesource.com/external/github.com/pytorch/cpuinfo.git"
-            },
-            "src/third_party/crc32c/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-urg0bmnfMfHagLPELp4WrNCz1gBZ6DFOWpDue1KsMtc=",
-                "rev": "fa5ade41ee480003d9c5af6f43567ba22e4e17e6",
-                "url": "https://chromium.googlesource.com/external/github.com/google/crc32c.git"
-            },
-            "src/third_party/cros-components/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-ZjLMlNDDN08v9SUFAuroPsu/6ADLHZAAFpv+bmaJA2Y=",
-                "rev": "25159cae8d540780cbeb994692ce4a3ea14cc094",
-                "url": "https://chromium.googlesource.com/external/google3/cros_components.git"
-            },
-            "src/third_party/cros_system_api": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-wI4rx+oQ6i8yIB8NBp/O471O4pVJL3l+ez0t8I5oD/w=",
-                "rev": "00c21541508ea2c6863f1cda24ef88ef30309ae8",
-                "url": "https://chromium.googlesource.com/chromiumos/platform2/system_api.git"
-            },
-            "src/third_party/crossbench": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-s/+y5bMj+CRnljFZ5aWKirPCsRUjckLOZ5F65WnPYSY=",
-                "rev": "06981428c28d66678ebec13ca1fac3785cf51bb1",
-                "url": "https://chromium.googlesource.com/crossbench.git"
-            },
-            "src/third_party/dav1d/libdav1d": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-9SrbxiOqXKTFf4qZ4Wqg9aoOMY8zv7NczTqN2+lXwCI=",
-                "rev": "47107e384bd1dc25674acf04d000a8cdc6195234",
-                "url": "https://chromium.googlesource.com/external/github.com/videolan/dav1d.git"
-            },
-            "src/third_party/dawn": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-5srmcwL9Zqv91LwoBf9xuyusq1ghDo30Aj27Xo96yPc=",
-                "rev": "c7ed440d75861649d8a1ef4b775384f31211d902",
-                "url": "https://dawn.googlesource.com/dawn.git"
-            },
-            "src/third_party/dawn/third_party/dxc": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-EAfTm0QZcihcU6ufBHE1QsYRggNWNKHjVZXcrUp/T+c=",
-                "rev": "64030a4e01e27c608b6c5f1ab5add43575e086f9",
-                "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler"
-            },
-            "src/third_party/dawn/third_party/dxheaders": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-0Miw1Cy/jmOo7bLFBOHuTRDV04cSeyvUEyPkpVsX9DA=",
-                "rev": "980971e835876dc0cde415e8f9bc646e64667bf7",
-                "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers"
-            },
-            "src/third_party/dawn/third_party/glfw": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-TwAPRjQxIz3J+zbNxzCp5Tek7MwisxdekMpY5QGsKyg=",
-                "rev": "62e175ef9fae75335575964c845a302447c012c7",
-                "url": "https://chromium.googlesource.com/external/github.com/glfw/glfw"
-            },
-            "src/third_party/dawn/third_party/khronos/EGL-Registry": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-Z6DwLfgQ1wsJXz0KKJyVieOatnDmx3cs0qJ6IEgSq1A=",
-                "rev": "7dea2ed79187cd13f76183c4b9100159b9e3e071",
-                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/EGL-Registry"
-            },
-            "src/third_party/dawn/third_party/khronos/OpenGL-Registry": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-K3PcRIiD3AmnbiSm5TwaLs4Gu9hxaN8Y91WMKK8pOXE=",
-                "rev": "5bae8738b23d06968e7c3a41308568120943ae77",
-                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry"
-            },
-            "src/third_party/dawn/third_party/webgpu-cts": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-DqQIyZU6kYYRoouIiJnJBit8l38wPu08zbJhM2BQbs4=",
-                "rev": "2ef3f322027bec1bb5572f5083d478148d355d79",
-                "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts"
-            },
-            "src/third_party/depot_tools": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-WtosDcMOV9eh0PhTbB5w3x3AYQs3Ui4h3mV0Ib0CBlc=",
-                "rev": "9f3b33a275e7a5b19d8ce4aba7960d2a38858681",
-                "url": "https://chromium.googlesource.com/chromium/tools/depot_tools.git"
-            },
-            "src/third_party/devtools-frontend/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-B/2Qk5LSElBPNImlZHVF3A4g0GFE9OHG/+4QADpK+8w=",
-                "rev": "a6c7f00333881a7ecf7044b725052ab0c8776d6f",
-                "url": "https://chromium.googlesource.com/devtools/devtools-frontend"
-            },
-            "src/third_party/dom_distiller_js/dist": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-yuEBD2XQlV3FGI/i7lTmJbCqzeBiuG1Qow8wvsppGJw=",
-                "rev": "199de96b345ada7c6e7e6ba3d2fa7a6911b8767d",
-                "url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git"
-            },
-            "src/third_party/eigen3/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-mfS/l+V0If3fmXvA1p5gtyrNCU6IqWYrBbzm4jkXC3I=",
-                "rev": "aa6964bf3a34fd607837dd8123bc42465185c4f8",
-                "url": "https://chromium.googlesource.com/external/gitlab.com/libeigen/eigen.git"
-            },
-            "src/third_party/electron_node": {
-                "fetcher": "fetchFromGitHub",
-                "hash": "sha256-yvMU6dXRzHP7l6axo3g4svJ1H2edtFvX2MVMm3K1bEc=",
-                "owner": "nodejs",
-                "repo": "node",
-                "rev": "v18.18.2"
-            },
-            "src/third_party/emoji-segmenter/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-oT9mAKoKnrsFsBAeTRfPOXM76HRQQabFAlPpfKUGFhs=",
-                "rev": "9ba6d25d0d9313569665d4a9d2b34f0f39f9a50e",
-                "url": "https://chromium.googlesource.com/external/github.com/google/emoji-segmenter.git"
-            },
-            "src/third_party/expat/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-FXTDGAK03jc2wvazhRKqtsFRKZUYS/9HLpZNp4JfZJI=",
-                "rev": "441f98d02deafd9b090aea568282b28f66a50e36",
-                "url": "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git"
-            },
-            "src/third_party/farmhash/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-5n58VEUxa/K//jAfZqG4cXyfxrp50ogWDNYcgiXVHdc=",
-                "rev": "816a4ae622e964763ca0862d9dbd19324a1eaf45",
-                "url": "https://chromium.googlesource.com/external/github.com/google/farmhash.git"
-            },
-            "src/third_party/ffmpeg": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-lomUDmbbYW95BHEuYmm0pVqf++nYEa2XxeW4ag36tgc=",
-                "rev": "e1ca3f06adec15150a171bc38f550058b4bbb23b",
-                "url": "https://chromium.googlesource.com/chromium/third_party/ffmpeg.git"
-            },
-            "src/third_party/flac": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-gvTFPNOlBfozptaH7lTb9iD/09AmpdT3kCl9ClszjEs=",
-                "rev": "689da3a7ed50af7448c3f1961d1791c7c1d9c85c",
-                "url": "https://chromium.googlesource.com/chromium/deps/flac.git"
-            },
-            "src/third_party/flatbuffers/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-LecJwLDG6szZZ/UOCFD+MDqH3NKawn0sdEwgnMt8wMM=",
-                "rev": "bcb9ef187628fe07514e57756d05e6a6296f7dc5",
-                "url": "https://chromium.googlesource.com/external/github.com/google/flatbuffers.git"
-            },
-            "src/third_party/fontconfig/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-7PFmgr/+KNEYxCMuxMD2Zi9Ydcbp88IU7exr55a392Q=",
-                "rev": "2fb3419a92156569bc1ec707401258c922cd0d99",
-                "url": "https://chromium.googlesource.com/external/fontconfig.git"
-            },
-            "src/third_party/fp16/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-m2d9bqZoGWzuUPGkd29MsrdscnJRtuIkLIMp3fMmtRY=",
-                "rev": "0a92994d729ff76a58f692d3028ca1b64b145d91",
-                "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FP16.git"
-            },
-            "src/third_party/freetype-testing/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-2aHPchIK5Oce5+XxdXVCC+8EM6i0XT0rFbjSIVa2L1A=",
-                "rev": "7a69b1a2b028476f840ab7d4a2ffdfe4eb2c389f",
-                "url": "https://chromium.googlesource.com/external/github.com/freetype/freetype2-testing.git"
-            },
-            "src/third_party/freetype/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-wyaCNPPL2CTZYY6YUUuGnN3TjHxgKeHAYsw+r88ijMI=",
-                "rev": "55d0287cfc31115760cb13caa346b407ef0c0ceb",
-                "url": "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git"
-            },
-            "src/third_party/fuzztest/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-wuB/lbkVCbisZvVFuLdE8XNDuiLQcI47/Y0EqvOCytc=",
-                "rev": "b5dbc33890d9586e4f6a213f1bf163ad287e6aa4",
-                "url": "https://chromium.googlesource.com/external/github.com/google/fuzztest.git"
-            },
-            "src/third_party/fxdiv/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-LjX5kivfHbqCIA5pF9qUvswG1gjOFo3CMpX0VR+Cn38=",
-                "rev": "63058eff77e11aa15bf531df5dd34395ec3017c8",
-                "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FXdiv.git"
-            },
-            "src/third_party/gemmlowp/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-O5wD8wxgis0qYMaY+xZ21GBDVQFphMRvInCOswS6inA=",
-                "rev": "13d57703abca3005d97b19df1f2db731607a7dc2",
-                "url": "https://chromium.googlesource.com/external/github.com/google/gemmlowp.git"
-            },
-            "src/third_party/google_benchmark/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-h2ryAQAuHI54Cni88L85e7Np4KATGVTRdDcmUvCNeWc=",
-                "rev": "b177433f3ee2513b1075140c723d73ab8901790f",
-                "url": "https://chromium.googlesource.com/external/github.com/google/benchmark.git"
-            },
-            "src/third_party/googletest/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-VYRjcM3dDY2FarviXyFMgSkXCqKfWXwtGAj2Msgm7zg=",
-                "rev": "af29db7ec28d6df1c7f0f745186884091e602e07",
-                "url": "https://chromium.googlesource.com/external/github.com/google/googletest.git"
-            },
-            "src/third_party/grpc/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-64JEVCx/PCM0dvv7kAQvSjLc0QbRAZVBDzwD/FAV6T8=",
-                "rev": "822dab21d9995c5cf942476b35ca12a1aa9d2737",
-                "url": "https://chromium.googlesource.com/external/github.com/grpc/grpc.git"
-            },
-            "src/third_party/harfbuzz-ng/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-xCsfgbsWVSiuII5zFspssrqX4NrRuhzufYSq6fdnjKQ=",
-                "rev": "f26fd69d858642d76413b8f4068eaf9b57c40a5f",
-                "url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git"
-            },
-            "src/third_party/highway/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-kNb9UVcFq2BIf9nftUgN8ciFFCzRCou/sLwVf08jf3E=",
-                "rev": "8f20644eca693cfb74aa795b0006b6779c370e7a",
-                "url": "https://chromium.googlesource.com/external/github.com/google/highway.git"
-            },
-            "src/third_party/hunspell_dictionaries": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-67mvpJRFFa9eMfyqFMURlbxOaTJBICnk+gl0b0mEHl8=",
-                "rev": "41cdffd71c9948f63c7ad36e1fb0ff519aa7a37e",
-                "url": "https://chromium.googlesource.com/chromium/deps/hunspell_dictionaries.git"
-            },
-            "src/third_party/icu": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-9yFRBrHdWcYgrZAaigS8XnxNsqJNklGdFkAAgVdHXFU=",
-                "rev": "a622de35ac311c5ad390a7af80724634e5dc61ed",
-                "url": "https://chromium.googlesource.com/chromium/deps/icu.git"
-            },
-            "src/third_party/jsoncpp/source": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-bSLNcoYBz3QCt5VuTR056V9mU2PmBuYBa0W6hFg2m8Q=",
-                "rev": "42e892d96e47b1f6e29844cc705e148ec4856448",
-                "url": "https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp.git"
-            },
-            "src/third_party/leveldatabase/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-TTX2FrmcWsgqrh4uzqMyGnnnG51cVC2ILfdLxD65MLY=",
-                "rev": "068d5ee1a3ac40dabd00d211d5013af44be55bea",
-                "url": "https://chromium.googlesource.com/external/leveldb.git"
-            },
-            "src/third_party/libFuzzer/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-T0dO+1A0r6kLFoleMkY8heu80biPntCpvA6YfqA7b+E=",
-                "rev": "758bd21f103a501b362b1ca46fa8fcb692eaa303",
-                "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git"
-            },
-            "src/third_party/libaddressinput/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-xvUUQSPrvqUp5DI9AqlRTWurwDW087c6v4RvI+4sfOQ=",
-                "rev": "e8712e415627f22d0b00ebee8db99547077f39bd",
-                "url": "https://chromium.googlesource.com/external/libaddressinput.git"
-            },
-            "src/third_party/libaom/source/libaom": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-6oZWYXRTZ1IC5yGvfPI19PwPU9O7mKBsW2wVxBGwU/I=",
-                "rev": "1dbe1c7fae2456f91ccc79fecb919e9ffea0727a",
-                "url": "https://aomedia.googlesource.com/aom.git"
-            },
-            "src/third_party/libavif/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-Jd/KwJJ1oeQMLg8CShTTDQhCVHEDpXcQHiA4+NXYOIA=",
-                "rev": "1a78d970b8315e7cc6a8601861ec75189c50c214",
-                "url": "https://chromium.googlesource.com/external/github.com/AOMediaCodec/libavif.git"
-            },
-            "src/third_party/libavifinfo/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-UAc4iYWrKWteH98hD3QLkD3JWmV/rsvWhFIVJN7tc+Q=",
-                "rev": "b496868f7c3fd17dfeeecc0364fe37e19edd548a",
-                "url": "https://aomedia.googlesource.com/libavifinfo.git"
-            },
-            "src/third_party/libc++/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-DVO15xGxatRbUp13EoNslGEZ2QSHn97VbEBHyfMvKfQ=",
-                "rev": "a429c26ae25c26a569ff12390d5f9be70c5e286b",
-                "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git"
-            },
-            "src/third_party/libc++abi/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-QjCPRgFU34wZ8GG/dl+6wi2gflje3fG/x+eokb9W02c=",
-                "rev": "2ca9f38714b1465b9f55b5fbd0da5e4342811e2b",
-                "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git"
-            },
-            "src/third_party/libdrm/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-NUxS2rBJ0nFblvHRQUfKT933+DAws5RUTDb+RLxRF4M=",
-                "rev": "98e1db501173303e58ef6a1def94ab7a2d84afc1",
-                "url": "https://chromium.googlesource.com/chromiumos/third_party/libdrm.git"
-            },
-            "src/third_party/libgav1/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-dT8/Mdit3Qc5Sno6DYKv1qSNr+6Lhiy24ZNNBKoVq8I=",
-                "rev": "df0023cc95b8e606a2fd243522d823401ef86637",
-                "url": "https://chromium.googlesource.com/codecs/libgav1.git"
-            },
-            "src/third_party/libipp/libipp": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-gxU92lHLd6uxO8T3QWhZIK0hGy97cki705DV0VimCPY=",
-                "rev": "2209bb84a8e122dab7c02fe66cc61a7b42873d7f",
-                "url": "https://chromium.googlesource.com/chromiumos/platform2/libipp.git"
-            },
-            "src/third_party/libjpeg_turbo": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-+t75ZAdOXc7Nd1/8zEQLX+enZb8upqIQuR6qzb9z7Cg=",
-                "rev": "9b894306ec3b28cea46e84c32b56773a98c483da",
-                "url": "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git"
-            },
-            "src/third_party/liblouis/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-EI/uaHXe0NlqdEw764q0SjerThYEVLRogUlmrsZwXnY=",
-                "rev": "9700847afb92cb35969bdfcbbfbbb74b9c7b3376",
-                "url": "https://chromium.googlesource.com/external/liblouis-github.git"
-            },
-            "src/third_party/libphonenumber/dist": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-3hSnTFTD3KAdbyxfKg12qbIYTmw6YlTCH64gMP/HUJo=",
-                "rev": "140dfeb81b753388e8a672900fb7a971e9a0d362",
-                "url": "https://chromium.googlesource.com/external/libphonenumber.git"
-            },
-            "src/third_party/libprotobuf-mutator/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-ZyPweW+V5foxFQwjjMLkaRUo+FNV+kEDGIH/4oRV614=",
-                "rev": "a304ec48dcf15d942607032151f7e9ee504b5dcf",
-                "url": "https://chromium.googlesource.com/external/github.com/google/libprotobuf-mutator.git"
-            },
-            "src/third_party/libsrtp": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-pfLFh2JGk/g0ZZxBKTaYW9/PBpkCm0rtJeyNePUMTTc=",
-                "rev": "5b7c744eb8310250ccc534f3f86a2015b3887a0a",
-                "url": "https://chromium.googlesource.com/chromium/deps/libsrtp.git"
-            },
-            "src/third_party/libsync/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-Mkl6C1LxF3RYLwYbxiSfoQPt8QKFwQWj/Ati2sNJ32E=",
-                "rev": "f4f4387b6bf2387efbcfd1453af4892e8982faf6",
-                "url": "https://chromium.googlesource.com/aosp/platform/system/core/libsync.git"
-            },
-            "src/third_party/libunwind/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-bQHo8CKDpqvJcVv6OzVO7LOGTqL9qHqD4n9TtRK0v5g=",
-                "rev": "7686b5d38c69d14932abfb1c1a66ba56c78791ad",
-                "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git"
-            },
-            "src/third_party/libvpx/source/libvpx": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-UA/pf35eWFArRM+QdN6i6LK0ePWzXEsviHlf3WUgMoM=",
-                "rev": "424723dc025ce451dab9568239a46b18d0919b4d",
-                "url": "https://chromium.googlesource.com/webm/libvpx.git"
-            },
-            "src/third_party/libwebm/source": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-u/5nkJed0DzdhR5OLL2kIhZhOnrbyzL1Kx37vV/jcEo=",
-                "rev": "e4fbea0c9751ae8aa86629b197a28d8276a2b0da",
-                "url": "https://chromium.googlesource.com/webm/libwebm.git"
-            },
-            "src/third_party/libwebp/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-Wa33opOFgcmYtycezDUt2f6PqZBse6xYB5kLuSaw95o=",
-                "rev": "ca332209cb5567c9b249c86788cb2dbf8847e760",
-                "url": "https://chromium.googlesource.com/webm/libwebp.git"
-            },
-            "src/third_party/libyuv": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-jxs9kHI40gRFhm9cU6uS1Rxj+LLUUqT9b3myihxgW7s=",
-                "rev": "04821d1e7d60845525e8db55c7bcd41ef5be9406",
-                "url": "https://chromium.googlesource.com/libyuv/libyuv.git"
-            },
-            "src/third_party/lss": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-hE8uZf9Fst66qJkoVYChiB8G41ie+k9M4X0W+5JUSdw=",
-                "rev": "ce877209e11aa69dcfffbd53ef90ea1d07136521",
-                "url": "https://chromium.googlesource.com/linux-syscall-support.git"
-            },
-            "src/third_party/material_color_utilities/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-oi28dWuTd6ijn/RKSPukDr5GSzYiCTM2klFb7WSMDHY=",
-                "rev": "234a000e507d586c20df6e3bf5b9e035bc5ce7b1",
-                "url": "https://chromium.googlesource.com/external/github.com/material-foundation/material-color-utilities.git"
-            },
-            "src/third_party/minigbm/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-9HwvjTETerbQ7YKXH9kUB2eWa8PxGWMAJfx1jAluhrs=",
-                "rev": "3018207f4d89395cc271278fb9a6558b660885f5",
-                "url": "https://chromium.googlesource.com/chromiumos/platform/minigbm.git"
-            },
-            "src/third_party/nan": {
-                "fetcher": "fetchFromGitHub",
-                "hash": "sha256-cwti+BWmF/l/dqa/cN0C587EK4WwRWcWy6gjFVkaMTg=",
-                "owner": "nodejs",
-                "repo": "nan",
-                "rev": "e14bdcd1f72d62bca1d541b66da43130384ec213"
-            },
-            "src/third_party/nasm": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-L+b3X3vsfpY6FSlIK/AHhxhmq2cXd50vND6uT6yn8Qs=",
-                "rev": "7fc833e889d1afda72c06220e5bed8fb43b2e5ce",
-                "url": "https://chromium.googlesource.com/chromium/deps/nasm.git"
-            },
-            "src/third_party/nearby/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-9PT/tuxjREGsvSnYT2wyaL5sB52CcYPpKVKN0ZGldWU=",
-                "rev": "629e7ba7c964a62c97f6a882bffaec3c8490bb1e",
-                "url": "https://chromium.googlesource.com/external/github.com/google/nearby-connections.git"
-            },
-            "src/third_party/neon_2_sse/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-299ZptvdTmCnIuVVBkrpf5ZTxKPwgcGUob81tEI91F0=",
-                "rev": "a15b489e1222b2087007546b4912e21293ea86ff",
-                "url": "https://chromium.googlesource.com/external/github.com/intel/ARM_NEON_2_x86_SSE.git"
-            },
-            "src/third_party/openh264/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-J7Eqe2QevZh1xfap19W8AVCcwfRu7ztknnbKFJUAH1c=",
-                "rev": "09a4f3ec842a8932341b195c5b01e141c8a16eb7",
-                "url": "https://chromium.googlesource.com/external/github.com/cisco/openh264"
-            },
-            "src/third_party/openscreen/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-TyZ/sZ0gnesWjKUnO2RVM2TTdpVIxsBWueHDgix0/wg=",
-                "rev": "971d6055e7b78c474e2e734e55a2991fbb7ab665",
-                "url": "https://chromium.googlesource.com/openscreen"
-            },
-            "src/third_party/openscreen/src/third_party/tinycbor/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-fMKBFUSKmODQyg4hKIa1hwnEKIV6WBbY1Gb8DOSnaHA=",
-                "rev": "d393c16f3eb30d0c47e6f9d92db62272f0ec4dc7",
-                "url": "https://chromium.googlesource.com/external/github.com/intel/tinycbor.git"
-            },
-            "src/third_party/ots/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-kiUXrXsaGOzPkKh0dVmU1I13WHt0Stzj7QLMqHN9FbU=",
-                "rev": "46bea9879127d0ff1c6601b078e2ce98e83fcd33",
-                "url": "https://chromium.googlesource.com/external/github.com/khaledhosny/ots.git"
-            },
-            "src/third_party/pdfium": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-U1cScrfKN0F+cy307RT2iwB6RYKeCNDRnkYxzamezoY=",
-                "rev": "a3895af47f600e3f9677f31fa39e15bd01c18457",
-                "url": "https://pdfium.googlesource.com/pdfium.git"
-            },
-            "src/third_party/perfetto": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-xLx+dnUysm+HS1esu2hAqBKg/GgTJK4SQu1ZINr2aYc=",
-                "rev": "7ce535ddfc62d30166f35a8ed0f121da5eb0437c",
-                "url": "https://android.googlesource.com/platform/external/perfetto.git"
-            },
-            "src/third_party/pthreadpool/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-R4YmNzWEELSkAws/ejmNVxqXDTJwcqjLU/o/HvgRn2E=",
-                "rev": "4fe0e1e183925bf8cfa6aae24237e724a96479b8",
-                "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/pthreadpool.git"
-            },
-            "src/third_party/pyelftools": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-I/7p3IEvfP/gkes4kx18PvWwhAKilQKb67GXoW4zFB4=",
-                "rev": "19b3e610c86fcadb837d252c794cb5e8008826ae",
-                "url": "https://chromium.googlesource.com/chromiumos/third_party/pyelftools.git"
-            },
-            "src/third_party/pywebsocket3/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-WEqqu2/7fLqcf/2/IcD7/FewRSZ6jTgVlVBvnihthYQ=",
-                "rev": "50602a14f1b6da17e0b619833a13addc6ea78bc2",
-                "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/pywebsocket3.git"
-            },
-            "src/third_party/quic_trace/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-Nf9ZDLcE1JunhbpEMHhrY2ROnbgrvVZoRkPwWq1DU0g=",
-                "rev": "caa0a6eaba816ecb737f9a70782b7c80b8ac8dbc",
-                "url": "https://chromium.googlesource.com/external/github.com/google/quic-trace.git"
-            },
-            "src/third_party/re2/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-m3bJlSyyhmj/7jvy7ExNX/gol7yeu1mnmyAc8u8Pr8s=",
-                "rev": "3d9bdbd0e208d3274a1cb1275c94d8b7626ddde2",
-                "url": "https://chromium.googlesource.com/external/github.com/google/re2.git"
-            },
-            "src/third_party/ruy/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-Zi3A49YqDE5S4iSpw9t9kTzitbQbcslm1zsepWX5cbw=",
-                "rev": "6ffa93a89376555b09134c59b84d8f5e9cfc6ce6",
-                "url": "https://chromium.googlesource.com/external/github.com/google/ruy.git"
-            },
-            "src/third_party/securemessage/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-GS4ccnuiqxMs/LVYAtvSlVAYFp4a5GoZsxcriTX3k78=",
-                "rev": "fa07beb12babc3b25e0c5b1f38c16aa8cb6b8f84",
-                "url": "https://chromium.googlesource.com/external/github.com/google/securemessage.git"
-            },
-            "src/third_party/skia": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-CvoJxsBN1Nyh+RPgU+aptZW5WsfGB4hmSlhyma1wO+E=",
-                "rev": "349c1179c43ef46f2804404952b9460dc007d76a",
-                "url": "https://skia.googlesource.com/skia.git"
-            },
-            "src/third_party/smhasher/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-RyC//me08hwGXRrWcK8GZ1uhIkBq4FByA7fHCVDsniw=",
-                "rev": "e87738e57558e0ec472b2fc3a643b838e5b6e88f",
-                "url": "https://chromium.googlesource.com/external/smhasher.git"
-            },
-            "src/third_party/snappy/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-5fV6NfO8vmqK+iCwpLtE2YjYOzjsshctauyjNIOxrH0=",
-                "rev": "c9f9edf6d75bb065fa47468bf035e051a57bec7c",
-                "url": "https://chromium.googlesource.com/external/github.com/google/snappy.git"
-            },
-            "src/third_party/speedometer/v3.0": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-PqrwtPFU3TI840za3UU8p+t4ZdyX0l79esEA602Mbq0=",
-                "rev": "5107c739c1b2a008e7293e3b489c4f80a8fb2e01",
-                "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git"
-            },
-            "src/third_party/sqlite/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-wKsfwZpDRQzYQp6qls07uapgy9K3TWLOEUQlhIFpJtw=",
-                "rev": "cd9486849ba3c3ec753f556fd29c0aabee122a28",
-                "url": "https://chromium.googlesource.com/chromium/deps/sqlite.git"
-            },
-            "src/third_party/squirrel.mac": {
-                "fetcher": "fetchFromGitHub",
-                "hash": "sha256-4GfKQg0u3c9GI+jl3ixESNqWXQJKRMi+00QT0s2Shqw=",
-                "owner": "Squirrel",
-                "repo": "Squirrel.Mac",
-                "rev": "0e5d146ba13101a1302d59ea6e6e0b3cace4ae38"
-            },
-            "src/third_party/squirrel.mac/vendor/Mantle": {
-                "fetcher": "fetchFromGitHub",
-                "hash": "sha256-ogFkMJybf2Ue606ojXJu6Gy5aXSi1bSKm60qcTAIaPk=",
-                "owner": "Mantle",
-                "repo": "Mantle",
-                "rev": "78d3966b3c331292ea29ec38661b25df0a245948"
-            },
-            "src/third_party/squirrel.mac/vendor/ReactiveObjC": {
-                "fetcher": "fetchFromGitHub",
-                "hash": "sha256-/MCqC1oFe3N9TsmfVLgl+deR6qHU6ZFQQjudb9zB5Mo=",
-                "owner": "ReactiveCocoa",
-                "repo": "ReactiveObjC",
-                "rev": "74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76"
-            },
-            "src/third_party/swiftshader": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-Im4sdDo4b96YQIKDcAmqUk8PiJzejZgSDPur3hqPPRk=",
-                "rev": "d9ec9befba05a8dfca09c1e88f3f7be0e4b153c6",
-                "url": "https://swiftshader.googlesource.com/SwiftShader.git"
-            },
-            "src/third_party/text-fragments-polyfill/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-4rW2u1cQAF4iPWHAt1FvVXIpz2pmI901rEPks/w/iFA=",
-                "rev": "c036420683f672d685e27415de0a5f5e85bdc23f",
-                "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/text-fragments-polyfill.git"
-            },
-            "src/third_party/tflite/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-119/isDtopnj6MBRr3bzBvIppXw8M/ejcPx0CmIjXZU=",
-                "rev": "21e56c30e480ac67bed48335a5d122c59a6a6805",
-                "url": "https://chromium.googlesource.com/external/github.com/tensorflow/tensorflow.git"
-            },
-            "src/third_party/ukey2/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-aaLs6ZS+CdBlCJ6ZhsmdAPFxiBIij6oufsDcNeRSV1E=",
-                "rev": "0275885d8e6038c39b8a8ca55e75d1d4d1727f47",
-                "url": "https://chromium.googlesource.com/external/github.com/google/ukey2.git"
-            },
-            "src/third_party/vulkan-deps": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-lqCUx70IeHZ7YfE9DXia7dFok/JsFu/HSIv2AGi37YI=",
-                "rev": "2b783ed328d3a46e6a7a21218ced6b4dd1684114",
-                "url": "https://chromium.googlesource.com/vulkan-deps"
-            },
-            "src/third_party/vulkan-deps/glslang/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-+Qs+Q3p11y9oUKyWEbuaQ0vx6hppFZSFbFuU0ve6rRo=",
-                "rev": "ebb0a8b28e5ea7a13146a24b3ad87b1966dbdfa3",
-                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang"
-            },
-            "src/third_party/vulkan-deps/spirv-cross/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-UIk5hihUPjXNzEeO2laS4dUef/rEExxXAZjMcftx+3A=",
-                "rev": "2de1265fca722929785d9acdec4ab728c47a0254",
-                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross"
-            },
-            "src/third_party/vulkan-deps/spirv-headers/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-JLFVzFNdXqxyKmg3NymIqqZmf2GAb7tYetQ6HJPsUIQ=",
-                "rev": "88bc5e321c2839707df8b1ab534e243e00744177",
-                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers"
-            },
-            "src/third_party/vulkan-deps/spirv-tools/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-+HUDsp0COKlPtKidOVvUk7lN1AiFw01i5ANc3MO+qjs=",
-                "rev": "5084f58e5d187b16f84d2af936ff94ea2f46a00c",
-                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools"
-            },
-            "src/third_party/vulkan-deps/vulkan-headers/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-UlaNc1NxTYulrF4Ol0rLysbLwbFR46Evq7WkWncPB8k=",
-                "rev": "f4bfcd885214675a6a0d7d4df07f52b511e6ea16",
-                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers"
-            },
-            "src/third_party/vulkan-deps/vulkan-loader/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-GbVr8LmwC6r7a13++5cYJXAq+H4P07quEHpTUV1qfqA=",
-                "rev": "7b7d15bc9f1d782e4d6ea34e61fd9a36a7952208",
-                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader"
-            },
-            "src/third_party/vulkan-deps/vulkan-tools/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-vnrhYM7tcDTcXH4A+2leio5Wc1+b5H+7CQISEI+SPV8=",
-                "rev": "f7017f23337b90a2b2ceb65a4e1050e8ad89e065",
-                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools"
-            },
-            "src/third_party/vulkan-deps/vulkan-utility-libraries/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-buxOdupK/w1sFGGHrEI+On2/mR0q5whvQNKUI8dxJ60=",
-                "rev": "dcfce25b439a2785f2c90b184e1964898070b4f1",
-                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries"
-            },
-            "src/third_party/vulkan-deps/vulkan-validation-layers/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-LJd7pkcFd8k4npEv8mJy+47xo/5CXMN75ZAtDp+v6FI=",
-                "rev": "281e1c1c6b51bb6b33f88c18ed4da58ac3024311",
-                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers"
-            },
-            "src/third_party/vulkan_memory_allocator": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-YzxHZagz/M8Y54UnI4h1wu5jSTuaOgv0ifC9d3fJZlQ=",
-                "rev": "56300b29fbfcc693ee6609ddad3fdd5b7a449a21",
-                "url": "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git"
-            },
-            "src/third_party/wayland-protocols/gtk": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-75XNnLkF5Lt1LMRGT+T61k0/mLa3kkynfN+QWvZ0LiQ=",
-                "rev": "40ebed3a03aef096addc0af09fec4ec529d882a0",
-                "url": "https://chromium.googlesource.com/external/github.com/GNOME/gtk.git"
-            },
-            "src/third_party/wayland-protocols/kde": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-Dmcp/2ms/k7NxPPmPkp0YNfM9z2Es1ZO0uX10bc7N2Y=",
-                "rev": "0b07950714b3a36c9b9f71fc025fc7783e82926e",
-                "url": "https://chromium.googlesource.com/external/github.com/KDE/plasma-wayland-protocols.git"
-            },
-            "src/third_party/wayland-protocols/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-3QK+ZN6IFUFkDxySSoQwP1J3JnTlD7JPaUk6Tr/d/k4=",
-                "rev": "4624cfaaf563cd7be5e2e2087c8de6d3a48ea867",
-                "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland-protocols.git"
-            },
-            "src/third_party/wayland/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-0ICSMZhnsLqMNfqSGjqM3p4ssxptkBtt7EMCpxknW4A=",
-                "rev": "3fda2fbf51db54398c0155facee82cc9533958a2",
-                "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland.git"
-            },
-            "src/third_party/webdriver/pylib": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-WIqWXIKVgElgg8P8laLAlUrgwodGdeVcwohZxnPKedw=",
-                "rev": "fc5e7e70c098bfb189a9a74746809ad3c5c34e04",
-                "url": "https://chromium.googlesource.com/external/github.com/SeleniumHQ/selenium/py.git"
-            },
-            "src/third_party/webgl/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-dubsIPZKBGOzANGvMtQxFKFIHr0laDUGpzgRyEOjHMU=",
-                "rev": "f4bf599a8b575df685c31d9c4729a70a04e377ed",
-                "url": "https://chromium.googlesource.com/external/khronosgroup/webgl.git"
-            },
-            "src/third_party/webgpu-cts/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-E39f0wy72TwQ9IM4QquqWxwDiHZOUI8hWkx2QDFcRog=",
-                "rev": "3dbe4ce12983ccc1ad42e228057c7d8adc17cb78",
-                "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts.git"
-            },
-            "src/third_party/webrtc": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-ju7sX1jrzg5BZOqdkcnFymRTqdFi7xkeHznKJQB1+08=",
-                "rev": "5ab829e4ca8f63be6b4ed1d98eee382d7307d34e",
-                "url": "https://webrtc.googlesource.com/src.git"
-            },
-            "src/third_party/weston/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-y2srFaPUOoB2umzpo4+hFfhNlqXM2AoMGOpUy/ZSacg=",
-                "rev": "ccf29cb237c3ed09c5f370f35239c93d07abfdd7",
-                "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/weston.git"
-            },
-            "src/third_party/wuffs/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-HP8Vf1C9DuA9H+busf3lFoF9SsYqviLKv0l73CxmNEI=",
-                "rev": "fe9d08f2b6e80af691bfb1a718e144c49a1b9eba",
-                "url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git"
-            },
-            "src/third_party/xdg-utils": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-WuQ9uDq+QD17Y20ACFGres4nbkeOiTE2y+tY1avAT5U=",
-                "rev": "cb54d9db2e535ee4ef13cc91b65a1e2741a94a44",
-                "url": "https://chromium.googlesource.com/chromium/deps/xdg-utils.git"
-            },
-            "src/third_party/xnnpack/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-s9Avx9o+1igKulOpKhtbbkoINuh1wNercPszRaA4TZM=",
-                "rev": "bbbaa7352a3ea729987d3e654d37be93e8009691",
-                "url": "https://chromium.googlesource.com/external/github.com/google/XNNPACK.git"
-            },
-            "src/third_party/zstd/src": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-95OOpYKGve+YWzqqguQIg1emTOAuaGyYpWxrWVDOKAQ=",
-                "rev": "cdceb0fce59785c841bf697e00067163106064e1",
-                "url": "https://chromium.googlesource.com/external/github.com/facebook/zstd.git"
-            },
-            "src/tools/page_cycler/acid3": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-s/49EaYQRsyxuLejXc1zGDYTD7uO0ddaQIJBP50Bvw0=",
-                "rev": "a926d0a32e02c4c03ae95bb798e6c780e0e184ba",
-                "url": "https://chromium.googlesource.com/chromium/deps/acid3.git"
-            },
-            "src/v8": {
-                "fetcher": "fetchFromGitiles",
-                "hash": "sha256-GevDXfVX4UxwTbgp2ZQbp3AFOHv5tECmyqLGIyYi5Tw=",
-                "rev": "71b6b5a68e0883c155e01368aace6eb6d71b85f3",
-                "url": "https://chromium.googlesource.com/v8/v8.git"
-            }
-        },
-        "electron_yarn_hash": "117vxam1044yy2akwjfhvb5dpfnv667pwbg92ac43551xfn0slcg",
-        "modules": "119",
-        "node": "18.18.2",
-        "version": "28.3.1"
-    },
     "29": {
         "chrome": "122.0.6261.156",
         "chromium": {
@@ -1831,10 +47,10 @@
             },
             "src/electron": {
                 "fetcher": "fetchFromGitHub",
-                "hash": "sha256-YTuHUvqbVVq3gwfDFOzlRIlmfnm74u3soHem1jCVVaA=",
+                "hash": "sha256-hyk8RsG2hIsAZRiJuYRF6HC+K7TyA76qiYsc2sH0Apw=",
                 "owner": "electron",
                 "repo": "electron",
-                "rev": "v29.4.0"
+                "rev": "v29.4.2"
             },
             "src/media/cdm/api": {
                 "fetcher": "fetchFromGitiles",
@@ -2686,10 +902,10 @@
         "electron_yarn_hash": "0f868gk3d2cablpczav8a4vhk4nfirph45yzjz18mgzgday7w8hf",
         "modules": "121",
         "node": "20.9.0",
-        "version": "29.4.0"
+        "version": "29.4.2"
     },
     "30": {
-        "chrome": "124.0.6367.207",
+        "chrome": "124.0.6367.243",
         "chromium": {
             "deps": {
                 "gn": {
@@ -2699,15 +915,15 @@
                     "version": "2024-03-14"
                 }
             },
-            "version": "124.0.6367.207"
+            "version": "124.0.6367.243"
         },
         "chromium_npm_hash": "sha256-oILlQlzTcc0YqAvK5htRvG/YXWJTDtJ60Z1EcBEj9dw=",
         "deps": {
             "src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-mMc1mWre9XeeR4jPn30RxAXadjyqcyVyHDjSVrI5lpI=",
+                "hash": "sha256-YrAJnuNig6v87+eNnZ2W+PCzxjGe5CuymF6ul/v9SCk=",
                 "postFetch": "rm -r $out/third_party/blink/web_tests; rm -r $out/third_party/hunspell/tests; rm -r $out/content/test/data; rm -r $out/courgette/testdata; rm -r $out/extensions/test/data; rm -r $out/media/test/data; ",
-                "rev": "124.0.6367.207",
+                "rev": "124.0.6367.243",
                 "url": "https://chromium.googlesource.com/chromium/src.git"
             },
             "src/chrome/test/data/perf/canvas_bench": {
@@ -2736,10 +952,10 @@
             },
             "src/electron": {
                 "fetcher": "fetchFromGitHub",
-                "hash": "sha256-6f/6Deqysv8MubMjyxjiDM55DXG/9wTqBWW+zC+9OBE=",
+                "hash": "sha256-VWc9I5wpQYv13I1xgLQVqDg6IfXMinrzJmkMaIsEY90=",
                 "owner": "electron",
                 "repo": "electron",
-                "rev": "v30.0.6"
+                "rev": "v30.1.1"
             },
             "src/media/cdm/api": {
                 "fetcher": "fetchFromGitiles",
@@ -2761,8 +977,8 @@
             },
             "src/third_party/angle": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-zEDHotJ6OSQlgq3nkVMhLll4j5iYl5sA1JFv854EIdM=",
-                "rev": "c67f290ef0f0433acb766c024d28c6f59f48b909",
+                "hash": "sha256-MFXZ7gEO8vHFHtjzzLSgGlB9AKx+hndPfmwsE5XHGXo=",
+                "rev": "bda89e1f7c7195a9d03d037039c2dd5057563a59",
                 "url": "https://chromium.googlesource.com/angle/angle.git"
             },
             "src/third_party/angle/third_party/VK-GL-CTS/src": {
@@ -2899,14 +1115,14 @@
             },
             "src/third_party/dawn": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-GUB25IUviLFxGI3UQJS/kf51BZBeoYFqbiaSTSY11qA=",
-                "rev": "394edde38c9323f7c910e3bdec9b7efc4ee39379",
+                "hash": "sha256-W0E0fhjAc5gdTgIsy+iOAFA7GPEFeMPPJEU5nnRUtbM=",
+                "rev": "e04b03f714994b7a747b5472da4ffae9e6e38938",
                 "url": "https://dawn.googlesource.com/dawn.git"
             },
             "src/third_party/dawn/third_party/dxc": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-wsQtYqH8gFsDmLTUA7SKvTYiGQWX7Vbcz1QtsAg/epY=",
-                "rev": "bd7aa97798735e1288d36de41dcda75e867550e4",
+                "hash": "sha256-bqzkbBbf1btIz84odYfC3c69m6kgssHy2+a9aR+EUaQ=",
+                "rev": "511cfef8e0509d172fbfa156be8a97ed2b42590b",
                 "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler"
             },
             "src/third_party/dawn/third_party/dxheaders": {
@@ -2965,10 +1181,10 @@
             },
             "src/third_party/electron_node": {
                 "fetcher": "fetchFromGitHub",
-                "hash": "sha256-9/TPxYbnQPDpWf/Zti8bTh22e/uFRlzs7SCThfx/byQ=",
+                "hash": "sha256-15RUrS+zjp0nOveBnZB3bvEv36noZr2ergtNL7ky8iQ=",
                 "owner": "nodejs",
                 "repo": "node",
-                "rev": "v20.11.1"
+                "rev": "v20.14.0"
             },
             "src/third_party/emoji-segmenter/src": {
                 "fetcher": "fetchFromGitiles",
@@ -3286,8 +1502,8 @@
             },
             "src/third_party/openscreen/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-wUKhF9sU1HAZvs4fQHxeFfxkpkhBp6nTljJrQ4lH7lA=",
-                "rev": "a3f9719bed95289c59771d4c4bcb85f5ecacac43",
+                "hash": "sha256-4Qd5nHJxIOY7ifPy6Xf0TgZK0TkZY48scOkJ25kMCjk=",
+                "rev": "90e48ecc4ed9feeba36f49065c738d620d6f0780",
                 "url": "https://chromium.googlesource.com/openscreen"
             },
             "src/third_party/openscreen/src/buildtools": {
@@ -3310,8 +1526,8 @@
             },
             "src/third_party/pdfium": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-4CPHeZAJM756a2TIxs4ZX0D7j85deDIf/bTGow75m/U=",
-                "rev": "7b90b15a21cfdd3d74525616b5de04df94fa0583",
+                "hash": "sha256-/gSW4sd2AN4m3aIs9AojqsfrXeCNNrl7wFM54KeQVxw=",
+                "rev": "dcdd830ae4e1b14f85383d1baf84efee6bc853cc",
                 "url": "https://pdfium.googlesource.com/pdfium.git"
             },
             "src/third_party/perfetto": {
@@ -3370,8 +1586,8 @@
             },
             "src/third_party/skia": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-8C8IMQjfJGeCXCXZyd/eSbDNsdcKI/Bul0m1wrqx1P8=",
-                "rev": "e2ea2eb3e0d37fff47968dfaaa337debb3b75b1e",
+                "hash": "sha256-zHfv4OZK/nVJc2rl+dBSCc4f6qndpAKcFZtThw06+LY=",
+                "rev": "a747f7ea37db6ea3871816dbaf2eb41b5776c826",
                 "url": "https://skia.googlesource.com/skia.git"
             },
             "src/third_party/smhasher/src": {
@@ -3595,14 +1811,14 @@
             },
             "src/v8": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-8/XD/LwnCXDiVWeZvZsgvmSWpfVLILlaTtqw87V0Pgk=",
-                "rev": "ac8da461a20281ff8c30507cbdd7e6fed39fd183",
+                "hash": "sha256-ME/O8CJASZ8Ql931EaTRM3+6lLzGx1us/cK9Dv7Bd+s=",
+                "rev": "cc9dc1eb196bc3cbeca92eeec62949b4ac7cd757",
                 "url": "https://chromium.googlesource.com/v8/v8.git"
             }
         },
-        "electron_yarn_hash": "0f868gk3d2cablpczav8a4vhk4nfirph45yzjz18mgzgday7w8hf",
+        "electron_yarn_hash": "0w41mjfnrhmkf2qy4lk5zwhc7afkaiqypxs4379s4ay1r6zpvf6q",
         "modules": "123",
-        "node": "20.11.1",
-        "version": "30.0.6"
+        "node": "20.14.0",
+        "version": "30.1.1"
     }
 }
diff --git a/pkgs/development/tools/elkhound/default.nix b/pkgs/development/tools/elkhound/default.nix
index 19bb3b7005a53..562c11a5278a7 100644
--- a/pkgs/development/tools/elkhound/default.nix
+++ b/pkgs/development/tools/elkhound/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A parser generator which emits GLR parsers, either in OCaml or C++";
+    description = "Parser generator which emits GLR parsers, either in OCaml or C++";
     homepage = "https://scottmcpeak.com/elkhound/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/pkgs/development/tools/ent/default.nix b/pkgs/development/tools/ent/default.nix
index 58482135068c2..2fb2b1b132283 100644
--- a/pkgs/development/tools/ent/default.nix
+++ b/pkgs/development/tools/ent/default.nix
@@ -30,7 +30,7 @@ buildGoModule rec {
   '';
 
   meta = {
-    description = "An entity framework for Go";
+    description = "Entity framework for Go";
     homepage = "https://entgo.io/";
     changelog = "https://github.com/ent/ent/releases/tag/v${version}";
     downloadPage = "https://github.com/ent/ent";
diff --git a/pkgs/development/tools/esbuild/default.nix b/pkgs/development/tools/esbuild/default.nix
index f4d9c8542ed0e..b405a22d8a64b 100644
--- a/pkgs/development/tools/esbuild/default.nix
+++ b/pkgs/development/tools/esbuild/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "esbuild";
-  version = "0.20.2";
+  version = "0.21.5";
 
   src = fetchFromGitHub {
     owner = "evanw";
     repo = "esbuild";
     rev = "v${version}";
-    hash = "sha256-h/Vqwax4B4nehRP9TaYbdixAZdb1hx373dNxNHvDrtY=";
+    hash = "sha256-FpvXWIlt67G8w3pBKZo/mcp57LunxDmRUaCU/Ne89B8=";
   };
 
   vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";
@@ -18,7 +18,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "An extremely fast JavaScript bundler";
+    description = "Extremely fast JavaScript bundler";
     homepage = "https://esbuild.github.io";
     changelog = "https://github.com/evanw/esbuild/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/tools/esbuild/netlify.nix b/pkgs/development/tools/esbuild/netlify.nix
index 1ed35d64f027c..d94f78bc8b266 100644
--- a/pkgs/development/tools/esbuild/netlify.nix
+++ b/pkgs/development/tools/esbuild/netlify.nix
@@ -1,7 +1,6 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
-, fetchpatch
 , netlify-cli
 }:
 
@@ -25,7 +24,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A fork of esbuild maintained by netlify";
+    description = "Fork of esbuild maintained by netlify";
     homepage = "https://github.com/netlify/esbuild";
     license = licenses.mit;
     maintainers = with maintainers; [ roberth ];
diff --git a/pkgs/development/tools/espup/default.nix b/pkgs/development/tools/espup/default.nix
index 145f681f1cbc1..f3624575f8f9a 100644
--- a/pkgs/development/tools/espup/default.nix
+++ b/pkgs/development/tools/espup/default.nix
@@ -15,16 +15,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "espup";
-  version = "0.11.0";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "esp-rs";
     repo = "espup";
     rev = "v${version}";
-    hash = "sha256-BW71yFX4jfx90KHdynkGSqWD4diyjEBQfdBNquVdDDI=";
+    hash = "sha256-ofC9pBKZEKGNNirshhfcCkzWN4CvD7IfArZaikkfnmI=";
   };
 
-  cargoHash = "sha256-iUVOU1P996hLC1rR/wWtsDBkKSB0rD7PPh6ZsQkHq3I=";
+  cargoHash = "sha256-fM1If/RnPzLDYjUImNkMViWkjXBc5YRIJHthypcJfmc=";
 
   nativeBuildInputs = [
     pkg-config
@@ -68,7 +68,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "Tool for installing and maintaining Espressif Rust ecosystem.";
+    description = "Tool for installing and maintaining Espressif Rust ecosystem";
     homepage = "https://github.com/esp-rs/espup/";
     license = with licenses; [ mit asl20 ];
     maintainers = with maintainers; [ knightpp beeb ];
diff --git a/pkgs/development/tools/extism-cli/default.nix b/pkgs/development/tools/extism-cli/default.nix
index b9ca4160fe3eb..5dfb508441d59 100644
--- a/pkgs/development/tools/extism-cli/default.nix
+++ b/pkgs/development/tools/extism-cli/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "extism-cli";
-  version = "1.4.0";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "extism";
     repo = "cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-F+Kb9ZAgHkw5kcOSt2Q8Lm+B8B4VPkr4FVYbe6HD+is=";
+    hash = "sha256-b+X0pFrKhcfzucUM8akV061zslkdF1Jc9X1aqCqXagU=";
   };
 
-  vendorHash = "sha256-/faWWYwY7oxbIOoqpyXC+EU4gECl/o34M+SFyfMOWj8=";
+  vendorHash = "sha256-5QSZDPRMlLVyOQGCSxNC5BBiuegschkHA0sWvOVAODI=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -33,7 +33,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "The extism CLI is used to manage Extism installations";
+    description = "Extism CLI is used to manage Extism installations";
     homepage = "https://github.com/extism/cli";
     license = licenses.bsd3;
     maintainers = with maintainers; [ zshipko ];
diff --git a/pkgs/development/tools/faas-cli/default.nix b/pkgs/development/tools/faas-cli/default.nix
index da0151b8486ed..a5b0747e07cc4 100644
--- a/pkgs/development/tools/faas-cli/default.nix
+++ b/pkgs/development/tools/faas-cli/default.nix
@@ -18,13 +18,13 @@ let
 in
 buildGoModule rec {
   pname = "faas-cli";
-  version = "0.16.27";
+  version = "0.16.29";
 
   src = fetchFromGitHub {
     owner = "openfaas";
     repo = "faas-cli";
     rev = version;
-    sha256 = "sha256-CZvIvvkDfpb4YPQIe5i8vZcmhLu7x0zTQGXCL8SxcvM=";
+    sha256 = "sha256-TKrn4ouRcQS1FpySpQCdK7EMjlE+qwa3e/Ze+TAdA7s=";
   };
 
   vendorHash = null;
diff --git a/pkgs/development/tools/fable/default.nix b/pkgs/development/tools/fable/default.nix
index 999b9c5f9df07..a8bffafdd1c65 100644
--- a/pkgs/development/tools/fable/default.nix
+++ b/pkgs/development/tools/fable/default.nix
@@ -2,9 +2,9 @@
 
 buildDotnetGlobalTool {
   pname = "fable";
-  version = "4.13.0";
+  version = "4.18.0";
 
-  nugetSha256 = "sha256-jjvAAhnCkCBLG2sq3ehCTdg/thaVW7A7nXyVCSAGm3k=";
+  nugetSha256 = "sha256-PbrFjpltRx4lnQDgQrOKSVHwttePMfOnjljOddkFbmY=";
   passthru.updateScript = ./update.sh;
 
   meta = with lib; {
diff --git a/pkgs/development/tools/fblog/default.nix b/pkgs/development/tools/fblog/default.nix
index d940051a9a4e4..8720d5a7f6251 100644
--- a/pkgs/development/tools/fblog/default.nix
+++ b/pkgs/development/tools/fblog/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-8rnQllCne1q1uDpeJkqAdzNKSkEgVp+v9drXL8TaQmM=";
 
   meta = with lib; {
-    description = "A small command-line JSON log viewer";
+    description = "Small command-line JSON log viewer";
     mainProgram = "fblog";
     homepage = "https://github.com/brocode/fblog";
     license = licenses.wtfpl;
diff --git a/pkgs/development/tools/fermyon-spin/default.nix b/pkgs/development/tools/fermyon-spin/default.nix
index a969baf411f80..17c525d801a5c 100644
--- a/pkgs/development/tools/fermyon-spin/default.nix
+++ b/pkgs/development/tools/fermyon-spin/default.nix
@@ -16,16 +16,18 @@ let
     aarch64-darwin = "macos-aarch64";
   }.${system} or (throw "Unsupported system: ${system}");
 
+  # TODO: It'd be nice to write an update script that would update all of these
+  # hashes together.
   packageHash = {
-    x86_64-linux = "sha256-LHiLkZ+VN+wPnq6OukXozQWKh7ewNaFor1ndCUlCBtU=";
-    aarch64-linux = "sha256-1+rLGnm+LhbYigYUcmuLICLFXUk3wjOkmxuCuuI+Xqc=";
-    x86_64-darwin = "sha256-mJA3VXfNr6578Q2xw0xOZccloQpeCIsjn3dVdlsnTVs=";
-    aarch64-darwin = "sha256-FNl3UefJWA8yJ2B44GUEK6py7DLikJrygIwsqdIjW9c=";
+    x86_64-linux = "sha256-gYHIfvgofT9tKYCchZoRYvioLCtp2wfaOtuVWxTyujM=";
+    aarch64-linux = "sha256-zW+aeUc67pa6mQQkfazShHKAvGeucswLK1eRCxzXOJM=";
+    x86_64-darwin = "sha256-ph+SrrxOIyG9rRS098duhvDFiNGuh0o2uemm++J+zKw=";
+    aarch64-darwin = "sha256-eOpRaivRhk841/TCxC4ygw27UrPkqQCMH2mme2qo8V8=";
   }.${system} or (throw "Unsupported system: ${system}");
 
 in stdenv.mkDerivation rec {
   pname = "fermyon-spin";
-  version = "2.4.2";
+  version = "2.5.1";
 
   # Use fetchurl rather than fetchzip as these tarballs are built by the project
   # and not by GitHub (and thus are stable) - this simplifies the update script
@@ -56,7 +58,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "Framework for building, deploying, and running fast, secure, and composable cloud microservices with WebAssembly.";
+    description = "Framework for building, deploying, and running fast, secure, and composable cloud microservices with WebAssembly";
     homepage = "https://github.com/fermyon/spin";
     license = with licenses; [ asl20 ];
     mainProgram = "spin";
diff --git a/pkgs/development/tools/firebase-tools/default.nix b/pkgs/development/tools/firebase-tools/default.nix
index 4af5783d7112a..ed1a09e2916a9 100644
--- a/pkgs/development/tools/firebase-tools/default.nix
+++ b/pkgs/development/tools/firebase-tools/default.nix
@@ -8,16 +8,16 @@
 
 buildNpmPackage rec {
   pname = "firebase-tools";
-  version = "13.10.0";
+  version = "13.11.2";
 
   src = fetchFromGitHub {
     owner = "firebase";
     repo = "firebase-tools";
     rev = "v${version}";
-    hash = "sha256-g6VmfVBGAjMH2a+oQpS3fVJm9rRNrYFaVfZ/GeqLSus=";
+    hash = "sha256-UkRkl9p8ABIr5kCtOW8nN6wpTOj56jdapQdenywd1to=";
   };
 
-  npmDepsHash = "sha256-W+XiuYTFmPgcS03U579/J3HsdPkX9WIHMR33DzWQlr8=";
+  npmDepsHash = "sha256-NnO7g5TBnaFfv6s+95qjkVA0iSVFv1EQnVn1OgxeEeU=";
 
   postPatch = ''
     ln -s npm-shrinkwrap.json package-lock.json
diff --git a/pkgs/development/tools/fission/default.nix b/pkgs/development/tools/fission/default.nix
index b1ac93a81ee9e..04342eb1473cb 100644
--- a/pkgs/development/tools/fission/default.nix
+++ b/pkgs/development/tools/fission/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "fission";
-  version = "1.20.1";
+  version = "1.20.2";
 
   src = fetchFromGitHub {
     owner = "fission";
     repo = "fission";
     rev = "v${version}";
-    hash = "sha256-RT4hBr7qxhhJM1REJFIE9En1Vu3ACvXav242PBYz8IQ=";
+    hash = "sha256-DkSilNn98m7E9qTRpf+g2cmo3SHeJkW4eJ5T6XQM3S8=";
   };
 
-  vendorHash = "sha256-hZmQxG4cw1Len3ZyGhWVTXB8N9fDRkgNDyF18/8dKuo=";
+  vendorHash = "sha256-IChr8jC21yI5zOkHF2v9lQoqXT95FSMXJdWj7HqikB4=";
 
   ldflags = [ "-s" "-w" "-X info.Version=${version}" ];
 
@@ -22,7 +22,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "The cli used by end user to interact Fission";
+    description = "Cli used by end user to interact Fission";
     homepage = "https://fission.io";
     license = licenses.asl20;
     maintainers = with maintainers; [ neverbehave ];
diff --git a/pkgs/development/tools/flamegraph/default.nix b/pkgs/development/tools/flamegraph/default.nix
index 3a64d741de5c4..d80354b68c7ab 100644
--- a/pkgs/development/tools/flamegraph/default.nix
+++ b/pkgs/development/tools/flamegraph/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "FlameGraph";
-  version = "2019-02-16";
+  version = "2023-11-06";
 
   src = fetchFromGitHub {
     owner = "brendangregg";
     repo = pname;
-    rev = "1b1c6deede9c33c5134c920bdb7a44cc5528e9a7";
-    sha256 = "1flvkmv2gbb003d51myl7r0wyhyw1bk9p7v19xagb8xjj4ci947b";
+    rev = "a96184c6939f8c6281fcd7285b54fba80555ac74";
+    sha256 = "sha256-hvp1HxmgNbe85kxe0NyolFUd+kPPBDYAt+g2K8pE1Ak=";
   };
 
   buildInputs = [ perl ];
@@ -24,10 +24,18 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
+  doCheck = true;
+
+  checkPhase = ''
+    patchShebangs ./test.sh
+    ./test.sh
+  '';
+
   meta = with lib; {
     license = with licenses; [ asl20 cddl gpl2Plus ];
     homepage = "http://www.brendangregg.com/flamegraphs.html";
     description = "Visualization for profiled code";
+    mainProgram = "flamegraph.pl";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/flootty/default.nix b/pkgs/development/tools/flootty/default.nix
index 9440b0b619462..2c090556b7600 100644
--- a/pkgs/development/tools/flootty/default.nix
+++ b/pkgs/development/tools/flootty/default.nix
@@ -10,7 +10,7 @@ python3Packages.buildPythonApplication rec {
   };
 
   meta = with lib; {
-    description = "A collaborative terminal. In practice, it's similar to a shared screen or tmux session";
+    description = "Collaborative terminal. In practice, it's similar to a shared screen or tmux session";
     mainProgram = "flootty";
     homepage = "https://floobits.com/help/flootty";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/fnm/default.nix b/pkgs/development/tools/fnm/default.nix
index 75bde74896783..7b521856a3e8b 100644
--- a/pkgs/development/tools/fnm/default.nix
+++ b/pkgs/development/tools/fnm/default.nix
@@ -10,20 +10,20 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fnm";
-  version = "1.35.1";
+  version = "1.37.1";
 
   src = fetchFromGitHub {
     owner = "Schniz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-qRnxXh3m/peMNAR/EV+lkwDI+Z6komF8GGFyF5UDOFg=";
+    sha256 = "sha256-x6w2g7U/FbJBycMAF4PUyaoIazp/w6imIpy+N7Cf0qk=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
 
   buildInputs = lib.optionals stdenv.isDarwin [ DiskArbitration Foundation Security ];
 
-  cargoHash = "sha256-//DCxAC8Jf7g8SkG4NfwkM0NyWUdASuw1g4COFIY0mU=";
+  cargoHash = "sha256-b15m5DjTDNWJBHOaKSEMwkO/o+0mV+JMBDBurml7xOs=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/fprettify/default.nix b/pkgs/development/tools/fprettify/default.nix
index b2c37f163b26e..1a424c5f57c1e 100644
--- a/pkgs/development/tools/fprettify/default.nix
+++ b/pkgs/development/tools/fprettify/default.nix
@@ -20,7 +20,7 @@ python3Packages.buildPythonApplication rec {
   ];
 
   meta = with lib; {
-    description = "An auto-formatter for modern Fortran code that imposes strict whitespace formatting, written in Python.";
+    description = "Auto-formatter for modern Fortran code that imposes strict whitespace formatting, written in Python";
     mainProgram = "fprettify";
     homepage = "https://pypi.org/project/fprettify/";
     license = with licenses; [ gpl3Only ];
diff --git a/pkgs/development/tools/frink/default.nix b/pkgs/development/tools/frink/default.nix
index dc902783c59c6..818a70bfe2a02 100644
--- a/pkgs/development/tools/frink/default.nix
+++ b/pkgs/development/tools/frink/default.nix
@@ -1,46 +1,50 @@
-{ fetchurl
-, frink
-, jdk
-, lib
-, rlwrap
-, stdenv
-, testers
+{
+  fetchurl,
+  frink,
+  jdk,
+  lib,
+  rlwrap,
+  stdenv,
+  testers,
 }:
 stdenv.mkDerivation rec {
   pname = "frink";
-  version = "2023-07-31";
+  version = "2024-05-09";
 
   src = fetchurl {
     # Upstream does not provide versioned download links
-    url = "https://web.archive.org/web/20230806114836/https://frinklang.org/frinkjar/frink.jar";
-    sha256 = "sha256-u44g/pM4ie3NcBh6MZpN8+oWZLYz0LN5ozetee1iXNk=";
+    url = "https://web.archive.org/web/20240605193919/https://frinklang.org/frinkjar/frink-tng.jar";
+    sha256 = "sha256-ceV1p9wsXprcNLhol79evswVZ1SpH5IzfSbl8st4cmU=";
   };
 
   dontUnpack = true;
 
   nativeBuildInputs = [ jdk ];
 
-  buildInputs = [ jdk rlwrap ];
+  buildInputs = [
+    jdk
+    rlwrap
+  ];
 
   installPhase = ''
     runHook preInstall
 
     mkdir -p $out/bin $out/lib
 
-    cp ${src} $out/lib/frink.jar
+    cp ${src} $out/lib/frink-tng.jar
 
     # Generate rlwrap helper files.
     # See https://frinklang.org/fsp/colorize.fsp?f=listUnits.frink
     # and https://frinklang.org/fsp/colorize.fsp?f=listFunctions.frink
-    java -classpath "$out/lib/frink.jar" frink.gui.FrinkStarter -e 'joinln[lexicalSort[units[]]]' > $out/lib/unitnames.txt
-    java -classpath "$out/lib/frink.jar" frink.gui.FrinkStarter -e 'joinln[map[{|f|
+    java -classpath "$out/lib/frink-tng.jar" frink.gui.FrinkStarter -e 'joinln[lexicalSort[units[]]]' > $out/lib/unitnames.txt
+    java -classpath "$out/lib/frink-tng.jar" frink.gui.FrinkStarter -e 'joinln[map[{|f|
         f =~ %s/\s+//g
         return "$f$"
       }, lexicalSort[functions[]]]]' > $out/lib/functionnames.txt
 
     cat > "$out/bin/frink" << EOF
     #!${stdenv.shell}
-    exec ${rlwrap}/bin/rlwrap -f $out/lib/unitnames.txt -b '$' -f $out/lib/functionnames.txt ${jdk}/bin/java -classpath "$out/lib/frink.jar" frink.gui.FrinkStarter "\$@"
+    exec ${rlwrap}/bin/rlwrap -f $out/lib/unitnames.txt -b '$' -f $out/lib/functionnames.txt ${jdk}/bin/java -classpath "$out/lib/frink-tng.jar" frink.gui.FrinkStarter "\$@"
     EOF
 
     chmod a+x "$out/bin/frink"
@@ -49,7 +53,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A practical calculating tool and programming language";
+    description = "Practical calculating tool and programming language";
     homepage = "https://frinklang.org/";
     license = licenses.unfree;
     sourceProvenance = [ sourceTypes.binaryBytecode ];
diff --git a/pkgs/development/tools/fsautocomplete/default.nix b/pkgs/development/tools/fsautocomplete/default.nix
index 3a2374aa9c644..b4b381c369d86 100644
--- a/pkgs/development/tools/fsautocomplete/default.nix
+++ b/pkgs/development/tools/fsautocomplete/default.nix
@@ -2,13 +2,13 @@
 
 buildDotnetModule rec {
   pname = "fsautocomplete";
-  version = "0.72.3";
+  version = "0.73.2";
 
   src = fetchFromGitHub {
     owner = "fsharp";
     repo = "FsAutoComplete";
     rev = "v${version}";
-    hash = "sha256-YU2rb1rxlbreSXMO+IGS2BrdfmqntdSlLuxV3zekSaI=";
+    hash = "sha256-iiV/Tw3gOteARrOEbLjPA/jGawoxJVBZg6GvF9p9HHA=";
   };
 
   nugetDeps = ./deps.nix;
@@ -29,7 +29,7 @@ buildDotnetModule rec {
   useDotnetFromEnv = true;
 
   meta = with lib; {
-    description = "The FsAutoComplete project (FSAC) provides a backend service for rich editing or intellisense features for editors.";
+    description = "FsAutoComplete project (FSAC) provides a backend service for rich editing or intellisense features for editors";
     mainProgram = "fsautocomplete";
     homepage = "https://github.com/fsharp/FsAutoComplete";
     changelog = "https://github.com/fsharp/FsAutoComplete/releases/tag/v${version}";
diff --git a/pkgs/development/tools/fsautocomplete/deps.nix b/pkgs/development/tools/fsautocomplete/deps.nix
index 6dc9faa2b0337..8dea1747aa97e 100644
--- a/pkgs/development/tools/fsautocomplete/deps.nix
+++ b/pkgs/development/tools/fsautocomplete/deps.nix
@@ -17,13 +17,13 @@
   (fetchNuGet { pname = "fantomas"; version = "6.3.1"; sha256 = "0kkhdwcw0l7pa1hjil2hjpizjbp618ig32wgni5sfaqmxkc9iywq"; })
   (fetchNuGet { pname = "Fantomas.Client"; version = "0.9.0"; sha256 = "1zixwk61fyk7y9q6f8266kwxi6byr8fmyp1lf57qhbbvhq2waj9d"; })
   (fetchNuGet { pname = "FParsec"; version = "1.1.1"; sha256 = "01s3zrxl9kfx0264wy0m555pfx0s0z165n4fvpgx63jlqwbd8m04"; })
-  (fetchNuGet { pname = "fsharp-analyzers"; version = "0.25.0"; sha256 = "01i9yhqs7b0p9s1j9m8g3yd8w3a3xp9bp8791zmxp31l5ricjdwy"; })
+  (fetchNuGet { pname = "fsharp-analyzers"; version = "0.26.0"; sha256 = "0xgv5kvbwfdvcp6s8x7xagbbi4s3mqa4ixni6pazqvyflbgnah7b"; })
   (fetchNuGet { pname = "FSharp.Analyzers.Build"; version = "0.3.0"; sha256 = "1c9ijc9lvyw4lfnd3m9260c8lwnh6ca91zslr29dpn525z9zgdif"; })
-  (fetchNuGet { pname = "FSharp.Analyzers.SDK"; version = "0.25.0"; sha256 = "13s2bhizbl2ss9944wk3cka1ri22rs7aqhiiz2i9lyaj9jz863cy"; })
-  (fetchNuGet { pname = "FSharp.Compiler.Service"; version = "43.8.200"; sha256 = "1jcp8by02n7vbs11p0gxmb42837l7q841f71ifmrqw7chmg14zik"; })
+  (fetchNuGet { pname = "FSharp.Analyzers.SDK"; version = "0.26.0"; sha256 = "0kvqjm8qk8g8iv1f3jv5ac5jj9y1d4mwsia2zydj5lcdczg3g3p1"; })
+  (fetchNuGet { pname = "FSharp.Compiler.Service"; version = "43.8.300"; sha256 = "0qhs4zg0yxy3b82jvm2m41b9fd8ybfbf7bcdn7097sdly0nd9ywb"; })
   (fetchNuGet { pname = "FSharp.Control.AsyncSeq"; version = "3.2.1"; sha256 = "02c8d8snd529rrcj6lsmab3wdq2sjh90j8sanx50ck9acfn9jd3v"; })
   (fetchNuGet { pname = "FSharp.Control.Reactive"; version = "5.0.5"; sha256 = "0ahvd3s5wfv610ks3b00ya5r71cqm34ap8ywx0pyrzhlsbk1ybqg"; })
-  (fetchNuGet { pname = "FSharp.Core"; version = "8.0.200"; sha256 = "1v0w8n02wshggymckvy9l343yiznjfmif9nfd35f9a32s5wj4dn2"; })
+  (fetchNuGet { pname = "FSharp.Core"; version = "8.0.300"; sha256 = "158xxr9hnhz2ibyzzp2d249angvxfc58ifflm4g3hz8qx9zxaq04"; })
   (fetchNuGet { pname = "FSharp.Data.Adaptive"; version = "1.2.13"; sha256 = "16l1h718h110yl2q83hzy1rpalyqlicdaxln7g0bf8kzq9b2v6rz"; })
   (fetchNuGet { pname = "FSharp.Formatting"; version = "14.0.1"; sha256 = "0sx4jlxzmrdcmc937arc9v0r90qkpf2gd1m9ngkpg88qvqcx4xsa"; })
   (fetchNuGet { pname = "FSharp.UMX"; version = "1.1.0"; sha256 = "1rzf5m38fcpphfhcv359plk2sval16kj00gdfwzpm9gi8wjw8j8k"; })
@@ -41,15 +41,15 @@
   (fetchNuGet { pname = "Grpc.Net.Common"; version = "2.51.0"; sha256 = "1b7iwf5qk4c449mi5lsnf6j99pwwrj79y8zkinzf5j2rslc97r0z"; })
   (fetchNuGet { pname = "Humanizer.Core"; version = "2.14.1"; sha256 = "1ai7hgr0qwd7xlqfd92immddyi41j3ag91h3594yzfsgsy6yhyqi"; })
   (fetchNuGet { pname = "Iced"; version = "1.17.0"; sha256 = "1999xavgpy2h83rh4indiq5mx5l509swqdi1raxj3ab6zvk49zpb"; })
-  (fetchNuGet { pname = "IcedTasks"; version = "0.9.2"; sha256 = "1i4sg398qvxyrprca9jssn4lccwn67zndbg1a3a37cmsms5rlbvj"; })
+  (fetchNuGet { pname = "IcedTasks"; version = "0.11.5"; sha256 = "0l7wzns5dg5jq8ppzvi13cr7nh1kjc0qyj80npy8lr3x86hiz51q"; })
   (fetchNuGet { pname = "ICSharpCode.Decompiler"; version = "7.2.1.6856"; sha256 = "19z68rgzl93lh1h8anbgzw119mhvcgr9nh5q2nxk6qihl2mx97ba"; })
-  (fetchNuGet { pname = "Ionide.Analyzers"; version = "0.10.0"; sha256 = "1z97m2r6p13yg253zlx89x7fd4zvxmkggilav5h5wf4blsfxvzw1"; })
+  (fetchNuGet { pname = "Ionide.Analyzers"; version = "0.11.0"; sha256 = "1wsx7gbr4macmim5z1iz9clgq9xfmg423snb589bvaiyg5k6ha00"; })
   (fetchNuGet { pname = "Ionide.KeepAChangelog.Tasks"; version = "0.1.8"; sha256 = "066zla2rp1sal6by3h3sg6ibpkk52kbhn30bzk58l6ym7q1kqa6b"; })
-  (fetchNuGet { pname = "Ionide.LanguageServerProtocol"; version = "0.4.23"; sha256 = "0jfsan2d7aj68xksn1xrdiww1fdz34n7k91r5y4a77jx6h4ngbxq"; })
-  (fetchNuGet { pname = "Ionide.ProjInfo"; version = "0.64.0"; sha256 = "0sbd392f4fwmq4v652ak39md35vcgxl4q05y5dgrk71kpak6pg2w"; })
-  (fetchNuGet { pname = "Ionide.ProjInfo.FCS"; version = "0.64.0"; sha256 = "0srbqyaivq8i6xl20v5hg7zxkvby06zirmcppv1apwh9p1yvi68k"; })
-  (fetchNuGet { pname = "Ionide.ProjInfo.ProjectSystem"; version = "0.64.0"; sha256 = "0rzj97ysw4skavq4amhv5fd0h1dyyqi4rxzxzpd4cd07xc8bnfv6"; })
-  (fetchNuGet { pname = "Ionide.ProjInfo.Sln"; version = "0.64.0"; sha256 = "1yd30n5idc5rbqi7lr8gp4hb51l85q3canqinlaxa6raaml0xxsj"; })
+  (fetchNuGet { pname = "Ionide.LanguageServerProtocol"; version = "0.6.0"; sha256 = "15wjmm91qdvhdpjjggqqsqgwlsi0wwsdzqarvdx9l1h2681hq9g0"; })
+  (fetchNuGet { pname = "Ionide.ProjInfo"; version = "0.65.0"; sha256 = "0aka78yaj7h3apbr9ia7rdikr2hhyizl1xakks90h47nax00kscz"; })
+  (fetchNuGet { pname = "Ionide.ProjInfo.FCS"; version = "0.65.0"; sha256 = "0kjrn6r6nwd5m5wlb8jpyzaicjcw64dg7w7vqndrwv7nw0wd4di0"; })
+  (fetchNuGet { pname = "Ionide.ProjInfo.ProjectSystem"; version = "0.65.0"; sha256 = "15080y3f0zqvdzi6ks9v6jhih5xsrgi08ji5zym88qvmp81g1m8q"; })
+  (fetchNuGet { pname = "Ionide.ProjInfo.Sln"; version = "0.65.0"; sha256 = "1f2xys28vjx22wgjnlk2jy4zsy7hkjvw692r2pqmki6fb5a5pjql"; })
   (fetchNuGet { pname = "LinkDotNet.StringBuilder"; version = "1.18.0"; sha256 = "0lgh4yjnim9qbqkmkgpx5fi2lha1cgcdbddvbsiw9jzp18fndxly"; })
   (fetchNuGet { pname = "McMaster.NETCore.Plugins"; version = "1.4.0"; sha256 = "1k2qz0qnf2b1kfwbzcynivy93jm7dcwl866d0fl7qlgq5vql7niy"; })
   (fetchNuGet { pname = "MessagePack"; version = "2.5.108"; sha256 = "0cnaz28lhrdmavnxjkakl9q8p2yv8mricvp1b0wxdfnz8v41gwzs"; })
@@ -82,7 +82,7 @@
   (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "6.0.0"; sha256 = "15hb2rbzgri1fq8wpj4ll7czm3rxqzszs02phnhjnncp90m5rmpc"; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "6.0.1"; sha256 = "0kl5ypidmzllyxb91gwy3z950dc416p1y8wikzbdbp0l7aaaxq2p"; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "6.0.0"; sha256 = "1vi67fw7q99gj7jd64gnnfr4d2c0ijpva7g9prps48ja6g91x6a9"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "6.0.0"; sha256 = "08c4fh1n8vsish1vh7h73mva34g0as4ph29s4lvps7kmjb4z64nl"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "5.0.0"; sha256 = "1mma1zxi0b40972cwfvkj9y0w9r7vjbi74784jzcb22pric00k5x"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "6.0.0"; sha256 = "0fd9jii3y3irfcwlsiww1y9npjgabzarh33rn566wpcz24lijszi"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "6.0.2"; sha256 = "1wv54f3p3r2zj1pr9a6z8zqrh2ihm6v6qcw2pjwis1lcc0qb472m"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Logging.Configuration"; version = "6.0.0"; sha256 = "0plx785hk61arjxf0m3ywy9hl5nii25raj4523n3ql7mmv6hxqr1"; })
@@ -114,6 +114,7 @@
   (fetchNuGet { pname = "OpenTelemetry"; version = "1.3.2"; sha256 = "1v9ipc75ipwjhhz4mkyjygw85i6ba5flcbhyspmf90vfi2nk7b79"; })
   (fetchNuGet { pname = "OpenTelemetry.Api"; version = "1.3.2"; sha256 = "0fgl99k6nm3n47vv9mx6y36pnljj2b5g641cs2zsw6l86n57qwv1"; })
   (fetchNuGet { pname = "OpenTelemetry.Exporter.OpenTelemetryProtocol"; version = "1.3.2"; sha256 = "14p6rn68mqrch3ani17vwyl4ggjz680nxkw1nf65xmf1ljlkb4iq"; })
+  (fetchNuGet { pname = "OpenTelemetry.Instrumentation.Runtime"; version = "1.0.0"; sha256 = "02s1g7nizf9dglfgff2fcncigbyplfbwhif7naj1wh7gx5dnig1l"; })
   (fetchNuGet { pname = "Paket"; version = "8.0.3"; sha256 = "12xm100rg82p5fvkn63mmjc8i38q8yvk5327snwzqijlfh3k60n0"; })
   (fetchNuGet { pname = "Perfolizer"; version = "0.2.1"; sha256 = "012aqqi3y3nfikqmn26yajpwd52c04zlzp0p91iyslw7mf26qncy"; })
   (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0rwpqngkqiapqc5c2cpkj7idhngrgss5qpnqg0yh40mbyflcxf8i"; })
@@ -208,5 +209,6 @@
   (fetchNuGet { pname = "System.Threading.Tasks.Dataflow"; version = "7.0.0"; sha256 = "0ham9l8xrmlq2qwin53n82iz1wanci2h695i3cq83jcw4n28qdr9"; })
   (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
   (fetchNuGet { pname = "System.Windows.Extensions"; version = "7.0.0"; sha256 = "11r9f0v7qp365bdpq5ax023yra4qvygljz18dlqs650d44iay669"; })
+  (fetchNuGet { pname = "telplin"; version = "0.9.6"; sha256 = "0wlg6nsy4icf7k0vm32m0466hz5bs97fhx2czfqr0alx14z8n64h"; })
   (fetchNuGet { pname = "YoloDev.Expecto.TestSdk"; version = "0.14.2"; sha256 = "1877gr3f8wl1x3njhgss9psxm21xpqv6cpg625f2mvvak79fzrra"; })
 ]
diff --git a/pkgs/development/tools/fusee-nano/default.nix b/pkgs/development/tools/fusee-nano/default.nix
index 67706b726f977..fc06232770741 100644
--- a/pkgs/development/tools/fusee-nano/default.nix
+++ b/pkgs/development/tools/fusee-nano/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
   makeFlags = [ "PREFIX=$(out)/bin" ];
 
   meta = {
-    description = "A minimalist re-implementation of the Fusée Gelée exploit";
+    description = "Minimalist re-implementation of the Fusée Gelée exploit";
     mainProgram = "fusee-nano";
     homepage = "https://github.com/DavidBuchanan314/fusee-nano";
     license = lib.licenses.mit;
diff --git a/pkgs/development/tools/gammaray/default.nix b/pkgs/development/tools/gammaray/default.nix
index 3b9f578064776..f2f24bcf2e6a9 100644
--- a/pkgs/development/tools/gammaray/default.nix
+++ b/pkgs/development/tools/gammaray/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A software introspection tool for Qt applications developed by KDAB";
+    description = "Software introspection tool for Qt applications developed by KDAB";
     homepage = "https://github.com/KDAB/GammaRay";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/development/tools/gemstash/default.nix b/pkgs/development/tools/gemstash/default.nix
index ce8fde604ab58..8128c4db290af 100644
--- a/pkgs/development/tools/gemstash/default.nix
+++ b/pkgs/development/tools/gemstash/default.nix
@@ -11,7 +11,7 @@ bundlerApp rec {
   };
 
   meta = with lib; {
-    description = "A cache for RubyGems.org and a private gem server";
+    description = "Cache for RubyGems.org and a private gem server";
     homepage    = "https://github.com/rubygems/gemstash";
     license     = licenses.mit;
     maintainers = [ maintainers.viraptor ];
diff --git a/pkgs/development/tools/gendef/default.nix b/pkgs/development/tools/gendef/default.nix
index 431c2a644b121..6f637b01144d5 100644
--- a/pkgs/development/tools/gendef/default.nix
+++ b/pkgs/development/tools/gendef/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation (finalAttrs: {
   sourceRoot = "${finalAttrs.src.name}/mingw-w64-tools/gendef";
 
   meta = {
-    description = "A tool which generate def files from DLLs";
+    description = "Tool which generate def files from DLLs";
     mainProgram = "gendef";
     homepage = "https://sourceforge.net/p/mingw-w64/wiki2/gendef/";
     license = lib.licenses.gpl3Plus;
diff --git a/pkgs/development/tools/gi-crystal/default.nix b/pkgs/development/tools/gi-crystal/default.nix
index 395efaa74241a..d5c19a21662ab 100644
--- a/pkgs/development/tools/gi-crystal/default.nix
+++ b/pkgs/development/tools/gi-crystal/default.nix
@@ -40,7 +40,7 @@ crystal.buildCrystalPackage rec {
 
 
   meta = with lib; {
-    description = "GI Crystal is a binding generator used to generate Crystal bindings for GObject based libraries using GObject Introspection.";
+    description = "GI Crystal is a binding generator used to generate Crystal bindings for GObject based libraries using GObject Introspection";
     homepage = "https://github.com/hugopl/gi-crystal";
     mainProgram = "gi-crystal";
     maintainers = with maintainers; [ sund3RRR ];
diff --git a/pkgs/development/tools/ginkgo/default.nix b/pkgs/development/tools/ginkgo/default.nix
index ecbda3802d4d8..aefcaec12e17a 100644
--- a/pkgs/development/tools/ginkgo/default.nix
+++ b/pkgs/development/tools/ginkgo/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "ginkgo";
-  version = "2.18.0";
+  version = "2.19.0";
 
   src = fetchFromGitHub {
     owner = "onsi";
     repo = "ginkgo";
     rev = "v${version}";
-    sha256 = "sha256-e8XL79Qj38I+oYJdBut1VL0DlU/tE1q7v1N8JmWjrfA=";
+    sha256 = "sha256-+Kh+Pn0oEq/eDXE+vsYrSOqhSoeQoIueb6mVpT2bljc=";
   };
   vendorHash = "sha256-ccqhuUL99dtIeiEM4hRdi0479I0cyf8pxSZz0G6Vm+w=";
 
@@ -26,7 +26,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://onsi.github.io/ginkgo/";
     changelog = "https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md";
-    description = "A Modern Testing Framework for Go";
+    description = "Modern Testing Framework for Go";
     mainProgram = "ginkgo";
     longDescription = ''
       Ginkgo is a testing framework for Go designed to help you write expressive
diff --git a/pkgs/development/tools/github-copilot-intellij-agent/default.nix b/pkgs/development/tools/github-copilot-intellij-agent/default.nix
index e6cf7744dd381..c919e2de62813 100644
--- a/pkgs/development/tools/github-copilot-intellij-agent/default.nix
+++ b/pkgs/development/tools/github-copilot-intellij-agent/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
   dontStrip = true;
 
   meta = rec {
-    description = "The GitHub copilot IntelliJ plugin's native component";
+    description = "GitHub copilot IntelliJ plugin's native component";
     longDescription = ''
       The GitHub copilot IntelliJ plugin's native component.
       bin/copilot-agent must be symlinked into the plugin directory, replacing the existing binary.
diff --git a/pkgs/development/tools/github/cligh/default.nix b/pkgs/development/tools/github/cligh/default.nix
index 29976464479b5..5e44bde8cf2dc 100644
--- a/pkgs/development/tools/github/cligh/default.nix
+++ b/pkgs/development/tools/github/cligh/default.nix
@@ -17,7 +17,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "http://the-brannons.com/software/cligh.html";
-    description = "A simple command-line interface to the facilities of Github";
+    description = "Simple command-line interface to the facilities of Github";
     mainProgram = "cligh";
     longDescription = ''
         Cligh is a simple command-line interface to the facilities of GitHub.
diff --git a/pkgs/development/tools/glamoroustoolkit/default.nix b/pkgs/development/tools/glamoroustoolkit/default.nix
index fed9323566de4..05b74f6339bed 100644
--- a/pkgs/development/tools/glamoroustoolkit/default.nix
+++ b/pkgs/development/tools/glamoroustoolkit/default.nix
@@ -98,7 +98,7 @@ preFixup = let
 
   meta = {
     homepage = "https://gtoolkit.com";
-    description = "The GlamorousToolkit Development Environment";
+    description = "GlamorousToolkit Development Environment";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.akgrant43 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/development/tools/glock/default.nix b/pkgs/development/tools/glock/default.nix
deleted file mode 100644
index 503877328973a..0000000000000
--- a/pkgs/development/tools/glock/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
-
-buildGoPackage rec {
-  pname = "glock";
-  version = "20160816-${lib.strings.substring 0 7 rev}";
-  rev = "b8c84ff5ade15a6238ca61c20d3afc70d2e41276";
-
-  goPackagePath = "github.com/robfig/glock";
-
-  src = fetchFromGitHub {
-    inherit rev;
-    owner = "robfig";
-    repo = "glock";
-    sha256 = "10jwn3k71p340g8d43zjx7k1j534rcd7rss8pif09mpfrn9qndhh";
-  };
-
-  goDeps = ./deps.nix;
-
-  meta = with lib; {
-    homepage = "https://github.com/robfig/glock";
-    description = "A command-line tool to lock Go dependencies to specific revisions";
-    mainProgram = "glock";
-    license = licenses.mit;
-    maintainers = [ maintainers.rushmorem ];
-  };
-}
diff --git a/pkgs/development/tools/glock/deps.nix b/pkgs/development/tools/glock/deps.nix
deleted file mode 100644
index b7392d757cfc7..0000000000000
--- a/pkgs/development/tools/glock/deps.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-# This file was generated by go2nix.
-[
-  {
-    goPackagePath = "github.com/agtorre/gocolorize";
-    fetch = {
-      type = "git";
-      url = "https://github.com/agtorre/gocolorize";
-      rev = "f42b554bf7f006936130c9bb4f971afd2d87f671";
-      sha256 = "1dj7s8bgw9qky344d0k9gz661c0m317a08a590184drw7m51hy9p";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "f1a397bba50dee815e8c73f3ec94ffc0e8df1a09";
-      sha256 = "1wy8nn2vg70n98g80i1zrk49129phyfbzxbicj748bmf82rnaxzg";
-    };
-  }
-]
diff --git a/pkgs/development/tools/glslviewer/default.nix b/pkgs/development/tools/glslviewer/default.nix
index 4be67a29e3999..fd84492da6aee 100644
--- a/pkgs/development/tools/glslviewer/default.nix
+++ b/pkgs/development/tools/glslviewer/default.nix
@@ -1,60 +1,54 @@
-{ lib, stdenv, fetchFromGitHub, glfw, pkg-config, libXrandr, libXdamage
-, libXext, libXrender, libXinerama, libXcursor, libXxf86vm, libXi
-, libX11, libGLU, python3Packages, ensureNewerSourcesForZipFilesHook
-, Cocoa
+{
+  stdenv,
+  cmake,
+  ninja,
+  lib,
+  fetchFromGitHub,
+  pkg-config,
+  libX11,
+  libXrandr,
+  libXinerama,
+  libXcursor,
+  libXi,
+  libXext,
+  libGLU,
+  ffmpeg,
+  ncurses,
+  Cocoa,
 }:
-
 stdenv.mkDerivation rec {
   pname = "glslviewer";
-  version = "1.6.8";
-
+  version = "3.2.4";
   src = fetchFromGitHub {
     owner = "patriciogonzalezvivo";
     repo = "glslViewer";
+    fetchSubmodules = true;
     rev = version;
-    sha256 = "0v7x93b61ama0gmzlx1zc56jgi7bvzsfvbkfl82xzwf2h5g1zni7";
+    sha256 = "sha256-Ve3wmX5+kABCu8IRe4ySrwsBJm47g1zvMqDbqrpQl88=";
   };
-
-  postPatch = ''
-    sed '1i#include <cstring>' -i src/tools/text.cpp # gcc12
-    sed '8i#include <cstdint>' -i src/io/fs.cpp # gcc13
-  '';
-
-  nativeBuildInputs = [ pkg-config ensureNewerSourcesForZipFilesHook python3Packages.six ];
-  buildInputs = [
-    glfw libGLU glfw libXrandr libXdamage
-    libXext libXrender libXinerama libXcursor libXxf86vm
-    libXi libX11
-  ] ++ (with python3Packages; [ python setuptools wrapPython ])
+  nativeBuildInputs = [cmake ninja pkg-config];
+  buildInputs =
+    [
+      libX11
+      libXrandr
+      libXinerama
+      libXcursor
+      libXi
+      libXext
+      libGLU
+      ncurses
+      ffmpeg
+    ]
     ++ lib.optional stdenv.isDarwin Cocoa;
-  pythonPath = with python3Packages; [ pyyaml requests ];
-
-  # Makefile has /usr/local/bin hard-coded for 'make install'
-  preConfigure = ''
-    substituteInPlace Makefile \
-        --replace '/usr/local' "$out" \
-        --replace '/usr/bin/clang++' 'clang++'
-    substituteInPlace Makefile \
-        --replace 'python setup.py install' "python setup.py install --prefix=$out"
-    2to3 -w bin/*
-  '';
-
-  preInstall = ''
-    mkdir -p $out/bin $(toPythonPath "$out")
-    export PYTHONPATH=$PYTHONPATH:$(toPythonPath "$out")
-  '';
-
-  postInstall = ''
-    wrapPythonPrograms
-  '';
 
   meta = with lib; {
     description = "Live GLSL coding renderer";
     homepage = "https://patriciogonzalezvivo.com/2015/glslViewer/";
     license = licenses.bsd3;
-    platforms = platforms.linux ++ platforms.darwin;
-    maintainers = [ maintainers.hodapp ];
+    maintainers = [maintainers.hodapp];
+    platforms = platforms.unix;
+    mainProgram = "glslViewer";
     # never built on aarch64-darwin since first introduction in nixpkgs
-    broken = stdenv.isDarwin && stdenv.isAarch64;
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/tools/go-bindata/default.nix b/pkgs/development/tools/go-bindata/default.nix
index c5d25a7a949e4..3b0bd53e4867d 100644
--- a/pkgs/development/tools/go-bindata/default.nix
+++ b/pkgs/development/tools/go-bindata/default.nix
@@ -20,7 +20,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/kevinburke/go-bindata";
     changelog = "https://github.com/kevinburke/go-bindata/blob/v${version}/CHANGELOG.md";
-    description = "A small utility which generates Go code from any file, useful for embedding binary data in a Go program";
+    description = "Small utility which generates Go code from any file, useful for embedding binary data in a Go program";
     mainProgram = "go-bindata";
     maintainers = with maintainers; [ ];
     license = licenses.cc0;
diff --git a/pkgs/development/tools/go-containerregistry/default.nix b/pkgs/development/tools/go-containerregistry/default.nix
index ed1db7612411a..9b50f9c67e745 100644
--- a/pkgs/development/tools/go-containerregistry/default.nix
+++ b/pkgs/development/tools/go-containerregistry/default.nix
@@ -4,13 +4,13 @@ let bins = [ "crane" "gcrane" ]; in
 
 buildGoModule rec {
   pname = "go-containerregistry";
-  version = "0.19.1";
+  version = "0.19.2";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-mHuxwIyPNUWuP4QmMyLMdRlpwSueyKkk9VezJ4Sv2Nw=";
+    sha256 = "sha256-YxUw30gjpBO/dXSTcNa4F91u3F9pg/IQuVWjKDV5mLs=";
   };
   vendorHash = null;
 
diff --git a/pkgs/development/tools/go-minimock/default.nix b/pkgs/development/tools/go-minimock/default.nix
index efcece3e61c1e..a972f069d31a3 100644
--- a/pkgs/development/tools/go-minimock/default.nix
+++ b/pkgs/development/tools/go-minimock/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "go-minimock";
-  version = "3.3.9";
+  version = "3.3.12";
 
   src = fetchFromGitHub {
     owner = "gojuno";
     repo = "minimock";
     rev = "v${version}";
-    sha256 = "sha256-J/nZJrq7CKF5dYj096svBZf9SaD9ehIk/I293y7IQXc=";
+    hash = "sha256-9iokhXkwmISjg8pOy11bax0KEfro2lpGLI9fbz2tpiY=";
   };
 
   ldflags = [
@@ -23,7 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/gojuno/minimock";
-    description = "A golang mock generator from interfaces";
+    description = "Golang mock generator from interfaces";
     license = licenses.mit;
     maintainers = with maintainers; [ svrana ];
     mainProgram = "minimock";
diff --git a/pkgs/development/tools/go-mockery/default.nix b/pkgs/development/tools/go-mockery/default.nix
index 2f343011cd112..b43c635145cc6 100644
--- a/pkgs/development/tools/go-mockery/default.nix
+++ b/pkgs/development/tools/go-mockery/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "go-mockery";
-  version = "2.43.1";
+  version = "2.43.2";
 
   src = fetchFromGitHub {
     owner = "vektra";
     repo = "mockery";
     rev = "v${version}";
-    sha256 = "sha256-q4N8tAWlJ+P30KvOnt3AdO9Lee2Mg8mCBUXfT+i4m10=";
+    sha256 = "sha256-qOiWWyhNNxjaIuFTzhJwog9wPNWa82/JYc0ST6s0OkA=";
   };
 
   preCheck = ''
@@ -61,7 +61,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/vektra/mockery";
-    description = "A mock code autogenerator for Golang";
+    description = "Mock code autogenerator for Golang";
     maintainers = with maintainers; [ fbrs ];
     mainProgram = "mockery";
     license = licenses.bsd3;
diff --git a/pkgs/development/tools/go-mod-graph-chart/default.nix b/pkgs/development/tools/go-mod-graph-chart/default.nix
index 11f7f4c6d9cff..8540e01483945 100644
--- a/pkgs/development/tools/go-mod-graph-chart/default.nix
+++ b/pkgs/development/tools/go-mod-graph-chart/default.nix
@@ -20,7 +20,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A tool build chart by go mod graph output with zero dependencies";
+    description = "Tool build chart by go mod graph output with zero dependencies";
     homepage = "https://github.com/PaulXu-cn/go-mod-graph-chart";
     mainProgram = "gmchart";
     license = licenses.mit;
diff --git a/pkgs/development/tools/go-symbols/default.nix b/pkgs/development/tools/go-symbols/default.nix
deleted file mode 100644
index c6683c067a345..0000000000000
--- a/pkgs/development/tools/go-symbols/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
-
-buildGoPackage rec {
-  pname = "go-symbols";
-  version = "0.1.1";
-
-  goPackagePath = "github.com/acroca/go-symbols";
-  goDeps = ./deps.nix;
-
-  src = fetchFromGitHub {
-    owner = "acroca";
-    repo = "go-symbols";
-    rev = "v${version}";
-    sha256 = "0yyzw6clndb2r5j9isyd727njs98zzp057v314vfvknsm8g7hqrz";
-  };
-
-  meta = {
-    description = "A utility for extracting a JSON representation of the package symbols from a go source tree";
-    mainProgram = "go-symbols";
-    homepage = "https://github.com/acroca/go-symbols";
-    maintainers = with lib.maintainers; [ vdemeester ];
-    license = lib.licenses.mit;
-  };
-}
diff --git a/pkgs/development/tools/go-symbols/deps.nix b/pkgs/development/tools/go-symbols/deps.nix
deleted file mode 100644
index 6a333b58bec6a..0000000000000
--- a/pkgs/development/tools/go-symbols/deps.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-[
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/tools";
-      rev = "96b5a5404f303f074e6117d832a9873c439508f0";
-      sha256 = "1h6r9xyp1v3w2x8d108vzghn65l6ia2h895irypmrwymfcp30y42";
-    };
-  }
-]
diff --git a/pkgs/development/tools/go-task/default.nix b/pkgs/development/tools/go-task/default.nix
index 1ec7fec8c5850..c744f2ee43186 100644
--- a/pkgs/development/tools/go-task/default.nix
+++ b/pkgs/development/tools/go-task/default.nix
@@ -45,7 +45,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://taskfile.dev/";
-    description = "A task runner / simpler Make alternative written in Go";
+    description = "Task runner / simpler Make alternative written in Go";
     changelog = "https://github.com/go-task/task/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ parasrah ];
diff --git a/pkgs/development/tools/go-tools/default.nix b/pkgs/development/tools/go-tools/default.nix
index 06a62650b9191..5a94cdf24fe0c 100644
--- a/pkgs/development/tools/go-tools/default.nix
+++ b/pkgs/development/tools/go-tools/default.nix
@@ -21,7 +21,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A collection of tools and libraries for working with Go code, including linters and static analysis";
+    description = "Collection of tools and libraries for working with Go code, including linters and static analysis";
     homepage = "https://staticcheck.io";
     license = licenses.mit;
     maintainers = with maintainers; [ rvolosatovs kalbasit smasher164 ];
diff --git a/pkgs/development/tools/gocode-gomod/default.nix b/pkgs/development/tools/gocode-gomod/default.nix
index cf10eda0d1f42..6d1ef96f77a88 100644
--- a/pkgs/development/tools/gocode-gomod/default.nix
+++ b/pkgs/development/tools/gocode-gomod/default.nix
@@ -25,7 +25,7 @@ buildGoModule rec {
   doCheck = false; # fails on go 1.17
 
   meta = with lib; {
-    description = "An autocompletion daemon for the Go programming language";
+    description = "Autocompletion daemon for the Go programming language";
     mainProgram = "gocode-gomod";
     longDescription = ''
       Gocode is a helper tool which is intended to be integrated with your
diff --git a/pkgs/development/tools/gocover-cobertura/default.nix b/pkgs/development/tools/gocover-cobertura/default.nix
index f1d005a47059e..bc8b4e9f0f2b3 100644
--- a/pkgs/development/tools/gocover-cobertura/default.nix
+++ b/pkgs/development/tools/gocover-cobertura/default.nix
@@ -20,7 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/boumenot/gocover-cobertura";
-    description = "This is a simple helper tool for generating XML output in Cobertura format for CIs like Jenkins and others from go tool cover output.";
+    description = "This is a simple helper tool for generating XML output in Cobertura format for CIs like Jenkins and others from go tool cover output";
     mainProgram = "gocover-cobertura";
     license = licenses.mit;
     maintainers = with maintainers; [ hmajid2301 ];
diff --git a/pkgs/development/tools/goda/default.nix b/pkgs/development/tools/goda/default.nix
index df8de49277cf2..ff8b0cecbc90b 100644
--- a/pkgs/development/tools/goda/default.nix
+++ b/pkgs/development/tools/goda/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "goda";
-  version = "0.5.8";
+  version = "0.5.9";
 
   src = fetchFromGitHub {
     owner = "loov";
     repo = "goda";
     rev = "v${version}";
-    hash = "sha256-WmOe3MfFWUnFSuwntHUjN+NeeT7TdxfBOgciviYZC0Y=";
+    hash = "sha256-tkGIo4FWIFFMtp4rP0GJaF7B6lrmtjaAVx45G4wAPQg=";
   };
 
   vendorHash = "sha256-FYjlOYB0L4l6gF8hYtJroV1qMQD0ZmKWXBarjyConRs=";
diff --git a/pkgs/development/tools/godot/3/mono/default.nix b/pkgs/development/tools/godot/3/mono/default.nix
index 22e95fb0e51ad..199965df0cfde 100644
--- a/pkgs/development/tools/godot/3/mono/default.nix
+++ b/pkgs/development/tools/godot/3/mono/default.nix
@@ -21,7 +21,7 @@ godot3.overrideAttrs (self: base: {
   nugetSource =
     mkNugetSource {
       name = "${self.pname}-nuget-source";
-      description = "A Nuget source with dependencies for ${self.pname}";
+      description = "Nuget source with dependencies for ${self.pname}";
       deps = [ self.nugetDeps ];
     };
 
diff --git a/pkgs/development/tools/goimports-reviser/default.nix b/pkgs/development/tools/goimports-reviser/default.nix
index 437b27ce8435b..b7bdf8632164d 100644
--- a/pkgs/development/tools/goimports-reviser/default.nix
+++ b/pkgs/development/tools/goimports-reviser/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "goimports-reviser";
-  version = "3.6.4";
+  version = "3.6.5";
 
   src = fetchFromGitHub {
     owner = "incu6us";
     repo = "goimports-reviser";
     rev = "v${version}";
-    hash = "sha256-+GVC/qJnqWm5tsn2Y5BPafapp7ct9kqHWlDNxukEZsM=";
+    hash = "sha256-46s6A1sGqoJR3XihaCkVCxTpManl330mMcJ8hv66zDc=";
   };
   vendorHash = "sha256-z+FeAXPXKi653im2X2WOP1R9gRl/x7UBnndoEXoxdwA=";
 
diff --git a/pkgs/development/tools/gojq/default.nix b/pkgs/development/tools/gojq/default.nix
index 8d8ad98481bac..8a573665b4b82 100644
--- a/pkgs/development/tools/gojq/default.nix
+++ b/pkgs/development/tools/gojq/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gojq";
-  version = "0.12.15";
+  version = "0.12.16";
 
   src = fetchFromGitHub {
     owner = "itchyny";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-2Og1Ek8Hnzd4KTgJurWtPaqm0W6ruoJ1RN2G+l/5yIY=";
+    hash = "sha256-lCNh0J0vVvSJaNE9fu3X83YRZlWHOI4rQwmrGJDQWzk=";
   };
 
-  vendorHash = "sha256-tZB52w15MpAO3UnrDkhmL1M3EIcm/QwrPy9gvJycuD0=";
+  vendorHash = "sha256-ZC0byawZLBwId5GcAgHXRdEOMUSAv4wDNHFHLrbhB+I=";
 
   ldflags = [ "-s" "-w" ];
 
diff --git a/pkgs/development/tools/golangci-lint/default.nix b/pkgs/development/tools/golangci-lint/default.nix
index c4210b1f37381..88194442e8dac 100644
--- a/pkgs/development/tools/golangci-lint/default.nix
+++ b/pkgs/development/tools/golangci-lint/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "golangci-lint";
-  version = "1.58.2";
+  version = "1.59.1";
 
   src = fetchFromGitHub {
     owner = "golangci";
     repo = "golangci-lint";
     rev = "v${version}";
-    hash = "sha256-LVkBIoRzmGQ6aJTOEyW51pdPqi7YOvuuAnaQwm0Fuyw=";
+    hash = "sha256-VFU/qGyKBMYr0wtHXyaMjS5fXKAHWe99wDZuSyH8opg=";
   };
 
-  vendorHash = "sha256-BqNBglFoQQHhXIlI0UYerz0JLKmIzjjwqg2NYIeE14E=";
+  vendorHash = "sha256-yYwYISK1wM/mSlAcDSIwYRo8sRWgw2u+SsvgjH+Z/7M=";
 
   subPackages = [ "cmd/golangci-lint" ];
 
diff --git a/pkgs/development/tools/golines/default.nix b/pkgs/development/tools/golines/default.nix
index 68ee00ecb638a..da6c887d43bb2 100644
--- a/pkgs/development/tools/golines/default.nix
+++ b/pkgs/development/tools/golines/default.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
   vendorHash = "sha256-jI3/m1UdZMKrS3H9jPhcVAUCjc1G/ejzHi9SCTy24ak=";
 
   meta = with lib; {
-    description = "A golang formatter that fixes long lines";
+    description = "Golang formatter that fixes long lines";
     homepage = "https://github.com/segmentio/golines";
     license = licenses.mit;
     maintainers = with maintainers; [ meain ];
diff --git a/pkgs/development/tools/gomplate/default.nix b/pkgs/development/tools/gomplate/default.nix
index 9be7b5a87fc7d..c8deb9292d464 100644
--- a/pkgs/development/tools/gomplate/default.nix
+++ b/pkgs/development/tools/gomplate/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "gomplate";
-  version = "3.11.7";
+  version = "3.11.8";
 
   src = fetchFromGitHub {
     owner = "hairyhenderson";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-0cYQ44SF8fQ5Ml0tRUbqTFZ+zDVTV6elox1q6tNsG7Q=";
+    hash = "sha256-pE9TLEBY1KQvgMFwVJfn5kojESqZURcbCwRt4jrexhk=";
   };
 
-  vendorHash = "sha256-8siITXKIqDbph/74aBEvkbLVqHE30VyRompFL6z92zA=";
+  vendorHash = "sha256-09QUEudbWnO11iwJafF9zoYqbTr7SVBUiPWTHGnZ06Q=";
 
   postPatch = ''
     # some tests require network access
@@ -38,7 +38,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "A flexible commandline tool for template rendering";
+    description = "Flexible commandline tool for template rendering";
     mainProgram = "gomplate";
     homepage = "https://gomplate.ca/";
     changelog = "https://github.com/hairyhenderson/gomplate/releases/tag/v${version}";
diff --git a/pkgs/development/tools/goperf/default.nix b/pkgs/development/tools/goperf/default.nix
index ffb644aaea40a..f49859dd0db29 100644
--- a/pkgs/development/tools/goperf/default.nix
+++ b/pkgs/development/tools/goperf/default.nix
@@ -8,15 +8,15 @@
 
 buildGoModule rec {
   pname = "goperf";
-  version = "0-unstable-2023-11-08";
+  version = "0-unstable-2024-06-04";
 
   src = fetchgit {
     url = "https://go.googlesource.com/perf";
-    rev = "cb71e802ccb878a069712546879bf26489f0f300";
-    hash = "sha256-1NvrelLsy9lrepttXXnggc0oycC6EgJgU80iXDu3IoI=";
+    rev = "3b48cf0e01640b30e676c2d0ffe23b85992be961";
+    hash = "sha256-QOTTBc0pxVU2wf1BJt2GiTs28AuMlrjJ50J47EmQt+U=";
   };
 
-  vendorHash = "sha256-dJQHqIR6v0yYbxplytkdA98IHtdxnsvi9X6kIESCsB8=";
+  vendorHash = "sha256-O1FxOtRcg4zM2X1YcVFBsy1OsRMZXmAT0ZmGWmCn81g=";
 
   passthru.updateScript = writeShellScript "update-goperf" ''
     export UPDATE_NIX_ATTR_PATH=goperf
diff --git a/pkgs/development/tools/gops/default.nix b/pkgs/development/tools/gops/default.nix
index 853be3e71caa2..3c1f5e2ac5ccb 100644
--- a/pkgs/development/tools/gops/default.nix
+++ b/pkgs/development/tools/gops/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   preCheck = "export HOME=$(mktemp -d)";
 
   meta = with lib; {
-    description = "A tool to list and diagnose Go processes currently running on your system";
+    description = "Tool to list and diagnose Go processes currently running on your system";
     mainProgram = "gops";
     homepage = "https://github.com/google/gops";
     license = licenses.bsd3;
diff --git a/pkgs/development/tools/gotestsum/default.nix b/pkgs/development/tools/gotestsum/default.nix
index 5ab4caa621f9a..5bb515592e57e 100644
--- a/pkgs/development/tools/gotestsum/default.nix
+++ b/pkgs/development/tools/gotestsum/default.nix
@@ -32,7 +32,7 @@ buildGoModule {
   meta = {
     homepage = "https://github.com/gotestyourself/gotestsum";
     changelog = "https://github.com/gotestyourself/gotestsum/releases/tag/v${version}";
-    description = "A human friendly `go test` runner";
+    description = "Human friendly `go test` runner";
     mainProgram = "gotestsum";
     platforms = with lib.platforms; linux ++ darwin;
     license = lib.licenses.asl20;
diff --git a/pkgs/development/tools/gotools/default.nix b/pkgs/development/tools/gotools/default.nix
index d0affbabdbc72..ef4a608fcbc41 100644
--- a/pkgs/development/tools/gotools/default.nix
+++ b/pkgs/development/tools/gotools/default.nix
@@ -2,25 +2,23 @@
 
 buildGoModule rec {
   pname = "gotools";
-  version = "0.18.0";
+  version = "0.22.0";
 
   # using GitHub instead of https://go.googlesource.com/tools because Gitiles UI is to basic to browse
   src = fetchFromGitHub {
     owner = "golang";
     repo = "tools";
     rev = "v${version}";
-    hash = "sha256-sOT98DdLYtPXovpcX020BbLSH99ByJSaVQeM10IcKG4=";
+    hash = "sha256-qqzvbHFbm6RlqztBnuj7HvMa9Wff1+YUA0fxiM0cx8o=";
   };
 
   postPatch = ''
     # The gopls folder contains a Go submodule which causes a build failure
     # and lives in its own package named gopls.
     rm -r gopls
-    # getgo is an experimental go installer which adds generic named server and client binaries to $out/bin
-    rm -r cmd/getgo
   '';
 
-  vendorHash = "sha256-gGAEl3yabXy1qbuBJyrpD+TRrKr56cZEOiSaBoBsYc8=";
+  vendorHash = "sha256-eQ/T/Zxmzn6KF0ewjvt9TDd48RSsSbQ3LgVcKgdeVbU=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/gotraceui/default.nix b/pkgs/development/tools/gotraceui/default.nix
index 8f1bbb6a601e8..30236dd5e2254 100644
--- a/pkgs/development/tools/gotraceui/default.nix
+++ b/pkgs/development/tools/gotraceui/default.nix
@@ -36,7 +36,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "An efficient frontend for Go execution traces";
+    description = "Efficient frontend for Go execution traces";
     mainProgram = "gotraceui";
     homepage = "https://github.com/dominikh/gotraceui";
     platforms = platforms.linux;
diff --git a/pkgs/development/tools/govers/default.nix b/pkgs/development/tools/govers/default.nix
deleted file mode 100644
index dbcb38e08e18d..0000000000000
--- a/pkgs/development/tools/govers/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
-
-buildGoPackage rec {
-  pname = "govers";
-  version = "unstable-2016-06-23";
-
-  goPackagePath = "github.com/rogpeppe/govers";
-
-  src = fetchFromGitHub {
-    owner = "rogpeppe";
-    repo = "govers";
-    rev = "77fd787551fc5e7ae30696e009e334d52d2d3a43";
-    sha256 = "sha256-lpc8wFKAB+A8mBm9q3qNzTM8ktFS1MYdIvZVFP0eiIs=";
-  };
-
-  dontRenameImports = true;
-
-  doCheck = false; # fails, silently
-
-  meta.mainProgram = "govers";
-}
diff --git a/pkgs/development/tools/gox/default.nix b/pkgs/development/tools/gox/default.nix
index f36c546a1fe56..e1ba5d9bb743f 100644
--- a/pkgs/development/tools/gox/default.nix
+++ b/pkgs/development/tools/gox/default.nix
@@ -29,7 +29,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/mitchellh/gox";
-    description = "A dead simple, no frills Go cross compile tool";
+    description = "Dead simple, no frills Go cross compile tool";
     mainProgram = "gox";
     license = licenses.mpl20;
     maintainers = with maintainers; [ azahi ];
diff --git a/pkgs/development/tools/gptcommit/default.nix b/pkgs/development/tools/gptcommit/default.nix
index 2d5251a4126c8..5da71c7bc1c9b 100644
--- a/pkgs/development/tools/gptcommit/default.nix
+++ b/pkgs/development/tools/gptcommit/default.nix
@@ -38,7 +38,7 @@ rustPlatform.buildRustPackage {
   };
 
   meta = with lib; {
-    description = "A git prepare-commit-msg hook for authoring commit messages with GPT-3. ";
+    description = "Git prepare-commit-msg hook for authoring commit messages with GPT-3. ";
     mainProgram = "gptcommit";
     homepage = "https://github.com/zurawiki/gptcommit";
     license = with licenses; [ asl20 ];
diff --git a/pkgs/development/tools/graphql-client/default.nix b/pkgs/development/tools/graphql-client/default.nix
index 428ebf9080da9..05b49c7a03ff6 100644
--- a/pkgs/development/tools/graphql-client/default.nix
+++ b/pkgs/development/tools/graphql-client/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
   ] ++ lib.optionals stdenv.isDarwin [ Security ];
 
   meta = with lib; {
-    description = "A GraphQL tool for Rust projects";
+    description = "GraphQL tool for Rust projects";
     mainProgram = "graphql-client";
     homepage = "https://github.com/graphql-rust/graphql-client";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/pkgs/development/tools/gtk-mac-bundler/default.nix b/pkgs/development/tools/gtk-mac-bundler/default.nix
index 3a6c2619d6e87..a94534a9cb32f 100644
--- a/pkgs/development/tools/gtk-mac-bundler/default.nix
+++ b/pkgs/development/tools/gtk-mac-bundler/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "a helper script that creates application bundles form GTK executables for macOS";
+    description = "Helper script that creates application bundles form GTK executables for macOS";
     maintainers = [ maintainers.matthewbauer ];
     platforms = platforms.darwin;
     homepage = "https://gitlab.gnome.org/GNOME/gtk-mac-bundler";
diff --git a/pkgs/development/tools/guile/g-wrap/default.nix b/pkgs/development/tools/guile/g-wrap/default.nix
index 30aa5d12a849a..83028d8fb2e24 100644
--- a/pkgs/development/tools/guile/g-wrap/default.nix
+++ b/pkgs/development/tools/guile/g-wrap/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A wrapper generator for Guile";
+    description = "Wrapper generator for Guile";
     mainProgram = "g-wrap-config";
     longDescription = ''
       G-Wrap is a tool (and Guile library) for generating function wrappers for
diff --git a/pkgs/development/tools/haskell/mueval/default.nix b/pkgs/development/tools/haskell/mueval/default.nix
index 48144b038c98f..f763c69c3737b 100644
--- a/pkgs/development/tools/haskell/mueval/default.nix
+++ b/pkgs/development/tools/haskell/mueval/default.nix
@@ -29,12 +29,6 @@ in stdenv.mkDerivation {
     runHook postBuild
   '';
 
-  doCheck = true;
-
-  checkPhase = ''
-    [[ $($out/bin/mueval -e 42) == 42 ]]
-  '';
-
   passthru = { inherit defaultPkgs; };
   meta.mainProgram = "mueval";
 }
diff --git a/pkgs/development/tools/hclfmt/default.nix b/pkgs/development/tools/hclfmt/default.nix
index 07c4979ada517..730d44272b325 100644
--- a/pkgs/development/tools/hclfmt/default.nix
+++ b/pkgs/development/tools/hclfmt/default.nix
@@ -2,23 +2,23 @@
 
 buildGoModule rec {
   pname = "hclfmt";
-  version = "2.20.1";
+  version = "2.21.0";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "hcl";
     rev = "v${version}";
-    hash = "sha256-+4K6k32azx/66eag9c6lUN8TUJ1ICx4Q8zpnTJWqgQ0=";
+    hash = "sha256-izbctn5OqaDunQLovgCGTgqMzC9i227zXlXUNCEExvA=";
   };
 
-  vendorHash = "sha256-L5OabeDUXbrwFOgWRhi9FPTWK+xbL54ZM7cYhS15Jis=";
+  vendorHash = "sha256-F2i7ph9GL9Xo43da6jHPn9P9FdWC6eSgqCyHPBxdFJY=";
 
   # The code repository includes other tools which are not useful. Only build
   # hclfmt.
   subPackages = [ "cmd/hclfmt" ];
 
   meta = with lib; {
-    description = "a code formatter for the Hashicorp Configuration Language (HCL) format";
+    description = "Code formatter for the Hashicorp Configuration Language (HCL) format";
     homepage = "https://github.com/hashicorp/hcl/tree/main/cmd/hclfmt";
     license = licenses.mpl20;
     mainProgram = "hclfmt";
diff --git a/pkgs/development/tools/hcloud/default.nix b/pkgs/development/tools/hcloud/default.nix
index f59340ae2e622..ac1704eecd617 100644
--- a/pkgs/development/tools/hcloud/default.nix
+++ b/pkgs/development/tools/hcloud/default.nix
@@ -34,7 +34,7 @@ buildGoModule rec {
 
   meta = with lib; {
     changelog = "https://github.com/hetznercloud/cli/releases/tag/v${version}";
-    description = "A command-line interface for Hetzner Cloud, a provider for cloud virtual private servers";
+    description = "Command-line interface for Hetzner Cloud, a provider for cloud virtual private servers";
     mainProgram = "hcloud";
     homepage = "https://github.com/hetznercloud/cli";
     license = licenses.mit;
diff --git a/pkgs/development/tools/hobbes/default.nix b/pkgs/development/tools/hobbes/default.nix
index 851d64545d8f6..d4a76bf29183e 100644
--- a/pkgs/development/tools/hobbes/default.nix
+++ b/pkgs/development/tools/hobbes/default.nix
@@ -59,7 +59,7 @@ llvmPackages.stdenv.mkDerivation {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A language and an embedded JIT compiler";
+    description = "Language and an embedded JIT compiler";
     longDescription = ''
       Hobbes is a a language, embedded compiler, and runtime for efficient
       dynamic expression evaluation, data storage and analysis.
diff --git a/pkgs/development/tools/hostess/default.nix b/pkgs/development/tools/hostess/default.nix
index f15f67e3b7cb5..efc849f0651d9 100644
--- a/pkgs/development/tools/hostess/default.nix
+++ b/pkgs/development/tools/hostess/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   vendorHash = null;
 
   meta = with lib; {
-    description = "An idempotent command-line utility for managing your /etc/hosts* file.";
+    description = "Idempotent command-line utility for managing your /etc/hosts* file";
     mainProgram = "hostess";
     license = licenses.mit;
     maintainers = with maintainers; [ edlimerkaj ];
diff --git a/pkgs/development/tools/hotdoc/default.nix b/pkgs/development/tools/hotdoc/default.nix
index 4f58f961b9f84..1bf0321b4378b 100644
--- a/pkgs/development/tools/hotdoc/default.nix
+++ b/pkgs/development/tools/hotdoc/default.nix
@@ -118,7 +118,7 @@ buildPythonApplication rec {
   };
 
   meta = with lib; {
-    description = "The tastiest API documentation system";
+    description = "Tastiest API documentation system";
     homepage = "https://hotdoc.github.io/";
     license = [ licenses.lgpl21Plus ];
     maintainers = with maintainers; [ lilyinstarlight ];
diff --git a/pkgs/development/tools/hover/default.nix b/pkgs/development/tools/hover/default.nix
index dfaa976aa9e08..86630d33cea36 100644
--- a/pkgs/development/tools/hover/default.nix
+++ b/pkgs/development/tools/hover/default.nix
@@ -37,7 +37,7 @@ let
     inherit pname version;
 
     meta = with lib; {
-      description = "A build tool to run Flutter applications on desktop";
+      description = "Build tool to run Flutter applications on desktop";
       homepage = "https://github.com/go-flutter-desktop/hover";
       license = licenses.bsd3;
       platforms = platforms.linux;
@@ -85,7 +85,7 @@ let
 
 in
 buildFHSEnv rec {
-  name = pname;
+  inherit pname version;
   targetPkgs = pkgs: [
     binutils
     dejavu_fonts
diff --git a/pkgs/development/tools/hred/default.nix b/pkgs/development/tools/hred/default.nix
index 040035dbe0dc4..8de5ec2a5f636 100644
--- a/pkgs/development/tools/hred/default.nix
+++ b/pkgs/development/tools/hred/default.nix
@@ -24,7 +24,7 @@ buildNpmPackage rec {
   };
 
   meta = {
-    description = "A command-line tool to extract data from HTML";
+    description = "Command-line tool to extract data from HTML";
     mainProgram = "hred";
     license = lib.licenses.mit;
     homepage = "https://github.com/danburzo/hred";
diff --git a/pkgs/development/tools/inferno/default.nix b/pkgs/development/tools/inferno/default.nix
index d9490abad536e..4e8351cb4ddfa 100644
--- a/pkgs/development/tools/inferno/default.nix
+++ b/pkgs/development/tools/inferno/default.nix
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A port of parts of the flamegraph toolkit to Rust";
+    description = "Port of parts of the flamegraph toolkit to Rust";
     homepage = "https://github.com/jonhoo/inferno";
     changelog = "https://github.com/jonhoo/inferno/blob/v${version}/CHANGELOG.md";
     license = licenses.cddl;
diff --git a/pkgs/development/tools/infisical/default.nix b/pkgs/development/tools/infisical/default.nix
index e7408f87efbb0..f9fff4461a253 100644
--- a/pkgs/development/tools/infisical/default.nix
+++ b/pkgs/development/tools/infisical/default.nix
@@ -15,7 +15,7 @@ let
   buildHashes = builtins.fromJSON (builtins.readFile ./hashes.json);
 
   # the version of infisical
-  version = "0.22.2";
+  version = "0.22.3";
 
   # the platform-specific, statically linked binary
   src =
@@ -67,7 +67,7 @@ stdenv.mkDerivation {
   };
 
   meta = with lib; {
-    description = "The official Infisical CLI";
+    description = "Official Infisical CLI";
     longDescription = ''
       Infisical is the open-source secret management platform:
       Sync secrets across your team/infrastructure and prevent secret leaks.
diff --git a/pkgs/development/tools/infisical/hashes.json b/pkgs/development/tools/infisical/hashes.json
index a044c5f196cad..bcbc0cbc511ea 100644
--- a/pkgs/development/tools/infisical/hashes.json
+++ b/pkgs/development/tools/infisical/hashes.json
@@ -1,6 +1,6 @@
 { "_comment": "@generated by pkgs/development/tools/infisical/update.sh"
-, "x86_64-linux": "sha256-oRRkv0x43qhRzsTwcP9855kAOigfn13WPAGj7Izcm3Y="
-, "x86_64-darwin": "sha256-G7vokhMq4w781MkxeYTolc2ATFOwGLJeZ4XIS0E1h5s="
-, "aarch64-linux": "sha256-JXzTAfSNFPlxM3/vm+mMd8poT80b6XpZXXLShsGHGnY="
-, "aarch64-darwin": "sha256-bMw39FsL4tjAF/O/Y7Xg2pxVOW64qXLPbDjau8gonY0="
+, "x86_64-linux": "sha256-cju3d8/V0kF1U7IGvcdQiEbP4YX/xqy+TConpXEAreY="
+, "x86_64-darwin": "sha256-EMjAjpNaiH5Z9WpqFs/bnWlp7XteZXVdK/1pcIRzWHY="
+, "aarch64-linux": "sha256-3iIVSnEIfko6kzwC5glLgM5uUW36fIBltBQ/6FZZb4U="
+, "aarch64-darwin": "sha256-jozMvcYNzp+4xO+NI6rs/FRsurS8IZ8d54iqXmkKguA="
 }
diff --git a/pkgs/development/tools/initool/default.nix b/pkgs/development/tools/initool/default.nix
index e71860eb8d7a5..1b3c3f05eac94 100644
--- a/pkgs/development/tools/initool/default.nix
+++ b/pkgs/development/tools/initool/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "initool";
-  version = "0.15.0";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "dbohdan";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-QUCI3E04ggmFORUTYtwdwVJNnbuLwXI2OGwdg5/Ges4=";
+    hash = "sha256-f426yzSYcrhd0MOZc5vDg4T4m/RdWzTz/KPzb65h03U=";
   };
 
   nativeBuildInputs = [ mlton ];
diff --git a/pkgs/development/tools/irony-server/default.nix b/pkgs/development/tools/irony-server/default.nix
index d3c0818a829c5..62b44214adcfa 100644
--- a/pkgs/development/tools/irony-server/default.nix
+++ b/pkgs/development/tools/irony-server/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
   cmakeDir = "server";
 
   meta = with lib; {
-    description = "The server part of irony";
+    description = "Server part of irony";
     mainProgram = "irony-server";
     homepage = "https://melpa.org/#/irony";
     maintainers = [ maintainers.deepfire ];
diff --git a/pkgs/development/tools/jaq/default.nix b/pkgs/development/tools/jaq/default.nix
index b95473aac7452..fd1604f0c2167 100644
--- a/pkgs/development/tools/jaq/default.nix
+++ b/pkgs/development/tools/jaq/default.nix
@@ -7,23 +7,23 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "jaq";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "01mf02";
     repo = "jaq";
     rev = "v${version}";
-    hash = "sha256-QXlHiVlKx9qmW5Cw4IGzjuUSUfoc9IvA5ZkTc1Ev37Q=";
+    hash = "sha256-6HqZBJeUaYykTZLSrqQN0Rt6rvnvzb53T56oy06wIUw=";
   };
 
-  cargoHash = "sha256-9fv8Z9AE9GV/Bq+iAsxUkD/CS25/kOBKKS4SAke/tFk=";
+  cargoHash = "sha256-Zais+yGfrzxKrKA4uAG65uzhamnuYxQEKkIaeiOlcLQ=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Security
   ];
 
   meta = with lib; {
-    description = "A jq clone focused on correctness, speed and simplicity";
+    description = "Jq clone focused on correctness, speed and simplicity";
     homepage = "https://github.com/01mf02/jaq";
     changelog = "https://github.com/01mf02/jaq/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/development/tools/java/java-language-server/default.nix b/pkgs/development/tools/java/java-language-server/default.nix
index 0cca4d4ca56ed..b0cc4df31ab9b 100644
--- a/pkgs/development/tools/java/java-language-server/default.nix
+++ b/pkgs/development/tools/java/java-language-server/default.nix
@@ -23,7 +23,6 @@ maven.buildMavenPackage rec {
   };
 
   mvnFetchExtraArgs.dontConfigure = true;
-  mvnParameters = "-DskipTests";
   mvnHash = "sha256-2uthmSjFQ43N5lgV11DsxuGce+ZptZsmRLTgjDo0M2w=";
 
   nativeBuildInputs = [ jdk makeWrapper ];
@@ -39,6 +38,8 @@ maven.buildMavenPackage rec {
       --compress 2
   '';
 
+  doCheck = false;
+
   installPhase = ''
     runHook preInstall
 
@@ -52,7 +53,7 @@ maven.buildMavenPackage rec {
   '';
 
   meta = with lib; {
-    description = "A Java language server based on v3.0 of the protocol and implemented using the Java compiler API";
+    description = "Java language server based on v3.0 of the protocol and implemented using the Java compiler API";
     mainProgram = "java-language-server";
     homepage = "https://github.com/georgewfraser/java-language-server";
     license = licenses.mit;
diff --git a/pkgs/development/tools/java/visualvm/default.nix b/pkgs/development/tools/java/visualvm/default.nix
index 5346e82095d1d..c7207a686ca7a 100644
--- a/pkgs/development/tools/java/visualvm/default.nix
+++ b/pkgs/development/tools/java/visualvm/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A visual interface for viewing information about Java applications";
+    description = "Visual interface for viewing information about Java applications";
     mainProgram = "visualvm";
     longDescription = ''
       VisualVM is a visual tool integrating several commandline JDK
diff --git a/pkgs/development/tools/jazzy/default.nix b/pkgs/development/tools/jazzy/default.nix
index a0561040704cf..fc5cd68217ed7 100644
--- a/pkgs/development/tools/jazzy/default.nix
+++ b/pkgs/development/tools/jazzy/default.nix
@@ -8,7 +8,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "jazzy";
 
   meta = with lib; {
-    description     = "A command-line utility that generates documentation for Swift or Objective-C";
+    description     = "Command-line utility that generates documentation for Swift or Objective-C";
     homepage        = "https://github.com/realm/jazzy";
     license         = licenses.mit;
     platforms       = platforms.darwin;
diff --git a/pkgs/development/tools/jbang/default.nix b/pkgs/development/tools/jbang/default.nix
index a21d26def2c30..e76caa4c58d8b 100644
--- a/pkgs/development/tools/jbang/default.nix
+++ b/pkgs/development/tools/jbang/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     cp -r . $out
     wrapProgram $out/bin/jbang \
       --set JAVA_HOME ${jdk} \
-      --set PATH ${lib.makeBinPath [ coreutils jdk curl ]}
+      --set PATH ${lib.makeBinPath [ (placeholder "out") coreutils jdk curl ]}
     runHook postInstall
   '';
 
diff --git a/pkgs/development/tools/jf/default.nix b/pkgs/development/tools/jf/default.nix
index 2c32a888f34e1..71d0d806337ee 100644
--- a/pkgs/development/tools/jf/default.nix
+++ b/pkgs/development/tools/jf/default.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A small utility to safely format and print JSON objects in the commandline";
+    description = "Small utility to safely format and print JSON objects in the commandline";
     mainProgram = "jf";
     homepage = "https://github.com/sayanarijit/jf";
     license = licenses.mit;
diff --git a/pkgs/development/tools/jid/default.nix b/pkgs/development/tools/jid/default.nix
index cecb179c467ec..036224f86dd0e 100644
--- a/pkgs/development/tools/jid/default.nix
+++ b/pkgs/development/tools/jid/default.nix
@@ -26,7 +26,7 @@ buildGoModule rec {
   };
 
   meta = {
-    description = "A command-line tool to incrementally drill down JSON";
+    description = "Command-line tool to incrementally drill down JSON";
     mainProgram = "jid";
     homepage = "https://github.com/simeji/jid";
     license = lib.licenses.mit;
diff --git a/pkgs/development/tools/jless/default.nix b/pkgs/development/tools/jless/default.nix
index a07db6781ef34..e704ec994eed2 100644
--- a/pkgs/development/tools/jless/default.nix
+++ b/pkgs/development/tools/jless/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
     ++ lib.optionals stdenv.isLinux [ libxcb ];
 
   meta = with lib; {
-    description = "A command-line pager for JSON data";
+    description = "Command-line pager for JSON data";
     mainProgram = "jless";
     homepage = "https://jless.io";
     changelog = "https://github.com/PaulJuliusMartinez/jless/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/development/tools/jmespath/default.nix b/pkgs/development/tools/jmespath/default.nix
index 5ec6120f01cda..26f90e8602a54 100644
--- a/pkgs/development/tools/jmespath/default.nix
+++ b/pkgs/development/tools/jmespath/default.nix
@@ -20,7 +20,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "A JMESPath implementation in Go";
+    description = "JMESPath implementation in Go";
     homepage = "https://github.com/jmespath/go-jmespath";
     license = licenses.asl20;
     maintainers = with maintainers; [ cransom ];
diff --git a/pkgs/development/tools/jo/default.nix b/pkgs/development/tools/jo/default.nix
index 06c4fa6477ff4..500bab51baada 100644
--- a/pkgs/development/tools/jo/default.nix
+++ b/pkgs/development/tools/jo/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook pandoc pkg-config ];
 
   meta = with lib; {
-    description = "A small utility to create JSON objects";
+    description = "Small utility to create JSON objects";
     homepage = "https://github.com/jpmens/jo";
     mainProgram = "jo";
     license = licenses.gpl2Plus;
diff --git a/pkgs/development/tools/jp/default.nix b/pkgs/development/tools/jp/default.nix
index 7c59234f6f937..8a44f0acade1f 100644
--- a/pkgs/development/tools/jp/default.nix
+++ b/pkgs/development/tools/jp/default.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
   vendorHash = "sha256-K6ZNtART7tcVBH5myV6vKrKWfnwK8yTa6/KK4QLyr00=";
 
   meta = with lib; {
-    description = "A command line interface to the JMESPath expression language for JSON";
+    description = "Command line interface to the JMESPath expression language for JSON";
     mainProgram = "jp";
     homepage = "https://github.com/jmespath/jp";
     maintainers = with maintainers; [ cransom ];
diff --git a/pkgs/development/tools/jq/default.nix b/pkgs/development/tools/jq/default.nix
index 432fe6826bd73..32c131cf78595 100644
--- a/pkgs/development/tools/jq/default.nix
+++ b/pkgs/development/tools/jq/default.nix
@@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
   passthru = { inherit onigurumaSupport; };
 
   meta = with lib; {
-    description = "A lightweight and flexible command-line JSON processor";
+    description = "Lightweight and flexible command-line JSON processor";
     homepage = "https://jqlang.github.io/jq/";
     license = licenses.mit;
     maintainers = with maintainers; [ raskin artturin ncfavier ];
diff --git a/pkgs/development/tools/jql/default.nix b/pkgs/development/tools/jql/default.nix
index 95c0ff65e57dc..42e29ee653eb1 100644
--- a/pkgs/development/tools/jql/default.nix
+++ b/pkgs/development/tools/jql/default.nix
@@ -5,19 +5,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "jql";
-  version = "7.1.8";
+  version = "7.1.11";
 
   src = fetchFromGitHub {
     owner = "yamafaktory";
     repo = pname;
     rev = "jql-v${version}";
-    hash = "sha256-TjpbFX7k4coZH8IY4bygLwj8Z4JLQQ9yUqOmmr7NU9s=";
+    hash = "sha256-gXxYN6WIbQNhFTCcrT6Kioo0FjbJM5gxHTjAK71LMjs=";
   };
 
-  cargoHash = "sha256-7mzmaXeYZGtUjefC7Zo8wOArBuus7mfu6AaKE4tS5HE=";
+  cargoHash = "sha256-bz8iAgdRxTQyZJsTVVwIpiC/ktas4Sv/S7PCqQ+/HDY=";
 
   meta = with lib; {
-    description = "A JSON Query Language CLI tool built with Rust";
+    description = "JSON Query Language CLI tool built with Rust";
     homepage = "https://github.com/yamafaktory/jql";
     changelog = "https://github.com/yamafaktory/jql/releases/tag/${src.rev}";
     license = with licenses; [ asl20 mit ];
diff --git a/pkgs/development/tools/jqp/default.nix b/pkgs/development/tools/jqp/default.nix
index ab99341c1a96a..22fee1b4ee98f 100644
--- a/pkgs/development/tools/jqp/default.nix
+++ b/pkgs/development/tools/jqp/default.nix
@@ -5,21 +5,21 @@
 
 buildGoModule rec {
   pname = "jqp";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "noahgorstein";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-zcv6fYrqPp/IMg4ivqJtlJwOs2M5E8niWoIOXYiEZuA=";
+    sha256 = "sha256-i22qALVa8EUaTwgN6DocGJArNyOvkQbFuH++EQKBuIc=";
   };
 
-  vendorHash = "sha256-c+TZGLaUomlykIU4aN7awUp4kpIEoGOkkbvIC6ok7h4=";
+  vendorHash = "sha256-GbY0x4BgV0+QdVMkITLF/W//oO72FbjV6lNJRm6ecys=";
 
   subPackages = [ "." ];
 
   meta = with lib; {
-    description = "A TUI playground to experiment with jq";
+    description = "TUI playground to experiment with jq";
     mainProgram = "jqp";
     homepage = "https://github.com/noahgorstein/jqp";
     license = licenses.mit;
diff --git a/pkgs/development/tools/jsonnet-bundler/default.nix b/pkgs/development/tools/jsonnet-bundler/default.nix
index 256d90fd76522..59981ddd95cb6 100644
--- a/pkgs/development/tools/jsonnet-bundler/default.nix
+++ b/pkgs/development/tools/jsonnet-bundler/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" "-X main.Version=${version}" ];
 
   meta = with lib; {
-    description = "A jsonnet package manager";
+    description = "Jsonnet package manager";
     homepage = "https://github.com/jsonnet-bundler/jsonnet-bundler";
     license = licenses.asl20;
     maintainers = with maintainers; [ preisschild ];
diff --git a/pkgs/development/tools/k6/default.nix b/pkgs/development/tools/k6/default.nix
index 246cccbf3b080..af08a7dfa43de 100644
--- a/pkgs/development/tools/k6/default.nix
+++ b/pkgs/development/tools/k6/default.nix
@@ -30,7 +30,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A modern load testing tool, using Go and JavaScript";
+    description = "Modern load testing tool, using Go and JavaScript";
     mainProgram = "k6";
     homepage = "https://k6.io/";
     changelog = "https://github.com/grafana/k6/releases/tag/v${version}";
diff --git a/pkgs/development/tools/kafka-delta-ingest/default.nix b/pkgs/development/tools/kafka-delta-ingest/default.nix
index 2af697dac6886..cffc417d7cb98 100644
--- a/pkgs/development/tools/kafka-delta-ingest/default.nix
+++ b/pkgs/development/tools/kafka-delta-ingest/default.nix
@@ -43,7 +43,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A highly efficient daemon for streaming data from Kafka into Delta Lake";
+    description = "Highly efficient daemon for streaming data from Kafka into Delta Lake";
     mainProgram = "kafka-delta-ingest";
     homepage = "https://github.com/delta-io/kafka-delta-ingest";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/kcat/default.nix b/pkgs/development/tools/kcat/default.nix
index 8ece67da031e2..f3bd6a8555b63 100644
--- a/pkgs/development/tools/kcat/default.nix
+++ b/pkgs/development/tools/kcat/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ zlib rdkafka yajl avro-c libserdes ];
 
   meta = with lib; {
-    description = "A generic non-JVM producer and consumer for Apache Kafka";
+    description = "Generic non-JVM producer and consumer for Apache Kafka";
     mainProgram = "kcat";
     homepage = "https://github.com/edenhill/kcat";
     license = licenses.bsd2;
diff --git a/pkgs/development/tools/kcli/default.nix b/pkgs/development/tools/kcli/default.nix
index fa4e887451360..4047b3c296dd6 100644
--- a/pkgs/development/tools/kcli/default.nix
+++ b/pkgs/development/tools/kcli/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   subPackages = [ "." ];
 
   meta = with lib; {
-    description = "A kafka command line browser";
+    description = "Kafka command line browser";
     homepage = "https://github.com/cswank/kcli";
     license = licenses.mit;
     maintainers = with maintainers; [ cswank ];
diff --git a/pkgs/development/tools/kdash/default.nix b/pkgs/development/tools/kdash/default.nix
index 505aead90fd61..d3a23695e065e 100644
--- a/pkgs/development/tools/kdash/default.nix
+++ b/pkgs/development/tools/kdash/default.nix
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-ODQf+Fvil+oBJcM38h1HdrcgtJw0b65f5auLuZtUgik=";
 
   meta = with lib; {
-    description = "A simple and fast dashboard for Kubernetes";
+    description = "Simple and fast dashboard for Kubernetes";
     mainProgram = "kdash";
     homepage = "https://github.com/kdash-rs/kdash";
     license = with licenses; [ mit ];
diff --git a/pkgs/development/tools/knightos/kpack/default.nix b/pkgs/development/tools/knightos/kpack/default.nix
index 5035b064b6554..ee0ac1568614a 100644
--- a/pkgs/development/tools/knightos/kpack/default.nix
+++ b/pkgs/development/tools/knightos/kpack/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage    = "https://knightos.org/";
-    description = "A tool to create or extract KnightOS packages";
+    description = "Tool to create or extract KnightOS packages";
     mainProgram = "kpack";
     license     = licenses.lgpl2Only;
     maintainers = with maintainers; [ siraben ];
diff --git a/pkgs/development/tools/knightos/scas/default.nix b/pkgs/development/tools/knightos/scas/default.nix
index 221c5a0d12d5f..e05953e87ec72 100644
--- a/pkgs/development/tools/knightos/scas/default.nix
+++ b/pkgs/development/tools/knightos/scas/default.nix
@@ -24,6 +24,11 @@ stdenv.mkDerivation rec {
 
   depsBuildBuild = lib.optionals isCrossCompiling [ buildPackages.knightos-scas ];
   nativeBuildInputs = [ asciidoc libxslt.bin cmake ];
+
+  env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isClang [
+    "-Wno-error=implicit-function-declaration"
+  ]);
+
   postInstall = ''
     cd ..
     make DESTDIR=$out install_man
diff --git a/pkgs/development/tools/knightos/z80e/default.nix b/pkgs/development/tools/knightos/z80e/default.nix
index b8aa281d413db..41c5e5ca9be8b 100644
--- a/pkgs/development/tools/knightos/z80e/default.nix
+++ b/pkgs/development/tools/knightos/z80e/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage    = "https://knightos.org/";
-    description = "A Z80 calculator emulator and debugger";
+    description = "Z80 calculator emulator and debugger";
     license     = licenses.mit;
     maintainers = with maintainers; [ siraben ];
     platforms   = platforms.unix;
diff --git a/pkgs/development/tools/konstraint/default.nix b/pkgs/development/tools/konstraint/default.nix
index 259b4063a1401..f2f9e03404819 100644
--- a/pkgs/development/tools/konstraint/default.nix
+++ b/pkgs/development/tools/konstraint/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "konstraint";
-  version = "0.36.0";
+  version = "0.37.0";
 
   src = fetchFromGitHub {
     owner = "plexsystems";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-GQ79xsvlRDwrthtYgykwAJLP9rkk5iNHGelWAQzOZoA=";
+    sha256 = "sha256-poIXY4++nv2bCkcHdZHb0dRa5NVxsw9Vmg7nMVh1ocI=";
   };
-  vendorHash = "sha256-EBlJCcF8UcstaD1ztaAFL4MSfBOYvpeUygzXnQbW8N8=";
+  vendorHash = "sha256-0V8B/w4K3r23tINDfjLAKe5wMpJ+8uiF4nCMr062pb0=";
 
   # Exclude go within .github folder
   excludedPackages = ".github";
@@ -37,7 +37,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/plexsystems/konstraint";
     changelog = "https://github.com/plexsystems/konstraint/releases/tag/v${version}";
-    description = "A policy management tool for interacting with Gatekeeper";
+    description = "Policy management tool for interacting with Gatekeeper";
     mainProgram = "konstraint";
     longDescription = ''
       konstraint is a CLI tool to assist with the creation and management of templates and constraints when using
diff --git a/pkgs/development/tools/krankerl/default.nix b/pkgs/development/tools/krankerl/default.nix
index 0e04733e375e0..bad8a84717906 100644
--- a/pkgs/development/tools/krankerl/default.nix
+++ b/pkgs/development/tools/krankerl/default.nix
@@ -38,7 +38,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A CLI helper to manage, package and publish Nextcloud apps";
+    description = "CLI helper to manage, package and publish Nextcloud apps";
     mainProgram = "krankerl";
     homepage = "https://github.com/ChristophWurst/krankerl";
     license = licenses.gpl3Only;
diff --git a/pkgs/development/tools/krew/default.nix b/pkgs/development/tools/krew/default.nix
index 8fc0570800a97..490fc4b94a76d 100644
--- a/pkgs/development/tools/krew/default.nix
+++ b/pkgs/development/tools/krew/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, makeWrapper, gitMinimal }:
 
 buildGoModule rec {
   pname = "krew";
@@ -15,6 +15,13 @@ buildGoModule rec {
 
   subPackages = [ "cmd/krew" ];
 
+  nativeBuildInputs = [ makeWrapper ];
+
+  postFixup = ''
+    wrapProgram $out/bin/krew \
+      --prefix PATH : ${lib.makeBinPath [ gitMinimal ]}
+  '';
+
   meta = with lib; {
     description = "Package manager for kubectl plugins";
     mainProgram = "krew";
diff --git a/pkgs/development/tools/ktlint/default.nix b/pkgs/development/tools/ktlint/default.nix
index 89039fabfbe3e..904b3a78f10e4 100644
--- a/pkgs/development/tools/ktlint/default.nix
+++ b/pkgs/development/tools/ktlint/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ktlint";
-  version = "1.2.1";
+  version = "1.3.0";
 
   src = fetchurl {
     url = "https://github.com/pinterest/ktlint/releases/download/${version}/ktlint";
-    sha256 = "sha256:14pbjih8gkh5cp9cqpbciml4ba7nvq5vmvivyrmhff3xq93cya1f";
+    sha256 = "sha256-AbLg74kzg6UNvrE5cP5/o742yj6DJZ4BZJlFsJ1zaYU=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An anti-bikeshedding Kotlin linter with built-in formatter";
+    description = "Anti-bikeshedding Kotlin linter with built-in formatter";
     homepage = "https://ktlint.github.io/";
     license = licenses.mit;
     platforms = jre_headless.meta.platforms;
diff --git a/pkgs/development/tools/kube-linter/default.nix b/pkgs/development/tools/kube-linter/default.nix
index c551fec46e870..df0abaac6fa1c 100644
--- a/pkgs/development/tools/kube-linter/default.nix
+++ b/pkgs/development/tools/kube-linter/default.nix
@@ -34,7 +34,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A static analysis tool that checks Kubernetes YAML files and Helm charts";
+    description = "Static analysis tool that checks Kubernetes YAML files and Helm charts";
     homepage = "https://kubelinter.io";
     changelog   = "https://github.com/stackrox/kube-linter/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/kube-prompt/default.nix b/pkgs/development/tools/kube-prompt/default.nix
index cdf2632811fca..b9abf26206eff 100644
--- a/pkgs/development/tools/kube-prompt/default.nix
+++ b/pkgs/development/tools/kube-prompt/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
   vendorHash = "sha256-wou5inOX8vadEBCIBccwSRjtzf0GH1abwNdUu4JBvyM=";
 
   meta = with lib; {
-    description = "An interactive kubernetes client featuring auto-complete";
+    description = "Interactive kubernetes client featuring auto-complete";
     mainProgram = "kube-prompt";
     license = licenses.mit;
     homepage = "https://github.com/c-bata/kube-prompt";
diff --git a/pkgs/development/tools/kubeswitch/default.nix b/pkgs/development/tools/kubeswitch/default.nix
index 470fdac9b3c22..9212f2a1da3fb 100644
--- a/pkgs/development/tools/kubeswitch/default.nix
+++ b/pkgs/development/tools/kubeswitch/default.nix
@@ -43,7 +43,7 @@ buildGoModule rec {
 
   meta = {
     changelog = "https://github.com/danielfoehrKn/kubeswitch/releases/tag/${version}";
-    description = "The kubectx for operators, a drop-in replacement for kubectx";
+    description = "Kubectx for operators, a drop-in replacement for kubectx";
     license = lib.licenses.asl20;
     homepage = "https://github.com/danielfoehrKn/kubeswitch";
     maintainers = with lib.maintainers; [ bryanasdev000 ];
diff --git a/pkgs/development/tools/kustomize/default.nix b/pkgs/development/tools/kustomize/default.nix
index 849c8054b0020..8d364f2d58c5d 100644
--- a/pkgs/development/tools/kustomize/default.nix
+++ b/pkgs/development/tools/kustomize/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "kustomize";
-  version = "5.4.1";
+  version = "5.4.2";
 
   ldflags = let t = "sigs.k8s.io/kustomize/api/provenance"; in
     [
@@ -15,13 +15,13 @@ buildGoModule rec {
     owner = "kubernetes-sigs";
     repo = pname;
     rev = "kustomize/v${version}";
-    hash = "sha256-zt+/CKIIaZxfjfMu9L4/bDc5MmaqeEp3MI/m++GQoEc=";
+    hash = "sha256-cNmDhKRi4pk26vADFMXN6SocdPF1EIYf4wT4fQYgPVc=";
   };
 
   # avoid finding test and development commands
   modRoot = "kustomize";
   proxyVendor = true;
-  vendorHash = "sha256-YxkZ2YlkvMihTYi34lfwpUrmGa4LrrWsP2cpJZY/41A=";
+  vendorHash = "sha256-Nbc3zdVD8KIL80TqdcVNFMowfFsKKIPsEpkwq5fvWAI=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/development/tools/kustomize/kustomize-sops.nix b/pkgs/development/tools/kustomize/kustomize-sops.nix
index adc354d496dee..07cb98726f049 100644
--- a/pkgs/development/tools/kustomize/kustomize-sops.nix
+++ b/pkgs/development/tools/kustomize/kustomize-sops.nix
@@ -22,7 +22,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Flexible Kustomize Plugin for SOPS Encrypted Resource";
+    description = "Flexible Kustomize Plugin for SOPS Encrypted Resource";
     longDescription = ''
       KSOPS can be used to decrypt any Kubernetes resource, but is most commonly
       used to decrypt encrypted Kubernetes Secrets and ConfigMaps.
diff --git a/pkgs/development/tools/kythe/default.nix b/pkgs/development/tools/kythe/default.nix
index 4cac7a0e3b7b4..4129e220ac024 100644
--- a/pkgs/development/tools/kythe/default.nix
+++ b/pkgs/development/tools/kythe/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A pluggable, (mostly) language-agnostic ecosystem for building tools that work with code";
+    description = "Pluggable, (mostly) language-agnostic ecosystem for building tools that work with code";
     longDescription = ''
     The Kythe project was founded to provide and support tools and standards
       that encourage interoperability among programs that manipulate source
diff --git a/pkgs/development/tools/language-servers/beancount-language-server/default.nix b/pkgs/development/tools/language-servers/beancount-language-server/default.nix
index aaebce0891262..6fa51c782e6ec 100644
--- a/pkgs/development/tools/language-servers/beancount-language-server/default.nix
+++ b/pkgs/development/tools/language-servers/beancount-language-server/default.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A Language Server Protocol (LSP) for beancount files";
+    description = "Language Server Protocol (LSP) for beancount files";
     mainProgram = "beancount-language-server";
     homepage = "https://github.com/polarmutex/beancount-language-server";
     license = with licenses; [ mit ];
diff --git a/pkgs/development/tools/language-servers/ccls/default.nix b/pkgs/development/tools/language-servers/ccls/default.nix
index c2e6ed7a0ea54..175d2800e4c7a 100644
--- a/pkgs/development/tools/language-servers/ccls/default.nix
+++ b/pkgs/development/tools/language-servers/ccls/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A c/c++ language server powered by clang";
+    description = "C/c++ language server powered by clang";
     mainProgram = "ccls";
     homepage    = "https://github.com/MaskRay/ccls";
     license     = licenses.asl20;
diff --git a/pkgs/development/tools/language-servers/crystalline/default.nix b/pkgs/development/tools/language-servers/crystalline/default.nix
index ca885985025c9..3687d1fc57a96 100644
--- a/pkgs/development/tools/language-servers/crystalline/default.nix
+++ b/pkgs/development/tools/language-servers/crystalline/default.nix
@@ -40,7 +40,7 @@ crystal.buildCrystalPackage {
   '';
 
   meta = with lib; {
-    description = "A Language Server Protocol implementation for Crystal";
+    description = "Language Server Protocol implementation for Crystal";
     mainProgram = "crystalline";
     homepage = "https://github.com/elbywan/crystalline";
     license = licenses.mit;
diff --git a/pkgs/development/tools/language-servers/dockerfile-language-server-nodejs/default.nix b/pkgs/development/tools/language-servers/dockerfile-language-server-nodejs/default.nix
index f8f0043650f0d..8c96dd227d7c4 100644
--- a/pkgs/development/tools/language-servers/dockerfile-language-server-nodejs/default.nix
+++ b/pkgs/development/tools/language-servers/dockerfile-language-server-nodejs/default.nix
@@ -22,7 +22,7 @@ buildNpmPackage rec {
 
   meta = {
     changelog = "https://github.com/rcjsuen/dockerfile-language-server-nodejs/blob/${src.rev}/CHANGELOG.md";
-    description = "A language server for Dockerfiles powered by Node.js, TypeScript, and VSCode technologies";
+    description = "Language server for Dockerfiles powered by Node.js, TypeScript, and VSCode technologies";
     homepage = "https://github.com/rcjsuen/dockerfile-language-server-nodejs";
     license = lib.licenses.mit;
     mainProgram = "docker-langserver";
diff --git a/pkgs/development/tools/language-servers/dot-language-server/default.nix b/pkgs/development/tools/language-servers/dot-language-server/default.nix
index cdadfd77a2ecc..98d76d8d1aaab 100644
--- a/pkgs/development/tools/language-servers/dot-language-server/default.nix
+++ b/pkgs/development/tools/language-servers/dot-language-server/default.nix
@@ -16,7 +16,7 @@ buildNpmPackage rec {
   npmBuildScript = "compile";
 
   meta = with lib; {
-    description = "A language server for the DOT language";
+    description = "Language server for the DOT language";
     mainProgram = "dot-language-server";
     homepage = "https://github.com/nikeee/dot-language-server";
     license = licenses.mit;
diff --git a/pkgs/development/tools/language-servers/emmet-language-server/default.nix b/pkgs/development/tools/language-servers/emmet-language-server/default.nix
index 09e08aa6477b4..b6f32643376d0 100644
--- a/pkgs/development/tools/language-servers/emmet-language-server/default.nix
+++ b/pkgs/development/tools/language-servers/emmet-language-server/default.nix
@@ -22,7 +22,7 @@ buildNpmPackage rec {
   '';
 
   meta = with lib; {
-    description = "A language server for emmet.io";
+    description = "Language server for emmet.io";
     homepage = "https://github.com/olrtg/emmet-language-server";
     changelog = "https://github.com/olrtg/emmet-language-server/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/tools/language-servers/fortls/default.nix b/pkgs/development/tools/language-servers/fortls/default.nix
index ccb70db0727c4..56172b8125990 100644
--- a/pkgs/development/tools/language-servers/fortls/default.nix
+++ b/pkgs/development/tools/language-servers/fortls/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonApplication rec {
   pname = "fortls";
-  version = "3.0.0";
+  version = "3.1.1";
 
   src = fetchFromGitHub {
     owner = "fortran-lang";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-kRL4kLX1T2Sontl8f3VO8Hb7uI41JwhZBiH//gdcmNE=";
+    hash = "sha256-7imZLSE7USFXmv/V3olE698J8Q8a7cJt15nBKkPZJoU=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/tools/language-servers/glslls/default.nix b/pkgs/development/tools/language-servers/glslls/default.nix
index 3c282f1a23d1a..0e78dd8502f75 100644
--- a/pkgs/development/tools/language-servers/glslls/default.nix
+++ b/pkgs/development/tools/language-servers/glslls/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = {
-    description = "A language server implementation for GLSL";
+    description = "Language server implementation for GLSL";
     mainProgram = "glslls";
     homepage = "https://github.com/svenstaro/glsl-language-server";
     license = lib.licenses.mit;
diff --git a/pkgs/development/tools/language-servers/jq-lsp/default.nix b/pkgs/development/tools/language-servers/jq-lsp/default.nix
index 6952bea00d63e..ad43af981e394 100644
--- a/pkgs/development/tools/language-servers/jq-lsp/default.nix
+++ b/pkgs/development/tools/language-servers/jq-lsp/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "jq-lsp";
-  version = "0.1.2";
+  version = "0.1.3";
 
   src = fetchFromGitHub {
     owner = "wader";
     repo = "jq-lsp";
     rev = "refs/tags/v${version}";
-    hash = "sha256-a3ZqVWG7kjWQzL1efrKc4s4D14qD/+6JM26vaduxhWg=";
+    hash = "sha256-c7uK8WPM/h2PLVLFGeN66SztvzjBCgJje7L14+oErVU=";
   };
 
-  vendorHash = "sha256-bIe006I1ryvIJ4hC94Ux2YVdlmDIM4oZaK/qXafYYe0=";
+  vendorHash = "sha256-8sZGnoP7l09ZzLJqq8TUCquTOPF0qiwZcFhojUnnEIY=";
 
   # based on https://github.com/wader/jq-lsp/blob/master/.goreleaser.yml
   CGO_ENABLED = 0;
diff --git a/pkgs/development/tools/language-servers/lua-language-server/default.nix b/pkgs/development/tools/language-servers/lua-language-server/default.nix
index 7b9ad09191d0f..8bdcd20cdb53b 100644
--- a/pkgs/development/tools/language-servers/lua-language-server/default.nix
+++ b/pkgs/development/tools/language-servers/lua-language-server/default.nix
@@ -1,14 +1,24 @@
-{ lib, stdenv, fetchFromGitHub, ninja, makeWrapper, CoreFoundation, Foundation, ditto }:
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  ninja,
+  makeWrapper,
+  CoreFoundation,
+  Foundation,
+  ditto,
+  nix-update-script,
+}:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "lua-language-server";
-  version = "3.9.1";
+  version = "3.9.3";
 
   src = fetchFromGitHub {
     owner = "luals";
     repo = "lua-language-server";
     rev = finalAttrs.version;
-    hash = "sha256-M4eTrs5Ue2+b40TPdW4LZEACGYCE/J9dQodEk9d+gpY=";
+    hash = "sha256-o3NRiJF9Cl420TYOZXC3JplKW5MYo/6nc0XPdukaly4=";
     fetchSubmodules = true;
   };
 
@@ -23,29 +33,29 @@ stdenv.mkDerivation (finalAttrs: {
     ditto
   ];
 
-  postPatch = ''
-    # filewatch tests are failing on darwin
-    # this feature is not used in lua-language-server
-    sed -i /filewatch/d 3rd/bee.lua/test/test.lua
-
-    pushd 3rd/luamake
-  '' + lib.optionalString stdenv.isDarwin ''
-    # This package uses the program clang for C and C++ files. The language
-    # is selected via the command line argument -std, but this do not work
-    # in combination with the nixpkgs clang wrapper. Therefor we have to
-    # find all c++ compiler statements and replace $cc (which expands to
-    # clang) with clang++.
-    sed -i compile/ninja/macos.ninja \
-      -e '/c++/s,$cc,clang++,' \
-      -e '/test.lua/s,= .*,= true,' \
-      -e '/ldl/s,$cc,clang++,'
-    sed -i scripts/compiler/gcc.lua \
-      -e '/cxx_/s,$cc,clang++,'
-  '';
+  postPatch =
+    ''
+      # filewatch tests are failing on darwin
+      # this feature is not used in lua-language-server
+      sed -i /filewatch/d 3rd/bee.lua/test/test.lua
 
-  ninjaFlags = [
-    "-fcompile/ninja/${if stdenv.isDarwin then "macos" else "linux"}.ninja"
-  ];
+      pushd 3rd/luamake
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      # This package uses the program clang for C and C++ files. The language
+      # is selected via the command line argument -std, but this do not work
+      # in combination with the nixpkgs clang wrapper. Therefor we have to
+      # find all c++ compiler statements and replace $cc (which expands to
+      # clang) with clang++.
+      sed -i compile/ninja/macos.ninja \
+        -e '/c++/s,$cc,clang++,' \
+        -e '/test.lua/s,= .*,= true,' \
+        -e '/ldl/s,$cc,clang++,'
+      sed -i scripts/compiler/gcc.lua \
+        -e '/cxx_/s,$cc,clang++,'
+    '';
+
+  ninjaFlags = [ "-fcompile/ninja/${if stdenv.isDarwin then "macos" else "linux"}.ninja" ];
 
   postBuild = ''
     popd
@@ -75,12 +85,18 @@ stdenv.mkDerivation (finalAttrs: {
   # some tests require local networking
   __darwinAllowLocalNetworking = true;
 
+  passthru.updateScript = nix-update-script { };
+
   meta = with lib; {
-    description = "A language server that offers Lua language support";
+    description = "Language server that offers Lua language support";
     homepage = "https://github.com/luals/lua-language-server";
     changelog = "https://github.com/LuaLS/lua-language-server/blob/${finalAttrs.version}/changelog.md";
     license = licenses.mit;
-    maintainers = with maintainers; [ figsoda gepbird sei40kr ];
+    maintainers = with maintainers; [
+      figsoda
+      gepbird
+      sei40kr
+    ];
     mainProgram = "lua-language-server";
     platforms = platforms.linux ++ platforms.darwin;
   };
diff --git a/pkgs/development/tools/language-servers/millet/default.nix b/pkgs/development/tools/language-servers/millet/default.nix
index 7de1523491bdb..6ff7bb4c11ec6 100644
--- a/pkgs/development/tools/language-servers/millet/default.nix
+++ b/pkgs/development/tools/language-servers/millet/default.nix
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
   cargoTestFlags = [ "--package" "millet-ls" ];
 
   meta = with lib; {
-    description = "A language server for Standard ML";
+    description = "Language server for Standard ML";
     homepage = "https://github.com/azdavis/millet";
     changelog = "https://github.com/azdavis/millet/blob/v${version}/docs/CHANGELOG.md";
     license = [ licenses.mit /* or */ licenses.asl20 ];
diff --git a/pkgs/development/tools/language-servers/neocmakelsp/default.nix b/pkgs/development/tools/language-servers/neocmakelsp/default.nix
index fe2678be6d2c2..6797c2d432502 100644
--- a/pkgs/development/tools/language-servers/neocmakelsp/default.nix
+++ b/pkgs/development/tools/language-servers/neocmakelsp/default.nix
@@ -5,19 +5,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "neocmakelsp";
-  version = "0.6.25";
+  version = "0.7.4";
 
   src = fetchFromGitHub {
     owner = "Decodetalkers";
     repo = "neocmakelsp";
     rev = "v${version}";
-    hash = "sha256-2eZ1f0oxCNf0hJEQ8hkvsTwCaAWJrIYCyIY5PNfaxI4=";
+    hash = "sha256-oYvjMpZcXIpOA/osVCOy2NxkFnEQePGf4le22M1bFPA=";
   };
 
-  cargoHash = "sha256-mo/d99Y41/pxMzVvI6LkjnhotGV5j0ee4GItly0aqpY=";
+  cargoHash = "sha256-kcqq4xnCxGIGCFlmm4EDc9ZfQHBi6k/xrhIyZ+eKs34=";
 
   meta = with lib; {
-    description = "A cmake lsp based on tower-lsp and treesitter";
+    description = "Cmake lsp based on tower-lsp and treesitter";
     homepage = "https://github.com/Decodetalkers/neocmakelsp";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/development/tools/language-servers/nixd/default.nix b/pkgs/development/tools/language-servers/nixd/default.nix
index 86325a6815b37..6803b0761c1b1 100644
--- a/pkgs/development/tools/language-servers/nixd/default.nix
+++ b/pkgs/development/tools/language-servers/nixd/default.nix
@@ -1,103 +1,153 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, nix-update-script
-, bison
-, boost182
-, flex
-, fmt
-, gtest
-, libbacktrace
-, lit
-, llvmPackages
-, meson
-, ninja
-, nix
-, nixpkgs-fmt
-, pkg-config
-, testers
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  cmake,
+  boost182,
+  gtest,
+  llvmPackages,
+  meson,
+  ninja,
+  nix,
+  nix-update-script,
+  nixd,
+  nixf,
+  nixt,
+  nlohmann_json,
+  pkg-config,
+  testers,
 }:
 
-stdenv.mkDerivation (finalAttrs: {
-  pname = "nixd";
-  version = "2.1.2";
+let
+  common = rec {
+    version = "2.2.1";
 
-  src = fetchFromGitHub {
-    owner = "nix-community";
-    repo = "nixd";
-    rev = finalAttrs.version;
-    hash = "sha256-A6hoZ4fbWxd7Mx+r3e1HEw2IPaAn4WcMEIocy/ZCz28=";
-  };
-
-  mesonBuildType = "release";
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    pkg-config
-    bison
-    flex
-  ];
-
-  nativeCheckInputs = [
-    lit
-    nixpkgs-fmt
-  ];
-
-  buildInputs = [
-    libbacktrace
-    nix
-    fmt
-    gtest
-    boost182
-    llvmPackages.llvm
-  ];
-
-  env.CXXFLAGS = "-include ${nix.dev}/include/nix/config.h";
-
-  # https://github.com/nix-community/nixd/issues/215
-  doCheck = !stdenv.isDarwin;
-
-  checkPhase = ''
-    runHook preCheck
-    dirs=(store var var/nix var/log/nix etc home)
-
-    for dir in $dirs; do
-      mkdir -p "$TMPDIR/$dir"
-    done
-
-    export NIX_STORE_DIR=$TMPDIR/store
-    export NIX_LOCALSTATE_DIR=$TMPDIR/var
-    export NIX_STATE_DIR=$TMPDIR/var/nix
-    export NIX_LOG_DIR=$TMPDIR/var/log/nix
-    export NIX_CONF_DIR=$TMPDIR/etc
-    export HOME=$TMPDIR/home
-
-    # Disable nixd regression tests, because it uses some features provided by
-    # nix, and does not correctly work in the sandbox
-    meson test --print-errorlogs  unit/libnixf/Basic unit/libnixf/Parse unit/libnixt
-    runHook postCheck
-  '';
-
-  passthru.updateScript = nix-update-script { };
-
-  passthru.tests = {
-    version = testers.testVersion {
-      package = finalAttrs.finalPackage;
+    src = fetchFromGitHub {
+      owner = "nix-community";
+      repo = "nixd";
+      rev = version;
+      hash = "sha256-Y5MB3BQBRkSe+10enlric1GTmJCN36clbOSos6fzoRM=";
     };
-    pkg-config = testers.hasPkgConfigModules {
-      package = finalAttrs.finalPackage;
-      moduleNames = [ "libnixf" "libnixt" ];
+
+    nativeBuildInputs = [
+      meson
+      ninja
+      pkg-config
+    ];
+
+    mesonBuildType = "release";
+
+    strictDeps = true;
+
+    doCheck = true;
+
+    meta = {
+      homepage = "https://github.com/nix-community/nixd";
+      changelog = "https://github.com/nix-community/nixd/releases/tag/${version}";
+      license = lib.licenses.lgpl3Plus;
+      maintainers = with lib.maintainers; [
+        inclyc
+        Ruixi-rebirth
+        aleksana
+      ];
+      platforms = lib.platforms.unix;
     };
   };
+in
+{
+  nixf = stdenv.mkDerivation (
+    common
+    // {
+      pname = "nixf";
 
-  meta = {
-    description = "Nix language server";
-    homepage = "https://github.com/nix-community/nixd";
-    changelog = "https://github.com/nix-community/nixd/releases/tag/${finalAttrs.version}";
-    license = lib.licenses.lgpl3Plus;
-    maintainers = with lib.maintainers; [ inclyc Ruixi-rebirth ];
-    mainProgram = "nixd";
-    platforms = lib.platforms.unix;
-  };
-})
+      sourceRoot = "${common.src.name}/libnixf";
+
+      outputs = [
+        "out"
+        "dev"
+      ];
+
+      buildInputs = [
+        gtest
+        boost182
+        nlohmann_json
+      ];
+
+      passthru.tests.pkg-config = testers.hasPkgConfigModules {
+        package = nixf;
+        moduleNames = [ "nixf" ];
+      };
+
+      meta = common.meta // {
+        description = "Nix language frontend, parser & semantic analysis";
+        mainProgram = "nixf-tidy";
+      };
+    }
+  );
+
+  nixt = stdenv.mkDerivation (
+    common
+    // {
+      pname = "nixt";
+
+      sourceRoot = "${common.src.name}/libnixt";
+
+      outputs = [
+        "out"
+        "dev"
+      ];
+
+      buildInputs = [
+        nix
+        gtest
+        boost182
+      ];
+
+      env.CXXFLAGS = "-include ${nix.dev}/include/nix/config.h";
+
+      passthru.tests.pkg-config = testers.hasPkgConfigModules {
+        package = nixt;
+        moduleNames = [ "nixt" ];
+      };
+
+      meta = common.meta // {
+        description = "Supporting library that wraps C++ nix";
+      };
+    }
+  );
+
+  nixd = stdenv.mkDerivation (
+    common
+    // {
+      pname = "nixd";
+
+      sourceRoot = "${common.src.name}/nixd";
+
+      buildInputs = [
+        nix
+        nixf
+        nixt
+        llvmPackages.llvm
+        gtest
+        boost182
+      ];
+
+      nativeBuildInputs = common.nativeBuildInputs ++ [ cmake ];
+
+      env.CXXFLAGS = "-include ${nix.dev}/include/nix/config.h";
+
+      # See https://github.com/nix-community/nixd/issues/519
+      doCheck = false;
+
+      passthru = {
+        updateScript = nix-update-script { };
+        tests.version = testers.testVersion { package = nixd; };
+      };
+
+      meta = common.meta // {
+        description = "Feature-rich Nix language server interoperating with C++ nix";
+        mainProgram = "nixd";
+      };
+    }
+  );
+}
diff --git a/pkgs/development/tools/language-servers/openscad-lsp/default.nix b/pkgs/development/tools/language-servers/openscad-lsp/default.nix
index 5b93b979cf3d1..9991f9571d35f 100644
--- a/pkgs/development/tools/language-servers/openscad-lsp/default.nix
+++ b/pkgs/development/tools/language-servers/openscad-lsp/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A LSP (Language Server Protocol) server for OpenSCAD";
+    description = "LSP (Language Server Protocol) server for OpenSCAD";
     mainProgram = "openscad-lsp";
     homepage = "https://github.com/Leathong/openscad-LSP";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/language-servers/postgres-lsp/default.nix b/pkgs/development/tools/language-servers/postgres-lsp/default.nix
index 33855391ea5ab..b267442cae830 100644
--- a/pkgs/development/tools/language-servers/postgres-lsp/default.nix
+++ b/pkgs/development/tools/language-servers/postgres-lsp/default.nix
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
   RUSTC_BOOTSTRAP = 1; # We need rust unstable features
 
   meta = with lib; {
-    description = "A Language Server for Postgres";
+    description = "Language Server for Postgres";
     homepage = "https://github.com/supabase/postgres_lsp";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/pkgs/development/tools/language-servers/pylyzer/default.nix b/pkgs/development/tools/language-servers/pylyzer/default.nix
index 92607901caf5f..95814084800d5 100644
--- a/pkgs/development/tools/language-servers/pylyzer/default.nix
+++ b/pkgs/development/tools/language-servers/pylyzer/default.nix
@@ -66,7 +66,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A fast static code analyzer & language server for Python";
+    description = "Fast static code analyzer & language server for Python";
     homepage = "https://github.com/mtshiba/pylyzer";
     changelog = "https://github.com/mtshiba/pylyzer/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/tools/language-servers/ruff-lsp/default.nix b/pkgs/development/tools/language-servers/ruff-lsp/default.nix
index 4cfcb4c6e0648..cf14e02435448 100644
--- a/pkgs/development/tools/language-servers/ruff-lsp/default.nix
+++ b/pkgs/development/tools/language-servers/ruff-lsp/default.nix
@@ -65,7 +65,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/astral-sh/ruff-lsp/releases/tag/v${version}";
-    description = "A Language Server Protocol implementation for Ruff";
+    description = "Language Server Protocol implementation for Ruff";
     homepage = "https://github.com/astral-sh/ruff-lsp";
     license = licenses.mit;
     mainProgram = "ruff-lsp";
diff --git a/pkgs/development/tools/language-servers/rune-languageserver/default.nix b/pkgs/development/tools/language-servers/rune-languageserver/default.nix
index 32bec82979e9c..3ae9c3ac43be4 100644
--- a/pkgs/development/tools/language-servers/rune-languageserver/default.nix
+++ b/pkgs/development/tools/language-servers/rune-languageserver/default.nix
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A language server for the Rune Language, an embeddable dynamic programming language for Rust";
+    description = "Language server for the Rune Language, an embeddable dynamic programming language for Rust";
     homepage = "https://crates.io/crates/rune-languageserver";
     changelog = "https://github.com/rune-rs/rune/releases/tag/${version}";
     license = with licenses; [ asl20 mit ];
diff --git a/pkgs/development/tools/language-servers/svls/default.nix b/pkgs/development/tools/language-servers/svls/default.nix
index fc4ebb51e1ca9..6faefffee2f5f 100644
--- a/pkgs/development/tools/language-servers/svls/default.nix
+++ b/pkgs/development/tools/language-servers/svls/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "svls";
-  version = "0.2.11";
+  version = "0.2.12";
 
   src = fetchFromGitHub {
     owner = "dalance";
     repo = "svls";
     rev = "v${version}";
-    sha256 = "sha256-pvvtJOwb9N7CzCXoLG19iuLQjABABaOUe6wKfYizgQc=";
+    sha256 = "sha256-DuwH0qie8SctvOGntljOdTRMGKrNFPycdaFG3QZxihA=";
   };
 
-  cargoHash = "sha256-sMprdvBSfCIzoTHyUC447pyZWGgZkKa9t3A9BiGbQvY=";
+  cargoHash = "sha256-vDpuIWB5pbhYrFgQ1ogALMJpZvy8ETZtneX1fjpjl+0=";
 
   meta = with lib; {
     description = "SystemVerilog language server";
diff --git a/pkgs/development/tools/language-servers/typst-lsp/default.nix b/pkgs/development/tools/language-servers/typst-lsp/default.nix
index 1945a71863a7b..59b81f5989f0f 100644
--- a/pkgs/development/tools/language-servers/typst-lsp/default.nix
+++ b/pkgs/development/tools/language-servers/typst-lsp/default.nix
@@ -45,7 +45,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A brand-new language server for Typst";
+    description = "Brand-new language server for Typst";
     homepage = "https://github.com/nvarner/typst-lsp";
     mainProgram = "typst-lsp";
     changelog = "https://github.com/nvarner/typst-lsp/releases/tag/${src.rev}";
diff --git a/pkgs/development/tools/language-servers/verible/default.nix b/pkgs/development/tools/language-servers/verible/default.nix
index 4809b85e2e5be..6e6c7d621cbd0 100644
--- a/pkgs/development/tools/language-servers/verible/default.nix
+++ b/pkgs/development/tools/language-servers/verible/default.nix
@@ -87,7 +87,7 @@ buildBazelPackage rec {
   };
 
   meta = with lib; {
-    description = "Suite of SystemVerilog developer tools. Including a style-linter, indexer, formatter, and language server.";
+    description = "Suite of SystemVerilog developer tools. Including a style-linter, indexer, formatter, and language server";
     homepage = "https://github.com/chipsalliance/verible";
     license = licenses.asl20;
     maintainers = with maintainers; [ hzeller newam ];
diff --git a/pkgs/development/tools/language-servers/vhdl-ls/default.nix b/pkgs/development/tools/language-servers/vhdl-ls/default.nix
index f879e400896a4..dabd9484499aa 100644
--- a/pkgs/development/tools/language-servers/vhdl-ls/default.nix
+++ b/pkgs/development/tools/language-servers/vhdl-ls/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "vhdl-ls";
-  version = "0.80.0";
+  version = "0.81.0";
 
   src = fetchFromGitHub {
     owner = "VHDL-LS";
     repo = "rust_hdl";
     rev = "v${version}";
-    hash = "sha256-3p6SmmNnuPoHbA0QmfgvO342AhRx5dI9q4YXypi/2k0=";
+    hash = "sha256-iF8HIfxC7WM5YT85HfCTM5hu5yCFnHpDposGDAO3qJI=";
   };
 
-  cargoHash = "sha256-zAz33P5k6wmQej8u45+lXKHSRVaZhrB5L0jUPjs44W8=";
+  cargoHash = "sha256-hkmaMzeQLd3l6A3xyLAZk+MrEeUKPd7H2N4Nsz7nBmk=";
 
   postPatch = ''
     substituteInPlace vhdl_lang/src/config.rs \
@@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = {
-    description = "A fast VHDL language server";
+    description = "Fast VHDL language server";
     homepage = "https://github.com/VHDL-LS/rust_hdl";
     license = lib.licenses.mpl20;
     mainProgram = "vhdl_ls";
diff --git a/pkgs/development/tools/leaps/default.nix b/pkgs/development/tools/leaps/default.nix
index 57df58ebaf4a5..27a6cb95220cc 100644
--- a/pkgs/development/tools/leaps/default.nix
+++ b/pkgs/development/tools/leaps/default.nix
@@ -19,7 +19,7 @@ buildGoModule rec {
   passthru.tests.version = testers.testVersion { package = leaps; };
 
   meta = with lib; {
-    description = "A pair programming tool and library written in Golang";
+    description = "Pair programming tool and library written in Golang";
     mainProgram = "leaps";
     homepage = "https://github.com/jeffail/leaps/";
     license = licenses.mit;
diff --git a/pkgs/development/tools/librarian-puppet-go/default.nix b/pkgs/development/tools/librarian-puppet-go/default.nix
deleted file mode 100644
index 303f6ce2ebafa..0000000000000
--- a/pkgs/development/tools/librarian-puppet-go/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ lib, fetchFromGitHub, buildGoPackage }:
-
-buildGoPackage rec {
-  pname = "librarian-puppet-go";
-  version = "0.3.10";
-
-  goPackagePath = "github.com/tmtk75/librarian-puppet-go";
-
-  src = fetchFromGitHub {
-    owner = "tmtk75";
-    repo = "librarian-puppet-go";
-    rev = "v${version}";
-    sha256 = "sha256-IEhqyowyLTXDEhg4nkix1N45S0+k+RngMP6TsaZQ4mI=";
-  };
-
-  goDeps = ./deps.nix;
-
-  meta = with lib; {
-    inherit (src.meta) homepage;
-    description = "librarian-puppet implementation in go";
-    mainProgram = "librarian-puppet-go";
-    license = licenses.mit;
-    maintainers = with maintainers; [ womfoo ];
-    platforms = [ "x86_64-linux" ];
-  };
-}
diff --git a/pkgs/development/tools/librarian-puppet-go/deps.nix b/pkgs/development/tools/librarian-puppet-go/deps.nix
deleted file mode 100644
index e5729707d8abd..0000000000000
--- a/pkgs/development/tools/librarian-puppet-go/deps.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
-[
-  {
-    goPackagePath = "github.com/jawher/mow.cli";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jawher/mow.cli";
-      rev = "3ff64ca21987cfa628bd8d1865162b7ccd6107d7";
-      sha256 = "0vws79q4x3c9kjdsin3vw5200sinkxag3bfa0n9k69svsb222bij";
-    };
-  }
-]
diff --git a/pkgs/development/tools/literate-programming/eweb/default.nix b/pkgs/development/tools/literate-programming/eweb/default.nix
index b0c897252b689..1a885af12187d 100644
--- a/pkgs/development/tools/literate-programming/eweb/default.nix
+++ b/pkgs/development/tools/literate-programming/eweb/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://eweb.sourceforge.net/";
-    description = "An Asciidoc-based literate programming tool, written in Python";
+    description = "Asciidoc-based literate programming tool, written in Python";
     mainProgram = "etangle.py";
     platforms = platforms.linux;
     license = licenses.gpl3Plus;
diff --git a/pkgs/development/tools/literate-programming/funnelweb/default.nix b/pkgs/development/tools/literate-programming/funnelweb/default.nix
index 94fbaa698b74d..10b4880df7cd2 100644
--- a/pkgs/development/tools/literate-programming/funnelweb/default.nix
+++ b/pkgs/development/tools/literate-programming/funnelweb/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     version = "3.20";
-    description = "A simple, reliable literate-programming macro preprocessor";
+    description = "Simple, reliable literate-programming macro preprocessor";
     mainProgram = "fw";
     homepage = "http://www.ross.net/funnelweb/";
     license = licenses.gpl2;
diff --git a/pkgs/development/tools/literate-programming/noweb/default.nix b/pkgs/development/tools/literate-programming/noweb/default.nix
index 26ce4d6891af3..d0657e935697c 100644
--- a/pkgs/development/tools/literate-programming/noweb/default.nix
+++ b/pkgs/development/tools/literate-programming/noweb/default.nix
@@ -77,7 +77,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A simple, extensible literate-programming tool";
+    description = "Simple, extensible literate-programming tool";
     homepage = "https://www.cs.tufts.edu/~nr/noweb";
     license = licenses.bsd2;
     maintainers = with maintainers; [ yurrriq ];
diff --git a/pkgs/development/tools/literate-programming/nuweb/default.nix b/pkgs/development/tools/literate-programming/nuweb/default.nix
index c63f840a15470..bc7841843a8d0 100644
--- a/pkgs/development/tools/literate-programming/nuweb/default.nix
+++ b/pkgs/development/tools/literate-programming/nuweb/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple literate programming tool";
+    description = "Simple literate programming tool";
     mainProgram = "nuweb";
     homepage = "https://nuweb.sourceforge.net";
     license = licenses.free;
diff --git a/pkgs/development/tools/ls-lint/default.nix b/pkgs/development/tools/ls-lint/default.nix
index 6deb41082e46b..b130e9d27dcc9 100644
--- a/pkgs/development/tools/ls-lint/default.nix
+++ b/pkgs/development/tools/ls-lint/default.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
   vendorHash = "sha256-qXx83jtkVzN+ydXjW4Nkz49rhSLbAS2597iuYUDsEo4=";
 
   meta = with lib; {
-    description = "An extremely fast file and directory name linter";
+    description = "Extremely fast file and directory name linter";
     mainProgram = "ls_lint";
     homepage = "https://ls-lint.org/";
     license = licenses.mit;
diff --git a/pkgs/development/tools/lurk/default.nix b/pkgs/development/tools/lurk/default.nix
index a9412f2ca6eba..2393f9336ca43 100644
--- a/pkgs/development/tools/lurk/default.nix
+++ b/pkgs/development/tools/lurk/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-Cvtg9msoYkIIlaUw4hxWy2wSrE1uORR/2R2Geq4SI4w=";
 
   meta = with lib; {
-    description = "A simple and pretty alternative to strace";
+    description = "Simple and pretty alternative to strace";
     mainProgram = "lurk";
     homepage = "https://github.com/jakwai01/lurk";
     changelog = "https://github.com/jakwai01/lurk/releases/tag/${src.rev}";
diff --git a/pkgs/development/tools/lv_img_conv/default.nix b/pkgs/development/tools/lv_img_conv/default.nix
deleted file mode 100644
index e00b960c46b92..0000000000000
--- a/pkgs/development/tools/lv_img_conv/default.nix
+++ /dev/null
@@ -1,64 +0,0 @@
-{ lib
-, stdenv
-, buildNpmPackage
-, fetchFromGitHub
-, pkg-config
-, python3
-, pixman
-, libpng
-, libjpeg
-, librsvg
-, giflib
-, cairo
-, pango
-, nodePackages
-, makeWrapper
-, CoreText
-, nix-update-script
-}:
-
-buildNpmPackage rec {
-  pname = "lv_img_conv";
-  version = "0.4.0";
-
-  src = fetchFromGitHub {
-    owner = "lvgl";
-    repo = pname;
-    rev = "refs/tags/v${version}";
-    hash = "sha256-LB7NZKwrpvps1cKzRoARHL4S48gBHadvxwA6JMmm/ME=";
-  };
-
-  npmDepsHash = "sha256-uDF22wlL3BlMQ/+Wmtgyjp4CVN6sDnjqjEPB4SeQuPk=";
-
-  nativeBuildInputs = [
-    pkg-config
-    python3
-    makeWrapper
-  ];
-
-  buildInputs = [
-    pixman
-    libpng
-    libjpeg
-    librsvg
-    giflib
-    cairo
-    pango
-  ] ++ lib.optionals stdenv.isDarwin [
-    CoreText
-  ];
-
-  postInstall = ''
-    makeWrapper ${nodePackages.ts-node}/bin/ts-node $out/bin/lv_img_conv --add-flags $out/lib/node_modules/lv_img_conv/lib/cli.ts
-  '';
-
-  passthru.updateScript = nix-update-script { };
-
-  meta = with lib; {
-    changelog = "https://github.com/lvgl/lv_img_conv/releases/tag/v${version}";
-    description = "Image converter for LVGL";
-    homepage = "https://github.com/lvgl/lv_img_conv";
-    license = licenses.mit;
-    maintainers = with maintainers; [ stargate01 ];
-  };
-}
diff --git a/pkgs/development/tools/maizzle/default.nix b/pkgs/development/tools/maizzle/default.nix
index f04536f763095..a33a845e7cd3a 100644
--- a/pkgs/development/tools/maizzle/default.nix
+++ b/pkgs/development/tools/maizzle/default.nix
@@ -5,16 +5,16 @@
 
 buildNpmPackage rec {
   pname = "maizzle";
-  version = "1.5.8";
+  version = "1.5.9";
 
   src = fetchFromGitHub {
     owner = "maizzle";
     repo = "cli";
     rev = "v${version}";
-    hash = "sha256-cSAYicgCgFpJO+2vBAqfl3od7B07DTXvkW38x6y5VgM=";
+    hash = "sha256-r3HWqfm/BdOfENi5cGdau7ockvNLxnWufWcQepI/RFM=";
   };
 
-  npmDepsHash = "sha256-K9EQxqOjFzgTw/VXG2ZGF90yUzYTNl13Ssq9oiC+F7A=";
+  npmDepsHash = "sha256-WlqWOGwmSab+cJWPUFIBWuFwMK4lFQm80PoUfEIIIH8=";
 
   dontNpmBuild = true;
 
diff --git a/pkgs/development/tools/makerpm/default.nix b/pkgs/development/tools/makerpm/default.nix
index ba4d87d413423..a00d4a4d66630 100644
--- a/pkgs/development/tools/makerpm/default.nix
+++ b/pkgs/development/tools/makerpm/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/ivan-tkatchev/makerpm/";
-    description = "A clean, simple RPM packager reimplemented completely from scratch";
+    description = "Clean, simple RPM packager reimplemented completely from scratch";
     mainProgram = "makerpm";
     license = licenses.free;
     platforms = platforms.all;
diff --git a/pkgs/development/tools/mask/default.nix b/pkgs/development/tools/mask/default.nix
index 3c9d62ddd26da..aecc3fb96521e 100644
--- a/pkgs/development/tools/mask/default.nix
+++ b/pkgs/development/tools/mask/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A CLI task runner defined by a simple markdown file";
+    description = "CLI task runner defined by a simple markdown file";
     mainProgram = "mask";
     homepage = "https://github.com/jacobdeichert/mask";
     changelog = "https://github.com/jacobdeichert/mask/blob/mask/${version}/CHANGELOG.md";
diff --git a/pkgs/development/tools/melange/default.nix b/pkgs/development/tools/melange/default.nix
index 90383cba4c03d..8d39043f842f4 100644
--- a/pkgs/development/tools/melange/default.nix
+++ b/pkgs/development/tools/melange/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "melange";
-  version = "0.7.0";
+  version = "0.8.6";
 
   src = fetchFromGitHub {
     owner = "chainguard-dev";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-RkX6jS3Oh0pRn7kwNDRi8RQ2apLx3W82yQYI1JLJXjQ=";
+    hash = "sha256-/ZroyTrRHXflhMEBd7zvuHFpJTmY7g+5AZ1ZPLQjkiA=";
     # populate values that require us to use git. By doing this in postFetch we
     # can delete .git afterwards and maintain better reproducibility of the src.
     leaveDotGit = true;
@@ -25,7 +25,7 @@ buildGoModule rec {
     '';
   };
 
-  vendorHash = "sha256-0IBpnwAkvrGkll/mE67BXb/TmwYJyX2oG/aBqsKcn4g=";
+  vendorHash = "sha256-aiJ70BIiLM5ZzIRDqGkvsLg5I8EVpQtecrVP2/omhRA=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/development/tools/metal-cli/default.nix b/pkgs/development/tools/metal-cli/default.nix
index e3c95bbb244fc..4702615564d04 100644
--- a/pkgs/development/tools/metal-cli/default.nix
+++ b/pkgs/development/tools/metal-cli/default.nix
@@ -47,7 +47,7 @@ buildGoModule rec {
     homepage = "https://github.com/equinix/metal-cli/";
     changelog = "https://github.com/equinix/metal-cli/releases/tag/v${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ Br1ght0ne nshalman ];
+    maintainers = with maintainers; [ Br1ght0ne nshalman teutat3s ];
     mainProgram = "metal";
   };
 }
diff --git a/pkgs/development/tools/micronaut/default.nix b/pkgs/development/tools/micronaut/default.nix
index 1adea9552be07..7e9e83ea6fb3a 100644
--- a/pkgs/development/tools/micronaut/default.nix
+++ b/pkgs/development/tools/micronaut/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "micronaut";
-  version = "4.4.2";
+  version = "4.4.3";
 
   src = fetchzip {
     url = "https://github.com/micronaut-projects/micronaut-starter/releases/download/v${version}/micronaut-cli-${version}.zip";
-    sha256 = "sha256-5Loc9H5wqafoZYjPGCJ4kTNulS1/Njgn35T74zHr9s4=";
+    sha256 = "sha256-lRZs/+oClNdSGapBDt9hROfergHi1cGeP5jlkL8LWxs=";
   };
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
diff --git a/pkgs/development/tools/minizinc/default.nix b/pkgs/development/tools/minizinc/default.nix
index 2702be56dc241..0a054fe43a1c7 100644
--- a/pkgs/development/tools/minizinc/default.nix
+++ b/pkgs/development/tools/minizinc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "minizinc";
-  version = "2.8.4";
+  version = "2.8.5";
 
   src = fetchFromGitHub {
     owner = "MiniZinc";
     repo = "libminizinc";
     rev = finalAttrs.version;
-    sha256 = "sha256-RpqjhjdG8u+gqO5SmKep5JpFhXh5GGX65qA15X+MNA4=";
+    sha256 = "sha256-AD5hbHnu5/gmhvk4Hzeqzvq3E/7w54ijxl9US5eATRY=";
   };
 
   nativeBuildInputs = [ bison cmake flex jq ];
@@ -31,7 +31,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://www.minizinc.org/";
-    description = "A medium-level constraint modelling language";
+    description = "Medium-level constraint modelling language";
     longDescription = ''
       MiniZinc is a medium-level constraint modelling
       language. It is high-level enough to express most
diff --git a/pkgs/development/tools/minizinc/ide.nix b/pkgs/development/tools/minizinc/ide.nix
index 42dda7c4235db..00f028c117ca4 100644
--- a/pkgs/development/tools/minizinc/ide.nix
+++ b/pkgs/development/tools/minizinc/ide.nix
@@ -5,13 +5,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "minizinc-ide";
-  version = "2.8.3";
+  version = "2.8.4";
 
   src = fetchFromGitHub {
     owner = "MiniZinc";
     repo = "MiniZincIDE";
     rev = version;
-    hash = "sha256-/x4mWjAk24s6Ax22Q15WUPLLwm7YrzwaoMIINjQr5zU=";
+    hash = "sha256-ljOtY4k0uQwb8YPH14DspofjY7kMMBu4QJ7MABYfIpA=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/tools/misc/abi-compliance-checker/default.nix b/pkgs/development/tools/misc/abi-compliance-checker/default.nix
index 3b3888861ba59..b5ccb40d5dc4f 100644
--- a/pkgs/development/tools/misc/abi-compliance-checker/default.nix
+++ b/pkgs/development/tools/misc/abi-compliance-checker/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://lvc.github.io/abi-compliance-checker";
-    description = "A tool for checking backward API/ABI compatibility of a C/C++ library";
+    description = "Tool for checking backward API/ABI compatibility of a C/C++ library";
     mainProgram = "abi-compliance-checker";
     license = licenses.lgpl21;
     maintainers = [ maintainers.bhipple ];
diff --git a/pkgs/development/tools/misc/act/default.nix b/pkgs/development/tools/misc/act/default.nix
index b4b3d2f1b7442..a8c253e4333cc 100644
--- a/pkgs/development/tools/misc/act/default.nix
+++ b/pkgs/development/tools/misc/act/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "act";
-  version = "0.2.62";
+  version = "0.2.63";
 
   src = fetchFromGitHub {
     owner = "nektos";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-zHtRdwBqwQMW/M4TYA609beCrC5B4hyhtcptJSbN6M8=";
+    hash = "sha256-umYP/U1UjqWbF1YDZYbQrlMubhxr80FFBDS1NeiI9wI=";
   };
 
-  vendorHash = "sha256-+hK1qG0p7MSYACkvzTnuPvlccbHNJRRZdC/LAM1Cp2k=";
+  vendorHash = "sha256-Dt6V1zngSra4ZMSboHzreqwxgH5ovMIB+Bq3eWK6tjA=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/misc/arcanist/default.nix b/pkgs/development/tools/misc/arcanist/default.nix
deleted file mode 100644
index 06c0f700ffe8c..0000000000000
--- a/pkgs/development/tools/misc/arcanist/default.nix
+++ /dev/null
@@ -1,88 +0,0 @@
-{ bison
-, cacert
-, fetchFromGitHub
-, flex
-, php
-, lib, stdenv
-, installShellFiles
-, which
-, python3
-}:
-
-# Make a custom wrapper. If `wrapProgram` is used, arcanist thinks .arc-wrapped is being
-# invoked and complains about it being an unknown toolset. We could use `makeWrapper`, but
-# then we’d need to still craft a script that does the `php libexec/arcanist/bin/...` dance
-# anyway... So just do everything at once.
-let makeArcWrapper = toolset: ''
-  cat << WRAPPER > $out/bin/${toolset}
-  #!$shell -e
-  export PATH='${php}/bin:${which}/bin'\''${PATH:+':'}\$PATH
-  exec ${php}/bin/php $out/libexec/arcanist/bin/${toolset} "\$@"
-  WRAPPER
-  chmod +x $out/bin/${toolset}
-'';
-
-in
-stdenv.mkDerivation {
-  pname = "arcanist";
-  version = "20230530";
-
-  src = fetchFromGitHub {
-    owner = "phacility";
-    repo = "arcanist";
-    rev = "e50d1bc4eabac9c37e3220e9f3fb8e37ae20b957";
-    hash = "sha256-u+HRsaCuAAyLrEihrZtLrdZ6NTVjPshieJATK3t5Fo4=";
-  };
-
-  patches = [
-    ./dont-require-python3-in-path.patch
-    ./shellcomplete-strlen-null.patch
-  ];
-
-  buildInputs = [ php python3 ];
-
-  nativeBuildInputs = [ bison flex installShellFiles ];
-
-  postPatch = lib.optionalString stdenv.isAarch64 ''
-    substituteInPlace support/xhpast/Makefile \
-      --replace "-minline-all-stringops" ""
-  '';
-
-  buildPhase = ''
-    runHook preBuild
-    make cleanall -C support/xhpast $makeFlags "''${makeFlagsArray[@]}" -j $NIX_BUILD_CORES
-    make xhpast   -C support/xhpast $makeFlags "''${makeFlagsArray[@]}" -j $NIX_BUILD_CORES
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/bin $out/libexec
-    make install  -C support/xhpast $makeFlags "''${makeFlagsArray[@]}" -j $NIX_BUILD_CORES
-    make cleanall -C support/xhpast $makeFlags "''${makeFlagsArray[@]}" -j $NIX_BUILD_CORES
-    cp -R . $out/libexec/arcanist
-    ln -sf ${cacert}/etc/ssl/certs/ca-bundle.crt $out/libexec/arcanist/resources/ssl/default.pem
-
-    ${makeArcWrapper "arc"}
-    ${makeArcWrapper "phage"}
-
-    $out/bin/arc shell-complete --generate --
-    installShellCompletion --cmd arc --bash $out/libexec/arcanist/support/shell/rules/bash-rules.sh
-    installShellCompletion --cmd phage --bash $out/libexec/arcanist/support/shell/rules/bash-rules.sh
-    runHook postInstall
-  '';
-
-  doInstallCheck = true;
-  installCheckPhase = ''
-    $out/bin/arc help diff -- > /dev/null
-    $out/bin/phage help alias -- > /dev/null
-  '';
-
-  meta = {
-    description = "Command line interface to Phabricator";
-    homepage = "https://www.phacility.com/";
-    license = lib.licenses.asl20;
-    platforms = lib.platforms.unix;
-    maintainers = [ lib.maintainers.thoughtpolice ];
-  };
-}
diff --git a/pkgs/development/tools/misc/arcanist/dont-require-python3-in-path.patch b/pkgs/development/tools/misc/arcanist/dont-require-python3-in-path.patch
deleted file mode 100644
index 5c127491bb844..0000000000000
--- a/pkgs/development/tools/misc/arcanist/dont-require-python3-in-path.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Don't require python3 in PATH
-
-Once packaged, the arcanoid.py script has an absolute path shebang to
-python3, so there is no need to also require python3 in PATH.
-
-This prevents leaking in a python3 in PATH in the environment which arc
-runs linters etc.
-
-Author: bjorn.forsman@gmail.com
-diff -uNr arcanist.orig/src/workflow/ArcanistAnoidWorkflow.php arcanist.new/src/workflow/ArcanistAnoidWorkflow.php
---- arcanist.orig/src/workflow/ArcanistAnoidWorkflow.php	2022-03-31 13:23:30.865095192 +0200
-+++ arcanist.new/src/workflow/ArcanistAnoidWorkflow.php	2022-04-01 12:19:15.644159639 +0200
-@@ -24,13 +24,6 @@
-   }
- 
-   public function runWorkflow() {
--    if (!Filesystem::binaryExists('python3')) {
--      throw new PhutilArgumentUsageException(
--        pht(
--          'The "arc anoid" workflow requires "python3" to be available '.
--          'in your $PATH.'));
--    }
--
-     $support_dir = phutil_get_library_root('arcanist');
-     $support_dir = dirname($support_dir);
-     $support_dir = $support_dir.'/support/';
diff --git a/pkgs/development/tools/misc/arcanist/shellcomplete-strlen-null.patch b/pkgs/development/tools/misc/arcanist/shellcomplete-strlen-null.patch
deleted file mode 100644
index 6911ce074e0cd..0000000000000
--- a/pkgs/development/tools/misc/arcanist/shellcomplete-strlen-null.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/toolset/workflow/ArcanistShellCompleteWorkflow.php b/src/toolset/workflow/ArcanistShellCompleteWorkflow.php
-index 9c2fcf9a..307231c8 100644
---- a/src/toolset/workflow/ArcanistShellCompleteWorkflow.php
-+++ b/src/toolset/workflow/ArcanistShellCompleteWorkflow.php
-@@ -92,7 +92,7 @@ EOTEXT
-     $argv = $this->getArgument('argv');
- 
-     $is_generate = $this->getArgument('generate');
--    $is_shell = (bool)strlen($this->getArgument('shell'));
-+    $is_shell = phutil_nonempty_string($this->getArgument('shell'));
-     $is_current = $this->getArgument('current');
- 
-     if ($argv) {
diff --git a/pkgs/development/tools/misc/astyle/default.nix b/pkgs/development/tools/misc/astyle/default.nix
index a23e7936985c4..139233ef1f761 100644
--- a/pkgs/development/tools/misc/astyle/default.nix
+++ b/pkgs/development/tools/misc/astyle/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "astyle";
-  version = "3.4.15";
+  version = "3.5";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
-    hash = "sha256-BQTHM7v+lmiLZsEHtt8/oFJj3vq7I4WOQsRLpVRYbms=";
+    hash = "sha256-3vwct7+oY77EcOg2wldDmhGZyiyLE6ZSoyf9eMj1kjw=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/tools/misc/automake/automake-1.16.x.nix b/pkgs/development/tools/misc/automake/automake-1.16.x.nix
index 0d9572c6f3140..20fe31ef6cd7f 100644
--- a/pkgs/development/tools/misc/automake/automake-1.16.x.nix
+++ b/pkgs/development/tools/misc/automake/automake-1.16.x.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, perl, autoconf }:
+{ lib, stdenv, fetchurl, perl, autoconf, updateAutotoolsGnuConfigScriptsHook }:
 
 stdenv.mkDerivation rec {
   pname = "automake";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   strictDeps = true;
-  nativeBuildInputs = [ autoconf perl ];
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook autoconf perl ];
   buildInputs = [ autoconf ];
 
   setupHook = ./setup-hook.sh;
diff --git a/pkgs/development/tools/misc/awf/default.nix b/pkgs/development/tools/misc/awf/default.nix
index 79d630d5688b5..d72b5dc51ed35 100644
--- a/pkgs/development/tools/misc/awf/default.nix
+++ b/pkgs/development/tools/misc/awf/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Widget Factory";
+    description = "Widget Factory";
     longDescription = ''
       A widget factory is a theme preview application for gtk2 and
       gtk3. It displays the various widget types provided by gtk2/gtk3
diff --git a/pkgs/development/tools/misc/babeltrace/default.nix b/pkgs/development/tools/misc/babeltrace/default.nix
deleted file mode 100644
index 014d926eea3d7..0000000000000
--- a/pkgs/development/tools/misc/babeltrace/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, glib, libuuid, popt, elfutils }:
-
-stdenv.mkDerivation rec {
-  pname = "babeltrace";
-  version = "1.5.8";
-
-  src = fetchurl {
-    url = "https://www.efficios.com/files/babeltrace/${pname}-${version}.tar.bz2";
-    sha256 = "1hkg3phnamxfrhwzmiiirbhdgckzfkqwhajl0lmr1wfps7j47wcz";
-  };
-
-  # The pre-generated ./configure script uses an old autoconf version which
-  # breaks cross-compilation (replaces references to malloc with rpl_malloc).
-  # Re-generate with nixpkgs's autoconf. This requires glib to be present in
-  # nativeBuildInputs for its m4 macros to be present.
-  nativeBuildInputs = [ autoreconfHook glib pkg-config ];
-  buildInputs = [ glib libuuid popt elfutils ];
-
-  # --enable-debug-info (default) requires the configure script to run host
-  # executables to determine the elfutils library version, which cannot be done
-  # while cross compiling.
-  configureFlags = lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "--disable-debug-info";
-
-  meta = with lib; {
-    description = "Command-line tool and library to read and convert LTTng tracefiles";
-    homepage = "https://www.efficios.com/babeltrace";
-    license = licenses.mit;
-    platforms = platforms.linux;
-    maintainers = [ maintainers.bjornfor ];
-  };
-
-}
diff --git a/pkgs/development/tools/misc/binutils/2.38/libbfd.nix b/pkgs/development/tools/misc/binutils/2.38/libbfd.nix
index feac15b512f9f..08cf35970a6ce 100644
--- a/pkgs/development/tools/misc/binutils/2.38/libbfd.nix
+++ b/pkgs/development/tools/misc/binutils/2.38/libbfd.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A library for manipulating containers of machine code";
+    description = "Library for manipulating containers of machine code";
     longDescription = ''
       BFD is a library which provides a single interface to read and write
       object files, executables, archive files, and core files in any format.
diff --git a/pkgs/development/tools/misc/binutils/2.38/libopcodes.nix b/pkgs/development/tools/misc/binutils/2.38/libopcodes.nix
index 16b3695626d76..12a2ebc52fb25 100644
--- a/pkgs/development/tools/misc/binutils/2.38/libopcodes.nix
+++ b/pkgs/development/tools/misc/binutils/2.38/libopcodes.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A library from binutils for manipulating machine code";
+    description = "Library from binutils for manipulating machine code";
     homepage = "https://www.gnu.org/software/binutils/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ericson2314 ];
diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix
index c707d0daec896..a60457e73591e 100644
--- a/pkgs/development/tools/misc/binutils/default.nix
+++ b/pkgs/development/tools/misc/binutils/default.nix
@@ -170,8 +170,13 @@ stdenv.mkDerivation (finalAttrs: {
 
   # As binutils takes part in the stdenv building, we don't want references
   # to the bootstrap-tools libgcc (as uses to happen on arm/mips)
+  #
+  # for FreeBSD it's more complicated. With -static-libgcc, configure
+  # thinks that limits.h does not exist and the build fails for not finding
+  # LONG_MIN. The configure test itself succeeds but the compiler issues a
+  # warning about -static-libgcc being unused.
   env.NIX_CFLAGS_COMPILE =
-    if hostPlatform.isDarwin
+    if (hostPlatform.isDarwin || hostPlatform.isFreeBSD)
     then "-Wno-string-plus-int -Wno-deprecated-declarations"
     else "-static-libgcc";
 
@@ -217,6 +222,14 @@ stdenv.mkDerivation (finalAttrs: {
   ] ++ (if enableShared
       then [ "--enable-shared" "--disable-static" ]
       else [ "--disable-shared" "--enable-static" ])
+  ++ (lib.optionals (stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17") [
+      # lld17+ passes `--no-undefined-version` by default and makes this a hard
+      # error; libctf.ver version script references symbols that aren't present.
+      #
+      # This is fixed upstream and can be removed with the future release of 2.43.
+      # For now we allow this with `--undefined-version`:
+      "LDFLAGS=-Wl,--undefined-version"
+  ])
   ;
 
   # Fails
diff --git a/pkgs/development/tools/misc/binutils/libbfd.nix b/pkgs/development/tools/misc/binutils/libbfd.nix
index dca62b82eead0..c6ab2a6431d06 100644
--- a/pkgs/development/tools/misc/binutils/libbfd.nix
+++ b/pkgs/development/tools/misc/binutils/libbfd.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   };
 
   meta = with lib; {
-    description = "A library for manipulating containers of machine code";
+    description = "Library for manipulating containers of machine code";
     longDescription = ''
       BFD is a library which provides a single interface to read and write
       object files, executables, archive files, and core files in any format.
diff --git a/pkgs/development/tools/misc/binutils/libopcodes.nix b/pkgs/development/tools/misc/binutils/libopcodes.nix
index e067282a0e5e1..c8d3b78b29eb7 100644
--- a/pkgs/development/tools/misc/binutils/libopcodes.nix
+++ b/pkgs/development/tools/misc/binutils/libopcodes.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   };
 
   meta = with lib; {
-    description = "A library from binutils for manipulating machine code";
+    description = "Library from binutils for manipulating machine code";
     homepage = "https://www.gnu.org/software/binutils/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ericson2314 ];
diff --git a/pkgs/development/tools/misc/blackfire/default.nix b/pkgs/development/tools/misc/blackfire/default.nix
index de6894f6ebe3c..a66f6288d1781 100644
--- a/pkgs/development/tools/misc/blackfire/default.nix
+++ b/pkgs/development/tools/misc/blackfire/default.nix
@@ -10,7 +10,7 @@
 
 stdenv.mkDerivation rec {
   pname = "blackfire";
-  version = "2.28.2";
+  version = "2.28.4";
 
   src = passthru.sources.${stdenv.hostPlatform.system} or (throw "Unsupported platform for blackfire: ${stdenv.hostPlatform.system}");
 
@@ -57,23 +57,23 @@ stdenv.mkDerivation rec {
     sources = {
       "x86_64-linux" = fetchurl {
         url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_amd64.deb";
-        sha256 = "ECUWjBlWr2QSvYvzep7MVOrufCRTgLibkmOHAEhg36w=";
+        sha256 = "k6CCNafcw6oRD5Dj0AYkidVdOdOOcwT8GBiEcwviByc=";
       };
       "i686-linux" = fetchurl {
         url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_i386.deb";
-        sha256 = "cU9WpD+mIcAn1eYc9n6rGi/jML5F7g6BoXtfWAI4P+Y=";
+        sha256 = "zFnzbkPkTRUU6zn4zOlN9AyE3G2Y2Gp9l3MZRsmbdJc=";
       };
       "aarch64-linux" = fetchurl {
         url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_arm64.deb";
-        sha256 = "Ej2uFxl8gIW6V7hEGauRWhfdevxoAb5s+yyQi1TYQWQ=";
+        sha256 = "KxpSVTUyhbRHzlLH65XH2bXWS+OZExu0lpiLJ8comZA=";
       };
       "aarch64-darwin" = fetchurl {
         url = "https://packages.blackfire.io/blackfire/${version}/blackfire-darwin_arm64.pkg.tar.gz";
-        sha256 = "brcOya9uqicGXGVRggYP6yiOriho7zrbO5b3F1XMW+M=";
+        sha256 = "sVM7LLVbvbLBArjuZq/qclXclEzqbY47CmgUCNXuZw0=";
       };
       "x86_64-darwin" = fetchurl {
         url = "https://packages.blackfire.io/blackfire/${version}/blackfire-darwin_amd64.pkg.tar.gz";
-        sha256 = "M90t91STPtLnW3yd5gvhNC0RQ8aDLPmdXV7dZ03gp/4=";
+        sha256 = "mOxYOmDQiEZdAPVKaM/rO37/YLlRXHil83/DKhRqim8=";
       };
     };
 
@@ -88,8 +88,7 @@ stdenv.mkDerivation rec {
       fi
 
       for platform in ${lib.escapeShellArgs meta.platforms}; do
-        update-source-version "blackfire" "0" "${lib.fakeSha256}" --source-key="sources.$platform"
-        update-source-version "blackfire" "$NEW_VERSION" --source-key="sources.$platform"
+        update-source-version "blackfire" "$NEW_VERSION" --ignore-same-version --source-key="sources.$platform"
       done
     '';
   };
diff --git a/pkgs/development/tools/misc/blackfire/php-probe.nix b/pkgs/development/tools/misc/blackfire/php-probe.nix
index df6e223aeb19a..c30dde82aaa62 100644
--- a/pkgs/development/tools/misc/blackfire/php-probe.nix
+++ b/pkgs/development/tools/misc/blackfire/php-probe.nix
@@ -14,47 +14,47 @@ assert lib.assertMsg (!php.ztsSupport) "blackfire only supports non zts versions
 let
   phpMajor = lib.versions.majorMinor php.version;
 
-  version = "1.92.15";
+  version = "1.92.17";
 
   hashes = {
     "x86_64-linux" = {
       system = "amd64";
       hash = {
-        "8.1" = "sha256-CTh3HdTZS5tjnSN5JUX55aioFSqs3FQfy7S5ofXlyBs=";
-        "8.2" = "sha256-q/Zwpvm+pT6JdkC2nX7fEf+eDmWmtLniL+5Cys8kdNI=";
-        "8.3" = "sha256-8MGY3Spa4cWqUL4S/qHKPJql5DRhtvmYEE3oBLNNm3M=";
+        "8.1" = "sha256-BhAoC4q29toEq281aC2NRZ4uUhUDsl5QyiCh1dXpsLA=";
+        "8.2" = "sha256-jgqTRr9fOQQ/+bbJvXKq6kPeFGvUTs7gfBpkpeeFhWs=";
+        "8.3" = "sha256-McWJ+Ruyb7ySgDo8u7umgCjbh6dVd08wHYAxDMqjVGQ=";
       };
     };
     "i686-linux" = {
       system = "i386";
       hash = {
-        "8.1" = "sha256-mOiBQLXiPYMgHpcPTguEm0hffm+DZnv6MCbFbmRoEdE=";
-        "8.2" = "sha256-3xPG33DSxnQ9a9rbTov5ILi3hPWsruNZJS1NXttxfxQ=";
-        "8.3" = "sha256-4Nk+8ZIZ83/oeygDdhHI0mRRCvOEMmdWJoteDVkYuT4=";
+        "8.1" = "sha256-LRYSUZUqkSbjs5UZzNGGQKvf1aGyixqRQV1SYa7ica0=";
+        "8.2" = "sha256-VuPod48wx6rCSsZEV98AzqrD+a0t+yI0+9EifLjcROE=";
+        "8.3" = "sha256-r7+IVjLx0hpPWPL0sRSIUd4sBye1avQ0IW00fLIhfEY=";
       };
     };
     "aarch64-linux" = {
       system = "arm64";
       hash = {
-        "8.1" = "sha256-5XUk2v65ceHqnfatLq9E1+J5QRgCDpKxR4ZFpCAsfdI=";
-        "8.2" = "sha256-Lr8wBAXYHXwPokwQMni5tsNncor9ZRjNwtL/5hodUq8=";
-        "8.3" = "sha256-KZLPFaa5NPksfhA99S8qV3FngJTDonhG+MMPkCwxUys=";
+        "8.1" = "sha256-JQTqbWbFC3kEHuYQTXL70T7clIPZTje0E6LBAjyBQdc=";
+        "8.2" = "sha256-uhm8SlbOwzd2HKUXha9jWoxYPzDEbiOo4GXQDby4BYA=";
+        "8.3" = "sha256-w99LTLpkk6rvTXZU2Qwi5DA40Zyw2/c4060Beusfebk=";
       };
     };
     "aarch64-darwin" = {
       system = "arm64";
       hash = {
-        "8.1" = "sha256-G5wrH9M+b69BLKRI4n9FydGDV/q7Ch7u+Zvol2+ptwI=";
-        "8.2" = "sha256-zgcYT2oWCa2kc4wLx94nxRjg0sebjdGxuPJNbiBZ/Is=";
-        "8.3" = "sha256-l1zNH47lNpHj7qRgqoxJisn7dU2VzSGFt0v8/9VpYiI=";
+        "8.1" = "sha256-sXxVKZSEL1VVFoh41hWwF1KR9hX2R7SwUQ4et+ouJYs=";
+        "8.2" = "sha256-wA9oTpbUX967crg4Gq+AI04HtWmitodgTKNm1EEWltI=";
+        "8.3" = "sha256-l7C7k/6tYfkUJ2qkeY52XjP6uDfXm0Mk/xM0hoRvsEM=";
       };
     };
     "x86_64-darwin" = {
       system = "amd64";
       hash = {
-        "8.1" = "sha256-mmmzmR4yzwmXAl6YoSOKSivF7uixGZYaFQVIqWd0Ud4=";
-        "8.2" = "sha256-1jnw3BADm38C1Hi4lBs5B+kJl1karTljVHxHGEfZmtw=";
-        "8.3" = "sha256-7a2JyeLP4HwyaYsb7zAio2HrUPbBVpVEOUjWKCilkFY=";
+        "8.1" = "sha256-SDS7JaktrW9z9R0jDwd+Q3W13KnPknuIoKaaJddORW8=";
+        "8.2" = "sha256-pwFI4A4eUZKEZ5tDDlFTz5O+as7LXuyWdESgZI6soHQ=";
+        "8.3" = "sha256-H++ksK3IjHDCbGD3BaVpWlKx8OH0G3Luktx2pu0GCj0=";
       };
     };
   };
@@ -107,8 +107,7 @@ stdenv.mkDerivation (finalAttrs: {
       fi
 
       for source in ${lib.concatStringsSep " " (builtins.attrNames finalAttrs.passthru.updateables)}; do
-        update-source-version "$UPDATE_NIX_ATTR_PATH.updateables.$source" "0" "sha256-${lib.fakeSha256}"
-        update-source-version "$UPDATE_NIX_ATTR_PATH.updateables.$source" "$NEW_VERSION"
+        update-source-version "$UPDATE_NIX_ATTR_PATH.updateables.$source" "$NEW_VERSION" --ignore-same-version
       done
     '';
 
diff --git a/pkgs/development/tools/misc/bonnmotion/default.nix b/pkgs/development/tools/misc/bonnmotion/default.nix
index 558902debd123..0c3406c785eb5 100644
--- a/pkgs/development/tools/misc/bonnmotion/default.nix
+++ b/pkgs/development/tools/misc/bonnmotion/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A mobility scenario generation and analysis tool";
+    description = "Mobility scenario generation and analysis tool";
     mainProgram = "bm";
     longDescription = ''
       BonnMotion is a Java software which creates and analyzes mobility
diff --git a/pkgs/development/tools/misc/bsdbuild/default.nix b/pkgs/development/tools/misc/bsdbuild/default.nix
index e3bfc958437a3..e7b16547d383b 100644
--- a/pkgs/development/tools/misc/bsdbuild/default.nix
+++ b/pkgs/development/tools/misc/bsdbuild/default.nix
@@ -49,7 +49,7 @@ EOF
 
   meta = {
     homepage = "http://bsdbuild.hypertriton.com";
-    description = "A cross-platform build system";
+    description = "Cross-platform build system";
 
     longDescription = ''
       BSDBuild is a cross-platform build system. Derived from the
diff --git a/pkgs/development/tools/misc/c2ffi/default.nix b/pkgs/development/tools/misc/c2ffi/default.nix
index 28364b8beeedf..56dbcb06a12ce 100644
--- a/pkgs/development/tools/misc/c2ffi/default.nix
+++ b/pkgs/development/tools/misc/c2ffi/default.nix
@@ -52,7 +52,7 @@ llvmPackages.stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/rpav/c2ffi";
-    description = "An LLVM based tool for extracting definitions from C, C++, and Objective C header files for use with foreign function call interfaces";
+    description = "LLVM based tool for extracting definitions from C, C++, and Objective C header files for use with foreign function call interfaces";
     mainProgram = "c2ffi";
     license = licenses.lgpl21Only;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/tools/misc/cgdb/default.nix b/pkgs/development/tools/misc/cgdb/default.nix
index 6bf752cb5bcf8..b44c8e90f45e6 100644
--- a/pkgs/development/tools/misc/cgdb/default.nix
+++ b/pkgs/development/tools/misc/cgdb/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ ncurses readline flex texinfo ];
 
   meta = with lib; {
-    description = "A curses interface to gdb";
+    description = "Curses interface to gdb";
     mainProgram = "cgdb";
 
     homepage = "https://cgdb.github.io/";
diff --git a/pkgs/development/tools/misc/clojure-lsp/default.nix b/pkgs/development/tools/misc/clojure-lsp/default.nix
index e1956f7ea8bf3..73f8e6dcd4310 100644
--- a/pkgs/development/tools/misc/clojure-lsp/default.nix
+++ b/pkgs/development/tools/misc/clojure-lsp/default.nix
@@ -76,6 +76,6 @@ buildGraalvmNativeImage rec {
     homepage = "https://github.com/clojure-lsp/clojure-lsp";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.mit;
-    maintainers = with maintainers; [ ericdallo babariviere ];
+    maintainers = with maintainers; [ ericdallo ];
   };
 }
diff --git a/pkgs/development/tools/misc/coccinelle/default.nix b/pkgs/development/tools/misc/coccinelle/default.nix
index 6eca9b7f8fa9e..5e97e8486a63b 100644
--- a/pkgs/development/tools/misc/coccinelle/default.nix
+++ b/pkgs/development/tools/misc/coccinelle/default.nix
@@ -1,67 +1,22 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , ocamlPackages
 , pkg-config
 , autoreconfHook
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "coccinelle";
-  version = "1.1.1";
+  version = "1.2";
 
   src = fetchFromGitHub {
-    repo = pname;
-    rev = version;
+    repo = "coccinelle";
+    rev = finalAttrs.version;
     owner = "coccinelle";
-    hash = "sha256-rS9Ktp/YcXF0xUtT4XZtH5F9huvde0vRztY7vGtyuqY=";
+    hash = "sha256-v51KQLMJENLrlstCsP3DAuJJFMyjFyOZPJ7cRW5ovws=";
   };
 
-  patches = [
-    # Fix data path lookup.
-    # https://github.com/coccinelle/coccinelle/pull/270
-    (fetchpatch {
-      url = "https://github.com/coccinelle/coccinelle/commit/540888ff426e0b1f7907b63ce26e712d1fc172cc.patch";
-      sha256 = "sha256-W8RNIWDAC3lQ5bG+gD50r7x919JIcZRpt3QSOSMWpW4=";
-    })
-
-    # Fix attaching code before declarations.
-    # https://github.com/coccinelle/coccinelle/issues/282
-    (fetchpatch {
-      url = "https://github.com/coccinelle/coccinelle/commit/cd33db143416d820f547bf5869482cfcfc0ea9d0.patch";
-      sha256 = "q7wbxbB9Ob0fSJwCjRtDPO3Xg4RO9yrQZG9G0/LGunI=";
-    })
-
-    # Fix attaching declaration metavariables.
-    # https://github.com/coccinelle/coccinelle/issues/281
-    (fetchpatch {
-      url = "https://github.com/coccinelle/coccinelle/commit/df71c5c0fe2a73c7358f73f45a550b57a7e30d85.patch";
-      sha256 = "qrYfligJnXP7J5G/hfzyaKg9aFn74VExtc/Rs/DI2gc=";
-    })
-
-    # Support GLib’s autocleanup macros.
-    # https://github.com/coccinelle/coccinelle/issues/275
-    (fetchpatch {
-      url = "https://github.com/coccinelle/coccinelle/commit/6d5602aca8775c3c5c503939c3dcf0637649d09b.patch";
-      sha256 = "NACf8joOOvN32H/sIfI+oqiT3289zXXQVVfXbRfbIe8=";
-    })
-
-    # Exit with non-zero status on failure.
-    (fetchpatch {
-      url = "https://github.com/coccinelle/coccinelle/commit/6c0a855af14d41864e1e522b93dc39646a3b83c7.patch";
-      sha256 = "6yfK8arB0GDW7o4cXsv0Y9TMvqgGf3/P1ebXrFFUC80=";
-    })
-    (fetchpatch {
-      url = "https://github.com/coccinelle/coccinelle/commit/5448bb2bd03491ffec356bf7bd6ddcdbf4d36bc9.patch";
-      sha256 = "fyyxw2BNZUpyLBieIhOKeWbLFGP1tjULH70w/hU+jKw=";
-    })
-    (fetchpatch {
-      url = "https://github.com/coccinelle/coccinelle/commit/b8b1937657765e991195a10fcd7b8f7a300fc60b.patch";
-      sha256 = "ergWJF6BKrhmJhx1aiVYDHztgjaQvaJ5iZRAmC9i22s=";
-    })
-  ];
-
   nativeBuildInputs = with ocamlPackages; [
     autoreconfHook
     pkg-config
@@ -105,4 +60,4 @@ stdenv.mkDerivation rec {
     platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.thoughtpolice ];
   };
-}
+})
diff --git a/pkgs/development/tools/misc/coreboot-toolchain/default.nix b/pkgs/development/tools/misc/coreboot-toolchain/default.nix
index 54f3f6e9b459e..51d80b6df9ae9 100644
--- a/pkgs/development/tools/misc/coreboot-toolchain/default.nix
+++ b/pkgs/development/tools/misc/coreboot-toolchain/default.nix
@@ -19,12 +19,12 @@ let
 
     stdenvNoCC.mkDerivation (finalAttrs: {
       pname = "coreboot-toolchain-${arch}";
-      version = "24.02";
+      version = "24.05";
 
       src = fetchgit {
         url = "https://review.coreboot.org/coreboot";
         rev = finalAttrs.version;
-        hash = "sha256-fHulr7w5I9LzBwGt/ZVaN7A3XEd7uQ2eJJifxII7rtk=";
+        hash = "sha256-jTfMFvl3sG3BIVVkpZ81BQ20Bs+2ESE6RMh0fW86rKE=";
         fetchSubmodules = false;
         leaveDotGit = true;
         postFetch = ''
@@ -63,7 +63,7 @@ let
         homepage = "https://www.coreboot.org";
         description = "coreboot toolchain for ${arch} targets";
         license = with licenses; [ bsd2 bsd3 gpl2 lgpl2Plus gpl3Plus ];
-        maintainers = with maintainers; [ felixsinger ];
+        maintainers = with maintainers; [ felixsinger jmbaur ];
         platforms = platforms.linux;
       };
     })
diff --git a/pkgs/development/tools/misc/coreboot-toolchain/stable.nix b/pkgs/development/tools/misc/coreboot-toolchain/stable.nix
index 6f5160e033b72..6656e78220869 100644
--- a/pkgs/development/tools/misc/coreboot-toolchain/stable.nix
+++ b/pkgs/development/tools/misc/coreboot-toolchain/stable.nix
@@ -28,17 +28,17 @@
     };
   }
   {
-    name = "binutils-2.41.tar.xz";
+    name = "binutils-2.42.tar.xz";
     archive = fetchurl {
-      sha256 = "0l3l003dynq11ppr2h8p0cfc7zyky8ilfwg60sbfan9lwa4mg6mf";
-      url = "mirror://gnu/binutils/binutils-2.41.tar.xz";
+      sha256 = "0058hngi16793aja9ih623mfr98dcarmf549nw38nxzwslgx9r7n";
+      url = "mirror://gnu/binutils/binutils-2.42.tar.xz";
     };
   }
   {
-    name = "R06_28_23.tar.gz";
+    name = "acpica-unix-20230628.tar.gz";
     archive = fetchurl {
-      sha256 = "0cadxihshyrjplrx01vna13r1m2f6lj1klw7mh8pg2m0gjdpjj12";
-      url = "https://github.com/acpica/acpica/archive/refs/tags/R06_28_23.tar.gz";
+      sha256 = "1kjwzyfrmw0fhawjvpqib3l5jxdlcpj3vv92sb7ls8ixbrs6m1w6";
+      url = "https://downloadmirror.intel.com/783534/acpica-unix-20230628.tar.gz";
     };
   }
   {
diff --git a/pkgs/development/tools/misc/cppi/default.nix b/pkgs/development/tools/misc/cppi/default.nix
index ef783b748cbc3..8aa0afd7011e0 100644
--- a/pkgs/development/tools/misc/cppi/default.nix
+++ b/pkgs/development/tools/misc/cppi/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://savannah.gnu.org/projects/cppi/";
 
-    description = "A C preprocessor directive indenter";
+    description = "C preprocessor directive indenter";
     mainProgram = "cppi";
 
     longDescription =
diff --git a/pkgs/development/tools/misc/creduce/default.nix b/pkgs/development/tools/misc/creduce/default.nix
index 90da97ae9e18f..e41d8d3379fea 100644
--- a/pkgs/development/tools/misc/creduce/default.nix
+++ b/pkgs/development/tools/misc/creduce/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A C program reducer";
+    description = "C program reducer";
     mainProgram = "creduce";
     homepage = "https://embed.cs.utah.edu/creduce";
     # Officially, the license is: https://github.com/csmith-project/creduce/blob/master/COPYING
diff --git a/pkgs/development/tools/misc/cscope/default.nix b/pkgs/development/tools/misc/cscope/default.nix
index 432f689d64dd5..05e61e1afb764 100644
--- a/pkgs/development/tools/misc/cscope/default.nix
+++ b/pkgs/development/tools/misc/cscope/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A developer's tool for browsing source code";
+    description = "Developer's tool for browsing source code";
 
     longDescription = ''
       Cscope is a developer's tool for browsing source code.  It has
diff --git a/pkgs/development/tools/misc/csmith/default.nix b/pkgs/development/tools/misc/csmith/default.nix
index 5371f88c0a87b..529339c38c113 100644
--- a/pkgs/development/tools/misc/csmith/default.nix
+++ b/pkgs/development/tools/misc/csmith/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A random generator of C programs";
+    description = "Random generator of C programs";
     homepage = "https://embed.cs.utah.edu/csmith";
     # Officially, the license is this: https://github.com/csmith-project/csmith/blob/master/COPYING
     license = licenses.bsd2;
diff --git a/pkgs/development/tools/misc/ctags/default.nix b/pkgs/development/tools/misc/ctags/default.nix
index 228de9300b0cc..fadc3b3830ce7 100644
--- a/pkgs/development/tools/misc/ctags/default.nix
+++ b/pkgs/development/tools/misc/ctags/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A tool for fast source code browsing (exuberant ctags)";
+    description = "Tool for fast source code browsing (exuberant ctags)";
     mainProgram = "ctags";
     longDescription = ''
       Ctags generates an index (or tag) file of language objects found
diff --git a/pkgs/development/tools/misc/ctags/wrapped.nix b/pkgs/development/tools/misc/ctags/wrapped.nix
index 2bc3aa5ecf4fa..b3734bbf06a4e 100644
--- a/pkgs/development/tools/misc/ctags/wrapped.nix
+++ b/pkgs/development/tools/misc/ctags/wrapped.nix
@@ -1,78 +1,90 @@
-{ pkgs, ctags }:
-
-with pkgs.lib;
-
-# define some ctags wrappers adding support for some not that common languages
-# customization:
-# a) add stuff here
-# b) override asLang, phpLang, ... using packageOverrides
-# c) use ctagsWrapped.override {args = [ your liste ];}
+{
+  lib,
+  ctags,
+  writeTextFile,
+  runtimeShell,
+  ctagsWrapped,
+  name ? "${ctags.name}-wrapped",
+  args ? lib.concatLists [
+    ctagsWrapped.defaultArgs
+    ctagsWrapped.phpLang
+    ctagsWrapped.jsLang
+    ctagsWrapped.nixLang
+    ctagsWrapped.asLang
+    ctagsWrapped.rubyLang
+  ],
+}:
 
-# install using -iA ctagsWrapped.ctagsWrapped
+# Define a ctags wrapper derivation adding support for some not-that-common languages customization.
+# Override this to provide different args.
 
-{
+writeTextFile {
+  inherit name;
+  executable = true;
+  destination = "/bin/${name}";
+  text = ''
+    #!${runtimeShell}
+    exec ${ctags}/bin/ctags ${lib.concatStringsSep " " (map lib.escapeShellArg args)} "$@"
+  '';
+  derivationArgs = {
+    # Inherit the metadata from the parent `ctags` derivation.
+    inherit (ctags) meta;
 
-  # the derivation. use language extensions specified by args
-  ctagsWrapped = makeOverridable ( {args, name} :  pkgs.writeScriptBin name ''
-  #!${pkgs.runtimeShell}
-  exec ${pkgs.ctags}/bin/ctags ${concatStringsSep " " (map escapeShellArg args)} "$@"
-  '') {
-    args = let x = pkgs.ctagsWrapped; in concatLists [
-      x.defaultArgs x.phpLang x.jsLang x.nixLang x.asLang x.rubyLang
-    ];
-    name = "${ctags.name}-wrapped";
-  };
+    passthru = {
+      # `ctagsWrapped` exists for backwards compatibility; ctagsWrapped used to be an attrset and
+      # now is a derivation, so keep supporting the use of `ctagsWrapped.ctagsWrapped`.
+      inherit ctagsWrapped;
 
-  ### language arguments
+      ### language arguments
 
-  # don't scan version control directories
-  defaultArgs = [
-    "--exclude=.svn"
-    "--exclude=.hg"
-    "--exclude=.git"
-    "--exclude=_darcs"
-    "--sort=yes"
-  ];
+      # don't scan version control directories
+      defaultArgs = [
+        "--exclude=.svn"
+        "--exclude=.hg"
+        "--exclude=.git"
+        "--exclude=_darcs"
+        "--sort=yes"
+      ];
 
-  # actionscript
-  asLang = [
-    "--langdef=ActionScript"
-    "--langmap=ActionScript:.as"
-    "--regex-ActionScript=/function[ \\t]+([A-Za-z0-9_]+)[ \\t]*\\(/\\1/f,function,functions/"
-    "--regex-ActionScript=/function[ \\t]+(set|get)[ \\t]+([A-Za-z0-9_]+)[ \\t]*\\(/\\2/p,property,properties/"
-    "--regex-ActionScript=/interface[ \\t]+[a-z0-9_.]*([A-Z][A-Za-z0-9_]+)/\\1/i,interface,interfaces/"
-    "--regex-ActionScript=/package[ \\t]+([^ \\t]*)/\\1/p/"
-    "--regex-ActionScript=/class[ \\t]+[a-z0-9_.]*([A-Z][A-Za-z0-9_]+)/\\1/c,class,classes/"
-  ];
+      # actionscript
+      asLang = [
+        "--langdef=ActionScript"
+        "--langmap=ActionScript:.as"
+        "--regex-ActionScript=/function[ \\t]+([A-Za-z0-9_]+)[ \\t]*\\(/\\1/f,function,functions/"
+        "--regex-ActionScript=/function[ \\t]+(set|get)[ \\t]+([A-Za-z0-9_]+)[ \\t]*\\(/\\2/p,property,properties/"
+        "--regex-ActionScript=/interface[ \\t]+[a-z0-9_.]*([A-Z][A-Za-z0-9_]+)/\\1/i,interface,interfaces/"
+        "--regex-ActionScript=/package[ \\t]+([^ \\t]*)/\\1/p/"
+        "--regex-ActionScript=/class[ \\t]+[a-z0-9_.]*([A-Z][A-Za-z0-9_]+)/\\1/c,class,classes/"
+      ];
 
-  # PHP
-  phpLang = [
-    "--langmap=PHP:.php"
-    "--regex-PHP=/abstract class ([^ ]*)/\\1/c/"
-    "--regex-PHP=/interface ([^ ]*)/\\1/i/"
-    "--regex-PHP=/function[ \\t]+([^ (]*)/\\1/f/"
-  ];
+      # PHP
+      phpLang = [
+        "--langmap=PHP:.php"
+        "--regex-PHP=/abstract class ([^ ]*)/\\1/c/"
+        "--regex-PHP=/interface ([^ ]*)/\\1/i/"
+        "--regex-PHP=/function[ \\t]+([^ (]*)/\\1/f/"
+      ];
 
-  # Javascript: also find unnamed functions and functions being passed within a dict.
-  # the dict properties is used to implement duck typing in frameworks
-  # var foo = function () { ... }
-  # {
-  # a : function () {}
-  # only recognize names up 100 characters. Else you'll be in trouble scanning compressed .js files.
-  jsLang = [
-    "--regex-JavaScript=/([^ \\t]{1,100})[ \\t]*:[ \\t]*function[ \\t]*\\(/\\1/f/"
-  ];
+      # Javascript: also find unnamed functions and functions being passed within a dict.
+      # the dict properties is used to implement duck typing in frameworks
+      # var foo = function () { ... }
+      # {
+      # a : function () {}
+      # only recognize names up 100 characters. Else you'll be in trouble scanning compressed .js files.
+      jsLang = [ "--regex-JavaScript=/([^ \\t]{1,100})[ \\t]*:[ \\t]*function[ \\t]*\\(/\\1/f/" ];
 
-  # find foo in "foo =", don't think we can do a lot better
-  nixLang = [
-    "--langdef=NIX"
-    "--langmap=NIX:.nix"
-    "--regex-NIX=/([^ \\t*]*)[ \\t]*=/\\1/f/"
-  ];
+      # find foo in "foo =", don't think we can do a lot better
+      nixLang = [
+        "--langdef=NIX"
+        "--langmap=NIX:.nix"
+        "--regex-NIX=/([^ \\t*]*)[ \\t]*=/\\1/f/"
+      ];
 
-  rubyLang = [
-    "--langmap=RUBY:.rb"
-    "--regex-RUBY=/class ([^ ]*)/\\1/c/"
-    "--regex-RUBY=/^[ ]*module[ ]*([^ ]*)/\\1/m/"
-  ];
+      rubyLang = [
+        "--langmap=RUBY:.rb"
+        "--regex-RUBY=/class ([^ ]*)/\\1/c/"
+        "--regex-RUBY=/^[ ]*module[ ]*([^ ]*)/\\1/m/"
+      ];
+    };
+  };
 }
diff --git a/pkgs/development/tools/misc/dart-sass/default.nix b/pkgs/development/tools/misc/dart-sass/default.nix
index df446387b93a0..f3e30557ae9bd 100644
--- a/pkgs/development/tools/misc/dart-sass/default.nix
+++ b/pkgs/development/tools/misc/dart-sass/default.nix
@@ -10,24 +10,24 @@
 }:
 
 let
-  embedded-protocol-version = "2.7.0";
+  embedded-protocol-version = "2.7.1";
 
   embedded-protocol = fetchFromGitHub {
     owner = "sass";
     repo = "sass";
     rev = "refs/tags/embedded-protocol-${embedded-protocol-version}";
-    hash = "sha256-BQCQ4GE85teRkCY2iuvqFT4vyf6RzZ1ztoRhBCAwA4w=";
+    hash = "sha256-6bGH/klCYxuq7CrOJVF8ySafhLJwet5ppBcpI8dzeCQ=";
   };
 in
 buildDartApplication rec {
   pname = "dart-sass";
-  version = "1.77.2";
+  version = "1.77.4";
 
   src = fetchFromGitHub {
     owner = "sass";
     repo = pname;
     rev = version;
-    hash = "sha256-Spd21/IRNDtpgMecoO2ozKWEVSQneMGCOVCCePaFzus=";
+    hash = "sha256-xHOZDeK6xYnfrb6yih6jzRDZLRvyp0EeKZynEq3A4aI=";
   };
 
   pubspecLock = lib.importJSON ./pubspec.lock.json;
@@ -47,7 +47,7 @@ buildDartApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/sass/dart-sass";
-    description = "The reference implementation of Sass, written in Dart";
+    description = "Reference implementation of Sass, written in Dart";
     mainProgram = "sass";
     license = licenses.mit;
     maintainers = with maintainers; [ lelgenio ];
diff --git a/pkgs/development/tools/misc/dart-sass/pubspec.lock.json b/pkgs/development/tools/misc/dart-sass/pubspec.lock.json
index 22f85b690231a..da5e7ea435f1f 100644
--- a/pkgs/development/tools/misc/dart-sass/pubspec.lock.json
+++ b/pkgs/development/tools/misc/dart-sass/pubspec.lock.json
@@ -24,11 +24,11 @@
       "dependency": "direct dev",
       "description": {
         "name": "archive",
-        "sha256": "ecf4273855368121b1caed0d10d4513c7241dfc813f7d3c8933b36622ae9b265",
+        "sha256": "cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.5.1"
+      "version": "3.6.1"
     },
     "args": {
       "dependency": "direct main",
@@ -524,11 +524,11 @@
       "dependency": "direct dev",
       "description": {
         "name": "pubspec_parse",
-        "sha256": "c63b2876e58e194e4b0828fcb080ad0e06d051cb607a6be51a9e084f47cb9367",
+        "sha256": "c799b721d79eb6ee6fa56f00c04b472dcd44a30d258fac2174a6ec57302678f8",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.2.3"
+      "version": "1.3.0"
     },
     "quiver": {
       "dependency": "transitive",
@@ -754,11 +754,11 @@
       "dependency": "transitive",
       "description": {
         "name": "vm_service",
-        "sha256": "7475cb4dd713d57b6f7464c0e13f06da0d535d8b2067e188962a59bac2cf280b",
+        "sha256": "360c4271613beb44db559547d02f8b0dc044741d0eeb9aa6ccdb47e8ec54c63a",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "14.2.2"
+      "version": "14.2.3"
     },
     "watcher": {
       "dependency": "direct main",
@@ -784,11 +784,11 @@
       "dependency": "transitive",
       "description": {
         "name": "web_socket",
-        "sha256": "217f49b5213796cb508d6a942a5dc604ce1cb6a0a6b3d8cb3f0c314f0ecea712",
+        "sha256": "24301d8c293ce6fe327ffe6f59d8fd8834735f0ec36e4fd383ec7ff8a64aa078",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.1.4"
+      "version": "0.1.5"
     },
     "web_socket_channel": {
       "dependency": "transitive",
diff --git a/pkgs/development/tools/misc/dejagnu/default.nix b/pkgs/development/tools/misc/dejagnu/default.nix
index 5c7720a2024b4..55581aedce607 100644
--- a/pkgs/development/tools/misc/dejagnu/default.nix
+++ b/pkgs/development/tools/misc/dejagnu/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, lib, stdenv, expect, makeWrapper }:
+{ fetchurl, lib, stdenv, expect, makeWrapper, updateAutotoolsGnuConfigScriptsHook }:
 
 stdenv.mkDerivation rec {
   pname = "dejagnu";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1qx2cv6qkxbiqg87jh217jb62hk3s7dmcs4cz1llm2wmsynfznl7";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook makeWrapper ];
   buildInputs = [ expect ];
 
   # dejagnu-1.6.3 can't successfully run tests in source tree:
diff --git a/pkgs/development/tools/misc/devspace/default.nix b/pkgs/development/tools/misc/devspace/default.nix
index 4a1393f79d466..a6bed02574407 100644
--- a/pkgs/development/tools/misc/devspace/default.nix
+++ b/pkgs/development/tools/misc/devspace/default.nix
@@ -33,7 +33,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "An open-source developer tool for Kubernetes that lets you develop and deploy cloud-native software faster";
+    description = "Open-source developer tool for Kubernetes that lets you develop and deploy cloud-native software faster";
     homepage = "https://devspace.sh/";
     changelog = "https://github.com/devspace-sh/devspace/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/misc/dfu-programmer/default.nix b/pkgs/development/tools/misc/dfu-programmer/default.nix
index 71658e18d5529..a4c091bfbe7e8 100644
--- a/pkgs/development/tools/misc/dfu-programmer/default.nix
+++ b/pkgs/development/tools/misc/dfu-programmer/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     license = licenses.gpl2;
-    description = "A Device Firmware Update based USB programmer for Atmel chips with a USB bootloader";
+    description = "Device Firmware Update based USB programmer for Atmel chips with a USB bootloader";
     mainProgram = "dfu-programmer";
     homepage = "http://dfu-programmer.sourceforge.net/";
     platforms = platforms.unix;
diff --git a/pkgs/development/tools/misc/distcc/default.nix b/pkgs/development/tools/misc/distcc/default.nix
index 312f693285801..983576a753347 100644
--- a/pkgs/development/tools/misc/distcc/default.nix
+++ b/pkgs/development/tools/misc/distcc/default.nix
@@ -72,7 +72,7 @@ let
     };
 
     meta = {
-      description = "A fast, free distributed C/C++ compiler";
+      description = "Fast, free distributed C/C++ compiler";
       homepage = "http://distcc.org";
       license = "GPL";
 
diff --git a/pkgs/development/tools/misc/docopts/default.nix b/pkgs/development/tools/misc/docopts/default.nix
deleted file mode 100644
index 1b7834318772d..0000000000000
--- a/pkgs/development/tools/misc/docopts/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
-
-buildGoPackage rec {
-  pname = "docopts";
-  version = "0.6.4-with-no-mangle-double-dash";
-
-  src = fetchFromGitHub {
-    owner = "docopt";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "0zxax0kl8wqpkzmw9ij4qgfhjbk4r7996pjyp9xf5icyk8knp00q";
-  };
-
-  goPackagePath = "github.com/docopt/${pname}";
-
-  goDeps = ./deps.nix;
-
-  subPackages = [ "./" ];
-
-  postInstall = ''
-    install -D -m 755 ./go/src/$goPackagePath/docopts.sh $out/bin/docopts.sh
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/docopt/${pname}";
-    description = "docopt CLI tool for shell scripting";
-    license = licenses.mit;
-    maintainers = [ maintainers.confus ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/development/tools/misc/docopts/deps.nix b/pkgs/development/tools/misc/docopts/deps.nix
deleted file mode 100644
index 8cc1686de7d6b..0000000000000
--- a/pkgs/development/tools/misc/docopts/deps.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-[
-  {
-    goPackagePath = "github.com/docopt/docopt-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/docopt/docopt.go";
-      rev = "ee0de3bc6815ee19d4a46c7eb90f829db0e014b1"; # "0.6.2";
-      sha256 = "sha256-0mCKIC5x7aauBL8ahXB9ExMfoTJl55HaafWWWPNRmUI=";
-    };
-  }
-]
diff --git a/pkgs/development/tools/misc/dura/default.nix b/pkgs/development/tools/misc/dura/default.nix
index f82205dacaa72..c2b4b4206dc25 100644
--- a/pkgs/development/tools/misc/dura/default.nix
+++ b/pkgs/development/tools/misc/dura/default.nix
@@ -30,7 +30,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A background process that saves uncommitted changes on git";
+    description = "Background process that saves uncommitted changes on git";
     mainProgram = "dura";
     longDescription = ''
       Dura is a background process that watches your Git repositories and
diff --git a/pkgs/development/tools/misc/editorconfig-checker/default.nix b/pkgs/development/tools/misc/editorconfig-checker/default.nix
index 045cf0069d166..66560a91fcabd 100644
--- a/pkgs/development/tools/misc/editorconfig-checker/default.nix
+++ b/pkgs/development/tools/misc/editorconfig-checker/default.nix
@@ -29,7 +29,7 @@ buildGoModule rec {
 
   meta = with lib; {
     changelog = "https://github.com/editorconfig-checker/editorconfig-checker/releases/tag/${src.rev}";
-    description = "A tool to verify that your files are in harmony with your .editorconfig";
+    description = "Tool to verify that your files are in harmony with your .editorconfig";
     mainProgram = "editorconfig-checker";
     homepage = "https://editorconfig-checker.github.io/";
     license = licenses.mit;
diff --git a/pkgs/development/tools/misc/editorconfig-core-c/default.nix b/pkgs/development/tools/misc/editorconfig-core-c/default.nix
index 54ab03de2e2b6..d75cb7f8bc9e5 100644
--- a/pkgs/development/tools/misc/editorconfig-core-c/default.nix
+++ b/pkgs/development/tools/misc/editorconfig-core-c/default.nix
@@ -8,7 +8,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "editorconfig-core-c";
-  version = "0.12.7";
+  version = "0.12.8";
 
   outputs = [ "out" "dev" ];
 
@@ -16,7 +16,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "editorconfig";
     repo = "editorconfig-core-c";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-uKukgQPKIx+zJPf08MTYEtoBiWeVcQmZnjWl4Zk9xaY=";
+    hash = "sha256-zhWq87X8n7iyp5HBmV2ZTjcN09zQ/sBXPrGmQT0iRr4=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/tools/misc/elfkickers/default.nix b/pkgs/development/tools/misc/elfkickers/default.nix
index 7220ca31443a7..fa2ed6e395348 100644
--- a/pkgs/development/tools/misc/elfkickers/default.nix
+++ b/pkgs/development/tools/misc/elfkickers/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.muppetlabs.com/~breadbox/software/elfkickers.html";
-    description = "A collection of programs that access and manipulate ELF files";
+    description = "Collection of programs that access and manipulate ELF files";
     platforms = platforms.linux;
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.dtzWill ];
diff --git a/pkgs/development/tools/misc/elfutils/default.nix b/pkgs/development/tools/misc/elfutils/default.nix
index 6de0780d5a61c..a5a812aa034af 100644
--- a/pkgs/development/tools/misc/elfutils/default.nix
+++ b/pkgs/development/tools/misc/elfutils/default.nix
@@ -96,7 +96,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://sourceware.org/elfutils/";
-    description = "A set of utilities to handle ELF objects";
+    description = "Set of utilities to handle ELF objects";
     platforms = platforms.linux;
     # https://lists.fedorahosted.org/pipermail/elfutils-devel/2014-November/004223.html
     badPlatforms = [ lib.systems.inspect.platformPatterns.isStatic ];
diff --git a/pkgs/development/tools/misc/epm/default.nix b/pkgs/development/tools/misc/epm/default.nix
index b83bb8d332839..93a6a6d7343b7 100644
--- a/pkgs/development/tools/misc/epm/default.nix
+++ b/pkgs/development/tools/misc/epm/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ rpm ];
 
   meta = with lib; {
-    description = "The ESP Package Manager generates distribution archives for a variety of platforms";
+    description = "ESP Package Manager generates distribution archives for a variety of platforms";
     homepage = "https://jimjag.github.io/epm/";
     license = licenses.asl20;
     maintainers = with maintainers; [ pSub ];
diff --git a/pkgs/development/tools/misc/ezno/default.nix b/pkgs/development/tools/misc/ezno/default.nix
index 89654eef5c566..559622bf7da21 100644
--- a/pkgs/development/tools/misc/ezno/default.nix
+++ b/pkgs/development/tools/misc/ezno/default.nix
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   cargoBuildFlags = [ "--bin" "ezno" ];
 
   meta = with lib; {
-    description = "A JavaScript compiler and TypeScript checker with a focus on static analysis and runtime performance";
+    description = "JavaScript compiler and TypeScript checker with a focus on static analysis and runtime performance";
     mainProgram = "ezno";
     homepage = "https://github.com/kaleidawave/ezno";
     changelog = "https://github.com/kaleidawave/ezno/releases/tag/${src.rev}";
diff --git a/pkgs/development/tools/misc/fswatch/default.nix b/pkgs/development/tools/misc/fswatch/default.nix
index 0422da98839b3..afeac90c58c05 100644
--- a/pkgs/development/tools/misc/fswatch/default.nix
+++ b/pkgs/development/tools/misc/fswatch/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A cross-platform file change monitor with multiple backends";
+    description = "Cross-platform file change monitor with multiple backends";
     mainProgram = "fswatch";
     homepage = "https://github.com/emcrisostomo/fswatch";
     license = licenses.gpl3Plus;
diff --git a/pkgs/development/tools/misc/funzzy/default.nix b/pkgs/development/tools/misc/funzzy/default.nix
index debb6f04fc1cd..c05def18404bd 100644
--- a/pkgs/development/tools/misc/funzzy/default.nix
+++ b/pkgs/development/tools/misc/funzzy/default.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A lightweight watcher";
+    description = "Lightweight watcher";
     homepage = "https://github.com/cristianoliveira/funzzy";
     changelog = "https://github.com/cristianoliveira/funzzy/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix
index e607967a1205f..263196dab5efa 100644
--- a/pkgs/development/tools/misc/gdb/default.nix
+++ b/pkgs/development/tools/misc/gdb/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, targetPackages
 
 # Build time
-, fetchurl, fetchpatch, pkg-config, perl, texinfo, setupDebugInfoDirs, buildPackages
+, fetchurl, pkg-config, perl, texinfo, setupDebugInfoDirs, buildPackages
 
 # Run time
 , ncurses, readline, gmp, mpfr, expat, libipt, zlib, zstd, xz, dejagnu, sourceHighlight, libiconv
@@ -140,7 +140,9 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "The GNU Project debugger";
+    mainProgram = "gdb";
+
+    description = "GNU Project debugger";
 
     longDescription = ''
       GDB, the GNU Project debugger, allows you to see what is going
diff --git a/pkgs/development/tools/misc/gdbgui/default.nix b/pkgs/development/tools/misc/gdbgui/default.nix
index 8702fc32b4813..cc5b0fde7219b 100644
--- a/pkgs/development/tools/misc/gdbgui/default.nix
+++ b/pkgs/development/tools/misc/gdbgui/default.nix
@@ -43,7 +43,7 @@ buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A browser-based frontend for GDB";
+    description = "Browser-based frontend for GDB";
     mainProgram = "gdbgui";
     homepage = "https://www.gdbgui.com/";
     license = licenses.gpl3;
diff --git a/pkgs/development/tools/misc/gef/default.nix b/pkgs/development/tools/misc/gef/default.nix
index 9b9d81ca5c0ec..fd3071a081759 100644
--- a/pkgs/development/tools/misc/gef/default.nix
+++ b/pkgs/development/tools/misc/gef/default.nix
@@ -21,13 +21,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "gef";
-  version = "2024.01";
+  version = "2024.06";
 
   src = fetchFromGitHub {
     owner = "hugsy";
     repo = "gef";
     rev = version;
-    sha256 = "sha256-uSUr2NFvj7QIlvG3RWYm7A9Xx7a4JYkbAQld7c7+C7g=";
+    sha256 = "sha256-fo8hC2T2WDcG0MQffPm2QBPR89EPiqctkUJC40PeyWg=";
   };
 
   dontBuild = true;
@@ -74,7 +74,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A modern experience for GDB with advanced debugging features for exploit developers & reverse engineers";
+    description = "Modern experience for GDB with advanced debugging features for exploit developers & reverse engineers";
     mainProgram = "gef";
     homepage = "https://github.com/hugsy/gef";
     license = licenses.mit;
diff --git a/pkgs/development/tools/misc/gf/default.nix b/pkgs/development/tools/misc/gf/default.nix
index 47b20cfe92e5d..4b7c40bf983d1 100644
--- a/pkgs/development/tools/misc/gf/default.nix
+++ b/pkgs/development/tools/misc/gf/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A GDB Frontend";
+    description = "GDB Frontend";
     homepage = "https://github.com/nakst/gf";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/development/tools/misc/gnum4/default.nix b/pkgs/development/tools/misc/gnum4/default.nix
index 66de4ebf8b02e..5dea7f0595574 100644
--- a/pkgs/development/tools/misc/gnum4/default.nix
+++ b/pkgs/development/tools/misc/gnum4/default.nix
@@ -16,12 +16,17 @@ stdenv.mkDerivation rec {
 
   # https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-devel/m4/m4-1.4.19-r1.ebuild
   patches = lib.optional stdenv.hostPlatform.isLoongArch64 ./loong-fix-build.patch;
-  postPatch = if stdenv.hostPlatform.isLoongArch64 then ''
+  # this could be accomplished by updateAutotoolsGnuConfigScriptsHook, but that causes infinite recursion
+  # necessary for FreeBSD code path in configure
+  postPatch = ''
+    substituteInPlace ./build-aux/config.guess --replace-fail /usr/bin/uname uname
+  '' + lib.optionalString stdenv.hostPlatform.isLoongArch64 ''
     touch ./aclocal.m4 ./lib/config.hin ./configure ./doc/stamp-vti || die
     find . -name Makefile.in -exec touch {} + || die
-  '' else null;
+  '';
 
   strictDeps = true;
+
   enableParallelBuilding = true;
 
   doCheck = false;
diff --git a/pkgs/development/tools/misc/grpc-client-cli/default.nix b/pkgs/development/tools/misc/grpc-client-cli/default.nix
index 5e2e50c7b27f0..19cc8803cee43 100644
--- a/pkgs/development/tools/misc/grpc-client-cli/default.nix
+++ b/pkgs/development/tools/misc/grpc-client-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "grpc-client-cli";
-  version = "1.20.2";
+  version = "1.20.3";
 
   src = fetchFromGitHub {
     owner = "vadimi";
     repo = "grpc-client-cli";
     rev = "v${version}";
-    sha256 = "sha256-CD+p/Au+MVOV93VPQL2uD8DNKl3XfoJhOjdKcx8DFwQ=";
+    sha256 = "sha256-aPmHvi81jqRKO3aY6bZ9bMJmk/HZVl/8MAUZN3QJByQ=";
   };
 
-  vendorHash = "sha256-e8lz7IrGjx7oXLuNuIhwHW2IP4jfR9XB4HVDjpeH7/w=";
+  vendorHash = "sha256-ruC/JE4+ftkzmgDxg2bRxTszjBtDtKQQGvyFD9H0O3I=";
 
   meta = with lib; {
     description = "generic gRPC command line client";
diff --git a/pkgs/development/tools/misc/highlight-assertions/default.nix b/pkgs/development/tools/misc/highlight-assertions/default.nix
index 5db0a722dc10a..5dd965d6c0962 100644
--- a/pkgs/development/tools/misc/highlight-assertions/default.nix
+++ b/pkgs/development/tools/misc/highlight-assertions/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   RUSTC_BOOTSTRAP = 1;
 
   meta = with lib; {
-    description = "A tool for unit testing tree sitter highlights for nvim-treesitter";
+    description = "Tool for unit testing tree sitter highlights for nvim-treesitter";
     mainProgram = "highlight-assertions";
     homepage = "https://github.com/thehamsta/highlight-assertions";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/misc/hydra-cli/default.nix b/pkgs/development/tools/misc/hydra-cli/default.nix
index 104f105ac4ce5..46c0c9088a18e 100644
--- a/pkgs/development/tools/misc/hydra-cli/default.nix
+++ b/pkgs/development/tools/misc/hydra-cli/default.nix
@@ -40,7 +40,7 @@ rustPlatform.buildRustPackage rec {
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
-    description = "A client for the Hydra CI";
+    description = "Client for the Hydra CI";
     mainProgram = "hydra-cli";
     homepage = "https://github.com/nlewo/hydra-cli";
     license = with licenses; [ mit ];
diff --git a/pkgs/development/tools/misc/igprof/default.nix b/pkgs/development/tools/misc/igprof/default.nix
index a4e170f31b2ae..fc2036ec9bbd7 100644
--- a/pkgs/development/tools/misc/igprof/default.nix
+++ b/pkgs/development/tools/misc/igprof/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     broken = (stdenv.isLinux && stdenv.isAarch64);
-    description = "The Ignominous Profiler";
+    description = "Ignominous Profiler";
 
     longDescription = ''
       IgProf is a fast and light weight profiler. It correctly handles
diff --git a/pkgs/development/tools/misc/indent/default.nix b/pkgs/development/tools/misc/indent/default.nix
index c7cef90d0a439..8a371a56a3ff3 100644
--- a/pkgs/development/tools/misc/indent/default.nix
+++ b/pkgs/development/tools/misc/indent/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
   passthru.tests.static = pkgsStatic.indent;
   meta = {
     homepage = "https://www.gnu.org/software/indent/";
-    description = "A source code reformatter";
+    description = "Source code reformatter";
     mainProgram = "indent";
     license = lib.licenses.gpl3Plus;
     maintainers = [ lib.maintainers.mmahut ];
diff --git a/pkgs/development/tools/misc/jcli/default.nix b/pkgs/development/tools/misc/jcli/default.nix
index f5d9d7a858998..2b7f14284f164 100644
--- a/pkgs/development/tools/misc/jcli/default.nix
+++ b/pkgs/development/tools/misc/jcli/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub, fetchpatch }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
 buildGoModule rec {
   pname = "jcli";
diff --git a/pkgs/development/tools/misc/libtool/libtool2.nix b/pkgs/development/tools/misc/libtool/libtool2.nix
index 50c064cadfd0e..df07a2f6a5bfe 100644
--- a/pkgs/development/tools/misc/libtool/libtool2.nix
+++ b/pkgs/development/tools/misc/libtool/libtool2.nix
@@ -1,5 +1,6 @@
-{ lib, stdenv, fetchurl, fetchpatch, m4
+{ lib, stdenv, fetchurl, m4
 , runtimeShell
+, updateAutotoolsGnuConfigScriptsHook
 , file
 }:
 
@@ -38,7 +39,7 @@ stdenv.mkDerivation rec {
   # As libtool is an early bootstrap dependency try hard not to
   # add autoconf and automake or help2man dependencies here. That way we can
   # avoid pulling in perl and get away with just an `m4` depend.
-  nativeBuildInputs = [ m4 file ];
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook m4 file ];
   propagatedBuildInputs = [ m4 file ];
 
   # Don't fixup "#! /bin/sh" in Libtool, otherwise it will use the
diff --git a/pkgs/development/tools/misc/licenseclassifier/default.nix b/pkgs/development/tools/misc/licenseclassifier/default.nix
index 11e986c245b05..369adafa10b4f 100644
--- a/pkgs/development/tools/misc/licenseclassifier/default.nix
+++ b/pkgs/development/tools/misc/licenseclassifier/default.nix
@@ -22,7 +22,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "A License Classifier";
+    description = "License Classifier";
     mainProgram = "identify_license";
     longDescription = ''
       The license classifier can analyze text to determine what type of license
diff --git a/pkgs/development/tools/misc/linuxkit/default.nix b/pkgs/development/tools/misc/linuxkit/default.nix
index ebad2ed30f3b8..87ca62ac5f480 100644
--- a/pkgs/development/tools/misc/linuxkit/default.nix
+++ b/pkgs/development/tools/misc/linuxkit/default.nix
@@ -52,7 +52,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A toolkit for building secure, portable and lean operating systems for containers";
+    description = "Toolkit for building secure, portable and lean operating systems for containers";
     mainProgram = "linuxkit";
     license = licenses.asl20;
     homepage = "https://github.com/linuxkit/linuxkit";
diff --git a/pkgs/development/tools/misc/lsof/default.nix b/pkgs/development/tools/misc/lsof/default.nix
index 4cce674820af0..b43030594d3d1 100644
--- a/pkgs/development/tools/misc/lsof/default.nix
+++ b/pkgs/development/tools/misc/lsof/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/lsof-org/lsof";
-    description = "A tool to list open files";
+    description = "Tool to list open files";
     mainProgram = "lsof";
     longDescription = ''
       List open files. Can show what process has opened some file,
diff --git a/pkgs/development/tools/misc/lttng-ust/generic.nix b/pkgs/development/tools/misc/lttng-ust/generic.nix
index 89bc888828e20..24d022e4d8512 100644
--- a/pkgs/development/tools/misc/lttng-ust/generic.nix
+++ b/pkgs/development/tools/misc/lttng-ust/generic.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
     mainProgram = "lttng-gen-tp";
     homepage = "https://lttng.org/";
     license = with licenses; [ lgpl21Only gpl2Only mit ];
-    platforms = platforms.linux;
+    platforms = lib.intersectLists platforms.linux liburcu.meta.platforms;
     maintainers = [ maintainers.bjornfor ];
   };
 
diff --git a/pkgs/development/tools/misc/luarocks/default.nix b/pkgs/development/tools/misc/luarocks/default.nix
index ce832140703a7..29d0a94e301ff 100644
--- a/pkgs/development/tools/misc/luarocks/default.nix
+++ b/pkgs/development/tools/misc/luarocks/default.nix
@@ -1,3 +1,12 @@
+/*
+This is a minimal/manual luarocks derivation used by `buildLuarocksPackage` to install lua packages.
+
+As a nix user, you should use the generated lua.pkgs.luarocks that contains a luarocks manifest
+which makes it recognizable to luarocks.
+Generating the manifest for luarocks_bootstrap seemed too hackish, which is why we end up
+with two "luarocks" derivations.
+
+*/
 { lib
 , stdenv
 , fetchFromGitHub
@@ -105,7 +114,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A package manager for Lua";
+    description = "Package manager for Lua";
     license = licenses.mit;
     maintainers = with maintainers; [ raskin teto ];
     mainProgram = "luarocks";
diff --git a/pkgs/development/tools/misc/mdl/default.nix b/pkgs/development/tools/misc/mdl/default.nix
index e7f280cf4cf50..105dbb6af2998 100644
--- a/pkgs/development/tools/misc/mdl/default.nix
+++ b/pkgs/development/tools/misc/mdl/default.nix
@@ -8,7 +8,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "mdl";
 
   meta = with lib; {
-    description = "A tool to check markdown files and flag style issues";
+    description = "Tool to check markdown files and flag style issues";
     homepage = "https://github.com/markdownlint/markdownlint";
     license = licenses.mit;
     maintainers = with maintainers; [ gerschtli manveru nicknovitski totoroot ];
diff --git a/pkgs/development/tools/misc/mkcert/default.nix b/pkgs/development/tools/misc/mkcert/default.nix
index 145660e3a539c..1b3355b7cc451 100644
--- a/pkgs/development/tools/misc/mkcert/default.nix
+++ b/pkgs/development/tools/misc/mkcert/default.nix
@@ -21,7 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/FiloSottile/mkcert";
-    description = "A simple tool for making locally-trusted development certificates";
+    description = "Simple tool for making locally-trusted development certificates";
     mainProgram = "mkcert";
     license = licenses.bsd3;
     maintainers = [ ];
diff --git a/pkgs/development/tools/misc/n98-magerun/default.nix b/pkgs/development/tools/misc/n98-magerun/default.nix
index 08196dc041af7..c52fd68473b16 100644
--- a/pkgs/development/tools/misc/n98-magerun/default.nix
+++ b/pkgs/development/tools/misc/n98-magerun/default.nix
@@ -18,7 +18,7 @@ php81.buildComposerProject (finalAttrs: {
 
   meta = {
     changelog = "https://magerun.net/category/magerun/";
-    description = "The swiss army knife for Magento1/OpenMage developers";
+    description = "Swiss army knife for Magento1/OpenMage developers";
     homepage = "https://magerun.net/";
     license = lib.licenses.mit;
     mainProgram = "n98-magerun";
diff --git a/pkgs/development/tools/misc/n98-magerun2/default.nix b/pkgs/development/tools/misc/n98-magerun2/default.nix
index e0947e8f6fa6b..7612f28b7795f 100644
--- a/pkgs/development/tools/misc/n98-magerun2/default.nix
+++ b/pkgs/development/tools/misc/n98-magerun2/default.nix
@@ -18,7 +18,7 @@ php.buildComposerProject (finalAttrs: {
 
   meta = {
     changelog = "https://magerun.net/category/magerun/";
-    description = "The swiss army knife for Magento2 developers";
+    description = "Swiss army knife for Magento2 developers";
     homepage = "https://magerun.net/";
     license = lib.licenses.mit;
     mainProgram = "n98-magerun2";
diff --git a/pkgs/development/tools/misc/ninka/default.nix b/pkgs/development/tools/misc/ninka/default.nix
index cfdf1d5bb3dc0..9f0a618312bce 100644
--- a/pkgs/development/tools/misc/ninka/default.nix
+++ b/pkgs/development/tools/misc/ninka/default.nix
@@ -25,7 +25,7 @@ perlPackages.buildPerlPackage {
   '';
 
   meta = with lib; {
-    description = "A sentence based license detector";
+    description = "Sentence based license detector";
     mainProgram = "ninka";
     homepage = "http://ninka.turingmachine.org/";
     license = licenses.gpl2;
diff --git a/pkgs/development/tools/misc/nix-bisect/default.nix b/pkgs/development/tools/misc/nix-bisect/default.nix
index 7c9f474ab531a..9927be16d36a0 100644
--- a/pkgs/development/tools/misc/nix-bisect/default.nix
+++ b/pkgs/development/tools/misc/nix-bisect/default.nix
@@ -1,5 +1,4 @@
 { lib
-, fetchpatch
 , fetchFromGitHub
 , python3
 }:
diff --git a/pkgs/development/tools/misc/nix-build-uncached/default.nix b/pkgs/development/tools/misc/nix-build-uncached/default.nix
index 4471b30fc7c0a..0aa894b3effe8 100644
--- a/pkgs/development/tools/misc/nix-build-uncached/default.nix
+++ b/pkgs/development/tools/misc/nix-build-uncached/default.nix
@@ -18,7 +18,7 @@ buildGoModule rec {
   nativeBuildInputs = [ makeWrapper ];
 
   meta = with lib; {
-    description = "A CI friendly wrapper around nix-build";
+    description = "CI friendly wrapper around nix-build";
     mainProgram = "nix-build-uncached";
     license = licenses.mit;
     homepage = "https://github.com/Mic92/nix-build-uncached";
diff --git a/pkgs/development/tools/misc/nixbang/default.nix b/pkgs/development/tools/misc/nixbang/default.nix
index cc5edb162a4c5..d4541b76ba060 100644
--- a/pkgs/development/tools/misc/nixbang/default.nix
+++ b/pkgs/development/tools/misc/nixbang/default.nix
@@ -14,7 +14,7 @@ pythonPackages.buildPythonApplication rec {
 
   meta = {
     homepage = "https://github.com/madjar/nixbang";
-    description = "A special shebang to run scripts in a nix-shell";
+    description = "Special shebang to run scripts in a nix-shell";
     mainProgram = "nixbang";
     maintainers = [ lib.maintainers.madjar ];
     platforms = lib.platforms.all;
diff --git a/pkgs/development/tools/misc/one_gadget/default.nix b/pkgs/development/tools/misc/one_gadget/default.nix
index 4bf550cea52a8..f1fbd4a0356a8 100644
--- a/pkgs/development/tools/misc/one_gadget/default.nix
+++ b/pkgs/development/tools/misc/one_gadget/default.nix
@@ -14,7 +14,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "one_gadget";
 
   meta = with lib; {
-    description = "The best tool for finding one gadget RCE in libc.so.6";
+    description = "Best tool for finding one gadget RCE in libc.so.6";
     homepage    = "https://github.com/david942j/one_gadget";
     license     = licenses.mit;
     maintainers = with maintainers; [ artemist nicknovitski ];
diff --git a/pkgs/development/tools/misc/orogene/default.nix b/pkgs/development/tools/misc/orogene/default.nix
index 3fe98a6f43534..218fdf706885d 100644
--- a/pkgs/development/tools/misc/orogene/default.nix
+++ b/pkgs/development/tools/misc/orogene/default.nix
@@ -37,7 +37,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A package manager for tools that use node_modules";
+    description = "Package manager for tools that use node_modules";
     homepage = "https://github.com/orogene/orogene";
     changelog = "https://github.com/orogene/orogene/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ asl20 isc ];
diff --git a/pkgs/development/tools/misc/patchelf/default.nix b/pkgs/development/tools/misc/patchelf/default.nix
index 94c05394a9011..9af2265b8a7e9 100644
--- a/pkgs/development/tools/misc/patchelf/default.nix
+++ b/pkgs/development/tools/misc/patchelf/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/NixOS/patchelf";
     license = licenses.gpl3Plus;
-    description = "A small utility to modify the dynamic linker and RPATH of ELF executables";
+    description = "Small utility to modify the dynamic linker and RPATH of ELF executables";
     mainProgram = "patchelf";
     maintainers = [ maintainers.eelco ];
     platforms = platforms.all;
diff --git a/pkgs/development/tools/misc/patchelf/unstable.nix b/pkgs/development/tools/misc/patchelf/unstable.nix
index 551b9b484f92e..77a8842c1b579 100644
--- a/pkgs/development/tools/misc/patchelf/unstable.nix
+++ b/pkgs/development/tools/misc/patchelf/unstable.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/NixOS/patchelf";
     license = licenses.gpl3;
-    description = "A small utility to modify the dynamic linker and RPATH of ELF executables";
+    description = "Small utility to modify the dynamic linker and RPATH of ELF executables";
     mainProgram = "patchelf";
     maintainers = [ maintainers.eelco ];
     platforms = platforms.all;
diff --git a/pkgs/development/tools/misc/patsh/default.nix b/pkgs/development/tools/misc/patsh/default.nix
index 0e8bafc86bd78..476fe420a678f 100644
--- a/pkgs/development/tools/misc/patsh/default.nix
+++ b/pkgs/development/tools/misc/patsh/default.nix
@@ -42,7 +42,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A command-line tool for patching shell scripts inspired by resholve";
+    description = "Command-line tool for patching shell scripts inspired by resholve";
     mainProgram = "patsh";
     homepage = "https://github.com/nix-community/patsh";
     changelog = "https://github.com/nix-community/patsh/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/development/tools/misc/pest-ide-tools/default.nix b/pkgs/development/tools/misc/pest-ide-tools/default.nix
index c228508e4a60d..d3a31c8118a62 100644
--- a/pkgs/development/tools/misc/pest-ide-tools/default.nix
+++ b/pkgs/development/tools/misc/pest-ide-tools/default.nix
@@ -10,14 +10,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pest-ide-tools";
-  version = "0.3.9";
-  cargoSha256 = "sha256-kFLVzsk2ML78zWoLVX/tPz+rwBPziXmfGAcVSA7GiTA=";
+  version = "0.3.11";
+  cargoSha256 = "sha256-ZD8UQbkk5JhkanBkzo+c86DZE4aD44ma5cN97aKx97U=";
 
   src = fetchFromGitHub {
     owner = "pest-parser";
     repo = "pest-ide-tools";
     rev = "v${version}";
-    sha256 = "sha256-6051J3DQjI+Wp3iLn65GRmMnwOjGEtcWyXEKsT9k9fE=";
+    sha256 = "sha256-12/FndzUbUlgcYcwMT1OfamSKgy2q+CvtGyx5YY4IFQ=";
   };
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
@@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "IDE support for Pest, via the LSP.";
+    description = "IDE support for Pest, via the LSP";
     homepage = "https://pest.rs";
     license = with licenses; [ mit asl20 ];
     maintainers = with maintainers; [ nickhu ];
diff --git a/pkgs/development/tools/misc/pkg-config/default.nix b/pkgs/development/tools/misc/pkg-config/default.nix
index 663f3184b221b..ae567bb01b738 100644
--- a/pkgs/development/tools/misc/pkg-config/default.nix
+++ b/pkgs/development/tools/misc/pkg-config/default.nix
@@ -19,9 +19,14 @@ stdenv.mkDerivation rec {
     ++ lib.optional stdenv.isCygwin ./2.36.3-not-win32.patch;
 
   # These three tests fail due to a (desired) behavior change from our ./requires-private.patch
-  postPatch = if vanilla then null else ''
-    rm -f check/check-requires-private check/check-gtk check/missing
-  '';
+  postPatch =
+    # this could be accomplished by updateAutotoolsGnuConfigScriptsHook, but that causes infinite recursion
+    # necessary for FreeBSD code path in configure
+    ''
+      substituteInPlace ./config.guess ./glib/config.guess --replace-fail /usr/bin/uname uname
+    '' + lib.optionalString (!vanilla) ''
+      rm -f check/check-requires-private check/check-gtk check/missing
+    '';
 
   buildInputs = [ libiconv ];
 
@@ -48,7 +53,7 @@ stdenv.mkDerivation rec {
   postInstall = ''rm -f "$out"/bin/*-pkg-config''; # clean the duplicate file
 
   meta = with lib; {
-    description = "A tool that allows packages to find out information about other packages";
+    description = "Tool that allows packages to find out information about other packages";
     homepage = "http://pkg-config.freedesktop.org/wiki/";
     platforms = platforms.all;
     license = licenses.gpl2Plus;
diff --git a/pkgs/development/tools/misc/planus/default.nix b/pkgs/development/tools/misc/planus/default.nix
index 6580c7b213041..22cc165a93a5c 100644
--- a/pkgs/development/tools/misc/planus/default.nix
+++ b/pkgs/development/tools/misc/planus/default.nix
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "An alternative compiler for flatbuffers";
+    description = "Alternative compiler for flatbuffers";
     mainProgram = "planus";
     homepage = "https://github.com/planus-org/planus";
     changelog = "https://github.com/planus-org/planus/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/development/tools/misc/polylith/default.nix b/pkgs/development/tools/misc/polylith/default.nix
index 66e274026a0c3..a9fecc09a2049 100644
--- a/pkgs/development/tools/misc/polylith/default.nix
+++ b/pkgs/development/tools/misc/polylith/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A tool used to develop Polylith based architectures in Clojure";
+    description = "Tool used to develop Polylith based architectures in Clojure";
     mainProgram = "poly";
     homepage = "https://github.com/polyfy/polylith";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
diff --git a/pkgs/development/tools/misc/premake/3.nix b/pkgs/development/tools/misc/premake/3.nix
index f0891873eb58d..9e9775dcf71eb 100644
--- a/pkgs/development/tools/misc/premake/3.nix
+++ b/pkgs/development/tools/misc/premake/3.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://premake.github.io/";
-    description = "A simple build configuration and project generation tool using lua";
+    description = "Simple build configuration and project generation tool using lua";
     mainProgram = "premake";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/tools/misc/premake/5.nix b/pkgs/development/tools/misc/premake/5.nix
index 841e8480da1ab..64ee0c37317d6 100644
--- a/pkgs/development/tools/misc/premake/5.nix
+++ b/pkgs/development/tools/misc/premake/5.nix
@@ -19,7 +19,9 @@ stdenv.mkDerivation rec {
       --replace "ca = nil" "ca = '${cacert}/etc/ssl/certs/ca-bundle.crt'"
   '' + lib.optionalString stdenv.isDarwin ''
     substituteInPlace premake5.lua \
-      --replace -mmacosx-version-min=10.4 -mmacosx-version-min=10.5
+      --replace -mmacosx-version-min=10.4 -mmacosx-version-min=10.5 \
+      --replace-fail '"-arch arm64"' '""' \
+      --replace-fail '"-arch x86_64"' '""'
   '' + lib.optionalString stdenv.hostPlatform.isStatic ''
     substituteInPlace \
       binmodules/example/premake5.lua \
@@ -34,6 +36,10 @@ stdenv.mkDerivation rec {
        make -f Bootstrap.mak linux
     '';
 
+  env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isClang [
+    "-Wno-error=implicit-function-declaration"
+  ]);
+
   installPhase = ''
     install -Dm755 bin/release/premake5 $out/bin/premake5
   '';
@@ -43,10 +49,9 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://premake.github.io";
-    description = "A simple build configuration and project generation tool using lua";
+    description = "Simple build configuration and project generation tool using lua";
     mainProgram = "premake5";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.darwin ++ lib.platforms.linux;
-    broken = stdenv.isDarwin && stdenv.isAarch64;
   };
 }
diff --git a/pkgs/development/tools/misc/premake/default.nix b/pkgs/development/tools/misc/premake/default.nix
index e3c4aef87bd30..9987cb2d0b9b2 100644
--- a/pkgs/development/tools/misc/premake/default.nix
+++ b/pkgs/development/tools/misc/premake/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   setupHook = ./setup-hook.sh;
 
   meta = with lib; {
-    description = "A simple build configuration and project generation tool using lua";
+    description = "Simple build configuration and project generation tool using lua";
     homepage = "https://premake.github.io/";
     license = lib.licenses.bsd3;
     maintainers = [ maintainers.bjornfor ];
diff --git a/pkgs/development/tools/misc/protox/default.nix b/pkgs/development/tools/misc/protox/default.nix
index 415f19aa71b0d..d8375a8786766 100644
--- a/pkgs/development/tools/misc/protox/default.nix
+++ b/pkgs/development/tools/misc/protox/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A rust implementation of the protobuf compiler";
+    description = "Rust implementation of the protobuf compiler";
     mainProgram = "protox";
     homepage = "https://github.com/andrewhickman/protox";
     changelog = "https://github.com/andrewhickman/protox/blob/${version}/CHANGELOG.md";
diff --git a/pkgs/development/tools/misc/ptags/default.nix b/pkgs/development/tools/misc/ptags/default.nix
index aa79801583563..b9c616b1fa317 100644
--- a/pkgs/development/tools/misc/ptags/default.nix
+++ b/pkgs/development/tools/misc/ptags/default.nix
@@ -33,7 +33,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A parallel universal-ctags wrapper for git repository";
+    description = "Parallel universal-ctags wrapper for git repository";
     mainProgram = "ptags";
     homepage = "https://github.com/dalance/ptags";
     maintainers = with maintainers; [ pamplemousse ];
diff --git a/pkgs/development/tools/misc/python-launcher/default.nix b/pkgs/development/tools/misc/python-launcher/default.nix
index c1d07cf0c761f..a9531fbad6ded 100644
--- a/pkgs/development/tools/misc/python-launcher/default.nix
+++ b/pkgs/development/tools/misc/python-launcher/default.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
   useNextest = true;
 
   meta = with lib; {
-    description = "An implementation of the `py` command for Unix-based platforms";
+    description = "Implementation of the `py` command for Unix-based platforms";
     homepage = "https://github.com/brettcannon/python-launcher";
     changelog = "https://github.com/brettcannon/python-launcher/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/tools/misc/regex-cli/default.nix b/pkgs/development/tools/misc/regex-cli/default.nix
index f30d02bcf29f1..eede6bb4d102b 100644
--- a/pkgs/development/tools/misc/regex-cli/default.nix
+++ b/pkgs/development/tools/misc/regex-cli/default.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-O0KAY9XeP+LFcvAwO5SbF5yMHU1KZ77UdkAGAcx1hHc=";
 
   meta = with lib; {
-    description = "A command line tool for debugging, ad hoc benchmarking and generating regular expressions";
+    description = "Command line tool for debugging, ad hoc benchmarking and generating regular expressions";
     mainProgram = "regex-cli";
     homepage = "https://github.com/rust-lang/regex/tree/master/regex-cli";
     license = with licenses; [ asl20 mit ];
diff --git a/pkgs/development/tools/misc/remarkable/remarkable-toolchain/default.nix b/pkgs/development/tools/misc/remarkable/remarkable-toolchain/default.nix
index 2dba7768cf8c2..1ff4e5c62459b 100644
--- a/pkgs/development/tools/misc/remarkable/remarkable-toolchain/default.nix
+++ b/pkgs/development/tools/misc/remarkable/remarkable-toolchain/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A toolchain for cross-compiling to reMarkable tablets";
+    description = "Toolchain for cross-compiling to reMarkable tablets";
     homepage = "https://remarkable.engineering/";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/development/tools/misc/remarkable/remarkable2-toolchain/default.nix b/pkgs/development/tools/misc/remarkable/remarkable2-toolchain/default.nix
index 2bb5e11e24327..6e6b79e8f2e92 100644
--- a/pkgs/development/tools/misc/remarkable/remarkable2-toolchain/default.nix
+++ b/pkgs/development/tools/misc/remarkable/remarkable2-toolchain/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A toolchain for cross-compiling to reMarkable 2 tablets";
+    description = "Toolchain for cross-compiling to reMarkable 2 tablets";
     homepage = "https://remarkable.engineering/";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/development/tools/misc/replacement/default.nix b/pkgs/development/tools/misc/replacement/default.nix
index dde607419cae1..fd0533852aef3 100644
--- a/pkgs/development/tools/misc/replacement/default.nix
+++ b/pkgs/development/tools/misc/replacement/default.nix
@@ -27,7 +27,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/siriobalmelli/replacement";
-    description = "A tool to execute yaml templates and output text";
+    description = "Tool to execute yaml templates and output text";
     mainProgram = "replacement";
     longDescription = ''
         Replacement is a python utility
diff --git a/pkgs/development/tools/misc/reviewdog/default.nix b/pkgs/development/tools/misc/reviewdog/default.nix
index f01efc21d64b3..49f0413b20e71 100644
--- a/pkgs/development/tools/misc/reviewdog/default.nix
+++ b/pkgs/development/tools/misc/reviewdog/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "reviewdog";
-  version = "0.17.4";
+  version = "0.17.5";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-G2mN7f5dpE6fF5ti7JJXVk8qBiwKO/yy5cyOYBxDJNo=";
+    hash = "sha256-oRb4NjKf9XnrhiKCN2zV2syUP+N9KRbmVAMQfStJrYg=";
   };
 
-  vendorHash = "sha256-ux3nrQtY1sY4VJIeTSZAipfURspWDqnZ9YfxmFUvElI=";
+  vendorHash = "sha256-pEiMMYqGHI8jrqfdO6etkefysLAZITAl8SSp1XDLcF4=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/misc/riff/default.nix b/pkgs/development/tools/misc/riff/default.nix
index fe2e2f310fa14..d6c7ee8164b92 100644
--- a/pkgs/development/tools/misc/riff/default.nix
+++ b/pkgs/development/tools/misc/riff/default.nix
@@ -37,7 +37,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A tool that automatically provides external dependencies for software projects";
+    description = "Tool that automatically provides external dependencies for software projects";
     mainProgram = "riff";
     homepage = "https://riff.sh";
     changelog = "https://github.com/DeterminateSystems/riff/releases/tag/v${version}";
diff --git a/pkgs/development/tools/misc/rolespec/default.nix b/pkgs/development/tools/misc/rolespec/default.nix
index cd90d1cda9631..e5870d582e982 100644
--- a/pkgs/development/tools/misc/rolespec/default.nix
+++ b/pkgs/development/tools/misc/rolespec/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/nickjj/rolespec";
-    description = "A test library for testing Ansible roles";
+    description = "Test library for testing Ansible roles";
     mainProgram = "rolespec";
     longDescription = ''
       A shell based test library for Ansible that works both locally and over
diff --git a/pkgs/development/tools/misc/rsass/default.nix b/pkgs/development/tools/misc/rsass/default.nix
index 0e2e4d57823a4..b71dca0b3953e 100644
--- a/pkgs/development/tools/misc/rsass/default.nix
+++ b/pkgs/development/tools/misc/rsass/default.nix
@@ -2,15 +2,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rsass";
-  version = "0.28.8";
+  version = "0.28.10";
 
   src = fetchCrate {
     pname = "rsass-cli";
     inherit version;
-    hash = "sha256-eloTe7UHcPPmHEsGnfj3nIbZbBxSMFZdaSm5LpOh1S4=";
+    hash = "sha256-/2U1+kCRpM36r2fHB6Hditnm2dSVHh08M0RIi3AIe44=";
   };
 
-  cargoHash = "sha256-57vqVKqwQOEB33cSzGiZwadTDi7EyBBRAS4X9Euwp5Q=";
+  cargoHash = "sha256-pCQOFBs+lNdjcyOqZ/GjJyOthepnaWAM1feEpegdrDo=";
 
   meta = with lib; {
     description = "Sass reimplemented in rust with nom";
diff --git a/pkgs/development/tools/misc/samply/default.nix b/pkgs/development/tools/misc/samply/default.nix
index 44f711066be6a..a929d90652a95 100644
--- a/pkgs/development/tools/misc/samply/default.nix
+++ b/pkgs/development/tools/misc/samply/default.nix
@@ -46,7 +46,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A command line profiler for macOS and Linux";
+    description = "Command line profiler for macOS and Linux";
     mainProgram = "samply";
     homepage = "https://github.com/mstange/samply";
     changelog = "https://github.com/mstange/samply/releases/tag/samply-v${version}";
diff --git a/pkgs/development/tools/misc/sccache/default.nix b/pkgs/development/tools/misc/sccache/default.nix
index 5a99ef9b35ecc..a268e1749f0dc 100644
--- a/pkgs/development/tools/misc/sccache/default.nix
+++ b/pkgs/development/tools/misc/sccache/default.nix
@@ -8,17 +8,17 @@
 }:
 
 rustPlatform.buildRustPackage rec {
-  version = "0.8.0";
+  version = "0.8.1";
   pname = "sccache";
 
   src = fetchFromGitHub {
     owner = "mozilla";
     repo = "sccache";
     rev = "v${version}";
-    sha256 = "sha256-GKJKesvOtnZsLcYQjSsnUcolBIqqiYSX0VSZru416mk=";
+    sha256 = "sha256-sP6KTR50Ns4Yf/DGeSK7kB0dF0lraWbx948EOmsy+8c=";
   };
 
-  cargoHash = "sha256-GacjuBLlVawNRFutsjfywYHo34QKJHCPgi/QCPjcaAA=";
+  cargoHash = "sha256-6tiTgyhkPeH/oWcce1U2UsVngEfc4LKbB1zMt7meshA=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/development/tools/misc/scriptisto/default.nix b/pkgs/development/tools/misc/scriptisto/default.nix
index f3a3ba18240b7..5efcd30c90183 100644
--- a/pkgs/development/tools/misc/scriptisto/default.nix
+++ b/pkgs/development/tools/misc/scriptisto/default.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "scriptisto";
-  version = "2.1.1";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "igor-petruk";
     repo = "scriptisto";
     rev = "v${version}";
-    hash = "sha256-WQSgN1iX26tPPaJXLtU5Eo8kFahT6g+gZKJEDT6zj1E=";
+    hash = "sha256-iaDdOFmi4kfcJSjXOcGAFG9i1SdB+K5Qz4+NDaVQALY=";
   };
 
-  cargoHash = "sha256-trDf6N7PMjxlum8Rx2TxGePM6UPzMlTU6ATyGzmFoNc=";
+  cargoHash = "sha256-LIOsl9qPKJr/ykbXeaHP6lNHGUMcw3omniSWx2FkF28=";
 
   nativeBuildInputs = [
     installShellFiles
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A language-agnostic \"shebang interpreter\" that enables you to write scripts in compiled languages";
+    description = "Language-agnostic \"shebang interpreter\" that enables you to write scripts in compiled languages";
     mainProgram = "scriptisto";
     homepage = "https://github.com/igor-petruk/scriptisto";
     changelog = "https://github.com/igor-petruk/scriptisto/releases/tag/${src.rev}";
diff --git a/pkgs/development/tools/misc/seer/default.nix b/pkgs/development/tools/misc/seer/default.nix
index b797287a02dc2..385aea2e73acf 100644
--- a/pkgs/development/tools/misc/seer/default.nix
+++ b/pkgs/development/tools/misc/seer/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub, cmake, gdb, qtcharts, qtbase, wrapQtAppsHook }:
+{ lib, stdenv, fetchFromGitHub, cmake, gdb, kdePackages, wrapQtAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "seer";
-  version = "1.17";
+  version = "2.4";
 
   src = fetchFromGitHub {
     owner = "epasveer";
     repo = "seer";
     rev = "v${version}";
-    sha256 = "sha256-lM6w+QwIRYP/2JDx4yynJxhVXt8SouOWgsLGXSwolIw=";
+    sha256 = "sha256-ZvoRC34496fUldL3jOdxcO/TVmfPNmmr2GkJG4gJXzk=";
   };
 
   preConfigure = ''
@@ -17,14 +17,14 @@ stdenv.mkDerivation rec {
 
   patchPhase = ''
     substituteInPlace src/{SeerGdbConfigPage,SeerMainWindow,SeerGdbWidget}.cpp \
-      --replace "/usr/bin/gdb" "${gdb}/bin/gdb"
+      --replace-fail "/usr/bin/gdb" "${gdb}/bin/gdb"
   '';
 
-  buildInputs = [ qtbase qtcharts ];
-  nativeBuildInputs = [ cmake wrapQtAppsHook ];
+  buildInputs = with kdePackages; [ qtbase qtcharts qtsvg ];
+  nativeBuildInputs = [ cmake kdePackages.wrapQtAppsHook ];
 
   meta = with lib; {
-    description = "A Qt gui frontend for GDB";
+    description = "Qt gui frontend for GDB";
     mainProgram = "seergdb";
     homepage = "https://github.com/epasveer/seer";
     license = licenses.gpl3Only;
diff --git a/pkgs/development/tools/misc/sipp/default.nix b/pkgs/development/tools/misc/sipp/default.nix
index 43dcd2aea9b4b..414be9560b9a6 100644
--- a/pkgs/development/tools/misc/sipp/default.nix
+++ b/pkgs/development/tools/misc/sipp/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://sipp.sf.net";
-    description = "The SIPp testing tool";
+    description = "SIPp testing tool";
     mainProgram = "sipp";
     license = licenses.gpl3;
     platforms = platforms.unix;
diff --git a/pkgs/development/tools/misc/spruce/default.nix b/pkgs/development/tools/misc/spruce/default.nix
index 4c03d0acfab64..0527af3eb77b4 100644
--- a/pkgs/development/tools/misc/spruce/default.nix
+++ b/pkgs/development/tools/misc/spruce/default.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
   vendorHash = null;
 
   meta = with lib; {
-    description = "A BOSH template merge tool";
+    description = "BOSH template merge tool";
     mainProgram = "spruce";
     homepage = "https://github.com/geofffranks/spruce";
     license = licenses.mit;
diff --git a/pkgs/development/tools/misc/strace/default.nix b/pkgs/development/tools/misc/strace/default.nix
index e1cd72ea683a1..ac780b8fc47fe 100644
--- a/pkgs/development/tools/misc/strace/default.nix
+++ b/pkgs/development/tools/misc/strace/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://strace.io/";
-    description = "A system call tracer for Linux";
+    description = "System call tracer for Linux";
     license =  with licenses; [ lgpl21Plus gpl2Plus ]; # gpl2Plus is for the test suite
     platforms = platforms.linux;
     maintainers = with maintainers; [ globin ma27 qyliss ];
diff --git a/pkgs/development/tools/misc/swig/2.x.nix b/pkgs/development/tools/misc/swig/2.x.nix
index ac03372d97610..fd8e2a368417f 100644
--- a/pkgs/development/tools/misc/swig/2.x.nix
+++ b/pkgs/development/tools/misc/swig/2.x.nix
@@ -11,6 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "0khm9gh5pczfcihr0pbicaicc4v9kjm5ip2alvkhmbb3ga6njkcm";
   };
 
+  # pcre-config isn't on PATH when cross-building
+  PCRE_CONFIG = "${pcre.dev}/bin/pcre-config";
   nativeBuildInputs = [ autoconf automake libtool bison ];
   buildInputs = [ pcre ];
 
diff --git a/pkgs/development/tools/misc/swig/3.x.nix b/pkgs/development/tools/misc/swig/3.x.nix
index f50c02d3e0cdf..4b266044ff847 100644
--- a/pkgs/development/tools/misc/swig/3.x.nix
+++ b/pkgs/development/tools/misc/swig/3.x.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An interface compiler that connects C/C++ code to higher-level languages";
+    description = "Interface compiler that connects C/C++ code to higher-level languages";
     homepage = "https://swig.org/";
     # Different types of licenses available: http://www.swig.org/Release/LICENSE .
     license = licenses.gpl3Plus;
diff --git a/pkgs/development/tools/misc/terser/default.nix b/pkgs/development/tools/misc/terser/default.nix
index faffc0c0533ef..9fe2e386b7ce7 100644
--- a/pkgs/development/tools/misc/terser/default.nix
+++ b/pkgs/development/tools/misc/terser/default.nix
@@ -2,16 +2,16 @@
 
 buildNpmPackage rec {
   pname = "terser";
-  version = "5.30.4";
+  version = "5.31.0";
 
   src = fetchFromGitHub {
     owner = "terser";
     repo = "terser";
     rev = "v${version}";
-    hash = "sha256-d0zxwUvXa+Nm9p8QkhBhXl73XfJ+dxxt+GHkFtI8Zuk=";
+    hash = "sha256-rZYzeNBUaimetn/NRugsx6Czc0NxMzAKN58DRcae7pM=";
   };
 
-  npmDepsHash = "sha256-7j3hMDVktQxolCMM27SH7y5ZtexnwF//ccilVZ0w5l8=";
+  npmDepsHash = "sha256-SKL//hww6I3RDkqEUBrM0xDSuoPOCArvKKiBz68JtRo=";
 
   meta = with lib; {
     description = "JavaScript parser, mangler and compressor toolkit for ES6+";
diff --git a/pkgs/development/tools/misc/tet/default.nix b/pkgs/development/tools/misc/tet/default.nix
index 6bfcb3129236e..a3f5942a6bfdf 100644
--- a/pkgs/development/tools/misc/tet/default.nix
+++ b/pkgs/development/tools/misc/tet/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation ({
   installPhase = "cd src; make install; cd -; cp -vr $PWD $out";
 
   meta = {
-    description = "The Test Environment Toolkit is used in test applications like The Open Group's UNIX Certification program and the Free Standards Group's LSB Certification program";
+    description = "Test Environment Toolkit is used in test applications like The Open Group's UNIX Certification program and the Free Standards Group's LSB Certification program";
     homepage = "http://tetworks.opengroup.org/Products/tet.htm";
     license = lib.licenses.artistic1;
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/tools/misc/texinfo/4.13a.nix b/pkgs/development/tools/misc/texinfo/4.13a.nix
index b8da38ace6fb4..c6036c069d0ab 100644
--- a/pkgs/development/tools/misc/texinfo/4.13a.nix
+++ b/pkgs/development/tools/misc/texinfo/4.13a.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, texinfo, ncurses, xz }:
+{ stdenv, fetchurl, texinfo, ncurses, xz, lib }:
 
 stdenv.mkDerivation rec {
   pname = "texinfo";
@@ -12,6 +12,10 @@ stdenv.mkDerivation rec {
   buildInputs = [ ncurses ];
   nativeBuildInputs = [ xz ];
 
+  env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isClang [
+    "-Wno-error=implicit-function-declaration"
+  ]);
+
   # Disabled because we don't have zdiff in the stdenv bootstrap.
   #doCheck = true;
 
diff --git a/pkgs/development/tools/misc/texinfo/common.nix b/pkgs/development/tools/misc/texinfo/common.nix
index 858884461ce26..f3f2e93892960 100644
--- a/pkgs/development/tools/misc/texinfo/common.nix
+++ b/pkgs/development/tools/misc/texinfo/common.nix
@@ -1,7 +1,7 @@
 { version, sha256, patches ? [] }:
 
-{ lib, stdenv, buildPackages, fetchurl, perl, xz, libintl, bash
-, gnulib, gawk, freebsd, libiconv
+{ lib, stdenv, buildPackages, fetchurl, perl, libintl, bash
+, updateAutotoolsGnuConfigScriptsHook, gnulib, gawk, freebsd, libiconv
 
 # we are a dependency of gcc, this simplifies bootstraping
 , interactive ? false, ncurses, procps
@@ -49,7 +49,8 @@ stdenv.mkDerivation {
   # A native compiler is needed to build tools needed at build time
   depsBuildBuild = [ buildPackages.stdenv.cc perl ];
 
-  buildInputs = [ xz.bin bash libintl ]
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
+  buildInputs = [ bash libintl ]
     ++ optionals stdenv.isSunOS [ libiconv gawk ]
     ++ optional interactive ncurses;
 
@@ -84,7 +85,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "The GNU documentation system";
+    description = "GNU documentation system";
     homepage = "https://www.gnu.org/software/texinfo/";
     changelog = "https://git.savannah.gnu.org/cgit/texinfo.git/plain/NEWS";
     license = licenses.gpl3Plus;
diff --git a/pkgs/development/tools/misc/texlab/default.nix b/pkgs/development/tools/misc/texlab/default.nix
index 5505273d8566e..463efbd198dbd 100644
--- a/pkgs/development/tools/misc/texlab/default.nix
+++ b/pkgs/development/tools/misc/texlab/default.nix
@@ -15,16 +15,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "texlab";
-  version = "5.16.0";
+  version = "5.16.1";
 
   src = fetchFromGitHub {
     owner = "latex-lsp";
     repo = "texlab";
     rev = "refs/tags/v${version}";
-    hash = "sha256-hdco5A6qUUs/kTXdaZKo9WhMq9FcbJyDwUauK4IElIA=";
+    hash = "sha256-oXROZdnmkqb0nd2CdLJO/KYkoe+BriYlfMJXe1yKGTA=";
   };
 
-  cargoHash = "sha256-MlV6+D6fpuIkLGd2lcFmfIXPtJSr5wV9njlqFoANs8o=";
+  cargoHash = "sha256-4GWoTHSQD7DnAsiUWEF2TX+2r3XD3t/9+j/PGL7Haq8=";
 
   outputs = [ "out" ] ++ lib.optional (!isCross) "man";
 
@@ -41,7 +41,7 @@ rustPlatform.buildRustPackage rec {
   # generate the man page
   postInstall = lib.optionalString (!isCross) ''
     # TexLab builds man page separately in CI:
-    # https://github.com/latex-lsp/texlab/blob/v5.16.0/.github/workflows/publish.yml#L117-L121
+    # https://github.com/latex-lsp/texlab/blob/v5.16.1/.github/workflows/publish.yml#L117-L121
     help2man --no-info "$out/bin/texlab" > texlab.1
     installManPage texlab.1
   '';
@@ -49,7 +49,7 @@ rustPlatform.buildRustPackage rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "An implementation of the Language Server Protocol for LaTeX";
+    description = "Implementation of the Language Server Protocol for LaTeX";
     homepage = "https://github.com/latex-lsp/texlab";
     changelog = "https://github.com/latex-lsp/texlab/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/tools/misc/tokei/default.nix b/pkgs/development/tools/misc/tokei/default.nix
index 3472a21f51dd2..8d9a63fcf550c 100644
--- a/pkgs/development/tools/misc/tokei/default.nix
+++ b/pkgs/development/tools/misc/tokei/default.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   buildFeatures = [ "all" ];
 
   meta = with lib; {
-    description = "A program that allows you to count your code, quickly";
+    description = "Program that allows you to count your code, quickly";
     longDescription = ''
       Tokei is a program that displays statistics about your code. Tokei will show number of files, total lines within those files and code, comments, and blanks grouped by language.
     '';
diff --git a/pkgs/development/tools/misc/topiary/default.nix b/pkgs/development/tools/misc/topiary/default.nix
index 467cd8cbacd81..49fc2081d4fe0 100644
--- a/pkgs/development/tools/misc/topiary/default.nix
+++ b/pkgs/development/tools/misc/topiary/default.nix
@@ -44,7 +44,7 @@ rustPlatform.buildRustPackage rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A uniform formatter for simple languages, as part of the Tree-sitter ecosystem";
+    description = "Uniform formatter for simple languages, as part of the Tree-sitter ecosystem";
     mainProgram = "topiary";
     homepage = "https://github.com/tweag/topiary";
     changelog = "https://github.com/tweag/topiary/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/development/tools/misc/ttags/default.nix b/pkgs/development/tools/misc/ttags/default.nix
index c765d0c308d4c..b95bc53e2bea5 100644
--- a/pkgs/development/tools/misc/ttags/default.nix
+++ b/pkgs/development/tools/misc/ttags/default.nix
@@ -1,5 +1,5 @@
 { lib, fetchFromGitHub, rustPlatform, testers, ttags }:
-let version = "0.3.0";
+let version = "0.4.1";
 in rustPlatform.buildRustPackage {
   pname = "ttags";
   inherit version;
@@ -8,10 +8,10 @@ in rustPlatform.buildRustPackage {
     owner = "npezza93";
     repo = "ttags";
     rev = "${version}";
-    hash = "sha256-yqrCcA/+FyGPpX3hhULiwhMfrDWjq+rzT04M+o9ry5s=";
+    hash = "sha256-yKg0KUA/Wa7B/sU1uxgGQR0Wat/bFv3ascqnUCdWKw0=";
   };
 
-  cargoHash = "sha256-jW3xIlo2cN5aoEUp3FxN4pwGFvlg50i5RMNgQopGb88=";
+  cargoHash = "sha256-MZ9QRF5yNw+YtSEu+Qc/J3Ap7+nRDZT7aitunk+x38Y=";
 
   passthru.tests.version = testers.testVersion {
     package = ttags;
diff --git a/pkgs/development/tools/misc/typical/default.nix b/pkgs/development/tools/misc/typical/default.nix
index 8c094a2e1f18f..b2526370aadaa 100644
--- a/pkgs/development/tools/misc/typical/default.nix
+++ b/pkgs/development/tools/misc/typical/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "typical";
-  version = "0.9.7";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "stepchowfun";
     repo = "typical";
     rev = "v${version}";
-    hash = "sha256-UoTzgYxLdlWefNLeege7+tlqWh4uzotO5EbcyqvU2Xo=";
+    hash = "sha256-Ngeam9sdSov25mHR8TNrxaoqf2tRc+zMUkt00u8DSiQ=";
   };
 
-  cargoHash = "sha256-GIyvwByzNKFvEdVSLo2cxuQ7JvKRFezhyKQrWjbj7Kk=";
+  cargoHash = "sha256-v+1M+rgYgfA1yJIHcEGhdxyiZRNffZc27rSlGLDHjVA=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/development/tools/misc/universal-ctags/default.nix b/pkgs/development/tools/misc/universal-ctags/default.nix
index 65f4ab67a1614..3297775bc53eb 100644
--- a/pkgs/development/tools/misc/universal-ctags/default.nix
+++ b/pkgs/development/tools/misc/universal-ctags/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://docs.ctags.io/en/latest/";
-    description = "A maintained ctags implementation";
+    description = "Maintained ctags implementation";
     longDescription = ''
       Universal Ctags (abbreviated as u-ctags) is a maintained implementation of
       ctags. ctags generates an index (or tag) file of language objects found in
diff --git a/pkgs/development/tools/misc/unixbench/default.nix b/pkgs/development/tools/misc/unixbench/default.nix
index 9f4546248e5ee..4edd464a763d2 100644
--- a/pkgs/development/tools/misc/unixbench/default.nix
+++ b/pkgs/development/tools/misc/unixbench/default.nix
@@ -99,7 +99,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A basic indicator of the performance of a Unix-like system";
+    description = "Basic indicator of the performance of a Unix-like system";
     homepage = "https://github.com/kdlucas/byte-unixbench";
     license = licenses.gpl2Plus;
     mainProgram = "ubench";
diff --git a/pkgs/development/tools/misc/unused/default.nix b/pkgs/development/tools/misc/unused/default.nix
index b644a762908e9..56166b0c8599f 100644
--- a/pkgs/development/tools/misc/unused/default.nix
+++ b/pkgs/development/tools/misc/unused/default.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "sha256-hCtkR20+xs1UHZP7oJVpJACVGcMQLQmSS1QE2tmIVhs=";
 
   meta = with lib; {
-    description = "A tool to identify potentially unused code";
+    description = "Tool to identify potentially unused code";
     homepage = "https://unused.codes";
     license = licenses.mit;
     maintainers = [ ];
diff --git a/pkgs/development/tools/misc/usb-modeswitch/default.nix b/pkgs/development/tools/misc/usb-modeswitch/default.nix
index 8451bead269e5..0befa7aac9d67 100644
--- a/pkgs/development/tools/misc/usb-modeswitch/default.nix
+++ b/pkgs/development/tools/misc/usb-modeswitch/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config makeWrapper ];
 
   meta = with lib; {
-    description = "A mode switching tool for controlling 'multi-mode' USB devices";
+    description = "Mode switching tool for controlling 'multi-mode' USB devices";
     license = licenses.gpl2;
     maintainers = with maintainers; [ marcweber peterhoeg ];
     platforms = platforms.linux;
diff --git a/pkgs/development/tools/misc/vtable-dumper/default.nix b/pkgs/development/tools/misc/vtable-dumper/default.nix
index deed8e3af962e..1bb01240a2a88 100644
--- a/pkgs/development/tools/misc/vtable-dumper/default.nix
+++ b/pkgs/development/tools/misc/vtable-dumper/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/lvc/vtable-dumper";
-    description = "A tool to list content of virtual tables in a C++ shared library";
+    description = "Tool to list content of virtual tables in a C++ shared library";
     mainProgram = "vtable-dumper";
     license = licenses.lgpl21;
     maintainers = [ maintainers.bhipple ];
diff --git a/pkgs/development/tools/misc/watson-ruby/default.nix b/pkgs/development/tools/misc/watson-ruby/default.nix
index eb6c8bd761999..b0faf75892ee1 100644
--- a/pkgs/development/tools/misc/watson-ruby/default.nix
+++ b/pkgs/development/tools/misc/watson-ruby/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = bundlerUpdateScript "watson-ruby";
 
   meta = with lib; {
-    description = "An inline issue manager";
+    description = "Inline issue manager";
     homepage    = "https://goosecode.com/watson/";
     license     = with licenses; mit;
     maintainers = with maintainers; [ robertodr nicknovitski ];
diff --git a/pkgs/development/tools/misc/xspim/default.nix b/pkgs/development/tools/misc/xspim/default.nix
index ccef80747a40d..4a040e41ab66b 100644
--- a/pkgs/development/tools/misc/xspim/default.nix
+++ b/pkgs/development/tools/misc/xspim/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A MIPS32 simulator";
+    description = "MIPS32 simulator";
     homepage = "https://spimsimulator.sourceforge.net/";
     license = licenses.bsdOriginal;
     maintainers = with maintainers; [ emilytrau ];
diff --git a/pkgs/development/tools/misc/xxgdb/default.nix b/pkgs/development/tools/misc/xxgdb/default.nix
index eee3a860e9feb..1c6eca4729a01 100644
--- a/pkgs/development/tools/misc/xxgdb/default.nix
+++ b/pkgs/development/tools/misc/xxgdb/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A simple but powerful graphical interface to gdb";
+    description = "Simple but powerful graphical interface to gdb";
     mainProgram = "xxgdb";
     license = licenses.mit;
     maintainers = with maintainers; [ emilytrau ];
diff --git a/pkgs/development/tools/misc/yodl/default.nix b/pkgs/development/tools/misc/yodl/default.nix
index 2eee78c1c19c7..6df8827181fd2 100644
--- a/pkgs/development/tools/misc/yodl/default.nix
+++ b/pkgs/development/tools/misc/yodl/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A package that implements a pre-document language and tools to process it";
+    description = "Package that implements a pre-document language and tools to process it";
     homepage = "https://fbb-git.gitlab.io/yodl/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ pSub ];
diff --git a/pkgs/development/tools/mix2nix/default.nix b/pkgs/development/tools/mix2nix/default.nix
index 4c7b7951370c7..b0d3a8c8107c9 100644
--- a/pkgs/development/tools/mix2nix/default.nix
+++ b/pkgs/development/tools/mix2nix/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   installPhase = "install -Dt $out/bin mix2nix";
 
   meta = with lib; {
-    description = "Generate nix expressions from mix.lock file.";
+    description = "Generate nix expressions from mix.lock file";
     mainProgram = "mix2nix";
     license = licenses.mit;
     maintainers = with maintainers; [ ydlr ] ++ teams.beam.members;
diff --git a/pkgs/development/tools/modd/default.nix b/pkgs/development/tools/modd/default.nix
index efd74ce98244f..af05842a252df 100644
--- a/pkgs/development/tools/modd/default.nix
+++ b/pkgs/development/tools/modd/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "A flexible developer tool that runs processes and responds to filesystem changes";
+    description = "Flexible developer tool that runs processes and responds to filesystem changes";
     mainProgram = "modd";
     homepage = "https://github.com/cortesi/modd";
     license = licenses.mit;
diff --git a/pkgs/development/tools/mongosh/default.nix b/pkgs/development/tools/mongosh/default.nix
index 56e2e2e8e4217..79834dafc2b8e 100644
--- a/pkgs/development/tools/mongosh/default.nix
+++ b/pkgs/development/tools/mongosh/default.nix
@@ -36,7 +36,7 @@ buildNpmPackage {
 
   meta = with lib; {
     homepage = "https://www.mongodb.com/try/download/shell";
-    description = "The MongoDB Shell";
+    description = "MongoDB Shell";
     maintainers = with maintainers; [ aaronjheng ];
     license = licenses.asl20;
     mainProgram = "mongosh";
diff --git a/pkgs/development/tools/mongosh/package-lock.json b/pkgs/development/tools/mongosh/package-lock.json
index 37d494d0c53ee..b87274ea83301 100644
--- a/pkgs/development/tools/mongosh/package-lock.json
+++ b/pkgs/development/tools/mongosh/package-lock.json
@@ -1,15 +1,15 @@
 {
   "name": "mongosh",
-  "version": "2.2.6",
+  "version": "2.2.9",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "mongosh",
-      "version": "2.2.6",
+      "version": "2.2.9",
       "license": "Apache-2.0",
       "dependencies": {
-        "@mongosh/cli-repl": "2.2.6"
+        "@mongosh/cli-repl": "2.2.9"
       },
       "bin": {
         "mongosh": "bin/mongosh.js"
@@ -30,126 +30,165 @@
         "node": ">=6.0.0"
       }
     },
-    "node_modules/@aws-crypto/ie11-detection": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz",
-      "integrity": "sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==",
+    "node_modules/@aws-crypto/sha256-browser": {
+      "version": "5.2.0",
+      "resolved": "https://registry.npmmirror.com/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz",
+      "integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==",
       "dependencies": {
-        "tslib": "^1.11.1"
+        "@aws-crypto/sha256-js": "^5.2.0",
+        "@aws-crypto/supports-web-crypto": "^5.2.0",
+        "@aws-crypto/util": "^5.2.0",
+        "@aws-sdk/types": "^3.222.0",
+        "@aws-sdk/util-locate-window": "^3.0.0",
+        "@smithy/util-utf8": "^2.0.0",
+        "tslib": "^2.6.2"
       }
     },
-    "node_modules/@aws-crypto/ie11-detection/node_modules/tslib": {
-      "version": "1.14.1",
-      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz",
-      "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+    "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/is-array-buffer": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
+      "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
+      "dependencies": {
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=14.0.0"
+      }
     },
-    "node_modules/@aws-crypto/sha256-browser": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz",
-      "integrity": "sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==",
+    "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-buffer-from": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
+      "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
       "dependencies": {
-        "@aws-crypto/ie11-detection": "^3.0.0",
-        "@aws-crypto/sha256-js": "^3.0.0",
-        "@aws-crypto/supports-web-crypto": "^3.0.0",
-        "@aws-crypto/util": "^3.0.0",
-        "@aws-sdk/types": "^3.222.0",
-        "@aws-sdk/util-locate-window": "^3.0.0",
-        "@aws-sdk/util-utf8-browser": "^3.0.0",
-        "tslib": "^1.11.1"
+        "@smithy/is-array-buffer": "^2.2.0",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=14.0.0"
       }
     },
-    "node_modules/@aws-crypto/sha256-browser/node_modules/tslib": {
-      "version": "1.14.1",
-      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz",
-      "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+    "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-utf8": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
+      "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
+      "dependencies": {
+        "@smithy/util-buffer-from": "^2.2.0",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=14.0.0"
+      }
     },
     "node_modules/@aws-crypto/sha256-js": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz",
-      "integrity": "sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==",
+      "version": "5.2.0",
+      "resolved": "https://registry.npmmirror.com/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz",
+      "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==",
       "dependencies": {
-        "@aws-crypto/util": "^3.0.0",
+        "@aws-crypto/util": "^5.2.0",
         "@aws-sdk/types": "^3.222.0",
-        "tslib": "^1.11.1"
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=16.0.0"
       }
     },
-    "node_modules/@aws-crypto/sha256-js/node_modules/tslib": {
-      "version": "1.14.1",
-      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz",
-      "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
-    },
     "node_modules/@aws-crypto/supports-web-crypto": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz",
-      "integrity": "sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==",
+      "version": "5.2.0",
+      "resolved": "https://registry.npmmirror.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz",
+      "integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==",
       "dependencies": {
-        "tslib": "^1.11.1"
+        "tslib": "^2.6.2"
       }
     },
-    "node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib": {
-      "version": "1.14.1",
-      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz",
-      "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
-    },
     "node_modules/@aws-crypto/util": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/@aws-crypto/util/-/util-3.0.0.tgz",
-      "integrity": "sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==",
+      "version": "5.2.0",
+      "resolved": "https://registry.npmmirror.com/@aws-crypto/util/-/util-5.2.0.tgz",
+      "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==",
       "dependencies": {
         "@aws-sdk/types": "^3.222.0",
-        "@aws-sdk/util-utf8-browser": "^3.0.0",
-        "tslib": "^1.11.1"
+        "@smithy/util-utf8": "^2.0.0",
+        "tslib": "^2.6.2"
+      }
+    },
+    "node_modules/@aws-crypto/util/node_modules/@smithy/is-array-buffer": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
+      "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
+      "dependencies": {
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=14.0.0"
+      }
+    },
+    "node_modules/@aws-crypto/util/node_modules/@smithy/util-buffer-from": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
+      "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
+      "dependencies": {
+        "@smithy/is-array-buffer": "^2.2.0",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=14.0.0"
       }
     },
-    "node_modules/@aws-crypto/util/node_modules/tslib": {
-      "version": "1.14.1",
-      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz",
-      "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+    "node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
+      "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
+      "dependencies": {
+        "@smithy/util-buffer-from": "^2.2.0",
+        "tslib": "^2.6.2"
+      },
+      "engines": {
+        "node": ">=14.0.0"
+      }
     },
     "node_modules/@aws-sdk/client-cognito-identity": {
-      "version": "3.577.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.577.0.tgz",
-      "integrity": "sha512-y1fHORHoufrzj2GcnY52g4ykemFpT0Hu9e9kYa6yR0weQ0WalcG7WcnMNasXMcjr9fDjNze7ZCTuWJSI+HwkTQ==",
-      "dependencies": {
-        "@aws-crypto/sha256-browser": "3.0.0",
-        "@aws-crypto/sha256-js": "3.0.0",
-        "@aws-sdk/client-sso-oidc": "3.577.0",
-        "@aws-sdk/client-sts": "3.577.0",
-        "@aws-sdk/core": "3.576.0",
-        "@aws-sdk/credential-provider-node": "3.577.0",
-        "@aws-sdk/middleware-host-header": "3.577.0",
-        "@aws-sdk/middleware-logger": "3.577.0",
-        "@aws-sdk/middleware-recursion-detection": "3.577.0",
-        "@aws-sdk/middleware-user-agent": "3.577.0",
-        "@aws-sdk/region-config-resolver": "3.577.0",
-        "@aws-sdk/types": "3.577.0",
-        "@aws-sdk/util-endpoints": "3.577.0",
-        "@aws-sdk/util-user-agent-browser": "3.577.0",
-        "@aws-sdk/util-user-agent-node": "3.577.0",
-        "@smithy/config-resolver": "^3.0.0",
-        "@smithy/core": "^2.0.0",
-        "@smithy/fetch-http-handler": "^3.0.0",
-        "@smithy/hash-node": "^3.0.0",
-        "@smithy/invalid-dependency": "^3.0.0",
-        "@smithy/middleware-content-length": "^3.0.0",
-        "@smithy/middleware-endpoint": "^3.0.0",
-        "@smithy/middleware-retry": "^3.0.0",
-        "@smithy/middleware-serde": "^3.0.0",
-        "@smithy/middleware-stack": "^3.0.0",
-        "@smithy/node-config-provider": "^3.0.0",
-        "@smithy/node-http-handler": "^3.0.0",
-        "@smithy/protocol-http": "^4.0.0",
-        "@smithy/smithy-client": "^3.0.0",
-        "@smithy/types": "^3.0.0",
-        "@smithy/url-parser": "^3.0.0",
+      "version": "3.598.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.598.0.tgz",
+      "integrity": "sha512-N/1lnkhkzk1Il8WEZBWR713/7sDEqBtl/1AS6dfgw6Zh7NWUYSwBkZx6xdN8KogDu4CFExRHhilNOgI1JMug3w==",
+      "dependencies": {
+        "@aws-crypto/sha256-browser": "5.2.0",
+        "@aws-crypto/sha256-js": "5.2.0",
+        "@aws-sdk/client-sso-oidc": "3.598.0",
+        "@aws-sdk/client-sts": "3.598.0",
+        "@aws-sdk/core": "3.598.0",
+        "@aws-sdk/credential-provider-node": "3.598.0",
+        "@aws-sdk/middleware-host-header": "3.598.0",
+        "@aws-sdk/middleware-logger": "3.598.0",
+        "@aws-sdk/middleware-recursion-detection": "3.598.0",
+        "@aws-sdk/middleware-user-agent": "3.598.0",
+        "@aws-sdk/region-config-resolver": "3.598.0",
+        "@aws-sdk/types": "3.598.0",
+        "@aws-sdk/util-endpoints": "3.598.0",
+        "@aws-sdk/util-user-agent-browser": "3.598.0",
+        "@aws-sdk/util-user-agent-node": "3.598.0",
+        "@smithy/config-resolver": "^3.0.2",
+        "@smithy/core": "^2.2.1",
+        "@smithy/fetch-http-handler": "^3.0.2",
+        "@smithy/hash-node": "^3.0.1",
+        "@smithy/invalid-dependency": "^3.0.1",
+        "@smithy/middleware-content-length": "^3.0.1",
+        "@smithy/middleware-endpoint": "^3.0.2",
+        "@smithy/middleware-retry": "^3.0.4",
+        "@smithy/middleware-serde": "^3.0.1",
+        "@smithy/middleware-stack": "^3.0.1",
+        "@smithy/node-config-provider": "^3.1.1",
+        "@smithy/node-http-handler": "^3.0.1",
+        "@smithy/protocol-http": "^4.0.1",
+        "@smithy/smithy-client": "^3.1.2",
+        "@smithy/types": "^3.1.0",
+        "@smithy/url-parser": "^3.0.1",
         "@smithy/util-base64": "^3.0.0",
         "@smithy/util-body-length-browser": "^3.0.0",
         "@smithy/util-body-length-node": "^3.0.0",
-        "@smithy/util-defaults-mode-browser": "^3.0.0",
-        "@smithy/util-defaults-mode-node": "^3.0.0",
-        "@smithy/util-endpoints": "^2.0.0",
-        "@smithy/util-middleware": "^3.0.0",
-        "@smithy/util-retry": "^3.0.0",
+        "@smithy/util-defaults-mode-browser": "^3.0.4",
+        "@smithy/util-defaults-mode-node": "^3.0.4",
+        "@smithy/util-endpoints": "^2.0.2",
+        "@smithy/util-middleware": "^3.0.1",
+        "@smithy/util-retry": "^3.0.1",
         "@smithy/util-utf8": "^3.0.0",
         "tslib": "^2.6.2"
       },
@@ -158,46 +197,46 @@
       }
     },
     "node_modules/@aws-sdk/client-sso": {
-      "version": "3.577.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sso/-/client-sso-3.577.0.tgz",
-      "integrity": "sha512-BwujdXrydlk6UEyPmewm5GqG4nkQ6OVyRhS/SyZP/6UKSFv2/sf391Cmz0hN0itUTH1rR4XeLln8XCOtarkrzg==",
-      "dependencies": {
-        "@aws-crypto/sha256-browser": "3.0.0",
-        "@aws-crypto/sha256-js": "3.0.0",
-        "@aws-sdk/core": "3.576.0",
-        "@aws-sdk/middleware-host-header": "3.577.0",
-        "@aws-sdk/middleware-logger": "3.577.0",
-        "@aws-sdk/middleware-recursion-detection": "3.577.0",
-        "@aws-sdk/middleware-user-agent": "3.577.0",
-        "@aws-sdk/region-config-resolver": "3.577.0",
-        "@aws-sdk/types": "3.577.0",
-        "@aws-sdk/util-endpoints": "3.577.0",
-        "@aws-sdk/util-user-agent-browser": "3.577.0",
-        "@aws-sdk/util-user-agent-node": "3.577.0",
-        "@smithy/config-resolver": "^3.0.0",
-        "@smithy/core": "^2.0.0",
-        "@smithy/fetch-http-handler": "^3.0.0",
-        "@smithy/hash-node": "^3.0.0",
-        "@smithy/invalid-dependency": "^3.0.0",
-        "@smithy/middleware-content-length": "^3.0.0",
-        "@smithy/middleware-endpoint": "^3.0.0",
-        "@smithy/middleware-retry": "^3.0.0",
-        "@smithy/middleware-serde": "^3.0.0",
-        "@smithy/middleware-stack": "^3.0.0",
-        "@smithy/node-config-provider": "^3.0.0",
-        "@smithy/node-http-handler": "^3.0.0",
-        "@smithy/protocol-http": "^4.0.0",
-        "@smithy/smithy-client": "^3.0.0",
-        "@smithy/types": "^3.0.0",
-        "@smithy/url-parser": "^3.0.0",
+      "version": "3.598.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sso/-/client-sso-3.598.0.tgz",
+      "integrity": "sha512-nOI5lqPYa+YZlrrzwAJywJSw3MKVjvu6Ge2fCqQUNYMfxFB0NAaDFnl0EPjXi+sEbtCuz/uWE77poHbqiZ+7Iw==",
+      "dependencies": {
+        "@aws-crypto/sha256-browser": "5.2.0",
+        "@aws-crypto/sha256-js": "5.2.0",
+        "@aws-sdk/core": "3.598.0",
+        "@aws-sdk/middleware-host-header": "3.598.0",
+        "@aws-sdk/middleware-logger": "3.598.0",
+        "@aws-sdk/middleware-recursion-detection": "3.598.0",
+        "@aws-sdk/middleware-user-agent": "3.598.0",
+        "@aws-sdk/region-config-resolver": "3.598.0",
+        "@aws-sdk/types": "3.598.0",
+        "@aws-sdk/util-endpoints": "3.598.0",
+        "@aws-sdk/util-user-agent-browser": "3.598.0",
+        "@aws-sdk/util-user-agent-node": "3.598.0",
+        "@smithy/config-resolver": "^3.0.2",
+        "@smithy/core": "^2.2.1",
+        "@smithy/fetch-http-handler": "^3.0.2",
+        "@smithy/hash-node": "^3.0.1",
+        "@smithy/invalid-dependency": "^3.0.1",
+        "@smithy/middleware-content-length": "^3.0.1",
+        "@smithy/middleware-endpoint": "^3.0.2",
+        "@smithy/middleware-retry": "^3.0.4",
+        "@smithy/middleware-serde": "^3.0.1",
+        "@smithy/middleware-stack": "^3.0.1",
+        "@smithy/node-config-provider": "^3.1.1",
+        "@smithy/node-http-handler": "^3.0.1",
+        "@smithy/protocol-http": "^4.0.1",
+        "@smithy/smithy-client": "^3.1.2",
+        "@smithy/types": "^3.1.0",
+        "@smithy/url-parser": "^3.0.1",
         "@smithy/util-base64": "^3.0.0",
         "@smithy/util-body-length-browser": "^3.0.0",
         "@smithy/util-body-length-node": "^3.0.0",
-        "@smithy/util-defaults-mode-browser": "^3.0.0",
-        "@smithy/util-defaults-mode-node": "^3.0.0",
-        "@smithy/util-endpoints": "^2.0.0",
-        "@smithy/util-middleware": "^3.0.0",
-        "@smithy/util-retry": "^3.0.0",
+        "@smithy/util-defaults-mode-browser": "^3.0.4",
+        "@smithy/util-defaults-mode-node": "^3.0.4",
+        "@smithy/util-endpoints": "^2.0.2",
+        "@smithy/util-middleware": "^3.0.1",
+        "@smithy/util-retry": "^3.0.1",
         "@smithy/util-utf8": "^3.0.0",
         "tslib": "^2.6.2"
       },
@@ -206,48 +245,48 @@
       }
     },
     "node_modules/@aws-sdk/client-sso-oidc": {
-      "version": "3.577.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.577.0.tgz",
-      "integrity": "sha512-njmKSPDWueWWYVFpFcZ2P3fI6/pdQVDa0FgCyYZhOnJLgEHZIcBBg1AsnkVWacBuLopp9XVt2m+7hO6ugY1/1g==",
-      "dependencies": {
-        "@aws-crypto/sha256-browser": "3.0.0",
-        "@aws-crypto/sha256-js": "3.0.0",
-        "@aws-sdk/client-sts": "3.577.0",
-        "@aws-sdk/core": "3.576.0",
-        "@aws-sdk/credential-provider-node": "3.577.0",
-        "@aws-sdk/middleware-host-header": "3.577.0",
-        "@aws-sdk/middleware-logger": "3.577.0",
-        "@aws-sdk/middleware-recursion-detection": "3.577.0",
-        "@aws-sdk/middleware-user-agent": "3.577.0",
-        "@aws-sdk/region-config-resolver": "3.577.0",
-        "@aws-sdk/types": "3.577.0",
-        "@aws-sdk/util-endpoints": "3.577.0",
-        "@aws-sdk/util-user-agent-browser": "3.577.0",
-        "@aws-sdk/util-user-agent-node": "3.577.0",
-        "@smithy/config-resolver": "^3.0.0",
-        "@smithy/core": "^2.0.0",
-        "@smithy/fetch-http-handler": "^3.0.0",
-        "@smithy/hash-node": "^3.0.0",
-        "@smithy/invalid-dependency": "^3.0.0",
-        "@smithy/middleware-content-length": "^3.0.0",
-        "@smithy/middleware-endpoint": "^3.0.0",
-        "@smithy/middleware-retry": "^3.0.0",
-        "@smithy/middleware-serde": "^3.0.0",
-        "@smithy/middleware-stack": "^3.0.0",
-        "@smithy/node-config-provider": "^3.0.0",
-        "@smithy/node-http-handler": "^3.0.0",
-        "@smithy/protocol-http": "^4.0.0",
-        "@smithy/smithy-client": "^3.0.0",
-        "@smithy/types": "^3.0.0",
-        "@smithy/url-parser": "^3.0.0",
+      "version": "3.598.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.598.0.tgz",
+      "integrity": "sha512-jfdH1pAO9Tt8Nkta/JJLoUnwl7jaRdxToQTJfUtE+o3+0JP5sA4LfC2rBkJSWcU5BdAA+kyOs5Lv776DlN04Vg==",
+      "dependencies": {
+        "@aws-crypto/sha256-browser": "5.2.0",
+        "@aws-crypto/sha256-js": "5.2.0",
+        "@aws-sdk/client-sts": "3.598.0",
+        "@aws-sdk/core": "3.598.0",
+        "@aws-sdk/credential-provider-node": "3.598.0",
+        "@aws-sdk/middleware-host-header": "3.598.0",
+        "@aws-sdk/middleware-logger": "3.598.0",
+        "@aws-sdk/middleware-recursion-detection": "3.598.0",
+        "@aws-sdk/middleware-user-agent": "3.598.0",
+        "@aws-sdk/region-config-resolver": "3.598.0",
+        "@aws-sdk/types": "3.598.0",
+        "@aws-sdk/util-endpoints": "3.598.0",
+        "@aws-sdk/util-user-agent-browser": "3.598.0",
+        "@aws-sdk/util-user-agent-node": "3.598.0",
+        "@smithy/config-resolver": "^3.0.2",
+        "@smithy/core": "^2.2.1",
+        "@smithy/fetch-http-handler": "^3.0.2",
+        "@smithy/hash-node": "^3.0.1",
+        "@smithy/invalid-dependency": "^3.0.1",
+        "@smithy/middleware-content-length": "^3.0.1",
+        "@smithy/middleware-endpoint": "^3.0.2",
+        "@smithy/middleware-retry": "^3.0.4",
+        "@smithy/middleware-serde": "^3.0.1",
+        "@smithy/middleware-stack": "^3.0.1",
+        "@smithy/node-config-provider": "^3.1.1",
+        "@smithy/node-http-handler": "^3.0.1",
+        "@smithy/protocol-http": "^4.0.1",
+        "@smithy/smithy-client": "^3.1.2",
+        "@smithy/types": "^3.1.0",
+        "@smithy/url-parser": "^3.0.1",
         "@smithy/util-base64": "^3.0.0",
         "@smithy/util-body-length-browser": "^3.0.0",
         "@smithy/util-body-length-node": "^3.0.0",
-        "@smithy/util-defaults-mode-browser": "^3.0.0",
-        "@smithy/util-defaults-mode-node": "^3.0.0",
-        "@smithy/util-endpoints": "^2.0.0",
-        "@smithy/util-middleware": "^3.0.0",
-        "@smithy/util-retry": "^3.0.0",
+        "@smithy/util-defaults-mode-browser": "^3.0.4",
+        "@smithy/util-defaults-mode-node": "^3.0.4",
+        "@smithy/util-endpoints": "^2.0.2",
+        "@smithy/util-middleware": "^3.0.1",
+        "@smithy/util-retry": "^3.0.1",
         "@smithy/util-utf8": "^3.0.0",
         "tslib": "^2.6.2"
       },
@@ -256,48 +295,48 @@
       }
     },
     "node_modules/@aws-sdk/client-sts": {
-      "version": "3.577.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sts/-/client-sts-3.577.0.tgz",
-      "integrity": "sha512-509Kklimva1XVlhGbpTpeX3kOP6ORpm44twJxDHpa9TURbmoaxj7veWlnLCbDorxDTrbsDghvYZshvcLsojVpg==",
-      "dependencies": {
-        "@aws-crypto/sha256-browser": "3.0.0",
-        "@aws-crypto/sha256-js": "3.0.0",
-        "@aws-sdk/client-sso-oidc": "3.577.0",
-        "@aws-sdk/core": "3.576.0",
-        "@aws-sdk/credential-provider-node": "3.577.0",
-        "@aws-sdk/middleware-host-header": "3.577.0",
-        "@aws-sdk/middleware-logger": "3.577.0",
-        "@aws-sdk/middleware-recursion-detection": "3.577.0",
-        "@aws-sdk/middleware-user-agent": "3.577.0",
-        "@aws-sdk/region-config-resolver": "3.577.0",
-        "@aws-sdk/types": "3.577.0",
-        "@aws-sdk/util-endpoints": "3.577.0",
-        "@aws-sdk/util-user-agent-browser": "3.577.0",
-        "@aws-sdk/util-user-agent-node": "3.577.0",
-        "@smithy/config-resolver": "^3.0.0",
-        "@smithy/core": "^2.0.0",
-        "@smithy/fetch-http-handler": "^3.0.0",
-        "@smithy/hash-node": "^3.0.0",
-        "@smithy/invalid-dependency": "^3.0.0",
-        "@smithy/middleware-content-length": "^3.0.0",
-        "@smithy/middleware-endpoint": "^3.0.0",
-        "@smithy/middleware-retry": "^3.0.0",
-        "@smithy/middleware-serde": "^3.0.0",
-        "@smithy/middleware-stack": "^3.0.0",
-        "@smithy/node-config-provider": "^3.0.0",
-        "@smithy/node-http-handler": "^3.0.0",
-        "@smithy/protocol-http": "^4.0.0",
-        "@smithy/smithy-client": "^3.0.0",
-        "@smithy/types": "^3.0.0",
-        "@smithy/url-parser": "^3.0.0",
+      "version": "3.598.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sts/-/client-sts-3.598.0.tgz",
+      "integrity": "sha512-bXhz/cHL0iB9UH9IFtMaJJf4F8mV+HzncETCRFzZ9SyUMt5rP9j8A7VZknqGYSx/6mI8SsB1XJQkWSbhn6FiSQ==",
+      "dependencies": {
+        "@aws-crypto/sha256-browser": "5.2.0",
+        "@aws-crypto/sha256-js": "5.2.0",
+        "@aws-sdk/client-sso-oidc": "3.598.0",
+        "@aws-sdk/core": "3.598.0",
+        "@aws-sdk/credential-provider-node": "3.598.0",
+        "@aws-sdk/middleware-host-header": "3.598.0",
+        "@aws-sdk/middleware-logger": "3.598.0",
+        "@aws-sdk/middleware-recursion-detection": "3.598.0",
+        "@aws-sdk/middleware-user-agent": "3.598.0",
+        "@aws-sdk/region-config-resolver": "3.598.0",
+        "@aws-sdk/types": "3.598.0",
+        "@aws-sdk/util-endpoints": "3.598.0",
+        "@aws-sdk/util-user-agent-browser": "3.598.0",
+        "@aws-sdk/util-user-agent-node": "3.598.0",
+        "@smithy/config-resolver": "^3.0.2",
+        "@smithy/core": "^2.2.1",
+        "@smithy/fetch-http-handler": "^3.0.2",
+        "@smithy/hash-node": "^3.0.1",
+        "@smithy/invalid-dependency": "^3.0.1",
+        "@smithy/middleware-content-length": "^3.0.1",
+        "@smithy/middleware-endpoint": "^3.0.2",
+        "@smithy/middleware-retry": "^3.0.4",
+        "@smithy/middleware-serde": "^3.0.1",
+        "@smithy/middleware-stack": "^3.0.1",
+        "@smithy/node-config-provider": "^3.1.1",
+        "@smithy/node-http-handler": "^3.0.1",
+        "@smithy/protocol-http": "^4.0.1",
+        "@smithy/smithy-client": "^3.1.2",
+        "@smithy/types": "^3.1.0",
+        "@smithy/url-parser": "^3.0.1",
         "@smithy/util-base64": "^3.0.0",
         "@smithy/util-body-length-browser": "^3.0.0",
         "@smithy/util-body-length-node": "^3.0.0",
-        "@smithy/util-defaults-mode-browser": "^3.0.0",
-        "@smithy/util-defaults-mode-node": "^3.0.0",
-        "@smithy/util-endpoints": "^2.0.0",
-        "@smithy/util-middleware": "^3.0.0",
-        "@smithy/util-retry": "^3.0.0",
+        "@smithy/util-defaults-mode-browser": "^3.0.4",
+        "@smithy/util-defaults-mode-node": "^3.0.4",
+        "@smithy/util-endpoints": "^2.0.2",
+        "@smithy/util-middleware": "^3.0.1",
+        "@smithy/util-retry": "^3.0.1",
         "@smithy/util-utf8": "^3.0.0",
         "tslib": "^2.6.2"
       },
@@ -306,15 +345,15 @@
       }
     },
     "node_modules/@aws-sdk/core": {
-      "version": "3.576.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/core/-/core-3.576.0.tgz",
-      "integrity": "sha512-KDvDlbeipSTIf+ffKtTg1m419TK7s9mZSWC8bvuZ9qx6/sjQFOXIKOVqyuli6DnfxGbvRcwoRuY99OcCH1N/0w==",
-      "dependencies": {
-        "@smithy/core": "^2.0.0",
-        "@smithy/protocol-http": "^4.0.0",
-        "@smithy/signature-v4": "^3.0.0",
-        "@smithy/smithy-client": "^3.0.0",
-        "@smithy/types": "^3.0.0",
+      "version": "3.598.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/core/-/core-3.598.0.tgz",
+      "integrity": "sha512-HaSjt7puO5Cc7cOlrXFCW0rtA0BM9lvzjl56x0A20Pt+0wxXGeTOZZOkXQIepbrFkV2e/HYukuT9e99vXDm59g==",
+      "dependencies": {
+        "@smithy/core": "^2.2.1",
+        "@smithy/protocol-http": "^4.0.1",
+        "@smithy/signature-v4": "^3.1.0",
+        "@smithy/smithy-client": "^3.1.2",
+        "@smithy/types": "^3.1.0",
         "fast-xml-parser": "4.2.5",
         "tslib": "^2.6.2"
       },
@@ -323,14 +362,14 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-cognito-identity": {
-      "version": "3.577.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.577.0.tgz",
-      "integrity": "sha512-y5yo4RKQSIQEOGLMLziLh0MZ+CxLs2QmTRjh8PkL8ovy12FPyou9Ptr7hIDD5SnCsiItJful5qbmj9e2QSmozw==",
-      "dependencies": {
-        "@aws-sdk/client-cognito-identity": "3.577.0",
-        "@aws-sdk/types": "3.577.0",
-        "@smithy/property-provider": "^3.0.0",
-        "@smithy/types": "^3.0.0",
+      "version": "3.598.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.598.0.tgz",
+      "integrity": "sha512-u6oocRReswkA2mFlOwtCetgmEr9B+Yhle3K13x37rb1lQgq1wUuWUvHU7U9v26hUZIhfUpigV/Mgr/RQZB6+Yw==",
+      "dependencies": {
+        "@aws-sdk/client-cognito-identity": "3.598.0",
+        "@aws-sdk/types": "3.598.0",
+        "@smithy/property-provider": "^3.1.1",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -338,13 +377,13 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-env": {
-      "version": "3.577.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.577.0.tgz",
-      "integrity": "sha512-Jxu255j0gToMGEiqufP8ZtKI8HW90lOLjwJ3LrdlD/NLsAY0tOQf1fWc53u28hWmmNGMxmCrL2p66IOgMDhDUw==",
+      "version": "3.598.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.598.0.tgz",
+      "integrity": "sha512-vi1khgn7yXzLCcgSIzQrrtd2ilUM0dWodxj3PQ6BLfP0O+q1imO3hG1nq7DVyJtq7rFHs6+9N8G4mYvTkxby2w==",
       "dependencies": {
-        "@aws-sdk/types": "3.577.0",
-        "@smithy/property-provider": "^3.0.0",
-        "@smithy/types": "^3.0.0",
+        "@aws-sdk/types": "3.598.0",
+        "@smithy/property-provider": "^3.1.1",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -352,18 +391,18 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-http": {
-      "version": "3.577.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.577.0.tgz",
-      "integrity": "sha512-n++yhCp67b9+ZRGEdY1jhamB5E/O+QsIDOPSuRmdaSGMCOd82oUEKPgIVEU1bkqxDsBxgiEWuvtfhK6sNiDS0A==",
-      "dependencies": {
-        "@aws-sdk/types": "3.577.0",
-        "@smithy/fetch-http-handler": "^3.0.0",
-        "@smithy/node-http-handler": "^3.0.0",
-        "@smithy/property-provider": "^3.0.0",
-        "@smithy/protocol-http": "^4.0.0",
-        "@smithy/smithy-client": "^3.0.0",
-        "@smithy/types": "^3.0.0",
-        "@smithy/util-stream": "^3.0.0",
+      "version": "3.598.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.598.0.tgz",
+      "integrity": "sha512-N7cIafi4HVlQvEgvZSo1G4T9qb/JMLGMdBsDCT5XkeJrF0aptQWzTFH0jIdZcLrMYvzPcuEyO3yCBe6cy/ba0g==",
+      "dependencies": {
+        "@aws-sdk/types": "3.598.0",
+        "@smithy/fetch-http-handler": "^3.0.2",
+        "@smithy/node-http-handler": "^3.0.1",
+        "@smithy/property-provider": "^3.1.1",
+        "@smithy/protocol-http": "^4.0.1",
+        "@smithy/smithy-client": "^3.1.2",
+        "@smithy/types": "^3.1.0",
+        "@smithy/util-stream": "^3.0.2",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -371,44 +410,45 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-ini": {
-      "version": "3.577.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.577.0.tgz",
-      "integrity": "sha512-q7lHPtv6BjRvChUE3m0tIaEZKxPTaZ1B3lKxGYsFl3VLAu5N8yGCUKwuA1izf4ucT+LyKscVGqK6VDZx1ev3nw==",
-      "dependencies": {
-        "@aws-sdk/credential-provider-env": "3.577.0",
-        "@aws-sdk/credential-provider-process": "3.577.0",
-        "@aws-sdk/credential-provider-sso": "3.577.0",
-        "@aws-sdk/credential-provider-web-identity": "3.577.0",
-        "@aws-sdk/types": "3.577.0",
-        "@smithy/credential-provider-imds": "^3.0.0",
-        "@smithy/property-provider": "^3.0.0",
-        "@smithy/shared-ini-file-loader": "^3.0.0",
-        "@smithy/types": "^3.0.0",
+      "version": "3.598.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.598.0.tgz",
+      "integrity": "sha512-/ppcIVUbRwDIwJDoYfp90X3+AuJo2mvE52Y1t2VSrvUovYn6N4v95/vXj6LS8CNDhz2jvEJYmu+0cTMHdhI6eA==",
+      "dependencies": {
+        "@aws-sdk/credential-provider-env": "3.598.0",
+        "@aws-sdk/credential-provider-http": "3.598.0",
+        "@aws-sdk/credential-provider-process": "3.598.0",
+        "@aws-sdk/credential-provider-sso": "3.598.0",
+        "@aws-sdk/credential-provider-web-identity": "3.598.0",
+        "@aws-sdk/types": "3.598.0",
+        "@smithy/credential-provider-imds": "^3.1.1",
+        "@smithy/property-provider": "^3.1.1",
+        "@smithy/shared-ini-file-loader": "^3.1.1",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=16.0.0"
       },
       "peerDependencies": {
-        "@aws-sdk/client-sts": "^3.577.0"
+        "@aws-sdk/client-sts": "^3.598.0"
       }
     },
     "node_modules/@aws-sdk/credential-provider-node": {
-      "version": "3.577.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.577.0.tgz",
-      "integrity": "sha512-epZ1HOMsrXBNczc0HQpv0VMjqAEpc09DUA7Rg3gUJfn8umhML7A7bXnUyqPA+S54q397UYg1leQKdSn23OiwQQ==",
-      "dependencies": {
-        "@aws-sdk/credential-provider-env": "3.577.0",
-        "@aws-sdk/credential-provider-http": "3.577.0",
-        "@aws-sdk/credential-provider-ini": "3.577.0",
-        "@aws-sdk/credential-provider-process": "3.577.0",
-        "@aws-sdk/credential-provider-sso": "3.577.0",
-        "@aws-sdk/credential-provider-web-identity": "3.577.0",
-        "@aws-sdk/types": "3.577.0",
-        "@smithy/credential-provider-imds": "^3.0.0",
-        "@smithy/property-provider": "^3.0.0",
-        "@smithy/shared-ini-file-loader": "^3.0.0",
-        "@smithy/types": "^3.0.0",
+      "version": "3.598.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.598.0.tgz",
+      "integrity": "sha512-sXTlqL5I/awlF9Dg2MQ17SfrEaABVnsj2mf4jF5qQrIRhfbvQOIYdEqdy8Rn1AWlJMz/N450SGzc0XJ5owxxqw==",
+      "dependencies": {
+        "@aws-sdk/credential-provider-env": "3.598.0",
+        "@aws-sdk/credential-provider-http": "3.598.0",
+        "@aws-sdk/credential-provider-ini": "3.598.0",
+        "@aws-sdk/credential-provider-process": "3.598.0",
+        "@aws-sdk/credential-provider-sso": "3.598.0",
+        "@aws-sdk/credential-provider-web-identity": "3.598.0",
+        "@aws-sdk/types": "3.598.0",
+        "@smithy/credential-provider-imds": "^3.1.1",
+        "@smithy/property-provider": "^3.1.1",
+        "@smithy/shared-ini-file-loader": "^3.1.1",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -416,14 +456,14 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-process": {
-      "version": "3.577.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.577.0.tgz",
-      "integrity": "sha512-Gin6BWtOiXxIgITrJ3Nwc+Y2P1uVT6huYR4EcbA/DJUPWyO0n9y5UFLewPvVbLkRn15JeEqErBLUrHclkiOKtw==",
-      "dependencies": {
-        "@aws-sdk/types": "3.577.0",
-        "@smithy/property-provider": "^3.0.0",
-        "@smithy/shared-ini-file-loader": "^3.0.0",
-        "@smithy/types": "^3.0.0",
+      "version": "3.598.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.598.0.tgz",
+      "integrity": "sha512-rM707XbLW8huMk722AgjVyxu2tMZee++fNA8TJVNgs1Ma02Wx6bBrfIvlyK0rCcIRb0WdQYP6fe3Xhiu4e8IBA==",
+      "dependencies": {
+        "@aws-sdk/types": "3.598.0",
+        "@smithy/property-provider": "^3.1.1",
+        "@smithy/shared-ini-file-loader": "^3.1.1",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -431,16 +471,16 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-sso": {
-      "version": "3.577.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.577.0.tgz",
-      "integrity": "sha512-iVm5SQvS7EgZTJsRaqUOmDQpBQPPPat42SCbWFvFQOLrl8qewq8OP94hFS5w2mP62zngeYzqhJnDel79HXbxew==",
-      "dependencies": {
-        "@aws-sdk/client-sso": "3.577.0",
-        "@aws-sdk/token-providers": "3.577.0",
-        "@aws-sdk/types": "3.577.0",
-        "@smithy/property-provider": "^3.0.0",
-        "@smithy/shared-ini-file-loader": "^3.0.0",
-        "@smithy/types": "^3.0.0",
+      "version": "3.598.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.598.0.tgz",
+      "integrity": "sha512-5InwUmrAuqQdOOgxTccRayMMkSmekdLk6s+az9tmikq0QFAHUCtofI+/fllMXSR9iL6JbGYi1940+EUmS4pHJA==",
+      "dependencies": {
+        "@aws-sdk/client-sso": "3.598.0",
+        "@aws-sdk/token-providers": "3.598.0",
+        "@aws-sdk/types": "3.598.0",
+        "@smithy/property-provider": "^3.1.1",
+        "@smithy/shared-ini-file-loader": "^3.1.1",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -448,42 +488,42 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-web-identity": {
-      "version": "3.577.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.577.0.tgz",
-      "integrity": "sha512-ZGHGNRaCtJJmszb9UTnC7izNCtRUttdPlLdMkh41KPS32vfdrBDHs1JrpbZijItRj1xKuOXsiYSXLAaHGcLh8Q==",
+      "version": "3.598.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.598.0.tgz",
+      "integrity": "sha512-GV5GdiMbz5Tz9JO4NJtRoFXjW0GPEujA0j+5J/B723rTN+REHthJu48HdBKouHGhdzkDWkkh1bu52V02Wprw8w==",
       "dependencies": {
-        "@aws-sdk/types": "3.577.0",
-        "@smithy/property-provider": "^3.0.0",
-        "@smithy/types": "^3.0.0",
+        "@aws-sdk/types": "3.598.0",
+        "@smithy/property-provider": "^3.1.1",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=16.0.0"
       },
       "peerDependencies": {
-        "@aws-sdk/client-sts": "^3.577.0"
+        "@aws-sdk/client-sts": "^3.598.0"
       }
     },
     "node_modules/@aws-sdk/credential-providers": {
-      "version": "3.577.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-providers/-/credential-providers-3.577.0.tgz",
-      "integrity": "sha512-/fzdyyAetJxTPH8f2bh1UkcN48dScLb6LjBj9+wX2BHyKSZUal7+TqPTyme4f3pj1I1EeKhDIYKldR8YyMPIAg==",
-      "dependencies": {
-        "@aws-sdk/client-cognito-identity": "3.577.0",
-        "@aws-sdk/client-sso": "3.577.0",
-        "@aws-sdk/client-sts": "3.577.0",
-        "@aws-sdk/credential-provider-cognito-identity": "3.577.0",
-        "@aws-sdk/credential-provider-env": "3.577.0",
-        "@aws-sdk/credential-provider-http": "3.577.0",
-        "@aws-sdk/credential-provider-ini": "3.577.0",
-        "@aws-sdk/credential-provider-node": "3.577.0",
-        "@aws-sdk/credential-provider-process": "3.577.0",
-        "@aws-sdk/credential-provider-sso": "3.577.0",
-        "@aws-sdk/credential-provider-web-identity": "3.577.0",
-        "@aws-sdk/types": "3.577.0",
-        "@smithy/credential-provider-imds": "^3.0.0",
-        "@smithy/property-provider": "^3.0.0",
-        "@smithy/types": "^3.0.0",
+      "version": "3.598.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-providers/-/credential-providers-3.598.0.tgz",
+      "integrity": "sha512-IFZwH3F2rA2WbpYFUxOeu/M3/9p4+oRbKVLDZlaaDtwwuZ9VHEbnkUm20zOgSXeVExa3qgYhJvg7H5JrqxP97A==",
+      "dependencies": {
+        "@aws-sdk/client-cognito-identity": "3.598.0",
+        "@aws-sdk/client-sso": "3.598.0",
+        "@aws-sdk/client-sts": "3.598.0",
+        "@aws-sdk/credential-provider-cognito-identity": "3.598.0",
+        "@aws-sdk/credential-provider-env": "3.598.0",
+        "@aws-sdk/credential-provider-http": "3.598.0",
+        "@aws-sdk/credential-provider-ini": "3.598.0",
+        "@aws-sdk/credential-provider-node": "3.598.0",
+        "@aws-sdk/credential-provider-process": "3.598.0",
+        "@aws-sdk/credential-provider-sso": "3.598.0",
+        "@aws-sdk/credential-provider-web-identity": "3.598.0",
+        "@aws-sdk/types": "3.598.0",
+        "@smithy/credential-provider-imds": "^3.1.1",
+        "@smithy/property-provider": "^3.1.1",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -491,13 +531,13 @@
       }
     },
     "node_modules/@aws-sdk/middleware-host-header": {
-      "version": "3.577.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.577.0.tgz",
-      "integrity": "sha512-9ca5MJz455CODIVXs0/sWmJm7t3QO4EUa1zf8pE8grLpzf0J94bz/skDWm37Pli13T3WaAQBHCTiH2gUVfCsWg==",
+      "version": "3.598.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.598.0.tgz",
+      "integrity": "sha512-WiaG059YBQwQraNejLIi0gMNkX7dfPZ8hDIhvMr5aVPRbaHH8AYF3iNSsXYCHvA2Cfa1O9haYXsuMF9flXnCmA==",
       "dependencies": {
-        "@aws-sdk/types": "3.577.0",
-        "@smithy/protocol-http": "^4.0.0",
-        "@smithy/types": "^3.0.0",
+        "@aws-sdk/types": "3.598.0",
+        "@smithy/protocol-http": "^4.0.1",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -505,12 +545,12 @@
       }
     },
     "node_modules/@aws-sdk/middleware-logger": {
-      "version": "3.577.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-logger/-/middleware-logger-3.577.0.tgz",
-      "integrity": "sha512-aPFGpGjTZcJYk+24bg7jT4XdIp42mFXSuPt49lw5KygefLyJM/sB0bKKqPYYivW0rcuZ9brQ58eZUNthrzYAvg==",
+      "version": "3.598.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-logger/-/middleware-logger-3.598.0.tgz",
+      "integrity": "sha512-bxBjf/VYiu3zfu8SYM2S9dQQc3tz5uBAOcPz/Bt8DyyK3GgOpjhschH/2XuUErsoUO1gDJqZSdGOmuHGZQn00Q==",
       "dependencies": {
-        "@aws-sdk/types": "3.577.0",
-        "@smithy/types": "^3.0.0",
+        "@aws-sdk/types": "3.598.0",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -518,13 +558,13 @@
       }
     },
     "node_modules/@aws-sdk/middleware-recursion-detection": {
-      "version": "3.577.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.577.0.tgz",
-      "integrity": "sha512-pn3ZVEd2iobKJlR3H+bDilHjgRnNrQ6HMmK9ZzZw89Ckn3Dcbv48xOv4RJvu0aU8SDLl/SNCxppKjeLDTPGBNA==",
+      "version": "3.598.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.598.0.tgz",
+      "integrity": "sha512-vjT9BeFY9FeN0f8hm2l6F53tI0N5bUq6RcDkQXKNabXBnQxKptJRad6oP2X5y3FoVfBLOuDkQgiC2940GIPxtQ==",
       "dependencies": {
-        "@aws-sdk/types": "3.577.0",
-        "@smithy/protocol-http": "^4.0.0",
-        "@smithy/types": "^3.0.0",
+        "@aws-sdk/types": "3.598.0",
+        "@smithy/protocol-http": "^4.0.1",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -532,14 +572,14 @@
       }
     },
     "node_modules/@aws-sdk/middleware-user-agent": {
-      "version": "3.577.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.577.0.tgz",
-      "integrity": "sha512-P55HAXgwmiHHpFx5JEPvOnAbfhN7v6sWv9PBQs+z2tC7QiBcPS0cdJR6PfV7J1n4VPK52/OnrK3l9VxdQ7Ms0g==",
-      "dependencies": {
-        "@aws-sdk/types": "3.577.0",
-        "@aws-sdk/util-endpoints": "3.577.0",
-        "@smithy/protocol-http": "^4.0.0",
-        "@smithy/types": "^3.0.0",
+      "version": "3.598.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.598.0.tgz",
+      "integrity": "sha512-4tjESlHG5B5MdjUaLK7tQs/miUtHbb6deauQx8ryqSBYOhfHVgb1ZnzvQR0bTrhpqUg0WlybSkDaZAICf9xctg==",
+      "dependencies": {
+        "@aws-sdk/types": "3.598.0",
+        "@aws-sdk/util-endpoints": "3.598.0",
+        "@smithy/protocol-http": "^4.0.1",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -547,15 +587,15 @@
       }
     },
     "node_modules/@aws-sdk/region-config-resolver": {
-      "version": "3.577.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.577.0.tgz",
-      "integrity": "sha512-4ChCFACNwzqx/xjg3zgFcW8Ali6R9C95cFECKWT/7CUM1D0MGvkclSH2cLarmHCmJgU6onKkJroFtWp0kHhgyg==",
+      "version": "3.598.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.598.0.tgz",
+      "integrity": "sha512-oYXhmTokSav4ytmWleCr3rs/1nyvZW/S0tdi6X7u+dLNL5Jee+uMxWGzgOrWK6wrQOzucLVjS4E/wA11Kv2GTw==",
       "dependencies": {
-        "@aws-sdk/types": "3.577.0",
-        "@smithy/node-config-provider": "^3.0.0",
-        "@smithy/types": "^3.0.0",
+        "@aws-sdk/types": "3.598.0",
+        "@smithy/node-config-provider": "^3.1.1",
+        "@smithy/types": "^3.1.0",
         "@smithy/util-config-provider": "^3.0.0",
-        "@smithy/util-middleware": "^3.0.0",
+        "@smithy/util-middleware": "^3.0.1",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -563,29 +603,29 @@
       }
     },
     "node_modules/@aws-sdk/token-providers": {
-      "version": "3.577.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/token-providers/-/token-providers-3.577.0.tgz",
-      "integrity": "sha512-0CkIZpcC3DNQJQ1hDjm2bdSy/Xjs7Ny5YvSsacasGOkNfk+FdkiQy6N67bZX3Zbc9KIx+Nz4bu3iDeNSNplnnQ==",
-      "dependencies": {
-        "@aws-sdk/types": "3.577.0",
-        "@smithy/property-provider": "^3.0.0",
-        "@smithy/shared-ini-file-loader": "^3.0.0",
-        "@smithy/types": "^3.0.0",
+      "version": "3.598.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/token-providers/-/token-providers-3.598.0.tgz",
+      "integrity": "sha512-TKY1EVdHVBnZqpyxyTHdpZpa1tUpb6nxVeRNn1zWG8QB5MvH4ALLd/jR+gtmWDNQbIG4cVuBOZFVL8hIYicKTA==",
+      "dependencies": {
+        "@aws-sdk/types": "3.598.0",
+        "@smithy/property-provider": "^3.1.1",
+        "@smithy/shared-ini-file-loader": "^3.1.1",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=16.0.0"
       },
       "peerDependencies": {
-        "@aws-sdk/client-sso-oidc": "^3.577.0"
+        "@aws-sdk/client-sso-oidc": "^3.598.0"
       }
     },
     "node_modules/@aws-sdk/types": {
-      "version": "3.577.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/types/-/types-3.577.0.tgz",
-      "integrity": "sha512-FT2JZES3wBKN/alfmhlo+3ZOq/XJ0C7QOZcDNrpKjB0kqYoKjhVKZ/Hx6ArR0czkKfHzBBEs6y40ebIHx2nSmA==",
+      "version": "3.598.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/types/-/types-3.598.0.tgz",
+      "integrity": "sha512-742uRl6z7u0LFmZwDrFP6r1wlZcgVPw+/TilluDJmCAR8BgRw3IR+743kUXKBGd8QZDRW2n6v/PYsi/AWCDDMQ==",
       "dependencies": {
-        "@smithy/types": "^3.0.0",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -593,13 +633,13 @@
       }
     },
     "node_modules/@aws-sdk/util-endpoints": {
-      "version": "3.577.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-endpoints/-/util-endpoints-3.577.0.tgz",
-      "integrity": "sha512-FjuUz1Kdy4Zly2q/c58tpdqHd6z7iOdU/caYzoc8jwgAHBDBbIJNQLCU9hXJnPV2M8pWxQDyIZsoVwtmvErPzw==",
+      "version": "3.598.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-endpoints/-/util-endpoints-3.598.0.tgz",
+      "integrity": "sha512-Qo9UoiVVZxcOEdiOMZg3xb1mzkTxrhd4qSlg5QQrfWPJVx/QOg+Iy0NtGxPtHtVZNHZxohYwDwV/tfsnDSE2gQ==",
       "dependencies": {
-        "@aws-sdk/types": "3.577.0",
-        "@smithy/types": "^3.0.0",
-        "@smithy/util-endpoints": "^2.0.0",
+        "@aws-sdk/types": "3.598.0",
+        "@smithy/types": "^3.1.0",
+        "@smithy/util-endpoints": "^2.0.2",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -618,24 +658,24 @@
       }
     },
     "node_modules/@aws-sdk/util-user-agent-browser": {
-      "version": "3.577.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.577.0.tgz",
-      "integrity": "sha512-zEAzHgR6HWpZOH7xFgeJLc6/CzMcx4nxeQolZxVZoB5pPaJd3CjyRhZN0xXeZB0XIRCWmb4yJBgyiugXLNMkLA==",
+      "version": "3.598.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.598.0.tgz",
+      "integrity": "sha512-36Sxo6F+ykElaL1mWzWjlg+1epMpSe8obwhCN1yGE7Js9ywy5U6k6l+A3q3YM9YRbm740sNxncbwLklMvuhTKw==",
       "dependencies": {
-        "@aws-sdk/types": "3.577.0",
-        "@smithy/types": "^3.0.0",
+        "@aws-sdk/types": "3.598.0",
+        "@smithy/types": "^3.1.0",
         "bowser": "^2.11.0",
         "tslib": "^2.6.2"
       }
     },
     "node_modules/@aws-sdk/util-user-agent-node": {
-      "version": "3.577.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.577.0.tgz",
-      "integrity": "sha512-XqvtFjbSMtycZTWVwDe8DRWovuoMbA54nhUoZwVU6rW9OSD6NZWGR512BUGHFaWzW0Wg8++Dj10FrKTG2XtqfA==",
+      "version": "3.598.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.598.0.tgz",
+      "integrity": "sha512-oyWGcOlfTdzkC6SVplyr0AGh54IMrDxbhg5RxJ5P+V4BKfcDoDcZV9xenUk9NsOi9MuUjxMumb9UJGkDhM1m0A==",
       "dependencies": {
-        "@aws-sdk/types": "3.577.0",
-        "@smithy/node-config-provider": "^3.0.0",
-        "@smithy/types": "^3.0.0",
+        "@aws-sdk/types": "3.598.0",
+        "@smithy/node-config-provider": "^3.1.1",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -650,20 +690,12 @@
         }
       }
     },
-    "node_modules/@aws-sdk/util-utf8-browser": {
-      "version": "3.259.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz",
-      "integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==",
-      "dependencies": {
-        "tslib": "^2.3.1"
-      }
-    },
     "node_modules/@babel/code-frame": {
-      "version": "7.24.2",
-      "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.24.2.tgz",
-      "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.24.7.tgz",
+      "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
       "dependencies": {
-        "@babel/highlight": "^7.24.2",
+        "@babel/highlight": "^7.24.7",
         "picocolors": "^1.0.0"
       },
       "engines": {
@@ -671,28 +703,28 @@
       }
     },
     "node_modules/@babel/compat-data": {
-      "version": "7.24.4",
-      "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.24.4.tgz",
-      "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.24.7.tgz",
+      "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==",
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/core": {
-      "version": "7.24.5",
-      "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.24.5.tgz",
-      "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.24.7.tgz",
+      "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==",
       "dependencies": {
         "@ampproject/remapping": "^2.2.0",
-        "@babel/code-frame": "^7.24.2",
-        "@babel/generator": "^7.24.5",
-        "@babel/helper-compilation-targets": "^7.23.6",
-        "@babel/helper-module-transforms": "^7.24.5",
-        "@babel/helpers": "^7.24.5",
-        "@babel/parser": "^7.24.5",
-        "@babel/template": "^7.24.0",
-        "@babel/traverse": "^7.24.5",
-        "@babel/types": "^7.24.5",
+        "@babel/code-frame": "^7.24.7",
+        "@babel/generator": "^7.24.7",
+        "@babel/helper-compilation-targets": "^7.24.7",
+        "@babel/helper-module-transforms": "^7.24.7",
+        "@babel/helpers": "^7.24.7",
+        "@babel/parser": "^7.24.7",
+        "@babel/template": "^7.24.7",
+        "@babel/traverse": "^7.24.7",
+        "@babel/types": "^7.24.7",
         "convert-source-map": "^2.0.0",
         "debug": "^4.1.0",
         "gensync": "^1.0.0-beta.2",
@@ -716,11 +748,11 @@
       }
     },
     "node_modules/@babel/generator": {
-      "version": "7.24.5",
-      "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.24.5.tgz",
-      "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.24.7.tgz",
+      "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==",
       "dependencies": {
-        "@babel/types": "^7.24.5",
+        "@babel/types": "^7.24.7",
         "@jridgewell/gen-mapping": "^0.3.5",
         "@jridgewell/trace-mapping": "^0.3.25",
         "jsesc": "^2.5.1"
@@ -730,12 +762,12 @@
       }
     },
     "node_modules/@babel/helper-compilation-targets": {
-      "version": "7.23.6",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz",
-      "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz",
+      "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==",
       "dependencies": {
-        "@babel/compat-data": "^7.23.5",
-        "@babel/helper-validator-option": "^7.23.5",
+        "@babel/compat-data": "^7.24.7",
+        "@babel/helper-validator-option": "^7.24.7",
         "browserslist": "^4.22.2",
         "lru-cache": "^5.1.1",
         "semver": "^6.3.1"
@@ -753,57 +785,61 @@
       }
     },
     "node_modules/@babel/helper-environment-visitor": {
-      "version": "7.22.20",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
-      "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz",
+      "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==",
+      "dependencies": {
+        "@babel/types": "^7.24.7"
+      },
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/helper-function-name": {
-      "version": "7.23.0",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
-      "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz",
+      "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==",
       "dependencies": {
-        "@babel/template": "^7.22.15",
-        "@babel/types": "^7.23.0"
+        "@babel/template": "^7.24.7",
+        "@babel/types": "^7.24.7"
       },
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/helper-hoist-variables": {
-      "version": "7.22.5",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
-      "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz",
+      "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==",
       "dependencies": {
-        "@babel/types": "^7.22.5"
+        "@babel/types": "^7.24.7"
       },
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/helper-module-imports": {
-      "version": "7.24.3",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz",
-      "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz",
+      "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==",
       "dependencies": {
-        "@babel/types": "^7.24.0"
+        "@babel/traverse": "^7.24.7",
+        "@babel/types": "^7.24.7"
       },
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/helper-module-transforms": {
-      "version": "7.24.5",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz",
-      "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz",
+      "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==",
       "dependencies": {
-        "@babel/helper-environment-visitor": "^7.22.20",
-        "@babel/helper-module-imports": "^7.24.3",
-        "@babel/helper-simple-access": "^7.24.5",
-        "@babel/helper-split-export-declaration": "^7.24.5",
-        "@babel/helper-validator-identifier": "^7.24.5"
+        "@babel/helper-environment-visitor": "^7.24.7",
+        "@babel/helper-module-imports": "^7.24.7",
+        "@babel/helper-simple-access": "^7.24.7",
+        "@babel/helper-split-export-declaration": "^7.24.7",
+        "@babel/helper-validator-identifier": "^7.24.7"
       },
       "engines": {
         "node": ">=6.9.0"
@@ -813,78 +849,78 @@
       }
     },
     "node_modules/@babel/helper-plugin-utils": {
-      "version": "7.24.5",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz",
-      "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz",
+      "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==",
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/helper-simple-access": {
-      "version": "7.24.5",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz",
-      "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz",
+      "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==",
       "dependencies": {
-        "@babel/types": "^7.24.5"
+        "@babel/traverse": "^7.24.7",
+        "@babel/types": "^7.24.7"
       },
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/helper-split-export-declaration": {
-      "version": "7.24.5",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz",
-      "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz",
+      "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==",
       "dependencies": {
-        "@babel/types": "^7.24.5"
+        "@babel/types": "^7.24.7"
       },
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/helper-string-parser": {
-      "version": "7.24.1",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz",
-      "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz",
+      "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==",
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/helper-validator-identifier": {
-      "version": "7.24.5",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz",
-      "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
+      "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/helper-validator-option": {
-      "version": "7.23.5",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
-      "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz",
+      "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==",
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/helpers": {
-      "version": "7.24.5",
-      "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.24.5.tgz",
-      "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.24.7.tgz",
+      "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==",
       "dependencies": {
-        "@babel/template": "^7.24.0",
-        "@babel/traverse": "^7.24.5",
-        "@babel/types": "^7.24.5"
+        "@babel/template": "^7.24.7",
+        "@babel/types": "^7.24.7"
       },
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/highlight": {
-      "version": "7.24.5",
-      "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.24.5.tgz",
-      "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.24.7.tgz",
+      "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
       "dependencies": {
-        "@babel/helper-validator-identifier": "^7.24.5",
+        "@babel/helper-validator-identifier": "^7.24.7",
         "chalk": "^2.4.2",
         "js-tokens": "^4.0.0",
         "picocolors": "^1.0.0"
@@ -894,9 +930,9 @@
       }
     },
     "node_modules/@babel/parser": {
-      "version": "7.24.5",
-      "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.5.tgz",
-      "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.7.tgz",
+      "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==",
       "bin": {
         "parser": "bin/babel-parser.js"
       },
@@ -905,11 +941,11 @@
       }
     },
     "node_modules/@babel/plugin-transform-destructuring": {
-      "version": "7.24.5",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.5.tgz",
-      "integrity": "sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz",
+      "integrity": "sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==",
       "dependencies": {
-        "@babel/helper-plugin-utils": "^7.24.5"
+        "@babel/helper-plugin-utils": "^7.24.7"
       },
       "engines": {
         "node": ">=6.9.0"
@@ -919,11 +955,11 @@
       }
     },
     "node_modules/@babel/plugin-transform-parameters": {
-      "version": "7.24.5",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.5.tgz",
-      "integrity": "sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz",
+      "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==",
       "dependencies": {
-        "@babel/helper-plugin-utils": "^7.24.5"
+        "@babel/helper-plugin-utils": "^7.24.7"
       },
       "engines": {
         "node": ">=6.9.0"
@@ -933,11 +969,11 @@
       }
     },
     "node_modules/@babel/plugin-transform-shorthand-properties": {
-      "version": "7.24.1",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz",
-      "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz",
+      "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==",
       "dependencies": {
-        "@babel/helper-plugin-utils": "^7.24.0"
+        "@babel/helper-plugin-utils": "^7.24.7"
       },
       "engines": {
         "node": ">=6.9.0"
@@ -947,31 +983,31 @@
       }
     },
     "node_modules/@babel/template": {
-      "version": "7.24.0",
-      "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.24.0.tgz",
-      "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.24.7.tgz",
+      "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==",
       "dependencies": {
-        "@babel/code-frame": "^7.23.5",
-        "@babel/parser": "^7.24.0",
-        "@babel/types": "^7.24.0"
+        "@babel/code-frame": "^7.24.7",
+        "@babel/parser": "^7.24.7",
+        "@babel/types": "^7.24.7"
       },
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/traverse": {
-      "version": "7.24.5",
-      "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.24.5.tgz",
-      "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==",
-      "dependencies": {
-        "@babel/code-frame": "^7.24.2",
-        "@babel/generator": "^7.24.5",
-        "@babel/helper-environment-visitor": "^7.22.20",
-        "@babel/helper-function-name": "^7.23.0",
-        "@babel/helper-hoist-variables": "^7.22.5",
-        "@babel/helper-split-export-declaration": "^7.24.5",
-        "@babel/parser": "^7.24.5",
-        "@babel/types": "^7.24.5",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.24.7.tgz",
+      "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==",
+      "dependencies": {
+        "@babel/code-frame": "^7.24.7",
+        "@babel/generator": "^7.24.7",
+        "@babel/helper-environment-visitor": "^7.24.7",
+        "@babel/helper-function-name": "^7.24.7",
+        "@babel/helper-hoist-variables": "^7.24.7",
+        "@babel/helper-split-export-declaration": "^7.24.7",
+        "@babel/parser": "^7.24.7",
+        "@babel/types": "^7.24.7",
         "debug": "^4.3.1",
         "globals": "^11.1.0"
       },
@@ -980,12 +1016,12 @@
       }
     },
     "node_modules/@babel/types": {
-      "version": "7.24.5",
-      "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.24.5.tgz",
-      "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.24.7.tgz",
+      "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==",
       "dependencies": {
-        "@babel/helper-string-parser": "^7.24.1",
-        "@babel/helper-validator-identifier": "^7.24.5",
+        "@babel/helper-string-parser": "^7.24.7",
+        "@babel/helper-validator-identifier": "^7.24.7",
         "to-fast-properties": "^2.0.0"
       },
       "engines": {
@@ -1109,9 +1145,9 @@
       }
     },
     "node_modules/@mongodb-js/devtools-connect": {
-      "version": "2.6.3",
-      "resolved": "https://registry.npmmirror.com/@mongodb-js/devtools-connect/-/devtools-connect-2.6.3.tgz",
-      "integrity": "sha512-oGM/HQ8GJmcSVKcnVz+uNy3m1WFz2a7XqcEa/JJcl+imKDPHritkNVUsPIA9fYMRduuOT9f7ko8uWTVLgcw/qA==",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/@mongodb-js/devtools-connect/-/devtools-connect-3.0.1.tgz",
+      "integrity": "sha512-xbk/eGHPQTQz4VSpGb5oRqSSbzipcFDODrAc4YtYFrb0980buOAopO71NozCbQoVnoiO1pYVIqcnrZMHkdaJzg==",
       "dependencies": {
         "@mongodb-js/oidc-http-server-pages": "1.1.1",
         "lodash.merge": "^4.6.2",
@@ -1126,7 +1162,7 @@
         "resolve-mongodb-srv": "^1.1.1"
       },
       "peerDependencies": {
-        "@mongodb-js/oidc-plugin": "^0.4.0",
+        "@mongodb-js/oidc-plugin": "^1.0.0",
         "mongodb": "^5.8.1 || ^6.0.0",
         "mongodb-log-writer": "^1.4.2"
       }
@@ -1145,17 +1181,16 @@
       "integrity": "sha512-zYkANxb4HVDN4zGuU2ud4fL+XpqRxaydCwVZyU9Mh5EhqbrCL5mGH7t3BaGnfdQUw+HVtwP3dmasc+5Hjewk+g=="
     },
     "node_modules/@mongodb-js/oidc-plugin": {
-      "version": "0.4.0",
-      "resolved": "https://registry.npmmirror.com/@mongodb-js/oidc-plugin/-/oidc-plugin-0.4.0.tgz",
-      "integrity": "sha512-tinXSz6O2AmgMAgorXUcCJtDhayghkmsXVVTd5UiXhzSA/NNVtlleZXSVkG6tr46WXGzLISgVX+lUzzcEIiwJQ==",
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/@mongodb-js/oidc-plugin/-/oidc-plugin-1.0.2.tgz",
+      "integrity": "sha512-hwTbkmJ31RPB5ksA6pLepnaQOBz6iurE+uH89B1IIJdxVuiO0Qz+OqpTN8vk8LZzcVDb/WbNoxqxogCWwMqFKw==",
       "dependencies": {
-        "abort-controller": "^3.0.0",
         "express": "^4.18.2",
         "open": "^9.1.0",
         "openid-client": "^5.6.4"
       },
       "engines": {
-        "node": ">= 14.18.0"
+        "node": ">= 16.20.1"
       }
     },
     "node_modules/@mongodb-js/saslprep": {
@@ -1167,12 +1202,12 @@
       }
     },
     "node_modules/@mongosh/arg-parser": {
-      "version": "2.2.6",
-      "resolved": "https://registry.npmmirror.com/@mongosh/arg-parser/-/arg-parser-2.2.6.tgz",
-      "integrity": "sha512-eQa3NNxgyHsExN3DQi9zCNZKTp1g0z+8CdV+RYPHpRsNXtkjESu6A30qX90UYrtoyFzDt2O7NgocDA7pDh/whw==",
+      "version": "2.2.9",
+      "resolved": "https://registry.npmmirror.com/@mongosh/arg-parser/-/arg-parser-2.2.9.tgz",
+      "integrity": "sha512-Bc9v3cmhpfOG3LKRnOyZ/kfDJcQB1mNm7JWD2wJsaFBsWb4S1VXh50l23vC8HIj6vU6QYHGIAc5ikSxZ+shfyQ==",
       "dependencies": {
-        "@mongosh/errors": "2.2.6",
-        "@mongosh/i18n": "2.2.6",
+        "@mongosh/errors": "2.2.9",
+        "@mongosh/i18n": "2.2.9",
         "mongodb-connection-string-url": "^3.0.1"
       },
       "engines": {
@@ -1180,9 +1215,9 @@
       }
     },
     "node_modules/@mongosh/async-rewriter2": {
-      "version": "2.2.6",
-      "resolved": "https://registry.npmmirror.com/@mongosh/async-rewriter2/-/async-rewriter2-2.2.6.tgz",
-      "integrity": "sha512-EYv9MFbWuq8yCBGkSxcnt/lTbiDqrHFhReq6HgoPw4hBctS+hYd2qkroLhAUvoqv78t6PRoZcvynYb7CPOmqTA==",
+      "version": "2.2.9",
+      "resolved": "https://registry.npmmirror.com/@mongosh/async-rewriter2/-/async-rewriter2-2.2.9.tgz",
+      "integrity": "sha512-JiS0VxGLoHNfLF9zox1dY0jX/3+ygdziigbTfS1AkKWt/Nmf/DURBFFjgLqs3mn3V3qYE4mUCmbeB9G1f6yMYA==",
       "dependencies": {
         "@babel/core": "^7.22.8",
         "@babel/plugin-transform-destructuring": "^7.22.5",
@@ -1198,12 +1233,12 @@
       }
     },
     "node_modules/@mongosh/autocomplete": {
-      "version": "2.2.6",
-      "resolved": "https://registry.npmmirror.com/@mongosh/autocomplete/-/autocomplete-2.2.6.tgz",
-      "integrity": "sha512-d1oZZWXLOsJ1gFW1+A8Pdi+PuLALXYI3OwZOMtHSZCwSjR8DED90D9rDjUaOIZHKzTFWubUMRPonD9GQHo/hzg==",
+      "version": "2.2.9",
+      "resolved": "https://registry.npmmirror.com/@mongosh/autocomplete/-/autocomplete-2.2.9.tgz",
+      "integrity": "sha512-uwBtG2bQVk6N8/A7Jjl6w/FQZKIAUrrfeBA7q4kZ6XWzBY1CKcNOG1Kq5tTrN5xp82Au+FLF0rhFBy195fas0Q==",
       "dependencies": {
         "@mongodb-js/mongodb-constants": "^0.10.1",
-        "@mongosh/shell-api": "2.2.6",
+        "@mongosh/shell-api": "2.2.9",
         "semver": "^7.5.4"
       },
       "engines": {
@@ -1211,25 +1246,25 @@
       }
     },
     "node_modules/@mongosh/cli-repl": {
-      "version": "2.2.6",
-      "resolved": "https://registry.npmmirror.com/@mongosh/cli-repl/-/cli-repl-2.2.6.tgz",
-      "integrity": "sha512-PMQdli4DyYw5HGhxjkQS2gt/UdEiAO2X34AxTa2KkG2oOQHMZJlb8UptijDvVxvYLcqXtlTqCu1ZWe33SE8LvA==",
-      "dependencies": {
-        "@mongosh/arg-parser": "2.2.6",
-        "@mongosh/autocomplete": "2.2.6",
-        "@mongosh/editor": "2.2.6",
-        "@mongosh/errors": "2.2.6",
-        "@mongosh/history": "2.2.6",
-        "@mongosh/i18n": "2.2.6",
-        "@mongosh/import-node-fetch": "2.2.6",
-        "@mongosh/js-multiline-to-singleline": "2.2.6",
-        "@mongosh/logging": "2.2.6",
-        "@mongosh/service-provider-core": "2.2.6",
-        "@mongosh/service-provider-server": "2.2.6",
-        "@mongosh/shell-api": "2.2.6",
-        "@mongosh/shell-evaluator": "2.2.6",
-        "@mongosh/snippet-manager": "2.2.6",
-        "@mongosh/types": "2.2.6",
+      "version": "2.2.9",
+      "resolved": "https://registry.npmmirror.com/@mongosh/cli-repl/-/cli-repl-2.2.9.tgz",
+      "integrity": "sha512-9gcu2lG9d9aFT+KPRVXpgX84Ounpp0/uuBFln5XuZfKXZwoWbpWD7zJ3mBdzAQKyuZ5SR2x6NokGGZbEbLGhrA==",
+      "dependencies": {
+        "@mongosh/arg-parser": "2.2.9",
+        "@mongosh/autocomplete": "2.2.9",
+        "@mongosh/editor": "2.2.9",
+        "@mongosh/errors": "2.2.9",
+        "@mongosh/history": "2.2.9",
+        "@mongosh/i18n": "2.2.9",
+        "@mongosh/import-node-fetch": "2.2.9",
+        "@mongosh/js-multiline-to-singleline": "2.2.9",
+        "@mongosh/logging": "2.2.9",
+        "@mongosh/service-provider-core": "2.2.9",
+        "@mongosh/service-provider-server": "2.2.9",
+        "@mongosh/shell-api": "2.2.9",
+        "@mongosh/shell-evaluator": "2.2.9",
+        "@mongosh/snippet-manager": "2.2.9",
+        "@mongosh/types": "2.2.9",
         "@segment/analytics-node": "^1.3.0",
         "ansi-escape-sequences": "^5.1.2",
         "askcharacter": "^2.0.4",
@@ -1254,7 +1289,7 @@
         "node": ">=16.15.0"
       },
       "optionalDependencies": {
-        "get-console-process-list": "^1.0.4",
+        "get-console-process-list": "^1.0.5",
         "glibc-version": "^1.0.0",
         "macos-export-certificate-and-key": "^1.1.2",
         "mongodb-crypt-library-version": "^1.0.5",
@@ -1262,15 +1297,15 @@
       }
     },
     "node_modules/@mongosh/editor": {
-      "version": "2.2.6",
-      "resolved": "https://registry.npmmirror.com/@mongosh/editor/-/editor-2.2.6.tgz",
-      "integrity": "sha512-yqKluTpcy2u3xnuiUeikvYCDdtMjTNTPSbHD6pA0v3kNNOUb5gHDs6SeLAxO7h+7Z8uR61BD2uaYmo0qUw0r0A==",
-      "dependencies": {
-        "@mongosh/js-multiline-to-singleline": "2.2.6",
-        "@mongosh/service-provider-core": "2.2.6",
-        "@mongosh/shell-api": "2.2.6",
-        "@mongosh/shell-evaluator": "2.2.6",
-        "@mongosh/types": "2.2.6",
+      "version": "2.2.9",
+      "resolved": "https://registry.npmmirror.com/@mongosh/editor/-/editor-2.2.9.tgz",
+      "integrity": "sha512-kTCgkeZBg1AYLKq65elwusyDiKeTyh5l4W3yg2yGvuzhk1I73DPsSkA+E2TWpqVgzsTeRXUbmySSMrKxx/t+mA==",
+      "dependencies": {
+        "@mongosh/js-multiline-to-singleline": "2.2.9",
+        "@mongosh/service-provider-core": "2.2.9",
+        "@mongosh/shell-api": "2.2.9",
+        "@mongosh/shell-evaluator": "2.2.9",
+        "@mongosh/types": "2.2.9",
         "js-beautify": "^1.15.1"
       },
       "engines": {
@@ -1278,17 +1313,17 @@
       }
     },
     "node_modules/@mongosh/errors": {
-      "version": "2.2.6",
-      "resolved": "https://registry.npmmirror.com/@mongosh/errors/-/errors-2.2.6.tgz",
-      "integrity": "sha512-AFsb8QUMTg7axHkuIlq8wZ0qEKgAB+r1eIQg5BfqpMGhabCdB+2QhV7/VUq/CCOcG+rdqBwLCHodp6HBcLM4HA==",
+      "version": "2.2.9",
+      "resolved": "https://registry.npmmirror.com/@mongosh/errors/-/errors-2.2.9.tgz",
+      "integrity": "sha512-gN7czs7VK1OoG6H2Cq4gVVUZZPUeBxsBBKeOOFQIGy6QH5IAr4pm/w17K5dhOEoGhdH37h3WOp3dS24z/6NF0A==",
       "engines": {
         "node": ">=14.15.1"
       }
     },
     "node_modules/@mongosh/history": {
-      "version": "2.2.6",
-      "resolved": "https://registry.npmmirror.com/@mongosh/history/-/history-2.2.6.tgz",
-      "integrity": "sha512-3TuXFo8M0l21EUTYa+sYHqxzRfy8jM/ghlFme3FeLeDPkjahDPieoOwjxZtEorxuojrvKXvFKwJ+FRGrO2hIIg==",
+      "version": "2.2.9",
+      "resolved": "https://registry.npmmirror.com/@mongosh/history/-/history-2.2.9.tgz",
+      "integrity": "sha512-Irm8s2z48T+OMADrmJSe+xvCXMkPUCCTltGgVY3w+vm42ftfd6k3ZXGlVu+j/QNCp1D4HmRLDY6RmnQLFb2IUw==",
       "dependencies": {
         "mongodb-connection-string-url": "^3.0.1",
         "mongodb-redact": "^0.2.3"
@@ -1298,20 +1333,20 @@
       }
     },
     "node_modules/@mongosh/i18n": {
-      "version": "2.2.6",
-      "resolved": "https://registry.npmmirror.com/@mongosh/i18n/-/i18n-2.2.6.tgz",
-      "integrity": "sha512-q0bfuI0tQmS+CHJNXBDF34Dlf5jeHYG8RUPawxkYtgvP6WvuFpDbxyog2iN//jZSruIvulqd9gBffhCbbn+IbQ==",
+      "version": "2.2.9",
+      "resolved": "https://registry.npmmirror.com/@mongosh/i18n/-/i18n-2.2.9.tgz",
+      "integrity": "sha512-AhEEAHV/2ytZ1swDV7VmKYt4D0P+2pqf8khR3OwOg5RJ0Cx8vRS4RdWvszxKeA26s2zlPMRiherwPTdAEc5zww==",
       "dependencies": {
-        "@mongosh/errors": "2.2.6"
+        "@mongosh/errors": "2.2.9"
       },
       "engines": {
         "node": ">=14.15.1"
       }
     },
     "node_modules/@mongosh/import-node-fetch": {
-      "version": "2.2.6",
-      "resolved": "https://registry.npmmirror.com/@mongosh/import-node-fetch/-/import-node-fetch-2.2.6.tgz",
-      "integrity": "sha512-zQmSYu8NEzYyNQkZ82uMC2auVJIBorfuT/NWGxIkkZozc0eljkJEtgkNiAw6f17gEFzyk7fE46r091SHcXjXUw==",
+      "version": "2.2.9",
+      "resolved": "https://registry.npmmirror.com/@mongosh/import-node-fetch/-/import-node-fetch-2.2.9.tgz",
+      "integrity": "sha512-YbC6nJjnR1kSOZHVD/8gx6hh8eZkkZ9r4M9NFyDTTynbKgZNCwMtFBtl10zYsNMLJOCKW6o8vJ2YFsBLdZNyww==",
       "dependencies": {
         "node-fetch": "^3.3.2"
       },
@@ -1320,9 +1355,9 @@
       }
     },
     "node_modules/@mongosh/js-multiline-to-singleline": {
-      "version": "2.2.6",
-      "resolved": "https://registry.npmmirror.com/@mongosh/js-multiline-to-singleline/-/js-multiline-to-singleline-2.2.6.tgz",
-      "integrity": "sha512-M5ak3Sxd2sLQtI3mV5ubQv0vo3YsJlvRaFCvmeQQgGTDT76gwrlYf/f6qDlR6jdIHVELO5cgx4gMDdoSWGQpCw==",
+      "version": "2.2.9",
+      "resolved": "https://registry.npmmirror.com/@mongosh/js-multiline-to-singleline/-/js-multiline-to-singleline-2.2.9.tgz",
+      "integrity": "sha512-3EPqCQ64zwqR7PpdITBd3e8grpnwE7XIohuVbYXNo48Hlnz0Gdc8QAjSwQF2LO51ozCmPVcrQqCjVuLjdtPBUA==",
       "dependencies": {
         "@babel/core": "^7.16.12",
         "@babel/types": "^7.21.2"
@@ -1332,14 +1367,14 @@
       }
     },
     "node_modules/@mongosh/logging": {
-      "version": "2.2.6",
-      "resolved": "https://registry.npmmirror.com/@mongosh/logging/-/logging-2.2.6.tgz",
-      "integrity": "sha512-D+H6T9OyQJsoUd58hSXxyRbcgM1hPcq5FqwUqUwlYnl9qKMj7W9004JaTBQPu2nYdYcdJvTGqIo9s+8IMGXB2g==",
-      "dependencies": {
-        "@mongodb-js/devtools-connect": "^2.6.3",
-        "@mongosh/errors": "2.2.6",
-        "@mongosh/history": "2.2.6",
-        "@mongosh/types": "2.2.6",
+      "version": "2.2.9",
+      "resolved": "https://registry.npmmirror.com/@mongosh/logging/-/logging-2.2.9.tgz",
+      "integrity": "sha512-/LvJ3Rk2B5Po7JkG/suZIaJybAzCUSvNGRmobwR6HeDJ4RwKMKvPUJrUYu1GXXQqdLNDXH2o9eEWojMk/IA3LQ==",
+      "dependencies": {
+        "@mongodb-js/devtools-connect": "^3.0.1",
+        "@mongosh/errors": "2.2.9",
+        "@mongosh/history": "2.2.9",
+        "@mongosh/types": "2.2.9",
         "mongodb-log-writer": "^1.4.2",
         "mongodb-redact": "^0.2.3"
       },
@@ -1348,14 +1383,14 @@
       }
     },
     "node_modules/@mongosh/service-provider-core": {
-      "version": "2.2.6",
-      "resolved": "https://registry.npmmirror.com/@mongosh/service-provider-core/-/service-provider-core-2.2.6.tgz",
-      "integrity": "sha512-Q1NasVJc8sq+32NLVPQymLiyTsjP4Z4AsALA4IYV8dDzSlpBt8zWFnAWRGAFxLwRRR89TpqN3n1Fj9oR7DFUXw==",
+      "version": "2.2.9",
+      "resolved": "https://registry.npmmirror.com/@mongosh/service-provider-core/-/service-provider-core-2.2.9.tgz",
+      "integrity": "sha512-QJ+4TBD30C3cGoKoBtGOH82RVTKNMcBG1vhs8rfRheajivMLEBka2Hk/49R6yv9lhSfwgueH57+6EFNdqVFgSQ==",
       "dependencies": {
         "@aws-sdk/credential-providers": "^3.525.0",
-        "@mongosh/errors": "2.2.6",
+        "@mongosh/errors": "2.2.9",
         "bson": "^6.7.0",
-        "mongodb": "^6.6.2",
+        "mongodb": "^6.7.0",
         "mongodb-build-info": "^1.7.2"
       },
       "engines": {
@@ -1366,17 +1401,17 @@
       }
     },
     "node_modules/@mongosh/service-provider-server": {
-      "version": "2.2.6",
-      "resolved": "https://registry.npmmirror.com/@mongosh/service-provider-server/-/service-provider-server-2.2.6.tgz",
-      "integrity": "sha512-/4ynmXCKqhz3lSeZ1ybVvFWfYJ21HXAactY9BguPwzI2TGb/g2LcboU86DrVDmxe4+Odg8L0pH7ICIRhlaxjFg==",
-      "dependencies": {
-        "@mongodb-js/devtools-connect": "^2.6.3",
-        "@mongodb-js/oidc-plugin": "^0.4.0",
-        "@mongosh/errors": "2.2.6",
-        "@mongosh/service-provider-core": "2.2.6",
-        "@mongosh/types": "2.2.6",
+      "version": "2.2.9",
+      "resolved": "https://registry.npmmirror.com/@mongosh/service-provider-server/-/service-provider-server-2.2.9.tgz",
+      "integrity": "sha512-G4pXkwvvlnFW5sLQAbgDwqpt0tBJHlsQPJN+eMT9N6gRtEnhxAnOuOGA4zKTcaOZN2bTnzd6F7Yu5Z5AOOVXUA==",
+      "dependencies": {
+        "@mongodb-js/devtools-connect": "^3.0.1",
+        "@mongodb-js/oidc-plugin": "^1.0.2",
+        "@mongosh/errors": "2.2.9",
+        "@mongosh/service-provider-core": "2.2.9",
+        "@mongosh/types": "2.2.9",
         "aws4": "^1.12.0",
-        "mongodb": "^6.6.2",
+        "mongodb": "^6.7.0",
         "mongodb-connection-string-url": "^3.0.1",
         "socks": "^2.8.3"
       },
@@ -1389,15 +1424,15 @@
       }
     },
     "node_modules/@mongosh/shell-api": {
-      "version": "2.2.6",
-      "resolved": "https://registry.npmmirror.com/@mongosh/shell-api/-/shell-api-2.2.6.tgz",
-      "integrity": "sha512-hwIG3Urj+/IyhuIknQXTWUWQ6aNDda+2xMd3a5psk7WRVYo5BRNT+kBk3QkUXIVUOJ+yNIFomPcd2f4t1zFoOg==",
-      "dependencies": {
-        "@mongosh/arg-parser": "2.2.6",
-        "@mongosh/errors": "2.2.6",
-        "@mongosh/history": "2.2.6",
-        "@mongosh/i18n": "2.2.6",
-        "@mongosh/service-provider-core": "2.2.6",
+      "version": "2.2.9",
+      "resolved": "https://registry.npmmirror.com/@mongosh/shell-api/-/shell-api-2.2.9.tgz",
+      "integrity": "sha512-1Wo2RJ1vpYY/LRKKyIgl9vn7nycBVpO+iAaOFRSI0VxcW7dujROIm+XLBzqvJql/0qeqfnQGXv+jCTb13emduw==",
+      "dependencies": {
+        "@mongosh/arg-parser": "2.2.9",
+        "@mongosh/errors": "2.2.9",
+        "@mongosh/history": "2.2.9",
+        "@mongosh/i18n": "2.2.9",
+        "@mongosh/service-provider-core": "2.2.9",
         "mongodb-redact": "^0.2.3"
       },
       "engines": {
@@ -1405,27 +1440,27 @@
       }
     },
     "node_modules/@mongosh/shell-evaluator": {
-      "version": "2.2.6",
-      "resolved": "https://registry.npmmirror.com/@mongosh/shell-evaluator/-/shell-evaluator-2.2.6.tgz",
-      "integrity": "sha512-1R9017ia8mVtFcUtuGiiYe4E1fkwIjtB9dSYeo30GLUGZTAo79GJqHsYDVtC/UNRk2Fb6wCq8/jPi1/r/B9ATg==",
+      "version": "2.2.9",
+      "resolved": "https://registry.npmmirror.com/@mongosh/shell-evaluator/-/shell-evaluator-2.2.9.tgz",
+      "integrity": "sha512-p56jKPaRfFKT4yW3FrmLeawy/8qL7x2q9Gx88e0iJhBI3ybft0dQ1tWvX3mMg6YxZGNsDeHgPSAwNlFAy3lxiQ==",
       "dependencies": {
-        "@mongosh/async-rewriter2": "2.2.6",
-        "@mongosh/history": "2.2.6",
-        "@mongosh/shell-api": "2.2.6"
+        "@mongosh/async-rewriter2": "2.2.9",
+        "@mongosh/history": "2.2.9",
+        "@mongosh/shell-api": "2.2.9"
       },
       "engines": {
         "node": ">=14.15.1"
       }
     },
     "node_modules/@mongosh/snippet-manager": {
-      "version": "2.2.6",
-      "resolved": "https://registry.npmmirror.com/@mongosh/snippet-manager/-/snippet-manager-2.2.6.tgz",
-      "integrity": "sha512-kl2Y6AF3R7BMjUshzPywI5vkf8HOAR5jKlKt18pkkWdOleQ45+X0BVWpiLpBmZXZZGamaa3u20z9qtzuO/HPtQ==",
-      "dependencies": {
-        "@mongosh/errors": "2.2.6",
-        "@mongosh/import-node-fetch": "2.2.6",
-        "@mongosh/shell-api": "2.2.6",
-        "@mongosh/types": "2.2.6",
+      "version": "2.2.9",
+      "resolved": "https://registry.npmmirror.com/@mongosh/snippet-manager/-/snippet-manager-2.2.9.tgz",
+      "integrity": "sha512-JG9Svfoh1z30U7mwbojx0Wm2BkVd6wqqkkpxucgJ9ba2DG7VvgN4iez6HQa+eA3KmMKVII7IzYnt/J0gOum80g==",
+      "dependencies": {
+        "@mongosh/errors": "2.2.9",
+        "@mongosh/import-node-fetch": "2.2.9",
+        "@mongosh/shell-api": "2.2.9",
+        "@mongosh/types": "2.2.9",
         "bson": "^6.7.0",
         "cross-spawn": "^7.0.3",
         "escape-string-regexp": "^4.0.0",
@@ -1437,11 +1472,11 @@
       }
     },
     "node_modules/@mongosh/types": {
-      "version": "2.2.6",
-      "resolved": "https://registry.npmmirror.com/@mongosh/types/-/types-2.2.6.tgz",
-      "integrity": "sha512-+QcymQR4eqdrxhecgmeiZja794M4kuASJn7r8clDgWTBHTSdxyiq3S8bNuNekJU0h2rdcGJZepGnQbV6PBmSww==",
+      "version": "2.2.9",
+      "resolved": "https://registry.npmmirror.com/@mongosh/types/-/types-2.2.9.tgz",
+      "integrity": "sha512-Vo91tPc24nrybDsE/wQXbKynB3VC8BvF+yallZpMvLNtckr5q7nTuaTBWG5Er1myPA5MQhZm6DgpsIWR1YnGgg==",
       "dependencies": {
-        "@mongodb-js/devtools-connect": "^2.6.3"
+        "@mongodb-js/devtools-connect": "^3.0.1"
       },
       "engines": {
         "node": ">=14.15.1"
@@ -1553,11 +1588,11 @@
       "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ=="
     },
     "node_modules/@smithy/abort-controller": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/abort-controller/-/abort-controller-3.0.0.tgz",
-      "integrity": "sha512-p6GlFGBt9K4MYLu72YuJ523NVR4A8oHlC5M2JO6OmQqN8kAc/uh1JqLE+FizTokrSJGg0CSvC+BrsmGzKtsZKA==",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/abort-controller/-/abort-controller-3.0.1.tgz",
+      "integrity": "sha512-Jb7jg4E+C+uvrUQi+h9kbILY6ts6fglKZzseMCHlH9ayq+1f5QdpYf8MV/xppuiN6DAMJAmwGz53GwP3213dmA==",
       "dependencies": {
-        "@smithy/types": "^3.0.0",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -1565,14 +1600,14 @@
       }
     },
     "node_modules/@smithy/config-resolver": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/config-resolver/-/config-resolver-3.0.0.tgz",
-      "integrity": "sha512-2GzOfADwYLQugYkKQhIyZyQlM05K+tMKvRnc6eFfZcpJGRfKoMUMYdPlBKmqHwQFXQKBrGV6cxL9oymWgDzvFw==",
+      "version": "3.0.2",
+      "resolved": "https://registry.npmmirror.com/@smithy/config-resolver/-/config-resolver-3.0.2.tgz",
+      "integrity": "sha512-wUyG6ezpp2sWAvfqmSYTROwFUmJqKV78GLf55WODrosBcT0BAMd9bOLO4HRhynWBgAobPml2cF9ZOdgCe00r+g==",
       "dependencies": {
-        "@smithy/node-config-provider": "^3.0.0",
-        "@smithy/types": "^3.0.0",
+        "@smithy/node-config-provider": "^3.1.1",
+        "@smithy/types": "^3.1.0",
         "@smithy/util-config-provider": "^3.0.0",
-        "@smithy/util-middleware": "^3.0.0",
+        "@smithy/util-middleware": "^3.0.1",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -1580,17 +1615,17 @@
       }
     },
     "node_modules/@smithy/core": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/core/-/core-2.0.1.tgz",
-      "integrity": "sha512-rcMkjvwxH/bER+oZUPR0yTA0ELD6m3A+d92+CFkdF6HJFCBB1bXo7P5pm21L66XwTN01B6bUhSCQ7cymWRD8zg==",
-      "dependencies": {
-        "@smithy/middleware-endpoint": "^3.0.0",
-        "@smithy/middleware-retry": "^3.0.1",
-        "@smithy/middleware-serde": "^3.0.0",
-        "@smithy/protocol-http": "^4.0.0",
-        "@smithy/smithy-client": "^3.0.1",
-        "@smithy/types": "^3.0.0",
-        "@smithy/util-middleware": "^3.0.0",
+      "version": "2.2.2",
+      "resolved": "https://registry.npmmirror.com/@smithy/core/-/core-2.2.2.tgz",
+      "integrity": "sha512-bxZr4ZTqS6hMSQGYdcsfFQTFU0MO2xKLbkqZMSRDM+ruQ0nY00lFJUeLhXe7fqohSEd1y5wKu1Ap0bVJPzpmHg==",
+      "dependencies": {
+        "@smithy/middleware-endpoint": "^3.0.2",
+        "@smithy/middleware-retry": "^3.0.5",
+        "@smithy/middleware-serde": "^3.0.1",
+        "@smithy/protocol-http": "^4.0.1",
+        "@smithy/smithy-client": "^3.1.3",
+        "@smithy/types": "^3.1.0",
+        "@smithy/util-middleware": "^3.0.1",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -1598,14 +1633,14 @@
       }
     },
     "node_modules/@smithy/credential-provider-imds": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/credential-provider-imds/-/credential-provider-imds-3.0.0.tgz",
-      "integrity": "sha512-lfmBiFQcA3FsDAPxNfY0L7CawcWtbyWsBOHo34nF095728JLkBX4Y9q/VPPE2r7fqMVK+drmDigqE2/SSQeVRA==",
+      "version": "3.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/credential-provider-imds/-/credential-provider-imds-3.1.1.tgz",
+      "integrity": "sha512-htndP0LwHdE3R3Nam9ZyVWhwPYOmD4xCL79kqvNxy8u/bv0huuy574CSiRY4cvEICgimv8jlVfLeZ7zZqbnB2g==",
       "dependencies": {
-        "@smithy/node-config-provider": "^3.0.0",
-        "@smithy/property-provider": "^3.0.0",
-        "@smithy/types": "^3.0.0",
-        "@smithy/url-parser": "^3.0.0",
+        "@smithy/node-config-provider": "^3.1.1",
+        "@smithy/property-provider": "^3.1.1",
+        "@smithy/types": "^3.1.0",
+        "@smithy/url-parser": "^3.0.1",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -1613,23 +1648,23 @@
       }
     },
     "node_modules/@smithy/fetch-http-handler": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/fetch-http-handler/-/fetch-http-handler-3.0.1.tgz",
-      "integrity": "sha512-uaH74i5BDj+rBwoQaXioKpI0SHBJFtOVwzrCpxZxphOW0ki5jhj7dXvDMYM2IJem8TpdFvS2iC08sjOblfFGFg==",
+      "version": "3.0.3",
+      "resolved": "https://registry.npmmirror.com/@smithy/fetch-http-handler/-/fetch-http-handler-3.0.3.tgz",
+      "integrity": "sha512-31x2MokxJL/u5U/BdElvVRotOGjUcOOvI2pb5TZ02umBLw+vVHImiLn+khbN0SblaFXNRzPoGrKwXylNjV3skw==",
       "dependencies": {
-        "@smithy/protocol-http": "^4.0.0",
-        "@smithy/querystring-builder": "^3.0.0",
-        "@smithy/types": "^3.0.0",
+        "@smithy/protocol-http": "^4.0.1",
+        "@smithy/querystring-builder": "^3.0.1",
+        "@smithy/types": "^3.1.0",
         "@smithy/util-base64": "^3.0.0",
         "tslib": "^2.6.2"
       }
     },
     "node_modules/@smithy/hash-node": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/hash-node/-/hash-node-3.0.0.tgz",
-      "integrity": "sha512-84qXstNemP3XS5jcof0el6+bDfjzuvhJPQTEfro3lgtbCtKgzPm3MgiS6ehXVPjeQ5+JS0HqmTz8f/RYfzHVxw==",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/hash-node/-/hash-node-3.0.1.tgz",
+      "integrity": "sha512-w2ncjgk2EYO2+WhAsSQA8owzoOSY7IL1qVytlwpnL1pFGWTjIoIh5nROkEKXY51unB63bMGZqDiVoXaFbyKDlg==",
       "dependencies": {
-        "@smithy/types": "^3.0.0",
+        "@smithy/types": "^3.1.0",
         "@smithy/util-buffer-from": "^3.0.0",
         "@smithy/util-utf8": "^3.0.0",
         "tslib": "^2.6.2"
@@ -1639,11 +1674,11 @@
       }
     },
     "node_modules/@smithy/invalid-dependency": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/invalid-dependency/-/invalid-dependency-3.0.0.tgz",
-      "integrity": "sha512-F6wBBaEFgJzj0s4KUlliIGPmqXemwP6EavgvDqYwCH40O5Xr2iMHvS8todmGVZtuJCorBkXsYLyTu4PuizVq5g==",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/invalid-dependency/-/invalid-dependency-3.0.1.tgz",
+      "integrity": "sha512-RSNF/32BKygXKKMyS7koyuAq1rcdW5p5c4EFa77QenBFze9As+JiRnV9OWBh2cB/ejGZalEZjvIrMLHwJl7aGA==",
       "dependencies": {
-        "@smithy/types": "^3.0.0",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       }
     },
@@ -1659,12 +1694,12 @@
       }
     },
     "node_modules/@smithy/middleware-content-length": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/middleware-content-length/-/middleware-content-length-3.0.0.tgz",
-      "integrity": "sha512-3C4s4d/iGobgCtk2tnWW6+zSTOBg1PRAm2vtWZLdriwTroFbbWNSr3lcyzHdrQHnEXYCC5K52EbpfodaIUY8sg==",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/middleware-content-length/-/middleware-content-length-3.0.1.tgz",
+      "integrity": "sha512-6QdK/VbrCfXD5/QolE2W/ok6VqxD+SM28Ds8iSlEHXZwv4buLsvWyvoEEy0322K/g5uFgPzBmZjGqesTmPL+yQ==",
       "dependencies": {
-        "@smithy/protocol-http": "^4.0.0",
-        "@smithy/types": "^3.0.0",
+        "@smithy/protocol-http": "^4.0.1",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -1672,16 +1707,16 @@
       }
     },
     "node_modules/@smithy/middleware-endpoint": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/middleware-endpoint/-/middleware-endpoint-3.0.0.tgz",
-      "integrity": "sha512-aXOAWztw/5qAfp0NcA2OWpv6ZI/E+Dh9mByif7i91D/0iyYNUcKvskmXiowKESFkuZ7PIMd3VOR4fTibZDs2OQ==",
-      "dependencies": {
-        "@smithy/middleware-serde": "^3.0.0",
-        "@smithy/node-config-provider": "^3.0.0",
-        "@smithy/shared-ini-file-loader": "^3.0.0",
-        "@smithy/types": "^3.0.0",
-        "@smithy/url-parser": "^3.0.0",
-        "@smithy/util-middleware": "^3.0.0",
+      "version": "3.0.2",
+      "resolved": "https://registry.npmmirror.com/@smithy/middleware-endpoint/-/middleware-endpoint-3.0.2.tgz",
+      "integrity": "sha512-gWEaGYB3Bei17Oiy/F2IlUPpBazNXImytoOdJ1xbrUOaJKAOiUhx8/4FOnYLLJHdAwa9PlvJ2ULda2f/Dnwi9w==",
+      "dependencies": {
+        "@smithy/middleware-serde": "^3.0.1",
+        "@smithy/node-config-provider": "^3.1.1",
+        "@smithy/shared-ini-file-loader": "^3.1.1",
+        "@smithy/types": "^3.1.0",
+        "@smithy/url-parser": "^3.0.1",
+        "@smithy/util-middleware": "^3.0.1",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -1689,17 +1724,17 @@
       }
     },
     "node_modules/@smithy/middleware-retry": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/middleware-retry/-/middleware-retry-3.0.1.tgz",
-      "integrity": "sha512-hBhSEuL841FhJBK/19WpaGk5YWSzFk/P2UaVjANGKRv3eYNO8Y1lANWgqnuPWjOyCEWMPr58vELFDWpxvRKANw==",
-      "dependencies": {
-        "@smithy/node-config-provider": "^3.0.0",
-        "@smithy/protocol-http": "^4.0.0",
-        "@smithy/service-error-classification": "^3.0.0",
-        "@smithy/smithy-client": "^3.0.1",
-        "@smithy/types": "^3.0.0",
-        "@smithy/util-middleware": "^3.0.0",
-        "@smithy/util-retry": "^3.0.0",
+      "version": "3.0.5",
+      "resolved": "https://registry.npmmirror.com/@smithy/middleware-retry/-/middleware-retry-3.0.5.tgz",
+      "integrity": "sha512-nKAmmea9Wm0d94obPqVgjxW2zzaNemxcTzjgd17LhGKI23D66UQKI5gpoWDsnE+R4tfuZe9dCcw8gmTVEwFpRA==",
+      "dependencies": {
+        "@smithy/node-config-provider": "^3.1.1",
+        "@smithy/protocol-http": "^4.0.1",
+        "@smithy/service-error-classification": "^3.0.1",
+        "@smithy/smithy-client": "^3.1.3",
+        "@smithy/types": "^3.1.0",
+        "@smithy/util-middleware": "^3.0.1",
+        "@smithy/util-retry": "^3.0.1",
         "tslib": "^2.6.2",
         "uuid": "^9.0.1"
       },
@@ -1708,11 +1743,11 @@
       }
     },
     "node_modules/@smithy/middleware-serde": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/middleware-serde/-/middleware-serde-3.0.0.tgz",
-      "integrity": "sha512-I1vKG1foI+oPgG9r7IMY1S+xBnmAn1ISqployvqkwHoSb8VPsngHDTOgYGYBonuOKndaWRUGJZrKYYLB+Ane6w==",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/middleware-serde/-/middleware-serde-3.0.1.tgz",
+      "integrity": "sha512-ak6H/ZRN05r5+SR0/IUc5zOSyh2qp3HReg1KkrnaSLXmncy9lwOjNqybX4L4x55/e5mtVDn1uf/gQ6bw5neJPw==",
       "dependencies": {
-        "@smithy/types": "^3.0.0",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -1720,11 +1755,11 @@
       }
     },
     "node_modules/@smithy/middleware-stack": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/middleware-stack/-/middleware-stack-3.0.0.tgz",
-      "integrity": "sha512-+H0jmyfAyHRFXm6wunskuNAqtj7yfmwFB6Fp37enytp2q047/Od9xetEaUbluyImOlGnGpaVGaVfjwawSr+i6Q==",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/middleware-stack/-/middleware-stack-3.0.1.tgz",
+      "integrity": "sha512-fS5uT//y1SlBdkzIvgmWQ9FufwMXrHSSbuR25ygMy1CRDIZkcBMoF4oTMYNfR9kBlVBcVzlv7joFdNrFuQirPA==",
       "dependencies": {
-        "@smithy/types": "^3.0.0",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -1732,13 +1767,13 @@
       }
     },
     "node_modules/@smithy/node-config-provider": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/node-config-provider/-/node-config-provider-3.0.0.tgz",
-      "integrity": "sha512-buqfaSdDh0zo62EPLf8rGDvcpKwGpO5ho4bXS2cdFhlOta7tBkWJt+O5uiaAeICfIOfPclNOndshDNSanX2X9g==",
+      "version": "3.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/node-config-provider/-/node-config-provider-3.1.1.tgz",
+      "integrity": "sha512-z5G7+ysL4yUtMghUd2zrLkecu0mTfnYlt5dR76g/HsFqf7evFazwiZP1ag2EJenGxNBDwDM5g8nm11NPogiUVA==",
       "dependencies": {
-        "@smithy/property-provider": "^3.0.0",
-        "@smithy/shared-ini-file-loader": "^3.0.0",
-        "@smithy/types": "^3.0.0",
+        "@smithy/property-provider": "^3.1.1",
+        "@smithy/shared-ini-file-loader": "^3.1.1",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -1746,14 +1781,14 @@
       }
     },
     "node_modules/@smithy/node-http-handler": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/node-http-handler/-/node-http-handler-3.0.0.tgz",
-      "integrity": "sha512-3trD4r7NOMygwLbUJo4eodyQuypAWr7uvPnebNJ9a70dQhVn+US8j/lCnvoJS6BXfZeF7PkkkI0DemVJw+n+eQ==",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/node-http-handler/-/node-http-handler-3.0.1.tgz",
+      "integrity": "sha512-hlBI6MuREA4o1wBMEt+QNhUzoDtFFvwR6ecufimlx9D79jPybE/r8kNorphXOi91PgSO9S2fxRjcKCLk7Jw8zA==",
       "dependencies": {
-        "@smithy/abort-controller": "^3.0.0",
-        "@smithy/protocol-http": "^4.0.0",
-        "@smithy/querystring-builder": "^3.0.0",
-        "@smithy/types": "^3.0.0",
+        "@smithy/abort-controller": "^3.0.1",
+        "@smithy/protocol-http": "^4.0.1",
+        "@smithy/querystring-builder": "^3.0.1",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -1761,11 +1796,11 @@
       }
     },
     "node_modules/@smithy/property-provider": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/property-provider/-/property-provider-3.0.0.tgz",
-      "integrity": "sha512-LmbPgHBswdXCrkWWuUwBm9w72S2iLWyC/5jet9/Y9cGHtzqxi+GVjfCfahkvNV4KXEwgnH8EMpcrD9RUYe0eLQ==",
+      "version": "3.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/property-provider/-/property-provider-3.1.1.tgz",
+      "integrity": "sha512-YknOMZcQkB5on+MU0DvbToCmT2YPtTETMXW0D3+/Iln7ezT+Zm1GMHhCW1dOH/X/+LkkQD9aXEoCX/B10s4Xdw==",
       "dependencies": {
-        "@smithy/types": "^3.0.0",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -1773,11 +1808,11 @@
       }
     },
     "node_modules/@smithy/protocol-http": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-4.0.0.tgz",
-      "integrity": "sha512-qOQZOEI2XLWRWBO9AgIYuHuqjZ2csyr8/IlgFDHDNuIgLAMRx2Bl8ck5U5D6Vh9DPdoaVpuzwWMa0xcdL4O/AQ==",
+      "version": "4.0.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-4.0.1.tgz",
+      "integrity": "sha512-eBhm9zwcFPEazc654c0BEWtxYAzrw+OhoSf5pkwKzfftWKXRoqEhwOE2Pvn30v0iAdo7Mfsfb6pi1NnZlGCMpg==",
       "dependencies": {
-        "@smithy/types": "^3.0.0",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -1785,11 +1820,11 @@
       }
     },
     "node_modules/@smithy/querystring-builder": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/querystring-builder/-/querystring-builder-3.0.0.tgz",
-      "integrity": "sha512-bW8Fi0NzyfkE0TmQphDXr1AmBDbK01cA4C1Z7ggwMAU5RDz5AAv/KmoRwzQAS0kxXNf/D2ALTEgwK0U2c4LtRg==",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/querystring-builder/-/querystring-builder-3.0.1.tgz",
+      "integrity": "sha512-vKitpnG/2KOMVlx3x1S3FkBH075EROG3wcrcDaNerQNh8yuqnSL23btCD2UyX4i4lpPzNW6VFdxbn2Z25b/g5Q==",
       "dependencies": {
-        "@smithy/types": "^3.0.0",
+        "@smithy/types": "^3.1.0",
         "@smithy/util-uri-escape": "^3.0.0",
         "tslib": "^2.6.2"
       },
@@ -1798,11 +1833,11 @@
       }
     },
     "node_modules/@smithy/querystring-parser": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/querystring-parser/-/querystring-parser-3.0.0.tgz",
-      "integrity": "sha512-UzHwthk0UEccV4dHzPySnBy34AWw3V9lIqUTxmozQ+wPDAO9csCWMfOLe7V9A2agNYy7xE+Pb0S6K/J23JSzfQ==",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/querystring-parser/-/querystring-parser-3.0.1.tgz",
+      "integrity": "sha512-Qt8DMC05lVS8NcQx94lfVbZSX+2Ym7032b/JR8AlboAa/D669kPzqb35dkjkvAG6+NWmUchef3ENtrD6F+5n8Q==",
       "dependencies": {
-        "@smithy/types": "^3.0.0",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -1810,22 +1845,22 @@
       }
     },
     "node_modules/@smithy/service-error-classification": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/service-error-classification/-/service-error-classification-3.0.0.tgz",
-      "integrity": "sha512-3BsBtOUt2Gsnc3X23ew+r2M71WwtpHfEDGhHYHSDg6q1t8FrWh15jT25DLajFV1H+PpxAJ6gqe9yYeRUsmSdFA==",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/service-error-classification/-/service-error-classification-3.0.1.tgz",
+      "integrity": "sha512-ubFUvIePjDCyIzZ+pLETqNC6KXJ/fc6g+/baqel7Zf6kJI/kZKgjwkCI7zbUhoUuOZ/4eA/87YasVu40b/B4bA==",
       "dependencies": {
-        "@smithy/types": "^3.0.0"
+        "@smithy/types": "^3.1.0"
       },
       "engines": {
         "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/shared-ini-file-loader": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.0.0.tgz",
-      "integrity": "sha512-REVw6XauXk8xE4zo5aGL7Rz4ywA8qNMUn8RtWeTRQsgAlmlvbJ7CEPBcaXU2NDC3AYBgYAXrGyWD8XrN8UGDog==",
+      "version": "3.1.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz",
+      "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==",
       "dependencies": {
-        "@smithy/types": "^3.0.0",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -1833,14 +1868,14 @@
       }
     },
     "node_modules/@smithy/signature-v4": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/signature-v4/-/signature-v4-3.0.0.tgz",
-      "integrity": "sha512-kXFOkNX+BQHe2qnLxpMEaCRGap9J6tUGLzc3A9jdn+nD4JdMwCKTJ+zFwQ20GkY+mAXGatyTw3HcoUlR39HwmA==",
+      "version": "3.1.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/signature-v4/-/signature-v4-3.1.0.tgz",
+      "integrity": "sha512-m0/6LW3IQ3/JBcdhqjpkpABPTPhcejqeAn0U877zxBdNLiWAnG2WmCe5MfkUyVuvpFTPQnQwCo/0ZBR4uF5kxg==",
       "dependencies": {
         "@smithy/is-array-buffer": "^3.0.0",
-        "@smithy/types": "^3.0.0",
+        "@smithy/types": "^3.1.0",
         "@smithy/util-hex-encoding": "^3.0.0",
-        "@smithy/util-middleware": "^3.0.0",
+        "@smithy/util-middleware": "^3.0.1",
         "@smithy/util-uri-escape": "^3.0.0",
         "@smithy/util-utf8": "^3.0.0",
         "tslib": "^2.6.2"
@@ -1850,15 +1885,15 @@
       }
     },
     "node_modules/@smithy/smithy-client": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/smithy-client/-/smithy-client-3.0.1.tgz",
-      "integrity": "sha512-KAiFY4Y4jdHxR+4zerH/VBhaFKM8pbaVmJZ/CWJRwtM/CmwzTfXfvYwf6GoUwiHepdv+lwiOXCuOl6UBDUEINw==",
-      "dependencies": {
-        "@smithy/middleware-endpoint": "^3.0.0",
-        "@smithy/middleware-stack": "^3.0.0",
-        "@smithy/protocol-http": "^4.0.0",
-        "@smithy/types": "^3.0.0",
-        "@smithy/util-stream": "^3.0.1",
+      "version": "3.1.3",
+      "resolved": "https://registry.npmmirror.com/@smithy/smithy-client/-/smithy-client-3.1.3.tgz",
+      "integrity": "sha512-YVz+akpR5lIIRPJfhE4sqoHYwMys6/33vsFvDof+71FCwa4jkVfMpzKv9TKrG/EDb5TV+YtjdXkwywdqlUOQXA==",
+      "dependencies": {
+        "@smithy/middleware-endpoint": "^3.0.2",
+        "@smithy/middleware-stack": "^3.0.1",
+        "@smithy/protocol-http": "^4.0.1",
+        "@smithy/types": "^3.1.0",
+        "@smithy/util-stream": "^3.0.3",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -1866,9 +1901,9 @@
       }
     },
     "node_modules/@smithy/types": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/types/-/types-3.0.0.tgz",
-      "integrity": "sha512-VvWuQk2RKFuOr98gFhjca7fkBS+xLLURT8bUjk5XQoV0ZLm7WPwWPPY3/AwzTLuUBDeoKDCthfe1AsTUWaSEhw==",
+      "version": "3.1.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/types/-/types-3.1.0.tgz",
+      "integrity": "sha512-qi4SeCVOUPjhSSZrxxB/mB8DrmuSFUcJnD9KXjuP+7C3LV/KFV4kpuUSH3OHDZgQB9TEH/1sO/Fq/5HyaK9MPw==",
       "dependencies": {
         "tslib": "^2.6.2"
       },
@@ -1877,12 +1912,12 @@
       }
     },
     "node_modules/@smithy/url-parser": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/url-parser/-/url-parser-3.0.0.tgz",
-      "integrity": "sha512-2XLazFgUu+YOGHtWihB3FSLAfCUajVfNBXGGYjOaVKjLAuAxx3pSBY3hBgLzIgB17haf59gOG3imKqTy8mcrjw==",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/url-parser/-/url-parser-3.0.1.tgz",
+      "integrity": "sha512-G140IlNFlzYWVCedC4E2d6NycM1dCUbe5CnsGW1hmGt4hYKiGOw0v7lVru9WAn5T2w09QEjl4fOESWjGmCvVmg==",
       "dependencies": {
-        "@smithy/querystring-parser": "^3.0.0",
-        "@smithy/types": "^3.0.0",
+        "@smithy/querystring-parser": "^3.0.1",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       }
     },
@@ -1942,13 +1977,13 @@
       }
     },
     "node_modules/@smithy/util-defaults-mode-browser": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.1.tgz",
-      "integrity": "sha512-nW5kEzdJn1Bn5TF+gOPHh2rcPli8JU9vSSXLbfg7uPnfR1TMRQqs9zlYRhIb87NeSxIbpdXOI94tvXSy+fvDYg==",
+      "version": "3.0.5",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.5.tgz",
+      "integrity": "sha512-VZkJ+bXCHcNSMhX8EReGyFcc/Err94YGqeEKbbxkVz2TgKlacsoplpi+kxOMVbQq/tq9sQx5ajBKG+nl2GNuxw==",
       "dependencies": {
-        "@smithy/property-provider": "^3.0.0",
-        "@smithy/smithy-client": "^3.0.1",
-        "@smithy/types": "^3.0.0",
+        "@smithy/property-provider": "^3.1.1",
+        "@smithy/smithy-client": "^3.1.3",
+        "@smithy/types": "^3.1.0",
         "bowser": "^2.11.0",
         "tslib": "^2.6.2"
       },
@@ -1957,16 +1992,16 @@
       }
     },
     "node_modules/@smithy/util-defaults-mode-node": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.1.tgz",
-      "integrity": "sha512-TFk+Qb+elLc/MOhtSp+50fstyfZ6avQbgH2d96xUBpeScu+Al9elxv+UFAjaTHe0HQe5n+wem8ZLpXvU8lwV6Q==",
-      "dependencies": {
-        "@smithy/config-resolver": "^3.0.0",
-        "@smithy/credential-provider-imds": "^3.0.0",
-        "@smithy/node-config-provider": "^3.0.0",
-        "@smithy/property-provider": "^3.0.0",
-        "@smithy/smithy-client": "^3.0.1",
-        "@smithy/types": "^3.0.0",
+      "version": "3.0.5",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.5.tgz",
+      "integrity": "sha512-jy19cFQA0k4f8VUDFsZVBey3rmI8EuXCw/xh/abdiq6S1qdwdfZ5coviuyYd//LPszf2yWIYkLpvmLF9qbhLGg==",
+      "dependencies": {
+        "@smithy/config-resolver": "^3.0.2",
+        "@smithy/credential-provider-imds": "^3.1.1",
+        "@smithy/node-config-provider": "^3.1.1",
+        "@smithy/property-provider": "^3.1.1",
+        "@smithy/smithy-client": "^3.1.3",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -1974,12 +2009,12 @@
       }
     },
     "node_modules/@smithy/util-endpoints": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-endpoints/-/util-endpoints-2.0.0.tgz",
-      "integrity": "sha512-+exaXzEY3DNt2qtA2OtRNSDlVrE4p32j1JSsQkzA5AdP0YtJNjkYbYhJxkFmPYcjI1abuwopOZCwUmv682QkiQ==",
+      "version": "2.0.2",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-endpoints/-/util-endpoints-2.0.2.tgz",
+      "integrity": "sha512-4zFOcBFQvifd2LSD4a1dKvfIWWwh4sWNtS3oZ7mpob/qPPmJseqKB148iT+hWCDsG//TmI+8vjYPgZdvnkYlTg==",
       "dependencies": {
-        "@smithy/node-config-provider": "^3.0.0",
-        "@smithy/types": "^3.0.0",
+        "@smithy/node-config-provider": "^3.1.1",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -1998,11 +2033,11 @@
       }
     },
     "node_modules/@smithy/util-middleware": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-middleware/-/util-middleware-3.0.0.tgz",
-      "integrity": "sha512-q5ITdOnV2pXHSVDnKWrwgSNTDBAMHLptFE07ua/5Ty5WJ11bvr0vk2a7agu7qRhrCFRQlno5u3CneU5EELK+DQ==",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-middleware/-/util-middleware-3.0.1.tgz",
+      "integrity": "sha512-WRODCQtUsO7vIvfrdxS8RFPeLKcewYtaCglZsBsedIKSUGIIvMlZT5oh+pCe72I+1L+OjnZuqRNpN2LKhWA4KQ==",
       "dependencies": {
-        "@smithy/types": "^3.0.0",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -2010,12 +2045,12 @@
       }
     },
     "node_modules/@smithy/util-retry": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-retry/-/util-retry-3.0.0.tgz",
-      "integrity": "sha512-nK99bvJiziGv/UOKJlDvFF45F00WgPLKVIGUfAK+mDhzVN2hb/S33uW2Tlhg5PVBoqY7tDVqL0zmu4OxAHgo9g==",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-retry/-/util-retry-3.0.1.tgz",
+      "integrity": "sha512-5lRtYm+8fNFEUTdqZXg5M4ppVp40rMIJfR1TpbHAhKQgPIDpWT+iYMaqgnwEbtpi9U1smyUOPv5Sg+M1neOBgw==",
       "dependencies": {
-        "@smithy/service-error-classification": "^3.0.0",
-        "@smithy/types": "^3.0.0",
+        "@smithy/service-error-classification": "^3.0.1",
+        "@smithy/types": "^3.1.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -2023,13 +2058,13 @@
       }
     },
     "node_modules/@smithy/util-stream": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-stream/-/util-stream-3.0.1.tgz",
-      "integrity": "sha512-7F7VNNhAsfMRA8I986YdOY5fE0/T1/ZjFF6OLsqkvQVNP3vZ/szYDfGCyphb7ioA09r32K/0qbSFfNFU68aSzA==",
+      "version": "3.0.3",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-stream/-/util-stream-3.0.3.tgz",
+      "integrity": "sha512-ztOvXkXKJromRHNzvrLEW/vvTQPnxPBRHA0gR0QX61LnHDgrm4TBT4EQNpWwwHCD1N0nnEL5bEkzo2dt2t34Kg==",
       "dependencies": {
-        "@smithy/fetch-http-handler": "^3.0.1",
-        "@smithy/node-http-handler": "^3.0.0",
-        "@smithy/types": "^3.0.0",
+        "@smithy/fetch-http-handler": "^3.0.3",
+        "@smithy/node-http-handler": "^3.0.1",
+        "@smithy/types": "^3.1.0",
         "@smithy/util-base64": "^3.0.0",
         "@smithy/util-buffer-from": "^3.0.0",
         "@smithy/util-hex-encoding": "^3.0.0",
@@ -2089,17 +2124,6 @@
         "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
       }
     },
-    "node_modules/abort-controller": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/abort-controller/-/abort-controller-3.0.0.tgz",
-      "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
-      "dependencies": {
-        "event-target-shim": "^5.0.0"
-      },
-      "engines": {
-        "node": ">=6.5"
-      }
-    },
     "node_modules/accepts": {
       "version": "1.3.8",
       "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz",
@@ -2113,9 +2137,9 @@
       }
     },
     "node_modules/acorn": {
-      "version": "8.11.3",
-      "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz",
-      "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+      "version": "8.12.0",
+      "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.12.0.tgz",
+      "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==",
       "bin": {
         "acorn": "bin/acorn"
       },
@@ -2276,9 +2300,9 @@
       }
     },
     "node_modules/aws4": {
-      "version": "1.12.0",
-      "resolved": "https://registry.npmmirror.com/aws4/-/aws4-1.12.0.tgz",
-      "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg=="
+      "version": "1.13.0",
+      "resolved": "https://registry.npmmirror.com/aws4/-/aws4-1.13.0.tgz",
+      "integrity": "sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g=="
     },
     "node_modules/balanced-match": {
       "version": "1.0.2",
@@ -2425,9 +2449,9 @@
       }
     },
     "node_modules/browserslist": {
-      "version": "4.23.0",
-      "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.23.0.tgz",
-      "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
+      "version": "4.23.1",
+      "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.23.1.tgz",
+      "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==",
       "funding": [
         {
           "type": "opencollective",
@@ -2443,10 +2467,10 @@
         }
       ],
       "dependencies": {
-        "caniuse-lite": "^1.0.30001587",
-        "electron-to-chromium": "^1.4.668",
+        "caniuse-lite": "^1.0.30001629",
+        "electron-to-chromium": "^1.4.796",
         "node-releases": "^2.0.14",
-        "update-browserslist-db": "^1.0.13"
+        "update-browserslist-db": "^1.0.16"
       },
       "bin": {
         "browserslist": "cli.js"
@@ -2527,9 +2551,9 @@
       }
     },
     "node_modules/caniuse-lite": {
-      "version": "1.0.30001620",
-      "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz",
-      "integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==",
+      "version": "1.0.30001636",
+      "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001636.tgz",
+      "integrity": "sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==",
       "funding": [
         {
           "type": "opencollective",
@@ -2663,9 +2687,9 @@
       }
     },
     "node_modules/debug": {
-      "version": "4.3.4",
-      "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz",
-      "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+      "version": "4.3.5",
+      "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.5.tgz",
+      "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
       "dependencies": {
         "ms": "2.1.2"
       },
@@ -2836,9 +2860,9 @@
       "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
     },
     "node_modules/electron-to-chromium": {
-      "version": "1.4.774",
-      "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.774.tgz",
-      "integrity": "sha512-132O1XCd7zcTkzS3FgkAzKmnBuNJjK8WjcTtNuoylj7MYbqw5eXehjQ5OK91g0zm7OTKIPeaAG4CPoRfD9M1Mg=="
+      "version": "1.4.805",
+      "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.805.tgz",
+      "integrity": "sha512-8W4UJwX/w9T0QSzINJckTKG6CYpAUTqsaWcWIsdud3I1FYJcMgW9QqT1/4CBff/pP/TihWh13OmiyY8neto6vw=="
     },
     "node_modules/emoji-regex": {
       "version": "9.2.2",
@@ -3039,14 +3063,6 @@
         "node": ">= 0.6"
       }
     },
-    "node_modules/event-target-shim": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmmirror.com/event-target-shim/-/event-target-shim-5.0.1.tgz",
-      "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
-      "engines": {
-        "node": ">=6"
-      }
-    },
     "node_modules/execa": {
       "version": "7.2.0",
       "resolved": "https://registry.npmmirror.com/execa/-/execa-7.2.0.tgz",
@@ -3229,9 +3245,9 @@
       "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
     },
     "node_modules/foreground-child": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmmirror.com/foreground-child/-/foreground-child-3.1.1.tgz",
-      "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
+      "version": "3.2.1",
+      "resolved": "https://registry.npmmirror.com/foreground-child/-/foreground-child-3.2.1.tgz",
+      "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==",
       "dependencies": {
         "cross-spawn": "^7.0.0",
         "signal-exit": "^4.0.1"
@@ -3341,9 +3357,9 @@
       }
     },
     "node_modules/get-console-process-list": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmmirror.com/get-console-process-list/-/get-console-process-list-1.0.4.tgz",
-      "integrity": "sha512-vn5MA+CCTMgRuF9fxvJYLC2fMCuBPKQ7RwhA9H2TvMvy33oDivjIqA4mh2NJlUDoZXPcu/1moN3VfyukxxKwpA==",
+      "version": "1.0.5",
+      "resolved": "https://registry.npmmirror.com/get-console-process-list/-/get-console-process-list-1.0.5.tgz",
+      "integrity": "sha512-K73UHh6ht+MXnnuqQAE/5IjlevHV1ePiTy8yBLsZZPxmoY1KHtouW9E2K1bVLeQzHELztb38vFNak6J+2CNCuw==",
       "hasInstallScript": true,
       "optional": true,
       "os": [
@@ -3435,15 +3451,15 @@
       }
     },
     "node_modules/glob": {
-      "version": "10.3.15",
-      "resolved": "https://registry.npmmirror.com/glob/-/glob-10.3.15.tgz",
-      "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==",
+      "version": "10.4.1",
+      "resolved": "https://registry.npmmirror.com/glob/-/glob-10.4.1.tgz",
+      "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
       "dependencies": {
         "foreground-child": "^3.1.0",
-        "jackspeak": "^2.3.6",
-        "minimatch": "^9.0.1",
-        "minipass": "^7.0.4",
-        "path-scurry": "^1.11.0"
+        "jackspeak": "^3.1.2",
+        "minimatch": "^9.0.4",
+        "minipass": "^7.1.2",
+        "path-scurry": "^1.11.1"
       },
       "bin": {
         "glob": "dist/esm/bin.mjs"
@@ -3455,6 +3471,20 @@
         "url": "https://github.com/sponsors/isaacs"
       }
     },
+    "node_modules/glob/node_modules/minimatch": {
+      "version": "9.0.4",
+      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.4.tgz",
+      "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+      "dependencies": {
+        "brace-expansion": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=16 || 14 >=14.17"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
     "node_modules/globals": {
       "version": "11.12.0",
       "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz",
@@ -3763,9 +3793,9 @@
       "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
     },
     "node_modules/jackspeak": {
-      "version": "2.3.6",
-      "resolved": "https://registry.npmmirror.com/jackspeak/-/jackspeak-2.3.6.tgz",
-      "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
+      "version": "3.4.0",
+      "resolved": "https://registry.npmmirror.com/jackspeak/-/jackspeak-3.4.0.tgz",
+      "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==",
       "dependencies": {
         "@isaacs/cliui": "^8.0.2"
       },
@@ -4055,9 +4085,9 @@
       }
     },
     "node_modules/minipass": {
-      "version": "7.1.1",
-      "resolved": "https://registry.npmmirror.com/minipass/-/minipass-7.1.1.tgz",
-      "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==",
+      "version": "7.1.2",
+      "resolved": "https://registry.npmmirror.com/minipass/-/minipass-7.1.2.tgz",
+      "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
       "engines": {
         "node": ">=16 || 14 >=14.17"
       }
@@ -4108,9 +4138,9 @@
       "optional": true
     },
     "node_modules/mongodb": {
-      "version": "6.6.2",
-      "resolved": "https://registry.npmmirror.com/mongodb/-/mongodb-6.6.2.tgz",
-      "integrity": "sha512-ZF9Ugo2JCG/GfR7DEb4ypfyJJyiKbg5qBYKRintebj8+DNS33CyGMkWbrS9lara+u+h+yEOGSRiLhFO/g1s1aw==",
+      "version": "6.7.0",
+      "resolved": "https://registry.npmmirror.com/mongodb/-/mongodb-6.7.0.tgz",
+      "integrity": "sha512-TMKyHdtMcO0fYBNORiYdmM25ijsHs+Njs963r4Tro4OQZzqYigAzYQouwWRg4OIaiLRUEGUh/1UAcH5lxdSLIA==",
       "dependencies": {
         "@mongodb-js/saslprep": "^1.1.5",
         "bson": "^6.7.0",
@@ -4161,20 +4191,46 @@
       }
     },
     "node_modules/mongodb-client-encryption": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmmirror.com/mongodb-client-encryption/-/mongodb-client-encryption-6.0.0.tgz",
-      "integrity": "sha512-GtqkqlSq19acX006/U1odA3l+gwhvABeoTUlvvgtvSs6qcN3qSHPnur3Z5N4oKOv6fZ7EtT8rIsWP2riI0+Eyg==",
+      "version": "6.0.1",
+      "resolved": "https://registry.npmmirror.com/mongodb-client-encryption/-/mongodb-client-encryption-6.0.1.tgz",
+      "integrity": "sha512-u6pKu9plR7hQH6VtsfYonC9dwWAM3HFEpi+Xy3EJIdUyoH6dlFgaxX8TnKx/Ycfi2I1cxTXq2IbhSpg157vVgg==",
       "hasInstallScript": true,
       "optional": true,
       "dependencies": {
         "bindings": "^1.5.0",
         "node-addon-api": "^4.3.0",
-        "prebuild-install": "^7.1.1"
+        "prebuild-install": "^7.1.2"
       },
       "engines": {
         "node": ">=16.20.1"
       }
     },
+    "node_modules/mongodb-client-encryption/node_modules/prebuild-install": {
+      "version": "7.1.2",
+      "resolved": "https://registry.npmmirror.com/prebuild-install/-/prebuild-install-7.1.2.tgz",
+      "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==",
+      "optional": true,
+      "dependencies": {
+        "detect-libc": "^2.0.0",
+        "expand-template": "^2.0.3",
+        "github-from-package": "0.0.0",
+        "minimist": "^1.2.3",
+        "mkdirp-classic": "^0.5.3",
+        "napi-build-utils": "^1.0.1",
+        "node-abi": "^3.3.0",
+        "pump": "^3.0.0",
+        "rc": "^1.2.7",
+        "simple-get": "^4.0.0",
+        "tar-fs": "^2.0.0",
+        "tunnel-agent": "^0.6.0"
+      },
+      "bin": {
+        "prebuild-install": "bin.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
     "node_modules/mongodb-connection-string-url": {
       "version": "3.0.1",
       "resolved": "https://registry.npmmirror.com/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.1.tgz",
@@ -4243,9 +4299,9 @@
       }
     },
     "node_modules/node-abi": {
-      "version": "3.62.0",
-      "resolved": "https://registry.npmmirror.com/node-abi/-/node-abi-3.62.0.tgz",
-      "integrity": "sha512-CPMcGa+y33xuL1E0TcNIu4YyaZCxnnvkVaEXrsosR3FxN+fV8xvb7Mzpb7IgKler10qeMkE6+Dp8qJhpzdq35g==",
+      "version": "3.65.0",
+      "resolved": "https://registry.npmmirror.com/node-abi/-/node-abi-3.65.0.tgz",
+      "integrity": "sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA==",
       "optional": true,
       "dependencies": {
         "semver": "^7.3.5"
@@ -5413,9 +5469,9 @@
       }
     },
     "node_modules/tslib": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz",
-      "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
+      "version": "2.6.3",
+      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.3.tgz",
+      "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ=="
     },
     "node_modules/tunnel-agent": {
       "version": "0.6.0",
diff --git a/pkgs/development/tools/mongosh/source.json b/pkgs/development/tools/mongosh/source.json
index a5d214f717008..cdebe929bf966 100644
--- a/pkgs/development/tools/mongosh/source.json
+++ b/pkgs/development/tools/mongosh/source.json
@@ -1,6 +1,6 @@
 {
-  "version": "2.2.6",
-  "integrity": "sha512-ksL2zesQ82i6/km7ec4Ii3rtFDIPf4tmLDjkts/Kf+l6OGn54lox6sh/eDRMflggm8XYdFOYQFiLADzRtQwVOA==",
-  "filename": "mongosh-2.2.6.tgz",
-  "deps": "sha256-/zvqFRIGroP1YLSTlKv+ZKzB4c/Y78mn8BM8lnbqj/M="
+  "version": "2.2.9",
+  "integrity": "sha512-7zROoz9tFqBW3t4aI6pO9S6GmGuDWb9m8hT0w91uL6CXTHUcYH7XM4INR2jr3+qXFYLkaXZ1WQoLgmuoJoSj7g==",
+  "filename": "mongosh-2.2.9.tgz",
+  "deps": "sha256-wefY8JDdtabrtlJfsT4iZsCwYIbIxv8T+U2S29Hl2O4="
 }
diff --git a/pkgs/development/tools/mpfshell/default.nix b/pkgs/development/tools/mpfshell/default.nix
index 331e80140bb81..63223a54eb8e4 100644
--- a/pkgs/development/tools/mpfshell/default.nix
+++ b/pkgs/development/tools/mpfshell/default.nix
@@ -20,7 +20,7 @@ python3Packages.buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/wendlers/mpfshell";
-    description = "A simple shell based file explorer for ESP8266 Micropython based devices";
+    description = "Simple shell based file explorer for ESP8266 Micropython based devices";
     mainProgram = "mpfshell";
     license = licenses.mit;
   };
diff --git a/pkgs/development/tools/mustache-go/default.nix b/pkgs/development/tools/mustache-go/default.nix
index be5218cb1d336..c6d8966d50142 100644
--- a/pkgs/development/tools/mustache-go/default.nix
+++ b/pkgs/development/tools/mustache-go/default.nix
@@ -18,7 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/cbroglie/mustache";
-    description = "The mustache template language in Go";
+    description = "Mustache template language in Go";
     license = [ licenses.mit ];
     maintainers = with maintainers; [ Zimmi48 ];
     mainProgram = "mustache";
diff --git a/pkgs/development/tools/mysql-shell/default.nix b/pkgs/development/tools/mysql-shell/default.nix
index 96b51392f151e..d2de80d432c42 100644
--- a/pkgs/development/tools/mysql-shell/default.nix
+++ b/pkgs/development/tools/mysql-shell/default.nix
@@ -118,7 +118,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://dev.mysql.com/doc/mysql-shell/${lib.versions.majorMinor finalAttrs.version}/en/";
-    description = "A new command line scriptable shell for MySQL";
+    description = "New command line scriptable shell for MySQL";
     license = licenses.gpl2;
     maintainers = with maintainers; [ aaronjheng ];
     mainProgram = "mysqlsh";
diff --git a/pkgs/development/tools/mysql-shell/innovation.nix b/pkgs/development/tools/mysql-shell/innovation.nix
index 56fab537ee10b..efd74f3fc717d 100644
--- a/pkgs/development/tools/mysql-shell/innovation.nix
+++ b/pkgs/development/tools/mysql-shell/innovation.nix
@@ -119,7 +119,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://dev.mysql.com/doc/mysql-shell/${lib.versions.majorMinor finalAttrs.version}/en/";
-    description = "A new command line scriptable shell for MySQL";
+    description = "New command line scriptable shell for MySQL";
     license = licenses.gpl2;
     maintainers = with maintainers; [ aaronjheng ];
     mainProgram = "mysqlsh";
diff --git a/pkgs/development/tools/nagelfar/default.nix b/pkgs/development/tools/nagelfar/default.nix
index e770d162dc47b..a40861e0988d4 100644
--- a/pkgs/development/tools/nagelfar/default.nix
+++ b/pkgs/development/tools/nagelfar/default.nix
@@ -21,7 +21,7 @@ tcl.mkTclDerivation {
 
   meta = with lib; {
     homepage = "https://nagelfar.sourceforge.net/";
-    description = "A static syntax checker (linter) for Tcl";
+    description = "Static syntax checker (linter) for Tcl";
     longDescription = ''
       Provides static syntax checking, code coverage instrumentation,
       and is very extendable through its syntax database and plugins.
diff --git a/pkgs/development/tools/neil/default.nix b/pkgs/development/tools/neil/default.nix
index 0b65baa769dae..8331ecde3e615 100644
--- a/pkgs/development/tools/neil/default.nix
+++ b/pkgs/development/tools/neil/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/babashka/neil";
-    description = "A CLI to add common aliases and features to deps.edn-based projects";
+    description = "CLI to add common aliases and features to deps.edn-based projects";
     mainProgram = "neil";
     license = licenses.mit;
     platforms = babashka.meta.platforms;
diff --git a/pkgs/development/tools/nodehun/default.nix b/pkgs/development/tools/nodehun/default.nix
index cef41d9187912..5a49c90ad2e20 100644
--- a/pkgs/development/tools/nodehun/default.nix
+++ b/pkgs/development/tools/nodehun/default.nix
@@ -56,7 +56,7 @@ buildNpmPackage {
   disallowedReferences = [ nodejs ];
 
   meta = with lib; {
-    description = "The Hunspell binding for NodeJS that exposes as much of Hunspell as possible and also adds new features";
+    description = "Hunspell binding for NodeJS that exposes as much of Hunspell as possible and also adds new features";
     homepage = "https://github.com/Wulf/nodehun";
     license = licenses.mit;
     maintainers = [ maintainers.thomasjm ];
diff --git a/pkgs/development/tools/nodenv/default.nix b/pkgs/development/tools/nodenv/default.nix
index cdda869aa16a7..3eb045c5e9a92 100644
--- a/pkgs/development/tools/nodenv/default.nix
+++ b/pkgs/development/tools/nodenv/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nodenv";
-  version = "1.4.1";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "nodenv";
     repo = "nodenv";
     rev = "v${version}";
-    sha256 = "sha256-S7Uld7wiVJjwuvfupBodIAIOO2c/ywEmFfhEHVOCcCc=";
+    sha256 = "sha256-PGeZKL7qsffMAZIsCLB244Fuu48GyWw5Rh67ePu6h38=";
   };
 
   buildPhase = ''
diff --git a/pkgs/development/tools/nsis/default.nix b/pkgs/development/tools/nsis/default.nix
index e27c43135bad7..32e69dcf7042a 100644
--- a/pkgs/development/tools/nsis/default.nix
+++ b/pkgs/development/tools/nsis/default.nix
@@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
   installTargets = [ "install-compiler" ];
 
   meta = with lib; {
-    description = "A free scriptable win32 installer/uninstaller system that doesn't suck and isn't huge";
+    description = "Free scriptable win32 installer/uninstaller system that doesn't suck and isn't huge";
     homepage = "https://nsis.sourceforge.io/";
     license = licenses.zlib;
     platforms = platforms.unix;
diff --git a/pkgs/development/tools/nufmt/default.nix b/pkgs/development/tools/nufmt/default.nix
index a73e300052fc2..d9f2732aedd7d 100644
--- a/pkgs/development/tools/nufmt/default.nix
+++ b/pkgs/development/tools/nufmt/default.nix
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "sha256-16Z20opeZpoa7h258um+grL3ktPmY4P0M/tqMTr5hYc=";
 
   meta = with lib; {
-    description = "The nushell formatter";
+    description = "Nushell formatter";
     homepage = "https://github.com/nushell/nufmt";
     license = licenses.mit;
     maintainers = with maintainers; [iogamaster];
diff --git a/pkgs/development/tools/nwjs/default.nix b/pkgs/development/tools/nwjs/default.nix
index d66197d7f672d..769c39769e3f2 100644
--- a/pkgs/development/tools/nwjs/default.nix
+++ b/pkgs/development/tools/nwjs/default.nix
@@ -87,7 +87,7 @@ let
     extraOutputsToInstall = [ "lib" "out" ];
   };
 
-  version = "0.87.0";
+  version = "0.88.0";
 in
 stdenv.mkDerivation {
   pname = "nwjs";
@@ -98,10 +98,10 @@ stdenv.mkDerivation {
     in fetchurl {
       url = "https://dl.nwjs.io/v${version}/nwjs-${flavor}v${version}-linux-${bits}.tar.gz";
       hash = {
-        "sdk-ia32" = "sha256-We4tSI8rQbEIoxNgTP/IkL/sD7GegVQDAtXUSY4AoB0=";
-        "sdk-x64" = "sha256-pWsNVHNm1gVAy9ofZ6g1Im5TpzxM2bmJ6RENa21N4qM=";
-        "ia32" = "sha256-ExxzzErT3GBI1yLYycojDkzKZ2VuvsOjaingQiK1Kww=";
-        "x64" = "sha256-tKm3aTlfPuevdjqFFEVU6nvIixoBDUcnJPFyO1PNRqE=";
+        "sdk-ia32" = "sha256-pk8Fdzw8zBBF4xeU5BlmkF1gbf7HIn8jheSjbdV4hI0=";
+        "sdk-x64" = "sha256-51alZRf/+bpKfVLUQuy1VtLHCgkVuptQaJgupt7zxcU=";
+        "ia32" = "sha256-OLkOJo3xDZ6WKbf6zPeY+KcgzoEjYWMIV7YWWbESjPo=";
+        "x64" = "sha256-KSsaTs0W8m2dI+0ByLqU4H4ai/PXUt6LtroZIBeymgs=";
       }."${flavor + bits}";
     };
 
@@ -138,7 +138,7 @@ stdenv.mkDerivation {
     '';
 
   meta = with lib; {
-    description = "An app runtime based on Chromium and node.js";
+    description = "App runtime based on Chromium and node.js";
     homepage = "https://nwjs.io/";
     platforms = [ "i686-linux" "x86_64-linux" ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/development/tools/ocaml/camlidl/default.nix b/pkgs/development/tools/ocaml/camlidl/default.nix
index 5522406c7e74e..82bfff61e9de5 100644
--- a/pkgs/development/tools/ocaml/camlidl/default.nix
+++ b/pkgs/development/tools/ocaml/camlidl/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A stub code generator and COM binding for Objective Caml";
+    description = "Stub code generator and COM binding for Objective Caml";
     mainProgram = "camlidl";
     homepage = "https://xavierleroy.org/camlidl/";
     license = lib.licenses.lgpl21;
diff --git a/pkgs/development/tools/ocaml/camlp4/default.nix b/pkgs/development/tools/ocaml/camlp4/default.nix
index dd25dd864cee5..74e7660731133 100644
--- a/pkgs/development/tools/ocaml/camlp4/default.nix
+++ b/pkgs/development/tools/ocaml/camlp4/default.nix
@@ -90,7 +90,7 @@ stdenv.mkDerivation rec {
   dontStrip = true;
 
   meta = with lib; {
-    description = "A software system for writing extensible parsers for programming languages";
+    description = "Software system for writing extensible parsers for programming languages";
     homepage = "https://github.com/ocaml/camlp4";
     platforms = ocaml.meta.platforms or [];
   };
diff --git a/pkgs/development/tools/ocaml/cppo/default.nix b/pkgs/development/tools/ocaml/cppo/default.nix
index f5b002c59e642..1e86f9e6d89cc 100644
--- a/pkgs/development/tools/ocaml/cppo/default.nix
+++ b/pkgs/development/tools/ocaml/cppo/default.nix
@@ -6,7 +6,7 @@ let
   pname = "cppo";
 
   meta = with lib; {
-    description = "The C preprocessor for OCaml";
+    description = "C preprocessor for OCaml";
     mainProgram = "cppo";
     longDescription = ''
       Cppo is an equivalent of the C preprocessor targeted at the OCaml language and its variants.
diff --git a/pkgs/development/tools/ocaml/dune/1.nix b/pkgs/development/tools/ocaml/dune/1.nix
index c9f1c6f7eb251..1a812b02d9b2d 100644
--- a/pkgs/development/tools/ocaml/dune/1.nix
+++ b/pkgs/development/tools/ocaml/dune/1.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://dune.build/";
-    description = "A composable build system";
+    description = "Composable build system";
     maintainers = [ maintainers.vbgl ];
     license = licenses.mit;
     inherit (ocaml.meta) platforms;
diff --git a/pkgs/development/tools/ocaml/dune/2.nix b/pkgs/development/tools/ocaml/dune/2.nix
index ffed78c7a882b..2847dc2a9651c 100644
--- a/pkgs/development/tools/ocaml/dune/2.nix
+++ b/pkgs/development/tools/ocaml/dune/2.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://dune.build/";
-    description = "A composable build system";
+    description = "Composable build system";
     mainProgram = "dune";
     changelog = "https://github.com/ocaml/dune/raw/${version}/CHANGES.md";
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/tools/ocaml/dune/3.nix b/pkgs/development/tools/ocaml/dune/3.nix
index a91582959901e..58a9cd791af92 100644
--- a/pkgs/development/tools/ocaml/dune/3.nix
+++ b/pkgs/development/tools/ocaml/dune/3.nix
@@ -6,11 +6,11 @@ else
 
 stdenv.mkDerivation rec {
   pname = "dune";
-  version = "3.15.2";
+  version = "3.15.3";
 
   src = fetchurl {
     url = "https://github.com/ocaml/dune/releases/download/${version}/dune-${version}.tbz";
-    hash = "sha256-+VmYBULKhZCbPz+Om+ZcK4o3XzpOO9g8etegfy4HeTM=";
+    hash = "sha256-PCfHZ2QUBW8DaKcf3GcNKwpZiYCQx4obaCMJhOW+txM=";
   };
 
   nativeBuildInputs = [ ocaml findlib ];
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://dune.build/";
-    description = "A composable build system";
+    description = "Composable build system";
     mainProgram = "dune";
     changelog = "https://github.com/ocaml/dune/raw/${version}/CHANGES.md";
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix b/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
index ed68482d0a86f..54067eb63d217 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
@@ -5,12 +5,12 @@
 
 buildDunePackage rec {
   pname = "js_of_ocaml-compiler";
-  version = "5.8.1";
+  version = "5.8.2";
   minimalOCamlVersion = "4.08";
 
   src = fetchurl {
     url = "https://github.com/ocsigen/js_of_ocaml/releases/download/${version}/js_of_ocaml-${version}.tbz";
-    hash = "sha256-DohuELJzqMSNn0U9XEuHacofPrpe6VDgsYha3JQ/SlM=";
+    hash = "sha256-ciAZS9L5sU2VgVOlogZ1A1nXtJ3hL+iNdFDThc7L8Eo=";
   };
 
   nativeBuildInputs = [ menhir ];
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/ocamlbuild.nix b/pkgs/development/tools/ocaml/js_of_ocaml/ocamlbuild.nix
index 861dc22c80380..8d81009980743 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/ocamlbuild.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/ocamlbuild.nix
@@ -16,7 +16,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ ocamlbuild ];
 
   meta = {
-    description = "An ocamlbuild plugin to compile to JavaScript";
+    description = "Ocamlbuild plugin to compile to JavaScript";
     homepage = "https://github.com/ocsigen/js_of_ocaml-ocamlbuild";
     license = lib.licenses.lgpl2Only;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/tools/ocaml/merlin/4.x.nix b/pkgs/development/tools/ocaml/merlin/4.x.nix
index 2a3eb8e52eec1..fb9b46c00ce56 100644
--- a/pkgs/development/tools/ocaml/merlin/4.x.nix
+++ b/pkgs/development/tools/ocaml/merlin/4.x.nix
@@ -87,7 +87,7 @@ buildDunePackage {
   '';
 
   meta = with lib; {
-    description = "An editor-independent tool to ease the development of programs in OCaml";
+    description = "Editor-independent tool to ease the development of programs in OCaml";
     homepage = "https://github.com/ocaml/merlin";
     license = licenses.mit;
     maintainers = [ maintainers.vbgl maintainers.sternenseemann ];
diff --git a/pkgs/development/tools/ocaml/merlin/default.nix b/pkgs/development/tools/ocaml/merlin/default.nix
index cff881d1c97e5..a80252c3dfbce 100644
--- a/pkgs/development/tools/ocaml/merlin/default.nix
+++ b/pkgs/development/tools/ocaml/merlin/default.nix
@@ -25,7 +25,7 @@ buildDunePackage rec {
   buildInputs = [ dot-merlin-reader yojson csexp result menhirSdk ];
 
   meta = with lib; {
-    description = "An editor-independent tool to ease the development of programs in OCaml";
+    description = "Editor-independent tool to ease the development of programs in OCaml";
     homepage = "https://github.com/ocaml/merlin";
     license = licenses.mit;
     maintainers = [ maintainers.vbgl ];
diff --git a/pkgs/development/tools/ocaml/obelisk/default.nix b/pkgs/development/tools/ocaml/obelisk/default.nix
index 2775f72d79d1f..6bf1ff212c263 100644
--- a/pkgs/development/tools/ocaml/obelisk/default.nix
+++ b/pkgs/development/tools/ocaml/obelisk/default.nix
@@ -17,7 +17,7 @@ ocamlPackages.buildDunePackage rec {
   buildInputs = with ocamlPackages; [ re ];
 
   meta = {
-    description = "A simple tool which produces pretty-printed output from a Menhir parser file (.mly)";
+    description = "Simple tool which produces pretty-printed output from a Menhir parser file (.mly)";
     mainProgram = "obelisk";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/tools/ocaml/ocaml-recovery-parser/default.nix b/pkgs/development/tools/ocaml/ocaml-recovery-parser/default.nix
index 11564d4e985ca..70786bcd026f2 100644
--- a/pkgs/development/tools/ocaml/ocaml-recovery-parser/default.nix
+++ b/pkgs/development/tools/ocaml/ocaml-recovery-parser/default.nix
@@ -34,7 +34,7 @@ buildDunePackage rec {
   passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
-    description = "A simple fork of OCaml parser with support for error recovery";
+    description = "Simple fork of OCaml parser with support for error recovery";
     homepage = "https://github.com/serokell/ocaml-recovery-parser";
     license = with licenses; [ lgpl2Only mit mpl20 ];
     maintainers = with maintainers; [ romildo ];
diff --git a/pkgs/development/tools/ocaml/ocaml-top/default.nix b/pkgs/development/tools/ocaml/ocaml-top/default.nix
index f96ad2248ee21..538731a15dc8f 100644
--- a/pkgs/development/tools/ocaml/ocaml-top/default.nix
+++ b/pkgs/development/tools/ocaml/ocaml-top/default.nix
@@ -20,7 +20,7 @@ buildDunePackage rec {
   meta = {
     homepage = "https://www.typerex.org/ocaml-top.html";
     license = lib.licenses.gpl3;
-    description = "A simple cross-platform OCaml code editor built for top-level evaluation";
+    description = "Simple cross-platform OCaml code editor built for top-level evaluation";
     mainProgram = "ocaml-top";
     maintainers = with lib.maintainers; [ vbgl ];
   };
diff --git a/pkgs/development/tools/ocaml/ocamlbuild/default.nix b/pkgs/development/tools/ocaml/ocamlbuild/default.nix
index 7ce9a59866bea..98a48c27742ca 100644
--- a/pkgs/development/tools/ocaml/ocamlbuild/default.nix
+++ b/pkgs/development/tools/ocaml/ocamlbuild/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A build system with builtin rules to easily build most OCaml projects";
+    description = "Build system with builtin rules to easily build most OCaml projects";
     homepage = "https://github.com/ocaml/ocamlbuild/";
     license = licenses.lgpl2;
     maintainers = with maintainers; [ vbgl ];
diff --git a/pkgs/development/tools/ocaml/ocp-build/default.nix b/pkgs/development/tools/ocaml/ocp-build/default.nix
index 33f9a123b744b..b3426a721ff4f 100644
--- a/pkgs/development/tools/ocaml/ocp-build/default.nix
+++ b/pkgs/development/tools/ocaml/ocp-build/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   preInstall = "mkdir -p $out/bin";
 
   meta = with lib; {
-    description = "A build tool for OCaml";
+    description = "Build tool for OCaml";
     longDescription = ''
       ocp-build is a build system for OCaml application, based on simple
       descriptions of packages. ocp-build combines the descriptions of
diff --git a/pkgs/development/tools/ocaml/ocp-indent/default.nix b/pkgs/development/tools/ocaml/ocp-indent/default.nix
index 6fd31d54d999f..2599b560550b3 100644
--- a/pkgs/development/tools/ocaml/ocp-indent/default.nix
+++ b/pkgs/development/tools/ocaml/ocp-indent/default.nix
@@ -20,7 +20,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://www.typerex.org/ocp-indent.html";
-    description = "A customizable tool to indent OCaml code";
+    description = "Customizable tool to indent OCaml code";
     mainProgram = "ocp-indent";
     license = licenses.gpl3;
     maintainers = [ maintainers.jirkamarsik ];
diff --git a/pkgs/development/tools/ocaml/ocp-index/default.nix b/pkgs/development/tools/ocaml/ocp-index/default.nix
index 1c8897cb3dbc1..84e4dfb2be903 100644
--- a/pkgs/development/tools/ocaml/ocp-index/default.nix
+++ b/pkgs/development/tools/ocaml/ocp-index/default.nix
@@ -20,7 +20,7 @@ buildDunePackage rec {
 
   meta = {
     homepage = "https://www.typerex.org/ocp-index.html";
-    description = "A simple and light-weight documentation extractor for OCaml";
+    description = "Simple and light-weight documentation extractor for OCaml";
     changelog = "https://github.com/OCamlPro/ocp-index/raw/${version}/CHANGES.md";
     license = lib.licenses.lgpl3;
     maintainers = with lib.maintainers; [ vbgl ];
diff --git a/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix b/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix
index fcb43938112d1..bad8dc09a1c1c 100644
--- a/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix
+++ b/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix
@@ -1,26 +1,16 @@
-{ lib, stdenv, fetchFromGitHub, ocamlPackages }:
+{ lib, fetchFromGitHub, ocamlPackages }:
 
-stdenv.mkDerivation rec {
+ocamlPackages.buildDunePackage rec {
   pname = "ocsigen-i18n";
-  version = "3.7.0";
+  version = "4.0.0";
 
-  strictDeps = true;
-
-  nativeBuildInputs = with ocamlPackages; [ ocaml findlib ];
-  buildInputs = with ocamlPackages; [ ppx_tools ];
-
-  dontStrip = true;
-
-  installPhase = ''
-    mkdir -p $out/bin
-    make bindir=$out/bin install
-  '';
+  buildInputs = with ocamlPackages; [ ppxlib ];
 
   src = fetchFromGitHub {
     owner = "besport";
     repo = "ocsigen-i18n";
     rev = version;
-    sha256 = "sha256-PmdDyn+MUcNFrZpP/KLGQzdXUFRr+dYRAZjTZxHSeaw=";
+    hash = "sha256-NIl1YUTws8Ff4nrqdhU7oS/TN0lxVQgrtyEZtpS1ojM=";
   };
 
   meta = {
diff --git a/pkgs/development/tools/ocaml/omake/default.nix b/pkgs/development/tools/ocaml/omake/default.nix
index 32650f80b5816..956a4d4a5d018 100644
--- a/pkgs/development/tools/ocaml/omake/default.nix
+++ b/pkgs/development/tools/ocaml/omake/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ ocaml ];
 
   meta = {
-    description = "A build system designed for scalability and portability";
+    description = "Build system designed for scalability and portability";
     homepage = "http://projects.camlcity.org/projects/omake.html";
     license = with lib.licenses; [
       mit /* scripts */
diff --git a/pkgs/development/tools/ocaml/opam-publish/default.nix b/pkgs/development/tools/ocaml/opam-publish/default.nix
index 9dc78266f9f39..ce0a807cc56ea 100644
--- a/pkgs/development/tools/ocaml/opam-publish/default.nix
+++ b/pkgs/development/tools/ocaml/opam-publish/default.nix
@@ -38,7 +38,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/ocaml-opam/${pname}";
-    description = "A tool to ease contributions to opam repositories";
+    description = "Tool to ease contributions to opam repositories";
     mainProgram = "opam-publish";
     license = with licenses; [ lgpl21Only ocamlLgplLinkingException ];
     maintainers = with maintainers; [ niols ];
diff --git a/pkgs/development/tools/ocaml/opam/default.nix b/pkgs/development/tools/ocaml/opam/default.nix
index 60360abbedea7..ec2638912d3ac 100644
--- a/pkgs/development/tools/ocaml/opam/default.nix
+++ b/pkgs/development/tools/ocaml/opam/default.nix
@@ -136,7 +136,7 @@ in stdenv.mkDerivation {
   doCheck = false;
 
   meta = with lib; {
-    description = "A package manager for OCaml";
+    description = "Package manager for OCaml";
     homepage = "https://opam.ocaml.org/";
     changelog = "https://github.com/ocaml/opam/raw/${version}/CHANGES";
     maintainers = [ ];
diff --git a/pkgs/development/tools/okteto/default.nix b/pkgs/development/tools/okteto/default.nix
index 79514af491938..e8aca09b18293 100644
--- a/pkgs/development/tools/okteto/default.nix
+++ b/pkgs/development/tools/okteto/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "okteto";
-  version = "2.27.1";
+  version = "2.27.4";
 
   src = fetchFromGitHub {
     owner = "okteto";
     repo = "okteto";
     rev = version;
-    hash = "sha256-CpU29+dVC/OHZdVtbQKSUwoBHsUUb2ZmBNtU1YSa/UA=";
+    hash = "sha256-FctWmYGOdmGqjHGlsi3k+RUmU35ufzpMh7Eh88GZiUc=";
   };
 
   vendorHash = "sha256-RpkKWz/cJ1StbpVydqpSfA6uwIYgKa1YOCJVXZRer6k=";
diff --git a/pkgs/development/tools/omniorb/default.nix b/pkgs/development/tools/omniorb/default.nix
index acc1dd1403ddd..bbe663911ff49 100644
--- a/pkgs/development/tools/omniorb/default.nix
+++ b/pkgs/development/tools/omniorb/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A robust high performance CORBA ORB for C++ and Python";
+    description = "Robust high performance CORBA ORB for C++ and Python";
     longDescription = ''
       omniORB is a robust high performance CORBA ORB for C++ and Python.
       It is freely available under the terms of the GNU Lesser General Public License
diff --git a/pkgs/development/tools/opcr-policy/default.nix b/pkgs/development/tools/opcr-policy/default.nix
index 641dd140d8b26..281113a48b89f 100644
--- a/pkgs/development/tools/opcr-policy/default.nix
+++ b/pkgs/development/tools/opcr-policy/default.nix
@@ -5,15 +5,15 @@
 
 buildGoModule rec {
   pname = "opcr-policy";
-  version = "0.2.13";
+  version = "0.2.15";
 
   src = fetchFromGitHub {
     owner = "opcr-io";
     repo = "policy";
     rev = "v${version}";
-    sha256 = "sha256-flmTVEEM0vEU4Aul7+PPo0ut1xv63l4HljEPXSPd6SU=";
+    sha256 = "sha256-ffUggy1Ubs3pnBbznPR3JN0QrSBfkUI9bk+dSq4oxfs=";
   };
-  vendorHash = "sha256-XmJafFW5Hb8A8mKz/ewJIKMQ5hiZlAJk2yFdTB3VxNg=";
+  vendorHash = "sha256-vqH3f1kfcOG04PPzC4izzKBJPZ3SSlK7y7nKhOJ9GdE=";
 
   ldflags = [ "-s" "-w" "-X github.com/opcr-io/policy/pkg/version.ver=${version}" ];
 
diff --git a/pkgs/development/tools/open-policy-agent/default.nix b/pkgs/development/tools/open-policy-agent/default.nix
index 146a2e0c3bbe6..6c2d5175c3f51 100644
--- a/pkgs/development/tools/open-policy-agent/default.nix
+++ b/pkgs/development/tools/open-policy-agent/default.nix
@@ -11,13 +11,13 @@ assert enableWasmEval && stdenv.isDarwin -> builtins.throw "building with wasm o
 
 buildGoModule rec {
   pname = "open-policy-agent";
-  version = "0.64.1";
+  version = "0.65.0";
 
   src = fetchFromGitHub {
     owner = "open-policy-agent";
     repo = "opa";
     rev = "v${version}";
-    hash = "sha256-IIW6AXv5x+uQGCZulPPB7IhRlCq7Ww76qUhMHg3Fx7g=";
+    hash = "sha256-nf/xQ5744cplTNYkwaUbGv7Dw0BGf52dWTjnTVa9qL8=";
   };
 
   vendorHash = null;
diff --git a/pkgs/development/tools/operator-sdk/default.nix b/pkgs/development/tools/operator-sdk/default.nix
index fa9379ab62ee7..b334654dd924e 100644
--- a/pkgs/development/tools/operator-sdk/default.nix
+++ b/pkgs/development/tools/operator-sdk/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "operator-sdk";
-  version = "1.34.2";
+  version = "1.35.0";
 
   src = fetchFromGitHub {
     owner = "operator-framework";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-vVa1ljPRSHSo7bVqPkRt/jbuSlzLmnVaLnyreskwOrM=";
+    hash = "sha256-KalG1DLhvXEjNAOeP79BMYvI74j6nKnDkOYubIJ0Shs=";
   };
 
-  vendorHash = "sha256-YspUrnSS6d8Ta8dmUjx9A5D/V5Bqm08DQJrRBaIGyQg=";
+  vendorHash = "sha256-TuDbQoC9at3yQikGTfsAKJ5kc/naqLqfHEwXLOv+12A=";
 
   nativeBuildInputs = [
     makeWrapper
diff --git a/pkgs/development/tools/oq/default.nix b/pkgs/development/tools/oq/default.nix
index 8508fbc2d741f..0be19c71ffb47 100644
--- a/pkgs/development/tools/oq/default.nix
+++ b/pkgs/development/tools/oq/default.nix
@@ -37,7 +37,7 @@ crystal.buildCrystalPackage rec {
   '';
 
   meta = with lib; {
-    description = "A performant, and portable jq wrapper";
+    description = "Performant, and portable jq wrapper";
     mainProgram = "oq";
     homepage = "https://blacksmoke16.github.io/oq/";
     license = licenses.mit;
diff --git a/pkgs/development/tools/oras/default.nix b/pkgs/development/tools/oras/default.nix
index fe1c0d5db36b7..add83c4480a1d 100644
--- a/pkgs/development/tools/oras/default.nix
+++ b/pkgs/development/tools/oras/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "oras";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "oras-project";
     repo = "oras";
     rev = "v${version}";
-    hash = "sha256-oWDxrxCrBU0quSpRLXZ0w1COuImVj4FzAmv8574x76o=";
+    hash = "sha256-uqbHyp7eB7uttBlWpWxkCDGHtLkViYPEsIXuMGZ6LuM=";
   };
 
-  vendorHash = "sha256-51keQmj1eGT3rJysnfTWIl8xoHfz3NPL/qXegc3wwNc=";
+  vendorHash = "sha256-QGh3utM+9yPRGN/6IrPbXzyXA6yUNKQuOdVWglFeySw=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -50,7 +50,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://oras.land/";
     changelog = "https://github.com/oras-project/oras/releases/tag/v${version}";
-    description = "The ORAS project provides a way to push and pull OCI Artifacts to and from OCI Registries";
+    description = "ORAS project provides a way to push and pull OCI Artifacts to and from OCI Registries";
     mainProgram = "oras";
     license = licenses.asl20;
     maintainers = with maintainers; [ jk developer-guy ];
diff --git a/pkgs/development/tools/oxlint/default.nix b/pkgs/development/tools/oxlint/default.nix
index 8294871aeb39c..d21488684f56c 100644
--- a/pkgs/development/tools/oxlint/default.nix
+++ b/pkgs/development/tools/oxlint/default.nix
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
   cargoTestFlags = cargoBuildFlags;
 
   meta = with lib; {
-    description = "A suite of high-performance tools for JavaScript and TypeScript written in Rust";
+    description = "Suite of high-performance tools for JavaScript and TypeScript written in Rust";
     homepage = "https://github.com/web-infra-dev/oxc";
     changelog = "https://github.com/web-infra-dev/oxc/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/development/tools/package-project-cmake/default.nix b/pkgs/development/tools/package-project-cmake/default.nix
index 239ba515ea2b7..48ddac5088429 100644
--- a/pkgs/development/tools/package-project-cmake/default.nix
+++ b/pkgs/development/tools/package-project-cmake/default.nix
@@ -29,7 +29,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://github.com/TheLartians/PackageProject.cmake";
-    description = "A CMake script for packaging C/C++ projects";
+    description = "CMake script for packaging C/C++ projects";
     longDescription = ''
       Help other developers use your project. A CMake script for packaging
       C/C++ projects for simple project installation while employing
diff --git a/pkgs/development/tools/packcc/default.nix b/pkgs/development/tools/packcc/default.nix
index b1ec078c9c5dd..2128e48886b8b 100644
--- a/pkgs/development/tools/packcc/default.nix
+++ b/pkgs/development/tools/packcc/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A parser generator for C";
+    description = "Parser generator for C";
     mainProgram = "packcc";
     longDescription = ''
       PackCC is a parser generator for C. Its main features are as follows:
diff --git a/pkgs/development/tools/packer/default.nix b/pkgs/development/tools/packer/default.nix
index b4c2afb080722..d2fad639aa21b 100644
--- a/pkgs/development/tools/packer/default.nix
+++ b/pkgs/development/tools/packer/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "packer";
-  version = "1.10.3";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "packer";
     rev = "v${version}";
-    hash = "sha256-oLN7FU7Er0GnfOhoKd0bSsiB7uZsr2BNL3aSDrWJEUw=";
+    hash = "sha256-LU3URVklSjpsQas9xtvIU2OcyMZHqkcA7WaUYCQHfns=";
   };
 
-  vendorHash = "sha256-2YsFwWalMhbZP4vdEQguCijGC9kCiqDpfZCAKVOk5bs=";
+  vendorHash = "sha256-ipinfk+nFAeyND1HNOehHd+0l5meOPOgbkmCzJlvw+A=";
 
   subPackages = [ "." ];
 
@@ -28,7 +28,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A tool for creating identical machine images for multiple platforms from a single source configuration";
+    description = "Tool for creating identical machine images for multiple platforms from a single source configuration";
     homepage    = "https://www.packer.io";
     license     = licenses.bsl11;
     maintainers = with maintainers; [ zimbatm ma27 techknowlogick qjoly ];
diff --git a/pkgs/development/tools/parsing/bisonc++/default.nix b/pkgs/development/tools/parsing/bisonc++/default.nix
index 5994da0226310..3b8bf5601ed5d 100644
--- a/pkgs/development/tools/parsing/bisonc++/default.nix
+++ b/pkgs/development/tools/parsing/bisonc++/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A parser generator like bison, but it generates C++ code";
+    description = "Parser generator like bison, but it generates C++ code";
     mainProgram = "bisonc++";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ raskin ];
diff --git a/pkgs/development/tools/parsing/flex/2.5.35.nix b/pkgs/development/tools/parsing/flex/2.5.35.nix
index d6a09929d4f86..a68f7e07429c3 100644
--- a/pkgs/development/tools/parsing/flex/2.5.35.nix
+++ b/pkgs/development/tools/parsing/flex/2.5.35.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     branch = "2.5.35";
     homepage = "https://flex.sourceforge.net/";
-    description = "A fast lexical analyser generator";
+    description = "Fast lexical analyser generator";
     mainProgram = "flex";
     license = licenses.bsd2;
     platforms = platforms.unix;
diff --git a/pkgs/development/tools/parsing/flex/default.nix b/pkgs/development/tools/parsing/flex/default.nix
index 8991c1419f2a2..bd62241ec98ca 100644
--- a/pkgs/development/tools/parsing/flex/default.nix
+++ b/pkgs/development/tools/parsing/flex/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/westes/flex";
-    description = "A fast lexical analyser generator";
+    description = "Fast lexical analyser generator";
     license = licenses.bsd2;
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/tools/parsing/hammer/default.nix b/pkgs/development/tools/parsing/hammer/default.nix
index d1cd4b167003f..d47c62cf9d853 100644
--- a/pkgs/development/tools/parsing/hammer/default.nix
+++ b/pkgs/development/tools/parsing/hammer/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ glib ];
 
   meta = with lib; {
-    description = "A bit-oriented parser combinator library";
+    description = "Bit-oriented parser combinator library";
     longDescription = ''
       Hammer is a parsing library. Like many modern parsing libraries, it
       provides a parser combinator interface for writing grammars as inline
diff --git a/pkgs/development/tools/parsing/javacc/default.nix b/pkgs/development/tools/parsing/javacc/default.nix
index a601ac15221f0..ed01650678216 100644
--- a/pkgs/development/tools/parsing/javacc/default.nix
+++ b/pkgs/development/tools/parsing/javacc/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     changelog = "https://github.com/javacc/javacc/blob/${finalAttrs.src.rev}/docs/release-notes.md";
-    description = "A parser generator for building parsers from grammars";
+    description = "Parser generator for building parsers from grammars";
     homepage = "https://javacc.github.io/javacc";
     license = licenses.bsd2;
     mainProgram = "javacc";
diff --git a/pkgs/development/tools/parsing/jikespg/default.nix b/pkgs/development/tools/parsing/jikespg/default.nix
index 1c67521608b5a..03814d3cfbe78 100644
--- a/pkgs/development/tools/parsing/jikespg/default.nix
+++ b/pkgs/development/tools/parsing/jikespg/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://jikes.sourceforge.net/";
-    description = "The Jikes Parser Generator";
+    description = "Jikes Parser Generator";
     mainProgram = "jikespg";
     platforms = platforms.all;
     license = licenses.ipl10;
diff --git a/pkgs/development/tools/parsing/lemon/default.nix b/pkgs/development/tools/parsing/lemon/default.nix
index 5e59d7441e7e1..512d3bccc9733 100644
--- a/pkgs/development/tools/parsing/lemon/default.nix
+++ b/pkgs/development/tools/parsing/lemon/default.nix
@@ -31,7 +31,7 @@ in stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "An LALR(1) parser generator";
+    description = "LALR(1) parser generator";
     mainProgram = "lemon";
     longDescription = ''
       The Lemon program is an LALR(1) parser generator that takes a
diff --git a/pkgs/development/tools/parsing/nex/default.nix b/pkgs/development/tools/parsing/nex/default.nix
index 2d3f18cacedd0..6a34156608784 100644
--- a/pkgs/development/tools/parsing/nex/default.nix
+++ b/pkgs/development/tools/parsing/nex/default.nix
@@ -1,12 +1,12 @@
-{ buildGoPackage
+{ buildGoModule
 , fetchFromGitHub
 , lib
 }:
 # upstream is pretty stale, but it still works, so until they merge module
 # support we have to use gopath: see blynn/nex#57
-buildGoPackage rec {
+buildGoModule rec {
   pname = "nex";
-  version = "unstable-2021-03-30";
+  version = "0-unstable-2021-03-30";
 
   src = fetchFromGitHub {
     owner = "blynn";
@@ -15,9 +15,18 @@ buildGoPackage rec {
     hash = "sha256-DtJkV380T2B5j0+u7lYZfbC0ej0udF4GW2lbRmmbjAM=";
   };
 
-  goPackagePath = "github.com/blynn/nex";
+  vendorHash = null;
+
+  postPatch = ''
+    go mod init github.com/blynn/nex
+  '';
+
   subPackages = [ "." ];
 
+  # Fails with 'nex_test.go:23: got: 7a3661f13445ca7b51de2987bea127d9 wanted: 13f760d2f0dc1743dd7165781f2a318d'
+  # Checks failed on master before, but buildGoPackage had checks disabled.
+  doCheck = false;
+
   meta = with lib; {
     description = "Lexer for Go";
     mainProgram = "nex";
diff --git a/pkgs/development/tools/parsing/re-flex/default.nix b/pkgs/development/tools/parsing/re-flex/default.nix
index 2f989d9bfb1e5..10131c23b2ba2 100644
--- a/pkgs/development/tools/parsing/re-flex/default.nix
+++ b/pkgs/development/tools/parsing/re-flex/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.genivia.com/doc/reflex/html";
-    description = "The regex-centric, fast lexical analyzer generator for C++ with full Unicode support";
+    description = "Regex-centric, fast lexical analyzer generator for C++ with full Unicode support";
     license = licenses.bsd3;
     platforms = platforms.all;
     maintainers = with lib.maintainers; [ prrlvr ];
diff --git a/pkgs/development/tools/parsing/spicy/default.nix b/pkgs/development/tools/parsing/spicy/default.nix
index b24c1abb9766c..9738ffb41bca0 100644
--- a/pkgs/development/tools/parsing/spicy/default.nix
+++ b/pkgs/development/tools/parsing/spicy/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/zeek/spicy";
-    description = "A C++ parser generator for dissecting protocols & files";
+    description = "C++ parser generator for dissecting protocols & files";
     longDescription = ''
       Spicy is a parser generator that makes it easy to create robust C++
       parsers for network protocols, file formats, and more. Spicy is a bit
diff --git a/pkgs/development/tools/parsing/tree-sitter/default.nix b/pkgs/development/tools/parsing/tree-sitter/default.nix
index 14f5e32b505cc..6e3390103b342 100644
--- a/pkgs/development/tools/parsing/tree-sitter/default.nix
+++ b/pkgs/development/tools/parsing/tree-sitter/default.nix
@@ -172,7 +172,7 @@ rustPlatform.buildRustPackage {
 
   meta = with lib; {
     homepage = "https://github.com/tree-sitter/tree-sitter";
-    description = "A parser generator tool and an incremental parsing library";
+    description = "Parser generator tool and an incremental parsing library";
     mainProgram = "tree-sitter";
     changelog = "https://github.com/tree-sitter/tree-sitter/blob/v${version}/CHANGELOG.md";
     longDescription = ''
diff --git a/pkgs/development/tools/patcher9x/default.nix b/pkgs/development/tools/patcher9x/default.nix
index 090f902c75b92..fdf116a40c860 100644
--- a/pkgs/development/tools/patcher9x/default.nix
+++ b/pkgs/development/tools/patcher9x/default.nix
@@ -1,7 +1,7 @@
 { fasm, lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation (finalAttr: {
-  name = "patcher9x";
+  pname = "patcher9x";
   version = "0.8.50";
 
   srcs = [
diff --git a/pkgs/development/tools/pax-rs/default.nix b/pkgs/development/tools/pax-rs/default.nix
index d89221da8fea7..7b0e2c7a784a9 100644
--- a/pkgs/development/tools/pax-rs/default.nix
+++ b/pkgs/development/tools/pax-rs/default.nix
@@ -5,7 +5,7 @@ rustPlatform.buildRustPackage rec {
   version = "0.4.0";
 
   meta = with lib; {
-    description = "The fastest JavaScript bundler in the galaxy";
+    description = "Fastest JavaScript bundler in the galaxy";
     longDescription = ''
       The fastest JavaScript bundler in the galaxy. Fully supports ECMAScript module syntax (import/export) in addition to CommonJS require(<string>).
     '';
diff --git a/pkgs/development/tools/perseus-cli/default.nix b/pkgs/development/tools/perseus-cli/default.nix
index 4b39fccdd3669..a72ceab056efb 100644
--- a/pkgs/development/tools/perseus-cli/default.nix
+++ b/pkgs/development/tools/perseus-cli/default.nix
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://arctic-hen7.github.io/perseus";
-    description = "A high-level web development framework for Rust with full support for server-side rendering and static generation";
+    description = "High-level web development framework for Rust with full support for server-side rendering and static generation";
     maintainers = with maintainers; [ max-niederman ];
     license = with licenses; [ mit ];
     mainProgram = "perseus";
diff --git a/pkgs/development/tools/pgformatter/default.nix b/pkgs/development/tools/pgformatter/default.nix
index 219b8b67d3b85..d4407fa5ec246 100644
--- a/pkgs/development/tools/pgformatter/default.nix
+++ b/pkgs/development/tools/pgformatter/default.nix
@@ -43,7 +43,7 @@ perlPackages.buildPerlPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A PostgreSQL SQL syntax beautifier that can work as a console program or as a CGI";
+    description = "PostgreSQL SQL syntax beautifier that can work as a console program or as a CGI";
     homepage = "https://github.com/darold/pgFormatter";
     changelog = "https://github.com/darold/pgFormatter/releases/tag/v${version}";
     maintainers = [ ];
diff --git a/pkgs/development/tools/pgtop/default.nix b/pkgs/development/tools/pgtop/default.nix
index 4007bc5abec1f..5798b7da517ab 100644
--- a/pkgs/development/tools/pgtop/default.nix
+++ b/pkgs/development/tools/pgtop/default.nix
@@ -21,7 +21,7 @@ perlPackages.buildPerlPackage rec {
   '';
 
   meta = with lib; {
-    description = "a PostgreSQL clone of `mytop', which in turn is a `top' clone for MySQL";
+    description = "PostgreSQL clone of `mytop', which in turn is a `top' clone for MySQL";
     mainProgram = "pgtop";
     homepage = "https://github.com/cosimo/pgtop";
     changelog = "https://github.com/cosimo/pgtop/releases/tag/v${version}";
diff --git a/pkgs/development/tools/pigeon/default.nix b/pkgs/development/tools/pigeon/default.nix
index 38fcd75f391df..2277d4c3616a8 100644
--- a/pkgs/development/tools/pigeon/default.nix
+++ b/pkgs/development/tools/pigeon/default.nix
@@ -21,7 +21,7 @@ buildGoModule rec {
 
   meta = {
     homepage = "https://github.com/mna/pigeon";
-    description = "A PEG parser generator for Go";
+    description = "PEG parser generator for Go";
     mainProgram = "pigeon";
     maintainers = with lib.maintainers; [ zimbatm ];
     license = with lib.licenses; [ bsd3 ];
diff --git a/pkgs/development/tools/pnpm/default.nix b/pkgs/development/tools/pnpm/default.nix
new file mode 100644
index 0000000000000..d6a47cfebf4bd
--- /dev/null
+++ b/pkgs/development/tools/pnpm/default.nix
@@ -0,0 +1,20 @@
+{ lib, callPackage }:
+let
+  inherit (lib) mapAttrs' nameValuePair;
+
+  variants = {
+    "8" = {
+      version = "8.15.8";
+      hash = "sha256-aR/hdu6pqKgN8g5JdvPftEoEhBzriFY4/iomF0+B5l4=";
+    };
+    "9" = {
+      version = "9.3.0";
+      hash = "sha256-4fno0aFmB6Rt08FYtfen3HlFUB0cYiLUVNY9Az0dkY8=";
+    };
+  };
+
+  callPnpm = variant: callPackage ./generic.nix {inherit (variant) version hash;};
+
+  mkPnpm = versionSuffix: variant: nameValuePair "pnpm_${versionSuffix}" (callPnpm variant);
+in
+mapAttrs' mkPnpm variants
diff --git a/pkgs/development/tools/pnpm/fetch-deps/default.nix b/pkgs/development/tools/pnpm/fetch-deps/default.nix
new file mode 100644
index 0000000000000..83972abf8b08a
--- /dev/null
+++ b/pkgs/development/tools/pnpm/fetch-deps/default.nix
@@ -0,0 +1,91 @@
+{
+  stdenvNoCC,
+  fetchurl,
+  callPackage,
+  jq,
+  moreutils,
+  cacert,
+  makeSetupHook,
+  pnpm,
+}:
+{
+  fetchDeps =
+    {
+      src,
+      hash ? "",
+      pname,
+      ...
+    }@args:
+    let
+      args' = builtins.removeAttrs args [
+        "hash"
+        "pname"
+      ];
+      hash' =
+        if hash != "" then
+          { outputHash = hash; }
+        else
+          {
+            outputHash = "";
+            outputHashAlgo = "sha256";
+          };
+    in
+    stdenvNoCC.mkDerivation (finalAttrs: (
+      args'
+      // {
+        name = "${pname}-pnpm-deps";
+
+        nativeBuildInputs = [
+          jq
+          moreutils
+          pnpm
+          cacert
+        ];
+
+        installPhase = ''
+          runHook preInstall
+
+          export HOME=$(mktemp -d)
+          pnpm config set store-dir $out
+          # Some packages produce platform dependent outputs. We do not want to cache those in the global store
+          pnpm config set side-effects-cache false
+          # As we pin pnpm versions, we don't really care about updates
+          pnpm config set update-notifier false
+          # pnpm is going to warn us about using --force
+          # --force allows us to fetch all dependencies including ones that aren't meant for our host platform
+          pnpm install --frozen-lockfile --ignore-script --force
+
+          runHook postInstall
+        '';
+
+        fixupPhase = ''
+          runHook preFixup
+
+          # Remove timestamp and sort the json files
+          rm -rf $out/v3/tmp
+          for f in $(find $out -name "*.json"); do
+            jq --sort-keys "del(.. | .checkedAt?)" $f | sponge $f
+          done
+
+          runHook postFixup
+        '';
+
+        passthru = {
+          serve = callPackage ./serve.nix {
+            inherit pnpm;
+            pnpmDeps = finalAttrs.finalPackage;
+          };
+        };
+
+        dontConfigure = true;
+        dontBuild = true;
+        outputHashMode = "recursive";
+      }
+      // hash'
+    ));
+
+  configHook = makeSetupHook {
+    name = "pnpm-config-hook";
+    propagatedBuildInputs = [ pnpm ];
+  } ./pnpm-config-hook.sh;
+}
diff --git a/pkgs/development/tools/pnpm/fetch-deps/pnpm-config-hook.sh b/pkgs/development/tools/pnpm/fetch-deps/pnpm-config-hook.sh
new file mode 100644
index 0000000000000..fc0c47dbb70b6
--- /dev/null
+++ b/pkgs/development/tools/pnpm/fetch-deps/pnpm-config-hook.sh
@@ -0,0 +1,40 @@
+# shellcheck shell=bash
+
+pnpmConfigHook() {
+    echo "Executing pnpmConfigHook"
+
+    if [ -n "${pnpmRoot-}" ]; then
+      pushd "$pnpmRoot"
+    fi
+
+    if [ -z "${pnpmDeps-}" ]; then
+      echo "Error: 'pnpmDeps' must be set when using pnpmConfigHook."
+      exit 1
+    fi
+
+    echo "Configuring pnpm store"
+
+    export HOME=$(mktemp -d)
+    export STORE_PATH=$(mktemp -d)
+
+    cp -Tr "$pnpmDeps" "$STORE_PATH"
+    chmod -R +w "$STORE_PATH"
+
+    pnpm config set store-dir "$STORE_PATH"
+
+    echo "Installing dependencies"
+
+    pnpm install --offline --frozen-lockfile --ignore-script
+
+    echo "Patching scripts"
+
+    patchShebangs node_modules/{*,.*}
+
+    if [ -n "${pnpmRoot-}" ]; then
+      popd
+    fi
+
+    echo "Finished pnpmConfigHook"
+}
+
+postConfigureHooks+=(pnpmConfigHook)
diff --git a/pkgs/development/tools/pnpm/fetch-deps/serve.nix b/pkgs/development/tools/pnpm/fetch-deps/serve.nix
new file mode 100644
index 0000000000000..a44022d841dc5
--- /dev/null
+++ b/pkgs/development/tools/pnpm/fetch-deps/serve.nix
@@ -0,0 +1,30 @@
+{ writeShellApplication, pnpm, pnpmDeps }:
+writeShellApplication {
+  name = "serve-pnpm-store";
+
+  runtimeInputs = [
+    pnpm
+  ];
+
+  text = ''
+    storePath=$(mktemp -d)
+
+    clean() {
+      echo "Cleaning up temporary store at '$storePath'..."
+
+      rm -rf "$storePath"
+    }
+
+    echo "Copying pnpm store '${pnpmDeps}' to temporary store..."
+
+    cp -Tr "${pnpmDeps}" "$storePath"
+    chmod -R +w "$storePath"
+
+    echo "Run 'pnpm install --store-dir \"$storePath\"' to install packages from this store."
+
+    trap clean EXIT
+
+    pnpm server start \
+      --store-dir "$storePath"
+  '';
+}
diff --git a/pkgs/development/tools/pnpm/generic.nix b/pkgs/development/tools/pnpm/generic.nix
new file mode 100644
index 0000000000000..7050df4489709
--- /dev/null
+++ b/pkgs/development/tools/pnpm/generic.nix
@@ -0,0 +1,80 @@
+{
+  lib,
+  stdenvNoCC,
+  callPackages,
+  fetchurl,
+  installShellFiles,
+  nodejs,
+  testers,
+  withNode ? true,
+
+  version,
+  hash,
+}: stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "pnpm";
+  inherit version;
+
+  src = fetchurl {
+    url = "https://registry.npmjs.org/pnpm/-/pnpm-${finalAttrs.version}.tgz";
+    inherit hash;
+  };
+  # Remove binary files from src, we don't need them, and this way we make sure
+  # our distribution is free of binaryNativeCode
+  preConfigure = ''
+    rm -r dist/reflink.*node dist/vendor
+  '';
+
+  buildInputs = lib.optionals withNode [ nodejs ];
+
+  nativeBuildInputs = [ installShellFiles nodejs ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -d $out/{bin,libexec}
+    cp -R . $out/libexec/pnpm
+    ln -s $out/libexec/pnpm/bin/pnpm.cjs $out/bin/pnpm
+    ln -s $out/libexec/pnpm/bin/pnpx.cjs $out/bin/pnpx
+
+    runHook postInstall
+  '';
+
+  postInstall =
+    if lib.toInt (lib.versions.major version) < 9 then ''
+      export HOME="$PWD"
+      node $out/bin/pnpm install-completion bash
+      node $out/bin/pnpm install-completion fish
+      node $out/bin/pnpm install-completion zsh
+      sed -i '1 i#compdef pnpm' .config/tabtab/zsh/pnpm.zsh
+      installShellCompletion \
+        .config/tabtab/bash/pnpm.bash \
+        .config/tabtab/fish/pnpm.fish \
+        .config/tabtab/zsh/pnpm.zsh
+    '' else ''
+      node $out/bin/pnpm completion bash >pnpm.bash
+      node $out/bin/pnpm completion fish >pnpm.fish
+      node $out/bin/pnpm completion zsh >pnpm.zsh
+      sed -i '1 i#compdef pnpm' pnpm.zsh
+      installShellCompletion pnpm.{bash,fish,zsh}
+    '';
+
+  passthru = let
+    fetchDepsAttrs = callPackages ./fetch-deps { pnpm = finalAttrs.finalPackage; };
+  in {
+    inherit (fetchDepsAttrs) fetchDeps configHook;
+
+    tests.version = lib.optionalAttrs withNode (
+      testers.testVersion { package = finalAttrs.finalPackage; }
+    );
+  };
+
+  meta = with lib; {
+    description = "Fast, disk space efficient package manager for JavaScript";
+    homepage = "https://pnpm.io/";
+    changelog = "https://github.com/pnpm/pnpm/releases/tag/v${finalAttrs.version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ Scrumplex ];
+    platforms = platforms.all;
+    mainProgram = "pnpm";
+  };
+})
diff --git a/pkgs/development/tools/pqrs/default.nix b/pkgs/development/tools/pqrs/default.nix
index 730bc67fbbe83..1d406394ac122 100644
--- a/pkgs/development/tools/pqrs/default.nix
+++ b/pkgs/development/tools/pqrs/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pqrs";
-  version = "0.3.1";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "manojkarthick";
     repo = "pqrs";
     rev = "v${version}";
-    sha256 = "sha256-t6Y6gpMEpccCoyhG66FZEKHVNCbHblaqYZY1iJUZVUA=";
+    sha256 = "sha256-0oSSoGZga0OGAKUNsLmKkUl8N1l0pVi4KIqrKJbeVVU=";
   };
 
-  cargoHash = "sha256-fnoYVWpBn5Dil2o+u2MKQqd8dEKFE2i29Qz7cJae+gE=";
+  cargoHash = "sha256-w0WD+EtVGFMGpS4a2DJrLdbunwF2yiONKQwdcQG2EB0=";
 
   meta = with lib; {
     description = "CLI tool to inspect Parquet files";
diff --git a/pkgs/development/tools/profiling/pprof/default.nix b/pkgs/development/tools/profiling/pprof/default.nix
index eba53210aa3e7..7ef470a97be13 100644
--- a/pkgs/development/tools/profiling/pprof/default.nix
+++ b/pkgs/development/tools/profiling/pprof/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
   vendorHash = "sha256-bQyloQPfweK4PlrkO1IcCFjyctj99e8C9mQbCj+HCXQ=";
 
   meta = with lib; {
-    description = "A tool for visualization and analysis of profiling data";
+    description = "Tool for visualization and analysis of profiling data";
     homepage = "https://github.com/google/pprof";
     license = licenses.asl20;
     longDescription = ''
diff --git a/pkgs/development/tools/prospector/setoptconf.nix b/pkgs/development/tools/prospector/setoptconf.nix
index 1d0f06a57e77e..918c377cfa642 100644
--- a/pkgs/development/tools/prospector/setoptconf.nix
+++ b/pkgs/development/tools/prospector/setoptconf.nix
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://pypi.org/project/setoptconf-tmp";
-    description = "A module for retrieving program settings from various sources in a consistant method";
+    description = "Module for retrieving program settings from various sources in a consistant method";
     license = licenses.mit;
     maintainers = with maintainers; [
       kamadorueda
diff --git a/pkgs/development/tools/protoc-gen-go-grpc/default.nix b/pkgs/development/tools/protoc-gen-go-grpc/default.nix
index 1cf06dd34e217..34d5f22d821fc 100644
--- a/pkgs/development/tools/protoc-gen-go-grpc/default.nix
+++ b/pkgs/development/tools/protoc-gen-go-grpc/default.nix
@@ -18,7 +18,7 @@ buildGoModule rec {
   vendorHash = "sha256-y+/hjYUTFZuq55YAZ5M4T1cwIR+XFQBmWVE+Cg1Y7PI=";
 
   meta = with lib; {
-    description = "The Go language implementation of gRPC. HTTP/2 based RPC";
+    description = "Go language implementation of gRPC. HTTP/2 based RPC";
     mainProgram = "protoc-gen-go-grpc";
     license = licenses.asl20;
     maintainers = [ maintainers.raboof ];
diff --git a/pkgs/development/tools/protoc-gen-go-vtproto/default.nix b/pkgs/development/tools/protoc-gen-go-vtproto/default.nix
index 85816b725f345..11764e7e8e3c3 100644
--- a/pkgs/development/tools/protoc-gen-go-vtproto/default.nix
+++ b/pkgs/development/tools/protoc-gen-go-vtproto/default.nix
@@ -18,7 +18,7 @@ buildGoModule rec {
   excludedPackages = [ "conformance" ];
 
   meta = with lib; {
-    description = "A Protocol Buffers compiler that generates optimized marshaling & unmarshaling Go code for ProtoBuf APIv2";
+    description = "Protocol Buffers compiler that generates optimized marshaling & unmarshaling Go code for ProtoBuf APIv2";
     mainProgram = "protoc-gen-go-vtproto";
     homepage = "https://github.com/planetscale/vtprotobuf";
     license = licenses.bsd3;
diff --git a/pkgs/development/tools/protoc-gen-prost-crate/default.nix b/pkgs/development/tools/protoc-gen-prost-crate/default.nix
index 1a2a1450a4bce..ed278646ee471 100644
--- a/pkgs/development/tools/protoc-gen-prost-crate/default.nix
+++ b/pkgs/development/tools/protoc-gen-prost-crate/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "sha256-dcKJRX/iHIWEmBD2nTMyQozxld8b7dhxxB85quPUysg=";
 
   meta = with lib; {
-    description = "A protoc plugin that generates Cargo crates and include files for `protoc-gen-prost`";
+    description = "Protoc plugin that generates Cargo crates and include files for `protoc-gen-prost`";
     mainProgram = "protoc-gen-prost-crate";
     homepage = "https://github.com/neoeinstein/protoc-gen-prost";
     changelog = "https://github.com/neoeinstein/protoc-gen-prost/blob/main/CHANGELOG.md";
diff --git a/pkgs/development/tools/protoc-gen-prost-serde/default.nix b/pkgs/development/tools/protoc-gen-prost-serde/default.nix
index 7ee87e622119f..e1595e0a2b868 100644
--- a/pkgs/development/tools/protoc-gen-prost-serde/default.nix
+++ b/pkgs/development/tools/protoc-gen-prost-serde/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "sha256-l27+Rs4TYIJXZVLj7Tjw8M5+7ivWEY0TXbLtbuzwxLw=";
 
   meta = with lib; {
-    description = "A protoc plugin that generates serde serialization implementations for `protoc-gen-prost`";
+    description = "Protoc plugin that generates serde serialization implementations for `protoc-gen-prost`";
     mainProgram = "protoc-gen-prost-serde";
     homepage = "https://github.com/neoeinstein/protoc-gen-prost";
     changelog = "https://github.com/neoeinstein/protoc-gen-prost/blob/main/CHANGELOG.md";
diff --git a/pkgs/development/tools/protoc-gen-tonic/default.nix b/pkgs/development/tools/protoc-gen-tonic/default.nix
index fc5e98b49b405..6855285341e57 100644
--- a/pkgs/development/tools/protoc-gen-tonic/default.nix
+++ b/pkgs/development/tools/protoc-gen-tonic/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "sha256-FrkvL/uJitMkSyOytVSmlwr26yMVM12S2n+EaSw11CE=";
 
   meta = with lib; {
-    description = "A protoc plugin that generates Tonic gRPC server and client code using the Prost code generation engine";
+    description = "Protoc plugin that generates Tonic gRPC server and client code using the Prost code generation engine";
     mainProgram = "protoc-gen-tonic";
     homepage = "https://github.com/neoeinstein/protoc-gen-prost";
     changelog = "https://github.com/neoeinstein/protoc-gen-prost/blob/main/CHANGELOG.md";
diff --git a/pkgs/development/tools/protoc-gen-twirp/default.nix b/pkgs/development/tools/protoc-gen-twirp/default.nix
index 76ce9a922cc91..4f59af22d6e9c 100644
--- a/pkgs/development/tools/protoc-gen-twirp/default.nix
+++ b/pkgs/development/tools/protoc-gen-twirp/default.nix
@@ -1,6 +1,6 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "protoc-gen-twirp";
   version = "8.1.3";
 
@@ -11,16 +11,18 @@ buildGoPackage rec {
     sha256 = "sha256-p3gHVHGBHakOOQnJAuMK7vZumNXN15mOABuEHUG0wNs=";
   };
 
-  goPackagePath = "github.com/twitchtv/twirp";
+  postPatch = ''
+    go mod init github.com/twitchtv/twirp
+  '';
+
+  vendorHash = null;
 
   subPackages = [
     "protoc-gen-twirp"
   ];
 
-  doCheck = true;
-
   meta = with lib; {
-    description = "A simple RPC framework with protobuf service definitions";
+    description = "Simple RPC framework with protobuf service definitions";
     mainProgram = "protoc-gen-twirp";
     homepage = "https://github.com/twitchtv/twirp";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/protoc-gen-twirp_php/default.nix b/pkgs/development/tools/protoc-gen-twirp_php/default.nix
index 7fc04ae81ae3f..6833bd9a65a49 100644
--- a/pkgs/development/tools/protoc-gen-twirp_php/default.nix
+++ b/pkgs/development/tools/protoc-gen-twirp_php/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "protoc-gen-twirp_php";
-  version = "0.10.0";
+  version = "0.11.0";
 
   # fetchFromGitHub currently not possible, because go.mod and go.sum are export-ignored
   src = fetchgit {
     url = "https://github.com/twirphp/twirp.git";
     rev = "v${version}";
-    sha256 = "sha256-YMndB5DiER2Z1ARbw2cpxE1DBFCoVNWhMdsfA3X27EE=";
+    sha256 = "sha256-LUFwmxlbZVTlEyp82lm3ylh6KYtVlviYK13pxj4MH0M=";
   };
 
-  vendorHash = "sha256-Gf8thGuFAKX4pCNFJM3RbJ63vciLNcSqpOULcUOaGNw=";
+  vendorHash = "sha256-BPvKRIYvIxen0m8C9geFC4gIq4VH8mmdI0ZLMnlBB/I=";
 
   subPackages = [ "protoc-gen-twirp_php" ];
 
diff --git a/pkgs/development/tools/protolint/default.nix b/pkgs/development/tools/protolint/default.nix
index 7da6f7851f798..6fecadca5e7ae 100644
--- a/pkgs/development/tools/protolint/default.nix
+++ b/pkgs/development/tools/protolint/default.nix
@@ -1,16 +1,16 @@
 { lib, buildGoModule, fetchFromGitHub }:
 buildGoModule rec {
   pname = "protolint";
-  version = "0.49.7";
+  version = "0.49.8";
 
   src = fetchFromGitHub {
     owner = "yoheimuta";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-XXF37r9p6cAU7q3bOzkwPpy2kKXKhp944d22jtJox7k=";
+    hash = "sha256-x4xjFXpyuZRBcE6I+s3GCJmTg/nm9lHHnXNAKOFA5RQ=";
   };
 
-  vendorHash = "sha256-JmS80vAFP9tIyGjvASAEEY+0tk3SpNqXdZajvi9mH5E=";
+  vendorHash = "sha256-xHBiY2SHprGxmjaNqHPUMc0oa4iQ9L3X8ydvEiG5om4=";
 
   # Something about the way we run tests causes issues. It doesn't happen
   # when using "go test" directly:
@@ -30,7 +30,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "A pluggable linter and fixer to enforce Protocol Buffer style and conventions";
+    description = "Pluggable linter and fixer to enforce Protocol Buffer style and conventions";
     homepage = "https://github.com/yoheimuta/protolint";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/development/tools/pry/default.nix b/pkgs/development/tools/pry/default.nix
index c39af508591fa..209d61e23c5e8 100644
--- a/pkgs/development/tools/pry/default.nix
+++ b/pkgs/development/tools/pry/default.nix
@@ -8,7 +8,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "pry";
 
   meta = with lib; {
-    description = "A Ruby runtime developer console and IRB alternative";
+    description = "Ruby runtime developer console and IRB alternative";
     homepage    = "https://pryrepl.org";
     license     = licenses.mit;
     maintainers = [ maintainers.tckmn ];
diff --git a/pkgs/development/tools/pscale/default.nix b/pkgs/development/tools/pscale/default.nix
index 45850671be0d9..e719fb7691b9a 100644
--- a/pkgs/development/tools/pscale/default.nix
+++ b/pkgs/development/tools/pscale/default.nix
@@ -40,7 +40,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "The CLI for PlanetScale Database";
+    description = "CLI for PlanetScale Database";
     mainProgram = "pscale";
     changelog = "https://github.com/planetscale/cli/releases/tag/v${version}";
     homepage = "https://www.planetscale.com/";
diff --git a/pkgs/development/tools/pur/default.nix b/pkgs/development/tools/pur/default.nix
index 6c33f5f0016e6..3b79fbc2ce163 100644
--- a/pkgs/development/tools/pur/default.nix
+++ b/pkgs/development/tools/pur/default.nix
@@ -5,17 +5,21 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "pur";
-  version = "7.3.1";
-  format = "setuptools";
+  version = "7.3.2";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "alanhamlett";
     repo = "pip-update-requirements";
     rev = "refs/tags/${version}";
-    hash = "sha256-W6otdj1C3Nn3DUvwp9MPqMo2y4ITqgYrqlW/uxIj2YA=";
+    hash = "sha256-XLI9U9ej3+tS0zzmCDGwZ0pAb3mKnrqBtm90f5N6rMw=";
   };
 
-  propagatedBuildInputs = with python3.pkgs; [
+  build-system = with python3.pkgs; [
+    setuptools
+  ];
+
+  dependencies = with python3.pkgs; [
     click
   ];
 
@@ -29,10 +33,10 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Python library for update and track the requirements";
-    mainProgram = "pur";
     homepage = "https://github.com/alanhamlett/pip-update-requirements";
     changelog = "https://github.com/alanhamlett/pip-update-requirements/blob/${version}/HISTORY.rst";
-    license = with licenses; [ bsd2 ];
+    license = licenses.bsd2;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "pur";
   };
 }
diff --git a/pkgs/development/tools/pyenv/default.nix b/pkgs/development/tools/pyenv/default.nix
index e93cb4cae9348..9f761ef0be276 100644
--- a/pkgs/development/tools/pyenv/default.nix
+++ b/pkgs/development/tools/pyenv/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pyenv";
-  version = "2.4.1";
+  version = "2.4.3";
 
   src = fetchFromGitHub {
     owner = "pyenv";
     repo = "pyenv";
     rev = "refs/tags/v${version}";
-    hash = "sha256-dzL0wFAm+wUEWX6a8cgZstgdi9NMmyeDIUI5pPjJpZI=";
+    hash = "sha256-jYBKTrpc3KI1iW/VCw4Udk4TS8dXFGg5WgbEWZ+vWqE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/pypi-mirror/default.nix b/pkgs/development/tools/pypi-mirror/default.nix
index 9eafecca465d7..9ed9a85ad54ee 100644
--- a/pkgs/development/tools/pypi-mirror/default.nix
+++ b/pkgs/development/tools/pypi-mirror/default.nix
@@ -16,7 +16,7 @@ python3.pkgs.buildPythonApplication rec {
   pythonImportsCheck = [ "pypi_mirror" ];
 
   meta = with lib; {
-    description = "A script to create a partial PyPI mirror";
+    description = "Script to create a partial PyPI mirror";
     mainProgram = "pypi-mirror";
     homepage = "https://github.com/montag451/pypi-mirror";
     license = licenses.mit;
diff --git a/pkgs/development/tools/qtcreator/default.nix b/pkgs/development/tools/qtcreator/default.nix
index a76d4e824434f..ef3d61e60f77e 100644
--- a/pkgs/development/tools/qtcreator/default.nix
+++ b/pkgs/development/tools/qtcreator/default.nix
@@ -30,11 +30,11 @@
 
 stdenv.mkDerivation rec {
   pname = "qtcreator";
-  version = "13.0.1";
+  version = "13.0.2";
 
   src = fetchurl {
     url = "https://download.qt.io/official_releases/${pname}/${lib.versions.majorMinor version}/${version}/qt-creator-opensource-src-${version}.tar.xz";
-    hash = "sha256-gZAG0ZIfYcxnWYC8ydeVoiSM/XlhFdrUZqRFR1nasy4=";
+    hash = "sha256-wSXMVSJhnH+PwoBadQq5bLu1al/fw4i2yxWrda9+wM4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/railway/default.nix b/pkgs/development/tools/railway/default.nix
index 32be89b90d189..c9e219f82bd47 100644
--- a/pkgs/development/tools/railway/default.nix
+++ b/pkgs/development/tools/railway/default.nix
@@ -3,16 +3,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "railway";
-  version = "3.7.0";
+  version = "3.9.0";
 
   src = fetchFromGitHub {
     owner = "railwayapp";
     repo = "cli";
     rev = "v${version}";
-    hash = "sha256-a3d1FtcXSLL8peveBagTEF6EcNADNDhnLAmyCfTW4+4=";
+    hash = "sha256-eMbeU9DflGXQRqoXnTlMmCJUsCvAywjmckDqxhT+LD8=";
   };
 
-  cargoHash = "sha256-fwraQd7dOamhc3Tp3yLxASWCVhDOxj4vX7oTTOufkeY=";
+  cargoHash = "sha256-rYHvvGyD49+n7DHHd0CKCwd6w5WgWONWGxW2vXm7DL4=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/development/tools/rain/default.nix b/pkgs/development/tools/rain/default.nix
index 8132c23704585..37fa945dd95a8 100644
--- a/pkgs/development/tools/rain/default.nix
+++ b/pkgs/development/tools/rain/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "rain";
-  version = "1.8.6";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "aws-cloudformation";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-wQ767MgLSdcNm3Z1HL8VgmUk2tMFmIyACMaMhPr4lmY=";
+    sha256 = "sha256-2W/Ytdnzb0+EAPsuN6LXX0eLQMOu3qetJKYvKzgB0jM=";
   };
 
-  vendorHash = "sha256-SXgyxf8pqSZzlMoOissGLBfeXueY4aSkCcd7ahT2KMA=";
+  vendorHash = "sha256-Hpggkx707IX5ZUBuynQukCShk0pp12YEJYOF3eEN+5I=";
 
   subPackages = [ "cmd/rain" ];
 
@@ -29,7 +29,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A development workflow tool for working with AWS CloudFormation";
+    description = "Development workflow tool for working with AWS CloudFormation";
     mainProgram = "rain";
     homepage = "https://github.com/aws-cloudformation/rain";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/rbspy/default.nix b/pkgs/development/tools/rbspy/default.nix
index 2e693c7f44d37..b37f745e6808d 100644
--- a/pkgs/development/tools/rbspy/default.nix
+++ b/pkgs/development/tools/rbspy/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rbspy";
-  version = "0.20.0";
+  version = "0.22.0";
 
   src = fetchFromGitHub {
     owner = "rbspy";
     repo = "rbspy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Ut/QeckPdgaVPYNWNjo6RCmLOc2EOXfcqRIC14I/Ruk=";
+    hash = "sha256-MZ6SN/zrcIKnpm2o5w6d5Vx0YmeuS+zMfsPdZmRKewY=";
   };
 
-  cargoHash = "sha256-EJ9ij3Q10CehhrJ/nyXOuqVhiVVfHHhyqIcq8fVmzTU=";
+  cargoHash = "sha256-+Jb+btXU+fsVXWCmafY5ZaGLvFIA/wFzVNkO0O8QaVw=";
 
   # error: linker `aarch64-linux-gnu-gcc` not found
   postPatch = ''
@@ -53,7 +53,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://rbspy.github.io/";
-    description = "A Sampling CPU Profiler for Ruby";
+    description = "Sampling CPU Profiler for Ruby";
     mainProgram = "rbspy";
     changelog = "https://github.com/rbspy/rbspy/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/tools/rcodesign/default.nix b/pkgs/development/tools/rcodesign/default.nix
index e3999ebff952d..72c261cfa0ed5 100644
--- a/pkgs/development/tools/rcodesign/default.nix
+++ b/pkgs/development/tools/rcodesign/default.nix
@@ -34,7 +34,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A cross-platform CLI interface to interact with Apple code signing.";
+    description = "Cross-platform CLI interface to interact with Apple code signing";
     mainProgram = "rcodesign";
     longDescription = ''
       rcodesign provides various commands to interact with Apple signing,
diff --git a/pkgs/development/tools/react-native-debugger/default.nix b/pkgs/development/tools/react-native-debugger/default.nix
index b11e1da40b364..f0383d5c9abdc 100644
--- a/pkgs/development/tools/react-native-debugger/default.nix
+++ b/pkgs/development/tools/react-native-debugger/default.nix
@@ -110,7 +110,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/jhen0409/react-native-debugger";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
-    description = "The standalone app based on official debugger of React Native, and includes React Inspector / Redux DevTools";
+    description = "Standalone app based on official debugger of React Native, and includes React Inspector / Redux DevTools";
     mainProgram = "react-native-debugger";
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/tools/react-static/default.nix b/pkgs/development/tools/react-static/default.nix
index d4552f68761a5..ea21f3ca3e4cf 100644
--- a/pkgs/development/tools/react-static/default.nix
+++ b/pkgs/development/tools/react-static/default.nix
@@ -46,7 +46,7 @@ mkYarnPackage rec {
 
   meta = {
     changelog = "https://github.com/react-static/react-static/blob/${src.rev}/CHANGELOG.md";
-    description = "A progressive static site generator for React";
+    description = "Progressive static site generator for React";
     homepage = "https://github.com/react-static/react-static";
     license = lib.licenses.mit;
     mainProgram = "react-static";
diff --git a/pkgs/development/tools/reflex/default.nix b/pkgs/development/tools/reflex/default.nix
index 98cb6141003cb..0c536d2114217 100644
--- a/pkgs/development/tools/reflex/default.nix
+++ b/pkgs/development/tools/reflex/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "A small tool to watch a directory and rerun a command when certain files change";
+    description = "Small tool to watch a directory and rerun a command when certain files change";
     mainProgram = "reflex";
     homepage = "https://github.com/cespare/reflex";
     license = licenses.mit;
diff --git a/pkgs/development/tools/refurb/default.nix b/pkgs/development/tools/refurb/default.nix
index a51f15ce5b8e5..a5c5d0d62247f 100644
--- a/pkgs/development/tools/refurb/default.nix
+++ b/pkgs/development/tools/refurb/default.nix
@@ -55,7 +55,7 @@ python3Packages.buildPythonApplication rec {
   ];
 
   meta = with lib; {
-    description = "A tool for refurbishing and modernizing Python codebases";
+    description = "Tool for refurbishing and modernizing Python codebases";
     mainProgram = "refurb";
     homepage = "https://github.com/dosisod/refurb";
     license = with licenses; [ gpl3Only ];
diff --git a/pkgs/development/tools/reindeer/default.nix b/pkgs/development/tools/reindeer/default.nix
index e613ef36804ca..d868c5b16b874 100644
--- a/pkgs/development/tools/reindeer/default.nix
+++ b/pkgs/development/tools/reindeer/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "reindeer";
-  version = "2024.05.13.00";
+  version = "2024.06.10.00";
 
   src = fetchFromGitHub {
     owner = "facebookincubator";
     repo = "reindeer";
     rev = "refs/tags/v${version}";
-    hash = "sha256-yXHBcb4/IsT39x4J5baJ8JdgG+riJACr8DKpDdi6ARw=";
+    hash = "sha256-YAWGNF4WN8/RV3GYmxjyARNk4VzTXJEa42/gaK5B4CE=";
   };
 
-  cargoHash = "sha256-PYIeXKAuYhb6OARuefYZwP9OgPMvcoKnEnbVUztBqDY=";
+  cargoHash = "sha256-uNTDLQH6m4Dbk8tGyGnm0W5OK9OGaABZOq7weqtvaeU=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs =
diff --git a/pkgs/development/tools/relic/default.nix b/pkgs/development/tools/relic/default.nix
index 2fa4fcb13571d..3a66444f345cb 100644
--- a/pkgs/development/tools/relic/default.nix
+++ b/pkgs/development/tools/relic/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "relic";
-  version = "7.6.2";
+  version = "8.0.1";
 
   src = fetchFromGitHub {
     owner = "sassoftware";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-T76+Ftky1rSIqEoKE3RLsf6g2gguVJgYFflWmyEhdEk=";
+    sha256 = "sha256-w7KU3XntkKep0mcuOUBSG4fJW14yCamioeRH5YrULSo=";
   };
 
-  vendorHash = "sha256-5mgqIw3BV88rEF3ALD3pLhm658yUUFf44hQFSw085cU=";
+  vendorHash = "sha256-/P4W+smY01feV1HP5Tsx0PsoOyp//ik7RVWuEaiSepY=";
 
   ldflags = [
     "-s"
@@ -33,7 +33,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/sassoftware/relic";
-    description = "A service and a tool for adding digital signatures to operating system packages for Linux and Windows";
+    description = "Service and a tool for adding digital signatures to operating system packages for Linux and Windows";
     mainProgram = "relic";
     license = licenses.asl20;
     maintainers = with maintainers; [ strager ];
diff --git a/pkgs/development/tools/renderdoc/default.nix b/pkgs/development/tools/renderdoc/default.nix
index a5bc15ef3165f..843e4fe2c6758 100644
--- a/pkgs/development/tools/renderdoc/default.nix
+++ b/pkgs/development/tools/renderdoc/default.nix
@@ -32,13 +32,13 @@ let
 in
 mkDerivation rec {
   pname = "renderdoc";
-  version = "1.32";
+  version = "1.33";
 
   src = fetchFromGitHub {
     owner = "baldurk";
     repo = "renderdoc";
     rev = "v${version}";
-    sha256 = "sha256-8Q2QMANieY/Bvb50NtlZEN/Nmd6xurU6AJU0Uo8qDTs=";
+    sha256 = "sha256-BQR7ENgdblzamO5GgtLJriNiJFICsj0/iWVn1usxBjU=";
   };
 
   buildInputs = [
@@ -85,7 +85,7 @@ mkDerivation rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A single-frame graphics debugger";
+    description = "Single-frame graphics debugger";
     homepage = "https://renderdoc.org/";
     license = licenses.mit;
     longDescription = ''
diff --git a/pkgs/development/tools/replay-io/default.nix b/pkgs/development/tools/replay-io/default.nix
index aafee56e2bd0f..51daef23b5278 100644
--- a/pkgs/development/tools/replay-io/default.nix
+++ b/pkgs/development/tools/replay-io/default.nix
@@ -52,7 +52,7 @@ in rec {
     passthru.updateScript = ./update.sh;
 
     meta = with lib; {
-      description = "The Time Travel Debugger for Web Development";
+      description = "Time Travel Debugger for Web Development";
       longDescription = ''
         Replay allows you to record and replay web applications with familiar browser dev tools.
         You can access the browser DevTools at any point of the recording, adding new logger
@@ -128,7 +128,7 @@ in rec {
     '';
 
     meta = with lib; {
-      description = "The Time Travel Debugger for Web Development - Node Command Line";
+      description = "Time Travel Debugger for Web Development - Node Command Line";
       longDescription = ''
         The Replay Node Command Line allows you to record node applications and debug them
         with familiar browser dev tools.
diff --git a/pkgs/development/tools/reshape/default.nix b/pkgs/development/tools/reshape/default.nix
index d7c4701b99831..273b0577dc04f 100644
--- a/pkgs/development/tools/reshape/default.nix
+++ b/pkgs/development/tools/reshape/default.nix
@@ -35,7 +35,7 @@ rustPlatform.buildRustPackage rec {
   postgresqlTestUserOptions = "LOGIN SUPERUSER";
 
   meta = with lib; {
-    description = "An easy-to-use, zero-downtime schema migration tool for Postgres";
+    description = "Easy-to-use, zero-downtime schema migration tool for Postgres";
     mainProgram = "reshape";
     homepage = "https://github.com/fabianlindfors/reshape";
     changelog = "https://github.com/fabianlindfors/reshape/releases/tag/v${version}";
diff --git a/pkgs/development/tools/rgp/default.nix b/pkgs/development/tools/rgp/default.nix
index bfbccdf9d48f7..c62211d697ecd 100644
--- a/pkgs/development/tools/rgp/default.nix
+++ b/pkgs/development/tools/rgp/default.nix
@@ -9,25 +9,27 @@
 , glib
 , libGLU
 , libglvnd
+, libICE
+, libkrb5
+, libSM
 , libX11
 , libxcb
 , libXi
+, libxkbcommon
 , ncurses
-, qtbase
-, qtdeclarative
 , zlib
 }:
 
 let
-  buildNum = "2023-05-22-1083";
+  buildNum = "2023-12-04-1282";
 in
 stdenv.mkDerivation {
   pname = "rgp";
-  version = "1.15.1";
+  version = "2.0";
 
   src = fetchurl {
     url = "https://gpuopen.com/download/radeon-developer-tool-suite/RadeonDeveloperToolSuite-${buildNum}.tgz";
-    hash = "sha256-WSSiNiiIVw1wwt9vxgyirBDe+SPzH87LU1GlSdUhZB8=";
+    hash = "sha256-gGkINq0tmOCkZJMxtoURHikqEGXGuRAP6Y6PEOLqmI0=";
   };
 
   nativeBuildInputs = [ makeWrapper autoPatchelfHook ];
@@ -39,17 +41,17 @@ stdenv.mkDerivation {
     glib
     libGLU
     libglvnd
+    libICE
+    libkrb5
+    libSM
     libX11
     libxcb
     libXi
+    libxkbcommon
     ncurses
-    qtbase
-    qtdeclarative
     zlib
   ];
 
-  dontWrapQtApps = true;
-
   installPhase = ''
     mkdir -p $out/opt/rgp $out/bin
     cp -r . $out/opt/rgp/
@@ -59,15 +61,21 @@ stdenv.mkDerivation {
 
     for prog in RadeonDeveloperPanel RadeonDeveloperService RadeonDeveloperServiceCLI RadeonGPUAnalyzer RadeonGPUProfiler RadeonMemoryVisualizer RadeonRaytracingAnalyzer rga rtda; do
       # makeWrapper is needed so that executables are started from the opt
-      # directory, where qt.conf and other tools are
+      # directory, where qt.conf and other tools are.
+      # Unset Qt theme, it does not work if the nixos Qt version is different from the packaged one.
+      # The packaged Qt version only supports X11, so enforce that.
       makeWrapper \
         $out/opt/rgp/$prog \
-        $out/bin/$prog
+        $out/bin/$prog \
+        --unset QT_QPA_PLATFORMTHEME \
+        --unset QT_STYLE_OVERRIDE \
+        --set QT_QPA_PLATFORM xcb \
+        --prefix LD_LIBRARY_PATH : $out/opt/rgp/lib
     done
   '';
 
   meta = with lib; {
-    description = "A tool from AMD that allows for deep inspection of GPU workloads";
+    description = "Tool from AMD that allows for deep inspection of GPU workloads";
     homepage = "https://gpuopen.com/rgp/";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
diff --git a/pkgs/development/tools/rover/default.nix b/pkgs/development/tools/rover/default.nix
index a540a8c6448d2..6e69aca6dd25e 100644
--- a/pkgs/development/tools/rover/default.nix
+++ b/pkgs/development/tools/rover/default.nix
@@ -46,7 +46,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A CLI for interacting with ApolloGraphQL's developer tooling, including managing self-hosted and GraphOS graphs.";
+    description = "CLI for interacting with ApolloGraphQL's developer tooling, including managing self-hosted and GraphOS graphs";
     mainProgram = "rover";
     homepage = "https://www.apollographql.com/docs/rover";
     license = licenses.mit;
diff --git a/pkgs/development/tools/rq/default.nix b/pkgs/development/tools/rq/default.nix
index d8ec2c9db8c35..f8ed521ad2cc1 100644
--- a/pkgs/development/tools/rq/default.nix
+++ b/pkgs/development/tools/rq/default.nix
@@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
   VERGEN_SEMVER = version;
 
   meta = with lib; {
-    description = "A tool for doing record analysis and transformation";
+    description = "Tool for doing record analysis and transformation";
     mainProgram = "rq";
     homepage = "https://github.com/dflemstr/rq";
     license = with licenses; [ asl20 ];
diff --git a/pkgs/development/tools/rslint/default.nix b/pkgs/development/tools/rslint/default.nix
index 1dd66050d2d79..cac55f4bb3516 100644
--- a/pkgs/development/tools/rslint/default.nix
+++ b/pkgs/development/tools/rslint/default.nix
@@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A fast, customizable, and easy to use JavaScript and TypeScript linter";
+    description = "Fast, customizable, and easy to use JavaScript and TypeScript linter";
     homepage = "https://rslint.org";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/pkgs/development/tools/rstfmt/default.nix b/pkgs/development/tools/rstfmt/default.nix
index 25b20365a3097..f69c8c69bd5fe 100644
--- a/pkgs/development/tools/rstfmt/default.nix
+++ b/pkgs/development/tools/rstfmt/default.nix
@@ -33,7 +33,7 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   meta = with lib; {
-    description = "A formatter for reStructuredText";
+    description = "Formatter for reStructuredText";
     homepage = "https://github.com/dzhu/rstfmt";
     changelog = "https://github.com/dzhu/rstfmt/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/tools/rubyfmt/default.nix b/pkgs/development/tools/rubyfmt/default.nix
index 15457e80aad9e..272fe25a5b14e 100644
--- a/pkgs/development/tools/rubyfmt/default.nix
+++ b/pkgs/development/tools/rubyfmt/default.nix
@@ -13,6 +13,7 @@
 , libunwind
 , libxcrypt
 , libyaml
+, rust-jemalloc-sys-unprefixed
 , Foundation
 , Security
 }:
@@ -40,6 +41,7 @@ rustPlatform.buildRustPackage rec {
     zlib
     libxcrypt
     libyaml
+    rust-jemalloc-sys-unprefixed
   ] ++ lib.optionals stdenv.isDarwin [
     readline
     libiconv
@@ -70,14 +72,16 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A Ruby autoformatter";
+    description = "Ruby autoformatter";
     homepage = "https://github.com/fables-tales/rubyfmt";
     license = licenses.mit;
     maintainers = with maintainers; [ bobvanderlinden ];
-    # = note: Undefined symbols for architecture x86_64:
-    #       "_utimensat", referenced from:
-    #           _utime_internal in librubyfmt-3c969812b3b27083.rlib(file.o)
-    broken = stdenv.isDarwin && stdenv.isx86_64;
+    # https://github.com/NixOS/nixpkgs/issues/320722
+    broken = true
+      # = note: Undefined symbols for architecture x86_64:
+      #       "_utimensat", referenced from:
+      #           _utime_internal in librubyfmt-3c969812b3b27083.rlib(file.o)
+      || stdenv.isDarwin && stdenv.isx86_64;
     mainProgram = "rubyfmt";
   };
 }
diff --git a/pkgs/development/tools/ruff/Cargo.lock b/pkgs/development/tools/ruff/Cargo.lock
new file mode 100644
index 0000000000000..4f31226a36529
--- /dev/null
+++ b/pkgs/development/tools/ruff/Cargo.lock
@@ -0,0 +1,3771 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "Inflector"
+version = "0.11.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "ahash"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
+dependencies = [
+ "cfg-if",
+ "getrandom",
+ "once_cell",
+ "version_check",
+ "zerocopy",
+]
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "allocator-api2"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
+
+[[package]]
+name = "android-tzdata"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+
+[[package]]
+name = "android_system_properties"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "anes"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
+
+[[package]]
+name = "annotate-snippets"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7021ce4924a3f25f802b2cccd1af585e39ea1a363a1aa2e72afe54b67a3a7a7"
+
+[[package]]
+name = "annotate-snippets"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccaf7e9dfbb6ab22c82e473cd1a8a7bd313c19a5b7e40970f3d89ef5a5c9e81e"
+dependencies = [
+ "unicode-width",
+ "yansi-term",
+]
+
+[[package]]
+name = "anstream"
+version = "0.6.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
+
+[[package]]
+name = "anstyle-parse"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
+dependencies = [
+ "anstyle",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.86"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
+
+[[package]]
+name = "arc-swap"
+version = "1.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457"
+
+[[package]]
+name = "argfile"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7c5c8e418080ef8aa932039d12eda7b6f5043baf48f1523c166fbc32d004534"
+dependencies = [
+ "fs-err",
+ "os_str_bytes",
+]
+
+[[package]]
+name = "arrayvec"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
+
+[[package]]
+name = "autocfg"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"
+
+[[package]]
+name = "base64"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51"
+
+[[package]]
+name = "bincode"
+version = "1.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
+
+[[package]]
+name = "bstr"
+version = "1.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
+dependencies = [
+ "memchr",
+ "regex-automata 0.4.6",
+ "serde",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
+
+[[package]]
+name = "byteorder"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+
+[[package]]
+name = "cachedir"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4703f3937077db8fa35bee3c8789343c1aec2585f0146f09d658d4ccc0e8d873"
+dependencies = [
+ "tempfile",
+]
+
+[[package]]
+name = "camino"
+version = "1.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239"
+
+[[package]]
+name = "cast"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
+
+[[package]]
+name = "cc"
+version = "1.0.95"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d32a725bc159af97c3e629873bb9f88fb8cf8a4867175f76dc987815ea07c83b"
+dependencies = [
+ "jobserver",
+ "libc",
+ "once_cell",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
+[[package]]
+name = "chic"
+version = "1.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a5b5db619f3556839cb2223ae86ff3f9a09da2c5013be42bc9af08c9589bf70c"
+dependencies = [
+ "annotate-snippets 0.6.1",
+]
+
+[[package]]
+name = "chrono"
+version = "0.4.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
+dependencies = [
+ "android-tzdata",
+ "iana-time-zone",
+ "num-traits",
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "ciborium"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e"
+dependencies = [
+ "ciborium-io",
+ "ciborium-ll",
+ "serde",
+]
+
+[[package]]
+name = "ciborium-io"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757"
+
+[[package]]
+name = "ciborium-ll"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9"
+dependencies = [
+ "ciborium-io",
+ "half",
+]
+
+[[package]]
+name = "clap"
+version = "4.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9689a29b593160de5bc4aacab7b5d54fb52231de70122626c178e6a368994c7"
+dependencies = [
+ "clap_builder",
+ "clap_derive",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e5387378c84f6faa26890ebf9f0a92989f8873d4d380467bcd0d8d8620424df"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "clap_lex",
+ "strsim 0.11.1",
+ "terminal_size",
+]
+
+[[package]]
+name = "clap_complete"
+version = "4.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd79504325bf38b10165b02e89b4347300f855f273c4cb30c4a3209e6583275e"
+dependencies = [
+ "clap",
+]
+
+[[package]]
+name = "clap_complete_command"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "183495371ea78d4c9ff638bfc6497d46fed2396e4f9c50aebc1278a4a9919a3d"
+dependencies = [
+ "clap",
+ "clap_complete",
+ "clap_complete_fig",
+ "clap_complete_nushell",
+]
+
+[[package]]
+name = "clap_complete_fig"
+version = "4.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54b3e65f91fabdd23cac3d57d39d5d938b4daabd070c335c006dccb866a61110"
+dependencies = [
+ "clap",
+ "clap_complete",
+]
+
+[[package]]
+name = "clap_complete_nushell"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d02bc8b1a18ee47c4d2eec3fb5ac034dc68ebea6125b1509e9ccdffcddce66e"
+dependencies = [
+ "clap",
+ "clap_complete",
+]
+
+[[package]]
+name = "clap_derive"
+version = "4.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c780290ccf4fb26629baa7a1081e68ced113f1d3ec302fa5948f1c381ebf06c6"
+dependencies = [
+ "heck 0.5.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
+
+[[package]]
+name = "clearscreen"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2f8c93eb5f77c9050c7750e14f13ef1033a40a0aac70c6371535b6763a01438c"
+dependencies = [
+ "nix",
+ "terminfo",
+ "thiserror",
+ "which",
+ "winapi",
+]
+
+[[package]]
+name = "codspeed"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a104ac948e0188b921eb3fcbdd55dcf62e542df4c7ab7e660623f6288302089"
+dependencies = [
+ "colored",
+ "libc",
+ "serde_json",
+]
+
+[[package]]
+name = "codspeed-criterion-compat"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "722c36bdc62d9436d027256ce2627af81ac7a596dfc7d13d849d0d212448d7fe"
+dependencies = [
+ "codspeed",
+ "colored",
+ "criterion",
+]
+
+[[package]]
+name = "colorchoice"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+
+[[package]]
+name = "colored"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8"
+dependencies = [
+ "lazy_static",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "console"
+version = "0.15.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
+dependencies = [
+ "encode_unicode",
+ "lazy_static",
+ "libc",
+ "unicode-width",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "console_error_panic_hook"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "console_log"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be8aed40e4edbf4d3b4431ab260b63fdc40f5780a4766824329ea0f1eefe3c0f"
+dependencies = [
+ "log",
+ "web-sys",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
+
+[[package]]
+name = "countme"
+version = "3.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7704b5fdd17b18ae31c4c1da5a2e0305a2bf17b5249300a9ee9ed7b72114c636"
+
+[[package]]
+name = "crc32fast"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "criterion"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f"
+dependencies = [
+ "anes",
+ "cast",
+ "ciborium",
+ "clap",
+ "criterion-plot",
+ "is-terminal",
+ "itertools 0.10.5",
+ "num-traits",
+ "once_cell",
+ "oorandom",
+ "regex",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "tinytemplate",
+ "walkdir",
+]
+
+[[package]]
+name = "criterion-plot"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
+dependencies = [
+ "cast",
+ "itertools 0.10.5",
+]
+
+[[package]]
+name = "crossbeam"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8"
+dependencies = [
+ "crossbeam-channel",
+ "crossbeam-deque",
+ "crossbeam-epoch",
+ "crossbeam-queue",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
+dependencies = [
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-queue"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+
+[[package]]
+name = "crunchy"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
+
+[[package]]
+name = "ctrlc"
+version = "3.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "672465ae37dc1bc6380a6547a8883d5dd397b0f1faaad4f265726cc7042a5345"
+dependencies = [
+ "nix",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "darling"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim 0.10.0",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
+dependencies = [
+ "darling_core",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "dashmap"
+version = "5.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
+dependencies = [
+ "cfg-if",
+ "hashbrown 0.14.5",
+ "lock_api",
+ "once_cell",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "diff"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
+
+[[package]]
+name = "dirs"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
+dependencies = [
+ "dirs-sys 0.3.7",
+]
+
+[[package]]
+name = "dirs"
+version = "5.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
+dependencies = [
+ "dirs-sys 0.4.1",
+]
+
+[[package]]
+name = "dirs-sys"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
+[[package]]
+name = "dirs-sys"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
+dependencies = [
+ "libc",
+ "option-ext",
+ "redox_users",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "drop_bomb"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bda8e21c04aca2ae33ffc2fd8c23134f3cac46db123ba97bd9d3f3b8a4a85e1"
+
+[[package]]
+name = "dyn-clone"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125"
+
+[[package]]
+name = "either"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2"
+
+[[package]]
+name = "encode_unicode"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+
+[[package]]
+name = "env_filter"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea"
+dependencies = [
+ "log",
+ "regex",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.11.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "env_filter",
+ "humantime",
+ "log",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "eyre"
+version = "0.6.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec"
+dependencies = [
+ "indenter",
+ "once_cell",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984"
+
+[[package]]
+name = "fern"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9f0c14694cbd524c8720dd69b0e3179344f04ebb5f90f2e4a440c6ea3b2f1ee"
+dependencies = [
+ "log",
+]
+
+[[package]]
+name = "filetime"
+version = "0.2.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "flate2"
+version = "1.0.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
+dependencies = [
+ "crc32fast",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "fs-err"
+version = "2.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "fsevent-sys"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "getopts"
+version = "0.2.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
+dependencies = [
+ "unicode-width",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "libc",
+ "wasi",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
+name = "globset"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
+dependencies = [
+ "aho-corasick",
+ "bstr",
+ "log",
+ "regex-automata 0.4.6",
+ "regex-syntax 0.8.3",
+]
+
+[[package]]
+name = "half"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888"
+dependencies = [
+ "cfg-if",
+ "crunchy",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
+name = "hashbrown"
+version = "0.14.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
+dependencies = [
+ "ahash",
+ "allocator-api2",
+]
+
+[[package]]
+name = "hashlink"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7"
+dependencies = [
+ "hashbrown 0.14.5",
+]
+
+[[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+
+[[package]]
+name = "home"
+version = "0.5.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "windows-core",
+]
+
+[[package]]
+name = "iana-time-zone-haiku"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "ident_case"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
+[[package]]
+name = "idna"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "ignore"
+version = "0.4.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1"
+dependencies = [
+ "crossbeam-deque",
+ "globset",
+ "log",
+ "memchr",
+ "regex-automata 0.4.6",
+ "same-file",
+ "walkdir",
+ "winapi-util",
+]
+
+[[package]]
+name = "imara-diff"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e98c1d0ad70fc91b8b9654b1f33db55e59579d3b3de2bffdced0fdb810570cb8"
+dependencies = [
+ "ahash",
+ "hashbrown 0.12.3",
+]
+
+[[package]]
+name = "imperative"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b70798296d538cdaa6d652941fcc795963f8b9878b9e300c9fab7a522bd2fc0"
+dependencies = [
+ "phf",
+ "rust-stemmers",
+]
+
+[[package]]
+name = "indenter"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683"
+
+[[package]]
+name = "indexmap"
+version = "2.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.14.5",
+ "serde",
+]
+
+[[package]]
+name = "indicatif"
+version = "0.17.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3"
+dependencies = [
+ "console",
+ "instant",
+ "number_prefix",
+ "portable-atomic",
+ "unicode-width",
+ "vt100",
+]
+
+[[package]]
+name = "indoc"
+version = "2.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5"
+
+[[package]]
+name = "inotify"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff"
+dependencies = [
+ "bitflags 1.3.2",
+ "inotify-sys",
+ "libc",
+]
+
+[[package]]
+name = "inotify-sys"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "insta"
+version = "1.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "810ae6042d48e2c9e9215043563a58a80b877bc863228a74cf10c49d4620a6f5"
+dependencies = [
+ "console",
+ "globset",
+ "lazy_static",
+ "linked-hash-map",
+ "regex",
+ "serde",
+ "similar",
+ "walkdir",
+]
+
+[[package]]
+name = "insta-cmd"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffeeefa927925cced49ccb01bf3e57c9d4cd132df21e576eb9415baeab2d3de6"
+dependencies = [
+ "insta",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "is-docker"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "is-macro"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59a85abdc13717906baccb5a1e435556ce0df215f242892f721dff62bf25288f"
+dependencies = [
+ "Inflector",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "is-terminal"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "is-wsl"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5"
+dependencies = [
+ "is-docker",
+ "once_cell",
+]
+
+[[package]]
+name = "itertools"
+version = "0.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itertools"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
+
+[[package]]
+name = "jobserver"
+version = "0.1.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "jod-thread"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b23360e99b8717f20aaa4598f5a6541efbe30630039fbc7706cf954a87947ae"
+
+[[package]]
+name = "js-sys"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "kqueue"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c"
+dependencies = [
+ "kqueue-sys",
+ "libc",
+]
+
+[[package]]
+name = "kqueue-sys"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b"
+dependencies = [
+ "bitflags 1.3.2",
+ "libc",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libc"
+version = "0.2.155"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
+
+[[package]]
+name = "libcst"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10293a04a48e8b0cb2cc825a93b83090e527bffd3c897a0255ad7bc96079e920"
+dependencies = [
+ "chic",
+ "libcst_derive",
+ "memchr",
+ "paste",
+ "peg",
+ "regex",
+ "thiserror",
+]
+
+[[package]]
+name = "libcst_derive"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2ae40017ac09cd2c6a53504cb3c871c7f2b41466eac5bc66ba63f39073b467b"
+dependencies = [
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "libmimalloc-sys"
+version = "0.1.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e7bb23d733dfcc8af652a78b7bf232f0e967710d044732185e561e47c0336b6"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "libredox"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
+dependencies = [
+ "bitflags 2.5.0",
+ "libc",
+]
+
+[[package]]
+name = "linked-hash-map"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+
+[[package]]
+name = "lock_api"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
+
+[[package]]
+name = "lsp-server"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "248f65b78f6db5d8e1b1604b4098a28b43d21a8eb1deeca22b1c421b276c7095"
+dependencies = [
+ "crossbeam-channel",
+ "log",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "lsp-types"
+version = "0.95.1"
+source = "git+https://github.com/astral-sh/lsp-types.git?rev=3512a9f#3512a9f33eadc5402cfab1b8f7340824c8ca1439"
+dependencies = [
+ "bitflags 1.3.2",
+ "serde",
+ "serde_json",
+ "serde_repr",
+ "url",
+]
+
+[[package]]
+name = "matchers"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
+dependencies = [
+ "regex-automata 0.1.10",
+]
+
+[[package]]
+name = "matches"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
+
+[[package]]
+name = "matchit"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "540f1c43aed89909c0cc0cc604e3bb2f7e7a341a3728a9e6cfe760e733cd11ed"
+
+[[package]]
+name = "memchr"
+version = "2.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
+
+[[package]]
+name = "mimalloc"
+version = "0.1.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e9186d86b79b52f4a77af65604b51225e8db1d6ee7e3f41aec1e40829c71a176"
+dependencies = [
+ "libmimalloc-sys",
+]
+
+[[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
+name = "miniz_oxide"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
+dependencies = [
+ "adler",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
+dependencies = [
+ "libc",
+ "log",
+ "wasi",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "natord"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "308d96db8debc727c3fd9744aac51751243420e46edf401010908da7f8d5e57c"
+
+[[package]]
+name = "newtype-uuid"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3526cb7c660872e401beaf3297f95f548ce3b4b4bdd8121b7c0713771d7c4a6e"
+dependencies = [
+ "uuid",
+]
+
+[[package]]
+name = "nix"
+version = "0.28.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
+dependencies = [
+ "bitflags 2.5.0",
+ "cfg-if",
+ "cfg_aliases",
+ "libc",
+]
+
+[[package]]
+name = "nom"
+version = "7.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+dependencies = [
+ "memchr",
+ "minimal-lexical",
+]
+
+[[package]]
+name = "notify"
+version = "6.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
+dependencies = [
+ "bitflags 2.5.0",
+ "crossbeam-channel",
+ "filetime",
+ "fsevent-sys",
+ "inotify",
+ "kqueue",
+ "libc",
+ "log",
+ "mio",
+ "walkdir",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "nu-ansi-term"
+version = "0.46.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
+dependencies = [
+ "overload",
+ "winapi",
+]
+
+[[package]]
+name = "nu-ansi-term"
+version = "0.50.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd2800e1520bdc966782168a627aa5d1ad92e33b984bf7c7615d31280c83ff14"
+dependencies = [
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "number_prefix"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "oorandom"
+version = "11.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
+
+[[package]]
+name = "option-ext"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
+
+[[package]]
+name = "os_str_bytes"
+version = "6.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "overload"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
+[[package]]
+name = "parking_lot"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "paste"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
+
+[[package]]
+name = "path-absolutize"
+version = "3.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4af381fe79fa195b4909485d99f73a80792331df0625188e707854f0b3383f5"
+dependencies = [
+ "path-dedot",
+]
+
+[[package]]
+name = "path-dedot"
+version = "3.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07ba0ad7e047712414213ff67533e6dd477af0a4e1d14fb52343e53d30ea9397"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "path-slash"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42"
+
+[[package]]
+name = "pathdiff"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
+
+[[package]]
+name = "peg"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "400bcab7d219c38abf8bd7cc2054eb9bbbd4312d66f6a5557d572a203f646f61"
+dependencies = [
+ "peg-macros",
+ "peg-runtime",
+]
+
+[[package]]
+name = "peg-macros"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46e61cce859b76d19090f62da50a9fe92bab7c2a5f09e183763559a2ac392c90"
+dependencies = [
+ "peg-runtime",
+ "proc-macro2",
+ "quote",
+]
+
+[[package]]
+name = "peg-runtime"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "36bae92c60fa2398ce4678b98b2c4b5a7c61099961ca1fa305aec04a9ad28922"
+
+[[package]]
+name = "pep440_rs"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0c29f9c43de378b4e4e0cd7dbcce0e5cfb80443de8c05620368b2948bc936a1"
+dependencies = [
+ "once_cell",
+ "regex",
+ "serde",
+ "unicode-width",
+]
+
+[[package]]
+name = "pep440_rs"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca0a570e7ec9171250cac57614e901f62408094b54b3798bb920d3cf0d4a0e09"
+dependencies = [
+ "once_cell",
+ "serde",
+ "unicode-width",
+ "unscanny",
+]
+
+[[package]]
+name = "pep508_rs"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "910c513bea0f4f833122321c0f20e8c704e01de98692f6989c2ec21f43d88b1e"
+dependencies = [
+ "once_cell",
+ "pep440_rs 0.4.0",
+ "regex",
+ "serde",
+ "thiserror",
+ "tracing",
+ "unicode-width",
+ "url",
+]
+
+[[package]]
+name = "percent-encoding"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+
+[[package]]
+name = "phf"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
+dependencies = [
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_codegen"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
+dependencies = [
+ "phf_shared",
+ "rand",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+
+[[package]]
+name = "portable-atomic"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "pretty_assertions"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66"
+dependencies = [
+ "diff",
+ "yansi",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.85"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "pyproject-toml"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95c3dd745f99aa3c554b7bb00859f7d18c2f1d6afd749ccc86d60b61e702abd9"
+dependencies = [
+ "indexmap",
+ "pep440_rs 0.4.0",
+ "pep508_rs",
+ "serde",
+ "toml",
+]
+
+[[package]]
+name = "quick-junit"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cfc1a6a5406a114913df2df8507998c755311b55b78584bed5f6e88f6417c4d4"
+dependencies = [
+ "chrono",
+ "indexmap",
+ "newtype-uuid",
+ "quick-xml",
+ "strip-ansi-escapes",
+ "thiserror",
+ "uuid",
+]
+
+[[package]]
+name = "quick-xml"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rayon"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "red_knot"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "bitflags 2.5.0",
+ "crossbeam",
+ "ctrlc",
+ "dashmap",
+ "hashbrown 0.14.5",
+ "indexmap",
+ "insta",
+ "is-macro",
+ "notify",
+ "parking_lot",
+ "rayon",
+ "ruff_index",
+ "ruff_notebook",
+ "ruff_python_ast",
+ "ruff_python_parser",
+ "ruff_python_stdlib",
+ "ruff_text_size",
+ "rustc-hash",
+ "smol_str",
+ "tempfile",
+ "tracing",
+ "tracing-subscriber",
+ "tracing-tree",
+ "walkdir",
+ "zip",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891"
+dependencies = [
+ "getrandom",
+ "libredox",
+ "thiserror",
+]
+
+[[package]]
+name = "regex"
+version = "1.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata 0.4.6",
+ "regex-syntax 0.8.3",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+dependencies = [
+ "regex-syntax 0.6.29",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax 0.8.3",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
+
+[[package]]
+name = "ring"
+version = "0.17.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
+dependencies = [
+ "cc",
+ "cfg-if",
+ "getrandom",
+ "libc",
+ "spin",
+ "untrusted",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "ruff"
+version = "0.4.9"
+dependencies = [
+ "anyhow",
+ "argfile",
+ "bincode",
+ "bitflags 2.5.0",
+ "cachedir",
+ "chrono",
+ "clap",
+ "clap_complete_command",
+ "clearscreen",
+ "colored",
+ "filetime",
+ "ignore",
+ "insta",
+ "insta-cmd",
+ "is-macro",
+ "itertools 0.13.0",
+ "log",
+ "mimalloc",
+ "notify",
+ "path-absolutize",
+ "rayon",
+ "regex",
+ "ruff_cache",
+ "ruff_diagnostics",
+ "ruff_linter",
+ "ruff_macros",
+ "ruff_notebook",
+ "ruff_python_ast",
+ "ruff_python_formatter",
+ "ruff_server",
+ "ruff_source_file",
+ "ruff_text_size",
+ "ruff_workspace",
+ "rustc-hash",
+ "serde",
+ "serde_json",
+ "shellexpand",
+ "strum",
+ "tempfile",
+ "test-case",
+ "thiserror",
+ "tikv-jemallocator",
+ "toml",
+ "tracing",
+ "walkdir",
+ "wild",
+]
+
+[[package]]
+name = "ruff_benchmark"
+version = "0.0.0"
+dependencies = [
+ "codspeed-criterion-compat",
+ "criterion",
+ "mimalloc",
+ "once_cell",
+ "ruff_linter",
+ "ruff_python_ast",
+ "ruff_python_formatter",
+ "ruff_python_parser",
+ "ruff_python_trivia",
+ "serde",
+ "serde_json",
+ "tikv-jemallocator",
+ "ureq",
+ "url",
+]
+
+[[package]]
+name = "ruff_cache"
+version = "0.0.0"
+dependencies = [
+ "filetime",
+ "glob",
+ "globset",
+ "itertools 0.13.0",
+ "regex",
+ "ruff_macros",
+ "seahash",
+]
+
+[[package]]
+name = "ruff_db"
+version = "0.0.0"
+dependencies = [
+ "camino",
+ "countme",
+ "dashmap",
+ "filetime",
+ "ruff_python_ast",
+ "ruff_python_parser",
+ "ruff_source_file",
+ "ruff_text_size",
+ "rustc-hash",
+ "salsa-2022",
+ "tracing",
+]
+
+[[package]]
+name = "ruff_dev"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "clap",
+ "ignore",
+ "imara-diff",
+ "indicatif",
+ "indoc",
+ "itertools 0.13.0",
+ "libcst",
+ "pretty_assertions",
+ "rayon",
+ "regex",
+ "ruff",
+ "ruff_diagnostics",
+ "ruff_formatter",
+ "ruff_linter",
+ "ruff_notebook",
+ "ruff_python_ast",
+ "ruff_python_codegen",
+ "ruff_python_formatter",
+ "ruff_python_parser",
+ "ruff_python_stdlib",
+ "ruff_python_trivia",
+ "ruff_text_size",
+ "ruff_workspace",
+ "schemars",
+ "serde",
+ "serde_json",
+ "similar",
+ "strum",
+ "tempfile",
+ "toml",
+ "tracing",
+ "tracing-indicatif",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "ruff_diagnostics"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "is-macro",
+ "log",
+ "ruff_text_size",
+ "serde",
+]
+
+[[package]]
+name = "ruff_formatter"
+version = "0.0.0"
+dependencies = [
+ "drop_bomb",
+ "ruff_cache",
+ "ruff_macros",
+ "ruff_text_size",
+ "rustc-hash",
+ "schemars",
+ "serde",
+ "static_assertions",
+ "tracing",
+ "unicode-width",
+]
+
+[[package]]
+name = "ruff_index"
+version = "0.0.0"
+dependencies = [
+ "ruff_macros",
+ "static_assertions",
+]
+
+[[package]]
+name = "ruff_linter"
+version = "0.4.9"
+dependencies = [
+ "aho-corasick",
+ "annotate-snippets 0.9.2",
+ "anyhow",
+ "bitflags 2.5.0",
+ "chrono",
+ "clap",
+ "colored",
+ "fern",
+ "glob",
+ "globset",
+ "imperative",
+ "insta",
+ "is-macro",
+ "is-wsl",
+ "itertools 0.13.0",
+ "libcst",
+ "log",
+ "memchr",
+ "natord",
+ "once_cell",
+ "path-absolutize",
+ "pathdiff",
+ "pep440_rs 0.6.0",
+ "pyproject-toml",
+ "quick-junit",
+ "regex",
+ "ruff_cache",
+ "ruff_diagnostics",
+ "ruff_macros",
+ "ruff_notebook",
+ "ruff_python_ast",
+ "ruff_python_codegen",
+ "ruff_python_index",
+ "ruff_python_literal",
+ "ruff_python_parser",
+ "ruff_python_semantic",
+ "ruff_python_stdlib",
+ "ruff_python_trivia",
+ "ruff_source_file",
+ "ruff_text_size",
+ "rustc-hash",
+ "schemars",
+ "serde",
+ "serde_json",
+ "similar",
+ "smallvec",
+ "strum",
+ "strum_macros",
+ "test-case",
+ "thiserror",
+ "toml",
+ "typed-arena",
+ "unicode-width",
+ "unicode_names2",
+ "url",
+]
+
+[[package]]
+name = "ruff_macros"
+version = "0.0.0"
+dependencies = [
+ "itertools 0.13.0",
+ "proc-macro2",
+ "quote",
+ "ruff_python_trivia",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "ruff_notebook"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "itertools 0.13.0",
+ "once_cell",
+ "rand",
+ "ruff_diagnostics",
+ "ruff_source_file",
+ "ruff_text_size",
+ "serde",
+ "serde_json",
+ "serde_with",
+ "test-case",
+ "thiserror",
+ "uuid",
+]
+
+[[package]]
+name = "ruff_python_ast"
+version = "0.0.0"
+dependencies = [
+ "aho-corasick",
+ "bitflags 2.5.0",
+ "is-macro",
+ "itertools 0.13.0",
+ "once_cell",
+ "ruff_python_trivia",
+ "ruff_source_file",
+ "ruff_text_size",
+ "rustc-hash",
+ "serde",
+]
+
+[[package]]
+name = "ruff_python_ast_integration_tests"
+version = "0.0.0"
+dependencies = [
+ "insta",
+ "ruff_python_ast",
+ "ruff_python_parser",
+ "ruff_python_trivia",
+ "ruff_text_size",
+]
+
+[[package]]
+name = "ruff_python_codegen"
+version = "0.0.0"
+dependencies = [
+ "once_cell",
+ "ruff_python_ast",
+ "ruff_python_literal",
+ "ruff_python_parser",
+ "ruff_source_file",
+ "ruff_text_size",
+]
+
+[[package]]
+name = "ruff_python_formatter"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "clap",
+ "countme",
+ "insta",
+ "itertools 0.13.0",
+ "memchr",
+ "once_cell",
+ "regex",
+ "ruff_cache",
+ "ruff_formatter",
+ "ruff_macros",
+ "ruff_python_ast",
+ "ruff_python_parser",
+ "ruff_python_trivia",
+ "ruff_source_file",
+ "ruff_text_size",
+ "rustc-hash",
+ "schemars",
+ "serde",
+ "serde_json",
+ "similar",
+ "smallvec",
+ "static_assertions",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "ruff_python_index"
+version = "0.0.0"
+dependencies = [
+ "ruff_python_ast",
+ "ruff_python_parser",
+ "ruff_python_trivia",
+ "ruff_source_file",
+ "ruff_text_size",
+]
+
+[[package]]
+name = "ruff_python_literal"
+version = "0.0.0"
+dependencies = [
+ "bitflags 2.5.0",
+ "itertools 0.13.0",
+ "ruff_python_ast",
+ "unic-ucd-category",
+]
+
+[[package]]
+name = "ruff_python_parser"
+version = "0.0.0"
+dependencies = [
+ "annotate-snippets 0.9.2",
+ "anyhow",
+ "bitflags 2.5.0",
+ "bstr",
+ "insta",
+ "memchr",
+ "ruff_python_ast",
+ "ruff_python_trivia",
+ "ruff_source_file",
+ "ruff_text_size",
+ "rustc-hash",
+ "static_assertions",
+ "unicode-ident",
+ "unicode-normalization",
+ "unicode_names2",
+ "walkdir",
+]
+
+[[package]]
+name = "ruff_python_resolver"
+version = "0.0.0"
+dependencies = [
+ "env_logger",
+ "insta",
+ "log",
+ "tempfile",
+]
+
+[[package]]
+name = "ruff_python_semantic"
+version = "0.0.0"
+dependencies = [
+ "bitflags 2.5.0",
+ "is-macro",
+ "ruff_db",
+ "ruff_index",
+ "ruff_python_ast",
+ "ruff_python_parser",
+ "ruff_python_stdlib",
+ "ruff_source_file",
+ "ruff_text_size",
+ "rustc-hash",
+ "salsa-2022",
+ "tracing",
+]
+
+[[package]]
+name = "ruff_python_stdlib"
+version = "0.0.0"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "ruff_python_trivia"
+version = "0.0.0"
+dependencies = [
+ "itertools 0.13.0",
+ "ruff_source_file",
+ "ruff_text_size",
+ "unicode-ident",
+]
+
+[[package]]
+name = "ruff_python_trivia_integration_tests"
+version = "0.0.0"
+dependencies = [
+ "insta",
+ "ruff_python_parser",
+ "ruff_python_trivia",
+ "ruff_source_file",
+ "ruff_text_size",
+]
+
+[[package]]
+name = "ruff_server"
+version = "0.2.2"
+dependencies = [
+ "anyhow",
+ "crossbeam",
+ "globset",
+ "insta",
+ "jod-thread",
+ "libc",
+ "lsp-server",
+ "lsp-types",
+ "regex",
+ "ruff_diagnostics",
+ "ruff_formatter",
+ "ruff_linter",
+ "ruff_notebook",
+ "ruff_python_ast",
+ "ruff_python_codegen",
+ "ruff_python_formatter",
+ "ruff_python_index",
+ "ruff_python_parser",
+ "ruff_source_file",
+ "ruff_text_size",
+ "ruff_workspace",
+ "rustc-hash",
+ "serde",
+ "serde_json",
+ "shellexpand",
+ "tracing",
+ "tracing-subscriber",
+ "walkdir",
+]
+
+[[package]]
+name = "ruff_source_file"
+version = "0.0.0"
+dependencies = [
+ "memchr",
+ "once_cell",
+ "ruff_text_size",
+ "serde",
+]
+
+[[package]]
+name = "ruff_text_size"
+version = "0.0.0"
+dependencies = [
+ "schemars",
+ "serde",
+ "serde_test",
+ "static_assertions",
+]
+
+[[package]]
+name = "ruff_wasm"
+version = "0.0.0"
+dependencies = [
+ "console_error_panic_hook",
+ "console_log",
+ "js-sys",
+ "log",
+ "ruff_formatter",
+ "ruff_linter",
+ "ruff_python_ast",
+ "ruff_python_codegen",
+ "ruff_python_formatter",
+ "ruff_python_index",
+ "ruff_python_parser",
+ "ruff_python_trivia",
+ "ruff_source_file",
+ "ruff_text_size",
+ "ruff_workspace",
+ "serde",
+ "serde-wasm-bindgen",
+ "wasm-bindgen",
+ "wasm-bindgen-test",
+]
+
+[[package]]
+name = "ruff_workspace"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "colored",
+ "dirs 5.0.1",
+ "glob",
+ "globset",
+ "ignore",
+ "is-macro",
+ "itertools 0.13.0",
+ "log",
+ "matchit",
+ "path-absolutize",
+ "path-slash",
+ "pep440_rs 0.6.0",
+ "regex",
+ "ruff_cache",
+ "ruff_formatter",
+ "ruff_linter",
+ "ruff_macros",
+ "ruff_python_ast",
+ "ruff_python_formatter",
+ "ruff_source_file",
+ "rustc-hash",
+ "schemars",
+ "serde",
+ "shellexpand",
+ "strum",
+ "tempfile",
+ "toml",
+]
+
+[[package]]
+name = "rust-stemmers"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e46a2036019fdb888131db7a4c847a1063a7493f971ed94ea82c67eada63ca54"
+dependencies = [
+ "serde",
+ "serde_derive",
+]
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+[[package]]
+name = "rustix"
+version = "0.38.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
+dependencies = [
+ "bitflags 2.5.0",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rustls"
+version = "0.22.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432"
+dependencies = [
+ "log",
+ "ring",
+ "rustls-pki-types",
+ "rustls-webpki",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "rustls-pki-types"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "beb461507cee2c2ff151784c52762cf4d9ff6a61f3e80968600ed24fa837fa54"
+
+[[package]]
+name = "rustls-webpki"
+version = "0.102.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3bce581c0dd41bce533ce695a1437fa16a7ab5ac3ccfa99fe1a620a7885eabf"
+dependencies = [
+ "ring",
+ "rustls-pki-types",
+ "untrusted",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47"
+
+[[package]]
+name = "ryu"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
+
+[[package]]
+name = "salsa-2022"
+version = "0.1.0"
+source = "git+https://github.com/salsa-rs/salsa.git?rev=05b4e3ebdcdc47730cdd359e7e97fb2470527279#05b4e3ebdcdc47730cdd359e7e97fb2470527279"
+dependencies = [
+ "arc-swap",
+ "crossbeam",
+ "crossbeam-utils",
+ "dashmap",
+ "hashlink",
+ "indexmap",
+ "log",
+ "parking_lot",
+ "rustc-hash",
+ "salsa-2022-macros",
+ "smallvec",
+]
+
+[[package]]
+name = "salsa-2022-macros"
+version = "0.1.0"
+source = "git+https://github.com/salsa-rs/salsa.git?rev=05b4e3ebdcdc47730cdd359e7e97fb2470527279#05b4e3ebdcdc47730cdd359e7e97fb2470527279"
+dependencies = [
+ "eyre",
+ "heck 0.4.1",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "schemars"
+version = "0.8.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92"
+dependencies = [
+ "dyn-clone",
+ "schemars_derive",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "schemars_derive"
+version = "0.8.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "serde_derive_internals",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "scoped-tls"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "seahash"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
+
+[[package]]
+name = "serde"
+version = "1.0.203"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde-wasm-bindgen"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8302e169f0eddcc139c70f139d19d6467353af16f9fce27e8c30158036a1e16b"
+dependencies = [
+ "js-sys",
+ "serde",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.203"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "serde_derive_internals"
+version = "0.29.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "330f01ce65a3a5fe59a60c82f3c9a024b573b8a6e875bd233fe5f934e71d54e3"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.117"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_repr"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_test"
+version = "1.0.176"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a2f49ace1498612d14f7e0b8245519584db8299541dfe31a06374a828d620ab"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_with"
+version = "3.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ad483d2ab0149d5a5ebcd9972a3852711e0153d863bf5a5d0391d28883c4a20"
+dependencies = [
+ "serde",
+ "serde_derive",
+ "serde_with_macros",
+]
+
+[[package]]
+name = "serde_with_macros"
+version = "3.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "65569b702f41443e8bc8bbb1c5779bd0450bbe723b56198980e80ec45780bce2"
+dependencies = [
+ "darling",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "sharded-slab"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "shellexpand"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da03fa3b94cc19e3ebfc88c4229c49d8f08cdbd1228870a45f0ffdf84988e14b"
+dependencies = [
+ "dirs 5.0.1",
+]
+
+[[package]]
+name = "similar"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa42c91313f1d05da9b26f267f931cf178d4aba455b4c4622dd7355eb80c6640"
+
+[[package]]
+name = "siphasher"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+
+[[package]]
+name = "smallvec"
+version = "1.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
+
+[[package]]
+name = "smol_str"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "spin"
+version = "0.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+
+[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
+name = "strip-ansi-escapes"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55ff8ef943b384c414f54aefa961dd2bd853add74ec75e7ac74cf91dba62bcfa"
+dependencies = [
+ "vte",
+]
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "strsim"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
+
+[[package]]
+name = "strum"
+version = "0.26.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29"
+dependencies = [
+ "strum_macros",
+]
+
+[[package]]
+name = "strum_macros"
+version = "0.26.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be"
+dependencies = [
+ "heck 0.5.0",
+ "proc-macro2",
+ "quote",
+ "rustversion",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "subtle"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.66"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "rustix",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "terminal_size"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
+dependencies = [
+ "rustix",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "terminfo"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "666cd3a6681775d22b200409aad3b089c5b99fb11ecdd8a204d9d62f8148498f"
+dependencies = [
+ "dirs 4.0.0",
+ "fnv",
+ "nom",
+ "phf",
+ "phf_codegen",
+]
+
+[[package]]
+name = "test-case"
+version = "3.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb2550dd13afcd286853192af8601920d959b14c401fcece38071d53bf0768a8"
+dependencies = [
+ "test-case-macros",
+]
+
+[[package]]
+name = "test-case-core"
+version = "3.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adcb7fd841cd518e279be3d5a3eb0636409487998a4aff22f3de87b81e88384f"
+dependencies = [
+ "cfg-if",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "test-case-macros"
+version = "3.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+ "test-case-core",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+]
+
+[[package]]
+name = "tikv-jemalloc-sys"
+version = "0.5.4+5.3.0-patched"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9402443cb8fd499b6f327e40565234ff34dbda27460c5b47db0db77443dd85d1"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "tikv-jemallocator"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "965fe0c26be5c56c94e38ba547249074803efd52adfb66de62107d95aab3eaca"
+dependencies = [
+ "libc",
+ "tikv-jemalloc-sys",
+]
+
+[[package]]
+name = "tinytemplate"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
+dependencies = [
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "toml"
+version = "0.8.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38"
+dependencies = [
+ "indexmap",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "tracing"
+version = "0.1.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+dependencies = [
+ "log",
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+dependencies = [
+ "once_cell",
+ "valuable",
+]
+
+[[package]]
+name = "tracing-indicatif"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "069580424efe11d97c3fef4197fa98c004fa26672cc71ad8770d224e23b1951d"
+dependencies = [
+ "indicatif",
+ "tracing",
+ "tracing-core",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "tracing-log"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
+dependencies = [
+ "log",
+ "once_cell",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-subscriber"
+version = "0.3.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
+dependencies = [
+ "matchers",
+ "nu-ansi-term 0.46.0",
+ "once_cell",
+ "regex",
+ "sharded-slab",
+ "smallvec",
+ "thread_local",
+ "tracing",
+ "tracing-core",
+ "tracing-log",
+]
+
+[[package]]
+name = "tracing-tree"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b56c62d2c80033cb36fae448730a2f2ef99410fe3ecbffc916681a32f6807dbe"
+dependencies = [
+ "nu-ansi-term 0.50.0",
+ "tracing-core",
+ "tracing-log",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "typed-arena"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a"
+
+[[package]]
+name = "unic-char-property"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221"
+dependencies = [
+ "unic-char-range",
+]
+
+[[package]]
+name = "unic-char-range"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc"
+
+[[package]]
+name = "unic-common"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc"
+
+[[package]]
+name = "unic-ucd-category"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b8d4591f5fcfe1bd4453baaf803c40e1b1e69ff8455c47620440b46efef91c0"
+dependencies = [
+ "matches",
+ "unic-char-property",
+ "unic-char-range",
+ "unic-ucd-version",
+]
+
+[[package]]
+name = "unic-ucd-version"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4"
+dependencies = [
+ "unic-common",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-width"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
+
+[[package]]
+name = "unicode_names2"
+version = "1.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "addeebf294df7922a1164f729fb27ebbbcea99cc32b3bf08afab62757f707677"
+dependencies = [
+ "phf",
+ "unicode_names2_generator",
+]
+
+[[package]]
+name = "unicode_names2_generator"
+version = "1.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f444b8bba042fe3c1251ffaca35c603f2dc2ccc08d595c65a8c4f76f3e8426c0"
+dependencies = [
+ "getopts",
+ "log",
+ "phf_codegen",
+ "rand",
+]
+
+[[package]]
+name = "unscanny"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e9df2af067a7953e9c3831320f35c1cc0600c30d44d9f7a12b01db1cd88d6b47"
+
+[[package]]
+name = "untrusted"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
+
+[[package]]
+name = "ureq"
+version = "2.9.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d11a831e3c0b56e438a28308e7c810799e3c118417f342d30ecec080105395cd"
+dependencies = [
+ "base64",
+ "flate2",
+ "log",
+ "once_cell",
+ "rustls",
+ "rustls-pki-types",
+ "rustls-webpki",
+ "url",
+ "webpki-roots",
+]
+
+[[package]]
+name = "url"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+ "serde",
+]
+
+[[package]]
+name = "utf8parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+
+[[package]]
+name = "uuid"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
+dependencies = [
+ "getrandom",
+ "rand",
+ "uuid-macro-internal",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "uuid-macro-internal"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9881bea7cbe687e36c9ab3b778c36cd0487402e270304e8b1296d5085303c1a2"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "valuable"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "vt100"
+version = "0.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "84cd863bf0db7e392ba3bd04994be3473491b31e66340672af5d11943c6274de"
+dependencies = [
+ "itoa",
+ "log",
+ "unicode-width",
+ "vte",
+]
+
+[[package]]
+name = "vte"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f5022b5fbf9407086c180e9557be968742d839e68346af7792b8592489732197"
+dependencies = [
+ "arrayvec",
+ "utf8parse",
+ "vte_generate_state_changes",
+]
+
+[[package]]
+name = "vte_generate_state_changes"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff"
+dependencies = [
+ "proc-macro2",
+ "quote",
+]
+
+[[package]]
+name = "walkdir"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
+dependencies = [
+ "same-file",
+ "winapi-util",
+]
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
+
+[[package]]
+name = "wasm-bindgen-test"
+version = "0.3.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9bf62a58e0780af3e852044583deee40983e5886da43a271dd772379987667b"
+dependencies = [
+ "console_error_panic_hook",
+ "js-sys",
+ "scoped-tls",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-bindgen-test-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-test-macro"
+version = "0.3.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7f89739351a2e03cb94beb799d47fb2cac01759b40ec441f7de39b00cbf7ef0"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "web-sys"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "webpki-roots"
+version = "0.26.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009"
+dependencies = [
+ "rustls-pki-types",
+]
+
+[[package]]
+name = "which"
+version = "6.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8211e4f58a2b2805adfbefbc07bab82958fc91e3836339b1ab7ae32465dce0d7"
+dependencies = [
+ "either",
+ "home",
+ "rustix",
+ "winsafe",
+]
+
+[[package]]
+name = "wild"
+version = "2.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3131afc8c575281e1e80f36ed6a092aa502c08b18ed7524e86fbbb12bb410e1"
+dependencies = [
+ "glob",
+]
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
+
+[[package]]
+name = "winnow"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0c976aaaa0e1f90dbb21e9587cdaf1d9679a1cde8875c0d6bd83ab96a208352"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winsafe"
+version = "0.0.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904"
+
+[[package]]
+name = "yansi"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
+
+[[package]]
+name = "yansi-term"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe5c30ade05e61656247b2e334a031dfd0cc466fadef865bdcdea8d537951bf1"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "zerocopy"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "zeroize"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
+
+[[package]]
+name = "zip"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261"
+dependencies = [
+ "byteorder",
+ "crc32fast",
+ "crossbeam-utils",
+ "zstd",
+]
+
+[[package]]
+name = "zstd"
+version = "0.11.2+zstd.1.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4"
+dependencies = [
+ "zstd-safe",
+]
+
+[[package]]
+name = "zstd-safe"
+version = "5.0.2+zstd.1.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db"
+dependencies = [
+ "libc",
+ "zstd-sys",
+]
+
+[[package]]
+name = "zstd-sys"
+version = "2.0.10+zstd.1.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa"
+dependencies = [
+ "cc",
+ "pkg-config",
+]
diff --git a/pkgs/development/tools/ruff/default.nix b/pkgs/development/tools/ruff/default.nix
index cc5caf9951cd2..75285de4612b7 100644
--- a/pkgs/development/tools/ruff/default.nix
+++ b/pkgs/development/tools/ruff/default.nix
@@ -6,20 +6,28 @@
 , darwin
 , rust-jemalloc-sys
 , ruff-lsp
+, testers
+, ruff
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "ruff";
-  version = "0.4.4";
+  version = "0.4.9";
 
   src = fetchFromGitHub {
     owner = "astral-sh";
     repo = "ruff";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ViXKGcuDla428mI2Am67gtOxfia5VfR+ry2qyczXO/I=";
+    hash = "sha256-40ZXD52d/kZNkSZ64H/s/OiiU99IiblGfYa4KmU8xD4=";
   };
 
-  cargoHash = "sha256-VVdIWUQaquVX/8szJ30qPGtG6rFfRadeIvDONd8swro=";
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "lsp-types-0.95.1" = "sha256-8Oh299exWXVi6A39pALOISNfp8XBya8z+KT/Z7suRxQ=";
+      "salsa-2022-0.1.0" = "sha256-mt+X1hO+5ZrCAgy6N4aArnixJ9GjY/KwM0uIMUSrDsg=";
+    };
+  };
 
   nativeBuildInputs = [
     installShellFiles
@@ -36,6 +44,26 @@ rustPlatform.buildRustPackage rec {
     export NO_COLOR=1
   '';
 
+  # Failing for an unclear reason.
+  # According to the maintainers, those tests are from an experimental crate that isn't actually
+  # used by ruff currently and can thus be safely skipped.
+  checkFlags = [
+    "--skip=semantic::tests::expression_scope"
+    "--skip=semantic::tests::reachability_trivial"
+    "--skip=semantic::types::infer::tests::follow_import_to_class"
+    "--skip=semantic::types::infer::tests::if_elif"
+    "--skip=semantic::types::infer::tests::if_elif_else"
+    "--skip=semantic::types::infer::tests::ifexpr_walrus"
+    "--skip=semantic::types::infer::tests::ifexpr_walrus_2"
+    "--skip=semantic::types::infer::tests::join_paths"
+    "--skip=semantic::types::infer::tests::literal_int_arithmetic"
+    "--skip=semantic::types::infer::tests::maybe_unbound"
+    "--skip=semantic::types::infer::tests::narrow_none"
+    "--skip=semantic::types::infer::tests::resolve_base_class_by_name"
+    "--skip=semantic::types::infer::tests::resolve_module_member"
+    "--skip=semantic::types::infer::tests::resolve_visible_def"
+  ];
+
   postInstall = ''
     installShellCompletion --cmd ruff \
       --bash <($out/bin/ruff generate-shell-completion bash) \
@@ -45,14 +73,18 @@ rustPlatform.buildRustPackage rec {
 
   passthru.tests = {
     inherit ruff-lsp;
+    version = testers.testVersion { package = ruff; };
   };
 
-  meta = with lib; {
-    description = "An extremely fast Python linter";
+  meta = {
+    description = "Extremely fast Python linter";
     homepage = "https://github.com/astral-sh/ruff";
     changelog = "https://github.com/astral-sh/ruff/releases/tag/v${version}";
-    license = licenses.mit;
+    license = lib.licenses.mit;
     mainProgram = "ruff";
-    maintainers = with maintainers; [ figsoda ];
+    maintainers = with lib.maintainers; [
+      figsoda
+      GaetanLepage
+    ];
   };
 }
diff --git a/pkgs/development/tools/rund/default.nix b/pkgs/development/tools/rund/default.nix
index e02e58fb893c1..ef0701d9343ed 100644
--- a/pkgs/development/tools/rund/default.nix
+++ b/pkgs/development/tools/rund/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A compiler-wrapper that runs and caches D programs";
+    description = "Compiler-wrapper that runs and caches D programs";
     mainProgram = "rund";
     homepage = "https://github.com/dragon-lang/rund";
     license = lib.licenses.boost;
diff --git a/pkgs/development/tools/rust/bootimage/default.nix b/pkgs/development/tools/rust/bootimage/default.nix
index 9da7aeaa8cc34..0a9fa12365458 100644
--- a/pkgs/development/tools/rust/bootimage/default.nix
+++ b/pkgs/development/tools/rust/bootimage/default.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "03jximwqgjq7359c5mxbyfja2d04y57h34f87aby8jy0lz99jy2x";
 
   meta = with lib; {
-    description = "Creates a bootable disk image from a Rust OS kernel.";
+    description = "Creates a bootable disk image from a Rust OS kernel";
     homepage = "https://github.com/rust-osdev/bootimage";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ dbeckwith ];
diff --git a/pkgs/development/tools/rust/cargo-about/default.nix b/pkgs/development/tools/rust/cargo-about/default.nix
index 8ac62bdae1117..67a7220031a6f 100644
--- a/pkgs/development/tools/rust/cargo-about/default.nix
+++ b/pkgs/development/tools/rust/cargo-about/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-about";
-  version = "0.6.1";
+  version = "0.6.2";
 
   src = fetchFromGitHub {
     owner = "EmbarkStudios";
     repo = "cargo-about";
     rev = version;
-    sha256 = "sha256-+FtTD2vr1+BxSXHlFqpXmzP54vZ8CP1vJ0BQVFp/Zx4=";
+    sha256 = "sha256-W2qE4QqwVgC/J6NQkUcC501Dcc1qHnAhTIDvlr2El2k=";
   };
 
-  cargoHash = "sha256-5Kh0GpyAq6jeMuPO3x+lC46zkVcxoMVMjQXZCBZRlk8=";
+  cargoHash = "sha256-9Cw9FKbpGNsoWTqJtsm+dplvvPkZghj2uQ1M/WMw/LM=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/development/tools/rust/cargo-all-features/default.nix b/pkgs/development/tools/rust/cargo-all-features/default.nix
index b4ba6b52afad9..bb00a230a85e8 100644
--- a/pkgs/development/tools/rust/cargo-all-features/default.nix
+++ b/pkgs/development/tools/rust/cargo-all-features/default.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-d69jj2FGptjndJG1tq3Fb/8F3kuFXN5otsYGhXYhhZg=";
 
   meta = with lib; {
-    description = "A Cargo subcommand to build and test all feature flag combinations";
+    description = "Cargo subcommand to build and test all feature flag combinations";
     homepage = "https://github.com/frewsxcv/cargo-all-features";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ figsoda matthiasbeyer ];
diff --git a/pkgs/development/tools/rust/cargo-benchcmp/default.nix b/pkgs/development/tools/rust/cargo-benchcmp/default.nix
index c12d496e1315b..4ab9cb65d6f5c 100644
--- a/pkgs/development/tools/rust/cargo-benchcmp/default.nix
+++ b/pkgs/development/tools/rust/cargo-benchcmp/default.nix
@@ -32,7 +32,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A small utility to compare Rust micro-benchmarks";
+    description = "Small utility to compare Rust micro-benchmarks";
     mainProgram = "cargo-benchcmp";
     homepage = "https://github.com/BurntSushi/cargo-benchcmp";
     license = with licenses; [ mit unlicense ];
diff --git a/pkgs/development/tools/rust/cargo-binstall/default.nix b/pkgs/development/tools/rust/cargo-binstall/default.nix
index 50d3c984cf21d..ed32060f7f218 100644
--- a/pkgs/development/tools/rust/cargo-binstall/default.nix
+++ b/pkgs/development/tools/rust/cargo-binstall/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-binstall";
-  version = "1.6.7";
+  version = "1.6.9";
 
   src = fetchFromGitHub {
     owner = "cargo-bins";
     repo = "cargo-binstall";
     rev = "v${version}";
-    hash = "sha256-BMWcLEoqX8uHXazitOuzon5Sef3xMQ0b6Lk0IiVGFP8=";
+    hash = "sha256-gByMCbh/RswZFrGY176PcZbBeHRsD0mv8Om4xQ/1wTo=";
   };
 
-  cargoHash = "sha256-nAp2wySQ8u9lgixE9M6ri/Mk4BUBBe3CLHnqUv+mdxk=";
+  cargoHash = "sha256-GPDDKFM2dxsjQcrNK7y2lydnqGnFBUMcDJZ420jmzlo=";
 
   nativeBuildInputs = [
     pkg-config
@@ -55,7 +55,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A tool for installing rust binaries as an alternative to building from source";
+    description = "Tool for installing rust binaries as an alternative to building from source";
     mainProgram = "cargo-binstall";
     homepage = "https://github.com/cargo-bins/cargo-binstall";
     changelog = "https://github.com/cargo-bins/cargo-binstall/releases/tag/v${version}";
diff --git a/pkgs/development/tools/rust/cargo-c/default.nix b/pkgs/development/tools/rust/cargo-c/default.nix
index b370f1299277e..8dbd282555d6b 100644
--- a/pkgs/development/tools/rust/cargo-c/default.nix
+++ b/pkgs/development/tools/rust/cargo-c/default.nix
@@ -46,7 +46,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A cargo subcommand to build and install C-ABI compatible dynamic and static libraries";
+    description = "Cargo subcommand to build and install C-ABI compatible dynamic and static libraries";
     longDescription = ''
       Cargo C-ABI helpers. A cargo applet that produces and installs a correct
       pkg-config file, a static library and a dynamic library, and a C header
diff --git a/pkgs/development/tools/rust/cargo-careful/default.nix b/pkgs/development/tools/rust/cargo-careful/default.nix
index f0184d66b99c8..0b43bb3ec44ec 100644
--- a/pkgs/development/tools/rust/cargo-careful/default.nix
+++ b/pkgs/development/tools/rust/cargo-careful/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-syj3Hf+DxPoJgNbZQERHaKAZwMYuCCmuEGb8ylQt1Xo=";
 
   meta = with lib; {
-    description = "A tool to execute Rust code carefully, with extra checking along the way";
+    description = "Tool to execute Rust code carefully, with extra checking along the way";
     mainProgram = "cargo-careful";
     homepage = "https://github.com/RalfJung/cargo-careful";
     license = with licenses; [ asl20 mit ];
diff --git a/pkgs/development/tools/rust/cargo-chef/default.nix b/pkgs/development/tools/rust/cargo-chef/default.nix
index 27cc6e1042d78..9269dfa0e6ab7 100644
--- a/pkgs/development/tools/rust/cargo-chef/default.nix
+++ b/pkgs/development/tools/rust/cargo-chef/default.nix
@@ -2,17 +2,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-chef";
-  version = "0.1.66";
+  version = "0.1.67";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-I4lD3+WFaW0kPmw5lPybDCRkG/at6VQH6l7pmngwoLU=";
+    sha256 = "sha256-5bvA3lss+F2Wx0SSx5KRCmpERdIXUkUhFP+zRn8aZH0=";
   };
 
-  cargoHash = "sha256-tSr4m10zS+/JynGmNY0+aoiYDATYwuyfr1VGKmIkHg4=";
+  cargoHash = "sha256-EIpi1k5GffGCk+fzHSW32T+ZLkRfswnEGZdER95TyBk=";
 
   meta = with lib; {
-    description = "A cargo-subcommand to speed up Rust Docker builds using Docker layer caching";
+    description = "Cargo-subcommand to speed up Rust Docker builds using Docker layer caching";
     mainProgram = "cargo-chef";
     homepage = "https://github.com/LukeMathWalker/cargo-chef";
     license = licenses.mit;
diff --git a/pkgs/development/tools/rust/cargo-clone/default.nix b/pkgs/development/tools/rust/cargo-clone/default.nix
index 8ce7e006dce76..21d408ac6b013 100644
--- a/pkgs/development/tools/rust/cargo-clone/default.nix
+++ b/pkgs/development/tools/rust/cargo-clone/default.nix
@@ -34,7 +34,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A cargo subcommand to fetch the source code of a Rust crate";
+    description = "Cargo subcommand to fetch the source code of a Rust crate";
     mainProgram = "cargo-clone";
     homepage = "https://github.com/janlikar/cargo-clone";
     changelog = "https://github.com/janlikar/cargo-clone/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/development/tools/rust/cargo-component/default.nix b/pkgs/development/tools/rust/cargo-component/default.nix
index eb216bbab11d6..bda1fc6d9ce70 100644
--- a/pkgs/development/tools/rust/cargo-component/default.nix
+++ b/pkgs/development/tools/rust/cargo-component/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-component";
-  version = "0.12.0";
+  version = "0.13.2";
 
   src = fetchFromGitHub {
     owner = "bytecodealliance";
     repo = "cargo-component";
     rev = "v${version}";
-    hash = "sha256-SYmKxcU2CxvIFLWoNWBjhJBxIfhZqO2LTyv8WUbuyAY=";
+    hash = "sha256-b5PXmycnDGuKFRObz9fRQOCQHlepnPRjMGtSzAX6etg=";
   };
 
-  cargoHash = "sha256-ZbvZBdJ14fQxdVYvPQjCkT5o0Ip9AJyhATGLRAwFfp4=";
+  cargoHash = "sha256-OcWkYSVpbRXXoZfQeglPLWol2IJazYCVAUpurFn37ZE=";
 
   nativeBuildInputs = [
     pkg-config
@@ -34,7 +34,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Cargo subcommand for creating WebAssembly components based on the component model proposal";
+    description = "Cargo subcommand for creating WebAssembly components based on the component model proposal";
     homepage = "https://github.com/bytecodealliance/cargo-component";
     changelog = "https://github.com/bytecodealliance/cargo-component/releases/tag/${src.rev}";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/rust/cargo-cranky/default.nix b/pkgs/development/tools/rust/cargo-cranky/default.nix
index 78acf1006508f..cb83bf72b528b 100644
--- a/pkgs/development/tools/rust/cargo-cranky/default.nix
+++ b/pkgs/development/tools/rust/cargo-cranky/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-jmyrtaJTdZlffC7i5k7z9BEsHAs1rPTCs2/jgq1Jt6Y=";
 
   meta = with lib; {
-    description = "An easy to configure wrapper for Rust's clippy";
+    description = "Easy to configure wrapper for Rust's clippy";
     mainProgram = "cargo-cranky";
     homepage = "https://github.com/ericseppanen/cargo-cranky";
     changelog = "https://github.com/ericseppanen/cargo-cranky/releases/tag/${src.rev}";
diff --git a/pkgs/development/tools/rust/cargo-crev/default.nix b/pkgs/development/tools/rust/cargo-crev/default.nix
index 1d67dce2811df..0a2b797610d48 100644
--- a/pkgs/development/tools/rust/cargo-crev/default.nix
+++ b/pkgs/development/tools/rust/cargo-crev/default.nix
@@ -38,7 +38,7 @@ rustPlatform.buildRustPackage rec {
   nativeCheckInputs = [ git ];
 
   meta = with lib; {
-    description = "A cryptographically verifiable code review system for the cargo (Rust) package manager";
+    description = "Cryptographically verifiable code review system for the cargo (Rust) package manager";
     mainProgram = "cargo-crev";
     homepage = "https://github.com/crev-dev/cargo-crev";
     license = with licenses; [ asl20 mit mpl20 ];
diff --git a/pkgs/development/tools/rust/cargo-cyclonedx/default.nix b/pkgs/development/tools/rust/cargo-cyclonedx/default.nix
index 79f0b5d2eb3db..c9773cbc43cb0 100644
--- a/pkgs/development/tools/rust/cargo-cyclonedx/default.nix
+++ b/pkgs/development/tools/rust/cargo-cyclonedx/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-cyclonedx";
-  version = "0.5.0";
+  version = "0.5.3";
 
   src = fetchFromGitHub {
     owner = "CycloneDX";
     repo = "cyclonedx-rust-cargo";
     rev = "${pname}-${version}";
-    hash = "sha256-791FZR9dmwVjORrkpm8el+2VMEEKJG+yKKqq+R1I9U4=";
+    hash = "sha256-Hq5yEYikov/+/Vgf4Bn0b23+K6yqefrJOoEbC0YdnFY=";
   };
 
-  cargoHash = "sha256-Cbi1cnUy6HKkgBXVjK0xItx2pzuYVob/Qz4o8eT6Fws=";
+  cargoHash = "sha256-Q6Qanjfu5rIIZw4KeZo0kHJML5aq+12Lkn7CTscK8yE=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/development/tools/rust/cargo-deb/default.nix b/pkgs/development/tools/rust/cargo-deb/default.nix
index 81f49e6b40d6b..676cc0624a501 100644
--- a/pkgs/development/tools/rust/cargo-deb/default.nix
+++ b/pkgs/development/tools/rust/cargo-deb/default.nix
@@ -34,7 +34,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A cargo subcommand that generates Debian packages from information in Cargo.toml";
+    description = "Cargo subcommand that generates Debian packages from information in Cargo.toml";
     mainProgram = "cargo-deb";
     homepage = "https://github.com/kornelski/cargo-deb";
     license = licenses.mit;
diff --git a/pkgs/development/tools/rust/cargo-deny/default.nix b/pkgs/development/tools/rust/cargo-deny/default.nix
index a8ea1cc9c72aa..7a88815b2c1d6 100644
--- a/pkgs/development/tools/rust/cargo-deny/default.nix
+++ b/pkgs/development/tools/rust/cargo-deny/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-deny";
-  version = "0.14.23";
+  version = "0.14.24";
 
   src = fetchFromGitHub {
     owner = "EmbarkStudios";
     repo = "cargo-deny";
     rev = version;
-    hash = "sha256-TTBsxb+rC/0SL6pCZkf9HPwzExXb3UIT08cBQ4y855o=";
+    hash = "sha256-pCgOT1czLTlL3u4mqhQroal9Z5FHxnBR0YLx3wqp7ps=";
   };
 
-  cargoHash = "sha256-i1p/k+SGwdxp9RGXfxnJVq+E1pek7RSA50fMgVRJzCQ=";
+  cargoHash = "sha256-LCdP9i+LogdPVVCI4UIhqGRy6H3GTMpEwX2QOlXbo8Q=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/development/tools/rust/cargo-depgraph/default.nix b/pkgs/development/tools/rust/cargo-depgraph/default.nix
index 1918501d1d92d..c4379974a6abb 100644
--- a/pkgs/development/tools/rust/cargo-depgraph/default.nix
+++ b/pkgs/development/tools/rust/cargo-depgraph/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-depgraph";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromSourcehut {
     owner = "~jplatte";
     repo = "cargo-depgraph";
     rev = "v${version}";
-    hash = "sha256-q9a7O6lSsQz9nJ82uG1oNyNyNebzXEanVWh3xkypqqM=";
+    hash = "sha256-yvcKRESX2W1oLmQvkl07iG8+I74qDKsaS3amM4pZU8s=";
   };
 
-  cargoHash = "sha256-gmSNYxyizaVvz38R0nTdUp9nP/f4hxgHO9hVV3RFP6U=";
+  cargoHash = "sha256-OJOw0V4u/bK4vw3bU2wKVeOqP205ehfZMKJ6qIpYDLU=";
 
   meta = with lib; {
     description = "Create dependency graphs for cargo projects using `cargo metadata` and graphviz";
diff --git a/pkgs/development/tools/rust/cargo-dephell/default.nix b/pkgs/development/tools/rust/cargo-dephell/default.nix
index fd1bd84836f6c..1302fd581bbec 100644
--- a/pkgs/development/tools/rust/cargo-dephell/default.nix
+++ b/pkgs/development/tools/rust/cargo-dephell/default.nix
@@ -48,7 +48,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A tool to analyze the third-party dependencies imported by a rust crate or rust workspace";
+    description = "Tool to analyze the third-party dependencies imported by a rust crate or rust workspace";
     mainProgram = "cargo-dephell";
     homepage = "https://github.com/mimoo/cargo-dephell";
     license = with licenses; [ mit /* or */ asl20 ];
diff --git a/pkgs/development/tools/rust/cargo-dist/default.nix b/pkgs/development/tools/rust/cargo-dist/default.nix
index 04aae84d0d860..7969c8b15a5f1 100644
--- a/pkgs/development/tools/rust/cargo-dist/default.nix
+++ b/pkgs/development/tools/rust/cargo-dist/default.nix
@@ -14,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-dist";
-  version = "0.13.2";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "axodotdev";
     repo = "cargo-dist";
     rev = "v${version}";
-    hash = "sha256-sD3Y/FFfUgMtvBoSP0BBhS5aCZy+TkyO8S28q8Hoc5I=";
+    hash = "sha256-p8acrP09/m3pdw24j8KUoZnqWMt2KwhVro9kNIABngw=";
   };
 
-  cargoHash = "sha256-efVhaL1yUEpOgNZ4Bog1OB37lT1yQHJVE9M938jnGeE=";
+  cargoHash = "sha256-ecGtY6IpAiFjcN/E43STsEjbHXqSC4Vo6z3mH01rTI4=";
 
   nativeBuildInputs = [
     pkg-config
@@ -54,7 +54,7 @@ rustPlatform.buildRustPackage rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A tool for building final distributable artifacts and uploading them to an archive";
+    description = "Tool for building final distributable artifacts and uploading them to an archive";
     mainProgram = "cargo-dist";
     homepage = "https://github.com/axodotdev/cargo-dist";
     changelog = "https://github.com/axodotdev/cargo-dist/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/development/tools/rust/cargo-duplicates/default.nix b/pkgs/development/tools/rust/cargo-duplicates/default.nix
index a22d5239f4f58..f9417651cf6aa 100644
--- a/pkgs/development/tools/rust/cargo-duplicates/default.nix
+++ b/pkgs/development/tools/rust/cargo-duplicates/default.nix
@@ -38,7 +38,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A cargo subcommand for displaying when different versions of a same dependency are pulled in";
+    description = "Cargo subcommand for displaying when different versions of a same dependency are pulled in";
     mainProgram = "cargo-duplicates";
     homepage = "https://github.com/Keruspe/cargo-duplicates";
     license = licenses.mit;
diff --git a/pkgs/development/tools/rust/cargo-edit/default.nix b/pkgs/development/tools/rust/cargo-edit/default.nix
index 26d8bc1aa1723..6b911251501bd 100644
--- a/pkgs/development/tools/rust/cargo-edit/default.nix
+++ b/pkgs/development/tools/rust/cargo-edit/default.nix
@@ -35,7 +35,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false; # integration tests depend on changing cargo config
 
   meta = with lib; {
-    description = "A utility for managing cargo dependencies from the command line";
+    description = "Utility for managing cargo dependencies from the command line";
     homepage = "https://github.com/killercup/cargo-edit";
     changelog = "https://github.com/killercup/cargo-edit/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/pkgs/development/tools/rust/cargo-generate/default.nix b/pkgs/development/tools/rust/cargo-generate/default.nix
index a63d82ddf2951..a9b2bfb4c383f 100644
--- a/pkgs/development/tools/rust/cargo-generate/default.nix
+++ b/pkgs/development/tools/rust/cargo-generate/default.nix
@@ -53,7 +53,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A tool to generate a new Rust project by leveraging a pre-existing git repository as a template";
+    description = "Tool to generate a new Rust project by leveraging a pre-existing git repository as a template";
     mainProgram = "cargo-generate";
     homepage = "https://github.com/cargo-generate/cargo-generate";
     changelog = "https://github.com/cargo-generate/cargo-generate/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/development/tools/rust/cargo-guppy/default.nix b/pkgs/development/tools/rust/cargo-guppy/default.nix
index 488c4284b1756..b373b584d9da2 100644
--- a/pkgs/development/tools/rust/cargo-guppy/default.nix
+++ b/pkgs/development/tools/rust/cargo-guppy/default.nix
@@ -30,7 +30,7 @@ rustPlatform.buildRustPackage rec {
   cargoTestFlags = [ "-p" "cargo-guppy" ];
 
   meta = with lib; {
-    description = "A command-line frontend for guppy";
+    description = "Command-line frontend for guppy";
     mainProgram = "cargo-guppy";
     homepage = "https://github.com/guppy-rs/guppy/tree/main/cargo-guppy";
     license = with licenses; [ mit /* or */ asl20 ];
diff --git a/pkgs/development/tools/rust/cargo-hakari/default.nix b/pkgs/development/tools/rust/cargo-hakari/default.nix
index 6cf225e8de605..6ae5123da7cfa 100644
--- a/pkgs/development/tools/rust/cargo-hakari/default.nix
+++ b/pkgs/development/tools/rust/cargo-hakari/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoTestFlags = [ "-p" "cargo-hakari" ];
 
   meta = with lib; {
-    description = "Manage workspace-hack packages to speed up builds in large workspaces.";
+    description = "Manage workspace-hack packages to speed up builds in large workspaces";
     mainProgram = "cargo-hakari";
     longDescription = ''
       cargo hakari is a command-line application to manage workspace-hack crates.
diff --git a/pkgs/development/tools/rust/cargo-insta/default.nix b/pkgs/development/tools/rust/cargo-insta/default.nix
index 50fc9abaac4d3..7ff2bb737987b 100644
--- a/pkgs/development/tools/rust/cargo-insta/default.nix
+++ b/pkgs/development/tools/rust/cargo-insta/default.nix
@@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-mEtmZ+wFo1WI1IMNYsVqSVScFDLdiXBbghH7c0l/3NQ=";
 
   meta = with lib; {
-    description = "A Cargo subcommand for snapshot testing";
+    description = "Cargo subcommand for snapshot testing";
     mainProgram = "cargo-insta";
     homepage = "https://github.com/mitsuhiko/insta";
     changelog = "https://github.com/mitsuhiko/insta/blob/${version}/CHANGELOG.md";
diff --git a/pkgs/development/tools/rust/cargo-lambda/default.nix b/pkgs/development/tools/rust/cargo-lambda/default.nix
index 00892e673b65d..de65c284eb979 100644
--- a/pkgs/development/tools/rust/cargo-lambda/default.nix
+++ b/pkgs/development/tools/rust/cargo-lambda/default.nix
@@ -65,7 +65,7 @@ rustPlatform.buildRustPackage rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A Cargo subcommand to help you work with AWS Lambda";
+    description = "Cargo subcommand to help you work with AWS Lambda";
     mainProgram = "cargo-lambda";
     homepage = "https://cargo-lambda.info";
     license = licenses.mit;
diff --git a/pkgs/development/tools/rust/cargo-leptos/default.nix b/pkgs/development/tools/rust/cargo-leptos/default.nix
index 89139182c6b86..da48ad231e34b 100644
--- a/pkgs/development/tools/rust/cargo-leptos/default.nix
+++ b/pkgs/development/tools/rust/cargo-leptos/default.nix
@@ -37,7 +37,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false; # Check phase tries to query crates.io
 
   meta = with lib; {
-    description = "A build tool for the Leptos web framework";
+    description = "Build tool for the Leptos web framework";
     mainProgram = "cargo-leptos";
     homepage = "https://github.com/leptos-rs/cargo-leptos";
     changelog = "https://github.com/leptos-rs/cargo-leptos/releases/tag/v${version}";
diff --git a/pkgs/development/tools/rust/cargo-llvm-cov/default.nix b/pkgs/development/tools/rust/cargo-llvm-cov/default.nix
index da2ed090392e1..5bced7f36e9cf 100644
--- a/pkgs/development/tools/rust/cargo-llvm-cov/default.nix
+++ b/pkgs/development/tools/rust/cargo-llvm-cov/default.nix
@@ -26,7 +26,7 @@
 
 let
   pname = "cargo-llvm-cov";
-  version = "0.6.9";
+  version = "0.6.10";
 
   owner = "taiki-e";
   homepage = "https://github.com/${owner}/${pname}";
@@ -37,7 +37,7 @@ let
   cargoLock = fetchurl {
     name = "Cargo.lock";
     url = "https://crates.io/api/v1/crates/${pname}/${version}/download";
-    sha256 = "sha256-r4C7z2/z4OVEf+IhFe061E7FzSx0VzADmg56Lb+DO/g=";
+    sha256 = "sha256-mlmvM/7FQkhSjLtueEJqZU3D86lL8Kf1EFXiY1+b/Oo=";
     downloadToTemp = true;
     postFetch = ''
       tar xzf $downloadedFile ${pname}-${version}/Cargo.lock
@@ -55,7 +55,7 @@ rustPlatform.buildRustPackage {
     inherit owner;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-fZrYmsulKOvgW/WtsYL7r4Cby+m9ShgXozxj1ZQ5ZAY=";
+    sha256 = "sha256-yF4i1V50TpR3pEqHQfAK4VTUW+GmT+XU6WVTWMzCUwo=";
   };
 
   # Upstream doesn't include the lockfile so we need to add it back
@@ -63,7 +63,7 @@ rustPlatform.buildRustPackage {
     cp ${cargoLock} source/Cargo.lock
   '';
 
-  cargoSha256 = "sha256-pfNb5P3IG1fQdhiQE3FGW8s4Rt2YyLxTejuzs3nqZUU=";
+  cargoSha256 = "sha256-6VQEu38g5a8bfbs8P/nOa3Zg2bSYnEOClzoMF95LAHI=";
 
   # `cargo-llvm-cov` reads these environment variables to find these binaries,
   # which are needed to run the tests
diff --git a/pkgs/development/tools/rust/cargo-local-registry/default.nix b/pkgs/development/tools/rust/cargo-local-registry/default.nix
index 0b2f31d05a805..7c2d2f3004b34 100644
--- a/pkgs/development/tools/rust/cargo-local-registry/default.nix
+++ b/pkgs/development/tools/rust/cargo-local-registry/default.nix
@@ -42,13 +42,8 @@ rustPlatform.buildRustPackage rec {
   # tests require internet access
   doCheck = false;
 
-  # Cargo.lock is outdated
-  preConfigure = ''
-    cargo metadata --offline
-  '';
-
   meta = with lib; {
-    description = "A cargo subcommand to manage local registries";
+    description = "Cargo subcommand to manage local registries";
     mainProgram = "cargo-local-registry";
     homepage = "https://github.com/dhovart/cargo-local-registry";
     changelog = "https://github.com/dhovart/cargo-local-registry/releases/tag/${src.rev}";
diff --git a/pkgs/development/tools/rust/cargo-machete/default.nix b/pkgs/development/tools/rust/cargo-machete/default.nix
index a94272f958085..aadd97f30a951 100644
--- a/pkgs/development/tools/rust/cargo-machete/default.nix
+++ b/pkgs/development/tools/rust/cargo-machete/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Cargo tool that detects unused dependencies in Rust projects";
+    description = "Cargo tool that detects unused dependencies in Rust projects";
     mainProgram = "cargo-machete";
     homepage = "https://github.com/bnjbvr/cargo-machete";
     changelog = "https://github.com/bnjbvr/cargo-machete/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/development/tools/rust/cargo-mobile2/default.nix b/pkgs/development/tools/rust/cargo-mobile2/default.nix
index 1aecd6d91973b..9b5d535ec50a5 100644
--- a/pkgs/development/tools/rust/cargo-mobile2/default.nix
+++ b/pkgs/development/tools/rust/cargo-mobile2/default.nix
@@ -12,7 +12,7 @@
 let
   inherit (darwin.apple_sdk.frameworks) CoreServices;
   pname = "cargo-mobile2";
-  version = "0.11.1";
+  version = "0.12.2";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -20,14 +20,14 @@ rustPlatform.buildRustPackage {
     owner = "tauri-apps";
     repo = pname;
     rev = "cargo-mobile2-v${version}";
-    hash = "sha256-HLDuWEKLij1hTKxf3lrAb4d2DIHzzkj4kuiZXgQwH4Q=";
+    hash = "sha256-AEAE6UDWf1Kupy20MDOOCovsIJJlFAILBW6qpToVQVM=";
   };
 
   # Manually specify the sourceRoot since this crate depends on other crates in the workspace. Relevant info at
   # https://discourse.nixos.org/t/difficulty-using-buildrustpackage-with-a-src-containing-multiple-cargo-workspaces/10202
   # sourceRoot = "${src.name}/tooling/cli";
 
-  cargoHash = "sha256-jCsP5xhNkqnwz8HocUzzf17omU8WDNrL/WVj/lP+51w=";
+  cargoHash = "sha256-2bQ8QGVQoWj3mVm2y85ynrzL6IJ+BEatVLQy/huAEic=";
 
   preBuild = ''
     mkdir -p $out/share/
diff --git a/pkgs/development/tools/rust/cargo-modules/default.nix b/pkgs/development/tools/rust/cargo-modules/default.nix
index 6fa78cef0b4d0..2745b9c586b9b 100644
--- a/pkgs/development/tools/rust/cargo-modules/default.nix
+++ b/pkgs/development/tools/rust/cargo-modules/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-modules";
-  version = "0.15.5";
+  version = "0.16.3";
 
   src = fetchFromGitHub {
     owner = "regexident";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-+jHanZ2/BIgNLUpMlibfUAVfA6QTPlavRci2YD1w3zE=";
+    hash = "sha256-6JFQuFISIKmR+dm2YYb4iwBjR61WrcLpfwcC67a96t4=";
   };
 
-  cargoHash = "sha256-umaKVs1fFiUKz2HIJuB+7skSwRQbG12dl9eD+et42go=";
+  cargoHash = "sha256-TiSiOMBkmH4Y5VORXZ59fl9+EwOjfWV2n/r3LTmSFxQ=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.CoreServices
@@ -41,7 +41,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A cargo plugin for showing a tree-like overview of a crate's modules";
+    description = "Cargo plugin for showing a tree-like overview of a crate's modules";
     mainProgram = "cargo-modules";
     homepage = "https://github.com/regexident/cargo-modules";
     changelog = "https://github.com/regexident/cargo-modules/blob/${version}/CHANGELOG.md";
diff --git a/pkgs/development/tools/rust/cargo-mutants/default.nix b/pkgs/development/tools/rust/cargo-mutants/default.nix
index de2166f959224..e712518ece890 100644
--- a/pkgs/development/tools/rust/cargo-mutants/default.nix
+++ b/pkgs/development/tools/rust/cargo-mutants/default.nix
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A mutation testing tool for Rust";
+    description = "Mutation testing tool for Rust";
     mainProgram = "cargo-mutants";
     homepage = "https://github.com/sourcefrog/cargo-mutants";
     changelog = "https://github.com/sourcefrog/cargo-mutants/releases/tag/${src.rev}";
diff --git a/pkgs/development/tools/rust/cargo-ndk/default.nix b/pkgs/development/tools/rust/cargo-ndk/default.nix
index 1c80788aebbd5..b1068127483bb 100644
--- a/pkgs/development/tools/rust/cargo-ndk/default.nix
+++ b/pkgs/development/tools/rust/cargo-ndk/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-ndk";
-  version = "3.5.5";
+  version = "3.5.6";
 
   src = fetchFromGitHub {
     owner = "bbqsrc";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-2nL+NE4ntZbm2DdPZEoJLDeMAxaPXgrSSIvwAThlLlA=";
+    sha256 = "sha256-piNKtmDssDeB+DznLl0uufT5BFiVCMmYGuRmBUr5QWQ=";
   };
 
-  cargoHash = "sha256-Fa1pkHdjngJx7FwfvSQ76D61NPYC88jXqYnjWx6K2f8=";
+  cargoHash = "sha256-sIKan8LnGv4sGVrGOUOKSD3R4fNRu5yBFATm5MWDTSU=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     CoreGraphics
diff --git a/pkgs/development/tools/rust/cargo-nextest/default.nix b/pkgs/development/tools/rust/cargo-nextest/default.nix
index de0af79902080..00515c2252af6 100644
--- a/pkgs/development/tools/rust/cargo-nextest/default.nix
+++ b/pkgs/development/tools/rust/cargo-nextest/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-nextest";
-  version = "0.9.70";
+  version = "0.9.72";
 
   src = fetchFromGitHub {
     owner = "nextest-rs";
     repo = "nextest";
     rev = "cargo-nextest-${version}";
-    hash = "sha256-YTeKcdUszI/0RCAq6Gcakl3hfUSUo3CfVCMod/IPYhw=";
+    hash = "sha256-FQM1SVzGgmu6HHijP9kKEJPhhzSLs/jo36b4qnx0lb4=";
   };
 
-  cargoHash = "sha256-FH9ODkK84bPPYyHP4kKcHKWpJ3FV1NC8S/NQFvV63Gw=";
+  cargoHash = "sha256-2ttG9lPIkLRzDPcDNZjROOIIDhcEHfBvs/DTniZtQUY=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.SystemConfiguration
diff --git a/pkgs/development/tools/rust/cargo-outdated/default.nix b/pkgs/development/tools/rust/cargo-outdated/default.nix
index 1df9d8d916de5..26027a51ab80e 100644
--- a/pkgs/development/tools/rust/cargo-outdated/default.nix
+++ b/pkgs/development/tools/rust/cargo-outdated/default.nix
@@ -33,7 +33,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A cargo subcommand for displaying when Rust dependencies are out of date";
+    description = "Cargo subcommand for displaying when Rust dependencies are out of date";
     mainProgram = "cargo-outdated";
     homepage = "https://github.com/kbknapp/cargo-outdated";
     changelog = "https://github.com/kbknapp/cargo-outdated/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/development/tools/rust/cargo-pgrx/buildPgrxExtension.nix b/pkgs/development/tools/rust/cargo-pgrx/buildPgrxExtension.nix
index 6aae84d3463bc..f75bab1439363 100644
--- a/pkgs/development/tools/rust/cargo-pgrx/buildPgrxExtension.nix
+++ b/pkgs/development/tools/rust/cargo-pgrx/buildPgrxExtension.nix
@@ -119,7 +119,7 @@ let
 
       NIX_PGLIBDIR="${postgresql}/lib" \
       PGRX_BUILD_FLAGS="--frozen -j $NIX_BUILD_CORES ${builtins.concatStringsSep " " cargoBuildFlags}" \
-      cargo-pgrx pgrx package \
+      cargo pgrx package \
         --pg-config ${postgresql}/bin/pg_config \
         ${maybeDebugFlag} \
         --features "${builtins.concatStringsSep " " buildFeatures}" \
diff --git a/pkgs/development/tools/rust/cargo-public-api/default.nix b/pkgs/development/tools/rust/cargo-public-api/default.nix
index 11e5ba601c3e3..9881b7050e0f8 100644
--- a/pkgs/development/tools/rust/cargo-public-api/default.nix
+++ b/pkgs/development/tools/rust/cargo-public-api/default.nix
@@ -10,14 +10,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-public-api";
-  version = "0.34.1";
+  version = "0.35.0";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-fNQ4FfOaS38KGhI/hCRLdtYmb0FXkoXyJsbcT+1K6Ow=";
+    hash = "sha256-NRL+7v1K2Y6lm1yuNZODkMaf2Xeib8KjOvPbn+nvbA4=";
   };
 
-  cargoHash = "sha256-DwhaVn6nuy2KbXaRcIUQN6iS85ONwAbCWX+vxfa0F7U=";
+  cargoHash = "sha256-/IpSIqZfBliiWzDXoSJMK/B8wDw1eyJ/gecHwd90c+A=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/development/tools/rust/cargo-readme/default.nix b/pkgs/development/tools/rust/cargo-readme/default.nix
index 2b5fb7abc69b5..aa4a6cf5ea37e 100644
--- a/pkgs/development/tools/rust/cargo-readme/default.nix
+++ b/pkgs/development/tools/rust/cargo-readme/default.nix
@@ -1,4 +1,4 @@
-{ lib, rustPlatform, fetchFromGitHub, fetchpatch }:
+{ lib, rustPlatform, fetchFromGitHub }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-readme";
diff --git a/pkgs/development/tools/rust/cargo-risczero/default.nix b/pkgs/development/tools/rust/cargo-risczero/default.nix
index 51969c9fef967..ead0103d3f659 100644
--- a/pkgs/development/tools/rust/cargo-risczero/default.nix
+++ b/pkgs/development/tools/rust/cargo-risczero/default.nix
@@ -32,7 +32,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "Cargo extension to help create, manage, and test RISC Zero projects.";
+    description = "Cargo extension to help create, manage, and test RISC Zero projects";
     mainProgram = "cargo-risczero";
     homepage = "https://risczero.com";
     license = with licenses; [ asl20 ];
diff --git a/pkgs/development/tools/rust/cargo-semver-checks/default.nix b/pkgs/development/tools/rust/cargo-semver-checks/default.nix
index 2c3269681d7e4..82fa17b3405a6 100644
--- a/pkgs/development/tools/rust/cargo-semver-checks/default.nix
+++ b/pkgs/development/tools/rust/cargo-semver-checks/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-semver-checks";
-  version = "0.31.0";
+  version = "0.32.0";
 
   src = fetchFromGitHub {
     owner = "obi1kenobi";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-iumHMVDlgwjjQsn0aoSJUPoOKmLztD47b7he2nJhins=";
+    hash = "sha256-2B9i9S6OY+7DEorZoXfQQx9cEU2Y8FoyIyytJ8C7dXU=";
   };
 
-  cargoHash = "sha256-/mrVrbPHi4lo2iu/IWwDYIjqWZYNkm/4lWpRMLKBNpA=";
+  cargoHash = "sha256-S03fgnefhU6c5e9YtFMBart+nfBQj7f4O+lSPe8fgqg=";
 
   nativeBuildInputs = [
     cmake
@@ -51,7 +51,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A tool to scan your Rust crate for semver violations";
+    description = "Tool to scan your Rust crate for semver violations";
     mainProgram = "cargo-semver-checks";
     homepage = "https://github.com/obi1kenobi/cargo-semver-checks";
     changelog = "https://github.com/obi1kenobi/cargo-semver-checks/releases/tag/v${version}";
diff --git a/pkgs/development/tools/rust/cargo-show-asm/default.nix b/pkgs/development/tools/rust/cargo-show-asm/default.nix
index 077b7767886c5..24b64c0cdf6f7 100644
--- a/pkgs/development/tools/rust/cargo-show-asm/default.nix
+++ b/pkgs/development/tools/rust/cargo-show-asm/default.nix
@@ -9,14 +9,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-show-asm";
-  version = "0.2.35";
+  version = "0.2.36";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-23G4Re10ksoJSWRmzRjTpSGRLk3LLnkuzTjPOgf4oOk=";
+    hash = "sha256-Ptv8txt7YXPh1QvFwsoRbBQgeLBGn6iVqst1GHU+JJw=";
   };
 
-  cargoHash = "sha256-OcGmlGA0relDY1Tn/edE1pX+vOhKFXJ8YeCdQ5b7ZnQ=";
+  cargoHash = "sha256-GkhFbRhEJ+7ikqkNPydKx3Ty8KRsGts5UnwA8bl8Po8=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/development/tools/rust/cargo-shuttle/Cargo.lock b/pkgs/development/tools/rust/cargo-shuttle/Cargo.lock
index 944f8e8112df2..c892c4047178c 100644
--- a/pkgs/development/tools/rust/cargo-shuttle/Cargo.lock
+++ b/pkgs/development/tools/rust/cargo-shuttle/Cargo.lock
@@ -18,13 +18,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
+name = "aes"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0"
+dependencies = [
+ "cfg-if",
+ "cipher",
+ "cpufeatures",
+]
+
+[[package]]
 name = "ahash"
-version = "0.8.6"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
 dependencies = [
  "cfg-if",
- "getrandom 0.2.11",
+ "getrandom 0.2.14",
  "once_cell",
  "version_check",
  "zerocopy",
@@ -32,24 +43,18 @@ dependencies = [
 
 [[package]]
 name = "aho-corasick"
-version = "1.1.2"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "allocator-api2"
-version = "0.2.16"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
-
-[[package]]
-name = "ambient-authority"
-version = "0.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9d4ee0d472d1cd2e28c97dfa124b3d8d992e10eb0a035f33f5d12e3a177ba3b"
+checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"
 
 [[package]]
 name = "android-tzdata"
@@ -68,9 +73,9 @@ dependencies = [
 
 [[package]]
 name = "anstream"
-version = "0.6.4"
+version = "0.6.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -82,9 +87,9 @@ dependencies = [
 
 [[package]]
 name = "anstyle"
-version = "1.0.4"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
 
 [[package]]
 name = "anstyle-parse"
@@ -97,9 +102,9 @@ dependencies = [
 
 [[package]]
 name = "anstyle-query"
-version = "1.0.1"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3a318f1f38d2418400f8209655bfd825785afd25aa30bb7ba6cc792e4596748"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
 dependencies = [
  "windows-sys 0.52.0",
 ]
@@ -116,21 +121,15 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.75"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
-
-[[package]]
-name = "arbitrary"
-version = "1.3.2"
+version = "1.0.82"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110"
+checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519"
 
 [[package]]
 name = "arc-swap"
-version = "1.6.0"
+version = "1.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
+checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457"
 
 [[package]]
 name = "arrayvec"
@@ -189,9 +188,9 @@ dependencies = [
 
 [[package]]
 name = "assert_cmd"
-version = "2.0.12"
+version = "2.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88903cb14723e4d4003335bb7f8a14f27691649105346a0f0957466c096adfe6"
+checksum = "ed72493ac66d5804837f480ab3766c72bdfab91a65e565fc54fa9e42db0073a8"
 dependencies = [
  "anstyle",
  "bstr",
@@ -219,7 +218,7 @@ version = "0.2.3"
 source = "git+https://github.com/shuttle-hq/posthog-rs?branch=main#4a8299fde3080bff550620c0853be9b83fee8f44"
 dependencies = [
  "posthog-core",
- "reqwest",
+ "reqwest 0.11.27",
  "serde",
  "serde_json",
  "thiserror",
@@ -245,7 +244,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
@@ -256,8 +255,8 @@ checksum = "e1b39347f478f57a40cbaf82cbaebb4a350acc757cda30fc7ff88707a11d1d81"
 dependencies = [
  "futures-util",
  "http-types",
- "hyper 0.14.27",
- "hyper-rustls",
+ "hyper 0.14.28",
+ "hyper-rustls 0.24.2",
  "serde",
  "serde_json",
  "serde_path_to_error",
@@ -270,13 +269,13 @@ dependencies = [
 
 [[package]]
 name = "async-trait"
-version = "0.1.74"
+version = "0.1.80"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
+checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
@@ -289,20 +288,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "atomic-write-file"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "edcdbedc2236483ab103a53415653d6b4442ea6141baf1ffa85df29635e88436"
-dependencies = [
- "nix 0.27.1",
- "rand 0.8.5",
-]
-
-[[package]]
 name = "autocfg"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"
 
 [[package]]
 name = "aws-config"
@@ -322,10 +311,10 @@ dependencies = [
  "aws-smithy-types",
  "aws-types",
  "bytes",
- "fastrand 2.0.1",
+ "fastrand 2.0.2",
  "hex",
- "http 0.2.11",
- "hyper 0.14.27",
+ "http 0.2.12",
+ "hyper 0.14.28",
  "ring 0.16.20",
  "time",
  "tokio",
@@ -342,7 +331,7 @@ checksum = "70a66ac8ef5fa9cf01c2d999f39d16812e90ec1467bd382cbbb74ba23ea86201"
 dependencies = [
  "aws-smithy-async",
  "aws-smithy-types",
- "fastrand 2.0.1",
+ "fastrand 2.0.2",
  "tokio",
  "tracing",
  "zeroize",
@@ -359,8 +348,8 @@ dependencies = [
  "aws-smithy-types",
  "aws-types",
  "bytes",
- "http 0.2.11",
- "http-body 0.4.5",
+ "http 0.2.12",
+ "http-body 0.4.6",
  "lazy_static",
  "percent-encoding",
  "pin-project-lite",
@@ -381,8 +370,8 @@ dependencies = [
  "aws-smithy-runtime-api",
  "aws-smithy-types",
  "aws-types",
- "fastrand 2.0.1",
- "http 0.2.11",
+ "fastrand 2.0.2",
+ "http 0.2.12",
  "percent-encoding",
  "tracing",
  "uuid",
@@ -407,7 +396,7 @@ dependencies = [
  "aws-smithy-types",
  "aws-smithy-xml",
  "aws-types",
- "http 0.2.11",
+ "http 0.2.12",
  "regex",
  "tokio-stream",
  "tracing",
@@ -431,7 +420,7 @@ dependencies = [
  "aws-smithy-types",
  "aws-types",
  "bytes",
- "http 0.2.11",
+ "http 0.2.12",
  "regex",
  "tokio-stream",
  "tracing",
@@ -456,7 +445,7 @@ dependencies = [
  "aws-smithy-types",
  "aws-smithy-xml",
  "aws-types",
- "http 0.2.11",
+ "http 0.2.12",
  "regex",
  "tracing",
 ]
@@ -471,7 +460,7 @@ dependencies = [
  "form_urlencoded",
  "hex",
  "hmac",
- "http 0.2.11",
+ "http 0.2.12",
  "once_cell",
  "percent-encoding",
  "regex",
@@ -503,14 +492,14 @@ dependencies = [
  "aws-smithy-http-tower",
  "aws-smithy-types",
  "bytes",
- "fastrand 2.0.1",
- "http 0.2.11",
- "http-body 0.4.5",
- "hyper 0.14.27",
- "hyper-rustls",
+ "fastrand 2.0.2",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "hyper 0.14.28",
+ "hyper-rustls 0.24.2",
  "lazy_static",
  "pin-project-lite",
- "rustls",
+ "rustls 0.21.11",
  "tokio",
  "tower",
  "tracing",
@@ -526,9 +515,9 @@ dependencies = [
  "bytes",
  "bytes-utils",
  "futures-core",
- "http 0.2.11",
- "http-body 0.4.5",
- "hyper 0.14.27",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "hyper 0.14.28",
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
@@ -547,8 +536,8 @@ dependencies = [
  "aws-smithy-http",
  "aws-smithy-types",
  "bytes",
- "http 0.2.11",
- "http-body 0.4.5",
+ "http 0.2.12",
+ "http-body 0.4.6",
  "pin-project-lite",
  "tower",
  "tracing",
@@ -585,9 +574,9 @@ dependencies = [
  "aws-smithy-runtime-api",
  "aws-smithy-types",
  "bytes",
- "fastrand 2.0.1",
- "http 0.2.11",
- "http-body 0.4.5",
+ "fastrand 2.0.2",
+ "http 0.2.12",
+ "http-body 0.4.6",
  "once_cell",
  "pin-project-lite",
  "pin-utils",
@@ -605,7 +594,7 @@ dependencies = [
  "aws-smithy-http",
  "aws-smithy-types",
  "bytes",
- "http 0.2.11",
+ "http 0.2.12",
  "tokio",
  "tracing",
 ]
@@ -644,7 +633,7 @@ dependencies = [
  "aws-smithy-client",
  "aws-smithy-http",
  "aws-smithy-types",
- "http 0.2.11",
+ "http 0.2.12",
  "rustc_version 0.4.0",
  "tracing",
 ]
@@ -657,14 +646,14 @@ checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf"
 dependencies = [
  "async-trait",
  "axum-core",
- "base64 0.21.5",
+ "base64 0.21.7",
  "bitflags 1.3.2",
  "bytes",
  "futures-util",
  "headers",
- "http 0.2.11",
- "http-body 0.4.5",
- "hyper 0.14.27",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "hyper 0.14.28",
  "itoa",
  "matchit",
  "memchr",
@@ -694,8 +683,8 @@ dependencies = [
  "async-trait",
  "bytes",
  "futures-util",
- "http 0.2.11",
- "http-body 0.4.5",
+ "http 0.2.12",
+ "http-body 0.4.6",
  "mime",
  "rustversion",
  "tower-layer",
@@ -712,8 +701,8 @@ dependencies = [
  "axum-core",
  "bytes",
  "futures-util",
- "http 0.2.11",
- "http-body 0.4.5",
+ "http 0.2.12",
+ "http-body 0.4.6",
  "mime",
  "pin-project-lite",
  "serde",
@@ -732,22 +721,22 @@ dependencies = [
  "arc-swap",
  "bytes",
  "futures-util",
- "http 0.2.11",
- "http-body 0.4.5",
- "hyper 0.14.27",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "hyper 0.14.28",
  "pin-project-lite",
- "rustls",
- "rustls-pemfile",
+ "rustls 0.21.11",
+ "rustls-pemfile 1.0.4",
  "tokio",
- "tokio-rustls",
+ "tokio-rustls 0.24.1",
  "tower-service",
 ]
 
 [[package]]
 name = "backtrace"
-version = "0.3.69"
+version = "0.3.71"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d"
 dependencies = [
  "addr2line",
  "cc",
@@ -766,9 +755,15 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
 
 [[package]]
 name = "base64"
-version = "0.21.5"
+version = "0.21.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+
+[[package]]
+name = "base64"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51"
 
 [[package]]
 name = "base64-simd"
@@ -787,24 +782,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
 
 [[package]]
-name = "basic-toml"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f2139706359229bfa8f19142ac1155b4b80beafb7a60471ac5dd109d4a19778"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "bincode"
-version = "1.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
-dependencies = [
- "serde",
-]
-
-[[package]]
 name = "bit-set"
 version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -827,9 +804,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
 dependencies = [
  "serde",
 ]
@@ -861,14 +838,14 @@ version = "0.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f03db470b3c0213c47e978da93200259a1eb4dae2e5512cba9955e2b540a6fc6"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "bollard-stubs",
  "bytes",
  "futures-core",
  "futures-util",
  "hex",
- "http 0.2.11",
- "hyper 0.14.27",
+ "http 0.2.12",
+ "hyper 0.14.28",
  "hyperlocal",
  "log",
  "pin-project-lite",
@@ -892,20 +869,20 @@ checksum = "b58071e8fd9ec1e930efd28e3a90c1251015872a2ce49f81f36421b86466932e"
 dependencies = [
  "serde",
  "serde_repr",
- "serde_with 3.4.0",
+ "serde_with 3.7.0",
 ]
 
 [[package]]
 name = "bson"
-version = "2.7.0"
+version = "2.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58da0ae1e701ea752cc46c1bb9f39d5ecefc7395c3ecd526261a566d4f16e0c2"
+checksum = "4d43b38e074cc0de2957f10947e376a1d88b9c4dbab340b590800cc1b2e066b2"
 dependencies = [
  "ahash",
  "base64 0.13.1",
  "bitvec",
  "hex",
- "indexmap 1.9.3",
+ "indexmap 2.2.6",
  "js-sys",
  "once_cell",
  "rand 0.8.5",
@@ -918,29 +895,20 @@ dependencies = [
 
 [[package]]
 name = "bstr"
-version = "1.8.0"
+version = "1.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c"
+checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
 dependencies = [
  "memchr",
- "regex-automata 0.4.3",
+ "regex-automata 0.4.6",
  "serde",
 ]
 
 [[package]]
-name = "btoi"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9dd6407f73a9b8b6162d8a2ef999fe6afd7cc15902ebf42c5cd296addf17e0ad"
-dependencies = [
- "num-traits",
-]
-
-[[package]]
 name = "bumpalo"
-version = "3.14.0"
+version = "3.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
 
 [[package]]
 name = "byteorder"
@@ -950,9 +918,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
-version = "1.5.0"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
 
 [[package]]
 name = "bytes-utils"
@@ -965,126 +933,60 @@ dependencies = [
 ]
 
 [[package]]
-name = "camino"
-version = "1.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "cap-fs-ext"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b779b2d0a001c125b4584ad586268fb4b92d957bff8d26d7fe0dd78283faa814"
-dependencies = [
- "cap-primitives",
- "cap-std",
- "io-lifetimes",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "cap-net-ext"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ffc30dee200c20b4dcb80572226f42658e1d9c4b668656d7cc59c33d50e396e"
-dependencies = [
- "cap-primitives",
- "cap-std",
- "rustix",
- "smallvec",
-]
-
-[[package]]
-name = "cap-primitives"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2bf30c373a3bee22c292b1b6a7a26736a38376840f1af3d2d806455edf8c3899"
-dependencies = [
- "ambient-authority",
- "fs-set-times",
- "io-extras",
- "io-lifetimes",
- "ipnet",
- "maybe-owned",
- "rustix",
- "windows-sys 0.48.0",
- "winx",
-]
-
-[[package]]
-name = "cap-rand"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "577de6cff7c2a47d6b13efe5dd28bf116bd7f8f7db164ea95b7cc2640711f522"
-dependencies = [
- "ambient-authority",
- "rand 0.8.5",
-]
-
-[[package]]
-name = "cap-std"
-version = "2.0.0"
+name = "bzip2"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84bade423fa6403efeebeafe568fdb230e8c590a275fba2ba978dd112efcf6e9"
+checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8"
 dependencies = [
- "cap-primitives",
- "io-extras",
- "io-lifetimes",
- "rustix",
+ "bzip2-sys",
+ "libc",
 ]
 
 [[package]]
-name = "cap-time-ext"
-version = "2.0.0"
+name = "bzip2-sys"
+version = "0.1.11+1.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8f52b3c8f4abfe3252fd0a071f3004aaa3b18936ec97bdbd8763ce03aff6247"
+checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc"
 dependencies = [
- "cap-primitives",
- "once_cell",
- "rustix",
- "winx",
+ "cc",
+ "libc",
+ "pkg-config",
 ]
 
 [[package]]
-name = "cargo-lock"
-version = "9.0.0"
+name = "camino"
+version = "1.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e11c675378efb449ed3ce8de78d75d0d80542fc98487c26aba28eb3b82feac72"
+checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c"
 dependencies = [
- "semver 1.0.20",
  "serde",
- "toml 0.7.8",
- "url",
 ]
 
 [[package]]
 name = "cargo-platform"
-version = "0.1.5"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e34637b3140142bdf929fb439e8aa4ebad7651ebf7b1080b3930aa16ac1459ff"
+checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "cargo-shuttle"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "anyhow",
  "assert_cmd",
  "async-trait",
  "bollard",
- "cargo_metadata 0.18.1",
+ "cargo_metadata",
  "chrono",
  "clap",
  "clap_complete",
  "clap_mangen",
  "crossterm 0.27.0",
  "dialoguer",
- "dirs 5.0.1",
+ "dirs",
  "dunce",
  "flate2",
  "futures",
@@ -1099,25 +1001,22 @@ dependencies = [
  "percent-encoding",
  "portpicker",
  "regex",
- "reqwest",
- "reqwest-middleware",
- "reqwest-retry",
+ "reqwest 0.11.27",
  "rexpect",
  "rmp-serde",
- "semver 1.0.20",
+ "semver 1.0.22",
  "serde",
  "serde_json",
  "shuttle-common",
  "shuttle-common-tests",
  "shuttle-proto",
  "shuttle-service",
- "strum 0.25.0",
+ "strum 0.26.2",
  "tar",
  "tempfile",
  "tokio",
  "tokio-tungstenite",
- "tokiotest-httpserver",
- "toml 0.8.8",
+ "toml",
  "toml_edit 0.20.7",
  "tonic 0.10.2",
  "tracing",
@@ -1126,20 +1025,7 @@ dependencies = [
  "uuid",
  "walkdir",
  "webbrowser",
-]
-
-[[package]]
-name = "cargo_metadata"
-version = "0.15.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a"
-dependencies = [
- "camino",
- "cargo-platform",
- "semver 1.0.20",
- "serde",
- "serde_json",
- "thiserror",
+ "zip",
 ]
 
 [[package]]
@@ -1150,7 +1036,7 @@ checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037"
 dependencies = [
  "camino",
  "cargo-platform",
- "semver 1.0.20",
+ "semver 1.0.22",
  "serde",
  "serde_json",
  "thiserror",
@@ -1158,9 +1044,9 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.83"
+version = "1.0.94"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+checksum = "17f6e324229dc011159fcc089755d1e2e216a90d43a7dea6853ca740b84f35e7"
 dependencies = [
  "jobserver",
  "libc",
@@ -1173,16 +1059,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
 
 [[package]]
-name = "cfg-expr"
-version = "0.15.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3"
-dependencies = [
- "smallvec",
- "target-lexicon",
-]
-
-[[package]]
 name = "cfg-if"
 version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1190,9 +1066,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "chrono"
-version = "0.4.31"
+version = "0.4.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
+checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
@@ -1200,14 +1076,24 @@ dependencies = [
  "num-traits",
  "serde",
  "wasm-bindgen",
- "windows-targets 0.48.5",
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "cipher"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
+dependencies = [
+ "crypto-common",
+ "inout",
 ]
 
 [[package]]
 name = "clap"
-version = "4.4.11"
+version = "4.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2"
+checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -1215,48 +1101,48 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.4.11"
+version = "4.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
 dependencies = [
  "anstream",
  "anstyle",
  "clap_lex",
- "strsim",
+ "strsim 0.11.1",
 ]
 
 [[package]]
 name = "clap_complete"
-version = "4.4.4"
+version = "4.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bffe91f06a11b4b9420f62103854e90867812cd5d01557f853c5ee8e791b12ae"
+checksum = "dd79504325bf38b10165b02e89b4347300f855f273c4cb30c4a3209e6583275e"
 dependencies = [
  "clap",
 ]
 
 [[package]]
 name = "clap_derive"
-version = "4.4.7"
+version = "4.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
+checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64"
 dependencies = [
- "heck",
+ "heck 0.5.0",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.6.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
 
 [[package]]
 name = "clap_mangen"
-version = "0.2.15"
+version = "0.2.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3be86020147691e1d2ef58f75346a3d4d94807bfc473e377d52f09f0f7d77f7"
+checksum = "e1dd95b5ebb5c1c54581dd6346f3ed6a79a3eef95dd372fc2ac13d535535300e"
 dependencies = [
  "clap",
  "roff",
@@ -1276,20 +1162,19 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 
 [[package]]
 name = "colored"
-version = "2.0.4"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6"
+checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8"
 dependencies = [
- "is-terminal",
  "lazy_static",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "combine"
-version = "4.6.6"
+version = "4.6.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4"
+checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd"
 dependencies = [
  "bytes",
  "memchr",
@@ -1324,22 +1209,28 @@ dependencies = [
 
 [[package]]
 name = "console"
-version = "0.15.7"
+version = "0.15.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8"
+checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
 dependencies = [
  "encode_unicode",
  "lazy_static",
  "libc",
  "unicode-width",
- "windows-sys 0.45.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "const-oid"
-version = "0.9.5"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
+
+[[package]]
+name = "constant_time_eq"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f"
+checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
 
 [[package]]
 name = "convert_case"
@@ -1364,137 +1255,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
-name = "cpp_demangle"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eeaa953eaad386a53111e47172c2fedba671e5684c8dd601a5f474f4f118710f"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
 name = "cpufeatures"
-version = "0.2.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "cranelift-bforest"
-version = "0.100.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "751cbf89e513f283c0641eb7f95dc72fda5051dd95ca203d1dc45e26bc89dba8"
-dependencies = [
- "cranelift-entity",
-]
-
-[[package]]
-name = "cranelift-codegen"
-version = "0.100.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "210730edc05121e915201cc36595e1f00062094669fa07ac362340e3627b3dc5"
-dependencies = [
- "bumpalo",
- "cranelift-bforest",
- "cranelift-codegen-meta",
- "cranelift-codegen-shared",
- "cranelift-control",
- "cranelift-entity",
- "cranelift-isle",
- "gimli",
- "hashbrown 0.14.3",
- "log",
- "regalloc2",
- "smallvec",
- "target-lexicon",
-]
-
-[[package]]
-name = "cranelift-codegen-meta"
-version = "0.100.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5dc7fdf210c53db047f3eaf49b3a89efee0cc3d9a2ce0c0f0236933273d0c53"
-dependencies = [
- "cranelift-codegen-shared",
-]
-
-[[package]]
-name = "cranelift-codegen-shared"
-version = "0.100.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f46875cc87d963119d78fe5c19852757dc6eea3cb9622c0df69c26b242cd44b4"
-
-[[package]]
-name = "cranelift-control"
-version = "0.100.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "375dca8f58d8a801a85e11730c1529c5c4a9c3593dfb12118391ac437b037155"
-dependencies = [
- "arbitrary",
-]
-
-[[package]]
-name = "cranelift-entity"
-version = "0.100.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc619b86fe3c72f43fc417c9fd67a04ec0c98296e5940922d9fd9e6eedf72521"
-dependencies = [
- "serde",
- "serde_derive",
-]
-
-[[package]]
-name = "cranelift-frontend"
-version = "0.100.1"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7eb607fd19ae264da18f9f2532e7302b826f7fbf77bf88365fc075f2e3419436"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
- "cranelift-codegen",
- "log",
- "smallvec",
- "target-lexicon",
-]
-
-[[package]]
-name = "cranelift-isle"
-version = "0.100.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9fe806a6470dddfdf79e878af6a96afb1235a09fe3e21f9e0c2f18d402820432"
-
-[[package]]
-name = "cranelift-native"
-version = "0.100.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fac7f1722660b10af1f7229c0048f716bfd8bd344549b0e06e3eb6417ec3fe5b"
-dependencies = [
- "cranelift-codegen",
  "libc",
- "target-lexicon",
-]
-
-[[package]]
-name = "cranelift-wasm"
-version = "0.100.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1b65810be56b619c3c55debade92798d999f34bf0670370c578afab5d905f06"
-dependencies = [
- "cranelift-codegen",
- "cranelift-entity",
- "cranelift-frontend",
- "itertools 0.10.5",
- "log",
- "smallvec",
- "wasmparser 0.112.0",
- "wasmtime-types",
 ]
 
 [[package]]
 name = "crc"
-version = "3.0.1"
+version = "3.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe"
+checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636"
 dependencies = [
  "crc-catalog",
 ]
@@ -1507,65 +1280,55 @@ checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5"
 
 [[package]]
 name = "crc32fast"
-version = "1.3.2"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
 dependencies = [
  "cfg-if",
 ]
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.8"
+version = "0.5.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
+checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95"
 dependencies = [
- "cfg-if",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-deque"
-version = "0.8.3"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
 dependencies = [
- "cfg-if",
  "crossbeam-epoch",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.15"
+version = "0.9.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
 dependencies = [
- "autocfg",
- "cfg-if",
  "crossbeam-utils",
- "memoffset 0.9.0",
- "scopeguard",
 ]
 
 [[package]]
 name = "crossbeam-queue"
-version = "0.3.8"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add"
+checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35"
 dependencies = [
- "cfg-if",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.16"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
-dependencies = [
- "cfg-if",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
 name = "crossterm"
@@ -1577,7 +1340,7 @@ dependencies = [
  "crossterm_winapi",
  "libc",
  "mio",
- "parking_lot 0.12.1",
+ "parking_lot",
  "signal-hook",
  "signal-hook-mio",
  "winapi",
@@ -1589,11 +1352,11 @@ version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "crossterm_winapi",
  "libc",
  "mio",
- "parking_lot 0.12.1",
+ "parking_lot",
  "signal-hook",
  "signal-hook-mio",
  "winapi",
@@ -1620,12 +1383,12 @@ dependencies = [
 
 [[package]]
 name = "ctor"
-version = "0.2.5"
+version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37e366bff8cd32dd8754b0991fb66b279dc48f598c3a18914852a6673deef583"
+checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f"
 dependencies = [
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
@@ -1634,8 +1397,18 @@ version = "0.13.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c"
 dependencies = [
- "darling_core",
- "darling_macro",
+ "darling_core 0.13.4",
+ "darling_macro 0.13.4",
+]
+
+[[package]]
+name = "darling"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391"
+dependencies = [
+ "darling_core 0.20.8",
+ "darling_macro 0.20.8",
 ]
 
 [[package]]
@@ -1648,22 +1421,60 @@ dependencies = [
  "ident_case",
  "proc-macro2",
  "quote",
- "strsim",
+ "strsim 0.10.0",
  "syn 1.0.109",
 ]
 
 [[package]]
+name = "darling_core"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim 0.10.0",
+ "syn 2.0.59",
+]
+
+[[package]]
 name = "darling_macro"
 version = "0.13.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835"
 dependencies = [
- "darling_core",
+ "darling_core 0.13.4",
  "quote",
  "syn 1.0.109",
 ]
 
 [[package]]
+name = "darling_macro"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
+dependencies = [
+ "darling_core 0.20.8",
+ "quote",
+ "syn 2.0.59",
+]
+
+[[package]]
+name = "dashmap"
+version = "5.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
+dependencies = [
+ "cfg-if",
+ "hashbrown 0.14.3",
+ "lock_api",
+ "once_cell",
+ "parking_lot_core",
+]
+
+[[package]]
 name = "data-encoding"
 version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1671,14 +1482,13 @@ checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
 
 [[package]]
 name = "deadpool"
-version = "0.9.5"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "421fe0f90f2ab22016f32a9881be5134fdd71c65298917084b0c7477cbc3856e"
+checksum = "fb84100978c1c7b37f09ed3ce3e5f843af02c2a2c431bae5b19230dad2c1b490"
 dependencies = [
  "async-trait",
  "deadpool-runtime",
  "num_cpus",
- "retain_mut",
  "tokio",
 ]
 
@@ -1689,19 +1499,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "63dfa964fe2a66f3fde91fc70b267fe193d822c7e603e2a675a49a7f46ad3f49"
 
 [[package]]
-name = "debugid"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d"
-dependencies = [
- "uuid",
-]
-
-[[package]]
 name = "der"
-version = "0.7.8"
+version = "0.7.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c"
+checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0"
 dependencies = [
  "const-oid",
  "pem-rfc7468",
@@ -1724,9 +1525,9 @@ dependencies = [
 
 [[package]]
 name = "deranged"
-version = "0.3.10"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
 dependencies = [
  "powerfmt",
  "serde",
@@ -1763,9 +1564,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de"
 dependencies = [
  "console",
- "fuzzy-matcher",
  "shell-words",
- "tempfile",
  "thiserror",
  "zeroize",
 ]
@@ -1795,42 +1594,12 @@ dependencies = [
 ]
 
 [[package]]
-name = "directories-next"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc"
-dependencies = [
- "cfg-if",
- "dirs-sys-next",
-]
-
-[[package]]
-name = "dirs"
-version = "4.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
-dependencies = [
- "dirs-sys 0.3.7",
-]
-
-[[package]]
 name = "dirs"
 version = "5.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
 dependencies = [
- "dirs-sys 0.4.1",
-]
-
-[[package]]
-name = "dirs-sys"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
-dependencies = [
- "libc",
- "redox_users",
- "winapi",
+ "dirs-sys",
 ]
 
 [[package]]
@@ -1846,17 +1615,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "dirs-sys-next"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
-dependencies = [
- "libc",
- "redox_users",
- "winapi",
-]
-
-[[package]]
 name = "displaydoc"
 version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1864,7 +1622,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
@@ -1887,9 +1645,9 @@ checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
 
 [[package]]
 name = "either"
-version = "1.9.0"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2"
 dependencies = [
  "serde",
 ]
@@ -1902,9 +1660,9 @@ checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
 
 [[package]]
 name = "encoding_rs"
-version = "0.8.33"
+version = "0.8.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
 dependencies = [
  "cfg-if",
 ]
@@ -1915,25 +1673,13 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "21cdad81446a7f7dc43f6a77409efeb9733d2fa65553efef6018ef257c959b73"
 dependencies = [
- "heck",
+ "heck 0.4.1",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
 ]
 
 [[package]]
-name = "enum-as-inner"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a"
-dependencies = [
- "heck",
- "proc-macro2",
- "quote",
- "syn 2.0.39",
-]
-
-[[package]]
 name = "equivalent"
 version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1967,19 +1713,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
 
 [[package]]
-name = "fallible-iterator"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"
-
-[[package]]
 name = "faster-hex"
-version = "0.8.1"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "239f7bfb930f820ab16a9cd95afc26f88264cf6905c960b340a615384aa3338a"
-dependencies = [
- "serde",
-]
+checksum = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183"
 
 [[package]]
 name = "fastrand"
@@ -1992,20 +1729,9 @@ dependencies = [
 
 [[package]]
 name = "fastrand"
-version = "2.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
-
-[[package]]
-name = "fd-lock"
-version = "4.0.1"
+version = "2.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b93f7a0db71c99f68398f80653ed05afb0b00e062e1a20c7ff849c4edfabbbcc"
-dependencies = [
- "cfg-if",
- "rustix",
- "windows-sys 0.52.0",
-]
+checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984"
 
 [[package]]
 name = "filetime"
@@ -2015,7 +1741,7 @@ checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.4.1",
+ "redox_syscall",
  "windows-sys 0.52.0",
 ]
 
@@ -2063,20 +1789,9 @@ dependencies = [
 
 [[package]]
 name = "fqdn"
-version = "0.3.2"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3d76ed310eb8c6f88ddde3e976d015f4f91761fe98d7d41e497db542318fca9"
-
-[[package]]
-name = "fs-set-times"
-version = "0.20.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "033b337d725b97690d86893f9de22b67b80dcc4e9ad815f348254c38119db8fb"
-dependencies = [
- "io-lifetimes",
- "rustix",
- "windows-sys 0.52.0",
-]
+checksum = "1bf664d6b0598fea5600b85cddc79e60d4c1f262f42faf75c2d77dc2164c9a8b"
 
 [[package]]
 name = "funty"
@@ -2086,9 +1801,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
 
 [[package]]
 name = "futures"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -2101,9 +1816,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -2111,15 +1826,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -2134,14 +1849,14 @@ checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f"
 dependencies = [
  "futures-core",
  "lock_api",
- "parking_lot 0.12.1",
+ "parking_lot",
 ]
 
 [[package]]
 name = "futures-io"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
 name = "futures-lite"
@@ -2160,32 +1875,32 @@ dependencies = [
 
 [[package]]
 name = "futures-macro"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
 
 [[package]]
 name = "futures-task"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
 name = "futures-util"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -2200,37 +1915,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "fuzzy-matcher"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94"
-dependencies = [
- "thread_local",
-]
-
-[[package]]
-name = "fxhash"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
-dependencies = [
- "byteorder",
-]
-
-[[package]]
-name = "fxprof-processed-profile"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27d12c0aed7f1e24276a241aadc4cb8ea9f83000f34bc062b7cc2d51e3b0fabd"
-dependencies = [
- "bitflags 2.4.1",
- "debugid",
- "fxhash",
- "serde",
- "serde_json",
-]
-
-[[package]]
 name = "generic-array"
 version = "0.14.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2253,9 +1937,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.11"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
+checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -2269,19 +1953,14 @@ name = "gimli"
 version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
-dependencies = [
- "fallible-iterator",
- "indexmap 2.1.0",
- "stable_deref_trait",
-]
 
 [[package]]
 name = "git2"
-version = "0.18.2"
+version = "0.18.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b3ba52851e73b46a4c3df1d89343741112003f0f6f13beb0dfac9e457c3fdcd"
+checksum = "232e6a7bfe35766bf715e55a88b39a700596c0ccfd88cd3680b4cdb40d66ef70"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "libc",
  "libgit2-sys",
  "log",
@@ -2290,12 +1969,13 @@ dependencies = [
 
 [[package]]
 name = "gix"
-version = "0.55.2"
+version = "0.62.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "002667cd1ebb789313d0d0afe3d23b2821cf3b0e91605095f0e6d8751f0ceeea"
+checksum = "5631c64fb4cd48eee767bf98a3cbc5c9318ef3bb71074d4c099a2371510282b6"
 dependencies = [
  "gix-actor",
  "gix-attributes",
+ "gix-command",
  "gix-commitgraph",
  "gix-config",
  "gix-credentials",
@@ -2336,32 +2016,30 @@ dependencies = [
  "gix-worktree",
  "gix-worktree-state",
  "once_cell",
- "parking_lot 0.12.1",
- "reqwest",
+ "parking_lot",
  "smallvec",
  "thiserror",
- "unicode-normalization",
 ]
 
 [[package]]
 name = "gix-actor"
-version = "0.28.1"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2eadca029ef716b4378f7afb19f7ee101fde9e58ba1f1445971315ac866db417"
+checksum = "45c3a3bde455ad2ee8ba8a195745241ce0b770a8a26faae59fcf409d01b28c46"
 dependencies = [
  "bstr",
- "btoi",
  "gix-date",
+ "gix-utils",
  "itoa",
  "thiserror",
- "winnow",
+ "winnow 0.6.6",
 ]
 
 [[package]]
 name = "gix-attributes"
-version = "0.20.1"
+version = "0.22.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f395469d38c76ec47cd1a6c5a53fbc3f13f737b96eaf7535f4e6b367e643381"
+checksum = "eefb48f42eac136a4a0023f49a54ec31be1c7a9589ed762c45dcb9b953f7ecc8"
 dependencies = [
  "bstr",
  "gix-glob",
@@ -2376,50 +2054,53 @@ dependencies = [
 
 [[package]]
 name = "gix-bitmap"
-version = "0.2.8"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d49e1a13a30d3f88be4bceae184dd13a2d3fb9ffa7515f7ed7ae771b857f4916"
+checksum = "a371db66cbd4e13f0ed9dc4c0fea712d7276805fccc877f77e96374d317e87ae"
 dependencies = [
  "thiserror",
 ]
 
 [[package]]
 name = "gix-chunk"
-version = "0.4.5"
+version = "0.4.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d411ecd9b558b0c20b3252b7e409eec48eabc41d18324954fe526bac6e2db55f"
+checksum = "45c8751169961ba7640b513c3b24af61aa962c967aaf04116734975cd5af0c52"
 dependencies = [
  "thiserror",
 ]
 
 [[package]]
 name = "gix-command"
-version = "0.2.10"
+version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c576cfbf577f72c097b5f88aedea502cd62952bdc1fb3adcab4531d5525a4c7"
+checksum = "f90009020dc4b3de47beed28e1334706e0a330ddd17f5cfeb097df3b15a54b77"
 dependencies = [
  "bstr",
+ "gix-path",
+ "gix-trace",
+ "shell-words",
 ]
 
 [[package]]
 name = "gix-commitgraph"
-version = "0.22.1"
+version = "0.24.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85a7007ba021f059803afaf6f8a48872422abc20550ac12ede6ddea2936cec36"
+checksum = "f7b102311085da4af18823413b5176d7c500fb2272eaf391cfa8635d8bcb12c4"
 dependencies = [
  "bstr",
  "gix-chunk",
  "gix-features",
  "gix-hash",
- "memmap2 0.9.0",
+ "memmap2",
  "thiserror",
 ]
 
 [[package]]
 name = "gix-config"
-version = "0.31.0"
+version = "0.36.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cae98c6b4c66c09379bc35274b172587d6b0ac369a416c39128ad8c6454f9bb"
+checksum = "7580e05996e893347ad04e1eaceb92e1c0e6a3ffe517171af99bf6b6df0ca6e5"
 dependencies = [
  "bstr",
  "gix-config-value",
@@ -2433,16 +2114,16 @@ dependencies = [
  "smallvec",
  "thiserror",
  "unicode-bom",
- "winnow",
+ "winnow 0.6.6",
 ]
 
 [[package]]
 name = "gix-config-value"
-version = "0.14.1"
+version = "0.14.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6419db582ea84dfb58c7e7b0af7fd62c808aa14954af2936a33f89b0f4ed018e"
+checksum = "fbd06203b1a9b33a78c88252a625031b094d9e1b647260070c25b09910c0a804"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "bstr",
  "gix-path",
  "libc",
@@ -2451,9 +2132,9 @@ dependencies = [
 
 [[package]]
 name = "gix-credentials"
-version = "0.21.0"
+version = "0.24.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c5c5d74069b842a1861e581027ac6b7ad9ff66f5911c89b9f45484d7ebda6a4"
+checksum = "5c70146183bd3c7119329a3c7392d1aa0e0adbe48d727f4df31828fe6d8fdaa1"
 dependencies = [
  "bstr",
  "gix-command",
@@ -2461,15 +2142,16 @@ dependencies = [
  "gix-path",
  "gix-prompt",
  "gix-sec",
+ "gix-trace",
  "gix-url",
  "thiserror",
 ]
 
 [[package]]
 name = "gix-date"
-version = "0.8.1"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "468dfbe411f335f01525a1352271727f8e7772075a93fa747260f502086b30be"
+checksum = "180b130a4a41870edfbd36ce4169c7090bca70e195da783dea088dd973daa59c"
 dependencies = [
  "bstr",
  "itoa",
@@ -2479,10 +2161,11 @@ dependencies = [
 
 [[package]]
 name = "gix-diff"
-version = "0.37.0"
+version = "0.43.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "931394f69fb8c9ed6afc0aae3487bd869e936339bcc13ed8884472af072e0554"
+checksum = "a5fbc24115b957346cd23fb0f47d830eb799c46c89cdcf2f5acc9bf2938c2d01"
 dependencies = [
+ "bstr",
  "gix-hash",
  "gix-object",
  "thiserror",
@@ -2490,12 +2173,13 @@ dependencies = [
 
 [[package]]
 name = "gix-discover"
-version = "0.26.0"
+version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a45d5cf0321178883e38705ab2b098f625d609a7d4c391b33ac952eff2c490f2"
+checksum = "64bab49087ed3710caf77e473dc0efc54ca33d8ccc6441359725f121211482b1"
 dependencies = [
  "bstr",
  "dunce",
+ "gix-fs",
  "gix-hash",
  "gix-path",
  "gix-ref",
@@ -2505,15 +2189,16 @@ dependencies = [
 
 [[package]]
 name = "gix-features"
-version = "0.36.1"
+version = "0.38.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d46a4a5c6bb5bebec9c0d18b65ada20e6517dbd7cf855b87dd4bbdce3a771b2"
+checksum = "db4254037d20a247a0367aa79333750146a369719f0c6617fec4f5752cc62b37"
 dependencies = [
  "bytes",
  "crc32fast",
  "flate2",
  "gix-hash",
  "gix-trace",
+ "gix-utils",
  "libc",
  "once_cell",
  "prodash",
@@ -2524,9 +2209,9 @@ dependencies = [
 
 [[package]]
 name = "gix-filter"
-version = "0.6.0"
+version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92f674d3fdb6b1987b04521ec9a5b7be8650671f2c4bbd17c3c81e2a364242ff"
+checksum = "5c0d1f01af62bfd2fb3dd291acc2b29d4ab3e96ad52a679174626508ce98ef12"
 dependencies = [
  "bstr",
  "encoding_rs",
@@ -2538,26 +2223,28 @@ dependencies = [
  "gix-path",
  "gix-quote",
  "gix-trace",
+ "gix-utils",
  "smallvec",
  "thiserror",
 ]
 
 [[package]]
 name = "gix-fs"
-version = "0.8.1"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20e86eb040f5776a5ade092282e51cdcad398adb77d948b88d17583c2ae4e107"
+checksum = "e2184c40e7910529677831c8b481acf788ffd92427ed21fad65b6aa637e631b8"
 dependencies = [
  "gix-features",
+ "gix-utils",
 ]
 
 [[package]]
 name = "gix-glob"
-version = "0.14.1"
+version = "0.16.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5db19298c5eeea2961e5b3bf190767a2d1f09b8802aeb5f258e42276350aff19"
+checksum = "682bdc43cb3c00dbedfcc366de2a849b582efd8d886215dbad2ea662ec156bb5"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "bstr",
  "gix-features",
  "gix-path",
@@ -2565,9 +2252,9 @@ dependencies = [
 
 [[package]]
 name = "gix-hash"
-version = "0.13.2"
+version = "0.14.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99c1e554a87759e672c7d2e37211e761aa390c61ffcd3753a57c51173143f3cb"
+checksum = "f93d7df7366121b5018f947a04d37f034717e113dcf9ccd85c34b58e57a74d5e"
 dependencies = [
  "faster-hex",
  "thiserror",
@@ -2575,37 +2262,38 @@ dependencies = [
 
 [[package]]
 name = "gix-hashtable"
-version = "0.4.1"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "feb61880816d7ec4f0b20606b498147d480860ddd9133ba542628df2f548d3ca"
+checksum = "7ddf80e16f3c19ac06ce415a38b8591993d3f73aede049cb561becb5b3a8e242"
 dependencies = [
  "gix-hash",
  "hashbrown 0.14.3",
- "parking_lot 0.12.1",
+ "parking_lot",
 ]
 
 [[package]]
 name = "gix-ignore"
-version = "0.9.1"
+version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a215cc8cf21645bca131fcf6329d3ebd46299c47dbbe27df71bb1ca9e328b879"
+checksum = "640dbeb4f5829f9fc14d31f654a34a0350e43a24e32d551ad130d99bf01f63f1"
 dependencies = [
  "bstr",
  "gix-glob",
  "gix-path",
+ "gix-trace",
  "unicode-bom",
 ]
 
 [[package]]
 name = "gix-index"
-version = "0.26.0"
+version = "0.32.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c83a4fcc121b2f2e109088f677f89f85e7a8ebf39e8e6659c0ae54d4283b1650"
+checksum = "881ab3b1fa57f497601a5add8289e72a7ae09471fc0b9bbe483b628ae8e418a1"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "bstr",
- "btoi",
  "filetime",
+ "fnv",
  "gix-bitmap",
  "gix-features",
  "gix-fs",
@@ -2613,17 +2301,21 @@ dependencies = [
  "gix-lock",
  "gix-object",
  "gix-traverse",
+ "gix-utils",
+ "hashbrown 0.14.3",
  "itoa",
- "memmap2 0.7.1",
+ "libc",
+ "memmap2",
+ "rustix",
  "smallvec",
  "thiserror",
 ]
 
 [[package]]
 name = "gix-lock"
-version = "11.0.1"
+version = "13.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e5c65e6a29830a435664891ced3f3c1af010f14900226019590ee0971a22f37"
+checksum = "e7c359f81f01b8352063319bcb39789b7ea0887b406406381106e38c4a34d049"
 dependencies = [
  "gix-tempfile",
  "gix-utils",
@@ -2632,22 +2324,22 @@ dependencies = [
 
 [[package]]
 name = "gix-macros"
-version = "0.1.1"
+version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02a5bcaf6704d9354a3071cede7e77d366a5980c7352e102e2c2f9b645b1d3ae"
+checksum = "1dff438f14e67e7713ab9332f5fd18c8f20eb7eb249494f6c2bf170522224032"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
 name = "gix-negotiate"
-version = "0.9.0"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a5cdcf491ecc9ce39dcc227216c540355fe0024ae7c38e94557752ca5ebb67f"
+checksum = "54ba98f8c8c06870dfc167d192ca38a38261867b836cb89ac80bc9176dba975e"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "gix-commitgraph",
  "gix-date",
  "gix-hash",
@@ -2659,47 +2351,48 @@ dependencies = [
 
 [[package]]
 name = "gix-object"
-version = "0.38.0"
+version = "0.42.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "740f2a44267f58770a1cb3a3d01d14e67b089c7136c48d4bddbb3cfd2bf86a51"
+checksum = "3d4f8efae72030df1c4a81d02dbe2348e748d9b9a11e108ed6efbd846326e051"
 dependencies = [
  "bstr",
- "btoi",
  "gix-actor",
  "gix-date",
  "gix-features",
  "gix-hash",
+ "gix-utils",
  "gix-validate",
  "itoa",
  "smallvec",
  "thiserror",
- "winnow",
+ "winnow 0.6.6",
 ]
 
 [[package]]
 name = "gix-odb"
-version = "0.54.0"
+version = "0.60.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8630b56cb80d8fa684d383dad006a66401ee8314e12fbf0e566ddad8c115143b"
+checksum = "e8bbb43d2fefdc4701ffdf9224844d05b136ae1b9a73c2f90710c8dd27a93503"
 dependencies = [
  "arc-swap",
  "gix-date",
  "gix-features",
+ "gix-fs",
  "gix-hash",
  "gix-object",
  "gix-pack",
  "gix-path",
  "gix-quote",
- "parking_lot 0.12.1",
+ "parking_lot",
  "tempfile",
  "thiserror",
 ]
 
 [[package]]
 name = "gix-pack"
-version = "0.44.0"
+version = "0.50.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1431ba2e30deff1405920693d54ab231c88d7c240dd6ccc936ee223d8f8697c3"
+checksum = "b58bad27c7677fa6b587aab3a1aca0b6c97373bd371a0a4290677c838c9bcaf1"
 dependencies = [
  "clru",
  "gix-chunk",
@@ -2709,39 +2402,41 @@ dependencies = [
  "gix-object",
  "gix-path",
  "gix-tempfile",
- "memmap2 0.7.1",
- "parking_lot 0.12.1",
+ "memmap2",
+ "parking_lot",
  "smallvec",
  "thiserror",
 ]
 
 [[package]]
 name = "gix-packetline"
-version = "0.16.7"
+version = "0.17.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a8384b1e964151aff0d5632dd9b191059d07dff358b96bd940f1b452600d7ab"
+checksum = "b70486beda0903b6d5b65dfa6e40585098cdf4e6365ca2dff4f74c387354a515"
 dependencies = [
  "bstr",
  "faster-hex",
+ "gix-trace",
  "thiserror",
 ]
 
 [[package]]
 name = "gix-packetline-blocking"
-version = "0.16.6"
+version = "0.17.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d8395f7501c84d6a1fe902035fdfd8cd86d89e2dd6be0200ec1a72fd3c92d39"
+checksum = "c31d42378a3d284732e4d589979930d0d253360eccf7ec7a80332e5ccb77e14a"
 dependencies = [
  "bstr",
  "faster-hex",
+ "gix-trace",
  "thiserror",
 ]
 
 [[package]]
 name = "gix-path"
-version = "0.10.1"
+version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d86d6fac2fabe07b67b7835f46d07571f68b11aa1aaecae94fe722ea4ef305e1"
+checksum = "23623cf0f475691a6d943f898c4d0b89f5c1a2a64d0f92bce0e0322ee6528783"
 dependencies = [
  "bstr",
  "gix-trace",
@@ -2752,11 +2447,11 @@ dependencies = [
 
 [[package]]
 name = "gix-pathspec"
-version = "0.4.1"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dbbb92f75a38ef043c8bb830b339b38d0698d7f3746968b5fcbade7a880494d"
+checksum = "ea9f934a111e0efdf93ae06e3648427e60e783099fbebd6a53a7a2ffb10a1e65"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "bstr",
  "gix-attributes",
  "gix-config-value",
@@ -2767,51 +2462,51 @@ dependencies = [
 
 [[package]]
 name = "gix-prompt"
-version = "0.7.0"
+version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c9a913769516f5e9d937afac206fb76428e3d7238e538845842887fda584678"
+checksum = "f5325eb17ce7b5e5d25dec5c2315d642a09d55b9888b3bf46b7d72e1621a55d8"
 dependencies = [
  "gix-command",
  "gix-config-value",
- "parking_lot 0.12.1",
+ "parking_lot",
  "rustix",
  "thiserror",
 ]
 
 [[package]]
 name = "gix-protocol"
-version = "0.41.1"
+version = "0.45.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "391e3feabdfa5f90dad6673ce59e3291ac28901b2ff248d86c5a7fbde0391e0e"
+checksum = "aed3bb6179835a3250403baa9d7022579e559fc45f2efc416d9de1a14b5acf11"
 dependencies = [
  "bstr",
- "btoi",
  "gix-credentials",
  "gix-date",
  "gix-features",
  "gix-hash",
  "gix-transport",
+ "gix-utils",
  "maybe-async",
  "thiserror",
- "winnow",
+ "winnow 0.6.6",
 ]
 
 [[package]]
 name = "gix-quote"
-version = "0.4.8"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f84845efa535468bc79c5a87b9d29219f1da0313c8ecf0365a5daa7e72786f2"
+checksum = "cbff4f9b9ea3fa7a25a70ee62f545143abef624ac6aa5884344e70c8b0a1d9ff"
 dependencies = [
  "bstr",
- "btoi",
+ "gix-utils",
  "thiserror",
 ]
 
 [[package]]
 name = "gix-ref"
-version = "0.38.0"
+version = "0.43.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ec2f6d07ac88d2fb8007ee3fa3e801856fb9d82e7366ec0ca332eb2c9d74a52"
+checksum = "fd4aba68b925101cb45d6df328979af0681364579db889098a0de75b36c77b65"
 dependencies = [
  "gix-actor",
  "gix-date",
@@ -2822,17 +2517,18 @@ dependencies = [
  "gix-object",
  "gix-path",
  "gix-tempfile",
+ "gix-utils",
  "gix-validate",
- "memmap2 0.7.1",
+ "memmap2",
  "thiserror",
- "winnow",
+ "winnow 0.6.6",
 ]
 
 [[package]]
 name = "gix-refspec"
-version = "0.19.0"
+version = "0.23.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccb0974cc41dbdb43a180c7f67aa481e1c1e160fcfa8f4a55291fd1126c1a6e7"
+checksum = "dde848865834a54fe4d9b4573f15d0e9a68eaf3d061b42d3ed52b4b8acf880b2"
 dependencies = [
  "bstr",
  "gix-hash",
@@ -2844,9 +2540,9 @@ dependencies = [
 
 [[package]]
 name = "gix-revision"
-version = "0.23.0"
+version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ca97ac73459a7f3766aa4a5638a6e37d56d4c7962bc1986fbaf4883d0772588"
+checksum = "9e34196e1969bd5d36e2fbc4467d893999132219d503e23474a8ad2b221cb1e8"
 dependencies = [
  "bstr",
  "gix-date",
@@ -2860,9 +2556,9 @@ dependencies = [
 
 [[package]]
 name = "gix-revwalk"
-version = "0.9.0"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a16d8c892e4cd676d86f0265bf9d40cefd73d8d94f86b213b8b77d50e77efae0"
+checksum = "e0a7d393ae814eeaae41a333c0ff684b243121cc61ccdc5bbe9897094588047d"
 dependencies = [
  "gix-commitgraph",
  "gix-date",
@@ -2875,21 +2571,21 @@ dependencies = [
 
 [[package]]
 name = "gix-sec"
-version = "0.10.1"
+version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a36ea2c5907d64a9b4b5d3cc9f430e6c30f0509646b5e38eb275ca57c5bf29e2"
+checksum = "fddc27984a643b20dd03e97790555804f98cf07404e0e552c0ad8133266a79a1"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "gix-path",
  "libc",
- "windows",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "gix-submodule"
-version = "0.5.0"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bba78c8d12aa24370178453ec3a472ff08dfaa657d116229f57f2c9cd469a1c2"
+checksum = "4fb7ea05666362472fecd44c1fc35fe48a5b9b841b431cc4f85b95e6f20c23ec"
 dependencies = [
  "bstr",
  "gix-config",
@@ -2902,30 +2598,30 @@ dependencies = [
 
 [[package]]
 name = "gix-tempfile"
-version = "11.0.1"
+version = "13.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "388dd29114a86ec69b28d1e26d6d63a662300ecf61ab3f4cc578f7d7dc9e7e23"
+checksum = "a761d76594f4443b675e85928e4902dec333273836bd386906f01e7e346a0d11"
 dependencies = [
  "gix-fs",
  "libc",
  "once_cell",
- "parking_lot 0.12.1",
+ "parking_lot",
  "tempfile",
 ]
 
 [[package]]
 name = "gix-trace"
-version = "0.1.4"
+version = "0.1.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b686a35799b53a9825575ca3f06481d0a053a409c4d97ffcf5ddd67a8760b497"
+checksum = "f924267408915fddcd558e3f37295cc7d6a3e50f8bd8b606cee0808c3915157e"
 
 [[package]]
 name = "gix-transport"
-version = "0.38.0"
+version = "0.42.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f209a93364e24f20319751bc11092272e2f3fe82bb72592b2822679cf5be752"
+checksum = "9d2f783b2fe86bf2a8cf1f3b8669d65b01ab4932f32cc0101d3893e1b16a3bd6"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "bstr",
  "gix-command",
  "gix-credentials",
@@ -2934,16 +2630,17 @@ dependencies = [
  "gix-quote",
  "gix-sec",
  "gix-url",
- "reqwest",
+ "reqwest 0.12.4",
  "thiserror",
 ]
 
 [[package]]
 name = "gix-traverse"
-version = "0.34.0"
+version = "0.39.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14d050ec7d4e1bb76abf0636cf4104fb915b70e54e3ced9a4427c999100ff38a"
+checksum = "f4029ec209b0cc480d209da3837a42c63801dd8548f09c1f4502c60accb62aeb"
 dependencies = [
+ "bitflags 2.5.0",
  "gix-commitgraph",
  "gix-date",
  "gix-hash",
@@ -2956,9 +2653,9 @@ dependencies = [
 
 [[package]]
 name = "gix-url"
-version = "0.25.2"
+version = "0.27.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c427a1a11ccfa53a4a2da47d9442c2241deee63a154bc15cc14b8312fbc4005"
+checksum = "0db829ebdca6180fbe32be7aed393591df6db4a72dbbc0b8369162390954d1cf"
 dependencies = [
  "bstr",
  "gix-features",
@@ -2970,18 +2667,19 @@ dependencies = [
 
 [[package]]
 name = "gix-utils"
-version = "0.1.6"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f82c41937f00e15a1f6cb0b55307f0ca1f77f4407ff2bf440be35aa688c6a3e"
+checksum = "35192df7fd0fa112263bad8021e2df7167df4cc2a6e6d15892e1e55621d3d4dc"
 dependencies = [
- "fastrand 2.0.1",
+ "fastrand 2.0.2",
+ "unicode-normalization",
 ]
 
 [[package]]
 name = "gix-validate"
-version = "0.8.1"
+version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75b7d8e4274be69f284bbc7e6bb2ccf7065dbcdeba22d8c549f2451ae426883f"
+checksum = "e39fc6e06044985eac19dd34d474909e517307582e462b2eb4c8fa51b6241545"
 dependencies = [
  "bstr",
  "thiserror",
@@ -2989,9 +2687,9 @@ dependencies = [
 
 [[package]]
 name = "gix-worktree"
-version = "0.27.0"
+version = "0.33.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ddaf79e721dba64fe726a42f297a3c8ed42e55cdc0d81ca68452f2def3c2d7fd"
+checksum = "f06ca5dd164678914fc9280ba9d1ffeb66499ccc16ab1278c513828beee88401"
 dependencies = [
  "bstr",
  "gix-attributes",
@@ -3007,9 +2705,9 @@ dependencies = [
 
 [[package]]
 name = "gix-worktree-state"
-version = "0.4.0"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34a2fcccdcaf3c71c00a03df31c9aa459d444cabbec4ed9ca1fa64e43406bed4"
+checksum = "70b4bcac42d5b3197d38e3f15f6eb277c5e6d6a1669c7beabed8f666dba1c9b8"
 dependencies = [
  "bstr",
  "gix-features",
@@ -3040,29 +2738,23 @@ dependencies = [
  "aho-corasick",
  "bstr",
  "log",
- "regex-automata 0.4.3",
- "regex-syntax 0.8.2",
+ "regex-automata 0.4.6",
+ "regex-syntax 0.8.3",
 ]
 
 [[package]]
-name = "guppy-workspace-hack"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92620684d99f750bae383ecb3be3748142d6095760afd5cbcf2261e9a279d780"
-
-[[package]]
 name = "h2"
-version = "0.3.24"
+version = "0.3.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
+checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
 dependencies = [
  "bytes",
  "fnv",
  "futures-core",
  "futures-sink",
  "futures-util",
- "http 0.2.11",
- "indexmap 2.1.0",
+ "http 0.2.12",
+ "indexmap 2.2.6",
  "slab",
  "tokio",
  "tokio-util",
@@ -3071,17 +2763,17 @@ dependencies = [
 
 [[package]]
 name = "h2"
-version = "0.4.2"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31d030e59af851932b72ceebadf4a2b5986dba4c3b99dd2493f8273a0f151943"
+checksum = "816ec7294445779408f36fe57bc5b7fc1cf59664059096c65f905c1c61f58069"
 dependencies = [
  "bytes",
  "fnv",
  "futures-core",
  "futures-sink",
  "futures-util",
- "http 1.0.0",
- "indexmap 2.1.0",
+ "http 1.1.0",
+ "indexmap 2.2.6",
  "slab",
  "tokio",
  "tokio-util",
@@ -3096,15 +2788,6 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
 
 [[package]]
 name = "hashbrown"
-version = "0.13.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
-dependencies = [
- "ahash",
-]
-
-[[package]]
-name = "hashbrown"
 version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
@@ -3128,10 +2811,10 @@ version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "bytes",
  "headers-core",
- "http 0.2.11",
+ "http 0.2.12",
  "httpdate",
  "mime",
  "sha1",
@@ -3143,7 +2826,7 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429"
 dependencies = [
- "http 0.2.11",
+ "http 0.2.12",
 ]
 
 [[package]]
@@ -3156,10 +2839,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
 name = "hermit-abi"
-version = "0.3.3"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
 [[package]]
 name = "hex"
@@ -3169,9 +2858,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
 
 [[package]]
 name = "hkdf"
-version = "0.12.3"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437"
+checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
 dependencies = [
  "hmac",
 ]
@@ -3187,11 +2876,11 @@ dependencies = [
 
 [[package]]
 name = "home"
-version = "0.5.5"
+version = "0.5.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
+checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
 dependencies = [
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -3207,9 +2896,9 @@ dependencies = [
 
 [[package]]
 name = "http"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
+checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
 dependencies = [
  "bytes",
  "fnv",
@@ -3218,9 +2907,9 @@ dependencies = [
 
 [[package]]
 name = "http"
-version = "1.0.0"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea"
+checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
 dependencies = [
  "bytes",
  "fnv",
@@ -3229,12 +2918,12 @@ dependencies = [
 
 [[package]]
 name = "http-body"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
 dependencies = [
  "bytes",
- "http 0.2.11",
+ "http 0.2.12",
  "pin-project-lite",
 ]
 
@@ -3245,18 +2934,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
 dependencies = [
  "bytes",
- "http 1.0.0",
+ "http 1.1.0",
 ]
 
 [[package]]
 name = "http-body-util"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840"
+checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d"
 dependencies = [
  "bytes",
- "futures-util",
- "http 1.0.0",
+ "futures-core",
+ "http 1.1.0",
  "http-body 1.0.0",
  "pin-project-lite",
 ]
@@ -3268,16 +2957,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f"
 
 [[package]]
-name = "http-serde"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f560b665ad9f1572cfcaf034f7fb84338a7ce945216d64a90fd81f046a3caee"
-dependencies = [
- "http 0.2.11",
- "serde",
-]
-
-[[package]]
 name = "http-types"
 version = "2.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3287,7 +2966,7 @@ dependencies = [
  "async-channel",
  "base64 0.13.1",
  "futures-lite",
- "http 0.2.11",
+ "http 0.2.12",
  "infer",
  "pin-project-lite",
  "rand 0.7.3",
@@ -3312,22 +2991,22 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
 
 [[package]]
 name = "hyper"
-version = "0.14.27"
+version = "0.14.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468"
+checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
 dependencies = [
  "bytes",
  "futures-channel",
  "futures-core",
  "futures-util",
- "h2 0.3.24",
- "http 0.2.11",
- "http-body 0.4.5",
+ "h2 0.3.26",
+ "http 0.2.12",
+ "http-body 0.4.6",
  "httparse",
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2 0.4.10",
+ "socket2 0.5.6",
  "tokio",
  "tower-service",
  "tracing",
@@ -3336,20 +3015,21 @@ dependencies = [
 
 [[package]]
 name = "hyper"
-version = "1.1.0"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5aa53871fc917b1a9ed87b683a5d86db645e23acb32c2e0785a353e522fb75"
+checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d"
 dependencies = [
  "bytes",
  "futures-channel",
  "futures-util",
- "h2 0.4.2",
- "http 1.0.0",
+ "h2 0.4.4",
+ "http 1.1.0",
  "http-body 1.0.0",
  "httparse",
  "httpdate",
  "itoa",
  "pin-project-lite",
+ "smallvec",
  "tokio",
  "want",
 ]
@@ -3359,7 +3039,7 @@ name = "hyper-reverse-proxy"
 version = "0.5.2-dev"
 source = "git+https://github.com/chesedo/hyper-reverse-proxy?branch=bug/host_header#5f82b7dffe940abf896fe47dadf6c8e87ddc670b"
 dependencies = [
- "hyper 0.14.27",
+ "hyper 0.14.28",
  "lazy_static",
  "tokio",
  "tracing",
@@ -3372,13 +3052,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
 dependencies = [
  "futures-util",
- "http 0.2.11",
- "hyper 0.14.27",
+ "http 0.2.12",
+ "hyper 0.14.28",
  "log",
- "rustls",
+ "rustls 0.21.11",
  "rustls-native-certs",
  "tokio",
- "tokio-rustls",
+ "tokio-rustls 0.24.1",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c"
+dependencies = [
+ "futures-util",
+ "http 1.1.0",
+ "hyper 1.3.1",
+ "hyper-util",
+ "rustls 0.22.4",
+ "rustls-pki-types",
+ "tokio",
+ "tokio-rustls 0.25.0",
+ "tower-service",
 ]
 
 [[package]]
@@ -3387,7 +3084,7 @@ version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1"
 dependencies = [
- "hyper 0.14.27",
+ "hyper 0.14.28",
  "pin-project-lite",
  "tokio",
  "tokio-io-timeout",
@@ -3395,19 +3092,21 @@ dependencies = [
 
 [[package]]
 name = "hyper-util"
-version = "0.1.2"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdea9aac0dbe5a9240d68cfd9501e2db94222c6dc06843e06640b9e07f0fdc67"
+checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa"
 dependencies = [
  "bytes",
  "futures-channel",
  "futures-util",
- "http 1.0.0",
+ "http 1.1.0",
  "http-body 1.0.0",
- "hyper 1.1.0",
+ "hyper 1.3.1",
  "pin-project-lite",
- "socket2 0.5.5",
+ "socket2 0.5.6",
  "tokio",
+ "tower",
+ "tower-service",
  "tracing",
 ]
 
@@ -3419,16 +3118,16 @@ checksum = "0fafdf7b2b2de7c9784f76e02c0935e65a8117ec3b768644379983ab333ac98c"
 dependencies = [
  "futures-util",
  "hex",
- "hyper 0.14.27",
+ "hyper 0.14.28",
  "pin-project",
  "tokio",
 ]
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.58"
+version = "0.1.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
@@ -3448,12 +3147,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "id-arena"
-version = "2.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005"
-
-[[package]]
 name = "ident_case"
 version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3472,16 +3165,6 @@ dependencies = [
 
 [[package]]
 name = "idna"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
-dependencies = [
- "unicode-bidi",
- "unicode-normalization",
-]
-
-[[package]]
-name = "idna"
 version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
@@ -3492,15 +3175,15 @@ dependencies = [
 
 [[package]]
 name = "ignore"
-version = "0.4.21"
+version = "0.4.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "747ad1b4ae841a78e8aba0d63adbfbeaea26b517b63705d47856b73015d27060"
+checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1"
 dependencies = [
  "crossbeam-deque",
  "globset",
  "log",
  "memchr",
- "regex-automata 0.4.3",
+ "regex-automata 0.4.6",
  "same-file",
  "walkdir",
  "winapi-util",
@@ -3519,9 +3202,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.1.0"
+version = "2.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
 dependencies = [
  "equivalent",
  "hashbrown 0.14.3",
@@ -3530,9 +3213,9 @@ dependencies = [
 
 [[package]]
 name = "indicatif"
-version = "0.17.7"
+version = "0.17.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25"
+checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3"
 dependencies = [
  "console",
  "instant",
@@ -3543,9 +3226,9 @@ dependencies = [
 
 [[package]]
 name = "indoc"
-version = "2.0.4"
+version = "2.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
+checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5"
 
 [[package]]
 name = "infer"
@@ -3554,15 +3237,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac"
 
 [[package]]
+name = "inout"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
 name = "instant"
 version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
 dependencies = [
  "cfg-if",
- "js-sys",
- "wasm-bindgen",
- "web-sys",
 ]
 
 [[package]]
@@ -3571,9 +3260,9 @@ version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f3d50eb225913c1903c788287ddd0b16369771e5abc988756a5e5927390ba04f"
 dependencies = [
- "base64 0.21.5",
- "hyper 0.14.27",
- "hyper-rustls",
+ "base64 0.21.7",
+ "hyper 0.14.28",
+ "hyper-rustls 0.24.2",
  "ring 0.16.20",
  "serde",
  "serde_json",
@@ -3591,31 +3280,15 @@ dependencies = [
 ]
 
 [[package]]
-name = "io-extras"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c301e73fb90e8a29e600a9f402d095765f74310d582916a952f618836a1bd1ed"
-dependencies = [
- "io-lifetimes",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "io-lifetimes"
-version = "2.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a611371471e98973dbcab4e0ec66c31a10bc356eeb4d54a0e05eac8158fe38c"
-
-[[package]]
 name = "ipconfig"
 version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"
 dependencies = [
- "socket2 0.5.5",
+ "socket2 0.5.6",
  "widestring",
  "windows-sys 0.48.0",
- "winreg",
+ "winreg 0.50.0",
 ]
 
 [[package]]
@@ -3625,17 +3298,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
 
 [[package]]
-name = "is-terminal"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
-dependencies = [
- "hermit-abi",
- "rustix",
- "windows-sys 0.48.0",
-]
-
-[[package]]
 name = "itertools"
 version = "0.10.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3646,47 +3308,18 @@ dependencies = [
 
 [[package]]
 name = "itertools"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
-dependencies = [
- "either",
-]
-
-[[package]]
-name = "itertools"
-version = "0.12.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
 dependencies = [
  "either",
 ]
 
 [[package]]
 name = "itoa"
-version = "1.0.9"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
-
-[[package]]
-name = "ittapi"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25a5c0b993601cad796222ea076565c5d9f337d35592f8622c753724f06d7271"
-dependencies = [
- "anyhow",
- "ittapi-sys",
- "log",
-]
-
-[[package]]
-name = "ittapi-sys"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb7b5e473765060536a660eed127f758cf1a810c73e49063264959c60d1727d9"
-dependencies = [
- "cc",
-]
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
 
 [[package]]
 name = "jni"
@@ -3712,32 +3345,32 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
 
 [[package]]
 name = "jobserver"
-version = "0.1.27"
+version = "0.1.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
+checksum = "685a7d121ee3f65ae4fddd72b25a04bb36b6af81bc0828f7d5434c0fe60fa3a2"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "js-sys"
-version = "0.3.66"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
 dependencies = [
  "wasm-bindgen",
 ]
 
 [[package]]
 name = "jsonwebtoken"
-version = "9.2.0"
+version = "9.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c7ea04a7c5c055c175f189b6dc6ba036fd62306b58c66c9f6389036c503a3f4"
+checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "js-sys",
- "pem 3.0.2",
- "ring 0.17.7",
+ "pem 3.0.4",
+ "ring 0.17.8",
  "serde",
  "serde_json",
  "simple_asn1",
@@ -3762,16 +3395,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "leb128"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67"
-
-[[package]]
 name = "libc"
-version = "0.2.150"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libgit2-sys"
@@ -3793,13 +3420,12 @@ checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
 
 [[package]]
 name = "libredox"
-version = "0.0.1"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "libc",
- "redox_syscall 0.4.1",
 ]
 
 [[package]]
@@ -3815,9 +3441,9 @@ dependencies = [
 
 [[package]]
 name = "libz-sys"
-version = "1.1.12"
+version = "1.1.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b"
+checksum = "5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9"
 dependencies = [
  "cc",
  "libc",
@@ -3833,9 +3459,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.12"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
 
 [[package]]
 name = "lock_api"
@@ -3849,9 +3475,9 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.20"
+version = "0.4.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
 
 [[package]]
 name = "lru-cache"
@@ -3863,15 +3489,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "mach"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa"
-dependencies = [
- "libc",
-]
-
-[[package]]
 name = "malloc_buf"
 version = "0.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3909,22 +3526,16 @@ checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94"
 
 [[package]]
 name = "maybe-async"
-version = "0.2.7"
+version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f1b8c13cb1f814b634a96b2c725449fe7ed464a7b8781de8688be5ffbd3f305"
+checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.59",
 ]
 
 [[package]]
-name = "maybe-owned"
-version = "0.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4facc753ae494aeb6e3c22f839b158aebd4f9270f55cd3c79906c45476c47ab4"
-
-[[package]]
 name = "md-5"
 version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3936,33 +3547,15 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
-
-[[package]]
-name = "memfd"
-version = "0.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64"
-dependencies = [
- "rustix",
-]
-
-[[package]]
-name = "memmap2"
-version = "0.7.1"
+version = "2.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f49388d20533534cd19360ad3d6a7dadc885944aa802ba3995040c5ec11288c6"
-dependencies = [
- "libc",
-]
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
 
 [[package]]
 name = "memmap2"
-version = "0.9.0"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "deaba38d7abf1d4cca21cc89e932e542ba2b9258664d2a9ef0e61512039c9375"
+checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
 dependencies = [
  "libc",
 ]
@@ -3977,15 +3570,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "memoffset"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
 name = "mime"
 version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4009,18 +3593,18 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
 dependencies = [
  "adler",
 ]
 
 [[package]]
 name = "mio"
-version = "0.8.10"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
  "log",
@@ -4030,9 +3614,9 @@ dependencies = [
 
 [[package]]
 name = "mongodb"
-version = "2.7.1"
+version = "2.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7c926772050c3a3f87c837626bf6135c8ca688d91d31dd39a3da547fc2bc9fe"
+checksum = "ef206acb1b72389b49bc9985efe7eb1f8a9bb18e5680d262fac26c07f44025f1"
 dependencies = [
  "async-trait",
  "base64 0.13.1",
@@ -4053,8 +3637,8 @@ dependencies = [
  "percent-encoding",
  "rand 0.8.5",
  "rustc_version_runtime",
- "rustls",
- "rustls-pemfile",
+ "rustls 0.21.11",
+ "rustls-pemfile 1.0.4",
  "serde",
  "serde_bytes",
  "serde_with 1.14.0",
@@ -4062,30 +3646,17 @@ dependencies = [
  "sha2",
  "socket2 0.4.10",
  "stringprep",
- "strsim",
+ "strsim 0.10.0",
  "take_mut",
  "thiserror",
  "tokio",
- "tokio-rustls",
+ "tokio-rustls 0.24.1",
  "tokio-util",
- "trust-dns-proto 0.21.2",
- "trust-dns-resolver 0.21.2",
+ "trust-dns-proto",
+ "trust-dns-resolver",
  "typed-builder",
  "uuid",
- "webpki-roots",
-]
-
-[[package]]
-name = "nbuild-core"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e5ab1b0a3450a5031ae7d555bb0c71dd3b15bf8a2f2af79e00aec91f69a4a0e"
-dependencies = [
- "cargo-lock",
- "cargo_metadata 0.15.4",
- "target-spec",
- "thiserror",
- "tracing",
+ "webpki-roots 0.25.4",
 ]
 
 [[package]]
@@ -4104,22 +3675,11 @@ dependencies = [
  "bitflags 1.3.2",
  "cfg-if",
  "libc",
- "memoffset 0.6.5",
+ "memoffset",
  "pin-utils",
 ]
 
 [[package]]
-name = "nix"
-version = "0.27.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
-dependencies = [
- "bitflags 2.4.1",
- "cfg-if",
- "libc",
-]
-
-[[package]]
 name = "nom"
 version = "7.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4168,20 +3728,25 @@ dependencies = [
 ]
 
 [[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
 name = "num-integer"
-version = "0.1.45"
+version = "0.1.46"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
 dependencies = [
- "autocfg",
  "num-traits",
 ]
 
 [[package]]
 name = "num-iter"
-version = "0.1.43"
+version = "0.1.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
+checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9"
 dependencies = [
  "autocfg",
  "num-integer",
@@ -4190,9 +3755,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.17"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
  "autocfg",
  "libm",
@@ -4210,9 +3775,9 @@ dependencies = [
 
 [[package]]
 name = "num_threads"
-version = "0.1.6"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
+checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
 dependencies = [
  "libc",
 ]
@@ -4234,13 +3799,10 @@ dependencies = [
 
 [[package]]
 name = "object"
-version = "0.32.1"
+version = "0.32.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
 dependencies = [
- "crc32fast",
- "hashbrown 0.14.3",
- "indexmap 2.1.0",
  "memchr",
 ]
 
@@ -4289,7 +3851,7 @@ checksum = "1e32339a5dc40459130b3bd269e9892439f55b33e772d2a9d402a789baaf4e8a"
 dependencies = [
  "futures-core",
  "futures-sink",
- "indexmap 2.1.0",
+ "indexmap 2.2.6",
  "js-sys",
  "once_cell",
  "pin-project-lite",
@@ -4318,7 +3880,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7e448fc8ad3687b1dd9073087941834f54093624c015a7fbd1f1efc5a38a7737"
 dependencies = [
  "async-trait",
- "http 0.2.11",
+ "http 0.2.12",
  "indexmap 1.9.3",
  "lazy_static",
  "opentelemetry 0.12.0",
@@ -4334,7 +3896,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "69a853d37ac1c02889211517007a99b2a90d3d7e89526f9af037ada84f1326a1"
 dependencies = [
  "async-trait",
- "http 0.2.11",
+ "http 0.2.12",
  "opentelemetry 0.12.0",
  "thiserror",
 ]
@@ -4347,8 +3909,9 @@ checksum = "7f51189ce8be654f9b5f7e70e49967ed894e84a06fc35c6c042e64ac1fc5399e"
 dependencies = [
  "async-trait",
  "bytes",
- "http 0.2.11",
+ "http 0.2.12",
  "opentelemetry 0.21.0",
+ "reqwest 0.11.27",
 ]
 
 [[package]]
@@ -4359,12 +3922,14 @@ checksum = "f24cda83b20ed2433c68241f918d0f6fdec8b1d43b7a9590ab4420c5095ca930"
 dependencies = [
  "async-trait",
  "futures-core",
- "http 0.2.11",
+ "http 0.2.12",
  "opentelemetry 0.21.0",
+ "opentelemetry-http 0.10.0",
  "opentelemetry-proto",
  "opentelemetry-semantic-conventions",
  "opentelemetry_sdk",
  "prost 0.11.9",
+ "reqwest 0.11.27",
  "thiserror",
  "tokio",
  "tonic 0.9.2",
@@ -4393,9 +3958,9 @@ dependencies = [
 
 [[package]]
 name = "opentelemetry_sdk"
-version = "0.21.1"
+version = "0.21.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "968ba3f2ca03e90e5187f5e4f46c791ef7f2c163ae87789c8ce5f5ca3b7b7de5"
+checksum = "2f16aec8a98a457a52664d69e0091bac3a0abd18ead9b641cb00202ba4e0efe4"
 dependencies = [
  "async-trait",
  "crossbeam-channel",
@@ -4430,16 +3995,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "os_pipe"
-version = "1.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ae859aa07428ca9a929b936690f8b12dc5f11dd8c6992a18ca93919f28bc177"
-dependencies = [
- "libc",
- "windows-sys 0.48.0",
-]
-
-[[package]]
 name = "outref"
 version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4459,50 +4014,36 @@ checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
 
 [[package]]
 name = "parking_lot"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
-dependencies = [
- "instant",
- "lock_api",
- "parking_lot_core 0.8.6",
-]
-
-[[package]]
-name = "parking_lot"
 version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
 dependencies = [
  "lock_api",
- "parking_lot_core 0.9.9",
+ "parking_lot_core",
 ]
 
 [[package]]
 name = "parking_lot_core"
-version = "0.8.6"
+version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "cfg-if",
- "instant",
  "libc",
- "redox_syscall 0.2.16",
+ "redox_syscall",
  "smallvec",
- "winapi",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
-name = "parking_lot_core"
-version = "0.9.9"
+name = "password-hash"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700"
 dependencies = [
- "cfg-if",
- "libc",
- "redox_syscall 0.4.1",
- "smallvec",
- "windows-targets 0.48.5",
+ "base64ct",
+ "rand_core 0.6.4",
+ "subtle",
 ]
 
 [[package]]
@@ -4518,6 +4059,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917"
 dependencies = [
  "digest",
+ "hmac",
+ "password-hash",
+ "sha2",
 ]
 
 [[package]]
@@ -4535,17 +4079,17 @@ version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6b13fe415cdf3c8e44518e18a7c95a13431d9bdf6d15367d82b23c377fdd441a"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "serde",
 ]
 
 [[package]]
 name = "pem"
-version = "3.0.2"
+version = "3.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3163d2912b7c3b52d651a055f2c7eec9ba5cd22d26ef75b8dd3a59980b185923"
+checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.22.0",
  "serde",
 ]
 
@@ -4565,30 +4109,58 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
+name = "permit-client-rs"
+version = "2.0.0"
+source = "git+https://github.com/shuttle-hq/permit-client-rs?rev=19085ba#19085ba73bb87c879731590f4a3a988e92d076ac"
+dependencies = [
+ "reqwest 0.11.27",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "serde_with 2.3.3",
+ "url",
+ "uuid",
+]
+
+[[package]]
+name = "permit-pdp-client-rs"
+version = "0.2.0"
+source = "git+https://github.com/shuttle-hq/permit-pdp-client-rs?rev=37c7296#37c72968adf360aa4e2386c3f0c918b823fb919f"
+dependencies = [
+ "reqwest 0.11.27",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "serde_with 2.3.3",
+ "url",
+ "uuid",
+]
+
+[[package]]
 name = "pin-project"
-version = "1.1.3"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
+checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.1.3"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
+checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.13"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
 
 [[package]]
 name = "pin-utils"
@@ -4619,9 +4191,9 @@ dependencies = [
 
 [[package]]
 name = "pkg-config"
-version = "0.3.27"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
 name = "portable-atomic"
@@ -4663,13 +4235,12 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[package]]
 name = "predicates"
-version = "3.0.4"
+version = "3.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6dfc28575c2e3f19cb3c73b93af36460ae898d426eba6fc15b9bd2a5220758a0"
+checksum = "68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8"
 dependencies = [
  "anstyle",
  "difflib",
- "itertools 0.11.0",
  "predicates-core",
 ]
 
@@ -4725,18 +4296,18 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.70"
+version = "1.0.81"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
+checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "prodash"
-version = "26.2.2"
+version = "28.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "794b5bf8e2d19b53dcdcec3e4bba628e20f5b6062503ba89281fa7037dd7bbcf"
+checksum = "744a264d26b88a6a7e37cbad97953fa233b94d585236310bcbc88474b4092d79"
 
 [[package]]
 name = "proptest"
@@ -4746,13 +4317,13 @@ checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf"
 dependencies = [
  "bit-set",
  "bit-vec",
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "lazy_static",
  "num-traits",
  "rand 0.8.5",
  "rand_chacha 0.3.1",
  "rand_xorshift",
- "regex-syntax 0.8.2",
+ "regex-syntax 0.8.3",
  "rusty-fork",
  "tempfile",
  "unarray",
@@ -4770,12 +4341,12 @@ dependencies = [
 
 [[package]]
 name = "prost"
-version = "0.12.3"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a"
+checksum = "d0f5d036824e4761737860779c906171497f6d55681139d8312388f8fe398922"
 dependencies = [
  "bytes",
- "prost-derive 0.12.3",
+ "prost-derive 0.12.4",
 ]
 
 [[package]]
@@ -4793,53 +4364,27 @@ dependencies = [
 
 [[package]]
 name = "prost-derive"
-version = "0.12.3"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e"
+checksum = "19de2de2a00075bf566bee3bd4db014b11587e84184d3f7a791bc17f1a8e9e48"
 dependencies = [
  "anyhow",
- "itertools 0.11.0",
+ "itertools 0.12.1",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
 name = "prost-types"
-version = "0.12.3"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "193898f59edcf43c26227dcd4c8427f00d99d61e95dcde58dabd49fa291d470e"
+checksum = "3235c33eb02c1f1e212abdbe34c78b264b038fb58ca612664343271e36e55ffe"
 dependencies = [
- "prost 0.12.3",
+ "prost 0.12.4",
 ]
 
 [[package]]
-name = "psm"
-version = "0.1.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "pulldown-cmark"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77a1a2f1f0a7ecff9c31abbe177637be0e97a0aef46cf8738ece09327985d998"
-dependencies = [
- "bitflags 1.3.2",
- "memchr",
- "unicase",
-]
-
-[[package]]
-name = "queues"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1475abae4f8ad4998590fe3acfe20104f0a5d48fc420c817cd2c09c3f56151f0"
-
-[[package]]
 name = "quick-error"
 version = "1.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4847,9 +4392,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
 
 [[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
 dependencies = [
  "proc-macro2",
 ]
@@ -4919,7 +4464,7 @@ version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
 dependencies = [
- "getrandom 0.2.11",
+ "getrandom 0.2.14",
 ]
 
 [[package]]
@@ -4947,32 +4492,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
 
 [[package]]
-name = "rayon"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
-dependencies = [
- "either",
- "rayon-core",
-]
-
-[[package]]
-name = "rayon-core"
-version = "1.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
-dependencies = [
- "crossbeam-deque",
- "crossbeam-utils",
-]
-
-[[package]]
 name = "rcgen"
 version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "52c4f3084aa3bc7dfbba4eff4fab2a54db4324965d8872ab933565e6fbd83bc6"
 dependencies = [
- "pem 3.0.2",
+ "pem 3.0.4",
  "ring 0.16.20",
  "time",
  "yasna",
@@ -4980,15 +4505,6 @@ dependencies = [
 
 [[package]]
 name = "redox_syscall"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
-dependencies = [
- "bitflags 1.3.2",
-]
-
-[[package]]
-name = "redox_syscall"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
@@ -4998,38 +4514,25 @@ dependencies = [
 
 [[package]]
 name = "redox_users"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
+checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891"
 dependencies = [
- "getrandom 0.2.11",
+ "getrandom 0.2.14",
  "libredox",
  "thiserror",
 ]
 
 [[package]]
-name = "regalloc2"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad156d539c879b7a24a363a2016d77961786e71f48f2e2fc8302a92abd2429a6"
-dependencies = [
- "hashbrown 0.13.2",
- "log",
- "rustc-hash",
- "slice-group-by",
- "smallvec",
-]
-
-[[package]]
 name = "regex"
-version = "1.10.2"
+version = "1.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-automata 0.4.3",
- "regex-syntax 0.8.2",
+ "regex-automata 0.4.6",
+ "regex-syntax 0.8.3",
 ]
 
 [[package]]
@@ -5043,13 +4546,13 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.4.3"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-syntax 0.8.2",
+ "regex-syntax 0.8.3",
 ]
 
 [[package]]
@@ -5060,26 +4563,26 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
 
 [[package]]
 name = "regex-syntax"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
 
 [[package]]
 name = "reqwest"
-version = "0.11.22"
+version = "0.11.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b"
+checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "bytes",
  "encoding_rs",
  "futures-core",
  "futures-util",
- "h2 0.3.24",
- "http 0.2.11",
- "http-body 0.4.5",
- "hyper 0.14.27",
- "hyper-rustls",
+ "h2 0.3.26",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "hyper 0.14.28",
+ "hyper-rustls 0.24.2",
  "ipnet",
  "js-sys",
  "log",
@@ -5088,60 +4591,68 @@ dependencies = [
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
- "rustls",
- "rustls-pemfile",
+ "rustls 0.21.11",
+ "rustls-native-certs",
+ "rustls-pemfile 1.0.4",
  "serde",
  "serde_json",
  "serde_urlencoded",
+ "sync_wrapper",
  "system-configuration",
  "tokio",
- "tokio-rustls",
+ "tokio-rustls 0.24.1",
  "tower-service",
- "trust-dns-resolver 0.23.2",
  "url",
  "wasm-bindgen",
  "wasm-bindgen-futures",
  "web-sys",
- "webpki-roots",
- "winreg",
+ "webpki-roots 0.25.4",
+ "winreg 0.50.0",
 ]
 
 [[package]]
-name = "reqwest-middleware"
-version = "0.2.4"
+name = "reqwest"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88a3e86aa6053e59030e7ce2d2a3b258dd08fc2d337d52f73f6cb480f5858690"
+checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10"
 dependencies = [
- "anyhow",
- "async-trait",
- "http 0.2.11",
- "reqwest",
+ "base64 0.22.0",
+ "bytes",
+ "encoding_rs",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2 0.4.4",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "http-body-util",
+ "hyper 1.3.1",
+ "hyper-rustls 0.26.0",
+ "hyper-util",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls 0.22.4",
+ "rustls-pemfile 2.1.2",
+ "rustls-pki-types",
  "serde",
- "task-local-extensions",
- "thiserror",
-]
-
-[[package]]
-name = "reqwest-retry"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9af20b65c2ee9746cc575acb6bd28a05ffc0d15e25c992a8f4462d8686aacb4f"
-dependencies = [
- "anyhow",
- "async-trait",
- "chrono",
- "futures",
- "getrandom 0.2.11",
- "http 0.2.11",
- "hyper 0.14.27",
- "parking_lot 0.11.2",
- "reqwest",
- "reqwest-middleware",
- "retry-policies",
- "task-local-extensions",
+ "serde_json",
+ "serde_urlencoded",
+ "sync_wrapper",
+ "system-configuration",
  "tokio",
- "tracing",
- "wasm-timer",
+ "tokio-rustls 0.25.0",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "webpki-roots 0.26.1",
+ "winreg 0.52.0",
 ]
 
 [[package]]
@@ -5155,30 +4666,13 @@ dependencies = [
 ]
 
 [[package]]
-name = "retain_mut"
-version = "0.1.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4389f1d5789befaf6029ebd9f7dac4af7f7e3d61b69d4f30e2ac02b57e7712b0"
-
-[[package]]
-name = "retry-policies"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17dd00bff1d737c40dbcd47d4375281bf4c17933f9eef0a185fc7bacca23ecbd"
-dependencies = [
- "anyhow",
- "chrono",
- "rand 0.8.5",
-]
-
-[[package]]
 name = "rexpect"
 version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "01ff60778f96fb5a48adbe421d21bf6578ed58c0872d712e7e08593c195adff8"
 dependencies = [
  "comma",
- "nix 0.25.1",
+ "nix",
  "regex",
  "tempfile",
  "thiserror",
@@ -5201,23 +4695,24 @@ dependencies = [
 
 [[package]]
 name = "ring"
-version = "0.17.7"
+version = "0.17.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
+checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
 dependencies = [
  "cc",
- "getrandom 0.2.11",
+ "cfg-if",
+ "getrandom 0.2.14",
  "libc",
  "spin 0.9.8",
  "untrusted 0.9.0",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "rmp"
-version = "0.8.12"
+version = "0.8.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f9860a6cc38ed1da53456442089b4dfa35e7cedaa326df63017af88385e6b20"
+checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4"
 dependencies = [
  "byteorder",
  "num-traits",
@@ -5226,9 +4721,9 @@ dependencies = [
 
 [[package]]
 name = "rmp-serde"
-version = "1.1.2"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bffea85eea980d8a74453e5d02a8d93028f3c34725de143085a844ebe953258a"
+checksum = "938a142ab806f18b88a97b0dea523d39e0fd730a064b035726adcfc58a8a5188"
 dependencies = [
  "byteorder",
  "rmp",
@@ -5288,7 +4783,7 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
 dependencies = [
- "semver 1.0.20",
+ "semver 1.0.22",
 ]
 
 [[package]]
@@ -5312,39 +4807,51 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.26"
+version = "0.38.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9470c4bf8246c8daf25f9598dca807fb6510347b1e1cfa55749113850c79d88a"
+checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "errno",
- "itoa",
  "libc",
  "linux-raw-sys",
- "once_cell",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "rustls"
-version = "0.21.9"
+version = "0.21.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9"
+checksum = "7fecbfb7b1444f477b345853b1fce097a2c6fb637b2bfb87e6bc5db0f043fae4"
 dependencies = [
  "log",
- "ring 0.17.7",
- "rustls-webpki",
+ "ring 0.17.8",
+ "rustls-webpki 0.101.7",
  "sct",
 ]
 
 [[package]]
+name = "rustls"
+version = "0.22.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432"
+dependencies = [
+ "log",
+ "ring 0.17.8",
+ "rustls-pki-types",
+ "rustls-webpki 0.102.3",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
 name = "rustls-native-certs"
 version = "0.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00"
 dependencies = [
  "openssl-probe",
- "rustls-pemfile",
+ "rustls-pemfile 1.0.4",
  "schannel",
  "security-framework",
 ]
@@ -5355,16 +4862,43 @@ version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "2.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d"
+dependencies = [
+ "base64 0.22.0",
+ "rustls-pki-types",
 ]
 
 [[package]]
+name = "rustls-pki-types"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247"
+
+[[package]]
 name = "rustls-webpki"
 version = "0.101.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
 dependencies = [
- "ring 0.17.7",
+ "ring 0.17.8",
+ "untrusted 0.9.0",
+]
+
+[[package]]
+name = "rustls-webpki"
+version = "0.102.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3bce581c0dd41bce533ce695a1437fa16a7ab5ac3ccfa99fe1a620a7885eabf"
+dependencies = [
+ "ring 0.17.8",
+ "rustls-pki-types",
  "untrusted 0.9.0",
 ]
 
@@ -5381,15 +4915,15 @@ dependencies = [
  "itertools 0.10.5",
  "lazy_static",
  "rustc-hash",
- "strsim",
+ "strsim 0.10.0",
  "unicode-normalization",
 ]
 
 [[package]]
 name = "rustversion"
-version = "1.0.14"
+version = "1.0.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+checksum = "80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47"
 
 [[package]]
 name = "rusty-fork"
@@ -5405,9 +4939,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.15"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "same-file"
@@ -5420,11 +4954,11 @@ dependencies = [
 
 [[package]]
 name = "schannel"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
 dependencies = [
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -5439,15 +4973,15 @@ version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
 dependencies = [
- "ring 0.17.7",
+ "ring 0.17.8",
  "untrusted 0.9.0",
 ]
 
 [[package]]
 name = "security-framework"
-version = "2.9.2"
+version = "2.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
+checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6"
 dependencies = [
  "bitflags 1.3.2",
  "core-foundation",
@@ -5458,9 +4992,9 @@ dependencies = [
 
 [[package]]
 name = "security-framework-sys"
-version = "2.9.1"
+version = "2.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
+checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -5477,9 +5011,9 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.20"
+version = "1.0.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
 dependencies = [
  "serde",
 ]
@@ -5492,40 +5026,40 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
 
 [[package]]
 name = "serde"
-version = "1.0.193"
+version = "1.0.198"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
+checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_bytes"
-version = "0.11.12"
+version = "0.11.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff"
+checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.193"
+version = "1.0.198"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
+checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.108"
+version = "1.0.116"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
+checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813"
 dependencies = [
- "indexmap 2.1.0",
+ "indexmap 2.2.6",
  "itoa",
  "ryu",
  "serde",
@@ -5533,9 +5067,9 @@ dependencies = [
 
 [[package]]
 name = "serde_path_to_error"
-version = "0.1.14"
+version = "0.1.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4beec8bce849d58d06238cb50db2e1c417cfeafa4c63f692b15c82b7c80f8335"
+checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6"
 dependencies = [
  "itoa",
  "serde",
@@ -5565,20 +5099,20 @@ dependencies = [
 
 [[package]]
 name = "serde_repr"
-version = "0.1.17"
+version = "0.1.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145"
+checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.4"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
 dependencies = [
  "serde",
 ]
@@ -5602,22 +5136,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff"
 dependencies = [
  "serde",
- "serde_with_macros",
+ "serde_with_macros 1.5.2",
 ]
 
 [[package]]
 name = "serde_with"
-version = "3.4.0"
+version = "2.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23"
+checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.13.1",
  "chrono",
  "hex",
  "indexmap 1.9.3",
- "indexmap 2.1.0",
  "serde",
  "serde_json",
+ "serde_with_macros 2.3.3",
+ "time",
+]
+
+[[package]]
+name = "serde_with"
+version = "3.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee80b0e361bbf88fd2f6e242ccd19cfda072cb0faa6ae694ecee08199938569a"
+dependencies = [
+ "base64 0.21.7",
+ "chrono",
+ "hex",
+ "indexmap 1.9.3",
+ "indexmap 2.2.6",
+ "serde",
+ "serde_derive",
+ "serde_json",
  "time",
 ]
 
@@ -5627,13 +5178,50 @@ version = "1.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082"
 dependencies = [
- "darling",
+ "darling 0.13.4",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
 ]
 
 [[package]]
+name = "serde_with_macros"
+version = "2.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f"
+dependencies = [
+ "darling 0.20.8",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.59",
+]
+
+[[package]]
+name = "serial_test"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "953ad9342b3aaca7cb43c45c097dd008d4907070394bd0751a0aa8817e5a018d"
+dependencies = [
+ "dashmap",
+ "futures",
+ "lazy_static",
+ "log",
+ "parking_lot",
+ "serial_test_derive",
+]
+
+[[package]]
+name = "serial_test_derive"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.59",
+]
+
+[[package]]
 name = "sha-1"
 version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5688,55 +5276,49 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
 
 [[package]]
-name = "shellexpand"
-version = "2.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ccc8076840c4da029af4f87e4e8daeb0fca6b87bbb02e10cb60b791450e11e4"
-dependencies = [
- "dirs 4.0.0",
-]
-
-[[package]]
 name = "shuttle-admin"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "anyhow",
+ "bytes",
  "clap",
- "dirs 5.0.1",
- "reqwest",
+ "dirs",
+ "reqwest 0.11.27",
  "serde",
  "serde_json",
+ "shuttle-backends",
  "shuttle-common",
  "tokio",
- "toml 0.8.8",
+ "toml",
  "tracing",
  "tracing-subscriber",
 ]
 
 [[package]]
 name = "shuttle-auth"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "anyhow",
  "async-stripe",
  "async-trait",
  "axum",
  "axum-extra",
- "base64 0.21.5",
+ "base64 0.21.7",
  "chrono",
  "clap",
  "ctor",
- "http 0.2.11",
- "hyper 0.14.27",
+ "http 0.2.12",
+ "hyper 0.14.28",
  "jsonwebtoken",
  "once_cell",
  "opentelemetry 0.21.0",
  "pem 2.0.1",
  "portpicker",
  "pretty_assertions",
- "ring 0.17.7",
+ "ring 0.17.8",
  "serde",
  "serde_json",
+ "shuttle-backends",
  "shuttle-common",
  "shuttle-common-tests",
  "sqlx",
@@ -5746,100 +5328,109 @@ dependencies = [
  "tracing",
  "tracing-opentelemetry",
  "tracing-subscriber",
+ "ulid",
  "wiremock",
 ]
 
 [[package]]
-name = "shuttle-builder"
-version = "0.39.0"
+name = "shuttle-backends"
+version = "0.45.0"
 dependencies = [
+ "anyhow",
  "async-trait",
- "clap",
- "flate2",
- "hex",
- "nbuild-core",
- "os_pipe",
+ "axum",
+ "base64 0.21.7",
+ "bytes",
+ "ctor",
+ "headers",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "hyper 0.14.28",
+ "jsonwebtoken",
+ "opentelemetry 0.21.0",
+ "opentelemetry-appender-tracing",
+ "opentelemetry-http 0.10.0",
+ "opentelemetry-otlp",
+ "opentelemetry_sdk",
+ "permit-client-rs",
+ "permit-pdp-client-rs",
+ "pin-project",
  "portpicker",
- "pretty_assertions",
+ "reqwest 0.11.27",
+ "ring 0.17.8",
+ "rustrict",
+ "serde",
+ "serde_json",
+ "serial_test",
  "shuttle-common",
  "shuttle-common-tests",
  "shuttle-proto",
- "tar",
- "tempfile",
+ "sqlx",
+ "strum 0.26.2",
+ "test-context",
  "thiserror",
  "tokio",
- "toml 0.8.8",
  "tonic 0.10.2",
+ "tower",
+ "tower-http",
  "tracing",
+ "tracing-fluent-assertions",
+ "tracing-opentelemetry",
  "tracing-subscriber",
- "ulid",
+ "ttl_cache",
+ "uuid",
+ "wiremock",
 ]
 
 [[package]]
 name = "shuttle-codegen"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "pretty_assertions",
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "reqwest",
+ "reqwest 0.11.27",
  "serde",
  "serde_json",
  "shuttle-common-tests",
- "syn 2.0.39",
+ "syn 2.0.59",
  "tokio",
  "trybuild",
 ]
 
 [[package]]
 name = "shuttle-common"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "anyhow",
  "async-trait",
  "axum",
- "base64 0.21.5",
  "bytes",
  "chrono",
  "comfy-table",
  "crossterm 0.27.0",
  "headers",
- "http 0.2.11",
- "http-body 0.4.5",
- "http-serde",
- "hyper 0.14.27",
+ "http 0.2.12",
+ "http-body 0.4.6",
  "jsonwebtoken",
- "once_cell",
  "opentelemetry 0.21.0",
- "opentelemetry-appender-tracing",
  "opentelemetry-http 0.10.0",
- "opentelemetry-otlp",
- "opentelemetry_sdk",
  "pin-project",
  "proptest",
  "rand 0.8.5",
- "reqwest",
- "ring 0.17.7",
- "rmp-serde",
- "rustrict",
- "semver 1.0.20",
+ "reqwest 0.11.27",
+ "semver 1.0.22",
  "serde",
  "serde_json",
  "sqlx",
- "strum 0.25.0",
- "test-context",
+ "strum 0.26.2",
  "thiserror",
- "tokio",
  "tonic 0.10.2",
  "tower",
- "tower-http 0.4.4",
  "tracing",
- "tracing-core",
- "tracing-fluent-assertions",
  "tracing-opentelemetry",
  "tracing-subscriber",
- "ttl_cache",
  "url",
  "uuid",
  "wiremock",
@@ -5848,12 +5439,12 @@ dependencies = [
 
 [[package]]
 name = "shuttle-common-tests"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "cargo-shuttle",
- "hyper 0.14.27",
+ "hyper 0.14.28",
  "portpicker",
- "reqwest",
+ "reqwest 0.11.27",
  "serde",
  "shuttle-common",
  "shuttle-proto",
@@ -5866,19 +5457,19 @@ dependencies = [
 
 [[package]]
 name = "shuttle-deployer"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "anyhow",
  "async-trait",
  "axum",
- "cargo_metadata 0.18.1",
+ "cargo_metadata",
  "chrono",
  "clap",
  "ctor",
  "flate2",
  "hex",
  "home",
- "hyper 0.14.27",
+ "hyper 0.14.28",
  "hyper-reverse-proxy",
  "once_cell",
  "opentelemetry 0.21.0",
@@ -5888,18 +5479,19 @@ dependencies = [
  "rmp-serde",
  "serde",
  "serde_json",
+ "shuttle-backends",
  "shuttle-common",
  "shuttle-common-tests",
  "shuttle-proto",
  "shuttle-service",
  "sqlx",
- "strum 0.25.0",
+ "strum 0.26.2",
  "tar",
  "tempfile",
  "thiserror",
  "tokio",
  "tokio-stream",
- "toml 0.8.8",
+ "toml",
  "tonic 0.10.2",
  "tower",
  "tracing",
@@ -5911,7 +5503,7 @@ dependencies = [
 
 [[package]]
 name = "shuttle-gateway"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "anyhow",
  "async-posthog",
@@ -5925,8 +5517,8 @@ dependencies = [
  "flate2",
  "fqdn",
  "futures",
- "http 0.2.11",
- "hyper 0.14.27",
+ "http 0.2.12",
+ "hyper 0.14.28",
  "hyper-reverse-proxy",
  "instant-acme",
  "jsonwebtoken",
@@ -5941,27 +5533,29 @@ dependencies = [
  "portpicker",
  "rand 0.8.5",
  "rcgen",
- "reqwest",
- "ring 0.17.7",
+ "reqwest 0.11.27",
+ "ring 0.17.8",
  "rmp-serde",
- "rustls",
- "rustls-pemfile",
+ "rustls 0.21.11",
+ "rustls-pemfile 1.0.4",
+ "semver 1.0.22",
  "serde",
  "serde_json",
+ "shuttle-backends",
  "shuttle-common",
  "shuttle-common-tests",
- "shuttle-orchestrator",
  "shuttle-proto",
  "snailquote",
  "sqlx",
- "strum 0.25.0",
+ "strum 0.26.2",
  "tar",
  "tempfile",
  "test-context",
+ "thiserror",
  "tokio",
  "tonic 0.10.2",
  "tower",
- "tower-http 0.4.4",
+ "tower-http",
  "tower-sanitize-path",
  "tracing",
  "tracing-opentelemetry",
@@ -5974,7 +5568,7 @@ dependencies = [
 
 [[package]]
 name = "shuttle-logger"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "async-trait",
  "chrono",
@@ -5985,6 +5579,7 @@ dependencies = [
  "pretty_assertions",
  "prost-types",
  "serde_json",
+ "shuttle-backends",
  "shuttle-common",
  "shuttle-common-tests",
  "shuttle-proto",
@@ -5998,24 +5593,19 @@ dependencies = [
 ]
 
 [[package]]
-name = "shuttle-orchestrator"
-version = "0.39.0"
-
-[[package]]
 name = "shuttle-proto"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "anyhow",
  "async-trait",
  "chrono",
  "futures-core",
- "http 0.2.11",
+ "http 0.2.12",
  "portpicker",
- "prost 0.12.3",
+ "prost 0.12.4",
  "prost-types",
  "serde_json",
  "shuttle-common",
- "test-context",
  "tokio",
  "tonic 0.10.2",
  "tower",
@@ -6024,7 +5614,7 @@ dependencies = [
 
 [[package]]
 name = "shuttle-provisioner"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "aws-config",
  "aws-sdk-rds",
@@ -6034,9 +5624,10 @@ dependencies = [
  "mongodb",
  "once_cell",
  "portpicker",
- "prost 0.12.3",
+ "prost 0.12.4",
  "rand 0.8.5",
  "serde_json",
+ "shuttle-backends",
  "shuttle-common",
  "shuttle-common-tests",
  "shuttle-proto",
@@ -6050,7 +5641,7 @@ dependencies = [
 
 [[package]]
 name = "shuttle-resource-recorder"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "async-trait",
  "chrono",
@@ -6059,11 +5650,12 @@ dependencies = [
  "pretty_assertions",
  "prost-types",
  "serde_json",
+ "shuttle-backends",
  "shuttle-common",
  "shuttle-common-tests",
  "shuttle-proto",
  "sqlx",
- "strum 0.25.0",
+ "strum 0.26.2",
  "thiserror",
  "tokio",
  "tonic 0.10.2",
@@ -6074,18 +5666,12 @@ dependencies = [
 
 [[package]]
 name = "shuttle-runtime"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "anyhow",
  "async-trait",
- "cap-std",
- "chrono",
  "colored",
- "futures",
- "hyper 0.14.27",
  "portpicker",
- "prost-types",
- "rmp-serde",
  "serde",
  "serde_json",
  "shuttle-codegen",
@@ -6093,24 +5679,21 @@ dependencies = [
  "shuttle-proto",
  "shuttle-service",
  "strfmt",
- "thiserror",
  "tokio",
  "tokio-stream",
+ "tokio-util",
  "tonic 0.10.2",
  "tracing-subscriber",
  "uuid",
- "wasi-common",
- "wasmtime",
- "wasmtime-wasi",
 ]
 
 [[package]]
 name = "shuttle-service"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "anyhow",
  "async-trait",
- "cargo_metadata 0.18.1",
+ "cargo_metadata",
  "dunce",
  "serde",
  "shuttle-common",
@@ -6118,7 +5701,7 @@ dependencies = [
  "strfmt",
  "thiserror",
  "tokio",
- "toml 0.8.8",
+ "toml",
  "tracing",
 ]
 
@@ -6184,16 +5767,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "slice-group-by"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7"
-
-[[package]]
 name = "smallvec"
-version = "1.11.2"
+version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "smart-default"
@@ -6237,12 +5814,12 @@ dependencies = [
 
 [[package]]
 name = "socket2"
-version = "0.5.5"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
 dependencies = [
  "libc",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -6271,27 +5848,21 @@ dependencies = [
 ]
 
 [[package]]
-name = "sptr"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a"
-
-[[package]]
 name = "sqlformat"
 version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ce81b7bd7c4493975347ef60d8c7e8b742d4694f4c49f93e0a12ea263938176c"
 dependencies = [
- "itertools 0.12.0",
+ "itertools 0.12.1",
  "nom",
  "unicode_categories",
 ]
 
 [[package]]
 name = "sqlx"
-version = "0.7.3"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dba03c279da73694ef99763320dea58b51095dfe87d001b1d4b5fe78ba8763cf"
+checksum = "c9a2ccff1a000a5a59cd33da541d9f2fdcd9e6e8229cc200565942bff36d0aaa"
 dependencies = [
  "sqlx-core",
  "sqlx-macros",
@@ -6302,9 +5873,9 @@ dependencies = [
 
 [[package]]
 name = "sqlx-core"
-version = "0.7.3"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d84b0a3c3739e220d94b3239fd69fb1f74bc36e16643423bd99de3b43c21bfbd"
+checksum = "24ba59a9342a3d9bab6c56c118be528b27c9b60e490080e9711a04dccac83ef6"
 dependencies = [
  "ahash",
  "atoi",
@@ -6313,7 +5884,6 @@ dependencies = [
  "chrono",
  "crc",
  "crossbeam-queue",
- "dotenvy",
  "either",
  "event-listener",
  "futures-channel",
@@ -6323,14 +5893,14 @@ dependencies = [
  "futures-util",
  "hashlink",
  "hex",
- "indexmap 2.1.0",
+ "indexmap 2.2.6",
  "log",
  "memchr",
  "once_cell",
  "paste",
  "percent-encoding",
- "rustls",
- "rustls-pemfile",
+ "rustls 0.21.11",
+ "rustls-pemfile 1.0.4",
  "serde",
  "serde_json",
  "sha2",
@@ -6342,14 +5912,14 @@ dependencies = [
  "tracing",
  "url",
  "uuid",
- "webpki-roots",
+ "webpki-roots 0.25.4",
 ]
 
 [[package]]
 name = "sqlx-macros"
-version = "0.7.3"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89961c00dc4d7dffb7aee214964b065072bff69e36ddb9e2c107541f75e4f2a5"
+checksum = "4ea40e2345eb2faa9e1e5e326db8c34711317d2b5e08d0d5741619048a803127"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -6360,14 +5930,13 @@ dependencies = [
 
 [[package]]
 name = "sqlx-macros-core"
-version = "0.7.3"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0bd4519486723648186a08785143599760f7cc81c52334a55d6a83ea1e20841"
+checksum = "5833ef53aaa16d860e92123292f1f6a3d53c34ba8b1969f152ef1a7bb803f3c8"
 dependencies = [
- "atomic-write-file",
  "dotenvy",
  "either",
- "heck",
+ "heck 0.4.1",
  "hex",
  "once_cell",
  "proc-macro2",
@@ -6387,13 +5956,13 @@ dependencies = [
 
 [[package]]
 name = "sqlx-mysql"
-version = "0.7.3"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e37195395df71fd068f6e2082247891bc11e3289624bbc776a0cdfa1ca7f1ea4"
+checksum = "1ed31390216d20e538e447a7a9b959e06ed9fc51c37b514b46eb758016ecd418"
 dependencies = [
  "atoi",
- "base64 0.21.5",
- "bitflags 2.4.1",
+ "base64 0.21.7",
+ "bitflags 2.5.0",
  "byteorder",
  "bytes",
  "chrono",
@@ -6431,13 +6000,13 @@ dependencies = [
 
 [[package]]
 name = "sqlx-postgres"
-version = "0.7.3"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6ac0ac3b7ccd10cc96c7ab29791a7dd236bd94021f31eec7ba3d46a74aa1c24"
+checksum = "7c824eb80b894f926f89a0b9da0c7f435d27cdd35b8c655b114e58223918577e"
 dependencies = [
  "atoi",
- "base64 0.21.5",
- "bitflags 2.4.1",
+ "base64 0.21.7",
+ "bitflags 2.5.0",
  "byteorder",
  "chrono",
  "crc",
@@ -6459,7 +6028,6 @@ dependencies = [
  "rand 0.8.5",
  "serde",
  "serde_json",
- "sha1",
  "sha2",
  "smallvec",
  "sqlx-core",
@@ -6472,9 +6040,9 @@ dependencies = [
 
 [[package]]
 name = "sqlx-sqlite"
-version = "0.7.3"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "210976b7d948c7ba9fced8ca835b11cbb2d677c59c79de41ac0d397e14547490"
+checksum = "b244ef0a8414da0bed4bb1910426e890b19e5e9bccc27ada6b797d05c55ae0aa"
 dependencies = [
  "atoi",
  "chrono",
@@ -6496,12 +6064,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "stable_deref_trait"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
-
-[[package]]
 name = "static_assertions"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6531,6 +6093,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
+name = "strsim"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
+
+[[package]]
 name = "strum"
 version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6538,11 +6106,11 @@ checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f"
 
 [[package]]
 name = "strum"
-version = "0.25.0"
+version = "0.26.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
+checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29"
 dependencies = [
- "strum_macros 0.25.3",
+ "strum_macros 0.26.2",
 ]
 
 [[package]]
@@ -6551,7 +6119,7 @@ version = "0.24.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
 dependencies = [
- "heck",
+ "heck 0.4.1",
  "proc-macro2",
  "quote",
  "rustversion",
@@ -6560,22 +6128,22 @@ dependencies = [
 
 [[package]]
 name = "strum_macros"
-version = "0.25.3"
+version = "0.26.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
+checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946"
 dependencies = [
- "heck",
+ "heck 0.4.1",
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
 name = "subtle"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
 
 [[package]]
 name = "syn"
@@ -6590,9 +6158,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.39"
+version = "2.0.59"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
+checksum = "4a6531ffc7b071655e4ce2e04bd464c4830bb585a61cabb96cf808f05172615a"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -6639,22 +6207,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "system-interface"
-version = "0.26.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27ce32341b2c0b70c144bbf35627fdc1ef18c76ced5e5e7b3ee8b5ba6b2ab6a0"
-dependencies = [
- "bitflags 2.4.1",
- "cap-fs-ext",
- "cap-std",
- "fd-lock",
- "io-lifetimes",
- "rustix",
- "windows-sys 0.48.0",
- "winx",
-]
-
-[[package]]
 name = "take_mut"
 version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6678,49 +6230,22 @@ dependencies = [
 ]
 
 [[package]]
-name = "target-lexicon"
-version = "0.12.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a"
-
-[[package]]
-name = "target-spec"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bf4306559bd50cb358e7af5692694d6f6fad95cf2c0bea2571dd419f5298e12"
-dependencies = [
- "cfg-expr",
- "guppy-workspace-hack",
- "target-lexicon",
-]
-
-[[package]]
-name = "task-local-extensions"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba323866e5d033818e3240feeb9f7db2c4296674e4d9e16b97b7bf8f490434e8"
-dependencies = [
- "pin-utils",
-]
-
-[[package]]
 name = "tempfile"
-version = "3.8.1"
+version = "3.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if",
- "fastrand 2.0.1",
- "redox_syscall 0.4.1",
+ "fastrand 2.0.2",
  "rustix",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "termcolor"
-version = "1.4.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
 dependencies = [
  "winapi-util",
 ]
@@ -6733,50 +6258,50 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
 
 [[package]]
 name = "test-context"
-version = "0.1.4"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "055831a02a4f5aa28fede67f2902014273eb8c21b958ac5ebbd59b71ef30dbc3"
+checksum = "6676ab8513edfd2601a108621103fdb45cac9098305ca25ec93f7023b06b05d9"
 dependencies = [
- "async-trait",
  "futures",
  "test-context-macros",
 ]
 
 [[package]]
 name = "test-context-macros"
-version = "0.1.4"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8901a55b0a7a06ebc4a674dcca925170da8e613fa3b163a1df804ed10afb154d"
+checksum = "78ea17a2dc368aeca6f554343ced1b1e31f76d63683fa8016e5844bd7a5144a1"
 dependencies = [
+ "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.59",
 ]
 
 [[package]]
 name = "thiserror"
-version = "1.0.50"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
+checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.50"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
+checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
 name = "thread_local"
-version = "1.1.7"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
 dependencies = [
  "cfg-if",
  "once_cell",
@@ -6784,13 +6309,14 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.30"
+version = "0.3.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5"
+checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
 dependencies = [
  "deranged",
  "itoa",
  "libc",
+ "num-conv",
  "num_threads",
  "powerfmt",
  "serde",
@@ -6806,10 +6332,11 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.15"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"
+checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
 dependencies = [
+ "num-conv",
  "time-core",
 ]
 
@@ -6830,19 +6357,19 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.34.0"
+version = "1.37.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9"
+checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787"
 dependencies = [
  "backtrace",
  "bytes",
  "libc",
  "mio",
  "num_cpus",
- "parking_lot 0.12.1",
+ "parking_lot",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2 0.5.5",
+ "socket2 0.5.6",
  "tokio-macros",
  "windows-sys 0.48.0",
 ]
@@ -6865,7 +6392,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
@@ -6874,32 +6401,30 @@ version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
 dependencies = [
- "rustls",
+ "rustls 0.21.11",
  "tokio",
 ]
 
 [[package]]
-name = "tokio-stream"
-version = "0.1.14"
+name = "tokio-rustls"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"
+checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
 dependencies = [
- "futures-core",
- "pin-project-lite",
+ "rustls 0.22.4",
+ "rustls-pki-types",
  "tokio",
 ]
 
 [[package]]
-name = "tokio-test"
-version = "0.4.3"
+name = "tokio-stream"
+version = "0.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e89b3cbabd3ae862100094ae433e1def582cf86451b4e9bf83aa7ac1d8a7d719"
+checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af"
 dependencies = [
- "async-stream",
- "bytes",
  "futures-core",
+ "pin-project-lite",
  "tokio",
- "tokio-stream",
 ]
 
 [[package]]
@@ -6910,11 +6435,11 @@ checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c"
 dependencies = [
  "futures-util",
  "log",
- "rustls",
+ "rustls 0.21.11",
  "tokio",
- "tokio-rustls",
+ "tokio-rustls 0.24.1",
  "tungstenite",
- "webpki-roots",
+ "webpki-roots 0.25.4",
 ]
 
 [[package]]
@@ -6933,53 +6458,15 @@ dependencies = [
 ]
 
 [[package]]
-name = "tokiotest-httpserver"
-version = "0.2.1"
-source = "git+https://github.com/shuttle-hq/tokiotest-httpserver?branch=feat/body#ca413a227397f0d0441b4454581ddd803acabdd7"
-dependencies = [
- "async-trait",
- "futures",
- "hyper 0.14.27",
- "lazy_static",
- "queues",
- "serde_json",
- "test-context",
- "tokio",
- "tokio-test",
- "tower-http 0.2.5",
-]
-
-[[package]]
-name = "toml"
-version = "0.5.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "toml"
-version = "0.7.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257"
-dependencies = [
- "serde",
- "serde_spanned",
- "toml_datetime",
- "toml_edit 0.19.15",
-]
-
-[[package]]
 name = "toml"
-version = "0.8.8"
+version = "0.8.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
+checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.21.0",
+ "toml_edit 0.22.9",
 ]
 
 [[package]]
@@ -6993,39 +6480,26 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.19.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
-dependencies = [
- "indexmap 2.1.0",
- "serde",
- "serde_spanned",
- "toml_datetime",
- "winnow",
-]
-
-[[package]]
-name = "toml_edit"
 version = "0.20.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81"
 dependencies = [
- "indexmap 2.1.0",
+ "indexmap 2.2.6",
  "toml_datetime",
- "winnow",
+ "winnow 0.5.40",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.21.0"
+version = "0.22.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
+checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4"
 dependencies = [
- "indexmap 2.1.0",
+ "indexmap 2.2.6",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow",
+ "winnow 0.6.6",
 ]
 
 [[package]]
@@ -7036,14 +6510,14 @@ checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a"
 dependencies = [
  "async-trait",
  "axum",
- "base64 0.21.5",
+ "base64 0.21.7",
  "bytes",
  "futures-core",
  "futures-util",
- "h2 0.3.24",
- "http 0.2.11",
- "http-body 0.4.5",
- "hyper 0.14.27",
+ "h2 0.3.26",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "hyper 0.14.28",
  "hyper-timeout",
  "percent-encoding",
  "pin-project",
@@ -7065,16 +6539,16 @@ dependencies = [
  "async-stream",
  "async-trait",
  "axum",
- "base64 0.21.5",
+ "base64 0.21.7",
  "bytes",
- "h2 0.3.24",
- "http 0.2.11",
- "http-body 0.4.5",
- "hyper 0.14.27",
+ "h2 0.3.26",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "hyper 0.14.28",
  "hyper-timeout",
  "percent-encoding",
  "pin-project",
- "prost 0.12.3",
+ "prost 0.12.4",
  "tokio",
  "tokio-stream",
  "tower",
@@ -7105,34 +6579,16 @@ dependencies = [
 
 [[package]]
 name = "tower-http"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aba3f3efabf7fb41fae8534fc20a817013dd1c12cb45441efb6c82e6556b4cd8"
-dependencies = [
- "bitflags 1.3.2",
- "bytes",
- "futures-core",
- "futures-util",
- "http 0.2.11",
- "http-body 0.4.5",
- "http-range-header",
- "pin-project-lite",
- "tower-layer",
- "tower-service",
-]
-
-[[package]]
-name = "tower-http"
 version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "bytes",
  "futures-core",
  "futures-util",
- "http 0.2.11",
- "http-body 0.4.5",
+ "http 0.2.12",
+ "http-body 0.4.6",
  "http-range-header",
  "pin-project-lite",
  "tower-layer",
@@ -7152,7 +6608,7 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4f8277387194ad48739f3516a54ef4486927ba53b8d889871f3715fb8f99f5aa"
 dependencies = [
- "http 0.2.11",
+ "http 0.2.12",
  "tower-layer",
  "tower-service",
  "url-escape",
@@ -7184,7 +6640,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
@@ -7234,7 +6690,7 @@ dependencies = [
  "tracing-core",
  "tracing-log",
  "tracing-subscriber",
- "web-time",
+ "web-time 0.2.4",
 ]
 
 [[package]]
@@ -7277,7 +6733,7 @@ dependencies = [
  "async-trait",
  "cfg-if",
  "data-encoding",
- "enum-as-inner 0.4.0",
+ "enum-as-inner",
  "futures-channel",
  "futures-io",
  "futures-util",
@@ -7294,31 +6750,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "trust-dns-proto"
-version = "0.23.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374"
-dependencies = [
- "async-trait",
- "cfg-if",
- "data-encoding",
- "enum-as-inner 0.6.0",
- "futures-channel",
- "futures-io",
- "futures-util",
- "idna 0.4.0",
- "ipnet",
- "once_cell",
- "rand 0.8.5",
- "smallvec",
- "thiserror",
- "tinyvec",
- "tokio",
- "tracing",
- "url",
-]
-
-[[package]]
 name = "trust-dns-resolver"
 version = "0.21.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -7330,33 +6761,12 @@ dependencies = [
  "lazy_static",
  "log",
  "lru-cache",
- "parking_lot 0.12.1",
+ "parking_lot",
  "resolv-conf",
  "smallvec",
  "thiserror",
  "tokio",
- "trust-dns-proto 0.21.2",
-]
-
-[[package]]
-name = "trust-dns-resolver"
-version = "0.23.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10a3e6c3aff1718b3c73e395d1f35202ba2ffa847c6a62eea0db8fb4cfe30be6"
-dependencies = [
- "cfg-if",
- "futures-util",
- "ipconfig",
- "lru-cache",
- "once_cell",
- "parking_lot 0.12.1",
- "rand 0.8.5",
- "resolv-conf",
- "smallvec",
- "thiserror",
- "tokio",
- "tracing",
- "trust-dns-proto 0.23.2",
+ "trust-dns-proto",
 ]
 
 [[package]]
@@ -7367,17 +6777,17 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
 
 [[package]]
 name = "trybuild"
-version = "1.0.85"
+version = "1.0.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "196a58260a906cedb9bf6d8034b6379d0c11f552416960452f267402ceeddff1"
+checksum = "8ad7eb6319ebadebca3dacf1f85a93bc54b73dd81b9036795f73de7ddfe27d5a"
 dependencies = [
- "basic-toml",
  "glob",
  "once_cell",
  "serde",
  "serde_derive",
  "serde_json",
  "termcolor",
+ "toml",
 ]
 
 [[package]]
@@ -7398,11 +6808,11 @@ dependencies = [
  "byteorder",
  "bytes",
  "data-encoding",
- "http 0.2.11",
+ "http 0.2.12",
  "httparse",
  "log",
  "rand 0.8.5",
- "rustls",
+ "rustls 0.21.11",
  "sha1",
  "thiserror",
  "url",
@@ -7428,12 +6838,14 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 
 [[package]]
 name = "ulid"
-version = "1.1.0"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e37c4b6cbcc59a8dcd09a6429fbc7890286bcbb79215cea7b38a3c4c0921d93"
+checksum = "34778c17965aa2a08913b57e1f34db9b4a63f5de31768b55bf20d2795f921259"
 dependencies = [
+ "getrandom 0.2.14",
  "rand 0.8.5",
  "serde",
+ "web-time 1.1.0",
 ]
 
 [[package]]
@@ -7453,9 +6865,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.14"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-bom"
@@ -7471,18 +6883,18 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
 dependencies = [
  "tinyvec",
 ]
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.10.1"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
 
 [[package]]
 name = "unicode-width"
@@ -7555,11 +6967,11 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
 name = "uuid"
-version = "1.6.1"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560"
+checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
 dependencies = [
- "getrandom 0.2.11",
+ "getrandom 0.2.14",
  "serde",
 ]
 
@@ -7604,9 +7016,9 @@ checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
 
 [[package]]
 name = "walkdir"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
 dependencies = [
  "same-file",
  "winapi-util",
@@ -7634,54 +7046,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
-name = "wasi-cap-std-sync"
-version = "13.0.1"
+name = "wasite"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77c4db6155e71cfae4ed732d87c2583faf4bbdcb77372697eb77d636f46108ba"
-dependencies = [
- "anyhow",
- "async-trait",
- "cap-fs-ext",
- "cap-rand",
- "cap-std",
- "cap-time-ext",
- "fs-set-times",
- "io-extras",
- "io-lifetimes",
- "is-terminal",
- "once_cell",
- "rustix",
- "system-interface",
- "tracing",
- "wasi-common",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "wasi-common"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf3f291b2a567f266ac488715f1742f62b2ca633524708c62ead9c0f71b7d72c"
-dependencies = [
- "anyhow",
- "bitflags 2.4.1",
- "cap-rand",
- "cap-std",
- "io-extras",
- "log",
- "rustix",
- "thiserror",
- "tracing",
- "wasmtime",
- "wiggle",
- "windows-sys 0.48.0",
-]
+checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -7689,24 +7063,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.39"
+version = "0.4.42"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12"
+checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -7716,9 +7090,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -7726,462 +7100,38 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.89"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
-
-[[package]]
-name = "wasm-encoder"
-version = "0.32.0"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ba64e81215916eaeb48fee292f29401d69235d62d8b8fd92a7b2844ec5ae5f7"
-dependencies = [
- "leb128",
-]
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
-name = "wasm-encoder"
-version = "0.38.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ad2b51884de9c7f4fe2fd1043fccb8dcad4b1e29558146ee57a144d15779f3f"
-dependencies = [
- "leb128",
-]
-
-[[package]]
-name = "wasm-timer"
-version = "0.2.5"
+name = "web-sys"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f"
+checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
 dependencies = [
- "futures",
  "js-sys",
- "parking_lot 0.11.2",
- "pin-utils",
  "wasm-bindgen",
- "wasm-bindgen-futures",
- "web-sys",
 ]
 
 [[package]]
-name = "wasmparser"
-version = "0.112.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e986b010f47fcce49cf8ea5d5f9e5d2737832f12b53ae8ae785bbe895d0877bf"
-dependencies = [
- "indexmap 2.1.0",
- "semver 1.0.20",
-]
-
-[[package]]
-name = "wasmparser"
-version = "0.118.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95ee9723b928e735d53000dec9eae7b07a60e490c85ab54abb66659fc61bfcd9"
-dependencies = [
- "indexmap 2.1.0",
- "semver 1.0.20",
-]
-
-[[package]]
-name = "wasmprinter"
-version = "0.2.75"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d027eb8294904fc715ac0870cebe6b0271e96b90605ee21511e7565c4ce568c"
-dependencies = [
- "anyhow",
- "wasmparser 0.118.1",
-]
-
-[[package]]
-name = "wasmtime"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0263693caa1486bd4d26a5f18511948a706c9290689386b81b851ce088063ce"
-dependencies = [
- "anyhow",
- "async-trait",
- "bincode",
- "bumpalo",
- "cfg-if",
- "encoding_rs",
- "fxprof-processed-profile",
- "indexmap 2.1.0",
- "libc",
- "log",
- "object",
- "once_cell",
- "paste",
- "psm",
- "rayon",
- "serde",
- "serde_derive",
- "serde_json",
- "target-lexicon",
- "wasm-encoder 0.32.0",
- "wasmparser 0.112.0",
- "wasmtime-cache",
- "wasmtime-component-macro",
- "wasmtime-component-util",
- "wasmtime-cranelift",
- "wasmtime-environ",
- "wasmtime-fiber",
- "wasmtime-jit",
- "wasmtime-runtime",
- "wasmtime-winch",
- "wat",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "wasmtime-asm-macros"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4711e5969236ecfbe70c807804ff9ffb5206c1dbb5c55c5e8200d9f7e8e76adf"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "wasmtime-cache"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b79f9f79188e5a26b6911b79d3171c06699d9a17ae07f6a265c51635b8d80c2"
-dependencies = [
- "anyhow",
- "base64 0.21.5",
- "bincode",
- "directories-next",
- "log",
- "rustix",
- "serde",
- "serde_derive",
- "sha2",
- "toml 0.5.11",
- "windows-sys 0.48.0",
- "zstd",
-]
-
-[[package]]
-name = "wasmtime-component-macro"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed724d0f41c21bcf8754651a59d0423c530069ddca4cf3822768489ad313a812"
-dependencies = [
- "anyhow",
- "proc-macro2",
- "quote",
- "syn 2.0.39",
- "wasmtime-component-util",
- "wasmtime-wit-bindgen",
- "wit-parser",
-]
-
-[[package]]
-name = "wasmtime-component-util"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e7d69464b94bd312a27d93d0b482cd74bedf01f030199ef0740d6300ebca1d3"
-
-[[package]]
-name = "wasmtime-cranelift"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e63f53c61ba05eb815f905c1738ad82c95333dd42ef5a8cc2aa3d7dfb2b08d7"
-dependencies = [
- "anyhow",
- "cfg-if",
- "cranelift-codegen",
- "cranelift-control",
- "cranelift-entity",
- "cranelift-frontend",
- "cranelift-native",
- "cranelift-wasm",
- "gimli",
- "log",
- "object",
- "target-lexicon",
- "thiserror",
- "wasmparser 0.112.0",
- "wasmtime-cranelift-shared",
- "wasmtime-environ",
- "wasmtime-versioned-export-macros",
-]
-
-[[package]]
-name = "wasmtime-cranelift-shared"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f6b197d68612f7dc3a17aa9f9587533715ecb8b4755609ce9baf7fb92b74ddc"
-dependencies = [
- "anyhow",
- "cranelift-codegen",
- "cranelift-control",
- "cranelift-native",
- "gimli",
- "object",
- "target-lexicon",
- "wasmtime-environ",
-]
-
-[[package]]
-name = "wasmtime-environ"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18e2558c8b04fd27764d8601d46b8dc39555b79720a41e626bce210a80758932"
-dependencies = [
- "anyhow",
- "cranelift-entity",
- "gimli",
- "indexmap 2.1.0",
- "log",
- "object",
- "serde",
- "serde_derive",
- "target-lexicon",
- "thiserror",
- "wasm-encoder 0.32.0",
- "wasmparser 0.112.0",
- "wasmprinter",
- "wasmtime-component-util",
- "wasmtime-types",
-]
-
-[[package]]
-name = "wasmtime-fiber"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a615a2cf64a49c0dc659c7d850c6cd377b975e0abfdcf0888b282d274a82e730"
-dependencies = [
- "cc",
- "cfg-if",
- "rustix",
- "wasmtime-asm-macros",
- "wasmtime-versioned-export-macros",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "wasmtime-jit"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd775514b8034b85b0323bfdc60abb1c28d27dbf6e22aad083ed57dac95cf72e"
-dependencies = [
- "addr2line",
- "anyhow",
- "bincode",
- "cfg-if",
- "cpp_demangle",
- "gimli",
- "ittapi",
- "log",
- "object",
- "rustc-demangle",
- "rustix",
- "serde",
- "serde_derive",
- "target-lexicon",
- "wasmtime-environ",
- "wasmtime-jit-debug",
- "wasmtime-jit-icache-coherence",
- "wasmtime-runtime",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "wasmtime-jit-debug"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c054e27c6ce2a6191edabe89e646da013044dd5369e1d203c89f977f9bd32937"
-dependencies = [
- "object",
- "once_cell",
- "rustix",
- "wasmtime-versioned-export-macros",
-]
-
-[[package]]
-name = "wasmtime-jit-icache-coherence"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f323977cddf4a262d1b856366b665c5b4d01793c57b79fb42505b9fd9e61e5b"
-dependencies = [
- "cfg-if",
- "libc",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "wasmtime-runtime"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29e26461bba043f73cb4183f4ce0d606c0eaac112475867b11e5ea36fe1cac8e"
-dependencies = [
- "anyhow",
- "cc",
- "cfg-if",
- "encoding_rs",
- "indexmap 2.1.0",
- "libc",
- "log",
- "mach",
- "memfd",
- "memoffset 0.9.0",
- "paste",
- "rand 0.8.5",
- "rustix",
- "sptr",
- "wasm-encoder 0.32.0",
- "wasmtime-asm-macros",
- "wasmtime-environ",
- "wasmtime-fiber",
- "wasmtime-jit-debug",
- "wasmtime-versioned-export-macros",
- "wasmtime-wmemcheck",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "wasmtime-types"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fd7e9b29fee64eea5058cb5e7cb3480b52c2f1312d431d16ea8617ceebeb421"
-dependencies = [
- "cranelift-entity",
- "serde",
- "serde_derive",
- "thiserror",
- "wasmparser 0.112.0",
-]
-
-[[package]]
-name = "wasmtime-versioned-export-macros"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6362c557c36d8ad4aaab735f14ed9e4f78d6b40ec85a02a88fd859af87682e52"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.39",
-]
-
-[[package]]
-name = "wasmtime-wasi"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52c9e79f73320d96cd7644b021502dffee09dd92300b073f3541ae44e9ae377c"
-dependencies = [
- "anyhow",
- "async-trait",
- "bitflags 2.4.1",
- "bytes",
- "cap-fs-ext",
- "cap-net-ext",
- "cap-rand",
- "cap-std",
- "cap-time-ext",
- "fs-set-times",
- "futures",
- "io-extras",
- "io-lifetimes",
- "is-terminal",
- "libc",
- "once_cell",
- "rustix",
- "system-interface",
- "thiserror",
- "tokio",
- "tracing",
- "wasi-cap-std-sync",
- "wasi-common",
- "wasmtime",
- "wiggle",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "wasmtime-winch"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa5fc7212424c04c01a20bfa66c4c518e8749dde6546f5e05815dcacbec80723"
-dependencies = [
- "anyhow",
- "cranelift-codegen",
- "gimli",
- "object",
- "target-lexicon",
- "wasmparser 0.112.0",
- "wasmtime-cranelift-shared",
- "wasmtime-environ",
- "winch-codegen",
-]
-
-[[package]]
-name = "wasmtime-wit-bindgen"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcc03bd58f77a68dc6a0b2ba2f8e64b1f902b50389d21bbcc690ef2f3bb87198"
-dependencies = [
- "anyhow",
- "heck",
- "indexmap 2.1.0",
- "wit-parser",
-]
-
-[[package]]
-name = "wasmtime-wmemcheck"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e485bf54eba675ca615f8f55788d3a8cd44e7bd09b8b4011edc22c2c41d859e"
-
-[[package]]
-name = "wast"
-version = "35.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ef140f1b49946586078353a453a1d28ba90adfc54dde75710bc1931de204d68"
-dependencies = [
- "leb128",
-]
-
-[[package]]
-name = "wast"
-version = "69.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1ee37317321afde358e4d7593745942c48d6d17e0e6e943704de9bbee121e7a"
-dependencies = [
- "leb128",
- "memchr",
- "unicode-width",
- "wasm-encoder 0.38.1",
-]
-
-[[package]]
-name = "wat"
-version = "1.0.82"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aeb338ee8dee4d4cd05e6426683f21c5087dc7cfc8903e839ccf48d43332da3c"
-dependencies = [
- "wast 69.0.1",
-]
-
-[[package]]
-name = "web-sys"
-version = "0.3.66"
+name = "web-time"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f"
+checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -8189,9 +7139,9 @@ dependencies = [
 
 [[package]]
 name = "web-time"
-version = "0.2.3"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57099a701fb3a8043f993e8228dc24229c7b942e2b009a1b962e54489ba1d3bf"
+checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -8199,9 +7149,9 @@ dependencies = [
 
 [[package]]
 name = "webbrowser"
-version = "0.8.12"
+version = "0.8.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82b2391658b02c27719fc5a0a73d6e696285138e8b12fba9d4baa70451023c71"
+checksum = "db67ae75a9405634f5882791678772c94ff5f16a66535aae186e26aa0841fc8b"
 dependencies = [
  "core-foundation",
  "home",
@@ -8216,63 +7166,34 @@ dependencies = [
 
 [[package]]
 name = "webpki-roots"
-version = "0.25.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10"
-
-[[package]]
-name = "whoami"
-version = "1.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50"
-
-[[package]]
-name = "widestring"
-version = "1.0.2"
+version = "0.25.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8"
+checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
 
 [[package]]
-name = "wiggle"
-version = "13.0.1"
+name = "webpki-roots"
+version = "0.26.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e81ddbdc400b38d04241d740d0406ef343bd242c460f252fe59f29ad964ad24c"
+checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009"
 dependencies = [
- "anyhow",
- "async-trait",
- "bitflags 2.4.1",
- "thiserror",
- "tracing",
- "wasmtime",
- "wiggle-macro",
+ "rustls-pki-types",
 ]
 
 [[package]]
-name = "wiggle-generate"
-version = "13.0.1"
+name = "whoami"
+version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c993123d6db1a1908ef8352aabdf2e681a3dcdedc3656beb747e4db16d3cf08"
+checksum = "a44ab49fad634e88f55bf8f9bb3abd2f27d7204172a112c7c9987e01c1c94ea9"
 dependencies = [
- "anyhow",
- "heck",
- "proc-macro2",
- "quote",
- "shellexpand",
- "syn 2.0.39",
- "witx",
+ "redox_syscall",
+ "wasite",
 ]
 
 [[package]]
-name = "wiggle-macro"
-version = "13.0.1"
+name = "widestring"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "476e3e09bc68e82624b70a322265515523754cb9e05fcacceabd216e276bc2ed"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.39",
- "wiggle-generate",
-]
+checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311"
 
 [[package]]
 name = "winapi"
@@ -8306,37 +7227,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
-name = "winch-codegen"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9b01ca6722f7421c9cdbe4c9b62342ce864d0a9e8736d56dac717a86b1a65ae"
-dependencies = [
- "anyhow",
- "cranelift-codegen",
- "gimli",
- "regalloc2",
- "smallvec",
- "target-lexicon",
- "wasmparser 0.112.0",
- "wasmtime-environ",
-]
-
-[[package]]
-name = "windows"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
-dependencies = [
- "windows-targets 0.48.5",
-]
-
-[[package]]
 name = "windows-core"
-version = "0.51.1"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.48.5",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -8363,7 +7259,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -8398,17 +7294,18 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.0",
- "windows_aarch64_msvc 0.52.0",
- "windows_i686_gnu 0.52.0",
- "windows_i686_msvc 0.52.0",
- "windows_x86_64_gnu 0.52.0",
- "windows_x86_64_gnullvm 0.52.0",
- "windows_x86_64_msvc 0.52.0",
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
 ]
 
 [[package]]
@@ -8425,9 +7322,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -8443,9 +7340,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -8461,9 +7358,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.0"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -8479,9 +7382,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -8497,9 +7400,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -8515,9 +7418,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -8533,15 +7436,24 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.0"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
+
+[[package]]
+name = "winnow"
+version = "0.5.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
 
 [[package]]
 name = "winnow"
-version = "0.5.25"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7e87b8dfbe3baffbe687eef2e164e32286eff31a5ee16463ce03d991643ec94"
+checksum = "f0c976aaaa0e1f90dbb21e9587cdaf1d9679a1cde8875c0d6bd83ab96a208352"
 dependencies = [
  "memchr",
 ]
@@ -8557,29 +7469,29 @@ dependencies = [
 ]
 
 [[package]]
-name = "winx"
-version = "0.36.3"
+name = "winreg"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9643b83820c0cd246ecabe5fa454dd04ba4fa67996369466d0747472d337346"
+checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5"
 dependencies = [
- "bitflags 2.4.1",
- "windows-sys 0.52.0",
+ "cfg-if",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "wiremock"
-version = "0.6.0-rc.3"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94819bffc61c498ea8219c8ba084523abd5465ccb0c11be4d9ebc9fa1fbc3617"
+checksum = "ec874e1eef0df2dcac546057fe5e29186f09c378181cd7b635b4b7bcc98e9d81"
 dependencies = [
  "assert-json-diff",
  "async-trait",
- "base64 0.21.5",
+ "base64 0.21.7",
  "deadpool",
  "futures",
- "http 1.0.0",
+ "http 1.1.0",
  "http-body-util",
- "hyper 1.1.0",
+ "hyper 1.3.1",
  "hyper-util",
  "log",
  "once_cell",
@@ -8591,36 +7503,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "wit-parser"
-version = "0.11.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a39edca9abb16309def3843af73b58d47d243fe33a9ceee572446bcc57556b9a"
-dependencies = [
- "anyhow",
- "id-arena",
- "indexmap 2.1.0",
- "log",
- "pulldown-cmark",
- "semver 1.0.20",
- "serde",
- "serde_json",
- "unicode-xid",
- "url",
-]
-
-[[package]]
-name = "witx"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e366f27a5cabcddb2706a78296a40b8fcc451e1a6aba2fc1d94b4a01bdaaef4b"
-dependencies = [
- "anyhow",
- "log",
- "thiserror",
- "wast 35.0.2",
-]
-
-[[package]]
 name = "wyz"
 version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8648,11 +7530,13 @@ dependencies = [
 
 [[package]]
 name = "xattr"
-version = "1.0.1"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985"
+checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
 dependencies = [
  "libc",
+ "linux-raw-sys",
+ "rustix",
 ]
 
 [[package]]
@@ -8678,22 +7562,22 @@ dependencies = [
 
 [[package]]
 name = "zerocopy"
-version = "0.7.31"
+version = "0.7.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c4061bedbb353041c12f413700357bec76df2c7e2ca8e4df8bac24c6bf68e3d"
+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
 dependencies = [
  "zerocopy-derive",
 ]
 
 [[package]]
 name = "zerocopy-derive"
-version = "0.7.31"
+version = "0.7.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a"
+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
@@ -8703,6 +7587,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
 
 [[package]]
+name = "zip"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261"
+dependencies = [
+ "aes",
+ "byteorder",
+ "bzip2",
+ "constant_time_eq",
+ "crc32fast",
+ "crossbeam-utils",
+ "flate2",
+ "hmac",
+ "pbkdf2",
+ "sha1",
+ "time",
+ "zstd",
+]
+
+[[package]]
 name = "zstd"
 version = "0.11.2+zstd.1.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8723,9 +7627,9 @@ dependencies = [
 
 [[package]]
 name = "zstd-sys"
-version = "2.0.9+zstd.1.5.5"
+version = "2.0.10+zstd.1.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656"
+checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa"
 dependencies = [
  "cc",
  "pkg-config",
diff --git a/pkgs/development/tools/rust/cargo-shuttle/default.nix b/pkgs/development/tools/rust/cargo-shuttle/default.nix
index fcc7ff4756f95..4c6a25429ec49 100644
--- a/pkgs/development/tools/rust/cargo-shuttle/default.nix
+++ b/pkgs/development/tools/rust/cargo-shuttle/default.nix
@@ -10,13 +10,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-shuttle";
-  version = "0.39.0";
+  version = "0.45.0";
 
   src = fetchFromGitHub {
     owner = "shuttle-hq";
     repo = "shuttle";
     rev = "v${version}";
-    hash = "sha256-U6C6pUl6Re3fYt5KlBItpErboYXctsotunsUpWmZxiY=";
+    hash = "sha256-bjGyLfeo11Y55WqPwcUxnNkexozlxC61/rSa65gBGZ4=";
   };
 
   cargoLock = {
@@ -24,7 +24,8 @@ rustPlatform.buildRustPackage rec {
     outputHashes = {
       "async-posthog-0.2.3" = "sha256-V0f9+UKZkqh80p7UjINEbAW9y8cKBmJTRjAJZV3no1M=";
       "hyper-reverse-proxy-0.5.2-dev" = "sha256-R1ZXGgWvwHWRHmKX823QLqM6ZJW+tzWUXigKkAyI5OE=";
-      "tokiotest-httpserver-0.2.1" = "sha256-IPUaglIDwCUoczCCnX+R1IBqtc0s8b8toKEL8zN3/i8=";
+      "permit-client-rs-2.0.0" = "sha256-MxsgqPbvWDYDOb3oGuD1I6d3cdcGAhfoWsI7cwfhrb4=";
+      "permit-pdp-client-rs-0.2.0" = "sha256-F9wSvo3WzoRXjZb+We0Bvcwx3rRSG1QxXPsvrmtIN38=";
     };
   };
 
@@ -48,7 +49,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A cargo command for the shuttle platform";
+    description = "Cargo command for the shuttle platform";
     mainProgram = "cargo-shuttle";
     homepage = "https://shuttle.rs";
     changelog = "https://github.com/shuttle-hq/shuttle/releases/tag/${src.rev}";
diff --git a/pkgs/development/tools/rust/cargo-sort/default.nix b/pkgs/development/tools/rust/cargo-sort/default.nix
index ab85a75d916ec..cb8efeef12308 100644
--- a/pkgs/development/tools/rust/cargo-sort/default.nix
+++ b/pkgs/development/tools/rust/cargo-sort/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "sha256-JON6cE1ZHeI+0vU9AJp0e1TIbiH3AWjHyn0jd9PNqQU=";
 
   meta = with lib; {
-    description = "A tool to check that your Cargo.toml dependencies are sorted alphabetically";
+    description = "Tool to check that your Cargo.toml dependencies are sorted alphabetically";
     mainProgram = "cargo-sort";
     homepage = "https://github.com/devinr528/cargo-sort";
     changelog = "https://github.com/devinr528/cargo-sort/blob/v${version}/changelog.md";
diff --git a/pkgs/development/tools/rust/cargo-sweep/default.nix b/pkgs/development/tools/rust/cargo-sweep/default.nix
index 0fc6a01be0996..08e0416a9aef7 100644
--- a/pkgs/development/tools/rust/cargo-sweep/default.nix
+++ b/pkgs/development/tools/rust/cargo-sweep/default.nix
@@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Cargo subcommand for cleaning up unused build files generated by Cargo";
+    description = "Cargo subcommand for cleaning up unused build files generated by Cargo";
     mainProgram = "cargo-sweep";
     homepage = "https://github.com/holmgr/cargo-sweep";
     license = licenses.mit;
diff --git a/pkgs/development/tools/rust/cargo-sync-readme/default.nix b/pkgs/development/tools/rust/cargo-sync-readme/default.nix
index c4205fb1a660f..c790f097a2a95 100644
--- a/pkgs/development/tools/rust/cargo-sync-readme/default.nix
+++ b/pkgs/development/tools/rust/cargo-sync-readme/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "sha256-DsB2C2ELuvuVSvxG/xztmnY2qfX8+Y7udbXlpRQoL/c=";
 
   meta = with lib; {
-    description = "A cargo plugin that generates a Markdown section in your README based on your Rust documentation";
+    description = "Cargo plugin that generates a Markdown section in your README based on your Rust documentation";
     mainProgram = "cargo-sync-readme";
     homepage = "https://github.com/phaazon/cargo-sync-readme";
     changelog = "https://github.com/phaazon/cargo-sync-readme/blob/${version}/CHANGELOG.md";
diff --git a/pkgs/development/tools/rust/cargo-tauri/default.nix b/pkgs/development/tools/rust/cargo-tauri/default.nix
index 26f99c332a434..db1a2821de963 100644
--- a/pkgs/development/tools/rust/cargo-tauri/default.nix
+++ b/pkgs/development/tools/rust/cargo-tauri/default.nix
@@ -17,20 +17,20 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "tauri";
-  version = "1.6.6";
+  version = "1.6.8";
 
   src = fetchFromGitHub {
     owner = "tauri-apps";
     repo = pname;
     rev = "tauri-v${version}";
-    hash = "sha256-RttKRAjkD12E8gvOum/ynHecsvrZWw3br3OzQuvutcA=";
+    hash = "sha256-6GUgxSfuy2v38lYVdjsN0vd63/Aci0ERgG2kF2E2AFA=";
   };
 
   # Manually specify the sourceRoot since this crate depends on other crates in the workspace. Relevant info at
   # https://discourse.nixos.org/t/difficulty-using-buildrustpackage-with-a-src-containing-multiple-cargo-workspaces/10202
   sourceRoot = "${src.name}/tooling/cli";
 
-  cargoHash = "sha256-vxLFw+tD6+IdV58A6nmFwuhcgbCBpcMfpej8VsBmJ1w=";
+  cargoHash = "sha256-HC+6AoBx51ahK6QA1Ug7jaKftkE5W3FS629uQ0yrV3Q=";
 
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isLinux [ glibc libsoup cairo gtk3 webkitgtk ]
     ++ lib.optionals stdenv.isDarwin [ CoreServices Security SystemConfiguration ];
diff --git a/pkgs/development/tools/rust/cargo-temp/default.nix b/pkgs/development/tools/rust/cargo-temp/default.nix
index 7c4a84401095d..a00d4fef2275c 100644
--- a/pkgs/development/tools/rust/cargo-temp/default.nix
+++ b/pkgs/development/tools/rust/cargo-temp/default.nix
@@ -2,19 +2,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-temp";
-  version = "0.2.20";
+  version = "0.2.21";
 
   src = fetchFromGitHub {
     owner = "yozhgoor";
     repo = "cargo-temp";
     rev = "v${version}";
-    hash = "sha256-zyzzYftoMNPHvCtGYsxEiiWXd3vjWTfmiIpEJ86ac9c=";
+    hash = "sha256-8VkhEpggSoE0DIdZk8Y1fCYAwN6CZd2nK6auWRIbS6w=";
   };
 
-  cargoHash = "sha256-qkYvgKTT4wdYBRTwtDiHYCEBtbNjr6CWQB2y/kL0f8Y=";
+  cargoHash = "sha256-fYpG/Bl3hsbkWWTkbX59UqD/HuL9OpmcZc6hPAmnNtM=";
 
   meta = with lib; {
-    description = "A CLI tool that allow you to create a temporary new Rust project using cargo with already installed dependencies";
+    description = "CLI tool that allow you to create a temporary new Rust project using cargo with already installed dependencies";
     mainProgram = "cargo-temp";
     homepage = "https://github.com/yozhgoor/cargo-temp";
     changelog = "https://github.com/yozhgoor/cargo-temp/releases/tag/${src.rev}";
diff --git a/pkgs/development/tools/rust/cargo-toml-lint/default.nix b/pkgs/development/tools/rust/cargo-toml-lint/default.nix
index 53595043342bc..a32f6e4bc6956 100644
--- a/pkgs/development/tools/rust/cargo-toml-lint/default.nix
+++ b/pkgs/development/tools/rust/cargo-toml-lint/default.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-ujdekIucqes2Wya4jwTMLstb8JMptbAlqYhgMxfp2gg=";
 
   meta = with lib; {
-    description = "A simple linter for Cargo.toml manifests";
+    description = "Simple linter for Cargo.toml manifests";
     mainProgram = "cargo-toml-lint";
     homepage = "https://github.com/fuellabs/cargo-toml-lint";
     changelog = "https://github.com/fuellabs/cargo-toml-lint/releases/tag/v${version}";
diff --git a/pkgs/development/tools/rust/cargo-ui/default.nix b/pkgs/development/tools/rust/cargo-ui/default.nix
index e58c34a03f4f7..01578e497deb2 100644
--- a/pkgs/development/tools/rust/cargo-ui/default.nix
+++ b/pkgs/development/tools/rust/cargo-ui/default.nix
@@ -53,7 +53,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A GUI for Cargo";
+    description = "GUI for Cargo";
     mainProgram = "cargo-ui";
     homepage = "https://github.com/slint-ui/cargo-ui";
     changelog = "https://github.com/slint-ui/cargo-ui/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/development/tools/rust/cargo-unused-features/default.nix b/pkgs/development/tools/rust/cargo-unused-features/default.nix
index 70518087e0864..32fae29d903aa 100644
--- a/pkgs/development/tools/rust/cargo-unused-features/default.nix
+++ b/pkgs/development/tools/rust/cargo-unused-features/default.nix
@@ -39,7 +39,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A tool to find potential unused enabled feature flags and prune them";
+    description = "Tool to find potential unused enabled feature flags and prune them";
     homepage = "https://github.com/timonpost/cargo-unused-features";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda matthiasbeyer ];
diff --git a/pkgs/development/tools/rust/cargo-update/default.nix b/pkgs/development/tools/rust/cargo-update/default.nix
index c27c3e0e7572b..e24fe156332f5 100644
--- a/pkgs/development/tools/rust/cargo-update/default.nix
+++ b/pkgs/development/tools/rust/cargo-update/default.nix
@@ -60,7 +60,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A cargo subcommand for checking and applying updates to installed executables";
+    description = "Cargo subcommand for checking and applying updates to installed executables";
     homepage = "https://github.com/nabijaczleweli/cargo-update";
     changelog = "https://github.com/nabijaczleweli/cargo-update/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/tools/rust/cargo-vet/default.nix b/pkgs/development/tools/rust/cargo-vet/default.nix
index a27e2f375ebd9..0d71a77baabe5 100644
--- a/pkgs/development/tools/rust/cargo-vet/default.nix
+++ b/pkgs/development/tools/rust/cargo-vet/default.nix
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A tool to help projects ensure that third-party Rust dependencies have been audited by a trusted source";
+    description = "Tool to help projects ensure that third-party Rust dependencies have been audited by a trusted source";
     mainProgram = "cargo-vet";
     homepage = "https://mozilla.github.io/cargo-vet";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/pkgs/development/tools/rust/cargo-watch/default.nix b/pkgs/development/tools/rust/cargo-watch/default.nix
index ff9d72db58d91..69c04b520b305 100644
--- a/pkgs/development/tools/rust/cargo-watch/default.nix
+++ b/pkgs/development/tools/rust/cargo-watch/default.nix
@@ -30,7 +30,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A Cargo subcommand for watching over Cargo project's source";
+    description = "Cargo subcommand for watching over Cargo project's source";
     mainProgram = "cargo-watch";
     homepage = "https://github.com/watchexec/cargo-watch";
     license = licenses.cc0;
diff --git a/pkgs/development/tools/rust/cargo-web/default.nix b/pkgs/development/tools/rust/cargo-web/default.nix
index 462e98d6eaa60..d1dd2cc527faa 100644
--- a/pkgs/development/tools/rust/cargo-web/default.nix
+++ b/pkgs/development/tools/rust/cargo-web/default.nix
@@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices Security ];
 
   meta = with lib; {
-    description = "A Cargo subcommand for the client-side Web";
+    description = "Cargo subcommand for the client-side Web";
     mainProgram = "cargo-web";
     homepage = "https://github.com/koute/cargo-web";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/pkgs/development/tools/rust/cargo-whatfeatures/default.nix b/pkgs/development/tools/rust/cargo-whatfeatures/default.nix
index 2aa7b4760ca1d..62bb3dafd4963 100644
--- a/pkgs/development/tools/rust/cargo-whatfeatures/default.nix
+++ b/pkgs/development/tools/rust/cargo-whatfeatures/default.nix
@@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
     ++ lib.optionals stdenv.isDarwin [ Security ];
 
   meta = with lib; {
-    description = "A simple cargo plugin to get a list of features for a specific crate";
+    description = "Simple cargo plugin to get a list of features for a specific crate";
     mainProgram = "cargo-whatfeatures";
     homepage = "https://github.com/museun/cargo-whatfeatures";
     license = with licenses; [ mit asl20 ];
diff --git a/pkgs/development/tools/rust/cargo-workspaces/default.nix b/pkgs/development/tools/rust/cargo-workspaces/default.nix
index b087ef552ca92..1bed092b1c423 100644
--- a/pkgs/development/tools/rust/cargo-workspaces/default.nix
+++ b/pkgs/development/tools/rust/cargo-workspaces/default.nix
@@ -11,14 +11,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-workspaces";
-  version = "0.3.1";
+  version = "0.3.2";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-1YFTBzFr11FUfwgdGJgyF1lWvrfQ6ZPIkYAG7vySfFA=";
+    hash = "sha256-fSvs3dr8dO9n9WCiO1UFr29cp1pvKxL9faOvYnLG+wk=";
   };
 
-  cargoHash = "sha256-wL1DKZ1QhBKB4Gy2rbwe4y/hR4A/wiiVqGAIcM+Om8E=";
+  cargoHash = "sha256-uB3iN7xt0+qEpRelZQ8uurj6Ve9t9sVTCuH6N4+tDh4=";
 
   nativeBuildInputs = [
     pkg-config
@@ -38,7 +38,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A tool for managing cargo workspaces and their crates, inspired by lerna";
+    description = "Tool for managing cargo workspaces and their crates, inspired by lerna";
     longDescription = ''
       A tool that optimizes the workflow around cargo workspaces with
       git and cargo by providing utilities to version, publish, execute
diff --git a/pkgs/development/tools/rust/cargo-zigbuild/default.nix b/pkgs/development/tools/rust/cargo-zigbuild/default.nix
index 4e48a4d74ca09..4ffd90ca1f830 100644
--- a/pkgs/development/tools/rust/cargo-zigbuild/default.nix
+++ b/pkgs/development/tools/rust/cargo-zigbuild/default.nix
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A tool to compile Cargo projects with zig as the linker";
+    description = "Tool to compile Cargo projects with zig as the linker";
     mainProgram = "cargo-zigbuild";
     homepage = "https://github.com/messense/cargo-zigbuild";
     changelog = "https://github.com/messense/cargo-zigbuild/releases/tag/v${version}";
diff --git a/pkgs/development/tools/rust/cargo2junit/default.nix b/pkgs/development/tools/rust/cargo2junit/default.nix
index 6e10cc1fcb35a..d674c5b040713 100644
--- a/pkgs/development/tools/rust/cargo2junit/default.nix
+++ b/pkgs/development/tools/rust/cargo2junit/default.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-u5Pd967qxjqFl9fV/KkClLDBwKql7p66WqbIVBvWKuM=";
 
   meta = with lib; {
-    description = "Converts cargo's json output (from stdin) to JUnit XML (to stdout).";
+    description = "Converts cargo's json output (from stdin) to JUnit XML (to stdout)";
     mainProgram = "cargo2junit";
     homepage = "https://github.com/johnterickson/cargo2junit";
     license = licenses.mit;
diff --git a/pkgs/development/tools/rust/cauwugo/default.nix b/pkgs/development/tools/rust/cauwugo/default.nix
index a4a199a2c70c3..29a7fed011026 100644
--- a/pkgs/development/tools/rust/cauwugo/default.nix
+++ b/pkgs/development/tools/rust/cauwugo/default.nix
@@ -22,7 +22,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "An alternative cargo frontend that implements dynamic shell completion for usual cargo commands";
+    description = "Alternative cargo frontend that implements dynamic shell completion for usual cargo commands";
     mainProgram = "cauwugo";
     homepage = "https://github.com/pacak/bpaf/tree/master/bpaf_cauwugo";
     license = with licenses; [ mit /* or */ asl20 ];
diff --git a/pkgs/development/tools/rust/cbindgen/default.nix b/pkgs/development/tools/rust/cbindgen/default.nix
index ed4841505bcea..da73d1ca6ea69 100644
--- a/pkgs/development/tools/rust/cbindgen/default.nix
+++ b/pkgs/development/tools/rust/cbindgen/default.nix
@@ -43,7 +43,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/mozilla/cbindgen/blob/v${version}/CHANGES";
-    description = "A project for generating C bindings from Rust code";
+    description = "Project for generating C bindings from Rust code";
     mainProgram = "cbindgen";
     homepage = "https://github.com/mozilla/cbindgen";
     license = licenses.mpl20;
diff --git a/pkgs/development/tools/rust/crate2nix/default.nix b/pkgs/development/tools/rust/crate2nix/default.nix
index 175e79e639c34..a32a76aeb898f 100644
--- a/pkgs/development/tools/rust/crate2nix/default.nix
+++ b/pkgs/development/tools/rust/crate2nix/default.nix
@@ -42,7 +42,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A Nix build file generator for Rust crates.";
+    description = "Nix build file generator for Rust crates";
     mainProgram = "crate2nix";
     longDescription = ''
       Crate2nix generates Nix files from Cargo.toml/lock files
diff --git a/pkgs/development/tools/rust/critcmp/default.nix b/pkgs/development/tools/rust/critcmp/default.nix
index 3035e6b97937a..0c142bbf25149 100644
--- a/pkgs/development/tools/rust/critcmp/default.nix
+++ b/pkgs/development/tools/rust/critcmp/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-yzWa+/08tG8h+5V8XBc3k8GDivS6SHW6zVb+ug1sbE0=";
 
   meta = with lib; {
-    description = "A command line tool for comparing benchmarks run by Criterion";
+    description = "Command line tool for comparing benchmarks run by Criterion";
     mainProgram = "critcmp";
     homepage = "https://github.com/BurntSushi/critcmp";
     license = with licenses; [ mit unlicense ];
diff --git a/pkgs/development/tools/rust/duckscript/default.nix b/pkgs/development/tools/rust/duckscript/default.nix
index 41e394bda4408..6f8092dd0fc30 100644
--- a/pkgs/development/tools/rust/duckscript/default.nix
+++ b/pkgs/development/tools/rust/duckscript/default.nix
@@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-bBqcHETEWooMgQeqPOZIK/77DdTtGq1JusBKoRj5K6w=";
 
   meta = with lib; {
-    description = "Simple, extendable and embeddable scripting language.";
+    description = "Simple, extendable and embeddable scripting language";
     homepage = "https://github.com/sagiegurari/duckscript";
     license = licenses.asl20;
     maintainers = with maintainers; [ mkg20001 ];
diff --git a/pkgs/development/tools/rust/leptosfmt/default.nix b/pkgs/development/tools/rust/leptosfmt/default.nix
index 7c174c4249eff..0a6f53fa05333 100644
--- a/pkgs/development/tools/rust/leptosfmt/default.nix
+++ b/pkgs/development/tools/rust/leptosfmt/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-NQYIq9Wc2mtUGeS3Iv2e0nfQkvcX6hOxZ6FHVcHD5cs=";
 
   meta = with lib; {
-    description = "A formatter for the leptos view! macro";
+    description = "Formatter for the leptos view! macro";
     mainProgram = "leptosfmt";
     homepage = "https://github.com/bram209/leptosfmt";
     changelog = "https://github.com/bram209/leptosfmt/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/development/tools/rust/probe-rs/default.nix b/pkgs/development/tools/rust/probe-rs/default.nix
deleted file mode 100644
index cb26888f1b05d..0000000000000
--- a/pkgs/development/tools/rust/probe-rs/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib
-, stdenv
-, rustPlatform
-, fetchFromGitHub
-, pkg-config
-, libusb1
-, openssl
-, DarwinTools
-, AppKit
-}:
-
-rustPlatform.buildRustPackage rec {
-  pname = "probe-rs";
-  version = "0.23.0";
-
-  src = fetchFromGitHub {
-    owner = pname;
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-5V7eLnukVAcOSX52myvaTlDbemGp6mDaWrQc3w4P5MI=";
-  };
-
-  cargoHash = "sha256-sZl4FhaKIMJe7v5AAIM2w7M8Ev7vCht3owkvt0UhOu8=";
-
-  cargoBuildFlags = [ "--features=cli" ];
-
-  nativeBuildInputs = [ pkg-config ] ++ lib.optionals stdenv.isDarwin [ DarwinTools ];
-
-  buildInputs = [ libusb1 openssl ] ++ lib.optionals stdenv.isDarwin [ AppKit ];
-
-  meta = with lib; {
-    description = "CLI tool for on-chip debugging and flashing of ARM chips";
-    homepage = "https://probe.rs/";
-    changelog = "https://github.com/probe-rs/probe-rs/blob/v${version}/CHANGELOG.md";
-    license = with licenses; [ asl20 /* or */ mit ];
-    maintainers = with maintainers; [ xgroleau newam ];
-  };
-}
diff --git a/pkgs/development/tools/rust/ra-multiplex/default.nix b/pkgs/development/tools/rust/ra-multiplex/default.nix
index 4dd7d2cd063d6..0eb0640101096 100644
--- a/pkgs/development/tools/rust/ra-multiplex/default.nix
+++ b/pkgs/development/tools/rust/ra-multiplex/default.nix
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage {
   '';
 
   meta = with lib; {
-    description = "A multiplexer for rust-analyzer";
+    description = "Multiplexer for rust-analyzer";
     mainProgram = "ra-multiplex";
     homepage = "https://github.com/pr2502/ra-multiplex";
     license = with licenses; [ mit ];
diff --git a/pkgs/development/tools/rust/roogle/default.nix b/pkgs/development/tools/rust/roogle/default.nix
index f95cad8588d41..2dbca708add5a 100644
--- a/pkgs/development/tools/rust/roogle/default.nix
+++ b/pkgs/development/tools/rust/roogle/default.nix
@@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A Rust API search engine which allows you to search functions by names and type signatures";
+    description = "Rust API search engine which allows you to search functions by names and type signatures";
     mainProgram = "roogle";
     homepage = "https://github.com/hkmatsumoto/roogle";
     license = with licenses; [ mit /* or */ asl20 ];
diff --git a/pkgs/development/tools/rust/rust-analyzer/default.nix b/pkgs/development/tools/rust/rust-analyzer/default.nix
index 14d398002382a..941460c35d451 100644
--- a/pkgs/development/tools/rust/rust-analyzer/default.nix
+++ b/pkgs/development/tools/rust/rust-analyzer/default.nix
@@ -13,14 +13,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rust-analyzer-unwrapped";
-  version = "2024-04-29";
-  cargoSha256 = "sha256-OvkaBWkq5c3amvDZj51iOXUrfevBMhbCaKGHmrA/23E=";
+  version = "2024-06-11";
+  cargoSha256 = "sha256-mo3TGaUI1gjJX64Di7+M40CzHkIuFAuXl27yJ9GPkPU=";
 
   src = fetchFromGitHub {
     owner = "rust-lang";
     repo = "rust-analyzer";
     rev = version;
-    sha256 = "sha256-zttBYGaoHpZfqWHQ8OI5f9OkGHCHb8tDBMySwsYNa2U=";
+    sha256 = "sha256-/N0sZW3xiivMm5klk9zBtzMlO+uaxnUq35kI3bakLx8=";
   };
 
   cargoBuildFlags = [ "--bin" "rust-analyzer" "--bin" "rust-analyzer-proc-macro-srv" ];
@@ -62,7 +62,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A modular compiler frontend for the Rust language";
+    description = "Modular compiler frontend for the Rust language";
     homepage = "https://rust-analyzer.github.io";
     license = with licenses; [ mit asl20 ];
     maintainers = with maintainers; [ oxalica ];
diff --git a/pkgs/development/tools/rust/rust-audit-info/default.nix b/pkgs/development/tools/rust/rust-audit-info/default.nix
index afd53df7e147c..b0793e11ca387 100644
--- a/pkgs/development/tools/rust/rust-audit-info/default.nix
+++ b/pkgs/development/tools/rust/rust-audit-info/default.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "sha256-bKrdgz6dyv/PF5JXMq7uvsh7SsK/qEd2W7tm6+YYlxg=";
 
   meta = with lib; {
-    description = "A command-line tool to extract the dependency trees embedded in binaries by cargo-auditable";
+    description = "Command-line tool to extract the dependency trees embedded in binaries by cargo-auditable";
     mainProgram = "rust-audit-info";
     homepage = "https://github.com/rust-secure-code/cargo-auditable/tree/master/rust-audit-info";
     license = with licenses; [ mit /* or */ asl20 ];
diff --git a/pkgs/development/tools/rust/rustup/0001-dynamically-patchelf-binaries.patch b/pkgs/development/tools/rust/rustup/0001-dynamically-patchelf-binaries.patch
index 2b191031da607..c3d3b5f8d7b19 100644
--- a/pkgs/development/tools/rust/rustup/0001-dynamically-patchelf-binaries.patch
+++ b/pkgs/development/tools/rust/rustup/0001-dynamically-patchelf-binaries.patch
@@ -1,39 +1,185 @@
 diff --git a/src/dist/component/package.rs b/src/dist/component/package.rs
-index 73a533b5..408ab815 100644
+index dfccc661..85233f3b 100644
 --- a/src/dist/component/package.rs
 +++ b/src/dist/component/package.rs
-@@ -113,6 +113,7 @@ fn install<'a>(
+@@ -113,6 +113,7 @@ impl Package for DirectoryPackage {
                      } else {
                          builder.move_file(path.clone(), &src_path)?
                      }
-+                    nix_patchelf_if_needed(&target.prefix().path().join(path.clone()), &src_path)
++                    nix_patchelf_if_needed(&target.prefix().path().join(path.clone()))
                  }
                  "dir" => {
                      if self.copy {
-@@ -135,6 +136,29 @@ fn components(&self) -> Vec<String> {
+@@ -135,6 +136,175 @@ impl Package for DirectoryPackage {
      }
  }
  
-+fn nix_patchelf_if_needed(dest_path: &Path, src_path: &Path) {
-+    let (is_bin, is_lib) = if let Some(p) = src_path.parent() {
-+        (p.ends_with("bin") || p.ends_with("libexec"), p.ends_with("lib"))
-+    } else {
-+        (false, false)
-+    };
++fn nix_wrap_lld(dest_lld_path: &Path) -> Result<()> {
++    use std::fs;
++    use std::io::Write;
++    use std::os::unix::fs::PermissionsExt;
++
++    let path = dest_lld_path.parent().unwrap();
++    let mut unwrapped_name = path.file_name().unwrap().to_string_lossy().to_string();
++    unwrapped_name.push_str("-unwrapped");
++    let unwrapped_dir = path.with_file_name(unwrapped_name);
++    fs::create_dir(&unwrapped_dir).context("failed to create unwrapped directory")?;
++    let mut unwrapped_lld = unwrapped_dir;
++    unwrapped_lld.push(dest_lld_path.file_name().unwrap());
++    fs::rename(dest_lld_path, &unwrapped_lld).context("failed to move file")?;
++    let mut ld_wrapper_path = std::env::current_exe()?
++        .parent()
++        .ok_or(anyhow!("failed to get parent directory"))?
++        .with_file_name("nix-support");
++    let mut file = std::fs::File::create(dest_lld_path)?;
++    ld_wrapper_path.push("ld-wrapper.sh");
++
++    let wrapped_script = format!(
++        "#!/usr/bin/env bash
++set -eu -o pipefail +o posix
++shopt -s nullglob
++export PROG=\"{}\"
++\"{}\" $@",
++        unwrapped_lld.to_string_lossy().to_string(),
++        ld_wrapper_path.to_string_lossy().to_string(),
++    );
++    file.write_all(wrapped_script.as_bytes())?;
++    let mut permissions = file.metadata()?.permissions();
++    permissions.set_mode(0o755);
++    file.set_permissions(permissions)?;
++    Ok(())
++}
++
++fn nix_patchelf_if_needed(dest_path: &Path) {
++    use std::fs::File;
++    use std::os::unix::fs::FileExt;
++
++    struct ELFReader<'a> {
++        file: &'a mut File,
++        is_32bit: bool,
++        is_little_end: bool,
++    }
++
++    impl<'a> ELFReader<'a> {
++        const MAGIC_NUMBER: &'static [u8] = &[0x7F, 0x45, 0x4c, 0x46];
++        const ET_EXEC: u16 = 0x2;
++        const ET_DYN: u16 = 0x3;
++        const PT_INTERP: u32 = 0x3;
++
++        fn new(file: &'a mut File) -> Option<Self> {
++            let mut magic_number = [0; 4];
++            file.read_exact(&mut magic_number).ok()?;
++            if Self::MAGIC_NUMBER != magic_number {
++                return None;
++            }
++            let mut ei_class = [0; 1];
++            file.read_exact_at(&mut ei_class, 0x4).ok()?;
++            let is_32bit = ei_class[0] == 1;
++            let mut ei_data = [0; 1];
++            file.read_exact_at(&mut ei_data, 0x5).ok()?;
++            let is_little_end = ei_data[0] == 1;
++            Some(Self {
++                file,
++                is_32bit,
++                is_little_end,
++            })
++        }
++
++        fn is_exec_or_dyn(&self) -> bool {
++            let e_type = self.read_u16_at(0x10);
++            e_type == Self::ET_EXEC || e_type == Self::ET_DYN
++        }
++
++        fn e_phoff(&self) -> u64 {
++            if self.is_32bit {
++                self.read_u32_at(0x1C) as u64
++            } else {
++                self.read_u64_at(0x20)
++            }
++        }
++
++        fn e_phentsize(&self) -> u64 {
++            let offset = if self.is_32bit { 0x2A } else { 0x36 };
++            self.read_u16_at(offset) as u64
++        }
++
++        fn e_phnum(&self) -> u64 {
++            let offset = if self.is_32bit { 0x2C } else { 0x38 };
++            self.read_u16_at(offset) as u64
++        }
 +
-+    if is_bin {
-+        let _ = ::std::process::Command::new("@patchelf@/bin/patchelf")
++        fn has_interp(&self) -> bool {
++            let e_phoff = self.e_phoff();
++            let e_phentsize = self.e_phentsize();
++            let e_phnum = self.e_phnum();
++            for i in 0..e_phnum {
++                let p_type = self.read_u32_at(e_phoff + i * e_phentsize);
++                if p_type == Self::PT_INTERP {
++                    return true;
++                }
++            }
++            false
++        }
++
++        fn read_u16_at(&self, offset: u64) -> u16 {
++            let mut data = [0; 2];
++            self.file.read_exact_at(&mut data, offset).unwrap();
++            if self.is_little_end {
++                u16::from_le_bytes(data)
++            } else {
++                u16::from_be_bytes(data)
++            }
++        }
++
++        fn read_u32_at(&self, offset: u64) -> u32 {
++            let mut data = [0; 4];
++            self.file.read_exact_at(&mut data, offset).unwrap();
++            if self.is_little_end {
++                u32::from_le_bytes(data)
++            } else {
++                u32::from_be_bytes(data)
++            }
++        }
++
++        fn read_u64_at(&self, offset: u64) -> u64 {
++            let mut data = [0; 8];
++            self.file.read_exact_at(&mut data, offset).unwrap();
++            if self.is_little_end {
++                u64::from_le_bytes(data)
++            } else {
++                u64::from_be_bytes(data)
++            }
++        }
++    }
++
++    let Some(mut dest_file) = File::open(dest_path).ok() else {
++        return;
++    };
++    let Some(elf) = ELFReader::new(&mut dest_file) else {
++        return;
++    };
++    if !elf.is_exec_or_dyn() {
++        return;
++    }
++    let mut patch_command = std::process::Command::new("@patchelf@/bin/patchelf");
++    if elf.has_interp() {
++        patch_command
 +            .arg("--set-interpreter")
-+            .arg("@dynamicLinker@")
-+            .arg(dest_path)
-+            .output();
++            .arg("@dynamicLinker@");
++    }
++    if Some(std::ffi::OsStr::new("rust-lld")) == dest_path.file_name() || !elf.has_interp() {
++        patch_command.arg("--add-rpath").arg("@libPath@");
 +    }
-+    else if is_lib {
-+        let _ = ::std::process::Command::new("@patchelf@/bin/patchelf")
-+            .arg("--set-rpath")
-+            .arg("@libPath@")
-+            .arg(dest_path)
-+            .output();
++
++    debug!("patching {dest_path:?} using patchelf");
++    if let Err(err) = patch_command.arg(dest_path).output() {
++        warn!("failed to execute patchelf: {err:?}");
++    }
++
++    if Some(std::ffi::OsStr::new("ld.lld")) == dest_path.file_name() {
++        if let Err(err) = nix_wrap_lld(dest_path) {
++            warn!("failed to wrap `ld.lld`: {err:?}");
++        }
 +    }
 +}
 +
diff --git a/pkgs/development/tools/rust/rustup/default.nix b/pkgs/development/tools/rust/rustup/default.nix
index e5874580d3f90..3f08882e1fbe0 100644
--- a/pkgs/development/tools/rust/rustup/default.nix
+++ b/pkgs/development/tools/rust/rustup/default.nix
@@ -48,7 +48,12 @@ rustPlatform.buildRustPackage rec {
   checkFeatures = [ ];
 
   patches = lib.optionals stdenv.isLinux [
-    (runCommand "0001-dynamically-patchelf-binaries.patch" { CC = stdenv.cc; patchelf = patchelf; libPath = "$ORIGIN/../lib:${libPath}"; } ''
+    (runCommand "0001-dynamically-patchelf-binaries.patch"
+      {
+        CC = stdenv.cc;
+        patchelf = patchelf;
+        libPath = "${libPath}";
+      } ''
       export dynamicLinker=$(cat $CC/nix-support/dynamic-linker)
       substitute ${./0001-dynamically-patchelf-binaries.patch} $out \
         --subst-var patchelf \
@@ -96,10 +101,25 @@ rustPlatform.buildRustPackage rec {
     # Note: fish completion script is not supported.
     $out/bin/rustup completions bash cargo > "$out/share/bash-completion/completions/cargo"
     $out/bin/rustup completions zsh cargo >  "$out/share/zsh/site-functions/_cargo"
+
+    # add a wrapper script for ld.lld
+    mkdir -p $out/nix-support
+    substituteAll ${../../../../../pkgs/build-support/wrapper-common/utils.bash} $out/nix-support/utils.bash
+    substituteAll ${../../../../../pkgs/build-support/bintools-wrapper/add-flags.sh} $out/nix-support/add-flags.sh
+    substituteAll ${../../../../../pkgs/build-support/bintools-wrapper/add-hardening.sh} $out/nix-support/add-hardening.sh
+    export prog='$PROG'
+    export use_response_file_by_default=0
+    substituteAll ${../../../../../pkgs/build-support/bintools-wrapper/ld-wrapper.sh} $out/nix-support/ld-wrapper.sh
+    chmod +x $out/nix-support/ld-wrapper.sh
   '';
 
+  env = lib.optionalAttrs (pname == "rustup") {
+    inherit (stdenv.cc.bintools) expandResponseParams shell suffixSalt wrapperName coreutils_bin;
+    hardening_unsupported_flags = "";
+  };
+
   meta = with lib; {
-    description = "The Rust toolchain installer";
+    description = "Rust toolchain installer";
     homepage = "https://www.rustup.rs/";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = [ maintainers.mic92 ];
diff --git a/pkgs/development/tools/rust/rusty-man/default.nix b/pkgs/development/tools/rust/rusty-man/default.nix
index 34524106c988e..05b9f85af4db8 100644
--- a/pkgs/development/tools/rust/rusty-man/default.nix
+++ b/pkgs/development/tools/rust/rusty-man/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "sha256-Wf8D6y3LRYJpQjFFt0w5X+BOllbR3mc4Gzcr1ad3zD0=";
 
   meta = with lib; {
-    description = "A command-line viewer for documentation generated by rustdoc";
+    description = "Command-line viewer for documentation generated by rustdoc";
     mainProgram = "rusty-man";
     homepage = "https://git.sr.ht/~ireas/rusty-man";
     changelog = "https://git.sr.ht/~ireas/rusty-man/tree/v${version}/item/CHANGELOG.md";
diff --git a/pkgs/development/tools/rust/sqlx-cli/default.nix b/pkgs/development/tools/rust/sqlx-cli/default.nix
index 81c02a0d636b8..fed8c02a5eaf4 100644
--- a/pkgs/development/tools/rust/sqlx-cli/default.nix
+++ b/pkgs/development/tools/rust/sqlx-cli/default.nix
@@ -27,12 +27,6 @@ rustPlatform.buildRustPackage rec {
 
   cargoHash = "sha256-sMyK1v4pJmmlN47mvgUkpLBjcpmT346VSp984IpvVWY=";
 
-  # Prepare the Cargo.lock for offline use.
-  # See https://github.com/NixOS/nixpkgs/issues/261412
-  postConfigure = ''
-    cargo metadata --offline > /dev/null
-  '';
-
   buildNoDefaultFeatures = true;
   buildFeatures = [
     "native-tls"
diff --git a/pkgs/development/tools/rust/svd2rust/default.nix b/pkgs/development/tools/rust/svd2rust/default.nix
index 1844d25c706a1..b01d04ad8123a 100644
--- a/pkgs/development/tools/rust/svd2rust/default.nix
+++ b/pkgs/development/tools/rust/svd2rust/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "svd2rust";
-  version = "0.33.3";
+  version = "0.33.4";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-Ed7dwVXjLOAtW9ZOh1g+yamnSzyoKo1lS4N2nyyqaJ8=";
+    hash = "sha256-V7d/lVNL7J/ErBlJUf8btrukGC+KSvk3r9AAethFNyk=";
   };
 
-  cargoHash = "sha256-BppPMYsv0v7K6z9URYEWrz0SHPx+oe2jeP3EzydFcuI=";
+  cargoHash = "sha256-Wu/F4PU02hrmiL7OaKIP59CfDVWrU5cw60TYngqJYNg=";
 
   # error: linker `aarch64-linux-gnu-gcc` not found
   postPatch = ''
diff --git a/pkgs/development/tools/rye/default.nix b/pkgs/development/tools/rye/default.nix
index 06fb2ac3087e1..ab191b7547be4 100644
--- a/pkgs/development/tools/rye/default.nix
+++ b/pkgs/development/tools/rye/default.nix
@@ -81,7 +81,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A tool to easily manage python dependencies and environments";
+    description = "Tool to easily manage python dependencies and environments";
     homepage = "https://github.com/mitsuhiko/rye";
     changelog = "https://github.com/mitsuhiko/rye/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/tools/sassc/default.nix b/pkgs/development/tools/sassc/default.nix
index 15995303748f3..84488e0cb860b 100644
--- a/pkgs/development/tools/sassc/default.nix
+++ b/pkgs/development/tools/sassc/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libsass ];
 
   meta = with lib; {
-    description = "A front-end for libsass";
+    description = "Front-end for libsass";
     homepage = "https://github.com/sass/sassc/";
     license = licenses.mit;
     mainProgram = "sassc";
diff --git a/pkgs/development/tools/sauce-connect/default.nix b/pkgs/development/tools/sauce-connect/default.nix
index ef47a2e318cde..562125acf0681 100644
--- a/pkgs/development/tools/sauce-connect/default.nix
+++ b/pkgs/development/tools/sauce-connect/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   dontStrip = true;
 
   meta = with lib; {
-    description = "A secure tunneling app for executing tests securely when testing behind firewalls";
+    description = "Secure tunneling app for executing tests securely when testing behind firewalls";
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     homepage = "https://docs.saucelabs.com/reference/sauce-connect/";
diff --git a/pkgs/development/tools/sauce-connect/update.sh b/pkgs/development/tools/sauce-connect/update.sh
index d74cbe577b3c9..1c6f10b33046a 100755
--- a/pkgs/development/tools/sauce-connect/update.sh
+++ b/pkgs/development/tools/sauce-connect/update.sh
@@ -20,8 +20,7 @@ all_versions=$(jq --exit-status --raw-output \
     <<< "$response")
 latest_version=$(sort --version-sort <<< "$all_versions" | tail -n 1)
 for platform in x86_64-linux x86_64-darwin; do
-    update-source-version sauce-connect 0 "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" \
-        --source-key="passthru.sources.$platform"
     update-source-version sauce-connect "$latest_version" \
+        --ignore-same-version \
         --source-key="passthru.sources.$platform"
 done
diff --git a/pkgs/development/tools/sca2d/default.nix b/pkgs/development/tools/sca2d/default.nix
index c23714bc872f6..314a840ba262a 100644
--- a/pkgs/development/tools/sca2d/default.nix
+++ b/pkgs/development/tools/sca2d/default.nix
@@ -41,7 +41,7 @@ python.pkgs.buildPythonApplication rec {
   pythonImportsCheck = [ "sca2d" ];
 
   meta = with lib; {
-    description = "An experimental static code analyser for OpenSCAD";
+    description = "Experimental static code analyser for OpenSCAD";
     mainProgram = "sca2d";
     homepage = "https://gitlab.com/bath_open_instrumentation_group/sca2d";
     changelog = "https://gitlab.com/bath_open_instrumentation_group/sca2d/-/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/development/tools/scalafmt/default.nix b/pkgs/development/tools/scalafmt/default.nix
index db65c8f3b79ce..588274bcab895 100644
--- a/pkgs/development/tools/scalafmt/default.nix
+++ b/pkgs/development/tools/scalafmt/default.nix
@@ -2,7 +2,7 @@
 
 let
   baseName = "scalafmt";
-  version = "3.7.9";
+  version = "3.7.17";
   deps = stdenv.mkDerivation {
     name = "${baseName}-deps-${version}";
     buildCommand = ''
@@ -12,7 +12,7 @@ let
       cp $(< deps) $out/share/java/
     '';
     outputHashMode = "recursive";
-    outputHash = "sha256-r4vv62H0AryjZb+34fVHvqvndipOYyf6XpQC9u8Dxso=";
+    outputHash = "sha256-8gK+fOnqwPFBbSWltNKInzXRJQ3WZxPlLqpvuTxF4fk=";
   };
 in
 stdenv.mkDerivation {
diff --git a/pkgs/development/tools/scenebuilder/default.nix b/pkgs/development/tools/scenebuilder/default.nix
index 14d6c87259048..ab80e76931730 100644
--- a/pkgs/development/tools/scenebuilder/default.nix
+++ b/pkgs/development/tools/scenebuilder/default.nix
@@ -89,7 +89,7 @@ maven'.buildMavenPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/gluonhq/scenebuilder/releases/tag/${src.rev}";
-    description = "A visual, drag'n'drop, layout tool for designing JavaFX application user interfaces.";
+    description = "Visual, drag'n'drop, layout tool for designing JavaFX application user interfaces";
     homepage = "https://gluonhq.com/products/scene-builder/";
     license = licenses.bsd3;
     mainProgram = "scenebuilder";
diff --git a/pkgs/development/tools/scenic-view/default.nix b/pkgs/development/tools/scenic-view/default.nix
index ff09f0cb4707e..84d47390aa151 100644
--- a/pkgs/development/tools/scenic-view/default.nix
+++ b/pkgs/development/tools/scenic-view/default.nix
@@ -104,7 +104,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "JavaFx application to visualize and modify the scenegraph of running JavaFx applications.";
+    description = "JavaFx application to visualize and modify the scenegraph of running JavaFx applications";
     mainProgram = "scenic-view";
     longDescription = ''
       A JavaFX application designed to make it simple to understand the current state of your application scenegraph
diff --git a/pkgs/development/tools/scss-lint/default.nix b/pkgs/development/tools/scss-lint/default.nix
index 866a860905c9a..2d26d2518d082 100644
--- a/pkgs/development/tools/scss-lint/default.nix
+++ b/pkgs/development/tools/scss-lint/default.nix
@@ -8,7 +8,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "scss-lint";
 
   meta = with lib; {
-    description = "A tool to help keep your SCSS files clean and readable";
+    description = "Tool to help keep your SCSS files clean and readable";
     homepage    = "https://github.com/brigade/scss-lint";
     license     = licenses.mit;
     maintainers = with maintainers; [ lovek323 nicknovitski ];
diff --git a/pkgs/development/tools/selene/default.nix b/pkgs/development/tools/selene/default.nix
index 0bd600423b31d..0d836fe7a24d5 100644
--- a/pkgs/development/tools/selene/default.nix
+++ b/pkgs/development/tools/selene/default.nix
@@ -34,7 +34,7 @@ rustPlatform.buildRustPackage rec {
   buildNoDefaultFeatures = !robloxSupport;
 
   meta = with lib; {
-    description = "A blazing-fast modern Lua linter written in Rust";
+    description = "Blazing-fast modern Lua linter written in Rust";
     mainProgram = "selene";
     homepage = "https://github.com/kampfkarren/selene";
     changelog = "https://github.com/kampfkarren/selene/blob/${version}/CHANGELOG.md";
diff --git a/pkgs/development/tools/selenium/chromedriver/default.nix b/pkgs/development/tools/selenium/chromedriver/default.nix
index 1cee0603e6815..41982c3d7d3e1 100644
--- a/pkgs/development/tools/selenium/chromedriver/default.nix
+++ b/pkgs/development/tools/selenium/chromedriver/default.nix
@@ -60,7 +60,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://chromedriver.chromium.org/";
-    description = "A WebDriver server for running Selenium tests on Chrome";
+    description = "WebDriver server for running Selenium tests on Chrome";
     longDescription = ''
       WebDriver is an open source tool for automated testing of webapps across
       many browsers. It provides capabilities for navigating to web pages, user
diff --git a/pkgs/development/tools/selenium/htmlunit-driver/default.nix b/pkgs/development/tools/selenium/htmlunit-driver/default.nix
index dcea17d807d92..788a28a87f22b 100644
--- a/pkgs/development/tools/selenium/htmlunit-driver/default.nix
+++ b/pkgs/development/tools/selenium/htmlunit-driver/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/SeleniumHQ/htmlunit-driver";
-    description = "A WebDriver server for running Selenium tests on the HtmlUnit headless browser";
+    description = "WebDriver server for running Selenium tests on the HtmlUnit headless browser";
     maintainers = with maintainers; [ coconnor offline ];
     platforms = platforms.all;
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
diff --git a/pkgs/development/tools/sem/default.nix b/pkgs/development/tools/sem/default.nix
index e61abb7ca506b..81ae332a66e5d 100644
--- a/pkgs/development/tools/sem/default.nix
+++ b/pkgs/development/tools/sem/default.nix
@@ -21,7 +21,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A cli to operate on semaphore ci (2.0)";
+    description = "Cli to operate on semaphore ci (2.0)";
     homepage = "https://github.com/semaphoreci/cli";
     changelog = "https://github.com/semaphoreci/cli/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/semantic-release/default.nix b/pkgs/development/tools/semantic-release/default.nix
index b50a8337d4fa7..7da3d9e164e73 100644
--- a/pkgs/development/tools/semantic-release/default.nix
+++ b/pkgs/development/tools/semantic-release/default.nix
@@ -8,16 +8,16 @@
 
 buildNpmPackage rec {
   pname = "semantic-release";
-  version = "23.1.1";
+  version = "24.0.0";
 
   src = fetchFromGitHub {
     owner = "semantic-release";
     repo = "semantic-release";
     rev = "v${version}";
-    hash = "sha256-gO/HOLzPFPI2QzVFmyHMJGOKWACiHJEtj+cxq+I0/to=";
+    hash = "sha256-UoxsuCGWgHL7tYrBKS83VUkvGTUMBtpdO8ByKv5Dbrk=";
   };
 
-  npmDepsHash = "sha256-j64Hr3uJT2r8paoAcxkf+ijDg0rc6sIAZssZcaLNxzM=";
+  npmDepsHash = "sha256-MmdgUa3j3MD/SCqtMtAGvocHTgv5OIu8RdT27JgNvcg=";
 
   dontNpmBuild = true;
 
diff --git a/pkgs/development/tools/sentry-cli/default.nix b/pkgs/development/tools/sentry-cli/default.nix
index e291ed8eab377..cffe180a92d03 100644
--- a/pkgs/development/tools/sentry-cli/default.nix
+++ b/pkgs/development/tools/sentry-cli/default.nix
@@ -11,13 +11,13 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "sentry-cli";
-  version = "2.31.2";
+  version = "2.32.1";
 
   src = fetchFromGitHub {
     owner = "getsentry";
     repo = "sentry-cli";
     rev = version;
-    sha256 = "sha256-UL8PJnz+fV67F0t24OEReF4tIUa8S2NzICYgUU7fgUo=";
+    sha256 = "sha256-N92qv1CjOSeoknIbf+LA0oAzy75uRGjOpcpHCg7g5lY=";
   };
   doCheck = false;
 
@@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ CoreServices Security SystemConfiguration ];
   nativeBuildInputs = [ installShellFiles pkg-config ];
 
-  cargoHash = "sha256-S1NwnPn3PRL6GoRBFEhhNuy9StrAhG5qCDW2uWNyU4E=";
+  cargoHash = "sha256-9L02ox2T+dBRx+mmFpy5Bktsyp3C/havfZoDaNevIMw=";
 
   postInstall = ''
     installShellCompletion --cmd sentry-cli \
@@ -39,7 +39,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     homepage = "https://docs.sentry.io/cli/";
     license = licenses.bsd3;
-    description = "A command line utility to work with Sentry";
+    description = "Command line utility to work with Sentry";
     mainProgram = "sentry-cli";
     changelog = "https://github.com/getsentry/sentry-cli/raw/${version}/CHANGELOG.md";
     maintainers = with maintainers; [ rizary ];
diff --git a/pkgs/development/tools/shellharden/default.nix b/pkgs/development/tools/shellharden/default.nix
index 47498cca57c28..e1965aa2b006f 100644
--- a/pkgs/development/tools/shellharden/default.nix
+++ b/pkgs/development/tools/shellharden/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   postPatch = "patchShebangs moduletests/run";
 
   meta = with lib; {
-    description = "The corrective bash syntax highlighter";
+    description = "Corrective bash syntax highlighter";
     mainProgram = "shellharden";
     longDescription = ''
       Shellharden is a syntax highlighter and a tool to semi-automate the
diff --git a/pkgs/development/tools/simavr/default.nix b/pkgs/development/tools/simavr/default.nix
index 3ce0a3cddf90b..8c56bb08a9761 100644
--- a/pkgs/development/tools/simavr/default.nix
+++ b/pkgs/development/tools/simavr/default.nix
@@ -44,7 +44,7 @@ in stdenv.mkDerivation rec {
   checkTarget = "-C tests run_tests";
 
   meta = with lib; {
-    description = "A lean and mean Atmel AVR simulator";
+    description = "Lean and mean Atmel AVR simulator";
     mainProgram = "simavr";
     homepage    = "https://github.com/buserror/simavr";
     license     = licenses.gpl3;
diff --git a/pkgs/development/tools/skopeo/default.nix b/pkgs/development/tools/skopeo/default.nix
index 7c66e72925662..91265aa2ed2e6 100644
--- a/pkgs/development/tools/skopeo/default.nix
+++ b/pkgs/development/tools/skopeo/default.nix
@@ -70,7 +70,7 @@ buildGoModule rec {
 
   meta = with lib; {
     changelog = "https://github.com/containers/skopeo/releases/tag/${src.rev}";
-    description = "A command line utility for various operations on container images and image repositories";
+    description = "Command line utility for various operations on container images and image repositories";
     mainProgram = "skopeo";
     homepage = "https://github.com/containers/skopeo";
     maintainers = with maintainers; [ lewo developer-guy ] ++ teams.podman.members;
diff --git a/pkgs/development/tools/smlfmt/default.nix b/pkgs/development/tools/smlfmt/default.nix
index b0cf14e8a5dd6..1ae8c49ab262f 100644
--- a/pkgs/development/tools/smlfmt/default.nix
+++ b/pkgs/development/tools/smlfmt/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A custom parser/auto-formatter for Standard ML";
+    description = "Custom parser/auto-formatter for Standard ML";
     mainProgram = "smlfmt";
     longDescription = ''
       A custom parser and code formatter for Standard ML, with helpful error messages.
diff --git a/pkgs/development/tools/snazy/default.nix b/pkgs/development/tools/snazy/default.nix
index 2b3a719d33d21..e77cc4ae0c702 100644
--- a/pkgs/development/tools/snazy/default.nix
+++ b/pkgs/development/tools/snazy/default.nix
@@ -35,7 +35,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A snazzy json log viewer";
+    description = "Snazzy json log viewer";
     mainProgram = "snazy";
     longDescription = ''
       Snazy is a simple tool to parse json logs and output them in a nice format
diff --git a/pkgs/development/tools/so/default.nix b/pkgs/development/tools/so/default.nix
index e057d5290561a..6b0c37ec3fec8 100644
--- a/pkgs/development/tools/so/default.nix
+++ b/pkgs/development/tools/so/default.nix
@@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A TUI interface to the StackExchange network";
+    description = "TUI interface to the StackExchange network";
     mainProgram = "so";
     homepage = "https://github.com/samtay/so";
     license = licenses.mit;
diff --git a/pkgs/development/tools/solarus-quest-editor/default.nix b/pkgs/development/tools/solarus-quest-editor/default.nix
index e0743d13c1fc3..f0c6ba5bf0f1c 100644
--- a/pkgs/development/tools/solarus-quest-editor/default.nix
+++ b/pkgs/development/tools/solarus-quest-editor/default.nix
@@ -27,7 +27,7 @@ mkDerivation rec {
     libmodplug libvorbis solarus qtbase qttools glm ];
 
   meta = with lib; {
-    description = "The editor for the Zelda-like ARPG game engine, Solarus";
+    description = "Editor for the Zelda-like ARPG game engine, Solarus";
     mainProgram = "solarus-quest-editor";
     longDescription = ''
       Solarus is a game engine for Zelda-like ARPG games written in lua.
diff --git a/pkgs/development/tools/spicy/default.nix b/pkgs/development/tools/spicy/default.nix
index b297053843e71..369747f0d571a 100644
--- a/pkgs/development/tools/spicy/default.nix
+++ b/pkgs/development/tools/spicy/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "A Nintendo 64 segment assembler";
+    description = "Nintendo 64 segment assembler";
     longDescription = ''
       An open-source version of the Nintendo64 sdk's mild.exe. Assembles
       segments into an n64-compatible rom.
diff --git a/pkgs/development/tools/spirv-tools/default.nix b/pkgs/development/tools/spirv-tools/default.nix
index 0cd2a13d5e97d..50d04ba050c3f 100644
--- a/pkgs/development/tools/spirv-tools/default.nix
+++ b/pkgs/development/tools/spirv-tools/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The SPIR-V Tools project provides an API and commands for processing SPIR-V modules";
+    description = "SPIR-V Tools project provides an API and commands for processing SPIR-V modules";
     homepage = "https://github.com/KhronosGroup/SPIRV-Tools";
     license = licenses.asl20;
     platforms = with platforms; unix ++ windows;
diff --git a/pkgs/development/tools/spring-boot-cli/default.nix b/pkgs/development/tools/spring-boot-cli/default.nix
index ed67db03e5c84..0bd4d805a143f 100644
--- a/pkgs/development/tools/spring-boot-cli/default.nix
+++ b/pkgs/development/tools/spring-boot-cli/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "spring-boot-cli";
-  version = "3.2.5";
+  version = "3.3.0";
 
   src = fetchzip {
     url = "mirror://maven/org/springframework/boot/${finalAttrs.pname}/${finalAttrs.version}/${finalAttrs.pname}-${finalAttrs.version}-bin.zip";
-    hash = "sha256-NRJ5vL/tcm/CrNIEUh7gntLsLwWD9bL048Ycx1pRlQU=";
+    hash = "sha256-dTTTcmR4C9UiYEfiKHr0sJBtHg/+sJcGIdrXSOoK1mw=";
   };
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
diff --git a/pkgs/development/tools/sqldef/default.nix b/pkgs/development/tools/sqldef/default.nix
index 7846d381aef20..cde6a9bed65cd 100644
--- a/pkgs/development/tools/sqldef/default.nix
+++ b/pkgs/development/tools/sqldef/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "sqldef";
-  version = "0.17.8";
+  version = "0.17.11";
 
   src = fetchFromGitHub {
     owner = "k0kubun";
     repo = "sqldef";
     rev = "v${version}";
-    hash = "sha256-60CN+Z5YZemYwn7eN0VZ/S8kAmQv6DBA1tCAhDLDKe0=";
+    hash = "sha256-VCx+vrGKr7+rdxcwY9kfn13wSq2eVc3g9xoFlME8JF0=";
   };
 
   proxyVendor = true;
diff --git a/pkgs/development/tools/squawk/default.nix b/pkgs/development/tools/squawk/default.nix
index 7a70c6378d60d..5270523caf6e5 100644
--- a/pkgs/development/tools/squawk/default.nix
+++ b/pkgs/development/tools/squawk/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "squawk";
-  version = "0.28.0";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "sbdchd";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-RnY41G0ombqJewv+kxvg8AwQeRaVb+frZjmU/Cd28Jo=";
+    hash = "sha256-Uc357UspC2O/IxRRTy04jubzhKDRnIAN2CoHvbrGbHg=";
   };
 
-  cargoHash = "sha256-YR2ZSwrCkX8eyHTj1Dtk9f01/y9fDtknouige68kS8I=";
+  cargoHash = "sha256-G0t3wvcp1Dm0ZCDnzTVf1XJ2Dtr0LyrKM1Vvso0IoaA=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/development/tools/steamos-devkit/default.nix b/pkgs/development/tools/steamos-devkit/default.nix
index 894bfff77da83..462bf620e7308 100644
--- a/pkgs/development/tools/steamos-devkit/default.nix
+++ b/pkgs/development/tools/steamos-devkit/default.nix
@@ -12,14 +12,14 @@ let
   # steamos-devkit requires a build of the unreleased pyimgui 2.0 branch, move to pythonPackages when 2.0 is released.
   pyimgui = python3.pkgs.buildPythonPackage {
     pname = "pyimgui";
-    version = "unstable-2022-03-06";
+    version = "2.0.0";
 
     src = fetchFromGitHub {
       owner = "pyimgui";
       repo = "pyimgui";
-      rev = "1f095af5886f424ee12f26fa93b108b6420fafa4"; # dev/version-2.0 branch
+      rev = "2.0.0";
       fetchSubmodules = true;
-      sha256 = "sha256-k070ue132m8H1Zm8bo7J7spCS5dSTGOj689ci7vJ+aw=";
+      sha256 = "sha256-sw/bLTdrnPhBhrnk5yyXCbEK4kMo+PdEvoMJ9aaZbsE=";
     };
 
     nativeBuildInputs = with python3.pkgs; [
@@ -57,14 +57,14 @@ let
 in
 python3.pkgs.buildPythonPackage rec {
   pname = "steamos-devkit";
-  version = "0.20230411.0";
+  version = "0.20240216.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.steamos.cloud";
     owner = "devkit";
     repo = "steamos-devkit";
     rev = "v${version}";
-    sha256 = "sha256-DQIyjEpUFnC0OjMjKMrGYs4+HoEDfcSc3m3rfXLPyZ0=";
+    sha256 = "sha256-eOtESkGMIjcijAFITOcYKPsXH6xH/Xcj9D+OItMqebM=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/development/tools/stylua/default.nix b/pkgs/development/tools/stylua/default.nix
index de4a20ee36fec..b81b1f281b658 100644
--- a/pkgs/development/tools/stylua/default.nix
+++ b/pkgs/development/tools/stylua/default.nix
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage rec {
   buildFeatures = features;
 
   meta = with lib; {
-    description = "An opinionated Lua code formatter";
+    description = "Opinionated Lua code formatter";
     homepage = "https://github.com/johnnymorganz/stylua";
     changelog = "https://github.com/johnnymorganz/stylua/blob/v${version}/CHANGELOG.md";
     license = licenses.mpl20;
diff --git a/pkgs/development/tools/subxt/default.nix b/pkgs/development/tools/subxt/default.nix
index b471f0ca5e856..6d551fa7348ce 100644
--- a/pkgs/development/tools/subxt/default.nix
+++ b/pkgs/development/tools/subxt/default.nix
@@ -34,7 +34,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/paritytech/subxt";
-    description = "Submit transactions to a substrate node via RPC.";
+    description = "Submit transactions to a substrate node via RPC";
     mainProgram = "subxt";
     license = with licenses; [ gpl3Plus asl20 ];
     maintainers = [ maintainers.FlorianFranzen ];
diff --git a/pkgs/development/tools/supabase-cli/default.nix b/pkgs/development/tools/supabase-cli/default.nix
index b1c29170193f5..b37324eba9cd1 100644
--- a/pkgs/development/tools/supabase-cli/default.nix
+++ b/pkgs/development/tools/supabase-cli/default.nix
@@ -9,16 +9,16 @@
 
 buildGoModule rec {
   pname = "supabase-cli";
-  version = "1.168.1";
+  version = "1.169.5";
 
   src = fetchFromGitHub {
     owner = "supabase";
     repo = "cli";
     rev = "v${version}";
-    hash = "sha256-sgc3Nm8K09DYY8CN/UMzLelK10qQrqHfMq+oSq3qPU0=";
+    hash = "sha256-H0y/eBmUG5nT/EsF1iC5hbhRBhR8jwwxlYav4Q7bSqM=";
   };
 
-  vendorHash = "sha256-PNu5eFY4Cfq35hKPTH1gTlc6G5rnD7BKGxhhzZkLfQg=";
+  vendorHash = "sha256-wZ+yYPwmePKMfYTve3Ha7teSx1mlHLnc1ZaZE6ZEdu4=";
 
   ldflags = [
     "-s"
@@ -48,7 +48,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A CLI for interacting with supabase";
+    description = "CLI for interacting with supabase";
     homepage = "https://github.com/supabase/cli";
     license = licenses.mit;
     maintainers = with maintainers; [ gerschtli kashw2 ];
diff --git a/pkgs/development/tools/swiftformat/default.nix b/pkgs/development/tools/swiftformat/default.nix
index 823496693f25f..086c79d964a01 100644
--- a/pkgs/development/tools/swiftformat/default.nix
+++ b/pkgs/development/tools/swiftformat/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A code formatting and linting tool for Swift";
+    description = "Code formatting and linting tool for Swift";
     homepage = "https://github.com/nicklockwood/SwiftFormat";
     license = licenses.mit;
     maintainers = [ maintainers.bdesham ];
diff --git a/pkgs/development/tools/systemfd/default.nix b/pkgs/development/tools/systemfd/default.nix
index 001015af2d8b2..416c377490aef 100644
--- a/pkgs/development/tools/systemfd/default.nix
+++ b/pkgs/development/tools/systemfd/default.nix
@@ -22,7 +22,7 @@ rustPlatform.buildRustPackage {
   cargoSha256 = "sha256-UhfE9Q5E79rN2mjkNB5IAN/J0fbpoy9CmM6ojHQcFP0=";
 
   meta = {
-    description = "A convenient helper for passing sockets into another process";
+    description = "Convenient helper for passing sockets into another process";
     mainProgram = "systemfd";
     homepage = "https://github.com/mitsuhiko/systemfd";
     license = lib.licenses.asl20;
diff --git a/pkgs/development/tools/tailwindcss/default.nix b/pkgs/development/tools/tailwindcss/default.nix
index 7de95576050cc..b3f35596d533c 100644
--- a/pkgs/development/tools/tailwindcss/default.nix
+++ b/pkgs/development/tools/tailwindcss/default.nix
@@ -18,16 +18,16 @@ let
   }.${system} or throwSystem;
 
   hash = {
-    aarch64-darwin = "sha256-Wsys6Iagq/dwOKb+htMWosLL51blPxxq3PX8ioZ1UZw=";
-    aarch64-linux = "sha256-vXvhtfHd/Pg4Pv6X23Y9nC1OFUeju5vBn9SEOaI5G6E=";
-    armv7l-linux = "sha256-ZCqvztsUD+dom6HL/IejSjn9Cy/Rwnn7/QFxtW0XFoU=";
-    x86_64-darwin = "sha256-vVbDvu3R66AwCZgg75k1Mjp2oVsrkdMXtqHA5sdACEo=";
-    x86_64-linux = "sha256-POpm9f2HmGU4cBpVHHNCwpoK4+MTnu1Xxb2RUfZtq5Y=";
+    aarch64-darwin = "sha256-ubXwWgg4QAwM27meaIjT/HjgoVs9cVUiGNWoGRLktBI=";
+    aarch64-linux = "sha256-vd1hRTAGLI3Kv/FmYICKTSajyneh+F9vM1+gnqGthGs=";
+    armv7l-linux = "sha256-Jl5H+MZUMBZOBmHgzpM/S7lAY4F1KtRS0G7Vu7ORKgg=";
+    x86_64-darwin = "sha256-SL0DjE1ssPlypsWbhxq/YgSUYtdqOXkb6EktfmAAXkQ=";
+    x86_64-linux = "sha256-18MbsqzYcr9hsON5hZujEBzvi7vyQzpYZOCitYYq5HY=";
   }.${system} or throwSystem;
 in
 stdenv.mkDerivation rec {
   pname = "tailwindcss";
-  version = "3.4.3";
+  version = "3.4.4";
 
   src = fetchurl {
     url = "https://github.com/tailwindlabs/tailwindcss/releases/download/v${version}/tailwindcss-${plat}";
diff --git a/pkgs/development/tools/taplo/default.nix b/pkgs/development/tools/taplo/default.nix
index 2f497d6eb9319..6041f913b48b4 100644
--- a/pkgs/development/tools/taplo/default.nix
+++ b/pkgs/development/tools/taplo/default.nix
@@ -33,7 +33,7 @@ rustPlatform.buildRustPackage rec {
   buildFeatures = lib.optional withLsp "lsp";
 
   meta = with lib; {
-    description = "A TOML toolkit written in Rust";
+    description = "TOML toolkit written in Rust";
     homepage = "https://taplo.tamasfe.dev";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/pkgs/development/tools/tapview/default.nix b/pkgs/development/tools/tapview/default.nix
index fa8b0d1a27742..cc121061df037 100644
--- a/pkgs/development/tools/tapview/default.nix
+++ b/pkgs/development/tools/tapview/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "prefix=$(out)" ];
 
   meta = with lib; {
-    description = "A minimalist pure consumer for TAP (Test Anything Protocol)";
+    description = "Minimalist pure consumer for TAP (Test Anything Protocol)";
     mainProgram = "tapview";
     homepage = "https://gitlab.com/esr/tapview";
     license = licenses.bsd2;
diff --git a/pkgs/development/tools/teller/default.nix b/pkgs/development/tools/teller/default.nix
index a918e6759bfe2..16e44c4637c6c 100644
--- a/pkgs/development/tools/teller/default.nix
+++ b/pkgs/development/tools/teller/default.nix
@@ -1,70 +1,57 @@
-{ lib, buildGoModule, fetchFromGitHub, nix-update-script }:
+{
+  lib,
+  rustPlatform,
+  fetchFromGitHub,
+  nix-update-script,
+  protobuf,
+  stdenv,
+  darwin,
+  pkg-config,
+  openssl,
+}:
 let
   pname = "teller";
-  version = "1.5.6";
-  date = "2022-10-13";
+  version = "2.0.7";
+  date = "2024-05-19";
 in
-buildGoModule {
+rustPlatform.buildRustPackage {
   inherit pname version;
 
   src = fetchFromGitHub {
     owner = "tellerops";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-vgrfWKKXf4C4qkbGiB3ndtJy1VyTx2NJs2QiOSFFZkE=";
+    hash = "sha256-CI74nMMTIPwjJfy7ASR19V6EbYZ62NoAOxlP3Xt2BuI=";
   };
 
-  vendorHash = null;
+  cargoHash = "sha256-iqZX+9l3TWrFuaQreNz4RrCgPQCyKJt6RJ1UeKYaNRs=";
 
-  # use make instead of default checks because e2e does not work with `buildGoDir`
-  checkPhase = ''
-    runHook preCheck
-    HOME="$(mktemp -d)"
-    # We do not set trimpath for tests, in case they reference test assets
-    export GOFLAGS=''${GOFLAGS//-trimpath/}
-
-    make test
-
-    # e2e tests can fail on first try
+  nativeBuildInputs = [
+    protobuf
+    pkg-config
+  ];
 
-    max_iteration=3
-    for i in $(seq 1 $max_iteration)
-    do
-      make e2e
-      result=$?
-      if [[ $result -eq 0 ]]
-      then
-        echo "e2e tests passed"
-        break
-      else
-        echo "e2e tests failed, retrying..."
-        sleep 1
-      fi
-    done
+  buildInputs = [
+    openssl
+  ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.SystemConfiguration ];
 
-    if [[ $result -ne 0 ]]
-    then
-      echo "e2e tests failed after $max_iteration attempts"
-    fi
+  doCheck = false;
 
-    runHook postCheck
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/teller --version 2>&1 | grep ${version};
   '';
 
   passthru.updateScript = nix-update-script { };
 
-  ldflags = [
-    "-s"
-    "-w"
-    "-X main.version=${version}"
-    "-X main.commit=${version}"
-    "-X main.date=${date}"
-  ];
-
   meta = with lib; {
     homepage = "https://github.com/tellerops/teller/";
     description = "Cloud native secrets management for developers";
     mainProgram = "teller";
     license = licenses.asl20;
-    maintainers = with maintainers; [ wahtique ];
+    maintainers = with maintainers; [
+      cameronraysmith
+      wahtique
+    ];
   };
 }
diff --git a/pkgs/development/tools/tokio-console/default.nix b/pkgs/development/tools/tokio-console/default.nix
index c37bf85de9754..1d3029f340bad 100644
--- a/pkgs/development/tools/tokio-console/default.nix
+++ b/pkgs/development/tools/tokio-console/default.nix
@@ -41,7 +41,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A debugger for asynchronous Rust code";
+    description = "Debugger for asynchronous Rust code";
     homepage = "https://github.com/tokio-rs/console";
     mainProgram = "tokio-console";
     license = with licenses; [ mit ];
diff --git a/pkgs/development/tools/toluapp/default.nix b/pkgs/development/tools/toluapp/default.nix
index 9a9acec172940..bc5e1f280b961 100644
--- a/pkgs/development/tools/toluapp/default.nix
+++ b/pkgs/development/tools/toluapp/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   patches = [ ./environ-and-linux-is-kinda-posix.patch ./headers.patch ];
 
   meta = with lib; {
-    description = "A tool to integrate C/Cpp code with Lua";
+    description = "Tool to integrate C/Cpp code with Lua";
     homepage = "http://www.codenix.com/~tolua/";
     license = licenses.mit;
     maintainers = with maintainers; [ vrthra ];
diff --git a/pkgs/development/tools/toml2json/default.nix b/pkgs/development/tools/toml2json/default.nix
index 4d7fed800e213..a24eae7141f43 100644
--- a/pkgs/development/tools/toml2json/default.nix
+++ b/pkgs/development/tools/toml2json/default.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-laOM7LpmsCpLcm4kPRsJiXHoKR58RCuQxVO5Z78beWI=";
 
   meta = with lib; {
-    description = "A very small CLI for converting TOML to JSON";
+    description = "Very small CLI for converting TOML to JSON";
     mainProgram = "toml2json";
     homepage = "https://github.com/woodruffw/toml2json";
     license = with licenses; [ mit ];
diff --git a/pkgs/development/tools/toml2nix/default.nix b/pkgs/development/tools/toml2nix/default.nix
index 60eb3901318f1..ac971435bc418 100644
--- a/pkgs/development/tools/toml2nix/default.nix
+++ b/pkgs/development/tools/toml2nix/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A tool to convert TOML files to Nix expressions";
+    description = "Tool to convert TOML files to Nix expressions";
     mainProgram = "toml2nix";
     homepage = "https://crates.io/crates/toml2nix";
     license = with licenses; [ mit /* or */ asl20 ];
diff --git a/pkgs/development/tools/tradcpp/default.nix b/pkgs/development/tools/tradcpp/default.nix
index 73d0cf5e81a46..b26db0d22356d 100644
--- a/pkgs/development/tools/tradcpp/default.nix
+++ b/pkgs/development/tools/tradcpp/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A traditional (K&R-style) C macro preprocessor";
+    description = "Traditional (K&R-style) C macro preprocessor";
     mainProgram = "tradcpp";
     platforms = platforms.all;
     license = licenses.bsd2;
diff --git a/pkgs/development/tools/trunk/default.nix b/pkgs/development/tools/trunk/default.nix
index c4ec27393a486..0de59f4256e1c 100644
--- a/pkgs/development/tools/trunk/default.nix
+++ b/pkgs/development/tools/trunk/default.nix
@@ -12,13 +12,13 @@ SystemConfiguration
 
 rustPlatform.buildRustPackage rec {
   pname = "trunk";
-  version = "0.20.1";
+  version = "0.20.2";
 
   src = fetchFromGitHub {
     owner = "trunk-rs";
     repo = "trunk";
     rev = "v${version}";
-    hash = "sha256-VcTlXGfNfkbFoJiNmOp0AS0/NApgTaiZEafZSV2PuTI=";
+    hash = "sha256-hyjv3UJWIfJjdGtju4T6ufhz97F76uib/B9kyBHsC64=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
   # requires network
   checkFlags = [ "--skip=tools::tests::download_and_install_binaries" ];
 
-  cargoHash = "sha256-jXp6B9eTYKfDgzzgp1oRMzwVJOzsh9h0+igQLBZmdsk=";
+  cargoHash = "sha256-BI/jA5/7/QP62EtOXXRkbsJILsHbVacZY/bKZGcXk34=";
 
   meta = with lib; {
     homepage = "https://github.com/trunk-rs/trunk";
diff --git a/pkgs/development/tools/turbogit/default.nix b/pkgs/development/tools/turbogit/default.nix
index 2680d10f1dbb8..390b618ce7198 100644
--- a/pkgs/development/tools/turbogit/default.nix
+++ b/pkgs/development/tools/turbogit/default.nix
@@ -30,7 +30,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "Keep your git workflow clean without headache.";
+    description = "Keep your git workflow clean without headache";
     longDescription = ''
       turbogit (tug) is a cli tool built to help you deal with your day-to-day git work.
       turbogit enforces convention (e.g. The Conventional Commits) but tries to keep things simple and invisible for you.
diff --git a/pkgs/development/tools/turso-cli/default.nix b/pkgs/development/tools/turso-cli/default.nix
index 322d46ac2f563..7fe099fd69c4c 100644
--- a/pkgs/development/tools/turso-cli/default.nix
+++ b/pkgs/development/tools/turso-cli/default.nix
@@ -8,13 +8,13 @@
 }:
 buildGoModule rec {
   pname = "turso-cli";
-  version = "0.93.8";
+  version = "0.95.0";
 
   src = fetchFromGitHub {
     owner = "tursodatabase";
     repo = "turso-cli";
     rev = "v${version}";
-    hash = "sha256-glY1xWu38wZLo9eyPAR4NtGDfLl1BkaN+WICIACHECo=";
+    hash = "sha256-9QrDtqF9A3UhStKtwkq/FCULoJQz+RjS7yEolZbBLCw=";
   };
 
   vendorHash = "sha256-2NjdjB09WYzHjQEl2hMUWN1/xsj/Hlr8lVYU/pkxTqQ=";
@@ -39,7 +39,7 @@ buildGoModule rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "This is the command line interface (CLI) to Turso.";
+    description = "This is the command line interface (CLI) to Turso";
     homepage = "https://turso.tech";
     mainProgram = "turso";
     license = licenses.mit;
diff --git a/pkgs/development/tools/twilio-cli/default.nix b/pkgs/development/tools/twilio-cli/default.nix
index 414a855bea11d..fe0544b671378 100644
--- a/pkgs/development/tools/twilio-cli/default.nix
+++ b/pkgs/development/tools/twilio-cli/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "twilio-cli";
-  version = "5.19.4";
+  version = "5.21.0";
 
   src = fetchzip {
     url = "https://twilio-cli-prod.s3.amazonaws.com/twilio-v${finalAttrs.version}/twilio-v${finalAttrs.version}.tar.gz";
-    hash = "sha256-dSM3B9C+H0sTnxCkElDXKWUxNtctW1Jgh/nRFWEXc2A=";
+    hash = "sha256-rtI89baKJS4itwTcHY9IjKeskQO6mz/c746wdVy4cG4=";
   };
 
   buildInputs = [ nodejs-slim ];
diff --git a/pkgs/development/tools/twitch-cli/default.nix b/pkgs/development/tools/twitch-cli/default.nix
index 8417bf10a5d20..d9eab6a35691d 100644
--- a/pkgs/development/tools/twitch-cli/default.nix
+++ b/pkgs/development/tools/twitch-cli/default.nix
@@ -41,7 +41,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "The official Twitch CLI to make developing on Twitch easier";
+    description = "Official Twitch CLI to make developing on Twitch easier";
     mainProgram = "twitch-cli";
     homepage = "https://github.com/twitchdev/twitch-cli";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/typos/default.nix b/pkgs/development/tools/typos/default.nix
index 37a096c0d758c..b70e8448717b6 100644
--- a/pkgs/development/tools/typos/default.nix
+++ b/pkgs/development/tools/typos/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "typos";
-  version = "1.21.0";
+  version = "1.22.7";
 
   src = fetchFromGitHub {
     owner = "crate-ci";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-PvMa2hQYDu42ZzwBZrMQZy48RxUzHMvlLYEzPN3sh1w=";
+    hash = "sha256-417z9N8oC0kIqBs63fP/xdry5EFmlnyWDryKaJITtZQ=";
   };
 
-  cargoHash = "sha256-P7pzyfv+0ckzVjC95a+YW6Ni3sLnqgjoZ4JlnfKO17M=";
+  cargoHash = "sha256-Ol/pk3/9StHzEFHXcsSS9APUXf8hjnY7fwmF1mWtsVE=";
 
   meta = with lib; {
     description = "Source code spell checker";
diff --git a/pkgs/development/tools/unconvert/default.nix b/pkgs/development/tools/unconvert/default.nix
index 21c0d08ab5ac8..478a111555a61 100644
--- a/pkgs/development/tools/unconvert/default.nix
+++ b/pkgs/development/tools/unconvert/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "unconvert";
-  version = "unstable-2022-09-18";
+  version = "0-unstable-2023-09-07";
 
   src = fetchFromGitHub {
     owner = "mdempsky";
     repo = "unconvert";
-    rev = "3f84926d692329767c21c2aef3dfb7889c956832";
-    sha256 = "sha256-vcRHriFCT5b8SKjtRSg+kZDcCAKySC1cKVq+FMZb+9M=";
+    rev = "415706980c061b6f71ea923bd206aec88785638f";
+    hash = "sha256-MchA8uvy+MyQ/VaglBDTC7j/lNIKAtGeeECLoFfH6pI=";
   };
 
-  vendorHash = "sha256-p77mLvGtohmC8J+bqqkM5kqc1pMPcFx7GhXOZ4q4jeM=";
+  vendorHash = "sha256-vZDk+ZNCMP5RRNrgeIowdOKPot7rqM84JhlbfvcQbB4=";
 
   ldflags = [ "-s" "-w" ];
 
diff --git a/pkgs/development/tools/vagrant/default.nix b/pkgs/development/tools/vagrant/default.nix
index d8a8777aa200a..064f1cf6baaa0 100644
--- a/pkgs/development/tools/vagrant/default.nix
+++ b/pkgs/development/tools/vagrant/default.nix
@@ -113,7 +113,7 @@ in buildRubyGem rec {
   };
 
   meta = with lib; {
-    description = "A tool for building complete development environments";
+    description = "Tool for building complete development environments";
     homepage = "https://www.vagrantup.com/";
     license = licenses.bsl11;
     maintainers = with maintainers; [ tylerjl ];
diff --git a/pkgs/development/tools/vendir/default.nix b/pkgs/development/tools/vendir/default.nix
index 187f8ea856ba2..565c4f70def09 100644
--- a/pkgs/development/tools/vendir/default.nix
+++ b/pkgs/development/tools/vendir/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "vendir";
-  version = "0.40.1";
+  version = "0.40.2";
 
   src = fetchFromGitHub {
     owner = "vmware-tanzu";
     repo = "carvel-vendir";
     rev = "v${version}";
-    sha256 = "sha256-v+p3I0PJc+7vgZqQA/dClv/GqOQTniwWHxXQamM+8oo=";
+    sha256 = "sha256-cGcp7bMdxZrg+4ni5kX4jEq2Aybfmonna0jM1Ux6s9Q=";
   };
 
   vendorHash = null;
diff --git a/pkgs/development/tools/viceroy/default.nix b/pkgs/development/tools/viceroy/default.nix
index 6dff9bf9037f5..e4aa62b99ff30 100644
--- a/pkgs/development/tools/viceroy/default.nix
+++ b/pkgs/development/tools/viceroy/default.nix
@@ -2,18 +2,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "viceroy";
-  version = "0.9.6";
+  version = "0.9.7";
 
   src = fetchFromGitHub {
     owner = "fastly";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-tJLx/dts7C5yupJX2jkRiAQumlPtlg2HzFx11jQczzE=";
+    hash = "sha256-oPeHu/EVcGFE7sSwmMWHnT+xAxayZlfyIk/sM64Q+Hw=";
   };
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
-  cargoHash = "sha256-LMdi1Xx6Tq8q+DQHpNDwmtQO+8hiVXjEP7fDIpbN2DU=";
+  cargoHash = "sha256-z24qvgej2bWq0T4OgRnALJda4xGf5/s1O4ij2igCeyU=";
 
   cargoTestFlags = [
     "--package viceroy-lib"
diff --git a/pkgs/development/tools/volta/default.nix b/pkgs/development/tools/volta/default.nix
index b61347c05f2e4..e67df485b7f4e 100644
--- a/pkgs/development/tools/volta/default.nix
+++ b/pkgs/development/tools/volta/default.nix
@@ -39,7 +39,7 @@ rustPlatform.buildRustPackage rec {
       --zsh <($out/bin/volta completions zsh)
   '';
   meta = with lib; {
-    description = "The Hassle-Free JavaScript Tool Manager";
+    description = "Hassle-Free JavaScript Tool Manager";
     longDescription = ''
       With Volta, you can select a Node engine once and then stop worrying
       about it. You can switch between projects and stop having to manually
diff --git a/pkgs/development/tools/vsce/default.nix b/pkgs/development/tools/vsce/default.nix
index 45aa3f6ba509f..a5002fdabc372 100644
--- a/pkgs/development/tools/vsce/default.nix
+++ b/pkgs/development/tools/vsce/default.nix
@@ -12,16 +12,16 @@
 
 buildNpmPackage rec {
   pname = "vsce";
-  version = "2.26.1";
+  version = "2.28.0";
 
   src = fetchFromGitHub {
     owner = "microsoft";
     repo = "vscode-vsce";
     rev = "v${version}";
-    hash = "sha256-VL7OMtboD3rUNWQbb10i1qL7MpuUsM8/DbBKLUl6DSs=";
+    hash = "sha256-LMePEsNU62oSp/aaeUZY7A+0rTHiYOBqWBiqSpXUJOY=";
   };
 
-  npmDepsHash = "sha256-EtzcWeqPy4XVlheBXBpSwxrsHJ678lhTgnYqzIYZn4M=";
+  npmDepsHash = "sha256-Ml65YY4vqzntgCP9FoEGpR5rMkYL+alN9pSpbvR28E0=";
 
   postPatch = ''
     substituteInPlace package.json --replace '"version": "0.0.0"' '"version": "${version}"'
diff --git a/pkgs/development/tools/vulkan-validation-layers/default.nix b/pkgs/development/tools/vulkan-validation-layers/default.nix
index 78552a7f2c685..57891ca16155d 100644
--- a/pkgs/development/tools/vulkan-validation-layers/default.nix
+++ b/pkgs/development/tools/vulkan-validation-layers/default.nix
@@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The official Khronos Vulkan validation layers";
+    description = "Official Khronos Vulkan validation layers";
     homepage    = "https://github.com/KhronosGroup/Vulkan-ValidationLayers";
     platforms   = platforms.linux;
     license     = licenses.asl20;
diff --git a/pkgs/development/tools/vulkan-validation-layers/robin-hood-hashing.nix b/pkgs/development/tools/vulkan-validation-layers/robin-hood-hashing.nix
index cd08f0231ab20..9951d63b019cd 100644
--- a/pkgs/development/tools/vulkan-validation-layers/robin-hood-hashing.nix
+++ b/pkgs/development/tools/vulkan-validation-layers/robin-hood-hashing.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A faster, more efficient replacement for std::unordered_map / std::unordered_set";
+    description = "Faster, more efficient replacement for std::unordered_map / std::unordered_set";
     homepage    = "https://github.com/martinus/robin-hood-hashing";
     platforms   = platforms.linux;
     license     = licenses.mit;
diff --git a/pkgs/development/tools/vultr-cli/default.nix b/pkgs/development/tools/vultr-cli/default.nix
index bab599fec169d..b6afbdf4df717 100644
--- a/pkgs/development/tools/vultr-cli/default.nix
+++ b/pkgs/development/tools/vultr-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "vultr-cli";
-  version = "3.1.0";
+  version = "3.2.0";
 
   src = fetchFromGitHub {
     owner = "vultr";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Ur+zqoO824EHiVC5hW0twhxk5yRbKruqcQtLBOe7PXE=";
+    hash = "sha256-iMd/PXcLa3Z5yNsebub0MSZvionm6ERNlBJANvymP7Y=";
   };
 
-  vendorHash = "sha256-fryHPFIgpuW05AwGozjefa+Nogh0gEOTh2C/JLrOm8Y=";
+  vendorHash = "sha256-sBG6T+wVEFvgNdPJt5Fe7SIzetkxAqGW7VgyXV7wUSs=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/development/tools/wabt/default.nix b/pkgs/development/tools/wabt/default.nix
index 3f61a7906b739..c6541eb5b30aa 100644
--- a/pkgs/development/tools/wabt/default.nix
+++ b/pkgs/development/tools/wabt/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ "-DBUILD_TESTS=OFF" "-DCMAKE_PROJECT_VERSION=${version}" ];
 
   meta = with lib; {
-    description = "The WebAssembly Binary Toolkit";
+    description = "WebAssembly Binary Toolkit";
     longDescription = ''
       WABT (pronounced "wabbit") is a suite of tools for WebAssembly, including:
        * wat2wasm: translate from WebAssembly text format to the WebAssembly
diff --git a/pkgs/development/tools/wally-cli/default.nix b/pkgs/development/tools/wally-cli/default.nix
index b0f3375984b44..a608b42dc0d57 100644
--- a/pkgs/development/tools/wally-cli/default.nix
+++ b/pkgs/development/tools/wally-cli/default.nix
@@ -20,7 +20,7 @@ buildGoModule rec {
   vendorHash = "sha256-HffgkuKmaOjTYi+jQ6vBlC50JqqbYiikURT6TCqL7e0=";
 
   meta = with lib; {
-    description = "A tool to flash firmware to mechanical keyboards";
+    description = "Tool to flash firmware to mechanical keyboards";
     mainProgram = "wally-cli";
     homepage = "https://ergodox-ez.com/pages/wally-planck";
     platforms = with platforms; linux ++ darwin;
diff --git a/pkgs/development/tools/wasm-pack/default.nix b/pkgs/development/tools/wasm-pack/default.nix
index 4354019aa0be0..94c1ae6e01ed6 100644
--- a/pkgs/development/tools/wasm-pack/default.nix
+++ b/pkgs/development/tools/wasm-pack/default.nix
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A utility that builds rust-generated WebAssembly package";
+    description = "Utility that builds rust-generated WebAssembly package";
     mainProgram = "wasm-pack";
     homepage = "https://github.com/rustwasm/wasm-pack";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/pkgs/development/tools/wasmedge/default.nix b/pkgs/development/tools/wasmedge/default.nix
index 4346b51efac89..938fcba2da2e9 100644
--- a/pkgs/development/tools/wasmedge/default.nix
+++ b/pkgs/development/tools/wasmedge/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "wasmedge";
-  version = "0.13.5";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "WasmEdge";
     repo = "WasmEdge";
     rev = finalAttrs.version;
-    sha256 = "sha256-JaFaqYIwcRXYl5JukAfViUn8VTpMPThFO8EaVTPIudA=";
+    sha256 = "sha256-JPuJIM5OU1qCvFZEQ3gDNBZsIiJijtWLAVGp54z7lt0=";
   };
 
   nativeBuildInputs = [
@@ -56,7 +56,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://wasmedge.org/";
     license = with licenses; [ asl20 ];
-    description = "A lightweight, high-performance, and extensible WebAssembly runtime for cloud native, edge, and decentralized applications";
+    description = "Lightweight, high-performance, and extensible WebAssembly runtime for cloud native, edge, and decentralized applications";
     maintainers = with maintainers; [ dit7ya ];
     platforms = platforms.all;
   };
diff --git a/pkgs/development/tools/wasmi/default.nix b/pkgs/development/tools/wasmi/default.nix
index 4af59590722a9..558a27cce29ae 100644
--- a/pkgs/development/tools/wasmi/default.nix
+++ b/pkgs/development/tools/wasmi/default.nix
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "An efficient WebAssembly interpreter";
+    description = "Efficient WebAssembly interpreter";
     homepage = "https://github.com/paritytech/wasmi";
     changelog = "https://github.com/paritytech/wasmi/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ asl20 mit ];
diff --git a/pkgs/development/tools/wasmserve/default.nix b/pkgs/development/tools/wasmserve/default.nix
index 1372534d05e5a..530dd613d51e7 100644
--- a/pkgs/development/tools/wasmserve/default.nix
+++ b/pkgs/development/tools/wasmserve/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
   vendorHash = null;
 
   meta = with lib; {
-    description = "An HTTP server for testing Wasm";
+    description = "HTTP server for testing Wasm";
     mainProgram = "wasmserve";
     homepage = "https://github.com/hajimehoshi/wasmserve";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/web-ext/default.nix b/pkgs/development/tools/web-ext/default.nix
index bb9cda866e7f2..2c1688e38c021 100644
--- a/pkgs/development/tools/web-ext/default.nix
+++ b/pkgs/development/tools/web-ext/default.nix
@@ -7,16 +7,16 @@
 
 buildNpmPackage rec {
   pname = "web-ext";
-  version = "7.11.0";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "mozilla";
     repo = "web-ext";
     rev = version;
-    hash = "sha256-tXYqAAzxAFQGREkNGgBrHLp7ukRDMtr0bPYW7hOEniY=";
+    hash = "sha256-lMfvD5EVWpDcX54nJI3eReF/EMMuZYxtKdHKwk4Lrxk=";
   };
 
-  npmDepsHash = "sha256-uKAEWe28zUgE7Fv00sGXD5dKje/pHh22yJlYtk+7tN8=";
+  npmDepsHash = "sha256-RVyIpzVom48/avot9bbjXYg2E5+b3GlCHaKNfMEk968=";
 
   npmBuildFlags = [ "--production" ];
 
@@ -26,7 +26,7 @@ buildNpmPackage rec {
   '';
 
   meta = {
-    description = "A command line tool to help build, run, and test web extensions";
+    description = "Command line tool to help build, run, and test web extensions";
     homepage = "https://github.com/mozilla/web-ext";
     license = lib.licenses.mpl20;
     mainProgram = "web-ext";
diff --git a/pkgs/development/tools/wire/default.nix b/pkgs/development/tools/wire/default.nix
index 540f5c6a845e9..c1099d0691696 100644
--- a/pkgs/development/tools/wire/default.nix
+++ b/pkgs/development/tools/wire/default.nix
@@ -25,7 +25,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/google/wire";
-    description = "A code generation tool that automates connecting components using dependency injection";
+    description = "Code generation tool that automates connecting components using dependency injection";
     mainProgram = "wire";
     license = licenses.asl20;
     maintainers = with maintainers; [ svrana ];
diff --git a/pkgs/development/tools/wllvm/default.nix b/pkgs/development/tools/wllvm/default.nix
index 7bb63a192e4d4..32c09f4c53888 100644
--- a/pkgs/development/tools/wllvm/default.nix
+++ b/pkgs/development/tools/wllvm/default.nix
@@ -11,7 +11,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/travitch/whole-program-llvm";
-    description = "A wrapper script to build whole-program LLVM bitcode files";
+    description = "Wrapper script to build whole-program LLVM bitcode files";
     license = licenses.mit;
     maintainers = with maintainers; [ mic92 dtzWill ];
     platforms = platforms.all;
diff --git a/pkgs/development/tools/worker-build/default.nix b/pkgs/development/tools/worker-build/default.nix
index 8f78048e8e19a..fd7c1e378603c 100644
--- a/pkgs/development/tools/worker-build/default.nix
+++ b/pkgs/development/tools/worker-build/default.nix
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "This is a tool to be used as a custom build command for a Cloudflare Workers `workers-rs` project.";
+    description = "This is a tool to be used as a custom build command for a Cloudflare Workers `workers-rs` project";
     mainProgram = "worker-build";
     homepage = "https://github.com/cloudflare/workers-rs";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/pkgs/development/tools/wrangler_1/default.nix b/pkgs/development/tools/wrangler_1/default.nix
index 0302e40492aa4..7fc33c2dda6d9 100644
--- a/pkgs/development/tools/wrangler_1/default.nix
+++ b/pkgs/development/tools/wrangler_1/default.nix
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A CLI tool designed for folks who are interested in using Cloudflare Workers";
+    description = "CLI tool designed for folks who are interested in using Cloudflare Workers";
     mainProgram = "wrangler";
     homepage = "https://github.com/cloudflare/wrangler";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/pkgs/development/tools/wxformbuilder/default.nix b/pkgs/development/tools/wxformbuilder/default.nix
index 8914620074d5a..ad31bcad0d7bb 100644
--- a/pkgs/development/tools/wxformbuilder/default.nix
+++ b/pkgs/development/tools/wxformbuilder/default.nix
@@ -11,7 +11,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "wxformbuilder";
-  version = "4.1.0";
+  version = "4.2.1";
 
   src = fetchFromGitHub {
     owner = "wxFormBuilder";
@@ -21,17 +21,17 @@ stdenv.mkDerivation (finalAttrs: {
     leaveDotGit = true;
     postFetch = ''
       substituteInPlace $out/.git-properties \
-        --replace "\$Format:%h\$" "$(git -C $out rev-parse --short HEAD)" \
-        --replace "\$Format:%(describe)\$" "$(git -C $out rev-parse --short HEAD)"
+        --replace-fail "\$Format:%h\$" "$(git -C $out rev-parse --short HEAD)" \
+        --replace-fail "\$Format:%(describe)\$" "$(git -C $out rev-parse --short HEAD)"
       rm -rf $out/.git
     '';
-    hash = "sha256-Ob+6MAf2iQGd3lgeN+dLfscpmYYrzD3dsN+2ZmvJog0=";
+    hash = "sha256-e0oYyUv8EjGDVj/TWx2jGaj22YyFJf1xa6lredV1J0Y=";
   };
 
   postPatch = ''
     substituteInPlace third_party/tinyxml2/cmake/tinyxml2.pc.in \
-      --replace '$'{exec_prefix}/@CMAKE_INSTALL_LIBDIR@ @CMAKE_INSTALL_FULL_LIBDIR@ \
-      --replace '$'{prefix}/@CMAKE_INSTALL_INCLUDEDIR@ @CMAKE_INSTALL_FULL_INCLUDEDIR@
+      --replace-fail '$'{exec_prefix}/@CMAKE_INSTALL_LIBDIR@ @CMAKE_INSTALL_FULL_LIBDIR@ \
+      --replace-fail '$'{prefix}/@CMAKE_INSTALL_INCLUDEDIR@ @CMAKE_INSTALL_FULL_INCLUDEDIR@
     sed -i '/fixup_bundle/d' cmake/macros.cmake
   '';
 
diff --git a/pkgs/development/tools/xqilla/default.nix b/pkgs/development/tools/xqilla/default.nix
index 352f41f47bb49..4e8e165de6346 100644
--- a/pkgs/development/tools/xqilla/default.nix
+++ b/pkgs/development/tools/xqilla/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, xercesc }:
+{ lib, stdenv, fetchurl, fetchpatch, darwin, xercesc }:
 
 stdenv.mkDerivation rec {
   pname = "xqilla";
@@ -17,10 +17,21 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  configureFlags = [ "--with-xerces=${xercesc}" ];
+  configureFlags = [
+    "--with-xerces=${xercesc}"
+    # code uses register storage specifier
+    "CXXFLAGS=-std=c++14"
+  ];
+
+  buildInputs = [
+    xercesc
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin (with darwin.apple_sdk.frameworks; [
+    CoreServices
+    SystemConfiguration
+  ]);
 
   meta = with lib; {
-    description = "An XQuery and XPath 2 library and command line utility written in C++, implemented on top of the Xerces-C library";
+    description = "XQuery and XPath 2 library and command line utility written in C++, implemented on top of the Xerces-C library";
     mainProgram = "xqilla";
     license     = licenses.asl20 ;
     maintainers = with maintainers; [ obadz ];
diff --git a/pkgs/development/tools/yamlfmt/default.nix b/pkgs/development/tools/yamlfmt/default.nix
index 3b7fbc20ca389..89132f4c83fbf 100644
--- a/pkgs/development/tools/yamlfmt/default.nix
+++ b/pkgs/development/tools/yamlfmt/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "An extensible command line tool or library to format yaml files.";
+    description = "Extensible command line tool or library to format yaml files";
     homepage = "https://github.com/google/yamlfmt";
     license = licenses.asl20;
     maintainers = with maintainers; [ sno2wman ];
diff --git a/pkgs/development/tools/yarn-berry/default.nix b/pkgs/development/tools/yarn-berry/default.nix
index b7caeb4f823ed..4b1ff6de268f5 100644
--- a/pkgs/development/tools/yarn-berry/default.nix
+++ b/pkgs/development/tools/yarn-berry/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://yarnpkg.com/";
-    description = "Fast, reliable, and secure dependency management.";
+    description = "Fast, reliable, and secure dependency management";
     license = licenses.bsd2;
     maintainers = with maintainers; [ ryota-ka pyrox0 DimitarNestorov ];
     platforms = platforms.unix;
diff --git a/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix b/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix
index b43bc40c85f6a..3cc5e31c3c152 100644
--- a/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix
+++ b/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix
@@ -398,25 +398,15 @@ in rec {
     });
 
   yarn2nix = mkYarnPackage {
-    src =
-      let
-        src = ./.;
-
-        mkFilter = { dirsToInclude, filesToInclude, root }: path: type:
-          let
-            inherit (lib) elem elemAt splitString;
-
-            subpath = elemAt (splitString "${toString root}/" path) 1;
-            spdir = elemAt (splitString "/" subpath) 0;
-          in elem spdir dirsToInclude ||
-            (type == "regular" && elem subpath filesToInclude);
-      in builtins.filterSource
-          (mkFilter {
-            dirsToInclude = ["bin" "lib"];
-            filesToInclude = ["package.json" "yarn.lock"];
-            root = src;
-          })
-          src;
+    src = lib.fileset.toSource {
+      root = ./.;
+      fileset = lib.fileset.unions [
+        ./bin
+        ./lib
+        ./package.json
+        ./yarn.lock
+      ];
+    };
 
     # yarn2nix is the only package that requires the yarnNix option.
     # All the other projects can auto-generate that file.
diff --git a/pkgs/development/tools/yq-go/default.nix b/pkgs/development/tools/yq-go/default.nix
index f54f77113e42e..571c0a489ea72 100644
--- a/pkgs/development/tools/yq-go/default.nix
+++ b/pkgs/development/tools/yq-go/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "yq-go";
-  version = "4.44.1";
+  version = "4.44.2";
 
   src = fetchFromGitHub {
     owner = "mikefarah";
     repo = "yq";
     rev = "v${version}";
-    hash = "sha256-5l948J0NTeWOeUMlcoEQZws8viqtARdkJsGch4c6Trw=";
+    hash = "sha256-l5/D2yCbf4CB4bUB/wIN/MW4u2D8pv7N6bL5q5DoDMs=";
   };
 
-  vendorHash = "sha256-j5vcx5wW2v1kNc2QCPR11JEb1fTA9q4E4mbJ2VJC37A=";
+  vendorHash = "sha256-HiRdz6fDu0Q0mAi2E5Ec0Hst8mhJEfvNuoDXJ5Ak+js=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/development/tools/ytt/default.nix b/pkgs/development/tools/ytt/default.nix
index 1b38498f2cfcd..297ab054b814a 100644
--- a/pkgs/development/tools/ytt/default.nix
+++ b/pkgs/development/tools/ytt/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "ytt";
-  version = "0.49.0";
+  version = "0.49.1";
 
   src = fetchFromGitHub {
     owner = "vmware-tanzu";
     repo = "carvel-ytt";
     rev = "v${version}";
-    sha256 = "sha256-7eG9ATZTqA48KFdPW/XVYNdq+giYVx0v1GDtabiTpQI=";
+    sha256 = "sha256-1W7pnljAzeIjXdjCj8nauvca4IGpsn0TmrKUNJtMg+E=";
   };
 
   vendorHash = null;
diff --git a/pkgs/development/tools/yuicompressor/default.nix b/pkgs/development/tools/yuicompressor/default.nix
index 281aaee522c2a..e865160fb7141 100644
--- a/pkgs/development/tools/yuicompressor/default.nix
+++ b/pkgs/development/tools/yuicompressor/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A JavaScript and CSS minifier";
+    description = "JavaScript and CSS minifier";
     mainProgram = "yuicompressor";
     homepage = "http://yui.github.io/yuicompressor/";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
diff --git a/pkgs/development/tools/zed/default.nix b/pkgs/development/tools/zed/default.nix
index fbdad83efb284..d194b576c3610 100644
--- a/pkgs/development/tools/zed/default.nix
+++ b/pkgs/development/tools/zed/default.nix
@@ -37,7 +37,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A novel data lake based on super-structured data";
+    description = "Novel data lake based on super-structured data";
     homepage = "https://zed.brimdata.io";
     changelog = "https://github.com/brimdata/zed/blob/v${version}/CHANGELOG.md";
     license = licenses.bsd3;
diff --git a/pkgs/development/tools/zld/default.nix b/pkgs/development/tools/zld/default.nix
index 95a642137f0bd..af8509103067f 100644
--- a/pkgs/development/tools/zld/default.nix
+++ b/pkgs/development/tools/zld/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A faster version of Apple's linker";
+    description = "Faster version of Apple's linker";
     homepage = "https://github.com/michaeleisel/zld";
     license = licenses.mit;
     maintainers = [ maintainers.rgnns ];
diff --git a/pkgs/development/web/boa/default.nix b/pkgs/development/web/boa/default.nix
index 93755932b33b3..122e0df08aa47 100644
--- a/pkgs/development/web/boa/default.nix
+++ b/pkgs/development/web/boa/default.nix
@@ -46,7 +46,7 @@ rustPlatform.buildRustPackage rec {
   env = { ZSTD_SYS_USE_PKG_CONFIG = true; };
 
   meta = with lib; {
-    description = "An embeddable and experimental Javascript engine written in Rust";
+    description = "Embeddable and experimental Javascript engine written in Rust";
     mainProgram = "boa";
     homepage = "https://github.com/boa-dev/boa";
     changelog = "https://github.com/boa-dev/boa/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/development/web/bootstrap-studio/default.nix b/pkgs/development/web/bootstrap-studio/default.nix
index 14675efdac179..3839da048fa45 100644
--- a/pkgs/development/web/bootstrap-studio/default.nix
+++ b/pkgs/development/web/bootstrap-studio/default.nix
@@ -2,10 +2,10 @@
 
 let
   pname = "bootstrap-studio";
-  version = "6.6.1";
+  version = "6.7.0";
   src = fetchurl {
     url = "https://releases.bootstrapstudio.io/${version}/Bootstrap%20Studio.AppImage";
-    sha256 = "sha256-mMhjdAJfiDoK4b8TfawzxZHyQG2MUJHpG45MhuaCPqs=";
+    sha256 = "sha256-bhtzz6eyvEXrGrp7upvk6hYuOeiOjI+sxXQy+9gyBto=";
   };
   appimageContents = appimageTools.extractType2 { inherit pname version src; };
 in
diff --git a/pkgs/development/web/bun/default.nix b/pkgs/development/web/bun/default.nix
index 38f926c22ecac..4fa21673a61d3 100644
--- a/pkgs/development/web/bun/default.nix
+++ b/pkgs/development/web/bun/default.nix
@@ -12,7 +12,7 @@
 }:
 
 stdenvNoCC.mkDerivation rec {
-  version = "1.1.8";
+  version = "1.1.15";
   pname = "bun";
 
   src = passthru.sources.${stdenvNoCC.hostPlatform.system} or (throw "Unsupported system: ${stdenvNoCC.hostPlatform.system}");
@@ -51,19 +51,19 @@ stdenvNoCC.mkDerivation rec {
     sources = {
       "aarch64-darwin" = fetchurl {
         url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-darwin-aarch64.zip";
-        hash = "sha256-n5ElTDuD0fap+llzrXN7de937jYaAG8dpJlKUB0npT4=";
+        hash = "sha256-T6V3B54rpdNmF60lX137Pau80+E/21aSl6LCa+6GHq4=";
       };
       "aarch64-linux" = fetchurl {
         url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-linux-aarch64.zip";
-        hash = "sha256-4/kEyaF2kmu8MAjlrPgBqKFDId8bBibu3Zll3b0w8Ro=";
+        hash = "sha256-ekWcoZxGsq1AtBLflzzhVQ2lVPwQt61Y86MVHtFJsUQ=";
       };
       "x86_64-darwin" = fetchurl {
         url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-darwin-x64.zip";
-        hash = "sha256-btyslaKqdk86whAnQV0on7NWTBTRTegFvMsOl0YyloY=";
+        hash = "sha256-o1NWjuWTwIQamLG10UU7LawZ9jB8RDuLWJKbCCEIdeU=";
       };
       "x86_64-linux" = fetchurl {
         url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-linux-x64.zip";
-        hash = "sha256-JuDT+8FHbamdMVCDeSTGPYOvhPY2EZ9XeD2zjHEj36Y=";
+        hash = "sha256-PLGR7TEdy3sQ3S9rKWe8z8gjrmb8STyYPzbRPaJYSPI=";
       };
     };
     updateScript = writeShellScript "update-bun" ''
@@ -75,8 +75,7 @@ stdenvNoCC.mkDerivation rec {
           exit 0
       fi
       for platform in ${lib.escapeShellArgs meta.platforms}; do
-        update-source-version "bun" "0" "${lib.fakeHash}" --source-key="sources.$platform"
-        update-source-version "bun" "$NEW_VERSION" --source-key="sources.$platform"
+        update-source-version "bun" "$NEW_VERSION" --ignore-same-version --source-key="sources.$platform"
       done
     '';
   };
@@ -93,7 +92,7 @@ stdenvNoCC.mkDerivation rec {
       lgpl21Only # javascriptcore and webkit
     ];
     mainProgram = "bun";
-    maintainers = with maintainers; [ DAlperin jk thilobillerbeck cdmistman coffeeispower ];
+    maintainers = with maintainers; [ DAlperin jk thilobillerbeck cdmistman coffeeispower diogomdp ];
     platforms = builtins.attrNames passthru.sources;
     # Broken for Musl at 2024-01-13, tracking issue:
     # https://github.com/NixOS/nixpkgs/issues/280716
diff --git a/pkgs/development/web/cog/default.nix b/pkgs/development/web/cog/default.nix
index 0a9be7e5682b4..e974007036246 100644
--- a/pkgs/development/web/cog/default.nix
+++ b/pkgs/development/web/cog/default.nix
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A small single “window” launcher for the WebKit WPE port";
+    description = "Small single “window” launcher for the WebKit WPE port";
     license = licenses.mit;
     maintainers = [ maintainers.matthewbauer ];
     platforms = platforms.linux;
diff --git a/pkgs/development/web/deno/default.nix b/pkgs/development/web/deno/default.nix
index ad9ef96a71e74..c8de1418333a0 100644
--- a/pkgs/development/web/deno/default.nix
+++ b/pkgs/development/web/deno/default.nix
@@ -13,16 +13,16 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "deno";
-  version = "1.43.5";
+  version = "1.44.3";
 
   src = fetchFromGitHub {
     owner = "denoland";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Kkm7tU+pV/GHAqiiylX2quC+NhzFBKxcp12f2bH93lY=";
+    hash = "sha256-KSCHVoKZiInxsnM+2sgyl87Wz9K9mjGjT4356m3+haY=";
   };
 
-  cargoHash = "sha256-Lr8aMHMZlfgwQhl0R13f5C9fdicxgPSB+5VtNqbDP38=";
+  cargoHash = "sha256-/ZxCM8/xLccOzzU5gfX0eC/DJwgqFngXM3cg+F/ZFAM=";
 
   postPatch = ''
     # upstream uses lld on aarch64-darwin for faster builds
@@ -89,7 +89,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     homepage = "https://deno.land/";
     changelog = "https://github.com/denoland/deno/releases/tag/v${version}";
-    description = "A secure runtime for JavaScript and TypeScript";
+    description = "Secure runtime for JavaScript and TypeScript";
     longDescription = ''
       Deno aims to be a productive and secure scripting environment for the modern programmer.
       Deno will always be distributed as a single executable.
diff --git a/pkgs/development/web/deno/librusty_v8.nix b/pkgs/development/web/deno/librusty_v8.nix
index 9e98aba8af8a3..e7de26609e67c 100644
--- a/pkgs/development/web/deno/librusty_v8.nix
+++ b/pkgs/development/web/deno/librusty_v8.nix
@@ -1,20 +1,23 @@
 # auto-generated file -- DO NOT EDIT!
-{ stdenv, fetchurl }:
+{ lib, stdenv, fetchurl }:
 
 let
   fetch_librusty_v8 = args: fetchurl {
     name = "librusty_v8-${args.version}";
     url = "https://github.com/denoland/rusty_v8/releases/download/v${args.version}/librusty_v8_release_${stdenv.hostPlatform.rust.rustcTarget}.a.gz";
     sha256 = args.shas.${stdenv.hostPlatform.system};
-    meta = { inherit (args) version; };
+    meta = {
+      inherit (args) version;
+      sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+    };
   };
 in
 fetch_librusty_v8 {
-  version = "0.91.1";
+  version = "0.93.1";
   shas = {
-    x86_64-linux = "sha256-2J/YDTtSCXo2nsO0Lx6mJqKSFu2hUc8HmNAL2SD9ImI=";
-    aarch64-linux = "sha256-NwuDVaEbYWZfF2epVPPhIKM1aw35e8Bp5siBoREpym8=";
-    x86_64-darwin = "sha256-JNf4Me4VMdvjgYM4OyCUlQW6Q/OdQ2BuDNWFKI4sbtg=";
-    aarch64-darwin = "sha256-WVBDiGWVBvMiKNgPaPw8KQChARkFDfx8Nt9QEobGNG4=";
+    x86_64-linux = "sha256-ttbwIxzMgihfwwjh3usu7FxVTwLt7ceXU+MyaxXfkxk=";
+    aarch64-linux = "sha256-rlyY4C4FMHTyPUzqHKYzToIs9tJunTXEor9wc/7zH/0=";
+    x86_64-darwin = "sha256-IUDe0ogBSCaz1q+uXepOi883hamtJYqBPtNfrm/y6Qo=";
+    aarch64-darwin = "sha256-53PuHq7AUi21cjopoFakzLuJyqSJ9VeF7g53IWxFXAI=";
   };
 }
diff --git a/pkgs/development/web/deno/update/librusty_v8.ts b/pkgs/development/web/deno/update/librusty_v8.ts
index 14d698a063e78..301af63cb99b9 100644
--- a/pkgs/development/web/deno/update/librusty_v8.ts
+++ b/pkgs/development/web/deno/update/librusty_v8.ts
@@ -40,14 +40,17 @@ fetchurl {
 
 const templateDeps = (version: string, deps: PrefetchResult[]) =>
   `# auto-generated file -- DO NOT EDIT!
-{ stdenv, fetchurl }:
+{ lib, stdenv, fetchurl }:
 
 let
   fetch_librusty_v8 = args: fetchurl {
     name = "librusty_v8-\${args.version}";
     url = "https://github.com/denoland/rusty_v8/releases/download/v\${args.version}/librusty_v8_release_\${stdenv.hostPlatform.rust.rustcTarget}.a.gz";
     sha256 = args.shas.\${stdenv.hostPlatform.system};
-    meta = { inherit (args) version; };
+    meta = {
+      inherit (args) version;
+      sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+    };
   };
 in
 fetch_librusty_v8 {
diff --git a/pkgs/development/web/edge-runtime/Cargo.lock b/pkgs/development/web/edge-runtime/Cargo.lock
new file mode 100644
index 0000000000000..6f3f1aa872b0e
--- /dev/null
+++ b/pkgs/development/web/edge-runtime/Cargo.lock
@@ -0,0 +1,7119 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "Inflector"
+version = "0.11.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
+dependencies = [
+ "lazy_static",
+ "regex",
+]
+
+[[package]]
+name = "addr2line"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "aead"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0"
+dependencies = [
+ "crypto-common",
+ "generic-array",
+]
+
+[[package]]
+name = "aead-gcm-stream"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4a09ecb526d53de2842cc876ee5c9b51161ee60399edeca4cf74892a01b48177"
+dependencies = [
+ "aead",
+ "aes",
+ "cipher",
+ "ctr",
+ "ghash",
+ "subtle",
+]
+
+[[package]]
+name = "aes"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2"
+dependencies = [
+ "cfg-if 1.0.0",
+ "cipher",
+ "cpufeatures",
+]
+
+[[package]]
+name = "aes-gcm"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1"
+dependencies = [
+ "aead",
+ "aes",
+ "cipher",
+ "ctr",
+ "ghash",
+ "subtle",
+]
+
+[[package]]
+name = "aes-kw"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69fa2b352dcefb5f7f3a5fb840e02665d311d878955380515e4fd50095dd3d8c"
+dependencies = [
+ "aes",
+]
+
+[[package]]
+name = "ahash"
+version = "0.8.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42cd52102d3df161c77a887b608d7a4897d7cc112886a9537b738a887a03aaff"
+dependencies = [
+ "cfg-if 1.0.0",
+ "once_cell",
+ "version_check 0.9.4",
+ "zerocopy",
+]
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "alloc-no-stdlib"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
+
+[[package]]
+name = "alloc-stdlib"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
+dependencies = [
+ "alloc-no-stdlib",
+]
+
+[[package]]
+name = "allocator-api2"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
+
+[[package]]
+name = "android_system_properties"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "ansi_term"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "anstream"
+version = "0.6.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
+
+[[package]]
+name = "anstyle-parse"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
+dependencies = [
+ "anstyle",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
+
+[[package]]
+name = "approx"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f2a05fd1bd10b2527e20a2cd32d8873d115b8b39fe219ee25f42a8aca6ba278"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "arrayvec"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "ash"
+version = "0.37.3+1.3.251"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39e9c3835d686b0a6084ab4234fcd1b07dbf6e4767dce60874b12356a25ecd4a"
+dependencies = [
+ "libloading 0.7.4",
+]
+
+[[package]]
+name = "asn1-rs"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0"
+dependencies = [
+ "asn1-rs-derive",
+ "asn1-rs-impl",
+ "displaydoc",
+ "nom 7.1.3",
+ "num-traits",
+ "rusticata-macros",
+ "thiserror",
+ "time",
+]
+
+[[package]]
+name = "asn1-rs-derive"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 1.0.109",
+ "synstructure",
+]
+
+[[package]]
+name = "asn1-rs-impl"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "ast_node"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3e3e06ec6ac7d893a0db7127d91063ad7d9da8988f8a1a256f03729e6eec026"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "swc_macros_common",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "async-compression"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a116f46a969224200a0a97f29cfd4c50e7534e4b4826bd23ea2c3c533039c82c"
+dependencies = [
+ "brotli",
+ "flate2",
+ "futures-core",
+ "memchr",
+ "pin-project-lite",
+ "tokio",
+]
+
+[[package]]
+name = "async-trait"
+version = "0.1.77"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "async-tungstenite"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef0f8d64ef9351752fbe5462f242c625d9c4910d2bc3f7ec44c43857ca123f5d"
+dependencies = [
+ "futures-io",
+ "futures-util",
+ "log",
+ "pin-project-lite",
+ "tungstenite",
+]
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi 0.1.19",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "auto_impl"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "823b8bb275161044e2ac7a25879cb3e2480cb403e3943022c7c769c599b756aa"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "backtrace"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if 1.0.0",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "base"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "async-tungstenite",
+ "bytes",
+ "cityhash",
+ "cooked-waker",
+ "cpu_timer",
+ "ctor",
+ "deno_ast",
+ "deno_broadcast_channel",
+ "deno_canvas",
+ "deno_config",
+ "deno_console",
+ "deno_core",
+ "deno_crypto",
+ "deno_fetch",
+ "deno_fs",
+ "deno_http",
+ "deno_io",
+ "deno_net",
+ "deno_npm",
+ "deno_semver",
+ "deno_tls",
+ "deno_url",
+ "deno_web",
+ "deno_webgpu",
+ "deno_webidl",
+ "deno_websocket",
+ "enum-as-inner 0.6.0",
+ "eszip",
+ "event_worker",
+ "fastwebsockets 0.4.4",
+ "flume",
+ "futures-util",
+ "http 0.2.11",
+ "http_utils",
+ "httparse",
+ "hyper 0.14.28",
+ "import_map",
+ "log",
+ "monch",
+ "notify",
+ "once_cell",
+ "pin-project",
+ "reqwest",
+ "rustls-pemfile 2.1.0",
+ "sb_ai",
+ "sb_core",
+ "sb_env",
+ "sb_fs",
+ "sb_graph",
+ "sb_module_loader",
+ "sb_node",
+ "sb_npm",
+ "sb_os",
+ "sb_workers",
+ "scopeguard",
+ "serde",
+ "serial_test",
+ "thiserror",
+ "tls-listener",
+ "tokio",
+ "tokio-rustls 0.25.0",
+ "tokio-util",
+ "tungstenite",
+ "url",
+ "urlencoding",
+ "uuid",
+]
+
+[[package]]
+name = "base16ct"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
+
+[[package]]
+name = "base32"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23ce669cd6c8588f79e15cf450314f9638f967fc5770ff1c7c1deb0925ea7cfa"
+
+[[package]]
+name = "base64"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+
+[[package]]
+name = "base64"
+version = "0.21.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+
+[[package]]
+name = "base64-simd"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195"
+dependencies = [
+ "outref",
+ "vsimd",
+]
+
+[[package]]
+name = "base64ct"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
+
+[[package]]
+name = "better_scoped_tls"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "794edcc9b3fb07bb4aecaa11f093fd45663b4feadb782d68303a2268bc2701de"
+dependencies = [
+ "scoped-tls",
+]
+
+[[package]]
+name = "bincode"
+version = "1.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "bindgen"
+version = "0.49.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c07087f3d5731bf3fb375a81841b99597e25dc11bd3bc72d16d43adf6624a6e"
+dependencies = [
+ "bitflags 1.3.2",
+ "cexpr",
+ "cfg-if 0.1.10",
+ "clang-sys",
+ "clap 2.34.0",
+ "env_logger 0.6.2",
+ "fxhash",
+ "lazy_static",
+ "log",
+ "peeking_take_while",
+ "proc-macro2 0.4.30",
+ "quote 0.6.13",
+ "regex",
+ "shlex",
+ "which 2.0.1",
+]
+
+[[package]]
+name = "bit-set"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
+dependencies = [
+ "bit-vec",
+]
+
+[[package]]
+name = "bit-vec"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "block"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
+
+[[package]]
+name = "block-buffer"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "block-padding"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "brotli"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f"
+dependencies = [
+ "alloc-no-stdlib",
+ "alloc-stdlib",
+ "brotli-decompressor",
+]
+
+[[package]]
+name = "brotli-decompressor"
+version = "2.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f"
+dependencies = [
+ "alloc-no-stdlib",
+ "alloc-stdlib",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+
+[[package]]
+name = "bytemuck"
+version = "1.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
+
+[[package]]
+name = "byteorder"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+
+[[package]]
+name = "bytes"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+
+[[package]]
+name = "cache_control"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bf2a5fb3207c12b5d208ebc145f967fea5cac41a021c37417ccc31ba40f39ee"
+
+[[package]]
+name = "cauchy"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ff11ddd2af3b5e80dd0297fee6e56ac038d9bdc549573cdb51bd6d2efe7f05e"
+dependencies = [
+ "num-complex",
+ "num-traits",
+ "rand",
+ "serde",
+]
+
+[[package]]
+name = "cbc"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6"
+dependencies = [
+ "cipher",
+]
+
+[[package]]
+name = "cblas-sys"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6feecd82cce51b0204cf063f0041d69f24ce83f680d87514b004248e7b0fa65"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.83"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "cexpr"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fce5b5fb86b0c57c20c834c1b412fd09c77c8a59b9473f86272709e78874cd1d"
+dependencies = [
+ "nom 4.2.3",
+]
+
+[[package]]
+name = "cfg-if"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "chrono"
+version = "0.4.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1"
+dependencies = [
+ "iana-time-zone",
+ "num-integer",
+ "num-traits",
+ "winapi",
+]
+
+[[package]]
+name = "cipher"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
+dependencies = [
+ "crypto-common",
+ "inout",
+]
+
+[[package]]
+name = "cityhash"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7ecb82e5b6394ea8408bc8f454d50c75f339ca89f9af90a6ff8694e6a1c63da"
+dependencies = [
+ "bindgen",
+ "cc",
+ "clap 2.34.0",
+ "libc",
+]
+
+[[package]]
+name = "clang-sys"
+version = "0.28.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81de550971c976f176130da4b2978d3b524eaa0fd9ac31f3ceb5ae1231fb4853"
+dependencies = [
+ "glob",
+ "libc",
+ "libloading 0.5.2",
+]
+
+[[package]]
+name = "clap"
+version = "2.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
+dependencies = [
+ "ansi_term",
+ "atty",
+ "bitflags 1.3.2",
+ "strsim 0.8.0",
+ "term_size",
+ "textwrap",
+ "unicode-width",
+ "vec_map",
+ "yaml-rust",
+]
+
+[[package]]
+name = "clap"
+version = "4.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f"
+dependencies = [
+ "clap_builder",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "clap_lex",
+ "strsim 0.11.0",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
+
+[[package]]
+name = "cli"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "base",
+ "clap 4.5.0",
+ "deno_core",
+ "dotenv-build",
+ "env_logger 0.10.2",
+ "glob",
+ "log",
+ "sb_graph",
+ "tokio",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "codespan-reporting"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
+dependencies = [
+ "termcolor",
+ "unicode-width",
+]
+
+[[package]]
+name = "color_quant"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
+
+[[package]]
+name = "colorchoice"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+
+[[package]]
+name = "const-oid"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
+
+[[package]]
+name = "convert_case"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
+
+[[package]]
+name = "cooked-waker"
+version = "5.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "147be55d677052dabc6b22252d5dd0fd4c29c8c27aa4f2fbef0f94aa003b406f"
+
+[[package]]
+name = "core-foundation"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
+
+[[package]]
+name = "core-graphics-types"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "libc",
+]
+
+[[package]]
+name = "cpu_timer"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "ctor",
+ "futures",
+ "libc",
+ "log",
+ "nix",
+ "once_cell",
+ "signal-hook",
+ "signal-hook-tokio",
+ "tokio",
+]
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "crc"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49fc9a695bca7f35f5f4c15cddc84415f66a74ea78eef08e90c5024f2b540e23"
+dependencies = [
+ "crc-catalog",
+]
+
+[[package]]
+name = "crc-catalog"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccaeedb56da03b09f598226e25e80088cb4cd25f316e6e4df7d695f0feeb1403"
+
+[[package]]
+name = "crc32fast"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
+dependencies = [
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
+dependencies = [
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+
+[[package]]
+name = "crunchy"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
+
+[[package]]
+name = "crypto-bigint"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76"
+dependencies = [
+ "generic-array",
+ "rand_core",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "crypto-common"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+dependencies = [
+ "generic-array",
+ "rand_core",
+ "typenum",
+]
+
+[[package]]
+name = "ctor"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e"
+dependencies = [
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "ctr"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835"
+dependencies = [
+ "cipher",
+]
+
+[[package]]
+name = "curve25519-dalek"
+version = "4.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348"
+dependencies = [
+ "cfg-if 1.0.0",
+ "cpufeatures",
+ "curve25519-dalek-derive",
+ "fiat-crypto",
+ "platforms",
+ "rustc_version 0.4.0",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "curve25519-dalek-derive"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "d3d12"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e16e44ab292b1dddfdaf7be62cfd8877df52f2f3fde5858d95bab606be259f20"
+dependencies = [
+ "bitflags 2.4.2",
+ "libloading 0.8.1",
+ "winapi",
+]
+
+[[package]]
+name = "darling"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "strsim 0.10.0",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e"
+dependencies = [
+ "darling_core",
+ "quote 1.0.35",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "dashmap"
+version = "5.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
+dependencies = [
+ "cfg-if 1.0.0",
+ "hashbrown 0.14.3",
+ "lock_api",
+ "once_cell",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "data-encoding"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
+
+[[package]]
+name = "data-url"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41b319d1b62ffbd002e057f36bebd1f42b9f97927c9577461d855f3513c4289f"
+
+[[package]]
+name = "debugid"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d"
+dependencies = [
+ "serde",
+ "uuid",
+]
+
+[[package]]
+name = "deno_ast"
+version = "0.32.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6fa239d4d69bb6c61bd73e0fc23e3688c7e87e1f47f2f37f4cff7a0080017299"
+dependencies = [
+ "anyhow",
+ "base64 0.21.7",
+ "deno_media_type",
+ "dprint-swc-ext",
+ "serde",
+ "swc_atoms",
+ "swc_bundler",
+ "swc_common",
+ "swc_config",
+ "swc_config_macro",
+ "swc_ecma_ast",
+ "swc_ecma_codegen",
+ "swc_ecma_codegen_macros",
+ "swc_ecma_dep_graph",
+ "swc_ecma_loader",
+ "swc_ecma_parser",
+ "swc_ecma_transforms_base",
+ "swc_ecma_transforms_classes",
+ "swc_ecma_transforms_macros",
+ "swc_ecma_transforms_optimization",
+ "swc_ecma_transforms_proposal",
+ "swc_ecma_transforms_react",
+ "swc_ecma_transforms_typescript",
+ "swc_ecma_utils",
+ "swc_ecma_visit",
+ "swc_eq_ignore_macros",
+ "swc_graph_analyzer",
+ "swc_macros_common",
+ "swc_visit",
+ "swc_visit_macros",
+ "text_lines",
+ "url",
+]
+
+[[package]]
+name = "deno_broadcast_channel"
+version = "0.130.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37d0a2bcd833ba9aa02337c79108124a53e40b6491d78bb0588772fd62059c02"
+dependencies = [
+ "async-trait",
+ "deno_core",
+ "tokio",
+ "uuid",
+]
+
+[[package]]
+name = "deno_cache_dir"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2bbb245d9a3719b5eb2b5195aaaa25108c3c93d1762b181a20fb1af1c7703eaf"
+dependencies = [
+ "anyhow",
+ "deno_media_type",
+ "indexmap 2.2.3",
+ "log",
+ "once_cell",
+ "parking_lot",
+ "ring",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "url",
+]
+
+[[package]]
+name = "deno_canvas"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cefb86183b4156b4222f128be746c5c96e3528e95eedc6f819f3cd57ecf7b3e"
+dependencies = [
+ "deno_core",
+ "deno_webgpu",
+ "image",
+ "serde",
+ "tokio",
+]
+
+[[package]]
+name = "deno_config"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aca0a5b9d2693efb14c8c80d66a052464f24cbf6b3473648037e282c0c616917"
+dependencies = [
+ "anyhow",
+ "glob",
+ "indexmap 2.2.3",
+ "jsonc-parser",
+ "log",
+ "percent-encoding",
+ "serde",
+ "serde_json",
+ "url",
+]
+
+[[package]]
+name = "deno_console"
+version = "0.136.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "598ab6c4aeb4bd4e3e31d90b8f6dd772f25ed92fc979ff12c641074ef4553030"
+dependencies = [
+ "deno_core",
+]
+
+[[package]]
+name = "deno_core"
+version = "0.256.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd5997286bcc46199bbae727f43ee65cf4bd073ac2d240a36a6ceae3bfab14ac"
+dependencies = [
+ "anyhow",
+ "bit-set",
+ "bit-vec",
+ "bytes",
+ "cooked-waker",
+ "deno_core_icudata",
+ "deno_ops",
+ "deno_unsync",
+ "futures",
+ "libc",
+ "log",
+ "memoffset 0.9.0",
+ "parking_lot",
+ "pin-project",
+ "serde",
+ "serde_json",
+ "serde_v8",
+ "smallvec",
+ "sourcemap 7.0.1",
+ "static_assertions",
+ "tokio",
+ "url",
+ "v8",
+]
+
+[[package]]
+name = "deno_core_icudata"
+version = "0.0.73"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a13951ea98c0a4c372f162d669193b4c9d991512de9f2381dd161027f34b26b1"
+
+[[package]]
+name = "deno_crypto"
+version = "0.150.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe3cc83b7fe945183ef27be203c54276abef9fbda4844722f10e0af341a316fd"
+dependencies = [
+ "aes",
+ "aes-gcm",
+ "aes-kw",
+ "base64 0.21.7",
+ "cbc",
+ "const-oid",
+ "ctr",
+ "curve25519-dalek",
+ "deno_core",
+ "deno_web",
+ "elliptic-curve",
+ "num-traits",
+ "once_cell",
+ "p256",
+ "p384",
+ "p521",
+ "rand",
+ "ring",
+ "rsa",
+ "serde",
+ "serde_bytes",
+ "sha1",
+ "sha2",
+ "signature",
+ "spki",
+ "tokio",
+ "uuid",
+ "x25519-dalek",
+]
+
+[[package]]
+name = "deno_fetch"
+version = "0.160.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5860515fb73057028018761e937edc4c910207d40d9d9721bb0bb1dfc355fb54"
+dependencies = [
+ "bytes",
+ "data-url",
+ "deno_core",
+ "deno_tls",
+ "dyn-clone",
+ "http 0.2.11",
+ "pin-project",
+ "reqwest",
+ "serde",
+ "serde_json",
+ "tokio",
+ "tokio-util",
+]
+
+[[package]]
+name = "deno_fs"
+version = "0.46.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a3eae95f88e4c5a348586b0f9d0d6f3e94aa89c6457f299d9cefed7f1ad4a30"
+dependencies = [
+ "async-trait",
+ "deno_core",
+ "deno_io",
+ "filetime",
+ "fs3",
+ "libc",
+ "log",
+ "nix",
+ "rand",
+ "rayon",
+ "serde",
+ "tokio",
+ "winapi",
+]
+
+[[package]]
+name = "deno_graph"
+version = "0.64.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0eb6ad784fa5885867ba00e0db8ddcb2d98a4a0234fe336d50a13092e268c44"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "data-url",
+ "deno_ast",
+ "deno_semver",
+ "encoding_rs",
+ "futures",
+ "import_map",
+ "indexmap 2.2.3",
+ "log",
+ "monch",
+ "once_cell",
+ "parking_lot",
+ "regex",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "url",
+]
+
+[[package]]
+name = "deno_http"
+version = "0.133.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94007415787d966f964fb2c46ce81721a9de3a23943f22935dae9c56dfad77ec"
+dependencies = [
+ "async-compression",
+ "async-trait",
+ "base64 0.21.7",
+ "brotli",
+ "bytes",
+ "cache_control",
+ "deno_core",
+ "deno_net",
+ "deno_websocket",
+ "flate2",
+ "http 0.2.11",
+ "http 1.0.0",
+ "httparse",
+ "hyper 0.14.28",
+ "hyper 1.1.0",
+ "hyper-util",
+ "itertools 0.10.5",
+ "memmem",
+ "mime",
+ "once_cell",
+ "percent-encoding",
+ "phf",
+ "pin-project",
+ "ring",
+ "scopeguard",
+ "serde",
+ "smallvec",
+ "thiserror",
+ "tokio",
+ "tokio-util",
+]
+
+[[package]]
+name = "deno_io"
+version = "0.46.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "484a121382c19f70413bb43c4a1d79a8feab6f84edd0efaaee28ef4ea3a70926"
+dependencies = [
+ "async-trait",
+ "deno_core",
+ "filetime",
+ "fs3",
+ "once_cell",
+ "tokio",
+ "winapi",
+]
+
+[[package]]
+name = "deno_lockfile"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f348633cc4425b2a9011436e256b1ae8f6c8026ec2705d852baee8643dc5562"
+dependencies = [
+ "ring",
+ "serde",
+ "serde_json",
+ "thiserror",
+]
+
+[[package]]
+name = "deno_media_type"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a798670c20308e5770cc0775de821424ff9e85665b602928509c8c70430b3ee0"
+dependencies = [
+ "data-url",
+ "serde",
+ "url",
+]
+
+[[package]]
+name = "deno_native_certs"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4785d0bdc13819b665b71e4fb7e119d859568471e4c245ec5610857e70c9345"
+dependencies = [
+ "dlopen2",
+ "dlopen2_derive",
+ "once_cell",
+ "rustls-native-certs",
+ "rustls-pemfile 1.0.4",
+]
+
+[[package]]
+name = "deno_net"
+version = "0.128.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0342543e781289ca794756301f4ea9e08185ecc63843c135c719b5a29f51857"
+dependencies = [
+ "deno_core",
+ "deno_tls",
+ "enum-as-inner 0.5.1",
+ "log",
+ "pin-project",
+ "rustls-tokio-stream",
+ "serde",
+ "socket2",
+ "tokio",
+ "trust-dns-proto",
+ "trust-dns-resolver",
+]
+
+[[package]]
+name = "deno_npm"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "376262760b173ff01f8f5d05d58a64f6d863472396afb5582590fa0949342854"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "deno_lockfile",
+ "deno_semver",
+ "futures",
+ "log",
+ "monch",
+ "serde",
+ "thiserror",
+]
+
+[[package]]
+name = "deno_ops"
+version = "0.132.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02163d08afdd6fcf21e37c399c7425987c7170203a853052a800e80c91c2e87b"
+dependencies = [
+ "proc-macro-rules",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "strum",
+ "strum_macros",
+ "syn 2.0.48",
+ "thiserror",
+]
+
+[[package]]
+name = "deno_semver"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b49e14effd9df8ed261f7a1a34ac19bbaf0fa940c59bd19a6d8313cf41525e1c"
+dependencies = [
+ "monch",
+ "once_cell",
+ "serde",
+ "thiserror",
+ "url",
+]
+
+[[package]]
+name = "deno_tls"
+version = "0.123.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "334380ef454db2148df9aba7541bc8250bb4e6fb183ece9fdb293be0462eb7ad"
+dependencies = [
+ "deno_core",
+ "deno_native_certs",
+ "once_cell",
+ "rustls 0.21.11",
+ "rustls-pemfile 1.0.4",
+ "rustls-webpki 0.101.7",
+ "serde",
+ "webpki-roots",
+]
+
+[[package]]
+name = "deno_unsync"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30dff7e03584dbae188dae96a0f1876740054809b2ad0cf7c9fc5d361f20e739"
+dependencies = [
+ "tokio",
+]
+
+[[package]]
+name = "deno_url"
+version = "0.136.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7978221ce33221ac7a18b649a5a18fe7983fbe2fddf5a6959fc672089c10f9a9"
+dependencies = [
+ "deno_core",
+ "serde",
+ "urlpattern",
+]
+
+[[package]]
+name = "deno_web"
+version = "0.167.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67d78f50e55155b77abbf8fa6bdc24f68442c91742e03b67b66cc258f4b31cd1"
+dependencies = [
+ "async-trait",
+ "base64-simd",
+ "bytes",
+ "deno_core",
+ "encoding_rs",
+ "flate2",
+ "futures",
+ "serde",
+ "tokio",
+ "uuid",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "deno_webgpu"
+version = "0.103.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ef171e8bc24e2c3e6934543784832fb5c3b29f0385f23ff604fc84c103d1283"
+dependencies = [
+ "deno_core",
+ "raw-window-handle",
+ "serde",
+ "tokio",
+ "wgpu-core",
+ "wgpu-hal",
+ "wgpu-types",
+]
+
+[[package]]
+name = "deno_webidl"
+version = "0.136.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41eff4e69896e0f7fc432271c369052efd1d0b57a3d352688e2df800d1aa8dd9"
+dependencies = [
+ "deno_core",
+]
+
+[[package]]
+name = "deno_websocket"
+version = "0.141.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "370c0f3137a37362a4737b92a4838ce2e848ee1a99ca7a4fc840293d15d841c4"
+dependencies = [
+ "bytes",
+ "deno_core",
+ "deno_net",
+ "deno_tls",
+ "fastwebsockets 0.6.0",
+ "h2 0.4.4",
+ "http 1.0.0",
+ "http-body-util",
+ "hyper 1.1.0",
+ "hyper-util",
+ "once_cell",
+ "rustls-tokio-stream",
+ "serde",
+ "tokio",
+]
+
+[[package]]
+name = "deno_webstorage"
+version = "0.131.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cec9b81da6c28b78b801f995b167e021c9a0f8364080cabbd5eead7112be0032"
+dependencies = [
+ "deno_core",
+ "deno_web",
+ "rusqlite",
+ "serde",
+]
+
+[[package]]
+name = "deno_whoami"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e75e4caa92b98a27f09c671d1399aee0f5970aa491b9a598523aac000a2192e3"
+dependencies = [
+ "libc",
+ "whoami",
+]
+
+[[package]]
+name = "der"
+version = "0.7.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c"
+dependencies = [
+ "const-oid",
+ "pem-rfc7468",
+ "zeroize",
+]
+
+[[package]]
+name = "der-parser"
+version = "8.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e"
+dependencies = [
+ "asn1-rs",
+ "displaydoc",
+ "nom 7.1.3",
+ "num-bigint",
+ "num-traits",
+ "rusticata-macros",
+]
+
+[[package]]
+name = "deranged"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+dependencies = [
+ "powerfmt",
+]
+
+[[package]]
+name = "derive_builder"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8"
+dependencies = [
+ "derive_builder_macro",
+]
+
+[[package]]
+name = "derive_builder_core"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f"
+dependencies = [
+ "darling",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "derive_builder_macro"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e"
+dependencies = [
+ "derive_builder_core",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "derive_more"
+version = "0.99.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
+dependencies = [
+ "convert_case",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "rustc_version 0.4.0",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "digest"
+version = "0.10.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+dependencies = [
+ "block-buffer",
+ "const-oid",
+ "crypto-common",
+ "subtle",
+]
+
+[[package]]
+name = "displaydoc"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "dlopen2"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6bc2c7ed06fd72a8513ded8d0d2f6fd2655a85d6885c48cae8625d80faf28c03"
+dependencies = [
+ "dlopen2_derive",
+ "libc",
+ "once_cell",
+ "winapi",
+]
+
+[[package]]
+name = "dlopen2_derive"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "dotenv-build"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4547f16c17f6051a12cdb8c62b803f94bee6807c74aa7c530b30b737df981fc"
+
+[[package]]
+name = "dprint-swc-ext"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b2f24ce6b89a06ae3eb08d5d4f88c05d0aef1fa58e2eba8dd92c97b84210c25"
+dependencies = [
+ "bumpalo",
+ "num-bigint",
+ "rustc-hash",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_ecma_parser",
+ "text_lines",
+]
+
+[[package]]
+name = "dsa"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48bc224a9084ad760195584ce5abb3c2c34a225fa312a128ad245a6b412b7689"
+dependencies = [
+ "digest",
+ "num-bigint-dig",
+ "num-traits",
+ "pkcs8",
+ "rfc6979",
+ "sha2",
+ "signature",
+ "zeroize",
+]
+
+[[package]]
+name = "dyn-clone"
+version = "1.0.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d"
+
+[[package]]
+name = "ecb"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a8bfa975b1aec2145850fcaa1c6fe269a16578c44705a532ae3edc92b8881c7"
+dependencies = [
+ "cipher",
+]
+
+[[package]]
+name = "ecdsa"
+version = "0.16.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca"
+dependencies = [
+ "der",
+ "digest",
+ "elliptic-curve",
+ "rfc6979",
+ "signature",
+ "spki",
+]
+
+[[package]]
+name = "either"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
+
+[[package]]
+name = "elliptic-curve"
+version = "0.13.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47"
+dependencies = [
+ "base16ct",
+ "crypto-bigint",
+ "digest",
+ "ff",
+ "generic-array",
+ "group",
+ "hkdf",
+ "pem-rfc7468",
+ "pkcs8",
+ "rand_core",
+ "sec1",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "encoding_rs"
+version = "0.8.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+dependencies = [
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "enum-as-inner"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116"
+dependencies = [
+ "heck",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "enum-as-inner"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a"
+dependencies = [
+ "heck",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3"
+dependencies = [
+ "atty",
+ "humantime 1.3.0",
+ "log",
+ "regex",
+ "termcolor",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
+dependencies = [
+ "humantime 2.1.0",
+ "is-terminal",
+ "log",
+ "regex",
+ "termcolor",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
+dependencies = [
+ "errno-dragonfly",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "errno"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "errno-dragonfly"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "esaxx-rs"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d817e038c30374a4bcb22f94d0a8a0e216958d4c3dcde369b1439fec4bdda6e6"
+
+[[package]]
+name = "eszip"
+version = "0.60.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a060f8bb81229bd98c26e1c0efc066be2460558ee9187e73e40a89bd2c949f06"
+dependencies = [
+ "anyhow",
+ "base64 0.21.7",
+ "deno_ast",
+ "deno_graph",
+ "deno_npm",
+ "deno_semver",
+ "futures",
+ "hashlink",
+ "serde",
+ "serde_json",
+ "sha2",
+ "thiserror",
+ "url",
+]
+
+[[package]]
+name = "event_worker"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "deno_core",
+ "log",
+ "serde",
+ "strum",
+ "tokio",
+ "uuid",
+]
+
+[[package]]
+name = "failure"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86"
+dependencies = [
+ "backtrace",
+]
+
+[[package]]
+name = "fallible-iterator"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7"
+
+[[package]]
+name = "fallible-streaming-iterator"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
+
+[[package]]
+name = "faster-hex"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "fastwebsockets"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e6185b6dc9dddc4db0dedd2e213047e93bcbf7a0fb092abc4c4e4f3195efdb4"
+dependencies = [
+ "base64 0.21.7",
+ "hyper 0.14.28",
+ "pin-project",
+ "rand",
+ "sha1",
+ "simdutf8",
+ "thiserror",
+ "tokio",
+ "utf-8",
+]
+
+[[package]]
+name = "fastwebsockets"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f63dd7b57f9b33b1741fa631c9522eb35d43e96dcca4a6a91d5e4ca7c93acdc1"
+dependencies = [
+ "base64 0.21.7",
+ "http-body-util",
+ "hyper 1.1.0",
+ "hyper-util",
+ "pin-project",
+ "rand",
+ "sha1",
+ "simdutf8",
+ "thiserror",
+ "tokio",
+ "utf-8",
+]
+
+[[package]]
+name = "fdeflate"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
+dependencies = [
+ "simd-adler32",
+]
+
+[[package]]
+name = "ff"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449"
+dependencies = [
+ "rand_core",
+ "subtle",
+]
+
+[[package]]
+name = "fiat-crypto"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1676f435fc1dadde4d03e43f5d62b259e1ce5f40bd4ffb21db2b42ebe59c1382"
+
+[[package]]
+name = "filetime"
+version = "0.2.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
+dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+ "redox_syscall",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "fixedbitset"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
+
+[[package]]
+name = "flate2"
+version = "1.0.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743"
+dependencies = [
+ "crc32fast",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "float-cmp"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "flume"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+ "nanorand",
+ "spin 0.9.8",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "foreign-types"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
+dependencies = [
+ "foreign-types-macros",
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-macros"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "from_variant"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a0b11eeb173ce52f84ebd943d42e58813a2ebb78a6a3ff0a243b71c5199cd7b"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "swc_macros_common",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "fs3"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb17cf6ed704f72485332f6ab65257460c4f9f3083934cf402bf9f5b3b600a90"
+dependencies = [
+ "libc",
+ "rustc_version 0.2.3",
+ "winapi",
+]
+
+[[package]]
+name = "fslock"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04412b8935272e3a9bae6f48c7bfff74c2911f60525404edfdd28e49884c3bfb"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "futures"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
+
+[[package]]
+name = "futures-task"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+
+[[package]]
+name = "futures-util"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "fxhash"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
+dependencies = [
+ "byteorder",
+]
+
+[[package]]
+name = "generic-array"
+version = "0.14.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+dependencies = [
+ "typenum",
+ "version_check 0.9.4",
+ "zeroize",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
+dependencies = [
+ "cfg-if 1.0.0",
+ "js-sys",
+ "libc",
+ "wasi",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "ghash"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40"
+dependencies = [
+ "opaque-debug",
+ "polyval",
+]
+
+[[package]]
+name = "gimli"
+version = "0.28.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
+
+[[package]]
+name = "gl_generator"
+version = "0.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d"
+dependencies = [
+ "khronos_api",
+ "log",
+ "xml-rs",
+]
+
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
+name = "glow"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd348e04c43b32574f2de31c8bb397d96c9fcfa1371bd4ca6d8bdc464ab121b1"
+dependencies = [
+ "js-sys",
+ "slotmap",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "glutin_wgl_sys"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8098adac955faa2d31079b65dc48841251f69efd3ac25477903fc424362ead"
+dependencies = [
+ "gl_generator",
+]
+
+[[package]]
+name = "gpu-alloc"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171"
+dependencies = [
+ "bitflags 2.4.2",
+ "gpu-alloc-types",
+]
+
+[[package]]
+name = "gpu-alloc-types"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4"
+dependencies = [
+ "bitflags 2.4.2",
+]
+
+[[package]]
+name = "gpu-allocator"
+version = "0.23.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "40fe17c8a05d60c38c0a4e5a3c802f2f1ceb66b76c67d96ffb34bef0475a7fad"
+dependencies = [
+ "backtrace",
+ "log",
+ "presser",
+ "thiserror",
+ "winapi",
+ "windows",
+]
+
+[[package]]
+name = "gpu-descriptor"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c"
+dependencies = [
+ "bitflags 2.4.2",
+ "gpu-descriptor-types",
+ "hashbrown 0.14.3",
+]
+
+[[package]]
+name = "gpu-descriptor-types"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c"
+dependencies = [
+ "bitflags 2.4.2",
+]
+
+[[package]]
+name = "group"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
+dependencies = [
+ "ff",
+ "rand_core",
+ "subtle",
+]
+
+[[package]]
+name = "h2"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http 0.2.11",
+ "indexmap 2.2.3",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "h2"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "816ec7294445779408f36fe57bc5b7fc1cf59664059096c65f905c1c61f58069"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http 1.0.0",
+ "indexmap 2.2.3",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "half"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872"
+dependencies = [
+ "cfg-if 1.0.0",
+ "crunchy",
+]
+
+[[package]]
+name = "halfbrown"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5681137554ddff44396e5f149892c769d45301dd9aa19c51602a89ee214cb0ec"
+dependencies = [
+ "hashbrown 0.13.2",
+ "serde",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
+name = "hashbrown"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
+dependencies = [
+ "ahash",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+dependencies = [
+ "ahash",
+ "allocator-api2",
+]
+
+[[package]]
+name = "hashlink"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7"
+dependencies = [
+ "hashbrown 0.14.3",
+]
+
+[[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd"
+
+[[package]]
+name = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
+[[package]]
+name = "hexf-parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df"
+
+[[package]]
+name = "hkdf"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
+dependencies = [
+ "hmac",
+]
+
+[[package]]
+name = "hmac"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
+dependencies = [
+ "digest",
+]
+
+[[package]]
+name = "home"
+version = "0.5.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "hostname"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
+dependencies = [
+ "libc",
+ "match_cfg",
+ "winapi",
+]
+
+[[package]]
+name = "hstr"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17fafeca18cf0927e23ea44d7a5189c10536279dfe9094e0dfa953053fbb5377"
+dependencies = [
+ "new_debug_unreachable",
+ "once_cell",
+ "phf",
+ "rustc-hash",
+ "smallvec",
+]
+
+[[package]]
+name = "http"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http-body"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
+dependencies = [
+ "bytes",
+ "http 0.2.11",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "http-body"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
+dependencies = [
+ "bytes",
+ "http 1.0.0",
+]
+
+[[package]]
+name = "http-body-util"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840"
+dependencies = [
+ "bytes",
+ "futures-util",
+ "http 1.0.0",
+ "http-body 1.0.0",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "http_utils"
+version = "0.1.0"
+dependencies = [
+ "bytes",
+ "futures-util",
+ "http 0.2.11",
+ "hyper 0.14.28",
+ "tokio",
+ "tokio-util",
+]
+
+[[package]]
+name = "httparse"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
+
+[[package]]
+name = "httpdate"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
+
+[[package]]
+name = "humantime"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
+dependencies = [
+ "quick-error",
+]
+
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "hyper"
+version = "0.14.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2 0.3.26",
+ "http 0.2.11",
+ "http-body 0.4.6",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "socket2",
+ "tokio",
+ "tower-service",
+ "tracing",
+ "want",
+]
+
+[[package]]
+name = "hyper"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb5aa53871fc917b1a9ed87b683a5d86db645e23acb32c2e0785a353e522fb75"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "h2 0.4.4",
+ "http 1.0.0",
+ "http-body 1.0.0",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "tokio",
+ "want",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.24.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
+dependencies = [
+ "futures-util",
+ "http 0.2.11",
+ "hyper 0.14.28",
+ "rustls 0.21.11",
+ "tokio",
+ "tokio-rustls 0.24.1",
+]
+
+[[package]]
+name = "hyper-util"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdea9aac0dbe5a9240d68cfd9501e2db94222c6dc06843e06640b9e07f0fdc67"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "http 1.0.0",
+ "http-body 1.0.0",
+ "hyper 1.1.0",
+ "pin-project-lite",
+ "socket2",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "windows-core 0.52.0",
+]
+
+[[package]]
+name = "iana-time-zone-haiku"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "ident_case"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
+[[package]]
+name = "idna"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
+dependencies = [
+ "matches",
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "idna"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "idna"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "if_chain"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed"
+
+[[package]]
+name = "image"
+version = "0.24.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "034bbe799d1909622a74d1193aa50147769440040ff36cb2baa947609b0a4e23"
+dependencies = [
+ "bytemuck",
+ "byteorder",
+ "color_quant",
+ "num-traits",
+ "png",
+]
+
+[[package]]
+name = "import_map"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ecd467768fe83c2860e70e5de5297a7366a230ff53e1da2158bdac2384cd39d"
+dependencies = [
+ "indexmap 1.9.3",
+ "log",
+ "serde",
+ "serde_json",
+ "url",
+]
+
+[[package]]
+name = "indexmap"
+version = "1.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+dependencies = [
+ "autocfg",
+ "hashbrown 0.12.3",
+ "serde",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.14.3",
+ "serde",
+]
+
+[[package]]
+name = "inotify"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff"
+dependencies = [
+ "bitflags 1.3.2",
+ "inotify-sys",
+ "libc",
+]
+
+[[package]]
+name = "inotify-sys"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "inout"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
+dependencies = [
+ "block-padding",
+ "generic-array",
+]
+
+[[package]]
+name = "ipconfig"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"
+dependencies = [
+ "socket2",
+ "widestring",
+ "windows-sys 0.48.0",
+ "winreg",
+]
+
+[[package]]
+name = "ipnet"
+version = "2.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
+
+[[package]]
+name = "is-macro"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59a85abdc13717906baccb5a1e435556ce0df215f242892f721dff62bf25288f"
+dependencies = [
+ "Inflector",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "is-terminal"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
+dependencies = [
+ "hermit-abi 0.3.6",
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "itertools"
+version = "0.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itertools"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itertools"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+
+[[package]]
+name = "js-sys"
+version = "0.3.68"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "jsonc-parser"
+version = "0.23.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7725c320caac8c21d8228c1d055af27a995d371f78cc763073d3e068323641b5"
+dependencies = [
+ "serde_json",
+]
+
+[[package]]
+name = "k256"
+version = "0.13.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b"
+dependencies = [
+ "cfg-if 1.0.0",
+ "ecdsa",
+ "elliptic-curve",
+ "once_cell",
+ "sha2",
+ "signature",
+]
+
+[[package]]
+name = "khronos-egl"
+version = "6.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76"
+dependencies = [
+ "libc",
+ "libloading 0.8.1",
+ "pkg-config",
+]
+
+[[package]]
+name = "khronos_api"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"
+
+[[package]]
+name = "kqueue"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c"
+dependencies = [
+ "kqueue-sys",
+ "libc",
+]
+
+[[package]]
+name = "kqueue-sys"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b"
+dependencies = [
+ "bitflags 1.3.2",
+ "libc",
+]
+
+[[package]]
+name = "lapack"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a7f0050af10913bc5e4f6091df38870cb5d4e45094d3dd551c1aff9d1d59b26"
+dependencies = [
+ "lapack-sys",
+ "libc",
+ "num-complex",
+]
+
+[[package]]
+name = "lapack-sys"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1d3a8a9f07310243de6c6226f039f14bce8d2f4c96b5d30ddbcfa31eb4e94ad"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "lax"
+version = "0.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccd3ec1cacffe7a44aee66f9e85d87e3ac69b472b546449884bd1fc1ca8ab359"
+dependencies = [
+ "cauchy",
+ "lapack",
+ "num-traits",
+ "thiserror",
+]
+
+[[package]]
+name = "lazy-regex"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d12be4595afdf58bd19e4a9f4e24187da2a66700786ff660a418e9059937a4c"
+dependencies = [
+ "lazy-regex-proc_macros",
+ "once_cell",
+ "regex",
+]
+
+[[package]]
+name = "lazy-regex-proc_macros"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44bcd58e6c97a7fcbaffcdc95728b393b8d98933bfadad49ed4097845b57ef0b"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "regex",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+dependencies = [
+ "spin 0.5.2",
+]
+
+[[package]]
+name = "lexical-core"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46"
+dependencies = [
+ "lexical-parse-float",
+ "lexical-parse-integer",
+ "lexical-util",
+ "lexical-write-float",
+ "lexical-write-integer",
+]
+
+[[package]]
+name = "lexical-parse-float"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f"
+dependencies = [
+ "lexical-parse-integer",
+ "lexical-util",
+ "static_assertions",
+]
+
+[[package]]
+name = "lexical-parse-integer"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9"
+dependencies = [
+ "lexical-util",
+ "static_assertions",
+]
+
+[[package]]
+name = "lexical-util"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc"
+dependencies = [
+ "static_assertions",
+]
+
+[[package]]
+name = "lexical-write-float"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862"
+dependencies = [
+ "lexical-util",
+ "lexical-write-integer",
+ "static_assertions",
+]
+
+[[package]]
+name = "lexical-write-integer"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446"
+dependencies = [
+ "lexical-util",
+ "static_assertions",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.153"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+
+[[package]]
+name = "libloading"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753"
+dependencies = [
+ "cc",
+ "winapi",
+]
+
+[[package]]
+name = "libloading"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+dependencies = [
+ "cfg-if 1.0.0",
+ "winapi",
+]
+
+[[package]]
+name = "libloading"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
+dependencies = [
+ "cfg-if 1.0.0",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "libm"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
+
+[[package]]
+name = "libsqlite3-sys"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "afc22eff61b133b115c6e8c74e818c628d6d5e7a502afea6f64dee076dd94326"
+dependencies = [
+ "cc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "libz-sys"
+version = "1.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6"
+dependencies = [
+ "cc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "linked-hash-map"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+
+[[package]]
+name = "lock_api"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+
+[[package]]
+name = "lru-cache"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c"
+dependencies = [
+ "linked-hash-map",
+]
+
+[[package]]
+name = "macro_rules_attribute"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a82271f7bc033d84bbca59a3ce3e4159938cb08a9c3aebbe54d215131518a13"
+dependencies = [
+ "macro_rules_attribute-proc_macro",
+ "paste",
+]
+
+[[package]]
+name = "macro_rules_attribute-proc_macro"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8dd856d451cc0da70e2ef2ce95a18e39a93b7558bedf10201ad28503f918568"
+
+[[package]]
+name = "malloc_buf"
+version = "0.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "match_cfg"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
+
+[[package]]
+name = "matchers"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
+dependencies = [
+ "regex-automata 0.1.10",
+]
+
+[[package]]
+name = "matches"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
+
+[[package]]
+name = "matrixmultiply"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2"
+dependencies = [
+ "autocfg",
+ "rawpointer",
+]
+
+[[package]]
+name = "md-5"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
+dependencies = [
+ "cfg-if 1.0.0",
+ "digest",
+]
+
+[[package]]
+name = "md4"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7da5ac363534dce5fabf69949225e174fbf111a498bf0ff794c8ea1fba9f3dda"
+dependencies = [
+ "digest",
+]
+
+[[package]]
+name = "memchr"
+version = "2.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+
+[[package]]
+name = "memmem"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a64a92489e2744ce060c349162be1c5f33c6969234104dbd99ddb5feb08b8c15"
+
+[[package]]
+name = "memoffset"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "metal"
+version = "0.27.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25"
+dependencies = [
+ "bitflags 2.4.2",
+ "block",
+ "core-graphics-types",
+ "foreign-types",
+ "log",
+ "objc",
+ "paste",
+]
+
+[[package]]
+name = "mime"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+
+[[package]]
+name = "mime_guess"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
+dependencies = [
+ "mime",
+ "unicase",
+]
+
+[[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
+name = "miniz_oxide"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
+dependencies = [
+ "adler",
+ "simd-adler32",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
+dependencies = [
+ "libc",
+ "log",
+ "wasi",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "monch"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b52c1b33ff98142aecea13138bd399b68aa7ab5d9546c300988c345004001eea"
+
+[[package]]
+name = "monostate"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "878c2a1f1c70e5724fa28f101ca787b6a7e8ad5c5e4ae4ca3b0fa4a419fa9075"
+dependencies = [
+ "monostate-impl",
+ "serde",
+]
+
+[[package]]
+name = "monostate-impl"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f686d68a09079e63b1d2c64aa305095887ce50565f00a922ebfaeeee0d9ba6ce"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "naga"
+version = "0.14.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae585df4b6514cf8842ac0f1ab4992edc975892704835b549cf818dc0191249e"
+dependencies = [
+ "bit-set",
+ "bitflags 2.4.2",
+ "codespan-reporting",
+ "hexf-parse",
+ "indexmap 2.2.3",
+ "log",
+ "num-traits",
+ "rustc-hash",
+ "serde",
+ "spirv",
+ "termcolor",
+ "thiserror",
+ "unicode-xid 0.2.4",
+]
+
+[[package]]
+name = "nanorand"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "ndarray"
+version = "0.15.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32"
+dependencies = [
+ "approx",
+ "cblas-sys",
+ "libc",
+ "matrixmultiply",
+ "num-complex",
+ "num-integer",
+ "num-traits",
+ "rawpointer",
+]
+
+[[package]]
+name = "ndarray-linalg"
+version = "0.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f87ff36428f228c6056204d0f5cb8c5165f0db0a065429faace3edbc2718f1f"
+dependencies = [
+ "cauchy",
+ "lax",
+ "ndarray",
+ "num-complex",
+ "num-traits",
+ "rand",
+ "thiserror",
+]
+
+[[package]]
+name = "new_debug_unreachable"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
+
+[[package]]
+name = "nix"
+version = "0.26.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a"
+dependencies = [
+ "bitflags 1.3.2",
+ "cfg-if 1.0.0",
+ "libc",
+ "memoffset 0.7.1",
+ "pin-utils",
+ "static_assertions",
+]
+
+[[package]]
+name = "nom"
+version = "4.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6"
+dependencies = [
+ "memchr",
+ "version_check 0.1.5",
+]
+
+[[package]]
+name = "nom"
+version = "7.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+dependencies = [
+ "memchr",
+ "minimal-lexical",
+]
+
+[[package]]
+name = "notify"
+version = "6.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
+dependencies = [
+ "bitflags 2.4.2",
+ "filetime",
+ "inotify",
+ "kqueue",
+ "libc",
+ "log",
+ "mio",
+ "walkdir",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "nu-ansi-term"
+version = "0.46.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
+dependencies = [
+ "overload",
+ "winapi",
+]
+
+[[package]]
+name = "num-bigint"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+ "rand",
+ "serde",
+]
+
+[[package]]
+name = "num-bigint-dig"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151"
+dependencies = [
+ "byteorder",
+ "lazy_static",
+ "libm",
+ "num-integer",
+ "num-iter",
+ "num-traits",
+ "rand",
+ "serde",
+ "smallvec",
+ "zeroize",
+]
+
+[[package]]
+name = "num-complex"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6"
+dependencies = [
+ "num-traits",
+ "rand",
+ "serde",
+]
+
+[[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
+name = "num-integer"
+version = "0.1.46"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "num-iter"
+version = "0.1.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+dependencies = [
+ "autocfg",
+ "libm",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+dependencies = [
+ "hermit-abi 0.3.6",
+ "libc",
+]
+
+[[package]]
+name = "objc"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
+dependencies = [
+ "malloc_buf",
+ "objc_exception",
+]
+
+[[package]]
+name = "objc_exception"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "object"
+version = "0.32.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "oid-registry"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff"
+dependencies = [
+ "asn1-rs",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "onig"
+version = "6.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f"
+dependencies = [
+ "bitflags 1.3.2",
+ "libc",
+ "once_cell",
+ "onig_sys",
+]
+
+[[package]]
+name = "onig_sys"
+version = "69.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7"
+dependencies = [
+ "cc",
+ "pkg-config",
+]
+
+[[package]]
+name = "opaque-debug"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "ort"
+version = "2.0.0-rc.0"
+source = "git+https://github.com/pykeio/ort#2abc210f3958c5b94528cc71c6c8781813a2cc2f"
+dependencies = [
+ "half",
+ "libloading 0.8.1",
+ "ndarray",
+ "ort-sys",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "ort-sys"
+version = "2.0.0-rc.0"
+source = "git+https://github.com/pykeio/ort#2abc210f3958c5b94528cc71c6c8781813a2cc2f"
+
+[[package]]
+name = "outref"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4030760ffd992bef45b0ae3f10ce1aba99e33464c90d14dd7c039884963ddc7a"
+
+[[package]]
+name = "overload"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
+[[package]]
+name = "p224"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30c06436d66652bc2f01ade021592c80a2aad401570a18aa18b82e440d2b9aa1"
+dependencies = [
+ "ecdsa",
+ "elliptic-curve",
+ "primeorder",
+ "sha2",
+]
+
+[[package]]
+name = "p256"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b"
+dependencies = [
+ "ecdsa",
+ "elliptic-curve",
+ "primeorder",
+ "sha2",
+]
+
+[[package]]
+name = "p384"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209"
+dependencies = [
+ "ecdsa",
+ "elliptic-curve",
+ "primeorder",
+ "sha2",
+]
+
+[[package]]
+name = "p521"
+version = "0.13.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fc9e2161f1f215afdfce23677034ae137bbd45016a880c2eb3ba8eb95f085b2"
+dependencies = [
+ "base16ct",
+ "ecdsa",
+ "elliptic-curve",
+ "primeorder",
+ "rand_core",
+ "sha2",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "password-hash"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166"
+dependencies = [
+ "base64ct",
+ "rand_core",
+ "subtle",
+]
+
+[[package]]
+name = "paste"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
+
+[[package]]
+name = "path-clean"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ecba01bf2678719532c5e3059e0b5f0811273d94b397088b82e3bd0a78c78fdd"
+
+[[package]]
+name = "pathdiff"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
+
+[[package]]
+name = "pbkdf2"
+version = "0.12.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2"
+dependencies = [
+ "digest",
+ "hmac",
+]
+
+[[package]]
+name = "peeking_take_while"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
+
+[[package]]
+name = "pem-rfc7468"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412"
+dependencies = [
+ "base64ct",
+]
+
+[[package]]
+name = "percent-encoding"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+
+[[package]]
+name = "petgraph"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
+dependencies = [
+ "fixedbitset",
+ "indexmap 2.2.3",
+]
+
+[[package]]
+name = "phf"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
+dependencies = [
+ "phf_macros",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
+dependencies = [
+ "phf_shared",
+ "rand",
+]
+
+[[package]]
+name = "phf_macros"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "pin-project"
+version = "1.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "1.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkcs1"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f"
+dependencies = [
+ "der",
+ "pkcs8",
+ "spki",
+]
+
+[[package]]
+name = "pkcs8"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
+dependencies = [
+ "der",
+ "spki",
+]
+
+[[package]]
+name = "pkg-config"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+
+[[package]]
+name = "platforms"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c"
+
+[[package]]
+name = "pmutil"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52a40bc70c2c58040d2d8b167ba9a5ff59fc9dab7ad44771cfde3dcfde7a09c6"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "png"
+version = "0.17.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f6c3c3e617595665b8ea2ff95a86066be38fb121ff920a9c0eb282abcd1da5a"
+dependencies = [
+ "bitflags 1.3.2",
+ "crc32fast",
+ "fdeflate",
+ "flate2",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "polyval"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb"
+dependencies = [
+ "cfg-if 1.0.0",
+ "cpufeatures",
+ "opaque-debug",
+ "universal-hash",
+]
+
+[[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "presser"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa"
+
+[[package]]
+name = "primeorder"
+version = "0.13.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6"
+dependencies = [
+ "elliptic-curve",
+]
+
+[[package]]
+name = "proc-macro-rules"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07c277e4e643ef00c1233393c673f655e3672cf7eb3ba08a00bdd0ea59139b5f"
+dependencies = [
+ "proc-macro-rules-macros",
+ "proc-macro2 1.0.78",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "proc-macro-rules-macros"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "207fffb0fe655d1d47f6af98cc2793405e85929bdbc420d685554ff07be27ac7"
+dependencies = [
+ "once_cell",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "0.4.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
+dependencies = [
+ "unicode-xid 0.1.0",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.78"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "profiling"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f0f7f43585c34e4fdd7497d746bc32e14458cf11c69341cc0587b1d825dde42"
+
+[[package]]
+name = "psm"
+version = "0.1.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "quick-error"
+version = "1.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+
+[[package]]
+name = "quote"
+version = "0.6.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
+dependencies = [
+ "proc-macro2 0.4.30",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+dependencies = [
+ "proc-macro2 1.0.78",
+]
+
+[[package]]
+name = "radix_fmt"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce082a9940a7ace2ad4a8b7d0b1eac6aa378895f18be598230c5f2284ac05426"
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "range-alloc"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab"
+
+[[package]]
+name = "raw-window-handle"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
+
+[[package]]
+name = "rawpointer"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
+
+[[package]]
+name = "rayon"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-cond"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "059f538b55efd2309c9794130bc149c6a553db90e9d99c2030785c82f0bd7df9"
+dependencies = [
+ "either",
+ "itertools 0.11.0",
+ "rayon",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "ref-cast"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4846d4c50d1721b1a3bef8af76924eef20d5e723647333798c1b519b3a9473f"
+dependencies = [
+ "ref-cast-impl",
+]
+
+[[package]]
+name = "ref-cast-impl"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fddb4f8d99b0a2ebafc65a87a69a7b9875e4b1ae1f00db265d300ef7f28bccc"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "regex"
+version = "1.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata 0.4.5",
+ "regex-syntax 0.8.2",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+dependencies = [
+ "regex-syntax 0.6.29",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax 0.8.2",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+
+[[package]]
+name = "relative-path"
+version = "1.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e898588f33fdd5b9420719948f9f2a32c922a246964576f71ba7f24f80610fbc"
+
+[[package]]
+name = "reqwest"
+version = "0.11.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1"
+dependencies = [
+ "async-compression",
+ "base64 0.21.7",
+ "bytes",
+ "encoding_rs",
+ "futures-core",
+ "futures-util",
+ "h2 0.3.26",
+ "http 0.2.11",
+ "http-body 0.4.6",
+ "hyper 0.14.28",
+ "hyper-rustls",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "mime_guess",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls 0.21.11",
+ "rustls-pemfile 1.0.4",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "tokio",
+ "tokio-rustls 0.24.1",
+ "tokio-socks",
+ "tokio-util",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-streams",
+ "web-sys",
+ "webpki-roots",
+ "winreg",
+]
+
+[[package]]
+name = "resolv-conf"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00"
+dependencies = [
+ "hostname",
+ "quick-error",
+]
+
+[[package]]
+name = "rfc6979"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2"
+dependencies = [
+ "hmac",
+ "subtle",
+]
+
+[[package]]
+name = "ring"
+version = "0.17.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
+dependencies = [
+ "cc",
+ "getrandom",
+ "libc",
+ "spin 0.9.8",
+ "untrusted",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "ripemd"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f"
+dependencies = [
+ "digest",
+]
+
+[[package]]
+name = "ron"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94"
+dependencies = [
+ "base64 0.21.7",
+ "bitflags 2.4.2",
+ "serde",
+ "serde_derive",
+]
+
+[[package]]
+name = "rsa"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc"
+dependencies = [
+ "const-oid",
+ "digest",
+ "num-bigint-dig",
+ "num-integer",
+ "num-traits",
+ "pkcs1",
+ "pkcs8",
+ "rand_core",
+ "signature",
+ "spki",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "rusqlite"
+version = "0.29.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "549b9d036d571d42e6e85d1c1425e2ac83491075078ca9a15be021c56b1641f2"
+dependencies = [
+ "bitflags 2.4.2",
+ "fallible-iterator",
+ "fallible-streaming-iterator",
+ "hashlink",
+ "libsqlite3-sys",
+ "smallvec",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+[[package]]
+name = "rustc_version"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
+dependencies = [
+ "semver 0.9.0",
+]
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver 1.0.21",
+]
+
+[[package]]
+name = "rusticata-macros"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632"
+dependencies = [
+ "nom 7.1.3",
+]
+
+[[package]]
+name = "rustix"
+version = "0.38.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
+dependencies = [
+ "bitflags 2.4.2",
+ "errno 0.3.8",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rustls"
+version = "0.21.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7fecbfb7b1444f477b345853b1fce097a2c6fb637b2bfb87e6bc5db0f043fae4"
+dependencies = [
+ "log",
+ "ring",
+ "rustls-webpki 0.101.7",
+ "sct",
+]
+
+[[package]]
+name = "rustls"
+version = "0.22.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41"
+dependencies = [
+ "log",
+ "ring",
+ "rustls-pki-types",
+ "rustls-webpki 0.102.2",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "rustls-native-certs"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00"
+dependencies = [
+ "openssl-probe",
+ "rustls-pemfile 1.0.4",
+ "schannel",
+ "security-framework",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
+dependencies = [
+ "base64 0.21.7",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c333bb734fcdedcea57de1602543590f545f127dc8b533324318fd492c5c70b"
+dependencies = [
+ "base64 0.21.7",
+ "rustls-pki-types",
+]
+
+[[package]]
+name = "rustls-pki-types"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ede67b28608b4c60685c7d54122d4400d90f62b40caee7700e700380a390fa8"
+
+[[package]]
+name = "rustls-tokio-stream"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ded7a36e8ac05b8ada77a84c5ceec95361942ee9dedb60a82f93f788a791aae8"
+dependencies = [
+ "futures",
+ "rustls 0.21.11",
+ "socket2",
+ "tokio",
+]
+
+[[package]]
+name = "rustls-webpki"
+version = "0.101.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
+name = "rustls-webpki"
+version = "0.102.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610"
+dependencies = [
+ "ring",
+ "rustls-pki-types",
+ "untrusted",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+
+[[package]]
+name = "ryu"
+version = "1.0.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
+
+[[package]]
+name = "ryu-js"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4950d85bc52415f8432144c97c4791bd0c4f7954de32a7270ee9cccd3c22b12b"
+
+[[package]]
+name = "salsa20"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213"
+dependencies = [
+ "cipher",
+]
+
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "sb_ai"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "deno_core",
+ "log",
+ "ndarray",
+ "ndarray-linalg",
+ "once_cell",
+ "ort",
+ "rand",
+ "serde",
+ "tokenizers",
+ "tokio",
+]
+
+[[package]]
+name = "sb_core"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "base64 0.21.7",
+ "bytes",
+ "cache_control",
+ "chrono",
+ "data-url",
+ "deno_ast",
+ "deno_cache_dir",
+ "deno_core",
+ "deno_crypto",
+ "deno_fetch",
+ "deno_fs",
+ "deno_graph",
+ "deno_http",
+ "deno_net",
+ "deno_tls",
+ "deno_web",
+ "deno_websocket",
+ "deno_webstorage",
+ "encoding_rs",
+ "enum-as-inner 0.6.0",
+ "faster-hex",
+ "fs3",
+ "futures",
+ "http 0.2.11",
+ "httparse",
+ "hyper 0.14.28",
+ "import_map",
+ "indexmap 2.2.3",
+ "libc",
+ "log",
+ "memmem",
+ "once_cell",
+ "percent-encoding",
+ "ring",
+ "sb_node",
+ "scopeguard",
+ "serde",
+ "thiserror",
+ "tokio",
+ "tokio-util",
+ "twox-hash",
+]
+
+[[package]]
+name = "sb_env"
+version = "0.1.0"
+dependencies = [
+ "deno_core",
+ "sb_core",
+ "sb_node",
+]
+
+[[package]]
+name = "sb_fs"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "deno_ast",
+ "deno_core",
+ "deno_fs",
+ "deno_io",
+ "deno_npm",
+ "deno_semver",
+ "eszip",
+ "import_map",
+ "log",
+ "once_cell",
+ "sb_core",
+ "sb_node",
+ "sb_npm",
+ "serde",
+ "thiserror",
+ "tokio",
+]
+
+[[package]]
+name = "sb_graph"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "deno_ast",
+ "deno_config",
+ "deno_core",
+ "deno_fs",
+ "deno_lockfile",
+ "deno_npm",
+ "deno_semver",
+ "deno_web",
+ "eszip",
+ "glob",
+ "import_map",
+ "log",
+ "once_cell",
+ "sb_core",
+ "sb_fs",
+ "sb_node",
+ "sb_npm",
+ "serde",
+ "tokio",
+ "urlencoding",
+]
+
+[[package]]
+name = "sb_module_loader"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "base64 0.21.7",
+ "deno_ast",
+ "deno_core",
+ "deno_fs",
+ "deno_npm",
+ "deno_semver",
+ "deno_tls",
+ "eszip",
+ "import_map",
+ "log",
+ "monch",
+ "once_cell",
+ "sb_core",
+ "sb_fs",
+ "sb_graph",
+ "sb_node",
+ "sb_npm",
+ "serde",
+ "tokio",
+]
+
+[[package]]
+name = "sb_node"
+version = "0.1.0"
+dependencies = [
+ "aead-gcm-stream",
+ "aes",
+ "brotli",
+ "bytes",
+ "cbc",
+ "const-oid",
+ "data-encoding",
+ "deno_core",
+ "deno_fetch",
+ "deno_fs",
+ "deno_media_type",
+ "deno_net",
+ "deno_whoami",
+ "digest",
+ "dsa",
+ "ecb",
+ "elliptic-curve",
+ "errno 0.2.8",
+ "h2 0.3.26",
+ "hex",
+ "hkdf",
+ "http 0.2.11",
+ "idna 0.3.0",
+ "indexmap 2.2.3",
+ "k256",
+ "lazy-regex",
+ "libc",
+ "libz-sys",
+ "md-5",
+ "md4",
+ "nix",
+ "num-bigint",
+ "num-bigint-dig",
+ "num-integer",
+ "num-traits",
+ "once_cell",
+ "p224",
+ "p256",
+ "p384",
+ "path-clean",
+ "pbkdf2",
+ "pin-project-lite",
+ "rand",
+ "regex",
+ "reqwest",
+ "ring",
+ "ripemd",
+ "rsa",
+ "scrypt",
+ "serde",
+ "sha-1",
+ "sha2",
+ "signature",
+ "simd-json",
+ "tokio",
+ "typenum",
+ "url",
+ "winapi",
+ "windows-sys 0.48.0",
+ "x25519-dalek",
+ "x509-parser",
+]
+
+[[package]]
+name = "sb_npm"
+version = "0.1.0"
+dependencies = [
+ "async-trait",
+ "base32",
+ "base64 0.21.7",
+ "bincode",
+ "deno_ast",
+ "deno_core",
+ "deno_fs",
+ "deno_graph",
+ "deno_lockfile",
+ "deno_npm",
+ "deno_semver",
+ "flate2",
+ "hex",
+ "indexmap 2.2.3",
+ "log",
+ "once_cell",
+ "percent-encoding",
+ "ring",
+ "sb_core",
+ "sb_node",
+ "serde",
+ "tar",
+ "thiserror",
+]
+
+[[package]]
+name = "sb_os"
+version = "0.1.0"
+dependencies = [
+ "deno_core",
+ "libc",
+ "sb_core",
+ "serde",
+]
+
+[[package]]
+name = "sb_workers"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "bytes",
+ "deno_config",
+ "deno_core",
+ "deno_http",
+ "enum-as-inner 0.6.0",
+ "event_worker",
+ "futures-util",
+ "http_utils",
+ "hyper 0.14.28",
+ "log",
+ "sb_core",
+ "sb_graph",
+ "scopeguard",
+ "serde",
+ "thiserror",
+ "tokio",
+ "tokio-util",
+ "uuid",
+]
+
+[[package]]
+name = "schannel"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "scoped-tls"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "scrypt"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f"
+dependencies = [
+ "password-hash",
+ "pbkdf2",
+ "salsa20",
+ "sha2",
+]
+
+[[package]]
+name = "sct"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
+name = "sec1"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc"
+dependencies = [
+ "base16ct",
+ "der",
+ "generic-array",
+ "pkcs8",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "security-framework"
+version = "2.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "core-foundation-sys",
+ "libc",
+ "security-framework-sys",
+]
+
+[[package]]
+name = "security-framework-sys"
+version = "2.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "semver"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
+dependencies = [
+ "semver-parser",
+]
+
+[[package]]
+name = "semver"
+version = "1.0.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
+
+[[package]]
+name = "semver-parser"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+
+[[package]]
+name = "serde"
+version = "1.0.196"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_bytes"
+version = "0.11.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.196"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.113"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79"
+dependencies = [
+ "indexmap 2.2.3",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_urlencoded"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+dependencies = [
+ "form_urlencoded",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_v8"
+version = "0.165.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88862d513bcbc04a7f93b0f454dffd0b01a5c0d8e1964c7532ec55f52b9a6351"
+dependencies = [
+ "bytes",
+ "derive_more",
+ "num-bigint",
+ "serde",
+ "smallvec",
+ "thiserror",
+ "v8",
+]
+
+[[package]]
+name = "serial_test"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "953ad9342b3aaca7cb43c45c097dd008d4907070394bd0751a0aa8817e5a018d"
+dependencies = [
+ "dashmap",
+ "futures",
+ "lazy_static",
+ "log",
+ "parking_lot",
+ "serial_test_derive",
+]
+
+[[package]]
+name = "serial_test_derive"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "sha-1"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f"
+dependencies = [
+ "cfg-if 1.0.0",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sha1"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
+dependencies = [
+ "cfg-if 1.0.0",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sha2"
+version = "0.10.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+dependencies = [
+ "cfg-if 1.0.0",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sharded-slab"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "shlex"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
+
+[[package]]
+name = "signal-hook"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
+dependencies = [
+ "libc",
+ "signal-hook-registry",
+]
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "signal-hook-tokio"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "213241f76fb1e37e27de3b6aa1b068a2c333233b59cca6634f634b80a27ecf1e"
+dependencies = [
+ "futures-core",
+ "libc",
+ "signal-hook",
+ "tokio",
+]
+
+[[package]]
+name = "signature"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
+dependencies = [
+ "digest",
+ "rand_core",
+]
+
+[[package]]
+name = "simd-adler32"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
+
+[[package]]
+name = "simd-json"
+version = "0.13.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2faf8f101b9bc484337a6a6b0409cf76c139f2fb70a9e3aee6b6774be7bfbf76"
+dependencies = [
+ "getrandom",
+ "halfbrown",
+ "lexical-core",
+ "ref-cast",
+ "serde",
+ "serde_json",
+ "simdutf8",
+ "value-trait",
+]
+
+[[package]]
+name = "simdutf8"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a"
+
+[[package]]
+name = "siphasher"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "slotmap"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a"
+dependencies = [
+ "version_check 0.9.4",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+
+[[package]]
+name = "smartstring"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29"
+dependencies = [
+ "autocfg",
+ "static_assertions",
+ "version_check 0.9.4",
+]
+
+[[package]]
+name = "socket2"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+dependencies = [
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "sourcemap"
+version = "6.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4cbf65ca7dc576cf50e21f8d0712d96d4fcfd797389744b7b222a85cdf5bd90"
+dependencies = [
+ "data-encoding",
+ "debugid",
+ "if_chain",
+ "rustc_version 0.2.3",
+ "serde",
+ "serde_json",
+ "unicode-id",
+ "url",
+]
+
+[[package]]
+name = "sourcemap"
+version = "7.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10da010a590ed2fa9ca8467b00ce7e9c5a8017742c0c09c45450efc172208c4b"
+dependencies = [
+ "data-encoding",
+ "debugid",
+ "if_chain",
+ "rustc_version 0.2.3",
+ "serde",
+ "serde_json",
+ "unicode-id",
+ "url",
+]
+
+[[package]]
+name = "spin"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+
+[[package]]
+name = "spin"
+version = "0.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+dependencies = [
+ "lock_api",
+]
+
+[[package]]
+name = "spirv"
+version = "0.2.0+1.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "246bfa38fe3db3f1dfc8ca5a2cdeb7348c78be2112740cc0ec8ef18b6d94f830"
+dependencies = [
+ "bitflags 1.3.2",
+ "num-traits",
+]
+
+[[package]]
+name = "spki"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
+dependencies = [
+ "base64ct",
+ "der",
+]
+
+[[package]]
+name = "spm_precompiled"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5851699c4033c63636f7ea4cf7b7c1f1bf06d0cc03cfb42e711de5a5c46cf326"
+dependencies = [
+ "base64 0.13.1",
+ "nom 7.1.3",
+ "serde",
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "stacker"
+version = "0.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce"
+dependencies = [
+ "cc",
+ "cfg-if 1.0.0",
+ "libc",
+ "psm",
+ "winapi",
+]
+
+[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
+name = "string_enum"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b650ea2087d32854a0f20b837fc56ec987a1cb4f758c9757e1171ee9812da63"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "swc_macros_common",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "strsim"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "strsim"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
+
+[[package]]
+name = "strum"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
+dependencies = [
+ "strum_macros",
+]
+
+[[package]]
+name = "strum_macros"
+version = "0.25.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
+dependencies = [
+ "heck",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "rustversion",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "subtle"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
+
+[[package]]
+name = "swc_atoms"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d538eaaa6f085161d088a04cf0a3a5a52c5a7f2b3bd9b83f73f058b0ed357c0"
+dependencies = [
+ "hstr",
+ "once_cell",
+ "rustc-hash",
+ "serde",
+]
+
+[[package]]
+name = "swc_bundler"
+version = "0.223.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d7530df85b1a56f6a879ca102dc59718db4bcd6bfff55fb8bb379fbeab6c88c"
+dependencies = [
+ "anyhow",
+ "crc",
+ "indexmap 2.2.3",
+ "is-macro",
+ "once_cell",
+ "parking_lot",
+ "petgraph",
+ "radix_fmt",
+ "relative-path",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_ecma_codegen",
+ "swc_ecma_loader",
+ "swc_ecma_parser",
+ "swc_ecma_transforms_base",
+ "swc_ecma_transforms_optimization",
+ "swc_ecma_utils",
+ "swc_ecma_visit",
+ "swc_fast_graph",
+ "swc_graph_analyzer",
+ "tracing",
+]
+
+[[package]]
+name = "swc_common"
+version = "0.33.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b3ae36feceded27f0178dc9dabb49399830847ffb7f866af01798844de8f973"
+dependencies = [
+ "ast_node",
+ "better_scoped_tls",
+ "cfg-if 1.0.0",
+ "either",
+ "from_variant",
+ "new_debug_unreachable",
+ "num-bigint",
+ "once_cell",
+ "rustc-hash",
+ "serde",
+ "siphasher",
+ "sourcemap 6.4.1",
+ "swc_atoms",
+ "swc_eq_ignore_macros",
+ "swc_visit",
+ "tracing",
+ "unicode-width",
+ "url",
+]
+
+[[package]]
+name = "swc_config"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "112884e66b60e614c0f416138b91b8b82b7fea6ed0ecc5e26bad4726c57a6c99"
+dependencies = [
+ "indexmap 2.2.3",
+ "serde",
+ "serde_json",
+ "swc_config_macro",
+]
+
+[[package]]
+name = "swc_config_macro"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b2574f75082322a27d990116cd2a24de52945fc94172b24ca0b3e9e2a6ceb6b"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "swc_macros_common",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "swc_ecma_ast"
+version = "0.110.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79401a45da704f4fb2552c5bf86ee2198e8636b121cb81f8036848a300edd53b"
+dependencies = [
+ "bitflags 2.4.2",
+ "is-macro",
+ "num-bigint",
+ "phf",
+ "scoped-tls",
+ "serde",
+ "string_enum",
+ "swc_atoms",
+ "swc_common",
+ "unicode-id",
+]
+
+[[package]]
+name = "swc_ecma_codegen"
+version = "0.146.54"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99b61ca275e3663238b71c4b5da8e6fb745bde9989ef37d94984dfc81fc6d009"
+dependencies = [
+ "memchr",
+ "num-bigint",
+ "once_cell",
+ "rustc-hash",
+ "serde",
+ "sourcemap 6.4.1",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_ecma_codegen_macros",
+ "tracing",
+]
+
+[[package]]
+name = "swc_ecma_codegen_macros"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "394b8239424b339a12012ceb18726ed0244fce6bf6345053cb9320b2791dcaa5"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "swc_macros_common",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "swc_ecma_dep_graph"
+version = "0.113.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59fc6ac1a84afe910182dcda33d70a16545e6058529d51afb63bd6be8764370f"
+dependencies = [
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_ecma_visit",
+]
+
+[[package]]
+name = "swc_ecma_loader"
+version = "0.45.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c5713ab3429530c10bdf167170ebbde75b046c8003558459e4de5aaec62ce0f1"
+dependencies = [
+ "anyhow",
+ "pathdiff",
+ "serde",
+ "swc_common",
+ "tracing",
+]
+
+[[package]]
+name = "swc_ecma_parser"
+version = "0.141.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4d17401dd95048a6a62b777d533c0999dabdd531ef9d667e22f8ae2a2a0d294"
+dependencies = [
+ "either",
+ "new_debug_unreachable",
+ "num-bigint",
+ "num-traits",
+ "phf",
+ "serde",
+ "smallvec",
+ "smartstring",
+ "stacker",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "tracing",
+ "typed-arena",
+]
+
+[[package]]
+name = "swc_ecma_transforms_base"
+version = "0.135.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d4ab26ec124b03e47f54d4daade8e9a9dcd66d3a4ca3cd47045f138d267a60e"
+dependencies = [
+ "better_scoped_tls",
+ "bitflags 2.4.2",
+ "indexmap 2.2.3",
+ "once_cell",
+ "phf",
+ "rustc-hash",
+ "serde",
+ "smallvec",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_ecma_parser",
+ "swc_ecma_utils",
+ "swc_ecma_visit",
+ "tracing",
+]
+
+[[package]]
+name = "swc_ecma_transforms_classes"
+version = "0.124.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fe4376c024fa04394cafb8faecafb4623722b92dbbe46532258cc0a6b569d9c"
+dependencies = [
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_ecma_transforms_base",
+ "swc_ecma_utils",
+ "swc_ecma_visit",
+]
+
+[[package]]
+name = "swc_ecma_transforms_macros"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17e309b88f337da54ef7fe4c5b99c2c522927071f797ee6c9fb8b6bf2d100481"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "swc_macros_common",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "swc_ecma_transforms_optimization"
+version = "0.196.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fec185cf4d18e90b7c8b18b0d1f04a5707e6f4c7b57c1bfd5086392cd07b75a9"
+dependencies = [
+ "dashmap",
+ "indexmap 2.2.3",
+ "once_cell",
+ "petgraph",
+ "rustc-hash",
+ "serde_json",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_ecma_parser",
+ "swc_ecma_transforms_base",
+ "swc_ecma_transforms_macros",
+ "swc_ecma_utils",
+ "swc_ecma_visit",
+ "swc_fast_graph",
+ "tracing",
+]
+
+[[package]]
+name = "swc_ecma_transforms_proposal"
+version = "0.169.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed89d6ff74f60de490fb56e1cc505b057905e36c13d405d7d61dd5c9f6ee8fc9"
+dependencies = [
+ "either",
+ "rustc-hash",
+ "serde",
+ "smallvec",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_ecma_transforms_base",
+ "swc_ecma_transforms_classes",
+ "swc_ecma_transforms_macros",
+ "swc_ecma_utils",
+ "swc_ecma_visit",
+]
+
+[[package]]
+name = "swc_ecma_transforms_react"
+version = "0.181.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e31a2f879fd21d18080b6c42e633e0ae8c6f3d54b83c1de876767d82b458c999"
+dependencies = [
+ "base64 0.21.7",
+ "dashmap",
+ "indexmap 2.2.3",
+ "once_cell",
+ "serde",
+ "sha-1",
+ "string_enum",
+ "swc_atoms",
+ "swc_common",
+ "swc_config",
+ "swc_ecma_ast",
+ "swc_ecma_parser",
+ "swc_ecma_transforms_base",
+ "swc_ecma_transforms_macros",
+ "swc_ecma_utils",
+ "swc_ecma_visit",
+]
+
+[[package]]
+name = "swc_ecma_transforms_typescript"
+version = "0.186.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e4263372cc7cd1a3b4570ccf7438f3c1e1575f134fd05cdf074edb322480a5b"
+dependencies = [
+ "ryu-js",
+ "serde",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_ecma_transforms_base",
+ "swc_ecma_transforms_react",
+ "swc_ecma_utils",
+ "swc_ecma_visit",
+]
+
+[[package]]
+name = "swc_ecma_utils"
+version = "0.125.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7cead1083e46b0f072a82938f16d366014468f7510350957765bb4d013496890"
+dependencies = [
+ "indexmap 2.2.3",
+ "num_cpus",
+ "once_cell",
+ "rustc-hash",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_ecma_visit",
+ "tracing",
+ "unicode-id",
+]
+
+[[package]]
+name = "swc_ecma_visit"
+version = "0.96.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1d0100c383fb08b6f34911ab6f925950416a5d14404c1cd520d59fb8dfbb3bf"
+dependencies = [
+ "num-bigint",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_visit",
+ "tracing",
+]
+
+[[package]]
+name = "swc_eq_ignore_macros"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "695a1d8b461033d32429b5befbf0ad4d7a2c4d6ba9cd5ba4e0645c615839e8e4"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "swc_fast_graph"
+version = "0.21.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8acfc056067a0fbfe26a4763c1eb246e813fdbe6b376415d07915e96e15481b6"
+dependencies = [
+ "indexmap 2.2.3",
+ "petgraph",
+ "rustc-hash",
+ "swc_common",
+]
+
+[[package]]
+name = "swc_graph_analyzer"
+version = "0.22.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c6e0110c0433c27221f03e45419b7e18d1db4d472db309088caa458ac2f304e"
+dependencies = [
+ "auto_impl",
+ "petgraph",
+ "swc_common",
+ "swc_fast_graph",
+ "tracing",
+]
+
+[[package]]
+name = "swc_macros_common"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50176cfc1cbc8bb22f41c6fe9d1ec53fbe057001219b5954961b8ad0f336fce9"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "swc_visit"
+version = "0.5.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b27078d8571abe23aa52ef608dd1df89096a37d867cf691cbb4f4c392322b7c9"
+dependencies = [
+ "either",
+ "swc_visit_macros",
+]
+
+[[package]]
+name = "swc_visit_macros"
+version = "0.5.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa8bb05975506741555ea4d10c3a3bdb0e2357cd58e1a4a4332b8ebb4b44c34d"
+dependencies = [
+ "Inflector",
+ "pmutil",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "swc_macros_common",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.48"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "unicode-ident",
+]
+
+[[package]]
+name = "synstructure"
+version = "0.12.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 1.0.109",
+ "unicode-xid 0.2.4",
+]
+
+[[package]]
+name = "tar"
+version = "0.4.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb"
+dependencies = [
+ "filetime",
+ "libc",
+ "xattr",
+]
+
+[[package]]
+name = "term_size"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e4129646ca0ed8f45d09b929036bafad5377103edd06e50bf574b353d2b08d9"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "text_lines"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7fd5828de7deaa782e1dd713006ae96b3bee32d3279b79eb67ecf8072c059bcf"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "textwrap"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+dependencies = [
+ "term_size",
+ "unicode-width",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
+dependencies = [
+ "cfg-if 1.0.0",
+ "once_cell",
+]
+
+[[package]]
+name = "time"
+version = "0.3.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
+dependencies = [
+ "deranged",
+ "itoa",
+ "num-conv",
+ "powerfmt",
+ "serde",
+ "time-core",
+ "time-macros",
+]
+
+[[package]]
+name = "time-core"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
+
+[[package]]
+name = "time-macros"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
+dependencies = [
+ "num-conv",
+ "time-core",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "tls-listener"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce110c38c3c9b6e5cc4fe72e60feb5b327750388a10a276e3d5d7d431e3dc76c"
+dependencies = [
+ "futures-util",
+ "pin-project-lite",
+ "thiserror",
+ "tokio",
+ "tokio-rustls 0.25.0",
+]
+
+[[package]]
+name = "tokenizers"
+version = "0.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dd47962b0ba36e7fd33518fbf1754d136fd1474000162bbf2a8b5fcb2d3654d"
+dependencies = [
+ "aho-corasick",
+ "derive_builder",
+ "esaxx-rs",
+ "getrandom",
+ "itertools 0.12.1",
+ "lazy_static",
+ "log",
+ "macro_rules_attribute",
+ "monostate",
+ "onig",
+ "paste",
+ "rand",
+ "rayon",
+ "rayon-cond",
+ "regex",
+ "regex-syntax 0.8.2",
+ "serde",
+ "serde_json",
+ "spm_precompiled",
+ "thiserror",
+ "unicode-normalization-alignments",
+ "unicode-segmentation",
+ "unicode_categories",
+]
+
+[[package]]
+name = "tokio"
+version = "1.36.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
+dependencies = [
+ "backtrace",
+ "bytes",
+ "libc",
+ "mio",
+ "num_cpus",
+ "parking_lot",
+ "pin-project-lite",
+ "signal-hook-registry",
+ "socket2",
+ "tokio-macros",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "tokio-macros"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
+dependencies = [
+ "rustls 0.21.11",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
+dependencies = [
+ "rustls 0.22.2",
+ "rustls-pki-types",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-socks"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51165dfa029d2a65969413a6cc96f354b86b464498702f174a4efa13608fd8c0"
+dependencies = [
+ "either",
+ "futures-util",
+ "thiserror",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-util"
+version = "0.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "futures-io",
+ "futures-sink",
+ "futures-util",
+ "hashbrown 0.14.3",
+ "pin-project-lite",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "tower-service"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+
+[[package]]
+name = "tracing"
+version = "0.1.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+dependencies = [
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+dependencies = [
+ "once_cell",
+ "valuable",
+]
+
+[[package]]
+name = "tracing-log"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
+dependencies = [
+ "log",
+ "once_cell",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-subscriber"
+version = "0.3.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
+dependencies = [
+ "matchers",
+ "nu-ansi-term",
+ "once_cell",
+ "regex",
+ "sharded-slab",
+ "smallvec",
+ "thread_local",
+ "tracing",
+ "tracing-core",
+ "tracing-log",
+]
+
+[[package]]
+name = "trust-dns-proto"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f7f83d1e4a0e4358ac54c5c3681e5d7da5efc5a7a632c90bb6d6669ddd9bc26"
+dependencies = [
+ "async-trait",
+ "cfg-if 1.0.0",
+ "data-encoding",
+ "enum-as-inner 0.5.1",
+ "futures-channel",
+ "futures-io",
+ "futures-util",
+ "idna 0.2.3",
+ "ipnet",
+ "lazy_static",
+ "rand",
+ "serde",
+ "smallvec",
+ "thiserror",
+ "tinyvec",
+ "tokio",
+ "tracing",
+ "url",
+]
+
+[[package]]
+name = "trust-dns-resolver"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aff21aa4dcefb0a1afbfac26deb0adc93888c7d295fb63ab273ef276ba2b7cfe"
+dependencies = [
+ "cfg-if 1.0.0",
+ "futures-util",
+ "ipconfig",
+ "lazy_static",
+ "lru-cache",
+ "parking_lot",
+ "resolv-conf",
+ "serde",
+ "smallvec",
+ "thiserror",
+ "tokio",
+ "tracing",
+ "trust-dns-proto",
+]
+
+[[package]]
+name = "try-lock"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
+
+[[package]]
+name = "tungstenite"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1"
+dependencies = [
+ "byteorder",
+ "bytes",
+ "data-encoding",
+ "http 1.0.0",
+ "httparse",
+ "log",
+ "rand",
+ "sha1",
+ "thiserror",
+ "url",
+ "utf-8",
+]
+
+[[package]]
+name = "twox-hash"
+version = "1.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675"
+dependencies = [
+ "cfg-if 1.0.0",
+ "rand",
+ "static_assertions",
+]
+
+[[package]]
+name = "typed-arena"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a"
+
+[[package]]
+name = "typenum"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+[[package]]
+name = "unic-char-property"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221"
+dependencies = [
+ "unic-char-range",
+]
+
+[[package]]
+name = "unic-char-range"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc"
+
+[[package]]
+name = "unic-common"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc"
+
+[[package]]
+name = "unic-ucd-ident"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987"
+dependencies = [
+ "unic-char-property",
+ "unic-char-range",
+ "unic-ucd-version",
+]
+
+[[package]]
+name = "unic-ucd-version"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4"
+dependencies = [
+ "unic-common",
+]
+
+[[package]]
+name = "unicase"
+version = "2.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
+dependencies = [
+ "version_check 0.9.4",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
+
+[[package]]
+name = "unicode-id"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1b6def86329695390197b82c1e244a54a131ceb66c996f2088a3876e2ae083f"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-normalization-alignments"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43f613e4fa046e69818dd287fdc4bc78175ff20331479dab6e1b0f98d57062de"
+dependencies = [
+ "smallvec",
+]
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
+
+[[package]]
+name = "unicode-width"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
+
+[[package]]
+name = "unicode-xid"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
+
+[[package]]
+name = "unicode_categories"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e"
+
+[[package]]
+name = "universal-hash"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
+dependencies = [
+ "crypto-common",
+ "subtle",
+]
+
+[[package]]
+name = "untrusted"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
+
+[[package]]
+name = "url"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
+dependencies = [
+ "form_urlencoded",
+ "idna 0.4.0",
+ "percent-encoding",
+ "serde",
+]
+
+[[package]]
+name = "urlencoding"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
+
+[[package]]
+name = "urlpattern"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9bd5ff03aea02fa45b13a7980151fe45009af1980ba69f651ec367121a31609"
+dependencies = [
+ "derive_more",
+ "regex",
+ "serde",
+ "unic-ucd-ident",
+ "url",
+]
+
+[[package]]
+name = "utf-8"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
+
+[[package]]
+name = "utf8parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+
+[[package]]
+name = "uuid"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
+dependencies = [
+ "getrandom",
+ "serde",
+]
+
+[[package]]
+name = "v8"
+version = "0.83.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f6c8a960dd2eb74b22eda64f7e9f3d1688f82b80202828dc0425ebdeda826ef"
+dependencies = [
+ "bitflags 2.4.2",
+ "fslock",
+ "once_cell",
+ "which 5.0.0",
+]
+
+[[package]]
+name = "valuable"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+
+[[package]]
+name = "value-trait"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dad8db98c1e677797df21ba03fca7d3bf9bec3ca38db930954e4fe6e1ea27eb4"
+dependencies = [
+ "float-cmp",
+ "halfbrown",
+ "itoa",
+ "ryu",
+]
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "vec_map"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+
+[[package]]
+name = "version_check"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "vsimd"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64"
+
+[[package]]
+name = "walkdir"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
+dependencies = [
+ "same-file",
+ "winapi-util",
+]
+
+[[package]]
+name = "want"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
+dependencies = [
+ "try-lock",
+]
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasite"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f"
+dependencies = [
+ "cfg-if 1.0.0",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.41"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97"
+dependencies = [
+ "cfg-if 1.0.0",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed"
+dependencies = [
+ "quote 1.0.35",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838"
+
+[[package]]
+name = "wasm-streams"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4609d447824375f43e1ffbc051b50ad8f4b3ae8219680c94452ea05eb240ac7"
+dependencies = [
+ "futures-util",
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
+name = "web-sys"
+version = "0.3.68"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "webpki-roots"
+version = "0.25.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
+
+[[package]]
+name = "wgpu-core"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef91c1d62d1e9e81c79e600131a258edf75c9531cbdbde09c44a011a47312726"
+dependencies = [
+ "arrayvec",
+ "bit-vec",
+ "bitflags 2.4.2",
+ "codespan-reporting",
+ "log",
+ "naga",
+ "parking_lot",
+ "profiling",
+ "raw-window-handle",
+ "ron",
+ "rustc-hash",
+ "serde",
+ "smallvec",
+ "thiserror",
+ "web-sys",
+ "wgpu-hal",
+ "wgpu-types",
+]
+
+[[package]]
+name = "wgpu-hal"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b84ecc802da3eb67b4cf3dd9ea6fe45bbb47ef13e6c49c5c3240868a9cc6cdd9"
+dependencies = [
+ "android_system_properties",
+ "arrayvec",
+ "ash",
+ "bit-set",
+ "bitflags 2.4.2",
+ "block",
+ "core-graphics-types",
+ "d3d12",
+ "glow",
+ "glutin_wgl_sys",
+ "gpu-alloc",
+ "gpu-allocator",
+ "gpu-descriptor",
+ "js-sys",
+ "khronos-egl",
+ "libc",
+ "libloading 0.8.1",
+ "log",
+ "metal",
+ "naga",
+ "objc",
+ "once_cell",
+ "parking_lot",
+ "profiling",
+ "range-alloc",
+ "raw-window-handle",
+ "rustc-hash",
+ "smallvec",
+ "thiserror",
+ "wasm-bindgen",
+ "web-sys",
+ "wgpu-types",
+ "winapi",
+]
+
+[[package]]
+name = "wgpu-types"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d5ed5f0edf0de351fe311c53304986315ce866f394a2e6df0c4b3c70774bcdd"
+dependencies = [
+ "bitflags 2.4.2",
+ "js-sys",
+ "serde",
+ "web-sys",
+]
+
+[[package]]
+name = "which"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b57acb10231b9493c8472b20cb57317d0679a49e0bdbee44b3b803a6473af164"
+dependencies = [
+ "failure",
+ "libc",
+]
+
+[[package]]
+name = "which"
+version = "5.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14"
+dependencies = [
+ "either",
+ "home",
+ "once_cell",
+ "rustix",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "whoami"
+version = "1.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a44ab49fad634e88f55bf8f9bb3abd2f27d7204172a112c7c9987e01c1c94ea9"
+dependencies = [
+ "redox_syscall",
+ "wasite",
+ "web-sys",
+]
+
+[[package]]
+name = "widestring"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows"
+version = "0.51.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9"
+dependencies = [
+ "windows-core 0.51.1",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.51.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets 0.52.0",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.0",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.0",
+ "windows_aarch64_msvc 0.52.0",
+ "windows_i686_gnu 0.52.0",
+ "windows_i686_msvc 0.52.0",
+ "windows_x86_64_gnu 0.52.0",
+ "windows_x86_64_gnullvm 0.52.0",
+ "windows_x86_64_msvc 0.52.0",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+
+[[package]]
+name = "winreg"
+version = "0.50.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
+dependencies = [
+ "cfg-if 1.0.0",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "x25519-dalek"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277"
+dependencies = [
+ "curve25519-dalek",
+ "rand_core",
+ "serde",
+ "zeroize",
+]
+
+[[package]]
+name = "x509-parser"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7069fba5b66b9193bd2c5d3d4ff12b839118f6bcbef5328efafafb5395cf63da"
+dependencies = [
+ "asn1-rs",
+ "data-encoding",
+ "der-parser",
+ "lazy_static",
+ "nom 7.1.3",
+ "oid-registry",
+ "rusticata-macros",
+ "thiserror",
+ "time",
+]
+
+[[package]]
+name = "xattr"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
+dependencies = [
+ "libc",
+ "linux-raw-sys",
+ "rustix",
+]
+
+[[package]]
+name = "xml-rs"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a"
+
+[[package]]
+name = "yaml-rust"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e66366e18dc58b46801afbf2ca7661a9f59cc8c5962c29892b6039b4f86fa992"
+
+[[package]]
+name = "zerocopy"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "zeroize"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
+dependencies = [
+ "zeroize_derive",
+]
+
+[[package]]
+name = "zeroize_derive"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
diff --git a/pkgs/development/web/edge-runtime/default.nix b/pkgs/development/web/edge-runtime/default.nix
index a8e9dbe824a4e..7a51944a4ff31 100644
--- a/pkgs/development/web/edge-runtime/default.nix
+++ b/pkgs/development/web/edge-runtime/default.nix
@@ -11,7 +11,7 @@
 
 let
   pname = "edge-runtime";
-  version = "1.14.0";
+  version = "1.53.4";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -20,11 +20,16 @@ rustPlatform.buildRustPackage {
     owner = "supabase";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-63XStzO4Jt6ObWuzcBf2QwCIWsStXvhQ0XaJabELhWg=";
+    hash = "sha256-sDgGfQiAUuI+JaF0BRB5lwvjbWWIoTV/k/tbQsBBc4E=";
     fetchSubmodules = true;
   };
 
-  cargoHash = "sha256-JwwdvvpqgSbl0Xyb5pQ5hzZRrrCnDSjwV+ikdO2pXCk=";
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "ort-2.0.0-rc.0" = "sha256-j3g9ES2ZLmAAcPYgszBGDG16HiFJTnohwxSvXypFGTw=";
+    };
+  };
 
   nativeBuildInputs = [ pkg-config rustPlatform.bindgenHook ];
 
@@ -35,36 +40,22 @@ rustPlatform.buildRustPackage {
   # To avoid this we pre-download the file and export it via RUSTY_V8_ARCHIVE
   RUSTY_V8_ARCHIVE = callPackage ./librusty_v8.nix { };
 
+  # For version tag
+  GIT_V_TAG = version;
+
   passthru.updateScript = nix-update-script { };
 
-  preCheck = ''
-    export HOME=$(mktemp -d)
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/edge-runtime --help
+    runHook postInstallCheck
   '';
 
-  checkFlags = [
-    # tries to make a network access
-    "--skip=deno_runtime::test::test_main_rt_fs"
-    "--skip=deno_runtime::test::test_main_runtime_creation"
-    "--skip=deno_runtime::test::test_os_env_vars"
-    "--skip=deno_runtime::test::test_os_ops"
-    "--skip=deno_runtime::test::test_user_runtime_creation"
-    "--skip=test_custom_readable_stream_response"
-    "--skip=test_import_map_file_path"
-    "--skip=test_import_map_inline"
-    "--skip=test_main_worker_options_request"
-    "--skip=test_main_worker_post_request"
-    "--skip=test_null_body_with_204_status"
-    "--skip=test_null_body_with_204_status_post"
-    "--skip=test_file_upload"
-    "--skip=test_oak_server"
-    "--skip=test_tls_throw_invalid_data"
-    "--skip=test_user_worker_json_imports"
-    "--skip=node::analyze::tests::test_esm_code_with_node_globals"
-    "--skip=node::analyze::tests::test_esm_code_with_node_globals_with_shebang"
-  ];
+  doCheck = false;
 
   meta = with lib; {
-    description = "A server based on Deno runtime, capable of running JavaScript, TypeScript, and WASM services";
+    description = "Server based on Deno runtime, capable of running JavaScript, TypeScript, and WASM services";
     mainProgram = "edge-runtime";
     homepage = "https://github.com/supabase/edge-runtime";
     license = licenses.mit;
diff --git a/pkgs/development/web/edge-runtime/librusty_v8.nix b/pkgs/development/web/edge-runtime/librusty_v8.nix
index 1e0a306c13b6c..c08c50eea4cde 100644
--- a/pkgs/development/web/edge-runtime/librusty_v8.nix
+++ b/pkgs/development/web/edge-runtime/librusty_v8.nix
@@ -1,20 +1,22 @@
-# auto-generated file -- DO NOT EDIT!
-{ stdenv, fetchurl }:
+{ lib, stdenv, fetchurl }:
 
 let
   fetch_librusty_v8 = args: fetchurl {
     name = "librusty_v8-${args.version}";
     url = "https://github.com/denoland/rusty_v8/releases/download/v${args.version}/librusty_v8_release_${stdenv.hostPlatform.rust.rustcTarget}.a";
     sha256 = args.shas.${stdenv.hostPlatform.system};
-    meta = { inherit (args) version; };
+    meta = {
+      inherit (args) version;
+      sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+    };
   };
 in
 fetch_librusty_v8 {
-  version = "0.74.3";
+  version = "0.83.2";
   shas = {
-    x86_64-linux = "sha256-8pa8nqA6rbOSBVnp2Q8/IQqh/rfYQU57hMgwU9+iz4A=";
-    aarch64-linux = "sha256-3kXOV8rlCNbNBdXgOtd3S94qO+JIKyOByA4WGX+XVP0=";
-    x86_64-darwin = "sha256-iBBVKZiSoo08YEQ8J/Rt1/5b7a+2xjtuS6QL/Wod5nQ=";
-    aarch64-darwin = "sha256-Djnuc3l/jQKvBf1aej8LG5Ot2wPT0m5Zo1B24l1UHsM=";
+    x86_64-linux = "sha256-RJNdy5jRZK3dTgrHsWuZZAHUyy1EogyNNuBekZ3Arrk=";
+    aarch64-linux = "sha256-mpOmuqtd7ob6xvrgH4P/6GLa/hXTS/ok0WOYo7+7ZhI=";
+    x86_64-darwin = "sha256-2o8CvJ3r5+4PLNGTySqPPDTqbU0piX4D1UtZMscMdHU=";
+    aarch64-darwin = "sha256-WHeITWSHjZxfQJndxcjsp4yIERKrKXSHFZ0UBc43p8o=";
   };
 }
diff --git a/pkgs/development/web/flyctl/default.nix b/pkgs/development/web/flyctl/default.nix
index d085da78de3c5..e04421421180d 100644
--- a/pkgs/development/web/flyctl/default.nix
+++ b/pkgs/development/web/flyctl/default.nix
@@ -1,17 +1,17 @@
-{ lib, buildGoModule, fetchFromGitHub, testers, flyctl, installShellFiles, gitUpdater }:
+{ lib, buildGoModule, fetchFromGitHub, testers, flyctl, installShellFiles }:
 
 buildGoModule rec {
   pname = "flyctl";
-  version = "0.2.55";
+  version = "0.2.72";
 
   src = fetchFromGitHub {
     owner = "superfly";
     repo = "flyctl";
     rev = "v${version}";
-    hash = "sha256-yCRaF600UrDmazsgTRp/grWtkULeSQedE5m69K6h/4Q=";
+    hash = "sha256-v2+xDeErVkgiGavPpBtKg7+BBhiKZdmbo2NIFL7iXvw=";
   };
 
-  vendorHash = "sha256-1hlWyr41t8J4naN5QbEtfCv3npe/kvMH5NKKaxYvLYk=";
+  vendorHash = "sha256-iRZrjkWQxuUW/YM5TygFt+g8suM5iLGsWsCt4QQOX3M=";
 
   subPackages = [ "." ];
 
@@ -34,11 +34,6 @@ buildGoModule rec {
     HOME=$(mktemp -d)
   '';
 
-  checkFlags = [
-    # these tests require network
-    "-skip=TestToTestMachineConfig"
-  ];
-
   # We override checkPhase to be able to test ./... while using subPackages
   checkPhase = ''
     runHook preCheck
@@ -58,14 +53,6 @@ buildGoModule rec {
     ln -s $out/bin/flyctl $out/bin/fly
   '';
 
-  # Upstream tags every PR merged with release tags like
-  # v2024.5.20-pr3545.4. We ignore all revisions containing a '-'
-  # to skip these releases.
-  passthru.updateScript = gitUpdater {
-    rev-prefix = "v";
-    ignoredVersions = "-";
-  };
-
   passthru.tests.version = testers.testVersion {
     package = flyctl;
     command = "HOME=$(mktemp -d) flyctl version";
@@ -77,7 +64,7 @@ buildGoModule rec {
     downloadPage = "https://github.com/superfly/flyctl";
     homepage = "https://fly.io/";
     license = lib.licenses.asl20;
-    maintainers = with lib.maintainers; [ adtya jsierles techknowlogick RaghavSood ];
+    maintainers = with lib.maintainers; [ adtya jsierles techknowlogick RaghavSood teutat3s ];
     mainProgram = "flyctl";
   };
 }
diff --git a/pkgs/development/web/function-runner/default.nix b/pkgs/development/web/function-runner/default.nix
index 1eb7dff5b2e2b..f183118fab8af 100644
--- a/pkgs/development/web/function-runner/default.nix
+++ b/pkgs/development/web/function-runner/default.nix
@@ -2,19 +2,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "function-runner";
-  version = "5.0.0";
+  version = "5.1.0";
 
   src = fetchFromGitHub {
     owner = "Shopify";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Li3v3kXze0KgK16XVwdshZWaRF89YSC1Yk9iHXfGWKI=";
+    sha256 = "sha256-jhT/xkkPC0gpQqn2gOymEYP1afULd4W7pf7Z8XHGces=";
   };
 
-  cargoHash = "sha256-jPiy4ULEfF/aRhWV1j2SOIe2u9uctEsmzWQ6MLXRu7A=";
+  cargoHash = "sha256-kiic/rVvSUxNGfEYAa23WOgyfCcnG4oI/iP1OfkL95Y=";
 
   meta = with lib; {
-    description = "A CLI tool which allows you to run Wasm Functions intended for the Shopify Functions infrastructure";
+    description = "CLI tool which allows you to run Wasm Functions intended for the Shopify Functions infrastructure";
     mainProgram = "function-runner";
     homepage = "https://github.com/Shopify/function-runner";
     license = licenses.asl20;
diff --git a/pkgs/development/web/insomnia/default.nix b/pkgs/development/web/insomnia/default.nix
index 0d9b0e422b507..0ebe273949d89 100644
--- a/pkgs/development/web/insomnia/default.nix
+++ b/pkgs/development/web/insomnia/default.nix
@@ -1,100 +1,75 @@
-{ lib, stdenv, makeWrapper, fetchurl, dpkg, alsa-lib, atk, cairo, cups, dbus, expat
-, fontconfig, freetype, gdk-pixbuf, glib, pango, mesa, nspr, nss, gtk3
-, at-spi2-atk, gsettings-desktop-schemas, gobject-introspection, wrapGAppsHook3
-, libX11, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext
-, libXfixes, libXi, libXrandr, libXrender, libXtst, libxcb, libxshmfence, nghttp2
-, libudev0-shim, glibc, curl, openssl, autoPatchelfHook }:
-
+{
+  lib,
+  stdenv,
+  fetchurl,
+  appimageTools
+}:
 let
-  runtimeLibs = lib.makeLibraryPath [
-    curl
-    glibc
-    libudev0-shim
-    nghttp2
-    openssl
-    stdenv.cc.cc.lib
-  ];
-in stdenv.mkDerivation rec {
   pname = "insomnia";
-  version = "8.6.1";
+  version = "9.0.0";
 
   src = fetchurl {
-    url = "https://github.com/Kong/insomnia/releases/download/core%40${version}/Insomnia.Core-${version}.deb";
-    hash = "sha256-qy2j6kdmtDgfTab8gTz7eb/uNKwtzbxcoJHNibVa35c=";
-  };
-
-  nativeBuildInputs = [
-    autoPatchelfHook
-    dpkg
-    makeWrapper
-    gobject-introspection
-    wrapGAppsHook3
-  ];
-
-  buildInputs = [
-    alsa-lib
-    at-spi2-atk
-    atk
-    cairo
-    cups
-    dbus
-    expat
-    fontconfig
-    freetype
-    gdk-pixbuf
-    glib
-    pango
-    gtk3
-    gsettings-desktop-schemas
-    libX11
-    libXScrnSaver
-    libXcomposite
-    libXcursor
-    libXdamage
-    libXext
-    libXfixes
-    libXi
-    libXrandr
-    libXrender
-    libXtst
-    libxcb
-    libxshmfence
-    mesa # for libgbm
-    nspr
-    nss
-  ];
+    x86_64-darwin = {
+      url = "https://github.com/Kong/insomnia/releases/download/core%40${version}/Insomnia.Core-${version}.dmg";
+      hash = "sha256-QIArPdThQcNTUgrXpWP8JHaZfrZ/6ztekIvzFdoWjsY=";
+    };
+    x86_64-linux = {
+      url = "https://github.com/Kong/insomnia/releases/download/core%40${version}/Insomnia.Core-${version}.AppImage";
+      hash = "sha256-2UiqopYmNxnDcIqQMn/H89ugvOtTWkHH4LrmKkQErSs=";
+    };
+  }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
 
-  dontBuild = true;
-  dontConfigure = true;
-  dontWrapGApps = true;
+  meta = with lib; {
+    homepage = "https://insomnia.rest";
+    description = " The open-source, cross-platform API client for GraphQL, REST, WebSockets, SSE and gRPC. With Cloud, Local and Git storage. ";
+    mainProgram = "insomnia";
+    changelog = "https://github.com/Kong/insomnia/releases/tag/core@${version}";
+    license = licenses.asl20;
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    maintainers = with maintainers; [ markus1189 kashw2 DataHearth ];
+  };
+in
+if stdenv.isDarwin then stdenv.mkDerivation {
+  inherit pname version src meta;
+    sourceRoot = ".";
 
-  unpackPhase = "dpkg-deb -x $src .";
+    unpackCmd = ''
+    echo "Creating temp directory"
+    mnt=$(TMPDIR=/tmp mktemp -d -t nix-XXXXXXXXXX)
+    function finish {
+      echo "Ejecting temp directory"
+      /usr/bin/hdiutil detach $mnt -force
+      rm -rf $mnt
+    }
+    # Detach volume when receiving SIG "0"
+    trap finish EXIT
+    # Mount DMG file
+    echo "Mounting DMG file into \"$mnt\""
+    /usr/bin/hdiutil attach -nobrowse -mountpoint $mnt $curSrc
+    # Copy content to local dir for later use
+    echo 'Copying extracted content into "sourceRoot"'
+    cp -a $mnt/Insomnia.app $PWD/
+  '';
 
   installPhase = ''
-    mkdir -p $out/share/insomnia $out/lib $out/bin
-
-    mv usr/share/* $out/share/
-    mv opt/Insomnia/* $out/share/insomnia
-
-    ln -s $out/share/insomnia/insomnia $out/bin/insomnia
-    sed -i 's|\/opt\/Insomnia|'$out'/bin|g' $out/share/applications/insomnia.desktop
+    runHook preInstall
+    mkdir -p "$out/Applications"
+    mv Insomnia.app $out/Applications/
+    runHook postInstall
   '';
+} else appimageTools.wrapType2 {
+  inherit pname version src meta;
 
-  preFixup = ''
-    wrapProgramShell "$out/bin/insomnia" \
-        "''${gappsWrapperArgs[@]}" \
-        --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland --enable-features=WaylandWindowDecorations}}" \
-        --prefix LD_LIBRARY_PATH : ${runtimeLibs}
+  extraInstallCommands = let
+    appimageContents = appimageTools.extract {
+      inherit pname version src;
+    };
+  in ''
+    # Install XDG Desktop file and its icon
+    install -Dm444 ${appimageContents}/insomnia.desktop -t $out/share/applications
+    install -Dm444 ${appimageContents}/insomnia.png -t $out/share/pixmaps
+    # Replace wrong exec statement in XDG Desktop file
+    substituteInPlace $out/share/applications/insomnia.desktop \
+        --replace-fail 'Exec=AppRun --no-sandbox %U' 'Exec=insomnia'
   '';
-
-  meta = with lib; {
-    homepage = "https://insomnia.rest/";
-    description = "The most intuitive cross-platform REST API Client";
-    mainProgram = "insomnia";
-    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
-    license = licenses.mit;
-    platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ markus1189 babariviere kashw2 ];
-  };
-
 }
diff --git a/pkgs/development/web/kore/default.nix b/pkgs/development/web/kore/default.nix
index 13caf0e781fc3..9105afa52071e 100644
--- a/pkgs/development/web/kore/default.nix
+++ b/pkgs/development/web/kore/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "An easy to use web application framework for C";
+    description = "Easy to use web application framework for C";
     homepage = "https://kore.io";
     license = licenses.isc;
     platforms = platforms.all;
diff --git a/pkgs/development/web/lucky-cli/default.nix b/pkgs/development/web/lucky-cli/default.nix
index 3d420158caf01..2f5972d6c28d8 100644
--- a/pkgs/development/web/lucky-cli/default.nix
+++ b/pkgs/development/web/lucky-cli/default.nix
@@ -33,7 +33,7 @@ crystal.buildCrystalPackage rec {
   '';
 
   meta = with lib; {
-    description = "A Crystal library for creating and running tasks. Also generates Lucky projects";
+    description = "Crystal library for creating and running tasks. Also generates Lucky projects";
     homepage = "https://luckyframework.org/";
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/pkgs/development/web/newman/default.nix b/pkgs/development/web/newman/default.nix
index 9f652e2c5c819..8061637417605 100644
--- a/pkgs/development/web/newman/default.nix
+++ b/pkgs/development/web/newman/default.nix
@@ -5,22 +5,22 @@
 
 buildNpmPackage rec {
   pname = "newman";
-  version = "6.1.2";
+  version = "6.1.3";
 
   src = fetchFromGitHub {
     owner = "postmanlabs";
     repo = "newman";
     rev = "refs/tags/v${version}";
-    hash = "sha256-BQVJNOTVtB1g6+PsHJ5nbN9X7b33d/3qkSUcHTMexB0=";
+    hash = "sha256-I9gpVwrrug1Ygi0UuBIeq16Nyn8rsaDkMDtpxBYJOuY=";
   };
 
-  npmDepsHash = "sha256-kr4LozGpmmU5g2LIKd+SaKbHsOM6hnlflM79c4tFII8=";
+  npmDepsHash = "sha256-StNu5NHGzivl3+GMBWkbxvsRJ/dYuS0dze+8/i7q9qg=";
 
   dontNpmBuild = true;
 
   meta = with lib; {
     homepage = "https://www.getpostman.com";
-    description = "A command-line collection runner for Postman";
+    description = "Command-line collection runner for Postman";
     mainProgram = "newman";
     changelog = "https://github.com/postmanlabs/newman/releases/tag/v${version}";
     maintainers = with maintainers; [ freezeboy ];
diff --git a/pkgs/development/web/nodejs/nodejs.nix b/pkgs/development/web/nodejs/nodejs.nix
index 91038467914d9..962bc3e246bec 100644
--- a/pkgs/development/web/nodejs/nodejs.nix
+++ b/pkgs/development/web/nodejs/nodejs.nix
@@ -206,7 +206,7 @@ let
       homepage = "https://nodejs.org";
       changelog = "https://github.com/nodejs/node/releases/tag/v${version}";
       license = licenses.mit;
-      maintainers = with maintainers; [ goibhniu cko ];
+      maintainers = with maintainers; [ goibhniu cko aduh95 ];
       platforms = platforms.linux ++ platforms.darwin;
       mainProgram = "node";
       knownVulnerabilities = optional (versionOlder version "18") "This NodeJS release has reached its end of life. See https://nodejs.org/en/about/releases/.";
diff --git a/pkgs/development/web/nodejs/v18.nix b/pkgs/development/web/nodejs/v18.nix
index c4a97a47a4b62..6b3ca7635e436 100644
--- a/pkgs/development/web/nodejs/v18.nix
+++ b/pkgs/development/web/nodejs/v18.nix
@@ -1,4 +1,4 @@
-{ callPackage, lib, overrideCC, pkgs, buildPackages, fetchpatch, openssl, python3, enableNpm ? true }:
+{ callPackage, lib, overrideCC, pkgs, buildPackages, openssl, python3, enableNpm ? true }:
 
 let
   # Clang 16+ cannot build Node v18 due to -Wenum-constexpr-conversion errors.
diff --git a/pkgs/development/web/nodejs/v22.nix b/pkgs/development/web/nodejs/v22.nix
index 676ef1c7e5452..ec5cc40cc9c2d 100644
--- a/pkgs/development/web/nodejs/v22.nix
+++ b/pkgs/development/web/nodejs/v22.nix
@@ -8,8 +8,8 @@ let
 in
 buildNodejs {
   inherit enableNpm;
-  version = "22.2.0";
-  sha256 = "sha256-iJkIqIKNFISRDX5lm2qlet6NUo/w45Dpp372WadihHQ=";
+  version = "22.3.0";
+  sha256 = "0k0h4s9s2y0ms3g6xhynsqsrkl9hz001dmj6j0gpc5x5vk8mpf5z";
   patches = [
     ./disable-darwin-v8-system-instrumentation-node19.patch
     ./bypass-darwin-xcrun-node16.patch
diff --git a/pkgs/development/web/playwright-test/node-packages.nix b/pkgs/development/web/playwright-test/node-packages.nix
index 70c51050f5975..978ac1219b4d3 100644
--- a/pkgs/development/web/playwright-test/node-packages.nix
+++ b/pkgs/development/web/playwright-test/node-packages.nix
@@ -39,7 +39,7 @@ in
     ];
     buildInputs = globalBuildInputs;
     meta = {
-      description = "A high-level API to automate web browsers";
+      description = "High-level API to automate web browsers";
       homepage = "https://playwright.dev";
       license = "Apache-2.0";
     };
diff --git a/pkgs/development/web/playwright/driver.nix b/pkgs/development/web/playwright/driver.nix
index 3e6f3f2339651..a4fe8272be4c9 100644
--- a/pkgs/development/web/playwright/driver.nix
+++ b/pkgs/development/web/playwright/driver.nix
@@ -5,7 +5,6 @@
 , git
 , jq
 , nodejs
-, fetchFromGitHub
 , fetchurl
 , makeFontsConf
 , makeWrapper
diff --git a/pkgs/development/web/pnpm-lock-export/default.nix b/pkgs/development/web/pnpm-lock-export/default.nix
index e965befb5700a..093a1da2d0d45 100644
--- a/pkgs/development/web/pnpm-lock-export/default.nix
+++ b/pkgs/development/web/pnpm-lock-export/default.nix
@@ -23,7 +23,7 @@ buildNpmPackage rec {
   };
 
   meta = with lib; {
-    description = "A utility for converting pnpm-lock.yaml to other lockfile formats";
+    description = "Utility for converting pnpm-lock.yaml to other lockfile formats";
     mainProgram = "pnpm-lock-export";
     homepage = "https://github.com/cvent/pnpm-lock-export";
     license = licenses.mit;
diff --git a/pkgs/development/web/protege-distribution/default.nix b/pkgs/development/web/protege-distribution/default.nix
index b82f45692ee15..3aa234b406bde 100644
--- a/pkgs/development/web/protege-distribution/default.nix
+++ b/pkgs/development/web/protege-distribution/default.nix
@@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "The OWL2 ontology editor from Stanford, with third-party plugins included";
+    description = "OWL2 ontology editor from Stanford, with third-party plugins included";
     homepage = "https://protege.stanford.edu/";
     downloadPage = "https://protege.stanford.edu/products.php#desktop-protege";
     maintainers = with maintainers; [ nessdoor ];
diff --git a/pkgs/development/web/publii/default.nix b/pkgs/development/web/publii/default.nix
index 9792f2686454e..e81a7294e0cce 100644
--- a/pkgs/development/web/publii/default.nix
+++ b/pkgs/development/web/publii/default.nix
@@ -87,7 +87,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "Static Site CMS with GUI to build privacy-focused SEO-friendly website.";
+    description = "Static Site CMS with GUI to build privacy-focused SEO-friendly website";
     mainProgram = "Publii";
     longDescription = ''
       Creating a website doesn't have to be complicated or expensive. With Publii, the most
diff --git a/pkgs/development/web/shopify-themekit/default.nix b/pkgs/development/web/shopify-themekit/default.nix
index 5472f38fd7276..d6bb23a8ed21f 100644
--- a/pkgs/development/web/shopify-themekit/default.nix
+++ b/pkgs/development/web/shopify-themekit/default.nix
@@ -21,7 +21,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A command line tool for shopify themes";
+    description = "Command line tool for shopify themes";
     mainProgram = "theme";
     homepage = "https://shopify.github.io/themekit/";
     license = licenses.mit;
diff --git a/pkgs/games/0ad/data.nix b/pkgs/games/0ad/data.nix
index 4437a5d26995b..92ebf57486468 100644
--- a/pkgs/games/0ad/data.nix
+++ b/pkgs/games/0ad/data.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A free, open-source game of ancient warfare -- data files";
+    description = "Free, open-source game of ancient warfare -- data files";
     homepage = "https://play0ad.com/";
     license = licenses.cc-by-sa-30;
     maintainers = with maintainers; [ chvp ];
diff --git a/pkgs/games/0ad/game.nix b/pkgs/games/0ad/game.nix
index f85c9becb8d15..4391e21ce8102 100644
--- a/pkgs/games/0ad/game.nix
+++ b/pkgs/games/0ad/game.nix
@@ -117,7 +117,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A free, open-source game of ancient warfare";
+    description = "Free, open-source game of ancient warfare";
     homepage = "https://play0ad.com/";
     license = with licenses; [
       gpl2 lgpl21 mit cc-by-sa-30
diff --git a/pkgs/games/2048-cli/default.nix b/pkgs/games/2048-cli/default.nix
index e1eb958164ce7..450982df7446c 100644
--- a/pkgs/games/2048-cli/default.nix
+++ b/pkgs/games/2048-cli/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/tiehuis/2048-cli";
-    description = "The game 2048 for your Linux terminal";
+    description = "Game 2048 for your Linux terminal";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.AndersonTorres ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/games/20kly/default.nix b/pkgs/games/20kly/default.nix
index c2ab350195162..661feea1730db 100644
--- a/pkgs/games/20kly/default.nix
+++ b/pkgs/games/20kly/default.nix
@@ -38,7 +38,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A steampunk-themed strategy game where you have to manage a steam supply network";
+    description = "Steampunk-themed strategy game where you have to manage a steam supply network";
     mainProgram = "lightyears";
     homepage = "http://jwhitham.org.uk/20kly/";
     license = licenses.gpl2Only;
diff --git a/pkgs/games/90secondportraits/default.nix b/pkgs/games/90secondportraits/default.nix
index bd60c836b6367..c8db41d791d6f 100644
--- a/pkgs/games/90secondportraits/default.nix
+++ b/pkgs/games/90secondportraits/default.nix
@@ -42,7 +42,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A silly speed painting game";
+    description = "Silly speed painting game";
     mainProgram = "90secondportraits";
     maintainers = with maintainers; [ leenaars ];
     platforms = platforms.linux;
diff --git a/pkgs/games/abbaye-des-morts/default.nix b/pkgs/games/abbaye-des-morts/default.nix
index 1461c45a0b795..4f1d744653d34 100644
--- a/pkgs/games/abbaye-des-morts/default.nix
+++ b/pkgs/games/abbaye-des-morts/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://locomalito.com/abbaye_des_morts.php";
-    description = "A retro arcade video game";
+    description = "Retro arcade video game";
     mainProgram = "abbayev2";
     license = licenses.gpl3;
     maintainers = [ maintainers.marius851000 ];
diff --git a/pkgs/games/adom/default.nix b/pkgs/games/adom/default.nix
deleted file mode 100644
index bef9d1b42d32b..0000000000000
--- a/pkgs/games/adom/default.nix
+++ /dev/null
@@ -1,60 +0,0 @@
-{ lib, stdenv, fetchurl, patchelf, zlib, libmad, libpng12, libcaca, libGLU, libGL, alsa-lib, libpulseaudio
-, xorg }:
-
-let
-
-  inherit (xorg) libXext libX11;
-
-  lpath = "${stdenv.cc.cc.lib}/lib64:" + lib.makeLibraryPath [
-      zlib libmad libpng12 libcaca libXext libX11 libGLU libGL alsa-lib libpulseaudio];
-
-in
-stdenv.mkDerivation rec {
-  name = "adom-${version}-noteye";
-  version = "1.2.0_pre23";
-
-  src = fetchurl {
-    url = "http://ancardia.uk.to/download/adom_noteye_linux_ubuntu_64_${version}.tar.gz";
-    sha256 = "0sbn0csaqb9cqi0z5fdwvnymkf84g64csg0s9mm6fzh0sm2mi0hz";
-  };
-
-  buildCommand = ''
-    . $stdenv/setup
-
-    unpackPhase
-
-    mkdir -pv $out
-    cp -r -t $out adom/*
-
-    chmod u+w $out/lib
-    for l in $out/lib/*so* ; do
-      chmod u+w $l
-      ${patchelf}/bin/patchelf \
-        --set-rpath "$out/lib:${lpath}" \
-        $l
-    done
-
-    ${patchelf}/bin/patchelf \
-      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "$out/lib:${lpath}" \
-      $out/adom
-
-    mkdir $out/bin
-    cat >$out/bin/adom <<EOF
-    #! ${stdenv.shell}
-    (cd $out; exec $out/adom ; )
-    EOF
-    chmod +x $out/bin/adom
-  '';
-
-  meta = with lib; {
-    description = "A rogue-like game with nice graphical interface";
-    homepage = "http://adom.de/";
-    license = licenses.unfreeRedistributable;
-    maintainers = [maintainers.smironov];
-
-    # Please, notify me (smironov) if you need the x86 version
-    platforms = ["x86_64-linux"];
-    broken = true; # at 2022-09-30, failed download.
-  };
-}
diff --git a/pkgs/games/airshipper/default.nix b/pkgs/games/airshipper/default.nix
index 0791aa8dfa27d..ae26c4cf7bbf6 100644
--- a/pkgs/games/airshipper/default.nix
+++ b/pkgs/games/airshipper/default.nix
@@ -1,7 +1,6 @@
 { lib
 , rustPlatform
 , fetchFromGitLab
-, fetchpatch
 , openssl
 , libGL
 , vulkan-loader
diff --git a/pkgs/games/airstrike/default.nix b/pkgs/games/airstrike/default.nix
index 63b2686e97c95..819f238806b2a 100644
--- a/pkgs/games/airstrike/default.nix
+++ b/pkgs/games/airstrike/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A 2d dogfighting game";
+    description = "2d dogfighting game";
     mainProgram = "airstrike";
     homepage = "https://icculus.org/airstrike/";
     license = licenses.gpl2;
diff --git a/pkgs/games/alienarena/default.nix b/pkgs/games/alienarena/default.nix
index 2aff5c86151e6..dbf74aa4f3b08 100644
--- a/pkgs/games/alienarena/default.nix
+++ b/pkgs/games/alienarena/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     changelog = "https://github.com/alienarena/alienarena/releases/tag/${version}";
-    description = "A free, stand-alone first-person shooter computer game";
+    description = "Free, stand-alone first-person shooter computer game";
     longDescription = ''
       Do you like old school deathmatch with modern features? How
       about rich, colorful, arcade-like atmospheres? How about retro
diff --git a/pkgs/games/angband/default.nix b/pkgs/games/angband/default.nix
index 1d3ac929d337b..3cd9174f3e8a1 100644
--- a/pkgs/games/angband/default.nix
+++ b/pkgs/games/angband/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://angband.github.io/angband";
-    description = "A single-player roguelike dungeon exploration game";
+    description = "Single-player roguelike dungeon exploration game";
     mainProgram = "angband";
     maintainers = [ maintainers.kenran ];
     license = licenses.gpl2;
diff --git a/pkgs/games/animatch/default.nix b/pkgs/games/animatch/default.nix
index 261612374ace1..7b235c93e0336 100644
--- a/pkgs/games/animatch/default.nix
+++ b/pkgs/games/animatch/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://gitlab.com/HolyPangolin/animatch/";
-    description = "A cute match three game for the Librem 5 smartphone";
+    description = "Cute match three game for the Librem 5 smartphone";
     mainProgram = "animatch";
     license = with lib.licenses; [ gpl3Plus ];
     maintainers = with lib.maintainers; [ colinsane ];
diff --git a/pkgs/games/anki/bin.nix b/pkgs/games/anki/bin.nix
index 6af284843e71b..0d9465b770605 100644
--- a/pkgs/games/anki/bin.nix
+++ b/pkgs/games/anki/bin.nix
@@ -1,24 +1,36 @@
-{ fetchurl, stdenv, lib, buildFHSEnv, appimageTools, writeShellScript, anki, undmg, zstd, cacert, commandLineArgs ? [] }:
+{
+  fetchurl,
+  stdenv,
+  lib,
+  buildFHSEnv,
+  appimageTools,
+  writeShellScript,
+  anki,
+  undmg,
+  zstd,
+  cacert,
+  commandLineArgs ? [ ],
+}:
 
 let
   pname = "anki-bin";
   # Update hashes for both Linux and Darwin!
-  version = "24.04.1";
+  version = "24.06.2";
 
   sources = {
     linux = fetchurl {
       url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-linux-qt6.tar.zst";
-      sha256 = "sha256-elUTr0Lumw5bzWbeU74m8e/AxQPNpKXiIOC0Rcgh3AY=";
+      sha256 = "sha256-A7/R7nQUt0L4fKFadPvKyi1sCEUIXcOZSW+Yr1ty63c=";
     };
 
     # For some reason anki distributes completely separate dmg-files for the aarch64 version and the x86_64 version
     darwin-x86_64 = fetchurl {
       url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-mac-intel-qt6.dmg";
-      sha256 = "sha256-LlHbZ8Yw17Ym11L1lqMibAaV8XWB8oiMFGQxE1PvApI=";
+      sha256 = "sha256-tZjR5ebzbm9w5m66Q2cy8Oe1VtqGEDpLfjpgbUh07Lo=";
     };
     darwin-aarch64 = fetchurl {
       url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-mac-apple-qt6.dmg";
-      sha256 = "sha256-lMUfIvV4biaOb0ABTZciBP59XY1Ln3tkwphi2oaRu4c=";
+      sha256 = "sha256-/SVtyvsPWv5EGiNTbfHbPtguLi/oNytO16JPnD7IaCM=";
     };
   };
 
@@ -43,57 +55,80 @@ let
   };
 
   meta = with lib; {
-    inherit (anki.meta) license homepage description longDescription;
-    platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
+    inherit (anki.meta)
+      license
+      homepage
+      description
+      longDescription
+      ;
+    platforms = [
+      "x86_64-linux"
+      "x86_64-darwin"
+      "aarch64-darwin"
+    ];
     maintainers = with maintainers; [ mahmoudk1000 ];
   };
 
-  passthru = { inherit sources; };
-
-  fhsEnvAnki = buildFHSEnv (appimageTools.defaultFhsEnvArgs // {
-    inherit pname version;
-
-    profile = ''
-      # anki vendors QT and mixing QT versions usually causes crashes
-      unset QT_PLUGIN_PATH
-      # anki uses the system ssl cert, without it plugins do not download/update
-      export SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt"
-    '';
-
-    # Dependencies of anki
-    targetPkgs = pkgs: (with pkgs; [ xorg.libxkbfile xcb-util-cursor-HEAD krb5 zstd ]);
-
-    runScript = writeShellScript "anki-wrapper.sh" ''
-      exec ${unpacked}/bin/anki ${ lib.strings.escapeShellArgs commandLineArgs } "$@"
-    '';
-
-    extraInstallCommands = ''
-      ln -s ${pname} $out/bin/anki
-
-      mkdir -p $out/share
-      cp -R ${unpacked}/share/applications \
-        ${unpacked}/share/man \
-        ${unpacked}/share/pixmaps \
-        $out/share/
-    '';
+  passthru = {
+    inherit sources;
+  };
 
-    inherit meta passthru;
-  });
+  fhsEnvAnki = buildFHSEnv (
+    appimageTools.defaultFhsEnvArgs
+    // {
+      inherit pname version;
+
+      profile = ''
+        # anki vendors QT and mixing QT versions usually causes crashes
+        unset QT_PLUGIN_PATH
+        # anki uses the system ssl cert, without it plugins do not download/update
+        export SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt"
+      '';
+
+      # Dependencies of anki
+      targetPkgs =
+        pkgs:
+        (with pkgs; [
+          xorg.libxkbfile
+          xcb-util-cursor-HEAD
+          krb5
+          zstd
+        ]);
+
+      runScript = writeShellScript "anki-wrapper.sh" ''
+        exec ${unpacked}/bin/anki ${lib.strings.escapeShellArgs commandLineArgs} "$@"
+      '';
+
+      extraInstallCommands = ''
+        ln -s ${pname} $out/bin/anki
+
+        mkdir -p $out/share
+        cp -R ${unpacked}/share/applications \
+          ${unpacked}/share/man \
+          ${unpacked}/share/pixmaps \
+          $out/share/
+      '';
+
+      inherit meta passthru;
+    }
+  );
 in
 
-if stdenv.isLinux then fhsEnvAnki
-else stdenv.mkDerivation {
-  inherit pname version passthru;
+if stdenv.isLinux then
+  fhsEnvAnki
+else
+  stdenv.mkDerivation {
+    inherit pname version passthru;
 
-  src = if stdenv.isAarch64 then sources.darwin-aarch64 else sources.darwin-x86_64;
+    src = if stdenv.isAarch64 then sources.darwin-aarch64 else sources.darwin-x86_64;
 
-  nativeBuildInputs = [ undmg ];
-  sourceRoot = ".";
+    nativeBuildInputs = [ undmg ];
+    sourceRoot = ".";
 
-  installPhase = ''
-    mkdir -p $out/Applications/
-    cp -a Anki.app $out/Applications/
-  '';
+    installPhase = ''
+      mkdir -p $out/Applications/
+      cp -a Anki.app $out/Applications/
+    '';
 
-  inherit meta;
-}
+    inherit meta;
+  }
diff --git a/pkgs/games/armagetronad/default.nix b/pkgs/games/armagetronad/default.nix
index fc22e7162f6dd..d4bfba671d659 100644
--- a/pkgs/games/armagetronad/default.nix
+++ b/pkgs/games/armagetronad/default.nix
@@ -191,7 +191,7 @@ let
       meta = with lib; {
         inherit mainProgram;
         homepage = "https://www.armagetronad.org";
-        description = "A multiplayer networked arcade racing game in 3D similar to Tron";
+        description = "Multiplayer networked arcade racing game in 3D similar to Tron";
         maintainers = with maintainers; [ numinit ];
         license = licenses.gpl2Plus;
         platforms = platforms.linux;
diff --git a/pkgs/games/augustus/default.nix b/pkgs/games/augustus/default.nix
index 1ccbd14f5f33a..67ad7b967359d 100644
--- a/pkgs/games/augustus/default.nix
+++ b/pkgs/games/augustus/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ SDL2 SDL2_mixer libpng ];
 
   meta = with lib; {
-    description = "An open source re-implementation of Caesar III. Fork of Julius incorporating gameplay changes";
+    description = "Open source re-implementation of Caesar III. Fork of Julius incorporating gameplay changes";
     mainProgram = "augustus";
     homepage = "https://github.com/Keriew/augustus";
     license = licenses.agpl3Only;
diff --git a/pkgs/games/azimuth/default.nix b/pkgs/games/azimuth/default.nix
index 84d50211dc372..739336733cda2 100644
--- a/pkgs/games/azimuth/default.nix
+++ b/pkgs/games/azimuth/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = {
-    description = "A metroidvania game using only vectorial graphic";
+    description = "Metroidvania game using only vectorial graphic";
     mainProgram = "azimuth";
     longDescription = ''
       Azimuth is a metroidvania game, and something of an homage to the previous
diff --git a/pkgs/games/badlion-client/default.nix b/pkgs/games/badlion-client/default.nix
index 9900551d8cd6d..a162f7e37f788 100644
--- a/pkgs/games/badlion-client/default.nix
+++ b/pkgs/games/badlion-client/default.nix
@@ -22,7 +22,7 @@ in
     '';
 
     meta = with lib; {
-      description = "The Most Complete All-In-One Mod Library for Minecraft with 100+ Mods, FPS Improvements, and more";
+      description = "Most Complete All-In-One Mod Library for Minecraft with 100+ Mods, FPS Improvements, and more";
       homepage = "https://client.badlion.net";
       license = with licenses; [ unfree ];
       maintainers = with maintainers; [];
diff --git a/pkgs/games/black-hole-solver/default.nix b/pkgs/games/black-hole-solver/default.nix
index 1950403e10c68..cab7b2ca6d6bd 100644
--- a/pkgs/games/black-hole-solver/default.nix
+++ b/pkgs/games/black-hole-solver/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A solver for Solitaire variants Golf, Black Hole, and All in a Row";
+    description = "Solver for Solitaire variants Golf, Black Hole, and All in a Row";
     mainProgram = "black-hole-solve";
     homepage = "https://www.shlomifish.org/open-source/projects/black-hole-solitaire-solver/";
     license = licenses.mit;
diff --git a/pkgs/games/blackshades/default.nix b/pkgs/games/blackshades/default.nix
index 7f1cd29c9d548..17bd0e2e96a37 100644
--- a/pkgs/games/blackshades/default.nix
+++ b/pkgs/games/blackshades/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://sr.ht/~cnx/blackshades";
-    description = "A psychic bodyguard FPS";
+    description = "Psychic bodyguard FPS";
     changelog = "https://git.sr.ht/~cnx/blackshades/refs/${finalAttrs.version}";
     mainProgram = "blackshades";
     license = lib.licenses.gpl3Plus;
diff --git a/pkgs/games/blightmud/default.nix b/pkgs/games/blightmud/default.nix
index e62ab24370825..e90b674b5b8a9 100644
--- a/pkgs/games/blightmud/default.nix
+++ b/pkgs/games/blightmud/default.nix
@@ -50,7 +50,7 @@ rustPlatform.buildRustPackage rec {
     builtins.concatStringsSep " " (builtins.map skipFlag skipList);
 
   meta = with lib; {
-    description = "A terminal MUD client written in Rust";
+    description = "Terminal MUD client written in Rust";
     mainProgram = "blightmud";
     longDescription = ''
       Blightmud is a terminal client for connecting to Multi User Dungeon (MUD)
diff --git a/pkgs/games/blobby/default.nix b/pkgs/games/blobby/default.nix
index 27371b905417a..e4afb474b3a48 100644
--- a/pkgs/games/blobby/default.nix
+++ b/pkgs/games/blobby/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A blobby volleyball game";
+    description = "Blobby volleyball game";
     license = licenses.bsd3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ raskin ];
diff --git a/pkgs/games/boohu/default.nix b/pkgs/games/boohu/default.nix
index 6d90106521ad7..0d74d8dbe55c4 100644
--- a/pkgs/games/boohu/default.nix
+++ b/pkgs/games/boohu/default.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "A new coffee-break roguelike game";
+    description = "New coffee-break roguelike game";
     mainProgram = "boohu";
     longDescription = ''
       Break Out Of Hareka's Underground (Boohu) is a roguelike game mainly
diff --git a/pkgs/games/braincurses/default.nix b/pkgs/games/braincurses/default.nix
index bbbc35b412a25..2e3b54cb87101 100644
--- a/pkgs/games/braincurses/default.nix
+++ b/pkgs/games/braincurses/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/bderrly/braincurses";
-    description = "A version of the classic game Mastermind";
+    description = "Version of the classic game Mastermind";
     mainProgram = "braincurses";
     license = licenses.gpl2;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/games/brogue-ce/default.nix b/pkgs/games/brogue-ce/default.nix
index ee2862f9c445a..9d6963eb09ddd 100644
--- a/pkgs/games/brogue-ce/default.nix
+++ b/pkgs/games/brogue-ce/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A community-lead fork of the minimalist roguelike game Brogue";
+    description = "Community-lead fork of the minimalist roguelike game Brogue";
     mainProgram = "brogue-ce";
     homepage = "https://github.com/tmewett/BrogueCE";
     license = licenses.agpl3Plus;
diff --git a/pkgs/games/brogue/default.nix b/pkgs/games/brogue/default.nix
index f502c710afbf6..bf19e6c4225b6 100644
--- a/pkgs/games/brogue/default.nix
+++ b/pkgs/games/brogue/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
   hardeningDisable = [ "stackprotector" "fortify" ];
 
   meta = with lib; {
-    description = "A roguelike game";
+    description = "Roguelike game";
     mainProgram = "brogue";
     homepage = "https://sites.google.com/site/broguegame/";
     license = licenses.agpl3Plus;
diff --git a/pkgs/games/bugdom/default.nix b/pkgs/games/bugdom/default.nix
index 1caa3af8fa0d2..586d92e9d417f 100644
--- a/pkgs/games/bugdom/default.nix
+++ b/pkgs/games/bugdom/default.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A port of Bugdom, a 1999 Macintosh game by Pangea Software, for modern operating systems";
+    description = "Port of Bugdom, a 1999 Macintosh game by Pangea Software, for modern operating systems";
     homepage = "https://github.com/jorio/Bugdom";
     license = with licenses; [ cc-by-sa-40 ];
     maintainers = with maintainers; [ lux ];
diff --git a/pkgs/games/cataclysm-dda/common.nix b/pkgs/games/cataclysm-dda/common.nix
index b2aa2878080b4..f18d2cc37550e 100644
--- a/pkgs/games/cataclysm-dda/common.nix
+++ b/pkgs/games/cataclysm-dda/common.nix
@@ -71,7 +71,7 @@ stdenv.mkDerivation {
   };
 
   meta = with lib; {
-    description = "A free, post apocalyptic, zombie infested rogue-like";
+    description = "Free, post apocalyptic, zombie infested rogue-like";
     mainProgram = "cataclysm-tiles";
     longDescription = ''
       Cataclysm: Dark Days Ahead is a roguelike set in a post-apocalyptic world.
diff --git a/pkgs/games/chessdb/default.nix b/pkgs/games/chessdb/default.nix
index db6214bdf0964..4acfc4d18e3d2 100644
--- a/pkgs/games/chessdb/default.nix
+++ b/pkgs/games/chessdb/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://chessdb.sourceforge.net/";
-    description = "A free chess database";
+    description = "Free chess database";
     platforms = lib.platforms.linux;
   };
 }
diff --git a/pkgs/games/chiaki4deck/default.nix b/pkgs/games/chiaki4deck/default.nix
index 7bdce8d1df421..79757acef9cca 100644
--- a/pkgs/games/chiaki4deck/default.nix
+++ b/pkgs/games/chiaki4deck/default.nix
@@ -35,13 +35,13 @@
 
 stdenv.mkDerivation rec {
   pname = "chiaki4deck";
-  version = "1.7.0";
+  version = "1.7.2";
 
   src = fetchFromGitHub {
     owner = "streetpea";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-gJafzBryuGDU8ke3JTKkQdSEND+btSZ93Ei7ZRsqchg=";
+    hash = "sha256-gh+ZOsAOi5mKZjs7B1xh07vatoD8F2j2HVxOT/fKDEo=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/games/chromium-bsu/default.nix b/pkgs/games/chromium-bsu/default.nix
index cd403c704e582..f3dfb41c77924 100644
--- a/pkgs/games/chromium-bsu/default.nix
+++ b/pkgs/games/chromium-bsu/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://chromium-bsu.sourceforge.net/";
-    description = "A fast paced, arcade-style, top-scrolling space shooter";
+    description = "Fast paced, arcade-style, top-scrolling space shooter";
     mainProgram = "chromium-bsu";
     license = licenses.artistic1;
     maintainers = with maintainers; [ AndersonTorres ];
diff --git a/pkgs/games/classicube/default.nix b/pkgs/games/classicube/default.nix
index c6805cc58343d..d0c7fd79475a8 100644
--- a/pkgs/games/classicube/default.nix
+++ b/pkgs/games/classicube/default.nix
@@ -93,7 +93,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.classicube.net/";
-    description = "A lightweight, custom Minecraft Classic/ClassiCube client with optional additions written from scratch in C";
+    description = "Lightweight, custom Minecraft Classic/ClassiCube client with optional additions written from scratch in C";
     license = licenses.bsd3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ _360ied ];
diff --git a/pkgs/games/cockatrice/default.nix b/pkgs/games/cockatrice/default.nix
index 0d8b925faa2bb..2f268409d8925 100644
--- a/pkgs/games/cockatrice/default.nix
+++ b/pkgs/games/cockatrice/default.nix
@@ -21,7 +21,7 @@ mkDerivation rec {
 
   meta = {
     homepage = "https://github.com/Cockatrice/Cockatrice";
-    description = "A cross-platform virtual tabletop for multiplayer card games";
+    description = "Cross-platform virtual tabletop for multiplayer card games";
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ evanjs ];
     platforms = with lib.platforms; linux;
diff --git a/pkgs/games/colobot/default.nix b/pkgs/games/colobot/default.nix
index 90018acd50d5a..58edbea1881b8 100644
--- a/pkgs/games/colobot/default.nix
+++ b/pkgs/games/colobot/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, boost, SDL2, SDL2_image, SDL2_ttf, libpng
+{ lib, stdenv, fetchFromGitHub, cmake, boost, SDL2, SDL2_image, SDL2_ttf, libpng
 , glew, gettext, libsndfile, libvorbis, libogg, physfs, openal
 , xmlstarlet, doxygen, python3, callPackage }:
 
diff --git a/pkgs/games/corsix-th/darwin-cmake-no-fixup-bundle.patch b/pkgs/games/corsix-th/darwin-cmake-no-fixup-bundle.patch
new file mode 100644
index 0000000000000..170554ce9f2f0
--- /dev/null
+++ b/pkgs/games/corsix-th/darwin-cmake-no-fixup-bundle.patch
@@ -0,0 +1,12 @@
+diff --git a/CorsixTH/CMakeLists.txt b/CorsixTH/CMakeLists.txt
+index 85856df3..f0f08277 100644
+--- a/CorsixTH/CMakeLists.txt
++++ b/CorsixTH/CMakeLists.txt
+@@ -293,7 +293,6 @@ if(NOT USE_SOURCE_DATADIRS)
+     install(CODE "
+       INCLUDE(BundleUtilities)
+       SET(BU_CHMOD_BUNDLE_ITEMS ON)
+-      FIXUP_BUNDLE(\"${CMAKE_INSTALL_PREFIX}/CorsixTH.app\" \"\" \"\")
+       ")
+     if(WITH_LUAROCKS)
+       install(CODE "execute_process(
diff --git a/pkgs/games/corsix-th/default.nix b/pkgs/games/corsix-th/default.nix
index 04cfd263c9ee9..f55a9a20b3281 100644
--- a/pkgs/games/corsix-th/default.nix
+++ b/pkgs/games/corsix-th/default.nix
@@ -10,9 +10,15 @@
 , SDL2
 , SDL2_mixer
 , timidity
+# Darwin dependencies
+, libiconv
+, Cocoa
+, CoreVideo
+# Update
+, nix-update-script
 }:
 
-stdenv.mkDerivation (finalAttrs: {
+stdenv.mkDerivation(finalAttrs: {
   pname = "corsix-th";
   version = "0.67";
 
@@ -23,23 +29,50 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-WA/VJqHXzBfVUBNtxCVsGBRzSRQ0pvDvAy03ntc0KZE=";
   };
 
-  luaEnv = lua.withPackages(p: with p; [ luafilesystem lpeg luasec luasocket ]);
+  patches = [
+    ./darwin-cmake-no-fixup-bundle.patch
+  ];
+
   nativeBuildInputs = [ cmake doxygen makeWrapper ];
-  buildInputs = [ ffmpeg freetype lua finalAttrs.luaEnv SDL2 SDL2_mixer timidity ];
+
+  buildInputs = let
+    luaEnv = lua.withPackages(p: with p; [ luafilesystem lpeg luasec luasocket ]);
+  in [
+    ffmpeg
+    freetype
+    lua
+    luaEnv
+    SDL2
+    SDL2_mixer
+    timidity
+  ] ++ lib.optionals stdenv.isDarwin [
+    libiconv
+    Cocoa
+    CoreVideo
+  ];
+
   cmakeFlags = [ "-Wno-dev" ];
 
-  postInstall = ''
+  postInstall = lib.optionalString stdenv.isLinux ''
     wrapProgram $out/bin/corsix-th \
     --set LUA_PATH "$LUA_PATH" \
     --set LUA_CPATH "$LUA_CPATH"
+  '' + lib.optionalString stdenv.isDarwin ''
+    mkdir -p $out/Applications
+    mv $out/CorsixTH.app $out/Applications
+    wrapProgram $out/Applications/CorsixTH.app/Contents/MacOS/CorsixTH \
+      --set LUA_PATH "$LUA_PATH" \
+      --set LUA_CPATH "$LUA_CPATH"
   '';
 
+  passthru.updateScript = nix-update-script { };
+
   meta = with lib; {
-    description = "A reimplementation of the 1997 Bullfrog business sim Theme Hospital";
+    description = "Reimplementation of the 1997 Bullfrog business sim Theme Hospital";
     mainProgram = "corsix-th";
     homepage = "https://corsixth.com/";
     license = licenses.mit;
-    maintainers = with maintainers; [ hughobrien ];
-    platforms = platforms.linux;
+    maintainers = with maintainers; [ hughobrien matteopacini ];
+    platforms = platforms.linux ++ platforms.darwin;
   };
 })
diff --git a/pkgs/games/crack-attack/default.nix b/pkgs/games/crack-attack/default.nix
index 71e15f562d459..4f037f72a38ca 100644
--- a/pkgs/games/crack-attack/default.nix
+++ b/pkgs/games/crack-attack/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = {
-    description = "A fast-paced puzzle game inspired by the classic Super NES title Tetris Attack!";
+    description = "Fast-paced puzzle game inspired by the classic Super NES title Tetris Attack!";
     mainProgram = "crack-attack";
     homepage = "https://www.nongnu.org/crack-attack/";
     license = lib.licenses.gpl2;
diff --git a/pkgs/games/crawl/default.nix b/pkgs/games/crawl/default.nix
index 37dd788d82965..e32fb5fa60d6b 100644
--- a/pkgs/games/crawl/default.nix
+++ b/pkgs/games/crawl/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , which
 , sqlite
 , lua5_1
diff --git a/pkgs/games/crrcsim/default.nix b/pkgs/games/crrcsim/default.nix
index 447b1e75d6f73..0ad930ca26cbb 100644
--- a/pkgs/games/crrcsim/default.nix
+++ b/pkgs/games/crrcsim/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    description = "A model-airplane flight simulator";
+    description = "Model-airplane flight simulator";
     mainProgram = "crrcsim";
     maintainers = with lib.maintainers; [ raskin ];
     platforms = [ "i686-linux" "x86_64-linux" ];
diff --git a/pkgs/games/curseofwar/default.nix b/pkgs/games/curseofwar/default.nix
index c0accf1e7b649..448d8fb7ae2c4 100644
--- a/pkgs/games/curseofwar/default.nix
+++ b/pkgs/games/curseofwar/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A fast-paced action strategy game";
+    description = "Fast-paced action strategy game";
     homepage = "https://a-nikolaev.github.io/curseofwar/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ fgaz ];
diff --git a/pkgs/games/darkplaces/default.nix b/pkgs/games/darkplaces/default.nix
index 876e0025976fc..6ea4ae241d5a9 100644
--- a/pkgs/games/darkplaces/default.nix
+++ b/pkgs/games/darkplaces/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.icculus.org/twilight/darkplaces/";
-    description = "A quake 1 engine implementation by LadyHavoc";
+    description = "Quake 1 engine implementation by LadyHavoc";
     longDescription = ''
       A game engine based on the Quake 1 engine by id Software.
       It improves and builds upon the original 1996 engine by adding modern
diff --git a/pkgs/games/ddnet/default.nix b/pkgs/games/ddnet/default.nix
index e21325198de24..84ecbf4e91cf2 100644
--- a/pkgs/games/ddnet/default.nix
+++ b/pkgs/games/ddnet/default.nix
@@ -114,7 +114,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Teeworlds modification with a unique cooperative gameplay";
+    description = "Teeworlds modification with a unique cooperative gameplay";
     longDescription = ''
       DDraceNetwork (DDNet) is an actively maintained version of DDRace,
       a Teeworlds modification with a unique cooperative gameplay.
diff --git a/pkgs/games/domination/default.nix b/pkgs/games/domination/default.nix
index 8bf1c2a9ec313..d1647eb6a46a1 100644
--- a/pkgs/games/domination/default.nix
+++ b/pkgs/games/domination/default.nix
@@ -26,7 +26,7 @@ let
 
 in stdenv.mkDerivation {
   pname = "domination";
-  version = "1.2.9";
+  version = "1.3.1";
 
   # The .zip releases do not contain the build.xml file
   src = fetchsvn {
@@ -34,8 +34,8 @@ in stdenv.mkDerivation {
     # There are no tags in the repository.
     # Look for commits like "new version x.y.z info on website"
     # or "website update for x.y.z".
-    rev = "2470";
-    hash = "sha256-ghq7EGg++mTOzA3ASzXhk97fzy5/n9vyaRzxp12X3/4=";
+    rev = "2538";
+    hash = "sha256-wsLBHkQc1SW+PToyCXIek6qRrRga2nLLkM+5msrnsBo=";
   };
 
   nativeBuildInputs = [
@@ -90,7 +90,7 @@ in stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://domination.sourceforge.net/";
     downloadPage = "https://domination.sourceforge.net/download.shtml";
-    description = "A game that is a bit like the board game Risk or RisiKo";
+    description = "Game that is a bit like the board game Risk or RisiKo";
     longDescription = ''
       Domination is a game that is a bit like the well known board game of Risk
       or RisiKo. It has many game options and includes many maps.
diff --git a/pkgs/games/doom-ports/chocolate-doom/default.nix b/pkgs/games/doom-ports/chocolate-doom/default.nix
index 4bd3944a42241..10b96eb905628 100644
--- a/pkgs/games/doom-ports/chocolate-doom/default.nix
+++ b/pkgs/games/doom-ports/chocolate-doom/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://chocolate-doom.org/";
-    description = "A Doom source port that accurately reproduces the experience of Doom as it was played in the 1990s";
+    description = "Doom source port that accurately reproduces the experience of Doom as it was played in the 1990s";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.unix;
     hydraPlatforms = lib.platforms.linux; # darwin times out
diff --git a/pkgs/games/doom-ports/crispy-doom/default.nix b/pkgs/games/doom-ports/crispy-doom/default.nix
index a4a0fc08730d9..299c299d48e90 100644
--- a/pkgs/games/doom-ports/crispy-doom/default.nix
+++ b/pkgs/games/doom-ports/crispy-doom/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://fabiangreffrath.github.io/crispy-doom";
-    description = "A limit-removing enhanced-resolution Doom source port based on Chocolate Doom";
+    description = "Limit-removing enhanced-resolution Doom source port based on Chocolate Doom";
     longDescription = ''
       Crispy Doom is a limit-removing enhanced-resolution Doom source port based on Chocolate Doom.
       Its name means that 640x400 looks \"crisp\" and is also a slight reference to its origin.
diff --git a/pkgs/games/doom-ports/doomretro/default.nix b/pkgs/games/doom-ports/doomretro/default.nix
index 4b016d78582a6..794f3c7194ff7 100644
--- a/pkgs/games/doom-ports/doomretro/default.nix
+++ b/pkgs/games/doom-ports/doomretro/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://www.doomretro.com/";
-    description = "A classic, refined DOOM source port";
+    description = "Classic, refined DOOM source port";
     mainProgram = "doomretro";
     longDescription = ''
       DOOM Retro is the classic, refined DOOM source port for Windows PC. It
diff --git a/pkgs/games/doom-ports/eureka-editor/default.nix b/pkgs/games/doom-ports/eureka-editor/default.nix
index 2d547f959048b..6f1752d109740 100644
--- a/pkgs/games/doom-ports/eureka-editor/default.nix
+++ b/pkgs/games/doom-ports/eureka-editor/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://eureka-editor.sourceforge.net";
-    description = "A map editor for the classic DOOM games, and a few related games such as Heretic and Hexen";
+    description = "Map editor for the classic DOOM games, and a few related games such as Heretic and Hexen";
     mainProgram = "eureka";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
diff --git a/pkgs/games/doom-ports/odamex/default.nix b/pkgs/games/doom-ports/odamex/default.nix
index cc1862b0b3715..095c92891502c 100644
--- a/pkgs/games/doom-ports/odamex/default.nix
+++ b/pkgs/games/doom-ports/odamex/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://odamex.net/";
-    description = "A client/server port for playing old-school Doom online";
+    description = "Client/server port for playing old-school Doom online";
     license = lib.licenses.gpl2Only;
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [ ];
diff --git a/pkgs/games/doom-ports/prboom-plus/default.nix b/pkgs/games/doom-ports/prboom-plus/default.nix
index 2d9be1073fa39..f4723eb82ec8f 100644
--- a/pkgs/games/doom-ports/prboom-plus/default.nix
+++ b/pkgs/games/doom-ports/prboom-plus/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/coelckers/prboom-plus";
-    description = "An advanced, Vanilla-compatible Doom engine based on PrBoom";
+    description = "Advanced, Vanilla-compatible Doom engine based on PrBoom";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.ashley ];
diff --git a/pkgs/games/doom-ports/zandronum/sqlite.nix b/pkgs/games/doom-ports/zandronum/sqlite.nix
index 67dbb84f515a8..e6c8585cb541a 100644
--- a/pkgs/games/doom-ports/zandronum/sqlite.nix
+++ b/pkgs/games/doom-ports/zandronum/sqlite.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "http://www.sqlite.org/";
-    description = "A single C code file, named sqlite3.c, that contains all C code for the core SQLite library and the FTS3 and RTREE extensions";
+    description = "Single C code file, named sqlite3.c, that contains all C code for the core SQLite library and the FTS3 and RTREE extensions";
     platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.lassulus ];
   };
diff --git a/pkgs/games/dwarf-fortress/game.nix b/pkgs/games/dwarf-fortress/game.nix
index 9cf7847d14893..6e8467e55df9b 100644
--- a/pkgs/games/dwarf-fortress/game.nix
+++ b/pkgs/games/dwarf-fortress/game.nix
@@ -160,7 +160,7 @@ stdenv.mkDerivation {
   };
 
   meta = {
-    description = "A single-player fantasy game with a randomly generated adventure world";
+    description = "Single-player fantasy game with a randomly generated adventure world";
     homepage = "https://www.bay12games.com/dwarves/";
     license = licenses.unfreeRedistributable;
     platforms = attrNames platforms;
diff --git a/pkgs/games/dwarf-fortress/lazy-pack.nix b/pkgs/games/dwarf-fortress/lazy-pack.nix
index d472924845618..c94a46f04d9ef 100644
--- a/pkgs/games/dwarf-fortress/lazy-pack.nix
+++ b/pkgs/games/dwarf-fortress/lazy-pack.nix
@@ -57,7 +57,7 @@ buildEnv {
 
   meta = {
     inherit mainProgram;
-    description = "An opinionated wrapper for Dwarf Fortress";
+    description = "Opinionated wrapper for Dwarf Fortress";
     maintainers = with maintainers; [ Baughn numinit ];
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/games/dwarf-fortress/legends-browser/default.nix b/pkgs/games/dwarf-fortress/legends-browser/default.nix
index 3484db0cc8ff5..3920c1f4693e9 100644
--- a/pkgs/games/dwarf-fortress/legends-browser/default.nix
+++ b/pkgs/games/dwarf-fortress/legends-browser/default.nix
@@ -27,7 +27,7 @@ buildEnv {
   paths = [ script ];
 
   meta = with lib; {
-    description = "A multi-platform, open source, java-based legends viewer for dwarf fortress";
+    description = "Multi-platform, open source, java-based legends viewer for dwarf fortress";
     maintainers = with maintainers; [ Baughn ];
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.mit;
diff --git a/pkgs/games/dwarf-fortress/twbt/default.nix b/pkgs/games/dwarf-fortress/twbt/default.nix
index 0ccb859b5be32..82b03dd1e0d72 100644
--- a/pkgs/games/dwarf-fortress/twbt/default.nix
+++ b/pkgs/games/dwarf-fortress/twbt/default.nix
@@ -86,7 +86,7 @@ stdenvNoCC.mkDerivation rec {
   };
 
   meta = {
-    description = "A plugin for Dwarf Fortress / DFHack that improves various aspects of the game interface";
+    description = "Plugin for Dwarf Fortress / DFHack that improves various aspects of the game interface";
     maintainers = with maintainers; [ Baughn numinit ];
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/games/dxx-rebirth/default.nix b/pkgs/games/dxx-rebirth/default.nix
index d69a4c6adc022..9ca1a591cf4a6 100644
--- a/pkgs/games/dxx-rebirth/default.nix
+++ b/pkgs/games/dxx-rebirth/default.nix
@@ -1,7 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
 , fetchurl
-, fetchpatch
 , scons
 , pkg-config
 , SDL2
diff --git a/pkgs/games/eidolon/default.nix b/pkgs/games/eidolon/default.nix
index fbb5d86deb914..d79fdb4b4af07 100644
--- a/pkgs/games/eidolon/default.nix
+++ b/pkgs/games/eidolon/default.nix
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A single TUI-based registry for drm-free, wine and steam games on linux, accessed through a rofi launch menu";
+    description = "Single TUI-based registry for drm-free, wine and steam games on linux, accessed through a rofi launch menu";
     mainProgram = "eidolon";
     homepage = "https://github.com/nicohman/eidolon";
     license = licenses.gpl3Only;
diff --git a/pkgs/games/empty-epsilon/default.nix b/pkgs/games/empty-epsilon/default.nix
index 20f4f5855a35a..657607031295a 100644
--- a/pkgs/games/empty-epsilon/default.nix
+++ b/pkgs/games/empty-epsilon/default.nix
@@ -1,11 +1,11 @@
-{ lib, stdenv, fetchFromGitHub, cmake, sfml, libX11, glew, python3, fetchpatch, applyPatches, glm, meshoptimizer, SDL2, ninja}:
+{ lib, stdenv, fetchFromGitHub, cmake, sfml, libX11, glew, python3, glm, meshoptimizer, SDL2, ninja}:
 
 let
 
-  major = "2023";
-  minor = "06";
-  patch.seriousproton = "17";
-  patch.emptyepsilon = "17";
+  major = "2024";
+  minor = "05";
+  patch.seriousproton = "16";
+  patch.emptyepsilon = "16";
 
   version.seriousproton = "${major}.${minor}.${patch.seriousproton}";
   version.emptyepsilon = "${major}.${minor}.${patch.emptyepsilon}";
@@ -26,7 +26,7 @@ let
       owner = "daid";
       repo = "SeriousProton";
       rev = "EE-${version.seriousproton}";
-      sha256 = "sha256-5ifYb5dX8ihQmJB1RHyzMsZJeXZ+m27JmA+W+XA/XwI=";
+      sha256 = "sha256-0gCwWvx7ceJG3VmVVufRkwreuHn41pl7jHsJXzNwqaE=";
     };
 
     nativeBuildInputs = [ cmake ];
@@ -56,7 +56,7 @@ stdenv.mkDerivation {
     owner = "daid";
     repo = "EmptyEpsilon";
     rev = "EE-${version.emptyepsilon}";
-    sha256 = "sha256-zuXbCBlv6URndbB0aA+3bli0cSeUBf3LT/7/jcPITnc=";
+    sha256 = "sha256-pLnyzahGEPb2cEwH89RE5Jq8UHIoDWXatmDWdeZ+rqo=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/games/endgame-singularity/default.nix b/pkgs/games/endgame-singularity/default.nix
index 57766c2e8446d..fb68885b936ff 100644
--- a/pkgs/games/endgame-singularity/default.nix
+++ b/pkgs/games/endgame-singularity/default.nix
@@ -41,7 +41,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = {
     homepage = "http://www.emhsoft.com/singularity/";
-    description = "A simulation game about strong AI";
+    description = "Simulation game about strong AI";
     longDescription = ''
       A simulation of a true AI. Go from computer to computer, pursued by the
       entire world. Keep hidden, and you might have a chance
diff --git a/pkgs/games/endless-sky/default.nix b/pkgs/games/endless-sky/default.nix
index 7648bbd9b7716..9a76a78cdb4c3 100644
--- a/pkgs/games/endless-sky/default.nix
+++ b/pkgs/games/endless-sky/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
   prefixKey = "PREFIX=";
 
   meta = with lib; {
-    description = "A sandbox-style space exploration game similar to Elite, Escape Velocity, or Star Control";
+    description = "Sandbox-style space exploration game similar to Elite, Escape Velocity, or Star Control";
     mainProgram = "endless-sky";
     homepage = "https://endless-sky.github.io/";
     license = with licenses; [
diff --git a/pkgs/games/ezquake/default.nix b/pkgs/games/ezquake/default.nix
index 46efa6c7b9827..202102bb38ed3 100644
--- a/pkgs/games/ezquake/default.nix
+++ b/pkgs/games/ezquake/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://ezquake.com/";
-    description = "A modern QuakeWorld client focused on competitive online play";
+    description = "Modern QuakeWorld client focused on competitive online play";
     mainProgram = "ezquake";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/games/factorio/default.nix b/pkgs/games/factorio/default.nix
index d5190aa1d9458..aff5d11b3021b 100644
--- a/pkgs/games/factorio/default.nix
+++ b/pkgs/games/factorio/default.nix
@@ -181,7 +181,7 @@ let
       ] else null;
 
     meta = {
-      description = "A game in which you build and maintain factories";
+      description = "Game in which you build and maintain factories";
       longDescription = ''
         Factorio is a game in which you build and maintain factories.
 
diff --git a/pkgs/games/fairymax/default.nix b/pkgs/games/fairymax/default.nix
index 79468b320811e..9ea9d7df974dd 100644
--- a/pkgs/games/fairymax/default.nix
+++ b/pkgs/games/fairymax/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://home.hccnet.nl/h.g.muller/dwnldpage.html";
-    description = "A small chess engine supporting fairy pieces";
+    description = "Small chess engine supporting fairy pieces";
     mainProgram = "fairymax";
     longDescription = ''
        A version of micro-Max that reads the piece description from a file
diff --git a/pkgs/games/fallout-ce/fallout-ce.nix b/pkgs/games/fallout-ce/fallout-ce.nix
index 2f229fdf73801..2053738d1df27 100644
--- a/pkgs/games/fallout-ce/fallout-ce.nix
+++ b/pkgs/games/fallout-ce/fallout-ce.nix
@@ -14,7 +14,7 @@ callPackage ./build.nix rec {
   };
 
   extraMeta = {
-    description = "A fully working re-implementation of Fallout, with the same original gameplay, engine bugfixes, and some quality of life improvements";
+    description = "Fully working re-implementation of Fallout, with the same original gameplay, engine bugfixes, and some quality of life improvements";
     homepage = "https://github.com/alexbatalov/fallout1-ce";
   };
 }
diff --git a/pkgs/games/fallout-ce/fallout2-ce.nix b/pkgs/games/fallout-ce/fallout2-ce.nix
index 6d665c96a0e2d..b9d41ad994c24 100644
--- a/pkgs/games/fallout-ce/fallout2-ce.nix
+++ b/pkgs/games/fallout-ce/fallout2-ce.nix
@@ -17,7 +17,7 @@ callPackage ./build.nix rec {
   extraBuildInputs = [ zlib ];
 
   extraMeta = {
-    description = "A fully working re-implementation of Fallout 2, with the same original gameplay, engine bugfixes, and some quality of life improvements";
+    description = "Fully working re-implementation of Fallout 2, with the same original gameplay, engine bugfixes, and some quality of life improvements";
     homepage = "https://github.com/alexbatalov/fallout2-ce";
   };
 }
diff --git a/pkgs/games/ferium/default.nix b/pkgs/games/ferium/default.nix
index f5958fec86718..ea9a092d2ccb4 100644
--- a/pkgs/games/ferium/default.nix
+++ b/pkgs/games/ferium/default.nix
@@ -9,18 +9,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ferium";
-  version = "4.5.2";
+  version = "4.7.0";
 
   src = fetchFromGitHub {
     owner = "gorilla-devs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-tYRs6HfFTdUZqWal9pLZ0uUNCPr3+zQz5JV2ohOLIP8=";
+    hash = "sha256-jj3BdaxH7ofhHNF2eu+burn6+/0bPQQZ8JfjXAFyN4A=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
 
-  cargoHash = "sha256-5ClBS42hWw3ULEG1Qn+fiM6dvJ+xS4Dusy3BCj5Cvbg=";
+  cargoHash = "sha256-dysKHi6CqPrF/q7LPn1+TwOP3p2KwauhTuqLCda3OSs=";
 
   # Disable the GUI file picker so that GTK/XDG dependencies aren't used
   buildNoDefaultFeatures = true;
diff --git a/pkgs/games/fheroes2/default.nix b/pkgs/games/fheroes2/default.nix
index bc96eb5cfcc35..0508fda010930 100644
--- a/pkgs/games/fheroes2/default.nix
+++ b/pkgs/games/fheroes2/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fheroes2";
-  version = "1.0.13";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "ihhub";
     repo = "fheroes2";
     rev = version;
-    hash = "sha256-uR46G1DISurBk17GQdo+x94F2cP0+157PxjdG2s1Ik4=";
+    hash = "sha256-a4IZX0aq2iXLPKTVRWxkr50vhCEqAMUA0z50rOpEIjU=";
   };
 
   nativeBuildInputs = [ imagemagick ];
diff --git a/pkgs/games/fish-fillets-ng/default.nix b/pkgs/games/fish-fillets-ng/default.nix
index 3b83f732df747..dc2d01ec9e94a 100644
--- a/pkgs/games/fish-fillets-ng/default.nix
+++ b/pkgs/games/fish-fillets-ng/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A puzzle game";
+    description = "Puzzle game";
     mainProgram = "fillets";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ raskin ];
diff --git a/pkgs/games/fltrator/default.nix b/pkgs/games/fltrator/default.nix
index b1a2bb6b8c0dd..a228471f16236 100644
--- a/pkgs/games/fltrator/default.nix
+++ b/pkgs/games/fltrator/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple retro style arcade side-scroller game";
+    description = "Simple retro style arcade side-scroller game";
     longDescription = '' FLTrator is a simple retro style arcade side-scroller game in which you steer a spaceship through a landscape with hostile rockets and other obstacles.
     It has ten different levels and a level editor to create new levels or modify the existing.''; # from https://libregamewiki.org/FLTrator
     homepage = "https://fltrator.sourceforge.net/";
diff --git a/pkgs/games/forge-mtg/default.nix b/pkgs/games/forge-mtg/default.nix
index cc5c56977bb98..8ca1675591ee3 100644
--- a/pkgs/games/forge-mtg/default.nix
+++ b/pkgs/games/forge-mtg/default.nix
@@ -25,10 +25,10 @@ maven.buildMavenPackage {
   pname = "forge-mtg";
   inherit version src patches;
 
-  # Tests need a running Xorg.
-  mvnParameters = "-DskipTests";
   mvnHash = "sha256-QK9g0tG75lIhEtf4jW03N32YbD9Fe5iI0JTuqmCTtnE=";
 
+  doCheck = false; # Needs a running Xorg
+
   nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
diff --git a/pkgs/games/freedink/default.nix b/pkgs/games/freedink/default.nix
index ecdcbb7dce69a..5f03f084dd77f 100644
--- a/pkgs/games/freedink/default.nix
+++ b/pkgs/games/freedink/default.nix
@@ -45,7 +45,7 @@ in stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = {
-    description = "A free, portable and enhanced version of the Dink Smallwood game engine";
+    description = "Free, portable and enhanced version of the Dink Smallwood game engine";
 
     longDescription = ''
       GNU FreeDink is a new and portable version of the Dink Smallwood
diff --git a/pkgs/games/freedroid/default.nix b/pkgs/games/freedroid/default.nix
index ab7c36ba5d5a3..a3aba73131117 100644
--- a/pkgs/games/freedroid/default.nix
+++ b/pkgs/games/freedroid/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   }) ];
 
   meta = with lib; {
-    description = "A clone of the classic game 'Paradroid' on Commodore 64";
+    description = "Clone of the classic game 'Paradroid' on Commodore 64";
     mainProgram = "freedroid";
     homepage    = "https://github.com/ReinhardPrix/FreedroidClassic";
     license     = licenses.gpl2Only;
diff --git a/pkgs/games/freeorion/default.nix b/pkgs/games/freeorion/default.nix
index 204223e6094dd..5db18d9a04c95 100644
--- a/pkgs/games/freeorion/default.nix
+++ b/pkgs/games/freeorion/default.nix
@@ -78,7 +78,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A free, open source, turn-based space empire and galactic conquest (4X) computer game";
+    description = "Free, open source, turn-based space empire and galactic conquest (4X) computer game";
     homepage = "https://www.freeorion.org/";
     license = with licenses; [ gpl2 cc-by-sa-30 ];
     platforms = platforms.linux;
diff --git a/pkgs/games/freesweep/default.nix b/pkgs/games/freesweep/default.nix
index 8add760f930b7..99130d9d036a2 100644
--- a/pkgs/games/freesweep/default.nix
+++ b/pkgs/games/freesweep/default.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, fetchpatch, ncurses, lib, stdenv
+{ fetchFromGitHub, ncurses, lib, stdenv
 , updateAutotoolsGnuConfigScriptsHook, installShellFiles }:
 
 stdenv.mkDerivation rec {
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A console minesweeper-style game written in C for Unix-like systems";
+    description = "Console minesweeper-style game written in C for Unix-like systems";
     mainProgram = "freesweep";
     homepage = "https://github.com/rwestlund/freesweep";
     license = licenses.gpl2;
diff --git a/pkgs/games/frotz/default.nix b/pkgs/games/frotz/default.nix
index af9efd96318f3..80aa8055dc35d 100644
--- a/pkgs/games/frotz/default.nix
+++ b/pkgs/games/frotz/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://davidgriffith.gitlab.io/frotz/";
     changelog = "https://gitlab.com/DavidGriffith/frotz/-/raw/${version}/NEWS";
-    description = "A z-machine interpreter for Infocom games and other interactive fiction";
+    description = "Z-machine interpreter for Infocom games and other interactive fiction";
     mainProgram = "frotz";
     platforms = platforms.unix;
     maintainers = with maintainers; [ nicknovitski ddelabru ];
diff --git a/pkgs/games/fteqw/default.nix b/pkgs/games/fteqw/default.nix
index c4129d3974d62..1e9a0b0967612 100644
--- a/pkgs/games/fteqw/default.nix
+++ b/pkgs/games/fteqw/default.nix
@@ -54,7 +54,7 @@
         --add-needed ${vulkan-loader}/lib/libvulkan.so
     '';
 
-    description = "A hybrid and versatile game engine";
+    description = "Hybrid and versatile game engine";
   } // attrs);
 
   fteqw-dedicated = import ./generic.nix (rec {
diff --git a/pkgs/games/gamepad-tool/default.nix b/pkgs/games/gamepad-tool/default.nix
index 11da7ab16d528..4e7b03bdb4afb 100644
--- a/pkgs/games/gamepad-tool/default.nix
+++ b/pkgs/games/gamepad-tool/default.nix
@@ -37,7 +37,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A simple GUI tool to create/modify gamepad mappings for games that use SDL2 Game Controller API";
+    description = "Simple GUI tool to create/modify gamepad mappings for games that use SDL2 Game Controller API";
     homepage = "https://generalarcade.com/gamepadtool/";
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/games/gcompris/default.nix b/pkgs/games/gcompris/default.nix
index c6e16da0280c4..6b5168fa8c5a1 100644
--- a/pkgs/games/gcompris/default.nix
+++ b/pkgs/games/gcompris/default.nix
@@ -16,22 +16,24 @@
 , qtsensors
 , qttools
 , qtxmlpatterns
+, extra-cmake-modules
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gcompris";
-  version = "4.0";
+  version = "4.1";
 
   src = fetchurl {
-    url = "mirror://kde/stable/gcompris/qt/src/gcompris-qt-${version}.tar.xz";
-    hash = "sha256-wcTqnK7ESv+jWHr5asedlkQ5rZV9iV4PLS8yQkvuDrY=";
+    url = "mirror://kde/stable/gcompris/qt/src/gcompris-qt-${finalAttrs.version}.tar.xz";
+    hash = "sha256-Pz0cOyBfiexKHUsHXm18Zw2FKu7b7vVuwy4Vu4daBoU=";
   };
 
   cmakeFlags = [
-    "-DQML_BOX2D_LIBRARY=${qmlbox2d}/${qtbase.qtQmlPrefix}/Box2D.2.1"
+    (lib.cmakeFeature "QML_BOX2D_LIBRARY" "${qmlbox2d}/${qtbase.qtQmlPrefix}/Box2D.2.1")
+    (lib.cmakeBool "BUILD_TESTING" (finalAttrs.doCheck or false))
   ];
 
-  nativeBuildInputs = [ cmake gettext ninja qttools wrapQtAppsHook ];
+  nativeBuildInputs = [ cmake extra-cmake-modules gettext ninja qttools wrapQtAppsHook ];
 
   buildInputs = [
     qmlbox2d
@@ -51,19 +53,20 @@ stdenv.mkDerivation rec {
   ]);
 
   postInstall = ''
-    install -Dm444 ../org.kde.gcompris.desktop     -t $out/share/applications
     install -Dm444 ../org.kde.gcompris.appdata.xml -t $out/share/metainfo
-    install -Dm444 ../images/256-apps-gcompris-qt.png $out/share/icons/hicolor/256x256/apps/gcompris-qt.png
 
     qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
   '';
 
+  # we need a graphical environment for the tests
+  doCheck = false;
+
   meta = with lib; {
-    description = "A high quality educational software suite, including a large number of activities for children aged 2 to 10";
+    description = "High quality educational software suite, including a large number of activities for children aged 2 to 10";
     homepage = "https://gcompris.net/";
     license = licenses.gpl3Plus;
     mainProgram = "gcompris-qt";
     maintainers = with maintainers; [ guibou ];
     platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/games/gemrb/default.nix b/pkgs/games/gemrb/default.nix
index 7768ccf762534..a28bb8d0cc009 100644
--- a/pkgs/games/gemrb/default.nix
+++ b/pkgs/games/gemrb/default.nix
@@ -75,7 +75,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A reimplementation of the Infinity Engine, used by games such as Baldur's Gate";
+    description = "Reimplementation of the Infinity Engine, used by games such as Baldur's Gate";
     longDescription = ''
       GemRB (Game engine made with pre-Rendered Background) is a portable
       open-source implementation of Bioware's Infinity Engine. It was written to
diff --git a/pkgs/games/gl-117/default.nix b/pkgs/games/gl-117/default.nix
index 493ca986d9c24..9e56ec4cfccdd 100644
--- a/pkgs/games/gl-117/default.nix
+++ b/pkgs/games/gl-117/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libGLU libGL SDL freeglut SDL_mixer libtool ];
 
   meta = with lib; {
-    description = "An air combat simulator";
+    description = "Air combat simulator";
     mainProgram = "gl-117";
     homepage = "https://sourceforge.net/projects/gl-117";
     maintainers = with maintainers; [ raskin ];
diff --git a/pkgs/games/gl-gsync-demo/default.nix b/pkgs/games/gl-gsync-demo/default.nix
index 2027b9d3b27ec..a776a1b13dff9 100644
--- a/pkgs/games/gl-gsync-demo/default.nix
+++ b/pkgs/games/gl-gsync-demo/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     license = with licenses; mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ atemu ];
-    description = "A very basic OpenGL demo for testing NVIDIA's G-SYNC technology on Linux";
+    description = "Very basic OpenGL demo for testing NVIDIA's G-SYNC technology on Linux";
     mainProgram = "gl-gsync-demo";
     longDescription = ''
       The demo simply draws a vertical bar moving across the screen at constant speed, but deliberately rendered at a variable frame rate.
diff --git a/pkgs/games/gnujump/default.nix b/pkgs/games/gnujump/default.nix
index 10750f84da680..a9806cf81f8d4 100644
--- a/pkgs/games/gnujump/default.nix
+++ b/pkgs/games/gnujump/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://jump.gnu.sinusoid.es/index.php?title=Main_Page";
-    description = "A clone of the simple yet addictive game Xjump";
+    description = "Clone of the simple yet addictive game Xjump";
     mainProgram = "gnujump";
     longDescription = ''
       The goal in this game is to jump to the next floor trying not to fall
diff --git a/pkgs/games/gogdl/default.nix b/pkgs/games/gogdl/default.nix
index 91cfe972d9c6e..5e47713f314c8 100644
--- a/pkgs/games/gogdl/default.nix
+++ b/pkgs/games/gogdl/default.nix
@@ -1,5 +1,4 @@
 { lib
-, fetchpatch
 , writeScript
 , buildPythonApplication
 , fetchFromGitHub
@@ -11,14 +10,14 @@
 
 buildPythonApplication rec {
   pname = "gogdl";
-  version = "1.0.1";
+  version = "1.1.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "Heroic-Games-Launcher";
     repo = "heroic-gogdl";
-    rev = "10b4a19e0fbe9bc3db6b9ce3ea49fd17c9f1d37d";
-    hash = "sha256-po9To5WfT0L2j48Q84ygbbIqtTfXP9uQPrl4Uu+CWGk=";
+    rev = "7c9a6f43043e04763d4b06d09f420bda2baa98ce";
+    hash = "sha256-9SJ/DjxqYmvaVxEGxhnalZkr9yZhEOb0AzXYPBfUss4=";
   };
 
   disabled = pythonOlder "3.8";
diff --git a/pkgs/games/gogui/default.nix b/pkgs/games/gogui/default.nix
index 50cb29ddb454c..e83516d1c7d0e 100644
--- a/pkgs/games/gogui/default.nix
+++ b/pkgs/games/gogui/default.nix
@@ -86,7 +86,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A graphical user interface to programs that play the board game Go and support the Go Text Protocol such as GNU Go";
+    description = "Graphical user interface to programs that play the board game Go and support the Go Text Protocol such as GNU Go";
     homepage = "https://github.com/Remi-Coulom/gogui";
     license = lib.licenses.gpl3Plus;
     mainProgram = "gogui";
diff --git a/pkgs/games/gotypist/default.nix b/pkgs/games/gotypist/default.nix
index 12489a27e6a6a..b60fe896392d0 100644
--- a/pkgs/games/gotypist/default.nix
+++ b/pkgs/games/gotypist/default.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
   vendorHash = null;
 
   meta = with lib; {
-    description = "A touch-typing tutor";
+    description = "Touch-typing tutor";
     mainProgram = "gotypist";
     longDescription = ''
       A simple touch-typing tutor that follows Steve Yegge's methodology of
diff --git a/pkgs/games/graphwar/default.nix b/pkgs/games/graphwar/default.nix
index 3586979292e6c..ac177281fa07b 100644
--- a/pkgs/games/graphwar/default.nix
+++ b/pkgs/games/graphwar/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.graphwar.com/";
-    description = "An artillery game in which you must hit your enemies using mathematical functions";
+    description = "Artillery game in which you must hit your enemies using mathematical functions";
     license = licenses.gpl3Plus;
     platforms = jdk.meta.platforms;
     maintainers = with maintainers; [ yrd ];
diff --git a/pkgs/games/gshogi/default.nix b/pkgs/games/gshogi/default.nix
index a4e9b903dc1cd..28013690ccc77 100644
--- a/pkgs/games/gshogi/default.nix
+++ b/pkgs/games/gshogi/default.nix
@@ -32,7 +32,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "http://johncheetham.com/projects/gshogi/";
-    description = "A graphical implementation of the Shogi board game, also known as Japanese Chess";
+    description = "Graphical implementation of the Shogi board game, also known as Japanese Chess";
     mainProgram = "gshogi";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/games/harmonist/default.nix b/pkgs/games/harmonist/default.nix
index 57e9a06ec9a54..12715ff9247cf 100644
--- a/pkgs/games/harmonist/default.nix
+++ b/pkgs/games/harmonist/default.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "A stealth coffee-break roguelike game";
+    description = "Stealth coffee-break roguelike game";
     mainProgram = "harmonist";
     longDescription = ''
       Harmonist is a stealth coffee-break roguelike game. The game has a heavy
diff --git a/pkgs/games/hase/default.nix b/pkgs/games/hase/default.nix
index 1e1ef23367fa0..20e1afa56d39b 100644
--- a/pkgs/games/hase/default.nix
+++ b/pkgs/games/hase/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "An open-source artillery shooter";
+    description = "Open-source artillery shooter";
     mainProgram = "hase";
     longDescription = ''
       Hase is an open source gravity based artillery shooter. It is similar to
diff --git a/pkgs/games/heroic/default.nix b/pkgs/games/heroic/default.nix
index 354eeba61aad2..a1da27a566e4b 100644
--- a/pkgs/games/heroic/default.nix
+++ b/pkgs/games/heroic/default.nix
@@ -114,7 +114,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac";
+    description = "Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac";
     homepage = "https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher";
     changelog = "https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/releases";
     license = licenses.gpl3Only;
diff --git a/pkgs/games/hex-a-hop/default.nix b/pkgs/games/hex-a-hop/default.nix
index 32a395195b5ea..98c4c5c03cbb6 100644
--- a/pkgs/games/hex-a-hop/default.nix
+++ b/pkgs/games/hex-a-hop/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A puzzle game based on hexagonal tiles";
+    description = "Puzzle game based on hexagonal tiles";
     mainProgram = "hex-a-hop";
     homepage = "http://hexahop.sourceforge.net";
     license = with lib.licenses; [
diff --git a/pkgs/games/hikounomizu/default.nix b/pkgs/games/hikounomizu/default.nix
index 6e05a17b082e0..7848b5febad7c 100644
--- a/pkgs/games/hikounomizu/default.nix
+++ b/pkgs/games/hikounomizu/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A free platform-based fighting game";
+    description = "Free platform-based fighting game";
     longDescription = ''
       Hikou no mizu (ハイクの水) is a free platform-based fighting game,
       licensed under the GNU GPL v3 (program) and the LAL (graphics).
diff --git a/pkgs/games/hmcl/default.nix b/pkgs/games/hmcl/default.nix
index 9426b611f3a69..2ff06a19219d9 100644
--- a/pkgs/games/hmcl/default.nix
+++ b/pkgs/games/hmcl/default.nix
@@ -18,7 +18,7 @@
 }:
 
 let
-  version = "3.5.7";
+  version = "3.5.8";
   icon = fetchurl {
     url = "https://github.com/huanghongxun/HMCL/raw/release-${version}/HMCLauncher/HMCL/HMCL.ico";
     hash = "sha256-+EYL33VAzKHOMp9iXoJaSGZfv+ymDDYIx6i/1o47Dmc=";
@@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   src = fetchurl {
     url = "https://github.com/huanghongxun/HMCL/releases/download/release-${version}/HMCL-${version}.jar";
-    hash = "sha256-ziqcauetWoFn58kBJ0KnqX5CPNC/Sn7DD/Buxdi977I=";
+    hash = "sha256-HRTXJhKtRB+pANMAZ9R1kNsSbl/Rr6a8wMhfaPeD/40=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/games/infra-arcana/default.nix b/pkgs/games/infra-arcana/default.nix
index c5c960d7deff9..4d3db6214cbb7 100644
--- a/pkgs/games/infra-arcana/default.nix
+++ b/pkgs/games/infra-arcana/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://sites.google.com/site/infraarcana";
-    description = "A Lovecraftian single-player roguelike game";
+    description = "Lovecraftian single-player roguelike game";
     mainProgram = "infra-arcana";
     longDescription = ''
       Infra Arcana is a Roguelike set in the early 20th century. The goal is to
diff --git a/pkgs/games/instawow/default.nix b/pkgs/games/instawow/default.nix
index f451521554166..0793ece2960f1 100644
--- a/pkgs/games/instawow/default.nix
+++ b/pkgs/games/instawow/default.nix
@@ -2,14 +2,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "instawow";
-  version = "4.3.0";
+  version = "4.4.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "layday";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-U4Y+P+fSyqxT0oHJXn2gwxPOJtnYBwaq9ca+FvGBUkA=";
+    sha256 = "sha256-LSn8b29IEPimwLpmYU7vRRH2dcyaCCr/dk9MzBIW4U0=";
   };
 
   extras = [ ];  # Disable GUI, most dependencies are not packaged.
diff --git a/pkgs/games/ironwail/default.nix b/pkgs/games/ironwail/default.nix
index f55d72c4a40be..599637b3ae604 100644
--- a/pkgs/games/ironwail/default.nix
+++ b/pkgs/games/ironwail/default.nix
@@ -30,9 +30,20 @@ stdenv.mkDerivation (finalAttrs: {
   sourceRoot = "${finalAttrs.pname}-${finalAttrs.version}/Quake";
 
   nativeBuildInputs = [
-    copyDesktopItems pkg-config vulkan-headers
-    gzip libvorbis libmad flac curl libopus
-    opusfile libogg libxmp vulkan-loader SDL2
+    copyDesktopItems
+    pkg-config
+    vulkan-headers
+    gzip
+    libvorbis
+    libmad
+    flac
+    curl
+    libopus
+    opusfile
+    libogg
+    libxmp
+    vulkan-loader
+    SDL2
   ];
 
   buildFlags = [
@@ -55,8 +66,8 @@ stdenv.mkDerivation (finalAttrs: {
   preInstall = ''
     mkdir -p "$out/bin"
     mkdir -p "$out/share/quake"
-    substituteInPlace Makefile --replace "cp ironwail.pak /usr/local/games/quake" "cp ironwail.pak $out/share/quake/ironwail.pak"
-    substituteInPlace Makefile --replace "/usr/local/games" "$out/bin"
+    substituteInPlace Makefile --replace-fail "cp ironwail.pak /usr/local/games/quake" "cp ironwail.pak $out/share/quake/ironwail.pak"
+    substituteInPlace Makefile --replace-fail "/usr/local/games/quake" "$out/bin/ironwail"
   '';
 
   enableParallelBuilding = true;
@@ -64,14 +75,14 @@ stdenv.mkDerivation (finalAttrs: {
   desktopItems = [
     (makeDesktopItem {
       name = "ironwail";
-      exec = "quake";
+      exec = "ironwail";
       desktopName = "Ironwail";
       categories = [ "Game" ];
     })
   ];
 
   meta = {
-    description = "A fork of the QuakeSpasm engine for iD software's Quake";
+    description = "Fork of the QuakeSpasm engine for iD software's Quake";
     homepage = "https://github.com/andrei-drexler/ironwail";
     longDescription = ''
       Ironwail is a fork of QuakeSpasm with focus on high performance instead of
@@ -86,6 +97,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.necrophcodr ];
-    mainProgram = "quake";
+    mainProgram = "ironwail";
   };
 })
diff --git a/pkgs/games/julius/darwin-fixes.patch b/pkgs/games/julius/darwin-fixes.patch
new file mode 100644
index 0000000000000..b4dfee59659b7
--- /dev/null
+++ b/pkgs/games/julius/darwin-fixes.patch
@@ -0,0 +1,49 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 038a34ba..d46b9258 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -669,16 +669,14 @@ endif()
+ if(APPLE)
+     # generating a macOS icns file (see https://stackoverflow.com/a/20703594)
+     add_custom_command(OUTPUT ${PROJECT_SOURCE_DIR}/res/julius.icns
+-        COMMAND mkdir -p julius.iconset
+-        COMMAND sips -z 16 16    julius_256.png --out julius.iconset/icon_16x16.png
+-        COMMAND sips -z 32 32    julius_256.png --out julius.iconset/icon_16x16@2x.png
+-        COMMAND sips -z 32 32    julius_256.png --out julius.iconset/icon_32x32.png
+-        COMMAND sips -z 64 64    julius_256.png --out julius.iconset/icon_32x32@2x.png
+-        COMMAND sips -z 128 128  julius_256.png --out julius.iconset/icon_128x128.png
+-        COMMAND sips -z 256 256  julius_256.png --out julius.iconset/icon_128x128@2x.png
+-        COMMAND sips -z 256 256  julius_256.png --out julius.iconset/icon_256x256.png
+-        COMMAND sips -z 512 512  julius_512.png --out julius.iconset/icon_256x256@2x.png
+-        COMMAND iconutil -c icns julius.iconset
++        COMMAND mkdir julius.iconset
++        COMMAND convert julius_256.png -resize 16x16 julius.iconset/icon_16.png
++        COMMAND convert julius_256.png -resize 32x32 julius.iconset/icon_32.png
++        COMMAND convert julius_256.png -resize 64x64 julius.iconset/icon_64.png
++        COMMAND convert julius_256.png -resize 128x128 julius.iconset/icon_128.png
++        COMMAND cp julius_256.png julius.iconset/icon_256.png
++        COMMAND cp julius_512.png julius.iconset/icon_512.png
++        COMMAND png2icns julius.icns julius.iconset/icon_{16,32,64,128,256,512}.png
+         COMMAND rm -R julius.iconset
+         WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/res)
+     set_source_files_properties(${PROJECT_SOURCE_DIR}/res/julius.icns PROPERTIES
+@@ -687,7 +685,6 @@ if(APPLE)
+     # setting variables that will populate Info.plist
+     set(MACOSX_BUNDLE_GUI_IDENTIFIER "com.github.bvschaik.julius")
+     set(MACOSX_BUNDLE_BUNDLE_NAME ${USER_FRIENDLY_NAME})
+-    set(CMAKE_OSX_DEPLOYMENT_TARGET "10.10" CACHE STRING "Minimum OS X deployment version" FORCE)
+     set(MACOSX_BUNDLE_ICON_FILE "julius.icns")
+     set(MACOSX_BUNDLE_BUNDLE_VERSION
+         "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}${VERSION_REVISION}")
+diff --git a/cmake/FindSDL2_mixer.cmake b/cmake/FindSDL2_mixer.cmake
+index 29cc683c..1fa28a1f 100644
+--- a/cmake/FindSDL2_mixer.cmake
++++ b/cmake/FindSDL2_mixer.cmake
+@@ -93,7 +93,6 @@ ELSE()
+         PATH_SUFFIXES include include/SDL2
+         PATHS ${SDL2_SEARCH_PATHS}
+       )
+-      set(SDL2_MIXER_INCLUDE_DIR "${SDL2_MIXER_INCLUDE_DIR}/Headers")
+     endif()
+ 
+     if(NOT APPLE OR NOT EXISTS "${SDL2_MIXER_INCLUDE_DIR}/SDL_mixer.h")
diff --git a/pkgs/games/julius/default.nix b/pkgs/games/julius/default.nix
index 5e1f046d97103..69f3c34a1f0ff 100644
--- a/pkgs/games/julius/default.nix
+++ b/pkgs/games/julius/default.nix
@@ -5,8 +5,10 @@
 , SDL2_mixer
 , cmake
 , libpng
+, darwin
+, libicns
+, imagemagick
 }:
-
 stdenv.mkDerivation rec {
   pname = "julius";
   version = "1.7.0";
@@ -18,16 +20,41 @@ stdenv.mkDerivation rec {
     hash = "sha256-I5GTaVWzz0ryGLDSS3rzxp+XFVXZa9hZmgwon/6r83A=";
   };
 
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ SDL2 SDL2_mixer libpng ];
+  patches = [
+    # This fixes the darwin bundle generation, sets min. deployment version
+    # and patches SDL2_mixer include
+    ./darwin-fixes.patch
+  ];
+
+  nativeBuildInputs = [
+    cmake
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.sigtool
+    libicns
+    imagemagick
+  ];
+
+  buildInputs = [
+    SDL2
+    SDL2_mixer
+    libpng
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Cocoa
+  ];
+
+  installPhase = lib.optionalString stdenv.isDarwin ''
+    runHook preInstall
+    mkdir -p $out/Applications
+    cp -r julius.app $out/Applications/
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/bvschaik/julius";
-    description = "An open source re-implementation of Caesar III";
+    description = "Open source re-implementation of Caesar III";
     mainProgram = "julius";
     license = licenses.agpl3Only;
-    maintainers = with maintainers; [ Thra11 ];
+    maintainers = with maintainers; [ Thra11 matteopacini ];
     platforms = platforms.all;
-    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/games/jumpy/default.nix b/pkgs/games/jumpy/default.nix
index 29110d42ff825..23e130582a3d0 100644
--- a/pkgs/games/jumpy/default.nix
+++ b/pkgs/games/jumpy/default.nix
@@ -76,7 +76,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A tactical 2D shooter played by up to 4 players online or on a shared screen";
+    description = "Tactical 2D shooter played by up to 4 players online or on a shared screen";
     mainProgram = "jumpy";
     homepage = "https://fishfight.org/";
     changelog = "https://github.com/fishfolk/jumpy/releases/tag/v${version}";
diff --git a/pkgs/games/keeperrl/default.nix b/pkgs/games/keeperrl/default.nix
index 0cbcfd036702f..262702c223338 100644
--- a/pkgs/games/keeperrl/default.nix
+++ b/pkgs/games/keeperrl/default.nix
@@ -81,7 +81,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A dungeon management rogue-like";
+    description = "Dungeon management rogue-like";
     mainProgram = "keeper";
     homepage = "https://keeperrl.com/";
     license = licenses.gpl2;
diff --git a/pkgs/games/koboredux/default.nix b/pkgs/games/koboredux/default.nix
index 5eb482b09cb37..cab22ce44034d 100644
--- a/pkgs/games/koboredux/default.nix
+++ b/pkgs/games/koboredux/default.nix
@@ -80,7 +80,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    description = "A frantic 80's style 2D shooter, similar to XKobo and Kobo Deluxe" +
+    description = "Frantic 80's style 2D shooter, similar to XKobo and Kobo Deluxe" +
       optionalString (!useProprietaryAssets) " (built without proprietary assets)";
     mainProgram = "kobord";
     longDescription = ''
diff --git a/pkgs/games/ldmud/default.nix b/pkgs/games/ldmud/default.nix
index 41348fa0bcfaa..83bbadfe7dc41 100644
--- a/pkgs/games/ldmud/default.nix
+++ b/pkgs/games/ldmud/default.nix
@@ -82,7 +82,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A gamedriver for LPMuds including a LPC compiler, interpreter and runtime";
+    description = "Gamedriver for LPMuds including a LPC compiler, interpreter and runtime";
     homepage = "https://ldmud.eu";
     changelog = "https://github.com/ldmud/ldmud/blob/${version}/HISTORY";
     longDescription = ''
diff --git a/pkgs/games/legendary-gl/default.nix b/pkgs/games/legendary-gl/default.nix
index 7d339681f333f..a802efd66587d 100644
--- a/pkgs/games/legendary-gl/default.nix
+++ b/pkgs/games/legendary-gl/default.nix
@@ -31,7 +31,7 @@ buildPythonApplication rec {
   pythonImportsCheck = [ "legendary" ];
 
   meta = with lib; {
-    description = "A free and open-source Epic Games Launcher alternative";
+    description = "Free and open-source Epic Games Launcher alternative";
     homepage = "https://github.com/derrod/legendary";
     license = licenses.gpl3;
     maintainers = with maintainers; [ equirosa ];
diff --git a/pkgs/games/liberal-crime-squad/default.nix b/pkgs/games/liberal-crime-squad/default.nix
index f46bd3b50a388..0d81f7b3e610d 100644
--- a/pkgs/games/liberal-crime-squad/default.nix
+++ b/pkgs/games/liberal-crime-squad/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A humorous politically themed ncurses game";
+    description = "Humorous politically themed ncurses game";
     longDescription = ''
       Welcome to Liberal Crime Squad! The Conservatives have taken the Executive, Legislative, and Judicial branches of government. Over time, the Liberal laws of this nation will erode and turn the country into a BACKWOODS YET CORPORATE NIGHTMARE. To prevent this from happening, the Liberal Crime Squad was established. The mood of the country is shifting, and we need to turn things around. Go out on the streets and indoctrinate Conservative automatons. That is, let them see their True Liberal Nature. Then arm them and send them forth to Stop Evil.
     '';
diff --git a/pkgs/games/linthesia/default.nix b/pkgs/games/linthesia/default.nix
index e918906af4f38..c13bbec0ecfd2 100644
--- a/pkgs/games/linthesia/default.nix
+++ b/pkgs/games/linthesia/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A game of playing music using a MIDI keyboard following a MIDI file";
+    description = "Game of playing music using a MIDI keyboard following a MIDI file";
     mainProgram = "linthesia";
     inherit (src.meta) homepage;
     license = licenses.gpl2Plus;
diff --git a/pkgs/games/liquidwar/5.nix b/pkgs/games/liquidwar/5.nix
index fc9802d46e5e2..9c61f97d1a7f9 100644
--- a/pkgs/games/liquidwar/5.nix
+++ b/pkgs/games/liquidwar/5.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "The classic version of a quick tactics game LiquidWar";
+    description = "Classic version of a quick tactics game LiquidWar";
     maintainers = [ maintainers.raskin ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/games/maelstrom/default.nix b/pkgs/games/maelstrom/default.nix
index 9c408b2643cfb..45318987dca6c 100644
--- a/pkgs/games/maelstrom/default.nix
+++ b/pkgs/games/maelstrom/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An arcade-style game resembling Asteroids";
+    description = "Arcade-style game resembling Asteroids";
     mainProgram = "maelstrom";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
diff --git a/pkgs/games/manaplus/default.nix b/pkgs/games/manaplus/default.nix
index 1ea5231a65ea3..7d71b1f51751d 100644
--- a/pkgs/games/manaplus/default.nix
+++ b/pkgs/games/manaplus/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     maintainers = [ lib.maintainers.lheckemann ];
-    description = "A free OpenSource 2D MMORPG client";
+    description = "Free OpenSource 2D MMORPG client";
     homepage = "https://manaplus.org/";
     license = lib.licenses.gpl2;
     broken = stdenv.isDarwin;
diff --git a/pkgs/games/mars/default.nix b/pkgs/games/mars/default.nix
index 3ce42bb7748e0..c63152fb5445d 100644
--- a/pkgs/games/mars/default.nix
+++ b/pkgs/games/mars/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   '';
   meta = with lib; {
     homepage = "https://mars-game.sourceforge.net/";
-    description = "A game about fighting with ships in a 2D space setting";
+    description = "Game about fighting with ships in a 2D space setting";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.astsmtl ];
     platforms = platforms.linux;
diff --git a/pkgs/games/mchprs/default.nix b/pkgs/games/mchprs/default.nix
index feda0c496f9c7..49ef836423cdc 100644
--- a/pkgs/games/mchprs/default.nix
+++ b/pkgs/games/mchprs/default.nix
@@ -43,7 +43,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     mainProgram = "mchprs";
-    description = "A multithreaded Minecraft server built for redstone";
+    description = "Multithreaded Minecraft server built for redstone";
     homepage = "https://github.com/MCHPR/MCHPRS";
     license = licenses.mit;
     maintainers = with maintainers; [ gdd ];
diff --git a/pkgs/games/megaglest/default.nix b/pkgs/games/megaglest/default.nix
index 83954c1b2463d..2a914c9412265 100644
--- a/pkgs/games/megaglest/default.nix
+++ b/pkgs/games/megaglest/default.nix
@@ -79,7 +79,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "An entertaining free (freeware and free software) and open source cross-platform 3D real-time strategy (RTS) game";
+    description = "Entertaining free (freeware and free software) and open source cross-platform 3D real-time strategy (RTS) game";
     license = licenses.gpl3;
     homepage = "https://megaglest.org/";
     maintainers = [ maintainers.matejc ];
diff --git a/pkgs/games/methane/default.nix b/pkgs/games/methane/default.nix
index 5ab8843b33bf1..d1e4bb03409d8 100644
--- a/pkgs/games/methane/default.nix
+++ b/pkgs/games/methane/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/rombust/methane";
-    description = "A clone of Taito's Bubble Bobble arcade game released for Amiga in 1993 by Apache Software";
+    description = "Clone of Taito's Bubble Bobble arcade game released for Amiga in 1993 by Apache Software";
     mainProgram = "methane";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ nixinator ];
diff --git a/pkgs/games/mindustry/default.nix b/pkgs/games/mindustry/default.nix
index 906c6de2795bc..49ce37cc4b579 100644
--- a/pkgs/games/mindustry/default.nix
+++ b/pkgs/games/mindustry/default.nix
@@ -240,7 +240,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://mindustrygame.github.io/";
     downloadPage = "https://github.com/Anuken/Mindustry/releases";
-    description = "A sandbox tower defense game";
+    description = "Sandbox tower defense game";
     sourceProvenance = with sourceTypes; [
       fromSource
       binaryBytecode  # deps
diff --git a/pkgs/games/minecraft-servers/derivation.nix b/pkgs/games/minecraft-servers/derivation.nix
index 0773be6bcfc7e..a1b03a0a3b368 100644
--- a/pkgs/games/minecraft-servers/derivation.nix
+++ b/pkgs/games/minecraft-servers/derivation.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, nixosTests, jre_headless, version, url, sha1 }:
+{ lib, stdenv, fetchurl, nixosTests, jre_headless, makeWrapper, udev, version, url, sha1 }:
 stdenv.mkDerivation {
   pname = "minecraft-server";
   inherit version;
@@ -7,16 +7,18 @@ stdenv.mkDerivation {
 
   preferLocalBuild = true;
 
+  nativeBuildInputs = [ makeWrapper ];
+
   installPhase = ''
-    mkdir -p $out/bin $out/lib/minecraft
-    cp -v $src $out/lib/minecraft/server.jar
+    runHook preInstall
+
+    install -Dm644 $src $out/lib/minecraft/server.jar
 
-    cat > $out/bin/minecraft-server << EOF
-    #!/bin/sh
-    exec ${jre_headless}/bin/java \$@ -jar $out/lib/minecraft/server.jar nogui
-    EOF
+    makeWrapper ${lib.getExe jre_headless} $out/bin/minecraft-server \
+      --append-flags "-jar $out/lib/minecraft/server.jar nogui" \
+      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ udev ]}
 
-    chmod +x $out/bin/minecraft-server
+    runHook postInstall
   '';
 
   dontUnpack = true;
diff --git a/pkgs/games/minecraft-servers/versions.json b/pkgs/games/minecraft-servers/versions.json
index 5fece659ca419..fdda977994b81 100644
--- a/pkgs/games/minecraft-servers/versions.json
+++ b/pkgs/games/minecraft-servers/versions.json
@@ -1,4 +1,10 @@
 {
+  "1.21": {
+    "sha1": "450698d1863ab5180c25d7c804ef0fe6369dd1ba",
+    "url": "https://piston-data.mojang.com/v1/objects/450698d1863ab5180c25d7c804ef0fe6369dd1ba/server.jar",
+    "version": "1.21",
+    "javaVersion": 21
+  },
   "1.20": {
     "sha1": "145ff0858209bcfc164859ba735d4199aafa1eea",
     "url": "https://piston-data.mojang.com/v1/objects/145ff0858209bcfc164859ba735d4199aafa1eea/server.jar",
diff --git a/pkgs/games/minetest/default.nix b/pkgs/games/minetest/default.nix
index fcea007ff5988..ff6a59e08ad72 100644
--- a/pkgs/games/minetest/default.nix
+++ b/pkgs/games/minetest/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, gitUpdater
 , cmake
 , irrlichtmt
 , coreutils
@@ -128,6 +129,10 @@ stdenv.mkDerivation (finalAttrs: {
     mv $out/minetest.app $out/Applications
   '';
 
+  passthru.updateScript = gitUpdater {
+    ignoredVersions = "^[^.]+$|.*-android$";
+  };
+
   meta = with lib; {
     homepage = "https://minetest.net/";
     description = "Infinite-world block sandbox game";
diff --git a/pkgs/games/moon-buggy/default.nix b/pkgs/games/moon-buggy/default.nix
index e0235e70a92d9..6941beb248f1a 100644
--- a/pkgs/games/moon-buggy/default.nix
+++ b/pkgs/games/moon-buggy/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "A simple character graphics game where you drive some kind of car across the moon's surface";
+    description = "Simple character graphics game where you drive some kind of car across the moon's surface";
     mainProgram = "moon-buggy";
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.rybern ];
diff --git a/pkgs/games/naev/default.nix b/pkgs/games/naev/default.nix
index 962497bb73c0b..9f7f667ea39da 100644
--- a/pkgs/games/naev/default.nix
+++ b/pkgs/games/naev/default.nix
@@ -26,13 +26,13 @@
 
 stdenv.mkDerivation rec {
   pname = "naev";
-  version = "0.11.4";
+  version = "0.11.5";
 
   src = fetchFromGitHub {
     owner = "naev";
     repo = "naev";
     rev = "v${version}";
-    sha256 = "sha256-Cyun9BxIcv5V3HbMuFEhbYZnAuneTUwztc+ZlNaTp70=";
+    sha256 = "sha256-vdPkACgLGSTb9E/HZR5KoXn/fro0iHV7hX9kJim1j/M=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/games/nanosaur/default.nix b/pkgs/games/nanosaur/default.nix
index 897847b0f11cf..99f609ffd509e 100644
--- a/pkgs/games/nanosaur/default.nix
+++ b/pkgs/games/nanosaur/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = unstableGitUpdater { };
 
   meta = with lib; {
-    description = "A port of Nanosaur, a 1998 Macintosh game by Pangea Software, for modern operating systems";
+    description = "Port of Nanosaur, a 1998 Macintosh game by Pangea Software, for modern operating systems";
     longDescription = ''
       Nanosaur is a 1998 Macintosh game by Pangea Software.
       In it, you’re a cybernetic dinosaur from the future who’s sent back in time 20 minutes before a giant asteroid hits the Earth.
diff --git a/pkgs/games/nanosaur2/default.nix b/pkgs/games/nanosaur2/default.nix
index 92cf781da7d38..3e370d7809a97 100644
--- a/pkgs/games/nanosaur2/default.nix
+++ b/pkgs/games/nanosaur2/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = unstableGitUpdater { };
 
   meta = with lib; {
-    description = "A port of Nanosaur2, a 2004 Macintosh game by Pangea Software, for modern operating systems";
+    description = "Port of Nanosaur2, a 2004 Macintosh game by Pangea Software, for modern operating systems";
     longDescription = ''
       Nanosaur is a 2004 Macintosh game by Pangea Software.
 
diff --git a/pkgs/games/netris/default.nix b/pkgs/games/netris/default.nix
index 620f21f02902e..e161f2ea25b88 100644
--- a/pkgs/games/netris/default.nix
+++ b/pkgs/games/netris/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A free networked version of T*tris";
+    description = "Free networked version of T*tris";
     mainProgram = "netris";
     license = licenses.gpl2;
     maintainers = with maintainers; [ patryk27 ];
diff --git a/pkgs/games/newtonwars/default.nix b/pkgs/games/newtonwars/default.nix
index 66fb694e85632..c9ed0ca0dbc5d 100644
--- a/pkgs/games/newtonwars/default.nix
+++ b/pkgs/games/newtonwars/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A space battle game with gravity as the main theme";
+    description = "Space battle game with gravity as the main theme";
     mainProgram = "nw";
     maintainers = with maintainers; [ pSub ];
     platforms = platforms.linux;
diff --git a/pkgs/games/nexuiz/default.nix b/pkgs/games/nexuiz/default.nix
index 5bcd84ee38011..e8af5d43e2dea 100644
--- a/pkgs/games/nexuiz/default.nix
+++ b/pkgs/games/nexuiz/default.nix
@@ -85,7 +85,7 @@ in stdenv.mkDerivation {
   ];
 
   meta = {
-    description = "A free fast-paced first-person shooter";
+    description = "Free fast-paced first-person shooter";
     homepage = "http://www.alientrap.org/games/nexuiz";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.linux;
diff --git a/pkgs/games/nile/default.nix b/pkgs/games/nile/default.nix
index 928ba0743d04b..f52c1ecb1f1fa 100644
--- a/pkgs/games/nile/default.nix
+++ b/pkgs/games/nile/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonApplication rec {
   pname = "nile";
-  version = "1.0.3-unstable-2024-05-10";
+  version = "1.0.3-unstable-2024-06-08";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "imLinguin";
     repo = "nile";
-    rev = "74e3ca979b2a66f9174c04fd0279211e0276ac9c";
-    hash = "sha256-ezX9MLQsULRvX+X2NXYBQnKRzBRt9eN9JnJinzysI9o=";
+    rev = "fcf57a69d6f322e389a8c21b77215a488fa81132";
+    hash = "sha256-zRuWJ0ziKxxOpGyR2IB8LncIFveIyz5PWYXhEHhQEM8=";
   };
 
   disabled = pythonOlder "3.8";
diff --git a/pkgs/games/npush/default.nix b/pkgs/games/npush/default.nix
index 9fc465da38a81..7a061a4bc638e 100644
--- a/pkgs/games/npush/default.nix
+++ b/pkgs/games/npush/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     homepage = "https://npush.sourceforge.net/";
-    description = "A Sokoban-like game";
+    description = "Sokoban-like game";
     mainProgram = "npush";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ AndersonTorres ];
diff --git a/pkgs/games/nudoku/default.nix b/pkgs/games/nudoku/default.nix
index 11e6fc0d8f289..cb09c466c8d56 100644
--- a/pkgs/games/nudoku/default.nix
+++ b/pkgs/games/nudoku/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   configureFlags = lib.optional stdenv.hostPlatform.isMusl "--disable-nls";
 
   meta = with lib; {
-    description = "An ncurses based sudoku game";
+    description = "Ncurses based sudoku game";
     mainProgram = "nudoku";
     homepage = "http://jubalh.github.io/nudoku/";
     license = licenses.gpl3;
diff --git a/pkgs/games/oh-my-git/default.nix b/pkgs/games/oh-my-git/default.nix
index 9fe0fb9ac4205..5674e2a0a94d8 100644
--- a/pkgs/games/oh-my-git/default.nix
+++ b/pkgs/games/oh-my-git/default.nix
@@ -126,7 +126,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://ohmygit.org/";
-    description = "An interactive Git learning game";
+    description = "Interactive Git learning game";
     mainProgram = "oh-my-git";
     license = with licenses; [ blueOak100 ];
     platforms   = [ "x86_64-linux" ];
diff --git a/pkgs/games/oilrush/default.nix b/pkgs/games/oilrush/default.nix
index 947b7141b5723..5715c5e029b9e 100644
--- a/pkgs/games/oilrush/default.nix
+++ b/pkgs/games/oilrush/default.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation {
     chmod +x "$out/bin/oilrush"
   '';
   meta = {
-    description = "A naval strategy game";
+    description = "Naval strategy game";
     longDescription = ''
       Oil Rush is a real-time naval strategy game based on group control. It
       combines the strategic challenge of a classical RTS with the sheer fun
diff --git a/pkgs/games/onscripter-en/default.nix b/pkgs/games/onscripter-en/default.nix
deleted file mode 100644
index edc9e20235ffe..0000000000000
--- a/pkgs/games/onscripter-en/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib, stdenv, fetchurl
-, libpng, libjpeg, libogg, libvorbis, freetype, smpeg
-, SDL, SDL_image, SDL_mixer, SDL_ttf }:
-
-
-stdenv.mkDerivation {
-  pname = "onscripter-en";
-  version = "20111009";
-
-  src = fetchurl {
-    # The website is not available now.
-    url = "https://www.dropbox.com/s/ag21owy9poyr2oy/onscripter-en-20111009-src.tar.bz2";
-    sha256 = "sha256-pir3ExhehJ9zNygDN83S4GOs5ugDNMjngxEwklAz9c8=";
-  };
-
-  buildInputs = [ libpng libjpeg libogg libvorbis freetype smpeg
-                  SDL SDL_image SDL_mixer SDL_ttf
-                ];
-
-  configureFlags = [ "--no-werror" ];
-
-  # Without this libvorbisfile.so is not getting linked properly for some reason.
-  NIX_CFLAGS_LINK = "-lvorbisfile";
-
-  preBuild = ''
-    sed -i 's/.dll//g' Makefile
-  '';
-
-  meta = with lib; {
-    broken = stdenv.isDarwin;
-    description = "Japanese visual novel scripting engine";
-    mainProgram = "onscripter-en";
-    homepage = "http://unclemion.com/onscripter/";
-    license = licenses.gpl2;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ abbradar ];
-  };
-}
diff --git a/pkgs/games/openarena/default.nix b/pkgs/games/openarena/default.nix
index 7ae0111cfe4b8..25b4954cb4261 100644
--- a/pkgs/games/openarena/default.nix
+++ b/pkgs/games/openarena/default.nix
@@ -103,7 +103,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = {
-    description = "A fast-paced 3D first-person shooter, similar to id Software Inc.'s Quake III Arena";
+    description = "Fast-paced 3D first-person shooter, similar to id Software Inc.'s Quake III Arena";
     homepage = "http://openarena.ws/";
     license = lib.licenses.gpl2Plus;
     mainProgram = "openarena";
diff --git a/pkgs/games/openclonk/default.nix b/pkgs/games/openclonk/default.nix
index 5dd8d8252d018..66b0d8ac06e15 100644
--- a/pkgs/games/openclonk/default.nix
+++ b/pkgs/games/openclonk/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchFromGitHub, fetchDebianPatch, fetchpatch, cmake, pkg-config
+{ lib, stdenv, fetchurl, fetchFromGitHub, fetchDebianPatch, cmake, pkg-config
 , SDL2, libvorbis, libogg, libjpeg, libpng, freetype, glew, tinyxml, openal, libepoxy
 , curl
 , freealut, readline, libb2, gcc-unwrapped
diff --git a/pkgs/games/opendungeons/default.nix b/pkgs/games/opendungeons/default.nix
index 8755a07169bf2..3562aa8c6f89d 100644
--- a/pkgs/games/opendungeons/default.nix
+++ b/pkgs/games/opendungeons/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation {
   ];
 
   meta = with lib; {
-    description = "An open source, real time strategy game sharing game elements with the Dungeon Keeper series and Evil Genius";
+    description = "Open source, real time strategy game sharing game elements with the Dungeon Keeper series and Evil Genius";
     mainProgram = "opendungeons";
     homepage = "https://opendungeons.github.io";
     license = with licenses; [ gpl3Plus zlib mit cc-by-sa-30 cc0 ofl cc-by-30 ];
diff --git a/pkgs/games/openjk/default.nix b/pkgs/games/openjk/default.nix
index b8e80b845c1cd..58cbb1e212736 100644
--- a/pkgs/games/openjk/default.nix
+++ b/pkgs/games/openjk/default.nix
@@ -84,7 +84,7 @@ in stdenv.mkDerivation {
   passthru.updateScript = unstableGitUpdater { };
 
   meta = with lib; {
-    description = "An open-source engine for Star Wars Jedi Academy game";
+    description = "Open-source engine for Star Wars Jedi Academy game";
     homepage = "https://github.com/JACoders/OpenJK";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/games/openloco/default.nix b/pkgs/games/openloco/default.nix
index ef4e12631f512..caa286c7ef62c 100644
--- a/pkgs/games/openloco/default.nix
+++ b/pkgs/games/openloco/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    description = "An open source re-implementation of Chris Sawyer's Locomotion";
+    description = "Open source re-implementation of Chris Sawyer's Locomotion";
     homepage = "https://github.com/OpenLoco/OpenLoco";
     license = lib.licenses.mit;
     platforms = lib.platforms.linux;
diff --git a/pkgs/games/openmw/default.nix b/pkgs/games/openmw/default.nix
index 99c58df372443..edeed841c923a 100644
--- a/pkgs/games/openmw/default.nix
+++ b/pkgs/games/openmw/default.nix
@@ -104,7 +104,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An unofficial open source engine reimplementation of the game Morrowind";
+    description = "Unofficial open source engine reimplementation of the game Morrowind";
     homepage = "https://openmw.org";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ abbradar marius851000 ];
diff --git a/pkgs/games/openspades/default.nix b/pkgs/games/openspades/default.nix
index 0f9060d235d78..ebab9a018fbfa 100644
--- a/pkgs/games/openspades/default.nix
+++ b/pkgs/games/openspades/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
   NIX_CFLAGS_LINK = "-lopenal";
 
   meta = with lib; {
-    description = "A compatible client of Ace of Spades 0.75";
+    description = "Compatible client of Ace of Spades 0.75";
     mainProgram = "openspades";
     homepage    = "https://github.com/yvt/openspades/";
     license     = licenses.gpl3;
diff --git a/pkgs/games/openttd/default.nix b/pkgs/games/openttd/default.nix
index 69a2c75fa4637..268cead62dc47 100644
--- a/pkgs/games/openttd/default.nix
+++ b/pkgs/games/openttd/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchzip, cmake, pkg-config
+{ lib, stdenv, fetchzip, cmake, pkg-config
 , SDL2, libpng, zlib, xz, freetype, fontconfig
 , nlohmann_json, curl, icu, harfbuzz, expat, glib, pcre2
 , withOpenGFX ? true, withOpenSFX ? true, withOpenMSX ? true
@@ -32,11 +32,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "openttd";
-  version = "13.4";
+  version = "14.1";
 
-  src = fetchurl {
+  src = fetchzip {
     url = "https://cdn.openttd.org/openttd-releases/${version}/${pname}-${version}-source.tar.xz";
-    hash = "sha256-Kh3roBv+WOIYiHn0UMP6TzgZJxq0m/NI3WZUXwQNFG8=";
+    hash = "sha256-YT4IE/rJ9pnpeMWKbOra6AbSUwW19RwOKlXkxwoMeKY=";
   };
 
   nativeBuildInputs = [ cmake pkg-config makeWrapper ];
diff --git a/pkgs/games/openttd/jgrpp.nix b/pkgs/games/openttd/jgrpp.nix
index 6dea02eb49f0b..98681bfd60ec3 100644
--- a/pkgs/games/openttd/jgrpp.nix
+++ b/pkgs/games/openttd/jgrpp.nix
@@ -2,13 +2,13 @@
 
 openttd.overrideAttrs (oldAttrs: rec {
   pname = "openttd-jgrpp";
-  version = "0.59.0";
+  version = "0.59.1";
 
   src = fetchFromGitHub rec {
     owner = "JGRennison";
     repo = "OpenTTD-patches";
     rev = "jgrpp-${version}";
-    hash = "sha256-90swZyzEdCpWsZb0aZnwRrzGkJT6gef1kMB/q+EXE3M=";
+    hash = "sha256-8I3NSg7iRzdY+k8g2m1Z/QWwlT3BErV1RL7cirlO71g=";
   };
 
   buildInputs = oldAttrs.buildInputs ++ [ zstd ];
diff --git a/pkgs/games/otto-matic/default.nix b/pkgs/games/otto-matic/default.nix
index 6d0633febbd2f..fbdbb3366b10e 100644
--- a/pkgs/games/otto-matic/default.nix
+++ b/pkgs/games/otto-matic/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A port of Otto Matic, a 2001 Macintosh game by Pangea Software, for modern operating systems";
+    description = "Port of Otto Matic, a 2001 Macintosh game by Pangea Software, for modern operating systems";
     homepage = "https://github.com/jorio/OttoMatic";
     license = licenses.cc-by-sa-40;
     maintainers = with maintainers; [ lux ];
diff --git a/pkgs/games/pacvim/default.nix b/pkgs/games/pacvim/default.nix
index 1335f46d342c0..8a24cb99ab219 100644
--- a/pkgs/games/pacvim/default.nix
+++ b/pkgs/games/pacvim/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/jmoon018/PacVim";
-    description = "A game that teaches you vim commands";
+    description = "Game that teaches you vim commands";
     mainProgram = "pacvim";
     maintainers = [ ];
     license = licenses.lgpl3;
diff --git a/pkgs/games/papermc/update.py b/pkgs/games/papermc/update.py
index 6e2d0ec9274e6..2eb4e7c2790e1 100755
--- a/pkgs/games/papermc/update.py
+++ b/pkgs/games/papermc/update.py
@@ -1,6 +1,7 @@
 #!/usr/bin/env nix-shell
 #! nix-shell -i python -p "python3.withPackages (ps: with ps; [ps.requests ])"
 
+import os
 import hashlib
 import base64
 import json
@@ -95,7 +96,13 @@ class VersionManager:
             indent=4
         )
 
-    def write_versions(self, file_name: str):
+    def find_version_json() -> str:
+        """
+        Find the versions.json file in the same directory as this script
+        """
+        return os.path.join(os.path.dirname(os.path.realpath(__file__)), "versions.json")
+
+    def write_versions(self, file_name: str = find_version_json()):
         """ write all processed versions to json """
         # save json to versions.json
         with open(file_name, 'w') as f:
@@ -142,4 +149,4 @@ if __name__ == '__main__':
     version_manager.fetch_versions()
     version_manager.fetch_latest_version_builds()
     version_manager.generate_version_hashes()
-    version_manager.write_versions(file_name="versions.json")
+    version_manager.write_versions()
diff --git a/pkgs/games/papermc/versions.json b/pkgs/games/papermc/versions.json
index 0fa4bad8ba04b..67fb3903da117 100644
--- a/pkgs/games/papermc/versions.json
+++ b/pkgs/games/papermc/versions.json
@@ -44,7 +44,19 @@
         "version": "1.20.2-318"
     },
     "1.20.4": {
-        "hash": "sha256-NrIsYLoAAWORw/S26NDFjYBVwpNITJxuWGZow3696wM=",
-        "version": "1.20.4-435"
+        "hash": "sha256-eCCeEIGCuJPO1l2qH8WTtF0xFZAPBJjT6BUqfXPTg5I=",
+        "version": "1.20.4-497"
+    },
+    "1.20.5": {
+        "hash": "sha256-PNfaL435LggqUBo5xnSqs8A0Pt0Xm4b1usyuv8mXQTI=",
+        "version": "1.20.5-22"
+    },
+    "1.20.6": {
+        "hash": "sha256-JMWN40FTFg87RmxwyUr87Js9KyCmaBhj6Dnfe3vblZQ=",
+        "version": "1.20.6-147"
+    },
+    "1.21": {
+        "hash": "sha256-LaQyYAlZ2GQKzT3GlOKr1RUhu0XQpILuqPcDHdczqcU=",
+        "version": "1.21-15"
     }
 }
diff --git a/pkgs/games/pegasus-frontend/default.nix b/pkgs/games/pegasus-frontend/default.nix
index a6459943a98ba..1b1a6d38294ca 100644
--- a/pkgs/games/pegasus-frontend/default.nix
+++ b/pkgs/games/pegasus-frontend/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A cross platform, customizable graphical frontend for launching emulators and managing your game collection";
+    description = "Cross platform, customizable graphical frontend for launching emulators and managing your game collection";
     mainProgram = "pegasus-fe";
     homepage = "https://pegasus-frontend.org/";
     license = licenses.gpl3Plus;
diff --git a/pkgs/games/pentobi/default.nix b/pkgs/games/pentobi/default.nix
index e0bd6909fb946..4974deca7e5ef 100644
--- a/pkgs/games/pentobi/default.nix
+++ b/pkgs/games/pentobi/default.nix
@@ -29,7 +29,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A computer opponent for the board game Blokus";
+    description = "Computer opponent for the board game Blokus";
     homepage = "https://pentobi.sourceforge.io";
     license = licenses.gpl3Plus;
     maintainers = [ ];
diff --git a/pkgs/games/pingus/default.nix b/pkgs/games/pingus/default.nix
index adf393de9ed5f..efee89fc0716f 100644
--- a/pkgs/games/pingus/default.nix
+++ b/pkgs/games/pingus/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A puzzle game with mechanics similar to Lemmings";
+    description = "Puzzle game with mechanics similar to Lemmings";
     mainProgram = "pingus";
     platforms = lib.platforms.linux;
     maintainers = [lib.maintainers.raskin];
diff --git a/pkgs/games/pioneer/default.nix b/pkgs/games/pioneer/default.nix
index b7ac0b73b3b90..c5f1a31426315 100644
--- a/pkgs/games/pioneer/default.nix
+++ b/pkgs/games/pioneer/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "all" "build-data" ];
 
   meta = with lib; {
-    description = "A space adventure game set in the Milky Way galaxy at the turn of the 31st century";
+    description = "Space adventure game set in the Milky Way galaxy at the turn of the 31st century";
     homepage = "https://pioneerspacesim.net";
     license = with licenses; [
         gpl3Only cc-by-sa-30
diff --git a/pkgs/games/pokete/default.nix b/pkgs/games/pokete/default.nix
index 3a4d9a3c2031e..beb262edee704 100644
--- a/pkgs/games/pokete/default.nix
+++ b/pkgs/games/pokete/default.nix
@@ -48,7 +48,7 @@ python3.pkgs.buildPythonApplication rec {
   };
 
   meta = with lib; {
-    description = "A terminal based Pokemon like game";
+    description = "Terminal based Pokemon like game";
     mainProgram = "pokete";
     homepage = "https://lxgr-linux.github.io/pokete";
     license = licenses.gpl3Only;
diff --git a/pkgs/games/powermanga/default.nix b/pkgs/games/powermanga/default.nix
index 0b0d27a0beadf..3c89266370cf0 100644
--- a/pkgs/games/powermanga/default.nix
+++ b/pkgs/games/powermanga/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://linux.tlk.fr/games/Powermanga/";
     downloadPage = "https://linux.tlk.fr/games/Powermanga/download/";
-    description = "An arcade 2D shoot-em-up game";
+    description = "Arcade 2D shoot-em-up game";
     mainProgram = "powermanga";
     longDescription = ''
       Powermanga is an arcade 2D shoot-em-up game with 41 levels and more than
diff --git a/pkgs/games/prismlauncher/default.nix b/pkgs/games/prismlauncher/default.nix
index a2aabb72f0d7c..b9b585a4e5031 100644
--- a/pkgs/games/prismlauncher/default.nix
+++ b/pkgs/games/prismlauncher/default.nix
@@ -76,7 +76,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     mainProgram = "prismlauncher";
     homepage = "https://prismlauncher.org/";
-    description = "A free, open source launcher for Minecraft";
+    description = "Free, open source launcher for Minecraft";
     longDescription = ''
       Allows you to have multiple, separate instances of Minecraft (each with
       their own mods, texture packs, saves, etc) and helps you manage them and
diff --git a/pkgs/games/pro-office-calculator/default.nix b/pkgs/games/pro-office-calculator/default.nix
index d49bb69cec0cb..f345d4b5d5848 100644
--- a/pkgs/games/pro-office-calculator/default.nix
+++ b/pkgs/games/pro-office-calculator/default.nix
@@ -15,7 +15,7 @@ mkDerivation rec {
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
-    description = "A completely normal office calculator";
+    description = "Completely normal office calculator";
     mainProgram = "procalc";
     homepage = "https://proofficecalculator.com/";
     maintainers = [ maintainers.pmiddend ];
diff --git a/pkgs/games/purpur/default.nix b/pkgs/games/purpur/default.nix
index 33ec936dc63d6..7246c689c9bf9 100644
--- a/pkgs/games/purpur/default.nix
+++ b/pkgs/games/purpur/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A drop-in replacement for Minecraft Paper servers";
+    description = "Drop-in replacement for Minecraft Paper servers";
     longDescription = ''
       Purpur is a drop-in replacement for Minecraft Paper servers designed for configurability, new fun and exciting
       gameplay features, and performance built on top of Airplane.
diff --git a/pkgs/games/qgo/default.nix b/pkgs/games/qgo/default.nix
index 6493dff2d3c11..98dbbb693ba8d 100644
--- a/pkgs/games/qgo/default.nix
+++ b/pkgs/games/qgo/default.nix
@@ -12,7 +12,7 @@ mkDerivation {
   version = "unstable-2017-12-18";
 
   meta = with lib; {
-    description = "A Go client based on Qt5";
+    description = "Go client based on Qt5";
     mainProgram = "qgo";
     longDescription = ''
       qGo is a Go Client based on Qt 5. It supports playing online at
diff --git a/pkgs/games/qtads/default.nix b/pkgs/games/qtads/default.nix
index aef921900ae77..2d5ae31814e02 100644
--- a/pkgs/games/qtads/default.nix
+++ b/pkgs/games/qtads/default.nix
@@ -1,4 +1,4 @@
-{ lib, mkDerivation, fetchFromGitHub, fetchpatch, pkg-config, qmake
+{ lib, mkDerivation, fetchFromGitHub, pkg-config, qmake
 , SDL2, fluidsynth, libsndfile, libvorbis, mpg123, qtbase
 }:
 
diff --git a/pkgs/games/quake3/ioquake/default.nix b/pkgs/games/quake3/ioquake/default.nix
index 437b99ae34391..6340ea8c82f95 100644
--- a/pkgs/games/quake3/ioquake/default.nix
+++ b/pkgs/games/quake3/ioquake/default.nix
@@ -81,7 +81,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "https://ioquake3.org/";
-    description = "A fast-paced 3D first-person shooter, a community effort to continue supporting/developing id's Quake III Arena";
+    description = "Fast-paced 3D first-person shooter, a community effort to continue supporting/developing id's Quake III Arena";
     license = lib.licenses.gpl2Plus;
     mainProgram = "ioquake3";
     maintainers = with lib.maintainers; [ abbradar drupol eelco rvolosatovs ];
diff --git a/pkgs/games/quake3/quake3e/default.nix b/pkgs/games/quake3/quake3e/default.nix
index de6a842cc1332..1ad03d494ab03 100644
--- a/pkgs/games/quake3/quake3e/default.nix
+++ b/pkgs/games/quake3/quake3e/default.nix
@@ -15,7 +15,11 @@
 , copyDesktopItems
 , makeDesktopItem
 }:
-
+let
+  arch =
+    /**/ if stdenv.hostPlatform.isx86_64 then "x64"
+    else stdenv.hostPlatform.parsed.cpu.name;
+in
 stdenv.mkDerivation rec {
   pname = "Quake3e";
   version = "2022-04-01-dev";
@@ -52,8 +56,8 @@ stdenv.mkDerivation rec {
   installPhase = ''
     runHook preInstall
     make install DESTDIR=$out/lib
-    makeWrapper $out/lib/quake3e.x64 $out/bin/quake3e
-    makeWrapper $out/lib/quake3e.ded.x64 $out/bin/quake3e.ded
+    makeWrapper $out/lib/quake3e.${arch} $out/bin/quake3e
+    makeWrapper $out/lib/quake3e.ded.${arch} $out/bin/quake3e.ded
     runHook postInstall
   '';
 
@@ -72,8 +76,5 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ pmiddend ];
-    badPlatforms = platforms.aarch64;
-    # never built on aarch64-linux since first introduction in nixpkgs
-    broken = stdenv.isLinux && stdenv.isAarch64;
   };
 }
diff --git a/pkgs/games/quakespasm/default.nix b/pkgs/games/quakespasm/default.nix
index b9541d1b274e6..6b3080c7573e5 100644
--- a/pkgs/games/quakespasm/default.nix
+++ b/pkgs/games/quakespasm/default.nix
@@ -87,7 +87,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An engine for iD software's Quake";
+    description = "Engine for iD software's Quake";
     homepage = "https://quakespasm.sourceforge.net/";
     longDescription = ''
       QuakeSpasm is a modern, cross-platform Quake 1 engine based on FitzQuake.
diff --git a/pkgs/games/qzdl/default.nix b/pkgs/games/qzdl/default.nix
index 0b44328fb8e4c..ad880c09522f3 100644
--- a/pkgs/games/qzdl/default.nix
+++ b/pkgs/games/qzdl/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A ZDoom WAD Launcher";
+    description = "ZDoom WAD Launcher";
     homepage = "https://zdl.vectec.net";
     license = licenses.gpl3Only;
     inherit (qtbase.meta) platforms;
diff --git a/pkgs/games/r2mod_cli/default.nix b/pkgs/games/r2mod_cli/default.nix
index 3ea7432550fc0..896be4c971783 100644
--- a/pkgs/games/r2mod_cli/default.nix
+++ b/pkgs/games/r2mod_cli/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Risk of Rain 2 Mod Manager in Bash";
+    description = "Risk of Rain 2 Mod Manager in Bash";
     homepage = "https://github.com/foldex/r2mod_cli";
     license = licenses.gpl3Only;
     maintainers = [ maintainers.reedrw ];
diff --git a/pkgs/games/raylib-games/default.nix b/pkgs/games/raylib-games/default.nix
index 34ef5c8014356..802093b8682c4 100644
--- a/pkgs/games/raylib-games/default.nix
+++ b/pkgs/games/raylib-games/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A collection of games made with raylib ";
+    description = "Collection of games made with raylib ";
     homepage = "https://www.raylib.com/games.html";
     license = licenses.zlib;
     maintainers = with maintainers; [ ehmry ];
diff --git a/pkgs/games/redeclipse/default.nix b/pkgs/games/redeclipse/default.nix
index 07c2b9e33adfc..28c112fba3531 100644
--- a/pkgs/games/redeclipse/default.nix
+++ b/pkgs/games/redeclipse/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchurl, fetchpatch
+{ lib, stdenv, fetchurl
 , curl, ed, pkg-config, freetype, zlib, libX11
 , SDL2, SDL2_image, SDL2_mixer
 }:
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A first person arena shooter, featuring parkour, impulse boosts, and more";
+    description = "First person arena shooter, featuring parkour, impulse boosts, and more";
     longDescription = ''
       Red Eclipse is a fun-filled new take on the first person arena shooter,
       featuring parkour, impulse boosts, and more. The development is geared
diff --git a/pkgs/games/rigsofrods-bin/default.nix b/pkgs/games/rigsofrods-bin/default.nix
index fa9edfe72f454..5fc1795056141 100644
--- a/pkgs/games/rigsofrods-bin/default.nix
+++ b/pkgs/games/rigsofrods-bin/default.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A free/libre soft-body physics simulator mainly targeted at simulating vehicle physics";
+    description = "Free/libre soft-body physics simulator mainly targeted at simulating vehicle physics";
     homepage = "https://www.rigsofrods.org";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ raskin wegank ];
diff --git a/pkgs/games/riko4/default.nix b/pkgs/games/riko4/default.nix
index e5e0738d8b0e7..b3721f7f78f43 100644
--- a/pkgs/games/riko4/default.nix
+++ b/pkgs/games/riko4/default.nix
@@ -18,7 +18,7 @@ let
 
     meta = with lib; {
       homepage = "https://github.com/grimfang4/sdl-gpu";
-      description = "A library for high-performance, modern 2D graphics with SDL written in C";
+      description = "Library for high-performance, modern 2D graphics with SDL written in C";
       license = licenses.mit;
       maintainers = with maintainers; [ CrazedProgrammer ];
     };
diff --git a/pkgs/games/rili/default.nix b/pkgs/games/rili/default.nix
index b02cf7e5dea09..4737be3ffc4c3 100644
--- a/pkgs/games/rili/default.nix
+++ b/pkgs/games/rili/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://ri-li.sourceforge.net";
     license = lib.licenses.gpl2Plus;
-    description = "A children's train game";
+    description = "Children's train game";
     longDescription = ''
      Ri-li is an arcade game licensed under the GPL (General Public License).
 You drive a toy wood engine in many levels and you must collect all the coaches
diff --git a/pkgs/games/rocksndiamonds/default.nix b/pkgs/games/rocksndiamonds/default.nix
index 65f0dd9392f7a..2803ca5d18cfd 100644
--- a/pkgs/games/rocksndiamonds/default.nix
+++ b/pkgs/games/rocksndiamonds/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
 , makeDesktopItem
 , SDL2
 , SDL2_image
diff --git a/pkgs/games/rogue/default.nix b/pkgs/games/rogue/default.nix
index a30b856eed9ce..13ee9400cfff9 100644
--- a/pkgs/games/rogue/default.nix
+++ b/pkgs/games/rogue/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://rogue.rogueforge.net/rogue-5-4/";
-    description = "The final version of the original Rogue game developed for the UNIX operating system";
+    description = "Final version of the original Rogue game developed for the UNIX operating system";
     mainProgram = "rogue";
     platforms = platforms.all;
     license = licenses.bsd3;
diff --git a/pkgs/games/sauerbraten/default.nix b/pkgs/games/sauerbraten/default.nix
index e2365f9ad2de1..b32ffadaea161 100644
--- a/pkgs/games/sauerbraten/default.nix
+++ b/pkgs/games/sauerbraten/default.nix
@@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A free multiplayer & singleplayer first person shooter, the successor of the Cube FPS";
+    description = "Free multiplayer & singleplayer first person shooter, the successor of the Cube FPS";
     homepage = "http://sauerbraten.org";
     maintainers = with maintainers; [ raskin ajs124 ];
     mainProgram = "sauerbraten_client";
diff --git a/pkgs/games/scid-vs-pc/default.nix b/pkgs/games/scid-vs-pc/default.nix
index dc76a6149c9d4..0a071237bee7c 100644
--- a/pkgs/games/scid-vs-pc/default.nix
+++ b/pkgs/games/scid-vs-pc/default.nix
@@ -2,11 +2,11 @@
 
 tcl.mkTclDerivation rec {
   pname = "scid-vs-pc";
-  version = "4.24";
+  version = "4.25";
 
   src = fetchurl {
     url = "mirror://sourceforge/scidvspc/scid_vs_pc-${version}.tgz";
-    hash = "sha256-x4Ljn1vaXrue16kUofWAH2sDNYC8h3NvzFjffRo0EhA=";
+    hash = "sha256-YZsBwIp5ouGk75wsAywuYyNSeNjCAx0iWgiA7YmUmnk=";
   };
 
   postPatch = ''
diff --git a/pkgs/games/scrolls/default.nix b/pkgs/games/scrolls/default.nix
index fad783571c5da..7478df20e9930 100644
--- a/pkgs/games/scrolls/default.nix
+++ b/pkgs/games/scrolls/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation {
   version = "2015-10-13";
 
   meta = {
-    description = "A strategy collectible card game";
+    description = "Strategy collectible card game";
     homepage = "https://scrolls.com/";
     # http://www.reddit.com/r/Scrolls/comments/2j3pxw/linux_client_experimental/
 
diff --git a/pkgs/games/shattered-pixel-dungeon/default.nix b/pkgs/games/shattered-pixel-dungeon/default.nix
index dd5b5c0828035..701e2070fa90d 100644
--- a/pkgs/games/shattered-pixel-dungeon/default.nix
+++ b/pkgs/games/shattered-pixel-dungeon/default.nix
@@ -5,13 +5,13 @@
 
 callPackage ./generic.nix rec {
   pname = "shattered-pixel-dungeon";
-  version = "2.4.0";
+  version = "2.4.1";
 
   src = fetchFromGitHub {
     owner = "00-Evan";
     repo = "shattered-pixel-dungeon";
     rev = "v${version}";
-    hash = "sha256-WTmzSuEoXLhr14vm2eQAmhmbTX/v7uKioQ1DcLnvAUw=";
+    hash = "sha256-mt8Zezj/EVsolC2iGNx6E11yO5XahNK7Q3EAohDjT8E=";
   };
 
   depsHash = "sha256-vihoR0bPh7590sRxeYJ1uuynNRxtRBuiFUrdmsRNUJc=";
diff --git a/pkgs/games/shattered-pixel-dungeon/experienced-pixel-dungeon.nix b/pkgs/games/shattered-pixel-dungeon/experienced-pixel-dungeon.nix
index 26d89978c1a21..72ce4f790ad49 100644
--- a/pkgs/games/shattered-pixel-dungeon/experienced-pixel-dungeon.nix
+++ b/pkgs/games/shattered-pixel-dungeon/experienced-pixel-dungeon.nix
@@ -4,18 +4,18 @@
 
 callPackage ./generic.nix rec {
   pname = "experienced-pixel-dungeon";
-  version = "2.17.2";
+  version = "2.18";
 
   src = fetchFromGitHub {
     owner = "TrashboxBobylev";
     repo = "Experienced-Pixel-Dungeon-Redone";
     rev = "ExpPD-${version}";
-    hash = "sha256-eX+wPw2Bi37yQZ+ftjEkiGzvheJZingqDqy1481ABvs=";
+    hash = "sha256-jOKHBd9LaDn3oqLdQWqAcJnicktlbkDGw00nT8JveoI=";
   };
 
   postPatch = ''
     substituteInPlace build.gradle \
-      --replace-fail "gdxControllersVersion = '2.2.3-SNAPSHOT'" "gdxControllersVersion = '2.2.3'"
+      --replace-fail "gdxControllersVersion = '2.2.4-SNAPSHOT'" "gdxControllersVersion = '2.2.3'"
   '';
 
   depsHash = "sha256-PyBEhlOOVD3/YH4SWs1yMkdg3U96znk1/VV6SAr8S30=";
diff --git a/pkgs/games/shattered-pixel-dungeon/shorter-pixel-dungeon.nix b/pkgs/games/shattered-pixel-dungeon/shorter-pixel-dungeon.nix
index 6b52ebe0b5f34..7d775e7e6ed58 100644
--- a/pkgs/games/shattered-pixel-dungeon/shorter-pixel-dungeon.nix
+++ b/pkgs/games/shattered-pixel-dungeon/shorter-pixel-dungeon.nix
@@ -4,13 +4,13 @@
 
 callPackage ./generic.nix rec {
   pname = "shorter-pixel-dungeon";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "TrashboxBobylev";
     repo = "Shorter-Pixel-Dungeon";
     rev = "Short-${version}";
-    hash = "sha256-dfBFAXlMjazTjvvRZ87H48OmitZuHhaa3qUF81pF4wc=";
+    hash = "sha256-iG90T/Ho8/JY3HgkACiBnGdbUGsVRlfxXbcNFHhzZi4=";
   };
 
   postPatch = ''
@@ -18,7 +18,7 @@ callPackage ./generic.nix rec {
       --replace-fail "gdxControllersVersion = '2.2.4-SNAPSHOT'" "gdxControllersVersion = '2.2.3'"
   '';
 
-  depsHash = "sha256-MUUeWZUCVPakK1MJwn0lPnjAlLpPWB/J17Ad68XRcHg=";
+  depsHash = "sha256-PyBEhlOOVD3/YH4SWs1yMkdg3U96znk1/VV6SAr8S30=";
 
   desktopName = "Shorter Pixel Dungeon";
 
diff --git a/pkgs/games/shipwright/darwin-fixes.patch b/pkgs/games/shipwright/darwin-fixes.patch
new file mode 100644
index 0000000000000..ae5e936603ddf
--- /dev/null
+++ b/pkgs/games/shipwright/darwin-fixes.patch
@@ -0,0 +1,37 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2c8644af..157758c9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -166,17 +166,13 @@ endif()
+ if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
+ add_custom_target(CreateOSXIcons
+     COMMAND mkdir -p ${CMAKE_BINARY_DIR}/macosx/soh.iconset
+-    COMMAND sips -z 16 16     soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_16x16.png
+-    COMMAND sips -z 32 32     soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_16x16@2x.png
+-    COMMAND sips -z 32 32     soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_32x32.png
+-    COMMAND sips -z 64 64     soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_32x32@2x.png
+-    COMMAND sips -z 128 128   soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_128x128.png
+-    COMMAND sips -z 256 256   soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_128x128@2x.png
+-    COMMAND sips -z 256 256   soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_256x256.png
+-    COMMAND sips -z 512 512   soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_256x256@2x.png
+-    COMMAND sips -z 512 512   soh/macosx/sohIcon.png --out ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_512x512.png
+-    COMMAND cp                soh/macosx/sohIcon.png ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_512x512@2x.png
+-    COMMAND iconutil -c icns -o ${CMAKE_BINARY_DIR}/macosx/soh.icns ${CMAKE_BINARY_DIR}/macosx/soh.iconset
++    COMMAND convert soh/macosx/sohIcon.png -resize 16x16 ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_16.png
++    COMMAND convert soh/macosx/sohIcon.png -resize 32x32 ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_32.png
++    COMMAND convert soh/macosx/sohIcon.png -resize 64x64 ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_64.png
++    COMMAND convert soh/macosx/sohIcon.png -resize 128x128 ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_128.png
++    COMMAND convert soh/macosx/sohIcon.png -resize 256x256 ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_256.png
++    COMMAND convert soh/macosx/sohIcon.png -resize 512x512 ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_512.png
++    COMMAND png2icns ${CMAKE_BINARY_DIR}/macosx/soh.icns ${CMAKE_BINARY_DIR}/macosx/soh.iconset/icon_{16,32,64,128,256,512}.png
+     WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+     COMMENT "Creating OSX icons ..."
+     )
+@@ -201,7 +197,6 @@ install(DIRECTORY ${CMAKE_BINARY_DIR}/assets
+ 
+ install(CODE "
+     include(BundleUtilities)
+-    fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/soh-macos\" \"\" \"${dirs}\")
+     ")
+ 
+ endif()
diff --git a/pkgs/games/shipwright/default.nix b/pkgs/games/shipwright/default.nix
index 397226fc4ba5c..cdb48733eb012 100644
--- a/pkgs/games/shipwright/default.nix
+++ b/pkgs/games/shipwright/default.nix
@@ -24,8 +24,13 @@
 , imagemagick
 , gnome
 , makeWrapper
+, darwin
+, libicns
 }:
-
+let
+  inherit (darwin.apple_sdk_11_0.frameworks)
+    IOSurface Metal QuartzCore Cocoa AVFoundation;
+in
 stdenv.mkDerivation (finalAttrs: {
   pname = "shipwright";
   version = "8.0.5";
@@ -38,6 +43,10 @@ stdenv.mkDerivation (finalAttrs: {
     fetchSubmodules = true;
   };
 
+  patches = [
+    ./darwin-fixes.patch
+  ];
+
   # This would get fetched at build time otherwise, see:
   # https://github.com/HarbourMasters/Shipwright/blob/e46c60a7a1396374e23f7a1f7122ddf9efcadff7/soh/CMakeLists.txt#L736
   gamecontrollerdb = fetchurl {
@@ -50,27 +59,39 @@ stdenv.mkDerivation (finalAttrs: {
     cmake
     ninja
     pkg-config
-    lsb-release
     python3
     imagemagick
-    copyDesktopItems
     makeWrapper
+  ] ++ lib.optionals stdenv.isLinux [
+    lsb-release
+    copyDesktopItems
+  ] ++ lib.optionals stdenv.isDarwin [
+    libicns
+    darwin.sigtool
   ];
 
   buildInputs = [
     boost
+    glew
+    SDL2
+    SDL2_net
+    libpng
+  ] ++ lib.optionals stdenv.isLinux [
     libX11
     libXrandr
     libXinerama
     libXcursor
     libXi
     libXext
-    glew
-    SDL2
-    SDL2_net
     libpulseaudio
-    libpng
     gnome.zenity
+  ] ++ lib.optionals stdenv.isDarwin [
+    IOSurface
+    Metal
+    QuartzCore
+    Cocoa
+    AVFoundation
+    darwin.apple_sdk_11_0.libs.simd
   ];
 
   cmakeFlags = [
@@ -78,6 +99,9 @@ stdenv.mkDerivation (finalAttrs: {
     (lib.cmakeBool "NON_PORTABLE" true)
   ];
 
+  env.NIX_CFLAGS_COMPILE =
+    lib.optionalString stdenv.isDarwin "-Wno-int-conversion -Wno-implicit-int";
+
   dontAddPrefix = true;
 
   # Linking fails without this
@@ -90,18 +114,60 @@ stdenv.mkDerivation (finalAttrs: {
     popd
   '';
 
-  preInstall = ''
+  preInstall = lib.optionalString stdenv.isLinux ''
     # Cmake likes it here for its install paths
     cp ../OTRExporter/soh.otr ..
+  '' + lib.optionalString stdenv.isDarwin ''
+    cp ../OTRExporter/soh.otr soh/soh.otr
   '';
 
-  postInstall = ''
+  postInstall = lib.optionalString stdenv.isLinux ''
     mkdir -p $out/bin
     ln -s $out/lib/soh.elf $out/bin/soh
     install -Dm644 ../soh/macosx/sohIcon.png $out/share/pixmaps/soh.png
+  '' + lib.optionalString stdenv.isDarwin ''
+    # Recreate the macOS bundle (without using cpack)
+    # We mirror the structure of the bundle distributed by the project
+
+    mkdir -p $out/Applications/soh.app/Contents
+    cp $src/soh/macosx/Info.plist.in $out/Applications/soh.app/Contents/Info.plist
+    substituteInPlace $out/Applications/soh.app/Contents/Info.plist \
+      --replace-fail "@CMAKE_PROJECT_VERSION@" "${finalAttrs.version}"
+
+    mv $out/MacOS $out/Applications/soh.app/Contents/MacOS
+
+    # Wrapper
+    cp $src/soh/macosx/soh-macos.sh.in $out/Applications/soh.app/Contents/MacOS/soh
+    chmod +x $out/Applications/soh.app/Contents/MacOS/soh
+    patchShebangs $out/Applications/soh.app/Contents/MacOS/soh
+
+    # "lib" contains all resources that are in "Resources" in the official bundle.
+    # We move them to the right place and symlink them back to $out/lib,
+    # as that's where the game expects them.
+    mv $out/Resources $out/Applications/soh.app/Contents/Resources
+    mv $out/lib/** $out/Applications/soh.app/Contents/Resources
+    rm -rf $out/lib
+    ln -s $out/Applications/soh.app/Contents/Resources $out/lib
+
+    # Copy icons
+    cp -r ../build/macosx/soh.icns $out/Applications/soh.app/Contents/Resources/soh.icns
+
+    # Fix executable
+    install_name_tool -change @executable_path/../Frameworks/libSDL2-2.0.0.dylib \
+                      ${SDL2}/lib/libSDL2-2.0.0.dylib \
+                      $out/Applications/soh.app/Contents/Resources/soh-macos
+    install_name_tool -change @executable_path/../Frameworks/libGLEW.2.2.0.dylib \
+                      ${glew}/lib/libGLEW.2.2.0.dylib \
+                      $out/Applications/soh.app/Contents/Resources/soh-macos
+    install_name_tool -change @executable_path/../Frameworks/libpng16.16.dylib \
+                      ${libpng}/lib/libpng16.16.dylib \
+                      $out/Applications/soh.app/Contents/Resources/soh-macos
+
+    # Codesign (ad-hoc)
+    codesign -f -s - $out/Applications/soh.app/Contents/Resources/soh-macos
   '';
 
-  fixupPhase = ''
+  fixupPhase = lib.optionalString stdenv.isLinux ''
     wrapProgram $out/lib/soh.elf --prefix PATH ":" ${lib.makeBinPath [ gnome.zenity ]}
   '';
 
@@ -121,8 +187,8 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://github.com/HarbourMasters/Shipwright";
     description = "A PC port of Ocarina of Time with modern controls, widescreen, high-resolution, and more";
     mainProgram = "soh";
-    platforms = [ "x86_64-linux" ];
-    maintainers = with lib.maintainers; [ ivar j0lol ];
+    platforms = [ "x86_64-linux" ] ++ lib.platforms.darwin;
+    maintainers = with lib.maintainers; [ ivar j0lol matteopacini ];
     license = with lib.licenses; [
       # OTRExporter, OTRGui, ZAPDTR, libultraship
       mit
diff --git a/pkgs/games/sil-q/default.nix b/pkgs/games/sil-q/default.nix
index e029d77a02dbd..9a52a05db93f5 100644
--- a/pkgs/games/sil-q/default.nix
+++ b/pkgs/games/sil-q/default.nix
@@ -55,7 +55,7 @@ in stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "A roguelike game set in the First Age of Middle-earth";
+    description = "Roguelike game set in the First Age of Middle-earth";
     mainProgram = "sil-q";
     longDescription = ''
       A game of adventure set in the First Age of Middle-earth, when the world still
diff --git a/pkgs/games/sil/default.nix b/pkgs/games/sil/default.nix
index 0c6a11f479817..e8f88074b66d8 100644
--- a/pkgs/games/sil/default.nix
+++ b/pkgs/games/sil/default.nix
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "A rogue-like game set in the First Age of Middle-earth";
+    description = "Rogue-like game set in the First Age of Middle-earth";
     longDescription = ''
       A game of adventure set in the First Age of Middle-earth, when the world still
       rang with Elven song and gleamed with Dwarven mail.
diff --git a/pkgs/games/simutrans/default.nix b/pkgs/games/simutrans/default.nix
index c89cdf7c8588f..5c668557027e3 100644
--- a/pkgs/games/simutrans/default.nix
+++ b/pkgs/games/simutrans/default.nix
@@ -153,7 +153,7 @@ let
     '';
 
     meta = with lib; {
-      description = "A simulation game in which the player strives to run a successful transport system";
+      description = "Simulation game in which the player strives to run a successful transport system";
       mainProgram = "simutrans";
       longDescription = ''
         Simutrans is a cross-platform simulation game in which the
diff --git a/pkgs/games/sm64ex/generic.nix b/pkgs/games/sm64ex/generic.nix
index 95ba3be4a5691..d3da340d502fb 100644
--- a/pkgs/games/sm64ex/generic.nix
+++ b/pkgs/games/sm64ex/generic.nix
@@ -10,7 +10,6 @@
 
 , lib
 , stdenv
-, fetchFromGitHub
 , python3
 , pkg-config
 , audiofile
diff --git a/pkgs/games/snake4/default.nix b/pkgs/games/snake4/default.nix
index aee8b9e0810ca..79524e974c4d2 100644
--- a/pkgs/games/snake4/default.nix
+++ b/pkgs/games/snake4/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
                    "INSTMANDIR=$(out)/man" ];
 
   meta = with lib; {
-    description = "A game starring a fruit-eating snake";
+    description = "Game starring a fruit-eating snake";
     homepage = "https://shh.thathost.com/pub-unix/html/snake4.html";
     license = licenses.artistic1;
     platforms = platforms.linux;
diff --git a/pkgs/games/soi/default.nix b/pkgs/games/soi/default.nix
index e0526ff442351..67f1b5b211a71 100644
--- a/pkgs/games/soi/default.nix
+++ b/pkgs/games/soi/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A physics-based puzzle game";
+    description = "Physics-based puzzle game";
     mainProgram = "soi";
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
diff --git a/pkgs/games/solarus/default.nix b/pkgs/games/solarus/default.nix
index 0e95a77a7cd46..fd80b03066ce6 100644
--- a/pkgs/games/solarus/default.nix
+++ b/pkgs/games/solarus/default.nix
@@ -28,7 +28,7 @@ mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Zelda-like ARPG game engine";
+    description = "Zelda-like ARPG game engine";
     longDescription = ''
       Solarus is a game engine for Zelda-like ARPG games written in lua.
       Many full-fledged games have been writen for the engine.
diff --git a/pkgs/games/solicurses/default.nix b/pkgs/games/solicurses/default.nix
index afa49bbd5ce19..5ed776f9f1c6f 100644
--- a/pkgs/games/solicurses/default.nix
+++ b/pkgs/games/solicurses/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A version of Solitaire written in C++ using the ncurses library";
+    description = "Version of Solitaire written in C++ using the ncurses library";
     mainProgram = "solicurses";
     homepage = "https://github.com/KaylaPP/SoliCurses";
     maintainers = with maintainers; [ laalsaas ];
diff --git a/pkgs/games/space-cadet-pinball/default.nix b/pkgs/games/space-cadet-pinball/default.nix
index 20016809f255d..53edf5860518a 100644
--- a/pkgs/games/space-cadet-pinball/default.nix
+++ b/pkgs/games/space-cadet-pinball/default.nix
@@ -1,7 +1,6 @@
 { lib, stdenv, fetchFromGitHub, fetchzip
 , cmake, SDL2, SDL2_mixer, Cocoa
 , unrar-wrapper, makeWrapper
-, fetchpatch
 }:
 
 let
diff --git a/pkgs/games/space-orbit/default.nix b/pkgs/games/space-orbit/default.nix
index 7762bde4cfa5a..4e3e044bbbfe9 100644
--- a/pkgs/games/space-orbit/default.nix
+++ b/pkgs/games/space-orbit/default.nix
@@ -39,7 +39,7 @@ EOF
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A space combat simulator";
+    description = "Space combat simulator";
     mainProgram = "space-orbit";
     license = licenses.gpl2;
     platforms = platforms.all;
diff --git a/pkgs/games/space-station-14-launcher/space-station-14-launcher.nix b/pkgs/games/space-station-14-launcher/space-station-14-launcher.nix
index c2071552e4cc2..be4a50034b914 100644
--- a/pkgs/games/space-station-14-launcher/space-station-14-launcher.nix
+++ b/pkgs/games/space-station-14-launcher/space-station-14-launcher.nix
@@ -31,7 +31,7 @@
 , gdk-pixbuf
 }:
 let
-  version = "0.26.0";
+  version = "0.27.2";
   pname = "space-station-14-launcher";
 in
 buildDotnetModule rec {
@@ -44,7 +44,7 @@ buildDotnetModule rec {
     owner = "space-wizards";
     repo = "SS14.Launcher";
     rev = "v${version}";
-    hash = "sha256-Gh2gQucn3VsfFrPAS/vehfVy5WqlVpvSeISB4/j08MQ=";
+    hash = "sha256-r+nNZ2xkHMp8bmNNqbf4WnmGP3SIxCtHUCfGxfydTH4=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/games/spring/default.nix b/pkgs/games/spring/default.nix
index 0a2eb6cfc9113..1185894dae66c 100644
--- a/pkgs/games/spring/default.nix
+++ b/pkgs/games/spring/default.nix
@@ -83,7 +83,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://springrts.com/";
-    description = "A powerful real-time strategy (RTS) game engine";
+    description = "Powerful real-time strategy (RTS) game engine";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ qknight domenkozar sorki ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/games/steam/fhsenv.nix b/pkgs/games/steam/fhsenv.nix
index 95668e1ecea99..a2157da80d6b9 100644
--- a/pkgs/games/steam/fhsenv.nix
+++ b/pkgs/games/steam/fhsenv.nix
@@ -190,11 +190,14 @@ in buildFHSEnv rec {
     libvdpau
 
     # required by coreutils stuff to run correctly
-    # Steam ends up with LD_LIBRARY_PATH=<bunch of runtime stuff>:/usr/lib:<etc>
+    # Steam ends up with LD_LIBRARY_PATH=/usr/lib:<bunch of runtime stuff>:<etc>
     # which overrides DT_RUNPATH in our binaries, so it tries to dynload the
     # very old versions of stuff from the runtime.
     # FIXME: how do we even fix this correctly
     attr
+    # same thing, but for Xwayland (usually via gamescope), already in the closure
+    libkrb5
+    keyutils
   ] ++ lib.optionals withGameSpecificLibraries [
     # Not formally in runtime but needed by some games
     at-spi2-atk
@@ -277,7 +280,7 @@ in buildFHSEnv rec {
     WARNING: Steam is not set up. Add the following options to /etc/nixos/configuration.nix
     and then run \`sudo nixos-rebuild switch\`:
     {
-      hardware.opengl.driSupport32Bit = true;
+      hardware.graphics.enable32Bit = true;
       hardware.pulseaudio.support32Bit = true;
     }
     **
diff --git a/pkgs/games/steam/runtime.nix b/pkgs/games/steam/runtime.nix
index 563a09d369073..f736ac8daa47c 100644
--- a/pkgs/games/steam/runtime.nix
+++ b/pkgs/games/steam/runtime.nix
@@ -8,11 +8,11 @@ stdenv.mkDerivation (finalAttrs: {
 
   pname = "steam-runtime";
   # from https://repo.steampowered.com/steamrt-images-scout/snapshots/latest-steam-client-general-availability/VERSION.txt
-  version = "0.20231127.68515";
+  version = "0.20240415.84615";
 
   src = fetchurl {
     url = "https://repo.steampowered.com/steamrt-images-scout/snapshots/${finalAttrs.version}/steam-runtime.tar.xz";
-    hash = "sha256-invUOdJGNhrswsj9Vj/bSAkEigWtBQ554sBAyvPf0mk=";
+    hash = "sha256-C8foNnIVA+O4YwuCrIf9N6Lr/GlApPVgZsYgi+3OZUE=";
     name = "scout-runtime-${finalAttrs.version}.tar.gz";
   };
 
@@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = {
-    description = "The official runtime used by Steam";
+    description = "Official runtime used by Steam";
     homepage = "https://github.com/ValveSoftware/steam-runtime";
     license = lib.licenses.unfreeRedistributable; # Includes NVIDIA CG toolkit
     maintainers = with lib.maintainers; [ hrdinka abbradar ];
diff --git a/pkgs/games/steam/steam.nix b/pkgs/games/steam/steam.nix
index 2687ee7febdd4..92c45cc7c06fd 100644
--- a/pkgs/games/steam/steam.nix
+++ b/pkgs/games/steam/steam.nix
@@ -40,7 +40,7 @@ in stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A digital distribution platform";
+    description = "Digital distribution platform";
     longDescription = ''
       Steam is a video game digital distribution service and storefront from Valve.
 
diff --git a/pkgs/games/steam/steamcmd.nix b/pkgs/games/steam/steamcmd.nix
index 1c834f1c2ea69..69d5cd8a7863c 100644
--- a/pkgs/games/steam/steamcmd.nix
+++ b/pkgs/games/steam/steamcmd.nix
@@ -7,8 +7,8 @@ stdenv.mkDerivation {
   version = "20180104"; # According to steamcmd_linux.tar.gz mtime
 
   src = fetchurl {
-    url = "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz";
-    sha256 = "0z0y0zqvhydmfc9y9vg5am0vz7m3gbj4l2dwlrfz936hpx301gyf";
+    url = "https://web.archive.org/web/20240521141411/https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz";
+    hash = "sha256-zr8ARr/QjPRdprwJSuR6o56/QVXl7eQTc7V5uPEHHnw=";
   };
 
   # The source tarball does not have a single top-level directory.
@@ -37,8 +37,9 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "Steam command-line tools";
     homepage = "https://developer.valvesoftware.com/wiki/SteamCMD";
+    description = "Steam command-line tools";
+    mainProgram = "steamcmd";
     platforms = platforms.linux;
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ tadfisher ];
diff --git a/pkgs/games/stone-kingdoms/default.nix b/pkgs/games/stone-kingdoms/default.nix
index 3680f3af1275c..a8b84c60b1e89 100644
--- a/pkgs/games/stone-kingdoms/default.nix
+++ b/pkgs/games/stone-kingdoms/default.nix
@@ -51,7 +51,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A real-time strategy game made with LÖVE based on the original Stronghold by Firefly studios";
+    description = "Real-time strategy game made with LÖVE based on the original Stronghold by Firefly studios";
     homepage = "https://gitlab.com/stone-kingdoms/stone-kingdoms";
     platforms = platforms.linux;
     license = with licenses; [
diff --git a/pkgs/games/super-tux-kart/default.nix b/pkgs/games/super-tux-kart/default.nix
index 1d55465d0092c..69bdb24cea7c5 100644
--- a/pkgs/games/super-tux-kart/default.nix
+++ b/pkgs/games/super-tux-kart/default.nix
@@ -144,7 +144,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Free 3D kart racing game";
+    description = "Free 3D kart racing game";
     mainProgram = "supertuxkart";
     longDescription = ''
       SuperTuxKart is a Free 3D kart racing game, with many tracks,
diff --git a/pkgs/games/system-syzygy/default.nix b/pkgs/games/system-syzygy/default.nix
index 3e86eb6c50c92..b478259a8a9c3 100644
--- a/pkgs/games/system-syzygy/default.nix
+++ b/pkgs/games/system-syzygy/default.nix
@@ -44,7 +44,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A story and a puzzle game, where you solve a variety of puzzle";
+    description = "Story and a puzzle game, where you solve a variety of puzzle";
     mainProgram = "syzygy";
     homepage = "https://mdsteele.games/syzygy";
     license = licenses.gpl3Plus;
diff --git a/pkgs/games/t4kcommon/default.nix b/pkgs/games/t4kcommon/default.nix
index b9f9635321b8f..7fa7d686b1780 100644
--- a/pkgs/games/t4kcommon/default.nix
+++ b/pkgs/games/t4kcommon/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ SDL SDL_image SDL_mixer SDL_net SDL_ttf libpng librsvg libxml2 ];
 
   meta = with lib; {
-    description = "A library of code shared between tuxmath and tuxtype";
+    description = "Library of code shared between tuxmath and tuxtype";
     homepage = "https://github.com/tux4kids/t4kcommon";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.aanderse ];
diff --git a/pkgs/games/taisei/default.nix b/pkgs/games/taisei/default.nix
index 148329d32052d..cb87e48da38eb 100644
--- a/pkgs/games/taisei/default.nix
+++ b/pkgs/games/taisei/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A free and open-source Touhou Project clone and fangame";
+    description = "Free and open-source Touhou Project clone and fangame";
     mainProgram = "taisei";
     longDescription = ''
       Taisei is an open clone of the Tōhō Project series. Tōhō is a one-man
diff --git a/pkgs/games/tcl2048/default.nix b/pkgs/games/tcl2048/default.nix
index b74d3630e0e69..1937ccd0f040e 100644
--- a/pkgs/games/tcl2048/default.nix
+++ b/pkgs/games/tcl2048/default.nix
@@ -19,7 +19,7 @@ tcl.mkTclDerivation rec {
 
   meta = {
     homepage = "https://github.com/dbohdan/2048.tcl";
-    description = "The game of 2048 implemented in Tcl";
+    description = "Game of 2048 implemented in Tcl";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ dbohdan ];
     mainProgram = "2048";
diff --git a/pkgs/games/tecnoballz/default.nix b/pkgs/games/tecnoballz/default.nix
index b51cc1afed91f..0d19a2c0f7e24 100644
--- a/pkgs/games/tecnoballz/default.nix
+++ b/pkgs/games/tecnoballz/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://linux.tlk.fr/games/TecnoballZ/";
     downloadPage = "https://linux.tlk.fr/games/TecnoballZ/download/";
-    description = "A brick breaker game with a sophisticated system of weapons and bonuses";
+    description = "Brick breaker game with a sophisticated system of weapons and bonuses";
     mainProgram = "tecnoballz";
     longDescription = ''
       A exciting Brick Breaker with 50 levels of game and 11 special levels,
diff --git a/pkgs/games/tes3cmd/default.nix b/pkgs/games/tes3cmd/default.nix
index b394c2323c217..18fa0edc43683 100644
--- a/pkgs/games/tes3cmd/default.nix
+++ b/pkgs/games/tes3cmd/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A command line tool for examining and modifying plugins for the Elder Scrolls game Morrowind by Bethesda Softworks";
+    description = "Command line tool for examining and modifying plugins for the Elder Scrolls game Morrowind by Bethesda Softworks";
     mainProgram = "tes3cmd";
     homepage = "https://github.com/john-moonsugar/tes3cmd";
     license = licenses.mit;
diff --git a/pkgs/games/the-butterfly-effect/default.nix b/pkgs/games/the-butterfly-effect/default.nix
index 1d77be3c5a8ab..e589018eddefd 100644
--- a/pkgs/games/the-butterfly-effect/default.nix
+++ b/pkgs/games/the-butterfly-effect/default.nix
@@ -30,7 +30,7 @@ mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A physics-based game vaguely similar to Incredible Machine";
+    description = "Physics-based game vaguely similar to Incredible Machine";
     mainProgram = "tbe";
     homepage = "http://the-butterfly-effect.org/";
     maintainers = [ maintainers.raskin ];
diff --git a/pkgs/games/tintin/default.nix b/pkgs/games/tintin/default.nix
index b8945cfb3d551..6f56512b1da24 100644
--- a/pkgs/games/tintin/default.nix
+++ b/pkgs/games/tintin/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A free MUD client for macOS, Linux and Windows";
+    description = "Free MUD client for macOS, Linux and Windows";
     homepage    = "https://tintin.mudhalla.net/index.php";
     license     = licenses.gpl3Plus;
     maintainers = with maintainers; [ abathur ];
diff --git a/pkgs/games/tinyfugue/default.nix b/pkgs/games/tinyfugue/default.nix
index e03364f4a1ad8..6cb80663bdb78 100644
--- a/pkgs/games/tinyfugue/default.nix
+++ b/pkgs/games/tinyfugue/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://tinyfugue.sourceforge.net/";
-    description = "A terminal UI, screen-oriented MUD client";
+    description = "Terminal UI, screen-oriented MUD client";
     mainProgram = "tf";
     longDescription = ''
       TinyFugue, aka "tf", is a flexible, screen-oriented MUD client, for use
diff --git a/pkgs/games/trigger/default.nix b/pkgs/games/trigger/default.nix
index 2182667173511..3e8862f66e3a9 100644
--- a/pkgs/games/trigger/default.nix
+++ b/pkgs/games/trigger/default.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    description = "A fast-paced single-player racing game";
+    description = "Fast-paced single-player racing game";
     mainProgram = "trigger-rally";
     homepage = "http://trigger-rally.sourceforge.net/";
     license = lib.licenses.gpl2;
diff --git a/pkgs/games/tuxtype/default.nix b/pkgs/games/tuxtype/default.nix
index 822dac9808dcc..58a31d4695362 100644
--- a/pkgs/games/tuxtype/default.nix
+++ b/pkgs/games/tuxtype/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--without-sdlpango" ];
 
   meta = with lib; {
-    description = "An Educational Typing Tutor Game Starring Tux, the Linux Penguin";
+    description = "Educational Typing Tutor Game Starring Tux, the Linux Penguin";
     mainProgram = "tuxtype";
     homepage = "https://github.com/tux4kids/tuxtype";
     license = licenses.gpl3Plus;
diff --git a/pkgs/games/typespeed/default.nix b/pkgs/games/typespeed/default.nix
index 483f631fcea9c..8b9881a68a8a8 100644
--- a/pkgs/games/typespeed/default.nix
+++ b/pkgs/games/typespeed/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   meta = with lib; {
-    description = "A curses based typing game";
+    description = "Curses based typing game";
     mainProgram = "typespeed";
     homepage = "https://typespeed.sourceforge.net/";
     license = licenses.gpl2;
diff --git a/pkgs/games/ufoai/default.nix b/pkgs/games/ufoai/default.nix
index 1272097ecb93e..0200d919d2f09 100644
--- a/pkgs/games/ufoai/default.nix
+++ b/pkgs/games/ufoai/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://ufoai.org";
-    description = "A squad-based tactical strategy game in the tradition of X-Com";
+    description = "Squad-based tactical strategy game in the tradition of X-Com";
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [viric];
     platforms = lib.platforms.linux;
diff --git a/pkgs/games/uhexen2/default.nix b/pkgs/games/uhexen2/default.nix
index 1a43679bd127e..1d44b16c3aef9 100644
--- a/pkgs/games/uhexen2/default.nix
+++ b/pkgs/games/uhexen2/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A cross-platform port of Hexen II game";
+    description = "Cross-platform port of Hexen II game";
     longDescription = ''
       Hammer of Thyrion (uHexen2) is a cross-platform port of Raven Software's Hexen II source.
       It is based on an older linux port, Anvil of Thyrion.
diff --git a/pkgs/games/ultrastardx/default.nix b/pkgs/games/ultrastardx/default.nix
index e7401ac9dfbe3..7708652d22b31 100644
--- a/pkgs/games/ultrastardx/default.nix
+++ b/pkgs/games/ultrastardx/default.nix
@@ -1,7 +1,6 @@
 { lib, stdenv
 , autoreconfHook
 , fetchFromGitHub
-, fetchpatch
 , pkg-config
 , lua
 , fpc
@@ -31,13 +30,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "ultrastardx";
-  version = "2024.3.0";
+  version = "2024.5.1";
 
   src = fetchFromGitHub {
     owner = "UltraStar-Deluxe";
     repo = "USDX";
     rev = "v${version}";
-    hash = "sha256-0+7PMSnQoNu6tcR9MB6b94fWlMRvH10ySUhdSicWU8U=";
+    hash = "sha256-HtvKy3uQwIO2BiLUqIcv9crf9Ngq0dmYOm6E8Gm2EHs=";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook ];
diff --git a/pkgs/games/umoria/default.nix b/pkgs/games/umoria/default.nix
index 91097ca542763..c6302eba34bfd 100644
--- a/pkgs/games/umoria/default.nix
+++ b/pkgs/games/umoria/default.nix
@@ -63,7 +63,7 @@ gcc9Stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://umoria.org/";
-    description = "The Dungeons of Moria - the original roguelike";
+    description = "Dungeons of Moria - the original roguelike";
     mainProgram = "umoria";
     longDescription = ''
       The Dungeons of Moria is a single player dungeon simulation originally written
diff --git a/pkgs/games/unvanquished/default.nix b/pkgs/games/unvanquished/default.nix
index 628c72a24a926..95603a9559fb0 100644
--- a/pkgs/games/unvanquished/default.nix
+++ b/pkgs/games/unvanquished/default.nix
@@ -2,7 +2,6 @@
 , stdenv
 , fetchzip
 , fetchFromGitHub
-, fetchpatch
 , SDL2
 , buildFHSEnv
 , cmake
@@ -220,7 +219,7 @@ in stdenv.mkDerivation rec {
   meta = {
     homepage = "https://unvanquished.net/";
     downloadPage = "https://unvanquished.net/download/";
-    description = "A fast paced, first person strategy game";
+    description = "Fast paced, first person strategy game";
     # don't replace the following lib.licenses.zlib with just "zlib",
     # or you would end up with the package instead
     license = with lib.licenses; [
diff --git a/pkgs/games/urbanterror/default.nix b/pkgs/games/urbanterror/default.nix
index a1bf80784d03b..cce5deaac246d 100644
--- a/pkgs/games/urbanterror/default.nix
+++ b/pkgs/games/urbanterror/default.nix
@@ -98,7 +98,7 @@ stdenv.mkDerivation {
   ];
 
   meta = {
-    description = "A multiplayer tactical FPS on top of Quake 3 engine";
+    description = "Multiplayer tactical FPS on top of Quake 3 engine";
     homepage = "https://www.urbanterror.info";
     license = lib.licenses.unfreeRedistributable;
     longDescription = ''
diff --git a/pkgs/games/ut2004/demo.nix b/pkgs/games/ut2004/demo.nix
index 5203453cc6010..caa6651e457fb 100644
--- a/pkgs/games/ut2004/demo.nix
+++ b/pkgs/games/ut2004/demo.nix
@@ -31,7 +31,7 @@ in stdenv.mkDerivation rec {
   dontPatchELF = true;
 
   meta = with lib; {
-    description = "A first-person shooter video game developed by Epic Games and Digital Extreme -- demo version";
+    description = "First-person shooter video game developed by Epic Games and Digital Extreme -- demo version";
     homepage = "http://www.unrealtournament2004.com";
     license = licenses.unfree;
     maintainers = with maintainers; [ abbradar ];
diff --git a/pkgs/games/vassal/default.nix b/pkgs/games/vassal/default.nix
index 1bb5c06ea98be..45b1e6f68e4ef 100644
--- a/pkgs/games/vassal/default.nix
+++ b/pkgs/games/vassal/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   forceShare = [ "man" "info" ];
 
   meta = with lib; {
-      description = "A free, open-source boardgame engine";
+      description = "Free, open-source boardgame engine";
       homepage = "https://vassalengine.org/";
       sourceProvenance = with sourceTypes; [ binaryBytecode ];
       license = licenses.lgpl21Only;
diff --git a/pkgs/games/vcmi/default.nix b/pkgs/games/vcmi/default.nix
index ec6905e2d1304..4ec4e030b1635 100644
--- a/pkgs/games/vcmi/default.nix
+++ b/pkgs/games/vcmi/default.nix
@@ -20,6 +20,7 @@
 , tbb
 , unshield
 , wrapQtAppsHook
+, xz
 , zlib
 , testers
 , vcmi
@@ -27,13 +28,14 @@
 
 stdenv.mkDerivation rec {
   pname = "vcmi";
-  version = "1.4.5";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     owner = "vcmi";
     repo = "vcmi";
     rev = version;
-    hash = "sha256-nyYzG0O7tZwo77r7QwenVgaTffZ3ELEyUrkZmdvwm/w=";
+    fetchSubmodules = true;
+    hash = "sha256-Hn3qNTWFU3SMBTJxA2owsAQqIl9wZy33B2Mp4UdlLn4=";
   };
 
   nativeBuildInputs = [
@@ -57,13 +59,14 @@ stdenv.mkDerivation rec {
     qtbase
     qttools
     tbb
+    xz
     zlib
   ];
 
   cmakeFlags = [
     "-DENABLE_LUA:BOOL=ON"
     "-DENABLE_ERM:BOOL=ON"
-    "-DENABLE_GITVERSION:BOOL=OFF"
+    "-DENABLE_GOLDMASTER:BOOL=ON"
     "-DENABLE_PCH:BOOL=OFF"
     "-DENABLE_TEST:BOOL=OFF" # Tests require HOMM3 data files.
     "-DFORCE_BUNDLED_MINIZIP:BOOL=OFF"
@@ -88,7 +91,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "An open-source engine for Heroes of Might and Magic III";
+    description = "Open-source engine for Heroes of Might and Magic III";
     homepage = "https://vcmi.eu";
     changelog = "https://github.com/vcmi/vcmi/blob/${src.rev}/ChangeLog.md";
     license = with licenses; [ gpl2Plus cc-by-sa-40 ];
diff --git a/pkgs/games/vessel/default.nix b/pkgs/games/vessel/default.nix
index 7c535cb323ec7..42408cd042aa0 100644
--- a/pkgs/games/vessel/default.nix
+++ b/pkgs/games/vessel/default.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A fluid physics based puzzle game";
+    description = "Fluid physics based puzzle game";
     longDescription = ''
       Living liquid machines have overrun this world of unstoppable progress,
       and it is the role of their inventor, Arkwright, to stop the chaos they are
diff --git a/pkgs/games/vimgolf/default.nix b/pkgs/games/vimgolf/default.nix
index 2847ff7dd3bfd..917dd3ffdfa94 100644
--- a/pkgs/games/vimgolf/default.nix
+++ b/pkgs/games/vimgolf/default.nix
@@ -8,7 +8,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "vimgolf";
 
   meta = with lib; {
-    description = "A game that tests Vim efficiency";
+    description = "Game that tests Vim efficiency";
     homepage = "https://vimgolf.com";
     license = licenses.mit;
     maintainers = with maintainers; [ leungbk ];
diff --git a/pkgs/games/vintagestory/default.nix b/pkgs/games/vintagestory/default.nix
index 7134139c62505..b32417d7754bf 100644
--- a/pkgs/games/vintagestory/default.nix
+++ b/pkgs/games/vintagestory/default.nix
@@ -20,11 +20,11 @@
 
 stdenv.mkDerivation rec {
   pname = "vintagestory";
-  version = "1.19.7";
+  version = "1.19.8";
 
   src = fetchurl {
     url = "https://cdn.vintagestory.at/gamefiles/stable/vs_client_linux-x64_${version}.tar.gz";
-    hash = "sha256-C+vPsoMlo6EKmzf+XkvIhrDGG7EccU8c36GZt0/1r1Q=";
+    hash = "sha256-R6J+ACYDQpOzJZFBizsQGOexR7lMyeoZqz9TnWxfwyM=";
   };
 
 
@@ -83,7 +83,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An in-development indie sandbox game about innovation and exploration";
+    description = "In-development indie sandbox game about innovation and exploration";
     homepage = "https://www.vintagestory.at/";
     license = licenses.unfree;
     maintainers = with maintainers; [ artturin gigglesquid ];
diff --git a/pkgs/games/warzone2100/default.nix b/pkgs/games/warzone2100/default.nix
index a39b7915b187b..2d16cb5c73191 100644
--- a/pkgs/games/warzone2100/default.nix
+++ b/pkgs/games/warzone2100/default.nix
@@ -122,7 +122,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A free RTS game, originally developed by Pumpkin Studios";
+    description = "Free RTS game, originally developed by Pumpkin Studios";
     mainProgram = "warzone2100";
     longDescription = ''
         Warzone 2100 is an open source real-time strategy and real-time tactics
diff --git a/pkgs/games/wesnoth/default.nix b/pkgs/games/wesnoth/default.nix
index 54a7aaa822c32..9106ad9f425b9 100644
--- a/pkgs/games/wesnoth/default.nix
+++ b/pkgs/games/wesnoth/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-framework AppKit";
 
   meta = with lib; {
-    description = "The Battle for Wesnoth, a free, turn-based strategy game with a fantasy theme";
+    description = "Battle for Wesnoth, a free, turn-based strategy game with a fantasy theme";
     longDescription = ''
       The Battle for Wesnoth is a Free, turn-based tactical strategy
       game with a high fantasy theme, featuring both single-player, and
diff --git a/pkgs/games/widelands/default.nix b/pkgs/games/widelands/default.nix
index 324f388e716e9..0be50f2b8be12 100644
--- a/pkgs/games/widelands/default.nix
+++ b/pkgs/games/widelands/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , pkg-config # needed to find minizip
 , SDL2
 , SDL2_image
diff --git a/pkgs/games/wipeout-rewrite/default.nix b/pkgs/games/wipeout-rewrite/default.nix
index 16703fad517b2..99e7d9b9d31c1 100644
--- a/pkgs/games/wipeout-rewrite/default.nix
+++ b/pkgs/games/wipeout-rewrite/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     mainProgram = "wipegame";
-    description = "A re-implementation of the 1995 PSX game wipEout";
+    description = "Re-implementation of the 1995 PSX game wipEout";
     homepage = "https://github.com/phoboslab/wipeout-rewrite";
     license = licenses.unfree;
     maintainers = with maintainers; [ OPNA2608 ];
diff --git a/pkgs/games/worldofgoo/default.nix b/pkgs/games/worldofgoo/default.nix
index 23ba7eb86155e..123e296f5e0a9 100644
--- a/pkgs/games/worldofgoo/default.nix
+++ b/pkgs/games/worldofgoo/default.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A physics based puzzle game";
+    description = "Physics based puzzle game";
     longDescription = ''
       World of Goo is a physics based puzzle / construction game. The millions of Goo
       Balls who live in the beautiful World of Goo don't know that they are in a
diff --git a/pkgs/games/wyvern/default.nix b/pkgs/games/wyvern/default.nix
index 705d6a33db5fa..5afee81c6c0c8 100644
--- a/pkgs/games/wyvern/default.nix
+++ b/pkgs/games/wyvern/default.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ];
 
   meta = with lib; {
-    description = "A simple CLI client for installing and maintaining linux GOG games";
+    description = "Simple CLI client for installing and maintaining linux GOG games";
     mainProgram = "wyvern";
     homepage = "https://git.sr.ht/~nicohman/wyvern";
     license = licenses.gpl3;
diff --git a/pkgs/games/xconq/default.nix b/pkgs/games/xconq/default.nix
index 78a7949d1a911..4c4f441964dd6 100644
--- a/pkgs/games/xconq/default.nix
+++ b/pkgs/games/xconq/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A programmable turn-based strategy game";
+    description = "Programmable turn-based strategy game";
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.unix;
     license = licenses.gpl2;
diff --git a/pkgs/games/xjump/default.nix b/pkgs/games/xjump/default.nix
index 2113ffbda116e..93f999bce2708 100644
--- a/pkgs/games/xjump/default.nix
+++ b/pkgs/games/xjump/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
   configureFlags = lib.optionals (localStateDir != null) ["--localstatedir=${localStateDir}"];
 
   meta = with lib; {
-    description = "The falling tower game";
+    description = "Falling tower game";
     mainProgram = "xjump";
     license = licenses.gpl2;
     maintainers = with maintainers; [ pmeunier ];
diff --git a/pkgs/games/xmoto/default.nix b/pkgs/games/xmoto/default.nix
index 23ed54e6b8e49..615b30fc644e6 100644
--- a/pkgs/games/xmoto/default.nix
+++ b/pkgs/games/xmoto/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A challenging 2D motocross platform game, where physics play an important role";
+    description = "Challenging 2D motocross platform game, where physics play an important role";
     mainProgram = "xmoto";
     longDescription = ''
       X-Moto is a challenging 2D motocross platform game, where physics plays an all important role in the gameplay.
diff --git a/pkgs/games/xpilot/bloodspilot-client.nix b/pkgs/games/xpilot/bloodspilot-client.nix
index 58eb7e8151645..baf51d96a0283 100644
--- a/pkgs/games/xpilot/bloodspilot-client.nix
+++ b/pkgs/games/xpilot/bloodspilot-client.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   NIX_LDFLAGS = "-lX11";
 
   meta = {
-    description = "A multiplayer space combat game (client part)";
+    description = "Multiplayer space combat game (client part)";
     mainProgram = "bloodspilot-client-sdl";
     homepage = "http://bloodspilot.sf.net/";
     license = lib.licenses.gpl2Plus ;
diff --git a/pkgs/games/xpilot/bloodspilot-server.nix b/pkgs/games/xpilot/bloodspilot-server.nix
index 495412c0eab46..509da8eabbe01 100644
--- a/pkgs/games/xpilot/bloodspilot-server.nix
+++ b/pkgs/games/xpilot/bloodspilot-server.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A multiplayer X11 space combat game (server part)";
+    description = "Multiplayer X11 space combat game (server part)";
     mainProgram = "xpilots";
     homepage = "http://bloodspilot.sf.net/";
     license = licenses.gpl2Plus ;
diff --git a/pkgs/games/xpilot/default.nix b/pkgs/games/xpilot/default.nix
index bd86538d99ec0..009ba7a7a7240 100644
--- a/pkgs/games/xpilot/default.nix
+++ b/pkgs/games/xpilot/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     libX11 libSM SDL SDL_ttf SDL_image libGLU libGL expat zlib libXxf86misc
   ];
   meta = with lib; {
-    description = "A multiplayer X11 space combat game";
+    description = "Multiplayer X11 space combat game";
     homepage = "http://xpilot.sf.net/";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.raskin ];
diff --git a/pkgs/games/xsnow/default.nix b/pkgs/games/xsnow/default.nix
index fe744375d79b8..ba9791cc6f1a3 100644
--- a/pkgs/games/xsnow/default.nix
+++ b/pkgs/games/xsnow/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "An X-windows application that will let it snow on the root, in between and on windows";
+    description = "X-windows application that will let it snow on the root, in between and on windows";
     mainProgram = "xsnow";
     homepage = "https://ratrabbit.nl/ratrabbit/xsnow/";
     license = licenses.gpl3Plus;
diff --git a/pkgs/games/xsok/default.nix b/pkgs/games/xsok/default.nix
index 51ca06a9091c1..a89d74f33a159 100644
--- a/pkgs/games/xsok/default.nix
+++ b/pkgs/games/xsok/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A generic Sokoban game for X11";
+    description = "Generic Sokoban game for X11";
     mainProgram = "xsok";
     license = lib.licenses.gpl2Plus;
     maintainers = [lib.maintainers.raskin];
diff --git a/pkgs/games/xtris/default.nix b/pkgs/games/xtris/default.nix
index 2263a46187e94..25c93df7ff4b2 100644
--- a/pkgs/games/xtris/default.nix
+++ b/pkgs/games/xtris/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   meta = with lib; {
-    description = "A multi-player version of the classical game of Tetris, for the X Window system";
+    description = "Multi-player version of the classical game of Tetris, for the X Window system";
     homepage = "https://web.archive.org/web/20120315061213/http://www.iagora.com/~espel/xtris/xtris.html";
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/pkgs/games/zaz/default.nix b/pkgs/games/zaz/default.nix
index 9cfbad23c278a..3af6f069a5aa1 100644
--- a/pkgs/games/zaz/default.nix
+++ b/pkgs/games/zaz/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A puzzle game about arranging balls in triplets, like Luxor, Zuma, or Puzzle Bobble";
+    description = "Puzzle game about arranging balls in triplets, like Luxor, Zuma, or Puzzle Bobble";
     homepage = "https://zaz.sourceforge.net/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ fgaz ];
diff --git a/pkgs/kde/default.nix b/pkgs/kde/default.nix
index 02c8650e6ec6c..f0938a1b6882b 100644
--- a/pkgs/kde/default.nix
+++ b/pkgs/kde/default.nix
@@ -3,7 +3,6 @@
   generateSplicesForMkScope,
   makeScopeWithSplicing',
   fetchurl,
-  fetchFromGitLab,
   libsForQt5,
   qt6Packages,
   cmark,
@@ -65,10 +64,12 @@
       kdiagram = self.callPackage ./misc/kdiagram {};
       kdsoap-ws-discovery-client = self.callPackage ./misc/kdsoap-ws-discovery-client {};
       kirigami-addons = self.callPackage ./misc/kirigami-addons {};
+      kio-extras-kf5 = self.callPackage ./misc/kio-extras-kf5 {};
       kio-fuse = self.callPackage ./misc/kio-fuse {};
       ktextaddons = self.callPackage ./misc/ktextaddons {};
       kunifiedpush = self.callPackage ./misc/kunifiedpush {};
       kweathercore = self.callPackage ./misc/kweathercore {};
+      marknote = self.callPackage ./misc/marknote {};
       mpvqt = self.callPackage ./misc/mpvqt {};
       oxygen-icons = self.callPackage ./misc/oxygen-icons {};
       phonon = self.callPackage ./misc/phonon {};
diff --git a/pkgs/kde/frameworks/kio/default.nix b/pkgs/kde/frameworks/kio/default.nix
index 03c2da9e0f5ad..6d5ba811a5185 100644
--- a/pkgs/kde/frameworks/kio/default.nix
+++ b/pkgs/kde/frameworks/kio/default.nix
@@ -10,8 +10,10 @@ mkKdeDerivation {
 
   patches = [
     # Remove hardcoded smbd search path
-    # FIXME(later): discuss with upstream?
     ./0001-Remove-impure-smbd-search-path.patch
+    # When running a process through systemd, resolve the full path ourselves
+    ./early-resolve-executables.diff
+    # FIXME(later): discuss with upstream?
   ];
 
   extraBuildInputs = [qt5compat qttools acl attr];
diff --git a/pkgs/kde/frameworks/kio/early-resolve-executables.diff b/pkgs/kde/frameworks/kio/early-resolve-executables.diff
new file mode 100644
index 0000000000000..d11a6a0dbeee1
--- /dev/null
+++ b/pkgs/kde/frameworks/kio/early-resolve-executables.diff
@@ -0,0 +1,13 @@
+diff --git a/src/gui/systemd/systemdprocessrunner.cpp b/src/gui/systemd/systemdprocessrunner.cpp
+index afe3e2c69..5e5ee012d 100644
+--- a/src/gui/systemd/systemdprocessrunner.cpp
++++ b/src/gui/systemd/systemdprocessrunner.cpp
+@@ -128,7 +128,7 @@ void SystemdProcessRunner::startProcess()
+                                               // so we can be notified (see https://github.com/systemd/systemd/pull/3984)
+             {QStringLiteral("Environment"), m_process->environment()},
+             {QStringLiteral("WorkingDirectory"), m_process->workingDirectory()},
+-            {QStringLiteral("ExecStart"), QVariant::fromValue(ExecCommandList{{m_process->program().first(), m_process->program(), false}})},
++            {QStringLiteral("ExecStart"), QVariant::fromValue(ExecCommandList{{QStandardPaths::findExecutable(m_process->program().first()), m_process->program(), false}})},
+         },
+         {} // aux is currently unused and should be passed as empty array.
+     );
diff --git a/pkgs/kde/frameworks/ksvg/default.nix b/pkgs/kde/frameworks/ksvg/default.nix
index 82dbce5c08294..0aa6053f00974 100644
--- a/pkgs/kde/frameworks/ksvg/default.nix
+++ b/pkgs/kde/frameworks/ksvg/default.nix
@@ -2,9 +2,19 @@
   mkKdeDerivation,
   qtdeclarative,
   qtsvg,
+  fetchpatch,
 }:
 mkKdeDerivation {
   pname = "ksvg";
 
+  patches = [
+    # Backport patch for SVG rendering glitches with fractional scale
+    # FIXME: remove in 6.4
+    (fetchpatch {
+      url = "https://invent.kde.org/frameworks/ksvg/-/commit/74f9f9cbd226407f8cde08c5cd5a711444e2775d.patch";
+      hash = "sha256-i4Wcvo0CkpN2qdlTesnzUyd0mzG1VKbycP5Pd1rHPVg=";
+    })
+  ];
+
   extraBuildInputs = [qtdeclarative qtsvg];
 }
diff --git a/pkgs/kde/gear/accessibility-inspector/default.nix b/pkgs/kde/gear/accessibility-inspector/default.nix
new file mode 100644
index 0000000000000..1197f29330085
--- /dev/null
+++ b/pkgs/kde/gear/accessibility-inspector/default.nix
@@ -0,0 +1,4 @@
+{mkKdeDerivation}:
+mkKdeDerivation {
+  pname = "accessibility-inspector";
+}
diff --git a/pkgs/kde/gear/akonadi-search/default.nix b/pkgs/kde/gear/akonadi-search/default.nix
index 416dd91a9ee5b..a05705b43fe84 100644
--- a/pkgs/kde/gear/akonadi-search/default.nix
+++ b/pkgs/kde/gear/akonadi-search/default.nix
@@ -7,7 +7,7 @@
   cargo,
   rustc,
   # provided as callPackage input to enable easier overrides through overlays
-  cargoHash ? "sha256-fY0mQiYS/CMThOVsWp8NgxpWfUph2dZ7hj7W5JUJ2J4=",
+  cargoHash ? "sha256-fSue83tCE1TqaEfp1dxlRblxzJQUTNIQMYA5fXcaDqc=",
 }:
 mkKdeDerivation rec {
   pname = "akonadi-search";
diff --git a/pkgs/kde/gear/angelfish/default.nix b/pkgs/kde/gear/angelfish/default.nix
index 0d9b4a341f05d..ebf61e122d9ba 100644
--- a/pkgs/kde/gear/angelfish/default.nix
+++ b/pkgs/kde/gear/angelfish/default.nix
@@ -8,7 +8,7 @@
   cargo,
   rustc,
   # provided as callPackage input to enable easier overrides through overlays
-  cargoHash ? "sha256-QJZJqdixPThgiKnruKetmzhbvtY/MsGy4v+OdQiEFR8=",
+  cargoHash ? "sha256-Y0aG8NgiDTbDYgh8hMxfwSCHFh8f7PGABxw10m07dgs=",
   qcoro,
 }:
 mkKdeDerivation rec {
diff --git a/pkgs/kde/gear/audex/default.nix b/pkgs/kde/gear/audex/default.nix
new file mode 100644
index 0000000000000..c6043d6416089
--- /dev/null
+++ b/pkgs/kde/gear/audex/default.nix
@@ -0,0 +1,10 @@
+{
+  mkKdeDerivation,
+  libcdio,
+  libcdio-paranoia,
+}:
+mkKdeDerivation {
+  pname = "audex";
+
+  extraBuildInputs = [libcdio libcdio-paranoia];
+}
diff --git a/pkgs/kde/gear/bovo/default.nix b/pkgs/kde/gear/bovo/default.nix
index 9e8ae9b05153d..5bafedfd1b141 100644
--- a/pkgs/kde/gear/bovo/default.nix
+++ b/pkgs/kde/gear/bovo/default.nix
@@ -1,10 +1,13 @@
 {
   mkKdeDerivation,
   qtsvg,
+  _7zz,
 }:
 mkKdeDerivation {
   pname = "bovo";
 
+  extraNativeBuildInputs = [_7zz];
   extraBuildInputs = [qtsvg];
+
   meta.mainProgram = "bovo";
 }
diff --git a/pkgs/kde/gear/calindori/default.nix b/pkgs/kde/gear/calindori/default.nix
index f0b21c7986a70..41efa7a9e48f3 100644
--- a/pkgs/kde/gear/calindori/default.nix
+++ b/pkgs/kde/gear/calindori/default.nix
@@ -1,15 +1,9 @@
 {
   mkKdeDerivation,
   qtsvg,
-  qqc2-desktop-style,
 }:
 mkKdeDerivation {
   pname = "calindori";
 
-  extraBuildInputs = [
-    qtsvg
-    qqc2-desktop-style
-  ];
-  # FIXME(qt5)
-  meta.broken = true;
+  extraBuildInputs = [qtsvg];
 }
diff --git a/pkgs/kde/gear/default.nix b/pkgs/kde/gear/default.nix
index 1ffcdc770e216..b0560b868ee30 100644
--- a/pkgs/kde/gear/default.nix
+++ b/pkgs/kde/gear/default.nix
@@ -1,4 +1,5 @@
 {callPackage}: {
+  accessibility-inspector = callPackage ./accessibility-inspector {};
   akonadi = callPackage ./akonadi {};
   akonadi-calendar = callPackage ./akonadi-calendar {};
   akonadi-calendar-tools = callPackage ./akonadi-calendar-tools {};
@@ -15,6 +16,7 @@
   arianna = callPackage ./arianna {};
   ark = callPackage ./ark {};
   artikulate = callPackage ./artikulate {};
+  audex = callPackage ./audex {};
   audiocd-kio = callPackage ./audiocd-kio {};
   audiotube = callPackage ./audiotube {};
   baloo-widgets = callPackage ./baloo-widgets {};
@@ -34,6 +36,7 @@
   falkon = callPackage ./falkon {};
   ffmpegthumbs = callPackage ./ffmpegthumbs {};
   filelight = callPackage ./filelight {};
+  francis = callPackage ./francis {};
   ghostwriter = callPackage ./ghostwriter {};
   granatier = callPackage ./granatier {};
   grantlee-editor = callPackage ./grantlee-editor {};
@@ -51,6 +54,7 @@
   kalarm = callPackage ./kalarm {};
   kalgebra = callPackage ./kalgebra {};
   kalk = callPackage ./kalk {};
+  kalm = callPackage ./kalm {};
   kalzium = callPackage ./kalzium {};
   kamera = callPackage ./kamera {};
   kamoso = callPackage ./kamoso {};
@@ -112,7 +116,6 @@
   kimap = callPackage ./kimap {};
   kio-admin = callPackage ./kio-admin {};
   kio-extras = callPackage ./kio-extras {};
-  kio-extras-kf5 = callPackage ./kio-extras-kf5 {};
   kio-gdrive = callPackage ./kio-gdrive {};
   kio-zeroconf = callPackage ./kio-zeroconf {};
   kipi-plugins = callPackage ./kipi-plugins {};
@@ -236,6 +239,7 @@
   signon-kwallet-extension = callPackage ./signon-kwallet-extension {};
   skanlite = callPackage ./skanlite {};
   skanpage = callPackage ./skanpage {};
+  skladnik = callPackage ./skladnik {};
   spectacle = callPackage ./spectacle {};
   step = callPackage ./step {};
   svgpart = callPackage ./svgpart {};
diff --git a/pkgs/kde/gear/francis/default.nix b/pkgs/kde/gear/francis/default.nix
new file mode 100644
index 0000000000000..f17f21c8ea21f
--- /dev/null
+++ b/pkgs/kde/gear/francis/default.nix
@@ -0,0 +1,9 @@
+{
+  mkKdeDerivation,
+  qtsvg,
+}:
+mkKdeDerivation {
+  pname = "francis";
+
+  extraBuildInputs = [qtsvg];
+}
diff --git a/pkgs/kde/gear/kalm/default.nix b/pkgs/kde/gear/kalm/default.nix
new file mode 100644
index 0000000000000..0c4eee90bc31e
--- /dev/null
+++ b/pkgs/kde/gear/kalm/default.nix
@@ -0,0 +1,4 @@
+{mkKdeDerivation}:
+mkKdeDerivation {
+  pname = "kalm";
+}
diff --git a/pkgs/kde/gear/katomic/default.nix b/pkgs/kde/gear/katomic/default.nix
index 9a0f9b743d9e0..e9dcd6ebe040c 100644
--- a/pkgs/kde/gear/katomic/default.nix
+++ b/pkgs/kde/gear/katomic/default.nix
@@ -1,5 +1,11 @@
-{mkKdeDerivation}:
+{
+  mkKdeDerivation,
+  _7zz
+}:
 mkKdeDerivation {
   pname = "katomic";
+
+  extraNativeBuildInputs = [_7zz];
+
   meta.mainProgram = "katomic";
 }
diff --git a/pkgs/kde/gear/kblackbox/default.nix b/pkgs/kde/gear/kblackbox/default.nix
index 3f8995ce537e3..26156c9195a92 100644
--- a/pkgs/kde/gear/kblackbox/default.nix
+++ b/pkgs/kde/gear/kblackbox/default.nix
@@ -1,10 +1,13 @@
 {
   mkKdeDerivation,
   qtsvg,
+  _7zz,
 }:
 mkKdeDerivation {
   pname = "kblackbox";
 
+  extraNativeBuildInputs = [_7zz];
   extraBuildInputs = [qtsvg];
+
   meta.mainProgram = "kblackbox";
 }
diff --git a/pkgs/kde/gear/kbounce/default.nix b/pkgs/kde/gear/kbounce/default.nix
index 8ddeef47bfb6e..e93c9e50d6731 100644
--- a/pkgs/kde/gear/kbounce/default.nix
+++ b/pkgs/kde/gear/kbounce/default.nix
@@ -1,10 +1,13 @@
 {
   mkKdeDerivation,
   qtsvg,
+  _7zz,
 }:
 mkKdeDerivation {
   pname = "kbounce";
 
+  extraNativeBuildInputs = [_7zz];
   extraBuildInputs = [qtsvg];
+
   meta.mainProgram = "kbounce";
 }
diff --git a/pkgs/kde/gear/kdenlive/default.nix b/pkgs/kde/gear/kdenlive/default.nix
index 49643826b9e2c..fe5f7e4c13b11 100644
--- a/pkgs/kde/gear/kdenlive/default.nix
+++ b/pkgs/kde/gear/kdenlive/default.nix
@@ -4,12 +4,14 @@
   qtsvg,
   qtmultimedia,
   qtnetworkauth,
+  qqc2-desktop-style,
   ffmpeg-full,
   mediainfo,
   mlt,
   shared-mime-info,
   libv4l,
   frei0r,
+  fetchpatch,
 }:
 mkKdeDerivation {
   pname = "kdenlive";
@@ -22,6 +24,13 @@ mkKdeDerivation {
         ffmpeg = ffmpeg-full;
       }
     )
+
+    # Backport fix for crash after 5 minutes
+    # FIXME: remove in next release
+    (fetchpatch {
+      url = "https://invent.kde.org/multimedia/kdenlive/-/commit/8be0e826471332bb739344ebe1859298c46e9e0f.patch";
+      hash = "sha256-5hLePH5NlO4Lx8lg9kjBPI4jTmP666RGplaVCmS/9TA=";
+    })
   ];
 
   extraBuildInputs = [
@@ -29,6 +38,8 @@ mkKdeDerivation {
     qtmultimedia
     qtnetworkauth
 
+    qqc2-desktop-style
+
     mlt
     shared-mime-info
     libv4l
diff --git a/pkgs/kde/gear/kdepim-addons/default.nix b/pkgs/kde/gear/kdepim-addons/default.nix
index fded9e9b02058..a11c50f9df1f9 100644
--- a/pkgs/kde/gear/kdepim-addons/default.nix
+++ b/pkgs/kde/gear/kdepim-addons/default.nix
@@ -8,7 +8,7 @@
   corrosion,
   alpaka,
   # provided as callPackage input to enable easier overrides through overlays
-  cargoHash ? "sha256-Yt1Gxw9Q1Q108YRJoUIpeNZlGjZ7yabLW3bRO4+x6Vo=",
+  cargoHash ? "sha256-uFQhxNpH9KG5+27EZNBwDX2sswd1nI86bESeeOnPXA4=",
 }:
 mkKdeDerivation rec {
   pname = "kdepim-addons";
diff --git a/pkgs/kde/gear/kfourinline/default.nix b/pkgs/kde/gear/kfourinline/default.nix
index 5e1d6fba0ef0a..2c77d372fc16c 100644
--- a/pkgs/kde/gear/kfourinline/default.nix
+++ b/pkgs/kde/gear/kfourinline/default.nix
@@ -1,9 +1,11 @@
 {
   mkKdeDerivation,
   qtsvg,
+  _7zz,
 }:
 mkKdeDerivation {
   pname = "kfourinline";
 
+  extraNativeBuildInputs = [_7zz];
   extraBuildInputs = [qtsvg];
 }
diff --git a/pkgs/kde/gear/kjumpingcube/default.nix b/pkgs/kde/gear/kjumpingcube/default.nix
index 1f1daf12d2348..0141748b39dce 100644
--- a/pkgs/kde/gear/kjumpingcube/default.nix
+++ b/pkgs/kde/gear/kjumpingcube/default.nix
@@ -1,10 +1,13 @@
 {
   mkKdeDerivation,
   qtsvg,
+  _7zz,
 }:
 mkKdeDerivation {
   pname = "kjumpingcube";
 
+  extraNativeBuildInputs = [_7zz];
   extraBuildInputs = [qtsvg];
+
   meta.mainProgram = "kjumpingcube";
 }
diff --git a/pkgs/kde/gear/klickety/default.nix b/pkgs/kde/gear/klickety/default.nix
index 574bddccf00b3..339fa31003a56 100644
--- a/pkgs/kde/gear/klickety/default.nix
+++ b/pkgs/kde/gear/klickety/default.nix
@@ -1,5 +1,11 @@
-{mkKdeDerivation}:
+{
+  mkKdeDerivation,
+  _7zz,
+}:
 mkKdeDerivation {
   pname = "klickety";
+
+  extraNativeBuildInputs = [_7zz];
+
   meta.mainProgram = "klickety";
 }
diff --git a/pkgs/kde/gear/klines/default.nix b/pkgs/kde/gear/klines/default.nix
index 58a8f6f8c4654..52bb95c0d787d 100644
--- a/pkgs/kde/gear/klines/default.nix
+++ b/pkgs/kde/gear/klines/default.nix
@@ -1,5 +1,11 @@
-{mkKdeDerivation}:
+{
+  mkKdeDerivation,
+  _7zz,
+}:
 mkKdeDerivation {
   pname = "klines";
+
+  extraNativeBuildInputs = [_7zz];
+
   meta.mainProgram = "klines";
 }
diff --git a/pkgs/kde/gear/kmines/default.nix b/pkgs/kde/gear/kmines/default.nix
index 5c333ae11da5a..687cf0d29480e 100644
--- a/pkgs/kde/gear/kmines/default.nix
+++ b/pkgs/kde/gear/kmines/default.nix
@@ -1,5 +1,11 @@
-{mkKdeDerivation}:
+{
+  mkKdeDerivation,
+  _7zz,
+}:
 mkKdeDerivation {
   pname = "kmines";
+
+  extraNativeBuildInputs = [_7zz];
+
   meta.mainProgram = "kmines";
 }
diff --git a/pkgs/kde/gear/knavalbattle/default.nix b/pkgs/kde/gear/knavalbattle/default.nix
index 3168f2b5729c5..abd9281ff52ec 100644
--- a/pkgs/kde/gear/knavalbattle/default.nix
+++ b/pkgs/kde/gear/knavalbattle/default.nix
@@ -1,5 +1,11 @@
-{mkKdeDerivation}:
+{
+  mkKdeDerivation,
+  _7zz,
+}:
 mkKdeDerivation {
   pname = "knavalbattle";
+
+  extraNativeBuildInputs = [_7zz];
+
   meta.mainProgram = "knavalbattle";
 }
diff --git a/pkgs/kde/gear/kolf/default.nix b/pkgs/kde/gear/kolf/default.nix
index 51a31e5e753ae..39657f077a7d4 100644
--- a/pkgs/kde/gear/kolf/default.nix
+++ b/pkgs/kde/gear/kolf/default.nix
@@ -1,5 +1,11 @@
-{mkKdeDerivation}:
+{
+  mkKdeDerivation,
+  _7zz,
+}:
 mkKdeDerivation {
   pname = "kolf";
+
+  extraNativeBuildInputs = [_7zz];
+
   meta.mainProgram = "kolf";
 }
diff --git a/pkgs/kde/gear/kollision/default.nix b/pkgs/kde/gear/kollision/default.nix
index f8e816437bb45..299549d475130 100644
--- a/pkgs/kde/gear/kollision/default.nix
+++ b/pkgs/kde/gear/kollision/default.nix
@@ -1,5 +1,11 @@
-{mkKdeDerivation}:
+{
+  mkKdeDerivation,
+  _7zz,
+}:
 mkKdeDerivation {
   pname = "kollision";
+
+  extraNativeBuildInputs = [_7zz];
+
   meta.mainProgram = "kollision";
 }
diff --git a/pkgs/kde/gear/kreversi/default.nix b/pkgs/kde/gear/kreversi/default.nix
index facc50b28b15a..3f5591c299b6a 100644
--- a/pkgs/kde/gear/kreversi/default.nix
+++ b/pkgs/kde/gear/kreversi/default.nix
@@ -1,10 +1,13 @@
 {
   mkKdeDerivation,
   qtsvg,
+  _7zz,
 }:
 mkKdeDerivation {
   pname = "kreversi";
 
+  extraNativeBuildInputs = [_7zz];
   extraBuildInputs = [qtsvg];
+
   meta.mainProgram = "kreversi";
 }
diff --git a/pkgs/kde/gear/krfb/default.nix b/pkgs/kde/gear/krfb/default.nix
index eadb9fffb756e..3ab41fcc4f511 100644
--- a/pkgs/kde/gear/krfb/default.nix
+++ b/pkgs/kde/gear/krfb/default.nix
@@ -1,28 +1,18 @@
 {
   mkKdeDerivation,
-  fetchpatch,
+  pkg-config,
   qtwayland,
   libvncserver,
+  pipewire,
   xorg,
 }:
 mkKdeDerivation {
   pname = "krfb";
 
-  # Backports.
-  # FIXME: remove in next release
-  patches = [
-    # Build fix for Qt 6.7.1
-    ./fix-build-with-qt-6.7.1.diff
-    # Wayland crash fix
-    (fetchpatch {
-      url = "https://invent.kde.org/network/krfb/-/commit/6e7a5ba56966ea1b67400be9ab7c82885abb76be.diff";
-      hash = "sha256-kqD4B2Nixw8KMCOc4RpoEmvII2JZYBPxog6TT/BPuFs=";
-    })
-  ];
-
   extraCmakeFlags = [
     "-DQtWaylandScanner_EXECUTABLE=${qtwayland}/libexec/qtwaylandscanner"
   ];
 
-  extraBuildInputs = [qtwayland libvncserver xorg.libXdamage];
+  extraNativeBuildInputs = [pkg-config];
+  extraBuildInputs = [qtwayland libvncserver pipewire xorg.libXdamage];
 }
diff --git a/pkgs/kde/gear/krfb/fix-build-with-qt-6.7.1.diff b/pkgs/kde/gear/krfb/fix-build-with-qt-6.7.1.diff
deleted file mode 100644
index d9ee35d4ca001..0000000000000
--- a/pkgs/kde/gear/krfb/fix-build-with-qt-6.7.1.diff
+++ /dev/null
@@ -1,51 +0,0 @@
-diff --git a/framebuffers/pipewire/CMakeLists.txt b/framebuffers/pipewire/CMakeLists.txt
-index 99f4562..3bf5f63 100644
---- a/framebuffers/pipewire/CMakeLists.txt
-+++ b/framebuffers/pipewire/CMakeLists.txt
-@@ -9,11 +9,6 @@ set (krfb_framebuffer_pw_SRCS
-      screencasting.cpp
- )
- 
--ecm_add_qtwayland_client_protocol(krfb_framebuffer_pw_SRCS
--    PROTOCOL ${PLASMA_WAYLAND_PROTOCOLS_DIR}/screencast.xml
--    BASENAME zkde-screencast-unstable-v1
--)
--
- ecm_qt_declare_logging_category(krfb_framebuffer_pw_SRCS
-     HEADER krfb_fb_pipewire_debug.h
-     IDENTIFIER KRFB_FB_PIPEWIRE
-@@ -38,6 +33,18 @@ add_library(krfb_framebuffer_pw
-     MODULE
-     ${krfb_framebuffer_pw_SRCS}
- )
-+
-+if (Qt6_VERSION VERSION_LESS "6.7.1")
-+    ecm_add_qtwayland_client_protocol(krfb_framebuffer_pw
-+        PROTOCOL ${PLASMA_WAYLAND_PROTOCOLS_DIR}/screencast.xml
-+        BASENAME zkde-screencast-unstable-v1
-+    )
-+else()
-+    qt6_generate_wayland_protocol_client_sources(krfb_framebuffer_pw
-+        FILES ${PLASMA_WAYLAND_PROTOCOLS_DIR}/screencast.xml
-+    )
-+endif()
-+
- set_property(TARGET krfb_framebuffer_pw PROPERTY C_STANDARD 99)
- 
- target_link_libraries(krfb_framebuffer_pw
-diff --git a/framebuffers/pipewire/screencasting.cpp b/framebuffers/pipewire/screencasting.cpp
-index 3c4d1ab..c338699 100644
---- a/framebuffers/pipewire/screencasting.cpp
-+++ b/framebuffers/pipewire/screencasting.cpp
-@@ -5,7 +5,11 @@
- */
- 
- #include "screencasting.h"
-+#if QT_VERSION < QT_VERSION_CHECK(6, 7, 1)
- #include "qwayland-zkde-screencast-unstable-v1.h"
-+#else
-+#include "qwayland-screencast.h"
-+#endif
- #include <KWayland/Client/registry.h>
- #include <QDebug>
- #include <QRect>
diff --git a/pkgs/kde/gear/ksudoku/default.nix b/pkgs/kde/gear/ksudoku/default.nix
index b11d44f488f9a..15ac4e2ce4f8d 100644
--- a/pkgs/kde/gear/ksudoku/default.nix
+++ b/pkgs/kde/gear/ksudoku/default.nix
@@ -1,10 +1,13 @@
 {
   mkKdeDerivation,
   qtsvg,
+  _7zz,
 }:
 mkKdeDerivation {
   pname = "ksudoku";
 
   extraBuildInputs = [qtsvg];
+  extraNativeBuildInputs = [_7zz];
+
   meta.mainProgram = "ksudoku";
 }
diff --git a/pkgs/kde/gear/kubrick/default.nix b/pkgs/kde/gear/kubrick/default.nix
index d5ca09e42887b..a194ebae5b682 100644
--- a/pkgs/kde/gear/kubrick/default.nix
+++ b/pkgs/kde/gear/kubrick/default.nix
@@ -1,11 +1,14 @@
 {
   mkKdeDerivation,
   qtsvg,
+  _7zz,
   libGLU,
 }:
 mkKdeDerivation {
   pname = "kubrick";
 
+  extraNativeBuildInputs = [_7zz];
   extraBuildInputs = [qtsvg libGLU];
+
   meta.mainProgram = "kubrick";
 }
diff --git a/pkgs/kde/gear/lskat/default.nix b/pkgs/kde/gear/lskat/default.nix
index 131cb34c0365b..eefb95f9e1b40 100644
--- a/pkgs/kde/gear/lskat/default.nix
+++ b/pkgs/kde/gear/lskat/default.nix
@@ -1,10 +1,13 @@
 {
   mkKdeDerivation,
   qtsvg,
+  _7zz,
 }:
 mkKdeDerivation {
   pname = "lskat";
 
+  extraNativeBuildInputs = [_7zz];
   extraBuildInputs = [qtsvg];
+
   meta.mainProgram = "lskat";
 }
diff --git a/pkgs/kde/gear/picmi/default.nix b/pkgs/kde/gear/picmi/default.nix
index 8838b657bc472..341cd3922aff5 100644
--- a/pkgs/kde/gear/picmi/default.nix
+++ b/pkgs/kde/gear/picmi/default.nix
@@ -1,10 +1,13 @@
 {
   mkKdeDerivation,
   qtsvg,
+  _7zz,
 }:
 mkKdeDerivation {
   pname = "picmi";
 
+  extraNativeBuildInputs = [_7zz];
   extraBuildInputs = [qtsvg];
+
   meta.mainProgram = "picmi";
 }
diff --git a/pkgs/kde/gear/skanpage/default.nix b/pkgs/kde/gear/skanpage/default.nix
index b6db869472cfe..c855041220c9a 100644
--- a/pkgs/kde/gear/skanpage/default.nix
+++ b/pkgs/kde/gear/skanpage/default.nix
@@ -1,5 +1,6 @@
 {
   mkKdeDerivation,
+  qtwebengine,
   tesseractLanguages ? [],
   tesseract5,
   leptonica,
@@ -8,6 +9,7 @@ mkKdeDerivation {
   pname = "skanpage";
 
   extraBuildInputs = [
+    qtwebengine
     (tesseract5.override {enableLanguages = tesseractLanguages;})
     leptonica
   ];
diff --git a/pkgs/kde/gear/skladnik/default.nix b/pkgs/kde/gear/skladnik/default.nix
new file mode 100644
index 0000000000000..ae4dd03f3e3c3
--- /dev/null
+++ b/pkgs/kde/gear/skladnik/default.nix
@@ -0,0 +1,4 @@
+{mkKdeDerivation}:
+mkKdeDerivation {
+  pname = "skladnik";
+}
diff --git a/pkgs/kde/gear/spectacle/default.nix b/pkgs/kde/gear/spectacle/default.nix
index 3232b6402bd04..dba026d22f248 100644
--- a/pkgs/kde/gear/spectacle/default.nix
+++ b/pkgs/kde/gear/spectacle/default.nix
@@ -2,10 +2,19 @@
   mkKdeDerivation,
   qtwayland,
   qtmultimedia,
+  opencv,
 }:
 mkKdeDerivation {
   pname = "spectacle";
 
-  extraBuildInputs = [qtwayland qtmultimedia];
+  extraBuildInputs = [
+    qtwayland
+    qtmultimedia
+    (opencv.override {
+      enableCuda = false;                    # fails to compile, disabled in case someone sets config.cudaSupport
+      enabledModules = [ "core" "imgproc" ]; # https://invent.kde.org/graphics/spectacle/-/blob/master/CMakeLists.txt?ref_type=heads#L83
+      runAccuracyTests = false;              # tests will fail because of missing plugins but that's okay
+    })
+  ];
   meta.mainProgram = "spectacle";
 }
diff --git a/pkgs/kde/generated/dependencies.json b/pkgs/kde/generated/dependencies.json
index 70f5499bfdbc0..371a13bf633bd 100644
--- a/pkgs/kde/generated/dependencies.json
+++ b/pkgs/kde/generated/dependencies.json
@@ -492,7 +492,6 @@
       "extra-cmake-modules",
       "karchive",
       "kcmutils",
-      "kcodecs",
       "kcompletion",
       "kconfig",
       "kconfigwidgets",
@@ -514,7 +513,6 @@
       "kwidgetsaddons",
       "kwindowsystem",
       "kxmlgui",
-      "plasma-activities",
       "sonnet",
       "threadweaver"
     ],
@@ -700,6 +698,7 @@
       "packagekit-qt",
       "phonon",
       "plasma-activities",
+      "selenium-webdriver-at-spi",
       "solid"
     ],
     "dolphin-plugins": [
@@ -879,6 +878,15 @@
       "kxmlgui",
       "sonnet"
     ],
+    "glaxnimate": [
+      "extra-cmake-modules",
+      "karchive",
+      "kcompletion",
+      "kconfigwidgets",
+      "kcoreaddons",
+      "kcrash",
+      "kxmlgui"
+    ],
     "granatier": [
       "extra-cmake-modules",
       "kconfig",
@@ -1035,8 +1043,11 @@
       "kwindowsystem",
       "libquotient",
       "networkmanager-qt",
+      "plasma-integration",
       "prison",
-      "qqc2-desktop-style"
+      "qqc2-breeze-style",
+      "qqc2-desktop-style",
+      "selenium-webdriver-at-spi"
     ],
     "juk": [
       "kcompletion",
@@ -1858,6 +1869,7 @@
       "kwidgetsaddons",
       "kxmlgui",
       "libplasma",
+      "plasma-desktop",
       "plasma-nano",
       "plasma-workspace",
       "plasma5support",
@@ -2056,7 +2068,6 @@
       "kdoctools",
       "ki18n",
       "kio",
-      "kparts",
       "kwidgetsaddons",
       "kxmlgui"
     ],
@@ -2975,6 +2986,21 @@
       "ktextwidgets",
       "kwidgetsaddons"
     ],
+    "kmuddy": [
+      "extra-cmake-modules",
+      "karchive",
+      "kcmutils",
+      "kconfig",
+      "kcoreaddons",
+      "ki18n",
+      "kiconthemes",
+      "kio",
+      "knotifications",
+      "kservice",
+      "ktextwidgets",
+      "kwidgetsaddons",
+      "kxmlgui"
+    ],
     "kmymoney": [
       "akonadi",
       "alkimia",
@@ -3182,6 +3208,19 @@
       "kxmlgui",
       "syntax-highlighting"
     ],
+    "kompare": [
+      "extra-cmake-modules",
+      "kcodecs",
+      "kconfig",
+      "kcoreaddons",
+      "kdoctools",
+      "kiconthemes",
+      "kjobwidgets",
+      "kparts",
+      "ktexteditor",
+      "kwidgetsaddons",
+      "libkomparediff2"
+    ],
     "kongress": [
       "extra-cmake-modules",
       "kcalendarcore",
@@ -3511,6 +3550,14 @@
       "kxmlgui",
       "plasma-activities"
     ],
+    "krdp": [
+      "extra-cmake-modules",
+      "kcmutils",
+      "kconfig",
+      "kdbusaddons",
+      "kpipewire",
+      "kstatusnotifieritem"
+    ],
     "krecorder": [
       "extra-cmake-modules",
       "kconfig",
@@ -3671,6 +3718,7 @@
       "kconfigwidgets",
       "kcoreaddons",
       "kcrash",
+      "kdeclarative",
       "kglobalaccel",
       "ki18n",
       "kidletime",
@@ -4349,6 +4397,14 @@
       "ki18n",
       "kwidgetsaddons"
     ],
+    "libkomparediff2": [
+      "extra-cmake-modules",
+      "kconfig",
+      "kcoreaddons",
+      "ki18n",
+      "kio",
+      "kxmlgui"
+    ],
     "libksane": [
       "extra-cmake-modules",
       "ki18n",
@@ -4433,6 +4489,7 @@
       "kdbusaddons",
       "ki18n",
       "kirigami",
+      "kirigami-addons",
       "kitemmodels"
     ],
     "lokalize": [
@@ -4500,6 +4557,7 @@
       "kcolorscheme",
       "kconfig",
       "kcoreaddons",
+      "kcrash",
       "ki18n",
       "kirigami",
       "kirigami-addons",
@@ -5186,6 +5244,7 @@
       "ksvg",
       "libplasma",
       "plasma-workspace",
+      "pulseaudio-qt",
       "selenium-webdriver-at-spi"
     ],
     "plasma-pass": [
@@ -5274,6 +5333,7 @@
       "kconfig",
       "kcoreaddons",
       "kdbusaddons",
+      "kdeclarative",
       "kglobalaccel",
       "ki18n",
       "kiconthemes",
@@ -5405,6 +5465,7 @@
       "plasma5support",
       "polkit-qt-1",
       "prison",
+      "qcoro",
       "qqc2-desktop-style",
       "selenium-webdriver-at-spi",
       "solid",
@@ -5416,8 +5477,14 @@
       "extra-cmake-modules",
       "kconfig",
       "kcoreaddons",
+      "kguiaddons",
       "ki18n",
-      "libplasma"
+      "kio",
+      "knotifications",
+      "kservice",
+      "libksysguard",
+      "libplasma",
+      "solid"
     ],
     "plasmatube": [
       "extra-cmake-modules",
@@ -5761,13 +5828,6 @@
       "kxmlgui",
       "plasma-activities"
     ],
-    "smaragd": [
-      "kconfig",
-      "kcoreaddons",
-      "kdecoration",
-      "ki18n",
-      "kwidgetsaddons"
-    ],
     "smb4k": [
       "extra-cmake-modules",
       "kauth",
@@ -5979,6 +6039,7 @@
       "kconfig",
       "kcoreaddons",
       "kdbusaddons",
+      "kdeclarative",
       "ki18n",
       "kio",
       "kirigami",
@@ -6146,5 +6207,5 @@
       "kwindowsystem"
     ]
   },
-  "version": "525ad8d3"
+  "version": "558e00a4"
 }
\ No newline at end of file
diff --git a/pkgs/kde/generated/licenses.json b/pkgs/kde/generated/licenses.json
index 5b3e4359cf94d..c0890c5a7ed03 100644
--- a/pkgs/kde/generated/licenses.json
+++ b/pkgs/kde/generated/licenses.json
@@ -1,4 +1,13 @@
 {
+  "accessibility-inspector": [
+    "BSD-2-Clause",
+    "BSD-3-Clause",
+    "CC0-1.0",
+    "LGPL-2.0-or-later",
+    "LGPL-2.1-only",
+    "LGPL-3.0-only",
+    "LicenseRef-KDE-Accepted-LGPL"
+  ],
   "akonadi": [
     "BSD-3-Clause",
     "CC0-1.0",
@@ -159,6 +168,11 @@
     "LGPL-3.0-only",
     "LicenseRef-KDE-Accepted-LGPL"
   ],
+  "audex": [
+    "CC0-1.0",
+    "GPL-3.0-or-later",
+    "LGPL-2.0-or-later"
+  ],
   "audiocd-kio": [
     "BSD-3-Clause",
     "CC0-1.0",
@@ -255,9 +269,11 @@
     "CC0-1.0"
   ],
   "breeze-icons": [
+    "CC-BY-SA-4.0",
     "CC0-1.0",
     "LGPL-2.0-or-later",
     "LGPL-2.1-only",
+    "LGPL-2.1-or-later",
     "LGPL-3.0-only",
     "LicenseRef-KDE-Accepted-LGPL"
   ],
@@ -331,8 +347,7 @@
   ],
   "dolphin-plugins": [
     "CC0-1.0",
-    "GPL-2.0-or-later",
-    "MIT"
+    "GPL-2.0-or-later"
   ],
   "dragon": [
     "CC0-1.0",
@@ -413,6 +428,14 @@
     "LGPL-3.0-only",
     "LicenseRef-KDE-Accepted-LGPL"
   ],
+  "francis": [
+    "BSD-2-Clause",
+    "BSD-3-Clause",
+    "CC0-1.0",
+    "GPL-3.0-or-later",
+    "LGPL-2.0-or-later",
+    "LGPL-2.1-or-later"
+  ],
   "ghostwriter": [
     "Apache-2.0",
     "BSD-3-Clause",
@@ -527,6 +550,11 @@
     "GPL-2.0-or-later",
     "GPL-3.0-or-later"
   ],
+  "kalm": [
+    "BSD-2-Clause",
+    "CC0-1.0",
+    "LGPL-2.1-or-later"
+  ],
   "kalzium": [
     "BSD-3-Clause",
     "CC0-1.0",
@@ -733,6 +761,7 @@
     "LicenseRef-KDE-Accepted-LGPL"
   ],
   "kcontacts": [
+    "BSD-3-Clause",
     "CC0-1.0",
     "LGPL-2.0-or-later"
   ],
@@ -1266,23 +1295,6 @@
     "LicenseRef-KDE-Accepted-LGPL",
     "MIT"
   ],
-  "kio-extras-kf5": [
-    "BSD-2-Clause",
-    "BSD-3-Clause",
-    "CC0-1.0",
-    "GPL-2.0-only",
-    "GPL-2.0-or-later",
-    "GPL-3.0-only",
-    "GPL-3.0-or-later",
-    "LGPL-2.0-only",
-    "LGPL-2.0-or-later",
-    "LGPL-2.1-only",
-    "LGPL-2.1-or-later",
-    "LGPL-3.0-only",
-    "LicenseRef-KDE-Accepted-GPL",
-    "LicenseRef-KDE-Accepted-LGPL",
-    "MIT"
-  ],
   "kio-gdrive": [
     "CC0-1.0",
     "GPL-2.0-only",
@@ -1301,6 +1313,7 @@
     "CC0-1.0"
   ],
   "kirigami": [
+    "BSD-2-Clause",
     "BSD-3-Clause",
     "CC0-1.0",
     "FSFAP",
@@ -1419,10 +1432,12 @@
     "Qt-Commercial-exception-1.0"
   ],
   "kmail-account-wizard": [
-    "BSD-2-Clause",
     "BSD-3-Clause",
     "CC0-1.0",
-    "LGPL-2.0-or-later"
+    "LGPL-2.0-or-later",
+    "LGPL-2.1-only",
+    "LGPL-3.0-only",
+    "LicenseRef-KDE-Accepted-LGPL"
   ],
   "kmailtransport": [
     "BSD-3-Clause",
@@ -1470,6 +1485,7 @@
     "GPL-2.0-or-later"
   ],
   "knavalbattle": [
+    "BSD-3-Clause",
     "CC0-1.0",
     "GPL-2.0-or-later"
   ],
@@ -1533,6 +1549,7 @@
     "LicenseRef-KDE-Accepted-LGPL"
   ],
   "kolf": [
+    "BSD-3-Clause",
     "CC0-1.0"
   ],
   "kollision": [
@@ -1610,7 +1627,6 @@
     "BSD-3-Clause",
     "CC-BY-SA-4.0",
     "CC0-1.0",
-    "GPL-3.0-only",
     "GPL-3.0-or-later"
   ],
   "konversation": [
@@ -1739,6 +1755,15 @@
     "CC0-1.0",
     "GPL-2.0-or-later"
   ],
+  "krdp": [
+    "BSD-2-Clause",
+    "CC0-1.0",
+    "GPL-2.0-or-later",
+    "LGPL-2.0-or-later",
+    "LGPL-2.1-only",
+    "LGPL-3.0-only",
+    "LicenseRef-KDE-Accepted-LGPL"
+  ],
   "krecorder": [
     "BSD-3-Clause",
     "CC-BY-4.0",
@@ -1938,6 +1963,7 @@
     "GPL-2.0-or-later"
   ],
   "kubrick": [
+    "BSD-3-Clause",
     "CC0-1.0",
     "GPL-2.0-or-later"
   ],
@@ -2059,7 +2085,10 @@
   "layer-shell-qt": [
     "BSD-3-Clause",
     "CC0-1.0",
+    "LGPL-2.1-only",
+    "LGPL-3.0-only",
     "LGPL-3.0-or-later",
+    "LicenseRef-KDE-Accepted-LGPL",
     "MIT"
   ],
   "libgravatar": [
@@ -2360,7 +2389,6 @@
     "GPL-2.0-only",
     "GPL-2.0-or-later",
     "GPL-3.0-only",
-    "GPL-3.0-or-later",
     "LGPL-2.0-only",
     "LGPL-2.0-or-later",
     "LicenseRef-KDE-Accepted-GPL",
@@ -2397,7 +2425,8 @@
     "GPL-2.0-or-later",
     "GPL-3.0-only",
     "LGPL-2.1-or-later",
-    "LicenseRef-KDE-Accepted-GPL"
+    "LicenseRef-KDE-Accepted-GPL",
+    "MIT"
   ],
   "partitionmanager": [
     "CC-BY-4.0",
@@ -2509,6 +2538,7 @@
     "LicenseRef-Qt-Commercial"
   ],
   "plasma-mobile": [
+    "Apache-2.0",
     "BSD-3-Clause",
     "CC0-1.0",
     "GPL-2.0-only",
@@ -2618,9 +2648,11 @@
   ],
   "plasma-workspace-wallpapers": [],
   "plasma5support": [
+    "BSD-3-Clause",
     "CC0-1.0",
     "GPL-2.0-or-later",
-    "LGPL-2.0-or-later"
+    "LGPL-2.0-or-later",
+    "LGPL-2.1-or-later"
   ],
   "plasmatube": [
     "CC-BY-SA-4.0",
@@ -2650,6 +2682,7 @@
     "GPL-2.0-or-later",
     "GPL-3.0-only",
     "LGPL-2.0-only",
+    "LGPL-2.0-or-later",
     "LGPL-2.1-only",
     "LGPL-2.1-or-later",
     "LGPL-3.0-only",
@@ -2705,7 +2738,8 @@
     "LGPL-3.0-only",
     "LicenseRef-KDE-Accepted-LGPL",
     "LicenseRef-KFQF-Accepted-GPL",
-    "LicenseRef-Qt-Commercial"
+    "LicenseRef-Qt-Commercial",
+    "MIT"
   ],
   "rocs": [
     "BSD-2-Clause",
@@ -2741,6 +2775,13 @@
     "GPL-3.0-only",
     "LicenseRef-KDE-Accepted-GPL"
   ],
+  "skladnik": [
+    "BSD-3-Clause",
+    "CC-BY-SA-4.0",
+    "CC0-1.0",
+    "GFDL-1.2-or-later",
+    "GPL-2.0-or-later"
+  ],
   "solid": [
     "BSD-3-Clause",
     "CC0-1.0",
@@ -2806,7 +2847,6 @@
     "GPL-2.0-only",
     "GPL-2.0-or-later",
     "GPL-3.0-only",
-    "GPL-3.0-or-later",
     "LGPL-2.0-only",
     "LGPL-2.1-or-later",
     "LicenseRef-KDE-Accepted-GPL"
diff --git a/pkgs/kde/generated/projects.json b/pkgs/kde/generated/projects.json
index d798654c27d8e..5af72a4c52d17 100644
--- a/pkgs/kde/generated/projects.json
+++ b/pkgs/kde/generated/projects.json
@@ -1001,6 +1001,12 @@
     "project_path": "unmaintained/flickr-runner",
     "repo_path": "unmaintained/flickr-runner"
   },
+  "foss-public-alert-server": {
+    "description": "Open source server that allows desktop applications to receive near real-time push notifications about emergency alerts worldwide.",
+    "name": "foss-public-alert-server",
+    "project_path": "playground/www/foss-public-alert-server",
+    "repo_path": "webapps/foss-public-alert-server"
+  },
   "frameworkintegration": {
     "description": "Framework providing components to allow applications to integrate with a KDE Workspace",
     "name": "frameworkintegration",
diff --git a/pkgs/kde/generated/sources/frameworks.json b/pkgs/kde/generated/sources/frameworks.json
index ed0b7e489a2bd..0eee0ca863f29 100644
--- a/pkgs/kde/generated/sources/frameworks.json
+++ b/pkgs/kde/generated/sources/frameworks.json
@@ -1,362 +1,362 @@
 {
   "attica": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/attica-6.2.0.tar.xz",
-    "hash": "sha256-J1+wCz9INwTYAEhIg6N4l5ejGYsM5oDYUxPZl3/94vA="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/attica-6.3.0.tar.xz",
+    "hash": "sha256-q686EToALV2ENaOnUCD5jFdCkNLFUqXyVikdBBjMWe0="
   },
   "baloo": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/baloo-6.2.0.tar.xz",
-    "hash": "sha256-HqQTudutp9Bkah+Nw/BoiSjCZuY4hSjP0F1MB5p+Iqg="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/baloo-6.3.0.tar.xz",
+    "hash": "sha256-h6+W5Y2TA0eeYot8gBZlYxtuVpjhupUm9BXPbzdVoGQ="
   },
   "bluez-qt": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/bluez-qt-6.2.0.tar.xz",
-    "hash": "sha256-lkh09OS0z6Y6lAy9CsIb0NxPwGwU/3qNtU+YEZv4tDA="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/bluez-qt-6.3.0.tar.xz",
+    "hash": "sha256-O2i4P64QMthCE2krDJCPD9V8r+VxdcYrbOW4m8HUotw="
   },
   "breeze-icons": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/breeze-icons-6.2.0.tar.xz",
-    "hash": "sha256-31o7FQdo3Vx4Gmw9GEjXn0sOsvMn4kjFQmoSNKpME1s="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/breeze-icons-6.3.0.tar.xz",
+    "hash": "sha256-ZyZjePLX2/E9xPaR3kPzC1rKTkozNun2Dw77oqR05iY="
   },
   "extra-cmake-modules": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/extra-cmake-modules-6.2.0.tar.xz",
-    "hash": "sha256-Y3S/oN3ti+JlxwKs1d4R7s0oUcYluT4ch9jQ9fGo6+E="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/extra-cmake-modules-6.3.0.tar.xz",
+    "hash": "sha256-E2j4+6lcR1pAnv8F94uvSczSZViJ0elJAr/Ihnha+Bg="
   },
   "frameworkintegration": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/frameworkintegration-6.2.0.tar.xz",
-    "hash": "sha256-5B9ksXitna3K1RsUW9WAhoq6Bh+4D/FWFCaNCexODXw="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/frameworkintegration-6.3.0.tar.xz",
+    "hash": "sha256-lHAFUbM3P3krJ+psowE8e9qPa2MmC5GLPB7sDYOtTH8="
   },
   "kapidox": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kapidox-6.2.0.tar.xz",
-    "hash": "sha256-A6zTkjMxrztOTsJ9MlNfow1lg9LQhh/SgqtjgiOYdas="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kapidox-6.3.0.tar.xz",
+    "hash": "sha256-IdOcUzG1kjkgtrs+08ZQIaZiUPivkSVWTLkJQwAy104="
   },
   "karchive": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/karchive-6.2.0.tar.xz",
-    "hash": "sha256-FDXgnmS/TPJ87r/HZYLkTbnTexRT5Vru4Jd4vM/ZqLI="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/karchive-6.3.0.tar.xz",
+    "hash": "sha256-J4B/Vwdmj5qkHImOupAZijCDV3/aufR1GgL+/mNnTik="
   },
   "kauth": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kauth-6.2.0.tar.xz",
-    "hash": "sha256-NRHZ2FfA9pYrAFs4HsXi/vne1ZJE2hTjHdBnPgWmmwo="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kauth-6.3.0.tar.xz",
+    "hash": "sha256-6882gW/4JqLPs+0KDTdG19qaI/eZAexDt6TnsVavM7U="
   },
   "kbookmarks": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kbookmarks-6.2.0.tar.xz",
-    "hash": "sha256-GvDWvnxDyxe8movaRkw3K58n+Z083zvpXsXyTjQ2jvs="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kbookmarks-6.3.0.tar.xz",
+    "hash": "sha256-8HidqquGsMJFGpHiEyfyC/HSAEkc93RK+TwmKqds/qE="
   },
   "kcalendarcore": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kcalendarcore-6.2.0.tar.xz",
-    "hash": "sha256-o+J3wBNqWd5jWmWfcRnXNoUsL/9QCy9f1Dn2kGbz8gk="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kcalendarcore-6.3.0.tar.xz",
+    "hash": "sha256-zd92tgTLXiYyB4H3bKDKuo4j5lMmPSoglekbKIoWE/s="
   },
   "kcmutils": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kcmutils-6.2.0.tar.xz",
-    "hash": "sha256-jO8UDKnqvynoighInHmQeOhSR5B/1vdBZa6v1O1AwLs="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kcmutils-6.3.0.tar.xz",
+    "hash": "sha256-mZiwjOQjyeWc3MEmp0dTWaDE++awQA9EQQyKXLaSjkA="
   },
   "kcodecs": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kcodecs-6.2.0.tar.xz",
-    "hash": "sha256-0ED7A1EMqQlC5UMjsa/SbsANRZsbLFTm7u7OUWaELy8="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kcodecs-6.3.0.tar.xz",
+    "hash": "sha256-aQJTGvw9R9VD/rlxwrwEkBryZeZzCkd69EAAc7Iuxuw="
   },
   "kcolorscheme": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kcolorscheme-6.2.0.tar.xz",
-    "hash": "sha256-CZDBcsWxKZa3wL48LlNTDO9l6vdtGShUzyB4cvupXxs="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kcolorscheme-6.3.0.tar.xz",
+    "hash": "sha256-MRcwvc+BAJ9aeWlPE1qTBApKg6ZsuULZYX/NaXYEkDU="
   },
   "kcompletion": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kcompletion-6.2.0.tar.xz",
-    "hash": "sha256-WMuTjrER6IWd0bqlEGJGfyJrjGfLH9uYdI0+l/q/COk="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kcompletion-6.3.0.tar.xz",
+    "hash": "sha256-PwJ6xr0oXQQKUDjDGxDjBr0ssJnTluiFNs0UnojucS4="
   },
   "kconfig": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kconfig-6.2.0.tar.xz",
-    "hash": "sha256-JRK8A2/EDNwjNFy/gDeFPHr9yTt/gVKFR6RR4PjEKek="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kconfig-6.3.0.tar.xz",
+    "hash": "sha256-jYCar3tRUezXl8YBx/JwG8Qmtm1DG1IGnH/ztAAteXk="
   },
   "kconfigwidgets": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kconfigwidgets-6.2.0.tar.xz",
-    "hash": "sha256-O15yxuVee50LPr7g/os5wJjdB6Vt452hVWiRkl632WM="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kconfigwidgets-6.3.0.tar.xz",
+    "hash": "sha256-ushmabg8OfoNPUWAQgLtbbWqSO3GtNF3xXKiIU0mIJA="
   },
   "kcontacts": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kcontacts-6.2.0.tar.xz",
-    "hash": "sha256-cJyhnpB2+YdRdk0Cm41kjGphsXJiukghz5f5E8y9G/k="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kcontacts-6.3.0.tar.xz",
+    "hash": "sha256-IptbF5fNx/rrIn9xXIbt7o6EZPQLJHQyr5CeOz0wsQc="
   },
   "kcoreaddons": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kcoreaddons-6.2.0.tar.xz",
-    "hash": "sha256-P5g2o85ecog78DJYe3Rc5VQ1qnYnF0V50uAY2nFzOO0="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kcoreaddons-6.3.0.tar.xz",
+    "hash": "sha256-uLuTusKhF1/2BYP2/KFLhwfrh47v4HQSF0GzyFzFx1Y="
   },
   "kcrash": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kcrash-6.2.0.tar.xz",
-    "hash": "sha256-ALe0iFyyqS6DKBbpzB2oz1zMxMRILBNkjwIJiMhs9Yg="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kcrash-6.3.0.tar.xz",
+    "hash": "sha256-ZcZ6D+m42ifQ7+ikThajSOf2ArKVEQYvJjtVXr6kj0E="
   },
   "kdav": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kdav-6.2.0.tar.xz",
-    "hash": "sha256-8YJ4z8creo7tSKTUR+rgfkMdFCmNvPWbpFu5NihsZOE="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kdav-6.3.0.tar.xz",
+    "hash": "sha256-sJKpGeglU5mVeNsQKPaOv+bLXx2hKXIvLGpmLQ23Kbk="
   },
   "kdbusaddons": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kdbusaddons-6.2.0.tar.xz",
-    "hash": "sha256-vKDfP8c2Hv/Pgf+3ldj/YuIYnqlnJJLWsmweAUT+3Wc="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kdbusaddons-6.3.0.tar.xz",
+    "hash": "sha256-fi2Jme8JUTqqQgAKy1NpsgPNWXcwj254kc3mqNRCIAI="
   },
   "kdeclarative": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kdeclarative-6.2.0.tar.xz",
-    "hash": "sha256-qFw/FZnSKfBS7jeG6QQazlUQyZhEyO/Hv8ndrtGTbYQ="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kdeclarative-6.3.0.tar.xz",
+    "hash": "sha256-gH2DxId1ntVAhc5RSoD7OuzqBO+Y7g6jBmaPttWkbc4="
   },
   "kded": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kded-6.2.0.tar.xz",
-    "hash": "sha256-ym1pcbZhtRQu3mq5oay+JNQIXvvJ8TmIwXlkmxJhq08="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kded-6.3.0.tar.xz",
+    "hash": "sha256-1LPlXLoRtroS33o6uVjmNxMEmaNPzDuRihyrfeYjXkg="
   },
   "kdesu": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kdesu-6.2.0.tar.xz",
-    "hash": "sha256-fGEv6kidnj49PJDKsNMU2YSGvcBgFKYPYJ/f8hUFgi8="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kdesu-6.3.0.tar.xz",
+    "hash": "sha256-o5kFoYEzR3d5B2IgY/w9UVogw7baD+R5qmFzQSap594="
   },
   "kdnssd": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kdnssd-6.2.0.tar.xz",
-    "hash": "sha256-UJARNnwRw7FwNNdD6mk0lRpvxSW5Un0Yw4r4H2Cwj0U="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kdnssd-6.3.0.tar.xz",
+    "hash": "sha256-Zx1I0t4al0tXDrT19vagOHX6Fx6t50uBOWpLtHS5cSo="
   },
   "kdoctools": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kdoctools-6.2.0.tar.xz",
-    "hash": "sha256-7POFVuxfnZnuLOssKHJ/TIA0IhfLabmqlFpvcC3D/08="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kdoctools-6.3.0.tar.xz",
+    "hash": "sha256-S1DtFbnb0IpbN5vTLtG0fugJcau+DHolcLdJpmXHhUo="
   },
   "kfilemetadata": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kfilemetadata-6.2.0.tar.xz",
-    "hash": "sha256-EGlBZUAkthZdo/rCYi++vTX/CfCDRa2TorLBq/oXfjA="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kfilemetadata-6.3.0.tar.xz",
+    "hash": "sha256-vYjjeIYaA62pnGmEGoH87v090iAUUAf7/pETJwt9YIg="
   },
   "kglobalaccel": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kglobalaccel-6.2.0.tar.xz",
-    "hash": "sha256-x0cn/vSjloDjbF7SfNtMW3VQQ3lfpSd07jvGo7Vo5yQ="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kglobalaccel-6.3.0.tar.xz",
+    "hash": "sha256-wIIGyjnbEieiqKPIwGki1ZCIMMttUu8hLLWXuMcCnfE="
   },
   "kguiaddons": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kguiaddons-6.2.0.tar.xz",
-    "hash": "sha256-ulpeQtW5uUSGQZJjg2B0Qp/T+s/DZP1OOimlS8beXds="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kguiaddons-6.3.0.tar.xz",
+    "hash": "sha256-4VGbH8Aew3McKSa2mu56MsE+D5IXiDT+9ISsN9XcMgE="
   },
   "kholidays": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kholidays-6.2.0.tar.xz",
-    "hash": "sha256-nXqAUofgQoHdWbjMsTAkBqkv4JQeJzysHHJO9hJfrCk="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kholidays-6.3.0.tar.xz",
+    "hash": "sha256-n5nhGMc9odU4Bcs47odhFdda1etfsQijjmrogOfPrF4="
   },
   "ki18n": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/ki18n-6.2.0.tar.xz",
-    "hash": "sha256-iqj0dA2wgPTwws6I0PKJdA1VyqBrf3a/IWPQ+5/TZg8="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/ki18n-6.3.0.tar.xz",
+    "hash": "sha256-TZU0HrogcP7DkBOW6wpo9KhCMzfeXqI/uGsOpwyVcoI="
   },
   "kiconthemes": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kiconthemes-6.2.0.tar.xz",
-    "hash": "sha256-wP/mX1P1m3W/BDLE9X99NraEDIf4Dp6luIzrcaKLVkU="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kiconthemes-6.3.0.tar.xz",
+    "hash": "sha256-lFOUr8n4IHkkvwf5pt477n/NUjvOh+AATWJ2erN8wwM="
   },
   "kidletime": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kidletime-6.2.0.tar.xz",
-    "hash": "sha256-BpGC5Kv7g/k2YdW7Dq6xS0TjcF+jSS29uOwDv+bj2dw="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kidletime-6.3.0.tar.xz",
+    "hash": "sha256-zY9nfM5nODQriIF9DnwYA0YPAOQJ1zDFrg6jOxQmRy0="
   },
   "kimageformats": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kimageformats-6.2.0.tar.xz",
-    "hash": "sha256-mEQhkYXwP+eZCurm/7ql9FKw9sUFPIcovIfpdoJkNWE="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kimageformats-6.3.0.tar.xz",
+    "hash": "sha256-DtQHcb017VOvfEpSFhEb7ygidbLrOErgB2yRfbIMEhA="
   },
   "kio": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kio-6.2.0.tar.xz",
-    "hash": "sha256-Mx1v9rnLsOZSGl0HRrFSviWI/WMac9DiSbeM0s2mnM8="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kio-6.3.0.tar.xz",
+    "hash": "sha256-OeGvsyQGlgVgnGDB1GONqIbev2FZF5UhFntRWdeaBEg="
   },
   "kirigami": {
-    "version": "6.2.1",
-    "url": "mirror://kde/stable/frameworks/6.2/kirigami-6.2.1.tar.xz",
-    "hash": "sha256-kQQSdw55ucE92sQhmfp1EXcM2Uhbj1omTh72NjozDJk="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kirigami-6.3.0.tar.xz",
+    "hash": "sha256-28v6oFs3wDUB/o9N+vkvb3v5uHG40oiXNjpWeNyyOVs="
   },
   "kitemmodels": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kitemmodels-6.2.0.tar.xz",
-    "hash": "sha256-wGaIgxMmDXWiB5OTNLBWtAFLpzZLQ3MlVheQ63s3Qro="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kitemmodels-6.3.0.tar.xz",
+    "hash": "sha256-s6mE+2KRnB+Ls/t3ouIH5RpS9cWWQV6p/I/6YYtWrLo="
   },
   "kitemviews": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kitemviews-6.2.0.tar.xz",
-    "hash": "sha256-c2LZiT0emoY0glc+z8Or3djGNFEtihiE8JSl9UOvSik="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kitemviews-6.3.0.tar.xz",
+    "hash": "sha256-2GV9FVYRYxg0qACm+wqsEQtrqkQ13gD71gSL2fGi1C8="
   },
   "kjobwidgets": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kjobwidgets-6.2.0.tar.xz",
-    "hash": "sha256-L7dgLyu6gYvP/+GtExDXkAiJ4Q5T44S4dClfs1k/s6E="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kjobwidgets-6.3.0.tar.xz",
+    "hash": "sha256-X+4tS5R5+sdEInkMPqKxRktK4/EDR/xgOkHYsWfxCNg="
   },
   "knewstuff": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/knewstuff-6.2.0.tar.xz",
-    "hash": "sha256-9UlidWuOuYxnhANSoe/qRpjxWhfUvIKC9lrbDbCMV4A="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/knewstuff-6.3.0.tar.xz",
+    "hash": "sha256-oW0Wsi6Uy1FZo7GgccV4VynjBSuvnjPyqwILkDLZZ9c="
   },
   "knotifications": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/knotifications-6.2.0.tar.xz",
-    "hash": "sha256-lifCAPWN5eXcTnTRoTAFYkEVttI9oDTmSqG/MUPngWQ="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/knotifications-6.3.0.tar.xz",
+    "hash": "sha256-zO08GjeV/tyQ3GKMazz/8G0ZTsz9yiewWTj16UHMeHc="
   },
   "knotifyconfig": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/knotifyconfig-6.2.0.tar.xz",
-    "hash": "sha256-tb/sRYK8IvDIfHD90loF4UX9/l5KYKlj9RJXHgPTfMw="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/knotifyconfig-6.3.0.tar.xz",
+    "hash": "sha256-6/JvXlHlPq2xLpqFiq6dVQhdIzwfVDh5B2RSrCkAUl0="
   },
   "kpackage": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kpackage-6.2.0.tar.xz",
-    "hash": "sha256-eMhGbXIB8qpoCdmFiCQq72MUvkpHFVYXxSnGoFSfOV0="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kpackage-6.3.0.tar.xz",
+    "hash": "sha256-gR1oCeCRweqqB8r+rMhusj+lXtA4+PGpPSWeVzRRC00="
   },
   "kparts": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kparts-6.2.0.tar.xz",
-    "hash": "sha256-BPcIKavHAzMn9C5eXuE2X026mWixhPNCEsVIbjapvrE="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kparts-6.3.0.tar.xz",
+    "hash": "sha256-QvwnZnP0mYidVxPYqcBhx/enaIUUHyFNfxL55YylBAA="
   },
   "kpeople": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kpeople-6.2.0.tar.xz",
-    "hash": "sha256-P1+qSO3h5H7j43R+8K3y8dgyDb76jw7G63X9L0q0WDc="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kpeople-6.3.0.tar.xz",
+    "hash": "sha256-ln+Xnlas31RhmMGVDlVGY8ljruxW4gQFYHh4KUdyMD4="
   },
   "kplotting": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kplotting-6.2.0.tar.xz",
-    "hash": "sha256-zdx+leM3a+FiGjR/bp/6iK14e0haomx+AmM2wFJ3wW0="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kplotting-6.3.0.tar.xz",
+    "hash": "sha256-+Of6NH0Oa6uSTzNHcW61zEaLlrKWtSl005LfAw26lSE="
   },
   "kpty": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kpty-6.2.0.tar.xz",
-    "hash": "sha256-92g+i1zV271CV+jVrNJuWGhaO8PxYdwP4Q9ToHUkAmQ="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kpty-6.3.0.tar.xz",
+    "hash": "sha256-Y6SbOZhKwYx5cAytT4+Dy60tAGgBNm3GsQQppuANoKY="
   },
   "kquickcharts": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kquickcharts-6.2.0.tar.xz",
-    "hash": "sha256-/dlr9CGKMJvihSOsMYvXgW6L0f6/DncbEzWc1ljGdWs="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kquickcharts-6.3.0.tar.xz",
+    "hash": "sha256-JQ5SKt+/SLPydj9Ow3iiAzehyi5bDizYs2Fdej/tj8c="
   },
   "krunner": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/krunner-6.2.0.tar.xz",
-    "hash": "sha256-8Y8VeP+MdsRVg3pLyaPnEnO7pKxUr9JOFDqdwgcGBB8="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/krunner-6.3.0.tar.xz",
+    "hash": "sha256-bKb+Scm8DZ2jOV25k7+yjVAQvL14sJhGJYGdHTYx5CU="
   },
   "kservice": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kservice-6.2.0.tar.xz",
-    "hash": "sha256-BkbJIZwNfZojcbkNxCfryGzzCtr8sitFjxMPAR3iiII="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kservice-6.3.0.tar.xz",
+    "hash": "sha256-oFZNYsHg8ik7Dcs5z4FMKFYREkK4Yhsz9Spw/aGo/lQ="
   },
   "kstatusnotifieritem": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kstatusnotifieritem-6.2.0.tar.xz",
-    "hash": "sha256-BLn8CQW2FK/I4K/PVFEBjSoSbxZSIbbbIOQXG+L7H88="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kstatusnotifieritem-6.3.0.tar.xz",
+    "hash": "sha256-zh8uM9Db6BpI8AQJd7e3qnI09qADFz45Wz3l14M5jNg="
   },
   "ksvg": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/ksvg-6.2.0.tar.xz",
-    "hash": "sha256-Vom/ncPvqyn92uoK8AquyMqDI+ZQT0kMO7O0eoLrdvM="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/ksvg-6.3.0.tar.xz",
+    "hash": "sha256-AFTtDAlMYFpxK8n4yMxhx+DT7v4e5QqTkSu9YKbLB9c="
   },
   "ktexteditor": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/ktexteditor-6.2.0.tar.xz",
-    "hash": "sha256-wQpeTMkhrrUbF+l9TymIOrGGtj0QgZnmoxlECjnx8qA="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/ktexteditor-6.3.0.tar.xz",
+    "hash": "sha256-l52/+usKBBOzdF76GAqgvm4e2L+PWpOCgUmbkx4oN3Y="
   },
   "ktexttemplate": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/ktexttemplate-6.2.0.tar.xz",
-    "hash": "sha256-pZsObjrLlHN7gur6xH0UclJVxsbyHCNxzPnswQYs8so="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/ktexttemplate-6.3.0.tar.xz",
+    "hash": "sha256-k1GInFifsvp/M/pvDXSO2+9Ehj/nnrSbEtH6WrNJrp0="
   },
   "ktextwidgets": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/ktextwidgets-6.2.0.tar.xz",
-    "hash": "sha256-RpNow0EmWGXiViq20751TbloligL3KkME0EnsVAate0="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/ktextwidgets-6.3.0.tar.xz",
+    "hash": "sha256-np+1rua6VX/1PFv3JsuFUe/EIIA4/aR+5enET9fUOF4="
   },
   "kunitconversion": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kunitconversion-6.2.0.tar.xz",
-    "hash": "sha256-5e1gV4ukw3hqEJzh+y5LNuSCWnkzjErKHd3JpJMAboA="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kunitconversion-6.3.0.tar.xz",
+    "hash": "sha256-fbP0LdD/PfTrdI7mKIPo8jIDyjLRQ9P6Cd6wZRCVB5s="
   },
   "kuserfeedback": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kuserfeedback-6.2.0.tar.xz",
-    "hash": "sha256-gpxS2xXWm5Dm0isI3qze3NE0I8kB5Nq2OJPoFLTnaFg="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kuserfeedback-6.3.0.tar.xz",
+    "hash": "sha256-P+LON7kqcNYE84+jabX+LqZOJoxIqkUOmXH8hATocAY="
   },
   "kwallet": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kwallet-6.2.0.tar.xz",
-    "hash": "sha256-LlgRmmRCywDjAU8BY26HIzfP82LsHvEgyvK6AYE70sE="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kwallet-6.3.0.tar.xz",
+    "hash": "sha256-7bbrv6PZCGnK38kmbaR6iz1bK1sOSWt0p+pSYjktKt0="
   },
   "kwidgetsaddons": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kwidgetsaddons-6.2.0.tar.xz",
-    "hash": "sha256-A87y9mrsa397InbEfnIL2rk5sFt3twNF5/B2096tghE="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kwidgetsaddons-6.3.0.tar.xz",
+    "hash": "sha256-Dj+fDbmgpq1CPLUP/ooBvrX+74vHhyw1t1dhgOTRhEw="
   },
   "kwindowsystem": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kwindowsystem-6.2.0.tar.xz",
-    "hash": "sha256-D4+xK07qkmp/TPWeyF2VKXqMtn2Ak9xLGUtRocRnHYk="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kwindowsystem-6.3.0.tar.xz",
+    "hash": "sha256-QOM8WSk0vCdIS5IuPas8n9vgeAY/pbyvKdUNLNjoqrk="
   },
   "kxmlgui": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kxmlgui-6.2.0.tar.xz",
-    "hash": "sha256-/yKnn8onN+M8VGPYf60rRpIMjUjGWDJoqa4nCXqKyQI="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/kxmlgui-6.3.0.tar.xz",
+    "hash": "sha256-InP9susy+MyRUMTLzE99nrLxJo/Lp+Ia3ScQXATnmV4="
   },
   "modemmanager-qt": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/modemmanager-qt-6.2.0.tar.xz",
-    "hash": "sha256-89HbmsZKNTM0sHTkXNB/zktArBOIyWT4sml0bcNb7qg="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/modemmanager-qt-6.3.0.tar.xz",
+    "hash": "sha256-nPMCl0aouLN0C8Tek/E4ZkMlx/T+gBfZLjQue8Q+x88="
   },
   "networkmanager-qt": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/networkmanager-qt-6.2.0.tar.xz",
-    "hash": "sha256-e+Iqa7xYQ7GtoKFw+1bJyWvvZD19SFQT8q95KRTtAtI="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/networkmanager-qt-6.3.0.tar.xz",
+    "hash": "sha256-DKlqO/ePAzo2vlnHXT1jgrTvE+dTQZ7tE+8uM4IeOeA="
   },
   "prison": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/prison-6.2.0.tar.xz",
-    "hash": "sha256-h3GWdcFlLwdzFJuN44T0BpSabWWr4lptNhHhENEtbKg="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/prison-6.3.0.tar.xz",
+    "hash": "sha256-dpgHcleHBR5emi9B6395GpzhG+d1p+7/jVJfKni0vEY="
   },
   "purpose": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/purpose-6.2.0.tar.xz",
-    "hash": "sha256-VbAtSTh7dvVOO+xI+CzXjzmLVAO8jRDUgr//fjCgAoo="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/purpose-6.3.0.tar.xz",
+    "hash": "sha256-vylvZka9z+9K67pNBOwD5+cqVFVSubdlqPv8Yl7m7Bc="
   },
   "qqc2-desktop-style": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/qqc2-desktop-style-6.2.0.tar.xz",
-    "hash": "sha256-uO0nDZMKrQXq3x7FpUCHDxEo2Mco2GFsQIAdaYCGmxw="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/qqc2-desktop-style-6.3.0.tar.xz",
+    "hash": "sha256-nn5pu382RtL8w3okNkxV18l0yDz24tkGo5qKjhTxvLA="
   },
   "solid": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/solid-6.2.0.tar.xz",
-    "hash": "sha256-ACoNKydZm+vHIVFmgdMnh2li/cr5lA8DNjT7k6T51yI="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/solid-6.3.0.tar.xz",
+    "hash": "sha256-uCGZlZm87gH9GQ29kvLOwx2uFesF21GlvJcMJLJ9k9k="
   },
   "sonnet": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/sonnet-6.2.0.tar.xz",
-    "hash": "sha256-hOcSrVa8lP+O/Jvd+rQfbDJxIbPd1pAw6UCsyRM2J+0="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/sonnet-6.3.0.tar.xz",
+    "hash": "sha256-a0TdAM6qd8PcnwX4LKI3kc7NiHggiJzfj/wks4SXTH4="
   },
   "syndication": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/syndication-6.2.0.tar.xz",
-    "hash": "sha256-UOw4Q6COx7GFNSyUuJvC0nIM6vF+uWGkw9pV+T0Frzw="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/syndication-6.3.0.tar.xz",
+    "hash": "sha256-zfBXwJvjXjmAkEAHKme4Um7mErbYdh+W9hOzUNl5yNQ="
   },
   "syntax-highlighting": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/syntax-highlighting-6.2.0.tar.xz",
-    "hash": "sha256-Mn7VjSDVJQK7/ZJ4+hyeerSoRhWeXPYw0J++oUTru38="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/syntax-highlighting-6.3.0.tar.xz",
+    "hash": "sha256-ODAKNclpvvX6NrQ31UNC2goMgFKCpldRm9Ti97Qt+YQ="
   },
   "threadweaver": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/threadweaver-6.2.0.tar.xz",
-    "hash": "sha256-503i3wu1AUisyKYWH5gJmRrksjNLWKnuCSuh2CcEQzc="
+    "version": "6.3.0",
+    "url": "mirror://kde/stable/frameworks/6.3/threadweaver-6.3.0.tar.xz",
+    "hash": "sha256-gSAfj5kY1pZ7dqXIxGhIEonlv1Y1Gz4UDM5TKCH32RM="
   }
 }
\ No newline at end of file
diff --git a/pkgs/kde/generated/sources/gear.json b/pkgs/kde/generated/sources/gear.json
index 96499269a4d1c..9ac2e3702e012 100644
--- a/pkgs/kde/generated/sources/gear.json
+++ b/pkgs/kde/generated/sources/gear.json
@@ -1,1232 +1,1252 @@
 {
+  "accessibility-inspector": {
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/accessibility-inspector-24.05.1.tar.xz",
+    "hash": "sha256-CZqzRhbUzv8Pv4NnGjkGjk5/U+wZklGeD9PD57YakXY="
+  },
   "akonadi": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadi-24.02.2.tar.xz",
-    "hash": "sha256-G3kjaVbz10BL0j3JBz4RK1NWpkFW5PvDJMQJwTJb80M="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/akonadi-24.05.1.tar.xz",
+    "hash": "sha256-6pXV3vRp7+XkFYqm+4HnxtP6GdJytnBUc1RUKfQTCcs="
   },
   "akonadi-calendar": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadi-calendar-24.02.2.tar.xz",
-    "hash": "sha256-kwGV5yLPJowUZa41Nmq+++bw02o/cnCNDLAi5iiK6Fk="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/akonadi-calendar-24.05.1.tar.xz",
+    "hash": "sha256-P1a00+Wetu2km5oZmQ6U5veOx20uLJwtsQ6Brly28b0="
   },
   "akonadi-calendar-tools": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadi-calendar-tools-24.02.2.tar.xz",
-    "hash": "sha256-dbbLxrznmjtUpdLJR6FNWR6BIgpey8QpTo5JMOYJsDc="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/akonadi-calendar-tools-24.05.1.tar.xz",
+    "hash": "sha256-ab7LhSgGDeuWBeXAi4gGKxgIM0Lk9YQ4yigqO+F4foA="
   },
   "akonadiconsole": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadiconsole-24.02.2.tar.xz",
-    "hash": "sha256-6KXlu1fRMkX8pLxr8b3f8ZJDb/7+gjUfSVb317l8ObQ="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/akonadiconsole-24.05.1.tar.xz",
+    "hash": "sha256-gSoopnm+cZhHwE8BwdJvNUXEVIBgpwwR95y3+GVLWuo="
   },
   "akonadi-contacts": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadi-contacts-24.02.2.tar.xz",
-    "hash": "sha256-7/C8KnAVgEE32cMvTCAQDKEeX5SosRkVPNBi67BW9R8="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/akonadi-contacts-24.05.1.tar.xz",
+    "hash": "sha256-pirz6SJe5ukcD/+PI+IYGdsuWUtMoZ/XuCFPUQGhbkM="
   },
   "akonadi-import-wizard": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadi-import-wizard-24.02.2.tar.xz",
-    "hash": "sha256-+VCKPaYySF9mM4fP2DKtanZ+r/IIa6Y+AQowNE+dXxU="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/akonadi-import-wizard-24.05.1.tar.xz",
+    "hash": "sha256-3SjcLcfxm+60DJ+shNkHT8WPlfyPsDgypNQHUbEUpdo="
   },
   "akonadi-mime": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadi-mime-24.02.2.tar.xz",
-    "hash": "sha256-sGUWJr2lOgujbIBE0RRyOcxVHvAO7R3/+DiKFm0c5BM="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/akonadi-mime-24.05.1.tar.xz",
+    "hash": "sha256-UkKAyslm+aRJCvFMUYbm4QeQW+nwW+M0MPUl6PCmBgA="
   },
   "akonadi-notes": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadi-notes-24.02.2.tar.xz",
-    "hash": "sha256-BATXrYrse4g4s5CdnPIi0mf01vO1Hya9jsyjmn2LWFU="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/akonadi-notes-24.05.1.tar.xz",
+    "hash": "sha256-qOAVCP0ezIjP/bN/3T8NP8qQ6LMcGHA6qtd0o+KuTx8="
   },
   "akonadi-search": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadi-search-24.02.2.tar.xz",
-    "hash": "sha256-bPrMpULzFzrS+TuqCPu3ddE5AqG6UAV+Ex9IZr6mK54="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/akonadi-search-24.05.1.tar.xz",
+    "hash": "sha256-XYVzdh6rrWpJqO6ueQIer7IrUGVRo5/biLTrRPmkkwI="
   },
   "akregator": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/akregator-24.02.2.tar.xz",
-    "hash": "sha256-lGd55Rup4KrkF6DXTCmFXWfUYVCKejSyZOpY1zdqymo="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/akregator-24.05.1.tar.xz",
+    "hash": "sha256-PwmhfDu3ntGeIcYokAeGvT6rc/SCGZot0JyGXeg8gkQ="
   },
   "alligator": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/alligator-24.02.2.tar.xz",
-    "hash": "sha256-ridOcusOuZdfGTyCNUQkQW58yeLZ/Xe1efVPsqs/7VU="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/alligator-24.05.1.tar.xz",
+    "hash": "sha256-3ptvQ/yUXsjyDWjoToXomlqqW5tH3SdH9y6f7MHHvRM="
   },
   "analitza": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/analitza-24.02.2.tar.xz",
-    "hash": "sha256-SdYM5D277bBHooHdLfaigY2Ok0B3R0nQeqelYj9szJs="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/analitza-24.05.1.tar.xz",
+    "hash": "sha256-TiB6Xi4Iamp2otF0SzbLBpN5FUJ1s7fFuXMX8bXvgHk="
   },
   "angelfish": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/angelfish-24.02.2.tar.xz",
-    "hash": "sha256-XTqwdHOUKLbTD2oS1oOgXxDf9h9UOwU59aGaFfxMg/E="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/angelfish-24.05.1.tar.xz",
+    "hash": "sha256-AAuLvHgumNxPrS5BL6sUmzLzNZqCHC23FyitRf9Qt78="
   },
   "arianna": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/arianna-24.02.2.tar.xz",
-    "hash": "sha256-NymiP5TSN5+1h/6QBDb/uSygOuMClu6le5YlqbS+uz4="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/arianna-24.05.1.tar.xz",
+    "hash": "sha256-FsqZucCzH+/P5qyPQxvIcEWSIg5e2d07whS2icVpj1Y="
   },
   "ark": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ark-24.02.2.tar.xz",
-    "hash": "sha256-BjdPXHwq7nqTwEv9e2s7quqzli6Cd8kIf+pUupgFvc4="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/ark-24.05.1.tar.xz",
+    "hash": "sha256-wgsofE9/WpvyxFCxqELC2RQM5QPZtEbIPgDkJNzqPmo="
   },
   "artikulate": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/artikulate-24.02.2.tar.xz",
-    "hash": "sha256-di0yr7ij+PilNs4zpyCIjr2ZZ7T7/qineSWj7QBDuzo="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/artikulate-24.05.1.tar.xz",
+    "hash": "sha256-lUpVHgdEkUZuFaYoP6CM/pNiA0oUW8vqiv6E87FITyk="
+  },
+  "audex": {
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/audex-24.05.1.tar.xz",
+    "hash": "sha256-sf+s9HZmHC7uNbNsCegiKz06OZNcn3ET3sdNWpa0k+0="
   },
   "audiocd-kio": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/audiocd-kio-24.02.2.tar.xz",
-    "hash": "sha256-ig/BKoaU7MiSO1RcXKsgYgQEvXe4SoDkt0yAq05XWho="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/audiocd-kio-24.05.1.tar.xz",
+    "hash": "sha256-wJS3t+iEDBCsMQBRiLz28x5EuTK9MHZa5NQpZ2wumug="
   },
   "audiotube": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/audiotube-24.02.2.tar.xz",
-    "hash": "sha256-/XIaC46IllW6tZBmtygIBxt2Dr7P8b5H9a36dDqqXjI="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/audiotube-24.05.1.tar.xz",
+    "hash": "sha256-bqe4pb9Szpmxs9qYOrks+nIi0tHMnx3TQ84NA8fsz2o="
   },
   "baloo-widgets": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/baloo-widgets-24.02.2.tar.xz",
-    "hash": "sha256-J2tVfDY9o2fRxpUOsOGrLK44mqt7U9r2qeJDH4fe6hU="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/baloo-widgets-24.05.1.tar.xz",
+    "hash": "sha256-6nCEStCjlm9R+eVU8Xkw9Ils2wpZDA/pGCfcdIe/ul4="
   },
   "blinken": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/blinken-24.02.2.tar.xz",
-    "hash": "sha256-hdwL/bbA2n7/s2q2QS8OvTzLndjn53X0y0HAC2/4VmY="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/blinken-24.05.1.tar.xz",
+    "hash": "sha256-W/QqmADVPTZyisW2ypRm8JD9B+JI9QP5C5DHHmSJoh0="
   },
   "bomber": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/bomber-24.02.2.tar.xz",
-    "hash": "sha256-uhke2hB/YF+j7IvjEZtrPQcqV2EBJ5xPa0vg0Be4l1c="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/bomber-24.05.1.tar.xz",
+    "hash": "sha256-8Pvp87vWMvQDkjEVTWGYdcGC3rMVmPaNfXv1MEaXqN0="
   },
   "bovo": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/bovo-24.02.2.tar.xz",
-    "hash": "sha256-oFIrL6rOogHqfpDFrarfNE8lf13s/EQUBwhIrLeKx4g="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/bovo-24.05.1.tar.xz",
+    "hash": "sha256-inq+d5HBD89BCz0vB7avvXMoihIv0OUw7rw+2jcJur0="
   },
   "calendarsupport": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/calendarsupport-24.02.2.tar.xz",
-    "hash": "sha256-kGZxMgtfMr2e3PIS5moWxUbRlhUL0zMKr4qwkxsLBzE="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/calendarsupport-24.05.1.tar.xz",
+    "hash": "sha256-EjnF9ugIYYoYgGtldQaddfDKHyrSalHuNxE6ed6TpTw="
   },
   "calindori": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/calindori-24.02.2.tar.xz",
-    "hash": "sha256-oPvoWm2TPJ0HlLVWzzdlGTlCS4+7bdMwjHNrqAcx5H8="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/calindori-24.05.1.tar.xz",
+    "hash": "sha256-P+lp5yrQXiu85tBwfBFrVlFvEFv7bJS89d37HYSg9Ok="
   },
   "cantor": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/cantor-24.02.2.tar.xz",
-    "hash": "sha256-HNY0Thm1fsmMEDUGkg3kEqVUG2E3fEPctRYq45wrm/U="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/cantor-24.05.1.tar.xz",
+    "hash": "sha256-jaCHkYpSBYdiZu7AzcRakA1jLG/sNJEleELNgkCfHx4="
   },
   "cervisia": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/cervisia-24.02.2.tar.xz",
-    "hash": "sha256-+pGS/G/ZtLqH/8mlzF8n3+7+1/OuZ6DYoyRYBdTw5Cs="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/cervisia-24.05.1.tar.xz",
+    "hash": "sha256-2h+FzWe3bjEcljuo8ZzKErkmRW/j4EKcGxZMdiym6ds="
   },
   "colord-kde": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/colord-kde-24.02.2.tar.xz",
-    "hash": "sha256-wzuEuILOv3pzm/R7J4+QLhRFBHDTCpYJGJfH1Hh1eEA="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/colord-kde-24.05.1.tar.xz",
+    "hash": "sha256-6BaigMOHhSLNPnYRlN1NZC3LqjSipqmDTcFKxDeKS80="
   },
   "dolphin": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/dolphin-24.02.2.tar.xz",
-    "hash": "sha256-UIREkNRRWcoWwdjZ9fBwHxGHcuSwmtrScINbZ7smpwE="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/dolphin-24.05.1.tar.xz",
+    "hash": "sha256-qvxPugoDya85f4eLDLwOwjxuvQjPuc3cv2vSPKgGurg="
   },
   "dolphin-plugins": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/dolphin-plugins-24.02.2.tar.xz",
-    "hash": "sha256-FLqewFaFXgEMzpzYyxTieIKHGZ8cyPUugKLUpLjFCw0="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/dolphin-plugins-24.05.1.tar.xz",
+    "hash": "sha256-mwxQ1+myUWZhe/85eD1mYBBwBycVyUsqxh7JZA62wzI="
   },
   "dragon": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/dragon-24.02.2.tar.xz",
-    "hash": "sha256-L/hf4lWnbUmCWSUSkDaQ4W5FLdzWSbbccCScBV9Nz5g="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/dragon-24.05.1.tar.xz",
+    "hash": "sha256-ziwVvoP8hl8iSnTcCEj7K6XW3k6xeg/hDXZn9JXPLnQ="
   },
   "elisa": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/elisa-24.02.2.tar.xz",
-    "hash": "sha256-CCGLpznqCs6Cu6aqmFdYFNz99p/rYVljmPXTN8KVbA8="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/elisa-24.05.1.tar.xz",
+    "hash": "sha256-Ve12pnavQsOvRV9kp/Y/UaP7qmGcktNFvmcIrVzcd+I="
   },
   "eventviews": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/eventviews-24.02.2.tar.xz",
-    "hash": "sha256-UqyX3NJw4uDBOJtx+XRXSSMw1Mn15GpNi3ZbaV6PVe0="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/eventviews-24.05.1.tar.xz",
+    "hash": "sha256-suZyJO/yRjztxNANm7Dqb6I2MAI7l5kB9XSZrnGGNxc="
   },
   "falkon": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/falkon-24.02.2.tar.xz",
-    "hash": "sha256-+GB4MNmXWfVTNq19jo87+d+WlstWMqTjCFhuiSDX6cs="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/falkon-24.05.1.tar.xz",
+    "hash": "sha256-v4MDcf5RT+oGRDSTr4ueImqtpHbuiyezFAbJBVWcJBk="
   },
   "ffmpegthumbs": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ffmpegthumbs-24.02.2.tar.xz",
-    "hash": "sha256-COjDKHOkm25liGrVAdMl+AUyQMZojAg1NIKDE/YMJFo="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/ffmpegthumbs-24.05.1.tar.xz",
+    "hash": "sha256-SlTIIRrbJ3XsdvOlXQKanxaQuQ/zPegNlKCU9FfdgH8="
   },
   "filelight": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/filelight-24.02.2.tar.xz",
-    "hash": "sha256-FVG9/ef8fkI0xmU9WmE4+e/vyei97aqqaDNUcoNou44="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/filelight-24.05.1.tar.xz",
+    "hash": "sha256-xda4+5RsCW9c2AaYiq6hNLbAwhHw3keCF9pceyN87As="
+  },
+  "francis": {
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/francis-24.05.1.tar.xz",
+    "hash": "sha256-IqCkNHNfRaM15g2sV+U6NCYGaJ3ZJWMn8TiCdURuCyg="
   },
   "ghostwriter": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ghostwriter-24.02.2.tar.xz",
-    "hash": "sha256-Ct8M7/UWNvXnM5H+MzXiY8Whdw68hmLxSgNGpm26F04="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/ghostwriter-24.05.1.tar.xz",
+    "hash": "sha256-dpshFgcf/dIhV6ZUoBEIBAs6DEDUTNFPe3HVFkmDkm4="
   },
   "granatier": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/granatier-24.02.2.tar.xz",
-    "hash": "sha256-H2wCX633JVAYC8Nrv4E1sHJGaIkEv9ehxm+QCDLSvck="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/granatier-24.05.1.tar.xz",
+    "hash": "sha256-BVXyi2XWQMFmx78Frm+74YmPeFCXRXcct5Z4MpNg6sI="
   },
   "grantlee-editor": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/grantlee-editor-24.02.2.tar.xz",
-    "hash": "sha256-M1l1Rt2dTwnPDq1Oy04SaT9qg71CTjB2g+THRBL1JnA="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/grantlee-editor-24.05.1.tar.xz",
+    "hash": "sha256-OGJuBVDggVqvJwAuDdPt0b7Eyt0TjMF6JOvtQqTBoi0="
   },
   "grantleetheme": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/grantleetheme-24.02.2.tar.xz",
-    "hash": "sha256-VIlfJVFtJ0xL/PfPWRCdXNLj9602GZaKflSnOn61qVg="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/grantleetheme-24.05.1.tar.xz",
+    "hash": "sha256-QMn4Zu0SplcgAUs00r1PLCddXGFHsGVoNATZX9Ef8nc="
   },
   "gwenview": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/gwenview-24.02.2.tar.xz",
-    "hash": "sha256-XxhgQHb+4pfnIutd1PRZafDgDGXs6TnnsSRj9X33i54="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/gwenview-24.05.1.tar.xz",
+    "hash": "sha256-OCqDN6W9epdVAG5z84TVENuePPdfXh1uzq6F7e7zzro="
   },
   "incidenceeditor": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/incidenceeditor-24.02.2.tar.xz",
-    "hash": "sha256-L+I9hvAy5ZyXolpEPmzwpe3hNGnKGcbI1TMFjeZUJRc="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/incidenceeditor-24.05.1.tar.xz",
+    "hash": "sha256-OBBaNy69VXedQh1KcMLmBZnauOly1oNKEl3UGomRt6s="
   },
   "isoimagewriter": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/isoimagewriter-24.02.2.tar.xz",
-    "hash": "sha256-lsddWNFO9ySQ2tSrYrcr9aedXNkCns+noonfGoP4sYY="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/isoimagewriter-24.05.1.tar.xz",
+    "hash": "sha256-rtDud0ShToup3JaUyKlPP+Dhjz7ECTRqH689YvB4KHw="
   },
   "itinerary": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/itinerary-24.02.2.tar.xz",
-    "hash": "sha256-eCGsmCUwFlshH0633jIl3rdn7TVrxQUXbcNkDoVMOxw="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/itinerary-24.05.1.tar.xz",
+    "hash": "sha256-JAQ7NvxLq+JIKxx3sTTEciC7X45GqyR6gLhKMRt6rRE="
   },
   "juk": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/juk-24.02.2.tar.xz",
-    "hash": "sha256-5XHlttb7Jz9Ar+8bX7KTO2OtuRcNEoI9EXWHn/sr+oM="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/juk-24.05.1.tar.xz",
+    "hash": "sha256-naidUA/c5+btN30O+imDr16vh6jL384prIGDPmFiG7g="
   },
   "k3b": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/k3b-24.02.2.tar.xz",
-    "hash": "sha256-YEfZQZO6FlDOcfQQC7oHhgI0VfTGoS4UydVDBYpOjkU="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/k3b-24.05.1.tar.xz",
+    "hash": "sha256-XFlM2bqCoebxggNizwl22IIuDKqsThSKj/sqIy5s4mk="
   },
   "kaccounts-integration": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kaccounts-integration-24.02.2.tar.xz",
-    "hash": "sha256-1Qs9eQ2N9qJNGv52YPp8bmHDgVnXdzgPh7gTyR0G0wc="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kaccounts-integration-24.05.1.tar.xz",
+    "hash": "sha256-Rsbzz2jk/0vHX8YRHxC1xcsq5tGd9ggnvi0EmFes24w="
   },
   "kaccounts-providers": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kaccounts-providers-24.02.2.tar.xz",
-    "hash": "sha256-Ti9uioVPthqxnwD4/2dsj9l7GhK3BIXmZSt0r6N0nBg="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kaccounts-providers-24.05.1.tar.xz",
+    "hash": "sha256-JjF2jyLDlkPPd4HgCAoHdBls/mSLKbfgBQGxgUKqjeE="
   },
   "kaddressbook": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kaddressbook-24.02.2.tar.xz",
-    "hash": "sha256-9ujQeY+Wf0XpJ5j2iUQ3XY0IjajDP2UAyk6mCxdH76M="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kaddressbook-24.05.1.tar.xz",
+    "hash": "sha256-5N3xSIGdhTBQAxMKf7DEfWB/8gtPEthLPZDTRDR4vNg="
   },
   "kajongg": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kajongg-24.02.2.tar.xz",
-    "hash": "sha256-wj6afAznRNhX5W5GtoVqyDRF9yzLYYPo6Xfw5aOCRT8="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kajongg-24.05.1.tar.xz",
+    "hash": "sha256-fh3+EhsqBNR887PxvFoR5Vt+ZX33Sk0VRPNdMgaQ56E="
   },
   "kalarm": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kalarm-24.02.2.tar.xz",
-    "hash": "sha256-LrlXBP+sQ6O96UISGmOm/zp/We54P8YU6w0CFuV4b/4="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kalarm-24.05.1.tar.xz",
+    "hash": "sha256-90zWXcjLXlYmX8alaW7EtWL0y2RTxg4mvA/t1K0MlfM="
   },
   "kalgebra": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kalgebra-24.02.2.tar.xz",
-    "hash": "sha256-oFvJWvkuRduH56GKkH5H9WsbiRtb2C9h7QFVs9rzTug="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kalgebra-24.05.1.tar.xz",
+    "hash": "sha256-T9DtbcTQqbVfTnuQYlQsS2c3azfXqOS/cGvkt9O7z64="
   },
   "kalk": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kalk-24.02.2.tar.xz",
-    "hash": "sha256-i85J/DofNyYDlroZfA0K/6YMIFFiSwVbRzakfmcJUWM="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kalk-24.05.1.tar.xz",
+    "hash": "sha256-VKECMzD4LOjRRlkvtWKdSi9oE6pXumqYzREqj6eQGCk="
+  },
+  "kalm": {
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kalm-24.05.1.tar.xz",
+    "hash": "sha256-ov31FhcQE985K8hB9q5E0k4Wu3KsgYqJPoh2wKG61Gw="
   },
   "kalzium": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kalzium-24.02.2.tar.xz",
-    "hash": "sha256-TGwX7FhH23FMEaJJ3kWZ1B3In8BLo4E53JCn/hX/Fqs="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kalzium-24.05.1.tar.xz",
+    "hash": "sha256-BtUNaLsFAkgKKwabA820NxJD80T9DT/zy+v42zVKhpM="
   },
   "kamera": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kamera-24.02.2.tar.xz",
-    "hash": "sha256-5ZTVkaqrHz3V+uzwJtd8DX7gJcNmL3xV50NGCM7bVNQ="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kamera-24.05.1.tar.xz",
+    "hash": "sha256-1Ee8rDkBB9KYZUG5nF2I28wtlyBsH6MI8hOs3NMuwiI="
   },
   "kamoso": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kamoso-24.02.2.tar.xz",
-    "hash": "sha256-f9cuA5hFh9mKGGeWCtqcOkTnyWjFSG/HdWP507tdCWs="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kamoso-24.05.1.tar.xz",
+    "hash": "sha256-HCq5+GWkgv2yVHy5W34hCIJa6PaNBFtKJDDjPD2Fmoo="
   },
   "kanagram": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kanagram-24.02.2.tar.xz",
-    "hash": "sha256-s5rbg39f78IFPRocFfpVHgVOohR6AVxGGRTZyvyeR1w="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kanagram-24.05.1.tar.xz",
+    "hash": "sha256-P+0bQ2NVvmsn2PHlSJ2l/F6jXZpv/4u85GFmpgZfUfU="
   },
   "kapman": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kapman-24.02.2.tar.xz",
-    "hash": "sha256-3j0LLttJQQXXOdR9eCUkJSO36M2M5VGpUNQDfm4+eeo="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kapman-24.05.1.tar.xz",
+    "hash": "sha256-glWBfieLegbE7ayxDd3PqJzy9EY2gqgi8mjey+BFPQU="
   },
   "kapptemplate": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kapptemplate-24.02.2.tar.xz",
-    "hash": "sha256-wrv56L0aZjynOEffETrZVQu4QT5MCBO1B54Bp0hjo1o="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kapptemplate-24.05.1.tar.xz",
+    "hash": "sha256-tlTVO9zswMFBwhlaFCJPKT/ygOrs6KnDXjtQYI8lHWU="
   },
   "kasts": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kasts-24.02.2.tar.xz",
-    "hash": "sha256-Tcf2XvflSBY9V6vAfRSStu0ca2RQgKJoYUsEjIICCN8="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kasts-24.05.1.tar.xz",
+    "hash": "sha256-YClZXlczAOg/gqy/eCFm3piWh9sah5qJT31bcFlVqhg="
   },
   "kate": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kate-24.02.2.tar.xz",
-    "hash": "sha256-HdrLCTmDGkPiucGr2Nflr+/nZ4mEIzMmNlU3Dpn1Q00="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kate-24.05.1.tar.xz",
+    "hash": "sha256-2vZSZyXemjeZ2X2zdCjPUTBizCc8wrxHz5SbMn+aKCc="
   },
   "katomic": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/katomic-24.02.2.tar.xz",
-    "hash": "sha256-5tIIENASeTWZtY6FCzZKgl6R1nnOb28xwPX+4+ar2aA="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/katomic-24.05.1.tar.xz",
+    "hash": "sha256-AEyv030/IRguQ/vKNCuXrHO6qPdqykOsyJ541RE91Ls="
   },
   "kbackup": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kbackup-24.02.2.tar.xz",
-    "hash": "sha256-Amcdci6yJESCj3qZNqtEmdavnaS8ea6zOHAR3TclcVg="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kbackup-24.05.1.tar.xz",
+    "hash": "sha256-oz9X7aAMtsgRTvVRwOeGSqjHX46+u6ZX8WH+C8pBc9U="
   },
   "kblackbox": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kblackbox-24.02.2.tar.xz",
-    "hash": "sha256-NTTlrAQPxCf/PlBF8ZkAPDpDq7H7YZfRnvsPblAgAPY="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kblackbox-24.05.1.tar.xz",
+    "hash": "sha256-aKl+D8Og+cZIZbms+kDO8qZ5bFf7L6Oj8pL/G/FBMfs="
   },
   "kblocks": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kblocks-24.02.2.tar.xz",
-    "hash": "sha256-rOcasBtCOHtrxJhypwg9c4pvHAhMeli1c6Tx8ZCKkGM="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kblocks-24.05.1.tar.xz",
+    "hash": "sha256-eNsF2UsSYNLrJnoWkXDZdkY/2JnvolO05/5nJtRUkX8="
   },
   "kbounce": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kbounce-24.02.2.tar.xz",
-    "hash": "sha256-g9AImDCZw2BwG7EJ3/myZAsQ3KQfhk6CD1nvX3C9qqY="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kbounce-24.05.1.tar.xz",
+    "hash": "sha256-RC+7ftZdyM0gUweJvnXs/9hVd5CXQjR8BN6KSpWfLUw="
   },
   "kbreakout": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kbreakout-24.02.2.tar.xz",
-    "hash": "sha256-lEMvZ0NGPhx06rZr1+kaKDs1xHGi0DwOtLYZz95Y21M="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kbreakout-24.05.1.tar.xz",
+    "hash": "sha256-pN0owNyCN8ohlGyO47El/6Wa1IJDw5pzI3oTcjfJDRY="
   },
   "kbruch": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kbruch-24.02.2.tar.xz",
-    "hash": "sha256-mwAEF9T5epRyDKzaKrffIAAEv4LggtPUB83DvYeKd+I="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kbruch-24.05.1.tar.xz",
+    "hash": "sha256-/jFyrWGKi9i3W00VYIjBVNaK7FlH9uWbLiM0pme+R5E="
   },
   "kcachegrind": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kcachegrind-24.02.2.tar.xz",
-    "hash": "sha256-HEMJn6QqOJ6f+SYTtVDmYGqd6dW1ehCksIq1E+Wme5w="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kcachegrind-24.05.1.tar.xz",
+    "hash": "sha256-v0XWazbQc7W79dez7yzoNaJj6U6FnakxgaPoOREr0ms="
   },
   "kcalc": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kcalc-24.02.2.tar.xz",
-    "hash": "sha256-nMLSdjX4WK+3vzD55+m+8sBN6mU+4zuqQxZdo+V5e50="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kcalc-24.05.1.tar.xz",
+    "hash": "sha256-mwXkMnnZp6W5tkLPOG46nu9dvBPp9ooYqlxhEa0/lII="
   },
   "kcalutils": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kcalutils-24.02.2.tar.xz",
-    "hash": "sha256-ikf/BefvIY4qSDbY2xYoDvYx6bkNm13/jFakzK6NHI0="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kcalutils-24.05.1.tar.xz",
+    "hash": "sha256-MJ1ymN7XFgWSB2YWxRJz23wc1g7H+VTllrRt34/INfg="
   },
   "kcharselect": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kcharselect-24.02.2.tar.xz",
-    "hash": "sha256-oYVEVRN8xl9518cQJGwWv9DdVYMbocH88hRuiR4p/SU="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kcharselect-24.05.1.tar.xz",
+    "hash": "sha256-bNWSjDJlDOEr7RPdV6aMDRID0734bVsmzpuiN7DODAI="
   },
   "kclock": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kclock-24.02.2.tar.xz",
-    "hash": "sha256-mumHKzXstbCLnonGe42zi+qYVJT0YC6Y7j90AQbtYFo="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kclock-24.05.1.tar.xz",
+    "hash": "sha256-I+FpK4efcw0HXlabLbb/wjvnozsStMqGgU9fZi/v9Yo="
   },
   "kcolorchooser": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kcolorchooser-24.02.2.tar.xz",
-    "hash": "sha256-fx18e/2oDPYnpyvrYtCUTgUoc/SIBO6ZquwTORmABaw="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kcolorchooser-24.05.1.tar.xz",
+    "hash": "sha256-S4UxNZKuuhiLMQpkI0+8EyOrWKdsFdGxNqJPgY7QI9g="
   },
   "kcron": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kcron-24.02.2.tar.xz",
-    "hash": "sha256-LFWHivRYz8e4PM9ZLaVxc2kywn2CQSBDMZtx7rrXELU="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kcron-24.05.1.tar.xz",
+    "hash": "sha256-OMx6vO167q6EnAw/7Iycfq9m6eUZ2+x8sOvS+Zwus5E="
   },
   "kdebugsettings": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdebugsettings-24.02.2.tar.xz",
-    "hash": "sha256-D/ClEQy1i4EhaMtit5+2bj60W9iLfKWBEdXjhk7PukA="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kdebugsettings-24.05.1.tar.xz",
+    "hash": "sha256-vgQhcUufk164qFv6OU5Ke1W65B9W5ZrvyLY10U/OgUY="
   },
   "kdeconnect-kde": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdeconnect-kde-24.02.2.tar.xz",
-    "hash": "sha256-6ASRDSse1PX2zjaRXHnRHFW+bO4PJl2SNNlqLCcADa0="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kdeconnect-kde-24.05.1.tar.xz",
+    "hash": "sha256-79sXtg9TGxPLUiKykzSQUHEaRjYoKsPVhtqYqlBWR4A="
   },
   "kde-dev-scripts": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kde-dev-scripts-24.02.2.tar.xz",
-    "hash": "sha256-/pmwM1oKsrD/CbMx/CQD+tpm5jfv1RV3rSGgpAEJGd8="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kde-dev-scripts-24.05.1.tar.xz",
+    "hash": "sha256-oZA8Dy7rWNdAHR90gbLw94kICzGbsdIWGMjFY6UivxU="
   },
   "kde-dev-utils": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kde-dev-utils-24.02.2.tar.xz",
-    "hash": "sha256-qmb4jZJxiqcpxkStN8aS4AWmMZBSihQgGRUhMpvb3U4="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kde-dev-utils-24.05.1.tar.xz",
+    "hash": "sha256-6JizYqszbDBEY5RitReCmSLG1eiwnyaNQ+3DCCv5R8E="
   },
   "kdeedu-data": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdeedu-data-24.02.2.tar.xz",
-    "hash": "sha256-Vr/rOVLH2SF/q9iT/y/ae/JZq+FYMQWGxugSsIu4tJc="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kdeedu-data-24.05.1.tar.xz",
+    "hash": "sha256-/3VVPGuvow/FgjhTPIbY/emspApXLjIbB86eQ9Dc/jQ="
   },
   "kdegraphics-mobipocket": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdegraphics-mobipocket-24.02.2.tar.xz",
-    "hash": "sha256-kRFWFg5KwC8wJhGN4/MAiWIw+OCmvXp/z1yVvEFsvSo="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kdegraphics-mobipocket-24.05.1.tar.xz",
+    "hash": "sha256-5F2JAMZ67jrw+5t/TKZGt9+a6yrEfxS+WX66AfmhJK0="
   },
   "kdegraphics-thumbnailers": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdegraphics-thumbnailers-24.02.2.tar.xz",
-    "hash": "sha256-uWkSy0maO1FOF1X5ILeqJRsVQhL8PD+JS4SrQJ+68wo="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kdegraphics-thumbnailers-24.05.1.tar.xz",
+    "hash": "sha256-fNac/C+rWbXGFCHGZIs2ia7xBZyd8dxUYBHWL3xcy8A="
   },
   "kde-inotify-survey": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kde-inotify-survey-24.02.2.tar.xz",
-    "hash": "sha256-UG1tomYst8jhNduD/xH+TlaW3SWKnTohK11K0oiTCKw="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kde-inotify-survey-24.05.1.tar.xz",
+    "hash": "sha256-9aCdjuA6C1Ej7tGYA7zk+eG5jDoOB5AxIJ7gJjOzLII="
   },
   "kdenetwork-filesharing": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdenetwork-filesharing-24.02.2.tar.xz",
-    "hash": "sha256-tRZnIIALHodp0heF6DreLmcw5y/6HMPZMN9kVyLAing="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kdenetwork-filesharing-24.05.1.tar.xz",
+    "hash": "sha256-bu+pbBRnrJkAUazRWPKXuE3JAs/hld3Y9gr79QT8ADU="
   },
   "kdenlive": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdenlive-24.02.2.tar.xz",
-    "hash": "sha256-yEtiZK7y6nlOAwGCf0bAHhK22VkhWJN+GE3dxMOUbuM="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kdenlive-24.05.1.tar.xz",
+    "hash": "sha256-EJJZLecWda+wjuZ6yacdMRWz7jVI2lJ1mXHFsAJhA9o="
   },
   "kdepim-addons": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdepim-addons-24.02.2.tar.xz",
-    "hash": "sha256-sdnub88kEAlOH+R9j4OQ6SCVNwuoJhEZP8PmH1qwST8="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kdepim-addons-24.05.1.tar.xz",
+    "hash": "sha256-G8oxBYzyyel0pr9oqeFqdxq9TCciwuzZRPM66U1gn7w="
   },
   "kdepim-runtime": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdepim-runtime-24.02.2.tar.xz",
-    "hash": "sha256-7DAF62M58uU+iSaKXh1Mn3azM/CyrQyH54I9GEbtDcw="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kdepim-runtime-24.05.1.tar.xz",
+    "hash": "sha256-eb6+tnwUPDqpuP6GcQIw2XJQdhYy4HMTfoAtM6e8Un4="
   },
   "kdesdk-kio": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdesdk-kio-24.02.2.tar.xz",
-    "hash": "sha256-IjdMcwnu4O3gJCDLzmoXC2lnoi1NdfIKqeO7GRyq230="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kdesdk-kio-24.05.1.tar.xz",
+    "hash": "sha256-wazYd4pq1Bu0SKthoKh3ZnKLK3E/qXQt0Mq6RzNY+aE="
   },
   "kdesdk-thumbnailers": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdesdk-thumbnailers-24.02.2.tar.xz",
-    "hash": "sha256-uifW3KPs6UAUBuoDH38I6Fs1/snWu0hRLLYz3tXEBvI="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kdesdk-thumbnailers-24.05.1.tar.xz",
+    "hash": "sha256-bAsza2rsYkWaoVXAse5AIUFj6TtDU8cl6YI9f7DKOZs="
   },
   "kdevelop": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdevelop-24.02.2.tar.xz",
-    "hash": "sha256-M54jhw7jKHNvatPxcTxyqEr00VZSm/KUfxEz+tekirc="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kdevelop-24.05.1.tar.xz",
+    "hash": "sha256-9hE/ECQrtlZi3bdse3Jbtx4jvN8Z64DgQfOdTWyX87Y="
   },
   "kdev-php": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdev-php-24.02.2.tar.xz",
-    "hash": "sha256-wDw2DGP/hoynhisDYsbGaTw2fAdpDMXlqJSrQ1BWKoo="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kdev-php-24.05.1.tar.xz",
+    "hash": "sha256-x3te4XLjSgbe68Yx27ZfRQAXtzMqGpfocS2eKWoAxXY="
   },
   "kdev-python": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdev-python-24.02.2.tar.xz",
-    "hash": "sha256-+Px+89s8x02OxzP+Tm1jifgYfIp/plhXcrWGox5KjWo="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kdev-python-24.05.1.tar.xz",
+    "hash": "sha256-DjLeNdSaHtxgdqYyh4JST8QOH/51OSaXyZVCh6GPtyY="
   },
   "kdf": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdf-24.02.2.tar.xz",
-    "hash": "sha256-K1ouYilOXTewDdoZeuXiJYBrz6jdGXXY8VEG2XM2Odc="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kdf-24.05.1.tar.xz",
+    "hash": "sha256-EHw7hjDRhCmi+G46tDEt51jwOTsYawkJ846oxp4pkZ8="
   },
   "kdialog": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdialog-24.02.2.tar.xz",
-    "hash": "sha256-8d+N1LY/tO+/nbgDJquvfi99uDEo/kfShMbffYEucdk="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kdialog-24.05.1.tar.xz",
+    "hash": "sha256-jm4cQnv3Dl9WxMLzZbat/yDWrXsTTcV1Aoi8+haFryU="
   },
   "kdiamond": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdiamond-24.02.2.tar.xz",
-    "hash": "sha256-DnX4x2wnaGIzr7vR+DrwNDAj1ocLeI6g88H+QxnVyJw="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kdiamond-24.05.1.tar.xz",
+    "hash": "sha256-6OAiF+I6MCq6At+rq7tb9Wup1sKy68a5MeNgeCE0Ef8="
   },
   "keditbookmarks": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/keditbookmarks-24.02.2.tar.xz",
-    "hash": "sha256-vHSvzQFkt6zf/fMj/bR7KDtbCWClZ8B6AQI4oMCMayY="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/keditbookmarks-24.05.1.tar.xz",
+    "hash": "sha256-o/KyT5Eo94BNkuWUhydvY+gGevi3bhszgnTNg9+GxeE="
   },
   "keysmith": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/keysmith-24.02.2.tar.xz",
-    "hash": "sha256-8WwhWSYQRNG/+T0bkOoPUI40xhukkmi1ysD7VyTbByw="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/keysmith-24.05.1.tar.xz",
+    "hash": "sha256-q1jc93onRMJbPdokt4pqqgYYfSToa4SKWBwbm6DIA58="
   },
   "kfind": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kfind-24.02.2.tar.xz",
-    "hash": "sha256-rg8fsCnEtLhRIszXH0wdGGkp7xkFfdrztyyhsyUsmK0="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kfind-24.05.1.tar.xz",
+    "hash": "sha256-mTdBMeQ6mnpkvfMlgg+JsDRu+B5wOFyUuT7xCnUeTwo="
   },
   "kfourinline": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kfourinline-24.02.2.tar.xz",
-    "hash": "sha256-R+fYzLd/df4yjW1URKIY+cPb4T4dHc6EIql2U4nMwy0="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kfourinline-24.05.1.tar.xz",
+    "hash": "sha256-wUD7YRf0B2guO1wxkcdpwI1LnhdJvwY8xtmzzIyQYNg="
   },
   "kgeography": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kgeography-24.02.2.tar.xz",
-    "hash": "sha256-DyQkUzTnW7j3uGzYlLVMsAuMtCGSgnPCy934KXWOdgo="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kgeography-24.05.1.tar.xz",
+    "hash": "sha256-1l7UPG5aQ6zSJCb7cGIt7mComRwSCa5wQ8dDomQiPP0="
   },
   "kget": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kget-24.02.2.tar.xz",
-    "hash": "sha256-4PkVdtAFGUdwAyEjufHEDSUKvMBWQEGkRZzvtzsDK2Q="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kget-24.05.1.tar.xz",
+    "hash": "sha256-v1XK5VAsVVHdusGgOJ9WjpiIMQ3xX/xMhgTGbSzHv4A="
   },
   "kgoldrunner": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kgoldrunner-24.02.2.tar.xz",
-    "hash": "sha256-0WcnGBJopqW9PuKy1TmDCePLOqwOi3AwB22mjlOzv3M="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kgoldrunner-24.05.1.tar.xz",
+    "hash": "sha256-Ua2QN0A7XWI0Wy2ceR+TEQfTSwRMobQGpqLwgU26r2g="
   },
   "kgpg": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kgpg-24.02.2.tar.xz",
-    "hash": "sha256-2XraIbCCSMjkTZGLR9pg8o+kpbksYVJzPzE36aLvBes="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kgpg-24.05.1.tar.xz",
+    "hash": "sha256-b6lz9AnsTsPFFv8Eunp/CC57h4R3DgcQsmTj+dei/LM="
   },
   "khangman": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/khangman-24.02.2.tar.xz",
-    "hash": "sha256-unFszlJqp8KI7K/CEV1BszbSaI4ogYzFI1OSWiz8SCw="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/khangman-24.05.1.tar.xz",
+    "hash": "sha256-C6PM1NRw7ChDVaYRwOGxHjnS1DZb5fhXd+NNvUXqmxY="
   },
   "khealthcertificate": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/khealthcertificate-24.02.2.tar.xz",
-    "hash": "sha256-llBNAYqMwXmB/f2R0lElXpUbTiR4GTlohHLefXRhxy0="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/khealthcertificate-24.05.1.tar.xz",
+    "hash": "sha256-EAJEdeEMtKwNIJcqvgIYA+uI+2l77ShYc/X9+Cd+uP8="
   },
   "khelpcenter": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/khelpcenter-24.02.2.tar.xz",
-    "hash": "sha256-UghQIcT3Qr8oSQEDI7BD7RIaosyJ4H4sgV2JGoG95js="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/khelpcenter-24.05.1.tar.xz",
+    "hash": "sha256-l6+hFiKyZsBVysoyG9ikL3wTgd2b+VK58SJTjU4ZeRs="
   },
   "kidentitymanagement": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kidentitymanagement-24.02.2.tar.xz",
-    "hash": "sha256-nfCo7FkpgVkAdwZ+e+ed8YiUr060HylFHpPqduQIH0E="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kidentitymanagement-24.05.1.tar.xz",
+    "hash": "sha256-hF8ttpU3CH+XU6qcxyvV1bu8LAx12jT+90xxxxFcvQ8="
   },
   "kig": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kig-24.02.2.tar.xz",
-    "hash": "sha256-k85+krHu+LZpUFskjEShugmLEXQ4xzNL/86bWm14tOs="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kig-24.05.1.tar.xz",
+    "hash": "sha256-DrhOTrR4zC7MqccrHNQ3Nkr6FPVcjvehYRSKMn4RRM0="
   },
   "kigo": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kigo-24.02.2.tar.xz",
-    "hash": "sha256-AMYnWg5IdTFMWnNfIPVChuInKP7U1k5k9U0KDFKwaBY="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kigo-24.05.1.tar.xz",
+    "hash": "sha256-d8dCE9ZZAsYXH5332apMnFvhgft0FOh9SOVWYsfkebw="
   },
   "killbots": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/killbots-24.02.2.tar.xz",
-    "hash": "sha256-idjc/On0HquWg13tJIdkdE/FM1fYvU9Rc2tQGaK6xIE="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/killbots-24.05.1.tar.xz",
+    "hash": "sha256-yrkditrWJa3krQHLfAeQTCCyopMg/e41svos7uwEJbw="
   },
   "kimagemapeditor": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kimagemapeditor-24.02.2.tar.xz",
-    "hash": "sha256-RD7rYeNFiYE4L4ogHa9QKfnHlSXmB5njU/POoIVhMr8="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kimagemapeditor-24.05.1.tar.xz",
+    "hash": "sha256-IpJYuStRohoEabkBMSrAhiZqQILNmcG17cKBKq5MGqs="
   },
   "kimap": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kimap-24.02.2.tar.xz",
-    "hash": "sha256-YX9P//jQEHirTd66ibXCxE8tw5b96W/uRv6XSbMjM2A="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kimap-24.05.1.tar.xz",
+    "hash": "sha256-sicRKm6LWFpepA/6Wzk6YtvxIu5G9lQeeH8zyPjGzt0="
   },
   "kio-admin": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kio-admin-24.02.2.tar.xz",
-    "hash": "sha256-JAgogPCAj7mzyPWDlHFZAtvHMWeveuLtl/Lk4oTKCbc="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kio-admin-24.05.1.tar.xz",
+    "hash": "sha256-SurYTu3tkMrQUPtmQUjGTOCE85MykFtd9doaUd81nhg="
   },
   "kio-extras": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kio-extras-24.02.2.tar.xz",
-    "hash": "sha256-+nph9GHBYcNtX6RR0HDmllPyNAYgZI+BO0wry3mUQ8c="
-  },
-  "kio-extras-kf5": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kio-extras-kf5-24.02.2.tar.xz",
-    "hash": "sha256-qar1jzuALINBu6HOuVBU+RUFnqRH9Z/8e5M8ynGxKsk="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kio-extras-24.05.1.tar.xz",
+    "hash": "sha256-VziTgiARJKZx3t43SB9vlBYcuXXb0kcWkqvTGJcDvJg="
   },
   "kio-gdrive": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kio-gdrive-24.02.2.tar.xz",
-    "hash": "sha256-Ejv0tSgW3QasBFXBsKzS9oTK1zUHX/btIkTvHjqSOSM="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kio-gdrive-24.05.1.tar.xz",
+    "hash": "sha256-qsq24Z6EqKYMe9HZF/6Wh7iR418TA3PbMbWCA+xviyU="
   },
   "kio-zeroconf": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kio-zeroconf-24.02.2.tar.xz",
-    "hash": "sha256-pnhOiXHJ7aRe4nGSj9wL/ytu4O0TTdtkiNqvHohqFE8="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kio-zeroconf-24.05.1.tar.xz",
+    "hash": "sha256-0Lu0XQAUh9vCDZaqd+aDKI/f+fy/lMhHX5+XfZn2pw0="
   },
   "kipi-plugins": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kipi-plugins-24.02.2.tar.xz",
-    "hash": "sha256-VQShO1Jx8IQYoXui2HX95LI3PKlT/lZLMJFI0eyw6G0="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kipi-plugins-24.05.1.tar.xz",
+    "hash": "sha256-3HB8DcpVeiykMjm7m9Mv4Nhebre36HyLw1KiIfrOCHE="
   },
   "kirigami-gallery": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kirigami-gallery-24.02.2.tar.xz",
-    "hash": "sha256-cLt1nGKg5NFpeBwzTM21ZPTN4Kv1EJEL3oITNc53it0="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kirigami-gallery-24.05.1.tar.xz",
+    "hash": "sha256-4zhRQwfs2vT+iAstdnWi+y/6cNwRAE/87DFG8W/7cGQ="
   },
   "kiriki": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kiriki-24.02.2.tar.xz",
-    "hash": "sha256-BsMqgpi6ysmJHrkVURJC+A2r82aB3LEZNPdGKQUEdRc="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kiriki-24.05.1.tar.xz",
+    "hash": "sha256-+yCfYcivlFPiCDU2DgB4Bnn2FStsKmtcijmY9hTeC1k="
   },
   "kiten": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kiten-24.02.2.tar.xz",
-    "hash": "sha256-7d6RgHGcmk1DR/upIclTnaRoiiBNwSRqtrt1zuYM67w="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kiten-24.05.1.tar.xz",
+    "hash": "sha256-jYt1aIPzej3xeMBIlHMTLeSG+pWzmz60sn1uuyomAoM="
   },
   "kitinerary": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kitinerary-24.02.2.tar.xz",
-    "hash": "sha256-cW5uYhdcorV3598YjJFDpS4plMdQBzR8DTisAQSeKvg="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kitinerary-24.05.1.tar.xz",
+    "hash": "sha256-4cd/Co6Cb9lfABptj8lBkG0+Cq2Ywodsd8XjunRi0OY="
   },
   "kjournald": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kjournald-24.02.2.tar.xz",
-    "hash": "sha256-OTE9s1JLRha846is7JxUvIOg07woNxYKwHQw0E0Mims="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kjournald-24.05.1.tar.xz",
+    "hash": "sha256-LXPe24nPJHzIacibyHG1qjCzHKREI8ifetYp1V4BsdI="
   },
   "kjumpingcube": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kjumpingcube-24.02.2.tar.xz",
-    "hash": "sha256-Jw0mjtZIvdgOok2odrl5v6ScMpqJ0jFZJYm+ufjqNw4="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kjumpingcube-24.05.1.tar.xz",
+    "hash": "sha256-ZTsGW5JtpPz6hDSD4Fb27ZPnue9+LsRw42mvPAxDt4M="
   },
   "kldap": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kldap-24.02.2.tar.xz",
-    "hash": "sha256-lUb0yqIDQQCqtoyeiT/gMvk4IVFbvTGUMl3YQQ9OGFQ="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kldap-24.05.1.tar.xz",
+    "hash": "sha256-BSiBysBodUnqhYwree39EhE3bdPF4t7+Iw0XqRkDl68="
   },
   "kleopatra": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kleopatra-24.02.2.tar.xz",
-    "hash": "sha256-B3Q4U7sbZt3xwKP5hh/PIecWvF5Z2EB4wC/rnzXGQ8U="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kleopatra-24.05.1.tar.xz",
+    "hash": "sha256-4VAerbUzZSwWxOf4VP/TIjUnj944SLq3z+ARpm8/jg0="
   },
   "klettres": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/klettres-24.02.2.tar.xz",
-    "hash": "sha256-eH/tX6Hv/uVs6WmPKL7aa4eWn42sTzN3j9Kbf0RIuwc="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/klettres-24.05.1.tar.xz",
+    "hash": "sha256-zTpgG9mVbYuReu+/MXlkLK7+h4FvWrWutV66DzJDtuM="
   },
   "klickety": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/klickety-24.02.2.tar.xz",
-    "hash": "sha256-S4zFnyrghWPvF6mdOzrtL/zs8zWD50PUJovHO1F6tlQ="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/klickety-24.05.1.tar.xz",
+    "hash": "sha256-LZ37dB0KozmyrUxkgUykwsoiUG9hiES+NvnJD0OaOC0="
   },
   "klines": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/klines-24.02.2.tar.xz",
-    "hash": "sha256-ZQMF9WAqfckjh5qEz0796OdD2CYRu6b8QC4iyc7LCOY="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/klines-24.05.1.tar.xz",
+    "hash": "sha256-+oMhpHqmwv1lWLNt93yjI2hiqzqB+c5LxvIhQ7UIrnk="
   },
   "kmag": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kmag-24.02.2.tar.xz",
-    "hash": "sha256-nDkcfm7gntmatD5enyt1WvWaoUShjojylTKFmfeC8CY="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kmag-24.05.1.tar.xz",
+    "hash": "sha256-J2k2UK746YtPyUVzk+EGvY0OibIDXoFwHUOxtGKPWAA="
   },
   "kmahjongg": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kmahjongg-24.02.2.tar.xz",
-    "hash": "sha256-T3RMz/vQVyu2FgdoiNcZmhxxBur3DZAGJEEAnPG6UhI="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kmahjongg-24.05.1.tar.xz",
+    "hash": "sha256-nXywv+yA9cGctVr52WXo/DQ6c6WiDG/4i1RiRAF/T/M="
   },
   "kmail": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kmail-24.02.2.tar.xz",
-    "hash": "sha256-8AVx6obaeDqueB8fHTmO3yn1nSi0F1dQNVtzyhlyGCY="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kmail-24.05.1.tar.xz",
+    "hash": "sha256-vzoEm9ZVMW4x2HiWYDnJJ4MLzAEmSf0n+rGCLbQ2GN8="
   },
   "kmail-account-wizard": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kmail-account-wizard-24.02.2.tar.xz",
-    "hash": "sha256-va6vyIgl4UMX3NKQhZJcDW780fCYX0gSY1OSGWdH8fc="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kmail-account-wizard-24.05.1.tar.xz",
+    "hash": "sha256-wd9HZqYfXetspdJpwf1F9dCFY+cA9WgkrCBUjN9d/Bo="
   },
   "kmailtransport": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kmailtransport-24.02.2.tar.xz",
-    "hash": "sha256-KK86kGlccotCWEt/rjSPlmxx+LaI+dN5L2RrVdZgxlw="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kmailtransport-24.05.1.tar.xz",
+    "hash": "sha256-UGOr9Xi3hvlmjBScKxdhGcG9wAYFfDtMDfYQpocxHoY="
   },
   "kmbox": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kmbox-24.02.2.tar.xz",
-    "hash": "sha256-b6z07FzQU83j4tNHmepydqZI4QdjXg/AohtB6uZcPo8="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kmbox-24.05.1.tar.xz",
+    "hash": "sha256-6K1QlT12WhLZpMGHRsAqjy72/rdQgQMMuxLsR0idE2w="
   },
   "kmime": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kmime-24.02.2.tar.xz",
-    "hash": "sha256-Q03G9tI9Zog2t5TmNmCk2/PpOZ6E/OodGVd6SgnmSuI="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kmime-24.05.1.tar.xz",
+    "hash": "sha256-8BOOEdnoqd6OnVcIGh+0tDZ24IvEwziXQLMemgDJHvo="
   },
   "kmines": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kmines-24.02.2.tar.xz",
-    "hash": "sha256-jAR6f0ykQhknrER4Uyi4z7eyz21J0Te5wnrtUkF60Q8="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kmines-24.05.1.tar.xz",
+    "hash": "sha256-BZTEkUfDeII60Ez8ezhD0LjlkoA3bCjFDv/mTyfkOS4="
   },
   "kmix": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kmix-24.02.2.tar.xz",
-    "hash": "sha256-g4QRJujC/1YDgoLd78IA97rHDrYHpWqXEVX0L1q4VrA="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kmix-24.05.1.tar.xz",
+    "hash": "sha256-uPC6oFtRlxQnBzm013m2/9jsAlZ8Ooq16WbkHsn9gUU="
   },
   "kmousetool": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kmousetool-24.02.2.tar.xz",
-    "hash": "sha256-Wja9ym8V1IPVZ8sW0Fu6CF8w2pNvX/3ONR95vj5DnEM="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kmousetool-24.05.1.tar.xz",
+    "hash": "sha256-oADiOSYsq5D8DQGSpU8cmoW5E59sNnoVTBjxjq/zmj0="
   },
   "kmouth": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kmouth-24.02.2.tar.xz",
-    "hash": "sha256-XcgN2soQftHjqmTjn14cBDiIoWaCzW/U5PSRyu4MxJI="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kmouth-24.05.1.tar.xz",
+    "hash": "sha256-fwJBNf0qCZrN0LFHFmW1Ep3sKsjj78WQEuoVlXeUxH0="
   },
   "kmplot": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kmplot-24.02.2.tar.xz",
-    "hash": "sha256-HzUY0azJytTeSWEFYS7l5r0+gYWYTWDValfnRptQAoI="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kmplot-24.05.1.tar.xz",
+    "hash": "sha256-wT1cPF58p8gRn13NCGYkLN3gwYcuGIAV7KUsQly95QQ="
   },
   "knavalbattle": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/knavalbattle-24.02.2.tar.xz",
-    "hash": "sha256-uXiV2i2mnzCaB+o9LM8Iu7CF2cocpTjDVG74AtJPh6E="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/knavalbattle-24.05.1.tar.xz",
+    "hash": "sha256-IObuJxAfJ+vGYiKmZ/0N1cgcoh6w68VGlL3Oa9/Pt14="
   },
   "knetwalk": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/knetwalk-24.02.2.tar.xz",
-    "hash": "sha256-omYtJDKvpqMD2cu8Xqh4U2HVU6ZRvJcyaktTnKydyzE="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/knetwalk-24.05.1.tar.xz",
+    "hash": "sha256-81Z5SyDWDzkcBPluO6WWEPCXtJpl1mBxxifTlxsLOh0="
   },
   "knights": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/knights-24.02.2.tar.xz",
-    "hash": "sha256-D+yDyGK0jYkP39vgTvM35ohV2NxSvouhuZ0wsW8Z4P4="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/knights-24.05.1.tar.xz",
+    "hash": "sha256-j9yRegmjBCgmEfOd4K5sWeBZDyxpdIryc8n2LrIuW44="
   },
   "knotes": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/knotes-24.02.2.tar.xz",
-    "hash": "sha256-kKszYhuQD2kWxIZItIF85GhObcyOWxmVVUt+JXSInHM="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/knotes-24.05.1.tar.xz",
+    "hash": "sha256-yv3I3iIIikb+EeTvhiCFlfuJwZnJAAwWvkq03a5N/zQ="
   },
   "koko": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/koko-24.02.2.tar.xz",
-    "hash": "sha256-c2SD1NLraPGvoK0YKr2JcwSVcJgjytn9cngE4fSFMVg="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/koko-24.05.1.tar.xz",
+    "hash": "sha256-s/S2Dttja1nZfFaIV4S+ARNVsQ9t9QYYgBSk9+uwoNM="
   },
   "kolf": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kolf-24.02.2.tar.xz",
-    "hash": "sha256-Cyy/w7UJwJMFwCGf8mZ6EM7uXozqIvUbwLqf/Tei61E="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kolf-24.05.1.tar.xz",
+    "hash": "sha256-FetuC1A/ZsbKNLgH4uQmHbQVet3R3+AJmtjN/f7RqE4="
   },
   "kollision": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kollision-24.02.2.tar.xz",
-    "hash": "sha256-pb3AEFqTAlfJgdiWv3cy0d+vnd3isEVsi0/l9Ccd7cg="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kollision-24.05.1.tar.xz",
+    "hash": "sha256-e4Ojqpe6NSkuYOkRRDer5M3v6q9uafMrIF+H/WbASZI="
   },
   "kolourpaint": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kolourpaint-24.02.2.tar.xz",
-    "hash": "sha256-ABn+QdloID2+XGwBZoWOxTkV4tZ+AH7xZonkDtGbnoQ="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kolourpaint-24.05.1.tar.xz",
+    "hash": "sha256-D2kXVAQyHiAVJwazWiP4+X+6xp9JH2GBpe7iij6VG54="
   },
   "kompare": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kompare-24.02.2.tar.xz",
-    "hash": "sha256-tASJrlYEAfUuUaMJpxqxEdVMTvJLMAbmsu8V1XXyh0E="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kompare-24.05.1.tar.xz",
+    "hash": "sha256-Z634h3HMgQI7HpAKRN50rFdpAtjr8suCypTrD4GZz2A="
   },
   "kongress": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kongress-24.02.2.tar.xz",
-    "hash": "sha256-t21I/7esniEZCt/1Yvn5ejczDw/6n45FmVD2yFqP+Kw="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kongress-24.05.1.tar.xz",
+    "hash": "sha256-bArGGAg4AYtDnUWqSDKWIXTAmDxRLvN6H0Irf7fHm3w="
   },
   "konqueror": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/konqueror-24.02.2.tar.xz",
-    "hash": "sha256-Bk8fBm391PdP8cnkdXXIukfeR91tX13RhWUA702bxjI="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/konqueror-24.05.1.tar.xz",
+    "hash": "sha256-/k/zHS0bOIqyKSSM1OsUaOmQwTRgf84ptsSiZ9Th/IM="
   },
   "konquest": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/konquest-24.02.2.tar.xz",
-    "hash": "sha256-41BXstbTrQ08J0CZ3Nk3Qwq0KlsHoYUuF+4oANM67Cw="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/konquest-24.05.1.tar.xz",
+    "hash": "sha256-NP4I4r6R9i7hH+ggjAg36k6lRDRSpb4Kk7bXaA/VoCA="
   },
   "konsole": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/konsole-24.02.2.tar.xz",
-    "hash": "sha256-ZkZ+M2U2199cErytMaPvCiFQxANR2HZ3BHpA6uRA7i8="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/konsole-24.05.1.tar.xz",
+    "hash": "sha256-m1rh9W6rJ/7vrlBoU8X6r2k6+6j4hdz413Ttl9aTcY8="
   },
   "kontact": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kontact-24.02.2.tar.xz",
-    "hash": "sha256-vXEUyrfFucXNNuxEgofIX2HZQySjNbIbO7+AJSDWH7Y="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kontact-24.05.1.tar.xz",
+    "hash": "sha256-yH4Y1C73kS+P9BMnosfWDGY0OOsoTK228DWjljRYoCg="
   },
   "kontactinterface": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kontactinterface-24.02.2.tar.xz",
-    "hash": "sha256-cg4U708BtnCQvNfHQHYBa/GTdrC2woEK4eQ1Tk1la7E="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kontactinterface-24.05.1.tar.xz",
+    "hash": "sha256-FY/zt6m92hhu0Lhjzs6LmAVPR12zPrYF0PDcMMl7eL4="
   },
   "kontrast": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kontrast-24.02.2.tar.xz",
-    "hash": "sha256-C2etCsl1TVS2ycSSoB2f2JMq3XGY7DIVY2mBCiWlutc="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kontrast-24.05.1.tar.xz",
+    "hash": "sha256-TplBjBVEK8jNAk2BZI8ADZjiXbts3E4mQmG0BGvfnX8="
   },
   "konversation": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/konversation-24.02.2.tar.xz",
-    "hash": "sha256-uBZ7BUZbDEt8ukJjarW0DrzNmPCIkjRR00sDn/sV4kk="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/konversation-24.05.1.tar.xz",
+    "hash": "sha256-NXmP2VIimCjkR2mNrmxDYmRWpbpcQy8yx0jsbT15FvU="
   },
   "kopeninghours": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kopeninghours-24.02.2.tar.xz",
-    "hash": "sha256-yty1NgsYW6Zt4hOBpvlpCmhItL/mC/QMKvvW1QlWcIQ="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kopeninghours-24.05.1.tar.xz",
+    "hash": "sha256-wmvg/pCO7w1+g/7iRtu3he17znT+ESyMbC/YuXNviaI="
   },
   "korganizer": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/korganizer-24.02.2.tar.xz",
-    "hash": "sha256-N0osNS9MZF9e/xXTsWWnpZZkdTe1lsHu5J3tITQXBBc="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/korganizer-24.05.1.tar.xz",
+    "hash": "sha256-1/du2M+yTsWU3Qi6p4vLY7dyiFkos4cIl1WrE3lmYfU="
   },
   "kosmindoormap": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kosmindoormap-24.02.2.tar.xz",
-    "hash": "sha256-+TM+Woo8aWp+tMNH4lrqnaVQyVeoGfLA9cgkYcLnLhQ="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kosmindoormap-24.05.1.tar.xz",
+    "hash": "sha256-keXxLrLi+JmhGOGwtT/aVaB2VmyFBPqAzm81uHA92Dc="
   },
   "kpat": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kpat-24.02.2.tar.xz",
-    "hash": "sha256-+5+beBUHIL/s1GT0RTHxAeOmzd/jcDLjkrco+CGkFVo="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kpat-24.05.1.tar.xz",
+    "hash": "sha256-SUhuHwIjlx45N+Nkg8rCAndqos+p8Q1oGTOViRFufNc="
   },
   "kpimtextedit": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kpimtextedit-24.02.2.tar.xz",
-    "hash": "sha256-Vzi9SEiOrwOHCkZGsQkdYjjXQh4saTyFPCBeGpy+ECA="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kpimtextedit-24.05.1.tar.xz",
+    "hash": "sha256-+Prz/7I0/NkhRvc2qOstxOujABbQTkd6s56GJLVM/DE="
   },
   "kpkpass": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kpkpass-24.02.2.tar.xz",
-    "hash": "sha256-V5dueLjQwPXipAHLm9RMmGNC9O2yWJeOa9om+eyjJa8="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kpkpass-24.05.1.tar.xz",
+    "hash": "sha256-7xlGpAVm6D43NOBvC1BaWgRrN37bE3bMV5bbvC6F78g="
   },
   "kpmcore": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kpmcore-24.02.2.tar.xz",
-    "hash": "sha256-KdOQmtXLv6HlvXcsl75IJUB65uXv61pt3uWwBcmWVL8="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kpmcore-24.05.1.tar.xz",
+    "hash": "sha256-XaRpNPefK14X3EmNTwfpX/MDtiWGLt9Nk+orwqir0Zg="
   },
   "kpublictransport": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kpublictransport-24.02.2.tar.xz",
-    "hash": "sha256-fZOd/G7PrXX263sjS2Txq29S/A6Yi6XmZi6VxS4auyY="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kpublictransport-24.05.1.tar.xz",
+    "hash": "sha256-RwcJDfalp780K0hNvAe89ifmD49noNgAnLLfaVqRobY="
   },
   "kqtquickcharts": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kqtquickcharts-24.02.2.tar.xz",
-    "hash": "sha256-L0mAg8QmnGk/+/wweS2hQ4PGMfm52Q+rRK7HaLdI1b8="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kqtquickcharts-24.05.1.tar.xz",
+    "hash": "sha256-W+jsw2xi2rjCphPSNtKhEnwIumWhX2dyCAzYG6uhHMM="
   },
   "krdc": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/krdc-24.02.2.tar.xz",
-    "hash": "sha256-qk6HhkgNzLWEBTL+jJGIiBQ32MpZqYz/z/ZoXlV5r/k="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/krdc-24.05.1.tar.xz",
+    "hash": "sha256-gpDi/S9K60s5sFKDchMGJMN6sN360J6+MABxcIkzZLQ="
   },
   "krecorder": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/krecorder-24.02.2.tar.xz",
-    "hash": "sha256-CYK209/BEP6UaOZ/0VfwNoOq5CQ7bqAddKGZQ8a8gtI="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/krecorder-24.05.1.tar.xz",
+    "hash": "sha256-qCtSbTtIEhWbESKrZlbz7hu2xpogB6cVcoATaDm9ZjY="
   },
   "kreversi": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kreversi-24.02.2.tar.xz",
-    "hash": "sha256-0cBXOF7xZ9NcBQ0ARNCsxA2l2f5McwA0OG94+er4vLQ="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kreversi-24.05.1.tar.xz",
+    "hash": "sha256-Hfawd3FgvoqUEWrAcjko5f5iPImoW2RCdpXte7OjmT0="
   },
   "krfb": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/krfb-24.02.2.tar.xz",
-    "hash": "sha256-z5Lfx4Z+M2BHV6Wf+NKIaTu/X7sM8Lw3nD+XXQ5OmOQ="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/krfb-24.05.1.tar.xz",
+    "hash": "sha256-5z08BLUmHXyoPzYkDQVTajqloEW0e1JKVhkg2/XZFoI="
   },
   "kross-interpreters": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kross-interpreters-24.02.2.tar.xz",
-    "hash": "sha256-9qWZL9xdSEw1jzrNMBiQAlOmgmPYm0wzvoU1SYFOhrs="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kross-interpreters-24.05.1.tar.xz",
+    "hash": "sha256-PBkZBM/gYbFNYzDo4Afg6hUiaN+R6jtaQ/Uc3I/Qyac="
   },
   "kruler": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kruler-24.02.2.tar.xz",
-    "hash": "sha256-EkTdt+ynfPWpVQEdGRaYYBb/8SsJNn+6Bd6b6EGVRQQ="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kruler-24.05.1.tar.xz",
+    "hash": "sha256-wTYnGKvc4GziU5moyAU3MuAXDcQJaD2U6aahzLd2X2c="
   },
   "ksanecore": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ksanecore-24.02.2.tar.xz",
-    "hash": "sha256-GGNiZAlbtW7mQYW0GJ1+oU8zpp45K4GLuw3m/8G7gXA="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/ksanecore-24.05.1.tar.xz",
+    "hash": "sha256-laXG/54FnoM698cwCK5axV6vjDVLoS7i9hRikFAgClw="
   },
   "kshisen": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kshisen-24.02.2.tar.xz",
-    "hash": "sha256-/BPyAKjRTfLOWX80E82Ar6NHSvArARE9+jB0hnjRHFQ="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kshisen-24.05.1.tar.xz",
+    "hash": "sha256-jX6bHbPTmTtLOBLKcP46j9+bES9ytnqrE3a4E/gLUcQ="
   },
   "ksirk": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ksirk-24.02.2.tar.xz",
-    "hash": "sha256-n78THAngDNSQJV93n2a3HzEtMxpaBrk9Jj6x2J53EcI="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/ksirk-24.05.1.tar.xz",
+    "hash": "sha256-ft1pycmYOgSVSja8c0nwWmW/+UnWV0etzKNxfeXELrc="
   },
   "ksmtp": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ksmtp-24.02.2.tar.xz",
-    "hash": "sha256-tSLg5bcoh3fM71oVUCdueC+k1N4NTf1w86zOS3d4NZg="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/ksmtp-24.05.1.tar.xz",
+    "hash": "sha256-ciNXhSV4NP3zFlGfW7BB5Ov2qGI2Bq7YFrYKZ2RJD4w="
   },
   "ksnakeduel": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ksnakeduel-24.02.2.tar.xz",
-    "hash": "sha256-QLUOa6+y1mK2tMXGzshFDylv+7FR/9rzcSAgLyxZ0wE="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/ksnakeduel-24.05.1.tar.xz",
+    "hash": "sha256-jhfXVjjDc61K89pDbwguW7BNAdTfn3LpKTD+lkbGhE8="
   },
   "kspaceduel": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kspaceduel-24.02.2.tar.xz",
-    "hash": "sha256-gNE4hXZinXdyYsq5Tjb0UX1B811FJgO5H6CM1oEqU64="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kspaceduel-24.05.1.tar.xz",
+    "hash": "sha256-RLFVo/A/Ue4Zpq95lDLcBsswCMvoJmnK0TQGxFFa0x4="
   },
   "ksquares": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ksquares-24.02.2.tar.xz",
-    "hash": "sha256-nkiDNK/O4vyWvobTmk3a1rao62o9oVRXuSB4AzP0MKo="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/ksquares-24.05.1.tar.xz",
+    "hash": "sha256-+B8ooOKACW8lDCbG0ReZFfbYa6arXiMVrs876uaLoOQ="
   },
   "ksudoku": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ksudoku-24.02.2.tar.xz",
-    "hash": "sha256-ICmFLSFllJ80uRKQJwRhPF1sRxxARhtkKMra9SmMSBY="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/ksudoku-24.05.1.tar.xz",
+    "hash": "sha256-LgjIMaotY5Xn7He4uNh+y0Mje6fiKIvh1PCrwXPeQCI="
   },
   "ksystemlog": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ksystemlog-24.02.2.tar.xz",
-    "hash": "sha256-25Y7u7lMO3tfgTpTLwceyBoTvyt1ocfO1//yNB7rSjM="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/ksystemlog-24.05.1.tar.xz",
+    "hash": "sha256-KnmjmWb0rmnv3iRGE5/dAXQBjZNl5FytVh8J8xIHyqk="
   },
   "kteatime": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kteatime-24.02.2.tar.xz",
-    "hash": "sha256-3L1mdrKqCyElAot9Y52nLNDi/BY9r6D3Hu+Nj/+lfZI="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kteatime-24.05.1.tar.xz",
+    "hash": "sha256-nyXNc8otWaSvS2ikED2hCLZmtShMdhQTxI4fHWcUlTU="
   },
   "ktimer": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ktimer-24.02.2.tar.xz",
-    "hash": "sha256-SHKwC7OiqM1q9Gf2M0zP0Ely0AexRFmB8PsU162sCUI="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/ktimer-24.05.1.tar.xz",
+    "hash": "sha256-pOOgXoS+huTfWL0+MJaw8RFJpOIh0WNRH9Z5Rr741kk="
   },
   "ktnef": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ktnef-24.02.2.tar.xz",
-    "hash": "sha256-dMjcjurpj4/cZSlOPXdQKfGu9Kwm9AbIghk4F/bPnR4="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/ktnef-24.05.1.tar.xz",
+    "hash": "sha256-R2BLjGARRIHCfF9DF7Mz/B+U4yhBimgn9hJk6tXDjH8="
   },
   "ktorrent": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ktorrent-24.02.2.tar.xz",
-    "hash": "sha256-AYPGM+NQOG8xwudjsJSM2GYskQLIcX3S3mxPoAQs39k="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/ktorrent-24.05.1.tar.xz",
+    "hash": "sha256-wNLIvBhdTzNTIFddTeTAdZdgDbjY2eT9OPg1IreSF7k="
   },
   "ktouch": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ktouch-24.02.2.tar.xz",
-    "hash": "sha256-U5EPl243QbL8++IzpVgvasyuUODiXxLV/bf+UxFNSOo="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/ktouch-24.05.1.tar.xz",
+    "hash": "sha256-IT8GgCRIvxfyz4ORvndlO8FbZONPMRQbM781U9f5XYU="
   },
   "ktrip": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ktrip-24.02.2.tar.xz",
-    "hash": "sha256-CLaGGqmooL9GEWDoH+Udxp1kjZLldbzYLtyp3sS+sR4="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/ktrip-24.05.1.tar.xz",
+    "hash": "sha256-T+iUJvWiYbL8M94wrbwKVAUyGxPl4dZEoDSqdyrEmzc="
   },
   "ktuberling": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ktuberling-24.02.2.tar.xz",
-    "hash": "sha256-6/cMKUOL5DEHM6nUwqgi0uWFvQGlkkyZ3CgSlWUASzU="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/ktuberling-24.05.1.tar.xz",
+    "hash": "sha256-HLDFPRJJ5OgfjtcVW3LoUqonTTM3WnhsXr8vK0eo4gA="
   },
   "kturtle": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kturtle-24.02.2.tar.xz",
-    "hash": "sha256-BPE208EdQqWdNW4YU5KOwob42BHlJMwk2ae3E7j05hs="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kturtle-24.05.1.tar.xz",
+    "hash": "sha256-G8od87CFVoLqvGzAoUVQdTAka675iBoJ8mdG7nMzCac="
   },
   "kubrick": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kubrick-24.02.2.tar.xz",
-    "hash": "sha256-x4BOcm7XD1V1/S8QeFv7WbfcZ8xe4dImHrKKWxS/PrE="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kubrick-24.05.1.tar.xz",
+    "hash": "sha256-7kK7kPn5ghGHiBZw/af2ytJuKSxKyK/USbT9IRpNhLU="
   },
   "kwalletmanager": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kwalletmanager-24.02.2.tar.xz",
-    "hash": "sha256-C2M4X59JMq8AQX6x6yhUje3MBQaREwS/LjRHmsD5t3M="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kwalletmanager-24.05.1.tar.xz",
+    "hash": "sha256-HCl79FO5LMVpt4Wg2DhPpmL0hbFjxSm+FyN5i5HBOag="
   },
   "kwave": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kwave-24.02.2.tar.xz",
-    "hash": "sha256-qi0Qdp26bNQ/qqme+binWIF3IifIaNfeUpM8zZHNkmw="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kwave-24.05.1.tar.xz",
+    "hash": "sha256-fd5QLMFKvohgK58T//4cgWumd/QfDzb69r2xd3KhbdQ="
   },
   "kweather": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kweather-24.02.2.tar.xz",
-    "hash": "sha256-iXvKld4QqZ0yxt+xyZIioK38FIR29Owr6C7GKCjcamI="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kweather-24.05.1.tar.xz",
+    "hash": "sha256-y6D/4DrUjogJp+XyVgsQm8TeDbIvC2t6Kn+RIQ7e8VM="
   },
   "kwordquiz": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kwordquiz-24.02.2.tar.xz",
-    "hash": "sha256-4yGwfUHHdHXCmZRA+MxLKRv0Xuu0O4iGqpRCReGuuuc="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/kwordquiz-24.05.1.tar.xz",
+    "hash": "sha256-4UCVe8k8Pbnynr8Q0vxKpHd862pAweMnKiQEbLRBp4s="
   },
   "libgravatar": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libgravatar-24.02.2.tar.xz",
-    "hash": "sha256-t99V8Jsy3P5mjlSccay6d81iCXoYcTsxEr79b0o+UoU="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/libgravatar-24.05.1.tar.xz",
+    "hash": "sha256-xEG6DyVTaWWYMn9hOFZdPVvfz6E1C6E0c/ZeCLM4PHM="
   },
   "libkcddb": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libkcddb-24.02.2.tar.xz",
-    "hash": "sha256-YIqiEBvev4rhwjz5nPyYLE5jSUWpGzv0SZD4bgGp1cE="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/libkcddb-24.05.1.tar.xz",
+    "hash": "sha256-cbcrGbcPQomAx+NIep6U5n1FN+ulaDTposCg8HtOKv8="
   },
   "libkcompactdisc": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libkcompactdisc-24.02.2.tar.xz",
-    "hash": "sha256-2jbvjdAukuQUMHu9NCpQLQ6StaqSrh4ktsXT8eGvC24="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/libkcompactdisc-24.05.1.tar.xz",
+    "hash": "sha256-EDQPPGO012cCtcx+wrNq3CrnW//h3SHSSkNfQhpGThw="
   },
   "libkdcraw": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libkdcraw-24.02.2.tar.xz",
-    "hash": "sha256-fGtMsK+RCFf9vtTb+6b8xa7iaqMZk+6rMhm3NDwxktY="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/libkdcraw-24.05.1.tar.xz",
+    "hash": "sha256-z/qhzbnR9OxE5I0S7QAH+nC1r2JfVIF4cQUmskIdqno="
   },
   "libkdegames": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libkdegames-24.02.2.tar.xz",
-    "hash": "sha256-PGv3c2cORQm7xxYEvwoUkQ0HZDQyahV1bTxHsfWufhk="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/libkdegames-24.05.1.tar.xz",
+    "hash": "sha256-W1orwUCGjr99LKfIVYvr+EE81Awu2y3a4TwkS6aEdBQ="
   },
   "libkdepim": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libkdepim-24.02.2.tar.xz",
-    "hash": "sha256-OwgxUW3mLSVIjpJ/x9mHSvsVke+99B3smQMJ9iJmdMA="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/libkdepim-24.05.1.tar.xz",
+    "hash": "sha256-hjqiiceJIlXv2qmyHTiYBO6T9Y4UebmdxvTQGIGbtO4="
   },
   "libkeduvocdocument": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libkeduvocdocument-24.02.2.tar.xz",
-    "hash": "sha256-yvv+gkMvpOIGkE5+4AikFYwrp1UTTeO0X6JKQ+s8XO4="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/libkeduvocdocument-24.05.1.tar.xz",
+    "hash": "sha256-mirkGF0duYtp+gQyAuG3zf2LCOYYPk+UTJslkeVI+nU="
   },
   "libkexiv2": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libkexiv2-24.02.2.tar.xz",
-    "hash": "sha256-rmAib0iTlLI5FApCZqLbRwoLzBptd7A8ca4ePu/zCNw="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/libkexiv2-24.05.1.tar.xz",
+    "hash": "sha256-o2ZwZkLpX3jrug8U3fO6NDyFTaAD3iQo8Qd1Gp+iqj8="
   },
   "libkgapi": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libkgapi-24.02.2.tar.xz",
-    "hash": "sha256-xDyEBSWDgMs8ZrkehZptmhlJUl0r5zHXA+ofS37DZ8A="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/libkgapi-24.05.1.tar.xz",
+    "hash": "sha256-kjD/7ZBZvfXZDg+ipWthhzAjrdd67FCsbOtKNNA1eLQ="
   },
   "libkipi": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libkipi-24.02.2.tar.xz",
-    "hash": "sha256-my4K50w3dmNhOUboLdTmM3T75SMYYyFm2hC19l1jAlw="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/libkipi-24.05.1.tar.xz",
+    "hash": "sha256-0U7A9TRPXU06n6kn9YPqfImp/npg8C2t7YdIQs0okDw="
   },
   "libkleo": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libkleo-24.02.2.tar.xz",
-    "hash": "sha256-L+OtUASsm0JhYTjvL8DSGyYoIZLQ14YY4SsGpfpz9Jk="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/libkleo-24.05.1.tar.xz",
+    "hash": "sha256-3tugP3zKj/s4Q+zeP9t0lsV3ZtRTKMHxfWAjN3yZkyY="
   },
   "libkmahjongg": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libkmahjongg-24.02.2.tar.xz",
-    "hash": "sha256-IiTZXCofO+Zw8FF/3tD14lxQ5JgnTN/gFz09GyXAU3w="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/libkmahjongg-24.05.1.tar.xz",
+    "hash": "sha256-RnY7kLJibi4pShVcIvGtG6yF1Zf1lNW/yTECc/6Dfmk="
   },
   "libkomparediff2": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libkomparediff2-24.02.2.tar.xz",
-    "hash": "sha256-32BysV5/yG+oYpg4L7MyrNRi7MWnKuQF/vdNXR3SctE="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/libkomparediff2-24.05.1.tar.xz",
+    "hash": "sha256-K3sxhUTpPraFE+TemWD9eCW71fDIruzhwBY+9MZi7YE="
   },
   "libksane": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libksane-24.02.2.tar.xz",
-    "hash": "sha256-L/x/3blT7w+cOOssK/QC3g+VIMNULTJH97XBnuGF2P8="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/libksane-24.05.1.tar.xz",
+    "hash": "sha256-0IA3XLAhz+4FCtsnhXpmk4kNKgp6zcLaOKKDAKGK3QY="
   },
   "libksieve": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libksieve-24.02.2.tar.xz",
-    "hash": "sha256-nQQKSswYDcBAsrM/wOFL3baPfvwq17PVVNyQM+xDZfI="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/libksieve-24.05.1.tar.xz",
+    "hash": "sha256-LkFEuL28wxmhXDWOeBXtzzMiYA3YUtX+jxb2g+Z1Zu0="
   },
   "libktorrent": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libktorrent-24.02.2.tar.xz",
-    "hash": "sha256-ARbg//48qtlPryDnQMqyWBRSFYwuhCoEFMrMZaNOeGE="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/libktorrent-24.05.1.tar.xz",
+    "hash": "sha256-a//w9PGyadgt/ii7KeDYEyLhMdOtKUIyB6iVfbcySeU="
   },
   "lokalize": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/lokalize-24.02.2.tar.xz",
-    "hash": "sha256-4ZuoMUr2N7yVc/mkAKqpLxNtvffzaH8bkg4NynHpr3w="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/lokalize-24.05.1.tar.xz",
+    "hash": "sha256-rkXAYMRMu7TjXqfbb/wgr6ASXjWyt+z0yOfxTuVz3rA="
   },
   "lskat": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/lskat-24.02.2.tar.xz",
-    "hash": "sha256-U/lZYMyrYyV5NGX/09W/kOnnT4xoqp77manwFci2J10="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/lskat-24.05.1.tar.xz",
+    "hash": "sha256-dvkngYigSBcK9u3muoz5BIbF1NCwLvemiVsn62w+Ew8="
   },
   "mailcommon": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/mailcommon-24.02.2.tar.xz",
-    "hash": "sha256-0uZCGDg3a1PX/KmqBmMIOzuU8CCesvxWAa1hK+5CFgQ="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/mailcommon-24.05.1.tar.xz",
+    "hash": "sha256-AhvIk/u8qhdCUNFtLIJosp9DLoTJa4CeHOVCf9q6N7Q="
   },
   "mailimporter": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/mailimporter-24.02.2.tar.xz",
-    "hash": "sha256-YoC+/T5OZqjpgupixj4tGZ35ppjbPw3s5SaYp7lbEAY="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/mailimporter-24.05.1.tar.xz",
+    "hash": "sha256-a6O60S+2oC4YdzQFxeKz3N1hYCH3IRjWI3KDzle5r1s="
   },
   "marble": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/marble-24.02.2.tar.xz",
-    "hash": "sha256-idduAigL9MkhVVo4Pdl0n5GlNvX4MSTtdytvN59mS+U="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/marble-24.05.1.tar.xz",
+    "hash": "sha256-NG+/mnxjp7LVD+et3lVU7Xfzn7S1nY+S9Cw62+mpad0="
   },
   "markdownpart": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/markdownpart-24.02.2.tar.xz",
-    "hash": "sha256-QcVLhmJ3V42hxecYENrnUPU2N2QKFL9Rhf9tPK7T/vQ="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/markdownpart-24.05.1.tar.xz",
+    "hash": "sha256-eTg4rcbVVjy9FOY3shDnbX8o8jPHXb3wksYhnS/cDeE="
   },
   "mbox-importer": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/mbox-importer-24.02.2.tar.xz",
-    "hash": "sha256-aJHBZE5pNTYVLdfVpM5fdicX/Ab6xWNtfnfJzJHg12c="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/mbox-importer-24.05.1.tar.xz",
+    "hash": "sha256-cC3PFlIrB3DM8pB0tbh68ohmbsaIYdbSL70ZmC7O4Xk="
   },
   "merkuro": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/merkuro-24.02.2.tar.xz",
-    "hash": "sha256-Gvy3GGOYog7LJqg+ADOFKn+CwQwdIaykO5KE8VLdBjs="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/merkuro-24.05.1.tar.xz",
+    "hash": "sha256-/pC3b+OtcxXq/fYWGhhvMQ3H7Ii9c+Fvwn0GYiCwRq0="
   },
   "messagelib": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/messagelib-24.02.2.tar.xz",
-    "hash": "sha256-Ix2aemO2AYO9V60dNyWQ9FZUlniopKqx+Oaw2ET+7F0="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/messagelib-24.05.1.tar.xz",
+    "hash": "sha256-2iCRYW3cO4ACAxlCsuh6a7SquqM7F9Upj1VY88FPNkY="
   },
   "mimetreeparser": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/mimetreeparser-24.02.2.tar.xz",
-    "hash": "sha256-G6iK0f9ESjLC6RlcHJF8HVFqi54DLkm36BAhs4QdPe0="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/mimetreeparser-24.05.1.tar.xz",
+    "hash": "sha256-zURmu2KnBVMUyuELivYwl+L9NYgScRN7dOo2kIhrODY="
   },
   "minuet": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/minuet-24.02.2.tar.xz",
-    "hash": "sha256-RSpwnDV9Ro8kIRbuNfFiZqy3+mYKPWT3ThadoVjEFHU="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/minuet-24.05.1.tar.xz",
+    "hash": "sha256-xj7Cwk1HtO5eWUFCURfDMnJh45R1taQkqDsT4WZogdw="
   },
   "neochat": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/neochat-24.02.2.tar.xz",
-    "hash": "sha256-ttzo+WvhK6sNdiaU9QxJzqGNYVXh5GVJ8L+XBG8EdB4="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/neochat-24.05.1.tar.xz",
+    "hash": "sha256-GDLeCLOsKTOL/96tXuylputCEN6pJBKIM0+8tL2Qz9c="
   },
   "okular": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/okular-24.02.2.tar.xz",
-    "hash": "sha256-Qx02tyvsOVS1P2Jf+FB0Dp3/AIewO8e3FpnKRq7vBN4="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/okular-24.05.1.tar.xz",
+    "hash": "sha256-0ZhqGrkoBLrT6ihyWNq4UqaRhB4DicXBGuN5XA79tFs="
   },
   "palapeli": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/palapeli-24.02.2.tar.xz",
-    "hash": "sha256-0sV6qCFP5+SzuuO60XEup+101nUV4QqjvuEJwB90fK0="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/palapeli-24.05.1.tar.xz",
+    "hash": "sha256-7xljnVCx6Ay3yVstel6hp79B3oYOjIe5pbbAXFJ4kOo="
   },
   "parley": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/parley-24.02.2.tar.xz",
-    "hash": "sha256-uU48aURlDTvxGKv7xAK2u+VQGYfn+EHCdH6hEwkRGHo="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/parley-24.05.1.tar.xz",
+    "hash": "sha256-D6NhULcQ2TLolKdJ8MINHKKdqu0OJZNCwqwaBN8Qd4o="
   },
   "partitionmanager": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/partitionmanager-24.02.2.tar.xz",
-    "hash": "sha256-AstyAIyv3JnbV0LaoN9jS26gfc7z+kQKJD5WKKk49Qk="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/partitionmanager-24.05.1.tar.xz",
+    "hash": "sha256-VDrcifnUFU/CrWcWEn4X7jxNb+meH4vkWHZf7RXSDdE="
   },
   "picmi": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/picmi-24.02.2.tar.xz",
-    "hash": "sha256-z25UFcpfH2VV0jHY8EFja34KdI1MFDqbbrvFc5E9IY0="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/picmi-24.05.1.tar.xz",
+    "hash": "sha256-+RD9j8KGipv5w7N5wvtVzh9aW3dPP+FoScgjP3nonVI="
   },
   "pimcommon": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/pimcommon-24.02.2.tar.xz",
-    "hash": "sha256-RkDcJ2+aDmsMJeJYFdc7fMZYyNc91QTSlelqWDon13A="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/pimcommon-24.05.1.tar.xz",
+    "hash": "sha256-8tSSS0yjS/5La69DK/4szz06KoP9/Q3xkilJrPmnrMU="
   },
   "pim-data-exporter": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/pim-data-exporter-24.02.2.tar.xz",
-    "hash": "sha256-DhLQWrX6E+idNjSbDXrtHH0yX/dLSAsCXtoHa5CmEH8="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/pim-data-exporter-24.05.1.tar.xz",
+    "hash": "sha256-4vbyq1TNWP1V3pYOfLdyHY8qrkYnfKyWgCFCbILtJvk="
   },
   "pim-sieve-editor": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/pim-sieve-editor-24.02.2.tar.xz",
-    "hash": "sha256-yDZmqQPZKsTDdxzlWV+LuiHJwYVcuD9z6urg2Hu2fHg="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/pim-sieve-editor-24.05.1.tar.xz",
+    "hash": "sha256-aMtnkiWVCY8hDifuRIt8QtmCVy7sj7kygE9QwD3wvf0="
   },
   "plasmatube": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/plasmatube-24.02.2.tar.xz",
-    "hash": "sha256-r4qz1B0pArFnBcgrj0yidM8UVSDe7HR/i/tG5rTDOds="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/plasmatube-24.05.1.tar.xz",
+    "hash": "sha256-MsmAjxeQXcfdXZYBZupYcGUBvG2xF6Esm/1b2IIBN68="
   },
   "poxml": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/poxml-24.02.2.tar.xz",
-    "hash": "sha256-pWtION445HNcSuKDMWnL88lH8JPD6MDWISR/X5NqymU="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/poxml-24.05.1.tar.xz",
+    "hash": "sha256-F1/jV+eDL3VuPtzF2cTjM1KiVAOFpDyyJ8bLSOkJ/x0="
   },
   "qmlkonsole": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/qmlkonsole-24.02.2.tar.xz",
-    "hash": "sha256-zoGK52uRhbhEilGF8zCddqhejaWs9O6Iw8nEC4E8kVE="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/qmlkonsole-24.05.1.tar.xz",
+    "hash": "sha256-M4paRT0KeSKiP32wyNaAXZ/i3QbOuwLkTVO3nGWmc9M="
   },
   "rocs": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/rocs-24.02.2.tar.xz",
-    "hash": "sha256-RKFjEH3xK1J0P0axjz4ZD+YqmwSQLTxEHdIDJzbEgws="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/rocs-24.05.1.tar.xz",
+    "hash": "sha256-/dYZAgsMM6vKlTjnhkwFc2ZR4TLIizrxIOgyk1AHVtc="
   },
   "signon-kwallet-extension": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/signon-kwallet-extension-24.02.2.tar.xz",
-    "hash": "sha256-NzJ14jnYh9WO1FAsLsBBexyhR1fpe8aCfcBjMyKpduI="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/signon-kwallet-extension-24.05.1.tar.xz",
+    "hash": "sha256-7X8wpiSfJ+YfspS3yAXEgkBVaUorBR07emFSvu0bU/w="
   },
   "skanlite": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/skanlite-24.02.2.tar.xz",
-    "hash": "sha256-2avHcXkLtVWM195kU5d3QNaNnTCeTulj0qHCon/XY8A="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/skanlite-24.05.1.tar.xz",
+    "hash": "sha256-DDvivYjk1kMyBW19AAgu6yPVqxCE88rZTSQLoupjtD8="
   },
   "skanpage": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/skanpage-24.02.2.tar.xz",
-    "hash": "sha256-pzYf6EbnjdrAKQ2Va08AM3S7s1SURtRahKYvP2pXMdo="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/skanpage-24.05.1.tar.xz",
+    "hash": "sha256-D0rUOXv016qJKEpD3nbVbmre0rWeNdh4IT5k13U0KN8="
+  },
+  "skladnik": {
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/skladnik-24.05.1.tar.xz",
+    "hash": "sha256-LkB0p72gMYtFdaDe/1c0i3PaJFor4VkIFIbdNZm0pyw="
   },
   "spectacle": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/spectacle-24.02.2.tar.xz",
-    "hash": "sha256-QRj3NV6wWE3rKojORuznthaIA5fwqyuBDL5MvCF0IVI="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/spectacle-24.05.1.tar.xz",
+    "hash": "sha256-h9H+/JJwOKIVDrm/UntKP4+Ojn243wvl+mT5p6Z2ggw="
   },
   "step": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/step-24.02.2.tar.xz",
-    "hash": "sha256-KAp/Edl34wd4bnDDSiSdkHS7rdNpVlt1ZgbszPsMHsw="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/step-24.05.1.tar.xz",
+    "hash": "sha256-nk2OJ5uqOBsyEEYWiJ4VHGumGZ2FqbLCaioBOKQJ7j8="
   },
   "svgpart": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/svgpart-24.02.2.tar.xz",
-    "hash": "sha256-T4YPwUGYT++ySdgFB8g65nFxmCyFJUXzOV8/lyMQLig="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/svgpart-24.05.1.tar.xz",
+    "hash": "sha256-D/2h0coIWS885WQW07T6zgvc6/TyNfVZzWXTAJb2i5Y="
   },
   "sweeper": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/sweeper-24.02.2.tar.xz",
-    "hash": "sha256-E3VYgubBLoxXZVA1x+XzbQUsPAv8tAscBnvjuT99rd0="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/sweeper-24.05.1.tar.xz",
+    "hash": "sha256-X0P+uKmWwsANleWmLyKIrtSTGwwdSl9wijvMPGzXBDU="
   },
   "telly-skout": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/telly-skout-24.02.2.tar.xz",
-    "hash": "sha256-Paq1Y+MXBylEky90HON3UIZ/5J8bFqu3DA7EoXPES6k="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/telly-skout-24.05.1.tar.xz",
+    "hash": "sha256-dHVKismLWXNlLdK5svaFbN1ZBXbfGVnqlRaplUYYyd8="
   },
   "tokodon": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/tokodon-24.02.2.tar.xz",
-    "hash": "sha256-DKM7AnT+GHyReYg2N1Opth1NOYO2+F8r4rJEA/nGkzs="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/tokodon-24.05.1.tar.xz",
+    "hash": "sha256-lxd6XGtAWjn7DmjeSeNCPTxk5xDy3ye2Xn4k3vEh8bg="
   },
   "umbrello": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/umbrello-24.02.2.tar.xz",
-    "hash": "sha256-iS0Lv2KkpD3SLWH4IHqsASu+sg2DAbfnBRaw2VYXVCw="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/umbrello-24.05.1.tar.xz",
+    "hash": "sha256-Km/GYDgQJXvSv+1/Vg7omcEscrzp6t0NvhXFgjul434="
   },
   "yakuake": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/yakuake-24.02.2.tar.xz",
-    "hash": "sha256-5F7g0F8iVD/UVl5C6MsgtQIIYte7pvM+ZFAH/GDWRlk="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/yakuake-24.05.1.tar.xz",
+    "hash": "sha256-DgcP8UiijN2UpUvyQ3r3U8BONadZY7C/96BtoHlnIw0="
   },
   "zanshin": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/zanshin-24.02.2.tar.xz",
-    "hash": "sha256-S6kd+7DlivXsZPRpVjE1ZinwicIkG7ewxb3Bw7mqJ+E="
+    "version": "24.05.1",
+    "url": "mirror://kde/stable/release-service/24.05.1/src/zanshin-24.05.1.tar.xz",
+    "hash": "sha256-UFngnjBZ2MYKyNjpqOJPeYokXob9CFaZ0RzL6V8I2r8="
   }
 }
\ No newline at end of file
diff --git a/pkgs/kde/generated/sources/plasma.json b/pkgs/kde/generated/sources/plasma.json
index a33d287efa958..dd11c14e89271 100644
--- a/pkgs/kde/generated/sources/plasma.json
+++ b/pkgs/kde/generated/sources/plasma.json
@@ -1,317 +1,322 @@
 {
   "bluedevil": {
-    "version": "6.0.5.1",
-    "url": "mirror://kde/stable/plasma/6.0.5/bluedevil-6.0.5.1.tar.xz",
-    "hash": "sha256-Zvzi1J9qxxa1UeMDD47T9xvuwEKNofma9+lZvJD1POI="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/bluedevil-6.1.0.tar.xz",
+    "hash": "sha256-9ZWwZUgK+o/B57VXPaJGqOJ2h08KGeqwz8tUBKymBoQ="
   },
   "breeze": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/breeze-6.0.5.tar.xz",
-    "hash": "sha256-8kndRGT02mtoGvXE/Q6BF4EnKUstRBE087EOJwP1c3Q="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/breeze-6.1.0.tar.xz",
+    "hash": "sha256-9xuPTnZ35WhWdqxy+WEBWFPelZseCLpzU5FHzse9HQ4="
   },
   "breeze-grub": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/breeze-grub-6.0.5.tar.xz",
-    "hash": "sha256-w9+KYNSYv0WYvGwW1hmnVxdQRnPB9Q9YHN+aZ428f+I="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/breeze-grub-6.1.0.tar.xz",
+    "hash": "sha256-VglghrnChFxWsUMK+8Rsb6cLiLnxMpvm/XWEm8BmiQ8="
   },
   "breeze-gtk": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/breeze-gtk-6.0.5.tar.xz",
-    "hash": "sha256-Uez1bnWimp5P26cG9MKE2W+YsPGLCqnYZkIYw22UuRI="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/breeze-gtk-6.1.0.tar.xz",
+    "hash": "sha256-F3tosQ/23CLiryzXAq2T6aLksWbGofPfyx1jgl4mWns="
   },
   "breeze-plymouth": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/breeze-plymouth-6.0.5.tar.xz",
-    "hash": "sha256-/hcQ+oYSTOCvENFgXMN1cW0/LP6aT87X9PSg6lhYBr4="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/breeze-plymouth-6.1.0.tar.xz",
+    "hash": "sha256-Gd8toIZclKuMhfWM0tiVZfQ3nci8iFFmsgGto6mTRc8="
   },
   "discover": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/discover-6.0.5.tar.xz",
-    "hash": "sha256-lEygP+Ex4OkveVsy5Of8cUyaWfwYpLvan1BAjQxq85U="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/discover-6.1.0.tar.xz",
+    "hash": "sha256-vrkjioN4fcaAMKrB7rpSE4rwOcB8SrL/jez+noYgOwg="
   },
   "drkonqi": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/drkonqi-6.0.5.tar.xz",
-    "hash": "sha256-EBX5rXNMxOULEK0kNqYGYddLDex0hyW+kIIQMzMCmF0="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/drkonqi-6.1.0.tar.xz",
+    "hash": "sha256-5/KbSC0C6HFK0mh/OObtIR8qXpLIVGa5NDIRIBlLp9Q="
   },
   "flatpak-kcm": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/flatpak-kcm-6.0.5.tar.xz",
-    "hash": "sha256-dBuUbAfQ1OUJ+M8pabIx5fNxAg1y+idqb35hY80nDOM="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/flatpak-kcm-6.1.0.tar.xz",
+    "hash": "sha256-DykHMvPm7nxOTmnAal3eROvc1eq1GNeC1Av+EAALlic="
   },
   "kactivitymanagerd": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/kactivitymanagerd-6.0.5.tar.xz",
-    "hash": "sha256-We+Wj6CZDteuxmgr28jFHfEiSil5NAhMRjBgvJFv4J4="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/kactivitymanagerd-6.1.0.tar.xz",
+    "hash": "sha256-yy5tpju5hPZdRbvTB4QEzWVGNT7TwtyTx7QJeNqCdzY="
   },
   "kde-cli-tools": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/kde-cli-tools-6.0.5.tar.xz",
-    "hash": "sha256-wAJ64E5pHGkuGowFZdZ3n7Nuyw16949mY7kjD0WBso8="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/kde-cli-tools-6.1.0.tar.xz",
+    "hash": "sha256-vE4iYriz4Y3sAQ7BvqT23c1fNqEnX4TRK29uhjs2Xb4="
   },
   "kde-gtk-config": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/kde-gtk-config-6.0.5.tar.xz",
-    "hash": "sha256-tCKWn3sid9g9eppm25m5mcA8sKtKUDHgCwzN77pX74M="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/kde-gtk-config-6.1.0.tar.xz",
+    "hash": "sha256-kreRiz7qxjkJiX29odEsTDMlAoF8MIGVYcxTidoRuO8="
   },
   "kdecoration": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/kdecoration-6.0.5.tar.xz",
-    "hash": "sha256-CjxRYcA+i6ED/BCWarveKY3pjiXJRaJK4IpTmnhnAiQ="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/kdecoration-6.1.0.tar.xz",
+    "hash": "sha256-hi6xlzLtGEZDDE3g71YwKsD5rvWtJgcZ0kMbY9yKr6U="
   },
   "kdeplasma-addons": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/kdeplasma-addons-6.0.5.tar.xz",
-    "hash": "sha256-kRr0dUhzwXwcp9SfBmnePjhoWLCa3ygng7nFUQV2upU="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/kdeplasma-addons-6.1.0.tar.xz",
+    "hash": "sha256-y1f6QnsxiKG8emsS4Zb8ESUnQuCPY5fjrwD/rzRnYSc="
   },
   "kgamma": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/kgamma-6.0.5.tar.xz",
-    "hash": "sha256-ZZ3rZG/aFwONRUhpjHrEsIwSZgYjt411Q3pgbWp7rTY="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/kgamma-6.1.0.tar.xz",
+    "hash": "sha256-/HuqscZYq7KfqTgpS3aXpyq8cvDDTo6itM4i281dTfk="
   },
   "kglobalacceld": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/kglobalacceld-6.0.5.tar.xz",
-    "hash": "sha256-LJs5HA4/kbuLMgApx7l/yBZmWIghBtHfmtRBYAiU/K4="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/kglobalacceld-6.1.0.tar.xz",
+    "hash": "sha256-89sf4gN5iaz/HvDAPqB3eaysr7YD/q7v7vj4SZtoAxA="
   },
   "kinfocenter": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/kinfocenter-6.0.5.tar.xz",
-    "hash": "sha256-v08sYnJC2CeGcwbE6IR5bH1finoqKURKSUwqytXIiXM="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/kinfocenter-6.1.0.tar.xz",
+    "hash": "sha256-KDyleEkIe8YSldSQX+a/aP98iwGDC4dHn6uavHLbVN4="
   },
   "kmenuedit": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/kmenuedit-6.0.5.tar.xz",
-    "hash": "sha256-mqHTlyTLoee49t7YxJCs3+EVmO02jCjpqoZXJpjjWfg="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/kmenuedit-6.1.0.tar.xz",
+    "hash": "sha256-KB9/dC0chX+dpjSrCB+9UYSxDWpr3dUpEr9k9DFkQb8="
   },
   "kpipewire": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/kpipewire-6.0.5.tar.xz",
-    "hash": "sha256-QyfaJDUYbpBlPIcN5zCCp+X7YdE+BqUXywIfHVa30tY="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/kpipewire-6.1.0.tar.xz",
+    "hash": "sha256-/MwoeEHuM8EoPL3Kg1DHji5zneulHyV0FpCaoCbNea0="
+  },
+  "krdp": {
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/krdp-6.1.0.tar.xz",
+    "hash": "sha256-MSfrtI0TD/GuuD4KZZj7Iv0LEmS76BqdbD3Sw4qAGJA="
   },
   "kscreen": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/kscreen-6.0.5.tar.xz",
-    "hash": "sha256-7e2LVYFn2JopqDCnvTx9aSs2XaUpx7blnr2t65Fqk/A="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/kscreen-6.1.0.tar.xz",
+    "hash": "sha256-FivRlneM93bKZGmq0FmAcx/di4JXD8BF+JYSqXq7RAE="
   },
   "kscreenlocker": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/kscreenlocker-6.0.5.tar.xz",
-    "hash": "sha256-W7lKKg1pzOt+1O/L94a1M4hWfVEKQQ/Z0BvpE9KxY9A="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/kscreenlocker-6.1.0.tar.xz",
+    "hash": "sha256-CjLFLnTRzE6QRKG+KXgHNqoM+uYZ3/Awl9VnfsnxBnE="
   },
   "ksshaskpass": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/ksshaskpass-6.0.5.tar.xz",
-    "hash": "sha256-bfDu70OgQesabXG6Uk/qxX/B9IrrRFQDZvEkBMxJhrw="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/ksshaskpass-6.1.0.tar.xz",
+    "hash": "sha256-CmWqVI3U7PSYl4WDg10QNxBICYpiPHTKlQx4/BbqJKk="
   },
   "ksystemstats": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/ksystemstats-6.0.5.tar.xz",
-    "hash": "sha256-vcb6lcC02tkhDHp3NOHCM7xAjwn8r0lhunCa/6H9QoQ="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/ksystemstats-6.1.0.tar.xz",
+    "hash": "sha256-zlm//t8V/P2g+R7kWZVff+j/0r2hNDV1fnCaRAbv6Tw="
   },
   "kwallet-pam": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/kwallet-pam-6.0.5.tar.xz",
-    "hash": "sha256-JcYRKOrvtWPlAFR/ZQvik+dRJu1fwvrFdO9AzMv9ANs="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/kwallet-pam-6.1.0.tar.xz",
+    "hash": "sha256-sh7YYul1Hf6pOOVXGFrI6qJK4mDveV+5mtdNPEy5aho="
   },
   "kwayland": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/kwayland-6.0.5.tar.xz",
-    "hash": "sha256-qLiEEdKtlJfifW29ldZH3l6+YxRWHnqNk1/Xmy/nroQ="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/kwayland-6.1.0.tar.xz",
+    "hash": "sha256-xzbPiMgdkHrxPkCo7qR1VHbcIkw19jvPeRUDl130UH0="
   },
   "kwayland-integration": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/kwayland-integration-6.0.5.tar.xz",
-    "hash": "sha256-sW30rZhRJCo5OHTC1TUgKXMkfduovhP9lZi+hhapoEU="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/kwayland-integration-6.1.0.tar.xz",
+    "hash": "sha256-kblfkvmSZ5UquVTZ1t1+8HZTAHPy0g1A7qICdJfYNsg="
   },
   "kwin": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/kwin-6.0.5.tar.xz",
-    "hash": "sha256-JC59IQUp7GMbxf4/4KEXo9HU7bHdOmRKr9UIkxL4sNc="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/kwin-6.1.0.tar.xz",
+    "hash": "sha256-UK/9bFwjzCxqjCPXQaZrBvZnnILH/Tyv6mamsGQ7Ty8="
   },
   "kwrited": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/kwrited-6.0.5.tar.xz",
-    "hash": "sha256-EKtotq1K/3451YlgdNusEGgNDfk/BKzy8tFaPYV/Q1k="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/kwrited-6.1.0.tar.xz",
+    "hash": "sha256-F9z4QZtdDXdevWhQmVPKe3M46/rU51dandc2TpEOIOE="
   },
   "layer-shell-qt": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/layer-shell-qt-6.0.5.tar.xz",
-    "hash": "sha256-vWv3PcebVh3TjB/HjDc7LvS532nWqCfjBdAREJ2RosI="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/layer-shell-qt-6.1.0.tar.xz",
+    "hash": "sha256-Vb2OgZonmwWf4p2/Rj+PFfgzcHN5xxkVPsdQt7UIIdg="
   },
   "libkscreen": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/libkscreen-6.0.5.tar.xz",
-    "hash": "sha256-Aad1afNy01TBcqI/LU4GYXAcAk5E2XKXGxRnNeFq4dk="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/libkscreen-6.1.0.tar.xz",
+    "hash": "sha256-wZPUO8wltih3CfGC5OYV9QtKleErutyitxQyBiSvq3Q="
   },
   "libksysguard": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/libksysguard-6.0.5.tar.xz",
-    "hash": "sha256-ypVPW7V3AL0UuuMjOoIJTqadMiccw+3W0yvPONsj4Xc="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/libksysguard-6.1.0.tar.xz",
+    "hash": "sha256-bR6a964QsSSrYqynDi89oVt0KnL3wGRvjCGff0tl42o="
   },
   "libplasma": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/libplasma-6.0.5.tar.xz",
-    "hash": "sha256-01dlwDmQHnObAU/5JkDGzUpNhSTCb+TQC9E00WqwzNI="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/libplasma-6.1.0.tar.xz",
+    "hash": "sha256-7SXwTKaKBAlkt7zbBDy3C+69+HgMYwJqWyyxPGu+dTs="
   },
   "milou": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/milou-6.0.5.tar.xz",
-    "hash": "sha256-cI4YtbQkmFoWdQfptZNN6TxlrK8vUkRmMS0JUV64Qs8="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/milou-6.1.0.tar.xz",
+    "hash": "sha256-e2gqTq2FrW28MoI7jU3JQbSVHlBwn9TTPNml3DSJvkY="
   },
   "ocean-sound-theme": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/ocean-sound-theme-6.0.5.tar.xz",
-    "hash": "sha256-YBXzkxp0E0/dfu9cfHWS74t0D8wITXcm+N+ZPcUon2s="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/ocean-sound-theme-6.1.0.tar.xz",
+    "hash": "sha256-nsZVxPPxT55qBEUP2yyomn97Ve228X7TbZr1ZuvgBfA="
   },
   "oxygen": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/oxygen-6.0.5.tar.xz",
-    "hash": "sha256-flQ3LW/ca3Nz2UjZSJ8+lLRXpvIqjwD26t4zzYPOgCI="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/oxygen-6.1.0.tar.xz",
+    "hash": "sha256-paAuWqy8qCjJhd+Nqbyq0LabVfymjBLwyvhS5woPW20="
   },
   "oxygen-sounds": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/oxygen-sounds-6.0.5.tar.xz",
-    "hash": "sha256-azR0er1oOQF9DqzB1SyFtSbbtnggH8TMNxknhnElOVI="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/oxygen-sounds-6.1.0.tar.xz",
+    "hash": "sha256-7sCIyky+3zmafrYlAT0b8bOTPgGAb8eeFZeS2X9jQ9E="
   },
   "plasma-activities": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/plasma-activities-6.0.5.tar.xz",
-    "hash": "sha256-iBGHa8aQJ47NczsjOsRepPuwa8GmLZ4XuSaKpNBeplg="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/plasma-activities-6.1.0.tar.xz",
+    "hash": "sha256-z3rQIIRAVqYvW9jXkrW8/cJV6gU97FHA+RBAJj9P+fg="
   },
   "plasma-activities-stats": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/plasma-activities-stats-6.0.5.tar.xz",
-    "hash": "sha256-16qv+XsfDDyUGxNKM/d9la8JXLsaZO/nQdev0VyYe18="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/plasma-activities-stats-6.1.0.tar.xz",
+    "hash": "sha256-0R3Rla1kK7BXW/13fBMjvq6opk2VkW0iH8b8ZytV7RU="
   },
   "plasma-browser-integration": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/plasma-browser-integration-6.0.5.tar.xz",
-    "hash": "sha256-MNzpVeJ6p2VsgnWCQK3umPJ3NglrwPgyodEDTM8+5Bg="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/plasma-browser-integration-6.1.0.tar.xz",
+    "hash": "sha256-8dpzTyPiLMUBPtpriuL/4nQ/lNN/EzQKxXXCFne5A5Y="
   },
   "plasma-desktop": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/plasma-desktop-6.0.5.tar.xz",
-    "hash": "sha256-XZABuuoy41BVM3Zn8gTijyBuvMqgoXLg8QlCa6gELs8="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/plasma-desktop-6.1.0.tar.xz",
+    "hash": "sha256-ATHGaI2bAhBn5G0cFLiiWJXwbQ9Pdx/15J3kFgRJJM4="
   },
   "plasma-disks": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/plasma-disks-6.0.5.tar.xz",
-    "hash": "sha256-Mh7C8xdwQiOZcnjvS/O5zwEuL/rsWo1X5X/qxoFOOtg="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/plasma-disks-6.1.0.tar.xz",
+    "hash": "sha256-VKxFan5XP+6c6LkXUL+9q+CfG0+fQt1+qRU9dyfgthE="
   },
   "plasma-firewall": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/plasma-firewall-6.0.5.tar.xz",
-    "hash": "sha256-C1LnQTzHRdl7sWo4rEBhL/t9x+QyPhVvoX2SNCXEsw4="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/plasma-firewall-6.1.0.tar.xz",
+    "hash": "sha256-sct/qtoHGU6D/PH93wXF/pK2zvSi7LQUgbPMkCQXBwo="
   },
   "plasma-integration": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/plasma-integration-6.0.5.tar.xz",
-    "hash": "sha256-f4FoP/j4puI9XJjps/O8PWOKvU3K1OQNJ0RsACkAT/A="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/plasma-integration-6.1.0.tar.xz",
+    "hash": "sha256-8P/6n80DVp9sgI6NwecQfAjzC61o/m6PzD3ancB/v6c="
   },
   "plasma-mobile": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/plasma-mobile-6.0.5.tar.xz",
-    "hash": "sha256-hx0BuUCuMPHjzxt0jWaoluRa473G1rHodfKMlWTwVpQ="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/plasma-mobile-6.1.0.tar.xz",
+    "hash": "sha256-hvATS/pn8QwgdExI3JGIfb7pba4k8BeaU0m3XmoJwvg="
   },
   "plasma-nano": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/plasma-nano-6.0.5.tar.xz",
-    "hash": "sha256-F4dSBUjZukxoajwhuvM7pxdmGeYOcOjOvuymQcPFlgE="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/plasma-nano-6.1.0.tar.xz",
+    "hash": "sha256-01m8dwqVD7ear4OpyWQg+K2M/zJO1Q54T4SpPatxATU="
   },
   "plasma-nm": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/plasma-nm-6.0.5.tar.xz",
-    "hash": "sha256-LFK3WpYe/Quf2e86bOtPS8U53p763DoMAIeZ12+U+Oc="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/plasma-nm-6.1.0.tar.xz",
+    "hash": "sha256-U1Kv+bZzUYYJRQANCXID1TvhJMDxB8h7MkKBiYD1RpA="
   },
   "plasma-pa": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/plasma-pa-6.0.5.tar.xz",
-    "hash": "sha256-7L87tAcggJSByraFfnwbNDaKE50RYrAM1GssxjzZqsQ="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/plasma-pa-6.1.0.tar.xz",
+    "hash": "sha256-4squGRC7896AJHvUZUWNPXmI5s5gNOtj2pdj7xqtJjk="
   },
   "plasma-sdk": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/plasma-sdk-6.0.5.tar.xz",
-    "hash": "sha256-EeVgkilQMQvf9UmfibMWE9Tr4HBW7FeDuCYCsPm+jvs="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/plasma-sdk-6.1.0.tar.xz",
+    "hash": "sha256-oDKFPYakiYW9MTlCD67m6q7nV5YsG4zveNQ0BGCtS08="
   },
   "plasma-systemmonitor": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/plasma-systemmonitor-6.0.5.tar.xz",
-    "hash": "sha256-ZiUY5tx2PRnL2HjBRaN2GmouJ2X9I3J4/90KKlJTCAs="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/plasma-systemmonitor-6.1.0.tar.xz",
+    "hash": "sha256-tJqhz3tvhOp99xFyml0/b9AAREviorkP9l4Nu63JEiQ="
   },
   "plasma-thunderbolt": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/plasma-thunderbolt-6.0.5.tar.xz",
-    "hash": "sha256-WZfeM874a3tsRK3Oai4dO7U2x9eqQ+HjUN0Ov3fLZlg="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/plasma-thunderbolt-6.1.0.tar.xz",
+    "hash": "sha256-OG/68iQGUBzoWE6MjIY0TS6RGa+BFYgoJT5TDDVFwI0="
   },
   "plasma-vault": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/plasma-vault-6.0.5.tar.xz",
-    "hash": "sha256-L+PMc/e+9NTGR26gz9MuMl1bhx/fz/XBFB8gPd4L6U0="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/plasma-vault-6.1.0.tar.xz",
+    "hash": "sha256-tItJkyeQS4fto8v4+BSQRFDZO37vr5U8Y9HzfdnW0j0="
   },
   "plasma-welcome": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/plasma-welcome-6.0.5.tar.xz",
-    "hash": "sha256-XChjJlDcoDD9mpNl28Vv4ImObUhjwkYlrW5QPBzCPsY="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/plasma-welcome-6.1.0.tar.xz",
+    "hash": "sha256-GDF8qwiZixUExd2JFAN6QMqV7bRA9FxhN6Zq/fii9wA="
   },
   "plasma-workspace": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/plasma-workspace-6.0.5.tar.xz",
-    "hash": "sha256-xU0tWt9esv7vcJK5IX8e1ZyY42n5tdexLddzZfTresk="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/plasma-workspace-6.1.0.tar.xz",
+    "hash": "sha256-9PVC5vIB9GCA7m+5Ztn4lYEajc19TxikxsSM4MNaEnw="
   },
   "plasma-workspace-wallpapers": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/plasma-workspace-wallpapers-6.0.5.tar.xz",
-    "hash": "sha256-fqtNNHNe3/oSIrK1X9JEjX9iNeReAKG/mpRQ1za1O/A="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/plasma-workspace-wallpapers-6.1.0.tar.xz",
+    "hash": "sha256-DLke5HhfzK04Pivi3RWwRFD4vAWUw5hvdYYP3tykZ1E="
   },
   "plasma5support": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/plasma5support-6.0.5.tar.xz",
-    "hash": "sha256-ioEefbocMK4mKJNMTakdLfpC3JMihul9rIlwZGKHuHo="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/plasma5support-6.1.0.tar.xz",
+    "hash": "sha256-4YMrMhq+krNzamEDdB7C1BZFMR2CKVXznsyJOOStVyo="
   },
   "plymouth-kcm": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/plymouth-kcm-6.0.5.tar.xz",
-    "hash": "sha256-veWy0OMBjv2oB44yrqN0dTtOJRdxTJkUnl+Y0EbxJu8="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/plymouth-kcm-6.1.0.tar.xz",
+    "hash": "sha256-fS3hRSIl3UUmx0YZMAWTxY2s8PY7OApE2RyO6vLBvKs="
   },
   "polkit-kde-agent-1": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/polkit-kde-agent-1-6.0.5.tar.xz",
-    "hash": "sha256-cs+jZ/3UayyRduR80TB/LqccAgfy49zPBtKS3OTUSKk="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/polkit-kde-agent-1-6.1.0.tar.xz",
+    "hash": "sha256-QQaWh6qBGJvYMwyp0IHiFXnkbYFek4SdWHQeq+Fn7sI="
   },
   "powerdevil": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/powerdevil-6.0.5.tar.xz",
-    "hash": "sha256-J/mVvObyfjW3jgwjL43uj7pQ+5HXs6/RF1g723mhL9Q="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/powerdevil-6.1.0.tar.xz",
+    "hash": "sha256-RFsqU2a8HWSwRUfv5ucTt1otMwn+Ryfp7fYVe+bdRYA="
   },
   "print-manager": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/print-manager-6.0.5.tar.xz",
-    "hash": "sha256-V6wh/zTaLIxm9Hh43iwE0uoFOV8pd/yWxR3usEczozc="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/print-manager-6.1.0.tar.xz",
+    "hash": "sha256-xjx0BUhkCHdQQJAp7kiBvBFlq5POYBZp7cvzjMLyAhU="
   },
   "qqc2-breeze-style": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/qqc2-breeze-style-6.0.5.tar.xz",
-    "hash": "sha256-1PzFlkagZv05Kp7YZXGJ7sZ35yJJyKTnJH7YmrxHRJY="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/qqc2-breeze-style-6.1.0.tar.xz",
+    "hash": "sha256-raTAxWIsGluCXpsQQuC+cTUq3aRGQJS7beIclxAu4m8="
   },
   "sddm-kcm": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/sddm-kcm-6.0.5.tar.xz",
-    "hash": "sha256-huWdNrSD+i70jYUDHG8Y8oaHvQ7otCOEsK4mwBSywCg="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/sddm-kcm-6.1.0.tar.xz",
+    "hash": "sha256-GzCrvNGEp/RgoZY2qlDvfaNOa25BLubL+XrpW0146tw="
   },
   "systemsettings": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/systemsettings-6.0.5.tar.xz",
-    "hash": "sha256-tyK6Ifq9jNJ+I3GoPjOppOFAMlfUVLPwHG+kbCh0z5M="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/systemsettings-6.1.0.tar.xz",
+    "hash": "sha256-vZSxNCBkeUoULLKF7RAqbbaVm/JoLU5mHVYNc0poylw="
   },
   "wacomtablet": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/wacomtablet-6.0.5.tar.xz",
-    "hash": "sha256-N8+dNHdReMoiPm2bM+iqwRmRO6ETFvS8Imkk4lOXDK8="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/wacomtablet-6.1.0.tar.xz",
+    "hash": "sha256-0evmQyKNRwrVzClMWs0BD0ArpzqnfCpFKljTrIPIPIU="
   },
   "xdg-desktop-portal-kde": {
-    "version": "6.0.5",
-    "url": "mirror://kde/stable/plasma/6.0.5/xdg-desktop-portal-kde-6.0.5.tar.xz",
-    "hash": "sha256-AL30QtN7MICr/SlYQl3XJKOlAZ1Q39fLMZ5RYLJ6awU="
+    "version": "6.1.0",
+    "url": "mirror://kde/stable/plasma/6.1.0/xdg-desktop-portal-kde-6.1.0.tar.xz",
+    "hash": "sha256-BUzmYjI07AvobqAA1/sTz5V+T8QqJIVBKS+jgx2ATbM="
   }
 }
\ No newline at end of file
diff --git a/pkgs/kde/gear/kio-extras-kf5/default.nix b/pkgs/kde/misc/kio-extras-kf5/default.nix
index d92f7a61b8a27..886ae1a627771 100644
--- a/pkgs/kde/gear/kio-extras-kf5/default.nix
+++ b/pkgs/kde/misc/kio-extras-kf5/default.nix
@@ -1,6 +1,6 @@
 {
   stdenv,
-  sources,
+  fetchurl,
   kio-extras,
   cmake,
   libsForQt5,
@@ -14,11 +14,16 @@
   taglib,
   libappimage,
 }:
+# kio-extras-kf5 is kind of part of Gear, but also not released all the time,
+# so handle it separately.
 stdenv.mkDerivation rec {
   pname = "kio-extras-kf5";
-  inherit (sources.${pname}) version;
+  version = "24.02.2";
 
-  src = sources.${pname};
+  src = fetchurl {
+    url = "mirror://kde/stable/release-service/${version}/src/kio-extras-kf5-${version}.tar.xz";
+    hash = "sha256-qar1jzuALINBu6HOuVBU+RUFnqRH9Z/8e5M8ynGxKsk=";
+  };
 
   nativeBuildInputs = with libsForQt5; [
     cmake
diff --git a/pkgs/kde/misc/marknote/default.nix b/pkgs/kde/misc/marknote/default.nix
new file mode 100644
index 0000000000000..0f676c6fb07ef
--- /dev/null
+++ b/pkgs/kde/misc/marknote/default.nix
@@ -0,0 +1,27 @@
+{
+  lib,
+  mkKdeDerivation,
+  fetchurl,
+  qtdeclarative,
+  qtsvg,
+  qtwayland,
+  qqc2-desktop-style
+}:
+mkKdeDerivation rec {
+  pname = "marknote";
+  version = "1.2.1";
+
+  src = fetchurl {
+    url = "mirror://kde/stable/marknote/marknote-${version}.tar.xz";
+    hash = "sha256-HzImkm8l8Rqiuyq2QezfdqJ1hxIdLZhiIGVM9xzpyaA=";
+  };
+
+  extraBuildInputs = [
+    qtdeclarative
+    qtsvg
+    qtwayland
+    qqc2-desktop-style
+  ];
+
+  meta.license = [ lib.licenses.gpl2Plus ];
+}
diff --git a/pkgs/kde/misc/pulseaudio-qt/default.nix b/pkgs/kde/misc/pulseaudio-qt/default.nix
index 7f4ee4a39b410..d5a69da692ac7 100644
--- a/pkgs/kde/misc/pulseaudio-qt/default.nix
+++ b/pkgs/kde/misc/pulseaudio-qt/default.nix
@@ -7,11 +7,11 @@
 }:
 mkKdeDerivation rec {
   pname = "pulseaudio-qt";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchurl {
     url = "mirror://kde/stable/pulseaudio-qt/pulseaudio-qt-${version}.tar.xz";
-    hash = "sha256-2MpiTs8hMIVrhZz5NBF39v74xR8g93KNgH0JxxUO0GU=";
+    hash = "sha256-zY9RyHAAc9D9kNV4QIOs63PnK6mnBOYF4KZ5CUJqhSA=";
   };
 
   extraNativeBuildInputs = [pkg-config];
diff --git a/pkgs/kde/plasma/default.nix b/pkgs/kde/plasma/default.nix
index a29c1fc36d2e8..6fa4d2383f994 100644
--- a/pkgs/kde/plasma/default.nix
+++ b/pkgs/kde/plasma/default.nix
@@ -17,6 +17,7 @@
   kinfocenter = callPackage ./kinfocenter {};
   kmenuedit = callPackage ./kmenuedit {};
   kpipewire = callPackage ./kpipewire {};
+  krdp = callPackage ./krdp {};
   kscreen = callPackage ./kscreen {};
   kscreenlocker = callPackage ./kscreenlocker {};
   ksshaskpass = callPackage ./ksshaskpass {};
diff --git a/pkgs/kde/plasma/kinfocenter/0001-tool-paths.patch b/pkgs/kde/plasma/kinfocenter/0001-tool-paths.patch
index 543aecdec43fc..84609b2ff2230 100644
--- a/pkgs/kde/plasma/kinfocenter/0001-tool-paths.patch
+++ b/pkgs/kde/plasma/kinfocenter/0001-tool-paths.patch
@@ -1,7 +1,7 @@
-diff --git a/Modules/kwinsupportinfo/kcm_kwinsupportinfo.json.in b/Modules/kwinsupportinfo/kcm_kwinsupportinfo.json.in
+diff --git a/kcms/kwinsupportinfo/kcm_kwinsupportinfo.json.in b/kcms/kwinsupportinfo/kcm_kwinsupportinfo.json.in
 index 0de6973e..30035768 100644
---- a/Modules/kwinsupportinfo/kcm_kwinsupportinfo.json.in
-+++ b/Modules/kwinsupportinfo/kcm_kwinsupportinfo.json.in
+--- a/kcms/kwinsupportinfo/kcm_kwinsupportinfo.json.in
++++ b/kcms/kwinsupportinfo/kcm_kwinsupportinfo.json.in
 @@ -85,6 +85,6 @@
          "Name[zh_CN]": "窗口管理器",
          "Name[zh_TW]": "視窗管理員"
@@ -10,23 +10,23 @@ index 0de6973e..30035768 100644
 +    "TryExec": "@qdbus@",
      "X-KDE-KInfoCenter-Category": "graphical_information"
  }
-diff --git a/Modules/kwinsupportinfo/main.cpp b/Modules/kwinsupportinfo/main.cpp
+diff --git a/kcms/kwinsupportinfo/main.cpp b/kcms/kwinsupportinfo/main.cpp
 index 6ae168b5..89d0a2ff 100644
---- a/Modules/kwinsupportinfo/main.cpp
-+++ b/Modules/kwinsupportinfo/main.cpp
+--- a/kcms/kwinsupportinfo/main.cpp
++++ b/kcms/kwinsupportinfo/main.cpp
 @@ -18,7 +18,7 @@ public:
      explicit KCMKWinSupportInfo(QObject *parent, const KPluginMetaData &data)
          : KQuickConfigModule(parent, data)
      {
--        m_outputContext = new CommandOutputContext(QLibraryInfo::location(QLibraryInfo::BinariesPath) + QStringLiteral("/qdbus"),
+-        m_outputContext = new CommandOutputContext(QLibraryInfo::path(QLibraryInfo::BinariesPath) + QStringLiteral("/qdbus"),
 +        m_outputContext = new CommandOutputContext(QStringLiteral("@qdbus@"),
                                                     {QStringLiteral("org.kde.KWin"), QStringLiteral("/KWin"), QStringLiteral("supportInformation")},
                                                     parent);
      }
-diff --git a/Modules/xserver/kcm_xserver.json b/Modules/xserver/kcm_xserver.json
+diff --git a/kcms/xserver/kcm_xserver.json b/kcms/xserver/kcm_xserver.json
 index b3f1ce24..dc610932 100644
---- a/Modules/xserver/kcm_xserver.json
-+++ b/Modules/xserver/kcm_xserver.json
+--- a/kcms/xserver/kcm_xserver.json
++++ b/kcms/xserver/kcm_xserver.json
 @@ -141,7 +141,7 @@
          "Name[zh_CN]": "X 服务器",
          "Name[zh_TW]": "X 伺服器"
@@ -36,10 +36,10 @@ index b3f1ce24..dc610932 100644
      "X-DocPath": "kinfocenter/graphical.html#xserver",
      "X-KDE-KInfoCenter-Category": "graphical_information",
      "X-KDE-Keywords": "X,X-Server,XServer,XFree86,Display,VideoCard,System Information",
-diff --git a/Modules/xserver/main.cpp b/Modules/xserver/main.cpp
+diff --git a/kcms/xserver/main.cpp b/kcms/xserver/main.cpp
 index 6d4d1e25..d39fe19e 100644
---- a/Modules/xserver/main.cpp
-+++ b/Modules/xserver/main.cpp
+--- a/kcms/xserver/main.cpp
++++ b/kcms/xserver/main.cpp
 @@ -16,7 +16,7 @@ public:
      explicit KCMXServer(QObject *parent, const KPluginMetaData &data)
          : KQuickConfigModule(parent, data)
diff --git a/pkgs/kde/plasma/krdp/default.nix b/pkgs/kde/plasma/krdp/default.nix
new file mode 100644
index 0000000000000..38208475ca279
--- /dev/null
+++ b/pkgs/kde/plasma/krdp/default.nix
@@ -0,0 +1,31 @@
+{
+  lib,
+  mkKdeDerivation,
+  substituteAll,
+  openssl,
+  pkg-config,
+  qtkeychain,
+  qtwayland,
+  freerdp,
+  wayland,
+  wayland-protocols,
+}:
+mkKdeDerivation {
+  pname = "krdp";
+
+  patches = [
+    (substituteAll {
+      src = ./hardcode-openssl-path.patch;
+      openssl = lib.getExe openssl;
+    })
+  ];
+
+  extraNativeBuildInputs = [pkg-config];
+  extraBuildInputs = [
+    qtkeychain
+    qtwayland
+    freerdp
+    wayland
+    wayland-protocols
+  ];
+}
diff --git a/pkgs/kde/plasma/krdp/hardcode-openssl-path.patch b/pkgs/kde/plasma/krdp/hardcode-openssl-path.patch
new file mode 100644
index 0000000000000..8ef18364b72ca
--- /dev/null
+++ b/pkgs/kde/plasma/krdp/hardcode-openssl-path.patch
@@ -0,0 +1,13 @@
+diff --git a/src/kcm/kcmkrdpserver.cpp b/src/kcm/kcmkrdpserver.cpp
+index 3af527c..3433a84 100644
+--- a/src/kcm/kcmkrdpserver.cpp
++++ b/src/kcm/kcmkrdpserver.cpp
+@@ -218,7 +218,7 @@ void KRDPServerConfig::generateCertificate()
+     QString certificateKeyPath(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + QStringLiteral("/krdpserver/krdp.key"));
+     qDebug(KRDPKCM) << "Generating certificate files to: " << certificatePath << " and " << certificateKeyPath;
+     QProcess sslProcess;
+-    sslProcess.start(u"openssl"_qs,
++    sslProcess.start(u"@openssl@"_qs,
+                      {
+                          u"req"_qs,
+                          u"-nodes"_qs,
diff --git a/pkgs/kde/plasma/kwin/default.nix b/pkgs/kde/plasma/kwin/default.nix
index abef3f7113c08..ffa7e146ece68 100644
--- a/pkgs/kde/plasma/kwin/default.nix
+++ b/pkgs/kde/plasma/kwin/default.nix
@@ -8,7 +8,9 @@
   qtwayland,
   libinput,
   xorg,
+  xwayland,
   libdisplay-info,
+  libei,
   mesa,
   lcms2,
   libcap,
@@ -53,9 +55,12 @@ mkKdeDerivation {
     lcms2
     libcap
     libdisplay-info
+    libei
     libinput
     pipewire
 
     xorg.libxcvt
+    # we need to provide this so it knows our xwayland supports new features
+    xwayland
   ];
 }
diff --git a/pkgs/kde/plasma/plasma-desktop/default.nix b/pkgs/kde/plasma/plasma-desktop/default.nix
index 8ee90dee3a67a..a84a55779d365 100644
--- a/pkgs/kde/plasma/plasma-desktop/default.nix
+++ b/pkgs/kde/plasma/plasma-desktop/default.nix
@@ -10,6 +10,7 @@
   pkg-config,
   qtsvg,
   qtwayland,
+  breeze,
   kaccounts-integration,
   SDL2,
   xkeyboard_config,
@@ -39,6 +40,10 @@ in
       })
       ./tzdir.patch
       ./no-discover-shortcut.patch
+      (substituteAll {
+        src = ./wallpaper-paths.patch;
+        wallpapers = "${lib.getBin breeze}/share/wallpapers";
+      })
     ];
 
     extraNativeBuildInputs = [pkg-config];
diff --git a/pkgs/kde/plasma/plasma-workspace/wallpaper-paths.patch b/pkgs/kde/plasma/plasma-desktop/wallpaper-paths.patch
index 050200a8411f1..67d46bc6879ef 100644
--- a/pkgs/kde/plasma/plasma-workspace/wallpaper-paths.patch
+++ b/pkgs/kde/plasma/plasma-desktop/wallpaper-paths.patch
@@ -1,5 +1,5 @@
---- a/lookandfeel/sddm-theme/theme.conf.cmake
-+++ b/lookandfeel/sddm-theme/theme.conf.cmake
+--- a/sddm-theme/theme.conf.cmake
++++ b/sddm-theme/theme.conf.cmake
 @@ -4,5 +4,5 @@ logo=${KDE_INSTALL_FULL_DATADIR}/sddm/themes/breeze/default-logo.svg
  type=image
  color=#1d99f3
diff --git a/pkgs/kde/plasma/plasma-mobile/default.nix b/pkgs/kde/plasma/plasma-mobile/default.nix
index 92bb1d66d5e30..8c6766e13b03a 100644
--- a/pkgs/kde/plasma/plasma-mobile/default.nix
+++ b/pkgs/kde/plasma/plasma-mobile/default.nix
@@ -2,10 +2,18 @@
   mkKdeDerivation,
   pkg-config,
   qtsensors,
+  plasma-workspace,
 }:
 mkKdeDerivation {
   pname = "plasma-mobile";
 
   extraNativeBuildInputs = [pkg-config];
   extraBuildInputs = [qtsensors];
+  postFixup = ''
+    substituteInPlace "$out/share/wayland-sessions/plasma-mobile.desktop" \
+      --replace-fail \
+        "$out/libexec/plasma-dbus-run-session-if-needed" \
+        "${plasma-workspace}/libexec/plasma-dbus-run-session-if-needed"
+  '';
+  passthru.providedSessions = [ "plasma-mobile" ];
 }
diff --git a/pkgs/kde/plasma/plasma-workspace/default.nix b/pkgs/kde/plasma/plasma-workspace/default.nix
index 24e41b971cf05..e89063876a867 100644
--- a/pkgs/kde/plasma/plasma-workspace/default.nix
+++ b/pkgs/kde/plasma/plasma-workspace/default.nix
@@ -10,7 +10,6 @@
   libcanberra,
   libqalculate,
   pipewire,
-  breeze,
   qttools,
   qqc2-breeze-style,
   gpsd,
@@ -25,12 +24,13 @@ mkKdeDerivation {
       xsetroot = "${lib.getBin xorg.xsetroot}/bin/xsetroot";
       qdbus = "${lib.getBin qttools}/bin/qdbus";
     })
-    (substituteAll {
-      src = ./wallpaper-paths.patch;
-      wallpapers = "${lib.getBin breeze}/share/wallpapers";
-    })
   ];
 
+  postInstall = ''
+    # Prevent patching this shell file, it only is used by sourcing it from /bin/sh.
+    chmod -x $out/libexec/plasma-sourceenv.sh
+  '';
+
   extraNativeBuildInputs = [pkg-config spirv-tools];
   extraBuildInputs = [
     qtsvg
diff --git a/pkgs/misc/arm-trusted-firmware/default.nix b/pkgs/misc/arm-trusted-firmware/default.nix
index 6fb9aea3bfeb1..28fffb24bcf38 100644
--- a/pkgs/misc/arm-trusted-firmware/default.nix
+++ b/pkgs/misc/arm-trusted-firmware/default.nix
@@ -79,7 +79,7 @@ let
 
     meta = with lib; {
       homepage = "https://github.com/ARM-software/arm-trusted-firmware";
-      description = "A reference implementation of secure world software for ARMv8-A";
+      description = "Reference implementation of secure world software for ARMv8-A";
       license = [ licenses.bsd3 ] ++ lib.optionals (!deleteHDCPBlobBeforeBuild) [ licenses.unfreeRedistributable ];
       maintainers = with maintainers; [ lopsided98 ];
     } // extraMeta;
diff --git a/pkgs/misc/autotiling/default.nix b/pkgs/misc/autotiling/default.nix
index 13b834dcbda41..41131cbb916bd 100644
--- a/pkgs/misc/autotiling/default.nix
+++ b/pkgs/misc/autotiling/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonApplication rec {
   pname = "autotiling";
-  version = "1.9.2";
+  version = "1.9.3";
 
   src = fetchFromGitHub {
     owner = "nwg-piotr";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-u+Tvvge/rQvylbZDmCxvoMGjZm2gKsFZEAb9evR/Ckw=";
+    hash = "sha256-k+UiAGMB/fJiE+C737yGdyTpER1ciZrMkZezkcn/4yk=";
   };
 
   propagatedBuildInputs = [ i3ipc importlib-metadata ];
diff --git a/pkgs/misc/barebox/default.nix b/pkgs/misc/barebox/default.nix
index cb77a607e0160..4b1e373ca69d3 100644
--- a/pkgs/misc/barebox/default.nix
+++ b/pkgs/misc/barebox/default.nix
@@ -72,7 +72,7 @@ let
 
     meta = with lib; {
       homepage = "https://www.barebox.org";
-      description = "The Swiss Army Knive for bare metal";
+      description = "Swiss Army Knive for bare metal";
       license = licenses.gpl2;
       maintainers = with maintainers; [ emantor ];
     } // extraMeta;
diff --git a/pkgs/misc/beep/default.nix b/pkgs/misc/beep/default.nix
index 180b53e1e7686..a11b4ca38ad4d 100644
--- a/pkgs/misc/beep/default.nix
+++ b/pkgs/misc/beep/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "fortify3" ];
 
   meta = with lib; {
-    description = "The advanced PC speaker beeper";
+    description = "Advanced PC speaker beeper";
     homepage = "https://github.com/spkr-beep/beep";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
diff --git a/pkgs/misc/cliscord/default.nix b/pkgs/misc/cliscord/default.nix
index 1f8de323efe3b..bdfa620ef3f2f 100644
--- a/pkgs/misc/cliscord/default.nix
+++ b/pkgs/misc/cliscord/default.nix
@@ -4,7 +4,6 @@
 , openssl
 , pkg-config
 , fetchFromGitHub
-, fetchpatch
 , Security
 }:
 
diff --git a/pkgs/misc/cups/default.nix b/pkgs/misc/cups/default.nix
index c8df29776db95..3fc4ab361e3ea 100644
--- a/pkgs/misc/cups/default.nix
+++ b/pkgs/misc/cups/default.nix
@@ -23,11 +23,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cups";
-  version = "2.4.7";
+  version = "2.4.8";
 
   src = fetchurl {
     url = "https://github.com/OpenPrinting/cups/releases/download/v${version}/cups-${version}-source.tar.gz";
-    sha256 = "sha256-3VQijdkDUmQozn43lhr67SMK0xB4gUHadc66oINiz2w=";
+    sha256 = "sha256-dcMmtLpzl178yaJQeMSwTNtO4zPKqtDQgj29UixkeaA=";
   };
 
   outputs = [ "out" "lib" "dev" "man" ];
@@ -145,7 +145,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://openprinting.github.io/cups/";
-    description = "A standards-based printing system for UNIX";
+    description = "Standards-based printing system for UNIX";
     license = licenses.asl20;
     maintainers = with maintainers; [ matthewbauer ];
     platforms = platforms.unix;
diff --git a/pkgs/misc/cups/drivers/brlaser/default.nix b/pkgs/misc/cups/drivers/brlaser/default.nix
index 1f95c8cdd0317..cce75b26d71e8 100644
--- a/pkgs/misc/cups/drivers/brlaser/default.nix
+++ b/pkgs/misc/cups/drivers/brlaser/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ "-DCUPS_SERVER_BIN=lib/cups" "-DCUPS_DATA_DIR=share/cups" ];
 
   meta = with lib; {
-    description = "A CUPS driver for Brother laser printers";
+    description = "CUPS driver for Brother laser printers";
     longDescription =
       ''
        Although most Brother printers support a standard printer language such as PCL or PostScript, not all do. If you have a monochrome Brother laser printer (or multi-function device) and the other open source drivers don't work, this one might help.
diff --git a/pkgs/misc/cups/drivers/cnijfilter2/default.nix b/pkgs/misc/cups/drivers/cnijfilter2/default.nix
index 8520ba7aff2e3..f5ec8e29b634b 100644
--- a/pkgs/misc/cups/drivers/cnijfilter2/default.nix
+++ b/pkgs/misc/cups/drivers/cnijfilter2/default.nix
@@ -130,7 +130,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "Canon InkJet printer drivers for many Pixma series printers.";
+    description = "Canon InkJet printer drivers for many Pixma series printers";
     longDescription = ''
       Canon InjKet printer drivers for series E200, E300, E3100, E3300, E4200, E450, E470, E480,
       G3000, G3010, G4000, G4010, G5000, G5080, G6000, G6050, G6080, G7000, G7050, G7080, GM2000,
diff --git a/pkgs/misc/cups/drivers/cups-pdf-to-pdf/default.nix b/pkgs/misc/cups/drivers/cups-pdf-to-pdf/default.nix
index a26216cbc7273..7eb957af643fd 100644
--- a/pkgs/misc/cups/drivers/cups-pdf-to-pdf/default.nix
+++ b/pkgs/misc/cups/drivers/cups-pdf-to-pdf/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   passthru.tests.vmtest = nixosTests.cups-pdf;
 
   meta = with lib; {
-    description = "A CUPS backend that turns print jobs into searchable PDF files";
+    description = "CUPS backend that turns print jobs into searchable PDF files";
     homepage = "https://github.com/alexivkin/CUPS-PDF-to-PDF";
     license = licenses.gpl2Only;
     maintainers = [ maintainers.yarny ];
diff --git a/pkgs/misc/cups/drivers/hl1210w/default.nix b/pkgs/misc/cups/drivers/hl1210w/default.nix
index c8cd6e95651b6..b4bf573d68e57 100644
--- a/pkgs/misc/cups/drivers/hl1210w/default.nix
+++ b/pkgs/misc/cups/drivers/hl1210w/default.nix
@@ -43,9 +43,9 @@ stdenv.mkDerivation {
 
     substituteInPlace $out/opt/brother/Printers/HL1210W/cupswrapper/brother_lpdwrapper_HL1210W --replace /opt "$out/opt"
 
-    mkdir -p $out/lib/cups/filter
+    mkdir -p $out/lib/cups/filter $out/share/cups/model
     ln -s $out/opt/brother/Printers/HL1210W/cupswrapper/brother_lpdwrapper_HL1210W $out/lib/cups/filter/brother_lpdwrapper_HL1210W
-    ln -s $out/opt/brother/Printers/HL1210W/cupswrapper/brother-HL1210W-cups-en.ppd $out/lib/cups/filter/brother-HL1210W-cups-en.ppd
+    ln -s $out/opt/brother/Printers/HL1210W/cupswrapper/brother-HL1210W-cups-en.ppd $out/share/cups/model/
     # cp brcupsconfig4 $out/opt/brother/Printers/HL1110/cupswrapper/
     ln -s $out/opt/brother/Printers/HL1210W/cupswrapper/brcupsconfig4 $out/lib/cups/filter/brcupsconfig4
 
diff --git a/pkgs/misc/cups/drivers/mfc5890cncupswrapper/default.nix b/pkgs/misc/cups/drivers/mfc5890cncupswrapper/default.nix
index 26e90cbf6bba4..8ebcccbaa2819 100644
--- a/pkgs/misc/cups/drivers/mfc5890cncupswrapper/default.nix
+++ b/pkgs/misc/cups/drivers/mfc5890cncupswrapper/default.nix
@@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = with lib; {
-    description = "Brother MFC-5890CN CUPS wrapper driver.";
+    description = "Brother MFC-5890CN CUPS wrapper driver";
     longDescription = "Brother MFC-5890CN CUPS wrapper driver. Use the connection string 'lpd://\${IP_ADDRESS}/binary_p1' when connecting to this printer via the network.";
     homepage = "http://www.brother.com/";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/misc/cups/drivers/samsung/1.00.36/module.nix b/pkgs/misc/cups/drivers/samsung/1.00.36/module.nix
index e98da9de2b60a..3cf7c62c4e723 100644
--- a/pkgs/misc/cups/drivers/samsung/1.00.36/module.nix
+++ b/pkgs/misc/cups/drivers/samsung/1.00.36/module.nix
@@ -22,7 +22,7 @@ let
 in {
   options = {
     services.samsung-unified-linux-driver_1_00_36 = {
-      enable = mkEnableOption "enable samsung-unified-linux-driver_1_00_36";
+      enable = mkEnableOption "samsung-unified-linux-driver_1_00_36";
     };
   };
   config = mkIf cfg.enable {
diff --git a/pkgs/misc/drivers/argononed/default.nix b/pkgs/misc/drivers/argononed/default.nix
index 5fa28c17c529a..48b5800abb028 100644
--- a/pkgs/misc/drivers/argononed/default.nix
+++ b/pkgs/misc/drivers/argononed/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.com/DarkElvenAngel/argononed";
-    description = "A replacement daemon for the Argon One Raspberry Pi case";
+    description = "Replacement daemon for the Argon One Raspberry Pi case";
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = [ maintainers.misterio77 ];
diff --git a/pkgs/misc/drivers/epkowa/default.nix b/pkgs/misc/drivers/epkowa/default.nix
index a2e3bd28f490c..b29572b436bd5 100644
--- a/pkgs/misc/drivers/epkowa/default.nix
+++ b/pkgs/misc/drivers/epkowa/default.nix
@@ -251,6 +251,38 @@ let plugins = {
 
     meta = common_meta // { description = "iscan esci s80 plugin for " + passthru.hw; };
   };
+  s600 = stdenv.mkDerivation rec {
+    name = "iscan-gt-s600-bundle";
+    version = "2.30.4";
+
+    src = fetchurl {
+      urls = [
+        "https://download2.ebz.epson.net/iscan/plugin/gt-s600/rpm/x64/iscan-gt-s600-bundle-${version}.x64.rpm.tar.gz"
+        "https://web.archive.org/web/20240614120113/https://download2.ebz.epson.net/iscan/plugin/gt-s600/rpm/x64/iscan-gt-s600-bundle-${version}.x64.rpm.tar.gz"
+      ];
+      sha256 = "fe1356b1d5c40bc5ac985a5693166efb9e5049a78b412f49c385eb503eadf2c6";
+    };
+
+    nativeBuildInputs = [ autoPatchelfHook rpm ];
+
+    installPhase = ''
+      cd plugins
+      ${rpm}/bin/rpm2cpio iscan-plugin-gt-s600-*.x86_64.rpm | ${cpio}/bin/cpio -idmv
+      mkdir $out
+      cp -r usr/share $out
+      cp -r usr/lib64 $out/lib
+      mv $out/share/iscan $out/share/esci
+      mv $out/lib/iscan $out/lib/esci
+    '';
+
+    passthru = {
+      registrationCommand = ''
+        $registry --add interpreter usb 0x04b8 0x012d "$plugin/lib/esci/libesint66 $plugin/share/esci/esfw66.bin"
+      '';
+      hw = "GT-F650, GT-S600, Perfection V10, Perfection V100 Photo";
+    };
+    meta = common_meta // { description = "iscan gt-s600 plugin for " + passthru.hw; };
+  };
   s650 = stdenv.mkDerivation rec {
     name = "iscan-gt-s650-bundle";
     version = "2.30.4";
diff --git a/pkgs/misc/drivers/epson-escpr2/default.nix b/pkgs/misc/drivers/epson-escpr2/default.nix
index 4c3b969b425fa..b14807e257eaf 100644
--- a/pkgs/misc/drivers/epson-escpr2/default.nix
+++ b/pkgs/misc/drivers/epson-escpr2/default.nix
@@ -2,15 +2,15 @@
 
 stdenv.mkDerivation rec {
   pname = "epson-inkjet-printer-escpr2";
-  version = "1.2.9";
+  version = "1.2.10";
 
   src = fetchurl {
     # To find new versions, visit
     # http://download.ebz.epson.net/dsc/search/01/search/?OSC=LX and search for
     # some printer like for instance "WF-7210" to get to the most recent
     # version.
-    url = "https://download3.ebz.epson.net/dsc/f/03/00/15/33/94/3bf10a30a1f8b5b91ddbafa4571c073878ec476b/epson-inkjet-printer-escpr2-1.2.9-1.src.rpm";
-    sha256 = "sha256-2smNBTMSqoKYsGUoBtIHS3Fwk9ODbiXaP7Dtq69FG9U=";
+    url = "https://download3.ebz.epson.net/dsc/f/03/00/15/87/52/84d8972472981a5337b96610c39c8c7586256b55/epson-inkjet-printer-escpr2-1.2.10-1.src.rpm";
+    sha256 = "sha256-vrAVarGBp8eI07WMtQSmuNpX5iS26+B2iP/b7U8mJmo=";
   };
 
   unpackPhase = ''
diff --git a/pkgs/misc/drivers/m33-linux/default.nix b/pkgs/misc/drivers/m33-linux/default.nix
index 7d9f8a406290d..e7bfbe34ee7f3 100644
--- a/pkgs/misc/drivers/m33-linux/default.nix
+++ b/pkgs/misc/drivers/m33-linux/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/donovan6000/M3D-Linux";
-    description = "A Linux program that can communicate with the Micro 3D printer";
+    description = "Linux program that can communicate with the Micro 3D printer";
     mainProgram = "m33-linux";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/misc/drivers/steamcontroller/default.nix b/pkgs/misc/drivers/steamcontroller/default.nix
index 50d1133c38201..cd2563779d6fe 100644
--- a/pkgs/misc/drivers/steamcontroller/default.nix
+++ b/pkgs/misc/drivers/steamcontroller/default.nix
@@ -25,7 +25,7 @@ buildPythonApplication {
   pythonImportsCheck = [ "steamcontroller" ];
 
   meta = with lib; {
-    description = "A standalone Steam controller driver";
+    description = "Standalone Steam controller driver";
     homepage    = "https://github.com/ynsta/steamcontroller";
     license     = licenses.mit;
     maintainers = with maintainers; [ rnhmjoj ];
diff --git a/pkgs/misc/fastly/default.nix b/pkgs/misc/fastly/default.nix
index 72100b1ac0af2..81b76ab3f151c 100644
--- a/pkgs/misc/fastly/default.nix
+++ b/pkgs/misc/fastly/default.nix
@@ -10,13 +10,13 @@
 
 buildGoModule rec {
   pname = "fastly";
-  version = "10.10.0";
+  version = "10.12.2";
 
   src = fetchFromGitHub {
     owner = "fastly";
     repo = "cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-InuaitDoSuE091PG5OwSo/DNplitpIcOgZQ4Dcyz2iI=";
+    hash = "sha256-2B/7XmhHo/1Y2szdXNygiK6IsmVvcdAPtOvZI/B26pw=";
     # The git commit is part of the `fastly version` original output;
     # leave that output the same in nixpkgs. Use the `.git` directory
     # to retrieve the commit SHA, and remove the directory afterwards,
@@ -33,7 +33,7 @@ buildGoModule rec {
     "cmd/fastly"
   ];
 
-  vendorHash = "sha256-Tt+Be5zsngQokC18cvQ+r5EU1h8FXQ7kfzbRFBse5TQ=";
+  vendorHash = "sha256-rQLnCY4tdNKYJcCpRs/J5SII0hSkxHxtVZkl4O4Ytyk=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/misc/frescobaldi/default.nix b/pkgs/misc/frescobaldi/default.nix
index e310879eb950d..7f90ceee29153 100644
--- a/pkgs/misc/frescobaldi/default.nix
+++ b/pkgs/misc/frescobaldi/default.nix
@@ -40,7 +40,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://frescobaldi.org/";
-    description = "A LilyPond sheet music text editor";
+    description = "LilyPond sheet music text editor";
     longDescription = ''
       Powerful text editor with syntax highlighting and automatic completion,
       Music view with advanced Point & Click, Midi player to proof-listen
diff --git a/pkgs/misc/ghostscript/default.nix b/pkgs/misc/ghostscript/default.nix
index 1420290055cb5..8410f77d2c077 100644
--- a/pkgs/misc/ghostscript/default.nix
+++ b/pkgs/misc/ghostscript/default.nix
@@ -43,11 +43,11 @@ let
     srcs = [
       (fetchurl {
         url = "mirror://sourceforge/gs-fonts/ghostscript-fonts-std-8.11.tar.gz";
-        sha256 = "00f4l10xd826kak51wsmaz69szzm2wp8a41jasr4jblz25bg7dhf";
+        hash = "sha256-DrbzVhGfLkmyVjIQhS4X9X+dzFdV81Cmmkag1kGgxAE=";
       })
       (fetchurl {
         url = "mirror://gnu/ghostscript/gnu-gs-fonts-other-6.0.tar.gz";
-        sha256 = "1cxaah3r52qq152bbkiyj2f7dx1rf38vsihlhjmrvzlr8v6cqil1";
+        hash = "sha256-gUbMzEaZ/p2rhBRGvdFwOfR2nJA+zrVECRiLkgdUqrM=";
       })
       # ... add other fonts here
     ];
@@ -61,11 +61,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "ghostscript${lib.optionalString x11Support "-with-X"}";
-  version = "10.02.1";
+  version = "10.03.1";
 
   src = fetchurl {
     url = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${lib.replaceStrings ["."] [""] version}/ghostscript-${version}.tar.xz";
-    hash = "sha512-7g91TBvYoYQorRTqo+rYD/i5YnWvUBLnqDhPHxBJDaBW7smuPMeRp6E6JOFuVN9bzN0QnH1ToUU0u9c2CjALEQ=";
+    hash = "sha256-FXIS7clrjMxAlHXc4uSYM/tEJ/FQxFUlje2WMsEGq+4=";
   };
 
   patches = [
diff --git a/pkgs/misc/gnuk/generic.nix b/pkgs/misc/gnuk/generic.nix
index 2556ff42308f6..e9cc3aff2cf6f 100644
--- a/pkgs/misc/gnuk/generic.nix
+++ b/pkgs/misc/gnuk/generic.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://www.fsij.org/doc-gnuk/";
-    description = "An implementation of USB cryptographic token for gpg";
+    description = "Implementation of USB cryptographic token for gpg";
     license = licenses.gpl3;
     platforms = with platforms; linux;
   };
diff --git a/pkgs/misc/i3a/default.nix b/pkgs/misc/i3a/default.nix
index 5c549bc7f16ae..853b758793c1b 100644
--- a/pkgs/misc/i3a/default.nix
+++ b/pkgs/misc/i3a/default.nix
@@ -17,7 +17,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     changelog = "https://git.goral.net.pl/i3a.git/log/";
-    description = "A set of scripts used for automation of i3 and sway window manager layouts";
+    description = "Set of scripts used for automation of i3 and sway window manager layouts";
     homepage = "https://git.goral.net.pl/i3a.git/about";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ moni ];
diff --git a/pkgs/misc/jackaudio/default.nix b/pkgs/misc/jackaudio/default.nix
index 64f386e0378d3..53b900806ab3e 100644
--- a/pkgs/misc/jackaudio/default.nix
+++ b/pkgs/misc/jackaudio/default.nix
@@ -50,8 +50,6 @@ stdenv.mkDerivation (finalAttrs: {
     patchShebangs --build svnversion_regenerate.sh
   '';
 
-  dontAddWafCrossFlags = true;
-
   wafConfigureFlags = [
     "--classic"
     "--autostart=${if (optDbus != null) then "dbus" else "classic"}"
diff --git a/pkgs/misc/libcardiacarrest/default.nix b/pkgs/misc/libcardiacarrest/default.nix
index 4139c5b0f13eb..b5cfa1216eee2 100644
--- a/pkgs/misc/libcardiacarrest/default.nix
+++ b/pkgs/misc/libcardiacarrest/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = src.meta // {
-    description = "A trivial implementation of libpulse PulseAudio library API";
+    description = "Trivial implementation of libpulse PulseAudio library API";
     longDescription = ''
       libcardiacarrest is a trivial implementation of libpulse
       PulseAudio library API that unconditionally (but gracefully)
diff --git a/pkgs/misc/lilypond/unstable.nix b/pkgs/misc/lilypond/unstable.nix
index fd5067b0faea3..26a25f5173046 100644
--- a/pkgs/misc/lilypond/unstable.nix
+++ b/pkgs/misc/lilypond/unstable.nix
@@ -1,10 +1,10 @@
 { lib, fetchurl, lilypond }:
 
 lilypond.overrideAttrs (oldAttrs: rec {
-  version = "2.25.15";
+  version = "2.25.16";
   src = fetchurl {
     url = "https://lilypond.org/download/sources/v${lib.versions.majorMinor version}/lilypond-${version}.tar.gz";
-    hash = "sha256-K2CV4sWhUndiglBze44xbfrPe19nU+9qn+WOWLMA0R8=";
+    hash = "sha256-AY8NfcZsD+JD45Ua1c9UHeQXqWSOqxqAQPWqqrRDLhY=";
   };
 
   passthru.updateScript = {
diff --git a/pkgs/misc/logging/beats/7.x.nix b/pkgs/misc/logging/beats/7.x.nix
index 5d0629d1fb69d..70c1e26a49d67 100644
--- a/pkgs/misc/logging/beats/7.x.nix
+++ b/pkgs/misc/logging/beats/7.x.nix
@@ -1,6 +1,6 @@
 { lib, fetchFromGitHub, elk7Version, buildGoModule, libpcap, nixosTests, systemd, config }:
 
-let beat = package: extraArgs: buildGoModule (rec {
+let beat = package: extraArgs: buildGoModule (lib.attrsets.recursiveUpdate (rec {
   pname = package;
   version = elk7Version;
 
@@ -21,7 +21,7 @@ let beat = package: extraArgs: buildGoModule (rec {
     maintainers = with maintainers; [ fadenb basvandijk dfithian ];
     platforms = platforms.linux;
   };
-} // extraArgs);
+}) extraArgs);
 in
 rec {
   auditbeat7 = beat "auditbeat" { meta.description = "Lightweight shipper for audit data"; };
diff --git a/pkgs/misc/logging/pacemaker/default.nix b/pkgs/misc/logging/pacemaker/default.nix
index a3d365cd41709..2c3fd76b1dfd2 100644
--- a/pkgs/misc/logging/pacemaker/default.nix
+++ b/pkgs/misc/logging/pacemaker/default.nix
@@ -94,7 +94,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://clusterlabs.org/pacemaker/";
-    description = "Pacemaker is an open source, high availability resource manager suitable for both small and large clusters.";
+    description = "Pacemaker is an open source, high availability resource manager suitable for both small and large clusters";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ryantm astro ];
diff --git a/pkgs/misc/long-shebang/default.nix b/pkgs/misc/long-shebang/default.nix
index 34ad0350771f8..a1d0405186f43 100644
--- a/pkgs/misc/long-shebang/default.nix
+++ b/pkgs/misc/long-shebang/default.nix
@@ -10,7 +10,7 @@ in stdenv.mkDerivation {
   };
 
   meta = {
-    description = "A tool for #! scripts with more than one argument";
+    description = "Tool for #! scripts with more than one argument";
 
     homepage = "https://github.com/shlevy/long-shebang";
 
diff --git a/pkgs/misc/lssecret/default.nix b/pkgs/misc/lssecret/default.nix
index 2e5169974fc17..b1bf44096d888 100644
--- a/pkgs/misc/lssecret/default.nix
+++ b/pkgs/misc/lssecret/default.nix
@@ -6,12 +6,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "lssecret";
+  pname = "lssecret";
   version = "unstable-2022-12-02";
 
   src = fetchFromGitLab {
     owner = "GrantMoyer";
-    repo = name;
+    repo = "lssecret";
     rev = "20fd771a";
     hash = "sha256-yU70WZj4EC/sFJxyq2SQ0YQ6RCQHYiW/aQiYWo7+ujk=";
   };
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   makeFlags = ["DESTDIR=$(out)"];
 
   meta = {
-    description = "A tool to list passwords and other secrets stored using the org.freedesktop.secrets dbus api";
+    description = "Tool to list passwords and other secrets stored using the org.freedesktop.secrets dbus api";
     homepage = "https://gitlab.com/GrantMoyer/lssecret";
     license = lib.licenses.unlicense;
     maintainers = with lib.maintainers; [ genericnerdyusername ];
diff --git a/pkgs/misc/present/default.nix b/pkgs/misc/present/default.nix
index 6ed15f03e6e4f..a27b6abe4359b 100644
--- a/pkgs/misc/present/default.nix
+++ b/pkgs/misc/present/default.nix
@@ -23,7 +23,7 @@ python3Packages.buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A terminal-based presentation tool with colors and effects.";
+    description = "Terminal-based presentation tool with colors and effects";
     homepage = "https://github.com/vinayak-mehta/present";
     license = licenses.asl20;
     maintainers = with maintainers; [ lom ];
diff --git a/pkgs/misc/rich-cli/default.nix b/pkgs/misc/rich-cli/default.nix
index 9d03cfc66917c..b6cf7684c44d7 100644
--- a/pkgs/misc/rich-cli/default.nix
+++ b/pkgs/misc/rich-cli/default.nix
@@ -1,68 +1,53 @@
 { lib
 , fetchFromGitHub
+, fetchpatch
 , python3
 }:
 
-let
-  py = python3.override {
-    packageOverrides = final: prev: {
-      rich = prev.rich.overridePythonAttrs (old: rec {
-        version = "12.4.0";
-        src = fetchFromGitHub {
-          owner = "Textualize";
-          repo = "rich";
-          rev = "refs/tags/v12.4.0";
-          hash = "sha256-ryJTusUNpvNF2031ICJWK8ScxHIh+LrXYg7nd0ph4aQ=";
-        };
-        propagatedBuildInputs = with py.pkgs; [
-          commonmark
-          pygments
-        ];
-        doCheck = false;
-      });
-
-      textual = prev.textual.overridePythonAttrs (old: rec {
-        version = "0.1.18";
-        src = fetchFromGitHub {
-          owner = "Textualize";
-          repo = "textual";
-          rev = "refs/tags/v0.1.18";
-          hash = "sha256-XVmbt8r5HL8r64ISdJozmM+9HuyvqbpdejWICzFnfiw=";
-        };
-        doCheck = false;
-      });
-    };
-  };
-in
-
 python3.pkgs.buildPythonApplication rec {
   pname = "rich-cli";
   version = "1.8.0";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Textualize";
-    repo = pname;
+    repo = "rich-cli";
     rev = "refs/tags/v${version}";
     hash = "sha256-mV5b/J9wX9niiYtlmAUouaAm9mY2zTtDmex7FNWcezQ=";
   };
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace 'rich = "^12.4.0"' 'rich = "*"' \
-      --replace 'textual = "^0.1.18"' 'textual = "*"'
-  '';
+  patches = [
+    # Update dependencies, https://github.com/Textualize/rich-cli/pull/94
+    (fetchpatch {
+      name = "update-dependencies.patch";
+      url = "https://github.com/Textualize/rich-cli/pull/94/commits/1e9a11af7c1c78a5a44a207b1e0dce4c4b3c39f0.patch";
+      hash = "sha256-cU+s/LK2GDVWXLZob0n5J6sLjflCr8w10hRLgeWN5Vg=";
+    })
+    (fetchpatch {
+      name = "markdown.patch";
+      url = "https://github.com/Textualize/rich-cli/pull/94/commits/0a8e77d724ace88ce88ee9d68a46b1dc8464fe0b.patch";
+      hash = "sha256-KXvRG36Qj5kCj1RiAJsNkoJY7t41zUfJFgHeCtc0O4w=";
+    })
+  ];
+
+  pythonRelaxDeps = [
+    "textual"
+  ];
 
-  nativeBuildInputs = with py.pkgs; [
+  build-system = with python3.pkgs; [
     poetry-core
   ];
 
-  propagatedBuildInputs = with py.pkgs; [
-    rich
+  nativeBuildInputs = with python3.pkgs; [
+    pythonRelaxDepsHook
+  ];
+
+  dependencies = with python3.pkgs; [
     click
     requests
-    textual
+    rich
     rich-rst
+    textual
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/misc/rkdeveloptool-pine64/default.nix b/pkgs/misc/rkdeveloptool-pine64/default.nix
index b70298ded96a3..fbb1a2b725a57 100644
--- a/pkgs/misc/rkdeveloptool-pine64/default.nix
+++ b/pkgs/misc/rkdeveloptool-pine64/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation {
     in
     {
       homepage = "https://gitlab.com/pine64-org/quartz-bsp/rkdeveloptool/";
-      description = "A tool from Rockchip to communicate with Rockusb devices (pine64 fork)";
+      description = "Tool from Rockchip to communicate with Rockusb devices (pine64 fork)";
       license = lib.licenses.gpl2;
       maintainers = [ maintainers.adisbladis ];
       mainProgram = "rkdeveloptool";
diff --git a/pkgs/misc/rkdeveloptool/default.nix b/pkgs/misc/rkdeveloptool/default.nix
index 341232e8cf191..3b6a85764bfa3 100644
--- a/pkgs/misc/rkdeveloptool/default.nix
+++ b/pkgs/misc/rkdeveloptool/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/rockchip-linux/rkdeveloptool";
-    description = "A tool from Rockchip to communicate with Rockusb devices";
+    description = "Tool from Rockchip to communicate with Rockusb devices";
     license = licenses.gpl2;
     maintainers = [ maintainers.lopsided98 ];
     mainProgram = "rkdeveloptool";
diff --git a/pkgs/misc/screensavers/light-locker/default.nix b/pkgs/misc/screensavers/light-locker/default.nix
index 734f3f515d03d..f1ba5eb0f1e27 100644
--- a/pkgs/misc/screensavers/light-locker/default.nix
+++ b/pkgs/misc/screensavers/light-locker/default.nix
@@ -71,7 +71,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/the-cavalry/light-locker";
-    description = "A simple session-locker for LightDM";
+    description = "Simple session-locker for LightDM";
     longDescription = ''
       A simple locker (forked from gnome-screensaver) that aims to
       have simple, sane, secure defaults and be well integrated with
diff --git a/pkgs/misc/screensavers/physlock/default.nix b/pkgs/misc/screensavers/physlock/default.nix
index dbe5e724835c7..caae1a4ba2c01 100644
--- a/pkgs/misc/screensavers/physlock/default.nix
+++ b/pkgs/misc/screensavers/physlock/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" "SESSION=systemd" ];
 
   meta = with lib; {
-    description = "A secure suspend/hibernate-friendly alternative to `vlock -an`";
+    description = "Secure suspend/hibernate-friendly alternative to `vlock -an`";
     mainProgram = "physlock";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/misc/screensavers/pipes-rs/default.nix b/pkgs/misc/screensavers/pipes-rs/default.nix
index 858b634739458..d1ca26da47587 100644
--- a/pkgs/misc/screensavers/pipes-rs/default.nix
+++ b/pkgs/misc/screensavers/pipes-rs/default.nix
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "An over-engineered rewrite of pipes.sh in Rust";
+    description = "Over-engineered rewrite of pipes.sh in Rust";
     mainProgram = "pipes-rs";
     homepage = "https://github.com/lhvy/pipes-rs";
     license = licenses.blueOak100;
diff --git a/pkgs/misc/screensavers/xlockmore/default.nix b/pkgs/misc/screensavers/xlockmore/default.nix
index 3ecf07d29a3f5..eba0b568b92a2 100644
--- a/pkgs/misc/screensavers/xlockmore/default.nix
+++ b/pkgs/misc/screensavers/xlockmore/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xlockmore";
-  version = "5.77";
+  version = "5.78";
 
   src = fetchurl {
     url = "http://sillycycle.com/xlock/xlockmore-${version}.tar.xz";
-    sha256 = "sha256-UrfEE+c3hPxYFcc78SOPWiBd7rt4F6jBnnq/Pvb8LDY=";
+    sha256 = "sha256-wMlnQiF4ejMFWJSOWe9EN91IPMgbAoXNReHgaovr+pE=";
     curlOpts = "--user-agent 'Mozilla/5.0'";
   };
 
diff --git a/pkgs/misc/seafile-shared/default.nix b/pkgs/misc/seafile-shared/default.nix
index 48e764b5f3e24..0f9457c9aaef4 100644
--- a/pkgs/misc/seafile-shared/default.nix
+++ b/pkgs/misc/seafile-shared/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "seafile-shared";
-  version = "9.0.5";
+  version = "9.0.6";
 
   src = fetchFromGitHub {
     owner = "haiwen";
     repo = "seafile";
     rev = "v${version}";
-    sha256 = "sha256-ENxmRnnQVwRm/3OXouM5Oj0fLVRSj0aOHJeVT627UdY=";
+    sha256 = "sha256-ig22Rw9VWPqOsJS1Wxy69OjdMRcxh2fOyqMHBEky/Uo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/misc/tmux-plugins/default.nix b/pkgs/misc/tmux-plugins/default.nix
index 167fe8f9475c6..b29c717e591dd 100644
--- a/pkgs/misc/tmux-plugins/default.nix
+++ b/pkgs/misc/tmux-plugins/default.nix
@@ -207,7 +207,7 @@ in rec {
     };
     meta = with lib; {
       homepage = "https://draculatheme.com/tmux";
-      description = "A feature packed Dracula theme for tmux!";
+      description = "Feature packed Dracula theme for tmux!";
       license = licenses.mit;
       platforms = platforms.unix;
       maintainers = with maintainers; [ ethancedwards8 ];
@@ -587,12 +587,12 @@ in rec {
   session-wizard = mkTmuxPlugin rec {
     pluginName = "session-wizard";
     rtpFilePath = "session-wizard.tmux";
-    version = "1.2.0";
+    version = "1.3.1";
     src = pkgs.fetchFromGitHub {
       owner = "27medkamal";
       repo = "tmux-session-wizard";
       rev = "V${version}";
-      sha256 = "sha256-IfSgX02vXdpzyu1GRF1EvzVCqqOEiTjeXtl1EvNr7EI=";
+      sha256 = "sha256-nJaC5aX+cR/+ks3I/lW/tUnVG0CrEYfsIjPDisgMrTE=";
     };
     meta = with lib; {
       homepage = "https://github.com/27medkamal/tmux-session-wizard";
@@ -610,9 +610,11 @@ in rec {
     };
     nativeBuildInputs = [ pkgs.makeWrapper ];
     postInstall = ''
-      substituteInPlace $target/session-wizard.tmux \
-        --replace  \$CURRENT_DIR/session-wizard.sh $target/session-wizard.sh
-      wrapProgram $target/session-wizard.sh \
+      for f in .gitignore Dockerfile flake.* scripts tests; do
+        rm -rf $target/$f
+      done
+      substituteInPlace $target/session-wizard.tmux --replace  \$CURRENT_DIR $target
+      wrapProgram $target/bin/t \
         --prefix PATH : ${with pkgs; lib.makeBinPath ([ fzf zoxide coreutils gnugrep gnused ])}
     '';
   };
@@ -816,4 +818,23 @@ in rec {
       sha256 = "hRvkBf+YrWycecnDixAsD4CAHg3KsioomfJ/nLl5Zgs=";
     };
   };
+
+  tmux-nova = mkTmuxPlugin rec {
+    pluginName = "tmux-nova";
+    rtpFilePath = "nova.tmux";
+    version = "1.2.0";
+    src = fetchFromGitHub {
+      owner = "o0th";
+      repo = "tmux-nova";
+      rev = "v${version}";
+      sha256 = "16llz3nlyw88lyd8mmj27i0ncyhpfjj5c1yikngf7nxcqsbjmcnh";
+    };
+    meta = with lib; {
+      homepage = "https://github.com/o0th/tmux-nova";
+      description = "tmux-nova theme";
+      license = licenses.mit;
+      platforms = platforms.unix;
+      maintainers = with maintainers; [ o0th ];
+    };
+  };
 }
diff --git a/pkgs/misc/tpm2-pkcs11/default.nix b/pkgs/misc/tpm2-pkcs11/default.nix
index 48ec7839d3e1a..797f515c1a7c9 100644
--- a/pkgs/misc/tpm2-pkcs11/default.nix
+++ b/pkgs/misc/tpm2-pkcs11/default.nix
@@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A PKCS#11 interface for TPM2 hardware";
+    description = "PKCS#11 interface for TPM2 hardware";
     homepage = "https://github.com/tpm2-software/tpm2-pkcs11";
     license = licenses.bsd2;
     platforms = platforms.linux;
diff --git a/pkgs/misc/uq/default.nix b/pkgs/misc/uq/default.nix
index a4c9a7d92fb49..99ebe5a8be0f6 100644
--- a/pkgs/misc/uq/default.nix
+++ b/pkgs/misc/uq/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "1p6008vxm2pi9v31qhsq7zysanal6rcvcl8553373bkqlfd7w5c4";
 
   meta = with lib; {
-    description = "A simple, user-friendly alternative to sort | uniq";
+    description = "Simple, user-friendly alternative to sort | uniq";
     homepage = "https://github.com/lostutils/uq";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar matthiasbeyer ];
diff --git a/pkgs/misc/urbit/default.nix b/pkgs/misc/urbit/default.nix
index d601d41347039..611d9ec622d16 100644
--- a/pkgs/misc/urbit/default.nix
+++ b/pkgs/misc/urbit/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://urbit.org";
-    description = "An operating function";
+    description = "Operating function";
     platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin"];
     maintainers = [ maintainers.matthew-levan ];
     license = licenses.mit;
diff --git a/pkgs/misc/wiki-tui/default.nix b/pkgs/misc/wiki-tui/default.nix
index e3c6a4f2bb10a..55c2638dba5c1 100644
--- a/pkgs/misc/wiki-tui/default.nix
+++ b/pkgs/misc/wiki-tui/default.nix
@@ -33,7 +33,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-rKTR7vKt8woWAn7XgNYFiWu4KSiZYhaH+PLEIOfbNIY=";
 
   meta = with lib; {
-    description = "A simple and easy to use Wikipedia Text User Interface";
+    description = "Simple and easy to use Wikipedia Text User Interface";
     homepage = "https://github.com/builditluc/wiki-tui";
     changelog = "https://github.com/Builditluc/wiki-tui/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/os-specific/bsd/freebsd/default.nix b/pkgs/os-specific/bsd/freebsd/default.nix
index e56c70c1d32d0..cfe6080b020a0 100644
--- a/pkgs/os-specific/bsd/freebsd/default.nix
+++ b/pkgs/os-specific/bsd/freebsd/default.nix
@@ -3,7 +3,6 @@
   makeScopeWithSplicing',
   generateSplicesForMkScope,
   callPackage,
-  crossLibcStdenv,
   attributePathToSplice ? [ "freebsd" ],
   branch ? "release/14.0.0",
 }:
@@ -24,41 +23,30 @@ let
       Branches can be selected by overriding the `branch` attribute on the freebsd package set.
     '';
 
-  # `./package-set.nix` should never know the name of the package set we
-  # are constructing; just this function is allowed to know that. This
-  # is why we:
-  #
-  #  - do the splicing for cross compilation here
-  #
-  #  - construct the *anonymized* `buildFreebsd` attribute to be passed
-  #    to `./package-set.nix`.
-  callFreeBSDWithAttrs =
-    extraArgs:
-    let
-      # we do not include the branch in the splice here because the branch
-      # parameter to this file will only ever take on one value - more values
-      # are provided through overrides.
-      otherSplices = generateSplicesForMkScope attributePathToSplice;
-    in
-    makeScopeWithSplicing' {
-      inherit otherSplices;
-      f =
-        self:
-        {
-          inherit branch;
-        }
-        // callPackage ./package-set.nix (
-          {
-            sourceData = versions.${self.branch} or (throw (badBranchError self.branch));
-            versionData = self.sourceData.version;
-            buildFreebsd = otherSplices.selfBuildHost;
-            patchesRoot = ./patches + "/${self.versionData.revision}";
-          }
-          // extraArgs
-        ) self;
-    };
+  # we do not include the branch in the splice here because the branch
+  # parameter to this file will only ever take on one value - more values
+  # are provided through overrides.
+  otherSplices = generateSplicesForMkScope attributePathToSplice;
 in
-{
-  freebsd = callFreeBSDWithAttrs { };
-  freebsdCross = callFreeBSDWithAttrs { stdenv = crossLibcStdenv; };
+# `./package-set.nix` should never know the name of the package set we
+# are constructing; just this function is allowed to know that. This
+# is why we:
+#
+#  - do the splicing for cross compilation here
+#
+#  - construct the *anonymized* `buildFreebsd` attribute to be passed
+#    to `./package-set.nix`.
+makeScopeWithSplicing' {
+  inherit otherSplices;
+  f =
+    self:
+    {
+      inherit branch;
+    }
+    // callPackage ./package-set.nix ({
+      sourceData = versions.${self.branch} or (throw (badBranchError self.branch));
+      versionData = self.sourceData.version;
+      buildFreebsd = otherSplices.selfBuildHost;
+      patchesRoot = ./patches + "/${self.versionData.revision}";
+    }) self;
 }
diff --git a/pkgs/os-specific/bsd/freebsd/lib/default.nix b/pkgs/os-specific/bsd/freebsd/lib/default.nix
index 26119a8ba1968..d022f7cfa14c6 100644
--- a/pkgs/os-specific/bsd/freebsd/lib/default.nix
+++ b/pkgs/os-specific/bsd/freebsd/lib/default.nix
@@ -14,5 +14,5 @@
     }
     .${stdenv'.hostPlatform.parsed.cpu.name} or stdenv'.hostPlatform.parsed.cpu.name;
 
-  install-wrapper = builtins.readFile ./install-wrapper.sh;
+  install-wrapper = builtins.readFile ../../lib/install-wrapper.sh;
 }
diff --git a/pkgs/os-specific/bsd/freebsd/patches/13.1/compat-install-dirs.patch b/pkgs/os-specific/bsd/freebsd/patches/13.1/compat-install-dirs.patch
index 9bb2bea32ee98..4bc21cf8eb147 100644
--- a/pkgs/os-specific/bsd/freebsd/patches/13.1/compat-install-dirs.patch
+++ b/pkgs/os-specific/bsd/freebsd/patches/13.1/compat-install-dirs.patch
@@ -2,12 +2,11 @@ diff --git a/tools/build/Makefile b/tools/build/Makefile
 index 948a5f9dfdb..592af84eeae 100644
 --- a/tools/build/Makefile
 +++ b/tools/build/Makefile
-@@ -327,15 +327,15 @@ host-symlinks:
+@@ -327,14 +327,14 @@ host-symlinks:
  # and cross-tools stages. We do this here using mkdir since mtree may not exist
  # yet (this happens if we are crossbuilding from Linux/Mac).
  INSTALLDIR_LIST= \
 -	bin \
--	lib/casper \
 -	lib/geom \
 -	usr/include/casper \
 -	usr/include/private/ucl \
@@ -16,7 +15,6 @@ index 948a5f9dfdb..592af84eeae 100644
 -	usr/libdata/pkgconfig \
 -	usr/libexec
 +	${BINDIR} \
-+	${LIBDIR}/casper \
 +	${LIBDIR}/geom \
 +	${INCLUDEDIR}/casper \
 +	${INCLUDEDIR}/private/ucl \
diff --git a/pkgs/os-specific/bsd/freebsd/patches/14.0/libcxxrt-headers.patch b/pkgs/os-specific/bsd/freebsd/patches/14.0/libcxxrt-headers.patch
new file mode 100644
index 0000000000000..256db9e2d9cf4
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/patches/14.0/libcxxrt-headers.patch
@@ -0,0 +1,11 @@
+--- freebsd/lib/libcxxrt/Makefile	2024-05-30 14:27:42.328086005 -0700
++++ freebsd/lib/libcxxrt/Makefile.mod	2024-05-30 14:27:48.048014581 -0700
+@@ -19,6 +19,8 @@
+ SRCS+=		terminate.cc
+ SRCS+=		typeinfo.cc
+ 
++INCS+=cxxabi.h unwind.h unwind-arm.h unwind-itanium.h
++
+ WARNS?=		0
+ CFLAGS+=	-isystem ${SRCDIR} -nostdinc++
+ CXXSTD?=	c++14
diff --git a/pkgs/os-specific/bsd/freebsd/patches/14.0/localedef.patch b/pkgs/os-specific/bsd/freebsd/patches/14.0/localedef.patch
new file mode 100644
index 0000000000000..73a0341bd3240
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/patches/14.0/localedef.patch
@@ -0,0 +1,158 @@
+diff --git a/include/_ctype.h b/include/_ctype.h
+index 91e6b1d14f6b..a6896b598da3 100644
+--- a/include/_ctype.h
++++ b/include/_ctype.h
+@@ -44,7 +44,7 @@
+ #define	__CTYPE_H_
+ 
+ #include <sys/cdefs.h>
+-#include <sys/_types.h>
++#include <sys/types.h>
+ 
+ #define	_CTYPE_A	0x00000100L		/* Alpha */
+ #define	_CTYPE_C	0x00000200L		/* Control */
+diff --git a/lib/libc/locale/collate.h b/lib/libc/locale/collate.h
+index 2d3723b49f5b..6bbff732b9d7 100644
+--- a/lib/libc/locale/collate.h
++++ b/lib/libc/locale/collate.h
+@@ -36,6 +36,7 @@
+ #ifndef _COLLATE_H_
+ #define	_COLLATE_H_
+ 
++#include <stdint.h>
+ #include <sys/cdefs.h>
+ #include <sys/types.h>
+ #include <limits.h>
+diff --git a/usr.bin/localedef/charmap.c b/usr.bin/localedef/charmap.c
+index 44b7e3292eae..79c30b7cf372 100644
+--- a/usr.bin/localedef/charmap.c
++++ b/usr.bin/localedef/charmap.c
+@@ -31,6 +31,7 @@
+ /*
+  * CHARMAP file handling for localedef.
+  */
++#include <stdint.h>
+ #include <sys/cdefs.h>
+ #include <sys/types.h>
+ #include <sys/tree.h>
+diff --git a/usr.bin/localedef/collate.c b/usr.bin/localedef/collate.c
+index 2a080773a95e..3f0030c638f5 100644
+--- a/usr.bin/localedef/collate.c
++++ b/usr.bin/localedef/collate.c
+@@ -31,6 +31,7 @@
+ /*
+  * LC_COLLATE database generation routines for localedef.
+  */
++#include <stdint.h>
+ #include <sys/cdefs.h>
+ #include <sys/types.h>
+ #include <sys/tree.h>
+diff --git a/usr.bin/localedef/ctype.c b/usr.bin/localedef/ctype.c
+index ab7b76e57b2d..846c6d6480a8 100644
+--- a/usr.bin/localedef/ctype.c
++++ b/usr.bin/localedef/ctype.c
+@@ -32,6 +32,7 @@
+ /*
+  * LC_CTYPE database generation routines for localedef.
+  */
++#include <stdint.h>
+ #include <sys/cdefs.h>
+ #include <sys/tree.h>
+ 
+diff --git a/usr.bin/localedef/localedef.c b/usr.bin/localedef/localedef.c
+index 5ff146d6f655..ed69aa1f0c0e 100644
+--- a/usr.bin/localedef/localedef.c
++++ b/usr.bin/localedef/localedef.c
+@@ -32,7 +32,7 @@
+  * POSIX localedef.
+  */
+ #include <sys/cdefs.h>
+-#include <sys/endian.h>
++#include <endian.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ 
+diff --git a/usr.bin/localedef/messages.c b/usr.bin/localedef/messages.c
+index 6b8eb9d684dd..0155821d0e56 100644
+--- a/usr.bin/localedef/messages.c
++++ b/usr.bin/localedef/messages.c
+@@ -31,6 +31,7 @@
+ /*
+  * LC_MESSAGES database generation routines for localedef.
+  */
++#include <stdint.h>
+ #include <sys/cdefs.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+diff --git a/usr.bin/localedef/monetary.c b/usr.bin/localedef/monetary.c
+index 7a77ac7e256c..7636c4deca1f 100644
+--- a/usr.bin/localedef/monetary.c
++++ b/usr.bin/localedef/monetary.c
+@@ -31,6 +31,7 @@
+ /*
+  * LC_MONETARY database generation routines for localedef.
+  */
++#include <stdint.h>
+ #include <sys/cdefs.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+diff --git a/usr.bin/localedef/numeric.c b/usr.bin/localedef/numeric.c
+index 5533b7c10e1a..9c47494f815c 100644
+--- a/usr.bin/localedef/numeric.c
++++ b/usr.bin/localedef/numeric.c
+@@ -31,6 +31,7 @@
+ /*
+  * LC_NUMERIC database generation routines for localedef.
+  */
++#include <stdint.h>
+ #include <sys/cdefs.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+diff --git a/usr.bin/localedef/parser.y b/usr.bin/localedef/parser.y
+index 23b3b54f8a6e..e01330f0152d 100644
+--- a/usr.bin/localedef/parser.y
++++ b/usr.bin/localedef/parser.y
+@@ -33,6 +33,7 @@
+  * POSIX localedef grammar.
+  */
+ 
++#include <stdint.h>
+ #include <wchar.h>
+ #include <stdio.h>
+ #include <limits.h>
+diff --git a/usr.bin/localedef/scanner.c b/usr.bin/localedef/scanner.c
+index c6d45a993f28..b17670ef4b4a 100644
+--- a/usr.bin/localedef/scanner.c
++++ b/usr.bin/localedef/scanner.c
+@@ -32,6 +32,7 @@
+  * This file contains the "scanner", which tokenizes the input files
+  * for localedef for processing by the higher level grammar processor.
+  */
++#include <stdint.h>
+ #include <sys/cdefs.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+diff --git a/usr.bin/localedef/time.c b/usr.bin/localedef/time.c
+index 7a56e244c921..0e409a742d0a 100644
+--- a/usr.bin/localedef/time.c
++++ b/usr.bin/localedef/time.c
+@@ -31,6 +31,7 @@
+ /*
+  * LC_TIME database generation routines for localedef.
+  */
++#include <stdint.h>
+ #include <sys/cdefs.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+diff --git a/usr.bin/localedef/wide.c b/usr.bin/localedef/wide.c
+index 062e120e6912..a199cddb198d 100644
+--- a/usr.bin/localedef/wide.c
++++ b/usr.bin/localedef/wide.c
+@@ -34,6 +34,7 @@
+  * to the wide character forms used internally by libc.  Unfortunately,
+  * this approach means that we need a method for each and every encoding.
+  */
++#include <stdint.h>
+ #include <sys/cdefs.h>
+ #include <ctype.h>
+ #include <stdlib.h>
diff --git a/pkgs/os-specific/bsd/freebsd/patches/14.0/tinfo-host-cc.patch b/pkgs/os-specific/bsd/freebsd/patches/14.0/tinfo-host-cc.patch
new file mode 100644
index 0000000000000..6446322a8a0a3
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/patches/14.0/tinfo-host-cc.patch
@@ -0,0 +1,15 @@
+--- a/lib/ncurses/tinfo/Makefile	2023-12-26 23:02:07.827892619 -0800
++++ b/lib/ncurses/tinfo/Makefile	2023-12-26 23:01:24.175546100 -0800
+@@ -282,10 +282,10 @@
+ build-tools: make_hash make_keys
+ 
+ make_keys: make_keys.c names.c ncurses_def.h ${HEADERS} ${BUILD_TOOLS_META}
+-	${CC:N${CCACHE_BIN}} -o $@ ${CFLAGS} ${NCURSES_DIR}/ncurses/tinfo/make_keys.c
++	${CC_HOST:N${CCACHE_BIN}} -o $@ ${CFLAGS} ${NCURSES_DIR}/ncurses/tinfo/make_keys.c
+ 
+ make_hash: make_hash.c hashsize.h ncurses_def.h ${HEADERS} ${BUILD_TOOLS_META}
+-	${CC:N${CCACHE_BIN}} -o $@ ${CFLAGS} -DMAIN_PROGRAM \
++	${CC_HOST:N${CCACHE_BIN}} -o $@ ${CFLAGS} -DMAIN_PROGRAM \
+ 		${NCURSES_DIR}/ncurses/tinfo/make_hash.c
+ .endif
+ .if ${MK_DIRDEPS_BUILD} == "yes" && ${MACHINE} != "host"
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/bin.nix b/pkgs/os-specific/bsd/freebsd/pkgs/bin.nix
new file mode 100644
index 0000000000000..2b2738ec5794a
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/bin.nix
@@ -0,0 +1,92 @@
+{
+  mkDerivation,
+  pkgsBuildBuild,
+  libjail,
+  libmd,
+  libnetbsd,
+  libcapsicum,
+  libcasper,
+  libelf,
+  libxo,
+  libncurses-tinfo,
+  libedit,
+  lib,
+  stdenv,
+  bsdSetupHook,
+  freebsdSetupHook,
+  makeMinimal,
+  install,
+  tsort,
+  lorder,
+  mandoc,
+  groff,
+  byacc,
+  gencat,
+}:
+mkDerivation {
+  pname = "bins";
+  path = "bin";
+  extraPaths = [
+    "sys/conf"
+    "sys/sys/param.h"
+    "contrib/sendmail"
+    "contrib/tcsh"
+    "usr.bin/printf"
+    "lib/libsm"
+  ];
+  buildInputs = [
+    libjail
+    libmd
+    libnetbsd
+    libcapsicum
+    libcasper
+    libelf
+    libxo
+    libncurses-tinfo
+    libedit
+  ];
+  nativeBuildInputs = [
+    bsdSetupHook
+    freebsdSetupHook
+    makeMinimal
+    install
+    tsort
+    lorder
+    mandoc
+    groff
+
+    byacc
+    gencat
+  ];
+
+  MK_TESTS = "no";
+
+  postPatch = ''
+    sed -E -i -e '/#define\tBSD.*/d' $BSDSRCDIR/sys/sys/param.h
+    sed -E -i -e '/^SYMLINKS.*/d' $BSDSRCDIR/bin/*/Makefile
+    sed -E -i -e 's/mktemp -t ka/mktemp -t kaXXXXXX/' $BSDSRCDIR/bin/sh/mkbuiltins $BSDSRCDIR/bin/sh/mktokens
+  '';
+
+  preBuild = ''
+    export NIX_CFLAGS_COMPILE="-I$BSDSRCDIR/sys $NIX_CFLAGS_COMPILE"
+
+    make -C $BSDSRCDIR/lib/libsm $makeFlags
+
+    make -C $BSDSRCDIR/bin/sh $makeFlags "CC=${pkgsBuildBuild.stdenv.cc}/bin/cc" CFLAGS="-D__unused= -D__printf0like\(a,b\)= -D__dead2=" ${
+      lib.optionalString (!stdenv.buildPlatform.isFreeBSD) "MK_PIE=no "
+    }mkbuiltins mksyntax mktokens mknodes
+    make -C $BSDSRCDIR/bin/csh $makeFlags "CC=${pkgsBuildBuild.stdenv.cc}/bin/cc" CFLAGS="-D__unused= -D__printf0like\(a,b\)= -D__dead2= -I$BSDSRCDIR/contrib/tcsh -I." ${
+      lib.optionalString (!stdenv.buildPlatform.isFreeBSD) "MK_PIE=no "
+    }gethost
+  '';
+
+  preInstall = ''
+    makeFlags="$makeFlags ROOTDIR=$out/root"
+  '';
+
+  outputs = [
+    "out"
+    "man"
+    "debug"
+  ];
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/boot-install.nix b/pkgs/os-specific/bsd/freebsd/pkgs/boot-install.nix
index 966489d9aef36..79dab282e3f3f 100644
--- a/pkgs/os-specific/bsd/freebsd/pkgs/boot-install.nix
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/boot-install.nix
@@ -1,10 +1,23 @@
 { buildPackages, freebsd-lib }:
 
-# Wrap NetBSD's install
+# Wrap GNU coreutils' install
+# The -l flag causes a symlink instead of a copy to be installed, so
+# it is safe to discard during bootstrap since coreutils does not support it.
+
 buildPackages.writeShellScriptBin "boot-install" (
   freebsd-lib.install-wrapper
   + ''
+    fixed_args=()
+    while [[ ''${#args[0]} > 0 ]]; do
+      case "''${args[0]}" in
+        -l)
+          args=("''${args[@]:2}")
+          continue
+      esac
+      fixed_args+=("''${args[0]}")
+      args=("''${args[@]:1}")
+    done
 
-    ${buildPackages.netbsd.install}/bin/xinstall "''${args[@]}"
+    ${buildPackages.coreutils}/bin/install "''${fixed_args[@]}"
   ''
 )
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/cp.nix b/pkgs/os-specific/bsd/freebsd/pkgs/cp.nix
new file mode 100644
index 0000000000000..3ebfd91a4e153
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/cp.nix
@@ -0,0 +1,10 @@
+{ mkDerivation }:
+mkDerivation {
+  path = "bin/cp";
+
+  extraPaths = [ "sys" ];
+
+  postPatch = ''
+    substituteInPlace $BSDSRCDIR/bin/cp/Makefile --replace 'tests' ""
+  '';
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/csu.nix b/pkgs/os-specific/bsd/freebsd/pkgs/csu.nix
index 0f74d78b1d13d..020a08c1d01ef 100644
--- a/pkgs/os-specific/bsd/freebsd/pkgs/csu.nix
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/csu.nix
@@ -12,7 +12,7 @@
 }:
 
 mkDerivation {
-  isStatic = true;
+  noLibc = true;
   path = "lib/csu";
   extraPaths = [
     "lib/Makefile.inc"
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/filterSource.nix b/pkgs/os-specific/bsd/freebsd/pkgs/filterSource.nix
index dc215c18aecb7..09674056d9cd8 100644
--- a/pkgs/os-specific/bsd/freebsd/pkgs/filterSource.nix
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/filterSource.nix
@@ -18,6 +18,17 @@ let
     lib.concatMapStringsSep "\n" (path: "/${path}") sortedPaths
   );
 in
-runCommand "${pname}-filtered-src" { nativeBuildInputs = [ pkgsBuildBuild.rsync ]; } ''
-  rsync -a -r --files-from=${filterText} ${source}/ $out
-''
+runCommand "${pname}-filtered-src"
+  {
+    nativeBuildInputs = [
+      (pkgsBuildBuild.rsync.override {
+        enableZstd = false;
+        enableXXHash = false;
+        enableOpenSSL = false;
+        enableLZ4 = false;
+      })
+    ];
+  }
+  ''
+    rsync -a -r --files-from=${filterText} ${source}/ $out
+  ''
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/iconv.nix b/pkgs/os-specific/bsd/freebsd/pkgs/iconv.nix
new file mode 100644
index 0000000000000..9c1ba1835c145
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/iconv.nix
@@ -0,0 +1,12 @@
+{
+  mkDerivation,
+  libcapsicum,
+  libcasper,
+}:
+mkDerivation {
+  path = "usr.bin/iconv";
+  buildInputs = [
+    libcapsicum
+    libcasper
+  ];
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/include/package.nix b/pkgs/os-specific/bsd/freebsd/pkgs/include/package.nix
index 70734226a54f5..a7ceb0cdf384f 100644
--- a/pkgs/os-specific/bsd/freebsd/pkgs/include/package.nix
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/include/package.nix
@@ -7,7 +7,7 @@
 }:
 
 mkDerivation {
-  isStatic = true;
+  noLibc = true;
   path = "include";
 
   extraPaths = [
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/ldd.nix b/pkgs/os-specific/bsd/freebsd/pkgs/ldd.nix
new file mode 100644
index 0000000000000..406e37402b2bb
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/ldd.nix
@@ -0,0 +1,21 @@
+{
+  lib,
+  stdenv,
+  mkDerivation,
+  libelf,
+}:
+mkDerivation {
+  path = "usr.bin/ldd";
+  extraPaths = [
+    "libexec/rtld-elf"
+    "contrib/elftoolchain/libelf"
+  ];
+
+  buildInputs = [ libelf ];
+
+  env = {
+    NIX_CFLAGS_COMPILE = "-D_RTLD_PATH=${lib.getLib stdenv.cc.libc}/libexec/ld-elf.so.1";
+  };
+
+  meta.platforms = lib.platforms.freebsd;
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/libc/package.nix b/pkgs/os-specific/bsd/freebsd/pkgs/libc/package.nix
index 8f2cc976463e4..a991e69265823 100644
--- a/pkgs/os-specific/bsd/freebsd/pkgs/libc/package.nix
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/libc/package.nix
@@ -21,7 +21,7 @@
 }:
 
 mkDerivation {
-  isStatic = true;
+  noLibc = true;
   pname = "libc";
   path = "lib/libc";
   extraPaths =
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/libcapsicum.nix b/pkgs/os-specific/bsd/freebsd/pkgs/libcapsicum.nix
new file mode 100644
index 0000000000000..3cb1560df77aa
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/libcapsicum.nix
@@ -0,0 +1 @@
+{ mkDerivation }: mkDerivation { path = "lib/libcapsicum"; }
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/libcasper.nix b/pkgs/os-specific/bsd/freebsd/pkgs/libcasper.nix
new file mode 100644
index 0000000000000..df27f72bc8cb0
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/libcasper.nix
@@ -0,0 +1,26 @@
+{
+  lib,
+  stdenv,
+  mkDerivation,
+  libnv,
+}:
+mkDerivation {
+  path = "lib/libcasper/libcasper";
+  extraPaths = [
+    "lib/Makefile.inc"
+    "lib/libcasper"
+  ];
+  buildInputs = [ libnv ];
+
+  MK_TESTS = "no";
+
+  makeFlags = [
+    "STRIP=-s" # flag to install, not command
+    "CFLAGS=-DWITH_CASPER"
+  ] ++ lib.optional (!stdenv.hostPlatform.isFreeBSD) "MK_WERROR=no";
+
+  postInstall = ''
+    make -C $BSDSRCDIR/lib/libcasper/services $makeFlags CFLAGS="-DWITH_CASPER -I$out/include"
+    make -C $BSDSRCDIR/lib/libcasper/services $makeFlags install
+  '';
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/libcxxrt.nix b/pkgs/os-specific/bsd/freebsd/pkgs/libcxxrt.nix
new file mode 100644
index 0000000000000..fd5591c0ffb8a
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/libcxxrt.nix
@@ -0,0 +1,18 @@
+{ mkDerivation }:
+# this package is quite different from stock libcxxrt.
+# as of FreeBSD 14.0, it is vendored from APPROXIMATELY libcxxrt
+# 5d8a15823a103bbc27f1bfdcf2b5aa008fab57dd, though the vendoring mechanism is
+# extremely ad-hoc. Moreover, the build mechanism is totally custom, and adds
+# symbol versions not specified on any version of libcxxrt.
+mkDerivation {
+  pname = "libcxxrt";
+  path = "lib/libcxxrt";
+  extraPaths = [ "contrib/libcxxrt" ];
+  outputs = [
+    "out"
+    "dev"
+    "debug"
+  ];
+  noLibcxx = true;
+  libName = "cxxrt";
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/libdl.nix b/pkgs/os-specific/bsd/freebsd/pkgs/libdl.nix
new file mode 100644
index 0000000000000..2b77a0f716624
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/libdl.nix
@@ -0,0 +1,9 @@
+{ mkDerivation, ... }:
+mkDerivation {
+  path = "lib/libdl";
+  extraPaths = [
+    "lib/libc"
+    "libexec/rtld-elf"
+  ];
+  buildInputs = [ ];
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/libedit.nix b/pkgs/os-specific/bsd/freebsd/pkgs/libedit.nix
new file mode 100644
index 0000000000000..50b1c9f58333f
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/libedit.nix
@@ -0,0 +1,7 @@
+{ mkDerivation, libncurses-tinfo }:
+mkDerivation {
+  path = "lib/libedit";
+  extraPaths = [ "contrib/libedit" ];
+  buildInputs = [ libncurses-tinfo ];
+  MK_TESTS = "no";
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/libelf.nix b/pkgs/os-specific/bsd/freebsd/pkgs/libelf.nix
new file mode 100644
index 0000000000000..a116aff81f397
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/libelf.nix
@@ -0,0 +1,29 @@
+{
+  mkDerivation,
+  lib,
+  bsdSetupHook,
+  freebsdSetupHook,
+  makeMinimal,
+  install,
+  m4,
+}:
+mkDerivation {
+  path = "lib/libelf";
+  extraPaths = [
+    "lib/libc"
+    "contrib/elftoolchain"
+    "sys/sys/elf32.h"
+    "sys/sys/elf64.h"
+    "sys/sys/elf_common.h"
+  ];
+  buildInputs = [ ];
+  nativeBuildInputs = [
+    bsdSetupHook
+    freebsdSetupHook
+    makeMinimal
+    install
+    m4
+  ];
+
+  meta.platforms = lib.platforms.freebsd;
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/libjail.nix b/pkgs/os-specific/bsd/freebsd/pkgs/libjail.nix
new file mode 100644
index 0000000000000..9150be559c650
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/libjail.nix
@@ -0,0 +1,5 @@
+{ mkDerivation }:
+mkDerivation {
+  path = "lib/libjail";
+  MK_TESTS = "no";
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/libncurses-tinfo.nix b/pkgs/os-specific/bsd/freebsd/pkgs/libncurses-tinfo.nix
new file mode 100644
index 0000000000000..f86f78dbc2914
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/libncurses-tinfo.nix
@@ -0,0 +1,15 @@
+{ mkDerivation, pkgsBuildBuild }:
+mkDerivation {
+  path = "lib/ncurses/tinfo";
+  extraPaths = [
+    "lib/ncurses"
+    "contrib/ncurses"
+    "lib/Makefile.inc"
+  ];
+  CC_HOST = "${pkgsBuildBuild.stdenv.cc}/bin/cc";
+  MK_TESTS = "no";
+  preBuild = ''
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -D_VA_LIST -D_VA_LIST_DECLARED -Dva_list=__builtin_va_list -D_SIZE_T -D_WCHAR_T"
+    make $makeFlags "CFLAGS=-D_VA_LIST -D_VA_LIST_DECLARED -Dva_list=__builtin_va_list -I$BSDSRCDIR/contrib/ncurses/ncurses -I$BSDSRCDIR/contrib/ncurses/include -I." ncurses_dll.h make_hash make_keys
+  '';
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/libncurses.nix b/pkgs/os-specific/bsd/freebsd/pkgs/libncurses.nix
new file mode 100644
index 0000000000000..2dd1ee2fe57de
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/libncurses.nix
@@ -0,0 +1,25 @@
+{
+  lib,
+  versionData,
+  mkDerivation,
+  libncurses-tinfo,
+  ...
+}:
+mkDerivation {
+  path = "lib/ncurses/ncurses";
+  extraPaths = [
+    "lib/ncurses"
+    "contrib/ncurses"
+    "lib/Makefile.inc"
+  ];
+  MK_TESTS = "no";
+  preBuild = lib.optionalString (versionData.major == 14) ''
+    make -C ../tinfo $makeFlags curses.h ncurses_dll.h ncurses_def.h
+  '';
+  buildInputs = lib.optionals (versionData.major == 14) [ libncurses-tinfo ];
+
+  # some packages depend on libncursesw.so.8
+  postInstall = ''
+    ln -s $out/lib/libncursesw.so.9 $out/lib/libncursesw.so.8
+  '';
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/libxo.nix b/pkgs/os-specific/bsd/freebsd/pkgs/libxo.nix
new file mode 100644
index 0000000000000..a4882ea1970c3
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/libxo.nix
@@ -0,0 +1,6 @@
+{ mkDerivation }:
+mkDerivation {
+  path = "lib/libxo";
+  extraPaths = [ "contrib/libxo" ];
+  MK_TESTS = "no";
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/locale.nix b/pkgs/os-specific/bsd/freebsd/pkgs/locale.nix
new file mode 100644
index 0000000000000..b661a7cee853f
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/locale.nix
@@ -0,0 +1,7 @@
+{ mkDerivation, libsbuf }:
+mkDerivation {
+  path = "usr.bin/locale";
+  buildInputs = [ libsbuf ];
+  extraPaths = [ "lib/libc/locale" ];
+  MK_TESTS = "no";
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/localedef.nix b/pkgs/os-specific/bsd/freebsd/pkgs/localedef.nix
new file mode 100644
index 0000000000000..2e4902860c8d9
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/localedef.nix
@@ -0,0 +1,39 @@
+{
+  mkDerivation,
+  lib,
+  stdenv,
+  compat,
+  bsdSetupHook,
+  byacc,
+  freebsdSetupHook,
+  makeMinimal,
+  install,
+}:
+mkDerivation (
+  {
+    path = "usr.bin/localedef";
+
+    extraPaths = [
+      "lib/libc/locale"
+      "lib/libc/stdtime"
+    ] ++ lib.optionals (!stdenv.hostPlatform.isFreeBSD) [ "." ];
+
+    nativeBuildInputs = [
+      bsdSetupHook
+      byacc
+      freebsdSetupHook
+      makeMinimal
+      install
+    ];
+
+    buildInputs = [ ];
+
+    preBuild = lib.optionalString (!stdenv.hostPlatform.isFreeBSD) ''
+      export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${compat}/include -D__unused= -D__pure= -Wno-strict-aliasing"
+      export NIX_LDFLAGS="$NIX_LDFLAGS -L${compat}/lib"
+    '';
+
+    MK_TESTS = "no";
+  }
+  // lib.optionalAttrs (!stdenv.hostPlatform.isFreeBSD) { BOOTSTRAPPING = 1; }
+)
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/locales.nix b/pkgs/os-specific/bsd/freebsd/pkgs/locales.nix
new file mode 100644
index 0000000000000..d8d3de93d5ec7
--- /dev/null
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/locales.nix
@@ -0,0 +1,51 @@
+{
+  mkDerivation,
+  lib,
+  symlinkJoin,
+  bsdSetupHook,
+  freebsdSetupHook,
+  makeMinimal,
+  install,
+  tsort,
+  lorder,
+  mandoc,
+  groff,
+  localedef,
+  allLocales ? true,
+  locales ? [ "en_US.UTF-8" ],
+}:
+let
+  build =
+    name: needsLocaledef:
+    mkDerivation {
+      path = "share/${name}";
+
+      extraPaths = lib.optional needsLocaledef "tools/tools/locale/etc/final-maps";
+      nativeBuildInputs = [
+        bsdSetupHook
+        freebsdSetupHook
+        makeMinimal
+        install
+        tsort
+        lorder
+        mandoc
+        groff
+      ] ++ lib.optional needsLocaledef localedef;
+    };
+  directories = {
+    colldef = true;
+    colldef_unicode = true;
+    ctypedef = true;
+    monetdef = false;
+    monetdef_unicode = false;
+    msgdef = false;
+    msgdef_unicode = false;
+    numericdef = false;
+    numericdef_unicode = false;
+    timedef = false;
+  };
+in
+symlinkJoin {
+  name = "freebsd-locales";
+  paths = lib.mapAttrsToList build directories;
+}
diff --git a/pkgs/os-specific/bsd/freebsd/pkgs/mkDerivation.nix b/pkgs/os-specific/bsd/freebsd/pkgs/mkDerivation.nix
index be195b3bc6fa5..e20b94336d577 100644
--- a/pkgs/os-specific/bsd/freebsd/pkgs/mkDerivation.nix
+++ b/pkgs/os-specific/bsd/freebsd/pkgs/mkDerivation.nix
@@ -2,6 +2,9 @@
   lib,
   stdenv,
   stdenvNoCC,
+  stdenvNoLibc,
+  overrideCC,
+  buildPackages,
   versionData,
   writeText,
   patches,
@@ -21,7 +24,15 @@
 lib.makeOverridable (
   attrs:
   let
-    stdenv' = if attrs.noCC or false then stdenvNoCC else stdenv;
+    stdenv' =
+      if attrs.noCC or false then
+        stdenvNoCC
+      else if attrs.noLibc or false then
+        stdenvNoLibc
+      else if attrs.noLibcxx or false then
+        overrideCC stdenv buildPackages.llvmPackages.clangNoLibcxx
+      else
+        stdenv;
   in
   stdenv'.mkDerivation (
     rec {
@@ -47,12 +58,9 @@ lib.makeOverridable (
 
       HOST_SH = stdenv'.shell;
 
-      # Since STRIP below is the flag
-      STRIPBIN = "${stdenv.cc.bintools.targetPrefix}strip";
-
       makeFlags = [
         "STRIP=-s" # flag to install, not command
-      ] ++ lib.optional (!stdenv.hostPlatform.isFreeBSD) "MK_WERROR=no";
+      ] ++ lib.optional (!stdenv'.hostPlatform.isFreeBSD) "MK_WERROR=no";
 
       # amd64 not x86_64 for this on unlike NetBSD
       MACHINE_ARCH = freebsd-lib.mkBsdArch stdenv';
@@ -80,6 +88,9 @@ lib.makeOverridable (
     // lib.optionalAttrs stdenv'.hasCC {
       # TODO should CC wrapper set this?
       CPP = "${stdenv'.cc.targetPrefix}cpp";
+
+      # Since STRIP in `makeFlags` has to be a flag, not the binary itself
+      STRIPBIN = "${stdenv'.cc.bintools.targetPrefix}strip";
     }
     // lib.optionalAttrs stdenv'.isDarwin { MKRELRO = "no"; }
     // lib.optionalAttrs (stdenv'.cc.isClang or false) {
@@ -128,15 +139,17 @@ lib.makeOverridable (
           splitPatch =
             patchFile:
             let
+              allLines' = lib.strings.splitString "\n" (builtins.readFile patchFile);
+              allLines = builtins.filter (
+                line: !((lib.strings.hasPrefix "diff --git" line) || (lib.strings.hasPrefix "index " line))
+              ) allLines';
               foldFunc =
                 a: b:
-                if (lib.strings.hasPrefix "--- " b) then
+                if ((lib.strings.hasPrefix "--- " b) || (lib.strings.hasPrefix "diff --git " b)) then
                   (a ++ [ [ b ] ])
                 else
                   ((lib.lists.init a) ++ (lib.lists.singleton ((lib.lists.last a) ++ [ b ])));
-              partitionedPatches' = lib.lists.foldl foldFunc [ [ ] ] (
-                lib.strings.splitString "\n" (builtins.readFile patchFile)
-              );
+              partitionedPatches' = lib.lists.foldl foldFunc [ [ ] ] allLines;
               partitionedPatches =
                 if (builtins.length partitionedPatches' > 1) then
                   (lib.lists.drop 1 partitionedPatches')
diff --git a/pkgs/os-specific/bsd/freebsd/lib/install-wrapper.sh b/pkgs/os-specific/bsd/lib/install-wrapper.sh
index 91a7a2679f209..97a2aaab22c0e 100644
--- a/pkgs/os-specific/bsd/freebsd/lib/install-wrapper.sh
+++ b/pkgs/os-specific/bsd/lib/install-wrapper.sh
@@ -14,7 +14,6 @@ while (( $# )); do
   case $1 in
     -C) ;;
     -o | -g) shift ;;
-    -s) ;;
     -m | -l)
       # handle next arg so not counted as path arg
       args+=("$1" "$2")
diff --git a/pkgs/os-specific/bsd/netbsd/default.nix b/pkgs/os-specific/bsd/netbsd/default.nix
index e0d03108960c0..7440666b4d795 100644
--- a/pkgs/os-specific/bsd/netbsd/default.nix
+++ b/pkgs/os-specific/bsd/netbsd/default.nix
@@ -1,5 +1,4 @@
 {
-  stdenv,
   lib,
   stdenvNoCC,
   makeScopeWithSplicing',
@@ -17,19 +16,13 @@ makeScopeWithSplicing' {
       directory = ./pkgs;
     }
     // {
-
-      fetchNetBSD =
-        path: version: sha256:
-        fetchcvs {
-          cvsRoot = ":pserver:anoncvs@anoncvs.NetBSD.org:/cvsroot";
-          module = "src/${path}";
-          inherit sha256;
-          tag = "netbsd-${lib.replaceStrings [ "." ] [ "-" ] version}-RELEASE";
-        };
+      version = "9.2";
 
       defaultMakeFlags = [
         "MKSOFTFLOAT=${
-          if stdenv.hostPlatform.gcc.float or (stdenv.hostPlatform.parsed.abi.float or "hard") == "soft" then
+          if
+            stdenvNoCC.hostPlatform.gcc.float or (stdenvNoCC.hostPlatform.parsed.abi.float or "hard") == "soft"
+          then
             "yes"
           else
             "no"
@@ -44,7 +37,6 @@ makeScopeWithSplicing' {
       # because of the splices.
 
       mkDerivation = self.callPackage ./pkgs/mkDerivation.nix {
-        inherit stdenv stdenvNoCC;
         inherit (buildPackages.netbsd)
           netbsdSetupHook
           makeMinimal
@@ -137,7 +129,7 @@ makeScopeWithSplicing' {
       libpthread-headers = self.callPackage ./pkgs/libpthread/headers.nix { };
 
       csu = self.callPackage ./pkgs/csu.nix {
-        inherit (self) headers sys ld_elf_so;
+        inherit (self) headers sys-headers ld_elf_so;
         inherit (buildPackages.netbsd)
           netbsdSetupHook
           makeMinimal
@@ -151,18 +143,18 @@ makeScopeWithSplicing' {
         inherit (buildPackages.buildPackages) rsync;
       };
 
-      _mainLibcExtraPaths = with self; [
-        common
-        i18n_module.src
-        sys.src
-        ld_elf_so.src
-        libpthread.src
-        libm.src
-        libresolv.src
-        librpcsvc.src
-        libutil.src
-        librt.src
-        libcrypt.src
+      _mainLibcExtraPaths = [
+        "common"
+        "lib/i18n_module"
+        "lib/libcrypt"
+        "lib/libm"
+        "lib/libpthread"
+        "lib/libresolv"
+        "lib/librpcsvc"
+        "lib/librt"
+        "lib/libutil"
+        "libexec/ld.elf_so"
+        "sys"
       ];
 
       libc = self.callPackage ./pkgs/libc.nix {
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/cksum.nix b/pkgs/os-specific/bsd/netbsd/pkgs/cksum.nix
index a2ec387501ae1..a95df55874e42 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/cksum.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/cksum.nix
@@ -2,7 +2,5 @@
 
 mkDerivation {
   path = "usr.bin/cksum";
-  version = "9.2";
-  sha256 = "0msfhgyvh5c2jmc6qjnf12c378dhw32ffsl864qz4rdb2b98rfcq";
   meta.platforms = lib.platforms.netbsd;
 }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/column.nix b/pkgs/os-specific/bsd/netbsd/pkgs/column.nix
index f3cebfa9ab261..a51369433f6c2 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/column.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/column.nix
@@ -1,7 +1,3 @@
 { mkDerivation }:
 
-mkDerivation {
-  path = "usr.bin/column";
-  version = "9.2";
-  sha256 = "0r6b0hjn5ls3j3sv6chibs44fs32yyk2cg8kh70kb4cwajs4ifyl";
-}
+mkDerivation { path = "usr.bin/column"; }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/common.nix b/pkgs/os-specific/bsd/netbsd/pkgs/common.nix
deleted file mode 100644
index 464fc1c9e0c26..0000000000000
--- a/pkgs/os-specific/bsd/netbsd/pkgs/common.nix
+++ /dev/null
@@ -1,3 +0,0 @@
-{ fetchNetBSD }:
-
-fetchNetBSD "common" "9.2" "1pfylz9r3ap5wnwwbwczbfjb1m5qdyspzbnmxmcdkpzz2zgj64b9"
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/compat/package.nix b/pkgs/os-specific/bsd/netbsd/pkgs/compat/package.nix
index 4c149e95c1ae6..91a2bb8755c89 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/compat/package.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/compat/package.nix
@@ -14,19 +14,16 @@
   netbsdSetupHook,
   makeMinimal,
   rsync,
-  fetchNetBSD,
   _mainLibcExtraPaths,
+  version,
 }:
 
 mkDerivation (
   let
-    version = "9.2";
     commonDeps = [ zlib ];
   in
   {
     path = "tools/compat";
-    sha256 = "1vsxg7136nlhc72vpa664vs22874xh7ila95nkmsd8crn3z3cyn0";
-    inherit version;
 
     setupHooks = [
       ../../../../../build-support/setup-hooks/role.bash
@@ -133,14 +130,12 @@ mkDerivation (
           --subst-var-by version ${version}
       '';
     extraPaths = [
-      include.src
-      libc.src
-      libutil.src
-      (fetchNetBSD "external/bsd/flex" "9.2" "0h98jpfj7vx5zh7vd7bk6b1hmzgkcb757a8j6d9zgygxxv13v43m")
-      (fetchNetBSD "sys/sys" "9.2" "0zawhw51klaigqqwkx0lzrx3mim2jywrc24cm7c66qsf1im9awgd")
-      (fetchNetBSD "common/include/rpc/types.h" "9.2"
-        "0n2df12mlc3cbc48jxq35yzl1y7ghgpykvy7jnfh898rdhac7m9a"
-      )
+      include.path
+      libc.path
+      libutil.path
+      "external/bsd/flex"
+      "sys/sys"
+      "common/include/rpc/types.h"
     ] ++ libutil.extraPaths ++ _mainLibcExtraPaths;
   }
 )
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/config.nix b/pkgs/os-specific/bsd/netbsd/pkgs/config.nix
index c423f3ca86760..272e9065b29b7 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/config.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/config.nix
@@ -13,8 +13,6 @@
 }:
 mkDerivation {
   path = "usr.bin/config";
-  version = "9.2";
-  sha256 = "1yz3n4hncdkk6kp595fh2q5lg150vpqg8iw2dccydkyw4y3hgsjj";
   env.NIX_CFLAGS_COMPILE = toString [ "-DMAKE_BOOTSTRAP" ];
   nativeBuildInputs = [
     bsdSetupHook
@@ -27,5 +25,5 @@ mkDerivation {
     rsync
   ];
   buildInputs = compatIfNeeded;
-  extraPaths = [ cksum.src ];
+  extraPaths = [ cksum.path ];
 }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/csu.nix b/pkgs/os-specific/bsd/netbsd/pkgs/csu.nix
index 66443331490f5..ea78f338c5339 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/csu.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/csu.nix
@@ -16,14 +16,13 @@
   statHook,
   rsync,
   headers,
-  sys,
+  sys-headers,
   ld_elf_so,
 }:
 
 mkDerivation {
+  noLibc = true;
   path = "lib/csu";
-  version = "9.2";
-  sha256 = "0al5jfazvhlzn9hvmnrbchx4d0gm282hq5gp4xs2zmj9ycmf6d03";
   meta.platforms = lib.platforms.netbsd;
   nativeBuildInputs = [
     bsdSetupHook
@@ -43,7 +42,7 @@ mkDerivation {
   ];
   buildInputs = [ headers ];
   extraPaths = [
-    sys.src
-    ld_elf_so.src
+    sys-headers.path
+    ld_elf_so.path
   ];
 }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/dict.nix b/pkgs/os-specific/bsd/netbsd/pkgs/dict.nix
index 0d7d026dd21d2..8d27f29a75e57 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/dict.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/dict.nix
@@ -3,7 +3,5 @@
 mkDerivation {
   path = "share/dict";
   noCC = true;
-  version = "9.2";
-  sha256 = "0svfc0byk59ri37pyjslv4c4rc7zw396r73mr593i78d39q5g3ad";
   makeFlags = defaultMakeFlags ++ [ "BINDIR=$(out)/share" ];
 }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/fts/package.nix b/pkgs/os-specific/bsd/netbsd/pkgs/fts/package.nix
index 7c64658bf2e51..57fc0633b0886 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/fts/package.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/fts/package.nix
@@ -4,14 +4,11 @@
   netbsdSetupHook,
   rsync,
   compatIfNeeded,
-  fetchNetBSD,
 }:
 
 mkDerivation {
   pname = "fts";
   path = "include/fts.h";
-  sha256 = "01d4fpxvz1pgzfk5xznz5dcm0x0gdzwcsfm1h3d0xc9kc6hj2q77";
-  version = "9.2";
   nativeBuildInputs = [
     bsdSetupHook
     netbsdSetupHook
@@ -19,11 +16,9 @@ mkDerivation {
   ];
   propagatedBuildInputs = compatIfNeeded;
   extraPaths = [
-    (fetchNetBSD "lib/libc/gen/fts.c" "9.2" "1a8hmf26242nmv05ipn3ircxb0jqmmi66rh78kkyi9vjwkfl3qn7")
-    (fetchNetBSD "lib/libc/include/namespace.h" "9.2"
-      "0kksr3pdwdc1cplqf5z12ih4cml6l11lqrz91f7hjjm64y7785kc"
-    )
-    (fetchNetBSD "lib/libc/gen/fts.3" "9.2" "1asxw0n3fhjdadwkkq3xplfgqgl3q32w1lyrvbakfa3gs0wz5zc1")
+    "lib/libc/gen/fts.c"
+    "lib/libc/include/namespace.h"
+    "lib/libc/gen/fts.3"
   ];
   skipIncludesPhase = true;
   buildPhase = ''
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/genassym.nix b/pkgs/os-specific/bsd/netbsd/pkgs/genassym.nix
index 7f81a77a02dd2..9eed584b29ae4 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/genassym.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/genassym.nix
@@ -1,7 +1,3 @@
 { mkDerivation }:
 
-mkDerivation {
-  path = "usr.bin/genassym";
-  version = "9.2";
-  sha256 = "1acl1dz5kvh9h5806vkz2ap95rdsz7phmynh5i3x5y7agbki030c";
-}
+mkDerivation { path = "usr.bin/genassym"; }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/gencat.nix b/pkgs/os-specific/bsd/netbsd/pkgs/gencat.nix
index 411be85e91e2f..ea701b6404ecc 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/gencat.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/gencat.nix
@@ -1,7 +1,3 @@
 { mkDerivation }:
 
-mkDerivation {
-  path = "usr.bin/gencat";
-  version = "9.2";
-  sha256 = "0gd463x1hg36bhr7y0xryb5jyxk0z0g7xvy8rgk82nlbnlnsbbwb";
-}
+mkDerivation { path = "usr.bin/gencat"; }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/getconf.nix b/pkgs/os-specific/bsd/netbsd/pkgs/getconf.nix
index c8483d454b877..2feb6495ccf86 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/getconf.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/getconf.nix
@@ -1,7 +1,3 @@
 { mkDerivation }:
 
-mkDerivation {
-  path = "usr.bin/getconf";
-  sha256 = "122vslz4j3h2mfs921nr2s6m078zcj697yrb75rwp2hnw3qz4s8q";
-  version = "9.2";
-}
+mkDerivation { path = "usr.bin/getconf"; }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/getent/package.nix b/pkgs/os-specific/bsd/netbsd/pkgs/getent/package.nix
index 7a9acb1e0a9e8..b6a4efad4ac9c 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/getent/package.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/getent/package.nix
@@ -2,7 +2,5 @@
 
 mkDerivation {
   path = "usr.bin/getent";
-  sha256 = "1qngywcmm0y7nl8h3n8brvkxq4jw63szbci3kc1q6a6ndhycbbvr";
-  version = "9.2";
   patches = [ ./getent.patch ];
 }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/i18n_module.nix b/pkgs/os-specific/bsd/netbsd/pkgs/i18n_module.nix
index c76ada865775e..066d9f236f9bf 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/i18n_module.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/i18n_module.nix
@@ -6,8 +6,6 @@
 
 mkDerivation {
   path = "lib/i18n_module";
-  version = "9.2";
-  sha256 = "0w6y5v3binm7gf2kn7y9jja8k18rhnyl55cvvfnfipjqdxvxd9jd";
   meta.platforms = lib.platforms.netbsd;
-  extraPaths = [ libc.src ];
+  extraPaths = [ libc.path ];
 }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/include.nix b/pkgs/os-specific/bsd/netbsd/pkgs/include.nix
index ec316a63174fd..a43a93847b23f 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/include.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/include.nix
@@ -10,15 +10,13 @@
   rsync,
   nbperf,
   rpcgen,
-  common,
   defaultMakeFlags,
   stdenv,
 }:
 
 mkDerivation {
+  noLibc = true;
   path = "include";
-  version = "9.2";
-  sha256 = "0nxnmj4c8s3hb9n3fpcmd0zl3l1nmhivqgi9a35sis943qvpgl9h";
   nativeBuildInputs = [
     bsdSetupHook
     netbsdSetupHook
@@ -46,7 +44,7 @@ mkDerivation {
     makeFlags=''${makeFlags/INCSDIR/INCSDIR0}
   '';
 
-  extraPaths = [ common ];
+  extraPaths = [ "common" ];
   headersOnly = true;
   noCC = true;
   meta.platforms = lib.platforms.netbsd;
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/install/package.nix b/pkgs/os-specific/bsd/netbsd/pkgs/install/package.nix
index 69b0c073259e2..2dbec08f15e85 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/install/package.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/install/package.nix
@@ -17,20 +17,18 @@
 # HACK: to ensure parent directories exist. This emulates GNU
 # install’s -D option. No alternative seems to exist in BSD install.
 let
-  binstall = writeShellScript "binstall" ''
-    set -eu
-    for last in "$@"; do true; done
-    mkdir -p $(dirname $last)
-    @out@/bin/xinstall "$@"
-  '';
+  binstall = writeShellScript "binstall" (
+    builtins.readFile ../../../lib/install-wrapper.sh
+    + ''
+      @out@/bin/xinstall "''${args[@]}"
+    ''
+  );
 in
 mkDerivation {
   path = "usr.bin/xinstall";
-  version = "9.2";
-  sha256 = "1f6pbz3qv1qcrchdxif8p5lbmnwl8b9nq615hsd3cyl4avd5bfqj";
   extraPaths = [
-    mtree.src
-    make.src
+    mtree.path
+    make.path
   ];
   nativeBuildInputs = [
     bsdSetupHook
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/ld_elf_so.nix b/pkgs/os-specific/bsd/netbsd/pkgs/ld_elf_so.nix
index a350e81d32064..4116312b9625c 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/ld_elf_so.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/ld_elf_so.nix
@@ -6,9 +6,8 @@
 }:
 
 mkDerivation {
+  noLibc = true;
   path = "libexec/ld.elf_so";
-  version = "9.2";
-  sha256 = "0ia9mqzdljly0vqfwflm5mzz55k7qsr4rw2bzhivky6k30vgirqa";
   meta.platforms = lib.platforms.netbsd;
   LIBC_PIC = "${libc}/lib/libc_pic.a";
   # Hack to prevent a symlink being installed here for compatibility.
@@ -18,5 +17,5 @@ mkDerivation {
     "BINDIR=$(out)/libexec"
     "CLIBOBJ=${libc}/lib"
   ];
-  extraPaths = [ libc.src ] ++ libc.extraPaths;
+  extraPaths = [ libc.path ] ++ libc.extraPaths;
 }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/libarch.nix b/pkgs/os-specific/bsd/netbsd/pkgs/libarch.nix
index 93ea02f8a17c1..457ea6fa48d91 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/libarch.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/libarch.nix
@@ -2,7 +2,5 @@
 
 mkDerivation {
   path = "lib/libarch";
-  version = "9.2";
-  sha256 = "6ssenRhuSwp0Jn71ErT0PrEoCJ+cIYRztwdL4QTDZsQ=";
   meta.platforms = lib.platforms.netbsd;
 }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/libc.nix b/pkgs/os-specific/bsd/netbsd/pkgs/libc.nix
index d755e4b6870a1..d6b14445acd46 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/libc.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/libc.nix
@@ -3,7 +3,6 @@
   mkDerivation,
   defaultMakeFlags,
   _mainLibcExtraPaths,
-  fetchNetBSD,
   bsdSetupHook,
   netbsdSetupHook,
   makeMinimal,
@@ -25,14 +24,11 @@
 }:
 
 mkDerivation {
+  noLibc = true;
   path = "lib/libc";
-  version = "9.2";
-  sha256 = "1y9c13igg0kai07sqvf9cm6yqmd8lhfd8hq3q7biilbgs1l99as3";
   USE_FORT = "yes";
   MKPROFILE = "no";
-  extraPaths = _mainLibcExtraPaths ++ [
-    (fetchNetBSD "external/bsd/jemalloc" "9.2" "0cq704swa0h2yxv4gc79z2lwxibk9k7pxh3q5qfs7axx3jx3n8kb")
-  ];
+  extraPaths = _mainLibcExtraPaths ++ [ "external/bsd/jemalloc" ];
   nativeBuildInputs = [
     bsdSetupHook
     netbsdSetupHook
@@ -99,5 +95,8 @@ mkDerivation {
     make -C $BSDSRCDIR/lib/libcrypt $makeFlags
     make -C $BSDSRCDIR/lib/libcrypt $makeFlags install
   '';
-  inherit (librt) postPatch;
+  postPatch = ''
+    sed -i 's,/usr\(/include/sys/syscall.h\),${headers}\1,g' \
+      $BSDSRCDIR/lib/{libc,librt}/sys/Makefile.inc
+  '';
 }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/libcrypt.nix b/pkgs/os-specific/bsd/netbsd/pkgs/libcrypt.nix
index c5f9deff589c4..abcb2cfb14fb8 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/libcrypt.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/libcrypt.nix
@@ -2,8 +2,6 @@
 
 mkDerivation {
   path = "lib/libcrypt";
-  version = "9.2";
-  sha256 = "0siqan1wdqmmhchh2n8w6a8x1abbff8n4yb6jrqxap3hqn8ay54g";
   SHLIBINSTALLDIR = "$(out)/lib";
   meta.platforms = lib.platforms.netbsd;
 }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/libcurses.nix b/pkgs/os-specific/bsd/netbsd/pkgs/libcurses.nix
index 5072821db9117..8d61bcfdf7d97 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/libcurses.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/libcurses.nix
@@ -9,8 +9,6 @@
 
 mkDerivation {
   path = "lib/libcurses";
-  version = "9.2";
-  sha256 = "0pd0dggl3w4bv5i5h0s1wrc8hr66n4hkv3zlklarwfdhc692fqal";
   buildInputs = [ libterminfo ];
   env.NIX_CFLAGS_COMPILE = toString (
     [
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/libedit.nix b/pkgs/os-specific/bsd/netbsd/pkgs/libedit.nix
index ee1e7bf79f964..cb9951cb8cf10 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/libedit.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/libedit.nix
@@ -9,8 +9,6 @@
 
 mkDerivation {
   path = "lib/libedit";
-  version = "9.2";
-  sha256 = "1wqhngraxwqk4jgrf5f18jy195yrp7c06n1gf31pbplq79mg1bcj";
   buildInputs = [
     libterminfo
     libcurses
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/libm.nix b/pkgs/os-specific/bsd/netbsd/pkgs/libm.nix
index f36e97f8e6ae0..8a2304cacbca1 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/libm.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/libm.nix
@@ -6,9 +6,7 @@
 
 mkDerivation {
   path = "lib/libm";
-  version = "9.2";
-  sha256 = "1apwfr26shdmbqqnmg7hxf7bkfxw44ynqnnnghrww9bnhqdnsy92";
   SHLIBINSTALLDIR = "$(out)/lib";
   meta.platforms = lib.platforms.netbsd;
-  extraPaths = [ sys.src ];
+  extraPaths = [ sys.path ];
 }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/libossaudio.nix b/pkgs/os-specific/bsd/netbsd/pkgs/libossaudio.nix
index 51bbc216e2046..a74176db68cdf 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/libossaudio.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/libossaudio.nix
@@ -2,7 +2,5 @@
 
 mkDerivation {
   path = "lib/libossaudio";
-  version = "9.2";
-  sha256 = "16l3bfy6dcwqnklvh3x0ps8ld1y504vf57v9rx8f9adzhb797jh0";
   meta.platforms = lib.platforms.netbsd;
 }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/libpci.nix b/pkgs/os-specific/bsd/netbsd/pkgs/libpci.nix
index b0be4a2da723a..69d1ff5accca4 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/libpci.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/libpci.nix
@@ -7,9 +7,7 @@
 mkDerivation {
   pname = "libpci";
   path = "lib/libpci";
-  version = "9.2";
-  sha256 = "+IOEO1Bw3/H3iCp3uk3bwsFZbvCqN5Ciz70irnPl8E8=";
   env.NIX_CFLAGS_COMPILE = toString [ "-I." ];
   meta.platforms = lib.platforms.netbsd;
-  extraPaths = [ sys.src ];
+  extraPaths = [ sys.path ];
 }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/libpthread/base.nix b/pkgs/os-specific/bsd/netbsd/pkgs/libpthread/base.nix
index d8ea7c553eba3..08c298c0fe5d5 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/libpthread/base.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/libpthread/base.nix
@@ -1,5 +1 @@
-{
-  path = "lib/libpthread";
-  version = "9.2";
-  sha256 = "0mlmc31k509dwfmx5s2x010wxjc44mr6y0cbmk30cfipqh8c962h";
-}
+{ path = "lib/libpthread"; }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/libpthread/package.nix b/pkgs/os-specific/bsd/netbsd/pkgs/libpthread/package.nix
index 88d392e20b4a8..28665b351f88a 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/libpthread/package.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/libpthread/package.nix
@@ -2,7 +2,6 @@
   lib,
   mkDerivation,
   headers,
-  common,
   libc,
   librt,
   sys,
@@ -18,10 +17,10 @@ mkDerivation (
     buildInputs = [ headers ];
     SHLIBINSTALLDIR = "$(out)/lib";
     extraPaths = [
-      common
-      libc.src
-      librt.src
-      sys.src
+      "common"
+      libc.path
+      librt.path
+      sys.path
     ];
     meta.platforms = lib.platforms.netbsd;
   }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/libresolv.nix b/pkgs/os-specific/bsd/netbsd/pkgs/libresolv.nix
index 24bc4f2f9e002..7db4948e6939b 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/libresolv.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/libresolv.nix
@@ -6,8 +6,6 @@
 
 mkDerivation {
   path = "lib/libresolv";
-  version = "9.2";
-  sha256 = "1am74s74mf1ynwz3p4ncjkg63f78a1zjm983q166x4sgzps15626";
   meta.platforms = lib.platforms.netbsd;
-  extraPaths = [ libc.src ];
+  extraPaths = [ libc.path ];
 }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/librpcsvc.nix b/pkgs/os-specific/bsd/netbsd/pkgs/librpcsvc.nix
index 8d757a8a84304..3f2d392ba8c5d 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/librpcsvc.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/librpcsvc.nix
@@ -14,8 +14,6 @@
 
 mkDerivation {
   path = "lib/librpcsvc";
-  version = "9.2";
-  sha256 = "1q34pfiyjbrgrdqm46jwrsqms49ly6z3b0xh1wg331zga900vq5n";
   makeFlags = defaultMakeFlags ++ [ "INCSDIR=$(out)/include/rpcsvc" ];
   meta.platforms = lib.platforms.netbsd;
   nativeBuildInputs = [
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/librt.nix b/pkgs/os-specific/bsd/netbsd/pkgs/librt.nix
index fa0229953b66b..87cd3092f1b15 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/librt.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/librt.nix
@@ -7,12 +7,7 @@
 
 mkDerivation {
   path = "lib/librt";
-  version = "9.2";
-  sha256 = "07f8mpjcqh5kig5z5sp97fg55mc4dz6aa1x5g01nv2pvbmqczxc6";
   meta.platforms = lib.platforms.netbsd;
-  extraPaths = [ libc.src ] ++ libc.extraPaths;
-  postPatch = ''
-    sed -i 's,/usr\(/include/sys/syscall.h\),${headers}\1,g' \
-      $BSDSRCDIR/lib/{libc,librt}/sys/Makefile.inc
-  '';
+  extraPaths = [ libc.path ] ++ libc.extraPaths;
+  inherit (libc) postPatch;
 }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/libterminfo.nix b/pkgs/os-specific/bsd/netbsd/pkgs/libterminfo.nix
index 6ac573d865b1a..6e7b59df2ed5e 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/libterminfo.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/libterminfo.nix
@@ -12,13 +12,10 @@
   tic,
   rsync,
   compatIfNeeded,
-  fetchNetBSD,
 }:
 
 mkDerivation {
   path = "lib/libterminfo";
-  version = "9.2";
-  sha256 = "0pq05k3dj0dfsczv07frnnji92mazmy2qqngqbx2zgqc1x251414";
   nativeBuildInputs = [
     bsdSetupHook
     netbsdSetupHook
@@ -45,7 +42,5 @@ mkDerivation {
   postInstall = ''
     make -C $BSDSRCDIR/share/terminfo $makeFlags BINDIR=$out/share install
   '';
-  extraPaths = [
-    (fetchNetBSD "share/terminfo" "9.2" "1vh9rl4w8118a9qdpblfxmv1wkpm83rm9gb4rzz5bpm56i6d7kk7")
-  ];
+  extraPaths = [ "share/terminfo" ];
 }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/libutil.nix b/pkgs/os-specific/bsd/netbsd/pkgs/libutil.nix
index fdc57df9c231e..d5bf075fc5e7d 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/libutil.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/libutil.nix
@@ -1,6 +1,5 @@
 {
   mkDerivation,
-  common,
   libc,
   sys,
   bsdSetupHook,
@@ -18,12 +17,10 @@
 
 mkDerivation {
   path = "lib/libutil";
-  version = "9.2";
-  sha256 = "02gm5a5zhh8qp5r5q5r7x8x6x50ir1i0ncgsnfwh1vnrz6mxbq7z";
   extraPaths = [
-    common
-    libc.src
-    sys.src
+    "common"
+    libc.path
+    sys.path
   ];
   nativeBuildInputs = [
     bsdSetupHook
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/locale/package.nix b/pkgs/os-specific/bsd/netbsd/pkgs/locale/package.nix
index 3c61e8517b35b..e3e06ba1a152c 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/locale/package.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/locale/package.nix
@@ -2,8 +2,6 @@
 
 mkDerivation {
   path = "usr.bin/locale";
-  version = "9.2";
-  sha256 = "0kk6v9k2bygq0wf9gbinliqzqpzs9bgxn0ndyl2wcv3hh2bmsr9p";
   patches = [ ./locale.patch ];
   env.NIX_CFLAGS_COMPILE = "-DYESSTR=__YESSTR -DNOSTR=__NOSTR";
 }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/lorder.nix b/pkgs/os-specific/bsd/netbsd/pkgs/lorder.nix
index 0b99a794b07a0..836fa7500e579 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/lorder.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/lorder.nix
@@ -11,8 +11,6 @@
 
 mkDerivation {
   path = "usr.bin/lorder";
-  version = "9.2";
-  sha256 = "0rjf9blihhm0n699vr2bg88m4yjhkbxh6fxliaay3wxkgnydjwn2";
   nativeBuildInputs = [
     bsdSetupHook
     netbsdSetupHook
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/make-rules.nix b/pkgs/os-specific/bsd/netbsd/pkgs/make-rules.nix
new file mode 100644
index 0000000000000..a1e8d1482c215
--- /dev/null
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/make-rules.nix
@@ -0,0 +1,72 @@
+{
+  lib,
+  mkDerivation,
+  stdenv,
+  bsdSetupHook,
+  netbsdSetupHook,
+  rsync,
+}:
+
+mkDerivation {
+  path = "share/mk";
+  noCC = true;
+
+  buildInputs = [ ];
+  nativeBuildInputs = [
+    bsdSetupHook
+    netbsdSetupHook
+    rsync
+  ];
+
+  dontBuild = true;
+
+  postPatch =
+    ''
+      substituteInPlace $BSDSRCDIR/share/mk/bsd.doc.mk \
+        --replace '-o ''${DOCOWN}' "" \
+        --replace '-g ''${DOCGRP}' ""
+      for mk in $BSDSRCDIR/share/mk/bsd.inc.mk $BSDSRCDIR/share/mk/bsd.kinc.mk; do
+        substituteInPlace $mk \
+          --replace '-o ''${BINOWN}' "" \
+          --replace '-g ''${BINGRP}' ""
+      done
+      substituteInPlace $BSDSRCDIR/share/mk/bsd.kmodule.mk \
+        --replace '-o ''${KMODULEOWN}' "" \
+        --replace '-g ''${KMODULEGRP}' ""
+      substituteInPlace $BSDSRCDIR/share/mk/bsd.lib.mk \
+        --replace '-o ''${LIBOWN}' "" \
+        --replace '-g ''${LIBGRP}' "" \
+        --replace '-o ''${DEBUGOWN}' "" \
+        --replace '-g ''${DEBUGGRP}' ""
+      substituteInPlace $BSDSRCDIR/share/mk/bsd.lua.mk \
+        --replace '-o ''${LIBOWN}' "" \
+        --replace '-g ''${LIBGRP}' ""
+      substituteInPlace $BSDSRCDIR/share/mk/bsd.man.mk \
+        --replace '-o ''${MANOWN}' "" \
+        --replace '-g ''${MANGRP}' ""
+      substituteInPlace $BSDSRCDIR/share/mk/bsd.nls.mk \
+        --replace '-o ''${NLSOWN}' "" \
+        --replace '-g ''${NLSGRP}' ""
+      substituteInPlace $BSDSRCDIR/share/mk/bsd.prog.mk \
+        --replace '-o ''${BINOWN}' "" \
+        --replace '-g ''${BINGRP}' "" \
+        --replace '-o ''${RUMPBINOWN}' "" \
+        --replace '-g ''${RUMPBINGRP}' "" \
+        --replace '-o ''${DEBUGOWN}' "" \
+        --replace '-g ''${DEBUGGRP}' ""
+
+       substituteInPlace $BSDSRCDIR/share/mk/bsd.lib.mk \
+         --replace '_INSTRANLIB=''${empty(PRESERVE):?-a "''${RANLIB} -t":}' '_INSTRANLIB='
+       substituteInPlace $BSDSRCDIR/share/mk/bsd.kinc.mk \
+         --replace /bin/rm rm
+    ''
+    + lib.optionalString stdenv.targetPlatform.isDarwin ''
+      substituteInPlace $BSDSRCDIR/share/mk/bsd.sys.mk \
+        --replace '-Wl,--fatal-warnings' "" \
+        --replace '-Wl,--warn-shared-textrel' ""
+    '';
+
+  installPhase = ''
+    cp -r . $out
+  '';
+}
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/make.nix b/pkgs/os-specific/bsd/netbsd/pkgs/make.nix
index 381e30916407b..9612ca7ff4893 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/make.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/make.nix
@@ -1,67 +1,22 @@
 {
   lib,
   mkDerivation,
-  fetchNetBSD,
   stdenv,
+  make-rules,
 }:
 
 mkDerivation {
   path = "usr.bin/make";
-  sha256 = "0vi73yicbmbp522qzqvd979cx6zm5jakhy77xh73c1kygf8klccs";
-  version = "9.2";
 
   postPatch =
-    ''
-      substituteInPlace $BSDSRCDIR/share/mk/bsd.doc.mk \
-        --replace '-o ''${DOCOWN}' "" \
-        --replace '-g ''${DOCGRP}' ""
-      for mk in $BSDSRCDIR/share/mk/bsd.inc.mk $BSDSRCDIR/share/mk/bsd.kinc.mk; do
-        substituteInPlace $mk \
-          --replace '-o ''${BINOWN}' "" \
-          --replace '-g ''${BINGRP}' ""
-      done
-      substituteInPlace $BSDSRCDIR/share/mk/bsd.kmodule.mk \
-        --replace '-o ''${KMODULEOWN}' "" \
-        --replace '-g ''${KMODULEGRP}' ""
-      substituteInPlace $BSDSRCDIR/share/mk/bsd.lib.mk \
-        --replace '-o ''${LIBOWN}' "" \
-        --replace '-g ''${LIBGRP}' "" \
-        --replace '-o ''${DEBUGOWN}' "" \
-        --replace '-g ''${DEBUGGRP}' ""
-      substituteInPlace $BSDSRCDIR/share/mk/bsd.lua.mk \
-        --replace '-o ''${LIBOWN}' "" \
-        --replace '-g ''${LIBGRP}' ""
-      substituteInPlace $BSDSRCDIR/share/mk/bsd.man.mk \
-        --replace '-o ''${MANOWN}' "" \
-        --replace '-g ''${MANGRP}' ""
-      substituteInPlace $BSDSRCDIR/share/mk/bsd.nls.mk \
-        --replace '-o ''${NLSOWN}' "" \
-        --replace '-g ''${NLSGRP}' ""
-      substituteInPlace $BSDSRCDIR/share/mk/bsd.prog.mk \
-        --replace '-o ''${BINOWN}' "" \
-        --replace '-g ''${BINGRP}' "" \
-        --replace '-o ''${RUMPBINOWN}' "" \
-        --replace '-g ''${RUMPBINGRP}' "" \
-        --replace '-o ''${DEBUGOWN}' "" \
-        --replace '-g ''${DEBUGGRP}' ""
-
-       # make needs this to pick up our sys make files
-       export NIX_CFLAGS_COMPILE+=" -D_PATH_DEFSYSPATH=\"$out/share/mk\""
-
-       substituteInPlace $BSDSRCDIR/share/mk/bsd.lib.mk \
-         --replace '_INSTRANLIB=''${empty(PRESERVE):?-a "''${RANLIB} -t":}' '_INSTRANLIB='
-       substituteInPlace $BSDSRCDIR/share/mk/bsd.kinc.mk \
-         --replace /bin/rm rm
-    ''
-    + lib.optionalString stdenv.isDarwin ''
-      substituteInPlace $BSDSRCDIR/share/mk/bsd.sys.mk \
-        --replace '-Wl,--fatal-warnings' "" \
-        --replace '-Wl,--warn-shared-textrel' ""
+    make-rules.postPatch
+    + ''
+      # make needs this to pick up our sys make files
+      appendToVar NIX_CFLAGS_COMPILE "-D_PATH_DEFSYSPATH=\"$out/share/mk\""
     '';
+
   postInstall = ''
     make -C $BSDSRCDIR/share/mk FILESDIR=$out/share/mk install
   '';
-  extraPaths = [
-    (fetchNetBSD "share/mk" "9.2" "0w9x77cfnm6zwy40slradzi0ip9gz80x6lk7pvnlxzsr2m5ra5sy")
-  ];
+  extraPaths = [ "share/mk" ];
 }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/makeMinimal.nix b/pkgs/os-specific/bsd/netbsd/pkgs/makeMinimal.nix
index 585c72bd17987..ad70b6b8cd072 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/makeMinimal.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/makeMinimal.nix
@@ -4,12 +4,11 @@
   netbsdSetupHook,
   rsync,
   make,
+  make-rules,
 }:
 
 mkDerivation {
   path = "tools/make";
-  sha256 = "0fh0nrnk18m613m5blrliq2aydciv51qhc0ihsj4k63incwbk90n";
-  version = "9.2";
 
   buildInputs = [ ];
   nativeBuildInputs = [
@@ -22,7 +21,9 @@ mkDerivation {
 
   postPatch = ''
     patchShebangs $COMPONENT_PATH/configure
-    ${make.postPatch}
+
+    # make needs this to pick up our sys make files
+    appendToVar NIX_CFLAGS_COMPILE "-D_PATH_DEFSYSPATH=\"$out/share/mk\""
   '';
 
   buildPhase = ''
@@ -39,10 +40,10 @@ mkDerivation {
     install -D nbmake $out/bin/nbmake
     ln -s $out/bin/nbmake $out/bin/make
     mkdir -p $out/share
-    cp -r $BSDSRCDIR/share/mk $out/share/mk
+    cp -r ${make-rules} $out/share/mk
 
     runHook postInstall
   '';
 
-  extraPaths = [ make.src ] ++ make.extraPaths;
+  extraPaths = [ make.path ];
 }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/man.nix b/pkgs/os-specific/bsd/netbsd/pkgs/man.nix
index bce5bcee66946..527c547fdaad0 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/man.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/man.nix
@@ -3,8 +3,6 @@
 mkDerivation {
   path = "share/man";
   noCC = true;
-  version = "9.2";
-  sha256 = "1l4lmj4kmg8dl86x94sr45w0xdnkz8dn4zjx0ipgr9bnq98663zl";
   # man0 generates a man.pdf using ps2pdf, but doesn't install it later,
   # so we can avoid the dependency on ghostscript
   postPatch = ''
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/misc.nix b/pkgs/os-specific/bsd/netbsd/pkgs/misc.nix
index 7f96f4d1495ad..726acf27d50b0 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/misc.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/misc.nix
@@ -3,7 +3,5 @@
 mkDerivation {
   path = "share/misc";
   noCC = true;
-  version = "9.2";
-  sha256 = "1j2cdssdx6nncv8ffj7f7ybl7m9hadjj8vm8611skqdvxnjg6nbc";
   makeFlags = defaultMakeFlags ++ [ "BINDIR=$(out)/share" ];
 }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/mkDerivation.nix b/pkgs/os-specific/bsd/netbsd/pkgs/mkDerivation.nix
index 849d2b1da3fbf..5fb082e9d17f9 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/mkDerivation.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/mkDerivation.nix
@@ -1,8 +1,11 @@
 {
   lib,
-  stdenvNoCC,
   stdenv,
-  fetchNetBSD,
+  stdenvNoCC,
+  stdenvNoLibc,
+  runCommand,
+  rsync,
+  source,
   bsdSetupHook,
   netbsdSetupHook,
   makeMinimal,
@@ -12,21 +15,37 @@
   mandoc,
   groff,
   statHook,
-  rsync,
   compatIfNeeded,
   defaultMakeFlags,
+  version,
 }:
 
 lib.makeOverridable (
   attrs:
   let
-    stdenv' = if attrs.noCC or false then stdenvNoCC else stdenv;
+    stdenv' =
+      if attrs.noCC or false then
+        stdenvNoCC
+      else if attrs.noLibc or false then
+        stdenvNoLibc
+      else
+        stdenv;
   in
   stdenv'.mkDerivation (
-    {
+    rec {
       pname = "${attrs.pname or (baseNameOf attrs.path)}-netbsd";
-      inherit (attrs) version;
-      src = fetchNetBSD attrs.path attrs.version attrs.sha256;
+      inherit version;
+      src = runCommand "${pname}-filtered-src" { nativeBuildInputs = [ rsync ]; } ''
+        for p in ${lib.concatStringsSep " " ([ attrs.path ] ++ attrs.extraPaths or [ ])}; do
+          set -x
+          path="$out/$p"
+          mkdir -p "$(dirname "$path")"
+          src_path="${source}/$p"
+          if [[ -d "$src_path" ]]; then src_path+=/; fi
+          rsync --chmod="+w" -r "$src_path" "$path"
+          set +x
+        done
+      '';
 
       extraPaths = [ ];
 
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/mknod.nix b/pkgs/os-specific/bsd/netbsd/pkgs/mknod.nix
index 5c4c172e40a7d..bf7d8b7db689b 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/mknod.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/mknod.nix
@@ -1,7 +1,3 @@
 { mkDerivation }:
 
-mkDerivation {
-  path = "sbin/mknod";
-  version = "9.2";
-  sha256 = "1d9369shzwgixz3nph991i8q5vk7hr04py3n9avbfbhzy4gndqs2";
-}
+mkDerivation { path = "sbin/mknod"; }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/mtree.nix b/pkgs/os-specific/bsd/netbsd/pkgs/mtree.nix
index 723da3ad891bc..8310941c7cb22 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/mtree.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/mtree.nix
@@ -2,7 +2,5 @@
 
 mkDerivation {
   path = "usr.sbin/mtree";
-  version = "9.2";
-  sha256 = "04p7w540vz9npvyb8g8hcf2xa05phn1y88hsyrcz3vwanvpc0yv9";
-  extraPaths = [ mknod.src ];
+  extraPaths = [ mknod.path ];
 }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/nbperf.nix b/pkgs/os-specific/bsd/netbsd/pkgs/nbperf.nix
index a23c5dddfc9f8..3b52eae96c3b2 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/nbperf.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/nbperf.nix
@@ -1,7 +1,3 @@
 { mkDerivation }:
 
-mkDerivation {
-  path = "usr.bin/nbperf";
-  version = "9.2";
-  sha256 = "1nxc302vgmjhm3yqdivqyfzslrg0vjpbss44s74rcryrl19mma9r";
-}
+mkDerivation { path = "usr.bin/nbperf"; }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/netbsdSetupHook/setup-hook.sh b/pkgs/os-specific/bsd/netbsd/pkgs/netbsdSetupHook/setup-hook.sh
index ef00ea418e535..8c3742a76534b 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/netbsdSetupHook/setup-hook.sh
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/netbsdSetupHook/setup-hook.sh
@@ -1,16 +1,6 @@
-mergeNetBSDSourceDir() {
-  # merge together all extra paths
-  # there should be a better way to do this
-  chmod -R u+w $BSDSRCDIR
-  for path in $extraPaths; do
-    rsync -Er --chmod u+w $path/ $BSDSRCDIR/
-  done
-}
-
 addNetBSDMakeFlags() {
   makeFlags="INCSDIR=${!outputDev}/include $makeFlags"
   makeFlags="MANDIR=${!outputMan}/share/man $makeFlags"
 }
 
-postUnpackHooks+=(mergeNetBSDSourceDir)
 preConfigureHooks+=(addNetBSDMakeFlags)
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/rpcgen.nix b/pkgs/os-specific/bsd/netbsd/pkgs/rpcgen.nix
index b1482d4dff112..dc6ceb7bd634d 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/rpcgen.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/rpcgen.nix
@@ -1,7 +1,3 @@
 { mkDerivation }:
 
-mkDerivation {
-  path = "usr.bin/rpcgen";
-  version = "9.2";
-  sha256 = "1kfgfx54jg98wbg0d95p0rvf4w0302v8fz724b0bdackdsrd4988";
-}
+mkDerivation { path = "usr.bin/rpcgen"; }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/source.nix b/pkgs/os-specific/bsd/netbsd/pkgs/source.nix
new file mode 100644
index 0000000000000..432de84ffb3e1
--- /dev/null
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/source.nix
@@ -0,0 +1,12 @@
+{
+  lib,
+  fetchcvs,
+  version,
+}:
+
+fetchcvs {
+  cvsRoot = ":pserver:anoncvs@anoncvs.NetBSD.org:/cvsroot";
+  module = "src";
+  tag = "netbsd-${lib.replaceStrings [ "." ] [ "-" ] version}-RELEASE";
+  sha256 = "sha256-+onT/ajWayaKALucaZBqoiEkvBBI400Fs2OCtMf/bYU=";
+}
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/stat/package.nix b/pkgs/os-specific/bsd/netbsd/pkgs/stat/package.nix
index 397b1f5303c15..522a7a1837b18 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/stat/package.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/stat/package.nix
@@ -14,8 +14,6 @@
 
 mkDerivation {
   path = "usr.bin/stat";
-  version = "9.2";
-  sha256 = "18nqwlndfc34qbbgqx5nffil37jfq9aw663ippasfxd2hlyc106x";
   nativeBuildInputs = [
     bsdSetupHook
     netbsdSetupHook
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/sys/base.nix b/pkgs/os-specific/bsd/netbsd/pkgs/sys/base.nix
index 4c140fa3bdef7..6a6f8a5032768 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/sys/base.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/sys/base.nix
@@ -14,12 +14,9 @@
   config,
   genassym,
   defaultMakeFlags,
-  common,
 }:
 {
   path = "sys";
-  version = "9.2";
-  sha256 = "03s18q8d9giipf05bx199fajc2qwikji0djz7hw63d2lya6bfnpj";
 
   # Make the build ignore linker warnings
   prePatch = ''
@@ -89,5 +86,5 @@
   '';
 
   meta.platforms = lib.platforms.netbsd;
-  extraPaths = [ common ];
+  extraPaths = [ "common" ];
 }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/sys/headers.nix b/pkgs/os-specific/bsd/netbsd/pkgs/sys/headers.nix
index 2df35efc199ad..65fabedfcb457 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/sys/headers.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/sys/headers.nix
@@ -14,7 +14,6 @@
   config,
   genassym,
   defaultMakeFlags,
-  common,
 }:
 let
   base = import ./base.nix {
@@ -34,7 +33,6 @@ let
       config
       genassym
       defaultMakeFlags
-      common
       ;
   };
 in
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/sys/package.nix b/pkgs/os-specific/bsd/netbsd/pkgs/sys/package.nix
index c8e6edab5f48f..cb691dc87855d 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/sys/package.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/sys/package.nix
@@ -14,7 +14,6 @@
   config,
   genassym,
   defaultMakeFlags,
-  common,
 }:
 let
   base = import ./base.nix {
@@ -34,7 +33,6 @@ let
       config
       genassym
       defaultMakeFlags
-      common
       ;
   };
 in
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/tic.nix b/pkgs/os-specific/bsd/netbsd/pkgs/tic.nix
index e0900652108fd..f71df930ce1c3 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/tic.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/tic.nix
@@ -11,13 +11,10 @@
   compatIfNeeded,
   defaultMakeFlags,
   libterminfo,
-  fetchNetBSD,
 }:
 
 mkDerivation {
   path = "tools/tic";
-  version = "9.2";
-  sha256 = "092y7db7k4kh2jq8qc55126r5qqvlb8lq8mhmy5ipbi36hwb4zrz";
   HOSTPROG = "tic";
   buildInputs = compatIfNeeded;
   nativeBuildInputs = [
@@ -32,8 +29,8 @@ mkDerivation {
   ];
   makeFlags = defaultMakeFlags ++ [ "TOOLDIR=$(out)" ];
   extraPaths = [
-    libterminfo.src
-    (fetchNetBSD "usr.bin/tic" "9.2" "1mwdfg7yx1g43ss378qsgl5rqhsxskqvsd2mqvrn38qw54i8v5i1")
-    (fetchNetBSD "tools/Makefile.host" "9.2" "15b4ab0n36lqj00j5lz2xs83g7l8isk3wx1wcapbrn66qmzz2sxy")
+    libterminfo.path
+    "usr.bin/tic"
+    "tools/Makefile.host"
   ];
 }
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/tsort.nix b/pkgs/os-specific/bsd/netbsd/pkgs/tsort.nix
index 9200bc57a73e0..b1ab320da0c8f 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/tsort.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/tsort.nix
@@ -11,8 +11,6 @@
 
 mkDerivation {
   path = "usr.bin/tsort";
-  version = "9.2";
-  sha256 = "1dqvf9gin29nnq3c4byxc7lfd062pg7m84843zdy6n0z63hnnwiq";
   nativeBuildInputs = [
     bsdSetupHook
     netbsdSetupHook
diff --git a/pkgs/os-specific/bsd/netbsd/pkgs/uudecode.nix b/pkgs/os-specific/bsd/netbsd/pkgs/uudecode.nix
index 7592db3eaf180..1e58df16ceeec 100644
--- a/pkgs/os-specific/bsd/netbsd/pkgs/uudecode.nix
+++ b/pkgs/os-specific/bsd/netbsd/pkgs/uudecode.nix
@@ -6,8 +6,6 @@
 
 mkDerivation {
   path = "usr.bin/uudecode";
-  version = "9.2";
-  sha256 = "00a3zmh15pg4vx6hz0kaa5mi8d2b1sj4h512d7p6wbvxq6mznwcn";
   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isLinux "-DNO_BASE64";
   NIX_LDFLAGS = lib.optional stdenv.isDarwin "-lresolv";
 }
diff --git a/pkgs/os-specific/bsd/openbsd/default.nix b/pkgs/os-specific/bsd/openbsd/default.nix
new file mode 100644
index 0000000000000..bfc88f097865f
--- /dev/null
+++ b/pkgs/os-specific/bsd/openbsd/default.nix
@@ -0,0 +1,50 @@
+{
+  lib,
+  makeScopeWithSplicing',
+  generateSplicesForMkScope,
+  buildPackages,
+}:
+
+let
+  otherSplices = generateSplicesForMkScope "openbsd";
+  buildOpenbsd = otherSplices.selfBuildHost;
+in
+
+makeScopeWithSplicing' {
+  inherit otherSplices;
+  f = (
+    self:
+    lib.packagesFromDirectoryRecursive {
+      callPackage = self.callPackage;
+      directory = ./pkgs;
+    }
+    // {
+      libc = self.callPackage ./pkgs/libc/package.nix {
+        inherit (self) csu include;
+        inherit (buildOpenbsd) makeMinimal;
+        inherit (buildPackages.netbsd)
+          install
+          gencat
+          rpcgen
+          tsort
+          ;
+      };
+      makeMinimal = buildPackages.netbsd.makeMinimal.override { inherit (self) make-rules; };
+      mkDerivation = self.callPackage ./pkgs/mkDerivation.nix {
+        inherit (buildPackages.netbsd) install;
+        inherit (buildPackages.buildPackages) rsync;
+      };
+      include = self.callPackage ./pkgs/include/package.nix {
+        inherit (buildOpenbsd) makeMinimal;
+        inherit (buildPackages.netbsd) install rpcgen mtree;
+      };
+      csu = self.callPackage ./pkgs/csu.nix {
+        inherit (self) include;
+        inherit (buildOpenbsd) makeMinimal;
+        inherit (buildPackages.netbsd) install;
+      };
+      make-rules = self.callPackage ./pkgs/make-rules/package.nix { };
+      lorder = self.callPackage ./pkgs/lorder.nix { inherit (buildPackages.netbsd) install; };
+    }
+  );
+}
diff --git a/pkgs/os-specific/bsd/openbsd/pkgs/csu.nix b/pkgs/os-specific/bsd/openbsd/pkgs/csu.nix
new file mode 100644
index 0000000000000..03a7180425684
--- /dev/null
+++ b/pkgs/os-specific/bsd/openbsd/pkgs/csu.nix
@@ -0,0 +1,23 @@
+{
+  lib,
+  mkDerivation,
+  bsdSetupHook,
+  openbsdSetupHook,
+  makeMinimal,
+  install,
+  include,
+}:
+
+mkDerivation {
+  noLibc = true;
+  path = "lib/csu";
+  nativeBuildInputs = [
+    bsdSetupHook
+    openbsdSetupHook
+    makeMinimal
+    install
+  ];
+  buildInputs = [ include ];
+  meta.platforms = lib.platforms.openbsd;
+  extraPaths = [ "libexec/ld.so" ];
+}
diff --git a/pkgs/os-specific/bsd/openbsd/pkgs/include/package.nix b/pkgs/os-specific/bsd/openbsd/pkgs/include/package.nix
new file mode 100644
index 0000000000000..481e302065fc4
--- /dev/null
+++ b/pkgs/os-specific/bsd/openbsd/pkgs/include/package.nix
@@ -0,0 +1,57 @@
+{
+  lib,
+  mkDerivation,
+  makeMinimal,
+  bsdSetupHook,
+  openbsdSetupHook,
+  install,
+  rpcgen,
+  mtree,
+  pax,
+  buildPackages,
+}:
+mkDerivation {
+  path = "include";
+  noCC = true;
+
+  extraPaths = [
+    "lib"
+    #"sys"
+    "sys/arch"
+    # LDIRS from the mmakefile
+    "sys/crypto"
+    "sys/ddb"
+    "sys/dev"
+    "sys/isofs"
+    "sys/miscfs"
+    "sys/msdosfs"
+    "sys/net"
+    "sys/netinet"
+    "sys/netinet6"
+    "sys/netmpls"
+    "sys/net80211"
+    "sys/nfs"
+    "sys/ntfs"
+    "sys/scsi"
+    "sys/sys"
+    "sys/ufs"
+    "sys/uvm"
+  ];
+
+  nativeBuildInputs = [
+    bsdSetupHook
+    install
+    makeMinimal
+    mtree
+    openbsdSetupHook
+    pax
+    rpcgen
+  ];
+
+  makeFlags = [
+    "RPCGEN_CPP=${buildPackages.stdenv.cc.cc}/bin/cpp"
+    "-B"
+  ];
+
+  headersOnly = true;
+}
diff --git a/pkgs/os-specific/bsd/openbsd/pkgs/libc/disable-librebuild.patch b/pkgs/os-specific/bsd/openbsd/pkgs/libc/disable-librebuild.patch
new file mode 100644
index 0000000000000..58633861a826f
--- /dev/null
+++ b/pkgs/os-specific/bsd/openbsd/pkgs/libc/disable-librebuild.patch
@@ -0,0 +1,12 @@
+diff --git a/lib/libc/Makefile b/lib/libc/Makefile
+index 4bb4b67fcbb..1c8a8e08e60 100644
+--- a/lib/libc/Makefile
++++ b/lib/libc/Makefile
+@@ -6,7 +6,6 @@
+ .include <bsd.own.mk>
+
+ LIB=c
+-LIBREBUILD=y
+ CLEANFILES+=tags Symbols.map
+ CFLAGS+=-Wimplicit
+ #CFLAGS+=-Werror
diff --git a/pkgs/os-specific/bsd/openbsd/pkgs/libc/netbsd-make-to-lower.patch b/pkgs/os-specific/bsd/openbsd/pkgs/libc/netbsd-make-to-lower.patch
new file mode 100644
index 0000000000000..e8d016ceead5a
--- /dev/null
+++ b/pkgs/os-specific/bsd/openbsd/pkgs/libc/netbsd-make-to-lower.patch
@@ -0,0 +1,16 @@
+NetBSD's make uses `${variable:tl}` not `${variable:L}`.
+
+diff --git a/lib/libc/Makefile b/lib/libc/Makefile
+index 4bb4b67fcbb..ffb35c196ea 100644
+--- a/lib/libc/Makefile
++++ b/lib/libc/Makefile
+@@ -11,8 +11,8 @@ CLEANFILES+=tags Symbols.map
+ CFLAGS+=-Wimplicit
+ #CFLAGS+=-Werror
+ LDADD=-nostdlib
+-.if ${COMPILER_VERSION:L} == "clang"
++.if ${COMPILER_VERSION:tl} == "clang"
+ LDADD+=-lcompiler_rt
+ .else
+ LDADD+=-lgcc
+ .endif
diff --git a/pkgs/os-specific/bsd/openbsd/pkgs/libc/package.nix b/pkgs/os-specific/bsd/openbsd/pkgs/libc/package.nix
new file mode 100644
index 0000000000000..03fd256eee9d7
--- /dev/null
+++ b/pkgs/os-specific/bsd/openbsd/pkgs/libc/package.nix
@@ -0,0 +1,121 @@
+{
+  lib,
+  stdenvNoLibc,
+  mkDerivation,
+  bsdSetupHook,
+  openbsdSetupHook,
+  makeMinimal,
+  install,
+  flex,
+  byacc,
+  gencat,
+  rpcgen,
+  csu,
+  include,
+  ctags,
+  tsort,
+  llvmPackages,
+  fetchpatch,
+}:
+
+mkDerivation {
+  noLibc = true;
+  pname = "libc";
+  path = "lib/libc";
+  extraPaths = [
+    "lib/csu/os-note-elf.h"
+    "sys/arch"
+
+    "lib/libm"
+    "lib/libpthread"
+    "lib/librpcsvc"
+    "lib/librpcsvc"
+    "lib/librthread"
+    "lib/libutil"
+  ];
+
+  patches = [
+    ./netbsd-make-to-lower.patch
+    ./disable-librebuild.patch
+    (fetchpatch {
+      url = "https://marc.info/?l=openbsd-tech&m=171575286706032&q=raw";
+      sha256 = "sha256-2fqabJZLUvXUIWe5WZ4NrTOwgQCXqH49Wo0hAPu5lu0=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    bsdSetupHook
+    openbsdSetupHook
+    makeMinimal
+    install
+    flex
+    byacc
+    gencat
+    rpcgen
+    ctags
+    tsort
+  ];
+
+  buildInputs = [
+    include
+    csu
+  ];
+
+  env.NIX_CFLAGS_COMPILE = builtins.toString [
+    "-B${csu}/lib"
+    "-Wno-error"
+  ];
+
+  # Suppress lld >= 16 undefined version errors
+  # https://github.com/freebsd/freebsd-src/commit/2ba84b4bcdd6012e8cfbf8a0d060a4438623a638
+  env.NIX_LDFLAGS = lib.optionalString (
+    stdenvNoLibc.hostPlatform.linker == "lld"
+  ) "--undefined-version";
+
+  makeFlags = [
+    "STRIP=-s" # flag to install, not command
+    "COMPILER_VERSION=clang"
+    "LIBC_TAGS=no"
+  ];
+
+  postInstall = ''
+    symlink_so () {
+      pushd $out/lib
+      ln -s "lib$1".so.* "lib$1.so"
+      popd
+    }
+
+    symlink_so c
+
+    pushd ${include}
+    find . -type d -exec mkdir -p $out/\{} \;
+    find . \( -type f -o -type l \) -exec cp -pr \{} $out/\{} \;
+    popd
+    substituteInPlace $out/include/sys/time.h --replace "defined (_LIBC)" "true"
+
+    pushd ${csu}
+    find . -type d -exec mkdir -p $out/\{} \;
+    find . \( -type f -o -type l \) -exec cp -pr \{} $out/\{} \;
+    popd
+
+    NIX_CFLAGS_COMPILE+=" -B$out/lib"
+    NIX_CFLAGS_COMPILE+=" -I$out/include"
+    NIX_LDFLAGS+=" -L$out/lib"
+
+    make -C $BSDSRCDIR/lib/libm $makeFlags
+    make -C $BSDSRCDIR/lib/libm $makeFlags install
+    symlink_so m
+
+    make -C $BSDSRCDIR/lib/librthread $makeFlags
+    make -C $BSDSRCDIR/lib/librthread $makeFlags install
+    symlink_so pthread
+
+    make -C $BSDSRCDIR/lib/librpcsvc $makeFlags
+    make -C $BSDSRCDIR/lib/librpcsvc $makeFlags install
+    symlink_so rpcsv
+
+    make -C $BSDSRCDIR/lib/libutil $makeFlags
+    make -C $BSDSRCDIR/lib/libutil $makeFlags install
+    symlink_so util
+  '';
+}
diff --git a/pkgs/os-specific/bsd/openbsd/pkgs/lorder.nix b/pkgs/os-specific/bsd/openbsd/pkgs/lorder.nix
new file mode 100644
index 0000000000000..c923a84317682
--- /dev/null
+++ b/pkgs/os-specific/bsd/openbsd/pkgs/lorder.nix
@@ -0,0 +1,21 @@
+{
+  lib,
+  mkDerivation,
+  bsdSetupHook,
+  openbsdSetupHook,
+  makeMinimal,
+  install,
+}:
+
+mkDerivation {
+  noCC = true;
+  path = "usr.bin/lorder";
+  nativeBuildInputs = [
+    bsdSetupHook
+    openbsdSetupHook
+    makeMinimal
+    install
+  ];
+
+  meta.platforms = lib.platforms.unix;
+}
diff --git a/pkgs/os-specific/bsd/openbsd/pkgs/make-rules/netbsd-make-sinclude.patch b/pkgs/os-specific/bsd/openbsd/pkgs/make-rules/netbsd-make-sinclude.patch
new file mode 100644
index 0000000000000..daaaff56e9b7d
--- /dev/null
+++ b/pkgs/os-specific/bsd/openbsd/pkgs/make-rules/netbsd-make-sinclude.patch
@@ -0,0 +1,15 @@
+NetBSD make prefers `.-include` to `sinclude` (without a dot)
+
+diff --git a/share/mk/bsd.dep.mk b/share/mk/bsd.dep.mk
+index 7019adb57f7..277064eb5c2 100644
+--- a/share/mk/bsd.dep.mk
++++ b/share/mk/bsd.dep.mk
+@@ -11,7 +11,7 @@ depend:
+ # catch22: don't include potentially bogus files we are going to clean
+ .  if !(make(clean) || make(cleandir) || make(obj))
+ .    for o in ${DEPS}
+-       sinclude $o
++.      -include "$o"
+ .    endfor
+ .  endif
+ .endif
diff --git a/pkgs/os-specific/bsd/openbsd/pkgs/make-rules/package.nix b/pkgs/os-specific/bsd/openbsd/pkgs/make-rules/package.nix
new file mode 100644
index 0000000000000..fefa1136eb76d
--- /dev/null
+++ b/pkgs/os-specific/bsd/openbsd/pkgs/make-rules/package.nix
@@ -0,0 +1,35 @@
+{
+  fetchpatch,
+  lib,
+  mkDerivation,
+}:
+
+mkDerivation {
+  path = "share/mk";
+  noCC = true;
+
+  buildInputs = [ ];
+  nativeBuildInputs = [ ];
+
+  dontBuild = true;
+
+  patches = [
+    (fetchpatch {
+      url = "https://marc.info/?l=openbsd-tech&m=171575284906018&q=raw";
+      sha256 = "sha256-bigxJGbaf9mCmFXxLVzQpnUUaEMMDfF3eZkTXVzd6B8=";
+    })
+    ./netbsd-make-sinclude.patch
+  ];
+
+  postPatch = ''
+    sed -i -E \
+      -e 's|/usr/lib|\$\{LIBDIR\}|' \
+      share/mk/bsd.prog.mk
+  '';
+
+  installPhase = ''
+    cp -r share/mk $out
+  '';
+
+  meta.platforms = lib.platforms.unix;
+}
diff --git a/pkgs/os-specific/bsd/openbsd/pkgs/mkDerivation.nix b/pkgs/os-specific/bsd/openbsd/pkgs/mkDerivation.nix
new file mode 100644
index 0000000000000..5d7b67502cf7a
--- /dev/null
+++ b/pkgs/os-specific/bsd/openbsd/pkgs/mkDerivation.nix
@@ -0,0 +1,98 @@
+{
+  lib,
+  stdenv,
+  stdenvNoCC,
+  stdenvNoLibc,
+  runCommand,
+  rsync,
+  source,
+  bsdSetupHook,
+  openbsdSetupHook,
+  makeMinimal,
+  install,
+}:
+
+lib.makeOverridable (
+  attrs:
+  let
+    stdenv' =
+      if attrs.noCC or false then
+        stdenvNoCC
+      else if attrs.noLibc or false then
+        stdenvNoLibc
+      else
+        stdenv;
+  in
+  stdenv'.mkDerivation (
+    rec {
+      pname = "${attrs.pname or (baseNameOf attrs.path)}-openbsd";
+      version = "0";
+      src = runCommand "${pname}-filtered-src" { nativeBuildInputs = [ rsync ]; } ''
+        for p in ${lib.concatStringsSep " " ([ attrs.path ] ++ attrs.extraPaths or [ ])}; do
+          set -x
+          path="$out/$p"
+          mkdir -p "$(dirname "$path")"
+          src_path="${source}/$p"
+          if [[ -d "$src_path" ]]; then src_path+=/; fi
+          rsync --chmod="+w" -r "$src_path" "$path"
+          set +x
+        done
+      '';
+
+      extraPaths = [ ];
+
+      nativeBuildInputs = [
+        bsdSetupHook
+        openbsdSetupHook
+        makeMinimal
+        install
+      ];
+
+      HOST_SH = stdenv'.shell;
+
+      makeFlags = [
+        "STRIP=-s" # flag to install, not command
+        "-B"
+      ];
+
+      MACHINE_ARCH =
+        {
+          # amd64 not x86_64 for this on unlike NetBSD
+          x86_64 = "amd64";
+          aarch64 = "arm64";
+          i486 = "i386";
+          i586 = "i386";
+          i686 = "i386";
+        }
+        .${stdenv'.hostPlatform.parsed.cpu.name} or stdenv'.hostPlatform.parsed.cpu.name;
+
+      MACHINE = MACHINE_ARCH;
+
+      MACHINE_CPU = MACHINE_ARCH;
+
+      MACHINE_CPUARCH = MACHINE_ARCH;
+
+      COMPONENT_PATH = attrs.path or null;
+
+      strictDeps = true;
+
+      meta = with lib; {
+        maintainers = with maintainers; [ ericson2314 ];
+        platforms = platforms.openbsd;
+        license = licenses.bsd2;
+      };
+    }
+    // lib.optionalAttrs stdenv'.hasCC {
+      # TODO should CC wrapper set this?
+      CPP = "${stdenv'.cc.targetPrefix}cpp";
+
+      # Since STRIP in `makeFlags` has to be a flag, not the binary itself
+      STRIPBIN = "${stdenv'.cc.bintools.targetPrefix}strip";
+    }
+    // lib.optionalAttrs (attrs.headersOnly or false) {
+      installPhase = "includesPhase";
+      dontBuild = true;
+    }
+    // attrs
+  )
+)
diff --git a/pkgs/os-specific/bsd/openbsd/pkgs/openbsdSetupHook/package.nix b/pkgs/os-specific/bsd/openbsd/pkgs/openbsdSetupHook/package.nix
new file mode 100644
index 0000000000000..61147954812fd
--- /dev/null
+++ b/pkgs/os-specific/bsd/openbsd/pkgs/openbsdSetupHook/package.nix
@@ -0,0 +1,3 @@
+{ makeSetupHook }:
+
+makeSetupHook { name = "openbsd-setup-hook"; } ./setup-hook.sh
diff --git a/pkgs/os-specific/bsd/openbsd/pkgs/openbsdSetupHook/setup-hook.sh b/pkgs/os-specific/bsd/openbsd/pkgs/openbsdSetupHook/setup-hook.sh
new file mode 100644
index 0000000000000..50e79bc2928a9
--- /dev/null
+++ b/pkgs/os-specific/bsd/openbsd/pkgs/openbsdSetupHook/setup-hook.sh
@@ -0,0 +1,21 @@
+addOpenBSDMakeFlags() {
+  makeFlags="INCSDIR=${!outputDev}/include $makeFlags"
+  makeFlags="MANDIR=${!outputMan}/share/man $makeFlags"
+}
+
+fixOpenBSDInstallDirs() {
+  find "$BSDSRCDIR" -name Makefile -exec \
+    sed -i -E \
+      -e 's|/usr/include|${INCSDIR}|' \
+      -e 's|/usr/bin|${BINDIR}|' \
+      -e 's|/usr/lib|${LIBDIR}|' \
+      {} \;
+}
+
+setBinownBingrp() {
+  export BINOWN=$(id -u)
+  export BINGRP=$(id -g)
+}
+
+preConfigureHooks+=(addOpenBSDMakeFlags)
+postPatchHooks+=(fixOpenBSDInstallDirs setBinownBingrp)
diff --git a/pkgs/os-specific/bsd/openbsd/pkgs/source.nix b/pkgs/os-specific/bsd/openbsd/pkgs/source.nix
new file mode 100644
index 0000000000000..359c3f2fbc919
--- /dev/null
+++ b/pkgs/os-specific/bsd/openbsd/pkgs/source.nix
@@ -0,0 +1,8 @@
+{ fetchcvs }:
+
+fetchcvs {
+  cvsRoot = "anoncvs@anoncvs.fr.openbsd.org/cvs";
+  module = "src";
+  tag = "OPENBSD_7_5";
+  sha256 = "sha256-hzdATew6h/FQV72SWtg3YvUXdPoGjm2SoUS7m3c3fSU=";
+}
diff --git a/pkgs/os-specific/darwin/apparency/default.nix b/pkgs/os-specific/darwin/apparency/default.nix
index 0bae99c14b37e..d5f9a7be172b1 100644
--- a/pkgs/os-specific/darwin/apparency/default.nix
+++ b/pkgs/os-specific/darwin/apparency/default.nix
@@ -4,13 +4,18 @@
 , undmg
 }:
 
+let
+  snapshot = "20240601172844";
+in
 stdenv.mkDerivation {
   pname = "apparency";
-  version = "1.5.1";
+  version = "2.0";
 
   src = fetchurl {
-    url = "https://web.archive.org/web/20230815073821/https://www.mothersruin.com/software/downloads/Apparency.dmg";
-    hash = "sha256-JpaBdlt8kTNFzK/yZVZ+ZFJ3DnPQbogJC7QBmtSVkoQ=";
+   # Use externally archived download URL because
+   # upstream does not provide stable URLs for versioned releases
+    url = "https://web.archive.org/web/${snapshot}/https://www.mothersruin.com/software/downloads/Apparency.dmg";
+    hash = "sha256-XKxWxqfxy9AQneILLrN9XqLt4/k2N8yumZ5mrSvczFk=";
   };
 
   nativeBuildInputs = [ undmg ];
@@ -28,7 +33,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "The App That Opens Apps";
+    description = "App That Opens Apps";
     homepage = "https://www.mothersruin.com/software/Apparency/";
     license = lib.licenses.unfreeRedistributable;
     maintainers = with lib.maintainers; [ Enzime ];
diff --git a/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix b/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix
index 87fb8512fb646..206f46125b9bf 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix
+++ b/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix
@@ -167,7 +167,7 @@ appleDerivation' stdenv {
   appleHeaders = builtins.readFile ./headers.txt;
 
   meta = with lib; {
-    description = "The Mac OS libc/libSystem (tapi library with pure headers)";
+    description = "Mac OS libc/libSystem (tapi library with pure headers)";
     maintainers = with maintainers; [ copumpkin gridaphobe ];
     platforms   = platforms.darwin;
     license     = licenses.apple-psl20;
diff --git a/pkgs/os-specific/darwin/apple-source-releases/default.nix b/pkgs/os-specific/darwin/apple-source-releases/default.nix
index c34268fd41927..3eae8749c4e4d 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/default.nix
+++ b/pkgs/os-specific/darwin/apple-source-releases/default.nix
@@ -104,7 +104,6 @@ let
     };
     "osx-10.9.5" = {
       launchd            = "842.92.1";
-      libauto            = "185.5";
       Libc               = "997.90.3"; # We use this, but not from here
       Libsystem          = "1197.1.1";
       Security           = "55471.14.18";
@@ -259,7 +258,6 @@ developerToolsPackages_11_3_1 // macosPackages_11_0_1 // {
     eap8021x        = applePackage "eap8021x"          "osx-10.11.6"     "sha256-54P3+YhVhOanoZQoqswDnr/GbR/AdEERse135nyuIQo=" {};
     IOKit           = applePackage "IOKit"             "osx-10.11.6"     "" { inherit IOKitSrcs; };
     launchd         = applePackage "launchd"           "osx-10.9.5"      "sha256-dmV0UK7hG9wvTr+F4Z47nCFXcVZCV+cQ46WbE0DBtJs=" {};
-    libauto         = applePackage "libauto"           "osx-10.9.5"      "sha256-GnRcKq8jRbEsI/PSDphwUjWtpEIEcnLlQL9yxYLgSsU=" {};
     Libc            = applePackage "Libc"              "osx-10.12.6"     "sha256-LSsL7S3KFgGU9qjK4atu/4wBh8ftgfsk6JOvg+ZTZOY=" {
       Libc_10-9 = fetchFromGitHub {
         owner  = "apple-oss-distributions";
diff --git a/pkgs/os-specific/darwin/apple-source-releases/libauto/auto_dtrace.h b/pkgs/os-specific/darwin/apple-source-releases/libauto/auto_dtrace.h
deleted file mode 100644
index bf367a3cabb3f..0000000000000
--- a/pkgs/os-specific/darwin/apple-source-releases/libauto/auto_dtrace.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Generated by dtrace(1M).
- */
-
-#ifndef _AUTO_DTRACE_H
-#define _AUTO_DTRACE_H
-
-#include <unistd.h>
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-#define GARBAGE_COLLECTION_STABILITY "___dtrace_stability$garbage_collection$v1$1_1_0_1_1_0_1_1_0_1_1_0_1_1_0"
-
-#define GARBAGE_COLLECTION_TYPEDEFS "___dtrace_typedefs$garbage_collection$v2$6175746f5f636f6c6c656374696f6e5f70686173655f74$6175746f5f636f6c6c656374696f6e5f747970655f74$6d616c6c6f635f7a6f6e655f74"
-
-#if !defined(DTRACE_PROBES_DISABLED) || !DTRACE_PROBES_DISABLED
-
-#define GARBAGE_COLLECTION_AUTO_BLOCK_LOST_THREAD_LOCALITY(arg0, arg1) \
-do { \
-  __asm__ volatile(".reference " GARBAGE_COLLECTION_TYPEDEFS); \
-  __dtrace_probe$garbage_collection$auto_block_lost_thread_locality$v1$766f6964202a$75696e7436345f74(arg0, arg1); \
-  __asm__ volatile(".reference " GARBAGE_COLLECTION_STABILITY); \
-} while (0)
-#define GARBAGE_COLLECTION_AUTO_BLOCK_LOST_THREAD_LOCALITY_ENABLED() \
-  ({ int _r = __dtrace_isenabled$garbage_collection$auto_block_lost_thread_locality$v1(); \
-    __asm__ volatile(""); \
-    _r; })
-#define GARBAGE_COLLECTION_AUTO_REFCOUNT_ONE_ALLOCATION(arg0) \
-do { \
-  __asm__ volatile(".reference " GARBAGE_COLLECTION_TYPEDEFS); \
-  __dtrace_probe$garbage_collection$auto_refcount_one_allocation$v1$75696e7436345f74(arg0); \
-  __asm__ volatile(".reference " GARBAGE_COLLECTION_STABILITY); \
-} while (0)
-#define GARBAGE_COLLECTION_AUTO_REFCOUNT_ONE_ALLOCATION_ENABLED() \
-  ({ int _r = __dtrace_isenabled$garbage_collection$auto_refcount_one_allocation$v1(); \
-    __asm__ volatile(""); \
-    _r; })
-#define GARBAGE_COLLECTION_COLLECTION_BEGIN(arg0, arg1) \
-do { \
-  __asm__ volatile(".reference " GARBAGE_COLLECTION_TYPEDEFS); \
-  __dtrace_probe$garbage_collection$collection_begin$v1$6d616c6c6f635f7a6f6e655f74202a$6175746f5f636f6c6c656374696f6e5f747970655f74(arg0, arg1); \
-  __asm__ volatile(".reference " GARBAGE_COLLECTION_STABILITY); \
-} while (0)
-#define GARBAGE_COLLECTION_COLLECTION_BEGIN_ENABLED() \
-  ({ int _r = __dtrace_isenabled$garbage_collection$collection_begin$v1(); \
-    __asm__ volatile(""); \
-    _r; })
-#define GARBAGE_COLLECTION_COLLECTION_END(arg0, arg1, arg2, arg3, arg4) \
-do { \
-  __asm__ volatile(".reference " GARBAGE_COLLECTION_TYPEDEFS); \
-  __dtrace_probe$garbage_collection$collection_end$v1$6d616c6c6f635f7a6f6e655f74202a$75696e7436345f74$75696e7436345f74$75696e7436345f74$75696e7436345f74(arg0, arg1, arg2, arg3, arg4); \
-  __asm__ volatile(".reference " GARBAGE_COLLECTION_STABILITY); \
-} while (0)
-#define GARBAGE_COLLECTION_COLLECTION_END_ENABLED() \
-  ({ int _r = __dtrace_isenabled$garbage_collection$collection_end$v1(); \
-    __asm__ volatile(""); \
-    _r; })
-#define GARBAGE_COLLECTION_COLLECTION_PHASE_BEGIN(arg0, arg1) \
-do { \
-  __asm__ volatile(".reference " GARBAGE_COLLECTION_TYPEDEFS); \
-  __dtrace_probe$garbage_collection$collection_phase_begin$v1$6d616c6c6f635f7a6f6e655f74202a$6175746f5f636f6c6c656374696f6e5f70686173655f74(arg0, arg1); \
-  __asm__ volatile(".reference " GARBAGE_COLLECTION_STABILITY); \
-} while (0)
-#define GARBAGE_COLLECTION_COLLECTION_PHASE_BEGIN_ENABLED() \
-  ({ int _r = __dtrace_isenabled$garbage_collection$collection_phase_begin$v1(); \
-    __asm__ volatile(""); \
-    _r; })
-#define GARBAGE_COLLECTION_COLLECTION_PHASE_END(arg0, arg1, arg2, arg3) \
-do { \
-  __asm__ volatile(".reference " GARBAGE_COLLECTION_TYPEDEFS); \
-  __dtrace_probe$garbage_collection$collection_phase_end$v1$6d616c6c6f635f7a6f6e655f74202a$6175746f5f636f6c6c656374696f6e5f70686173655f74$75696e7436345f74$75696e7436345f74(arg0, arg1, arg2, arg3); \
-  __asm__ volatile(".reference " GARBAGE_COLLECTION_STABILITY); \
-} while (0)
-#define GARBAGE_COLLECTION_COLLECTION_PHASE_END_ENABLED() \
-  ({ int _r = __dtrace_isenabled$garbage_collection$collection_phase_end$v1(); \
-    __asm__ volatile(""); \
-    _r; })
-
-
-extern void __dtrace_probe$garbage_collection$auto_block_lost_thread_locality$v1$766f6964202a$75696e7436345f74(const void *, uint64_t);
-extern int __dtrace_isenabled$garbage_collection$auto_block_lost_thread_locality$v1(void);
-extern void __dtrace_probe$garbage_collection$auto_refcount_one_allocation$v1$75696e7436345f74(uint64_t);
-extern int __dtrace_isenabled$garbage_collection$auto_refcount_one_allocation$v1(void);
-extern void __dtrace_probe$garbage_collection$collection_begin$v1$6d616c6c6f635f7a6f6e655f74202a$6175746f5f636f6c6c656374696f6e5f747970655f74(const malloc_zone_t *, auto_collection_type_t);
-extern int __dtrace_isenabled$garbage_collection$collection_begin$v1(void);
-extern void __dtrace_probe$garbage_collection$collection_end$v1$6d616c6c6f635f7a6f6e655f74202a$75696e7436345f74$75696e7436345f74$75696e7436345f74$75696e7436345f74(const malloc_zone_t *, uint64_t, uint64_t, uint64_t, uint64_t);
-extern int __dtrace_isenabled$garbage_collection$collection_end$v1(void);
-extern void __dtrace_probe$garbage_collection$collection_phase_begin$v1$6d616c6c6f635f7a6f6e655f74202a$6175746f5f636f6c6c656374696f6e5f70686173655f74(const malloc_zone_t *, auto_collection_phase_t);
-extern int __dtrace_isenabled$garbage_collection$collection_phase_begin$v1(void);
-extern void __dtrace_probe$garbage_collection$collection_phase_end$v1$6d616c6c6f635f7a6f6e655f74202a$6175746f5f636f6c6c656374696f6e5f70686173655f74$75696e7436345f74$75696e7436345f74(const malloc_zone_t *, auto_collection_phase_t, uint64_t, uint64_t);
-extern int __dtrace_isenabled$garbage_collection$collection_phase_end$v1(void);
-
-#else
-
-#define GARBAGE_COLLECTION_AUTO_BLOCK_LOST_THREAD_LOCALITY(arg0, arg1) \
-do { \
-  } while (0)
-#define GARBAGE_COLLECTION_AUTO_BLOCK_LOST_THREAD_LOCALITY_ENABLED() (0)
-#define GARBAGE_COLLECTION_AUTO_REFCOUNT_ONE_ALLOCATION(arg0) \
-do { \
-  } while (0)
-#define GARBAGE_COLLECTION_AUTO_REFCOUNT_ONE_ALLOCATION_ENABLED() (0)
-#define GARBAGE_COLLECTION_COLLECTION_BEGIN(arg0, arg1) \
-do { \
-  } while (0)
-#define GARBAGE_COLLECTION_COLLECTION_BEGIN_ENABLED() (0)
-#define GARBAGE_COLLECTION_COLLECTION_END(arg0, arg1, arg2, arg3, arg4) \
-do { \
-  } while (0)
-#define GARBAGE_COLLECTION_COLLECTION_END_ENABLED() (0)
-#define GARBAGE_COLLECTION_COLLECTION_PHASE_BEGIN(arg0, arg1) \
-do { \
-  } while (0)
-#define GARBAGE_COLLECTION_COLLECTION_PHASE_BEGIN_ENABLED() (0)
-#define GARBAGE_COLLECTION_COLLECTION_PHASE_END(arg0, arg1, arg2, arg3) \
-do { \
-  } while (0)
-#define GARBAGE_COLLECTION_COLLECTION_PHASE_END_ENABLED() (0)
-
-#endif /* !defined(DTRACE_PROBES_DISABLED) || !DTRACE_PROBES_DISABLED */
-
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif  /* _AUTO_DTRACE_H */
diff --git a/pkgs/os-specific/darwin/apple-source-releases/libauto/default.nix b/pkgs/os-specific/darwin/apple-source-releases/libauto/default.nix
deleted file mode 100644
index 8a551dcc892ca..0000000000000
--- a/pkgs/os-specific/darwin/apple-source-releases/libauto/default.nix
+++ /dev/null
@@ -1,86 +0,0 @@
-{ lib, stdenv, appleDerivation, libdispatch, Libsystem }:
-
-appleDerivation {
-  # these are included in the pure libc
-  buildInputs = lib.optionals stdenv.cc.nativeLibc [ libdispatch Libsystem ];
-
-  buildPhase = ''
-    cp ${./auto_dtrace.h} ./auto_dtrace.h
-
-    substituteInPlace ThreadLocalCollector.h --replace SubZone.h Subzone.h
-
-    substituteInPlace auto_zone.cpp \
-      --replace "#include <msgtracer_client.h>" ''$'#include <asl.h>\nstatic void msgtracer_log_with_keys(...) { };'
-
-    substituteInPlace Definitions.h \
-      --replace "#include <System/pthread_machdep.h>" "" \
-      --replace 'void * const, void * const' 'void * const, void *'
-
-    # getspecific_direct is more efficient, but this should be equivalent...
-    substituteInPlace Zone.h \
-      --replace "_pthread_getspecific_direct" "pthread_getspecific" \
-      --replace "_pthread_has_direct_tsd()" "0" \
-      --replace "__PTK_FRAMEWORK_GC_KEY0" "110" \
-      --replace "__PTK_FRAMEWORK_GC_KEY1" "111" \
-      --replace "__PTK_FRAMEWORK_GC_KEY2" "112" \
-      --replace "__PTK_FRAMEWORK_GC_KEY3" "113" \
-      --replace "__PTK_FRAMEWORK_GC_KEY4" "114" \
-      --replace "__PTK_FRAMEWORK_GC_KEY5" "115" \
-      --replace "__PTK_FRAMEWORK_GC_KEY6" "116" \
-      --replace "__PTK_FRAMEWORK_GC_KEY7" "117" \
-      --replace "__PTK_FRAMEWORK_GC_KEY8" "118" \
-      --replace "__PTK_FRAMEWORK_GC_KEY9" "119"
-
-    substituteInPlace auto_zone.cpp \
-      --replace "__PTK_FRAMEWORK_GC_KEY9" "119" \
-      --replace "__PTK_FRAMEWORK_GC_KEY0" "110" \
-
-    substituteInPlace Zone.cpp \
-      --replace "_pthread_getspecific_direct" "pthread_getspecific" \
-      --replace "__PTK_FRAMEWORK_GC_KEY9" "119" \
-      --replace "__PTK_FRAMEWORK_GC_KEY0" "110" \
-      --replace "__PTK_LIBDISPATCH_KEY0"  "20" \
-      --replace "struct auto_zone_cursor {" ''$'extern "C" int pthread_key_init_np(int, void (*)(void *));\nstruct auto_zone_cursor {'
-
-    substituteInPlace auto_impl_utilities.c \
-      --replace "#   include <CrashReporterClient.h>" "void CRSetCrashLogMessage(void *msg) { };"
-
-    c++ -I. -O3 -c -Wno-c++11-extensions auto_zone.cpp
-    cc  -I. -O3 -Iauto_tester -c auto_impl_utilities.c
-    c++ -I. -O3 -c auto_weak.cpp
-    c++ -I. -O3 -c Admin.cpp
-    c++ -I. -O3 -c Bitmap.cpp
-    c++ -I. -O3 -c Definitions.cpp
-    c++ -I. -O3 -c Environment.cpp
-    c++ -I. -O3 -c Large.cpp
-    c++ -I. -O3 -c Region.cpp
-    c++ -I. -O3 -c Subzone.cpp
-    c++ -I. -O3 -c WriteBarrier.cpp
-    c++ -I. -O3 -c Zone.cpp
-    c++ -I. -O3 -c Thread.cpp
-    c++ -I. -O3 -c InUseEnumerator.cpp
-    c++ -I. -O3 -c auto_gdb_interface.cpp
-    c++ -I. -O3 -c PointerHash.cpp
-    c++ -I. -O3 -c ThreadLocalCollector.cpp
-    c++ -I. -O3 -c ZoneDump.cpp
-    c++ -I. -O3 -c ZoneCollectors.cpp
-    c++ -I. -O3 -c SubzonePartition.cpp
-    c++ -I. -O3 -c ZoneCollectionChecking.cpp
-    c++ -I. -O3 -c ZoneCompaction.cpp
-    c++ -I. -O3 -c BlockRef.cpp
-
-    c++ -Wl,-no_dtrace_dof --stdlib=libc++ -dynamiclib -install_name $out/lib/libauto.dylib -o libauto.dylib *.o
-  '';
-
-  installPhase = ''
-    mkdir -p $out/lib $out/include
-    cp auto_zone.h auto_weak.h auto_tester/auto_tester.h auto_gdb_interface.h $out/include
-    cp libauto.dylib $out/lib
-  '';
-
-  meta = {
-    # libauto is only used by objc4/pure.nix , but objc4 is now using the impure approach, so we don't bother to fix this.
-    broken = true;
-    platforms = lib.platforms.darwin;
-  };
-}
diff --git a/pkgs/os-specific/darwin/apple-source-releases/objc4/pure.nix b/pkgs/os-specific/darwin/apple-source-releases/objc4/pure.nix
deleted file mode 100644
index 6a0c819a0a31a..0000000000000
--- a/pkgs/os-specific/darwin/apple-source-releases/objc4/pure.nix
+++ /dev/null
@@ -1,118 +0,0 @@
-{ stdenv, fetchapplesource, libauto, launchd, libc_old, libunwind }:
-
-stdenv.mkDerivation rec {
-  version = "551.1";
-  pname = "objc4";
-
-  src = fetchapplesource {
-    inherit version;
-    name   = "objc4";
-    sha256 = "1jrdb6yyb5jwwj27c1r0nr2y2ihqjln8ynj61mpkvp144c1cm5bg";
-  };
-
-  patches = [ ./spinlocks.patch ];
-
-  buildInputs = [ libauto launchd libc_old libunwind ];
-
-  buildPhase = ''
-    cp ${./objc-probes.h} runtime/objc-probes.h
-
-    mkdir -p build/include/objc
-
-    cp runtime/hashtable.h               build/include/objc/hashtable.h
-    cp runtime/OldClasses.subproj/List.h build/include/objc/List.h
-    cp runtime/hashtable2.h              build/include/objc/hashtable2.h
-    cp runtime/message.h                 build/include/objc/message.h
-    cp runtime/objc-api.h                build/include/objc/objc-api.h
-    cp runtime/objc-auto.h               build/include/objc/objc-auto.h
-    cp runtime/objc-class.h              build/include/objc/objc-class.h
-    cp runtime/objc-exception.h          build/include/objc/objc-exception.h
-    cp runtime/objc-load.h               build/include/objc/objc-load.h
-    cp runtime/objc-sync.h               build/include/objc/objc-sync.h
-    cp runtime/objc.h                    build/include/objc/objc.h
-    cp runtime/objc-runtime.h            build/include/objc/objc-runtime.h
-    cp runtime/Object.h                  build/include/objc/Object.h
-    cp runtime/Protocol.h                build/include/objc/Protocol.h
-    cp runtime/runtime.h                 build/include/objc/runtime.h
-    cp runtime/NSObject.h                build/include/objc/NSObject.h
-    cp runtime/NSObjCRuntime.h           build/include/objc/NSObjCRuntime.h
-
-    # These would normally be in local/include but we don't do local, so they're
-    # going in with the others
-    cp runtime/maptable.h                build/include/objc/maptable.h
-    cp runtime/objc-abi.h                build/include/objc/objc-abi.h
-    cp runtime/objc-auto-dump.h          build/include/objc/objc-auto-dump.h
-    cp runtime/objc-gdb.h                build/include/objc/objc-gdb.h
-    cp runtime/objc-internal.h           build/include/objc/objc-internal.h
-
-    cc -o markgc markgc.c
-
-    FLAGS="-Wno-deprecated-register -Wno-unknown-pragmas -Wno-deprecated-objc-isa-usage -Wno-invalid-offsetof -Wno-inline-new-delete  -Wno-cast-of-sel-type -Iruntime -Ibuild/include -Iruntime/Accessors.subproj -D_LIBCPP_VISIBLE= -DOS_OBJECT_USE_OBJC=0 -DNDEBUG=1"
-
-    cc -std=gnu++11 $FLAGS -c runtime/hashtable2.mm
-    cc -std=gnu++11 $FLAGS -c runtime/maptable.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-auto.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-cache.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-class-old.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-class.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-errors.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-exception.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-file.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-initialize.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-layout.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-load.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-loadmethod.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-lockdebug.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-runtime-new.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-runtime-old.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-runtime.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-sel-set.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-sel.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-sync.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-typeencoding.mm
-    cc -std=gnu++11 $FLAGS -c runtime/Object.mm
-    cc -std=gnu++11 $FLAGS -c runtime/Protocol.mm
-
-    cc -std=gnu++11 $FLAGS -c runtime/objc-references.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-os.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-auto-dump.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-file-old.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-block-trampolines.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-externalref.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-weak.mm
-    cc -std=gnu++11 $FLAGS -c runtime/NSObject.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-opt.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-cache-old.mm
-    cc -std=gnu++11 $FLAGS -c runtime/objc-sel-old.mm
-
-    cc -std=gnu++11 $FLAGS -c runtime/Accessors.subproj/objc-accessors.mm
-
-    cc $FLAGS -c runtime/objc-sel-table.s
-
-    cc $FLAGS -c runtime/OldClasses.subproj/List.m
-    cc $FLAGS -c runtime/Messengers.subproj/objc-msg-arm.s
-    cc $FLAGS -c runtime/Messengers.subproj/objc-msg-i386.s
-    cc $FLAGS -c runtime/Messengers.subproj/objc-msg-x86_64.s
-    cc $FLAGS -c runtime/Messengers.subproj/objc-msg-simulator-i386.s
-
-    cc $FLAGS -c runtime/a1a2-blocktramps-i386.s
-    cc $FLAGS -c runtime/a2a3-blocktramps-i386.s
-
-    cc $FLAGS -c runtime/a1a2-blocktramps-x86_64.s
-    cc $FLAGS -c runtime/a2a3-blocktramps-x86_64.s
-
-    cc $FLAGS -c runtime/a1a2-blocktramps-arm.s
-    cc $FLAGS -c runtime/a2a3-blocktramps-arm.s
-
-    c++ -Wl,-no_dtrace_dof --stdlib=libc++ -dynamiclib -lauto -install_name $out/lib/libobjc.dylib -o libobjc.dylib *.o
-
-    ./markgc -p libobjc.dylib
-  '';
-
-  installPhase = ''
-    mkdir -p $out/include $out/lib
-
-    mv build/include/objc $out/include
-    mv libobjc.dylib $out/lib
-  '';
-}
diff --git a/pkgs/os-specific/darwin/coconutbattery/default.nix b/pkgs/os-specific/darwin/coconutbattery/default.nix
index 4850b2b4c04ed..d3e67c96cfddf 100644
--- a/pkgs/os-specific/darwin/coconutbattery/default.nix
+++ b/pkgs/os-specific/darwin/coconutbattery/default.nix
@@ -27,7 +27,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "The standard for battery reading since 2005";
+    description = "Standard for battery reading since 2005";
     longDescription = ''
       With coconutBattery you are always aware of your current battery health.
       It shows you live information about the battery quality in your Mac, iPhone and iPad.
diff --git a/pkgs/os-specific/darwin/dockutil/default.nix b/pkgs/os-specific/darwin/dockutil/default.nix
index 5e4187f07280f..64a8a98443886 100644
--- a/pkgs/os-specific/darwin/dockutil/default.nix
+++ b/pkgs/os-specific/darwin/dockutil/default.nix
@@ -1,37 +1,99 @@
-{ lib, stdenv, fetchurl, libarchive, p7zip }:
-stdenv.mkDerivation rec {
-  pname = "dockutil";
-  version = "3.0.2";
-
-  src = fetchurl {
-    url =
-      "https://github.com/kcrawford/dockutil/releases/download/${version}/dockutil-${version}.pkg";
-    sha256 = "175137ea747e83ed221d60b18b712b256ed31531534cde84f679487d337668fd";
-  };
-
-  dontBuild = true;
-
-  nativeBuildInputs = [ libarchive p7zip ];
+{ lib
+, stdenv
+, stdenvNoCC
+, fetchFromGitHub
+, fetchurl
+, swift
+, swiftpm
+, swiftpm2nix
+, swiftPackages
+, darwin
+, libarchive
+, p7zip
+# Building from source on x86_64 fails (among other things) due to:
+# error: cannot load underlying module for 'Darwin'
+, fromSource ? (stdenv.system != "x86_64-darwin")
+}:
 
-  unpackPhase = ''
-    7z x $src
-    bsdtar -xf Payload~
-  '';
+let
+  generated = swiftpm2nix.helpers ./generated;
 
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/bin
-    mkdir -p $out/usr/local/bin
-    install -Dm755 usr/local/bin/dockutil -t $out/usr/local/bin
-    ln -rs $out/usr/local/bin/dockutil $out/bin/dockutil
-    runHook postInstall
-  '';
+  pname = "dockutil";
+  version = "3.1.3";
 
   meta = with lib; {
     description = "Tool for managing dock items";
     homepage = "https://github.com/kcrawford/dockutil";
     license = licenses.asl20;
     maintainers = with maintainers; [ tboerger ];
+    mainProgram = "dockutil";
     platforms = platforms.darwin;
   };
-}
+
+  buildFromSource = swiftPackages.stdenv.mkDerivation (finalAttrs: {
+    inherit pname version meta;
+
+    src = fetchFromGitHub {
+      owner = "kcrawford";
+      repo = "dockutil";
+      rev = finalAttrs.version;
+      hash = "sha256-mmk4vVZhq4kt05nI/dDM1676FDWyf4wTSwY2YzqKsLU=";
+    };
+
+    postPatch = ''
+      # Patch sources so that they build with Swift CoreFoundation
+      # which differs ever so slightly from Apple's implementation.
+      substituteInPlace Sources/DockUtil/DockUtil.swift \
+        --replace-fail "URL(filePath:" \
+                       "URL(fileURLWithPath:" \
+        --replace-fail "path(percentEncoded: false)" \
+                       "path"
+    '';
+
+    nativeBuildInputs = [ swift swiftpm ];
+
+    buildInputs = with darwin.apple_sdk.frameworks; [ Cocoa ];
+
+    configurePhase = generated.configure;
+
+    installPhase = ''
+      runHook preInstall
+      install -Dm755 .build/${stdenv.hostPlatform.darwinArch}-apple-macosx/release/dockutil -t $out/bin
+      runHook postInstall
+    '';
+  });
+
+  installBinary = stdenvNoCC.mkDerivation (finalAttrs: {
+    inherit pname version;
+
+    src = fetchurl {
+      url = "https://github.com/kcrawford/dockutil/releases/download/${finalAttrs.version}/dockutil-${finalAttrs.version}.pkg";
+      hash = "sha256-9g24Jz/oDXxIJFiL7bU4pTh2dcORftsAENq59S0/JYI=";
+    };
+
+    dontPatch = true;
+    dontConfigure = true;
+    dontBuild = true;
+
+    nativeBuildInputs = [ libarchive p7zip ];
+
+    unpackPhase = ''
+      7z x $src
+      bsdtar -xf Payload~
+    '';
+
+    installPhase = ''
+      runHook preInstall
+      mkdir -p $out/bin
+      install -Dm755 usr/local/bin/dockutil -t $out/bin
+      runHook postInstall
+    '';
+
+    meta = meta // {
+      sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
+    };
+  });
+in
+if fromSource
+  then buildFromSource
+  else installBinary
diff --git a/pkgs/os-specific/darwin/dockutil/generated/default.nix b/pkgs/os-specific/darwin/dockutil/generated/default.nix
new file mode 100644
index 0000000000000..32ffc68e4d2c9
--- /dev/null
+++ b/pkgs/os-specific/darwin/dockutil/generated/default.nix
@@ -0,0 +1,7 @@
+# This file was generated by swiftpm2nix.
+{
+  workspaceStateFile = ./workspace-state.json;
+  hashes = {
+    "swift-argument-parser" = "1fpdgivmwdszggvx0ligs3vidv9kpp9777v649hs8w7vpcifc2ji";
+  };
+}
diff --git a/pkgs/os-specific/darwin/dockutil/generated/workspace-state.json b/pkgs/os-specific/darwin/dockutil/generated/workspace-state.json
new file mode 100644
index 0000000000000..e24a74517af07
--- /dev/null
+++ b/pkgs/os-specific/darwin/dockutil/generated/workspace-state.json
@@ -0,0 +1,25 @@
+{
+  "object": {
+    "artifacts": [],
+    "dependencies": [
+      {
+        "basedOn": null,
+        "packageRef": {
+          "identity": "swift-argument-parser",
+          "kind": "remoteSourceControl",
+          "location": "https://github.com/apple/swift-argument-parser.git",
+          "name": "swift-argument-parser"
+        },
+        "state": {
+          "checkoutState": {
+            "revision": "82905286cc3f0fa8adc4674bf49437cab65a8373",
+            "version": "1.1.1"
+          },
+          "name": "sourceControlCheckout"
+        },
+        "subpath": "swift-argument-parser"
+      }
+    ]
+  },
+  "version": 6
+}
diff --git a/pkgs/os-specific/darwin/duti/default.nix b/pkgs/os-specific/darwin/duti/default.nix
index db0b1e1dcbae1..033591c1fec35 100644
--- a/pkgs/os-specific/darwin/duti/default.nix
+++ b/pkgs/os-specific/darwin/duti/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A command-line tool to select default applications for document types and URL schemes on Mac OS X";
+    description = "Command-line tool to select default applications for document types and URL schemes on Mac OS X";
     longDescription = ''
       duti is a command-line utility capable of setting default applications for
       various document types on Mac OS X, using Apple's Uniform Type Identifiers. A
diff --git a/pkgs/os-specific/darwin/iproute2mac/default.nix b/pkgs/os-specific/darwin/iproute2mac/default.nix
index a7f1f0b773d87..c7582de3352a1 100644
--- a/pkgs/os-specific/darwin/iproute2mac/default.nix
+++ b/pkgs/os-specific/darwin/iproute2mac/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/brona/iproute2mac";
-    description = "CLI wrapper for basic network utilites on Mac OS X inspired with iproute2 on Linux systems - ip command.";
+    description = "CLI wrapper for basic network utilites on Mac OS X inspired with iproute2 on Linux systems - ip command";
     license = licenses.mit;
     maintainers = with maintainers; [ jiegec ];
     platforms = platforms.darwin;
diff --git a/pkgs/os-specific/darwin/karabiner-elements/default.nix b/pkgs/os-specific/darwin/karabiner-elements/default.nix
index f42ce5b5be2fc..53847c75fccca 100644
--- a/pkgs/os-specific/darwin/karabiner-elements/default.nix
+++ b/pkgs/os-specific/darwin/karabiner-elements/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = ./updater.sh;
 
   meta = with lib; {
-    description = "Karabiner-Elements is a powerful utility for keyboard customization on macOS Sierra (10.12) or later.";
+    description = "Karabiner-Elements is a powerful utility for keyboard customization on macOS Sierra (10.12) or later";
     homepage = "https://karabiner-elements.pqrs.org/";
     platforms = platforms.darwin;
     maintainers = with maintainers; [ Enzime ];
diff --git a/pkgs/os-specific/darwin/khd/default.nix b/pkgs/os-specific/darwin/khd/default.nix
index 87e1a8bf6ae6e..9c10dc89a69d3 100644
--- a/pkgs/os-specific/darwin/khd/default.nix
+++ b/pkgs/os-specific/darwin/khd/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple modal hotkey daemon for OSX";
+    description = "Simple modal hotkey daemon for OSX";
     homepage = "https://github.com/koekeishiya/khd";
     downloadPage = "https://github.com/koekeishiya/khd/releases";
     platforms = platforms.darwin;
diff --git a/pkgs/os-specific/darwin/macfuse/default.nix b/pkgs/os-specific/darwin/macfuse/default.nix
index c63b536f248b5..4de9600e79108 100644
--- a/pkgs/os-specific/darwin/macfuse/default.nix
+++ b/pkgs/os-specific/darwin/macfuse/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "macfuse-stubs";
-  version = "4.4.1";
+  version = "4.8.0";
 
   src = fetchurl {
     url = "https://github.com/osxfuse/osxfuse/releases/download/macfuse-${version}/macfuse-${version}.dmg";
-    sha256 = "2a2d0f37ec5fcff547c5efa7d08539103a0b46bc16080c2b41a7e749f6e65c61";
+    hash = "sha256-ucTzO2qdN4QkowMVvC3+4pjEVjbwMsB0xFk+bvQxwtQ=";
   };
 
   nativeBuildInputs = [ cpio xar undmg libtapi ];
diff --git a/pkgs/os-specific/darwin/moltenvk/default.nix b/pkgs/os-specific/darwin/moltenvk/default.nix
index 323096fd5c9ed..5e5747b1b4fbb 100644
--- a/pkgs/os-specific/darwin/moltenvk/default.nix
+++ b/pkgs/os-specific/darwin/moltenvk/default.nix
@@ -198,7 +198,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = {
-    description = "A Vulkan Portability implementation built on top of Apple’s Metal API";
+    description = "Vulkan Portability implementation built on top of Apple’s Metal API";
     homepage = "https://github.com/KhronosGroup/MoltenVK";
     changelog = "https://github.com/KhronosGroup/MoltenVK/releases";
     maintainers = [ lib.maintainers.reckenrode ];
diff --git a/pkgs/os-specific/darwin/osx-cpu-temp/default.nix b/pkgs/os-specific/darwin/osx-cpu-temp/default.nix
index ea9d8399667ac..4748d62f83e55 100644
--- a/pkgs/os-specific/darwin/osx-cpu-temp/default.nix
+++ b/pkgs/os-specific/darwin/osx-cpu-temp/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "Outputs current CPU temperature for OSX.";
+    description = "Outputs current CPU temperature for OSX";
     homepage = "https://github.com/lavoiesl/osx-cpu-temp";
     license = licenses.gpl2;
     maintainers = with maintainers; [ virusdave ];
diff --git a/pkgs/os-specific/darwin/osxsnarf/default.nix b/pkgs/os-specific/darwin/osxsnarf/default.nix
index e31271ed2b97e..534c8bd5b3a60 100644
--- a/pkgs/os-specific/darwin/osxsnarf/default.nix
+++ b/pkgs/os-specific/darwin/osxsnarf/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "prefix=${placeholder "out"}" ];
 
   meta = with lib; {
-    description = "A Plan 9-inspired way to share your OS X clipboard";
+    description = "Plan 9-inspired way to share your OS X clipboard";
     homepage = "https://github.com/eraserhd/osxsnarf";
     license = licenses.unlicense;
     platforms = platforms.darwin;
diff --git a/pkgs/os-specific/darwin/raycast/default.nix b/pkgs/os-specific/darwin/raycast/default.nix
index 302acad3100d5..47af714267edc 100644
--- a/pkgs/os-specific/darwin/raycast/default.nix
+++ b/pkgs/os-specific/darwin/raycast/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, stdenvNoCC
-, fetchurl
-, writeShellApplication
-, curl
-, jq
-, common-updater-scripts
-, undmg
+{
+  lib,
+  stdenvNoCC,
+  fetchurl,
+  writeShellApplication,
+  curl,
+  jq,
+  common-updater-scripts,
+  undmg,
 }:
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "raycast";
-  version = "1.74.1";
+  version = "1.77.0";
 
   src = fetchurl {
     name = "Raycast.dmg";
     url = "https://releases.raycast.com/releases/${finalAttrs.version}/download?build=universal";
-    hash = "sha256-vIhuXZ9FxpWLPoOciyl4Qe0G8vXY+to+CGxp+nRmyp8=";
+    hash = "sha256-rslrTwEl+Np8WdkEP1t79clmiBRhNvbN+q4dbU8TjgU=";
   };
 
   dontPatch = true;
@@ -38,21 +39,31 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   passthru.updateScript = lib.getExe (writeShellApplication {
     name = "raycast-update-script";
-    runtimeInputs = [ curl jq common-updater-scripts ];
+    runtimeInputs = [
+      curl
+      jq
+      common-updater-scripts
+    ];
     text = ''
-      set -eo pipefail
       url=$(curl --silent "https://releases.raycast.com/releases/latest?build=universal")
       version=$(echo "$url" | jq -r '.version')
       update-source-version raycast "$version" --file=./pkgs/os-specific/darwin/raycast/default.nix
     '';
   });
 
-  meta = with lib; {
+  meta = {
     description = "Control your tools with a few keystrokes";
     homepage = "https://raycast.app/";
-    license = with licenses; [ unfree ];
-    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
-    maintainers = with maintainers; [ lovesegfault stepbrobd donteatoreo ];
-    platforms = [ "aarch64-darwin" "x86_64-darwin" ];
+    license = lib.licenses.unfree;
+    maintainers = with lib.maintainers; [
+      lovesegfault
+      stepbrobd
+      donteatoreo
+    ];
+    platforms = [
+      "aarch64-darwin"
+      "x86_64-darwin"
+    ];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
   };
 })
diff --git a/pkgs/os-specific/darwin/reattach-to-user-namespace/default.nix b/pkgs/os-specific/darwin/reattach-to-user-namespace/default.nix
index b4d26327bdcd4..ea3dd694962e4 100644
--- a/pkgs/os-specific/darwin/reattach-to-user-namespace/default.nix
+++ b/pkgs/os-specific/darwin/reattach-to-user-namespace/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A wrapper that provides access to the Mac OS X pasteboard service";
+    description = "Wrapper that provides access to the Mac OS X pasteboard service";
     license = licenses.bsd2;
     maintainers = with maintainers; [ lnl7 ];
     platforms = platforms.darwin;
diff --git a/pkgs/os-specific/darwin/rectangle/default.nix b/pkgs/os-specific/darwin/rectangle/default.nix
index af7bb58e54a17..1e7be272d6ab9 100644
--- a/pkgs/os-specific/darwin/rectangle/default.nix
+++ b/pkgs/os-specific/darwin/rectangle/default.nix
@@ -7,11 +7,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "rectangle";
-  version = "0.79";
+  version = "0.80";
 
   src = fetchurl {
     url = "https://github.com/rxhanson/Rectangle/releases/download/v${version}/Rectangle${version}.dmg";
-    hash = "sha256-XczwgLONTt7wL+oW1ruw6wBwZTMd5VyN+79xJy0NUIg=";
+    hash = "sha256-CmYhMnEhn3UK82RXuT1KQhAoK/0ewcUU6h73el2Lpw8=";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/os-specific/darwin/sigtool/default.nix b/pkgs/os-specific/darwin/sigtool/default.nix
index eb323a899d19f..62474fdc78d21 100644
--- a/pkgs/os-specific/darwin/sigtool/default.nix
+++ b/pkgs/os-specific/darwin/sigtool/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   installFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "A tool for working with embedded signatures in Mach-O files";
+    description = "Tool for working with embedded signatures in Mach-O files";
     homepage = "https://github.com/thefloweringash/sigtool";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/os-specific/darwin/smimesign/default.nix b/pkgs/os-specific/darwin/smimesign/default.nix
index 48164d387fa98..812d6a24d2bd8 100644
--- a/pkgs/os-specific/darwin/smimesign/default.nix
+++ b/pkgs/os-specific/darwin/smimesign/default.nix
@@ -19,7 +19,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "An S/MIME signing utility for macOS and Windows that is compatible with Git";
+    description = "S/MIME signing utility for macOS and Windows that is compatible with Git";
     homepage = "https://github.com/github/smimesign";
     license = licenses.mit;
     platforms = platforms.darwin ++ platforms.windows;
diff --git a/pkgs/os-specific/darwin/spacebar/default.nix b/pkgs/os-specific/darwin/spacebar/default.nix
index 2656c10f6dc3b..051bbfc46c15d 100644
--- a/pkgs/os-specific/darwin/spacebar/default.nix
+++ b/pkgs/os-specific/darwin/spacebar/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A minimal status bar for macOS";
+    description = "Minimal status bar for macOS";
     homepage = "https://github.com/cmacrae/spacebar";
     platforms = platforms.darwin;
     maintainers = [ maintainers.cmacrae ];
diff --git a/pkgs/os-specific/darwin/utm/default.nix b/pkgs/os-specific/darwin/utm/default.nix
index 4915b9b54d782..050a725b2cb8b 100644
--- a/pkgs/os-specific/darwin/utm/default.nix
+++ b/pkgs/os-specific/darwin/utm/default.nix
@@ -7,11 +7,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "utm";
-  version = "4.5.2";
+  version = "4.5.3";
 
   src = fetchurl {
     url = "https://github.com/utmapp/UTM/releases/download/v${version}/UTM.dmg";
-    hash = "sha256-pBRmtHXnw9BoFeaCCokk5hulChdEFl9dENbL8zzXMzs=";
+    hash = "sha256-7hpWTe6TvnNodFt1rSRGougeZuEjvSeuVzBWFfYo53Y=";
   };
 
   nativeBuildInputs = [ undmg makeWrapper ];
diff --git a/pkgs/os-specific/linux/915resolution/default.nix b/pkgs/os-specific/linux/915resolution/default.nix
index 6966a76cfa971..8a6732d8737fa 100644
--- a/pkgs/os-specific/linux/915resolution/default.nix
+++ b/pkgs/os-specific/linux/915resolution/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://915resolution.mango-lang.org/";
-    description = "A tool to modify Intel 800/900 video BIOS";
+    description = "Tool to modify Intel 800/900 video BIOS";
     mainProgram = "915resolution";
     platforms = [ "i686-linux" "x86_64-linux" ];
     license = licenses.publicDomain;
diff --git a/pkgs/os-specific/linux/acpi-call/default.nix b/pkgs/os-specific/linux/acpi-call/default.nix
index 0da824b169e63..f812316fd7749 100644
--- a/pkgs/os-specific/linux/acpi-call/default.nix
+++ b/pkgs/os-specific/linux/acpi-call/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ raskin mic92 ];
     homepage = "https://github.com/nix-community/acpi_call";
     platforms = platforms.linux;
-    description = "A module allowing arbitrary ACPI calls; use case: hybrid video";
+    description = "Module allowing arbitrary ACPI calls; use case: hybrid video";
     mainProgram = "test_discrete_video_off.sh";
     license = licenses.gpl3Plus;
   };
diff --git a/pkgs/os-specific/linux/acpid/default.nix b/pkgs/os-specific/linux/acpid/default.nix
index 8f981ec401bcb..5326ba578f75e 100644
--- a/pkgs/os-specific/linux/acpid/default.nix
+++ b/pkgs/os-specific/linux/acpid/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://sourceforge.net/projects/acpid2/";
-    description = "A daemon for delivering ACPI events to userspace programs";
+    description = "Daemon for delivering ACPI events to userspace programs";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
   };
diff --git a/pkgs/os-specific/linux/acpitool/default.nix b/pkgs/os-specific/linux/acpitool/default.nix
index 317ca54b7cde4..86b028697bb62 100644
--- a/pkgs/os-specific/linux/acpitool/default.nix
+++ b/pkgs/os-specific/linux/acpitool/default.nix
@@ -43,7 +43,7 @@ in stdenv.mkDerivation rec {
   ];
 
   meta = {
-    description = "A small, convenient command-line ACPI client with a lot of features";
+    description = "Small, convenient command-line ACPI client with a lot of features";
     mainProgram = "acpitool";
     homepage = "https://sourceforge.net/projects/acpitool/";
     license = lib.licenses.gpl2Plus;
diff --git a/pkgs/os-specific/linux/adcli/default.nix b/pkgs/os-specific/linux/adcli/default.nix
index 5f94da21f2074..2f81c12977dc3 100644
--- a/pkgs/os-specific/linux/adcli/default.nix
+++ b/pkgs/os-specific/linux/adcli/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.freedesktop.org/software/realmd/adcli/adcli.html";
-    description = "A helper library and tools for Active Directory client operations.";
+    description = "Helper library and tools for Active Directory client operations";
     mainProgram = "adcli";
     license = licenses.lgpl21Only;
     maintainers = with maintainers; [ SohamG anthonyroussel ];
diff --git a/pkgs/os-specific/linux/amdctl/default.nix b/pkgs/os-specific/linux/amdctl/default.nix
index abc26aabf7843..f95d54e64b3ea 100644
--- a/pkgs/os-specific/linux/amdctl/default.nix
+++ b/pkgs/os-specific/linux/amdctl/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "Set P-State voltages and clock speeds on recent AMD CPUs on Linux.";
+    description = "Set P-State voltages and clock speeds on recent AMD CPUs on Linux";
     mainProgram = "amdctl";
     homepage = "https://github.com/kevinlekiller/amdctl";
     license = licenses.gpl3Plus;
diff --git a/pkgs/os-specific/linux/amdgpu-pro/default.nix b/pkgs/os-specific/linux/amdgpu-pro/default.nix
deleted file mode 100644
index ade6da99810b2..0000000000000
--- a/pkgs/os-specific/linux/amdgpu-pro/default.nix
+++ /dev/null
@@ -1,222 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, elfutils
-, xorg
-, patchelf
-, libxcb
-, libxshmfence
-, perl
-, zlib
-, expat
-, libffi_3_3
-, libselinux
-, libdrm
-, udev
-, kernel ? null
-}:
-
-with lib;
-
-let
-
-  bitness = if stdenv.is64bit then "64" else "32";
-
-  libArch =
-    if stdenv.hostPlatform.system == "i686-linux" then
-      "i386-linux-gnu"
-    else if stdenv.hostPlatform.system == "x86_64-linux" then
-      "x86_64-linux-gnu"
-    else throw "amdgpu-pro is Linux only. Sorry ${stdenv.hostPlatform.system}.";
-
-in stdenv.mkDerivation rec {
-
-  version = "21.30";
-  pname = "amdgpu-pro";
-  build = "${version}-1290604";
-
-  src = fetchurl {
-    url = "https://drivers.amd.com/drivers/linux/amdgpu-pro-${build}-ubuntu-20.04.tar.xz";
-    sha256 = "sha256-WECqxjo2WLP3kMWeVyJgYufkvHTzwGaj57yeMGXiQ4I=";
-    curlOpts = "--referer https://www.amd.com/en/support/kb/release-notes/rn-amdgpu-unified-linux-21-30";
-  };
-
-  postUnpack = ''
-    mkdir root
-    pushd $sourceRoot
-    for deb in *_all.deb *_${if stdenv.is64bit then "amd64" else "i386"}.deb
-    do
-      ar p $deb data.tar.xz | tar -C ../root -xJ
-    done
-    popd
-    # if we don't use a short sourceRoot, compilation can fail due to command
-    # line length
-    sourceRoot=root
-  '';
-
-  passthru = optionalAttrs (kernel != null) {
-    kmod = stdenv.mkDerivation rec {
-      inherit version src postUnpack;
-      name = "${pname}-${version}-kmod-${kernel.dev.version}";
-
-      postPatch = ''
-        pushd usr/src/amdgpu-*
-        patchShebangs amd/dkms/*.sh
-        substituteInPlace amd/dkms/pre-build.sh --replace "./configure" "./configure --with-linux=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source --with-linux-obj=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
-        popd
-      '';
-
-      preConfigure = ''
-        pushd usr/src/amdgpu-*
-        makeFlags="$makeFlags M=$(pwd)"
-        amd/dkms/pre-build.sh ${kernel.version}
-        popd
-      '';
-
-      postBuild = ''
-        pushd usr/src/amdgpu-*
-        find -name \*.ko -exec xz {} \;
-        popd
-      '';
-
-      makeFlags = optionalString (kernel != null) "-C ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build modules";
-
-      installPhase = ''
-        runHook preInstall
-
-        pushd usr/src/amdgpu-*
-        find -name \*.ko.xz -exec install -Dm444 {} $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/gpu/drm/{} \;
-        popd
-
-        runHook postInstall
-      '';
-
-      # without this we get a collision with the ttm module from linux
-      meta.priority = 4;
-    };
-
-    fw = stdenv.mkDerivation rec {
-      inherit version src postUnpack;
-      name = "${pname}-${version}-fw";
-
-      installPhase = ''
-        runHook preInstall
-
-        mkdir -p $out/lib
-        cp -r usr/src/amdgpu-*/firmware $out/lib/firmware
-
-        runHook postInstall
-      '';
-    };
-  };
-
-  outputs = [ "out" "vulkan" ];
-
-  depLibPath = makeLibraryPath [
-    stdenv.cc.cc.lib
-    zlib
-    libxcb
-    libxshmfence
-    elfutils
-    expat
-    libffi_3_3
-    libselinux
-    # libudev is not listed in any dependencies, but is loaded dynamically
-    udev
-    xorg.libXext
-    xorg.libX11
-    xorg.libXfixes
-    xorg.libXdamage
-    xorg.libXxf86vm
-  ];
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out
-
-    cp -r usr/lib/${libArch} $out/lib
-    cp -r usr/share $out/share
-
-    mkdir -p $out/opt/amdgpu{,-pro}
-    cp -r opt/amdgpu-pro/lib/${libArch} $out/opt/amdgpu-pro/lib
-    cp -r opt/amdgpu/lib/${libArch} $out/opt/amdgpu/lib
-
-    pushd $out/lib
-    ln -s ../opt/amdgpu-pro/lib/libGL.so* .
-    ln -s ../opt/amdgpu-pro/lib/libEGL.so* .
-    popd
-
-    # short name to allow replacement below
-    ln -s lib/dri $out/dri
-
-  '' + optionalString (stdenv.is64bit) ''
-    mkdir -p $out/etc
-    pushd etc
-    cp -r modprobe.d udev amd $out/etc
-    popd
-
-    cp -r lib/udev/rules.d/* $out/etc/udev/rules.d
-    cp -r opt/amdgpu/lib/xorg $out/lib/xorg
-    cp -r opt/amdgpu-pro/lib/xorg/* $out/lib/xorg
-    cp -r opt/amdgpu/share $out/opt/amdgpu/share
-  '' + ''
-
-    mkdir -p $vulkan/share/vulkan/icd.d
-    install opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd${bitness}.json $vulkan/share/vulkan/icd.d
-
-    runHook postInstall
-  '';
-
-  preFixup = (if stdenv.is64bit
-    # this could also be done with LIBGL_DRIVERS_PATH, but it would need to be
-    # set in the user session and for Xorg
-    then ''
-      expr1='s:/opt/amdgpu/lib/x86_64-linux-gnu/dri\0:/run/opengl-driver/lib/dri\0\0\0\0\0\0\0\0\0\0\0:g'
-      expr2='s:/usr/lib/x86_64-linux-gnu/dri[\0\:]:/run/opengl-driver/lib/dri\0\0\0\0:g'
-      perl -pi -e "$expr2" $out/lib/xorg/modules/extensions/libglx.so
-    ''
-    else ''
-      expr1='s:/opt/amdgpu/lib/i386-linux-gnu/dri\0:/run/opengl-driver-32/lib/dri\0\0\0\0\0\0:g'
-      # we replace a different path on 32-bit because it's the only one long
-      # enough to fit the target path :(
-      expr2='s:/usr/lib/i386-linux-gnu/dri[\0\:]:/run/opengl-driver-32/dri\0\0\0:g'
-    '') + ''
-    perl -pi -e "$expr1" \
-      $out/opt/amdgpu/lib/libEGL.so.1.0.0 \
-      $out/opt/amdgpu/lib/libgbm.so.1.0.0 \
-      $out/opt/amdgpu/lib/libGL.so.1.2.0
-
-    perl -pi -e "$expr2" \
-      $out/opt/amdgpu-pro/lib/libEGL.so.1 \
-      $out/opt/amdgpu-pro/lib/libGL.so.1.2 \
-      $out/opt/amdgpu-pro/lib/libGLX_amd.so.0
-
-    find $out -type f -exec perl -pi -e 's:/opt/amdgpu-pro/:/run/amdgpu-pro/:g' {} \;
-    find $out -type f -exec perl -pi -e 's:/opt/amdgpu/:/run/amdgpu/:g' {} \;
-
-    substituteInPlace $vulkan/share/vulkan/icd.d/*.json --replace /opt/amdgpu-pro/lib/${libArch} "$out/opt/amdgpu-pro/lib"
-  '';
-
-  # doing this in post because shrinking breaks things that dynamically load
-  postFixup = ''
-    libPath="$out/opt/amdgpu/lib:$out/opt/amdgpu-pro/lib:$depLibPath"
-    find "$out" -name '*.so*' -type f -exec patchelf --set-rpath "$libPath" {} \;
-  '';
-
-  buildInputs = [
-    libdrm
-    patchelf
-    perl
-  ];
-
-  enableParallelBuilding = true;
-
-  meta = with lib; {
-    description = "AMDGPU-PRO drivers";
-    homepage =  "https://www.amd.com/en/support";
-    license = licenses.unfree;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ corngood ];
-  };
-}
diff --git a/pkgs/os-specific/linux/anbox/default.nix b/pkgs/os-specific/linux/anbox/default.nix
index 3a5649d9f2882..1cb614fa220bb 100644
--- a/pkgs/os-specific/linux/anbox/default.nix
+++ b/pkgs/os-specific/linux/anbox/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation rec {
     cmake
     pkg-config
     makeWrapper
+    protobufc
   ];
 
   buildInputs = [
@@ -74,7 +75,7 @@ stdenv.mkDerivation rec {
     lxc
     mesa
     properties-cpp
-    protobuf protobufc
+    protobuf
     python3
     SDL2 SDL2_image
     systemd
diff --git a/pkgs/os-specific/linux/apfs/default.nix b/pkgs/os-specific/linux/apfs/default.nix
index 68265f9f826c4..8d34d57d4f24c 100644
--- a/pkgs/os-specific/linux/apfs/default.nix
+++ b/pkgs/os-specific/linux/apfs/default.nix
@@ -6,7 +6,7 @@
 }:
 
 let
-  tag = "0.3.8";
+  tag = "0.3.9";
 in
 stdenv.mkDerivation {
   pname = "apfs";
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
     owner = "linux-apfs";
     repo = "linux-apfs-rw";
     rev = "v${tag}";
-    hash = "sha256-I/wuS4//bUiUW8NGW6aNVPzDtuY2lMUeFiv5y2c7TYY=";
+    hash = "sha256-KZ/B3sR9x58DTUeHUI0ZPW6bb7vFkPMVXaEZ25m3cP0=";
   };
 
   hardeningDisable = [ "pic" ];
diff --git a/pkgs/os-specific/linux/apparmor/default.nix b/pkgs/os-specific/linux/apparmor/default.nix
index cebae9b8402dd..4c06ea352ee03 100644
--- a/pkgs/os-specific/linux/apparmor/default.nix
+++ b/pkgs/os-specific/linux/apparmor/default.nix
@@ -26,7 +26,7 @@ let
 
   apparmor-meta = component: with lib; {
     homepage = "https://apparmor.net/";
-    description = "A mandatory access control system - ${component}";
+    description = "Mandatory access control system - ${component}";
     license = with licenses; [ gpl2Only lgpl21Only ];
     maintainers = with maintainers; [ julm thoughtpolice ] ++ teams.helsinki-systems.members;
     platforms = platforms.linux;
diff --git a/pkgs/os-specific/linux/audit/default.nix b/pkgs/os-specific/linux/audit/default.nix
index 1e941a13767ed..d5e38ea62fb8b 100644
--- a/pkgs/os-specific/linux/audit/default.nix
+++ b/pkgs/os-specific/linux/audit/default.nix
@@ -1,11 +1,9 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
 , autoreconfHook
 , bash
 , buildPackages
-, libtool
 , linuxHeaders
 , python3
 , swig
diff --git a/pkgs/os-specific/linux/autofs/default.nix b/pkgs/os-specific/linux/autofs/default.nix
index db0e7b48383f3..d308ba6594e23 100644
--- a/pkgs/os-specific/linux/autofs/default.nix
+++ b/pkgs/os-specific/linux/autofs/default.nix
@@ -1,28 +1,33 @@
 { lib, stdenv, fetchurl, flex, bison, linuxHeaders, libtirpc, mount, umount, nfs-utils, e2fsprogs
-, libxml2, libkrb5, kmod, openldap, sssd, cyrus_sasl, openssl, rpcsvc-proto
+, libxml2, libkrb5, kmod, openldap, sssd, cyrus_sasl, openssl, rpcsvc-proto, pkgconf
 , fetchpatch
 }:
 
 stdenv.mkDerivation rec {
-  version = "5.1.6";
+  version = "5.1.9";
   pname = "autofs";
 
   src = fetchurl {
     url = "mirror://kernel/linux/daemons/autofs/v5/autofs-${version}.tar.xz";
-    sha256 = "1vya21mb4izj3khcr3flibv7xc15vvx2v0rjfk5yd31qnzcy7pnx";
+    sha256 = "sha256-h+avagN5S5Ri6lGXgeUOfSO198ks1Z4RQshdJJOzwks=";
   };
-
   patches = [
-    # glibc 2.34 compat
     (fetchpatch {
-      url = "https://src.fedoraproject.org/rpms/autofs/raw/cc745af5e42396d540d5b3b92fae486e232bf6bd/f/autofs-5.1.7-use-default-stack-size-for-threads.patch";
-      sha256 = "sha256-6ETDFbW7EhHR03xFWF+6OJBgn9NX3WW3bGhTNGodaOc=";
-      excludes = [ "CHANGELOG" ];
+      url = "mirror://kernel/linux/daemons/autofs/v5/patches-5.2.0/autofs-5.1.9-update-configure.patch";
+      hash = "sha256-BomhNw+lMHcgs5gQlzapZ6p/Ji3gJUVkrLpZssBmwbg=";
+    })
+    (fetchpatch {
+      url = "mirror://kernel/linux/daemons/autofs/v5/patches-5.2.0/autofs-5.1.9-fix-ldap_parse_page_control-check.patch";
+      hash = "sha256-W757LU9r9kuzLeThif2a1olRtxNrJy5suemLS7yfbIU=";
+    })
+   (fetchpatch {
+      url = "mirror://kernel/linux/daemons/autofs/v5/patches-5.2.0/autofs-5.1.9-fix-crash-in-make_options_string.patch";
+      hash = "sha256-YjTdJ50iNhJ2UjFdrKYEFNt04z0PfmElbFa4GuSskLA=";
     })
   ];
 
   preConfigure = ''
-    configureFlags="--enable-force-shutdown --enable-ignore-busy --with-path=$PATH"
+    configureFlags="--enable-force-shutdown --enable-ignore-busy --with-path=$PATH --with-libtirpc"
     export sssldir="${sssd}/lib/sssd/modules"
     export HAVE_SSS_AUTOFS=1
 
@@ -37,9 +42,6 @@ stdenv.mkDerivation rec {
     unset STRIP # Makefile.rules defines a usable STRIP only without the env var.
   '';
 
-  # configure script is not finding the right path
-  env.NIX_CFLAGS_COMPILE = toString [ "-I${libtirpc.dev}/include/tirpc" ];
-
   installPhase = ''
     make install SUBDIRS="lib daemon modules man" # all but samples
     #make install SUBDIRS="samples" # impure!
@@ -48,7 +50,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ linuxHeaders libtirpc libxml2 libkrb5 kmod openldap sssd
                   openssl cyrus_sasl rpcsvc-proto ];
 
-  nativeBuildInputs = [ flex bison ];
+  nativeBuildInputs = [ flex bison pkgconf ];
 
   meta = {
     description = "Kernel-based automounter";
diff --git a/pkgs/os-specific/linux/batman-adv/default.nix b/pkgs/os-specific/linux/batman-adv/default.nix
index b825cfc0a9624..3d8fbafb2358c 100644
--- a/pkgs/os-specific/linux/batman-adv/default.nix
+++ b/pkgs/os-specific/linux/batman-adv/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch2
 , kernel
 }:
 
diff --git a/pkgs/os-specific/linux/bbswitch/default.nix b/pkgs/os-specific/linux/bbswitch/default.nix
index 8312d64acddc6..a65bcab50ee25 100644
--- a/pkgs/os-specific/linux/bbswitch/default.nix
+++ b/pkgs/os-specific/linux/bbswitch/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A module for powering off hybrid GPUs";
+    description = "Module for powering off hybrid GPUs";
     platforms = [ "x86_64-linux" "i686-linux" ];
     homepage = "https://github.com/Bumblebee-Project/bbswitch";
     maintainers = with maintainers; [ abbradar ];
diff --git a/pkgs/os-specific/linux/beefi/default.nix b/pkgs/os-specific/linux/beefi/default.nix
index 39300b948976d..57ab2d7c8574c 100644
--- a/pkgs/os-specific/linux/beefi/default.nix
+++ b/pkgs/os-specific/linux/beefi/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A small script to create bootable EFISTUB kernel images";
+    description = "Small script to create bootable EFISTUB kernel images";
     mainProgram = "beefi";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/pkgs/os-specific/linux/below/default.nix b/pkgs/os-specific/linux/below/default.nix
index 5efc80357d8f1..286a92f0eb88d 100644
--- a/pkgs/os-specific/linux/below/default.nix
+++ b/pkgs/os-specific/linux/below/default.nix
@@ -40,7 +40,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     platforms = platforms.linux;
     maintainers = with maintainers; [ globin ];
-    description = "A time traveling resource monitor for modern Linux systems";
+    description = "Time traveling resource monitor for modern Linux systems";
     license = licenses.asl20;
     homepage = "https://github.com/facebookincubator/below";
     mainProgram = "below";
diff --git a/pkgs/os-specific/linux/bionic-prebuilt/default.nix b/pkgs/os-specific/linux/bionic-prebuilt/default.nix
index 3ce10735f1de8..6aad7ebcacb37 100644
--- a/pkgs/os-specific/linux/bionic-prebuilt/default.nix
+++ b/pkgs/os-specific/linux/bionic-prebuilt/default.nix
@@ -139,7 +139,7 @@ stdenvNoCC.mkDerivation rec {
   passthru.linuxHeaders = kernelHeaders;
 
   meta = with lib; {
-    description = "The Android libc implementation";
+    description = "Android libc implementation";
     homepage    = "https://android.googlesource.com/platform/bionic/";
     license     = licenses.mit;
     platforms   = platforms.linux;
diff --git a/pkgs/os-specific/linux/bpftune/default.nix b/pkgs/os-specific/linux/bpftune/default.nix
index 8747ef3d928f2..cc97ed16faea1 100644
--- a/pkgs/os-specific/linux/bpftune/default.nix
+++ b/pkgs/os-specific/linux/bpftune/default.nix
@@ -12,31 +12,28 @@
 
 stdenv.mkDerivation rec {
   pname = "bpftune";
-  version = "0-unstable-2024-05-17";
+  version = "0-unstable-2024-06-07";
 
   src = fetchFromGitHub {
     owner = "oracle";
     repo = "bpftune";
-    rev = "83115c56cf9620fe5669f4a3be67ab779d8f4536";
-    hash = "sha256-er2i7CEUXF3BpWTG//s8C0xfIk5gSVOHB8nE1r7PX78=";
+    rev = "04bab5dd306b55b3e4e13e261af2480b7ccff9fc";
+    hash = "sha256-kVjvupZ6HxJocwXWOrxUNqEGl0welJRlZwvOmMKqeBA=";
   };
 
   postPatch = ''
     # otherwise shrink rpath would drop $out/lib from rpath
     substituteInPlace src/Makefile \
-      --replace /lib64   /lib \
-      --replace /sbin    /bin \
-      --replace ldconfig true
+      --replace-fail /lib64   /lib \
+      --replace-fail /sbin    /bin \
+      --replace-fail ldconfig true
     substituteInPlace src/bpftune.service \
-      --replace /usr/sbin/bpftune "$out/bin/bpftune"
+      --replace-fail /usr/sbin/bpftune "$out/bin/bpftune"
     substituteInPlace include/bpftune/libbpftune.h \
-      --replace /usr/lib64/bpftune/       "$out/lib/bpftune/" \
-      --replace /usr/local/lib64/bpftune/ "$out/lib/bpftune/"
+      --replace-fail /usr/lib64/bpftune/       "$out/lib/bpftune/" \
+      --replace-fail /usr/local/lib64/bpftune/ "$out/lib/bpftune/"
     substituteInPlace src/libbpftune.c \
-      --replace /lib/modules /run/booted-system/kernel-modules/lib/modules
-
-    substituteInPlace src/Makefile sample_tuner/Makefile \
-      --replace 'BPF_INCLUDE := /usr/include' 'BPF_INCLUDE := ${lib.getDev libbpf}/include' \
+      --replace-fail /lib/modules /run/booted-system/kernel-modules/lib/modules
   '';
 
   nativeBuildInputs = [
@@ -56,6 +53,7 @@ stdenv.mkDerivation rec {
     "confprefix=${placeholder "out"}/etc"
     "BPFTUNE_VERSION=${version}"
     "NL_INCLUDE=${lib.getDev libnl}/include/libnl3"
+    "BPF_INCLUDE=${lib.getDev libbpf}/include"
   ];
 
   hardeningDisable = [
diff --git a/pkgs/os-specific/linux/bridge-utils/default.nix b/pkgs/os-specific/linux/bridge-utils/default.nix
index 1753be599380d..b10cca4cc592d 100644
--- a/pkgs/os-specific/linux/bridge-utils/default.nix
+++ b/pkgs/os-specific/linux/bridge-utils/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook ];
 
   meta = {
-    description = "An userspace tool to configure linux bridges (deprecated in favour or iproute2).";
+    description = "Userspace tool to configure linux bridges (deprecated in favour or iproute2)";
     mainProgram = "brctl";
     homepage = "https://wiki.linuxfoundation.org/networking/bridge";
     license = lib.licenses.gpl2Plus;
diff --git a/pkgs/os-specific/linux/btfs/default.nix b/pkgs/os-specific/linux/btfs/default.nix
index 342272f42861b..04a3e104c1cf2 100644
--- a/pkgs/os-specific/linux/btfs/default.nix
+++ b/pkgs/os-specific/linux/btfs/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A bittorrent filesystem based on FUSE";
+    description = "Bittorrent filesystem based on FUSE";
     homepage    = "https://github.com/johang/btfs";
     license     = licenses.gpl3;
     maintainers = with maintainers; [ rnhmjoj ];
diff --git a/pkgs/os-specific/linux/busybox/default.nix b/pkgs/os-specific/linux/busybox/default.nix
index 33fa7663f46dd..4a291cc03b8f6 100644
--- a/pkgs/os-specific/linux/busybox/default.nix
+++ b/pkgs/os-specific/linux/busybox/default.nix
@@ -121,6 +121,10 @@ stdenv.mkDerivation rec {
     # Bump from 4KB, much faster I/O
     CONFIG_FEATURE_COPYBUF_KB 64
 
+    # Doesn't build with current kernel headers.
+    # https://bugs.busybox.net/show_bug.cgi?id=15934
+    CONFIG_TC n
+
     # Set the path for the udhcpc script
     CONFIG_UDHCPC_DEFAULT_SCRIPT "${outDispatchPath}"
 
diff --git a/pkgs/os-specific/linux/cannelloni/default.nix b/pkgs/os-specific/linux/cannelloni/default.nix
index 86107d4f7aa03..9d2c199a23403 100644
--- a/pkgs/os-specific/linux/cannelloni/default.nix
+++ b/pkgs/os-specific/linux/cannelloni/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A SocketCAN over Ethernet tunnel";
+    description = "SocketCAN over Ethernet tunnel";
     mainProgram = "cannelloni";
     homepage = "https://github.com/mguentner/cannelloni";
     platforms = platforms.linux;
diff --git a/pkgs/os-specific/linux/catfs/default.nix b/pkgs/os-specific/linux/catfs/default.nix
index 107dce2123db9..af804262f20bc 100644
--- a/pkgs/os-specific/linux/catfs/default.nix
+++ b/pkgs/os-specific/linux/catfs/default.nix
@@ -1,5 +1,4 @@
 { lib, rustPlatform, fetchFromGitHub
-, fetchpatch
 , fuse
 , pkg-config
 }:
diff --git a/pkgs/os-specific/linux/consoletools/default.nix b/pkgs/os-specific/linux/consoletools/default.nix
index 61ddd5203cdc2..c5138e12fe469 100644
--- a/pkgs/os-specific/linux/consoletools/default.nix
+++ b/pkgs/os-specific/linux/consoletools/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://sourceforge.net/projects/linuxconsole/";
-    description = "A set of tools for joysticks and serial peripherals";
+    description = "Set of tools for joysticks and serial peripherals";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ pSub ebzzry ];
diff --git a/pkgs/os-specific/linux/cshatag/default.nix b/pkgs/os-specific/linux/cshatag/default.nix
index 70fd5ccbb6954..09bea7ebdd3ad 100644
--- a/pkgs/os-specific/linux/cshatag/default.nix
+++ b/pkgs/os-specific/linux/cshatag/default.nix
@@ -21,7 +21,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A tool to detect silent data corruption";
+    description = "Tool to detect silent data corruption";
     mainProgram = "cshatag";
     homepage = "https://github.com/rfjakob/cshatag";
     license = licenses.mit;
diff --git a/pkgs/os-specific/linux/dcgm/default.nix b/pkgs/os-specific/linux/dcgm/default.nix
index a7f3511b3f4ba..5e03e19bf26d2 100644
--- a/pkgs/os-specific/linux/dcgm/default.nix
+++ b/pkgs/os-specific/linux/dcgm/default.nix
@@ -130,7 +130,7 @@ in gcc11Stdenv.mkDerivation rec {
   disallowedReferences = lib.concatMap (x: x.pkgSet) cudaPackageSetByVersion;
 
   meta = with lib; {
-    description = "Data Center GPU Manager (DCGM) is a daemon that allows users to monitor NVIDIA data-center GPUs.";
+    description = "Data Center GPU Manager (DCGM) is a daemon that allows users to monitor NVIDIA data-center GPUs";
     homepage = "https://developer.nvidia.com/dcgm";
     license = licenses.asl20;
     maintainers = teams.deshaw.members;
diff --git a/pkgs/os-specific/linux/disk-indicator/default.nix b/pkgs/os-specific/linux/disk-indicator/default.nix
index e0e238fd35602..4eef4fdb11200 100644
--- a/pkgs/os-specific/linux/disk-indicator/default.nix
+++ b/pkgs/os-specific/linux/disk-indicator/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "https://github.com/MeanEYE/Disk-Indicator";
-    description = "A program that will turn a LED into a hard disk indicator";
+    description = "Program that will turn a LED into a hard disk indicator";
     mainProgram = "disk_indicator";
     longDescription = ''
       Small program for Linux that will turn your Scroll, Caps or Num Lock LED
diff --git a/pkgs/os-specific/linux/dmidecode/default.nix b/pkgs/os-specific/linux/dmidecode/default.nix
index 3bfaad303516a..db1be06717c6e 100644
--- a/pkgs/os-specific/linux/dmidecode/default.nix
+++ b/pkgs/os-specific/linux/dmidecode/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.nongnu.org/dmidecode/";
-    description = "A tool that reads information about your system's hardware from the BIOS according to the SMBIOS/DMI standard";
+    description = "Tool that reads information about your system's hardware from the BIOS according to the SMBIOS/DMI standard";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/os-specific/linux/dpdk-kmods/default.nix b/pkgs/os-specific/linux/dpdk-kmods/default.nix
index ec5fda7aa4195..4205da7e7e80c 100644
--- a/pkgs/os-specific/linux/dpdk-kmods/default.nix
+++ b/pkgs/os-specific/linux/dpdk-kmods/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchzip, fetchpatch, kernel }:
+{ lib, stdenv, fetchzip, kernel }:
 
 stdenv.mkDerivation rec {
   pname = "dpdk-kmods";
diff --git a/pkgs/os-specific/linux/dracut/default.nix b/pkgs/os-specific/linux/dracut/default.nix
index e5461bddbc8f3..498f61dc9836e 100644
--- a/pkgs/os-specific/linux/dracut/default.nix
+++ b/pkgs/os-specific/linux/dracut/default.nix
@@ -102,7 +102,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/dracutdevs/dracut/wiki";
-    description = "An event driven initramfs infrastructure";
+    description = "Event driven initramfs infrastructure";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ lilyinstarlight ];
     platforms = platforms.linux;
diff --git a/pkgs/os-specific/linux/ebtables/default.nix b/pkgs/os-specific/linux/ebtables/default.nix
index 31a5dbd68f9d2..57bf7da7c049e 100644
--- a/pkgs/os-specific/linux/ebtables/default.nix
+++ b/pkgs/os-specific/linux/ebtables/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A filtering tool for Linux-based bridging firewalls";
+    description = "Filtering tool for Linux-based bridging firewalls";
     homepage = "http://ebtables.sourceforge.net/";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/os-specific/linux/ell/default.nix b/pkgs/os-specific/linux/ell/default.nix
index 9c16a341a478f..1a5e119ef4737 100644
--- a/pkgs/os-specific/linux/ell/default.nix
+++ b/pkgs/os-specific/linux/ell/default.nix
@@ -9,14 +9,14 @@
 
 stdenv.mkDerivation rec {
   pname = "ell";
-  version = "0.64";
+  version = "0.65";
 
   outputs = [ "out" "dev" ];
 
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/libs/ell/ell.git";
     rev = version;
-    hash = "sha256-LONfgFgPg8KCDwtw//WTOYQT9RpnIskdHAWcgafOhcg=";
+    hash = "sha256-q0C9KfWHxdmrG7xcbb8zpFL4ro+BJb7BL2tyKdFIhew=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/os-specific/linux/esdm/default.nix b/pkgs/os-specific/linux/esdm/default.nix
index 195c645eb539b..95fdd9648f238 100644
--- a/pkgs/os-specific/linux/esdm/default.nix
+++ b/pkgs/os-specific/linux/esdm/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , protobufc
 , pkg-config
 , fuse3
diff --git a/pkgs/os-specific/linux/ethq/default.nix b/pkgs/os-specific/linux/ethq/default.nix
index 581382e4faf2d..94f18cccd9439 100644
--- a/pkgs/os-specific/linux/ethq/default.nix
+++ b/pkgs/os-specific/linux/ethq/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ethq";
-  version = "0.6.3";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "isc-projects";
     repo = "ethq";
     rev = "refs/tags/v${builtins.replaceStrings ["."] ["_"] version}";
-    hash = "sha256-dr37KiSnP0S0OjQof242EcbH+y4pCCzu6R9D6fXR9qc=";
+    hash = "sha256-ye5ep9EM9Sq/NqNZHENPmFZefVBx1BGrPm3YEG1NcSc=";
   };
 
   buildInputs = [ ncurses ];
diff --git a/pkgs/os-specific/linux/exfat/default.nix b/pkgs/os-specific/linux/exfat/default.nix
index 3d2445df49806..e247bbb9e837c 100644
--- a/pkgs/os-specific/linux/exfat/default.nix
+++ b/pkgs/os-specific/linux/exfat/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, kernel }:
+{ stdenv, lib, fetchFromGitHub, kernel }:
 
 stdenv.mkDerivation rec {
   name = "exfat-nofuse-${version}-${kernel.version}";
diff --git a/pkgs/os-specific/linux/fan2go/default.nix b/pkgs/os-specific/linux/fan2go/default.nix
index cb8ff5a84b74c..edd44842eed9a 100644
--- a/pkgs/os-specific/linux/fan2go/default.nix
+++ b/pkgs/os-specific/linux/fan2go/default.nix
@@ -22,7 +22,7 @@ buildGoModule rec {
   CGO_LDFLAGS = "-L ${lm_sensors}/lib";
 
   meta = with lib; {
-    description = "A simple daemon providing dynamic fan speed control based on temperature sensors";
+    description = "Simple daemon providing dynamic fan speed control based on temperature sensors";
     mainProgram = "fan2go";
     homepage = "https://github.com/markusressel/fan2go";
     license = licenses.agpl3Plus;
diff --git a/pkgs/os-specific/linux/firejail/default.nix b/pkgs/os-specific/linux/firejail/default.nix
index 64607c5653eb5..768d07dab900f 100644
--- a/pkgs/os-specific/linux/firejail/default.nix
+++ b/pkgs/os-specific/linux/firejail/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , pkg-config
 , libapparmor
 , which
diff --git a/pkgs/os-specific/linux/firmware/bt-fw-converter/default.nix b/pkgs/os-specific/linux/firmware/bt-fw-converter/default.nix
index 988aabd85779a..655b8f7ddedd9 100644
--- a/pkgs/os-specific/linux/firmware/bt-fw-converter/default.nix
+++ b/pkgs/os-specific/linux/firmware/bt-fw-converter/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation  rec {
 
   meta = with lib; {
     homepage = "https://github.com/winterheart/broadcom-bt-firmware/";
-    description = "A tool that converts hex to hcd based on inf file";
+    description = "Tool that converts hex to hcd based on inf file";
     mainProgram = "bt-fw-converter";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/os-specific/linux/firmware/fwupd-efi/default.nix b/pkgs/os-specific/linux/firmware/fwupd-efi/default.nix
index 1c6cc0e57e09a..0faec11702211 100644
--- a/pkgs/os-specific/linux/firmware/fwupd-efi/default.nix
+++ b/pkgs/os-specific/linux/firmware/fwupd-efi/default.nix
@@ -19,14 +19,6 @@ stdenv.mkDerivation rec {
     hash = "sha256-r9CAWirQgafK/y71vABM46AUe1OAFejsqWY0FxaxJg4=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/fwupd/fwupd-efi/commit/26c6ec5c1e7765fb5dc6a4df511ab21ee6c6e67a.patch";
-      revert = true;
-      hash = "sha256-vTdYExd7OlrrZ/LhlEO1zcvpKzeT5OeOeosD8/LUkMg=";
-    })
-  ];
-
   nativeBuildInputs = [
     meson
     ninja
diff --git a/pkgs/os-specific/linux/firmware/linux-firmware/source.nix b/pkgs/os-specific/linux/firmware/linux-firmware/source.nix
index 7098f1f3203e6..adaa4968fd565 100644
--- a/pkgs/os-specific/linux/firmware/linux-firmware/source.nix
+++ b/pkgs/os-specific/linux/firmware/linux-firmware/source.nix
@@ -1,7 +1,7 @@
 # This file is autogenerated! Run ./update.sh to regenerate.
 {
-  version = "20240513";
-  revision = "20240513";
-  sourceHash = "sha256-8yzs8lgPHG3zbUvlsWSuP1O/4s28dRFbju2c9kbaFsg=";
-  outputHash = "sha256-LDd6FU1/16X7KoCCDq0yPvwJzK4H9NxHgrEdhEfaUGY=";
+  version = "20240610";
+  revision = "20240610";
+  sourceHash = "sha256-tjDqviOMvrBoEG8+Yn+XqdBlIDfQUX0KK2kpW6/jed8=";
+  outputHash = "sha256-2VxzN778TLov5N1DPSnnkT7wQnLg85PyKsljZOoSoNM=";
 }
diff --git a/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix b/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix
index 386df843971cf..b2125170db14d 100644
--- a/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix
+++ b/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix
@@ -2,22 +2,22 @@
 
 stdenvNoCC.mkDerivation {
   pname = "raspberrypi-wireless-firmware";
-  version = "unstable-2023-11-15";
+  version = "unstable-2024-02-26";
 
   srcs = [
     (fetchFromGitHub {
       name = "bluez-firmware";
       owner = "RPi-Distro";
       repo = "bluez-firmware";
-      rev = "d9d4741caba7314d6500f588b1eaa5ab387a4ff5";
-      hash = "sha256-CjbZ3t3TW/iJ3+t9QKEtM9NdQU7SwcUCDYuTmFEwvhU=";
+      rev = "78d6a07730e2d20c035899521ab67726dc028e1c";
+      hash = "sha256-KakKnOBeWxh0exu44beZ7cbr5ni4RA9vkWYb9sGMb8Q=";
     })
     (fetchFromGitHub {
       name = "firmware-nonfree";
       owner = "RPi-Distro";
       repo = "firmware-nonfree";
-      rev = "88aa085bfa1a4650e1ccd88896f8343c22a24055";
-      hash = "sha256-Yynww79LPPkau4YDSLI6IMOjH64nMpHUdGjnCfIR2+M=";
+      rev = "223ccf3a3ddb11b3ea829749fbbba4d65b380897";
+      hash = "sha256-BGq0+cr+xBRwQM/LqiQuRWuZpQsKM5jfcrNCqWMuVzM=";
     })
   ];
 
diff --git a/pkgs/os-specific/linux/firmware/raspberrypi/default.nix b/pkgs/os-specific/linux/firmware/raspberrypi/default.nix
index 0aea94bca067f..ece39dade72b0 100644
--- a/pkgs/os-specific/linux/firmware/raspberrypi/default.nix
+++ b/pkgs/os-specific/linux/firmware/raspberrypi/default.nix
@@ -3,16 +3,13 @@
 stdenvNoCC.mkDerivation rec {
   # NOTE: this should be updated with linux_rpi
   pname = "raspberrypi-firmware";
-  # raspberrypi/firmware no longers tag the releases. However, since each commit
-  # on the stable branch corresponds to a tag in raspberrypi/linux repo, we
-  # assume they are cut together.
-  version = "stable_20231123";
+  version = "1.20240529";
 
   src = fetchFromGitHub {
     owner = "raspberrypi";
     repo = "firmware";
-    rev = "524247ac6d8b1f4ddd53730e978a70c76a320bd6";
-    hash = "sha256-rESwkR7pc5MTwIZ8PaMUPXuzxfv+jVpdRp8ijvxHGcg=";
+    rev = version;
+    hash = "sha256-KsCo7ZG6vKstxRyFljZtbQvnDSqiAPdUza32xTY/tlA=";
   };
 
   installPhase = ''
diff --git a/pkgs/os-specific/linux/framework-laptop-kmod/default.nix b/pkgs/os-specific/linux/framework-laptop-kmod/default.nix
index b5cb505e09a2c..eddc5e272aaec 100644
--- a/pkgs/os-specific/linux/framework-laptop-kmod/default.nix
+++ b/pkgs/os-specific/linux/framework-laptop-kmod/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A kernel module that exposes the Framework Laptop (13, 16)'s battery charge limit and LEDs to userspace.";
+    description = "Kernel module that exposes the Framework Laptop (13, 16)'s battery charge limit and LEDs to userspace";
     homepage = "https://github.com/DHowett/framework-laptop-kmod";
     license = licenses.gpl2;
     maintainers = with maintainers; [ gaykitty ];
diff --git a/pkgs/os-specific/linux/freeipa/default.nix b/pkgs/os-specific/linux/freeipa/default.nix
index e94f6370da984..7311261780f15 100644
--- a/pkgs/os-specific/linux/freeipa/default.nix
+++ b/pkgs/os-specific/linux/freeipa/default.nix
@@ -64,11 +64,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "freeipa";
-  version = "4.11.1";
+  version = "4.12.0";
 
   src = fetchurl {
     url = "https://releases.pagure.org/freeipa/freeipa-${version}.tar.gz";
-    sha256 = "sha256-Ubq2xAqBvjUwrzD2R6tB0i1WsdA0Y0jnJLgi4p4r8D4=";
+    sha256 = "sha256-FEDGPhgxr5kV8BeeM10C92yLbZPE7KGPmUUwyvZCkQA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/os-specific/linux/fsverity-utils/default.nix b/pkgs/os-specific/linux/fsverity-utils/default.nix
index 7d0f1f48e7e54..911b1f1fa1953 100644
--- a/pkgs/os-specific/linux/fsverity-utils/default.nix
+++ b/pkgs/os-specific/linux/fsverity-utils/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.kernel.org/doc/html/latest/filesystems/fsverity.html#userspace-utility";
     changelog = "https://git.kernel.org/pub/scm/fs/fsverity/fsverity-utils.git/tree/NEWS.md";
-    description = "A set of userspace utilities for fs-verity";
+    description = "Set of userspace utilities for fs-verity";
     mainProgram = "fsverity";
     license = licenses.mit;
     maintainers = with maintainers; [ jk ];
diff --git a/pkgs/os-specific/linux/g15daemon/default.nix b/pkgs/os-specific/linux/g15daemon/default.nix
index 90a818be49472..8cd10899a3369 100644
--- a/pkgs/os-specific/linux/g15daemon/default.nix
+++ b/pkgs/os-specific/linux/g15daemon/default.nix
@@ -1,10 +1,6 @@
 { stdenv
 , lib
-, fetchFromGitHub
 , fetchurl
-, fetchpatch
-, patchelf
-, freetype
 , libusb-compat-0_1
 }:
 let
@@ -49,7 +45,7 @@ let
     enableParallelBuilding = true;
 
     meta = {
-      description = "A small graphics library optimised for drawing on an LCD";
+      description = "Small graphics library optimised for drawing on an LCD";
       inherit license maintainers;
     };
   };
@@ -87,7 +83,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = {
-    description = "A daemon that makes it possible to use the Logitech keyboard G-Buttons and draw on various Logitech LCDs";
+    description = "Daemon that makes it possible to use the Logitech keyboard G-Buttons and draw on various Logitech LCDs";
     mainProgram = "g15daemon";
     inherit license maintainers;
   };
diff --git a/pkgs/os-specific/linux/gasket/default.nix b/pkgs/os-specific/linux/gasket/default.nix
index c1e81dfa9b712..d3215bd668c5c 100644
--- a/pkgs/os-specific/linux/gasket/default.nix
+++ b/pkgs/os-specific/linux/gasket/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = kernel.moduleBuildDependencies;
 
   meta = with lib; {
-    description = "The Coral Gasket Driver allows usage of the Coral EdgeTPU on Linux systems.";
+    description = "Coral Gasket Driver allows usage of the Coral EdgeTPU on Linux systems";
     homepage = "https://github.com/google/gasket-driver";
     license = licenses.gpl2;
     maintainers = [ lib.maintainers.kylehendricks ];
diff --git a/pkgs/os-specific/linux/guvcview/default.nix b/pkgs/os-specific/linux/guvcview/default.nix
index d274c375fb42c..def7248c3b2c6 100644
--- a/pkgs/os-specific/linux/guvcview/default.nix
+++ b/pkgs/os-specific/linux/guvcview/default.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
   ;
 
   meta = with lib; {
-    description = "A simple interface for devices supported by the linux UVC driver";
+    description = "Simple interface for devices supported by the linux UVC driver";
     mainProgram = "guvcview";
     homepage = "https://guvcview.sourceforge.net";
     maintainers = [ maintainers.coconnor ];
diff --git a/pkgs/os-specific/linux/hdparm/default.nix b/pkgs/os-specific/linux/hdparm/default.nix
index 3e23e3a7da7b0..156901d3643d7 100644
--- a/pkgs/os-specific/linux/hdparm/default.nix
+++ b/pkgs/os-specific/linux/hdparm/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A tool to get/set ATA/SATA drive parameters under Linux";
+    description = "Tool to get/set ATA/SATA drive parameters under Linux";
     homepage = "https://sourceforge.net/projects/hdparm/";
     platforms = platforms.linux;
     license = licenses.bsd2;
diff --git a/pkgs/os-specific/linux/hibernate/default.nix b/pkgs/os-specific/linux/hibernate/default.nix
index 71a93e4a154e6..dfd3407f2a03d 100644
--- a/pkgs/os-specific/linux/hibernate/default.nix
+++ b/pkgs/os-specific/linux/hibernate/default.nix
@@ -32,7 +32,7 @@ in
     '';
 
     meta = {
-      description = "The `hibernate' script for swsusp and Tux-on-Ice";
+      description = "`hibernate' script for swsusp and Tux-on-Ice";
       mainProgram = "hibernate";
       longDescription = ''
         This package provides the `hibernate' script, a command-line utility
diff --git a/pkgs/os-specific/linux/hid-t150/default.nix b/pkgs/os-specific/linux/hid-t150/default.nix
new file mode 100644
index 0000000000000..b3800ec5cfa37
--- /dev/null
+++ b/pkgs/os-specific/linux/hid-t150/default.nix
@@ -0,0 +1,40 @@
+{
+  stdenv,
+  lib,
+  fetchFromGitHub,
+  kernel,
+}:
+
+stdenv.mkDerivation {
+  pname = "hid-t150";
+  #https://github.com/scarburato/t150_driver/blob/165d0601e11576186c9416c40144927549ef804d/install.sh#L3
+  version = "0.8a";
+
+  src = fetchFromGitHub {
+    owner = "scarburato";
+    repo = "t150_driver";
+    rev = "580b79b7b479076ba470fcc21fbd8484f5328546";
+    hash = "sha256-6xqm8500+yMXA/WonMv1JAOS/oIeSNDp9HFuYkEd03U=";
+  };
+
+  nativeBuildInputs = kernel.moduleBuildDependencies;
+
+  sourceRoot = "source/hid-t150";
+
+  makeFlags = kernel.makeFlags ++ [
+    "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
+    "INSTALL_MOD_PATH=${placeholder "out"}"
+  ];
+
+  installPhase = ''
+    make -C ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build M=$(pwd) modules_install $makeFlags
+  '';
+
+  meta = with lib; {
+    description = "Linux kernel driver for Thrustmaster T150 and TMX Force Feedback wheel";
+    homepage = "https://github.com/scarburato/t150_driver";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.dbalan ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/hid-tmff2/default.nix b/pkgs/os-specific/linux/hid-tmff2/default.nix
index ac297c78e10e4..bc296e9ab6222 100644
--- a/pkgs/os-specific/linux/hid-tmff2/default.nix
+++ b/pkgs/os-specific/linux/hid-tmff2/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation {
   postPatch = "sed -i '/depmod -A/d' Makefile";
 
   meta = with lib; {
-    description = "A linux kernel module for Thrustmaster T300RS, T248 and TX(experimental)";
+    description = "Linux kernel module for Thrustmaster T300RS, T248 and TX(experimental)";
     homepage = "https://github.com/Kimplul/hid-tmff2";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.rayslash ];
diff --git a/pkgs/os-specific/linux/hostapd/default.nix b/pkgs/os-specific/linux/hostapd/default.nix
index 23ace63249b19..7e89feaa6514f 100644
--- a/pkgs/os-specific/linux/hostapd/default.nix
+++ b/pkgs/os-specific/linux/hostapd/default.nix
@@ -103,7 +103,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://w1.fi/hostapd/";
-    description = "A user space daemon for access point and authentication servers";
+    description = "User space daemon for access point and authentication servers";
     license = licenses.gpl2;
     maintainers = with maintainers; [ ];
     platforms = platforms.linux;
diff --git a/pkgs/os-specific/linux/i7z/default.nix b/pkgs/os-specific/linux/i7z/default.nix
index 9bd5ca302da36..7f2b2d5d0a594 100644
--- a/pkgs/os-specific/linux/i7z/default.nix
+++ b/pkgs/os-specific/linux/i7z/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A better i7 (and now i3, i5) reporting tool for Linux";
+    description = "Better i7 (and now i3, i5) reporting tool for Linux";
     mainProgram = "i7z";
     homepage = "https://github.com/DimitryAndric/i7z";
     license = licenses.gpl2;
diff --git a/pkgs/os-specific/linux/i810switch/default.nix b/pkgs/os-specific/linux/i810switch/default.nix
index 3a202ca08e96c..ab3fa970d380a 100644
--- a/pkgs/os-specific/linux/i810switch/default.nix
+++ b/pkgs/os-specific/linux/i810switch/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
   };
 
   meta = with lib; {
-    description = "A utility for switching between the LCD and external VGA display on Intel graphics cards";
+    description = "Utility for switching between the LCD and external VGA display on Intel graphics cards";
     homepage = "http://www16.plala.or.jp/mano-a-mano/i810switch.html";
     maintainers = with maintainers; [ ];
     license = licenses.gpl2;
diff --git a/pkgs/os-specific/linux/iomelt/default.nix b/pkgs/os-specific/linux/iomelt/default.nix
index 331c9020a4804..8796b740c3473 100644
--- a/pkgs/os-specific/linux/iomelt/default.nix
+++ b/pkgs/os-specific/linux/iomelt/default.nix
@@ -20,7 +20,7 @@ in stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A simple yet effective way to benchmark disk IO in Linux systems";
+    description = "Simple yet effective way to benchmark disk IO in Linux systems";
     homepage = "https://github.com/camposr/iomelt";
     maintainers = with maintainers; [ raspher ];
     license = licenses.artistic2;
diff --git a/pkgs/os-specific/linux/iotop/default.nix b/pkgs/os-specific/linux/iotop/default.nix
index 41647a2378e49..496ff7f115377 100644
--- a/pkgs/os-specific/linux/iotop/default.nix
+++ b/pkgs/os-specific/linux/iotop/default.nix
@@ -19,7 +19,7 @@ python3Packages.buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A tool to find out the processes doing the most IO";
+    description = "Tool to find out the processes doing the most IO";
     homepage = "http://guichaz.free.fr/iotop";
     license = licenses.gpl2;
     mainProgram = "iotop";
diff --git a/pkgs/os-specific/linux/iproute/default.nix b/pkgs/os-specific/linux/iproute/default.nix
index 597989c5a0641..3cc7759b41830 100644
--- a/pkgs/os-specific/linux/iproute/default.nix
+++ b/pkgs/os-specific/linux/iproute/default.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://wiki.linuxfoundation.org/networking/iproute2";
-    description = "A collection of utilities for controlling TCP/IP networking and traffic control in Linux";
+    description = "Collection of utilities for controlling TCP/IP networking and traffic control in Linux";
     platforms = platforms.linux;
     license = licenses.gpl2;
     maintainers = with maintainers; [ primeos eelco fpletz globin ];
diff --git a/pkgs/os-specific/linux/iptables/default.nix b/pkgs/os-specific/linux/iptables/default.nix
index b82484514e5f7..2efa609518256 100644
--- a/pkgs/os-specific/linux/iptables/default.nix
+++ b/pkgs/os-specific/linux/iptables/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A program to configure the Linux IP packet filtering ruleset";
+    description = "Program to configure the Linux IP packet filtering ruleset";
     homepage = "https://www.netfilter.org/projects/iptables/index.html";
     platforms = platforms.linux;
     maintainers = with maintainers; [ fpletz ];
diff --git a/pkgs/os-specific/linux/iputils/default.nix b/pkgs/os-specific/linux/iputils/default.nix
index 75d706b63f952..aa83a91216b69 100644
--- a/pkgs/os-specific/linux/iputils/default.nix
+++ b/pkgs/os-specific/linux/iputils/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/iputils/iputils";
     changelog = "https://github.com/iputils/iputils/releases/tag/${version}";
-    description = "A set of small useful utilities for Linux networking";
+    description = "Set of small useful utilities for Linux networking";
     longDescription = ''
       A set of small useful utilities for Linux networking including:
 
diff --git a/pkgs/os-specific/linux/irqbalance/default.nix b/pkgs/os-specific/linux/irqbalance/default.nix
index 5e4b7fff489ca..48e2774aaa96b 100644
--- a/pkgs/os-specific/linux/irqbalance/default.nix
+++ b/pkgs/os-specific/linux/irqbalance/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, pkg-config, glib, ncurses, libcap_ng }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, glib, ncurses, libcap_ng }:
 
 stdenv.mkDerivation rec {
   pname = "irqbalance";
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/Irqbalance/irqbalance";
     changelog = "https://github.com/Irqbalance/irqbalance/releases/tag/v${version}";
-    description = "A daemon to help balance the cpu load generated by interrupts across all of a systems cpus";
+    description = "Daemon to help balance the cpu load generated by interrupts across all of a systems cpus";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ moni ];
diff --git a/pkgs/os-specific/linux/kbdlight/default.nix b/pkgs/os-specific/linux/kbdlight/default.nix
index b41e4cd4da1c9..4d6172fa39fe7 100644
--- a/pkgs/os-specific/linux/kbdlight/default.nix
+++ b/pkgs/os-specific/linux/kbdlight/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/hobarrera/kbdlight";
-    description = "A very simple application that changes MacBooks' keyboard backlight level";
+    description = "Very simple application that changes MacBooks' keyboard backlight level";
     mainProgram = "kbdlight";
     license = licenses.isc;
     maintainers = [ maintainers.womfoo ];
diff --git a/pkgs/os-specific/linux/kernel-headers/default.nix b/pkgs/os-specific/linux/kernel-headers/default.nix
index fc2f8ddbd1434..bf3bf4950a259 100644
--- a/pkgs/os-specific/linux/kernel-headers/default.nix
+++ b/pkgs/os-specific/linux/kernel-headers/default.nix
@@ -111,12 +111,12 @@ let
 in {
   inherit makeLinuxHeaders;
 
-  linuxHeaders = let version = "6.7"; in
+  linuxHeaders = let version = "6.9"; in
     makeLinuxHeaders {
       inherit version;
       src = fetchurl {
         url = "mirror://kernel/linux/kernel/v${lib.versions.major version}.x/linux-${version}.tar.xz";
-        hash = "sha256-7zEUSiV20IDYwxaY6D7J9mv5fGd/oqrw1bu58zRbEGk=";
+        hash = "sha256-JPoB+5icej4oRT8Rd5kWhxN2bhGcU4HawwEV8Y8mgUk=";
       };
       patches = [
         ./no-relocs.patch # for building x86 kernel headers on non-ELF platforms
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix
index 84090cba867e1..c9bf296160629 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -441,7 +441,8 @@ let
       # (stable) amdgpu support for bonaire and newer chipsets
       DRM_AMDGPU_CIK = yes;
       # Allow device firmware updates
-      DRM_DP_AUX_CHARDEV = yes;
+      DRM_DP_AUX_CHARDEV = whenOlder "6.10" yes;
+      DRM_DISPLAY_DP_AUX_CHARDEV = whenAtLeast "6.10" yes;
       # amdgpu display core (DC) support
       DRM_AMD_DC_DCN1_0 = whenOlder "5.6" yes;
       DRM_AMD_DC_DCN2_0 = whenBetween "5.3" "5.6" yes;
@@ -470,7 +471,8 @@ let
       MEDIA_CEC_RC = whenAtLeast "5.10" yes;
 
       # Enable CEC over DisplayPort
-      DRM_DP_CEC = yes;
+      DRM_DP_CEC = whenOlder "6.10" yes;
+      DRM_DISPLAY_DP_AUX_CEC = whenAtLeast "6.10" yes;
     } // optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux") {
       # Intel GVT-g graphics virtualization supports 64-bit only
       DRM_I915_GVT = yes;
@@ -927,8 +929,10 @@ let
       # i686 issues: https://github.com/NixOS/nixpkgs/pull/117961#issuecomment-812106375
       useZstd = stdenv.buildPlatform.is64bit && versionAtLeast version "5.9";
     in {
-      KERNEL_XZ            = mkIf (!useZstd) yes;
-      KERNEL_ZSTD          = mkIf useZstd yes;
+      # stdenv.hostPlatform.linux-kernel.target assumes uncompressed on RISC-V.
+      KERNEL_UNCOMPRESSED  = mkIf stdenv.hostPlatform.isRiscV yes;
+      KERNEL_XZ            = mkIf (!stdenv.hostPlatform.isRiscV && !useZstd) yes;
+      KERNEL_ZSTD          = mkIf (!stdenv.hostPlatform.isRiscV && useZstd) yes;
 
       HID_BATTERY_STRENGTH = yes;
       # enabled by default in x86_64 but not arm64, so we do that here
diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix
index 37c138402d006..081cfcaa8b60f 100644
--- a/pkgs/os-specific/linux/kernel/generic.nix
+++ b/pkgs/os-specific/linux/kernel/generic.nix
@@ -97,7 +97,7 @@ let
   # For further context, see https://github.com/NixOS/nixpkgs/pull/143113#issuecomment-953319957
   basicArgs = builtins.removeAttrs
     args
-    (lib.filter (x: ! (builtins.elem x [ "version" "src" ])) (lib.attrNames args));
+    (lib.filter (x: ! (builtins.elem x [ "version" "pname" "src" ])) (lib.attrNames args));
 
   # Combine the `features' attribute sets of all the kernel patches.
   kernelFeatures = lib.foldr (x: y: (x.features or {}) // y) ({
diff --git a/pkgs/os-specific/linux/kernel/hardened/patches.json b/pkgs/os-specific/linux/kernel/hardened/patches.json
index b59451611e4a3..62f1fcdda20c6 100644
--- a/pkgs/os-specific/linux/kernel/hardened/patches.json
+++ b/pkgs/os-specific/linux/kernel/hardened/patches.json
@@ -2,81 +2,81 @@
     "4.19": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-4.19.314-hardened1.patch",
-            "sha256": "18k8rvcfqjdrjv4a8lbfxdi5nipn0widarncxgmbaykc2x37q4vr",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.314-hardened1/linux-hardened-4.19.314-hardened1.patch"
+            "name": "linux-hardened-4.19.315-hardened1.patch",
+            "sha256": "1w17mwsv618pw5bkahmz6in0i5zjjxd3d14gggafqdd3dgfr1h8q",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.315-hardened1/linux-hardened-4.19.315-hardened1.patch"
         },
-        "sha256": "0nvrpg5aj2q4h2drmczprqaprcc2zhcrijfri77b830ms8rg4y2a",
-        "version": "4.19.314"
+        "sha256": "1j1j8awy0237jp2r211qpa305c10y7rlcbkxkzdvzbgyhwy4spkc",
+        "version": "4.19.315"
     },
     "5.10": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.10.217-hardened1.patch",
-            "sha256": "1isql7dsky91kp856gcwczzd4vwyfi0xxdgv7s0987v4p6ih3gbz",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.217-hardened1/linux-hardened-5.10.217-hardened1.patch"
+            "name": "linux-hardened-5.10.218-hardened1.patch",
+            "sha256": "1ah4pznha17ngg3w7l0j74h4910gjv8qj503adrap7plvapf82m4",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.218-hardened1/linux-hardened-5.10.218-hardened1.patch"
         },
-        "sha256": "0qhzqrjci45vcbzjch7vq75i6hpyap6yb7jw6g71phcnqgzw2ay5",
-        "version": "5.10.217"
+        "sha256": "1mmj5hwm5i16gc1y4nzr1cs882vi6vrihrincdcivv63x11v4dlw",
+        "version": "5.10.218"
     },
     "5.15": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.15.159-hardened1.patch",
-            "sha256": "1dscwbzjajb2wph0m0kijhagmclg5jz614mgah98nkj9b4sbgzli",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.15.159-hardened1/linux-hardened-5.15.159-hardened1.patch"
+            "name": "linux-hardened-5.15.160-hardened1.patch",
+            "sha256": "1r10ylx886rslsmrixlijjm4crhwzkl3wj6kpyn2344qik1gxpqr",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.15.160-hardened1/linux-hardened-5.15.160-hardened1.patch"
         },
-        "sha256": "1ia1nfci2wkx4nhnldfczpcq47mp7y7g657ikkh8i72y498gwy1l",
-        "version": "5.15.159"
+        "sha256": "018v19a7rhzc4szybzzn86jlnk42x7jm6xkadfd2d3xq6f7727pl",
+        "version": "5.15.160"
     },
     "5.4": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.4.276-hardened1.patch",
-            "sha256": "1hhy6jhq1h5v69319cjz5vidaqm4paiqvb62rairsdbabd2ycgvl",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.276-hardened1/linux-hardened-5.4.276-hardened1.patch"
+            "name": "linux-hardened-5.4.277-hardened1.patch",
+            "sha256": "1zjw5wl8lj69j402qm8dg3m4dxgq3ppx2jyz8jks976vyhh8fsg4",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.277-hardened1/linux-hardened-5.4.277-hardened1.patch"
         },
-        "sha256": "01vfx19n8rv9fgjjzvi78125md71zgn5jrinbarabzr18jyjwwg2",
-        "version": "5.4.276"
+        "sha256": "0l8zq3k07hdprfpvw69ykkf2pdg8wiv28xz733yxsjcfb0l5n7vy",
+        "version": "5.4.277"
     },
     "6.1": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-6.1.91-hardened1.patch",
-            "sha256": "0rsrsrzjwiwkhr0hhcf1h56g5a0ymwl4h20452s2h7jvh2l8gi6j",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.1.91-hardened1/linux-hardened-6.1.91-hardened1.patch"
+            "name": "linux-hardened-6.1.92-hardened1.patch",
+            "sha256": "0cw87ygmisi823y3f7xrck12b6zh3mq1qmb7lcmr3hg6w3xskmn3",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.1.92-hardened1/linux-hardened-6.1.92-hardened1.patch"
         },
-        "sha256": "1v2d5syxwwqlhvjzxk003qz9sr18r0n8dgg976vbi492r9iww2l8",
-        "version": "6.1.91"
+        "sha256": "1j9n8gk76nn4gw42iba5zgghr360gb9n1mslr5dyv76wpwkz86ch",
+        "version": "6.1.92"
     },
     "6.6": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-6.6.31-hardened1.patch",
-            "sha256": "1asn2q825ffinx59czidhs8fhj31mw5sin7bd11jg2z5n6xi3a08",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.6.31-hardened1/linux-hardened-6.6.31-hardened1.patch"
+            "name": "linux-hardened-6.6.32-hardened1.patch",
+            "sha256": "19362a6lxs3cnaw19jvda7n791y95lfgn9ki4wmaxnw2qbpi0bgg",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.6.32-hardened1/linux-hardened-6.6.32-hardened1.patch"
         },
-        "sha256": "080wwrc231fbf43hvvygddmdxdspyw23jc5vnd6fr5ccdybgzv6n",
-        "version": "6.6.31"
+        "sha256": "1qbc8dqmk2xs1cz968rysw5xvhq3lj8g0pxp48fr2qbzy3m29a5a",
+        "version": "6.6.32"
     },
     "6.8": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-6.8.10-hardened1.patch",
-            "sha256": "0671ylf01gsgbgxd1baswj0h6hwgxxkgrvd03qh81kp3pmr2bpb3",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.8.10-hardened1/linux-hardened-6.8.10-hardened1.patch"
+            "name": "linux-hardened-6.8.11-hardened1.patch",
+            "sha256": "08i03dmri9h6jxcjd9g6s7pv0spqi3f4fgch1ars68cgngikvbpq",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.8.11-hardened1/linux-hardened-6.8.11-hardened1.patch"
         },
-        "sha256": "0xjirg2w5fc2w2q6wr702akszq32m31lk4q5nbjq10zqhbcr5fxh",
-        "version": "6.8.10"
+        "sha256": "1di8kr596sf68sm61kp5rz6bn3sb0q5ag1qc5hm8f9dpyq4wv3dp",
+        "version": "6.8.11"
     },
     "6.9": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-6.9.1-hardened1.patch",
-            "sha256": "1zp0qwri43v4h234x1vqbwcbd50hryshi7i717xandzkpxvq72l2",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.9.1-hardened1/linux-hardened-6.9.1-hardened1.patch"
+            "name": "linux-hardened-6.9.2-hardened1.patch",
+            "sha256": "0ph1m0pnlqrhvddz2mjgcwvs0ddcpzigz8kgi9zi063qinlfbm3q",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.9.2-hardened1/linux-hardened-6.9.2-hardened1.patch"
         },
-        "sha256": "0jn0qp22vx7xf2mgaj7cwf8agqhahvrwlda4ak6rw67xk2x19d01",
-        "version": "6.9.1"
+        "sha256": "1yg5j284y1gz7zwxjz2abvlnas259m1y1vzd9lmcqqar5kgmnv6l",
+        "version": "6.9.2"
     }
 }
diff --git a/pkgs/os-specific/linux/kernel/htmldocs.nix b/pkgs/os-specific/linux/kernel/htmldocs.nix
index eb22645d2e9e7..b811cf12bb01d 100644
--- a/pkgs/os-specific/linux/kernel/htmldocs.nix
+++ b/pkgs/os-specific/linux/kernel/htmldocs.nix
@@ -7,7 +7,6 @@
 , perl
 , python3
 , which
-, fetchpatch
 }:
 
 stdenv.mkDerivation {
@@ -15,16 +14,6 @@ stdenv.mkDerivation {
 
   inherit (linux_latest) version src;
 
-  patches = [
-    # docutils 0.21 has removed nodes.reprunicode
-    # fixes the `AttributeError` thrown when building docs.
-    (fetchpatch {
-      name = "docutils_fix.patch";
-      url = "https://lore.kernel.org/linux-doc/faf5fa45-2a9d-4573-9d2e-3930bdc1ed65@gmail.com/raw";
-      hash = "sha256-JuV1B/8iDysbH0tl+wr/rdXvoC34uUq25ejMFmD0hio=";
-    })
-  ];
-
   postPatch = ''
     patchShebangs \
       Documentation/sphinx/parse-headers.pl \
diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json
index bcf3560c20779..1619002be01c3 100644
--- a/pkgs/os-specific/linux/kernel/kernels-org.json
+++ b/pkgs/os-specific/linux/kernel/kernels-org.json
@@ -1,38 +1,38 @@
 {
     "testing": {
-        "version": "6.9-rc6",
-        "hash": "sha256:075l5vhk8zmwln4jks7gr5n5k67s65qvs07l2rpbc7a75fdp6c14"
+        "version": "6.10-rc4",
+        "hash": "sha256:1cx7c25fa8pvabhwph0rdqdryalxgl7rs1ry0v4k048bxpisvahf"
     },
     "6.1": {
-        "version": "6.1.91",
-        "hash": "sha256:1v2d5syxwwqlhvjzxk003qz9sr18r0n8dgg976vbi492r9iww2l8"
+        "version": "6.1.94",
+        "hash": "sha256:0sakp5k4q2xfd3la7j8s2rcbvndh6fdqgzz5ivyqf0df4anp3siq"
     },
     "5.15": {
-        "version": "5.15.159",
-        "hash": "sha256:1ia1nfci2wkx4nhnldfczpcq47mp7y7g657ikkh8i72y498gwy1l"
+        "version": "5.15.161",
+        "hash": "sha256:0k277hz6nq62v0xfc1n2hc69cyvmnxpl0qcbszinajywh23gfafn"
     },
     "5.10": {
-        "version": "5.10.217",
-        "hash": "sha256:0qhzqrjci45vcbzjch7vq75i6hpyap6yb7jw6g71phcnqgzw2ay5"
+        "version": "5.10.219",
+        "hash": "sha256:0c6dhi6w8likvyyzw7wj2fqhz8nhv760kkic8bk66r1prhakzdwk"
     },
     "5.4": {
-        "version": "5.4.276",
-        "hash": "sha256:01vfx19n8rv9fgjjzvi78125md71zgn5jrinbarabzr18jyjwwg2"
+        "version": "5.4.278",
+        "hash": "sha256:1245zf7vk2fyprw9fspljqy9wlzma9bayri7xx2g8iam2430d875"
     },
     "4.19": {
-        "version": "4.19.314",
-        "hash": "sha256:0nvrpg5aj2q4h2drmczprqaprcc2zhcrijfri77b830ms8rg4y2a"
+        "version": "4.19.316",
+        "hash": "sha256:0lmyhwr4la7kvim7jqdi29scjkvqp9crpvdbhpb4j8d7mj5kgzz4"
     },
     "6.6": {
-        "version": "6.6.31",
-        "hash": "sha256:080wwrc231fbf43hvvygddmdxdspyw23jc5vnd6fr5ccdybgzv6n"
+        "version": "6.6.34",
+        "hash": "sha256:180v8q5376gl6zmjd54qcb1wpmz7cq299bdbhmz738rsb67yrq64"
     },
     "6.8": {
-        "version": "6.8.10",
-        "hash": "sha256:0xjirg2w5fc2w2q6wr702akszq32m31lk4q5nbjq10zqhbcr5fxh"
+        "version": "6.8.12",
+        "hash": "sha256:0fb0m0fv4521g63gq04d7lm6hy8169s1rykiav5bkd99s9b1kcqr"
     },
     "6.9": {
-        "version": "6.9.1",
-        "hash": "sha256:0jn0qp22vx7xf2mgaj7cwf8agqhahvrwlda4ak6rw67xk2x19d01"
+        "version": "6.9.5",
+        "hash": "sha256:1ccm5w2x3faln5d0jj954xf99x7hn74ihk5zv6di99h3a2mv87x5"
     }
 }
diff --git a/pkgs/os-specific/linux/kernel/linux-libre.nix b/pkgs/os-specific/linux/kernel/linux-libre.nix
index 3344808ca2789..b5be3ba7230a9 100644
--- a/pkgs/os-specific/linux/kernel/linux-libre.nix
+++ b/pkgs/os-specific/linux/kernel/linux-libre.nix
@@ -1,8 +1,8 @@
 { stdenv, lib, fetchsvn, linux
 , scripts ? fetchsvn {
     url = "https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/";
-    rev = "19546";
-    sha256 = "1yyj7pbfs02fki1rdxfj9gcrxdrl26igisy4fji7czcc9xbw03qm";
+    rev = "19584";
+    sha256 = "1vhk4jnx8f98lkj2isrms2jm9c5qrpgayxbhawslqrprq1pmzlif";
   }
 , ...
 }:
@@ -23,6 +23,7 @@ in linux.override {
   argsOverride = {
     modDirVersion = "${linux.modDirVersion}-${versionPrefix}";
     isLibre = true;
+    pname = "linux-libre";
 
     src = stdenv.mkDerivation {
       name = "${linux.name}-libre-src";
diff --git a/pkgs/os-specific/linux/kernel/linux-rpi.nix b/pkgs/os-specific/linux/kernel/linux-rpi.nix
index f1449998984be..775a50980f6d4 100644
--- a/pkgs/os-specific/linux/kernel/linux-rpi.nix
+++ b/pkgs/os-specific/linux/kernel/linux-rpi.nix
@@ -2,18 +2,19 @@
 
 let
   # NOTE: raspberrypifw & raspberryPiWirelessFirmware should be updated with this
-  modDirVersion = "6.1.63";
-  tag = "stable_20231123";
+  modDirVersion = "6.6.31";
+  tag = "stable_20240529";
 in
 lib.overrideDerivation (buildLinux (args // {
   version = "${modDirVersion}-${tag}";
   inherit modDirVersion;
+  pname = "linux-rpi";
 
   src = fetchFromGitHub {
     owner = "raspberrypi";
     repo = "linux";
     rev = tag;
-    hash = "sha256-4Rc57y70LmRFwDnOD4rHoHGmfxD9zYEAwYm9Wvyb3no=";
+    hash = "sha256-UWUTeCpEN7dlFSQjog6S3HyEWCCnaqiUqV5KxCjYink=";
   };
 
   defconfig = {
@@ -23,32 +24,33 @@ lib.overrideDerivation (buildLinux (args // {
     "4" = "bcm2711_defconfig";
   }.${toString rpiVersion};
 
+  structuredExtraConfig = (args.structuredExtraConfig or {}) // (with lib.kernel; {
+    # Workaround https://github.com/raspberrypi/linux/issues/6198
+    # Needed because NixOS 24.05+ sets DRM_SIMPLEDRM=y which pulls in
+    # DRM_KMS_HELPER=y.
+    BACKLIGHT_CLASS_DEVICE = yes;
+  });
+
   features = {
     efiBootStub = false;
   } // (args.features or {});
 
   kernelPatches = (args.kernelPatches or []) ++ [
-    # Fix "WARNING: unmet direct dependencies detected for MFD_RP1", and
-    # subsequent build failure.
-    # https://github.com/NixOS/nixpkgs/pull/268280#issuecomment-1911839809
-    # https://github.com/raspberrypi/linux/pull/5900
+    # Fix compilation errors due to incomplete patch backport.
+    # https://github.com/raspberrypi/linux/pull/6223
     {
-      name = "drm-rp1-depends-on-instead-of-select-MFD_RP1.patch";
+      name = "gpio-pwm_-_pwm_apply_might_sleep.patch";
       patch = fetchpatch {
-        url = "https://github.com/peat-psuwit/rpi-linux/commit/6de0bb51929cd3ad4fa27b2a421a2af12e6468f5.patch";
-        hash = "sha256-9pHcbgWTiztu48SBaLPVroUnxnXMKeCGt5vEo9V8WGw=";
+        url = "https://github.com/peat-psuwit/rpi-linux/commit/879f34b88c60dd59765caa30576cb5bfb8e73c56.patch";
+        hash = "sha256-HlOkM9EFmlzOebCGoj7lNV5hc0wMjhaBFFZvaRCI0lI=";
       };
     }
 
-    # Fix `ERROR: modpost: missing MODULE_LICENSE() in <...>/bcm2712-iommu.o`
-    # by preventing such code from being built as module.
-    # https://github.com/NixOS/nixpkgs/pull/284035#issuecomment-1913015802
-    # https://github.com/raspberrypi/linux/pull/5910
     {
-      name = "iommu-bcm2712-don-t-allow-building-as-module.patch";
+      name = "ir-rx51_-_pwm_apply_might_sleep.patch";
       patch = fetchpatch {
-        url = "https://github.com/peat-psuwit/rpi-linux/commit/693a5e69bddbcbe1d1b796ebc7581c3597685b1b.patch";
-        hash = "sha256-8BYYQDM5By8cTk48ASYKJhGVQnZBIK4PXtV70UtfS+A=";
+        url = "https://github.com/peat-psuwit/rpi-linux/commit/23431052d2dce8084b72e399fce82b05d86b847f.patch";
+        hash = "sha256-UDX/BJCJG0WVndP/6PbPK+AZsfU3vVxDCrpn1kb1kqE=";
       };
     }
   ];
diff --git a/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix b/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
index e19b0699a33fe..ec7f104bcb1d2 100644
--- a/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
+++ b/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
@@ -6,25 +6,26 @@
 , ... } @ args:
 
 let
-  version = "5.10.216-rt108"; # updated by ./update-rt.sh
+  version = "5.10.218-rt110"; # updated by ./update-rt.sh
   branch = lib.versions.majorMinor version;
   kversion = builtins.elemAt (lib.splitString "-" version) 0;
 in buildLinux (args // {
   inherit version;
+  pname = "linux-rt";
 
   # modDirVersion needs a patch number, change X.Y-rtZ to X.Y.0-rtZ.
   modDirVersion = lib.versions.pad 3 version;
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz";
-    sha256 = "0lg1zfb9y4ps86q85mlnyalb3s90zix003z62jb9bw139f65h473";
+    sha256 = "1mmj5hwm5i16gc1y4nzr1cs882vi6vrihrincdcivv63x11v4dlw";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "0p0qmyz3g7fqlz4f638dlcp37az8lpq5yqw2fy5zqqs3qagy018j";
+      sha256 = "0zam7hlcrphxv53jcza7sw0lv8a9mz15cl35adwb2rd2y1x9nhad";
     };
   }; in [ rt-patch ] ++ kernelPatches;
 
diff --git a/pkgs/os-specific/linux/kernel/linux-rt-5.15.nix b/pkgs/os-specific/linux/kernel/linux-rt-5.15.nix
index 5e43eca364d42..127d7e6635138 100644
--- a/pkgs/os-specific/linux/kernel/linux-rt-5.15.nix
+++ b/pkgs/os-specific/linux/kernel/linux-rt-5.15.nix
@@ -6,11 +6,12 @@
 , ... } @ args:
 
 let
-  version = "5.15.158-rt76"; # updated by ./update-rt.sh
+  version = "5.15.160-rt77"; # updated by ./update-rt.sh
   branch = lib.versions.majorMinor version;
   kversion = builtins.elemAt (lib.splitString "-" version) 0;
 in buildLinux (args // {
   inherit version;
+  pname = "linux-rt";
 
   # modDirVersion needs a patch number, change X.Y-rtZ to X.Y.0-rtZ.
   modDirVersion = if (builtins.match "[^.]*[.][^.]*-.*" version) == null then version
@@ -18,14 +19,14 @@ in buildLinux (args // {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz";
-    sha256 = "1inmdpif3qf1blmvjj4i7y42bylvhv0wyj3b0apq12zxlj1iq1zr";
+    sha256 = "018v19a7rhzc4szybzzn86jlnk42x7jm6xkadfd2d3xq6f7727pl";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "17kw7cs1p0qgqf911prn3472c1j7r01g0mzqxsxpkdvhawxps7wy";
+      sha256 = "0id4m1k1xq84bxgnchm8r2iwfqw6nacv5n1ksgyzj6q6v66ik3wk";
     };
   }; in [ rt-patch ] ++ kernelPatches;
 
diff --git a/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix b/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
index 463385036292e..2fc18c76e5706 100644
--- a/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
@@ -11,6 +11,7 @@ let
   kversion = builtins.elemAt (lib.splitString "-" version) 0;
 in buildLinux (args // {
   inherit version;
+  pname = "linux-rt";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz";
diff --git a/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix b/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix
index ac0f7d6d9d88a..0427f9c15986d 100644
--- a/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix
+++ b/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix
@@ -6,11 +6,12 @@
 , ... } @ args:
 
 let
-  version = "6.1.90-rt30"; # updated by ./update-rt.sh
+  version = "6.1.92-rt32"; # updated by ./update-rt.sh
   branch = lib.versions.majorMinor version;
   kversion = builtins.elemAt (lib.splitString "-" version) 0;
 in buildLinux (args // {
   inherit version;
+  pname = "linux-rt";
 
   # modDirVersion needs a patch number, change X.Y-rtZ to X.Y.0-rtZ.
   modDirVersion = if (builtins.match "[^.]*[.][^.]*-.*" version) == null then version
@@ -18,14 +19,14 @@ in buildLinux (args // {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v6.x/linux-${kversion}.tar.xz";
-    sha256 = "07cfg0chssvpc4mqls3aln6s4lqjp6k4x2n63wndmkjgfqpdg8w3";
+    sha256 = "1j9n8gk76nn4gw42iba5zgghr360gb9n1mslr5dyv76wpwkz86ch";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "0sgwxdy4bzjqr74nrmsyw1f2lcqpapxmkj5yywf7jkqa20jkdvgr";
+      sha256 = "00qa6l4jvkdny276jnwnra5dkagnp3qr43amf2mpqx3kdfw28g1q";
     };
   }; in [ rt-patch ] ++ kernelPatches;
 
diff --git a/pkgs/os-specific/linux/kernel/linux-rt-6.6.nix b/pkgs/os-specific/linux/kernel/linux-rt-6.6.nix
index 5a2e8959090f7..57c268fe397e0 100644
--- a/pkgs/os-specific/linux/kernel/linux-rt-6.6.nix
+++ b/pkgs/os-specific/linux/kernel/linux-rt-6.6.nix
@@ -6,11 +6,12 @@
 , ... } @ args:
 
 let
-  version = "6.6.30-rt30"; # updated by ./update-rt.sh
+  version = "6.6.32-rt32"; # updated by ./update-rt.sh
   branch = lib.versions.majorMinor version;
   kversion = builtins.elemAt (lib.splitString "-" version) 0;
 in buildLinux (args // {
   inherit version;
+  pname = "linux-rt";
 
   # modDirVersion needs a patch number, change X.Y-rtZ to X.Y.0-rtZ.
   modDirVersion = if (builtins.match "[^.]*[.][^.]*-.*" version) == null then version
@@ -18,14 +19,14 @@ in buildLinux (args // {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v6.x/linux-${kversion}.tar.xz";
-    sha256 = "1ilwmgpgvddwkd9nx5999cb6z18scjyq7jklid26k1hg7f35nsmn";
+    sha256 = "1qbc8dqmk2xs1cz968rysw5xvhq3lj8g0pxp48fr2qbzy3m29a5a";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "05n6fyy5c0f18v4n1rfkcvqj8s0p5x6s16qq5mnmya86rhdr6gn7";
+      sha256 = "0hv2z6d2gw7hqfzw6dgrzxlirk4yifcxbmx71hxlvd9l2vgp72q5";
     };
   }; in [ rt-patch ] ++ kernelPatches;
 
diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix
index cab04ad0c7d80..3060ff9ef775a 100644
--- a/pkgs/os-specific/linux/kernel/manual-config.nix
+++ b/pkgs/os-specific/linux/kernel/manual-config.nix
@@ -20,6 +20,8 @@ let
 in lib.makeOverridable ({
   # The kernel version
   version,
+  # The kernel pname (should be set for variants)
+  pname ? "linux",
   # Position of the Linux build expression
   pos ? null,
   # Additional kernel make flags
@@ -170,12 +172,6 @@ let
         # Ensure that depmod gets resolved through PATH
         sed -i Makefile -e 's|= /sbin/depmod|= depmod|'
 
-        # Don't include a (random) NT_GNU_BUILD_ID, to make the build more deterministic.
-        # This way kernels can be bit-by-bit reproducible depending on settings
-        # (e.g. MODULE_SIG and SECURITY_LOCKDOWN_LSM need to be disabled).
-        # See also https://kernelnewbies.org/BuildId
-        sed -i Makefile -e 's|--build-id=[^ ]*|--build-id=none|'
-
         # Some linux-hardened patches now remove certain files in the scripts directory, so the file may not exist.
         [[ -f scripts/ld-version.sh ]] && patchShebangs scripts/ld-version.sh
 
@@ -301,10 +297,10 @@ let
         export HOME=${installkernel}
       '';
 
-      # Some image types need special install targets (e.g. uImage is installed with make uinstall)
+      # Some image types need special install targets (e.g. uImage is installed with make uinstall on arm)
       installTargets = [
         (kernelConf.installTarget or (
-          /**/ if kernelConf.target == "uImage" then "uinstall"
+          /**/ if kernelConf.target == "uImage" && stdenv.hostPlatform.linuxArch == "arm" then "uinstall"
           else if kernelConf.target == "zImage" || kernelConf.target == "Image.gz" then "zinstall"
           else "install"))
       ];
@@ -408,8 +404,7 @@ assert lib.versionOlder version "5.8" -> libelf != null;
 assert lib.versionAtLeast version "5.8" -> elfutils != null;
 
 stdenv.mkDerivation ((drvAttrs config stdenv.hostPlatform.linux-kernel kernelPatches configfile) // {
-  pname = "linux";
-  inherit version;
+  inherit pname version;
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix
index 20100774395e1..c1715a91e5fbc 100644
--- a/pkgs/os-specific/linux/kernel/patches.nix
+++ b/pkgs/os-specific/linux/kernel/patches.nix
@@ -82,15 +82,21 @@
 
   rust_1_77-6_8 = {
     name = "rust-1.77.patch";
-    patch = fetchurl {
-      name = "rust-1.77.patch";
-      url = "https://lore.kernel.org/rust-for-linux/20240217002717.57507-1-ojeda@kernel.org/raw";
-      hash = "sha256-0KW9nHpJeMSDssCPXWZbrN8kxq5bA434t+XuPfwslUc=";
-    };
+    patch = ./rust-1.77-6.8.patch;
   };
 
   rust_1_77-6_9 = {
     name = "rust-1.77.patch";
     patch = ./rust-1.77.patch;
   };
+
+  rust_1_78 = {
+    name = "rust-1.78.patch";
+    patch = fetchpatch {
+      name = "rust-1.78.patch";
+      url = "https://lore.kernel.org/rust-for-linux/20240401212303.537355-4-ojeda@kernel.org/raw";
+      excludes = [ "Documentation/process/changes.rst" ]; # Conflicts on 6.8.
+      hash = "sha256-EZ+Qa9z1AtAv08e72M7BEsCZi9UK572gmW+AR62a8EM=";
+    };
+  };
 }
diff --git a/pkgs/os-specific/linux/kernel/perf/default.nix b/pkgs/os-specific/linux/kernel/perf/default.nix
index 02f0407425d13..851a4c8d5d7b6 100644
--- a/pkgs/os-specific/linux/kernel/perf/default.nix
+++ b/pkgs/os-specific/linux/kernel/perf/default.nix
@@ -1,6 +1,5 @@
 { lib
 , stdenv
-, fetchpatch
 , fetchurl
 , kernel
 , elfutils
diff --git a/pkgs/os-specific/linux/kernel/rust-1.77-6.8.patch b/pkgs/os-specific/linux/kernel/rust-1.77-6.8.patch
new file mode 100644
index 0000000000000..4b25d3e60e39d
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/rust-1.77-6.8.patch
@@ -0,0 +1,799 @@
+From 82a754271336c7736fb0350692be85fecb30e38e Mon Sep 17 00:00:00 2001
+From: Miguel Ojeda <ojeda@kernel.org>
+Date: Sat, 17 Feb 2024 01:27:17 +0100
+Subject: [PATCH] rust: upgrade to Rust 1.77.1
+
+This is the next upgrade to the Rust toolchain, from 1.76.0 to 1.77.1
+(i.e. the latest) [1].
+
+See the upgrade policy [2] and the comments on the first upgrade in
+commit 3ed03f4da06e ("rust: upgrade to Rust 1.68.2").
+
+# Unstable features
+
+The `offset_of` feature (single-field `offset_of!`) that we were using
+got stabilized in Rust 1.77.0 [3].
+
+Therefore, now the only unstable features allowed to be used outside the
+`kernel` crate is `new_uninit`, though other code to be upstreamed may
+increase the list.
+
+Please see [4] for details.
+
+# Required changes
+
+Rust 1.77.0 merged the `unused_tuple_struct_fields` lint into `dead_code`,
+thus upgrading it from `allow` to `warn` [5]. In turn, this made `rustc`
+complain about the `ThisModule`'s pointer field being never read, but
+the previous patch adds the `as_ptr` method to it, needed by Binder [6],
+so that we do not need to locally `allow` it.
+
+# Other changes
+
+Rust 1.77.0 introduces the `--check-cfg` feature [7], for which there
+is a Call for Testing going on [8]. We were requested to test it and
+we found it useful [9] -- we will likely enable it in the future.
+
+# `alloc` upgrade and reviewing
+
+The vast majority of changes are due to our `alloc` fork being upgraded
+at once.
+
+There are two kinds of changes to be aware of: the ones coming from
+upstream, which we should follow as closely as possible, and the updates
+needed in our added fallible APIs to keep them matching the newer
+infallible APIs coming from upstream.
+
+Instead of taking a look at the diff of this patch, an alternative
+approach is reviewing a diff of the changes between upstream `alloc` and
+the kernel's. This allows to easily inspect the kernel additions only,
+especially to check if the fallible methods we already have still match
+the infallible ones in the new version coming from upstream.
+
+Another approach is reviewing the changes introduced in the additions in
+the kernel fork between the two versions. This is useful to spot
+potentially unintended changes to our additions.
+
+To apply these approaches, one may follow steps similar to the following
+to generate a pair of patches that show the differences between upstream
+Rust and the kernel (for the subset of `alloc` we use) before and after
+applying this patch:
+
+    # Get the difference with respect to the old version.
+    git -C rust checkout $(linux/scripts/min-tool-version.sh rustc)
+    git -C linux ls-tree -r --name-only HEAD -- rust/alloc |
+        cut -d/ -f3- |
+        grep -Fv README.md |
+        xargs -IPATH cp rust/library/alloc/src/PATH linux/rust/alloc/PATH
+    git -C linux diff --patch-with-stat --summary -R > old.patch
+    git -C linux restore rust/alloc
+
+    # Apply this patch.
+    git -C linux am rust-upgrade.patch
+
+    # Get the difference with respect to the new version.
+    git -C rust checkout $(linux/scripts/min-tool-version.sh rustc)
+    git -C linux ls-tree -r --name-only HEAD -- rust/alloc |
+        cut -d/ -f3- |
+        grep -Fv README.md |
+        xargs -IPATH cp rust/library/alloc/src/PATH linux/rust/alloc/PATH
+    git -C linux diff --patch-with-stat --summary -R > new.patch
+    git -C linux restore rust/alloc
+
+Now one may check the `new.patch` to take a look at the additions (first
+approach) or at the difference between those two patches (second
+approach). For the latter, a side-by-side tool is recommended.
+
+Link: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1770-2024-03-21 [1]
+Link: https://rust-for-linux.com/rust-version-policy [2]
+Link: https://github.com/rust-lang/rust/pull/118799 [3]
+Link: https://github.com/Rust-for-Linux/linux/issues/2 [4]
+Link: https://github.com/rust-lang/rust/pull/118297 [5]
+Link: https://lore.kernel.org/rust-for-linux/20231101-rust-binder-v1-2-08ba9197f637@google.com/#Z31rust:kernel:lib.rs [6]
+Link: https://doc.rust-lang.org/nightly/unstable-book/compiler-flags/check-cfg.html [7]
+Link: https://github.com/rust-lang/rfcs/pull/3013#issuecomment-1936648479 [8]
+Link: https://github.com/rust-lang/rust/issues/82450#issuecomment-1947462977 [9]
+Reviewed-by: Alice Ryhl <aliceryhl@google.com>
+Tested-by: Boqun Feng <boqun.feng@gmail.com>
+Link: https://lore.kernel.org/r/20240217002717.57507-1-ojeda@kernel.org
+[ Upgraded to 1.77.1. Removed `allow(dead_code)` thanks to the previous
+  patch. Reworded accordingly. No changes to `alloc` during the beta. ]
+Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
+Signed-off-by: Alyssa Ross <hi@alyssa.is>
+
+# Conflicts:
+#	Documentation/process/changes.rst
+#	rust/kernel/lib.rs
+---
+ Documentation/process/changes.rst |   2 +-
+ rust/alloc/alloc.rs               |   6 +-
+ rust/alloc/boxed.rs               |   4 +-
+ rust/alloc/lib.rs                 |   7 +-
+ rust/alloc/raw_vec.rs             |  13 ++--
+ rust/alloc/slice.rs               |   4 +-
+ rust/alloc/vec/into_iter.rs       | 104 +++++++++++++++++++-----------
+ rust/alloc/vec/mod.rs             | 101 ++++++++++++++++++++---------
+ rust/kernel/lib.rs                |   1 -
+ scripts/Makefile.build            |   2 +-
+ scripts/min-tool-version.sh       |   2 +-
+ 11 files changed, 158 insertions(+), 88 deletions(-)
+
+diff --git a/Documentation/process/changes.rst b/Documentation/process/changes.rst
+index c78ecc1e176f..641d67363b92 100644
+--- a/Documentation/process/changes.rst
++++ b/Documentation/process/changes.rst
+@@ -31,7 +31,7 @@ you probably needn't concern yourself with pcmciautils.
+ ====================== ===============  ========================================
+ GNU C                  5.1              gcc --version
+ Clang/LLVM (optional)  11.0.0           clang --version
+-Rust (optional)        1.76.0           rustc --version
++Rust (optional)        1.77.1           rustc --version
+ bindgen (optional)     0.65.1           bindgen --version
+ GNU make               3.82             make --version
+ bash                   4.2              bash --version
+diff --git a/rust/alloc/alloc.rs b/rust/alloc/alloc.rs
+index abb791cc2371..b1204f87227b 100644
+--- a/rust/alloc/alloc.rs
++++ b/rust/alloc/alloc.rs
+@@ -5,7 +5,7 @@
+ #![stable(feature = "alloc_module", since = "1.28.0")]
+ 
+ #[cfg(not(test))]
+-use core::intrinsics;
++use core::hint;
+ 
+ #[cfg(not(test))]
+ use core::ptr::{self, NonNull};
+@@ -210,7 +210,7 @@ unsafe fn grow_impl(
+                 let new_size = new_layout.size();
+ 
+                 // `realloc` probably checks for `new_size >= old_layout.size()` or something similar.
+-                intrinsics::assume(new_size >= old_layout.size());
++                hint::assert_unchecked(new_size >= old_layout.size());
+ 
+                 let raw_ptr = realloc(ptr.as_ptr(), old_layout, new_size);
+                 let ptr = NonNull::new(raw_ptr).ok_or(AllocError)?;
+@@ -301,7 +301,7 @@ unsafe fn shrink(
+             // SAFETY: `new_size` is non-zero. Other conditions must be upheld by the caller
+             new_size if old_layout.align() == new_layout.align() => unsafe {
+                 // `realloc` probably checks for `new_size <= old_layout.size()` or something similar.
+-                intrinsics::assume(new_size <= old_layout.size());
++                hint::assert_unchecked(new_size <= old_layout.size());
+ 
+                 let raw_ptr = realloc(ptr.as_ptr(), old_layout, new_size);
+                 let ptr = NonNull::new(raw_ptr).ok_or(AllocError)?;
+diff --git a/rust/alloc/boxed.rs b/rust/alloc/boxed.rs
+index c93a22a5c97f..5fc39dfeb8e7 100644
+--- a/rust/alloc/boxed.rs
++++ b/rust/alloc/boxed.rs
+@@ -26,6 +26,7 @@
+ //! Creating a recursive data structure:
+ //!
+ //! ```
++//! ##[allow(dead_code)]
+ //! #[derive(Debug)]
+ //! enum List<T> {
+ //!     Cons(T, Box<List<T>>),
+@@ -194,8 +195,7 @@
+ #[fundamental]
+ #[stable(feature = "rust1", since = "1.0.0")]
+ // The declaration of the `Box` struct must be kept in sync with the
+-// `alloc::alloc::box_free` function or ICEs will happen. See the comment
+-// on `box_free` for more details.
++// compiler or ICEs will happen.
+ pub struct Box<
+     T: ?Sized,
+     #[unstable(feature = "allocator_api", issue = "32838")] A: Allocator = Global,
+diff --git a/rust/alloc/lib.rs b/rust/alloc/lib.rs
+index 36f79c075593..39afd55ec074 100644
+--- a/rust/alloc/lib.rs
++++ b/rust/alloc/lib.rs
+@@ -105,7 +105,6 @@
+ #![feature(allocator_api)]
+ #![feature(array_chunks)]
+ #![feature(array_into_iter_constructors)]
+-#![feature(array_methods)]
+ #![feature(array_windows)]
+ #![feature(ascii_char)]
+ #![feature(assert_matches)]
+@@ -122,7 +121,6 @@
+ #![feature(const_size_of_val)]
+ #![feature(const_waker)]
+ #![feature(core_intrinsics)]
+-#![feature(core_panic)]
+ #![feature(deprecated_suggestion)]
+ #![feature(dispatch_from_dyn)]
+ #![feature(error_generic_member_access)]
+@@ -132,6 +130,7 @@
+ #![feature(fmt_internals)]
+ #![feature(fn_traits)]
+ #![feature(hasher_prefixfree_extras)]
++#![feature(hint_assert_unchecked)]
+ #![feature(inline_const)]
+ #![feature(inplace_iteration)]
+ #![feature(iter_advance_by)]
+@@ -141,6 +140,8 @@
+ #![feature(maybe_uninit_slice)]
+ #![feature(maybe_uninit_uninit_array)]
+ #![feature(maybe_uninit_uninit_array_transpose)]
++#![feature(non_null_convenience)]
++#![feature(panic_internals)]
+ #![feature(pattern)]
+ #![feature(ptr_internals)]
+ #![feature(ptr_metadata)]
+@@ -149,7 +150,6 @@
+ #![feature(set_ptr_value)]
+ #![feature(sized_type_properties)]
+ #![feature(slice_from_ptr_range)]
+-#![feature(slice_group_by)]
+ #![feature(slice_ptr_get)]
+ #![feature(slice_ptr_len)]
+ #![feature(slice_range)]
+@@ -182,6 +182,7 @@
+ #![feature(const_ptr_write)]
+ #![feature(const_trait_impl)]
+ #![feature(const_try)]
++#![feature(decl_macro)]
+ #![feature(dropck_eyepatch)]
+ #![feature(exclusive_range_pattern)]
+ #![feature(fundamental)]
+diff --git a/rust/alloc/raw_vec.rs b/rust/alloc/raw_vec.rs
+index 98b6abf30af6..1839d1c8ee7a 100644
+--- a/rust/alloc/raw_vec.rs
++++ b/rust/alloc/raw_vec.rs
+@@ -4,7 +4,7 @@
+ 
+ use core::alloc::LayoutError;
+ use core::cmp;
+-use core::intrinsics;
++use core::hint;
+ use core::mem::{self, ManuallyDrop, MaybeUninit, SizedTypeProperties};
+ use core::ptr::{self, NonNull, Unique};
+ use core::slice;
+@@ -317,7 +317,7 @@ fn current_memory(&self) -> Option<(NonNull<u8>, Layout)> {
+     ///
+     /// # Panics
+     ///
+-    /// Panics if the new capacity exceeds `isize::MAX` bytes.
++    /// Panics if the new capacity exceeds `isize::MAX` _bytes_.
+     ///
+     /// # Aborts
+     ///
+@@ -358,7 +358,7 @@ pub fn try_reserve(&mut self, len: usize, additional: usize) -> Result<(), TryRe
+         }
+         unsafe {
+             // Inform the optimizer that the reservation has succeeded or wasn't needed
+-            core::intrinsics::assume(!self.needs_to_grow(len, additional));
++            hint::assert_unchecked(!self.needs_to_grow(len, additional));
+         }
+         Ok(())
+     }
+@@ -381,7 +381,7 @@ pub fn try_reserve_for_push(&mut self, len: usize) -> Result<(), TryReserveError
+     ///
+     /// # Panics
+     ///
+-    /// Panics if the new capacity exceeds `isize::MAX` bytes.
++    /// Panics if the new capacity exceeds `isize::MAX` _bytes_.
+     ///
+     /// # Aborts
+     ///
+@@ -402,7 +402,7 @@ pub fn try_reserve_exact(
+         }
+         unsafe {
+             // Inform the optimizer that the reservation has succeeded or wasn't needed
+-            core::intrinsics::assume(!self.needs_to_grow(len, additional));
++            hint::assert_unchecked(!self.needs_to_grow(len, additional));
+         }
+         Ok(())
+     }
+@@ -553,7 +553,7 @@ fn finish_grow<A>(
+         debug_assert_eq!(old_layout.align(), new_layout.align());
+         unsafe {
+             // The allocator checks for alignment equality
+-            intrinsics::assume(old_layout.align() == new_layout.align());
++            hint::assert_unchecked(old_layout.align() == new_layout.align());
+             alloc.grow(ptr, old_layout, new_layout)
+         }
+     } else {
+@@ -591,7 +591,6 @@ fn handle_reserve(result: Result<(), TryReserveError>) {
+ // `> isize::MAX` bytes will surely fail. On 32-bit and 16-bit we need to add
+ // an extra guard for this in case we're running on a platform which can use
+ // all 4GB in user-space, e.g., PAE or x32.
+-
+ #[inline]
+ fn alloc_guard(alloc_size: usize) -> Result<(), TryReserveError> {
+     if usize::BITS < 64 && alloc_size > isize::MAX as usize {
+diff --git a/rust/alloc/slice.rs b/rust/alloc/slice.rs
+index 1181836da5f4..a36b072c9519 100644
+--- a/rust/alloc/slice.rs
++++ b/rust/alloc/slice.rs
+@@ -53,14 +53,14 @@
+ pub use core::slice::{from_mut_ptr_range, from_ptr_range};
+ #[stable(feature = "rust1", since = "1.0.0")]
+ pub use core::slice::{from_raw_parts, from_raw_parts_mut};
++#[stable(feature = "slice_group_by", since = "1.77.0")]
++pub use core::slice::{ChunkBy, ChunkByMut};
+ #[stable(feature = "rust1", since = "1.0.0")]
+ pub use core::slice::{Chunks, Windows};
+ #[stable(feature = "chunks_exact", since = "1.31.0")]
+ pub use core::slice::{ChunksExact, ChunksExactMut};
+ #[stable(feature = "rust1", since = "1.0.0")]
+ pub use core::slice::{ChunksMut, Split, SplitMut};
+-#[unstable(feature = "slice_group_by", issue = "80552")]
+-pub use core::slice::{GroupBy, GroupByMut};
+ #[stable(feature = "rust1", since = "1.0.0")]
+ pub use core::slice::{Iter, IterMut};
+ #[stable(feature = "rchunks", since = "1.31.0")]
+diff --git a/rust/alloc/vec/into_iter.rs b/rust/alloc/vec/into_iter.rs
+index 136bfe94af6c..0f11744c44b3 100644
+--- a/rust/alloc/vec/into_iter.rs
++++ b/rust/alloc/vec/into_iter.rs
+@@ -20,6 +20,17 @@
+ use core::ptr::{self, NonNull};
+ use core::slice::{self};
+ 
++macro non_null {
++    (mut $place:expr, $t:ident) => {{
++        #![allow(unused_unsafe)] // we're sometimes used within an unsafe block
++        unsafe { &mut *(ptr::addr_of_mut!($place) as *mut NonNull<$t>) }
++    }},
++    ($place:expr, $t:ident) => {{
++        #![allow(unused_unsafe)] // we're sometimes used within an unsafe block
++        unsafe { *(ptr::addr_of!($place) as *const NonNull<$t>) }
++    }},
++}
++
+ /// An iterator that moves out of a vector.
+ ///
+ /// This `struct` is created by the `into_iter` method on [`Vec`](super::Vec)
+@@ -43,10 +54,12 @@ pub struct IntoIter<
+     // the drop impl reconstructs a RawVec from buf, cap and alloc
+     // to avoid dropping the allocator twice we need to wrap it into ManuallyDrop
+     pub(super) alloc: ManuallyDrop<A>,
+-    pub(super) ptr: *const T,
+-    pub(super) end: *const T, // If T is a ZST, this is actually ptr+len. This encoding is picked so that
+-                              // ptr == end is a quick test for the Iterator being empty, that works
+-                              // for both ZST and non-ZST.
++    pub(super) ptr: NonNull<T>,
++    /// If T is a ZST, this is actually ptr+len. This encoding is picked so that
++    /// ptr == end is a quick test for the Iterator being empty, that works
++    /// for both ZST and non-ZST.
++    /// For non-ZSTs the pointer is treated as `NonNull<T>`
++    pub(super) end: *const T,
+ }
+ 
+ #[stable(feature = "vec_intoiter_debug", since = "1.13.0")]
+@@ -70,7 +83,7 @@ impl<T, A: Allocator> IntoIter<T, A> {
+     /// ```
+     #[stable(feature = "vec_into_iter_as_slice", since = "1.15.0")]
+     pub fn as_slice(&self) -> &[T] {
+-        unsafe { slice::from_raw_parts(self.ptr, self.len()) }
++        unsafe { slice::from_raw_parts(self.ptr.as_ptr(), self.len()) }
+     }
+ 
+     /// Returns the remaining items of this iterator as a mutable slice.
+@@ -99,7 +112,7 @@ pub fn allocator(&self) -> &A {
+     }
+ 
+     fn as_raw_mut_slice(&mut self) -> *mut [T] {
+-        ptr::slice_from_raw_parts_mut(self.ptr as *mut T, self.len())
++        ptr::slice_from_raw_parts_mut(self.ptr.as_ptr(), self.len())
+     }
+ 
+     /// Drops remaining elements and relinquishes the backing allocation.
+@@ -126,7 +139,7 @@ pub(super) fn forget_allocation_drop_remaining(&mut self) {
+         // this creates less assembly
+         self.cap = 0;
+         self.buf = unsafe { NonNull::new_unchecked(RawVec::NEW.ptr()) };
+-        self.ptr = self.buf.as_ptr();
++        self.ptr = self.buf;
+         self.end = self.buf.as_ptr();
+ 
+         // Dropping the remaining elements can panic, so this needs to be
+@@ -138,9 +151,9 @@ pub(super) fn forget_allocation_drop_remaining(&mut self) {
+ 
+     /// Forgets to Drop the remaining elements while still allowing the backing allocation to be freed.
+     pub(crate) fn forget_remaining_elements(&mut self) {
+-        // For th ZST case, it is crucial that we mutate `end` here, not `ptr`.
++        // For the ZST case, it is crucial that we mutate `end` here, not `ptr`.
+         // `ptr` must stay aligned, while `end` may be unaligned.
+-        self.end = self.ptr;
++        self.end = self.ptr.as_ptr();
+     }
+ 
+     #[cfg(not(no_global_oom_handling))]
+@@ -162,7 +175,7 @@ pub(crate) fn into_vecdeque(self) -> VecDeque<T, A> {
+                 // say that they're all at the beginning of the "allocation".
+                 0..this.len()
+             } else {
+-                this.ptr.sub_ptr(buf)..this.end.sub_ptr(buf)
++                this.ptr.sub_ptr(this.buf)..this.end.sub_ptr(buf)
+             };
+             let cap = this.cap;
+             let alloc = ManuallyDrop::take(&mut this.alloc);
+@@ -189,29 +202,35 @@ impl<T, A: Allocator> Iterator for IntoIter<T, A> {
+ 
+     #[inline]
+     fn next(&mut self) -> Option<T> {
+-        if self.ptr == self.end {
+-            None
+-        } else if T::IS_ZST {
+-            // `ptr` has to stay where it is to remain aligned, so we reduce the length by 1 by
+-            // reducing the `end`.
+-            self.end = self.end.wrapping_byte_sub(1);
++        if T::IS_ZST {
++            if self.ptr.as_ptr() == self.end as *mut _ {
++                None
++            } else {
++                // `ptr` has to stay where it is to remain aligned, so we reduce the length by 1 by
++                // reducing the `end`.
++                self.end = self.end.wrapping_byte_sub(1);
+ 
+-            // Make up a value of this ZST.
+-            Some(unsafe { mem::zeroed() })
++                // Make up a value of this ZST.
++                Some(unsafe { mem::zeroed() })
++            }
+         } else {
+-            let old = self.ptr;
+-            self.ptr = unsafe { self.ptr.add(1) };
++            if self.ptr == non_null!(self.end, T) {
++                None
++            } else {
++                let old = self.ptr;
++                self.ptr = unsafe { old.add(1) };
+ 
+-            Some(unsafe { ptr::read(old) })
++                Some(unsafe { ptr::read(old.as_ptr()) })
++            }
+         }
+     }
+ 
+     #[inline]
+     fn size_hint(&self) -> (usize, Option<usize>) {
+         let exact = if T::IS_ZST {
+-            self.end.addr().wrapping_sub(self.ptr.addr())
++            self.end.addr().wrapping_sub(self.ptr.as_ptr().addr())
+         } else {
+-            unsafe { self.end.sub_ptr(self.ptr) }
++            unsafe { non_null!(self.end, T).sub_ptr(self.ptr) }
+         };
+         (exact, Some(exact))
+     }
+@@ -219,7 +238,7 @@ fn size_hint(&self) -> (usize, Option<usize>) {
+     #[inline]
+     fn advance_by(&mut self, n: usize) -> Result<(), NonZeroUsize> {
+         let step_size = self.len().min(n);
+-        let to_drop = ptr::slice_from_raw_parts_mut(self.ptr as *mut T, step_size);
++        let to_drop = ptr::slice_from_raw_parts_mut(self.ptr.as_ptr(), step_size);
+         if T::IS_ZST {
+             // See `next` for why we sub `end` here.
+             self.end = self.end.wrapping_byte_sub(step_size);
+@@ -261,7 +280,7 @@ fn count(self) -> usize {
+             // Safety: `len` indicates that this many elements are available and we just checked that
+             // it fits into the array.
+             unsafe {
+-                ptr::copy_nonoverlapping(self.ptr, raw_ary.as_mut_ptr() as *mut T, len);
++                ptr::copy_nonoverlapping(self.ptr.as_ptr(), raw_ary.as_mut_ptr() as *mut T, len);
+                 self.forget_remaining_elements();
+                 return Err(array::IntoIter::new_unchecked(raw_ary, 0..len));
+             }
+@@ -270,7 +289,7 @@ fn count(self) -> usize {
+         // Safety: `len` is larger than the array size. Copy a fixed amount here to fully initialize
+         // the array.
+         return unsafe {
+-            ptr::copy_nonoverlapping(self.ptr, raw_ary.as_mut_ptr() as *mut T, N);
++            ptr::copy_nonoverlapping(self.ptr.as_ptr(), raw_ary.as_mut_ptr() as *mut T, N);
+             self.ptr = self.ptr.add(N);
+             Ok(raw_ary.transpose().assume_init())
+         };
+@@ -288,7 +307,7 @@ unsafe fn __iterator_get_unchecked(&mut self, i: usize) -> Self::Item
+         // Also note the implementation of `Self: TrustedRandomAccess` requires
+         // that `T: Copy` so reading elements from the buffer doesn't invalidate
+         // them for `Drop`.
+-        unsafe { if T::IS_ZST { mem::zeroed() } else { ptr::read(self.ptr.add(i)) } }
++        unsafe { if T::IS_ZST { mem::zeroed() } else { self.ptr.add(i).read() } }
+     }
+ }
+ 
+@@ -296,18 +315,25 @@ unsafe fn __iterator_get_unchecked(&mut self, i: usize) -> Self::Item
+ impl<T, A: Allocator> DoubleEndedIterator for IntoIter<T, A> {
+     #[inline]
+     fn next_back(&mut self) -> Option<T> {
+-        if self.end == self.ptr {
+-            None
+-        } else if T::IS_ZST {
+-            // See above for why 'ptr.offset' isn't used
+-            self.end = self.end.wrapping_byte_sub(1);
++        if T::IS_ZST {
++            if self.end as *mut _ == self.ptr.as_ptr() {
++                None
++            } else {
++                // See above for why 'ptr.offset' isn't used
++                self.end = self.end.wrapping_byte_sub(1);
+ 
+-            // Make up a value of this ZST.
+-            Some(unsafe { mem::zeroed() })
++                // Make up a value of this ZST.
++                Some(unsafe { mem::zeroed() })
++            }
+         } else {
+-            self.end = unsafe { self.end.sub(1) };
++            if non_null!(self.end, T) == self.ptr {
++                None
++            } else {
++                let new_end = unsafe { non_null!(self.end, T).sub(1) };
++                *non_null!(mut self.end, T) = new_end;
+ 
+-            Some(unsafe { ptr::read(self.end) })
++                Some(unsafe { ptr::read(new_end.as_ptr()) })
++            }
+         }
+     }
+ 
+@@ -333,7 +359,11 @@ fn advance_back_by(&mut self, n: usize) -> Result<(), NonZeroUsize> {
+ #[stable(feature = "rust1", since = "1.0.0")]
+ impl<T, A: Allocator> ExactSizeIterator for IntoIter<T, A> {
+     fn is_empty(&self) -> bool {
+-        self.ptr == self.end
++        if T::IS_ZST {
++            self.ptr.as_ptr() == self.end as *mut _
++        } else {
++            self.ptr == non_null!(self.end, T)
++        }
+     }
+ }
+ 
+diff --git a/rust/alloc/vec/mod.rs b/rust/alloc/vec/mod.rs
+index 220fb9d6f45b..0be27fff4554 100644
+--- a/rust/alloc/vec/mod.rs
++++ b/rust/alloc/vec/mod.rs
+@@ -360,7 +360,7 @@
+ ///
+ /// `vec![x; n]`, `vec![a, b, c, d]`, and
+ /// [`Vec::with_capacity(n)`][`Vec::with_capacity`], will all produce a `Vec`
+-/// with exactly the requested capacity. If <code>[len] == [capacity]</code>,
++/// with at least the requested capacity. If <code>[len] == [capacity]</code>,
+ /// (as is the case for the [`vec!`] macro), then a `Vec<T>` can be converted to
+ /// and from a [`Box<[T]>`][owned slice] without reallocating or moving the elements.
+ ///
+@@ -447,7 +447,7 @@ pub const fn new() -> Self {
+     ///
+     /// # Panics
+     ///
+-    /// Panics if the new capacity exceeds `isize::MAX` bytes.
++    /// Panics if the new capacity exceeds `isize::MAX` _bytes_.
+     ///
+     /// # Examples
+     ///
+@@ -690,7 +690,7 @@ pub const fn new_in(alloc: A) -> Self {
+     ///
+     /// # Panics
+     ///
+-    /// Panics if the new capacity exceeds `isize::MAX` bytes.
++    /// Panics if the new capacity exceeds `isize::MAX` _bytes_.
+     ///
+     /// # Examples
+     ///
+@@ -1013,7 +1013,7 @@ pub fn capacity(&self) -> usize {
+     ///
+     /// # Panics
+     ///
+-    /// Panics if the new capacity exceeds `isize::MAX` bytes.
++    /// Panics if the new capacity exceeds `isize::MAX` _bytes_.
+     ///
+     /// # Examples
+     ///
+@@ -1043,7 +1043,7 @@ pub fn reserve(&mut self, additional: usize) {
+     ///
+     /// # Panics
+     ///
+-    /// Panics if the new capacity exceeds `isize::MAX` bytes.
++    /// Panics if the new capacity exceeds `isize::MAX` _bytes_.
+     ///
+     /// # Examples
+     ///
+@@ -1140,8 +1140,11 @@ pub fn try_reserve_exact(&mut self, additional: usize) -> Result<(), TryReserveE
+ 
+     /// Shrinks the capacity of the vector as much as possible.
+     ///
+-    /// It will drop down as close as possible to the length but the allocator
+-    /// may still inform the vector that there is space for a few more elements.
++    /// The behavior of this method depends on the allocator, which may either shrink the vector
++    /// in-place or reallocate. The resulting vector might still have some excess capacity, just as
++    /// is the case for [`with_capacity`]. See [`Allocator::shrink`] for more details.
++    ///
++    /// [`with_capacity`]: Vec::with_capacity
+     ///
+     /// # Examples
+     ///
+@@ -1191,10 +1194,10 @@ pub fn shrink_to(&mut self, min_capacity: usize) {
+ 
+     /// Converts the vector into [`Box<[T]>`][owned slice].
+     ///
+-    /// If the vector has excess capacity, its items will be moved into a
+-    /// newly-allocated buffer with exactly the right capacity.
++    /// Before doing the conversion, this method discards excess capacity like [`shrink_to_fit`].
+     ///
+     /// [owned slice]: Box
++    /// [`shrink_to_fit`]: Vec::shrink_to_fit
+     ///
+     /// # Examples
+     ///
+@@ -2017,7 +2020,7 @@ fn drop(&mut self) {
+     ///
+     /// # Panics
+     ///
+-    /// Panics if the new capacity exceeds `isize::MAX` bytes.
++    /// Panics if the new capacity exceeds `isize::MAX` _bytes_.
+     ///
+     /// # Examples
+     ///
+@@ -2133,7 +2136,7 @@ pub fn pop(&mut self) -> Option<T> {
+         } else {
+             unsafe {
+                 self.len -= 1;
+-                core::intrinsics::assume(self.len < self.capacity());
++                core::hint::assert_unchecked(self.len < self.capacity());
+                 Some(ptr::read(self.as_ptr().add(self.len())))
+             }
+         }
+@@ -2143,7 +2146,7 @@ pub fn pop(&mut self) -> Option<T> {
+     ///
+     /// # Panics
+     ///
+-    /// Panics if the new capacity exceeds `isize::MAX` bytes.
++    /// Panics if the new capacity exceeds `isize::MAX` _bytes_.
+     ///
+     /// # Examples
+     ///
+@@ -2315,6 +2318,12 @@ pub fn is_empty(&self) -> bool {
+     /// `[at, len)`. After the call, the original vector will be left containing
+     /// the elements `[0, at)` with its previous capacity unchanged.
+     ///
++    /// - If you want to take ownership of the entire contents and capacity of
++    ///   the vector, see [`mem::take`] or [`mem::replace`].
++    /// - If you don't need the returned vector at all, see [`Vec::truncate`].
++    /// - If you want to take ownership of an arbitrary subslice, or you don't
++    ///   necessarily want to store the removed items in a vector, see [`Vec::drain`].
++    ///
+     /// # Panics
+     ///
+     /// Panics if `at > len`.
+@@ -2346,14 +2355,6 @@ fn assert_failed(at: usize, len: usize) -> ! {
+             assert_failed(at, self.len());
+         }
+ 
+-        if at == 0 {
+-            // the new vector can take over the original buffer and avoid the copy
+-            return mem::replace(
+-                self,
+-                Vec::with_capacity_in(self.capacity(), self.allocator().clone()),
+-            );
+-        }
+-
+         let other_len = self.len - at;
+         let mut other = Vec::with_capacity_in(other_len, self.allocator().clone());
+ 
+@@ -3027,6 +3028,50 @@ fn index_mut(&mut self, index: I) -> &mut Self::Output {
+     }
+ }
+ 
++/// Collects an iterator into a Vec, commonly called via [`Iterator::collect()`]
++///
++/// # Allocation behavior
++///
++/// In general `Vec` does not guarantee any particular growth or allocation strategy.
++/// That also applies to this trait impl.
++///
++/// **Note:** This section covers implementation details and is therefore exempt from
++/// stability guarantees.
++///
++/// Vec may use any or none of the following strategies,
++/// depending on the supplied iterator:
++///
++/// * preallocate based on [`Iterator::size_hint()`]
++///   * and panic if the number of items is outside the provided lower/upper bounds
++/// * use an amortized growth strategy similar to `pushing` one item at a time
++/// * perform the iteration in-place on the original allocation backing the iterator
++///
++/// The last case warrants some attention. It is an optimization that in many cases reduces peak memory
++/// consumption and improves cache locality. But when big, short-lived allocations are created,
++/// only a small fraction of their items get collected, no further use is made of the spare capacity
++/// and the resulting `Vec` is moved into a longer-lived structure, then this can lead to the large
++/// allocations having their lifetimes unnecessarily extended which can result in increased memory
++/// footprint.
++///
++/// In cases where this is an issue, the excess capacity can be discarded with [`Vec::shrink_to()`],
++/// [`Vec::shrink_to_fit()`] or by collecting into [`Box<[T]>`][owned slice] instead, which additionally reduces
++/// the size of the long-lived struct.
++///
++/// [owned slice]: Box
++///
++/// ```rust
++/// # use std::sync::Mutex;
++/// static LONG_LIVED: Mutex<Vec<Vec<u16>>> = Mutex::new(Vec::new());
++///
++/// for i in 0..10 {
++///     let big_temporary: Vec<u16> = (0..1024).collect();
++///     // discard most items
++///     let mut result: Vec<_> = big_temporary.into_iter().filter(|i| i % 100 == 0).collect();
++///     // without this a lot of unused capacity might be moved into the global
++///     result.shrink_to_fit();
++///     LONG_LIVED.lock().unwrap().push(result);
++/// }
++/// ```
+ #[cfg(not(no_global_oom_handling))]
+ #[stable(feature = "rust1", since = "1.0.0")]
+ impl<T> FromIterator<T> for Vec<T> {
+@@ -3069,14 +3114,8 @@ fn into_iter(self) -> Self::IntoIter {
+                 begin.add(me.len()) as *const T
+             };
+             let cap = me.buf.capacity();
+-            IntoIter {
+-                buf: NonNull::new_unchecked(begin),
+-                phantom: PhantomData,
+-                cap,
+-                alloc,
+-                ptr: begin,
+-                end,
+-            }
++            let buf = NonNull::new_unchecked(begin);
++            IntoIter { buf, phantom: PhantomData, cap, alloc, ptr: buf, end }
+         }
+     }
+ }
+@@ -3598,8 +3637,10 @@ fn from(s: Box<[T], A>) -> Self {
+ impl<T, A: Allocator> From<Vec<T, A>> for Box<[T], A> {
+     /// Convert a vector into a boxed slice.
+     ///
+-    /// If `v` has excess capacity, its items will be moved into a
+-    /// newly-allocated buffer with exactly the right capacity.
++    /// Before doing the conversion, this method discards excess capacity like [`Vec::shrink_to_fit`].
++    ///
++    /// [owned slice]: Box
++    /// [`Vec::shrink_to_fit`]: Vec::shrink_to_fit
+     ///
+     /// # Examples
+     ///
+diff --git a/rust/kernel/lib.rs b/rust/kernel/lib.rs
+index 75efe47522e4..f07bc5a2c6b4 100644
+--- a/rust/kernel/lib.rs
++++ b/rust/kernel/lib.rs
+@@ -17,7 +17,6 @@
+ #![feature(const_maybe_uninit_zeroed)]
+ #![feature(dispatch_from_dyn)]
+ #![feature(new_uninit)]
+-#![feature(offset_of)]
+ #![feature(ptr_metadata)]
+ #![feature(receiver_trait)]
+ #![feature(unsize)]
+diff --git a/scripts/Makefile.build b/scripts/Makefile.build
+index 1633175846df..0bc7c5fe64b1 100644
+--- a/scripts/Makefile.build
++++ b/scripts/Makefile.build
+@@ -262,7 +262,7 @@ $(obj)/%.lst: $(src)/%.c FORCE
+ # Compile Rust sources (.rs)
+ # ---------------------------------------------------------------------------
+ 
+-rust_allowed_features := new_uninit,offset_of
++rust_allowed_features := new_uninit
+ 
+ # `--out-dir` is required to avoid temporaries being created by `rustc` in the
+ # current working directory, which may be not accessible in the out-of-tree
+diff --git a/scripts/min-tool-version.sh b/scripts/min-tool-version.sh
+index e217683b10d6..db2b0bc5866b 100755
+--- a/scripts/min-tool-version.sh
++++ b/scripts/min-tool-version.sh
+@@ -33,7 +33,7 @@ llvm)
+ 	fi
+ 	;;
+ rustc)
+-	echo 1.76.0
++	echo 1.77.1
+ 	;;
+ bindgen)
+ 	echo 0.65.1
+-- 
+2.44.0
+
diff --git a/pkgs/os-specific/linux/kernel/rust-1.77.patch b/pkgs/os-specific/linux/kernel/rust-1.77.patch
index 8bd0a5e337154..ed9eb56bf6d7e 100644
--- a/pkgs/os-specific/linux/kernel/rust-1.77.patch
+++ b/pkgs/os-specific/linux/kernel/rust-1.77.patch
@@ -1,14 +1,16 @@
-From d69265b7d756931b2e763a3262f22ba4100895a0 Mon Sep 17 00:00:00 2001
+From b256fc507d4710287b22077834c16d18cee4ab17 Mon Sep 17 00:00:00 2001
 From: Miguel Ojeda <ojeda@kernel.org>
 Date: Sat, 17 Feb 2024 01:27:17 +0100
-Subject: [PATCH] rust: upgrade to Rust 1.77.0
+Subject: [PATCH] rust: upgrade to Rust 1.77.1
 
-This is the next upgrade to the Rust toolchain, from 1.76.0 to 1.77.0
+This is the next upgrade to the Rust toolchain, from 1.76.0 to 1.77.1
 (i.e. the latest) [1].
 
 See the upgrade policy [2] and the comments on the first upgrade in
 commit 3ed03f4da06e ("rust: upgrade to Rust 1.68.2").
 
+# Unstable features
+
 The `offset_of` feature (single-field `offset_of!`) that we were using
 got stabilized in Rust 1.77.0 [3].
 
@@ -18,16 +20,22 @@ increase the list.
 
 Please see [4] for details.
 
+# Required changes
+
 Rust 1.77.0 merged the `unused_tuple_struct_fields` lint into `dead_code`,
-thus upgrading it from `allow` to `warn` [5]. In turn, this makes `rustc`
-complain about the `ThisModule`'s pointer field being never read. Thus
-locally `allow` it for the moment, since we will have users later on
-(e.g. Binder needs a `as_ptr` method [6]).
+thus upgrading it from `allow` to `warn` [5]. In turn, this made `rustc`
+complain about the `ThisModule`'s pointer field being never read, but
+the previous patch adds the `as_ptr` method to it, needed by Binder [6],
+so that we do not need to locally `allow` it.
+
+# Other changes
 
 Rust 1.77.0 introduces the `--check-cfg` feature [7], for which there
 is a Call for Testing going on [8]. We were requested to test it and
 we found it useful [9] -- we will likely enable it in the future.
 
+# `alloc` upgrade and reviewing
+
 The vast majority of changes are due to our `alloc` fork being upgraded
 at once.
 
@@ -85,9 +93,12 @@ Link: https://lore.kernel.org/rust-for-linux/20231101-rust-binder-v1-2-08ba9197f
 Link: https://doc.rust-lang.org/nightly/unstable-book/compiler-flags/check-cfg.html [7]
 Link: https://github.com/rust-lang/rfcs/pull/3013#issuecomment-1936648479 [8]
 Link: https://github.com/rust-lang/rust/issues/82450#issuecomment-1947462977 [9]
-Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
+Reviewed-by: Alice Ryhl <aliceryhl@google.com>
+Tested-by: Boqun Feng <boqun.feng@gmail.com>
 Link: https://lore.kernel.org/r/20240217002717.57507-1-ojeda@kernel.org
-Link: https://github.com/Rust-for-Linux/linux/commit/d69265b7d756931b2e763a3262f22ba4100895a0
+[ Upgraded to 1.77.1. Removed `allow(dead_code)` thanks to the previous
+  patch. Reworded accordingly. No changes to `alloc` during the beta. ]
+Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
 Signed-off-by: Alyssa Ross <hi@alyssa.is>
 ---
  Documentation/process/changes.rst |   2 +-
@@ -96,15 +107,15 @@ Signed-off-by: Alyssa Ross <hi@alyssa.is>
  rust/alloc/lib.rs                 |   7 +-
  rust/alloc/raw_vec.rs             |  13 ++--
  rust/alloc/slice.rs               |   4 +-
- rust/alloc/vec/into_iter.rs       | 108 +++++++++++++++++++-----------
- rust/alloc/vec/mod.rs             | 101 +++++++++++++++++++---------
- rust/kernel/lib.rs                |   3 +-
+ rust/alloc/vec/into_iter.rs       | 104 +++++++++++++++++++-----------
+ rust/alloc/vec/mod.rs             | 101 ++++++++++++++++++++---------
+ rust/kernel/lib.rs                |   1 -
  scripts/Makefile.build            |   2 +-
  scripts/min-tool-version.sh       |   2 +-
- 11 files changed, 161 insertions(+), 91 deletions(-)
+ 11 files changed, 158 insertions(+), 88 deletions(-)
 
 diff --git a/Documentation/process/changes.rst b/Documentation/process/changes.rst
-index 7ef8de58f7f892..879ee628893ae1 100644
+index 7ef8de58f7f8..b5d3107c6734 100644
 --- a/Documentation/process/changes.rst
 +++ b/Documentation/process/changes.rst
 @@ -31,7 +31,7 @@ you probably needn't concern yourself with pcmciautils.
@@ -112,12 +123,12 @@ index 7ef8de58f7f892..879ee628893ae1 100644
  GNU C                  5.1              gcc --version
  Clang/LLVM (optional)  13.0.1           clang --version
 -Rust (optional)        1.76.0           rustc --version
-+Rust (optional)        1.77.0           rustc --version
++Rust (optional)        1.77.1           rustc --version
  bindgen (optional)     0.65.1           bindgen --version
  GNU make               3.82             make --version
  bash                   4.2              bash --version
 diff --git a/rust/alloc/alloc.rs b/rust/alloc/alloc.rs
-index abb791cc23715a..b1204f87227b23 100644
+index abb791cc2371..b1204f87227b 100644
 --- a/rust/alloc/alloc.rs
 +++ b/rust/alloc/alloc.rs
 @@ -5,7 +5,7 @@
@@ -129,7 +140,7 @@ index abb791cc23715a..b1204f87227b23 100644
  
  #[cfg(not(test))]
  use core::ptr::{self, NonNull};
-@@ -210,7 +210,7 @@ impl Global {
+@@ -210,7 +210,7 @@ unsafe fn grow_impl(
                  let new_size = new_layout.size();
  
                  // `realloc` probably checks for `new_size >= old_layout.size()` or something similar.
@@ -138,7 +149,7 @@ index abb791cc23715a..b1204f87227b23 100644
  
                  let raw_ptr = realloc(ptr.as_ptr(), old_layout, new_size);
                  let ptr = NonNull::new(raw_ptr).ok_or(AllocError)?;
-@@ -301,7 +301,7 @@ unsafe impl Allocator for Global {
+@@ -301,7 +301,7 @@ unsafe fn shrink(
              // SAFETY: `new_size` is non-zero. Other conditions must be upheld by the caller
              new_size if old_layout.align() == new_layout.align() => unsafe {
                  // `realloc` probably checks for `new_size <= old_layout.size()` or something similar.
@@ -148,7 +159,7 @@ index abb791cc23715a..b1204f87227b23 100644
                  let raw_ptr = realloc(ptr.as_ptr(), old_layout, new_size);
                  let ptr = NonNull::new(raw_ptr).ok_or(AllocError)?;
 diff --git a/rust/alloc/boxed.rs b/rust/alloc/boxed.rs
-index c93a22a5c97f14..5fc39dfeb8e7bf 100644
+index c93a22a5c97f..5fc39dfeb8e7 100644
 --- a/rust/alloc/boxed.rs
 +++ b/rust/alloc/boxed.rs
 @@ -26,6 +26,7 @@
@@ -159,7 +170,7 @@ index c93a22a5c97f14..5fc39dfeb8e7bf 100644
  //! #[derive(Debug)]
  //! enum List<T> {
  //!     Cons(T, Box<List<T>>),
-@@ -194,8 +195,7 @@ mod thin;
+@@ -194,8 +195,7 @@
  #[fundamental]
  #[stable(feature = "rust1", since = "1.0.0")]
  // The declaration of the `Box` struct must be kept in sync with the
@@ -170,7 +181,7 @@ index c93a22a5c97f14..5fc39dfeb8e7bf 100644
      T: ?Sized,
      #[unstable(feature = "allocator_api", issue = "32838")] A: Allocator = Global,
 diff --git a/rust/alloc/lib.rs b/rust/alloc/lib.rs
-index 36f79c07559338..39afd55ec0749e 100644
+index 36f79c075593..39afd55ec074 100644
 --- a/rust/alloc/lib.rs
 +++ b/rust/alloc/lib.rs
 @@ -105,7 +105,6 @@
@@ -223,7 +234,7 @@ index 36f79c07559338..39afd55ec0749e 100644
  #![feature(exclusive_range_pattern)]
  #![feature(fundamental)]
 diff --git a/rust/alloc/raw_vec.rs b/rust/alloc/raw_vec.rs
-index 98b6abf30af6e4..1839d1c8ee7a04 100644
+index 98b6abf30af6..1839d1c8ee7a 100644
 --- a/rust/alloc/raw_vec.rs
 +++ b/rust/alloc/raw_vec.rs
 @@ -4,7 +4,7 @@
@@ -235,7 +246,7 @@ index 98b6abf30af6e4..1839d1c8ee7a04 100644
  use core::mem::{self, ManuallyDrop, MaybeUninit, SizedTypeProperties};
  use core::ptr::{self, NonNull, Unique};
  use core::slice;
-@@ -317,7 +317,7 @@ impl<T, A: Allocator> RawVec<T, A> {
+@@ -317,7 +317,7 @@ fn current_memory(&self) -> Option<(NonNull<u8>, Layout)> {
      ///
      /// # Panics
      ///
@@ -244,7 +255,7 @@ index 98b6abf30af6e4..1839d1c8ee7a04 100644
      ///
      /// # Aborts
      ///
-@@ -358,7 +358,7 @@ impl<T, A: Allocator> RawVec<T, A> {
+@@ -358,7 +358,7 @@ pub fn try_reserve(&mut self, len: usize, additional: usize) -> Result<(), TryRe
          }
          unsafe {
              // Inform the optimizer that the reservation has succeeded or wasn't needed
@@ -253,7 +264,7 @@ index 98b6abf30af6e4..1839d1c8ee7a04 100644
          }
          Ok(())
      }
-@@ -381,7 +381,7 @@ impl<T, A: Allocator> RawVec<T, A> {
+@@ -381,7 +381,7 @@ pub fn try_reserve_for_push(&mut self, len: usize) -> Result<(), TryReserveError
      ///
      /// # Panics
      ///
@@ -262,7 +273,7 @@ index 98b6abf30af6e4..1839d1c8ee7a04 100644
      ///
      /// # Aborts
      ///
-@@ -402,7 +402,7 @@ impl<T, A: Allocator> RawVec<T, A> {
+@@ -402,7 +402,7 @@ pub fn try_reserve_exact(
          }
          unsafe {
              // Inform the optimizer that the reservation has succeeded or wasn't needed
@@ -271,7 +282,7 @@ index 98b6abf30af6e4..1839d1c8ee7a04 100644
          }
          Ok(())
      }
-@@ -553,7 +553,7 @@ where
+@@ -553,7 +553,7 @@ fn finish_grow<A>(
          debug_assert_eq!(old_layout.align(), new_layout.align());
          unsafe {
              // The allocator checks for alignment equality
@@ -289,10 +300,10 @@ index 98b6abf30af6e4..1839d1c8ee7a04 100644
  fn alloc_guard(alloc_size: usize) -> Result<(), TryReserveError> {
      if usize::BITS < 64 && alloc_size > isize::MAX as usize {
 diff --git a/rust/alloc/slice.rs b/rust/alloc/slice.rs
-index 1181836da5f462..a36b072c95195f 100644
+index 1181836da5f4..a36b072c9519 100644
 --- a/rust/alloc/slice.rs
 +++ b/rust/alloc/slice.rs
-@@ -53,14 +53,14 @@ pub use core::slice::{from_mut, from_ref};
+@@ -53,14 +53,14 @@
  pub use core::slice::{from_mut_ptr_range, from_ptr_range};
  #[stable(feature = "rust1", since = "1.0.0")]
  pub use core::slice::{from_raw_parts, from_raw_parts_mut};
@@ -310,10 +321,10 @@ index 1181836da5f462..a36b072c95195f 100644
  pub use core::slice::{Iter, IterMut};
  #[stable(feature = "rchunks", since = "1.31.0")]
 diff --git a/rust/alloc/vec/into_iter.rs b/rust/alloc/vec/into_iter.rs
-index 136bfe94af6c83..0f11744c44b34c 100644
+index 136bfe94af6c..0f11744c44b3 100644
 --- a/rust/alloc/vec/into_iter.rs
 +++ b/rust/alloc/vec/into_iter.rs
-@@ -20,6 +20,17 @@ use core::ops::Deref;
+@@ -20,6 +20,17 @@
  use core::ptr::{self, NonNull};
  use core::slice::{self};
  
@@ -357,7 +368,7 @@ index 136bfe94af6c83..0f11744c44b34c 100644
      }
  
      /// Returns the remaining items of this iterator as a mutable slice.
-@@ -99,7 +112,7 @@ impl<T, A: Allocator> IntoIter<T, A> {
+@@ -99,7 +112,7 @@ pub fn allocator(&self) -> &A {
      }
  
      fn as_raw_mut_slice(&mut self) -> *mut [T] {
@@ -366,7 +377,7 @@ index 136bfe94af6c83..0f11744c44b34c 100644
      }
  
      /// Drops remaining elements and relinquishes the backing allocation.
-@@ -126,7 +139,7 @@ impl<T, A: Allocator> IntoIter<T, A> {
+@@ -126,7 +139,7 @@ pub(super) fn forget_allocation_drop_remaining(&mut self) {
          // this creates less assembly
          self.cap = 0;
          self.buf = unsafe { NonNull::new_unchecked(RawVec::NEW.ptr()) };
@@ -375,7 +386,7 @@ index 136bfe94af6c83..0f11744c44b34c 100644
          self.end = self.buf.as_ptr();
  
          // Dropping the remaining elements can panic, so this needs to be
-@@ -138,9 +151,9 @@ impl<T, A: Allocator> IntoIter<T, A> {
+@@ -138,9 +151,9 @@ pub(super) fn forget_allocation_drop_remaining(&mut self) {
  
      /// Forgets to Drop the remaining elements while still allowing the backing allocation to be freed.
      pub(crate) fn forget_remaining_elements(&mut self) {
@@ -387,7 +398,7 @@ index 136bfe94af6c83..0f11744c44b34c 100644
      }
  
      #[cfg(not(no_global_oom_handling))]
-@@ -162,7 +175,7 @@ impl<T, A: Allocator> IntoIter<T, A> {
+@@ -162,7 +175,7 @@ pub(crate) fn into_vecdeque(self) -> VecDeque<T, A> {
                  // say that they're all at the beginning of the "allocation".
                  0..this.len()
              } else {
@@ -406,9 +417,6 @@ index 136bfe94af6c83..0f11744c44b34c 100644
 -            // `ptr` has to stay where it is to remain aligned, so we reduce the length by 1 by
 -            // reducing the `end`.
 -            self.end = self.end.wrapping_byte_sub(1);
--
--            // Make up a value of this ZST.
--            Some(unsafe { mem::zeroed() })
 +        if T::IS_ZST {
 +            if self.ptr.as_ptr() == self.end as *mut _ {
 +                None
@@ -416,7 +424,9 @@ index 136bfe94af6c83..0f11744c44b34c 100644
 +                // `ptr` has to stay where it is to remain aligned, so we reduce the length by 1 by
 +                // reducing the `end`.
 +                self.end = self.end.wrapping_byte_sub(1);
-+
+ 
+-            // Make up a value of this ZST.
+-            Some(unsafe { mem::zeroed() })
 +                // Make up a value of this ZST.
 +                Some(unsafe { mem::zeroed() })
 +            }
@@ -446,7 +456,7 @@ index 136bfe94af6c83..0f11744c44b34c 100644
          };
          (exact, Some(exact))
      }
-@@ -219,7 +238,7 @@ impl<T, A: Allocator> Iterator for IntoIter<T, A> {
+@@ -219,7 +238,7 @@ fn size_hint(&self) -> (usize, Option<usize>) {
      #[inline]
      fn advance_by(&mut self, n: usize) -> Result<(), NonZeroUsize> {
          let step_size = self.len().min(n);
@@ -455,7 +465,7 @@ index 136bfe94af6c83..0f11744c44b34c 100644
          if T::IS_ZST {
              // See `next` for why we sub `end` here.
              self.end = self.end.wrapping_byte_sub(step_size);
-@@ -261,7 +280,7 @@ impl<T, A: Allocator> Iterator for IntoIter<T, A> {
+@@ -261,7 +280,7 @@ fn count(self) -> usize {
              // Safety: `len` indicates that this many elements are available and we just checked that
              // it fits into the array.
              unsafe {
@@ -464,7 +474,7 @@ index 136bfe94af6c83..0f11744c44b34c 100644
                  self.forget_remaining_elements();
                  return Err(array::IntoIter::new_unchecked(raw_ary, 0..len));
              }
-@@ -270,7 +289,7 @@ impl<T, A: Allocator> Iterator for IntoIter<T, A> {
+@@ -270,7 +289,7 @@ fn count(self) -> usize {
          // Safety: `len` is larger than the array size. Copy a fixed amount here to fully initialize
          // the array.
          return unsafe {
@@ -473,7 +483,7 @@ index 136bfe94af6c83..0f11744c44b34c 100644
              self.ptr = self.ptr.add(N);
              Ok(raw_ary.transpose().assume_init())
          };
-@@ -288,7 +307,7 @@ impl<T, A: Allocator> Iterator for IntoIter<T, A> {
+@@ -288,7 +307,7 @@ unsafe fn __iterator_get_unchecked(&mut self, i: usize) -> Self::Item
          // Also note the implementation of `Self: TrustedRandomAccess` requires
          // that `T: Copy` so reading elements from the buffer doesn't invalidate
          // them for `Drop`.
@@ -482,7 +492,7 @@ index 136bfe94af6c83..0f11744c44b34c 100644
      }
  }
  
-@@ -296,18 +315,25 @@ impl<T, A: Allocator> Iterator for IntoIter<T, A> {
+@@ -296,18 +315,25 @@ unsafe fn __iterator_get_unchecked(&mut self, i: usize) -> Self::Item
  impl<T, A: Allocator> DoubleEndedIterator for IntoIter<T, A> {
      #[inline]
      fn next_back(&mut self) -> Option<T> {
@@ -491,16 +501,15 @@ index 136bfe94af6c83..0f11744c44b34c 100644
 -        } else if T::IS_ZST {
 -            // See above for why 'ptr.offset' isn't used
 -            self.end = self.end.wrapping_byte_sub(1);
--
--            // Make up a value of this ZST.
--            Some(unsafe { mem::zeroed() })
 +        if T::IS_ZST {
 +            if self.end as *mut _ == self.ptr.as_ptr() {
 +                None
 +            } else {
 +                // See above for why 'ptr.offset' isn't used
 +                self.end = self.end.wrapping_byte_sub(1);
-+
+ 
+-            // Make up a value of this ZST.
+-            Some(unsafe { mem::zeroed() })
 +                // Make up a value of this ZST.
 +                Some(unsafe { mem::zeroed() })
 +            }
@@ -518,7 +527,7 @@ index 136bfe94af6c83..0f11744c44b34c 100644
          }
      }
  
-@@ -333,7 +359,11 @@ impl<T, A: Allocator> DoubleEndedIterator for IntoIter<T, A> {
+@@ -333,7 +359,11 @@ fn advance_back_by(&mut self, n: usize) -> Result<(), NonZeroUsize> {
  #[stable(feature = "rust1", since = "1.0.0")]
  impl<T, A: Allocator> ExactSizeIterator for IntoIter<T, A> {
      fn is_empty(&self) -> bool {
@@ -532,10 +541,10 @@ index 136bfe94af6c83..0f11744c44b34c 100644
  }
  
 diff --git a/rust/alloc/vec/mod.rs b/rust/alloc/vec/mod.rs
-index 220fb9d6f45b3f..0be27fff4554a1 100644
+index 220fb9d6f45b..0be27fff4554 100644
 --- a/rust/alloc/vec/mod.rs
 +++ b/rust/alloc/vec/mod.rs
-@@ -360,7 +360,7 @@ mod spec_extend;
+@@ -360,7 +360,7 @@
  ///
  /// `vec![x; n]`, `vec![a, b, c, d]`, and
  /// [`Vec::with_capacity(n)`][`Vec::with_capacity`], will all produce a `Vec`
@@ -544,7 +553,7 @@ index 220fb9d6f45b3f..0be27fff4554a1 100644
  /// (as is the case for the [`vec!`] macro), then a `Vec<T>` can be converted to
  /// and from a [`Box<[T]>`][owned slice] without reallocating or moving the elements.
  ///
-@@ -447,7 +447,7 @@ impl<T> Vec<T> {
+@@ -447,7 +447,7 @@ pub const fn new() -> Self {
      ///
      /// # Panics
      ///
@@ -553,7 +562,7 @@ index 220fb9d6f45b3f..0be27fff4554a1 100644
      ///
      /// # Examples
      ///
-@@ -690,7 +690,7 @@ impl<T, A: Allocator> Vec<T, A> {
+@@ -690,7 +690,7 @@ pub const fn new_in(alloc: A) -> Self {
      ///
      /// # Panics
      ///
@@ -562,7 +571,7 @@ index 220fb9d6f45b3f..0be27fff4554a1 100644
      ///
      /// # Examples
      ///
-@@ -1013,7 +1013,7 @@ impl<T, A: Allocator> Vec<T, A> {
+@@ -1013,7 +1013,7 @@ pub fn capacity(&self) -> usize {
      ///
      /// # Panics
      ///
@@ -571,7 +580,7 @@ index 220fb9d6f45b3f..0be27fff4554a1 100644
      ///
      /// # Examples
      ///
-@@ -1043,7 +1043,7 @@ impl<T, A: Allocator> Vec<T, A> {
+@@ -1043,7 +1043,7 @@ pub fn reserve(&mut self, additional: usize) {
      ///
      /// # Panics
      ///
@@ -580,7 +589,7 @@ index 220fb9d6f45b3f..0be27fff4554a1 100644
      ///
      /// # Examples
      ///
-@@ -1140,8 +1140,11 @@ impl<T, A: Allocator> Vec<T, A> {
+@@ -1140,8 +1140,11 @@ pub fn try_reserve_exact(&mut self, additional: usize) -> Result<(), TryReserveE
  
      /// Shrinks the capacity of the vector as much as possible.
      ///
@@ -594,7 +603,7 @@ index 220fb9d6f45b3f..0be27fff4554a1 100644
      ///
      /// # Examples
      ///
-@@ -1191,10 +1194,10 @@ impl<T, A: Allocator> Vec<T, A> {
+@@ -1191,10 +1194,10 @@ pub fn shrink_to(&mut self, min_capacity: usize) {
  
      /// Converts the vector into [`Box<[T]>`][owned slice].
      ///
@@ -607,7 +616,7 @@ index 220fb9d6f45b3f..0be27fff4554a1 100644
      ///
      /// # Examples
      ///
-@@ -2017,7 +2020,7 @@ impl<T, A: Allocator> Vec<T, A> {
+@@ -2017,7 +2020,7 @@ fn drop(&mut self) {
      ///
      /// # Panics
      ///
@@ -616,7 +625,7 @@ index 220fb9d6f45b3f..0be27fff4554a1 100644
      ///
      /// # Examples
      ///
-@@ -2133,7 +2136,7 @@ impl<T, A: Allocator> Vec<T, A> {
+@@ -2133,7 +2136,7 @@ pub fn pop(&mut self) -> Option<T> {
          } else {
              unsafe {
                  self.len -= 1;
@@ -625,7 +634,7 @@ index 220fb9d6f45b3f..0be27fff4554a1 100644
                  Some(ptr::read(self.as_ptr().add(self.len())))
              }
          }
-@@ -2143,7 +2146,7 @@ impl<T, A: Allocator> Vec<T, A> {
+@@ -2143,7 +2146,7 @@ pub fn pop(&mut self) -> Option<T> {
      ///
      /// # Panics
      ///
@@ -634,7 +643,7 @@ index 220fb9d6f45b3f..0be27fff4554a1 100644
      ///
      /// # Examples
      ///
-@@ -2315,6 +2318,12 @@ impl<T, A: Allocator> Vec<T, A> {
+@@ -2315,6 +2318,12 @@ pub fn is_empty(&self) -> bool {
      /// `[at, len)`. After the call, the original vector will be left containing
      /// the elements `[0, at)` with its previous capacity unchanged.
      ///
@@ -647,7 +656,7 @@ index 220fb9d6f45b3f..0be27fff4554a1 100644
      /// # Panics
      ///
      /// Panics if `at > len`.
-@@ -2346,14 +2355,6 @@ impl<T, A: Allocator> Vec<T, A> {
+@@ -2346,14 +2355,6 @@ fn assert_failed(at: usize, len: usize) -> ! {
              assert_failed(at, self.len());
          }
  
@@ -662,7 +671,7 @@ index 220fb9d6f45b3f..0be27fff4554a1 100644
          let other_len = self.len - at;
          let mut other = Vec::with_capacity_in(other_len, self.allocator().clone());
  
-@@ -3027,6 +3028,50 @@ impl<T, I: SliceIndex<[T]>, A: Allocator> IndexMut<I> for Vec<T, A> {
+@@ -3027,6 +3028,50 @@ fn index_mut(&mut self, index: I) -> &mut Self::Output {
      }
  }
  
@@ -713,7 +722,7 @@ index 220fb9d6f45b3f..0be27fff4554a1 100644
  #[cfg(not(no_global_oom_handling))]
  #[stable(feature = "rust1", since = "1.0.0")]
  impl<T> FromIterator<T> for Vec<T> {
-@@ -3069,14 +3114,8 @@ impl<T, A: Allocator> IntoIterator for Vec<T, A> {
+@@ -3069,14 +3114,8 @@ fn into_iter(self) -> Self::IntoIter {
                  begin.add(me.len()) as *const T
              };
              let cap = me.buf.capacity();
@@ -730,7 +739,7 @@ index 220fb9d6f45b3f..0be27fff4554a1 100644
          }
      }
  }
-@@ -3598,8 +3637,10 @@ impl<T, A: Allocator> From<Box<[T], A>> for Vec<T, A> {
+@@ -3598,8 +3637,10 @@ fn from(s: Box<[T], A>) -> Self {
  impl<T, A: Allocator> From<Vec<T, A>> for Box<[T], A> {
      /// Convert a vector into a boxed slice.
      ///
@@ -744,7 +753,7 @@ index 220fb9d6f45b3f..0be27fff4554a1 100644
      /// # Examples
      ///
 diff --git a/rust/kernel/lib.rs b/rust/kernel/lib.rs
-index be68d5e567b1a1..71f95e5aa09abd 100644
+index 6858e2f8a3ed..9e9b245ebab5 100644
 --- a/rust/kernel/lib.rs
 +++ b/rust/kernel/lib.rs
 @@ -16,7 +16,6 @@
@@ -755,17 +764,8 @@ index be68d5e567b1a1..71f95e5aa09abd 100644
  #![feature(receiver_trait)]
  #![feature(unsize)]
  
-@@ -78,7 +77,7 @@ pub trait Module: Sized + Sync {
- /// Equivalent to `THIS_MODULE` in the C API.
- ///
- /// C header: [`include/linux/export.h`](srctree/include/linux/export.h)
--pub struct ThisModule(*mut bindings::module);
-+pub struct ThisModule(#[allow(dead_code)] *mut bindings::module);
- 
- // SAFETY: `THIS_MODULE` may be used from all threads within a module.
- unsafe impl Sync for ThisModule {}
 diff --git a/scripts/Makefile.build b/scripts/Makefile.build
-index baf86c0880b6d7..367cfeea74c5f5 100644
+index 533a7799fdfe..5a6ab6d965bc 100644
 --- a/scripts/Makefile.build
 +++ b/scripts/Makefile.build
 @@ -263,7 +263,7 @@ $(obj)/%.lst: $(src)/%.c FORCE
@@ -778,7 +778,7 @@ index baf86c0880b6d7..367cfeea74c5f5 100644
  # `--out-dir` is required to avoid temporaries being created by `rustc` in the
  # current working directory, which may be not accessible in the out-of-tree
 diff --git a/scripts/min-tool-version.sh b/scripts/min-tool-version.sh
-index 5927cc6b7de338..cc5141b67b4a71 100755
+index 5927cc6b7de3..6086e00e640e 100755
 --- a/scripts/min-tool-version.sh
 +++ b/scripts/min-tool-version.sh
 @@ -33,7 +33,7 @@ llvm)
@@ -786,7 +786,10 @@ index 5927cc6b7de338..cc5141b67b4a71 100755
  	;;
  rustc)
 -	echo 1.76.0
-+	echo 1.77.0
++	echo 1.77.1
  	;;
  bindgen)
  	echo 0.65.1
+-- 
+2.44.0
+
diff --git a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix
index 3135eefab984c..b2c4d0a6a6695 100644
--- a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix
+++ b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix
@@ -6,19 +6,20 @@ let
   # NOTE: When updating these, please also take a look at the changes done to
   # kernel config in the xanmod version commit
   ltsVariant = {
-    version = "6.6.31";
-    hash = "sha256-Hs2DjNG7mj4qb1P0u7XAgrNizx8oqs1ot563IvRKnhU=";
+    version = "6.6.33";
+    hash = "sha256-3qGxIYNVm2f69rym0Ya1X497G7yRNj3lLCtVgyEZ9yw=";
     variant = "lts";
   };
 
   mainVariant = {
-    version = "6.8.10";
-    hash = "sha256-lGzZThINyeZrMBDaGVujXB+DzIdfFBo7Z/Bhyj21I2g=";
+    version = "6.9.4";
+    hash = "sha256-gY0t77aPWOuRZFESNp0OLIsjLAv+rf0NHbab9WF2VtA=";
     variant = "main";
   };
 
   xanmodKernelFor = { version, suffix ? "xanmod1", hash, variant }: buildLinux (args // rec {
     inherit version;
+    pname = "linux-xanmod";
     modDirVersion = lib.versions.pad 3 "${version}-${suffix}";
 
     src = fetchFromGitHub {
@@ -45,6 +46,14 @@ let
       HZ = freeform "250";
       HZ_250 = yes;
       HZ_1000 = no;
+
+      # RCU_BOOST and RCU_EXP_KTHREAD
+      RCU_EXPERT = yes;
+      RCU_FANOUT = freeform "64";
+      RCU_FANOUT_LEAF = freeform "16";
+      RCU_BOOST = yes;
+      RCU_BOOST_DELAY = freeform "0";
+      RCU_EXP_KTHREAD = yes;
     };
 
     extraMeta = {
diff --git a/pkgs/os-specific/linux/kernel/zen-kernels.nix b/pkgs/os-specific/linux/kernel/zen-kernels.nix
index 0482cbbc09c59..270a608c84cd5 100644
--- a/pkgs/os-specific/linux/kernel/zen-kernels.nix
+++ b/pkgs/os-specific/linux/kernel/zen-kernels.nix
@@ -4,20 +4,21 @@ let
   # comments with variant added for update script
   # ./update-zen.py zen
   zenVariant = {
-    version = "6.9.1"; #zen
+    version = "6.9.5"; #zen
     suffix = "zen1"; #zen
-    sha256 = "1a6jqi474kf3353nx927wj5yqx6pcr3nz9qzrpb1vlrq9mwr7jls"; #zen
+    sha256 = "16dm07xd5x5kbn3yk8q2kqwby67953p40ja0akrg31hycz8sgbqq"; #zen
     isLqx = false;
   };
   # ./update-zen.py lqx
   lqxVariant = {
-    version = "6.8.10"; #lqx
+    version = "6.9.5"; #lqx
     suffix = "lqx1"; #lqx
-    sha256 = "1j1n3r497wfdpichp38wqcg7sps3nymchdx41i7gq5nlnfwk290q"; #lqx
+    sha256 = "0r3pgjfyza3vkvp7kw1s7sn1gf4hxq6r6qs5wvv76gmff7s399yz"; #lqx
     isLqx = true;
   };
   zenKernelsFor = { version, suffix, sha256, isLqx }: buildLinux (args // {
     inherit version;
+    pname = "linux-${if isLqx then "lqx" else "zen"}";
     modDirVersion = lib.versions.pad 3 "${version}-${suffix}";
     isZen = true;
 
diff --git a/pkgs/os-specific/linux/kexec-tools/default.nix b/pkgs/os-specific/linux/kexec-tools/default.nix
index 530fd767bb909..caecc7f9c10ef 100644
--- a/pkgs/os-specific/linux/kexec-tools/default.nix
+++ b/pkgs/os-specific/linux/kexec-tools/default.nix
@@ -18,7 +18,12 @@ stdenv.mkDerivation rec {
       url = "https://raw.githubusercontent.com/void-linux/void-packages/6c1192cbf166698932030c2e3de71db1885a572d/srcpkgs/kexec-tools/patches/ppc64-elfv2.patch";
       sha256 = "19wzfwb0azm932v0vhywv4221818qmlmvdfwpvvpfyw4hjsc2s1l";
     })
-  ];
+    # binutils-2.42 support
+    (fetchpatch {
+      url = "https://github.com/horms/kexec-tools/commit/328de8e00e298f00d7ba6b25dc3950147e9642e6.patch";
+      hash = "sha256-wVQI4oV+hBLq3kGIp2+F5J3f6s/TypDu3Xq583KYc3U=";
+    })
+  ] ++ lib.optional (stdenv.hostPlatform.useLLVM or false) ./fix-purgatory-llvm-libunwind.patch;
 
   hardeningDisable = [ "format" "pic" "relro" "pie" ];
 
diff --git a/pkgs/os-specific/linux/kexec-tools/fix-purgatory-llvm-libunwind.patch b/pkgs/os-specific/linux/kexec-tools/fix-purgatory-llvm-libunwind.patch
new file mode 100644
index 0000000000000..235410da94f2c
--- /dev/null
+++ b/pkgs/os-specific/linux/kexec-tools/fix-purgatory-llvm-libunwind.patch
@@ -0,0 +1,11 @@
+--- a/purgatory/Makefile	2024-06-06 23:59:33.089005832 -0700
++++ b/purgatory/Makefile	2024-06-06 23:59:56.761169892 -0700
+@@ -62,7 +62,7 @@
+ $(PURGATORY): LDFLAGS=$($(ARCH)_PURGATORY_EXTRA_CFLAGS)\
+ 			-Wl,--no-undefined -nostartfiles -nostdlib \
+ 			-nodefaultlibs -e purgatory_start -r \
+-			-Wl,-Map=$(PURGATORY_MAP)
++			-Wl,-Map=$(PURGATORY_MAP) -static
+ 
+ $(PURGATORY): $(PURGATORY_OBJS)
+ 	$(MKDIR) -p $(@D)
diff --git a/pkgs/os-specific/linux/ksmbd-tools/default.nix b/pkgs/os-specific/linux/ksmbd-tools/default.nix
index b81f581c07aaa..de5d15a0c75aa 100644
--- a/pkgs/os-specific/linux/ksmbd-tools/default.nix
+++ b/pkgs/os-specific/linux/ksmbd-tools/default.nix
@@ -37,6 +37,5 @@ stdenv.mkDerivation rec {
     homepage = "https://www.kernel.org/doc/html/latest/filesystems/cifs/ksmbd.html";
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/os-specific/linux/kvdo/default.nix b/pkgs/os-specific/linux/kvdo/default.nix
index 3258295be58a6..cc5ace339b420 100644
--- a/pkgs/os-specific/linux/kvdo/default.nix
+++ b/pkgs/os-specific/linux/kvdo/default.nix
@@ -28,8 +28,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     inherit (vdo.meta) license maintainers;
     homepage = "https://github.com/dm-vdo/kvdo";
-    description = "A pair of kernel modules which provide pools of deduplicated and/or compressed block storage";
+    description = "Pair of kernel modules which provide pools of deduplicated and/or compressed block storage";
     platforms = platforms.linux;
-    broken = kernel.kernelOlder "5.15";
+    broken = kernel.kernelOlder "5.17";
   };
 }
diff --git a/pkgs/os-specific/linux/ldm/default.nix b/pkgs/os-specific/linux/ldm/default.nix
index 0dea0ce4e8b0d..5214f270bfb26 100644
--- a/pkgs/os-specific/linux/ldm/default.nix
+++ b/pkgs/os-specific/linux/ldm/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A lightweight device mounter, with libudev as only dependency";
+    description = "Lightweight device mounter, with libudev as only dependency";
     mainProgram = "ldm";
     license = lib.licenses.mit;
     platforms = lib.platforms.linux;
diff --git a/pkgs/os-specific/linux/lenovo-legion/app.nix b/pkgs/os-specific/linux/lenovo-legion/app.nix
index eeccf301ee95b..66212124e9875 100644
--- a/pkgs/os-specific/linux/lenovo-legion/app.nix
+++ b/pkgs/os-specific/linux/lenovo-legion/app.nix
@@ -43,7 +43,7 @@ python3.pkgs.buildPythonApplication rec {
   '';
 
   meta = {
-    description = "An utility to control Lenovo Legion laptop";
+    description = "Utility to control Lenovo Legion laptop";
     homepage = "https://github.com/johnfanv2/LenovoLegionLinux";
     license = lib.licenses.gpl2Only;
     platforms = lib.platforms.linux;
diff --git a/pkgs/os-specific/linux/libaio/default.nix b/pkgs/os-specific/linux/libaio/default.nix
index 324e2695dd537..d2cccef37b894 100644
--- a/pkgs/os-specific/linux/libaio/default.nix
+++ b/pkgs/os-specific/linux/libaio/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch }:
+{ lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
   version = "0.3.113";
diff --git a/pkgs/os-specific/linux/libnvme/default.nix b/pkgs/os-specific/linux/libnvme/default.nix
index 7346e0d67d391..4d86812698e5a 100644
--- a/pkgs/os-specific/linux/libnvme/default.nix
+++ b/pkgs/os-specific/linux/libnvme/default.nix
@@ -1,4 +1,5 @@
 { fetchFromGitHub
+, bash
 , json_c
 , keyutils
 , lib
@@ -17,7 +18,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libnvme";
-  version = "1.7.1";
+  version = "1.9";
 
   outputs = [ "out" ] ++ lib.optionals withDocs [ "man" ];
 
@@ -25,11 +26,13 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "linux-nvme";
     repo = "libnvme";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-hCR/K8bPXj8HthayrnwwGfI+wxpUwcWkcx3S/8h+3m8=";
+    hash = "sha256-nXzYbj4BDxFii30yR+aTgqjQfyYMFiAIcV/OHI2y5Ws=";
   };
 
   postPatch = ''
     patchShebangs scripts
+    substituteInPlace test/sysfs/sysfs-tree-diff.sh \
+      --replace-fail /bin/bash ${bash}/bin/bash
   '';
 
   nativeBuildInputs = [
diff --git a/pkgs/os-specific/linux/libpsm2/default.nix b/pkgs/os-specific/linux/libpsm2/default.nix
index 0dab09de4c1ca..96fa03cf8b056 100644
--- a/pkgs/os-specific/linux/libpsm2/default.nix
+++ b/pkgs/os-specific/linux/libpsm2/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/intel/opa-psm2";
-    description = "The PSM2 library supports a number of fabric media and stacks";
+    description = "PSM2 library supports a number of fabric media and stacks";
     license = with licenses; [ gpl2 bsd3 ];
     platforms = [ "x86_64-linux" ];
     maintainers = [ maintainers.bzizou ];
diff --git a/pkgs/os-specific/linux/libratbag/default.nix b/pkgs/os-specific/linux/libratbag/default.nix
index a35ab1dcc01c9..3a13c53cf5868 100644
--- a/pkgs/os-specific/linux/libratbag/default.nix
+++ b/pkgs/os-specific/linux/libratbag/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config
+{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, wrapGAppsNoGuiHook, gobject-introspection
 , glib, systemd, udev, libevdev, gitMinimal, check, valgrind, swig, python3
 , json-glib, libunistring }:
 
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    meson ninja pkg-config gitMinimal swig check valgrind
+    meson ninja pkg-config gitMinimal swig check valgrind wrapGAppsNoGuiHook gobject-introspection
   ];
 
   buildInputs = [
diff --git a/pkgs/os-specific/linux/libselinux/default.nix b/pkgs/os-specific/linux/libselinux/default.nix
index c0711f6933778..de092af473de4 100644
--- a/pkgs/os-specific/linux/libselinux/default.nix
+++ b/pkgs/os-specific/linux/libselinux/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, buildPackages, pcre2, pkg-config, libsepol
+{ lib, stdenv, fetchurl, buildPackages, pcre2, pkg-config, libsepol
 , enablePython ? !stdenv.hostPlatform.isStatic
 , swig ? null, python3 ? null, python3Packages
 , fts
diff --git a/pkgs/os-specific/linux/libsepol/default.nix b/pkgs/os-specific/linux/libsepol/default.nix
index 41d8a724e53c1..9c7f1abb3a4e0 100644
--- a/pkgs/os-specific/linux/libsepol/default.nix
+++ b/pkgs/os-specific/linux/libsepol/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, flex }:
+{ lib, stdenv, fetchurl, flex }:
 
 stdenv.mkDerivation rec {
   pname = "libsepol";
diff --git a/pkgs/os-specific/linux/libsmbios/default.nix b/pkgs/os-specific/linux/libsmbios/default.nix
index df4337a6caffc..9f0bfacf07d3c 100644
--- a/pkgs/os-specific/linux/libsmbios/default.nix
+++ b/pkgs/os-specific/linux/libsmbios/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/dell/libsmbios";
-    description = "A library to obtain BIOS information";
+    description = "Library to obtain BIOS information";
     license = with licenses; [ osl21 gpl2Plus ];
     maintainers = with maintainers; [ ];
     platforms = [ "i686-linux" "x86_64-linux" ];
diff --git a/pkgs/os-specific/linux/libwebcam/default.nix b/pkgs/os-specific/linux/libwebcam/default.nix
index 5f87a89496b75..093b3dac21f20 100644
--- a/pkgs/os-specific/linux/libwebcam/default.nix
+++ b/pkgs/os-specific/linux/libwebcam/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The webcam-tools package";
+    description = "Webcam-tools package";
     platforms = platforms.linux;
     license = licenses.lgpl3;
     maintainers = with maintainers; [ jraygauthier ];
diff --git a/pkgs/os-specific/linux/lttng-modules/default.nix b/pkgs/os-specific/linux/lttng-modules/default.nix
index 89b49068d40c1..cfb38f0983cea 100644
--- a/pkgs/os-specific/linux/lttng-modules/default.nix
+++ b/pkgs/os-specific/linux/lttng-modules/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lttng-modules-${kernel.version}";
-  version = "2.13.10";
+  version = "2.13.13";
 
   src = fetchFromGitHub {
     owner = "lttng";
     repo = "lttng-modules";
     rev = "v${version}";
-    hash = "sha256-R5qwB1ayw0KueMBSSxm0TwINt78N6w356kY7WGBX0zM=";
+    hash = "sha256-iA3B838EUU5rFWCL8BAubkTrTO1itDFp5d1653OPnS0=";
   };
 
   nativeBuildInputs = kernel.moduleBuildDependencies;
diff --git a/pkgs/os-specific/linux/macchanger/default.nix b/pkgs/os-specific/linux/macchanger/default.nix
index e998bfad93613..66cbeefb89295 100644
--- a/pkgs/os-specific/linux/macchanger/default.nix
+++ b/pkgs/os-specific/linux/macchanger/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "info" ];
 
   meta = with lib; {
-    description = "A utility for viewing/manipulating the MAC address of network interfaces";
+    description = "Utility for viewing/manipulating the MAC address of network interfaces";
     maintainers = with maintainers; [ joachifm dotlambda ];
     license = licenses.gpl2Plus;
     homepage = "https://github.com/alobbs/macchanger";
diff --git a/pkgs/os-specific/linux/mbp-modules/mbp2018-bridge-drv/default.nix b/pkgs/os-specific/linux/mbp-modules/mbp2018-bridge-drv/default.nix
index 0b4fec4dfb4e9..2670c72544491 100644
--- a/pkgs/os-specific/linux/mbp-modules/mbp2018-bridge-drv/default.nix
+++ b/pkgs/os-specific/linux/mbp-modules/mbp2018-bridge-drv/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A driver for MacBook models 2018 and newer, which makes the keyboard, mouse and audio output work.";
+    description = "Driver for MacBook models 2018 and newer, which makes the keyboard, mouse and audio output work";
     longDescription = ''
       A driver for MacBook models 2018 and newer, implementing the VHCI (required for mouse/keyboard/etc.) and audio functionality.
     '';
diff --git a/pkgs/os-specific/linux/mceinject/default.nix b/pkgs/os-specific/linux/mceinject/default.nix
index f7cd199a5e8b9..c7c8508cb41bb 100644
--- a/pkgs/os-specific/linux/mceinject/default.nix
+++ b/pkgs/os-specific/linux/mceinject/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   installFlags = [ "destdir=$(out)" "manprefix=/share" ];
 
   meta = with lib; {
-    description = "A tool to inject machine checks into x86 kernel for testing";
+    description = "Tool to inject machine checks into x86 kernel for testing";
     mainProgram = "mce-inject";
     longDescription = ''
       mce-inject allows to inject machine check errors on the software level
diff --git a/pkgs/os-specific/linux/mdadm/default.nix b/pkgs/os-specific/linux/mdadm/default.nix
index 65556987508e5..7150930cb5619 100644
--- a/pkgs/os-specific/linux/mdadm/default.nix
+++ b/pkgs/os-specific/linux/mdadm/default.nix
@@ -17,6 +17,15 @@ stdenv.mkDerivation rec {
       url = "https://raw.githubusercontent.com/void-linux/void-packages/e58d2b17d3c40faffc0d426aab00184f28d9dafa/srcpkgs/mdadm/patches/musl.patch";
       hash = "sha256-TIcQs+8RM5Q6Z8MHkI50kaJd7f9WdS/EVI16F7b2+SA=";
     })
+    # Fixes build on musl 1.2.5+
+    (fetchurl {
+      url = "https://lore.kernel.org/linux-raid/20240220165158.3521874-1-raj.khem@gmail.com/raw";
+      hash = "sha256-JOZ8n7zi+nq236NPpB4e2gUy8I3l3DbcoLhpeL73f98=";
+    })
+    (fetchurl {
+      url = "https://github.com/md-raid-utilities/mdadm/commit/9dbd11e091f84eb0bf9d717283774816c4c4453d.patch";
+      hash = "sha256-8GdjP1ceVwejTOFXcHXG8wkIF9/D6hOUGD6btvuqs24=";
+    })
   ];
 
   makeFlags = [
diff --git a/pkgs/os-specific/linux/mdevctl/default.nix b/pkgs/os-specific/linux/mdevctl/default.nix
index ce4ea250827b4..d7b61f74dc4cb 100644
--- a/pkgs/os-specific/linux/mdevctl/default.nix
+++ b/pkgs/os-specific/linux/mdevctl/default.nix
@@ -34,7 +34,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/mdevctl/mdevctl";
-    description = "A mediated device management utility for linux";
+    description = "Mediated device management utility for linux";
     license = licenses.lgpl21Only;
     maintainers = with maintainers; [ edwtjo ];
     platforms = platforms.linux;
diff --git a/pkgs/os-specific/linux/microcode/intel.nix b/pkgs/os-specific/linux/microcode/intel.nix
index f099cea8ed7b4..6e133564e28ce 100644
--- a/pkgs/os-specific/linux/microcode/intel.nix
+++ b/pkgs/os-specific/linux/microcode/intel.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "microcode-intel";
-  version = "20240514";
+  version = "20240531";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "Intel-Linux-Processor-Microcode-Data-Files";
     rev = "microcode-${version}";
-    hash = "sha256-6XHlAtQzHtlRs3Zy4+CC/XGJS/PkDPtTg/Y2bX7PJek=";
+    hash = "sha256-64vcEc3UiiV5Rg4Eh3Wsi/WSCj5DbjvZBzKLr7EgNOU=";
   };
 
   nativeBuildInputs = [ iucode-tool libarchive ];
diff --git a/pkgs/os-specific/linux/minimal-bootstrap/coreutils/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/coreutils/default.nix
index 9d7480d239f21..1748c908e1a55 100644
--- a/pkgs/os-specific/linux/minimal-bootstrap/coreutils/default.nix
+++ b/pkgs/os-specific/linux/minimal-bootstrap/coreutils/default.nix
@@ -80,7 +80,7 @@ kaem.runCommand "${pname}-${version}" {
   ];
 
   meta = with lib; {
-    description = "The GNU Core Utilities";
+    description = "GNU Core Utilities";
     homepage = "https://www.gnu.org/software/coreutils";
     license = licenses.gpl3Plus;
     maintainers = teams.minimal-bootstrap.members;
diff --git a/pkgs/os-specific/linux/minimal-bootstrap/coreutils/musl.nix b/pkgs/os-specific/linux/minimal-bootstrap/coreutils/musl.nix
index 14584e0a7e6d6..9de71315fcc31 100644
--- a/pkgs/os-specific/linux/minimal-bootstrap/coreutils/musl.nix
+++ b/pkgs/os-specific/linux/minimal-bootstrap/coreutils/musl.nix
@@ -50,7 +50,7 @@ bash.runCommand "${pname}-${version}" {
     '';
 
   meta = with lib; {
-    description = "The GNU Core Utilities";
+    description = "GNU Core Utilities";
     homepage = "https://www.gnu.org/software/coreutils";
     license = licenses.gpl3Plus;
     maintainers = teams.minimal-bootstrap.members;
diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gnumake/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/gnumake/default.nix
index 823d314f28022..270d4e36c7882 100644
--- a/pkgs/os-specific/linux/minimal-bootstrap/gnumake/default.nix
+++ b/pkgs/os-specific/linux/minimal-bootstrap/gnumake/default.nix
@@ -151,7 +151,7 @@ kaem.runCommand "${pname}-${version}" {
   nativeBuildInputs = [ tinycc.compiler gnupatch ];
 
   meta = with lib; {
-    description = "A tool to control the generation of non-source files from sources";
+    description = "Tool to control the generation of non-source files from sources";
     homepage = "https://www.gnu.org/software/make";
     license = licenses.gpl3Plus;
     maintainers = teams.minimal-bootstrap.members;
diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gnumake/musl.nix b/pkgs/os-specific/linux/minimal-bootstrap/gnumake/musl.nix
index 504095732e8ce..47b3de03c4ca9 100644
--- a/pkgs/os-specific/linux/minimal-bootstrap/gnumake/musl.nix
+++ b/pkgs/os-specific/linux/minimal-bootstrap/gnumake/musl.nix
@@ -51,7 +51,7 @@ bash.runCommand "${pname}-${version}" {
     '';
 
   meta = with lib; {
-    description = "A tool to control the generation of non-source files from sources";
+    description = "Tool to control the generation of non-source files from sources";
     homepage = "https://www.gnu.org/software/make";
     license = licenses.gpl3Plus;
     maintainers = teams.minimal-bootstrap.members;
diff --git a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/heirloom/default.nix
index 182e515c2f1b2..7e3d29b6d29ec 100644
--- a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/default.nix
+++ b/pkgs/os-specific/linux/minimal-bootstrap/heirloom/default.nix
@@ -92,7 +92,7 @@ bash.runCommand "${pname}-${version}" {
     '';
 
   meta = with lib; {
-    description = "The Heirloom Toolchest is a collection of standard Unix utilities";
+    description = "Heirloom Toolchest is a collection of standard Unix utilities";
     homepage = "https://heirloom.sourceforge.net/tools.html";
     license = with licenses; [
       # All licenses according to LICENSE/
diff --git a/pkgs/os-specific/linux/minimal-bootstrap/mes/libc.nix b/pkgs/os-specific/linux/minimal-bootstrap/mes/libc.nix
index 807d043fa9e34..c6c89b98a2701 100644
--- a/pkgs/os-specific/linux/minimal-bootstrap/mes/libc.nix
+++ b/pkgs/os-specific/linux/minimal-bootstrap/mes/libc.nix
@@ -28,7 +28,7 @@ kaem.runCommand "${pname}-${version}" {
   passthru.CFLAGS = "-DHAVE_CONFIG_H=1 -I${mes-libc}/include -I${mes-libc}/include/linux/x86";
 
   meta = with lib; {
-    description = "The Mes C Library";
+    description = "Mes C Library";
     homepage = "https://www.gnu.org/software/mes";
     license = licenses.gpl3Plus;
     maintainers = teams.minimal-bootstrap.members;
diff --git a/pkgs/os-specific/linux/minimal-bootstrap/musl/common.nix b/pkgs/os-specific/linux/minimal-bootstrap/musl/common.nix
index 52db5f9474251..ac1bb84b9f3e5 100644
--- a/pkgs/os-specific/linux/minimal-bootstrap/musl/common.nix
+++ b/pkgs/os-specific/linux/minimal-bootstrap/musl/common.nix
@@ -4,7 +4,7 @@
   pname = "musl";
 
   meta = with lib; {
-    description = "An efficient, small, quality libc implementation";
+    description = "Efficient, small, quality libc implementation";
     homepage = "https://musl.libc.org";
     license = licenses.mit;
     maintainers = teams.minimal-bootstrap.members;
diff --git a/pkgs/os-specific/linux/minimal-bootstrap/xz/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/xz/default.nix
index 8dcccbacaca88..2533b617e5a60 100644
--- a/pkgs/os-specific/linux/minimal-bootstrap/xz/default.nix
+++ b/pkgs/os-specific/linux/minimal-bootstrap/xz/default.nix
@@ -40,7 +40,7 @@ bash.runCommand "${pname}-${version}" {
     '';
 
   meta = with lib; {
-    description = "A general-purpose data compression software, successor of LZMA";
+    description = "General-purpose data compression software, successor of LZMA";
     homepage = "https://tukaani.org/xz";
     license = with licenses; [ gpl2Plus lgpl21Plus ];
     maintainers = teams.minimal-bootstrap.members;
diff --git a/pkgs/os-specific/linux/mstflint_access/default.nix b/pkgs/os-specific/linux/mstflint_access/default.nix
index 95168249122f0..5d9a60216a548 100644
--- a/pkgs/os-specific/linux/mstflint_access/default.nix
+++ b/pkgs/os-specific/linux/mstflint_access/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A kernel module for Nvidia NIC firmware update";
+    description = "Kernel module for Nvidia NIC firmware update";
     homepage = "https://github.com/Mellanox/mstflint";
     license = [ licenses.gpl2Only ];
     maintainers = with maintainers; [ thillux ];
diff --git a/pkgs/os-specific/linux/multipath-tools/default.nix b/pkgs/os-specific/linux/multipath-tools/default.nix
index 5ec8197451cfb..20b6ee0d7eb15 100644
--- a/pkgs/os-specific/linux/multipath-tools/default.nix
+++ b/pkgs/os-specific/linux/multipath-tools/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , coreutils
 
 , perl
@@ -21,31 +22,29 @@
 
 stdenv.mkDerivation rec {
   pname = "multipath-tools";
-  version = "0.9.6";
+  version = "0.9.8";
 
   src = fetchFromGitHub {
     owner = "opensvc";
     repo = "multipath-tools";
     rev = "refs/tags/${version}";
-    sha256 = "sha256-X4sAMGn4oBMY3cQkVj1dMcrDF7FgMl8SbZeUnCCOY6Q=";
+    sha256 = "sha256-4cby19BjgnmWf7klK1sBgtZnyvo7q3L1uyVPlVoS+uk=";
   };
 
+  patches = [
+    # Backport build fix for musl libc 1.2.5
+    (fetchpatch {
+      url = "https://github.com/openSUSE/multipath-tools/commit/e5004de8296cd596aeeac0a61b901e98cf7a69d2.patch";
+      hash = "sha256-3Qt8zfrWi9aOdqMObZQaNAaXDmjhvSYrXK7qycC9L1Q=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace create-config.mk \
-      --replace /bin/echo ${coreutils}/bin/echo
-
-    substituteInPlace multipathd/multipathd.service \
-      --replace /sbin/multipathd "$out/bin/multipathd"
-
-    sed -i -re '
-      s,^( *#define +DEFAULT_MULTIPATHDIR\>).*,\1 "'"$out/lib/multipath"'",
-    ' libmultipath/defaults.h
-    sed -i -e 's,\$(DESTDIR)/\(usr/\)\?,$(prefix)/,g' \
-      kpartx/Makefile libmpathpersist/Makefile
-    sed -i -e "s,GZIP,GZ," \
-      $(find * -name Makefile\*)
+      --replace-fail /bin/echo ${coreutils}/bin/echo
 
-    sed '1i#include <assert.h>' -i tests/{util,vpd}.c
+    substituteInPlace multipathd/multipathd.service.in \
+      --replace-fail /sbin/multipathd "$out/bin/multipathd"
   '';
 
   nativeBuildInputs = [
@@ -76,7 +75,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
   preCheck = ''
     # skip test attempting to access /sys/dev/block
-    substituteInPlace tests/Makefile --replace ' devt ' ' '
+    substituteInPlace tests/Makefile --replace-fail ' devt ' ' '
   '';
   nativeCheckInputs = [ cmocka ];
 
diff --git a/pkgs/os-specific/linux/musl-fts/default.nix b/pkgs/os-specific/linux/musl-fts/default.nix
index cdb1cca47c6aa..eed0553792792 100644
--- a/pkgs/os-specific/linux/musl-fts/default.nix
+++ b/pkgs/os-specific/linux/musl-fts/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/void-linux/musl-fts";
-    description = "An implementation of fts(3) for musl-libc";
+    description = "Implementation of fts(3) for musl-libc";
     platforms = platforms.linux;
     license = licenses.bsd3;
     maintainers = [ maintainers.pjjw ];
diff --git a/pkgs/os-specific/linux/musl/default.nix b/pkgs/os-specific/linux/musl/default.nix
index 9f7867065ea89..eb24879366472 100644
--- a/pkgs/os-specific/linux/musl/default.nix
+++ b/pkgs/os-specific/linux/musl/default.nix
@@ -145,7 +145,7 @@ stdenv.mkDerivation rec {
   passthru.linuxHeaders = linuxHeaders;
 
   meta = with lib; {
-    description = "An efficient, small, quality libc implementation";
+    description = "Efficient, small, quality libc implementation";
     homepage    = "https://musl.libc.org/";
     changelog   = "https://git.musl-libc.org/cgit/musl/tree/WHATSNEW?h=v${version}";
     license     = licenses.mit;
diff --git a/pkgs/os-specific/linux/net-tools/default.nix b/pkgs/os-specific/linux/net-tools/default.nix
index bedeaadc294ed..3b37ce4b8136e 100644
--- a/pkgs/os-specific/linux/net-tools/default.nix
+++ b/pkgs/os-specific/linux/net-tools/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://net-tools.sourceforge.net/";
-    description = "A set of tools for controlling the network subsystem in Linux";
+    description = "Set of tools for controlling the network subsystem in Linux";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.linux;
   };
diff --git a/pkgs/os-specific/linux/nftables/default.nix b/pkgs/os-specific/linux/nftables/default.nix
index 95e4183a2fb6b..97518275ced67 100644
--- a/pkgs/os-specific/linux/nftables/default.nix
+++ b/pkgs/os-specific/linux/nftables/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "The project that aims to replace the existing {ip,ip6,arp,eb}tables framework";
+    description = "Project that aims to replace the existing {ip,ip6,arp,eb}tables framework";
     homepage = "https://netfilter.org/projects/nftables/";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
diff --git a/pkgs/os-specific/linux/nixos-rebuild/default.nix b/pkgs/os-specific/linux/nixos-rebuild/default.nix
index 17a9bc51732ca..63f8c92e2327e 100644
--- a/pkgs/os-specific/linux/nixos-rebuild/default.nix
+++ b/pkgs/os-specific/linux/nixos-rebuild/default.nix
@@ -50,7 +50,7 @@ substitute {
   };
 
   meta = {
-    description = "Rebuild your NixOS configuration and switch to it, on local hosts and remote.";
+    description = "Rebuild your NixOS configuration and switch to it, on local hosts and remote";
     homepage = "https://github.com/NixOS/nixpkgs/tree/master/pkgs/os-specific/linux/nixos-rebuild";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.Profpatsch ];
diff --git a/pkgs/os-specific/linux/nsncd/default.nix b/pkgs/os-specific/linux/nsncd/default.nix
index 0ad11ee8b79f8..80dfdb5457fa7 100644
--- a/pkgs/os-specific/linux/nsncd/default.nix
+++ b/pkgs/os-specific/linux/nsncd/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nsncd";
-  version = "unstable-2024-01-16";
+  version = "unstable-2024-03-18";
 
   src = fetchFromGitHub {
     owner = "twosigma";
     repo = "nsncd";
-    rev =  "f4706786f26d12c533035fb2916be9be5751150b";
-    hash = "sha256-GbKDWW00eZZwmslkaGIO8hjCyD5xi7h+S2WP6q5ekOQ=";
+    rev =  "7605e330d5a313a8656e6fcaf1c10cd6b5cdd427";
+    hash = "sha256-Bd7qE9MP5coBCkr70TdoJfwYhQpdrn/zmN4KoARcaMI=";
   };
 
-  cargoSha256 = "sha256-jAxcyMPDTBFBrG0cuKm0Tm5p/UEnUgTPQKDgqY2yK7w=";
+  cargoHash = "sha256-i1rmc5wxtc631hZy2oM4d6r7od0w8GrG7+/pdM6Gqco=";
   checkFlags = [
     # Relies on the test environment to be able to resolve "localhost"
     # on IPv4. That's not the case in the Nix sandbox somehow. Works
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "the name service non-caching daemon";
+    description = "Name service non-caching daemon";
     mainProgram = "nsncd";
     longDescription = ''
       nsncd is a nscd-compatible daemon that proxies lookups, without caching.
diff --git a/pkgs/os-specific/linux/numad/default.nix b/pkgs/os-specific/linux/numad/default.nix
index 2eabbc95fa13b..6ea970a11769d 100644
--- a/pkgs/os-specific/linux/numad/default.nix
+++ b/pkgs/os-specific/linux/numad/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "prefix=$(out)" ];
 
   meta = with lib; {
-    description = "A user-level daemon that monitors NUMA topology and processes resource consumption to facilitate good NUMA resource access";
+    description = "User-level daemon that monitors NUMA topology and processes resource consumption to facilitate good NUMA resource access";
     mainProgram = "numad";
     homepage = "https://fedoraproject.org/wiki/Features/numad";
     license = licenses.lgpl21;
diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix
index db6a5819c5bc4..e08ffa1500a1d 100644
--- a/pkgs/os-specific/linux/nvidia-x11/default.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/default.nix
@@ -33,12 +33,12 @@ rec {
   stable = if stdenv.hostPlatform.system == "i686-linux" then legacy_390 else latest;
 
   production = generic {
-    version = "550.78";
-    sha256_64bit = "sha256-NAcENFJ+ydV1SD5/EcoHjkZ+c/be/FQ2bs+9z+Sjv3M=";
-    sha256_aarch64 = "sha256-2POG5RWT2H7Rhs0YNfTGHO64Q8u5lJD9l/sQCGVb+AA=";
-    openSha256 = "sha256-cF9omNvfHx6gHUj2u99k6OXrHGJRpDQDcBG3jryf41Y=";
-    settingsSha256 = "sha256-lZiNZw4dJw4DI/6CI0h0AHbreLm825jlufuK9EB08iw=";
-    persistencedSha256 = "sha256-qDGBAcZEN/ueHqWO2Y6UhhXJiW5625Kzo1m/oJhvbj4=";
+    version = "550.90.07";
+    sha256_64bit = "sha256-Uaz1edWpiE9XOh0/Ui5/r6XnhB4iqc7AtLvq4xsLlzM=";
+    sha256_aarch64 = "sha256-uJa3auRlMHr8WyacQL2MyyeebqfT7K6VU0qR7LGXFXI=";
+    openSha256 = "sha256-VLmh7eH0xhEu/AK+Osb9vtqAFni+lx84P/bo4ZgCqj8=";
+    settingsSha256 = "sha256-sX9dHEp9zH9t3RWp727lLCeJLo8QRAGhVb8iN6eX49g=";
+    persistencedSha256 = "sha256-qe8e1Nxla7F0U88AbnOZm6cHxo57pnLCqtjdvOvq9jk=";
   };
 
   latest = selectHighestVersion production (generic {
@@ -51,22 +51,22 @@ rec {
   });
 
   beta = selectHighestVersion latest (generic {
-    version = "555.42.02";
-    sha256_64bit = "sha256-k7cI3ZDlKp4mT46jMkLaIrc2YUx1lh1wj/J4SVSHWyk=";
-    sha256_aarch64 = "sha256-ekx0s0LRxxTBoqOzpcBhEKIj/JnuRCSSHjtwng9qAc0=";
-    openSha256 = "sha256-3/eI1VsBzuZ3Y6RZmt3Q5HrzI2saPTqUNs6zPh5zy6w=";
-    settingsSha256 = "sha256-rtDxQjClJ+gyrCLvdZlT56YyHQ4sbaL+d5tL4L4VfkA=";
-    persistencedSha256 = "sha256-3ae31/egyMKpqtGEqgtikWcwMwfcqMv2K4MVFa70Bqs=";
+    version = "555.52.04";
+    sha256_64bit = "sha256-nVOubb7zKulXhux9AruUTVBQwccFFuYGWrU1ZiakRAI=";
+    sha256_aarch64 = "sha256-Kt60kTTO3mli66De2d1CAoE3wr0yUbBe7eqCIrYHcWk=";
+    openSha256 = "sha256-wDimW8/rJlmwr1zQz8+b1uvxxxbOf3Bpk060lfLKuy0=";
+    settingsSha256 = "sha256-PMh5efbSEq7iqEMBr2+VGQYkBG73TGUh6FuDHZhmwHk=";
+    persistencedSha256 = "sha256-KAYIvPjUVilQQcD04h163MHmKcQrn2a8oaXujL2Bxro=";
   });
 
   # Vulkan developer beta driver
   # See here for more information: https://developer.nvidia.com/vulkan-driver
   vulkan_beta = generic rec {
-    version = "550.40.61";
+    version = "550.40.63";
     persistencedVersion = "550.54.14";
     settingsVersion = "550.54.14";
-    sha256_64bit = "sha256-JNVeA5/u5/ictU3QpPnbXIHDKOtwou8wGmMt3We4FJY=";
-    openSha256 = "sha256-kWGTj3eAvwLTJ7zgzRFvyhXmfpxQbUMmyxWxER9i9m0=";
+    sha256_64bit = "sha256-YvlNgxcFsCl3DzHFpKe+VXzfc0QIgf3N/hTKsWZ7gDE=";
+    openSha256 = "sha256-mITh1kdSPtB+jP6TDHw04EN7gRx48KGbzbLO0wTSS/U=";
     settingsSha256 = "sha256-m2rNASJp0i0Ez2OuqL+JpgEF0Yd8sYVCyrOoo/ln2a4=";
     persistencedSha256 = "sha256-XaPN8jVTjdag9frLPgBtqvO/goB5zxeGzaTU0CdL6C4=";
     url = "https://developer.nvidia.com/downloads/vulkan-beta-${lib.concatStrings (lib.splitVersion version)}-linux";
@@ -105,13 +105,26 @@ rec {
   # If you add a legacy driver here, also update `top-level/linux-kernels.nix`,
   # adding to the `nvidia_x11_legacy*` entries.
 
+  # Last one without the bug reported here:
+  # https://bbs.archlinux.org/viewtopic.php?pid=2155426#p2155426
+  legacy_535 = generic {
+    version = "535.154.05";
+    sha256_64bit = "sha256-fpUGXKprgt6SYRDxSCemGXLrEsIA6GOinp+0eGbqqJg=";
+    sha256_aarch64 = "sha256-G0/GiObf/BZMkzzET8HQjdIcvCSqB1uhsinro2HLK9k=";
+    openSha256 = "sha256-wvRdHguGLxS0mR06P5Qi++pDJBCF8pJ8hr4T8O6TJIo=";
+    settingsSha256 = "sha256-9wqoDEWY4I7weWW05F4igj1Gj9wjHsREFMztfEmqm10=";
+    persistencedSha256 = "sha256-d0Q3Lk80JqkS1B54Mahu2yY/WocOqFFbZVBh+ToGhaE=";
+
+    patches = [ rcu_patch ];
+  };
+
   # Last one supporting Kepler architecture
   legacy_470 = generic {
-    version = "470.239.06";
-    sha256_64bit = "sha256-fXTKrBQKBDLXnr6OQzDceW85un3UCz/NYd92AYG/nMw=";
-    sha256_aarch64 = "sha256-NZj8OLQ0N7y3V7UBamLyJE8AbI3alZJD1weNjnssuNs=";
-    settingsSha256 = "sha256-2YTk6DaoB8Qvob9/ohtHXuDhxGO9O/SUwlXXbLSgJP0=";
-    persistencedSha256 = "sha256-wLrkfD8MQ8sMODE+yEnWg/1ETxYVWOqNsIj1dY+5yjc=";
+    version = "470.256.02";
+    sha256_64bit = "sha256-1kUYYt62lbsER/O3zWJo9z6BFowQ4sEFl/8/oBNJsd4=";
+    sha256_aarch64 = "sha256-e+QvE+S3Fv3JRqC9ZyxTSiCu8gJdZXSz10gF/EN6DY0=";
+    settingsSha256 = "sha256-kftQ4JB0iSlE8r/Ze/+UMnwLzn0nfQtqYXBj+t6Aguk=";
+    persistencedSha256 = "sha256-iYoSib9VEdwjOPBP1+Hx5wCIMhW8q8cCHu9PULWfnyQ=";
   };
 
   # Last one supporting x86
diff --git a/pkgs/os-specific/linux/nvidia-x11/libxnvctrl-build-shared-3xx.patch b/pkgs/os-specific/linux/nvidia-x11/libxnvctrl-build-shared-3xx.patch
new file mode 100644
index 0000000000000..d2e074add7549
--- /dev/null
+++ b/pkgs/os-specific/linux/nvidia-x11/libxnvctrl-build-shared-3xx.patch
@@ -0,0 +1,24 @@
+--- a/src/libXNVCtrl/Makefile
++++ b/src/libXNVCtrl/Makefile
+@@ -33,6 +33,8 @@
+ 
+ LIBXNVCTRL = libXNVCtrl.a
+ 
++LIBXNVCTRL_SHARED = $(OUTPUTDIR)/libXNVCtrl.so
++
+ LIBXNVCTRL_PROGRAM_NAME = "libXNVCtrl"
+ 
+ LIBXNVCTRL_VERSION := $(NVIDIA_VERSION)
+@@ -62,6 +64,12 @@
+ $(LIBXNVCTRL) : $(OBJS)
+ 	$(AR) ru $@ $(OBJS)
+ 
++$(LIBXNVCTRL_SHARED): $(LIBXNVCTRL_OBJ)
++	$(RM) $@ $@.*
++	$(CC) -shared -Wl,-soname=$(@F).0 -o $@.0.0.0 $(LDFLAGS) $^ -lXext -lX11
++	ln -s $(@F).0.0.0 $@.0
++	ln -s $(@F).0 $@
++
+ # define the rule to build each object file
+ $(foreach src,$(SRC),$(eval $(call DEFINE_OBJECT_RULE,TARGET,$(src))))
+ 
diff --git a/pkgs/os-specific/linux/nvidia-x11/libxnvctrl-build-shared.patch b/pkgs/os-specific/linux/nvidia-x11/libxnvctrl-build-shared.patch
new file mode 100644
index 0000000000000..ad1dc1eae4002
--- /dev/null
+++ b/pkgs/os-specific/linux/nvidia-x11/libxnvctrl-build-shared.patch
@@ -0,0 +1,21 @@
+--- a/src/libXNVCtrl/xnvctrl.mk
++++ b/src/libXNVCtrl/xnvctrl.mk
+@@ -39,6 +39,8 @@
+ 
+ LIBXNVCTRL = $(OUTPUTDIR)/libXNVCtrl.a
+ 
++LIBXNVCTRL_SHARED = $(OUTPUTDIR)/libXNVCtrl.so
++
+ LIBXNVCTRL_SRC = $(XNVCTRL_DIR)/NVCtrl.c
+ 
+ LIBXNVCTRL_OBJ = $(call BUILD_OBJECT_LIST,$(LIBXNVCTRL_SRC))
+@@ -47,3 +49,9 @@
+ 
+ $(LIBXNVCTRL) : $(LIBXNVCTRL_OBJ)
+ 	$(call quiet_cmd,AR) ru $@ $(LIBXNVCTRL_OBJ)
++
++$(LIBXNVCTRL_SHARED): $(LIBXNVCTRL_OBJ)
++	$(RM) $@ $@.*
++	$(CC) -shared -Wl,-soname=$(@F).0 -o $@.0.0.0 $(LDFLAGS) $^ -lXext -lX11
++	ln -s $(@F).0.0.0 $@.0
++	ln -s $(@F).0 $@
diff --git a/pkgs/os-specific/linux/nvidia-x11/settings.nix b/pkgs/os-specific/linux/nvidia-x11/settings.nix
index 2d9dfd81829eb..a26acd144125c 100644
--- a/pkgs/os-specific/linux/nvidia-x11/settings.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/settings.nix
@@ -30,6 +30,12 @@ let
     inherit sha256;
   };
 
+  meta = with lib; {
+    homepage = "https://www.nvidia.com/object/unix.html";
+    platforms = nvidia_x11.meta.platforms;
+    maintainers = with maintainers; [ abbradar aidalgol ];
+  };
+
   libXNVCtrl = stdenv.mkDerivation {
     pname = "libXNVCtrl";
     version = nvidia_x11.settingsVersion;
@@ -43,6 +49,14 @@ let
 
     makeFlags = [
       "OUTPUTDIR=." # src/libXNVCtrl
+      "libXNVCtrl.a"
+      "libXNVCtrl.so"
+    ];
+
+    patches = [
+      # Patch the Makefile to also produce a shared library.
+      (if lib.versionOlder nvidia_x11.settingsVersion "400" then ./libxnvctrl-build-shared-3xx.patch
+      else ./libxnvctrl-build-shared.patch)
     ];
 
     installPhase = ''
@@ -52,7 +66,14 @@ let
       cp libXNVCtrl.a $out/lib
       cp NVCtrl.h     $out/include/NVCtrl
       cp NVCtrlLib.h  $out/include/NVCtrl
+      cp -P libXNVCtrl.so* $out/lib
     '';
+
+    meta = meta // {
+      description = "NVIDIA NV-CONTROL X extension";
+      # https://github.com/NVIDIA/nvidia-settings/commit/edcf9edad9f52f9b10e63d4480bbe88b22dde884
+      license = lib.licenses.mit;
+    };
   };
 
 in
@@ -93,21 +114,20 @@ stdenv.mkDerivation {
     fi
   '';
 
-  nativeBuildInputs = [ pkg-config m4 addOpenGLRunpath ];
+  nativeBuildInputs = [ pkg-config m4 addOpenGLRunpath ]
+    ++ lib.optionals withGtk3 [ wrapGAppsHook3 ];
 
-  buildInputs = [ jansson libXv libXrandr libXext libXxf86vm libvdpau nvidia_x11 gtk2 dbus ]
-    ++ lib.optionals withGtk3 [ gtk3 librsvg wrapGAppsHook3 ];
+  buildInputs = [ jansson libXv libXrandr libXext libXxf86vm libvdpau nvidia_x11 dbus ]
+    ++ lib.optionals (withGtk2 || lib.versionOlder nvidia_x11.settingsVersion "525.53") [ gtk2 ]
+    ++ lib.optionals withGtk3 [ gtk3 librsvg ];
 
   installFlags = [ "PREFIX=$(out)" ];
 
-  postInstall = ''
-    ${lib.optionalString (!withGtk2) ''
-      rm -f $out/lib/libnvidia-gtk2.so.*
-    ''}
-    ${lib.optionalString (!withGtk3) ''
-      rm -f $out/lib/libnvidia-gtk3.so.*
-    ''}
-
+  postInstall = lib.optionalString (!withGtk2) ''
+    rm -f $out/lib/libnvidia-gtk2.so.*
+  '' + lib.optionalString (!withGtk3) ''
+    rm -f $out/lib/libnvidia-gtk3.so.*
+  '' + ''
     # Install the desktop file and icon.
     # The template has substitution variables intended to be replaced resulting
     # in absolute paths. Because absolute paths break after the desktop file is
@@ -132,12 +152,10 @@ stdenv.mkDerivation {
     inherit libXNVCtrl;
   };
 
-  meta = with lib; {
-    homepage = "https://www.nvidia.com/object/unix.html";
+  meta = meta // {
     description = "Settings application for NVIDIA graphics cards";
-    license = licenses.unfreeRedistributable;
-    platforms = nvidia_x11.meta.platforms;
+    # nvml.h is licensed as part of the cuda developer license.
+    license = lib.licenses.unfreeRedistributable;
     mainProgram = "nvidia-settings";
-    maintainers = with maintainers; [ abbradar ];
   };
 }
diff --git a/pkgs/os-specific/linux/nvme-cli/default.nix b/pkgs/os-specific/linux/nvme-cli/default.nix
index d909e331871be..a39c26ac7c199 100644
--- a/pkgs/os-specific/linux/nvme-cli/default.nix
+++ b/pkgs/os-specific/linux/nvme-cli/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nvme-cli";
-  version = "2.7.1";
+  version = "2.9.1";
 
   src = fetchFromGitHub {
     owner = "linux-nvme";
     repo = "nvme-cli";
     rev = "v${version}";
-    hash = "sha256-Gm+1tb/Nh+Yg2PgSUn/1hR4CZYnfTWRwcQU0A8UeQwI=";
+    hash = "sha256-zs7UksB5QkvCP29iELDGMJeObvMdKrs6ajQkEzCPzzQ=";
   };
 
   mesonFlags = [
diff --git a/pkgs/os-specific/linux/open-iscsi/default.nix b/pkgs/os-specific/linux/open-iscsi/default.nix
index 9306099213a98..9bb98fbeea3bb 100644
--- a/pkgs/os-specific/linux/open-iscsi/default.nix
+++ b/pkgs/os-specific/linux/open-iscsi/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "open-iscsi";
-  version = "2.1.9";
+  version = "2.1.10";
 
   src = fetchFromGitHub {
     owner = "open-iscsi";
     repo = "open-iscsi";
     rev = version;
-    hash = "sha256-y0NIb/KsKpCd8byr/SXI7nwTKXP2/bSSoW8QgeL5xdc=";
+    hash = "sha256-5bT9MaJ2OHFU9R9X01UOOztRqtR6rWv4RS5d1MGWf6M=";
   };
 
   nativeBuildInputs = [
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
   passthru.tests = { inherit (nixosTests) iscsi-root; };
 
   meta = with lib; {
-    description = "A high performance, transport independent, multi-platform implementation of RFC3720";
+    description = "High performance, transport independent, multi-platform implementation of RFC3720";
     license = licenses.gpl2Plus;
     homepage = "https://www.open-iscsi.com";
     platforms = platforms.linux;
diff --git a/pkgs/os-specific/linux/openrazer/driver.nix b/pkgs/os-specific/linux/openrazer/driver.nix
index a2116797824cc..42e6be93dae4d 100644
--- a/pkgs/os-specific/linux/openrazer/driver.nix
+++ b/pkgs/os-specific/linux/openrazer/driver.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation (common // {
   enableParallelBuilding = true;
 
   meta = common.meta // {
-    description = "An entirely open source Linux driver that allows you to manage your Razer peripherals on GNU/Linux";
+    description = "Entirely open source Linux driver that allows you to manage your Razer peripherals on GNU/Linux";
     mainProgram = "razer_mount";
     broken = kernel.kernelOlder "4.19";
   };
diff --git a/pkgs/os-specific/linux/otpw/default.nix b/pkgs/os-specific/linux/otpw/default.nix
index 45d0b77906d34..12920c0c342ea 100644
--- a/pkgs/os-specific/linux/otpw/default.nix
+++ b/pkgs/os-specific/linux/otpw/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A one-time password login package";
+    description = "One-time password login package";
     mainProgram = "otpw-gen";
     homepage = "http://www.cl.cam.ac.uk/~mgk25/otpw.html";
     license = licenses.gpl2Plus;
diff --git a/pkgs/os-specific/linux/pam_ssh_agent_auth/default.nix b/pkgs/os-specific/linux/pam_ssh_agent_auth/default.nix
index 46587028f2962..656a3e62caca9 100644
--- a/pkgs/os-specific/linux/pam_ssh_agent_auth/default.nix
+++ b/pkgs/os-specific/linux/pam_ssh_agent_auth/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, nixosTests, fetchpatch, fetchFromGitHub, pam, openssl, perl }:
+{ lib, stdenv, nixosTests, fetchFromGitHub, pam, openssl, perl }:
 
 stdenv.mkDerivation rec {
   pname = "pam_ssh_agent_auth";
diff --git a/pkgs/os-specific/linux/pam_u2f/default.nix b/pkgs/os-specific/linux/pam_u2f/default.nix
index 085ff43a79355..715f60e193993 100644
--- a/pkgs/os-specific/linux/pam_u2f/default.nix
+++ b/pkgs/os-specific/linux/pam_u2f/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://developers.yubico.com/pam-u2f/";
-    description = "A PAM module for allowing authentication with a U2F device";
+    description = "PAM module for allowing authentication with a U2F device";
     changelog = "https://github.com/Yubico/pam-u2f/raw/pam_u2f-${version}/NEWS";
     license = licenses.bsd2;
     platforms = platforms.unix;
diff --git a/pkgs/os-specific/linux/paxctl/default.nix b/pkgs/os-specific/linux/paxctl/default.nix
index fbb0e00ebe911..2f68fa3dc0ccc 100644
--- a/pkgs/os-specific/linux/paxctl/default.nix
+++ b/pkgs/os-specific/linux/paxctl/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   setupHook = ./setup-hook.sh;
 
   meta = with lib; {
-    description = "A tool for controlling PaX flags on a per binary basis";
+    description = "Tool for controlling PaX flags on a per binary basis";
     mainProgram = "paxctl";
     homepage    = "https://pax.grsecurity.net";
     license     = licenses.gpl2;
diff --git a/pkgs/os-specific/linux/pcm/default.nix b/pkgs/os-specific/linux/pcm/default.nix
index e464d113e2f73..5c111952727de 100644
--- a/pkgs/os-specific/linux/pcm/default.nix
+++ b/pkgs/os-specific/linux/pcm/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pcm";
-  version = "202403";
+  version = "202405";
 
   src = fetchFromGitHub {
     owner = "opcm";
     repo = "pcm";
     rev = version;
-    hash = "sha256-qefqtuxRaQEsWpXNAuGxuIT3LiH2b8xQb54B0RkzKGA=";
+    hash = "sha256-yEe1lWbvafc3N3+K9WMMlIXVVX+fVO8QsuKdyIqiKAg=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/os-specific/linux/pktgen/default.nix b/pkgs/os-specific/linux/pktgen/default.nix
index 66971444e71a9..7fbc445902e9b 100644
--- a/pkgs/os-specific/linux/pktgen/default.nix
+++ b/pkgs/os-specific/linux/pktgen/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , meson
 , ninja
 , pkg-config
diff --git a/pkgs/os-specific/linux/pm-utils/default.nix b/pkgs/os-specific/linux/pm-utils/default.nix
index 4076641717f40..9f2eee83d60bf 100644
--- a/pkgs/os-specific/linux/pm-utils/default.nix
+++ b/pkgs/os-specific/linux/pm-utils/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://pm-utils.freedesktop.org/wiki/";
-    description = "A small collection of scripts that handle suspend and resume on behalf of HAL";
+    description = "Small collection of scripts that handle suspend and resume on behalf of HAL";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.linux;
   };
diff --git a/pkgs/os-specific/linux/pommed-light/default.nix b/pkgs/os-specific/linux/pommed-light/default.nix
index f92a9c1b5d1df..eb5a1b1b0edbd 100644
--- a/pkgs/os-specific/linux/pommed-light/default.nix
+++ b/pkgs/os-specific/linux/pommed-light/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A trimmed version of the pommed hotkey handler for MacBooks";
+    description = "Trimmed version of the pommed hotkey handler for MacBooks";
     mainProgram = "pommed";
     longDescription = ''
       This is a stripped-down version of pommed with client, dbus, and
diff --git a/pkgs/os-specific/linux/prl-tools/default.nix b/pkgs/os-specific/linux/prl-tools/default.nix
index 1eff2088a6c75..3a3016d14b4be 100644
--- a/pkgs/os-specific/linux/prl-tools/default.nix
+++ b/pkgs/os-specific/linux/prl-tools/default.nix
@@ -36,13 +36,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "prl-tools";
-  version = "19.3.1-54941";
+  version = "19.4.0-54962";
 
   # We download the full distribution to extract prl-tools-lin.iso from
   # => ${dmg}/Parallels\ Desktop.app/Contents/Resources/Tools/prl-tools-lin.iso
   src = fetchurl {
     url = "https://download.parallels.com/desktop/v${lib.versions.major finalAttrs.version}/${finalAttrs.version}/ParallelsDesktop-${finalAttrs.version}.dmg";
-    hash = "sha256-2M87+dbQaDerajzc6bCXmrpIyUNXfMxFiX1SbLJ0fss=";
+    hash = "sha256-c/MrWUvwY/Z38uOBbetJSVkZlwkdzFhw6wpk1L0BuQs=";
   };
 
   hardeningDisable = [ "pic" "format" ];
diff --git a/pkgs/os-specific/linux/procdump/default.nix b/pkgs/os-specific/linux/procdump/default.nix
index 0d648782e38c4..45e6516c745d7 100644
--- a/pkgs/os-specific/linux/procdump/default.nix
+++ b/pkgs/os-specific/linux/procdump/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Linux version of the ProcDump Sysinternals tool";
+    description = "Linux version of the ProcDump Sysinternals tool";
     mainProgram = "procdump";
     homepage = "https://github.com/Microsoft/ProcDump-for-Linux";
     license = licenses.mit;
diff --git a/pkgs/os-specific/linux/projecteur/default.nix b/pkgs/os-specific/linux/projecteur/default.nix
index 0477985cc196d..96d6ed0327033 100644
--- a/pkgs/os-specific/linux/projecteur/default.nix
+++ b/pkgs/os-specific/linux/projecteur/default.nix
@@ -42,7 +42,7 @@ mkDerivation rec {
   ];
 
   meta = {
-    description = "Linux/X11 application for the Logitech Spotlight device (and similar devices).";
+    description = "Linux/X11 application for the Logitech Spotlight device (and similar devices)";
     homepage = "https://github.com/jahnf/Projecteur";
     license = lib.licenses.mit;
     mainProgram = "projecteur";
diff --git a/pkgs/os-specific/linux/psmisc/default.nix b/pkgs/os-specific/linux/psmisc/default.nix
index 0f920eeafb5da..2e8003ab891ab 100644
--- a/pkgs/os-specific/linux/psmisc/default.nix
+++ b/pkgs/os-specific/linux/psmisc/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.com/psmisc/psmisc";
-    description = "A set of small useful utilities that use the proc filesystem (such as fuser, killall and pstree)";
+    description = "Set of small useful utilities that use the proc filesystem (such as fuser, killall and pstree)";
     platforms = platforms.linux;
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ryantm ];
diff --git a/pkgs/os-specific/linux/r8168/default.nix b/pkgs/os-specific/linux/r8168/default.nix
index 6eb53ca17f7a3..274fcd06ffefa 100644
--- a/pkgs/os-specific/linux/r8168/default.nix
+++ b/pkgs/os-specific/linux/r8168/default.nix
@@ -6,18 +6,18 @@ let modDestDir = "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/wi
 in stdenv.mkDerivation rec {
   name = "r8168-${kernel.version}-${version}";
   # on update please verify that the source matches the realtek version
-  version = "8.052.01";
+  version = "8.053.00";
 
   # This is a mirror. The original website[1] doesn't allow non-interactive
   # downloads, instead emailing you a download link.
-  # [1] https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software
-  # I've verified manually (`diff -r`) that the source code for version 8.052.01
+  # [1] https://www.realtek.com/Download/List?cate_id=584
+  # I've verified manually (`diff -r`) that the source code for version 8.053.00
   # is the same as the one available on the realtek website.
   src = fetchFromGitHub {
     owner = "mtorromeo";
     repo = "r8168";
     rev = version;
-    sha256 = "01mi7hh92nc7jaxkfrpz7j0ci78djrhgmq0im4k1270mwmvr0yzj";
+    sha256 = "0bHGs8jyWd+ZiixOoNkBqhS9RjDpRp3vveAgk1YuOWU=";
   };
 
   hardeningDisable = [ "pic" ];
@@ -53,7 +53,7 @@ in stdenv.mkDerivation rec {
     '';
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ timokau ];
-    broken = (lib.versions.majorMinor kernel.modDirVersion) != "5.15";
+    maintainers = with maintainers; [];
+    broken = lib.versionAtLeast kernel.modDirVersion "6.9";
   };
 }
diff --git a/pkgs/os-specific/linux/radeontop/default.nix b/pkgs/os-specific/linux/radeontop/default.nix
index 49e2fdfd90b52..221a26f623406 100644
--- a/pkgs/os-specific/linux/radeontop/default.nix
+++ b/pkgs/os-specific/linux/radeontop/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
       blocks. Supports R600 and later cards: even Southern Islands should work.
       Works with both the open drivers and AMD Catalyst. Total GPU utilization
       is also valid for OpenCL loads; the other blocks are only useful for GL
-      loads. Requires root rights or other permissions to read /dev/mem.
+      loads.
     '';
     homepage = "https://github.com/clbr/radeontop";
     platforms = platforms.linux;
diff --git a/pkgs/os-specific/linux/rdma-core/default.nix b/pkgs/os-specific/linux/rdma-core/default.nix
index 9ddb211ba0d57..ec1bb7bbf35a6 100644
--- a/pkgs/os-specific/linux/rdma-core/default.nix
+++ b/pkgs/os-specific/linux/rdma-core/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "rdma-core";
-  version = "51.0";
+  version = "52.0";
 
   src = fetchFromGitHub {
     owner = "linux-rdma";
     repo = "rdma-core";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-G5Z2BbmF5fzOg/32BBgGpC6yroDFOnZWtA/+5QatQ1M=";
+    hash = "sha256-M4nmnfeEIxsaFO1DJV9jKD/NnkaLHVNXtfTPf2pTDs4=";
   };
 
   strictDeps = true;
diff --git a/pkgs/os-specific/linux/rt-tests/default.nix b/pkgs/os-specific/linux/rt-tests/default.nix
index 8e3a9b0ceb02a..a9e3e57d48752 100644
--- a/pkgs/os-specific/linux/rt-tests/default.nix
+++ b/pkgs/os-specific/linux/rt-tests/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "rt-tests";
-  version = "2.6";
+  version = "2.7";
 
   src = fetchurl {
     url = "https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/snapshot/${pname}-${version}.tar.gz";
-    sha256 = "sha256-apRJwRqcyzfmyGCCv5BDN92pKP3Nafa9SkxlZ+Bxrm0=";
+    sha256 = "sha256-1kfLmB1RPO8Hd7o8tROSyVBWchchc+AGPuOUlM2hR8g=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/os-specific/linux/rtkit/default.nix b/pkgs/os-specific/linux/rtkit/default.nix
index c6bb4e0cbfcdd..9c580edc308fd 100644
--- a/pkgs/os-specific/linux/rtkit/default.nix
+++ b/pkgs/os-specific/linux/rtkit/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/heftig/rtkit";
-    description = "A daemon that hands out real-time priority to processes";
+    description = "Daemon that hands out real-time priority to processes";
     mainProgram = "rtkitctl";
     license = with licenses; [ gpl3 bsd0 ]; # lib is bsd license
     platforms = platforms.linux;
diff --git a/pkgs/os-specific/linux/rtl8189fs/default.nix b/pkgs/os-specific/linux/rtl8189fs/default.nix
index 0405fc8561a9b..5f806069daf97 100644
--- a/pkgs/os-specific/linux/rtl8189fs/default.nix
+++ b/pkgs/os-specific/linux/rtl8189fs/default.nix
@@ -1,4 +1,4 @@
-{ lib, kernel, rtl8189es, fetchFromGitHub, fetchpatch }:
+{ lib, kernel, rtl8189es, fetchFromGitHub }:
 
 # rtl8189fs is a branch of the rtl8189es driver
 rtl8189es.overrideAttrs (drv: rec {
diff --git a/pkgs/os-specific/linux/rtl8723ds/default.nix b/pkgs/os-specific/linux/rtl8723ds/default.nix
index a9c1f18de0c2a..d1f7e016e3bf3 100644
--- a/pkgs/os-specific/linux/rtl8723ds/default.nix
+++ b/pkgs/os-specific/linux/rtl8723ds/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation {
   enableParallelBuilding = true;
 
   meta = {
-    description = "Linux driver for RTL8723DS.";
+    description = "Linux driver for RTL8723DS";
     homepage = "https://github.com/lwfinger/rtl8723ds";
     license = lib.licenses.gpl2Only;
     platforms = lib.platforms.linux;
diff --git a/pkgs/os-specific/linux/rtl88x2bu/default.nix b/pkgs/os-specific/linux/rtl88x2bu/default.nix
index edb2feed6c619..91ed7cf9b4905 100644
--- a/pkgs/os-specific/linux/rtl88x2bu/default.nix
+++ b/pkgs/os-specific/linux/rtl88x2bu/default.nix
@@ -1,14 +1,20 @@
-{ lib, stdenv, fetchFromGitHub, kernel, bc }:
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  kernel,
+  bc,
+}:
 
 stdenv.mkDerivation {
   pname = "rtl88x2bu";
-  version = "${kernel.version}-unstable-2023-11-29";
+  version = "${kernel.version}-unstable-2024-06-09";
 
   src = fetchFromGitHub {
     owner = "morrownr";
     repo = "88x2bu-20210702";
-    rev = "cd2b6cbd9c8fbfebee8a1f28fab8e4434450456c";
-    sha256 = "sha256-t1lLJSEDzY2zvgcKYaxUq/umrlLpxu4+4zWmG8R0Wz4=";
+    rev = "62f3a86a2687fe98bd441e0aff5adf87d95c238a";
+    hash = "sha256-gQWk1nhtT0W2dY5uQitWabBGEDfZpmJAoJg+j2ndO00=";
   };
 
   hardeningDisable = [ "pic" ];
diff --git a/pkgs/os-specific/linux/rust-out-of-tree-module/default.nix b/pkgs/os-specific/linux/rust-out-of-tree-module/default.nix
index 5ef6f7c4edbb7..46ae88abb37d0 100644
--- a/pkgs/os-specific/linux/rust-out-of-tree-module/default.nix
+++ b/pkgs/os-specific/linux/rust-out-of-tree-module/default.nix
@@ -18,7 +18,7 @@ kernel.stdenv.mkDerivation {
 
   meta = {
     broken = !kernel.withRust;
-    description = "A basic template for an out-of-tree Linux kernel module written in Rust";
+    description = "Basic template for an out-of-tree Linux kernel module written in Rust";
     homepage = "https://github.com/Rust-for-Linux/rust-out-of-tree-module";
     license = lib.licenses.gpl2Only;
     maintainers = [ lib.maintainers.blitz ];
diff --git a/pkgs/os-specific/linux/ryzen-smu/default.nix b/pkgs/os-specific/linux/ryzen-smu/default.nix
index 7f899f2c2c90c..87fb02fd08fe2 100644
--- a/pkgs/os-specific/linux/ryzen-smu/default.nix
+++ b/pkgs/os-specific/linux/ryzen-smu/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A Linux kernel driver that exposes access to the SMU (System Management Unit) for certain AMD Ryzen Processors";
+    description = "Linux kernel driver that exposes access to the SMU (System Management Unit) for certain AMD Ryzen Processors";
     homepage = "https://gitlab.com/leogx9r/ryzen_smu";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ Cryolitia phdyellow ];
diff --git a/pkgs/os-specific/linux/ryzenadj/default.nix b/pkgs/os-specific/linux/ryzenadj/default.nix
index ef671b2f16c48..1d61f22b33e51 100644
--- a/pkgs/os-specific/linux/ryzenadj/default.nix
+++ b/pkgs/os-specific/linux/ryzenadj/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "Adjust power management settings for Ryzen Mobile Processors.";
+    description = "Adjust power management settings for Ryzen Mobile Processors";
     mainProgram = "ryzenadj";
     homepage = "https://github.com/FlyGoat/RyzenAdj";
     license = licenses.lgpl3Only;
diff --git a/pkgs/os-specific/linux/sasutils/default.nix b/pkgs/os-specific/linux/sasutils/default.nix
index 64d288117bf4a..797fd4acd0c0a 100644
--- a/pkgs/os-specific/linux/sasutils/default.nix
+++ b/pkgs/os-specific/linux/sasutils/default.nix
@@ -21,7 +21,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/stanford-rc/sasutils";
-    description = "A set of command-line tools to ease the administration of Serial Attached SCSI (SAS) fabrics";
+    description = "Set of command-line tools to ease the administration of Serial Attached SCSI (SAS) fabrics";
     license = licenses.asl20;
     maintainers = with maintainers; [ aij ];
   };
diff --git a/pkgs/os-specific/linux/sd-switch/default.nix b/pkgs/os-specific/linux/sd-switch/default.nix
index 7750862c34c2c..b8dfd36d5919c 100644
--- a/pkgs/os-specific/linux/sd-switch/default.nix
+++ b/pkgs/os-specific/linux/sd-switch/default.nix
@@ -1,6 +1,6 @@
-{ lib, fetchFromSourcehut, rustPlatform, pkg-config, dbus }:
+{ lib, fetchFromSourcehut, rustPlatform, nix-update-script }:
 
-let version = "0.3.0";
+let version = "0.5.0";
 in rustPlatform.buildRustPackage {
   pname = "sd-switch";
   inherit version;
@@ -9,18 +9,20 @@ in rustPlatform.buildRustPackage {
     owner = "~rycee";
     repo = "sd-switch";
     rev = version;
-    hash = "sha256-mWrLbCUnoJ3hVtpSU/7dw91U5TLyw5kNchX5nmP9asA=";
+    hash = "sha256-TESS+CwwEugAz+grzndunAoKF9Or/Jl7tftL392fUaM=";
   };
 
-  cargoHash = "sha256-VK+kPX1pGhowbWKkUs1PL0DXIhDXJOFVoIHTtWQcWEs=";
+  cargoHash = "sha256-QEnleFwEIoKATupj0sSV/GUztQoozEsb3SEgnfFzAfw=";
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ dbus ];
+  passthru = {
+    updateScript = nix-update-script { };
+  };
 
   meta = with lib; {
-    description = "A systemd unit switcher for Home Manager";
+    description = "Systemd unit switcher for Home Manager";
     mainProgram = "sd-switch";
-    homepage = "https://gitlab.com/rycee/sd-switch";
+    homepage = "https://git.sr.ht/~rycee/sd-switch";
+    changelog = "https://git.sr.ht/~rycee/sd-switch/refs/${version}";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ rycee ];
     platforms = platforms.linux;
diff --git a/pkgs/os-specific/linux/sdparm/default.nix b/pkgs/os-specific/linux/sdparm/default.nix
index a9137b18f39d6..2bd1a0946674e 100644
--- a/pkgs/os-specific/linux/sdparm/default.nix
+++ b/pkgs/os-specific/linux/sdparm/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://sg.danny.cz/sg/sdparm.html";
-    description = "A utility to access SCSI device parameters";
+    description = "Utility to access SCSI device parameters";
     license = licenses.bsd3;
     platforms = with platforms; linux;
   };
diff --git a/pkgs/os-specific/linux/service-wrapper/default.nix b/pkgs/os-specific/linux/service-wrapper/default.nix
index e7aa3ea9d49d3..08f7d00bc9628 100644
--- a/pkgs/os-specific/linux/service-wrapper/default.nix
+++ b/pkgs/os-specific/linux/service-wrapper/default.nix
@@ -13,7 +13,7 @@ runCommand name {
   };
 
   meta = with lib; {
-    description = "A convenient wrapper for the systemctl commands, borrow from Ubuntu";
+    description = "Convenient wrapper for the systemctl commands, borrow from Ubuntu";
     mainProgram = "service";
     license     = licenses.gpl2Plus;
     platforms   = platforms.linux;
diff --git a/pkgs/os-specific/linux/setools/default.nix b/pkgs/os-specific/linux/setools/default.nix
index 8e3b0e627d374..c815b8d86aa29 100644
--- a/pkgs/os-specific/linux/setools/default.nix
+++ b/pkgs/os-specific/linux/setools/default.nix
@@ -8,13 +8,13 @@ with python3.pkgs;
 
 buildPythonApplication rec {
   pname = "setools";
-  version = "4.5.0";
+  version = "4.5.1";
 
   src = fetchFromGitHub {
     owner = "SELinuxProject";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-4y4Uhh3O84UbK39j8ACu06/6n7lyHsd8MzODR0FOp3I=";
+    hash = "sha256-/6dOzSz2Do4d6TSS50fuak0CysoQ532zJ0bJ532BUCE=";
   };
 
   nativeBuildInputs = [ cython ];
diff --git a/pkgs/os-specific/linux/shufflecake/default.nix b/pkgs/os-specific/linux/shufflecake/default.nix
index 8e1330e567895..01c634cc4bfd3 100644
--- a/pkgs/os-specific/linux/shufflecake/default.nix
+++ b/pkgs/os-specific/linux/shufflecake/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A plausible deniability (hidden storage) layer for Linux";
+    description = "Plausible deniability (hidden storage) layer for Linux";
     homepage = "https://shufflecake.net";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ oluceps ];
diff --git a/pkgs/os-specific/linux/sinit/default.nix b/pkgs/os-specific/linux/sinit/default.nix
index 3bf73a8f495e1..680e1ae2771c2 100644
--- a/pkgs/os-specific/linux/sinit/default.nix
+++ b/pkgs/os-specific/linux/sinit/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   ;
 
   meta = with lib; {
-    description = "A very minimal Linux init implementation from suckless.org";
+    description = "Very minimal Linux init implementation from suckless.org";
     mainProgram = "sinit";
     license = licenses.mit;
     maintainers = with maintainers; [ raskin ];
diff --git a/pkgs/os-specific/linux/smem/default.nix b/pkgs/os-specific/linux/smem/default.nix
index 6308b83b600a2..bfeb5902a4232 100644
--- a/pkgs/os-specific/linux/smem/default.nix
+++ b/pkgs/os-specific/linux/smem/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://www.selenic.com/smem/";
-    description = "A memory usage reporting tool that takes shared memory into account";
+    description = "Memory usage reporting tool that takes shared memory into account";
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.eelco ];
     license = lib.licenses.gpl2Plus;
diff --git a/pkgs/os-specific/linux/sssd/default.nix b/pkgs/os-specific/linux/sssd/default.nix
index 4f27c7e83fb5d..b3395c7a4ceae 100644
--- a/pkgs/os-specific/linux/sssd/default.nix
+++ b/pkgs/os-specific/linux/sssd/default.nix
@@ -3,33 +3,25 @@
   python3, pam, popt, talloc, tdb, tevent, pkg-config, ldb, openldap,
   pcre2, libkrb5, cifs-utils, glib, keyutils, dbus, fakeroot, libxslt, libxml2,
   libuuid, systemd, nspr, check, cmocka, uid_wrapper, p11-kit,
-  nss_wrapper, ncurses, Po4a, http-parser, jansson, jose,
-  docbook_xsl, docbook_xml_dtd_44,
-  testers, nix-update-script, nixosTests, fetchpatch,
+  nss_wrapper, ncurses, Po4a, jansson, jose,
+  docbook_xsl, docbook_xml_dtd_45,
+  testers, nix-update-script, nixosTests,
   withSudo ? false }:
 
 let
-  docbookFiles = "${docbook_xsl}/share/xml/docbook-xsl/catalog.xml:${docbook_xml_dtd_44}/xml/dtd/docbook/catalog.xml";
+  docbookFiles = "${docbook_xsl}/share/xml/docbook-xsl/catalog.xml:${docbook_xml_dtd_45}/xml/dtd/docbook/catalog.xml";
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "sssd";
-  version = "2.9.4";
+  version = "2.9.5";
 
   src = fetchFromGitHub {
     owner = "SSSD";
     repo = "sssd";
     rev = "refs/tags/${finalAttrs.version}";
-    hash = "sha256-VJXZndbmC6mAVxzvv5Wjb4adrQkP16Rt4cgjl4qGDIc=";
+    hash = "sha256-wr6qFgM5XN3aizYVquj0xF+mVRgrkLWWhA3/gQOK8hQ=";
   };
 
-  patches = [
-    # Fix the build with Samba 4.20
-    (fetchpatch {
-      url = "https://github.com/SSSD/sssd/commit/1bf51929a48b84d62ac54f2a42f17e7fbffe1612.patch";
-      hash = "sha256-VLx04APEipp860iOJNIwTGywxZ7rIDdyh3te6m7Ymlo=";
-    })
-  ];
-
   postPatch = ''
     patchShebangs ./sbus_generate.sh.in
   '';
@@ -74,7 +66,7 @@ stdenv.mkDerivation (finalAttrs: {
                   talloc tdb tevent ldb pam openldap pcre2 libkrb5
                   cifs-utils glib keyutils dbus fakeroot libxslt libxml2
                   libuuid python3.pkgs.python-ldap systemd nspr check cmocka uid_wrapper
-                  nss_wrapper ncurses Po4a http-parser jansson jose ];
+                  nss_wrapper ncurses Po4a jansson jose ];
 
   makeFlags = [
     "SGML_CATALOG_FILES=${docbookFiles}"
diff --git a/pkgs/os-specific/linux/swapview/default.nix b/pkgs/os-specific/linux/swapview/default.nix
index 3ef2426fad937..2cfc8e57c053c 100644
--- a/pkgs/os-specific/linux/swapview/default.nix
+++ b/pkgs/os-specific/linux/swapview/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "03yi6bsjjnl8hznxr1nrnxx5lrqb574625j2lkxqbl9vrg9mswdz";
 
   meta = with lib; {
-    description = "A simple program to view processes' swap usage on Linux";
+    description = "Simple program to view processes' swap usage on Linux";
     mainProgram = "swapview";
     homepage = "https://github.com/lilydjwg/swapview";
     platforms = platforms.linux;
diff --git a/pkgs/os-specific/linux/sysklogd/default.nix b/pkgs/os-specific/linux/sysklogd/default.nix
index 048d82b5a530c..09f76956d7fb2 100644
--- a/pkgs/os-specific/linux/sysklogd/default.nix
+++ b/pkgs/os-specific/linux/sysklogd/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   preInstall = "mkdir -p $out/share/man/man5/ $out/share/man/man8/ $out/sbin";
 
   meta = with lib; {
-    description = "A system logging daemon";
+    description = "System logging daemon";
     platforms = platforms.linux;
     license = licenses.gpl2;
   };
diff --git a/pkgs/os-specific/linux/syslinux/default.nix b/pkgs/os-specific/linux/syslinux/default.nix
index f5153eb5abc98..6023c6e82ff8e 100644
--- a/pkgs/os-specific/linux/syslinux/default.nix
+++ b/pkgs/os-specific/linux/syslinux/default.nix
@@ -1,11 +1,14 @@
 { lib
 , stdenv
-, fetchgit
+, fetchFromRepoOrCz
+, gnu-efi
 , fetchurl
+, fetchpatch
 , libuuid
 , makeWrapper
 , mtools
 , nasm
+, nixosTests
 , perl
 , python3
 }:
@@ -16,11 +19,10 @@ stdenv.mkDerivation {
 
   # This is syslinux-6.04-pre3^1; syslinux-6.04-pre3 fails to run.
   # Same issue here https://www.syslinux.org/archives/2019-February/026330.html
-  src = fetchgit {
-    url = "https://repo.or.cz/syslinux";
+  src = fetchFromRepoOrCz {
+    repo = "syslinux";
     rev = "b40487005223a78c3bb4c300ef6c436b3f6ec1f7";
-    sha256 = "sha256-GqvRTr9mA2yRD0G0CF11x1X0jCgqV4Mh+tvE0/0yjqk=";
-    fetchSubmodules = true;
+    hash = "sha256-XNC+X7UYxdMQQAg4MLACQLxRNnI5/ZCOiCJrEkKgPeM=";
   };
 
   patches = let
@@ -65,19 +67,19 @@ stdenv.mkDerivation {
       "0018-prevent-pow-optimization.patch"
       "26f0e7b2"
       "sha256-dVzXBi/oSV9vYgU85mRFHBKuZdup+1x1BipJX74ED7E=")
+    # Fixes build with "modern" gnu-efi
+    ./import-efisetjmp.patch
+    # Upstream patch: https://www.syslinux.org/archives/2024-February/026903.html
+    ./define-wchar_t.patch
   ];
 
   postPatch = ''
-    substituteInPlace Makefile --replace /bin/pwd $(type -P pwd)
-    substituteInPlace utils/ppmtolss16 --replace /usr/bin/perl $(type -P perl)
+    substituteInPlace Makefile --replace-fail /bin/pwd $(type -P pwd)
+    substituteInPlace utils/ppmtolss16 --replace-fail /usr/bin/perl $(type -P perl)
 
     # fix tests
     substituteInPlace tests/unittest/include/unittest/unittest.h \
-      --replace /usr/include/ ""
-
-    # Hack to get `gcc -m32' to work without having 32-bit Glibc headers.
-    mkdir gnu-efi/inc/ia32/gnu
-    touch gnu-efi/inc/ia32/gnu/stubs-32.h
+      --replace-fail /usr/include/ ""
   '';
 
   nativeBuildInputs = [
@@ -89,6 +91,7 @@ stdenv.mkDerivation {
 
   buildInputs = [
     libuuid
+    gnu-efi
   ];
 
   # Fails very rarely with 'No rule to make target: ...'
@@ -111,8 +114,22 @@ stdenv.mkDerivation {
     "MANDIR=$(out)/share/man"
     "PERL=perl"
     "HEXDATE=0x00000000"
+    # Works around confusing (unrelated) error messages when upx is not made available
+    "UPX=false"
+
+    # Configurations needed to make use of external gnu-efi
+    "LIBEFI=${gnu-efi}/lib/libefi.a"
+    "LIBDIR=${gnu-efi}/lib/"
+    "EFIINC=${gnu-efi}/include/efi"
+
+    # Legacy bios boot target is always built
+    "bios"
   ]
-  ++ lib.optionals stdenv.hostPlatform.isi686 [ "bios" "efi32" ];
+  # Build "ia32" EFI for i686
+  ++ lib.optional stdenv.hostPlatform.isi686 "efi32"
+  # Build "x86_64" EFI for x86_64
+  ++ lib.optional stdenv.hostPlatform.isx86_64 "efi64"
+  ;
 
   # Some tests require qemu, some others fail in a sandboxed environment
   doCheck = false;
@@ -125,9 +142,11 @@ stdenv.mkDerivation {
     rm -rf $out/share/syslinux/com32
   '';
 
+  passthru.tests.biosCdrom = nixosTests.boot.biosCdrom;
+
   meta = with lib; {
-    homepage = "http://www.syslinux.org/";
-    description = "A lightweight bootloader";
+    homepage = "https://www.syslinux.org/";
+    description = "Lightweight bootloader";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.samueldr ];
     platforms = [ "i686-linux" "x86_64-linux" ];
diff --git a/pkgs/os-specific/linux/syslinux/define-wchar_t.patch b/pkgs/os-specific/linux/syslinux/define-wchar_t.patch
new file mode 100644
index 0000000000000..92baf101fb413
--- /dev/null
+++ b/pkgs/os-specific/linux/syslinux/define-wchar_t.patch
@@ -0,0 +1,11 @@
+diff --git a/com32/include/stddef.h b/com32/include/stddef.h
+index f52d62f3..437b11f2 100644
+--- a/com32/include/stddef.h
++++ b/com32/include/stddef.h
+@@ -29,4 +29,6 @@
+  */
+ #define container_of(p, c, m) ((c *)((char *)(p) - offsetof(c,m)))
+ 
++typedef short wchar_t;
++
+ #endif /* _STDDEF_H */
diff --git a/pkgs/os-specific/linux/syslinux/import-efisetjmp.patch b/pkgs/os-specific/linux/syslinux/import-efisetjmp.patch
new file mode 100644
index 0000000000000..6d1744fc4340d
--- /dev/null
+++ b/pkgs/os-specific/linux/syslinux/import-efisetjmp.patch
@@ -0,0 +1,22 @@
+From 68defee52f4eba82eefaeea17f21c7498448dd6b Mon Sep 17 00:00:00 2001
+From: Samuel Dionne-Riel <samuel@dionne-riel.com>
+Date: Mon, 3 Jun 2024 16:16:25 -0400
+Subject: [PATCH] efi/efi.h: Add efisetjmp.h
+
+See https://github.com/ncroxon/gnu-efi/commit/486ba3c3bdd147b7d98159b9e650be60bce0f027
+---
+ efi/efi.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/efi/efi.h b/efi/efi.h
+index c266532f3..e4497574b 100644
+--- a/efi/efi.h
++++ b/efi/efi.h
+@@ -23,6 +23,7 @@
+ #include <efi.h>
+ #include <efilib.h>
+ #include <efistdarg.h>
++#include <efisetjmp.h>
+ 
+ /* Delay for 100 ms */
+ #define EFI_NOMAP_PRINT_DELAY	100
diff --git a/pkgs/os-specific/linux/sysstat/default.nix b/pkgs/os-specific/linux/sysstat/default.nix
index 303935d8adb44..67e0770490781 100644
--- a/pkgs/os-specific/linux/sysstat/default.nix
+++ b/pkgs/os-specific/linux/sysstat/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://sebastien.godard.pagesperso-orange.fr/";
-    description = "A collection of performance monitoring tools for Linux (such as sar, iostat and pidstat)";
+    description = "Collection of performance monitoring tools for Linux (such as sar, iostat and pidstat)";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.eelco ];
diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix
index a0f019c610dc9..68209a4e2ccbc 100644
--- a/pkgs/os-specific/linux/systemd/default.nix
+++ b/pkgs/os-specific/linux/systemd/default.nix
@@ -407,6 +407,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   outputs = [ "out" "dev" ] ++ (lib.optional (!buildLibsOnly) "man");
+  separateDebugInfo = true;
 
   hardeningDisable = [
     # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111523
@@ -500,6 +501,12 @@ stdenv.mkDerivation (finalAttrs: {
     (lib.mesonOption "default-hierarchy" "unified")
     (lib.mesonOption "kmod-path" "${kmod}/bin/kmod")
 
+    # Attempts to check /usr/sbin and that fails in macOS sandbox because
+    # permission is denied. If /usr/sbin is not a symlink, it defaults to true.
+    # We set it to false since stdenv moves sbin/* to bin and creates a symlink,
+    # that is, we do not have split bin.
+    (lib.mesonOption "split-bin" "false")
+
     # D-Bus
     (lib.mesonOption "dbuspolicydir" "${placeholder "out"}/share/dbus-1/system.d")
     (lib.mesonOption "dbussessionservicedir" "${placeholder "out"}/share/dbus-1/services")
@@ -814,6 +821,9 @@ stdenv.mkDerivation (finalAttrs: {
       substituteInPlace $i --replace /bin/false ${coreutils}/bin/false
     done
 
+    # For compatibility with dependents that use sbin instead of bin.
+    ln -s bin "$out/sbin"
+
     rm -rf $out/etc/rpm
   '' + lib.optionalString (!withKernelInstall) ''
     # "kernel-install" shouldn't be used on NixOS.
@@ -884,7 +894,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://www.freedesktop.org/wiki/Software/systemd/";
-    description = "A system and service manager for Linux";
+    description = "System and service manager for Linux";
     longDescription = ''
       systemd is a suite of basic building blocks for a Linux system. It
       provides a system and service manager that runs as PID 1 and starts the
diff --git a/pkgs/os-specific/linux/targetcli/default.nix b/pkgs/os-specific/linux/targetcli/default.nix
index 6058b3509772a..d5594a89a5620 100644
--- a/pkgs/os-specific/linux/targetcli/default.nix
+++ b/pkgs/os-specific/linux/targetcli/default.nix
@@ -1,4 +1,4 @@
-{ lib, python3, fetchFromGitHub, nixosTests }:
+{ lib, python3, fetchFromGitHub, nixosTests, wrapGAppsNoGuiHook, gobject-introspection, glib }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "targetcli";
@@ -11,7 +11,10 @@ python3.pkgs.buildPythonApplication rec {
     hash = "sha256-9QYo7jGk9iWr26j0qPQCqYsJ+vLXAsO4Xs7+7VT9/yc=";
   };
 
-  propagatedBuildInputs = with python3.pkgs; [ configshell rtslib ];
+  nativeBuildInputs = [ wrapGAppsNoGuiHook gobject-introspection ];
+  buildInputs = [ glib ];
+
+  propagatedBuildInputs = with python3.pkgs; [ configshell rtslib pygobject3 ];
 
   postInstall = ''
     install -D targetcli.8 -t $out/share/man/man8/
@@ -23,7 +26,7 @@ python3.pkgs.buildPythonApplication rec {
   };
 
   meta = with lib; {
-    description = "A command shell for managing the Linux LIO kernel target";
+    description = "Command shell for managing the Linux LIO kernel target";
     homepage = "https://github.com/open-iscsi/targetcli-fb";
     license = licenses.asl20;
     maintainers = lib.teams.helsinki-systems.members;
diff --git a/pkgs/os-specific/linux/tiscamera/default.nix b/pkgs/os-specific/linux/tiscamera/default.nix
index 8847a83d53d77..d93eeaff27232 100644
--- a/pkgs/os-specific/linux/tiscamera/default.nix
+++ b/pkgs/os-specific/linux/tiscamera/default.nix
@@ -126,7 +126,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The Linux sources and UVC firmwares for The Imaging Source cameras";
+    description = "Linux sources and UVC firmwares for The Imaging Source cameras";
     homepage = "https://github.com/TheImagingSource/tiscamera";
     license = with licenses; [ asl20 ];
     platforms = platforms.linux;
diff --git a/pkgs/os-specific/linux/trace-cmd/kernelshark.nix b/pkgs/os-specific/linux/trace-cmd/kernelshark.nix
index 1eda219013da6..4251235469ccc 100644
--- a/pkgs/os-specific/linux/trace-cmd/kernelshark.nix
+++ b/pkgs/os-specific/linux/trace-cmd/kernelshark.nix
@@ -1,22 +1,22 @@
-{ lib, mkDerivation, fetchzip, qtbase, cmake, asciidoc
+{ lib, stdenv, fetchzip, qtbase, qtscxml, cmake, asciidoc
 , docbook_xsl, json_c, mesa_glu, freeglut, trace-cmd, pkg-config
-, libtraceevent, libtracefs, freefont_ttf
+, libtraceevent, libtracefs, freefont_ttf, wrapQtAppsHook, qtwayland
 }:
 
-mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "kernelshark";
-  version = "2.2.1";
+  version = "2.3.1";
 
   src = fetchzip {
-    url = "https://git.kernel.org/pub/scm/utils/trace-cmd/kernel-shark.git/snapshot/kernelshark-v${version}.tar.gz";
-    hash = "sha256-V25IzPDOt6V03wgIa/AJ0T8mRaGmXYuMCcvbSOKleY0=";
+    url = "https://git.kernel.org/pub/scm/utils/trace-cmd/kernel-shark.git/snapshot/kernelshark-v${finalAttrs.version}.tar.gz";
+    hash = "sha256-KV8ahV2koX7OL1C42H5If14e7m54jv0DlZ1dNsVRUWE=";
   };
 
   outputs = [ "out" ];
 
-  nativeBuildInputs = [ pkg-config cmake ];
+  nativeBuildInputs = [ pkg-config cmake wrapQtAppsHook ];
 
-  buildInputs = [ qtbase json_c mesa_glu freeglut libtraceevent libtracefs trace-cmd ];
+  buildInputs = [ qtbase qtscxml qtwayland json_c mesa_glu freeglut libtraceevent libtracefs trace-cmd ];
 
   cmakeFlags = [
     "-D_INSTALL_PREFIX=${placeholder "out"}"
@@ -32,4 +32,4 @@ mkDerivation rec {
     platforms   = platforms.linux;
     maintainers = with maintainers; [ basvandijk ];
   };
-}
+})
diff --git a/pkgs/os-specific/linux/trinity/default.nix b/pkgs/os-specific/linux/trinity/default.nix
index 370620eef2527..a3e795c8ea02e 100644
--- a/pkgs/os-specific/linux/trinity/default.nix
+++ b/pkgs/os-specific/linux/trinity/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   installFlags = [ "DESTDIR=$(out)" ];
 
   meta = with lib; {
-    description = "A Linux System call fuzz tester";
+    description = "Linux System call fuzz tester";
     mainProgram = "trinity";
     homepage = "https://github.com/kernelslacker/trinity";
     license = licenses.gpl2Only;
diff --git a/pkgs/os-specific/linux/tuna/default.nix b/pkgs/os-specific/linux/tuna/default.nix
index 3b527c8b534fe..634680dc318c2 100644
--- a/pkgs/os-specific/linux/tuna/default.nix
+++ b/pkgs/os-specific/linux/tuna/default.nix
@@ -57,6 +57,5 @@ buildPythonApplication rec {
     homepage = "https://git.kernel.org/pub/scm/utils/tuna/tuna.git";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/os-specific/linux/udisks/2-default.nix b/pkgs/os-specific/linux/udisks/2-default.nix
index 11b2ed28fb3f6..51a342aa5e92e 100644
--- a/pkgs/os-specific/linux/udisks/2-default.nix
+++ b/pkgs/os-specific/linux/udisks/2-default.nix
@@ -89,7 +89,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A daemon, tools and libraries to access and manipulate disks, storage devices and technologies";
+    description = "Daemon, tools and libraries to access and manipulate disks, storage devices and technologies";
     homepage = "https://www.freedesktop.org/wiki/Software/udisks/";
     license = with licenses; [ lgpl2Plus gpl2Plus ]; # lgpl2Plus for the library, gpl2Plus for the tools & daemon
     maintainers = teams.freedesktop.members ++ (with maintainers; [ johnazoidberg ]);
diff --git a/pkgs/os-specific/linux/undervolt/default.nix b/pkgs/os-specific/linux/undervolt/default.nix
index d720031eb8ac3..4066139c6fc3f 100644
--- a/pkgs/os-specific/linux/undervolt/default.nix
+++ b/pkgs/os-specific/linux/undervolt/default.nix
@@ -13,7 +13,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/georgewhewell/undervolt/";
-    description = "A program for undervolting Intel CPUs on Linux";
+    description = "Program for undervolting Intel CPUs on Linux";
     mainProgram = "undervolt";
 
     longDescription = ''
diff --git a/pkgs/os-specific/linux/untie/default.nix b/pkgs/os-specific/linux/untie/default.nix
index 7d96631deb868..356416832cc9a 100644
--- a/pkgs/os-specific/linux/untie/default.nix
+++ b/pkgs/os-specific/linux/untie/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "A tool to run processes untied from some of the namespaces";
+    description = "Tool to run processes untied from some of the namespaces";
     mainProgram = "untie";
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
diff --git a/pkgs/os-specific/linux/upower/default.nix b/pkgs/os-specific/linux/upower/default.nix
index 8a1d79a9d7bdd..4ee907fe5a995 100644
--- a/pkgs/os-specific/linux/upower/default.nix
+++ b/pkgs/os-specific/linux/upower/default.nix
@@ -210,7 +210,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://upower.freedesktop.org/";
     changelog = "https://gitlab.freedesktop.org/upower/upower/-/blob/v${finalAttrs.version}/NEWS";
-    description = "A D-Bus service for power management";
+    description = "D-Bus service for power management";
     mainProgram = "upower";
     maintainers = teams.freedesktop.members;
     platforms = platforms.linux;
diff --git a/pkgs/os-specific/linux/usbguard/default.nix b/pkgs/os-specific/linux/usbguard/default.nix
index e43ee0b421dc5..139d6b63d8dcd 100644
--- a/pkgs/os-specific/linux/usbguard/default.nix
+++ b/pkgs/os-specific/linux/usbguard/default.nix
@@ -85,7 +85,7 @@ stdenv.mkDerivation rec {
   passthru.tests = nixosTests.usbguard;
 
   meta = with lib; {
-    description = "The USBGuard software framework helps to protect your computer against BadUSB";
+    description = "USBGuard software framework helps to protect your computer against BadUSB";
     longDescription = ''
       USBGuard is a software framework for implementing USB device authorization
       policies (what kind of USB devices are authorized) as well as method of
diff --git a/pkgs/os-specific/linux/usbip/default.nix b/pkgs/os-specific/linux/usbip/default.nix
index b91f55dcd2fbb..adaaab868b78a 100644
--- a/pkgs/os-specific/linux/usbip/default.nix
+++ b/pkgs/os-specific/linux/usbip/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchpatch, kernel, udev, autoconf, automake, libtool, hwdata, kernelOlder }:
+{ lib, stdenv, kernel, udev, autoconf, automake, libtool, hwdata, kernelOlder }:
 
 stdenv.mkDerivation {
   name = "usbip-${kernel.name}";
diff --git a/pkgs/os-specific/linux/usbtop/default.nix b/pkgs/os-specific/linux/usbtop/default.nix
index ba97cae68bd0d..587d82d9e7ebc 100644
--- a/pkgs/os-specific/linux/usbtop/default.nix
+++ b/pkgs/os-specific/linux/usbtop/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/aguinet/usbtop";
-    description = "A top utility that shows an estimated instantaneous bandwidth on USB buses and devices";
+    description = "Top utility that shows an estimated instantaneous bandwidth on USB buses and devices";
     mainProgram = "usbtop";
     maintainers = with maintainers; [ ];
     license = licenses.bsd3;
diff --git a/pkgs/os-specific/linux/usermount/default.nix b/pkgs/os-specific/linux/usermount/default.nix
index 73135da548edc..883e927444bee 100644
--- a/pkgs/os-specific/linux/usermount/default.nix
+++ b/pkgs/os-specific/linux/usermount/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "https://github.com/tom5760/usermount";
-    description = "A simple tool to automatically mount removable drives using UDisks2 and D-Bus";
+    description = "Simple tool to automatically mount removable drives using UDisks2 and D-Bus";
     mainProgram = "usermount";
     license = lib.licenses.mit;
     platforms = lib.platforms.linux;
diff --git a/pkgs/os-specific/linux/util-linux/default.nix b/pkgs/os-specific/linux/util-linux/default.nix
index ef3614bce02ef..e393bf1ac08e6 100644
--- a/pkgs/os-specific/linux/util-linux/default.nix
+++ b/pkgs/os-specific/linux/util-linux/default.nix
@@ -1,9 +1,7 @@
-{ lib, stdenv, fetchurl, fetchpatch, autoreconfHook, gtk-doc, pkg-config
-, zlib, shadow
+{ lib, stdenv, fetchurl, pkg-config, zlib, shadow
 , capabilitiesSupport ? stdenv.isLinux
 , libcap_ng
 , libxcrypt
-, sqlite
 , ncursesSupport ? true
 , ncurses
 , pamSupport ? true
@@ -19,20 +17,14 @@
 , memstreamHook
 , gitUpdater
 }:
-let
-  # Temporarily avoid applying the patches on systems where already we have binaries
-  # (in particular x86_64-linux and aarch64-linux) as the package is a huge rebuild there.
-  avoidRebuild = with stdenv.hostPlatform; isLinux && is64bit && !isStatic;
-in
+
 stdenv.mkDerivation rec {
   pname = "util-linux" + lib.optionalString (!nlsSupport && !ncursesSupport && !systemdSupport) "-minimal";
-  version = if avoidRebuild then "2.40.1" else "2.39.4";
+  version = "2.39.4";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/util-linux/v${lib.versions.majorMinor version}/util-linux-${version}.tar.xz";
-    hash = if avoidRebuild
-      then "sha256-WeZ2qlPMtEtsOfD/4BqPonSJHJG+8UdHUvrZJGHe8k8="
-      else "sha256-bE+HI9r9QcOdk+y/FlCfyIwzzVvTJ3iArlodl6AU/Q4=";
+    hash = "sha256-bE+HI9r9QcOdk+y/FlCfyIwzzVvTJ3iArlodl6AU/Q4=";
   };
 
   patches = [
@@ -48,7 +40,7 @@ stdenv.mkDerivation rec {
   separateDebugInfo = true;
 
   postPatch = ''
-    patchShebangs tests/run.sh tools/all_syscalls
+    patchShebangs tests/run.sh
 
     substituteInPlace sys-utils/eject.c \
       --replace "/bin/umount" "$bin/bin/umount"
@@ -67,7 +59,6 @@ stdenv.mkDerivation rec {
     "--enable-fs-paths-default=/run/wrappers/bin:/run/current-system/sw/bin:/sbin"
     "--disable-makeinstall-setuid" "--disable-makeinstall-chown"
     "--disable-su" # provided by shadow
-    "--with-tmpfilesdir=${placeholder "out"}/lib/tmpfiles.d"
     (lib.enableFeature writeSupport "write")
     (lib.enableFeature nlsSupport "nls")
     (lib.withFeature ncursesSupport "ncursesw")
@@ -89,7 +80,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config installShellFiles ]
     ++ lib.optionals translateManpages [ po4a ];
 
-  buildInputs = [ zlib libxcrypt sqlite ]
+  buildInputs = [ zlib libxcrypt ]
     ++ lib.optionals pamSupport [ pam ]
     ++ lib.optionals capabilitiesSupport [ libcap_ng ]
     ++ lib.optionals ncursesSupport [ ncurses ]
@@ -118,6 +109,9 @@ stdenv.mkDerivation rec {
     ln -svf "$swap/bin/"* $bin/bin/
     '' + ''
 
+    ln -svf "$bin/bin/hexdump" "$bin/bin/hd"
+    ln -svf "$man/share/man/man1/hexdump.1" "$man/share/man/man1/hd.1"
+
     installShellCompletion --bash bash-completion/*
   '';
 
@@ -132,7 +126,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.kernel.org/pub/linux/utils/util-linux/";
-    description = "A set of system utilities for Linux";
+    description = "Set of system utilities for Linux";
     changelog = "https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v${lib.versions.majorMinor version}/v${version}-ReleaseNotes";
     # https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/tree/README.licensing
     license = with licenses; [ gpl2Only gpl2Plus gpl3Plus lgpl21Plus bsd3 bsdOriginalUC publicDomain ];
diff --git a/pkgs/os-specific/linux/uvcdynctrl/default.nix b/pkgs/os-specific/linux/uvcdynctrl/default.nix
index 8fa91e158e1c8..c8e3fc385fdf5 100644
--- a/pkgs/os-specific/linux/uvcdynctrl/default.nix
+++ b/pkgs/os-specific/linux/uvcdynctrl/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A simple interface for devices supported by the linux UVC driver";
+    description = "Simple interface for devices supported by the linux UVC driver";
     homepage = "https://guvcview.sourceforge.net";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.puffnfresh ];
diff --git a/pkgs/os-specific/linux/v4l2loopback/default.nix b/pkgs/os-specific/linux/v4l2loopback/default.nix
index 6fe83fd09effc..7f825509b9475 100644
--- a/pkgs/os-specific/linux/v4l2loopback/default.nix
+++ b/pkgs/os-specific/linux/v4l2loopback/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation {
   ];
 
   meta = with lib; {
-    description = "A kernel module to create V4L2 loopback devices";
+    description = "Kernel module to create V4L2 loopback devices";
     mainProgram = "v4l2loopback-ctl";
     homepage = "https://github.com/umlaeute/v4l2loopback";
     license = licenses.gpl2Only;
diff --git a/pkgs/os-specific/linux/v86d/default.nix b/pkgs/os-specific/linux/v86d/default.nix
index 8597cc5ac9f93..d59e8f52ff2b5 100644
--- a/pkgs/os-specific/linux/v86d/default.nix
+++ b/pkgs/os-specific/linux/v86d/default.nix
@@ -38,7 +38,7 @@ in stdenv.mkDerivation rec {
   buildInputs = [ klibc ];
 
   meta = with lib; {
-    description = "A daemon to run x86 code in an emulated environment";
+    description = "Daemon to run x86 code in an emulated environment";
     mainProgram = "v86d";
     homepage = "https://github.com/mjanusz/v86d";
     license = licenses.gpl2;
diff --git a/pkgs/os-specific/linux/vdo/default.nix b/pkgs/os-specific/linux/vdo/default.nix
index 625aa232cc66a..e709b26ad93d3 100644
--- a/pkgs/os-specific/linux/vdo/default.nix
+++ b/pkgs/os-specific/linux/vdo/default.nix
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/dm-vdo/vdo";
-    description = "A set of userspace tools for managing pools of deduplicated and/or compressed block storage";
+    description = "Set of userspace tools for managing pools of deduplicated and/or compressed block storage";
     # platforms are defined in https://github.com/dm-vdo/vdo/blob/master/utils/uds/atomicDefs.h
     platforms = [ "x86_64-linux" "aarch64-linux" "s390-linux" "powerpc64-linux" "powerpc64le-linux" ];
     license = with licenses; [ gpl2Plus ];
diff --git a/pkgs/os-specific/linux/virtio_vmmci/default.nix b/pkgs/os-specific/linux/virtio_vmmci/default.nix
index cff2cbbeae8c7..a0db1483c5499 100644
--- a/pkgs/os-specific/linux/virtio_vmmci/default.nix
+++ b/pkgs/os-specific/linux/virtio_vmmci/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An OpenBSD VMM Control Interface (vmmci) for Linux";
+    description = "OpenBSD VMM Control Interface (vmmci) for Linux";
     homepage = "https://github.com/voutilad/virtio_vmmci";
     license = licenses.gpl2;
     maintainers = with maintainers; [ qbit ];
diff --git a/pkgs/os-specific/linux/wiringpi/default.nix b/pkgs/os-specific/linux/wiringpi/default.nix
index bc80e2a33543b..a8eb74217a4f9 100644
--- a/pkgs/os-specific/linux/wiringpi/default.nix
+++ b/pkgs/os-specific/linux/wiringpi/default.nix
@@ -1,50 +1,54 @@
-{ lib
-, stdenv
-, symlinkJoin
-, fetchFromGitHub
-, libxcrypt
+{
+  lib,
+  stdenv,
+  symlinkJoin,
+  fetchFromGitHub,
+  libxcrypt,
 }:
 
 let
-  version = "2.61-1";
-  mkSubProject = { subprj # The only mandatory argument
-  , buildInputs ? []
-  , src ? fetchFromGitHub {
+  version = "3.6";
+  srcAll = fetchFromGitHub {
     owner = "WiringPi";
     repo = "WiringPi";
     rev = version;
-    sha256 = "sha256-VxAaPhaPXd9xYt663Ju6SLblqiSLizauhhuFqCqbO5M=";
-  }
-  }: stdenv.mkDerivation (finalAttrs: {
-    pname = "wiringpi-${subprj}";
-    inherit version src;
-    sourceRoot = "${src.name}/${subprj}";
-    inherit buildInputs;
-    # Remove (meant for other OSs) lines from Makefiles
-    preInstall = ''
-      sed -i "/chown root/d" Makefile
-      sed -i "/chmod/d" Makefile
-    '';
-    makeFlags = [
-      "DESTDIR=${placeholder "out"}"
-      "PREFIX=/."
-      # On NixOS we don't need to run ldconfig during build:
-      "LDCONFIG=echo"
-    ];
-  });
+    sha256 = "sha256-Hw81Ua9LTb/9l3Js1rx8TfCOF59MrrvH6AGsAsG1SoE=";
+  };
+  mkSubProject =
+    {
+      subprj, # The only mandatory argument
+      buildInputs ? [ ],
+      src ? srcAll,
+    }:
+    stdenv.mkDerivation (finalAttrs: {
+      pname = "wiringpi-${subprj}";
+      inherit version src;
+      sourceRoot = "${src.name}/${subprj}";
+      inherit buildInputs;
+      # Remove (meant for other OSs) lines from Makefiles
+      preInstall = ''
+        sed -i "/chown root/d" Makefile
+        sed -i "/chmod/d" Makefile
+      '';
+      makeFlags = [
+        "DESTDIR=${placeholder "out"}"
+        "PREFIX=/."
+        # On NixOS we don't need to run ldconfig during build:
+        "LDCONFIG=echo"
+      ];
+    });
   passthru = {
+    # Helps nix-update and probably nixpkgs-update find the src of this package
+    # automatically.
+    src = srcAll;
     inherit mkSubProject;
     wiringPi = mkSubProject {
       subprj = "wiringPi";
-      buildInputs = [
-        libxcrypt
-      ];
+      buildInputs = [ libxcrypt ];
     };
     devLib = mkSubProject {
       subprj = "devLib";
-      buildInputs = [
-        passthru.wiringPi
-      ];
+      buildInputs = [ passthru.wiringPi ];
     };
     wiringPiD = mkSubProject {
       subprj = "wiringPiD";
diff --git a/pkgs/os-specific/linux/wpa_supplicant/default.nix b/pkgs/os-specific/linux/wpa_supplicant/default.nix
index 49355de17784e..f797b89efc7bf 100644
--- a/pkgs/os-specific/linux/wpa_supplicant/default.nix
+++ b/pkgs/os-specific/linux/wpa_supplicant/default.nix
@@ -120,7 +120,6 @@ stdenv.mkDerivation rec {
   + lib.optionalString dbusSupport ''
     mkdir -p $out/share/dbus-1/system.d $out/share/dbus-1/system-services $out/etc/systemd/system
     cp -v "dbus/"*service $out/share/dbus-1/system-services
-    sed -e "s@/sbin/wpa_supplicant@$out&@" -i "$out/share/dbus-1/system-services/"*
     cp -v dbus/dbus-wpa_supplicant.conf $out/share/dbus-1/system.d
     cp -v "systemd/"*.service $out/etc/systemd/system
   ''
@@ -136,7 +135,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://w1.fi/wpa_supplicant/";
-    description = "A tool for connecting to WPA and WPA2-protected wireless networks";
+    description = "Tool for connecting to WPA and WPA2-protected wireless networks";
     license = licenses.bsd3;
     maintainers = with maintainers; [ marcweber ma27 ];
     platforms = platforms.linux;
diff --git a/pkgs/os-specific/linux/wpa_supplicant/gui.nix b/pkgs/os-specific/linux/wpa_supplicant/gui.nix
index ac1de01af974a..45eedb25a9531 100644
--- a/pkgs/os-specific/linux/wpa_supplicant/gui.nix
+++ b/pkgs/os-specific/linux/wpa_supplicant/gui.nix
@@ -1,4 +1,4 @@
-{ lib, mkDerivation, fetchpatch, qtbase, qmake, inkscape, imagemagick, wpa_supplicant }:
+{ lib, mkDerivation, qtbase, qmake, inkscape, imagemagick, wpa_supplicant }:
 
 mkDerivation {
   pname = "wpa_gui";
diff --git a/pkgs/os-specific/linux/xf86-video-nested/default.nix b/pkgs/os-specific/linux/xf86-video-nested/default.nix
index 4092e3797c2ff..bfc4a68bddf87 100644
--- a/pkgs/os-specific/linux/xf86-video-nested/default.nix
+++ b/pkgs/os-specific/linux/xf86-video-nested/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://cgit.freedesktop.org/xorg/driver/xf86-video-nested";
-    description = "A driver to run Xorg on top of Xorg or something else";
+    description = "Driver to run Xorg on top of Xorg or something else";
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.linux;
     license = licenses.mit;
diff --git a/pkgs/os-specific/linux/xone/default.nix b/pkgs/os-specific/linux/xone/default.nix
index 92a10878a36ae..fdc9990fb63d9 100644
--- a/pkgs/os-specific/linux/xone/default.nix
+++ b/pkgs/os-specific/linux/xone/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, kernel, fetchpatch }:
+{ stdenv, lib, fetchFromGitHub, kernel }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "xone";
diff --git a/pkgs/os-specific/linux/zenpower/default.nix b/pkgs/os-specific/linux/zenpower/default.nix
index bf1240610f8c6..f5819f0d1d221 100644
--- a/pkgs/os-specific/linux/zenpower/default.nix
+++ b/pkgs/os-specific/linux/zenpower/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "Linux kernel driver for reading temperature, voltage(SVI2), current(SVI2) and power(SVI2) for AMD Zen family CPUs.";
+    description = "Linux kernel driver for reading temperature, voltage(SVI2), current(SVI2) and power(SVI2) for AMD Zen family CPUs";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ alexbakker artturin ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/os-specific/linux/zfs/generic.nix b/pkgs/os-specific/linux/zfs/generic.nix
index c0ff834cb34ab..ac32f034b7cd1 100644
--- a/pkgs/os-specific/linux/zfs/generic.nix
+++ b/pkgs/os-specific/linux/zfs/generic.nix
@@ -1,6 +1,6 @@
 let
   genericBuild =
-  { pkgs, lib, stdenv, fetchFromGitHub, fetchpatch
+  { pkgs, lib, stdenv, fetchFromGitHub
   , autoreconfHook269, util-linux, nukeReferences, coreutils
   , perl
   , configFile ? "all"
diff --git a/pkgs/os-specific/linux/zfs/unstable.nix b/pkgs/os-specific/linux/zfs/unstable.nix
index 1d8ced4dd5d74..28401bf4adfa5 100644
--- a/pkgs/os-specific/linux/zfs/unstable.nix
+++ b/pkgs/os-specific/linux/zfs/unstable.nix
@@ -14,7 +14,7 @@ callPackage ./generic.nix args {
   # this attribute is the correct one for this package.
   kernelModuleAttribute = "zfs_unstable";
   # check the release notes for compatible kernels
-  kernelCompatible = kernel.kernelOlder "6.9";
+  kernelCompatible = kernel.kernelOlder "6.10";
 
   latestCompatibleLinuxPackages = linuxKernel.packages.linux_6_8;
 
@@ -22,13 +22,13 @@ callPackage ./generic.nix args {
   # IMPORTANT: Always use a tagged release candidate or commits from the
   # zfs-<version>-staging branch, because this is tested by the OpenZFS
   # maintainers.
-  version = "2.2.4";
-  # rev = "";
+  version = "2.2.4-unstable-2024-05-29";
+  rev = "2eab4f7b396a1abb9adf7cab82d6ff47f9d78e9b";
 
   isUnstable = true;
   tests = [
     nixosTests.zfs.unstable
   ];
 
-  hash = "sha256-SSp/1Tu1iGx5UDcG4j0k2fnYxK05cdE8gzfSn8DU5Z4=";
+  hash = "sha256-xcEiZRHsFtIWvjy47kaLai/No/XYfhkJ5+zi/1KWqUE=";
 }
diff --git a/pkgs/os-specific/windows/cygwin-setup/default.nix b/pkgs/os-specific/windows/cygwin-setup/default.nix
index 91dad81f1f52a..074157c182c38 100644
--- a/pkgs/os-specific/windows/cygwin-setup/default.nix
+++ b/pkgs/os-specific/windows/cygwin-setup/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://sourceware.org/cygwin-apps/setup.html";
-    description = "A tool for installing Cygwin";
+    description = "Tool for installing Cygwin";
     license = licenses.gpl2Plus;
   };
 }
diff --git a/pkgs/os-specific/windows/default.nix b/pkgs/os-specific/windows/default.nix
index 234abcde16117..7b9bbcc52f791 100644
--- a/pkgs/os-specific/windows/default.nix
+++ b/pkgs/os-specific/windows/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, buildPackages
-, newScope, overrideCC, crossLibcStdenv, libcCross
+, newScope, overrideCC, stdenvNoLibc, libcCross
 }:
 
 lib.makeScope newScope (self: with self; {
@@ -14,11 +14,11 @@ lib.makeScope newScope (self: with self; {
   mingw_runtime = mingwrt;
 
   mingw_w64 = callPackage ./mingw-w64 {
-    stdenv = crossLibcStdenv;
+    stdenv = stdenvNoLibc;
   };
 
   # FIXME untested with llvmPackages_16 was using llvmPackages_8
-  crossThreadsStdenv = overrideCC crossLibcStdenv
+  crossThreadsStdenv = overrideCC stdenvNoLibc
     (if stdenv.hostPlatform.useLLVM or false
      then buildPackages.llvmPackages.clangNoLibcxx
      else buildPackages.gccWithoutTargetLibc.override (old: {
diff --git a/pkgs/os-specific/windows/mcfgthreads/default.nix b/pkgs/os-specific/windows/mcfgthreads/default.nix
index 5075107c5a3f2..9eabaf21e44fc 100644
--- a/pkgs/os-specific/windows/mcfgthreads/default.nix
+++ b/pkgs/os-specific/windows/mcfgthreads/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    description = "A threading support library for Windows 7 and above";
+    description = "Threading support library for Windows 7 and above";
     homepage = "https://github.com/lhmouse/mcfgthread/wiki";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ wegank ];
diff --git a/pkgs/os-specific/windows/mingw-w64/default.nix b/pkgs/os-specific/windows/mingw-w64/default.nix
index 706186c8e2f15..ba2b243a9408a 100644
--- a/pkgs/os-specific/windows/mingw-w64/default.nix
+++ b/pkgs/os-specific/windows/mingw-w64/default.nix
@@ -3,18 +3,12 @@
 , windows
 , fetchurl
 , autoreconfHook
+, mingw_w64_headers
 }:
 
-let
-  version = "11.0.1";
-in stdenv.mkDerivation {
+stdenv.mkDerivation {
   pname = "mingw-w64";
-  inherit version;
-
-  src = fetchurl {
-    url = "mirror://sourceforge/mingw-w64/mingw-w64-v${version}.tar.bz2";
-    hash = "sha256-P2a84Gnui+10OaGhPafLkaXmfqYXDyExesf1eUYl7hA=";
-  };
+  inherit (mingw_w64_headers) version src meta;
 
   outputs = [ "out" "dev" ];
 
@@ -30,8 +24,4 @@ in stdenv.mkDerivation {
   nativeBuildInputs = [ autoreconfHook ];
   buildInputs = [ windows.mingw_w64_headers ];
   hardeningDisable = [ "stackprotector" "fortify" ];
-
-  meta = {
-    platforms = lib.platforms.windows;
-  };
 }
diff --git a/pkgs/os-specific/windows/mingw-w64/headers.nix b/pkgs/os-specific/windows/mingw-w64/headers.nix
index 1fd27a8c4573f..d5edaeaa2bd1e 100644
--- a/pkgs/os-specific/windows/mingw-w64/headers.nix
+++ b/pkgs/os-specific/windows/mingw-w64/headers.nix
@@ -1,11 +1,19 @@
-{ stdenvNoCC, mingw_w64 }:
+{ lib, stdenvNoCC, fetchurl }:
 
-stdenvNoCC.mkDerivation {
-  name = "${mingw_w64.name}-headers";
-  inherit (mingw_w64) src meta;
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "mingw_w64-headers";
+  version = "11.0.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/mingw-w64/mingw-w64-v${finalAttrs.version}.tar.bz2";
+    hash = "sha256-P2a84Gnui+10OaGhPafLkaXmfqYXDyExesf1eUYl7hA=";
+  };
 
   preConfigure = ''
     cd mingw-w64-headers
   '';
 
-}
+  meta = {
+    platforms = lib.platforms.windows;
+  };
+})
diff --git a/pkgs/os-specific/windows/mingw-w64/pthreads.nix b/pkgs/os-specific/windows/mingw-w64/pthreads.nix
index 3b143efed1d70..3c5fab4fa708f 100644
--- a/pkgs/os-specific/windows/mingw-w64/pthreads.nix
+++ b/pkgs/os-specific/windows/mingw-w64/pthreads.nix
@@ -1,8 +1,8 @@
-{ stdenv, mingw_w64 }:
+{ stdenv, mingw_w64_headers }:
 
 stdenv.mkDerivation {
-  name = "${mingw_w64.name}-pthreads";
-  inherit (mingw_w64) src meta;
+  pname = "mingw_w64-pthreads";
+  inherit (mingw_w64_headers) version src meta;
 
   configureFlags = [
     # Rustc require 'libpthread.a' when targeting 'x86_64-pc-windows-gnu'.
diff --git a/pkgs/pkgs-lib/formats.nix b/pkgs/pkgs-lib/formats.nix
index 7cc0bf4f4e504..8fc808b2646f4 100644
--- a/pkgs/pkgs-lib/formats.nix
+++ b/pkgs/pkgs-lib/formats.nix
@@ -65,6 +65,7 @@ rec {
       nativeBuildInputs = [ jq ];
       value = builtins.toJSON value;
       passAsFile = [ "value" ];
+      preferLocalBuild = true;
     } ''
       jq . "$valuePath"> $out
     '') {};
@@ -77,6 +78,7 @@ rec {
       nativeBuildInputs = [ remarshal ];
       value = builtins.toJSON value;
       passAsFile = [ "value" ];
+      preferLocalBuild = true;
     } ''
       json2yaml "$valuePath" "$out"
     '') {};
@@ -270,6 +272,7 @@ rec {
       nativeBuildInputs = [ remarshal ];
       value = builtins.toJSON value;
       passAsFile = [ "value" ];
+      preferLocalBuild = true;
     } ''
       json2toml "$valuePath" "$out"
     '') {};
@@ -467,6 +470,7 @@ rec {
           value = toConf value;
           passAsFile = [ "value" ];
           nativeBuildInputs = [ elixir ];
+          preferLocalBuild = true;
         } ''
         cp "$valuePath" "$out"
         mix format "$out"
@@ -501,6 +505,7 @@ rec {
                 print(f"{key} = {repr(value)}")
       '';
       passAsFile = [ "value" "pythonGen" ];
+      preferLocalBuild = true;
     } ''
       cat "$valuePath"
       python3 "$pythonGenPath" > $out
diff --git a/pkgs/pkgs-lib/formats/hocon/default.nix b/pkgs/pkgs-lib/formats/hocon/default.nix
index 0ae9c569ed2b1..d7ff1e85bda63 100644
--- a/pkgs/pkgs-lib/formats/hocon/default.nix
+++ b/pkgs/pkgs-lib/formats/hocon/default.nix
@@ -153,6 +153,7 @@ in
           inherit name;
 
           dontUnpack = true;
+          preferLocalBuild = true;
 
           json = builtins.toJSON finalValue;
           passAsFile = [ "json" ];
diff --git a/pkgs/pkgs-lib/formats/java-properties/default.nix b/pkgs/pkgs-lib/formats/java-properties/default.nix
index d3a4761f0f803..50eabb8cf3f31 100644
--- a/pkgs/pkgs-lib/formats/java-properties/default.nix
+++ b/pkgs/pkgs-lib/formats/java-properties/default.nix
@@ -46,7 +46,7 @@ in
       in attrsOf elemType;
 
     generate = name: value:
-      pkgs.runCommandLocal name
+      pkgs.runCommand name
         {
           # Requirements
           # ============
@@ -80,6 +80,7 @@ in
           #    libraries, but we can't rely on this in
           #    general.
 
+          preferLocalBuild = true;
           passAsFile = [ "value" ];
           value = builtins.toJSON value;
           nativeBuildInputs = [
diff --git a/pkgs/pkgs-lib/formats/libconfig/default.nix b/pkgs/pkgs-lib/formats/libconfig/default.nix
index 7433a72853533..5687ab8c00578 100644
--- a/pkgs/pkgs-lib/formats/libconfig/default.nix
+++ b/pkgs/pkgs-lib/formats/libconfig/default.nix
@@ -85,6 +85,7 @@ in
           inherit name;
 
           dontUnpack = true;
+          preferLocalBuild = true;
 
           json = builtins.toJSON value;
           passAsFile = [ "json" ];
diff --git a/pkgs/servers/adguardhome/bins.nix b/pkgs/servers/adguardhome/bins.nix
index e854a32266725..cccad0ea46cee 100644
--- a/pkgs/servers/adguardhome/bins.nix
+++ b/pkgs/servers/adguardhome/bins.nix
@@ -1,31 +1,31 @@
 { fetchurl, fetchzip }:
 {
 x86_64-darwin = fetchzip {
-  sha256 = "sha256-97o4rMNwikQZR3DPhhE+OPlY3gA9HqCQxBf+mZSfDMs=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.48/AdGuardHome_darwin_amd64.zip";
+  sha256 = "sha256-4/NrNKzpAV9vdpKCngY8f2XCEFE3rTmfQkaubFNcdWg=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.51/AdGuardHome_darwin_amd64.zip";
 };
 aarch64-darwin = fetchzip {
-  sha256 = "sha256-ZTGqn6xM9vRHmw2ask5P4vu+5BqkWfGS3ROzTN9VfXM=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.48/AdGuardHome_darwin_arm64.zip";
+  sha256 = "sha256-MCll8iM453MXAWJiQFSwykoSBzB4MsfSCTPFTogYsSc=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.51/AdGuardHome_darwin_arm64.zip";
 };
 i686-linux = fetchurl {
-  sha256 = "sha256-EbRiiThZsmBD/grtm58Su78OeF/6buwMbx6eBsusgII=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.48/AdGuardHome_linux_386.tar.gz";
+  sha256 = "sha256-F9hRelvPZr+2QC+oL4gT6Qo+gm/oyZdGyqNnZEJXeLc=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.51/AdGuardHome_linux_386.tar.gz";
 };
 x86_64-linux = fetchurl {
-  sha256 = "sha256-FUnQJ3RRtsWz4DIO8Zi9Y6dO130qTdwj6RhJ6RNpljc=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.48/AdGuardHome_linux_amd64.tar.gz";
+  sha256 = "sha256-brYcemcUwEkiB3yCh2y7n2Ii6D7GfKMKqm3FVCPZV7I=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.51/AdGuardHome_linux_amd64.tar.gz";
 };
 aarch64-linux = fetchurl {
-  sha256 = "sha256-OZDryRiwyM6XgoiOhCsM6AFOE9masnGu2m6sDRUAaeY=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.48/AdGuardHome_linux_arm64.tar.gz";
+  sha256 = "sha256-QCkh5zyUyf1COk2cb8sGdPtSzBYTjwpH3FSaI3jG5v0=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.51/AdGuardHome_linux_arm64.tar.gz";
 };
 armv6l-linux = fetchurl {
-  sha256 = "sha256-aL/wKQ9lbPgaTGCjZAph5iggSTJB1+Rrxbpf6IVgjuU=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.48/AdGuardHome_linux_armv6.tar.gz";
+  sha256 = "sha256-7dEWH+cTrrcdO7RSHX4w95jlNH3FVtJ1cFOI6/mOBfU=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.51/AdGuardHome_linux_armv6.tar.gz";
 };
 armv7l-linux = fetchurl {
-  sha256 = "sha256-siWf7frIciYGVP7KgqS4Dr7o52y3QqGYvQlxtw2HnEo=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.48/AdGuardHome_linux_armv7.tar.gz";
+  sha256 = "sha256-ODpHuFU4YxDeQAOyDptFQXvLPcTDJwBp4irEk5sry5U=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.51/AdGuardHome_linux_armv7.tar.gz";
 };
 }
diff --git a/pkgs/servers/adguardhome/default.nix b/pkgs/servers/adguardhome/default.nix
index 88163d9935974..de1a39dcce454 100644
--- a/pkgs/servers/adguardhome/default.nix
+++ b/pkgs/servers/adguardhome/default.nix
@@ -7,7 +7,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "adguardhome";
-  version = "0.107.48";
+  version = "0.107.51";
   src = sources.${system} or (throw "Source for ${pname} is not available for ${system}");
 
   installPhase = ''
diff --git a/pkgs/servers/akkoma/default.nix b/pkgs/servers/akkoma/default.nix
index 68c91a69c810e..ec69767338aab 100644
--- a/pkgs/servers/akkoma/default.nix
+++ b/pkgs/servers/akkoma/default.nix
@@ -11,14 +11,14 @@
 }:
 beamPackages.mixRelease rec {
   pname = "akkoma";
-  version = "3.13.1";
+  version = "3.13.2";
 
   src = fetchFromGitea {
     domain = "akkoma.dev";
     owner = "AkkomaGang";
     repo = "akkoma";
     rev = "v${version}";
-    hash = "sha256-KRU7uEiwBimPz0HA+SClYt9/ubKNaRCArTGSiWvvVg8=";
+    hash = "sha256-WZAkpJIPzAbqXawNiM3JqE9tJzxrNs/2dGAWVMwLpN4=";
   };
 
   postPatch = ''
@@ -222,7 +222,7 @@ beamPackages.mixRelease rec {
     description = "ActivityPub microblogging server";
     homepage = "https://akkoma.social";
     license = licenses.agpl3Only;
-    maintainers = with maintainers; [ mvs tcmal ];
+    maintainers = with maintainers; [ mvs ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/servers/alice-lg/default.nix b/pkgs/servers/alice-lg/default.nix
index 875b5b9b00317..28ef35a917a1c 100644
--- a/pkgs/servers/alice-lg/default.nix
+++ b/pkgs/servers/alice-lg/default.nix
@@ -78,7 +78,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/alice-lg/alice-lg";
-    description = "A looking-glass for BGP sessions";
+    description = "Looking-glass for BGP sessions";
     changelog = "https://github.com/alice-lg/alice-lg/blob/main/CHANGELOG.md";
     license = licenses.bsd3;
     maintainers = with maintainers; [ janik ];
diff --git a/pkgs/servers/alps/default.nix b/pkgs/servers/alps/default.nix
index 03bd62e4618bf..1aeba54ed57fa 100644
--- a/pkgs/servers/alps/default.nix
+++ b/pkgs/servers/alps/default.nix
@@ -42,7 +42,7 @@ buildGoModule rec {
   passthru.tests = { inherit(nixosTests) alps; };
 
   meta = with lib; {
-    description = "A simple and extensible webmail.";
+    description = "Simple and extensible webmail";
     homepage = "https://git.sr.ht/~migadu/alps";
     license = licenses.mit;
     maintainers = with maintainers; [ booklearner madonius hmenke ];
diff --git a/pkgs/servers/althttpd/default.nix b/pkgs/servers/althttpd/default.nix
index 670a228a1e944..70c2fbcaa3235 100644
--- a/pkgs/servers/althttpd/default.nix
+++ b/pkgs/servers/althttpd/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The Althttpd webserver";
+    description = "Althttpd webserver";
     homepage = "https://sqlite.org/althttpd/";
     license = licenses.publicDomain;
     maintainers = with maintainers; [ siraben ];
diff --git a/pkgs/servers/amqp/qpid-cpp/default.nix b/pkgs/servers/amqp/qpid-cpp/default.nix
index 0427f38d5f707..c6cac7d7fa082 100644
--- a/pkgs/servers/amqp/qpid-cpp/default.nix
+++ b/pkgs/servers/amqp/qpid-cpp/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://qpid.apache.org";
-    description = "An AMQP message broker and a C++ messaging API";
+    description = "AMQP message broker and a C++ messaging API";
     license = licenses.asl20;
     platforms = platforms.linux;
     maintainers = with maintainers; [ cpages ];
diff --git a/pkgs/servers/amqp/rabbitmq-server/default.nix b/pkgs/servers/amqp/rabbitmq-server/default.nix
index b2348730ebe82..25cadf2f4be9d 100644
--- a/pkgs/servers/amqp/rabbitmq-server/default.nix
+++ b/pkgs/servers/amqp/rabbitmq-server/default.nix
@@ -38,12 +38,12 @@ in
 
 stdenv.mkDerivation rec {
   pname = "rabbitmq-server";
-  version = "3.12.13";
+  version = "3.13.3";
 
   # when updating, consider bumping elixir version in all-packages.nix
   src = fetchurl {
     url = "https://github.com/rabbitmq/rabbitmq-server/releases/download/v${version}/${pname}-${version}.tar.xz";
-    hash = "sha256-UjUkiS8ay66DDzeW9EXOJPQVHHxC1sXT8mCn+KVXSQ4=";
+    hash = "sha256-CPnoPK3tBKKmIo8IioUCUWkw6+sdvzRaAngseRZ8eUM=";
   };
 
   nativeBuildInputs = [ unzip xmlto docbook_xml_dtd_45 docbook_xsl zip rsync python3 ];
@@ -85,12 +85,12 @@ stdenv.mkDerivation rec {
     vm-test = nixosTests.rabbitmq;
   };
 
-  meta = with lib; {
+  meta = {
     homepage = "https://www.rabbitmq.com/";
-    description = "An implementation of the AMQP messaging protocol";
+    description = "Implementation of the AMQP messaging protocol";
     changelog = "https://github.com/rabbitmq/rabbitmq-server/releases/tag/v${version}";
-    license = licenses.mpl20;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ turion ];
+    license = lib.licenses.mpl20;
+    platforms = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ turion ];
   };
 }
diff --git a/pkgs/servers/apache-kafka/default.nix b/pkgs/servers/apache-kafka/default.nix
index 114a0ce96f0e6..ef54be5bb71a9 100644
--- a/pkgs/servers/apache-kafka/default.nix
+++ b/pkgs/servers/apache-kafka/default.nix
@@ -93,7 +93,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://kafka.apache.org";
-    description = "A high-throughput distributed messaging system";
+    description = "High-throughput distributed messaging system";
     license = licenses.asl20;
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     maintainers = [ maintainers.ragge ];
diff --git a/pkgs/servers/apcupsd/default.nix b/pkgs/servers/apcupsd/default.nix
index c5db5289c5a48..eeecfa2f0ec48 100644
--- a/pkgs/servers/apcupsd/default.nix
+++ b/pkgs/servers/apcupsd/default.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Daemon for controlling APC UPSes";
     homepage = "http://www.apcupsd.com/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor ];
   };
diff --git a/pkgs/servers/ariang/default.nix b/pkgs/servers/ariang/default.nix
index fc2618ab058ee..08094783c7a2c 100644
--- a/pkgs/servers/ariang/default.nix
+++ b/pkgs/servers/ariang/default.nix
@@ -32,7 +32,7 @@ buildNpmPackage rec {
   passthru.updateScript = nix-update-script {};
 
   meta = with lib; {
-    description = "a modern web frontend making aria2 easier to use";
+    description = "Modern web frontend making aria2 easier to use";
     homepage = "http://ariang.mayswind.net/";
     license = licenses.mit;
     maintainers = with maintainers; [ stunkymonkey ];
diff --git a/pkgs/servers/asterisk/default.nix b/pkgs/servers/asterisk/default.nix
index 7333f6607da5f..7d88cacd8b481 100644
--- a/pkgs/servers/asterisk/default.nix
+++ b/pkgs/servers/asterisk/default.nix
@@ -27,7 +27,6 @@
 , autoconf
 , libtool
 , automake
-, fetchpatch
 , python3
 , writeScript
 , withOpus ? true
diff --git a/pkgs/servers/atlassian/bamboo.nix b/pkgs/servers/atlassian/bamboo.nix
index ee87b9e644a8c..e8a64daa12097 100644
--- a/pkgs/servers/atlassian/bamboo.nix
+++ b/pkgs/servers/atlassian/bamboo.nix
@@ -29,7 +29,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "Bamboo Data Center is a continuous delivery server.";
+    description = "Bamboo Data Center is a continuous delivery server";
     homepage = "https://www.atlassian.com/software/bamboo";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = with licenses; [ unfree ];
diff --git a/pkgs/servers/authelia/default.nix b/pkgs/servers/authelia/default.nix
index fcde2aea451e7..9fe2d1350c93c 100644
--- a/pkgs/servers/authelia/default.nix
+++ b/pkgs/servers/authelia/default.nix
@@ -62,7 +62,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://www.authelia.com/";
     changelog = "https://github.com/authelia/authelia/releases/tag/v${version}";
-    description = "A Single Sign-On Multi-Factor portal for web apps";
+    description = "Single Sign-On Multi-Factor portal for web apps";
     longDescription = ''
       Authelia is an open-source authentication and authorization server
       providing two-factor authentication and single sign-on (SSO) for your
diff --git a/pkgs/servers/bazarr/default.nix b/pkgs/servers/bazarr/default.nix
index 04c5954e18637..e30beee899ef1 100644
--- a/pkgs/servers/bazarr/default.nix
+++ b/pkgs/servers/bazarr/default.nix
@@ -8,13 +8,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "bazarr";
-  version = "1.4.2";
+  version = "1.4.3";
 
   sourceRoot = ".";
 
   src = fetchurl {
     url = "https://github.com/morpheus65535/bazarr/releases/download/v${version}/bazarr.zip";
-    sha256 = "sha256-1OqbCyQmA33ZvyCE11ZSyVwEgyym0Y0EX6qx3g71lnQ=";
+    sha256 = "sha256-tmTdmUfRBRlB14juNxUo65Re+9agUBX0BBSuNu3pSC0=";
   };
 
   nativeBuildInputs = [ unzip makeWrapper ];
diff --git a/pkgs/servers/beanstalkd/default.nix b/pkgs/servers/beanstalkd/default.nix
index a12f6146fdc01..42a0f01d01688 100644
--- a/pkgs/servers/beanstalkd/default.nix
+++ b/pkgs/servers/beanstalkd/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://kr.github.io/beanstalkd/";
-    description = "A simple, fast work queue";
+    description = "Simple, fast work queue";
     license = licenses.mit;
     maintainers = [ maintainers.zimbatm ];
     platforms = platforms.all;
diff --git a/pkgs/servers/bililiverecorder/default.nix b/pkgs/servers/bililiverecorder/default.nix
index 222d20637c512..4d69c4631d5c8 100644
--- a/pkgs/servers/bililiverecorder/default.nix
+++ b/pkgs/servers/bililiverecorder/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A convenient free open source bilibili live recording tool";
+    description = "Convenient free open source bilibili live recording tool";
     homepage = "https://rec.danmuji.org/";
     changelog = "https://github.com/BililiveRecorder/BililiveRecorder/releases/tag/${version}";
     mainProgram = "BililiveRecorder";
diff --git a/pkgs/servers/binserve/default.nix b/pkgs/servers/binserve/default.nix
index b8732b51587a2..62cddd3e0dbff 100644
--- a/pkgs/servers/binserve/default.nix
+++ b/pkgs/servers/binserve/default.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A fast production-ready static web server";
+    description = "Fast production-ready static web server";
     homepage = "https://github.com/mufeedvh/binserve";
     longDescription = ''
       A fast production-ready static web server with TLS
diff --git a/pkgs/servers/birdwatcher/default.nix b/pkgs/servers/birdwatcher/default.nix
index c8842e968e812..48ba580e1346d 100644
--- a/pkgs/servers/birdwatcher/default.nix
+++ b/pkgs/servers/birdwatcher/default.nix
@@ -20,7 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/alice-lg/birdwatcher";
-    description = "A small HTTP server meant to provide an API defined by Barry O'Donovan's birds-eye to the BIRD internet routing daemon";
+    description = "Small HTTP server meant to provide an API defined by Barry O'Donovan's birds-eye to the BIRD internet routing daemon";
     changelog = "https://github.com/alice-lg/birdwatcher/blob/master/CHANGELOG";
     license = licenses.bsd3;
     maintainers = with maintainers; [ janik ];
diff --git a/pkgs/servers/bloat/default.nix b/pkgs/servers/bloat/default.nix
index 3ca2b494e2346..d6063961f844b 100644
--- a/pkgs/servers/bloat/default.nix
+++ b/pkgs/servers/bloat/default.nix
@@ -29,7 +29,7 @@ buildGoModule {
   passthru.updateScript = unstableGitUpdater { };
 
   meta = with lib; {
-    description = "A web client for Pleroma and Mastodon";
+    description = "Web client for Pleroma and Mastodon";
     longDescription = ''
       A lightweight web client for Pleroma and Mastodon.
       Does not require JavaScript to display text, images, audio and videos.
diff --git a/pkgs/servers/brickd/default.nix b/pkgs/servers/brickd/default.nix
index 590f6f315fe81..be087b0525bcc 100644
--- a/pkgs/servers/brickd/default.nix
+++ b/pkgs/servers/brickd/default.nix
@@ -55,9 +55,9 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "https://www.tinkerforge.com/";
-    description = "A daemon (or service on Windows) that acts as a bridge between the Bricks/Bricklets and the API bindings for the different programming languages";
+    description = "Daemon (or service on Windows) that acts as a bridge between the Bricks/Bricklets and the API bindings for the different programming languages";
     maintainers = [ lib.maintainers.qknight ];
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.all;
     mainProgram = "brickd";
   };
diff --git a/pkgs/servers/computing/slurm/default.nix b/pkgs/servers/computing/slurm/default.nix
index a3191a80f2ce4..4c247126144fc 100644
--- a/pkgs/servers/computing/slurm/default.nix
+++ b/pkgs/servers/computing/slurm/default.nix
@@ -14,7 +14,7 @@
 
 stdenv.mkDerivation rec {
   pname = "slurm";
-  version = "23.11.6.1";
+  version = "23.11.7.1";
 
   # N.B. We use github release tags instead of https://www.schedmd.com/downloads.php
   # because the latter does not keep older releases.
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     repo = "slurm";
     # The release tags use - instead of .
     rev = "${pname}-${builtins.replaceStrings ["."] ["-"] version}";
-    hash = "sha256-R1AKahldWDzEySX1o2+wDaEllJpESyU04kSqUEu5NKs=";
+    hash = "sha256-TR2dZXdM8SgBD8C/CHe8Zadh2xAzbtb4hgOfhCXkF0M=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/servers/corosync/default.nix b/pkgs/servers/corosync/default.nix
index f1d81aae92faf..4ae9b8abed7ca 100644
--- a/pkgs/servers/corosync/default.nix
+++ b/pkgs/servers/corosync/default.nix
@@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://corosync.org/";
-    description = "A Group Communication System with features for implementing high availability within applications";
+    description = "Group Communication System with features for implementing high availability within applications";
     license = licenses.bsd3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ montag451 ryantm ];
diff --git a/pkgs/servers/coturn/default.nix b/pkgs/servers/coturn/default.nix
index d23c39355e1b0..189c70edc99e3 100644
--- a/pkgs/servers/coturn/default.nix
+++ b/pkgs/servers/coturn/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , openssl
 , libevent
 , pkg-config
@@ -50,7 +49,7 @@ stdenv.mkDerivation rec {
   passthru.tests.coturn = nixosTests.coturn;
 
   meta = with lib; {
-    description = "A TURN server";
+    description = "TURN server";
     homepage = "https://coturn.net/";
     changelog = "https://github.com/coturn/coturn/blob/${version}/ChangeLog";
     license = with licenses; [ bsd3 ];
diff --git a/pkgs/servers/dante/default.nix b/pkgs/servers/dante/default.nix
index 1d15bddc09f7e..99eaa5c464586 100644
--- a/pkgs/servers/dante/default.nix
+++ b/pkgs/servers/dante/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A circuit-level SOCKS client/server that can be used to provide convenient and secure network connectivity";
+    description = "Circuit-level SOCKS client/server that can be used to provide convenient and secure network connectivity";
     homepage    = "https://www.inet.no/dante/";
     maintainers = [ maintainers.arobyn ];
     license     = licenses.bsdOriginal;
diff --git a/pkgs/servers/db-rest/default.nix b/pkgs/servers/db-rest/default.nix
index e8fb0ae506a2d..c6e3c55eee1d7 100644
--- a/pkgs/servers/db-rest/default.nix
+++ b/pkgs/servers/db-rest/default.nix
@@ -3,12 +3,11 @@
 , fetchFromGitHub
 , nodejs_18
 , nix-update-script
-, fetchpatch
 , nixosTests
 }:
 buildNpmPackage rec {
   pname = "db-rest";
-  version = "6.0.4";
+  version = "6.0.5";
 
   nodejs = nodejs_18;
 
@@ -16,10 +15,10 @@ buildNpmPackage rec {
     owner = "derhuerst";
     repo = pname;
     rev = version;
-    hash = "sha256-guiAtPOvU/yqspq+G+mTSIFqBp6Kl0JZBPfjPC+ZM1g=";
+    hash = "sha256-jMHqJ1whGPz2ti7gn8SPz6o7Fm4oMF6hYjB4wsjKAEU=";
   };
 
-  npmDepsHash = "sha256-lJT344HpHJFN3QO6kVAj1NhRFTwS+EVkR0ePbtIguFo=";
+  npmDepsHash = "sha256-rXBIpar5L6fGpDlphr1PqRNxARSccV7Gi+uTNlCqh7I=";
 
   preConfigure = ''
     patchShebangs ./build/index.js
@@ -31,7 +30,7 @@ buildNpmPackage rec {
   };
 
   meta = {
-    description = "A clean REST API wrapping around the Deutsche Bahn API";
+    description = "Clean REST API wrapping around the Deutsche Bahn API";
     homepage = "https://v6.db.transport.rest/";
     license = lib.licenses.isc;
     maintainers = with lib.maintainers; [ marie ];
diff --git a/pkgs/servers/dendrite/default.nix b/pkgs/servers/dendrite/default.nix
index 1e40ab671511b..f071ef4589440 100644
--- a/pkgs/servers/dendrite/default.nix
+++ b/pkgs/servers/dendrite/default.nix
@@ -63,7 +63,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://matrix-org.github.io/dendrite";
-    description = "A second-generation Matrix homeserver written in Go";
+    description = "Second-generation Matrix homeserver written in Go";
     changelog = "https://github.com/matrix-org/dendrite/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = teams.matrix.members;
diff --git a/pkgs/servers/dex/default.nix b/pkgs/servers/dex/default.nix
index f62721b2ad07e..374c2f24620fe 100644
--- a/pkgs/servers/dex/default.nix
+++ b/pkgs/servers/dex/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "dex";
-  version = "2.39.1";
+  version = "2.40.0";
 
   src = fetchFromGitHub {
     owner = "dexidp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-+P3KYowZmtgZP3i0D+GFaAqgWDqJ8sxI4LyDUOM+J38=";
+    sha256 = "sha256-FaM8rBmfFmawtJRK0UmQNrRHebeFUg9ujXX8ubt4flw=";
   };
 
-  vendorHash = "sha256-NQXsptpRNgRuEeh2ft/dbqcZqO/d1KZ19wc/7To0xCM=";
+  vendorHash = "sha256-4YfuJPFYmIFKK1RqrdRy+LA8dXQbcB/qrBzzkQ60pXI=";
 
   subPackages = [
     "cmd/dex"
diff --git a/pkgs/servers/dict/default.nix b/pkgs/servers/dict/default.nix
index ea7cb80b8fc0c..a85b6f8b88c56 100644
--- a/pkgs/servers/dict/default.nix
+++ b/pkgs/servers/dict/default.nix
@@ -23,6 +23,10 @@ stdenv.mkDerivation rec {
     "--sysconfdir=/etc"
   ];
 
+  env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isClang [
+    "-Wno-error=implicit-function-declaration"
+  ]);
+
   postInstall = ''
     install -Dm444 -t $out/share/doc/${pname} NEWS README
   '';
diff --git a/pkgs/servers/diod/default.nix b/pkgs/servers/diod/default.nix
index 8bab803056e95..a96f9e1ada289 100644
--- a/pkgs/servers/diod/default.nix
+++ b/pkgs/servers/diod/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ munge lua libcap perl ncurses ];
 
   meta = with lib; {
-    description = "An I/O forwarding server that implements a variant of the 9P protocol";
+    description = "I/O forwarding server that implements a variant of the 9P protocol";
     maintainers = with maintainers; [ rnhmjoj ];
     platforms   = platforms.linux;
     license     = licenses.gpl2Plus;
diff --git a/pkgs/servers/dns/coredns/default.nix b/pkgs/servers/dns/coredns/default.nix
index 994b584232ae2..3e74a8ac19538 100644
--- a/pkgs/servers/dns/coredns/default.nix
+++ b/pkgs/servers/dns/coredns/default.nix
@@ -72,7 +72,7 @@ in buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://coredns.io";
-    description = "A DNS server that runs middleware";
+    description = "DNS server that runs middleware";
     mainProgram = "coredns";
     license = licenses.asl20;
     maintainers = with maintainers; [ rushmorem rtreffer deltaevo ];
diff --git a/pkgs/servers/dns/dnsdist/default.nix b/pkgs/servers/dns/dnsdist/default.nix
index 98a1bf7cc8c8c..e3afc6c8956d0 100644
--- a/pkgs/servers/dns/dnsdist/default.nix
+++ b/pkgs/servers/dns/dnsdist/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
     description = "DNS Loadbalancer";
     mainProgram = "dnsdist";
     homepage = "https://dnsdist.org";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ jojosch ];
   };
 }
diff --git a/pkgs/servers/dns/knot-dns/default.nix b/pkgs/servers/dns/knot-dns/default.nix
index d939f4e375edf..fa7b53382c89b 100644
--- a/pkgs/servers/dns/knot-dns/default.nix
+++ b/pkgs/servers/dns/knot-dns/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "knot-dns";
-  version = "3.3.5";
+  version = "3.3.6";
 
   src = fetchurl {
     url = "https://secure.nic.cz/files/knot-dns/knot-${version}.tar.xz";
-    sha256 = "0e0bf04319581280660e8e62ab04be64a7d632331e40fc9c87e76861305db3ad";
+    sha256 = "c81801e9d6c64c97777cacf47e260f46f37799180d906457a53a9f13dd0f9987";
   };
 
   outputs = [ "bin" "out" "dev" ];
diff --git a/pkgs/servers/dns/knot-resolver/default.nix b/pkgs/servers/dns/knot-resolver/default.nix
index 5af0a79c4dfde..1102024812a86 100644
--- a/pkgs/servers/dns/knot-resolver/default.nix
+++ b/pkgs/servers/dns/knot-resolver/default.nix
@@ -18,11 +18,11 @@ lua = luajitPackages;
 
 unwrapped = stdenv.mkDerivation rec {
   pname = "knot-resolver";
-  version = "5.7.2";
+  version = "5.7.3";
 
   src = fetchurl {
     url = "https://secure.nic.cz/files/knot-resolver/${pname}-${version}.tar.xz";
-    hash = "sha256-X2oic5D81MLQqAKKZStVqdhj7HvgEpj+A43x0nP7mg8=";
+    hash = "sha256-78bkX/xe/ZiSHqXNP+zhZqGlzp6qEtQbRiaJZDU9vts=";
   };
 
   outputs = [ "out" "dev" ];
@@ -112,7 +112,8 @@ wrapped-full = runCommand unwrapped.name
       # For http module, prefill module, trust anchor bootstrap.
       # It brings lots of deps; some are useful elsewhere (e.g. cqueues).
       http
-      # psl isn't in nixpkgs yet, but policy.slice_randomize_psl() seems not important.
+      # used by policy.slice_randomize_psl()
+      psl
     ];
     preferLocalBuild = true;
     allowSubstitutes = false;
diff --git a/pkgs/servers/dns/pdns/default.nix b/pkgs/servers/dns/pdns/default.nix
index d4c664802aa33..1037c88229aa9 100644
--- a/pkgs/servers/dns/pdns/default.nix
+++ b/pkgs/servers/dns/pdns/default.nix
@@ -23,11 +23,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "pdns";
-  version = "4.9.0";
+  version = "4.9.1";
 
   src = fetchurl {
     url = "https://downloads.powerdns.com/releases/pdns-${finalAttrs.version}.tar.bz2";
-    hash = "sha256-/h1UM8iERu1w2TFgXG7Dd9qZg5xOFRuQtxqiEb1u6pI=";
+    hash = "sha256-MNlnG48IR3Tby6IPWlOjE00IIqsu3D75aNoDDmMN0Jo=";
   };
   # redact configure flags from version output to reduce closure size
   patches = [ ./version.patch ];
@@ -97,7 +97,7 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://www.powerdns.com";
     platforms = platforms.unix;
     broken = stdenv.isDarwin;
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ mic92 disassembler nickcao ];
   };
 })
diff --git a/pkgs/servers/dns/trust-dns/default.nix b/pkgs/servers/dns/trust-dns/default.nix
index fa8fcc88261af..09b7ebea4d65a 100644
--- a/pkgs/servers/dns/trust-dns/default.nix
+++ b/pkgs/servers/dns/trust-dns/default.nix
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Rust based DNS client, server, and resolver";
+    description = "Rust based DNS client, server, and resolver";
     homepage = "https://trust-dns.org/";
     maintainers = with maintainers; [ colinsane ];
     platforms = platforms.linux;
diff --git a/pkgs/servers/elasticmq-server-bin/default.nix b/pkgs/servers/elasticmq-server-bin/default.nix
index 1af34b50df0f5..f878ef6e64e92 100644
--- a/pkgs/servers/elasticmq-server-bin/default.nix
+++ b/pkgs/servers/elasticmq-server-bin/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "elasticmq-server";
-  version = "1.6.1";
+  version = "1.6.4";
 
   src = fetchurl {
     url = "https://s3-eu-west-1.amazonaws.com/softwaremill-public/${finalAttrs.pname}-${finalAttrs.version}.jar";
-    sha256 = "sha256-kO4d7O3jRYUJwJnMleGV+Esx9suFVS0HkNAtGyQORKo=";
+    sha256 = "sha256-HAxZaZofO24baPTNFqSltNgZekjOLRuCprcAksTSYiY=";
   };
 
   # don't do anything?
diff --git a/pkgs/servers/etcd/3.5/default.nix b/pkgs/servers/etcd/3.5/default.nix
index a837ae4713ca1..00cade7d5242a 100644
--- a/pkgs/servers/etcd/3.5/default.nix
+++ b/pkgs/servers/etcd/3.5/default.nix
@@ -1,11 +1,11 @@
 { lib, buildGoModule, fetchFromGitHub, symlinkJoin, nixosTests, k3s }:
 
 let
-  version = "3.5.13";
-  etcdSrcHash = "sha256-6dQXgM6VEWwv5CfHvxxPxdhMwNjFsinwhsbSqvQoDxI=";
-  etcdServerVendorHash = "sha256-PB4gACfeYhdOXYs0xbcq2CmSMJnf/ifX2U2DN6zfJ1o=";
-  etcdUtlVendorHash = "sha256-f23mn4zE6beM8yPSbs9gEEEifyF2D+CVKdlYwQtzAkQ=";
-  etcdCtlVendorHash = "sha256-gSlyhmLKarDwc+MhYuTeTqwj0wLiN6+k2bHEVVTkyPc=";
+  version = "3.5.14";
+  etcdSrcHash = "sha256-BbrOWAVrUj3LxFGvm1ycnFHglskaZesL0XILLnN8TIE=";
+  etcdServerVendorHash = "sha256-LNVRwPaaqpk7PKcgzwNrtBx+Dy9JJS88RT71RBDJ0ug=";
+  etcdUtlVendorHash = "sha256-fFERNwaWwdukTtACuihlMZZYpdo0cnZnnFb5xmug2vI=";
+  etcdCtlVendorHash = "sha256-cQMWb0PGYUPLlYvILrD2vxcDhcpYdAts9ARTeAh1Wew=";
 
   src = fetchFromGitHub {
     owner = "etcd-io";
diff --git a/pkgs/servers/etebase/default.nix b/pkgs/servers/etebase/default.nix
index 3c111c0070cdb..f3ee68352ee01 100644
--- a/pkgs/servers/etebase/default.nix
+++ b/pkgs/servers/etebase/default.nix
@@ -16,13 +16,13 @@ let
 in
 python.pkgs.buildPythonPackage rec {
   pname = "etebase-server";
-  version = "0.11.0";
+  version = "0.13.1";
 
   src = fetchFromGitHub {
     owner = "etesync";
     repo = "server";
-    rev = "refs/tags/${version}";
-    hash = "sha256-+MSNX+CFmIQII+SFjM2TQKCgRMOTdsOIVAP8ur4WjQY=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-GEieXue3Kvc4zZjfypKLmTmhNPbn/GR8g0qEqkl+wkw=";
   };
 
   patches = [ ./secret.patch ];
@@ -31,7 +31,7 @@ python.pkgs.buildPythonPackage rec {
 
   propagatedBuildInputs = with python.pkgs; [
     aiofiles
-    django_3
+    django_4
     fastapi
     msgpack
     pynacl
@@ -64,7 +64,7 @@ python.pkgs.buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/etesync/server";
-    description = "An Etebase (EteSync 2.0) server so you can run your own";
+    description = "Etebase (EteSync 2.0) server so you can run your own";
     mainProgram = "etebase-server";
     changelog = "https://github.com/etesync/server/blob/${version}/ChangeLog.md";
     license = licenses.agpl3Only;
diff --git a/pkgs/servers/fastnetmon-advanced/default.nix b/pkgs/servers/fastnetmon-advanced/default.nix
index fe94cc4549cd0..ab655bca526cc 100644
--- a/pkgs/servers/fastnetmon-advanced/default.nix
+++ b/pkgs/servers/fastnetmon-advanced/default.nix
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
   passthru.tests = { inherit (nixosTests) fastnetmon-advanced; };
 
   meta = with lib; {
-    description = "A high performance DDoS detector / sensor - commercial edition";
+    description = "High performance DDoS detector / sensor - commercial edition";
     homepage = "https://fastnetmon.com";
     changelog = "https://github.com/FastNetMon/fastnetmon-advanced-releases/releases/tag/v${version}";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/servers/fedigroups/default.nix b/pkgs/servers/fedigroups/default.nix
index b94620e67afd7..c755feee178de 100644
--- a/pkgs/servers/fedigroups/default.nix
+++ b/pkgs/servers/fedigroups/default.nix
@@ -46,7 +46,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     homepage = "https://git.ondrovo.com/MightyPork/group-actor#fedi-groups";
     downloadPage = "https://git.ondrovo.com/MightyPork/group-actor/releases";
-    description = "An approximation of groups usable with Fediverse software that implements the Mastodon client API";
+    description = "Approximation of groups usable with Fediverse software that implements the Mastodon client API";
     license = licenses.mit;
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.all;
diff --git a/pkgs/servers/felix/default.nix b/pkgs/servers/felix/default.nix
index 66fec2ce4a483..5a16812cb5b6d 100644
--- a/pkgs/servers/felix/default.nix
+++ b/pkgs/servers/felix/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     cp -av * $out
   '';
   meta = with lib; {
-    description = "An OSGi gateway";
+    description = "OSGi gateway";
     homepage = "https://felix.apache.org";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.asl20;
diff --git a/pkgs/servers/fileshare/default.nix b/pkgs/servers/fileshare/default.nix
index 1572e994e7c89..e7c0bc6ad2602 100644
--- a/pkgs/servers/fileshare/default.nix
+++ b/pkgs/servers/fileshare/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A small HTTP Server for quickly sharing files over the network";
+    description = "Small HTTP Server for quickly sharing files over the network";
     longDescription = "Fileshare is a simple tool for sharing the contents of a directory via a webserver and optionally allowing uploads.";
     homepage = "https://git.tkolb.de/Public/fileshare";
     license = licenses.mit;
diff --git a/pkgs/servers/filtron/default.nix b/pkgs/servers/filtron/default.nix
index 4b82e147cd4d2..2f6a95367e97d 100644
--- a/pkgs/servers/filtron/default.nix
+++ b/pkgs/servers/filtron/default.nix
@@ -29,7 +29,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "Reverse HTTP proxy to filter requests by different rules.";
+    description = "Reverse HTTP proxy to filter requests by different rules";
     homepage = "https://github.com/asciimoo/filtron";
     license = licenses.agpl3Only;
     maintainers = [ maintainers.dasj19 ];
diff --git a/pkgs/servers/freeradius/default.nix b/pkgs/servers/freeradius/default.nix
index 7dfd0ceb8c473..78912dc115c36 100644
--- a/pkgs/servers/freeradius/default.nix
+++ b/pkgs/servers/freeradius/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
 , autoreconfHook
 , bsd-finger
 , perl
@@ -24,11 +23,11 @@ assert withRest -> withJson;
 
 stdenv.mkDerivation rec {
   pname = "freeradius";
-  version = "3.2.3";
+  version = "3.2.4";
 
   src = fetchurl {
     url = "ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-${version}.tar.gz";
-    hash = "sha256-S94EcSLliMY/4tWZpz96uahjgG+ecW6Io9dwgLSCxXc=";
+    hash = "sha256-/dR2lJ88mRwZ8U73GZtSLlIEiW0TnGmUY4Hc6biSKUE=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
@@ -75,8 +74,8 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://freeradius.org/";
-    description = "A modular, high performance free RADIUS suite";
-    license = licenses.gpl2;
+    description = "Modular, high performance free RADIUS suite";
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ sheenobu willibutz lheckemann ];
     platforms = with platforms; linux;
   };
diff --git a/pkgs/servers/frr/default.nix b/pkgs/servers/frr/default.nix
index ba1f46414f6a1..dbfe3c4dc7c25 100644
--- a/pkgs/servers/frr/default.nix
+++ b/pkgs/servers/frr/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 
 # build time
 , autoreconfHook
@@ -86,13 +85,13 @@ lib.warnIf (!(stdenv.buildPlatform.canExecute stdenv.hostPlatform))
 
 stdenv.mkDerivation rec {
   pname = "frr";
-  version = "10.0";
+  version = "10.0.1";
 
   src = fetchFromGitHub {
     owner = "FRRouting";
     repo = pname;
     rev = "${pname}-${version}";
-    hash = "sha256-vvh9z2hmjvAA7OXgrUmlcrrTE5MRedZzfmhX5FEDKwE=";
+    hash = "sha256-bY5SSF/fmKQc8ECPik0v/ZlUiFsbZhwG2C5pbmoMzwQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/servers/ftp/bftpd/default.nix b/pkgs/servers/ftp/bftpd/default.nix
index a46a2503e8029..0aba1e90a1647 100644
--- a/pkgs/servers/ftp/bftpd/default.nix
+++ b/pkgs/servers/ftp/bftpd/default.nix
@@ -18,6 +18,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ libxcrypt ];
 
+  CFLAGS = "-std=gnu89";
+
   preConfigure = ''
     sed -re 's/-[og] 0//g' -i Makefile*
   '';
@@ -31,7 +33,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A minimal ftp server";
+    description = "Minimal ftp server";
     mainProgram = "bftpd";
     downloadPage = "http://bftpd.sf.net/download.html";
     homepage = "http://bftpd.sf.net/";
diff --git a/pkgs/servers/ftp/kamid/default.nix b/pkgs/servers/ftp/kamid/default.nix
index 625f391dae8fa..24060a0c1c00d 100644
--- a/pkgs/servers/ftp/kamid/default.nix
+++ b/pkgs/servers/ftp/kamid/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "AR:=$(AR)" ];
 
   meta = with lib; {
-    description = "A FREE, easy-to-use and portable implementation of a 9p file server daemon for UNIX-like systems";
+    description = "FREE, easy-to-use and portable implementation of a 9p file server daemon for UNIX-like systems";
     homepage = "https://kamid.omarpolo.com";
     license = licenses.isc;
     maintainers = with maintainers; [ heph2 ];
diff --git a/pkgs/servers/ftp/pure-ftpd/default.nix b/pkgs/servers/ftp/pure-ftpd/default.nix
index fe82f1c4679d6..dc48785c1c663 100644
--- a/pkgs/servers/ftp/pure-ftpd/default.nix
+++ b/pkgs/servers/ftp/pure-ftpd/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--with-tls" ];
 
   meta = with lib; {
-    description = "A free, secure, production-quality and standard-conformant FTP server";
+    description = "Free, secure, production-quality and standard-conformant FTP server";
     homepage = "https://www.pureftpd.org";
     license = licenses.isc; # with some parts covered by BSD3(?)
     maintainers = [ ];
diff --git a/pkgs/servers/ftp/vsftpd/default.nix b/pkgs/servers/ftp/vsftpd/default.nix
index 133fe17ec088c..a20935e6dc193 100644
--- a/pkgs/servers/ftp/vsftpd/default.nix
+++ b/pkgs/servers/ftp/vsftpd/default.nix
@@ -39,9 +39,9 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A very secure FTP daemon";
+    description = "Very secure FTP daemon";
     mainProgram = "vsftpd";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/servers/gemini/agate/default.nix b/pkgs/servers/gemini/agate/default.nix
index 4dd4c7f7303ea..18667580a5fed 100644
--- a/pkgs/servers/gemini/agate/default.nix
+++ b/pkgs/servers/gemini/agate/default.nix
@@ -1,19 +1,37 @@
-{ lib, stdenv, nixosTests, fetchFromGitHub, rustPlatform, libiconv, Security }:
+{
+  lib,
+  stdenv,
+  nixosTests,
+  fetchFromGitHub,
+  rustPlatform,
+  libiconv,
+  Security,
+  openssl,
+  pkg-config,
+  nix-update-script,
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "agate";
-  version = "3.3.4";
+  version = "3.3.7";
 
   src = fetchFromGitHub {
     owner = "mbrubeck";
     repo = "agate";
     rev = "v${version}";
-    hash = "sha256-7z3iAA+Q3k5jEO9ZhA06h7/17gE0FWPqDOGK/XENRWg=";
+    hash = "sha256-pNfTgkl59NTRDH+w23P49MUWzIXh5ElnJitMEYfsBnc=";
   };
 
-  cargoHash = "sha256-iTopJnuH2extGnaJXL+RPUwcvj2e+k5A4BT33v+sFiA=";
+  cargoHash = "sha256-RuSvweZhPWS2C2lwncxWAW2XLQN6+bAslv3p4IwQ2BA=";
 
-  buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs =
+    [ openssl ]
+    ++ lib.optionals stdenv.isDarwin [
+      libiconv
+      Security
+    ];
 
   doInstallCheck = true;
   installCheckPhase = ''
@@ -25,11 +43,16 @@ rustPlatform.buildRustPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  passthru.tests = { inherit (nixosTests) agate; };
+  passthru = {
+    tests = {
+      inherit (nixosTests) agate;
+    };
+    updateScript = nix-update-script { };
+  };
 
-  meta = with lib; {
+  meta = {
     homepage = "https://github.com/mbrubeck/agate";
-    changelog = "https://github.com/mbrubeck/agate/blob/master/CHANGELOG.md";
+    changelog = "https://github.com/mbrubeck/agate/releases/tag/v${version}";
     description = "Very simple server for the Gemini hypertext protocol";
     mainProgram = "agate";
     longDescription = ''
@@ -38,7 +61,10 @@ rustPlatform.buildRustPackage rec {
       static files. It uses async I/O, and should be quite efficient even when
       running on low-end hardware and serving many concurrent requests.
     '';
-    license = with licenses; [ asl20 /* or */ mit ];
-    maintainers = with maintainers; [ jk ];
+    license = with lib.licenses; [
+      asl20
+      mit
+    ];
+    maintainers = with lib.maintainers; [ jk ];
   };
 }
diff --git a/pkgs/servers/gemini/gmnisrv/default.nix b/pkgs/servers/gemini/gmnisrv/default.nix
index c55da9cc57592..bb9d7cdf59657 100644
--- a/pkgs/servers/gemini/gmnisrv/default.nix
+++ b/pkgs/servers/gemini/gmnisrv/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ openssl mailcap ];
 
   meta = with lib; {
-    description = "A simple Gemini protocol server";
+    description = "Simple Gemini protocol server";
     mainProgram = "gmnisrv";
     homepage = "https://git.sr.ht/~sircmpwn/gmnisrv";
     license = licenses.gpl3Only;
diff --git a/pkgs/servers/gemini/stargazer/default.nix b/pkgs/servers/gemini/stargazer/default.nix
index a77f64a75a9da..3855ed2d8628f 100644
--- a/pkgs/servers/gemini/stargazer/default.nix
+++ b/pkgs/servers/gemini/stargazer/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "stargazer";
-  version = "1.1.0";
+  version = "1.2.1";
 
   src = fetchFromSourcehut {
     owner = "~zethra";
     repo = "stargazer";
     rev = version;
-    hash = "sha256-c0gKvVaMiUOGHlPmtaW6it8J9MusQY7BA/5F9I3ysMc=";
+    hash = "sha256-pYize+MGChi1GxCNaQsNlHELtsPUvfFZMPl0Q+pOTp0=";
   };
 
-  cargoHash = "sha256-8VrEZZNSFLAjUagsiRApvjiXusBHLLn1O/+QKtQY4wg=";
+  cargoHash = "sha256-KmVNRVyKD5q4/vWtnHM4nfiGg+uZvRl+l+Zk5hjWg9E=";
 
   doCheck = false; # Uses external testing framework that requires network
 
@@ -40,7 +40,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A fast and easy to use Gemini server";
+    description = "Fast and easy to use Gemini server";
     mainProgram = "stargazer";
     homepage = "https://sr.ht/~zethra/stargazer/";
     license = licenses.agpl3Plus;
diff --git a/pkgs/servers/geospatial/geoserver/default.nix b/pkgs/servers/geospatial/geoserver/default.nix
index b171161d40895..3ccdd5edc4323 100644
--- a/pkgs/servers/geospatial/geoserver/default.nix
+++ b/pkgs/servers/geospatial/geoserver/default.nix
@@ -9,11 +9,11 @@
 }:
 stdenv.mkDerivation (finalAttrs: rec {
   pname = "geoserver";
-  version = "2.25.0";
+  version = "2.25.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/geoserver/GeoServer/${version}/geoserver-${version}-bin.zip";
-    sha256 = "sha256-maWDRRIo5Mqjb6K1NWFplmQwvJ9fLXGnelZcslwp4Oo=";
+    sha256 = "sha256-6F99zHTVRpC64rIPxdrH0ujgoNGQfT53RJ7Rg80ieeA=";
   };
 
   patches = [
@@ -71,7 +71,7 @@ stdenv.mkDerivation (finalAttrs: rec {
           '';
         });
       tests.geoserver = nixosTests.geoserver;
-      passthru.updateScript = ./update.sh;
+      updateScript = ./update.sh;
     };
 
   meta = with lib; {
diff --git a/pkgs/servers/geospatial/mapcache/default.nix b/pkgs/servers/geospatial/mapcache/default.nix
index df679d930fa03..3fa78b0c10f93 100644
--- a/pkgs/servers/geospatial/mapcache/default.nix
+++ b/pkgs/servers/geospatial/mapcache/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-std=c99";
 
   meta = with lib; {
-    description = "A server that implements tile caching to speed up access to WMS layers";
+    description = "Server that implements tile caching to speed up access to WMS layers";
     homepage = "https://mapserver.org/mapcache/";
     changelog = "https://www.mapserver.org/development/changelog/mapcache/";
     license = licenses.mit;
diff --git a/pkgs/servers/geospatial/mbtileserver/default.nix b/pkgs/servers/geospatial/mbtileserver/default.nix
index 4a1495ad32d6b..853aad3e18aa3 100644
--- a/pkgs/servers/geospatial/mbtileserver/default.nix
+++ b/pkgs/servers/geospatial/mbtileserver/default.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
   vendorHash = "sha256-QcyFnzRdGdrVqgKEMbhaD7C7dkGKKhTesMMZKrrLx70=";
 
   meta = with lib; {
-    description = "A simple Go-based server for map tiles stored in mbtiles format";
+    description = "Simple Go-based server for map tiles stored in mbtiles format";
     mainProgram = "mbtileserver";
     homepage = "https://github.com/consbio/mbtileserver";
     changelog = "https://github.com/consbio/mbtileserver/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/servers/geospatial/pg_tileserv/default.nix b/pkgs/servers/geospatial/pg_tileserv/default.nix
index 0173559576efe..94f633fcaf055 100644
--- a/pkgs/servers/geospatial/pg_tileserv/default.nix
+++ b/pkgs/servers/geospatial/pg_tileserv/default.nix
@@ -38,7 +38,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A very thin PostGIS-only tile server in Go";
+    description = "Very thin PostGIS-only tile server in Go";
     mainProgram = "pg_tileserv";
     homepage = "https://github.com/CrunchyData/pg_tileserv";
     license = licenses.asl20;
diff --git a/pkgs/servers/go-cqhttp/default.nix b/pkgs/servers/go-cqhttp/default.nix
index 9cdcef2be7c47..87347f0e26d4b 100644
--- a/pkgs/servers/go-cqhttp/default.nix
+++ b/pkgs/servers/go-cqhttp/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
   vendorHash = "sha256-YNARh25xrcPGvhhXzYmg3CsWwzvXq44uWt0S1PjRVdM=";
 
   meta = with lib; {
-    description = "The Golang implementation of OneBot based on Mirai and MiraiGo";
+    description = "Golang implementation of OneBot based on Mirai and MiraiGo";
     homepage = "https://github.com/Mrs4s/go-cqhttp";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ Anillc ];
diff --git a/pkgs/servers/go-libp2p-daemon/default.nix b/pkgs/servers/go-libp2p-daemon/default.nix
index d28a1858a49ed..1ae7428aa19d6 100644
--- a/pkgs/servers/go-libp2p-daemon/default.nix
+++ b/pkgs/servers/go-libp2p-daemon/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "go-libp2p-daemon";
-  version = "0.6.1";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "libp2p";
     repo = "go-libp2p-daemon";
     rev = "v${version}";
-    hash = "sha256-XXg1qIACAHgK1/PltwuoNVYrsntfzo71g1dlq9V/FS4=";
+    hash = "sha256-xKipt+nh7hFJHb9EmI0JZjBTuewfs82vOk1FC97sbAw=";
   };
 
-  vendorHash = "sha256-Kdxo0QsS7o9BjSG6qFrlCnqyZXhX6NkT/aUznGrm3xo=";
+  vendorHash = "sha256-60+JcyVV0uW+T0JZ/keyeYJNWrR3BhLInIgwbpoAe/Q=";
 
   doCheck = false;
 
@@ -19,7 +19,7 @@ buildGoModule rec {
     # Won't build with Go >1.20 because of outdated quic-go dependency and interface mismatches on update.
     # https://github.com/libp2p/go-libp2p-daemon/issues/291
     broken = true;
-    description = "a libp2p-backed daemon wrapping the functionalities of go-libp2p for use in other languages";
+    description = "Libp2p-backed daemon wrapping the functionalities of go-libp2p for use in other languages";
     homepage = "https://github.com/libp2p/go-libp2p-daemon";
     license = licenses.mit;
     maintainers = with maintainers; [ fare ];
diff --git a/pkgs/servers/gopher/gofish/default.nix b/pkgs/servers/gopher/gofish/default.nix
index d346c1372997b..dabfafc468786 100644
--- a/pkgs/servers/gopher/gofish/default.nix
+++ b/pkgs/servers/gopher/gofish/default.nix
@@ -11,9 +11,9 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A lightweight Gopher server";
+    description = "Lightweight Gopher server";
     homepage = "https://gofish.sourceforge.net/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = [ maintainers.AndersonTorres ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/servers/gortr/default.nix b/pkgs/servers/gortr/default.nix
index ef569eef53a46..408b5289382a7 100644
--- a/pkgs/servers/gortr/default.nix
+++ b/pkgs/servers/gortr/default.nix
@@ -23,7 +23,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "The RPKI-to-Router server used at Cloudflare";
+    description = "RPKI-to-Router server used at Cloudflare";
     homepage = "https://github.com/cloudflare/gortr/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/servers/gotify/default.nix b/pkgs/servers/gotify/default.nix
index 45311b60232e3..9b09a69fa136a 100644
--- a/pkgs/servers/gotify/default.nix
+++ b/pkgs/servers/gotify/default.nix
@@ -60,7 +60,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "A simple server for sending and receiving messages in real-time per WebSocket";
+    description = "Simple server for sending and receiving messages in real-time per WebSocket";
     homepage = "https://gotify.net";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
diff --git a/pkgs/servers/gotify/ui.nix b/pkgs/servers/gotify/ui.nix
index 43bb86e458238..7d43e219ccf12 100644
--- a/pkgs/servers/gotify/ui.nix
+++ b/pkgs/servers/gotify/ui.nix
@@ -2,7 +2,6 @@
 , yarn
 , fixup-yarn-lock
 , nodejs-slim
-, fetchFromGitHub
 , fetchYarnDeps
 , gotify-server
 }:
diff --git a/pkgs/servers/gotosocial/default.nix b/pkgs/servers/gotosocial/default.nix
index 2e452e0e57d70..cf2e82a46db0c 100644
--- a/pkgs/servers/gotosocial/default.nix
+++ b/pkgs/servers/gotosocial/default.nix
@@ -9,11 +9,11 @@ let
   owner = "superseriousbusiness";
   repo = "gotosocial";
 
-  version = "0.15.0";
+  version = "0.16.0";
 
   web-assets = fetchurl {
     url = "https://github.com/${owner}/${repo}/releases/download/v${version}/${repo}_${version}_web-assets.tar.gz";
-    hash = "sha256-vrSdFIdBcfj6+sxtvv1s/Mu85I1mKxjyUYS902oLKk4=";
+    hash = "sha256-aZQpd5KvoZvXEMVzGbWrtGsc+P1JStjZ6U5mX6q7Vb0=";
   };
 in
 buildGoModule rec {
@@ -23,7 +23,7 @@ buildGoModule rec {
   src = fetchFromGitHub {
     inherit owner repo;
     rev = "refs/tags/v${version}";
-    hash = "sha256-z0iETddkw4C2R6ig9ZO8MTvhuWnmQ37/6q3oZ4WAzd4=";
+    hash = "sha256-QoG09+jmq5e5vxDVtkhY35098W/9B1HsYTuUnz43LV4=";
   };
 
   vendorHash = null;
diff --git a/pkgs/servers/gpm/default.nix b/pkgs/servers/gpm/default.nix
index 1c083b8d21560..a9c67f7a1195f 100644
--- a/pkgs/servers/gpm/default.nix
+++ b/pkgs/servers/gpm/default.nix
@@ -57,8 +57,8 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.nico.schottelius.org/software/gpm/";
-    description = "A daemon that provides mouse support on the Linux console";
-    license = licenses.gpl2;
+    description = "Daemon that provides mouse support on the Linux console";
+    license = licenses.gpl2Plus;
     platforms = platforms.linux ++ platforms.cygwin;
     maintainers = with maintainers; [ eelco ];
   };
diff --git a/pkgs/servers/h2/default.nix b/pkgs/servers/h2/default.nix
index 84a8b98b6dfc9..a143dd990e08b 100644
--- a/pkgs/servers/h2/default.nix
+++ b/pkgs/servers/h2/default.nix
@@ -13,11 +13,13 @@ maven.buildMavenPackage rec {
     hash = "sha256-pS9jSiuInA0eULPOZK5cjwr9y5KDVY51blhZ9vs4z+g=";
   };
 
-  mvnParameters = "-f h2/pom.xml -DskipTests";
+  mvnParameters = "-f h2/pom.xml";
   mvnHash = "sha256-hUzE4F+RNCAfoY836pjrivf04xqN4m9SkiLXhmVzZRA=";
 
   nativeBuildInputs = [ makeWrapper ];
 
+  doCheck = false;
+
   installPhase = ''
     mkdir -p $out/share/java
     install -Dm644 h2/target/h2-${version}.jar $out/share/java
@@ -34,7 +36,7 @@ maven.buildMavenPackage rec {
   };
 
   meta = with lib; {
-    description = "The Java SQL database";
+    description = "Java SQL database";
     homepage = "https://h2database.com/html/main.html";
     changelog = "https://h2database.com/html/changelog.html";
     license = licenses.mpl20;
diff --git a/pkgs/servers/hashi-ui/default.nix b/pkgs/servers/hashi-ui/default.nix
index ab3d869be9b9d..db4f6fc00091d 100644
--- a/pkgs/servers/hashi-ui/default.nix
+++ b/pkgs/servers/hashi-ui/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/jippi/hashi-ui";
-    description = "A modern user interface for hashicorp Consul & Nomad";
+    description = "Modern user interface for hashicorp Consul & Nomad";
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ numkem ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/servers/hbase/default.nix b/pkgs/servers/hbase/default.nix
index 61b571574cfdf..a93677e9545c4 100644
--- a/pkgs/servers/hbase/default.nix
+++ b/pkgs/servers/hbase/default.nix
@@ -29,7 +29,7 @@ let common = { version, hash, jdk ? jdk11_headless, tests }:
     passthru = { inherit tests; };
 
     meta = with lib; {
-      description = "A distributed, scalable, big data store";
+      description = "Distributed, scalable, big data store";
       homepage = "https://hbase.apache.org";
       license = licenses.asl20;
       maintainers = with lib.maintainers; [ illustris ];
diff --git a/pkgs/servers/headphones/default.nix b/pkgs/servers/headphones/default.nix
index 704268c24257e..fa33d16961fe2 100644
--- a/pkgs/servers/headphones/default.nix
+++ b/pkgs/servers/headphones/default.nix
@@ -2,14 +2,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "headphones";
-  version = "0.6.1";
+  version = "0.6.3";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "rembo10";
     repo = "headphones";
     rev = "v${version}";
-    sha256 = "1pj6xrcc6g336lb2knlc9l3qxgj3jaaymnbd7bmfjahgq5cp4d4v";
+    sha256 = "195v0ylhqd49bqq3dpig5nh0kivmwgmn0977fknix9j14jpvmd3b";
   };
 
   dontBuild = true;
diff --git a/pkgs/servers/headscale/default.nix b/pkgs/servers/headscale/default.nix
index 2c63e4f91a580..8bb5a1eef31b5 100644
--- a/pkgs/servers/headscale/default.nix
+++ b/pkgs/servers/headscale/default.nix
@@ -18,6 +18,11 @@ buildGoModule rec {
 
   vendorHash = "sha256-IOkbbFtE6+tNKnglE/8ZuNxhPSnloqM2sLgTvagMmnc=";
 
+  patches = [
+    # backport of https://github.com/juanfont/headscale/pull/1697
+    ./trim-oidc-secret-path.patch
+  ];
+
   ldflags = ["-s" "-w" "-X github.com/juanfont/headscale/cmd/headscale/cli.Version=v${version}"];
 
   nativeBuildInputs = [installShellFiles];
@@ -36,7 +41,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/juanfont/headscale";
-    description = "An open source, self-hosted implementation of the Tailscale control server";
+    description = "Open source, self-hosted implementation of the Tailscale control server";
     longDescription = ''
       Tailscale is a modern VPN built on top of Wireguard. It works like an
       overlay network between the computers of your networks - using all kinds
diff --git a/pkgs/servers/headscale/trim-oidc-secret-path.patch b/pkgs/servers/headscale/trim-oidc-secret-path.patch
new file mode 100644
index 0000000000000..4275988aa7db6
--- /dev/null
+++ b/pkgs/servers/headscale/trim-oidc-secret-path.patch
@@ -0,0 +1,13 @@
+diff --git a/hscontrol/config.go b/hscontrol/config.go
+index 0e83a1c..71fbfb0 100644
+--- a/hscontrol/config.go
++++ b/hscontrol/config.go
+@@ -573,7 +573,7 @@ func GetHeadscaleConfig() (*Config, error) {
+ 		if err != nil {
+ 			return nil, err
+ 		}
+-		oidcClientSecret = string(secretBytes)
++		oidcClientSecret = strings.TrimSpace(string(secretBytes))
+ 	}
+ 
+ 	return &Config{
diff --git a/pkgs/servers/heisenbridge/default.nix b/pkgs/servers/heisenbridge/default.nix
index 48c921f809664..59969aa4b901b 100644
--- a/pkgs/servers/heisenbridge/default.nix
+++ b/pkgs/servers/heisenbridge/default.nix
@@ -27,7 +27,7 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   meta = with lib; {
-    description = "A bouncer-style Matrix-IRC bridge.";
+    description = "Bouncer-style Matrix-IRC bridge";
     homepage = "https://github.com/hifi/heisenbridge";
     license = licenses.mit;
     maintainers = [ maintainers.sumnerevans ];
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index 9824cc3333142..1fe093dfb2d07 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -2,7 +2,7 @@
 # Do not edit!
 
 {
-  version = "2024.5.4";
+  version = "2024.6.3";
   components = {
     "3_day_blinds" = ps: with ps; [
     ];
@@ -51,6 +51,8 @@
     ];
     "air_quality" = ps: with ps; [
     ];
+    "airgradient" = ps: with ps; [
+    ]; # missing inputs: airgradient
     "airly" = ps: with ps; [
       airly
     ];
@@ -109,7 +111,10 @@
       aioairzone-cloud
     ];
     "aladdin_connect" = ps: with ps; [
-      aioaladdinconnect
+      fnv-hash-fast
+      genie-partner-sdk
+      psutil-home-assistant
+      sqlalchemy
     ];
     "alarm_control_panel" = ps: with ps; [
     ];
@@ -130,9 +135,6 @@
     "amberelectric" = ps: with ps; [
       amberelectric
     ];
-    "ambiclimate" = ps: with ps; [
-      ambiclimate
-    ];
     "ambient_network" = ps: with ps; [
       aioambient
     ];
@@ -216,6 +218,8 @@
       aprslib
       geopy
     ];
+    "apsystems" = ps: with ps; [
+    ]; # missing inputs: apsystems-ez1
     "aqualogic" = ps: with ps; [
       aqualogic
     ];
@@ -331,6 +335,8 @@
       axis
       paho-mqtt
     ];
+    "azure_data_explorer" = ps: with ps; [
+    ]; # missing inputs: azure-kusto-data azure-kusto-ingest
     "azure_devops" = ps: with ps; [
       aioazuredevops
     ];
@@ -527,6 +533,7 @@
     ];
     "brother" = ps: with ps; [
       brother
+      pysnmp-lextudio
     ];
     "brottsplatskartan" = ps: with ps; [
       brottsplatskartan
@@ -801,8 +808,12 @@
       deluge-client
     ];
     "demo" = ps: with ps; [
+      fnv-hash-fast
       hassil
       home-assistant-intents
+      pillow
+      psutil-home-assistant
+      sqlalchemy
     ];
     "denon" = ps: with ps; [
     ];
@@ -822,7 +833,10 @@
     "device_automation" = ps: with ps; [
     ];
     "device_sun_light_trigger" = ps: with ps; [
+      fnv-hash-fast
       pillow
+      psutil-home-assistant
+      sqlalchemy
     ];
     "device_tracker" = ps: with ps; [
     ];
@@ -1560,8 +1574,12 @@
     ];
     "google_generative_ai_conversation" = ps: with ps; [
       google-generativeai
+      ha-ffmpeg
       hassil
       home-assistant-intents
+      mutagen
+      voluptuous-openapi
+      webrtc-noise-gain
     ];
     "google_mail" = ps: with ps; [
       fnv-hash-fast
@@ -1649,6 +1667,10 @@
     "greenwave" = ps: with ps; [
     ]; # missing inputs: greenwavereality
     "group" = ps: with ps; [
+      fnv-hash-fast
+      pillow
+      psutil-home-assistant
+      sqlalchemy
     ];
     "growatt_server" = ps: with ps; [
       growattserver
@@ -1752,7 +1774,6 @@
       pillow
       psutil-home-assistant
       pyserial
-      pyserial-asyncio
       pyserial-asyncio-fast
       pyudev
       sqlalchemy
@@ -1770,7 +1791,6 @@
       pillow
       psutil-home-assistant
       pyserial
-      pyserial-asyncio
       pyserial-asyncio-fast
       pyudev
       sqlalchemy
@@ -1788,7 +1808,6 @@
       pillow
       psutil-home-assistant
       pyserial
-      pyserial-asyncio
       pyserial-asyncio-fast
       pyudev
       sqlalchemy
@@ -1806,7 +1825,6 @@
       pillow
       psutil-home-assistant
       pyserial
-      pyserial-asyncio
       pyserial-asyncio-fast
       pyudev
       sqlalchemy
@@ -2010,6 +2028,8 @@
     "imap" = ps: with ps; [
       aioimaplib
     ];
+    "imgw_pib" = ps: with ps; [
+    ]; # missing inputs: imgw_pib
     "improv_ble" = ps: with ps; [
       aioesphomeapi
       aioruuvigateway
@@ -2132,6 +2152,9 @@
     ];
     "irish_rail_transport" = ps: with ps; [
     ]; # missing inputs: pyirishrail
+    "isal" = ps: with ps; [
+      isal
+    ];
     "islamic_prayer_times" = ps: with ps; [
     ]; # missing inputs: prayer-times-calculator-offline
     "ismartwindow" = ps: with ps; [
@@ -2810,6 +2833,12 @@
     ];
     "monoprice" = ps: with ps; [
     ]; # missing inputs: pymonoprice
+    "monzo" = ps: with ps; [
+      fnv-hash-fast
+      monzopy
+      psutil-home-assistant
+      sqlalchemy
+    ];
     "moon" = ps: with ps; [
     ];
     "mopeka" = ps: with ps; [
@@ -3106,9 +3135,13 @@
       defusedxml
     ];
     "ollama" = ps: with ps; [
+      ha-ffmpeg
       hassil
       home-assistant-intents
-    ]; # missing inputs: ollama-hass
+      mutagen
+      ollama
+      webrtc-noise-gain
+    ];
     "ombi" = ps: with ps; [
       pyombi
     ];
@@ -3144,6 +3177,7 @@
       home-assistant-intents
       mutagen
       openai
+      voluptuous-openapi
       webrtc-noise-gain
     ];
     "openalpr_cloud" = ps: with ps; [
@@ -3178,7 +3212,7 @@
       pyopenuv
     ];
     "openweathermap" = ps: with ps; [
-      pyowm
+      pyopenweathermap
     ];
     "opnsense" = ps: with ps; [
       pyopnsense
@@ -3237,7 +3271,6 @@
       psutil-home-assistant
       pyroute2
       pyserial
-      pyserial-asyncio
       pyserial-asyncio-fast
       python-otbr-api
       pyudev
@@ -3802,7 +3835,8 @@
       zeroconf
     ];
     "rympro" = ps: with ps; [
-    ]; # missing inputs: pyrympro
+      pyrympro
+    ];
     "sabnzbd" = ps: with ps; [
       pysabnzbd
     ];
@@ -3858,6 +3892,7 @@
     ]; # missing inputs: scsgate
     "search" = ps: with ps; [
       fnv-hash-fast
+      pillow
       psutil-home-assistant
       sqlalchemy
     ];
@@ -3973,7 +4008,7 @@
       sqlalchemy
     ];
     "serial" = ps: with ps; [
-      pyserial-asyncio
+      pyserial-asyncio-fast
     ];
     "serial_pm" = ps: with ps; [
       pmsensor
@@ -4436,6 +4471,10 @@
       temperusb
     ];
     "template" = ps: with ps; [
+      fnv-hash-fast
+      pillow
+      psutil-home-assistant
+      sqlalchemy
     ];
     "tensorflow" = ps: with ps; [
       numpy
@@ -4515,6 +4554,7 @@
       stringcase
     ]; # missing inputs: thermoworks-smoke
     "thethingsnetwork" = ps: with ps; [
+      ttn-client
     ];
     "thingspeak" = ps: with ps; [
     ]; # missing inputs: thingspeak
@@ -4725,7 +4765,7 @@
       unifiled
     ];
     "unifiprotect" = ps: with ps; [
-      pyunifiprotect
+      uiprotect
       unifi-discovery
     ];
     "universal" = ps: with ps; [
@@ -4895,7 +4935,8 @@
       pyweatherflowudp
     ];
     "weatherflow_cloud" = ps: with ps; [
-    ]; # missing inputs: weatherflow4py
+      weatherflow4py
+    ];
     "weatherkit" = ps: with ps; [
       apple-weatherkit
     ];
@@ -5146,7 +5187,6 @@
       pillow
       psutil-home-assistant
       pyserial
-      pyserial-asyncio
       pyserial-asyncio-fast
       pyudev
       sqlalchemy
@@ -5218,7 +5258,6 @@
     "alert"
     "alexa"
     "amberelectric"
-    "ambiclimate"
     "ambient_network"
     "ambient_station"
     "analytics"
@@ -5527,6 +5566,7 @@
     "ipma"
     "ipp"
     "iqvia"
+    "isal"
     "isy994"
     "izone"
     "jellyfin"
@@ -5619,6 +5659,7 @@
     "modem_callerid"
     "modern_forms"
     "mold_indicator"
+    "monzo"
     "moon"
     "mopeka"
     "motion_blinds"
@@ -5670,6 +5711,7 @@
     "nx584"
     "obihai"
     "octoprint"
+    "ollama"
     "omnilogic"
     "onboarding"
     "oncue"
@@ -5777,6 +5819,7 @@
     "ruckus_unleashed"
     "ruuvi_gateway"
     "ruuvitag_ble"
+    "rympro"
     "sabnzbd"
     "samsungtv"
     "sanix"
@@ -5891,6 +5934,7 @@
     "text"
     "thermobeacon"
     "thermopro"
+    "thethingsnetwork"
     "thread"
     "threshold"
     "tibber"
@@ -5972,6 +6016,7 @@
     "waze_travel_time"
     "weather"
     "weatherflow"
+    "weatherflow_cloud"
     "weatherkit"
     "webhook"
     "webostv"
diff --git a/pkgs/servers/home-assistant/custom-components/adaptive_lighting/default.nix b/pkgs/servers/home-assistant/custom-components/adaptive_lighting/default.nix
index 1d2ae2228a5b2..9c35395d3e98e 100644
--- a/pkgs/servers/home-assistant/custom-components/adaptive_lighting/default.nix
+++ b/pkgs/servers/home-assistant/custom-components/adaptive_lighting/default.nix
@@ -7,13 +7,13 @@
 buildHomeAssistantComponent rec {
   owner = "basnijholt";
   domain = "adaptive_lighting";
-  version = "1.19.1";
+  version = "1.22.0";
 
   src = fetchFromGitHub {
     owner = "basnijholt";
     repo = "adaptive-lighting";
     rev = "refs/tags/${version}";
-    hash = "sha256-AZsloE1vNQ9o2pg878J6I5qYXyI4fqYEvr18SrTocWo=";
+    hash = "sha256-k5pCgPM5xjVfWjOcr0UDFzYl/8z7yUwgYdBmC3+2F5k=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/servers/home-assistant/custom-components/epex_spot/default.nix b/pkgs/servers/home-assistant/custom-components/epex_spot/default.nix
index e655a0d788d9d..85bef161595e0 100644
--- a/pkgs/servers/home-assistant/custom-components/epex_spot/default.nix
+++ b/pkgs/servers/home-assistant/custom-components/epex_spot/default.nix
@@ -7,23 +7,19 @@
 buildHomeAssistantComponent rec {
   owner = "mampfes";
   domain = "epex_spot";
-  version = "2.3.5";
+  version = "2.3.7";
 
   src = fetchFromGitHub {
     owner = "mampfes";
     repo = "ha_epex_spot";
     rev = "refs/tags/${version}";
-    hash = "sha256-WmPsFfQm8ChEr41XVgKi2BGwta5aKH9GDz4iIfTAPK4=";
+    hash = "sha256-8cxEOCzlQbS3HbQMBo7/rZb/GfpJvOWayLttEaEENYs=";
   };
 
   propagatedBuildInputs = [
     beautifulsoup4
   ];
 
-  postPatch = ''
-    substituteInPlace custom_components/epex_spot/manifest.json --replace-fail 'bs4' 'beautifulsoup4'
-  '';
-
   #skip phases without activity
   dontConfigure = true;
   doCheck = false;
diff --git a/pkgs/servers/home-assistant/custom-components/homematicip_local/default.nix b/pkgs/servers/home-assistant/custom-components/homematicip_local/default.nix
index f6dcd994719b4..a317c83fddbaf 100644
--- a/pkgs/servers/home-assistant/custom-components/homematicip_local/default.nix
+++ b/pkgs/servers/home-assistant/custom-components/homematicip_local/default.nix
@@ -7,13 +7,13 @@
 buildHomeAssistantComponent rec {
   owner = "danielperna84";
   domain = "homematicip_local";
-  version = "1.60.1";
+  version = "1.63.0";
 
   src = fetchFromGitHub {
     owner = "danielperna84";
     repo = "custom_homematic";
     rev = "refs/tags/${version}";
-    hash = "sha256-EJj9zmDdJ+T7yrANmRJuLRCSwvGLy2CkIBsO9H3LIs4=";
+    hash = "sha256-DK+zkNidHF/41qMQLxmYjgcybbC8fomfSmViL+pN/1Y=";
   };
 
   dependencies = [
diff --git a/pkgs/servers/home-assistant/custom-components/localtuya/default.nix b/pkgs/servers/home-assistant/custom-components/localtuya/default.nix
index 3e3c17a33cdfa..eb76a791b33a7 100644
--- a/pkgs/servers/home-assistant/custom-components/localtuya/default.nix
+++ b/pkgs/servers/home-assistant/custom-components/localtuya/default.nix
@@ -17,7 +17,7 @@ buildHomeAssistantComponent rec {
 
   meta = with lib; {
     changelog = "https://github.com/rospogrigio/localtuya/releases/tag/${version}";
-    description = "A Home Assistant custom Integration for local handling of Tuya-based devices";
+    description = "Home Assistant custom Integration for local handling of Tuya-based devices";
     homepage = "https://github.com/rospogrigio/localtuya";
     maintainers = with maintainers; [ rhoriguchi ];
     license = licenses.gpl3Only;
diff --git a/pkgs/servers/home-assistant/custom-components/miele/default.nix b/pkgs/servers/home-assistant/custom-components/miele/default.nix
index 3ebdc6283c035..408530620548d 100644
--- a/pkgs/servers/home-assistant/custom-components/miele/default.nix
+++ b/pkgs/servers/home-assistant/custom-components/miele/default.nix
@@ -27,7 +27,7 @@ buildHomeAssistantComponent rec {
 
   meta = with lib; {
     changelog = "https://github.com/astrandb/miele/releases/tag/v${version}";
-    description = "A modern integration for Miele devices in Home Assistant";
+    description = "Modern integration for Miele devices in Home Assistant";
     homepage = "https://github.com/astrandb/miele";
     maintainers = with maintainers; [jamiemagee];
     license = licenses.mit;
diff --git a/pkgs/servers/home-assistant/custom-components/moonraker/default.nix b/pkgs/servers/home-assistant/custom-components/moonraker/default.nix
index efe0654d01cbe..a134f8ff4f140 100644
--- a/pkgs/servers/home-assistant/custom-components/moonraker/default.nix
+++ b/pkgs/servers/home-assistant/custom-components/moonraker/default.nix
@@ -7,13 +7,13 @@
 buildHomeAssistantComponent rec {
   owner = "marcolivierarsenault";
   domain = "moonraker";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "marcolivierarsenault";
     repo = "moonraker-home-assistant";
     rev = "refs/tags/${version}";
-    hash = "sha256-oFHV9+5byWCOUxUhOvGHNilCZaoOp2xxb33nF8+CYjE=";
+    hash = "sha256-utxCHXVpP4FQT2poVuS4cMZGgn7yO89lUw5KhIHRXKQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/servers/home-assistant/custom-components/omnik_inverter/default.nix b/pkgs/servers/home-assistant/custom-components/omnik_inverter/default.nix
index a0a33f644bac9..38dd56feb0000 100644
--- a/pkgs/servers/home-assistant/custom-components/omnik_inverter/default.nix
+++ b/pkgs/servers/home-assistant/custom-components/omnik_inverter/default.nix
@@ -24,7 +24,7 @@ buildHomeAssistantComponent rec {
 
   meta = with lib; {
     changelog = "https://github.com/robbinjanssen/home-assistant-omnik-inverter/releases/tag/v${version}";
-    description = "The Omnik Inverter integration will scrape data from an Omnik inverter connected to your local network";
+    description = "Omnik Inverter integration will scrape data from an Omnik inverter connected to your local network";
     homepage = "https://github.com/robbinjanssen/home-assistant-omnik-inverter";
     maintainers = with maintainers; [ _9R ];
     license = licenses.mit;
diff --git a/pkgs/servers/home-assistant/custom-components/smartthinq-sensors/default.nix b/pkgs/servers/home-assistant/custom-components/smartthinq-sensors/default.nix
index 3ebb482939dcb..4e118bb3e24e9 100644
--- a/pkgs/servers/home-assistant/custom-components/smartthinq-sensors/default.nix
+++ b/pkgs/servers/home-assistant/custom-components/smartthinq-sensors/default.nix
@@ -9,13 +9,13 @@
 buildHomeAssistantComponent rec {
   owner = "ollo69";
   domain = "smartthinq_sensors";
-  version = "0.39.0";
+  version = "0.39.2";
 
   src = fetchFromGitHub {
     inherit owner;
     repo = "ha-smartthinq-sensors";
     rev = "v${version}";
-    hash = "sha256-mt5/XHDAUeoMUA1jWdCNXTUgZBQkqabL5Y4MxwxcweY=";
+    hash = "sha256-tLq4sqeKmjEDDaowA8ouH/mI7jQfq49kkt/a8+40rhQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/servers/home-assistant/custom-components/tuya_local/default.nix b/pkgs/servers/home-assistant/custom-components/tuya_local/default.nix
index 910dcca051cc5..7d72209c57b0a 100644
--- a/pkgs/servers/home-assistant/custom-components/tuya_local/default.nix
+++ b/pkgs/servers/home-assistant/custom-components/tuya_local/default.nix
@@ -4,21 +4,25 @@
 
 # dependencies
 , tinytuya
+, tuya-device-sharing-sdk
 }:
 
 buildHomeAssistantComponent rec {
   owner = "make-all";
   domain = "tuya_local";
-  version = "2024.5.2";
+  version = "2024.6.0";
 
   src = fetchFromGitHub {
     inherit owner;
     repo = "tuya-local";
     rev = "refs/tags/${version}";
-    hash = "sha256-If5SLLizagolXF5Y43UQK5IZ9oB1lQJVjTorgmtRXtg=";
+    hash = "sha256-OLR/KFoXKqL7r7S97VpyoVHdbLfOyWU50aK6c0QhqyE=";
   };
 
-  dependencies = [ tinytuya ];
+  dependencies = [
+    tinytuya
+    tuya-device-sharing-sdk
+  ];
 
   meta = with lib; {
     description = "Local support for Tuya devices in Home Assistant";
diff --git a/pkgs/servers/home-assistant/custom-components/xiaomi_miot/default.nix b/pkgs/servers/home-assistant/custom-components/xiaomi_miot/default.nix
index 6c26192d42280..83f03c7a9cb32 100644
--- a/pkgs/servers/home-assistant/custom-components/xiaomi_miot/default.nix
+++ b/pkgs/servers/home-assistant/custom-components/xiaomi_miot/default.nix
@@ -34,7 +34,7 @@ buildHomeAssistantComponent rec {
 
   meta = with lib; {
     changelog = "https://github.com/al-one/hass-xiaomi-miot/releases/tag/${version}";
-    description = "Automatic integrate all Xiaomi devices to HomeAssistant via miot-spec, support Wi-Fi, BLE, ZigBee devices.";
+    description = "Automatic integrate all Xiaomi devices to HomeAssistant via miot-spec, support Wi-Fi, BLE, ZigBee devices";
     homepage = "https://github.com/al-one/hass-xiaomi-miot";
     maintainers = with maintainers; [ azuwis ];
     license = licenses.asl20;
diff --git a/pkgs/servers/home-assistant/custom-components/yassi/default.nix b/pkgs/servers/home-assistant/custom-components/yassi/default.nix
index 675d127d4d4d8..39d8cd5145b52 100644
--- a/pkgs/servers/home-assistant/custom-components/yassi/default.nix
+++ b/pkgs/servers/home-assistant/custom-components/yassi/default.nix
@@ -7,19 +7,19 @@
 buildHomeAssistantComponent rec {
   owner = "samuelspagl";
   domain = "samsung_soundbar";
-  version = "0.4.0b4";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     inherit owner;
     repo = "ha_samsung_soundbar";
     rev = version;
-    hash = "sha256-SwIB2w7iBFdyDfwm5WSDF59YVR8ou6Le0PLUMidS1vk=";
+    hash = "sha256-pkwkXI05zDMEXPoE90YJBxoPYlzmSHH/BLExq0J1JrQ=";
   };
 
   propagatedBuildInputs = [ pysmartthings ];
 
   meta = with lib; {
-    description = "A HomeAssistant integration for Samsung Soundbars";
+    description = "HomeAssistant integration for Samsung Soundbars";
     homepage = "https://ha-samsung-soundbar.vercel.app/";
     changelog = "https://github.com/samuelspagl/ha_samsung_soundbar/releases/tag/${version}";
     maintainers = with maintainers; [ k900 ];
diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/android-tv-card/default.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/android-tv-card/default.nix
index 54186a99ab2da..b3f93c0b50c4c 100644
--- a/pkgs/servers/home-assistant/custom-lovelace-modules/android-tv-card/default.nix
+++ b/pkgs/servers/home-assistant/custom-lovelace-modules/android-tv-card/default.nix
@@ -5,18 +5,18 @@
 
 buildNpmPackage rec {
   pname = "android-tv-card";
-  version = "3.7.3";
+  version = "3.8.0";
 
   src = fetchFromGitHub {
     owner = "Nerwyn";
     repo = "android-tv-card";
     rev = version;
-    hash = "sha256-uhdo4K5JqKogQGKr0dkFl579YeAQNbhOwHAFTLpqY6Y=";
+    hash = "sha256-DYNfDGvCLJHhp2p9iPsxWAyPPUNI+sLwDYP6FRQA1vk=";
   };
 
   patches = [ ./dont-call-git.patch ];
 
-  npmDepsHash = "sha256-wrmj4lewxBnWVlpkb/AP3lfuGNcvYGf+HWBQw7bcr1Q=";
+  npmDepsHash = "sha256-9O5T3x3uLm5qpZwIbeo2DJ/CirRilJ17BZuT3+NDP8A=";
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/mushroom/default.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/mushroom/default.nix
index 4b529d6e4016f..6ac81c919b2ff 100644
--- a/pkgs/servers/home-assistant/custom-lovelace-modules/mushroom/default.nix
+++ b/pkgs/servers/home-assistant/custom-lovelace-modules/mushroom/default.nix
@@ -5,16 +5,16 @@
 
 buildNpmPackage rec {
   pname = "mushroom";
-  version = "3.5.4";
+  version = "3.6.2";
 
   src = fetchFromGitHub {
     owner = "piitaya";
     repo = "lovelace-mushroom";
     rev = "v${version}";
-    hash = "sha256-ppEXgVrB7C5ZrNmYyXdrnQMbTNU5rTGherNlimMqImM=";
+    hash = "sha256-sH0Qgiv4VeWwWV3RFnp2M4RH79S+PR8Z2nhPtQp0EnY=";
   };
 
-  npmDepsHash = "sha256-4B295Wc4tj+Rhse4521sCGNv/WMrNImxZwtTFkFp14c=";
+  npmDepsHash = "sha256-L7r417eCfelQM6ZxxJvkZdGBhPmcM2mSHvLa8RN0D8k=";
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index bb2de0881bf6b..2e60e21ae8f2a 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -30,15 +30,6 @@ let
     # Override the version of some packages pinned in Home Assistant's setup.py and requirements_all.txt
 
     (self: super: {
-      aioaladdinconnect = super.aioaladdinconnect.overridePythonAttrs (oldAttrs: rec {
-        version = "0.1.58";
-        src = fetchPypi {
-          pname = "AIOAladdinConnect";
-          inherit version;
-          hash = "sha256-ymynaOKvnqqHIEuQc+5CagsaH5cHnQit8ileoUO6G+I=";
-        };
-      });
-
       aioelectricitymaps = super.aioelectricitymaps.overridePythonAttrs (oldAttrs: rec {
         version = "0.4.0";
         src = fetchFromGitHub {
@@ -102,13 +93,15 @@ let
         '';
       });
 
-      anova-wifi = super.anova-wifi.overridePythonAttrs (old: rec {
-        version = "0.10.3";
+      aiowithings = super.aiowithings.overridePythonAttrs (oldAttrs: rec {
+        version = "2.1.0";
         src = fetchFromGitHub {
-          owner = "Lash-L";
-          repo = "anova_wifi";
-          rev = "refs/tags/v${version}";
-          hash = "sha256-tCmvp29KSCkc+g0w0odcB7vGjtDx6evac7XsHEF0syM=";
+          inherit (oldAttrs.src)
+            owner
+            repo
+          ;
+          rev = "refs/tags/${version}";
+          hash = "sha256-+pIIVCR+QsW9M3pH9Ss3dMvkeKM1OdhQ1y+s/T6pHtk=";
         };
       });
 
@@ -179,16 +172,6 @@ let
         };
       });
 
-      homematicip = super.homematicip.overridePythonAttrs rec {
-        version = "1.1.0";
-        src = fetchFromGitHub {
-          owner = "hahn-th";
-          repo = "homematicip-rest-api";
-          rev = "refs/tags/${version}";
-          hash = "sha256-tx7/amXG3rLdUFgRPQcuf57qkBLAPxPWjLGSO7MrcWU=";
-        };
-      };
-
       intellifire4py = super.intellifire4py.overridePythonAttrs (oldAttrs: rec {
         version = "2.2.2";
         src = fetchFromGitHub {
@@ -267,6 +250,16 @@ let
         patches = [];
       });
 
+      pymelcloud = super.pymelcloud.overridePythonAttrs (oldAttrs: {
+        version = "2.5.9";
+        src = fetchFromGitHub {
+          owner = "vilppuvuorinen";
+          repo = "pymelcloud";
+          rev = "33a827b6cd0b34f276790faa49bfd0994bb7c2e4"; # 2.5.x branch
+          sha256 = "sha256-Q3FIo9YJwtWPHfukEBjBANUQ1N1vr/DMnl1dgiN7vYg=";
+        };
+      });
+
       notifications-android-tv = super.notifications-android-tv.overridePythonAttrs (oldAttrs: rec {
         version = "0.1.5";
         format = "setuptools";
@@ -448,16 +441,6 @@ let
         ];
       };
 
-      tesla-powerwall = super.tesla-powerwall.overridePythonAttrs (oldAttrs: rec {
-        version = "0.5.1";
-        src = fetchFromGitHub {
-          owner = "jrester";
-          repo = "tesla_powerwall";
-          rev = "refs/tags/v${version}";
-          hash = "sha256-if/FCfxAB48WGXZOMvCtdSOW2FWO43OrlcHZbXIPmGE=";
-        };
-      });
-
       tuf = super.tuf.overridePythonAttrs rec {
         version = "2.1.0";
         src = fetchFromGitHub {
@@ -550,12 +533,12 @@ let
   extraBuildInputs = extraPackages python.pkgs;
 
   # Don't forget to run update-component-packages.py after updating
-  hassVersion = "2024.5.4";
+  hassVersion = "2024.6.3";
 
 in python.pkgs.buildPythonApplication rec {
   pname = "homeassistant";
   version = assert (componentPackages.version == hassVersion); hassVersion;
-  format = "pyproject";
+  pyproject = true;
 
   # check REQUIRED_PYTHON_VER in homeassistant/const.py
   disabled = python.pythonOlder "3.11";
@@ -568,13 +551,13 @@ in python.pkgs.buildPythonApplication rec {
     owner = "home-assistant";
     repo = "core";
     rev = "refs/tags/${version}";
-    hash = "sha256-YJluhc1MCRxeDtn8R9tF2QYA6qCiYpjOpRJaQeay3lk=";
+    hash = "sha256-hpKfdcTc9vddA/1EsfugDIKUPe0g3fPQnmwHLSEIF9w=";
   };
 
   # Secondary source is pypi sdist for translations
   sdist = fetchPypi {
     inherit pname version;
-    hash = "sha256-e2evRFP/l2HHcDgMUWQEM7xvvAfLRwdFtz+u2mwXepI=";
+    hash = "sha256-lhTVAYwtYf7UzplAIHTWqgd0P7V93gjNbBUlMd3i3oQ=";
   };
 
   build-system = with python.pkgs; [
@@ -594,6 +577,7 @@ in python.pkgs.buildPythonApplication rec {
     "orjson"
     "pillow"
     "pyopenssl"
+    "requests"
     "sqlalchemy"
     "typing-extensions"
     "urllib3"
@@ -631,8 +615,8 @@ in python.pkgs.buildPythonApplication rec {
     aiohttp
     aiohttp-cors
     aiohttp-fast-url-dispatcher
-    aiohttp-isal
-    aiohttp-session
+    aiohttp-fast-zlib
+    aiozoneinfo
     astral
     async-interrupt
     atomicwrites-homeassistant
diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix
index 4724eb834d841..f3e6062d5b266 100644
--- a/pkgs/servers/home-assistant/frontend.nix
+++ b/pkgs/servers/home-assistant/frontend.nix
@@ -4,7 +4,7 @@ buildPythonPackage rec {
   # the frontend version corresponding to a specific home-assistant version can be found here
   # https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json
   pname = "home-assistant-frontend";
-  version = "20240501.1";
+  version = "20240610.1";
   format = "wheel";
 
   src = fetchPypi {
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     pname = "home_assistant_frontend";
     dist = "py3";
     python = "py3";
-    hash = "sha256-d/mlZfMri0E4lgMrIt3cRqpF3F12Xr7YuHqTogFON9E=";
+    hash = "sha256-6XSDKPL+rbtP/jGYbvzc5cakEZC94sDetmPuM7TQQ64=";
   };
 
   # there is nothing to strip in this package
diff --git a/pkgs/servers/home-assistant/intents.nix b/pkgs/servers/home-assistant/intents.nix
index e72240cd6b837..06b68cfd383ee 100644
--- a/pkgs/servers/home-assistant/intents.nix
+++ b/pkgs/servers/home-assistant/intents.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "home-assistant-intents";
-  version = "2024.4.24";
+  version = "2024.6.5";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -29,18 +29,11 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "home-assistant";
     repo = "intents-package";
-    # https://github.com/home-assistant/intents-package/issues/3
-    rev = "a68176a189c3def87cb11ad39baacea2440ce668";
-    hash = "sha256-SUIJWoA0ltg+bjYn4J5kvAk4Eh23uxEcdxonkTSV0m0=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-2rACxdgvCWnyhfVRAVbLTaEAYquAkLnfxi7zeZYZslI=";
     fetchSubmodules = true;
   };
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace-fail "setuptools~=62.3" "setuptools" \
-      --replace-fail "wheel~=0.37.1" "wheel"
-  '';
-
   build-system = [
     setuptools
 
diff --git a/pkgs/servers/home-assistant/stubs.nix b/pkgs/servers/home-assistant/stubs.nix
index 6587cda515dc6..4d14ee508bcba 100644
--- a/pkgs/servers/home-assistant/stubs.nix
+++ b/pkgs/servers/home-assistant/stubs.nix
@@ -8,8 +8,8 @@
 
 buildPythonPackage rec {
   pname = "homeassistant-stubs";
-  version = "2024.5.4";
-  format = "pyproject";
+  version = "2024.6.3";
+  pyproject = true;
 
   disabled = python.version != home-assistant.python.version;
 
@@ -17,10 +17,10 @@ buildPythonPackage rec {
     owner = "KapJI";
     repo = "homeassistant-stubs";
     rev = "refs/tags/${version}";
-    hash = "sha256-wW3qRXdT3FmAj5bOBzBmrD97o/pONowi7F0Cbj6ndLg=";
+    hash = "sha256-YMoNoR9LT38nkqoo0seaP88XUOcVmSQN1dBKiW+13SM=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     poetry-core
     home-assistant
   ];
diff --git a/pkgs/servers/home-assistant/tests.nix b/pkgs/servers/home-assistant/tests.nix
index 07e9ab99800b4..ae42f5fd7ce66 100644
--- a/pkgs/servers/home-assistant/tests.nix
+++ b/pkgs/servers/home-assistant/tests.nix
@@ -8,6 +8,7 @@ let
     airzone_cloud = [
       aioairzone
     ];
+    androidtv = home-assistant.getPackages "asuswrt" home-assistant.python.pkgs;
     bluetooth = [
       pyswitchbot
     ];
@@ -91,6 +92,7 @@ let
     jellyfin = [
       # AssertionError: assert 'audio/x-flac' == 'audio/flac'
       "--deselect tests/components/jellyfin/test_media_source.py::test_resolve"
+      "--deselect tests/components/jellyfin/test_media_source.py::test_audio_codec_resolve"
       # AssertionError: assert [+ received] == [- snapshot]
       "--deselect tests/components/jellyfin/test_media_source.py::test_music_library"
     ];
@@ -107,6 +109,7 @@ let
 in lib.listToAttrs (map (component: lib.nameValuePair component (
   home-assistant.overridePythonAttrs (old: {
     pname = "homeassistant-test-${component}";
+    pyproject = null;
     format = "other";
 
     dontBuild = true;
diff --git a/pkgs/servers/home-assistant/update-component-packages.py b/pkgs/servers/home-assistant/update-component-packages.py
index 10288f5e6d64f..e25b60336140d 100755
--- a/pkgs/servers/home-assistant/update-component-packages.py
+++ b/pkgs/servers/home-assistant/update-component-packages.py
@@ -41,6 +41,7 @@ PKG_SET = "home-assistant.python.pkgs"
 PKG_PREFERENCES = {
     "fiblary3": "fiblary3-fork",  # https://github.com/home-assistant/core/issues/66466
     "HAP-python": "hap-python",
+    "ollama-hass": "ollama",
     "SQLAlchemy": "sqlalchemy",
     "tensorflow": "tensorflow",
     "yt-dlp": "yt-dlp",
diff --git a/pkgs/servers/home-automation/evcc/default.nix b/pkgs/servers/home-automation/evcc/default.nix
index 62a9326f23986..b20fbee945913 100644
--- a/pkgs/servers/home-automation/evcc/default.nix
+++ b/pkgs/servers/home-automation/evcc/default.nix
@@ -21,20 +21,20 @@ in
 
 buildGoModule rec {
   pname = "evcc";
-  version = "0.126.3";
+  version = "0.127.2";
 
   src = fetchFromGitHub {
     owner = "evcc-io";
     repo = "evcc";
     rev = version;
-    hash = "sha256-Q+g/XEfIfpGchIZQdouoP9muqq6l0xixOLmIntgIWe0=";
+    hash = "sha256-85AhiqAvjr63tfXovH2bt1b583ak1N09EtbLLtW7qeA=";
   };
 
-  vendorHash = "sha256-tFj1cPBB1qeuwz1RXVVDVNJRfFFKPH6mdMnaiM3jwUc=";
+  vendorHash = "sha256-MdfLJpPEi6Cr34W6eJSraKJwBPtR66HM2tJIbPE9mZs=";
 
   npmDeps = fetchNpmDeps {
     inherit src;
-    hash = "sha256-ghDLmsmcG+qDItiqaZy8MTYw/AU58bZfUzYY32XKNyk=";
+    hash = "sha256-6Dxf32myqRbKIlYFcQhkuqZVz+lVvmeJ5lqiWPCQAzA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/servers/homepage-dashboard/default.nix b/pkgs/servers/homepage-dashboard/default.nix
index c32aa1b075935..af35e6edfe3d2 100644
--- a/pkgs/servers/homepage-dashboard/default.nix
+++ b/pkgs/servers/homepage-dashboard/default.nix
@@ -27,16 +27,16 @@ let
 in
 buildNpmPackage rec {
   pname = "homepage-dashboard";
-  version = "0.8.13";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "gethomepage";
     repo = "homepage";
     rev = "v${version}";
-    hash = "sha256-5AGtNfeFI5fkeXg1PK9ylifHzp9P6XW80XQQFY1YGj8=";
+    hash = "sha256-4nSlL4m0SL3B7+lI/BGt1aY1UE46la7/4NU4BaJ7EwQ=";
   };
 
-  npmDepsHash = "sha256-UrRpjbFGziPNN03Fj9T+K+kav0LhaAFp/o+SXja6Jxk=";
+  npmDepsHash = "sha256-jYZUVwrOxoAbfHHSBkN5IlYhC6yZVVwRoZErkbYrjUs=";
 
   preBuild = ''
     mkdir -p config
@@ -92,7 +92,7 @@ buildNpmPackage rec {
   };
 
   meta = {
-    description = "A highly customisable dashboard with Docker and service API integrations";
+    description = "Highly customisable dashboard with Docker and service API integrations";
     changelog = "https://github.com/gethomepage/homepage/releases/tag/v${version}";
     mainProgram = "homepage";
     homepage = "https://gethomepage.dev";
diff --git a/pkgs/servers/honk/default.nix b/pkgs/servers/honk/default.nix
index 5bc64151afaa2..7205eec214701 100644
--- a/pkgs/servers/honk/default.nix
+++ b/pkgs/servers/honk/default.nix
@@ -56,7 +56,7 @@ buildGoModule rec {
 
   meta = {
     changelog = "https://humungus.tedunangst.com/r/honk/v/v${version}/f/docs/changelog.txt";
-    description = "An ActivityPub server with minimal setup and support costs.";
+    description = "ActivityPub server with minimal setup and support costs";
     homepage = "https://humungus.tedunangst.com/r/honk";
     license = lib.licenses.isc;
     mainProgram = "honk";
diff --git a/pkgs/servers/hqplayerd/rygel.nix b/pkgs/servers/hqplayerd/rygel.nix
index 313f0bb51ae04..a8d97ee240760 100644
--- a/pkgs/servers/hqplayerd/rygel.nix
+++ b/pkgs/servers/hqplayerd/rygel.nix
@@ -99,7 +99,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A home media solution (UPnP AV MediaServer) that allows you to easily share audio, video and pictures to other devices";
+    description = "Home media solution (UPnP AV MediaServer) that allows you to easily share audio, video and pictures to other devices";
     homepage = "https://gitlab.gnome.org/GNOME/rygel";
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/servers/http/angie/console-light.nix b/pkgs/servers/http/angie/console-light.nix
index c4772205a5c74..5fe20e6146612 100644
--- a/pkgs/servers/http/angie/console-light.nix
+++ b/pkgs/servers/http/angie/console-light.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
    '';
 
   meta = {
-    description = "Console Light is a lightweight, real-time activity monitoring interface.";
+    description = "Console Light is a lightweight, real-time activity monitoring interface";
     homepage    = "https://angie.software/en/console/";
     license     = lib.licenses.asl20;
     platforms   = lib.platforms.all;
diff --git a/pkgs/servers/http/angie/default.nix b/pkgs/servers/http/angie/default.nix
index 233298053b2e0..c9e6ec815d3a0 100644
--- a/pkgs/servers/http/angie/default.nix
+++ b/pkgs/servers/http/angie/default.nix
@@ -1,23 +1,25 @@
 { callPackage
-, runCommand
 , lib
 , fetchurl
 , nixosTests
+, withAcme ? false
 , withQuic ? false
-, fetchpatch
 , ...
 }@args:
 
 callPackage ../nginx/generic.nix args rec {
-  version = "1.4.1";
+  version = "1.5.2";
   pname = if withQuic then "angieQuic" else "angie";
 
   src = fetchurl {
     url = "https://download.angie.software/files/angie-${version}.tar.gz";
-    hash = "sha256-g6PyuyulnltnZJWiZ01iYG1k6Lz5nO+gneb8M4q3WHo=";
+    hash = "sha256-jX0WBIdL3RQpgdeVf4oZByDNKQbrEjKbImC86Ceqkoc=";
   };
 
-  configureFlags = lib.optional withQuic [
+  configureFlags = lib.optionals withAcme [
+    "--with-http_acme_module"
+    "--http-acme-client-path=/var/lib/nginx/acme"
+  ] ++ lib.optionals withQuic [
     "--with-http_v3_module"
   ];
 
diff --git a/pkgs/servers/http/apache-modules/mod_auth_mellon/default.nix b/pkgs/servers/http/apache-modules/mod_auth_mellon/default.nix
index 5dd2fee040e9b..4b6c5681470fa 100644
--- a/pkgs/servers/http/apache-modules/mod_auth_mellon/default.nix
+++ b/pkgs/servers/http/apache-modules/mod_auth_mellon/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/latchset/mod_auth_mellon";
-    description = "An Apache module with a simple SAML 2.0 service provider";
+    description = "Apache module with a simple SAML 2.0 service provider";
     mainProgram = "mellon_create_metadata.sh";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/servers/http/apache-modules/mod_cspnonce/default.nix b/pkgs/servers/http/apache-modules/mod_cspnonce/default.nix
index f6de7f0175375..68486d5d28942 100644
--- a/pkgs/servers/http/apache-modules/mod_cspnonce/default.nix
+++ b/pkgs/servers/http/apache-modules/mod_cspnonce/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An Apache2 module that makes it dead simple to add nonce values to the CSP";
+    description = "Apache2 module that makes it dead simple to add nonce values to the CSP";
     homepage = "https://github.com/wyattoday/mod_cspnonce";
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/pkgs/servers/http/apache-modules/mod_itk/default.nix b/pkgs/servers/http/apache-modules/mod_itk/default.nix
index a36a030899a59..1cbf78a577820 100644
--- a/pkgs/servers/http/apache-modules/mod_itk/default.nix
+++ b/pkgs/servers/http/apache-modules/mod_itk/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "an MPM (Multi-Processing Module) for the Apache web server.";
+    description = "MPM (Multi-Processing Module) for the Apache web server";
     maintainers = [ maintainers.zupo ];
     homepage = "http://mpm-itk.sesse.net/";
     license = licenses.asl20;
diff --git a/pkgs/servers/http/apache-modules/mod_python/default.nix b/pkgs/servers/http/apache-modules/mod_python/default.nix
index 8b4fcd5d94bee..a859cf3dee4c8 100644
--- a/pkgs/servers/http/apache-modules/mod_python/default.nix
+++ b/pkgs/servers/http/apache-modules/mod_python/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://modpython.org/";
     changelog = "https://github.com/grisha/mod_python/blob/${version}/NEWS";
-    description = "An Apache module that embeds the Python interpreter within the server";
+    description = "Apache module that embeds the Python interpreter within the server";
     mainProgram = "mod_python";
     platforms = platforms.unix;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/servers/http/apache-modules/mod_tile/default.nix b/pkgs/servers/http/apache-modules/mod_tile/default.nix
index f97ae6269011d..6c64478cc1259 100644
--- a/pkgs/servers/http/apache-modules/mod_tile/default.nix
+++ b/pkgs/servers/http/apache-modules/mod_tile/default.nix
@@ -29,6 +29,11 @@ stdenv.mkDerivation rec {
     hash = "sha256-zXUwTG8cqAkY5MC1jAc2TtMgNMQPLc5nc22okVYP4ME=";
   };
 
+  patches = [
+    # Support Mapnik >= v4.0.0-rc2 (boost:optional no longer used)
+    ./mod_tile-std_optional.patch
+  ];
+
   nativeBuildInputs = [
     cmake
     pkg-config
@@ -64,13 +69,15 @@ stdenv.mkDerivation rec {
   installFlags = [ "DESTDIR=$(out)" ];
 
   doCheck = true;
+  # Do not run tests in parallel
+  enableParallelChecking = false;
 
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
     homepage = "https://github.com/openstreetmap/mod_tile";
     description = "Efficiently render and serve OpenStreetMap tiles using Apache and Mapnik";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ jglukasik ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/servers/http/apache-modules/mod_tile/mod_tile-std_optional.patch b/pkgs/servers/http/apache-modules/mod_tile/mod_tile-std_optional.patch
new file mode 100644
index 0000000000000..1f63ce0bc1f1d
--- /dev/null
+++ b/pkgs/servers/http/apache-modules/mod_tile/mod_tile-std_optional.patch
@@ -0,0 +1,26 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e68d2e9..ddba150 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -48,7 +48,7 @@ find_package(LIBMEMCACHED)
+ find_package(LIBRADOS)
+ 
+ if(LIBMAPNIK_VERSION STRGREATER_EQUAL "4")
+-  set(CMAKE_CXX_STANDARD 14)
++  set(CMAKE_CXX_STANDARD 17)
+ endif()
+ 
+ # Programs
+diff --git a/src/parameterize_style.cpp b/src/parameterize_style.cpp
+index 8db7122..7100735 100644
+--- a/src/parameterize_style.cpp
++++ b/src/parameterize_style.cpp
+@@ -72,7 +74,7 @@ static void parameterize_map_language(mapnik::Map &m, char * parameter)
+ 		mapnik::parameters params = l.datasource()->params();
+ 
+ 		if (params.find("table") != params.end()) {
+-			boost::optional<std::string> table = params.get<std::string>("table");
++			auto table = params.get<std::string>("table");
+ 
+ 			if (table && table->find(",name") != std::string::npos) {
+ 				std::string str = *table;
diff --git a/pkgs/servers/http/apt-cacher-ng/default.nix b/pkgs/servers/http/apt-cacher-ng/default.nix
index 72a456ab17f94..f574ae78248be 100644
--- a/pkgs/servers/http/apt-cacher-ng/default.nix
+++ b/pkgs/servers/http/apt-cacher-ng/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ bzip2 fuse libevent xz openssl systemd tcp_wrappers zlib c-ares ];
 
   meta = with lib; {
-    description = "A caching proxy specialized for Linux distribution files";
+    description = "Caching proxy specialized for Linux distribution files";
     mainProgram = "apt-cacher-ng";
     homepage = "https://www.unix-ag.uni-kl.de/~bloch/acng/";
     license = licenses.bsdOriginal;
diff --git a/pkgs/servers/http/couchdb/3.nix b/pkgs/servers/http/couchdb/3.nix
index 6e625dbdb7203..87e80976b8c5d 100644
--- a/pkgs/servers/http/couchdb/3.nix
+++ b/pkgs/servers/http/couchdb/3.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A database that uses JSON for documents, JavaScript for MapReduce queries, and regular HTTP for an API";
+    description = "Database that uses JSON for documents, JavaScript for MapReduce queries, and regular HTTP for an API";
     homepage = "https://couchdb.apache.org";
     license = licenses.asl20;
     platforms = platforms.all;
diff --git a/pkgs/servers/http/dave/default.nix b/pkgs/servers/http/dave/default.nix
index 492e4989d753a..8950b0b3d20d7 100644
--- a/pkgs/servers/http/dave/default.nix
+++ b/pkgs/servers/http/dave/default.nix
@@ -27,7 +27,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/micromata/dave";
-    description = "A totally simple and very easy to configure stand alone webdav server";
+    description = "Totally simple and very easy to configure stand alone webdav server";
     license = licenses.asl20;
     maintainers = with maintainers; [ lunik1 ];
   };
diff --git a/pkgs/servers/http/dufs/default.nix b/pkgs/servers/http/dufs/default.nix
index 433a68d1a54a5..e01c923e1cd2f 100644
--- a/pkgs/servers/http/dufs/default.nix
+++ b/pkgs/servers/http/dufs/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "dufs";
-  version = "0.40.0";
+  version = "0.41.0";
 
   src = fetchFromGitHub {
     owner = "sigoden";
     repo = "dufs";
     rev = "v${version}";
-    hash = "sha256-BoFoF7V6bTQiJ+afGnivviU/s2ikOxAX06s+AwRxo8Q=";
+    hash = "sha256-Ab/f6n2n24mLsWS4WF6jOBt9m7dyeSP0ftYixKANsjY=";
   };
 
-  cargoHash = "sha256-B0K/lco7suYM0/02LaDbeqyt4zyiwoeBxhmUPsVTvkw=";
+  cargoHash = "sha256-CNHDZHyg4jrEl3hmdQ7ITCtg9iTmB2RwDAzqSirOCO4=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -41,7 +41,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A file server that supports static serving, uploading, searching, accessing control, webdav";
+    description = "File server that supports static serving, uploading, searching, accessing control, webdav";
     mainProgram = "dufs";
     homepage = "https://github.com/sigoden/dufs";
     changelog = "https://github.com/sigoden/dufs/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/servers/http/envoy/default.nix b/pkgs/servers/http/envoy/default.nix
index 8a91e361f37f2..f979cc92ba7ef 100644
--- a/pkgs/servers/http/envoy/default.nix
+++ b/pkgs/servers/http/envoy/default.nix
@@ -3,7 +3,6 @@
 , bazel-gazelle
 , buildBazelPackage
 , fetchFromGitHub
-, fetchpatch
 , stdenv
 , cmake
 , gn
@@ -25,15 +24,15 @@ let
     # However, the version string is more useful for end-users.
     # These are contained in a attrset of their own to make it obvious that
     # people should update both.
-    version = "1.30.1";
-    rev = "816188b86a0a52095b116b107f576324082c7c02";
-    hash = "sha256-G0rT+OfMk2nitTXcxMr04jwUMYTfb4VBEV1zftalgFU=";
+    version = "1.30.2";
+    rev = "d79f6e8d453ee260e9094093b8dd31af0056e67b";
+    hash = "sha256-qbe9M4dH7NFDY5UF17urJ6WvnZNhvdMU4HAg0BaL+KA=";
   };
 
   # these need to be updated for any changes to fetchAttrs
   depsHash = {
-    x86_64-linux = "sha256-S2qfgaKyBSgCU6CkhLwezbgVqqqaFYAHQMCbYjwYRxY=";
-    aarch64-linux = "sha256-Ge6qfzjwdh9078LE5k9hqFMKx7yc2buoYOpB9IIBS/s=";
+    x86_64-linux = "sha256-/IpTRFBkif1HSycPrWxphKTnhL6wHgPAweyxoXZ1oVg=";
+    aarch64-linux = "sha256-uA1CHKzdBht+WYxgwR2g5t7fRybhbo6Hgpzdr+H1vqY=";
   }.${stdenv.system} or (throw "unsupported system ${stdenv.system}");
 in
 buildBazelPackage {
diff --git a/pkgs/servers/http/gatling/default.nix b/pkgs/servers/http/gatling/default.nix
index 1474232bd6243..5255010177af5 100644
--- a/pkgs/servers/http/gatling/default.nix
+++ b/pkgs/servers/http/gatling/default.nix
@@ -24,9 +24,9 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A high performance web server";
+    description = "High performance web server";
     homepage = "http://www.fefe.de/gatling/";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Only;
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/servers/http/hiawatha/default.nix b/pkgs/servers/http/hiawatha/default.nix
index d92d5d51a4f8e..f4a9277a332fa 100644
--- a/pkgs/servers/http/hiawatha/default.nix
+++ b/pkgs/servers/http/hiawatha/default.nix
@@ -1,9 +1,10 @@
 { lib, stdenv
 , fetchFromGitLab
+, callPackage
 
 , cmake
 , ninja
-, mbedtls_2
+, mbedtls
 , libxcrypt
 
 , enableCache     ? true     # Internal cache support.
@@ -16,19 +17,19 @@
 , enableToolkit   ? true     # The URL Toolkit.
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "hiawatha";
-  version = "10.11";
+  version = "11.5";
 
   src = fetchFromGitLab {
     owner = "hsleisink";
     repo = "hiawatha";
-    rev = "v${version}";
-    sha256 = "10a7dqj37zrbmgnhwsw0mqm5x25kasl8p95g01rzakviwxkdrkid";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-kswVBVL/QUQmCwH74qWwSwLz4uwDymuHIr8NokrrgEM=";
   };
 
   nativeBuildInputs = [ cmake ninja ];
-  buildInputs = [ mbedtls_2 libxcrypt ] ++ lib.optionals enableXslt [ libxslt libxml2 ];
+  buildInputs = [ mbedtls libxcrypt ] ++ lib.optionals enableXslt [ libxslt libxml2 ];
 
   prePatch = ''
     substituteInPlace CMakeLists.txt --replace SETUID ""
@@ -46,12 +47,18 @@ stdenv.mkDerivation rec {
     ( if enableToolkit   then "-DENABLE_TOOLKIT=on"     else "-DENABLE_TOOLKIT=off"     )
   ];
 
+  passthru.tests.serve-static-files = callPackage ./test.nix {
+    hiawatha = finalAttrs.finalPackage;
+    inherit enableTls;
+  };
+
   meta = with lib; {
-    homepage = "https://www.hiawatha-webserver.org";
-    description = "An advanced and secure webserver";
-    license = licenses.gpl2;
+    homepage = "https://hiawatha.leisink.net/";
+    description = "Advanced and secure webserver";
+    license = licenses.gpl2Only;
     platforms = platforms.unix;    # "Hiawatha runs perfectly on Linux, BSD and MacOS X"
+    mainProgram = "hiawatha";
     maintainers = [];
   };
 
-}
+})
diff --git a/pkgs/servers/http/hiawatha/test.nix b/pkgs/servers/http/hiawatha/test.nix
new file mode 100644
index 0000000000000..157d0ee79644d
--- /dev/null
+++ b/pkgs/servers/http/hiawatha/test.nix
@@ -0,0 +1,84 @@
+{ lib
+, stdenvNoCC
+, hiawatha
+, curl
+, mbedtls
+, enableTls
+}:
+
+stdenvNoCC.mkDerivation {
+  name = "hiawatha-test";
+
+  nativeBuildInputs = [
+    hiawatha
+    curl
+  ] ++ lib.optional enableTls mbedtls;
+
+  env = {
+    inherit enableTls;
+  };
+
+  buildCommand = ''
+    cp -r --no-preserve=mode ${hiawatha}/etc/hiawatha config
+    sed "1i set TEST_DIR = $(pwd)" $serverConfigPath > config/hiawatha.conf
+
+    mkdir www
+    echo "it works" > www/index.html
+
+    if [ -n "$enableTls" ]; then
+      echo "Generating self-signed certificate"
+      gen_key type=ec filename=server.key
+      cert_write selfsign=1 issuer_key=server.key output_file=server.crt
+      cat server.crt server.key > config/server.crt
+    fi
+
+    echo "Checking server configuration"
+    hiawatha -c ./config -k
+
+    echo "Starting server"
+    hiawatha -c ./config
+
+    testUrl() {
+      echo "Testing $1"
+      curl --verbose --insecure --fail "$1" | tee response
+      grep -q "it works" response
+    }
+
+    testUrl http://127.0.0.1:8000
+    if [ -n "$enableTls" ]; then
+      testUrl https://127.0.0.1:8443
+    fi
+
+    touch $out
+  '';
+
+  serverConfig = ''
+    # By default the server uses read-only directories like /var/lib and /etc
+    WorkDirectory = TEST_DIR
+    PIDfile = TEST_DIR/hiawatha.pid
+    SystemLogfile = TEST_DIR/system.log
+    GarbageLogfile = TEST_DIR/garbage.log
+    ExploitLogfile = TEST_DIR/exploit.log
+    AccessLogfile = TEST_DIR/access.log
+    ErrorLogfile = TEST_DIR/error.log
+
+    Binding {
+      Interface = 127.0.0.1
+      Port = 8000
+    }
+
+    ${lib.optionalString enableTls ''
+      Binding {
+        Interface = 127.0.0.1
+        Port = 8443
+        TLScertFile = TEST_DIR/config/server.crt
+      }
+    ''}
+
+    Hostname = 127.0.0.1
+    WebsiteRoot = TEST_DIR/www
+    StartFile = index.html
+  '';
+
+  passAsFile = [ "serverConfig" ];
+}
diff --git a/pkgs/servers/http/jetty/12.x.nix b/pkgs/servers/http/jetty/12.x.nix
index 19aaa867c5dfe..e35533d547a93 100644
--- a/pkgs/servers/http/jetty/12.x.nix
+++ b/pkgs/servers/http/jetty/12.x.nix
@@ -1,4 +1,4 @@
 import ./common.nix {
-  version = "12.0.8";
-  hash = "sha256-lmlt2bjomXl7UWu3FDUBSLGv0oyXV/8kPhRCtfSUW7w=";
+  version = "12.0.9";
+  hash = "sha256-+/pn6Q24QDTaK+Slr+B17fshEXXh6sO1DWRuFGfi2h0=";
 }
diff --git a/pkgs/servers/http/jetty/common.nix b/pkgs/servers/http/jetty/common.nix
index 7c35430e23c19..71f0dee030132 100644
--- a/pkgs/servers/http/jetty/common.nix
+++ b/pkgs/servers/http/jetty/common.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Web server and javax.servlet container";
+    description = "Web server and javax.servlet container";
     homepage = "https://eclipse.dev/jetty/";
     platforms = platforms.all;
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
diff --git a/pkgs/servers/http/lighttpd/default.nix b/pkgs/servers/http/lighttpd/default.nix
index 65bafdac11207..28e5af7a44d69 100644
--- a/pkgs/servers/http/lighttpd/default.nix
+++ b/pkgs/servers/http/lighttpd/default.nix
@@ -1,5 +1,4 @@
 { lib, stdenv, buildPackages, fetchurl, pkg-config, pcre2, libxml2, zlib, bzip2, which, file
-, fetchpatch
 , openssl
 , enableDbi ? false, libdbi
 , enableMagnet ? false, lua5_1
@@ -8,7 +7,7 @@
 , enablePam ? false, linux-pam
 , enableSasl ? false, cyrus_sasl
 , enableWebDAV ? false, sqlite, libuuid
-, enableExtendedAttrs ? false, attr
+, enableExtendedAttrs ? false
 , perl
 , nixosTests
 }:
diff --git a/pkgs/servers/http/lwan/default.nix b/pkgs/servers/http/lwan/default.nix
index bc155d353b9fe..14346530571ec 100644
--- a/pkgs/servers/http/lwan/default.nix
+++ b/pkgs/servers/http/lwan/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
       support.
     ";
     homepage = "https://lwan.ws/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ leenaars ];
   };
diff --git a/pkgs/servers/http/micro-httpd/default.nix b/pkgs/servers/http/micro-httpd/default.nix
index b4a555910545d..2ab1597902666 100644
--- a/pkgs/servers/http/micro-httpd/default.nix
+++ b/pkgs/servers/http/micro-httpd/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage    = "http://acme.com/software/micro_httpd/";
-    description = "A really small HTTP server";
+    description = "Really small HTTP server";
     license     = licenses.bsd2;
     platforms   = platforms.unix;
     maintainers = with maintainers; [ copumpkin ];
diff --git a/pkgs/servers/http/nginx/generic.nix b/pkgs/servers/http/nginx/generic.nix
index e998675b57664..5757b3255b8fe 100644
--- a/pkgs/servers/http/nginx/generic.nix
+++ b/pkgs/servers/http/nginx/generic.nix
@@ -4,6 +4,8 @@ outer@{ lib, stdenv, fetchurl, fetchpatch, openssl, zlib, pcre, libxml2, libxslt
 , nixosTests
 , installShellFiles, substituteAll, removeReferencesTo, gd, geoip, perl
 , withDebug ? false
+, withGeoIP ? false
+, withImageFilter ? false
 , withKTLS ? true
 , withStream ? true
 , withMail ? false
@@ -64,9 +66,11 @@ stdenv.mkDerivation {
     removeReferencesTo
   ] ++ nativeBuildInputs;
 
-  buildInputs = [ openssl zlib pcre libxml2 libxslt gd geoip perl ]
+  buildInputs = [ openssl zlib pcre libxml2 libxslt perl ]
     ++ buildInputs
-    ++ mapModules "inputs";
+    ++ mapModules "inputs"
+    ++ lib.optional withGeoIP geoip
+    ++ lib.optional withImageFilter gd;
 
   configureFlags = [
     "--sbin-path=bin/nginx"
@@ -112,10 +116,9 @@ stdenv.mkDerivation {
     "--with-http_perl_module"
     "--with-perl=${perl}/bin/perl"
     "--with-perl_modules_path=lib/perl5"
-  ] ++ lib.optional withSlice "--with-http_slice_module"
-    ++ lib.optional (gd != null) "--with-http_image_filter_module"
-    ++ lib.optional (geoip != null) "--with-http_geoip_module"
-    ++ lib.optional (withStream && geoip != null) "--with-stream_geoip_module"
+  ] ++ lib.optional withImageFilter "--with-http_image_filter_module"
+    ++ lib.optional withSlice "--with-http_slice_module"
+    ++ lib.optionals withGeoIP ([ "--with-http_geoip_module" ] ++ lib.optional withStream "--with-stream_geoip_module")
     ++ lib.optional (with stdenv.hostPlatform; isLinux || isFreeBSD) "--with-file-aio"
     ++ configureFlags
     ++ map (mod: "--add-module=${mod.src}") modules;
@@ -130,6 +133,9 @@ stdenv.mkDerivation {
     "-Wno-error=deprecated-declarations"
     "-Wno-error=gnu-folding-constant"
     "-Wno-error=unused-but-set-variable"
+  ] ++ lib.optionals stdenv.hostPlatform.isMusl [
+    # fix sys/cdefs.h is deprecated
+    "-Wno-error=cpp"
   ]);
 
   configurePlatforms = [];
@@ -199,7 +205,7 @@ stdenv.mkDerivation {
   };
 
   meta = if meta != null then meta else with lib; {
-    description = "A reverse proxy and lightweight webserver";
+    description = "Reverse proxy and lightweight webserver";
     mainProgram = "nginx";
     homepage    = "http://nginx.org";
     license     = [ licenses.bsd2 ]
diff --git a/pkgs/servers/http/nginx/mainline.nix b/pkgs/servers/http/nginx/mainline.nix
index ddb9c14740bb0..669eb65323642 100644
--- a/pkgs/servers/http/nginx/mainline.nix
+++ b/pkgs/servers/http/nginx/mainline.nix
@@ -1,6 +1,6 @@
 { callPackage, ... }@args:
 
 callPackage ./generic.nix args {
-  version = "1.25.4";
-  hash = "sha256-dgcpkBrLqlF5luaB7m6iWQMpheN8J2i+74DfOod97tk=";
+  version = "1.27.0";
+  hash = "sha256-tyMOPPh+qi1LC8VqrckgqWDHhzuZkaG2b/zAj8ZQEpw=";
 }
diff --git a/pkgs/servers/http/nginx/modules.nix b/pkgs/servers/http/nginx/modules.nix
index 4d8a1daa81cbc..f06b5b9426f21 100644
--- a/pkgs/servers/http/nginx/modules.nix
+++ b/pkgs/servers/http/nginx/modules.nix
@@ -3,7 +3,6 @@
 , fetchFromGitHub
 , fetchFromGitLab
 , fetchhg
-, fetchpatch
 , runCommand
 
 , arpa2common
diff --git a/pkgs/servers/http/nginx/stable.nix b/pkgs/servers/http/nginx/stable.nix
index cc6a521af6626..3a6a049c12069 100644
--- a/pkgs/servers/http/nginx/stable.nix
+++ b/pkgs/servers/http/nginx/stable.nix
@@ -1,6 +1,6 @@
 { callPackage, ... } @ args:
 
 callPackage ./generic.nix args {
-  version = "1.26.0";
-  hash = "sha256-0ubIQ51sbbUBXY6qskcKtSrvhae/NjGCh5l34IQ3BJc=";
+  version = "1.26.1";
+  hash = "sha256-+Rh0aP8usVkmC/1Thnwl/44zRyYjes8ie56HDlPT42s=";
 }
diff --git a/pkgs/servers/http/nix-binary-cache/default.nix b/pkgs/servers/http/nix-binary-cache/default.nix
index 4f26610e10cfa..393415ae61e25 100644
--- a/pkgs/servers/http/nix-binary-cache/default.nix
+++ b/pkgs/servers/http/nix-binary-cache/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A set of scripts to serve the Nix store as a binary cache";
+    description = "Set of scripts to serve the Nix store as a binary cache";
     longDescription = ''
       This package installs a CGI script that serves Nix store path in the
       binary cache format. It also installs a launcher called
diff --git a/pkgs/servers/http/openresty/default.nix b/pkgs/servers/http/openresty/default.nix
index 87cd8e4c53e3f..48d43dfe647fa 100644
--- a/pkgs/servers/http/openresty/default.nix
+++ b/pkgs/servers/http/openresty/default.nix
@@ -51,10 +51,10 @@ callPackage ../nginx/generic.nix args rec {
   };
 
   meta = {
-    description = "A fast web application server built on Nginx";
+    description = "Fast web application server built on Nginx";
     homepage = "https://openresty.org";
     license = lib.licenses.bsd2;
     platforms = lib.platforms.all;
-    maintainers = with lib.maintainers; [ thoughtpolice lblasc emily ];
+    maintainers = with lib.maintainers; [ thoughtpolice lblasc ];
   };
 }
diff --git a/pkgs/servers/http/pomerium/external-envoy.diff b/pkgs/servers/http/pomerium/0001-envoy-allow-specification-of-external-binary.patch
index 49f4985ad77c3..d595dc6ccae29 100644
--- a/pkgs/servers/http/pomerium/external-envoy.diff
+++ b/pkgs/servers/http/pomerium/0001-envoy-allow-specification-of-external-binary.patch
@@ -1,5 +1,14 @@
+From fa51c56049a99ef17d86b0327bcf66f47338da45 Mon Sep 17 00:00:00 2001
+From: Morgan Helton <mhelton@gmail.com>
+Date: Sun, 26 May 2024 12:17:01 -0500
+Subject: [PATCH] envoy: allow specification of external binary
+
+---
+ pkg/envoy/envoy.go | 17 ++++++++++-------
+ 1 file changed, 10 insertions(+), 7 deletions(-)
+
 diff --git a/pkg/envoy/envoy.go b/pkg/envoy/envoy.go
-index e32cfc29..9d32c057 100644
+index 62f2d34c..879001cd 100644
 --- a/pkg/envoy/envoy.go
 +++ b/pkg/envoy/envoy.go
 @@ -8,9 +8,9 @@ import (
@@ -13,7 +22,7 @@ index e32cfc29..9d32c057 100644
  	"path/filepath"
  	"regexp"
  	"strconv"
-@@ -36,8 +36,12 @@ import (
+@@ -34,8 +34,12 @@ import (
  
  const (
  	configFileName = "envoy-config.yaml"
@@ -25,15 +34,18 @@ index e32cfc29..9d32c057 100644
 +
  type serverOptions struct {
  	services string
- 	logLevel string
-@@ -60,13 +64,16 @@ type Server struct {
+ 	logLevel config.LogLevel
+@@ -58,17 +62,16 @@ type Server struct {
  
  // NewServer creates a new server with traffic routed by envoy.
  func NewServer(ctx context.Context, src config.Source, builder *envoyconfig.Builder) (*Server, error) {
--	envoyPath, err := Extract()
+-	if err := preserveRlimitNofile(); err != nil {
+-		log.Debug(ctx).Err(err).Msg("couldn't preserve RLIMIT_NOFILE before starting Envoy")
+-	}
 +	envoyPath := OverrideEnvoyPath
 +	wd := filepath.Join(os.TempDir(), workingDirectoryName)
-+
+ 
+-	envoyPath, err := Extract()
 +	err := os.MkdirAll(wd, embeddedEnvoyPermissions)
  	if err != nil {
 -		return nil, fmt.Errorf("extracting envoy: %w", err)
@@ -46,3 +58,6 @@ index e32cfc29..9d32c057 100644
  		builder:   builder,
  		grpcPort:  src.GetConfig().GRPCPort,
  		httpPort:  src.GetConfig().HTTPPort,
+-- 
+2.44.1
+
diff --git a/pkgs/servers/http/pomerium/default.nix b/pkgs/servers/http/pomerium/default.nix
index 6fe47f9853929..bd8873ce100e7 100644
--- a/pkgs/servers/http/pomerium/default.nix
+++ b/pkgs/servers/http/pomerium/default.nix
@@ -1,6 +1,5 @@
 { buildGoModule
 , fetchFromGitHub
-, callPackage
 , lib
 , envoy
 , mkYarnPackage
@@ -14,15 +13,15 @@ let
 in
 buildGoModule rec {
   pname = "pomerium";
-  version = "0.25.2";
+  version = "0.26.0";
   src = fetchFromGitHub {
     owner = "pomerium";
     repo = "pomerium";
     rev = "v${version}";
-    hash = "sha256-JateIiVao5IiPXmphA5+PlzB2XtP6zRR4rURqXSqJ6Q=";
+    hash = "sha256-AkpfLKPirl8fz4s0hQI15aSgI2PZFPakAzC+j66MVY0=";
   };
 
-  vendorHash = "sha256-GdeZkKkENacc11FmEAFUfX9efInfhpv2Lz0/3CtixFQ=";
+  vendorHash = "sha256-kabWL7yqNkI2JRPmVv0tp0nIfVDwT9QbbDIbdM8sL5s=";
 
   ui = mkYarnPackage {
     inherit version;
@@ -54,7 +53,9 @@ buildGoModule rec {
   ];
 
   # patch pomerium to allow use of external envoy
-  patches = [ ./external-envoy.diff ];
+  patches = [
+    ./0001-envoy-allow-specification-of-external-binary.patch
+  ];
 
   ldflags = let
     # Set a variety of useful meta variables for stamping the build with.
diff --git a/pkgs/servers/http/pomerium/package.json b/pkgs/servers/http/pomerium/package.json
index 4f81e118d85a5..59e65c4fcbaa6 100644
--- a/pkgs/servers/http/pomerium/package.json
+++ b/pkgs/servers/http/pomerium/package.json
@@ -29,21 +29,21 @@
     "@fontsource/dm-sans": "^5.0.13",
     "@mui/icons-material": "^5.14.9",
     "@mui/material": "^5.4.0",
-    "luxon": "^2.5.2",
+    "lodash": "^4.17.21",
     "markdown-to-jsx": "^7.2.1",
     "react": "^17.0.2",
     "react-dom": "^17.0.2",
     "react-feather": "^2.0.10"
   },
   "devDependencies": {
-    "@trivago/prettier-plugin-sort-imports": "2.0.4",
-    "@types/luxon": "^2.0.9",
-    "@types/node": "^17.0.14",
+    "@trivago/prettier-plugin-sort-imports": "^4.2.1",
+    "@types/lodash": "^4.17.1",
+    "@types/node": "^20.12.11",
     "@types/react": "^17.0.34",
     "@types/react-dom": "^17.0.11",
     "@typescript-eslint/eslint-plugin": "^5.10.2",
     "@typescript-eslint/parser": "^5.59.11",
-    "esbuild": "^0.13.12",
+    "esbuild": "^0.21.1",
     "eslint": "7.32.0",
     "eslint-config-prettier": "^8.3.0",
     "eslint-plugin-react": "^7.28.0",
diff --git a/pkgs/servers/http/pomerium/yarn-hash b/pkgs/servers/http/pomerium/yarn-hash
index 71760c6384c7f..a631334cc391c 100644
--- a/pkgs/servers/http/pomerium/yarn-hash
+++ b/pkgs/servers/http/pomerium/yarn-hash
@@ -1 +1 @@
-1cjwkdvg9rfp55674gns44xwi32ws8z57sa4ffb0zzgdgy2yx2zm
+1xkn1zbhg4q35azlhcgc1bk1sykrawngq1fcb5r5ghgh3m2kmz76
diff --git a/pkgs/servers/http/redstore/default.nix b/pkgs/servers/http/redstore/default.nix
index 869f2c1f3b04e..321f91770c7cc 100644
--- a/pkgs/servers/http/redstore/default.nix
+++ b/pkgs/servers/http/redstore/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "An HTTP interface to Redland RDF store";
+    description = "HTTP interface to Redland RDF store";
     mainProgram = "redstore";
     homepage = "https://www.aelius.com/njh/redstore/";
     maintainers = [ lib.maintainers.raskin ];
diff --git a/pkgs/servers/http/router/default.nix b/pkgs/servers/http/router/default.nix
index f4903b2f31f7c..7cd2a604fc37b 100644
--- a/pkgs/servers/http/router/default.nix
+++ b/pkgs/servers/http/router/default.nix
@@ -40,7 +40,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A configurable, high-performance routing runtime for Apollo Federation";
+    description = "Configurable, high-performance routing runtime for Apollo Federation";
     homepage = "https://www.apollographql.com/docs/router/";
     license = licenses.elastic20;
     maintainers = [ maintainers.bbigras ];
diff --git a/pkgs/servers/http/router/librusty_v8.nix b/pkgs/servers/http/router/librusty_v8.nix
index 1d5e334f2d07b..82cdb5e1575ee 100644
--- a/pkgs/servers/http/router/librusty_v8.nix
+++ b/pkgs/servers/http/router/librusty_v8.nix
@@ -1,11 +1,14 @@
-{ stdenv, fetchurl }:
+{ lib, stdenv, fetchurl }:
 
 let
   fetch_librusty_v8 = args: fetchurl {
     name = "librusty_v8-${args.version}";
     url = "https://github.com/denoland/rusty_v8/releases/download/v${args.version}/librusty_v8_release_${stdenv.hostPlatform.rust.rustcTarget}.a";
     sha256 = args.shas.${stdenv.hostPlatform.system};
-    meta = { inherit (args) version; };
+    meta = {
+      inherit (args) version;
+      sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+    };
   };
 in
 fetch_librusty_v8 {
diff --git a/pkgs/servers/http/showoff/default.nix b/pkgs/servers/http/showoff/default.nix
index ecfd034e05b36..c3deae28ec0e2 100644
--- a/pkgs/servers/http/showoff/default.nix
+++ b/pkgs/servers/http/showoff/default.nix
@@ -8,7 +8,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "showoff";
 
   meta = with lib; {
-    description = "A slideshow presentation tool with a twist";
+    description = "Slideshow presentation tool with a twist";
     longDescription = "It runs as a web application, with audience interactivity features. This means that your audience can follow along in their own browsers, can download supplemental materials, can participate in quizzes or polls, post questions for the presenter, etc. By default, their slideshows will synchronize with the presenter, but they can switch to self-navigation mode";
     homepage = "https://puppetlabs.github.io/showoff/";
     license = with licenses; mit;
diff --git a/pkgs/servers/http/tengine/default.nix b/pkgs/servers/http/tengine/default.nix
index 591f180893b32..d36071de21420 100644
--- a/pkgs/servers/http/tengine/default.nix
+++ b/pkgs/servers/http/tengine/default.nix
@@ -117,7 +117,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "A web server based on Nginx and has many advanced features, originated by Taobao";
+    description = "Web server based on Nginx and has many advanced features, originated by Taobao";
     mainProgram = "nginx";
     homepage    = "https://tengine.taobao.org";
     license     = licenses.bsd2;
diff --git a/pkgs/servers/http/tomcat/default.nix b/pkgs/servers/http/tomcat/default.nix
index 82fc547b5da9d..b2ec04f10f9d3 100644
--- a/pkgs/servers/http/tomcat/default.nix
+++ b/pkgs/servers/http/tomcat/default.nix
@@ -29,7 +29,7 @@ let
 
     meta = with lib; {
       homepage = "https://tomcat.apache.org/";
-      description = "An implementation of the Java Servlet and JavaServer Pages technologies";
+      description = "Implementation of the Java Servlet and JavaServer Pages technologies";
       platforms = jre.meta.platforms;
       maintainers = with maintainers; [ anthonyroussel ];
       license = [ licenses.asl20 ];
diff --git a/pkgs/servers/http/tomcat/tomcat-native.nix b/pkgs/servers/http/tomcat/tomcat-native.nix
index 84e5cecf1e5e0..31d2889995cfa 100644
--- a/pkgs/servers/http/tomcat/tomcat-native.nix
+++ b/pkgs/servers/http/tomcat/tomcat-native.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An optional component for use with Apache Tomcat that allows Tomcat to use certain native resources for performance, compatibility, etc";
+    description = "Optional component for use with Apache Tomcat that allows Tomcat to use certain native resources for performance, compatibility, etc";
     homepage = "https://tomcat.apache.org/native-doc/";
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/pkgs/servers/http/webfs/default.nix b/pkgs/servers/http/webfs/default.nix
index 812f5a0d00f5a..e8552b4b57c38 100644
--- a/pkgs/servers/http/webfs/default.nix
+++ b/pkgs/servers/http/webfs/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "HTTP server for purely static content";
     homepage    = "http://linux.bytesex.org/misc/webfs.html";
-    license     = licenses.gpl2;
+    license     = licenses.gpl2Plus;
     platforms   = platforms.all;
     maintainers = with maintainers; [ zimbatm ];
     mainProgram = "webfsd";
diff --git a/pkgs/servers/http/yaws/default.nix b/pkgs/servers/http/yaws/default.nix
index 5e5a401d35d2a..ad096299c44f3 100644
--- a/pkgs/servers/http/yaws/default.nix
+++ b/pkgs/servers/http/yaws/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A webserver for dynamic content written in Erlang.";
+    description = "Webserver for dynamic content written in Erlang";
     mainProgram = "yaws";
     homepage = "https://github.com/erlyaws/yaws";
     license = licenses.bsd2;
diff --git a/pkgs/servers/icecast/default.nix b/pkgs/servers/icecast/default.nix
index de375bb51841f..488c96a52123f 100644
--- a/pkgs/servers/icecast/default.nix
+++ b/pkgs/servers/icecast/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     '';
 
     homepage = "https://www.icecast.org";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ jcumming ];
     platforms = with lib.platforms; unix;
   };
diff --git a/pkgs/servers/icecream/default.nix b/pkgs/servers/icecream/default.nix
index e6691e29aa126..20c782e702382 100644
--- a/pkgs/servers/icecream/default.nix
+++ b/pkgs/servers/icecream/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Distributed compiler with a central scheduler to share build load";
     inherit (src.meta) homepage;
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ emantor ];
     platforms = with platforms; linux ++ darwin;
   };
diff --git a/pkgs/servers/identd/nullidentdmod/default.nix b/pkgs/servers/identd/nullidentdmod/default.nix
index c027e143b5031..7df6eac5fb0d6 100644
--- a/pkgs/servers/identd/nullidentdmod/default.nix
+++ b/pkgs/servers/identd/nullidentdmod/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Simple identd that just replies with a random string or customized userid";
     mainProgram = "nullidentdmod";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     homepage = "http://acidhub.click/NullidentdMod";
     maintainers = with maintainers; [ das_j ];
     platforms = platforms.linux; # Must be run by systemd
diff --git a/pkgs/servers/identd/oidentd/default.nix b/pkgs/servers/identd/oidentd/default.nix
index 510834ed282f7..4d3c03d90564e 100644
--- a/pkgs/servers/identd/oidentd/default.nix
+++ b/pkgs/servers/identd/oidentd/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     description = "Configurable Ident protocol server";
     mainProgram = "oidentd";
     homepage = "https://oidentd.janikrabe.com/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/servers/invidious/default.nix b/pkgs/servers/invidious/default.nix
index 716df10078313..0cd88f4ffa92c 100644
--- a/pkgs/servers/invidious/default.nix
+++ b/pkgs/servers/invidious/default.nix
@@ -120,7 +120,7 @@ crystal.buildCrystalPackage rec {
   };
 
   meta = with lib; {
-    description = "An open source alternative front-end to YouTube";
+    description = "Open source alternative front-end to YouTube";
     mainProgram = "invidious";
     homepage = "https://invidious.io/";
     license = licenses.agpl3Plus;
diff --git a/pkgs/servers/irc/atheme/default.nix b/pkgs/servers/irc/atheme/default.nix
index 3df18bbe0c978..fd4f4773d7292 100644
--- a/pkgs/servers/irc/atheme/default.nix
+++ b/pkgs/servers/irc/atheme/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A set of services for IRC networks";
+    description = "Set of services for IRC networks";
     homepage = "https://atheme.github.io/";
     license = licenses.isc;
     platforms = platforms.unix;
diff --git a/pkgs/servers/irc/charybdis/default.nix b/pkgs/servers/irc/charybdis/default.nix
index 37d5b299837d1..387914e8a6abd 100644
--- a/pkgs/servers/irc/charybdis/default.nix
+++ b/pkgs/servers/irc/charybdis/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "IRCv3 server designed to be highly scalable";
     homepage    = "https://github.com/charybdis-ircd/charybdis";
-    license     = licenses.gpl2;
+    license     = licenses.gpl2Plus;
     maintainers = with maintainers; [ lassulus ];
     platforms   = platforms.unix;
   };
diff --git a/pkgs/servers/irc/ergochat/default.nix b/pkgs/servers/irc/ergochat/default.nix
index 260f69b8052f2..a705ed4483a01 100644
--- a/pkgs/servers/irc/ergochat/default.nix
+++ b/pkgs/servers/irc/ergochat/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
 
   meta = {
     changelog = "https://github.com/ergochat/ergo/blob/v${version}/CHANGELOG.md";
-    description = "A modern IRC server (daemon/ircd) written in Go";
+    description = "Modern IRC server (daemon/ircd) written in Go";
     mainProgram = "ergo";
     homepage = "https://github.com/ergochat/ergo";
     license = lib.licenses.mit;
diff --git a/pkgs/servers/irc/inspircd/default.nix b/pkgs/servers/irc/inspircd/default.nix
index 68dbbeacb07f3..578c9aa314413 100644
--- a/pkgs/servers/irc/inspircd/default.nix
+++ b/pkgs/servers/irc/inspircd/default.nix
@@ -204,7 +204,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "A modular C++ IRC server";
+    description = "Modular C++ IRC server";
     license = [ lib.licenses.gpl2Only ]
       ++ lib.concatMap getLicenses extraInputs
       ++ lib.optionals (anyMembers extraModules libcModules) (getLicenses stdenv.cc.libc)
diff --git a/pkgs/servers/irc/ircd-hybrid/default.nix b/pkgs/servers/irc/ircd-hybrid/default.nix
index cda989b8bef9c..a5e73a3019783 100644
--- a/pkgs/servers/irc/ircd-hybrid/default.nix
+++ b/pkgs/servers/irc/ircd-hybrid/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   postInstall = "echo postinstall; mkdir -p \${out}/ ; rm -rf \${out}/logs ; ln -s /home/ircd \${out}/logs;";
 
   meta = {
-    description = "An IPv6-capable IRC server";
+    description = "IPv6-capable IRC server";
     platforms = lib.platforms.unix;
     homepage = "https://www.ircd-hybrid.org/";
   };
diff --git a/pkgs/servers/irc/ngircd/default.nix b/pkgs/servers/irc/ngircd/default.nix
index caff85394f2ed..53afea069fea5 100644
--- a/pkgs/servers/irc/ngircd/default.nix
+++ b/pkgs/servers/irc/ngircd/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     description = "Next Generation IRC Daemon";
     mainProgram = "ngircd";
     homepage    = "https://ngircd.barton.de";
-    license     = lib.licenses.gpl2;
+    license     = lib.licenses.gpl2Plus;
     platforms   = lib.platforms.all;
   };
 }
diff --git a/pkgs/servers/irc/solanum/default.nix b/pkgs/servers/irc/solanum/default.nix
index 14924e6656c97..cb4f009e5c7f9 100644
--- a/pkgs/servers/irc/solanum/default.nix
+++ b/pkgs/servers/irc/solanum/default.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
   enableParallelInstalling = false;
 
   meta = with lib; {
-    description = "An IRCd for unified networks";
+    description = "IRCd for unified networks";
     homepage = "https://github.com/solanum-ircd/solanum";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ hexa ];
diff --git a/pkgs/servers/isso/default.nix b/pkgs/servers/isso/default.nix
index f7cedae7cf1c3..6d5de7429be1c 100644
--- a/pkgs/servers/isso/default.nix
+++ b/pkgs/servers/isso/default.nix
@@ -68,7 +68,7 @@ buildPythonApplication rec {
   passthru.tests = { inherit (nixosTests) isso; };
 
   meta = with lib; {
-    description = "A commenting server similar to Disqus";
+    description = "Commenting server similar to Disqus";
     mainProgram = "isso";
     homepage = "https://posativ.org/isso/";
     license = licenses.mit;
diff --git a/pkgs/servers/jackett/default.nix b/pkgs/servers/jackett/default.nix
index 64524dd533097..06c1df68e3e2a 100644
--- a/pkgs/servers/jackett/default.nix
+++ b/pkgs/servers/jackett/default.nix
@@ -9,13 +9,13 @@
 
 buildDotnetModule rec {
   pname = "jackett";
-  version = "0.21.2586";
+  version = "0.21.2831";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha512-W3ZBgRSNLaUoJh4twjmh04SO/wWqZg8eGFORveU8H7iBCHFUjJqwpbDf9f0Oq0q+h318PLFtrD22HuaXgX6+pg==";
+    hash = "sha512-Ka993M45A9RYs6txl3gxhoq8c/vKRJzeLP2Ycx2L9uiNPWFsKlDwDr2rPLvZ9H0soZJs7sjeBAt0RFHSAlSvBg==";
   };
 
   projectFile = "src/Jackett.Server/Jackett.Server.csproj";
diff --git a/pkgs/servers/jackett/deps.nix b/pkgs/servers/jackett/deps.nix
index eeee5e8134428..d61e6bea2717d 100644
--- a/pkgs/servers/jackett/deps.nix
+++ b/pkgs/servers/jackett/deps.nix
@@ -186,8 +186,8 @@
   (fetchNuGet { pname = "NUnit"; version = "3.14.0"; sha256 = "19p8911lrfds1k9rv47jk1bbn665s0pvghkd06gzbg78j6mzzqqa"; })
   (fetchNuGet { pname = "NUnit.ConsoleRunner"; version = "3.17.0"; sha256 = "0qjnvgib96n9a9x8n7vwkypjvvgpimvl8zrkr90qbcygf3yzhrv8"; })
   (fetchNuGet { pname = "NUnit3TestAdapter"; version = "4.5.0"; sha256 = "1srx1629s0k1kmf02nmz251q07vj6pv58mdafcr5dr0bbn1fh78i"; })
-  (fetchNuGet { pname = "Polly"; version = "8.3.1"; sha256 = "19q7s493sv90879052pxfcbsk3bmxjg5688ya7l12964ddafiwsl"; })
-  (fetchNuGet { pname = "Polly.Core"; version = "8.3.1"; sha256 = "15ylkqdcwpr76n0nfzpvd6s00ywjagn1ignyrcz9arwahrxpsm4b"; })
+  (fetchNuGet { pname = "Polly"; version = "8.4.0"; sha256 = "1zpq6590zpj3sibdhrn3fydqrm9ga43xdxvjv3rwzhigrkddg9zl"; })
+  (fetchNuGet { pname = "Polly.Core"; version = "8.4.0"; sha256 = "1gp66r03zqvwwr4nw96n49bfv08bk54qpdbiqgxg93yhfsbsmkg8"; })
   (fetchNuGet { pname = "SharpZipLib"; version = "1.4.2"; sha256 = "0ijrzz2szxjmv2cipk7rpmg14dfaigdkg7xabjvb38ih56m9a27y"; })
   (fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
   (fetchNuGet { pname = "System.Buffers"; version = "4.4.0"; sha256 = "183f8063w8zqn99pv0ni0nnwh7fgx46qzxamwnans55hhs2l0g19"; })
diff --git a/pkgs/servers/jicofo/default.nix b/pkgs/servers/jicofo/default.nix
index f80487801be90..74751e8097ae8 100644
--- a/pkgs/servers/jicofo/default.nix
+++ b/pkgs/servers/jicofo/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation {
   passthru.updateScript = ./update.sh;
 
   meta = with lib; {
-    description = "A server side focus component used in Jitsi Meet conferences";
+    description = "Server side focus component used in Jitsi Meet conferences";
     mainProgram = "jicofo";
     longDescription = ''
       JItsi COnference FOcus is a server side focus component used in Jitsi Meet conferences.
diff --git a/pkgs/servers/jigasi/default.nix b/pkgs/servers/jigasi/default.nix
index b1c646db58461..28204cb1384e5 100644
--- a/pkgs/servers/jigasi/default.nix
+++ b/pkgs/servers/jigasi/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation {
   };
 
   meta = with lib; {
-    description = "A server-side application that allows regular SIP clients to join Jitsi Meet conferences";
+    description = "Server-side application that allows regular SIP clients to join Jitsi Meet conferences";
     mainProgram = "jigasi";
     longDescription = ''
       Jitsi Gateway to SIP: a server-side application that allows regular SIP clients to join Jitsi Meet conferences hosted by Jitsi Videobridge.
diff --git a/pkgs/servers/jitsi-videobridge/default.nix b/pkgs/servers/jitsi-videobridge/default.nix
index fa17c97642159..14437997ec7b5 100644
--- a/pkgs/servers/jitsi-videobridge/default.nix
+++ b/pkgs/servers/jitsi-videobridge/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation {
   passthru.updateScript = ./update.sh;
 
   meta = with lib; {
-    description = "A WebRTC compatible video router";
+    description = "WebRTC compatible video router";
     longDescription = ''
       Jitsi Videobridge is an XMPP server component that allows for multiuser video communication.
       Unlike the expensive dedicated hardware videobridges, Jitsi Videobridge does not mix the video
diff --git a/pkgs/servers/keycloak/default.nix b/pkgs/servers/keycloak/default.nix
index 1792b51abf8d6..743607a3f4718 100644
--- a/pkgs/servers/keycloak/default.nix
+++ b/pkgs/servers/keycloak/default.nix
@@ -18,11 +18,11 @@ let
   '';
 in stdenv.mkDerivation rec {
   pname = "keycloak";
-  version = "24.0.4";
+  version = "24.0.5";
 
   src = fetchzip {
     url = "https://github.com/keycloak/keycloak/releases/download/${version}/keycloak-${version}.zip";
-    hash = "sha256-tqY3rYFRsRpbvms8DVtCp8nXl0hlX1CzuOVFCE+23o4=";
+    hash = "sha256-lf1miVEGQvPbmlOZMCXUyX/pKE+JoJFawhjVEPJDJ6s=";
   };
 
   nativeBuildInputs = [ makeWrapper jre ];
diff --git a/pkgs/servers/keycloak/keycloak-restrict-client-auth/default.nix b/pkgs/servers/keycloak/keycloak-restrict-client-auth/default.nix
index 16d37617336c0..08c95f2bacbc3 100644
--- a/pkgs/servers/keycloak/keycloak-restrict-client-auth/default.nix
+++ b/pkgs/servers/keycloak/keycloak-restrict-client-auth/default.nix
@@ -21,7 +21,7 @@ maven.buildMavenPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/sventorben/keycloak-restrict-client-auth";
-    description = "A Keycloak authenticator to restrict authorization on clients";
+    description = "Keycloak authenticator to restrict authorization on clients";
     license = licenses.mit;
     maintainers = with maintainers; [ leona ];
   };
diff --git a/pkgs/servers/keycloak/scim-for-keycloak/default.nix b/pkgs/servers/keycloak/scim-for-keycloak/default.nix
index 81686d2be1d95..88c20e05123e1 100644
--- a/pkgs/servers/keycloak/scim-for-keycloak/default.nix
+++ b/pkgs/servers/keycloak/scim-for-keycloak/default.nix
@@ -22,7 +22,7 @@ maven.buildMavenPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/Captain-P-Goldfish/scim-for-keycloak";
-    description = "A third party module that extends Keycloak with SCIM functionality";
+    description = "Third party module that extends Keycloak with SCIM functionality";
     sourceProvenance = with sourceTypes; [
       fromSource
       binaryBytecode  # dependencies
diff --git a/pkgs/servers/keycloak/scim-keycloak-user-storage-spi/default.nix b/pkgs/servers/keycloak/scim-keycloak-user-storage-spi/default.nix
index 6ecd3866b0960..8da97cca54956 100644
--- a/pkgs/servers/keycloak/scim-keycloak-user-storage-spi/default.nix
+++ b/pkgs/servers/keycloak/scim-keycloak-user-storage-spi/default.nix
@@ -22,7 +22,7 @@ maven.buildMavenPackage {
 
   meta = with lib; {
     homepage = "https://github.com/justin-stephenson/scim-keycloak-user-storage-spi";
-    description = "A third party module that extends Keycloak, allow for user storage in an external scimv2 server";
+    description = "Third party module that extends Keycloak, allow for user storage in an external scimv2 server";
     sourceProvenance = with sourceTypes; [
       fromSource
     ];
diff --git a/pkgs/servers/klipper/default.nix b/pkgs/servers/klipper/default.nix
index cb8e81a6853c7..69288124e3207 100644
--- a/pkgs/servers/klipper/default.nix
+++ b/pkgs/servers/klipper/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "klipper";
-  version = "0.12.0-unstable-2024-05-16";
+  version = "0.12.0-unstable-2024-06-05";
 
   src = fetchFromGitHub {
     owner = "KevinOConnor";
     repo = "klipper";
-    rev = "b7f7b8a346388cc32d80b6e6f60e5fdb4cbd3ce6";
-    sha256 = "sha256-TkhDLy7H1U2tjLJikkOgP+2apRJtZe9EIsNHzzljiB4=";
+    rev = "49c0ad6369670da574f550aa878ce9f6e1899e74";
+    sha256 = "sha256-9kzOIv5FS0+FqgrMD2rtWoX1ZbidOfrh6pOalru8HWo=";
   };
 
   sourceRoot = "${src.name}/klippy";
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "The Klipper 3D printer firmware";
+    description = "Klipper 3D printer firmware";
     mainProgram = "klippy";
     homepage = "https://github.com/KevinOConnor/klipper";
     maintainers = with maintainers; [ lovesegfault zhaofengli cab404 ];
diff --git a/pkgs/servers/kubemq-community/default.nix b/pkgs/servers/kubemq-community/default.nix
index 6fb080623a56e..0c90536f75c59 100644
--- a/pkgs/servers/kubemq-community/default.nix
+++ b/pkgs/servers/kubemq-community/default.nix
@@ -20,7 +20,7 @@ buildGoModule rec {
 
   meta = {
     homepage = "https://github.com/kubemq-io/kubemq-community";
-    description = "KubeMQ Community is the open-source version of KubeMQ, the Kubernetes native message broker.";
+    description = "KubeMQ Community is the open-source version of KubeMQ, the Kubernetes native message broker";
     mainProgram = "kubemq-community";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ brianmcgee ];
diff --git a/pkgs/servers/kwakd/default.nix b/pkgs/servers/kwakd/default.nix
index fc0cdc43831d5..41898502fd010 100644
--- a/pkgs/servers/kwakd/default.nix
+++ b/pkgs/servers/kwakd/default.nix
@@ -20,9 +20,9 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A super small webserver that serves blank pages";
+    description = "Super small webserver that serves blank pages";
     mainProgram = "kwakd";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = [ maintainers.nicknovitski ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/servers/ldap/389/default.nix b/pkgs/servers/ldap/389/default.nix
index ce61f9676e188..c49f606c8fd7c 100644
--- a/pkgs/servers/ldap/389/default.nix
+++ b/pkgs/servers/ldap/389/default.nix
@@ -31,26 +31,35 @@
 , withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd, systemd
 , zlib
 , rsync
+, fetchpatch
 , withCockpit ? true
 , withAsan ? false
 }:
 
 stdenv.mkDerivation rec {
   pname = "389-ds-base";
-  version = "2.4.3";
+  version = "2.4.5";
 
   src = fetchFromGitHub {
     owner = "389ds";
     repo = pname;
     rev = "${pname}-${version}";
-    hash = "sha256-bUjL1fjzyrq9jjpB/xbRCAISiPBwrlXbbDqT0aLOVOc=";
+    hash = "sha256-12JCd2R00L0T5EPUNO/Aw2HRID+z2krNQ09RSX9Qkj8=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "fix-32bit.patch";
+      url = "https://github.com/389ds/389-ds-base/commit/1fe029c495cc9f069c989cfbb09d449a078c56e2.patch";
+      hash = "sha256-b0HSaDjuEUKERIXKg8np+lZDdZNmrCTAXybJzF+0hq0=";
+    })
+  ];
+
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     sourceRoot = "${src.name}/src";
     name = "${pname}-${version}";
-    hash = "sha256-FlrHaz1whwzDvm3MA+wEaQpq7h2X9ZDnQc3f73vLZ58=";
+    hash = "sha256-fE3bJROwti9Ru0jhCiWhXcuQdxXTqzN9yOd2nlhKABI=";
   };
 
   nativeBuildInputs = [
@@ -141,9 +150,5 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.ners ];
-    # https://hydra.nixos.org/build/249763145, doesn't build since glibc 2.39.
-    # Potential fix is documented in https://github.com/389ds/389-ds-base/issues/5332,
-    # but it doesn't apply here.
-    broken = true;
   };
 }
diff --git a/pkgs/servers/ldap/apache-directory-server/default.nix b/pkgs/servers/ldap/apache-directory-server/default.nix
index 46e52ef1bce97..a945c321af861 100644
--- a/pkgs/servers/ldap/apache-directory-server/default.nix
+++ b/pkgs/servers/ldap/apache-directory-server/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An extensible and embeddable directory server";
+    description = "Extensible and embeddable directory server";
     mainProgram = "apache-directory-server";
     homepage = "https://directory.apache.org/apacheds/";
     license = licenses.asl20;
diff --git a/pkgs/servers/ldap/lldap/default.nix b/pkgs/servers/ldap/lldap/default.nix
index cf4cc82ed8751..7db37e57c2d2b 100644
--- a/pkgs/servers/ldap/lldap/default.nix
+++ b/pkgs/servers/ldap/lldap/default.nix
@@ -1,7 +1,5 @@
 { binaryen
 , fetchFromGitHub
-, fetchpatch
-, fetchzip
 , lib
 , lldap
 , nixosTests
@@ -51,7 +49,7 @@ let
     ];
 
     buildPhase = ''
-      HOME=`pwd` RUSTFLAGS="-C linker=lld" ./app/build.sh
+      HOME=`pwd` ./app/build.sh
     '';
 
     installPhase = ''
@@ -82,11 +80,14 @@ in rustPlatform.buildRustPackage (commonDerivationAttrs // {
   };
 
   meta = with lib; {
-    description = "A lightweight authentication server that provides an opinionated, simplified LDAP interface for authentication";
+    description = "Lightweight authentication server that provides an opinionated, simplified LDAP interface for authentication";
     homepage = "https://github.com/lldap/lldap";
     changelog = "https://github.com/lldap/lldap/blob/v${lldap.version}/CHANGELOG.md";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
+    # See comment about wasm32-unknown-unknown in rustc.nix.
+    broken = lib.any (a: lib.hasAttr a stdenv.hostPlatform.gcc) [ "cpu" "float-abi" "fpu" ] ||
+      !stdenv.hostPlatform.gcc.thumb or true;
     maintainers = with maintainers; [ bendlas ];
     mainProgram = "lldap";
   };
diff --git a/pkgs/servers/lenpaste/default.nix b/pkgs/servers/lenpaste/default.nix
index d9e4aa9b5ed9a..c7a9e3e9234a1 100644
--- a/pkgs/servers/lenpaste/default.nix
+++ b/pkgs/servers/lenpaste/default.nix
@@ -27,7 +27,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A web service that allows you to share notes anonymously, an alternative to pastebin.com";
+    description = "Web service that allows you to share notes anonymously, an alternative to pastebin.com";
     homepage = "https://git.lcomrade.su/root/lenpaste";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ vector1dev ];
diff --git a/pkgs/servers/libreddit/default.nix b/pkgs/servers/libreddit/default.nix
index 246697c937f4b..c27ea94a7b0c7 100644
--- a/pkgs/servers/libreddit/default.nix
+++ b/pkgs/servers/libreddit/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "libreddit";
-  version = "0.30.0";
+  version = "0.30.1";
 
   src = fetchFromGitHub {
     owner = "libreddit";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-jV8U7znBFCYBmtI6fm+/5oKsLJ3/tQG16GUvNnBlp7A=";
+    hash = "sha256-Z+COSDiJoWHHZQM4BJca0JA5RrJKYjhfkFj8yx/0gZA=";
   };
 
-  cargoHash = "sha256-V7bT1uwSk9IW5rhKHW+6yHv+o+H3w7O/yuRpPDrcFic=";
+  cargoHash = "sha256-42xtt5dCcV6+TcssFjufkVtDSRiDGaatAaiP6K8DT8I=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     Security
diff --git a/pkgs/servers/lidarr/default.nix b/pkgs/servers/lidarr/default.nix
index eb098615650e5..fb63c5e3376cd 100644
--- a/pkgs/servers/lidarr/default.nix
+++ b/pkgs/servers/lidarr/default.nix
@@ -43,7 +43,7 @@ in stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A Usenet/BitTorrent music downloader";
+    description = "Usenet/BitTorrent music downloader";
     homepage = "https://lidarr.audio/";
     license = licenses.gpl3;
     maintainers = [ maintainers.etu ];
diff --git a/pkgs/servers/limesurvey/default.nix b/pkgs/servers/limesurvey/default.nix
index 791106ca3b0ff..9f7db0b916b6d 100644
--- a/pkgs/servers/limesurvey/default.nix
+++ b/pkgs/servers/limesurvey/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Open source survey application";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     homepage = "https://www.limesurvey.org";
     maintainers = with maintainers; [offline];
     platforms = with platforms; unix;
diff --git a/pkgs/servers/ma1sd/default.nix b/pkgs/servers/ma1sd/default.nix
index 1e16cc516e0a8..a62edf64a6321 100644
--- a/pkgs/servers/ma1sd/default.nix
+++ b/pkgs/servers/ma1sd/default.nix
@@ -85,7 +85,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "a federated matrix identity server; fork of mxisd";
+    description = "Federated matrix identity server; fork of mxisd";
     homepage = "https://github.com/ma1uta/ma1sd";
     changelog = "https://github.com/ma1uta/ma1sd/releases/tag/${version}";
     sourceProvenance = with sourceTypes; [
diff --git a/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix b/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix
index 619d8a7c054c9..fe3d4a2c67b9e 100644
--- a/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix
+++ b/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dovecot-fts-xapian";
-  version = "1.7.12";
+  version = "1.7.13";
 
   src = fetchFromGitHub {
     owner = "grosjo";
     repo = "fts-xapian";
     rev = version;
-    hash = "sha256-bKCZqv4nml+lCsQ10nfObctpZyYXoLYKVO0nuJOX/JM=";
+    hash = "sha256-WStdB8oeMNHwjF+n254vZFFK5R+2pZhZcQPsVJ88og4=";
   };
 
   buildInputs = [ xapian icu sqlite ];
diff --git a/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix b/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix
index 25be75b2b9604..a3e2ae55a8e45 100644
--- a/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix
+++ b/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix
@@ -31,7 +31,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://pigeonhole.dovecot.org/";
-    description = "A sieve plugin for the Dovecot IMAP server";
+    description = "Sieve plugin for the Dovecot IMAP server";
     license = licenses.lgpl21Only;
     maintainers = with maintainers; [ globin ] ++ teams.helsinki-systems.members;
     platforms = platforms.unix;
diff --git a/pkgs/servers/mail/exim/default.nix b/pkgs/servers/mail/exim/default.nix
index b5446f7df1908..9a7c8ccd06794 100644
--- a/pkgs/servers/mail/exim/default.nix
+++ b/pkgs/servers/mail/exim/default.nix
@@ -158,7 +158,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://exim.org/";
-    description = "A mail transfer agent (MTA)";
+    description = "Mail transfer agent (MTA)";
     license = with licenses; [ gpl2Plus bsd3 ];
     mainProgram = "exim";
     platforms = platforms.linux;
diff --git a/pkgs/servers/mail/mailhog/default.nix b/pkgs/servers/mail/mailhog/default.nix
index ef20fa92f385b..a4fe8fb5ea191 100644
--- a/pkgs/servers/mail/mailhog/default.nix
+++ b/pkgs/servers/mail/mailhog/default.nix
@@ -1,19 +1,23 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "MailHog";
   version = "1.0.1";
 
-  goPackagePath = "github.com/mailhog/MailHog";
-
   src = fetchFromGitHub {
     owner = "mailhog";
     repo = "MailHog";
     rev = "v${version}";
-    sha256 = "124216850572r1h0ii7ad6jd1cd5czcvkz7k2jzvjb4pv2kl8p3y";
+    hash = "sha256-flxEp9iXLLm/FPP8udlnpbHQpGnqxAhgyOIUUJAJgog=";
   };
 
-  ldflags = [ "-s" "-w" "-X main.version=${version}" ];
+  postPatch = ''
+    go mod init github.com/mailhog/MailHog
+  '';
+
+  vendorHash = null;
+
+  ldflags = [ "-s" "-X main.version=${version}" ];
 
   meta = with lib; {
     description = "Web and API based SMTP testing";
diff --git a/pkgs/servers/mail/mailpit/default.nix b/pkgs/servers/mail/mailpit/default.nix
index 9fdcd0be9b610..2734891075809 100644
--- a/pkgs/servers/mail/mailpit/default.nix
+++ b/pkgs/servers/mail/mailpit/default.nix
@@ -72,7 +72,7 @@ buildGoModule {
   };
 
   meta = with lib; {
-    description = "An email and SMTP testing tool with API for developers";
+    description = "Email and SMTP testing tool with API for developers";
     homepage = "https://github.com/axllent/mailpit";
     changelog = "https://github.com/axllent/mailpit/releases/tag/v${version}";
     maintainers = with maintainers; [ stephank ];
diff --git a/pkgs/servers/mail/nullmailer/default.nix b/pkgs/servers/mail/nullmailer/default.nix
index 95263e435f025..f223f163fdcbf 100644
--- a/pkgs/servers/mail/nullmailer/default.nix
+++ b/pkgs/servers/mail/nullmailer/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
       A sendmail/qmail/etc replacement MTA for hosts which relay to a fixed set of smart relays.
       It is designed to be simple to configure, secure, and easily extendable.
     '';
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.all;
     maintainers = with lib.maintainers ; [ sargon ];
   };
diff --git a/pkgs/servers/mail/petidomo/default.nix b/pkgs/servers/mail/petidomo/default.nix
index 64d9ef99bdd3a..d879d3233a3b2 100644
--- a/pkgs/servers/mail/petidomo/default.nix
+++ b/pkgs/servers/mail/petidomo/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://petidomo.sourceforge.net/";
-    description = "A simple and easy to administer mailing list server";
+    description = "Simple and easy to administer mailing list server";
     license = lib.licenses.gpl3Plus;
 
     platforms = lib.platforms.unix;
diff --git a/pkgs/servers/mail/postfix/default.nix b/pkgs/servers/mail/postfix/default.nix
index 6ebd41d850ac8..4bd224039b66a 100644
--- a/pkgs/servers/mail/postfix/default.nix
+++ b/pkgs/servers/mail/postfix/default.nix
@@ -117,7 +117,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.postfix.org/";
     changelog = "https://www.postfix.org/announcements/postfix-${version}.html";
-    description = "A fast, easy to administer, and secure mail server";
+    description = "Fast, easy to administer, and secure mail server";
     license = with licenses; [ ipl10 epl20 ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ globin dotlambda lewo ];
diff --git a/pkgs/servers/mail/postfix/pfixtools.nix b/pkgs/servers/mail/postfix/pfixtools.nix
index 0775df7e092ee..03527e1ce2b9d 100644
--- a/pkgs/servers/mail/postfix/pfixtools.nix
+++ b/pkgs/servers/mail/postfix/pfixtools.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation {
   makeFlags = [ "DESTDIR=$(out)" "prefix=" ];
 
   meta = {
-    description = "A collection of postfix-related tools";
+    description = "Collection of postfix-related tools";
     license = with lib.licenses; [ bsd3 ];
     homepage = "https://github.com/Fruneau/pfixtools";
     platforms = lib.platforms.linux;
diff --git a/pkgs/servers/mail/postgrey/default.nix b/pkgs/servers/mail/postgrey/default.nix
index 07b351bfb2161..dc872f968bd7f 100644
--- a/pkgs/servers/mail/postgrey/default.nix
+++ b/pkgs/servers/mail/postgrey/default.nix
@@ -16,10 +16,10 @@ in runCommand name {
     sha256 = "1xx51xih4711vrvc6d57il9ccallbljj5zhgqdb07jzmz11rakgz";
   };
   meta = with lib; {
-    description = "A postfix policy server to provide greylisting";
+    description = "Postfix policy server to provide greylisting";
     homepage = "https://postgrey.schweikert.ch/";
     platforms = postfix.meta.platforms;
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
   };
 } ''
     mkdir -p $out/bin
diff --git a/pkgs/servers/mail/postsrsd/default.nix b/pkgs/servers/mail/postsrsd/default.nix
index c31fadc8ecbda..65e6b83a693ff 100644
--- a/pkgs/servers/mail/postsrsd/default.nix
+++ b/pkgs/servers/mail/postsrsd/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/roehling/postsrsd";
     description = "Postfix Sender Rewriting Scheme daemon";
     mainProgram = "postsrsd";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ abbradar ];
   };
diff --git a/pkgs/servers/mail/rspamd/default.nix b/pkgs/servers/mail/rspamd/default.nix
index 2675ab7cbdd16..dd34e5cc2a62b 100644
--- a/pkgs/servers/mail/rspamd/default.nix
+++ b/pkgs/servers/mail/rspamd/default.nix
@@ -2,6 +2,8 @@
 , lib
 , fetchFromGitHub
 , cmake
+, doctest
+, fmt
 , perl
 , glib
 , luajit
@@ -17,6 +19,8 @@
 , lapack
 , lua
 , libsodium
+, xxHash
+, zstd
 , withBlas ? true
 , withHyperscan ? stdenv.isx86_64
 , withLuaJIT ? stdenv.isx86_64
@@ -39,7 +43,7 @@ stdenv.mkDerivation rec {
   hardeningEnable = [ "pie" ];
 
   nativeBuildInputs = [ cmake pkg-config perl ];
-  buildInputs = [ glib openssl pcre sqlite ragel icu jemalloc libsodium ]
+  buildInputs = [ doctest fmt glib openssl pcre sqlite ragel icu jemalloc libsodium xxHash zstd ]
     ++ lib.optional withHyperscan hyperscan
     ++ lib.optionals withBlas [ blas lapack ]
     ++ lib.optional withLuaJIT luajit ++ lib.optional (!withLuaJIT) lua;
@@ -53,6 +57,10 @@ stdenv.mkDerivation rec {
     "-DLOGDIR=/var/log/rspamd"
     "-DLOCAL_CONFDIR=/etc/rspamd"
     "-DENABLE_JEMALLOC=ON"
+    "-DSYSTEM_DOCTEST=ON"
+    "-DSYSTEM_FMT=ON"
+    "-DSYSTEM_XXHASH=ON"
+    "-DSYSTEM_ZSTD=ON"
   ] ++ lib.optional withHyperscan "-DENABLE_HYPERSCAN=ON"
   ++ lib.optional (!withLuaJIT) "-DENABLE_LUAJIT=OFF";
 
diff --git a/pkgs/servers/mail/smtprelay/default.nix b/pkgs/servers/mail/smtprelay/default.nix
index 688c415caf26d..d71d9c5135dd7 100644
--- a/pkgs/servers/mail/smtprelay/default.nix
+++ b/pkgs/servers/mail/smtprelay/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "smtprelay";
-  version = "1.10.0";
+  version = "1.11.1";
 
   src = fetchFromGitHub {
     owner = "decke";
     repo = "smtprelay";
     rev = "refs/tags/v${version}";
-    hash = "sha256-zZ3rgbo8nvrpFMtUmhyXnTgoVd0FIh1kWzuM2hCh5gY=";
+    hash = "sha256-2fZA2vYJ6c5oaNImvS0KKZo1+Eu7LFO6jCRnChReMcE=";
   };
 
-  vendorHash = "sha256-assGzM8/APNVVm2vZapPK6sh3tWNTnw6PSFwvEqNDPk=";
+  vendorHash = "sha256-BX1Ll0EEo59p+Pe5oM6+6zT6fvnv1RsfX8YEh9RKkWU=";
 
   subPackages = [
     "."
diff --git a/pkgs/servers/mail/sympa/default.nix b/pkgs/servers/mail/sympa/default.nix
index 5d29f6fbb5362..f431278de4d17 100644
--- a/pkgs/servers/mail/sympa/default.nix
+++ b/pkgs/servers/mail/sympa/default.nix
@@ -111,7 +111,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Open source mailing list manager";
     homepage = "https://www.sympa.org";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ sorki mmilata ];
     platforms = platforms.all;
   };
diff --git a/pkgs/servers/mastodon/default.nix b/pkgs/servers/mastodon/default.nix
index 78c72187d81e8..9bc4dd29d6304 100644
--- a/pkgs/servers/mastodon/default.nix
+++ b/pkgs/servers/mastodon/default.nix
@@ -42,9 +42,6 @@ stdenv.mkDerivation rec {
       runHook preBuild
 
       export HOME=$PWD
-      # This option is needed for openssl-3 compatibility
-      # Otherwise we encounter this upstream issue: https://github.com/mastodon/mastodon/issues/17924
-      export NODE_OPTIONS=--openssl-legacy-provider
       fixup-yarn-lock ~/yarn.lock
       yarn config --offline set yarn-offline-mirror $yarnOfflineCache
       yarn install --offline --frozen-lockfile --ignore-engines --ignore-scripts --no-progress
diff --git a/pkgs/servers/mastodon/gemset.nix b/pkgs/servers/mastodon/gemset.nix
index bc556d4f3673d..749ed890e6ef0 100644
--- a/pkgs/servers/mastodon/gemset.nix
+++ b/pkgs/servers/mastodon/gemset.nix
@@ -1069,10 +1069,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pd7pamzhdz2w0fbcvsfn2nyslznvphnwj16zw35g2b28zd2xyzx";
+      sha256 = "1sfc7svf7h1ja6zmsq9f3ps6pg0q4hymphh6rk7ipmp7ygqjkii3";
       type = "gem";
     };
-    version = "2.2.7";
+    version = "2.3.1";
   };
   ffi = {
     groups = ["default"];
@@ -1416,10 +1416,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04315mf4p9qa97grdfqv922paghzdfrbb982ap0p99rqwla4znv6";
+      sha256 = "13xhvkh2fxydcf466az172nwfykzppm3g9ckp8mafsib45w77clj";
       type = "gem";
     };
-    version = "1.15.3";
+    version = "1.15.3.1";
   };
   json-ld = {
     dependencies = ["htmlentities" "json-canonicalization" "link_header" "multi_json" "rack" "rdf"];
@@ -1881,10 +1881,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "173zavvxlwyi48lfskk48wcrdbkvjlhjhvy4jpcrfx72rpjjx4k8";
+      sha256 = "1lla2macphrlbzkirk0nwwwhcijrfymyfjjw1als0kwqd0n1cdpc";
       type = "gem";
     };
-    version = "1.16.2";
+    version = "1.16.5";
   };
   nsa = {
     dependencies = ["activesupport" "concurrent-ruby" "sidekiq" "statsd-ruby"];
@@ -2200,10 +2200,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02lvkg1nb4z3zc2nry545dap7a64bb9h2k8waxfz0jkabkgnpimw";
+      sha256 = "06ysmn14pdf2wyr7agm0qvvr9pzcgyf39w4yvk2n05w9k4alwpa1";
       type = "gem";
     };
-    version = "2.0.1";
+    version = "2.0.2";
   };
   rack-oauth2 = {
     dependencies = ["activesupport" "attr_required" "httpclient" "json-jwt" "rack"];
@@ -2445,24 +2445,25 @@
     version = "3.1.0";
   };
   rexml = {
+    dependencies = ["strscan"];
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0";
+      sha256 = "0d8ivcirrrxpkpjc1c835wknc9s2fl54xpw08s177yfrh5ish209";
       type = "gem";
     };
-    version = "3.2.6";
+    version = "3.2.8";
   };
   rotp = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10mmzc85y7andsich586ndykw678qn1ns2wpjxrg0sc0gr4w3pig";
+      sha256 = "0m48hv6wpmmm6cjr6q92q78h1i610riml19k5h1dil2yws3h1m3m";
       type = "gem";
     };
-    version = "6.2.2";
+    version = "6.3.0";
   };
   rouge = {
     groups = ["default" "development"];
@@ -2955,6 +2956,16 @@
     };
     version = "0.8.0";
   };
+  strscan = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1isbzxvykrm2h8msyq1c8ajypg7950w2mh0hrlgndhw52d1fic3c";
+      type = "gem";
+    };
+    version = "3.0.9";
+  };
   swd = {
     dependencies = ["activesupport" "attr_required" "httpclient"];
     groups = ["default"];
diff --git a/pkgs/servers/mastodon/source.nix b/pkgs/servers/mastodon/source.nix
index 13165c3405fb0..2c4eaafbbbf66 100644
--- a/pkgs/servers/mastodon/source.nix
+++ b/pkgs/servers/mastodon/source.nix
@@ -1,7 +1,7 @@
 # This file was generated by pkgs.mastodon.updateScript.
 { fetchFromGitHub, applyPatches, patches ? [] }:
 let
-  version = "4.2.8";
+  version = "4.2.9";
 in
 (
   applyPatches {
@@ -9,7 +9,7 @@ in
       owner = "mastodon";
       repo = "mastodon";
       rev = "v${version}";
-      hash = "sha256-7/E7iHqJxmYSorXYti7h8EbP7wcOAaD04ToLeU2I/nY=";
+      hash = "sha256-VjR4lXlb1p8mmpOGxPqbmCCEaB7SP90ccPSMfGFx6IQ=";
     };
     patches = patches ++ [];
   }) // {
diff --git a/pkgs/servers/matrix-appservice-discord/default.nix b/pkgs/servers/matrix-appservice-discord/default.nix
index 605df82b5771d..08240c4ecb4e3 100644
--- a/pkgs/servers/matrix-appservice-discord/default.nix
+++ b/pkgs/servers/matrix-appservice-discord/default.nix
@@ -98,7 +98,7 @@ in mkYarnPackage rec {
   };
 
   meta = {
-    description = "A bridge between Matrix and Discord";
+    description = "Bridge between Matrix and Discord";
     homepage = "https://github.com/Half-Shot/matrix-appservice-discord";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ pacien ];
diff --git a/pkgs/servers/matrix-conduit/Cargo.lock b/pkgs/servers/matrix-conduit/Cargo.lock
index 35a42085bed6b..9e47fc4f2b9f3 100644
--- a/pkgs/servers/matrix-conduit/Cargo.lock
+++ b/pkgs/servers/matrix-conduit/Cargo.lock
@@ -3,6 +3,15 @@
 version = 3
 
 [[package]]
+name = "addr2line"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
 name = "adler"
 version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -10,41 +19,42 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "ahash"
-version = "0.8.3"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
 dependencies = [
  "cfg-if",
  "once_cell",
  "version_check",
+ "zerocopy",
 ]
 
 [[package]]
 name = "aho-corasick"
-version = "1.0.2"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
-name = "allocator-api2"
-version = "0.2.15"
+name = "anstyle"
+version = "1.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56fc6cf8dc8c4158eed8649f9b8b0ea1518eb62b544fe9490d66fa0b349eafe9"
+checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b"
 
 [[package]]
-name = "anstyle"
-version = "1.0.1"
+name = "anyhow"
+version = "1.0.86"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"
+checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
 
 [[package]]
 name = "arc-swap"
-version = "1.6.0"
+version = "1.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
+checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457"
 
 [[package]]
 name = "arrayref"
@@ -59,49 +69,114 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
 
 [[package]]
+name = "as_variant"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f38fa22307249f86fb7fad906fcae77f2564caeb56d7209103c551cd1cf4798f"
+
+[[package]]
 name = "assign"
 version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5f093eed78becd229346bf859eec0aa4dd7ddde0757287b2b4107a1f09c80002"
 
 [[package]]
+name = "async-stream"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"
+dependencies = [
+ "async-stream-impl",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-stream-impl"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
 name = "async-trait"
-version = "0.1.68"
+version = "0.1.80"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842"
+checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.21",
+ "syn",
 ]
 
 [[package]]
 name = "atomic"
-version = "0.5.3"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c59bdb34bc650a32731b31bd8f0829cc15d24a708ee31559e0bb34f2bc320cba"
+checksum = "8d818003e740b63afc82337e3160717f4f63078720a810b7b903e70a5d1d2994"
+dependencies = [
+ "bytemuck",
+]
+
+[[package]]
+name = "atomic-waker"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
 
 [[package]]
 name = "autocfg"
-version = "1.1.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
 
 [[package]]
 name = "axum"
-version = "0.6.18"
+version = "0.6.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8175979259124331c1d7bf6586ee7e0da434155e4b2d48ec2c8386281d8df39"
+checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf"
 dependencies = [
  "async-trait",
- "axum-core",
+ "axum-core 0.3.4",
  "bitflags 1.3.2",
  "bytes",
  "futures-util",
- "headers",
- "http",
- "http-body",
- "hyper",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "hyper 0.14.29",
+ "itoa",
+ "matchit",
+ "memchr",
+ "mime",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustversion",
+ "serde",
+ "sync_wrapper 0.1.2",
+ "tower",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
+name = "axum"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf"
+dependencies = [
+ "async-trait",
+ "axum-core 0.4.3",
+ "bytes",
+ "futures-util",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "http-body-util",
+ "hyper 1.3.1",
+ "hyper-util",
  "itoa",
  "matchit",
  "memchr",
@@ -113,7 +188,7 @@ dependencies = [
  "serde_json",
  "serde_path_to_error",
  "serde_urlencoded",
- "sync_wrapper",
+ "sync_wrapper 1.0.1",
  "tower",
  "tower-layer",
  "tower-service",
@@ -128,45 +203,107 @@ dependencies = [
  "async-trait",
  "bytes",
  "futures-util",
- "http",
- "http-body",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "mime",
+ "rustversion",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
+name = "axum-core"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3"
+dependencies = [
+ "async-trait",
+ "bytes",
+ "futures-util",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "http-body-util",
  "mime",
+ "pin-project-lite",
  "rustversion",
+ "sync_wrapper 0.1.2",
  "tower-layer",
  "tower-service",
+ "tracing",
+]
+
+[[package]]
+name = "axum-extra"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0be6ea09c9b96cb5076af0de2e383bd2bc0c18f827cf1967bdd353e0b910d733"
+dependencies = [
+ "axum 0.7.5",
+ "axum-core 0.4.3",
+ "bytes",
+ "futures-util",
+ "headers",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "http-body-util",
+ "mime",
+ "pin-project-lite",
+ "serde",
+ "tower",
+ "tower-layer",
+ "tower-service",
+ "tracing",
 ]
 
 [[package]]
 name = "axum-server"
-version = "0.5.1"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "447f28c85900215cc1bea282f32d4a2f22d55c5a300afdfbc661c8d6a632e063"
+checksum = "c1ad46c3ec4e12f4a4b6835e173ba21c25e484c9d02b49770bf006ce5367c036"
 dependencies = [
  "arc-swap",
  "bytes",
  "futures-util",
- "http",
- "http-body",
- "hyper",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "http-body-util",
+ "hyper 1.3.1",
+ "hyper-util",
  "pin-project-lite",
- "rustls 0.21.2",
- "rustls-pemfile 1.0.2",
+ "rustls 0.21.12",
+ "rustls-pemfile",
  "tokio",
  "tokio-rustls 0.24.1",
+ "tower",
  "tower-service",
 ]
 
 [[package]]
+name = "backtrace"
+version = "0.3.72"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17c6a35df3749d2e8bb1b7b21a976d82b15548788d2735b9d82f329268f71a11"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
 name = "base64"
-version = "0.13.1"
+version = "0.21.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
 name = "base64"
-version = "0.21.2"
+version = "0.22.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d"
+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
 
 [[package]]
 name = "base64ct"
@@ -175,33 +312,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
 
 [[package]]
-name = "bincode"
-version = "1.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
-dependencies = [
- "serde",
-]
-
-[[package]]
 name = "bindgen"
-version = "0.65.1"
+version = "0.69.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5"
+checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.5.0",
  "cexpr",
  "clang-sys",
+ "itertools",
  "lazy_static",
  "lazycell",
- "peeking_take_while",
- "prettyplease",
  "proc-macro2",
  "quote",
  "regex",
  "rustc-hash",
  "shlex",
- "syn 2.0.21",
+ "syn",
 ]
 
 [[package]]
@@ -212,28 +339,19 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.3.2"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6dbe3c979c178231552ecba20214a8272df4e09f232a87aef4320cf06539aded"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
 
 [[package]]
 name = "blake2b_simd"
-version = "1.0.1"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c2f0dc9a68c6317d884f97cc36cf5a3d20ba14ce404227df55e1af708ab04bc"
+checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780"
 dependencies = [
  "arrayref",
  "arrayvec",
- "constant_time_eq 0.2.6",
-]
-
-[[package]]
-name = "block-buffer"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
-dependencies = [
- "generic-array",
+ "constant_time_eq",
 ]
 
 [[package]]
@@ -247,27 +365,27 @@ dependencies = [
 
 [[package]]
 name = "bumpalo"
-version = "3.13.0"
+version = "3.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
 
 [[package]]
 name = "bytemuck"
-version = "1.13.1"
+version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea"
+checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5"
 
 [[package]]
 name = "byteorder"
-version = "1.4.3"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
-version = "1.4.0"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
 
 [[package]]
 name = "bzip2-sys"
@@ -282,11 +400,13 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.79"
+version = "1.0.98"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
 dependencies = [
  "jobserver",
+ "libc",
+ "once_cell",
 ]
 
 [[package]]
@@ -305,10 +425,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
+[[package]]
 name = "clang-sys"
-version = "1.6.1"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f"
+checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4"
 dependencies = [
  "glob",
  "libc",
@@ -317,43 +443,41 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.3.8"
+version = "4.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9394150f5b4273a1763355bd1c2ec54cc5a2593f790587bcd6b2c947cfa9211"
+checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0"
 dependencies = [
  "clap_builder",
  "clap_derive",
- "once_cell",
 ]
 
 [[package]]
 name = "clap_builder"
-version = "4.3.8"
+version = "4.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a78fbdd3cc2914ddf37ba444114bc7765bbdcb55ec9cbe6fa054f0137400717"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
 dependencies = [
  "anstyle",
- "bitflags 1.3.2",
  "clap_lex",
 ]
 
 [[package]]
 name = "clap_derive"
-version = "4.3.2"
+version = "4.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8cd2b2a819ad6eec39e8f1d6b53001af1e5469f8c177579cdaeb313115b825f"
+checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64"
 dependencies = [
- "heck",
+ "heck 0.5.0",
  "proc-macro2",
  "quote",
- "syn 2.0.21",
+ "syn",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.5.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
 
 [[package]]
 name = "color_quant"
@@ -363,39 +487,42 @@ checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
 
 [[package]]
 name = "conduit"
-version = "0.6.0"
+version = "0.8.0"
 dependencies = [
  "async-trait",
- "axum",
+ "axum 0.7.5",
+ "axum-extra",
  "axum-server",
- "base64 0.21.2",
+ "base64 0.22.1",
  "bytes",
  "clap",
- "crossbeam",
  "directories",
  "figment",
  "futures-util",
- "heed",
+ "hickory-resolver",
  "hmac",
- "http",
+ "http 1.1.0",
+ "hyper 1.3.1",
+ "hyper-util",
  "image",
  "jsonwebtoken",
- "lazy_static",
  "lru-cache",
  "nix",
  "num_cpus",
  "opentelemetry",
- "opentelemetry-jaeger",
+ "opentelemetry-jaeger-propagator",
+ "opentelemetry-otlp",
+ "opentelemetry_sdk",
  "parking_lot",
  "persy",
- "rand 0.8.5",
+ "rand",
  "regex",
  "reqwest",
  "ring",
- "rocksdb",
  "ruma",
  "rusqlite",
  "rust-argon2",
+ "rust-rocksdb",
  "sd-notify",
  "serde",
  "serde_html_form",
@@ -405,23 +532,23 @@ dependencies = [
  "thiserror",
  "thread_local",
  "threadpool",
- "tikv-jemalloc-ctl",
  "tikv-jemallocator",
  "tokio",
  "tower",
  "tower-http",
+ "tower-service",
  "tracing",
  "tracing-flame",
  "tracing-opentelemetry",
  "tracing-subscriber",
- "trust-dns-resolver",
+ "url",
 ]
 
 [[package]]
 name = "const-oid"
-version = "0.9.2"
+version = "0.9.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913"
+checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
 
 [[package]]
 name = "const_panic"
@@ -431,21 +558,15 @@ checksum = "6051f239ecec86fde3410901ab7860d458d160371533842974fc61f96d15879b"
 
 [[package]]
 name = "constant_time_eq"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
-
-[[package]]
-name = "constant_time_eq"
-version = "0.2.6"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21a53c0a4d288377e7415b53dcfc3c04da5cdc2cc95c8d5ac178b58f0b861ad6"
+checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2"
 
 [[package]]
 name = "core-foundation"
-version = "0.9.3"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -453,109 +574,57 @@ dependencies = [
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.8.4"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.8"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03e69e28e9f7f77debdedbaafa2866e1de9ba56df55a8bd7cfc724c25a09987c"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "crc"
-version = "3.0.1"
+version = "3.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe"
+checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636"
 dependencies = [
  "crc-catalog",
 ]
 
 [[package]]
 name = "crc-catalog"
-version = "2.2.0"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cace84e55f07e7301bae1c519df89cdad8cc3cd868413d3fdbdeca9ff3db484"
+checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5"
 
 [[package]]
 name = "crc32fast"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "crossbeam"
-version = "0.8.2"
+version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c"
+checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
 dependencies = [
  "cfg-if",
- "crossbeam-channel",
- "crossbeam-deque",
- "crossbeam-epoch",
- "crossbeam-queue",
- "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.8"
+version = "0.5.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
+checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2"
 dependencies = [
- "cfg-if",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-deque"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
-dependencies = [
- "cfg-if",
- "crossbeam-epoch",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-epoch"
-version = "0.9.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
-dependencies = [
- "autocfg",
- "cfg-if",
- "crossbeam-utils",
- "memoffset 0.9.0",
- "scopeguard",
-]
-
-[[package]]
-name = "crossbeam-queue"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add"
-dependencies = [
- "cfg-if",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.16"
+version = "0.8.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
-dependencies = [
- "cfg-if",
-]
+checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
 
 [[package]]
 name = "crypto-common"
@@ -569,53 +638,61 @@ dependencies = [
 
 [[package]]
 name = "curve25519-dalek"
-version = "3.2.0"
+version = "4.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61"
+checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348"
 dependencies = [
- "byteorder",
- "digest 0.9.0",
- "rand_core 0.5.1",
+ "cfg-if",
+ "cpufeatures",
+ "curve25519-dalek-derive",
+ "digest",
+ "fiat-crypto",
+ "platforms",
+ "rustc_version",
  "subtle",
  "zeroize",
 ]
 
 [[package]]
-name = "dashmap"
-version = "5.4.0"
+name = "curve25519-dalek-derive"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc"
+checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
 dependencies = [
- "cfg-if",
- "hashbrown 0.12.3",
- "lock_api",
- "once_cell",
- "parking_lot_core",
+ "proc-macro2",
+ "quote",
+ "syn",
 ]
 
 [[package]]
 name = "data-encoding"
-version = "2.4.0"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2"
+
+[[package]]
+name = "date_header"
+version = "1.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308"
+checksum = "0c03c416ed1a30fbb027ef484ba6ab6f80e1eada675e1a2b92fd673c045a1f1d"
 
 [[package]]
 name = "der"
-version = "0.6.1"
+version = "0.7.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de"
+checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0"
 dependencies = [
  "const-oid",
  "zeroize",
 ]
 
 [[package]]
-name = "digest"
-version = "0.9.0"
+name = "deranged"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
 dependencies = [
- "generic-array",
+ "powerfmt",
 ]
 
 [[package]]
@@ -624,92 +701,86 @@ version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
 dependencies = [
- "block-buffer 0.10.4",
+ "block-buffer",
  "crypto-common",
  "subtle",
 ]
 
 [[package]]
 name = "directories"
-version = "4.0.1"
+version = "5.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f51c5d4ddabd36886dd3e1438cb358cdcb0d7c499cb99cb4ac2e38e18b5cb210"
+checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35"
 dependencies = [
  "dirs-sys",
 ]
 
 [[package]]
 name = "dirs-sys"
-version = "0.3.7"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
+checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
 dependencies = [
  "libc",
+ "option-ext",
  "redox_users",
- "winapi",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "ed25519"
-version = "1.5.3"
+version = "2.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7"
+checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53"
 dependencies = [
+ "pkcs8",
  "signature",
 ]
 
 [[package]]
 name = "ed25519-dalek"
-version = "1.0.1"
+version = "2.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d"
+checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871"
 dependencies = [
  "curve25519-dalek",
  "ed25519",
- "rand 0.7.3",
+ "rand_core",
  "serde",
- "sha2 0.9.9",
+ "sha2",
+ "subtle",
  "zeroize",
 ]
 
 [[package]]
 name = "either"
-version = "1.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
-
-[[package]]
-name = "encoding_rs"
-version = "0.8.32"
+version = "1.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394"
-dependencies = [
- "cfg-if",
-]
+checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b"
 
 [[package]]
 name = "enum-as-inner"
-version = "0.5.1"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116"
+checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a"
 dependencies = [
- "heck",
+ "heck 0.4.1",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn",
 ]
 
 [[package]]
 name = "equivalent"
-version = "1.0.0"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88bffebc5d80432c9b140ee17875ff173a8ab62faad5b257da912bd2f6c1c0a1"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "fallible-iterator"
-version = "0.2.0"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7"
+checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"
 
 [[package]]
 name = "fallible-streaming-iterator"
@@ -719,18 +790,24 @@ checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
 
 [[package]]
 name = "fdeflate"
-version = "0.3.0"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10"
+checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
 dependencies = [
  "simd-adler32",
 ]
 
 [[package]]
+name = "fiat-crypto"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d"
+
+[[package]]
 name = "figment"
-version = "0.10.10"
+version = "0.10.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4547e226f4c9ab860571e070a9034192b3175580ecea38da34fcdb53a018c9a5"
+checksum = "8cb01cd46b0cf372153850f4c6c272d9cbea2da513e07538405148f95bd789f3"
 dependencies = [
  "atomic",
  "pear",
@@ -742,9 +819,9 @@ dependencies = [
 
 [[package]]
 name = "flate2"
-version = "1.0.26"
+version = "1.0.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743"
+checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae"
 dependencies = [
  "crc32fast",
  "miniz_oxide",
@@ -758,9 +835,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
 name = "form_urlencoded"
-version = "1.2.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 dependencies = [
  "percent-encoding",
 ]
@@ -776,41 +853,25 @@ dependencies = [
 ]
 
 [[package]]
-name = "futures"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-executor",
- "futures-io",
- "futures-sink",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
 name = "futures-channel"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
  "futures-core",
- "futures-sink",
 ]
 
 [[package]]
 name = "futures-core"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -819,46 +880,43 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
 name = "futures-macro"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.21",
+ "syn",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
 
 [[package]]
 name = "futures-task"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
 name = "futures-util"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
- "futures-channel",
  "futures-core",
- "futures-io",
  "futures-macro",
  "futures-sink",
  "futures-task",
- "memchr",
  "pin-project-lite",
  "pin-utils",
  "slab",
@@ -876,37 +934,34 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.1.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi 0.9.0+wasi-snapshot-preview1",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.2.10"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
 dependencies = [
  "cfg-if",
+ "js-sys",
  "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasi",
+ "wasm-bindgen",
 ]
 
 [[package]]
 name = "gif"
-version = "0.12.0"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045"
+checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2"
 dependencies = [
  "color_quant",
  "weezl",
 ]
 
 [[package]]
+name = "gimli"
+version = "0.29.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
+
+[[package]]
 name = "glob"
 version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -914,17 +969,36 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
 name = "h2"
-version = "0.3.19"
+version = "0.3.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d357c7ae988e7d2182f7d7871d0b963962420b0678b0997ce7de72001aeab782"
+checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
 dependencies = [
  "bytes",
  "fnv",
  "futures-core",
  "futures-sink",
  "futures-util",
- "http",
- "indexmap 1.9.3",
+ "http 0.2.12",
+ "indexmap 2.2.6",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "h2"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab"
+dependencies = [
+ "atomic-waker",
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "http 1.1.0",
+ "indexmap 2.2.6",
  "slab",
  "tokio",
  "tokio-util",
@@ -939,34 +1013,32 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
 
 [[package]]
 name = "hashbrown"
-version = "0.14.0"
+version = "0.14.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
 dependencies = [
  "ahash",
- "allocator-api2",
 ]
 
 [[package]]
 name = "hashlink"
-version = "0.8.3"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "312f66718a2d7789ffef4f4b7b213138ed9f1eb3aa1d0d82fc99f88fb3ffd26f"
+checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af"
 dependencies = [
- "hashbrown 0.14.0",
+ "hashbrown 0.14.5",
 ]
 
 [[package]]
 name = "headers"
-version = "0.3.8"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584"
+checksum = "322106e6bd0cba2d5ead589ddb8150a13d7c4217cf80d7c4f682ca994ccc6aa9"
 dependencies = [
- "base64 0.13.1",
- "bitflags 1.3.2",
+ "base64 0.21.7",
  "bytes",
  "headers-core",
- "http",
+ "http 1.1.0",
  "httpdate",
  "mime",
  "sha1",
@@ -974,11 +1046,11 @@ dependencies = [
 
 [[package]]
 name = "headers-core"
-version = "0.2.0"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429"
+checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4"
 dependencies = [
- "http",
+ "http 1.1.0",
 ]
 
 [[package]]
@@ -988,48 +1060,60 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
-name = "heed"
-version = "0.10.6"
-source = "git+https://github.com/timokoesters/heed.git?rev=f6f825da7fb2c758867e05ad973ef800a6fe1d5d#f6f825da7fb2c758867e05ad973ef800a6fe1d5d"
-dependencies = [
- "bytemuck",
- "byteorder",
- "heed-traits",
- "heed-types",
- "libc",
- "lmdb-rkv-sys",
- "once_cell",
- "page_size",
- "serde",
- "synchronoise",
- "url",
-]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
 
 [[package]]
-name = "heed-traits"
-version = "0.7.0"
-source = "git+https://github.com/timokoesters/heed.git?rev=f6f825da7fb2c758867e05ad973ef800a6fe1d5d#f6f825da7fb2c758867e05ad973ef800a6fe1d5d"
+name = "hermit-abi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
 [[package]]
-name = "heed-types"
-version = "0.7.2"
-source = "git+https://github.com/timokoesters/heed.git?rev=f6f825da7fb2c758867e05ad973ef800a6fe1d5d#f6f825da7fb2c758867e05ad973ef800a6fe1d5d"
+name = "hickory-proto"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07698b8420e2f0d6447a436ba999ec85d8fbf2a398bbd737b82cac4a2e96e512"
 dependencies = [
- "bincode",
- "bytemuck",
- "byteorder",
- "heed-traits",
- "serde",
- "serde_json",
+ "async-trait",
+ "cfg-if",
+ "data-encoding",
+ "enum-as-inner",
+ "futures-channel",
+ "futures-io",
+ "futures-util",
+ "idna 0.4.0",
+ "ipnet",
+ "once_cell",
+ "rand",
+ "thiserror",
+ "tinyvec",
+ "tokio",
+ "tracing",
+ "url",
 ]
 
 [[package]]
-name = "hermit-abi"
-version = "0.2.6"
+name = "hickory-resolver"
+version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
+checksum = "28757f23aa75c98f254cf0405e6d8c25b831b32921b050a66692427679b1f243"
 dependencies = [
- "libc",
+ "cfg-if",
+ "futures-util",
+ "hickory-proto",
+ "ipconfig",
+ "lru-cache",
+ "once_cell",
+ "parking_lot",
+ "rand",
+ "resolv-conf",
+ "smallvec",
+ "thiserror",
+ "tokio",
+ "tracing",
 ]
 
 [[package]]
@@ -1038,7 +1122,7 @@ version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
 dependencies = [
- "digest 0.10.7",
+ "digest",
 ]
 
 [[package]]
@@ -1054,9 +1138,20 @@ dependencies = [
 
 [[package]]
 name = "http"
-version = "0.2.9"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
 dependencies = [
  "bytes",
  "fnv",
@@ -1065,20 +1160,37 @@ dependencies = [
 
 [[package]]
 name = "http-body"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
 dependencies = [
  "bytes",
- "http",
+ "http 0.2.12",
  "pin-project-lite",
 ]
 
 [[package]]
-name = "http-range-header"
-version = "0.3.0"
+name = "http-body"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
+dependencies = [
+ "bytes",
+ "http 1.1.0",
+]
+
+[[package]]
+name = "http-body-util"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29"
+checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "pin-project-lite",
+]
 
 [[package]]
 name = "httparse"
@@ -1088,28 +1200,28 @@ checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
 
 [[package]]
 name = "httpdate"
-version = "1.0.2"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
 
 [[package]]
 name = "hyper"
-version = "0.14.26"
+version = "0.14.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4"
+checksum = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33"
 dependencies = [
  "bytes",
  "futures-channel",
  "futures-core",
  "futures-util",
- "h2",
- "http",
- "http-body",
+ "h2 0.3.26",
+ "http 0.2.12",
+ "http-body 0.4.6",
  "httparse",
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2 0.4.9",
+ "socket2",
  "tokio",
  "tower-service",
  "tracing",
@@ -1117,34 +1229,90 @@ dependencies = [
 ]
 
 [[package]]
+name = "hyper"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "h2 0.4.5",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "smallvec",
+ "tokio",
+ "want",
+]
+
+[[package]]
 name = "hyper-rustls"
-version = "0.23.2"
+version = "0.26.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c"
+checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c"
 dependencies = [
- "http",
- "hyper",
- "rustls 0.20.8",
+ "futures-util",
+ "http 1.1.0",
+ "hyper 1.3.1",
+ "hyper-util",
+ "rustls 0.22.4",
+ "rustls-pki-types",
  "tokio",
- "tokio-rustls 0.23.4",
+ "tokio-rustls 0.25.0",
+ "tower-service",
+]
+
+[[package]]
+name = "hyper-timeout"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1"
+dependencies = [
+ "hyper 0.14.29",
+ "pin-project-lite",
+ "tokio",
+ "tokio-io-timeout",
+]
+
+[[package]]
+name = "hyper-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b875924a60b96e5d7b9ae7b066540b1dd1cbd90d1828f54c92e02a283351c56"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "hyper 1.3.1",
+ "pin-project-lite",
+ "socket2",
+ "tokio",
+ "tower",
+ "tower-service",
+ "tracing",
 ]
 
 [[package]]
 name = "idna"
-version = "0.2.3"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
+checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
 dependencies = [
- "matches",
  "unicode-bidi",
  "unicode-normalization",
 ]
 
 [[package]]
 name = "idna"
-version = "0.4.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
 dependencies = [
  "unicode-bidi",
  "unicode-normalization",
@@ -1152,18 +1320,18 @@ dependencies = [
 
 [[package]]
 name = "image"
-version = "0.24.6"
+version = "0.25.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "527909aa81e20ac3a44803521443a765550f09b5130c2c2fa1ea59c2f8f50a3a"
+checksum = "fd54d660e773627692c524beaad361aca785a4f9f5730ce91f42aabe5bce3d11"
 dependencies = [
  "bytemuck",
  "byteorder",
  "color_quant",
  "gif",
- "jpeg-decoder",
- "num-rational",
  "num-traits",
  "png",
+ "zune-core",
+ "zune-jpeg",
 ]
 
 [[package]]
@@ -1178,12 +1346,12 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.0.0"
+version = "2.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.0",
+ "hashbrown 0.14.5",
  "serde",
 ]
 
@@ -1194,18 +1362,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c8fae54786f62fb2918dcfae3d568594e50eb9b5c25bf04371af6fe7516452fb"
 
 [[package]]
-name = "integer-encoding"
-version = "3.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02"
-
-[[package]]
 name = "ipconfig"
 version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"
 dependencies = [
- "socket2 0.5.3",
+ "socket2",
  "widestring",
  "windows-sys 0.48.0",
  "winreg 0.50.0",
@@ -1213,45 +1375,39 @@ dependencies = [
 
 [[package]]
 name = "ipnet"
-version = "2.7.2"
+version = "2.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
 
 [[package]]
 name = "itertools"
-version = "0.11.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
 dependencies = [
  "either",
 ]
 
 [[package]]
 name = "itoa"
-version = "1.0.6"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
 
 [[package]]
 name = "jobserver"
-version = "0.1.26"
+version = "0.1.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
+checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e"
 dependencies = [
  "libc",
 ]
 
 [[package]]
-name = "jpeg-decoder"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e"
-
-[[package]]
 name = "js-sys"
-version = "0.3.64"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -1276,11 +1432,12 @@ dependencies = [
 
 [[package]]
 name = "jsonwebtoken"
-version = "8.3.0"
+version = "9.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378"
+checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f"
 dependencies = [
- "base64 0.21.2",
+ "base64 0.21.7",
+ "js-sys",
  "pem",
  "ring",
  "serde",
@@ -1290,9 +1447,9 @@ dependencies = [
 
 [[package]]
 name = "konst"
-version = "0.3.5"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d9a8bb6c7c71d151b25936b03e012a4c00daea99e3a3797c6ead66b0a0d55e2"
+checksum = "50a0ba6de5f7af397afff922f22c149ff605c766cd3269cf6c1cd5e466dbe3b9"
 dependencies = [
  "const_panic",
  "konst_kernel",
@@ -1301,9 +1458,9 @@ dependencies = [
 
 [[package]]
 name = "konst_kernel"
-version = "0.3.5"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55d2ab266022e7309df89ed712bddc753e3a3c395c3ced1bb2e4470ec2a8146d"
+checksum = "be0a455a1719220fd6adf756088e1c69a85bf14b6a9e24537a5cc04f503edb2b"
 dependencies = [
  "typewit",
 ]
@@ -1322,41 +1479,35 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 [[package]]
 name = "libc"
-version = "0.2.146"
+version = "0.2.155"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
+checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
 
 [[package]]
 name = "libloading"
-version = "0.7.4"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
 dependencies = [
  "cfg-if",
- "winapi",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
-name = "librocksdb-sys"
-version = "0.11.0+8.1.1"
+name = "libredox"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3386f101bcb4bd252d8e9d2fb41ec3b0862a15a62b478c355b2982efa469e3e"
+checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
 dependencies = [
- "bindgen",
- "bzip2-sys",
- "cc",
- "glob",
+ "bitflags 2.5.0",
  "libc",
- "libz-sys",
- "lz4-sys",
- "zstd-sys",
 ]
 
 [[package]]
 name = "libsqlite3-sys"
-version = "0.26.0"
+version = "0.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afc22eff61b133b115c6e8c74e818c628d6d5e7a502afea6f64dee076dd94326"
+checksum = "0c10584274047cb335c23d3e61bcef8e323adae7c5c8c760540f73610177fc3f"
 dependencies = [
  "cc",
  "pkg-config",
@@ -1365,9 +1516,9 @@ dependencies = [
 
 [[package]]
 name = "libz-sys"
-version = "1.1.9"
+version = "1.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56ee889ecc9568871456d42f603d6a0ce59ff328d291063a45cbdf0036baf6db"
+checksum = "c15da26e5af7e25c90b37a2d75cdbf940cf4a55316de9d84c679c9b8bfabf82e"
 dependencies = [
  "cc",
  "pkg-config",
@@ -1381,21 +1532,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
 
 [[package]]
-name = "lmdb-rkv-sys"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61b9ce6b3be08acefa3003c57b7565377432a89ec24476bbe72e11d101f852fe"
-dependencies = [
- "cc",
- "libc",
- "pkg-config",
-]
-
-[[package]]
 name = "lock_api"
-version = "0.4.10"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -1403,9 +1543,9 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.19"
+version = "0.4.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
 
 [[package]]
 name = "lru-cache"
@@ -1444,44 +1584,20 @@ version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
 dependencies = [
- "regex-automata",
+ "regex-automata 0.1.10",
 ]
 
 [[package]]
-name = "matches"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
-
-[[package]]
 name = "matchit"
-version = "0.7.0"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40"
+checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94"
 
 [[package]]
 name = "memchr"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
-
-[[package]]
-name = "memoffset"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "memoffset"
-version = "0.9.0"
+version = "2.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
-dependencies = [
- "autocfg",
-]
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
 
 [[package]]
 name = "mime"
@@ -1497,9 +1613,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.1"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae"
 dependencies = [
  "adler",
  "simd-adler32",
@@ -1507,27 +1623,25 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.8"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasi",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "nix"
-version = "0.26.2"
+version = "0.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.5.0",
  "cfg-if",
+ "cfg_aliases",
  "libc",
- "memoffset 0.7.1",
- "pin-utils",
- "static_assertions",
 ]
 
 [[package]]
@@ -1552,66 +1666,62 @@ dependencies = [
 
 [[package]]
 name = "num-bigint"
-version = "0.4.3"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
+checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7"
 dependencies = [
- "autocfg",
  "num-integer",
  "num-traits",
 ]
 
 [[package]]
-name = "num-integer"
-version = "0.1.45"
+name = "num-conv"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
-dependencies = [
- "autocfg",
- "num-traits",
-]
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
 
 [[package]]
-name = "num-rational"
-version = "0.4.1"
+name = "num-integer"
+version = "0.1.46"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
 dependencies = [
- "autocfg",
- "num-integer",
  "num-traits",
 ]
 
 [[package]]
 name = "num-traits"
-version = "0.2.15"
+version = "0.2.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
 name = "num_cpus"
-version = "1.15.0"
+version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
  "hermit-abi",
  "libc",
 ]
 
 [[package]]
-name = "once_cell"
-version = "1.18.0"
+name = "object"
+version = "0.35.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+checksum = "b8ec7ab813848ba4522158d5517a6093db1ded27575b070f4177b8d12b41db5e"
+dependencies = [
+ "memchr",
+]
 
 [[package]]
-name = "opaque-debug"
-version = "0.3.0"
+name = "once_cell"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "openssl-probe"
@@ -1621,83 +1731,98 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "opentelemetry"
-version = "0.18.0"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69d6c3d7288a106c0a363e4b0e8d308058d56902adefb16f4936f417ffef086e"
+checksum = "900d57987be3f2aeb70d385fff9b27fb74c5723cc9a52d904d4f9c807a0667bf"
 dependencies = [
- "opentelemetry_api",
- "opentelemetry_sdk",
+ "futures-core",
+ "futures-sink",
+ "js-sys",
+ "once_cell",
+ "pin-project-lite",
+ "thiserror",
+ "urlencoding",
 ]
 
 [[package]]
-name = "opentelemetry-jaeger"
-version = "0.17.0"
+name = "opentelemetry-jaeger-propagator"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e785d273968748578931e4dc3b4f5ec86b26e09d9e0d66b55adda7fce742f7a"
+checksum = "beb4ec62efc537b60aaa89b92624f986f2523d3a609079f3511cc8ee73490826"
+dependencies = [
+ "opentelemetry",
+]
+
+[[package]]
+name = "opentelemetry-otlp"
+version = "0.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a016b8d9495c639af2145ac22387dcb88e44118e45320d9238fbf4e7889abcb"
 dependencies = [
  "async-trait",
- "futures",
- "futures-executor",
- "once_cell",
+ "futures-core",
+ "http 0.2.12",
  "opentelemetry",
+ "opentelemetry-proto",
  "opentelemetry-semantic-conventions",
+ "opentelemetry_sdk",
+ "prost",
  "thiserror",
- "thrift",
  "tokio",
+ "tonic",
 ]
 
 [[package]]
-name = "opentelemetry-semantic-conventions"
-version = "0.10.0"
+name = "opentelemetry-proto"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b02e0230abb0ab6636d18e2ba8fa02903ea63772281340ccac18e0af3ec9eeb"
+checksum = "3a8fddc9b68f5b80dae9d6f510b88e02396f006ad48cac349411fbecc80caae4"
 dependencies = [
  "opentelemetry",
+ "opentelemetry_sdk",
+ "prost",
+ "tonic",
 ]
 
 [[package]]
-name = "opentelemetry_api"
-version = "0.18.0"
+name = "opentelemetry-semantic-conventions"
+version = "0.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c24f96e21e7acc813c7a8394ee94978929db2bcc46cf6b5014fc612bf7760c22"
-dependencies = [
- "fnv",
- "futures-channel",
- "futures-util",
- "indexmap 1.9.3",
- "js-sys",
- "once_cell",
- "pin-project-lite",
- "thiserror",
-]
+checksum = "f9ab5bd6c42fb9349dcf28af2ba9a0667f697f9bdcca045d39f2cec5543e2910"
 
 [[package]]
 name = "opentelemetry_sdk"
-version = "0.18.0"
+version = "0.22.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ca41c4933371b61c2a2f214bf16931499af4ec90543604ec828f7a625c09113"
+checksum = "9e90c7113be649e31e9a0f8b5ee24ed7a16923b322c3c5ab6367469c049d6b7e"
 dependencies = [
  "async-trait",
  "crossbeam-channel",
- "dashmap",
- "fnv",
  "futures-channel",
  "futures-executor",
  "futures-util",
+ "glob",
  "once_cell",
- "opentelemetry_api",
+ "opentelemetry",
+ "ordered-float",
  "percent-encoding",
- "rand 0.8.5",
+ "rand",
  "thiserror",
  "tokio",
  "tokio-stream",
 ]
 
 [[package]]
+name = "option-ext"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
+
+[[package]]
 name = "ordered-float"
-version = "1.1.1"
+version = "4.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3305af35278dd29f46fcdd139e0b1fbfae2153f0e5928b39b035542dd31e37b7"
+checksum = "a76df7075c7d4d01fdcb46c912dd17fba5b60c78ea480b475f2b6ab6f666584e"
 dependencies = [
  "num-traits",
 ]
@@ -1709,20 +1834,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
 
 [[package]]
-name = "page_size"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eebde548fbbf1ea81a99b128872779c437752fb99f217c45245e1a61dcd9edcd"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
 name = "parking_lot"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
 dependencies = [
  "lock_api",
  "parking_lot_core",
@@ -1730,28 +1845,22 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.8"
+version = "0.9.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.3.5",
+ "redox_syscall",
  "smallvec",
- "windows-targets",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
-name = "paste"
-version = "1.0.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79"
-
-[[package]]
 name = "pear"
-version = "0.2.4"
+version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ec95680a7087503575284e5063e14b694b7a9c0b065e5dceec661e0497127e8"
+checksum = "bdeeaa00ce488657faba8ebf44ab9361f9365a97bd39ffb8a60663f57ff4b467"
 dependencies = [
  "inlinable_string",
  "pear_codegen",
@@ -1760,48 +1869,43 @@ dependencies = [
 
 [[package]]
 name = "pear_codegen"
-version = "0.2.4"
+version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9661a3a53f93f09f2ea882018e4d7c88f6ff2956d809a276060476fd8c879d3c"
+checksum = "4bab5b985dc082b345f812b7df84e1bef27e7207b39e448439ba8bd69c93f147"
 dependencies = [
  "proc-macro2",
  "proc-macro2-diagnostics",
  "quote",
- "syn 2.0.21",
+ "syn",
 ]
 
 [[package]]
-name = "peeking_take_while"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
-
-[[package]]
 name = "pem"
-version = "1.1.1"
+version = "3.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8"
+checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae"
 dependencies = [
- "base64 0.13.1",
+ "base64 0.22.1",
+ "serde",
 ]
 
 [[package]]
 name = "percent-encoding"
-version = "2.3.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "persy"
-version = "1.4.4"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3712821f12453814409ec149071bd4832a8ec458e648579c104aee30ed70b300"
+checksum = "9ef4b7250ab3a90ded0e284b2633469c23ef01ea868fe7cbb64e2f0a7d6f6d02"
 dependencies = [
  "crc",
  "data-encoding",
  "fs2",
  "linked-hash-map",
- "rand 0.8.5",
+ "rand",
  "thiserror",
  "unsigned-varint",
  "zigzag",
@@ -1809,29 +1913,29 @@ dependencies = [
 
 [[package]]
 name = "pin-project"
-version = "1.1.0"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c95a7476719eab1e366eaf73d0260af3021184f18177925b07f54b30089ceead"
+checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.1.0"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39407670928234ebc5e6e580247dd567ad73a3578460c5990f9503df207e8f07"
+checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.21",
+ "syn",
 ]
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.9"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
 
 [[package]]
 name = "pin-utils"
@@ -1841,9 +1945,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
 name = "pkcs8"
-version = "0.9.0"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba"
+checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
 dependencies = [
  "der",
  "spki",
@@ -1851,15 +1955,21 @@ dependencies = [
 
 [[package]]
 name = "pkg-config"
-version = "0.3.27"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+
+[[package]]
+name = "platforms"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db23d408679286588f4d4644f965003d056e3dd5abcaaa938116871d7ce2fee7"
 
 [[package]]
 name = "png"
-version = "0.17.9"
+version = "0.17.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59871cc5b6cce7eaccca5a802b4173377a1c2ba90654246789a8fa2334426d11"
+checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
 dependencies = [
  "bitflags 1.3.2",
  "crc32fast",
@@ -1869,79 +1979,84 @@ dependencies = [
 ]
 
 [[package]]
-name = "ppv-lite86"
-version = "0.2.17"
+name = "powerfmt"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
 
 [[package]]
-name = "prettyplease"
-version = "0.2.9"
+name = "ppv-lite86"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9825a04601d60621feed79c4e6b56d65db77cdca55cef43b46b0de1096d1c282"
-dependencies = [
- "proc-macro2",
- "syn 2.0.21",
-]
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[package]]
 name = "proc-macro-crate"
-version = "1.3.1"
+version = "3.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
+checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
 dependencies = [
- "once_cell",
- "toml_edit",
+ "toml_edit 0.21.1",
 ]
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.61"
+version = "1.0.85"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "363a6f739a0c0addeaf6ed75150b95743aa18643a3c6f40409ed7b6db3a6911f"
+checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "proc-macro2-diagnostics"
-version = "0.10.0"
+version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "606c4ba35817e2922a308af55ad51bab3645b59eae5c570d4a6cf07e36bd493b"
+checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.21",
+ "syn",
  "version_check",
  "yansi",
 ]
 
 [[package]]
-name = "quick-error"
-version = "1.2.3"
+name = "prost"
+version = "0.12.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29"
+dependencies = [
+ "bytes",
+ "prost-derive",
+]
 
 [[package]]
-name = "quote"
-version = "1.0.28"
+name = "prost-derive"
+version = "0.12.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488"
+checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1"
 dependencies = [
+ "anyhow",
+ "itertools",
  "proc-macro2",
+ "quote",
+ "syn",
 ]
 
 [[package]]
-name = "rand"
-version = "0.7.3"
+name = "quick-error"
+version = "1.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+
+[[package]]
+name = "quote"
+version = "1.0.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
 dependencies = [
- "getrandom 0.1.16",
- "libc",
- "rand_chacha 0.2.2",
- "rand_core 0.5.1",
- "rand_hc",
+ "proc-macro2",
 ]
 
 [[package]]
@@ -1951,18 +2066,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
 dependencies = [
  "libc",
- "rand_chacha 0.3.1",
- "rand_core 0.6.4",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
-dependencies = [
- "ppv-lite86",
- "rand_core 0.5.1",
+ "rand_chacha",
+ "rand_core",
 ]
 
 [[package]]
@@ -1972,16 +2077,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
 dependencies = [
  "ppv-lite86",
- "rand_core 0.6.4",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-dependencies = [
- "getrandom 0.1.16",
+ "rand_core",
 ]
 
 [[package]]
@@ -1990,56 +2086,39 @@ version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
 dependencies = [
- "getrandom 0.2.10",
-]
-
-[[package]]
-name = "rand_hc"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-dependencies = [
- "rand_core 0.5.1",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
-dependencies = [
- "bitflags 1.3.2",
+ "getrandom",
 ]
 
 [[package]]
 name = "redox_syscall"
-version = "0.3.5"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.5.0",
 ]
 
 [[package]]
 name = "redox_users"
-version = "0.4.3"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891"
 dependencies = [
- "getrandom 0.2.10",
- "redox_syscall 0.2.16",
+ "getrandom",
+ "libredox",
  "thiserror",
 ]
 
 [[package]]
 name = "regex"
-version = "1.8.4"
+version = "1.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-syntax 0.7.2",
+ "regex-automata 0.4.6",
+ "regex-syntax 0.8.3",
 ]
 
 [[package]]
@@ -2052,6 +2131,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax 0.8.3",
+]
+
+[[package]]
 name = "regex-syntax"
 version = "0.6.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2059,46 +2149,50 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
 
 [[package]]
 name = "reqwest"
-version = "0.11.9"
-source = "git+https://github.com/timokoesters/reqwest?rev=57b7cf4feb921573dfafad7d34b9ac6e44ead0bd#57b7cf4feb921573dfafad7d34b9ac6e44ead0bd"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10"
 dependencies = [
- "base64 0.13.1",
+ "base64 0.22.1",
  "bytes",
- "encoding_rs",
  "futures-core",
  "futures-util",
- "h2",
- "http",
- "http-body",
- "hyper",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "http-body-util",
+ "hyper 1.3.1",
  "hyper-rustls",
+ "hyper-util",
  "ipnet",
  "js-sys",
- "lazy_static",
  "log",
  "mime",
+ "once_cell",
  "percent-encoding",
  "pin-project-lite",
- "rustls 0.20.8",
+ "rustls 0.22.4",
  "rustls-native-certs",
- "rustls-pemfile 0.2.1",
+ "rustls-pemfile",
+ "rustls-pki-types",
  "serde",
  "serde_json",
  "serde_urlencoded",
+ "sync_wrapper 0.1.2",
  "tokio",
- "tokio-rustls 0.23.4",
+ "tokio-rustls 0.25.0",
  "tokio-socks",
+ "tower-service",
  "url",
  "wasm-bindgen",
  "wasm-bindgen-futures",
  "web-sys",
- "winreg 0.7.0",
+ "winreg 0.52.0",
 ]
 
 [[package]]
@@ -2113,33 +2207,23 @@ dependencies = [
 
 [[package]]
 name = "ring"
-version = "0.16.20"
+version = "0.17.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
+checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
 dependencies = [
  "cc",
+ "cfg-if",
+ "getrandom",
  "libc",
- "once_cell",
  "spin",
  "untrusted",
- "web-sys",
- "winapi",
-]
-
-[[package]]
-name = "rocksdb"
-version = "0.21.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb6f170a4041d50a0ce04b0d2e14916d6ca863ea2e422689a5b694395d299ffe"
-dependencies = [
- "libc",
- "librocksdb-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "ruma"
-version = "0.8.2"
-source = "git+https://github.com/ruma/ruma?rev=3bd58e3c899457c2d55c45268dcb8a65ae682d54#3bd58e3c899457c2d55c45268dcb8a65ae682d54"
+version = "0.10.1"
+source = "git+https://github.com/ruma/ruma#ef40b184b7410a93e933b4ad719a72aea1bdd20e"
 dependencies = [
  "assign",
  "js_int",
@@ -2147,56 +2231,66 @@ dependencies = [
  "ruma-appservice-api",
  "ruma-client-api",
  "ruma-common",
+ "ruma-events",
  "ruma-federation-api",
  "ruma-identity-service-api",
  "ruma-push-gateway-api",
+ "ruma-server-util",
  "ruma-signatures",
  "ruma-state-res",
+ "web-time",
 ]
 
 [[package]]
 name = "ruma-appservice-api"
-version = "0.8.1"
-source = "git+https://github.com/ruma/ruma?rev=3bd58e3c899457c2d55c45268dcb8a65ae682d54#3bd58e3c899457c2d55c45268dcb8a65ae682d54"
+version = "0.10.0"
+source = "git+https://github.com/ruma/ruma#ef40b184b7410a93e933b4ad719a72aea1bdd20e"
 dependencies = [
  "js_int",
  "ruma-common",
+ "ruma-events",
  "serde",
  "serde_json",
 ]
 
 [[package]]
 name = "ruma-client-api"
-version = "0.16.2"
-source = "git+https://github.com/ruma/ruma?rev=3bd58e3c899457c2d55c45268dcb8a65ae682d54#3bd58e3c899457c2d55c45268dcb8a65ae682d54"
+version = "0.18.0"
+source = "git+https://github.com/ruma/ruma#ef40b184b7410a93e933b4ad719a72aea1bdd20e"
 dependencies = [
+ "as_variant",
  "assign",
  "bytes",
- "http",
+ "date_header",
+ "http 1.1.0",
  "js_int",
  "js_option",
  "maplit",
  "ruma-common",
+ "ruma-events",
  "serde",
  "serde_html_form",
  "serde_json",
+ "thiserror",
+ "url",
+ "web-time",
 ]
 
 [[package]]
 name = "ruma-common"
-version = "0.11.3"
-source = "git+https://github.com/ruma/ruma?rev=3bd58e3c899457c2d55c45268dcb8a65ae682d54#3bd58e3c899457c2d55c45268dcb8a65ae682d54"
+version = "0.13.0"
+source = "git+https://github.com/ruma/ruma#ef40b184b7410a93e933b4ad719a72aea1bdd20e"
 dependencies = [
- "base64 0.21.2",
+ "as_variant",
+ "base64 0.22.1",
  "bytes",
  "form_urlencoded",
- "http",
- "indexmap 2.0.0",
+ "http 1.1.0",
+ "indexmap 2.2.6",
  "js_int",
- "js_option",
  "konst",
  "percent-encoding",
- "rand 0.8.5",
+ "rand",
  "regex",
  "ruma-identifiers-validation",
  "ruma-macros",
@@ -2204,27 +2298,52 @@ dependencies = [
  "serde_html_form",
  "serde_json",
  "thiserror",
+ "time",
  "tracing",
  "url",
  "uuid",
+ "web-time",
+ "wildmatch",
+]
+
+[[package]]
+name = "ruma-events"
+version = "0.28.1"
+source = "git+https://github.com/ruma/ruma#ef40b184b7410a93e933b4ad719a72aea1bdd20e"
+dependencies = [
+ "as_variant",
+ "indexmap 2.2.6",
+ "js_int",
+ "js_option",
+ "percent-encoding",
+ "regex",
+ "ruma-common",
+ "ruma-identifiers-validation",
+ "ruma-macros",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "tracing",
+ "url",
  "wildmatch",
 ]
 
 [[package]]
 name = "ruma-federation-api"
-version = "0.7.1"
-source = "git+https://github.com/ruma/ruma?rev=3bd58e3c899457c2d55c45268dcb8a65ae682d54#3bd58e3c899457c2d55c45268dcb8a65ae682d54"
+version = "0.9.0"
+source = "git+https://github.com/ruma/ruma#ef40b184b7410a93e933b4ad719a72aea1bdd20e"
 dependencies = [
  "js_int",
  "ruma-common",
+ "ruma-events",
  "serde",
  "serde_json",
 ]
 
 [[package]]
 name = "ruma-identifiers-validation"
-version = "0.9.1"
-source = "git+https://github.com/ruma/ruma?rev=3bd58e3c899457c2d55c45268dcb8a65ae682d54#3bd58e3c899457c2d55c45268dcb8a65ae682d54"
+version = "0.9.5"
+source = "git+https://github.com/ruma/ruma#ef40b184b7410a93e933b4ad719a72aea1bdd20e"
 dependencies = [
  "js_int",
  "thiserror",
@@ -2232,8 +2351,8 @@ dependencies = [
 
 [[package]]
 name = "ruma-identity-service-api"
-version = "0.7.1"
-source = "git+https://github.com/ruma/ruma?rev=3bd58e3c899457c2d55c45268dcb8a65ae682d54#3bd58e3c899457c2d55c45268dcb8a65ae682d54"
+version = "0.9.0"
+source = "git+https://github.com/ruma/ruma#ef40b184b7410a93e933b4ad719a72aea1bdd20e"
 dependencies = [
  "js_int",
  "ruma-common",
@@ -2242,8 +2361,8 @@ dependencies = [
 
 [[package]]
 name = "ruma-macros"
-version = "0.11.3"
-source = "git+https://github.com/ruma/ruma?rev=3bd58e3c899457c2d55c45268dcb8a65ae682d54#3bd58e3c899457c2d55c45268dcb8a65ae682d54"
+version = "0.13.0"
+source = "git+https://github.com/ruma/ruma#ef40b184b7410a93e933b4ad719a72aea1bdd20e"
 dependencies = [
  "once_cell",
  "proc-macro-crate",
@@ -2251,45 +2370,58 @@ dependencies = [
  "quote",
  "ruma-identifiers-validation",
  "serde",
- "syn 2.0.21",
+ "syn",
  "toml",
 ]
 
 [[package]]
 name = "ruma-push-gateway-api"
-version = "0.7.1"
-source = "git+https://github.com/ruma/ruma?rev=3bd58e3c899457c2d55c45268dcb8a65ae682d54#3bd58e3c899457c2d55c45268dcb8a65ae682d54"
+version = "0.9.0"
+source = "git+https://github.com/ruma/ruma#ef40b184b7410a93e933b4ad719a72aea1bdd20e"
 dependencies = [
  "js_int",
  "ruma-common",
+ "ruma-events",
  "serde",
  "serde_json",
 ]
 
 [[package]]
+name = "ruma-server-util"
+version = "0.3.0"
+source = "git+https://github.com/ruma/ruma#ef40b184b7410a93e933b4ad719a72aea1bdd20e"
+dependencies = [
+ "headers",
+ "ruma-common",
+ "tracing",
+ "yap",
+]
+
+[[package]]
 name = "ruma-signatures"
-version = "0.13.1"
-source = "git+https://github.com/ruma/ruma?rev=3bd58e3c899457c2d55c45268dcb8a65ae682d54#3bd58e3c899457c2d55c45268dcb8a65ae682d54"
+version = "0.15.0"
+source = "git+https://github.com/ruma/ruma#ef40b184b7410a93e933b4ad719a72aea1bdd20e"
 dependencies = [
- "base64 0.21.2",
+ "base64 0.22.1",
  "ed25519-dalek",
  "pkcs8",
- "rand 0.7.3",
+ "rand",
  "ruma-common",
  "serde_json",
- "sha2 0.10.7",
+ "sha2",
  "subslice",
  "thiserror",
 ]
 
 [[package]]
 name = "ruma-state-res"
-version = "0.9.1"
-source = "git+https://github.com/ruma/ruma?rev=3bd58e3c899457c2d55c45268dcb8a65ae682d54#3bd58e3c899457c2d55c45268dcb8a65ae682d54"
+version = "0.11.0"
+source = "git+https://github.com/ruma/ruma#ef40b184b7410a93e933b4ad719a72aea1bdd20e"
 dependencies = [
  "itertools",
  "js_int",
  "ruma-common",
+ "ruma-events",
  "serde",
  "serde_json",
  "thiserror",
@@ -2298,11 +2430,11 @@ dependencies = [
 
 [[package]]
 name = "rusqlite"
-version = "0.29.0"
+version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "549b9d036d571d42e6e85d1c1425e2ac83491075078ca9a15be021c56b1641f2"
+checksum = "b838eba278d213a8beaf485bd313fd580ca4505a00d5871caeb1457c55322cae"
 dependencies = [
- "bitflags 2.3.2",
+ "bitflags 2.5.0",
  "fallible-iterator",
  "fallible-streaming-iterator",
  "hashlink",
@@ -2312,118 +2444,170 @@ dependencies = [
 
 [[package]]
 name = "rust-argon2"
-version = "1.0.0"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b50162d19404029c1ceca6f6980fe40d45c8b369f6f44446fa14bb39573b5bb9"
+checksum = "9d9848531d60c9cbbcf9d166c885316c24bc0e2a9d3eba0956bb6cbbd79bc6e8"
 dependencies = [
- "base64 0.13.1",
+ "base64 0.21.7",
  "blake2b_simd",
- "constant_time_eq 0.1.5",
- "crossbeam-utils",
+ "constant_time_eq",
 ]
 
 [[package]]
+name = "rust-librocksdb-sys"
+version = "0.21.0+9.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75cb7b9cd5ce3b3ce0757ceab2240f7471826780b8700845c0cfd418cb7e398d"
+dependencies = [
+ "bindgen",
+ "bzip2-sys",
+ "cc",
+ "glob",
+ "libc",
+ "libz-sys",
+ "lz4-sys",
+ "zstd-sys",
+]
+
+[[package]]
+name = "rust-rocksdb"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2bcfb31b5bf2e3274686ebfdf9a946e9a327a3bc54adc7e5cda9f4fdcc4b55f1"
+dependencies = [
+ "libc",
+ "rust-librocksdb-sys",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
+
+[[package]]
 name = "rustc-hash"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
 
 [[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[package]]
 name = "rustls"
-version = "0.20.8"
+version = "0.21.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f"
+checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e"
 dependencies = [
  "log",
  "ring",
+ "rustls-webpki 0.101.7",
  "sct",
- "webpki",
 ]
 
 [[package]]
 name = "rustls"
-version = "0.21.2"
+version = "0.22.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e32ca28af694bc1bbf399c33a516dbdf1c90090b8ab23c2bc24f834aa2247f5f"
+checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432"
 dependencies = [
  "log",
  "ring",
- "rustls-webpki",
- "sct",
+ "rustls-pki-types",
+ "rustls-webpki 0.102.4",
+ "subtle",
+ "zeroize",
 ]
 
 [[package]]
 name = "rustls-native-certs"
-version = "0.6.3"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00"
+checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792"
 dependencies = [
  "openssl-probe",
- "rustls-pemfile 1.0.2",
+ "rustls-pemfile",
+ "rustls-pki-types",
  "schannel",
  "security-framework",
 ]
 
 [[package]]
 name = "rustls-pemfile"
-version = "0.2.1"
+version = "2.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5eebeaeb360c87bfb72e84abdb3447159c0eaececf1bef2aecd65a8be949d1c9"
+checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d"
 dependencies = [
- "base64 0.13.1",
+ "base64 0.22.1",
+ "rustls-pki-types",
 ]
 
 [[package]]
-name = "rustls-pemfile"
-version = "1.0.2"
+name = "rustls-pki-types"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d"
+
+[[package]]
+name = "rustls-webpki"
+version = "0.101.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b"
+checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
 dependencies = [
- "base64 0.21.2",
+ "ring",
+ "untrusted",
 ]
 
 [[package]]
 name = "rustls-webpki"
-version = "0.100.1"
+version = "0.102.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b"
+checksum = "ff448f7e92e913c4b7d4c6d8e4540a1724b319b4152b8aef6d4cf8339712b33e"
 dependencies = [
  "ring",
+ "rustls-pki-types",
  "untrusted",
 ]
 
 [[package]]
 name = "rustversion"
-version = "1.0.12"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06"
+checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
 
 [[package]]
 name = "ryu"
-version = "1.0.13"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
 
 [[package]]
 name = "schannel"
-version = "0.1.21"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
 dependencies = [
- "windows-sys 0.42.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "scopeguard"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "sct"
-version = "0.7.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
+checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
 dependencies = [
  "ring",
  "untrusted",
@@ -2437,11 +2621,11 @@ checksum = "621e3680f3e07db4c9c2c3fb07c6223ab2fab2e54bd3c04c3ae037990f428c32"
 
 [[package]]
 name = "security-framework"
-version = "2.9.1"
+version = "2.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8"
+checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.5.0",
  "core-foundation",
  "core-foundation-sys",
  "libc",
@@ -2450,42 +2634,48 @@ dependencies = [
 
 [[package]]
 name = "security-framework-sys"
-version = "2.9.0"
+version = "2.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7"
+checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7"
 dependencies = [
  "core-foundation-sys",
  "libc",
 ]
 
 [[package]]
+name = "semver"
+version = "1.0.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
+
+[[package]]
 name = "serde"
-version = "1.0.164"
+version = "1.0.203"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d"
+checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.164"
+version = "1.0.203"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68"
+checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.21",
+ "syn",
 ]
 
 [[package]]
 name = "serde_html_form"
-version = "0.2.0"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53192e38d5c88564b924dbe9b60865ecbb71b81d38c4e61c817cffd3e36ef696"
+checksum = "8de514ef58196f1fc96dcaef80fe6170a1ce6215df9687a93fe8300e773fefc5"
 dependencies = [
  "form_urlencoded",
- "indexmap 1.9.3",
+ "indexmap 2.2.6",
  "itoa",
  "ryu",
  "serde",
@@ -2493,9 +2683,9 @@ dependencies = [
 
 [[package]]
 name = "serde_json"
-version = "1.0.99"
+version = "1.0.117"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46266871c240a00b8f503b877622fe33430b3c7d963bdc0f2adc511e54a1eae3"
+checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
 dependencies = [
  "itoa",
  "ryu",
@@ -2504,18 +2694,19 @@ dependencies = [
 
 [[package]]
 name = "serde_path_to_error"
-version = "0.1.11"
+version = "0.1.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7f05c1d5476066defcdfacce1f52fc3cae3af1d3089727100c02ae92e5abbe0"
+checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6"
 dependencies = [
+ "itoa",
  "serde",
 ]
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.3"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
+checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0"
 dependencies = [
  "serde",
 ]
@@ -2534,11 +2725,11 @@ dependencies = [
 
 [[package]]
 name = "serde_yaml"
-version = "0.9.22"
+version = "0.9.34+deprecated"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "452e67b9c20c37fa79df53201dc03839651086ed9bbe92b3ca585ca9fdaa7d85"
+checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47"
 dependencies = [
- "indexmap 2.0.0",
+ "indexmap 2.2.6",
  "itoa",
  "ryu",
  "serde",
@@ -2553,79 +2744,69 @@ checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c"
 dependencies = [
  "cfg-if",
  "cpufeatures",
- "digest 0.10.7",
+ "digest",
 ]
 
 [[package]]
 name = "sha1"
-version = "0.10.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
-dependencies = [
- "cfg-if",
- "cpufeatures",
- "digest 0.10.7",
-]
-
-[[package]]
-name = "sha2"
-version = "0.9.9"
+version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
 dependencies = [
- "block-buffer 0.9.0",
  "cfg-if",
  "cpufeatures",
- "digest 0.9.0",
- "opaque-debug",
+ "digest",
 ]
 
 [[package]]
 name = "sha2"
-version = "0.10.7"
+version = "0.10.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
 dependencies = [
  "cfg-if",
  "cpufeatures",
- "digest 0.10.7",
+ "digest",
 ]
 
 [[package]]
 name = "sharded-slab"
-version = "0.1.4"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"
+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
 dependencies = [
  "lazy_static",
 ]
 
 [[package]]
 name = "shlex"
-version = "1.1.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
 
 [[package]]
 name = "signal-hook-registry"
-version = "1.4.1"
+version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "signature"
-version = "1.6.4"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c"
+checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
+dependencies = [
+ "rand_core",
+]
 
 [[package]]
 name = "simd-adler32"
-version = "0.3.5"
+version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f"
+checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
 
 [[package]]
 name = "simple_asn1"
@@ -2641,62 +2822,46 @@ dependencies = [
 
 [[package]]
 name = "slab"
-version = "0.4.8"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
 name = "smallvec"
-version = "1.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
-
-[[package]]
-name = "socket2"
-version = "0.4.9"
+version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
-dependencies = [
- "libc",
- "winapi",
-]
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "socket2"
-version = "0.5.3"
+version = "0.5.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877"
+checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
 dependencies = [
  "libc",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "spin"
-version = "0.5.2"
+version = "0.9.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
 
 [[package]]
 name = "spki"
-version = "0.6.0"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b"
+checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
 dependencies = [
  "base64ct",
  "der",
 ]
 
 [[package]]
-name = "static_assertions"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
-
-[[package]]
 name = "subslice"
 version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2713,20 +2878,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
 
 [[package]]
 name = "syn"
-version = "1.0.109"
+version = "2.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "syn"
-version = "2.0.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1182caafaab7018eaea9b404afa8184c0baf42a04d5e10ae4f4843c2029c8aab"
+checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2740,39 +2894,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
 
 [[package]]
-name = "synchronoise"
+name = "sync_wrapper"
 version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dbc01390fc626ce8d1cffe3376ded2b72a11bb70e1c75f404a210e4daa4def2"
-dependencies = [
- "crossbeam-queue",
-]
+checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394"
 
 [[package]]
 name = "thiserror"
-version = "1.0.40"
+version = "1.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
+checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.40"
+version = "1.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
+checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.21",
+ "syn",
 ]
 
 [[package]]
 name = "thread_local"
-version = "1.1.7"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
 dependencies = [
  "cfg-if",
  "once_cell",
@@ -2788,34 +2939,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "thrift"
-version = "0.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09678c4cdbb4eed72e18b7c2af1329c69825ed16fcbac62d083fc3e2b0590ff0"
-dependencies = [
- "byteorder",
- "integer-encoding",
- "log",
- "ordered-float",
- "threadpool",
-]
-
-[[package]]
-name = "tikv-jemalloc-ctl"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e37706572f4b151dff7a0146e040804e9c26fe3a3118591112f05cf12a4216c1"
-dependencies = [
- "libc",
- "paste",
- "tikv-jemalloc-sys",
-]
-
-[[package]]
 name = "tikv-jemalloc-sys"
-version = "0.5.3+5.3.0-patched"
+version = "0.5.4+5.3.0-patched"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a678df20055b43e57ef8cddde41cdfda9a3c1a060b67f4c5836dfb1d78543ba8"
+checksum = "9402443cb8fd499b6f327e40565234ff34dbda27460c5b47db0db77443dd85d1"
 dependencies = [
  "cc",
  "libc",
@@ -2823,9 +2950,9 @@ dependencies = [
 
 [[package]]
 name = "tikv-jemallocator"
-version = "0.5.0"
+version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20612db8a13a6c06d57ec83953694185a367e16945f66565e8028d2c0bd76979"
+checksum = "965fe0c26be5c56c94e38ba547249074803efd52adfb66de62107d95aab3eaca"
 dependencies = [
  "libc",
  "tikv-jemalloc-sys",
@@ -2833,11 +2960,14 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.22"
+version = "0.3.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea9e1b3cf1243ae005d9e74085d4d542f3125458f3a81af210d901dcd7411efd"
+checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
 dependencies = [
+ "deranged",
  "itoa",
+ "num-conv",
+ "powerfmt",
  "serde",
  "time-core",
  "time-macros",
@@ -2845,16 +2975,17 @@ dependencies = [
 
 [[package]]
 name = "time-core"
-version = "0.1.1"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.9"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b"
+checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
 dependencies = [
+ "num-conv",
  "time-core",
 ]
 
@@ -2875,51 +3006,61 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.28.2"
+version = "1.38.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2"
+checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a"
 dependencies = [
- "autocfg",
+ "backtrace",
  "bytes",
  "libc",
  "mio",
  "num_cpus",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2 0.4.9",
+ "socket2",
  "tokio-macros",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
+name = "tokio-io-timeout"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf"
+dependencies = [
+ "pin-project-lite",
+ "tokio",
+]
+
+[[package]]
 name = "tokio-macros"
-version = "2.1.0"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
+checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.21",
+ "syn",
 ]
 
 [[package]]
 name = "tokio-rustls"
-version = "0.23.4"
+version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59"
+checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
 dependencies = [
- "rustls 0.20.8",
+ "rustls 0.21.12",
  "tokio",
- "webpki",
 ]
 
 [[package]]
 name = "tokio-rustls"
-version = "0.24.1"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
+checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
 dependencies = [
- "rustls 0.21.2",
+ "rustls 0.22.4",
+ "rustls-pki-types",
  "tokio",
 ]
 
@@ -2937,9 +3078,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-stream"
-version = "0.1.14"
+version = "0.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"
+checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af"
 dependencies = [
  "futures-core",
  "pin-project-lite",
@@ -2948,50 +3089,87 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.7.8"
+version = "0.7.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d"
+checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1"
 dependencies = [
  "bytes",
  "futures-core",
  "futures-sink",
  "pin-project-lite",
  "tokio",
- "tracing",
 ]
 
 [[package]]
 name = "toml"
-version = "0.7.5"
+version = "0.8.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ebafdf5ad1220cb59e7d17cf4d2c72015297b75b19a10472f99b89225089240"
+checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit",
+ "toml_edit 0.22.14",
 ]
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.3"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.19.11"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
+dependencies = [
+ "indexmap 2.2.6",
+ "toml_datetime",
+ "winnow 0.5.40",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "266f016b7f039eec8a1a80dfe6156b633d208b9fccca5e4db1d6775b0c4e34a7"
+checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38"
 dependencies = [
- "indexmap 2.0.0",
+ "indexmap 2.2.6",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow",
+ "winnow 0.6.11",
+]
+
+[[package]]
+name = "tonic"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13"
+dependencies = [
+ "async-stream",
+ "async-trait",
+ "axum 0.6.20",
+ "base64 0.21.7",
+ "bytes",
+ "h2 0.3.26",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "hyper 0.14.29",
+ "hyper-timeout",
+ "percent-encoding",
+ "pin-project",
+ "prost",
+ "tokio",
+ "tokio-stream",
+ "tower",
+ "tower-layer",
+ "tower-service",
+ "tracing",
 ]
 
 [[package]]
@@ -3002,8 +3180,13 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"
 dependencies = [
  "futures-core",
  "futures-util",
+ "indexmap 1.9.3",
  "pin-project",
  "pin-project-lite",
+ "rand",
+ "slab",
+ "tokio",
+ "tokio-util",
  "tower-layer",
  "tower-service",
  "tracing",
@@ -3011,17 +3194,15 @@ dependencies = [
 
 [[package]]
 name = "tower-http"
-version = "0.4.1"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8bd22a874a2d0b70452d5597b12c537331d49060824a95f49f108994f94aa4c"
+checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5"
 dependencies = [
- "bitflags 2.3.2",
+ "bitflags 2.5.0",
  "bytes",
- "futures-core",
- "futures-util",
- "http",
- "http-body",
- "http-range-header",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "http-body-util",
  "pin-project-lite",
  "tower",
  "tower-layer",
@@ -3043,11 +3224,10 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
 
 [[package]]
 name = "tracing"
-version = "0.1.37"
+version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
- "cfg-if",
  "log",
  "pin-project-lite",
  "tracing-attributes",
@@ -3056,20 +3236,20 @@ dependencies = [
 
 [[package]]
 name = "tracing-attributes"
-version = "0.1.26"
+version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.21",
+ "syn",
 ]
 
 [[package]]
 name = "tracing-core"
-version = "0.1.31"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
 dependencies = [
  "once_cell",
  "valuable",
@@ -3088,34 +3268,38 @@ dependencies = [
 
 [[package]]
 name = "tracing-log"
-version = "0.1.3"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
 dependencies = [
- "lazy_static",
  "log",
+ "once_cell",
  "tracing-core",
 ]
 
 [[package]]
 name = "tracing-opentelemetry"
-version = "0.18.0"
+version = "0.23.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21ebb87a95ea13271332df069020513ab70bdb5637ca42d6e492dc3bbbad48de"
+checksum = "a9be14ba1bbe4ab79e9229f7f89fab8d120b865859f10527f31c033e599d2284"
 dependencies = [
+ "js-sys",
  "once_cell",
  "opentelemetry",
+ "opentelemetry_sdk",
+ "smallvec",
  "tracing",
  "tracing-core",
  "tracing-log",
  "tracing-subscriber",
+ "web-time",
 ]
 
 [[package]]
 name = "tracing-subscriber"
-version = "0.3.17"
+version = "0.3.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
 dependencies = [
  "matchers",
  "nu-ansi-term",
@@ -3130,134 +3314,105 @@ dependencies = [
 ]
 
 [[package]]
-name = "trust-dns-proto"
-version = "0.22.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f7f83d1e4a0e4358ac54c5c3681e5d7da5efc5a7a632c90bb6d6669ddd9bc26"
-dependencies = [
- "async-trait",
- "cfg-if",
- "data-encoding",
- "enum-as-inner",
- "futures-channel",
- "futures-io",
- "futures-util",
- "idna 0.2.3",
- "ipnet",
- "lazy_static",
- "rand 0.8.5",
- "smallvec",
- "thiserror",
- "tinyvec",
- "tokio",
- "tracing",
- "url",
-]
-
-[[package]]
-name = "trust-dns-resolver"
-version = "0.22.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aff21aa4dcefb0a1afbfac26deb0adc93888c7d295fb63ab273ef276ba2b7cfe"
-dependencies = [
- "cfg-if",
- "futures-util",
- "ipconfig",
- "lazy_static",
- "lru-cache",
- "parking_lot",
- "resolv-conf",
- "smallvec",
- "thiserror",
- "tokio",
- "tracing",
- "trust-dns-proto",
-]
-
-[[package]]
 name = "try-lock"
-version = "0.2.4"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
 
 [[package]]
 name = "typenum"
-version = "1.16.0"
+version = "1.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 
 [[package]]
 name = "typewit"
-version = "1.4.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4061a10d4d8f3081a8ccc025182afd8434302d8d4b4503ec6d8510d09df08c2d"
+checksum = "c6fb9ae6a3cafaf0a5d14c2302ca525f9ae8e07a0f0e6949de88d882c37a6e24"
+dependencies = [
+ "typewit_proc_macros",
+]
+
+[[package]]
+name = "typewit_proc_macros"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e36a83ea2b3c704935a01b4642946aadd445cea40b10935e3f8bd8052b8193d6"
 
 [[package]]
 name = "uncased"
-version = "0.9.9"
+version = "0.9.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b9bc53168a4be7402ab86c3aad243a84dd7381d09be0eddc81280c1da95ca68"
+checksum = "e1b88fcfe09e89d3866a5c11019378088af2d24c3fbd4f0543f96b479ec90697"
 dependencies = [
  "version_check",
 ]
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.13"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.9"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
 dependencies = [
  "tinyvec",
 ]
 
 [[package]]
 name = "unsafe-libyaml"
-version = "0.2.8"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1865806a559042e51ab5414598446a5871b561d21b6764f2eabb0dd481d880a6"
+checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861"
 
 [[package]]
 name = "unsigned-varint"
-version = "0.7.1"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d86a8dc7f45e4c1b0d30e43038c38f274e77af056aa5f74b93c2cf9eb3c1c836"
+checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06"
 
 [[package]]
 name = "untrusted"
-version = "0.7.1"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
 
 [[package]]
 name = "url"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
 dependencies = [
  "form_urlencoded",
- "idna 0.4.0",
+ "idna 0.5.0",
  "percent-encoding",
+ "serde",
 ]
 
 [[package]]
+name = "urlencoding"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
+
+[[package]]
 name = "uuid"
-version = "1.3.4"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fa2982af2eec27de306107c027578ff7f423d65f7250e40ce0fea8f45248b81"
+checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
 dependencies = [
- "getrandom 0.2.10",
+ "getrandom",
 ]
 
 [[package]]
@@ -3289,21 +3444,15 @@ dependencies = [
 
 [[package]]
 name = "wasi"
-version = "0.9.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-
-[[package]]
-name = "wasi"
 version = "0.11.0+wasi-snapshot-preview1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.87"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -3311,24 +3460,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.87"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.21",
+ "syn",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.37"
+version = "0.4.42"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03"
+checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -3338,9 +3487,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.87"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -3348,60 +3497,60 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.87"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.21",
+ "syn",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.87"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
 name = "web-sys"
-version = "0.3.64"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
+checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
 ]
 
 [[package]]
-name = "webpki"
-version = "0.22.0"
+name = "web-time"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd"
+checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb"
 dependencies = [
- "ring",
- "untrusted",
+ "js-sys",
+ "wasm-bindgen",
 ]
 
 [[package]]
 name = "weezl"
-version = "0.1.7"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
+checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
 
 [[package]]
 name = "widestring"
-version = "1.0.2"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8"
+checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311"
 
 [[package]]
 name = "wildmatch"
-version = "2.1.1"
+version = "2.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee583bdc5ff1cf9db20e9db5bb3ff4c3089a8f6b8b31aff265c9aba85812db86"
+checksum = "3928939971918220fed093266b809d1ee4ec6c1a2d72692ff6876898f3b16c19"
 
 [[package]]
 name = "winapi"
@@ -3427,143 +3576,159 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows-sys"
-version = "0.42.0"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
- "windows_aarch64_gnullvm 0.42.2",
- "windows_aarch64_msvc 0.42.2",
- "windows_i686_gnu 0.42.2",
- "windows_i686_msvc 0.42.2",
- "windows_x86_64_gnu 0.42.2",
- "windows_x86_64_gnullvm 0.42.2",
- "windows_x86_64_msvc 0.42.2",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
 name = "windows-sys"
-version = "0.48.0"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
 name = "windows-targets"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
- "windows_aarch64_gnullvm 0.48.0",
- "windows_aarch64_msvc 0.48.0",
- "windows_i686_gnu 0.48.0",
- "windows_i686_msvc 0.48.0",
- "windows_x86_64_gnu 0.48.0",
- "windows_x86_64_gnullvm 0.48.0",
- "windows_x86_64_msvc 0.48.0",
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
 ]
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.48.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.48.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.48.0"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.48.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.48.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.48.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.48.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
 
 [[package]]
 name = "winnow"
-version = "0.4.7"
+version = "0.5.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca0ace3845f0d96209f0375e6d367e3eb87eb65d27d445bdc9f1843a26f39448"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
-name = "winreg"
-version = "0.7.0"
+name = "winnow"
+version = "0.6.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69"
+checksum = "56c52728401e1dc672a56e81e593e912aa54c78f40246869f78359a2bf24d29d"
 dependencies = [
- "winapi",
+ "memchr",
 ]
 
 [[package]]
@@ -3577,32 +3742,54 @@ dependencies = [
 ]
 
 [[package]]
+name = "winreg"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "yansi"
-version = "0.5.1"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
+checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049"
 
 [[package]]
-name = "zeroize"
-version = "1.6.0"
+name = "yap"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfe269e7b803a5e8e20cbd97860e136529cd83bf2c9c6d37b142467e7e1f051f"
+
+[[package]]
+name = "zerocopy"
+version = "0.7.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9"
+checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087"
 dependencies = [
- "zeroize_derive",
+ "zerocopy-derive",
 ]
 
 [[package]]
-name = "zeroize_derive"
-version = "1.4.2"
+name = "zerocopy-derive"
+version = "0.7.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
+checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.21",
+ "syn",
 ]
 
 [[package]]
+name = "zeroize"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde"
+
+[[package]]
 name = "zigzag"
 version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3613,11 +3800,25 @@ dependencies = [
 
 [[package]]
 name = "zstd-sys"
-version = "2.0.8+zstd.1.5.5"
+version = "2.0.10+zstd.1.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c"
+checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa"
 dependencies = [
  "cc",
- "libc",
  "pkg-config",
 ]
+
+[[package]]
+name = "zune-core"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a"
+
+[[package]]
+name = "zune-jpeg"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec866b44a2a1fd6133d363f073ca1b179f438f99e7e5bfb1e33f7181facfe448"
+dependencies = [
+ "zune-core",
+]
diff --git a/pkgs/servers/matrix-conduit/default.nix b/pkgs/servers/matrix-conduit/default.nix
index 115c7e226e847..91cdded5a2feb 100644
--- a/pkgs/servers/matrix-conduit/default.nix
+++ b/pkgs/servers/matrix-conduit/default.nix
@@ -6,22 +6,19 @@
 , stdenv
 , darwin
 , nixosTests
-, rocksdb_8_3
+, rocksdb
 , rust-jemalloc-sys
 }:
 
-let
-  rocksdb = rocksdb_8_3;
-in
 rustPlatform.buildRustPackage rec {
   pname = "matrix-conduit";
-  version = "0.6.0";
+  version = "0.8.0";
 
   src = fetchFromGitLab {
     owner = "famedly";
     repo = "conduit";
     rev = "v${version}";
-    hash = "sha256-TpNssMHvSKcxJMas5lQNWEbIv09u4/niBN2C27Mp0JY=";
+    hash = "sha256-/qKPeE2Ptweaf+rHOvdW0TUDLwN9D93MMgDoU4fTzEA=";
   };
 
   # We have to use importCargoLock here because `cargo vendor` currently doesn't support workspace
@@ -29,9 +26,7 @@ rustPlatform.buildRustPackage rec {
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "heed-0.10.6" = "sha256-rm02pJ6wGYN4SsAbp85jBVHDQ5ITjZZd+79EC2ubRsY=";
-      "reqwest-0.11.9" = "sha256-wH/q7REnkz30ENBIK5Rlxnc1F6vOyuEANMHFmiVPaGw=";
-      "ruma-0.8.2" = "sha256-GkHLY5unh7uyFNe0RS+3xQ4Ou8qBhzd+kEnCC7xUnMo=";
+      "ruma-0.10.1" = "sha256-I1mTeJLo+pgIqFkn1D2De/oACQPkUELjGdyGf3MVuLQ=";
     };
   };
 
@@ -51,6 +46,7 @@ rustPlatform.buildRustPackage rec {
     rust-jemalloc-sys
   ] ++ lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Security
+    darwin.apple_sdk.frameworks.SystemConfiguration
   ];
 
   env = {
@@ -66,7 +62,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A Matrix homeserver written in Rust";
+    description = "Matrix homeserver written in Rust";
     homepage = "https://conduit.rs/";
     license = licenses.asl20;
     maintainers = with maintainers; [ pstn pimeys ];
diff --git a/pkgs/servers/matrix-hebbot/default.nix b/pkgs/servers/matrix-hebbot/default.nix
index e8c0f7076a17b..24d1d89ecde5a 100644
--- a/pkgs/servers/matrix-hebbot/default.nix
+++ b/pkgs/servers/matrix-hebbot/default.nix
@@ -35,7 +35,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ] ++ lib.optional stdenv.isDarwin Security;
 
   meta = with lib; {
-    description = "A Matrix bot which can generate \"This Week in X\" like blog posts ";
+    description = "Matrix bot which can generate \"This Week in X\" like blog posts ";
     homepage = "https://github.com/haecker-felix/hebbot";
     changelog = "https://github.com/haecker-felix/hebbot/releases/tag/v${version}";
     license = with licenses; [ agpl3Only ];
diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix
index 941a7fff45d59..136cb0828f326 100644
--- a/pkgs/servers/matrix-synapse/default.nix
+++ b/pkgs/servers/matrix-synapse/default.nix
@@ -32,20 +32,20 @@ let
 in
 python.pkgs.buildPythonApplication rec {
   pname = "matrix-synapse";
-  version = "1.107.0";
+  version = "1.109.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "element-hq";
     repo = "synapse";
     rev = "v${version}";
-    hash = "sha256-xT9DpBBLavI7QLuyqEtTyjHoP+pQ4wlNupJFWtppwh8=";
+    hash = "sha256-AUaHgMKte1EIfI0EQm8YeQVtlXGTm+MZwq22WzYHGsE=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-bGRIzgFNHi/4jOWMTgwA7hVcvfHROHE+nnZtTPjwpmI=";
+    hash = "sha256-KwRNn2Ypt87QRUTCsj00zsu6uQtP5MSuM6B2DemoFGs=";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix b/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix
index e7928dab54178..a2f75244b9b35 100644
--- a/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix
+++ b/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix
@@ -48,7 +48,7 @@ mkYarnPackage rec {
   doDist = false;
 
   meta = with lib; {
-    description = "A Matrix <--> Slack bridge";
+    description = "Matrix <--> Slack bridge";
     mainProgram = "matrix-appservice-slack";
     maintainers = with maintainers; [ beardhatcode chvp ];
     license = licenses.asl20;
diff --git a/pkgs/servers/matrix-synapse/matrix-hookshot/default.nix b/pkgs/servers/matrix-synapse/matrix-hookshot/default.nix
index e89e4e1e682b4..4b418ff20d1da 100644
--- a/pkgs/servers/matrix-synapse/matrix-hookshot/default.nix
+++ b/pkgs/servers/matrix-synapse/matrix-hookshot/default.nix
@@ -80,7 +80,7 @@ mkYarnPackage rec {
   doDist = false;
 
   meta = with lib; {
-    description = "A bridge between Matrix and multiple project management services, such as GitHub, GitLab and JIRA";
+    description = "Bridge between Matrix and multiple project management services, such as GitHub, GitLab and JIRA";
     mainProgram = "matrix-hookshot";
     maintainers = with maintainers; [ chvp ];
     license = licenses.asl20;
diff --git a/pkgs/servers/matrix-synapse/plugins/rendezvous.nix b/pkgs/servers/matrix-synapse/plugins/rendezvous.nix
index c15c24681a2c4..82874d3b3bd1a 100644
--- a/pkgs/servers/matrix-synapse/plugins/rendezvous.nix
+++ b/pkgs/servers/matrix-synapse/plugins/rendezvous.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchFromGitHub, fetchPypi, rustPlatform, setuptools-rust }:
+{ lib, buildPythonPackage, fetchFromGitHub, rustPlatform, setuptools-rust }:
 
 buildPythonPackage rec {
   pname = "matrix-http-rendezvous-synapse";
diff --git a/pkgs/servers/matrix-synapse/sliding-sync/default.nix b/pkgs/servers/matrix-synapse/sliding-sync/default.nix
index b0fc3c27f9c21..1c77969ad4bb7 100644
--- a/pkgs/servers/matrix-synapse/sliding-sync/default.nix
+++ b/pkgs/servers/matrix-synapse/sliding-sync/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "matrix-sliding-sync";
-  version = "0.99.17";
+  version = "0.99.18";
 
   src = fetchFromGitHub {
     owner = "matrix-org";
     repo = "sliding-sync";
     rev = "refs/tags/v${version}";
-    hash = "sha256-tzhz2Jlhvn2blO5jdWNS++V28kNXmmg+a2BU7g5zTx0=";
+    hash = "sha256-zqqCgmzea25H1wcvgIb4hIV3maReL9tmNxvo9JsSlZk=";
   };
 
   vendorHash = "sha256-THjvc0TepIBFOTte7t63Dmadf3HMuZ9m0YzQMI5e5Pw=";
@@ -28,7 +28,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A sliding sync implementation of MSC3575 for matrix";
+    description = "Sliding sync implementation of MSC3575 for matrix";
     homepage = "https://github.com/matrix-org/sliding-sync";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ emilylange yayayayaka ];
diff --git a/pkgs/servers/matrix-synapse/tools/rust-synapse-compress-state/default.nix b/pkgs/servers/matrix-synapse/tools/rust-synapse-compress-state/default.nix
index 8b1194c94fd5a..a66a1bdb89fee 100644
--- a/pkgs/servers/matrix-synapse/tools/rust-synapse-compress-state/default.nix
+++ b/pkgs/servers/matrix-synapse/tools/rust-synapse-compress-state/default.nix
@@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A tool to compress some state in a Synapse instance's database";
+    description = "Tool to compress some state in a Synapse instance's database";
     homepage = "https://github.com/matrix-org/rust-synapse-compress-state";
     license = licenses.asl20;
     maintainers = with maintainers; [ hexa maralorn ];
diff --git a/pkgs/servers/mattermost/default.nix b/pkgs/servers/mattermost/default.nix
index 2e4df7b51dc9f..12be474fa5aec 100644
--- a/pkgs/servers/mattermost/default.nix
+++ b/pkgs/servers/mattermost/default.nix
@@ -12,13 +12,13 @@ buildGoModule rec {
   # See https://docs.mattermost.com/upgrade/extended-support-release.html
   # When a new ESR version is available (e.g. 8.1.x -> 9.5.x), update
   # the version regex in passthru.updateScript as well.
-  version = "9.5.5";
+  version = "9.5.6";
 
   src = fetchFromGitHub {
     owner = "mattermost";
     repo = "mattermost";
     rev = "v${version}";
-    hash = "sha256-ZaFXuYm9SEE9ARN5PG8vjt9WnNfGiALilGzjfnDP7aA=";
+    hash = "sha256-bLnvbduP6h9o82BQUNh9MyFpW/Cbl6c5o9hrPV0Z8+0=";
   };
 
   # Needed because buildGoModule does not support go workspaces yet.
@@ -34,7 +34,7 @@ buildGoModule rec {
 
   webapp = fetchurl {
     url = "https://releases.mattermost.com/${version}/mattermost-${version}-linux-amd64.tar.gz";
-    hash = "sha256-tgds8eTBeisuJcLgtx6zOiFUcVL1oU0LLbPqmh4SQUU=";
+    hash = "sha256-ZlvO/7kdMopIHBDdFp6wSQCR+NobGdDC6PcVd1iG16E=";
   };
 
   vendorHash = "sha256-TJCtgNf56A1U0EbV5gXjTro+YudVBRWiSZoBC3nJxnE=";
diff --git a/pkgs/servers/mautrix-discord/default.nix b/pkgs/servers/mautrix-discord/default.nix
index 6ede276ec2b01..bd1e72c579cff 100644
--- a/pkgs/servers/mautrix-discord/default.nix
+++ b/pkgs/servers/mautrix-discord/default.nix
@@ -35,7 +35,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A Matrix-Discord puppeting bridge";
+    description = "Matrix-Discord puppeting bridge";
     homepage = "https://github.com/mautrix/discord";
     changelog = "https://github.com/mautrix/discord/blob/${src.rev}/CHANGELOG.md";
     license = licenses.agpl3Only;
diff --git a/pkgs/servers/mautrix-facebook/default.nix b/pkgs/servers/mautrix-facebook/default.nix
index b66ebaa47b539..cb7897853b520 100644
--- a/pkgs/servers/mautrix-facebook/default.nix
+++ b/pkgs/servers/mautrix-facebook/default.nix
@@ -56,7 +56,7 @@ python3.pkgs.buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/mautrix/facebook";
     changelog = "https://github.com/mautrix/facebook/releases/tag/v${version}";
-    description = "A Matrix-Facebook Messenger puppeting bridge";
+    description = "Matrix-Facebook Messenger puppeting bridge";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ kevincox ];
     mainProgram = "mautrix-facebook";
diff --git a/pkgs/servers/mautrix-googlechat/default.nix b/pkgs/servers/mautrix-googlechat/default.nix
index 3c5861f16647b..e0f5bc80b8f14 100644
--- a/pkgs/servers/mautrix-googlechat/default.nix
+++ b/pkgs/servers/mautrix-googlechat/default.nix
@@ -64,7 +64,7 @@
 
   meta = with lib; {
     homepage = "https://github.com/mautrix/googlechat";
-    description = "A Matrix-Google Chat puppeting bridge";
+    description = "Matrix-Google Chat puppeting bridge";
     license = licenses.agpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ arcnmx ];
diff --git a/pkgs/servers/mautrix-signal/default.nix b/pkgs/servers/mautrix-signal/default.nix
index 524897c1d51f6..ab80e8374ad39 100644
--- a/pkgs/servers/mautrix-signal/default.nix
+++ b/pkgs/servers/mautrix-signal/default.nix
@@ -24,7 +24,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/mautrix/signal";
-    description = "A Matrix-Signal puppeting bridge";
+    description = "Matrix-Signal puppeting bridge";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ expipiplus1 niklaskorz ma27 ];
     mainProgram = "mautrix-signal";
diff --git a/pkgs/servers/mautrix-telegram/default.nix b/pkgs/servers/mautrix-telegram/default.nix
index 349c4e371ffc6..ad5d1d8d6fdb2 100644
--- a/pkgs/servers/mautrix-telegram/default.nix
+++ b/pkgs/servers/mautrix-telegram/default.nix
@@ -74,7 +74,7 @@ python.pkgs.buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/mautrix/telegram";
-    description = "A Matrix-Telegram hybrid puppeting/relaybot bridge";
+    description = "Matrix-Telegram hybrid puppeting/relaybot bridge";
     license = licenses.agpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ nyanloutre ma27 nickcao ];
diff --git a/pkgs/servers/mediamtx/default.nix b/pkgs/servers/mediamtx/default.nix
index aca51d8dc0d7d..35db7a9c65688 100644
--- a/pkgs/servers/mediamtx/default.nix
+++ b/pkgs/servers/mediamtx/default.nix
@@ -1,29 +1,30 @@
-{ lib
-, fetchFromGitHub
-, fetchurl
-, buildGoModule
-, nixosTests
+{
+  lib,
+  fetchFromGitHub,
+  fetchurl,
+  buildGoModule,
+  nixosTests,
 }:
 
 let
   hlsJs = fetchurl {
-    url = "https://cdn.jsdelivr.net/npm/hls.js@v1.5.8/dist/hls.min.js";
-    hash = "sha256-KG8Cm0dAsFbrBHuMi9c+bMocpSvWWK4c9aWH9LGfDY4=";
+    url = "https://cdn.jsdelivr.net/npm/hls.js@v1.5.11/dist/hls.min.js";
+    hash = "sha256-N10eCJk75KlKpHVXtwgC7vBDrU5b7ZQng9o/QK93m2w=";
   };
 in
 buildGoModule rec {
   pname = "mediamtx";
   # check for hls.js version updates in internal/servers/hls/hlsjsdownloader/VERSION
-  version = "1.8.2";
+  version = "1.8.3";
 
   src = fetchFromGitHub {
     owner = "bluenviron";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-hm6rfO9RF7bsSwxP8tKwiVqEpyQpVK4itWWklbOsKzw=";
+    hash = "sha256-/r5N9RSlYH6xM+JyETuTQWu0YTvaShI6APi8ibpP7Zg=";
   };
 
-  vendorHash = "sha256-QsRJ4hCtb29cT4QzPqW19bZxH+wMegufSxwdljXbuqs=";
+  vendorHash = "sha256-/TgSTXA6SOCfm/wtjJBtyIg4Fo0moJyC640zoIOQ4Fo=";
 
   postPatch = ''
     cp ${hlsJs} internal/servers/hls/hls.min.js
@@ -32,16 +33,14 @@ buildGoModule rec {
   # Tests need docker
   doCheck = false;
 
-  ldflags = [
-    "-X github.com/bluenviron/mediamtx/internal/core.version=v${version}"
-  ];
+  ldflags = [ "-X github.com/bluenviron/mediamtx/internal/core.version=v${version}" ];
 
-  passthru.tests = { inherit (nixosTests) mediamtx; };
+  passthru.tests = {
+    inherit (nixosTests) mediamtx;
+  };
 
   meta = with lib; {
-    description =
-      "Ready-to-use RTSP server and RTSP proxy that allows to read and publish video and audio streams"
-    ;
+    description = "Ready-to-use RTSP server and RTSP proxy that allows to read and publish video and audio streams";
     inherit (src.meta) homepage;
     license = licenses.mit;
     mainProgram = "mediamtx";
diff --git a/pkgs/servers/memcached/default.nix b/pkgs/servers/memcached/default.nix
index e7babb51a8d41..7747e4ec092d1 100644
--- a/pkgs/servers/memcached/default.nix
+++ b/pkgs/servers/memcached/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     ++ lib.optional stdenv.isDarwin "-Wno-error");
 
   meta = with lib; {
-    description = "A distributed memory object caching system";
+    description = "Distributed memory object caching system";
     homepage = "http://memcached.org/";
     license = licenses.bsd3;
     maintainers = [ maintainers.coconnor ];
diff --git a/pkgs/servers/memos/default.nix b/pkgs/servers/memos/default.nix
index 1e8b53fe96dcc..c389245dc7426 100644
--- a/pkgs/servers/memos/default.nix
+++ b/pkgs/servers/memos/default.nix
@@ -46,7 +46,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://usememos.com";
-    description = "A lightweight, self-hosted memo hub";
+    description = "Lightweight, self-hosted memo hub";
     maintainers = with maintainers; [ indexyz ];
     license = licenses.mit;
     mainProgram = "memos";
diff --git a/pkgs/servers/metabase/default.nix b/pkgs/servers/metabase/default.nix
index b68625058a223..0b7822a3c5481 100644
--- a/pkgs/servers/metabase/default.nix
+++ b/pkgs/servers/metabase/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "metabase";
-  version = "0.49.11";
+  version = "0.49.12";
 
   src = fetchurl {
     url = "https://downloads.metabase.com/v${version}/metabase.jar";
-    hash = "sha256-sLQdIjj2bB4Kebwn2fi6mwz2zym/Sv5l42dWAz5DrAg=";
+    hash = "sha256-+THQ4i7wMO/76MNjdvDoqstFcXknZ5/F82TNXn07gnQ=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The easy, open source way for everyone in your company to ask questions and learn from data";
+    description = "Easy, open source way for everyone in your company to ask questions and learn from data";
     homepage    = "https://metabase.com";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license     = licenses.agpl3Only;
diff --git a/pkgs/servers/microbin/default.nix b/pkgs/servers/microbin/default.nix
index d829f14bb5c4d..55ebc572b686e 100644
--- a/pkgs/servers/microbin/default.nix
+++ b/pkgs/servers/microbin/default.nix
@@ -77,7 +77,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A tiny, self-contained, configurable paste bin and URL shortener written in Rust";
+    description = "Tiny, self-contained, configurable paste bin and URL shortener written in Rust";
     homepage = "https://github.com/szabodanika/microbin";
     changelog = "https://github.com/szabodanika/microbin/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/pkgs/servers/minio/default.nix b/pkgs/servers/minio/default.nix
index 1d54e942eda8e..93be1992f3a23 100644
--- a/pkgs/servers/minio/default.nix
+++ b/pkgs/servers/minio/default.nix
@@ -21,16 +21,16 @@ let
 in
 buildGoModule rec {
   pname = "minio";
-  version = "2024-05-10T01-41-38Z";
+  version = "2024-06-13T22-53-53Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "minio";
     rev = "RELEASE.${version}";
-    hash = "sha256-qYNyAfWdmQPMIwHEzSlA4nf93aFkR1TvulOVNf46wAI=";
+    hash = "sha256-SqrL1fYVy7OylepQGmTm6p77q3vssNdWyJ5+9wZHehQ=";
   };
 
-  vendorHash = "sha256-fyNOROkByuH5oEnYiQd0XhqqDKL4EnOEZedXCBI6BuY=";
+  vendorHash = "sha256-AK6PGX/ezkN/LAnOLd8fRGkzwhTE4BY63H9ebnXxEOA=";
 
   doCheck = false;
 
@@ -53,7 +53,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://www.minio.io/";
-    description = "An S3-compatible object storage server";
+    description = "S3-compatible object storage server";
     changelog = "https://github.com/minio/minio/releases/tag/RELEASE.${version}";
     maintainers = with maintainers; [ eelco bachp ];
     license = licenses.agpl3Plus;
diff --git a/pkgs/servers/minio/legacy_fs.nix b/pkgs/servers/minio/legacy_fs.nix
index 3cf4bed41ebaf..345d39630349f 100644
--- a/pkgs/servers/minio/legacy_fs.nix
+++ b/pkgs/servers/minio/legacy_fs.nix
@@ -42,7 +42,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://www.minio.io/";
-    description = "An S3-compatible object storage server";
+    description = "S3-compatible object storage server";
     mainProgram = "minio";
     changelog = "https://github.com/minio/minio/releases/tag/RELEASE.${version}";
     maintainers = with maintainers; [ eelco bachp ];
diff --git a/pkgs/servers/mir/common.nix b/pkgs/servers/mir/common.nix
new file mode 100644
index 0000000000000..fa147541fc4ba
--- /dev/null
+++ b/pkgs/servers/mir/common.nix
@@ -0,0 +1,227 @@
+{
+  stdenv,
+  lib,
+  fetchFromGitHub,
+  testers,
+  cmake,
+  pkg-config,
+  python3,
+  boost,
+  egl-wayland,
+  freetype,
+  glib,
+  glm,
+  glog,
+  libdrm,
+  libepoxy,
+  libevdev,
+  libglvnd,
+  libinput,
+  libuuid,
+  libxcb,
+  libxkbcommon,
+  libxmlxx,
+  yaml-cpp,
+  lttng-ust,
+  mesa,
+  nettle,
+  udev,
+  wayland,
+  wayland-scanner,
+  xorg,
+  xwayland,
+  dbus,
+  gobject-introspection,
+  gtest,
+  umockdev,
+  wlcs,
+  validatePkgConfig,
+}:
+
+{
+  version,
+  pinned ? false,
+  hash,
+  patches ? [ ],
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "mir";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "canonical";
+    repo = "mir";
+    rev = "v${finalAttrs.version}";
+    inherit hash;
+  };
+
+  inherit patches;
+
+  postPatch = ''
+    # Fix scripts that get run in tests
+    patchShebangs tools/detect_fd_leaks.bash tests/acceptance-tests/wayland-generator/test_wayland_generator.sh.in
+
+    # Fix LD_PRELOADing in tests
+    substituteInPlace \
+      cmake/MirCommon.cmake \
+      tests/umock-acceptance-tests/CMakeLists.txt \
+      tests/unit-tests/platforms/gbm-kms/kms/CMakeLists.txt \
+      tests/unit-tests/CMakeLists.txt \
+      --replace-warn 'LD_PRELOAD=liblttng-ust-fork.so' 'LD_PRELOAD=${lib.getLib lttng-ust}/lib/liblttng-ust-fork.so' \
+      --replace-warn 'LD_PRELOAD=libumockdev-preload.so.0' 'LD_PRELOAD=${lib.getLib umockdev}/lib/libumockdev-preload.so.0'
+
+    # Fix Xwayland default
+    substituteInPlace src/miral/x11_support.cpp \
+      --replace-fail '/usr/bin/Xwayland' '${lib.getExe xwayland}'
+
+    # Fix paths for generating drm-formats
+    substituteInPlace src/platform/graphics/CMakeLists.txt \
+      --replace-fail "/usr/include/drm/drm_fourcc.h" "${lib.getDev libdrm}/include/libdrm/drm_fourcc.h" \
+      --replace-fail "/usr/include/libdrm/drm_fourcc.h" "${lib.getDev libdrm}/include/libdrm/drm_fourcc.h"
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    cmake
+    glib # gdbus-codegen
+    lttng-ust # lttng-gen-tp
+    pkg-config
+    (python3.withPackages (
+      ps:
+      with ps;
+      [ pillow ]
+      ++ lib.optionals finalAttrs.finalPackage.doCheck [
+        pygobject3
+        python-dbusmock
+      ]
+    ))
+    validatePkgConfig
+    wayland-scanner
+  ];
+
+  buildInputs = [
+    boost
+    egl-wayland
+    freetype
+    glib
+    glm
+    glog
+    libdrm
+    libepoxy
+    libevdev
+    libglvnd
+    libinput
+    libuuid
+    libxcb
+    libxkbcommon
+    libxmlxx
+    yaml-cpp
+    lttng-ust
+    mesa
+    nettle
+    udev
+    wayland
+    xorg.libX11
+    xorg.libXcursor
+    xorg.xorgproto
+    xwayland
+  ];
+
+  nativeCheckInputs = [
+    dbus
+    gobject-introspection
+  ];
+
+  checkInputs = [
+    gtest
+    umockdev
+    wlcs
+  ];
+
+  cmakeFlags = [
+    (lib.cmakeBool "BUILD_DOXYGEN" false)
+    (lib.cmakeFeature "MIR_PLATFORM" (
+      lib.strings.concatStringsSep ";" [
+        "gbm-kms"
+        "x11"
+        "eglstream-kms"
+        "wayland"
+      ]
+    ))
+    (lib.cmakeBool "MIR_ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
+    # BadBufferTest.test_truncated_shm_file *doesn't* throw an error as the test expected, mark as such
+    # https://github.com/canonical/mir/pull/1947#issuecomment-811810872
+    (lib.cmakeBool "MIR_SIGBUS_HANDLER_ENVIRONMENT_BROKEN" true)
+    (lib.cmakeFeature "MIR_EXCLUDE_TESTS" (lib.strings.concatStringsSep ";" [ ]))
+    # These get built but don't get executed by default, yet they get installed when tests are enabled
+    (lib.cmakeBool "MIR_BUILD_PERFORMANCE_TESTS" false)
+    (lib.cmakeBool "MIR_BUILD_PLATFORM_TEST_HARNESS" false)
+    # https://github.com/canonical/mir/issues/2987
+    # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106799
+    (lib.cmakeBool "MIR_USE_PRECOMPILED_HEADERS" false)
+    (lib.cmakeFeature "MIR_COMPILER_QUIRKS" (
+      lib.strings.concatStringsSep ";" [
+        # https://github.com/canonical/mir/issues/3017 actually affects x86_64 as well
+        "test_touchspot_controller.cpp:array-bounds"
+      ]
+    ))
+  ];
+
+  doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
+
+  preCheck = ''
+    export XDG_RUNTIME_DIR=$TMP
+  '';
+
+  outputs = [
+    "out"
+    "dev"
+  ];
+
+  passthru = {
+    tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+    providedSessions = lib.optionals (lib.strings.versionOlder version "2.16.0") [
+      # More of an example than a fully functioning shell, some notes for the adventurous:
+      # - ~/.config/miral-shell.config is one possible user config location,
+      #   accepted options=value are according to `mir-shell --help`
+      # - default icon theme setting is DMZ-White, needs vanilla-dmz installed & on XCURSOR_PATH
+      #   or setting to be changed to an available theme
+      # - terminal emulator setting may need to be changed if miral-terminal script
+      #   does not know about preferred terminal
+      "mir-shell"
+    ];
+  } // lib.optionalAttrs (!pinned) {
+    updateScript = ./update.sh;
+  };
+
+  meta = with lib; {
+    description = "Display server and Wayland compositor developed by Canonical";
+    homepage = "https://mir-server.io";
+    changelog = "https://github.com/canonical/mir/releases/tag/v${finalAttrs.version}";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [
+      onny
+      OPNA2608
+    ];
+    platforms = platforms.linux;
+    pkgConfigModules = [
+      "miral"
+      "mircommon"
+      "mircore"
+      "miroil"
+      "mirplatform"
+      "mir-renderer-gl-dev"
+      "mirrenderer"
+      "mirserver"
+      "mirtest"
+      "mirwayland"
+    ] ++ lib.optionals (lib.strings.versionOlder version "2.17.0") [
+      "mircookie"
+    ] ++ lib.optionals (lib.strings.versionAtLeast version "2.17.0") [
+      "mircommon-internal"
+      "mirserver-internal"
+    ];
+  };
+})
diff --git a/pkgs/servers/mir/default.nix b/pkgs/servers/mir/default.nix
index 047d76dbc74f7..b61419eacf47f 100644
--- a/pkgs/servers/mir/default.nix
+++ b/pkgs/servers/mir/default.nix
@@ -1,206 +1,33 @@
-{ stdenv
-, lib
-, fetchFromGitHub
-, fetchpatch
-, gitUpdater
-, testers
-, cmake
-, pkg-config
-, python3
-, boost
-, egl-wayland
-, freetype
-, glib
-, glm
-, glog
-, libdrm
-, libepoxy
-, libevdev
-, libglvnd
-, libinput
-, libuuid
-, libxcb
-, libxkbcommon
-, libxmlxx
-, yaml-cpp
-, lttng-ust
-, mesa
-, nettle
-, udev
-, wayland
-, xorg
-, xwayland
-, dbus
-, gobject-introspection
-, gtest
-, umockdev
-, wlcs
-, validatePkgConfig
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "mir";
-  version = "2.15.0";
-
-  src = fetchFromGitHub {
-    owner = "MirServer";
-    repo = "mir";
-    rev = "v${finalAttrs.version}";
-    hash = "sha256-c1+gxzLEtNCjR/mx76O5QElQ8+AO4WsfcG7Wy1+nC6E=";
-  };
-
-  patches = [
-    # Fix gbm-kms tests
-    # Remove when version > 2.15.0
-    (fetchpatch {
-      name = "0001-mir-Fix-the-signature-of-drmModeCrtcSetGamma.patch";
-      url = "https://github.com/MirServer/mir/commit/98250e9c32c5b9b940da2fb0a32d8139bbc68157.patch";
-      hash = "sha256-tTtOHGNue5rsppOIQSfkOH5sVfFSn/KPGHmubNlRtLI=";
-    })
-  ];
-
-  postPatch = ''
-    # Fix scripts that get run in tests
-    patchShebangs tools/detect_fd_leaks.bash tests/acceptance-tests/wayland-generator/test_wayland_generator.sh.in
-
-    # Fix LD_PRELOADing in tests
-    for needsPreloadFixing in \
-      cmake/MirCommon.cmake \
-      tests/umock-acceptance-tests/CMakeLists.txt \
-      tests/unit-tests/platforms/gbm-kms/kms/CMakeLists.txt \
-      tests/unit-tests/CMakeLists.txt
-    do
-      substituteInPlace $needsPreloadFixing \
-        --replace 'LD_PRELOAD=liblttng-ust-fork.so' 'LD_PRELOAD=${lib.getLib lttng-ust}/lib/liblttng-ust-fork.so' \
-        --replace 'LD_PRELOAD=libumockdev-preload.so.0' 'LD_PRELOAD=${lib.getLib umockdev}/lib/libumockdev-preload.so.0'
-    done
-
-    # Fix Xwayland default
-    substituteInPlace src/miral/x11_support.cpp \
-      --replace '/usr/bin/Xwayland' '${lib.getExe xwayland}'
-
-    # Fix paths for generating drm-formats
-    substituteInPlace src/platform/graphics/CMakeLists.txt \
-      --replace "/usr/include/drm/drm_fourcc.h" "${lib.getDev libdrm}/include/libdrm/drm_fourcc.h" \
-      --replace "/usr/include/libdrm/drm_fourcc.h" "${lib.getDev libdrm}/include/libdrm/drm_fourcc.h"
-  '';
-
-  strictDeps = true;
-
-  nativeBuildInputs = [
-    cmake
-    glib # gdbus-codegen
-    lttng-ust # lttng-gen-tp
-    pkg-config
-    (python3.withPackages (ps: with ps; [
-      pillow
-    ] ++ lib.optionals finalAttrs.finalPackage.doCheck [
-      pygobject3
-      python-dbusmock
-    ]))
-    validatePkgConfig
-  ];
-
-  buildInputs = [
-    boost
-    egl-wayland
-    freetype
-    glib
-    glm
-    glog
-    libdrm
-    libepoxy
-    libevdev
-    libglvnd
-    libinput
-    libuuid
-    libxcb
-    libxkbcommon
-    libxmlxx
-    yaml-cpp
-    lttng-ust
-    mesa
-    nettle
-    udev
-    wayland
-    xorg.libX11
-    xorg.libXcursor
-    xorg.xorgproto
-    xwayland
-  ];
-
-  nativeCheckInputs = [
-    dbus
-    gobject-introspection
-  ];
-
-  checkInputs = [
-    gtest
-    umockdev
-    wlcs
-  ];
-
-  cmakeFlags = [
-    "-DBUILD_DOXYGEN=OFF"
-    "-DMIR_PLATFORM='gbm-kms;x11;eglstream-kms;wayland'"
-    "-DMIR_ENABLE_TESTS=${if finalAttrs.finalPackage.doCheck then "ON" else "OFF"}"
-    # BadBufferTest.test_truncated_shm_file *doesn't* throw an error as the test expected, mark as such
-    # https://github.com/MirServer/mir/pull/1947#issuecomment-811810872
-    "-DMIR_SIGBUS_HANDLER_ENVIRONMENT_BROKEN=ON"
-    "-DMIR_EXCLUDE_TESTS=${lib.strings.concatStringsSep ";" [
-    ]}"
-    # These get built but don't get executed by default, yet they get installed when tests are enabled
-    "-DMIR_BUILD_PERFORMANCE_TESTS=OFF"
-    "-DMIR_BUILD_PLATFORM_TEST_HARNESS=OFF"
-    # https://github.com/MirServer/mir/issues/2987
-    # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106799
-    "-DMIR_USE_PRECOMPILED_HEADERS=OFF"
-  ];
-
-  doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
-
-  preCheck = ''
-    # Needs to be exactly /tmp so some failing tests don't get run, don't know why they fail yet
-    # https://github.com/MirServer/mir/issues/2801
-    export XDG_RUNTIME_DIR=/tmp
-  '';
-
-  outputs = [ "out" "dev" ];
-
-  passthru = {
-    tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
-    updateScript = gitUpdater {
-      rev-prefix = "v";
-    };
-    # More of an example than a fully functioning shell, some notes for the adventurous:
-    # - ~/.config/miral-shell.config is one possible user config location,
-    #   accepted options=value are according to `mir-shell --help`
-    # - default icon theme setting is DMZ-White, needs vanilla-dmz installed & on XCURSOR_PATH
-    #   or setting to be changed to an available theme
-    # - terminal emulator setting may need to be changed if miral-terminal script
-    #   does not know about preferred terminal
-    providedSessions = [ "mir-shell" ];
+{ callPackage, fetchpatch }:
+
+let
+  common = callPackage ./common.nix { };
+in
+{
+  mir = common {
+    version = "2.17.0";
+    hash = "sha256-iDJ7NIFoSSXjMrHK2I6Linf7z0hvShj8fr6BGxgK5gE=";
   };
 
-  meta = with lib; {
-    description = "A display server and Wayland compositor developed by Canonical";
-    homepage = "https://mir-server.io";
-    changelog = "https://github.com/MirServer/mir/releases/tag/v${finalAttrs.version}";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ onny OPNA2608 ];
-    platforms = platforms.linux;
-    pkgConfigModules = [
-      "miral"
-      "mircommon"
-      "mircookie"
-      "mircore"
-      "miroil"
-      "mirplatform"
-      "mir-renderer-gl-dev"
-      "mirrenderer"
-      "mirserver"
-      "mirtest"
-      "mirwayland"
+  mir_2_15 = common {
+    version = "2.15.0";
+    pinned = true;
+    hash = "sha256-c1+gxzLEtNCjR/mx76O5QElQ8+AO4WsfcG7Wy1+nC6E=";
+    patches = [
+      # Fix gbm-kms tests
+      # Remove when version > 2.15.0
+      (fetchpatch {
+        name = "0001-mir-Fix-the-signature-of-drmModeCrtcSetGamma.patch";
+        url = "https://github.com/canonical/mir/commit/98250e9c32c5b9b940da2fb0a32d8139bbc68157.patch";
+        hash = "sha256-tTtOHGNue5rsppOIQSfkOH5sVfFSn/KPGHmubNlRtLI=";
+      })
+      # Fix external_client tests
+      # Remove when version > 2.15.0
+      (fetchpatch {
+        name = "0002-mir-Fix-cannot_start_X_Server_and_outdated_tests.patch";
+        url = "https://github.com/canonical/mir/commit/0704026bd06372ea8286a46d8c939286dd8a8c68.patch";
+        hash = "sha256-k+51piPQandbHdm+ioqpBrb+C7Aqi2kugchAehZ1aiU=";
+      })
     ];
   };
-})
+}
diff --git a/pkgs/servers/mir/update.sh b/pkgs/servers/mir/update.sh
new file mode 100755
index 0000000000000..bd969e9fceefd
--- /dev/null
+++ b/pkgs/servers/mir/update.sh
@@ -0,0 +1,8 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gnused jq common-updater-scripts
+
+set -eou pipefail
+
+version="$(curl --silent "https://api.github.com/repos/canonical/mir/releases" | jq '.[0].tag_name' --raw-output)"
+
+update-source-version mir "${version:1}" --file=./pkgs/servers/mir/default.nix
diff --git a/pkgs/servers/misc/gobgpd/default.nix b/pkgs/servers/misc/gobgpd/default.nix
index 14021f5a39c67..abc04b539558b 100644
--- a/pkgs/servers/misc/gobgpd/default.nix
+++ b/pkgs/servers/misc/gobgpd/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "gobgpd";
-  version = "3.26.0";
+  version = "3.27.0";
 
   src = fetchFromGitHub {
     owner = "osrg";
     repo = "gobgp";
     rev = "refs/tags/v${version}";
-    hash = "sha256-bFxKFAw02M8RmMCFFT3nu3urmvh7Wzi0rryuTi8Hw9k=";
+    hash = "sha256-RxBAnElmQkrkMuIC0UpneJXN1OiPhaTPm/tYvc8QSg8=";
   };
 
   vendorHash = "sha256-wrgRQwisOHAhvRbvGXMW5VWkQuEifCwCo3usuxLie4A=";
diff --git a/pkgs/servers/misc/oven-media-engine/default.nix b/pkgs/servers/misc/oven-media-engine/default.nix
index c5e2d181c1cba..e84dc8ea9e43f 100644
--- a/pkgs/servers/misc/oven-media-engine/default.nix
+++ b/pkgs/servers/misc/oven-media-engine/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchFromGitHub
-, fetchpatch
 , srt
 , bc
 , pkg-config
diff --git a/pkgs/servers/misc/podgrab/default.nix b/pkgs/servers/misc/podgrab/default.nix
index 4e5846faba566..74ed3d56862c5 100644
--- a/pkgs/servers/misc/podgrab/default.nix
+++ b/pkgs/servers/misc/podgrab/default.nix
@@ -22,7 +22,7 @@ buildGoModule rec {
   passthru.tests = { inherit (nixosTests) podgrab; };
 
   meta = with lib; {
-    description = "A self-hosted podcast manager to download episodes as soon as they become live";
+    description = "Self-hosted podcast manager to download episodes as soon as they become live";
     mainProgram = "podgrab";
     homepage = "https://github.com/akhilrex/podgrab";
     license = licenses.gpl3Only;
diff --git a/pkgs/servers/mjolnir/default.nix b/pkgs/servers/mjolnir/default.nix
index 4b450a8450f4a..7cecfa14923c9 100644
--- a/pkgs/servers/mjolnir/default.nix
+++ b/pkgs/servers/mjolnir/default.nix
@@ -54,7 +54,7 @@ mkYarnPackage rec {
   };
 
   meta = with lib; {
-    description = "A moderation tool for Matrix";
+    description = "Moderation tool for Matrix";
     homepage = "https://github.com/matrix-org/mjolnir";
     longDescription = ''
       As an all-in-one moderation tool, it can protect your server from
diff --git a/pkgs/servers/monitoring/buildkite-agent-metrics/default.nix b/pkgs/servers/monitoring/buildkite-agent-metrics/default.nix
index 4139b9e6f81d3..45ad6daedacff 100644
--- a/pkgs/servers/monitoring/buildkite-agent-metrics/default.nix
+++ b/pkgs/servers/monitoring/buildkite-agent-metrics/default.nix
@@ -4,7 +4,7 @@
 }:
 buildGoModule rec {
   pname = "buildkite-agent-metrics";
-  version = "5.9.4";
+  version = "5.9.6";
 
   outputs = [ "out" "lambda" ];
 
@@ -12,10 +12,10 @@ buildGoModule rec {
     owner = "buildkite";
     repo = "buildkite-agent-metrics";
     rev = "v${version}";
-    hash = "sha256-S9dkahAAoOwwEcWTzo+JkoZkQAQqPT5tfSZY9IWnWaU=";
+    hash = "sha256-OrdU640gC14Y4SMtZZtW2Yz82JRwoQRtjY1KCL+vyEc=";
   };
 
-  vendorHash = "sha256-r+K/RbNmVYm1LKTZvvKR9zBM35xLkMN8SadOttoTWzo=";
+  vendorHash = "sha256-i2+nefRE4BD93rG842oZj0/coamYVRMPxEHio80bdWk=";
 
   postInstall = ''
     mkdir -p $lambda/bin
@@ -23,7 +23,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A command-line tool (and Lambda) for collecting Buildkite agent metrics";
+    description = "Command-line tool (and Lambda) for collecting Buildkite agent metrics";
     homepage = "https://github.com/buildkite/buildkite-agent-metrics";
     license = licenses.mit;
     maintainers = teams.determinatesystems.members;
diff --git a/pkgs/servers/monitoring/consul-alerts/default.nix b/pkgs/servers/monitoring/consul-alerts/default.nix
index 23bf58c98e597..3fbbf7f4cbd31 100644
--- a/pkgs/servers/monitoring/consul-alerts/default.nix
+++ b/pkgs/servers/monitoring/consul-alerts/default.nix
@@ -18,11 +18,11 @@ buildGoPackage rec {
 
   meta = with lib; {
     mainProgram = "consul-alerts";
-    description = "An extendable open source continuous integration server";
+    description = "Extendable open source continuous integration server";
     homepage = "https://github.com/AcalephStorage/consul-alerts";
     # As per README
     platforms = platforms.linux ++ platforms.freebsd ++ platforms.darwin;
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ nh2 ];
   };
 }
diff --git a/pkgs/servers/monitoring/fusion-inventory/default.nix b/pkgs/servers/monitoring/fusion-inventory/default.nix
index c4e2cc53291b6..b4535c80877de 100644
--- a/pkgs/servers/monitoring/fusion-inventory/default.nix
+++ b/pkgs/servers/monitoring/fusion-inventory/default.nix
@@ -78,7 +78,7 @@ perlPackages.buildPerlPackage rec {
   meta = with lib; {
     homepage = "http://www.fusioninventory.org";
     description = "FusionInventory unified Agent for UNIX, Linux, Windows and MacOSX";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Only;
     maintainers = [ maintainers.phile314 ];
   };
 }
diff --git a/pkgs/servers/monitoring/grafana-agent/default.nix b/pkgs/servers/monitoring/grafana-agent/default.nix
index ad96052390136..910c8d6558e8c 100644
--- a/pkgs/servers/monitoring/grafana-agent/default.nix
+++ b/pkgs/servers/monitoring/grafana-agent/default.nix
@@ -15,28 +15,28 @@
 
 buildGoModule rec {
   pname = "grafana-agent";
-  version = "0.40.5";
+  version = "0.41.1";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = "agent";
     rev = "v${version}";
-    hash = "sha256-Ctv/s9lgZQ9uCXx+xwJlNVe1ycQnQHtziVNafdYVBig=";
+    hash = "sha256-A/h8Mwtor4VUT7e7TsNiE/0OOXCSq38GAf9j7c8ZDKk=";
   };
 
-  vendorHash = "sha256-pI2hk91wqMVaZ5/6uegoQOh94p4zb7Tvn2CtOMRhZME=";
+  vendorHash = "sha256-W29GZoZfgjdSwGiFz4udGA9gXgmM0xIDEGld7ZE1ycQ=";
   proxyVendor = true; # darwin/linux hash mismatch
 
   frontendYarnOfflineCache = fetchYarnDeps {
-    yarnLock = src + "/web/ui/yarn.lock";
+    yarnLock = src + "/internal/web/ui/yarn.lock";
     hash = "sha256-WqbIg18qUNcs9O2wh7DAzwXKb60iEuPL8zFCIgScqI0=";
   };
 
   ldflags = let
-    prefix = "github.com/grafana/agent/pkg/build";
+    prefix = "github.com/grafana/agent/internal/build";
   in [
     "-s" "-w"
-    # https://github.com/grafana/agent/blob/d672eba4ca8cb010ad8a9caef4f8b66ea6ee3ef2/Makefile#L125
+    # https://github.com/grafana/agent/blob/v0.41.0/Makefile#L132-L137
     "-X ${prefix}.Version=${version}"
     "-X ${prefix}.Branch=v${version}"
     "-X ${prefix}.Revision=v${version}"
@@ -56,13 +56,13 @@ buildGoModule rec {
   subPackages = [
     "cmd/grafana-agent"
     "cmd/grafana-agentctl"
-    "web/ui"
+    "internal/web/ui"
   ];
 
   preBuild = ''
     export HOME="$TMPDIR"
 
-    pushd web/ui
+    pushd internal/web/ui
     fixup-yarn-lock yarn.lock
     yarn config --offline set yarn-offline-mirror $frontendYarnOfflineCache
     yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
@@ -105,7 +105,7 @@ buildGoModule rec {
   };
 
   meta = {
-    description = "A lightweight subset of Prometheus and more, optimized for Grafana Cloud";
+    description = "Lightweight subset of Prometheus and more, optimized for Grafana Cloud";
     license = lib.licenses.asl20;
     homepage = "https://grafana.com/products/cloud";
     changelog = "https://github.com/grafana/agent/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/servers/monitoring/grafana-image-renderer/default.nix b/pkgs/servers/monitoring/grafana-image-renderer/default.nix
index 659387d52e0ee..4d598a1395cf9 100644
--- a/pkgs/servers/monitoring/grafana-image-renderer/default.nix
+++ b/pkgs/servers/monitoring/grafana-image-renderer/default.nix
@@ -7,18 +7,18 @@
 
 mkYarnPackage rec {
   pname = "grafana-image-renderer";
-  version = "3.10.2";
+  version = "3.11.0";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = "grafana-image-renderer";
     rev = "v${version}";
-    hash = "sha256-GL9uJV4/j3tcD9DMoBuO/59OsfG+njc2FH1Bt3VP7K8=";
+    hash = "sha256-FoRXXeKiruXM8/Yh63zn2NuAj/JBXRNgNLLAuJ+sVIw=";
   };
 
   offlineCache = fetchYarnDeps {
     yarnLock = src + "/yarn.lock";
-    hash = "sha256-xgaaIY5Jy8JTSJVGHwPOYgh+fASSPiyoUcmLN516jic=";
+    hash = "sha256-utJS1UsJ2SJ72w2zFpbP33Jz+eTG5aoKfvRP9muB9gg=";
   };
 
   packageJSON = ./package.json;
@@ -59,7 +59,7 @@ mkYarnPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/grafana/grafana-image-renderer";
-    description = "A Grafana backend plugin that handles rendering of panels & dashboards to PNGs using headless browser (Chromium/Chrome)";
+    description = "Grafana backend plugin that handles rendering of panels & dashboards to PNGs using headless browser (Chromium/Chrome)";
     mainProgram = "grafana-image-renderer";
     license = licenses.asl20;
     maintainers = with maintainers; [ ma27 ];
diff --git a/pkgs/servers/monitoring/grafana-image-renderer/package.json b/pkgs/servers/monitoring/grafana-image-renderer/package.json
index 0d81a12c11094..6ef90d97713c2 100644
--- a/pkgs/servers/monitoring/grafana-image-renderer/package.json
+++ b/pkgs/servers/monitoring/grafana-image-renderer/package.json
@@ -18,13 +18,14 @@
     "build": "tsc",
     "start": "node build/app.js server --config=dev.json",
     "create-gcom-plugin-json": "ts-node scripts/createGcomPluginJson.ts ./scripts/tmp",
+    "push-to-gcom": "sh ./scripts/push-to-gcom.sh",
     "test-update": "cross-env UPDATE_GOLDEN=true jest",
     "test": "sh ./scripts/run_tests.sh",
     "test-ci": "jest",
     "test-diff": "cross-env SAVE_DIFF=true jest"
   },
   "dependencies": {
-    "@grpc/grpc-js": "^1.7.0",
+    "@grpc/grpc-js": "^1.8.22",
     "@grpc/proto-loader": "^0.7.2",
     "@hapi/boom": "^10.0.0",
     "@puppeteer/browsers": "^1.6.0",
@@ -32,7 +33,6 @@
     "dompurify": "^2.4.0",
     "express": "^4.19.2",
     "express-prom-bundle": "^6.5.0",
-    "google-protobuf": "3.21.0",
     "jimp": "^0.22.10",
     "jsdom": "20.0.0",
     "lodash": "^4.17.21",
@@ -51,7 +51,7 @@
     "@grafana/eslint-config": "^6.0.0",
     "@types/dompurify": "2.3.4",
     "@types/express": "^4.17.14",
-    "@types/jest": "^29.5.7",
+    "@types/jest": "^29.5.12",
     "@types/jsdom": "20.0.0",
     "@types/multer": "1.4.7",
     "@types/node": "^18.7.18",
@@ -62,20 +62,13 @@
     "axios": "1.6.7",
     "cross-env": "7.0.3",
     "eslint": "8.23.1",
-    "eslint-config-prettier": "8.5.0",
-    "eslint-plugin-jsdoc": "^46.5.0",
-    "eslint-plugin-prettier": "4.2.1",
-    "eslint-plugin-react": "7.31.8",
-    "eslint-plugin-react-hooks": "4.6.0",
     "fast-png": "^6.2.0",
-    "husky": "8.0.1",
     "jest": "^29.7.0",
     "jsonwebtoken": "^9.0.2",
     "lint-staged": "13.0.3",
-    "pkg": "5.8.1",
+    "pkg": "^5.8.1",
     "prettier": "2.7.1",
-    "superagent": "^8.1.2",
-    "supertest": "^6.3.3",
+    "supertest": "^7.0.0",
     "ts-jest": "^29.1.1",
     "ts-node": "10.9.1",
     "tsc-watch": "5.0.3",
diff --git a/pkgs/servers/monitoring/grafana/default.nix b/pkgs/servers/monitoring/grafana/default.nix
index 6fdae7302d7d7..927a011ded284 100644
--- a/pkgs/servers/monitoring/grafana/default.nix
+++ b/pkgs/servers/monitoring/grafana/default.nix
@@ -3,6 +3,7 @@
 , yarn, nodejs, python3, cacert
 , jq, moreutils
 , nix-update-script, nixosTests, xcbuild
+, util-linux
 }:
 
 let
@@ -21,7 +22,7 @@ let
 in
 buildGoModule rec {
   pname = "grafana";
-  version = "10.4.2";
+  version = "11.0.0";
 
   subPackages = [ "pkg/cmd/grafana" "pkg/cmd/grafana-server" "pkg/cmd/grafana-cli" ];
 
@@ -29,7 +30,7 @@ buildGoModule rec {
     owner = "grafana";
     repo = "grafana";
     rev = "v${version}";
-    hash = "sha256-ahG9ABJJUUgrFqqNjkJRA1Gia8T4J90jIsCMFOhZ55w=";
+    hash = "sha256-cC1dpgb8IiyPIqlVvn8Qi1l7j6lLtQF+BOOO+DQCp4E=";
   };
 
   # borrowed from: https://github.com/NixOS/nixpkgs/blob/d70d9425f49f9aba3c49e2c389fe6d42bac8c5b0/pkgs/development/tools/analysis/snyk/default.nix#L20-L22
@@ -65,16 +66,16 @@ buildGoModule rec {
     dontFixup = true;
     outputHashMode = "recursive";
     outputHash = rec {
-      x86_64-linux = "sha256-3CZgs732c6Z64t2sfWjPAmMFKVTzoolv2TwrbjeRCBA=";
+      x86_64-linux = "sha256-+Udq8oQSIAHku55VKnrfgHHevzBels0QiOZwnwuts8k=";
       aarch64-linux = x86_64-linux;
-      aarch64-darwin = "sha256-NKEajOe9uDZw0MF5leiKBIRH1CHUELRho7gyCa96BO8=";
+      aarch64-darwin = "sha256-m3jtZNz0J2nZwFHXVp3ApgDfnGBOJvFeUpqOPQqv200=";
       x86_64-darwin = aarch64-darwin;
     }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   };
 
   disallowedRequisites = [ offlineCache ];
 
-  vendorHash = "sha256-XmIF/ZWVO1qjSmRPTFnHgxvnliXXicGgsV8gQcKJl9U=";
+  vendorHash = "sha256-kcdW6RQghyAOZUDmIo9G6YBC+YaLHdafvj+fCd+dcDE=";
 
   proxyVendor = true;
 
@@ -90,7 +91,6 @@ buildGoModule rec {
     wire gen -tags oss ./pkg/server
     wire gen -tags oss ./pkg/cmd/grafana-cli/runner
 
-    GOARCH= CGO_ENABLED=0 go generate ./pkg/plugins/plugindef
     GOARCH= CGO_ENABLED=0 go generate ./kinds/gen.go
     GOARCH= CGO_ENABLED=0 go generate ./public/app/plugins/gen.go
     # Setup node_modules
@@ -105,7 +105,7 @@ buildGoModule rec {
 
     yarn config set enableTelemetry 0
     yarn config set cacheFolder $offlineCache
-    yarn --immutable-cache
+    yarn install --immutable-cache
 
     # The build OOMs on memory constrained aarch64 without this
     export NODE_OPTIONS=--max_old_space_size=4096
@@ -113,7 +113,9 @@ buildGoModule rec {
 
   postBuild = ''
     # After having built all the Go code, run the JS builders now.
-    yarn run build
+
+    # Workaround for https://github.com/nrwl/nx/issues/22445
+    ${util-linux}/bin/script -c 'yarn run build' /dev/null
     yarn run plugins:build-bundled
   '';
 
@@ -154,5 +156,8 @@ buildGoModule rec {
     maintainers = with maintainers; [ offline fpletz willibutz globin ma27 Frostman ];
     platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ];
     mainProgram = "grafana-server";
+    # requires util-linux to work around https://github.com/nrwl/nx/issues/22445
+    # `script` doesn't seem to be part of util-linux on Darwin though.
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/servers/monitoring/grafana/plugins/grafana-oncall-app/default.nix b/pkgs/servers/monitoring/grafana/plugins/grafana-oncall-app/default.nix
new file mode 100644
index 0000000000000..6f475f49cfa7f
--- /dev/null
+++ b/pkgs/servers/monitoring/grafana/plugins/grafana-oncall-app/default.nix
@@ -0,0 +1,13 @@
+{ grafanaPlugin, lib }:
+
+grafanaPlugin {
+  pname = "grafana-oncall-app";
+  version = "1.5.1";
+  zipHash = "sha256-3mC4TJ9ACM9e3e6UKI5vaDwXuW6RjbsOQFJU5v0wjk8=";
+  meta = with lib; {
+    description = "Developer-friendly incident response for Grafana";
+    license = licenses.agpl3Only;
+    maintainers = lib.teams.fslabs.members;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/monitoring/grafana/plugins/plugins.nix b/pkgs/servers/monitoring/grafana/plugins/plugins.nix
index 8bbd738f7ab92..bd1e775243f77 100644
--- a/pkgs/servers/monitoring/grafana/plugins/plugins.nix
+++ b/pkgs/servers/monitoring/grafana/plugins/plugins.nix
@@ -8,6 +8,7 @@
   grafadruid-druid-datasource = callPackage ./grafadruid-druid-datasource { };
   grafana-clickhouse-datasource = callPackage ./grafana-clickhouse-datasource { };
   grafana-clock-panel = callPackage ./grafana-clock-panel { };
+  grafana-oncall-app = callPackage ./grafana-oncall-app { };
   grafana-piechart-panel = callPackage ./grafana-piechart-panel { };
   grafana-polystat-panel = callPackage ./grafana-polystat-panel { };
   grafana-worldmap-panel = callPackage ./grafana-worldmap-panel { };
diff --git a/pkgs/servers/monitoring/icinga2/default.nix b/pkgs/servers/monitoring/icinga2/default.nix
index 165e6e186808b..1425dc07fdf5c 100644
--- a/pkgs/servers/monitoring/icinga2/default.nix
+++ b/pkgs/servers/monitoring/icinga2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, runCommand, lib, fetchFromGitHub, fetchpatch, cmake, flex, bison, systemd
+{ stdenv, runCommand, lib, fetchFromGitHub, cmake, flex, bison, systemd
 , boost, openssl, patchelf, mariadb-connector-c, postgresql, zlib, tzdata
 # Databases
 , withMysql ? true, withPostgresql ? false
diff --git a/pkgs/servers/monitoring/lcdproc/default.nix b/pkgs/servers/monitoring/lcdproc/default.nix
index 1ce82c13311c9..d70ba0ea19914 100644
--- a/pkgs/servers/monitoring/lcdproc/default.nix
+++ b/pkgs/servers/monitoring/lcdproc/default.nix
@@ -71,7 +71,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Client/server suite for controlling a wide variety of LCD devices";
     homepage = "https://lcdproc.org/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.unix;
     # never built on aarch64-darwin since first introduction in nixpkgs
diff --git a/pkgs/servers/monitoring/librenms/default.nix b/pkgs/servers/monitoring/librenms/default.nix
index 58b4e5619564d..dbec10d57627c 100644
--- a/pkgs/servers/monitoring/librenms/default.nix
+++ b/pkgs/servers/monitoring/librenms/default.nix
@@ -106,7 +106,7 @@ in phpPackage.buildComposerProject rec {
   };
 
   meta = with lib; {
-    description = "A auto-discovering PHP/MySQL/SNMP based network monitoring";
+    description = "Auto-discovering PHP/MySQL/SNMP based network monitoring";
     homepage    = "https://www.librenms.org/";
     license     = licenses.gpl3Only;
     maintainers = teams.wdz.members;
diff --git a/pkgs/servers/monitoring/mackerel-agent/default.nix b/pkgs/servers/monitoring/mackerel-agent/default.nix
index 19a822fc6173d..9507b5d1dcf45 100644
--- a/pkgs/servers/monitoring/mackerel-agent/default.nix
+++ b/pkgs/servers/monitoring/mackerel-agent/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "mackerel-agent";
-  version = "0.81.0";
+  version = "0.82.0";
 
   src = fetchFromGitHub {
     owner = "mackerelio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-C0/l5dt5HpSgpTw1rlQXWOh4CfCI8D/tKPTGNt67M08=";
+    sha256 = "sha256-zkwYYkI7oeOdJH/K9E8/ZkTOexEKyP1I2kOJlt7PcK4=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/monitoring/mtail/default.nix b/pkgs/servers/monitoring/mtail/default.nix
index 32af6e92b2a81..9e406689c1125 100644
--- a/pkgs/servers/monitoring/mtail/default.nix
+++ b/pkgs/servers/monitoring/mtail/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "mtail";
-  version = "3.0.1";
+  version = "3.0.2";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "mtail";
     rev = "v${version}";
-    hash = "sha256-HXnudY9GUCjFL4JvdNYGZ1fPeaPZjt63jrZfUfOWjEc=";
+    hash = "sha256-zIegPQEzG7qrvS40lDODw0oisZtMN5LnLdZA01K0FQs=";
   };
 
-  vendorHash = "sha256-XKELlrsyumv3EbNdepLRgX7kPWxzo2ZdKrOwiM0myf8=";
+  vendorHash = "sha256-qn27BYQdYNfR+9w2SBfBzevtOLTm4Q6nwduL13TgmoY=";
 
   ldflags = [
     "-X=main.Branch=main"
diff --git a/pkgs/servers/monitoring/munin/default.nix b/pkgs/servers/monitoring/munin/default.nix
index 045fc8f89ac38..c1446b90c870d 100644
--- a/pkgs/servers/monitoring/munin/default.nix
+++ b/pkgs/servers/monitoring/munin/default.nix
@@ -142,7 +142,7 @@ stdenv.mkDerivation rec {
       to kill our performance?' problems.
     '';
     homepage = "https://munin-monitoring.org/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = [ maintainers.bjornfor ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/servers/monitoring/nagios/default.nix b/pkgs/servers/monitoring/nagios/default.nix
index 4f39239bfe08f..149f7f5b806c1 100644
--- a/pkgs/servers/monitoring/nagios/default.nix
+++ b/pkgs/servers/monitoring/nagios/default.nix
@@ -71,10 +71,10 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = {
-    description = "A host, service and network monitoring program";
+    description = "Host, service and network monitoring program";
     homepage = "https://www.nagios.org/";
     changelog = "https://github.com/NagiosEnterprises/nagioscore/blob/nagios-${finalAttrs.version}/Changelog";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Only;
     platforms = lib.platforms.unix;
     mainProgram = "nagios";
     maintainers = with lib.maintainers; [ immae thoughtpolice relrod anthonyroussel ];
diff --git a/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix b/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix
index 9572c1d2c87e4..c3098a8a8e276 100644
--- a/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix
+++ b/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "check_ssl_cert";
-  version = "2.81.0";
+  version = "2.81.1";
 
   src = fetchFromGitHub {
     owner = "matteocorti";
     repo = "check_ssl_cert";
     rev = "refs/tags/v${version}";
-    hash = "sha256-6C6shxu9ze0ffx6Mg2K9TkqJl98Wz7loTcCptg92IY8=";
+    hash = "sha256-ZF1izxIgpoQrWWI+G5vuAJsbc/IwUlAZHhUIHKCY2DA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/servers/monitoring/nagios/plugins/smartmon.nix b/pkgs/servers/monitoring/nagios/plugins/smartmon.nix
index 25adfefe84e25..ddf13f97a58c9 100644
--- a/pkgs/servers/monitoring/nagios/plugins/smartmon.nix
+++ b/pkgs/servers/monitoring/nagios/plugins/smartmon.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Nagios-Plugin that uses smartmontools to check disk health status and temperature";
+    description = "Nagios-Plugin that uses smartmontools to check disk health status and temperature";
     mainProgram = "check_smartmon";
     homepage = "https://github.com/driehuis/Nagios_check_smartmon";
     license = licenses.gpl2Plus;
diff --git a/pkgs/servers/monitoring/net-snmp/default.nix b/pkgs/servers/monitoring/net-snmp/default.nix
index 8961bc5495359..66085a04babd3 100644
--- a/pkgs/servers/monitoring/net-snmp/default.nix
+++ b/pkgs/servers/monitoring/net-snmp/default.nix
@@ -1,5 +1,5 @@
-{ lib, stdenv, fetchurl, fetchpatch
-, file, openssl, perl, perlPackages, nettools
+{ lib, stdenv, fetchurl
+, file, openssl, perl, nettools
 , withPerlTools ? false }: let
 
   perlWithPkgs = perl.withPackages (ps: with ps; [
diff --git a/pkgs/servers/monitoring/openobserve/default.nix b/pkgs/servers/monitoring/openobserve/default.nix
index 0487a5d3a34dd..ea49c2c41bbeb 100644
--- a/pkgs/servers/monitoring/openobserve/default.nix
+++ b/pkgs/servers/monitoring/openobserve/default.nix
@@ -133,7 +133,7 @@ rustPlatform.buildRustPackage {
   ];
 
   meta = with lib; {
-    description = "A cloud-native observability platform built specifically for logs, metrics, traces, analytics & realtime user-monitoring";
+    description = "Cloud-native observability platform built specifically for logs, metrics, traces, analytics & realtime user-monitoring";
     homepage = "https://github.com/openobserve/openobserve";
     license = licenses.asl20;
     maintainers = with maintainers; [ happysalada ];
diff --git a/pkgs/servers/monitoring/phlare/default.nix b/pkgs/servers/monitoring/phlare/default.nix
index 294a85ab06fae..184b974abef5e 100644
--- a/pkgs/servers/monitoring/phlare/default.nix
+++ b/pkgs/servers/monitoring/phlare/default.nix
@@ -32,7 +32,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "Grafana Phlare is an open source database that provides fast, scalable, highly available, and efficient storage and querying of profiling data.";
+    description = "Grafana Phlare is an open source database that provides fast, scalable, highly available, and efficient storage and querying of profiling data";
     license = licenses.agpl3Only;
     homepage = "https://grafana.com/oss/phlare";
     maintainers = with maintainers; [ cathalmullan ];
diff --git a/pkgs/servers/monitoring/plugins/esxi.nix b/pkgs/servers/monitoring/plugins/esxi.nix
index ccd77548c0c06..85192c0174d1a 100644
--- a/pkgs/servers/monitoring/plugins/esxi.nix
+++ b/pkgs/servers/monitoring/plugins/esxi.nix
@@ -31,7 +31,7 @@ in python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://www.claudiokuenzler.com/nagios-plugins/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ peterhoeg ];
   };
 }
diff --git a/pkgs/servers/monitoring/plugins/labs_consol_de.nix b/pkgs/servers/monitoring/plugins/labs_consol_de.nix
index c293a4daa2153..b30fd4b275772 100644
--- a/pkgs/servers/monitoring/plugins/labs_consol_de.nix
+++ b/pkgs/servers/monitoring/plugins/labs_consol_de.nix
@@ -44,7 +44,7 @@ let
 
     meta = with lib; {
       homepage    = "https://labs.consol.de/";
-      license     = licenses.gpl2;
+      license     = licenses.gpl2Only;
       maintainers = with maintainers; [ peterhoeg ];
       inherit description;
     };
diff --git a/pkgs/servers/monitoring/plugins/openvpn.nix b/pkgs/servers/monitoring/plugins/openvpn.nix
index 3ae474d6d9e87..1bf6584abfddb 100644
--- a/pkgs/servers/monitoring/plugins/openvpn.nix
+++ b/pkgs/servers/monitoring/plugins/openvpn.nix
@@ -15,7 +15,7 @@ python3Packages.buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A nagios/icinga/sensu check plugin for OpenVPN";
+    description = "Nagios/icinga/sensu check plugin for OpenVPN";
     mainProgram = "check_openvpn";
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/pkgs/servers/monitoring/plugins/wmiplus/default.nix b/pkgs/servers/monitoring/plugins/wmiplus/default.nix
index 00474e12b9ac7..5ad284da002c4 100644
--- a/pkgs/servers/monitoring/plugins/wmiplus/default.nix
+++ b/pkgs/servers/monitoring/plugins/wmiplus/default.nix
@@ -69,9 +69,9 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A sensu/nagios plugin using WMI to query Windows hosts";
+    description = "Sensu/nagios plugin using WMI to query Windows hosts";
     homepage = "http://edcint.co.nz/checkwmiplus";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ peterhoeg ];
   };
 }
diff --git a/pkgs/servers/monitoring/prometheus/bitcoin-exporter.nix b/pkgs/servers/monitoring/prometheus/bitcoin-exporter.nix
index 21dedaa1b70e0..dace095e13d25 100644
--- a/pkgs/servers/monitoring/prometheus/bitcoin-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/bitcoin-exporter.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, fetchpatch, python3Packages }:
+{ lib, fetchFromGitHub, python3Packages }:
 
 python3Packages.buildPythonApplication rec {
   pname = "bitcoin-prometheus-exporter";
diff --git a/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix b/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix
index f891fdaeb856f..c75a7400da775 100644
--- a/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix
@@ -19,7 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "A dnsmasq exporter for Prometheus";
+    description = "Dnsmasq exporter for Prometheus";
     mainProgram = "dnsmasq_exporter";
     license = licenses.asl20;
     maintainers = with maintainers; [ willibutz globin ];
diff --git a/pkgs/servers/monitoring/prometheus/domain-exporter.nix b/pkgs/servers/monitoring/prometheus/domain-exporter.nix
index 26afdca834a3d..8e25a2c523ad9 100644
--- a/pkgs/servers/monitoring/prometheus/domain-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/domain-exporter.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub, fetchpatch, nixosTests }:
+{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
 
 buildGoModule rec {
   pname = "domain-exporter";
diff --git a/pkgs/servers/monitoring/prometheus/dovecot-exporter-deps.nix b/pkgs/servers/monitoring/prometheus/dovecot-exporter-deps.nix
deleted file mode 100644
index d94aad821485d..0000000000000
--- a/pkgs/servers/monitoring/prometheus/dovecot-exporter-deps.nix
+++ /dev/null
@@ -1,102 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
-[
-  {
-    goPackagePath = "github.com/alecthomas/template";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/template";
-      rev = "a0175ee3bccc567396460bf5acd36800cb10c49c";
-      sha256 = "0qjgvvh26vk1cyfq9fadyhfgdj36f1iapbmr5xp6zqipldz8ffxj";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/units";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/units";
-      rev = "2efee857e7cfd4f3d0138cc3cbb1b4966962b93a";
-      sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl";
-    };
-  }
-  {
-    goPackagePath = "github.com/beorn7/perks";
-    fetch = {
-      type = "git";
-      url = "https://github.com/beorn7/perks";
-      rev = "3a771d992973f24aa725d07868b467d1ddfceafb";
-      sha256 = "1l2lns4f5jabp61201sh88zf3b0q793w4zdgp9nll7mmfcxxjif3";
-    };
-  }
-  {
-    goPackagePath = "github.com/gogo/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gogo/protobuf";
-      rev = "4aa4cc277ae58d2fab6cfe51dd17df5dceaf457d";
-      sha256 = "009z6rpivyakgsxs0zkm94c9i7l65hcw2ljvah94wq3y6v6j47gs";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "0f2620f554cf5c8e281a2eb655a035f5a0f6dc90";
-      sha256 = "0lxngq1a8cnsy6dlr6gi8pjv3fir2wiw76qh075pa9g02h7ywhv3";
-    };
-  }
-  {
-    goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
-    fetch = {
-      type = "git";
-      url = "https://github.com/matttproud/golang_protobuf_extensions";
-      rev = "c12348ce28de40eed0136aa2b644d0ee0650e56c";
-      sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_golang";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_golang";
-      rev = "b5bfa0eb2c8d46bd91dc58271e973c5f0bbebcfa";
-      sha256 = "1msxzkdgi0ing4ddmp0s4qrf267n6ylafw9mbz5yrr7spb1dgxgk";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_model";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_model";
-      rev = "5c3871d89910bfb32f5fcab2aa4b9ec68e65a99f";
-      sha256 = "04psf81l9fjcwascsys428v03fx4fi894h7fhrj2vvcz723q57k0";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/common";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/common";
-      rev = "c7de2306084e37d54b8be01f3541a8464345e9a5";
-      sha256 = "11dqfm2d0m4sjjgyrnayman96g59x2apmvvqby9qmww2qj2k83ig";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/procfs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/procfs";
-      rev = "05ee40e3a273f7245e8777337fc7b46e533a9a92";
-      sha256 = "0f6fnczxa42b9rys2h3l0m8fy3x5hrhaq707vq0lbx5fcylw8lis";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/alecthomas/kingpin.v2";
-      rev = "947dcec5ba9c011838740e680966fd7087a71d0d";
-      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
-    };
-  }
-]
diff --git a/pkgs/servers/monitoring/prometheus/dovecot-exporter.nix b/pkgs/servers/monitoring/prometheus/dovecot-exporter.nix
deleted file mode 100644
index 7041c9df29d48..0000000000000
--- a/pkgs/servers/monitoring/prometheus/dovecot-exporter.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib, buildGoPackage, fetchFromGitHub, nixosTests }:
-
-buildGoPackage rec {
-  pname = "dovecot_exporter";
-  version = "0.1.3";
-
-  goPackagePath = "github.com/kumina/dovecot_exporter";
-
-  src = fetchFromGitHub {
-    owner = "kumina";
-    repo = "dovecot_exporter";
-    rev = version;
-    sha256 = "1lnxnnm45fhcyv40arcvpiiibwdnxdwhkf8sbjpifx1wspvphcj9";
-  };
-
-  goDeps = ./dovecot-exporter-deps.nix;
-
-  passthru.tests = { inherit (nixosTests.prometheus-exporters) dovecot; };
-
-  meta = with lib; {
-    inherit (src.meta) homepage;
-    description = "Prometheus metrics exporter for Dovecot";
-    mainProgram = "dovecot_exporter";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ willibutz globin ];
-  };
-}
diff --git a/pkgs/servers/monitoring/prometheus/fastly-exporter.nix b/pkgs/servers/monitoring/prometheus/fastly-exporter.nix
index 5a52027bc5d1a..84c990e4f7041 100644
--- a/pkgs/servers/monitoring/prometheus/fastly-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/fastly-exporter.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "fastly-exporter";
-  version = "8.0.0";
+  version = "8.1.0";
 
   src = fetchFromGitHub {
     owner = "fastly";
     repo = "fastly-exporter";
     rev = "v${version}";
-    hash = "sha256-3XIw9Sq7aQ6bs7kY0fYP3UGfJeq80gB2vXX69EEOtl4=";
+    hash = "sha256-SpYdcLPknI7ecZ2ef3kJ2nBkQ39vzjk1fNTdDaFZwO0=";
   };
 
-  vendorHash = "sha256-kiP9nL/fVnekIf1ABAbSNebszcrj/xkFw9NcuBr/wKQ=";
+  vendorHash = "sha256-k/n9muWFtTBv8PxMdevFBeTtAOIiCDrK3GoCGeMtBn4=";
 
   passthru.tests = {
     inherit (nixosTests.prometheus-exporters) fastly;
diff --git a/pkgs/servers/monitoring/prometheus/graphite-exporter.nix b/pkgs/servers/monitoring/prometheus/graphite-exporter.nix
index e50a984be3fe8..a8bc0dcfd6579 100644
--- a/pkgs/servers/monitoring/prometheus/graphite-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/graphite-exporter.nix
@@ -28,7 +28,7 @@ buildGoModule rec {
   passthru.tests = { inherit (nixosTests.prometheus-exporters) graphite; };
 
   meta = {
-    description = "An exporter for metrics exported in the Graphite plaintext protocol";
+    description = "Exporter for metrics exported in the Graphite plaintext protocol";
     homepage = "https://github.com/prometheus/graphite_exporter";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.misterio77 ];
diff --git a/pkgs/servers/monitoring/prometheus/ipmi-exporter.nix b/pkgs/servers/monitoring/prometheus/ipmi-exporter.nix
index ae39f6c98f746..b371008dc0b9a 100644
--- a/pkgs/servers/monitoring/prometheus/ipmi-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/ipmi-exporter.nix
@@ -32,7 +32,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "An IPMI exporter for Prometheus";
+    description = "IPMI exporter for Prometheus";
     mainProgram = "ipmi_exporter";
     homepage = "https://github.com/prometheus-community/ipmi_exporter";
     changelog = "https://github.com/prometheus-community/ipmi_exporter/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/servers/monitoring/prometheus/jmx-httpserver.nix b/pkgs/servers/monitoring/prometheus/jmx-httpserver.nix
index 532461234763e..9326e5bdff3fe 100644
--- a/pkgs/servers/monitoring/prometheus/jmx-httpserver.nix
+++ b/pkgs/servers/monitoring/prometheus/jmx-httpserver.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/prometheus/jmx_exporter";
-    description = "A process for exposing JMX Beans via HTTP for Prometheus consumption";
+    description = "Process for exposing JMX Beans via HTTP for Prometheus consumption";
     mainProgram = "jmx_prometheus_httpserver";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.asl20;
diff --git a/pkgs/servers/monitoring/prometheus/json-exporter.nix b/pkgs/servers/monitoring/prometheus/json-exporter.nix
index ad0e7a49aa3c6..2f168c4c60333 100644
--- a/pkgs/servers/monitoring/prometheus/json-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/json-exporter.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   passthru.tests = { inherit (nixosTests.prometheus-exporters) json; };
 
   meta = with lib; {
-    description = "A prometheus exporter which scrapes remote JSON by JSONPath";
+    description = "Prometheus exporter which scrapes remote JSON by JSONPath";
     homepage = "https://github.com/prometheus-community/json_exporter";
     license = licenses.asl20;
     maintainers = with maintainers; [ willibutz ];
diff --git a/pkgs/servers/monitoring/prometheus/junos-czerwonk-exporter.nix b/pkgs/servers/monitoring/prometheus/junos-czerwonk-exporter.nix
index 37631a00c6798..c9b7440507aa7 100644
--- a/pkgs/servers/monitoring/prometheus/junos-czerwonk-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/junos-czerwonk-exporter.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "junos-czerwonk-exporter";
-  version = "0.12.2";
+  version = "0.12.3";
 
   src = fetchFromGitHub {
     owner = "czerwonk";
     repo = "junos_exporter";
     rev = version;
-    sha256 = "sha256-KdVyRddAr2gqiFyIGBfWbi4DHAaiey4p4OBFND/2u7U=";
+    sha256 = "sha256-5haMQlwGJO0WdT75AEfs41k1oWUqrFk9nj+DOcKAom0=";
   };
 
-  vendorHash = "sha256-fytDr56ZhhO5u6u9CRIEKXGqgnzntSVqEVItibpLyPM=";
+  vendorHash = "sha256-qHs6KuBmJmmkmR23Ae7COadb2F7N8CMUmScx8JFt98Q=";
 
   meta = with lib; {
     description = "Exporter for metrics from devices running JunOS";
diff --git a/pkgs/servers/monitoring/prometheus/knot-exporter.nix b/pkgs/servers/monitoring/prometheus/knot-exporter.nix
index f15dc626e59f7..2255e660380fb 100644
--- a/pkgs/servers/monitoring/prometheus/knot-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/knot-exporter.nix
@@ -6,13 +6,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "knot-exporter";
-  version = "3.3.5";
+  version = "3.3.6";
   pyproject = true;
 
   src = fetchPypi {
     pname = "knot_exporter";
     inherit version;
-    hash = "sha256-7r4zXqomiszDrplMedEyw2ZQ2NwDTf54EOwnsLc5RJ0=";
+    hash = "sha256-4Fdbu08RbivZF+Hnk+tI1DW9PyzQTI0TngAbZ60CcO8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/servers/monitoring/prometheus/minio-exporter/default.nix b/pkgs/servers/monitoring/prometheus/minio-exporter/default.nix
index 504611848ca9f..818a8dbb88796 100644
--- a/pkgs/servers/monitoring/prometheus/minio-exporter/default.nix
+++ b/pkgs/servers/monitoring/prometheus/minio-exporter/default.nix
@@ -26,7 +26,7 @@ buildGoPackage rec {
   goDeps = ./deps.nix;
 
   meta = with lib; {
-    description = "A Prometheus exporter for Minio cloud storage server";
+    description = "Prometheus exporter for Minio cloud storage server";
     mainProgram = "minio-exporter";
     homepage = "https://github.com/joe-pll/minio-exporter";
     license = licenses.asl20;
diff --git a/pkgs/servers/monitoring/prometheus/mongodb-exporter.nix b/pkgs/servers/monitoring/prometheus/mongodb-exporter.nix
index 23db7d8e6f3f3..5ea8d7c4feeb4 100644
--- a/pkgs/servers/monitoring/prometheus/mongodb-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/mongodb-exporter.nix
@@ -30,7 +30,7 @@ buildGoModule rec {
 
   meta = with lib;
     {
-      description = "A Prometheus exporter for MongoDB including sharding, replication and storage engines";
+      description = "Prometheus exporter for MongoDB including sharding, replication and storage engines";
       homepage = "https://github.com/percona/mongodb_exporter";
       license = licenses.asl20;
       maintainers = with maintainers; [ undefined-moe ];
diff --git a/pkgs/servers/monitoring/prometheus/nginx-exporter.nix b/pkgs/servers/monitoring/prometheus/nginx-exporter.nix
index a233b34a18d96..9a6c6c250ad7e 100644
--- a/pkgs/servers/monitoring/prometheus/nginx-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/nginx-exporter.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "nginx_exporter";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "nginxinc";
     repo = "nginx-prometheus-exporter";
     rev = "v${version}";
-    sha256 = "sha256-wLLHhbIA4jPgXtVIP6ycxgXfULODngPSpV3rZpJFSjI=";
+    sha256 = "sha256-VzgcAyXR9TKpK6CJzKoqN5EgO9rWnZBhwv5Km/k8cK0=";
   };
 
-  vendorHash = "sha256-pMof9Wr6GrH5N97C4VNG2ELtZ6C6ruq5ylMwByotrP0=";
+  vendorHash = "sha256-HoRE9hvnyPkLpwc+FfUmithd5UDEJ0TnoDfcifa/0o0=";
 
   ldflags = [ "-s" "-w" "-X main.version=${version}" ];
 
diff --git a/pkgs/servers/monitoring/prometheus/php-fpm-exporter.nix b/pkgs/servers/monitoring/prometheus/php-fpm-exporter.nix
index 12c80b39ff3b7..a9ede30627d6d 100644
--- a/pkgs/servers/monitoring/prometheus/php-fpm-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/php-fpm-exporter.nix
@@ -51,7 +51,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/hipages/php-fpm_exporter";
-    description = "A prometheus exporter for PHP-FPM.";
+    description = "Prometheus exporter for PHP-FPM";
     license = licenses.asl20;
     maintainers = with maintainers; [ gaelreyrol ];
     mainProgram = "php-fpm_exporter";
diff --git a/pkgs/servers/monitoring/prometheus/postfix-exporter.nix b/pkgs/servers/monitoring/prometheus/postfix-exporter.nix
index ad85dfb73318e..b34a9b3feba8d 100644
--- a/pkgs/servers/monitoring/prometheus/postfix-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/postfix-exporter.nix
@@ -35,7 +35,7 @@ buildGoModule rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "A Prometheus exporter for Postfix";
+    description = "Prometheus exporter for Postfix";
     mainProgram = "postfix_exporter";
     license = licenses.asl20;
     maintainers = with maintainers; [ willibutz globin ];
diff --git a/pkgs/servers/monitoring/prometheus/postgres-exporter.nix b/pkgs/servers/monitoring/prometheus/postgres-exporter.nix
index 130789ca4bd50..50d353b04bb0b 100644
--- a/pkgs/servers/monitoring/prometheus/postgres-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/postgres-exporter.nix
@@ -31,7 +31,7 @@ buildGoModule rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "A Prometheus exporter for PostgreSQL";
+    description = "Prometheus exporter for PostgreSQL";
     mainProgram = "postgres_exporter";
     license = licenses.asl20;
     maintainers = with maintainers; [ fpletz globin willibutz ma27 ];
diff --git a/pkgs/servers/monitoring/prometheus/promscale/default.nix b/pkgs/servers/monitoring/prometheus/promscale/default.nix
index 9b1d070e18f4f..e814132627d74 100644
--- a/pkgs/servers/monitoring/prometheus/promscale/default.nix
+++ b/pkgs/servers/monitoring/prometheus/promscale/default.nix
@@ -46,7 +46,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "An open-source analytical platform for Prometheus metrics";
+    description = "Open-source analytical platform for Prometheus metrics";
     mainProgram = "promscale";
     homepage = "https://github.com/timescale/promscale";
     changelog = "https://github.com/timescale/promscale/blob/${version}/CHANGELOG.md";
diff --git a/pkgs/servers/monitoring/prometheus/pushgateway.nix b/pkgs/servers/monitoring/prometheus/pushgateway.nix
index 9fbdd6c0a94d7..c47019aeada72 100644
--- a/pkgs/servers/monitoring/prometheus/pushgateway.nix
+++ b/pkgs/servers/monitoring/prometheus/pushgateway.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "pushgateway";
-  version = "1.8.0";
+  version = "1.9.0";
 
   src = fetchFromGitHub {
     owner = "prometheus";
     repo = "pushgateway";
     rev = "v${version}";
-    sha256 = "sha256-WZ7Gi7jiHoH6ZL0TdB7Z3C9sAzxL/iJtOAm/MsZVRI8=";
+    sha256 = "sha256-SpHxBxBl0APP/y7MnR/p/+VjNAvFOZVlgGMlMGTbodI=";
   };
 
-  vendorHash = "sha256-W2gGp36f1OZonXVkoBvWOaeGnnF5Xi5Kv8JE+iDm+fg=";
+  vendorHash = "sha256-GydAY73Ui6z833x0DoWa6BpK35CYdYfyHw2+RwT3miw=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/servers/monitoring/prometheus/redis-exporter.nix b/pkgs/servers/monitoring/prometheus/redis-exporter.nix
index af56a220feaa2..946c485f6efc3 100644
--- a/pkgs/servers/monitoring/prometheus/redis-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/redis-exporter.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "redis_exporter";
-  version = "1.59.0";
+  version = "1.61.0";
 
   src = fetchFromGitHub {
     owner = "oliver006";
     repo = "redis_exporter";
     rev = "v${version}";
-    sha256 = "sha256-/nfAB4h5VvAzuludQ7Zx3OoJThyyD5nS6B5pOSbQYFs=";
+    sha256 = "sha256-ZfjOsPUr72Ex+5SR2oVMybbR20hwqlto3teTJcdtALA=";
   };
 
-  vendorHash = "sha256-Nns8hpKwxL1GQfjVt9+rnmjGjmdm2TB+8wob7ze4RrI=";
+  vendorHash = "sha256-nrEglhb22LANgm6hiZToPVPfGpkpxpJ7TQlLW0Z7+/4=";
 
   ldflags = [
     "-X main.BuildVersion=${version}"
diff --git a/pkgs/servers/monitoring/prometheus/sabnzbd-exporter.nix b/pkgs/servers/monitoring/prometheus/sabnzbd-exporter.nix
index 1412c4dff6c02..ab7e23ccc4c43 100644
--- a/pkgs/servers/monitoring/prometheus/sabnzbd-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/sabnzbd-exporter.nix
@@ -2,15 +2,15 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "sabnzbd_exporter";
-  version = "0.1.70";
+  version = "0.1.73";
 
   format = "other";
 
   src = fetchFromGitHub {
     owner = "msroest";
     repo = pname;
-    rev = version;
-    hash = "sha256-FkZAWIIlGX2VxRL3WS5J9lBgToQGbEQUqvf0xcdvynk=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-c+NbaHYr/CzZ94/i92W2g7+RBSPSmkE2yszNE6L6M6Y=";
   };
 
   propagatedBuildInputs = with python3Packages; [ prometheus-client requests ];
diff --git a/pkgs/servers/monitoring/prometheus/sachet.nix b/pkgs/servers/monitoring/prometheus/sachet.nix
index 977e5d9060744..3b1bc1a5f83a3 100644
--- a/pkgs/servers/monitoring/prometheus/sachet.nix
+++ b/pkgs/servers/monitoring/prometheus/sachet.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
   vendorHash = null;
 
   meta = with lib; {
-    description = "An SMS alerting tool for Prometheus's Alertmanager";
+    description = "SMS alerting tool for Prometheus's Alertmanager";
     mainProgram = "sachet";
     homepage = "https://github.com/messagebird/sachet";
     license = licenses.bsd2;
diff --git a/pkgs/servers/monitoring/prometheus/surfboard-exporter.nix b/pkgs/servers/monitoring/prometheus/surfboard-exporter.nix
index d3365fc92bf4f..1f215b4ffdc6d 100644
--- a/pkgs/servers/monitoring/prometheus/surfboard-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/surfboard-exporter.nix
@@ -1,11 +1,9 @@
-{ lib, buildGoPackage, fetchFromGitHub, nixosTests }:
+{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "surfboard_exporter";
   version = "2.0.0";
 
-  goPackagePath = "github.com/ipstatic/surfboard_exporter";
-
   src = fetchFromGitHub {
     rev = version;
     owner = "ipstatic";
@@ -13,6 +11,12 @@ buildGoPackage rec {
     sha256 = "11qms26648nwlwslnaflinxcr5rnp55s908rm1qpnbz0jnxf5ipw";
   };
 
+  postPatch = ''
+    go mod init github.com/ipstatic/surfboard_exporter
+  '';
+
+  vendorHash = null;
+
   passthru.tests = { inherit (nixosTests.prometheus-exporters) surfboard; };
 
   meta = with lib; {
diff --git a/pkgs/servers/monitoring/prometheus/wireguard-exporter.nix b/pkgs/servers/monitoring/prometheus/wireguard-exporter.nix
index a1e9ee7f434e6..bee50744cc89c 100644
--- a/pkgs/servers/monitoring/prometheus/wireguard-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/wireguard-exporter.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   passthru.tests = { inherit (nixosTests.prometheus-exporters) wireguard; };
 
   meta = with lib; {
-    description = "A Prometheus exporter for WireGuard, written in Rust";
+    description = "Prometheus exporter for WireGuard, written in Rust";
     homepage = "https://github.com/MindFlavor/prometheus_wireguard_exporter";
     license = licenses.mit;
     maintainers = with maintainers; [ ma27 globin ];
diff --git a/pkgs/servers/monitoring/prometheus/xmpp-alerts.nix b/pkgs/servers/monitoring/prometheus/xmpp-alerts.nix
index 16897e894f69e..d710eea6c0813 100644
--- a/pkgs/servers/monitoring/prometheus/xmpp-alerts.nix
+++ b/pkgs/servers/monitoring/prometheus/xmpp-alerts.nix
@@ -2,7 +2,6 @@
 , fetchFromGitHub
 , python3Packages
 , prometheus-alertmanager
-, fetchpatch
 , runCommand
 , prometheus-xmpp-alerts
 }:
diff --git a/pkgs/servers/monitoring/riemann-dash/default.nix b/pkgs/servers/monitoring/riemann-dash/default.nix
index f6c11703fce7e..7af5c520ab197 100644
--- a/pkgs/servers/monitoring/riemann-dash/default.nix
+++ b/pkgs/servers/monitoring/riemann-dash/default.nix
@@ -8,7 +8,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "riemann-dash";
 
   meta = with lib; {
-    description = "A javascript, websockets-powered dashboard for Riemann";
+    description = "Javascript, websockets-powered dashboard for Riemann";
     homepage = "https://github.com/riemann/riemann-dash";
     license = licenses.mit;
     maintainers = with maintainers; [ manveru nicknovitski ];
diff --git a/pkgs/servers/monitoring/riemann/default.nix b/pkgs/servers/monitoring/riemann/default.nix
index f539fd6394e96..3e2763496575f 100644
--- a/pkgs/servers/monitoring/riemann/default.nix
+++ b/pkgs/servers/monitoring/riemann/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://riemann.io/";
-    description = "A network monitoring system";
+    description = "Network monitoring system";
     mainProgram = "riemann";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.epl10;
diff --git a/pkgs/servers/monitoring/sensu-go/default.nix b/pkgs/servers/monitoring/sensu-go/default.nix
index 81ec65598cc61..c95b4d7644492 100644
--- a/pkgs/servers/monitoring/sensu-go/default.nix
+++ b/pkgs/servers/monitoring/sensu-go/default.nix
@@ -39,7 +39,7 @@ let
         homepage = "https://sensu.io";
         description = "Open source monitoring tool for ephemeral infrastructure & distributed applications";
         license = lib.licenses.mit;
-        maintainers = with lib.maintainers; [ thefloweringash ];
+        maintainers = with lib.maintainers; [ thefloweringash teutat3s ];
       };
     };
 in
diff --git a/pkgs/servers/monitoring/sensu/default.nix b/pkgs/servers/monitoring/sensu/default.nix
index 42f6e395c2d63..8141613cc8758 100644
--- a/pkgs/servers/monitoring/sensu/default.nix
+++ b/pkgs/servers/monitoring/sensu/default.nix
@@ -45,7 +45,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "sensu";
 
   meta = with lib; {
-    description = "A monitoring framework that aims to be simple, malleable, and scalable";
+    description = "Monitoring framework that aims to be simple, malleable, and scalable";
     homepage    = "https://sensuapp.org/";
     license     = licenses.mit;
     maintainers = with maintainers; [ theuni peterhoeg manveru nicknovitski ];
diff --git a/pkgs/servers/monitoring/seyren/default.nix b/pkgs/servers/monitoring/seyren/default.nix
index a4752a26fb402..25f83587af7c8 100644
--- a/pkgs/servers/monitoring/seyren/default.nix
+++ b/pkgs/servers/monitoring/seyren/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An alerting dashboard for Graphite";
+    description = "Alerting dashboard for Graphite";
     mainProgram = "seyren";
     homepage = "https://github.com/scobal/seyren";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
diff --git a/pkgs/servers/monitoring/telegraf/default.nix b/pkgs/servers/monitoring/telegraf/default.nix
index 54e1c11fb1197..6919285554955 100644
--- a/pkgs/servers/monitoring/telegraf/default.nix
+++ b/pkgs/servers/monitoring/telegraf/default.nix
@@ -9,7 +9,7 @@
 
 buildGoModule rec {
   pname = "telegraf";
-  version = "1.30.3";
+  version = "1.31.0";
 
   subPackages = [ "cmd/telegraf" ];
 
@@ -17,10 +17,10 @@ buildGoModule rec {
     owner = "influxdata";
     repo = "telegraf";
     rev = "v${version}";
-    hash = "sha256-B3Eeh3eOYg58NnMpV6f04HFzOtOn/enBqzCJRst6u2U=";
+    hash = "sha256-bnto39X/Mn8M5YbdM8JSoEPGCb5+UpHS6FPc5Q0kprE=";
   };
 
-  vendorHash = "sha256-Cudnc5ZyCQUqgao58ww69gfF6tPW6/oGP9zXbuPSTAE=";
+  vendorHash = "sha256-uyZZnEdAfkCYtgyjgPTLt463kcfdNczOruHaVmA+VIk=";
   proxyVendor = true;
 
   ldflags = [
@@ -39,7 +39,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "The plugin-driven server agent for collecting & reporting metrics";
+    description = "Plugin-driven server agent for collecting & reporting metrics";
     mainProgram = "telegraf";
     homepage = "https://www.influxdata.com/time-series-platform/telegraf/";
     changelog = "https://github.com/influxdata/telegraf/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/servers/monitoring/thanos/default.nix b/pkgs/servers/monitoring/thanos/default.nix
index 76e87f8a0a7b4..d3e797a1c34c4 100644
--- a/pkgs/servers/monitoring/thanos/default.nix
+++ b/pkgs/servers/monitoring/thanos/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "thanos";
-  version = "0.34.1";
+  version = "0.35.1";
 
   src = fetchFromGitHub {
     owner = "thanos-io";
     repo = "thanos";
     rev = "refs/tags/v${version}";
-    hash = "sha256-AynKxORgO8fY8KAhzyIeHCw2MI2se5eHSPn0kt1RJq4=";
+    hash = "sha256-XSQMFtMZvcUcOFi14EZiyq65GdPbzOqUVqFM0FLSj3E=";
   };
 
-  vendorHash = "sha256-4IT3YeGXSEzC0z+rC2yQCY9QQZeXxpMtJM/4/kINn3s=";
+  vendorHash = "sha256-i8EGUxNbxfyPQ3BVa7yBR1ygHIC64v6m/aDGFzWWfIE=";
 
   doCheck = true;
 
diff --git a/pkgs/servers/monitoring/uptime-kuma/default.nix b/pkgs/servers/monitoring/uptime-kuma/default.nix
index f56303fefbe7c..f787588aa90e8 100644
--- a/pkgs/servers/monitoring/uptime-kuma/default.nix
+++ b/pkgs/servers/monitoring/uptime-kuma/default.nix
@@ -39,7 +39,7 @@ buildNpmPackage rec {
   passthru.tests.uptime-kuma = nixosTests.uptime-kuma;
 
   meta = with lib; {
-    description = "A fancy self-hosted monitoring tool";
+    description = "Fancy self-hosted monitoring tool";
     mainProgram = "uptime-kuma-server";
     homepage = "https://github.com/louislam/uptime-kuma";
     changelog = "https://github.com/louislam/uptime-kuma/releases/tag/${version}";
diff --git a/pkgs/servers/monitoring/zabbix/agent.nix b/pkgs/servers/monitoring/zabbix/agent.nix
index 3f1d80ca4df91..3836732908c7a 100644
--- a/pkgs/servers/monitoring/zabbix/agent.nix
+++ b/pkgs/servers/monitoring/zabbix/agent.nix
@@ -34,9 +34,9 @@ import ./versions.nix ({ version, hash, ... }:
     '';
 
     meta = with lib; {
-      description = "An enterprise-class open source distributed monitoring solution (client-side agent)";
+      description = "Enterprise-class open source distributed monitoring solution (client-side agent)";
       homepage = "https://www.zabbix.com/";
-      license = licenses.gpl2;
+      license = licenses.gpl2Plus;
       maintainers = with maintainers; [ mmahut psyanticy ];
       platforms = platforms.linux;
     };
diff --git a/pkgs/servers/monitoring/zabbix/agent2.nix b/pkgs/servers/monitoring/zabbix/agent2.nix
index 374a137297f10..f8d0552ef573b 100644
--- a/pkgs/servers/monitoring/zabbix/agent2.nix
+++ b/pkgs/servers/monitoring/zabbix/agent2.nix
@@ -57,7 +57,7 @@ import ./versions.nix ({ version, hash, vendorHash ? throw "unsupported version
     '';
 
     meta = with lib; {
-      description = "An enterprise-class open source distributed monitoring solution (client-side agent)";
+      description = "Enterprise-class open source distributed monitoring solution (client-side agent)";
       homepage = "https://www.zabbix.com/";
       license = licenses.gpl2Plus;
       maintainers = [ maintainers.aanderse ];
diff --git a/pkgs/servers/monitoring/zabbix/proxy.nix b/pkgs/servers/monitoring/zabbix/proxy.nix
index b287ef56c76fb..b91fb94cd90ec 100644
--- a/pkgs/servers/monitoring/zabbix/proxy.nix
+++ b/pkgs/servers/monitoring/zabbix/proxy.nix
@@ -79,9 +79,9 @@ in
       '';
 
       meta = with lib; {
-        description = "An enterprise-class open source distributed monitoring solution (client-server proxy)";
+        description = "Enterprise-class open source distributed monitoring solution (client-server proxy)";
         homepage = "https://www.zabbix.com/";
-        license = licenses.gpl2;
+        license = licenses.gpl2Plus;
         maintainers = [ maintainers.mmahut ];
         platforms = platforms.linux;
       };
diff --git a/pkgs/servers/monitoring/zabbix/server.nix b/pkgs/servers/monitoring/zabbix/server.nix
index 5abf6a93d55d5..6a1ee65c87588 100644
--- a/pkgs/servers/monitoring/zabbix/server.nix
+++ b/pkgs/servers/monitoring/zabbix/server.nix
@@ -88,9 +88,9 @@ in
       '';
 
       meta = with lib; {
-        description = "An enterprise-class open source distributed monitoring solution";
+        description = "Enterprise-class open source distributed monitoring solution";
         homepage = "https://www.zabbix.com/";
-        license = licenses.gpl2;
+        license = licenses.gpl2Plus;
         maintainers = with maintainers; [ mmahut psyanticy ];
         platforms = platforms.linux;
       };
diff --git a/pkgs/servers/monitoring/zabbix/web.nix b/pkgs/servers/monitoring/zabbix/web.nix
index 7267e3046dd7f..8a4226fb9d32f 100644
--- a/pkgs/servers/monitoring/zabbix/web.nix
+++ b/pkgs/servers/monitoring/zabbix/web.nix
@@ -23,9 +23,9 @@ import ./versions.nix ({ version, hash, ... }:
     '';
 
     meta = with lib; {
-      description = "An enterprise-class open source distributed monitoring solution (web frontend)";
+      description = "Enterprise-class open source distributed monitoring solution (web frontend)";
       homepage = "https://www.zabbix.com/";
-      license = licenses.gpl2;
+      license = licenses.gpl2Plus;
       maintainers = [ maintainers.mmahut ];
       platforms = platforms.linux;
     };
diff --git a/pkgs/servers/mpd/default.nix b/pkgs/servers/mpd/default.nix
index ffebc9878e99e..57178da7297f3 100644
--- a/pkgs/servers/mpd/default.nix
+++ b/pkgs/servers/mpd/default.nix
@@ -185,7 +185,7 @@ let
       passthru.tests.nixos = nixosTests.mpd;
 
       meta = with lib; {
-        description = "A flexible, powerful daemon for playing music";
+        description = "Flexible, powerful daemon for playing music";
         homepage    = "https://www.musicpd.org/";
         license     = licenses.gpl2Only;
         maintainers = with maintainers; [ astsmtl tobim ];
diff --git a/pkgs/servers/mqtt/mosquitto/default.nix b/pkgs/servers/mqtt/mosquitto/default.nix
index 824dcdf62f885..7f32957fdbf4d 100644
--- a/pkgs/servers/mqtt/mosquitto/default.nix
+++ b/pkgs/servers/mqtt/mosquitto/default.nix
@@ -84,7 +84,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "An open source MQTT v3.1/3.1.1/5.0 broker";
+    description = "Open source MQTT v3.1/3.1.1/5.0 broker";
     homepage = "https://mosquitto.org/";
     license = licenses.epl10;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/pkgs/servers/mqtt/nanomq/default.nix b/pkgs/servers/mqtt/nanomq/default.nix
index eb4bdf325e913..567e9392abdea 100644
--- a/pkgs/servers/mqtt/nanomq/default.nix
+++ b/pkgs/servers/mqtt/nanomq/default.nix
@@ -101,7 +101,7 @@ in stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "An ultra-lightweight and blazing-fast MQTT broker for IoT edge";
+    description = "Ultra-lightweight and blazing-fast MQTT broker for IoT edge";
     homepage = "https://nanomq.io/";
     license = licenses.mit;
     maintainers = with maintainers; [ sikmir ];
diff --git a/pkgs/servers/mx-puppet-discord/default.nix b/pkgs/servers/mx-puppet-discord/default.nix
index 7100a5bd271b3..b34a336d7e6bb 100644
--- a/pkgs/servers/mx-puppet-discord/default.nix
+++ b/pkgs/servers/mx-puppet-discord/default.nix
@@ -41,7 +41,7 @@ in myNodePackages.package.override {
   '';
 
   meta = with lib; {
-    description = "A discord puppeting bridge for matrix";
+    description = "Discord puppeting bridge for matrix";
     license = licenses.asl20;
     homepage = "https://gitlab.com/mx-puppet/discord/mx-puppet-discord";
     maintainers = with maintainers; [ expipiplus1 ];
diff --git a/pkgs/servers/nas/default.nix b/pkgs/servers/nas/default.nix
index d7f71ff185f51..84d8db558546c 100644
--- a/pkgs/servers/nas/default.nix
+++ b/pkgs/servers/nas/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "http://radscan.com/nas.html";
-    description = "A network transparent, client/server audio transport system";
+    description = "Network transparent, client/server audio transport system";
     license = lib.licenses.mit;
     maintainers = [ ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/servers/nats-server/default.nix b/pkgs/servers/nats-server/default.nix
index 440d0e1d81af6..00a3b156528ec 100644
--- a/pkgs/servers/nats-server/default.nix
+++ b/pkgs/servers/nats-server/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "nats-server";
-  version = "2.10.14";
+  version = "2.10.16";
 
   src = fetchFromGitHub {
     owner = "nats-io";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-+DdhdW8CCMprjR2XcOntkTDh5CHtEFHYFz7Htdptw3s=";
+    hash = "sha256-OyDDAx1jmemFn9D4VJPWrLJJM1YB8tZBC7N3xrUYodA=";
   };
 
-  vendorHash = "sha256-4kBXVsKf1jD3zvaAy6Rb7zmIK1WPbi31GRvRghdEC/s=";
+  vendorHash = "sha256-g1BF0Xl3AwHKSJ3k/gfJN5L875SdoDGK0Lk2gUUq4y4=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/networking/exabgp/default.nix b/pkgs/servers/networking/exabgp/default.nix
index fa1b032a3c5ef..f00b427b15a2a 100644
--- a/pkgs/servers/networking/exabgp/default.nix
+++ b/pkgs/servers/networking/exabgp/default.nix
@@ -7,14 +7,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "exabgp";
-  version = "4.2.21";
+  version = "4.2.22";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "Exa-Networks";
     repo = "exabgp";
     rev = "refs/tags/${version}";
-    hash = "sha256-NlGE3yHUXPdxAMGhSaXMT2P1e7P+4AWg4lReP3f6Zx8=";
+    hash = "sha256-PrdCAmefKCBmbBFp04KiQGSsZZ4KNFk/ZtMedh9oow4=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
@@ -36,7 +36,7 @@ python3.pkgs.buildPythonApplication rec {
   };
 
   meta = with lib; {
-    description = "The BGP swiss army knife of networking";
+    description = "BGP swiss army knife of networking";
     homepage = "https://github.com/Exa-Networks/exabgp";
     changelog = "https://github.com/Exa-Networks/exabgp/blob/${src.rev}/CHANGELOG.rst";
     license = licenses.bsd3;
diff --git a/pkgs/servers/networking/rustus/default.nix b/pkgs/servers/networking/rustus/default.nix
index 53c76184a8b85..77bf8ce7d776b 100644
--- a/pkgs/servers/networking/rustus/default.nix
+++ b/pkgs/servers/networking/rustus/default.nix
@@ -62,7 +62,7 @@ rustPlatform.buildRustPackage {
 
 
   meta = with lib; {
-    description = "TUS protocol implementation in Rust.";
+    description = "TUS protocol implementation in Rust";
     mainProgram = "rustus";
     homepage = "https://s3rius.github.io/rustus/";
     license = licenses.asl20;
diff --git a/pkgs/servers/nextcloud/default.nix b/pkgs/servers/nextcloud/default.nix
index 0c5ee36951c09..7e853eed71de6 100644
--- a/pkgs/servers/nextcloud/default.nix
+++ b/pkgs/servers/nextcloud/default.nix
@@ -43,20 +43,20 @@ let
   };
 in {
   nextcloud27 = generic {
-    version = "27.1.9";
-    hash = "sha256-+P4QzLWFNJ+EUQ25tLAgjbfziV2vPXpejxfSNuzEEfU=";
+    version = "27.1.10";
+    hash = "sha256-lD4ScNdxp8gNqisy5ylM6MO3e56u9yrYs4SH1YyFB1Y=";
     packages = nextcloud27Packages;
   };
 
   nextcloud28 = generic {
-    version = "28.0.5";
-    hash = "sha256-3KEQD5W4ZLreETR3cjxxrIlxkzUsMX45zShth2NXBus=";
+    version = "28.0.6";
+    hash = "sha256-3w0zhLRHy6HhKPIggPZ4BSH4aBab6r7o6g0VW/nGa48=";
     packages = nextcloud28Packages;
   };
 
   nextcloud29 = generic {
-    version = "29.0.0";
-    hash = "sha256-6bU/ZDK29mRIfThpZF+hIaZM8O1q7oOqVgkD2vhrUr0=";
+    version = "29.0.2";
+    hash = "sha256-LUnSl9w0AJICEFeCPo54oxK8APVt59hneseQWQkYqxc=";
     packages = nextcloud29Packages;
   };
 
diff --git a/pkgs/servers/nextcloud/notify_push.nix b/pkgs/servers/nextcloud/notify_push.nix
index 3d92584d2f937..d8fc873802e5b 100644
--- a/pkgs/servers/nextcloud/notify_push.nix
+++ b/pkgs/servers/nextcloud/notify_push.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "notify_push";
-  version = "0.6.10";
+  version = "0.6.12";
 
   src = fetchFromGitHub {
     owner = "nextcloud";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Kk9l9jowerxh5nsKQ5TOaijSJbs0DgJKaRl9tlAttzI=";
+    hash = "sha256-Wbrkr9DWOQpOKAp9X/PzU8alDDrDapX/1hE+ObbD/nc=";
   };
 
-  cargoHash = "sha256-wtmYWQOYy8JmbSxgrXkFtDe6KmJJIMVpcELQj06II4k=";
+  cargoHash = "sha256-4bgbhtqdb1IVsf0yIcZOXZCVdRHjdvhZe/VCab0kuMk=";
 
   passthru = rec {
     test_client = rustPlatform.buildRustPackage {
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage rec {
 
       buildAndTestSubdir = "test_client";
 
-      cargoHash = "sha256-sPUlke8KI6sX2HneeoZh8RMG7aydC43c37V179ipukU=";
+      cargoHash = "sha256-Z7AX/PXfiUHEV/M+i/2qne70tcZnnPj/iNT+DNMECS8=";
 
       meta = meta // {
         mainProgram = "test_client";
@@ -32,9 +32,9 @@ rustPlatform.buildRustPackage rec {
     };
     tests = {
       inherit (nixosTests.nextcloud)
-        with-postgresql-and-redis26
         with-postgresql-and-redis27
-        with-postgresql-and-redis28;
+        with-postgresql-and-redis28
+        with-postgresql-and-redis29;
       inherit test_client;
     };
   };
diff --git a/pkgs/servers/nextcloud/packages/27.json b/pkgs/servers/nextcloud/packages/27.json
index 44ae57d679844..dbab86fde27c6 100644
--- a/pkgs/servers/nextcloud/packages/27.json
+++ b/pkgs/servers/nextcloud/packages/27.json
@@ -10,9 +10,9 @@
     ]
   },
   "calendar": {
-    "sha256": "04wka70zfz36ccad755vq7wnnjid69ws252jf6nyw614dwr5idvh",
-    "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.7.1/calendar-v4.7.1.tar.gz",
-    "version": "4.7.1",
+    "sha256": "09rsp5anpaqzwmrixza5qh12vmq9hd3an045064vm3rnynz537qc",
+    "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.7.6/calendar-v4.7.6.tar.gz",
+    "version": "4.7.6",
     "description": "The Calendar app is a user interface for Nextcloud's CalDAV server. Easily sync events from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Contacts - more to come.\n* 🌐 **WebCal Support!** Want to see your favorite team’s matchdays in your calendar? No problem!\n* 🙋 **Attendees!** Invite people to your events\n* ⌚️ **Free/Busy!** See when your attendees are available to meet\n* ⏰ **Reminders!** Get alarms for events inside your browser and via email\n* 🔍 Search! Find your events at ease\n* ☑️ Tasks! See tasks with a due date directly in the calendar\n* 🙈 **We’re not reinventing the wheel!** Based on the great [c-dav library](https://github.com/nextcloud/cdav-library), [ical.js](https://github.com/mozilla-comm/ical.js) and [fullcalendar](https://github.com/fullcalendar/fullcalendar) libraries.",
     "homepage": "https://github.com/nextcloud/calendar/",
     "licenses": [
@@ -100,9 +100,9 @@
     ]
   },
   "gpoddersync": {
-    "sha256": "1lm8lqvs1mvb3i2a8b5j9g7b26f747jfp696b9ima0hgpw8ycbfs",
-    "url": "https://github.com/thrillfall/nextcloud-gpodder/releases/download/3.8.3/gpoddersync.tar.gz",
-    "version": "3.8.3",
+    "sha256": "1hk052864mb49crmsy2m9alv22rk7ns6m6q7l372j7py9gr8rf60",
+    "url": "https://github.com/thrillfall/nextcloud-gpodder/releases/download/3.9.0/gpoddersync.tar.gz",
+    "version": "3.9.0",
     "description": "Expose GPodder API to sync podcast consumer apps like AntennaPod",
     "homepage": "https://github.com/thrillfall/nextcloud-gpodder",
     "licenses": [
@@ -133,16 +133,16 @@
     "sha256": "1cb5csdn85y5fkwhbxxl9i1qy92iqx9v9ccavcp66xfpyk4dlf22",
     "url": "https://github.com/nextcloud-releases/integration_openai/releases/download/v1.1.5/integration_openai-v1.1.5.tar.gz",
     "version": "1.1.5",
-    "description": "⚠️ The smart pickers have been removed from this app\nas they are now included in the [Assistant app](https://apps.nextcloud.com/apps/assistant).\n\nThis app implements:\n\n* Text generation providers: Free prompt, Summarize, Headline and Reformulate (using any available large language model)\n* A Translation provider (using any available language model)\n* A SpeechToText provider (using Whisper)\n* An image generation provider\n\nInstead of connecting to the OpenAI API for these, you can also connect to a self-hosted [LocalAI](https://localai.io) instance\nor to any service that implements an API similar to the OpenAI one, for example: [Plusserver](https://www.plusserver.com/en/ai-platform/).\n\n## Ethical AI Rating\n### Rating for Text generation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n\n### Rating for Translation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n### Rating for Image generation using DALL·E via OpenAI API: 🔴\n\nNegative:\n* the software for training and inferencing of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be ran on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via OpenAI API: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* The trained model is freely available, and thus can run on-premise\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n### Rating for Text generation via LocalAI: 🟢\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n* the training data is freely available, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n\n### Rating for Image generation using Stable Diffusion via LocalAI : 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via LocalAI: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).",
+    "description": "⚠️ The smart pickers have been removed from this app\nas they are now included in the [Assistant app](https://apps.nextcloud.com/apps/assistant).\n\nThis app implements:\n\n* Text generation providers: Free prompt, Summarize, Headline and Reformulate (using any available large language model)\n* A Translation provider (using any available language model)\n* A SpeechToText provider (using Whisper)\n* An image generation provider\n\nInstead of connecting to the OpenAI API for these, you can also connect to a self-hosted [LocalAI](https://localai.io) instance\nor to any service that implements an API similar to the OpenAI one, for example: [Plusserver](https://www.plusserver.com/en/ai-platform/) or [MistralAI](https://mistral.ai).\n\n## Ethical AI Rating\n### Rating for Text generation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n\n### Rating for Translation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n### Rating for Image generation using DALL·E via OpenAI API: 🔴\n\nNegative:\n* the software for training and inferencing of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be ran on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via OpenAI API: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* The trained model is freely available, and thus can run on-premise\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n### Rating for Text generation via LocalAI: 🟢\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n* the training data is freely available, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n\n### Rating for Image generation using Stable Diffusion via LocalAI : 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via LocalAI: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).",
     "homepage": "https://github.com/nextcloud/integration_openai",
     "licenses": [
       "agpl"
     ]
   },
   "mail": {
-    "sha256": "1m48zdh7jjmgw7r9y9irp7z22wjippjswy7r60yvsdxbac765n14",
-    "url": "https://github.com/nextcloud-releases/mail/releases/download/v3.6.0/mail-v3.6.0.tar.gz",
-    "version": "3.6.0",
+    "sha256": "1q0ihgrb6sk0rizs45clqhjpmai2m2zislw6s1694j1zssz4jpqg",
+    "url": "https://github.com/nextcloud-releases/mail/releases/download/v3.7.1/mail-v3.7.1.tar.gz",
+    "version": "3.7.1",
     "description": "**💌 A mail app for Nextcloud**\n\n- **🚀 Integration with other Nextcloud apps!** Currently Contacts, Calendar & Files – more to come.\n- **📥 Multiple mail accounts!** Personal and company account? No problem, and a nice unified inbox. Connect any IMAP account.\n- **🔒 Send & receive encrypted mails!** Using the great [Mailvelope](https://mailvelope.com) browser extension.\n- **🙈 We’re not reinventing the wheel!** Based on the great [Horde](https://horde.org) libraries.\n- **📬 Want to host your own mail server?** We do not have to reimplement this as you could set up [Mail-in-a-Box](https://mailinabox.email)!\n\n## Ethical AI Rating\n\n### Priority Inbox\n\nPositive:\n* The software for training and inferencing of this model is open source.\n* The model is created and trained on-premises based on the user's own data.\n* The training data is accessible to the user, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n### Thread Summaries (opt-in)\n\n**Rating:** 🟢/🟡/🟠/🔴\n\nThe rating depends on the installed text processing backend. See [the rating overview](https://docs.nextcloud.com/server/latest/admin_manual/ai/index.html) for details.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).",
     "homepage": "https://github.com/nextcloud/mail#readme",
     "licenses": [
@@ -160,9 +160,9 @@
     ]
   },
   "memories": {
-    "sha256": "02l9rq117x7x4nra1f50fkn7yr3cpbjnsq9nlr7rnsn9qsf5rrw9",
-    "url": "https://github.com/pulsejet/memories/releases/download/v7.2.0/memories.tar.gz",
-    "version": "7.2.0",
+    "sha256": "1wahnkc253bgm0bqciyhfh1iyl8girbj8mzdd29l0k1bks8fr4qc",
+    "url": "https://github.com/pulsejet/memories/releases/download/v7.3.1/memories.tar.gz",
+    "version": "7.3.1",
     "description": "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos.",
     "homepage": "https://memories.gallery",
     "licenses": [
@@ -200,9 +200,9 @@
     ]
   },
   "notify_push": {
-    "sha256": "0zsjr3zr8c686pkgsmhjg1ssnzvc9flkyy1x571wk7lx7lfrvrd1",
-    "url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.10/notify_push-v0.6.10.tar.gz",
-    "version": "0.6.10",
+    "sha256": "14s8g3dqwrxjz1zww64n1lhwdb8374wr1b5v76xhawypmfz2a68h",
+    "url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.12/notify_push-v0.6.12.tar.gz",
+    "version": "0.6.12",
     "description": "Push update support for desktop app.\n\nOnce the app is installed, the push binary needs to be setup. You can either use the setup wizard with `occ notify_push:setup` or see the [README](http://github.com/nextcloud/notify_push) for detailed setup instructions",
     "homepage": "",
     "licenses": [
@@ -210,9 +210,9 @@
     ]
   },
   "onlyoffice": {
-    "sha256": "1h4jjphpqzxmnx300fkj0gf831sb61r8vxd3w9vnj4v38mxdmcc0",
-    "url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v9.2.0/onlyoffice.tar.gz",
-    "version": "9.2.0",
+    "sha256": "1vflj70q8d0hrfck9c5l1k4qa38gpdh3zjgx4aqamnlbvkfssk7h",
+    "url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v9.2.2/onlyoffice.tar.gz",
+    "version": "9.2.2",
     "description": "ONLYOFFICE connector allows you to view, edit and collaborate on text documents, spreadsheets and presentations within Nextcloud using ONLYOFFICE Docs. This will create a new Edit in ONLYOFFICE action within the document library for Office documents. This allows multiple users to co-author documents in real time from the familiar web interface and save the changes back to your file storage.",
     "homepage": "https://www.onlyoffice.com",
     "licenses": [
@@ -230,9 +230,9 @@
     ]
   },
   "polls": {
-    "sha256": "1y6908yp327j6v9caawylah5zayh4m1d7658j3yh0r5siml9lq94",
-    "url": "https://github.com/nextcloud/polls/releases/download/v5.4.3/polls.tar.gz",
-    "version": "5.4.3",
+    "sha256": "0wijb8dkszyzs3108qylcjnvd3kdhlciqndhgc993ybwqxqxfsxn",
+    "url": "https://github.com/nextcloud/polls/releases/download/v6.4.1/polls.tar.gz",
+    "version": "6.4.1",
     "description": "A polls app, similar to Doodle/Dudle with the possibility to restrict access (members, certain groups/users, hidden and public).",
     "homepage": "https://github.com/nextcloud/polls",
     "licenses": [
@@ -269,10 +269,20 @@
       "agpl"
     ]
   },
+  "richdocuments": {
+    "sha256": "161v7gb0zg3anr3322ar2m3f6y0zf5cqrwfdsb04p6pqvfpsy9wh",
+    "url": "https://github.com/nextcloud-releases/richdocuments/releases/download/v8.2.10/richdocuments-v8.2.10.tar.gz",
+    "version": "8.2.10",
+    "description": "This application can connect to a Collabora Online (or other) server (WOPI-like Client). Nextcloud is the WOPI Host. Please read the documentation to learn more about that.\n\nYou can also edit your documents off-line with the Collabora Office app from the **[Android](https://play.google.com/store/apps/details?id=com.collabora.libreoffice)** and **[iOS](https://apps.apple.com/us/app/collabora-office/id1440482071)** store.",
+    "homepage": "https://collaboraoffice.com/",
+    "licenses": [
+      "agpl"
+    ]
+  },
   "spreed": {
-    "sha256": "0699c9xfmzk48q0f48lxw16h9l2300w6vp1sn2vb8wr76fbhm9kf",
-    "url": "https://github.com/nextcloud-releases/spreed/releases/download/v17.1.8/spreed-v17.1.8.tar.gz",
-    "version": "17.1.8",
+    "sha256": "0knzz84ky8w1dvxrl61p63zrmalzg6b4b8syf5hx9ympr4ngpaza",
+    "url": "https://github.com/nextcloud-releases/spreed/releases/download/v17.1.9/spreed-v17.1.9.tar.gz",
+    "version": "17.1.9",
     "description": "Chat, video & audio-conferencing using WebRTC\n\n* 💬 **Chat** Nextcloud Talk comes with a simple text chat, allowing you to share or upload files from your Nextcloud Files app or local device and mention other participants.\n* 👥 **Private, group, public and password protected calls!** Invite someone, a whole group or send a public link to invite to a call.\n* 🌐 **Federated chats** Chat with other Nextcloud users on their servers\n* 💻 **Screen sharing!** Share your screen with the participants of your call.\n* 🚀 **Integration with other Nextcloud apps** like Files, Calendar, User status, Dashboard, Flow, Maps, Smart picker, Contacts, Deck, and many more.\n* 🌉 **Sync with other chat solutions** With [Matterbridge](https://github.com/42wim/matterbridge/) being integrated in Talk, you can easily sync a lot of other chat solutions to Nextcloud Talk and vice-versa.",
     "homepage": "https://github.com/nextcloud/spreed",
     "licenses": [
diff --git a/pkgs/servers/nextcloud/packages/28.json b/pkgs/servers/nextcloud/packages/28.json
index 0c83f7f04bd9c..0a5c405e36115 100644
--- a/pkgs/servers/nextcloud/packages/28.json
+++ b/pkgs/servers/nextcloud/packages/28.json
@@ -1,8 +1,8 @@
 {
   "bookmarks": {
-    "sha256": "06pprhlaaqdha2nmfdcf76mhh48hdr5jlv88snxji8lpflv50wr5",
-    "url": "https://github.com/nextcloud/bookmarks/releases/download/v13.1.3/bookmarks-13.1.3.tar.gz",
-    "version": "13.1.3",
+    "sha256": "01m78jfnqgvqj94v13bi6rj52sgwrp18zs4svgbdrci3lc7xqyp2",
+    "url": "https://github.com/nextcloud/bookmarks/releases/download/v14.1.2/bookmarks-14.1.2.tar.gz",
+    "version": "14.1.2",
     "description": "- 📂 Sort bookmarks into folders\n- 🏷 Add tags and personal notes\n- 🔍 Full-text search\n- 📲 Synchronize with all your browsers and devices\n- 👪 Share bookmarks with other users and publicly\n- ☠ Find broken links\n- ⚛ Generate RSS feeds of your collections\n- 📔 Read archived versions of your links in case they are depublished\n- 💬 Create new bookmarks directly from within Nextcloud Talk\n- 💼 Built-in Dashboard widgets for frequent and recent links\n\nRequirements:\n - PHP extensions:\n   - intl: *\n   - mbstring: *\n - when using MySQL, use at least v8.0",
     "homepage": "https://github.com/nextcloud/bookmarks",
     "licenses": [
@@ -10,9 +10,9 @@
     ]
   },
   "calendar": {
-    "sha256": "04wka70zfz36ccad755vq7wnnjid69ws252jf6nyw614dwr5idvh",
-    "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.7.1/calendar-v4.7.1.tar.gz",
-    "version": "4.7.1",
+    "sha256": "09rsp5anpaqzwmrixza5qh12vmq9hd3an045064vm3rnynz537qc",
+    "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.7.6/calendar-v4.7.6.tar.gz",
+    "version": "4.7.6",
     "description": "The Calendar app is a user interface for Nextcloud's CalDAV server. Easily sync events from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Contacts - more to come.\n* 🌐 **WebCal Support!** Want to see your favorite team’s matchdays in your calendar? No problem!\n* 🙋 **Attendees!** Invite people to your events\n* ⌚️ **Free/Busy!** See when your attendees are available to meet\n* ⏰ **Reminders!** Get alarms for events inside your browser and via email\n* 🔍 Search! Find your events at ease\n* ☑️ Tasks! See tasks with a due date directly in the calendar\n* 🙈 **We’re not reinventing the wheel!** Based on the great [c-dav library](https://github.com/nextcloud/cdav-library), [ical.js](https://github.com/mozilla-comm/ical.js) and [fullcalendar](https://github.com/fullcalendar/fullcalendar) libraries.",
     "homepage": "https://github.com/nextcloud/calendar/",
     "licenses": [
@@ -70,9 +70,9 @@
     ]
   },
   "forms": {
-    "sha256": "0ca627nyrs61k5990j3m1l7vxavsh8x8rrhfvk01pdl9f1556jmf",
-    "url": "https://github.com/nextcloud-releases/forms/releases/download/v4.2.3/forms-v4.2.3.tar.gz",
-    "version": "4.2.3",
+    "sha256": "1hwc7ra12nsr79xp8lkv3ip46bxxbjpaglb0a4k06ikfnzjaddny",
+    "url": "https://github.com/nextcloud-releases/forms/releases/download/v4.2.4/forms-v4.2.4.tar.gz",
+    "version": "4.2.4",
     "description": "**Simple surveys and questionnaires, self-hosted!**\n\n- **📝 Simple design:** No mass of options, only the essentials. Works well on mobile of course.\n- **📊 View & export results:** Results are visualized and can also be exported as CSV in the same format used by Google Forms.\n- **🔒 Data under your control!** Unlike in Google Forms, Typeform, Doodle and others, the survey info and responses are kept private on your instance.\n- **🧑‍💻 Connect to your software:** Easily integrate Forms into your service with our full-fledged [REST-API](https://github.com/nextcloud/forms/blob/main/docs/API.md).\n- **🙋 Get involved!** We have lots of stuff planned like more question types, collaboration on forms, [and much more](https://github.com/nextcloud/forms/milestones)!",
     "homepage": "https://github.com/nextcloud/forms",
     "licenses": [
@@ -80,9 +80,9 @@
     ]
   },
   "gpoddersync": {
-    "sha256": "1lm8lqvs1mvb3i2a8b5j9g7b26f747jfp696b9ima0hgpw8ycbfs",
-    "url": "https://github.com/thrillfall/nextcloud-gpodder/releases/download/3.8.3/gpoddersync.tar.gz",
-    "version": "3.8.3",
+    "sha256": "1hk052864mb49crmsy2m9alv22rk7ns6m6q7l372j7py9gr8rf60",
+    "url": "https://github.com/thrillfall/nextcloud-gpodder/releases/download/3.9.0/gpoddersync.tar.gz",
+    "version": "3.9.0",
     "description": "Expose GPodder API to sync podcast consumer apps like AntennaPod",
     "homepage": "https://github.com/thrillfall/nextcloud-gpodder",
     "licenses": [
@@ -110,19 +110,19 @@
     ]
   },
   "integration_openai": {
-    "sha256": "1x9w13xljh8h8n7hic4ffxsk7y63x9yghr1450ng2p68y6vjsg4g",
-    "url": "https://github.com/nextcloud-releases/integration_openai/releases/download/v2.0.0/integration_openai-v2.0.0.tar.gz",
-    "version": "2.0.0",
-    "description": "⚠️ The smart pickers have been removed from this app\nas they are now included in the [Assistant app](https://apps.nextcloud.com/apps/assistant).\n\nThis app implements:\n\n* Text generation providers: Free prompt, Summarize, Headline and Reformulate (using any available large language model)\n* A Translation provider (using any available language model)\n* A SpeechToText provider (using Whisper)\n* An image generation provider\n\nInstead of connecting to the OpenAI API for these, you can also connect to a self-hosted [LocalAI](https://localai.io) instance\nor to any service that implements an API similar to the OpenAI one, for example: [Plusserver](https://www.plusserver.com/en/ai-platform/).\n\n## Ethical AI Rating\n### Rating for Text generation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n\n### Rating for Translation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n### Rating for Image generation using DALL·E via OpenAI API: 🔴\n\nNegative:\n* the software for training and inferencing of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be ran on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via OpenAI API: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* The trained model is freely available, and thus can run on-premise\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n### Rating for Text generation via LocalAI: 🟢\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n* the training data is freely available, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n\n### Rating for Image generation using Stable Diffusion via LocalAI : 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via LocalAI: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).",
+    "sha256": "0q5fs57n644mad4qvr7pb46dljmdnl4c9wkh2kdhaqnmjsa7zs8j",
+    "url": "https://github.com/nextcloud-releases/integration_openai/releases/download/v2.0.1/integration_openai-v2.0.1.tar.gz",
+    "version": "2.0.1",
+    "description": "⚠️ The smart pickers have been removed from this app\nas they are now included in the [Assistant app](https://apps.nextcloud.com/apps/assistant).\n\nThis app implements:\n\n* Text generation providers: Free prompt, Summarize, Headline and Reformulate (using any available large language model)\n* A Translation provider (using any available language model)\n* A SpeechToText provider (using Whisper)\n* An image generation provider\n\nInstead of connecting to the OpenAI API for these, you can also connect to a self-hosted [LocalAI](https://localai.io) instance\nor to any service that implements an API similar to the OpenAI one, for example: [Plusserver](https://www.plusserver.com/en/ai-platform/) or [MistralAI](https://mistral.ai).\n\n## Ethical AI Rating\n### Rating for Text generation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n\n### Rating for Translation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n### Rating for Image generation using DALL·E via OpenAI API: 🔴\n\nNegative:\n* the software for training and inferencing of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be ran on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via OpenAI API: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* The trained model is freely available, and thus can run on-premise\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n### Rating for Text generation via LocalAI: 🟢\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n* the training data is freely available, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n\n### Rating for Image generation using Stable Diffusion via LocalAI : 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via LocalAI: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).",
     "homepage": "https://github.com/nextcloud/integration_openai",
     "licenses": [
       "agpl"
     ]
   },
   "mail": {
-    "sha256": "1m48zdh7jjmgw7r9y9irp7z22wjippjswy7r60yvsdxbac765n14",
-    "url": "https://github.com/nextcloud-releases/mail/releases/download/v3.6.0/mail-v3.6.0.tar.gz",
-    "version": "3.6.0",
+    "sha256": "1q0ihgrb6sk0rizs45clqhjpmai2m2zislw6s1694j1zssz4jpqg",
+    "url": "https://github.com/nextcloud-releases/mail/releases/download/v3.7.1/mail-v3.7.1.tar.gz",
+    "version": "3.7.1",
     "description": "**💌 A mail app for Nextcloud**\n\n- **🚀 Integration with other Nextcloud apps!** Currently Contacts, Calendar & Files – more to come.\n- **📥 Multiple mail accounts!** Personal and company account? No problem, and a nice unified inbox. Connect any IMAP account.\n- **🔒 Send & receive encrypted mails!** Using the great [Mailvelope](https://mailvelope.com) browser extension.\n- **🙈 We’re not reinventing the wheel!** Based on the great [Horde](https://horde.org) libraries.\n- **📬 Want to host your own mail server?** We do not have to reimplement this as you could set up [Mail-in-a-Box](https://mailinabox.email)!\n\n## Ethical AI Rating\n\n### Priority Inbox\n\nPositive:\n* The software for training and inferencing of this model is open source.\n* The model is created and trained on-premises based on the user's own data.\n* The training data is accessible to the user, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n### Thread Summaries (opt-in)\n\n**Rating:** 🟢/🟡/🟠/🔴\n\nThe rating depends on the installed text processing backend. See [the rating overview](https://docs.nextcloud.com/server/latest/admin_manual/ai/index.html) for details.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).",
     "homepage": "https://github.com/nextcloud/mail#readme",
     "licenses": [
@@ -140,9 +140,9 @@
     ]
   },
   "memories": {
-    "sha256": "02l9rq117x7x4nra1f50fkn7yr3cpbjnsq9nlr7rnsn9qsf5rrw9",
-    "url": "https://github.com/pulsejet/memories/releases/download/v7.2.0/memories.tar.gz",
-    "version": "7.2.0",
+    "sha256": "1wahnkc253bgm0bqciyhfh1iyl8girbj8mzdd29l0k1bks8fr4qc",
+    "url": "https://github.com/pulsejet/memories/releases/download/v7.3.1/memories.tar.gz",
+    "version": "7.3.1",
     "description": "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos.",
     "homepage": "https://memories.gallery",
     "licenses": [
@@ -170,9 +170,9 @@
     ]
   },
   "notify_push": {
-    "sha256": "0zsjr3zr8c686pkgsmhjg1ssnzvc9flkyy1x571wk7lx7lfrvrd1",
-    "url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.10/notify_push-v0.6.10.tar.gz",
-    "version": "0.6.10",
+    "sha256": "14s8g3dqwrxjz1zww64n1lhwdb8374wr1b5v76xhawypmfz2a68h",
+    "url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.12/notify_push-v0.6.12.tar.gz",
+    "version": "0.6.12",
     "description": "Push update support for desktop app.\n\nOnce the app is installed, the push binary needs to be setup. You can either use the setup wizard with `occ notify_push:setup` or see the [README](http://github.com/nextcloud/notify_push) for detailed setup instructions",
     "homepage": "",
     "licenses": [
@@ -180,9 +180,9 @@
     ]
   },
   "onlyoffice": {
-    "sha256": "1h4jjphpqzxmnx300fkj0gf831sb61r8vxd3w9vnj4v38mxdmcc0",
-    "url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v9.2.0/onlyoffice.tar.gz",
-    "version": "9.2.0",
+    "sha256": "1vflj70q8d0hrfck9c5l1k4qa38gpdh3zjgx4aqamnlbvkfssk7h",
+    "url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v9.2.2/onlyoffice.tar.gz",
+    "version": "9.2.2",
     "description": "ONLYOFFICE connector allows you to view, edit and collaborate on text documents, spreadsheets and presentations within Nextcloud using ONLYOFFICE Docs. This will create a new Edit in ONLYOFFICE action within the document library for Office documents. This allows multiple users to co-author documents in real time from the familiar web interface and save the changes back to your file storage.",
     "homepage": "https://www.onlyoffice.com",
     "licenses": [
@@ -239,10 +239,20 @@
       "agpl"
     ]
   },
+  "richdocuments": {
+    "sha256": "1rpbzcxi6n656351rlx1gpg2nwz0z5i4107adls9fh1cdvj9vqs6",
+    "url": "https://github.com/nextcloud-releases/richdocuments/releases/download/v8.3.7/richdocuments-v8.3.7.tar.gz",
+    "version": "8.3.7",
+    "description": "This application can connect to a Collabora Online (or other) server (WOPI-like Client). Nextcloud is the WOPI Host. Please read the documentation to learn more about that.\n\nYou can also edit your documents off-line with the Collabora Office app from the **[Android](https://play.google.com/store/apps/details?id=com.collabora.libreoffice)** and **[iOS](https://apps.apple.com/us/app/collabora-office/id1440482071)** store.",
+    "homepage": "https://collaboraoffice.com/",
+    "licenses": [
+      "agpl"
+    ]
+  },
   "spreed": {
-    "sha256": "1d6y473xnlc2n3k9hqb2n2zk780pran77k4frbgfyikinbadd1ci",
-    "url": "https://github.com/nextcloud-releases/spreed/releases/download/v18.0.7/spreed-v18.0.7.tar.gz",
-    "version": "18.0.7",
+    "sha256": "0mz6cb2janafday60dw7ga42c67lpqzjpw0gli6jj90pzcc4by72",
+    "url": "https://github.com/nextcloud-releases/spreed/releases/download/v18.0.8/spreed-v18.0.8.tar.gz",
+    "version": "18.0.8",
     "description": "Chat, video & audio-conferencing using WebRTC\n\n* 💬 **Chat** Nextcloud Talk comes with a simple text chat, allowing you to share or upload files from your Nextcloud Files app or local device and mention other participants.\n* 👥 **Private, group, public and password protected calls!** Invite someone, a whole group or send a public link to invite to a call.\n* 🌐 **Federated chats** Chat with other Nextcloud users on their servers\n* 💻 **Screen sharing!** Share your screen with the participants of your call.\n* 🚀 **Integration with other Nextcloud apps** like Files, Calendar, User status, Dashboard, Flow, Maps, Smart picker, Contacts, Deck, and many more.\n* 🌉 **Sync with other chat solutions** With [Matterbridge](https://github.com/42wim/matterbridge/) being integrated in Talk, you can easily sync a lot of other chat solutions to Nextcloud Talk and vice-versa.",
     "homepage": "https://github.com/nextcloud/spreed",
     "licenses": [
@@ -250,9 +260,9 @@
     ]
   },
   "tasks": {
-    "sha256": "0a1wpb9f08iqxl9vjp0slxwzn0w67ilpk21dsi0nhpm28ns2mhyc",
-    "url": "https://github.com/nextcloud/tasks/releases/download/v0.15.0/tasks.tar.gz",
-    "version": "0.15.0",
+    "sha256": "1g2wqsm9kjm7dri75ghix2hb5vby3vy3ibcvmwfdwsab3a12xbrg",
+    "url": "https://github.com/nextcloud/tasks/releases/download/v0.16.0/tasks.tar.gz",
+    "version": "0.16.0",
     "description": "Once enabled, a new Tasks menu will appear in your Nextcloud apps menu. From there you can add and delete tasks, edit their title, description, start and due dates and mark them as important. Tasks can be shared between users. Tasks can be synchronized using CalDav (each task list is linked to an Nextcloud calendar, to sync it to your local client: Thunderbird, Evolution, KDE Kontact, iCal … - just add the calendar as a remote calendar in your client). You can download your tasks as ICS files using the download button for each calendar.",
     "homepage": "https://github.com/nextcloud/tasks/",
     "licenses": [
diff --git a/pkgs/servers/nextcloud/packages/29.json b/pkgs/servers/nextcloud/packages/29.json
index f7669624b3a16..7f7e7d91e9f38 100644
--- a/pkgs/servers/nextcloud/packages/29.json
+++ b/pkgs/servers/nextcloud/packages/29.json
@@ -1,8 +1,8 @@
 {
   "bookmarks": {
-    "sha256": "06pprhlaaqdha2nmfdcf76mhh48hdr5jlv88snxji8lpflv50wr5",
-    "url": "https://github.com/nextcloud/bookmarks/releases/download/v13.1.3/bookmarks-13.1.3.tar.gz",
-    "version": "13.1.3",
+    "sha256": "01m78jfnqgvqj94v13bi6rj52sgwrp18zs4svgbdrci3lc7xqyp2",
+    "url": "https://github.com/nextcloud/bookmarks/releases/download/v14.1.2/bookmarks-14.1.2.tar.gz",
+    "version": "14.1.2",
     "description": "- 📂 Sort bookmarks into folders\n- 🏷 Add tags and personal notes\n- 🔍 Full-text search\n- 📲 Synchronize with all your browsers and devices\n- 👪 Share bookmarks with other users and publicly\n- ☠ Find broken links\n- ⚛ Generate RSS feeds of your collections\n- 📔 Read archived versions of your links in case they are depublished\n- 💬 Create new bookmarks directly from within Nextcloud Talk\n- 💼 Built-in Dashboard widgets for frequent and recent links\n\nRequirements:\n - PHP extensions:\n   - intl: *\n   - mbstring: *\n - when using MySQL, use at least v8.0",
     "homepage": "https://github.com/nextcloud/bookmarks",
     "licenses": [
@@ -10,9 +10,9 @@
     ]
   },
   "calendar": {
-    "sha256": "04wka70zfz36ccad755vq7wnnjid69ws252jf6nyw614dwr5idvh",
-    "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.7.1/calendar-v4.7.1.tar.gz",
-    "version": "4.7.1",
+    "sha256": "09rsp5anpaqzwmrixza5qh12vmq9hd3an045064vm3rnynz537qc",
+    "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.7.6/calendar-v4.7.6.tar.gz",
+    "version": "4.7.6",
     "description": "The Calendar app is a user interface for Nextcloud's CalDAV server. Easily sync events from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Contacts - more to come.\n* 🌐 **WebCal Support!** Want to see your favorite team’s matchdays in your calendar? No problem!\n* 🙋 **Attendees!** Invite people to your events\n* ⌚️ **Free/Busy!** See when your attendees are available to meet\n* ⏰ **Reminders!** Get alarms for events inside your browser and via email\n* 🔍 Search! Find your events at ease\n* ☑️ Tasks! See tasks with a due date directly in the calendar\n* 🙈 **We’re not reinventing the wheel!** Based on the great [c-dav library](https://github.com/nextcloud/cdav-library), [ical.js](https://github.com/mozilla-comm/ical.js) and [fullcalendar](https://github.com/fullcalendar/fullcalendar) libraries.",
     "homepage": "https://github.com/nextcloud/calendar/",
     "licenses": [
@@ -70,9 +70,9 @@
     ]
   },
   "forms": {
-    "sha256": "0ca627nyrs61k5990j3m1l7vxavsh8x8rrhfvk01pdl9f1556jmf",
-    "url": "https://github.com/nextcloud-releases/forms/releases/download/v4.2.3/forms-v4.2.3.tar.gz",
-    "version": "4.2.3",
+    "sha256": "1hwc7ra12nsr79xp8lkv3ip46bxxbjpaglb0a4k06ikfnzjaddny",
+    "url": "https://github.com/nextcloud-releases/forms/releases/download/v4.2.4/forms-v4.2.4.tar.gz",
+    "version": "4.2.4",
     "description": "**Simple surveys and questionnaires, self-hosted!**\n\n- **📝 Simple design:** No mass of options, only the essentials. Works well on mobile of course.\n- **📊 View & export results:** Results are visualized and can also be exported as CSV in the same format used by Google Forms.\n- **🔒 Data under your control!** Unlike in Google Forms, Typeform, Doodle and others, the survey info and responses are kept private on your instance.\n- **🧑‍💻 Connect to your software:** Easily integrate Forms into your service with our full-fledged [REST-API](https://github.com/nextcloud/forms/blob/main/docs/API.md).\n- **🙋 Get involved!** We have lots of stuff planned like more question types, collaboration on forms, [and much more](https://github.com/nextcloud/forms/milestones)!",
     "homepage": "https://github.com/nextcloud/forms",
     "licenses": [
@@ -80,9 +80,9 @@
     ]
   },
   "gpoddersync": {
-    "sha256": "1lm8lqvs1mvb3i2a8b5j9g7b26f747jfp696b9ima0hgpw8ycbfs",
-    "url": "https://github.com/thrillfall/nextcloud-gpodder/releases/download/3.8.3/gpoddersync.tar.gz",
-    "version": "3.8.3",
+    "sha256": "1hk052864mb49crmsy2m9alv22rk7ns6m6q7l372j7py9gr8rf60",
+    "url": "https://github.com/thrillfall/nextcloud-gpodder/releases/download/3.9.0/gpoddersync.tar.gz",
+    "version": "3.9.0",
     "description": "Expose GPodder API to sync podcast consumer apps like AntennaPod",
     "homepage": "https://github.com/thrillfall/nextcloud-gpodder",
     "licenses": [
@@ -90,9 +90,9 @@
     ]
   },
   "groupfolders": {
-    "sha256": "0cg81d75dg96zp09jy4yzg65v14wf99c2snnj304v4dia410c8a3",
-    "url": "https://github.com/nextcloud-releases/groupfolders/releases/download/v16.0.5/groupfolders-v16.0.5.tar.gz",
-    "version": "16.0.5",
+    "sha256": "1x765bd5qd88rpa786pvj74psc52zbivk73pxna6nmhn9v0pmpms",
+    "url": "https://github.com/nextcloud-releases/groupfolders/releases/download/v17.0.0/groupfolders-v17.0.0.tar.gz",
+    "version": "17.0.0",
     "description": "Admin configured folders shared with everyone in a group.\n\nFolders can be configured from *Group folders* in the admin settings.\n\nAfter a folder is created, the admin can give access to the folder to one or more groups, control their write/sharing permissions and assign a quota for the folder.\n\nNote: Encrypting the contents of group folders is currently not supported.",
     "homepage": "https://github.com/nextcloud/groupfolders",
     "licenses": [
@@ -110,19 +110,19 @@
     ]
   },
   "integration_openai": {
-    "sha256": "1x9w13xljh8h8n7hic4ffxsk7y63x9yghr1450ng2p68y6vjsg4g",
-    "url": "https://github.com/nextcloud-releases/integration_openai/releases/download/v2.0.0/integration_openai-v2.0.0.tar.gz",
-    "version": "2.0.0",
-    "description": "⚠️ The smart pickers have been removed from this app\nas they are now included in the [Assistant app](https://apps.nextcloud.com/apps/assistant).\n\nThis app implements:\n\n* Text generation providers: Free prompt, Summarize, Headline and Reformulate (using any available large language model)\n* A Translation provider (using any available language model)\n* A SpeechToText provider (using Whisper)\n* An image generation provider\n\nInstead of connecting to the OpenAI API for these, you can also connect to a self-hosted [LocalAI](https://localai.io) instance\nor to any service that implements an API similar to the OpenAI one, for example: [Plusserver](https://www.plusserver.com/en/ai-platform/).\n\n## Ethical AI Rating\n### Rating for Text generation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n\n### Rating for Translation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n### Rating for Image generation using DALL·E via OpenAI API: 🔴\n\nNegative:\n* the software for training and inferencing of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be ran on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via OpenAI API: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* The trained model is freely available, and thus can run on-premise\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n### Rating for Text generation via LocalAI: 🟢\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n* the training data is freely available, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n\n### Rating for Image generation using Stable Diffusion via LocalAI : 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via LocalAI: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).",
+    "sha256": "0q5fs57n644mad4qvr7pb46dljmdnl4c9wkh2kdhaqnmjsa7zs8j",
+    "url": "https://github.com/nextcloud-releases/integration_openai/releases/download/v2.0.1/integration_openai-v2.0.1.tar.gz",
+    "version": "2.0.1",
+    "description": "⚠️ The smart pickers have been removed from this app\nas they are now included in the [Assistant app](https://apps.nextcloud.com/apps/assistant).\n\nThis app implements:\n\n* Text generation providers: Free prompt, Summarize, Headline and Reformulate (using any available large language model)\n* A Translation provider (using any available language model)\n* A SpeechToText provider (using Whisper)\n* An image generation provider\n\nInstead of connecting to the OpenAI API for these, you can also connect to a self-hosted [LocalAI](https://localai.io) instance\nor to any service that implements an API similar to the OpenAI one, for example: [Plusserver](https://www.plusserver.com/en/ai-platform/) or [MistralAI](https://mistral.ai).\n\n## Ethical AI Rating\n### Rating for Text generation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n\n### Rating for Translation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n### Rating for Image generation using DALL·E via OpenAI API: 🔴\n\nNegative:\n* the software for training and inferencing of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be ran on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via OpenAI API: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* The trained model is freely available, and thus can run on-premise\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n### Rating for Text generation via LocalAI: 🟢\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n* the training data is freely available, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n\n### Rating for Image generation using Stable Diffusion via LocalAI : 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via LocalAI: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).",
     "homepage": "https://github.com/nextcloud/integration_openai",
     "licenses": [
       "agpl"
     ]
   },
   "mail": {
-    "sha256": "1m48zdh7jjmgw7r9y9irp7z22wjippjswy7r60yvsdxbac765n14",
-    "url": "https://github.com/nextcloud-releases/mail/releases/download/v3.6.0/mail-v3.6.0.tar.gz",
-    "version": "3.6.0",
+    "sha256": "1q0ihgrb6sk0rizs45clqhjpmai2m2zislw6s1694j1zssz4jpqg",
+    "url": "https://github.com/nextcloud-releases/mail/releases/download/v3.7.1/mail-v3.7.1.tar.gz",
+    "version": "3.7.1",
     "description": "**💌 A mail app for Nextcloud**\n\n- **🚀 Integration with other Nextcloud apps!** Currently Contacts, Calendar & Files – more to come.\n- **📥 Multiple mail accounts!** Personal and company account? No problem, and a nice unified inbox. Connect any IMAP account.\n- **🔒 Send & receive encrypted mails!** Using the great [Mailvelope](https://mailvelope.com) browser extension.\n- **🙈 We’re not reinventing the wheel!** Based on the great [Horde](https://horde.org) libraries.\n- **📬 Want to host your own mail server?** We do not have to reimplement this as you could set up [Mail-in-a-Box](https://mailinabox.email)!\n\n## Ethical AI Rating\n\n### Priority Inbox\n\nPositive:\n* The software for training and inferencing of this model is open source.\n* The model is created and trained on-premises based on the user's own data.\n* The training data is accessible to the user, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n### Thread Summaries (opt-in)\n\n**Rating:** 🟢/🟡/🟠/🔴\n\nThe rating depends on the installed text processing backend. See [the rating overview](https://docs.nextcloud.com/server/latest/admin_manual/ai/index.html) for details.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).",
     "homepage": "https://github.com/nextcloud/mail#readme",
     "licenses": [
@@ -130,8 +130,8 @@
     ]
   },
   "maps": {
-    "sha256": "18gln06hgljgnr90ki95nl7b8986ivf3cymr6hajilszlr77hk22",
-    "url": "https://github.com/nextcloud/maps/releases/download/v1.4.0-1-nightly/maps-1.4.0-1-nightly.tar.gz",
+    "sha256": "1gqms3rrdpjmpb1h5d72b4lwbvsl8p10zwnkhgnsmvfcf93h3r1c",
+    "url": "https://github.com/nextcloud/maps/releases/download/v1.4.0/maps-1.4.0.tar.gz",
     "version": "1.4.0",
     "description": "**The whole world fits inside your cloud!**\n\n- **🗺 Beautiful map:** Using [OpenStreetMap](https://www.openstreetmap.org) and [Leaflet](https://leafletjs.com), you can choose between standard map, satellite, topographical, dark mode or even watercolor! 🎨\n- **⭐ Favorites:** Save your favorite places, privately! Sync with [GNOME Maps](https://github.com/nextcloud/maps/issues/30) and mobile apps is planned.\n- **🧭 Routing:** Possible using either [OSRM](http://project-osrm.org), [GraphHopper](https://www.graphhopper.com) or [Mapbox](https://www.mapbox.com).\n- **🖼 Photos on the map:** No more boring slideshows, just show directly where you were!\n- **🙋 Contacts on the map:** See where your friends live and plan your next visit.\n- **📱 Devices:** Lost your phone? Check the map!\n- **〰 Tracks:** Load GPS tracks or past trips. Recording with [PhoneTrack](https://f-droid.org/en/packages/net.eneiluj.nextcloud.phonetrack/) or [OwnTracks](https://owntracks.org) is planned.",
     "homepage": "https://github.com/nextcloud/maps",
@@ -140,9 +140,9 @@
     ]
   },
   "memories": {
-    "sha256": "02l9rq117x7x4nra1f50fkn7yr3cpbjnsq9nlr7rnsn9qsf5rrw9",
-    "url": "https://github.com/pulsejet/memories/releases/download/v7.2.0/memories.tar.gz",
-    "version": "7.2.0",
+    "sha256": "1wahnkc253bgm0bqciyhfh1iyl8girbj8mzdd29l0k1bks8fr4qc",
+    "url": "https://github.com/pulsejet/memories/releases/download/v7.3.1/memories.tar.gz",
+    "version": "7.3.1",
     "description": "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos.",
     "homepage": "https://memories.gallery",
     "licenses": [
@@ -170,9 +170,9 @@
     ]
   },
   "notify_push": {
-    "sha256": "0zsjr3zr8c686pkgsmhjg1ssnzvc9flkyy1x571wk7lx7lfrvrd1",
-    "url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.10/notify_push-v0.6.10.tar.gz",
-    "version": "0.6.10",
+    "sha256": "14s8g3dqwrxjz1zww64n1lhwdb8374wr1b5v76xhawypmfz2a68h",
+    "url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.12/notify_push-v0.6.12.tar.gz",
+    "version": "0.6.12",
     "description": "Push update support for desktop app.\n\nOnce the app is installed, the push binary needs to be setup. You can either use the setup wizard with `occ notify_push:setup` or see the [README](http://github.com/nextcloud/notify_push) for detailed setup instructions",
     "homepage": "",
     "licenses": [
@@ -180,9 +180,9 @@
     ]
   },
   "onlyoffice": {
-    "sha256": "1h4jjphpqzxmnx300fkj0gf831sb61r8vxd3w9vnj4v38mxdmcc0",
-    "url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v9.2.0/onlyoffice.tar.gz",
-    "version": "9.2.0",
+    "sha256": "1vflj70q8d0hrfck9c5l1k4qa38gpdh3zjgx4aqamnlbvkfssk7h",
+    "url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v9.2.2/onlyoffice.tar.gz",
+    "version": "9.2.2",
     "description": "ONLYOFFICE connector allows you to view, edit and collaborate on text documents, spreadsheets and presentations within Nextcloud using ONLYOFFICE Docs. This will create a new Edit in ONLYOFFICE action within the document library for Office documents. This allows multiple users to co-author documents in real time from the familiar web interface and save the changes back to your file storage.",
     "homepage": "https://www.onlyoffice.com",
     "licenses": [
@@ -239,10 +239,20 @@
       "agpl"
     ]
   },
+  "richdocuments": {
+    "sha256": "1gbgygb7ymsg7gjb29r3caglsrimcrk7yn4kka5f8swv9b1k0qx6",
+    "url": "https://github.com/nextcloud-releases/richdocuments/releases/download/v8.4.2/richdocuments-v8.4.2.tar.gz",
+    "version": "8.4.2",
+    "description": "This application can connect to a Collabora Online (or other) server (WOPI-like Client). Nextcloud is the WOPI Host. Please read the documentation to learn more about that.\n\nYou can also edit your documents off-line with the Collabora Office app from the **[Android](https://play.google.com/store/apps/details?id=com.collabora.libreoffice)** and **[iOS](https://apps.apple.com/us/app/collabora-office/id1440482071)** store.",
+    "homepage": "https://collaboraoffice.com/",
+    "licenses": [
+      "agpl"
+    ]
+  },
   "spreed": {
-    "sha256": "07zjf8ci2jysrv0bagcrdfz2afzafha7fs3045p5kzb9zr6yvpy5",
-    "url": "https://github.com/nextcloud-releases/spreed/releases/download/v19.0.0/spreed-v19.0.0.tar.gz",
-    "version": "19.0.0",
+    "sha256": "106y9mbnwga7pfhydrd8rjpcr89ir3fjrdn81xykyzqwrq29fxgs",
+    "url": "https://github.com/nextcloud-releases/spreed/releases/download/v19.0.1/spreed-v19.0.1.tar.gz",
+    "version": "19.0.1",
     "description": "Chat, video & audio-conferencing using WebRTC\n\n* 💬 **Chat** Nextcloud Talk comes with a simple text chat, allowing you to share or upload files from your Nextcloud Files app or local device and mention other participants.\n* 👥 **Private, group, public and password protected calls!** Invite someone, a whole group or send a public link to invite to a call.\n* 🌐 **Federated chats** Chat with other Nextcloud users on their servers\n* 💻 **Screen sharing!** Share your screen with the participants of your call.\n* 🚀 **Integration with other Nextcloud apps** like Files, Calendar, User status, Dashboard, Flow, Maps, Smart picker, Contacts, Deck, and many more.\n* 🌉 **Sync with other chat solutions** With [Matterbridge](https://github.com/42wim/matterbridge/) being integrated in Talk, you can easily sync a lot of other chat solutions to Nextcloud Talk and vice-versa.",
     "homepage": "https://github.com/nextcloud/spreed",
     "licenses": [
@@ -250,9 +260,9 @@
     ]
   },
   "tasks": {
-    "sha256": "0a1wpb9f08iqxl9vjp0slxwzn0w67ilpk21dsi0nhpm28ns2mhyc",
-    "url": "https://github.com/nextcloud/tasks/releases/download/v0.15.0/tasks.tar.gz",
-    "version": "0.15.0",
+    "sha256": "1g2wqsm9kjm7dri75ghix2hb5vby3vy3ibcvmwfdwsab3a12xbrg",
+    "url": "https://github.com/nextcloud/tasks/releases/download/v0.16.0/tasks.tar.gz",
+    "version": "0.16.0",
     "description": "Once enabled, a new Tasks menu will appear in your Nextcloud apps menu. From there you can add and delete tasks, edit their title, description, start and due dates and mark them as important. Tasks can be shared between users. Tasks can be synchronized using CalDav (each task list is linked to an Nextcloud calendar, to sync it to your local client: Thunderbird, Evolution, KDE Kontact, iCal … - just add the calendar as a remote calendar in your client). You can download your tasks as ICS files using the download button for each calendar.",
     "homepage": "https://github.com/nextcloud/tasks/",
     "licenses": [
diff --git a/pkgs/servers/nextcloud/packages/nextcloud-apps.json b/pkgs/servers/nextcloud/packages/nextcloud-apps.json
index b7a48a0baca77..3affc750f9822 100644
--- a/pkgs/servers/nextcloud/packages/nextcloud-apps.json
+++ b/pkgs/servers/nextcloud/packages/nextcloud-apps.json
@@ -26,6 +26,7 @@
 , "previewgenerator": "agpl3Plus"
 , "qownnotesapi": "agpl3Plus"
 , "registration": "agpl3Plus"
+, "richdocuments": "agpl3Only"
 , "spreed": "agpl3Plus"
 , "tasks": "agpl3Plus"
 , "twofactor_nextcloud_notification": "agpl3Only"
diff --git a/pkgs/servers/nfs-ganesha/default.nix b/pkgs/servers/nfs-ganesha/default.nix
index 54f0cdbd48579..c5d3d97d629fa 100644
--- a/pkgs/servers/nfs-ganesha/default.nix
+++ b/pkgs/servers/nfs-ganesha/default.nix
@@ -5,14 +5,14 @@
 
 stdenv.mkDerivation rec {
   pname = "nfs-ganesha";
-  version = "5.7";
+  version = "5.9";
   outputs = [ "out" "tools" ];
 
   src = fetchFromGitHub {
     owner = "nfs-ganesha";
     repo = "nfs-ganesha";
     rev = "V${version}";
-    sha256 = "sha256-4GYte9kPUR4kFHrUzHXtiMGbuRhZ+4iw1hmqi+geljc=";
+    sha256 = "sha256-YFQcqRZenJUdTnlYM7gPnIxU47dytSHk5ALdbpSf5Ms=";
   };
 
   preConfigure = "cd src";
diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix
index 52b9125e99d5d..41939884e9974 100644
--- a/pkgs/servers/nosql/arangodb/default.nix
+++ b/pkgs/servers/nosql/arangodb/default.nix
@@ -77,7 +77,7 @@ gcc10Stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.arangodb.com";
-    description = "A native multi-model database with flexible data models for documents, graphs, and key-values";
+    description = "Native multi-model database with flexible data models for documents, graphs, and key-values";
     license = licenses.asl20;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ flosse jsoo1 ];
diff --git a/pkgs/servers/nosql/cassandra/generic.nix b/pkgs/servers/nosql/cassandra/generic.nix
index 45bea6fed4c5b..51ab6ac133267 100644
--- a/pkgs/servers/nosql/cassandra/generic.nix
+++ b/pkgs/servers/nosql/cassandra/generic.nix
@@ -119,7 +119,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://cassandra.apache.org/";
-    description = "A massively scalable open source NoSQL database";
+    description = "Massively scalable open source NoSQL database";
     platforms = platforms.unix;
     license = licenses.asl20;
     maintainers = [ maintainers.roberth ];
diff --git a/pkgs/servers/nosql/dragonflydb/default.nix b/pkgs/servers/nosql/dragonflydb/default.nix
index e73f00164fe9c..2d949fc78a45d 100644
--- a/pkgs/servers/nosql/dragonflydb/default.nix
+++ b/pkgs/servers/nosql/dragonflydb/default.nix
@@ -107,7 +107,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A modern replacement for Redis and Memcached";
+    description = "Modern replacement for Redis and Memcached";
     homepage = "https://dragonflydb.io/";
     license = licenses.bsl11;
     platforms = platforms.linux;
diff --git a/pkgs/servers/nosql/ferretdb/default.nix b/pkgs/servers/nosql/ferretdb/default.nix
index 3dfc16a48c1fd..57f0ed7c9f862 100644
--- a/pkgs/servers/nosql/ferretdb/default.nix
+++ b/pkgs/servers/nosql/ferretdb/default.nix
@@ -38,7 +38,7 @@ buildGoModule rec {
   passthru.tests = nixosTests.ferretdb;
 
   meta = with lib; {
-    description = "A truly Open Source MongoDB alternative";
+    description = "Truly Open Source MongoDB alternative";
     mainProgram = "ferretdb";
     changelog = "https://github.com/FerretDB/FerretDB/releases/tag/v${version}";
     homepage = "https://www.ferretdb.io/";
diff --git a/pkgs/servers/nosql/influxdb/default.nix b/pkgs/servers/nosql/influxdb/default.nix
index 11579a7ad51e6..739fab6f81197 100644
--- a/pkgs/servers/nosql/influxdb/default.nix
+++ b/pkgs/servers/nosql/influxdb/default.nix
@@ -1,9 +1,9 @@
 { lib, buildGoModule, fetchFromGitHub, stdenv, pkg-config, rustPlatform, libiconv, fetchpatch, nixosTests }:
 
 let
-  libflux_version = "0.188.0";
+  libflux_version = "0.194.5";
 
-  # This is copied from influxdb2 with flux version matching the needed by thi
+  # This is copied from influxdb2 with the required flux version
   flux = rustPlatform.buildRustPackage rec {
     pname = "libflux";
     version = "v${libflux_version}";
@@ -11,21 +11,22 @@ let
       owner = "influxdata";
       repo = "flux";
       rev = "v${libflux_version}";
-      hash = "sha256-4Z6Vfdyh0zimQlE47plSIjTWBYiju0Qu09M+MgMQOL4=";
+      hash = "sha256-XHT/+JMu5q1cPjZT2x/OKEPgxFJcnjrQKqn8w9/Mb3s=";
     };
     patches = [
-      # https://github.com/influxdata/flux/pull/5440
-      # fix compile error with Rust 1.72.0
+      # Fix build on Rust 1.78 (included after v0.195.0)
       (fetchpatch {
-        url = "https://github.com/influxdata/flux/commit/8d1d6c8b485eb7e15b6a5f57762d1f766b17defd.patch";
+        name = "fix-build-on-rust-1.78.patch";
+        url = "https://github.com/influxdata/flux/commit/68c831c40b396f0274f6a9f97d77707c39970b02.patch";
         stripLen = 2;
         extraPrefix = "";
-        hash = "sha256-BDBmGKsC2RWMyObDm7dPwFq/3cVIdBKF8ZVaCL+uftw=";
-        includes = [ "flux/src/lib.rs" ];
+        excludes = [ ];
+        hash = "sha256-6LOTgbOCfETNTmshyXgtDZf9y4t/2iqRuVPkz9dYPHc=";
       })
+      ../influxdb2/fix-unsigned-char.patch
     ];
     sourceRoot = "${src.name}/libflux";
-    cargoHash = "sha256-925U9weBOvMuyApsTOjtQxik3nqT2UpK+DPM64opc7c=";
+    cargoHash = "sha256-O+t4f4P5291BuyARH6Xf3LejMFEQEBv+qKtyjHRhclA=";
     nativeBuildInputs = [ rustPlatform.bindgenHook ];
     buildInputs = lib.optional stdenv.isDarwin libiconv;
     pkgcfg = ''
@@ -48,16 +49,16 @@ let
 in
 buildGoModule rec {
   pname = "influxdb";
-  version = "1.10.5";
+  version = "1.10.7";
 
   src = fetchFromGitHub {
     owner = "influxdata";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-FvKGNqy27q6/X2DI/joJXfGVrax6hQcNcx5nJDeSLm0=";
+    hash = "sha256-Aibu3yG/D1501Hr2F2qsGvjig14tbEAI+MBfqbxlpg8=";
   };
 
-  vendorHash = "sha256-1jeZBVmNOxF5NPlTKg+YRw6VqIIZDcT3snnoMLX3y4g=";
+  vendorHash = "sha256-AA6uj7PgXjC+IK2ZSwRnYpHS4MFScOROO1BpP+s33IU=";
 
   nativeBuildInputs = [ pkg-config ];
 
@@ -81,7 +82,7 @@ buildGoModule rec {
   passthru.tests = { inherit (nixosTests) influxdb; };
 
   meta = with lib; {
-    description = "An open-source distributed time series database";
+    description = "Open-source distributed time series database";
     license = licenses.mit;
     homepage = "https://influxdata.com/";
     maintainers = with maintainers; [ offline zimbatm ];
diff --git a/pkgs/servers/nosql/influxdb2/default.nix b/pkgs/servers/nosql/influxdb2/default.nix
index 7d585c3d6b963..81333a9f1ec30 100644
--- a/pkgs/servers/nosql/influxdb2/default.nix
+++ b/pkgs/servers/nosql/influxdb2/default.nix
@@ -13,15 +13,15 @@
 }:
 
 let
-  version = "2.7.1";
-  ui_version = "OSS-v${version}";
-  libflux_version = "0.193.0";
+  version = "2.7.6";
+  ui_version = "OSS-v2.7.1";
+  libflux_version = "0.194.5";
 
   src = fetchFromGitHub {
     owner = "influxdata";
     repo = "influxdb";
     rev = "v${version}";
-    hash = "sha256-JWu4V2k8ItbzBa421EtzgMVlDznoDdGjIhfDSaZ0j6c=";
+    hash = "sha256-0gqFUIV0ETdVuVmC+SwoKsO6OkoT/s+qKO1f8fkaZj4=";
   };
 
   ui = fetchurl {
@@ -36,21 +36,22 @@ let
       owner = "influxdata";
       repo = "flux";
       rev = "v${libflux_version}";
-      hash = "sha256-gx6vnGOFu35wasLl7X/73eDsE0/50cAzjmBjZ+H2Ne4=";
+      hash = "sha256-XHT/+JMu5q1cPjZT2x/OKEPgxFJcnjrQKqn8w9/Mb3s=";
     };
     patches = [
-      # Fix build with recent rust versions
+      # Fix build on Rust 1.78 (included after v0.195.0)
       (fetchpatch {
-        url = "https://github.com/influxdata/flux/commit/6dc8054cfeec4b65b5c7ae786d633240868b8589.patch";
+        name = "fix-build-on-rust-1.78.patch";
+        url = "https://github.com/influxdata/flux/commit/68c831c40b396f0274f6a9f97d77707c39970b02.patch";
         stripLen = 2;
         extraPrefix = "";
-        excludes = [ "rust-toolchain.toml" ];
-        hash = "sha256-w3z+Z26Xhy9TNICyNhc8XiWNSpdLA23ADI4K/AOMYhg=";
+        excludes = [ ];
+        hash = "sha256-6LOTgbOCfETNTmshyXgtDZf9y4t/2iqRuVPkz9dYPHc=";
       })
-      ./no-deny-warnings.patch
+      ./fix-unsigned-char.patch
     ];
     sourceRoot = "${src.name}/libflux";
-    cargoSha256 = "sha256-MoI5nxLGA/3pduZ+vgmSG3lm3Nx58SP+6WXQl2pX9Lc=";
+    cargoHash = "sha256-O+t4f4P5291BuyARH6Xf3LejMFEQEBv+qKtyjHRhclA=";
     nativeBuildInputs = [ rustPlatform.bindgenHook ];
     buildInputs = lib.optional stdenv.isDarwin libiconv;
     pkgcfg = ''
@@ -78,7 +79,7 @@ in buildGoModule {
 
   nativeBuildInputs = [ go-bindata pkg-config perl ];
 
-  vendorHash = "sha256-5b1WRq3JndkOkKBhMzGZnSyBDY5Lk0UGe/WGHQJp0CQ=";
+  vendorHash = "sha256-3Vf8BCrOwliXrH+gmZ4RJ1YBEbqL0Szx2prW3ie9CNg=";
   subPackages = [ "cmd/influxd" "cmd/telemetryd" ];
 
   PKG_CONFIG_PATH = "${flux}/pkgconfig";
@@ -120,7 +121,7 @@ in buildGoModule {
   passthru.tests = { inherit (nixosTests) influxdb2; };
 
   meta = with lib; {
-    description = "An open-source distributed time series database";
+    description = "Open-source distributed time series database";
     license = licenses.mit;
     homepage = "https://influxdata.com/";
     maintainers = with maintainers; [ abbradar ];
diff --git a/pkgs/servers/nosql/influxdb2/fix-unsigned-char.patch b/pkgs/servers/nosql/influxdb2/fix-unsigned-char.patch
new file mode 100644
index 0000000000000..173e5b30e5ee1
--- /dev/null
+++ b/pkgs/servers/nosql/influxdb2/fix-unsigned-char.patch
@@ -0,0 +1,13 @@
+diff --git a/flux/src/cffi.rs b/flux/src/cffi.rs
+index ba18e3d5..0c1badf8 100644
+--- a/flux/src/cffi.rs
++++ b/flux/src/cffi.rs
+@@ -1149,7 +1149,7 @@ from(bucket: v.bucket)
+     fn parse_with_invalid_utf8() {
+         let cfname = CString::new("foo.flux").unwrap();
+         let cfname_ptr: *const c_char = cfname.as_ptr();
+-        let v: Vec<c_char> = vec![-61, 0];
++        let v: Vec<c_char> = vec![-61i8 as c_char, 0];
+         let csrc: *const c_char = &v[0];
+         // Safety: both pointers are valid
+         let pkg = unsafe { flux_parse(cfname_ptr, csrc) };
diff --git a/pkgs/servers/nosql/influxdb2/no-deny-warnings.patch b/pkgs/servers/nosql/influxdb2/no-deny-warnings.patch
deleted file mode 100644
index 3000ccad8256c..0000000000000
--- a/pkgs/servers/nosql/influxdb2/no-deny-warnings.patch
+++ /dev/null
@@ -1,10 +0,0 @@
-diff --git a/flux/src/lib.rs b/flux/src/lib.rs
-index 3fdf4071..a4c02277 100644
---- a/flux/src/lib.rs
-+++ b/flux/src/lib.rs
-@@ -1,5 +1,3 @@
--#![cfg_attr(feature = "strict", deny(warnings, missing_docs))]
--
- //! This module provides the public facing API for Flux's Go runtime, including formatting,
- //! parsing, and standard library analysis.
- use std::sync::Arc;
diff --git a/pkgs/servers/nosql/influxdb2/provision.nix b/pkgs/servers/nosql/influxdb2/provision.nix
index dfb1d6083a71d..0d0740969cd46 100644
--- a/pkgs/servers/nosql/influxdb2/provision.nix
+++ b/pkgs/servers/nosql/influxdb2/provision.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A small utility to help provisioning influxdb2";
+    description = "Small utility to help provisioning influxdb2";
     homepage = "https://github.com/oddlama/influxdb2-provision";
     license = licenses.mit;
     maintainers = with maintainers; [oddlama];
diff --git a/pkgs/servers/nosql/janusgraph/default.nix b/pkgs/servers/nosql/janusgraph/default.nix
index 0c16f90db60da..614058bb0ebed 100644
--- a/pkgs/servers/nosql/janusgraph/default.nix
+++ b/pkgs/servers/nosql/janusgraph/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An open-source, distributed graph database";
+    description = "Open-source, distributed graph database";
     homepage = "https://janusgraph.org/";
     mainProgram = "janusgraph-server";
     license = licenses.asl20;
diff --git a/pkgs/servers/nosql/mongodb/5.0.nix b/pkgs/servers/nosql/mongodb/5.0.nix
index e6738239358df..d74bf1e2f3d49 100644
--- a/pkgs/servers/nosql/mongodb/5.0.nix
+++ b/pkgs/servers/nosql/mongodb/5.0.nix
@@ -1,4 +1,7 @@
-{ stdenv, callPackage, lib, sasl, boost, Security, CoreFoundation, cctools }:
+{ stdenv, callPackage, lib, sasl, boost
+, Security, CoreFoundation, cctools
+, avxSupport ? stdenv.hostPlatform.avxSupport
+}:
 
 let
   buildMongoDB = callPackage ./mongodb.nix {
@@ -6,8 +9,8 @@ let
   };
   variants = if stdenv.isLinux then
     {
-      version = "5.0.26";
-      sha256 = "sha256-lVRTrEnwuyKETFL1C8bVqBfrDaYrbQIdmHN42CF8ZIw=";
+      version = "5.0.27";
+      sha256 = "sha256-++Qv3H6iVN8p0Jq3vx44DZCNh90vY5fAWKgP402bLlw=";
       patches = [ ./fix-build-with-boost-1.79-5_0-linux.patch ];
     }
   else lib.optionalAttrs stdenv.isDarwin
@@ -18,6 +21,7 @@ let
     };
 in
 buildMongoDB {
+  inherit avxSupport;
   version = variants.version;
   sha256 = variants.sha256;
   patches = [
diff --git a/pkgs/servers/nosql/mongodb/6.0.nix b/pkgs/servers/nosql/mongodb/6.0.nix
index 77d825d185f31..64be3b1f5f90b 100644
--- a/pkgs/servers/nosql/mongodb/6.0.nix
+++ b/pkgs/servers/nosql/mongodb/6.0.nix
@@ -1,4 +1,7 @@
-{ stdenv, callPackage, lib, fetchpatch, sasl, boost, Security, CoreFoundation, cctools }:
+{ stdenv, callPackage, lib, fetchpatch
+, sasl, boost, Security, CoreFoundation, cctools
+, avxSupport ? stdenv.hostPlatform.avxSupport
+}:
 
 let
   buildMongoDB = callPackage ./mongodb.nix {
@@ -6,6 +9,7 @@ let
   };
 in
 buildMongoDB {
+  inherit avxSupport;
   version = "6.0.15";
   sha256 = "sha256-DX1wbrDx1/JrEHbzNaXC4Hqq7MrLqz+JZgG98beyVds=";
   patches = [
diff --git a/pkgs/servers/nosql/mongodb/mongodb.nix b/pkgs/servers/nosql/mongodb/mongodb.nix
index f1cb57b92a6b5..2b304aa212eef 100644
--- a/pkgs/servers/nosql/mongodb/mongodb.nix
+++ b/pkgs/servers/nosql/mongodb/mongodb.nix
@@ -29,6 +29,7 @@ with lib;
 
 { version, sha256, patches ? []
 , license ? lib.licenses.sspl
+, avxSupport ? stdenv.hostPlatform.avxSupport
 }:
 
 let
@@ -114,6 +115,9 @@ in stdenv.mkDerivation rec {
     # don't fail by default on i686
     substituteInPlace src/mongo/db/storage/storage_options.h \
       --replace 'engine("wiredTiger")' 'engine("mmapv1")'
+  '' + lib.optionalString (!avxSupport) ''
+    substituteInPlace SConstruct \
+      --replace-fail "default=['+sandybridge']," 'default=[],'
   '';
 
   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang
@@ -171,7 +175,7 @@ in stdenv.mkDerivation rec {
   hardeningEnable = [ "pie" ];
 
   meta = {
-    description = "A scalable, high-performance, open source NoSQL database";
+    description = "Scalable, high-performance, open source NoSQL database";
     homepage = "http://www.mongodb.org";
     inherit license;
 
diff --git a/pkgs/servers/nosql/neo4j/default.nix b/pkgs/servers/nosql/neo4j/default.nix
index 24fd222b0a918..a22283452df44 100644
--- a/pkgs/servers/nosql/neo4j/default.nix
+++ b/pkgs/servers/nosql/neo4j/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "neo4j";
-  version = "5.19.0";
+  version = "5.20.0";
 
   src = fetchurl {
     url = "https://neo4j.com/artifact.php?name=neo4j-community-${version}-unix.tar.gz";
-    hash = "sha256-MPTrMVbr3XkFzid1FGyAK5sRBMCMMxsdbKEmqv9aANk=";
+    hash = "sha256-IDIVdIQCcChx5RHG3/88Yvclh8ToDfcDv4VAhcQ20GY=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   passthru.tests.nixos = nixosTests.neo4j;
 
   meta = with lib; {
-    description = "A highly scalable, robust (fully ACID) native graph database";
+    description = "Highly scalable, robust (fully ACID) native graph database";
     homepage = "https://neo4j.com/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ jonringer offline ];
diff --git a/pkgs/servers/nosql/questdb/default.nix b/pkgs/servers/nosql/questdb/default.nix
index 835a02efe60e8..0cfe31bc8ed96 100644
--- a/pkgs/servers/nosql/questdb/default.nix
+++ b/pkgs/servers/nosql/questdb/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "questdb";
-  version = "7.4.2";
+  version = "8.0.0";
 
   src = fetchurl {
     url = "https://github.com/questdb/questdb/releases/download/${finalAttrs.version}/questdb-${finalAttrs.version}-no-jre-bin.tar.gz";
-    hash = "sha256-NrtxAqXs0tEsWeixaRWvWYFA6RJ0Z0m5kCZjgn3JpVU=";
+    hash = "sha256-cvfacdMPb/w/muaKXm6SQMAJLSjxP+D9/YmpgsYAYEw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/servers/nosql/redis/default.nix b/pkgs/servers/nosql/redis/default.nix
index afa63219e3572..d15b05699d630 100644
--- a/pkgs/servers/nosql/redis/default.nix
+++ b/pkgs/servers/nosql/redis/default.nix
@@ -12,11 +12,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "redis";
-  version = "7.2.4";
+  version = "7.2.5";
 
   src = fetchurl {
     url = "https://download.redis.io/releases/redis-${finalAttrs.version}.tar.gz";
-    hash = "sha256-jRBMJqFUsp/WfWVotPN1ISISrUHgwsqj1mSA5429O1k=";
+    hash = "sha256-WYEXlwb4OR8DvpHZUayvrtqRr3+sVr7/snAZYxA+Qj0=";
   };
 
   patches = [
@@ -89,7 +89,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://redis.io";
-    description = "An open source, advanced key-value store";
+    description = "Open source, advanced key-value store";
     license = licenses.bsd3;
     platforms = platforms.all;
     changelog = "https://github.com/redis/redis/raw/${finalAttrs.version}/00-RELEASENOTES";
diff --git a/pkgs/servers/nosql/rethinkdb/default.nix b/pkgs/servers/nosql/rethinkdb/default.nix
index 3d39d698ac927..2ba228dd699b3 100644
--- a/pkgs/servers/nosql/rethinkdb/default.nix
+++ b/pkgs/servers/nosql/rethinkdb/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "An open-source distributed database built with love";
+    description = "Open-source distributed database built with love";
     mainProgram = "rethinkdb";
     longDescription = ''
       RethinkDB is built to store JSON documents, and scale to
diff --git a/pkgs/servers/nsq/default.nix b/pkgs/servers/nsq/default.nix
index 5aa02e03c425e..94b77602c5503 100644
--- a/pkgs/servers/nsq/default.nix
+++ b/pkgs/servers/nsq/default.nix
@@ -19,7 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://nsq.io/";
-    description = "A realtime distributed messaging platform";
+    description = "Realtime distributed messaging platform";
     changelog = "https://github.com/nsqio/nsq/raw/v${version}/ChangeLog.md";
     license = licenses.mit;
   };
diff --git a/pkgs/servers/oauth2-proxy/default.nix b/pkgs/servers/oauth2-proxy/default.nix
index 6b4baa8f11df4..cdae9ae2351a8 100644
--- a/pkgs/servers/oauth2-proxy/default.nix
+++ b/pkgs/servers/oauth2-proxy/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
   ldflags = [ "-X main.VERSION=${version}" ];
 
   meta = with lib; {
-    description = "A reverse proxy that provides authentication with Google, Github, or other providers";
+    description = "Reverse proxy that provides authentication with Google, Github, or other providers";
     homepage = "https://github.com/oauth2-proxy/oauth2-proxy/";
     license = licenses.mit;
     maintainers = teams.serokell.members;
diff --git a/pkgs/servers/olaris/default.nix b/pkgs/servers/olaris/default.nix
index 29966aadc6920..1b50695ffd5b1 100644
--- a/pkgs/servers/olaris/default.nix
+++ b/pkgs/servers/olaris/default.nix
@@ -52,7 +52,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A media manager and transcoding server.";
+    description = "Media manager and transcoding server";
     homepage = "https://gitlab.com/olaris/olaris-server";
     changelog = "https://gitlab.com/olaris/olaris-server/-/releases/v${version}";
     license = licenses.gpl3Only;
diff --git a/pkgs/servers/osmocom/libosmo-sccp/default.nix b/pkgs/servers/osmocom/libosmo-sccp/default.nix
index d8a27e2704fee..bf814576c1640 100644
--- a/pkgs/servers/osmocom/libosmo-sccp/default.nix
+++ b/pkgs/servers/osmocom/libosmo-sccp/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libosmo-sccp";
-  version = "1.8.1";
+  version = "1.8.2";
 
   src = fetchFromGitHub {
     owner = "osmocom";
     repo = "libosmo-sccp";
     rev = version;
-    hash = "sha256-GrC++v7PCAnaEtMFt+el/ct2g+/9Axev04g/jMIGyOQ=";
+    hash = "sha256-MT3NM4sXCLUNKQ5wEbUmvf2KYJNdcSFqGYeQbg+eop8=";
   };
 
   configureFlags = [ "--with-systemdsystemunitdir=$out" ];
diff --git a/pkgs/servers/osmocom/libosmoabis/default.nix b/pkgs/servers/osmocom/libosmoabis/default.nix
index 3908534efe939..6de87da1dc8dd 100644
--- a/pkgs/servers/osmocom/libosmoabis/default.nix
+++ b/pkgs/servers/osmocom/libosmoabis/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libosmoabis";
-  version = "1.5.0";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     owner = "osmocom";
     repo = "libosmo-abis";
     rev = version;
-    hash = "sha256-AtBv3llE7TX1tBBE4BQ4gXFs2WNqgjNDkezRpoDoHbg=";
+    hash = "sha256-B3M6sqFPecMR4/uiJ93C5ZWlq9IVpQwXCu9GZ4twHJw=";
   };
 
   configureFlags = [ "enable_dahdi=false" ];
diff --git a/pkgs/servers/osmocom/libosmocore/default.nix b/pkgs/servers/osmocom/libosmocore/default.nix
index acc72975617ff..770dcd97f0a4c 100644
--- a/pkgs/servers/osmocom/libosmocore/default.nix
+++ b/pkgs/servers/osmocom/libosmocore/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libosmocore";
-  version = "1.9.2";
+  version = "1.9.3";
 
   src = fetchFromGitHub {
     owner = "osmocom";
     repo = "libosmocore";
     rev = version;
-    hash = "sha256-rbdn7MiB0tluHgdQz1XpcQsN5FU8eGhmetzXzFAiCLg=";
+    hash = "sha256-9b+wQoC3lOz7mlaxzSRIrXinRVoNj4UYW0ae+JBBKsE=";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/osmocom/osmo-bsc/default.nix b/pkgs/servers/osmocom/osmo-bsc/default.nix
index 1f9a6cabbf18d..1df6e7dd4c3be 100644
--- a/pkgs/servers/osmocom/osmo-bsc/default.nix
+++ b/pkgs/servers/osmocom/osmo-bsc/default.nix
@@ -51,5 +51,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.agpl3Plus;
     maintainers = with lib.maintainers; [ janik ];
     platforms = lib.platforms.linux;
+    mainProgram = "osmo-bsc";
   };
 }
diff --git a/pkgs/servers/osmocom/osmo-ggsn/default.nix b/pkgs/servers/osmocom/osmo-ggsn/default.nix
index 7fd45d86b5bd5..51615fdb1b3ce 100644
--- a/pkgs/servers/osmocom/osmo-ggsn/default.nix
+++ b/pkgs/servers/osmocom/osmo-ggsn/default.nix
@@ -12,13 +12,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "osmo-ggsn";
-  version = "1.10.2";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "osmocom";
     repo = "osmo-ggsn";
     rev = version;
-    hash = "sha256-673qQgymMAKsdunwWhELo2etKqkdCvxR7B8VgmXkEEA=";
+    hash = "sha256-TQQOj8DgsMI/+9Fpcpz95fuk746EWumYtTdPtYCXKTw=";
   };
 
   postPatch = ''
@@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Only;
     maintainers = with lib.maintainers; [ janik ];
     platforms = lib.platforms.linux;
+    mainProgram = "osmo-ggsn";
   };
 }
diff --git a/pkgs/servers/osmocom/osmo-hlr/default.nix b/pkgs/servers/osmocom/osmo-hlr/default.nix
index 6dce9cd84d401..112e3c8739029 100644
--- a/pkgs/servers/osmocom/osmo-hlr/default.nix
+++ b/pkgs/servers/osmocom/osmo-hlr/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.agpl3Plus;
     maintainers = with lib.maintainers; [ janik ];
     platforms = lib.platforms.linux;
+    mainProgram = "osmo-hlr";
   };
 }
diff --git a/pkgs/servers/osmocom/osmo-sgsn/default.nix b/pkgs/servers/osmocom/osmo-sgsn/default.nix
index 9fda8abc5af1f..9529c4f50cad7 100644
--- a/pkgs/servers/osmocom/osmo-sgsn/default.nix
+++ b/pkgs/servers/osmocom/osmo-sgsn/default.nix
@@ -16,14 +16,14 @@ let
 in
 
 stdenv.mkDerivation rec {
-  pname = "osmo-ggsn";
-  version = "1.11.0";
+  pname = "osmo-sgsn";
+  version = "1.11.1";
 
   src = fetchFromGitHub {
     owner = "osmocom";
     repo = "osmo-sgsn";
     rev = version;
-    hash = "sha256-jI82LS/WubFAkxBVF31qH4NWSmjC94dL73oOu3shfdU=";
+    hash = "sha256-obslARttKN+ut1ubIQ7zsL3/mnXK/AUoJeBnRJoPoZ0=";
   };
 
   postPatch = ''
@@ -53,5 +53,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.agpl3Plus;
     maintainers = with lib.maintainers; [ janik ];
     platforms = lib.platforms.linux;
+    mainProgram = "osmo-sgsn";
   };
 }
diff --git a/pkgs/servers/peertube/default.nix b/pkgs/servers/peertube/default.nix
index 524734819109e..3c46db2f34b34 100644
--- a/pkgs/servers/peertube/default.nix
+++ b/pkgs/servers/peertube/default.nix
@@ -8,6 +8,7 @@
 , brotli
 , fixup-yarn-lock
 , jq
+, fd
 , nodejs
 , which
 , yarn
@@ -76,7 +77,7 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "cli" "runner" ];
 
-  nativeBuildInputs = [ brotli fixup-yarn-lock jq which yarn ];
+  nativeBuildInputs = [ brotli fixup-yarn-lock jq which yarn fd ];
 
   buildInputs = [ nodejs ];
 
@@ -161,16 +162,16 @@ stdenv.mkDerivation rec {
     ln -s $runner/dist/peertube-runner.js $runner/bin/peertube-runner
 
     # Create static gzip and brotli files
-    find $out/client/dist -type f -regextype posix-extended -iregex '.*\.(css|eot|html|js|json|svg|webmanifest|xlf)' | while read file; do
-      gzip -9 -n -c $file > $file.gz
-      brotli --best -f $file -o $file.br
-    done
+    fd -e css -e eot -e html -e js -e json -e svg -e webmanifest -e xlf \
+      --type file --search-path $out/client/dist \
+      --exec gzip -9 -n -c {} > {}.gz \;\
+      --exec brotli --best -f {} -o {}.br
   '';
 
   passthru.tests.peertube = nixosTests.peertube;
 
   meta = with lib; {
-    description = "A free software to take back control of your videos";
+    description = "Free software to take back control of your videos";
     longDescription = ''
       PeerTube aspires to be a decentralized and free/libre alternative to video
       broadcasting services.
diff --git a/pkgs/servers/photofield/default.nix b/pkgs/servers/photofield/default.nix
index ffb647c03be53..3c9cf8245022a 100644
--- a/pkgs/servers/photofield/default.nix
+++ b/pkgs/servers/photofield/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchFromGitHub
+, fetchpatch
 , buildGoModule
 , buildNpmPackage
 , makeWrapper
@@ -10,7 +11,6 @@
 }:
 
 let
-  pname = "photofield-ui";
   version = "0.13.0";
 
   src = fetchFromGitHub {
@@ -35,11 +35,20 @@ let
   };
 in
 
-buildGoModule rec {
+buildGoModule {
   pname = "photofield";
   inherit version src;
 
-  vendorHash = "sha256-4JFP3vs/Z8iSKgcwfxpdnQpO9kTF68XQArFHYP8IoDQ=";
+  patches = [
+    # Needed for Go 1.22 build support
+    (fetchpatch {
+      name = "upgrade-pyroscope-go.patch";
+      url = "https://github.com/SmilyOrg/photofield/commit/681dcd48ab4113b0e99fe1a0d3638f0dfe985c05.patch";
+      hash = "sha256-JGb5KAI/SmR1kiiaPoSsAF7G4YWDFXj0K3Gjw0zA3Ro=";
+    })
+  ];
+
+  vendorHash = "sha256-BnImE4wK2MDO21N5tT9Q9w+NkDpdBCEqUwzuH/xb6fg=";
 
   preBuild = ''
     cp -r ${webui}/share/photofield-ui ui/dist
diff --git a/pkgs/servers/pies/default.nix b/pkgs/servers/pies/default.nix
index 9f5dfafcbea1d..115bf78be9278 100644
--- a/pkgs/servers/pies/default.nix
+++ b/pkgs/servers/pies/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "A program invocation and execution supervisor";
+    description = "Program invocation and execution supervisor";
 
     longDescription =
       '' The name Pies (pronounced "p-yes") stands for Program Invocation and
diff --git a/pkgs/servers/pinnwand/default.nix b/pkgs/servers/pinnwand/default.nix
index 93e2a009c3352..c7549e1913a14 100644
--- a/pkgs/servers/pinnwand/default.nix
+++ b/pkgs/servers/pinnwand/default.nix
@@ -57,8 +57,8 @@ with python3.pkgs; buildPythonApplication rec {
 
   meta = with lib; {
     changelog = "https://github.com/supakeen/pinnwand/releases/tag/v${version}";
-    description = "A Python pastebin that tries to keep it simple";
-    homepage = "https://supakeen.com/project/pinnwand/";
+    description = "Python pastebin that tries to keep it simple";
+    homepage = "https://github.com/supakeen/pinnwand";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
     mainProgram = "pinnwand";
diff --git a/pkgs/servers/pleroma/default.nix b/pkgs/servers/pleroma/default.nix
index 4f695b4008932..15382071602f4 100644
--- a/pkgs/servers/pleroma/default.nix
+++ b/pkgs/servers/pleroma/default.nix
@@ -7,14 +7,14 @@
 
 beamPackages.mixRelease rec {
   pname = "pleroma";
-  version = "2.6.2";
+  version = "2.6.3";
 
   src = fetchFromGitLab {
     domain = "git.pleroma.social";
     owner = "pleroma";
     repo = "pleroma";
     rev = "v${version}";
-    sha256 = "sha256-KVB6e/B6DJbylpfR8QTZJ1GOJrAqF6shqoU/zIndi1U=";
+    sha256 = "sha256-ZiupcCu6ES/G9rsdNo5+JXOIPhb4CHT2YhKThWiLisw=";
   };
 
   patches = [
diff --git a/pkgs/servers/plex/raw.nix b/pkgs/servers/plex/raw.nix
index 54ffa4e426559..dbcd3aa9682fb 100644
--- a/pkgs/servers/plex/raw.nix
+++ b/pkgs/servers/plex/raw.nix
@@ -12,16 +12,16 @@
 # server, and the FHS userenv and corresponding NixOS module should
 # automatically pick up the changes.
 stdenv.mkDerivation rec {
-  version = "1.40.2.8395-c67dce28e";
+  version = "1.40.3.8555-fef15d30c";
   pname = "plexmediaserver";
 
   # Fetch the source
   src = if stdenv.hostPlatform.system == "aarch64-linux" then fetchurl {
     url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_arm64.deb";
-    sha256 = "sha256-ZJqbE9pgflqFVjiDqCED6K5KBk6KHSbkIQllF06jJVQ=";
+    sha256 = "0v415di48dg5mvkvb374lbx089iavrbqiaada1wdhaz87gb54lww";
   } else fetchurl {
     url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_amd64.deb";
-    sha256 = "sha256-gYRhQIf6RaXgFTaigFW1yJ7ndxRmOP6oJSNnr8o0EBM=";
+    sha256 = "0m2b9xalrvnwiblwygkjrypr8kpbcxh8mw30ka1sf4cxmny4g5lq";
   };
 
   outputs = [ "out" "basedb" ];
@@ -70,10 +70,7 @@ stdenv.mkDerivation rec {
 
       latestSha="$(nix-prefetch-url $dlUrl)"
 
-      # The script will not perform an update when the version attribute is up to date from previous platform run
-      # We need to clear it before each run
-      update-source-version plexRaw 0 $(yes 0 | head -64 | tr -d "\n") --system=$platform
-      update-source-version plexRaw "$latestVersion" "$latestSha" --system=$platform
+      update-source-version plexRaw "$latestVersion" "$latestSha" --system=$platform --ignore-same-version
     done
   '';
 
diff --git a/pkgs/servers/pocketbase/default.nix b/pkgs/servers/pocketbase/default.nix
index 4ba576856efd3..c61b65c33d1a7 100644
--- a/pkgs/servers/pocketbase/default.nix
+++ b/pkgs/servers/pocketbase/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "pocketbase";
-  version = "0.22.12";
+  version = "0.22.13";
 
   src = fetchFromGitHub {
     owner = "pocketbase";
     repo = "pocketbase";
     rev = "v${version}";
-    hash = "sha256-ltz1efvP1wLQx/9rIRvt0ajEvEUaOjSWQzxjFhjXMI4=";
+    hash = "sha256-eps1sLtE/yBLyq1iTzOWu+RqFAjAg4EXWV7QZnr2KjQ=";
   };
 
-  vendorHash = "sha256-EsBMnIeSBQw3tu2jSLS9VpmHHyfHw9crGSmOrUIRvoo=";
+  vendorHash = "sha256-hxI/0ask3iQW0Ox+HuJ6Oi1jiHF/0NZ+L7cLJijqyyQ=";
 
   # This is the released subpackage from upstream repo
   subPackages = [ "examples/base" ];
diff --git a/pkgs/servers/polipo/default.nix b/pkgs/servers/polipo/default.nix
index d98e0604855af..350954d8e4dde 100644
--- a/pkgs/servers/polipo/default.nix
+++ b/pkgs/servers/polipo/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.pps.jussieu.fr/~jch/software/polipo/";
-    description = "A small and fast caching web proxy";
+    description = "Small and fast caching web proxy";
     license = licenses.mit;
     maintainers = with maintainers; [ ehmry ];
     platforms = platforms.all;
diff --git a/pkgs/servers/portunus/default.nix b/pkgs/servers/portunus/default.nix
index 6bd70ae5519f5..971a6a0967f5f 100644
--- a/pkgs/servers/portunus/default.nix
+++ b/pkgs/servers/portunus/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
-, libxcrypt-legacy # TODO: switch to libxcrypt for NixOS 24.11 (cf. same note on nixos/modules/services/misc/portunus.nix)
+, libxcrypt
 }:
 
 buildGoModule rec {
@@ -15,7 +15,7 @@ buildGoModule rec {
     sha256 = "sha256-+pMMIutj+OWKZmOYH5NuA4a7aS5CD+33vAEC9bJmyfM=";
   };
 
-  buildInputs = [ libxcrypt-legacy ];
+  buildInputs = [ libxcrypt ];
 
   vendorHash = null;
 
diff --git a/pkgs/servers/prowlarr/default.nix b/pkgs/servers/prowlarr/default.nix
index 44dc639af5f57..5fbbf1752184c 100644
--- a/pkgs/servers/prowlarr/default.nix
+++ b/pkgs/servers/prowlarr/default.nix
@@ -21,15 +21,15 @@ let
   }.${stdenv.hostPlatform.system} or unsupported;
 
   hash = {
-    aarch64-darwin = "sha256-aa9mkFRdvAi/A6OQnxDOiQ5yDXBbPbQxet8+XqHxrtE=";
-    aarch64-linux = "sha256-neTIMWdx1UX9REZkLZtXpmyPb+NrbkMnXNrTn9bsECE=";
-    x86_64-darwin = "sha256-JM0VhAbA72ZmZGZ8ke2MtB4Fi5//hr+Etk5UiMpq1LA=";
-    x86_64-linux = "sha256-bYIavvea6Nwbn22CFiWXpzPGAI13oJYAIZr2FdLkyb8=";
+    aarch64-darwin = "sha256-Scv4gXZZBujz/lq4QphH7rCQxTS7JT9wHpG4qsPK1mA=";
+    aarch64-linux = "sha256-fEDXNUrhSpheBFis7OdK4+fvpvm4+D4ulM/+h5erZLA=";
+    x86_64-darwin = "sha256-dgPuqclFQp/fOEIY32rlIqZIYbDzRbgHiYJRoICYWhg=";
+    x86_64-linux = "sha256-c89EiThP2LgkaeDxx01rQTtFZGcXvpMgo6yp+VViJO0=";
   }.${stdenv.hostPlatform.system} or unsupported;
 
 in stdenv.mkDerivation rec {
   inherit pname;
-  version = "1.17.2.4511";
+  version = "1.18.0.4543";
 
   src = fetchurl {
     url = "https://github.com/Prowlarr/Prowlarr/releases/download/v${version}/Prowlarr.master.${version}.${os}-core-${arch}.tar.gz";
@@ -58,7 +58,7 @@ in stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "An indexer manager/proxy built on the popular arr .net/reactjs base stack";
+    description = "Indexer manager/proxy built on the popular arr .net/reactjs base stack";
     homepage = "https://wiki.servarr.com/prowlarr";
     changelog = "https://github.com/Prowlarr/Prowlarr/releases/tag/v${version}";
     license = licenses.gpl3Only;
diff --git a/pkgs/servers/pufferpanel/default.nix b/pkgs/servers/pufferpanel/default.nix
index 122e594f25bac..ce8a2762f07b7 100644
--- a/pkgs/servers/pufferpanel/default.nix
+++ b/pkgs/servers/pufferpanel/default.nix
@@ -98,7 +98,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A free, open source game management panel";
+    description = "Free, open source game management panel";
     homepage = "https://www.pufferpanel.com/";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ ckie tie ];
diff --git a/pkgs/servers/pulseaudio/qpaeq.nix b/pkgs/servers/pulseaudio/qpaeq.nix
index 4ccb8e7f50cff..8e899b024b494 100644
--- a/pkgs/servers/pulseaudio/qpaeq.nix
+++ b/pkgs/servers/pulseaudio/qpaeq.nix
@@ -44,7 +44,7 @@ mkDerivation rec {
   '';
 
   meta = {
-    description = "An equalizer interface for pulseaudio's equalizer sinks";
+    description = "Equalizer interface for pulseaudio's equalizer sinks";
     mainProgram = "qpaeq";
     homepage = "http://www.pulseaudio.org/";
     license = lib.licenses.lgpl2Plus;
diff --git a/pkgs/servers/radarr/default.nix b/pkgs/servers/radarr/default.nix
index 6efac9d1e820b..914eb44019e37 100644
--- a/pkgs/servers/radarr/default.nix
+++ b/pkgs/servers/radarr/default.nix
@@ -47,7 +47,7 @@ in stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A Usenet/BitTorrent movie downloader";
+    description = "Usenet/BitTorrent movie downloader";
     homepage = "https://radarr.video/";
     changelog = "https://github.com/Radarr/Radarr/releases/tag/v${version}";
     license = licenses.gpl3Only;
diff --git a/pkgs/servers/readarr/default.nix b/pkgs/servers/readarr/default.nix
index d37059b463d9d..7040e29470560 100644
--- a/pkgs/servers/readarr/default.nix
+++ b/pkgs/servers/readarr/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libmediainfo, sqlite, curl, makeWrapper, icu, dotnet-runtime, openssl, nixosTests }:
+{ lib, stdenv, fetchurl, libmediainfo, sqlite, curl, makeWrapper, icu, dotnet-runtime, openssl, nixosTests, zlib }:
 
 let
   os = if stdenv.isDarwin then "osx" else "linux";
@@ -8,13 +8,13 @@ let
     x86_64-darwin = "x64";
   }."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   hash = {
-    x64-linux_hash = "sha256-EBXK8MGgEOEu99X8n0i7mAoEBpqP9l+PtBlig0NW/Y8=";
-    arm64-linux_hash = "sha256-ZXIXjLnzjsT4nj5lbhg0yp97M9bdm8mo6Ypf3PAHlXc=";
-    x64-osx_hash = "sha256-RR3nyY7KyQXCimmknNEK6en98Q4D+PcFOi8lPAwdp9Q=";
+    x64-linux_hash = "sha256-GncaJNZEbApPl6Tt9k0NblRPdYnOGiR1V6VTJB8+LIU=";
+    arm64-linux_hash = "sha256-PvZHTjBmcpfu7fg5TLgcGoLofnAr6QM/2uNbGOpsx+U=";
+    x64-osx_hash = "sha256-h6JPb9esNlR+zqa8P0U2+zeLyW2JWw+AE/5PBHBGIQA=";
   }."${arch}-${os}_hash";
 in stdenv.mkDerivation rec {
   pname = "readarr";
-  version = "0.3.26.2526";
+  version = "0.3.28.2554";
 
   src = fetchurl {
     url = "https://github.com/Readarr/Readarr/releases/download/v${version}/Readarr.develop.${version}.${os}-core-${arch}.tar.gz";
@@ -30,7 +30,7 @@ in stdenv.mkDerivation rec {
     cp -r * $out/share/${pname}-${version}/.
     makeWrapper "${dotnet-runtime}/bin/dotnet" $out/bin/Readarr \
       --add-flags "$out/share/${pname}-${version}/Readarr.dll" \
-      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ curl sqlite libmediainfo icu openssl ]}
+      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ curl sqlite libmediainfo icu openssl zlib ]}
 
     runHook postInstall
   '';
@@ -42,7 +42,7 @@ in stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A Usenet/BitTorrent ebook downloader";
+    description = "Usenet/BitTorrent ebook downloader";
     homepage = "https://readarr.com";
     license = licenses.gpl3;
     maintainers = [ maintainers.jocelynthode ];
diff --git a/pkgs/servers/redpanda/default.nix b/pkgs/servers/redpanda/default.nix
index 10e8cd3ed7177..a6b2d512f641e 100644
--- a/pkgs/servers/redpanda/default.nix
+++ b/pkgs/servers/redpanda/default.nix
@@ -7,12 +7,12 @@
 , stdenv
 }:
 let
-  version = "24.1.2";
+  version = "24.1.7";
   src = fetchFromGitHub {
     owner = "redpanda-data";
     repo = "redpanda";
     rev = "v${version}";
-    sha256 = "sha256-RkJymtTTIPTPzpoUyWmCKpfQBqGFoR7ZeEWCKKzkn54=";
+    sha256 = "sha256-+JCFbLWDhqHYYpeNPpcGXL8tNsi4jpGbAd8DGSIsc7A=";
   };
   server = callPackage ./server.nix { inherit src version; };
 in
diff --git a/pkgs/servers/redpanda/seastar.nix b/pkgs/servers/redpanda/seastar.nix
index 3c7120e6c8762..ac0f7b2d6b48f 100644
--- a/pkgs/servers/redpanda/seastar.nix
+++ b/pkgs/servers/redpanda/seastar.nix
@@ -75,7 +75,7 @@ llvmPackages_14.stdenv.mkDerivation {
   ];
   doCheck = false;
   meta = with lib; {
-    description = "High performance server-side application framework.";
+    description = "High performance server-side application framework";
     license = licenses.asl20;
     homepage = "https://seastar.io/";
     maintainers = with maintainers; [ avakhrenev ];
diff --git a/pkgs/servers/redpanda/server.nix b/pkgs/servers/redpanda/server.nix
index ec4250820d3a6..45b005c792c34 100644
--- a/pkgs/servers/redpanda/server.nix
+++ b/pkgs/servers/redpanda/server.nix
@@ -110,7 +110,7 @@ llvmPackages_14.stdenv.mkDerivation rec {
 
   meta = with lib; {
     broken = true;
-    description = "Kafka-compatible streaming platform.";
+    description = "Kafka-compatible streaming platform";
     license = licenses.bsl11;
     longDescription = ''
       Redpanda is a Kafka-compatible streaming data platform that is
diff --git a/pkgs/servers/resgate/default.nix b/pkgs/servers/resgate/default.nix
index 92b55c7c03dac..a0de1efa69bab 100644
--- a/pkgs/servers/resgate/default.nix
+++ b/pkgs/servers/resgate/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
   vendorHash = "sha256-6uLCZvvQ8lRug6TlavQ1t73RqJlLCRxTwUhMp3OMMB0=";
 
   meta = with lib; {
-    description = "A Realtime API Gateway used with NATS to build REST, real time, and RPC APIs";
+    description = "Realtime API Gateway used with NATS to build REST, real time, and RPC APIs";
     homepage = "https://resgate.io";
     license = licenses.mit;
     maintainers = with maintainers; [ farcaller ];
diff --git a/pkgs/servers/roadrunner/default.nix b/pkgs/servers/roadrunner/default.nix
index caf98f12a7ab5..531dfb9b7ee5e 100644
--- a/pkgs/servers/roadrunner/default.nix
+++ b/pkgs/servers/roadrunner/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "roadrunner";
-  version = "2024.1.1";
+  version = "2024.1.2";
 
   src = fetchFromGitHub {
     repo = "roadrunner";
     owner = "roadrunner-server";
     rev = "refs/tags/v${version}";
-    hash = "sha256-uSc4dVDw4aXuo0mKPhsXLYfifpu4c+L7AQXaDgTkvTc=";
+    hash = "sha256-qaG7krLu6D08izPwRwqzSpnGVQjTgNwoSky3jmSwOdM=";
   };
 
   nativeBuildInputs = [
@@ -45,7 +45,7 @@ buildGoModule rec {
       --replace "127.0.0.1:0" "127.0.0.1:55554"
   '';
 
-  vendorHash = "sha256-8cNUCTwrhkgHu+XyneYLdPqsITnTCxQ6KGFoPrz7PwI=";
+  vendorHash = "sha256-vwOvp8hckamdN0qKnvaL2pm30nCMelQ8+LjqcPZR/ZQ=";
 
   meta = {
     changelog = "https://github.com/roadrunner-server/roadrunner/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/servers/roon-bridge/default.nix b/pkgs/servers/roon-bridge/default.nix
index 7a4b582ea687e..4e37f52bbd602 100644
--- a/pkgs/servers/roon-bridge/default.nix
+++ b/pkgs/servers/roon-bridge/default.nix
@@ -71,7 +71,7 @@ stdenv.mkDerivation {
     '';
 
   meta = with lib; {
-    description = "The music player for music lovers";
+    description = "Music player for music lovers";
     changelog = "https://community.roonlabs.com/c/roon/software-release-notes/18";
     homepage = "https://roonlabs.com";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/servers/roon-server/default.nix b/pkgs/servers/roon-server/default.nix
index 9000c5783db7e..d6fee8dc56c68 100644
--- a/pkgs/servers/roon-server/default.nix
+++ b/pkgs/servers/roon-server/default.nix
@@ -88,7 +88,7 @@ stdenv.mkDerivation {
     '';
 
   meta = with lib; {
-    description = "The music player for music lovers";
+    description = "Music player for music lovers";
     changelog = "https://community.roonlabs.com/c/roon/software-release-notes/18";
     homepage = "https://roonlabs.com";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/servers/routinator/default.nix b/pkgs/servers/routinator/default.nix
index 071d665de0fac..1276bd2731305 100644
--- a/pkgs/servers/routinator/default.nix
+++ b/pkgs/servers/routinator/default.nix
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   buildFeatures = [ "socks" ];
 
   meta = with lib; {
-    description = "An RPKI Validator written in Rust";
+    description = "RPKI Validator written in Rust";
     homepage = "https://github.com/NLnetLabs/routinator";
     changelog = "https://github.com/NLnetLabs/routinator/blob/v${version}/Changelog.md";
     license = licenses.bsd3;
diff --git a/pkgs/servers/rpiplay/default.nix b/pkgs/servers/rpiplay/default.nix
index ae22b838bda2a..72bffc0a2975d 100644
--- a/pkgs/servers/rpiplay/default.nix
+++ b/pkgs/servers/rpiplay/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     homepage = "https://github.com/FD-/RPiPlay";
-    description = "An open-source implementation of an AirPlay mirroring server.";
+    description = "Open-source implementation of an AirPlay mirroring server";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
diff --git a/pkgs/servers/rustdesk-server/Cargo.lock b/pkgs/servers/rustdesk-server/Cargo.lock
index f62e537c154ce..bb7082ebee491 100644
--- a/pkgs/servers/rustdesk-server/Cargo.lock
+++ b/pkgs/servers/rustdesk-server/Cargo.lock
@@ -779,7 +779,7 @@ dependencies = [
 
 [[package]]
 name = "hbbs"
-version = "1.1.10-3"
+version = "1.1.11"
 dependencies = [
  "async-speed-limit",
  "async-trait",
diff --git a/pkgs/servers/rustdesk-server/default.nix b/pkgs/servers/rustdesk-server/default.nix
index 93a25b233883b..247d707a9c9da 100644
--- a/pkgs/servers/rustdesk-server/default.nix
+++ b/pkgs/servers/rustdesk-server/default.nix
@@ -13,13 +13,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rustdesk-server";
-  version = "1.1.10-3";
+  version = "1.1.11";
 
   src = fetchFromGitHub {
     owner = "rustdesk";
     repo = "rustdesk-server";
     rev = version;
-    hash = "sha256-iXe5V99hvtdRi6t/2wUMQ/aSCWfscA1s48vrdO6H2Rw=";
+    hash = "sha256-wGV7Fsil26qs0BYI8G5pVJDvJvNIyrd/yaIJaGAodpw=";
   };
 
   cargoLock = {
diff --git a/pkgs/servers/rustypaste/default.nix b/pkgs/servers/rustypaste/default.nix
index ec2a667b18231..622c33b979204 100644
--- a/pkgs/servers/rustypaste/default.nix
+++ b/pkgs/servers/rustypaste/default.nix
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
-    description = "A minimal file upload/pastebin service";
+    description = "Minimal file upload/pastebin service";
     homepage = "https://github.com/orhun/rustypaste";
     changelog = "https://github.com/orhun/rustypaste/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/servers/samba/4.x.nix b/pkgs/servers/samba/4.x.nix
index a52099460e780..4874f45d96241 100644
--- a/pkgs/servers/samba/4.x.nix
+++ b/pkgs/servers/samba/4.x.nix
@@ -173,6 +173,8 @@ stdenv.mkDerivation (finalAttrs: {
     ++ optional (!enablePam) "--without-pam"
     ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
     "--bundled-libraries=!asn1_compile,!compile_et"
+    "--cross-compile"
+    "--cross-execute=${stdenv.hostPlatform.emulator buildPackages}"
   ] ++ optionals stdenv.buildPlatform.is32bit [
     # By default `waf configure` spawns as many as available CPUs. On
     # 32-bit systems with many CPUs (like `i686` chroot on `x86_64`
@@ -253,7 +255,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://www.samba.org";
-    description = "The standard Windows interoperability suite of programs for Linux and Unix";
+    description = "Standard Windows interoperability suite of programs for Linux and Unix";
     license = licenses.gpl3;
     platforms = platforms.unix;
     broken = enableGlusterFS;
diff --git a/pkgs/servers/search/elasticsearch/plugins.nix b/pkgs/servers/search/elasticsearch/plugins.nix
index 58e74b746ee9c..5355f7818524e 100644
--- a/pkgs/servers/search/elasticsearch/plugins.nix
+++ b/pkgs/servers/search/elasticsearch/plugins.nix
@@ -43,7 +43,7 @@ in
     };
     meta = with lib; {
       homepage = "https://github.com/elastic/elasticsearch/tree/master/plugins/analysis-icu";
-      description = "The ICU Analysis plugin integrates the Lucene ICU module into elasticsearch";
+      description = "ICU Analysis plugin integrates the Lucene ICU module into elasticsearch";
       license = licenses.asl20;
     };
   };
@@ -59,7 +59,7 @@ in
     };
     meta = with lib; {
       homepage = "https://github.com/elastic/elasticsearch/tree/master/plugins/analysis-kuromoji";
-      description = "The Japanese (kuromoji) Analysis plugin integrates Lucene kuromoji analysis module into Elasticsearch.";
+      description = "Japanese (kuromoji) Analysis plugin integrates Lucene kuromoji analysis module into Elasticsearch";
       license = licenses.asl20;
     };
   };
@@ -92,7 +92,7 @@ in
     };
     meta = with lib; {
       homepage = "https://github.com/elastic/elasticsearch/tree/master/plugins/analysis-phonetic";
-      description = "The Phonetic Analysis plugin integrates phonetic token filter analysis with elasticsearch";
+      description = "Phonetic Analysis plugin integrates phonetic token filter analysis with elasticsearch";
       license = licenses.asl20;
     };
   };
@@ -108,7 +108,7 @@ in
     };
     meta = with lib; {
       homepage = "https://github.com/elastic/elasticsearch/tree/master/plugins/discovery-ec2";
-      description = "The EC2 discovery plugin uses the AWS API for unicast discovery.";
+      description = "EC2 discovery plugin uses the AWS API for unicast discovery";
       license = licenses.asl20;
     };
   };
@@ -140,7 +140,7 @@ in
     };
     meta = with lib; {
       homepage = "https://github.com/elastic/elasticsearch/tree/master/plugins/repository-s3";
-      description = "The S3 repository plugin adds support for using AWS S3 as a repository for Snapshot/Restore.";
+      description = "S3 repository plugin adds support for using AWS S3 as a repository for Snapshot/Restore";
       license = licenses.asl20;
     };
   };
@@ -156,7 +156,7 @@ in
     };
     meta = with lib; {
       homepage = "https://github.com/elastic/elasticsearch/tree/master/plugins/repository-gcs";
-      description = "The GCS repository plugin adds support for using Google Cloud Storage as a repository for Snapshot/Restore.";
+      description = "GCS repository plugin adds support for using Google Cloud Storage as a repository for Snapshot/Restore";
       license = licenses.asl20;
     };
   };
@@ -178,7 +178,7 @@ in
       else throw "unsupported version ${version} for plugin ${pluginName}";
     meta = with lib; {
       homepage = "https://search-guard.com";
-      description = "Elasticsearch plugin that offers encryption, authentication, and authorisation.";
+      description = "Elasticsearch plugin that offers encryption, authentication, and authorisation";
       license = licenses.asl20;
     };
   };
diff --git a/pkgs/servers/search/groonga/default.nix b/pkgs/servers/search/groonga/default.nix
index 122222e4721d9..36192f2fc5ffc 100644
--- a/pkgs/servers/search/groonga/default.nix
+++ b/pkgs/servers/search/groonga/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "groonga";
-  version = "14.0.2";
+  version = "14.0.4";
 
   src = fetchurl {
     url = "https://packages.groonga.org/source/groonga/groonga-${finalAttrs.version}.tar.gz";
-    hash = "sha256-o9C6lPOPkb2KCbF4CqLyKtXHfOdB3jAIv5P6SjTJAJc=";
+    hash = "sha256-8ppuiEAc25BDcWSiL28ehGfdarnBc4vnGTO+nLl6RsY=";
   };
 
   patches = [
@@ -54,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://groonga.org/";
-    description = "An open-source fulltext search engine and column store";
+    description = "Open-source fulltext search engine and column store";
     license = licenses.lgpl21;
     maintainers = [ maintainers.ericsagnes ];
     platforms = platforms.all;
diff --git a/pkgs/servers/search/meilisearch/Cargo.lock b/pkgs/servers/search/meilisearch/Cargo.lock
index 2ec78384a3b4a..b7419052a84bf 100644
--- a/pkgs/servers/search/meilisearch/Cargo.lock
+++ b/pkgs/servers/search/meilisearch/Cargo.lock
@@ -47,7 +47,7 @@ dependencies = [
  "actix-utils",
  "ahash",
  "base64 0.21.7",
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "brotli",
  "bytes",
  "bytestring",
@@ -80,7 +80,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb"
 dependencies = [
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -149,10 +149,10 @@ dependencies = [
  "impl-more",
  "pin-project-lite",
  "tokio",
- "tokio-rustls 0.23.4",
+ "tokio-rustls",
  "tokio-util",
  "tracing",
- "webpki-roots 0.22.6",
+ "webpki-roots 0.25.3",
 ]
 
 [[package]]
@@ -246,9 +246,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "aes"
-version = "0.8.3"
+version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2"
+checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0"
 dependencies = [
  "cfg-if",
  "cipher",
@@ -306,9 +306,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
 
 [[package]]
 name = "anstream"
-version = "0.6.7"
+version = "0.6.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cd2405b3ac1faab2990b74d728624cd9fd115651fcecc7c2d8daf01376275ba"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -320,9 +320,9 @@ dependencies = [
 
 [[package]]
 name = "anstyle"
-version = "1.0.1"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
 
 [[package]]
 name = "anstyle-parse"
@@ -354,9 +354,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.80"
+version = "1.0.82"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
+checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519"
 dependencies = [
  "backtrace",
 ]
@@ -386,7 +386,7 @@ dependencies = [
  "byteorder",
  "heed",
  "log",
- "memmap2 0.9.3",
+ "memmap2 0.9.4",
  "ordered-float",
  "rand",
  "rayon",
@@ -424,7 +424,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -435,7 +435,7 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -455,9 +455,9 @@ dependencies = [
 
 [[package]]
 name = "autocfg"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"
 
 [[package]]
 name = "backtrace"
@@ -494,7 +494,7 @@ checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
 
 [[package]]
 name = "benchmarks"
-version = "1.7.6"
+version = "1.8.2"
 dependencies = [
  "anyhow",
  "bytes",
@@ -541,7 +541,7 @@ version = "0.68.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "cexpr",
  "clang-sys",
  "lazy_static",
@@ -552,7 +552,18 @@ dependencies = [
  "regex",
  "rustc-hash",
  "shlex",
- "syn 2.0.48",
+ "syn 2.0.58",
+]
+
+[[package]]
+name = "bindgen_cuda"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f8489af5b7d17a81bffe37e0f4d6e1e4de87c87329d05447f22c35d95a1227d"
+dependencies = [
+ "glob",
+ "num_cpus",
+ "rayon",
 ]
 
 [[package]]
@@ -578,9 +589,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
 dependencies = [
  "serde",
 ]
@@ -628,7 +639,7 @@ dependencies = [
 
 [[package]]
 name = "build-info"
-version = "1.7.6"
+version = "1.8.2"
 dependencies = [
  "anyhow",
  "time",
@@ -637,9 +648,9 @@ dependencies = [
 
 [[package]]
 name = "bumpalo"
-version = "3.13.0"
+version = "3.15.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
+checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
 
 [[package]]
 name = "byte-unit"
@@ -659,22 +670,22 @@ checksum = "2c676a478f63e9fa2dd5368a42f28bba0d6c560b775f38583c8bbaa7fcd67c9c"
 
 [[package]]
 name = "bytemuck"
-version = "1.14.0"
+version = "1.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
+checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15"
 dependencies = [
  "bytemuck_derive",
 ]
 
 [[package]]
 name = "bytemuck_derive"
-version = "1.4.1"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdde5c9cd29ebd706ce1b35600920a33550e402fc998a2e53ad3b42c3c47a192"
+checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -730,15 +741,16 @@ dependencies = [
 
 [[package]]
 name = "candle-core"
-version = "0.3.3"
-source = "git+https://github.com/huggingface/candle.git#5270224f407502b82fe90bc2622894ce3871b002"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f1b20174c1707e20f4cb364a355b449803c03e9b0c9193324623cf9787a4e00"
 dependencies = [
  "byteorder",
  "candle-kernels",
  "cudarc",
  "gemm",
- "half 2.3.1",
- "memmap2 0.9.3",
+ "half 2.4.0",
+ "memmap2 0.9.4",
  "num-traits",
  "num_cpus",
  "rand",
@@ -752,21 +764,21 @@ dependencies = [
 
 [[package]]
 name = "candle-kernels"
-version = "0.3.1"
-source = "git+https://github.com/huggingface/candle.git#f4fcf6090045ac44122fd5f0a7e46db6e3e16528"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5845911a44164ebb73b56a0e23793ba1b583bad102af7400fe4768babc5815b2"
 dependencies = [
- "anyhow",
- "glob",
- "rayon",
+ "bindgen_cuda",
 ]
 
 [[package]]
 name = "candle-nn"
-version = "0.3.3"
-source = "git+https://github.com/huggingface/candle.git#5270224f407502b82fe90bc2622894ce3871b002"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "66a27533c8edfc915a6459f9850641ef523a829fa1a181c670766c1f752d873a"
 dependencies = [
  "candle-core",
- "half 2.3.1",
+ "half 2.4.0",
  "num-traits",
  "rayon",
  "safetensors",
@@ -776,8 +788,9 @@ dependencies = [
 
 [[package]]
 name = "candle-transformers"
-version = "0.3.3"
-source = "git+https://github.com/huggingface/candle.git#5270224f407502b82fe90bc2622894ce3871b002"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5847699f0643da05e57fc473672566e93dc36d82c1b7eeb970c6154d3434fe1"
 dependencies = [
  "byteorder",
  "candle-core",
@@ -789,7 +802,6 @@ dependencies = [
  "serde_json",
  "serde_plain",
  "tracing",
- "wav",
 ]
 
 [[package]]
@@ -833,9 +845,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
 
 [[package]]
 name = "cc"
-version = "1.0.83"
+version = "1.0.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
 dependencies = [
  "jobserver",
  "libc",
@@ -877,9 +889,9 @@ dependencies = [
 
 [[package]]
 name = "charabia"
-version = "0.8.7"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a9071b1586dd067b5fdfd2069fab932c047ca5bbce4bd2bdee8af0f4b155053"
+checksum = "933f20f2269b24d32fd5503e7b3c268af902190daf8d9d2b73ed2e75d77c00b4"
 dependencies = [
  "aho-corasick",
  "cow-utils",
@@ -889,9 +901,7 @@ dependencies = [
  "fst",
  "irg-kvariants",
  "jieba-rs",
- "lindera-core",
- "lindera-dictionary",
- "lindera-tokenizer",
+ "lindera",
  "litemap",
  "once_cell",
  "pinyin",
@@ -982,7 +992,7 @@ dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -1089,18 +1099,18 @@ checksum = "79bb3adfaf5f75d24b01aee375f7555907840fa2800e5ec8fa3b9e2031830173"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.9"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "crc32fast"
-version = "1.3.2"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
 dependencies = [
  "cfg-if",
 ]
@@ -1246,7 +1256,7 @@ version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9395df0cab995685664e79cc35ad6302bf08fb9c5d82301875a183affe1278b1"
 dependencies = [
- "half 2.3.1",
+ "half 2.4.0",
 ]
 
 [[package]]
@@ -1294,7 +1304,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "strsim",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -1316,7 +1326,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
 dependencies = [
  "darling_core 0.20.3",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -1330,9 +1340,9 @@ dependencies = [
 
 [[package]]
 name = "deranged"
-version = "0.3.9"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
 dependencies = [
  "powerfmt",
  "serde",
@@ -1346,7 +1356,7 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -1450,7 +1460,7 @@ dependencies = [
  "convert_case 0.6.0",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -1529,7 +1539,7 @@ dependencies = [
 
 [[package]]
 name = "dump"
-version = "1.7.6"
+version = "1.8.2"
 dependencies = [
  "anyhow",
  "big_s",
@@ -1564,9 +1574,9 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.9.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 dependencies = [
  "serde",
 ]
@@ -1643,9 +1653,9 @@ checksum = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569"
 
 [[package]]
 name = "encoding_rs"
-version = "0.8.32"
+version = "0.8.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
 dependencies = [
  "cfg-if",
 ]
@@ -1668,7 +1678,7 @@ dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -1688,20 +1698,30 @@ checksum = "03cdc46ec28bd728e67540c528013c6a10eb69a02eb31078a1bda695438cbfb8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
+]
+
+[[package]]
+name = "env_filter"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea"
+dependencies = [
+ "log",
+ "regex",
 ]
 
 [[package]]
 name = "env_logger"
-version = "0.10.1"
+version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece"
+checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9"
 dependencies = [
+ "anstream",
+ "anstyle",
+ "env_filter",
  "humantime",
- "is-terminal",
  "log",
- "regex",
- "termcolor",
 ]
 
 [[package]]
@@ -1761,13 +1781,13 @@ dependencies = [
  "darling 0.20.3",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
  "uuid",
 ]
 
 [[package]]
 name = "file-store"
-version = "1.7.6"
+version = "1.8.2"
 dependencies = [
  "faux",
  "tempfile",
@@ -1790,7 +1810,7 @@ dependencies = [
 
 [[package]]
 name = "filter-parser"
-version = "1.7.6"
+version = "1.8.2"
 dependencies = [
  "insta",
  "nom",
@@ -1810,7 +1830,7 @@ dependencies = [
 
 [[package]]
 name = "flatten-serde-json"
-version = "1.7.6"
+version = "1.8.2"
 dependencies = [
  "criterion",
  "serde_json",
@@ -1893,7 +1913,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -1928,7 +1948,7 @@ dependencies = [
 
 [[package]]
 name = "fuzzers"
-version = "1.7.6"
+version = "1.8.2"
 dependencies = [
  "arbitrary",
  "clap",
@@ -1954,7 +1974,7 @@ version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "27d12c0aed7f1e24276a241aadc4cb8ea9f83000f34bc062b7cc2d51e3b0fabd"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "debugid",
  "fxhash",
  "serde",
@@ -1963,9 +1983,9 @@ dependencies = [
 
 [[package]]
 name = "gemm"
-version = "0.17.0"
+version = "0.17.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e97d506c68f4fb12325b52a638e7d54cc87e3593a4ded0de60218b6dfd65f645"
+checksum = "6ab24cc62135b40090e31a76a9b2766a501979f3070fa27f689c27ec04377d32"
 dependencies = [
  "dyn-stack",
  "gemm-c32",
@@ -1983,9 +2003,9 @@ dependencies = [
 
 [[package]]
 name = "gemm-c32"
-version = "0.17.0"
+version = "0.17.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0dd16f26e8f34661edc906d8c9522b59ec1655c865a98a58950d0246eeaca9da"
+checksum = "b9c030d0b983d1e34a546b86e08f600c11696fde16199f971cd46c12e67512c0"
 dependencies = [
  "dyn-stack",
  "gemm-common",
@@ -1998,9 +2018,9 @@ dependencies = [
 
 [[package]]
 name = "gemm-c64"
-version = "0.17.0"
+version = "0.17.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8e34381bc060b47fbd25522a281799ef763cd27f43bbd1783d935774659242a"
+checksum = "fbb5f2e79fefb9693d18e1066a557b4546cd334b226beadc68b11a8f9431852a"
 dependencies = [
  "dyn-stack",
  "gemm-common",
@@ -2013,13 +2033,13 @@ dependencies = [
 
 [[package]]
 name = "gemm-common"
-version = "0.17.0"
+version = "0.17.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22518a76339b09276f77c3166c44262e55f633712fe8a44fd0573505887feeab"
+checksum = "a2e7ea062c987abcd8db95db917b4ffb4ecdfd0668471d8dc54734fdff2354e8"
 dependencies = [
  "bytemuck",
  "dyn-stack",
- "half 2.3.1",
+ "half 2.4.0",
  "num-complex",
  "num-traits",
  "once_cell",
@@ -2033,14 +2053,14 @@ dependencies = [
 
 [[package]]
 name = "gemm-f16"
-version = "0.17.0"
+version = "0.17.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70409bbf3ef83b38cbe4a58cd4b797c1c27902505bdd926a588ea61b6c550a84"
+checksum = "7ca4c06b9b11952071d317604acb332e924e817bd891bec8dfb494168c7cedd4"
 dependencies = [
  "dyn-stack",
  "gemm-common",
  "gemm-f32",
- "half 2.3.1",
+ "half 2.4.0",
  "num-complex",
  "num-traits",
  "paste",
@@ -2051,9 +2071,9 @@ dependencies = [
 
 [[package]]
 name = "gemm-f32"
-version = "0.17.0"
+version = "0.17.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ea3068edca27f100964157211782eba19e961aa4d0d2bdac3e1775a51aa7680"
+checksum = "e9a69f51aaefbd9cf12d18faf273d3e982d9d711f60775645ed5c8047b4ae113"
 dependencies = [
  "dyn-stack",
  "gemm-common",
@@ -2066,9 +2086,9 @@ dependencies = [
 
 [[package]]
 name = "gemm-f64"
-version = "0.17.0"
+version = "0.17.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fd41e8f5a60dce8d8acd852a3f4b22f8e18be957e1937731be692c037652510"
+checksum = "aa397a48544fadf0b81ec8741e5c0fba0043008113f71f2034def1935645d2b0"
 dependencies = [
  "dyn-stack",
  "gemm-common",
@@ -2097,13 +2117,15 @@ checksum = "36d244a08113319b5ebcabad2b8b7925732d15eec46d7e7ac3c11734f3b7a6ad"
 
 [[package]]
 name = "getrandom"
-version = "0.2.10"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
+ "js-sys",
  "libc",
  "wasi",
+ "wasm-bindgen",
 ]
 
 [[package]]
@@ -2130,7 +2152,7 @@ version = "0.18.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1b3ba52851e73b46a4c3df1d89343741112003f0f6f13beb0dfac9e457c3fdcd"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "libc",
  "libgit2-sys",
  "log",
@@ -2182,9 +2204,9 @@ checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
 
 [[package]]
 name = "half"
-version = "2.3.1"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872"
+checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e"
 dependencies = [
  "bytemuck",
  "cfg-if",
@@ -2222,7 +2244,7 @@ dependencies = [
  "atomic-polyfill",
  "hash32",
  "rustc_version",
- "spin 0.9.8",
+ "spin",
  "stable_deref_trait",
 ]
 
@@ -2238,7 +2260,7 @@ version = "0.20.0-alpha.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9648a50991c86df7d00c56c268c27754fcf4c80be2ba57fc4a00dc928c6fe934"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "bytemuck",
  "byteorder",
  "heed-traits",
@@ -2272,9 +2294,9 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.2"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
 [[package]]
 name = "hex"
@@ -2393,7 +2415,7 @@ dependencies = [
  "hyper",
  "rustls 0.21.10",
  "tokio",
- "tokio-rustls 0.24.1",
+ "tokio-rustls",
 ]
 
 [[package]]
@@ -2420,7 +2442,7 @@ checksum = "206ca75c9c03ba3d4ace2460e57b189f39f43de612c2f85836e65c929701bb2d"
 
 [[package]]
 name = "index-scheduler"
-version = "1.7.6"
+version = "1.8.2"
 dependencies = [
  "anyhow",
  "big_s",
@@ -2453,9 +2475,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.1.0"
+version = "2.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
 dependencies = [
  "equivalent",
  "hashbrown",
@@ -2567,10 +2589,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "itertools"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
+dependencies = [
+ "either",
+]
+
+[[package]]
 name = "itoa"
-version = "1.0.9"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
 
 [[package]]
 name = "jieba-rs"
@@ -2589,25 +2620,25 @@ dependencies = [
 
 [[package]]
 name = "jobserver"
-version = "0.1.26"
+version = "0.1.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
+checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "js-sys"
-version = "0.3.64"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
 dependencies = [
  "wasm-bindgen",
 ]
 
 [[package]]
 name = "json-depth-checker"
-version = "1.7.6"
+version = "1.8.2"
 dependencies = [
  "criterion",
  "serde_json",
@@ -2615,19 +2646,29 @@ dependencies = [
 
 [[package]]
 name = "jsonwebtoken"
-version = "8.3.0"
+version = "9.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378"
+checksum = "5c7ea04a7c5c055c175f189b6dc6ba036fd62306b58c66c9f6389036c503a3f4"
 dependencies = [
  "base64 0.21.7",
+ "js-sys",
  "pem",
- "ring 0.16.20",
+ "ring",
  "serde",
  "serde_json",
  "simple_asn1",
 ]
 
 [[package]]
+name = "kanaria"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0f9d9652540055ac4fded998a73aca97d965899077ab1212587437da44196ff"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
 name = "kstring"
 version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2694,9 +2735,9 @@ dependencies = [
 
 [[package]]
 name = "libm"
-version = "0.2.7"
+version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
+checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
 
 [[package]]
 name = "libmimalloc-sys"
@@ -2732,10 +2773,67 @@ dependencies = [
 ]
 
 [[package]]
+name = "lindera"
+version = "0.30.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1bbf252ea3490053dc397539ece0b510924f2f72605fa28d3e858d86f43ec88"
+dependencies = [
+ "lindera-analyzer",
+ "lindera-core",
+ "lindera-dictionary",
+ "lindera-filter",
+ "lindera-tokenizer",
+]
+
+[[package]]
+name = "lindera-analyzer"
+version = "0.30.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87febfec0e2859ce2154fb90dd6f66b774ddb0b6e264b44f8e3d1303c9dcedd7"
+dependencies = [
+ "anyhow",
+ "bincode",
+ "byteorder",
+ "encoding",
+ "kanaria",
+ "lindera-cc-cedict-builder",
+ "lindera-core",
+ "lindera-dictionary",
+ "lindera-filter",
+ "lindera-ipadic-builder",
+ "lindera-ko-dic-builder",
+ "lindera-tokenizer",
+ "lindera-unidic-builder",
+ "once_cell",
+ "regex",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "unicode-blocks",
+ "unicode-normalization",
+ "unicode-segmentation",
+ "yada",
+]
+
+[[package]]
+name = "lindera-cc-cedict"
+version = "0.30.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fcb91bb8a93ab0f95dbc3c43b5105354bb059134ef731154f75a64b5d919e71d"
+dependencies = [
+ "bincode",
+ "byteorder",
+ "lindera-cc-cedict-builder",
+ "lindera-core",
+ "lindera-decompress",
+ "once_cell",
+]
+
+[[package]]
 name = "lindera-cc-cedict-builder"
-version = "0.27.2"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a90d23f7cef31c6ab7ac0d4f3b23940754207f7b5a80b080c39193caffe99ac2"
+checksum = "f6022a8309a287dbef425fd09a61585351670c83001d74f6c089979e2330b683"
 dependencies = [
  "anyhow",
  "bincode",
@@ -2744,6 +2842,7 @@ dependencies = [
  "encoding",
  "env_logger",
  "glob",
+ "lindera-compress",
  "lindera-core",
  "lindera-decompress",
  "log",
@@ -2752,9 +2851,9 @@ dependencies = [
 
 [[package]]
 name = "lindera-compress"
-version = "0.27.2"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1927b7d2bd4ffc19e07691bf8609722663c341f80260a1c636cee8f1ec420dce"
+checksum = "32363cbcf433f915e7d77c2a0c410db2d6b23442e80715cf2cf6b9864078a500"
 dependencies = [
  "anyhow",
  "flate2",
@@ -2763,9 +2862,9 @@ dependencies = [
 
 [[package]]
 name = "lindera-core"
-version = "0.27.2"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3299caa2b81c9a076535a4651a83bf7d624c15f2349f243187fffc64b5a78251"
+checksum = "d9a0e858753a02b1a3524fae4fbb11ca4b3a947128fd7854b797386562678be8"
 dependencies = [
  "anyhow",
  "bincode",
@@ -2780,9 +2879,9 @@ dependencies = [
 
 [[package]]
 name = "lindera-decompress"
-version = "0.27.2"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b82b8d2323a67dc8ff0c40751d199b7ba94cd5e3c13a5b31622d318acc79e5b"
+checksum = "0e406345f6f8b665b9a129c67079c18ca9d97e9d171d102b4106a64a592c285e"
 dependencies = [
  "anyhow",
  "flate2",
@@ -2791,29 +2890,73 @@ dependencies = [
 
 [[package]]
 name = "lindera-dictionary"
-version = "0.27.2"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cddf783b459d54b130d956889bec052c25fcb478a304e03fa9b2289387572bc5"
+checksum = "3e2a3ec0e5fd6768a27c6ec1040e8470d3a5926418f7afe065859e98aabb3bfe"
 dependencies = [
  "anyhow",
  "bincode",
  "byteorder",
+ "lindera-cc-cedict",
  "lindera-cc-cedict-builder",
  "lindera-core",
+ "lindera-ipadic",
  "lindera-ipadic-builder",
+ "lindera-ipadic-neologd",
  "lindera-ipadic-neologd-builder",
  "lindera-ko-dic",
  "lindera-ko-dic-builder",
  "lindera-unidic",
  "lindera-unidic-builder",
  "serde",
+ "strum",
+ "strum_macros",
+]
+
+[[package]]
+name = "lindera-filter"
+version = "0.30.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1badaf51bad051185ea4917ba91bbbf2d6f8167e155647e21e0eaaef0982a95d"
+dependencies = [
+ "anyhow",
+ "csv",
+ "kanaria",
+ "lindera-cc-cedict-builder",
+ "lindera-core",
+ "lindera-dictionary",
+ "lindera-ipadic-builder",
+ "lindera-ko-dic-builder",
+ "lindera-unidic-builder",
+ "once_cell",
+ "regex",
+ "serde",
+ "serde_json",
+ "unicode-blocks",
+ "unicode-normalization",
+ "unicode-segmentation",
+ "yada",
+]
+
+[[package]]
+name = "lindera-ipadic"
+version = "0.30.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "129ec16366354998f9791467ad38731539197747f649e573ead845358271ce25"
+dependencies = [
+ "bincode",
+ "byteorder",
+ "lindera-core",
+ "lindera-decompress",
+ "lindera-ipadic-builder",
+ "once_cell",
 ]
 
 [[package]]
 name = "lindera-ipadic-builder"
-version = "0.27.2"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27c708f08f14b0806f6c4cce5324b4bcba27209463026b78c31f399f8be9d30d"
+checksum = "7f0979a56bc57e9c9be2996dff232c47aa146a2e7baebf5dd567e388eba3dd90"
 dependencies = [
  "anyhow",
  "bincode",
@@ -2823,6 +2966,7 @@ dependencies = [
  "encoding_rs_io",
  "env_logger",
  "glob",
+ "lindera-compress",
  "lindera-core",
  "lindera-decompress",
  "log",
@@ -2831,10 +2975,24 @@ dependencies = [
 ]
 
 [[package]]
+name = "lindera-ipadic-neologd"
+version = "0.30.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20076660c4e79ef0316735b44e18ec7644e54786acdee8946c972d5f97086d0f"
+dependencies = [
+ "bincode",
+ "byteorder",
+ "lindera-core",
+ "lindera-decompress",
+ "lindera-ipadic-neologd-builder",
+ "once_cell",
+]
+
+[[package]]
 name = "lindera-ipadic-neologd-builder"
-version = "0.27.2"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5e67eb91652203d202f7d27ead220d1d8c9099552709b8429eae9c70f2312fb"
+checksum = "eccd18ed5f65d1d64ac0cbfa1d6827bfbbaf6530520ae6847e6a91ee38f47e20"
 dependencies = [
  "anyhow",
  "bincode",
@@ -2844,6 +3002,7 @@ dependencies = [
  "encoding_rs_io",
  "env_logger",
  "glob",
+ "lindera-compress",
  "lindera-core",
  "lindera-decompress",
  "log",
@@ -2853,9 +3012,9 @@ dependencies = [
 
 [[package]]
 name = "lindera-ko-dic"
-version = "0.27.2"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d45da8d9a5888f4d4e78bb29fc82ff9ae519962efb0d2d92343b6cf8e373952f"
+checksum = "59073171566c3e498ca048e84c2d0a7e117a42f36c8eb7d7163e65ac38bd6d48"
 dependencies = [
  "bincode",
  "byteorder",
@@ -2866,13 +3025,14 @@ dependencies = [
  "lindera-ko-dic-builder",
  "once_cell",
  "tar",
+ "ureq",
 ]
 
 [[package]]
 name = "lindera-ko-dic-builder"
-version = "0.27.2"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41c0933295dc945178bbc08f34111dc3ef22bfee38820f78453c8f8d4f3463d1"
+checksum = "ae176afa8535ca2a5ee9471873f85d531db0a6c32a3c42b41084506aac22b577"
 dependencies = [
  "anyhow",
  "bincode",
@@ -2890,12 +3050,11 @@ dependencies = [
 
 [[package]]
 name = "lindera-tokenizer"
-version = "0.27.2"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "348ce9bb3f2e5edc577420b98cca05b2177f3af50ef5ae278a1d8a1351d56197"
+checksum = "457285bdde84571aa510c9e05371904305a55e8a541fa1473d4393062f06932d"
 dependencies = [
  "bincode",
- "byteorder",
  "lindera-core",
  "lindera-dictionary",
  "once_cell",
@@ -2905,26 +3064,27 @@ dependencies = [
 
 [[package]]
 name = "lindera-unidic"
-version = "0.27.2"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74022a57c395ed7e213a9cd5833207e3c583145078ee9a164aeaec68b30c9d8e"
+checksum = "5839980be552dfa639b70964c61914a9ad014148663679b0e148aa72e5e30f23"
 dependencies = [
  "bincode",
  "byteorder",
  "encoding",
+ "flate2",
  "lindera-core",
  "lindera-decompress",
  "lindera-unidic-builder",
  "once_cell",
+ "tar",
  "ureq",
- "zip",
 ]
 
 [[package]]
 name = "lindera-unidic-builder"
-version = "0.27.2"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a34e5564ee81af82603cd6a03c3abe6e17cc0ae598bfa5078809f06e59e96e08"
+checksum = "dcaab8f061d5b944b1e424f49c7efbf8f276e8a72e4f4ff956d01e46d481f008"
 dependencies = [
  "anyhow",
  "bincode",
@@ -2997,7 +3157,7 @@ checksum = "fc2fb41a9bb4257a3803154bdf7e2df7d45197d1941c9b1a90ad815231630721"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -3063,9 +3223,9 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.20"
+version = "0.4.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
 
 [[package]]
 name = "lz4_flex"
@@ -3098,7 +3258,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -3115,7 +3275,7 @@ checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
 
 [[package]]
 name = "meili-snap"
-version = "1.7.6"
+version = "1.8.2"
 dependencies = [
  "insta",
  "md5",
@@ -3124,7 +3284,7 @@ dependencies = [
 
 [[package]]
 name = "meilisearch"
-version = "1.7.6"
+version = "1.8.2"
 dependencies = [
  "actix-cors",
  "actix-http",
@@ -3182,7 +3342,7 @@ dependencies = [
  "rayon",
  "regex",
  "reqwest",
- "rustls 0.20.9",
+ "rustls 0.21.10",
  "rustls-pemfile",
  "segment",
  "serde",
@@ -3217,7 +3377,7 @@ dependencies = [
 
 [[package]]
 name = "meilisearch-auth"
-version = "1.7.6"
+version = "1.8.2"
 dependencies = [
  "base64 0.21.7",
  "enum-iterator",
@@ -3236,7 +3396,7 @@ dependencies = [
 
 [[package]]
 name = "meilisearch-types"
-version = "1.7.6"
+version = "1.8.2"
 dependencies = [
  "actix-web",
  "anyhow",
@@ -3266,7 +3426,7 @@ dependencies = [
 
 [[package]]
 name = "meilitool"
-version = "1.7.6"
+version = "1.8.2"
 dependencies = [
  "anyhow",
  "clap",
@@ -3295,9 +3455,9 @@ dependencies = [
 
 [[package]]
 name = "memmap2"
-version = "0.9.3"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45fd3a57831bf88bc63f8cebc0cf956116276e97fef3966103e96416209f7c92"
+checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
 dependencies = [
  "libc",
  "stable_deref_trait",
@@ -3305,7 +3465,7 @@ dependencies = [
 
 [[package]]
 name = "milli"
-version = "1.7.6"
+version = "1.8.2"
 dependencies = [
  "arroy",
  "big_s",
@@ -3326,7 +3486,6 @@ dependencies = [
  "filter-parser",
  "flatten-serde-json",
  "fst",
- "futures",
  "fxhash",
  "geoutils",
  "grenad",
@@ -3350,7 +3509,6 @@ dependencies = [
  "rand",
  "rand_pcg",
  "rayon",
- "reqwest",
  "roaring",
  "rstar",
  "serde",
@@ -3364,8 +3522,9 @@ dependencies = [
  "tiktoken-rs",
  "time",
  "tokenizers",
- "tokio",
  "tracing",
+ "ureq",
+ "url",
  "uuid",
 ]
 
@@ -3402,9 +3561,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
 dependencies = [
  "adler",
 ]
@@ -3439,7 +3598,7 @@ checksum = "371717c0a5543d6a800cac822eac735aa7d2d2fbb41002e9856a4089532dbdce"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -3501,9 +3660,9 @@ dependencies = [
 
 [[package]]
 name = "num-complex"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214"
+checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6"
 dependencies = [
  "bytemuck",
  "num-traits",
@@ -3527,9 +3686,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.16"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
  "autocfg",
  "libm",
@@ -3731,11 +3890,12 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
 
 [[package]]
 name = "pem"
-version = "1.1.1"
+version = "3.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8"
+checksum = "1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310"
 dependencies = [
- "base64 0.13.1",
+ "base64 0.21.7",
+ "serde",
 ]
 
 [[package]]
@@ -3746,7 +3906,7 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "permissive-json-pointer"
-version = "1.7.6"
+version = "1.8.2"
 dependencies = [
  "big_s",
  "serde_json",
@@ -3782,7 +3942,7 @@ dependencies = [
  "pest_meta",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -3836,7 +3996,7 @@ dependencies = [
  "phf_shared",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -3865,7 +4025,7 @@ checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -3888,9 +4048,9 @@ checksum = "16f2611cd06a1ac239a0cea4521de9eb068a6ca110324ee00631aa68daa74fc0"
 
 [[package]]
 name = "pkg-config"
-version = "0.3.27"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
 name = "platform-dirs"
@@ -3973,9 +4133,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.76"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c"
+checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
 dependencies = [
  "unicode-ident",
 ]
@@ -4035,9 +4195,9 @@ dependencies = [
 
 [[package]]
 name = "pulp"
-version = "0.18.4"
+version = "0.18.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7057c1435edb390ebfc51743abad043377f1f698ce8e649a9b52a4b378be5e4d"
+checksum = "03457ac216146f43f921500bac4e892d5cd32b0479b929cbfc90f95cd6c599c2"
 dependencies = [
  "bytemuck",
  "libm",
@@ -4115,9 +4275,9 @@ dependencies = [
 
 [[package]]
 name = "rayon"
-version = "1.8.1"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051"
+checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
 dependencies = [
  "either",
  "rayon-core",
@@ -4181,35 +4341,29 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.10.2"
+version = "1.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
 dependencies = [
  "aho-corasick",
  "memchr",
  "regex-automata",
- "regex-syntax 0.8.2",
+ "regex-syntax",
 ]
 
 [[package]]
 name = "regex-automata"
-version = "0.4.3"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-syntax 0.8.2",
+ "regex-syntax",
 ]
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
-
-[[package]]
-name = "regex-syntax"
 version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
@@ -4244,7 +4398,7 @@ dependencies = [
  "serde_urlencoded",
  "system-configuration",
  "tokio",
- "tokio-rustls 0.24.1",
+ "tokio-rustls",
  "tokio-util",
  "tower-service",
  "url",
@@ -4263,38 +4417,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8c31b5c4033f8fdde8700e4657be2c497e7288f01515be52168c631e2e4d4086"
 
 [[package]]
-name = "riff"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9b1a3d5f46d53f4a3478e2be4a5a5ce5108ea58b100dcd139830eae7f79a3a1"
-
-[[package]]
 name = "ring"
-version = "0.16.20"
+version = "0.17.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
-dependencies = [
- "cc",
- "libc",
- "once_cell",
- "spin 0.5.2",
- "untrusted 0.7.1",
- "web-sys",
- "winapi",
-]
-
-[[package]]
-name = "ring"
-version = "0.17.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
+checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
 dependencies = [
  "cc",
+ "cfg-if",
  "getrandom",
  "libc",
- "spin 0.9.8",
- "untrusted 0.9.0",
- "windows-sys 0.48.0",
+ "spin",
+ "untrusted",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -4362,7 +4496,7 @@ version = "0.38.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "errno",
  "libc",
  "linux-raw-sys 0.4.12",
@@ -4371,26 +4505,28 @@ dependencies = [
 
 [[package]]
 name = "rustls"
-version = "0.20.9"
+version = "0.21.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99"
+checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
 dependencies = [
  "log",
- "ring 0.16.20",
+ "ring",
+ "rustls-webpki 0.101.7",
  "sct",
- "webpki",
 ]
 
 [[package]]
 name = "rustls"
-version = "0.21.10"
+version = "0.22.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
+checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41"
 dependencies = [
  "log",
- "ring 0.17.7",
- "rustls-webpki",
- "sct",
+ "ring",
+ "rustls-pki-types",
+ "rustls-webpki 0.102.2",
+ "subtle",
+ "zeroize",
 ]
 
 [[package]]
@@ -4403,13 +4539,30 @@ dependencies = [
 ]
 
 [[package]]
+name = "rustls-pki-types"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ede67b28608b4c60685c7d54122d4400d90f62b40caee7700e700380a390fa8"
+
+[[package]]
 name = "rustls-webpki"
 version = "0.101.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
 dependencies = [
- "ring 0.17.7",
- "untrusted 0.9.0",
+ "ring",
+ "untrusted",
+]
+
+[[package]]
+name = "rustls-webpki"
+version = "0.102.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610"
+dependencies = [
+ "ring",
+ "rustls-pki-types",
+ "untrusted",
 ]
 
 [[package]]
@@ -4420,15 +4573,15 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "ryu"
-version = "1.0.15"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "safetensors"
-version = "0.4.1"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1659ef1c27917eb58c2d53664b5506d0b68c9cb9b460d3e0901011cf71269a8e"
+checksum = "8d980e6bfb34436fb0a81e42bc41af43f11805bbbca443e7f68e9faaabe669ed"
 dependencies = [
  "serde",
  "serde_json",
@@ -4455,8 +4608,8 @@ version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
 dependencies = [
- "ring 0.17.7",
- "untrusted 0.9.0",
+ "ring",
+ "untrusted",
 ]
 
 [[package]]
@@ -4490,9 +4643,9 @@ checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4"
 
 [[package]]
 name = "serde"
-version = "1.0.195"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
@@ -4508,20 +4661,20 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.195"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.111"
+version = "1.0.115"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4"
+checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd"
 dependencies = [
  "indexmap",
  "itoa",
@@ -4572,9 +4725,9 @@ dependencies = [
 
 [[package]]
 name = "sha1"
-version = "0.10.5"
+version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -4721,12 +4874,6 @@ dependencies = [
 
 [[package]]
 name = "spin"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
-
-[[package]]
-name = "spin"
 version = "0.9.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
@@ -4776,6 +4923,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
+name = "strum"
+version = "0.26.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29"
+dependencies = [
+ "strum_macros",
+]
+
+[[package]]
+name = "strum_macros"
+version = "0.26.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "rustversion",
+ "syn 2.0.58",
+]
+
+[[package]]
 name = "subtle"
 version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4794,9 +4963,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.48"
+version = "2.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
+checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4814,14 +4983,13 @@ dependencies = [
 
 [[package]]
 name = "synstructure"
-version = "0.13.0"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06"
+checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
- "unicode-xid",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -4830,7 +4998,7 @@ version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec7dddc5f0fee506baf8b9fdb989e242f17e4b11c61dfbb0635b705217199eea"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "byteorder",
  "enum-as-inner",
  "libc",
@@ -4917,22 +5085,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.56"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
+checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.56"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
+checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -5020,14 +5188,14 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokenizers"
-version = "0.14.1"
-source = "git+https://github.com/huggingface/tokenizers.git?tag=v0.14.1#6357206cdcce4d78ffb1e0372feb456caea09375"
+version = "0.15.2"
+source = "git+https://github.com/huggingface/tokenizers.git?tag=v0.15.2#701a73b869602b5639589d197e805349cdba3223"
 dependencies = [
  "aho-corasick",
  "derive_builder 0.12.0",
  "esaxx-rs",
  "getrandom",
- "itertools 0.11.0",
+ "itertools 0.12.1",
  "lazy_static",
  "log",
  "macro_rules_attribute",
@@ -5038,7 +5206,7 @@ dependencies = [
  "rayon",
  "rayon-cond",
  "regex",
- "regex-syntax 0.7.4",
+ "regex-syntax",
  "serde",
  "serde_json",
  "spm_precompiled",
@@ -5075,18 +5243,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
-]
-
-[[package]]
-name = "tokio-rustls"
-version = "0.23.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59"
-dependencies = [
- "rustls 0.20.9",
- "tokio",
- "webpki",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -5197,7 +5354,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -5282,9 +5439,9 @@ checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
 
 [[package]]
 name = "typenum"
-version = "1.16.0"
+version = "1.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 
 [[package]]
 name = "ucd-trie"
@@ -5317,16 +5474,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
 
 [[package]]
+name = "unicode-blocks"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b12e05d9e06373163a9bb6bb8c263c261b396643a99445fe6b9811fd376581b"
+
+[[package]]
 name = "unicode-ident"
-version = "1.0.11"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
 dependencies = [
  "tinyvec",
 ]
@@ -5342,9 +5505,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.10.1"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
 
 [[package]]
 name = "unicode-width"
@@ -5353,12 +5516,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
-name = "unicode-xid"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
-
-[[package]]
 name = "unicode_categories"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5366,33 +5523,28 @@ checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e"
 
 [[package]]
 name = "untrusted"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
-
-[[package]]
-name = "untrusted"
 version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
 
 [[package]]
 name = "ureq"
-version = "2.9.1"
+version = "2.9.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8cdd25c339e200129fe4de81451814e5228c9b771d57378817d6117cc2b3f97"
+checksum = "11f214ce18d8b2cbe84ed3aa6486ed3f5b285cf8d8fbdbce9f3f767a724adc35"
 dependencies = [
  "base64 0.21.7",
  "flate2",
  "log",
  "once_cell",
- "rustls 0.21.10",
- "rustls-webpki",
+ "rustls 0.22.2",
+ "rustls-pki-types",
+ "rustls-webpki 0.102.2",
  "serde",
  "serde_json",
  "socks",
  "url",
- "webpki-roots 0.25.3",
+ "webpki-roots 0.26.1",
 ]
 
 [[package]]
@@ -5496,9 +5648,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[package]]
 name = "walkdir"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
 dependencies = [
  "same-file",
  "winapi-util",
@@ -5532,9 +5684,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.87"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -5542,16 +5694,16 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.87"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
  "wasm-bindgen-shared",
 ]
 
@@ -5569,9 +5721,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.87"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -5579,22 +5731,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.87"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.87"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
 name = "wasm-streams"
@@ -5610,15 +5762,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "wav"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a65e199c799848b4f997072aa4d673c034f80f40191f97fe2f0a23f410be1609"
-dependencies = [
- "riff",
-]
-
-[[package]]
 name = "web-sys"
 version = "0.3.64"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5629,31 +5772,21 @@ dependencies = [
 ]
 
 [[package]]
-name = "webpki"
-version = "0.22.4"
+name = "webpki-roots"
+version = "0.25.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53"
-dependencies = [
- "ring 0.17.7",
- "untrusted 0.9.0",
-]
+checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10"
 
 [[package]]
 name = "webpki-roots"
-version = "0.22.6"
+version = "0.26.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87"
+checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009"
 dependencies = [
- "webpki",
+ "rustls-pki-types",
 ]
 
 [[package]]
-name = "webpki-roots"
-version = "0.25.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10"
-
-[[package]]
 name = "whatlang"
 version = "0.16.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5681,9 +5814,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.5"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
 dependencies = [
  "winapi",
 ]
@@ -5941,7 +6074,7 @@ dependencies = [
 
 [[package]]
 name = "xtask"
-version = "1.7.6"
+version = "1.8.2"
 dependencies = [
  "anyhow",
  "build-info",
@@ -5964,9 +6097,9 @@ dependencies = [
 
 [[package]]
 name = "yada"
-version = "0.5.0"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6d12cb7a57bbf2ab670ed9545bae3648048547f9039279a89ce000208e585c1"
+checksum = "aed111bd9e48a802518765906cbdadf0b45afb72b9c81ab049a3b86252adffdd"
 
 [[package]]
 name = "yaml-rust"
@@ -5989,9 +6122,9 @@ dependencies = [
 
 [[package]]
 name = "yoke"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61e38c508604d6bbbd292dadb3c02559aa7fff6b654a078a36217cad871636e4"
+checksum = "65e71b2e4f287f467794c671e2b8f8a5f3716b3c829079a1c44740148eff07e4"
 dependencies = [
  "serde",
  "stable_deref_trait",
@@ -6001,13 +6134,13 @@ dependencies = [
 
 [[package]]
 name = "yoke-derive"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5e19fb6ed40002bab5403ffa37e53e0e56f914a4450c8765f533018db1db35f"
+checksum = "9e6936f0cce458098a201c245a11bef556c6a0181129c7034d10d76d1ec3a2b8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
  "synstructure",
 ]
 
@@ -6028,7 +6161,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -6048,11 +6181,17 @@ checksum = "e6a647510471d372f2e6c2e6b7219e44d8c574d24fdc11c610a61455782f18c3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.58",
  "synstructure",
 ]
 
 [[package]]
+name = "zeroize"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
+
+[[package]]
 name = "zerovec"
 version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6102,11 +6241,10 @@ dependencies = [
 
 [[package]]
 name = "zstd-sys"
-version = "2.0.8+zstd.1.5.5"
+version = "2.0.10+zstd.1.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c"
+checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa"
 dependencies = [
  "cc",
- "libc",
  "pkg-config",
 ]
diff --git a/pkgs/servers/search/meilisearch/default.nix b/pkgs/servers/search/meilisearch/default.nix
index 1846775194f06..55810cf589975 100644
--- a/pkgs/servers/search/meilisearch/default.nix
+++ b/pkgs/servers/search/meilisearch/default.nix
@@ -1,14 +1,16 @@
-{ stdenv
-, lib
-, rustPlatform
-, fetchFromGitHub
-, Security
-, SystemConfiguration
-, nixosTests
-, nix-update-script
+{
+  stdenv,
+  lib,
+  rustPlatform,
+  fetchFromGitHub,
+  Security,
+  SystemConfiguration,
+  nixosTests,
+  nix-update-script,
 }:
 
-let version = "1.7.6";
+let
+  version = "1.8.2";
 in
 rustPlatform.buildRustPackage {
   pname = "meilisearch";
@@ -18,33 +20,28 @@ rustPlatform.buildRustPackage {
     owner = "meilisearch";
     repo = "MeiliSearch";
     rev = "refs/tags/v${version}";
-    hash = "sha256-LsJM7zkoiu5LZb/rhnZaAS/wVNH8b6YZ+vNEE1wVIIk=";
+    hash = "sha256-x5hHgEhM3iljB7KoJcRoEEZm5bc/lZevT9x/bf2mEMI=";
   };
 
-  cargoBuildFlags = [
-    "--package=meilisearch"
-  ];
+  cargoBuildFlags = [ "--package=meilisearch" ];
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
       "actix-web-static-files-3.0.5" = "sha256-2BN0RzLhdykvN3ceRLkaKwSZtel2DBqZ+uz4Qut+nII=";
-      "candle-core-0.3.3" = "sha256-umWvG+82B793PQtY9VeHjPTtTVmSPdts25buw4v4TQc=";
-      "candle-kernels-0.3.1" = "sha256-KlkjTUcbnP+uZoA0fDZlEPT5qKC2ogMAuR8X14xRFgA=";
       "hf-hub-0.3.2" = "sha256-tsn76b+/HRvPnZ7cWd8SBcEdnMPtjUEIRJipOJUbz54=";
-      "tokenizers-0.14.1" = "sha256-cq7dQLttNkV5UUhXujxKKMuzhD7hz+zTTKxUKlvz1s0=";
+      "tokenizers-0.15.2" = "sha256-lWvCu2hDJFzK6IUBJ4yeL4eZkOA08LHEMfiKXVvkog8=";
     };
   };
 
   # Default features include mini dashboard which downloads something from the internet.
   buildNoDefaultFeatures = true;
 
-  nativeBuildInputs = [
-    rustPlatform.bindgenHook
-  ];
+  nativeBuildInputs = [ rustPlatform.bindgenHook ];
 
   buildInputs = lib.optionals stdenv.isDarwin [
-    Security SystemConfiguration
+    Security
+    SystemConfiguration
   ];
 
   passthru = {
@@ -57,13 +54,18 @@ rustPlatform.buildRustPackage {
   # Tests will try to compile with mini-dashboard features which downloads something from the internet.
   doCheck = false;
 
-  meta = with lib; {
+  meta = {
     description = "Powerful, fast, and an easy to use search engine";
     mainProgram = "meilisearch";
     homepage = "https://docs.meilisearch.com/";
     changelog = "https://github.com/meilisearch/meilisearch/releases/tag/v${version}";
-    license = licenses.mit;
-    maintainers = with maintainers; [ happysalada ];
-    platforms = [ "aarch64-linux" "aarch64-darwin" "x86_64-linux" "x86_64-darwin" ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ happysalada ];
+    platforms = [
+      "aarch64-linux"
+      "aarch64-darwin"
+      "x86_64-linux"
+      "x86_64-darwin"
+    ];
   };
 }
diff --git a/pkgs/servers/search/qdrant/Cargo.lock b/pkgs/servers/search/qdrant/Cargo.lock
index 4cdac0d8b37c2..3daf47e49fcbb 100644
--- a/pkgs/servers/search/qdrant/Cargo.lock
+++ b/pkgs/servers/search/qdrant/Cargo.lock
@@ -59,9 +59,9 @@ dependencies = [
 
 [[package]]
 name = "actix-http"
-version = "3.6.0"
+version = "3.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d223b13fd481fc0d1f83bb12659ae774d9e3601814c68a0bc539731698cca743"
+checksum = "4eb9843d84c775696c37d9a418bbb01b932629d01870722c0f13eb3f95e2536d"
 dependencies = [
  "actix-codec",
  "actix-rt",
@@ -69,7 +69,7 @@ dependencies = [
  "actix-tls",
  "actix-utils",
  "ahash",
- "base64 0.21.0",
+ "base64 0.22.0",
  "bitflags 2.4.1",
  "brotli",
  "bytes",
@@ -147,13 +147,15 @@ dependencies = [
 
 [[package]]
 name = "actix-router"
-version = "0.5.1"
+version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d66ff4d247d2b160861fa2866457e85706833527840e4133f8f49aa423a38799"
+checksum = "13d324164c51f63867b57e73ba5936ea151b8a41a1d23d1031eeb9f70d0236f8"
 dependencies = [
  "bytestring",
+ "cfg-if",
  "http 0.2.9",
  "regex",
+ "regex-lite",
  "serde",
  "tracing",
 ]
@@ -199,9 +201,9 @@ dependencies = [
 
 [[package]]
 name = "actix-tls"
-version = "3.3.0"
+version = "3.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4cce60a2f2b477bc72e5cde0af1812a6e82d8fd85b5570a5dcf2a5bf2c5be5f"
+checksum = "ac453898d866cdbecdbc2334fe1738c747b4eba14a677261f2b768ba05329389"
 dependencies = [
  "actix-rt",
  "actix-service",
@@ -211,7 +213,7 @@ dependencies = [
  "pin-project-lite",
  "rustls-pki-types",
  "tokio",
- "tokio-rustls 0.25.0",
+ "tokio-rustls 0.26.0",
  "tokio-util",
  "tracing",
 ]
@@ -228,9 +230,9 @@ dependencies = [
 
 [[package]]
 name = "actix-web"
-version = "4.5.1"
+version = "4.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43a6556ddebb638c2358714d853257ed226ece6023ef9364f23f0c70737ea984"
+checksum = "b1cf67dadb19d7c95e5a299e2dda24193b89d5d4f33a3b9800888ede9e19aa32"
 dependencies = [
  "actix-codec",
  "actix-http",
@@ -258,6 +260,7 @@ dependencies = [
  "once_cell",
  "pin-project-lite",
  "regex",
+ "regex-lite",
  "serde",
  "serde_json",
  "serde_urlencoded",
@@ -460,17 +463,17 @@ checksum = "34fde25430d87a9388dadbe6e34d7f72a462c8b43ac8d309b42b0a8505d7e2a5"
 
 [[package]]
 name = "anyhow"
-version = "1.0.82"
+version = "1.0.86"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519"
+checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
 
 [[package]]
 name = "api"
-version = "1.9.0"
+version = "1.9.4"
 dependencies = [
  "chrono",
  "common",
- "log",
+ "itertools 0.12.1",
  "parking_lot",
  "prost 0.11.9",
  "prost-build 0.11.9",
@@ -760,9 +763,9 @@ dependencies = [
 
 [[package]]
 name = "brotli"
-version = "3.3.4"
+version = "6.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68"
+checksum = "74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b"
 dependencies = [
  "alloc-no-stdlib",
  "alloc-stdlib",
@@ -771,9 +774,9 @@ dependencies = [
 
 [[package]]
 name = "brotli-decompressor"
-version = "2.3.2"
+version = "4.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59ad2d4653bf5ca36ae797b1f4bb4dbddb60ce49ca4aed8a2ce4829f60425b80"
+checksum = "e6221fe77a248b9117d431ad93761222e1cf8ff282d9d1d5d9f53d6299a1cf76"
 dependencies = [
  "alloc-no-stdlib",
  "alloc-stdlib",
@@ -850,12 +853,13 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
 
 [[package]]
 name = "cc"
-version = "1.0.83"
+version = "1.0.98"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
 dependencies = [
  "jobserver",
  "libc",
+ "once_cell",
 ]
 
 [[package]]
@@ -970,7 +974,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "213030a2b5a4e0c0892b6652260cf6ccac84827b83a85a534e178e3906c4cf1b"
 dependencies = [
  "ciborium-io",
- "half",
+ "half 1.8.2",
 ]
 
 [[package]]
@@ -1048,19 +1052,24 @@ dependencies = [
 name = "collection"
 version = "0.4.2"
 dependencies = [
+ "actix-files",
+ "actix-web",
  "actix-web-validator",
  "api",
  "approx",
  "arc-swap",
  "async-trait",
  "atomicwrites",
+ "bitvec",
  "bytes",
  "cancel",
  "chrono",
+ "collection",
  "common",
  "criterion",
  "env_logger",
  "fnv",
+ "fs4",
  "fs_extra",
  "futures",
  "hashring",
@@ -1072,6 +1081,7 @@ dependencies = [
  "lazy_static",
  "log",
  "merge",
+ "object_store",
  "ordered-float 4.2.0",
  "parking_lot",
  "pprof",
@@ -1087,6 +1097,7 @@ dependencies = [
  "serde_cbor",
  "serde_json",
  "sha2",
+ "smallvec",
  "sparse",
  "strum",
  "tar",
@@ -1264,6 +1275,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "core-foundation"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
 name = "core-foundation-sys"
 version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1520,6 +1541,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "dataset"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "flate2",
+ "indicatif",
+ "reqwest",
+]
+
+[[package]]
 name = "debugid"
 version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1568,6 +1599,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "doc-comment"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
+
+[[package]]
 name = "docopt"
 version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1785,9 +1822,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
 
 [[package]]
 name = "flate2"
-version = "1.0.28"
+version = "1.0.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
+checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae"
 dependencies = [
  "crc32fast",
  "miniz_oxide 0.7.1",
@@ -1843,9 +1880,9 @@ dependencies = [
 
 [[package]]
 name = "fs4"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21dabded2e32cd57ded879041205c60a4a4c4bab47bd0fd2fa8b01f30849f02b"
+checksum = "73969b81e8bc90a3828d913dd3973d80771bfb9d7fbe1a78a79122aad456af15"
 dependencies = [
  "rustix 0.38.31",
  "windows-sys 0.52.0",
@@ -2163,6 +2200,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
 
 [[package]]
+name = "half"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888"
+dependencies = [
+ "cfg-if",
+ "crunchy",
+ "num-traits",
+ "serde",
+]
+
+[[package]]
 name = "hash32"
 version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2195,9 +2244,9 @@ dependencies = [
 
 [[package]]
 name = "hashring"
-version = "0.3.3"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa283406d74fcfeb4778f4e300beaae30db96793371da168d003cbc833e149e0"
+checksum = "a2e670d8fa425ec0d91dae7d6ab4a32721e775060a5d2d7cd572a9f0736dfddc"
 dependencies = [
  "siphasher",
 ]
@@ -2551,7 +2600,7 @@ dependencies = [
  "log",
  "num-format",
  "once_cell",
- "quick-xml",
+ "quick-xml 0.26.0",
  "rgb",
  "str_stack",
 ]
@@ -2586,6 +2635,7 @@ version = "0.0.0"
 dependencies = [
  "atomicwrites",
  "bincode",
+ "semver",
  "serde",
  "serde_json",
  "thiserror",
@@ -2604,9 +2654,9 @@ dependencies = [
 
 [[package]]
 name = "io-uring"
-version = "0.6.3"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9febecd4aebbe9c7c23c8e536e966805fdf09944c8a915e7991ee51acb67087"
+checksum = "595a0399f411a508feb2ec1e970a4a30c249351e30208960d58298de8660b0e5"
 dependencies = [
  "bitflags 1.3.2",
  "libc",
@@ -2655,7 +2705,6 @@ dependencies = [
  "dashmap",
  "http 1.0.0",
  "http-serde",
- "log",
  "schemars",
  "serde",
  "serde_json",
@@ -2703,9 +2752,9 @@ dependencies = [
 
 [[package]]
 name = "jobserver"
-version = "0.1.25"
+version = "0.1.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b"
+checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e"
 dependencies = [
  "libc",
 ]
@@ -3131,6 +3180,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40"
 
 [[package]]
+name = "md-5"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
+dependencies = [
+ "cfg-if",
+ "digest",
+]
+
+[[package]]
 name = "memchr"
 version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3367,9 +3426,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.18"
+version = "0.2.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
 dependencies = [
  "autocfg",
  "libm",
@@ -3401,6 +3460,36 @@ dependencies = [
 ]
 
 [[package]]
+name = "object_store"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbebfd32c213ba1907fa7a9c9138015a8de2b43e30c5aa45b18f7deb46786ad6"
+dependencies = [
+ "async-trait",
+ "base64 0.22.0",
+ "bytes",
+ "chrono",
+ "futures",
+ "humantime",
+ "hyper 1.2.0",
+ "itertools 0.12.1",
+ "md-5",
+ "parking_lot",
+ "percent-encoding",
+ "quick-xml 0.31.0",
+ "rand 0.8.5",
+ "reqwest",
+ "ring 0.17.5",
+ "serde",
+ "serde_json",
+ "snafu",
+ "tokio",
+ "tracing",
+ "url",
+ "walkdir",
+]
+
+[[package]]
 name = "once_cell"
 version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3413,6 +3502,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
 
 [[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
 name = "ordered-float"
 version = "2.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3448,9 +3543,9 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
 
 [[package]]
 name = "parking_lot"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
 dependencies = [
  "lock_api",
  "parking_lot_core",
@@ -3752,9 +3847,9 @@ dependencies = [
 
 [[package]]
 name = "prettyplease"
-version = "0.2.4"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ceca8aaf45b5c46ec7ed39fff75f57290368c1846d33d24a122ca81416ab058"
+checksum = "8d3928fb5db768cb86f891ff014f0144589297e3c6a1aba6ed7cecfdace270c7"
 dependencies = [
  "proc-macro2",
  "syn 2.0.48",
@@ -3818,9 +3913,9 @@ dependencies = [
 
 [[package]]
 name = "prometheus"
-version = "0.13.3"
+version = "0.13.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c"
+checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1"
 dependencies = [
  "cfg-if",
  "fnv",
@@ -3907,7 +4002,7 @@ dependencies = [
  "multimap",
  "once_cell",
  "petgraph",
- "prettyplease 0.2.4",
+ "prettyplease 0.2.17",
  "prost 0.12.3",
  "prost-types 0.12.3",
  "regex",
@@ -4047,7 +4142,7 @@ dependencies = [
 
 [[package]]
 name = "qdrant"
-version = "1.9.0"
+version = "1.9.4"
 dependencies = [
  "actix-cors",
  "actix-files",
@@ -4081,7 +4176,7 @@ dependencies = [
  "rand 0.8.5",
  "reqwest",
  "rstack-self",
- "rustls 0.22.4",
+ "rustls 0.23.8",
  "rustls-pemfile 2.1.2",
  "rustls-pki-types",
  "rusty-hook",
@@ -4096,7 +4191,6 @@ dependencies = [
  "slog-stdlog",
  "storage",
  "sys-info",
- "tar",
  "tempfile",
  "thiserror",
  "tikv-jemallocator",
@@ -4143,6 +4237,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "quick-xml"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
+dependencies = [
+ "memchr",
+ "serde",
+]
+
+[[package]]
 name = "quote"
 version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4333,6 +4437,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "regex-lite"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30b661b2f27137bdbc16f00eda72866a92bb28af1753ffbd56744fb6e2e9cd8e"
+
+[[package]]
 name = "regex-syntax"
 version = "0.6.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4358,9 +4468,9 @@ checksum = "4bf2521270932c3c7bed1a59151222bd7643c79310f2916f01925e1e16255698"
 
 [[package]]
 name = "reqwest"
-version = "0.12.3"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e6cc1e89e689536eb5aeede61520e874df5a4707df811cd5da4aa5fbb2aae19"
+checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10"
 dependencies = [
  "base64 0.22.0",
  "bytes",
@@ -4382,6 +4492,7 @@ dependencies = [
  "percent-encoding",
  "pin-project-lite",
  "rustls 0.22.4",
+ "rustls-native-certs",
  "rustls-pemfile 2.1.2",
  "rustls-pki-types",
  "serde",
@@ -4447,9 +4558,9 @@ checksum = "3df6368f71f205ff9c33c076d170dd56ebf68e8161c733c0caa07a7a5509ed53"
 
 [[package]]
 name = "rmp"
-version = "0.8.11"
+version = "0.8.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f"
+checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4"
 dependencies = [
  "byteorder",
  "num-traits",
@@ -4458,9 +4569,9 @@ dependencies = [
 
 [[package]]
 name = "rmp-serde"
-version = "1.1.2"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bffea85eea980d8a74453e5d02a8d93028f3c34725de143085a844ebe953258a"
+checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db"
 dependencies = [
  "byteorder",
  "rmp",
@@ -4641,12 +4752,40 @@ dependencies = [
  "log",
  "ring 0.17.5",
  "rustls-pki-types",
- "rustls-webpki 0.102.2",
+ "rustls-webpki 0.102.4",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "rustls"
+version = "0.23.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79adb16721f56eb2d843e67676896a61ce7a0fa622dc18d3e372477a029d2740"
+dependencies = [
+ "log",
+ "once_cell",
+ "ring 0.17.5",
+ "rustls-pki-types",
+ "rustls-webpki 0.102.4",
  "subtle",
  "zeroize",
 ]
 
 [[package]]
+name = "rustls-native-certs"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792"
+dependencies = [
+ "openssl-probe",
+ "rustls-pemfile 2.1.2",
+ "rustls-pki-types",
+ "schannel",
+ "security-framework",
+]
+
+[[package]]
 name = "rustls-pemfile"
 version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4667,9 +4806,9 @@ dependencies = [
 
 [[package]]
 name = "rustls-pki-types"
-version = "1.4.1"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247"
+checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d"
 
 [[package]]
 name = "rustls-webpki"
@@ -4683,9 +4822,9 @@ dependencies = [
 
 [[package]]
 name = "rustls-webpki"
-version = "0.102.2"
+version = "0.102.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610"
+checksum = "ff448f7e92e913c4b7d4c6d8e4540a1724b319b4152b8aef6d4cf8339712b33e"
 dependencies = [
  "ring 0.17.5",
  "rustls-pki-types",
@@ -4750,10 +4889,28 @@ dependencies = [
 ]
 
 [[package]]
+name = "scc"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec96560eea317a9cc4e0bb1f6a2c93c09a19b8c4fc5cb3fcc0ec1c094cd783e2"
+dependencies = [
+ "sdd",
+]
+
+[[package]]
+name = "schannel"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "schemars"
-version = "0.8.16"
+version = "0.8.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29"
+checksum = "b0218ceea14babe24a4a5836f86ade86c1effbc198164e619194cb5069187e29"
 dependencies = [
  "chrono",
  "dyn-clone",
@@ -4768,14 +4925,14 @@ dependencies = [
 
 [[package]]
 name = "schemars_derive"
-version = "0.8.16"
+version = "0.8.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967"
+checksum = "3ed5a1ccce8ff962e31a165d41f6e2a2dd1245099dc4d594f5574a86cd90f4d3"
 dependencies = [
  "proc-macro2",
  "quote",
  "serde_derive_internals",
- "syn 1.0.107",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -4807,6 +4964,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "sdd"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b84345e4c9bd703274a082fb80caaa99b7612be48dfaa1dd9266577ec412309d"
+
+[[package]]
 name = "seahash"
 version = "4.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4835,6 +4998,29 @@ dependencies = [
 ]
 
 [[package]]
+name = "security-framework"
+version = "2.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "core-foundation-sys",
+ "libc",
+ "security-framework-sys",
+]
+
+[[package]]
+name = "security-framework-sys"
+version = "2.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
 name = "segment"
 version = "0.6.0"
 dependencies = [
@@ -4844,20 +5030,26 @@ dependencies = [
  "bincode",
  "bitpacking",
  "bitvec",
+ "cc",
  "cgroups-rs",
  "charabia",
  "chrono",
  "common",
  "criterion",
+ "dataset",
  "fnv",
  "fs_extra",
  "generic-tests",
  "geo",
  "geohash",
+ "half 2.4.1",
+ "http 1.0.0",
  "indexmap 2.2.6",
+ "indicatif",
  "io",
  "io-uring",
  "is_sorted",
+ "issues",
  "itertools 0.12.1",
  "log",
  "macro_rules_attribute",
@@ -4881,14 +5073,16 @@ dependencies = [
  "rstest",
  "schemars",
  "seahash",
- "semver",
+ "segment",
  "serde",
+ "serde-untagged",
  "serde-value",
  "serde_cbor",
  "serde_json",
  "smallvec",
  "smol_str",
  "sparse",
+ "strum",
  "sysinfo",
  "tar",
  "tempfile",
@@ -4902,23 +5096,34 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.22"
+version = "1.0.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
+checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "serde"
-version = "1.0.197"
+version = "1.0.202"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
+checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
+name = "serde-untagged"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2676ba99bd82f75cae5cbd2c8eda6fa0b8760f18978ea840e980dd5567b5c5b6"
+dependencies = [
+ "erased-serde",
+ "serde",
+ "typeid",
+]
+
+[[package]]
 name = "serde-value"
 version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4934,15 +5139,15 @@ version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5"
 dependencies = [
- "half",
+ "half 1.8.2",
  "serde",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.197"
+version = "1.0.202"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
+checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4951,20 +5156,20 @@ dependencies = [
 
 [[package]]
 name = "serde_derive_internals"
-version = "0.26.0"
+version = "0.29.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c"
+checksum = "330f01ce65a3a5fe59a60c82f3c9a024b573b8a6e875bd233fe5f934e71d54e3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.107",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.115"
+version = "1.0.117"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd"
+checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
 dependencies = [
  "itoa",
  "ryu",
@@ -5016,21 +5221,21 @@ dependencies = [
 
 [[package]]
 name = "serial_test"
-version = "3.0.0"
+version = "3.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "953ad9342b3aaca7cb43c45c097dd008d4907070394bd0751a0aa8817e5a018d"
+checksum = "4b4b487fe2acf240a021cf57c6b2b4903b1e78ca0ecd862a71b71d2a51fed77d"
 dependencies = [
- "dashmap",
- "lazy_static",
+ "once_cell",
  "parking_lot",
+ "scc",
  "serial_test_derive",
 ]
 
 [[package]]
 name = "serial_test_derive"
-version = "3.0.0"
+version = "3.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212"
+checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -5152,14 +5357,36 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "smol_str"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6845563ada680337a52d43bb0b29f396f2d911616f6573012645b9e3d048a49"
+checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead"
 dependencies = [
  "serde",
 ]
 
 [[package]]
+name = "snafu"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4de37ad025c587a29e8f3f5605c00f70b98715ef90b9061a815b9e59e9042d6"
+dependencies = [
+ "doc-comment",
+ "snafu-derive",
+]
+
+[[package]]
+name = "snafu-derive"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
+]
+
+[[package]]
 name = "socket2"
 version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5195,16 +5422,24 @@ dependencies = [
 name = "sparse"
 version = "0.1.0"
 dependencies = [
+ "bitpacking",
  "common",
+ "criterion",
+ "dataset",
+ "indicatif",
  "io",
  "itertools 0.12.1",
+ "log",
  "memmap2 0.9.4",
  "memory",
  "ordered-float 4.2.0",
  "parking_lot",
+ "pprof",
  "rand 0.8.5",
  "schemars",
  "serde",
+ "serde_json",
+ "sparse",
  "tempfile",
  "validator",
 ]
@@ -5249,6 +5484,7 @@ dependencies = [
  "futures",
  "http 0.2.9",
  "io",
+ "issues",
  "itertools 0.12.1",
  "log",
  "memory",
@@ -5386,9 +5622,9 @@ dependencies = [
 
 [[package]]
 name = "sysinfo"
-version = "0.30.10"
+version = "0.30.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26d7c217777061d5a2d652aea771fb9ba98b6dade657204b08c4b9604d11555b"
+checksum = "732ffa00f53e6b2af46208fba5718d9662a421049204e156328b66791ffa15ae"
 dependencies = [
  "cfg-if",
  "core-foundation-sys",
@@ -5449,18 +5685,18 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.58"
+version = "1.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
+checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.58"
+version = "1.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
+checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -5480,9 +5716,9 @@ dependencies = [
 
 [[package]]
 name = "thread-priority"
-version = "0.16.0"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a617e9eeeb20448b01a8e2427fb80dfbc9c49d79a1de3b11f25731edbf547e3c"
+checksum = "0d3b04d33c9633b8662b167b847c7ab521f83d1ae20f2321b65b5b925e532e36"
 dependencies = [
  "bitflags 2.4.1",
  "cfg-if",
@@ -5647,6 +5883,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "tokio-rustls"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4"
+dependencies = [
+ "rustls 0.23.8",
+ "rustls-pki-types",
+ "tokio",
+]
+
+[[package]]
 name = "tokio-stream"
 version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5659,16 +5906,15 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.7.10"
+version = "0.7.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
+checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1"
 dependencies = [
  "bytes",
  "futures-core",
  "futures-sink",
  "pin-project-lite",
  "tokio",
- "tracing",
 ]
 
 [[package]]
@@ -5751,7 +5997,7 @@ version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9d021fc044c18582b9a2408cd0dd05b1596e3ecdb5c4df822bb0183545683889"
 dependencies = [
- "prettyplease 0.2.4",
+ "prettyplease 0.2.17",
  "proc-macro2",
  "prost-build 0.12.3",
  "quote",
@@ -5904,6 +6150,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
 
 [[package]]
+name = "typeid"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "059d83cc991e7a42fc37bd50941885db0888e34209f8cfd9aab07ddec03bc9cf"
+
+[[package]]
 name = "typenum"
 version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6031,7 +6283,7 @@ dependencies = [
  "once_cell",
  "rustls 0.22.4",
  "rustls-pki-types",
- "rustls-webpki 0.102.2",
+ "rustls-webpki 0.102.4",
  "url",
  "webpki-roots",
 ]
@@ -6154,7 +6406,7 @@ dependencies = [
  "memmap2 0.9.4",
  "rand 0.8.5",
  "rand_distr",
- "rustix 0.37.27",
+ "rustix 0.38.31",
  "serde",
 ]
 
diff --git a/pkgs/servers/search/qdrant/default.nix b/pkgs/servers/search/qdrant/default.nix
index 8a9ec8e3a4591..79c541145bd2e 100644
--- a/pkgs/servers/search/qdrant/default.nix
+++ b/pkgs/servers/search/qdrant/default.nix
@@ -13,13 +13,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "qdrant";
-  version = "1.9.0";
+  version = "1.9.4";
 
   src = fetchFromGitHub {
     owner = "qdrant";
     repo = "qdrant";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-SirqQW/OxFvsyra80znSDakHwFjHk2YkpAaNwXnbK60=";
+    sha256 = "sha256-jpZJtnQx8r9j12GObXxcpzH0i1rJe46qYodLhWlWLMY=";
   };
 
   cargoLock = {
diff --git a/pkgs/servers/search/quickwit/Cargo.lock b/pkgs/servers/search/quickwit/Cargo.lock
index 6de7a8e9c6444..db5e22e698f2f 100644
--- a/pkgs/servers/search/quickwit/Cargo.lock
+++ b/pkgs/servers/search/quickwit/Cargo.lock
@@ -1240,7 +1240,7 @@ dependencies = [
 [[package]]
 name = "chitchat"
 version = "0.8.0"
-source = "git+https://github.com/quickwit-oss/chitchat.git?rev=f783620#f78362008b4b5522181c77e830f585c9d9e8b799"
+source = "git+https://github.com/quickwit-oss/chitchat.git?rev=d039699#d03969982e1c199aa05cb8e4f86d8d83118057ff"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -5441,7 +5441,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-actors"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -5461,7 +5461,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-aws"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "async-trait",
  "aws-config",
@@ -5483,7 +5483,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-cli"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -5541,7 +5541,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-cluster"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -5570,7 +5570,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-codegen"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "anyhow",
  "futures",
@@ -5587,7 +5587,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-codegen-example"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -5614,7 +5614,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-common"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "anyhow",
  "async-speed-limit",
@@ -5652,7 +5652,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-config"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "anyhow",
  "bytes",
@@ -5686,7 +5686,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-control-plane"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -5724,7 +5724,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-datetime"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "anyhow",
  "itertools 0.12.1",
@@ -5738,7 +5738,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-directories"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -5759,7 +5759,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-doc-mapper"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "anyhow",
  "base64 0.21.7",
@@ -5794,7 +5794,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-index-management"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -5826,7 +5826,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-indexing"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "anyhow",
  "arc-swap",
@@ -5891,7 +5891,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-ingest"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -5931,7 +5931,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-integration-tests"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "anyhow",
  "bytes",
@@ -5964,7 +5964,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-jaeger"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -5998,7 +5998,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-janitor"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -6035,7 +6035,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-lambda"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "anyhow",
  "aws_lambda_events",
@@ -6075,7 +6075,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-macros"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -6084,7 +6084,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-metastore"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -6127,7 +6127,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-opentelemetry"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -6151,7 +6151,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-proto"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -6188,7 +6188,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-query"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "anyhow",
  "base64 0.21.7",
@@ -6214,7 +6214,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-rest-client"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "anyhow",
  "bytes",
@@ -6238,7 +6238,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-search"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "anyhow",
  "assert-json-diff 2.0.2",
@@ -6290,7 +6290,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-serve"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "anyhow",
  "assert-json-diff 2.0.2",
@@ -6359,7 +6359,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-storage"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -6407,7 +6407,7 @@ dependencies = [
 
 [[package]]
 name = "quickwit-telemetry"
-version = "0.8.0"
+version = "0.8.2"
 dependencies = [
  "async-trait",
  "encoding_rs",
diff --git a/pkgs/servers/search/quickwit/default.nix b/pkgs/servers/search/quickwit/default.nix
index 5e205b40bac5d..ccc32cb90056e 100644
--- a/pkgs/servers/search/quickwit/default.nix
+++ b/pkgs/servers/search/quickwit/default.nix
@@ -2,26 +2,68 @@
 , lib
 , fetchFromGitHub
 , rustPlatform
+, nixosTests
 , nix-update-script
 , protobuf
 , rust-jemalloc-sys
 , Security
+, nodejs
+, yarn
+, fetchYarnDeps
+, fixup-yarn-lock
 }:
 
 let
   pname = "quickwit";
-  version = "0.8.0";
-in
-rustPlatform.buildRustPackage rec {
-  inherit pname version;
+  version = "0.8.2";
+
+  yarnOfflineCache = fetchYarnDeps {
+    yarnLock = "${src}/quickwit/quickwit-ui/yarn.lock";
+    hash = "sha256-HppK9ycUxCOIagvzCmE+VfcmfMQfPIC8WeWM6WbA6fQ=";
+  };
 
   src = fetchFromGitHub {
     owner = "quickwit-oss";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-FZVGQfDuQYIdRnCsBZvXeLbJBdcLugZeHNm+kf6L9SY=";
+    hash = "sha256-OrCO0mCFmhYBdpr4Gps56KJJ37uuJpV6ZJHWspOScyw=";
   };
 
+  quickwit-ui = stdenv.mkDerivation {
+    name = "quickwit-ui";
+    src = "${src}/quickwit/quickwit-ui";
+
+    nativeBuildInputs = [
+      nodejs
+      yarn
+      fixup-yarn-lock
+    ];
+
+    configurePhase = ''
+      export HOME=$(mktemp -d)
+    '';
+
+    buildPhase = ''
+      yarn config --offline set yarn-offline-mirror ${yarnOfflineCache}
+      fixup-yarn-lock yarn.lock
+
+      yarn install --offline \
+        --frozen-lockfile --no-progress \
+        --ignore-engines --ignore-scripts
+      patchShebangs .
+
+      yarn build
+    '';
+
+    installPhase = ''
+      mkdir $out
+      mv build/* $out
+    '';
+  };
+in
+rustPlatform.buildRustPackage rec {
+  inherit pname version src;
+
   postPatch = ''
     substituteInPlace ./quickwit-ingest/build.rs \
       --replace-fail '.with_protos' '.with_includes(&["."]).with_protos'
@@ -33,6 +75,11 @@ rustPlatform.buildRustPackage rec {
 
   sourceRoot = "${src.name}/quickwit";
 
+  preBuild = ''
+    mkdir -p quickwit-ui/build
+    cp -r ${quickwit-ui}/* quickwit-ui/build
+  '';
+
   buildInputs = [
     rust-jemalloc-sys
   ] ++ lib.optionals stdenv.isDarwin [ Security ];
@@ -40,7 +87,7 @@ rustPlatform.buildRustPackage rec {
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "chitchat-0.8.0" = "sha256-cjwKaBXoztYUXgnJvtFH+OSQU6tl2U3zKFWX324+9wo=";
+      "chitchat-0.8.0" = "sha256-6K2noPoFaDnOxQIEV1WbmVPfRGwlI/WS1OWSBH2qb1Q=";
       "mrecordlog-0.4.0" = "sha256-9LIVs+BqK9FLSfHL3vm9LL+/FXIXJ6v617QLv4luQik=";
       "ownedbytes-0.6.0" = "sha256-in18/NYYIgUiZ9sm8NgJlebWidRp34DR7AhOD1Nh0aw=";
       "pulsar-5.0.2" = "sha256-j7wpsAro6x4fk3pvSL4fxLkddJFq8duZ7jDj0Edf3YQ=";
@@ -49,11 +96,20 @@ rustPlatform.buildRustPackage rec {
     };
   };
 
+  CARGO_PROFILE_RELEASE_LTO = "fat";
+  CARGO_PROFILE_RELEASE_CODEGEN_UNITS = "1";
+
   # needed for internal protobuf c wrapper library
   PROTOC = "${protobuf}/bin/protoc";
   PROTOC_INCLUDE = "${protobuf}/include";
 
-  passthru.updateScript = nix-update-script { };
+  passthru = {
+    tests = {
+      inherit (nixosTests) quickwit;
+      inherit (nixosTests.vector) syslog-quickwit;
+    };
+    updateScript = nix-update-script { };
+  };
 
   checkFlags = [
     # tries to make a network access
@@ -72,6 +128,7 @@ rustPlatform.buildRustPackage rec {
     "--skip=object_storage::s3_compatible_storage::tests::test_s3_compatible_storage_relative_path"
     # flaky test
     "--skip=actors::indexer::tests::test_indexer_triggers_commit_on_drained_mailbox"
+    "--skip=actors::indexer::tests::test_indexer_triggers_commit_on_timeout"
     "--skip=actors::indexer::tests::test_indexer_partitioning"
     "--skip=actors::indexing_pipeline::tests::test_merge_pipeline_does_not_stop_on_indexing_pipeline_failure"
     "--skip=actors::indexer::tests::test_indexer_triggers_commit_on_target_num_docs"
diff --git a/pkgs/servers/search/sonic-server/default.nix b/pkgs/servers/search/sonic-server/default.nix
index cbe8b431fa930..cb5521e9dfe8a 100644
--- a/pkgs/servers/search/sonic-server/default.nix
+++ b/pkgs/servers/search/sonic-server/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sonic-server";
-  version = "1.4.8";
+  version = "1.4.9";
 
   src = fetchFromGitHub {
     owner = "valeriansaliou";
     repo = "sonic";
     rev = "refs/tags/v${version}";
-    hash = "sha256-kNuLcImowjoptNQI12xHD6Tv+LLYdwlpauqYviKw6Xk=";
+    hash = "sha256-PTujR3ciLRvbpiqStNMx3W5fkUdW2dsGmCj/iFRTKJM=";
   };
 
-  cargoHash = "sha256-9XSRb5RB82L72RzRWPJ45AJahkRnLwAL7lI2QFqbeko=";
+  cargoHash = "sha256-bH9u38gvH6QEySQ3XFXEHBiSqKKtB+kjcZRLjx4Z6XM=";
 
   # Found argument '--test-threads' which wasn't expected, or isn't valid in this context
   doCheck = false;
diff --git a/pkgs/servers/search/sphinxsearch/default.nix b/pkgs/servers/search/sphinxsearch/default.nix
index a44f96db7026a..33725697d7999 100644
--- a/pkgs/servers/search/sphinxsearch/default.nix
+++ b/pkgs/servers/search/sphinxsearch/default.nix
@@ -40,9 +40,9 @@ stdenv.mkDerivation rec {
   ]);
 
   meta = {
-    description = "An open source full text search server";
+    description = "Open source full text search server";
     homepage    = "http://sphinxsearch.com";
-    license     = lib.licenses.gpl2;
+    license     = lib.licenses.gpl2Plus;
     platforms   = lib.platforms.all;
     maintainers = with lib.maintainers; [ ederoyd46 valodim ];
   };
diff --git a/pkgs/servers/search/typesense/default.nix b/pkgs/servers/search/typesense/default.nix
index 7a4256d81278b..762cc190f242f 100644
--- a/pkgs/servers/search/typesense/default.nix
+++ b/pkgs/servers/search/typesense/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://typesense.org";
-    description = "Typesense is a fast, typo-tolerant search engine for building delightful search experiences.";
+    description = "Typesense is a fast, typo-tolerant search engine for building delightful search experiences";
     mainProgram = "typesense-server";
     license = licenses.gpl3;
     # There has been an attempt at building this from source, which were deemed
diff --git a/pkgs/servers/search/weaviate/default.nix b/pkgs/servers/search/weaviate/default.nix
index a15ed6f5ced48..8e447e16bece7 100644
--- a/pkgs/servers/search/weaviate/default.nix
+++ b/pkgs/servers/search/weaviate/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "weaviate";
-  version = "1.25.0";
+  version = "1.25.2";
 
   src = fetchFromGitHub {
     owner = "weaviate";
     repo = "weaviate";
     rev = "v${version}";
-    hash = "sha256-3ZjsFIxrlDCkbiIPNH+nkCwl9SEGA1h6632ZlIc9HBc=";
+    hash = "sha256-fN0tlu6zhSy6SiFX+f38TL8ciJHYfKZXVYeJp2HgRIA=";
   };
 
   vendorHash = "sha256-4QSc4dU1bEpKpiG7FwSq/BbnFL94DqgjQo6zN67d8Sw=";
@@ -25,7 +25,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "The ML-first vector search engine";
+    description = "ML-first vector search engine";
     homepage = "https://github.com/semi-technologies/weaviate";
     license = licenses.bsd3;
     maintainers = with maintainers; [ dit7ya ];
diff --git a/pkgs/servers/search/zincsearch/default.nix b/pkgs/servers/search/zincsearch/default.nix
index ad95c1cf3d689..beef1758422f7 100644
--- a/pkgs/servers/search/zincsearch/default.nix
+++ b/pkgs/servers/search/zincsearch/default.nix
@@ -50,7 +50,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "A lightweight alternative to elasticsearch that requires minimal resources, written in Go";
+    description = "Lightweight alternative to elasticsearch that requires minimal resources, written in Go";
     mainProgram = "zincsearch";
     homepage = "https://zincsearch-docs.zinc.dev/";
     license = licenses.asl20;
diff --git a/pkgs/servers/sftpgo/default.nix b/pkgs/servers/sftpgo/default.nix
index 9e7f1b6b456cc..e51bbf5eb528c 100644
--- a/pkgs/servers/sftpgo/default.nix
+++ b/pkgs/servers/sftpgo/default.nix
@@ -58,8 +58,8 @@ buildGoModule rec {
       local filesystem, encrypted local filesystem, S3 (compatible) Object Storage,
       Google Cloud Storage, Azure Blob Storage, SFTP.
     '';
-    license = licenses.agpl3Only;
-    maintainers = with maintainers; [ thenonameguy yayayayaka ];
+    license = with licenses; [ agpl3Only unfreeRedistributable ]; # Software is AGPLv3, web UI is unfree
+    maintainers = with maintainers; [ thenonameguy ];
     mainProgram = "sftpgo";
   };
 }
diff --git a/pkgs/servers/shairport-sync/default.nix b/pkgs/servers/shairport-sync/default.nix
index 7e034c17f55e1..3d4d433bcd407 100644
--- a/pkgs/servers/shairport-sync/default.nix
+++ b/pkgs/servers/shairport-sync/default.nix
@@ -40,13 +40,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "shairport-sync";
-  version = "4.3.2";
+  version = "4.3.3";
 
   src = fetchFromGitHub {
     repo = "shairport-sync";
     owner = "mikebrady";
     rev = "refs/tags/${version}";
-    hash = "sha256-M7bJO8KVxP2H27aB0qJcsaN9uHADWeOYPdNo8Xfg9gc=";
+    hash = "sha256-sxYzFmI1Geoqckw+7XMXyvkizNVSlfvpWI7vMbCPT0U=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/servers/shishi/default.nix b/pkgs/servers/shishi/default.nix
index 1e93613808d5a..7bfa18a6e9bb4 100644
--- a/pkgs/servers/shishi/default.nix
+++ b/pkgs/servers/shishi/default.nix
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage    = "https://www.gnu.org/software/shishi/";
-    description = "An implementation of the Kerberos 5 network security system";
+    description = "Implementation of the Kerberos 5 network security system";
     license     = licenses.gpl3Plus;
     maintainers = with maintainers; [ lovek323 ];
     platforms   = platforms.linux;
diff --git a/pkgs/servers/sickbeard/sickgear.nix b/pkgs/servers/sickbeard/sickgear.nix
index 1ad5c7c26effa..f982b97057223 100644
--- a/pkgs/servers/sickbeard/sickgear.nix
+++ b/pkgs/servers/sickbeard/sickgear.nix
@@ -4,13 +4,13 @@ let
   pythonEnv = python3.withPackages(ps: with ps; [ cheetah3 lxml ]);
 in stdenv.mkDerivation rec {
   pname = "sickgear";
-  version = "3.30.19";
+  version = "3.31.0";
 
   src = fetchFromGitHub {
     owner = "SickGear";
     repo = "SickGear";
     rev = "release_${version}";
-    hash = "sha256-OC/BJ0wG6as1dt2dO9gUFD+FG85Vt2ehCoTcmh6iT7w=";
+    hash = "sha256-aJqEmSjmfJiFE0vz9fyDvjyvpbQiul+N8LD+j3f70/0=";
   };
 
   patches = [
@@ -32,7 +32,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The most reliable stable TV fork of the great Sick-Beard to fully automate TV enjoyment with innovation";
+    description = "Most reliable stable TV fork of the great Sick-Beard to fully automate TV enjoyment with innovation";
     mainProgram = "sickgear";
     license     = licenses.gpl3;
     homepage    = "https://github.com/SickGear/SickGear";
diff --git a/pkgs/servers/silc-server/default.nix b/pkgs/servers/silc-server/default.nix
index 53a2f47cf2adb..dcb5eb4e99904 100644
--- a/pkgs/servers/silc-server/default.nix
+++ b/pkgs/servers/silc-server/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     homepage = "http://silcnet.org/";
     description = "Secure Internet Live Conferencing server";
     mainProgram = "silcd";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [viric];
     platforms = with lib.platforms; linux;
   };
diff --git a/pkgs/servers/simplehttp2server/default.nix b/pkgs/servers/simplehttp2server/default.nix
index b14056f5adca1..3ec200a1d2016 100644
--- a/pkgs/servers/simplehttp2server/default.nix
+++ b/pkgs/servers/simplehttp2server/default.nix
@@ -1,26 +1,32 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, fetchpatch }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "simplehttp2server";
   version = "3.1.3";
 
-  goPackagePath = "github.com/GoogleChromeLabs/simplehttp2server";
-
   src = fetchFromGitHub {
-     owner = "GoogleChromeLabs";
-     repo = "simplehttp2server";
-     rev = version;
-     sha256 = "113mcfvy1m91wask5039mhr0187nlw325ac32785yl4bb4igi8aw";
+    owner = "GoogleChromeLabs";
+    repo = "simplehttp2server";
+    rev = version;
+    sha256 = "113mcfvy1m91wask5039mhr0187nlw325ac32785yl4bb4igi8aw";
   };
 
-  goDeps = ./deps.nix;
+  patches = [
+    # Migrate to Go modules
+    (fetchpatch {
+      url = "https://github.com/GoogleChromeLabs/simplehttp2server/commit/7090b4af33846c48b336335f6a19514b7c1d4392.patch";
+      hash = "sha256-xGBPNdAmOAUkr7j2VDfTi3Bm13y/b3nuqDLf1jiGct4=";
+    })
+  ];
+
+  vendorHash = "sha256-PcDy+46Pz6xOxxwkSjojsbKZyR1yHdbWAJT+HFAEKkA=";
+  proxyVendor = true;
 
   meta = with lib; {
-     homepage = "https://github.com/GoogleChromeLabs/simplehttp2server";
-     description = "HTTP/2 server for development purposes";
-     license = licenses.asl20;
-     maintainers = with maintainers; [ yrashk ];
-     mainProgram = "simplehttp2server";
+    homepage = "https://github.com/GoogleChromeLabs/simplehttp2server";
+    description = "HTTP/2 server for development purposes";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ yrashk ];
+    mainProgram = "simplehttp2server";
   };
-
 }
diff --git a/pkgs/servers/sip/freeswitch/default.nix b/pkgs/servers/sip/freeswitch/default.nix
index 8174e85c3a439..c139edbab98e1 100644
--- a/pkgs/servers/sip/freeswitch/default.nix
+++ b/pkgs/servers/sip/freeswitch/default.nix
@@ -1,5 +1,4 @@
 { fetchFromGitHub
-, fetchpatch
 , stdenv
 , lib
 , pkg-config
diff --git a/pkgs/servers/sks/default.nix b/pkgs/servers/sks/default.nix
index b40f76b26606d..6acb07c82a1af 100644
--- a/pkgs/servers/sks/default.nix
+++ b/pkgs/servers/sks/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   postInstall = "cp -R sampleWeb $webSamples";
 
   meta = with lib; {
-    description = "An easily deployable & decentralized OpenPGP keyserver";
+    description = "Easily deployable & decentralized OpenPGP keyserver";
     longDescription = ''
       SKS is an OpenPGP keyserver whose goal is to provide easy to deploy,
       decentralized, and highly reliable synchronization. That means that a key
diff --git a/pkgs/servers/skydns/default.nix b/pkgs/servers/skydns/default.nix
index 6d23a42abb143..73d0adef93705 100644
--- a/pkgs/servers/skydns/default.nix
+++ b/pkgs/servers/skydns/default.nix
@@ -26,7 +26,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "A distributed service for announcement and discovery of services";
+    description = "Distributed service for announcement and discovery of services";
     homepage = "https://github.com/skynetservices/skydns";
     license = lib.licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/servers/snac2/default.nix b/pkgs/servers/snac2/default.nix
index 31b3a0d907de9..fd35bb64452d0 100644
--- a/pkgs/servers/snac2/default.nix
+++ b/pkgs/servers/snac2/default.nix
@@ -10,14 +10,14 @@
 
 stdenv.mkDerivation rec {
   pname = "snac2";
-  version = "2.53";
+  version = "2.55";
 
   src = fetchFromGitea {
     domain = "codeberg.org";
     owner = "grunfink";
     repo = pname;
     rev = version;
-    hash = "sha256-YSopopSJIcONw4utEBWhrfVglD5rTdf/rGNICFBHTvo=";
+    hash = "sha256-mhypzpdIr4XxsVsUhx2SGi3RiKpWiiIRNZm44Dl4FRs=";
   };
 
   buildInputs = [ curl openssl ];
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://codeberg.org/grunfink/snac2";
-    description = "A simple, minimalistic ActivityPub instance (2.x, C)";
+    description = "Simple, minimalistic ActivityPub instance (2.x, C)";
     changelog = "https://codeberg.org/grunfink/snac2/src/tag/${version}/RELEASE_NOTES.md";
     license = licenses.mit;
     maintainers = with maintainers; [ misuzu ];
diff --git a/pkgs/servers/snappymail/default.nix b/pkgs/servers/snappymail/default.nix
index 19450e532d20f..d66b3cd2726d0 100644
--- a/pkgs/servers/snappymail/default.nix
+++ b/pkgs/servers/snappymail/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "snappymail";
-  version = "2.36.1";
+  version = "2.36.3";
 
   src = fetchurl {
     url = "https://github.com/the-djmaze/snappymail/releases/download/v${version}/snappymail-${version}.tar.gz";
-    sha256 = "sha256-Dj4lyg0z/Wfy+CUWHHJtSNHbitFmLJaLletxyiXdrmU=";
+    sha256 = "sha256-+8bw6pFbogM1955OO/w21KnJa+JlAALTRc2m1QAXObE=";
   };
 
   sourceRoot = "snappymail";
diff --git a/pkgs/servers/soft-serve/default.nix b/pkgs/servers/soft-serve/default.nix
index c29162090811c..1f7dc7a38f833 100644
--- a/pkgs/servers/soft-serve/default.nix
+++ b/pkgs/servers/soft-serve/default.nix
@@ -29,7 +29,7 @@ buildGoModule rec {
   passthru.tests = nixosTests.soft-serve;
 
   meta = with lib; {
-    description = "A tasty, self-hosted Git server for the command line";
+    description = "Tasty, self-hosted Git server for the command line";
     homepage = "https://github.com/charmbracelet/soft-serve";
     changelog = "https://github.com/charmbracelet/soft-serve/releases/tag/v${version}";
     mainProgram = "soft";
diff --git a/pkgs/servers/softether/default.nix b/pkgs/servers/softether/default.nix
index 2f80afc3701bc..976521f061d93 100644
--- a/pkgs/servers/softether/default.nix
+++ b/pkgs/servers/softether/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An Open-Source Free Cross-platform Multi-protocol VPN Program";
+    description = "Open-Source Free Cross-platform Multi-protocol VPN Program";
     homepage = "https://www.softether.org/";
     license = licenses.asl20;
     maintainers = [ maintainers.rick68 ];
diff --git a/pkgs/servers/sonarr/default.nix b/pkgs/servers/sonarr/default.nix
index cc59c9f27970d..b2ea1080c30b8 100644
--- a/pkgs/servers/sonarr/default.nix
+++ b/pkgs/servers/sonarr/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, dotnet-runtime, icu, ffmpeg, openssl, sqlite, curl, makeWrapper, nixosTests }:
+{ lib, stdenv, fetchurl, dotnet-runtime, icu, ffmpeg, openssl, sqlite, curl, makeWrapper, nixosTests, zlib }:
 
 let
   os = if stdenv.isDarwin then "osx" else "linux";
@@ -10,15 +10,15 @@ let
   }."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
   hash = {
-    x64-linux_hash = "sha256-rtlOFfeiZLsoZR/bUPAtWicK1Cu/pxtiBhHdHYbGrHo=";
-    arm64-linux_hash = "sha256-jMp1kDVCQYtDhO28HoBuo7IAlEaoqPFW8EPYXc1zpKM=";
-    x64-osx_hash = "sha256-2wcTRqbvlQAFY20IeIQnqWGJYMB1P3z+PftKau1ucdk=";
-    arm64-osx_hash = "sha256-3CrNLxmk5oHiGHkrKt17tfo021+O6JZ6RKBdsaf0f1I=";
+    x64-linux_hash = "sha256-MkRKWMhH4x5Z9mURh8qpShaozHrBFOHHwTmFlU1wqS8=";
+    arm64-linux_hash = "sha256-OIwWZEW4qmL5359hmGdNzunxVTIT3hIbTdAsd5Cpw/k=";
+    x64-osx_hash = "sha256-uDQXfj4r56ewrhZdwOnF78L3M1o0jDLt/PZlfWxxV18=";
+    arm64-osx_hash = "sha256-6WUeMIfF5juNHrLqep3mONqfcgxlBJOOJmHJkyHpZhU=";
   }."${arch}-${os}_hash";
 in
 stdenv.mkDerivation rec {
   pname = "sonarr";
-  version = "4.0.4.1491";
+  version = "4.0.5.1710";
 
   src = fetchurl {
     url = "https://github.com/Sonarr/Sonarr/releases/download/v${version}/Sonarr.main.${version}.${os}-${arch}.tar.gz";
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
     makeWrapper "${dotnet-runtime}/bin/dotnet" $out/bin/NzbDrone \
       --add-flags "$out/share/sonarr-${version}/Sonarr.dll" \
       --prefix PATH : ${lib.makeBinPath [ ffmpeg ]} \
-      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ curl sqlite openssl icu ]}
+      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ curl sqlite openssl icu zlib ]}
 
     runHook postInstall
   '';
diff --git a/pkgs/servers/spicedb/default.nix b/pkgs/servers/spicedb/default.nix
index e92978b56fd45..412f8d4de2e91 100644
--- a/pkgs/servers/spicedb/default.nix
+++ b/pkgs/servers/spicedb/default.nix
@@ -6,16 +6,20 @@
 
 buildGoModule rec {
   pname = "spicedb";
-  version = "1.32.0";
+  version = "1.33.0";
 
   src = fetchFromGitHub {
     owner = "authzed";
     repo = "spicedb";
     rev = "v${version}";
-    hash = "sha256-PIl5FmXWyp6mkSzTQe7hu4aWeQgGa1YrC5+t1eMQhPY=";
+    hash = "sha256-DjicS/rrSMcdUkRPOJ5jon2uYVKF+3DkHBvM93v/CmQ=";
   };
 
-  vendorHash = "sha256-LrNoIknYY9XIwdyUq7f5pG0IU0WZVSgTNMTFoZAIhp8=";
+  vendorHash = "sha256-pqHDSQQMvfas9yeyhs5cWokBPISQygz2aHf6W5Zc+co=";
+
+  ldflags = [
+    "-X 'github.com/jzelinskie/cobrautil/v2.Version=${src.rev}'"
+  ];
 
   subPackages = [ "cmd/spicedb" ];
 
diff --git a/pkgs/servers/spicedb/zed.nix b/pkgs/servers/spicedb/zed.nix
index 5b6e9d24e114d..efe77289040c7 100644
--- a/pkgs/servers/spicedb/zed.nix
+++ b/pkgs/servers/spicedb/zed.nix
@@ -16,6 +16,10 @@ buildGoModule rec {
 
   vendorHash = "sha256-Z6j4w4/anfK0ln2MvgnwZFoe8BA5jVHG3g9m2TynmmE=";
 
+  ldflags = [
+    "-X 'github.com/jzelinskie/cobrautil/v2.Version=${src.rev}'"
+  ];
+
   meta = with lib; {
     description = "Command line for managing SpiceDB";
     mainProgram = "zed";
diff --git a/pkgs/servers/sql/cockroachdb/cockroachdb-bin.nix b/pkgs/servers/sql/cockroachdb/cockroachdb-bin.nix
index 7e5c342a691e1..594cdc1a36b28 100644
--- a/pkgs/servers/sql/cockroachdb/cockroachdb-bin.nix
+++ b/pkgs/servers/sql/cockroachdb/cockroachdb-bin.nix
@@ -38,7 +38,7 @@ buildFHSEnv {
 
   meta = with lib; {
     homepage = "https://www.cockroachlabs.com";
-    description = "A scalable, survivable, strongly-consistent SQL database";
+    description = "Scalable, survivable, strongly-consistent SQL database";
     license = licenses.bsl11;
     platforms = [ "aarch64-linux" "x86_64-linux" ];
     maintainers = with maintainers; [ rushmorem thoughtpolice neosimsim ];
diff --git a/pkgs/servers/sql/dolt/default.nix b/pkgs/servers/sql/dolt/default.nix
index b95022dc7c133..7f411241e7809 100644
--- a/pkgs/servers/sql/dolt/default.nix
+++ b/pkgs/servers/sql/dolt/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "dolt";
-  version = "1.38.0";
+  version = "1.39.4";
 
   src = fetchFromGitHub {
     owner = "dolthub";
     repo = "dolt";
     rev = "v${version}";
-    sha256 = "sha256-R3BrF2563jN7rQbF0Edh9clgHh91inmDLHuEFiowrVI=";
+    sha256 = "sha256-8xds2FpNUfCfpekSuGKqY2Q6ULvpcfbuMC2/1QU5VEQ=";
   };
 
   modRoot = "./go";
   subPackages = [ "cmd/dolt" ];
-  vendorHash = "sha256-QyiWmVqa+eqUvMTC2swM9Rumhn4Me+FA+FGnJGElKDA=";
+  vendorHash = "sha256-0vAoACwwBhbK/GvxKE+1aZGPM0DsHyrhDOSzAgHlWAI=";
   proxyVendor = true;
   doCheck = false;
 
diff --git a/pkgs/servers/sql/gluesql/default.nix b/pkgs/servers/sql/gluesql/default.nix
index 1f48d19f7b8dc..7d49107de2235 100644
--- a/pkgs/servers/sql/gluesql/default.nix
+++ b/pkgs/servers/sql/gluesql/default.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "GlueSQL is quite sticky. It attaches to anywhere.";
+    description = "GlueSQL is quite sticky. It attaches to anywhere";
     homepage = "https://github.com/gluesql/gluesql";
     license = licenses.asl20;
     maintainers = with maintainers; [ happysalada ];
diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix
index 3ff31ba1d3abe..cab00249d3b6b 100644
--- a/pkgs/servers/sql/mariadb/default.nix
+++ b/pkgs/servers/sql/mariadb/default.nix
@@ -58,10 +58,6 @@ let
 
       patches = [
         ./patch/cmake-includedir.patch
-
-        # Fix build with libxml 2.12 and Clang 16.
-        # https://github.com/MariaDB/server/pull/2983
-        ./patch/0001-Fix-build-with-libxml2-2.12.patch
       ]
         # Fixes a build issue as documented on
         # https://jira.mariadb.org/browse/MDEV-26769?focusedCommentId=206073&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-206073
@@ -137,9 +133,9 @@ let
       };
 
       meta = with lib; {
-        description = "An enhanced, drop-in replacement for MySQL";
+        description = "Enhanced, drop-in replacement for MySQL";
         homepage    = "https://mariadb.org/";
-        license     = licenses.gpl2;
+        license     = licenses.gpl2Plus;
         maintainers = with maintainers; [ thoughtpolice ] ++ teams.helsinki-systems.members;
         platforms   = platforms.all;
       };
@@ -248,29 +244,31 @@ in
     # see https://mariadb.org/about/#maintenance-policy for EOLs
     mariadb_105 = self.callPackage generic {
       # Supported until 2025-06-24
-      version = "10.5.23";
-      hash = "sha256-P3wzsgjLeZ2wFKh09WcY6t/yLulXgfo2Cqa8aWEJrP4=";
+      # TODO should be removed
+      version = "10.5.25";
+      hash = "sha256-lhnQ9R6GQ1dGayxjMBo0pT99/ZnxjE/UUvqyK/Obpk4=";
       inherit (self.darwin) cctools;
       inherit (self.darwin.apple_sdk.frameworks) CoreServices;
     };
     mariadb_106 = self.callPackage generic {
       # Supported until 2026-07-06
-      version = "10.6.16";
-      hash = "sha256-Xvg4Q+eW3Nqa6keyRpDd9thI9D9D4R+dmgzCHHj7uc8=";
+      version = "10.6.18";
+      hash = "sha256-aJihER9HEwcJ4ouix70aV+S7VxAfbhCeWX1R5tOFzxg=";
       inherit (self.darwin) cctools;
       inherit (self.darwin.apple_sdk.frameworks) CoreServices;
     };
     mariadb_1011 = self.callPackage generic {
       # Supported until 2028-02-16
-      version = "10.11.6";
-      hash = "sha256-HAFjRj6Y1x9HgHQWEaQJge7ivETTkmAcpJu/lI0E3Wc=";
+      version = "10.11.8";
+      hash = "sha256-XwTz4z2fHL7/BeecVNQdMCYwUAyZWu5ysGOOL5383w8=";
       inherit (self.darwin) cctools;
       inherit (self.darwin.apple_sdk.frameworks) CoreServices;
     };
     mariadb_110 = self.callPackage generic {
       # Supported until 2024-06-07
-      version = "11.0.4";
-      hash = "sha256-J2ls3zEVnyJUEOtchmW4VkWhxZmBzlr2vP9sll/u3ms=";
+      # TODO should be removed
+      version = "11.0.6";
+      hash = "sha256-AYnWKUbDfG20a/GkaLqVgLy6joDwWVjsSDwzh+zPmgA=";
       inherit (self.darwin) cctools;
       inherit (self.darwin.apple_sdk.frameworks) CoreServices;
     };
diff --git a/pkgs/servers/sql/materialize/default.nix b/pkgs/servers/sql/materialize/default.nix
index d31433db7f1f0..346e83f122067 100644
--- a/pkgs/servers/sql/materialize/default.nix
+++ b/pkgs/servers/sql/materialize/default.nix
@@ -133,7 +133,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage    = "https://materialize.com";
-    description = "A streaming SQL materialized view engine for real-time applications";
+    description = "Streaming SQL materialized view engine for real-time applications";
     license     = licenses.bsl11;
     platforms   = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ];
     maintainers = [ maintainers.petrosagg ];
diff --git a/pkgs/servers/sql/monetdb/default.nix b/pkgs/servers/sql/monetdb/default.nix
index 654797c840c03..2efe120b4d8c1 100644
--- a/pkgs/servers/sql/monetdb/default.nix
+++ b/pkgs/servers/sql/monetdb/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "An open source database system";
+    description = "Open source database system";
     homepage = "https://www.monetdb.org/";
     license = licenses.mpl20;
     platforms = platforms.unix;
diff --git a/pkgs/servers/sql/mssql/jdbc/default.nix b/pkgs/servers/sql/mssql/jdbc/default.nix
index c40de0cb219da..2cafd510c51dd 100644
--- a/pkgs/servers/sql/mssql/jdbc/default.nix
+++ b/pkgs/servers/sql/mssql/jdbc/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mssql-jdbc";
-  version = "12.6.1";
+  version = "12.6.2";
 
   src = fetchurl {
     url = "https://github.com/Microsoft/mssql-jdbc/releases/download/v${version}/mssql-jdbc-${version}.jre8.jar";
-    sha256 = "sha256-OtherTxRxxE57u20nl1sD7mpV6tcHD9qL/C1AJOm0Qw=";
+    sha256 = "sha256-PR6oWlbCLPtVUMspw+DrQ8VhjXu4Mgqlpx9kSKds7S0=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/servers/sql/mysql/8.0.x.nix b/pkgs/servers/sql/mysql/8.0.x.nix
index 521e748198a36..598be781403de 100644
--- a/pkgs/servers/sql/mysql/8.0.x.nix
+++ b/pkgs/servers/sql/mysql/8.0.x.nix
@@ -71,8 +71,8 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://www.mysql.com/";
-    description = "The world's most popular open source database";
-    license = licenses.gpl2;
+    description = "World's most popular open source database";
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ orivej ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/servers/sql/mysql/jdbc/default.nix b/pkgs/servers/sql/mysql/jdbc/default.nix
index e50b7d579db2a..b7add5c5b09a5 100644
--- a/pkgs/servers/sql/mysql/jdbc/default.nix
+++ b/pkgs/servers/sql/mysql/jdbc/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mysql-connector-java";
-  version = "8.3.0";
+  version = "8.4.0";
 
   src = fetchurl {
     url = "https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-j-${version}.zip";
-    hash = "sha256-w2xddRQMjSTEprB9pmK8zKskGtthNuUd9YBPaMym7WE=";
+    hash = "sha256-iavSaf1BCqoFjWUPpwo/NvbbFiXTktXqZc7TRcUtaeU=";
   };
 
   installPhase = ''
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     changelog = "https://dev.mysql.com/doc/relnotes/connector-j/en/";
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
   };
 }
diff --git a/pkgs/servers/sql/patroni/default.nix b/pkgs/servers/sql/patroni/default.nix
index abf1ecbac0539..119218bada526 100644
--- a/pkgs/servers/sql/patroni/default.nix
+++ b/pkgs/servers/sql/patroni/default.nix
@@ -6,13 +6,13 @@
 
 pythonPackages.buildPythonApplication rec {
   pname = "patroni";
-  version = "3.3.0";
+  version = "3.3.1";
 
   src = fetchFromGitHub {
     owner = "zalando";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-gOjjE++hf3GOimvCxBR0jqqi3JNpbejLcWbLHpz2H4Q=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-GyPPBoYcJnuMer9FYGhWqursX/qJLaAlc9zFULoJqo4=";
   };
 
   propagatedBuildInputs = with pythonPackages; [
@@ -53,7 +53,7 @@ pythonPackages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://patroni.readthedocs.io/en/latest/";
-    description = "A Template for PostgreSQL HA with ZooKeeper, etcd or Consul";
+    description = "Template for PostgreSQL HA with ZooKeeper, etcd or Consul";
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = teams.deshaw.members;
diff --git a/pkgs/servers/sql/percona-server/lts.nix b/pkgs/servers/sql/percona-server/lts.nix
index f8b13aa4180af..4531a2db7b7ad 100644
--- a/pkgs/servers/sql/percona-server/lts.nix
+++ b/pkgs/servers/sql/percona-server/lts.nix
@@ -89,7 +89,7 @@ stdenv.mkDerivation (finalAttrs: {
       A free, fully compatible, enhanced, open source drop-in replacement for
       MySQL® that provides superior performance, scalability and instrumentation.
     '';
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = teams.flyingcircus.members;
     platforms = platforms.unix;
   };
diff --git a/pkgs/servers/sql/pgcat/default.nix b/pkgs/servers/sql/pgcat/default.nix
index 0cf05d290252c..67665403c46d4 100644
--- a/pkgs/servers/sql/pgcat/default.nix
+++ b/pkgs/servers/sql/pgcat/default.nix
@@ -42,7 +42,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/postgresml/pgcat";
-    description = "PostgreSQL pooler with sharding, load balancing and failover support.";
+    description = "PostgreSQL pooler with sharding, load balancing and failover support";
     license = with licenses; [mit];
     platforms = platforms.unix;
     maintainers = with maintainers; [cathalmullan];
diff --git a/pkgs/servers/sql/pgpool/default.nix b/pkgs/servers/sql/pgpool/default.nix
index 3c8be4b09f31e..b169b0240b0f3 100644
--- a/pkgs/servers/sql/pgpool/default.nix
+++ b/pkgs/servers/sql/pgpool/default.nix
@@ -10,12 +10,12 @@
 
 stdenv.mkDerivation rec {
   pname = "pgpool-II";
-  version = "4.5.1";
+  version = "4.5.2";
 
   src = fetchurl {
     url = "https://www.pgpool.net/mediawiki/download.php?f=pgpool-II-${version}.tar.gz";
     name = "pgpool-II-${version}.tar.gz";
-    hash = "sha256-jhSwVYoV2uh2fI4azuPy9sfAjr//2majWTZ+qqVsOTY=";
+    hash = "sha256-SArCPwHNfWyFayk4a/F6hIcS+0tAV9TIq9XIv4Gb3wY=";
   };
 
   buildInputs = [
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.pgpool.net/mediawiki/index.php/Main_Page";
-    description = "A middleware that works between PostgreSQL servers and PostgreSQL clients";
+    description = "Middleware that works between PostgreSQL servers and PostgreSQL clients";
     changelog = "https://www.pgpool.net/docs/latest/en/html/release-${builtins.replaceStrings ["."] ["-"] version}.html";
     license = licenses.free;
     platforms = platforms.unix;
diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix
index ff9f4f4150a22..3040e8074b32c 100644
--- a/pkgs/servers/sql/postgresql/default.nix
+++ b/pkgs/servers/sql/postgresql/default.nix
@@ -1,5 +1,13 @@
 self:
 let
+  # Before removing an EOL major version, make sure to check the versioning policy in:
+  # <nixpkgs>/nixos/modules/services/databases/postgresql.md
+  #
+  # Before removing, make sure to update it to the last minor version - and if only in
+  # an immediately preceding commit. This allows people relying on that old major version
+  # for a bit longer to still update up to this commit to at least get the latest minor
+  # version. In other words: Do not remove the second-to-last minor version from nixpkgs,
+  # yet. Update first.
   versions = {
     postgresql_12 = ./12.nix;
     postgresql_13 = ./13.nix;
diff --git a/pkgs/servers/sql/postgresql/ext/age.nix b/pkgs/servers/sql/postgresql/ext/age.nix
index fb5d849925825..a758e9b98aff4 100644
--- a/pkgs/servers/sql/postgresql/ext/age.nix
+++ b/pkgs/servers/sql/postgresql/ext/age.nix
@@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     broken = !builtins.elem (versions.major postgresql.version) (builtins.attrNames hashes);
-    description = "A graph database extension for PostgreSQL";
+    description = "Graph database extension for PostgreSQL";
     homepage = "https://age.apache.org/";
     changelog = "https://github.com/apache/age/raw/v${src.rev}/RELEASE";
     maintainers = with maintainers; [ ];
diff --git a/pkgs/servers/sql/postgresql/ext/default.nix b/pkgs/servers/sql/postgresql/ext/default.nix
index 6166bda6b41d7..383eee05b3ef8 100644
--- a/pkgs/servers/sql/postgresql/ext/default.nix
+++ b/pkgs/servers/sql/postgresql/ext/default.nix
@@ -74,6 +74,8 @@ self: super: {
 
     smlar = super.callPackage ./smlar.nix { };
 
+    system_stats = super.callPackage ./system_stats.nix { };
+
     temporal_tables = super.callPackage ./temporal_tables.nix { };
 
     timescaledb = super.callPackage ./timescaledb.nix { };
diff --git a/pkgs/servers/sql/postgresql/ext/pg_safeupdate.nix b/pkgs/servers/sql/postgresql/ext/pg_safeupdate.nix
index c2213d9b6ca32..6637c98c95654 100644
--- a/pkgs/servers/sql/postgresql/ext/pg_safeupdate.nix
+++ b/pkgs/servers/sql/postgresql/ext/pg_safeupdate.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple extension to PostgreSQL that requires criteria for UPDATE and DELETE";
+    description = "Simple extension to PostgreSQL that requires criteria for UPDATE and DELETE";
     homepage    = "https://github.com/eradman/pg-safeupdate";
     changelog   = "https://github.com/eradman/pg-safeupdate/raw/${src.rev}/NEWS";
     platforms   = postgresql.meta.platforms;
diff --git a/pkgs/servers/sql/postgresql/ext/pg_similarity.nix b/pkgs/servers/sql/postgresql/ext/pg_similarity.nix
index 227ea8357861c..20e5299da25ae 100644
--- a/pkgs/servers/sql/postgresql/ext/pg_similarity.nix
+++ b/pkgs/servers/sql/postgresql/ext/pg_similarity.nix
@@ -19,14 +19,14 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "An extension to support similarity queries on PostgreSQL";
+    description = "Extension to support similarity queries on PostgreSQL";
     longDescription = ''
        pg_similarity is an extension to support similarity queries on PostgreSQL. The implementation
        is tightly integrated in the RDBMS in the sense that it defines operators so instead of the traditional
        operators (= and <>) you can use ~~~ and ~!~ (any of these operators represents a similarity function).
     '';
     platforms = postgresql.meta.platforms;
-    license = lib.licenses.gpl2;
+    license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ danbst ];
   };
 }
diff --git a/pkgs/servers/sql/postgresql/ext/pg_squeeze.nix b/pkgs/servers/sql/postgresql/ext/pg_squeeze.nix
index 54a81ff2d2474..d91b0fb1c1a5c 100644
--- a/pkgs/servers/sql/postgresql/ext/pg_squeeze.nix
+++ b/pkgs/servers/sql/postgresql/ext/pg_squeeze.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A PostgreSQL extension for automatic bloat cleanup";
+    description = "PostgreSQL extension for automatic bloat cleanup";
     homepage = "https://github.com/cybertec-postgresql/pg_squeeze";
     changelog = "https://github.com/cybertec-postgresql/pg_squeeze/blob/${finalAttrs.src.rev}/NEWS";
     license = licenses.mit;
diff --git a/pkgs/servers/sql/postgresql/ext/pg_uuidv7.nix b/pkgs/servers/sql/postgresql/ext/pg_uuidv7.nix
index 9bbde3b195daa..80afe05db808e 100644
--- a/pkgs/servers/sql/postgresql/ext/pg_uuidv7.nix
+++ b/pkgs/servers/sql/postgresql/ext/pg_uuidv7.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A tiny Postgres extension to create version 7 UUIDs";
+    description = "Tiny Postgres extension to create version 7 UUIDs";
     homepage = "https://github.com/fboulnois/pg_uuidv7";
     changelog = "https://github.com/fboulnois/pg_uuidv7/blob/main/CHANGELOG.md";
     maintainers = with maintainers; [ gaelreyrol ];
diff --git a/pkgs/servers/sql/postgresql/ext/pgroonga.nix b/pkgs/servers/sql/postgresql/ext/pgroonga.nix
index 28303612fef36..0ba7fa093820c 100644
--- a/pkgs/servers/sql/postgresql/ext/pgroonga.nix
+++ b/pkgs/servers/sql/postgresql/ext/pgroonga.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A PostgreSQL extension to use Groonga as the index";
+    description = "PostgreSQL extension to use Groonga as the index";
     longDescription = ''
       PGroonga is a PostgreSQL extension to use Groonga as the index.
       PostgreSQL supports full text search against languages that use only alphabet and digit.
diff --git a/pkgs/servers/sql/postgresql/ext/pgrouting.nix b/pkgs/servers/sql/postgresql/ext/pgrouting.nix
index d0a69d524c83f..86fab4f8dbaef 100644
--- a/pkgs/servers/sql/postgresql/ext/pgrouting.nix
+++ b/pkgs/servers/sql/postgresql/ext/pgrouting.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A PostgreSQL/PostGIS extension that provides geospatial routing functionality";
+    description = "PostgreSQL/PostGIS extension that provides geospatial routing functionality";
     homepage    = "https://pgrouting.org/";
     changelog   = "https://github.com/pgRouting/pgrouting/releases/tag/v${version}";
     maintainers = with maintainers; teams.geospatial.members ++ [ steve-chavez ];
diff --git a/pkgs/servers/sql/postgresql/ext/pgtap.nix b/pkgs/servers/sql/postgresql/ext/pgtap.nix
index 2151e718dcf3b..24ad1f610e8f4 100644
--- a/pkgs/servers/sql/postgresql/ext/pgtap.nix
+++ b/pkgs/servers/sql/postgresql/ext/pgtap.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A unit testing framework for PostgreSQL";
+    description = "Unit testing framework for PostgreSQL";
     longDescription = ''
       pgTAP is a unit testing framework for PostgreSQL written in PL/pgSQL and PL/SQL.
       It includes a comprehensive collection of TAP-emitting assertion functions,
diff --git a/pkgs/servers/sql/postgresql/ext/plv8/0001-build-Allow-using-V8-from-system.patch b/pkgs/servers/sql/postgresql/ext/plv8/0001-build-Allow-using-V8-from-system.patch
index 05f607911f20a..e6099771ea1a8 100644
--- a/pkgs/servers/sql/postgresql/ext/plv8/0001-build-Allow-using-V8-from-system.patch
+++ b/pkgs/servers/sql/postgresql/ext/plv8/0001-build-Allow-using-V8-from-system.patch
@@ -1,47 +1,44 @@
 diff --git a/Makefile b/Makefile
-index 38879cc..6e78eeb 100644
+index a705c11..08b952b 100644
 --- a/Makefile
 +++ b/Makefile
-@@ -20,6 +20,7 @@ OBJS = $(SRCS:.cc=.o)
+@@ -13,11 +13,14 @@ OBJS = $(SRCS:.cc=.o)
  MODULE_big = plv8-$(PLV8_VERSION)
  EXTENSION = plv8
  PLV8_DATA = plv8.control plv8--$(PLV8_VERSION).sql
 +USE_SYSTEM_V8 = 0
  
- 
- # Platform detection
-@@ -41,6 +42,7 @@ PGXS := $(shell $(PG_CONFIG) --pgxs)
- PG_VERSION_NUM := $(shell cat `$(PG_CONFIG) --includedir-server`/pg_config*.h \
- 		   | perl -ne 'print $$1 and exit if /PG_VERSION_NUM\s+(\d+)/')
+ ifeq ($(OS),Windows_NT)
+ 	# noop for now
+ else
++	ifeq ($(USE_SYSTEM_V8),0)
+ 	SHLIB_LINK += -Ldeps/v8-cmake/build
++	endif
+ 	UNAME_S := $(shell uname -s)
+ 	ifeq ($(UNAME_S),Darwin)
+ 		CCFLAGS += -stdlib=libc++
+@@ -34,6 +37,7 @@ ifeq ($(NUMPROC),0)
+ 	NUMPROC = 1
+ endif
  
 +ifeq ($(USE_SYSTEM_V8),0)
- AUTOV8_DIR = build/v8
- AUTOV8_OUT = build/v8/out.gn/obj
- AUTOV8_STATIC_LIBS = -lv8_libplatform -lv8_libbase
-@@ -66,6 +68,7 @@ v8:
- 	make -f Makefiles/Makefile.macos v8
- endif
- endif
+ SHLIB_LINK += -Ldeps/v8-cmake/build
+ 
+ all: v8 $(OBJS)
+@@ -46,11 +50,16 @@ deps/v8-cmake/build/libv8_libbase.a:
+ 	@cd deps/v8-cmake && mkdir -p build && cd build && cmake -Denable-fPIC=ON -DCMAKE_BUILD_TYPE=Release ../ && make -j $(NUMPROC)
+ 
+ v8: deps/v8-cmake/build/libv8_libbase.a
++else
++all: $(OBJS)
 +endif
  
  # enable direct jsonb conversion by default
  CCFLAGS += -DJSONB_DIRECT_CONVERSION
-@@ -83,6 +86,7 @@ ifdef BIGINT_GRACEFUL
- endif
- 
  
 +ifeq ($(USE_SYSTEM_V8),0)
- # We're gonna build static link.  Rip it out after include Makefile
- SHLIB_LINK := $(filter-out -lv8, $(SHLIB_LINK))
- 
-@@ -101,6 +105,7 @@ else
- 		SHLIB_LINK += -lrt -std=c++14 
- 	endif
- endif
+ CCFLAGS += -Ideps/v8-cmake/v8/include -std=c++17
 +endif
  
- DATA = $(PLV8_DATA)
- ifndef DISABLE_DIALECT
--- 
-2.37.3
-
+ ifdef EXECUTION_TIMEOUT
+ 	CCFLAGS += -DEXECUTION_TIMEOUT
diff --git a/pkgs/servers/sql/postgresql/ext/plv8/default.nix b/pkgs/servers/sql/postgresql/ext/plv8/default.nix
index 2e8ac591a2ddd..615dcb3a80ae1 100644
--- a/pkgs/servers/sql/postgresql/ext/plv8/default.nix
+++ b/pkgs/servers/sql/postgresql/ext/plv8/default.nix
@@ -1,7 +1,7 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, v8
+, nodejs_20
 , perl
 , postgresql
 , jitSupport
@@ -11,15 +11,17 @@
 , gnugrep
 }:
 
-stdenv.mkDerivation (finalAttrs: {
+let
+  libv8 = nodejs_20.libv8;
+in stdenv.mkDerivation (finalAttrs: {
   pname = "plv8";
-  version = "3.1.10";
+  version = "3.2.2";
 
   src = fetchFromGitHub {
     owner = "plv8";
     repo = "plv8";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-g1A/XPC0dX2360Gzvmo9/FSQnM6Wt2K4eR0pH0p9fz4=";
+    hash = "sha256-azO33v22EF+/sTNmwswxyDR0PhrvWfTENuLu6JgSGJ0=";
   };
 
   patches = [
@@ -33,7 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   buildInputs = [
-    v8
+    libv8
     postgresql
   ];
 
@@ -43,7 +45,7 @@ stdenv.mkDerivation (finalAttrs: {
     # Nixpkgs build a v8 monolith instead of separate v8_libplatform.
     "USE_SYSTEM_V8=1"
     "SHLIB_LINK=-lv8"
-    "V8_OUTDIR=${v8}/lib"
+    "V8_OUTDIR=${libv8}/lib"
   ];
 
   installFlags = [
@@ -56,9 +58,6 @@ stdenv.mkDerivation (finalAttrs: {
 
   postPatch = ''
     patchShebangs ./generate_upgrade.sh
-    # https://github.com/plv8/plv8/pull/506
-    substituteInPlace generate_upgrade.sh \
-      --replace " 2.3.10 " " 2.3.10 2.3.11 2.3.12 2.3.13 2.3.14 2.3.15 "
   '';
 
   postInstall = ''
diff --git a/pkgs/servers/sql/postgresql/ext/postgis.nix b/pkgs/servers/sql/postgresql/ext/postgis.nix
index 6569439e351eb..ee1669e5db185 100644
--- a/pkgs/servers/sql/postgresql/ext/postgis.nix
+++ b/pkgs/servers/sql/postgresql/ext/postgis.nix
@@ -80,7 +80,7 @@ stdenv.mkDerivation rec {
     description = "Geographic Objects for PostgreSQL";
     homepage = "https://postgis.net/";
     changelog = "https://git.osgeo.org/gitea/postgis/postgis/raw/tag/${version}/NEWS";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; teams.geospatial.members ++ [ marcweber wolfgangwalther ];
     inherit (postgresql.meta) platforms;
   };
diff --git a/pkgs/servers/sql/postgresql/ext/system_stats.nix b/pkgs/servers/sql/postgresql/ext/system_stats.nix
new file mode 100644
index 0000000000000..bc2a0973b95f3
--- /dev/null
+++ b/pkgs/servers/sql/postgresql/ext/system_stats.nix
@@ -0,0 +1,40 @@
+{
+  fetchFromGitHub,
+  lib,
+  stdenv,
+  postgresql,
+}:
+stdenv.mkDerivation rec {
+  pname = "system_stats";
+  version = "3.0";
+
+  buildInputs = [ postgresql ];
+
+  src = fetchFromGitHub {
+    owner = "EnterpriseDB";
+    repo = "system_stats";
+    rev = "v${version}";
+    hash = "sha256-LuX7/LOi0rl6L/kjbjq7rr2zPcGIOYB7hdZBNJ9xqak=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{lib,share/postgresql/extension}
+
+    cp *${postgresql.dlSuffix} $out/lib
+    cp *.sql     $out/share/postgresql/extension
+    cp *.control $out/share/postgresql/extension
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A Postgres extension for exposing system metrics such as CPU, memory and disk information";
+    homepage = "https://github.com/EnterpriseDB/system_stats";
+    changelog = "https://github.com/EnterpriseDB/system_stats/raw/v${version}/CHANGELOG.md";
+    maintainers = with maintainers; [ shivaraj-bh ];
+    platforms = postgresql.meta.platforms;
+    license = licenses.postgresql;
+  };
+}
diff --git a/pkgs/servers/sql/postgresql/ext/tds_fdw.nix b/pkgs/servers/sql/postgresql/ext/tds_fdw.nix
index 86ab520944e77..4a192cda9aa33 100644
--- a/pkgs/servers/sql/postgresql/ext/tds_fdw.nix
+++ b/pkgs/servers/sql/postgresql/ext/tds_fdw.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A PostgreSQL foreign data wrapper to connect to TDS databases (Sybase and Microsoft SQL Server)";
+    description = "PostgreSQL foreign data wrapper to connect to TDS databases (Sybase and Microsoft SQL Server)";
     homepage    = "https://github.com/tds-fdw/tds_fdw";
     maintainers = [ maintainers.steve-chavez ];
     platforms   = postgresql.meta.platforms;
diff --git a/pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix b/pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix
index 96bff3fe20b38..4a14b9925cd47 100644
--- a/pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix
+++ b/pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix
@@ -4,7 +4,6 @@
 , postgresql
 , nixosTests
 , cargo-pgrx_0_10_2
-, fetchCrate
 , nix-update-script
 , stdenv
 }:
diff --git a/pkgs/servers/sql/postgresql/generic.nix b/pkgs/servers/sql/postgresql/generic.nix
index 294d9a86305d3..9104396a3f8c7 100644
--- a/pkgs/servers/sql/postgresql/generic.nix
+++ b/pkgs/servers/sql/postgresql/generic.nix
@@ -2,7 +2,7 @@ let
 
   generic =
       # dependencies
-      { stdenv, lib, fetchurl, makeWrapper, fetchpatch
+      { stdenv, lib, fetchurl, makeWrapper
       , glibc, zlib, readline, openssl, icu, lz4, zstd, systemd, libossp_uuid
       , pkg-config, libxml2, tzdata, libkrb5, substituteAll, darwin
       , linux-pam
@@ -249,10 +249,10 @@ let
 
     meta = with lib; {
       homepage    = "https://www.postgresql.org";
-      description = "A powerful, open source object-relational database system";
+      description = "Powerful, open source object-relational database system";
       license     = licenses.postgresql;
       changelog   = "https://www.postgresql.org/docs/release/${finalAttrs.version}/";
-      maintainers = with maintainers; [ thoughtpolice danbst globin ivan ma27 ];
+      maintainers = with maintainers; [ thoughtpolice danbst globin ivan ma27 wolfgangwalther ];
       pkgConfigModules = [ "libecpg" "libecpg_compat" "libpgtypes" "libpq" ];
       platforms   = platforms.unix;
 
diff --git a/pkgs/servers/sql/rqlite/default.nix b/pkgs/servers/sql/rqlite/default.nix
index 90ed22286a604..a76a9968cb2a8 100644
--- a/pkgs/servers/sql/rqlite/default.nix
+++ b/pkgs/servers/sql/rqlite/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "rqlite";
-  version = "8.24.7";
+  version = "8.24.10";
 
   src = fetchFromGitHub {
     owner = "rqlite";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-RuLc5IYy5NDexE1UHWrcJkvKgn4hQ0TkJFcbRIwxk18=";
+    sha256 = "sha256-cLqCX9ulzsmNFkyaExYuFNOD78TMiNdKEgoJV89Ipxw=";
   };
 
-  vendorHash = "sha256-c6HQukT32jK9B48FzW0WeY7VxPkNwDipKUTrrICsaKw=";
+  vendorHash = "sha256-9UFDpdWK/kQuko3AaWXBiDCa+Wd1hNmPk5rDM9ugoTw=";
 
   subPackages = [ "cmd/rqlite" "cmd/rqlited" "cmd/rqbench" ];
 
@@ -29,7 +29,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "The lightweight, distributed relational database built on SQLite";
+    description = "Lightweight, distributed relational database built on SQLite";
     homepage = "https://github.com/rqlite/rqlite";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
diff --git a/pkgs/servers/sqlpage/default.nix b/pkgs/servers/sqlpage/default.nix
index d68ad9ddcace3..0c633bb408e67 100644
--- a/pkgs/servers/sqlpage/default.nix
+++ b/pkgs/servers/sqlpage/default.nix
@@ -11,64 +11,71 @@
 
 let
   apexcharts = fetchurl {
-    url = "https://cdn.jsdelivr.net/npm/apexcharts@3.43.2-0/dist/apexcharts.min.js";
-    sha256 = "sha256-7al9VaQHu7u5jfx1HZf+T8k27kbIhgHvRwaeIeYEjVI=";
+    url = "https://cdn.jsdelivr.net/npm/apexcharts@3.49.1/dist/apexcharts.min.js";
+    hash = "sha256-74AuGLJETu9PiPQ69d/gxD3Wy3j10udgC7FQYPQjhyU=";
   };
   tablerCss = fetchurl {
     url = "https://cdn.jsdelivr.net/npm/@tabler/core@1.0.0-beta20/dist/css/tabler.min.css";
-    sha256 = "sha256-lS3nKxMMZiKIRJG7UgUonOHYuvHgW5eckEjvHMYxb9Q=";
+    hash = "sha256-lS3nKxMMZiKIRJG7UgUonOHYuvHgW5eckEjvHMYxb9Q=";
   };
   tablerVendorsCss = fetchurl {
     url = "https://cdn.jsdelivr.net/npm/@tabler/core@1.0.0-beta20/dist/css/tabler-vendors.min.css";
-    sha256 = "sha256-Aa7AUOaz6hJLiUzQStZTy2VPOZyg0ViSo2MCzpDU1tY=";
+    hash = "sha256-Aa7AUOaz6hJLiUzQStZTy2VPOZyg0ViSo2MCzpDU1tY=";
   };
   tablerJs = fetchurl {
     url = "https://cdn.jsdelivr.net/npm/@tabler/core@1.0.0-beta20/dist/js/tabler.min.js";
-    sha256 = "sha256-ygO5OTRUtYxDDkERRwBCfq+fmakhM6ybwfl6gCCPlAQ=";
+    hash = "sha256-ygO5OTRUtYxDDkERRwBCfq+fmakhM6ybwfl6gCCPlAQ=";
   };
   listJsFixed = fetchurl {
     url = "https://cdn.jsdelivr.net/npm/list.js-fixed@2.3.4/dist/list.min.js";
-    sha256 = "sha256-sYy7qNJW7RTuaNA0jq6Yrtfs57ypYrItZ3f8T7kqfPM=";
+    hash = "sha256-sYy7qNJW7RTuaNA0jq6Yrtfs57ypYrItZ3f8T7kqfPM=";
   };
   tablerIcons = fetchurl {
-    url = "https://cdn.jsdelivr.net/npm/@tabler/icons@2.39.0/tabler-sprite.svg";
-    sha256 = "sha256-8C9PPhDyVnym0q/RkQlTyfjKbAMRsYBlRtsMbNAepvY=";
+    url = "https://cdn.jsdelivr.net/npm/@tabler/icons-sprite@3.4.0/dist/tabler-sprite.svg";
+    hash = "sha256-iYxplXfIhVNBOmEEURN7/53A8Mi0hWCbWWo92BzncUA=";
+  };
+  tomselect = fetchurl {
+    url = "https://cdn.jsdelivr.net/npm/tom-select@2.3.1/dist/js/tom-select.popular.min.js";
+    hash = "sha256-51NcdIM8GseVFFmg8mUWDxfhjLCA+n8kw/Ojyo+6Hjk=";
   };
 in
 
 rustPlatform.buildRustPackage rec {
   pname = "sqlpage";
-  version = "0.15.1";
+  version = "0.23.0";
 
   src = fetchFromGitHub {
     owner = "lovasoa";
     repo = "SQLpage";
     rev = "v${version}";
-    hash = "sha256-0CPWMVdX0HGPMfIiDfC6TJ2t07O6eZcS7yEDVAvjLUc=";
+    hash = "sha256-tb3MwH6d/xe05QiBu11iZYICp8eTkKLuQiISoY0zKTE=";
   };
 
   postPatch = ''
     substituteInPlace sqlpage/apexcharts.js \
-      --replace '/* !include https://cdn.jsdelivr.net/npm/apexcharts@3.43.2-0/dist/apexcharts.min.js */' \
+      --replace-fail '/* !include https://cdn.jsdelivr.net/npm/apexcharts@3.49.1/dist/apexcharts.min.js */' \
       "$(cat ${apexcharts})"
     substituteInPlace sqlpage/sqlpage.css \
-      --replace '/* !include https://cdn.jsdelivr.net/npm/@tabler/core@1.0.0-beta20/dist/css/tabler.min.css */' \
+      --replace-fail '/* !include https://cdn.jsdelivr.net/npm/@tabler/core@1.0.0-beta20/dist/css/tabler.min.css */' \
       "$(cat ${tablerCss})"
     substituteInPlace sqlpage/sqlpage.css \
-      --replace '/* !include https://cdn.jsdelivr.net/npm/@tabler/core@1.0.0-beta20/dist/css/tabler-vendors.min.css */' \
+      --replace-fail '/* !include https://cdn.jsdelivr.net/npm/@tabler/core@1.0.0-beta20/dist/css/tabler-vendors.min.css */' \
       "$(cat ${tablerVendorsCss})"
     substituteInPlace sqlpage/sqlpage.js \
-      --replace '/* !include https://cdn.jsdelivr.net/npm/@tabler/core@1.0.0-beta20/dist/js/tabler.min.js */' \
+      --replace-fail '/* !include https://cdn.jsdelivr.net/npm/@tabler/core@1.0.0-beta20/dist/js/tabler.min.js */' \
       "$(cat ${tablerJs})"
     substituteInPlace sqlpage/sqlpage.js \
-      --replace '/* !include https://cdn.jsdelivr.net/npm/list.js-fixed@2.3.4/dist/list.min.js */' \
+      --replace-fail '/* !include https://cdn.jsdelivr.net/npm/list.js-fixed@2.3.4/dist/list.min.js */' \
       "$(cat ${listJsFixed})"
     substituteInPlace sqlpage/tabler-icons.svg \
-      --replace '/* !include https://cdn.jsdelivr.net/npm/@tabler/icons@2.39.0/tabler-sprite.svg */' \
+      --replace-fail '/* !include https://cdn.jsdelivr.net/npm/@tabler/icons-sprite@3.4.0/dist/tabler-sprite.svg */' \
       "$(cat ${tablerIcons})"
-  '';
+    substituteInPlace sqlpage/tomselect.js \
+      --replace-fail '/* !include https://cdn.jsdelivr.net/npm/tom-select@2.3.1/dist/js/tom-select.popular.min.js */' \
+      "$(cat ${tomselect})"
+    '';
 
-  cargoHash = "sha256-ooK4eIaPbUsxgDuVJkWHlArMa81TtlRfR6YYEAh7cLY=";
+  cargoHash = "sha256-/k9nNxZxyV12pyRep6cTsUoEQobb9sWKnXxQmXmVAl0=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/servers/squid/default.nix b/pkgs/servers/squid/default.nix
index 792c97ca6b5eb..32ae3aab92004 100644
--- a/pkgs/servers/squid/default.nix
+++ b/pkgs/servers/squid/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A caching proxy for the Web supporting HTTP, HTTPS, FTP, and more";
+    description = "Caching proxy for the Web supporting HTTP, HTTPS, FTP, and more";
     homepage = "http://www.squid-cache.org";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/servers/static-web-server/default.nix b/pkgs/servers/static-web-server/default.nix
index 824c56584e2bf..a38c1bcc36365 100644
--- a/pkgs/servers/static-web-server/default.nix
+++ b/pkgs/servers/static-web-server/default.nix
@@ -32,7 +32,7 @@ rustPlatform.buildRustPackage rec {
   passthru.tests = { inherit (nixosTests) static-web-server; };
 
   meta = with lib; {
-    description = "An asynchronous web server for static files-serving";
+    description = "Asynchronous web server for static files-serving";
     homepage = "https://static-web-server.net/";
     changelog = "https://github.com/static-web-server/static-web-server/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit /* or */ asl20 ];
diff --git a/pkgs/servers/stone/default.nix b/pkgs/servers/stone/default.nix
index a565a609e12b8..989a56f0863ab 100644
--- a/pkgs/servers/stone/default.nix
+++ b/pkgs/servers/stone/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A TCP/IP repeater in the application layer";
+    description = "TCP/IP repeater in the application layer";
     homepage = "http://www.gcd.org/sengoku/stone/";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
diff --git a/pkgs/servers/swego/default.nix b/pkgs/servers/swego/default.nix
index eb4bcccbbf9dc..a446648099441 100644
--- a/pkgs/servers/swego/default.nix
+++ b/pkgs/servers/swego/default.nix
@@ -1,28 +1,34 @@
-{ buildGoModule
-, fetchFromGitHub
-, lib
-, stdenv
+{
+  lib,
+  stdenv,
+  buildGoModule,
+  fetchFromGitHub,
 }:
 
 buildGoModule rec {
   pname = "swego";
-  version = "1.0";
+  version = "1.12";
 
   src = fetchFromGitHub {
     owner = "nodauf";
     repo = "Swego";
-    rev = "v${version}";
-    sha256 = "sha256-OlaNDXKaIim5n0niqYIpRliVo7lse76vNxPKF6B6yF0=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-roaAzh6Mncu4qtaxEoXk41Mrmz/l7X1+n+Yh5skA65A=";
   };
 
-  vendorHash = "sha256-N4HDngQFNCzQ74W52R0khetN6+J7npvBC/bYZBAgLB4=";
+  vendorHash = "sha256-mJWJdwbZq042//hM3WWp2rnLC1GebckUnsIopbF858Q=";
 
   postInstall = ''
     mv $out/bin/src $out/bin/$pname
   '';
 
+  ldflags = [
+    "-w"
+    "-s"
+  ];
+
   meta = with lib; {
-    description = "Simple Webserver in Golang";
+    description = "Simple Webserver";
     longDescription = ''
       Swiss army knife Webserver in Golang. Similar to the Python
       SimpleHTTPServer but with many features.
diff --git a/pkgs/servers/tacacsplus/default.nix b/pkgs/servers/tacacsplus/default.nix
index 7761695042f47..b06da38017a7a 100644
--- a/pkgs/servers/tacacsplus/default.nix
+++ b/pkgs/servers/tacacsplus/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ tcp_wrappers perl libnsl ];
 
   meta = with lib; {
-    description = "A protocol for authentication, authorization and accounting (AAA) services for routers and network devices";
+    description = "Protocol for authentication, authorization and accounting (AAA) services for routers and network devices";
     homepage = "http://www.shrubbery.net/tac_plus/";
     license = licenses.free;
     maintainers = with maintainers; [ _0x4A6F ];
diff --git a/pkgs/servers/tailscale/default.nix b/pkgs/servers/tailscale/default.nix
index 9e1a31873e46a..a69e7eb3aecdd 100644
--- a/pkgs/servers/tailscale/default.nix
+++ b/pkgs/servers/tailscale/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , buildGoModule
 , fetchFromGitHub
+, fetchpatch
 , makeWrapper
 , getent
 , iproute2
@@ -9,10 +10,11 @@
 , shadow
 , procps
 , nixosTests
+, installShellFiles
 }:
 
 let
-  version = "1.66.4";
+  version = "1.68.1";
 in
 buildGoModule {
   pname = "tailscale";
@@ -22,11 +24,21 @@ buildGoModule {
     owner = "tailscale";
     repo = "tailscale";
     rev = "v${version}";
-    hash = "sha256-ETBca3qKO2iS30teIF5sr/oyJdRSKFqLFVO3+mmm7bo=";
+    hash = "sha256-ZAzro69F7ovfdqzRss/U7puh1T37bkEtUXabCYc5LwU=";
   };
-  vendorHash = "sha256-Hd77xy8stw0Y6sfk3/ItqRIbM/349M/4uf0iNy1xJGw=";
 
-  nativeBuildInputs = lib.optionals stdenv.isLinux [ makeWrapper ];
+  patches = [
+    # Fix "tailscale ssh" when built with ts_include_cli tag
+    # https://github.com/tailscale/tailscale/pull/12109
+    (fetchpatch {
+      url = "https://github.com/tailscale/tailscale/commit/325ca13c4549c1af58273330744d160602218af9.patch";
+      hash = "sha256-SMwqZiGNVflhPShlHP+7Gmn0v4b6Gr4VZGIF/oJAY8M=";
+    })
+  ];
+
+  vendorHash = "sha256-SUjoeOFYz6zbEgv/vND7kEXbuWlZDrUKF2Dmqsf/KVw=";
+
+  nativeBuildInputs = lib.optionals stdenv.isLinux [ makeWrapper ] ++ [ installShellFiles ];
 
   CGO_ENABLED = 0;
 
@@ -52,6 +64,12 @@ buildGoModule {
       --prefix PATH : ${lib.makeBinPath [ iproute2 iptables getent shadow ]} \
       --suffix PATH : ${lib.makeBinPath [ procps ]}
 
+    local INSTALL="$out/bin/tailscale"
+    installShellCompletion --cmd tailscale \
+      --bash <($out/bin/tailscale completion bash) \
+      --fish <($out/bin/tailscale completion fish) \
+      --zsh <($out/bin/tailscale completion zsh)
+
     sed -i -e "s#/usr/sbin#$out/bin#" -e "/^EnvironmentFile/d" ./cmd/tailscaled/tailscaled.service
     install -D -m0444 -t $out/lib/systemd/system ./cmd/tailscaled/tailscaled.service
   '';
@@ -62,7 +80,7 @@ buildGoModule {
 
   meta = with lib; {
     homepage = "https://tailscale.com";
-    description = "The node agent for Tailscale, a mesh VPN built on WireGuard";
+    description = "Node agent for Tailscale, a mesh VPN built on WireGuard";
     license = licenses.bsd3;
     mainProgram = "tailscale";
     maintainers = with maintainers; [ mbaillie jk mfrw ];
diff --git a/pkgs/servers/tarantool/default.nix b/pkgs/servers/tarantool/default.nix
index 80b2e96d2d6d6..d3de202185505 100644
--- a/pkgs/servers/tarantool/default.nix
+++ b/pkgs/servers/tarantool/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An in-memory computing platform consisting of a database and an application server";
+    description = "In-memory computing platform consisting of a database and an application server";
     homepage = "https://www.tarantool.io/";
     license = licenses.bsd2;
     mainProgram = "tarantool";
diff --git a/pkgs/servers/tarssh/default.nix b/pkgs/servers/tarssh/default.nix
index 4886b2f72cd94..9e07304de8d89 100644
--- a/pkgs/servers/tarssh/default.nix
+++ b/pkgs/servers/tarssh/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "sha256-w1MNsMSGONsAAjyvAHjio2K88j1sqyP1Aqmw3EMya+c=";
 
   meta = with lib; {
-    description = "A simple SSH tarpit inspired by endlessh";
+    description = "Simple SSH tarpit inspired by endlessh";
     homepage = "https://github.com/Freaky/tarssh";
     license = [ licenses.mit ];
     maintainers = with maintainers; [ sohalt ];
diff --git a/pkgs/servers/tautulli/default.nix b/pkgs/servers/tautulli/default.nix
index fb2a673536064..95e8d28f9ad76 100644
--- a/pkgs/servers/tautulli/default.nix
+++ b/pkgs/servers/tautulli/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonApplication rec {
   pname = "Tautulli";
-  version = "2.13.4";
+  version = "2.14.2";
   format = "other";
 
   pythonPath = [ setuptools ];
@@ -11,8 +11,8 @@ buildPythonApplication rec {
   src = fetchFromGitHub {
     owner = "Tautulli";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-cOHirjYdfPPv7O9o3vnsKBffvqxoaRN32NaUOK0SmQ8=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-IMEjUUIdt4NwufXhQLZl8yxajKOfK8AvWBWxlahZ8Xs=";
   };
 
   installPhase = ''
@@ -44,7 +44,7 @@ buildPythonApplication rec {
   '';
 
   meta  = with lib; {
-    description = "A Python based monitoring and tracking tool for Plex Media Server";
+    description = "Python based monitoring and tracking tool for Plex Media Server";
     homepage = "https://tautulli.com/";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/servers/teleport/13/Cargo.lock b/pkgs/servers/teleport/13/Cargo.lock
deleted file mode 100644
index 52daefdf5c3a2..0000000000000
--- a/pkgs/servers/teleport/13/Cargo.lock
+++ /dev/null
@@ -1,1956 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "adler"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-
-[[package]]
-name = "aho-corasick"
-version = "0.7.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "asn1-rs"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf6690c370453db30743b373a60ba498fc0d6d83b11f4abfd87a84a075db5dd4"
-dependencies = [
- "asn1-rs-derive",
- "asn1-rs-impl",
- "displaydoc",
- "nom",
- "num-traits",
- "rusticata-macros",
- "thiserror",
- "time",
-]
-
-[[package]]
-name = "asn1-rs-derive"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
- "synstructure",
-]
-
-[[package]]
-name = "asn1-rs-impl"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
-]
-
-[[package]]
-name = "atomic-polyfill"
-version = "0.1.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3ff7eb3f316534d83a8a2c3d1674ace8a5a71198eba31e2e2b597833f699b28"
-dependencies = [
- "critical-section",
-]
-
-[[package]]
-name = "atty"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-dependencies = [
- "hermit-abi 0.1.19",
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "autocfg"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-
-[[package]]
-name = "base64"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
-
-[[package]]
-name = "base64ct"
-version = "1.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b645a089122eccb6111b4f81cbc1a49f5900ac4666bb93ac027feaecf15607bf"
-
-[[package]]
-name = "bindgen"
-version = "0.66.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7"
-dependencies = [
- "bitflags 2.4.1",
- "cexpr",
- "clang-sys",
- "lazy_static",
- "lazycell",
- "peeking_take_while",
- "proc-macro2",
- "quote",
- "regex",
- "rustc-hash",
- "shlex",
- "syn 2.0.39",
-]
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-[[package]]
-name = "bitflags"
-version = "2.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
-
-[[package]]
-name = "block-buffer"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
-dependencies = [
- "block-padding",
- "byte-tools",
- "byteorder",
- "generic-array 0.12.4",
-]
-
-[[package]]
-name = "block-padding"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
-dependencies = [
- "byte-tools",
-]
-
-[[package]]
-name = "boring"
-version = "3.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ae1aba472e42d3cf45ac6d0a6c8fc3ddf743871209e1b40229aed9fbdf48ece"
-dependencies = [
- "bitflags 2.4.1",
- "boring-sys",
- "foreign-types",
- "libc",
- "once_cell",
-]
-
-[[package]]
-name = "boring-sys"
-version = "3.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ceced5be0047c7c48d77599535fd7f0a81c1b0f0a1e97e7eece24c45022bb481"
-dependencies = [
- "bindgen",
- "cmake",
- "fs_extra",
- "fslock",
-]
-
-[[package]]
-name = "bufstream"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40e38929add23cdf8a366df9b0e088953150724bcbe5fc330b0d8eb3b328eec8"
-
-[[package]]
-name = "bumpalo"
-version = "3.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba"
-
-[[package]]
-name = "byte-tools"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
-
-[[package]]
-name = "byteorder"
-version = "1.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
-
-[[package]]
-name = "cbindgen"
-version = "0.24.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6358dedf60f4d9b8db43ad187391afe959746101346fe51bb978126bec61dfb"
-dependencies = [
- "clap",
- "heck",
- "indexmap",
- "log",
- "proc-macro2",
- "quote",
- "serde",
- "serde_json",
- "syn 1.0.107",
- "tempfile",
- "toml",
-]
-
-[[package]]
-name = "cc"
-version = "1.0.78"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d"
-
-[[package]]
-name = "cexpr"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
-dependencies = [
- "nom",
-]
-
-[[package]]
-name = "cfg-if"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-[[package]]
-name = "cipher"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e"
-dependencies = [
- "crypto-common",
- "inout",
-]
-
-[[package]]
-name = "clang-sys"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3"
-dependencies = [
- "glob",
- "libc",
- "libloading",
-]
-
-[[package]]
-name = "clap"
-version = "3.2.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5"
-dependencies = [
- "atty",
- "bitflags 1.3.2",
- "clap_lex",
- "indexmap",
- "strsim",
- "termcolor",
- "textwrap",
-]
-
-[[package]]
-name = "clap_lex"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
-dependencies = [
- "os_str_bytes",
-]
-
-[[package]]
-name = "cmake"
-version = "0.1.49"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db34956e100b30725f2eb215f90d4871051239535632f84fea3bc92722c66b7c"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "const-oid"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3"
-
-[[package]]
-name = "const-oid"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cec318a675afcb6a1ea1d4340e2d377e56e47c266f28043ceccbf4412ddfdd3b"
-
-[[package]]
-name = "crc32fast"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "critical-section"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6548a0ad5d2549e111e1f6a11a6c2e2d00ce6a3dafe22948d67c2b443f775e52"
-
-[[package]]
-name = "crypto-bigint"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21"
-dependencies = [
- "generic-array 0.14.6",
- "subtle 2.4.1",
-]
-
-[[package]]
-name = "crypto-common"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
-dependencies = [
- "generic-array 0.14.6",
- "typenum",
-]
-
-[[package]]
-name = "crypto-mac"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5"
-dependencies = [
- "generic-array 0.12.4",
- "subtle 1.0.0",
-]
-
-[[package]]
-name = "data-encoding"
-version = "2.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb"
-
-[[package]]
-name = "delog"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cd67f90cc14e0a91cf693141453cccf2b74db9d59c40f6be18b79169fe77dfd"
-dependencies = [
- "log",
-]
-
-[[package]]
-name = "der"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c"
-dependencies = [
- "const-oid 0.7.1",
- "crypto-bigint",
- "pem-rfc7468 0.3.1",
-]
-
-[[package]]
-name = "der"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de"
-dependencies = [
- "const-oid 0.9.1",
- "pem-rfc7468 0.6.0",
- "zeroize",
-]
-
-[[package]]
-name = "der-parser"
-version = "8.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42d4bc9b0db0a0df9ae64634ac5bdefb7afcb534e182275ca0beadbe486701c1"
-dependencies = [
- "asn1-rs",
- "displaydoc",
- "nom",
- "num-bigint 0.4.3",
- "num-traits",
- "rusticata-macros",
-]
-
-[[package]]
-name = "derivative"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
-]
-
-[[package]]
-name = "digest"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
-dependencies = [
- "generic-array 0.12.4",
-]
-
-[[package]]
-name = "digest"
-version = "0.10.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
-dependencies = [
- "const-oid 0.9.1",
- "crypto-common",
-]
-
-[[package]]
-name = "displaydoc"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
-]
-
-[[package]]
-name = "env_logger"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
-dependencies = [
- "humantime",
- "is-terminal",
- "log",
- "regex",
- "termcolor",
-]
-
-[[package]]
-name = "errno"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d6a0976c999d473fe89ad888d5a284e55366d9dc9038b1ba2aa15128c4afa0"
-dependencies = [
- "errno-dragonfly",
- "libc",
- "windows-sys 0.45.0",
-]
-
-[[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
-dependencies = [
- "cc",
- "libc",
-]
-
-[[package]]
-name = "fake-simd"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
-
-[[package]]
-name = "fastrand"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
-dependencies = [
- "instant",
-]
-
-[[package]]
-name = "fdeflate"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10"
-dependencies = [
- "simd-adler32",
-]
-
-[[package]]
-name = "flate2"
-version = "1.0.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841"
-dependencies = [
- "crc32fast",
- "miniz_oxide 0.6.2",
-]
-
-[[package]]
-name = "foreign-types"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
-dependencies = [
- "foreign-types-macros",
- "foreign-types-shared",
-]
-
-[[package]]
-name = "foreign-types-macros"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8469d0d40519bc608ec6863f1cc88f3f1deee15913f2f3b3e573d81ed38cccc"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
-]
-
-[[package]]
-name = "foreign-types-shared"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
-
-[[package]]
-name = "fs_extra"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
-
-[[package]]
-name = "fslock"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04412b8935272e3a9bae6f48c7bfff74c2911f60525404edfdd28e49884c3bfb"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "generic-array"
-version = "0.12.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd"
-dependencies = [
- "typenum",
-]
-
-[[package]]
-name = "generic-array"
-version = "0.14.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
-dependencies = [
- "typenum",
- "version_check",
-]
-
-[[package]]
-name = "gethostname"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.1.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi 0.9.0+wasi-snapshot-preview1",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.2.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
-]
-
-[[package]]
-name = "glob"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
-
-[[package]]
-name = "hash32"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67"
-dependencies = [
- "byteorder",
-]
-
-[[package]]
-name = "hashbrown"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-
-[[package]]
-name = "heapless"
-version = "0.7.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db04bc24a18b9ea980628ecf00e6c0264f3c1426dac36c00cb49b6fbad8b0743"
-dependencies = [
- "atomic-polyfill",
- "hash32",
- "rustc_version",
- "spin 0.9.4",
- "stable_deref_trait",
-]
-
-[[package]]
-name = "heck"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
-
-[[package]]
-name = "hermit-abi"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hmac"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695"
-dependencies = [
- "crypto-mac",
- "digest 0.8.1",
-]
-
-[[package]]
-name = "humantime"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
-
-[[package]]
-name = "indexmap"
-version = "1.9.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"
-dependencies = [
- "autocfg",
- "hashbrown",
-]
-
-[[package]]
-name = "inout"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
-dependencies = [
- "generic-array 0.14.6",
-]
-
-[[package]]
-name = "instant"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "io-lifetimes"
-version = "1.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46112a93252b123d31a119a8d1a1ac19deac4fac6e0e8b0df58f0d4e5870e63c"
-dependencies = [
- "libc",
- "windows-sys 0.42.0",
-]
-
-[[package]]
-name = "is-terminal"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28dfb6c8100ccc63462345b67d1bbc3679177c75ee4bf59bf29c8b1d110b8189"
-dependencies = [
- "hermit-abi 0.2.6",
- "io-lifetimes",
- "rustix 0.36.16",
- "windows-sys 0.42.0",
-]
-
-[[package]]
-name = "iso7816"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7e6ac743d509349b7865595ce90bbfcfbe59f42b8ec0db9e76ec361ace3f652"
-dependencies = [
- "delog",
- "heapless",
-]
-
-[[package]]
-name = "iso7816-tlv"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d47365efc3b4c252f8a3384445c0f7e8a4e0ae5c22bf3bedd2dd16f9bb45016a"
-dependencies = [
- "untrusted 0.9.0",
-]
-
-[[package]]
-name = "itoa"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440"
-
-[[package]]
-name = "js-sys"
-version = "0.3.60"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
-dependencies = [
- "wasm-bindgen",
-]
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-dependencies = [
- "spin 0.5.2",
-]
-
-[[package]]
-name = "lazycell"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
-
-[[package]]
-name = "libc"
-version = "0.2.141"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5"
-
-[[package]]
-name = "libloading"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
-dependencies = [
- "cfg-if",
- "winapi",
-]
-
-[[package]]
-name = "libm"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb"
-
-[[package]]
-name = "linux-raw-sys"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
-
-[[package]]
-name = "linux-raw-sys"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd550e73688e6d578f0ac2119e32b797a327631a42f9433e59d02e139c8df60d"
-
-[[package]]
-name = "lock_api"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
-dependencies = [
- "autocfg",
- "scopeguard",
-]
-
-[[package]]
-name = "log"
-version = "0.4.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "md-5"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a18af3dcaf2b0219366cdb4e2af65a6101457b415c3d1a5c71dd9c2b7c77b9c8"
-dependencies = [
- "block-buffer",
- "digest 0.8.1",
- "opaque-debug",
-]
-
-[[package]]
-name = "md4"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4030c65cf2aab7ada769cae7d1e7159f8d034d6ded4f39afba037f094bfd9a1"
-dependencies = [
- "block-buffer",
- "digest 0.8.1",
- "fake-simd",
- "opaque-debug",
-]
-
-[[package]]
-name = "memchr"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
-
-[[package]]
-name = "minimal-lexical"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
-
-[[package]]
-name = "miniz_oxide"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa"
-dependencies = [
- "adler",
-]
-
-[[package]]
-name = "miniz_oxide"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
-dependencies = [
- "adler",
- "simd-adler32",
-]
-
-[[package]]
-name = "nom"
-version = "7.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36"
-dependencies = [
- "memchr",
- "minimal-lexical",
-]
-
-[[package]]
-name = "num-bigint"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-bigint"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-bigint-dig"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2399c9463abc5f909349d8aa9ba080e0b88b3ce2885389b60b993f39b1a56905"
-dependencies = [
- "byteorder",
- "lazy_static",
- "libm",
- "num-integer",
- "num-iter",
- "num-traits",
- "rand 0.8.5",
- "smallvec",
- "zeroize",
-]
-
-[[package]]
-name = "num-derive"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
-]
-
-[[package]]
-name = "num-integer"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
-dependencies = [
- "autocfg",
- "num-traits",
-]
-
-[[package]]
-name = "num-iter"
-version = "0.1.43"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-traits"
-version = "0.2.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
-dependencies = [
- "autocfg",
- "libm",
-]
-
-[[package]]
-name = "num_enum"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca565a7df06f3d4b485494f25ba05da1435950f4dc263440eda7a6fa9b8e36e4"
-dependencies = [
- "derivative",
- "num_enum_derive",
-]
-
-[[package]]
-name = "num_enum_derive"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffa5a33ddddfee04c0283a7653987d634e880347e96b5b2ed64de07efb59db9d"
-dependencies = [
- "proc-macro-crate",
- "proc-macro2",
- "quote",
- "syn 1.0.107",
-]
-
-[[package]]
-name = "oid-registry"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff"
-dependencies = [
- "asn1-rs",
-]
-
-[[package]]
-name = "once_cell"
-version = "1.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
-
-[[package]]
-name = "opaque-debug"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
-
-[[package]]
-name = "os_str_bytes"
-version = "6.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee"
-
-[[package]]
-name = "peeking_take_while"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
-
-[[package]]
-name = "pem-rfc7468"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01de5d978f34aa4b2296576379fcc416034702fd94117c56ffd8a1a767cefb30"
-dependencies = [
- "base64ct",
-]
-
-[[package]]
-name = "pem-rfc7468"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24d159833a9105500e0398934e205e0773f0b27529557134ecfc51c27646adac"
-dependencies = [
- "base64ct",
-]
-
-[[package]]
-name = "pkcs1"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a78f66c04ccc83dd4486fd46c33896f4e17b24a7a3a6400dedc48ed0ddd72320"
-dependencies = [
- "der 0.5.1",
- "pkcs8 0.8.0",
- "zeroize",
-]
-
-[[package]]
-name = "pkcs1"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eff33bdbdfc54cc98a2eca766ebdec3e1b8fb7387523d5c9c9a2891da856f719"
-dependencies = [
- "der 0.6.1",
- "pkcs8 0.9.0",
- "spki 0.6.0",
- "zeroize",
-]
-
-[[package]]
-name = "pkcs8"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0"
-dependencies = [
- "der 0.5.1",
- "spki 0.5.4",
- "zeroize",
-]
-
-[[package]]
-name = "pkcs8"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba"
-dependencies = [
- "der 0.6.1",
- "spki 0.6.0",
-]
-
-[[package]]
-name = "png"
-version = "0.17.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aaeebc51f9e7d2c150d3f3bfeb667f2aa985db5ef1e3d212847bdedb488beeaa"
-dependencies = [
- "bitflags 1.3.2",
- "crc32fast",
- "fdeflate",
- "flate2",
- "miniz_oxide 0.7.1",
-]
-
-[[package]]
-name = "ppv-lite86"
-version = "0.2.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
-
-[[package]]
-name = "proc-macro-crate"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
-dependencies = [
- "toml",
-]
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.69"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.33"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "rand"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
-dependencies = [
- "getrandom 0.1.16",
- "libc",
- "rand_chacha 0.2.2",
- "rand_core 0.5.1",
- "rand_hc",
-]
-
-[[package]]
-name = "rand"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
-dependencies = [
- "libc",
- "rand_chacha 0.3.1",
- "rand_core 0.6.4",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
-dependencies = [
- "ppv-lite86",
- "rand_core 0.5.1",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
-dependencies = [
- "ppv-lite86",
- "rand_core 0.6.4",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-dependencies = [
- "getrandom 0.1.16",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
-dependencies = [
- "getrandom 0.2.8",
-]
-
-[[package]]
-name = "rand_hc"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-dependencies = [
- "rand_core 0.5.1",
-]
-
-[[package]]
-name = "rc4"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f1256e23efe6097f27aa82d6ca6889361c001586ae0f6917cbad072f05eb275"
-dependencies = [
- "cipher",
-]
-
-[[package]]
-name = "rdp-client"
-version = "0.1.0"
-dependencies = [
- "bitflags 2.4.1",
- "byteorder",
- "cbindgen",
- "env_logger",
- "iso7816",
- "iso7816-tlv",
- "libc",
- "log",
- "num-derive",
- "num-traits",
- "png",
- "rand 0.8.5",
- "rand_chacha 0.3.1",
- "rdp-rs",
- "rsa 0.8.2",
- "tempfile",
- "utf16string",
- "uuid",
-]
-
-[[package]]
-name = "rdp-rs"
-version = "0.1.0"
-source = "git+https://github.com/gravitational/rdp-rs?rev=0ddb504e10051aaa8f0de57580a973d2853a5b7d#0ddb504e10051aaa8f0de57580a973d2853a5b7d"
-dependencies = [
- "boring",
- "bufstream",
- "byteorder",
- "gethostname",
- "hmac",
- "indexmap",
- "md-5",
- "md4",
- "num-bigint 0.2.6",
- "num_enum",
- "oid-registry",
- "rand 0.7.3",
- "rc4",
- "ring",
- "rsa 0.6.1",
- "rustls",
- "x509-parser",
- "yasna",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
-dependencies = [
- "bitflags 1.3.2",
-]
-
-[[package]]
-name = "regex"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-syntax"
-version = "0.6.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
-
-[[package]]
-name = "ring"
-version = "0.16.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
-dependencies = [
- "cc",
- "libc",
- "once_cell",
- "spin 0.5.2",
- "untrusted 0.7.1",
- "web-sys",
- "winapi",
-]
-
-[[package]]
-name = "rsa"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cf22754c49613d2b3b119f0e5d46e34a2c628a937e3024b8762de4e7d8c710b"
-dependencies = [
- "byteorder",
- "digest 0.10.6",
- "num-bigint-dig",
- "num-integer",
- "num-iter",
- "num-traits",
- "pkcs1 0.3.3",
- "pkcs8 0.8.0",
- "rand_core 0.6.4",
- "smallvec",
- "subtle 2.4.1",
- "zeroize",
-]
-
-[[package]]
-name = "rsa"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55a77d189da1fee555ad95b7e50e7457d91c0e089ec68ca69ad2989413bbdab4"
-dependencies = [
- "byteorder",
- "digest 0.10.6",
- "num-bigint-dig",
- "num-integer",
- "num-iter",
- "num-traits",
- "pkcs1 0.4.1",
- "pkcs8 0.9.0",
- "rand_core 0.6.4",
- "signature",
- "subtle 2.4.1",
- "zeroize",
-]
-
-[[package]]
-name = "rustc-hash"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
-
-[[package]]
-name = "rustc_version"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
-dependencies = [
- "semver",
-]
-
-[[package]]
-name = "rusticata-macros"
-version = "4.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632"
-dependencies = [
- "nom",
-]
-
-[[package]]
-name = "rustix"
-version = "0.36.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6da3636faa25820d8648e0e31c5d519bbb01f72fdf57131f0f5f7da5fed36eab"
-dependencies = [
- "bitflags 1.3.2",
- "errno",
- "io-lifetimes",
- "libc",
- "linux-raw-sys 0.1.4",
- "windows-sys 0.45.0",
-]
-
-[[package]]
-name = "rustix"
-version = "0.37.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c348b5dc624ecee40108aa2922fed8bad89d7fcc2b9f8cb18f632898ac4a37f9"
-dependencies = [
- "bitflags 1.3.2",
- "errno",
- "io-lifetimes",
- "libc",
- "linux-raw-sys 0.3.0",
- "windows-sys 0.45.0",
-]
-
-[[package]]
-name = "rustls"
-version = "0.20.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "539a2bfe908f471bfa933876bd1eb6a19cf2176d375f82ef7f99530a40e48c2c"
-dependencies = [
- "log",
- "ring",
- "sct",
- "webpki",
-]
-
-[[package]]
-name = "ryu"
-version = "1.0.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
-
-[[package]]
-name = "scopeguard"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-
-[[package]]
-name = "sct"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
-dependencies = [
- "ring",
- "untrusted 0.7.1",
-]
-
-[[package]]
-name = "semver"
-version = "1.0.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a"
-
-[[package]]
-name = "serde"
-version = "1.0.151"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97fed41fc1a24994d044e6db6935e69511a1153b52c15eb42493b26fa87feba0"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.151"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "255abe9a125a985c05190d687b320c12f9b1f0b99445e608c21ba0782c719ad8"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.91"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883"
-dependencies = [
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "shlex"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
-
-[[package]]
-name = "signature"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fe458c98333f9c8152221191a77e2a44e8325d0193484af2e9421a53019e57d"
-dependencies = [
- "digest 0.10.6",
- "rand_core 0.6.4",
-]
-
-[[package]]
-name = "simd-adler32"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f"
-
-[[package]]
-name = "smallvec"
-version = "1.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
-
-[[package]]
-name = "spin"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
-
-[[package]]
-name = "spin"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f6002a767bff9e83f8eeecf883ecb8011875a21ae8da43bffb817a57e78cc09"
-dependencies = [
- "lock_api",
-]
-
-[[package]]
-name = "spki"
-version = "0.5.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27"
-dependencies = [
- "base64ct",
- "der 0.5.1",
-]
-
-[[package]]
-name = "spki"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b"
-dependencies = [
- "base64ct",
- "der 0.6.1",
-]
-
-[[package]]
-name = "stable_deref_trait"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
-
-[[package]]
-name = "strsim"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
-
-[[package]]
-name = "subtle"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee"
-
-[[package]]
-name = "subtle"
-version = "2.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
-
-[[package]]
-name = "syn"
-version = "1.0.107"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "syn"
-version = "2.0.39"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "synstructure"
-version = "0.12.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
- "unicode-xid",
-]
-
-[[package]]
-name = "tempfile"
-version = "3.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998"
-dependencies = [
- "cfg-if",
- "fastrand",
- "redox_syscall",
- "rustix 0.37.4",
- "windows-sys 0.45.0",
-]
-
-[[package]]
-name = "termcolor"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "textwrap"
-version = "0.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
-
-[[package]]
-name = "thiserror"
-version = "1.0.38"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0"
-dependencies = [
- "thiserror-impl",
-]
-
-[[package]]
-name = "thiserror-impl"
-version = "1.0.38"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
-]
-
-[[package]]
-name = "time"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376"
-dependencies = [
- "itoa",
- "serde",
- "time-core",
- "time-macros",
-]
-
-[[package]]
-name = "time-core"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
-
-[[package]]
-name = "time-macros"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2"
-dependencies = [
- "time-core",
-]
-
-[[package]]
-name = "toml"
-version = "0.5.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1333c76748e868a4d9d1017b5ab53171dfd095f70c712fdb4653a406547f598f"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "typenum"
-version = "1.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
-
-[[package]]
-name = "unicode-ident"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
-
-[[package]]
-name = "unicode-xid"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
-
-[[package]]
-name = "untrusted"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
-
-[[package]]
-name = "untrusted"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
-
-[[package]]
-name = "utf16string"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b62a1e85e12d5d712bf47a85f426b73d303e2d00a90de5f3004df3596e9d216"
-dependencies = [
- "byteorder",
-]
-
-[[package]]
-name = "uuid"
-version = "1.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b55a3fef2a1e3b3a00ce878640918820d3c51081576ac657d23af9fc7928fdb"
-dependencies = [
- "getrandom 0.2.8",
-]
-
-[[package]]
-name = "version_check"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-
-[[package]]
-name = "wasi"
-version = "0.9.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-
-[[package]]
-name = "wasi"
-version = "0.11.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-
-[[package]]
-name = "wasm-bindgen"
-version = "0.2.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268"
-dependencies = [
- "cfg-if",
- "wasm-bindgen-macro",
-]
-
-[[package]]
-name = "wasm-bindgen-backend"
-version = "0.2.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142"
-dependencies = [
- "bumpalo",
- "log",
- "once_cell",
- "proc-macro2",
- "quote",
- "syn 1.0.107",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-macro"
-version = "0.2.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810"
-dependencies = [
- "quote",
- "wasm-bindgen-macro-support",
-]
-
-[[package]]
-name = "wasm-bindgen-macro-support"
-version = "0.2.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
- "wasm-bindgen-backend",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-shared"
-version = "0.2.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f"
-
-[[package]]
-name = "web-sys"
-version = "0.3.60"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f"
-dependencies = [
- "js-sys",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "webpki"
-version = "0.22.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07ecc0cd7cac091bf682ec5efa18b1cff79d617b84181f38b3951dbe135f607f"
-dependencies = [
- "ring",
- "untrusted 0.7.1",
-]
-
-[[package]]
-name = "winapi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
-name = "winapi-util"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-
-[[package]]
-name = "windows-sys"
-version = "0.42.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
-dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.45.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
-dependencies = [
- "windows-targets",
-]
-
-[[package]]
-name = "windows-targets"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
-dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
-]
-
-[[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
-
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
-
-[[package]]
-name = "x509-parser"
-version = "0.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8"
-dependencies = [
- "asn1-rs",
- "base64",
- "data-encoding",
- "der-parser",
- "lazy_static",
- "nom",
- "oid-registry",
- "rusticata-macros",
- "thiserror",
- "time",
-]
-
-[[package]]
-name = "yasna"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0de7bff972b4f2a06c85f6d8454b09df153af7e3a4ec2aac81db1b105b684ddb"
-
-[[package]]
-name = "zeroize"
-version = "1.5.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f"
diff --git a/pkgs/servers/teleport/13/default.nix b/pkgs/servers/teleport/13/default.nix
deleted file mode 100644
index a35385374c585..0000000000000
--- a/pkgs/servers/teleport/13/default.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-args:
-import ../generic.nix (args // {
-  version = "13.4.14";
-  hash = "sha256-g11D5lekI3pUpKf5CLUuNjejs0gN/bEemHkCj3akha0=";
-  vendorHash = "sha256-kiDhlR/P81u/yNq72JuskES/UzMrTFzJT0H3xldGk8I=";
-  yarnHash = "sha256-E9T+7aXVoERdUnVEL4va2fcMnv1jsL9Js/R2LZo4hu4=";
-  cargoLock = {
-    lockFile = ./Cargo.lock;
-    outputHashes = {
-      "rdp-rs-0.1.0" = "sha256-4NbAsEmyUdmBcHuzx+SLQCGKICC4V4FX4GTK2SzyHC0=";
-    };
-  };
-  extPatches = [
-    # https://github.com/NixOS/nixpkgs/issues/120738
-    ../tsh.patch
-  ];
-})
diff --git a/pkgs/servers/teleport/14/Cargo.lock b/pkgs/servers/teleport/14/Cargo.lock
index d8ea54f8599fc..7148f803bba23 100644
--- a/pkgs/servers/teleport/14/Cargo.lock
+++ b/pkgs/servers/teleport/14/Cargo.lock
@@ -96,9 +96,9 @@ checksum = "b645a089122eccb6111b4f81cbc1a49f5900ac4666bb93ac027feaecf15607bf"
 
 [[package]]
 name = "bindgen"
-version = "0.66.1"
+version = "0.68.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7"
+checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078"
 dependencies = [
  "bitflags 2.4.0",
  "cexpr",
@@ -149,9 +149,9 @@ dependencies = [
 
 [[package]]
 name = "boring"
-version = "3.1.0"
+version = "4.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ae1aba472e42d3cf45ac6d0a6c8fc3ddf743871209e1b40229aed9fbdf48ece"
+checksum = "92667e5967bf826198f88dd3e43616973f8902769a6151616a65be1289a3c531"
 dependencies = [
  "bitflags 2.4.0",
  "boring-sys",
@@ -162,9 +162,9 @@ dependencies = [
 
 [[package]]
 name = "boring-sys"
-version = "3.1.0"
+version = "4.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ceced5be0047c7c48d77599535fd7f0a81c1b0f0a1e97e7eece24c45022bb481"
+checksum = "f04f5e0e2dc8315f68251391a4ac6da54793525c01d0206b10732b71139768cd"
 dependencies = [
  "bindgen",
  "cmake",
@@ -1233,7 +1233,7 @@ dependencies = [
 [[package]]
 name = "rdp-rs"
 version = "0.1.0"
-source = "git+https://github.com/gravitational/rdp-rs?rev=0ddb504e10051aaa8f0de57580a973d2853a5b7d#0ddb504e10051aaa8f0de57580a973d2853a5b7d"
+source = "git+https://github.com/gravitational/rdp-rs?rev=edfb5330a11d11eaf36d65e4300555368b4c6b02#edfb5330a11d11eaf36d65e4300555368b4c6b02"
 dependencies = [
  "boring",
  "bufstream",
@@ -1462,9 +1462,9 @@ dependencies = [
 
 [[package]]
 name = "shlex"
-version = "1.1.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
 
 [[package]]
 name = "signature"
diff --git a/pkgs/servers/teleport/14/default.nix b/pkgs/servers/teleport/14/default.nix
index 59cf021201ddb..456938012664d 100644
--- a/pkgs/servers/teleport/14/default.nix
+++ b/pkgs/servers/teleport/14/default.nix
@@ -1,13 +1,13 @@
 args:
 import ../generic.nix (args // {
-  version = "14.3.0";
-  hash = "sha256-yTbJeHCmPlelq7BrZQRY3XyNQiovV7NQ1tNh2NfYGbk=";
-  vendorHash = "sha256-lHsgSbY1nqQminU67QgV6FbHXNlv5tCMv2oVq48S33M=";
-  yarnHash = "sha256-m934P+KygGiCzr5fDsNTlmZ1T9JxA6P8zTimocQyVi0=";
+  version = "14.3.20";
+  hash = "sha256-oGN3t0xt7z3+U7wlhnJu4B8cSSMwONdiHZkv8UY7lkA=";
+  vendorHash = "sha256-RMTHWrbwKCGlxi9SP+8ccGk8YYqwhC8yWLPDf2Ha5bE=";
+  yarnHash = "sha256-c5ItZpq9Wp+kE9gw2WQdm5gTvBKA9I+nHAX/pT4Hqhs=";
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "rdp-rs-0.1.0" = "sha256-4NbAsEmyUdmBcHuzx+SLQCGKICC4V4FX4GTK2SzyHC0=";
+      "rdp-rs-0.1.0" = "sha256-U52FVuqo2DH/7f0cQ1qcb1GbFZ97yxExVFMX5cs0zw4=";
     };
   };
   extPatches = [
diff --git a/pkgs/servers/teleport/15/Cargo.lock b/pkgs/servers/teleport/15/Cargo.lock
index 2ca88c909399a..f3606ee85f562 100644
--- a/pkgs/servers/teleport/15/Cargo.lock
+++ b/pkgs/servers/teleport/15/Cargo.lock
@@ -1161,7 +1161,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-async"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "bytes",
  "ironrdp-connector",
@@ -1172,7 +1172,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-cliprdr"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "bitflags 2.4.2",
  "ironrdp-pdu",
@@ -1184,7 +1184,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-connector"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "ironrdp-error",
  "ironrdp-pdu",
@@ -1197,9 +1197,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "ironrdp-displaycontrol"
+version = "0.1.0"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
+dependencies = [
+ "ironrdp-dvc",
+ "ironrdp-pdu",
+ "ironrdp-svc",
+ "tracing",
+]
+
+[[package]]
 name = "ironrdp-dvc"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "ironrdp-pdu",
  "ironrdp-svc",
@@ -1210,12 +1221,12 @@ dependencies = [
 [[package]]
 name = "ironrdp-error"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 
 [[package]]
 name = "ironrdp-graphics"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "bit_field",
  "bitflags 2.4.2",
@@ -1232,7 +1243,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-pdu"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "bit_field",
  "bitflags 2.4.2",
@@ -1254,7 +1265,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-rdpdr"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "bitflags 2.4.2",
  "ironrdp-error",
@@ -1266,7 +1277,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-rdpsnd"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "ironrdp-pdu",
  "ironrdp-svc",
@@ -1275,9 +1286,10 @@ dependencies = [
 [[package]]
 name = "ironrdp-session"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "ironrdp-connector",
+ "ironrdp-displaycontrol",
  "ironrdp-dvc",
  "ironrdp-error",
  "ironrdp-graphics",
@@ -1289,7 +1301,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-svc"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "bitflags 2.4.2",
  "ironrdp-pdu",
@@ -1298,7 +1310,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-tls"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "tokio",
  "tokio-rustls",
@@ -1308,7 +1320,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-tokio"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "bytes",
  "ironrdp-async",
@@ -1972,6 +1984,8 @@ dependencies = [
  "env_logger",
  "ironrdp-cliprdr",
  "ironrdp-connector",
+ "ironrdp-displaycontrol",
+ "ironrdp-dvc",
  "ironrdp-pdu",
  "ironrdp-rdpdr",
  "ironrdp-rdpsnd",
@@ -2172,9 +2186,9 @@ dependencies = [
 
 [[package]]
 name = "rustls"
-version = "0.21.9"
+version = "0.21.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9"
+checksum = "7fecbfb7b1444f477b345853b1fce097a2c6fb637b2bfb87e6bc5db0f043fae4"
 dependencies = [
  "log",
  "ring",
@@ -2976,9 +2990,9 @@ dependencies = [
 
 [[package]]
 name = "uuid"
-version = "1.6.1"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560"
+checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
 dependencies = [
  "getrandom",
  "serde",
diff --git a/pkgs/servers/teleport/15/default.nix b/pkgs/servers/teleport/15/default.nix
index a3d0bcefda34a..8c356547270a4 100644
--- a/pkgs/servers/teleport/15/default.nix
+++ b/pkgs/servers/teleport/15/default.nix
@@ -1,14 +1,14 @@
 { wasm-bindgen-cli, ... }@args:
 import ../generic.nix (args // {
-  version = "15.2.2";
-  hash = "sha256-LzJaskFaBtWkodeuT4mDNTs4+6FZj2OI+ZtjogU3KzQ=";
-  vendorHash = "sha256-D62Jk6LKdbprvkzAKoQVnEKdGQp5ITJYFf53q6154pU=";
-  yarnHash = "sha256-jpcjO1wT6m8J7LNQVeWo1j2G5P+sexrnNF1ipCZ8lCU=";
+  version = "15.3.7";
+  hash = "sha256-d+lfM1yt0xAWBqAqBCdEFcOHz32VT0EI4LybVbmjW0o=";
+  vendorHash = "sha256-pM6wy1tuMmUg8iNfeSmg8dW1cvP7G3fXa3vYuSEEdOc=";
+  yarnHash = "sha256-eWrR06FVkFxCrk+Z7BrY4dJjvEnUYzYrhSeD8ir3a08=";
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
       "boring-4.4.0" = "sha256-4wdl2kIA5oHQ0H6IddKQ+B5kRwrTeMbKe1+tAYZt2uw=";
-      "ironrdp-async-0.1.0" = "sha256-BKaVPr3O4D7DdwNJUjrU1zB7OwmJZnpJeyuMx+FqKjI=";
+      "ironrdp-async-0.1.0" = "sha256-NpBzPsvopu5Te6Ljln5rp1Wxc6O6mRB4lLh0JVnN+Xc=";
       "sspi-0.10.1" = "sha256-fkclC/plTh2d8zcmqthYmr5yXqbPTeFxI1VuaPX5vxk=";
     };
   };
diff --git a/pkgs/servers/teleport/default.nix b/pkgs/servers/teleport/default.nix
index b5fc9936e814b..79eafe5286831 100644
--- a/pkgs/servers/teleport/default.nix
+++ b/pkgs/servers/teleport/default.nix
@@ -1,7 +1,6 @@
 { callPackages, lib, ... }@args:
 let
   f = args: rec {
-    teleport_13 = import ./13 args;
     teleport_14 = import ./14 args;
     teleport_15 = import ./15 args;
     teleport = teleport_15;
diff --git a/pkgs/servers/teleport/generic.nix b/pkgs/servers/teleport/generic.nix
index e47845ea56c6f..51bea403f7dbf 100644
--- a/pkgs/servers/teleport/generic.nix
+++ b/pkgs/servers/teleport/generic.nix
@@ -76,10 +76,6 @@ let
 
     cargoDeps = rustPlatform.importCargoLock cargoLock;
 
-    RUSTFLAGS = builtins.concatStringsSep " " [
-      "-C linker=lld"
-    ];
-
     nativeBuildInputs = [ nodejs yarn fixup-yarn-lock ] ++
       lib.optional (lib.versionAtLeast version "15") [
         binaryen
@@ -184,6 +180,12 @@ buildGoModule rec {
     platforms = platforms.unix;
     # go-libfido2 is broken on platforms with less than 64-bit because it defines an array
     # which occupies more than 31 bits of address space.
-    broken = stdenv.hostPlatform.parsed.cpu.bits < 64;
+    broken = stdenv.hostPlatform.parsed.cpu.bits < 64 ||
+      # See comment about wasm32-unknown-unknown in rustc.nix.
+      # version 15 is the first that starts to use wasm
+      (lib.versionAtLeast version "15") && (
+        lib.any (a: lib.hasAttr a stdenv.hostPlatform.gcc) [ "cpu" "float-abi" "fpu" ] ||
+        !stdenv.hostPlatform.gcc.thumb or true
+      );
   };
 }
diff --git a/pkgs/servers/tidb/default.nix b/pkgs/servers/tidb/default.nix
index 5d929dfe348ed..c5da10baaa3ce 100644
--- a/pkgs/servers/tidb/default.nix
+++ b/pkgs/servers/tidb/default.nix
@@ -2,31 +2,29 @@
 
 buildGoModule rec {
   pname = "tidb";
-  version = "7.4.0";
+  version = "8.1.0";
 
   src = fetchFromGitHub {
     owner = "pingcap";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-OsyQ7YZjErjfWg/1wf21AxBu2wrotey8hJSzoQQ0OSc=";
+    sha256 = "sha256-i8soETbTWmFZQqKYcRoLXVIgFCQxHDvXZbJNjDmS8Jo=";
   };
 
-  vendorHash = "sha256-jtuf3/CClz37TTQ2zs49yryccoaraAG4UrIOIlBYFqQ=";
+  vendorHash = "sha256-RNYL5tb6d8NhNiOm3x8sgo1SEc8+uMdWgYor/VL3C6s=";
 
   ldflags = [
-    "-s"
-    "-w"
-    "-X github.com/pingcap/tidb/dumpling/cli.ReleaseVersion=${version}"
-    "-X github.com/pingcap/tidb/util/versioninfo.TiDBEdition=Community"
+    "-X github.com/pingcap/tidb/pkg/parser/mysql.TiDBReleaseVersion=${version}"
+    "-X github.com/pingcap/tidb/pkg/util/versioninfo.TiDBEdition=Community"
   ];
 
-  subPackages = [ "tidb-server" ];
+  subPackages = [ "cmd/tidb-server" ];
 
   meta = with lib; {
-    description = "An open-source, cloud-native, distributed, MySQL-Compatible database for elastic scale and real-time analytics";
+    description = "Open-source, cloud-native, distributed, MySQL-Compatible database for elastic scale and real-time analytics";
     homepage = "https://pingcap.com";
     license = licenses.asl20;
-    maintainers = [];
+    maintainers = with maintainers; [ Makuru ];
     mainProgram = "tidb-server";
   };
 }
diff --git a/pkgs/servers/tracing/honeycomb/refinery/default.nix b/pkgs/servers/tracing/honeycomb/refinery/default.nix
index d1c7f9d909587..f4e29dbcb36cb 100644
--- a/pkgs/servers/tracing/honeycomb/refinery/default.nix
+++ b/pkgs/servers/tracing/honeycomb/refinery/default.nix
@@ -30,7 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/honeycombio/refinery";
-    description = "A tail-sampling proxy for OpenTelemetry";
+    description = "Tail-sampling proxy for OpenTelemetry";
     license = licenses.asl20;
     maintainers = with maintainers; [ lf- ];
     mainProgram = "refinery";
diff --git a/pkgs/servers/tracing/tempo/default.nix b/pkgs/servers/tracing/tempo/default.nix
index d18eb7df58e75..fbd633b43cff6 100644
--- a/pkgs/servers/tracing/tempo/default.nix
+++ b/pkgs/servers/tracing/tempo/default.nix
@@ -2,14 +2,14 @@
 
 buildGoModule rec {
   pname = "tempo";
-  version = "2.4.2";
+  version = "2.5.0";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = "tempo";
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-n7jv9Ki3cLlPDzm9IT0XLTT8t1nlifI0+SRAV6XDJlA=";
+    hash = "sha256-SSAeJOOd282Mnmaj/W5sM8J64qvD9/0SvlbHUtXYYF8=";
   };
 
   vendorHash = null;
@@ -34,7 +34,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A high volume, minimal dependency trace storage";
+    description = "High volume, minimal dependency trace storage";
     license = licenses.asl20;
     homepage = "https://grafana.com/oss/tempo/";
     maintainers = with maintainers; [ willibutz ];
diff --git a/pkgs/servers/traefik/default.nix b/pkgs/servers/traefik/default.nix
index 3e429e3595f73..375347b22fc12 100644
--- a/pkgs/servers/traefik/default.nix
+++ b/pkgs/servers/traefik/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "traefik";
-  version = "3.0.0";
+  version = "3.0.3";
 
   # Archive with static assets for webui
   src = fetchzip {
     url = "https://github.com/traefik/traefik/releases/download/v${version}/traefik-v${version}.src.tar.gz";
-    hash = "sha256-OX9VJpO+SWIsocaSu+BhF3HT+zrhhgxb5NBvaRTadIY=";
+    hash = "sha256-vjY8sbNkY/kdQiJ020iUWxIVzxkmpkeLhxBThc6tUuE=";
     stripRoot = false;
   };
 
-  vendorHash = "sha256-GRVSZB4GojXv2xAdx8Y5RSuhF/3paRhhq7HOWLRmmHE=";
+  vendorHash = "sha256-rvo3nw9yUfikO82cy6BbukwqwBSrUCCEta3nKBprCbk=";
 
   subPackages = [ "cmd/traefik" ];
 
@@ -32,7 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://traefik.io";
-    description = "A modern reverse proxy";
+    description = "Modern reverse proxy";
     changelog = "https://github.com/traefik/traefik/raw/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ vdemeester ];
diff --git a/pkgs/servers/tt-rss/plugin-auth-ldap/default.nix b/pkgs/servers/tt-rss/plugin-auth-ldap/default.nix
index f47156091a4b1..6261c1f5f3fd6 100644
--- a/pkgs/servers/tt-rss/plugin-auth-ldap/default.nix
+++ b/pkgs/servers/tt-rss/plugin-auth-ldap/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch }:
+{ lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "tt-rss-plugin-auth-ldap";
diff --git a/pkgs/servers/udpt/default.nix b/pkgs/servers/udpt/default.nix
index 6d5b0bb90993f..b5c601a9305b5 100644
--- a/pkgs/servers/udpt/default.nix
+++ b/pkgs/servers/udpt/default.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = {
-    description = "A lightweight UDP torrent tracker";
+    description = "Lightweight UDP torrent tracker";
     homepage = "https://naim94a.github.io/udpt";
     license = lib.licenses.gpl3;
     platforms = lib.platforms.all;
diff --git a/pkgs/servers/uhub/default.nix b/pkgs/servers/uhub/default.nix
index df76789f90869..37bddc3759f5d 100644
--- a/pkgs/servers/uhub/default.nix
+++ b/pkgs/servers/uhub/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchpatch, fetchFromGitHub, cmake, openssl, sqlite, pkg-config
+{ lib, stdenv, fetchFromGitHub, cmake, openssl, sqlite, pkg-config
 , systemd, tlsSupport ? false }:
 
 assert tlsSupport -> openssl != null;
diff --git a/pkgs/servers/ums/default.nix b/pkgs/servers/ums/default.nix
index e862884a457b6..bfed80373746e 100644
--- a/pkgs/servers/ums/default.nix
+++ b/pkgs/servers/ums/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = {
       description = "Universal Media Server: a DLNA-compliant UPnP Media Server";
-      license = lib.licenses.gpl2;
+      license = lib.licenses.gpl2Only;
       platforms = lib.platforms.linux;
       maintainers = with lib.maintainers; [ thall snicket2100 ];
       mainProgram = "ums";
diff --git a/pkgs/servers/unifi/default.nix b/pkgs/servers/unifi/default.nix
index 9bf705c26bf80..1f186bb14e213 100644
--- a/pkgs/servers/unifi/default.nix
+++ b/pkgs/servers/unifi/default.nix
@@ -52,7 +52,8 @@ in rec {
   };
 
   unifi8 = generic {
-    version = "8.1.127";
-    sha256 = "sha256-7Xg4I0Kuvta4oKzkduCda7aonTFzutrQJK03FLqM0KE=";
+    version = "8.2.93";
+    suffix = "-1c329ecd26";
+    sha256 = "sha256-7zcRxflEvPRxH7MtudOqumeUpSzAaEIbjaaJVpr2Gbc=";
   };
 }
diff --git a/pkgs/servers/unifiedpush-common-proxies/default.nix b/pkgs/servers/unifiedpush-common-proxies/default.nix
index 72740b07cb365..49915ee9f4392 100644
--- a/pkgs/servers/unifiedpush-common-proxies/default.nix
+++ b/pkgs/servers/unifiedpush-common-proxies/default.nix
@@ -5,19 +5,19 @@
 
 buildGoModule rec {
   pname = "unifiedpush-common-proxies";
-  version = "1.5.0";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "unifiedpush";
     repo = "common-proxies";
     rev = "v${version}";
-    sha256 = "sha256-eonKHhaH7mAdW7ouprQivMxKPGFv0s1m/S8jGwid8kM=";
+    sha256 = "sha256-nKmWYBB/1akcISWxNgZxb15ROVQBcBbTn0HF+WZSb58=";
   };
 
-  vendorHash = "sha256-s0uN6PzIaAHLvRb9T07Xvb6mMAuvKHQ4oFJtl5hsvY4=";
+  vendorHash = "sha256-wVZR/h0AtwZ1eo7EoRKNzaS2Wp0X01e2u3Ugmsnj644=";
 
   meta = with lib; {
-    description = "A set of rewrite proxies and gateways for UnifiedPush";
+    description = "Set of rewrite proxies and gateways for UnifiedPush";
     homepage = "https://github.com/UnifiedPush/common-proxies";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/servers/urserver/default.nix b/pkgs/servers/urserver/default.nix
index c5c57f70f0986..0e73bebe71fbc 100644
--- a/pkgs/servers/urserver/default.nix
+++ b/pkgs/servers/urserver/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://www.unifiedremote.com/";
-    description = "The one-and-only remote for your computer";
+    description = "One-and-only remote for your computer";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ sfrijters ];
diff --git a/pkgs/servers/uwsgi/default.nix b/pkgs/servers/uwsgi/default.nix
index 92b0131ff411e..1f874236fbd6b 100644
--- a/pkgs/servers/uwsgi/default.nix
+++ b/pkgs/servers/uwsgi/default.nix
@@ -71,13 +71,13 @@ in
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "uwsgi";
-  version = "2.0.25.1";
+  version = "2.0.26";
 
   src = fetchFromGitHub {
     owner = "unbit";
     repo = "uwsgi";
     rev = finalAttrs.version;
-    hash = "sha256-hAjwn5sZynMNBPw2dAtuf0xIbnDSraIWas6OEGdJlfc=";
+    hash = "sha256-3nmmVNNDvQ1RzaD5BQFrScHHnmUtMwjo3wodEGIJCvI=";
   };
 
   patches = [
@@ -163,9 +163,9 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A fast, self-healing and developer/sysadmin-friendly application container server coded in pure C";
+    description = "Fast, self-healing and developer/sysadmin-friendly application container server coded in pure C";
     homepage = "https://uwsgi-docs.readthedocs.org/en/latest/";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ abbradar schneefux globin ];
     platforms = lib.platforms.unix;
     mainProgram = "uwsgi";
diff --git a/pkgs/servers/varnish/default.nix b/pkgs/servers/varnish/default.nix
index 5327f4edb19ee..ddc190a2887a3 100644
--- a/pkgs/servers/varnish/default.nix
+++ b/pkgs/servers/varnish/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, pcre, pcre2, jemalloc, libunwind, libxslt, groff, ncurses, pkg-config, readline, libedit
+{ lib, stdenv, fetchurl, pcre, pcre2, jemalloc, libunwind, libxslt, groff, ncurses, pkg-config, readline, libedit
 , coreutils, python3, makeWrapper, nixosTests }:
 
 let
diff --git a/pkgs/servers/varnish/packages.nix b/pkgs/servers/varnish/packages.nix
index 1ddfe7348ed0a..ff9b565cae581 100644
--- a/pkgs/servers/varnish/packages.nix
+++ b/pkgs/servers/varnish/packages.nix
@@ -1,4 +1,4 @@
-{ callPackages, callPackage, varnish60, varnish74, varnish75, fetchFromGitHub }: {
+{ callPackages, callPackage, varnish60, varnish74, varnish75 }: {
   varnish60Packages = rec {
     varnish = varnish60;
     modules = (callPackages ./modules.nix { inherit varnish; }).modules15;
diff --git a/pkgs/servers/vouch-proxy/default.nix b/pkgs/servers/vouch-proxy/default.nix
index 7fdd1ad6fd265..28a06b0e02168 100644
--- a/pkgs/servers/vouch-proxy/default.nix
+++ b/pkgs/servers/vouch-proxy/default.nix
@@ -28,7 +28,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/vouch/vouch-proxy";
-    description = "An SSO and OAuth / OIDC login solution for NGINX using the auth_request module";
+    description = "SSO and OAuth / OIDC login solution for NGINX using the auth_request module";
     changelog = "https://github.com/vouch/vouch-proxy/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ leona erictapen ];
diff --git a/pkgs/servers/web-apps/5etools/default.nix b/pkgs/servers/web-apps/5etools/default.nix
index 856384aa173f0..66a0f8dbc77da 100644
--- a/pkgs/servers/web-apps/5etools/default.nix
+++ b/pkgs/servers/web-apps/5etools/default.nix
@@ -10,7 +10,7 @@ fetchFromGitHub rec {
   hash = "sha256-0+QjtcmKsfcSehvn4DChBhSVooy9wlqaSCgeAFgeL+w=";
 
   meta = with lib; {
-    description = "A suite of browser-based tools for players and DMs of D&D 5e";
+    description = "Suite of browser-based tools for players and DMs of D&D 5e";
     homepage = "https://5e.tools";
     changelog = "https://github.com/5etools-mirror-1/5etools-mirror-1.github.io/releases/tag/v${version}";
     license = [ licenses.mit ];
diff --git a/pkgs/servers/web-apps/bookstack/default.nix b/pkgs/servers/web-apps/bookstack/default.nix
index c9ef56c67582c..926da9e6c55e7 100644
--- a/pkgs/servers/web-apps/bookstack/default.nix
+++ b/pkgs/servers/web-apps/bookstack/default.nix
@@ -16,17 +16,17 @@ let
 
 in package.override rec {
   pname = "bookstack";
-  version = "24.02.3";
+  version = "24.05.1";
 
   src = fetchFromGitHub {
     owner = "bookstackapp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-+8J7dB666KZSJbvnmJl/PivtMQ6Hlz3AAy6E1xpRRmU=";
+    sha256 = "1m20435sp4n3dg7am4lh73yw1wdmnsf15wdl554lrklhg7f21s0w";
   };
 
   meta = with lib; {
-    description = "A platform to create documentation/wiki content built with PHP & Laravel";
+    description = "Platform to create documentation/wiki content built with PHP & Laravel";
     longDescription = ''
       A platform for storing and organising information and documentation.
       Details for BookStack can be found on the official website at https://www.bookstackapp.com/.
diff --git a/pkgs/servers/web-apps/bookstack/php-packages.nix b/pkgs/servers/web-apps/bookstack/php-packages.nix
index 7c343011726c2..a154144fc16d5 100644
--- a/pkgs/servers/web-apps/bookstack/php-packages.nix
+++ b/pkgs/servers/web-apps/bookstack/php-packages.nix
@@ -5,20 +5,20 @@ let
     "aws/aws-crt-php" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "aws-aws-crt-php-eb0c6e4e142224a10b08f49ebf87f32611d162b2";
+        name = "aws-aws-crt-php-0ea1f04ec5aa9f049f97e012d1ed63b76834a31b";
         src = fetchurl {
-          url = "https://api.github.com/repos/awslabs/aws-crt-php/zipball/eb0c6e4e142224a10b08f49ebf87f32611d162b2";
-          sha256 = "10fnazz3gv51i6dngrc6hbcmzwrvl6mmd2z44rrdbzz3ry8v3vc9";
+          url = "https://api.github.com/repos/awslabs/aws-crt-php/zipball/0ea1f04ec5aa9f049f97e012d1ed63b76834a31b";
+          sha256 = "1xx5yhq99z752pagij5djja4812p4s711188j8qk8wi0dl7331zm";
         };
       };
     };
     "aws/aws-sdk-php" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "aws-aws-sdk-php-957ccef631684d612d01ced2fa3b0506f2ec78c3";
+        name = "aws-aws-sdk-php-cc79f16e1a1bd3feee421401ba2f21915abfdf91";
         src = fetchurl {
-          url = "https://api.github.com/repos/aws/aws-sdk-php/zipball/957ccef631684d612d01ced2fa3b0506f2ec78c3";
-          sha256 = "1chckiccr061c063wwf502d545wji4p5g6ak6z6dl36jjkrip7v4";
+          url = "https://api.github.com/repos/aws/aws-sdk-php/zipball/cc79f16e1a1bd3feee421401ba2f21915abfdf91";
+          sha256 = "1dg6g31hwn8b0drsvg077im9bnp5x0zhqsdwck6qq02kzyimjsy2";
         };
       };
     };
@@ -32,33 +32,13 @@ let
         };
       };
     };
-    "barryvdh/laravel-dompdf" = {
-      targetDir = "";
-      src = composerEnv.buildZipPackage {
-        name = "barryvdh-laravel-dompdf-9843d2be423670fb434f4c978b3c0f4dd92c87a6";
-        src = fetchurl {
-          url = "https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/9843d2be423670fb434f4c978b3c0f4dd92c87a6";
-          sha256 = "1b7j7rnba50ibsnjzxz3bcnpcii51qrin5p0ivi0bzm57xhvns9s";
-        };
-      };
-    };
-    "barryvdh/laravel-snappy" = {
-      targetDir = "";
-      src = composerEnv.buildZipPackage {
-        name = "barryvdh-laravel-snappy-940eec2d99b89cbc9bea2f493cf068382962a485";
-        src = fetchurl {
-          url = "https://api.github.com/repos/barryvdh/laravel-snappy/zipball/940eec2d99b89cbc9bea2f493cf068382962a485";
-          sha256 = "0i168sq1sah83xw3xfrilnpja789q79zvhjfgfcszd10g7y444gc";
-        };
-      };
-    };
     "brick/math" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "brick-math-0ad82ce168c82ba30d1c01ec86116ab52f589478";
+        name = "brick-math-f510c0a40911935b77b86859eb5223d58d660df1";
         src = fetchurl {
-          url = "https://api.github.com/repos/brick/math/zipball/0ad82ce168c82ba30d1c01ec86116ab52f589478";
-          sha256 = "04kqy1hqvp4634njjjmhrc2g828d69sk6q3c55bpqnnmsqf154yb";
+          url = "https://api.github.com/repos/brick/math/zipball/f510c0a40911935b77b86859eb5223d58d660df1";
+          sha256 = "1cgj6qfjjl76jyjxxkdmnzl0sc8y3pkvcw91lpjdlp4jnqlq31by";
         };
       };
     };
@@ -105,10 +85,10 @@ let
     "doctrine/dbal" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "doctrine-dbal-a19a1d05ca211f41089dffcc387733a6875196cb";
+        name = "doctrine-dbal-b05e48a745f722801f55408d0dbd8003b403dbbd";
         src = fetchurl {
-          url = "https://api.github.com/repos/doctrine/dbal/zipball/a19a1d05ca211f41089dffcc387733a6875196cb";
-          sha256 = "11lcmw8pmgfp7wmn4miainyl2c060s4igq4g94azxl1v5bqaypis";
+          url = "https://api.github.com/repos/doctrine/dbal/zipball/b05e48a745f722801f55408d0dbd8003b403dbbd";
+          sha256 = "0bca75y1wadpab0ns31s3wbvvxsq108i8jfyrh4xnifl56wb8pvh";
         };
       };
     };
@@ -125,10 +105,10 @@ let
     "doctrine/event-manager" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "doctrine-event-manager-95aa4cb529f1e96576f3fda9f5705ada4056a520";
+        name = "doctrine-event-manager-750671534e0241a7c50ea5b43f67e23eb5c96f32";
         src = fetchurl {
-          url = "https://api.github.com/repos/doctrine/event-manager/zipball/95aa4cb529f1e96576f3fda9f5705ada4056a520";
-          sha256 = "0xi2s28jmmvrndg1yd0r5s10d9a0q6j2dxdbazvcbws9waf0yrvj";
+          url = "https://api.github.com/repos/doctrine/event-manager/zipball/750671534e0241a7c50ea5b43f67e23eb5c96f32";
+          sha256 = "1inhh3k8ai8d6rhx5xsbdx0ifc3yjjfrahi0cy1npz9nx3383cfh";
         };
       };
     };
@@ -145,20 +125,20 @@ let
     "doctrine/lexer" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "doctrine-lexer-861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6";
+        name = "doctrine-lexer-31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd";
         src = fetchurl {
-          url = "https://api.github.com/repos/doctrine/lexer/zipball/861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6";
-          sha256 = "0q25i1d6nqkrj4yc35my6b51kn2nksddhddm13vkc7ilkkn20pg7";
+          url = "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd";
+          sha256 = "1yaznxpd1d8h3ij262hx946nqvhzsgjmafdgnxbaiarc6nslww25";
         };
       };
     };
     "dompdf/dompdf" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "dompdf-dompdf-093f2d9739cec57428e39ddadedfd4f3ae862c0f";
+        name = "dompdf-dompdf-c20247574601700e1f7c8dab39310fca1964dc52";
         src = fetchurl {
-          url = "https://api.github.com/repos/dompdf/dompdf/zipball/093f2d9739cec57428e39ddadedfd4f3ae862c0f";
-          sha256 = "0852xp3qfg40byhv7z4bma9bpiyrc3yral3p9xhk8g62jjddvayn";
+          url = "https://api.github.com/repos/dompdf/dompdf/zipball/c20247574601700e1f7c8dab39310fca1964dc52";
+          sha256 = "01r93dlglgvd1dnpq0jpjajr0vwkv56zyi9xafw423lyg2ghn3n0";
         };
       };
     };
@@ -175,10 +155,20 @@ let
     "egulias/email-validator" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "egulias-email-validator-e5997fa97e8790cdae03a9cbd5e78e45e3c7bda7";
+        name = "egulias-email-validator-ebaaf5be6c0286928352e054f2d5125608e5405e";
+        src = fetchurl {
+          url = "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e";
+          sha256 = "02n4sh0gywqzsl46n9q8hqqgiyva2gj4lxdz9fw4pvhkm1s27wd6";
+        };
+      };
+    };
+    "firebase/php-jwt" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "firebase-php-jwt-500501c2ce893c824c801da135d02661199f60c5";
         src = fetchurl {
-          url = "https://api.github.com/repos/egulias/EmailValidator/zipball/e5997fa97e8790cdae03a9cbd5e78e45e3c7bda7";
-          sha256 = "16s7k5ck8bzk83xfy46fikjyj4jywalriqba8jvd5ngd177s2mw5";
+          url = "https://api.github.com/repos/firebase/php-jwt/zipball/500501c2ce893c824c801da135d02661199f60c5";
+          sha256 = "1dnn4r2yrckai5f88riix9ws615007x6x9i6j7621kmy5a05xaiq";
         };
       };
     };
@@ -242,33 +232,53 @@ let
         };
       };
     };
+    "intervention/gif" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "intervention-gif-3a2b5f8a8856e8877cdab5c47e51aab2d4cb23a3";
+        src = fetchurl {
+          url = "https://api.github.com/repos/Intervention/gif/zipball/3a2b5f8a8856e8877cdab5c47e51aab2d4cb23a3";
+          sha256 = "1b2ljm2pi03p0jzkvl2da2bqv60xniyasgz0wv3xi9qjxv7abbx6";
+        };
+      };
+    };
     "intervention/image" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "intervention-image-04be355f8d6734c826045d02a1079ad658322dad";
+        name = "intervention-image-193324ec88bc5ad4039e57ce9b926ae28dfde813";
         src = fetchurl {
-          url = "https://api.github.com/repos/Intervention/image/zipball/04be355f8d6734c826045d02a1079ad658322dad";
-          sha256 = "1cbg43hm2jgwb7gm1r9xcr4cpx8ng1zr93zx6shk9xhjlssnv0bx";
+          url = "https://api.github.com/repos/Intervention/image/zipball/193324ec88bc5ad4039e57ce9b926ae28dfde813";
+          sha256 = "18p2xgbvdzyx9wjid5iviyfx81k7za73b729ar3fyjd646x8niwi";
         };
       };
     };
     "knplabs/knp-snappy" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "knplabs-knp-snappy-3db13fe45d12a7bccb2b83f622e5a90f7e40b111";
+        name = "knplabs-knp-snappy-98468898b50c09f26d56d905b79b0f52a2215da6";
         src = fetchurl {
-          url = "https://api.github.com/repos/KnpLabs/snappy/zipball/3db13fe45d12a7bccb2b83f622e5a90f7e40b111";
-          sha256 = "1l4nln4cg01ywv9lzi5srnm7jq4q1v0210j9sshq34vx8slll9di";
+          url = "https://api.github.com/repos/KnpLabs/snappy/zipball/98468898b50c09f26d56d905b79b0f52a2215da6";
+          sha256 = "158fsqrnqw0my381f8cfvy5savcvlmpazfbn8j5ds26mldv59csa";
         };
       };
     };
     "laravel/framework" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "laravel-framework-082345d76fc6a55b649572efe10b11b03e279d24";
+        name = "laravel-framework-91e2b9e218afa4e5c377510faa11957042831ba3";
+        src = fetchurl {
+          url = "https://api.github.com/repos/laravel/framework/zipball/91e2b9e218afa4e5c377510faa11957042831ba3";
+          sha256 = "05rzgsvqlyjbpwx69vq5vlk4fqwi7vxs5qacizyqnrihck9laahs";
+        };
+      };
+    };
+    "laravel/prompts" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "laravel-prompts-23ea808e8a145653e0ab29e30d4385e49f40a920";
         src = fetchurl {
-          url = "https://api.github.com/repos/laravel/framework/zipball/082345d76fc6a55b649572efe10b11b03e279d24";
-          sha256 = "0gzpj0cgnqncxd4h196k5mvv169xzmy8c6bdwm5pkdy0f2hnb6lq";
+          url = "https://api.github.com/repos/laravel/prompts/zipball/23ea808e8a145653e0ab29e30d4385e49f40a920";
+          sha256 = "0ysyqn1xivinv4lrqd1vifk50ccrxfjyv7ndsh433hb2961n3r52";
         };
       };
     };
@@ -285,10 +295,10 @@ let
     "laravel/socialite" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "laravel-socialite-7dae1b072573809f32ab6dcf4aebb57c8b3e8acf";
+        name = "laravel-socialite-c7b0193a3753a29aff8ce80aa2f511917e6ed68a";
         src = fetchurl {
-          url = "https://api.github.com/repos/laravel/socialite/zipball/7dae1b072573809f32ab6dcf4aebb57c8b3e8acf";
-          sha256 = "1jd65mk5hww4iq6xkky1dkmz8c06czlb466s4svg4vf1xhb9dxqj";
+          url = "https://api.github.com/repos/laravel/socialite/zipball/c7b0193a3753a29aff8ce80aa2f511917e6ed68a";
+          sha256 = "0aym6n2ljqwfxrm5s3h7q98xggnblhk5q4whn46wyyvclqysj2bs";
         };
       };
     };
@@ -325,30 +335,30 @@ let
     "league/flysystem" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "league-flysystem-b25a361508c407563b34fac6f64a8a17a8819675";
+        name = "league-flysystem-4729745b1ab737908c7d055148c9a6b3e959832f";
         src = fetchurl {
-          url = "https://api.github.com/repos/thephpleague/flysystem/zipball/b25a361508c407563b34fac6f64a8a17a8819675";
-          sha256 = "07fd3nqvs9wnl7wwlii3aaalpdldgf6agk2l1ihl3w253qyg8ynn";
+          url = "https://api.github.com/repos/thephpleague/flysystem/zipball/4729745b1ab737908c7d055148c9a6b3e959832f";
+          sha256 = "13kf4l7mp4mifm09av0w7vfcwnmpvjpsic836xh8a8rlfczgjym2";
         };
       };
     };
     "league/flysystem-aws-s3-v3" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "league-flysystem-aws-s3-v3-809474e37b7fb1d1f8bcc0f8a98bc1cae99aa513";
+        name = "league-flysystem-aws-s3-v3-3e6ce2f972f1470db779f04d29c289dcd2c32837";
         src = fetchurl {
-          url = "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/809474e37b7fb1d1f8bcc0f8a98bc1cae99aa513";
-          sha256 = "0iv1n4y6w4pa2051wxvnkcap08jb86qgfx1hb6w8z5rngg67nz4d";
+          url = "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/3e6ce2f972f1470db779f04d29c289dcd2c32837";
+          sha256 = "01l7nbdmrh1vb59m7xhc1kjfz6xrp5871ghrb6c1anwcsh20l9r3";
         };
       };
     };
     "league/flysystem-local" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "league-flysystem-local-b884d2bf9b53bb4804a56d2df4902bb51e253f00";
+        name = "league-flysystem-local-61a6a90d6e999e4ddd9ce5adb356de0939060b92";
         src = fetchurl {
-          url = "https://api.github.com/repos/thephpleague/flysystem-local/zipball/b884d2bf9b53bb4804a56d2df4902bb51e253f00";
-          sha256 = "1ggpc08rdaqk2wxkvklfi6l7nqzd6ch2dgf9icr1shfiv09l0mp6";
+          url = "https://api.github.com/repos/thephpleague/flysystem-local/zipball/61a6a90d6e999e4ddd9ce5adb356de0939060b92";
+          sha256 = "0mkcqhmxgq5pwbfzqc26z06384v7plva5s71pqyqdaayb1hlyg1f";
         };
       };
     };
@@ -395,20 +405,20 @@ let
     "masterminds/html5" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "masterminds-html5-f47dcf3c70c584de14f21143c55d9939631bc6cf";
+        name = "masterminds-html5-f5ac2c0b0a2eefca70b2ce32a5809992227e75a6";
         src = fetchurl {
-          url = "https://api.github.com/repos/Masterminds/html5-php/zipball/f47dcf3c70c584de14f21143c55d9939631bc6cf";
-          sha256 = "1n2xiyxqmxk9g34wn1lg2yyivwg2ry8iqk8m7g2432gm97rmyb20";
+          url = "https://api.github.com/repos/Masterminds/html5-php/zipball/f5ac2c0b0a2eefca70b2ce32a5809992227e75a6";
+          sha256 = "1fbicmaw79rycpywbbxm2fs3lnmb1a7jvfx6d9sb6nvfhsy924fx";
         };
       };
     };
     "monolog/monolog" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "monolog-monolog-437cb3628f4cf6042cc10ae97fc2b8472e48ca1f";
+        name = "monolog-monolog-4b18b21a5527a3d5ffdac2fd35d3ab25a9597654";
         src = fetchurl {
-          url = "https://api.github.com/repos/Seldaek/monolog/zipball/437cb3628f4cf6042cc10ae97fc2b8472e48ca1f";
-          sha256 = "02xaa057fj2bjf6g6zx80rb6ikcgn601ns50ml51b8yp48pjdla3";
+          url = "https://api.github.com/repos/Seldaek/monolog/zipball/4b18b21a5527a3d5ffdac2fd35d3ab25a9597654";
+          sha256 = "1k7ggaygbcm3ls9pkwm5qmf3a1b5i1bd953jy839km0lh4gz637s";
         };
       };
     };
@@ -435,10 +445,10 @@ let
     "nette/schema" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "nette-schema-0462f0166e823aad657c9224d0f849ecac1ba10a";
+        name = "nette-schema-a6d3a6d1f545f01ef38e60f375d1cf1f4de98188";
         src = fetchurl {
-          url = "https://api.github.com/repos/nette/schema/zipball/0462f0166e823aad657c9224d0f849ecac1ba10a";
-          sha256 = "0x2pz3mjnx78ndxm5532ld3kwzs9p43l4snk4vjbwnqiqgcpqwn7";
+          url = "https://api.github.com/repos/nette/schema/zipball/a6d3a6d1f545f01ef38e60f375d1cf1f4de98188";
+          sha256 = "0byhgs7jv0kybv0x3xycvi0x2gh7009a3dfgs02yqzzjbbwvrzgz";
         };
       };
     };
@@ -455,10 +465,10 @@ let
     "nikic/php-parser" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "nikic-php-parser-2218c2252c874a4624ab2f613d86ac32d227bc69";
+        name = "nikic-php-parser-139676794dc1e9231bf7bcd123cfc0c99182cb13";
         src = fetchurl {
-          url = "https://api.github.com/repos/nikic/PHP-Parser/zipball/2218c2252c874a4624ab2f613d86ac32d227bc69";
-          sha256 = "1dkil9kcp1abwa4nhpmy8my6srj70994mjh7wnhyw8yy084nf11z";
+          url = "https://api.github.com/repos/nikic/PHP-Parser/zipball/139676794dc1e9231bf7bcd123cfc0c99182cb13";
+          sha256 = "1z4bvxvxs09099i3khiydmzy8lqjvk8kdani2qipmkq9vzf9pq56";
         };
       };
     };
@@ -485,10 +495,10 @@ let
     "paragonie/constant_time_encoding" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "paragonie-constant_time_encoding-58c3f47f650c94ec05a151692652a868995d2938";
+        name = "paragonie-constant_time_encoding-52a0d99e69f56b9ec27ace92ba56897fe6993105";
         src = fetchurl {
-          url = "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/58c3f47f650c94ec05a151692652a868995d2938";
-          sha256 = "0i9km0lzvc7df9758fm1p3y0679pzvr5m9x3mrz0d2hxlppsm764";
+          url = "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/52a0d99e69f56b9ec27ace92ba56897fe6993105";
+          sha256 = "1ja5b3fm5v665igrd37vs28zdipbh1xgh57lil2iaggvh1b8kh4x";
         };
       };
     };
@@ -515,10 +525,10 @@ let
     "phenx/php-svg-lib" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "phenx-php-svg-lib-732faa9fb4309221e2bd9b2fda5de44f947133aa";
+        name = "phenx-php-svg-lib-46b25da81613a9cf43c83b2a8c2c1bdab27df691";
         src = fetchurl {
-          url = "https://api.github.com/repos/dompdf/php-svg-lib/zipball/732faa9fb4309221e2bd9b2fda5de44f947133aa";
-          sha256 = "0hjf562cm8mvb36c2s63bh5104j6m5c27lwd4pgj3lwmq6mpzns6";
+          url = "https://api.github.com/repos/dompdf/php-svg-lib/zipball/46b25da81613a9cf43c83b2a8c2c1bdab27df691";
+          sha256 = "1bpkank11plq1xwxv5psn8ip4pk9qxffmgf71k0bzq26xa2b2v8b";
         };
       };
     };
@@ -535,10 +545,10 @@ let
     "phpseclib/phpseclib" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "phpseclib-phpseclib-c2fb5136162d4be18fdd4da9980696f3aee96d7b";
+        name = "phpseclib-phpseclib-cfa2013d0f68c062055180dd4328cc8b9d1f30b8";
         src = fetchurl {
-          url = "https://api.github.com/repos/phpseclib/phpseclib/zipball/c2fb5136162d4be18fdd4da9980696f3aee96d7b";
-          sha256 = "1n13c34w27vkrjz87vq7dxzz1xi0vj7xzj5slibdm1wfpvbsbg2m";
+          url = "https://api.github.com/repos/phpseclib/phpseclib/zipball/cfa2013d0f68c062055180dd4328cc8b9d1f30b8";
+          sha256 = "1wgzy4fbj565czpn9xasr8lnd9ilh1x3bsalrpx5bskvqr4zspgj";
         };
       };
     };
@@ -615,10 +625,10 @@ let
     "psr/http-factory" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "psr-http-factory-e616d01114759c4c489f93b099585439f795fe35";
+        name = "psr-http-factory-2b4765fddfe3b508ac62f829e852b1501d3f6e8a";
         src = fetchurl {
-          url = "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35";
-          sha256 = "1vzimn3h01lfz0jx0lh3cy9whr3kdh103m1fw07qric4pnnz5kx8";
+          url = "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a";
+          sha256 = "1ll0pzm0vd5kn45hhwrlkw2z9nqysqkykynn1bk1a73c5cjrghx3";
         };
       };
     };
@@ -655,10 +665,10 @@ let
     "psy/psysh" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "psy-psysh-750bf031a48fd07c673dbe3f11f72362ea306d0d";
+        name = "psy-psysh-b6b6cce7d3ee8fbf31843edce5e8f5a72eff4a73";
         src = fetchurl {
-          url = "https://api.github.com/repos/bobthecow/psysh/zipball/750bf031a48fd07c673dbe3f11f72362ea306d0d";
-          sha256 = "0kcs6g31v6k760dwapdbx34vqliispf8dhwrjjgrv34ysfbwrgvc";
+          url = "https://api.github.com/repos/bobthecow/psysh/zipball/b6b6cce7d3ee8fbf31843edce5e8f5a72eff4a73";
+          sha256 = "0k3fz94cafw7r8wrs5ybb15wmxiv65yqkyhj2l3m185659iym2p3";
         };
       };
     };
@@ -675,20 +685,20 @@ let
     "ramsey/collection" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "ramsey-collection-ad7475d1c9e70b190ecffc58f2d989416af339b4";
+        name = "ramsey-collection-a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5";
         src = fetchurl {
-          url = "https://api.github.com/repos/ramsey/collection/zipball/ad7475d1c9e70b190ecffc58f2d989416af339b4";
-          sha256 = "1a1wqdwdrbzkf2hias2kw9crr31265pn027vm69pr7alyq2qrzfw";
+          url = "https://api.github.com/repos/ramsey/collection/zipball/a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5";
+          sha256 = "0y5s9rbs023sw94yzvxr8fn9rr7xw03f08zmc9n9jl49zlr5s52p";
         };
       };
     };
     "ramsey/uuid" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "ramsey-uuid-5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e";
+        name = "ramsey-uuid-91039bc1faa45ba123c4328958e620d382ec7088";
         src = fetchurl {
-          url = "https://api.github.com/repos/ramsey/uuid/zipball/5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e";
-          sha256 = "0gnpj6jsmwr5azxq8ymp0zpscgxcwld7ps2q9rbkbndr9f9cpkkg";
+          url = "https://api.github.com/repos/ramsey/uuid/zipball/91039bc1faa45ba123c4328958e620d382ec7088";
+          sha256 = "0n6rj0b042fq319gfnp2c4aawawfz8vb2allw30jjfaf8497hh9j";
         };
       };
     };
@@ -735,20 +745,20 @@ let
     "socialiteproviders/manager" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "socialiteproviders-manager-a67f194f0f4c4c7616c549afc697b78df9658d44";
+        name = "socialiteproviders-manager-dea5190981c31b89e52259da9ab1ca4e2b258b21";
         src = fetchurl {
-          url = "https://api.github.com/repos/SocialiteProviders/Manager/zipball/a67f194f0f4c4c7616c549afc697b78df9658d44";
-          sha256 = "0r5c6q7dm02hnk574br5mrm1z8amrxjxcbf4n94l02vq9din2c0m";
+          url = "https://api.github.com/repos/SocialiteProviders/Manager/zipball/dea5190981c31b89e52259da9ab1ca4e2b258b21";
+          sha256 = "11lvz1lckglh5nz0nvv0ifw9a2yfcgzlf30h09ci0d6cklkqf3la";
         };
       };
     };
     "socialiteproviders/microsoft-azure" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "socialiteproviders-microsoft-azure-7522b27cd8518706b50e03b40a396fb0a6891feb";
+        name = "socialiteproviders-microsoft-azure-453d62c9d7e3b3b76e94c913fb46e68a33347b16";
         src = fetchurl {
-          url = "https://api.github.com/repos/SocialiteProviders/Microsoft-Azure/zipball/7522b27cd8518706b50e03b40a396fb0a6891feb";
-          sha256 = "0nlxyvcn3vc273rq9cp2yhm72mqfj31csnla5bqsaqdshzfk8pna";
+          url = "https://api.github.com/repos/SocialiteProviders/Microsoft-Azure/zipball/453d62c9d7e3b3b76e94c913fb46e68a33347b16";
+          sha256 = "0wcqwpj2x3llnisixz8id8ww0vr1cab7mh19mvf33dymxzydv11h";
         };
       };
     };
@@ -765,130 +775,130 @@ let
     "socialiteproviders/twitch" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "socialiteproviders-twitch-7accf30ae7a3139b757b4ca8f34989c09a3dbee7";
+        name = "socialiteproviders-twitch-c8791b9d208195b5f02bea432de89d0e612b955d";
         src = fetchurl {
-          url = "https://api.github.com/repos/SocialiteProviders/Twitch/zipball/7accf30ae7a3139b757b4ca8f34989c09a3dbee7";
-          sha256 = "089i4fwxb32zmbxib0544jfs48wzjyp7bsqss2bf2xx89dsrx4ah";
+          url = "https://api.github.com/repos/SocialiteProviders/Twitch/zipball/c8791b9d208195b5f02bea432de89d0e612b955d";
+          sha256 = "1abdn0ykx7rirmm64wi2zbw8fj9jr7a7p88p2mnfxd87l2qcc4rc";
         };
       };
     };
     "ssddanbrown/htmldiff" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "ssddanbrown-htmldiff-58f81857c02b50b199273edb4cc339876b5a4038";
+        name = "ssddanbrown-htmldiff-92da405f8138066834b71ac7bedebbda6327761b";
         src = fetchurl {
-          url = "https://api.github.com/repos/ssddanbrown/HtmlDiff/zipball/58f81857c02b50b199273edb4cc339876b5a4038";
-          sha256 = "0ixsi2s1igvciwnal1v2w654n4idbfs8ipyiixch7k5nzxl4g7wm";
+          url = "https://api.github.com/repos/ssddanbrown/HtmlDiff/zipball/92da405f8138066834b71ac7bedebbda6327761b";
+          sha256 = "1l1s8fdpd7k39l7mslk7pqgg6bwk2c3644ifj58y6515sik6m142";
         };
       };
     };
     "ssddanbrown/symfony-mailer" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "ssddanbrown-symfony-mailer-2219dcdc5f58e4f382ce8f1e6942d16982aa3012";
+        name = "ssddanbrown-symfony-mailer-0497d6eb2734fe22b9550f88ae6526611c9df7ae";
         src = fetchurl {
-          url = "https://api.github.com/repos/ssddanbrown/symfony-mailer/zipball/2219dcdc5f58e4f382ce8f1e6942d16982aa3012";
-          sha256 = "14j99gr09mvgjf6jjxbw50zay8n9mg6c0w429hz3vrfaijc2ih8c";
+          url = "https://api.github.com/repos/ssddanbrown/symfony-mailer/zipball/0497d6eb2734fe22b9550f88ae6526611c9df7ae";
+          sha256 = "0zs2hhcyv7f5lmz4xn9gp5dixcixgm3gfj4l8chzmqg6x640l59r";
         };
       };
     };
     "symfony/console" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-console-c3ebc83d031b71c39da318ca8b7a07ecc67507ed";
+        name = "symfony-console-a170e64ae10d00ba89e2acbb590dc2e54da8ad8f";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/console/zipball/c3ebc83d031b71c39da318ca8b7a07ecc67507ed";
-          sha256 = "1vvdw2fg08x9788m50isspi06n0lhw6c6nif3di1snxfq0sgb1np";
+          url = "https://api.github.com/repos/symfony/console/zipball/a170e64ae10d00ba89e2acbb590dc2e54da8ad8f";
+          sha256 = "16fnydlalcv3ihj2z7b0nyp6cc260k5apxpx7q1vb0hdx8b7wl6a";
         };
       };
     };
     "symfony/css-selector" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-css-selector-f1d00bddb83a4cb2138564b2150001cb6ce272b1";
+        name = "symfony-css-selector-1c5d5c2103c3762aff27a27e1e2409e30a79083b";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/css-selector/zipball/f1d00bddb83a4cb2138564b2150001cb6ce272b1";
-          sha256 = "0nl94wjr5sm4yrx9y0vwk4dzh1hm17f1n3d71hmj7biyzds0474i";
+          url = "https://api.github.com/repos/symfony/css-selector/zipball/1c5d5c2103c3762aff27a27e1e2409e30a79083b";
+          sha256 = "0glngr70w1kx1gqliv1w0zk23pblc993i3apdlmb68gp04b8gd3f";
         };
       };
     };
     "symfony/deprecation-contracts" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-deprecation-contracts-26954b3d62a6c5fd0ea8a2a00c0353a14978d05c";
+        name = "symfony-deprecation-contracts-0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c";
-          sha256 = "1wlaj9ngbyjmgr92gjyf7lsmjfswyh8vpbzq5rdzaxjb6bcsj3dp";
+          url = "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1";
+          sha256 = "1qhyyfyd7q75nyqivjzrljmqa5qhh09gjs2vz7s3xadq0j525c2b";
         };
       };
     };
     "symfony/error-handler" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-error-handler-c7df52182f43a68522756ac31a532dd5b1e6db67";
+        name = "symfony-error-handler-667a072466c6a53827ed7b119af93806b884cbb3";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/error-handler/zipball/c7df52182f43a68522756ac31a532dd5b1e6db67";
-          sha256 = "1dqr0n3w6zmk96q7x8pz1przkiyb2kyg5mw3d1nmnyry8dryv7c8";
+          url = "https://api.github.com/repos/symfony/error-handler/zipball/667a072466c6a53827ed7b119af93806b884cbb3";
+          sha256 = "077xdy196mbcaqx6kv7p2sx2ygbmnja0xa9mn34d9b1gjmz7kkvj";
         };
       };
     };
     "symfony/event-dispatcher" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-event-dispatcher-2eaf8e63bc5b8cefabd4a800157f0d0c094f677a";
+        name = "symfony-event-dispatcher-d84384f3f67de3cb650db64d685d70395dacfc3f";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/event-dispatcher/zipball/2eaf8e63bc5b8cefabd4a800157f0d0c094f677a";
-          sha256 = "0wwphxh21n502wgldh3kqqhvl1zxh2yncbadwwh05d8sp5mz0ysn";
+          url = "https://api.github.com/repos/symfony/event-dispatcher/zipball/d84384f3f67de3cb650db64d685d70395dacfc3f";
+          sha256 = "1d22vxp7fnjd9chl0yd1gnnfdbcgxkcxzl2fynkdf5b1rsx5vly3";
         };
       };
     };
     "symfony/event-dispatcher-contracts" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-event-dispatcher-contracts-7bc61cc2db649b4637d331240c5346dcc7708051";
+        name = "symfony-event-dispatcher-contracts-8f93aec25d41b72493c6ddff14e916177c9efc50";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7bc61cc2db649b4637d331240c5346dcc7708051";
-          sha256 = "1crx2j4g5jn904fwk7919ar9zpyfd5bvgm80lmyg15kinsjm3w4i";
+          url = "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50";
+          sha256 = "1ybpwhcf82fpa7lj5n2i8jhba2qmq4850svd4nv3v852vwr98ani";
         };
       };
     };
     "symfony/finder" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-finder-5cc9cac6586fc0c28cd173780ca696e419fefa11";
+        name = "symfony-finder-511c48990be17358c23bf45c5d71ab85d40fb764";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/finder/zipball/5cc9cac6586fc0c28cd173780ca696e419fefa11";
-          sha256 = "1f0sbxczwcrzxb03cc2rshfzdrkjfg7nwkbvvi449qscaq1qx2dc";
+          url = "https://api.github.com/repos/symfony/finder/zipball/511c48990be17358c23bf45c5d71ab85d40fb764";
+          sha256 = "0m3cm549cnk893dx8dzggbjy49qyx9zln82xi4w4m8rf93pc2ph9";
         };
       };
     };
     "symfony/http-foundation" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-http-foundation-e16b2676a4b3b1fa12378a20b29c364feda2a8d6";
+        name = "symfony-http-foundation-b4db6b833035477cb70e18d0ae33cb7c2b521759";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/http-foundation/zipball/e16b2676a4b3b1fa12378a20b29c364feda2a8d6";
-          sha256 = "0d2fgzcxi7sq7j8l1lg2kpfsr6p1xk1lxdjyqr63vihm34i8p42g";
+          url = "https://api.github.com/repos/symfony/http-foundation/zipball/b4db6b833035477cb70e18d0ae33cb7c2b521759";
+          sha256 = "1wwa9ib2imrdq7qrplf2lkbzs2irhjdfrhwdxff5dvcpkvd80qgj";
         };
       };
     };
     "symfony/http-kernel" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-http-kernel-6dc70833fd0ef5e861e17c7854c12d7d86679349";
+        name = "symfony-http-kernel-b7b5e6cdef670a0c82d015a966ffc7e855861a98";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/http-kernel/zipball/6dc70833fd0ef5e861e17c7854c12d7d86679349";
-          sha256 = "1j1z911g4nsx7wjg14q1g7y98qj1k4crxnwxi97i4cjnyqihcj2r";
+          url = "https://api.github.com/repos/symfony/http-kernel/zipball/b7b5e6cdef670a0c82d015a966ffc7e855861a98";
+          sha256 = "0ggvbn2qiydv0qcp5rsa5dpjqffj239zcyxiplv5vk4gnc2jy4qr";
         };
       };
     };
     "symfony/mime" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-mime-d7052547a0070cbeadd474e172b527a00d657301";
+        name = "symfony-mime-decadcf3865918ecfcbfa90968553994ce935a5e";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/mime/zipball/d7052547a0070cbeadd474e172b527a00d657301";
-          sha256 = "005jfcpcdn8p2qqv1kyh14jijx36n3rrh9v9a9immfdr0gyv22ca";
+          url = "https://api.github.com/repos/symfony/mime/zipball/decadcf3865918ecfcbfa90968553994ce935a5e";
+          sha256 = "0piaiwigyjvy9mn2464ka3cvzkylw3i1b8by5qr52z0mhm6sv7g5";
         };
       };
     };
@@ -962,13 +972,13 @@ let
         };
       };
     };
-    "symfony/polyfill-php81" = {
+    "symfony/polyfill-php83" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-polyfill-php81-c565ad1e63f30e7477fc40738343c62b40bc672d";
+        name = "symfony-polyfill-php83-86fcae159633351e5fd145d1c47de6c528f8caff";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/polyfill-php81/zipball/c565ad1e63f30e7477fc40738343c62b40bc672d";
-          sha256 = "0xy6jjnqvc6v1s7wvdm1yplblpbh43ilis93vjrlv7hc7i6ygfzg";
+          url = "https://api.github.com/repos/symfony/polyfill-php83/zipball/86fcae159633351e5fd145d1c47de6c528f8caff";
+          sha256 = "0n81fmn058rn7hr70qdwpsnam57pp27avs3h8xcfnq8d3hci5gr4";
         };
       };
     };
@@ -985,80 +995,80 @@ let
     "symfony/process" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-process-2114fd60f26a296cc403a7939ab91478475a33d4";
+        name = "symfony-process-cdb1c81c145fd5aa9b0038bab694035020943381";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/process/zipball/2114fd60f26a296cc403a7939ab91478475a33d4";
-          sha256 = "1rpcl0qayf0jysfn95c4s73r7fl48sng4m5flxy099z6m6bblwq1";
+          url = "https://api.github.com/repos/symfony/process/zipball/cdb1c81c145fd5aa9b0038bab694035020943381";
+          sha256 = "1dlqa0fivwr3q7z2k7n657dzdwywh4ilv88fiwh3n8r09iblnc65";
         };
       };
     };
     "symfony/routing" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-routing-e56ca9b41c1ec447193474cd86ad7c0b547755ac";
+        name = "symfony-routing-276e06398f71fa2a973264d94f28150f93cfb907";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/routing/zipball/e56ca9b41c1ec447193474cd86ad7c0b547755ac";
-          sha256 = "0qsx525fhqnx6g5rn8lavzpqccrg2ixrp88p1g4yjr8x7i2im5nd";
+          url = "https://api.github.com/repos/symfony/routing/zipball/276e06398f71fa2a973264d94f28150f93cfb907";
+          sha256 = "1a9g57sdny5sph2w1i7wizssg90k50msalk7nhcy0p9q584r61g6";
         };
       };
     };
     "symfony/service-contracts" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-service-contracts-d78d39c1599bd1188b8e26bb341da52c3c6d8a66";
+        name = "symfony-service-contracts-bd1d9e59a81d8fa4acdcea3f617c581f7475a80f";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/service-contracts/zipball/d78d39c1599bd1188b8e26bb341da52c3c6d8a66";
-          sha256 = "1cgbn2yx2fyrc3c1d85vdriiwwifr1sdg868f3rhq9bh78f03z99";
+          url = "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f";
+          sha256 = "1q7382ingrvqdh7hm8lrwrimcvlv5qcmp6xrparfh1kmrsf45prv";
         };
       };
     };
     "symfony/string" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-string-d9e72497367c23e08bf94176d2be45b00a9d232a";
+        name = "symfony-string-ffeb9591c61f65a68d47f77d12b83fa530227a69";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/string/zipball/d9e72497367c23e08bf94176d2be45b00a9d232a";
-          sha256 = "0k4vvcjfdp2dni8gzq4rn8d6n0ivd38sfna70lgsh8vlc8rrlhpf";
+          url = "https://api.github.com/repos/symfony/string/zipball/ffeb9591c61f65a68d47f77d12b83fa530227a69";
+          sha256 = "0mw6issgmncy1xnnszwy0xa8cxqin41k4idk3wv6crdsywzylxkx";
         };
       };
     };
     "symfony/translation" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-translation-9c24b3fdbbe9fb2ef3a6afd8bbaadfd72dad681f";
+        name = "symfony-translation-7495687c58bfd88b7883823747b0656d90679123";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/translation/zipball/9c24b3fdbbe9fb2ef3a6afd8bbaadfd72dad681f";
-          sha256 = "12c13k5ljch06g8xp28kkpv0ml67hy086rk25mzd94hjpawrs4x2";
+          url = "https://api.github.com/repos/symfony/translation/zipball/7495687c58bfd88b7883823747b0656d90679123";
+          sha256 = "1s9kxq8nhiwg235jhfg00gzlixnxhcclw3wvmfdn6ijww4s62rqi";
         };
       };
     };
     "symfony/translation-contracts" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-translation-contracts-acbfbb274e730e5a0236f619b6168d9dedb3e282";
+        name = "symfony-translation-contracts-b9d2189887bb6b2e0367a9fc7136c5239ab9b05a";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/translation-contracts/zipball/acbfbb274e730e5a0236f619b6168d9dedb3e282";
-          sha256 = "1r496j63a6q3ch0ax76qa1apmc4iqf41zc8rf6yn8vkir3nzkqr0";
+          url = "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a";
+          sha256 = "0y9dp08gw7rk50i5lpci6n2hziajvps97g9j3sz148p0afdr5q3c";
         };
       };
     };
     "symfony/uid" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-uid-6499e28b0ac9f2aa3151e11845bdb5cd21e6bb9d";
+        name = "symfony-uid-a66efcb71d8bc3a207d9d78e0bd67f3321510355";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/uid/zipball/6499e28b0ac9f2aa3151e11845bdb5cd21e6bb9d";
-          sha256 = "12r2jgmwwchmq4apgmb2h1hy6i4cznjpc94976h2qzy3q3yp7zyq";
+          url = "https://api.github.com/repos/symfony/uid/zipball/a66efcb71d8bc3a207d9d78e0bd67f3321510355";
+          sha256 = "0aajisswwd938xkjci1nsz6ypmqidf4dhq2xjy55x1l1jpg4vkji";
         };
       };
     };
     "symfony/var-dumper" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-var-dumper-eb980457fa6899840fe1687e8627a03a7d8a3d52";
+        name = "symfony-var-dumper-7a9cd977cd1c5fed3694bee52990866432af07d7";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/var-dumper/zipball/eb980457fa6899840fe1687e8627a03a7d8a3d52";
-          sha256 = "183igs4i74kljxyq7azpg59wb281mlvy1xgqnb4pkz4dw50jgc2k";
+          url = "https://api.github.com/repos/symfony/var-dumper/zipball/7a9cd977cd1c5fed3694bee52990866432af07d7";
+          sha256 = "1fsiwhrhgzhj8ncv8vz0dsd1s5v4dgphy71j8jqx814s8rb4xd0s";
         };
       };
     };
diff --git a/pkgs/servers/web-apps/changedetection-io/default.nix b/pkgs/servers/web-apps/changedetection-io/default.nix
index 4aa7455aa209c..a04165a5aa36c 100644
--- a/pkgs/servers/web-apps/changedetection-io/default.nix
+++ b/pkgs/servers/web-apps/changedetection-io/default.nix
@@ -5,19 +5,19 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "changedetection-io";
-  version = "0.45.22";
+  version = "0.45.23";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "dgtlmoon";
     repo = "changedetection.io";
     rev = "refs/tags/${version}";
-    hash = "sha256-q8Cflu5rYmV//l0MGM4LOep5v/tEHYm2u0A1E5k9kLk=";
+    hash = "sha256-EamTErJfa6mQCem4DWKC53ydupXP+6jrj9tGPlwehLc=";
   };
 
   postPatch = ''
     substituteInPlace requirements.txt \
-      --replace "apprise~=1.7.4" "apprise" \
+      --replace "apprise~=1.8.0" "apprise" \
       --replace "cryptography~=3.4" "cryptography" \
       --replace "dnspython~=2.4" "dnspython" \
       --replace "pytest ~=7.2" "" \
diff --git a/pkgs/servers/web-apps/discourse/asserts_patch-package_from_path.patch b/pkgs/servers/web-apps/discourse/asserts_patch-package_from_path.patch
deleted file mode 100644
index 9f7d98b069f44..0000000000000
--- a/pkgs/servers/web-apps/discourse/asserts_patch-package_from_path.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/app/assets/javascripts/discourse/package.json b/app/assets/javascripts/discourse/package.json
-index 9e4533d2..e57f8a5f 100644
---- a/app/assets/javascripts/discourse/package.json
-+++ b/app/assets/javascripts/discourse/package.json
-@@ -14,7 +14,7 @@
-     "build": "ember build",
-     "start": "ember serve",
-     "test": "ember test",
--    "postinstall": "yarn --silent --cwd .. patch-package"
-+    "postinstall": "patch-package"
-   },
-   "dependencies": {
-     "@babel/core": "^7.21.4",
diff --git a/pkgs/servers/web-apps/discourse/assets_rake_command.patch b/pkgs/servers/web-apps/discourse/assets_rake_command.patch
index b37b6d1d79944..b3e2e97ff8545 100644
--- a/pkgs/servers/web-apps/discourse/assets_rake_command.patch
+++ b/pkgs/servers/web-apps/discourse/assets_rake_command.patch
@@ -1,13 +1,13 @@
 diff --git a/lib/tasks/assets.rake b/lib/tasks/assets.rake
-index 68b5db61ac..d460b5753e 100644
+index 9608297789..5487490915 100644
 --- a/lib/tasks/assets.rake
 +++ b/lib/tasks/assets.rake
-@@ -19,7 +19,7 @@ task 'assets:precompile:before' do
- 
-     if only_assets_precompile_remaining
-       # Using exec to free up Rails app memory during ember build
--      exec "#{compile_command} && EMBER_CLI_COMPILE_DONE=1 bin/rake assets:precompile"
-+      exec "#{compile_command} && EMBER_CLI_COMPILE_DONE=1 bundle exec rake assets:precompile"
+@@ -36,7 +36,7 @@ task "assets:precompile:build" do
+     if only_ember_precompile_build_remaining
+       exec "#{compile_command}"
+     elsif only_assets_precompile_remaining
+-      exec "#{compile_command} && SKIP_EMBER_CLI_COMPILE=1 bin/rake assets:precompile"
++      exec "#{compile_command} && SKIP_EMBER_CLI_COMPILE=1 bundle exec rake assets:precompile"
      else
-       system compile_command
-     end
+       system compile_command, exception: true
+       EmberCli.clear_cache!
diff --git a/pkgs/servers/web-apps/discourse/default.nix b/pkgs/servers/web-apps/discourse/default.nix
index 57c252054eb94..79d7d096f6688 100644
--- a/pkgs/servers/web-apps/discourse/default.nix
+++ b/pkgs/servers/web-apps/discourse/default.nix
@@ -46,13 +46,13 @@
 }@args:
 
 let
-  version = "3.1.0";
+  version = "3.2.2";
 
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse";
     rev = "v${version}";
-    sha256 = "sha256-Iv7VSnK8nZDpmIwIRPedSWlftABKuMOQ4MXDGpjuWrY=";
+    sha256 = "sha256-JUCFtB5BvBytO3flq9o6iI3HPmvLU358HEmE6wbBsSk=";
   };
 
   ruby = ruby_3_2;
@@ -65,6 +65,7 @@ let
     gnutar
     git
     brotli
+    nodejs_18
 
     # Misc required system utils
     which
@@ -200,9 +201,14 @@ let
     pname = "discourse-assets";
     inherit version src;
 
+    yarnDevOfflineCache = fetchYarnDeps {
+      yarnLock = src + "/yarn.lock";
+      hash = "sha256-0s8c2V8Wl3f5kL1OIn2ps6hL7CUQD5+LJm+9LYHc+W0=";
+    };
+
     yarnOfflineCache = fetchYarnDeps {
-      yarnLock = src + "/app/assets/javascripts/yarn.lock";
-      sha256 = "0sclrv3303dgg3r08dwhd1yvi3pvlnvnikn300vjsh6c71fnzhnj";
+      yarnLock = src + "/app/assets/javascripts/yarn-ember5.lock";
+      hash = "sha256-ZBXvNdHHV92kSAswe6KA+OqaY5smf7ZKTTOiY8g78D0=";
     };
 
     nativeBuildInputs = runtimeDeps ++ [
@@ -210,9 +216,7 @@ let
       redis
       nodePackages.uglify-js
       terser
-      nodePackages.patch-package
       yarn
-      nodejs_18
       jq
       moreutils
       fixup-yarn-lock
@@ -234,13 +238,14 @@ let
       # assets precompilation task.
       ./assets_rake_command.patch
 
-      # `app/assets/javascripts/discourse/package.json`'s postinstall
-      # hook tries to call `../node_modules/.bin/patch-package`, which
-      # hasn't been `patchShebangs`-ed yet. So instead we just use
-      # `patch-package` from `nativeBuildInputs`.
-      ./asserts_patch-package_from_path.patch
+      # Little does he know, so he decided there is no need to generate the
+      # theme-transpiler over and over again. Which at the same time allows the removal
+      # of javascript devDependencies from the runtime environment.
+      ./prebuild-theme-transpiler.patch
     ];
 
+    env.RAILS_ENV = "production";
+
     # We have to set up an environment that is close enough to
     # production ready or the assets:precompile task refuses to
     # run. This means that Redis and PostgreSQL has to be running and
@@ -249,26 +254,29 @@ let
       # Yarn wants a real home directory to write cache, config, etc to
       export HOME=$NIX_BUILD_TOP/fake_home
 
-      # Make yarn install packages from our offline cache, not the registry
-      yarn config --offline set yarn-offline-mirror $yarnOfflineCache
+      yarn_install() {
+        local offlineCache=$1 yarnLock=$2
 
-      # Fixup "resolved"-entries in yarn.lock to match our offline cache
-      fixup-yarn-lock app/assets/javascripts/yarn.lock
+        # Make yarn install packages from our offline cache, not the registry
+        yarn config --offline set yarn-offline-mirror $offlineCache
 
-      export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
+        # Fixup "resolved"-entries in yarn.lock to match our offline cache
+        fixup-yarn-lock $yarnLock
 
-      find app/assets/javascripts -name package.json -print0 \
-        | xargs -0 -I {} bash -c "jq 'del(.scripts.postinstall)' -r <{} | sponge {}"
-      yarn install --offline --cwd app/assets/javascripts/discourse
+        # Install while ignoring hook scripts
+        yarn --offline --ignore-scripts --cwd $(dirname $yarnLock) install
+      }
 
-      patchShebangs app/assets/javascripts/node_modules/
+      # Install devDependencies for generating the theme-transpiler executed as
+      # dependent task assets:precompile:theme_transpiler before db:migrate
+      yarn_install $yarnDevOfflineCache yarn.lock
 
-      # Run `patch-package` AFTER the corresponding shebang inside `.bin/patch-package`
-      # got patched. Otherwise this will fail with
-      #     /bin/sh: line 1: /build/source/app/assets/javascripts/node_modules/.bin/patch-package: cannot execute: required file not found
-      pushd app/assets/javascripts &>/dev/null
-        yarn run patch-package
-      popd &>/dev/null
+      # Install the runtime dependencies
+      yarn_install $yarnOfflineCache app/assets/javascripts/yarn-ember5.lock
+      # Patch before running postinstall hook script
+      patchShebangs --build app/assets/javascripts
+      yarn --offline --cwd app/assets/javascripts run postinstall
+      export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
 
       redis-server >/dev/null &
 
@@ -286,14 +294,8 @@ let
       psql 'discourse' -tAc "CREATE EXTENSION IF NOT EXISTS pg_trgm"
       psql 'discourse' -tAc "CREATE EXTENSION IF NOT EXISTS hstore"
 
-      # Create a temporary home dir to stop bundler from complaining
-      mkdir $NIX_BUILD_TOP/tmp_home
-      export HOME=$NIX_BUILD_TOP/tmp_home
-
       ${lib.concatMapStringsSep "\n" (p: "ln -sf ${p} plugins/${p.pluginName or ""}") plugins}
 
-      export RAILS_ENV=production
-
       bundle exec rake db:migrate >/dev/null
       chmod -R +w tmp
     '';
@@ -352,6 +354,11 @@ let
 
       # Make sure the notification email setting applies
       ./notification_email.patch
+
+      # Little does he know, so he decided there is no need to generate the
+      # theme-transpiler over and over again. Which at the same time allows the removal
+      # of javascript devDependencies from the runtime environment.
+      ./prebuild-theme-transpiler.patch
     ];
 
     postPatch = ''
@@ -402,6 +409,9 @@ let
 
     passthru = {
       inherit rubyEnv runtimeEnv runtimeDeps rake mkDiscoursePlugin assets;
+      inherit (pkgs)
+        discourseAllPlugins
+      ;
       enabledPlugins = plugins;
       plugins = callPackage ./plugins/all-plugins.nix { inherit mkDiscoursePlugin; };
       ruby = rubyEnv.wrappedRuby;
diff --git a/pkgs/servers/web-apps/discourse/mail_receiver/default.nix b/pkgs/servers/web-apps/discourse/mail_receiver/default.nix
index 139e6718ed5ec..d5fbb4fb3976e 100644
--- a/pkgs/servers/web-apps/discourse/mail_receiver/default.nix
+++ b/pkgs/servers/web-apps/discourse/mail_receiver/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ talyz ];
     license = licenses.mit;
-    description = "A helper program which receives incoming mail for Discourse";
+    description = "Helper program which receives incoming mail for Discourse";
   };
 
 }
diff --git a/pkgs/servers/web-apps/discourse/plugins/all-plugins.nix b/pkgs/servers/web-apps/discourse/plugins/all-plugins.nix
index 4ddb8995b6220..5845f16b2d27c 100644
--- a/pkgs/servers/web-apps/discourse/plugins/all-plugins.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/all-plugins.nix
@@ -1,4 +1,4 @@
-{ mkDiscoursePlugin, newScope, fetchFromGitHub, ... }@args:
+{ mkDiscoursePlugin, newScope, ... }@args:
 let
   callPackage = newScope args;
 in
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix
index 68cd69dcc3a6e..ff7df0dfc70ea 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-assign";
-    rev = "0cbf10b8055370445bd36536e51986bf48bdc57e";
-    sha256 = "sha256-7rJ2zQo1nCHwtVuLJUmdj66Ky2bi4Cpo+22H3DbO1uo=";
+    rev = "b796ae3fcc89b48cf777de5ee3a4c21aada9271e";
+    sha256 = "sha256-PnSD2ZuUVjH8TifHuzbkpmpfGSN/q4VWyJtkOPND44o=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-docs";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix
index 266c43e4f8e28..ba20e3a9a00c8 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix
@@ -5,13 +5,13 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-bbcode-color";
-    rev = "35aab2e9b92f8b01633d374ea999e7fd59d020d7";
-    sha256 = "sha256-DHckx921EeQysm1UPloCrt43BJetTnZKnTbJGk15NMs=";
+    rev = "3336efe231e6c02e1dbe11ada71296af258cff58";
+    sha256 = "sha256-C2PPF8kJm0agcYcRSUUBmmxZJliPatPM1vRtjufEd4M=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-bbcode-color";
     maintainers = with maintainers; [ ryantm ];
     license = licenses.mit;
-    description = "Support BBCode color tags.";
+    description = "Support BBCode color tags";
   };
 }
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock
index 183ead8d51d44..15aafaf94c9c8 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock
@@ -1,15 +1,25 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (7.0.8)
+    activesupport (7.1.3.3)
+      base64
+      bigdecimal
       concurrent-ruby (~> 1.0, >= 1.0.2)
+      connection_pool (>= 2.2.5)
+      drb
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
+      mutex_m
       tzinfo (~> 2.0)
-    concurrent-ruby (1.2.2)
-    i18n (1.14.1)
+    base64 (0.2.0)
+    bigdecimal (3.1.8)
+    concurrent-ruby (1.2.3)
+    connection_pool (2.4.1)
+    drb (2.2.1)
+    i18n (1.14.5)
       concurrent-ruby (~> 1.0)
-    minitest (5.20.0)
+    minitest (5.23.1)
+    mutex_m (0.2.0)
     rrule (0.4.4)
       activesupport (>= 2.3)
     tzinfo (2.0.6)
@@ -22,4 +32,4 @@ DEPENDENCIES
   rrule (= 0.4.4)
 
 BUNDLED WITH
-   2.4.13
+   2.5.9
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix
index 7a6bd7f692707..235f5f717755f 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-calendar";
-    rev = "afc2ee684de41601d6cecc46713d139760f176a6";
-    sha256 = "sha256-rTQWO+E/Jg4zjZDYDvBrDQsox5q4dHkdQjwnJxgv3dI=";
+    rev = "455eeed541a9b5cacf627349e543028427178a44";
+    sha256 = "sha256-RXjMpeqCvAvwNsHpc3Fyms4pRXXqvarU8hWo3o1VgXY=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-calendar";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix
index 2e9b15ee5b9ee..51922b163d4b5 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix
@@ -1,24 +1,64 @@
 {
   activesupport = {
-    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
+    dependencies = ["base64" "bigdecimal" "concurrent-ruby" "connection_pool" "drb" "i18n" "minitest" "mutex_m" "tzinfo"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "188kbwkn1lbhz40ala8ykp20jzqphgc68g3d8flin8cqa2xid0s5";
+      sha256 = "0z8kygxmz99krz9pwp947znkzf0jr64sml28df0vf1gzxlg7y57i";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.1.3.3";
+  };
+  base64 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01qml0yilb9basf7is2614skjp8384h2pycfx86cr8023arfj98g";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  bigdecimal = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gi7zqgmqwi5lizggs1jhc3zlwaqayy9rx2ah80sxy24bbnng558";
+      type = "gem";
+    };
+    version = "3.1.8";
   };
   concurrent-ruby = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0krcwb6mn0iklajwngwsg850nk8k9b35dhmc2qkbdqvmifdi2y9q";
+      sha256 = "1qh1b14jwbbj242klkyz5fc7npd4j0mvndz62gajhvl1l3wd7zc2";
       type = "gem";
     };
-    version = "1.2.2";
+    version = "1.2.3";
+  };
+  connection_pool = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x32mcpm2cl5492kd6lbjbaf17qsssmpx9kdyr7z1wcif2cwyh0g";
+      type = "gem";
+    };
+    version = "2.4.1";
+  };
+  drb = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h5kbj9hvg5hb3c7l425zpds0vb42phvln2knab8nmazg2zp5m79";
+      type = "gem";
+    };
+    version = "2.2.1";
   };
   i18n = {
     dependencies = ["concurrent-ruby"];
@@ -26,20 +66,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qaamqsh5f3szhcakkak8ikxlzxqnv49n2p7504hcz2l0f4nj0wx";
+      sha256 = "1ffix518y7976qih9k1lgnc17i3v6yrlh0a3mckpxdb4wc2vrp16";
       type = "gem";
     };
-    version = "1.14.1";
+    version = "1.14.5";
   };
   minitest = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bkmfi9mb49m0fkdhl2g38i3xxa02d411gg0m8x0gvbwfmmg5ym3";
+      sha256 = "1gkslxvkhh44s21rbjvka3zsvfxxrf5pcl6f75rv2vyrzzbgis7i";
+      type = "gem";
+    };
+    version = "5.23.1";
+  };
+  mutex_m = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ma093ayps1m92q845hmpk0dmadicvifkbf05rpq9pifhin0rvxn";
       type = "gem";
     };
-    version = "5.20.0";
+    version = "0.2.0";
   };
   rrule = {
     dependencies = ["activesupport"];
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix
index 499d2e6447bd1..701b5479ce1d7 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-chat-integration";
-    rev = "70fea6b66b68868aa4c00b45a169436deaa142a8";
-    sha256 = "sha256-K9MmP1F0B6Na2dTqgnsjMbTQFkF+nNKkI8aF3zPAodc=";
+    rev = "2e17b03e9a435de0079ae1c2eed1b48a11ad16a9";
+    sha256 = "sha256-FOIQrpVFHak2PB8eNFv/oJwYiESJcHBqeC+MZMXnexo=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-chat-integration";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix
index f3fdd5459432e..1c252397d48ef 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix
@@ -5,13 +5,13 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-checklist";
-    rev = "d94e58c3060ee7ca0fe76339215ed9456d5f4ea4";
-    sha256 = "sha256-zTMkU8NRqxLQ3/ghYTmEhRqbCgdYsYaImHdGu7WwuFk=";
+    rev = "6fcf9fed5c3ae3baf9ddd1cca9cef4dc089996c1";
+    sha256 = "sha256-RIuoqZo7dW1DXbfbWhyyhCOGe4R5sLerzFW2TT0zO6U=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-checklist";
     maintainers = with maintainers; [ ryantm ];
     license = licenses.gpl2Only;
-    description = "A simple checklist rendering plugin for discourse ";
+    description = "Simple checklist rendering plugin for discourse ";
   };
 }
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix
index 39320637ddcdc..bb21a6bdb4f63 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-data-explorer";
-    rev = "e4f8d3924a18b303c2bb7da9472cf0c060060e4e";
-    sha256 = "sha256-K+GPszO3je6NmnhIRSqSEhylUK5oEByaS0bLfAGjvB4=";
+    rev = "ebe71a7a138c856d88737eb11b5096a42d4fbaf3";
+    sha256 = "sha256-3CdA4liSrPhucOGevEbKuIYETlXpAn9qtsG0+Tr67EQ=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-data-explorer";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix
index 3dcd2b86a9692..ee3910b8e0ab0 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-docs";
-    rev = "a4b203274b88c5277d0b5b936de0bc0e0016726c";
-    sha256 = "sha256-R+VP/gsb2Oa6lPVMhRoGZzOBx5C7kRSxqwYpWE10GHw=";
+    rev = "94c7b7da216c66d773f800a714493f087affaac9";
+    sha256 = "sha256-4ZPv42fw5YdJ3+QUGOh5CJMWkXoUVs4bTVd9zuFekQM=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-docs";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock
index 3640cbc601dad..87fbcc8f726bf 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock
@@ -1,20 +1,22 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    addressable (2.8.5)
+    addressable (2.8.6)
       public_suffix (>= 2.0.2, < 6.0)
-    faraday (2.7.10)
-      faraday-net_http (>= 2.0, < 3.1)
-      ruby2_keywords (>= 0.0.4)
-    faraday-net_http (3.0.2)
+    faraday (2.9.0)
+      faraday-net_http (>= 2.0, < 3.2)
+    faraday-net_http (3.1.0)
+      net-http
+    net-http (0.4.1)
+      uri
     octokit (5.6.1)
       faraday (>= 1, < 3)
       sawyer (~> 0.9)
-    public_suffix (5.0.3)
-    ruby2_keywords (0.0.5)
+    public_suffix (5.0.5)
     sawyer (0.9.2)
       addressable (>= 2.3.5)
       faraday (>= 0.17.3, < 3)
+    uri (0.13.0)
 
 PLATFORMS
   ruby
@@ -24,4 +26,4 @@ DEPENDENCIES
   sawyer (= 0.9.2)
 
 BUNDLED WITH
-   2.4.13
+   2.5.9
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix
index 50a59136ecf50..c47454aad43c5 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-github";
-    rev = "8aa068d56ef010cecaabd50657e7753f4bbecc1f";
-    sha256 = "sha256-WzljuGvv6pki3ROkvhXZWQaq5D9JkCbWjdlkdRI8lHE=";
+    rev = "53e22ccbd32dd868435f66efa2d48e0389673dea";
+    sha256 = "sha256-QaKmnftCxkgGUP5U9wNYm483D+GdpcU8F96CLl8woo8=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-github";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix
index 87599999d894f..73552eb610eef 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix
@@ -5,31 +5,43 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05r1fwy487klqkya7vzia8hnklcxy4vr92m9dmni3prfwk6zpw33";
+      sha256 = "0irbdwkkjwzajq1ip6ba46q49sxnrl2cw7ddkdhsfhb6aprnm3vr";
       type = "gem";
     };
-    version = "2.8.5";
+    version = "2.8.6";
   };
   faraday = {
-    dependencies = ["faraday-net_http" "ruby2_keywords"];
+    dependencies = ["faraday-net_http"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "187clqhp9mv5mnqmjlfdp57svhsg1bggz84ak8v333j9skrnrgh9";
+      sha256 = "1qqb1rmk0f9m82iijjlqadh5yby1bhnr6svjk9vxdvh6f181988s";
       type = "gem";
     };
-    version = "2.7.10";
+    version = "2.9.0";
   };
   faraday-net_http = {
+    dependencies = ["net-http"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13byv3mp1gsjyv8k0ih4612y6vw5kqva6i03wcg4w2fqpsd950k8";
+      sha256 = "17w51yk4rrm9rpnbc3x509s619kba0jga3qrj4b17l30950vw9qn";
       type = "gem";
     };
-    version = "3.0.2";
+    version = "3.1.0";
+  };
+  net-http = {
+    dependencies = ["uri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10n2n9aq00ih8v881af88l1zyrqgs5cl3njdw8argjwbl5ggqvm9";
+      type = "gem";
+    };
+    version = "0.4.1";
   };
   octokit = {
     dependencies = ["faraday" "sawyer"];
@@ -47,30 +59,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0n9j7mczl15r3kwqrah09cxj8hxdfawiqxa60kga2bmxl9flfz9k";
+      sha256 = "14y4vzjwf5gp0mqgs880kis0k7n2biq8i6ci6q2n315kichl1hvj";
       type = "gem";
     };
-    version = "5.0.3";
+    version = "5.0.5";
   };
-  ruby2_keywords = {
+  sawyer = {
+    dependencies = ["addressable" "faraday"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vz322p8n39hz3b4a9gkmz9y7a5jaz41zrm2ywf31dvkqm03glgz";
+      sha256 = "1jks1qjbmqm8f9kvwa81vqj39avaj9wdnzc531xm29a55bb74fps";
       type = "gem";
     };
-    version = "0.0.5";
+    version = "0.9.2";
   };
-  sawyer = {
-    dependencies = ["addressable" "faraday"];
+  uri = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jks1qjbmqm8f9kvwa81vqj39avaj9wdnzc531xm29a55bb74fps";
+      sha256 = "094gk72ckazf495qc76gk09b5i318d5l9m7bicg2wxlrjcm3qm96";
       type = "gem";
     };
-    version = "0.9.2";
+    version = "0.13.0";
   };
 }
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix
index 82f13f0d0d8a6..04e0a735fc2bc 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix
@@ -13,6 +13,6 @@ mkDiscoursePlugin {
     homepage = "https://github.com/jonmbake/discourse-ldap-auth";
     maintainers = with maintainers; [ ryantm ];
     license = licenses.mit;
-    description = "Discourse plugin to enable LDAP/Active Directory authentication.";
+    description = "Discourse plugin to enable LDAP/Active Directory authentication";
   };
 }
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix
index 3a07b4bfd3424..90fd6927ac946 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-math";
-    rev = "529ad1fe6da924da378a60bec48c35657bb01a68";
-    sha256 = "sha256-zhtAy0tTVMzQfPilTwfyyzxgCJD4xazOITBuliFR5Gg=";
+    rev = "2984713f68044544129b3575b9e2f9be31105293";
+    sha256 = "sha256-3jxSwjKGyKQy+ed6S2tQ27jseB9NygeiYvaldgV1XW4=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-math";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile
index 59c64586dc17b..d2a2d943c408e 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile
@@ -5,6 +5,6 @@ source "https://rubygems.org"
 # gem "rails"
 gem 'bcrypt', '3.1.13'
 gem 'unix-crypt', '1.3.0'
-gem 'ffi', '1.15.5', require: false
+gem 'ffi', '1.16.3', require: false
 gem 'ffi-compiler', '1.0.1', require: false
 gem 'argon2', '2.2.0'
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile.lock
index 75a9a363b6cce..a7bfa717ed9db 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile.lock
@@ -5,11 +5,11 @@ GEM
       ffi (~> 1.15)
       ffi-compiler (~> 1.0)
     bcrypt (3.1.13)
-    ffi (1.15.5)
+    ffi (1.16.3)
     ffi-compiler (1.0.1)
       ffi (>= 1.0.0)
       rake
-    rake (13.0.6)
+    rake (13.2.1)
     unix-crypt (1.3.0)
 
 PLATFORMS
@@ -18,9 +18,9 @@ PLATFORMS
 DEPENDENCIES
   argon2 (= 2.2.0)
   bcrypt (= 3.1.13)
-  ffi (= 1.15.5)
+  ffi (= 1.16.3)
   ffi-compiler (= 1.0.1)
   unix-crypt (= 1.3.0)
 
 BUNDLED WITH
-   2.4.13
+   2.5.9
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/default.nix
index ee8d03e66ca81..2189ba854eb7a 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "communiteq";
     repo = "discourse-migratepassword";
-    rev = "a95ae6bca4126172186fafcd2315f51a4504c23b";
-    sha256 = "sha256-lr2xHz+8q4XnHc/7KLX0Z2m0KMffLgGYk36zxGG9X5o=";
+    rev = "32d5fca6de3e8daf3869696ce835fefca1f00bfa";
+    sha256 = "sha256-kNYkA6zuiuUZlPgvIvaO49P8bD+nNysEsow33xG1PnI=";
   };
   meta = with lib; {
     homepage = "https://github.com/communiteq/discourse-migratepassword";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/gemset.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/gemset.nix
index 97aa9bfc70485..49174f05d0e91 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/gemset.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/gemset.nix
@@ -25,10 +25,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1862ydmclzy1a0cjbvm8dz7847d9rch495ib0zb64y84d3xd4bkg";
+      sha256 = "1yvii03hcgqj30maavddqamqy50h7y6xcn2wcyq72wn823zl4ckd";
       type = "gem";
     };
-    version = "1.15.5";
+    version = "1.16.3";
   };
   ffi-compiler = {
     dependencies = ["ffi" "rake"];
@@ -46,10 +46,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w";
+      sha256 = "17850wcwkgi30p7yqh60960ypn7yibacjjha0av78zaxwvd3ijs6";
       type = "gem";
     };
-    version = "13.0.6";
+    version = "13.2.1";
   };
   unix-crypt = {
     groups = ["default"];
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-oauth2-basic/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-oauth2-basic/default.nix
index a013383d1a2f2..b9fa198143917 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-oauth2-basic/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-oauth2-basic/default.nix
@@ -13,6 +13,6 @@ mkDiscoursePlugin rec {
     homepage = "https://github.com/discourse/${name}";
     maintainers = with maintainers; [ ehmry ];
     license = licenses.mit;
-    description = "A basic OAuth2 plugin for use with Discourse";
+    description = "Basic OAuth2 plugin for use with Discourse";
   };
 }
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix
index a467f4d17b399..e397bf16c1e5e 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix
@@ -6,14 +6,14 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-openid-connect";
-    rev = "b1df541ad29f6f6098a1008b83393b2d400986ed";
-    sha256 = "sha256-afRd/9M0nQGkS14Q8BJhcJwMCkOku3Fr0uHxcRl44vQ=";
+    rev = "f31a869611a2fad8efadd9b2504440215169a391";
+    sha256 = "sha256-cEgAjf7EPAVKsJOmm9lj9Jm0YNFjRswOJFFHU12Q5/Y=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-openid-connect";
     maintainers = with maintainers; [ mkg20001 ];
     license = licenses.mit;
-    description = "Discourse plugin to integrate Discourse with an openid-connect login provider.";
+    description = "Discourse plugin to integrate Discourse with an openid-connect login provider";
   };
 }
 
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock
index 88a3a3c8d6548..e7939eadbb0e7 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock
@@ -13,4 +13,4 @@ DEPENDENCIES
   webrick (= 1.7.0)
 
 BUNDLED WITH
-   2.4.13
+   2.5.9
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix
index 95bf4c5a679a3..d0fa5b690bb6e 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix
@@ -6,8 +6,8 @@
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-prometheus";
-    rev = "8a7a46a80cc65aa0839bc5e3c3b6f8ef6544089f";
-    sha256 = "sha256-TL+pbP26LvRMKdy8CAuBEK+LZfAs8HfggMeUDaBu9hc=";
+    rev = "831dba15659055361966e0c42e6b517b3d7b133b";
+    sha256 = "sha256-b7Du8rENY/gBbkqZSu6b9KHbvklYMkIRl8IGd1W4dHk=";
   };
 
   patches = [
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix
index 36e4ac19c4bd6..656acb2a9b1ea 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-reactions";
-    rev = "643f807a3a2195f08211064301f0350d9f51604f";
-    sha256 = "sha256-4FdiYUNysSuOJ664G3YvlUHx/J7MLUS3kVBdXT47oEw=";
+    rev = "354695cf5fce2bf516c9be451fe4bb56e487b95a";
+    sha256 = "sha256-pTK7gcDgWAlRPrUnJikMOEd0N/DBrHE0hOP23t//MiE=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-reactions";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix
index 32709666189e3..150cf2216c20a 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-saved-searches";
-    rev = "7c9bdcd68951e7cef16cafe3c4bfb583bb994d2a";
-    sha256 = "sha256-6RIN12ACDCeRcxmsC3FgeIPdvovI4arn7w/Dqil1yCI=";
+    rev = "063e35ec5a905aac3332be6821b15eec6909f022";
+    sha256 = "sha256-33aBhw00/tIF0Y0isYISctn3Bd+KntrRngj6sxW30EY=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-saved-searches";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix
index ed47f9e15e924..c44d5420941f5 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-solved";
-    rev = "b5d487d6a5bfe2571d936eec5911d02a5f3fcc32";
-    sha256 = "sha256-Tt7B9PcsV8E7B+m8GnJw+MBz9rGYtojKt6NjBFMQvOM=";
+    rev = "a18ce6d712fafed286bcc99543dd173110c6dfb8";
+    sha256 = "sha256-MUkQ/6ChMGqSNFZO2t8amecrYZbK1OyVq5lhPeB99ow=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-solved";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix
index 23ce34dcd694e..56240177a73e5 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-spoiler-alert";
-    rev = "65989714af08eda44196cca3a0afe85c9e9443f9";
-    sha256 = "sha256-R/vqNEDst50+Y7anckIvhy4viBOqBemIZMh4sPt7kRM=";
+    rev = "42b77ec048b9b386a8b25a22bfec6472817da465";
+    sha256 = "sha256-BQeID+y9RvmcnuNsodOMXseVvre5QYxv+E/ul8bucUI=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-spoiler-alert";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix
index a311dbcfbfcf9..3ddbc37cf7e9d 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-voting";
-    rev = "6449fc15658d972e20086a3f1fae3dbac9cd9eeb";
-    sha256 = "sha256-f04LpVeodCVEB/t5Ic2dketp542Nrc0rZWbQ6hrC22g=";
+    rev = "ba41633e0abe0535fd358a0809e0b4e0c79be128";
+    sha256 = "sha256-Ni+g9mWftvYsknIoSFBRoq7IMIWPbj4mgGM+k8fjOuI=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-voting";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix
index 979398f7394b7..2a5b3ff7f5ec8 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-yearly-review";
-    rev = "3246c6b378f9e69e664c575efc63c2ad83bcac2f";
-    sha256 = "sha256-usHHyfYP4YAQ94f7gvNSH7VBRRkdZMmsSi9QQM8tPfY=";
+    rev = "59b98bab5ee370da4774f60ea7b5122dddcbd83a";
+    sha256 = "sha256-OIptI6T5n021AsWO/eYK3ntL0JJG7+f4OmZwdxGcfFg=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-yearly-review";
diff --git a/pkgs/servers/web-apps/discourse/prebuild-theme-transpiler.patch b/pkgs/servers/web-apps/discourse/prebuild-theme-transpiler.patch
new file mode 100644
index 0000000000000..bed44baee5709
--- /dev/null
+++ b/pkgs/servers/web-apps/discourse/prebuild-theme-transpiler.patch
@@ -0,0 +1,21 @@
+diff --git a/lib/discourse_js_processor.rb b/lib/discourse_js_processor.rb
+index 26d142fa4d..6040aba6f4 100644
+--- a/lib/discourse_js_processor.rb
++++ b/lib/discourse_js_processor.rb
+@@ -68,7 +68,7 @@ class DiscourseJsProcessor
+     TRANSPILER_PATH =
+       (
+         if Rails.env.production?
+-          "tmp/theme-transpiler.js"
++          "app/assets/javascripts/theme-transpiler.js"
+         else
+           "tmp/theme-transpiler/#{Process.pid}.js"
+         end
+@@ -87,6 +87,6 @@ class DiscourseJsProcessor
+         "node",
+         "app/assets/javascripts/theme-transpiler/build.js",
+         TRANSPILER_PATH,
+-      )
++      ) if !Rails.env.production? or !File.file?(TRANSPILER_PATH)
+       TRANSPILER_PATH
+     end
diff --git a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
index 647aefea8adac..f73aeecb6baab 100644
--- a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
+++ b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
@@ -6,28 +6,14 @@ source "https://rubygems.org"
 
 gem "bootsnap", require: false, platform: :mri
 
-def rails_master?
-  ENV["RAILS_MASTER"] == "1"
-end
-
-if rails_master?
-  gem "arel", git: "https://github.com/rails/arel.git"
-  gem "rails", git: "https://github.com/rails/rails.git"
-else
-  # NOTE: Until rubygems gives us optional dependencies we are stuck with this needing to be explicit
-  # this allows us to include the bits of rails we use without pieces we do not.
-  #
-  # To issue a rails update bump the version number here
-  rails_version = "7.0.5.1"
-  gem "actionmailer", rails_version
-  gem "actionpack", rails_version
-  gem "actionview", rails_version
-  gem "activemodel", rails_version
-  gem "activerecord", rails_version
-  gem "activesupport", rails_version
-  gem "railties", rails_version
-  gem "sprockets-rails"
-end
+gem "actionmailer", "< 7.1"
+gem "actionpack", "< 7.1"
+gem "actionview", "< 7.1"
+gem "activemodel", "< 7.1"
+gem "activerecord", "< 7.1"
+gem "activesupport", "< 7.1"
+gem "railties", "< 7.1"
+gem "sprockets-rails"
 
 gem "json"
 
@@ -141,10 +127,11 @@ group :test do
   gem "fakeweb", require: false
   gem "minitest", require: false
   gem "simplecov", require: false
-  gem "selenium-webdriver", require: false
+  gem "selenium-webdriver", "~> 4.14", require: false
+  gem "selenium-devtools", require: false
   gem "test-prof"
-  gem "webdrivers", require: false
   gem "rails-dom-testing", require: false
+  gem "minio_runner", require: false
 end
 
 group :test, :development do
@@ -158,7 +145,7 @@ group :test, :development do
 
   gem "rspec-rails"
 
-  gem "shoulda-matchers", require: false, github: "thoughtbot/shoulda-matchers"
+  gem "shoulda-matchers", require: false
   gem "rspec-html-matchers"
   gem "byebug", require: ENV["RM_INFO"].nil?, platform: :mri
   gem "rubocop-discourse", require: false
@@ -209,7 +196,9 @@ gem "rack-mini-profiler", require: ["enable_rails_patches"]
 
 gem "unicorn", require: false, platform: :ruby
 gem "puma", require: false
+
 gem "rbtrace", require: false, platform: :mri
+
 gem "gc_tracer", require: false, platform: :mri
 
 # required for feed importing and embedding
@@ -228,9 +217,8 @@ gem "logstash-event", require: false
 gem "logstash-logger", require: false
 gem "logster"
 
-# These are forks of sassc and sassc-rails with dart-sass support
-gem "dartsass-ruby"
-gem "dartsass-sprockets"
+# A fork of sassc with dart-sass support
+gem "sassc-embedded"
 
 gem "rotp", require: false
 
@@ -259,6 +247,11 @@ if ENV["IMPORT"] == "1"
   gem "parallel", require: false
 end
 
+group :generic_import, optional: true do
+  gem "sqlite3"
+  gem "redcarpet"
+end
+
 gem "web-push"
 gem "colored2", require: false
 gem "maxminddb"
diff --git a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
index 0b93bf23d097b..31af98840b1ca 100644
--- a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
@@ -7,63 +7,56 @@ GIT
       concurrent-ruby (~> 1.0)
       rack (> 1, < 3)
 
-GIT
-  remote: https://github.com/thoughtbot/shoulda-matchers.git
-  revision: 783a90554053002017510285bc736099b2749c22
-  specs:
-    shoulda-matchers (5.3.0)
-      activesupport (>= 5.2.0)
-
 GEM
   remote: https://rubygems.org/
   specs:
-    actionmailer (7.0.5.1)
-      actionpack (= 7.0.5.1)
-      actionview (= 7.0.5.1)
-      activejob (= 7.0.5.1)
-      activesupport (= 7.0.5.1)
+    actionmailer (7.0.8)
+      actionpack (= 7.0.8)
+      actionview (= 7.0.8)
+      activejob (= 7.0.8)
+      activesupport (= 7.0.8)
       mail (~> 2.5, >= 2.5.4)
       net-imap
       net-pop
       net-smtp
       rails-dom-testing (~> 2.0)
-    actionpack (7.0.5.1)
-      actionview (= 7.0.5.1)
-      activesupport (= 7.0.5.1)
+    actionpack (7.0.8)
+      actionview (= 7.0.8)
+      activesupport (= 7.0.8)
       rack (~> 2.0, >= 2.2.4)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actionview (7.0.5.1)
-      activesupport (= 7.0.5.1)
+    actionview (7.0.8)
+      activesupport (= 7.0.8)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.1, >= 1.2.0)
-    actionview_precompiler (0.2.3)
+    actionview_precompiler (0.3.0)
       actionview (>= 6.0.a)
     active_model_serializers (0.8.4)
       activemodel (>= 3.0)
-    activejob (7.0.5.1)
-      activesupport (= 7.0.5.1)
+    activejob (7.0.8)
+      activesupport (= 7.0.8)
       globalid (>= 0.3.6)
-    activemodel (7.0.5.1)
-      activesupport (= 7.0.5.1)
-    activerecord (7.0.5.1)
-      activemodel (= 7.0.5.1)
-      activesupport (= 7.0.5.1)
-    activesupport (7.0.5.1)
+    activemodel (7.0.8)
+      activesupport (= 7.0.8)
+    activerecord (7.0.8)
+      activemodel (= 7.0.8)
+      activesupport (= 7.0.8)
+    activesupport (7.0.8)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
       tzinfo (~> 2.0)
-    addressable (2.8.4)
+    addressable (2.8.6)
       public_suffix (>= 2.0.2, < 6.0)
     annotate (3.2.0)
       activerecord (>= 3.2, < 8.0)
       rake (>= 10.4, < 14.0)
     ast (2.4.2)
-    aws-eventstream (1.2.0)
+    aws-eventstream (1.3.0)
     aws-partitions (1.583.0)
     aws-sdk-core (3.130.2)
       aws-eventstream (~> 1, >= 1.0.2)
@@ -82,55 +75,50 @@ GEM
       aws-sigv4 (~> 1.1)
     aws-sigv4 (1.5.0)
       aws-eventstream (~> 1, >= 1.0.2)
+    base64 (0.2.0)
     better_errors (2.10.1)
       erubi (>= 1.0.0)
       rack (>= 0.9.0)
       rouge (>= 1.0.0)
+    bigdecimal (3.1.6)
     binding_of_caller (1.0.0)
       debug_inspector (>= 0.0.1)
-    bootsnap (1.16.0)
+    bootsnap (1.17.1)
       msgpack (~> 1.2)
     builder (3.2.4)
-    bullet (7.0.7)
+    bullet (7.1.6)
       activesupport (>= 3.0.0)
       uniform_notifier (~> 1.11)
     byebug (11.1.3)
-    capybara (3.39.2)
+    capybara (3.40.0)
       addressable
       matrix
       mini_mime (>= 0.1.3)
-      nokogiri (~> 1.8)
+      nokogiri (~> 1.11)
       rack (>= 1.6.0)
       rack-test (>= 0.6.3)
       regexp_parser (>= 1.5, < 3.0)
       xpath (~> 3.2)
-    cbor (0.5.9.6)
+    cbor (0.5.9.8)
     certified (1.0.0)
-    cgi (0.3.6)
+    cgi (0.4.1)
     chunky_png (1.4.0)
     coderay (1.1.3)
-    colored2 (3.1.2)
-    concurrent-ruby (1.2.2)
+    colored2 (4.0.0)
+    concurrent-ruby (1.2.3)
     connection_pool (2.4.1)
     cose (1.3.0)
       cbor (~> 0.5.9)
       openssl-signature_algorithm (~> 1.0)
     cppjieba_rb (0.4.2)
-    crack (0.4.5)
+    crack (0.4.6)
+      bigdecimal
       rexml
     crass (1.0.6)
-    css_parser (1.14.0)
+    css_parser (1.16.0)
       addressable
-    dartsass-ruby (3.0.1)
-      sass-embedded (~> 1.54)
-    dartsass-sprockets (3.0.0)
-      dartsass-ruby (~> 3.0)
-      railties (>= 4.0.0)
-      sprockets (> 3.0)
-      sprockets-rails
-      tilt
-    date (3.3.3)
-    debug_inspector (1.1.0)
+    date (3.3.4)
+    debug_inspector (1.2.0)
     diff-lcs (1.5.0)
     diffy (3.4.2)
     digest (3.1.1)
@@ -144,34 +132,35 @@ GEM
     docile (1.4.0)
     email_reply_trimmer (0.1.13)
     erubi (1.12.0)
-    excon (0.100.0)
-    execjs (2.8.1)
+    excon (0.109.0)
+    execjs (2.9.1)
     exifr (1.4.0)
-    fabrication (2.30.0)
+    fabrication (2.31.0)
     faker (2.23.0)
       i18n (>= 1.8.11, < 2)
     fakeweb (1.3.0)
-    faraday (2.7.10)
-      faraday-net_http (>= 2.0, < 3.1)
-      ruby2_keywords (>= 0.0.4)
-    faraday-net_http (3.0.2)
+    faraday (2.9.0)
+      faraday-net_http (>= 2.0, < 3.2)
+    faraday-net_http (3.1.0)
+      net-http
     faraday-retry (2.2.0)
       faraday (~> 2.0)
     fast_blank (1.0.1)
     fast_xs (0.8.0)
-    fastimage (2.2.7)
-    ffi (1.15.5)
+    fastimage (2.3.0)
+    ffi (1.16.3)
     fspath (3.1.2)
     gc_tracer (1.5.1)
-    globalid (1.1.0)
-      activesupport (>= 5.0)
-    google-protobuf (3.23.4)
+    globalid (1.2.1)
+      activesupport (>= 6.1)
+    google-protobuf (3.25.2)
+    google-protobuf (3.25.2-arm64-darwin)
+    google-protobuf (3.25.2-x86_64-darwin)
     guess_html_encoding (0.0.11)
     hana (1.3.7)
-    hashdiff (1.0.1)
+    hashdiff (1.1.0)
     hashie (5.0.0)
-    highline (2.1.0)
-    hkdf (1.0.0)
+    highline (3.0.1)
     htmlentities (4.3.4)
     http_accept_language (2.1.1)
     i18n (1.14.1)
@@ -182,13 +171,13 @@ GEM
       image_size (>= 1.5, < 4)
       in_threads (~> 1.3)
       progress (~> 3.0, >= 3.0.1)
-    image_size (3.3.0)
+    image_size (3.4.0)
     in_threads (1.6.0)
     jmespath (1.6.2)
-    json (2.6.3)
-    json-schema (3.0.0)
+    json (2.7.1)
+    json-schema (4.1.1)
       addressable (>= 2.8)
-    json_schemer (1.0.3)
+    json_schemer (2.1.1)
       hana (~> 1.3)
       regexp_parser (~> 2.0)
       simpleidn (~> 0.2)
@@ -196,11 +185,13 @@ GEM
     kgio (2.11.4)
     language_server-protocol (3.17.0.3)
     libv8-node (18.16.0.0)
+    libv8-node (18.16.0.0-arm64-darwin)
+    libv8-node (18.16.0.0-x86_64-darwin)
     listen (3.8.0)
       rb-fsevent (~> 0.10, >= 0.10.3)
       rb-inotify (~> 0.9, >= 0.9.10)
     literate_randomizer (0.4.0)
-    lograge (0.13.0)
+    lograge (0.14.0)
       actionpack (>= 4)
       activesupport (>= 4)
       railties (>= 4)
@@ -208,8 +199,8 @@ GEM
     logstash-event (1.2.02)
     logstash-logger (0.26.1)
       logstash-event (~> 1.2)
-    logster (2.12.2)
-    loofah (2.21.3)
+    logster (2.16.0)
+    loofah (2.22.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.12.0)
     lru_redux (1.1.0)
@@ -222,40 +213,45 @@ GEM
     matrix (0.4.2)
     maxminddb (0.1.22)
     memory_profiler (1.0.1)
-    message_bus (4.3.7)
+    message_bus (4.3.8)
       rack (>= 1.1.3)
     method_source (1.0.0)
-    mini_mime (1.1.2)
-    mini_portile2 (2.8.4)
+    mini_mime (1.1.5)
+    mini_portile2 (2.8.6)
     mini_racer (0.8.0)
       libv8-node (~> 18.16.0.0)
     mini_scheduler (0.16.0)
       sidekiq (>= 4.2.3, < 7.0)
-    mini_sql (1.4.0)
+    mini_sql (1.5.0)
     mini_suffix (0.3.3)
       ffi (~> 1.9)
-    minitest (5.19.0)
+    minio_runner (0.1.2)
+    minitest (5.21.2)
     mocha (2.1.0)
       ruby2_keywords (>= 0.0.5)
     msgpack (1.7.2)
     multi_json (1.15.0)
     multi_xml (0.6.0)
     mustache (1.1.1)
-    net-http (0.3.2)
+    net-http (0.4.1)
       uri
-    net-imap (0.3.7)
+    net-imap (0.4.9.1)
       date
       net-protocol
     net-pop (0.1.2)
       net-protocol
-    net-protocol (0.2.1)
+    net-protocol (0.2.2)
       timeout
-    net-smtp (0.3.3)
+    net-smtp (0.4.0.1)
       net-protocol
-    nio4r (2.5.9)
-    nokogiri (1.15.3)
+    nio4r (2.7.0)
+    nokogiri (1.16.0)
       mini_portile2 (~> 2.8.2)
       racc (~> 1.4)
+    nokogiri (1.16.0-arm64-darwin)
+      racc (~> 1.4)
+    nokogiri (1.16.0-x86_64-darwin)
+      racc (~> 1.4)
     oauth (1.1.0)
       oauth-tty (~> 1.0, >= 1.0.1)
       snaky_hash (~> 2.0)
@@ -268,7 +264,8 @@ GEM
       multi_json (~> 1.3)
       multi_xml (~> 0.5)
       rack (>= 1.2, < 4)
-    oj (3.15.1)
+    oj (3.16.3)
+      bigdecimal (>= 3.0)
     omniauth (1.9.2)
       hashie (>= 3.4.6)
       rack (>= 1.6.2, < 3)
@@ -291,17 +288,17 @@ GEM
     omniauth-twitter (1.4.0)
       omniauth-oauth (~> 1.1)
       rack
-    openssl (3.1.0)
+    openssl (3.2.0)
     openssl-signature_algorithm (1.3.0)
       openssl (> 2.0)
     optimist (3.1.0)
-    parallel (1.23.0)
-    parallel_tests (4.2.1)
+    parallel (1.24.0)
+    parallel_tests (4.4.0)
       parallel
-    parser (3.2.2.3)
+    parser (3.3.0.5)
       ast (~> 2.4.1)
       racc
-    pg (1.4.6)
+    pg (1.5.4)
     prettier_print (1.2.1)
     progress (3.6.0)
     pry (0.14.2)
@@ -312,18 +309,19 @@ GEM
       pry (>= 0.13, < 0.15)
     pry-rails (0.3.9)
       pry (>= 0.10.4)
-    public_suffix (5.0.3)
-    puma (6.3.0)
+    public_suffix (5.0.4)
+    puma (6.4.2)
       nio4r (~> 2.0)
-    racc (1.7.1)
+    racc (1.7.3)
     rack (2.2.8)
-    rack-mini-profiler (3.1.0)
+    rack-mini-profiler (3.3.0)
       rack (>= 1.2.0)
-    rack-protection (3.0.6)
-      rack
+    rack-protection (3.2.0)
+      base64 (>= 0.1.0)
+      rack (~> 2.2, >= 2.2.4)
     rack-test (2.1.0)
       rack (>= 1.3)
-    rails-dom-testing (2.1.1)
+    rails-dom-testing (2.2.0)
       activesupport (>= 5.0.0)
       minitest
       nokogiri (>= 1.6)
@@ -337,34 +335,35 @@ GEM
     rails_multisite (5.0.0)
       activerecord (>= 6.0)
       railties (>= 6.0)
-    railties (7.0.5.1)
-      actionpack (= 7.0.5.1)
-      activesupport (= 7.0.5.1)
+    railties (7.0.8)
+      actionpack (= 7.0.8)
+      activesupport (= 7.0.8)
       method_source
       rake (>= 12.2)
       thor (~> 1.0)
       zeitwerk (~> 2.5)
     rainbow (3.1.1)
     raindrops (0.20.1)
-    rake (13.0.6)
+    rake (13.1.0)
     rb-fsevent (0.11.2)
     rb-inotify (0.10.1)
       ffi (~> 1.0)
-    rbtrace (0.4.14)
+    rbtrace (0.5.1)
       ffi (>= 1.0.6)
       msgpack (>= 0.4.3)
       optimist (>= 3.0.0)
     rchardet (1.8.0)
+    redcarpet (3.6.0)
     redis (4.8.1)
     redis-namespace (1.11.0)
       redis (>= 4)
-    regexp_parser (2.8.1)
+    regexp_parser (2.9.0)
     request_store (1.5.1)
       rack (>= 1.4)
     rexml (3.2.6)
     rinku (2.0.6)
-    rotp (6.2.2)
-    rouge (4.1.3)
+    rotp (6.3.0)
+    rouge (4.2.0)
     rqrcode (2.2.0)
       chunky_png (~> 1.0)
       rqrcode_core (~> 1.0)
@@ -384,7 +383,7 @@ GEM
     rspec-mocks (3.12.6)
       diff-lcs (>= 1.2.0, < 2.0)
       rspec-support (~> 3.12.0)
-    rspec-rails (6.0.3)
+    rspec-rails (6.1.1)
       actionpack (>= 6.1)
       activesupport (>= 6.1)
       railties (>= 6.1)
@@ -393,57 +392,68 @@ GEM
       rspec-mocks (~> 3.12)
       rspec-support (~> 3.12)
     rspec-support (3.12.1)
-    rss (0.2.9)
+    rss (0.3.0)
       rexml
-    rswag-specs (2.10.1)
-      activesupport (>= 3.1, < 7.1)
-      json-schema (>= 2.2, < 4.0)
-      railties (>= 3.1, < 7.1)
+    rswag-specs (2.13.0)
+      activesupport (>= 3.1, < 7.2)
+      json-schema (>= 2.2, < 5.0)
+      railties (>= 3.1, < 7.2)
       rspec-core (>= 2.14)
     rtlcss (0.2.1)
       mini_racer (>= 0.6.3)
-    rubocop (1.55.1)
+    rubocop (1.60.2)
       json (~> 2.3)
       language_server-protocol (>= 3.17.0)
       parallel (~> 1.10)
-      parser (>= 3.2.2.3)
+      parser (>= 3.3.0.2)
       rainbow (>= 2.2.2, < 4.0)
       regexp_parser (>= 1.8, < 3.0)
       rexml (>= 3.2.5, < 4.0)
-      rubocop-ast (>= 1.28.1, < 2.0)
+      rubocop-ast (>= 1.30.0, < 2.0)
       ruby-progressbar (~> 1.7)
       unicode-display_width (>= 2.4.0, < 3.0)
-    rubocop-ast (1.29.0)
+    rubocop-ast (1.30.0)
       parser (>= 3.2.1.0)
-    rubocop-capybara (2.18.0)
+    rubocop-capybara (2.20.0)
       rubocop (~> 1.41)
-    rubocop-discourse (3.3.0)
-      rubocop (>= 1.1.0)
-      rubocop-rspec (>= 2.0.0)
-    rubocop-factory_bot (2.23.1)
-      rubocop (~> 1.33)
-    rubocop-rspec (2.23.0)
-      rubocop (~> 1.33)
+    rubocop-discourse (3.6.0)
+      rubocop (>= 1.59.0)
+      rubocop-rspec (>= 2.25.0)
+    rubocop-factory_bot (2.25.1)
+      rubocop (~> 1.41)
+    rubocop-rspec (2.26.1)
+      rubocop (~> 1.40)
       rubocop-capybara (~> 2.17)
       rubocop-factory_bot (~> 2.22)
-    ruby-prof (1.6.3)
+    ruby-prof (1.7.0)
     ruby-progressbar (1.13.0)
     ruby-readability (0.7.0)
       guess_html_encoding (>= 0.0.4)
       nokogiri (>= 1.6.0)
     ruby2_keywords (0.0.5)
     rubyzip (2.3.2)
-    sanitize (6.0.2)
+    sanitize (6.1.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.12.0)
-    sass-embedded (1.64.1)
-      google-protobuf (~> 3.23)
+    sass-embedded (1.70.0)
+      google-protobuf (~> 3.25)
       rake (>= 13.0.0)
-    selenium-webdriver (4.10.0)
+    sass-embedded (1.70.0-arm64-darwin)
+      google-protobuf (~> 3.25)
+    sass-embedded (1.70.0-x86_64-darwin)
+      google-protobuf (~> 3.25)
+    sassc-embedded (1.70.0)
+      sass-embedded (~> 1.70)
+    selenium-devtools (0.121.0)
+      selenium-webdriver (~> 4.2)
+    selenium-webdriver (4.17.0)
+      base64 (~> 0.2)
       rexml (~> 3.2, >= 3.2.5)
       rubyzip (>= 1.2.2, < 3.0)
       websocket (~> 1.0)
-    sidekiq (6.5.9)
+    shoulda-matchers (6.1.0)
+      activesupport (>= 5.2.0)
+    sidekiq (6.5.12)
       connection_pool (>= 2.2.5, < 3)
       rack (~> 2.0)
       redis (>= 4.5.0, < 5)
@@ -462,62 +472,63 @@ GEM
       actionpack (>= 5.2)
       activesupport (>= 5.2)
       sprockets (>= 3.0.0)
-    sshkey (2.0.0)
-    stackprof (0.2.25)
-    syntax_tree (6.1.1)
+    sqlite3 (1.7.1)
+      mini_portile2 (~> 2.8.0)
+    sqlite3 (1.7.1-arm64-darwin)
+    sqlite3 (1.7.1-x86_64-darwin)
+    sshkey (3.0.0)
+    stackprof (0.2.26)
+    syntax_tree (6.2.0)
       prettier_print (>= 1.2.0)
     syntax_tree-disable_ternary (1.0.0)
-    test-prof (1.2.2)
-    thor (1.2.2)
-    tilt (2.2.0)
-    timeout (0.4.0)
+    test-prof (1.3.1)
+    thor (1.3.0)
+    timeout (0.4.1)
     tzinfo (2.0.6)
       concurrent-ruby (~> 1.0)
-    tzinfo-data (1.2023.3)
+    tzinfo-data (1.2023.4)
       tzinfo (>= 1.0.0)
     uglifier (4.2.0)
       execjs (>= 0.3.0, < 3)
     unf (0.1.4)
       unf_ext
-    unf_ext (0.0.8.2)
-    unicode-display_width (2.4.2)
+    unf_ext (0.0.9.1)
+    unicode-display_width (2.5.0)
     unicorn (6.1.0)
       kgio (~> 2.6)
       raindrops (~> 0.7)
     uniform_notifier (1.16.0)
-    uri (0.12.2)
+    uri (0.13.0)
     version_gem (1.1.3)
-    web-push (3.0.0)
-      hkdf (~> 1.0)
+    web-push (3.0.1)
       jwt (~> 2.0)
       openssl (~> 3.0)
-    webdrivers (5.3.1)
-      nokogiri (~> 1.6)
-      rubyzip (>= 1.3.0)
-      selenium-webdriver (~> 4.0, < 4.11)
-    webmock (3.18.1)
+    webmock (3.19.1)
       addressable (>= 2.8.0)
       crack (>= 0.3.2)
       hashdiff (>= 0.4.0, < 2.0.0)
-    websocket (1.2.9)
+    websocket (1.2.10)
     xpath (3.2.0)
       nokogiri (~> 1.8)
     yaml-lint (0.1.2)
     yard (0.9.34)
-    zeitwerk (2.6.10)
+    zeitwerk (2.6.12)
 
 PLATFORMS
+  arm64-darwin-21
+  arm64-darwin-22
   ruby
+  x86_64-darwin-22
 
 DEPENDENCIES
-  actionmailer (= 7.0.5.1)
-  actionpack (= 7.0.5.1)
-  actionview (= 7.0.5.1)
+  actionmailer (< 7.1)
+  actionpack (< 7.1)
+  actionview (< 7.1)
   actionview_precompiler
   active_model_serializers (~> 0.8.3)
-  activemodel (= 7.0.5.1)
-  activerecord (= 7.0.5.1)
-  activesupport (= 7.0.5.1)
+  activemodel (< 7.1)
+  activerecord (< 7.1)
+  activesupport (< 7.1)
   addressable
   annotate
   aws-sdk-s3
@@ -535,8 +546,6 @@ DEPENDENCIES
   cose
   cppjieba_rb
   css_parser
-  dartsass-ruby
-  dartsass-sprockets
   diffy
   digest
   discourse-fonts
@@ -577,6 +586,7 @@ DEPENDENCIES
   mini_scheduler
   mini_sql
   mini_suffix
+  minio_runner
   minitest
   mocha
   multi_json
@@ -604,11 +614,12 @@ DEPENDENCIES
   rails-dom-testing
   rails_failover
   rails_multisite
-  railties (= 7.0.5.1)
+  railties (< 7.1)
   rake
   rb-fsevent
   rbtrace
   rchardet
+  redcarpet
   redis
   redis-namespace
   rinku
@@ -625,12 +636,15 @@ DEPENDENCIES
   ruby-readability
   rubyzip
   sanitize
-  selenium-webdriver
-  shoulda-matchers!
+  sassc-embedded
+  selenium-devtools
+  selenium-webdriver (~> 4.14)
+  shoulda-matchers
   sidekiq
   simplecov
   sprockets!
   sprockets-rails
+  sqlite3
   sshkey
   stackprof
   syntax_tree
@@ -642,10 +656,9 @@ DEPENDENCIES
   unf
   unicorn
   web-push
-  webdrivers
   webmock
   yaml-lint
   yard
 
 BUNDLED WITH
-   2.4.13
+   2.5.9
diff --git a/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix b/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
index fc7b71f0c0306..79cba6f33bee3 100644
--- a/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
+++ b/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pz26qpdx1xncpy5h8k4afw0npnh6wn580yvwv2cf857zrzvr1pm";
+      sha256 = "0w6gvj7ybniq89834hqww9rj2xypz9l91f8niwaws2yq1qklymr2";
       type = "gem";
     };
-    version = "7.0.5.1";
+    version = "7.0.8";
   };
   actionpack = {
     dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
@@ -16,10 +16,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "003y7cdxwzdqx8hgw02kf1b5mp8qr8syx07f35sk3ghhqxp39ksy";
+      sha256 = "1l319p0gipfgq8bp8dvbv97qqb72rad9zcqn5snhgv20cmpqr69b";
       type = "gem";
     };
-    version = "7.0.5.1";
+    version = "7.0.8";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -27,10 +27,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11ihpqcvz3f38ka85zdjkdcvgdbcan81dbr0y9bi784jn1v5ggwa";
+      sha256 = "0xnpdwj1d8m6c2d90jp9cs50ggiz0jj02ls2h9lg68k4k8mnjbd2";
       type = "gem";
     };
-    version = "7.0.5.1";
+    version = "7.0.8";
   };
   actionview_precompiler = {
     dependencies = ["actionview"];
@@ -38,10 +38,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07dx8vkwig8han4zccs0chahcf9ibd4abzx9n56qah8zak5cyrhd";
+      sha256 = "07jyr2h87ha6k2y965rs4ywq142ddkfkhbmp0r44xg4wnffr8jbl";
       type = "gem";
     };
-    version = "0.2.3";
+    version = "0.3.0";
   };
   active_model_serializers = {
     dependencies = ["activemodel"];
@@ -60,10 +60,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11wkxf16zdb9gsnc94x4hyj89wjks06gnk4fbl7gp5vkbl744n83";
+      sha256 = "1cn1ic7ml75jm0c10s7cm5mvcgfnafj0kjvvjavpjcxgz6lxcqyb";
       type = "gem";
     };
-    version = "7.0.5.1";
+    version = "7.0.8";
   };
   activemodel = {
     dependencies = ["activesupport"];
@@ -71,10 +71,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12f89hxs4s26ggsg4bnz9qxlcsclcgx9gdsl8dni5jc0gk47h14y";
+      sha256 = "004w8zaz2g3y6lnrsvlcmljll0m3ndqpgwf0wfscgq6iysibiglm";
       type = "gem";
     };
-    version = "7.0.5.1";
+    version = "7.0.8";
   };
   activerecord = {
     dependencies = ["activemodel" "activesupport"];
@@ -82,10 +82,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1sfdq2slmsc0ygncl36dq1lmjww1y3b42izrnn62cyisiag28796";
+      sha256 = "04wavps80q3pvhvfbmi4gs102y1p6mxbg8xylzvib35b6m92adpj";
       type = "gem";
     };
-    version = "7.0.5.1";
+    version = "7.0.8";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
@@ -93,10 +93,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0m1sa6djlm9cz6mz3lcbqqahvm6qj75dmq3phpn2ysyxnlz2hr0c";
+      sha256 = "188kbwkn1lbhz40ala8ykp20jzqphgc68g3d8flin8cqa2xid0s5";
       type = "gem";
     };
-    version = "7.0.5.1";
+    version = "7.0.8";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -104,10 +104,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15s8van7r2ad3dq6i03l3z4hqnvxcq75a3h72kxvf9an53sqma20";
+      sha256 = "0irbdwkkjwzajq1ip6ba46q49sxnrl2cw7ddkdhsfhb6aprnm3vr";
       type = "gem";
     };
-    version = "2.8.4";
+    version = "2.8.6";
   };
   annotate = {
     dependencies = ["activerecord" "rake"];
@@ -135,10 +135,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pyis1nvnbjxk12a43xvgj2gv0mvp4cnkc1gzw0v1018r61399gz";
+      sha256 = "0gvdg4yx4p9av2glmp7vsxhs0n8fj1ga9kq2xdb8f95j7b04qhzi";
       type = "gem";
     };
-    version = "1.2.0";
+    version = "1.3.0";
   };
   aws-partitions = {
     groups = ["default"];
@@ -205,6 +205,16 @@
     };
     version = "1.5.0";
   };
+  base64 = {
+    groups = ["default" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01qml0yilb9basf7is2614skjp8384h2pycfx86cr8023arfj98g";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
   better_errors = {
     dependencies = ["erubi" "rack" "rouge"];
     groups = ["development"];
@@ -220,6 +230,16 @@
     };
     version = "2.10.1";
   };
+  bigdecimal = {
+    groups = ["default" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00db5v09k1z3539g1zrk7vkjrln9967k08adh6qx33ng97a2gg5w";
+      type = "gem";
+    };
+    version = "3.1.6";
+  };
   binding_of_caller = {
     dependencies = ["debug_inspector"];
     groups = ["development"];
@@ -241,10 +261,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vcg52gwl64xhhal6kwk1pc01y1klzdlnv1awyk89kb91z010x7q";
+      sha256 = "028qif22isxa5sg5gf1322d0qjhir5rr0jpkaiwcic4lspacdcnv";
       type = "gem";
     };
-    version = "1.16.0";
+    version = "1.17.1";
   };
   builder = {
     groups = ["default" "development" "test"];
@@ -262,10 +282,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hyz68j0z0j24vcrs43swmlykhzypayv34kzrsbxda5lbi83gynm";
+      sha256 = "1zs6dwspb0m9ygl7lwdmilhdn9ka85a0qfiip49m9rfpfj46lps0";
       type = "gem";
     };
-    version = "7.0.7";
+    version = "7.1.6";
   };
   byebug = {
     groups = ["development" "test"];
@@ -287,20 +307,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "114qm5f5vhwaaw9rj1h2lcamh46zl13v1m18jiw68zl961gwmw6n";
+      sha256 = "1vxfah83j6zpw3v5hic0j70h519nvmix2hbszmjwm8cfawhagns2";
       type = "gem";
     };
-    version = "3.39.2";
+    version = "3.40.0";
   };
   cbor = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0511idr8xps9625nh3kxr68sdy6l3xy2kcz7r57g47fxb1v18jj3";
+      sha256 = "1dsf9gjc2cj79vrnz2vgq573biqjw7ad4b0idm05xg6rb3y9gq4y";
       type = "gem";
     };
-    version = "0.5.9.6";
+    version = "0.5.9.8";
   };
   certified = {
     groups = ["development" "test"];
@@ -317,10 +337,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18zc1z8va9j1gcv131p605wmkvn1p5958mmvvy7v45ki8c0w7qn5";
+      sha256 = "0c5494n3n6l51n1w1vc118zckbqdzk7r6b656hswg72w0bif2ja3";
       type = "gem";
     };
-    version = "0.3.6";
+    version = "0.4.1";
   };
   chunky_png = {
     groups = ["default"];
@@ -351,20 +371,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jlbqa9q4mvrm73aw9mxh23ygzbjiqwisl32d8szfb5fxvbjng5i";
+      sha256 = "1zj06gjqwykgzxmbkp2hmg3wv5kv8zz5d77acxipzcgicdjgvfan";
       type = "gem";
     };
-    version = "3.1.2";
+    version = "4.0.0";
   };
   concurrent-ruby = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0krcwb6mn0iklajwngwsg850nk8k9b35dhmc2qkbdqvmifdi2y9q";
+      sha256 = "1qh1b14jwbbj242klkyz5fc7npd4j0mvndz62gajhvl1l3wd7zc2";
       type = "gem";
     };
-    version = "1.2.2";
+    version = "1.2.3";
   };
   connection_pool = {
     groups = ["default"];
@@ -398,15 +418,15 @@
     version = "0.4.2";
   };
   crack = {
-    dependencies = ["rexml"];
+    dependencies = ["bigdecimal" "rexml"];
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cr1kfpw3vkhysvkk3wg7c54m75kd68mbm9rs5azdjdq57xid13r";
+      sha256 = "0r48q8csd1ld0yrzsp45wkfnpmkhk09gsldq8rlikarnmc51s9gf";
       type = "gem";
     };
-    version = "0.4.5";
+    version = "0.4.6";
   };
   crass = {
     groups = ["default" "development" "test"];
@@ -424,52 +444,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04q1vin8slr3k8mp76qz0wqgap6f9kdsbryvgfq9fljhrm463kpj";
+      sha256 = "18mii41bbl106rn940ah8v3xclj4yrxxa0bwlwp546244n9b83zp";
       type = "gem";
     };
-    version = "1.14.0";
-  };
-  dartsass-ruby = {
-    dependencies = ["sass-embedded"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0z3gdsnyvdjgn9gwia72irqgxq04i8hv9pv60yqkd4h5nk9rx4p6";
-      type = "gem";
-    };
-    version = "3.0.1";
-  };
-  dartsass-sprockets = {
-    dependencies = ["dartsass-ruby" "railties" "sprockets" "sprockets-rails" "tilt"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1842k5i96iiz264wzzqar2m3whs2caf0d8yhbsr6qdbi4j5pzmcx";
-      type = "gem";
-    };
-    version = "3.0.0";
+    version = "1.16.0";
   };
   date = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03skfikihpx37rc27vr3hwrb057gxnmdzxhmzd4bf4jpkl0r55w1";
+      sha256 = "149jknsq999gnhy865n33fkk22s0r447k76x9pmcnnwldfv2q7wp";
       type = "gem";
     };
-    version = "3.3.3";
+    version = "3.3.4";
   };
   debug_inspector = {
     groups = ["default" "development"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01l678ng12rby6660pmwagmyg8nccvjfgs3487xna7ay378a59ga";
+      sha256 = "18k8x9viqlkh7dbmjzh8crbjy8w480arpa766cw1dnn3xcpa1pwv";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.2.0";
   };
   diff-lcs = {
     groups = ["default" "development" "test"];
@@ -572,20 +570,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08r6qgbpkxxsihjmlspk3l1sr69q5hx35p1l4wp7rmkbzys89867";
+      sha256 = "1kmmwgjzlrnc3nnrdnw1z67c95nbw0hv54a73yj8jw6pcvl9585x";
       type = "gem";
     };
-    version = "0.100.0";
+    version = "0.109.0";
   };
   execjs = {
     groups = ["assets" "default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "121h6af4i6wr3wxvv84y53jcyw2sk71j5wsncm6wq6yqrwcrk4vd";
+      sha256 = "1yywajqlpjhrj1m43s3lfg3i4lkb6pxwccmwps7qw37ndmphdzg8";
       type = "gem";
     };
-    version = "2.8.1";
+    version = "2.9.1";
   };
   exifr = {
     groups = ["default"];
@@ -602,10 +600,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bxssmjp49whzq2zv7w751gr4nkdaiwcxd1vda0byigwyrnj6f5q";
+      sha256 = "1al5iv3as21l5clci0b5cg27z136pan7gkj7plp4l0w83c6z2y9c";
       type = "gem";
     };
-    version = "2.30.0";
+    version = "2.31.0";
   };
   faker = {
     dependencies = ["i18n"];
@@ -629,25 +627,26 @@
     version = "1.3.0";
   };
   faraday = {
-    dependencies = ["faraday-net_http" "ruby2_keywords"];
+    dependencies = ["faraday-net_http"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "187clqhp9mv5mnqmjlfdp57svhsg1bggz84ak8v333j9skrnrgh9";
+      sha256 = "1qqb1rmk0f9m82iijjlqadh5yby1bhnr6svjk9vxdvh6f181988s";
       type = "gem";
     };
-    version = "2.7.10";
+    version = "2.9.0";
   };
   faraday-net_http = {
+    dependencies = ["net-http"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13byv3mp1gsjyv8k0ih4612y6vw5kqva6i03wcg4w2fqpsd950k8";
+      sha256 = "17w51yk4rrm9rpnbc3x509s619kba0jga3qrj4b17l30950vw9qn";
       type = "gem";
     };
-    version = "3.0.2";
+    version = "3.1.0";
   };
   faraday-retry = {
     dependencies = ["faraday"];
@@ -697,10 +696,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pd7pamzhdz2w0fbcvsfn2nyslznvphnwj16zw35g2b28zd2xyzx";
+      sha256 = "104kn1lj55hifcpiw1x7x9slskvqmfanylcz3nj8acjgmri0av72";
       type = "gem";
     };
-    version = "2.2.7";
+    version = "2.3.0";
   };
   ffi = {
     groups = ["default" "development" "test"];
@@ -711,10 +710,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1862ydmclzy1a0cjbvm8dz7847d9rch495ib0zb64y84d3xd4bkg";
+      sha256 = "1yvii03hcgqj30maavddqamqy50h7y6xcn2wcyq72wn823zl4ckd";
       type = "gem";
     };
-    version = "1.15.5";
+    version = "1.16.3";
   };
   fspath = {
     groups = ["default"];
@@ -746,20 +745,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kqm5ndzaybpnpxqiqkc41k4ksyxl41ln8qqr6kb130cdxsf2dxk";
+      sha256 = "1sbw6b66r7cwdx3jhs46s4lr991969hvigkjpbdl7y3i31qpdgvh";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.2.1";
   };
   google-protobuf = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dq5lgkxhagqr8zjrwr10zi8rldbg2vhis2m5q86v5q9415ylfgj";
+      sha256 = "02sh4rp14wmpfv9r7xrap6xgcakg0lk6zjvq1gsi5y38swhn2blw";
       type = "gem";
     };
-    version = "3.23.4";
+    version = "3.25.2";
   };
   guess_html_encoding = {
     groups = ["default"];
@@ -786,10 +785,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nynpl0xbj0nphqx1qlmyggq58ms1phf5i03hk64wcc0a17x1m1c";
+      sha256 = "1jf9dxgjz6z7fvymyz2acyvn9iyvwkn6d9sk7y4fxwbmfc75yimm";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.1.0";
   };
   hashie = {
     groups = ["default"];
@@ -806,20 +805,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1f8cr014j7mdqpdb9q17fp5vb5b8n1pswqaif91s3ylg5x3pygfn";
+      sha256 = "02ghhvigqbq4252gsi4w8a9klkdkybmbz29ghfp1y6sqzlcb466a";
       type = "gem";
     };
-    version = "2.1.0";
-  };
-  hkdf = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "03g3yvfnlcjv2qw3b3yahg0x7zhwcd1bwxyj6gbn5jrc7k4kfrqg";
-      type = "gem";
-    };
-    version = "1.0.0";
+    version = "3.0.1";
   };
   htmlentities = {
     groups = ["default"];
@@ -868,10 +857,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19fspid6610sm4x0mql7iny7k0d7f21xgxqmsca0irvlvazwm4vn";
+      sha256 = "16h2gxxk212mlvphf03x1z1ddb9k3vm0lgsxbvi4fjg77x8q19f6";
       type = "gem";
     };
-    version = "3.3.0";
+    version = "3.4.0";
   };
   in_threads = {
     groups = ["default"];
@@ -898,10 +887,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nalhin1gda4v8ybk6lq8f407cgfrj6qzn234yra4ipkmlbfmal6";
+      sha256 = "0r9jmjhg2ly3l736flk7r2al47b5c8cayh0gqkq0yhjqzc9a6zhq";
       type = "gem";
     };
-    version = "2.6.3";
+    version = "2.7.1";
   };
   json-schema = {
     dependencies = ["addressable"];
@@ -909,10 +898,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gdvm83yaa5n8hwapwzxwfcmbypiq2i0zfx4mzz67wg55p2cnli4";
+      sha256 = "0j9dz9sf7swwmfahlngph8n9ibm0cx7mdy9zpv3w44578nbkka49";
       type = "gem";
     };
-    version = "3.0.0";
+    version = "4.1.1";
   };
   json_schemer = {
     dependencies = ["hana" "regexp_parser" "simpleidn"];
@@ -920,10 +909,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mbf7v8bzmxyk413y16drnww68bgyzknlqmaqvj785iakja7in7x";
+      sha256 = "02gnz7wajg7f5n67vlswfi8yjvwahypy36z6hrg0qfx3cc3589qg";
       type = "gem";
     };
-    version = "1.0.3";
+    version = "2.1.1";
   };
   jwt = {
     groups = ["default"];
@@ -998,10 +987,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01kdw5dbzimb89rq4zf44zf8990czb5qxvib0hzja1l4hrha8cki";
+      sha256 = "1qcsvh9k4c0cp6agqm9a8m4x2gg7vifryqr7yxkg2x9ph9silds2";
       type = "gem";
     };
-    version = "0.13.0";
+    version = "0.14.0";
   };
   logstash-event = {
     groups = ["default"];
@@ -1029,10 +1018,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18yqcf756rzxdq5pw2qrximfryv15ib7rv2g622wjig7zhvk8wx4";
+      sha256 = "036hw6iiy64d1q3cmqi026zspr8lyzh1qw00ds6l8l2jgg8m6fsc";
       type = "gem";
     };
-    version = "2.12.2";
+    version = "2.16.0";
   };
   loofah = {
     dependencies = ["crass" "nokogiri"];
@@ -1040,10 +1029,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p744kjpb5zk2ihklbykzii77alycjc04vpnm2ch2f3cp65imlj3";
+      sha256 = "1zkjqf37v2d7s11176cb35cl83wls5gm3adnfkn2zcc61h3nxmqh";
       type = "gem";
     };
-    version = "2.21.3";
+    version = "2.22.0";
   };
   lru_redux = {
     groups = ["default"];
@@ -1122,10 +1111,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ppqgch8xxccpmccdx37lb00112ayqjb80zz5m3w3298vdzb1kn4";
+      sha256 = "15xqp7pnicjh2868fsc6fmxw8cw32bpiaqpc5bz8cwdib09ns3qk";
       type = "gem";
     };
-    version = "4.3.7";
+    version = "4.3.8";
   };
   method_source = {
     groups = ["default" "development" "test"];
@@ -1138,24 +1127,24 @@
     version = "1.0.0";
   };
   mini_mime = {
-    groups = ["default"];
+    groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lbim375gw2dk6383qirz13hgdmxlan0vc5da2l072j3qw6fqjm5";
+      sha256 = "1vycif7pjzkr29mfk4dlqv3disc5dn0va04lkwajlpr1wkibg0c6";
       type = "gem";
     };
-    version = "1.1.2";
+    version = "1.1.5";
   };
   mini_portile2 = {
-    groups = ["default" "development" "test"];
+    groups = ["default" "development" "generic_import" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02mj8mpd6ck5gpcnsimx5brzggw5h5mmmpq2djdypfq16wcw82qq";
+      sha256 = "149r94xi6b3jbp6bv72f8383b95ndn0p5sxnq11gs1j9jadv0ajf";
       type = "gem";
     };
-    version = "2.8.4";
+    version = "2.8.6";
   };
   mini_racer = {
     dependencies = ["libv8-node"];
@@ -1184,10 +1173,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dgwyyya821sfj4f92sljsxmmnak2yrzsbckvy82001zgq1n3b41";
+      sha256 = "0yrxjmwhfnvcwbj9vscyq0z67sq09zl8qhmzgakq2ywy4yvcpwgg";
       type = "gem";
     };
-    version = "1.4.0";
+    version = "1.5.0";
   };
   mini_suffix = {
     dependencies = ["ffi"];
@@ -1200,15 +1189,25 @@
     };
     version = "0.3.3";
   };
+  minio_runner = {
+    groups = ["test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1c0bld2bpnfrld7g0pli3pp3b1z3a21cgahhw70i5cjr33sx88pi";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
   minitest = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jnpsbb2dbcs95p4is4431l2pw1l5pn7dfg3vkgb4ga464j0c5l6";
+      sha256 = "1hmszq7p4zp2ha3qjv1axam602rgnqhlz5zfzil7yk4nvfwcv1bn";
       type = "gem";
     };
-    version = "5.19.0";
+    version = "5.21.2";
   };
   mocha = {
     dependencies = ["ruby2_keywords"];
@@ -1271,10 +1270,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0y55ib1v2b8prqfi9ij7hca60b1j94s2bzr6vskwi3i5735472wq";
+      sha256 = "10n2n9aq00ih8v881af88l1zyrqgs5cl3njdw8argjwbl5ggqvm9";
       type = "gem";
     };
-    version = "0.3.2";
+    version = "0.4.1";
   };
   net-imap = {
     dependencies = ["date" "net-protocol"];
@@ -1282,10 +1281,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lf7wqg7czhaj51qsnmn28j7jmcxhkh3m28rl1cjrqsgjxhwj7r3";
+      sha256 = "0z9f6kfxz9qanar534gs3mk6snyvw8rnx3f6ykjn2jiziv0rv1ig";
       type = "gem";
     };
-    version = "0.3.7";
+    version = "0.4.9.1";
   };
   net-pop = {
     dependencies = ["net-protocol"];
@@ -1304,10 +1303,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dxckrlw4q1lcn3qg4mimmjazmg9bma5gllv72f8js3p36fb3b91";
+      sha256 = "1a32l4x73hz200cm587bc29q8q9az278syw3x6fkc9d1lv5y0wxa";
       type = "gem";
     };
-    version = "0.2.1";
+    version = "0.2.2";
   };
   net-smtp = {
     dependencies = ["net-protocol"];
@@ -1315,20 +1314,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1c6md06hm5bf6rv53sk54dl2vg038pg8kglwv3rayx0vk2mdql9x";
+      sha256 = "0csspzqrg7s2v2wdp6vqqs1rra6w5ilpgnps5h52ig6rp7x2i389";
       type = "gem";
     };
-    version = "0.3.3";
+    version = "0.4.0.1";
   };
   nio4r = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w9978zwjf1qhy3amkivab0f9syz6a7k0xgydjidaf7xc831d78f";
+      sha256 = "0xkjz56qc7hl7zy7i7bhiyw5pl85wwjsa4p70rj6s958xj2sd1lm";
       type = "gem";
     };
-    version = "2.5.9";
+    version = "2.7.0";
   };
   nokogiri = {
     dependencies = ["mini_portile2" "racc"];
@@ -1336,10 +1335,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jw8a20a9k05fpz3q24im19b97idss3179z76yn5scc5b8lk2rl7";
+      sha256 = "1l8b0i24h4irivyhwy9xmkjbggw86cxkzkiqdqg0jpcp9qc8h4rl";
       type = "gem";
     };
-    version = "1.15.3";
+    version = "1.16.0";
   };
   oauth = {
     dependencies = ["oauth-tty" "snaky_hash" "version_gem"];
@@ -1375,14 +1374,15 @@
     version = "1.4.11";
   };
   oj = {
+    dependencies = ["bigdecimal"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vzcrsv6w5k90l75gy83dlfkv2z9pvnr82mz1nhnijmcg3rgqaz8";
+      sha256 = "0g5nx99lrwmk6ynfaacqkyijnhvi4mckm77bmvpa0jmfg068l26h";
       type = "gem";
     };
-    version = "3.15.1";
+    version = "3.16.3";
   };
   omniauth = {
     dependencies = ["hashie" "rack"];
@@ -1466,10 +1466,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0c649921vg2l939z5cc3jwd8p1v49099pdhxfk7sb9qqx5wi5873";
+      sha256 = "054d6ybgjdzxw567m7rbnd46yp6gkdbc5ihr536vxd3p15vbhjrw";
       type = "gem";
     };
-    version = "3.1.0";
+    version = "3.2.0";
   };
   openssl-signature_algorithm = {
     dependencies = ["openssl"];
@@ -1501,10 +1501,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jcc512l38c0c163ni3jgskvq1vc3mr8ly5pvjijzwvfml9lf597";
+      sha256 = "15wkxrg1sj3n1h2g8jcrn7gcapwcgxr659ypjf75z1ipkgxqxwsv";
       type = "gem";
     };
-    version = "1.23.0";
+    version = "1.24.0";
   };
   parallel_tests = {
     dependencies = ["parallel"];
@@ -1512,10 +1512,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04y02j0kyhfww41dnnjawn2gpp24smq0x21dvaa5z6pnq0fvmahv";
+      sha256 = "0mahfvfq56d476wb6p1zg3f2gph4zggb4dcly0h5rbvvkaysfvfw";
       type = "gem";
     };
-    version = "4.2.1";
+    version = "4.4.0";
   };
   parser = {
     dependencies = ["ast" "racc"];
@@ -1523,20 +1523,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1swigds85jddb5gshll1g8lkmbcgbcp9bi1d4nigwvxki8smys0h";
+      sha256 = "11r6kp8wam0nkfvnwyc1fmvky102r1vcfr84vi2p1a2wa0z32j3p";
       type = "gem";
     };
-    version = "3.2.2.3";
+    version = "3.3.0.5";
   };
   pg = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07m6lxljabw9kyww5k5lgsxsznsm1v5l14r1la09gqka9b5kv3yr";
+      sha256 = "0pfj771p5a29yyyw58qacks464sl86d5m3jxjl5rlqqw2m3v5xq4";
       type = "gem";
     };
-    version = "1.4.6";
+    version = "1.5.4";
   };
   prettier_print = {
     groups = ["default" "development" "test"];
@@ -1596,10 +1596,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0n9j7mczl15r3kwqrah09cxj8hxdfawiqxa60kga2bmxl9flfz9k";
+      sha256 = "1bni4qjrsh2q49pnmmd6if4iv3ak36bd2cckrs6npl111n769k9m";
       type = "gem";
     };
-    version = "5.0.3";
+    version = "5.0.4";
   };
   puma = {
     dependencies = ["nio4r"];
@@ -1607,20 +1607,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1v7fmv0n4bhdcwh60dgza44iqai5pg34f5pzm4vh4i5fwx7mpqxh";
+      sha256 = "0i2vaww6qcazj0ywva1plmjnj6rk23b01szswc5jhcq7s2cikd1y";
       type = "gem";
     };
-    version = "6.3.0";
+    version = "6.4.2";
   };
   racc = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11v3l46mwnlzlc371wr3x6yylpgafgwdf0q7hc7c1lzx6r414r5g";
+      sha256 = "01b9662zd2x9bp4rdjfid07h09zxj7kvn7f5fghbqhzc625ap1dp";
       type = "gem";
     };
-    version = "1.7.1";
+    version = "1.7.3";
   };
   rack = {
     groups = ["default" "development" "test"];
@@ -1642,21 +1642,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13dhpp1iljhqp9c8akmp6gjhx47qf83w12ns4bif26ldkignpam1";
+      sha256 = "1cbz4ih4ji2ika935x03in060kh236lyxfwk0c09p2l1wim59xcv";
       type = "gem";
     };
-    version = "3.1.0";
+    version = "3.3.0";
   };
   rack-protection = {
-    dependencies = ["rack"];
+    dependencies = ["base64" "rack"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kpm67az1wxlg76h620in2r7agfyhv177ps268j5ggsanzddzih8";
+      sha256 = "1zzvivmdb4dkscc58i3gmcyrnypynsjwp6xgc4ylarlhqmzvlx1w";
       type = "gem";
     };
-    version = "3.0.6";
+    version = "3.2.0";
   };
   rack-test = {
     dependencies = ["rack"];
@@ -1675,10 +1675,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17g05y7q7934z0ib4aph8h71c2qwjmlakkm7nb2ab45q0aqkfgjd";
+      sha256 = "0fx9dx1ag0s1lr6lfr34lbx5i1bvn3bhyf3w3mx6h7yz90p725g5";
       type = "gem";
     };
-    version = "2.1.1";
+    version = "2.2.0";
   };
   rails-html-sanitizer = {
     dependencies = ["loofah" "nokogiri"];
@@ -1719,10 +1719,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1z4lqqbd4i5izsg97mx5yf3gj7y5d07wgvad0jzjghjg12pf142i";
+      sha256 = "0sfc16zrcn4jgf5xczb08n6prhmqqgg9f0b4mn73zlzg6cwmqchj";
       type = "gem";
     };
-    version = "7.0.5.1";
+    version = "7.0.8";
   };
   rainbow = {
     groups = ["default" "development" "test"];
@@ -1755,10 +1755,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w";
+      sha256 = "1ilr853hawi09626axx0mps4rkkmxcs54mapz9jnqvpnlwd3wsmy";
       type = "gem";
     };
-    version = "13.0.6";
+    version = "13.1.0";
   };
   rb-fsevent = {
     groups = ["development" "test"];
@@ -1791,10 +1791,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s8prj0klfgpmpfcpdzbf149qrrsdxgnb6w6kkqc9gyars4vyaqn";
+      sha256 = "1p65p6f917al0f07sn5ca9yj92f7mk52xgnp0ahqpyrb8r6sdjz8";
       type = "gem";
     };
-    version = "0.4.14";
+    version = "0.5.1";
   };
   rchardet = {
     groups = ["default"];
@@ -1806,6 +1806,16 @@
     };
     version = "1.8.0";
   };
+  redcarpet = {
+    groups = ["generic_import"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sg9sbf9pm91l7lac7fs4silabyn0vflxwaa2x3lrzsm0ff8ilca";
+      type = "gem";
+    };
+    version = "3.6.0";
+  };
   redis = {
     groups = ["default"];
     platforms = [];
@@ -1832,10 +1842,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "136br91alxdwh1s85z912dwz23qlhm212vy6i3wkinz3z8mkxxl3";
+      sha256 = "1ndxm0xnv27p4gv6xynk6q41irckj76q1jsqpysd9h6f86hhp841";
       type = "gem";
     };
-    version = "2.8.1";
+    version = "2.9.0";
   };
   request_store = {
     dependencies = ["rack"];
@@ -1873,10 +1883,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10mmzc85y7andsich586ndykw678qn1ns2wpjxrg0sc0gr4w3pig";
+      sha256 = "0m48hv6wpmmm6cjr6q92q78h1i610riml19k5h1dil2yws3h1m3m";
       type = "gem";
     };
-    version = "6.2.2";
+    version = "6.3.0";
   };
   rouge = {
     groups = ["default" "development"];
@@ -1887,10 +1897,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19drl3x8fw65v3mpy7fk3cf3dfrywz5alv98n2rm4pp04vdn71lw";
+      sha256 = "1fkfa0iq3r9b0zzrxpxha17avmyzci3kidzmfbf6fd1279mndpb0";
       type = "gem";
     };
-    version = "4.1.3";
+    version = "4.2.0";
   };
   rqrcode = {
     dependencies = ["chunky_png" "rqrcode_core"];
@@ -1974,10 +1984,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "086qdyz7c4s5dslm6j06mq7j4jmj958whc3yinhabnqqmz7i463d";
+      sha256 = "1clmx6qzdbpm1g8ycg38gjbqsbr8ccqi6hqyx88g8yckz1hrx55x";
       type = "gem";
     };
-    version = "6.0.3";
+    version = "6.1.1";
   };
   rspec-support = {
     groups = ["default" "development" "test"];
@@ -1995,10 +2005,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1b1zx07kr64kkpm4lssd4r1a1qyr829ppmfl85i4adcvx9mqfid0";
+      sha256 = "1wv27axi39hhr0nmaffdl5bdjqiafcvp9xhfgnsgfczsblja50sn";
       type = "gem";
     };
-    version = "0.2.9";
+    version = "0.3.0";
   };
   rswag-specs = {
     dependencies = ["activesupport" "json-schema" "railties" "rspec-core"];
@@ -2006,10 +2016,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0p0blh8p6zj8vsiw585wiy6zpyn8p3ksn0z92ijfzaw7afvcvl8j";
+      sha256 = "1iyqd95l8r8m6jna451xb20lsp0jiajk1gbw845qlyqf6d69xyx2";
       type = "gem";
     };
-    version = "2.10.1";
+    version = "2.13.0";
   };
   rtlcss = {
     dependencies = ["mini_racer"];
@@ -2028,10 +2038,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s9p5qaqq68h5s3ys8xlk9swccma7arjif1w58987n6gicrsprrm";
+      sha256 = "0v67rgbhzanbf02fy5xasaxgmhxghlqb2cxjvbplinm2zfzs0380";
       type = "gem";
     };
-    version = "1.55.1";
+    version = "1.60.2";
   };
   rubocop-ast = {
     dependencies = ["parser"];
@@ -2039,10 +2049,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "188bs225kkhrb17dsf3likdahs2p1i1sqn0pr3pvlx50g6r2mnni";
+      sha256 = "1cs9cc5p9q70valk4na3lki4xs88b52486p2v46yx3q1n5969bgs";
       type = "gem";
     };
-    version = "1.29.0";
+    version = "1.30.0";
   };
   rubocop-capybara = {
     dependencies = ["rubocop"];
@@ -2050,10 +2060,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01fn05a87g009ch1sh00abdmgjab87i995msap26vxq1a5smdck6";
+      sha256 = "0f5r9di123hc4x2h453a143986plfzz9935bwc7267wj8awl8s1a";
       type = "gem";
     };
-    version = "2.18.0";
+    version = "2.20.0";
   };
   rubocop-discourse = {
     dependencies = ["rubocop" "rubocop-rspec"];
@@ -2061,10 +2071,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1sycsgagz7iq4j4aflzkzjlclvsck9yacjlj1pzzmfpjbbka34x8";
+      sha256 = "0f133ky0rl3zn2kb0dnzb4fvnx3w731a47f0sb91n5pisdz3ncyq";
       type = "gem";
     };
-    version = "3.3.0";
+    version = "3.6.0";
   };
   rubocop-factory_bot = {
     dependencies = ["rubocop"];
@@ -2072,10 +2082,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kqchl8f67k2g56sq2h1sm2wb6br5gi47s877hlz94g5086f77n1";
+      sha256 = "0d012phc7z5h1j1d2aisnbkmqlb95sld5jriia5qg2gpgbg1nxb2";
       type = "gem";
     };
-    version = "2.23.1";
+    version = "2.25.1";
   };
   rubocop-rspec = {
     dependencies = ["rubocop" "rubocop-capybara" "rubocop-factory_bot"];
@@ -2083,10 +2093,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0l364y00bw1zcs3grdxcxpn48vfrjds2khsiaxjqq3r9grvbprfy";
+      sha256 = "0n24wy34shczlr5fnim7vcbrgvs0hffzw89n06fxziim9iws406s";
       type = "gem";
     };
-    version = "2.23.0";
+    version = "2.26.1";
   };
   ruby-prof = {
     groups = ["development"];
@@ -2097,10 +2107,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13fsfw43zx9pcix1fzxb95g09yadqjvc8971k74krrjz81vbyh51";
+      sha256 = "0hnalxnvli6248g34n0bj8p3v35vpabak34qjg778bbaavbqg5h5";
       type = "gem";
     };
-    version = "1.6.3";
+    version = "1.7.0";
   };
   ruby-progressbar = {
     groups = ["default" "development" "test"];
@@ -2149,10 +2159,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kymrjdpbmn4yaml3aaqyj1dzj8gqmm9h030dc2rj5mvja7fpi28";
+      sha256 = "0wsw05y0h1ln3x2kvcw26fs9ivryb4xbjrb4hsk2pishkhydkz4j";
       type = "gem";
     };
-    version = "6.0.2";
+    version = "6.1.0";
   };
   sass-embedded = {
     dependencies = ["google-protobuf" "rake"];
@@ -2160,34 +2170,54 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15k44qn8vk8ap8khkmpsiw40pywm9pkx4a5yhm8vfi2rgqci9k90";
+      sha256 = "1pmsiivj7azcmbxadkkvnmkhj1w6r1knbg0gwcg1g1pafpnpf7p7";
+      type = "gem";
+    };
+    version = "1.70.0";
+  };
+  sassc-embedded = {
+    dependencies = ["sass-embedded"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ym7kh6zyygnxpjdsqbflwl0gjnyr25qn1dxygajaj4ww464ibya";
+      type = "gem";
+    };
+    version = "1.70.0";
+  };
+  selenium-devtools = {
+    dependencies = ["selenium-webdriver"];
+    groups = ["test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1l2qf5w0bk01s50gzx8clzw4zchff9a01kk2s8fnpz65g7rgh4g9";
       type = "gem";
     };
-    version = "1.64.1";
+    version = "0.121.0";
   };
   selenium-webdriver = {
-    dependencies = ["rexml" "rubyzip" "websocket"];
+    dependencies = ["base64" "rexml" "rubyzip" "websocket"];
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hwxxvx6j95ln82pjmrgyzg6qmf511dkcp5q79n6m5m8z4way8m3";
+      sha256 = "0g3l3invk95w1f72mpp0r4hc3vsc3070c1xd1wg76kfg2r182xnq";
       type = "gem";
     };
-    version = "4.10.0";
+    version = "4.17.0";
   };
   shoulda-matchers = {
     dependencies = ["activesupport"];
     groups = ["development" "test"];
     platforms = [];
     source = {
-      fetchSubmodules = false;
-      rev = "783a90554053002017510285bc736099b2749c22";
-      sha256 = "10rw7ksi462fxamap6kimdy7hpdgx8477r6zs1kgrbakx24dm3wx";
-      type = "git";
-      url = "https://github.com/thoughtbot/shoulda-matchers.git";
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p83ca48h812h5gksw2q0x5289jsc4c417f8s6w9d4a12jzw86zi";
+      type = "gem";
     };
-    version = "5.3.0";
+    version = "6.1.0";
   };
   sidekiq = {
     dependencies = ["connection_pool" "rack" "redis"];
@@ -2195,10 +2225,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0iv7vgqyrpymiwvc3ca24sl4lda8m627p657p0v4xzdpzincrnbr";
+      sha256 = "0zqr9is8y7mg5dfs1q8w5jl9spwvqkhbi9r6np8208n40hi3pydl";
       type = "gem";
     };
-    version = "6.5.9";
+    version = "6.5.12";
   };
   simplecov = {
     dependencies = ["docile" "simplecov-html" "simplecov_json_formatter"];
@@ -2277,15 +2307,26 @@
     };
     version = "3.4.2";
   };
+  sqlite3 = {
+    dependencies = ["mini_portile2"];
+    groups = ["generic_import"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vkgmg63fa0m0fbyxdv7sn5mq3jpiz6r88yix2g3vdc6w0h94gcr";
+      type = "gem";
+    };
+    version = "1.7.1";
+  };
   sshkey = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03bkn55qsng484iqwz2lmm6rkimj01vsvhwk661s3lnmpkl65lbp";
+      sha256 = "1k8i5pzjhcnyf0bhcyn5iixpfp4pz0556rcxwpglh6p0sr8s6nv5";
       type = "gem";
     };
-    version = "2.0.0";
+    version = "3.0.0";
   };
   stackprof = {
     groups = ["default"];
@@ -2296,10 +2337,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bhdgfb0pmw9mav1kw9fn0ka012sa0i3h5ppvqssw5xq48nhxnr8";
+      sha256 = "1gdqqwnampxmc54nf6zfy9apkmkpdavzipvfssmjlhnrrjy8qh7f";
       type = "gem";
     };
-    version = "0.2.25";
+    version = "0.2.26";
   };
   syntax_tree = {
     dependencies = ["prettier_print"];
@@ -2307,10 +2348,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "162m5xhbiq315bncp49ziddws537dv09pqsgrzsrmhhsymhgy0zb";
+      sha256 = "0g9l9acknjr2yz8ynfxbcrwx2ws3wh96pfzdb31g66k08v1022m5";
       type = "gem";
     };
-    version = "6.1.1";
+    version = "6.2.0";
   };
   syntax_tree-disable_ternary = {
     groups = ["development" "test"];
@@ -2327,40 +2368,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08j5456rdpgxvv8bs44x81jrxzpxb79wxfxdq4fqwxyircxzi2jj";
+      sha256 = "08vm33d51zdan4zj4cccw3lx06p6flc1h40kgdfm9rp4x83csdda";
       type = "gem";
     };
-    version = "1.2.2";
+    version = "1.3.1";
   };
   thor = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k7j2wn14h1pl4smibasw0bp66kg626drxb59z7rzflch99cd4rg";
-      type = "gem";
-    };
-    version = "1.2.2";
-  };
-  tilt = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0bmjgbv8158klwp2r3klxjwaj93nh1sbl4xvj9wsha0ic478avz7";
+      sha256 = "1hx77jxkrwi66yvs10wfxqa8s25ds25ywgrrf66acm9nbfg7zp0s";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "1.3.0";
   };
   timeout = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1d9cvm0f4zdpwa795v3zv4973y5zk59j7s1x3yn90jjrhcz1yvfd";
+      sha256 = "16mvvsmx90023wrhf8dxc1lpqh0m8alk65shb7xcya6a9gflw7vg";
       type = "gem";
     };
-    version = "0.4.0";
+    version = "0.4.1";
   };
   tzinfo = {
     dependencies = ["concurrent-ruby"];
@@ -2379,10 +2410,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0m2d0gpsgqnv29j5h2d6g57g0rayvd460b8s2vjr8sn46bqf89m5";
+      sha256 = "1v3k61zcbxfmf150d4vky6cbdmyrn3yljsl9na1y3i52v7zsbdnx";
       type = "gem";
     };
-    version = "1.2023.3";
+    version = "1.2023.4";
   };
   uglifier = {
     dependencies = ["execjs"];
@@ -2411,20 +2442,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yj2nz2l101vr1x9w2k83a0fag1xgnmjwp8w8rw4ik2rwcz65fch";
+      sha256 = "1sf6bxvf6x8gihv6j63iakixmdddgls58cpxpg32chckb2l18qcj";
       type = "gem";
     };
-    version = "0.0.8.2";
+    version = "0.0.9.1";
   };
   unicode-display_width = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gi82k102q7bkmfi7ggn9ciypn897ylln1jk9q67kjhr39fj043a";
+      sha256 = "1d0azx233nags5jx3fqyr23qa2rhgzbhv8pxp46dgbg1mpf82xky";
       type = "gem";
     };
-    version = "2.4.2";
+    version = "2.5.0";
   };
   unicorn = {
     dependencies = ["kgio" "raindrops"];
@@ -2458,10 +2489,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fa49cdssxllj1j37a56kq27wsibx5lmqxkqdk1rz3452y0bsydy";
+      sha256 = "094gk72ckazf495qc76gk09b5i318d5l9m7bicg2wxlrjcm3qm96";
       type = "gem";
     };
-    version = "0.12.2";
+    version = "0.13.0";
   };
   version_gem = {
     groups = ["default"];
@@ -2474,26 +2505,15 @@
     version = "1.1.3";
   };
   web-push = {
-    dependencies = ["hkdf" "jwt" "openssl"];
+    dependencies = ["jwt" "openssl"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jsximg9v44rpclhjxp03fxk68jx675pghwxc66wj7rn9h9fc54i";
+      sha256 = "13diqh61rl658gwq0c2ds41z59i0x4plj5k4v98qkgd3pgrd4kav";
       type = "gem";
     };
-    version = "3.0.0";
-  };
-  webdrivers = {
-    dependencies = ["nokogiri" "rubyzip" "selenium-webdriver"];
-    groups = ["test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "19aaxhawzv7315rh285gd1fg6m6wbrn3w3kilyibci1wphgm7mfp";
-      type = "gem";
-    };
-    version = "5.3.1";
+    version = "3.0.1";
   };
   webmock = {
     dependencies = ["addressable" "crack" "hashdiff"];
@@ -2501,20 +2521,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1myj44wvbbqvv18ragv3ihl0h61acgnfwrnj3lccdgp49bgmbjal";
+      sha256 = "0vfispr7wd2p1fs9ckn1qnby1yyp4i1dl7qz8n482iw977iyxrza";
       type = "gem";
     };
-    version = "3.18.1";
+    version = "3.19.1";
   };
   websocket = {
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dib6p55sl606qb4vpwrvj5wh881kk4aqn2zpfapf8ckx7g14jw8";
+      sha256 = "1a4zc8d0d91c3xqwapda3j3zgpfwdbj76hkb69xn6qvfkfks9h9c";
       type = "gem";
     };
-    version = "1.2.9";
+    version = "1.2.10";
   };
   xpath = {
     dependencies = ["nokogiri"];
@@ -2552,9 +2572,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06vf6y5ai20ry3b1h9cl7vsdj6i5valq172zdxpnfhj5zvlp104j";
+      sha256 = "1gir0if4nryl1jhwi28669gjwhxb7gzrm1fcc8xzsch3bnbi47jn";
       type = "gem";
     };
-    version = "2.6.10";
+    version = "2.6.12";
   };
 }
diff --git a/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch b/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch
index 88ebc1337487b..d85e4bf98676c 100644
--- a/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch
+++ b/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch
@@ -1,13 +1,13 @@
 diff --git a/config/unicorn.conf.rb b/config/unicorn.conf.rb
-index e69979adfe..68cb04a036 100644
+index 9fd348b074..40eb73b96e 100644
 --- a/config/unicorn.conf.rb
 +++ b/config/unicorn.conf.rb
-@@ -27,18 +27,10 @@ pid (ENV["UNICORN_PID_PATH"] || "#{discourse_path}/tmp/pids/unicorn.pid")
- 
+@@ -27,17 +27,9 @@ pid(ENV["UNICORN_PID_PATH"] || "#{discourse_path}/tmp/pids/unicorn.pid")
+
  if ENV["RAILS_ENV"] != "production"
    logger Logger.new(STDOUT)
 -  # we want a longer timeout in dev cause first request can be really slow
--  timeout (ENV["UNICORN_TIMEOUT"] && ENV["UNICORN_TIMEOUT"].to_i || 60)
+-  timeout(ENV["UNICORN_TIMEOUT"] && ENV["UNICORN_TIMEOUT"].to_i || 60)
 -else
 -  # By default, the Unicorn logger will write to stderr.
 -  # Additionally, some applications/frameworks log to stderr or stdout,
@@ -17,9 +17,8 @@ index e69979adfe..68cb04a036 100644
 -  # nuke workers after 30 seconds instead of 60 seconds (the default)
 -  timeout 30
  end
- 
-+timeout (ENV["UNICORN_TIMEOUT"] && ENV["UNICORN_TIMEOUT"].to_i || 60)
+
++timeout(ENV["UNICORN_TIMEOUT"] && ENV["UNICORN_TIMEOUT"].to_i || 60)
 +
  # important for Ruby 2.0
  preload_app true
- 
diff --git a/pkgs/servers/web-apps/discourse/update.py b/pkgs/servers/web-apps/discourse/update.py
index 9b300d1d4959f..5d17b9798b600 100755
--- a/pkgs/servers/web-apps/discourse/update.py
+++ b/pkgs/servers/web-apps/discourse/update.py
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#! nix-shell -i python3 -p bundix bundler nix-update nix-universal-prefetch python3 python3Packages.requests python3Packages.click python3Packages.click-log prefetch-yarn-deps
+#! nix-shell -i python3 -p bundix bundler nix-update nix-universal-prefetch "python3.withPackages (ps: with ps; [ requests click click-log packaging ])" prefetch-yarn-deps
 from __future__ import annotations
 
 import click
@@ -15,8 +15,7 @@ import json
 import requests
 import textwrap
 from functools import total_ordering
-from distutils.version import LooseVersion
-from itertools import zip_longest
+from packaging.version import Version
 from pathlib import Path
 from typing import Union, Iterable
 
@@ -47,33 +46,16 @@ class DiscourseVersion:
         else:
             self.tag = 'v' + version
             self.version = version
-        self.split_version = LooseVersion(self.version).version
+
+        self._version = Version(self.version)
 
     def __eq__(self, other: DiscourseVersion):
         """Versions are equal when their individual parts are."""
-        return self.split_version == other.split_version
+        return self._version == other._version
 
     def __gt__(self, other: DiscourseVersion):
-        """Check if this version is greater than the other.
-
-        Goes through the parts of the version numbers from most to
-        least significant, only continuing on to the next if the
-        numbers are equal and no decision can be made. If one version
-        ends in 'betaX' and the other doesn't, all else being equal,
-        the one without 'betaX' is considered greater, since it's the
-        release version.
-
-        """
-        for (this_ver, other_ver) in zip_longest(self.split_version, other.split_version):
-            if this_ver == other_ver:
-                continue
-            if type(this_ver) is int and type(other_ver) is int:
-                return this_ver > other_ver
-            elif 'beta' in [this_ver, other_ver]:
-                # release version (None) is greater than beta
-                return this_ver is None
-        else:
-            return False
+        """Check if this version is greater than the other."""
+        return self._version > other._version
 
 
 class DiscourseRepo:
@@ -104,11 +86,12 @@ class DiscourseRepo:
 
         return self._latest_commit_sha
 
-    def get_yarn_lock_hash(self, rev: str):
-        yarnLockText = self.get_file('app/assets/javascripts/yarn.lock', rev)
+    def get_yarn_lock_hash(self, rev: str, path: str):
+        yarnLockText = self.get_file(path, rev)
         with tempfile.NamedTemporaryFile(mode='w') as lockFile:
             lockFile.write(yarnLockText)
-            return subprocess.check_output(['prefetch-yarn-deps', lockFile.name]).decode('utf-8').strip()
+            hash = subprocess.check_output(['prefetch-yarn-deps', lockFile.name]).decode().strip()
+            return subprocess.check_output(["nix", "hash", "to-sri", "--type", "sha256", hash]).decode().strip()
 
     def get_file(self, filepath, rev):
         """Return file contents at a given rev.
@@ -242,6 +225,8 @@ def update(rev):
         with open(rubyenv_dir / fn, 'w') as f:
             f.write(repo.get_file(fn, version.tag))
 
+    # work around https://github.com/nix-community/bundix/issues/8
+    os.environ["BUNDLE_FORCE_RUBY_PLATFORM"] = "true"
     subprocess.check_output(['bundle', 'lock'], cwd=rubyenv_dir)
     _remove_platforms(rubyenv_dir)
     subprocess.check_output(['bundix'], cwd=rubyenv_dir)
@@ -249,11 +234,17 @@ def update(rev):
     _call_nix_update('discourse', version.version)
 
     old_yarn_hash = _nix_eval('discourse.assets.yarnOfflineCache.outputHash')
-    new_yarn_hash = repo.get_yarn_lock_hash(version.tag)
-    click.echo(f"Updating yarn lock hash, {old_yarn_hash} -> {new_yarn_hash}")
+    new_yarn_hash = repo.get_yarn_lock_hash(version.tag, "app/assets/javascripts/yarn-ember5.lock")
+    click.echo(f"Updating yarn lock hash: {old_yarn_hash} -> {new_yarn_hash}")
+
+    old_yarn_dev_hash = _nix_eval('discourse.assets.yarnDevOfflineCache.outputHash')
+    new_yarn_dev_hash = repo.get_yarn_lock_hash(version.tag, "yarn.lock")
+    click.echo(f"Updating yarn dev lock hash: {old_yarn_dev_hash} -> {new_yarn_dev_hash}")
+
     with open(Path(__file__).parent / "default.nix", 'r+') as f:
         content = f.read()
         content = content.replace(old_yarn_hash, new_yarn_hash)
+        content = content.replace(old_yarn_dev_hash, new_yarn_dev_hash)
         f.seek(0)
         f.write(content)
         f.truncate()
@@ -320,7 +311,7 @@ def update_plugins():
             compatibility_spec = repo.get_file('.discourse-compatibility', repo.latest_commit_sha)
             versions = [(DiscourseVersion(discourse_version), plugin_rev.strip(' '))
                         for [discourse_version, plugin_rev]
-                        in [line.split(':')
+                        in [line.lstrip("< ").split(':')
                             for line
                             in compatibility_spec.splitlines() if line != '']]
             discourse_version = DiscourseVersion(_get_current_package_version('discourse'))
diff --git a/pkgs/servers/web-apps/dokuwiki/default.nix b/pkgs/servers/web-apps/dokuwiki/default.nix
index 00cbbfd0ad24d..658fed9de3696 100644
--- a/pkgs/servers/web-apps/dokuwiki/default.nix
+++ b/pkgs/servers/web-apps/dokuwiki/default.nix
@@ -83,7 +83,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Simple to use and highly versatile Open Source wiki software that doesn't require a database";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     homepage = "https://www.dokuwiki.org";
     platforms = platforms.all;
     maintainers = with maintainers; [ _1000101 ];
diff --git a/pkgs/servers/web-apps/dolibarr/default.nix b/pkgs/servers/web-apps/dolibarr/default.nix
index 230ae3d1e6581..b1292c9bd66a7 100644
--- a/pkgs/servers/web-apps/dolibarr/default.nix
+++ b/pkgs/servers/web-apps/dolibarr/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   passthru.tests = { inherit (nixosTests) dolibarr; };
 
   meta = with lib; {
-    description = "A enterprise resource planning (ERP) and customer relationship manager (CRM) server";
+    description = "Enterprise resource planning (ERP) and customer relationship manager (CRM) server";
     homepage = "https://dolibarr.org/";
     license = licenses.gpl3Plus;
     maintainers = [ ];
diff --git a/pkgs/servers/web-apps/engelsystem/default.nix b/pkgs/servers/web-apps/engelsystem/default.nix
index 4f6563db90b71..264c3243d2165 100644
--- a/pkgs/servers/web-apps/engelsystem/default.nix
+++ b/pkgs/servers/web-apps/engelsystem/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
     description =
       "Coordinate your volunteers in teams, assign them to work shifts or let them decide for themselves when and where they want to help with what";
     homepage = "https://engelsystem.de";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     mainProgram = "migrate";
     maintainers = with maintainers; [ ];
     platforms = platforms.all;
diff --git a/pkgs/servers/web-apps/freshrss/default.nix b/pkgs/servers/web-apps/freshrss/default.nix
index 9cf085f8c2b04..f43aa15887cfd 100644
--- a/pkgs/servers/web-apps/freshrss/default.nix
+++ b/pkgs/servers/web-apps/freshrss/default.nix
@@ -7,13 +7,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "FreshRSS";
-  version = "1.23.1";
+  version = "1.24.1";
 
   src = fetchFromGitHub {
     owner = "FreshRSS";
     repo = "FreshRSS";
     rev = version;
-    hash = "sha256-uidTsL8TREZ/qcqO/J+6hguP6Dr6J+995WNWCJCduBw=";
+    hash = "sha256-AAOON1RdbG6JSnCc123jmIlIXHOE1PE49BV4hcASO/s=";
   };
 
   passthru.tests = {
diff --git a/pkgs/servers/web-apps/galene/default.nix b/pkgs/servers/web-apps/galene/default.nix
index cdbdd675a92d9..d8742978d073e 100644
--- a/pkgs/servers/web-apps/galene/default.nix
+++ b/pkgs/servers/web-apps/galene/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "galene";
-  version = "0.8.2";
+  version = "0.9";
 
   src = fetchFromGitHub {
     owner = "jech";
     repo = "galene";
     rev = "galene-${version}";
-    hash = "sha256-536n2ZCKlWDV9MqiNBpWocwnDUFekRcN+N5DuIzq9a4=";
+    hash = "sha256-wklWAs5Ag9FZu85vLPNXoiS7TVQe98fLbRiMIp2OsaI=";
   };
 
-  vendorHash = "sha256-J0pQm2TqlYwtMNuR/53SnpAwl9L9rq7FpVd3F9M0qso=";
+  vendorHash = "sha256-U8DH3b2KbFQbEV+7suVsBiTA42FEl6DebH+GJDaH6aE=";
 
   ldflags = [ "-s" "-w" ];
   preCheck = "export TZ=UTC";
diff --git a/pkgs/servers/web-apps/healthchecks/default.nix b/pkgs/servers/web-apps/healthchecks/default.nix
index 09f029930c3b1..cc47813814162 100644
--- a/pkgs/servers/web-apps/healthchecks/default.nix
+++ b/pkgs/servers/web-apps/healthchecks/default.nix
@@ -92,7 +92,7 @@ py.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/healthchecks/healthchecks";
-    description = "A cron monitoring tool written in Python & Django ";
+    description = "Cron monitoring tool written in Python & Django ";
     license = licenses.bsd3;
     maintainers = with maintainers; [ phaer ];
   };
diff --git a/pkgs/servers/web-apps/hedgedoc/default.nix b/pkgs/servers/web-apps/hedgedoc/default.nix
index 1992c14270e75..7e1c7644fb014 100644
--- a/pkgs/servers/web-apps/hedgedoc/default.nix
+++ b/pkgs/servers/web-apps/hedgedoc/default.nix
@@ -55,6 +55,10 @@ in stdenv.mkDerivation {
     python3 # needed for sqlite node-gyp
   ];
 
+  buildInputs = [
+    nodejs
+  ];
+
   dontConfigure = true;
 
   buildPhase = ''
@@ -75,7 +79,8 @@ in stdenv.mkDerivation {
     yarn --immutable-cache
     yarn run build
 
-    rm bin/heroku
+    # Delete scripts that are not useful for NixOS
+    rm bin/{heroku,setup}
     patchShebangs bin/*
 
     runHook postBuild
@@ -85,11 +90,10 @@ in stdenv.mkDerivation {
     runHook preInstall
 
     mkdir -p $out/share/hedgedoc
-    cp -r bin $out
-    cp -r {app.js,lib,locales,node_modules,package.json,public} $out/share/hedgedoc
+    cp -r {app.js,bin,lib,locales,node_modules,package.json,public} $out/share/hedgedoc
 
-    for bin in $out/bin/*; do
-      wrapProgram $bin \
+    for bin in $out/share/hedgedoc/bin/*; do
+      makeWrapper $bin $out/bin/$(basename $bin) \
         --set NODE_ENV production \
         --set NODE_PATH "$out/share/hedgedoc/lib/node_modules"
     done
diff --git a/pkgs/servers/web-apps/invoiceplane/default.nix b/pkgs/servers/web-apps/invoiceplane/default.nix
index 8f4265cbd10b8..ade13a137574d 100644
--- a/pkgs/servers/web-apps/invoiceplane/default.nix
+++ b/pkgs/servers/web-apps/invoiceplane/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, writeText, unzip, nixosTests, fetchpatch }:
+{ lib, stdenv, fetchurl, unzip, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "invoiceplane";
diff --git a/pkgs/servers/web-apps/kavita/default.nix b/pkgs/servers/web-apps/kavita/default.nix
index 7873ee6840148..f68681300a829 100644
--- a/pkgs/servers/web-apps/kavita/default.nix
+++ b/pkgs/servers/web-apps/kavita/default.nix
@@ -87,7 +87,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   };
 
   meta = {
-    description = "A fast, feature rich, cross platform reading server";
+    description = "Fast, feature rich, cross platform reading server";
     homepage = "https://kavitareader.com";
     changelog = "https://github.com/kareadita/kavita/releases/tag/${finalAttrs.src.rev}";
     license = lib.licenses.gpl3Only;
diff --git a/pkgs/servers/web-apps/lemmy/server.nix b/pkgs/servers/web-apps/lemmy/server.nix
index 4f605b0b2dbd3..d4d44c473f5c2 100644
--- a/pkgs/servers/web-apps/lemmy/server.nix
+++ b/pkgs/servers/web-apps/lemmy/server.nix
@@ -6,6 +6,7 @@
 , postgresql
 , libiconv
 , Security
+, SystemConfiguration
 , protobuf
 , rustfmt
 , nixosTests
@@ -33,7 +34,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = pinData.serverCargoHash;
 
   buildInputs = [ postgresql ]
-    ++ lib.optionals stdenv.isDarwin [ libiconv Security ];
+    ++ lib.optionals stdenv.isDarwin [ libiconv Security SystemConfiguration ];
 
   # Using OPENSSL_NO_VENDOR is not an option on darwin
   # As of version 0.10.35 rust-openssl looks for openssl on darwin
diff --git a/pkgs/servers/web-apps/linx-server/default.nix b/pkgs/servers/web-apps/linx-server/default.nix
index 995eacf792e4d..dbd8c3f3d122f 100644
--- a/pkgs/servers/web-apps/linx-server/default.nix
+++ b/pkgs/servers/web-apps/linx-server/default.nix
@@ -25,7 +25,7 @@ buildGoModule rec {
   preBuild = "rice embed-go";
 
   meta = with lib; {
-    description = "Self-hosted file/code/media sharing website.";
+    description = "Self-hosted file/code/media sharing website";
     homepage = "https://put.icu";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ urandom ];
diff --git a/pkgs/servers/web-apps/matomo/default.nix b/pkgs/servers/web-apps/matomo/default.nix
index c9584fb25e357..627c64e67b3ef 100644
--- a/pkgs/servers/web-apps/matomo/default.nix
+++ b/pkgs/servers/web-apps/matomo/default.nix
@@ -113,7 +113,7 @@ let
         };
 
         meta = with lib; {
-          description = "A real-time web analytics application";
+          description = "Real-time web analytics application";
           mainProgram = "matomo-console";
           license = licenses.gpl3Plus;
           homepage = "https://matomo.org/";
diff --git a/pkgs/servers/web-apps/mediawiki/default.nix b/pkgs/servers/web-apps/mediawiki/default.nix
index bab57f2576833..964baf96f827e 100644
--- a/pkgs/servers/web-apps/mediawiki/default.nix
+++ b/pkgs/servers/web-apps/mediawiki/default.nix
@@ -30,7 +30,7 @@ stdenvNoCC.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "The collaborative editing software that runs Wikipedia";
+    description = "Collaborative editing software that runs Wikipedia";
     license = licenses.gpl2Plus;
     homepage = "https://www.mediawiki.org/";
     platforms = platforms.all;
diff --git a/pkgs/servers/web-apps/moodle/default.nix b/pkgs/servers/web-apps/moodle/default.nix
index c6ed99022e7ab..025bd8b00b029 100644
--- a/pkgs/servers/web-apps/moodle/default.nix
+++ b/pkgs/servers/web-apps/moodle/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, writeText, plugins ? [ ], nixosTests }:
 
 let
-  version = "4.4";
+  version = "4.4.1";
 
   versionParts = lib.take 2 (lib.splitVersion version);
   # 4.2 -> 402, 3.11 -> 311
@@ -15,7 +15,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://download.moodle.org/download.php/direct/stable${stableVersion}/${pname}-${version}.tgz";
-    hash = "sha256-IW47IWtdbkBk8gw6eEQb/C9/BRwDbJpirXncGGDy3+s=";
+    hash = "sha256-+pzDrSMm+V4pEze13mJ/eyhaxcvnmG/eno0csCRTisU=";
   };
 
   phpConfig = writeText "config.php" ''
diff --git a/pkgs/servers/web-apps/outline/default.nix b/pkgs/servers/web-apps/outline/default.nix
index 391aebf6c26c9..35437f4fd778a 100644
--- a/pkgs/servers/web-apps/outline/default.nix
+++ b/pkgs/servers/web-apps/outline/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "outline";
-  version = "0.76.1";
+  version = "0.77.2";
 
   src = fetchFromGitHub {
     owner = "outline";
     repo = "outline";
     rev = "v${version}";
-    hash = "sha256-i+1Bd9equlYxxdmvoUim31SM5ymJjnauvqGOmnPmTWA=";
+    hash = "sha256-Ri2qN7nR79Y1tsUsga/92nS7EuP/nqaUG2FiYJQNAr4=";
   };
 
   nativeBuildInputs = [ makeWrapper prefetch-yarn-deps fixup-yarn-lock ];
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   yarnOfflineCache = fetchYarnDeps {
     yarnLock = "${src}/yarn.lock";
-    hash = "sha256-xR6W9Kclgt7YZvkqNg7hOtY39mMNZvtDR/a1aOgD2Ko=";
+    hash = "sha256-wxXnvi58mBfAQiMSxhXWK7sYLvr8nfQ+u6kMYnRWI3s=";
   };
 
   configurePhase = ''
@@ -75,7 +75,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "The fastest wiki and knowledge base for growing teams. Beautiful, feature rich, and markdown compatible";
+    description = "Fastest wiki and knowledge base for growing teams. Beautiful, feature rich, and markdown compatible";
     homepage = "https://www.getoutline.com/";
     changelog = "https://github.com/outline/outline/releases";
     license = licenses.bsl11;
diff --git a/pkgs/servers/web-apps/peering-manager/default.nix b/pkgs/servers/web-apps/peering-manager/default.nix
index aec18b2904c60..a5dfa68846947 100644
--- a/pkgs/servers/web-apps/peering-manager/default.nix
+++ b/pkgs/servers/web-apps/peering-manager/default.nix
@@ -1,6 +1,5 @@
 { python3
 , fetchFromGitHub
-, fetchpatch
 , nixosTests
 , lib
 
diff --git a/pkgs/servers/web-apps/pgpkeyserver-lite/default.nix b/pkgs/servers/web-apps/pgpkeyserver-lite/default.nix
index 4318f2d29a14a..6568409b11aa3 100644
--- a/pkgs/servers/web-apps/pgpkeyserver-lite/default.nix
+++ b/pkgs/servers/web-apps/pgpkeyserver-lite/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/mattrude/pgpkeyserver-lite";
-    description = "A lightweight static front-end for a sks keyserver";
+    description = "Lightweight static front-end for a sks keyserver";
     license = licenses.gpl3;
     maintainers = with maintainers; [ calbrecht ];
   };
diff --git a/pkgs/servers/web-apps/pict-rs/0.3.nix b/pkgs/servers/web-apps/pict-rs/0.3.nix
index 875aecd556104..11f2479efdbe4 100644
--- a/pkgs/servers/web-apps/pict-rs/0.3.nix
+++ b/pkgs/servers/web-apps/pict-rs/0.3.nix
@@ -45,7 +45,7 @@ rustPlatform.buildRustPackage rec {
   passthru.tests = { inherit (nixosTests) pict-rs; };
 
   meta = with lib; {
-    description = "A simple image hosting service";
+    description = "Simple image hosting service";
     mainProgram = "pict-rs";
     homepage = "https://git.asonix.dog/asonix/pict-rs";
     license = with licenses; [ agpl3Plus ];
diff --git a/pkgs/servers/web-apps/pict-rs/default.nix b/pkgs/servers/web-apps/pict-rs/default.nix
index 16c685351ea34..95e11dbdb5272 100644
--- a/pkgs/servers/web-apps/pict-rs/default.nix
+++ b/pkgs/servers/web-apps/pict-rs/default.nix
@@ -41,7 +41,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A simple image hosting service";
+    description = "Simple image hosting service";
     mainProgram = "pict-rs";
     homepage = "https://git.asonix.dog/asonix/pict-rs";
     license = with licenses; [ agpl3Plus ];
diff --git a/pkgs/servers/web-apps/pixelfed/default.nix b/pkgs/servers/web-apps/pixelfed/default.nix
index 2b1f2e7302066..d69ee6a154b04 100644
--- a/pkgs/servers/web-apps/pixelfed/default.nix
+++ b/pkgs/servers/web-apps/pixelfed/default.nix
@@ -40,7 +40,7 @@ php.buildComposerProject (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A federated image sharing platform";
+    description = "Federated image sharing platform";
     license = licenses.agpl3Only;
     homepage = "https://pixelfed.org/";
     maintainers = with maintainers; [ raitobezarius ];
diff --git a/pkgs/servers/web-apps/rss-bridge/default.nix b/pkgs/servers/web-apps/rss-bridge/default.nix
index e3936244e08be..9f64313c4de08 100644
--- a/pkgs/servers/web-apps/rss-bridge/default.nix
+++ b/pkgs/servers/web-apps/rss-bridge/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The RSS feed for websites missing it";
+    description = "RSS feed for websites missing it";
     homepage = "https://github.com/RSS-Bridge/rss-bridge";
     license = licenses.unlicense;
     maintainers = with maintainers; [ dawidsowa mynacol ];
diff --git a/pkgs/servers/web-apps/shaarli/default.nix b/pkgs/servers/web-apps/shaarli/default.nix
index 919daa61e198b..ac8670ce740fc 100644
--- a/pkgs/servers/web-apps/shaarli/default.nix
+++ b/pkgs/servers/web-apps/shaarli/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The personal, minimalist, super-fast, database free, bookmarking service";
+    description = "Personal, minimalist, super-fast, database free, bookmarking service";
     license = licenses.gpl3Plus;
     homepage = "https://github.com/shaarli/Shaarli";
     maintainers = with maintainers; [ schneefux ];
diff --git a/pkgs/servers/web-apps/slskd/default.nix b/pkgs/servers/web-apps/slskd/default.nix
index 0a69acb5e08c9..75dd597001b30 100644
--- a/pkgs/servers/web-apps/slskd/default.nix
+++ b/pkgs/servers/web-apps/slskd/default.nix
@@ -18,7 +18,7 @@ let
   };
 
   meta = with lib; {
-    description = "A modern client-server application for the Soulseek file sharing network";
+    description = "Modern client-server application for the Soulseek file sharing network";
     homepage = "https://github.com/slskd/slskd";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ ppom melvyn2 ];
diff --git a/pkgs/servers/web-apps/sogo/default.nix b/pkgs/servers/web-apps/sogo/default.nix
index ab617dc291b24..35cd19636269f 100644
--- a/pkgs/servers/web-apps/sogo/default.nix
+++ b/pkgs/servers/web-apps/sogo/default.nix
@@ -1,4 +1,4 @@
-{ gnustep, lib, fetchFromGitHub, fetchpatch, makeWrapper, python3, lndir, libxcrypt
+{ gnustep, lib, fetchFromGitHub, makeWrapper, python3, lndir, libxcrypt
 , openssl, openldap, sope, libmemcached, curl, libsodium, libytnef, libzip, pkg-config, nixosTests
 , oath-toolkit
 , enableActiveSync ? false
@@ -73,7 +73,7 @@ gnustep.stdenv.mkDerivation rec {
   passthru.tests.sogo = nixosTests.sogo;
 
   meta = with lib; {
-    description = "A very fast and scalable modern collaboration suite (groupware)";
+    description = "Very fast and scalable modern collaboration suite (groupware)";
     license = with licenses; [ gpl2Only lgpl21Only ];
     homepage = "https://sogo.nu/";
     platforms = platforms.linux;
diff --git a/pkgs/servers/web-apps/wiki-js/default.nix b/pkgs/servers/web-apps/wiki-js/default.nix
index e01bb723d2041..796e61848efb0 100644
--- a/pkgs/servers/web-apps/wiki-js/default.nix
+++ b/pkgs/servers/web-apps/wiki-js/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://js.wiki/";
-    description = "A modern and powerful wiki app built on Node.js";
+    description = "Modern and powerful wiki app built on Node.js";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ ma27 ];
   };
diff --git a/pkgs/servers/web-apps/wordpress/default.nix b/pkgs/servers/web-apps/wordpress/default.nix
index e9680f8484033..717619ffba13b 100644
--- a/pkgs/servers/web-apps/wordpress/default.nix
+++ b/pkgs/servers/web-apps/wordpress/default.nix
@@ -9,7 +9,7 @@
     hash = "sha256-aLOO/XgjI3d/+1BpHDT2pGR697oceghjzOId1MjC+wQ=";
   };
   wordpress6_5 = {
-    version = "6.5.2";
-    hash = "sha256-APBO7hO9iuDGOP/IvB0dLAwby0PU7LPFth4IUXNQe9I=";
+    version = "6.5.4";
+    hash = "sha256-HsgnmdN8MxN0F5v3BDFQzxvX2AgC/Ke0+Nz01Fkty7Q=";
   };
 }
diff --git a/pkgs/servers/web-apps/wordpress/generic.nix b/pkgs/servers/web-apps/wordpress/generic.nix
index d2d97dab35d9f..cfe0975abb2f2 100644
--- a/pkgs/servers/web-apps/wordpress/generic.nix
+++ b/pkgs/servers/web-apps/wordpress/generic.nix
@@ -36,13 +36,13 @@ stdenv.mkDerivation rec {
     #!nix-shell -i bash -p common-updater-scripts jq
     set -eu -o pipefail
     version=$(curl --globoff "https://api.wordpress.org/core/version-check/1.7/" | jq -r '.offers[0].version')
-    update-source-version wordpress $version
+    update-source-version wordpress $version --file=./pkgs/servers/web-apps/wordpress/default.nix
   '';
 
   meta = with lib; {
     homepage = "https://wordpress.org";
     description = "WordPress is open source software you can use to create a beautiful website, blog, or app";
-    license = [ licenses.gpl2 ];
+    license = [ licenses.gpl2Plus ];
     maintainers = [ maintainers.basvandijk ];
     platforms = platforms.all;
   };
diff --git a/pkgs/servers/web-apps/wordpress/packages/plugins.json b/pkgs/servers/web-apps/wordpress/packages/plugins.json
index e3702cb34d23e..fb72b53043098 100644
--- a/pkgs/servers/web-apps/wordpress/packages/plugins.json
+++ b/pkgs/servers/web-apps/wordpress/packages/plugins.json
@@ -7,8 +7,8 @@
   },
   "akismet": {
     "path": "akismet/tags/5.3.2",
-    "rev": "3055719",
-    "sha256": "1298r4mqv4ndyizgmsln06d4cgr04kw3wpdsl6y7ym7lriy207qw",
+    "rev": "3095776",
+    "sha256": "0qjn2v4hq9259pbncambxzlqywvwgcc9nbz8nqi6rj1m3za4vpyv",
     "version": "5.3.2"
   },
   "antispam-bee": {
@@ -24,10 +24,10 @@
     "version": "2.21.08.31"
   },
   "breeze": {
-    "path": "breeze/tags/2.1.7",
-    "rev": "3074984",
-    "sha256": "13alrv92p70ccg8xjybfzzikv35ff24zkc3dxlbrlr62ikczyyy0",
-    "version": "2.1.7"
+    "path": "breeze/tags/2.1.9",
+    "rev": "3097827",
+    "sha256": "1az7p8zbcxl50swir8jqbcfp07ibkn225x0rc69sc38shsl7aaqv",
+    "version": "2.1.9"
   },
   "co-authors-plus": {
     "path": "co-authors-plus/tags/3.6.1",
@@ -60,16 +60,16 @@
     "version": "1.4.0"
   },
   "gutenberg": {
-    "path": "gutenberg/tags/18.3.0",
-    "rev": "3083588",
-    "sha256": "0dl6hdi38988zpcl69avy1p8s93djlzk6f56ra490lvzlmf4g73z",
-    "version": "18.3.0"
+    "path": "gutenberg/tags/18.5.0",
+    "rev": "3098391",
+    "sha256": "16hxrm1pp44jnbnzg6rsx2wm6rbfcfyrxvaam41qvf5s9kdnds0j",
+    "version": "18.5.0"
   },
   "hcaptcha-for-forms-and-more": {
-    "path": "hcaptcha-for-forms-and-more/tags/4.1.1",
-    "rev": "3081325",
-    "sha256": "1sw42qpy3qqz48a86fd5dc71iq6s1q44v5mgq7fa49makkn5fd4r",
-    "version": "4.1.1"
+    "path": "hcaptcha-for-forms-and-more/tags/4.2.1",
+    "rev": "3098902",
+    "sha256": "0asfkd63zy6cpg3f8lg3l3cdfnlxsg6lnw2sqbcn267jdijqal51",
+    "version": "4.2.1"
   },
   "hello-dolly": {
     "path": "hello-dolly/tags/1.7.2",
@@ -79,15 +79,15 @@
   },
   "hkdev-maintenance-mode": {
     "path": "hkdev-maintenance-mode/trunk",
-    "rev": "3054874",
-    "sha256": "0p2qj6w0gy0pl0mq4x9f53r3y0rkr47039mb7l9rg6rgs41baa9m",
+    "rev": "3098579",
+    "sha256": "1l8h3f4fmgjjnvk81vf35jmhdsnfc8j2gi3gqrb8mr2q3dbf9fkn",
     "version": "3.0.2"
   },
   "jetpack": {
-    "path": "jetpack/tags/13.4.1",
-    "rev": "3084434",
-    "sha256": "17fg162f5nqf87xi0bii9xsgc19vfd9hrf86b82c4m6sgb80rf2p",
-    "version": "13.4.1"
+    "path": "jetpack/tags/13.5",
+    "rev": "3098116",
+    "sha256": "12m9jyrxfpq7v7ydgp2kvn7s28s6gx0mzc9fihd1fddinvyjihqs",
+    "version": "13.5"
   },
   "jetpack-lite": {
     "path": "jetpack-lite/tags/3.0.3",
@@ -102,28 +102,28 @@
     "version": "5.2.6"
   },
   "login-lockdown": {
-    "path": "login-lockdown/tags/2.09",
-    "rev": "3059559",
-    "sha256": "0rvxzb1bfssfsngkf3mkqb0h3vivyjnsw822s7fwkavhklm6cfjx",
-    "version": "2.09"
+    "path": "login-lockdown/tags/2.10",
+    "rev": "3088782",
+    "sha256": "1zm6xfq2xmb4bqb3j272j4majywfa5zqs4ms7lwygmb3s74980bm",
+    "version": "2.10"
   },
   "mailpoet": {
-    "path": "mailpoet/tags/4.50.0",
-    "rev": "3083197",
-    "sha256": "01z2r87jw94ap9ha8kz1l999pczpa6985j4z0nq44b20672p62gv",
-    "version": "4.50.0"
+    "path": "mailpoet/tags/4.51.1",
+    "rev": "3097471",
+    "sha256": "0107v98nkaqlar5igxcllrvm10ac2zrn0j5j03xwk48b933y9d7h",
+    "version": "4.51.1"
   },
   "merge-minify-refresh": {
     "path": "merge-minify-refresh/trunk",
-    "rev": "3007859",
-    "sha256": "1f9ppjkpza5h6z23ma7x9lrpqsq5qxc0n8zfffs44njf086n7k4f",
-    "version": "2.7"
+    "rev": "3089082",
+    "sha256": "04li9jl0b6mf16n7619jnls20wd9ix0ggpsqkpm5s11jpwbnc9n6",
+    "version": "2.8"
   },
   "opengraph": {
-    "path": "opengraph/tags/1.11.2",
-    "rev": "3065435",
-    "sha256": "1s78pf57s37rljd5qjddjyhbff2kw7h9y11k0nk9a6rj3l1zx9hl",
-    "version": "1.11.2"
+    "path": "opengraph/tags/1.11.3",
+    "rev": "3097574",
+    "sha256": "1g9lv3ffbcf2bcbwjfczry4wjzrmvpbilymhs15vx2ysjhh7jqgv",
+    "version": "1.11.3"
   },
   "simple-login-captcha": {
     "path": "simple-login-captcha/tags/1.3.6",
@@ -157,8 +157,8 @@
   },
   "webp-converter-for-media": {
     "path": "webp-converter-for-media/tags/5.12.5",
-    "rev": "3071153",
-    "sha256": "03a53ssvbxhdi3j14vpzf3w4fzljk5hzy29d3g2mxrgbcbjcjrs1",
+    "rev": "3096305",
+    "sha256": "0v8a06na42la16gq6m1mfjglnggdxpy9qnfc20xr0wi2qv5xnwf8",
     "version": "5.12.5"
   },
   "webp-express": {
@@ -168,16 +168,16 @@
     "version": "0.25.9"
   },
   "wordpress-seo": {
-    "path": "wordpress-seo/tags/22.6",
-    "rev": "3079171",
-    "sha256": "105646vkdvnrwa6kbk8vhvp40l5rg5dnd0rs21qg7byw7xv61nzs",
-    "version": "22.6"
+    "path": "wordpress-seo/tags/22.8",
+    "rev": "3093688",
+    "sha256": "14by3h0wk4xjh78pgsvwb9j791viky5w8h78frw905d3azhv8jnj",
+    "version": "22.8"
   },
   "worker": {
-    "path": "worker/tags/4.9.19",
-    "rev": "3019262",
-    "sha256": "1pfn7bvdqv0cy10nbkdqw9m0b0nys6grw3jry41nr9ffbajbx4kx",
-    "version": "4.9.19"
+    "path": "worker/tags/4.9.20",
+    "rev": "3087053",
+    "sha256": "0krm85iyk25s2fy7z16z0k9cjvhw31y5w6wfjbsl7cfz0q3ld6j5",
+    "version": "4.9.20"
   },
   "wp-change-email-sender": {
     "path": "wp-change-email-sender/tags/2.0",
@@ -186,10 +186,10 @@
     "version": "2.0"
   },
   "wp-fastest-cache": {
-    "path": "wp-fastest-cache/tags/1.2.6",
-    "rev": "3081800",
-    "sha256": "0pp8di9jaj13k0qdpcnwx825nzx8cd9h336li8swg3jbr3sppvl7",
-    "version": "1.2.6"
+    "path": "wp-fastest-cache/tags/1.2.7",
+    "rev": "3091143",
+    "sha256": "1drmm1badk8wgqs0r3pl47fl5hsc883llcaxgsppyv4x1mzvnwi2",
+    "version": "1.2.7"
   },
   "wp-gdpr-compliance": {
     "path": "wp-gdpr-compliance/tags/2.0.22",
@@ -204,16 +204,16 @@
     "version": "4.0.1"
   },
   "wp-statistics": {
-    "path": "wp-statistics/tags/14.6.4",
-    "rev": "3081064",
-    "sha256": "03834h6vcczcbmw7h3db6bk39qr9yipgsn8q9mwa43rq7h7b7pvh",
-    "version": "14.6.4"
+    "path": "wp-statistics/tags/14.7.2",
+    "rev": "3096387",
+    "sha256": "15gccsdw8g1d3np6xl7bzq89ydx0qkv1qxzj62r0cglzlnphli8b",
+    "version": "14.7.2"
   },
   "wp-swiper": {
     "path": "wp-swiper/trunk",
-    "rev": "3045384",
-    "sha256": "1m8gmab211pnhibpwviqsxm9pgzb2si2y41myksmxnbsvnnfmj7j",
-    "version": "1.1.6"
+    "rev": "3093150",
+    "sha256": "1apbl3vgb996n2la15iyv0z9xfn0axcjkn721fxvi2l0bar9kmcy",
+    "version": "1.1.10"
   },
   "wp-user-avatars": {
     "path": "wp-user-avatars/trunk",
diff --git a/pkgs/servers/web-apps/wordpress/packages/thirdparty.nix b/pkgs/servers/web-apps/wordpress/packages/thirdparty.nix
index 24836f3ac42c1..764408470064e 100644
--- a/pkgs/servers/web-apps/wordpress/packages/thirdparty.nix
+++ b/pkgs/servers/web-apps/wordpress/packages/thirdparty.nix
@@ -10,16 +10,35 @@
     };
     meta.license = lib.licenses.agpl3Only;
   };
-  themes.geist = stdenv.mkDerivation rec {
-    pname = "geist";
-    version = "2.0.3";
-    src = fetchzip {
-      inherit version;
-      name = pname;
-      url = "https://github.com/christophery/geist/archive/refs/tags/${version}.zip";
-      hash = "sha256-c85oRhqu5E5IJlpgqKJRQITur1W7x40obOvHZbPevzU=";
+  themes = {
+    geist = stdenv.mkDerivation rec {
+      pname = "geist";
+      version = "2.0.3";
+      src = fetchzip {
+        inherit version;
+        name = pname;
+        url = "https://github.com/christophery/geist/archive/refs/tags/${version}.zip";
+        hash = "sha256-c85oRhqu5E5IJlpgqKJRQITur1W7x40obOvHZbPevzU=";
+      };
+      meta.license = lib.licenses.gpl2Only;
+    };
+    proton = stdenv.mkDerivation rec {
+      pname = "proton";
+      version = "1.0.1";
+      src = fetchzip {
+        inherit version;
+        name = pname;
+        url = "https://github.com/christophery/proton/archive/refs/tags/${version}.zip";
+        hash = "sha256-JgKyLJ3dRqh1uwlsNuffCOM7LPBigGkLVFqftjFAiP4=";
+      };
+      installPhase = ''
+        runHook preInstall
+        mkdir -p $out
+        cp -r ./* $out/
+        runHook postInstall
+      '';
+      meta.license = lib.licenses.mit;
     };
-    meta.license = lib.licenses.gpl2Only;
   };
 }
 
diff --git a/pkgs/servers/webdav-server-rs/default.nix b/pkgs/servers/webdav-server-rs/default.nix
index 695ab41dea62d..ad10845976042 100644
--- a/pkgs/servers/webdav-server-rs/default.nix
+++ b/pkgs/servers/webdav-server-rs/default.nix
@@ -34,7 +34,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "An implementation of WebDAV server in Rust";
+    description = "Implementation of WebDAV server in Rust";
     longDescription = ''
       webdav-server-rs is an implementation of WebDAV with full support for
       RFC4918.  It also supports local unix accounts, PAM authentication, and
diff --git a/pkgs/servers/webmesh/default.nix b/pkgs/servers/webmesh/default.nix
index 9b4930eb68884..2d1ed1037a9de 100644
--- a/pkgs/servers/webmesh/default.nix
+++ b/pkgs/servers/webmesh/default.nix
@@ -32,7 +32,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A simple, distributed, zero-configuration WireGuard mesh provider";
+    description = "Simple, distributed, zero-configuration WireGuard mesh provider";
     homepage = "https://webmeshproj.github.io";
     license = licenses.asl20;
     maintainers = with maintainers; [ bbigras ];
diff --git a/pkgs/servers/wishlist/default.nix b/pkgs/servers/wishlist/default.nix
index 19ce2c32e220f..4471e10ad9edc 100644
--- a/pkgs/servers/wishlist/default.nix
+++ b/pkgs/servers/wishlist/default.nix
@@ -18,7 +18,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" "-X=main.Version=${version}" ];
 
   meta = with lib; {
-    description = "A single entrypoint for multiple SSH endpoints";
+    description = "Single entrypoint for multiple SSH endpoints";
     homepage = "https://github.com/charmbracelet/wishlist";
     changelog = "https://github.com/charmbracelet/wishlist/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/servers/wsdd/default.nix b/pkgs/servers/wsdd/default.nix
index 65aae2be2ce5f..d408706f4ee3f 100644
--- a/pkgs/servers/wsdd/default.nix
+++ b/pkgs/servers/wsdd/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/christgau/wsdd";
-    description = "A Web Service Discovery (WSD) host daemon for SMB/Samba";
+    description = "Web Service Discovery (WSD) host daemon for SMB/Samba";
     maintainers = with maintainers; [ izorkin ];
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix
index a6d7d7e6a7f0c..cd7e116c17d59 100644
--- a/pkgs/servers/x11/xorg/overrides.nix
+++ b/pkgs/servers/x11/xorg/overrides.nix
@@ -3,7 +3,7 @@
   automake, autoconf, libiconv, libtool, intltool, gettext, python3, perl,
   freetype, tradcpp, fontconfig, meson, ninja, ed, fontforge,
   libGL, spice-protocol, zlib, libGLU, dbus, libunwind, libdrm, netbsd,
-  ncompress,
+  ncompress, updateAutotoolsGnuConfigScriptsHook,
   mesa, udev, bootstrap_cmds, bison, flex, clangStdenv, autoreconfHook,
   mcpp, libepoxy, openssl, pkg-config, llvm, libxslt, libxcrypt, hwdata,
   ApplicationServices, Carbon, Cocoa, Xplugin,
@@ -906,6 +906,7 @@ self: super:
 
   lndir = super.lndir.overrideAttrs (attrs: {
     buildInputs = [];
+    nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
     preConfigure = ''
       export XPROTO_CFLAGS=" "
       export XPROTO_LIBS=" "
diff --git a/pkgs/servers/x11/xorg/xwayland.nix b/pkgs/servers/x11/xorg/xwayland.nix
index edf53c8e4579f..11913a39e017b 100644
--- a/pkgs/servers/x11/xorg/xwayland.nix
+++ b/pkgs/servers/x11/xorg/xwayland.nix
@@ -64,6 +64,13 @@ stdenv.mkDerivation rec {
       url = "https://gitlab.freedesktop.org/xorg/xserver/-/commit/8cb1c21a4240a5b6bf4aeeef51819639b4e0ad24.patch";
       hash = "sha256-MZPP9QgYO4RFJ/vcjkpu7SVSo5Dh09ZdZjOwTopjdYQ=";
     })
+    # Backport fix for segfault when linux-dmabuf device is not accessible
+    # FIXME: remove when merged
+    # Upstream PR: https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1565
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/xorg/xserver/-/commit/7605833315c05488eca30ed0a70a2a1430e89bbc.patch";
+      hash = "sha256-4/A6aOiOGouPe2v4wIYDQY9rWkuNZJwk0h4gpfrl6hI=";
+    })
   ];
 
   depsBuildBuild = [
@@ -130,7 +137,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "An X server for interfacing X11 apps with the Wayland protocol";
+    description = "X server for interfacing X11 apps with the Wayland protocol";
     homepage = "https://wayland.freedesktop.org/xserver.html";
     license = licenses.mit;
     mainProgram = "Xwayland";
diff --git a/pkgs/servers/xmpp/ejabberd/default.nix b/pkgs/servers/xmpp/ejabberd/default.nix
index 821465ec3a521..37830973fbe9b 100644
--- a/pkgs/servers/xmpp/ejabberd/default.nix
+++ b/pkgs/servers/xmpp/ejabberd/default.nix
@@ -119,7 +119,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Open-source XMPP application server written in Erlang";
     mainProgram = "ejabberdctl";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     homepage = "https://www.ejabberd.im";
     platforms = platforms.linux;
     maintainers = with maintainers; [ sander abbradar ];
diff --git a/pkgs/servers/xmpp/prosody-filer/default.nix b/pkgs/servers/xmpp/prosody-filer/default.nix
index 11ba842e5cb8f..0f8530215dbfd 100644
--- a/pkgs/servers/xmpp/prosody-filer/default.nix
+++ b/pkgs/servers/xmpp/prosody-filer/default.nix
@@ -20,7 +20,7 @@ buildGoModule rec {
     maintainers = with maintainers; [ abbradar ];
     license = licenses.mit;
     platforms = platforms.linux;
-    description = "A simple file server for handling XMPP http_upload requests";
+    description = "Simple file server for handling XMPP http_upload requests";
     mainProgram = "prosody-filer";
   };
 }
diff --git a/pkgs/servers/xmpp/prosody/default.nix b/pkgs/servers/xmpp/prosody/default.nix
index 513cd5f1574b7..c9e606c5128bd 100644
--- a/pkgs/servers/xmpp/prosody/default.nix
+++ b/pkgs/servers/xmpp/prosody/default.nix
@@ -64,13 +64,17 @@ stdenv.mkDerivation rec {
     make -C tools/migration
   '';
 
+  buildFlags = [
+    # don't search for configs in the nix store when running prosodyctl
+    "INSTALLEDCONFIG=/etc/prosody"
+    "INSTALLEDDATA=/var/lib/prosody"
+  ];
+
   # the wrapping should go away once lua hook is fixed
   postInstall = ''
       ${concatMapStringsSep "\n" (module: ''
         cp -r $communityModules/mod_${module} $out/lib/prosody/modules/
       '') (lib.lists.unique(nixosModuleDeps ++ withCommunityModules ++ withOnlyInstalledCommunityModules))}
-      wrapProgram $out/bin/prosodyctl \
-        --add-flags '--config "/etc/prosody/prosody.cfg.lua"'
       make -C tools/migration install
     '';
 
diff --git a/pkgs/servers/zigbee2mqtt/default.nix b/pkgs/servers/zigbee2mqtt/default.nix
index ac71a3e4881f7..b77dbed3b55ac 100644
--- a/pkgs/servers/zigbee2mqtt/default.nix
+++ b/pkgs/servers/zigbee2mqtt/default.nix
@@ -10,16 +10,16 @@
 
 buildNpmPackage rec {
   pname = "zigbee2mqtt";
-  version = "1.37.1";
+  version = "1.38.0";
 
   src = fetchFromGitHub {
     owner = "Koenkk";
     repo = "zigbee2mqtt";
     rev = version;
-    hash = "sha256-rpFx3OveHhurwb08jl0WHf121v0L/r0FQCIpHRJ1V24=";
+    hash = "sha256-h++IXL1y6f52mSBRP3TiqLMKkFXP/QKaNlpM2PCgT5k=";
   };
 
-  npmDepsHash = "sha256-AjCeRU/Ew9UquqGPuJeGRC48kCi9uRZaI5Bam365Wwk=";
+  npmDepsHash = "sha256-OsG9FCdlSQYWrne/jaklNIsCT0M4+vt8DxZ9CGPfbzM=";
 
   buildInputs = lib.optionals withSystemd [
     systemdMinimal
diff --git a/pkgs/servers/zoneminder/default.nix b/pkgs/servers/zoneminder/default.nix
index 503f7b04cd280..d505630983559 100644
--- a/pkgs/servers/zoneminder/default.nix
+++ b/pkgs/servers/zoneminder/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, fetchurl, fetchpatch, substituteAll, cmake, makeWrapper, pkg-config
+{ stdenv, lib, fetchFromGitHub, fetchurl, cmake, makeWrapper, pkg-config
 , curl, ffmpeg, glib, libjpeg, libselinux, libsepol, mp4v2, libmysqlclient, mariadb, pcre, perl, perlPackages
 , polkit, util-linuxMinimal, x264, zlib
 , coreutils, procps, psmisc, nixosTests }:
diff --git a/pkgs/shells/bash/5.nix b/pkgs/shells/bash/5.nix
index de0426fbcdcd3..25798533113c8 100644
--- a/pkgs/shells/bash/5.nix
+++ b/pkgs/shells/bash/5.nix
@@ -2,6 +2,7 @@
 , stdenv
 , buildPackages
 , fetchurl
+, updateAutotoolsGnuConfigScriptsHook
 , bison
 , util-linux
 
@@ -88,12 +89,16 @@ stdenv.mkDerivation rec {
     "bash_cv_termcap_lib=libncurses"
   ] ++ lib.optionals (stdenv.hostPlatform.libc == "musl") [
     "--disable-nls"
+  ] ++ lib.optionals stdenv.hostPlatform.isFreeBSD [
+    # /dev/fd is optional on FreeBSD. we need it to work when built on a system
+    # with it and transferred to a system without it! This includes linux cross.
+    "bash_cv_dev_fd=absent"
   ];
 
   strictDeps = true;
   # Note: Bison is needed because the patches above modify parse.y.
   depsBuildBuild = [ buildPackages.stdenv.cc ];
-  nativeBuildInputs = [ bison ]
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook bison ]
     ++ lib.optional withDocs texinfo
     ++ lib.optional stdenv.hostPlatform.isDarwin stdenv.cc.bintools;
 
diff --git a/pkgs/shells/bash/bash-completion/default.nix b/pkgs/shells/bash/bash-completion/default.nix
index 80f5ffeff9519..3bdef89e722e0 100644
--- a/pkgs/shells/bash/bash-completion/default.nix
+++ b/pkgs/shells/bash/bash-completion/default.nix
@@ -1,5 +1,4 @@
 { lib, stdenv, fetchurl
-, fetchpatch
 , autoreconfHook
 , perl
 , ps
@@ -9,15 +8,15 @@
 
 stdenv.mkDerivation rec {
   pname = "bash-completion";
-  version = "2.13.0";
+  version = "2.14.0";
 
   # Using fetchurl because fetchGithub or fetchzip will have trouble on
   # e.g. APFS filesystems (macOS) because of non UTF-8 characters in some of the
   # test fixtures that are part of the repository.
   # See discussion in https://github.com/NixOS/nixpkgs/issues/107768
   src = fetchurl {
-    url = "https://github.com/scop/${pname}/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-xfmaOeQPDRVMA/8VQ46H7OH1rGZjNqRFmJni/0vt89E=";
+    url = "https://github.com/scop/bash-completion/releases/download/${version}/bash-completion-${version}.tar.xz";
+    sha256 = "sha256-XHSU+WgoCDLWrbWqGfdFpW8aed8xHlkzjF76b3KF4Wg=";
   };
 
   strictDeps = true;
diff --git a/pkgs/shells/carapace/default.nix b/pkgs/shells/carapace/default.nix
index 8a6d72634f954..12c88764e5542 100644
--- a/pkgs/shells/carapace/default.nix
+++ b/pkgs/shells/carapace/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "carapace";
-  version = "1.0.2";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "rsteube";
     repo = "${pname}-bin";
     rev = "v${version}";
-    hash = "sha256-mwn7oJjVlZli4vhTGui6HCxnjL3Qz8ygejaqvdbZ6co=";
+    hash = "sha256-nmih6kyVaYLVOG+EEaCUYkVRAXPXXUdPchv6JFzlU+U=";
   };
 
-  vendorHash = "sha256-HWczvkItE9SVGGQkddnb7/PBkTWrDAdKHjMOztlYV9M=";
+  vendorHash = "sha256-QG+50wqYYpASzFv8Y3rpuyahW/lTV8Kz+v3rDt1kAN4=";
 
   ldflags = [
     "-s"
@@ -31,7 +31,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Multi-shell multi-command argument completer";
-    homepage = "https://rsteube.github.io/carapace-bin/";
+    homepage = "https://carapace.sh/";
     maintainers = with maintainers; [ mimame ];
     license = licenses.mit;
     mainProgram = "carapace";
diff --git a/pkgs/shells/dash/default.nix b/pkgs/shells/dash/default.nix
index 6bdbd1798e3de..17de97660344c 100644
--- a/pkgs/shells/dash/default.nix
+++ b/pkgs/shells/dash/default.nix
@@ -45,9 +45,9 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "http://gondor.apana.org.au/~herbert/dash/";
-    description = "A POSIX-compliant implementation of /bin/sh that aims to be as small as possible";
+    description = "POSIX-compliant implementation of /bin/sh that aims to be as small as possible";
     platforms = platforms.unix;
-    license = with licenses; [ bsd3 gpl2 ];
+    license = with licenses; [ bsd3 gpl2Plus ];
     mainProgram = "dash";
   };
 })
diff --git a/pkgs/shells/dgsh/default.nix b/pkgs/shells/dgsh/default.nix
deleted file mode 100644
index 2c98938b46d75..0000000000000
--- a/pkgs/shells/dgsh/default.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, autoconf, automake, pkg-config,
-  libtool, check, bison, git, gperf,
-  perl, texinfo, help2man, gettext, ncurses
-}:
-
-stdenv.mkDerivation {
-  pname = "dgsh-unstable";
-  version = "2017-02-05";
-
-  src = fetchFromGitHub {
-    owner = "dspinellis";
-    repo = "dgsh";
-    rev = "bc4fc2e8009c069ee4df5140c32a2fc15d0acdec";
-    sha256 = "0k3hmnarz56wphw45mabn5zcc427l5p77jldh1qqy89pxqy1wnql";
-    fetchSubmodules = true;
-  };
-
-  patches = [ ./glibc-2.26.patch ];
-
-  nativeBuildInputs = [ autoconf automake pkg-config libtool check
-    bison git gettext gperf perl texinfo help2man ncurses
-  ];
-
-  configurePhase = ''
-    cp -r ./unix-tools/coreutils/gnulib gnulib
-    perl -pi -e \
-      's#./bootstrap #./bootstrap --no-bootstrap-sync --skip-po --no-git --gnulib-srcdir='$PWD/gnulib' #g' \
-      unix-tools/Makefile
-    find . -name \*.diff | xargs rm -f
-    rm -rf unix-tools/*/gnulib
-    patchShebangs unix-tools/diffutils/man/help2man
-    export RSYNC=true # set to rsync binary, eventhough it is not used.
-    make PREFIX=$out config
-  '';
-
-  enableParallelBuilding = true;
-
-  meta = with lib; {
-    description = "The Directed Graph Shell";
-    homepage = "http://www.dmst.aueb.gr/dds/sw/dgsh";
-    license = with licenses; asl20;
-    maintainers = with maintainers; [ vrthra ];
-    platforms = with platforms; all;
-    # lib/freadseek.c:68:3: error: #error "Please port gnulib freadseek.c to your platform! Look at the definition of getc, getc_unlocked on your >
-    # 68 |  #error "Please port gnulib freadseek.c to your platform! Look at the definition of getc, getc_unlocked on your system, then report >
-    broken = true; # marked 2022-05-06
-  };
-}
diff --git a/pkgs/shells/dgsh/glibc-2.26.patch b/pkgs/shells/dgsh/glibc-2.26.patch
deleted file mode 100644
index c66768151316c..0000000000000
--- a/pkgs/shells/dgsh/glibc-2.26.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/core-tools/src/dgsh-httpval.c b/core-tools/src/dgsh-httpval.c
-index 8b5dce3..7b43c3d 100644
---- a/core-tools/src/dgsh-httpval.c
-+++ b/core-tools/src/dgsh-httpval.c
-@@ -40,6 +40,7 @@
- #include <sys/stat.h>
- #include <unistd.h>
- #include <stdlib.h>
-+#include <stdint.h>
- #include <stdio.h>
- #include <string.h>
- #include <ctype.h>
diff --git a/pkgs/shells/es/default.nix b/pkgs/shells/es/default.nix
index 1a75aca391b15..b1f41c881d13a 100644
--- a/pkgs/shells/es/default.nix
+++ b/pkgs/shells/es/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--with-readline" ];
 
   meta = with lib; {
-    description = "An extensible shell with higher order functions";
+    description = "Extensible shell with higher order functions";
     mainProgram = "es";
     longDescription =
       ''
diff --git a/pkgs/shells/fish/default.nix b/pkgs/shells/fish/default.nix
index 0013c205f31f2..921e0fc6d7fe6 100644
--- a/pkgs/shells/fish/default.nix
+++ b/pkgs/shells/fish/default.nix
@@ -299,7 +299,7 @@ let
       description = "Smart and user-friendly command line shell";
       homepage = "https://fishshell.com/";
       changelog = "https://github.com/fish-shell/fish-shell/releases/tag/${version}";
-      license = licenses.gpl2;
+      license = licenses.gpl2Only;
       platforms = platforms.unix;
       maintainers = with maintainers; [ adamcstephens cole-h winter ];
       mainProgram = "fish";
diff --git a/pkgs/shells/fish/plugins/bobthefish.nix b/pkgs/shells/fish/plugins/bobthefish.nix
index 417ac87257a74..ea57eb546655d 100644
--- a/pkgs/shells/fish/plugins/bobthefish.nix
+++ b/pkgs/shells/fish/plugins/bobthefish.nix
@@ -15,7 +15,7 @@ buildFishPlugin {
   };
 
   meta = with lib; {
-    description = "A Powerline-style, Git-aware fish theme optimized for awesome";
+    description = "Powerline-style, Git-aware fish theme optimized for awesome";
     homepage = "https://github.com/oh-my-fish/theme-bobthefish";
     license = licenses.mit;
     maintainers = with maintainers; [ Scrumplex ];
diff --git a/pkgs/shells/fish/plugins/bobthefisher.nix b/pkgs/shells/fish/plugins/bobthefisher.nix
index 56d179cd24b53..20c79ffcdd5a4 100644
--- a/pkgs/shells/fish/plugins/bobthefisher.nix
+++ b/pkgs/shells/fish/plugins/bobthefisher.nix
@@ -15,7 +15,7 @@ buildFishPlugin {
   };
 
   meta = with lib; {
-    description = "A Powerline-style, Git-aware fish theme optimized for awesome (fork of bobthefish)";
+    description = "Powerline-style, Git-aware fish theme optimized for awesome (fork of bobthefish)";
     homepage = "https://github.com/Scrumplex/bobthefisher";
     license = licenses.mit;
     maintainers = with maintainers; [ Scrumplex ];
diff --git a/pkgs/shells/fish/plugins/foreign-env/default.nix b/pkgs/shells/fish/plugins/foreign-env/default.nix
index d0b5b77a03b1c..fd5c38682995b 100644
--- a/pkgs/shells/fish/plugins/foreign-env/default.nix
+++ b/pkgs/shells/fish/plugins/foreign-env/default.nix
@@ -21,7 +21,7 @@ buildFishPlugin {
   '';
 
   meta = with lib; {
-    description = "A foreign environment interface for Fish shell";
+    description = "Foreign environment interface for Fish shell";
     license = licenses.mit;
     maintainers = with maintainers; [ jgillich ];
     platforms = with platforms; unix;
diff --git a/pkgs/shells/fish/plugins/forgit.nix b/pkgs/shells/fish/plugins/forgit.nix
index 01e297b4225a1..463e45f68bec4 100644
--- a/pkgs/shells/fish/plugins/forgit.nix
+++ b/pkgs/shells/fish/plugins/forgit.nix
@@ -2,13 +2,13 @@
 
 buildFishPlugin rec {
   pname = "forgit";
-  version = "24.05.0";
+  version = "24.06.0";
 
   src = fetchFromGitHub {
     owner = "wfxr";
     repo = "forgit";
     rev = version;
-    hash = "sha256-XZeLF0YwUl8N8j8tRRU1QVd8tenTDorZyAHItCE4Jlw=";
+    hash = "sha256-odxdySx3Bzxs5RMXJ4nivwltQYIaM/UrPb+A0/pnDSk=";
   };
 
   postInstall = ''
@@ -16,7 +16,7 @@ buildFishPlugin rec {
   '';
 
   meta = with lib; {
-    description = "A utility tool powered by fzf for using git interactively.";
+    description = "Utility tool powered by fzf for using git interactively";
     homepage = "https://github.com/wfxr/forgit";
     license = licenses.mit;
     maintainers = with maintainers; [ happysalada ];
diff --git a/pkgs/shells/fish/plugins/gruvbox.nix b/pkgs/shells/fish/plugins/gruvbox.nix
index b4b85ae597b8b..50110116c89d0 100644
--- a/pkgs/shells/fish/plugins/gruvbox.nix
+++ b/pkgs/shells/fish/plugins/gruvbox.nix
@@ -9,7 +9,7 @@ buildFishPlugin {
     hash = "sha256-vL2/Nm9Z9cdaptx8sJqbX5AnRtfd68x4ZKWdQk5Cngo=";
   };
   meta = {
-    description = "Gruvbox theme for fish shell.";
+    description = "Gruvbox theme for fish shell";
     homepage = "https://github.com/Jomik/fish-gruvbox";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ msladecek ];
diff --git a/pkgs/shells/fish/plugins/tide.nix b/pkgs/shells/fish/plugins/tide.nix
index 95a3e150a5a32..74ab2e8a27a8d 100644
--- a/pkgs/shells/fish/plugins/tide.nix
+++ b/pkgs/shells/fish/plugins/tide.nix
@@ -19,7 +19,7 @@ buildFishPlugin rec {
   '';
 
   meta = with lib; {
-    description = "The ultimate Fish prompt";
+    description = "Ultimate Fish prompt";
     homepage = "https://github.com/IlanCosman/tide";
     license = licenses.mit;
     maintainers = [ maintainers.jocelynthode ];
diff --git a/pkgs/shells/fish/plugins/wakatime-fish.nix b/pkgs/shells/fish/plugins/wakatime-fish.nix
index c265c8020d061..c434ab7175982 100644
--- a/pkgs/shells/fish/plugins/wakatime-fish.nix
+++ b/pkgs/shells/fish/plugins/wakatime-fish.nix
@@ -1,5 +1,5 @@
 { lib
-, wakatime
+, wakatime-cli
 , buildFishPlugin
 , fetchFromGitHub
 }:
@@ -17,12 +17,12 @@ buildFishPlugin rec {
 
   preFixup = ''
     substituteInPlace $out/share/fish/vendor_conf.d/wakatime.fish \
-      --replace "if type -p wakatime" "if type -p ${lib.getExe wakatime}" \
-      --replace "(type -p wakatime)" "${lib.getExe wakatime}"
+      --replace-fail "if type -p wakatime" "if type -p ${lib.getExe wakatime-cli}" \
+      --replace-fail "(type -p wakatime)" "${lib.getExe wakatime-cli}"
   '';
 
   meta = with lib; {
-    description = "A fish plugin for wakatime";
+    description = "Fish plugin for wakatime";
     homepage = "https://github.com/ik11235/wakatime.fish";
     license = licenses.mit;
     maintainers = with maintainers; [ ocfox ];
diff --git a/pkgs/shells/hilbish/default.nix b/pkgs/shells/hilbish/default.nix
index 17bc851ac771b..0ab72550b3f72 100644
--- a/pkgs/shells/hilbish/default.nix
+++ b/pkgs/shells/hilbish/default.nix
@@ -32,7 +32,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "An interactive Unix-like shell written in Go";
+    description = "Interactive Unix-like shell written in Go";
     mainProgram = "hilbish";
     changelog = "https://github.com/Rosettea/Hilbish/releases/tag/v${version}";
     homepage = "https://github.com/Rosettea/Hilbish";
diff --git a/pkgs/shells/hishtory/default.nix b/pkgs/shells/hishtory/default.nix
index 5bdf3a1b5992d..83b902c2e9262 100644
--- a/pkgs/shells/hishtory/default.nix
+++ b/pkgs/shells/hishtory/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "hishtory";
-  version = "0.294";
+  version = "0.295";
 
   src = fetchFromGitHub {
     owner = "ddworken";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-vwjzJTBgD4XzZekxGk02WW9/A7wLlLBsIUyvt0VCkOg=";
+    hash = "sha256-f9iVKHrgq6whE1s5Q2NXSf1qYsV5WUq4frHUoX94cMs=";
   };
 
   vendorHash = "sha256-zTwZ/sMhQdlf7RYfR2/K/m08U1Il0VQmYFyNNiYsWhc=";
diff --git a/pkgs/shells/jush/default.nix b/pkgs/shells/jush/default.nix
deleted file mode 100644
index 42e8e13cceae6..0000000000000
--- a/pkgs/shells/jush/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, editline }:
-
-stdenv.mkDerivation rec {
-  pname = "jush";
-  version = "0.1";
-
-  src = fetchFromGitHub {
-    owner = "troglobit";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "1azvghrh31gawd798a254ml4id642qvbva64zzg30pjszh1087n8";
-  };
-
-  strictDeps = true;
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
-
-  buildInputs = [ editline ];
-
-  passthru.shellPath = "/bin/jush";
-
-  meta = with lib; {
-    description = "just a useless shell";
-    mainProgram = "jush";
-    homepage = "https://github.com/troglobit/jush";
-    license = licenses.isc;
-    platforms = platforms.all;
-    maintainers = with maintainers; [ dtzWill ];
-  };
-}
diff --git a/pkgs/shells/liquidprompt/default.nix b/pkgs/shells/liquidprompt/default.nix
index acb34377d28de..bdb7bbe6548e6 100644
--- a/pkgs/shells/liquidprompt/default.nix
+++ b/pkgs/shells/liquidprompt/default.nix
@@ -1,31 +1,50 @@
-{ lib, stdenv, fetchFromGitHub }:
+{ lib, stdenv, fetchFromGitHub, gitUpdater }:
 
 stdenv.mkDerivation rec {
   pname = "liquidprompt";
-  version = "2.1.2";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
-    owner = "nojhan";
+    owner = "liquidprompt";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-7mnrXLqnCdOuS2aRs4tVLfO8SRFrqZHNM40gWE/CVFI=";
+    hash = "sha256-ra+uJg9E2Cr1k0Ni1+xG9yKFF9iMInJFB5oAFnc52lc=";
   };
 
   strictDeps = true;
+
+  postPatch = ''
+    patchShebangs tools/*.sh
+  '';
+
   installPhase = ''
+    runHook preInstall
+
     install -D -m 0444 liquidprompt $out/bin/liquidprompt
-    install -D -m 0444 liquidpromptrc-dist $out/share/doc/liquidprompt/liquidpromptrc-dist
-    install -D -m 0444 liquid.theme $out/share/doc/liquidprompt/liquid.theme
 
     install -D -m 0444 liquidprompt.plugin.zsh \
       $out/share/zsh/plugins/liquidprompt/liquidprompt.plugin.zsh
     install -D -m 0444 liquidprompt \
       $out/share/zsh/plugins/liquidprompt/liquidprompt
+
+    # generate default config file
+    mkdir -p $out/share/doc/liquidprompt
+    tools/config-from-doc.sh --verbose > $out/share/doc/liquidprompt/liquidpromptrc-dist
+
+    mkdir -p $out/share/liquidprompt
+    cp -a themes $out/share/liquidprompt/
+
+    mkdir -p $out/share/liquidprompt/contrib
+    cp -a contrib/presets $out/share/liquidprompt/contrib/
+
+    runHook postInstall
   '';
 
+  passthru.updateScript = gitUpdater { };
+
   meta = with lib; {
-    description = "A full-featured & carefully designed adaptive prompt for Bash & Zsh";
-    homepage = "https://github.com/nojhan/liquidprompt";
+    description = "Full-featured & carefully designed adaptive prompt for Bash & Zsh";
+    homepage = "https://github.com/liquidprompt/liquidprompt";
     license = licenses.agpl3Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ gerschtli ];
diff --git a/pkgs/shells/mrsh/default.nix b/pkgs/shells/mrsh/default.nix
index 3bb76cb04df8c..bff6956e97bd1 100644
--- a/pkgs/shells/mrsh/default.nix
+++ b/pkgs/shells/mrsh/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A minimal POSIX shell";
+    description = "Minimal POSIX shell";
     mainProgram = "mrsh";
     homepage = "https://mrsh.sh";
     license = licenses.mit;
diff --git a/pkgs/shells/murex/default.nix b/pkgs/shells/murex/default.nix
index 4e44b6bd7ecf3..b6a802b8c8c5a 100644
--- a/pkgs/shells/murex/default.nix
+++ b/pkgs/shells/murex/default.nix
@@ -22,7 +22,7 @@ buildGoModule rec {
     description = "Bash-like shell and scripting environment with advanced features designed for safety and productivity";
     mainProgram = "murex";
     homepage = "https://murex.rocks";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ dit7ya kashw2 ];
   };
 }
diff --git a/pkgs/shells/nix-your-shell/default.nix b/pkgs/shells/nix-your-shell/default.nix
index f40f7d43cc325..35f63309f20f4 100644
--- a/pkgs/shells/nix-your-shell/default.nix
+++ b/pkgs/shells/nix-your-shell/default.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     mainProgram = "nix-your-shell";
-    description = "A `nix` and `nix-shell` wrapper for shells other than `bash`";
+    description = "`nix` and `nix-shell` wrapper for shells other than `bash`";
     homepage = "https://github.com/MercuryTechnologies/nix-your-shell";
     license = [ licenses.mit ];
     maintainers = [ maintainers._9999years ];
diff --git a/pkgs/shells/nsh/default.nix b/pkgs/shells/nsh/default.nix
index 365c14bc5c6d8..43938e1e90eba 100644
--- a/pkgs/shells/nsh/default.nix
+++ b/pkgs/shells/nsh/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A command-line shell like fish, but POSIX compatible";
+    description = "Command-line shell like fish, but POSIX compatible";
     mainProgram = "nsh";
     homepage = "https://github.com/nuta/nsh";
     changelog = "https://github.com/nuta/nsh/raw/v${version}/docs/changelog.md";
diff --git a/pkgs/shells/nushell/default.nix b/pkgs/shells/nushell/default.nix
index dd64a4775a579..e0a6994381773 100644
--- a/pkgs/shells/nushell/default.nix
+++ b/pkgs/shells/nushell/default.nix
@@ -24,7 +24,7 @@
 }:
 
 let
-  version = "0.93.0";
+  version = "0.94.1";
 in
 
 rustPlatform.buildRustPackage {
@@ -35,10 +35,10 @@ rustPlatform.buildRustPackage {
     owner = "nushell";
     repo = "nushell";
     rev = version;
-    hash = "sha256-s/aJVk+45Ietegb9Cn19/U3NlNMHQh2GezHkoIRxRrk=";
+    hash = "sha256-uwtmSyNJJUtaFrBd9W89ZQpWzBOswOLWTevkPlg6Ano=";
   };
 
-  cargoHash = "sha256-0xwo3M5uog6v0VcT9IhNZ22/xIhUShVNt6Vkp3GpsNI=";
+  cargoHash = "sha256-4caqvbNxXRZksQrySydPlzn9S6gr2xPLFLSEcAEGnI8=";
 
   nativeBuildInputs = [ pkg-config ]
     ++ lib.optionals (withDefaultFeatures && stdenv.isLinux) [ python3 ]
@@ -70,7 +70,7 @@ rustPlatform.buildRustPackage {
   };
 
   meta = with lib; {
-    description = "A modern shell written in Rust";
+    description = "Modern shell written in Rust";
     homepage = "https://www.nushell.sh/";
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne johntitor joaquintrinanes ];
diff --git a/pkgs/shells/nushell/nu_scripts/default.nix b/pkgs/shells/nushell/nu_scripts/default.nix
index 972b3131cdf10..47d29b44ac23d 100644
--- a/pkgs/shells/nushell/nu_scripts/default.nix
+++ b/pkgs/shells/nushell/nu_scripts/default.nix
@@ -6,13 +6,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "nu_scripts";
-  version = "0-unstable-2024-05-19";
+  version = "0-unstable-2024-06-16";
 
   src = fetchFromGitHub {
     owner = "nushell";
     repo = pname;
-    rev = "66c76a9dbd41ea4fb07fde0eb8474a3ae941db12";
-    hash = "sha256-X/epUJkS3qppjjmmMZ+gfK8DNkt6brZQocbFyKXzVTA=";
+    rev = "92f20ff2827b1afb3d06011bc0609a0212c53993";
+    hash = "sha256-ZYrlX8Kg9VD5/eUctesAXQlBcVPiOZ3W9WCpBkByrpA=";
   };
 
   installPhase = ''
@@ -27,7 +27,7 @@ stdenvNoCC.mkDerivation rec {
   passthru.updateScript = unstableGitUpdater { };
 
   meta = {
-    description = "A place to share Nushell scripts with each other";
+    description = "Place to share Nushell scripts with each other";
     homepage = "https://github.com/nushell/nu_scripts";
     license = lib.licenses.free;
 
diff --git a/pkgs/shells/nushell/plugins/default.nix b/pkgs/shells/nushell/plugins/default.nix
index eb8bbe14c2815..cdc35b15773b4 100644
--- a/pkgs/shells/nushell/plugins/default.nix
+++ b/pkgs/shells/nushell/plugins/default.nix
@@ -3,6 +3,7 @@
 lib.makeScope newScope (self: with self; {
   gstat = callPackage ./gstat.nix { inherit Security; };
   formats = callPackage ./formats.nix { inherit IOKit Foundation; };
+  polars = callPackage ./polars.nix { inherit IOKit Foundation; };
   query = callPackage ./query.nix { inherit IOKit CoreFoundation; };
   regex = throw "`nu_plugin_regex` is no longer compatible with the current Nushell release.";
   net = callPackage ./net.nix { inherit IOKit CoreFoundation; };
diff --git a/pkgs/shells/nushell/plugins/formats.nix b/pkgs/shells/nushell/plugins/formats.nix
index 7cca0840f47af..80d29c4dcadcb 100644
--- a/pkgs/shells/nushell/plugins/formats.nix
+++ b/pkgs/shells/nushell/plugins/formats.nix
@@ -11,7 +11,7 @@
 rustPlatform.buildRustPackage rec {
   pname = "nushell_plugin_formats";
   inherit (nushell) version src;
-  cargoHash = "sha256-+DTsBh3+nLjuwuk0rnxZeSQ+lM55PAhj+8e9L2bQdXU=";
+  cargoHash = "sha256-r5r+LdG6isZiKzwaZM/RIzQnZwrVBDCbdM1SMbvVU0E=";
 
   nativeBuildInputs = [ pkg-config ]
     ++ lib.optionals stdenv.cc.isClang [ rustPlatform.bindgenHook ];
@@ -28,10 +28,10 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A formats plugin for Nushell";
+    description = "Formats plugin for Nushell";
     mainProgram = "nu_plugin_formats";
     homepage = "https://github.com/nushell/nushell/tree/${version}/crates/nu_plugin_formats";
-    license = licenses.mpl20;
+    license = licenses.mit;
     maintainers = with maintainers; [ viraptor aidalgol ];
     platforms = with platforms; all;
   };
diff --git a/pkgs/shells/nushell/plugins/gstat.nix b/pkgs/shells/nushell/plugins/gstat.nix
index b05a000d57852..7a937b33aa464 100644
--- a/pkgs/shells/nushell/plugins/gstat.nix
+++ b/pkgs/shells/nushell/plugins/gstat.nix
@@ -11,7 +11,7 @@
 rustPlatform.buildRustPackage rec {
   pname = "nushell_plugin_gstat";
   inherit (nushell) version src;
-  cargoHash = "sha256-0pzQrUKMfYZdUzJgm6WYIrTUkF2arYGDCuASgmDpvmc=";
+  cargoHash = "sha256-ENDDkEpUp+3a0Numb7+McVP04VtSZaU4pbu4uEFT9Jc=";
 
   nativeBuildInputs = [ pkg-config ]
     ++ lib.optionals stdenv.cc.isClang [ rustPlatform.bindgenHook ];
@@ -28,10 +28,10 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A git status plugin for Nushell";
+    description = "Git status plugin for Nushell";
     mainProgram = "nu_plugin_gstat";
     homepage = "https://github.com/nushell/nushell/tree/${version}/crates/nu_plugin_gstat";
-    license = licenses.mpl20;
+    license = licenses.mit;
     maintainers = with maintainers; [ mrkkrp aidalgol ];
     platforms = with platforms; all;
   };
diff --git a/pkgs/shells/nushell/plugins/net.nix b/pkgs/shells/nushell/plugins/net.nix
index 23729360e83a6..2bb2b56168b82 100644
--- a/pkgs/shells/nushell/plugins/net.nix
+++ b/pkgs/shells/nushell/plugins/net.nix
@@ -1,10 +1,11 @@
-{ lib
-, rustPlatform
-, fetchFromGitHub
-, stdenv
-, IOKit
-, CoreFoundation
-, unstableGitUpdater
+{
+  lib,
+  rustPlatform,
+  fetchFromGitHub,
+  stdenv,
+  IOKit,
+  CoreFoundation,
+  unstableGitUpdater,
 }:
 
 rustPlatform.buildRustPackage {
@@ -14,15 +15,13 @@ rustPlatform.buildRustPackage {
   src = fetchFromGitHub {
     owner = "fennewald";
     repo = "nu_plugin_net";
-    rev = "a84d72290f513397a359581b9447a4e638ce60c9";
-    hash = "sha256-uKLYTRR2tThSvwWbvEePOLZ9ehNPfCYruZxTKSIxpEA=";
+    rev = "60d315afb19c3c673409db796a4cc7a240058605";
+    hash = "sha256-izIxV2rFxZ1Om6NNaofNpc5prtN/lsw8dC4DyKEQ+v8=";
   };
 
-  cargoHash = "sha256-BsCOej31vfTf+Wca4+AjxkhXz6wpMRFJmGBsUqOj2U0=";
+  cargoHash = "sha256-nBxcxADyvPgGrfkW8eBq/wmB2Slq+YGJV2IlxuuCgCg=";
 
-  nativeBuildInputs = [
-    rustPlatform.bindgenHook
-  ];
+  nativeBuildInputs = [ rustPlatform.bindgenHook ];
 
   buildInputs = lib.optionals stdenv.isDarwin [
     CoreFoundation
@@ -32,10 +31,10 @@ rustPlatform.buildRustPackage {
   passthru.updateScript = unstableGitUpdater { };
 
   meta = with lib; {
-    description = "A nushell plugin to list system network interfaces";
+    description = "Nushell plugin to list system network interfaces";
     homepage = "https://github.com/fennewald/nu_plugin_net";
     license = licenses.mit;
     maintainers = with maintainers; [ happysalada ];
-    mainProgram = "nu-plugin-net";
+    mainProgram = "nu_plugin_net";
   };
 }
diff --git a/pkgs/shells/nushell/plugins/polars.nix b/pkgs/shells/nushell/plugins/polars.nix
new file mode 100644
index 0000000000000..d1bda99acafb4
--- /dev/null
+++ b/pkgs/shells/nushell/plugins/polars.nix
@@ -0,0 +1,45 @@
+{
+  stdenv,
+  lib,
+  rustPlatform,
+  openssl,
+  nushell,
+  pkg-config,
+  IOKit,
+  Foundation,
+  nix-update-script,
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "nushell_plugin_polars";
+  inherit (nushell) version src;
+
+  cargoHash = "sha256-GkVX12MEHFP4g183zUzOUn4MNeTEBEpB+D5s0OXa4nc=";
+
+  nativeBuildInputs = [ pkg-config ] ++ lib.optionals stdenv.cc.isClang [ rustPlatform.bindgenHook ];
+  buildInputs =
+    [ openssl ]
+    ++ lib.optionals stdenv.isDarwin [
+      IOKit
+      Foundation
+    ];
+  cargoBuildFlags = [ "--package nu_plugin_polars" ];
+
+  checkPhase = ''
+    cargo test --manifest-path crates/nu_plugin_polars/Cargo.toml
+  '';
+
+  passthru.updateScript = nix-update-script {
+    # Skip the version check and only check the hash because we inherit version from nushell.
+    extraArgs = [ "--version=skip" ];
+  };
+
+  meta = with lib; {
+    description = "Nushell dataframe plugin commands based on polars";
+    mainProgram = "nu_plugin_polars";
+    homepage = "https://github.com/nushell/nushell/tree/${version}/crates/nu_plugin_polars";
+    license = licenses.mit;
+    maintainers = with maintainers; [ joaquintrinanes ];
+    platforms = with platforms; all;
+  };
+}
diff --git a/pkgs/shells/nushell/plugins/query.nix b/pkgs/shells/nushell/plugins/query.nix
index b20af7bbd3b8f..0473b291aff31 100644
--- a/pkgs/shells/nushell/plugins/query.nix
+++ b/pkgs/shells/nushell/plugins/query.nix
@@ -10,7 +10,7 @@
 rustPlatform.buildRustPackage {
   pname = "nushell_plugin_query";
   inherit (nushell) version src;
-  cargoHash = "sha256-cu7gSEr5xOpBpkv++YpOMUf/UtvFYuQMDWrGphb6V/0=";
+  cargoHash = "sha256-l4fmO2LQpiSpGQVfuqJLcuYIryIlq/iYlPuI4FS+RlQ=";
 
   nativeBuildInputs = lib.optionals stdenv.cc.isClang [ rustPlatform.bindgenHook ];
   buildInputs = lib.optionals stdenv.isDarwin [ IOKit CoreFoundation ];
@@ -26,10 +26,10 @@ rustPlatform.buildRustPackage {
   };
 
   meta = with lib; {
-    description = "A Nushell plugin to query JSON, XML, and various web data";
+    description = "Nushell plugin to query JSON, XML, and various web data";
     mainProgram = "nu_plugin_query";
     homepage = "https://github.com/nushell/nushell/tree/${version}/crates/nu_plugin_query";
-    license = licenses.mpl20;
+    license = licenses.mit;
     maintainers = with maintainers; [ happysalada aidalgol ];
     platforms = with platforms; all;
   };
diff --git a/pkgs/shells/oh/default.nix b/pkgs/shells/oh/default.nix
index d58de0b3f0d87..9a0308a70e75d 100644
--- a/pkgs/shells/oh/default.nix
+++ b/pkgs/shells/oh/default.nix
@@ -15,7 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/michaelmacinnis/oh";
-    description = "A new Unix shell";
+    description = "New Unix shell";
     mainProgram = "oh";
     license = licenses.mit;
   };
diff --git a/pkgs/shells/powershell/default.nix b/pkgs/shells/powershell/default.nix
index a779534c2d63e..715f33bbbf816 100644
--- a/pkgs/shells/powershell/default.nix
+++ b/pkgs/shells/powershell/default.nix
@@ -29,7 +29,7 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "powershell";
-  version = "7.4.2";
+  version = "7.4.3";
 
   src = passthru.sources.${stdenv.hostPlatform.system}
     or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
@@ -84,19 +84,19 @@ stdenv.mkDerivation rec {
     sources = {
       aarch64-darwin = fetchurl {
         url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-osx-arm64.tar.gz";
-        hash = "sha256-Gg1wXIw/x/s0dgCkycZ4fC4eK+zIoduHr8nHvBOPFm4=";
+        hash = "sha256-n1A17psyDWY/BtwvmQn3SjYqhX/C5xZJnq83aA3mUJk=";
       };
       aarch64-linux = fetchurl {
         url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-linux-arm64.tar.gz";
-        hash = "sha256-AGAhaUqeDOliRX0jGJ48uIrgMIY7IhkH+PuJHflJeus=";
+        hash = "sha256-TuSjvi2aJz2jtwm4CRP99M4dhxzerTCdyOOI6FC8CN0=";
       };
       x86_64-darwin = fetchurl {
         url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-osx-x64.tar.gz";
-        hash = "sha256-jH4XY/XjYljkVV4DlOq+f8lwWDcFGA7yaVFKgGUVz+I=";
+        hash = "sha256-bMOVJ8TT8Rh79rD+vSJP/gxjNHXQE39qASvLAc9P4D8=";
       };
       x86_64-linux = fetchurl {
         url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-linux-x64.tar.gz";
-        hash = "sha256-NmBdw3l53lry4QeDv3DArYFQUh6B5tfJMiA267iX5/4=";
+        hash = "sha256-XPzCKK/T/85TbsRUGrr+l8Ypr81tyFyaIHEolLv2Wts=";
       };
     };
     tests.version = testers.testVersion {
@@ -114,8 +114,7 @@ stdenv.mkDerivation rec {
       fi
 
       for platform in ${lib.escapeShellArgs meta.platforms}; do
-        update-source-version "powershell" "0" "${lib.fakeHash}" --source-key="sources.$platform"
-        update-source-version "powershell" "$NEW_VERSION" --source-key="sources.$platform"
+        update-source-version "powershell" "$NEW_VERSION" --ignore-same-version --source-key="sources.$platform"
       done
     '';
   };
diff --git a/pkgs/shells/rc-9front/default.nix b/pkgs/shells/rc-9front/default.nix
index ff265dbec8716..cd6e18064b365 100644
--- a/pkgs/shells/rc-9front/default.nix
+++ b/pkgs/shells/rc-9front/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation {
   };
 
   meta = with lib; {
-    description = "The 9front shell";
+    description = "9front shell";
     longDescription = "unix port of 9front rc";
     homepage = "http://shithub.us/cinap_lenrek/rc/HEAD/info.html";
     license = licenses.mit;
diff --git a/pkgs/shells/scponly/default.nix b/pkgs/shells/scponly/default.nix
index 41a09adf9e7c6..11cfee7b2d919 100644
--- a/pkgs/shells/scponly/default.nix
+++ b/pkgs/shells/scponly/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation {
   passthru.shellPath = "/bin/scponly";
 
   meta = with lib; {
-    description = "A shell that only permits scp and sftp-server";
+    description = "Shell that only permits scp and sftp-server";
     mainProgram = "scponly";
     homepage = "https://github.com/scponly/scponly";
     license = with licenses; [ bsd2 ];
diff --git a/pkgs/shells/zsh/agdsn-zsh-config/default.nix b/pkgs/shells/zsh/agdsn-zsh-config/default.nix
index 9ff6c464bbe2f..8dae2edf21b6f 100644
--- a/pkgs/shells/zsh/agdsn-zsh-config/default.nix
+++ b/pkgs/shells/zsh/agdsn-zsh-config/default.nix
@@ -25,7 +25,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A modified version of the Grml Zsh configuration specialised for the needs of system administration";
+    description = "Modified version of the Grml Zsh configuration specialised for the needs of system administration";
     homepage = "https://github.com/agdsn/agdsn-zsh-config";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/shells/zsh/agkozak-zsh-prompt/default.nix b/pkgs/shells/zsh/agkozak-zsh-prompt/default.nix
index 21f265e846459..9d87f3b7385f1 100644
--- a/pkgs/shells/zsh/agkozak-zsh-prompt/default.nix
+++ b/pkgs/shells/zsh/agkozak-zsh-prompt/default.nix
@@ -23,7 +23,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A fast, asynchronous Zsh prompt";
+    description = "Fast, asynchronous Zsh prompt";
     homepage = "https://github.com/agkozak/agkozak-zsh-prompt";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/shells/zsh/antibody/default.nix b/pkgs/shells/zsh/antibody/default.nix
index 02f872730a743..fe32821dd6110 100644
--- a/pkgs/shells/zsh/antibody/default.nix
+++ b/pkgs/shells/zsh/antibody/default.nix
@@ -18,7 +18,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" "-X main.version=${version}" ];
 
   meta = with lib; {
-    description = "The fastest shell plugin manager";
+    description = "Fastest shell plugin manager";
     mainProgram = "antibody";
     homepage = "https://github.com/getantibody/antibody";
     license = licenses.mit;
diff --git a/pkgs/shells/zsh/antidote/default.nix b/pkgs/shells/zsh/antidote/default.nix
index f570c813e5965..f9838da927320 100644
--- a/pkgs/shells/zsh/antidote/default.nix
+++ b/pkgs/shells/zsh/antidote/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A zsh plugin manager made from the ground up thinking about performance";
+    description = "Zsh plugin manager made from the ground up thinking about performance";
     homepage = "https://getantidote.github.io/";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.hitsmaxft ];
diff --git a/pkgs/shells/zsh/antigen/default.nix b/pkgs/shells/zsh/antigen/default.nix
index ca5fbee6e3687..1b2795ee971ef 100644
--- a/pkgs/shells/zsh/antigen/default.nix
+++ b/pkgs/shells/zsh/antigen/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "The plugin manager for zsh";
+    description = "Plugin manager for zsh";
     homepage = "https://antigen.sharats.me/";
     license = lib.licenses.mit;
   };
diff --git a/pkgs/shells/zsh/default.nix b/pkgs/shells/zsh/default.nix
index 5af94223ec83c..c04d4d4bd6724 100644
--- a/pkgs/shells/zsh/default.nix
+++ b/pkgs/shells/zsh/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation {
     "--enable-pcre"
     "--enable-zshenv=${placeholder "out"}/etc/zshenv"
     "--disable-site-fndir"
-    "--enable-function-subdirs"
+    # --enable-function-subdirs is not enabled due to it being slow at runtime in some cases
   ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform && !stdenv.hostPlatform.isStatic) [
     # Also see: https://github.com/buildroot/buildroot/commit/2f32e668aa880c2d4a2cce6c789b7ca7ed6221ba
     "zsh_cv_shared_environ=yes"
@@ -127,7 +127,7 @@ EOF
   '';
 
   meta = {
-    description = "The Z shell";
+    description = "Z shell";
     longDescription = ''
       Zsh is a UNIX command interpreter (shell) usable as an interactive login
       shell and as a shell script command processor.  Of the standard shells,
diff --git a/pkgs/shells/zsh/grml-zsh-config/default.nix b/pkgs/shells/zsh/grml-zsh-config/default.nix
index cff5a814bd131..ed7e81fd88d60 100644
--- a/pkgs/shells/zsh/grml-zsh-config/default.nix
+++ b/pkgs/shells/zsh/grml-zsh-config/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "grml's zsh setup";
     homepage = "https://grml.org/zsh/";
-    license = licenses.gpl2;
+    license = with licenses; [ gpl2Plus gpl2Only ];
     platforms = platforms.unix;
     maintainers = with maintainers; [ msteen rvolosatovs ];
   };
diff --git a/pkgs/shells/zsh/lambda-mod-zsh-theme/default.nix b/pkgs/shells/zsh/lambda-mod-zsh-theme/default.nix
index f64f96a60aa74..1673b86c637f6 100644
--- a/pkgs/shells/zsh/lambda-mod-zsh-theme/default.nix
+++ b/pkgs/shells/zsh/lambda-mod-zsh-theme/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A ZSH theme optimized for people who use Git & Unicode-compatible fonts and terminals";
+    description = "ZSH theme optimized for people who use Git & Unicode-compatible fonts and terminals";
     homepage = "https://github.com/halfo/lambda-mod-zsh-theme/";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix
index 1820e370a8921..946d724f86aac 100644
--- a/pkgs/shells/zsh/oh-my-zsh/default.nix
+++ b/pkgs/shells/zsh/oh-my-zsh/default.nix
@@ -5,14 +5,14 @@
 , git, nix, nixfmt-classic, jq, coreutils, gnused, curl, cacert, bash }:
 
 stdenv.mkDerivation rec {
-  version = "2024-05-03";
+  version = "2024-06-13";
   pname = "oh-my-zsh";
 
   src = fetchFromGitHub {
     owner = "ohmyzsh";
     repo = "ohmyzsh";
-    rev = "668ca3a32dae5ff5d164fc3be565f1e2ece248db";
-    sha256 = "sha256-Rpqfwfs2MxNtSI5rX7XNx0oXExDgf7RAGR7nN8JAayY=";
+    rev = "0c9b42a863778d67aee22bbd43f296110fe1f047";
+    sha256 = "sha256-8ZVYN97K4KJOG+JnVpCVbMx2HGypvk7KZmwNzUfcovo=";
   };
 
   strictDeps = true;
@@ -108,7 +108,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A framework for managing your zsh configuration";
+    description = "Framework for managing your zsh configuration";
     longDescription = ''
       Oh My Zsh is a framework for managing your zsh configuration.
 
diff --git a/pkgs/shells/zsh/spaceship-prompt/default.nix b/pkgs/shells/zsh/spaceship-prompt/default.nix
index a9c6cb60df413..2a58427710e71 100644
--- a/pkgs/shells/zsh/spaceship-prompt/default.nix
+++ b/pkgs/shells/zsh/spaceship-prompt/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "spaceship-prompt";
-  version = "4.15.2";
+  version = "4.15.3";
 
   src = fetchFromGitHub {
     owner = "denysdovhan";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-T5tilMwRc0vbj6Cq3xSf9Q77UfX2aQ+Y1RdkYtzD0k8=";
+    sha256 = "sha256-2Z9NUC1TR0lYBQux+Tkac0oFVnYIxsMkdWNGKQIz9IU=";
   };
 
   strictDeps = true;
diff --git a/pkgs/shells/zsh/zi/default.nix b/pkgs/shells/zsh/zi/default.nix
index b1adbe8d66162..1649a6a7fe88f 100644
--- a/pkgs/shells/zsh/zi/default.nix
+++ b/pkgs/shells/zsh/zi/default.nix
@@ -23,7 +23,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/z-shell/zi";
-    description = "A Swiss Army Knife for Zsh - Unix Shell";
+    description = "Swiss Army Knife for Zsh - Unix Shell";
     license = licenses.mit;
     maintainers = with maintainers; [ sei40kr ];
   };
diff --git a/pkgs/shells/zsh/zplug/default.nix b/pkgs/shells/zsh/zplug/default.nix
index 7fdc682387d70..4f6231d141103 100644
--- a/pkgs/shells/zsh/zplug/default.nix
+++ b/pkgs/shells/zsh/zplug/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A next-generation plugin manager for zsh";
+    description = "Next-generation plugin manager for zsh";
     homepage = "https://github.com/zplug/zplug";
     license = licenses.mit;
     maintainers = [ maintainers.s1341 ];
diff --git a/pkgs/shells/zsh/zsh-abbr/default.nix b/pkgs/shells/zsh/zsh-abbr/default.nix
index 20e9dcdb64729..795410a8329fe 100644
--- a/pkgs/shells/zsh/zsh-abbr/default.nix
+++ b/pkgs/shells/zsh/zsh-abbr/default.nix
@@ -5,24 +5,27 @@
 }:
 stdenv.mkDerivation rec {
   pname = "zsh-abbr";
-  version = "5.7.1";
+  version = "5.8.0";
 
   src = fetchFromGitHub {
     owner = "olets";
     repo = "zsh-abbr";
     rev = "v${version}";
-    hash = "sha256-2Uwo1gV732ZsSmJ6XU895Uqb5QOAQ2J1z85vufBv7nI=";
+    hash = "sha256-bsacP1f1daSYfgMvXduWQ64JJXnrFiLYURENKSMA9LM=";
   };
 
   strictDeps = true;
 
   installPhase = ''
     install -D zsh-abbr.zsh $out/share/zsh/${pname}/abbr.plugin.zsh
+    # Needed so that `man` can find the manpage, since it looks via PATH
+    mkdir -p $out/bin
+    mv man $out/share/man
   '';
 
   meta = with lib; {
     homepage = "https://github.com/olets/zsh-abbr";
-    description = "The zsh manager for auto-expanding abbreviations, inspired by fish shell";
+    description = "Zsh manager for auto-expanding abbreviations, inspired by fish shell";
     license = with licenses; [cc-by-nc-nd-40 hl3];
     maintainers = with maintainers; [icy-thought];
     platforms = platforms.all;
diff --git a/pkgs/shells/zsh/zsh-autopair/default.nix b/pkgs/shells/zsh/zsh-autopair/default.nix
index 73b70c00405ae..e950eadbcf401 100644
--- a/pkgs/shells/zsh/zsh-autopair/default.nix
+++ b/pkgs/shells/zsh/zsh-autopair/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/hlissner/zsh-autopair";
-    description = "A plugin that auto-closes, deletes and skips over matching delimiters in zsh intelligently";
+    description = "Plugin that auto-closes, deletes and skips over matching delimiters in zsh intelligently";
     license = licenses.mit;
     maintainers = with maintainers; [ _0qq ];
     platforms = platforms.all;
diff --git a/pkgs/shells/zsh/zsh-edit/default.nix b/pkgs/shells/zsh/zsh-edit/default.nix
index 9c734c928c24e..b1ca81e30ce85 100644
--- a/pkgs/shells/zsh/zsh-edit/default.nix
+++ b/pkgs/shells/zsh/zsh-edit/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/marlonrichert/zsh-edit";
-    description = "A set of powerful extensions to the Zsh command line editor";
+    description = "Set of powerful extensions to the Zsh command line editor";
     license = licenses.mit;
     maintainers = with maintainers; [ deejayem ];
     platforms = platforms.all;
diff --git a/pkgs/shells/zsh/zsh-forgit/default.nix b/pkgs/shells/zsh/zsh-forgit/default.nix
index 08f31a995aebc..13038e05c7092 100644
--- a/pkgs/shells/zsh/zsh-forgit/default.nix
+++ b/pkgs/shells/zsh/zsh-forgit/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/wfxr/forgit";
-    description = "A utility tool powered by fzf for using git interactively";
+    description = "Utility tool powered by fzf for using git interactively";
     mainProgram = "git-forgit";
     license = licenses.mit;
     maintainers = with maintainers; [ deejayem ];
diff --git a/pkgs/shells/zsh/zsh-fzf-history-search/default.nix b/pkgs/shells/zsh/zsh-fzf-history-search/default.nix
index c6d32f8d76120..67111738bd5d3 100644
--- a/pkgs/shells/zsh/zsh-fzf-history-search/default.nix
+++ b/pkgs/shells/zsh/zsh-fzf-history-search/default.nix
@@ -27,7 +27,7 @@ stdenvNoCC.mkDerivation {
   '';
 
   meta = {
-    description = "A simple zsh plugin that replaces Ctrl+R with an fzf-driven select which includes date/times";
+    description = "Simple zsh plugin that replaces Ctrl+R with an fzf-driven select which includes date/times";
     homepage = "https://github.com/joshskidmore/zsh-fzf-history-search";
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
diff --git a/pkgs/shells/zsh/zsh-history/default.nix b/pkgs/shells/zsh/zsh-history/default.nix
index 6693f466216c2..146014e2c974c 100644
--- a/pkgs/shells/zsh/zsh-history/default.nix
+++ b/pkgs/shells/zsh/zsh-history/default.nix
@@ -28,7 +28,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A CLI to provide enhanced history for your ZSH shell";
+    description = "CLI to provide enhanced history for your ZSH shell";
     homepage = "https://github.com/b4b4r07/history";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/shells/zsh/zsh-powerlevel10k/default.nix b/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
index 328360aa482ec..c9f610471f575 100644
--- a/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
+++ b/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     changelog = "https://github.com/romkatv/powerlevel10k/releases/tag/v${version}";
-    description = "A fast reimplementation of Powerlevel9k ZSH theme";
+    description = "Fast reimplementation of Powerlevel9k ZSH theme";
     longDescription = ''
       To make use of this derivation, use
       `programs.zsh.promptInit = "source ''${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme";`
diff --git a/pkgs/shells/zsh/zsh-powerlevel9k/default.nix b/pkgs/shells/zsh/zsh-powerlevel9k/default.nix
index 35d5aa48b0c1c..4a0b0bd02dd68 100644
--- a/pkgs/shells/zsh/zsh-powerlevel9k/default.nix
+++ b/pkgs/shells/zsh/zsh-powerlevel9k/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "A beautiful theme for zsh";
+    description = "Beautiful theme for zsh";
     longDescription = ''
       To make use of this derivation, use
       `programs.zsh.promptInit = "source ''${pkgs.zsh-powerlevel9k}/share/zsh-powerlevel9k/powerlevel9k.zsh-theme";`
diff --git a/pkgs/shells/zsh/zsh-prezto/default.nix b/pkgs/shells/zsh/zsh-prezto/default.nix
index e311bea156f11..ff79e8ea1a761 100644
--- a/pkgs/shells/zsh/zsh-prezto/default.nix
+++ b/pkgs/shells/zsh/zsh-prezto/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zsh-prezto";
-  version = "0-unstable-2024-04-15";
+  version = "0-unstable-2024-06-03";
 
   src = fetchFromGitHub {
     owner = "sorin-ionescu";
     repo = "prezto";
-    rev = "f5a8cb456b74d4d71caf46037a356d2deee27b50";
-    sha256 = "iikJ/U7amsmMgFIEYuIIIymNeWr4ag/QPeyQjBJ/lOY=";
+    rev = "9195b66161b196238cbd52a8a4abd027bdaf5f73";
+    sha256 = "wN/86uFBahUWl9RnKvdf88zVxou7B8Kh7/s3JfMye0g=";
     fetchSubmodules = true;
   };
 
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = unstableGitUpdater {};
 
   meta = with lib; {
-    description = "The configuration framework for Zsh";
+    description = "Configuration framework for Zsh";
     longDescription = ''
       Prezto is the configuration framework for Zsh; it enriches
       the command line interface environment with sane defaults,
diff --git a/pkgs/shells/zsh/zsh-system-clipboard/default.nix b/pkgs/shells/zsh/zsh-system-clipboard/default.nix
index 6e875b6ee086e..10853b4dc0f1d 100644
--- a/pkgs/shells/zsh/zsh-system-clipboard/default.nix
+++ b/pkgs/shells/zsh/zsh-system-clipboard/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/kutsan/zsh-system-clipboard";
-    description = "A plugin that adds key bindings support for ZLE (Zsh Line Editor) clipboard operations for vi emulation keymaps";
+    description = "Plugin that adds key bindings support for ZLE (Zsh Line Editor) clipboard operations for vi emulation keymaps";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ _0qq ];
     platforms = platforms.all;
diff --git a/pkgs/shells/zsh/zsh-vi-mode/default.nix b/pkgs/shells/zsh/zsh-vi-mode/default.nix
index 42472625f13e8..b29dc4a344d17 100644
--- a/pkgs/shells/zsh/zsh-vi-mode/default.nix
+++ b/pkgs/shells/zsh/zsh-vi-mode/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/jeffreytse/zsh-vi-mode";
     license = licenses.mit;
-    description = "A better and friendly vi(vim) mode plugin for ZSH.";
+    description = "Better and friendly vi(vim) mode plugin for ZSH";
     maintainers = with maintainers; [ kyleondy ];
     platforms = platforms.all;
   };
diff --git a/pkgs/shells/zsh/zsh-you-should-use/default.nix b/pkgs/shells/zsh/zsh-you-should-use/default.nix
index be89f60d8927c..f6d6c8ecb147e 100644
--- a/pkgs/shells/zsh/zsh-you-should-use/default.nix
+++ b/pkgs/shells/zsh/zsh-you-should-use/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zsh-you-should-use";
-  version = "1.7.4";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "MichaelAquilina";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Jl3wZa/WIA+GtkUiCn0vKfd6N/GitOavwZ+uqfmzdps=";
+    sha256 = "sha256-fJX748lwVP1+GF/aIl1J3c6XAy/AtYCpEHsP8weUNo0=";
   };
 
   strictDeps = true;
diff --git a/pkgs/stdenv/adapters.nix b/pkgs/stdenv/adapters.nix
index 2304b3289b7eb..6a8b07b633efd 100644
--- a/pkgs/stdenv/adapters.nix
+++ b/pkgs/stdenv/adapters.nix
@@ -32,7 +32,11 @@ rec {
 
 
   # Override the compiler in stdenv for specific packages.
-  overrideCC = stdenv: cc: stdenv.override { allowedRequisites = null; cc = cc; };
+  overrideCC = stdenv: cc: stdenv.override {
+    allowedRequisites = null;
+    cc = cc;
+    hasCC = cc != null;
+  };
 
 
   # Add some arbitrary packages to buildInputs for specific packages.
diff --git a/pkgs/stdenv/cross/default.nix b/pkgs/stdenv/cross/default.nix
index 1cbbfeb6d2025..de7ae432f360a 100644
--- a/pkgs/stdenv/cross/default.nix
+++ b/pkgs/stdenv/cross/default.nix
@@ -41,25 +41,43 @@ in lib.init bootStages ++ [
       if crossSystem.isStatic
       then buildPackages.stdenvAdapters.makeStatic
       else lib.id;
+    stdenvNoCC = adaptStdenv (buildPackages.stdenv.override (old: rec {
+      buildPlatform = localSystem;
+      hostPlatform = crossSystem;
+      targetPlatform = crossSystem;
+
+      # Prior overrides are surely not valid as packages built with this run on
+      # a different platform, and so are disabled.
+      overrides = _: _: {};
+      extraBuildInputs = [ ]; # Old ones run on wrong platform
+      allowedRequisites = null;
+
+      cc = null;
+      hasCC = false;
+
+      extraNativeBuildInputs = old.extraNativeBuildInputs
+        ++ lib.optionals
+             (hostPlatform.isLinux && !buildPlatform.isLinux)
+             [ buildPackages.patchelf ]
+        ++ lib.optional
+             (let f = p: !p.isx86 || builtins.elem p.libc [ "musl" "wasilibc" "relibc" ] || p.isiOS || p.isGenode;
+               in f hostPlatform && !(f buildPlatform) )
+             buildPackages.updateAutotoolsGnuConfigScriptsHook
+        ;
+    }));
   in {
     inherit config;
     overlays = overlays ++ crossOverlays;
     selfBuild = false;
+    inherit stdenvNoCC;
     stdenv = let
-      baseStdenv = adaptStdenv (buildPackages.stdenv.override (old: rec {
-        buildPlatform = localSystem;
-        hostPlatform = crossSystem;
-        targetPlatform = crossSystem;
-
-        # Prior overrides are surely not valid as packages built with this run on
-        # a different platform, and so are disabled.
-        overrides = _: _: {};
+      inherit (stdenvNoCC) hostPlatform targetPlatform;
+      baseStdenv = stdenvNoCC.override {
         extraBuildInputs = [ ] # Old ones run on wrong platform
            ++ lib.optionals hostPlatform.isDarwin [ buildPackages.targetPackages.darwin.apple_sdk.frameworks.CoreFoundation ]
            ;
-        allowedRequisites = null;
 
-        hasCC = !targetPlatform.isGhcjs;
+        hasCC = !stdenvNoCC.targetPlatform.isGhcjs;
 
         cc = if crossSystem.useiOSPrebuilt or false
                then buildPackages.darwin.iosSdkPkgs.clang
@@ -77,16 +95,7 @@ in lib.init bootStages ++ [
                then buildPackages.llvmPackages.clang
              else buildPackages.gcc;
 
-        extraNativeBuildInputs = old.extraNativeBuildInputs
-          ++ lib.optionals
-               (hostPlatform.isLinux && !buildPlatform.isLinux)
-               [ buildPackages.patchelf ]
-          ++ lib.optional
-               (let f = p: !p.isx86 || builtins.elem p.libc [ "musl" "wasilibc" "relibc" ] || p.isiOS || p.isGenode;
-                 in f hostPlatform && !(f buildPlatform) )
-               buildPackages.updateAutotoolsGnuConfigScriptsHook
-          ;
-      }));
+      };
     in if config ? replaceCrossStdenv then config.replaceCrossStdenv { inherit buildPackages baseStdenv; } else baseStdenv;
   })
 
diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix
index a61f3e1ae4d0f..0bb07b6545450 100644
--- a/pkgs/stdenv/generic/check-meta.nix
+++ b/pkgs/stdenv/generic/check-meta.nix
@@ -230,23 +230,23 @@ let
 
              $ export NIXPKGS_ALLOW_INSECURE=1
              ${flakeNote}
-        b) for `nixos-rebuild` you can add ‘${getName attrs}’ to
+        b) for `nixos-rebuild` you can add ‘${lib.getName attrs}’ to
            `nixpkgs.config.permittedInsecurePackages` in the configuration.nix,
            like so:
 
              {
                nixpkgs.config.permittedInsecurePackages = [
-                 "${getName attrs}"
+                 "${lib.getName attrs}"
                ];
              }
 
         c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
-           ‘${getName attrs}’ to `permittedInsecurePackages` in
+           ‘${lib.getName attrs}’ to `permittedInsecurePackages` in
            ~/.config/nixpkgs/config.nix, like so:
 
              {
                permittedInsecurePackages = [
-                 "${getName attrs}"
+                 "${lib.getName attrs}"
                ];
              }
 
diff --git a/pkgs/test/check-by-name/README.md b/pkgs/test/check-by-name/README.md
index c68e7a93b7d0e..140f5951ca335 100644
--- a/pkgs/test/check-by-name/README.md
+++ b/pkgs/test/check-by-name/README.md
@@ -13,7 +13,7 @@ In turn when running locally, we don't want to have to push commits to test them
 and we can also rely on the local Git history to do the mergeability check.
 
 Arguments:
-- `BASE_BRANCH`: The base branch to use, e.g. master or release-23.11
+- `BASE_BRANCH`: The base branch to use, e.g. master or release-24.05
 - `REPOSITORY`: The repository to fetch the base branch from, defaults to https://github.com/NixOS/nixpkgs.git
 
 ## `./update-pinned-tool.sh`
diff --git a/pkgs/test/dotnet/default.nix b/pkgs/test/dotnet/default.nix
index 7592b09d76e3c..d70850c05fdb0 100644
--- a/pkgs/test/dotnet/default.nix
+++ b/pkgs/test/dotnet/default.nix
@@ -1,5 +1,7 @@
-{ callPackage }:
+{ lib, callPackage }:
 
 {
   project-references = callPackage ./project-references { };
+  use-dotnet-from-env = lib.recurseIntoAttrs (callPackage ./use-dotnet-from-env { });
+  structured-attrs = lib.recurseIntoAttrs (callPackage ./structured-attrs { });
 }
diff --git a/pkgs/test/dotnet/project-references/default.nix b/pkgs/test/dotnet/project-references/default.nix
index f40b9196c2091..762686a7d01ff 100644
--- a/pkgs/test/dotnet/project-references/default.nix
+++ b/pkgs/test/dotnet/project-references/default.nix
@@ -4,11 +4,13 @@
 
 { lib
 , dotnet-sdk
-, buildDotnetModule
+, buildPackages # buildDotnetModule
 , runCommand
 }:
 
 let
+  inherit (buildPackages) buildDotnetModule;
+
   nugetDeps = ./nuget-deps.nix;
 
   # Specify the TargetFramework via an environment variable so that we don't
@@ -18,7 +20,8 @@ let
   library = buildDotnetModule {
     name = "project-references-test-library";
     src = ./library;
-    inherit nugetDeps TargetFramework;
+    inherit nugetDeps;
+    env.TargetFramework = TargetFramework;
 
     packNupkg = true;
   };
@@ -26,7 +29,8 @@ let
   application = buildDotnetModule {
     name = "project-references-test-application";
     src = ./application;
-    inherit nugetDeps TargetFramework;
+    inherit nugetDeps;
+    env.TargetFramework = TargetFramework;
 
     projectReferences = [ library ];
   };
@@ -34,5 +38,5 @@ in
 
 runCommand "project-references-test" { } ''
   ${application}/bin/Application
-  touch $out
+  mkdir $out
 ''
diff --git a/pkgs/test/dotnet/structured-attrs/default.nix b/pkgs/test/dotnet/structured-attrs/default.nix
new file mode 100644
index 0000000000000..cf96fef8dbdcc
--- /dev/null
+++ b/pkgs/test/dotnet/structured-attrs/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, dotnet-sdk
+, buildPackages # buildDotnetModule
+, testers
+, runCommand
+}:
+let
+  # Note: without structured attributes, we can’t use derivation arguments that
+  # contain spaces unambiguously because arguments are passed as space-separated
+  # environment variables.
+  copyrightString = "Public domain 🅮";
+
+  inherit (buildPackages) buildDotnetModule;
+
+  app = buildDotnetModule {
+    name = "structured-attrs-test-application";
+    src = ./src;
+    nugetDeps = ./nuget-deps.nix;
+    dotnetFlags = [ "--property:Copyright=${copyrightString}" ];
+    env.TargetFramework = "net${lib.versions.majorMinor (lib.getVersion dotnet-sdk)}";
+    __structuredAttrs = true;
+  };
+in
+{
+  no-structured-attrs = testers.testBuildFailure (app.overrideAttrs {
+    __structuredAttrs = false;
+  });
+
+  check-output = testers.testEqualContents {
+    assertion = "buildDotnetModule sets AssemblyCopyrightAttribute with structured attributes";
+    expected = builtins.toFile "expected-copyright.txt" copyrightString;
+    actual = runCommand "dotnet-structured-attrs-test" { } ''
+      ${app}/bin/Application >"$out"
+    '';
+  };
+}
diff --git a/pkgs/test/dotnet/structured-attrs/nuget-deps.nix b/pkgs/test/dotnet/structured-attrs/nuget-deps.nix
new file mode 100644
index 0000000000000..f3a17967e25c8
--- /dev/null
+++ b/pkgs/test/dotnet/structured-attrs/nuget-deps.nix
@@ -0,0 +1,5 @@
+# This file was automatically generated by passthru.fetch-deps.
+# Please dont edit it manually, your changes might get overwritten!
+
+{ fetchNuGet }: [
+]
diff --git a/pkgs/test/dotnet/structured-attrs/src/Application.cs b/pkgs/test/dotnet/structured-attrs/src/Application.cs
new file mode 100644
index 0000000000000..3bc548105c2b4
--- /dev/null
+++ b/pkgs/test/dotnet/structured-attrs/src/Application.cs
@@ -0,0 +1,10 @@
+using System;
+using System.Reflection;
+
+Console.Write(
+    (
+        (AssemblyCopyrightAttribute)Assembly
+            .GetExecutingAssembly()
+            .GetCustomAttributes(typeof(AssemblyCopyrightAttribute), true)[0]
+    ).Copyright
+);
diff --git a/pkgs/test/dotnet/structured-attrs/src/Application.csproj b/pkgs/test/dotnet/structured-attrs/src/Application.csproj
new file mode 100644
index 0000000000000..decaa6d961aab
--- /dev/null
+++ b/pkgs/test/dotnet/structured-attrs/src/Application.csproj
@@ -0,0 +1,5 @@
+<Project Sdk="Microsoft.NET.Sdk">
+    <PropertyGroup>
+        <OutputType>exe</OutputType>
+    </PropertyGroup>
+</Project>
diff --git a/pkgs/test/dotnet/use-dotnet-from-env/default.nix b/pkgs/test/dotnet/use-dotnet-from-env/default.nix
new file mode 100644
index 0000000000000..711a98eb0c29d
--- /dev/null
+++ b/pkgs/test/dotnet/use-dotnet-from-env/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, dotnet-sdk
+, buildPackages # buildDotnetModule, dotnet-runtime
+, testers
+, runCommand
+, removeReferencesTo
+}:
+let
+  inherit (buildPackages) buildDotnetModule dotnet-runtime;
+
+  app = buildDotnetModule {
+    name = "use-dotnet-from-env-test-application";
+    src = ./src;
+    nugetDeps = ./nuget-deps.nix;
+    useDotnetFromEnv = true;
+    env.TargetFramework = "net${lib.versions.majorMinor (lib.getVersion dotnet-sdk)}";
+  };
+
+  appWithoutFallback = app.overrideAttrs (oldAttrs: {
+    nativeBuildInputs = (oldAttrs.nativeBuildInputs or [ ]) ++ [
+      removeReferencesTo
+    ];
+    postFixup = (oldAttrs.postFixup or "") + ''
+      remove-references-to -t ${dotnet-runtime} "$out/bin/Application"
+    '';
+  });
+
+  runtimeVersion = lib.getVersion dotnet-runtime;
+  runtimeVersionFile = builtins.toFile "dotnet-version.txt" runtimeVersion;
+in
+{
+  fallback = testers.testEqualContents {
+    assertion = "buildDotnetModule sets fallback DOTNET_ROOT in wrapper";
+    expected = runtimeVersionFile;
+    actual = runCommand "use-dotnet-from-env-fallback-test" { } ''
+      ${app}/bin/Application >"$out"
+    '';
+  };
+
+  # Check that appWithoutFallback does not use fallback .NET runtime.
+  without-fallback = testers.testBuildFailure (runCommand "use-dotnet-from-env-without-fallback-test" { } ''
+    ${appWithoutFallback}/bin/Application >"$out"
+  '');
+
+  # NB assumes that without-fallback above to passes.
+  use-dotnet-root-env = testers.testEqualContents {
+    assertion = "buildDotnetModule uses DOTNET_ROOT from environment in wrapper";
+    expected = runtimeVersionFile;
+    actual = runCommand "use-dotnet-from-env-root-test" { env.DOTNET_ROOT = dotnet-runtime; } ''
+      ${appWithoutFallback}/bin/Application >"$out"
+    '';
+  };
+  use-dotnet-path-env = testers.testEqualContents {
+    assertion = "buildDotnetModule uses DOTNET_ROOT from dotnet in PATH in wrapper";
+    expected = runtimeVersionFile;
+    actual = runCommand "use-dotnet-from-env-path-test" { dotnetRuntime = dotnet-runtime; } ''
+      PATH=$dotnetRuntime''${PATH+:}$PATH ${appWithoutFallback}/bin/Application >"$out"
+    '';
+  };
+}
diff --git a/pkgs/test/dotnet/use-dotnet-from-env/nuget-deps.nix b/pkgs/test/dotnet/use-dotnet-from-env/nuget-deps.nix
new file mode 100644
index 0000000000000..f3a17967e25c8
--- /dev/null
+++ b/pkgs/test/dotnet/use-dotnet-from-env/nuget-deps.nix
@@ -0,0 +1,5 @@
+# This file was automatically generated by passthru.fetch-deps.
+# Please dont edit it manually, your changes might get overwritten!
+
+{ fetchNuGet }: [
+]
diff --git a/pkgs/test/dotnet/use-dotnet-from-env/src/Application.cs b/pkgs/test/dotnet/use-dotnet-from-env/src/Application.cs
new file mode 100644
index 0000000000000..5efc571ca9a3e
--- /dev/null
+++ b/pkgs/test/dotnet/use-dotnet-from-env/src/Application.cs
@@ -0,0 +1,3 @@
+using System;
+
+Console.Write(Environment.Version.ToString());
diff --git a/pkgs/test/dotnet/use-dotnet-from-env/src/Application.csproj b/pkgs/test/dotnet/use-dotnet-from-env/src/Application.csproj
new file mode 100644
index 0000000000000..decaa6d961aab
--- /dev/null
+++ b/pkgs/test/dotnet/use-dotnet-from-env/src/Application.csproj
@@ -0,0 +1,5 @@
+<Project Sdk="Microsoft.NET.Sdk">
+    <PropertyGroup>
+        <OutputType>exe</OutputType>
+    </PropertyGroup>
+</Project>
diff --git a/pkgs/test/haskell/cabalSdist/local/generated.nix b/pkgs/test/haskell/cabalSdist/local/generated.nix
index bfa299962bcb4..f6463e762dddc 100644
--- a/pkgs/test/haskell/cabalSdist/local/generated.nix
+++ b/pkgs/test/haskell/cabalSdist/local/generated.nix
@@ -3,7 +3,14 @@
 mkDerivation {
   pname = "local";
   version = "0.1.0.0";
-  src = ./.;
+  src = lib.fileset.toSource {
+    root = ./.;
+    fileset = lib.fileset.unions [
+      ./app
+      ./CHANGELOG.md
+      ./local.cabal
+    ];
+  };
   isLibrary = false;
   isExecutable = true;
   executableHaskellDepends = [ base ];
diff --git a/pkgs/test/haskell/setBuildTarget/default.nix b/pkgs/test/haskell/setBuildTarget/default.nix
index f0c78c5104499..39d5db698bcd0 100644
--- a/pkgs/test/haskell/setBuildTarget/default.nix
+++ b/pkgs/test/haskell/setBuildTarget/default.nix
@@ -7,7 +7,15 @@ let
       mkDerivation {
         pname = "haskell-setBuildTarget";
         version = "0.1.0.0";
-        src = ./.;
+        src = lib.fileset.toSource {
+          root = ./.;
+          fileset = lib.fileset.unions [
+            ./haskell-setBuildTarget.cabal
+            ./Bar.hs
+            ./Foo.hs
+            ./Setup.hs
+          ];
+        };
         isLibrary = false;
         isExecutable = true;
         executableHaskellDepends = [ base ];
diff --git a/pkgs/test/kernel.nix b/pkgs/test/kernel.nix
index 2ccd188b1edb0..e345d9fa207e7 100644
--- a/pkgs/test/kernel.nix
+++ b/pkgs/test/kernel.nix
@@ -1,6 +1,3 @@
-# to run these tests:
-# nix-instantiate --eval --strict . -A tests.kernel-config
-#
 # make sure to use NON EXISTING kernel settings else they may conflict with
 # common-config.nix
 { lib, pkgs }:
@@ -37,37 +34,40 @@ let
     { NIXOS_FAKE_USB_DEBUG = option yes;}
   ];
 
-in
-runTests {
-  testEasy = {
-    expr = (getConfig { NIXOS_FAKE_USB_DEBUG = yes;}).NIXOS_FAKE_USB_DEBUG;
-    expected = { tristate = "y"; optional = false; freeform = null; };
-  };
+  failures = runTests {
+    testEasy = {
+      expr = (getConfig { NIXOS_FAKE_USB_DEBUG = yes;}).NIXOS_FAKE_USB_DEBUG;
+      expected = { tristate = "y"; optional = false; freeform = null; };
+    };
 
-  # mandatory flag should win over optional
-  testMandatoryCheck = {
-    expr = (getConfig mandatoryVsOptionalConfig).NIXOS_FAKE_USB_DEBUG.optional;
-    expected = false;
-  };
+    # mandatory flag should win over optional
+    testMandatoryCheck = {
+      expr = (getConfig mandatoryVsOptionalConfig).NIXOS_FAKE_USB_DEBUG.optional;
+      expected = false;
+    };
 
-  testYesWinsOverNo = {
-    expr = (getConfig mkDefaultWorksConfig)."NIXOS_TEST_BOOLEAN".tristate;
-    expected = "y";
-  };
+    testYesWinsOverNo = {
+      expr = (getConfig mkDefaultWorksConfig)."NIXOS_TEST_BOOLEAN".tristate;
+      expected = "y";
+    };
 
-  testAllOptionalRemainOptional = {
-    expr = (getConfig allOptionalRemainOptional)."NIXOS_FAKE_USB_DEBUG".optional;
-    expected = true;
-  };
+    testAllOptionalRemainOptional = {
+      expr = (getConfig allOptionalRemainOptional)."NIXOS_FAKE_USB_DEBUG".optional;
+      expected = true;
+    };
+
+    # check that freeform options are unique
+    # Should trigger
+    # > The option `settings.NIXOS_FAKE_MMC_BLOCK_MINORS.freeform' has conflicting definitions, in `<unknown-file>' and `<unknown-file>'
+    testTreeform = let
+      res = builtins.tryEval ( (getConfig freeformConfig).NIXOS_FAKE_MMC_BLOCK_MINORS.freeform);
+    in {
+      expr = res.success;
+      expected = false;
+    };
 
-  # check that freeform options are unique
-  # Should trigger
-  # > The option `settings.NIXOS_FAKE_MMC_BLOCK_MINORS.freeform' has conflicting definitions, in `<unknown-file>' and `<unknown-file>'
-  testTreeform = let
-    res = builtins.tryEval ( (getConfig freeformConfig).NIXOS_FAKE_MMC_BLOCK_MINORS.freeform);
-  in {
-    expr = res.success;
-    expected = false;
   };
+in
 
-}
+lib.optional (failures != [])
+  (throw "The following kernel unit tests failed: ${lib.generators.toPretty {} failures}")
diff --git a/pkgs/test/systemd/nixos/default.nix b/pkgs/test/systemd/nixos/default.nix
index e45399b635167..37b42ea7ae273 100644
--- a/pkgs/test/systemd/nixos/default.nix
+++ b/pkgs/test/systemd/nixos/default.nix
@@ -1,37 +1,42 @@
 { pkgs, lib, stdenv, ... }:
 
-lib.runTests {
-  # Merging two non-list definitions must still result in an error
-  # about a conflicting definition.
-  test-unitOption-merging-non-lists-conflict =
-    let nixos = pkgs.nixos {
-        system.stateVersion = lib.trivial.release;
-        systemd.services.systemd-test-nixos = {
-          serviceConfig = lib.mkMerge [
-            { StateDirectory = "foo"; }
-            { StateDirectory = "bar"; }
-          ];
+let
+  failures = lib.runTests {
+    # Merging two non-list definitions must still result in an error
+    # about a conflicting definition.
+    test-unitOption-merging-non-lists-conflict =
+      let nixos = pkgs.nixos {
+          system.stateVersion = lib.trivial.release;
+          systemd.services.systemd-test-nixos = {
+            serviceConfig = lib.mkMerge [
+              { StateDirectory = "foo"; }
+              { StateDirectory = "bar"; }
+            ];
+          };
         };
-      };
-    in {
-    expr = (builtins.tryEval (nixos.config.systemd.services.systemd-test-nixos.serviceConfig.StateDirectory)).success;
-    expected = false;
-  };
+      in {
+      expr = (builtins.tryEval (nixos.config.systemd.services.systemd-test-nixos.serviceConfig.StateDirectory)).success;
+      expected = false;
+    };
 
-  # Merging must lift non-list definitions to a list
-  # if at least one of them is a list.
-  test-unitOption-merging-list-non-list-append =
-    let nixos = pkgs.nixos {
-        system.stateVersion = lib.trivial.release;
-        systemd.services.systemd-test-nixos = {
-          serviceConfig = lib.mkMerge [
-            { StateDirectory = "foo"; }
-            { StateDirectory = ["bar"]; }
-          ];
+    # Merging must lift non-list definitions to a list
+    # if at least one of them is a list.
+    test-unitOption-merging-list-non-list-append =
+      let nixos = pkgs.nixos {
+          system.stateVersion = lib.trivial.release;
+          systemd.services.systemd-test-nixos = {
+            serviceConfig = lib.mkMerge [
+              { StateDirectory = "foo"; }
+              { StateDirectory = ["bar"]; }
+            ];
+          };
         };
-      };
-    in {
-    expr = nixos.config.systemd.services.systemd-test-nixos.serviceConfig.StateDirectory;
-    expected = [ "foo" "bar" ];
+      in {
+      expr = nixos.config.systemd.services.systemd-test-nixos.serviceConfig.StateDirectory;
+      expected = [ "foo" "bar" ];
+    };
   };
-}
+in
+
+lib.optional (failures != [])
+  (throw "The following systemd unit tests failed: ${lib.generators.toPretty {} failures}")
diff --git a/pkgs/test/vim/default.nix b/pkgs/test/vim/default.nix
index 33e1e551d4f92..75633adbd1a5c 100644
--- a/pkgs/test/vim/default.nix
+++ b/pkgs/test/vim/default.nix
@@ -1,5 +1,5 @@
 { vimUtils, vim-full, writeText, vimPlugins
-, lib, fetchFromGitHub
+, lib
 , pkgs
 }:
 let
diff --git a/pkgs/tools/X11/arandr/default.nix b/pkgs/tools/X11/arandr/default.nix
index 996a5888e836f..c0125fb710da8 100644
--- a/pkgs/tools/X11/arandr/default.nix
+++ b/pkgs/tools/X11/arandr/default.nix
@@ -33,7 +33,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://christian.amsuess.com/tools/arandr/";
-    description = "A simple visual front end for XRandR";
+    description = "Simple visual front end for XRandR";
     license = licenses.gpl3;
     maintainers = with maintainers; [ gepbird ];
     mainProgram = "arandr";
diff --git a/pkgs/tools/X11/ckbcomp/default.nix b/pkgs/tools/X11/ckbcomp/default.nix
index 3a49053efcf4b..bbc619bf82979 100644
--- a/pkgs/tools/X11/ckbcomp/default.nix
+++ b/pkgs/tools/X11/ckbcomp/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "ckbcomp";
-  version = "1.226";
+  version = "1.227";
 
   src = fetchFromGitLab {
     domain = "salsa.debian.org";
     owner = "installer-team";
     repo = "console-setup";
     rev = version;
-    sha256 = "sha256-gipUL+EqBeFK0/3Ds5Xi67Kl/XEJkUe02lPhf7OifXY=";
+    sha256 = "sha256-95En8WDGad6s6PkUbDOs/I+DJ7A7tRyIq+Ets1kDPKM=";
   };
 
   buildInputs = [ perl ];
diff --git a/pkgs/tools/X11/dex/default.nix b/pkgs/tools/X11/dex/default.nix
index c194e1543f292..306afdd81cd82 100644
--- a/pkgs/tools/X11/dex/default.nix
+++ b/pkgs/tools/X11/dex/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" "VERSION=$(version)" ];
 
   meta = with lib; {
-    description = "A program to generate and execute DesktopEntry files of the Application type";
+    description = "Program to generate and execute DesktopEntry files of the Application type";
     homepage = "https://github.com/jceb/dex";
     platforms = platforms.linux;
     license = licenses.gpl3Plus;
diff --git a/pkgs/tools/X11/dispad/default.nix b/pkgs/tools/X11/dispad/default.nix
index eb0706ab97aa1..bf7007e1eda25 100644
--- a/pkgs/tools/X11/dispad/default.nix
+++ b/pkgs/tools/X11/dispad/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libX11 libXi libconfuse ];
 
   meta = with lib; {
-    description = "A small daemon for disabling trackpads while typing";
+    description = "Small daemon for disabling trackpads while typing";
     homepage = "https://github.com/BlueDragonX/dispad";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ zimbatm ];
diff --git a/pkgs/tools/X11/jumpapp/default.nix b/pkgs/tools/X11/jumpapp/default.nix
index cce6ced7573df..5d7bfb635ef58 100644
--- a/pkgs/tools/X11/jumpapp/default.nix
+++ b/pkgs/tools/X11/jumpapp/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://github.com/mkropat/jumpapp";
-    description = "A run-or-raise application switcher for any X11 desktop";
+    description = "Run-or-raise application switcher for any X11 desktop";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.matklad ];
   };
diff --git a/pkgs/tools/X11/ksuperkey/default.nix b/pkgs/tools/X11/ksuperkey/default.nix
index 733022948dbda..4ab4eb43670b8 100644
--- a/pkgs/tools/X11/ksuperkey/default.nix
+++ b/pkgs/tools/X11/ksuperkey/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libX11 libXtst xorgproto libXi ];
 
   meta = with lib; {
-    description = "A tool to be able to bind the super key as a key rather than a modifier";
+    description = "Tool to be able to bind the super key as a key rather than a modifier";
     homepage = "https://github.com/hanschen/ksuperkey";
     license = licenses.gpl3;
     maintainers = [ ];
diff --git a/pkgs/tools/X11/mmutils/default.nix b/pkgs/tools/X11/mmutils/default.nix
index 580abbc779895..4e744e9d9571c 100644
--- a/pkgs/tools/X11/mmutils/default.nix
+++ b/pkgs/tools/X11/mmutils/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   installFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "A set of utilities for querying xrandr monitor information";
+    description = "Set of utilities for querying xrandr monitor information";
     homepage = "https://github.com/pockata/mmutils";
     license = licenses.isc;
     platforms = platforms.unix;
diff --git a/pkgs/tools/X11/nitrogen/default.nix b/pkgs/tools/X11/nitrogen/default.nix
index bcdf84db7d564..6f4c0be19dcdd 100644
--- a/pkgs/tools/X11/nitrogen/default.nix
+++ b/pkgs/tools/X11/nitrogen/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A wallpaper browser and setter for X11";
+    description = "Wallpaper browser and setter for X11";
     longDescription = ''
       nitrogen is a lightweight utility that can set the root background on X11.
       It operates independently of any desktop environment, and supports
diff --git a/pkgs/tools/X11/paperview/default.nix b/pkgs/tools/X11/paperview/default.nix
index 30f04702708aa..3c5cf4c4123e8 100644
--- a/pkgs/tools/X11/paperview/default.nix
+++ b/pkgs/tools/X11/paperview/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A high performance X11 animated wallpaper setter";
+    description = "High performance X11 animated wallpaper setter";
     homepage = "https://github.com/glouw/paperview";
     platforms = platforms.linux;
     license = with licenses; [ mit ];
diff --git a/pkgs/tools/X11/pmenu/default.nix b/pkgs/tools/X11/pmenu/default.nix
index 278a181f5c92a..841f6073d56bb 100644
--- a/pkgs/tools/X11/pmenu/default.nix
+++ b/pkgs/tools/X11/pmenu/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = {
-    description = "A pie-menu tool";
+    description = "Pie-menu tool";
     homepage = "https://github.com/phillbush/pmenu";
     license = lib.licenses.mit;
     longDescription = ''
diff --git a/pkgs/tools/X11/ratmen/default.nix b/pkgs/tools/X11/ratmen/default.nix
index 0fe85a9ae452d..9a6ea5af76163 100644
--- a/pkgs/tools/X11/ratmen/default.nix
+++ b/pkgs/tools/X11/ratmen/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     "PREFIX=$(out)"
   ];
   meta = with lib; {
-    description = "A minimalistic X11 menu creator";
+    description = "Minimalistic X11 menu creator";
     license = licenses.free; # 9menu derivative with 9menu license
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/X11/runningx/default.nix b/pkgs/tools/X11/runningx/default.nix
index bc7e6f395703e..01c3bb5e0233d 100644
--- a/pkgs/tools/X11/runningx/default.nix
+++ b/pkgs/tools/X11/runningx/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "http://www.fiction.net/blong/programs/mutt/";
-    description = "A program for testing if X is running";
+    description = "Program for testing if X is running";
     license = lib.licenses.free;
     platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.romildo ];
diff --git a/pkgs/tools/X11/sct/default.nix b/pkgs/tools/X11/sct/default.nix
index 821a1c6070ef8..9bf1f6d89a126 100644
--- a/pkgs/tools/X11/sct/default.nix
+++ b/pkgs/tools/X11/sct/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.umaxx.net/";
-    description = "A minimal utility to set display colour temperature";
+    description = "Minimal utility to set display colour temperature";
     maintainers = with maintainers; [ raskin somasis ];
     license = licenses.publicDomain;
     platforms = with platforms; linux ++ freebsd ++ openbsd;
diff --git a/pkgs/tools/X11/smart-wallpaper/default.nix b/pkgs/tools/X11/smart-wallpaper/default.nix
index 8f41bb7a78afa..bdcc572377d31 100644
--- a/pkgs/tools/X11/smart-wallpaper/default.nix
+++ b/pkgs/tools/X11/smart-wallpaper/default.nix
@@ -30,7 +30,7 @@ stdenvNoCC.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/Baitinq/smart-wallpaper";
-    description = "A simple bash script that automatically changes your wallpaper depending on if its daytime or nighttime";
+    description = "Simple bash script that automatically changes your wallpaper depending on if its daytime or nighttime";
     license = licenses.bsd2;
     maintainers = with maintainers; [ baitinq ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/X11/wayv/default.nix b/pkgs/tools/X11/wayv/default.nix
index eae930de1dd9b..3070748f0109e 100644
--- a/pkgs/tools/X11/wayv/default.nix
+++ b/pkgs/tools/X11/wayv/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A gesture control for X11";
+    description = "Gesture control for X11";
     license = lib.licenses.gpl2Plus ;
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.linux;
diff --git a/pkgs/tools/X11/wmutils-libwm/default.nix b/pkgs/tools/X11/wmutils-libwm/default.nix
index 6d2787a96cd31..84d08c9e2b66b 100644
--- a/pkgs/tools/X11/wmutils-libwm/default.nix
+++ b/pkgs/tools/X11/wmutils-libwm/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   installFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "A small library for X window manipulation";
+    description = "Small library for X window manipulation";
     homepage = "https://github.com/wmutils/libwm";
     license = licenses.isc;
     maintainers = with maintainers; [ bhougland ];
diff --git a/pkgs/tools/X11/x11vnc/default.nix b/pkgs/tools/X11/x11vnc/default.nix
index b07f9d4518ffd..463daf17cc88a 100644
--- a/pkgs/tools/X11/x11vnc/default.nix
+++ b/pkgs/tools/X11/x11vnc/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A VNC server connected to a real X11 screen";
+    description = "VNC server connected to a real X11 screen";
     homepage = "https://github.com/LibVNC/x11vnc/";
     platforms = platforms.linux;
     license = licenses.gpl2Plus;
diff --git a/pkgs/tools/X11/x2vnc/default.nix b/pkgs/tools/X11/x2vnc/default.nix
index bb8525d309169..945743f1d6dd7 100644
--- a/pkgs/tools/X11/x2vnc/default.nix
+++ b/pkgs/tools/X11/x2vnc/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://fredrik.hubbe.net/x2vnc.html";
-    description = "A program to control a remote VNC server";
+    description = "Program to control a remote VNC server";
     platforms = platforms.unix;
     license = licenses.gpl2Plus;
     mainProgram = "x2vnc";
diff --git a/pkgs/tools/X11/xannotate/default.nix b/pkgs/tools/X11/xannotate/default.nix
index 148bbcfe7af49..9c2a4ce353347 100644
--- a/pkgs/tools/X11/xannotate/default.nix
+++ b/pkgs/tools/X11/xannotate/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libX11 ];
 
   meta = {
-    description = "A tool to scribble over X windows";
+    description = "Tool to scribble over X windows";
     license = lib.licenses.gpl2Plus ;
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.linux;
diff --git a/pkgs/tools/X11/xcalib/default.nix b/pkgs/tools/X11/xcalib/default.nix
index 64aadb7bb3c79..c1dccf16c8b0d 100644
--- a/pkgs/tools/X11/xcalib/default.nix
+++ b/pkgs/tools/X11/xcalib/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "A tiny monitor calibration loader for X and MS-Windows";
+    description = "Tiny monitor calibration loader for X and MS-Windows";
     license = licenses.gpl2Plus;
     maintainers = [];
     platforms = platforms.linux;
diff --git a/pkgs/tools/X11/xchainkeys/default.nix b/pkgs/tools/X11/xchainkeys/default.nix
index 7a251b30a47b9..ee1b10bca63c0 100644
--- a/pkgs/tools/X11/xchainkeys/default.nix
+++ b/pkgs/tools/X11/xchainkeys/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://henning-bekel.de/xchainkeys/";
-    description = "A standalone X11 program to create chained key bindings";
+    description = "Standalone X11 program to create chained key bindings";
     license = lib.licenses.gpl3;
     platforms = lib.platforms.unix;
     mainProgram = "xchainkeys";
diff --git a/pkgs/tools/X11/xdg-utils/default.nix b/pkgs/tools/X11/xdg-utils/default.nix
index 10604d4acfa0a..644c997de6191 100644
--- a/pkgs/tools/X11/xdg-utils/default.nix
+++ b/pkgs/tools/X11/xdg-utils/default.nix
@@ -301,7 +301,7 @@ stdenv.mkDerivation (self: {
 
   meta = with lib; {
     homepage = "https://www.freedesktop.org/wiki/Software/xdg-utils/";
-    description = "A set of command line tools that assist applications with a variety of desktop integration tasks";
+    description = "Set of command line tools that assist applications with a variety of desktop integration tasks";
     license = if mimiSupport then licenses.gpl2Only else licenses.mit;
     maintainers = [ maintainers.eelco ];
     platforms = platforms.all;
diff --git a/pkgs/tools/X11/xinput_calibrator/default.nix b/pkgs/tools/X11/xinput_calibrator/default.nix
index d8afb3e4a8966..aee42ac6a0922 100644
--- a/pkgs/tools/X11/xinput_calibrator/default.nix
+++ b/pkgs/tools/X11/xinput_calibrator/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://github.com/tias/xinput_calibrator";
-    description = "A generic touchscreen calibration program for X.Org";
+    description = "Generic touchscreen calibration program for X.Org";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.flosse ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/tools/X11/xkb-switch-i3/default.nix b/pkgs/tools/X11/xkb-switch-i3/default.nix
index 975eeb9866141..56c4e6af6338a 100644
--- a/pkgs/tools/X11/xkb-switch-i3/default.nix
+++ b/pkgs/tools/X11/xkb-switch-i3/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xkb-switch-i3";
-  version = "1.8.5";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "Zebradil";
     repo = "xkb-switch-i3";
     rev = version;
-    sha256 = "sha256-oW1oXxYqaLTnVQMBEOFPdzS8EnpoPc68kbGxGXaWUB8=";
+    sha256 = "sha256-5d1DdRtz0QCWISSsWQt9xgTOekYUCkhfMsjG+/kyQK4=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/tools/X11/xnotify/default.nix b/pkgs/tools/X11/xnotify/default.nix
index cdd7d54b52945..017835cbc4b66 100644
--- a/pkgs/tools/X11/xnotify/default.nix
+++ b/pkgs/tools/X11/xnotify/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "A tool to read notifications from stdin and pop them up on the screen";
+    description = "Tool to read notifications from stdin and pop them up on the screen";
     longDescription = ''
       XNotify displays a notification on the screen. XNotify receives a
       notification specification in stdin and shows a notification for the user
diff --git a/pkgs/tools/X11/xob/default.nix b/pkgs/tools/X11/xob/default.nix
index e6e2fc2730208..cbd2757c09acc 100644
--- a/pkgs/tools/X11/xob/default.nix
+++ b/pkgs/tools/X11/xob/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "prefix=$(out)" ];
 
   meta = with lib; {
-    description = "A lightweight overlay bar for the X Window System";
+    description = "Lightweight overlay bar for the X Window System";
     longDescription = ''
       A lightweight configurable overlay volume/backlight/progress/anything bar
       for the X Window System (and Wayland compositors with XWayland). Each
diff --git a/pkgs/tools/X11/xplugd/default.nix b/pkgs/tools/X11/xplugd/default.nix
index f5b81571ef2db..a6d0366275fa2 100644
--- a/pkgs/tools/X11/xplugd/default.nix
+++ b/pkgs/tools/X11/xplugd/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/troglobit/xplugd";
-    description = "A UNIX daemon that executes a script on X input and RandR changes";
+    description = "UNIX daemon that executes a script on X input and RandR changes";
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ akho ];
diff --git a/pkgs/tools/X11/xpra/libfakeXinerama.nix b/pkgs/tools/X11/xpra/libfakeXinerama.nix
index ca665259c8f3b..4ec1f7f4370d8 100644
--- a/pkgs/tools/X11/xpra/libfakeXinerama.nix
+++ b/pkgs/tools/X11/xpra/libfakeXinerama.nix
@@ -12,22 +12,29 @@ stdenv.mkDerivation  rec {
   buildInputs = [ libX11 libXinerama ];
 
   buildPhase = ''
-    gcc -O2 -Wall fakeXinerama.c -fPIC -o libfakeXinerama.so.1.0 -shared
+    runHook preBuild
+
+    $CC -O2 -Wall fakeXinerama.c -fPIC -o libfakeXinerama.so.1.0 -shared
+
+    runHook postBuild
   '';
 
   installPhase = ''
-    mkdir -p $out/lib
-    cp libfakeXinerama.so.1.0 $out/lib
-    ln -s libfakeXinerama.so.1.0 $out/lib/libXinerama.so.1.0
-    ln -s libXinerama.so.1.0 $out/lib/libXinerama.so.1
-    ln -s libXinerama.so.1 $out/lib/libXinerama.so
+    runHook preInstall
+
+    install -Dm555 libfakeXinerama.so.1.0 -t "$out/lib"
+    ln -s libfakeXinerama.so.1.0 "$out/lib/libXinerama.so.1.0"
+    ln -s libXinerama.so.1.0 "$out/lib/libXinerama.so.1"
+    ln -s libXinerama.so.1 "$out/lib/libXinerama.so"
+
+    runHook postInstall
   '';
 
-  meta = with lib; {
+  meta = {
     homepage = "http://xpra.org/";
     description = "fakeXinerama for Xpra";
-    platforms = platforms.linux;
-    maintainers = [ ];
-    license = licenses.mit;
+    platforms = lib.platforms.linux;
+    maintainers = [ lib.maintainers.nickcao ];
+    license = lib.licenses.mit;
   };
 }
diff --git a/pkgs/tools/X11/xprintidle-ng/default.nix b/pkgs/tools/X11/xprintidle-ng/default.nix
index ebe3d2a619926..c2ca54bb606b7 100644
--- a/pkgs/tools/X11/xprintidle-ng/default.nix
+++ b/pkgs/tools/X11/xprintidle-ng/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     inherit version;
-    description = "A command-line tool to print idle time from libXss";
+    description = "Command-line tool to print idle time from libXss";
     homepage = "https://github.com/taktoa/xprintidle-ng";
     license = lib.licenses.gpl2Only;
     maintainers = [ lib.maintainers.raskin ];
diff --git a/pkgs/tools/X11/xprintidle/default.nix b/pkgs/tools/X11/xprintidle/default.nix
index 33782f6ed6c63..d1c6d393187e0 100644
--- a/pkgs/tools/X11/xprintidle/default.nix
+++ b/pkgs/tools/X11/xprintidle/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://github.com/g0hl1n/xprintidle";
-    description = "A utility that queries the X server for the user's idle time and prints it to stdout";
+    description = "Utility that queries the X server for the user's idle time and prints it to stdout";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/X11/xprompt/default.nix b/pkgs/tools/X11/xprompt/default.nix
index 15f7b337c8795..818f5cda362dd 100644
--- a/pkgs/tools/X11/xprompt/default.nix
+++ b/pkgs/tools/X11/xprompt/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A dmenu rip-off with contextual completion";
+    description = "Dmenu rip-off with contextual completion";
     longDescription = ''
       XPrompt is a prompt for X. XPrompt features a text input field where the
       user can type in a text subject to tab-completion.
diff --git a/pkgs/tools/X11/xrestop/default.nix b/pkgs/tools/X11/xrestop/default.nix
index b6d04c7908437..2d2fbcf0e6f4f 100644
--- a/pkgs/tools/X11/xrestop/default.nix
+++ b/pkgs/tools/X11/xrestop/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ xorg.libX11 xorg.libXres xorg.libXext ncurses ];
 
   meta = with lib; {
-    description = "A 'top' like tool for monitoring X Client server resource usage";
+    description = "'top' like tool for monitoring X Client server resource usage";
     homepage = "https://gitlab.freedesktop.org/xorg/app/xrestop";
     maintainers = with maintainers; [ qyliss ];
     platforms = platforms.unix;
diff --git a/pkgs/tools/X11/xssstate/default.nix b/pkgs/tools/X11/xssstate/default.nix
index 53fd1138c29dd..d4ec63a716680 100644
--- a/pkgs/tools/X11/xssstate/default.nix
+++ b/pkgs/tools/X11/xssstate/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A simple tool to retrieve the X screensaver state";
+    description = "Simple tool to retrieve the X screensaver state";
     license = licenses.mit;
     maintainers = with maintainers; [ onemoresuza ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/X11/xwinwrap/default.nix b/pkgs/tools/X11/xwinwrap/default.nix
index 7b45de6ecfd58..8ebd071ddb42e 100644
--- a/pkgs/tools/X11/xwinwrap/default.nix
+++ b/pkgs/tools/X11/xwinwrap/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A utility that allows you to use an animated X window as the wallpaper";
+    description = "Utility that allows you to use an animated X window as the wallpaper";
     longDescription = ''
       XWinWrap is a small utility written a loooong time ago that allowed you to
       stick most of the apps to your desktop background. What this meant was you
diff --git a/pkgs/tools/X11/xzoom/default.nix b/pkgs/tools/X11/xzoom/default.nix
index 0e368651000dc..0d32e509a139b 100644
--- a/pkgs/tools/X11/xzoom/default.nix
+++ b/pkgs/tools/X11/xzoom/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   installTargets = [ "install" "install.man" ];
 
   meta = {
-    description = "An X11 screen zoom tool";
+    description = "X11 screen zoom tool";
     license = lib.licenses.free ;
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.linux;
diff --git a/pkgs/tools/admin/acme-sh/default.nix b/pkgs/tools/admin/acme-sh/default.nix
index 6f82567ab02da..e7fbb962c8314 100644
--- a/pkgs/tools/admin/acme-sh/default.nix
+++ b/pkgs/tools/admin/acme-sh/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://acme.sh/";
     changelog = "https://github.com/acmesh-official/acme.sh/releases/tag/${version}";
-    description = "A pure Unix shell script implementing ACME client protocol";
+    description = "Pure Unix shell script implementing ACME client protocol";
     longDescription = ''
       An ACME Shell script: acme.sh
 
diff --git a/pkgs/tools/admin/afterburn/default.nix b/pkgs/tools/admin/afterburn/default.nix
index bd104a2687d30..5422760764123 100644
--- a/pkgs/tools/admin/afterburn/default.nix
+++ b/pkgs/tools/admin/afterburn/default.nix
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/coreos/ignition";
-    description = "A one-shot cloud provider agent";
+    description = "One-shot cloud provider agent";
     license = licenses.asl20;
     maintainers = [ maintainers.arianvp ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/admin/aliyun-cli/default.nix b/pkgs/tools/admin/aliyun-cli/default.nix
index 0d77ed2929ef3..2bf466f8cadbb 100644
--- a/pkgs/tools/admin/aliyun-cli/default.nix
+++ b/pkgs/tools/admin/aliyun-cli/default.nix
@@ -2,14 +2,14 @@
 
 buildGoModule rec {
   pname = "aliyun-cli";
-  version = "3.0.206";
+  version = "3.0.207";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "aliyun";
     repo = pname;
     fetchSubmodules = true;
-    sha256 = "sha256-xMDTZZCaTH2aru9bx1bmO5xqwH1dsUuBUZ1df7Re8+4=";
+    sha256 = "sha256-tRNi1V91H+V1uVGs9SsLBjA51eGn0IH3ohjmH8dHYKY=";
   };
 
   vendorHash = "sha256-MnOqh3qAYAN2Lxt/RWWn4GgpdBFDojMbnzIsHx2pPSk=";
diff --git a/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix b/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix
index e541d75c37394..6c1ca57749060 100644
--- a/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix
+++ b/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "amazon-ecr-credential-helper";
-  version = "0.7.1";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "amazon-ecr-credential-helper";
     rev = "v${version}";
-    sha256 = "sha256-Q+YAfCsq4/PoSzYMFhLDAsAfxlU7XR/vouHo42/D2eM=";
+    sha256 = "sha256-xhJnhh1pDANGq4CFBPAEwqtsxSYeIvhKcHEsvYRebbM=";
   };
 
   vendorHash = null;
@@ -27,7 +27,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "The Amazon ECR Docker Credential Helper is a credential helper for the Docker daemon that makes it easier to use Amazon Elastic Container Registry";
+    description = "Amazon ECR Docker Credential Helper is a credential helper for the Docker daemon that makes it easier to use Amazon Elastic Container Registry";
     homepage = "https://github.com/awslabs/amazon-ecr-credential-helper";
     license = licenses.asl20;
     maintainers = with maintainers; [ kalbasit ];
diff --git a/pkgs/tools/admin/aws-assume-role/default.nix b/pkgs/tools/admin/aws-assume-role/default.nix
index 29dcac28c1e2f..1e160919af4a6 100644
--- a/pkgs/tools/admin/aws-assume-role/default.nix
+++ b/pkgs/tools/admin/aws-assume-role/default.nix
@@ -1,16 +1,14 @@
 { lib
 , fetchFromGitHub
-, buildGoPackage
+, buildGoModule
 }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "aws-assume-role";
   version = "0.3.2";
 
   outputs = [ "out" "doc" ];
 
-  goPackagePath = "github.com/remind101/assume-role";
-
   src = fetchFromGitHub {
     owner = "remind101";
     repo = "assume-role";
@@ -18,8 +16,14 @@ buildGoPackage rec {
     sha256 = "sha256-7+9qi9lYzv1YCFhUyla+5Gqs5nBUiiazhFwiqHzMFd4=";
   };
 
+  vendorHash = null;
+
+  postPatch = ''
+    go mod init github.com/remind101/assume-role
+  '';
+
   postInstall = ''
-    install -Dm444 -t $out/share/doc/$name ./go/src/${goPackagePath}/README.md
+    install -Dm444 -t $out/share/doc/aws-assume-role README.md
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/admin/aws-env/default.nix b/pkgs/tools/admin/aws-env/default.nix
deleted file mode 100644
index c16d8374c9b0b..0000000000000
--- a/pkgs/tools/admin/aws-env/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ buildGoPackage, fetchFromGitHub, lib }:
-
-buildGoPackage rec {
-  pname = "aws-env";
-  version = "0.5";
-  rev = "v${version}";
-
-  goPackagePath = "github.com/Droplr/aws-env";
-
-  src = fetchFromGitHub {
-    owner = "Droplr";
-    repo = pname;
-    inherit rev;
-    sha256 = "sha256-dzXgQW5noWT7u276tlwhvgvu2J8VYrOdW9vidZ3W3t0=";
-  };
-
-  goDeps = ./deps.nix;
-
-  meta = with lib; {
-    description = "Secure way to handle environment variables in Docker and envfile with AWS Parameter Store";
-    homepage = "https://github.com/Droplr/aws-env";
-    license = licenses.mit;
-    maintainers = with maintainers; [ srhb ];
-    mainProgram = "aws-env";
-  };
-}
diff --git a/pkgs/tools/admin/aws-env/deps.nix b/pkgs/tools/admin/aws-env/deps.nix
deleted file mode 100644
index 891a6ecb59626..0000000000000
--- a/pkgs/tools/admin/aws-env/deps.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
-[
-  {
-    goPackagePath = "github.com/aws/aws-sdk-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/aws/aws-sdk-go";
-      rev = "5f03c87445c9dcd6aa831a76a77170919265aa97";
-      sha256 = "146rwinw2x4r0f2pixv62b7mmhvnnfvvjmfaj6dqjxrhp0imcxdi";
-    };
-  }
-]
diff --git a/pkgs/tools/admin/awscli/default.nix b/pkgs/tools/admin/awscli/default.nix
index 1c6cce5c8bc84..568282fa86ab6 100644
--- a/pkgs/tools/admin/awscli/default.nix
+++ b/pkgs/tools/admin/awscli/default.nix
@@ -20,7 +20,7 @@ let
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-GPcXkl2H0XNaeqt2/qD5+KvW23dRB0X+zLWo9hLigQM=";
+      hash = "sha256-96hFvXs3Fcvad+PBEpS9RFMJkcD1qHqfQ+8gtVfEbnc=";
     };
 
     nativeBuildInputs = [
diff --git a/pkgs/tools/admin/awscli2/default.nix b/pkgs/tools/admin/awscli2/default.nix
index cb76180fa7ab8..8708325cc4659 100644
--- a/pkgs/tools/admin/awscli2/default.nix
+++ b/pkgs/tools/admin/awscli2/default.nix
@@ -59,14 +59,14 @@ let
 in
 with py.pkgs; buildPythonApplication rec {
   pname = "awscli2";
-  version = "2.15.43"; # N.B: if you change this, check if overrides are still up-to-date
+  version = "2.16.4"; # N.B: if you change this, check if overrides are still up-to-date
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = "aws-cli";
     rev = "refs/tags/${version}";
-    hash = "sha256-L+1+4QXDya8wwjexPB0fwx6/nRDPDrMYaaYeRm2SEU8=";
+    hash = "sha256-l+AbacIs/1cJ78BACb3f5KuN9jM55WBT1SHD/lcAbcA=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/admin/awslimitchecker/default.nix b/pkgs/tools/admin/awslimitchecker/default.nix
index 760a6f1e67d0e..bb122774090d4 100644
--- a/pkgs/tools/admin/awslimitchecker/default.nix
+++ b/pkgs/tools/admin/awslimitchecker/default.nix
@@ -53,7 +53,7 @@ python3.pkgs.buildPythonApplication rec {
   pythonImportsCheck = [ "awslimitchecker.checker" ];
 
   meta = with lib; {
-    description = "A script and python package to check your AWS service limits and usage via boto3";
+    description = "Script and python package to check your AWS service limits and usage via boto3";
     homepage = "http://awslimitchecker.readthedocs.org";
     changelog = "https://github.com/jantman/awslimitchecker/blob/${version}/CHANGES.rst";
     license = licenses.agpl3Plus;
diff --git a/pkgs/tools/admin/awslogs/default.nix b/pkgs/tools/admin/awslogs/default.nix
index 153da049ac168..87285da594929 100644
--- a/pkgs/tools/admin/awslogs/default.nix
+++ b/pkgs/tools/admin/awslogs/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "awslogs";
-  version = "0.14.0";
-  format = "setuptools";
+  version = "0.15.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "jorgebastida";
     repo = pname;
     rev = version;
-    sha256 = "sha256-DrW8s0omQqLp1gaoR6k/YR11afRjUbGYrFtfYhby2b8=";
+    sha256 = "sha256-o6xZqwlqAy01P+TZ0rB5rpEddWNUBzzHp7/cycpcwes=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -24,19 +24,14 @@ python3.pkgs.buildPythonApplication rec {
     jmespath
   ];
 
-  nativeCheckInputs = with python3.pkgs; [
-    pytestCheckHook
-  ];
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "jmespath>=0.7.1,<1.0.0" "jmespath>=0.7.1" \
-      --replace '>=3.5.*' '>=3.5'
+      --replace "boto3>=1.34.75" "boto3>=1.34.58" \
   '';
 
-  disabledTests = [
-    "test_main_get_query"
-    "test_main_get_with_color"
+  nativeCheckInputs = with python3.pkgs; [
+    pytestCheckHook
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/tools/admin/awsls/default.nix b/pkgs/tools/admin/awsls/default.nix
index f65f603e80da8..322d3aacaf289 100644
--- a/pkgs/tools/admin/awsls/default.nix
+++ b/pkgs/tools/admin/awsls/default.nix
@@ -20,7 +20,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A list command for AWS resources";
+    description = "List command for AWS resources";
     homepage = "https://github.com/jckuester/awsls";
     license = licenses.mit;
     maintainers = [ maintainers.markus1189 ];
diff --git a/pkgs/tools/admin/awsrm/default.nix b/pkgs/tools/admin/awsrm/default.nix
index 72fb4454870cc..3fd9896507bea 100644
--- a/pkgs/tools/admin/awsrm/default.nix
+++ b/pkgs/tools/admin/awsrm/default.nix
@@ -20,7 +20,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A remove command for AWS resources";
+    description = "Remove command for AWS resources";
     homepage = "https://github.com/jckuester/awsrm";
     license = licenses.mit;
     maintainers = [ maintainers.markus1189 ];
diff --git a/pkgs/tools/admin/awsume/default.nix b/pkgs/tools/admin/awsume/default.nix
index b0d817445b3d3..a6ee9f326c1d5 100644
--- a/pkgs/tools/admin/awsume/default.nix
+++ b/pkgs/tools/admin/awsume/default.nix
@@ -51,7 +51,7 @@ buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A utility for easily assuming AWS IAM roles from the command line";
+    description = "Utility for easily assuming AWS IAM roles from the command line";
     homepage = "https://github.com/trek10inc/awsume";
     license = [ licenses.mit ];
     maintainers = [ maintainers.nilp0inter ];
diff --git a/pkgs/tools/admin/awsweeper/default.nix b/pkgs/tools/admin/awsweeper/default.nix
index a249863301240..064d210907a0b 100644
--- a/pkgs/tools/admin/awsweeper/default.nix
+++ b/pkgs/tools/admin/awsweeper/default.nix
@@ -18,7 +18,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A tool to clean out your AWS account";
+    description = "Tool to clean out your AWS account";
     homepage = "https://github.com/jckuester/awsweeper";
     license = licenses.mpl20;
     maintainers = [ ];
diff --git a/pkgs/tools/admin/azure-cli/commit-update-hunks.sh b/pkgs/tools/admin/azure-cli/commit-update-hunks.sh
new file mode 100755
index 0000000000000..7a9d913e260e7
--- /dev/null
+++ b/pkgs/tools/admin/azure-cli/commit-update-hunks.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/env bash
+
+# Just a tiny imperfect helper script to commit generated updates.
+#
+# First, ensure that that `git add -p extensions-generated.nix` only
+# returns a series of clean update hunks, where each hunk updates a
+# single package version. All additions/removals must be committed
+# by hand.
+# The script will then commit the remaining hunks with fitting commit messages.
+
+while true; do
+  echo -e "y\nq" | git add -p extensions-generated.nix || break
+  pname=$(git diff --no-ext-diff --cached | grep "pname =" | cut -d'"' -f2 | head -n1) || break
+  versions=$(git diff --no-ext-diff --cached | grep "version =" | cut -d'"' -f2) || break
+  oldver=$(echo "$versions" | head -n1) || break
+  newver=$(echo "$versions" | tail -n1) || break
+  commitmsg="azure-cli-extensions.${pname}: ${oldver} -> ${newver}"
+  git commit -m "$commitmsg"
+done
diff --git a/pkgs/tools/admin/azure-cli/default.nix b/pkgs/tools/admin/azure-cli/default.nix
index 5b025e5c3b26e..d401801a15edf 100644
--- a/pkgs/tools/admin/azure-cli/default.nix
+++ b/pkgs/tools/admin/azure-cli/default.nix
@@ -18,14 +18,14 @@
 }:
 
 let
-  version = "2.60.0";
+  version = "2.61.0";
 
   src = fetchFromGitHub {
     name = "azure-cli-${version}-src";
     owner = "Azure";
     repo = "azure-cli";
     rev = "azure-cli-${version}";
-    hash = "sha256-rQwjcp6MsqhP+o+Hpvt4CFC4ygqsIaRIQOxWKca5Hq8=";
+    hash = "sha256-RmCZigDenbX8OoIZeY087ga2AP8yRckyG0qZnN9gg44=";
   };
 
   # put packages that needs to be overridden in the py package scope
@@ -43,15 +43,15 @@ let
     }@args: python3.pkgs.buildPythonPackage ({
       format = "wheel";
       src = fetchurl { inherit url sha256; };
-      meta = with lib; {
+      meta = {
         inherit description;
         inherit (azure-cli.meta) platforms maintainers;
         homepage = "https://github.com/Azure/azure-cli-extensions";
         changelog = "https://github.com/Azure/azure-cli-extensions/blob/main/src/${pname}/HISTORY.rst";
         license = lib.licenses.mit;
-        sourceProvenance = [ sourceTypes.fromSource ];
-      };
-    } // (removeAttrs args [ "url" "sha256" "description" ]));
+        sourceProvenance = [ lib.sourceTypes.fromSource ];
+      } // args.meta or { };
+    } // (removeAttrs args [ "url" "sha256" "description" "meta" ]));
 
   extensions =
     callPackages ./extensions-generated.nix { inherit mkAzExtension; }
@@ -233,7 +233,7 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage rec {
     # pip is required to install extensions locally, but it's not needed if
     # we're using the default immutable configuration.
     pip
-  ];
+  ] ++ lib.concatMap (extension: extension.propagatedBuildInputs) withExtensions;
 
   postInstall = ''
     substituteInPlace az.completion.sh \
diff --git a/pkgs/tools/admin/azure-cli/extensions-generated.nix b/pkgs/tools/admin/azure-cli/extensions-generated.nix
index 8e872e7bba258..3baee14cdbcc4 100644
--- a/pkgs/tools/admin/azure-cli/extensions-generated.nix
+++ b/pkgs/tools/admin/azure-cli/extensions-generated.nix
@@ -57,9 +57,9 @@
   };
   aks-preview = mkAzExtension rec {
     pname = "aks-preview";
-    version = "1.0.0b5";
+    version = "5.0.0b1";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/aks_preview-${version}-py2.py3-none-any.whl";
-    sha256 = "75378ea07dea6fdadb115e41e8394003fd63282560648fa92d8f055f1e2536eb";
+    sha256 = "2c0a6b1a952b30f10f36f744e214a03774016fe7834038b917b8bc0ef03ce0c9";
     description = "Provides a preview for upcoming AKS features";
   };
   akshybrid = mkAzExtension rec {
@@ -85,9 +85,9 @@
   };
   amg = mkAzExtension rec {
     pname = "amg";
-    version = "1.2.9";
+    version = "1.3.4";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/amg-${version}-py3-none-any.whl";
-    sha256 = "dbea8dd0e85dd2f30f30cb66f0dd7f9d0314a7ff9765a4d074622b75aeccad2f";
+    sha256 = "cf665da8629edfef5189eb2dd57d849d458f841cff83d2cad2a1b61104febf22";
     description = "Microsoft Azure Command-Line Tools Azure Managed Grafana Extension";
   };
   amlfs = mkAzExtension rec {
@@ -99,18 +99,25 @@
   };
   apic-extension = mkAzExtension rec {
     pname = "apic-extension";
-    version = "1.0.0b4";
+    version = "1.0.0b5";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/apic_extension-${version}-py3-none-any.whl";
-    sha256 = "67294fd30190b66b339c8d550e58e1401117b313bea638fb0c126dec26249408";
+    sha256 = "fbca1f8446013142d676159b8292fd7c2d3175f39e1baeb5c4d13f9637003254";
     description = "Microsoft Azure Command-Line Tools ApicExtension Extension";
   };
   appservice-kube = mkAzExtension rec {
     pname = "appservice-kube";
-    version = "0.1.9";
+    version = "0.1.10";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/appservice_kube-${version}-py2.py3-none-any.whl";
-    sha256 = "9107762296c67ef4035256a9790b075040f263804116a3f9a6866227ff6019ed";
+    sha256 = "7fd72d27e4b0eceda3b2b4f301c7a0c3068fea8b96d70f9fcaad142240de7d0d";
     description = "Microsoft Azure Command-Line Tools App Service on Kubernetes Extension";
   };
+  astronomer = mkAzExtension rec {
+    pname = "astronomer";
+    version = "1.0.0";
+    url = "https://azcliprod.blob.core.windows.net/cli-extensions/astronomer-${version}-py3-none-any.whl";
+    sha256 = "b4ca41b5d9cb77aed2b462ded4a392ae3ce896ce8d9cb94a08671d0cb68176cd";
+    description = "Microsoft Azure Command-Line Tools Astronomer Extension";
+  };
   authV2 = mkAzExtension rec {
     pname = "authV2";
     version = "0.1.3";
@@ -127,9 +134,9 @@
   };
   automation = mkAzExtension rec {
     pname = "automation";
-    version = "0.2.2";
+    version = "1.0.0b1";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/automation-${version}-py3-none-any.whl";
-    sha256 = "1337a8bf90739df646231533801cce9050bad641c627382468c86af5f2f99d89";
+    sha256 = "d31fe0433fa30a6e009f7b9bee6c417a686ed87502dd987b9ac8ad113383915b";
     description = "Microsoft Azure Command-Line Tools AutomationClient Extension";
   };
   azure-firewall = mkAzExtension rec {
@@ -162,9 +169,9 @@
   };
   bastion = mkAzExtension rec {
     pname = "bastion";
-    version = "0.3.0";
+    version = "1.0.0";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/bastion-${version}-py3-none-any.whl";
-    sha256 = "c20d8e423acef3b6728c9abdfe90ad4a7020f2d122068983d7b59b9e3fef84c3";
+    sha256 = "39b1468f0741f640294e2b9f258bf9fd46541e061b913003c70756f5298fed42";
     description = "Microsoft Azure Command-Line Tools Bastion Extension";
   };
   billing-benefits = mkAzExtension rec {
@@ -174,13 +181,6 @@
     sha256 = "f71250d1c26690cc0e175cd5c9bcd59e76c7b701bb3a47c8273e4cf8bcca878e";
     description = "Microsoft Azure Command-Line Tools BillingBenefits Extension";
   };
-  blockchain = mkAzExtension rec {
-    pname = "blockchain";
-    version = "0.1.1";
-    url = "https://azcliprod.blob.core.windows.net/cli-extensions/blockchain-${version}-py3-none-any.whl";
-    sha256 = "95a4788ab10052f6c1b4122db6ab140705db528e5cb3db3358580d703a2a7204";
-    description = "Microsoft Azure Command-Line Tools BlockchainManagementClient Extension";
-  };
   blueprint = mkAzExtension rec {
     pname = "blueprint";
     version = "0.3.2";
@@ -202,6 +202,13 @@
     sha256 = "9ea6162d37fc3390be4dce64cb05c5c588070104f3e92a701ab475473565a8a9";
     description = "Translate ARM template to executable Azure CLI scripts";
   };
+  compute-diagnostic-rp = mkAzExtension rec {
+    pname = "compute-diagnostic-rp";
+    version = "1.0.0b1";
+    url = "https://azcliprod.blob.core.windows.net/cli-extensions/compute_diagnostic_rp-${version}-py3-none-any.whl";
+    sha256 = "810e93ce00c7d03df6da9a0faf57b966fb6da582311f9cae74b2b7e1e3c41423";
+    description = "Microsoft Azure Command-Line Tools ComputeDiagnosticRp Extension";
+  };
   confidentialledger = mkAzExtension rec {
     pname = "confidentialledger";
     version = "1.0.0";
@@ -211,23 +218,23 @@
   };
   confluent = mkAzExtension rec {
     pname = "confluent";
-    version = "0.4.0";
+    version = "0.6.0";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/confluent-${version}-py3-none-any.whl";
-    sha256 = "7b812940a77094bc916c745a61b7732966de4e7943a7541c0a402c0d912bc6af";
+    sha256 = "7987d22e0e9cada28087a900bfa534865531941f2bbfe967eb46c90b2e0a12be";
     description = "Microsoft Azure Command-Line Tools ConfluentManagementClient Extension";
   };
   connectedmachine = mkAzExtension rec {
     pname = "connectedmachine";
-    version = "0.7.0";
+    version = "1.0.0b1";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/connectedmachine-${version}-py3-none-any.whl";
-    sha256 = "792975ebf0260767481b2ffab0aa3154509c55a9ab60c7f987c3fdead726cd82";
+    sha256 = "f829b171bc489bd1bffea518040acc74608581dae798f4b23bedfe8bf7445383";
     description = "Microsoft Azure Command-Line Tools ConnectedMachine Extension";
   };
   connectedvmware = mkAzExtension rec {
     pname = "connectedvmware";
-    version = "0.2.4";
+    version = "1.1.0";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/connectedvmware-${version}-py2.py3-none-any.whl";
-    sha256 = "8a96c790317dfee523d548c28a51191746ff3b45ede4fee56e804d195de437f6";
+    sha256 = "d2122c64426853a4b3b766160f6291f29aed66d9aa266585c73d63305ed4d22b";
     description = "Microsoft Azure Command-Line Tools Connectedvmware Extension";
   };
   connection-monitor-preview = mkAzExtension rec {
@@ -239,9 +246,9 @@
   };
   cosmosdb-preview = mkAzExtension rec {
     pname = "cosmosdb-preview";
-    version = "0.26.0";
+    version = "1.0.0";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/cosmosdb_preview-${version}-py2.py3-none-any.whl";
-    sha256 = "c761a022fa8e849534d51bb51c6b6a7c01b541a5f018532f7fe312f74f689b06";
+    sha256 = "3a5910873138adf747ba8baed7be180981a74569c86c927ea6f1ae39d3de53bf";
     description = "Microsoft Azure Command-Line Tools Cosmosdb-preview Extension";
   };
   costmanagement = mkAzExtension rec {
@@ -295,23 +302,23 @@
   };
   datafactory = mkAzExtension rec {
     pname = "datafactory";
-    version = "1.0.0";
+    version = "1.0.2";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/datafactory-${version}-py3-none-any.whl";
-    sha256 = "30941f7e2c093f040c958db024367b750068a5181554b23f7403f4522375c41e";
+    sha256 = "ea134e2963b7cdf2bcbd50244a6f1a411da77bd4db7e42c8c8f9651638c82ac7";
     description = "Microsoft Azure Command-Line Tools DataFactoryManagementClient Extension";
   };
   datamigration = mkAzExtension rec {
     pname = "datamigration";
-    version = "0.6.1";
+    version = "1.0.0b1";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/datamigration-${version}-py3-none-any.whl";
-    sha256 = "4a07a5272762f8f53f9fe61b295a800e63c0ea2900a29a526df2eabbe732bca7";
+    sha256 = "9d1ac8c7046e23387696561747be2e8f62e879a4a305f8b20ccd19460a29db0d";
     description = "Microsoft Azure Command-Line Tools DataMigrationManagementClient Extension";
   };
   dataprotection = mkAzExtension rec {
     pname = "dataprotection";
-    version = "0.11.2";
+    version = "1.5.0";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/dataprotection-${version}-py3-none-any.whl";
-    sha256 = "ce31a7bb0c939d6eb6d71971f89441abaee172a3ba5b74dae0ebe88e4a8f5300";
+    sha256 = "5d756d16607364bb98325d2f63580f115a9f8a6bf9c9a74d55c2af2d9a485833";
     description = "Microsoft Azure Command-Line Tools DataProtectionClient Extension";
   };
   datashare = mkAzExtension rec {
@@ -330,10 +337,10 @@
   };
   desktopvirtualization = mkAzExtension rec {
     pname = "desktopvirtualization";
-    version = "0.2.0";
+    version = "1.0.0";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/desktopvirtualization-${version}-py3-none-any.whl";
-    sha256 = "6de28d6be58dd65ad8f25a9fa084676c54684f00f9938f5db7d0392282783e04";
-    description = "Microsoft Azure Command-Line Tools DesktopVirtualizationAPIClient Extension";
+    sha256 = "3a1e7a8f0e579fa21fed770859b21c23bec8b8489d834a61411695a9a90c7cd4";
+    description = "Microsoft Azure Command-Line Tools Desktopvirtualization Extension";
   };
   dev-spaces = mkAzExtension rec {
     pname = "dev-spaces";
@@ -344,9 +351,9 @@
   };
   devcenter = mkAzExtension rec {
     pname = "devcenter";
-    version = "5.0.0";
+    version = "6.0.1";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/devcenter-${version}-py3-none-any.whl";
-    sha256 = "873ce4ec274710a361ba2a6bf93d8820949d955bf4386881d9a37ed87bb0d054";
+    sha256 = "25e3dcdc9cb83243ceb2ed6a6dedc227953c06cb610ba95c84ddec0f7503224f";
     description = "Microsoft Azure Command-Line Tools DevCenter Extension";
   };
   diskpool = mkAzExtension rec {
@@ -391,6 +398,13 @@
     sha256 = "186a06d0f8603f7e0faeed5296ecc73bf1096e0d681acea42d5ebccc1670357b";
     description = "Microsoft Azure Command-Line Tools EdgeOrderManagementClient Extension";
   };
+  edgezones = mkAzExtension rec {
+    pname = "edgezones";
+    version = "1.0.0b1";
+    url = "https://azcliprod.blob.core.windows.net/cli-extensions/edgezones-${version}-py3-none-any.whl";
+    sha256 = "98f1b962dcbb078cfb8cd12d40a58d01bcc37db441570f84e293ba0ba52c6c08";
+    description = "Microsoft Azure Command-Line Tools Edgezones Extension";
+  };
   elastic = mkAzExtension rec {
     pname = "elastic";
     version = "1.0.0b2";
@@ -419,11 +433,18 @@
     sha256 = "b83f723baae0ea04557a87f358fa2131baf15d45cd3aba7a9ab42d14ec80df38";
     description = "Manage customer ExpressRoute circuits using an ExpressRoute cross-connection";
   };
+  firmwareanalysis = mkAzExtension rec {
+    pname = "firmwareanalysis";
+    version = "1.0.0";
+    url = "https://azcliprod.blob.core.windows.net/cli-extensions/firmwareanalysis-${version}-py3-none-any.whl";
+    sha256 = "1c3df1441de76edb08bed05ac279dd2b02bd6fab68a0b9a495dfd7ecce3e92cb";
+    description = "Microsoft Azure Command-Line Tools Firmwareanalysis Extension";
+  };
   fleet = mkAzExtension rec {
     pname = "fleet";
-    version = "1.0.3";
+    version = "1.1.2";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/fleet-${version}-py3-none-any.whl";
-    sha256 = "cd93b819d0a8c1ab50f4aec00b31623fd01040362c4cd633a89ba03fc894eb73";
+    sha256 = "d0d2cf188da6a2f72ebc335d1ff82827c84a4965e23188e3408c85b90e2131dc";
     description = "Microsoft Azure Command-Line Tools Fleet Extension";
   };
   fluid-relay = mkAzExtension rec {
@@ -442,9 +463,9 @@
   };
   front-door = mkAzExtension rec {
     pname = "front-door";
-    version = "1.0.17";
+    version = "1.1.1";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/front_door-${version}-py3-none-any.whl";
-    sha256 = "20996a4d864963451572b71fecf4906f3e7fe8f403a651a1d1e98363df63d095";
+    sha256 = "3f3dd05dd0fce357dd0c7c6ba886a7f1bb37096a0d2d5dc0decf057431819ea4";
     description = "Manage networking Front Doors";
   };
   fzf = mkAzExtension rec {
@@ -454,6 +475,13 @@
     sha256 = "84abeed03b4bbfa7b8c0be08d9366ff3040e2160df4f5a539f0e1c9e0a1c359c";
     description = "Microsoft Azure Command-Line Tools fzf Extension";
   };
+  gallery-service-artifact = mkAzExtension rec {
+    pname = "gallery-service-artifact";
+    version = "1.0.0b1";
+    url = "https://azcliprod.blob.core.windows.net/cli-extensions/gallery_service_artifact-${version}-py3-none-any.whl";
+    sha256 = "3f30e3e8e7e678fd9ab91b2261fb918a303cd382626509d3f00e86f1967750c6";
+    description = "Microsoft Azure Command-Line Tools GalleryServiceArtifact Extension";
+  };
   graphservices = mkAzExtension rec {
     pname = "graphservices";
     version = "1.0.0b1";
@@ -484,9 +512,9 @@
   };
   hdinsightonaks = mkAzExtension rec {
     pname = "hdinsightonaks";
-    version = "1.0.0b1";
+    version = "1.0.0b2";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/hdinsightonaks-${version}-py3-none-any.whl";
-    sha256 = "566c30d67d6b524ac25f77342121e0e7a6ed4ab0af561fcc6e94b0629a03f40c";
+    sha256 = "c323291952f9ec6014af5f760b26860bd8029aa04cc226fd5996f20726641c59";
     description = "Microsoft Azure Command-Line Tools Hdinsightonaks Extension";
   };
   healthbot = mkAzExtension rec {
@@ -554,9 +582,9 @@
   };
   k8s-extension = mkAzExtension rec {
     pname = "k8s-extension";
-    version = "1.6.0";
+    version = "1.6.1";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/k8s_extension-${version}-py3-none-any.whl";
-    sha256 = "27a9996a9ace11856f37719ae697f0ac98d368dde6eb8648d111aafc136599a7";
+    sha256 = "41861d65b9d86e0b622986a4984ce7a611f87b92da578db8c0527ec74334f32c";
     description = "Microsoft Azure Command-Line Tools K8s-extension Extension";
   };
   kusto = mkAzExtension rec {
@@ -596,9 +624,9 @@
   };
   maintenance = mkAzExtension rec {
     pname = "maintenance";
-    version = "1.5.0";
+    version = "1.6.0";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/maintenance-${version}-py3-none-any.whl";
-    sha256 = "4f1336fed4fa2cbea640627676a6cab4399c1b29ae23cb21fe73c9bea0d80a7f";
+    sha256 = "3ab6a2dac48ba71b28bc8ee05d254daa72b62f84dda953749fa621a80ca39ae5";
     description = "Microsoft Azure Command-Line Tools MaintenanceManagementClient Extension";
   };
   managedccfs = mkAzExtension rec {
@@ -610,9 +638,9 @@
   };
   managednetworkfabric = mkAzExtension rec {
     pname = "managednetworkfabric";
-    version = "4.2.0";
+    version = "6.2.0";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/managednetworkfabric-${version}-py3-none-any.whl";
-    sha256 = "f80f528a099862fa8e792f770943a832dbb958b503cc5cc8cb6f58766056d857";
+    sha256 = "3761e2319e0a6bccde79d59e2ab2d508f00e601562c0b7e4bf290ff9d9b14479";
     description = "Support for managednetworkfabric commands based on 2023-06-15 API version";
   };
   managementpartner = mkAzExtension rec {
@@ -622,6 +650,13 @@
     sha256 = "22ddf4b1cdc77e99262cb6089c4d96040065828a1d38a2709fdb945d3c851839";
     description = "Support for Management Partner preview";
   };
+  mdp = mkAzExtension rec {
+    pname = "mdp";
+    version = "1.0.0b1";
+    url = "https://azcliprod.blob.core.windows.net/cli-extensions/mdp-${version}-py3-none-any.whl";
+    sha256 = "7875607d84eaf835afe73b9eee9280a5169c5b0b1dd1b66a6eff593fe292a4de";
+    description = "Microsoft Azure Command-Line Tools Mdp Extension";
+  };
   mixed-reality = mkAzExtension rec {
     pname = "mixed-reality";
     version = "0.0.5";
@@ -631,16 +666,16 @@
   };
   mobile-network = mkAzExtension rec {
     pname = "mobile-network";
-    version = "0.2.1";
+    version = "1.0.0";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/mobile_network-${version}-py3-none-any.whl";
-    sha256 = "66bd39f687c2ac030ab6bd44b8746ec8d64c4804b44592c0bb1ffda837dce22b";
+    sha256 = "2d9572a4ed706df8f626c62036ad22f46a15b113273f8ff9b06313a380a27f56";
     description = "Microsoft Azure Command-Line Tools MobileNetwork Extension";
   };
   monitor-control-service = mkAzExtension rec {
     pname = "monitor-control-service";
-    version = "1.0.1";
+    version = "1.0.2";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/monitor_control_service-${version}-py3-none-any.whl";
-    sha256 = "66475eb79c577ea566c74f986b9ef6af936580beb02dde622701370323d430a3";
+    sha256 = "e0a271c65997120e0022baf51e63c2feec4df3235258a6243a60ff069315b84a";
     description = "Microsoft Azure Command-Line Tools MonitorClient Extension";
   };
   network-analytics = mkAzExtension rec {
@@ -673,9 +708,9 @@
   };
   nginx = mkAzExtension rec {
     pname = "nginx";
-    version = "0.1.1";
+    version = "2.0.0b4";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/nginx-${version}-py2.py3-none-any.whl";
-    sha256 = "3234129a26043a68e80ee1ae31c36e7ef8b2691a096cd6fc557e3a46fea8170e";
+    sha256 = "5327d108083910acbc066b46b8aaf7cb9355bc6e82b4857c706e9990074b512c";
     description = "Microsoft Azure Command-Line Tools Nginx Extension";
   };
   notification-hub = mkAzExtension rec {
@@ -806,9 +841,9 @@
   };
   scheduled-query = mkAzExtension rec {
     pname = "scheduled-query";
-    version = "0.5.3";
+    version = "1.0.0b1";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/scheduled_query-${version}-py2.py3-none-any.whl";
-    sha256 = "b141ce4ff7678484561e9f3c842d8249112a465b7a0da07a6da49856920f8534";
+    sha256 = "fd5e69d0438b8089dbe197d5ba4c41776aed906941cac374755a4c9044c4af04";
     description = "Microsoft Azure Command-Line Tools Scheduled_query Extension";
   };
   scvmm = mkAzExtension rec {
@@ -820,9 +855,9 @@
   };
   self-help = mkAzExtension rec {
     pname = "self-help";
-    version = "0.2.0";
+    version = "0.4.0";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/self_help-${version}-py3-none-any.whl";
-    sha256 = "a57d629f75443666af570188716eaf2b9182da41f6d2f958f6d53d79b830b23e";
+    sha256 = "8c903aaf10d6cb61e6455f6010deeeb496d1e23d6876662089266a49403586b6";
     description = "Microsoft Azure Command-Line Tools SelfHelp Extension";
   };
   sentinel = mkAzExtension rec {
@@ -841,9 +876,9 @@
   };
   spring = mkAzExtension rec {
     pname = "spring";
-    version = "1.19.3";
+    version = "1.24.4";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/spring-${version}-py3-none-any.whl";
-    sha256 = "80cbd41e563231e500670402b01e95150adce18b7c128320c3d2393284e0d5d5";
+    sha256 = "2e298a74b53fcac40d6173a5e9ea386568fcf73d88bde4c44b37c8b755b7555d";
     description = "Microsoft Azure Command-Line Tools spring Extension";
   };
   spring-cloud = mkAzExtension rec {
@@ -862,10 +897,17 @@
   };
   stack-hci-vm = mkAzExtension rec {
     pname = "stack-hci-vm";
-    version = "0.1.11";
-    url = "https://hybridaksstorage.z13.web.core.windows.net/SelfServiceVM/CLI/stack_hci_vm-${version}.1-py3-none-any.whl";
-    sha256 = "cc99134288545178d08b18abd5b7c9e3d099d2add8b52ab9308f6c5fd97ae60c";
-    description = "Microsoft Azure Command-Line Tools AzureStackHCIClient Extension ";
+    version = "1.1.11";
+    url = "https://hciarcvmsstorage.blob.core.windows.net/cli-extension/stack_hci_vm-${version}-py3-none-any.whl";
+    sha256 = "35810b2c3e02a7e3f0fa985c5bd443fbf94ccd72ac28b6ebff5aad1b2d7469aa";
+    description = "Microsoft Azure Command-Line Tools Stack-HCi-VM Extension";
+  };
+  standbypool = mkAzExtension rec {
+    pname = "standbypool";
+    version = "1.0.0b1";
+    url = "https://azcliprod.blob.core.windows.net/cli-extensions/standbypool-${version}-py3-none-any.whl";
+    sha256 = "44c03e320c8b49f52390e3c11d61b25a67afeffc18d62baa522c373142de0e15";
+    description = "Microsoft Azure Command-Line Tools Standbypool Extension";
   };
   staticwebapp = mkAzExtension rec {
     pname = "staticwebapp";
@@ -874,6 +916,13 @@
     sha256 = "fb1dcd876fc2d829cc7a1cc545e9445364d43357d888bb3deeb36a716b805717";
     description = "Microsoft Azure Command-Line Tools Staticwebapp Extension";
   };
+  storage-actions = mkAzExtension rec {
+    pname = "storage-actions";
+    version = "1.0.0b1";
+    url = "https://azcliprod.blob.core.windows.net/cli-extensions/storage_actions-${version}-py3-none-any.whl";
+    sha256 = "07c5be256edbbe2c81d839e4c6d3d917a56b93921515028cf962393e1176331b";
+    description = "Microsoft Azure Command-Line Tools StorageActions Extension";
+  };
   storage-blob-preview = mkAzExtension rec {
     pname = "storage-blob-preview";
     version = "0.7.2";
@@ -911,9 +960,9 @@
   };
   support = mkAzExtension rec {
     pname = "support";
-    version = "1.0.3";
+    version = "2.0.0";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/support-${version}-py2.py3-none-any.whl";
-    sha256 = "9f5b4ebc6a90b48d2a3c18ce7b74d89240275dcf23aa836b8509882b1ee28c56";
+    sha256 = "5dde97f8fb12eaa258530f68ec2cae00a957f30479835e9f5ed057940312741a";
     description = "Microsoft Azure Command-Line Tools Support Extension";
   };
   timeseriesinsights = mkAzExtension rec {
@@ -925,16 +974,23 @@
   };
   traffic-collector = mkAzExtension rec {
     pname = "traffic-collector";
-    version = "0.1.2";
+    version = "0.1.3";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/traffic_collector-${version}-py3-none-any.whl";
-    sha256 = "98bda4d9a9233efb0ae1c5fae1a6c2a42942e8a71b0ebf19d3a7193548b13ff2";
+    sha256 = "a144a4fda3bce84db22277bd8611084ae1ae39e0bb8c7b50619ec378711f57ba";
     description = "Microsoft Azure Command-Line Tools TrafficCollector Extension";
   };
+  trustedsigning = mkAzExtension rec {
+    pname = "trustedsigning";
+    version = "1.0.0b2";
+    url = "https://azcliprod.blob.core.windows.net/cli-extensions/trustedsigning-${version}-py3-none-any.whl";
+    sha256 = "c3ae869c1371493180b9ed71db0bdc3842bad54c8832beb6007118d26bed71e8";
+    description = "Microsoft Azure Command-Line Tools Trustedsigning Extension";
+  };
   virtual-network-manager = mkAzExtension rec {
     pname = "virtual-network-manager";
-    version = "1.0.1";
+    version = "1.2.0";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/virtual_network_manager-${version}-py3-none-any.whl";
-    sha256 = "a18581c625791fb29736e7ec1b9e18d4a00f3765a8600192e10c892fd27b7ba1";
+    sha256 = "7f9f239fd7904645beacc2b738dd4660fb36779966e9b2331c43826e37564793";
     description = "Microsoft Azure Command-Line Tools NetworkManagementClient Extension";
   };
   virtual-network-tap = mkAzExtension rec {
@@ -946,16 +1002,16 @@
   };
   virtual-wan = mkAzExtension rec {
     pname = "virtual-wan";
-    version = "0.3.0";
+    version = "1.0.0";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/virtual_wan-${version}-py2.py3-none-any.whl";
-    sha256 = "e5f4e9d4398cf0fcd656c0107386adbc8493e69e3158af6c5145ed23aaf77165";
+    sha256 = "0ef7b4bf9ffd0aa1ad5c50e15a343276636bcfe0296e52d2ee5f0b75ce70633d";
     description = "Manage virtual WAN, hubs, VPN gateways and VPN sites";
   };
   vm-repair = mkAzExtension rec {
     pname = "vm-repair";
-    version = "1.0.0b1";
+    version = "1.0.5";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/vm_repair-${version}-py2.py3-none-any.whl";
-    sha256 = "7e6b9fb9952a56811d65de87b87b0403a6161edfa82284a43fa58f176e397b8b";
+    sha256 = "f2f7bc5698f89e0f6254464dc18d04d477dab4aab93296a46649018723855b26";
     description = "Auto repair commands to fix VMs";
   };
   vmware = mkAzExtension rec {
@@ -974,9 +1030,9 @@
   };
   workloads = mkAzExtension rec {
     pname = "workloads";
-    version = "0.1.0a1";
+    version = "1.1.0b1";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/workloads-${version}-py3-none-any.whl";
-    sha256 = "0e5ba95c3799d043fc2ba869ce0c5b2eea200357a8b0cbd2b2733bb91d4cc7a8";
+    sha256 = "262c41b08b831d689802634bb1a0fea0add38c3611f27b2036576d45232a1ff5";
     description = "Microsoft Azure Command-Line Tools Workloads Extension";
   };
 }
diff --git a/pkgs/tools/admin/azure-cli/extensions-manual.nix b/pkgs/tools/admin/azure-cli/extensions-manual.nix
index e69888b216b9f..6e098fb1f3cf8 100644
--- a/pkgs/tools/admin/azure-cli/extensions-manual.nix
+++ b/pkgs/tools/admin/azure-cli/extensions-manual.nix
@@ -1,4 +1,6 @@
-{ mkAzExtension
+{ lib
+, mkAzExtension
+, mycli
 , python3Packages
 }:
 
@@ -9,8 +11,26 @@
     url = "https://github.com/Azure/azure-devops-cli-extension/releases/download/20240206.1/azure_devops-${version}-py2.py3-none-any.whl";
     sha256 = "658a2854d8c80f874f9382d421fa45abf6a38d00334737dda006f8dec64cf70a";
     description = "Tools for managing Azure DevOps";
-    propagatedBuildInputs = with python3Packages; [
-      distro
+    propagatedBuildInputs = with python3Packages; [ distro ];
+  };
+
+  rdbms-connect = mkAzExtension rec {
+    pname = "rdbms-connect";
+    version = "1.0.6";
+    url = "https://azcliprod.blob.core.windows.net/cli-extensions/rdbms_connect-${version}-py2.py3-none-any.whl";
+    sha256 = "49cbe8d9b7ea07a8974a29ad90247e864ed798bed5f28d0e3a57a4b37f5939e7";
+    description = "Support for testing connection to Azure Database for MySQL & PostgreSQL servers";
+    propagatedBuildInputs = (with python3Packages; [
+      pgcli
+      psycopg2
+      pymysql
+      setproctitle
+    ]) ++ [
+      mycli
     ];
+    meta.maintainers = with lib.maintainers; [ obreitwi ];
   };
+
+  # Removed extensions
+  blockchain = throw "The 'blockchain' extension for azure-cli was deprecated upstream"; # Added 2024-04-26
 }
diff --git a/pkgs/tools/admin/azure-cli/python-packages.nix b/pkgs/tools/admin/azure-cli/python-packages.nix
index 1ec3b2d20c5a5..9fc836fb803b2 100644
--- a/pkgs/tools/admin/azure-cli/python-packages.nix
+++ b/pkgs/tools/admin/azure-cli/python-packages.nix
@@ -112,7 +112,7 @@ let
       azure-mgmt-batchai = overrideAzureMgmtPackage super.azure-mgmt-batchai "7.0.0b1" "zip" "sha256-mT6vvjWbq0RWQidugR229E8JeVEiobPD3XA/nDM3I6Y=";
       azure-mgmt-botservice = overrideAzureMgmtPackage super.azure-mgmt-botservice "2.0.0b3" "zip" "sha256-XZGQOeMw8usyQ1tl8j57fZ3uqLshomHY9jO/rbpQOvM=";
       azure-mgmt-cdn = overrideAzureMgmtPackage super.azure-mgmt-cdn "12.0.0" "zip" "sha256-t8PuIYkjS0r1Gs4pJJJ8X9cz8950imQtbVBABnyMnd0=";
-      azure-mgmt-compute = overrideAzureMgmtPackage super.azure-mgmt-compute "30.6.0" "tar.gz" "sha256-TYDXI+xtTLlYNhfr7AcW59dLJzKsuu0CPtLjzHBT0A4=";
+      azure-mgmt-compute = overrideAzureMgmtPackage super.azure-mgmt-compute "31.0.0" "tar.gz" "sha256-WlscT8GhnssCKhLe0b6LGxVfaXnQP7nvwEZC9gZkS78=";
       azure-mgmt-core = overrideAzureMgmtPackage super.azure-mgmt-core "1.3.2" "zip" "sha256-B/Sv6COlXXBLBI1h7f3BMYwFHtWfJEAyEmNQvpXp1QE=";
       azure-mgmt-datalake-store = overrideAzureMgmtPackage super.azure-mgmt-datalake-store "0.5.0" "zip" "sha256-k3bTVJVmHRn4rMVgT2ewvFlJOxg1u8SA+aGVL5ABekw=";
       azure-mgmt-devtestlabs = overrideAzureMgmtPackage super.azure-mgmt-devtestlabs "4.0.0" "zip" "sha256-WVScTEBo8mRmsQl7V0qOUJn7LNbIvgoAOVsG07KeJ40=";
@@ -131,16 +131,13 @@ let
       azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "10.1.0" "zip" "sha256-eJiWTOCk2C79Jotku9bKlu3vU6H8004hWrX+h76MjQM=";
       azure-mgmt-policyinsights = overrideAzureMgmtPackage super.azure-mgmt-policyinsights "1.1.0b4" "zip" "sha256-aB16xyrhNYHJeitvdCeV+kik21B2LC+5/OSDQIGwTpI=";
       azure-mgmt-privatedns = overrideAzureMgmtPackage super.azure-mgmt-privatedns "1.0.0" "zip" "sha256-tg8W5D97KRWCxfV7rhsIMJbYMD6dmVjiwpInpVzCfEU=";
-      azure-mgmt-rdbms = overrideAzureMgmtPackage super.azure-mgmt-rdbms "10.2.0b14" "tar.gz" "sha256-hfgSrWZKUJNU9CeAyETCrKWKxmCyk9kId8RYSNsKwBM=";
+      azure-mgmt-rdbms = overrideAzureMgmtPackage super.azure-mgmt-rdbms "10.2.0b16" "tar.gz" "sha256-HDktzv8MOs5VRQArbS3waMhjbwVgZMmvch7PXen5DjE=";
       azure-mgmt-recoveryservicesbackup = overrideAzureMgmtPackage super.azure-mgmt-recoveryservicesbackup "9.1.0" "tar.gz" "sha256-Hp/UBsDJ7iYn9aNx8BL4dzQvf8bzOyVk/NFNbwZjzQ8=";
       azure-mgmt-redis = overrideAzureMgmtPackage super.azure-mgmt-redis "14.3.0" "tar.gz" "sha256-eoMbY4oNzYXkn3uFUhxecJQD+BxYkGTbWhAWSgAoLyA=";
-      azure-mgmt-resource = overrideAzureMgmtPackage super.azure-mgmt-resource "23.1.0b2" "zip" "sha256-kMmiKVwjPgmsTIxxxDRNXE41jSTJkemnKhO+P/OcPZI=";
+      azure-mgmt-resource = overrideAzureMgmtPackage super.azure-mgmt-resource "23.1.1" "tar.gz" "sha256-ILawBrVE/bGWB/P2o4EQViXgu2D78wNvOYhcRkbTND4=";
       azure-mgmt-search = overrideAzureMgmtPackage super.azure-mgmt-search "9.0.0" "zip" "sha256-Gc+qoTa1EE4/YmJvUSqVG+zZ50wfohvWOe/fLJ/vgb0=";
-      azure-mgmt-security = overrideAzureMgmtPackage super.azure-mgmt-security "5.0.0" "zip" "sha256-OLA+/oLCNEzqID/alebQC3rCJ4L6HAtYXNDqLI/z5wI=";
-      azure-mgmt-servicefabric = (overrideAzureMgmtPackage super.azure-mgmt-servicefabric "1.0.0" "zip"
-        "sha256-3jXhF5EoMsGp6TEJqNJMq5T1VwOpCHsuscWwZVs7GRM=").overridePythonAttrs (attrs: {
-        propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ self.msrest self.msrestazure ];
-      });
+      azure-mgmt-security = overrideAzureMgmtPackage super.azure-mgmt-security "6.0.0" "tar.gz" "sha256-zq/BhpiZBnEQvYMMXMmLybjzLY6oQMofaTsaX1Kl+LA=";
+      azure-mgmt-servicefabric = overrideAzureMgmtPackage super.azure-mgmt-servicefabric "2.1.0" "tar.gz" "sha256-oIQzBJVUQ2yQhEvIqWgg6INplITm/8mQMv0lcfjF99Y=";
       azure-mgmt-servicelinker = overrideAzureMgmtPackage super.azure-mgmt-servicelinker "1.2.0b2" "tar.gz" "sha256-PpEFMM8ri9OgAa79dGhvPKy5YFfDZZustBUDieQrtZU=";
       azure-mgmt-signalr = overrideAzureMgmtPackage super.azure-mgmt-signalr "2.0.0b1" "tar.gz" "sha256-oK2ceBEoQ7gAeG6mye+x8HPzQU9bUNRPVJtRW2GL4xg=";
       azure-mgmt-sql = overrideAzureMgmtPackage super.azure-mgmt-sql "4.0.0b16" "tar.gz" "sha256-+6QKEROlbXe0oCj4qtB+r4/yCPZD4N+71e5Z1Z/zXV0=";
diff --git a/pkgs/tools/admin/balena-cli/default.nix b/pkgs/tools/admin/balena-cli/default.nix
index 5b45b78835f08..a2564a8d40b57 100644
--- a/pkgs/tools/admin/balena-cli/default.nix
+++ b/pkgs/tools/admin/balena-cli/default.nix
@@ -18,16 +18,16 @@ let
   };
 in buildNpmPackage' rec {
   pname = "balena-cli";
-  version = "18.2.3";
+  version = "18.2.4";
 
   src = fetchFromGitHub {
     owner = "balena-io";
     repo = "balena-cli";
     rev = "v${version}";
-    hash = "sha256-TjwiNQqGZbezZu3Ul5IIug5vVNhx1op+ZRXQlxnurVI=";
+    hash = "sha256-cn6H8dFRZDK/ye0zqS+BXQzlBPpSfdotrp+TuQZ1Hko=";
   };
 
-  npmDepsHash = "sha256-OQ8i76cKFbdEH6Fj41ifAeGyIMAACOgo7dMxByULJMk=";
+  npmDepsHash = "sha256-5ri/eb85MPzjBac20WFMiD2cBux4grIyjGflQMW66bQ=";
 
   postPatch = ''
     ln -s npm-shrinkwrap.json package-lock.json
@@ -58,7 +58,7 @@ in buildNpmPackage' rec {
   };
 
   meta = with lib; {
-    description = "A command line interface for balenaCloud or openBalena";
+    description = "Command line interface for balenaCloud or openBalena";
     longDescription = ''
       The balena CLI is a Command Line Interface for balenaCloud or openBalena. It is a software
       tool available for Windows, macOS and Linux, used through a command prompt / terminal window.
diff --git a/pkgs/tools/admin/berglas/default.nix b/pkgs/tools/admin/berglas/default.nix
index a10ce4d728116..363663af41339 100644
--- a/pkgs/tools/admin/berglas/default.nix
+++ b/pkgs/tools/admin/berglas/default.nix
@@ -53,7 +53,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A tool for managing secrets on Google Cloud";
+    description = "Tool for managing secrets on Google Cloud";
     homepage = "https://github.com/GoogleCloudPlatform/berglas";
     license = licenses.asl20;
     mainProgram = "berglas";
diff --git a/pkgs/tools/admin/bom/default.nix b/pkgs/tools/admin/bom/default.nix
index 0ff37c5d2e005..becef4d6468d6 100644
--- a/pkgs/tools/admin/bom/default.nix
+++ b/pkgs/tools/admin/bom/default.nix
@@ -62,7 +62,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/kubernetes-sigs/bom";
     changelog = "https://github.com/kubernetes-sigs/bom/releases/tag/v${version}";
-    description = "A utility to generate SPDX-compliant Bill of Materials manifests";
+    description = "Utility to generate SPDX-compliant Bill of Materials manifests";
     license = licenses.asl20;
     maintainers = with maintainers; [ developer-guy ];
     mainProgram = "bom";
diff --git a/pkgs/tools/admin/boulder/default.nix b/pkgs/tools/admin/boulder/default.nix
index c1acd8e1bf058..ec42a0679b3d6 100644
--- a/pkgs/tools/admin/boulder/default.nix
+++ b/pkgs/tools/admin/boulder/default.nix
@@ -87,7 +87,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/letsencrypt/boulder";
-    description = "An ACME-based certificate authority, written in Go";
+    description = "ACME-based certificate authority, written in Go";
     longDescription = ''
       This is an implementation of an ACME-based CA. The ACME protocol allows
       the CA to automatically verify that an applicant for a certificate
diff --git a/pkgs/tools/admin/certigo/default.nix b/pkgs/tools/admin/certigo/default.nix
index 6a98bfc89e652..aec517a20fe4b 100644
--- a/pkgs/tools/admin/certigo/default.nix
+++ b/pkgs/tools/admin/certigo/default.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
   vendorHash = "sha256-G9YpMF4qyL8eJPnai81ihVTDK9E4meKxdpk+rjISnIM=";
 
   meta = with lib; {
-    description = "A utility to examine and validate certificates in a variety of formats";
+    description = "Utility to examine and validate certificates in a variety of formats";
     homepage = "https://github.com/square/certigo";
     license = licenses.asl20;
     maintainers = [ ];
diff --git a/pkgs/tools/admin/chkcrontab/default.nix b/pkgs/tools/admin/chkcrontab/default.nix
index e8133ae65d2f4..c423934babf24 100644
--- a/pkgs/tools/admin/chkcrontab/default.nix
+++ b/pkgs/tools/admin/chkcrontab/default.nix
@@ -12,7 +12,7 @@ buildPythonApplication rec {
   };
 
   meta = with lib; {
-    description = "A tool to detect crontab errors";
+    description = "Tool to detect crontab errors";
     mainProgram = "chkcrontab";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/tools/admin/coldsnap/default.nix b/pkgs/tools/admin/coldsnap/default.nix
index 2b54e5d7172fc..b8b66fb66cf00 100644
--- a/pkgs/tools/admin/coldsnap/default.nix
+++ b/pkgs/tools/admin/coldsnap/default.nix
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/awslabs/coldsnap";
-    description = "A command line interface for Amazon EBS snapshots";
+    description = "Command line interface for Amazon EBS snapshots";
     changelog = "https://github.com/awslabs/coldsnap/blob/${src.rev}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = teams.determinatesystems.members;
diff --git a/pkgs/tools/admin/colmena/default.nix b/pkgs/tools/admin/colmena/default.nix
index b41b8a1457c5e..57cd7e88eba1d 100644
--- a/pkgs/tools/admin/colmena/default.nix
+++ b/pkgs/tools/admin/colmena/default.nix
@@ -38,7 +38,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A simple, stateless NixOS deployment tool";
+    description = "Simple, stateless NixOS deployment tool";
     homepage = "https://colmena.cli.rs/${passthru.apiVersion}";
     license = licenses.mit;
     maintainers = with maintainers; [ zhaofengli ];
diff --git a/pkgs/tools/admin/credhub-cli/default.nix b/pkgs/tools/admin/credhub-cli/default.nix
index 899b37e123954..db8bddcb9b1df 100644
--- a/pkgs/tools/admin/credhub-cli/default.nix
+++ b/pkgs/tools/admin/credhub-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "credhub-cli";
-  version = "2.9.29";
+  version = "2.9.31";
 
   src = fetchFromGitHub {
     owner = "cloudfoundry-incubator";
     repo = "credhub-cli";
     rev = version;
-    sha256 = "sha256-6icF+Dg4IdCjeqcX058aewj702oCoch6VYqgdCVPoNc=";
+    sha256 = "sha256-pE+Xw5BuE+xJK7EkwB3nAy0w7PDVYApck+VHZ9O6Ua4=";
   };
 
   # these tests require network access that we're not going to give them
diff --git a/pkgs/tools/admin/cw/default.nix b/pkgs/tools/admin/cw/default.nix
index aa1d58e5156ba..4fb987abd5e69 100644
--- a/pkgs/tools/admin/cw/default.nix
+++ b/pkgs/tools/admin/cw/default.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
   vendorHash = "sha256-8L4q0IAvmNk5GCAC5agNfWFtokIkddO1Dec4m6/sWfg=";
 
   meta = with lib; {
-    description = "The best way to tail AWS CloudWatch Logs from your terminal";
+    description = "Best way to tail AWS CloudWatch Logs from your terminal";
     homepage = "https://github.com/lucagrulla/cw";
     license = licenses.asl20;
     maintainers = with maintainers; [ onthestairs ];
diff --git a/pkgs/tools/admin/daemontools/default.nix b/pkgs/tools/admin/daemontools/default.nix
index 07830d6fe6872..491a03bb81e2b 100644
--- a/pkgs/tools/admin/daemontools/default.nix
+++ b/pkgs/tools/admin/daemontools/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
   meta = {
     license = lib.licenses.publicDomain;
     homepage = "https://cr.yp.to/daemontools.html";
-    description = "A collection of tools for managing UNIX services";
+    description = "Collection of tools for managing UNIX services";
 
     maintainers = with lib.maintainers; [ kevincox ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/tools/admin/damon/default.nix b/pkgs/tools/admin/damon/default.nix
index 861b86985e04a..f64926d16b7be 100644
--- a/pkgs/tools/admin/damon/default.nix
+++ b/pkgs/tools/admin/damon/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/hashicorp/damon";
     license = licenses.mpl20;
-    description = "A terminal UI (TUI) for HashiCorp Nomad";
+    description = "Terminal UI (TUI) for HashiCorp Nomad";
     maintainers = teams.iog.members;
     mainProgram = "damon";
   };
diff --git a/pkgs/tools/admin/drawterm/default.nix b/pkgs/tools/admin/drawterm/default.nix
index dacf5155b321e..74a951f74acfa 100644
--- a/pkgs/tools/admin/drawterm/default.nix
+++ b/pkgs/tools/admin/drawterm/default.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation {
   pname = "drawterm";
-  version = "0-unstable-2024-04-23";
+  version = "0-unstable-2024-05-23";
 
   src = fetchFrom9Front {
     owner = "plan9front";
     repo = "drawterm";
-    rev = "c0951f2a3182d8b70ffe579bfd9da24c2b86e232";
-    hash = "sha256-7y2Mte6R4yeayxdFSFGb9Q5M/GQwqyFb+AW/BFsQeZc=";
+    rev = "8391a9e364622cb7d85e128b427fb96c75e18265";
+    hash = "sha256-YHko0lCCn7SydnKbepZpt4Ua6NdvuPD3Y3ZQ1Ysb0+g=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/tools/admin/ejson2env/default.nix b/pkgs/tools/admin/ejson2env/default.nix
index 9675d37756815..784d32b20c457 100644
--- a/pkgs/tools/admin/ejson2env/default.nix
+++ b/pkgs/tools/admin/ejson2env/default.nix
@@ -1,17 +1,17 @@
-{ lib, buildGoModule, fetchFromGitHub, nix-update-script }:
+{ lib, buildGoModule, fetchFromGitHub, nix-update-script, testers, callPackage, ejson2env }:
 
 buildGoModule rec {
   pname = "ejson2env";
-  version = "2.0.5";
+  version = "2.0.6";
 
   src = fetchFromGitHub {
     owner = "Shopify";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-HcUmFajbOUZ0T5Th6OA9WBtfTz646qLbXx8NVeJsVng=";
+    sha256 = "sha256-VXkWmmX+4D+j9ODSEeJJbIx+Bfni9d2X22BFQIe4kwk=";
   };
 
-  vendorHash = "sha256-agWcD8vFNde1SCdkRovMNPf+1KODxV8wW1mXvE0w/CI=";
+  vendorHash = "sha256-7oy8bCegsvv35zyo2aTFMSGZMFkArmxy0rOpK6WlubI=";
 
   ldflags = [
     "-s"
@@ -19,7 +19,13 @@ buildGoModule rec {
     "-X main.version=${version}"
   ];
 
-  passthru.updateScript = nix-update-script { };
+  passthru = {
+    updateScript = nix-update-script { };
+    tests = {
+      version = testers.testVersion { package = ejson2env; };
+      decryption = callPackage ./test-decryption.nix {};
+    };
+  };
 
   meta = with lib; {
     description = "Decrypt EJSON secrets and export them as environment variables";
diff --git a/pkgs/tools/admin/ejson2env/test-decryption.nix b/pkgs/tools/admin/ejson2env/test-decryption.nix
new file mode 100644
index 0000000000000..d4402a68f9d69
--- /dev/null
+++ b/pkgs/tools/admin/ejson2env/test-decryption.nix
@@ -0,0 +1,19 @@
+{ ejson2env, runCommand }:
+runCommand "check-ejson2env.sh" {
+  nativeBuildInputs = [ ejson2env ];
+} ''
+  cat > $TMP/abc.ejson <<EOF
+    {
+      "_public_key": "349a0e027725db0693cf0505344c5104807d38fb398cd4597029dccc8d0d8711",
+      "environment": {
+        "foo": "EJ[1:7oqIDkyXLro12rcrg7/psjK5Qcfuw5FRquvfBaRUBic=:OTtncVl0wT4U6UWdxoaCGBRnM2WzGnV3:1FiIgHYT5U6MjFN8IUU83T1fzQ==]"
+      }
+    }
+EOF
+  response="$(echo "ff34961809e9d7a0ae20b9d09e5d8630c8d4924cef19cdb5385916b9be019954" | ejson2env --key-from-stdin $TMP/abc.ejson)"
+  if [[ "$response" != "export foo=bar" ]]; then
+    echo "test file not decrypted correctly"
+    exit 1
+  fi
+  touch $out
+''
diff --git a/pkgs/tools/admin/fastlane/default.nix b/pkgs/tools/admin/fastlane/default.nix
index a34429d657caa..16c668a268a54 100644
--- a/pkgs/tools/admin/fastlane/default.nix
+++ b/pkgs/tools/admin/fastlane/default.nix
@@ -14,7 +14,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "fastlane";
 
   meta = with lib; {
-    description = "A tool to automate building and releasing iOS and Android apps";
+    description = "Tool to automate building and releasing iOS and Android apps";
     longDescription = "fastlane is a tool for iOS and Android developers to automate tedious tasks like generating screenshots, dealing with provisioning profiles, and releasing your application.";
     homepage = "https://fastlane.tools/";
     license = licenses.mit;
diff --git a/pkgs/tools/admin/fioctl/default.nix b/pkgs/tools/admin/fioctl/default.nix
index e384f38f64991..cf62b76f9ba46 100644
--- a/pkgs/tools/admin/fioctl/default.nix
+++ b/pkgs/tools/admin/fioctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "fioctl";
-  version = "0.41";
+  version = "0.42";
 
   src = fetchFromGitHub {
     owner = "foundriesio";
     repo = "fioctl";
     rev = "v${version}";
-    sha256 = "sha256-N+bLW1Gf0lr5FKgd1lr84HVrhdjB+npaeS3nzYXoVl0=";
+    sha256 = "sha256-UqUr57D5nZh+zanzCmxujLbA8eICKx0NUlP78YH8x/Q=";
   };
 
-  vendorHash = "sha256-cu1TwCWdDQi2ZR96SvEeH/LIP7sZOVZoly3VczKZfRw=";
+  vendorHash = "sha256-A5buz9JOAiXx9X4qmi7mTMJiy/E6XBaFlG/sXOG5AKw=";
 
   ldflags = [
     "-s" "-w"
@@ -34,7 +34,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A simple CLI to manage your Foundries Factory";
+    description = "Simple CLI to manage your Foundries Factory";
     homepage = "https://github.com/foundriesio/fioctl";
     license = licenses.asl20;
     maintainers = with maintainers; [ nixinator matthewcroughan ];
diff --git a/pkgs/tools/admin/fits-cloudctl/default.nix b/pkgs/tools/admin/fits-cloudctl/default.nix
index 1cc452f6762e9..84cf2ff08d574 100644
--- a/pkgs/tools/admin/fits-cloudctl/default.nix
+++ b/pkgs/tools/admin/fits-cloudctl/default.nix
@@ -5,8 +5,8 @@
 
 buildGoModule rec {
   pname = "fits-cloudctl";
-  version = "0.12.19"; # also update these 3 vars:
-  gitversion = "tags/v0.12.19-0-g0a0d89a"; # git describe --long --all
+  version = "0.12.20"; # also update these 3 vars:
+  gitversion = "tags/v0.12.20-0-g0a0d89a"; # git describe --long --all
   gitsha = "0a0d89a8";                     # git rev-parse --short=8 HEAD
   gittime = "2024-05-15T17:34:46+02:00";   # date --iso-8601=seconds
 
@@ -14,10 +14,10 @@ buildGoModule rec {
     owner = "fi-ts";
     repo = "cloudctl";
     rev = "v${version}";
-    hash = "sha256-4R+wBjlCjk/7/iucC3zptrQ5D5wtQeqdeyfJ1DiFusY=";
+    hash = "sha256-WDqdp9E9O6nzwLJNwljV2FcgTqdEVVRppOeNxrSrBv8=";
   };
 
-  vendorHash = "sha256-mK10DxDUrEkCdumq6MM6h7B8C8P1hGE466ko3yj1kto=";
+  vendorHash = "sha256-18iCTv0H9X3IccWsTD44qEEt9nXnq/En5zoqEwkC8Bs=";
 
   ldflags = [
     "-X github.com/metal-stack/v.Version=${version}"
diff --git a/pkgs/tools/admin/gimme-aws-creds/default.nix b/pkgs/tools/admin/gimme-aws-creds/default.nix
index b2ac36ef51f1e..3b1a334c6be22 100644
--- a/pkgs/tools/admin/gimme-aws-creds/default.nix
+++ b/pkgs/tools/admin/gimme-aws-creds/default.nix
@@ -94,7 +94,7 @@ python.pkgs.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/Nike-Inc/gimme-aws-creds";
     changelog = "https://github.com/Nike-Inc/gimme-aws-creds/releases";
-    description = "A CLI that utilizes Okta IdP via SAML to acquire temporary AWS credentials";
+    description = "CLI that utilizes Okta IdP via SAML to acquire temporary AWS credentials";
     mainProgram = "gimme-aws-creds";
     license = licenses.asl20;
     maintainers = with maintainers; [ jbgosselin ];
diff --git a/pkgs/tools/admin/google-cloud-sdk/components.json b/pkgs/tools/admin/google-cloud-sdk/components.json
index 25154deed587c..b15934f1e8753 100644
--- a/pkgs/tools/admin/google-cloud-sdk/components.json
+++ b/pkgs/tools/admin/google-cloud-sdk/components.json
@@ -5,7 +5,7 @@
         "checksum": "5a65179c291bc480696ca323d2f8c4874985458303eff8f233e16cdca4e88e6f",
         "contents_checksum": "038c999c7a7d70d5133eab7dc5868c4c3d0358431dad250f9833306af63016c8",
         "size": 800,
-        "source": "components/google-cloud-sdk-alpha-20240503145345.tar.gz",
+        "source": "components/google-cloud-sdk-alpha-20240524155722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -22,8 +22,8 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20240503145345,
-        "version_string": "2024.05.03"
+        "build_number": 20240524155722,
+        "version_string": "2024.05.24"
       }
     },
     {
@@ -258,15 +258,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "0.2.48"
+        "version_string": "0.2.51"
       }
     },
     {
       "data": {
-        "checksum": "4072c0c3b3d6f40c5ca5969cf4ce3d530d45cb260b0ccea3d40099504307b7f4",
-        "contents_checksum": "0a6d7ed6b3073e8da7569f723fa6dd1c9907f0d270228dd02d16c9d1900089f7",
-        "size": 70276185,
-        "source": "components/google-cloud-sdk-anthoscli-darwin-arm-20240209195330.tar.gz",
+        "checksum": "e1541d0f19866acd7f02ba9b730cd8baa79927214f51586785d22bd6dd9d96d0",
+        "contents_checksum": "37b07e4ab5884c8fc3163cf3f868b04de6b8fa65391d3f677f4638ed67bc6989",
+        "size": 70641868,
+        "source": "components/google-cloud-sdk-anthoscli-darwin-arm-20240510142152.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -290,16 +290,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20240209195330,
-        "version_string": "0.2.48"
+        "build_number": 20240510142152,
+        "version_string": "0.2.51"
       }
     },
     {
       "data": {
-        "checksum": "6d8ae30ff42cbd2549a77dd9b4542f1d6bd444adf7a9c1166a8688ca7a2f96da",
-        "contents_checksum": "f6d26cbd246d289b9a5f6df50adc8a7179b98358dee21873f71283384cd260f5",
-        "size": 73173000,
-        "source": "components/google-cloud-sdk-anthoscli-darwin-x86-20240209195330.tar.gz",
+        "checksum": "a79426a22ede74645a49f4f6ea2ead54f4bbb978d297507f0a9cc827aca74d4a",
+        "contents_checksum": "9cc851b3b90a0148b2136d673ef3750a16337270ec8850f6ce5678975058a9d5",
+        "size": 74278294,
+        "source": "components/google-cloud-sdk-anthoscli-darwin-x86-20240510142152.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -323,16 +323,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20240209195330,
-        "version_string": "0.2.48"
+        "build_number": 20240510142152,
+        "version_string": "0.2.51"
       }
     },
     {
       "data": {
-        "checksum": "5aa411f1acee57507bd5ed78b9370ddc47b07ed7a97c551677c5847211ca9d12",
-        "contents_checksum": "f6d26cbd246d289b9a5f6df50adc8a7179b98358dee21873f71283384cd260f5",
-        "size": 73173003,
-        "source": "components/google-cloud-sdk-anthoscli-darwin-x86_64-20240209195330.tar.gz",
+        "checksum": "e0f65a9d0bcc4051d1cba885e4693ba002d868e8adcbfe860489836754db371c",
+        "contents_checksum": "9cc851b3b90a0148b2136d673ef3750a16337270ec8850f6ce5678975058a9d5",
+        "size": 74278297,
+        "source": "components/google-cloud-sdk-anthoscli-darwin-x86_64-20240510142152.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -356,16 +356,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20240209195330,
-        "version_string": "0.2.48"
+        "build_number": 20240510142152,
+        "version_string": "0.2.51"
       }
     },
     {
       "data": {
-        "checksum": "132825b8e3d349181132c31f6a9d3789997eaf733e79b49e6207315a00b21592",
-        "contents_checksum": "32d0ae794185fd24adaecc5b1c31715f600afbb70f079546fdaa3c22a0a18823",
-        "size": 67454849,
-        "source": "components/google-cloud-sdk-anthoscli-linux-arm-20240209195330.tar.gz",
+        "checksum": "a2a7bc2c5b398f38b611b9fb7f4cea1fdfc9a730c27812423fadf76302536ecd",
+        "contents_checksum": "5ebfe3a26d5efed23f391e280010b1162a11e75b9b8369ae3c82980bd0dec1dd",
+        "size": 67807780,
+        "source": "components/google-cloud-sdk-anthoscli-linux-arm-20240510142152.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -389,16 +389,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20240209195330,
-        "version_string": "0.2.48"
+        "build_number": 20240510142152,
+        "version_string": "0.2.51"
       }
     },
     {
       "data": {
-        "checksum": "f6451b9ed3b68042a5a58d5fa7d5281ac729291c3380733bb58e7fb4495339c5",
-        "contents_checksum": "1d0815760f9ee60b2837a16837c5550cffe144de6ff6d766521f553584dcccea",
-        "size": 65536636,
-        "source": "components/google-cloud-sdk-anthoscli-linux-x86-20240209195330.tar.gz",
+        "checksum": "fc5bcbc677a7066d48686c2fc8962172f56f2795378b5b95b65342246a3e550a",
+        "contents_checksum": "0795a21686a22fc15bf78e6055ae1a64aa98f0309baec8ad3f6bad75aade8f60",
+        "size": 65502037,
+        "source": "components/google-cloud-sdk-anthoscli-linux-x86-20240510142152.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -422,16 +422,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20240209195330,
-        "version_string": "0.2.48"
+        "build_number": 20240510142152,
+        "version_string": "0.2.51"
       }
     },
     {
       "data": {
-        "checksum": "353c04a84703c0a507ce095bdd2dae814b464a8d11273b29b517894815232707",
-        "contents_checksum": "5c444bb3875fe95e3b4e961a425c30d0d664c18a8f61eaf82935b041bfc0e637",
-        "size": 72231225,
-        "source": "components/google-cloud-sdk-anthoscli-linux-x86_64-20240209195330.tar.gz",
+        "checksum": "812d5fbea1d143efc81bb692e0868532a97f9a670043498961345c6a3bc2ebb8",
+        "contents_checksum": "6f1752f2e2fd0f524b35f6087029c44a7a4d1dca7fdd40de9cf375603eea3b0f",
+        "size": 72538768,
+        "source": "components/google-cloud-sdk-anthoscli-linux-x86_64-20240510142152.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -455,16 +455,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20240209195330,
-        "version_string": "0.2.48"
+        "build_number": 20240510142152,
+        "version_string": "0.2.51"
       }
     },
     {
       "data": {
-        "checksum": "dddd7a0af6168ce4f23dd26010f15232972c3c7ce134c7677605f81316bd9ef7",
-        "contents_checksum": "2f06c8d0090fdb54381888b0bcd66e8849c5c0e87a303a76bab56ab0a31c8bfd",
-        "size": 67482145,
-        "source": "components/google-cloud-sdk-anthoscli-windows-x86-20240209195330.tar.gz",
+        "checksum": "45f187c48434cae0b00da5c210480e607bbf187f43a40b66683b47e19bbb373b",
+        "contents_checksum": "e160ef2c6526ad052dfa619298d44383c7f7502392a92b38929521a9ca858630",
+        "size": 67424078,
+        "source": "components/google-cloud-sdk-anthoscli-windows-x86-20240510142152.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -488,16 +488,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20240209195330,
-        "version_string": "0.2.48"
+        "build_number": 20240510142152,
+        "version_string": "0.2.51"
       }
     },
     {
       "data": {
-        "checksum": "d4fd88249c1cc7a91a63ea9c1142b14c82d1c9c022d0302f0cd981963601c41d",
-        "contents_checksum": "a69fc1bacbf484cc8034c3eae2cb5479797c9db41461bef73cda18a96e26d672",
-        "size": 72854116,
-        "source": "components/google-cloud-sdk-anthoscli-windows-x86_64-20240209195330.tar.gz",
+        "checksum": "cb5f588dffbb5d629588ea15e6fb44536a477c6bf55c5ae02a0a4ef65f1e433a",
+        "contents_checksum": "c5ce5039556b91366d6ed1e35aeb57b796f0b73c135ac29178ee615e43805209",
+        "size": 73168252,
+        "source": "components/google-cloud-sdk-anthoscli-windows-x86_64-20240510142152.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -521,8 +521,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20240209195330,
-        "version_string": "0.2.48"
+        "build_number": 20240510142152,
+        "version_string": "0.2.51"
       }
     },
     {
@@ -1020,10 +1020,10 @@
     },
     {
       "data": {
-        "checksum": "8d48814998e693aad877ddac4e1cc9c16b107898eda5e1e8fde6f677968a121c",
-        "contents_checksum": "b6d38276b7131e073deaff71ecdb3b994fd4a4bdfc4a9a2b2e64cff35884ad49",
-        "size": 132375338,
-        "source": "components/google-cloud-sdk-app-engine-java-20240329151455.tar.gz",
+        "checksum": "b1609ab7b619594661f457a0e58e3f72be94dfee7686af3bf1480a9804a1364d",
+        "contents_checksum": "582e30d1bd5e7d63b92f565111424585ab69af8da8d75ed2bc738d033c4f0600",
+        "size": 133086961,
+        "source": "components/google-cloud-sdk-app-engine-java-20240510142152.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1041,8 +1041,8 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20240329151455,
-        "version_string": "2.0.26"
+        "build_number": 20240510142152,
+        "version_string": "2.0.27"
       }
     },
     {
@@ -1432,7 +1432,7 @@
         "checksum": "707d412854a14450b4fddee199d258e75946fe51b44eb2980c8cd7e274c15760",
         "contents_checksum": "0b4e9d8e6394dc841aece07ca4da91920a460cbd7ec22495be4a2b4f46635b4d",
         "size": 797,
-        "source": "components/google-cloud-sdk-beta-20240503145345.tar.gz",
+        "source": "components/google-cloud-sdk-beta-20240524155722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1449,8 +1449,8 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20240503145345,
-        "version_string": "2024.05.03"
+        "build_number": 20240524155722,
+        "version_string": "2024.05.24"
       }
     },
     {
@@ -1765,10 +1765,10 @@
     },
     {
       "data": {
-        "checksum": "a99ddbb8738b92fb9e899fdcd81b8f6ff10499ae301d4c5660de756d5c689046",
-        "contents_checksum": "c2012e29e4fe8f14dacb252272e0953ea0618df9f9182bb6405eb7bcbab5af96",
-        "size": 1746678,
-        "source": "components/google-cloud-sdk-bq-20240412130805.tar.gz",
+        "checksum": "cde4e71a348b97ed7da266d97745519c70c806793d3495b5f14d9b5062a73384",
+        "contents_checksum": "ce776833b9b7645c4e36ba6a5df015e90c8d8976d6c7bf18a5b6281f81ee015d",
+        "size": 1789662,
+        "source": "components/google-cloud-sdk-bq-20240524155722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1787,8 +1787,8 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20240412130805,
-        "version_string": "2.1.4"
+        "build_number": 20240524155722,
+        "version_string": "2.1.5"
       }
     },
     {
@@ -2014,10 +2014,10 @@
     },
     {
       "data": {
-        "checksum": "e0819134f743b2524add92d5ed3bfff5e4098dfd5d77944ef1a8f95a14fe02ee",
-        "contents_checksum": "3969f4cfb146659adf2d3b34dfe6e0a3b471317db2512ff3c1523b809b5ad765",
-        "size": 78486918,
-        "source": "components/google-cloud-sdk-bundled-python3-unix-linux-x86_64-20240229170130.tar.gz",
+        "checksum": "400089c6607993c7b9e5f06616208e592a3a9892589e8c10167f70bfabdb5a2b",
+        "contents_checksum": "e147b6037ab53942f556f7914ce786005473f41d8b98c24b2d2ab9342e366b31",
+        "size": 78697278,
+        "source": "components/google-cloud-sdk-bundled-python3-unix-linux-x86_64-20240510142152.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2042,7 +2042,7 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20240229170130,
+        "build_number": 20240510142152,
         "version_string": "3.11.8"
       }
     },
@@ -2148,15 +2148,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "1.19.0"
+        "version_string": "1.20.0"
       }
     },
     {
       "data": {
-        "checksum": "afa1887247d8c5eb0ab71127767c289267f5742702e07827d4c856249efc3753",
-        "contents_checksum": "c2239a7e4967b5c0ab0a3bf09328d269a444b06dfab5617879f29ec94bbde352",
-        "size": 17509814,
-        "source": "components/google-cloud-sdk-cbt-darwin-arm-20240329151455.tar.gz",
+        "checksum": "d5cbe5833410e7311827444000ca564d8bbe608a1a2e647245ba3d36bf0c2f8f",
+        "contents_checksum": "96989a9ef3161e0b0b694c7fd66620fd40c12acb8de95f539f57ddcbe0cbd4a4",
+        "size": 17893438,
+        "source": "components/google-cloud-sdk-cbt-darwin-arm-20240510142152.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2180,8 +2180,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20240329151455,
-        "version_string": "1.19.0"
+        "build_number": 20240510142152,
+        "version_string": "1.20.0"
       }
     },
     {
@@ -2219,10 +2219,10 @@
     },
     {
       "data": {
-        "checksum": "1fc383dfab3e4c99969d05b939620349fadd115124cfcfd7e6d5c8853718f7cf",
-        "contents_checksum": "76b3bc91860334a7263fbad820ac8ac2db54ca773568aafb86e9221e717e24d3",
-        "size": 18273086,
-        "source": "components/google-cloud-sdk-cbt-darwin-x86_64-20240329151455.tar.gz",
+        "checksum": "cd3facd4c0e16eac188743379a6d967bfdb93d7bf169bdce8239323663b7b048",
+        "contents_checksum": "a3ae695ae36042223c03c6e0cff6a153f20cc9635da83c270d1008f1e65c2f55",
+        "size": 18664476,
+        "source": "components/google-cloud-sdk-cbt-darwin-x86_64-20240510142152.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2246,16 +2246,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20240329151455,
-        "version_string": "1.19.0"
+        "build_number": 20240510142152,
+        "version_string": "1.20.0"
       }
     },
     {
       "data": {
-        "checksum": "2ea8a9dfff13f06b8498622b7b4a13488749dc4ac1560728f3df9fe63537df88",
-        "contents_checksum": "f70c2888bdb2efec1afe421edc65bef9c356fec3b09a5cc0c4650409dca303f2",
-        "size": 17062983,
-        "source": "components/google-cloud-sdk-cbt-linux-arm-20240329151455.tar.gz",
+        "checksum": "f3ca11891da580532e6aa4598d8fbde08f761b950636ce48094f738f5bdfdbc9",
+        "contents_checksum": "e2dd27cc276256584d33c02f81c71b078eba398e57802f534b42bd5b9be09a08",
+        "size": 17422248,
+        "source": "components/google-cloud-sdk-cbt-linux-arm-20240510142152.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2279,16 +2279,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20240329151455,
-        "version_string": "1.19.0"
+        "build_number": 20240510142152,
+        "version_string": "1.20.0"
       }
     },
     {
       "data": {
-        "checksum": "25ffea5b8d4a13120cbff9cdeee10759f0149f522efa3b090de7e49fcfe44ca4",
-        "contents_checksum": "73be18b59b731a6c2aca12e254c0248039ee0b4d3f460198f84842a9753286c9",
-        "size": 16860591,
-        "source": "components/google-cloud-sdk-cbt-linux-x86-20240329151455.tar.gz",
+        "checksum": "57696fc6c79eaf43af572ea73a7fd2de8ec37f49e739ff2b4dfcc03dbf5b5911",
+        "contents_checksum": "8c219444eccd9a4dab443586df961def13e95449e2e225e5e3d27d04124358fb",
+        "size": 17237577,
+        "source": "components/google-cloud-sdk-cbt-linux-x86-20240510142152.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2312,16 +2312,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20240329151455,
-        "version_string": "1.19.0"
+        "build_number": 20240510142152,
+        "version_string": "1.20.0"
       }
     },
     {
       "data": {
-        "checksum": "0e5a55bd053d76d9f22223728241e1a0ca89b36661a7e886250de942da8afd76",
-        "contents_checksum": "fb9e07d468b2d3043632c4b1ace676cc503e5e5efa5b8c3a757f1725cb142dbc",
-        "size": 18166629,
-        "source": "components/google-cloud-sdk-cbt-linux-x86_64-20240329151455.tar.gz",
+        "checksum": "50325cf8742e4c14c1ec11d57f9e9e0fbb7eaee2bd3474b1deb0bb6ed146a676",
+        "contents_checksum": "d464a3b284972bf15830d964b89a9c1ddc6c6e19b6e8c4b93470f4fdca1f78ab",
+        "size": 18566977,
+        "source": "components/google-cloud-sdk-cbt-linux-x86_64-20240510142152.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2345,16 +2345,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20240329151455,
-        "version_string": "1.19.0"
+        "build_number": 20240510142152,
+        "version_string": "1.20.0"
       }
     },
     {
       "data": {
-        "checksum": "b6b9ad0a151bcddc67829349ed03f18b21598b6ced116eb721947acabe4cae10",
-        "contents_checksum": "13b82fdff12b1385cdf3fc71da26f449c2668cf45fff1d0fb76d3c9b9992a64c",
-        "size": 17268775,
-        "source": "components/google-cloud-sdk-cbt-windows-x86-20240329151455.tar.gz",
+        "checksum": "1ac8348cea516de3639d37942f8b9fe4fc7a128431ab82f8b53f0a1ba36fdc75",
+        "contents_checksum": "9b7a21e015629f59cd3c1c5965c2773a2f078888792f100b05458b9c68b650b1",
+        "size": 17660232,
+        "source": "components/google-cloud-sdk-cbt-windows-x86-20240510142152.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2378,16 +2378,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20240329151455,
-        "version_string": "1.19.0"
+        "build_number": 20240510142152,
+        "version_string": "1.20.0"
       }
     },
     {
       "data": {
-        "checksum": "ba26da1afb70320e7faeecd5f0378b3d9e16dd7e51091c373c79a53d1fb0fde4",
-        "contents_checksum": "492d56556efb6c662c8702d66dc4b48e837de0112fc1e949ea7e24671eee5840",
-        "size": 18413114,
-        "source": "components/google-cloud-sdk-cbt-windows-x86_64-20240329151455.tar.gz",
+        "checksum": "601cd2b70e0db9a8a8fcc8120bc0ecf79b6a896087e994a2e343f7db2505d2e7",
+        "contents_checksum": "287f76af634352c8d9e8ed3648268b58f2341c82d83bdd82c8715d45ad9e6954",
+        "size": 18828246,
+        "source": "components/google-cloud-sdk-cbt-windows-x86_64-20240510142152.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2411,8 +2411,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20240329151455,
-        "version_string": "1.19.0"
+        "build_number": 20240510142152,
+        "version_string": "1.20.0"
       }
     },
     {
@@ -2572,10 +2572,10 @@
     },
     {
       "data": {
-        "checksum": "93285cbe088cafc8d3761476b276be1c19a3718ac4545692ece4e6cc147deed8",
-        "contents_checksum": "fe301599250d79f91f06cfdf570fa5815c82414d322d085b1fa47a364bf7ae12",
-        "size": 47265060,
-        "source": "components/google-cloud-sdk-cloud-firestore-emulator-20240503145345.tar.gz",
+        "checksum": "0f7a96ab1d83ba0e4f53149c6cfc555dfd80be065a4ca966b101feb27fd2061a",
+        "contents_checksum": "2a20a45ed2b832217af8be6ab9155a3aa718ae60eed21acc19a93aee536884f6",
+        "size": 47379482,
+        "source": "components/google-cloud-sdk-cloud-firestore-emulator-20240524155722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2592,8 +2592,8 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20240503145345,
-        "version_string": "1.19.6"
+        "build_number": 20240524155722,
+        "version_string": "1.19.7"
       }
     },
     {
@@ -2818,15 +2818,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "1.5.16"
+        "version_string": "1.5.18"
       }
     },
     {
       "data": {
-        "checksum": "555c0b4202082b7e94bc9d910460b4f28d2ea6ebf4d51a58825d244331961f84",
-        "contents_checksum": "e0ad5cac6f972f24e4390fd7d9d54420bc7432ecdcb9c21a299a07ecb893d8cd",
-        "size": 38255843,
-        "source": "components/google-cloud-sdk-cloud-spanner-emulator-linux-x86_64-20240426154730.tar.gz",
+        "checksum": "23a3bc38e7f0a1df5526c64eaa8e5e210ed7d87e547396eb76b40cfc4b501389",
+        "contents_checksum": "6553bbd9db825db5ba50a1141e59303417f4f019780a899eb4217a4ef083b476",
+        "size": 38325669,
+        "source": "components/google-cloud-sdk-cloud-spanner-emulator-linux-x86_64-20240517151541.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2851,8 +2851,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20240426154730,
-        "version_string": "1.5.16"
+        "build_number": 20240517151541,
+        "version_string": "1.5.18"
       }
     },
     {
@@ -3419,15 +3419,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "1.93.0"
+        "version_string": "1.118.1"
       }
     },
     {
       "data": {
-        "checksum": "dd20420980225726c0bb881fdcfb935bf8d25aad84f0bb315e4d5b0ce51cf0fa",
-        "contents_checksum": "8dc4d4419a866c0aaa33fd0d4e0fde885aa926dcf9b8025a580e060b916ca599",
-        "size": 58308273,
-        "source": "components/google-cloud-sdk-config-connector-darwin-arm-20220912133630.tar.gz",
+        "checksum": "34e5709351b7d784dcec4227b47b3b4eaa6f3a8f15135636eb05aba919f23758",
+        "contents_checksum": "a1c8abf6c88e0d3a8ebd47f3850c3b5500ce0a89819fc5e44c4798e5ad13e58a",
+        "size": 93030625,
+        "source": "components/google-cloud-sdk-config-connector-darwin-arm-20240524155722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -3451,16 +3451,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20220912133630,
-        "version_string": "1.93.0"
+        "build_number": 20240524155722,
+        "version_string": "1.118.1"
       }
     },
     {
       "data": {
-        "checksum": "541307135cc5c06430cf1368a5a6f9dfe050031aedf1b7e7497362505f81074b",
-        "contents_checksum": "d234dc236ff1c4d88fb4caebd61955df9d3ee5b3db094472dce64f031d646e97",
-        "size": 59915703,
-        "source": "components/google-cloud-sdk-config-connector-darwin-x86_64-20220912133630.tar.gz",
+        "checksum": "d5be87f40407d484fe3a7af51da3fecaf8760cbe75d84fd2ad508d0f82dcec72",
+        "contents_checksum": "b84e55a8a76aebcb792f4c43a29679fa8b486c8768bda279ff5b418fa18b3bbe",
+        "size": 97180772,
+        "source": "components/google-cloud-sdk-config-connector-darwin-x86_64-20240524155722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -3484,16 +3484,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20220912133630,
-        "version_string": "1.93.0"
+        "build_number": 20240524155722,
+        "version_string": "1.118.1"
       }
     },
     {
       "data": {
-        "checksum": "693e9b1fdb2b8958388dca7abc405891d481c5973a5a622da8fa54920114af2c",
-        "contents_checksum": "b29263faa92ec2b3a2780f837c14d991c570914d7a9df10940325fab9e6cbe4d",
-        "size": 54695578,
-        "source": "components/google-cloud-sdk-config-connector-linux-arm-20220912133630.tar.gz",
+        "checksum": "a0698596420502c55bf09ecd68db53217e1b3e64bfad522eb8e4c2c67c8a6610",
+        "contents_checksum": "998d2544b37dd4dbaffc9e3a90191b500edd4b49157a77e024c187b16547b3d9",
+        "size": 90082586,
+        "source": "components/google-cloud-sdk-config-connector-linux-arm-20240524155722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -3517,16 +3517,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20220912133630,
-        "version_string": "1.93.0"
+        "build_number": 20240524155722,
+        "version_string": "1.118.1"
       }
     },
     {
       "data": {
-        "checksum": "62babd72829ff1e9c0ee92ee5fcf0052b19780ff028014871ab73d34aeff4021",
-        "contents_checksum": "29127a962616825f78276a0143a3b75239c66d7df4f582aee85b3801e9590a8d",
-        "size": 59462846,
-        "source": "components/google-cloud-sdk-config-connector-linux-x86_64-20220912133630.tar.gz",
+        "checksum": "3b7988660b12c41ea98cdb1c0a8230c03a113d20b6ffde586d9bc3f4f66b421d",
+        "contents_checksum": "72c7d8ea234d7ed6b6910709d08113da6f215945bc8fccf410ec546ee088353a",
+        "size": 95472847,
+        "source": "components/google-cloud-sdk-config-connector-linux-x86_64-20240524155722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -3550,16 +3550,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20220912133630,
-        "version_string": "1.93.0"
+        "build_number": 20240524155722,
+        "version_string": "1.118.1"
       }
     },
     {
       "data": {
-        "checksum": "e2b541bcbbfcdcd359bc828c7d51538cda3ef0fc4f90ad7ca274792b643bd74f",
-        "contents_checksum": "5221ebb5c2a0cc2c8752806c680382f21366c87cda41f5aa0e009da0d73e9bce",
-        "size": 59649780,
-        "source": "components/google-cloud-sdk-config-connector-windows-x86_64-20220912133630.tar.gz",
+        "checksum": "0300fc4eac0f70400384cc5fdea19166ffb9b44d874ea6c32205e6f3975a4a0e",
+        "contents_checksum": "ccba2ee9abc014d84b2404f34518c10913eb20fa19d5f7c996cd73d89fea42dd",
+        "size": 96121234,
+        "source": "components/google-cloud-sdk-config-connector-windows-x86_64-20240524155722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -3583,16 +3583,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20220912133630,
-        "version_string": "1.93.0"
+        "build_number": 20240524155722,
+        "version_string": "1.118.1"
       }
     },
     {
       "data": {
-        "checksum": "e8e87ff80c3f46ff4bce660c584ebe7bae8679366c9d2bf5ec5f98c06e450aa5",
-        "contents_checksum": "56ce80562703967dc39b2b05e6dd814e07cfe07a078706d9f0ad6ce0716495c8",
-        "size": 19446060,
-        "source": "components/google-cloud-sdk-core-20240503145345.tar.gz",
+        "checksum": "6c1aadf0ae74503a46ea8d4d5d55b17853624ad503b5edea1f18f17d2ff829a6",
+        "contents_checksum": "11808d47d5b9f497baf24d6e5d91949d0258215fcc3cecefa1eb439b62cfbe5f",
+        "size": 19546688,
+        "source": "components/google-cloud-sdk-core-20240524155722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -3613,8 +3613,8 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20240503145345,
-        "version_string": "2024.05.03"
+        "build_number": 20240524155722,
+        "version_string": "2024.05.24"
       }
     },
     {
@@ -4668,10 +4668,10 @@
     },
     {
       "data": {
-        "checksum": "19aaaf05ce45d6a62dac77e167d4315563dcadddfa9838da2ac9bc9df4ccac62",
-        "contents_checksum": "b2c128b9a1602e364e4801df1f6ec76004cd84fa2ab25c9df1b309eec73377b3",
-        "size": 6857693,
-        "source": "components/google-cloud-sdk-gcloud-man-pages-nix-20240503145345.tar.gz",
+        "checksum": "00d4d5a33fcc9ed3e2234f551b63b1ee2a997ee7d40b5812ce00e1ab3db9cbdd",
+        "contents_checksum": "0db1f61e6c193d520df0b9b89589a999466406a374eede0e6a402b80210b9f21",
+        "size": 6964181,
+        "source": "components/google-cloud-sdk-gcloud-man-pages-nix-20240524155722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4696,7 +4696,7 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20240503145345,
+        "build_number": 20240524155722,
         "version_string": ""
       }
     },
@@ -4969,10 +4969,10 @@
     },
     {
       "data": {
-        "checksum": "b4fc023adfe1710bf0ed63ee39aacbaddf090f97deb9435a6e9a955b72904985",
-        "contents_checksum": "c995625b17def8c1cdabb251bbd61259dc4b3aabc2d15f0dde5259726581dbe7",
-        "size": 11833901,
-        "source": "components/google-cloud-sdk-gsutil-20231025210228.tar.gz",
+        "checksum": "b5ad2b82a6e8ae3fd644e8021b74bde9603bfbf68eb0da56a11a9b6c1082f4fa",
+        "contents_checksum": "0a00a72f6a2e3a700fad29c05b9f4418fd7e5d3a20aea9a128306251c58d34e0",
+        "size": 11893574,
+        "source": "components/google-cloud-sdk-gsutil-20240510142152.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4991,8 +4991,8 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20231025210228,
-        "version_string": "5.27"
+        "build_number": 20240510142152,
+        "version_string": "5.29"
       }
     },
     {
@@ -5310,15 +5310,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "1.0.0-beta.49"
+        "version_string": "1.0.0-beta.50"
       }
     },
     {
       "data": {
-        "checksum": "0790df1606aadcd3818ad4dd7e7826d454602c6e7d2c93376285c8b73487a91b",
-        "contents_checksum": "3dbe499874490929331944b276ff0332f4e94f1babf071e6779cb52746bdc906",
-        "size": 15088020,
-        "source": "components/google-cloud-sdk-kpt-darwin-arm-20231215195722.tar.gz",
+        "checksum": "ae0dad6460ee54cc820b57ff6f384d294c30cadf42e834dc45f2e288ad627e19",
+        "contents_checksum": "74e9c5f7088cbd6c7824a18eddc4721889ebcdf50bb1958dca7557f3c1646cbe",
+        "size": 14487151,
+        "source": "components/google-cloud-sdk-kpt-darwin-arm-20240510142152.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5342,16 +5342,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231215195722,
-        "version_string": "1.0.0-beta.49"
+        "build_number": 20240510142152,
+        "version_string": "1.0.0-beta.50"
       }
     },
     {
       "data": {
-        "checksum": "ca3bceb9312bb492a1050ba6ed200b835102c58c76d55f9d1c6822c3e074d7e9",
-        "contents_checksum": "706fe93e6842fe68860507bc65fdbe08660e1063d61c882667dee51608789284",
-        "size": 15854938,
-        "source": "components/google-cloud-sdk-kpt-darwin-x86_64-20231215195722.tar.gz",
+        "checksum": "e80ffcb2338f17d70bcf5e0d77b049817ad154851f8a68c5a4a112ee3f1fa3e5",
+        "contents_checksum": "2ccd31d47996bb1e7ad06ef860c2099a88be1b8a9deba0afbd12b9a1bce83e38",
+        "size": 15556773,
+        "source": "components/google-cloud-sdk-kpt-darwin-x86_64-20240510142152.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5375,16 +5375,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231215195722,
-        "version_string": "1.0.0-beta.49"
+        "build_number": 20240510142152,
+        "version_string": "1.0.0-beta.50"
       }
     },
     {
       "data": {
-        "checksum": "56d0a81d5b31304c153cf07d4b5eeb433a27245c095f9e181f49eb8b98536ace",
-        "contents_checksum": "78fe72d925a7144d71ac007c684d7fcbdb3f9b4e5e454bcd6c49ebc133cf132f",
-        "size": 13629886,
-        "source": "components/google-cloud-sdk-kpt-linux-arm-20231215195722.tar.gz",
+        "checksum": "eeb8b320e5d50954c584f84fd0b5d46549ccf7a402628362cdaca39e141bc132",
+        "contents_checksum": "b52727552507224193bd48871158707738f0582138f4dc6e0eb0a3f83231d61a",
+        "size": 13818240,
+        "source": "components/google-cloud-sdk-kpt-linux-arm-20240510142152.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5408,16 +5408,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231215195722,
-        "version_string": "1.0.0-beta.49"
+        "build_number": 20240510142152,
+        "version_string": "1.0.0-beta.50"
       }
     },
     {
       "data": {
-        "checksum": "72b3a2a1e41963a892899e273fff38aa93a83acdc90d59c9f3c335fa62b1d30b",
-        "contents_checksum": "3de022e880f11c7cbb0e258281b2dc5a7c32ebf688958a99feecaae684cc62bd",
-        "size": 15090734,
-        "source": "components/google-cloud-sdk-kpt-linux-x86_64-20231215195722.tar.gz",
+        "checksum": "db9b4541f14732e4569bcba320a989b8e54660d53088f45b265d234175bdd8e4",
+        "contents_checksum": "0f56e5d3cee14e5f8e6091938a4ed755de5dd4520643f65b11c2515f94c30631",
+        "size": 15264863,
+        "source": "components/google-cloud-sdk-kpt-linux-x86_64-20240510142152.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5441,16 +5441,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231215195722,
-        "version_string": "1.0.0-beta.49"
+        "build_number": 20240510142152,
+        "version_string": "1.0.0-beta.50"
       }
     },
     {
       "data": {
-        "checksum": "8ce711be6e55790700edd6d6f7c03a2fa5a1c5b8cea7571aab75300e976b924c",
-        "contents_checksum": "90557d61aa4010c4cf40966c482a9560a6ebab9f66fe3858db13134d1a3766fc",
-        "size": 35936,
-        "source": "components/google-cloud-sdk-kubectl-20240322135349.tar.gz",
+        "checksum": "c21058af28fe7e220aa8cfb02b4d0a73036a91b52e1efa976f5c1fce50fef2ab",
+        "contents_checksum": "2e0a5ed80f5d195267068f7166e405a95076d362df4b0e391ba000d957a3df00",
+        "size": 35803,
+        "source": "components/google-cloud-sdk-kubectl-20240517151541.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5474,16 +5474,16 @@
       "platform": {},
       "platform_required": true,
       "version": {
-        "build_number": 20240322135349,
-        "version_string": "1.26.15"
+        "build_number": 20240517151541,
+        "version_string": "1.27.14"
       }
     },
     {
       "data": {
-        "checksum": "893498f06440eac7fe42bd0c42e83ab1e2fd30a0bd1d53ddd8ebfebc27d8ca8a",
-        "contents_checksum": "71c9869732c57c7c66cec80e59ab20bcc2e94b1cc79dce1c8093b2f0862b1383",
-        "size": 91161627,
-        "source": "components/google-cloud-sdk-kubectl-darwin-arm-20240426154730.tar.gz",
+        "checksum": "f0046d0cacea55159afe64d1c1b86a9d75b8cb9a3c5f2fb3620ad38136756d91",
+        "contents_checksum": "d0f9bede72e21ed6dceac46adf9ff6a50dc6962879ffcdbe9c6e2e09afe7bc38",
+        "size": 76286320,
+        "source": "components/google-cloud-sdk-kubectl-darwin-arm-20240517151541.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5508,16 +5508,16 @@
       },
       "platform_required": true,
       "version": {
-        "build_number": 20240426154730,
-        "version_string": "1.26.15"
+        "build_number": 20240517151541,
+        "version_string": "1.27.14"
       }
     },
     {
       "data": {
-        "checksum": "ddf25a006aeedb5e717d474dc695882caf35a4befaace22f28d9a4d0fee28bae",
-        "contents_checksum": "ac249c8eca65960152719c9440c197a0be335fa1d2e724a32e77418dacd6dd12",
-        "size": 96033579,
-        "source": "components/google-cloud-sdk-kubectl-darwin-x86_64-20240426154730.tar.gz",
+        "checksum": "db8f9ca7b6aa0027ac3e1118891a189147531048dd89c8b1636ac66200878384",
+        "contents_checksum": "dbf4b56dfad764ba9cb4eed4a4953bbed3aff19fd8788eb214383b3612dae392",
+        "size": 80437849,
+        "source": "components/google-cloud-sdk-kubectl-darwin-x86_64-20240517151541.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5542,16 +5542,16 @@
       },
       "platform_required": true,
       "version": {
-        "build_number": 20240426154730,
-        "version_string": "1.26.15"
+        "build_number": 20240517151541,
+        "version_string": "1.27.14"
       }
     },
     {
       "data": {
-        "checksum": "25279f7ff336d39f312dd6f363100b8329ad19e402c378230bfb2a8c4181325e",
-        "contents_checksum": "255cb5b298d9ddb4f81aa7571d452e3adab7c464e1c2b4686d1bfd5eec7e5abd",
-        "size": 86862918,
-        "source": "components/google-cloud-sdk-kubectl-linux-arm-20240426154730.tar.gz",
+        "checksum": "1cd785b6e4a438283b8be7547eb187077ef16f062d7455c2365dfc859215ab40",
+        "contents_checksum": "4e5a6e6dadb4f0789198190eb5eb4f754fc6e5aaf1f75ca8c5a6cb458815cb8a",
+        "size": 73476445,
+        "source": "components/google-cloud-sdk-kubectl-linux-arm-20240517151541.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5576,16 +5576,16 @@
       },
       "platform_required": true,
       "version": {
-        "build_number": 20240426154730,
-        "version_string": "1.26.15"
+        "build_number": 20240517151541,
+        "version_string": "1.27.14"
       }
     },
     {
       "data": {
-        "checksum": "6e8d0ea5ba1b88b82c902d869e54cb42d69cab4544e9b87190e8a9751b8e7510",
-        "contents_checksum": "5ef6f72d98198ce6ec9a380fab8925259fca9aef9e5afc22bef4f1d8d01c3cf4",
-        "size": 85033644,
-        "source": "components/google-cloud-sdk-kubectl-linux-x86-20240426154730.tar.gz",
+        "checksum": "fe8ae00f29adbe46a07b9a5ecc167dfbc553675becf61135321a985672d1a2d3",
+        "contents_checksum": "baae0e60cf98e356e8a3848c91464f298f905ae688d7d93028e518662bfe1178",
+        "size": 71253795,
+        "source": "components/google-cloud-sdk-kubectl-linux-x86-20240517151541.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5610,16 +5610,16 @@
       },
       "platform_required": true,
       "version": {
-        "build_number": 20240426154730,
-        "version_string": "1.26.15"
+        "build_number": 20240517151541,
+        "version_string": "1.27.14"
       }
     },
     {
       "data": {
-        "checksum": "2463ae5fa3cdb8952183845b4b1d5a335edfb22716f38525441121a8233177f0",
-        "contents_checksum": "41dc3fa15a64ab76478e164cb48bfaf6e93bceaec8edc32772a20deec1a592ea",
-        "size": 91798182,
-        "source": "components/google-cloud-sdk-kubectl-linux-x86_64-20240426154730.tar.gz",
+        "checksum": "2b8ca7ccbc9521579db6b64b2944561721d02746978e7abb915efa725c0ce0de",
+        "contents_checksum": "7c601db0aefcf2c6d92956a8c1fe83189fca6eef9e9f715c36387096270949f9",
+        "size": 76954346,
+        "source": "components/google-cloud-sdk-kubectl-linux-x86_64-20240517151541.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5644,8 +5644,8 @@
       },
       "platform_required": true,
       "version": {
-        "build_number": 20240426154730,
-        "version_string": "1.26.15"
+        "build_number": 20240517151541,
+        "version_string": "1.27.14"
       }
     },
     {
@@ -5848,10 +5848,10 @@
     },
     {
       "data": {
-        "checksum": "ea209e06d08eed40e21b67d72464b125a44c0bff85e846d44aef998ddfe5fc1f",
-        "contents_checksum": "b4a4f3ff7f7b3c687cf47a38813226385f7e893fdcd9a7a5d60b1dbdf99ae2a3",
-        "size": 89369395,
-        "source": "components/google-cloud-sdk-kubectl-windows-x86-20240426154730.tar.gz",
+        "checksum": "2e69b9fefdab2e33e2a68e244606e9e5588ed091a7e0ed1bb43850eba7e8d4ec",
+        "contents_checksum": "7b43f42e006d3406b46e6d3c69725d886036cb4f4f3072b210a850f79021b0db",
+        "size": 74875962,
+        "source": "components/google-cloud-sdk-kubectl-windows-x86-20240517151541.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5878,16 +5878,16 @@
       },
       "platform_required": true,
       "version": {
-        "build_number": 20240426154730,
-        "version_string": "1.26.15"
+        "build_number": 20240517151541,
+        "version_string": "1.27.14"
       }
     },
     {
       "data": {
-        "checksum": "0841109ca38d58e3dde3b54854b52ca1a0ac3405cbd7c76ea23cad5c31bdad2b",
-        "contents_checksum": "d024e22580bf9c9e3e35a5952241cae4681411e9b33c76f19b1b4b623b7269b1",
-        "size": 94204602,
-        "source": "components/google-cloud-sdk-kubectl-windows-x86_64-20240426154730.tar.gz",
+        "checksum": "58ab256106978ea9bfa7a52a2e8ce85fb4bd8b606d120d1a040675d8df610f2f",
+        "contents_checksum": "6a935880c971037634a2312f25efe9df72cd08b8d5293a20b33f7cfe8c2d3e3a",
+        "size": 78994894,
+        "source": "components/google-cloud-sdk-kubectl-windows-x86_64-20240517151541.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5914,8 +5914,8 @@
       },
       "platform_required": true,
       "version": {
-        "build_number": 20240426154730,
-        "version_string": "1.26.15"
+        "build_number": 20240517151541,
+        "version_string": "1.27.14"
       }
     },
     {
@@ -6472,15 +6472,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "1.32.0"
+        "version_string": "1.33.1"
       }
     },
     {
       "data": {
-        "checksum": "6cdb5663bc455017a2c1b7a7d34acaacc7cb4b0af5785db6ccdbfb0beec199fd",
-        "contents_checksum": "f7ca3880897a3db31c4619210464df1577b933823248436b8d7b1981d5d302df",
-        "size": 35193661,
-        "source": "components/google-cloud-sdk-minikube-darwin-arm-20231201141418.tar.gz",
+        "checksum": "9a786ac2caf5f10da8c81e013b4c2356aaf219518c30f5b71ee2a695b0caf540",
+        "contents_checksum": "35e0ed7d0c227ebeaa12ce1577086f0d2a90488099c31656c80a7fb85a63c1cd",
+        "size": 36470728,
+        "source": "components/google-cloud-sdk-minikube-darwin-arm-20240524155722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6504,16 +6504,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231201141418,
-        "version_string": "1.32.0"
+        "build_number": 20240524155722,
+        "version_string": "1.33.1"
       }
     },
     {
       "data": {
-        "checksum": "cdad196423217d1a81f1a00f8d706d4e05a27f58c21660e383d78351f4eda51c",
-        "contents_checksum": "da96e69ac893ea621f909904c57c57e34b1ae56f60b2de84427fb5d0a6df568f",
-        "size": 36498067,
-        "source": "components/google-cloud-sdk-minikube-darwin-x86_64-20231201141418.tar.gz",
+        "checksum": "05b2b1c945118485c245cf54fab1f34b8511a15523ce98cae552fffc53376ba4",
+        "contents_checksum": "bbee348ae4cfca17b25da2b53a3f56f38717db3a5f0062f2dcc2882042bc32a4",
+        "size": 38183819,
+        "source": "components/google-cloud-sdk-minikube-darwin-x86_64-20240524155722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6537,16 +6537,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231201141418,
-        "version_string": "1.32.0"
+        "build_number": 20240524155722,
+        "version_string": "1.33.1"
       }
     },
     {
       "data": {
-        "checksum": "8a80e98200d3572f803d700c8475c25f143d30997491ff4aaddb30633ab2cf76",
-        "contents_checksum": "af8b9577ef05c98d3cb2fe6832a8c2bf182f2cd19cb64a22f492581fc2882d2b",
-        "size": 34568485,
-        "source": "components/google-cloud-sdk-minikube-linux-arm-20231201141418.tar.gz",
+        "checksum": "1e606715175e67b6668ad0c93d34a0748fa31df905377def5c0f0a67417eec15",
+        "contents_checksum": "3e1cbed6062ff69dde78ef5d0c1b0a1202a2b97a24e3749beb887be196dbb644",
+        "size": 35836316,
+        "source": "components/google-cloud-sdk-minikube-linux-arm-20240524155722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6570,16 +6570,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231201141418,
-        "version_string": "1.32.0"
+        "build_number": 20240524155722,
+        "version_string": "1.33.1"
       }
     },
     {
       "data": {
-        "checksum": "54e5932d307b935e9033bfa9ab956f701ce2bee640c16fddf2ba1f061f2707cd",
-        "contents_checksum": "28c6cb2657e863e1023b2f905edf91735e0a122c210669fd59e914ecdcb25846",
-        "size": 37111912,
-        "source": "components/google-cloud-sdk-minikube-linux-x86_64-20231201141418.tar.gz",
+        "checksum": "fbe9eed12c7b49767778b7a7e0aba68b1eb627e95835151aa6412d27fd609b58",
+        "contents_checksum": "d2a2cd4237e2b9c45cee53ad07ad30d4e3523fdc814df0947abcccf5a3775784",
+        "size": 36038651,
+        "source": "components/google-cloud-sdk-minikube-linux-x86_64-20240524155722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6603,16 +6603,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231201141418,
-        "version_string": "1.32.0"
+        "build_number": 20240524155722,
+        "version_string": "1.33.1"
       }
     },
     {
       "data": {
-        "checksum": "66ccc0487812cac8ab071d878eda07fae7440eb232df9177520cd1522d67cd92",
-        "contents_checksum": "6a7de15384ab840952fdbcecad98e73b479542120dc0b9621b0c9452bcca4023",
-        "size": 37199202,
-        "source": "components/google-cloud-sdk-minikube-windows-x86_64-20231201141418.tar.gz",
+        "checksum": "ce9537f1d9706122778e78536a630727067879480ee998172dbd1b79880f303b",
+        "contents_checksum": "e6fb6538cd3967e201d933e73b37e574b00eab9c3dbe6681ebc779a703865a86",
+        "size": 38517955,
+        "source": "components/google-cloud-sdk-minikube-windows-x86_64-20240524155722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6636,8 +6636,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231201141418,
-        "version_string": "1.32.0"
+        "build_number": 20240524155722,
+        "version_string": "1.33.1"
       }
     },
     {
@@ -6665,15 +6665,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "1.17.3-rc.2"
+        "version_string": "1.18.0-rc.3"
       }
     },
     {
       "data": {
-        "checksum": "d419aaa0a419d8a01b025d5b79372e92d0b08def255e7a8bfb0361c8332267f6",
-        "contents_checksum": "d3f8f98cdba8da0aadf0a19d8503955023f70a2d8045838b893eb3e0b0e345ce",
-        "size": 29981660,
-        "source": "components/google-cloud-sdk-nomos-darwin-x86_64-20240322135349.tar.gz",
+        "checksum": "e25768b4cc121658267bacecd76c6bef913ce8f83046e168361199dc47946f0e",
+        "contents_checksum": "2703dbbec230c683ab31645f2c85764797de91502c9336fec4f216e12e7e0919",
+        "size": 30051781,
+        "source": "components/google-cloud-sdk-nomos-darwin-x86_64-20240510142152.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6697,16 +6697,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20240322135349,
-        "version_string": "1.17.3-rc.2"
+        "build_number": 20240510142152,
+        "version_string": "1.18.0-rc.3"
       }
     },
     {
       "data": {
-        "checksum": "d744e544fc05b996439c39e36454ec902f2998bcc9bf9d32337aaeb34bbb604e",
-        "contents_checksum": "d0458512f4a0047c7ba2504246d8428fc0f8de3fec56b37b69b43e62ceb2af75",
-        "size": 30144536,
-        "source": "components/google-cloud-sdk-nomos-linux-x86_64-20240322135349.tar.gz",
+        "checksum": "3ab5af0f69751230c98c7920e3931cd36bdd40c3306190e4ad16c0e768d2eee8",
+        "contents_checksum": "6ea201c0f057a3a58d43c6e4b3fc1691c5cf00ed27ac40e92528d2334d89c885",
+        "size": 30217798,
+        "source": "components/google-cloud-sdk-nomos-linux-x86_64-20240510142152.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6730,8 +6730,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20240322135349,
-        "version_string": "1.17.3-rc.2"
+        "build_number": 20240510142152,
+        "version_string": "1.18.0-rc.3"
       }
     },
     {
@@ -7262,15 +7262,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "3.2.4"
+        "version_string": "3.2.5"
       }
     },
     {
       "data": {
-        "checksum": "3772182f6246ce7ee4a24d4af5f07a0b0ce718d563c80439baabd8cf13318505",
-        "contents_checksum": "49868f973b97b24f2f042d5a3b05105ef0c4ba8974c9268ecaa1a232a735d902",
-        "size": 24679221,
-        "source": "components/google-cloud-sdk-spanner-migration-tool-linux-x86_64-20240412130805.tar.gz",
+        "checksum": "85b90a0016541d6aae62795404aacc7088e0b1701e9f57493bdb4f29c5210fc5",
+        "contents_checksum": "a5b9958d7ad96d243c7fd5d67ec93d8a4b8a62b668435c18d25b9ce4eb72e185",
+        "size": 24696653,
+        "source": "components/google-cloud-sdk-spanner-migration-tool-linux-x86_64-20240517151541.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -7294,8 +7294,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20240412130805,
-        "version_string": "3.2.4"
+        "build_number": 20240517151541,
+        "version_string": "3.2.5"
       }
     },
     {
@@ -7551,10 +7551,10 @@
     },
     {
       "data": {
-        "checksum": "f90e47ac6bbf129c724555e5f7ad3dc105de5059d1cc9ab77c99f52a92fae0cb",
-        "contents_checksum": "b515c8b801cde8a8696832a5dbf16d8f1e9adcc4f4651db36fda76e41b008809",
-        "size": 56934482,
-        "source": "components/google-cloud-sdk-tests-20240503145345.tar.gz",
+        "checksum": "a1f346a6fee441c88145e5e7bde1378b4fdb893a6efd567822f058c1ee8d5907",
+        "contents_checksum": "cd4bfe5247c8f08ce1cf8826c8ee0154c0af47510e10b20e069a384088ea9f93",
+        "size": 57089124,
+        "source": "components/google-cloud-sdk-tests-20240524155722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -7571,8 +7571,8 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20240503145345,
-        "version_string": "2024.05.03"
+        "build_number": 20240524155722,
+        "version_string": "2024.05.24"
       }
     }
   ],
@@ -7591,11 +7591,11 @@
   ],
   "post_processing_command": "components post-process",
   "release_notes_url": "RELEASE_NOTES",
-  "revision": 20240503145345,
+  "revision": 20240524155722,
   "schema_version": {
     "no_update": false,
     "url": "https://dl.google.com/dl/cloudsdk/channels/rapid/google-cloud-sdk.tar.gz",
     "version": 3
   },
-  "version": "475.0.0"
+  "version": "478.0.0"
 }
diff --git a/pkgs/tools/admin/google-cloud-sdk/data.nix b/pkgs/tools/admin/google-cloud-sdk/data.nix
index 6150137ea2186..5432144620250 100644
--- a/pkgs/tools/admin/google-cloud-sdk/data.nix
+++ b/pkgs/tools/admin/google-cloud-sdk/data.nix
@@ -1,32 +1,32 @@
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
-  version = "475.0.0";
+  version = "478.0.0";
   googleCloudSdkPkgs = {
     x86_64-linux =
       {
-        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-475.0.0-linux-x86_64.tar.gz";
-        sha256 = "0yqa2c91n948yj8gxjm91ccdb99dzppimf1npckplzhc2bp7shiw";
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-478.0.0-linux-x86_64.tar.gz";
+        sha256 = "1f4k1n1dic1aqqzhm31hggyjjrvqixbzlvr717z0ri5qi5qkqv2w";
       };
     x86_64-darwin =
       {
-        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-475.0.0-darwin-x86_64.tar.gz";
-        sha256 = "078wwvjhpc9a56v03y6433zpwaj3cg3y9xrbg9ww5fdqvcc82q1z";
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-478.0.0-darwin-x86_64.tar.gz";
+        sha256 = "1xs55hvq6bx39xh00nq0hsi52vgkvklvhrgxwghgi2i01ry1fm9n";
       };
     aarch64-linux =
       {
-        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-475.0.0-linux-arm.tar.gz";
-        sha256 = "1wfr6lz62y232wzp7nn3mr18qd4wmw47b3p3sjff0f39jfmcyq30";
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-478.0.0-linux-arm.tar.gz";
+        sha256 = "0pzgddqmw5bwyg60vavxy3lfl0v2lrx0h2d5k120y7h6zvvnynj9";
       };
     aarch64-darwin =
       {
-        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-475.0.0-darwin-arm.tar.gz";
-        sha256 = "1cjhbq0qsy35nwl5h1f8xp4d67a6hwmfjzdk349g1npf5dhhdd94";
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-478.0.0-darwin-arm.tar.gz";
+        sha256 = "0dz25jqv67bvz4vj1p54pxskmxz1x33s18snplkcm32agdjjgaxd";
       };
     i686-linux =
       {
-        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-475.0.0-linux-x86.tar.gz";
-        sha256 = "1cj5321lj3dbb48h35qlxllrzzg90lwq92n71c2y4s2mqk33543h";
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-478.0.0-linux-x86.tar.gz";
+        sha256 = "1wdxjpr8nycrz0qf8lgl2nrhbgk0y3phy4cx46jjwdagwgdhihas";
       };
   };
 }
diff --git a/pkgs/tools/admin/granted/default.nix b/pkgs/tools/admin/granted/default.nix
index c5ee12003a455..2886a08d84b80 100644
--- a/pkgs/tools/admin/granted/default.nix
+++ b/pkgs/tools/admin/granted/default.nix
@@ -12,16 +12,16 @@
 
 buildGoModule rec {
   pname = "granted";
-  version = "0.26.2";
+  version = "0.27.4";
 
   src = fetchFromGitHub {
     owner = "common-fate";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-+vJN91adsZNihyQNLFFKt94l37lynpGvFIGPvd/9/CM=";
+    sha256 = "sha256-JVeOWAuFxMLDhpFreN4YAXoDytNf/t1yQwNXKRd8ml8=";
   };
 
-  vendorHash = "sha256-QoT7zfNbKDZyxGhDX1Lleu3mpTVXGKleX/b86l8nXXs=";
+  vendorHash = "sha256-/X7kHaBZyDV4IqvKqyR7pAQLgYqIvcvSSh0NdrA5d3I=";
 
   nativeBuildInputs = [ makeWrapper ];
 
@@ -57,7 +57,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "The easiest way to access your cloud";
+    description = "Easiest way to access your cloud";
     homepage = "https://github.com/common-fate/granted";
     changelog = "https://github.com/common-fate/granted/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/tools/admin/iamy/default.nix b/pkgs/tools/admin/iamy/default.nix
index 63dc5fe371b07..935cc3fee763b 100644
--- a/pkgs/tools/admin/iamy/default.nix
+++ b/pkgs/tools/admin/iamy/default.nix
@@ -18,7 +18,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "A cli tool for importing and exporting AWS IAM configuration to YAML files";
+    description = "Cli tool for importing and exporting AWS IAM configuration to YAML files";
     homepage = "https://github.com/99designs/iamy";
     license = licenses.mit;
     maintainers = with maintainers; [ suvash ];
diff --git a/pkgs/tools/admin/lego/default.nix b/pkgs/tools/admin/lego/default.nix
index dc35c0b563db7..5ff28355bc7c4 100644
--- a/pkgs/tools/admin/lego/default.nix
+++ b/pkgs/tools/admin/lego/default.nix
@@ -2,23 +2,23 @@
 
 buildGoModule rec {
   pname = "lego";
-  version = "4.16.1";
+  version = "4.17.4";
 
   src = fetchFromGitHub {
     owner = "go-acme";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-BGD0fVLTlM0BlYK/XK11W0OV8sDO4SVfXEKHEFdqOzs=";
+    sha256 = "sha256-DF9Bx6CzZLdnyqe8PNWU2I9ym2SBDAjdwG9/zxvSjgs=";
   };
 
-  vendorHash = "sha256-jiVtgzNWj91J/YSBOrhXZH2WmVqA2gxjIfytCGYG25A=";
+  vendorHash = "sha256-tX/QpAZLuQEYhm1I1twlg3TefaLqfiEz9cXID+r6EHA=";
 
   doCheck = false;
 
   subPackages = [ "cmd/lego" ];
 
   ldflags = [
-    "-X main.version=${version}"
+    "-s" "-w" "-X main.version=${version}"
   ];
 
   meta = with lib; {
diff --git a/pkgs/tools/admin/meraki-cli/default.nix b/pkgs/tools/admin/meraki-cli/default.nix
index c446023770bc4..2097dab07750b 100644
--- a/pkgs/tools/admin/meraki-cli/default.nix
+++ b/pkgs/tools/admin/meraki-cli/default.nix
@@ -49,7 +49,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/PackeTsar/meraki-cli";
-    description = "A simple CLI tool to automate and control your Cisco Meraki Dashboard";
+    description = "Simple CLI tool to automate and control your Cisco Meraki Dashboard";
     license = licenses.mit;
     maintainers = with maintainers; [ dylanmtaylor ];
     platforms = platforms.unix;
diff --git a/pkgs/tools/admin/meshcentral/default.nix b/pkgs/tools/admin/meshcentral/default.nix
index 2ac167b15cf9d..1e1563bcc915e 100644
--- a/pkgs/tools/admin/meshcentral/default.nix
+++ b/pkgs/tools/admin/meshcentral/default.nix
@@ -7,11 +7,11 @@
 }:
 
 yarn2nix-moretea.mkYarnPackage {
-  version = "1.1.22";
+  version = "1.1.24";
 
   src = fetchzip {
-    url = "https://registry.npmjs.org/meshcentral/-/meshcentral-1.1.22.tgz";
-    sha256 = "14hxynja1xybzcv9wabhn2ps7ngnigb4hs2lc2zz162wd1phv6j1";
+    url = "https://registry.npmjs.org/meshcentral/-/meshcentral-1.1.24.tgz";
+    sha256 = "1x5ibbmdrd6yv3xv3qlcd2b1mj9wpdsfgcmrcjl3js34zrygmixc";
   };
 
   patches = [ ./fix-js-include-paths.patch ];
@@ -21,7 +21,7 @@ yarn2nix-moretea.mkYarnPackage {
 
   offlineCache = fetchYarnDeps {
     yarnLock = ./yarn.lock;
-    hash = "sha256-smx37i/0MFmZYGqjE3NgySDiZfKP/4SHtFSYko/6mAU=";
+    hash = "sha256-L4rBVq/JhkcSQs/GrQJ+gcAV0vyi+9yS6B3p3O14IfE=";
   };
 
   # Tarball has CRLF line endings. This makes patching difficult, so let's convert them.
diff --git a/pkgs/tools/admin/meshcentral/package.json b/pkgs/tools/admin/meshcentral/package.json
index bab47ede89f69..f44046869c62c 100644
--- a/pkgs/tools/admin/meshcentral/package.json
+++ b/pkgs/tools/admin/meshcentral/package.json
@@ -1,6 +1,6 @@
 {
   "name": "meshcentral",
-  "version": "1.1.22",
+  "version": "1.1.24",
   "keywords": [
     "Remote Device Management",
     "Remote Device Monitoring",
@@ -42,7 +42,7 @@
     "cbor": "5.2.0",
     "compression": "1.7.4",
     "cookie-session": "2.0.0",
-    "express": "4.18.2",
+    "express": "4.19.2",
     "express-handlebars": "5.3.5",
     "express-ws": "4.0.0",
     "ipcheck": "0.1.0",
@@ -55,7 +55,7 @@
     "yauzl": "2.10.0"
   },
   "engines": {
-    "node": ">=11.0.0"
+    "node": ">=16.0.0"
   },
   "repository": {
     "type": "git",
@@ -70,13 +70,14 @@
     "passport-azure-oauth2": "*",
     "jwt-simple": "*",
     "openid-client": "*",
+    "connect-flash": "*",
     "passport-saml": "*",
     "archiver": "7.0.0",
     "body-parser": "1.20.2",
     "cbor": "5.2.0",
     "compression": "1.7.4",
     "cookie-session": "2.0.0",
-    "express": "4.18.2",
+    "express": "4.19.2",
     "express-handlebars": "5.3.5",
     "express-ws": "4.0.0",
     "ipcheck": "0.1.0",
diff --git a/pkgs/tools/admin/meshcentral/yarn.lock b/pkgs/tools/admin/meshcentral/yarn.lock
index e11b557ea22e0..8dab35726610f 100644
--- a/pkgs/tools/admin/meshcentral/yarn.lock
+++ b/pkgs/tools/admin/meshcentral/yarn.lock
@@ -10,15 +10,6 @@
     "@jridgewell/gen-mapping" "^0.3.5"
     "@jridgewell/trace-mapping" "^0.3.24"
 
-"@aws-crypto/crc32@3.0.0":
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-3.0.0.tgz#07300eca214409c33e3ff769cd5697b57fdd38fa"
-  integrity sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==
-  dependencies:
-    "@aws-crypto/util" "^3.0.0"
-    "@aws-sdk/types" "^3.222.0"
-    tslib "^1.11.1"
-
 "@aws-crypto/ie11-detection@^3.0.0":
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz#640ae66b4ec3395cee6a8e94ebcd9f80c24cd688"
@@ -65,433 +56,434 @@
     "@aws-sdk/util-utf8-browser" "^3.0.0"
     tslib "^1.11.1"
 
-"@aws-sdk/client-cognito-identity@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.540.0.tgz#ccea36dd4650bdbd0fd2bcf02c3b1fb33ba154eb"
-  integrity sha512-03vUaIKjvdcOmjDi8Fv9JgY+VQrt9QBpRkI8A1lrdPNgWqTEZXZi/zBsFRsxTe6hgsrZtxVnxLu6krSRILuqtw==
+"@aws-sdk/client-cognito-identity@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.583.0.tgz#f25360e29b46af8086f2b8f6bc6e51bcb5ac1c54"
+  integrity sha512-FrkVjrDRsXofw1F/iJqR/DOKPbIakIB+Dr04l25Em4PTWBj29NcQyYW49qcCHF0CPkqQpin8ASXDWzGv7A0yxg==
   dependencies:
     "@aws-crypto/sha256-browser" "3.0.0"
     "@aws-crypto/sha256-js" "3.0.0"
-    "@aws-sdk/client-sts" "3.540.0"
-    "@aws-sdk/core" "3.535.0"
-    "@aws-sdk/credential-provider-node" "3.540.0"
-    "@aws-sdk/middleware-host-header" "3.535.0"
-    "@aws-sdk/middleware-logger" "3.535.0"
-    "@aws-sdk/middleware-recursion-detection" "3.535.0"
-    "@aws-sdk/middleware-user-agent" "3.540.0"
-    "@aws-sdk/region-config-resolver" "3.535.0"
-    "@aws-sdk/types" "3.535.0"
-    "@aws-sdk/util-endpoints" "3.540.0"
-    "@aws-sdk/util-user-agent-browser" "3.535.0"
-    "@aws-sdk/util-user-agent-node" "3.535.0"
-    "@smithy/config-resolver" "^2.2.0"
-    "@smithy/core" "^1.4.0"
-    "@smithy/fetch-http-handler" "^2.5.0"
-    "@smithy/hash-node" "^2.2.0"
-    "@smithy/invalid-dependency" "^2.2.0"
-    "@smithy/middleware-content-length" "^2.2.0"
-    "@smithy/middleware-endpoint" "^2.5.0"
-    "@smithy/middleware-retry" "^2.2.0"
-    "@smithy/middleware-serde" "^2.3.0"
-    "@smithy/middleware-stack" "^2.2.0"
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/node-http-handler" "^2.5.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/url-parser" "^2.2.0"
-    "@smithy/util-base64" "^2.3.0"
-    "@smithy/util-body-length-browser" "^2.2.0"
-    "@smithy/util-body-length-node" "^2.3.0"
-    "@smithy/util-defaults-mode-browser" "^2.2.0"
-    "@smithy/util-defaults-mode-node" "^2.3.0"
-    "@smithy/util-endpoints" "^1.2.0"
-    "@smithy/util-middleware" "^2.2.0"
-    "@smithy/util-retry" "^2.2.0"
-    "@smithy/util-utf8" "^2.3.0"
+    "@aws-sdk/client-sso-oidc" "3.583.0"
+    "@aws-sdk/client-sts" "3.583.0"
+    "@aws-sdk/core" "3.582.0"
+    "@aws-sdk/credential-provider-node" "3.583.0"
+    "@aws-sdk/middleware-host-header" "3.577.0"
+    "@aws-sdk/middleware-logger" "3.577.0"
+    "@aws-sdk/middleware-recursion-detection" "3.577.0"
+    "@aws-sdk/middleware-user-agent" "3.583.0"
+    "@aws-sdk/region-config-resolver" "3.577.0"
+    "@aws-sdk/types" "3.577.0"
+    "@aws-sdk/util-endpoints" "3.583.0"
+    "@aws-sdk/util-user-agent-browser" "3.577.0"
+    "@aws-sdk/util-user-agent-node" "3.577.0"
+    "@smithy/config-resolver" "^3.0.0"
+    "@smithy/core" "^2.0.1"
+    "@smithy/fetch-http-handler" "^3.0.1"
+    "@smithy/hash-node" "^3.0.0"
+    "@smithy/invalid-dependency" "^3.0.0"
+    "@smithy/middleware-content-length" "^3.0.0"
+    "@smithy/middleware-endpoint" "^3.0.0"
+    "@smithy/middleware-retry" "^3.0.1"
+    "@smithy/middleware-serde" "^3.0.0"
+    "@smithy/middleware-stack" "^3.0.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/node-http-handler" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
+    "@smithy/url-parser" "^3.0.0"
+    "@smithy/util-base64" "^3.0.0"
+    "@smithy/util-body-length-browser" "^3.0.0"
+    "@smithy/util-body-length-node" "^3.0.0"
+    "@smithy/util-defaults-mode-browser" "^3.0.1"
+    "@smithy/util-defaults-mode-node" "^3.0.1"
+    "@smithy/util-endpoints" "^2.0.0"
+    "@smithy/util-middleware" "^3.0.0"
+    "@smithy/util-retry" "^3.0.0"
+    "@smithy/util-utf8" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/client-sso-oidc@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.540.0.tgz#e4c52889d33ca969add269011b790f2d634fb6d2"
-  integrity sha512-LZYK0lBRQK8D8M3Sqc96XiXkAV2v70zhTtF6weyzEpgwxZMfSuFJjs0jFyhaeZBZbZv7BBghIdhJ5TPavNxGMQ==
+"@aws-sdk/client-sso-oidc@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.583.0.tgz#71a00305f3d5d13041e6c2fff53cec62f621eb1f"
+  integrity sha512-LO3wmrFXPi2kNE46lD1XATfRrvdNxXd4DlTFouoWmr7lvqoUkcbmtkV2r/XChZA2z0HiDauphC1e8b8laJVeSg==
   dependencies:
     "@aws-crypto/sha256-browser" "3.0.0"
     "@aws-crypto/sha256-js" "3.0.0"
-    "@aws-sdk/client-sts" "3.540.0"
-    "@aws-sdk/core" "3.535.0"
-    "@aws-sdk/middleware-host-header" "3.535.0"
-    "@aws-sdk/middleware-logger" "3.535.0"
-    "@aws-sdk/middleware-recursion-detection" "3.535.0"
-    "@aws-sdk/middleware-user-agent" "3.540.0"
-    "@aws-sdk/region-config-resolver" "3.535.0"
-    "@aws-sdk/types" "3.535.0"
-    "@aws-sdk/util-endpoints" "3.540.0"
-    "@aws-sdk/util-user-agent-browser" "3.535.0"
-    "@aws-sdk/util-user-agent-node" "3.535.0"
-    "@smithy/config-resolver" "^2.2.0"
-    "@smithy/core" "^1.4.0"
-    "@smithy/fetch-http-handler" "^2.5.0"
-    "@smithy/hash-node" "^2.2.0"
-    "@smithy/invalid-dependency" "^2.2.0"
-    "@smithy/middleware-content-length" "^2.2.0"
-    "@smithy/middleware-endpoint" "^2.5.0"
-    "@smithy/middleware-retry" "^2.2.0"
-    "@smithy/middleware-serde" "^2.3.0"
-    "@smithy/middleware-stack" "^2.2.0"
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/node-http-handler" "^2.5.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/url-parser" "^2.2.0"
-    "@smithy/util-base64" "^2.3.0"
-    "@smithy/util-body-length-browser" "^2.2.0"
-    "@smithy/util-body-length-node" "^2.3.0"
-    "@smithy/util-defaults-mode-browser" "^2.2.0"
-    "@smithy/util-defaults-mode-node" "^2.3.0"
-    "@smithy/util-endpoints" "^1.2.0"
-    "@smithy/util-middleware" "^2.2.0"
-    "@smithy/util-retry" "^2.2.0"
-    "@smithy/util-utf8" "^2.3.0"
+    "@aws-sdk/client-sts" "3.583.0"
+    "@aws-sdk/core" "3.582.0"
+    "@aws-sdk/credential-provider-node" "3.583.0"
+    "@aws-sdk/middleware-host-header" "3.577.0"
+    "@aws-sdk/middleware-logger" "3.577.0"
+    "@aws-sdk/middleware-recursion-detection" "3.577.0"
+    "@aws-sdk/middleware-user-agent" "3.583.0"
+    "@aws-sdk/region-config-resolver" "3.577.0"
+    "@aws-sdk/types" "3.577.0"
+    "@aws-sdk/util-endpoints" "3.583.0"
+    "@aws-sdk/util-user-agent-browser" "3.577.0"
+    "@aws-sdk/util-user-agent-node" "3.577.0"
+    "@smithy/config-resolver" "^3.0.0"
+    "@smithy/core" "^2.0.1"
+    "@smithy/fetch-http-handler" "^3.0.1"
+    "@smithy/hash-node" "^3.0.0"
+    "@smithy/invalid-dependency" "^3.0.0"
+    "@smithy/middleware-content-length" "^3.0.0"
+    "@smithy/middleware-endpoint" "^3.0.0"
+    "@smithy/middleware-retry" "^3.0.1"
+    "@smithy/middleware-serde" "^3.0.0"
+    "@smithy/middleware-stack" "^3.0.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/node-http-handler" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
+    "@smithy/url-parser" "^3.0.0"
+    "@smithy/util-base64" "^3.0.0"
+    "@smithy/util-body-length-browser" "^3.0.0"
+    "@smithy/util-body-length-node" "^3.0.0"
+    "@smithy/util-defaults-mode-browser" "^3.0.1"
+    "@smithy/util-defaults-mode-node" "^3.0.1"
+    "@smithy/util-endpoints" "^2.0.0"
+    "@smithy/util-middleware" "^3.0.0"
+    "@smithy/util-retry" "^3.0.0"
+    "@smithy/util-utf8" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/client-sso@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.540.0.tgz#732a7f325de3905a719c20ce05e555b445f82b4a"
-  integrity sha512-rrQZMuw4sxIo3eyAUUzPQRA336mPRnrAeSlSdVHBKZD8Fjvoy0lYry2vNhkPLpFZLso1J66KRyuIv4LzRR3v1Q==
+"@aws-sdk/client-sso@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.583.0.tgz#fa18cadd19abe80e0c0378b6cbe6225ed0296595"
+  integrity sha512-FNJ2MmiBtZZwgkj4+GLVrzqwmD6D8FBptrFZk7PnGkSf7v1Q8txYNI6gY938RRhYJ4lBW4cNbhPvWoDxAl90Hw==
   dependencies:
     "@aws-crypto/sha256-browser" "3.0.0"
     "@aws-crypto/sha256-js" "3.0.0"
-    "@aws-sdk/core" "3.535.0"
-    "@aws-sdk/middleware-host-header" "3.535.0"
-    "@aws-sdk/middleware-logger" "3.535.0"
-    "@aws-sdk/middleware-recursion-detection" "3.535.0"
-    "@aws-sdk/middleware-user-agent" "3.540.0"
-    "@aws-sdk/region-config-resolver" "3.535.0"
-    "@aws-sdk/types" "3.535.0"
-    "@aws-sdk/util-endpoints" "3.540.0"
-    "@aws-sdk/util-user-agent-browser" "3.535.0"
-    "@aws-sdk/util-user-agent-node" "3.535.0"
-    "@smithy/config-resolver" "^2.2.0"
-    "@smithy/core" "^1.4.0"
-    "@smithy/fetch-http-handler" "^2.5.0"
-    "@smithy/hash-node" "^2.2.0"
-    "@smithy/invalid-dependency" "^2.2.0"
-    "@smithy/middleware-content-length" "^2.2.0"
-    "@smithy/middleware-endpoint" "^2.5.0"
-    "@smithy/middleware-retry" "^2.2.0"
-    "@smithy/middleware-serde" "^2.3.0"
-    "@smithy/middleware-stack" "^2.2.0"
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/node-http-handler" "^2.5.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/url-parser" "^2.2.0"
-    "@smithy/util-base64" "^2.3.0"
-    "@smithy/util-body-length-browser" "^2.2.0"
-    "@smithy/util-body-length-node" "^2.3.0"
-    "@smithy/util-defaults-mode-browser" "^2.2.0"
-    "@smithy/util-defaults-mode-node" "^2.3.0"
-    "@smithy/util-endpoints" "^1.2.0"
-    "@smithy/util-middleware" "^2.2.0"
-    "@smithy/util-retry" "^2.2.0"
-    "@smithy/util-utf8" "^2.3.0"
+    "@aws-sdk/core" "3.582.0"
+    "@aws-sdk/middleware-host-header" "3.577.0"
+    "@aws-sdk/middleware-logger" "3.577.0"
+    "@aws-sdk/middleware-recursion-detection" "3.577.0"
+    "@aws-sdk/middleware-user-agent" "3.583.0"
+    "@aws-sdk/region-config-resolver" "3.577.0"
+    "@aws-sdk/types" "3.577.0"
+    "@aws-sdk/util-endpoints" "3.583.0"
+    "@aws-sdk/util-user-agent-browser" "3.577.0"
+    "@aws-sdk/util-user-agent-node" "3.577.0"
+    "@smithy/config-resolver" "^3.0.0"
+    "@smithy/core" "^2.0.1"
+    "@smithy/fetch-http-handler" "^3.0.1"
+    "@smithy/hash-node" "^3.0.0"
+    "@smithy/invalid-dependency" "^3.0.0"
+    "@smithy/middleware-content-length" "^3.0.0"
+    "@smithy/middleware-endpoint" "^3.0.0"
+    "@smithy/middleware-retry" "^3.0.1"
+    "@smithy/middleware-serde" "^3.0.0"
+    "@smithy/middleware-stack" "^3.0.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/node-http-handler" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
+    "@smithy/url-parser" "^3.0.0"
+    "@smithy/util-base64" "^3.0.0"
+    "@smithy/util-body-length-browser" "^3.0.0"
+    "@smithy/util-body-length-node" "^3.0.0"
+    "@smithy/util-defaults-mode-browser" "^3.0.1"
+    "@smithy/util-defaults-mode-node" "^3.0.1"
+    "@smithy/util-endpoints" "^2.0.0"
+    "@smithy/util-middleware" "^3.0.0"
+    "@smithy/util-retry" "^3.0.0"
+    "@smithy/util-utf8" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/client-sts@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.540.0.tgz#16ce14db1c5387be3ad9be6dd4f8ed33b63193c8"
-  integrity sha512-ITHUQxvpqfQX6obfpIi3KYGzZYfe/I5Ixjfxoi5lB7ISCtmxqObKB1fzD93wonkMJytJ7LUO8panZl/ojiJ1uw==
+"@aws-sdk/client-sts@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.583.0.tgz#d8109ab588689a616d987f6b1d4faacafe49f598"
+  integrity sha512-xDMxiemPDWr9dY2Q4AyixkRnk/hvS6fs6OWxuVCz1WO47YhaAfOsEGAgQMgDLLaOfj/oLU5D14uTNBEPGh4rBA==
   dependencies:
     "@aws-crypto/sha256-browser" "3.0.0"
     "@aws-crypto/sha256-js" "3.0.0"
-    "@aws-sdk/core" "3.535.0"
-    "@aws-sdk/middleware-host-header" "3.535.0"
-    "@aws-sdk/middleware-logger" "3.535.0"
-    "@aws-sdk/middleware-recursion-detection" "3.535.0"
-    "@aws-sdk/middleware-user-agent" "3.540.0"
-    "@aws-sdk/region-config-resolver" "3.535.0"
-    "@aws-sdk/types" "3.535.0"
-    "@aws-sdk/util-endpoints" "3.540.0"
-    "@aws-sdk/util-user-agent-browser" "3.535.0"
-    "@aws-sdk/util-user-agent-node" "3.535.0"
-    "@smithy/config-resolver" "^2.2.0"
-    "@smithy/core" "^1.4.0"
-    "@smithy/fetch-http-handler" "^2.5.0"
-    "@smithy/hash-node" "^2.2.0"
-    "@smithy/invalid-dependency" "^2.2.0"
-    "@smithy/middleware-content-length" "^2.2.0"
-    "@smithy/middleware-endpoint" "^2.5.0"
-    "@smithy/middleware-retry" "^2.2.0"
-    "@smithy/middleware-serde" "^2.3.0"
-    "@smithy/middleware-stack" "^2.2.0"
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/node-http-handler" "^2.5.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/url-parser" "^2.2.0"
-    "@smithy/util-base64" "^2.3.0"
-    "@smithy/util-body-length-browser" "^2.2.0"
-    "@smithy/util-body-length-node" "^2.3.0"
-    "@smithy/util-defaults-mode-browser" "^2.2.0"
-    "@smithy/util-defaults-mode-node" "^2.3.0"
-    "@smithy/util-endpoints" "^1.2.0"
-    "@smithy/util-middleware" "^2.2.0"
-    "@smithy/util-retry" "^2.2.0"
-    "@smithy/util-utf8" "^2.3.0"
+    "@aws-sdk/client-sso-oidc" "3.583.0"
+    "@aws-sdk/core" "3.582.0"
+    "@aws-sdk/credential-provider-node" "3.583.0"
+    "@aws-sdk/middleware-host-header" "3.577.0"
+    "@aws-sdk/middleware-logger" "3.577.0"
+    "@aws-sdk/middleware-recursion-detection" "3.577.0"
+    "@aws-sdk/middleware-user-agent" "3.583.0"
+    "@aws-sdk/region-config-resolver" "3.577.0"
+    "@aws-sdk/types" "3.577.0"
+    "@aws-sdk/util-endpoints" "3.583.0"
+    "@aws-sdk/util-user-agent-browser" "3.577.0"
+    "@aws-sdk/util-user-agent-node" "3.577.0"
+    "@smithy/config-resolver" "^3.0.0"
+    "@smithy/core" "^2.0.1"
+    "@smithy/fetch-http-handler" "^3.0.1"
+    "@smithy/hash-node" "^3.0.0"
+    "@smithy/invalid-dependency" "^3.0.0"
+    "@smithy/middleware-content-length" "^3.0.0"
+    "@smithy/middleware-endpoint" "^3.0.0"
+    "@smithy/middleware-retry" "^3.0.1"
+    "@smithy/middleware-serde" "^3.0.0"
+    "@smithy/middleware-stack" "^3.0.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/node-http-handler" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
+    "@smithy/url-parser" "^3.0.0"
+    "@smithy/util-base64" "^3.0.0"
+    "@smithy/util-body-length-browser" "^3.0.0"
+    "@smithy/util-body-length-node" "^3.0.0"
+    "@smithy/util-defaults-mode-browser" "^3.0.1"
+    "@smithy/util-defaults-mode-node" "^3.0.1"
+    "@smithy/util-endpoints" "^2.0.0"
+    "@smithy/util-middleware" "^3.0.0"
+    "@smithy/util-retry" "^3.0.0"
+    "@smithy/util-utf8" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/core@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.535.0.tgz#f3a726c297cea9634d19a1db4e958c918c506c8b"
-  integrity sha512-+Yusa9HziuaEDta1UaLEtMAtmgvxdxhPn7jgfRY6PplqAqgsfa5FR83sxy5qr2q7xjQTwHtV4MjQVuOjG9JsLw==
+"@aws-sdk/core@3.582.0":
+  version "3.582.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.582.0.tgz#9ebb295290cba3d68738401fe4e3d51dfb0d1bfc"
+  integrity sha512-ofmD96IQc9g1dbyqlCyxu5fCG7kIl9p1NoN5+vGBUyLdbmPCV3Pdg99nRHYEJuv2MgGx5AUFGDPMHcqbJpnZIw==
   dependencies:
-    "@smithy/core" "^1.4.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/signature-v4" "^2.2.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
+    "@smithy/core" "^2.0.1"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/signature-v4" "^3.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
     fast-xml-parser "4.2.5"
     tslib "^2.6.2"
 
-"@aws-sdk/credential-provider-cognito-identity@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.540.0.tgz#9b6a309d3809a6a056b6b6c9e7ac580cda19db31"
-  integrity sha512-XOTAIuVgticX+43GMpRbi5OHmJAhHfoHYsVGu0eRLhri1yFqUHXJgHUd51QQtlA8cFQN7JnFFM6sF5EDCPF49g==
+"@aws-sdk/credential-provider-cognito-identity@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.583.0.tgz#45468c8f3f73080cfdfd6708ab07e18c5cfdfb79"
+  integrity sha512-Z6VdDZApTxeI/n8qXBz3IkAdC0tL/mw+cz6EprqpkZG8bejHw78fVjeaVOBBkuskUikjwN4puv0SEJzoEMIqpA==
   dependencies:
-    "@aws-sdk/client-cognito-identity" "3.540.0"
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/client-cognito-identity" "3.583.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/credential-provider-env@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.535.0.tgz#26248e263a8107953d5496cb3760d4e7c877abcf"
-  integrity sha512-XppwO8c0GCGSAvdzyJOhbtktSEaShg14VJKg8mpMa1XcgqzmcqqHQjtDWbx5rZheY1VdpXZhpEzJkB6LpQejpA==
+"@aws-sdk/credential-provider-env@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.577.0.tgz#d587ea01a2288840e8483a236516c0f26cb4ba36"
+  integrity sha512-Jxu255j0gToMGEiqufP8ZtKI8HW90lOLjwJ3LrdlD/NLsAY0tOQf1fWc53u28hWmmNGMxmCrL2p66IOgMDhDUw==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/credential-provider-http@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.535.0.tgz#0a42f6b1a61d927bbce9f4afd25112f486bd05da"
-  integrity sha512-kdj1wCmOMZ29jSlUskRqN04S6fJ4dvt0Nq9Z32SA6wO7UG8ht6Ot9h/au/eTWJM3E1somZ7D771oK7dQt9b8yw==
-  dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/fetch-http-handler" "^2.5.0"
-    "@smithy/node-http-handler" "^2.5.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-stream" "^2.2.0"
+"@aws-sdk/credential-provider-http@3.582.0":
+  version "3.582.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.582.0.tgz#6ea9377461c4ce38d487ea0ae5888155f7c495a6"
+  integrity sha512-kGOUKw5ryPkDIYB69PjK3SicVLTbWB06ouFN2W1EvqUJpkQGPAUGzYcomKtt3mJaCTf/1kfoaHwARAl6KKSP8Q==
+  dependencies:
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/fetch-http-handler" "^3.0.1"
+    "@smithy/node-http-handler" "^3.0.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-stream" "^3.0.1"
     tslib "^2.6.2"
 
-"@aws-sdk/credential-provider-ini@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.540.0.tgz#8e17b23bf242152775db1473f7d2952beb6a5ef9"
-  integrity sha512-igN/RbsnulIBwqXbwsWmR3srqmtbPF1dm+JteGvUY31FW65fTVvWvSr945Y/cf1UbhPmIQXntlsqESqpkhTHwg==
-  dependencies:
-    "@aws-sdk/client-sts" "3.540.0"
-    "@aws-sdk/credential-provider-env" "3.535.0"
-    "@aws-sdk/credential-provider-process" "3.535.0"
-    "@aws-sdk/credential-provider-sso" "3.540.0"
-    "@aws-sdk/credential-provider-web-identity" "3.540.0"
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/credential-provider-imds" "^2.3.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/shared-ini-file-loader" "^2.4.0"
-    "@smithy/types" "^2.12.0"
+"@aws-sdk/credential-provider-ini@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.583.0.tgz#948ebd3ca257d7d9362d3294259e0be9526cd662"
+  integrity sha512-8I0oWNg/yps6ctjhEeL/qJ9BIa/+xXP7RPDQqFKZ2zBkWbmLLOoMWXRvl8uKUBD6qCe+DGmcu9skfVXeXSesEQ==
+  dependencies:
+    "@aws-sdk/credential-provider-env" "3.577.0"
+    "@aws-sdk/credential-provider-process" "3.577.0"
+    "@aws-sdk/credential-provider-sso" "3.583.0"
+    "@aws-sdk/credential-provider-web-identity" "3.577.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/credential-provider-imds" "^3.0.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/shared-ini-file-loader" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/credential-provider-node@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.540.0.tgz#e6fd3404de68e7f9580f01aa542b16e9abc58e5c"
-  integrity sha512-HKQZJbLHlrHX9A0B1poiYNXIIQfy8whTjuosTCYKPDBhhUyVAQfxy/KG726j0v43IhaNPLgTGZCJve4hAsazSw==
-  dependencies:
-    "@aws-sdk/credential-provider-env" "3.535.0"
-    "@aws-sdk/credential-provider-http" "3.535.0"
-    "@aws-sdk/credential-provider-ini" "3.540.0"
-    "@aws-sdk/credential-provider-process" "3.535.0"
-    "@aws-sdk/credential-provider-sso" "3.540.0"
-    "@aws-sdk/credential-provider-web-identity" "3.540.0"
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/credential-provider-imds" "^2.3.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/shared-ini-file-loader" "^2.4.0"
-    "@smithy/types" "^2.12.0"
+"@aws-sdk/credential-provider-node@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.583.0.tgz#8ce316409d91cddca0c85851ca50726ee666cff5"
+  integrity sha512-yBNypBXny7zJH85SzxDj8s1mbLXv9c/Vbq0qR3R3POj2idZ6ywB/qlIRC1XwBuv49Wvg8kA1wKXk3K3jrpcVIw==
+  dependencies:
+    "@aws-sdk/credential-provider-env" "3.577.0"
+    "@aws-sdk/credential-provider-http" "3.582.0"
+    "@aws-sdk/credential-provider-ini" "3.583.0"
+    "@aws-sdk/credential-provider-process" "3.577.0"
+    "@aws-sdk/credential-provider-sso" "3.583.0"
+    "@aws-sdk/credential-provider-web-identity" "3.577.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/credential-provider-imds" "^3.0.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/shared-ini-file-loader" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/credential-provider-process@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.535.0.tgz#ea1e8a38a32e36bbdc3f75eb03352e6eafa0c659"
-  integrity sha512-9O1OaprGCnlb/kYl8RwmH7Mlg8JREZctB8r9sa1KhSsWFq/SWO0AuJTyowxD7zL5PkeS4eTvzFFHWCa3OO5epA==
+"@aws-sdk/credential-provider-process@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.577.0.tgz#ba35b4f012563762bbd86a71989d366272ee0f07"
+  integrity sha512-Gin6BWtOiXxIgITrJ3Nwc+Y2P1uVT6huYR4EcbA/DJUPWyO0n9y5UFLewPvVbLkRn15JeEqErBLUrHclkiOKtw==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/shared-ini-file-loader" "^2.4.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/shared-ini-file-loader" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/credential-provider-sso@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.540.0.tgz#1fc5c53a0df8227249c73a3cb7660b1accb79186"
-  integrity sha512-tKkFqK227LF5ajc5EL6asXS32p3nkofpP8G7NRpU7zOEOQCg01KUc4JRX+ItI0T007CiN1J19yNoFqHLT/SqHg==
-  dependencies:
-    "@aws-sdk/client-sso" "3.540.0"
-    "@aws-sdk/token-providers" "3.540.0"
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/shared-ini-file-loader" "^2.4.0"
-    "@smithy/types" "^2.12.0"
+"@aws-sdk/credential-provider-sso@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.583.0.tgz#468bb6ca9bd7b89370d5ec7865a8e29e98772abc"
+  integrity sha512-G/1EvL9tBezSiU+06tG4K/kOvFfPjnheT4JSXqjPM7+vjKzgp2jxp1J9MMd69zs4jVWon932zMeGgjrCplzMEg==
+  dependencies:
+    "@aws-sdk/client-sso" "3.583.0"
+    "@aws-sdk/token-providers" "3.577.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/shared-ini-file-loader" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/credential-provider-web-identity@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.540.0.tgz#775a2090e9f4f89efe2ebdf1e2c109a47561c0e9"
-  integrity sha512-OpDm9w3A168B44hSjpnvECP4rvnFzD86rN4VYdGADuCvEa5uEcdA/JuT5WclFPDqdWEmFBqS1pxBIJBf0g2Q9Q==
+"@aws-sdk/credential-provider-web-identity@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.577.0.tgz#294fb71fa832d9f55ea1c56678357efa3cd7ca55"
+  integrity sha512-ZGHGNRaCtJJmszb9UTnC7izNCtRUttdPlLdMkh41KPS32vfdrBDHs1JrpbZijItRj1xKuOXsiYSXLAaHGcLh8Q==
   dependencies:
-    "@aws-sdk/client-sts" "3.540.0"
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
 "@aws-sdk/credential-providers@^3.186.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.540.0.tgz#649725589d210bc1237e2d3d8893302ef3a79ecf"
-  integrity sha512-tAmvqdZngCrER5/AAwTmDSjO05LGIshKL+lwcJr2OUV5jtQVzfbFrorf+b5dnI+3i8+zGcEAV9omra4XGrO9Kg==
-  dependencies:
-    "@aws-sdk/client-cognito-identity" "3.540.0"
-    "@aws-sdk/client-sso" "3.540.0"
-    "@aws-sdk/client-sts" "3.540.0"
-    "@aws-sdk/credential-provider-cognito-identity" "3.540.0"
-    "@aws-sdk/credential-provider-env" "3.535.0"
-    "@aws-sdk/credential-provider-http" "3.535.0"
-    "@aws-sdk/credential-provider-ini" "3.540.0"
-    "@aws-sdk/credential-provider-node" "3.540.0"
-    "@aws-sdk/credential-provider-process" "3.535.0"
-    "@aws-sdk/credential-provider-sso" "3.540.0"
-    "@aws-sdk/credential-provider-web-identity" "3.540.0"
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/credential-provider-imds" "^2.3.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/types" "^2.12.0"
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.583.0.tgz#138f4894cd2f00730b618434bfc86caec253636c"
+  integrity sha512-aD/lw6LJW51f+LgdR54UxyGvXqWZs4HCT310Qf794qFItDWXqhHK4EgS1x41BgAvXPUx0+HSO8OI4eb+AklckA==
+  dependencies:
+    "@aws-sdk/client-cognito-identity" "3.583.0"
+    "@aws-sdk/client-sso" "3.583.0"
+    "@aws-sdk/client-sts" "3.583.0"
+    "@aws-sdk/credential-provider-cognito-identity" "3.583.0"
+    "@aws-sdk/credential-provider-env" "3.577.0"
+    "@aws-sdk/credential-provider-http" "3.582.0"
+    "@aws-sdk/credential-provider-ini" "3.583.0"
+    "@aws-sdk/credential-provider-node" "3.583.0"
+    "@aws-sdk/credential-provider-process" "3.577.0"
+    "@aws-sdk/credential-provider-sso" "3.583.0"
+    "@aws-sdk/credential-provider-web-identity" "3.577.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/credential-provider-imds" "^3.0.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/middleware-host-header@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.535.0.tgz#d5264f813592f5e77df25e5a14bbb0e6441812db"
-  integrity sha512-0h6TWjBWtDaYwHMQJI9ulafeS4lLaw1vIxRjbpH0svFRt6Eve+Sy8NlVhECfTU2hNz/fLubvrUxsXoThaLBIew==
+"@aws-sdk/middleware-host-header@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.577.0.tgz#a3fc626d409ec850296740478c64ef5806d8b878"
+  integrity sha512-9ca5MJz455CODIVXs0/sWmJm7t3QO4EUa1zf8pE8grLpzf0J94bz/skDWm37Pli13T3WaAQBHCTiH2gUVfCsWg==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/middleware-logger@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.535.0.tgz#1a8ffd6c368edd6cb32e1edf7b1dced95c1820ee"
-  integrity sha512-huNHpONOrEDrdRTvSQr1cJiRMNf0S52NDXtaPzdxiubTkP+vni2MohmZANMOai/qT0olmEVX01LhZ0ZAOgmg6A==
+"@aws-sdk/middleware-logger@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.577.0.tgz#6da3b13ae284fb3930961f0fc8e20b1f6cf8be30"
+  integrity sha512-aPFGpGjTZcJYk+24bg7jT4XdIp42mFXSuPt49lw5KygefLyJM/sB0bKKqPYYivW0rcuZ9brQ58eZUNthrzYAvg==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/middleware-recursion-detection@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.535.0.tgz#6aa1e1bd1e84730d58a73021b745e20d4341a92d"
-  integrity sha512-am2qgGs+gwqmR4wHLWpzlZ8PWhm4ktj5bYSgDrsOfjhdBlWNxvPoID9/pDAz5RWL48+oH7I6SQzMqxXsFDikrw==
+"@aws-sdk/middleware-recursion-detection@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.577.0.tgz#fff76abc6d4521636f9e654ce5bf2c4c79249417"
+  integrity sha512-pn3ZVEd2iobKJlR3H+bDilHjgRnNrQ6HMmK9ZzZw89Ckn3Dcbv48xOv4RJvu0aU8SDLl/SNCxppKjeLDTPGBNA==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/middleware-user-agent@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.540.0.tgz#4981c64c1eeb6b5c453bce02d060b8c71d44994d"
-  integrity sha512-8Rd6wPeXDnOYzWj1XCmOKcx/Q87L0K1/EHqOBocGjLVbN3gmRxBvpmR1pRTjf7IsWfnnzN5btqtcAkfDPYQUMQ==
+"@aws-sdk/middleware-user-agent@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.583.0.tgz#5554b0de431cb3700368f01eb7425210fd3ee9a9"
+  integrity sha512-xVNXXXDWvBVI/AeVtSdA9SVumqxiZaESk/JpUn9GMkmtTKfter0Cweap+1iQ9j8bRAO0vNhmIkbcvdB1S4WVUw==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@aws-sdk/util-endpoints" "3.540.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@aws-sdk/util-endpoints" "3.583.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/region-config-resolver@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.535.0.tgz#20a30fb5fbbe27ab70f2ed16327bae7e367b5cec"
-  integrity sha512-IXOznDiaItBjsQy4Fil0kzX/J3HxIOknEphqHbOfUf+LpA5ugcsxuQQONrbEQusCBnfJyymrldBvBhFmtlU9Wg==
+"@aws-sdk/region-config-resolver@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.577.0.tgz#1fab6dc6c4ec3ad9a0352c1ce1a757464219fb00"
+  integrity sha512-4ChCFACNwzqx/xjg3zgFcW8Ali6R9C95cFECKWT/7CUM1D0MGvkclSH2cLarmHCmJgU6onKkJroFtWp0kHhgyg==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-config-provider" "^2.3.0"
-    "@smithy/util-middleware" "^2.2.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-config-provider" "^3.0.0"
+    "@smithy/util-middleware" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/token-providers@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.540.0.tgz#06fb874a62d3c496875768ac648bc6cca4c75a79"
-  integrity sha512-9BvtiVEZe5Ev88Wa4ZIUbtT6BVcPwhxmVInQ6c12MYNb0WNL54BN6wLy/eknAfF05gpX2/NDU2pUDOyMPdm/+g==
+"@aws-sdk/token-providers@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.577.0.tgz#8f9e96ff42994dfd0b5b3692b583644ccda04893"
+  integrity sha512-0CkIZpcC3DNQJQ1hDjm2bdSy/Xjs7Ny5YvSsacasGOkNfk+FdkiQy6N67bZX3Zbc9KIx+Nz4bu3iDeNSNplnnQ==
   dependencies:
-    "@aws-sdk/client-sso-oidc" "3.540.0"
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/shared-ini-file-loader" "^2.4.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/shared-ini-file-loader" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/types@3.535.0", "@aws-sdk/types@^3.222.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.535.0.tgz#5e6479f31299dd9df170e63f4d10fe739008cf04"
-  integrity sha512-aY4MYfduNj+sRR37U7XxYR8wemfbKP6lx00ze2M2uubn7mZotuVrWYAafbMSXrdEMSToE5JDhr28vArSOoLcSg==
+"@aws-sdk/types@3.577.0", "@aws-sdk/types@^3.222.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.577.0.tgz#7700784d368ce386745f8c340d9d68cea4716f90"
+  integrity sha512-FT2JZES3wBKN/alfmhlo+3ZOq/XJ0C7QOZcDNrpKjB0kqYoKjhVKZ/Hx6ArR0czkKfHzBBEs6y40ebIHx2nSmA==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/util-endpoints@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.540.0.tgz#a7fea1d2a5e64623353aaa6ee32dbb86ab9cd3f8"
-  integrity sha512-1kMyQFAWx6f8alaI6UT65/5YW/7pDWAKAdNwL6vuJLea03KrZRX3PMoONOSJpAS5m3Ot7HlWZvf3wZDNTLELZw==
+"@aws-sdk/util-endpoints@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.583.0.tgz#1554d3b4124be21a72a519603e9727d973845504"
+  integrity sha512-ZC9mb2jq6BFXPYsUsD2tmYcnlmd+9PGNwnFNn8jk4abna5Jjk2wDknN81ybktmBR5ttN9W8ugmktuKtvAMIDCQ==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-endpoints" "^1.2.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-endpoints" "^2.0.0"
     tslib "^2.6.2"
 
 "@aws-sdk/util-locate-window@^3.0.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.535.0.tgz#0200a336fddd47dd6567ce15d01f62be50a315d7"
-  integrity sha512-PHJ3SL6d2jpcgbqdgiPxkXpu7Drc2PYViwxSIqvvMKhDwzSB1W3mMvtpzwKM4IE7zLFodZo0GKjJ9AsoXndXhA==
+  version "3.568.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz#2acc4b2236af0d7494f7e517401ba6b3c4af11ff"
+  integrity sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig==
   dependencies:
     tslib "^2.6.2"
 
-"@aws-sdk/util-user-agent-browser@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.535.0.tgz#d67d72e8b933051620f18ddb1c2be225f79f588f"
-  integrity sha512-RWMcF/xV5n+nhaA/Ff5P3yNP3Kur/I+VNZngog4TEs92oB/nwOdAg/2JL8bVAhUbMrjTjpwm7PItziYFQoqyig==
+"@aws-sdk/util-user-agent-browser@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.577.0.tgz#d4d2cdb3a2b3d1c8b35f239ee9f7b2c87bee66ea"
+  integrity sha512-zEAzHgR6HWpZOH7xFgeJLc6/CzMcx4nxeQolZxVZoB5pPaJd3CjyRhZN0xXeZB0XIRCWmb4yJBgyiugXLNMkLA==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/types" "^3.0.0"
     bowser "^2.11.0"
     tslib "^2.6.2"
 
-"@aws-sdk/util-user-agent-node@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.535.0.tgz#f5c26fb6f3f561d3cf35f96f303b1775afad0a5b"
-  integrity sha512-dRek0zUuIT25wOWJlsRm97nTkUlh1NDcLsQZIN2Y8KxhwoXXWtJs5vaDPT+qAg+OpcNj80i1zLR/CirqlFg/TQ==
+"@aws-sdk/util-user-agent-node@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.577.0.tgz#0215ea10ead622a61b575a7181a4c51ae8e71449"
+  integrity sha512-XqvtFjbSMtycZTWVwDe8DRWovuoMbA54nhUoZwVU6rW9OSD6NZWGR512BUGHFaWzW0Wg8++Dj10FrKTG2XtqfA==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
 "@aws-sdk/util-utf8-browser@^3.0.0":
@@ -502,12 +494,12 @@
     tslib "^2.3.1"
 
 "@babel/cli@^7.16.0":
-  version "7.24.1"
-  resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.24.1.tgz#2e11e071e32fe82850b4fe514f56b9c9e1c44911"
-  integrity sha512-HbmrtxyFUr34LwAlV9jS+sSIjUp4FpdtIMGwgufY3AsxrIfsh/HxlMTywsONAZsU0RMYbZtbZFpUCrSGs7o0EA==
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.24.6.tgz#fac1fb099dff635efa1110882063c44a211cf18c"
+  integrity sha512-Sm/YhG/0REw9SKByFHDf4hkk7PYsjcsOyZgHGz1nvab4tUTQ9N4XVv+ykK0Y+VCJ3OshA/7EDyxnwCd8NEP/mQ==
   dependencies:
     "@jridgewell/trace-mapping" "^0.3.25"
-    commander "^4.0.1"
+    commander "^6.2.0"
     convert-source-map "^2.0.0"
     fs-readdir-recursive "^1.1.0"
     glob "^7.2.0"
@@ -517,198 +509,197 @@
     "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3"
     chokidar "^3.4.0"
 
-"@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.1", "@babel/code-frame@^7.24.2":
-  version "7.24.2"
-  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.2.tgz#718b4b19841809a58b29b68cde80bc5e1aa6d9ae"
-  integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==
+"@babel/code-frame@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.6.tgz#ab88da19344445c3d8889af2216606d3329f3ef2"
+  integrity sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==
   dependencies:
-    "@babel/highlight" "^7.24.2"
+    "@babel/highlight" "^7.24.6"
     picocolors "^1.0.0"
 
-"@babel/compat-data@^7.23.5":
-  version "7.24.1"
-  resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.1.tgz#31c1f66435f2a9c329bb5716a6d6186c516c3742"
-  integrity sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==
+"@babel/compat-data@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.6.tgz#b3600217688cabb26e25f8e467019e66d71b7ae2"
+  integrity sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==
 
 "@babel/core@^7.16.5":
-  version "7.24.3"
-  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.3.tgz#568864247ea10fbd4eff04dda1e05f9e2ea985c3"
-  integrity sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.6.tgz#8650e0e4b03589ebe886c4e4a60398db0a7ec787"
+  integrity sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==
   dependencies:
     "@ampproject/remapping" "^2.2.0"
-    "@babel/code-frame" "^7.24.2"
-    "@babel/generator" "^7.24.1"
-    "@babel/helper-compilation-targets" "^7.23.6"
-    "@babel/helper-module-transforms" "^7.23.3"
-    "@babel/helpers" "^7.24.1"
-    "@babel/parser" "^7.24.1"
-    "@babel/template" "^7.24.0"
-    "@babel/traverse" "^7.24.1"
-    "@babel/types" "^7.24.0"
+    "@babel/code-frame" "^7.24.6"
+    "@babel/generator" "^7.24.6"
+    "@babel/helper-compilation-targets" "^7.24.6"
+    "@babel/helper-module-transforms" "^7.24.6"
+    "@babel/helpers" "^7.24.6"
+    "@babel/parser" "^7.24.6"
+    "@babel/template" "^7.24.6"
+    "@babel/traverse" "^7.24.6"
+    "@babel/types" "^7.24.6"
     convert-source-map "^2.0.0"
     debug "^4.1.0"
     gensync "^1.0.0-beta.2"
     json5 "^2.2.3"
     semver "^6.3.1"
 
-"@babel/generator@^7.24.1", "@babel/generator@^7.4.0":
-  version "7.24.1"
-  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.1.tgz#e67e06f68568a4ebf194d1c6014235344f0476d0"
-  integrity sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==
+"@babel/generator@^7.24.6", "@babel/generator@^7.4.0":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.6.tgz#dfac82a228582a9d30c959fe50ad28951d4737a7"
+  integrity sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==
   dependencies:
-    "@babel/types" "^7.24.0"
+    "@babel/types" "^7.24.6"
     "@jridgewell/gen-mapping" "^0.3.5"
     "@jridgewell/trace-mapping" "^0.3.25"
     jsesc "^2.5.1"
 
-"@babel/helper-annotate-as-pure@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882"
-  integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==
+"@babel/helper-annotate-as-pure@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.6.tgz#517af93abc77924f9b2514c407bbef527fb8938d"
+  integrity sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==
   dependencies:
-    "@babel/types" "^7.22.5"
+    "@babel/types" "^7.24.6"
 
-"@babel/helper-compilation-targets@^7.23.6":
-  version "7.23.6"
-  resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991"
-  integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==
+"@babel/helper-compilation-targets@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz#4a51d681f7680043d38e212715e2a7b1ad29cb51"
+  integrity sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==
   dependencies:
-    "@babel/compat-data" "^7.23.5"
-    "@babel/helper-validator-option" "^7.23.5"
+    "@babel/compat-data" "^7.24.6"
+    "@babel/helper-validator-option" "^7.24.6"
     browserslist "^4.22.2"
     lru-cache "^5.1.1"
     semver "^6.3.1"
 
-"@babel/helper-environment-visitor@^7.22.20":
-  version "7.22.20"
-  resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167"
-  integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==
-
-"@babel/helper-function-name@^7.23.0":
-  version "7.23.0"
-  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759"
-  integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==
-  dependencies:
-    "@babel/template" "^7.22.15"
-    "@babel/types" "^7.23.0"
-
-"@babel/helper-hoist-variables@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb"
-  integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==
-  dependencies:
-    "@babel/types" "^7.22.5"
-
-"@babel/helper-module-imports@^7.22.15":
-  version "7.24.3"
-  resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz#6ac476e6d168c7c23ff3ba3cf4f7841d46ac8128"
-  integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==
-  dependencies:
-    "@babel/types" "^7.24.0"
-
-"@babel/helper-module-transforms@^7.23.3":
-  version "7.23.3"
-  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1"
-  integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==
-  dependencies:
-    "@babel/helper-environment-visitor" "^7.22.20"
-    "@babel/helper-module-imports" "^7.22.15"
-    "@babel/helper-simple-access" "^7.22.5"
-    "@babel/helper-split-export-declaration" "^7.22.6"
-    "@babel/helper-validator-identifier" "^7.22.20"
-
-"@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.0":
-  version "7.24.0"
-  resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz#945681931a52f15ce879fd5b86ce2dae6d3d7f2a"
-  integrity sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==
-
-"@babel/helper-simple-access@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de"
-  integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==
-  dependencies:
-    "@babel/types" "^7.22.5"
-
-"@babel/helper-split-export-declaration@^7.22.6":
-  version "7.22.6"
-  resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c"
-  integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==
-  dependencies:
-    "@babel/types" "^7.22.5"
-
-"@babel/helper-string-parser@^7.23.4":
-  version "7.24.1"
-  resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz#f99c36d3593db9540705d0739a1f10b5e20c696e"
-  integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==
-
-"@babel/helper-validator-identifier@^7.22.20":
-  version "7.22.20"
-  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
-  integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
-
-"@babel/helper-validator-option@^7.23.5":
-  version "7.23.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307"
-  integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==
-
-"@babel/helpers@^7.24.1":
-  version "7.24.1"
-  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.1.tgz#183e44714b9eba36c3038e442516587b1e0a1a94"
-  integrity sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==
-  dependencies:
-    "@babel/template" "^7.24.0"
-    "@babel/traverse" "^7.24.1"
-    "@babel/types" "^7.24.0"
-
-"@babel/highlight@^7.24.2":
-  version "7.24.2"
-  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.2.tgz#3f539503efc83d3c59080a10e6634306e0370d26"
-  integrity sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==
-  dependencies:
-    "@babel/helper-validator-identifier" "^7.22.20"
+"@babel/helper-environment-visitor@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.6.tgz#ac7ad5517821641550f6698dd5468f8cef78620d"
+  integrity sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==
+
+"@babel/helper-function-name@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.24.6.tgz#cebdd063386fdb95d511d84b117e51fc68fec0c8"
+  integrity sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==
+  dependencies:
+    "@babel/template" "^7.24.6"
+    "@babel/types" "^7.24.6"
+
+"@babel/helper-hoist-variables@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.6.tgz#8a7ece8c26756826b6ffcdd0e3cf65de275af7f9"
+  integrity sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==
+  dependencies:
+    "@babel/types" "^7.24.6"
+
+"@babel/helper-module-imports@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.6.tgz#65e54ffceed6a268dc4ce11f0433b82cfff57852"
+  integrity sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==
+  dependencies:
+    "@babel/types" "^7.24.6"
+
+"@babel/helper-module-transforms@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz#22346ed9df44ce84dee850d7433c5b73fab1fe4e"
+  integrity sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==
+  dependencies:
+    "@babel/helper-environment-visitor" "^7.24.6"
+    "@babel/helper-module-imports" "^7.24.6"
+    "@babel/helper-simple-access" "^7.24.6"
+    "@babel/helper-split-export-declaration" "^7.24.6"
+    "@babel/helper-validator-identifier" "^7.24.6"
+
+"@babel/helper-plugin-utils@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.6.tgz#fa02a32410a15a6e8f8185bcbf608f10528d2a24"
+  integrity sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==
+
+"@babel/helper-simple-access@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz#1d6e04d468bba4fc963b4906f6dac6286cfedff1"
+  integrity sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==
+  dependencies:
+    "@babel/types" "^7.24.6"
+
+"@babel/helper-split-export-declaration@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.6.tgz#e830068f7ba8861c53b7421c284da30ae656d7a3"
+  integrity sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==
+  dependencies:
+    "@babel/types" "^7.24.6"
+
+"@babel/helper-string-parser@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz#28583c28b15f2a3339cfafafeaad42f9a0e828df"
+  integrity sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==
+
+"@babel/helper-validator-identifier@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz#08bb6612b11bdec78f3feed3db196da682454a5e"
+  integrity sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==
+
+"@babel/helper-validator-option@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.6.tgz#59d8e81c40b7d9109ab7e74457393442177f460a"
+  integrity sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==
+
+"@babel/helpers@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.6.tgz#cd124245299e494bd4e00edda0e4ea3545c2c176"
+  integrity sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==
+  dependencies:
+    "@babel/template" "^7.24.6"
+    "@babel/types" "^7.24.6"
+
+"@babel/highlight@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.6.tgz#6d610c1ebd2c6e061cade0153bf69b0590b7b3df"
+  integrity sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==
+  dependencies:
+    "@babel/helper-validator-identifier" "^7.24.6"
     chalk "^2.4.2"
     js-tokens "^4.0.0"
     picocolors "^1.0.0"
 
 "@babel/node@^7.16.5":
-  version "7.23.9"
-  resolved "https://registry.yarnpkg.com/@babel/node/-/node-7.23.9.tgz#fc40dc371439f1a45535ebf515232f4f046ef7a9"
-  integrity sha512-/d4ju/POwlGIJlZ+NqWH1qu61wt6ZlTZZZutrK2MOSdaH1JCh726nLw/GSvAjG+LTY6CO9SsB8uWcttnFKm6yg==
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/node/-/node-7.24.6.tgz#cefca562b9c569583431f1f07a0965101614b223"
+  integrity sha512-63bD/Kbh1Vl6HapTZLSsyaGlQhhpF1/GpyS1oJotroJKoamOgKKEEKk3iHZAkicjcr+n4V4zdB0V+8siv6AZ5Q==
   dependencies:
-    "@babel/register" "^7.23.7"
-    commander "^4.0.1"
+    "@babel/register" "^7.24.6"
+    commander "^6.2.0"
     core-js "^3.30.2"
     node-environment-flags "^1.0.5"
     regenerator-runtime "^0.14.0"
     v8flags "^3.1.1"
 
-"@babel/parser@^7.24.0", "@babel/parser@^7.24.1", "@babel/parser@^7.4.3":
-  version "7.24.1"
-  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.1.tgz#1e416d3627393fab1cb5b0f2f1796a100ae9133a"
-  integrity sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==
+"@babel/parser@^7.24.6", "@babel/parser@^7.4.3":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.6.tgz#5e030f440c3c6c78d195528c3b688b101a365328"
+  integrity sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==
 
-"@babel/plugin-syntax-jsx@^7.23.3":
-  version "7.24.1"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz#3f6ca04b8c841811dbc3c5c5f837934e0d626c10"
-  integrity sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==
+"@babel/plugin-syntax-jsx@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.6.tgz#bcca2964150437f88f65e3679e3d68762287b9c8"
+  integrity sha512-lWfvAIFNWMlCsU0DRUun2GpFwZdGTukLaHJqRh1JRb80NdAP5Sb1HDHB5X9P9OtgZHQl089UzQkpYlBq2VTPRw==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.24.0"
+    "@babel/helper-plugin-utils" "^7.24.6"
 
 "@babel/plugin-transform-react-jsx@^7.16.5":
-  version "7.23.4"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz#393f99185110cea87184ea47bcb4a7b0c2e39312"
-  integrity sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.6.tgz#4ca3660ca663d20095455571615d6263986cdfe4"
+  integrity sha512-pCtPHhpRZHfwdA5G1Gpk5mIzMA99hv0R8S/Ket50Rw+S+8hkt3wBWqdqHaPw0CuUYxdshUgsPiLQ5fAs4ASMhw==
   dependencies:
-    "@babel/helper-annotate-as-pure" "^7.22.5"
-    "@babel/helper-module-imports" "^7.22.15"
-    "@babel/helper-plugin-utils" "^7.22.5"
-    "@babel/plugin-syntax-jsx" "^7.23.3"
-    "@babel/types" "^7.23.4"
+    "@babel/helper-annotate-as-pure" "^7.24.6"
+    "@babel/helper-module-imports" "^7.24.6"
+    "@babel/helper-plugin-utils" "^7.24.6"
+    "@babel/plugin-syntax-jsx" "^7.24.6"
+    "@babel/types" "^7.24.6"
 
-"@babel/register@^7.23.7":
-  version "7.23.7"
-  resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.23.7.tgz#485a5e7951939d21304cae4af1719fdb887bc038"
-  integrity sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==
+"@babel/register@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.24.6.tgz#59e21dcc79e1d04eed5377633b0f88029a6bef9e"
+  integrity sha512-WSuFCc2wCqMeXkz/i3yfAAsxwWflEgbVkZzivgAmXl/MxrXeoYFZOOPllbC8R8WTF7u61wSRQtDVZ1879cdu6w==
   dependencies:
     clone-deep "^4.0.1"
     find-cache-dir "^2.0.0"
@@ -716,38 +707,38 @@
     pirates "^4.0.6"
     source-map-support "^0.5.16"
 
-"@babel/template@^7.22.15", "@babel/template@^7.24.0", "@babel/template@^7.4.0":
-  version "7.24.0"
-  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50"
-  integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==
-  dependencies:
-    "@babel/code-frame" "^7.23.5"
-    "@babel/parser" "^7.24.0"
-    "@babel/types" "^7.24.0"
-
-"@babel/traverse@^7.24.1", "@babel/traverse@^7.4.3":
-  version "7.24.1"
-  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.1.tgz#d65c36ac9dd17282175d1e4a3c49d5b7988f530c"
-  integrity sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==
-  dependencies:
-    "@babel/code-frame" "^7.24.1"
-    "@babel/generator" "^7.24.1"
-    "@babel/helper-environment-visitor" "^7.22.20"
-    "@babel/helper-function-name" "^7.23.0"
-    "@babel/helper-hoist-variables" "^7.22.5"
-    "@babel/helper-split-export-declaration" "^7.22.6"
-    "@babel/parser" "^7.24.1"
-    "@babel/types" "^7.24.0"
+"@babel/template@^7.24.6", "@babel/template@^7.4.0":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.6.tgz#048c347b2787a6072b24c723664c8d02b67a44f9"
+  integrity sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==
+  dependencies:
+    "@babel/code-frame" "^7.24.6"
+    "@babel/parser" "^7.24.6"
+    "@babel/types" "^7.24.6"
+
+"@babel/traverse@^7.24.6", "@babel/traverse@^7.4.3":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.6.tgz#0941ec50cdeaeacad0911eb67ae227a4f8424edc"
+  integrity sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==
+  dependencies:
+    "@babel/code-frame" "^7.24.6"
+    "@babel/generator" "^7.24.6"
+    "@babel/helper-environment-visitor" "^7.24.6"
+    "@babel/helper-function-name" "^7.24.6"
+    "@babel/helper-hoist-variables" "^7.24.6"
+    "@babel/helper-split-export-declaration" "^7.24.6"
+    "@babel/parser" "^7.24.6"
+    "@babel/types" "^7.24.6"
     debug "^4.3.1"
     globals "^11.1.0"
 
-"@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.4", "@babel/types@^7.24.0", "@babel/types@^7.4.0":
-  version "7.24.0"
-  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.0.tgz#3b951f435a92e7333eba05b7566fd297960ea1bf"
-  integrity sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==
+"@babel/types@^7.24.6", "@babel/types@^7.4.0":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.6.tgz#ba4e1f59870c10dc2fa95a274ac4feec23b21912"
+  integrity sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==
   dependencies:
-    "@babel/helper-string-parser" "^7.23.4"
-    "@babel/helper-validator-identifier" "^7.22.20"
+    "@babel/helper-string-parser" "^7.24.6"
+    "@babel/helper-validator-identifier" "^7.24.6"
     to-fast-properties "^2.0.0"
 
 "@colors/colors@1.6.0", "@colors/colors@^1.6.0":
@@ -781,16 +772,16 @@
     kuler "^2.0.0"
 
 "@discordjs/builders@^1.3.0":
-  version "1.7.0"
-  resolved "https://registry.yarnpkg.com/@discordjs/builders/-/builders-1.7.0.tgz#e2478c7e55b0f4c40837edb8f102bce977323a37"
-  integrity sha512-GDtbKMkg433cOZur8Dv6c25EHxduNIBsxeHrsRoIM8+AwmEZ8r0tEpckx/sHwTLwQPOF3e2JWloZh9ofCaMfAw==
+  version "1.8.1"
+  resolved "https://registry.yarnpkg.com/@discordjs/builders/-/builders-1.8.1.tgz#5bca6e50a012492ecc03480ced53cbc7a1aac054"
+  integrity sha512-GkF+HM01FHy+NSoTaUPR8z44otfQgJ1AIsRxclYGUZDyUbdZEFyD/5QVv2Y1Flx6M+B0bQLzg2M9CJv5lGTqpA==
   dependencies:
-    "@discordjs/formatters" "^0.3.3"
-    "@discordjs/util" "^1.0.2"
-    "@sapphire/shapeshift" "^3.9.3"
-    discord-api-types "0.37.61"
+    "@discordjs/formatters" "^0.4.0"
+    "@discordjs/util" "^1.1.0"
+    "@sapphire/shapeshift" "^3.9.7"
+    discord-api-types "0.37.83"
     fast-deep-equal "^3.1.3"
-    ts-mixer "^6.0.3"
+    ts-mixer "^6.0.4"
     tslib "^2.6.2"
 
 "@discordjs/collection@^1.2.0", "@discordjs/collection@^1.5.1":
@@ -798,12 +789,12 @@
   resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-1.5.3.tgz#5a1250159ebfff9efa4f963cfa7e97f1b291be18"
   integrity sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ==
 
-"@discordjs/formatters@^0.3.3":
-  version "0.3.3"
-  resolved "https://registry.yarnpkg.com/@discordjs/formatters/-/formatters-0.3.3.tgz#b16fdd79bb819680ab7e519193004e9dc124a749"
-  integrity sha512-wTcI1Q5cps1eSGhl6+6AzzZkBBlVrBdc9IUhJbijRgVjCNIIIZPgqnUj3ntFODsHrdbGU8BEG9XmDQmgEEYn3w==
+"@discordjs/formatters@^0.4.0":
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/@discordjs/formatters/-/formatters-0.4.0.tgz#066a2c2163b26ac066e6f621f17445be9690c6a9"
+  integrity sha512-fJ06TLC1NiruF35470q3Nr1bi95BdvKFAF+T5bNfZJ4bNdqZ3VZ+Ttg6SThqTxm6qumSG3choxLBHMC69WXNXQ==
   dependencies:
-    discord-api-types "0.37.61"
+    discord-api-types "0.37.83"
 
 "@discordjs/rest@^1.3.0":
   version "1.7.1"
@@ -829,10 +820,10 @@
   resolved "https://registry.yarnpkg.com/@discordjs/util/-/util-0.3.1.tgz#4e8737e1dcff7e9f5eccc3116fb44755b65b1e97"
   integrity sha512-HxXKYKg7vohx2/OupUN/4Sd02Ev3PBJ5q0gtjdcvXb0ErCva8jNHWfe/v5sU3UKjIB/uxOhc+TDOnhqffj9pRA==
 
-"@discordjs/util@^1.0.2":
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/@discordjs/util/-/util-1.0.2.tgz#dc1896d764452b1bd9707eb9aa99ccfbb30bd1c0"
-  integrity sha512-IRNbimrmfb75GMNEjyznqM1tkI7HrZOf14njX7tCAAUetyZM1Pr8hX/EK2lxBCOgWDRmigbp24fD1hdMfQK5lw==
+"@discordjs/util@^1.1.0":
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/@discordjs/util/-/util-1.1.0.tgz#dcffd2b61aab8eadd66bea67811bc34fc769bb2a"
+  integrity sha512-IndcI5hzlNZ7GS96RV3Xw1R2kaDuXEp7tRIy/KlhidpN/BQ1qh1NZt3377dMLTa44xDUNKT7hnXkA/oUAzD/lg==
 
 "@fastify/busboy@^2.0.0":
   version "2.1.1"
@@ -981,10 +972,10 @@
   resolved "https://registry.yarnpkg.com/@sapphire/async-queue/-/async-queue-1.5.2.tgz#2982dce16e5b8b1ea792604d20c23c0585877b97"
   integrity sha512-7X7FFAA4DngXUl95+hYbUF19bp1LGiffjJtu7ygrZrbdCSsdDDBaSjB7Akw0ZbOu6k0xpXyljnJ6/RZUvLfRdg==
 
-"@sapphire/shapeshift@^3.9.3":
-  version "3.9.6"
-  resolved "https://registry.yarnpkg.com/@sapphire/shapeshift/-/shapeshift-3.9.6.tgz#bd9629c08641f5b94ae094e23f092187a3ed9a7d"
-  integrity sha512-4+Na/fxu2SEepZRb9z0dbsVh59QtwPuBg/UVaDib3av7ZY14b14+z09z6QVn0P6Dv6eOU2NDTsjIi0mbtgP56g==
+"@sapphire/shapeshift@^3.9.7":
+  version "3.9.7"
+  resolved "https://registry.yarnpkg.com/@sapphire/shapeshift/-/shapeshift-3.9.7.tgz#43e23243cac8a0c046bf1e73baf3dbf407d33a0c"
+  integrity sha512-4It2mxPSr4OGn4HSQWGmhFMsNFGfFVhWeRPCRwbH972Ek2pzfGRZtb0pJ4Ze6oIzcyh2jw7nUDa6qGlWofgd9g==
   dependencies:
     fast-deep-equal "^3.1.3"
     lodash "^4.17.21"
@@ -994,13 +985,13 @@
   resolved "https://registry.yarnpkg.com/@sapphire/snowflake/-/snowflake-3.5.3.tgz#0c102aa2ec5b34f806e9bc8625fc6a5e1d0a0c6a"
   integrity sha512-jjmJywLAFoWeBi1W7994zZyiNWPIiqRRNAmSERxyg93xRGzNYvGjlZ0gR6x0F4gPRi2+0O6S71kOZYyr3cxaIQ==
 
-"@sendgrid/client@^8.1.1":
-  version "8.1.1"
-  resolved "https://registry.yarnpkg.com/@sendgrid/client/-/client-8.1.1.tgz#5c15b59973da3e108257883e408c4afd74844248"
-  integrity sha512-pg0gYhAdyQil3Aga7/xHVcZFpvDAjAQMNBgMy5njTSkjACoWHmpSi1nWBZM7nIH/ptcRNMpnBbm9B5EvQ8fX2w==
+"@sendgrid/client@^8.1.3":
+  version "8.1.3"
+  resolved "https://registry.yarnpkg.com/@sendgrid/client/-/client-8.1.3.tgz#51fd4a318627c4b615ff98e35609e98486a3bd6f"
+  integrity sha512-mRwTticRZIdUTsnyzvlK6dMu3jni9ci9J+dW/6fMMFpGRAJdCJlivFVYQvqk8kRS3RnFzS7sf6BSmhLl1ldDhA==
   dependencies:
     "@sendgrid/helpers" "^8.0.0"
-    axios "^1.6.4"
+    axios "^1.6.8"
 
 "@sendgrid/helpers@^8.0.0":
   version "8.0.0"
@@ -1010,11 +1001,11 @@
     deepmerge "^4.2.2"
 
 "@sendgrid/mail@*":
-  version "8.1.1"
-  resolved "https://registry.yarnpkg.com/@sendgrid/mail/-/mail-8.1.1.tgz#506bc02c3a884d5c979278d6966f118afce37f93"
-  integrity sha512-tNtmgWLtBA7ZxKtPuEGOaIdEZP1vZSXsj5zg9iuoDBPVj/fNz+7LWzndvTcKumHk5eaDrS0UPXJqBm61m3+H1A==
+  version "8.1.3"
+  resolved "https://registry.yarnpkg.com/@sendgrid/mail/-/mail-8.1.3.tgz#d371cbddcd2e8ca9469a68d1ed0c6b3a5c365e5e"
+  integrity sha512-Wg5iKSUOER83/cfY6rbPa+o3ChnYzWwv1OcsR8gCV8SKi+sUPIMroildimlnb72DBkQxcbylxng1W7f0RIX7MQ==
   dependencies:
-    "@sendgrid/client" "^8.1.1"
+    "@sendgrid/client" "^8.1.3"
     "@sendgrid/helpers" "^8.0.0"
 
 "@sideway/address@^4.1.5":
@@ -1034,382 +1025,371 @@
   resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df"
   integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==
 
-"@smithy/abort-controller@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-2.2.0.tgz#18983401a5e2154b5c94057730024a7d14cbcd35"
-  integrity sha512-wRlta7GuLWpTqtFfGo+nZyOO1vEvewdNR1R4rTxpC8XU6vG/NDyrFBhwLZsqg1NUoR1noVaXJPC/7ZK47QCySw==
+"@smithy/abort-controller@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-3.0.0.tgz#5815f5d4618e14bf8d031bb98a99adabbb831168"
+  integrity sha512-p6GlFGBt9K4MYLu72YuJ523NVR4A8oHlC5M2JO6OmQqN8kAc/uh1JqLE+FizTokrSJGg0CSvC+BrsmGzKtsZKA==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/config-resolver@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-2.2.0.tgz#54f40478bb61709b396960a3535866dba5422757"
-  integrity sha512-fsiMgd8toyUba6n1WRmr+qACzXltpdDkPTAaDqc8QqPBUzO+/JKwL6bUBseHVi8tu9l+3JOK+tSf7cay+4B3LA==
+"@smithy/config-resolver@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-3.0.0.tgz#d37b31e3202c5ce54d9bd2406dcde7c7b5073cbd"
+  integrity sha512-2GzOfADwYLQugYkKQhIyZyQlM05K+tMKvRnc6eFfZcpJGRfKoMUMYdPlBKmqHwQFXQKBrGV6cxL9oymWgDzvFw==
   dependencies:
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-config-provider" "^2.3.0"
-    "@smithy/util-middleware" "^2.2.0"
-    tslib "^2.6.2"
-
-"@smithy/core@^1.4.0":
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/@smithy/core/-/core-1.4.0.tgz#5f9f86b681b9cbf23904041dad6f0531efe8375e"
-  integrity sha512-uu9ZDI95Uij4qk+L6kyFjdk11zqBkcJ3Lv0sc6jZrqHvLyr0+oeekD3CnqMafBn/5PRI6uv6ulW3kNLRBUHeVw==
-  dependencies:
-    "@smithy/middleware-endpoint" "^2.5.0"
-    "@smithy/middleware-retry" "^2.2.0"
-    "@smithy/middleware-serde" "^2.3.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-middleware" "^2.2.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-config-provider" "^3.0.0"
+    "@smithy/util-middleware" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/credential-provider-imds@^2.3.0":
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-2.3.0.tgz#326ce401b82e53f3c7ee4862a066136959a06166"
-  integrity sha512-BWB9mIukO1wjEOo1Ojgl6LrG4avcaC7T/ZP6ptmAaW4xluhSIPZhY+/PI5YKzlk+jsm+4sQZB45Bt1OfMeQa3w==
-  dependencies:
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/url-parser" "^2.2.0"
+"@smithy/core@^2.0.1":
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/@smithy/core/-/core-2.0.1.tgz#8a7ac8faa0227912ce260bc3f976a5e254323920"
+  integrity sha512-rcMkjvwxH/bER+oZUPR0yTA0ELD6m3A+d92+CFkdF6HJFCBB1bXo7P5pm21L66XwTN01B6bUhSCQ7cymWRD8zg==
+  dependencies:
+    "@smithy/middleware-endpoint" "^3.0.0"
+    "@smithy/middleware-retry" "^3.0.1"
+    "@smithy/middleware-serde" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-middleware" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/eventstream-codec@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-2.2.0.tgz#63d74fa817188995eb55e792a38060b0ede98dc4"
-  integrity sha512-8janZoJw85nJmQZc4L8TuePp2pk1nxLgkxIR0TUjKJ5Dkj5oelB9WtiSSGXCQvNsJl0VSTvK/2ueMXxvpa9GVw==
+"@smithy/credential-provider-imds@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-3.0.0.tgz#a290eb0224ef045742e5c806685cf63d44a084f3"
+  integrity sha512-lfmBiFQcA3FsDAPxNfY0L7CawcWtbyWsBOHo34nF095728JLkBX4Y9q/VPPE2r7fqMVK+drmDigqE2/SSQeVRA==
   dependencies:
-    "@aws-crypto/crc32" "3.0.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-hex-encoding" "^2.2.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/url-parser" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/fetch-http-handler@^2.5.0":
-  version "2.5.0"
-  resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-2.5.0.tgz#0b8e1562807fdf91fe7dd5cde620d7a03ddc10ac"
-  integrity sha512-BOWEBeppWhLn/no/JxUL/ghTfANTjT7kg3Ww2rPqTUY9R4yHPXxJ9JhMe3Z03LN3aPwiwlpDIUcVw1xDyHqEhw==
+"@smithy/fetch-http-handler@^3.0.1":
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-3.0.1.tgz#dacfdf6e70d639fac4a0f57c42ce13f0ed14ff22"
+  integrity sha512-uaH74i5BDj+rBwoQaXioKpI0SHBJFtOVwzrCpxZxphOW0ki5jhj7dXvDMYM2IJem8TpdFvS2iC08sjOblfFGFg==
   dependencies:
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/querystring-builder" "^2.2.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-base64" "^2.3.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/querystring-builder" "^3.0.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-base64" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/hash-node@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-2.2.0.tgz#df29e1e64811be905cb3577703b0e2d0b07fc5cc"
-  integrity sha512-zLWaC/5aWpMrHKpoDF6nqpNtBhlAYKF/7+9yMN7GpdR8CzohnWfGtMznPybnwSS8saaXBMxIGwJqR4HmRp6b3g==
+"@smithy/hash-node@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-3.0.0.tgz#f44b5fff193e241c1cdcc957b296b60f186f0e59"
+  integrity sha512-84qXstNemP3XS5jcof0el6+bDfjzuvhJPQTEfro3lgtbCtKgzPm3MgiS6ehXVPjeQ5+JS0HqmTz8f/RYfzHVxw==
   dependencies:
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-buffer-from" "^2.2.0"
-    "@smithy/util-utf8" "^2.3.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-buffer-from" "^3.0.0"
+    "@smithy/util-utf8" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/invalid-dependency@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-2.2.0.tgz#ee3d8980022cb5edb514ac187d159b3e773640f0"
-  integrity sha512-nEDASdbKFKPXN2O6lOlTgrEEOO9NHIeO+HVvZnkqc8h5U9g3BIhWsvzFo+UcUbliMHvKNPD/zVxDrkP1Sbgp8Q==
+"@smithy/invalid-dependency@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-3.0.0.tgz#21cb6b5203ee15321bfcc751f21f7a19536d4ae8"
+  integrity sha512-F6wBBaEFgJzj0s4KUlliIGPmqXemwP6EavgvDqYwCH40O5Xr2iMHvS8todmGVZtuJCorBkXsYLyTu4PuizVq5g==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/is-array-buffer@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz#f84f0d9f9a36601a9ca9381688bd1b726fd39111"
-  integrity sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==
+"@smithy/is-array-buffer@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-3.0.0.tgz#9a95c2d46b8768946a9eec7f935feaddcffa5e7a"
+  integrity sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==
   dependencies:
     tslib "^2.6.2"
 
-"@smithy/middleware-content-length@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-2.2.0.tgz#a82e97bd83d8deab69e07fea4512563bedb9461a"
-  integrity sha512-5bl2LG1Ah/7E5cMSC+q+h3IpVHMeOkG0yLRyQT1p2aMJkSrZG7RlXHPuAgb7EyaFeidKEnnd/fNaLLaKlHGzDQ==
+"@smithy/middleware-content-length@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-3.0.0.tgz#084b3d22248967885d496eb0b105d9090e8ababd"
+  integrity sha512-3C4s4d/iGobgCtk2tnWW6+zSTOBg1PRAm2vtWZLdriwTroFbbWNSr3lcyzHdrQHnEXYCC5K52EbpfodaIUY8sg==
   dependencies:
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/types" "^2.12.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/middleware-endpoint@^2.5.0":
-  version "2.5.0"
-  resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-2.5.0.tgz#9f1459e9b4cbf00fadfd99e98f88d4b1a2aeb987"
-  integrity sha512-OBhI9ZEAG8Xen0xsFJwwNOt44WE2CWkfYIxTognC8x42Lfsdf0VN/wCMqpdkySMDio/vts10BiovAxQp0T0faA==
-  dependencies:
-    "@smithy/middleware-serde" "^2.3.0"
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/shared-ini-file-loader" "^2.4.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/url-parser" "^2.2.0"
-    "@smithy/util-middleware" "^2.2.0"
+"@smithy/middleware-endpoint@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-3.0.0.tgz#54c9e1bd8f35b7d004c803eaf3702e61e32b8295"
+  integrity sha512-aXOAWztw/5qAfp0NcA2OWpv6ZI/E+Dh9mByif7i91D/0iyYNUcKvskmXiowKESFkuZ7PIMd3VOR4fTibZDs2OQ==
+  dependencies:
+    "@smithy/middleware-serde" "^3.0.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/shared-ini-file-loader" "^3.0.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/url-parser" "^3.0.0"
+    "@smithy/util-middleware" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/middleware-retry@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-2.2.0.tgz#ff48ac01ad57394eeea15a0146a86079cf6364b7"
-  integrity sha512-PsjDOLpbevgn37yJbawmfVoanru40qVA8UEf2+YA1lvOefmhuhL6ZbKtGsLAWDRnE1OlAmedsbA/htH6iSZjNA==
-  dependencies:
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/service-error-classification" "^2.1.5"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-middleware" "^2.2.0"
-    "@smithy/util-retry" "^2.2.0"
+"@smithy/middleware-retry@^3.0.1":
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-3.0.1.tgz#167b75e9b79395f11a799f22030eaaf7d40da410"
+  integrity sha512-hBhSEuL841FhJBK/19WpaGk5YWSzFk/P2UaVjANGKRv3eYNO8Y1lANWgqnuPWjOyCEWMPr58vELFDWpxvRKANw==
+  dependencies:
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/service-error-classification" "^3.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-middleware" "^3.0.0"
+    "@smithy/util-retry" "^3.0.0"
     tslib "^2.6.2"
-    uuid "^8.3.2"
+    uuid "^9.0.1"
 
-"@smithy/middleware-serde@^2.3.0":
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-2.3.0.tgz#a7615ba646a88b6f695f2d55de13d8158181dd13"
-  integrity sha512-sIADe7ojwqTyvEQBe1nc/GXB9wdHhi9UwyX0lTyttmUWDJLP655ZYE1WngnNyXREme8I27KCaUhyhZWRXL0q7Q==
+"@smithy/middleware-serde@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-3.0.0.tgz#786da6a6bc0e5e51d669dac834c19965245dd302"
+  integrity sha512-I1vKG1foI+oPgG9r7IMY1S+xBnmAn1ISqployvqkwHoSb8VPsngHDTOgYGYBonuOKndaWRUGJZrKYYLB+Ane6w==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/middleware-stack@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-2.2.0.tgz#3fb49eae6313f16f6f30fdaf28e11a7321f34d9f"
-  integrity sha512-Qntc3jrtwwrsAC+X8wms8zhrTr0sFXnyEGhZd9sLtsJ/6gGQKFzNB+wWbOcpJd7BR8ThNCoKt76BuQahfMvpeA==
+"@smithy/middleware-stack@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-3.0.0.tgz#00f112bae7af5fc3bd37d4fab95ebce0f17a7774"
+  integrity sha512-+H0jmyfAyHRFXm6wunskuNAqtj7yfmwFB6Fp37enytp2q047/Od9xetEaUbluyImOlGnGpaVGaVfjwawSr+i6Q==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/node-config-provider@^2.3.0":
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-2.3.0.tgz#9fac0c94a14c5b5b8b8fa37f20c310a844ab9922"
-  integrity sha512-0elK5/03a1JPWMDPaS726Iw6LpQg80gFut1tNpPfxFuChEEklo2yL823V94SpTZTxmKlXFtFgsP55uh3dErnIg==
+"@smithy/node-config-provider@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-3.0.0.tgz#4cd5dcf6132c75d6a582fcd6243482dac703865a"
+  integrity sha512-buqfaSdDh0zo62EPLf8rGDvcpKwGpO5ho4bXS2cdFhlOta7tBkWJt+O5uiaAeICfIOfPclNOndshDNSanX2X9g==
   dependencies:
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/shared-ini-file-loader" "^2.4.0"
-    "@smithy/types" "^2.12.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/shared-ini-file-loader" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/node-http-handler@^2.5.0":
-  version "2.5.0"
-  resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-2.5.0.tgz#7b5e0565dd23d340380489bd5fe4316d2bed32de"
-  integrity sha512-mVGyPBzkkGQsPoxQUbxlEfRjrj6FPyA3u3u2VXGr9hT8wilsoQdZdvKpMBFMB8Crfhv5dNkKHIW0Yyuc7eABqA==
+"@smithy/node-http-handler@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-3.0.0.tgz#e771ea95d03e259f04b7b37e8aece8a4fffc8cdc"
+  integrity sha512-3trD4r7NOMygwLbUJo4eodyQuypAWr7uvPnebNJ9a70dQhVn+US8j/lCnvoJS6BXfZeF7PkkkI0DemVJw+n+eQ==
   dependencies:
-    "@smithy/abort-controller" "^2.2.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/querystring-builder" "^2.2.0"
-    "@smithy/types" "^2.12.0"
+    "@smithy/abort-controller" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/querystring-builder" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/property-provider@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-2.2.0.tgz#37e3525a3fa3e11749f86a4f89f0fd7765a6edb0"
-  integrity sha512-+xiil2lFhtTRzXkx8F053AV46QnIw6e7MV8od5Mi68E1ICOjCeCHw2XfLnDEUHnT9WGUIkwcqavXjfwuJbGlpg==
+"@smithy/property-provider@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-3.0.0.tgz#ef7a26557c855cc1471b9aa0e05529183e99b978"
+  integrity sha512-LmbPgHBswdXCrkWWuUwBm9w72S2iLWyC/5jet9/Y9cGHtzqxi+GVjfCfahkvNV4KXEwgnH8EMpcrD9RUYe0eLQ==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/protocol-http@^3.3.0":
-  version "3.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-3.3.0.tgz#a37df7b4bb4960cdda560ce49acfd64c455e4090"
-  integrity sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==
+"@smithy/protocol-http@^4.0.0":
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-4.0.0.tgz#04df3b5674b540323f678e7c4113e8abd8b26432"
+  integrity sha512-qOQZOEI2XLWRWBO9AgIYuHuqjZ2csyr8/IlgFDHDNuIgLAMRx2Bl8ck5U5D6Vh9DPdoaVpuzwWMa0xcdL4O/AQ==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/querystring-builder@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-2.2.0.tgz#22937e19fcd0aaa1a3e614ef8cb6f8e86756a4ef"
-  integrity sha512-L1kSeviUWL+emq3CUVSgdogoM/D9QMFaqxL/dd0X7PCNWmPXqt+ExtrBjqT0V7HLN03Vs9SuiLrG3zy3JGnE5A==
+"@smithy/querystring-builder@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-3.0.0.tgz#48a9aa7b700e8409368c21bc0adf7564e001daea"
+  integrity sha512-bW8Fi0NzyfkE0TmQphDXr1AmBDbK01cA4C1Z7ggwMAU5RDz5AAv/KmoRwzQAS0kxXNf/D2ALTEgwK0U2c4LtRg==
   dependencies:
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-uri-escape" "^2.2.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-uri-escape" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/querystring-parser@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-2.2.0.tgz#24a5633f4b3806ff2888d4c2f4169e105fdffd79"
-  integrity sha512-BvHCDrKfbG5Yhbpj4vsbuPV2GgcpHiAkLeIlcA1LtfpMz3jrqizP1+OguSNSj1MwBHEiN+jwNisXLGdajGDQJA==
+"@smithy/querystring-parser@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-3.0.0.tgz#fa1ed0cee408cd4d622070fa874bc50ac1a379b7"
+  integrity sha512-UzHwthk0UEccV4dHzPySnBy34AWw3V9lIqUTxmozQ+wPDAO9csCWMfOLe7V9A2agNYy7xE+Pb0S6K/J23JSzfQ==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/service-error-classification@^2.1.5":
-  version "2.1.5"
-  resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-2.1.5.tgz#0568a977cc0db36299d8703a5d8609c1f600c005"
-  integrity sha512-uBDTIBBEdAQryvHdc5W8sS5YX7RQzF683XrHePVdFmAgKiMofU15FLSM0/HU03hKTnazdNRFa0YHS7+ArwoUSQ==
+"@smithy/service-error-classification@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-3.0.0.tgz#06a45cb91b15b8b0d5f3b1df2b3743d2ca42f5c4"
+  integrity sha512-3BsBtOUt2Gsnc3X23ew+r2M71WwtpHfEDGhHYHSDg6q1t8FrWh15jT25DLajFV1H+PpxAJ6gqe9yYeRUsmSdFA==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
 
-"@smithy/shared-ini-file-loader@^2.4.0":
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.4.0.tgz#1636d6eb9bff41e36ac9c60364a37fd2ffcb9947"
-  integrity sha512-WyujUJL8e1B6Z4PBfAqC/aGY1+C7T0w20Gih3yrvJSk97gpiVfB+y7c46T4Nunk+ZngLq0rOIdeVeIklk0R3OA==
+"@smithy/shared-ini-file-loader@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.0.0.tgz#8739b7cd24f55fb4e276a74f00f0c2bb4e3f25d8"
+  integrity sha512-REVw6XauXk8xE4zo5aGL7Rz4ywA8qNMUn8RtWeTRQsgAlmlvbJ7CEPBcaXU2NDC3AYBgYAXrGyWD8XrN8UGDog==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/signature-v4@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-2.2.0.tgz#8fe6a574188b71fba6056111b88d50c84babb060"
-  integrity sha512-+B5TNzj/fRZzVW3z8UUJOkNx15+4E0CLuvJmJUA1JUIZFp3rdJ/M2H5r2SqltaVPXL0oIxv/6YK92T9TsFGbFg==
-  dependencies:
-    "@smithy/eventstream-codec" "^2.2.0"
-    "@smithy/is-array-buffer" "^2.2.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-hex-encoding" "^2.2.0"
-    "@smithy/util-middleware" "^2.2.0"
-    "@smithy/util-uri-escape" "^2.2.0"
-    "@smithy/util-utf8" "^2.3.0"
+"@smithy/signature-v4@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-3.0.0.tgz#f536d0abebfeeca8e9aab846a4042658ca07d3b7"
+  integrity sha512-kXFOkNX+BQHe2qnLxpMEaCRGap9J6tUGLzc3A9jdn+nD4JdMwCKTJ+zFwQ20GkY+mAXGatyTw3HcoUlR39HwmA==
+  dependencies:
+    "@smithy/is-array-buffer" "^3.0.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-hex-encoding" "^3.0.0"
+    "@smithy/util-middleware" "^3.0.0"
+    "@smithy/util-uri-escape" "^3.0.0"
+    "@smithy/util-utf8" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/smithy-client@^2.5.0":
-  version "2.5.0"
-  resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-2.5.0.tgz#8de4fff221d232dda34a8e706d6a4f2911dffe2e"
-  integrity sha512-DDXWHWdimtS3y/Kw1Jo46KQ0ZYsDKcldFynQERUGBPDpkW1lXOTHy491ALHjwfiBQvzsVKVxl5+ocXNIgJuX4g==
-  dependencies:
-    "@smithy/middleware-endpoint" "^2.5.0"
-    "@smithy/middleware-stack" "^2.2.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-stream" "^2.2.0"
+"@smithy/smithy-client@^3.0.1":
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.0.1.tgz#c440473f6fb5dfbe86eaf015565fc56f66533bb4"
+  integrity sha512-KAiFY4Y4jdHxR+4zerH/VBhaFKM8pbaVmJZ/CWJRwtM/CmwzTfXfvYwf6GoUwiHepdv+lwiOXCuOl6UBDUEINw==
+  dependencies:
+    "@smithy/middleware-endpoint" "^3.0.0"
+    "@smithy/middleware-stack" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-stream" "^3.0.1"
     tslib "^2.6.2"
 
-"@smithy/types@^2.12.0":
-  version "2.12.0"
-  resolved "https://registry.yarnpkg.com/@smithy/types/-/types-2.12.0.tgz#c44845f8ba07e5e8c88eda5aed7e6a0c462da041"
-  integrity sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==
+"@smithy/types@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/types/-/types-3.0.0.tgz#00231052945159c64ffd8b91e8909d8d3006cb7e"
+  integrity sha512-VvWuQk2RKFuOr98gFhjca7fkBS+xLLURT8bUjk5XQoV0ZLm7WPwWPPY3/AwzTLuUBDeoKDCthfe1AsTUWaSEhw==
   dependencies:
     tslib "^2.6.2"
 
-"@smithy/url-parser@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-2.2.0.tgz#6fcda6116391a4f61fef5580eb540e128359b3c0"
-  integrity sha512-hoA4zm61q1mNTpksiSWp2nEl1dt3j726HdRhiNgVJQMj7mLp7dprtF57mOB6JvEk/x9d2bsuL5hlqZbBuHQylQ==
+"@smithy/url-parser@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-3.0.0.tgz#5fdc77cd22051c1aac6531be0315bfcba0fa705d"
+  integrity sha512-2XLazFgUu+YOGHtWihB3FSLAfCUajVfNBXGGYjOaVKjLAuAxx3pSBY3hBgLzIgB17haf59gOG3imKqTy8mcrjw==
   dependencies:
-    "@smithy/querystring-parser" "^2.2.0"
-    "@smithy/types" "^2.12.0"
+    "@smithy/querystring-parser" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/util-base64@^2.3.0":
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-2.3.0.tgz#312dbb4d73fb94249c7261aee52de4195c2dd8e2"
-  integrity sha512-s3+eVwNeJuXUwuMbusncZNViuhv2LjVJ1nMwTqSA0XAC7gjKhqqxRdJPhR8+YrkoZ9IiIbFk/yK6ACe/xlF+hw==
+"@smithy/util-base64@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-3.0.0.tgz#f7a9a82adf34e27a72d0719395713edf0e493017"
+  integrity sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==
   dependencies:
-    "@smithy/util-buffer-from" "^2.2.0"
-    "@smithy/util-utf8" "^2.3.0"
+    "@smithy/util-buffer-from" "^3.0.0"
+    "@smithy/util-utf8" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/util-body-length-browser@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-2.2.0.tgz#25620645c6b62b42594ef4a93b66e6ab70e27d2c"
-  integrity sha512-dtpw9uQP7W+n3vOtx0CfBD5EWd7EPdIdsQnWTDoFf77e3VUf05uA7R7TGipIo8e4WL2kuPdnsr3hMQn9ziYj5w==
+"@smithy/util-body-length-browser@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-3.0.0.tgz#86ec2f6256310b4845a2f064e2f571c1ca164ded"
+  integrity sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==
   dependencies:
     tslib "^2.6.2"
 
-"@smithy/util-body-length-node@^2.3.0":
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-2.3.0.tgz#d065a9b5e305ff899536777bbfe075cdc980136f"
-  integrity sha512-ITWT1Wqjubf2CJthb0BuT9+bpzBfXeMokH/AAa5EJQgbv9aPMVfnM76iFIZVFf50hYXGbtiV71BHAthNWd6+dw==
+"@smithy/util-body-length-node@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-3.0.0.tgz#99a291bae40d8932166907fe981d6a1f54298a6d"
+  integrity sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==
   dependencies:
     tslib "^2.6.2"
 
-"@smithy/util-buffer-from@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz#6fc88585165ec73f8681d426d96de5d402021e4b"
-  integrity sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==
+"@smithy/util-buffer-from@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-3.0.0.tgz#559fc1c86138a89b2edaefc1e6677780c24594e3"
+  integrity sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==
   dependencies:
-    "@smithy/is-array-buffer" "^2.2.0"
+    "@smithy/is-array-buffer" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/util-config-provider@^2.3.0":
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-2.3.0.tgz#bc79f99562d12a1f8423100ca662a6fb07cde943"
-  integrity sha512-HZkzrRcuFN1k70RLqlNK4FnPXKOpkik1+4JaBoHNJn+RnJGYqaa3c5/+XtLOXhlKzlRgNvyaLieHTW2VwGN0VQ==
+"@smithy/util-config-provider@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-3.0.0.tgz#62c6b73b22a430e84888a8f8da4b6029dd5b8efe"
+  integrity sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==
   dependencies:
     tslib "^2.6.2"
 
-"@smithy/util-defaults-mode-browser@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.2.0.tgz#963a9d3c3351272764dd1c5dc07c26f2c8abcb02"
-  integrity sha512-2okTdZaCBvOJszAPU/KSvlimMe35zLOKbQpHhamFJmR7t95HSe0K3C92jQPjKY3PmDBD+7iMkOnuW05F5OlF4g==
+"@smithy/util-defaults-mode-browser@^3.0.1":
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.1.tgz#0ba33ec90f6dd311599bed3a3dd604f3adba9acd"
+  integrity sha512-nW5kEzdJn1Bn5TF+gOPHh2rcPli8JU9vSSXLbfg7uPnfR1TMRQqs9zlYRhIb87NeSxIbpdXOI94tvXSy+fvDYg==
   dependencies:
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
     bowser "^2.11.0"
     tslib "^2.6.2"
 
-"@smithy/util-defaults-mode-node@^2.3.0":
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.3.0.tgz#5005058ca0a299f0948b47c288f7c3d4f36cb26e"
-  integrity sha512-hfKXnNLmsW9cmLb/JXKIvtuO6Cf4SuqN5PN1C2Ru/TBIws+m1wSgb+A53vo0r66xzB6E82inKG2J7qtwdi+Kkw==
-  dependencies:
-    "@smithy/config-resolver" "^2.2.0"
-    "@smithy/credential-provider-imds" "^2.3.0"
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
+"@smithy/util-defaults-mode-node@^3.0.1":
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.1.tgz#71242a6978240a6f559445d4cc26f2cce91c90e1"
+  integrity sha512-TFk+Qb+elLc/MOhtSp+50fstyfZ6avQbgH2d96xUBpeScu+Al9elxv+UFAjaTHe0HQe5n+wem8ZLpXvU8lwV6Q==
+  dependencies:
+    "@smithy/config-resolver" "^3.0.0"
+    "@smithy/credential-provider-imds" "^3.0.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/util-endpoints@^1.2.0":
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-1.2.0.tgz#b8b805f47e8044c158372f69b88337703117665d"
-  integrity sha512-BuDHv8zRjsE5zXd3PxFXFknzBG3owCpjq8G3FcsXW3CykYXuEqM3nTSsmLzw5q+T12ZYuDlVUZKBdpNbhVtlrQ==
+"@smithy/util-endpoints@^2.0.0":
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-2.0.0.tgz#5a16a723c1220f536a9b1b3e01787e69e77b6f12"
+  integrity sha512-+exaXzEY3DNt2qtA2OtRNSDlVrE4p32j1JSsQkzA5AdP0YtJNjkYbYhJxkFmPYcjI1abuwopOZCwUmv682QkiQ==
   dependencies:
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/types" "^2.12.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/util-hex-encoding@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-2.2.0.tgz#87edb7c88c2f422cfca4bb21f1394ae9602c5085"
-  integrity sha512-7iKXR+/4TpLK194pVjKiasIyqMtTYJsgKgM242Y9uzt5dhHnUDvMNb+3xIhRJ9QhvqGii/5cRUt4fJn3dtXNHQ==
+"@smithy/util-hex-encoding@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-3.0.0.tgz#32938b33d5bf2a15796cd3f178a55b4155c535e6"
+  integrity sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==
   dependencies:
     tslib "^2.6.2"
 
-"@smithy/util-middleware@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-2.2.0.tgz#80cfad40f6cca9ffe42a5899b5cb6abd53a50006"
-  integrity sha512-L1qpleXf9QD6LwLCJ5jddGkgWyuSvWBkJwWAZ6kFkdifdso+sk3L3O1HdmPvCdnCK3IS4qWyPxev01QMnfHSBw==
+"@smithy/util-middleware@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-3.0.0.tgz#64d775628b99a495ca83ce982f5c83aa45f1e894"
+  integrity sha512-q5ITdOnV2pXHSVDnKWrwgSNTDBAMHLptFE07ua/5Ty5WJ11bvr0vk2a7agu7qRhrCFRQlno5u3CneU5EELK+DQ==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/util-retry@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-2.2.0.tgz#e8e019537ab47ba6b2e87e723ec51ee223422d85"
-  integrity sha512-q9+pAFPTfftHXRytmZ7GzLFFrEGavqapFc06XxzZFcSIGERXMerXxCitjOG1prVDR9QdjqotF40SWvbqcCpf8g==
+"@smithy/util-retry@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-3.0.0.tgz#8a0c47496aab74e1dfde4905d462ad636a8824bb"
+  integrity sha512-nK99bvJiziGv/UOKJlDvFF45F00WgPLKVIGUfAK+mDhzVN2hb/S33uW2Tlhg5PVBoqY7tDVqL0zmu4OxAHgo9g==
   dependencies:
-    "@smithy/service-error-classification" "^2.1.5"
-    "@smithy/types" "^2.12.0"
+    "@smithy/service-error-classification" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/util-stream@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-2.2.0.tgz#b1279e417992a0f74afa78d7501658f174ed7370"
-  integrity sha512-17faEXbYWIRst1aU9SvPZyMdWmqIrduZjVOqCPMIsWFNxs5yQQgFrJL6b2SdiCzyW9mJoDjFtgi53xx7EH+BXA==
-  dependencies:
-    "@smithy/fetch-http-handler" "^2.5.0"
-    "@smithy/node-http-handler" "^2.5.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-base64" "^2.3.0"
-    "@smithy/util-buffer-from" "^2.2.0"
-    "@smithy/util-hex-encoding" "^2.2.0"
-    "@smithy/util-utf8" "^2.3.0"
+"@smithy/util-stream@^3.0.1":
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-3.0.1.tgz#3cf527bcd3fec82c231c38d47dd75f3364747edb"
+  integrity sha512-7F7VNNhAsfMRA8I986YdOY5fE0/T1/ZjFF6OLsqkvQVNP3vZ/szYDfGCyphb7ioA09r32K/0qbSFfNFU68aSzA==
+  dependencies:
+    "@smithy/fetch-http-handler" "^3.0.1"
+    "@smithy/node-http-handler" "^3.0.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-base64" "^3.0.0"
+    "@smithy/util-buffer-from" "^3.0.0"
+    "@smithy/util-hex-encoding" "^3.0.0"
+    "@smithy/util-utf8" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/util-uri-escape@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-2.2.0.tgz#56f5764051a33b67bc93fdd2a869f971b0635406"
-  integrity sha512-jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA==
+"@smithy/util-uri-escape@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-3.0.0.tgz#e43358a78bf45d50bb736770077f0f09195b6f54"
+  integrity sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==
   dependencies:
     tslib "^2.6.2"
 
-"@smithy/util-utf8@^2.3.0":
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-2.3.0.tgz#dd96d7640363259924a214313c3cf16e7dd329c5"
-  integrity sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==
+"@smithy/util-utf8@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-3.0.0.tgz#1a6a823d47cbec1fd6933e5fc87df975286d9d6a"
+  integrity sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==
   dependencies:
-    "@smithy/util-buffer-from" "^2.2.0"
+    "@smithy/util-buffer-from" "^3.0.0"
     tslib "^2.6.2"
 
 "@tokenizer/token@^0.3.0":
@@ -1440,9 +1420,9 @@
     "@types/node" "*"
 
 "@types/node@*":
-  version "20.11.30"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.30.tgz#9c33467fc23167a347e73834f788f4b9f399d66f"
-  integrity sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==
+  version "20.12.12"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.12.tgz#7cbecdf902085cec634fdb362172dfe12b8f2050"
+  integrity sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==
   dependencies:
     undici-types "~5.26.4"
 
@@ -2046,9 +2026,9 @@ agent-base@6, agent-base@^6.0.2:
     debug "4"
 
 agent-base@^7.0.2:
-  version "7.1.0"
-  resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434"
-  integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==
+  version "7.1.1"
+  resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.1.tgz#bdbded7dfb096b751a2a087eeeb9664725b2e317"
+  integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==
   dependencies:
     debug "^4.3.4"
 
@@ -2525,9 +2505,9 @@ aws-sign@~0.3.0:
   integrity sha512-pEMJAknifcXqXqYVXzGPIu8mJvxtJxIdpVpAs8HNS+paT+9srRUDMQn+3hULS7WbLmttcmvgMvnDcFujqXJyPw==
 
 aws4@^1.12.0, aws4@^1.8.0:
-  version "1.12.0"
-  resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3"
-  integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==
+  version "1.13.0"
+  resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.13.0.tgz#d9b802e9bb9c248d7be5f7f5ef178dc3684e9dcc"
+  integrity sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==
 
 axios@0.26.1, axios@^0.26.1:
   version "0.26.1"
@@ -2551,10 +2531,10 @@ axios@^0.27.2:
     follow-redirects "^1.14.9"
     form-data "^4.0.0"
 
-axios@^1.6.4:
-  version "1.6.8"
-  resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.8.tgz#66d294951f5d988a00e87a0ffb955316a619ea66"
-  integrity sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==
+axios@^1.6.8:
+  version "1.7.2"
+  resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621"
+  integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==
   dependencies:
     follow-redirects "^1.15.6"
     form-data "^4.0.0"
@@ -3192,24 +3172,6 @@ bn.js@^4.0.0:
   resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
   integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
 
-body-parser@1.20.1:
-  version "1.20.1"
-  resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668"
-  integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==
-  dependencies:
-    bytes "3.1.2"
-    content-type "~1.0.4"
-    debug "2.6.9"
-    depd "2.0.0"
-    destroy "1.2.0"
-    http-errors "2.0.0"
-    iconv-lite "0.4.24"
-    on-finished "2.4.1"
-    qs "6.11.0"
-    raw-body "2.5.1"
-    type-is "~1.6.18"
-    unpipe "1.0.0"
-
 body-parser@1.20.2:
   version "1.20.2"
   resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd"
@@ -3280,12 +3242,12 @@ braces@^2.3.1:
     split-string "^3.0.2"
     to-regex "^3.0.1"
 
-braces@^3.0.2, braces@~3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
-  integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+braces@^3.0.3, braces@~3.0.2:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
+  integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
   dependencies:
-    fill-range "^7.0.1"
+    fill-range "^7.1.1"
 
 brotli@^1.3.3:
   version "1.3.3"
@@ -3492,9 +3454,9 @@ camelcase@^5.0.0:
   integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
 
 caniuse-lite@^1.0.30001587:
-  version "1.0.30001600"
-  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz#93a3ee17a35aa6a9f0c6ef1b2ab49507d1ab9079"
-  integrity sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==
+  version "1.0.30001621"
+  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001621.tgz#4adcb443c8b9c8303e04498318f987616b8fea2e"
+  integrity sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==
 
 caseless@~0.12.0:
   version "0.12.0"
@@ -3886,10 +3848,10 @@ commander@^2.11.0, commander@^2.19.0:
   resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
   integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
 
-commander@^4.0.1:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
-  integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
+commander@^6.2.0:
+  version "6.2.1"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
+  integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
 
 common-sequence@^1.0.2:
   version "1.0.2"
@@ -3961,6 +3923,11 @@ config-master@^2.0.4:
     feature-detect-es6 "^1.3.1"
     walk-back "^2.0.1"
 
+connect-flash@*:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/connect-flash/-/connect-flash-0.1.1.tgz#d8630f26d95a7f851f9956b1e8cc6732f3b6aa30"
+  integrity sha512-2rcfELQt/ZMP+SM/pG8PyhJRaLKp+6Hk2IUBNkEit09X+vwn3QsAL3ZbYtxUn7NVPzbMTSLRDhqe0B/eh30RYA==
+
 console-control-strings@^1.0.0, console-control-strings@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
@@ -4008,10 +3975,10 @@ cookie-signature@1.0.6:
   resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
   integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
 
-cookie@0.5.0:
-  version "0.5.0"
-  resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b"
-  integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
+cookie@0.6.0:
+  version "0.6.0"
+  resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051"
+  integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==
 
 cookies@0.8.0:
   version "0.8.0"
@@ -4032,9 +3999,9 @@ core-js@^2.0.1, core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0:
   integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
 
 core-js@^3.30.2:
-  version "3.36.1"
-  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.36.1.tgz#c97a7160ebd00b2de19e62f4bbd3406ab720e578"
-  integrity sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==
+  version "3.37.1"
+  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.37.1.tgz#d21751ddb756518ac5a00e4d66499df981a62db9"
+  integrity sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==
 
 core-util-is@1.0.2:
   version "1.0.2"
@@ -4058,12 +4025,12 @@ cp-file@^6.2.0:
     safe-buffer "^5.0.1"
 
 cpu-features@~0.0.9:
-  version "0.0.9"
-  resolved "https://registry.yarnpkg.com/cpu-features/-/cpu-features-0.0.9.tgz#5226b92f0f1c63122b0a3eb84cb8335a4de499fc"
-  integrity sha512-AKjgn2rP2yJyfbepsmLfiYcmtNn/2eUvocUyM/09yB0YDiz39HteK/5/T4Onf0pmdYDMgkBoGvRLvEguzyL7wQ==
+  version "0.0.10"
+  resolved "https://registry.yarnpkg.com/cpu-features/-/cpu-features-0.0.10.tgz#9aae536db2710c7254d7ed67cb3cbc7d29ad79c5"
+  integrity sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA==
   dependencies:
     buildcheck "~0.0.6"
-    nan "^2.17.0"
+    nan "^2.19.0"
 
 crc-32@^1.2.0:
   version "1.2.2"
@@ -4207,9 +4174,9 @@ dateformat@~4.6.2:
   integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==
 
 dayjs@^1.11.9:
-  version "1.11.10"
-  resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0"
-  integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==
+  version "1.11.11"
+  resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.11.tgz#dfe0e9d54c5f8b68ccf8ca5f72ac603e7e5ed59e"
+  integrity sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==
 
 ddata@~0.1.25:
   version "0.1.28"
@@ -4292,7 +4259,7 @@ define-data-property@^1.0.1, define-data-property@^1.1.4:
     es-errors "^1.3.0"
     gopd "^1.0.1"
 
-define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1:
+define-properties@^1.2.0, define-properties@^1.2.1:
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c"
   integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==
@@ -4389,15 +4356,15 @@ dir_cache@^1.0.1:
     minify-js "0.0.2"
     utils-igor "^1.0.4"
 
-discord-api-types@0.37.61:
-  version "0.37.61"
-  resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.61.tgz#9dd8e58c624237e6f1b23be2d29579af268b8c5b"
-  integrity sha512-o/dXNFfhBpYHpQFdT6FWzeO7pKc838QeeZ9d91CfVAtpr5XLK4B/zYxQbYgPdoMiTDvJfzcsLW5naXgmHGDNXw==
+discord-api-types@0.37.83:
+  version "0.37.83"
+  resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.83.tgz#a22a799729ceded8176ea747157837ddf4708b1f"
+  integrity sha512-urGGYeWtWNYMKnYlZnOnDHm8fVRffQs3U0SpE8RHeiuLKb/u92APS8HoQnPTFbnXmY1vVnXjXO4dOxcAn3J+DA==
 
 discord-api-types@^0.37.12, discord-api-types@^0.37.41:
-  version "0.37.76"
-  resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.76.tgz#699c088dee348bc865f599ef2229b433638c37a0"
-  integrity sha512-GQI02JvBVl9+WQiMmyc/OFuJ4bBBf2VWb6NjPBnzrrdF2D/2S07mA1ZCd5+IhHRjU8wQ83c/hmjj9nn1+r/K9g==
+  version "0.37.85"
+  resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.85.tgz#302f7ee8e4880b41eff84ce1dc1c210247434b81"
+  integrity sha512-T75aB9JEw9X0rlMChEMHbr9JlXMqdmdKiZVjBeKs91cJo28IuAIldj+VZoC+I+Q9gCaRjHlwRkcksy2XZY6c3A==
 
 discord.js@14.6.0:
   version "14.6.0"
@@ -4507,9 +4474,9 @@ ee-first@1.1.1:
   integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
 
 electron-to-chromium@^1.4.668:
-  version "1.4.715"
-  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.715.tgz#bb16bcf2a3537962fccfa746b5c98c5f7404ff46"
-  integrity sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg==
+  version "1.4.783"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.783.tgz#933887165b8b6025a81663d2d97cf4b85cde27b2"
+  integrity sha512-bT0jEz/Xz1fahQpbZ1D7LgmPYZ3iHVY39NcWWro1+hA2IvjiPeaXtfSqrQ+nXjApMvQRE2ASt1itSLRrebHMRQ==
 
 emoji-regex@^7.0.1:
   version "7.0.3"
@@ -4578,9 +4545,9 @@ error-ex@^1.2.0, error-ex@^1.3.1:
     is-arrayish "^0.2.1"
 
 es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2:
-  version "1.23.2"
-  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.2.tgz#693312f3940f967b8dd3eebacb590b01712622e0"
-  integrity sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==
+  version "1.23.3"
+  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0"
+  integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==
   dependencies:
     array-buffer-byte-length "^1.0.1"
     arraybuffer.prototype.slice "^1.0.3"
@@ -4621,11 +4588,11 @@ es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23
     safe-regex-test "^1.0.3"
     string.prototype.trim "^1.2.9"
     string.prototype.trimend "^1.0.8"
-    string.prototype.trimstart "^1.0.7"
+    string.prototype.trimstart "^1.0.8"
     typed-array-buffer "^1.0.2"
     typed-array-byte-length "^1.0.1"
     typed-array-byte-offset "^1.0.2"
-    typed-array-length "^1.0.5"
+    typed-array-length "^1.0.6"
     unbox-primitive "^1.0.2"
     which-typed-array "^1.1.15"
 
@@ -4671,7 +4638,7 @@ es-to-primitive@^1.2.1:
     is-date-object "^1.0.1"
     is-symbol "^1.0.2"
 
-es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@^0.10.62, es5-ext@^0.10.64, es5-ext@~0.10.14:
+es5-ext@^0.10.35, es5-ext@^0.10.62, es5-ext@^0.10.63, es5-ext@^0.10.64, es5-ext@~0.10.14:
   version "0.10.64"
   resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.64.tgz#12e4ffb48f1ba2ea777f1fcdd1918ef73ea21714"
   integrity sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==
@@ -4703,7 +4670,7 @@ es6-symbol@^3.1.1, es6-symbol@^3.1.3:
     d "^1.0.2"
     ext "^1.7.0"
 
-escalade@^3.1.1:
+escalade@^3.1.2:
   version "3.1.2"
   resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27"
   integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==
@@ -4834,17 +4801,17 @@ express-ws@4.0.0:
   dependencies:
     ws "^5.2.0"
 
-express@4.18.2:
-  version "4.18.2"
-  resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59"
-  integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==
+express@4.19.2:
+  version "4.19.2"
+  resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465"
+  integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==
   dependencies:
     accepts "~1.3.8"
     array-flatten "1.1.1"
-    body-parser "1.20.1"
+    body-parser "1.20.2"
     content-disposition "0.5.4"
     content-type "~1.0.4"
-    cookie "0.5.0"
+    cookie "0.6.0"
     cookie-signature "1.0.6"
     debug "2.6.9"
     depd "2.0.0"
@@ -4952,9 +4919,9 @@ fast-xml-parser@4.2.5:
     strnum "^1.0.5"
 
 fast-xml-parser@^4.2.4:
-  version "4.3.6"
-  resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.3.6.tgz#190f9d99097f0c8f2d3a0e681a10404afca052ff"
-  integrity sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==
+  version "4.4.0"
+  resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz#341cc98de71e9ba9e651a67f41f1752d1441a501"
+  integrity sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==
   dependencies:
     strnum "^1.0.5"
 
@@ -5064,10 +5031,10 @@ fill-range@^4.0.0:
     repeat-string "^1.6.1"
     to-regex-range "^2.1.0"
 
-fill-range@^7.0.1:
-  version "7.0.1"
-  resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
-  integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+fill-range@^7.1.1:
+  version "7.1.1"
+  resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
+  integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
   dependencies:
     to-regex-range "^5.0.1"
 
@@ -5365,14 +5332,15 @@ gauge@^4.0.3:
     wide-align "^1.1.5"
 
 gaxios@^6.0.0, gaxios@^6.0.3, gaxios@^6.1.1:
-  version "6.3.0"
-  resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-6.3.0.tgz#5cd858de47c6560caaf0f99bb5d89c5bdfbe9034"
-  integrity sha512-p+ggrQw3fBwH2F5N/PAI4k/G/y1art5OxKpb2J2chwNNHM4hHuAOtivjPuirMF4KNKwTTUal/lPfL2+7h2mEcg==
+  version "6.6.0"
+  resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-6.6.0.tgz#af8242fff0bbb82a682840d5feaa91b6a1c58be4"
+  integrity sha512-bpOZVQV5gthH/jVCSuYuokRo2bTKOcuBiVWpjmTn6C5Agl5zclGfTljuGsQZxwwDBkli+YhZhP4TdlqTnhOezQ==
   dependencies:
     extend "^3.0.2"
     https-proxy-agent "^7.0.1"
     is-stream "^2.0.0"
     node-fetch "^2.6.9"
+    uuid "^9.0.1"
 
 gcp-metadata@^6.1.0:
   version "6.1.0"
@@ -5464,15 +5432,15 @@ glob-parent@~5.1.2:
     is-glob "^4.0.1"
 
 glob@^10.0.0:
-  version "10.3.10"
-  resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b"
-  integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==
+  version "10.4.1"
+  resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.1.tgz#0cfb01ab6a6b438177bfe6a58e2576f6efe909c2"
+  integrity sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==
   dependencies:
     foreground-child "^3.1.0"
-    jackspeak "^2.3.5"
-    minimatch "^9.0.1"
-    minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
-    path-scurry "^1.10.1"
+    jackspeak "^3.1.2"
+    minimatch "^9.0.4"
+    minipass "^7.1.2"
+    path-scurry "^1.11.1"
 
 glob@^4:
   version "4.5.3"
@@ -5539,16 +5507,17 @@ globals@^9.18.0:
   integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==
 
 globalthis@^1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf"
-  integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236"
+  integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==
   dependencies:
-    define-properties "^1.1.3"
+    define-properties "^1.2.1"
+    gopd "^1.0.1"
 
 google-auth-library@^9.0.0, google-auth-library@^9.7.0:
-  version "9.7.0"
-  resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-9.7.0.tgz#dd99a08e2e3f70778de8be4ed8556460e237550a"
-  integrity sha512-I/AvzBiUXDzLOy4iIZ2W+Zq33W4lcukQv1nl7C8WUA6SQwyQwUwu3waNmWNAvzds//FG8SZ+DnKnW/2k6mQS8A==
+  version "9.10.0"
+  resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-9.10.0.tgz#c9fb940923f7ff2569d61982ee1748578c0bbfd4"
+  integrity sha512-ol+oSa5NbcGdDqA+gZ3G3mev59OHBZksBTxY/tYwjtcp1H/scAFwJfSQU9/1RALoyZ7FslNbke8j4i3ipwlyuQ==
   dependencies:
     base64-js "^1.3.0"
     ecdsa-sig-formatter "^1.0.11"
@@ -5563,9 +5532,9 @@ google-protobuf@3.19.4:
   integrity sha512-OIPNCxsG2lkIvf+P5FNfJ/Km95CsXOBecS9ZcAU6m2Rq3svc0Apl9nB3GMDNKfQ9asNv4KjyAqGwPQFrVle3Yg==
 
 googleapis-common@^7.0.0:
-  version "7.1.0"
-  resolved "https://registry.yarnpkg.com/googleapis-common/-/googleapis-common-7.1.0.tgz#e97e468a7ef2f230df8255c0f66701cf7e28947c"
-  integrity sha512-p3KHiWDBBWJEXk6SYauBEvxw5+UmRy7k2scxGtsNv9eHsTbpopJ3/7If4OrNnzJ9XMLg3IlyQXpVp8YPQsStiw==
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/googleapis-common/-/googleapis-common-7.2.0.tgz#5c19102c9af1e5d27560be5e69ee2ccf68755d42"
+  integrity sha512-/fhDZEJZvOV3X5jmD+fKxMqma5q2Q9nZNSF3kn1F18tpxmA86BcTxAGBQdM0N89Z3bEaIs+HVznSmFJEAmMTjA==
   dependencies:
     extend "^3.0.2"
     gaxios "^6.0.3"
@@ -6632,19 +6601,19 @@ istanbul-reports@^2.2.4:
   dependencies:
     html-escaper "^2.0.0"
 
-jackspeak@^2.3.5:
-  version "2.3.6"
-  resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8"
-  integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==
+jackspeak@^3.1.2:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.1.2.tgz#eada67ea949c6b71de50f1b09c92a961897b90ab"
+  integrity sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==
   dependencies:
     "@isaacs/cliui" "^8.0.2"
   optionalDependencies:
     "@pkgjs/parseargs" "^0.11.0"
 
 joi@^17.9.2:
-  version "17.12.2"
-  resolved "https://registry.yarnpkg.com/joi/-/joi-17.12.2.tgz#283a664dabb80c7e52943c557aab82faea09f521"
-  integrity sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==
+  version "17.13.1"
+  resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.1.tgz#9c7b53dc3b44dd9ae200255cc3b398874918a6ca"
+  integrity sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg==
   dependencies:
     "@hapi/hoek" "^9.3.0"
     "@hapi/topo" "^5.1.0"
@@ -7204,10 +7173,10 @@ lower-case@^1.1.1:
   resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
   integrity sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==
 
-lru-cache@^10.0.1, "lru-cache@^9.1.1 || ^10.0.0":
-  version "10.2.0"
-  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3"
-  integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==
+lru-cache@^10.0.1, lru-cache@^10.2.0:
+  version "10.2.2"
+  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878"
+  integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==
 
 lru-cache@^4.0.1:
   version "4.1.5"
@@ -7414,11 +7383,11 @@ micromatch@^3.1.10:
     to-regex "^3.0.2"
 
 micromatch@^4.0.2, micromatch@^4.0.4:
-  version "4.0.5"
-  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
-  integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
+  version "4.0.7"
+  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5"
+  integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==
   dependencies:
-    braces "^3.0.2"
+    braces "^3.0.3"
     picomatch "^2.3.1"
 
 mime-db@1.52.0, "mime-db@>= 1.43.0 < 2":
@@ -7496,10 +7465,10 @@ minimatch@^5.1.0:
   dependencies:
     brace-expansion "^2.0.1"
 
-minimatch@^9.0.1:
-  version "9.0.3"
-  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825"
-  integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==
+minimatch@^9.0.4:
+  version "9.0.4"
+  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51"
+  integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==
   dependencies:
     brace-expansion "^2.0.1"
 
@@ -7571,10 +7540,10 @@ minipass@^5.0.0:
   resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d"
   integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==
 
-"minipass@^5.0.0 || ^6.0.2 || ^7.0.0":
-  version "7.0.4"
-  resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c"
-  integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==
+"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2:
+  version "7.1.2"
+  resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707"
+  integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==
 
 minizlib@^2.0.0, minizlib@^2.1.1:
   version "2.1.2"
@@ -7735,7 +7704,7 @@ named-placeholders@^1.1.3:
   dependencies:
     lru-cache "^7.14.1"
 
-nan@^2.12.1, nan@^2.13.2, nan@^2.17.0, nan@^2.18.0:
+nan@^2.12.1, nan@^2.13.2, nan@^2.18.0, nan@^2.19.0:
   version "2.19.0"
   resolved "https://registry.yarnpkg.com/nan/-/nan-2.19.0.tgz#bb58122ad55a6c5bc973303908d5b16cfdd5a8c0"
   integrity sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==
@@ -7825,9 +7794,9 @@ node-forge@1.3.1, node-forge@^1.3.0:
   integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==
 
 node-gyp-build@^4.3.0:
-  version "4.8.0"
-  resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.0.tgz#3fee9c1731df4581a3f9ead74664369ff00d26dd"
-  integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==
+  version "4.8.1"
+  resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.1.tgz#976d3ad905e71b76086f4f0b0d3637fe79b6cda5"
+  integrity sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==
 
 node-gyp@8.x:
   version "8.4.1"
@@ -7983,9 +7952,9 @@ number-is-nan@^1.0.0:
   integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==
 
 nwsapi@^2.2.4:
-  version "2.2.7"
-  resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30"
-  integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==
+  version "2.2.10"
+  resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.10.tgz#0b77a68e21a0b483db70b11fad055906e867cda8"
+  integrity sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==
 
 nyc@^14.1.1:
   version "14.1.1"
@@ -8520,12 +8489,12 @@ path-root@^0.1.1:
   dependencies:
     path-root-regex "^0.1.0"
 
-path-scurry@^1.10.1:
-  version "1.10.1"
-  resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698"
-  integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==
+path-scurry@^1.11.1:
+  version "1.11.1"
+  resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2"
+  integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==
   dependencies:
-    lru-cache "^9.1.1 || ^10.0.0"
+    lru-cache "^10.2.0"
     minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
 
 path-to-regexp@0.1.7:
@@ -8574,25 +8543,25 @@ pg-cloudflare@^1.1.1:
   resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz#e6d5833015b170e23ae819e8c5d7eaedb472ca98"
   integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==
 
-pg-connection-string@^2.4.0, pg-connection-string@^2.5.0, pg-connection-string@^2.6.2:
-  version "2.6.2"
-  resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.2.tgz#713d82053de4e2bd166fab70cd4f26ad36aab475"
-  integrity sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==
+pg-connection-string@^2.4.0, pg-connection-string@^2.5.0, pg-connection-string@^2.6.4:
+  version "2.6.4"
+  resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.4.tgz#f543862adfa49fa4e14bc8a8892d2a84d754246d"
+  integrity sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==
 
 pg-int8@1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c"
   integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==
 
-pg-pool@^3.4.1, pg-pool@^3.6.1:
-  version "3.6.1"
-  resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.1.tgz#5a902eda79a8d7e3c928b77abf776b3cb7d351f7"
-  integrity sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==
+pg-pool@^3.4.1, pg-pool@^3.6.2:
+  version "3.6.2"
+  resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.2.tgz#3a592370b8ae3f02a7c8130d245bc02fa2c5f3f2"
+  integrity sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==
 
-pg-protocol@^1.5.0, pg-protocol@^1.6.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.0.tgz#4c91613c0315349363af2084608db843502f8833"
-  integrity sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==
+pg-protocol@^1.5.0, pg-protocol@^1.6.1:
+  version "1.6.1"
+  resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.1.tgz#21333e6d83b01faaebfe7a33a7ad6bfd9ed38cb3"
+  integrity sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==
 
 pg-types@^2.1.0:
   version "2.2.0"
@@ -8619,15 +8588,13 @@ pg@8.7.1:
     pgpass "1.x"
 
 pg@^8.4.0:
-  version "8.11.3"
-  resolved "https://registry.yarnpkg.com/pg/-/pg-8.11.3.tgz#d7db6e3fe268fcedd65b8e4599cda0b8b4bf76cb"
-  integrity sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==
+  version "8.11.5"
+  resolved "https://registry.yarnpkg.com/pg/-/pg-8.11.5.tgz#e722b0a5f1ed92931c31758ebec3ddf878dd4128"
+  integrity sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw==
   dependencies:
-    buffer-writer "2.0.0"
-    packet-reader "1.0.0"
-    pg-connection-string "^2.6.2"
-    pg-pool "^3.6.1"
-    pg-protocol "^1.6.0"
+    pg-connection-string "^2.6.4"
+    pg-pool "^3.6.2"
+    pg-protocol "^1.6.1"
     pg-types "^2.1.0"
     pgpass "1.x"
   optionalDependencies:
@@ -8650,10 +8617,10 @@ pgtools@0.3.2:
     pg-connection-string "^2.4.0"
     yargs "^5.0.0"
 
-picocolors@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
-  integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
+picocolors@^1.0.0, picocolors@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1"
+  integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==
 
 picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
   version "2.3.1"
@@ -8878,9 +8845,9 @@ qs@6.11.0:
     side-channel "^1.0.4"
 
 qs@^6.6.0, qs@^6.7.0, qs@^6.9.4:
-  version "6.12.0"
-  resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.0.tgz#edd40c3b823995946a8a0b1f208669c7a200db77"
-  integrity sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==
+  version "6.12.1"
+  resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.1.tgz#39422111ca7cbdb70425541cba20c7d7b216599a"
+  integrity sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==
   dependencies:
     side-channel "^1.0.6"
 
@@ -8942,16 +8909,6 @@ range-parser@~1.2.1:
   resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
   integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
 
-raw-body@2.5.1:
-  version "2.5.1"
-  resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857"
-  integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==
-  dependencies:
-    bytes "3.1.2"
-    http-errors "2.0.0"
-    iconv-lite "0.4.24"
-    unpipe "1.0.0"
-
 raw-body@2.5.2:
   version "2.5.2"
   resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a"
@@ -9521,11 +9478,9 @@ semver@^6.0.0, semver@^6.3.1:
   integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
 
 semver@^7.3.5, semver@^7.5.4:
-  version "7.6.0"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d"
-  integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==
-  dependencies:
-    lru-cache "^6.0.0"
+  version "7.6.2"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13"
+  integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==
 
 send@0.18.0:
   version "0.18.0"
@@ -9731,9 +9686,9 @@ socks-proxy-agent@^6.0.0:
     socks "^2.6.2"
 
 socks@^2.6.2, socks@^2.7.1:
-  version "2.8.1"
-  resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.1.tgz#22c7d9dd7882649043cba0eafb49ae144e3457af"
-  integrity sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==
+  version "2.8.3"
+  resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.3.tgz#1ebd0f09c52ba95a09750afe3f3f9f724a800cb5"
+  integrity sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==
   dependencies:
     ip-address "^9.0.5"
     smart-buffer "^4.2.0"
@@ -9836,9 +9791,9 @@ spdx-expression-parse@^3.0.0:
     spdx-license-ids "^3.0.0"
 
 spdx-license-ids@^3.0.0:
-  version "3.0.17"
-  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz#887da8aa73218e51a1d917502d79863161a93f9c"
-  integrity sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==
+  version "3.0.18"
+  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz#22aa922dcf2f2885a6494a261f2d8b75345d0326"
+  integrity sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==
 
 split-string@^3.0.1, split-string@^3.0.2:
   version "3.1.0"
@@ -10051,7 +10006,7 @@ string.prototype.trimend@^1.0.8:
     define-properties "^1.2.1"
     es-object-atoms "^1.0.0"
 
-string.prototype.trimstart@^1.0.7:
+string.prototype.trimstart@^1.0.8:
   version "1.0.8"
   resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde"
   integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==
@@ -10395,9 +10350,9 @@ token-types@^5.0.1:
     ieee754 "^1.2.1"
 
 tough-cookie@^4.1.2:
-  version "4.1.3"
-  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf"
-  integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==
+  version "4.1.4"
+  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36"
+  integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==
   dependencies:
     psl "^1.1.33"
     punycode "^2.1.1"
@@ -10446,7 +10401,7 @@ ts-custom-error@^3.2.0:
   resolved "https://registry.yarnpkg.com/ts-custom-error/-/ts-custom-error-3.3.1.tgz#8bd3c8fc6b8dc8e1cb329267c45200f1e17a65d1"
   integrity sha512-5OX1tzOjxWEgsr/YEUWSuPrQ00deKLh6D7OTWcvNHm12/7QPyRh8SYpyWvA4IZv8H/+GQWQEh/kwo95Q9OVW1A==
 
-ts-mixer@^6.0.3:
+ts-mixer@^6.0.4:
   version "6.0.4"
   resolved "https://registry.yarnpkg.com/ts-mixer/-/ts-mixer-6.0.4.tgz#1da39ceabc09d947a82140d9f09db0f84919ca28"
   integrity sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==
@@ -10552,7 +10507,7 @@ typed-array-byte-offset@^1.0.2:
     has-proto "^1.0.3"
     is-typed-array "^1.1.13"
 
-typed-array-length@^1.0.5:
+typed-array-length@^1.0.6:
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3"
   integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==
@@ -10652,9 +10607,9 @@ undici-types@~5.26.4:
   integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
 
 undici@^5.11.0, undici@^5.22.0:
-  version "5.28.3"
-  resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.3.tgz#a731e0eff2c3fcfd41c1169a869062be222d1e5b"
-  integrity sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==
+  version "5.28.4"
+  resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.4.tgz#6b280408edb6a1a604a9b20340f45b422e373068"
+  integrity sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==
   dependencies:
     "@fastify/busboy" "^2.0.0"
 
@@ -10706,12 +10661,12 @@ unset-value@^1.0.0:
     isobject "^3.0.0"
 
 update-browserslist-db@^1.0.13:
-  version "1.0.13"
-  resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4"
-  integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==
+  version "1.0.16"
+  resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz#f6d489ed90fb2f07d67784eb3f53d7891f736356"
+  integrity sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==
   dependencies:
-    escalade "^3.1.1"
-    picocolors "^1.0.0"
+    escalade "^3.1.2"
+    picocolors "^1.0.1"
 
 upper-case@^1.1.1:
   version "1.1.3"
@@ -10827,7 +10782,7 @@ uuid@^8.3.2:
   resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
   integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
 
-uuid@^9.0.0:
+uuid@^9.0.0, uuid@^9.0.1:
   version "9.0.1"
   resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30"
   integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==
@@ -10942,13 +10897,13 @@ webidl-conversions@^7.0.0:
   integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==
 
 websocket@^1.0.34:
-  version "1.0.34"
-  resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111"
-  integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==
+  version "1.0.35"
+  resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.35.tgz#374197207d7d4cc4c36cbf8a1bb886ee52a07885"
+  integrity sha512-/REy6amwPZl44DDzvRCkaI1q1bIiQB0mEFQLUrhz3z2EK91cp3n72rAjUlrTP0zV22HJIUOVHQGPxhFRjxjt+Q==
   dependencies:
     bufferutil "^4.0.1"
     debug "^2.2.0"
-    es5-ext "^0.10.50"
+    es5-ext "^0.10.63"
     typedarray-to-buffer "^3.1.5"
     utf-8-validate "^5.0.2"
     yaeti "^0.0.6"
@@ -11199,9 +11154,9 @@ ws@^7.0.0:
   integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==
 
 ws@^8.13.0, ws@^8.4.0, ws@^8.9.0:
-  version "8.16.0"
-  resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4"
-  integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==
+  version "8.17.0"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.0.tgz#d145d18eca2ed25aaf791a183903f7be5e295fea"
+  integrity sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==
 
 xml-crypto@^2.1.3:
   version "2.1.5"
diff --git a/pkgs/tools/admin/okta-aws-cli/default.nix b/pkgs/tools/admin/okta-aws-cli/default.nix
index a3b177af6c8cd..38e661a56ace8 100644
--- a/pkgs/tools/admin/okta-aws-cli/default.nix
+++ b/pkgs/tools/admin/okta-aws-cli/default.nix
@@ -18,7 +18,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "A CLI for having Okta as the IdP for AWS CLI operations";
+    description = "CLI for having Okta as the IdP for AWS CLI operations";
     homepage = "https://github.com/okta/okta-aws-cli";
     license = licenses.asl20;
     maintainers = with maintainers; [ daniyalsuri6 ];
diff --git a/pkgs/tools/admin/ossutil/default.nix b/pkgs/tools/admin/ossutil/default.nix
index c858b9706b160..c55faa02d4a7f 100644
--- a/pkgs/tools/admin/ossutil/default.nix
+++ b/pkgs/tools/admin/ossutil/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A user friendly command line tool to access Alibaba Cloud OSS";
+    description = "User friendly command line tool to access Alibaba Cloud OSS";
     homepage = "https://github.com/aliyun/ossutil";
     changelog = "https://github.com/aliyun/ossutil/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/tools/admin/oxidized/default.nix b/pkgs/tools/admin/oxidized/default.nix
index 0436038a98b18..a9771d339a3e6 100644
--- a/pkgs/tools/admin/oxidized/default.nix
+++ b/pkgs/tools/admin/oxidized/default.nix
@@ -11,7 +11,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "oxidized";
 
   meta = with lib; {
-    description = "A network device configuration backup tool. It's a RANCID replacement";
+    description = "Network device configuration backup tool. It's a RANCID replacement";
     homepage    = "https://github.com/ytti/oxidized";
     license     = licenses.asl20;
     maintainers = with maintainers; [ nicknovitski ] ++ teams.wdz.members;
diff --git a/pkgs/tools/admin/pebble/default.nix b/pkgs/tools/admin/pebble/default.nix
index 76e2e281f68ee..384cc0f3d9280 100644
--- a/pkgs/tools/admin/pebble/default.nix
+++ b/pkgs/tools/admin/pebble/default.nix
@@ -26,7 +26,7 @@ buildGoModule rec {
     # ca/ca.go:374:67: 9223372038 (untyped int constant) overflows uint
     broken = stdenv.hostPlatform.is32bit;
     homepage = "https://github.com/letsencrypt/pebble";
-    description = "A miniature version of Boulder, Pebble is a small RFC 8555 ACME test server not suited for a production CA";
+    description = "Miniature version of Boulder, Pebble is a small RFC 8555 ACME test server not suited for a production CA";
     license = [ lib.licenses.mpl20 ];
     maintainers = lib.teams.acme.members;
   };
diff --git a/pkgs/tools/admin/pgadmin/default.nix b/pkgs/tools/admin/pgadmin/default.nix
index e1952025220ad..9e45896512eeb 100644
--- a/pkgs/tools/admin/pgadmin/default.nix
+++ b/pkgs/tools/admin/pgadmin/default.nix
@@ -15,14 +15,14 @@
 
 let
   pname = "pgadmin";
-  version = "8.6";
-  yarnHash = "sha256-SDAU6goe5iu1SAcAsAEam2i+skZkG/hE9y3bGsKiFZ8=";
+  version = "8.8";
+  yarnHash = "sha256-dBgbgZrjF1rNyN1Hp1nKiT6C6FVbYdbEZQgYbRKVsYI=";
 
   src = fetchFromGitHub {
     owner = "pgadmin-org";
     repo = "pgadmin4";
     rev = "REL-${lib.versions.major version}_${lib.versions.minor version}";
-    hash = "sha256-a370dh5IHInhcPA1LeveUIjalrymTsdyoXjBNNKwSTs=";
+    hash = "sha256-203tuxtYOn1fD1m8BGL6rt5lDDr5V38ybPy+iwmZpkk=";
   };
 
   # keep the scope, as it is used throughout the derivation and tests
diff --git a/pkgs/tools/admin/pgadmin/yarn.lock b/pkgs/tools/admin/pgadmin/yarn.lock
index 026590933d2ab..2d0d2d44a23b3 100644
--- a/pkgs/tools/admin/pgadmin/yarn.lock
+++ b/pkgs/tools/admin/pgadmin/yarn.lock
@@ -2232,6 +2232,30 @@
     prop-types "^15.7.2"
     react-transition-state "^1.1.3"
 
+"@tanstack/react-table@^8.16.0":
+  version "8.16.0"
+  resolved "https://registry.npmjs.org/@tanstack/react-table/-/react-table-8.16.0.tgz#92151210ff99d6925353d7a2205735d9c31af48c"
+  integrity sha512-rKRjnt8ostqN2fercRVOIH/dq7MAmOENCMvVlKx6P9Iokhh6woBGnIZEkqsY/vEJf1jN3TqLOb34xQGLVRuhAg==
+  dependencies:
+    "@tanstack/table-core" "8.16.0"
+
+"@tanstack/react-virtual@^3.4.0":
+  version "3.4.0"
+  resolved "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.4.0.tgz#5dcc0ac7c9e35d5db12c3bbe4cbc075bad684d93"
+  integrity sha512-GZN4xn/Tg5w7gvYeVcMVCeL4pEyUhvg+Cp6KX2Z01C4FRNxIWMgIQ9ibgMarNQfo+gt0PVLcEER4A9sNv/jlow==
+  dependencies:
+    "@tanstack/virtual-core" "3.4.0"
+
+"@tanstack/table-core@8.16.0":
+  version "8.16.0"
+  resolved "https://registry.npmjs.org/@tanstack/table-core/-/table-core-8.16.0.tgz#7b58018dd3cec8e0015fe22d6bb24d18d33c891f"
+  integrity sha512-dCG8vQGk4js5v88/k83tTedWOwjGnIyONrKpHpfmSJB8jwFHl8GSu1sBBxbtACVAPtAQgwNxl0rw1d3RqRM1Tg==
+
+"@tanstack/virtual-core@3.4.0":
+  version "3.4.0"
+  resolved "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.4.0.tgz#afd72bc5a839b71c2cda87a738eb4eb18451b80a"
+  integrity sha512-75jXqXxqq5M5Veb9KP1STi8kA5u408uOOAefk2ftHDGCpUk3RP6zX++QqfbmHJTBiU72NQ+ghgCZVts/Wocz8Q==
+
 "@testing-library/dom@^8.0.0":
   version "8.20.1"
   resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.1.tgz#2e52a32e46fc88369eef7eef634ac2a192decd9f"
@@ -10138,11 +10162,6 @@ react-select@^5.7.2:
     react-transition-group "^4.3.0"
     use-isomorphic-layout-effect "^1.1.2"
 
-react-table@^7.6.3:
-  version "7.8.0"
-  resolved "https://registry.npmjs.org/react-table/-/react-table-7.8.0.tgz#07858c01c1718c09f7f1aed7034fcfd7bda907d2"
-  integrity sha512-hNaz4ygkZO4bESeFfnfOft73iBUj8K5oKi1EcSHPAibEydfsX2MyU6Z8KCr3mv3C9Kqqh71U+DhZkFvibbnPbA==
-
 react-timer-hook@^3.0.5:
   version "3.0.7"
   resolved "https://registry.npmjs.org/react-timer-hook/-/react-timer-hook-3.0.7.tgz#ac42c43d0034b873cbf97b44eb34ccb2b11fe5e0"
@@ -10168,7 +10187,7 @@ react-virtualized-auto-sizer@^1.0.6:
   resolved "https://registry.npmjs.org/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.24.tgz#3ebdc92f4b05ad65693b3cc8e7d8dd54924c0227"
   integrity sha512-3kCn7N9NEb3FlvJrSHWGQ4iVl+ydQObq2fHMn12i5wbtm74zHOPhz/i64OL3c1S1vi9i2GXtZqNqUJTQ+BnNfg==
 
-"react-window@^1.3.1", "react-window@^1.8.10", "react-window@^1.8.5":
+"react-window@^1.3.1", "react-window@^1.8.10":
   version "1.8.10"
   resolved "https://registry.npmjs.org/react-window/-/react-window-1.8.10.tgz#9e6b08548316814b443f7002b1cf8fd3a1bdde03"
   integrity sha512-Y0Cx+dnU6NLa5/EvoHukUD0BklJ8qITCtVEPY1C/nL8wwoZ0b5aEw8Ff1dOVHw7fCzMt55XfJDd8S8W8LCaUCg==
diff --git a/pkgs/tools/admin/procs/default.nix b/pkgs/tools/admin/procs/default.nix
index 49666f9d6805f..d8b501acc0b38 100644
--- a/pkgs/tools/admin/procs/default.nix
+++ b/pkgs/tools/admin/procs/default.nix
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = lib.optionals stdenv.isDarwin [ Security libiconv Libsystem ];
 
   meta = with lib; {
-    description = "A modern replacement for ps written in Rust";
+    description = "Modern replacement for ps written in Rust";
     homepage = "https://github.com/dalance/procs";
     changelog = "https://github.com/dalance/procs/raw/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/tools/admin/proxmove/default.nix b/pkgs/tools/admin/proxmove/default.nix
index 21055de12b6c7..0d7dbbbbb9b08 100644
--- a/pkgs/tools/admin/proxmove/default.nix
+++ b/pkgs/tools/admin/proxmove/default.nix
@@ -33,7 +33,7 @@ python3.pkgs.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "The Proxmox VM migrator: migrates VMs between different Proxmox VE clusters";
+    description = "Proxmox VM migrator: migrates VMs between different Proxmox VE clusters";
     mainProgram = "proxmove";
     homepage = "https://github.com/ossobv/proxmove";
     license = licenses.gpl3Plus;
diff --git a/pkgs/tools/admin/pulumi-bin/data.nix b/pkgs/tools/admin/pulumi-bin/data.nix
index 8f96441cadd7c..128ab8e226f7b 100644
--- a/pkgs/tools/admin/pulumi-bin/data.nix
+++ b/pkgs/tools/admin/pulumi-bin/data.nix
@@ -1,88 +1,88 @@
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
-  version = "3.116.1";
+  version = "3.120.0";
   pulumiPkgs = {
     x86_64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.116.1-linux-x64.tar.gz";
-        sha256 = "1wywsjwllsa9y3v2bri7f4fmh1mr6mmamm0gkicq6p17m6g6xs27";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.120.0-linux-x64.tar.gz";
+        sha256 = "1ck6i0hqzisl474vv84iwdg8yh57sc6q3pjq81xh6plp8s95rka2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.15.0-linux-amd64.tar.gz";
-        sha256 = "0mjlsq61s7avya96i7ga0i28pdbg64wb59wvdpivv2g3lb6xd6vb";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.17.2-linux-amd64.tar.gz";
+        sha256 = "0b35v0fx2ycv7fb32s457fgh24cksrjw393p437sbdl18c9kv86d";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.1.0-linux-amd64.tar.gz";
-        sha256 = "18k4gn3b94h9hgj46xn5cv3002wy738ry6wrz57p4hnmklifzikj";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.2.0-linux-amd64.tar.gz";
+        sha256 = "0vwlil9awkfs774992bb9lj6bggjw4vnys0z0pzsd4lmidxc8mv8";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.55.1-linux-amd64.tar.gz";
-        sha256 = "1l8zz6ljvs6qg1r8kbcjrmz2h0nwrhggp1vm3wgxklm3dbsam9h9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.57.0-linux-amd64.tar.gz";
+        sha256 = "14dh5jf6ld5prgcbz74yk9fwcf1k6fsfm70gw1xy97m4crn2l4q9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.7.5-linux-amd64.tar.gz";
-        sha256 = "0hcz97l8hz4zvy9yf4h0bz2prqqgcsmd9zp79iyfm0l8xryjl9br";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v7.0.0-linux-amd64.tar.gz";
+        sha256 = "1nqxc28ncrq1zpclm2acvvqa8yl21nmk6lb5sqsvy5kbizpzslar";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.3.2-linux-amd64.tar.gz";
-        sha256 = "17dyf0zy78qcf3cz5kw1k6pliwiny1184aksq3d45ny4ag15q5zr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.3.3-linux-amd64.tar.gz";
+        sha256 = "0vcmyzb6qbg8sfrbq06sdi1cc309132qsf92lswxydvnrqxvy0x4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.36.0-linux-amd64.tar.gz";
-        sha256 = "0ab3jvmax93r0za0mwyprywpclhh1v1x6nlzk08djj39nb772aps";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.40.0-linux-amd64.tar.gz";
+        sha256 = "162zhf7iy9yr47h4fik3rps2wy7fsl74mg4kcnjxv65wjwmqlab4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.49.1-linux-amd64.tar.gz";
-        sha256 = "0bjjj7w1c16kpnzpy70d1ijkj6hiym1qp751hdigl5jg7r0kbqhh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.80.0-linux-amd64.tar.gz";
+        sha256 = "1sgfw4b9s6k5854fa35y0p77v1n5h199yaghing4qn05i0miapgp";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.0.0-linux-amd64.tar.gz";
-        sha256 = "1d6i9p3lw2hzn2q7ja3cqh00vx7ihm5lhs6pg9468hag8wvk230g";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.52.0-linux-amd64.tar.gz";
+        sha256 = "00cbix4cdhmgj50ilqjyn2ia3mxyp094n1979pm15j88plvambf3";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.77.1-linux-amd64.tar.gz";
-        sha256 = "0p2wvmblq34grvb5bnvwni0xj6d2v57cl086n3kifvnmc4qsmymh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.1.1-linux-amd64.tar.gz";
+        sha256 = "05vyz81a5z96k35hh8ky9bl6c505jfb6rxsc82qlfh8kx110p66l";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.29.0-linux-amd64.tar.gz";
-        sha256 = "1pcril9c8ck99hg0k997vqiawk3iqwcsvg8x81b232pz8vzsxd5q";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.31.0-linux-amd64.tar.gz";
+        sha256 = "0n1kp9ip9f70rhn619r5a4pzyalcfx46252cfk3ha50drjv27l58";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.2-linux-amd64.tar.gz";
-        sha256 = "13gbn5jslqcm43ppp4015f7gcqpcvv7bqxydg41zq4xchiqrbwh9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.3-linux-amd64.tar.gz";
+        sha256 = "1g6rzqsgak4801b2zzhq3ss6gkvkc8y7swpbm92sdbns71hxvw6w";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.28.0-linux-amd64.tar.gz";
         sha256 = "18876q1n1q4482pfb6r2v8s2ckplq6i0ldf0v7r2m2fws00sin8i";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.29.0-linux-amd64.tar.gz";
-        sha256 = "0sdmjaka9d399hgabib1p6kwlydcsgibj0jkz87mi7blj4jgrmsm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.30.2-linux-amd64.tar.gz";
+        sha256 = "1fsslwik687gqpcj3i5d1zv5jwcf2knkx2whn61bm0gir8wcl3iq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.3-linux-amd64.tar.gz";
-        sha256 = "1bdmyrfgszqb9rmacq3bj0qqybi4ck336cgdhg8bk4dbjx0x4sah";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.4-linux-amd64.tar.gz";
+        sha256 = "1sbscig80kf3k2w5j5934ld78w2760s97dn9cqnwf040wq3x2bqk";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.1-linux-amd64.tar.gz";
         sha256 = "0hnardid0kbzy65dmn7vz8ddy5hq78nf2871zz6srf2hfyiv7qa4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.7.0-linux-amd64.tar.gz";
-        sha256 = "0dzhzf9xcb261mcnw91g6hk4hbwhhzddiwjh5c1vh63agw9564gy";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.8.0-linux-amd64.tar.gz";
+        sha256 = "17zngh68ssilazg5caiz2amzcgd1kp906k5viwp2ig70wp6gwkyy";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.23.0-linux-amd64.tar.gz";
-        sha256 = "0nq60scg19r6n56r1ki6zk8dgzd28dwf032f4r4fqbv604s9kp44";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.27.0-linux-amd64.tar.gz";
+        sha256 = "0qxp61glmnqh5a4w07b7hwbj0nkg7c15pqil8855jv15zakgp495";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.0-linux-amd64.tar.gz";
-        sha256 = "00qdx09p6lh91ib99g54jk8sfy48f71j98gkqsjaipf2x7bl9g8j";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.1-linux-amd64.tar.gz";
+        sha256 = "1ilpp4xkdpp3mq4i0sicxbndn15gbrhjsvxp8aanc20dgpcr5hy5";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.11.0-linux-amd64.tar.gz";
-        sha256 = "0955zm2xiprc7skdy2yxr0mkp4kijm3fdpfq6r1qzhqr1lxvdns1";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v8.0.1-linux-amd64.tar.gz";
+        sha256 = "0858slr7z027dwx3nwgb175ijyypkv5brm27n96148xk42qw1say";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.32.0-linux-amd64.tar.gz";
@@ -93,12 +93,12 @@
         sha256 = "1hjg23ah9v20kfi08cln76akvldn93s24rcsx7dilsz2hiw4qr9x";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.11.0-linux-amd64.tar.gz";
-        sha256 = "1cjl499sjlskf0bs56vfwh9pramp653l732bzy7vbjci4rm5x3qv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.13.1-linux-amd64.tar.gz";
+        sha256 = "08vjj3wlxkrriqncmhx4r03dlg8w670qp9vhkzi4srax3141z518";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.19.1-linux-amd64.tar.gz";
-        sha256 = "0ggf8233d2979kmydkm83wxcwwgz8jfxgwf48g6rrcq9a2pgiz9m";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.21.0-linux-amd64.tar.gz";
+        sha256 = "00qwjy10793p9687xagcfspw64vq6y0lgclb69rvfz5mwarq7i0j";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.3-linux-amd64.tar.gz";
@@ -109,28 +109,28 @@
         sha256 = "0yv68ccyzi7hv2xaa8sybg4mf5qc7wa25kjziy2fdfsjyl8fn6ps";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.15.2-linux-amd64.tar.gz";
-        sha256 = "1cw4ajl3h9xxysgyf9n1n8n9cdzwc7kpb263hs7k8i0yk1vfvcsx";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v4.0.0-linux-amd64.tar.gz";
+        sha256 = "195m7xxdzlwzglaz72iajdx13yr3j78x38z3ajbw7c89wvpp8p6l";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.11.1-linux-amd64.tar.gz";
         sha256 = "01qqxxap2cmvgc0msajxdsr7ddpw9ly1ms70fzb4vk98dr9q7lpr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.1-linux-amd64.tar.gz";
-        sha256 = "0rag94fgv2jgpbgb1caj3i23zzvyjyvyc63asvi5889pf2yxyi4h";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.2-linux-amd64.tar.gz";
+        sha256 = "05k0kq11z4m5vjj41sqq5vi7qpiwmqrw3plw96f750bv5bzgpf09";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.53.0-linux-amd64.tar.gz";
-        sha256 = "00b675jp3jggg2scx37khrl35wyma0ncn3cqmn631b90rbnk2dc5";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.55.0-linux-amd64.tar.gz";
+        sha256 = "0ibyifkbbvkid3pfgiy8c25mrykkjgkaq2r8cn7jd6yaf15x0p3a";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.77.0-linux-amd64.tar.gz";
-        sha256 = "0avgx6b6s1jffn4dr2bvsicsi6j48hxfg1k7nsyklbcdwvv6b96j";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.80.1-linux-amd64.tar.gz";
+        sha256 = "1bzmgs0xy1l2rwh843y7rdamsixm8lddybr2y088ilf69g8a63gl";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.21.0-linux-amd64.tar.gz";
-        sha256 = "092pr29pf29wms697cdp93lp9772bg07sj2290a9ypf26yhr5dq7";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.22.1-linux-amd64.tar.gz";
+        sha256 = "124rdhsl10w2w4m2lyx71fs9mfp61v0cjdirpj6rj7f05lqnc4rx";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.16.0-linux-amd64.tar.gz";
@@ -141,12 +141,12 @@
         sha256 = "0sy0fm73h5rv7jilj6dcyf2244hws8j4ayb3scr4ranckn05dpm1";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v6.1.0-linux-amd64.tar.gz";
-        sha256 = "1g52p8y82af5865plvykpca6im4ini7xm679sbkigv6lfjfd5mpq";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v6.1.1-linux-amd64.tar.gz";
+        sha256 = "05g9fhg25ixxxrv0pm066cjdimjzs9wp8jlxv9179hny9hcy8fyh";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.9.0-linux-amd64.tar.gz";
-        sha256 = "19ag7ca5c1cnhpc3rxdy5rm5gavazjnrjh7hzpbysdmckzbc28ff";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.10.0-linux-amd64.tar.gz";
+        sha256 = "0f3pa8y29n3isxa4kwqfsr6i1x3xhcj7jnqmnzkc60y7lg4r1z12";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.10.1-linux-amd64.tar.gz";
@@ -163,84 +163,84 @@
     ];
     x86_64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.116.1-darwin-x64.tar.gz";
-        sha256 = "1vzbca3m040lv0mkxrxcwxyzv47xvpzjzf5f5dpf7jg6p9875imk";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.120.0-darwin-x64.tar.gz";
+        sha256 = "090hvs9dghc4jzrsxj71gxl6gmsilfr3sydw7is9hwpjiykk1k3n";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.15.0-darwin-amd64.tar.gz";
-        sha256 = "14zs1mslzy9h33pilqdnqcjpfz2v36hcfd14yrf1cs5mldhhrxhq";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.17.2-darwin-amd64.tar.gz";
+        sha256 = "0r0fs4q2aaig3138fd8ky10sfdwwa8vkqvjmyik59ri9xgpxrc6n";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.1.0-darwin-amd64.tar.gz";
-        sha256 = "1lvdbyrcx4mpwm3y6dgxa3m9c5g5s3hhfx67qr2vrq1jwkfbc3ss";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.2.0-darwin-amd64.tar.gz";
+        sha256 = "0kwj3m50giwk8p0d0amy5nrvf4m4ms5salbh51nd4fm0l5hz2n0q";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.55.1-darwin-amd64.tar.gz";
-        sha256 = "090m3609dzv396r6b7yriip66zxabj5ad2mx0ghc0bgj2gxq6ysj";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.57.0-darwin-amd64.tar.gz";
+        sha256 = "0pyc2d7jg5bi3lz151d94i0i8sfrxhqnv388sdz6yrdkhz434z82";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.7.5-darwin-amd64.tar.gz";
-        sha256 = "1ga4wi18kiiv6hd9vc1h8kixk5d1qihy5lw4031rb44g1kx8xm0c";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v7.0.0-darwin-amd64.tar.gz";
+        sha256 = "1qi3vmzsp3bcq7y8y7q0h7hiqk6r5mzjq7h6i0g77fjcyjabqdch";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.3.2-darwin-amd64.tar.gz";
-        sha256 = "06wrd619fi924r1wm66pj93q2j8kb9y7bmjf9sxankq2ma28slgk";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.3.3-darwin-amd64.tar.gz";
+        sha256 = "1jhnh3f2zni8wmddf2bz25r37iwbh1dyf8j9wnjyync1fqjy877y";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.36.0-darwin-amd64.tar.gz";
-        sha256 = "1akqb2da35fjv1qw35z1zcqxs1a3ida6a9avkkm46ng7c29s23pa";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.40.0-darwin-amd64.tar.gz";
+        sha256 = "1km113wism9yf4rlx44g171jkxz3srpyvyi5hwablpw9pk93qnsv";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.49.1-darwin-amd64.tar.gz";
-        sha256 = "1fqginvky4afnyjw6w3mk6arqjxzdiri7g2ccz8wsvpsidq44d86";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.80.0-darwin-amd64.tar.gz";
+        sha256 = "01xjm5q6kixyz4yvgjdhfskm3l7caygd33h19w7kzaih3dfffd25";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.0.0-darwin-amd64.tar.gz";
-        sha256 = "1gzb7srxdzz1vhrzzzfxahkzr26b3smd62l70dwn605cich3vwyw";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.52.0-darwin-amd64.tar.gz";
+        sha256 = "052hkf5ljyg3fhqn7z1dk4mhp4pbzvb2klvc9d2p4qqzv8vc47gr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.77.1-darwin-amd64.tar.gz";
-        sha256 = "0wabgypwphidaij94wrij0fvmmhrdp2z5rhjmkn2kffx0iz340hd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.1.1-darwin-amd64.tar.gz";
+        sha256 = "0blhx82diydpwbfr7grj2zxk29pvg0b2w2rawlv60mhc3dw6ixar";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.29.0-darwin-amd64.tar.gz";
-        sha256 = "0ih4qli4yj109w662l0jp8mpx69p1rchb5pccdc2sing6mx6ql9i";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.31.0-darwin-amd64.tar.gz";
+        sha256 = "120z9hs349qzjk84fwzizhpp90fp21fgapxbgy56k22pshl35wzs";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.2-darwin-amd64.tar.gz";
-        sha256 = "0ldyy3c6qapha189jpb0lrmwq8brz9hip3lkl16xihmwgxpakqv3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.3-darwin-amd64.tar.gz";
+        sha256 = "1gcv6ri58a4k8g7dzh0xvpmv1x6ndlihkmd5n2gza303i9c8466n";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.28.0-darwin-amd64.tar.gz";
         sha256 = "1k16z181nd6h3fabxhg1qrcrjnwppbhlqwqks99p7z72zlgx02kp";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.29.0-darwin-amd64.tar.gz";
-        sha256 = "1z1ai3i41g2nay21z9sq47f7ilnhcjbdzshxx3n8iy9mn3yrsyaw";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.30.2-darwin-amd64.tar.gz";
+        sha256 = "0lwwq0na0334ynddmpy1fy71js5f35i4ps3084z4cxzaz0amlnv1";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.3-darwin-amd64.tar.gz";
-        sha256 = "00x85ppnc8z44npvp8h0n86839vilwyvr33dcx2zbq26d5g8dln4";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.4-darwin-amd64.tar.gz";
+        sha256 = "1viwf0afhmisxvz0dkmf79b3ncbba4xz9hp9h0h2866l05h9v5d0";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.1-darwin-amd64.tar.gz";
         sha256 = "1m5lh59h7nck1flzxs9m4n0ag0klk3jmnpf7hc509vffxs89xnjq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.7.0-darwin-amd64.tar.gz";
-        sha256 = "1a582mqhbr03ab1jlfb0fp9r087caihlkw6np5il77jraz97cqsh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.8.0-darwin-amd64.tar.gz";
+        sha256 = "009w2zsmy4nkc5w8k0ldm5fl2yjl8h52574w1as27kz0800nibav";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.23.0-darwin-amd64.tar.gz";
-        sha256 = "0cqxvr3z3lwfpmifjbcl1898qs2wqjk8lr375cjppsck16pcizzp";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.27.0-darwin-amd64.tar.gz";
+        sha256 = "0d3pcwj7lncq4zalbkd3nyk4dbas5328maxa3dv55z6wi4x2ds9n";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.0-darwin-amd64.tar.gz";
-        sha256 = "0qp2mva4rqrahpb5bx02grxly9zq8s676hin2r161y0wy7afdgih";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.1-darwin-amd64.tar.gz";
+        sha256 = "08plbmrzdd4vbds4qihdq3c0w9fxjaa64lmlaplla4z0qvi5cjc2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.11.0-darwin-amd64.tar.gz";
-        sha256 = "0yxmj0amdvfgn8mnz7p9z843g503sr8flg4kykl3lvh1r0nwj85v";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v8.0.1-darwin-amd64.tar.gz";
+        sha256 = "1kkwbds9y8r765srg7q0jh2pw5dp0r8plb26k25bvlh6ymnh9plg";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.32.0-darwin-amd64.tar.gz";
@@ -251,12 +251,12 @@
         sha256 = "17d2j4wf08q818mhb1qlji1hb3b8900hx0yrpk43xnqwvfjsyyyh";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.11.0-darwin-amd64.tar.gz";
-        sha256 = "0s1yv5cahsp94px0k00jhmh8g6yhjb231bfim3y9bqh13i7z6rir";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.13.1-darwin-amd64.tar.gz";
+        sha256 = "082gxffyjipccpi4cn6mlwvcg4c59773z7id58gsvdvxaddh0jpj";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.19.1-darwin-amd64.tar.gz";
-        sha256 = "1jsy33m03raqvp51xdqic87nldmxlyki4rz0lcdfdf49dzg2pzxb";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.21.0-darwin-amd64.tar.gz";
+        sha256 = "0d67vw6imc70gq0356jgpg30ah9sgnqki0ijjw1iss6bsaxhbkxx";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.3-darwin-amd64.tar.gz";
@@ -267,28 +267,28 @@
         sha256 = "04cmmgi5rxj9lbs5s3d4gzrngiw52gyvsb7pi8w7v6cpb9p8q3gx";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.15.2-darwin-amd64.tar.gz";
-        sha256 = "0h71g1mmmz70bx5zs4jryngm2nghi5fjbp4ldwjhx4ymbf7ksm2w";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v4.0.0-darwin-amd64.tar.gz";
+        sha256 = "0f3xrcnn65yqpfrqkywa6blsxb501xjw2j3apb3351ii5dmmi31q";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.11.1-darwin-amd64.tar.gz";
         sha256 = "1m255nwx3qzl3pcsm2mqwrpzg6rwb1yl5js7l0ra5hz066pw0wai";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.1-darwin-amd64.tar.gz";
-        sha256 = "08xhlygac5516lyyrb8x5xx5fp3a918nk1afj6m7d1c6sswcw84s";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.2-darwin-amd64.tar.gz";
+        sha256 = "0y4g3agranvahayblmy9m6i05f4x290r9lhc1pzhjsnz1xdh7nf4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.53.0-darwin-amd64.tar.gz";
-        sha256 = "0nxfrkpmmcaw4y3kzmp0i9v848z1mjr9p1l5kj85hrdkdqq5m2c8";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.55.0-darwin-amd64.tar.gz";
+        sha256 = "1yg346nz6nrp8s9f998jynn250nywpg1nzxx6820pdinvaw81sgy";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.77.0-darwin-amd64.tar.gz";
-        sha256 = "1lr1r615jpld7k5szyd5ks48rkr2p0kn8jh3lnjbvs8v08prd8vz";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.80.1-darwin-amd64.tar.gz";
+        sha256 = "1h06j9jpba6wxv8nz33ysz5bx928qbm64nk4gv5qa5zzdpm4c1mh";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.21.0-darwin-amd64.tar.gz";
-        sha256 = "0rp6iiby987q5mhpnk5a381zr6vipb9hnxmlk7kdwvflcc8va369";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.22.1-darwin-amd64.tar.gz";
+        sha256 = "0fna4395jc7f21kpp7lc5rda7sw8z1mmdgz690cl9lfqp5md5amh";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.16.0-darwin-amd64.tar.gz";
@@ -299,12 +299,12 @@
         sha256 = "1yf2xhsxg08wk5flzj6m0ix8www5qh0xx1ak7kd7hhnidfvshhiy";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v6.1.0-darwin-amd64.tar.gz";
-        sha256 = "1w081nglskjx06i1a2vyhmcsxfnq0nvn75q99ykb46pd6k9kgblf";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v6.1.1-darwin-amd64.tar.gz";
+        sha256 = "1mbrrw4mvf1dnh6zp66lb9lsirg24gikvd7ls51bdld4pfs1rn3z";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.9.0-darwin-amd64.tar.gz";
-        sha256 = "07g2iys3w2r0giwakymb1n1bpwp812z93nskxbkwiw4zl8p6vr9v";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.10.0-darwin-amd64.tar.gz";
+        sha256 = "06vdv0mms6ksn1ah61afkfi2jx6q0sicbkvw2ngd98ch8djjqysk";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.10.1-darwin-amd64.tar.gz";
@@ -321,84 +321,84 @@
     ];
     aarch64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.116.1-linux-arm64.tar.gz";
-        sha256 = "08lqdilywnpxgnag4qbcr4f454q3812cd177lfffv8zm44xzvgmx";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.120.0-linux-arm64.tar.gz";
+        sha256 = "0aki919lihvzva9qswc1lqigssiqqy8zqdd6v982xfc5b29xa0cb";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.15.0-linux-arm64.tar.gz";
-        sha256 = "096zak0andzcywk5rz9dxbr593ixzzhqfqlffh11gp6q7j9xdy87";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.17.2-linux-arm64.tar.gz";
+        sha256 = "08q48mmxdvzjlkysbfhbpsxqlphmzld2lmps5wnkillxswil028k";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.1.0-linux-arm64.tar.gz";
-        sha256 = "0nr87qclkvn1281prikixvbq3mhkkiklci45vwshzqp7fr7pf3ph";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.2.0-linux-arm64.tar.gz";
+        sha256 = "0a1kqpjwsksimv29y5q8d4b36s28801vhim1f5agq0c0lrn1fcds";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.55.1-linux-arm64.tar.gz";
-        sha256 = "1cz6wd28bv4xlz6jfq6pxa9a5bxrb9amxb149ksrg5ysp55c7jrp";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.57.0-linux-arm64.tar.gz";
+        sha256 = "0yn3rbya6fr12m3ah2f5qywp85vf198zsdkpzx5wny6s6prnsiw8";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.7.5-linux-arm64.tar.gz";
-        sha256 = "08x6jsqw1r4h679v46bvnqcvbcwcq0icn5a319s8j6n80qspmaqp";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v7.0.0-linux-arm64.tar.gz";
+        sha256 = "0fxsa527dnvc77flfgqbmj5823mfwwfp67r9sswkhik3i6i0lm3c";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.3.2-linux-arm64.tar.gz";
-        sha256 = "16zbb652as85casz0yayg4vzrrya0r35l8z3vac31d2054bpp367";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.3.3-linux-arm64.tar.gz";
+        sha256 = "1dv2y358fwcp6pr8mb1yhw5lygs9aqf8ma50vz3p74z1101lz3id";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.36.0-linux-arm64.tar.gz";
-        sha256 = "0ic37v6nc6pi0ngk7j0rp9s1mk94f6igli0ak5dnyygbcpfs1d16";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.40.0-linux-arm64.tar.gz";
+        sha256 = "1881iqrnsfja341nq27k6pv3c85pw27cyq5ykk5bs2vzjvv008g0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.49.1-linux-arm64.tar.gz";
-        sha256 = "1slsqr77i458f40i87cb49d05xnbgc01w419js5x7wfvzdcf04j7";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.80.0-linux-arm64.tar.gz";
+        sha256 = "0hmd6y0mh9bwx38k5hqbgclwfsa8ls64511zkhlmln6pix3bn4k0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.0.0-linux-arm64.tar.gz";
-        sha256 = "0s4pxkj1fni8c0r8v8kqzl7agcy93m71l8kpmb3630q4syddzmqb";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.52.0-linux-arm64.tar.gz";
+        sha256 = "08a20lp4ym5cncv6q3s7dbwrhhn76630x8a2arsm4j7gcqja389m";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.77.1-linux-arm64.tar.gz";
-        sha256 = "17lf18j0r7mq4rwmscrblp4b7xbq9zca55x9vn26rmmhgcsvzpd0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.1.1-linux-arm64.tar.gz";
+        sha256 = "1chrfqdiwx6lvylrih6zx7m1zkrmcb7lz0x1cb9hc0l5fy93rc63";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.29.0-linux-arm64.tar.gz";
-        sha256 = "1p9xvwivl0dzvmgnlcbsak9s7qc3ys8i185690wiragj9f818nlf";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.31.0-linux-arm64.tar.gz";
+        sha256 = "0vrlk561p3aax3cgzpvjgwsxwwc5vblqb28cvc1xrj4bphd7xjda";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.2-linux-arm64.tar.gz";
-        sha256 = "03dx7sabps5dy79fwgp0msjbigaijxxjabdk2sprig6z25mvk91s";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.3-linux-arm64.tar.gz";
+        sha256 = "0rmn667z8s4pndck24h82qp5fyshixvji736x6barlpiamy4lkhj";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.28.0-linux-arm64.tar.gz";
         sha256 = "1nnn6z6j76ky78jh5h1ii07hci041p6qsm7shg8k7fsmb1g0bkji";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.29.0-linux-arm64.tar.gz";
-        sha256 = "0zmdsy9x62a9zf1yc3g0c11dagp3653dsbqgp79cjq89n7y79289";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.30.2-linux-arm64.tar.gz";
+        sha256 = "10asvq6ds4y9sfxy2lh81ldzxdr347nwvhphjzs3sb2pxrx9dksz";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.3-linux-arm64.tar.gz";
-        sha256 = "1bs2mcfg99an9bvv77vzh0m32dbs7x79dncgqk1dyvzq2z3d44p4";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.4-linux-arm64.tar.gz";
+        sha256 = "117a8xaj6n9hgr7r8brmwf3kmdlgd2xzmssai8nn5r9hq7r8z79f";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.1-linux-arm64.tar.gz";
         sha256 = "111pia2f5xwkwaqs6p90ri29l5b3ivmahsa1bji4fwyyjyp22h4r";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.7.0-linux-arm64.tar.gz";
-        sha256 = "082v5hbfcdrjxd8b9w6g0zh0q6k6b5vlx1m7sjwqilalp58s5g2s";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.8.0-linux-arm64.tar.gz";
+        sha256 = "09cdx6hh2lvipnj4fsff66vq8i3fvggs253ik2a8lpajg4xdhswi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.23.0-linux-arm64.tar.gz";
-        sha256 = "1krz5wazaav5hyrgssyqpgj69m3rx122pwjqh4s95i6c9mr2g0pr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.27.0-linux-arm64.tar.gz";
+        sha256 = "1qs9bcsw91s450sdxb2lrqzxl2q4wmpfjfspp7g5yxnv8ns8knl6";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.0-linux-arm64.tar.gz";
-        sha256 = "1495j84c92840h6w2rapag5698r6bm2mbcrwxgdnmnvc87r5kjms";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.1-linux-arm64.tar.gz";
+        sha256 = "0b2cc2ybw76h283ir4nl51cf5zbl2bxrcr5iilskqf58b8yfrra0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.11.0-linux-arm64.tar.gz";
-        sha256 = "09clraq9b81sv1p7m531kv7jlypvxcan4dw62gkq6ncwm9cdx1ll";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v8.0.1-linux-arm64.tar.gz";
+        sha256 = "0k8iyn27qm5y02niizh7azpvz0mq7v50i308ylicm8290qgl1xq9";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.32.0-linux-arm64.tar.gz";
@@ -409,12 +409,12 @@
         sha256 = "11winxlgf2p325xppp9xa0p2mhncj72xpcyxgz13wizk33saj649";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.11.0-linux-arm64.tar.gz";
-        sha256 = "021i7w1ysxplwrjd7mzsr0mmnrw4h5rnrwi33sirv0ryx7rsk94z";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.13.1-linux-arm64.tar.gz";
+        sha256 = "12y68fz2bvnpg35agdbrplmh208wn8db1fnx7y1ml4agfkrsvrqg";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.19.1-linux-arm64.tar.gz";
-        sha256 = "0y0szv0mk97p5rw0khqzhfdjg91gdwqf00kjrx0wb0arhsqzf5hw";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.21.0-linux-arm64.tar.gz";
+        sha256 = "1vjj6chib76p89ydm100v0yjv286jwck3ywp6if7mcnjj52fyrym";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.3-linux-arm64.tar.gz";
@@ -425,28 +425,28 @@
         sha256 = "11sd0kfkbczybkfh3n9fr0j8lnjfqcwfvxmvwfgm8d2jz9c7rhsm";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.15.2-linux-arm64.tar.gz";
-        sha256 = "0a0v0yj14fslncisvhfn8mlk009h7adkcszv6dlbzha46p4fl32a";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v4.0.0-linux-arm64.tar.gz";
+        sha256 = "0gg3f461j6ca31cnnlsn9nlnb63mhhr6rwkypa5wnvf38xsfbmf6";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.11.1-linux-arm64.tar.gz";
         sha256 = "0kix5wkdhr1svbqicvfs91g43jwzp80zi07wq564pkphr907r99g";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.1-linux-arm64.tar.gz";
-        sha256 = "03yg6fxxrimkhi13qsm328n5x6fqhl78bznh50fslhj9vlhpv1jr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.2-linux-arm64.tar.gz";
+        sha256 = "0s7sqcrf9nvlyfjcj2inbifdn5xlffcmsby1giiwjcjfvjk5wl8j";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.53.0-linux-arm64.tar.gz";
-        sha256 = "132b33wymaxcp6i4mpp7cal23crkm4xj1llnwa17p2gd61qdqyid";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.55.0-linux-arm64.tar.gz";
+        sha256 = "15n7wi330pfqg4z196cjx5gksdz3nhaqbjvxslzx9lx501ly3npd";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.77.0-linux-arm64.tar.gz";
-        sha256 = "1vv27n5nvdkrqci6wi5a5j1zczx263wslhb2h3jhfx5drl0v99ix";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.80.1-linux-arm64.tar.gz";
+        sha256 = "1jhjz9kcs09x5i128mx4k7mh5fjafmg21hnifxh2avcari52r1q6";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.21.0-linux-arm64.tar.gz";
-        sha256 = "05a7bpw8wg5939jnsrz8wdsyrbhs2sbpsbq7z5h92pq9s9ymsmxw";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.22.1-linux-arm64.tar.gz";
+        sha256 = "0vhf8l6ipyhm0ivl8ixpwha5a8pl715qxgncdwz7cfqrh24sw2n7";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.16.0-linux-arm64.tar.gz";
@@ -457,12 +457,12 @@
         sha256 = "0fxxiyl1g120lzc2rm13cz7lxjp1psvzjd811i7ljy43ii05ahq4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v6.1.0-linux-arm64.tar.gz";
-        sha256 = "1vm44qycg7v58zhzg2ki2lda2ijwgd28lf0n5dvzxbm9ns2akf81";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v6.1.1-linux-arm64.tar.gz";
+        sha256 = "08w72fz5lzsaa4q5zfnkkggpyy5brqx1zpbybkvc9r91s44kbjjf";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.9.0-linux-arm64.tar.gz";
-        sha256 = "0la5pifbr558smr69nmqax7b8vkvhr243avrn04gz11sc1fwqb2a";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.10.0-linux-arm64.tar.gz";
+        sha256 = "0j9w042blbs0wq3qlnjk20a9bs48v3jmg4s3z2mn39c7ff1604by";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.10.1-linux-arm64.tar.gz";
@@ -479,84 +479,84 @@
     ];
     aarch64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.116.1-darwin-arm64.tar.gz";
-        sha256 = "0hfvvcpd6hjqsrbbjlplczn2z7si87nizxfjpwrcz98jnvdqjgld";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.120.0-darwin-arm64.tar.gz";
+        sha256 = "17niys4r8i1b40g3sv783ndnbks0lqpdasi2p3sx7zc64sq6v7nm";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.15.0-darwin-arm64.tar.gz";
-        sha256 = "0mfjvzgphhi9dqa6kgfd8avvr80xvfbiikc4kj04fl85rc39h2hr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.17.2-darwin-arm64.tar.gz";
+        sha256 = "0ymj35japjafjm0cm7fqzbhss4dh7bapz8yr60qz2l9bmz5nm3d1";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.1.0-darwin-arm64.tar.gz";
-        sha256 = "0zsch3dj2bcajxjivz1xjbiby6v6lb2axqq9y3nx8q6l6wnn1hsa";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.2.0-darwin-arm64.tar.gz";
+        sha256 = "0dydbqff9rd7f8ys2imjz3rf3c4y1248zmrbhsr78jywdw1h7fa3";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.55.1-darwin-arm64.tar.gz";
-        sha256 = "1g8dysychpf4867zp22gwaj5z2cchybds86c3say95pzbrlv5njm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.57.0-darwin-arm64.tar.gz";
+        sha256 = "0blhb4ymfwrc7lm7v4sg0kmpibwbrrxcwd30imqp0gk6awmnjggn";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.7.5-darwin-arm64.tar.gz";
-        sha256 = "0wh34s4dynb4vjfr8rm5rnxs6w06sgq1r7a6sp16p93c5ib7lj3y";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v7.0.0-darwin-arm64.tar.gz";
+        sha256 = "1g461qcw8479fgchyg0wl086lay2irz7f1415bdvjhcjhjsyqas9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.3.2-darwin-arm64.tar.gz";
-        sha256 = "16sv847ymz60s8p5p7am2lclrinlhh9f5bch3721ap86acxyh2i4";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.3.3-darwin-arm64.tar.gz";
+        sha256 = "0a1aibs654xbcdm8kdcjjrg55fb0yh819d52zz3h6hpg40bahqcx";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.36.0-darwin-arm64.tar.gz";
-        sha256 = "1fkry5pnlw1qxvbc89xib0656yc1ca35gsbif1b1hh5dgj3wfs9a";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.40.0-darwin-arm64.tar.gz";
+        sha256 = "0kgyg5jqxrlv8jr5iyqdj6xg1x4n2zjnlaymwyvakygryfnq4b1m";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.49.1-darwin-arm64.tar.gz";
-        sha256 = "1h2kp7vss1i5xjbzcriz1q41f7qmz41zx6zw0p64d3in9gjzyd3s";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.80.0-darwin-arm64.tar.gz";
+        sha256 = "1abz7hc4shvijf8291528blba3n4ixwwpk5jqv7i38bsn1jh1q3f";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.0.0-darwin-arm64.tar.gz";
-        sha256 = "1pjcbk8lsqpdw12mp07czf8gzam7dhak3zb4zcd0z9xp3fj0qvgd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.52.0-darwin-arm64.tar.gz";
+        sha256 = "0171rb3d1582vi0p67s4cmcjx19a3r278w4a1vlmqadk5jg9xx2k";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.77.1-darwin-arm64.tar.gz";
-        sha256 = "1fap3aapqhzf831yrcb727rmmy8k18bcvr63qwvmbcwvr6gj4ffk";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.1.1-darwin-arm64.tar.gz";
+        sha256 = "1m53gzviimjcr3dl0pydafa6dl1r0q6ih1gwhm7lvgpll300wl1q";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.29.0-darwin-arm64.tar.gz";
-        sha256 = "0p7v06n1zqv4czbrc7i41lmhjn0ypazji1gngrx5x3r1dc3c4bpk";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.31.0-darwin-arm64.tar.gz";
+        sha256 = "0k2aab9vn0l9sq0pgzwl3cz1gzg5yc4gqw1yln2nq637wknp7p6f";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.2-darwin-arm64.tar.gz";
-        sha256 = "1zjggbm0cas99vzh98yld7af93bamzb7492612a1bdk1x30w46jn";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.3-darwin-arm64.tar.gz";
+        sha256 = "1wfiq9rzdzp8pa88g7dbgz644dih8f9f0apw6vfngjjsd2kj3k1c";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.28.0-darwin-arm64.tar.gz";
         sha256 = "0r32xy57ggpg5mlcrcvb0vrksfix3bsf2jdib1z2h3dydgczl2n6";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.29.0-darwin-arm64.tar.gz";
-        sha256 = "04bsf97vbp0r9zp7x3xpfcx2h8f3pckilqnc353kr2bf566vam25";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.30.2-darwin-arm64.tar.gz";
+        sha256 = "0gi776zhi37nrj37aalz5qmkyf2wihgq4jhm7h6qr5vgr7chld34";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.3-darwin-arm64.tar.gz";
-        sha256 = "0kk3pg793ikq5qn0z1yqg6viddcs35lzyzyly95jhh2v2154arbm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.4-darwin-arm64.tar.gz";
+        sha256 = "128wvq4qvyrgv2q07bpvf96c5vm0fm77x4dcycf0j89hq3rj09zy";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.1-darwin-arm64.tar.gz";
         sha256 = "12bzicm43l7yvh02v5fx3z8v46l9i7a9f677735xi5rjbmd2an4c";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.7.0-darwin-arm64.tar.gz";
-        sha256 = "1w25hs64ay3csmaz6ydpi1srn2qsbg8r3kbxqjfghpi0ryx9prgv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.8.0-darwin-arm64.tar.gz";
+        sha256 = "1054c8cici744kyf817q8fk89ljcijxi7g5vi9080w4j6hxmabvn";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.23.0-darwin-arm64.tar.gz";
-        sha256 = "14yx04q0pps9pycfh9n3bkr73x1ir3q2p683bvwgrjsb046djb23";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.27.0-darwin-arm64.tar.gz";
+        sha256 = "1d87xac6mwzigqrql4vq40gmz9xn9f4pi1rri54393jkfqnzi64i";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.0-darwin-arm64.tar.gz";
-        sha256 = "0whmhq9vks8yni96b7d4kavr2mlbhxvlbjmwvdp0nvwpaa36wkk0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.1-darwin-arm64.tar.gz";
+        sha256 = "0wafcf9vw32yrpj9qmffhbxn08602br6n06mjyvcjm25mg8iwb4p";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.11.0-darwin-arm64.tar.gz";
-        sha256 = "1bml2wwa72yb35rwp5bsh91rd1pci27za9901vsbwpcq78wza7si";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v8.0.1-darwin-arm64.tar.gz";
+        sha256 = "1w466j7djvav41n27klq6i0fj1zlzkfqcl5cs8qh0d7mszh03h15";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.32.0-darwin-arm64.tar.gz";
@@ -567,12 +567,12 @@
         sha256 = "1cjq3n11hlsj4v0yi2xyapqk4ibf16qg9n9apwwgqcaz1l1sq8z2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.11.0-darwin-arm64.tar.gz";
-        sha256 = "177fycz1nabhf8c4clnd5qjl1iirg2fwrq47cw11w8r4hyfz3qbw";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.13.1-darwin-arm64.tar.gz";
+        sha256 = "0jkv32p117nyr4cx03iflqz8mhllkfnwf03xdz771ii2nw6xvj5z";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.19.1-darwin-arm64.tar.gz";
-        sha256 = "074aq7lxni6zxpqc77qkhc69nnwkx5plpwk0wcps6r23mhc32ia0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.21.0-darwin-arm64.tar.gz";
+        sha256 = "1axhhyvnajly6bgxdbw5grm7zk06rwvhxpbnsnpb06pwp05219z4";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.3-darwin-arm64.tar.gz";
@@ -583,28 +583,28 @@
         sha256 = "0lpwg6rwf5fa2ydf3j243k07jp6briayy953n4m2hyqhsgs6q62q";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.15.2-darwin-arm64.tar.gz";
-        sha256 = "05qzgzp2dcm3p3s6jz14pjxhgiid9wj000glyrfl07g9cf6xa95a";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v4.0.0-darwin-arm64.tar.gz";
+        sha256 = "1ljqziijcdni2vgh55qb5sglb2vwzlkzvpbhxcjj6x3ap4ywiiyf";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.11.1-darwin-arm64.tar.gz";
         sha256 = "16m2bd2ymaaaw4ac80kg349vwgc8f1b0nqkkkmc24k3hxv9rxlh9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.1-darwin-arm64.tar.gz";
-        sha256 = "1bxsmf1zmv21si7viwarmy4xfnghpldnayi62v73a0fbgz3c8vn3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.2-darwin-arm64.tar.gz";
+        sha256 = "0m266lqic8x0j6nx7yyfan1d8n2zqpiil41qvqkax3za81aymykv";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.53.0-darwin-arm64.tar.gz";
-        sha256 = "1m60a7g0516rczcjs0x5ff0iq9ngdyg61h60q1wf5qs7idldkg59";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.55.0-darwin-arm64.tar.gz";
+        sha256 = "1gfifqyj3aab1cwwsd99pdidvqwwyab558ca98l318jzl02855b9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.77.0-darwin-arm64.tar.gz";
-        sha256 = "00mdkyns6dhn5pkvb6jr33ikk54msrg0xzabvlwz38ali29d6pz0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.80.1-darwin-arm64.tar.gz";
+        sha256 = "0z3bvfcfdx1fps2zgx7g1jmrlhrp0m6sbd91c7ddx7ig4g2l4xfz";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.21.0-darwin-arm64.tar.gz";
-        sha256 = "1c7nx7c9byc9rqvfhfhz472y4q6p0f6dqx60chlw50x4l39pkvxa";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.22.1-darwin-arm64.tar.gz";
+        sha256 = "0liqf7sv4bcc0ipnnmilr7k3v4bgysxcs395pk4gvz8b4xssz1lc";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.16.0-darwin-arm64.tar.gz";
@@ -615,12 +615,12 @@
         sha256 = "00iql0iprfmp4glshlx7w9lz8ifmzcp7cbh8qsnacvhbix0azsrg";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v6.1.0-darwin-arm64.tar.gz";
-        sha256 = "1b0s03x5zhpgm5dnk4wvb28jgz6m0dl8p9lm3zih3dycvm6ivfps";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v6.1.1-darwin-arm64.tar.gz";
+        sha256 = "1vfl1qk2iiv1d51l9jzcy3p96n8fwk7fbdsvvyfd3cn2xp07npnv";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.9.0-darwin-arm64.tar.gz";
-        sha256 = "0xc8d7ix9nxnpy376q4n36mi58p9vz9ifzvldk8s8cpld8pgrm20";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.10.0-darwin-arm64.tar.gz";
+        sha256 = "0djz66nn08bm47cqwai7mlgwffm6xzn4p3niwsh280xnj0q9hkbq";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.10.1-darwin-arm64.tar.gz";
diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-command.nix b/pkgs/tools/admin/pulumi-packages/pulumi-command.nix
index e74a36fd5ef37..1fc6df0cfafa5 100644
--- a/pkgs/tools/admin/pulumi-packages/pulumi-command.nix
+++ b/pkgs/tools/admin/pulumi-packages/pulumi-command.nix
@@ -25,7 +25,7 @@ mkPulumiPackage rec {
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
-    description = "A Pulumi provider to execute commands and scripts either locally or remotely as part of the Pulumi resource model";
+    description = "Pulumi provider to execute commands and scripts either locally or remotely as part of the Pulumi resource model";
     mainProgram = "pulumi-resource-command";
     homepage = "https://github.com/pulumi/pulumi-command";
     license = licenses.asl20;
diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-random.nix b/pkgs/tools/admin/pulumi-packages/pulumi-random.nix
index 4f87818115199..6fcf4b2d5ccc3 100644
--- a/pkgs/tools/admin/pulumi-packages/pulumi-random.nix
+++ b/pkgs/tools/admin/pulumi-packages/pulumi-random.nix
@@ -15,7 +15,7 @@ mkPulumiPackage rec {
   ];
   __darwinAllowLocalNetworking = true;
   meta = with lib; {
-    description = "A Pulumi provider that safely enables randomness for resources";
+    description = "Pulumi provider that safely enables randomness for resources";
     mainProgram = "pulumi-resource-random";
     homepage = "https://github.com/pulumi/pulumi-random";
     license = licenses.asl20;
diff --git a/pkgs/tools/admin/qovery-cli/default.nix b/pkgs/tools/admin/qovery-cli/default.nix
index d51b0e716c97d..5464fea5281ee 100644
--- a/pkgs/tools/admin/qovery-cli/default.nix
+++ b/pkgs/tools/admin/qovery-cli/default.nix
@@ -9,16 +9,16 @@
 
 buildGoModule rec {
   pname = "qovery-cli";
-  version = "0.92.8";
+  version = "0.94.13";
 
   src = fetchFromGitHub {
     owner = "Qovery";
     repo = "qovery-cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-8QDuYb6NzoX9c+gROR5ECqAp/pfwFtPPNMaNiWGPtD4=";
+    hash = "sha256-LFVl4IlLoJyOdHv0rqL2GfUvLpp/8qT951fQkW8MHy4=";
   };
 
-  vendorHash = "sha256-6gjYnDv4L2AO47uWcp/MySX9i3IDMIWQUvgglxPCvGo=";
+  vendorHash = "sha256-qrDadHGhjwsAIfIQIkUeT7Tehv1sTtsfzgPyKxc5zJE=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/admin/salt/default.nix b/pkgs/tools/admin/salt/default.nix
index e38016de93ac9..de836d4e82271 100644
--- a/pkgs/tools/admin/salt/default.nix
+++ b/pkgs/tools/admin/salt/default.nix
@@ -10,12 +10,12 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "salt";
-  version = "3007.0";
+  version = "3007.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Qb+E5x/GVb+KS1LrRA0GIa6WEJaghtIOEy4VEuLt3/g=";
+    hash = "sha256-uTOsTLPksRGLRtraVcnMa9xvD5S0ySh3rsRLJcaijJo=";
   };
 
   patches = [
diff --git a/pkgs/tools/admin/scaleway-cli/default.nix b/pkgs/tools/admin/scaleway-cli/default.nix
index ec5f92c740189..ba65217d59c70 100644
--- a/pkgs/tools/admin/scaleway-cli/default.nix
+++ b/pkgs/tools/admin/scaleway-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "scaleway-cli";
-  version = "2.27.0";
+  version = "2.31.0";
 
   src = fetchFromGitHub {
     owner = "scaleway";
     repo = "scaleway-cli";
     rev = "v${version}";
-    sha256 = "sha256-brcsscNRftlpx73Q6lnbwvFiKoY6csERUUnAsiXwhF0=";
+    sha256 = "sha256-v8KkF5GShMDVjeAoe/bvoqHIBKDJ1hd6RIpu9Zugc6w=";
   };
 
-  vendorHash = "sha256-GDV7BDZb0oHQUbA/Ojx6kzh9kBh0C5RbjYDDzX16LmQ=";
+  vendorHash = "sha256-Oprca0JX8SmrEGrnalzKt89qrXa5UEbErl8BOFJlHGI=";
 
   ldflags = [
     "-w"
diff --git a/pkgs/tools/admin/scalr-cli/default.nix b/pkgs/tools/admin/scalr-cli/default.nix
index 00065aa2e357b..6dacaba03e764 100644
--- a/pkgs/tools/admin/scalr-cli/default.nix
+++ b/pkgs/tools/admin/scalr-cli/default.nix
@@ -32,7 +32,7 @@ buildGoModule rec {
   doCheck = false; # Skip tests as they require creating actual Scalr resources.
 
   meta = with lib; {
-    description = "A command-line tool that communicates directly with the Scalr API";
+    description = "Command-line tool that communicates directly with the Scalr API";
     homepage = "https://github.com/Scalr/scalr-cli";
     changelog = "https://github.com/Scalr/scalr-cli/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/tools/admin/simp_le/default.nix b/pkgs/tools/admin/simp_le/default.nix
index cf908ba335502..9b6cd8fe5c9ca 100644
--- a/pkgs/tools/admin/simp_le/default.nix
+++ b/pkgs/tools/admin/simp_le/default.nix
@@ -1,12 +1,18 @@
-{ lib, python3Packages, fetchPypi, bash }:
+{
+  lib,
+  python3Packages,
+  fetchPypi,
+  bash,
+}:
 
 python3Packages.buildPythonApplication rec {
   pname = "simp_le-client";
-  version = "0.17.0";
+  version = "0.20.0";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0m1jynar4calaffp2zdxr5yy9vnhw2qf2hsfxwzfwf8fqb5h7bjb";
+    hash = "sha256-p6+OF8MuAzcdTV4/CvZpjGaOrg7xcNuEddk7yC2sXIE=";
   };
 
   postPatch = ''
@@ -16,19 +22,33 @@ python3Packages.buildPythonApplication rec {
       --replace "/bin/sh" "${bash}/bin/sh"
   '';
 
+  # both setuptools-scm and mock are runtime dependencies
+  dependencies = with python3Packages; [
+    acme
+    cryptography
+    setuptools-scm
+    josepy
+    idna
+    mock
+    pyopenssl
+    pytz
+    six
+  ];
+
   checkPhase = ''
+    runHook preCheck
     $out/bin/simp_le --test
+    runHook postCheck
   '';
 
-  propagatedBuildInputs = with python3Packages; [ acme setuptools-scm josepy idna ];
-
-  nativeCheckInputs = with python3Packages; [ mock ];
-
   meta = with lib; {
     homepage = "https://github.com/zenhack/simp_le";
     description = "Simple Let's Encrypt client";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ gebner makefu ];
+    maintainers = with maintainers; [
+      gebner
+      makefu
+    ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/admin/ssmsh/default.nix b/pkgs/tools/admin/ssmsh/default.nix
index abf69be5765fe..d685abcd367d5 100644
--- a/pkgs/tools/admin/ssmsh/default.nix
+++ b/pkgs/tools/admin/ssmsh/default.nix
@@ -25,7 +25,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/bwhaley/ssmsh";
-    description = "An interactive shell for AWS Parameter Store";
+    description = "Interactive shell for AWS Parameter Store";
     license = licenses.mit;
     maintainers = with maintainers; [ dbirks ];
     mainProgram = "ssmsh";
diff --git a/pkgs/tools/admin/stripe-cli/default.nix b/pkgs/tools/admin/stripe-cli/default.nix
index 90824795c0408..e03024c4a5742 100644
--- a/pkgs/tools/admin/stripe-cli/default.nix
+++ b/pkgs/tools/admin/stripe-cli/default.nix
@@ -60,7 +60,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://stripe.com/docs/stripe-cli";
     changelog = "https://github.com/stripe/stripe-cli/releases/tag/v${version}";
-    description = "A command-line tool for Stripe";
+    description = "Command-line tool for Stripe";
     longDescription = ''
       The Stripe CLI helps you build, test, and manage your Stripe integration
       right from the terminal.
diff --git a/pkgs/tools/admin/trivy/default.nix b/pkgs/tools/admin/trivy/default.nix
index 05dd64d737b3b..26ac2c3938a11 100644
--- a/pkgs/tools/admin/trivy/default.nix
+++ b/pkgs/tools/admin/trivy/default.nix
@@ -11,19 +11,19 @@
 
 buildGoModule rec {
   pname = "trivy";
-  version = "0.51.2";
+  version = "0.52.2";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = "trivy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GvX6oR0E+ynYm+7tfnzQUIScdKFWBQ81FNrMdPRuDcY=";
+    hash = "sha256-3RUL0sgO2/hcfuihNKr51t0qbXvxs9X7yD/OBGATDdw=";
   };
 
   # Hash mismatch on across Linux and Darwin
   proxyVendor = true;
 
-  vendorHash = "sha256-MRdN45629s09Sfr63p6tDDBlEd7MYlDFnJoqcC+ixMU=";
+  vendorHash = "sha256-VkUyjmiiJsDx7NdU6T20LB3tltOYYtf/RaTTPuliMQU=";
 
   subPackages = [ "cmd/trivy" ];
 
@@ -64,7 +64,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/aquasecurity/trivy";
     changelog = "https://github.com/aquasecurity/trivy/releases/tag/v${version}";
-    description = "A simple and comprehensive vulnerability scanner for containers, suitable for CI";
+    description = "Simple and comprehensive vulnerability scanner for containers, suitable for CI";
     longDescription = ''
       Trivy is a simple and comprehensive vulnerability scanner for containers
       and other artifacts. A software vulnerability is a glitch, flaw, or
diff --git a/pkgs/tools/admin/zbctl/default.nix b/pkgs/tools/admin/zbctl/default.nix
index 5dfa089986374..0ec6598a8b8e7 100644
--- a/pkgs/tools/admin/zbctl/default.nix
+++ b/pkgs/tools/admin/zbctl/default.nix
@@ -28,7 +28,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The command line interface to interact with Camunda 8 and Zeebe";
+    description = "Command line interface to interact with Camunda 8 and Zeebe";
     homepage = "https://docs.camunda.io/docs/apis-clients/cli-client/";
     downloadPage = "https://github.com/camunda/zeebe/releases";
     changelog = "https://github.com/camunda/zeebe/releases/tag/${version}";
diff --git a/pkgs/tools/archivers/7zz/default.nix b/pkgs/tools/archivers/7zz/default.nix
index f4eb5e9327fe5..c24176263dfec 100644
--- a/pkgs/tools/archivers/7zz/default.nix
+++ b/pkgs/tools/archivers/7zz/default.nix
@@ -25,13 +25,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "7zz";
-  version = "24.05";
+  version = "24.06";
 
   src = fetchurl {
     url = "https://7-zip.org/a/7z${lib.replaceStrings [ "." ] [ "" ] finalAttrs.version}-src.tar.xz";
     hash = {
-      free = "sha256-yYq3IEV2GeDWwW6KrdpgK2/QOsmDcBpIZvbk6VKZETY=";
-      unfree = "sha256-Y/NBz4C40ofG6UVRmz2g+nVVPIVXKkcbf6bmj5qQt5A=";
+      free = "sha256-X3uqGnJGQpW5MOaTtgWYwwrhS84e+piX7Gc+e8Pll00=";
+      unfree = "sha256-KqFmDHc1JbLthNbNf/BoDHhuwIk7h+TbRGVNy39ayLU=";
     }.${if enableUnfree then "unfree" else "free"};
     downloadToTemp = (!enableUnfree);
     # remove the unRAR related code from the src drv
diff --git a/pkgs/tools/archivers/7zz/update.sh b/pkgs/tools/archivers/7zz/update.sh
index bc3179615d357..1128cedd54913 100755
--- a/pkgs/tools/archivers/7zz/update.sh
+++ b/pkgs/tools/archivers/7zz/update.sh
@@ -1,11 +1,8 @@
 #! /usr/bin/env nix-shell
-#! nix-shell -i bash -p curl xq-xml nix-prefetch
+#! nix-shell -I nixpkgs=./. -i bash -p curl xq-xml common-updater-scripts
 set -euo pipefail
-cd "$(dirname "${BASH_SOURCE[0]}")"
 
-DRV_DIR="$PWD"
-
-OLD_VERSION="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)"
+OLD_VERSION="$(nix-instantiate --eval --json --expr 'let pkgs = import ./. {}; in pkgs._7zz.version' | sed 's/"//g')"
 NEW_VERSION="$(curl -H 'Accept: application/rss+xml' 'https://sourceforge.net/projects/sevenzip/rss?path=/7-Zip' | xq -x "substring((/rss/channel/item[link[contains(., 'src.tar.xz')]])[1]/title, 8, 5)")"
 
 echo "comparing versions $OLD_VERSION => $NEW_VERSION"
@@ -14,37 +11,5 @@ if [[ "$OLD_VERSION" == "$NEW_VERSION" ]]; then
     exit 0
 fi
 
-NIXPKGS_ROOT="$(realpath "$DRV_DIR/../../../..")"
-
-echo "getting free source hash"
-OLD_FREE_HASH="$(nix-instantiate --eval --strict -E "with import $NIXPKGS_ROOT {}; _7zz.src.drvAttrs.outputHash" | tr -d '"')"
-echo "getting unfree source hash"
-OLD_UNFREE_HASH="$(nix-instantiate --eval --strict -E "with import $NIXPKGS_ROOT {}; (_7zz.override { enableUnfree = true; }).src.drvAttrs.outputHash" | tr -d '"')"
-
-NEW_VERSION_FORMATTED="$(echo "$NEW_VERSION" | tr -d '.')"
-URL="https://7-zip.org/a/7z${NEW_VERSION_FORMATTED}-src.tar.xz"
-
-# `nix-prefetch` is broken without flakes
-# see https://github.com/msteen/nix-prefetch/issues/51
-NEW_FREE_HASH=$(nix-prefetch -f "$NIXPKGS_ROOT" -E "_7zz.src" --url "$URL" --option extra-experimental-features flakes)
-
-NEW_UNFREE_OUT=$(nix-prefetch -f "$NIXPKGS_ROOT" -E "(_7zz.override { enableUnfree = true; }).src" --url "$URL" --output raw --print-path --option extra-experimental-features flakes)
-# first line of raw output is the hash
-NEW_UNFREE_HASH="$(echo "$NEW_UNFREE_OUT" | sed -n 1p)"
-# second line of raw output is the src path
-NEW_UNFREE_SRC="$(echo "$NEW_UNFREE_OUT" | sed -n 2p)"
-# make sure to nuke the unfree src from the updater's machine
-# > the license requires that you agree to these use restrictions, or you must remove the software (source and binary) from your hard disks
-# https://fedoraproject.org/wiki/Licensing:Unrar
-nix-store --delete "$NEW_UNFREE_SRC"
-
-
-echo "updating version"
-sed -i "s/version = \"$OLD_VERSION\";/version = \"$NEW_VERSION\";/" "$DRV_DIR/default.nix"
-
-echo "updating free hash"
-sed -i "s@free = \"$OLD_FREE_HASH\";@free = \"$NEW_FREE_HASH\";@" "$DRV_DIR/default.nix"
-echo "updating unfree hash"
-sed -i "s@unfree = \"$OLD_UNFREE_HASH\";@unfree = \"$NEW_UNFREE_HASH\";@" "$DRV_DIR/default.nix"
-
-echo "done"
+update-source-version _7zz "$NEW_VERSION"
+update-source-version _7zz-rar "$NEW_VERSION" --ignore-same-version
diff --git a/pkgs/tools/archivers/arc_unpacker/default.nix b/pkgs/tools/archivers/arc_unpacker/default.nix
index 61bf3fa91e741..057efacdbe765 100644
--- a/pkgs/tools/archivers/arc_unpacker/default.nix
+++ b/pkgs/tools/archivers/arc_unpacker/default.nix
@@ -85,7 +85,7 @@ stdenv.mkDerivation {
   doCheck = !(stdenv.isLinux && stdenv.isAarch64);
 
   meta = with lib; {
-    description = "A tool to extract files from visual novel archives";
+    description = "Tool to extract files from visual novel archives";
     homepage = "https://github.com/vn-tools/arc_unpacker";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ midchildan ];
diff --git a/pkgs/tools/archivers/cpio/default.nix b/pkgs/tools/archivers/cpio/default.nix
index 5b65a580fa673..04c0300944eb4 100644
--- a/pkgs/tools/archivers/cpio/default.nix
+++ b/pkgs/tools/archivers/cpio/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.gnu.org/software/cpio/";
-    description = "A program to create or extract from cpio archives";
+    description = "Program to create or extract from cpio archives";
     license = licenses.gpl3;
     platforms = platforms.all;
     priority = 6; # resolves collision with gnutar's "libexec/rmt"
diff --git a/pkgs/tools/archivers/ctrtool/default.nix b/pkgs/tools/archivers/ctrtool/default.nix
index 74b95a116575e..aa9dffc12944b 100644
--- a/pkgs/tools/archivers/ctrtool/default.nix
+++ b/pkgs/tools/archivers/ctrtool/default.nix
@@ -1,29 +1,37 @@
-{ lib, stdenv, fetchFromGitHub }:
+{ lib, stdenv, fetchFromGitHub, gitUpdater }:
 
 stdenv.mkDerivation rec {
   pname = "ctrtool";
-  version = "0.7";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner  = "jakcron";
     repo   = "Project_CTR";
     rev    = "ctrtool-v${version}";
-    sha256 = "07aayck82w5xcp3si35d7ghybmrbqw91fqqvmbpjrjcixc6m42z7";
+    sha256 = "wjU/DJHrAHE3MSB7vy+swUDVPzw0Jrv4ymOjhfr0BBk=";
   };
 
   sourceRoot = "${src.name}/ctrtool";
 
-  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "CXX=${stdenv.cc.targetPrefix}c++"];
   enableParallelBuilding = true;
 
+  preBuild = ''
+  make -j $NIX_BUILD_CORES deps
+  '';
+
+  # workaround for https://github.com/3DSGuy/Project_CTR/issues/145
+  env.NIX_CFLAGS_COMPILE = "-O0";
+
   installPhase = "
     mkdir $out/bin -p
-    cp ctrtool${stdenv.hostPlatform.extensions.executable} $out/bin/
+    cp bin/ctrtool${stdenv.hostPlatform.extensions.executable} $out/bin/
   ";
 
+  passthru.updateScript = gitUpdater { rev-prefix = "ctrtool-v"; };
+
   meta = with lib; {
     license = licenses.mit;
-    description = "A tool to extract data from a 3ds rom";
+    description = "Tool to extract data from a 3ds rom";
     platforms = platforms.linux;
     maintainers = [ maintainers.marius851000 ];
     mainProgram = "ctrtool";
diff --git a/pkgs/tools/archivers/gnutar/default.nix b/pkgs/tools/archivers/gnutar/default.nix
index 34615d7e8bede..98f0b54e73fc9 100644
--- a/pkgs/tools/archivers/gnutar/default.nix
+++ b/pkgs/tools/archivers/gnutar/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, autoreconfHook, acl, libintl }:
+{ lib, stdenv, fetchurl, autoreconfHook, updateAutotoolsGnuConfigScriptsHook, acl, libintl }:
 
 # Note: this package is used for bootstrapping fetchurl, and thus
 # cannot use fetchpatch! All mutable patches (generated by GitHub or
@@ -30,7 +30,8 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "info" ];
 
-  nativeBuildInputs = lib.optional stdenv.isDarwin autoreconfHook;
+  nativeBuildInputs = lib.optional stdenv.isDarwin autoreconfHook
+    ++ lib.optional (!stdenv.isDarwin) updateAutotoolsGnuConfigScriptsHook;
   # Add libintl on Darwin specifically as it fails to link (or skip)
   # NLS on it's own:
   #  "_libintl_textdomain", referenced from:
diff --git a/pkgs/tools/archivers/innoextract/default.nix b/pkgs/tools/archivers/innoextract/default.nix
index 386c6349d0889..1219c48ab7d29 100644
--- a/pkgs/tools/archivers/innoextract/default.nix
+++ b/pkgs/tools/archivers/innoextract/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A tool to unpack installers created by Inno Setup";
+    description = "Tool to unpack installers created by Inno Setup";
     homepage = "https://constexpr.org/innoextract/";
     license = licenses.zlib;
     maintainers = with maintainers; [ abbradar ];
diff --git a/pkgs/tools/archivers/ndstool/default.nix b/pkgs/tools/archivers/ndstool/default.nix
index e612d83d066d1..6bbc5f50d6442 100644
--- a/pkgs/tools/archivers/ndstool/default.nix
+++ b/pkgs/tools/archivers/ndstool/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://github.com/devkitPro/ndstool";
-    description = "A tool to unpack and repack nds rom";
+    description = "Tool to unpack and repack nds rom";
     maintainers = [ lib.maintainers.marius851000 ];
     license = lib.licenses.gpl3;
     mainProgram = "ndstool";
diff --git a/pkgs/tools/archivers/p7zip/default.nix b/pkgs/tools/archivers/p7zip/default.nix
index 23ffdcc41a70c..3ced84bed025f 100644
--- a/pkgs/tools/archivers/p7zip/default.nix
+++ b/pkgs/tools/archivers/p7zip/default.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://github.com/p7zip-project/p7zip";
-    description = "A new p7zip fork with additional codecs and improvements (forked from https://sourceforge.net/projects/p7zip/)";
+    description = "New p7zip fork with additional codecs and improvements (forked from https://sourceforge.net/projects/p7zip/)";
     license = with licenses;
       # p7zip code is largely lgpl2Plus
       # CPP/7zip/Compress/LzfseDecoder.cpp is bsd3
diff --git a/pkgs/tools/archivers/payload-dumper-go/default.nix b/pkgs/tools/archivers/payload-dumper-go/default.nix
index bb1572e1ceb67..e10b41cbef995 100644
--- a/pkgs/tools/archivers/payload-dumper-go/default.nix
+++ b/pkgs/tools/archivers/payload-dumper-go/default.nix
@@ -20,7 +20,7 @@ buildGoModule rec {
   buildInputs = [ xz ];
 
   meta = with lib; {
-    description = "An android OTA payload dumper written in Go";
+    description = "Android OTA payload dumper written in Go";
     homepage = "https://github.com/ssut/payload-dumper-go";
     changelog = "https://github.com/ssut/payload-dumper-go/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/pkgs/tools/archivers/runzip/default.nix b/pkgs/tools/archivers/runzip/default.nix
index 02b6bd45d8e1d..90eb6d1013876 100644
--- a/pkgs/tools/archivers/runzip/default.nix
+++ b/pkgs/tools/archivers/runzip/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "A tool to convert filename encoding inside a ZIP archive";
+    description = "Tool to convert filename encoding inside a ZIP archive";
     license = lib.licenses.bsd2;
     maintainers = [ lib.maintainers.raskin ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/tools/archivers/s-tar/default.nix b/pkgs/tools/archivers/s-tar/default.nix
index 89830322267c5..f16c9eaf49821 100644
--- a/pkgs/tools/archivers/s-tar/default.nix
+++ b/pkgs/tools/archivers/s-tar/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A very fast tar like tape archiver with improved functionality";
+    description = "Very fast tar like tape archiver with improved functionality";
     longDescription = ''
       Star archives and extracts multiple files to and from a single file called a tarfile.
       A tarfile is usually a magnetic tape, but it can be any file.
diff --git a/pkgs/tools/archivers/sharutils/default.nix b/pkgs/tools/archivers/sharutils/default.nix
index 5c84e596531c3..2a656a9dd3273 100644
--- a/pkgs/tools/archivers/sharutils/default.nix
+++ b/pkgs/tools/archivers/sharutils/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, gettext, coreutils }:
+{ lib, stdenv, fetchurl, fetchpatch, gettext, coreutils, updateAutotoolsGnuConfigScriptsHook }:
 
 stdenv.mkDerivation rec {
   pname = "sharutils";
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
 
   # GNU Gettext is needed on non-GNU platforms.
   buildInputs = [ coreutils gettext ];
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
 
   # These tests try to hit /etc/passwd to find out your username if pass in a submitter
   # name on the command line. Since we block access to /etc/passwd on the Darwin sandbox
diff --git a/pkgs/tools/archivers/snzip/default.nix b/pkgs/tools/archivers/snzip/default.nix
index 6ae59143f3e95..b6e671839ab03 100644
--- a/pkgs/tools/archivers/snzip/default.nix
+++ b/pkgs/tools/archivers/snzip/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A compression/decompression tool based on snappy";
+    description = "Compression/decompression tool based on snappy";
     homepage = "https://github.com/kubo/snzip";
     maintainers = with maintainers; [ doronbehar ];
     license = licenses.bsd2;
diff --git a/pkgs/tools/archivers/torrent7z/default.nix b/pkgs/tools/archivers/torrent7z/default.nix
index 74eaa4409f75b..f18871baae93f 100644
--- a/pkgs/tools/archivers/torrent7z/default.nix
+++ b/pkgs/tools/archivers/torrent7z/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/BubblesInTheTub/torrent7z";
-    description = "A fork of torrent7z, viz a derivative of 7zip that produces invariant .7z archives for torrenting";
+    description = "Fork of torrent7z, viz a derivative of 7zip that produces invariant .7z archives for torrenting";
     platforms = platforms.linux;
     maintainers = with maintainers; [ cirno-999 ];
     mainProgram = "t7z";
diff --git a/pkgs/tools/archivers/unar/default.nix b/pkgs/tools/archivers/unar/default.nix
index b874522d87f08..44a5d4d1192de 100644
--- a/pkgs/tools/archivers/unar/default.nix
+++ b/pkgs/tools/archivers/unar/default.nix
@@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://theunarchiver.com";
-    description = "An archive unpacker program";
+    description = "Archive unpacker program";
     longDescription = ''
       The Unarchiver is an archive unpacker program with support for the popular
       zip, RAR, 7z, tar, gzip, bzip2, LZMA, XZ, CAB, MSI, NSIS, EXE, ISO, BIN,
diff --git a/pkgs/tools/archivers/unzip/default.nix b/pkgs/tools/archivers/unzip/default.nix
index 9860817cf3e15..d7533f0bf90fb 100644
--- a/pkgs/tools/archivers/unzip/default.nix
+++ b/pkgs/tools/archivers/unzip/default.nix
@@ -99,7 +99,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://www.info-zip.org";
-    description = "An extraction utility for archives compressed in .zip format";
+    description = "Extraction utility for archives compressed in .zip format";
     license = lib.licenses.info-zip;
     platforms = lib.platforms.all;
     mainProgram = "unzip";
diff --git a/pkgs/tools/archivers/wimlib/default.nix b/pkgs/tools/archivers/wimlib/default.nix
index 6baf1ac89645e..8a40a6ae10774 100644
--- a/pkgs/tools/archivers/wimlib/default.nix
+++ b/pkgs/tools/archivers/wimlib/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://wimlib.net";
-    description = "A library and program to extract, create, and modify WIM files";
+    description = "Library and program to extract, create, and modify WIM files";
     platforms = platforms.unix;
     maintainers = with maintainers; [ ];
     license = with licenses; [ gpl3 lgpl3 mit ];
diff --git a/pkgs/tools/archivers/xarchive/default.nix b/pkgs/tools/archivers/xarchive/default.nix
index 733639c3e1067..193e319cafdd6 100644
--- a/pkgs/tools/archivers/xarchive/default.nix
+++ b/pkgs/tools/archivers/xarchive/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "format" ];
 
   meta = {
-    description = "A GTK front-end for command line archiving tools";
+    description = "GTK front-end for command line archiving tools";
     maintainers = [ lib.maintainers.domenkozar ];
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.all;
diff --git a/pkgs/tools/archivers/zip/default.nix b/pkgs/tools/archivers/zip/default.nix
index 8a81691d64488..a192b38785049 100644
--- a/pkgs/tools/archivers/zip/default.nix
+++ b/pkgs/tools/archivers/zip/default.nix
@@ -36,6 +36,8 @@ stdenv.mkDerivation rec {
     # Buffer overflow on Unicode characters in path names
     # https://bugzilla.redhat.com/show_bug.cgi?id=2165653
     ./buffer-overflow-on-utf8-rh-bug-2165653.patch
+    # Fixes forward declaration errors with timezone.c
+    ./fix-time.h-not-included.patch
   ] ++ lib.optionals (enableNLS && !stdenv.isCygwin) [ ./natspec-gentoo.patch.bz2 ];
 
   buildInputs = lib.optional enableNLS libnatspec
diff --git a/pkgs/tools/archivers/zip/fix-time.h-not-included.patch b/pkgs/tools/archivers/zip/fix-time.h-not-included.patch
new file mode 100644
index 0000000000000..9db8d66e9a10f
--- /dev/null
+++ b/pkgs/tools/archivers/zip/fix-time.h-not-included.patch
@@ -0,0 +1,10 @@
+--- zip30/timezone.c	2024-05-21 05:14:55.959957517 +0000
++++ zip30/timezone.c	2024-05-21 05:15:14.852006815 +0000
+@@ -41,6 +41,7 @@
+ #include "timezone.h"
+ #include <ctype.h>
+ #include <errno.h>
++#include <time.h>
+
+ #ifdef IZTZ_DEFINESTDGLOBALS
+ long timezone = 0;
diff --git a/pkgs/tools/audio/abcm2ps/default.nix b/pkgs/tools/audio/abcm2ps/default.nix
index 96893b8fe0721..4ea58d9c2d77a 100644
--- a/pkgs/tools/audio/abcm2ps/default.nix
+++ b/pkgs/tools/audio/abcm2ps/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "http://moinejf.free.fr/";
     license = licenses.lgpl3Plus;
-    description = "A command line program which converts ABC to music sheet in PostScript or SVG format";
+    description = "Command line program which converts ABC to music sheet in PostScript or SVG format";
     platforms = platforms.unix;
     maintainers = [ maintainers.dotlambda ];
     mainProgram = "abcm2ps";
diff --git a/pkgs/tools/audio/abcmidi/default.nix b/pkgs/tools/audio/abcmidi/default.nix
index a26e3de521e20..f24acd60185b1 100644
--- a/pkgs/tools/audio/abcmidi/default.nix
+++ b/pkgs/tools/audio/abcmidi/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "abcMIDI";
-  version = "2024.04.30";
+  version = "2024.06.03";
 
   src = fetchzip {
     url = "https://ifdo.ca/~seymour/runabc/${pname}-${version}.zip";
-    hash = "sha256-Yw/EQZlGTYxouRL1Tf4TDSNWMleB7vKzWg4n6sw5d4Q=";
+    hash = "sha256-iq/NnXMATYRCjeBlcSvgdCVe2lDz/Tade7GQnlCygGM=";
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/audio/acousticbrainz-client/default.nix b/pkgs/tools/audio/acousticbrainz-client/default.nix
deleted file mode 100644
index 1d4b59ed2c924..0000000000000
--- a/pkgs/tools/audio/acousticbrainz-client/default.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{ lib, fetchFromGitHub, python3Packages, essentia-extractor }:
-
-python3Packages.buildPythonApplication rec {
-  pname = "acousticbrainz-client";
-  version = "0.1";
-
-  src = fetchFromGitHub {
-    owner = "MTG";
-    repo = "acousticbrainz-client";
-    rev = version;
-    sha256 = "1g1nxh58939vysfxplrgdz366dlqnic05pkzbqh75m79brg4yrv1";
-  };
-
-  propagatedBuildInputs = [ essentia-extractor python3Packages.requests ];
-
-  postPatch = ''
-    # The installer needs the streaming_extractor_music binary in the source directoy,
-    # so we provide a symlink to it.
-    ln -s ${essentia-extractor}/bin/streaming_extractor_music streaming_extractor_music
-  '';
-
-  postInstall = ''
-    # The installer includes a copy of the streaming_extractor_music binary (not a symlink),
-    # which we don't need, because the wrapper adds essentia-extractor/binary to PATH.
-    rm $out/bin/streaming_extractor_music
-  '';
-
-  # Tests seem to be broken, but the tool works
-  doCheck = false;
-
-  pythonImportsCheck = [ "abz" ];
-
-  meta = with lib; {
-    description = "A client to upload data to an AcousticBrainz server";
-    license = licenses.gpl3Plus;
-    homepage = "https://github.com/MTG/acousticbrainz-client";
-    # essentia-extractor is only available for those platforms
-    platforms = [ "x86_64-linux" "i686-linux" ];
-    maintainers = with maintainers; [ ];
-    mainProgram = "abzsubmit";
-  };
-}
diff --git a/pkgs/tools/audio/beets/builtin-plugins.nix b/pkgs/tools/audio/beets/builtin-plugins.nix
index 6b89f74795a8b..87b090d6f6de3 100644
--- a/pkgs/tools/audio/beets/builtin-plugins.nix
+++ b/pkgs/tools/audio/beets/builtin-plugins.nix
@@ -1,6 +1,5 @@
 { stdenv
 , aacgain
-, essentia-extractor
 , ffmpeg
 , flac
 , imagemagick
@@ -13,10 +12,10 @@
 , ...
 }: {
   absubmit = {
-    enable = lib.elem stdenv.hostPlatform.system essentia-extractor.meta.platforms;
-    wrapperBins = [ essentia-extractor ];
+    deprecated = true;
     testPaths = [ ];
   };
+
   acousticbrainz.propagatedBuildInputs = [ python3Packages.requests ];
   albumtypes = { };
   aura = {
@@ -88,7 +87,7 @@
   mbcollection.testPaths = [ ];
   mbsubmit = { };
   mbsync = { };
-  metasync = { };
+  metasync.testPaths = [ ];
   missing.testPaths = [ ];
   mpdstats.propagatedBuildInputs = [ python3Packages.mpd2 ];
   mpdupdate = {
@@ -120,12 +119,10 @@
     propagatedBuildInputs = with python3Packages; [ pillow pyxdg ];
     wrapperBins = [ imagemagick ];
   };
-  types.testPaths = [ "test/test_types_plugin.py" ];
+  types.testPaths = [ "test/plugins/test_types_plugin.py" ];
   unimported.testPaths = [ ];
   web.propagatedBuildInputs = [ python3Packages.flask ];
   zero = { };
-  # NOTE: Condition can be removed once stable beets updates
-} // lib.optionalAttrs ((lib.versions.majorMinor version) != "1.6") {
   limit = { };
   substitute = {
     testPaths = [ ];
diff --git a/pkgs/tools/audio/beets/common.nix b/pkgs/tools/audio/beets/common.nix
index fb8b6be0ed8a6..6f45ece8bd597 100644
--- a/pkgs/tools/audio/beets/common.nix
+++ b/pkgs/tools/audio/beets/common.nix
@@ -55,7 +55,15 @@ let
   };
 
   basePlugins = lib.mapAttrs (_: a: { builtin = true; } // a) (import ./builtin-plugins.nix inputs);
-  allPlugins = lib.mapAttrs (n: a: mkPlugin { name = n; } // a) (lib.recursiveUpdate basePlugins pluginOverrides);
+  pluginOverrides' = lib.mapAttrs
+    (plugName: lib.throwIf
+      (basePlugins.${plugName}.deprecated or false)
+      "beets evaluation error: Plugin ${plugName} was enabled in pluginOverrides, but it has been removed. Remove the override to fix evaluation."
+    )
+    pluginOverrides
+  ;
+
+  allPlugins = lib.mapAttrs ( n: a: mkPlugin { name = n; } // a) (lib.recursiveUpdate basePlugins pluginOverrides');
   builtinPlugins = lib.filterAttrs (_: p: p.builtin) allPlugins;
   enabledPlugins = lib.filterAttrs (_: p: p.enable) allPlugins;
   disabledPlugins = lib.filterAttrs (_: p: !p.enable) allPlugins;
@@ -86,6 +94,7 @@ python3Packages.buildPythonApplication {
   nativeBuildInputs = [
     gobject-introspection
     sphinxHook
+    python3Packages.pydata-sphinx-theme
   ] ++ extraNativeBuildInputs;
 
   buildInputs = [
@@ -111,6 +120,7 @@ python3Packages.buildPythonApplication {
 
   nativeCheckInputs = with python3Packages; [
     pytestCheckHook
+    pytest-cov
     mock
     rarfile
     responses
diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix
index 513470b0ffd16..caa160cf1764f 100644
--- a/pkgs/tools/audio/beets/default.nix
+++ b/pkgs/tools/audio/beets/default.nix
@@ -18,66 +18,23 @@
 **   alternatives = { enable = true; propagatedBuildInputs = [ beetsPackages.alternatives ]; };
 ** }; }
 */
-let
-  legacyMediafilePython3Packages = python3Packages.override {
-    overrides = self: super: {
-      mediafile = super.mediafile.overridePythonAttrs (oldAttrs: rec {
-        version = "0.10.1";
-        format = "pyproject";
-        src = fetchPypi {
-          pname = "mediafile";
-          inherit version;
-          hash = "sha256-kpZCoX7lAjuQhiIc6AzcLFHQYCGokNRDOwvVvTLysp8=";
-        };
-      });
-    };
-  };
-in lib.makeExtensible (self: {
+lib.makeExtensible (self: {
   beets = self.beets-stable;
 
   beets-stable = callPackage ./common.nix rec {
-    python3Packages = legacyMediafilePython3Packages;
+    inherit python3Packages;
     # NOTE: ./builtin-plugins.nix and ./common.nix can have some conditionals
     # be removed when stable version updates
-    version = "1.6.0";
+    version = "2.0.0";
     src = fetchFromGitHub {
       owner = "beetbox";
       repo = "beets";
       rev = "v${version}";
-      hash = "sha256-fT+rCJJQR7bdfAcmeFRaknmh4ZOP4RCx8MXpq7/D8tM=";
+      hash = "sha256-6pmImyopy0zFBDYoqDyWcBv61FK1kGsZwW2+7fzAnq8=";
     };
     extraPatches = [
       # Bash completion fix for Nix
       ./patches/bash-completion-always-print.patch
-
-      # Fix unidecode>=1.3.5 compat
-      (fetchpatch {
-        url = "https://github.com/beetbox/beets/commit/5ae1e0f3c8d3a450cb39f7933aa49bb78c2bc0d9.patch";
-        hash = "sha256-gqkrE+U1j3tt1qPRJufTGS/GftaSw/gweXunO/mCVG8=";
-      })
-
-      # Fix embedart with ImageMagick 7.1.1-12
-      # https://github.com/beetbox/beets/pull/4839
-      # The upstream patch does not apply on 1.6.0, as the related code has been refactored since
-      ./patches/fix-embedart-imagick-7.1.1-12.patch
-      # Pillow 10 compatibility fix, a backport of
-      # https://github.com/beetbox/beets/pull/4868, which doesn't apply now
-      ./patches/fix-pillow10-compat.patch
-
-      # Sphinx 6 compatibility fix.
-      (fetchpatch {
-        url = "https://github.com/beetbox/beets/commit/2106f471affd1dab35b4b26187b9c74d034528c5.patch";
-        hash = "sha256-V/886dYJW/O55VqU8sd+x/URIFcKhP6j5sUhTGMoxL8=";
-      })
-    ];
-    disabledTests = [
-      # This issue is present on this version alone, and can be removed on the
-      # next stable version version bump. Since this is fixed in branch master,
-      # we don't have a bug ticket open for this. As of writing, it also seems
-      # hard to find a patch that can be backported to v1.6.0 that would fix
-      # the failure, as the master branch has gone through too many changes
-      # now.
-      "test_get_single_item_by_path"
     ];
   };
 
@@ -85,26 +42,16 @@ in lib.makeExtensible (self: {
 
   beets-unstable = callPackage ./common.nix {
     inherit python3Packages;
-    version = "unstable-2024-03-16";
+    version = "2.0.0-unstable-2024-05-25";
     src = fetchFromGitHub {
       owner = "beetbox";
       repo = "beets";
-      rev = "b09806e0df8f01b9155017d3693764ae7beedcd5";
-      hash = "sha256-jE6nZLOEFufqclT6p1zK7dW+vt69q2ulaRsUldL7cSQ=";
+      rev = "2130404217684f22f36de00663428602b3f96d84";
+      hash = "sha256-trqF6YVBcv+i5H4Ez3PKnRQ6mV2Ly/cw3UJC7pl19og=";
     };
     extraPatches = [
       # Bash completion fix for Nix
-      ./patches/unstable-bash-completion-always-print.patch
-    ];
-    pluginOverrides = {
-      # unstable has new plugins, so we register them here.
-      limit = { builtin = true; };
-      substitute = { builtin = true; };
-      advancedrewrite = { builtin = true; };
-      autobpm = { builtin = true; };
-    };
-    extraNativeBuildInputs = [
-      python3Packages.pydata-sphinx-theme
+      ./patches/bash-completion-always-print.patch
     ];
   };
 
diff --git a/pkgs/tools/audio/beets/patches/bash-completion-always-print.patch b/pkgs/tools/audio/beets/patches/bash-completion-always-print.patch
index 8a31fe22f7281..96b175117572b 100644
--- a/pkgs/tools/audio/beets/patches/bash-completion-always-print.patch
+++ b/pkgs/tools/audio/beets/patches/bash-completion-always-print.patch
@@ -1,44 +1,45 @@
 diff --git i/beets/ui/commands.py w/beets/ui/commands.py
-index 3a337401..d08a6763 100755
+index ad4f7821..5077191d 100755
 --- i/beets/ui/commands.py
 +++ w/beets/ui/commands.py
-@@ -1759,21 +1759,6 @@ default_commands.append(config_cmd)
+@@ -2381,22 +2381,6 @@ default_commands.append(config_cmd)
  def print_completion(*args):
      for line in completion_script(default_commands + plugins.commands()):
-         print_(line, end='')
--    if not any(map(os.path.isfile, BASH_COMPLETION_PATHS)):
--        log.warning('Warning: Unable to find the bash-completion package. '
--                    'Command line completion might not work.')
+         print_(line, end="")
+-    if not any(os.path.isfile(syspath(p)) for p in BASH_COMPLETION_PATHS):
+-        log.warning(
+-            "Warning: Unable to find the bash-completion package. "
+-            "Command line completion might not work."
+-        )
 -
 -
--BASH_COMPLETION_PATHS = map(syspath, [
--    '/etc/bash_completion',
--    '/usr/share/bash-completion/bash_completion',
--    '/usr/local/share/bash-completion/bash_completion',
+-BASH_COMPLETION_PATHS = [
+-    b"/etc/bash_completion",
+-    b"/usr/share/bash-completion/bash_completion",
+-    b"/usr/local/share/bash-completion/bash_completion",
 -    # SmartOS
--    '/opt/local/share/bash-completion/bash_completion',
+-    b"/opt/local/share/bash-completion/bash_completion",
 -    # Homebrew (before bash-completion2)
--    '/usr/local/etc/bash_completion',
--])
--
+-    b"/usr/local/etc/bash_completion",
+-]
+ 
  
  def completion_script(commands):
-     """Yield the full completion shell script as strings.
 diff --git i/test/test_ui.py w/test/test_ui.py
-index 9804b0a1..c3b53243 100644
+index cae86148..faf266a8 100644
 --- i/test/test_ui.py
 +++ w/test/test_ui.py
-@@ -1229,12 +1229,7 @@ class CompletionTest(_common.TestCase, TestHelper):
-                                   stdout=subprocess.PIPE, env=env)
+@@ -1434,12 +1434,7 @@ class CompletionTest(_common.TestCase, TestHelper):
+         )
  
          # Load bash_completion library.
 -        for path in commands.BASH_COMPLETION_PATHS:
--            if os.path.exists(util.syspath(path)):
+-            if os.path.exists(syspath(path)):
 -                bash_completion = path
 -                break
 -        else:
--            self.skipTest('bash-completion script not found')
-+        self.skipTest('bash-completion script not found')
+-            self.skipTest("bash-completion script not found")
++        self.skipTest("bash-completion script not found")
          try:
-             with open(util.syspath(bash_completion), 'rb') as f:
+             with open(util.syspath(bash_completion), "rb") as f:
                  tester.stdin.writelines(f)
diff --git a/pkgs/tools/audio/beets/patches/fix-embedart-imagick-7.1.1-12.patch b/pkgs/tools/audio/beets/patches/fix-embedart-imagick-7.1.1-12.patch
deleted file mode 100644
index 42ae3526e9780..0000000000000
--- a/pkgs/tools/audio/beets/patches/fix-embedart-imagick-7.1.1-12.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/beets/art.py b/beets/art.py
-index 13d5dfbd..ac1d2fd8 100644
---- a/beets/art.py
-+++ b/beets/art.py
-@@ -132,7 +132,7 @@ def check_art_similarity(log, item, imagepath, compare_threshold):
-             convert_cmd = ['convert', syspath(imagepath, prefix=False),
-                            syspath(art, prefix=False),
-                            '-colorspace', 'gray', 'MIFF:-']
--            compare_cmd = ['compare', '-metric', 'PHASH', '-', 'null:']
-+            compare_cmd = ['compare', '-define', 'phash:colorspaces=sRGB,HCLp', '-metric', 'PHASH', '-', 'null:']
-             log.debug('comparing images with pipeline {} | {}',
-                       convert_cmd, compare_cmd)
-             convert_proc = subprocess.Popen(
diff --git a/pkgs/tools/audio/beets/patches/fix-pillow10-compat.patch b/pkgs/tools/audio/beets/patches/fix-pillow10-compat.patch
deleted file mode 100644
index f85eec20156cc..0000000000000
--- a/pkgs/tools/audio/beets/patches/fix-pillow10-compat.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git i/beets/util/artresizer.py w/beets/util/artresizer.py
-index 8683e228..6f99c79e 100644
---- i/beets/util/artresizer.py
-+++ w/beets/util/artresizer.py
-@@ -72,7 +72,7 @@ def pil_resize(maxwidth, path_in, path_out=None, quality=0, max_filesize=0):
-     try:
-         im = Image.open(util.syspath(path_in))
-         size = maxwidth, maxwidth
--        im.thumbnail(size, Image.ANTIALIAS)
-+        im.thumbnail(size, Image.Resampling.LANCZOS)
- 
-         if quality == 0:
-             # Use PIL's default quality.
diff --git a/pkgs/tools/audio/beets/patches/unstable-bash-completion-always-print.patch b/pkgs/tools/audio/beets/patches/unstable-bash-completion-always-print.patch
deleted file mode 100644
index 96b175117572b..0000000000000
--- a/pkgs/tools/audio/beets/patches/unstable-bash-completion-always-print.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-diff --git i/beets/ui/commands.py w/beets/ui/commands.py
-index ad4f7821..5077191d 100755
---- i/beets/ui/commands.py
-+++ w/beets/ui/commands.py
-@@ -2381,22 +2381,6 @@ default_commands.append(config_cmd)
- def print_completion(*args):
-     for line in completion_script(default_commands + plugins.commands()):
-         print_(line, end="")
--    if not any(os.path.isfile(syspath(p)) for p in BASH_COMPLETION_PATHS):
--        log.warning(
--            "Warning: Unable to find the bash-completion package. "
--            "Command line completion might not work."
--        )
--
--
--BASH_COMPLETION_PATHS = [
--    b"/etc/bash_completion",
--    b"/usr/share/bash-completion/bash_completion",
--    b"/usr/local/share/bash-completion/bash_completion",
--    # SmartOS
--    b"/opt/local/share/bash-completion/bash_completion",
--    # Homebrew (before bash-completion2)
--    b"/usr/local/etc/bash_completion",
--]
- 
- 
- def completion_script(commands):
-diff --git i/test/test_ui.py w/test/test_ui.py
-index cae86148..faf266a8 100644
---- i/test/test_ui.py
-+++ w/test/test_ui.py
-@@ -1434,12 +1434,7 @@ class CompletionTest(_common.TestCase, TestHelper):
-         )
- 
-         # Load bash_completion library.
--        for path in commands.BASH_COMPLETION_PATHS:
--            if os.path.exists(syspath(path)):
--                bash_completion = path
--                break
--        else:
--            self.skipTest("bash-completion script not found")
-+        self.skipTest("bash-completion script not found")
-         try:
-             with open(util.syspath(bash_completion), "rb") as f:
-                 tester.stdin.writelines(f)
diff --git a/pkgs/tools/audio/beets/plugins/alternatives.nix b/pkgs/tools/audio/beets/plugins/alternatives.nix
index 95740e2d4e423..4b661d896ad68 100644
--- a/pkgs/tools/audio/beets/plugins/alternatives.nix
+++ b/pkgs/tools/audio/beets/plugins/alternatives.nix
@@ -2,26 +2,30 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "beets-alternatives";
-  version = "unstable-2021-02-01";
+  version = "0.11.1";
+  pyproject = true;
 
   src = fetchFromGitHub {
     repo = "beets-alternatives";
     owner = "geigerzaehler";
-    rev = "288299e3aa9a1602717b04c28696fce5ce4259bf";
-    sha256 = "sha256-Xl7AHr33hXQqQDuFbWuj8HrIugeipJFPmvNXpCkU/mI=";
+    rev = "v${version}";
+    sha256 = "sha256-ORmF7YOQD4LvKiYo4Rzz+mzppOEvLics58aOK/IKcHc=";
   };
 
-  postPatch = ''
-    substituteInPlace setup.cfg \
-      --replace "addopts = --cov --cov-report=term --cov-report=html" ""
-  '';
-
-  nativeBuildInputs = [ beets ];
+  nativeBuildInputs = [
+    beets
+    python3Packages.poetry-core
+  ];
 
   nativeCheckInputs = with python3Packages; [
     pytestCheckHook
+    pytest-cov
     mock
+    typeguard
   ];
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
 
   meta = with lib; {
     description = "Beets plugin to manage external files";
diff --git a/pkgs/tools/audio/beets/plugins/copyartifacts.nix b/pkgs/tools/audio/beets/plugins/copyartifacts.nix
index 132eda28ed308..d9d95a9f25d97 100644
--- a/pkgs/tools/audio/beets/plugins/copyartifacts.nix
+++ b/pkgs/tools/audio/beets/plugins/copyartifacts.nix
@@ -19,11 +19,13 @@ python3Packages.buildPythonApplication rec {
 
   pytestFlagsArray = [ "-r fEs" ];
 
-  nativeCheckInputs = with python3Packages; [
-    pytestCheckHook
+  nativeCheckInputs = [
+    python3Packages.pytestCheckHook
     beets
-    six
   ];
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
 
   meta = {
     description = "Beets plugin to move non-music files during the import process";
diff --git a/pkgs/tools/audio/beets/plugins/extrafiles.nix b/pkgs/tools/audio/beets/plugins/extrafiles.nix
index 80c51dcde522f..829d55c257e5f 100644
--- a/pkgs/tools/audio/beets/plugins/extrafiles.nix
+++ b/pkgs/tools/audio/beets/plugins/extrafiles.nix
@@ -30,8 +30,10 @@ python3Packages.buildPythonApplication {
 
   meta = {
     homepage = "https://github.com/Holzhaus/beets-extrafiles";
-    description = "A plugin for beets that copies additional files and directories during the import process";
+    description = "Plugin for beets that copies additional files and directories during the import process";
     license = lib.licenses.mit;
     inherit (beets.meta) platforms;
+    # Upstream hasn't had commits since 2020, build is broken since beets 2.0.0
+    broken = true;
   };
 }
diff --git a/pkgs/tools/audio/dl-librescore/default.nix b/pkgs/tools/audio/dl-librescore/default.nix
index 3f9a652bde47e..913efd645a30f 100644
--- a/pkgs/tools/audio/dl-librescore/default.nix
+++ b/pkgs/tools/audio/dl-librescore/default.nix
@@ -8,16 +8,16 @@
 
 buildNpmPackage rec {
   pname = "dl-librescore";
-  version = "0.35.7";
+  version = "0.35.17";
 
   src = fetchFromGitHub {
     owner = "LibreScore";
     repo = "dl-librescore";
     rev = "v${version}";
-    hash = "sha256-g/dOQj2S9iUmN3Ohj7RPBpSk/4N9a39qY+/UIbsKDf4=";
+    hash = "sha256-u09aquwZIT2XxxaqirrMU5Q3PpXbj70bcI3pOflxVAE=";
   };
 
-  npmDepsHash = "sha256-Boa/WnptJYJNRdcLgua5GmLT2H9tBpZR+vvAFZC1s4k=";
+  npmDepsHash = "sha256-LZgVQNFXUqFbzXKdXk8wsMDBqApmtXFLRUw6zIKDAqs=";
 
   # see https://github.com/LibreScore/dl-librescore/pull/32
   # TODO can be removed with next update
diff --git a/pkgs/tools/audio/dsp/default.nix b/pkgs/tools/audio/dsp/default.nix
index 8c218ab70e8e9..f827e281681b1 100644
--- a/pkgs/tools/audio/dsp/default.nix
+++ b/pkgs/tools/audio/dsp/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://github.com/bmc0/dsp";
-    description = "An audio processing program with an interactive mode";
+    description = "Audio processing program with an interactive mode";
     license = licenses.isc;
     maintainers = with maintainers; [ aaronjheng ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/audio/ezstream/default.nix b/pkgs/tools/audio/ezstream/default.nix
index d3b965efc6033..5e1be5f3f7e15 100644
--- a/pkgs/tools/audio/ezstream/default.nix
+++ b/pkgs/tools/audio/ezstream/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A command line source client for Icecast media streaming servers";
+    description = "Command line source client for Icecast media streaming servers";
     longDescription = ''
       Ezstream is a command line source client for Icecast media
       streaming servers. It began as the successor of the old "shout"
diff --git a/pkgs/tools/audio/glyr/default.nix b/pkgs/tools/audio/glyr/default.nix
index 0f13addfcd92e..c1499a376f156 100644
--- a/pkgs/tools/audio/glyr/default.nix
+++ b/pkgs/tools/audio/glyr/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ sqlite glib curl ];
 
   meta = with lib; {
-    description = "A music related metadata searchengine";
+    description = "Music related metadata searchengine";
     homepage = "https://github.com/sahib/glyr";
     license = licenses.lgpl3;
     maintainers = [ maintainers.sternenseemann ];
diff --git a/pkgs/tools/audio/goxlr-utility/default.nix b/pkgs/tools/audio/goxlr-utility/default.nix
index 13bcadcecc6eb..b8baf0266f18f 100644
--- a/pkgs/tools/audio/goxlr-utility/default.nix
+++ b/pkgs/tools/audio/goxlr-utility/default.nix
@@ -65,7 +65,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "An unofficial GoXLR App replacement for Linux, Windows and MacOS";
+    description = "Unofficial GoXLR App replacement for Linux, Windows and MacOS";
     homepage = "https://github.com/GoXLR-on-Linux/goxlr-utility";
     license = licenses.mit;
     maintainers = with maintainers; [ errnoh ];
diff --git a/pkgs/tools/audio/gvolicon/default.nix b/pkgs/tools/audio/gvolicon/default.nix
index b761962b176e3..aad2647d2e3ec 100644
--- a/pkgs/tools/audio/gvolicon/default.nix
+++ b/pkgs/tools/audio/gvolicon/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
   env.NIX_CFLAGS_COMPILE = "-D_POSIX_C_SOURCE";
 
   meta = {
-    description = "A simple and lightweight volume icon that sits in your system tray";
+    description = "Simple and lightweight volume icon that sits in your system tray";
     homepage = "https://github.com/Unia/gvolicon";
     platforms = lib.platforms.linux;
     license = lib.licenses.gpl3Plus;
diff --git a/pkgs/tools/audio/kaldi/default.nix b/pkgs/tools/audio/kaldi/default.nix
index 689cea017ab35..0ad07bae9fd93 100644
--- a/pkgs/tools/audio/kaldi/default.nix
+++ b/pkgs/tools/audio/kaldi/default.nix
@@ -19,13 +19,13 @@
 assert blas.implementation == "openblas" && lapack.implementation == "openblas";
 stdenv.mkDerivation (finalAttrs: {
   pname = "kaldi";
-  version = "0-unstable-2024-01-31";
+  version = "0-unstable-2024-06-03";
 
   src = fetchFromGitHub {
     owner = "kaldi-asr";
     repo = "kaldi";
-    rev = "8c451e28582f5d91f84ea3d64bb76c794c3b1683";
-    sha256 = "sha256-iW/2gDZ/ib0M+bfWtZ9XuMWXMwTGoKCRLVl2lHLNh6c=";
+    rev = "67548a31c45f93d8b25ee553c5969d6a6d5d9408";
+    sha256 = "sha256-yCyBha7i2rxYjEDRYdg8QI7raCEkOPT0Tc8dzSamsmc=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/tools/audio/mp3cat/default.nix b/pkgs/tools/audio/mp3cat/default.nix
index e562d833aadea..d6e76582d1674 100644
--- a/pkgs/tools/audio/mp3cat/default.nix
+++ b/pkgs/tools/audio/mp3cat/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A command line program which concatenates MP3 files";
+    description = "Command line program which concatenates MP3 files";
     longDescription = ''
       A command line program which concatenates MP3 files, mp3cat
       only outputs MP3 frames with valid headers, even if there is extra garbage
diff --git a/pkgs/tools/audio/mpd-discord-rpc/default.nix b/pkgs/tools/audio/mpd-discord-rpc/default.nix
index 64535fd3e5a15..1da562085158a 100644
--- a/pkgs/tools/audio/mpd-discord-rpc/default.nix
+++ b/pkgs/tools/audio/mpd-discord-rpc/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mpd-discord-rpc";
-  version = "1.7.2";
+  version = "1.7.3";
 
   src = fetchFromGitHub {
     owner = "JakeStanger";
     repo = "mpd-discord-rpc";
     rev = "v${version}";
-    hash = "sha256-Sdvrq9ChaSwjQDVjHVzcVLYbzyCHXsta1/Jo9hVkcDw=";
+    hash = "sha256-WiHMXazNKyt5N7WmkftZYEHeQi+l9qoU2yr6jRHfjdE=";
   };
 
-  cargoHash = "sha256-w3ulSCbQBkDATe4yfgGSl7WMrUk3sYlS08UbgvGY/5s=";
+  cargoHash = "sha256-DnOv9YJpr777p1GVhe8LS5uAUs6Dr/gRLoJarFx5avw=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/tools/audio/mpd-mpris/default.nix b/pkgs/tools/audio/mpd-mpris/default.nix
index dcf1e467300e4..9c6412de12e12 100644
--- a/pkgs/tools/audio/mpd-mpris/default.nix
+++ b/pkgs/tools/audio/mpd-mpris/default.nix
@@ -35,7 +35,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "An implementation of the MPRIS protocol for MPD";
+    description = "Implementation of the MPRIS protocol for MPD";
     homepage = "https://github.com/natsukagami/mpd-mpris";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
diff --git a/pkgs/tools/audio/mpd-sima/default.nix b/pkgs/tools/audio/mpd-sima/default.nix
index b123d2828c4c1..8123c6d664c41 100644
--- a/pkgs/tools/audio/mpd-sima/default.nix
+++ b/pkgs/tools/audio/mpd-sima/default.nix
@@ -29,7 +29,7 @@ buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "An autoqueuing mpd client";
+    description = "Autoqueuing mpd client";
     homepage = "https://kaliko.me/mpd-sima/";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/tools/audio/mpdcron/default.nix b/pkgs/tools/audio/mpdcron/default.nix
index 924181608af44..5578acf27e503 100644
--- a/pkgs/tools/audio/mpdcron/default.nix
+++ b/pkgs/tools/audio/mpdcron/default.nix
@@ -51,7 +51,7 @@ in stdenv.mkDerivation {
   configureFlags = [ "--enable-gmodule" "--with-standard-modules=all" ];
 
   meta = with lib; {
-    description = "A cron like daemon for mpd";
+    description = "Cron like daemon for mpd";
     homepage    = "http://alip.github.io/mpdcron/";
     license     = licenses.gpl2Plus;
     platforms   = platforms.unix;
diff --git a/pkgs/tools/audio/opl3bankeditor/common.nix b/pkgs/tools/audio/opl3bankeditor/common.nix
index 982b8f8349f36..abbd24efd87e8 100644
--- a/pkgs/tools/audio/opl3bankeditor/common.nix
+++ b/pkgs/tools/audio/opl3bankeditor/common.nix
@@ -59,7 +59,7 @@ mkDerivation rec {
 
   meta = with lib; {
     inherit mainProgram;
-    description = "A small cross-platform editor of the ${chip} FM banks of different formats";
+    description = "Small cross-platform editor of the ${chip} FM banks of different formats";
     homepage = src.meta.homepage;
     license = licenses.gpl3Plus;
     platforms = platforms.all;
diff --git a/pkgs/tools/audio/piper/default.nix b/pkgs/tools/audio/piper/default.nix
index 1f565b7475292..eff78d05bf512 100644
--- a/pkgs/tools/audio/piper/default.nix
+++ b/pkgs/tools/audio/piper/default.nix
@@ -66,7 +66,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     changelog = "https://github.com/rhasspy/piper/releases/tag/v${finalAttrs.version}";
-    description = "A fast, local neural text to speech system";
+    description = "Fast, local neural text to speech system";
     homepage = "https://github.com/rhasspy/piper";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
diff --git a/pkgs/tools/audio/shaq/default.nix b/pkgs/tools/audio/shaq/default.nix
index a7072ece0ff5e..f7270a73557b0 100644
--- a/pkgs/tools/audio/shaq/default.nix
+++ b/pkgs/tools/audio/shaq/default.nix
@@ -54,7 +54,7 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   meta = with lib; {
-    description = "A CLI client for Shazam";
+    description = "CLI client for Shazam";
     homepage = "https://github.com/woodruffw/shaq";
     changelog = "https://github.com/woodruffw/shaq/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/tools/audio/spotdl/default.nix b/pkgs/tools/audio/spotdl/default.nix
index e80ee6773106e..84261b04a91c2 100644
--- a/pkgs/tools/audio/spotdl/default.nix
+++ b/pkgs/tools/audio/spotdl/default.nix
@@ -1,6 +1,5 @@
 { lib
 , python3
-, fetchPypi
 , fetchFromGitHub
 , ffmpeg
 }:
diff --git a/pkgs/tools/audio/tidal-dl/default.nix b/pkgs/tools/audio/tidal-dl/default.nix
index eb23a4da3ccd9..c45d78aec4dc1 100644
--- a/pkgs/tools/audio/tidal-dl/default.nix
+++ b/pkgs/tools/audio/tidal-dl/default.nix
@@ -17,7 +17,7 @@ buildPythonApplication rec {
 
   meta = {
     homepage = "https://github.com/yaronzz/Tidal-Media-Downloader";
-    description = "An application that lets you download videos and tracks from Tidal";
+    description = "Application that lets you download videos and tracks from Tidal";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.misterio77 ];
     platforms = lib.platforms.all;
diff --git a/pkgs/tools/audio/trx/default.nix b/pkgs/tools/audio/trx/default.nix
index 3c03446f8ffad..c0b03a83caad2 100644
--- a/pkgs/tools/audio/trx/default.nix
+++ b/pkgs/tools/audio/trx/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "A simple toolset for broadcasting live audio using RTP/UDP and Opus";
+    description = "Simple toolset for broadcasting live audio using RTP/UDP and Opus";
     homepage = "http://www.pogo.org.uk/~mark/trx/";
     license = licenses.gpl2Only;
     maintainers = [ maintainers.hansjoergschurr ];
diff --git a/pkgs/tools/audio/vgmtools/default.nix b/pkgs/tools/audio/vgmtools/default.nix
index 9e094cea975d3..63cb11e55ac7f 100644
--- a/pkgs/tools/audio/vgmtools/default.nix
+++ b/pkgs/tools/audio/vgmtools/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/vgmrips/vgmtools";
-    description = "A collection of tools for the VGM file format";
+    description = "Collection of tools for the VGM file format";
     license = licenses.gpl2Only; # Not clarified whether Only or Plus
     maintainers = with maintainers; [ OPNA2608 ];
     platforms = platforms.all;
diff --git a/pkgs/tools/audio/volumeicon/default.nix b/pkgs/tools/audio/volumeicon/default.nix
index cabd145cc6e0e..7157ad437d131 100644
--- a/pkgs/tools/audio/volumeicon/default.nix
+++ b/pkgs/tools/audio/volumeicon/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A lightweight volume control that sits in your systray";
+    description = "Lightweight volume control that sits in your systray";
     homepage = "http://nullwise.com/volumeicon.html";
     platforms = platforms.linux;
     maintainers = with maintainers; [ bobvanderlinden ];
diff --git a/pkgs/tools/audio/whisper-ctranslate2/default.nix b/pkgs/tools/audio/whisper-ctranslate2/default.nix
index 4b9602fefa0c3..5bb464345fdd0 100644
--- a/pkgs/tools/audio/whisper-ctranslate2/default.nix
+++ b/pkgs/tools/audio/whisper-ctranslate2/default.nix
@@ -5,11 +5,11 @@
 }:
 let
   pname = "whisper-ctranslate2";
-  version = "0.4.3";
+  version = "0.4.4";
 in
 python3.pkgs.buildPythonApplication {
   inherit pname version;
-  format = "setuptools";
+  pyproject = true;
 
   disabled = python3.pythonOlder "3.6";
 
@@ -17,28 +17,33 @@ python3.pkgs.buildPythonApplication {
     owner = "Softcatala";
     repo = "whisper-ctranslate2";
     rev = version;
-    hash = "sha256-39kVo4+ZEyjhWbLjw8acW2vJxa3fbQ/tPgnZH3USsYY=";
+    hash = "sha256-iVS1wyPCXlbK1rMFidNbbUohu527NSaCpu1Dve01TvM=";
   };
 
-  propagatedBuildInputs = with python3.pkgs; [
-    numpy
-    faster-whisper
+  build-system = [ python3.pkgs.setuptools ];
+
+  dependencies = with python3.pkgs; [
     ctranslate2
-    tqdm
+    faster-whisper
+    numpy
+    pyannote-audio
     sounddevice
+    tqdm
   ];
 
-  passthru.updateScript = nix-update-script { };
-
   nativeCheckInputs = with python3.pkgs; [
     nose2
   ];
 
   checkPhase = ''
+    runHook preCheck
     # Note: we are not running the `e2e-tests` because they require downloading models from the internet.
     ${python3.interpreter} -m nose2 -s tests
+    runHook postCheck
   '';
 
+  passthru.updateScript = nix-update-script { };
+
   meta = with lib; {
     description = "Whisper command line client compatible with original OpenAI client based on CTranslate2";
     homepage = "https://github.com/Softcatala/whisper-ctranslate2";
diff --git a/pkgs/tools/audio/wyoming/openwakeword.nix b/pkgs/tools/audio/wyoming/openwakeword.nix
index 64c91ce259e81..69f10f1d208fe 100644
--- a/pkgs/tools/audio/wyoming/openwakeword.nix
+++ b/pkgs/tools/audio/wyoming/openwakeword.nix
@@ -20,6 +20,10 @@ python3Packages.buildPythonApplication rec {
     pythonRelaxDepsHook
   ];
 
+  pythonRelaxDeps = [
+    "wyoming"
+  ];
+
   pythonRemoveDeps = [
     "tflite-runtime-nightly"
   ];
@@ -35,7 +39,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     changelog = "https://github.com/rhasspy/wyoming-openwakeword/blob/v${version}/CHANGELOG.md";
-    description = "An open source voice assistant toolkit for many human languages";
+    description = "Open source voice assistant toolkit for many human languages";
     homepage = "https://github.com/rhasspy/wyoming-openwakeword";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
diff --git a/pkgs/tools/audio/wyoming/piper.nix b/pkgs/tools/audio/wyoming/piper.nix
index 82d8c003348e5..8a614ef4083c8 100644
--- a/pkgs/tools/audio/wyoming/piper.nix
+++ b/pkgs/tools/audio/wyoming/piper.nix
@@ -1,7 +1,6 @@
 { lib
 , python3Packages
 , fetchFromGitHub
-, fetchpatch
 }:
 
 python3Packages.buildPythonApplication rec {
diff --git a/pkgs/tools/audio/yabridge/default.nix b/pkgs/tools/audio/yabridge/default.nix
index 05982bc10e83a..70922a0f32b39 100644
--- a/pkgs/tools/audio/yabridge/default.nix
+++ b/pkgs/tools/audio/yabridge/default.nix
@@ -159,7 +159,7 @@ multiStdenv.mkDerivation (finalAttrs: {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A modern and transparent way to use Windows VST2 and VST3 plugins on Linux";
+    description = "Modern and transparent way to use Windows VST2 and VST3 plugins on Linux";
     homepage = "https://github.com/robbert-vdh/yabridge";
     changelog = "https://github.com/robbert-vdh/yabridge/blob/${finalAttrs.version}/CHANGELOG.md";
     license = licenses.gpl3Plus;
diff --git a/pkgs/tools/audio/yabridgectl/default.nix b/pkgs/tools/audio/yabridgectl/default.nix
index bc52e3d6c72fa..98b078056da18 100644
--- a/pkgs/tools/audio/yabridgectl/default.nix
+++ b/pkgs/tools/audio/yabridgectl/default.nix
@@ -38,7 +38,7 @@ rustPlatform.buildRustPackage {
   '';
 
   meta = with lib; {
-    description = "A small, optional utility to help set up and update yabridge for several directories at once";
+    description = "Small, optional utility to help set up and update yabridge for several directories at once";
     homepage = "${yabridge.src.meta.homepage}/tree/${yabridge.version}/tools/yabridgectl";
     changelog = yabridge.meta.changelog;
     license = licenses.gpl3Plus;
diff --git a/pkgs/tools/backup/automysqlbackup/default.nix b/pkgs/tools/backup/automysqlbackup/default.nix
index 2a36e3a2a275c..ec6d0cdc4afbd 100644
--- a/pkgs/tools/backup/automysqlbackup/default.nix
+++ b/pkgs/tools/backup/automysqlbackup/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A script to run daily, weekly and monthly backups for your MySQL database";
+    description = "Script to run daily, weekly and monthly backups for your MySQL database";
     mainProgram = "automysqlbackup";
     homepage = "https://github.com/sixhop/AutoMySQLBackup";
     platforms = platforms.linux;
diff --git a/pkgs/tools/backup/awsbck/default.nix b/pkgs/tools/backup/awsbck/default.nix
index 99ce2afc0a549..8e00b8787c4a3 100644
--- a/pkgs/tools/backup/awsbck/default.nix
+++ b/pkgs/tools/backup/awsbck/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "awsbck";
-  version = "0.3.8";
+  version = "0.3.9";
 
   src = fetchFromGitHub {
     owner = "beeb";
     repo = "awsbck";
     rev = "v${version}";
-    hash = "sha256-dUBuuFl6PVTsPnrH9OU3N/GwgTC2/QtH6yKtv3QgBsA=";
+    hash = "sha256-KHbAmx2CsRqatGt5zTvqZSq8fwcClRZkeMHucLAr8bY=";
   };
 
-  cargoHash = "sha256-X5lYplBej+ZBLnNoHQTGu63pwouGfbVtSH4bgdoxqUo=";
+  cargoHash = "sha256-dMXaIFc0e6PMYiQrokQoUc1xAVCccE92WzM2fl7tOBQ=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
diff --git a/pkgs/tools/backup/btrbk/default.nix b/pkgs/tools/backup/btrbk/default.nix
index 36bd2065de7e5..9a83e98fc45e6 100644
--- a/pkgs/tools/backup/btrbk/default.nix
+++ b/pkgs/tools/backup/btrbk/default.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A backup tool for btrfs subvolumes";
+    description = "Backup tool for btrfs subvolumes";
     homepage = "https://digint.ch/btrbk";
     license = licenses.gpl3Only;
     platforms = platforms.unix;
diff --git a/pkgs/tools/backup/duplicacy/default.nix b/pkgs/tools/backup/duplicacy/default.nix
index 55abb3462ee49..3d818f8d90065 100644
--- a/pkgs/tools/backup/duplicacy/default.nix
+++ b/pkgs/tools/backup/duplicacy/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://duplicacy.com";
-    description = "A new generation cloud backup tool";
+    description = "New generation cloud backup tool";
     platforms = platforms.linux ++ platforms.darwin;
     license = lib.licenses.unfree;
     maintainers = with maintainers; [ ffinkdevs devusb ];
diff --git a/pkgs/tools/backup/duplicati/default.nix b/pkgs/tools/backup/duplicati/default.nix
index 3667b4afda47a..2cb003d2d080f 100644
--- a/pkgs/tools/backup/duplicati/default.nix
+++ b/pkgs/tools/backup/duplicati/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A free backup client that securely stores encrypted, incremental, compressed backups on cloud storage services and remote file servers";
+    description = "Free backup client that securely stores encrypted, incremental, compressed backups on cloud storage services and remote file servers";
     homepage = "https://www.duplicati.com/";
     license = licenses.lgpl21;
     maintainers = with maintainers; [ nyanloutre ];
diff --git a/pkgs/tools/backup/gyb/default.nix b/pkgs/tools/backup/gyb/default.nix
index fedf02a9b7e60..9619cab840864 100644
--- a/pkgs/tools/backup/gyb/default.nix
+++ b/pkgs/tools/backup/gyb/default.nix
@@ -1,22 +1,21 @@
 { lib
 , fetchFromGitHub
 , python3
-, python3Packages
 }:
 
-python3Packages.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "gyb";
-  version = "1.80";
+  version = "1.81";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "GAM-team";
     repo = "got-your-back";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-4xElzhf9R6qnzr4oyZktQy/ym2vEjR9MrHnLYxBiAOg=";
+    hash = "sha256-ViNOEH5wyAQRR56egRhh4JoP1PWOCr+rxFmqxfJiu+0=";
   };
 
-  propagatedBuildInputs = with python3Packages; [
+  dependencies = with python3.pkgs; [
     google-api-python-client
     google-auth
     google-auth-oauthlib
@@ -28,14 +27,18 @@ python3Packages.buildPythonApplication rec {
     runHook preInstall
 
     mkdir -p $out/{bin,${python3.sitePackages}}
-    mv gyb.py "$out/bin/gyb"
-    mv *.py "$out/${python3.sitePackages}/"
+    mv gyb.py $out/bin/gyb
+    mv *.py $out/${python3.sitePackages}/
 
     runHook postInstall
   '';
 
   checkPhase = ''
-    $out/bin/gyb --help > /dev/null
+    runHook preCheck
+
+    PYTHONPATH="" $out/bin/gyb --help > /dev/null
+
+    runHook postCheck
   '';
 
   meta = with lib; {
@@ -45,6 +48,7 @@ python3Packages.buildPythonApplication rec {
     '';
     homepage = "https://github.com/GAM-team/got-your-back";
     license = licenses.asl20;
+    mainProgram = "gyb";
     maintainers = with maintainers; [ austinbutler ];
   };
 }
diff --git a/pkgs/tools/backup/iceshelf/default.nix b/pkgs/tools/backup/iceshelf/default.nix
index c066cb766951d..631f82f350107 100644
--- a/pkgs/tools/backup/iceshelf/default.nix
+++ b/pkgs/tools/backup/iceshelf/default.nix
@@ -27,7 +27,7 @@ python3.pkgs.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A simple tool to allow storage of signed, encrypted, incremental backups using Amazon's Glacier storage";
+    description = "Simple tool to allow storage of signed, encrypted, incremental backups using Amazon's Glacier storage";
     license = licenses.lgpl2;
     homepage = "https://github.com/mrworf/iceshelf";
     maintainers = with maintainers; [ mmahut ];
diff --git a/pkgs/tools/backup/luckybackup/default.nix b/pkgs/tools/backup/luckybackup/default.nix
index 61c0c186fe27c..6fd32a2ceb44a 100644
--- a/pkgs/tools/backup/luckybackup/default.nix
+++ b/pkgs/tools/backup/luckybackup/default.nix
@@ -26,7 +26,7 @@ mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A powerful, fast and reliable backup & sync tool";
+    description = "Powerful, fast and reliable backup & sync tool";
     longDescription = ''
       luckyBackup is an application for data back-up and synchronization
       powered by the rsync tool.
diff --git a/pkgs/tools/backup/mylvmbackup/default.nix b/pkgs/tools/backup/mylvmbackup/default.nix
index ad1fcf6969446..590a4655eb402 100644
--- a/pkgs/tools/backup/mylvmbackup/default.nix
+++ b/pkgs/tools/backup/mylvmbackup/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://www.lenzg.net/mylvmbackup/";
-    description = "a tool for quickly creating full physical backups of a MySQL server's data files";
+    description = "Tool for quickly creating full physical backups of a MySQL server's data files";
     mainProgram = "mylvmbackup";
     license = lib.licenses.gpl2Only;
     maintainers = with lib.maintainers; [ ryantm ];
diff --git a/pkgs/tools/backup/pgbackrest/default.nix b/pkgs/tools/backup/pgbackrest/default.nix
index 02933fcc63ef9..d76028fd656ab 100644
--- a/pkgs/tools/backup/pgbackrest/default.nix
+++ b/pkgs/tools/backup/pgbackrest/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pgbackrest";
-  version = "2.51";
+  version = "2.52";
 
   src = fetchFromGitHub {
     owner = "pgbackrest";
     repo = "pgbackrest";
     rev = "release/${version}";
-    sha256 = "sha256-o6UROI+t35lHSFeRMLh0nIkmLMdcclpkKNzjkw/z56Q=";
+    sha256 = "sha256-S2KmKPqjZ64RQMJ+vt827AIzaWlnEUoP3Npr2/FIZM8=";
   };
 
   strictDeps = true;
diff --git a/pkgs/tools/backup/rdup/default.nix b/pkgs/tools/backup/rdup/default.nix
index f75285e9ef97f..2363ea8f75f16 100644
--- a/pkgs/tools/backup/rdup/default.nix
+++ b/pkgs/tools/backup/rdup/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
   buildInputs = [ glib pcre ];
 
   meta = {
-    description = "The only backup program that doesn't make backups";
+    description = "Only backup program that doesn't make backups";
     homepage    = "https://github.com/miekg/rdup";
     license    = lib.licenses.gpl3;
     platforms   = lib.platforms.linux;
diff --git a/pkgs/tools/backup/restic/default.nix b/pkgs/tools/backup/restic/default.nix
index ad70b31a2a0ab..5f1ff957b6346 100644
--- a/pkgs/tools/backup/restic/default.nix
+++ b/pkgs/tools/backup/restic/default.nix
@@ -44,7 +44,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://restic.net";
     changelog = "https://github.com/restic/restic/blob/${src.rev}/CHANGELOG.md";
-    description = "A backup program that is fast, efficient and secure";
+    description = "Backup program that is fast, efficient and secure";
     platforms = platforms.linux ++ platforms.darwin;
     license = licenses.bsd2;
     maintainers = [ maintainers.mbrgm maintainers.dotlambda ];
diff --git a/pkgs/tools/backup/restic/rest-server.nix b/pkgs/tools/backup/restic/rest-server.nix
index bd99029278527..547f3775b2893 100644
--- a/pkgs/tools/backup/restic/rest-server.nix
+++ b/pkgs/tools/backup/restic/rest-server.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     changelog = "https://github.com/restic/rest-server/blob/${src.rev}/CHANGELOG.md";
-    description = "A high performance HTTP server that implements restic's REST backend API";
+    description = "High performance HTTP server that implements restic's REST backend API";
     mainProgram = "rest-server";
     homepage = "https://github.com/restic/rest-server";
     license = licenses.bsd2;
diff --git a/pkgs/tools/backup/rsnapshot/default.nix b/pkgs/tools/backup/rsnapshot/default.nix
index 57883c4f68e4f..ff65d94fc11f9 100644
--- a/pkgs/tools/backup/rsnapshot/default.nix
+++ b/pkgs/tools/backup/rsnapshot/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A filesystem snapshot utility for making backups of local and remote systems";
+    description = "Filesystem snapshot utility for making backups of local and remote systems";
     homepage = "https://rsnapshot.org/";
     license = lib.licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/tools/backup/s3ql/default.nix b/pkgs/tools/backup/s3ql/default.nix
index 701fccabe4fae..bc6ea18767677 100644
--- a/pkgs/tools/backup/s3ql/default.nix
+++ b/pkgs/tools/backup/s3ql/default.nix
@@ -53,7 +53,7 @@ python3.pkgs.buildPythonApplication rec {
   pytestFlagsArray = [ "tests/" ];
 
   meta = with lib; {
-    description = "A full-featured file system for online data storage";
+    description = "Full-featured file system for online data storage";
     homepage = "https://github.com/s3ql/s3ql/";
     changelog = "https://github.com/s3ql/s3ql/releases/tag/s3ql-${version}";
     license = licenses.gpl3Only;
diff --git a/pkgs/tools/backup/sanoid/default.nix b/pkgs/tools/backup/sanoid/default.nix
index f37a471490674..aa960b7227266 100644
--- a/pkgs/tools/backup/sanoid/default.nix
+++ b/pkgs/tools/backup/sanoid/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A policy-driven snapshot management tool for ZFS filesystems";
+    description = "Policy-driven snapshot management tool for ZFS filesystems";
     homepage = "https://github.com/jimsalterjrs/sanoid";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ lopsided98 Frostman ];
diff --git a/pkgs/tools/backup/store-backup/default.nix b/pkgs/tools/backup/store-backup/default.nix
index 506ea600cbcb7..74c867e9ec5e5 100644
--- a/pkgs/tools/backup/store-backup/default.nix
+++ b/pkgs/tools/backup/store-backup/default.nix
@@ -107,7 +107,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A backup suite that stores files on other disks";
+    description = "Backup suite that stores files on other disks";
     homepage = "https://savannah.nongnu.org/projects/storebackup";
     license = lib.licenses.gpl3Plus;
     maintainers = [lib.maintainers.marcweber];
diff --git a/pkgs/tools/backup/tarsnapper/default.nix b/pkgs/tools/backup/tarsnapper/default.nix
index b4d731984f71f..843e61ecea573 100644
--- a/pkgs/tools/backup/tarsnapper/default.nix
+++ b/pkgs/tools/backup/tarsnapper/default.nix
@@ -37,8 +37,7 @@ python3Packages.buildPythonApplication rec {
   ];
 
   nativeCheckInputs = with python3Packages; [
-    pytestCheckHook
-    nose
+    pynose
   ];
 
   # Remove standard module argparse from requirements
@@ -46,6 +45,12 @@ python3Packages.buildPythonApplication rec {
 
   makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ tarsnap ]}" ];
 
+  checkPhase = ''
+    runHook preCheck
+    nosetests tests
+    runHook postCheck
+  '';
+
   pythonImportsCheck = [ "tarsnapper" ];
 
   meta = with lib; {
diff --git a/pkgs/tools/backup/ugarit-manifest-maker/default.nix b/pkgs/tools/backup/ugarit-manifest-maker/default.nix
index 2a7aca1eeab8e..dc497150041c4 100644
--- a/pkgs/tools/backup/ugarit-manifest-maker/default.nix
+++ b/pkgs/tools/backup/ugarit-manifest-maker/default.nix
@@ -26,7 +26,7 @@ eggDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.kitten-technologies.co.uk/project/ugarit-manifest-maker/";
-    description = "A tool for generating import manifests for Ugarit";
+    description = "Tool for generating import manifests for Ugarit";
     mainProgram = "ugarit-manifest-maker";
     license = licenses.bsd3;
     maintainers = [ maintainers.ebzzry ];
diff --git a/pkgs/tools/backup/ugarit/default.nix b/pkgs/tools/backup/ugarit/default.nix
index c7b3c40284daa..94dd3219fc24b 100644
--- a/pkgs/tools/backup/ugarit/default.nix
+++ b/pkgs/tools/backup/ugarit/default.nix
@@ -36,7 +36,7 @@ eggDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.kitten-technologies.co.uk/project/ugarit/";
-    description = "A backup/archival system based around content-addressible storage";
+    description = "Backup/archival system based around content-addressible storage";
     license = licenses.bsd3;
     maintainers = [ maintainers.ebzzry ];
     platforms = platforms.unix;
diff --git a/pkgs/tools/backup/wal-e/default.nix b/pkgs/tools/backup/wal-e/default.nix
index 3e77d5c3087f2..f1dda5da28093 100644
--- a/pkgs/tools/backup/wal-e/default.nix
+++ b/pkgs/tools/backup/wal-e/default.nix
@@ -27,7 +27,7 @@ python3Packages.buildPythonApplication rec {
   ];
 
   meta = {
-    description = "A Postgres WAL-shipping disaster recovery and replication toolkit";
+    description = "Postgres WAL-shipping disaster recovery and replication toolkit";
     mainProgram = "wal-e";
     homepage = "https://github.com/wal-e/wal-e";
     maintainers = [ ];
diff --git a/pkgs/tools/backup/wal-g/default.nix b/pkgs/tools/backup/wal-g/default.nix
index d469db8925af9..0cbcaca81f013 100644
--- a/pkgs/tools/backup/wal-g/default.nix
+++ b/pkgs/tools/backup/wal-g/default.nix
@@ -33,7 +33,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/wal-g/wal-g";
     license = licenses.asl20;
-    description = "An archival restoration tool for PostgreSQL";
+    description = "Archival restoration tool for PostgreSQL";
     mainProgram = "wal-g";
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/tools/backup/zbackup/default.nix b/pkgs/tools/backup/zbackup/default.nix
index c43a3d52af815..f7bfb646332aa 100644
--- a/pkgs/tools/backup/zbackup/default.nix
+++ b/pkgs/tools/backup/zbackup/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake protobufc ];
 
   meta = {
-    description = "A versatile deduplicating backup tool";
+    description = "Versatile deduplicating backup tool";
     mainProgram = "zbackup";
     homepage = "http://zbackup.org/";
     platforms = lib.platforms.linux;
diff --git a/pkgs/tools/backup/zfsnap/default.nix b/pkgs/tools/backup/zfsnap/default.nix
index 6e71f38e4e63f..7c78fc8f17208 100644
--- a/pkgs/tools/backup/zfsnap/default.nix
+++ b/pkgs/tools/backup/zfsnap/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A portable, performant script to make rolling ZFS snapshots easy";
+    description = "Portable, performant script to make rolling ZFS snapshots easy";
     mainProgram = "zfsnap";
     homepage = "https://github.com/zfsnap/zfsnap";
     license = licenses.bsd3;
diff --git a/pkgs/tools/backup/zrepl/default.nix b/pkgs/tools/backup/zrepl/default.nix
index 65aed9dedc972..b04d23fc372a0 100644
--- a/pkgs/tools/backup/zrepl/default.nix
+++ b/pkgs/tools/backup/zrepl/default.nix
@@ -41,7 +41,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://zrepl.github.io/";
-    description = "A one-stop, integrated solution for ZFS replication";
+    description = "One-stop, integrated solution for ZFS replication";
     platforms = platforms.linux;
     license = licenses.mit;
     maintainers = with maintainers; [ cole-h mdlayher ];
diff --git a/pkgs/tools/bluetooth/blueman/default.nix b/pkgs/tools/bluetooth/blueman/default.nix
index 0266198b1debf..1f66be687bc95 100644
--- a/pkgs/tools/bluetooth/blueman/default.nix
+++ b/pkgs/tools/bluetooth/blueman/default.nix
@@ -8,11 +8,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "blueman";
-  version = "2.4.1";
+  version = "2.4.2";
 
   src = fetchurl {
     url = "https://github.com/blueman-project/blueman/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-B9jePkpBLFkOoPqTlQ32suSHsDF6QI7Cnh1qwiutYNs=";
+    sha256 = "sha256-B6COCPNtzXxAT9Ve70N5WvWR2VFLKviWPfIg76BLIa0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/bluetooth/obexfs/default.nix b/pkgs/tools/bluetooth/obexfs/default.nix
index 2783c63899df4..0f37a0363212c 100644
--- a/pkgs/tools/bluetooth/obexfs/default.nix
+++ b/pkgs/tools/bluetooth/obexfs/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://dev.zuckschwerdt.org/openobex/wiki/ObexFs";
-    description = "A tool to mount OBEX-based devices (such as Bluetooth phones)";
+    description = "Tool to mount OBEX-based devices (such as Bluetooth phones)";
     platforms = platforms.linux;
     license = licenses.lgpl2Plus;
   };
diff --git a/pkgs/tools/bluetooth/obexftp/default.nix b/pkgs/tools/bluetooth/obexftp/default.nix
index 8fd031d331c03..5819508f2577e 100644
--- a/pkgs/tools/bluetooth/obexftp/default.nix
+++ b/pkgs/tools/bluetooth/obexftp/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://dev.zuckschwerdt.org/openobex/wiki/ObexFtp";
-    description = "A library and tool to access files on OBEX-based devices (such as Bluetooth phones)";
+    description = "Library and tool to access files on OBEX-based devices (such as Bluetooth phones)";
     platforms = platforms.linux;
     license = licenses.lgpl2Plus;
   };
diff --git a/pkgs/tools/bluetooth/openobex/default.nix b/pkgs/tools/bluetooth/openobex/default.nix
index ae487fb075fd7..521505211219e 100644
--- a/pkgs/tools/bluetooth/openobex/default.nix
+++ b/pkgs/tools/bluetooth/openobex/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://dev.zuckschwerdt.org/openobex/";
-    description = "An open source implementation of the Object Exchange (OBEX) protocol";
+    description = "Open source implementation of the Object Exchange (OBEX) protocol";
     platforms = platforms.linux;
     license = licenses.lgpl2Plus;
     mainProgram = "obex-check-device";
diff --git a/pkgs/tools/bootloaders/refind/0002-preserve-dates.patch b/pkgs/tools/bootloaders/refind/0002-preserve-dates.patch
new file mode 100644
index 0000000000000..93a21f63e0108
--- /dev/null
+++ b/pkgs/tools/bootloaders/refind/0002-preserve-dates.patch
@@ -0,0 +1,67 @@
+diff --git a/Makefile b/Makefile
+index 4d07160..4ae2a7d 100644
+--- a/Makefile
++++ b/Makefile
+@@ -150,9 +150,11 @@ edk2: build_edk2
+ 	cp $(EDK2_BUILDLOC)/refind.efi ./refind/refind_$(FILENAME_CODE).efi
+ 	cp $(EDK2_BUILDLOC)/gptsync.efi ./gptsync/gptsync_$(FILENAME_CODE).efi
+ ifneq ($(OMIT_SBAT), 1)
+-	$(OBJCOPY) --set-section-alignment '.sbat=512' --add-section .sbat=$(REFIND_SBAT_CSV) \
++	$(OBJCOPY) --preserve-dates --set-section-alignment '.sbat=512' \
++		--add-section .sbat=$(REFIND_SBAT_CSV) \
+ 		--adjust-section-vma .sbat+10000000 ./refind/refind_$(FILENAME_CODE).efi
+-	$(OBJCOPY) --set-section-alignment '.sbat=512' --add-section .sbat=$(REFIND_SBAT_CSV) \
++	$(OBJCOPY) --preserve-dates --set-section-alignment '.sbat=512' \
++		--add-section .sbat=$(REFIND_SBAT_CSV) \
+ 		--adjust-section-vma .sbat+10000000 ./gptsync/gptsync_$(FILENAME_CODE).efi
+ endif
+ 
+@@ -173,7 +175,8 @@ else
+ 	for BASENAME in $(EDK2_DRIVER_BASENAMES) ; do \
+ 		echo "Copying $$BASENAME""_$(FILENAME_CODE).efi" ; \
+ 		cp "$(EDK2_BUILDLOC)/$$BASENAME.efi" ./drivers_$(FILENAME_CODE)/$$BASENAME\_$(FILENAME_CODE).efi ; \
+-		$(OBJCOPY) --set-section-alignment '.sbat=512' --add-section .sbat=$(REFIND_SBAT_CSV) \
++		$(OBJCOPY) --preserve-dates --set-section-alignment '.sbat=512' \
++		    --add-section .sbat=$(REFIND_SBAT_CSV) \
+ 		    --adjust-section-vma .sbat+10000000 ./drivers_$(FILENAME_CODE)/$$BASENAME\_$(FILENAME_CODE).efi ; \
+ 	done
+ endif
+diff --git a/filesystems/Make.gnuefi b/filesystems/Make.gnuefi
+index 70e4ad6..2329659 100644
+--- a/filesystems/Make.gnuefi
++++ b/filesystems/Make.gnuefi
+@@ -38,7 +38,7 @@ $(TARGET): $(SHLIB_TARGET)
+ 	           -j .rel -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* \
+ 		   -j .reloc --strip-unneeded $(FORMAT_DRIVER) $< $@
+ ifneq ($(OMIT_SBAT), 1)
+-		   $(OBJCOPY) --add-section .sbat=$(SRCDIR)/../$(REFIND_SBAT_CSV) \
++		   $(OBJCOPY) --preserve-dates --add-section .sbat=$(SRCDIR)/../$(REFIND_SBAT_CSV) \
+ 		   --adjust-section-vma .sbat+10000000 $@
+ endif
+ 	chmod a-x $(TARGET)
+diff --git a/gptsync/Make.gnuefi b/gptsync/Make.gnuefi
+index b6c0763..49aff13 100644
+--- a/gptsync/Make.gnuefi
++++ b/gptsync/Make.gnuefi
+@@ -35,7 +35,7 @@ $(TARGET): $(SHLIB_TARGET)
+ 	           -j .rel -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* \
+ 		   -j .reloc --strip-unneeded  $(FORMAT) $< $@
+ ifneq ($(OMIT_SBAT), 1)
+-	$(OBJCOPY) --add-section .sbat=../$(REFIND_SBAT_CSV) \
++	$(OBJCOPY) --preserve-dates --add-section .sbat=../$(REFIND_SBAT_CSV) \
+ 		   --adjust-section-vma .sbat+10000000 $@
+ endif
+ 	chmod a-x $(TARGET)
+diff --git a/refind/Makefile b/refind/Makefile
+index 73be8e5..880bd22 100644
+--- a/refind/Makefile
++++ b/refind/Makefile
+@@ -54,7 +54,7 @@ $(TARGET): $(SHLIB_TARGET)
+ 		   -j .rel -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* \
+ 		   -j .reloc --strip-unneeded $(FORMAT) $< $@
+ ifneq ($(OMIT_SBAT), 1)
+-	    $(OBJCOPY) --add-section .sbat=$(SRCDIR)/../$(REFIND_SBAT_CSV) \
++	    $(OBJCOPY) --preserve-dates --add-section .sbat=$(SRCDIR)/../$(REFIND_SBAT_CSV) \
+ 		       --adjust-section-vma .sbat+10000000 $@
+ endif
+ 	chmod a-x $(TARGET)
diff --git a/pkgs/tools/bootloaders/refind/default.nix b/pkgs/tools/bootloaders/refind/default.nix
index a481bfdc37ab3..0a8af657ff440 100644
--- a/pkgs/tools/bootloaders/refind/default.nix
+++ b/pkgs/tools/bootloaders/refind/default.nix
@@ -34,6 +34,9 @@ stdenv.mkDerivation rec {
   patches = [
     # Removes hardcoded toolchain for aarch64, allowing successful aarch64 builds.
     ./0001-toolchain.patch
+    # Avoid leaking the build timestamp
+    # https://sourceforge.net/p/refind/code/merge-requests/53/
+    ./0002-preserve-dates.patch
   ];
 
   nativeBuildInputs = [ makeWrapper ];
@@ -126,7 +129,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A graphical {,U}EFI boot manager";
+    description = "Graphical {,U}EFI boot manager";
     longDescription = ''
       rEFInd is a graphical boot manager for EFI- and UEFI-based
       computers, such as all Intel-based Macs and recent (most 2011
diff --git a/pkgs/tools/cd-dvd/bchunk/default.nix b/pkgs/tools/cd-dvd/bchunk/default.nix
index f8aabc4f48efb..17b46536b53f1 100644
--- a/pkgs/tools/cd-dvd/bchunk/default.nix
+++ b/pkgs/tools/cd-dvd/bchunk/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://he.fi/bchunk/";
-    description = "A program that converts CD images in BIN/CUE format into a set of ISO and CDR tracks";
+    description = "Program that converts CD images in BIN/CUE format into a set of ISO and CDR tracks";
     platforms = platforms.unix;
     license = licenses.gpl2Plus;
     mainProgram = "bchunk";
diff --git a/pkgs/tools/cd-dvd/brasero/default.nix b/pkgs/tools/cd-dvd/brasero/default.nix
index 5ee15304968b0..c601c05cbb2ed 100644
--- a/pkgs/tools/cd-dvd/brasero/default.nix
+++ b/pkgs/tools/cd-dvd/brasero/default.nix
@@ -40,7 +40,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Gnome CD/DVD Burner";
+    description = "Gnome CD/DVD Burner";
     homepage = "https://gitlab.gnome.org/GNOME/brasero";
     maintainers = [ maintainers.bdimcheff ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/tools/cd-dvd/ccd2iso/default.nix b/pkgs/tools/cd-dvd/ccd2iso/default.nix
index b364566f4b7df..a050175b69f27 100644
--- a/pkgs/tools/cd-dvd/ccd2iso/default.nix
+++ b/pkgs/tools/cd-dvd/ccd2iso/default.nix
@@ -9,6 +9,10 @@ stdenv.mkDerivation rec {
     sha256 = "1z000zi7hpr2h9cabj6hzf3n6a6gd6glmm8nn36v4b8i4vzbhx7q";
   };
 
+  patches = [
+    ./include.patch
+  ];
+
   meta = with lib; {
     description = "CloneCD to ISO converter";
     homepage = "https://sourceforge.net/projects/ccd2iso/";
diff --git a/pkgs/tools/cd-dvd/ccd2iso/include.patch b/pkgs/tools/cd-dvd/ccd2iso/include.patch
new file mode 100644
index 0000000000000..d7c05f701ccd0
--- /dev/null
+++ b/pkgs/tools/cd-dvd/ccd2iso/include.patch
@@ -0,0 +1,9 @@
+--- a/src/ccd2iso.c	2024-06-16 09:01:37
++++ b/src/ccd2iso.c	2024-06-16 09:01:49
+@@ -27,6 +27,7 @@
+ 
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h>
+ 
+ #include "clonecd.h"
diff --git a/pkgs/tools/cd-dvd/cdi2iso/default.nix b/pkgs/tools/cd-dvd/cdi2iso/default.nix
index 3456338d63399..c6c4c3f3ab35c 100644
--- a/pkgs/tools/cd-dvd/cdi2iso/default.nix
+++ b/pkgs/tools/cd-dvd/cdi2iso/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A very simple utility for converting DiscJuggler images to the standard ISO-9660 format";
+    description = "Very simple utility for converting DiscJuggler images to the standard ISO-9660 format";
     homepage = "https://sourceforge.net/projects/cdi2iso.berlios";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ hrdinka ];
diff --git a/pkgs/tools/cd-dvd/cdrdao/default.nix b/pkgs/tools/cd-dvd/cdrdao/default.nix
index 40f890915165d..84cad2a5d96d6 100644
--- a/pkgs/tools/cd-dvd/cdrdao/default.nix
+++ b/pkgs/tools/cd-dvd/cdrdao/default.nix
@@ -65,7 +65,7 @@ stdenv.mkDerivation (finalAttrs: {
   env.NIX_CFLAGS_COMPILE = "-Wno-narrowing";
 
   meta = {
-    description = "A tool for recording audio or data CD-Rs in disk-at-once (DAO) mode";
+    description = "Tool for recording audio or data CD-Rs in disk-at-once (DAO) mode";
     homepage = "https://cdrdao.sourceforge.net/";
     platforms = lib.platforms.unix;
     license = lib.licenses.gpl2Plus;
diff --git a/pkgs/tools/cd-dvd/cuetools/default.nix b/pkgs/tools/cd-dvd/cuetools/default.nix
index c3e1779071fd7..8b2cd28e4a027 100644
--- a/pkgs/tools/cd-dvd/cuetools/default.nix
+++ b/pkgs/tools/cd-dvd/cuetools/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A set of utilities for working with cue files and toc files";
+    description = "Set of utilities for working with cue files and toc files";
     homepage = "https://github.com/svend/cuetools";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ codyopel jcumming ];
diff --git a/pkgs/tools/cd-dvd/dvd-vr/default.nix b/pkgs/tools/cd-dvd/dvd-vr/default.nix
index a9d8e16437421..cd207ec6ec6ed 100644
--- a/pkgs/tools/cd-dvd/dvd-vr/default.nix
+++ b/pkgs/tools/cd-dvd/dvd-vr/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://www.pixelbeat.org/programs/dvd-vr/";
     downloadPage = "https://www.pixelbeat.org/programs/dvd-vr/";
-    description = "A utility to identify and optionally copy recordings from a DVD-VR format disc";
+    description = "Utility to identify and optionally copy recordings from a DVD-VR format disc";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ fgaz ];
     mainProgram = "dvd-vr";
diff --git a/pkgs/tools/cd-dvd/iat/default.nix b/pkgs/tools/cd-dvd/iat/default.nix
index 3a727eaf74e86..67726ebf64e01 100644
--- a/pkgs/tools/cd-dvd/iat/default.nix
+++ b/pkgs/tools/cd-dvd/iat/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation (finalAttr: {
   };
 
   meta = with lib; {
-    description = "A tool for detecting the structure of many types of CD/DVD images";
+    description = "Tool for detecting the structure of many types of CD/DVD images";
     homepage = "https://www.berlios.de/software/iso9660-analyzer-tool/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ hughobrien ];
diff --git a/pkgs/tools/cd-dvd/nrg2iso/default.nix b/pkgs/tools/cd-dvd/nrg2iso/default.nix
index a1cfa7481ab7d..a196f23544bb9 100644
--- a/pkgs/tools/cd-dvd/nrg2iso/default.nix
+++ b/pkgs/tools/cd-dvd/nrg2iso/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A linux utils for converting CD (or DVD) image generated by Nero Burning Rom to ISO format";
+    description = "Linux utils for converting CD (or DVD) image generated by Nero Burning Rom to ISO format";
     homepage = "http://gregory.kokanosky.free.fr/v4/linux/nrg2iso.en.html";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
diff --git a/pkgs/tools/cd-dvd/unetbootin/default.nix b/pkgs/tools/cd-dvd/unetbootin/default.nix
index fb12968aa728a..7dc1efb82852d 100644
--- a/pkgs/tools/cd-dvd/unetbootin/default.nix
+++ b/pkgs/tools/cd-dvd/unetbootin/default.nix
@@ -75,7 +75,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A tool to create bootable live USB drives from ISO images";
+    description = "Tool to create bootable live USB drives from ISO images";
     homepage = "https://unetbootin.github.io/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ebzzry ];
diff --git a/pkgs/tools/compression/advancecomp/default.nix b/pkgs/tools/compression/advancecomp/default.nix
index b57e3f6806f30..a3d61f615b9d6 100644
--- a/pkgs/tools/compression/advancecomp/default.nix
+++ b/pkgs/tools/compression/advancecomp/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A set of tools to optimize deflate-compressed files";
+    description = "Set of tools to optimize deflate-compressed files";
     license = licenses.gpl3 ;
     maintainers = [ maintainers.raskin ];
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/pkgs/tools/compression/brotli/default.nix b/pkgs/tools/compression/brotli/default.nix
index 60429f435ec66..94ed992812e57 100644
--- a/pkgs/tools/compression/brotli/default.nix
+++ b/pkgs/tools/compression/brotli/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://github.com/google/brotli";
-    description = "A generic-purpose lossless compression algorithm and tool";
+    description = "Generic-purpose lossless compression algorithm and tool";
     longDescription =
       ''  Brotli is a generic-purpose lossless compression algorithm that
           compresses data using a combination of a modern variant of the LZ77
diff --git a/pkgs/tools/compression/bsdiff/default.nix b/pkgs/tools/compression/bsdiff/default.nix
index 6db5d99246771..e5be1e515b5ae 100644
--- a/pkgs/tools/compression/bsdiff/default.nix
+++ b/pkgs/tools/compression/bsdiff/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An efficient binary diff/patch tool";
+    description = "Efficient binary diff/patch tool";
     homepage = "https://www.daemonology.net/bsdiff/";
     license = licenses.bsd2;
     platforms = platforms.unix;
diff --git a/pkgs/tools/compression/bzip2/default.nix b/pkgs/tools/compression/bzip2/default.nix
index bfab2dbb94670..0268b60afc52c 100644
--- a/pkgs/tools/compression/bzip2/default.nix
+++ b/pkgs/tools/compression/bzip2/default.nix
@@ -25,7 +25,7 @@ in {
 
   patches = [
     (fetchurl {
-      url = "https://ftp.suse.com/pub/people/sbrabec/bzip2/for_downstream/bzip2-1.0.6.2-autoconfiscated.patch";
+      url = "ftp://ftp.suse.com/pub/people/sbrabec/bzip2/for_downstream/bzip2-1.0.6.2-autoconfiscated.patch";
       sha256 = "sha256-QMufl6ffJVVVVZespvkCbFpB6++R1lnq1687jEsUjr0=";
     })
   ];
diff --git a/pkgs/tools/compression/bzip3/default.nix b/pkgs/tools/compression/bzip3/default.nix
index 135b253229ad1..92ddefdb86622 100644
--- a/pkgs/tools/compression/bzip3/default.nix
+++ b/pkgs/tools/compression/bzip3/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
 
   meta = {
-    description = "A better and stronger spiritual successor to BZip2";
+    description = "Better and stronger spiritual successor to BZip2";
     homepage = "https://github.com/kspalaiologos/bzip3";
     changelog = "https://github.com/kspalaiologos/bzip3/blob/${finalAttrs.src.rev}/NEWS";
     license = lib.licenses.lgpl3Plus;
diff --git a/pkgs/tools/compression/crabz/default.nix b/pkgs/tools/compression/crabz/default.nix
index f8668fbbd2fea..bbdbdacadc793 100644
--- a/pkgs/tools/compression/crabz/default.nix
+++ b/pkgs/tools/compression/crabz/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
-    description = "A cross platform, fast, compression and decompression tool";
+    description = "Cross platform, fast, compression and decompression tool";
     homepage = "https://github.com/sstadick/crabz";
     changelog = "https://github.com/sstadick/crabz/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ unlicense /* or */ mit ];
diff --git a/pkgs/tools/compression/flips/default.nix b/pkgs/tools/compression/flips/default.nix
index 81fe0170aeb30..d697a10fad62d 100644
--- a/pkgs/tools/compression/flips/default.nix
+++ b/pkgs/tools/compression/flips/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A patcher for IPS and BPS files";
+    description = "Patcher for IPS and BPS files";
     homepage = "https://github.com/Alcaro/Flips";
     license = licenses.gpl3Plus;
     maintainers = [ ];
diff --git a/pkgs/tools/compression/gzip/default.nix b/pkgs/tools/compression/gzip/default.nix
index baff7f0303874..05539050861f3 100644
--- a/pkgs/tools/compression/gzip/default.nix
+++ b/pkgs/tools/compression/gzip/default.nix
@@ -1,7 +1,9 @@
 { lib, stdenv
 , fetchurl
 , makeWrapper
+, updateAutotoolsGnuConfigScriptsHook
 , xz
+, runtimeShellPackage
 }:
 
 # Note: this package is used for bootstrapping fetchurl, and thus
@@ -22,7 +24,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  nativeBuildInputs = [ xz.bin makeWrapper ];
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook makeWrapper ];
+  buildInputs = [ runtimeShellPackage ];
 
   makeFlags = [
     "SHELL=/bin/sh"
diff --git a/pkgs/tools/compression/gzrt/default.nix b/pkgs/tools/compression/gzrt/default.nix
index 59d87cf4f3417..9dc85fa6f94b9 100644
--- a/pkgs/tools/compression/gzrt/default.nix
+++ b/pkgs/tools/compression/gzrt/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.urbanophile.com/arenn/hacking/gzrt/";
-    description = "The gzip Recovery Toolkit";
+    description = "Gzip Recovery Toolkit";
     maintainers = with maintainers; [ ];
     mainProgram = "gzrecover";
     license = licenses.gpl2Plus;
diff --git a/pkgs/tools/compression/hactool/default.nix b/pkgs/tools/compression/hactool/default.nix
index 11adbe3ced1b9..cab59ebde556b 100644
--- a/pkgs/tools/compression/hactool/default.nix
+++ b/pkgs/tools/compression/hactool/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/SciresM/hactool";
-    description = "A tool to manipulate common file formats for the Nintendo Switch";
+    description = "Tool to manipulate common file formats for the Nintendo Switch";
     longDescription = "A tool to view information about, decrypt, and extract common file formats for the Nintendo Switch, especially Nintendo Content Archives";
     license = licenses.isc;
     maintainers = with maintainers; [ ivar ];
diff --git a/pkgs/tools/compression/heatshrink/default.nix b/pkgs/tools/compression/heatshrink/default.nix
index d18f82ef21fad..b7508030f9cc4 100644
--- a/pkgs/tools/compression/heatshrink/default.nix
+++ b/pkgs/tools/compression/heatshrink/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A data compression/decompression library for embedded/real-time systems";
+    description = "Data compression/decompression library for embedded/real-time systems";
     homepage = "https://github.com/atomicobject/heatshrink";
     license = licenses.isc;
     maintainers = with maintainers; [ fgaz ];
diff --git a/pkgs/tools/compression/kzipmix/default.nix b/pkgs/tools/compression/kzipmix/default.nix
index bde65af03e907..9da423396593b 100644
--- a/pkgs/tools/compression/kzipmix/default.nix
+++ b/pkgs/tools/compression/kzipmix/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A tool that aggressively optimizes the sizes of Zip archives";
+    description = "Tool that aggressively optimizes the sizes of Zip archives";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     homepage = "http://advsys.net/ken/utils.htm";
diff --git a/pkgs/tools/compression/lrzip/default.nix b/pkgs/tools/compression/lrzip/default.nix
index 3bb1e29f03477..bca4bdd2a31f2 100644
--- a/pkgs/tools/compression/lrzip/default.nix
+++ b/pkgs/tools/compression/lrzip/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://ck.kolivas.org/apps/lrzip/";
-    description = "The CK LRZIP compression program (LZMA + RZIP)";
+    description = "CK LRZIP compression program (LZMA + RZIP)";
     maintainers = with maintainers; [ ];
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/tools/compression/lzfse/default.nix b/pkgs/tools/compression/lzfse/default.nix
index e5f104a9aef2d..3f37f781041e6 100644
--- a/pkgs/tools/compression/lzfse/default.nix
+++ b/pkgs/tools/compression/lzfse/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/lzfse/lzfse";
-    description = "a reference C implementation of the LZFSE compressor";
+    description = "Reference C implementation of the LZFSE compressor";
     longDescription = ''
       This is a reference C implementation of the LZFSE compressor introduced in the Compression library with OS X 10.11 and iOS 9.
       LZFSE is a Lempel-Ziv style data compression algorithm using Finite State Entropy coding.
diff --git a/pkgs/tools/compression/lzip/default.nix b/pkgs/tools/compression/lzip/default.nix
index 82052bab6e3d1..80d247fbc9cea 100644
--- a/pkgs/tools/compression/lzip/default.nix
+++ b/pkgs/tools/compression/lzip/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.nongnu.org/lzip/lzip.html";
-    description = "A lossless data compressor based on the LZMA algorithm";
+    description = "Lossless data compressor based on the LZMA algorithm";
     license = lib.licenses.gpl2Plus;
     maintainers = with maintainers; [ vlaci ];
     platforms = lib.platforms.all;
diff --git a/pkgs/tools/compression/ncompress/default.nix b/pkgs/tools/compression/ncompress/default.nix
index c4678cd960210..bb8084ac013a6 100644
--- a/pkgs/tools/compression/ncompress/default.nix
+++ b/pkgs/tools/compression/ncompress/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://ncompress.sourceforge.net/";
     license = licenses.publicDomain;
-    description = "A fast, simple LZW file compressor";
+    description = "Fast, simple LZW file compressor";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/compression/offzip/default.nix b/pkgs/tools/compression/offzip/default.nix
index e756d42572642..3ec2165c703b4 100644
--- a/pkgs/tools/compression/offzip/default.nix
+++ b/pkgs/tools/compression/offzip/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A tool to unpack the zip data contained in any type of file";
+    description = "Tool to unpack the zip data contained in any type of file";
     homepage = "https://aluigi.altervista.org/mytoolz.htm#offzip";
     license = lib.licenses.gpl2Plus;
     maintainers = with maintainers; [ r-burns ];
diff --git a/pkgs/tools/compression/orz/default.nix b/pkgs/tools/compression/orz/default.nix
index b760b0132ef75..1520a76365dab 100644
--- a/pkgs/tools/compression/orz/default.nix
+++ b/pkgs/tools/compression/orz/default.nix
@@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A high performance, general purpose data compressor written in rust";
+    description = "High performance, general purpose data compressor written in rust";
     homepage = "https://github.com/richox/orz";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/pkgs/tools/compression/ouch/default.nix b/pkgs/tools/compression/ouch/default.nix
index 42ae945aeea03..2db0c25c440ba 100644
--- a/pkgs/tools/compression/ouch/default.nix
+++ b/pkgs/tools/compression/ouch/default.nix
@@ -42,7 +42,7 @@ rustPlatform.buildRustPackage rec {
   env.OUCH_ARTIFACTS_FOLDER = "artifacts";
 
   meta = with lib; {
-    description = "A command-line utility for easily compressing and decompressing files and directories";
+    description = "Command-line utility for easily compressing and decompressing files and directories";
     homepage = "https://github.com/ouch-org/ouch";
     changelog = "https://github.com/ouch-org/ouch/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/tools/compression/pbzip2/default.nix b/pkgs/tools/compression/pbzip2/default.nix
index 81144fb14b193..6bf83bd718fc9 100644
--- a/pkgs/tools/compression/pbzip2/default.nix
+++ b/pkgs/tools/compression/pbzip2/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://compression.ca/pbzip2/";
-    description = "A parallel implementation of bzip2 for multi-core machines";
+    description = "Parallel implementation of bzip2 for multi-core machines";
     license = licenses.bsd2;
     maintainers = with maintainers; [viric];
     platforms = platforms.unix;
diff --git a/pkgs/tools/compression/pigz/default.nix b/pkgs/tools/compression/pigz/default.nix
index 79363eecade35..6e9decb1b710a 100644
--- a/pkgs/tools/compression/pigz/default.nix
+++ b/pkgs/tools/compression/pigz/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.zlib.net/pigz/";
-    description = "A parallel implementation of gzip for multi-core machines";
+    description = "Parallel implementation of gzip for multi-core machines";
     maintainers = with maintainers; [ ];
     license = licenses.zlib;
     platforms = platforms.unix;
diff --git a/pkgs/tools/compression/pixz/default.nix b/pkgs/tools/compression/pixz/default.nix
index 9eb1d6539cdf9..4e221ae18fc93 100644
--- a/pkgs/tools/compression/pixz/default.nix
+++ b/pkgs/tools/compression/pixz/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A parallel compressor/decompressor for xz format";
+    description = "Parallel compressor/decompressor for xz format";
     license = licenses.bsd2;
     maintainers = [ maintainers.raskin ];
     platforms = platforms.unix;
diff --git a/pkgs/tools/compression/upx/default.nix b/pkgs/tools/compression/upx/default.nix
index 3a2c6394f90a9..280e1425ef537 100644
--- a/pkgs/tools/compression/upx/default.nix
+++ b/pkgs/tools/compression/upx/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "upx";
-  version = "4.2.3";
+  version = "4.2.4";
   src = fetchFromGitHub {
     owner = "upx";
     repo = "upx";
     rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-3+aOadTqQ1apnrXt2I27j8P6iJF96W90YjxVTPmRhs0=";
+    hash = "sha256-r36BD5f/sQSz3GjvreOptc7atIaaBZKpU+7qm+BKLss=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -26,7 +26,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://upx.github.io/";
-    description = "The Ultimate Packer for eXecutables";
+    description = "Ultimate Packer for eXecutables";
     changelog = "https://github.com/upx/upx/blob/${finalAttrs.src.rev}/NEWS";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/tools/compression/xz/default.nix b/pkgs/tools/compression/xz/default.nix
index 4431a178ac02f..e5d2fd267a611 100644
--- a/pkgs/tools/compression/xz/default.nix
+++ b/pkgs/tools/compression/xz/default.nix
@@ -29,6 +29,12 @@ stdenv.mkDerivation (finalAttrs: {
   enableParallelBuilding = true;
   doCheck = true;
 
+  # this could be accomplished by updateAutotoolsGnuConfigScriptsHook, but that causes infinite recursion
+  # necessary for FreeBSD code path in configure
+  postPatch = ''
+    substituteInPlace ./build-aux/config.guess --replace-fail /usr/bin/uname uname
+  '';
+
   preCheck = ''
     # Tests have a /bin/sh dependency...
     patchShebangs tests
@@ -60,7 +66,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://tukaani.org/xz/";
-    description = "A general-purpose data compression software, successor of LZMA";
+    description = "General-purpose data compression software, successor of LZMA";
 
     longDescription =
       '' XZ Utils is free general-purpose data compression software with high
diff --git a/pkgs/tools/filesystems/aefs/default.nix b/pkgs/tools/filesystems/aefs/default.nix
index 5364b62c29cca..039a0a52b5bfc 100644
--- a/pkgs/tools/filesystems/aefs/default.nix
+++ b/pkgs/tools/filesystems/aefs/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/edolstra/aefs";
-    description = "A cryptographic filesystem implemented in userspace using FUSE";
+    description = "Cryptographic filesystem implemented in userspace using FUSE";
     maintainers = [ maintainers.eelco ];
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/tools/filesystems/afpfs-ng/default.nix b/pkgs/tools/filesystems/afpfs-ng/default.nix
index 6c3d213f734d5..10d7c46080f3b 100644
--- a/pkgs/tools/filesystems/afpfs-ng/default.nix
+++ b/pkgs/tools/filesystems/afpfs-ng/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage    = "https://github.com/simonvetter/afpfs-ng";
-    description = "A client implementation of the Apple Filing Protocol";
+    description = "Client implementation of the Apple Filing Protocol";
     license     = licenses.gpl2Only;
     maintainers = with maintainers; [ rnhmjoj ];
     platforms   = platforms.linux;
diff --git a/pkgs/tools/filesystems/bashmount/default.nix b/pkgs/tools/filesystems/bashmount/default.nix
index 4612b11a57778..e1995474abc75 100644
--- a/pkgs/tools/filesystems/bashmount/default.nix
+++ b/pkgs/tools/filesystems/bashmount/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/jamielinux/bashmount";
-    description = "A menu-driven bash script for the management of removable media with udisks";
+    description = "Menu-driven bash script for the management of removable media with udisks";
     mainProgram = "bashmount";
     maintainers = [ maintainers.koral ];
     license = licenses.gpl2Only;
diff --git a/pkgs/tools/filesystems/bindfs/default.nix b/pkgs/tools/filesystems/bindfs/default.nix
index fbd016eda7993..310c6db9b3cd8 100644
--- a/pkgs/tools/filesystems/bindfs/default.nix
+++ b/pkgs/tools/filesystems/bindfs/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     changelog = "https://github.com/mpartel/bindfs/raw/${finalAttrs.version}/ChangeLog";
-    description = "A FUSE filesystem for mounting a directory to another location";
+    description = "FUSE filesystem for mounting a directory to another location";
     homepage = "https://bindfs.org";
     license = lib.licenses.gpl2Only;
     maintainers = with lib.maintainers; [ lovek323 lovesegfault ];
diff --git a/pkgs/tools/filesystems/boxfs/default.nix b/pkgs/tools/filesystems/boxfs/default.nix
index ef611afd5d090..04106ee68b314 100644
--- a/pkgs/tools/filesystems/boxfs/default.nix
+++ b/pkgs/tools/filesystems/boxfs/default.nix
@@ -32,7 +32,10 @@ in stdenv.mkDerivation {
     cp -a --no-preserve=mode ${libapp} libapp
     cp -a --no-preserve=mode ${libjson} libjson
   '';
-  patches = [ ./work-around-API-borkage.patch ];
+  patches = [
+    ./work-around-API-borkage.patch
+    ./libapp-include-ctype.diff
+  ];
 
   buildInputs = [ curl fuse libxml2 ];
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/tools/filesystems/boxfs/libapp-include-ctype.diff b/pkgs/tools/filesystems/boxfs/libapp-include-ctype.diff
new file mode 100644
index 0000000000000..ab0492165e86a
--- /dev/null
+++ b/pkgs/tools/filesystems/boxfs/libapp-include-ctype.diff
@@ -0,0 +1,11 @@
+diff --git a/libapp/libapp/app.c b/libapp/libapp/app.c
+index 0188795..f9f1cfa 100644
+--- a/libapp/libapp/app.c
++++ b/libapp/libapp/app.c
+@@ -1,5 +1,6 @@
+ #include "app.h"
+ 
++#include <ctype.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <libgen.h>
diff --git a/pkgs/tools/filesystems/boxfs/work-around-API-borkage.patch b/pkgs/tools/filesystems/boxfs/work-around-API-borkage.patch
index b74e7f3246651..a473111e7aa5f 100644
--- a/pkgs/tools/filesystems/boxfs/work-around-API-borkage.patch
+++ b/pkgs/tools/filesystems/boxfs/work-around-API-borkage.patch
@@ -1,8 +1,16 @@
 diff --git a/boxapi.c b/boxapi.c
-index 4964273..1a32e0d 100644
+index 4964273..e4b7404 100644
 --- a/boxapi.c
 +++ b/boxapi.c
-@@ -38,8 +38,8 @@
+@@ -29,6 +29,7 @@
+ #include <curl/curl.h>
+ 
+ #include <libxml/hash.h>
++#include <libxml/parser.h>
+ 
+ #include <libapp/app.h>
+ /* Building blocks for OpenBox api endpoints
+@@ -38,8 +39,8 @@
  //    AUTH
  #define API_KEY_VAL "f9ss11y2w0hg5r04jsidxlhk4pil28cf"
  #define API_SECRET  "r3ZHAIhsOL2FoHjgERI9xf74W5skIM0w"
diff --git a/pkgs/tools/filesystems/btrfs-progs/default.nix b/pkgs/tools/filesystems/btrfs-progs/default.nix
index 6e2bdaea8f9e2..df328c942a1e5 100644
--- a/pkgs/tools/filesystems/btrfs-progs/default.nix
+++ b/pkgs/tools/filesystems/btrfs-progs/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "btrfs-progs";
-  version = "6.8.1";
+  version = "6.9";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${version}.tar.xz";
-    hash = "sha256-DkCgaKJsKWnLAqlbqf74iNemNW4/RX/5KtJHfQhzVng=";
+    hash = "sha256-fhSl1ZfzI919G0U+Ok5mGn6fB+oGDvv/T3b/gxWRfeg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/filesystems/catcli/default.nix b/pkgs/tools/filesystems/catcli/default.nix
index b8668a43c0cee..fc075f52c70db 100644
--- a/pkgs/tools/filesystems/catcli/default.nix
+++ b/pkgs/tools/filesystems/catcli/default.nix
@@ -30,7 +30,7 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   meta = with lib; {
-    description = "The command line catalog tool for your offline data";
+    description = "Command line catalog tool for your offline data";
     mainProgram = "catcli";
     homepage = "https://github.com/deadc0de6/catcli";
     changelog = "https://github.com/deadc0de6/catcli/releases/tag/v${version}";
diff --git a/pkgs/tools/filesystems/ciopfs/default.nix b/pkgs/tools/filesystems/ciopfs/default.nix
index 8b34f0f4ea26e..56de051012bd3 100644
--- a/pkgs/tools/filesystems/ciopfs/default.nix
+++ b/pkgs/tools/filesystems/ciopfs/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://www.brain-dump.org/projects/ciopfs/";
-    description = "A case-insensitive filesystem layered on top of any other filesystem";
+    description = "Case-insensitive filesystem layered on top of any other filesystem";
     license = lib.licenses.gpl2Only;
     platforms = lib.platforms.linux;
   };
diff --git a/pkgs/tools/filesystems/cpcfs/default.nix b/pkgs/tools/filesystems/cpcfs/default.nix
index 3b1d54ba427cd..654a889614406 100644
--- a/pkgs/tools/filesystems/cpcfs/default.nix
+++ b/pkgs/tools/filesystems/cpcfs/default.nix
@@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ makeWrapper ncurses readline ronn ];
 
+  env.NIX_CFLAGS_COMPILE = "-std=gnu89";
+
   postPatch = ''
     substituteInPlace Makefile \
       --replace '-ltermcap' '-lncurses' \
diff --git a/pkgs/tools/filesystems/disorderfs/default.nix b/pkgs/tools/filesystems/disorderfs/default.nix
index 14106cfd4ba94..062173f6972e3 100644
--- a/pkgs/tools/filesystems/disorderfs/default.nix
+++ b/pkgs/tools/filesystems/disorderfs/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   installFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "An overlay FUSE filesystem that introduces non-determinism into filesystem metadata";
+    description = "Overlay FUSE filesystem that introduces non-determinism into filesystem metadata";
     mainProgram = "disorderfs";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/pkgs/tools/filesystems/dupe-krill/default.nix b/pkgs/tools/filesystems/dupe-krill/default.nix
index 8f962b65a329e..7c2594a8adef7 100644
--- a/pkgs/tools/filesystems/dupe-krill/default.nix
+++ b/pkgs/tools/filesystems/dupe-krill/default.nix
@@ -2,22 +2,22 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "dupe-krill";
-  version = "1.4.8";
+  version = "1.4.9";
 
   src = fetchFromGitHub {
     owner = "kornelski";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-2fT9bw5LgJUQ0tm1T/vV5SaDjNH0OGKt7QUQLd7nmOs=";
+    sha256 = "sha256-ceeKG45OQLxiYcwq2Kumbpd+lkyY+W/og1/6Zdpd3zo=";
     postFetch = ''
       cp ${./Cargo.lock} $out/Cargo.lock
     '';
   };
 
-  cargoSha256 = "sha256-JUcIDUVzSLzblb2EbmSfuCAB+S0fyW6wpGF0b/xR+b0=";
+  cargoHash = "sha256-jEMvvFOcFij4lT/5Y5xARaVURT/evV9u1Vkqtm4al+g=";
 
   meta = with lib; {
-    description = "A fast file deduplicator";
+    description = "Fast file deduplicator";
     homepage = "https://github.com/kornelski/dupe-krill";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ urbas ];
diff --git a/pkgs/tools/filesystems/duperemove/default.nix b/pkgs/tools/filesystems/duperemove/default.nix
index 0f8e8d30469e5..66a3fac4a10a8 100644
--- a/pkgs/tools/filesystems/duperemove/default.nix
+++ b/pkgs/tools/filesystems/duperemove/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A simple tool for finding duplicated extents and submitting them for deduplication";
+    description = "Simple tool for finding duplicated extents and submitting them for deduplication";
     homepage = "https://github.com/markfasheh/duperemove";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ bluescreen303 thoughtpolice ];
diff --git a/pkgs/tools/filesystems/dwarfs/default.nix b/pkgs/tools/filesystems/dwarfs/default.nix
index a0df52059b697..0ee916b2d53f8 100644
--- a/pkgs/tools/filesystems/dwarfs/default.nix
+++ b/pkgs/tools/filesystems/dwarfs/default.nix
@@ -96,7 +96,7 @@ stdenv.mkDerivation {
   GTEST_FILTER = "-dwarfs/tools_test.end_to_end/*:dwarfs/tools_test.mutating_ops/*";
 
   meta = {
-    description = "A fast high compression read-only file system";
+    description = "Fast high compression read-only file system";
     homepage = "https://github.com/mhx/dwarfs";
     changelog = "https://github.com/mhx/dwarfs/blob/v${version}/CHANGES.md";
     license = lib.licenses.gpl3Plus;
diff --git a/pkgs/tools/filesystems/dysk/default.nix b/pkgs/tools/filesystems/dysk/default.nix
index 2dc4698f81729..de64684efa02d 100644
--- a/pkgs/tools/filesystems/dysk/default.nix
+++ b/pkgs/tools/filesystems/dysk/default.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "dysk";
-  version = "2.8.2";
+  version = "2.9.0";
 
   src = fetchFromGitHub {
     owner = "Canop";
     repo = "dysk";
     rev = "v${version}";
-    hash = "sha256-h/vdc7ltlXJQi1f013+fNyYB6fc0hTUcx4LN6UySIGM=";
+    hash = "sha256-EXP9uI98NXP1VRlhEaMTkJsAYVT9DpMFwquAVMoyjxU=";
   };
 
-  cargoHash = "sha256-LC7A+fu4SqfsxT3K9gYJPx8G9h+7kXq0Nq70iSlfygE=";
+  cargoHash = "sha256-N51M9uEMfcoNyR8r76bd0PW2jSQTpU/0V+cEl82gFqk=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/tools/filesystems/e2fsprogs/default.nix b/pkgs/tools/filesystems/e2fsprogs/default.nix
index a5ca282955f33..1ed100a3fe6b1 100644
--- a/pkgs/tools/filesystems/e2fsprogs/default.nix
+++ b/pkgs/tools/filesystems/e2fsprogs/default.nix
@@ -1,16 +1,16 @@
 { lib, stdenv, buildPackages, fetchurl, fetchpatch, pkg-config, libuuid, gettext, texinfo
-, withFuse ? stdenv.isLinux, fuse
+, withFuse ? stdenv.isLinux, fuse3
 , shared ? !stdenv.hostPlatform.isStatic
 , e2fsprogs, runCommand
 }:
 
 stdenv.mkDerivation rec {
   pname = "e2fsprogs";
-  version = "1.47.0";
+  version = "1.47.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
-    hash = "sha256-Zmev3lbu8MavJmhJdEAOTSKI6knpRBv15iKRldUaNXg=";
+    hash = "sha256-mvzSAfOUKdLbJJKusT26XnXWzFBoK3MtyjVkO9XwkuM=";
   };
 
   # fuse2fs adds 14mb of dependencies
@@ -20,15 +20,9 @@ stdenv.mkDerivation rec {
   depsBuildBuild = [ buildPackages.stdenv.cc ];
   nativeBuildInputs = [ pkg-config texinfo ];
   buildInputs = [ libuuid gettext ]
-    ++ lib.optionals withFuse [ fuse ];
+    ++ lib.optionals withFuse [ fuse3 ];
 
   patches = [
-    (fetchpatch { # avoid using missing __GNUC_PREREQ(X,Y)
-      url = "https://raw.githubusercontent.com/void-linux/void-packages/9583597eb3e6e6b33f61dbc615d511ce030bc443/srcpkgs/e2fsprogs/patches/fix-glibcism.patch";
-      sha256 = "1gfcsr0i3q8q2f0lqza8na0iy4l4p3cbii51ds6zmj0y4hz2dwhb";
-      excludes = [ "lib/ext2fs/hashmap.h" ];
-      extraPrefix = "";
-    })
     # Avoid trouble with older systems like NixOS 23.05.
     # TODO: most likely drop this at some point, e.g. when 23.05 loses support.
     (fetchurl {
@@ -36,6 +30,16 @@ stdenv.mkDerivation rec {
       url = "https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/plain/debian/patches/disable-metadata_csum_seed-and-orphan_file-by-default?h=debian/master&id=3fb3d18baba90e5d48d94f4c0b79b2d271b0c913";
       hash = "sha256-YD11K4s2bqv0rvzrxtaiodzLp3ztULlOlPUf1XcpxRY=";
     })
+    (fetchurl {
+      name = "SIZEOF_SIZE_T.patch";
+      url = "https://lore.kernel.org/linux-ext4/20240527074121.2767083-1-hi@alyssa.is/raw";
+      hash = "sha256-QdsvcvBi0mC/4YErqG0UKl94MH0OZpFVTGszNqBe/qw=";
+    })
+    (fetchurl {
+      name = "unused-parameters.patch";
+      url = "https://lore.kernel.org/linux-ext4/20240527091542.4121237-2-hi@alyssa.is/raw";
+      hash = "sha256-pMoqm2eo5zYaTdU+Ppa4+posCVFb2A9S4uo5oApaaqc=";
+    })
   ];
 
   configureFlags =
diff --git a/pkgs/tools/filesystems/encfs/default.nix b/pkgs/tools/filesystems/encfs/default.nix
index 966c396823928..4f546932c733b 100644
--- a/pkgs/tools/filesystems/encfs/default.nix
+++ b/pkgs/tools/filesystems/encfs/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     ];
 
   meta = with lib; {
-    description = "An encrypted filesystem in user-space via FUSE";
+    description = "Encrypted filesystem in user-space via FUSE";
     homepage = "https://vgough.github.io/encfs";
     license = with licenses; [ gpl3Plus lgpl3Plus ];
     platforms = platforms.unix;
diff --git a/pkgs/tools/filesystems/exfatprogs/default.nix b/pkgs/tools/filesystems/exfatprogs/default.nix
index dafdd2c830a9d..997aeec80fa7c 100644
--- a/pkgs/tools/filesystems/exfatprogs/default.nix
+++ b/pkgs/tools/filesystems/exfatprogs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "exfatprogs";
-  version = "1.2.2";
+  version = "1.2.4";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-2j+N/H+Vdy3Q6Ie2gBGkNKtLjt19RDvm9HZMS5l3L5Y=";
+    sha256 = "sha256-SrkRPDyASXpUAKapwcfaJSlUJBcVNtYZltdPzuhpvYM=";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook file ];
diff --git a/pkgs/tools/filesystems/fatresize/default.nix b/pkgs/tools/filesystems/fatresize/default.nix
index 80f7e5ecd4ae9..cd4cc131eeb86 100644
--- a/pkgs/tools/filesystems/fatresize/default.nix
+++ b/pkgs/tools/filesystems/fatresize/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = [ parted util-linux ];
 
   meta = with lib; {
-    description = "The FAT16/FAT32 non-destructive resizer";
+    description = "FAT16/FAT32 non-destructive resizer";
     homepage = "https://github.com/ya-mouse/fatresize";
     platforms = platforms.linux;
     license = licenses.gpl3;
diff --git a/pkgs/tools/filesystems/fuse-7z-ng/default.nix b/pkgs/tools/filesystems/fuse-7z-ng/default.nix
index 86db1f4872a4a..1c5b7b1d038f8 100644
--- a/pkgs/tools/filesystems/fuse-7z-ng/default.nix
+++ b/pkgs/tools/filesystems/fuse-7z-ng/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "A FUSE-based filesystem that uses the p7zip library";
+    description = "FUSE-based filesystem that uses the p7zip library";
     longDescription = ''
       fuse-7z-ng is a FUSE file system that uses the p7zip
       library to access all archive formats supported by 7-zip.
diff --git a/pkgs/tools/filesystems/garage/default.nix b/pkgs/tools/filesystems/garage/default.nix
index 1072134e31a9d..ce5ccbf696432 100644
--- a/pkgs/tools/filesystems/garage/default.nix
+++ b/pkgs/tools/filesystems/garage/default.nix
@@ -2,7 +2,6 @@
 , stdenv
 , rustPlatform
 , fetchFromGitea
-, fetchpatch
 , openssl
 , pkg-config
 , protobuf
diff --git a/pkgs/tools/filesystems/gcsfuse/default.nix b/pkgs/tools/filesystems/gcsfuse/default.nix
index 49fa05e23feef..b34074435c183 100644
--- a/pkgs/tools/filesystems/gcsfuse/default.nix
+++ b/pkgs/tools/filesystems/gcsfuse/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "gcsfuse";
-  version = "2.0.1";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "googlecloudplatform";
     repo = "gcsfuse";
     rev = "v${version}";
-    hash = "sha256-8O8JIN2KmTw5bMmcxu9ZeNiS48XkMUUpAX3+6Km13Y8=";
+    hash = "sha256-ecTwC0FHg0MHBkrsydTam4UfylldZQp06t/1BYUwgUI=";
   };
 
-  vendorHash = "sha256-nw2b0lDUJ9B+LloySns4cUzXeJ8uv4oYkZY0Jjg4hxc=";
+  vendorHash = "sha256-GmLyYtgiUBd09mUktjNhbPN5QCUb9VNUzA0xT5mzQ0Q=";
 
   subPackages = [ "." "tools/mount_gcsfuse" ];
 
@@ -36,7 +36,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A user-space file system for interacting with Google Cloud Storage";
+    description = "User-space file system for interacting with Google Cloud Storage";
     homepage = "https://cloud.google.com/storage/docs/gcs-fuse";
     changelog = "https://github.com/GoogleCloudPlatform/gcsfuse/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/tools/filesystems/genext2fs/default.nix b/pkgs/tools/filesystems/genext2fs/default.nix
index cf9cf7ef00e37..1a225b8ed4a30 100644
--- a/pkgs/tools/filesystems/genext2fs/default.nix
+++ b/pkgs/tools/filesystems/genext2fs/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/bestouff/genext2fs";
-    description = "A tool to generate ext2 filesystem images without requiring root privileges";
+    description = "Tool to generate ext2 filesystem images without requiring root privileges";
     license = licenses.gpl2Only;
     platforms = platforms.all;
     maintainers = [ maintainers.bjornfor ];
diff --git a/pkgs/tools/filesystems/gitfs/default.nix b/pkgs/tools/filesystems/gitfs/default.nix
index c5e388fc5ffbc..c99455cdb9973 100644
--- a/pkgs/tools/filesystems/gitfs/default.nix
+++ b/pkgs/tools/filesystems/gitfs/default.nix
@@ -29,7 +29,7 @@ python3Packages.buildPythonApplication rec {
   doCheck = false;
 
   meta = {
-    description = "A FUSE filesystem that fully integrates with git";
+    description = "FUSE filesystem that fully integrates with git";
     longDescription = ''
       A git remote repository's branch can be mounted locally,
       and any subsequent changes made to the files will be
diff --git a/pkgs/tools/filesystems/go-mtpfs/default.nix b/pkgs/tools/filesystems/go-mtpfs/default.nix
index cfcbc3c3f5a62..3cbbf9bfb5843 100644
--- a/pkgs/tools/filesystems/go-mtpfs/default.nix
+++ b/pkgs/tools/filesystems/go-mtpfs/default.nix
@@ -25,7 +25,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "A simple FUSE filesystem for mounting Android devices as a MTP device";
+    description = "Simple FUSE filesystem for mounting Android devices as a MTP device";
     homepage = "https://github.com/hanwen/go-mtpfs";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/tools/filesystems/goofys/default.nix b/pkgs/tools/filesystems/goofys/default.nix
index 1865b6f57644e..c8840e0fd3bc8 100644
--- a/pkgs/tools/filesystems/goofys/default.nix
+++ b/pkgs/tools/filesystems/goofys/default.nix
@@ -27,7 +27,7 @@ buildGoModule {
 
   meta = {
     homepage = "https://github.com/kahing/goofys";
-    description = "A high-performance, POSIX-ish Amazon S3 file system written in Go";
+    description = "High-performance, POSIX-ish Amazon S3 file system written in Go";
     license = [ lib.licenses.mit ];
     maintainers = [ lib.maintainers.adisbladis ];
     broken = stdenv.isDarwin; # needs to update gopsutil to at least v3.21.3 to include https://github.com/shirou/gopsutil/pull/1042
diff --git a/pkgs/tools/filesystems/grive2/default.nix b/pkgs/tools/filesystems/grive2/default.nix
index 507541b683bd8..9f6ea5acea152 100644
--- a/pkgs/tools/filesystems/grive2/default.nix
+++ b/pkgs/tools/filesystems/grive2/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libgcrypt yajl curl expat boost libiberty ];
 
   meta = with lib; {
-    description = "A console Google Drive client";
+    description = "Console Google Drive client";
     homepage = "https://github.com/vitalif/grive2";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
diff --git a/pkgs/tools/filesystems/httm/Cargo.lock b/pkgs/tools/filesystems/httm/Cargo.lock
index dd039c32b0d81..571ac1756d506 100644
--- a/pkgs/tools/filesystems/httm/Cargo.lock
+++ b/pkgs/tools/filesystems/httm/Cargo.lock
@@ -4,47 +4,87 @@ version = 3
 
 [[package]]
 name = "ahash"
-version = "0.8.3"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
+checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217"
+
+[[package]]
+name = "ahash"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
 dependencies = [
  "cfg-if",
  "once_cell",
  "version_check",
+ "zerocopy",
 ]
 
 [[package]]
 name = "aho-corasick"
-version = "0.7.20"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
-name = "android_system_properties"
-version = "0.1.5"
+name = "ansi_term"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
 dependencies = [
- "libc",
+ "winapi",
 ]
 
 [[package]]
-name = "ansi_term"
-version = "0.12.1"
+name = "anstream"
+version = "0.6.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
 dependencies = [
- "winapi",
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "utf8parse",
 ]
 
 [[package]]
-name = "arrayvec"
-version = "0.7.2"
+name = "anstyle"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
+
+[[package]]
+name = "anstyle-parse"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
+dependencies = [
+ "anstyle",
+ "windows-sys 0.52.0",
+]
 
 [[package]]
 name = "atty"
@@ -64,28 +104,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
-name = "beef"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1"
-
-[[package]]
 name = "bitflags"
 version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
-name = "bumpalo"
-version = "3.11.1"
+name = "bitflags"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
 
 [[package]]
-name = "cc"
-version = "1.0.77"
+name = "blake2"
+version = "0.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4"
+checksum = "0a4e37d16930f5459780f5621038b6382b9bb37c19016f39fb6b5808d831f174"
+dependencies = [
+ "crypto-mac",
+ "digest",
+ "opaque-debug",
+]
 
 [[package]]
 name = "cfg-if"
@@ -94,103 +133,87 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
-name = "chrono"
-version = "0.4.23"
+name = "cfg_aliases"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f"
-dependencies = [
- "iana-time-zone",
- "js-sys",
- "num-integer",
- "num-traits",
- "time 0.1.45",
- "wasm-bindgen",
- "winapi",
-]
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
 
 [[package]]
 name = "clap"
-version = "3.2.23"
+version = "2.34.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5"
+checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
 dependencies = [
+ "ansi_term",
  "atty",
- "bitflags",
- "clap_lex",
- "indexmap",
- "once_cell",
- "strsim",
- "termcolor",
+ "bitflags 1.3.2",
+ "strsim 0.8.0",
  "textwrap",
+ "unicode-width",
+ "vec_map",
+ "yaml-rust",
 ]
 
 [[package]]
-name = "clap_lex"
-version = "0.2.4"
+name = "clap"
+version = "4.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
+checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0"
 dependencies = [
- "os_str_bytes",
+ "clap_builder",
 ]
 
 [[package]]
-name = "codespan-reporting"
-version = "0.11.1"
+name = "clap_builder"
+version = "4.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
 dependencies = [
- "termcolor",
- "unicode-width",
+ "anstream",
+ "anstyle",
+ "clap_lex",
+ "strsim 0.11.1",
 ]
 
 [[package]]
-name = "console"
-version = "0.15.2"
+name = "clap_lex"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c050367d967ced717c04b65d8c619d863ef9292ce0c5760028655a2fb298718c"
-dependencies = [
- "encode_unicode",
- "lazy_static",
- "libc",
- "terminal_size 0.1.17",
- "winapi",
-]
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
 
 [[package]]
-name = "core-foundation-sys"
-version = "0.8.3"
+name = "colorchoice"
+version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 
 [[package]]
-name = "crossbeam"
-version = "0.8.2"
+name = "console"
+version = "0.15.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c"
+checksum = "c3d79fbe8970a77e3e34151cc13d3b3e248aa0faaecb9f6091fa07ebefe5ad60"
 dependencies = [
- "cfg-if",
- "crossbeam-channel",
- "crossbeam-deque",
- "crossbeam-epoch",
- "crossbeam-queue",
- "crossbeam-utils",
+ "encode_unicode",
+ "lazy_static",
+ "libc",
+ "unicode-width",
+ "windows-sys 0.42.0",
 ]
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.6"
+version = "0.5.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521"
+checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95"
 dependencies = [
- "cfg-if",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-deque"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc"
+checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
 dependencies = [
  "cfg-if",
  "crossbeam-epoch",
@@ -199,85 +222,38 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.13"
+version = "0.9.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a"
+checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695"
 dependencies = [
  "autocfg",
  "cfg-if",
  "crossbeam-utils",
- "memoffset 0.7.1",
+ "memoffset",
  "scopeguard",
 ]
 
 [[package]]
-name = "crossbeam-queue"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add"
-dependencies = [
- "cfg-if",
- "crossbeam-utils",
-]
-
-[[package]]
 name = "crossbeam-utils"
-version = "0.8.14"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f"
-dependencies = [
- "cfg-if",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
-name = "cxx"
-version = "1.0.83"
+name = "crypto-mac"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdf07d07d6531bfcdbe9b8b739b104610c6508dcc4d63b410585faf338241daf"
+checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab"
 dependencies = [
- "cc",
- "cxxbridge-flags",
- "cxxbridge-macro",
- "link-cplusplus",
-]
-
-[[package]]
-name = "cxx-build"
-version = "1.0.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2eb5b96ecdc99f72657332953d4d9c50135af1bac34277801cc3937906ebd39"
-dependencies = [
- "cc",
- "codespan-reporting",
- "once_cell",
- "proc-macro2",
- "quote",
- "scratch",
- "syn",
-]
-
-[[package]]
-name = "cxxbridge-flags"
-version = "1.0.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac040a39517fd1674e0f32177648334b0f4074625b5588a64519804ba0553b12"
-
-[[package]]
-name = "cxxbridge-macro"
-version = "1.0.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1362b0ddcfc4eb0a1f57b68bd77dd99f0e826958a96abd0ae9bd092e114ffed6"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
+ "generic-array",
+ "subtle",
 ]
 
 [[package]]
 name = "darling"
-version = "0.14.2"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0dd3cd20dc6b5a876612a6e5accfe7f3dd883db6d07acfbf14c128f61550dfa"
+checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391"
 dependencies = [
  "darling_core",
  "darling_macro",
@@ -285,68 +261,76 @@ dependencies = [
 
 [[package]]
 name = "darling_core"
-version = "0.14.2"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a784d2ccaf7c98501746bf0be29b2022ba41fd62a2e622af997a03e9f972859f"
+checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f"
 dependencies = [
  "fnv",
  "ident_case",
  "proc-macro2",
  "quote",
- "strsim",
- "syn",
+ "strsim 0.10.0",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "darling_macro"
-version = "0.14.2"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7618812407e9402654622dd402b0a89dff9ba93badd6540781526117b92aab7e"
+checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
 dependencies = [
  "darling_core",
  "quote",
- "syn",
+ "syn 2.0.48",
 ]
 
 [[package]]
-name = "defer-drop"
-version = "1.3.0"
+name = "deranged"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f613ec9fa66a6b28cdb1842b27f9adf24f39f9afc4dcdd9fdecee4aca7945c57"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
 dependencies = [
- "crossbeam-channel",
- "once_cell",
+ "powerfmt",
 ]
 
 [[package]]
 name = "derive_builder"
-version = "0.11.2"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d07adf7be193b71cc36b193d0f5fe60b918a3a9db4dad0449f57bcfd519704a3"
+checksum = "0350b5cb0331628a5916d6c5c0b72e97393b8b6b03b47a9284f4e7f5a405ffd7"
 dependencies = [
  "derive_builder_macro",
 ]
 
 [[package]]
 name = "derive_builder_core"
-version = "0.11.2"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f91d4cfa921f1c05904dc3c57b4a32c38aed3340cce209f3a6fd1478babafc4"
+checksum = "d48cda787f839151732d396ac69e3473923d54312c070ee21e9effcaa8ca0b1d"
 dependencies = [
  "darling",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "derive_builder_macro"
-version = "0.11.2"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f0314b72bed045f3a68671b3c86328386762c93f82d98c65c3cb5e5f573dd68"
+checksum = "206868b8242f27cecce124c19fd88157fbd0dd334df2587f36417bafbc85097b"
 dependencies = [
  "derive_builder_core",
- "syn",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "digest"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
+dependencies = [
+ "generic-array",
 ]
 
 [[package]]
@@ -372,9 +356,9 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.8.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
 
 [[package]]
 name = "encode_unicode"
@@ -383,33 +367,41 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
 
 [[package]]
-name = "errno"
-version = "0.2.8"
+name = "env_logger"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
+checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
 dependencies = [
- "errno-dragonfly",
- "libc",
- "winapi",
+ "atty",
+ "humantime",
+ "log",
+ "regex",
+ "termcolor",
 ]
 
 [[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
+name = "equivalent"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
 dependencies = [
- "cc",
  "libc",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "exacl"
-version = "0.10.0"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cfeb22a59deb24c3262c43ffcafd1eb807180f371f9fcc99098d181b5d639be"
+checksum = "22be12de19decddab85d09f251ec8363f060ccb22ec9c81bc157c0c8433946d8"
 dependencies = [
- "bitflags",
+ "bitflags 2.5.0",
  "log",
  "scopeguard",
  "uuid",
@@ -422,38 +414,53 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
-name = "fuzzy-matcher"
-version = "0.3.7"
+name = "fuzzy-muff"
+version = "0.3.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94"
+checksum = "d9b471332520d987f877cd86f529817c3c537b477199aa856e3b29012a4e37d2"
 dependencies = [
  "thread_local",
 ]
 
 [[package]]
+name = "generic-array"
+version = "0.14.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+dependencies = [
+ "typenum",
+ "version_check",
+]
+
+[[package]]
 name = "getrandom"
-version = "0.2.8"
+version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
+checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4"
 dependencies = [
  "cfg-if",
  "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasi",
 ]
 
 [[package]]
 name = "hashbrown"
-version = "0.12.3"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+checksum = "e91b62f79061a0bc2e046024cb7ba44b08419ed238ecbd9adbd787434b9e8c25"
+dependencies = [
+ "ahash 0.3.8",
+ "autocfg",
+ "rayon",
+]
 
 [[package]]
 name = "hashbrown"
-version = "0.13.1"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33ff8ae62cd3a9102e5637afc8452c55acf3844001bd5374e0b0bd7b6616c038"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 dependencies = [
- "ahash",
+ "ahash 0.8.11",
  "rayon",
 ]
 
@@ -467,54 +474,51 @@ dependencies = [
 ]
 
 [[package]]
+name = "home"
+version = "0.5.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "httm"
-version = "0.23.3"
+version = "0.38.1"
 dependencies = [
- "ansi_term",
- "chrono",
- "clap",
- "crossbeam",
+ "ahash 0.8.11",
+ "clap 4.5.4",
+ "crossbeam-channel",
  "exacl",
- "hashbrown 0.13.1",
- "indicatif",
+ "hashbrown 0.14.3",
+ "indicatif 0.17.8",
+ "itertools",
+ "libc",
+ "lms",
  "lscolors",
- "nix 0.26.1",
- "number_prefix",
+ "nix 0.28.0",
+ "nu-ansi-term",
+ "number_prefix 0.4.0",
  "once_cell",
  "proc-mounts",
  "rayon",
+ "realpath-ext",
  "serde",
  "serde_json",
- "simd-adler32",
- "skim",
- "terminal_size 0.2.3",
- "time 0.3.17",
+ "terminal_size",
+ "time",
+ "two_percent",
  "which",
  "xattr",
 ]
 
 [[package]]
-name = "iana-time-zone"
-version = "0.1.53"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765"
-dependencies = [
- "android_system_properties",
- "core-foundation-sys",
- "iana-time-zone-haiku",
- "js-sys",
- "wasm-bindgen",
- "winapi",
-]
-
-[[package]]
-name = "iana-time-zone-haiku"
-version = "0.1.1"
+name = "humantime"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca"
+checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
 dependencies = [
- "cxx",
- "cxx-build",
+ "quick-error",
 ]
 
 [[package]]
@@ -525,51 +529,63 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
 
 [[package]]
 name = "indexmap"
-version = "1.9.2"
+version = "2.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"
+checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
 dependencies = [
- "autocfg",
- "hashbrown 0.12.3",
+ "equivalent",
+ "hashbrown 0.14.3",
 ]
 
 [[package]]
 name = "indicatif"
-version = "0.17.2"
+version = "0.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4295cbb7573c16d310e99e713cf9e75101eb190ab31fccd35f2d2691b4352b19"
+checksum = "7baab56125e25686df467fe470785512329883aab42696d661247aca2a2896e4"
 dependencies = [
  "console",
- "number_prefix",
- "portable-atomic",
+ "lazy_static",
+ "number_prefix 0.3.0",
+ "regex",
 ]
 
 [[package]]
-name = "io-lifetimes"
-version = "1.0.3"
+name = "indicatif"
+version = "0.17.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46112a93252b123d31a119a8d1a1ac19deac4fac6e0e8b0df58f0d4e5870e63c"
+checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3"
 dependencies = [
- "libc",
- "windows-sys",
+ "console",
+ "instant",
+ "number_prefix 0.4.0",
+ "portable-atomic",
 ]
 
 [[package]]
-name = "itoa"
-version = "1.0.4"
+name = "instant"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+]
 
 [[package]]
-name = "js-sys"
-version = "0.3.60"
+name = "itertools"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
 dependencies = [
- "wasm-bindgen",
+ "either",
 ]
 
 [[package]]
+name = "itoa"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+
+[[package]]
 name = "lazy_static"
 version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -577,64 +593,60 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.138"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
-name = "link-cplusplus"
-version = "1.0.7"
+name = "linux-raw-sys"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369"
-dependencies = [
- "cc",
-]
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
 
 [[package]]
-name = "linux-raw-sys"
-version = "0.1.3"
+name = "lms"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f9f08d8963a6c613f4b1a78f4f4a4dbfadf8e6545b2d72861731e4858b8b47f"
+checksum = "164b6100e88b387adf64d289e247bebae8f77810566f58159f119d0be90ed958"
+dependencies = [
+ "bitflags 1.3.2",
+ "blake2",
+ "clap 2.34.0",
+ "env_logger",
+ "hashbrown 0.8.2",
+ "indicatif 0.15.0",
+ "lazy_static",
+ "log",
+ "rayon",
+ "seahash",
+]
 
 [[package]]
 name = "log"
-version = "0.4.17"
+version = "0.4.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if",
-]
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
 
 [[package]]
 name = "lscolors"
-version = "0.13.0"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2dedc85d67baf5327114fad78ab9418f8893b1121c17d5538dd11005ad1ddf2"
+checksum = "53304fff6ab1e597661eee37e42ea8c47a146fca280af902bb76bff8a896e523"
 dependencies = [
- "ansi_term",
  "nu-ansi-term",
 ]
 
 [[package]]
 name = "memchr"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
-
-[[package]]
-name = "memoffset"
-version = "0.6.5"
+version = "2.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
-dependencies = [
- "autocfg",
-]
+checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
 
 [[package]]
 name = "memoffset"
-version = "0.7.1"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
+checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
 dependencies = [
  "autocfg",
 ]
@@ -645,77 +657,43 @@ version = "0.24.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "cfg-if",
  "libc",
 ]
 
 [[package]]
 name = "nix"
-version = "0.25.1"
+version = "0.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
 dependencies = [
- "autocfg",
- "bitflags",
+ "bitflags 2.5.0",
  "cfg-if",
+ "cfg_aliases",
  "libc",
- "memoffset 0.6.5",
- "pin-utils",
 ]
 
 [[package]]
-name = "nix"
-version = "0.26.1"
+name = "nohash"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46a58d1d356c6597d08cde02c2f09d785b09e28711837b1ed667dc652c08a694"
-dependencies = [
- "bitflags",
- "cfg-if",
- "libc",
- "memoffset 0.7.1",
- "pin-utils",
- "static_assertions",
-]
+checksum = "a0f889fb66f7acdf83442c35775764b51fed3c606ab9cee51500dbde2cf528ca"
 
 [[package]]
 name = "nu-ansi-term"
-version = "0.46.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
-dependencies = [
- "overload",
- "winapi",
-]
-
-[[package]]
-name = "num-integer"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
-dependencies = [
- "autocfg",
- "num-traits",
-]
-
-[[package]]
-name = "num-traits"
-version = "0.2.15"
+version = "0.50.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+checksum = "dd2800e1520bdc966782168a627aa5d1ad92e33b984bf7c7615d31280c83ff14"
 dependencies = [
- "autocfg",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
-name = "num_cpus"
-version = "1.14.0"
+name = "num-conv"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5"
-dependencies = [
- "hermit-abi",
- "libc",
-]
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
 
 [[package]]
 name = "num_threads"
@@ -728,27 +706,27 @@ dependencies = [
 
 [[package]]
 name = "number_prefix"
-version = "0.4.0"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
+checksum = "17b02fc0ff9a9e4b35b3342880f48e896ebf69f2967921fe8646bf5b7125956a"
 
 [[package]]
-name = "once_cell"
-version = "1.16.0"
+name = "number_prefix"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
+checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
 
 [[package]]
-name = "os_str_bytes"
-version = "6.4.1"
+name = "once_cell"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
-name = "overload"
-version = "0.1.1"
+name = "opaque-debug"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
 
 [[package]]
 name = "partition-identity"
@@ -760,22 +738,22 @@ dependencies = [
 ]
 
 [[package]]
-name = "pin-utils"
-version = "0.1.0"
+name = "portable-atomic"
+version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+checksum = "3bccab0e7fd7cc19f820a1c8c91720af652d0c88dc9664dd72aef2614f04af3b"
 
 [[package]]
-name = "portable-atomic"
-version = "0.3.15"
+name = "powerfmt"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15eb2c6e362923af47e13c23ca5afb859e83d54452c55b0b9ac763b8f7c1ac16"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.47"
+version = "1.0.76"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725"
+checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c"
 dependencies = [
  "unicode-ident",
 ]
@@ -790,35 +768,49 @@ dependencies = [
 ]
 
 [[package]]
+name = "quick-error"
+version = "1.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+
+[[package]]
 name = "quote"
-version = "1.0.21"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
 name = "rayon"
-version = "1.6.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e060280438193c554f654141c9ea9417886713b7acd75974c85b18a69a88e0b"
+checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
 dependencies = [
- "crossbeam-deque",
  "either",
  "rayon-core",
 ]
 
 [[package]]
 name = "rayon-core"
-version = "1.10.1"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cac410af5d00ab6884528b4ab69d1e8e146e8d471201800fa1b4524126de6ad3"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
- "crossbeam-channel",
  "crossbeam-deque",
  "crossbeam-utils",
- "num_cpus",
+]
+
+[[package]]
+name = "realpath-ext"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "692f72862a0d532b44a0f4965fb10f17e7659eaedf24d2ce3c989ca778bd092f"
+dependencies = [
+ "bitflags 1.3.2",
+ "errno",
+ "libc",
 ]
 
 [[package]]
@@ -827,7 +819,7 @@ version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
 ]
 
 [[package]]
@@ -843,9 +835,21 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.7.0"
+version = "1.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -854,59 +858,72 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.6.28"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "rustix"
-version = "0.36.5"
+version = "0.38.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3807b5d10909833d3e9acd1eb5fb988f79376ff10fce42937de71a449c4c588"
+checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca"
 dependencies = [
- "bitflags",
+ "bitflags 2.5.0",
  "errno",
- "io-lifetimes",
  "libc",
  "linux-raw-sys",
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "rustversion"
-version = "1.0.9"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8"
+checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06"
 
 [[package]]
 name = "ryu"
-version = "1.0.12"
+version = "1.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
+checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
 
 [[package]]
 name = "scopeguard"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
-name = "scratch"
-version = "1.0.2"
+name = "seahash"
+version = "4.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898"
+checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
 
 [[package]]
 name = "serde"
-version = "1.0.152"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.197"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
 
 [[package]]
 name = "serde_json"
-version = "1.0.93"
+version = "1.0.115"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cad406b69c91885b5107daf2c29572f6c8cdb3c66826821e286c533490c0bc76"
+checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd"
 dependencies = [
  "indexmap",
  "itoa",
@@ -915,53 +932,45 @@ dependencies = [
 ]
 
 [[package]]
-name = "simd-adler32"
-version = "0.3.4"
+name = "strsim"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14a5df39617d7c8558154693a1bb8157a4aab8179209540cc0b10e5dc24e0b18"
+checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
 
 [[package]]
-name = "skim"
-version = "0.10.2"
-source = "git+https://github.com/kimono-koans/skim?branch=httm-vendored#00b10497101d206340919f3ae411bdc0342484e7"
-dependencies = [
- "beef",
- "bitflags",
- "chrono",
- "crossbeam",
- "defer-drop",
- "derive_builder",
- "fuzzy-matcher",
- "lazy_static",
- "log",
- "nix 0.25.1",
- "once_cell",
- "rayon",
- "regex",
- "time 0.3.17",
- "timer",
- "tuikit",
- "unicode-width",
- "vte",
-]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
-name = "static_assertions"
-version = "1.1.0"
+name = "strsim"
+version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
 
 [[package]]
-name = "strsim"
-version = "0.10.0"
+name = "subtle"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
 
 [[package]]
 name = "syn"
-version = "1.0.105"
+version = "2.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60b9b43d45702de4c839cb9b51d9f529c5dd26a4aff255b42b1ebc03e88ee908"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -981,88 +990,74 @@ dependencies = [
 
 [[package]]
 name = "termcolor"
-version = "1.1.3"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449"
 dependencies = [
  "winapi-util",
 ]
 
 [[package]]
 name = "terminal_size"
-version = "0.1.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "terminal_size"
-version = "0.2.3"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb20089a8ba2b69debd491f8d2d023761cbf196e999218c591fa1e7e15a21907"
+checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
 dependencies = [
  "rustix",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "textwrap"
-version = "0.16.0"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
+checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+dependencies = [
+ "unicode-width",
+]
 
 [[package]]
 name = "thiserror"
-version = "1.0.37"
+version = "1.0.39"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e"
+checksum = "a5ab016db510546d856297882807df8da66a16fb8c4101cb8b30054b0d5b2d9c"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.37"
+version = "1.0.39"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb"
+checksum = "5420d42e90af0c38c3290abcca25b9b3bdf379fc9f55c528f53a269d9c9a267e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.109",
 ]
 
 [[package]]
 name = "thread_local"
-version = "1.1.4"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
 dependencies = [
+ "cfg-if",
  "once_cell",
 ]
 
 [[package]]
 name = "time"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
-dependencies = [
- "libc",
- "wasi 0.10.0+wasi-snapshot-preview1",
- "winapi",
-]
-
-[[package]]
-name = "time"
-version = "0.3.17"
+version = "0.3.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376"
+checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
 dependencies = [
+ "deranged",
  "itoa",
  "libc",
+ "num-conv",
  "num_threads",
+ "powerfmt",
  "serde",
  "time-core",
  "time-macros",
@@ -1070,35 +1065,27 @@ dependencies = [
 
 [[package]]
 name = "time-core"
-version = "0.1.0"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.6"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2"
+checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
 dependencies = [
+ "num-conv",
  "time-core",
 ]
 
 [[package]]
-name = "timer"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31d42176308937165701f50638db1c31586f183f1aab416268216577aec7306b"
-dependencies = [
- "chrono",
-]
-
-[[package]]
 name = "tuikit"
 version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5e19c6ab038babee3d50c8c12ff8b910bdb2196f62278776422f50390d8e53d8"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "lazy_static",
  "log",
  "nix 0.24.3",
@@ -1107,28 +1094,64 @@ dependencies = [
 ]
 
 [[package]]
+name = "two_percent"
+version = "0.11.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "84167b95c58bc7cdd169699ab51938076616cee3a9c5c7a7292e0498361e868a"
+dependencies = [
+ "ahash 0.8.11",
+ "bitflags 2.5.0",
+ "crossbeam-channel",
+ "derive_builder",
+ "fuzzy-muff",
+ "hashbrown 0.14.3",
+ "libc",
+ "log",
+ "nohash",
+ "once_cell",
+ "rayon",
+ "regex",
+ "tuikit",
+ "unicode-width",
+ "vte",
+ "which",
+]
+
+[[package]]
+name = "typenum"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+[[package]]
 name = "unicode-ident"
-version = "1.0.5"
+version = "1.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
+checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
 
 [[package]]
 name = "unicode-width"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
 name = "utf8parse"
-version = "0.2.0"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "936e4b492acfd135421d8dca4b1aa80a7bfc26e702ef3af710e0752684df5372"
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
 name = "uuid"
-version = "1.2.2"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
+
+[[package]]
+name = "vec_map"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "422ee0de9031b5b948b97a8fc04e3aa35230001a722ddd27943e0be31564ce4c"
+checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
 
 [[package]]
 name = "version_check"
@@ -1138,11 +1161,10 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[package]]
 name = "vte"
-version = "0.11.0"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1aae21c12ad2ec2d168c236f369c38ff332bc1134f7246350dca641437365045"
+checksum = "40eb22ae96f050e0c0d6f7ce43feeae26c348fc4dea56928ca81537cfaa6188b"
 dependencies = [
- "arrayvec",
  "utf8parse",
  "vte_generate_state_changes",
 ]
@@ -1159,174 +1181,281 @@ dependencies = [
 
 [[package]]
 name = "wasi"
-version = "0.10.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
-
-[[package]]
-name = "wasi"
 version = "0.11.0+wasi-snapshot-preview1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
-name = "wasm-bindgen"
-version = "0.2.83"
+name = "which"
+version = "6.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268"
+checksum = "8211e4f58a2b2805adfbefbc07bab82958fc91e3836339b1ab7ae32465dce0d7"
 dependencies = [
- "cfg-if",
- "wasm-bindgen-macro",
+ "either",
+ "home",
+ "rustix",
+ "winsafe",
 ]
 
 [[package]]
-name = "wasm-bindgen-backend"
-version = "0.2.83"
+name = "winapi"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
 dependencies = [
- "bumpalo",
- "log",
- "once_cell",
- "proc-macro2",
- "quote",
- "syn",
- "wasm-bindgen-shared",
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
 ]
 
 [[package]]
-name = "wasm-bindgen-macro"
-version = "0.2.83"
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810"
-dependencies = [
- "quote",
- "wasm-bindgen-macro-support",
-]
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
-name = "wasm-bindgen-macro-support"
-version = "0.2.83"
+name = "winapi-util"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
 dependencies = [
- "proc-macro2",
- "quote",
- "syn",
- "wasm-bindgen-backend",
- "wasm-bindgen-shared",
+ "winapi",
 ]
 
 [[package]]
-name = "wasm-bindgen-shared"
-version = "0.2.83"
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
-name = "which"
-version = "4.3.0"
+name = "windows-sys"
+version = "0.42.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b"
+checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
 dependencies = [
- "either",
- "libc",
- "once_cell",
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
 ]
 
 [[package]]
-name = "winapi"
-version = "0.3.9"
+name = "windows-sys"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
+ "windows-targets 0.48.0",
 ]
 
 [[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
+name = "windows-sys"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.0",
+]
 
 [[package]]
-name = "winapi-util"
-version = "0.1.5"
+name = "windows-targets"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
 dependencies = [
- "winapi",
+ "windows_aarch64_gnullvm 0.48.0",
+ "windows_aarch64_msvc 0.48.0",
+ "windows_i686_gnu 0.48.0",
+ "windows_i686_msvc 0.48.0",
+ "windows_x86_64_gnu 0.48.0",
+ "windows_x86_64_gnullvm 0.48.0",
+ "windows_x86_64_msvc 0.48.0",
 ]
 
 [[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
+name = "windows-targets"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.0",
+ "windows_aarch64_msvc 0.52.0",
+ "windows_i686_gnu 0.52.0",
+ "windows_i686_msvc 0.52.0",
+ "windows_x86_64_gnu 0.52.0",
+ "windows_x86_64_gnullvm 0.52.0",
+ "windows_x86_64_msvc 0.52.0",
+]
 
 [[package]]
-name = "windows-sys"
-version = "0.42.0"
+name = "windows_aarch64_gnullvm"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
-dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
-]
+checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.42.0"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e"
+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.42.0"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4"
+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.42.0"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7"
+checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.42.0"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.42.0"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.42.0"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028"
+checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.42.0"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+
+[[package]]
+name = "winsafe"
+version = "0.0.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5"
+checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904"
 
 [[package]]
 name = "xattr"
-version = "1.0.0"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea263437ca03c1522846a4ddafbca2542d0ad5ed9b784909d4b27b76f62bc34a"
+checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
 dependencies = [
  "libc",
+ "linux-raw-sys",
+ "rustix",
+]
+
+[[package]]
+name = "yaml-rust"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e66366e18dc58b46801afbf2ca7661a9f59cc8c5962c29892b6039b4f86fa992"
+
+[[package]]
+name = "zerocopy"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
 ]
diff --git a/pkgs/tools/filesystems/httm/default.nix b/pkgs/tools/filesystems/httm/default.nix
index 3a36af72462e7..b2fd6522bc3d0 100644
--- a/pkgs/tools/filesystems/httm/default.nix
+++ b/pkgs/tools/filesystems/httm/default.nix
@@ -6,29 +6,37 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "httm";
-  version = "0.23.3";
+  version = "0.38.1";
 
   src = fetchFromGitHub {
     owner = "kimono-koans";
     repo = pname;
     rev = version;
-    hash = "sha256-yia7GEPemFVHzTkhrL7HejQsFO1zwpdUtq4DLdm4s2g=";
+    hash = "sha256-aCWhjMXLNx5/wV1HFDtyUuUfpRAxDZhI/Bk7roqZkJ8=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
-    outputHashes = {
-      "skim-0.10.2" = "sha256-5bDQZer4r9sNupIilY3afXbyFE1UB8kNsZIFOPmuyu4=";
-    };
   };
 
   nativeBuildInputs = [ installShellFiles ];
 
+  postPatch = ''
+    chmod +x scripts/*.bash
+    patchShebangs scripts/*.bash
+  '';
+
   postInstall = ''
     installManPage httm.1
 
     installShellCompletion --cmd httm \
       --zsh scripts/httm-key-bindings.zsh
+
+    for script in scripts/*.bash; do
+      install -Dm755 "$script" "$out/bin/$(basename "$script" .bash)"
+    done
+
+    install -Dm644 README.md $out/share/doc/README.md
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/filesystems/ifuse/default.nix b/pkgs/tools/filesystems/ifuse/default.nix
index 7a4d2ec6023bd..d8751f7b4eaf3 100644
--- a/pkgs/tools/filesystems/ifuse/default.nix
+++ b/pkgs/tools/filesystems/ifuse/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/libimobiledevice/ifuse";
-    description = "A fuse filesystem implementation to access the contents of iOS devices";
+    description = "Fuse filesystem implementation to access the contents of iOS devices";
     longDescription = ''
       Mount directories of an iOS device locally using fuse. By default the media
       directory is mounted, options allow to also mount the sandbox container of an
diff --git a/pkgs/tools/filesystems/ioztat/default.nix b/pkgs/tools/filesystems/ioztat/default.nix
index b5f949ad4f2c7..1763ae93c2c61 100644
--- a/pkgs/tools/filesystems/ioztat/default.nix
+++ b/pkgs/tools/filesystems/ioztat/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     inherit version;
     inherit (src.meta) homepage;
-    description = "A storage load analysis tool for OpenZFS";
+    description = "Storage load analysis tool for OpenZFS";
     longDescription = ''
       ioztat is a storage load analysis tool for OpenZFS. It provides
       iostat-like statistics at an individual dataset/zvol level.
diff --git a/pkgs/tools/filesystems/jmtpfs/default.nix b/pkgs/tools/filesystems/jmtpfs/default.nix
index 6c5dd3d30c705..5c6f4ac42b807 100644
--- a/pkgs/tools/filesystems/jmtpfs/default.nix
+++ b/pkgs/tools/filesystems/jmtpfs/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ file fuse libmtp ];
 
   meta = with lib; {
-    description = "A FUSE filesystem for MTP devices like Android phones";
+    description = "FUSE filesystem for MTP devices like Android phones";
     homepage = "https://github.com/JasonFerrara/jmtpfs";
     license = licenses.gpl3Only;
     platforms = platforms.unix;
diff --git a/pkgs/tools/filesystems/juicefs/default.nix b/pkgs/tools/filesystems/juicefs/default.nix
index 2a8cade877eb5..518a5ca55f5cc 100644
--- a/pkgs/tools/filesystems/juicefs/default.nix
+++ b/pkgs/tools/filesystems/juicefs/default.nix
@@ -33,7 +33,7 @@ buildGo121Module rec {
   '';
 
   meta = with lib; {
-    description = "A distributed POSIX file system built on top of Redis and S3";
+    description = "Distributed POSIX file system built on top of Redis and S3";
     homepage = "https://www.juicefs.com/";
     license = licenses.asl20;
     maintainers = with maintainers; [ dit7ya ];
diff --git a/pkgs/tools/filesystems/kdiskmark/default.nix b/pkgs/tools/filesystems/kdiskmark/default.nix
index fd6281a43ab6e..287ef7debc584 100644
--- a/pkgs/tools/filesystems/kdiskmark/default.nix
+++ b/pkgs/tools/filesystems/kdiskmark/default.nix
@@ -10,7 +10,7 @@
 , fetchFromGitHub
 }:
 stdenv.mkDerivation rec {
-  name = "kdiskmark";
+  pname = "kdiskmark";
   version = "3.1.4";
 
   src = fetchFromGitHub {
diff --git a/pkgs/tools/filesystems/lizardfs/default.nix b/pkgs/tools/filesystems/lizardfs/default.nix
index 7f7a9f54fd82e..2765da37189fb 100644
--- a/pkgs/tools/filesystems/lizardfs/default.nix
+++ b/pkgs/tools/filesystems/lizardfs/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://lizardfs.com";
-    description = "A highly reliable, scalable and efficient distributed file system";
+    description = "Highly reliable, scalable and efficient distributed file system";
     platforms = platforms.linux;
     license = licenses.gpl3;
     maintainers = with maintainers; [ rushmorem shamilton ];
diff --git a/pkgs/tools/filesystems/mergerfs/default.nix b/pkgs/tools/filesystems/mergerfs/default.nix
index c5dca0278ecbc..27cab657132d8 100644
--- a/pkgs/tools/filesystems/mergerfs/default.nix
+++ b/pkgs/tools/filesystems/mergerfs/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A FUSE based union filesystem";
+    description = "FUSE based union filesystem";
     homepage = "https://github.com/trapexit/mergerfs";
     license = lib.licenses.isc;
     platforms = lib.platforms.linux;
diff --git a/pkgs/tools/filesystems/mount-zip/default.nix b/pkgs/tools/filesystems/mount-zip/default.nix
index 2610a32e7e664..76e7c9ae7041a 100644
--- a/pkgs/tools/filesystems/mount-zip/default.nix
+++ b/pkgs/tools/filesystems/mount-zip/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "mount-zip";
-  version = "1.0.14";
+  version = "1.0.15";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "mount-zip";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-S2snseC9JAjYRberL2/CyRQTcZQ8GtGQNU3WuTqSRl4=";
+    hash = "sha256-7S+mZ6jejD9wCqFYfJ0mE2jCKt77S64LEAgAIV2DPqA=";
   };
 
   strictDeps = true;
diff --git a/pkgs/tools/filesystems/mtools/default.nix b/pkgs/tools/filesystems/mtools/default.nix
index 9045699e2e327..ef5eafc405081 100644
--- a/pkgs/tools/filesystems/mtools/default.nix
+++ b/pkgs/tools/filesystems/mtools/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mtools";
-  version = "4.0.43";
+  version = "4.0.44";
 
   src = fetchurl {
     url = "mirror://gnu/mtools/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-VB4XlmXcTicrlgLyB0JDWRoVfaicxHBk2oxYKdvSszk=";
+    hash = "sha256-N9xN8CJTPD1LLsHHiXPCfH6LWFN0wtRqtkxqPbMe3bg=";
   };
 
   patches = lib.optional stdenv.isDarwin ./UNUSED-darwin.patch;
diff --git a/pkgs/tools/filesystems/sandboxfs/default.nix b/pkgs/tools/filesystems/sandboxfs/default.nix
index 76eb667bceaa0..3f306a904fd84 100644
--- a/pkgs/tools/filesystems/sandboxfs/default.nix
+++ b/pkgs/tools/filesystems/sandboxfs/default.nix
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A virtual file system for sandboxing";
+    description = "Virtual file system for sandboxing";
     homepage = "https://github.com/bazelbuild/sandboxfs";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ jeremyschlatter ];
diff --git a/pkgs/tools/filesystems/smbnetfs/default.nix b/pkgs/tools/filesystems/smbnetfs/default.nix
index a42d6a48350e9..01596088505d2 100644
--- a/pkgs/tools/filesystems/smbnetfs/default.nix
+++ b/pkgs/tools/filesystems/smbnetfs/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ fuse samba glib attr libsecret ];
 
   meta = with lib; {
-    description = "A FUSE FS for mounting Samba shares";
+    description = "FUSE FS for mounting Samba shares";
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
     license = licenses.gpl2Only;
diff --git a/pkgs/tools/filesystems/snapraid/default.nix b/pkgs/tools/filesystems/snapraid/default.nix
index 89be607027f21..48a029dd1b065 100644
--- a/pkgs/tools/filesystems/snapraid/default.nix
+++ b/pkgs/tools/filesystems/snapraid/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://www.snapraid.it/";
-    description = "A backup program for disk arrays";
+    description = "Backup program for disk arrays";
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.makefu ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/tools/filesystems/supertag/default.nix b/pkgs/tools/filesystems/supertag/default.nix
index cee8ae3ead44f..9fd35935effb3 100644
--- a/pkgs/tools/filesystems/supertag/default.nix
+++ b/pkgs/tools/filesystems/supertag/default.nix
@@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A tag-based filesystem";
+    description = "Tag-based filesystem";
     longDescription = ''
       Supertag is a tag-based filesystem, written in Rust, for Linux and MacOS.
       It provides a tag-based view of your files by removing the hierarchy
diff --git a/pkgs/tools/filesystems/tar2ext4/default.nix b/pkgs/tools/filesystems/tar2ext4/default.nix
index aa1abaef4796e..287314205f54d 100644
--- a/pkgs/tools/filesystems/tar2ext4/default.nix
+++ b/pkgs/tools/filesystems/tar2ext4/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "tar2ext4";
-  version = "0.12.3";
+  version = "0.12.4";
 
   src = fetchFromGitHub {
     owner = "microsoft";
     repo = "hcsshim";
     rev = "v${version}";
-    sha256 = "sha256-xBlol+09rogbNSYM6Ok5EWb6IEfrVb+/wNMqAA3ZELU=";
+    sha256 = "sha256-aK1XZPHZSgTf6MTrJv+5SBr7FCT53VNXSTZQVnHM2GA=";
   };
 
   sourceRoot = "${src.name}/cmd/tar2ext4";
diff --git a/pkgs/tools/filesystems/tmsu/default.nix b/pkgs/tools/filesystems/tmsu/default.nix
deleted file mode 100644
index aa3057202c74e..0000000000000
--- a/pkgs/tools/filesystems/tmsu/default.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{ lib, buildGoPackage, fetchFromGitHub, installShellFiles }:
-
-buildGoPackage rec {
-  pname = "tmsu";
-  version = "0.7.5";
-  goPackagePath = "github.com/oniony/TMSU";
-
-  src = fetchFromGitHub {
-    owner = "oniony";
-    repo = "tmsu";
-    rev = "v${version}";
-    sha256 = "0834hah7p6ad81w60ifnxyh9zn09ddfgrll04kwjxwp7ypbv38wq";
-  };
-
-  goDeps = ./deps.nix;
-
-  nativeBuildInputs = [ installShellFiles ];
-
-  preBuild = ''
-    mv go/src/${goPackagePath} src
-    mv src/src/${goPackagePath} go/src/${goPackagePath}
-    export GOPATH=$PWD:$GOPATH
-  '';
-
-  postInstall = ''
-    # can't do "mv TMSU tmsu" on case-insensitive filesystems
-    mv $out/bin/{TMSU,tmsu.tmp}
-    mv $out/bin/{tmsu.tmp,tmsu}
-
-    cp src/misc/bin/* $out/bin/
-    installManPage src/misc/man/tmsu.1
-    installShellCompletion --zsh src/misc/zsh/_tmsu
-  '';
-
-  meta = with lib; {
-    homepage    = "http://www.tmsu.org";
-    description = "A tool for tagging your files using a virtual filesystem";
-    maintainers = with maintainers; [ pSub ];
-    license     = licenses.gpl3Plus;
-    platforms   = platforms.unix;
-  };
-}
diff --git a/pkgs/tools/filesystems/tmsu/deps.nix b/pkgs/tools/filesystems/tmsu/deps.nix
deleted file mode 100644
index 7dee6324b672f..0000000000000
--- a/pkgs/tools/filesystems/tmsu/deps.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "github.com/hanwen/go-fuse";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hanwen/go-fuse";
-      rev = "0f728ba15b38579efefc3dc47821882ca18ffea7";
-      sha256 = "05ymw2pp58avf19wvi0cgdzqf3d88k1jdf6ldj4hmhbkm3waqf7l";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-sqlite3";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-sqlite3";
-      rev = "98a44bcf5949f178c8116fa30e62c9ac2ef65927";
-      sha256 = "108rk74ringkkyx05zlq5khh32fsfi0przyzrpsr1r5j57xrhxj0";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "3c4aac89819a5fdc28d906456729d3423fd46969";
-      sha256 = "16q9ay6bl28zrnb377p8lvrs2nd98h7i6y3yi8ccjwzg1czbfdsi";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "1957bb5e6d1f523308b49060df02171d06ddfc77";
-      sha256 = "0imqk4l9785rw7ddvywyf8zn7k3ga6f17ky8rmf8wrri7nknr03f";
-    };
-  }
-]
diff --git a/pkgs/tools/filesystems/upspin/default.nix b/pkgs/tools/filesystems/upspin/default.nix
index 6ef087ff5387b..d0ad20a66a77e 100644
--- a/pkgs/tools/filesystems/upspin/default.nix
+++ b/pkgs/tools/filesystems/upspin/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A global name space for storing data akin to a filesystem";
+    description = "Global name space for storing data akin to a filesystem";
     homepage = "https://upspin.io";
     license = licenses.bsd3;
     maintainers = with maintainers; [ orthros ];
diff --git a/pkgs/tools/filesystems/wiimms-iso-tools/default.nix b/pkgs/tools/filesystems/wiimms-iso-tools/default.nix
index a9304b9ad0e27..59d846324b650 100644
--- a/pkgs/tools/filesystems/wiimms-iso-tools/default.nix
+++ b/pkgs/tools/filesystems/wiimms-iso-tools/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://wit.wiimm.de";
-    description = "A set of command line tools to manipulate Wii and GameCube ISO images and WBFS containers";
+    description = "Set of command line tools to manipulate Wii and GameCube ISO images and WBFS containers";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ nilp0inter ];
diff --git a/pkgs/tools/filesystems/wipefreespace/default.nix b/pkgs/tools/filesystems/wipefreespace/default.nix
index bf2ddb391c86e..7479863142486 100644
--- a/pkgs/tools/filesystems/wipefreespace/default.nix
+++ b/pkgs/tools/filesystems/wipefreespace/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A program which will securely wipe the free space";
+    description = "Program which will securely wipe the free space";
     homepage = "https://wipefreespace.sourceforge.io";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/tools/filesystems/xfsprogs/default.nix b/pkgs/tools/filesystems/xfsprogs/default.nix
index 327d1e74f7c5b..c8895c077904e 100644
--- a/pkgs/tools/filesystems/xfsprogs/default.nix
+++ b/pkgs/tools/filesystems/xfsprogs/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xfsprogs";
-  version = "6.6.0";
+  version = "6.8.0";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/fs/xfs/xfsprogs/${pname}-${version}.tar.xz";
-    hash = "sha256-UMovRnbfj6tMtMPvPdUS1VUeaETUCmWjHVuOA1k9It8=";
+    hash = "sha256-eLard27r5atS4IhKcPobNjPmSigrHs+ukfXdHZ7F8H0=";
   };
 
   outputs = [ "bin" "dev" "out" "doc" ];
diff --git a/pkgs/tools/filesystems/xtreemfs/default.nix b/pkgs/tools/filesystems/xtreemfs/default.nix
index a92369f498413..ebdfb237442db 100644
--- a/pkgs/tools/filesystems/xtreemfs/default.nix
+++ b/pkgs/tools/filesystems/xtreemfs/default.nix
@@ -106,7 +106,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "A distributed filesystem";
+    description = "Distributed filesystem";
     maintainers = with lib.maintainers; [ raskin matejc ];
     platforms = lib.platforms.linux;
     license = lib.licenses.bsd3;
diff --git a/pkgs/tools/filesystems/yandex-disk/default.nix b/pkgs/tools/filesystems/yandex-disk/default.nix
index 94907ee4fd2fd..ad3c44faf6165 100644
--- a/pkgs/tools/filesystems/yandex-disk/default.nix
+++ b/pkgs/tools/filesystems/yandex-disk/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://help.yandex.com/disk/cli-clients.xml";
-    description = "A free cloud file storage service";
+    description = "Free cloud file storage service";
     maintainers = with lib.maintainers; [ smironov jagajaga ];
     platforms = ["i686-linux" "x86_64-linux"];
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/tools/filesystems/zpool-auto-expand-partitions/default.nix b/pkgs/tools/filesystems/zpool-auto-expand-partitions/default.nix
index 8fced13e93db4..d2cf39e2a5df9 100644
--- a/pkgs/tools/filesystems/zpool-auto-expand-partitions/default.nix
+++ b/pkgs/tools/filesystems/zpool-auto-expand-partitions/default.nix
@@ -42,7 +42,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A tool that aims to expand all partitions in a specified zpool to fill the available space";
+    description = "Tool that aims to expand all partitions in a specified zpool to fill the available space";
     homepage = "https://github.com/DeterminateSystems/zpool-auto-expand-partitions";
     license = licenses.asl20;
     maintainers = teams.determinatesystems.members;
diff --git a/pkgs/tools/games/joystickwake/default.nix b/pkgs/tools/games/joystickwake/default.nix
index 6ba552c758528..85b9f2c962b66 100644
--- a/pkgs/tools/games/joystickwake/default.nix
+++ b/pkgs/tools/games/joystickwake/default.nix
@@ -18,7 +18,7 @@ python3.pkgs.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A joystick-aware screen waker";
+    description = "Joystick-aware screen waker";
     mainProgram = "joystickwake";
     longDescription = ''
       Linux gamers often find themselves unexpectedly staring at a blank screen, because their display server fails to recognize game controllers as input devices, allowing the screen blanker to activate during gameplay.
diff --git a/pkgs/tools/games/minecraft/fabric-installer/default.nix b/pkgs/tools/games/minecraft/fabric-installer/default.nix
index bbec1d40d09cb..c717d25c55def 100644
--- a/pkgs/tools/games/minecraft/fabric-installer/default.nix
+++ b/pkgs/tools/games/minecraft/fabric-installer/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://fabricmc.net/";
-    description = "A lightweight, experimental modding toolchain for Minecraft";
+    description = "Lightweight, experimental modding toolchain for Minecraft";
     mainProgram = "fabric-installer";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.asl20;
diff --git a/pkgs/tools/games/minecraft/mcaselector/default.nix b/pkgs/tools/games/minecraft/mcaselector/default.nix
index 4d8127b36265a..610a46526ad6e 100644
--- a/pkgs/tools/games/minecraft/mcaselector/default.nix
+++ b/pkgs/tools/games/minecraft/mcaselector/default.nix
@@ -8,11 +8,11 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "mcaselector";
-  version = "2.4";
+  version = "2.4.1";
 
   src = fetchurl {
     url = "https://github.com/Querz/mcaselector/releases/download/${finalAttrs.version}/mcaselector-${finalAttrs.version}.jar";
-    hash = "sha256-6WQIvDmyVVmxHFOMk2emT1a4PMGVjvtC0aSkryvwARs=";
+    hash = "sha256-4czkp7+akZEPvnYLMFGrqrhBYafDVxDo1iQZYwvaARE=";
   };
 
   dontUnpack = true;
@@ -27,16 +27,19 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
     mkdir -p $out/{bin,lib/mcaselector}
     cp $src $out/lib/mcaselector/mcaselector.jar
+
+    runHook postInstall
+  '';
+
+  preFixup = ''
     makeWrapper ${jre}/bin/java $out/bin/mcaselector \
       --add-flags "-jar $out/lib/mcaselector/mcaselector.jar" \
       ''${gappsWrapperArgs[@]}
-
-    runHook postInstall
   '';
 
   meta = with lib; {
     homepage = "https://github.com/Querz/mcaselector";
-    description = "A tool to select chunks from Minecraft worlds for deletion or export";
+    description = "Tool to select chunks from Minecraft worlds for deletion or export";
     mainProgram = "mcaselector";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.mit;
diff --git a/pkgs/tools/games/minecraft/optifine/generic.nix b/pkgs/tools/games/minecraft/optifine/generic.nix
index 3174998cb5f29..3a103c0572bad 100644
--- a/pkgs/tools/games/minecraft/optifine/generic.nix
+++ b/pkgs/tools/games/minecraft/optifine/generic.nix
@@ -29,7 +29,7 @@ runCommand "optifine-${mcVersion}" {
 
   meta = with lib; {
     homepage = "https://optifine.net/";
-    description = "A Minecraft ${mcVersion} optimization mod";
+    description = "Minecraft ${mcVersion} optimization mod";
     longDescription = ''
       OptiFine is a Minecraft optimization mod.
       It allows Minecraft to run faster and look better with full support for HD textures and many configuration options.
diff --git a/pkgs/tools/games/minecraft/packwiz/default.nix b/pkgs/tools/games/minecraft/packwiz/default.nix
index 11d4774f01503..08055ee4f335b 100644
--- a/pkgs/tools/games/minecraft/packwiz/default.nix
+++ b/pkgs/tools/games/minecraft/packwiz/default.nix
@@ -2,18 +2,20 @@
 , buildGoModule
 , fetchFromGitHub
 , installShellFiles
+, unstableGitUpdater
 }:
 
 buildGoModule {
   pname = "packwiz";
-  version = "unstable-2023-08-28";
+  version = "0-unstable-2024-05-27";
 
   src = fetchFromGitHub {
     owner = "packwiz";
     repo = "packwiz";
-    rev = "b451a9b034fd414a2a8d9b306bb8e29fb25ad245";
-    sha256 = "sha256-Ly5z+h11yyhIgzhohjk2g8hQNEPkxxag9m7XYmTMfEQ=";
+    rev = "7b4be47578151c36e784306b36d251ec2590e50c";
+    sha256 = "sha256-XBp8Xv55R8rhhsQiWnOPH8c3fCpV/yq41ozJDcGdWfs=";
   };
+  passthru.updateScript = unstableGitUpdater { };
 
   vendorHash = "sha256-yL5pWbVqf6mEpgYsItLnv8nwSmoMP+SE0rX/s7u2vCg=";
 
@@ -29,7 +31,7 @@ buildGoModule {
   '';
 
   meta = with lib; {
-    description = "A command line tool for editing and distributing Minecraft modpacks, using a git-friendly TOML format";
+    description = "Command line tool for editing and distributing Minecraft modpacks, using a git-friendly TOML format";
     homepage = "https://packwiz.infra.link/";
     license = licenses.mit;
     maintainers = with maintainers; [ infinidoge ];
diff --git a/pkgs/tools/games/mymcplus/default.nix b/pkgs/tools/games/mymcplus/default.nix
index 7a3c49fac7506..acd5a121f4d11 100644
--- a/pkgs/tools/games/mymcplus/default.nix
+++ b/pkgs/tools/games/mymcplus/default.nix
@@ -26,7 +26,7 @@ pythonPackages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://git.sr.ht/~thestr4ng3r/mymcplus";
-    description = "A PlayStation 2 memory card manager";
+    description = "PlayStation 2 memory card manager";
     mainProgram = "mymcplus";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/tools/games/opentracker/default.nix b/pkgs/tools/games/opentracker/default.nix
index d1c988876c5fb..4561a5c86436e 100644
--- a/pkgs/tools/games/opentracker/default.nix
+++ b/pkgs/tools/games/opentracker/default.nix
@@ -3,10 +3,13 @@
   stdenv,
   buildDotnetModule,
   fetchFromGitHub,
+  autoPatchelfHook,
   wrapGAppsHook3,
   dotnetCorePackages,
   fontconfig,
   gtk3,
+  icu,
+  libkrb5,
   libunwind,
   openssl,
   xinput,
@@ -39,6 +42,7 @@ buildDotnetModule rec {
   ];
 
   nativeBuildInputs = [
+    autoPatchelfHook
     wrapGAppsHook3
   ];
 
@@ -46,7 +50,10 @@ buildDotnetModule rec {
     stdenv.cc.cc.lib
     fontconfig
     gtk3
+    icu
+    libkrb5
     libunwind
+    openssl
   ];
 
   runtimeDeps =
@@ -62,8 +69,13 @@ buildDotnetModule rec {
       libXi
     ]);
 
+  autoPatchelfIgnoreMissingDeps = [
+    "libc.musl-x86_64.so.1"
+    "libintl.so.8"
+  ];
+
   meta = with lib; {
-    description = "A tracking application for A Link to the Past Randomizer";
+    description = "Tracking application for A Link to the Past Randomizer";
     homepage = "https://github.com/trippsc2/OpenTracker";
     sourceProvenance = with sourceTypes; [
       fromSource
diff --git a/pkgs/tools/games/pokefinder/default.nix b/pkgs/tools/games/pokefinder/default.nix
index 3ca5520fda15a..e4d773684343e 100644
--- a/pkgs/tools/games/pokefinder/default.nix
+++ b/pkgs/tools/games/pokefinder/default.nix
@@ -3,6 +3,7 @@
 , copyDesktopItems
 , makeDesktopItem
 , fetchFromGitHub
+, fetchpatch
 , cmake
 , python3
 , qtbase
@@ -15,17 +16,25 @@
 
 stdenv.mkDerivation rec {
   pname = "pokefinder";
-  version = "4.1.2";
+  version = "4.2.0";
 
   src = fetchFromGitHub {
     owner = "Admiral-Fish";
     repo = "PokeFinder";
     rev = "v${version}";
-    sha256 = "ps8F6IcbCNybrZ02tbLNyB3YEvKlcYgCpv5Em7Riv+Q=";
+    sha256 = "R0FrRRQRe0tWrHUoU4PPwOgIsltUEImEMTXL79ISfRE=";
     fetchSubmodules = true;
   };
 
-  patches = [ ./set-desktop-file-name.patch ];
+  patches = [
+    ./set-desktop-file-name.patch
+    # fix compatibility with our libstdc++
+    # https://github.com/Admiral-Fish/PokeFinder/pull/392
+    (fetchpatch {
+      url = "https://github.com/Admiral-Fish/PokeFinder/commit/2cb1b049cabdf0d1b32c8cf29bf6c9d9c5c55cb0.patch";
+      hash = "sha256-F/w7ydsZ5tZParMWi33W3Tv8A6LLiJt4dAoCrs40DIo=";
+    })
+  ];
 
   postPatch = ''
     patchShebangs Source/Core/Resources/
diff --git a/pkgs/tools/games/ps3-disc-dumper/default.nix b/pkgs/tools/games/ps3-disc-dumper/default.nix
index e097ebd93d2bd..18918345b2b2c 100644
--- a/pkgs/tools/games/ps3-disc-dumper/default.nix
+++ b/pkgs/tools/games/ps3-disc-dumper/default.nix
@@ -28,7 +28,7 @@ buildDotnetModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/13xforever/ps3-disc-dumper";
-    description = "A handy utility to make decrypted PS3 disc dumps";
+    description = "Handy utility to make decrypted PS3 disc dumps";
     license = licenses.mit;
     maintainers = with maintainers; [ evanjs ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/tools/games/slipstream/default.nix b/pkgs/tools/games/slipstream/default.nix
index 617bf60d60654..7be7983a2501e 100644
--- a/pkgs/tools/games/slipstream/default.nix
+++ b/pkgs/tools/games/slipstream/default.nix
@@ -40,7 +40,7 @@ mavenWithJdk.buildMavenPackage rec {
   '';
 
   meta = with lib; {
-    description = "A mod manager for FTL: Faster Than Light";
+    description = "Mod manager for FTL: Faster Than Light";
     homepage = "https://github.com/Vhati/Slipstream-Mod-Manager";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ mib ];
diff --git a/pkgs/tools/games/steam-rom-manager/default.nix b/pkgs/tools/games/steam-rom-manager/default.nix
index e146301a2b2c8..a58bcf55f34bd 100644
--- a/pkgs/tools/games/steam-rom-manager/default.nix
+++ b/pkgs/tools/games/steam-rom-manager/default.nix
@@ -2,11 +2,11 @@
 
 appimageTools.wrapType2 rec {
   name = "steam-rom-manager";
-  version = "2.4.24";
+  version = "2.5.11";
 
   src = fetchurl {
     url = "https://github.com/SteamGridDB/steam-rom-manager/releases/download/v${version}/Steam-ROM-Manager-${version}.AppImage";
-    sha256 = "sha256-mNH6ySA2bW5gEHGSJgJ8e2XkQrObQeiAWQlAp7aV688=";
+    sha256 = "sha256-KeJ1O7YZOP8l09XFIa043tEAAU6bwpvCsJQ5r5aeuQY=";
   };
 
   extraInstallCommands = let
@@ -19,7 +19,7 @@ appimageTools.wrapType2 rec {
     '';
 
   meta = with lib; {
-    description = "An app for managing ROMs in Steam";
+    description = "App for managing ROMs in Steam";
     homepage = "https://github.com/SteamGridDB/steam-rom-manager";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ squarepear ];
diff --git a/pkgs/tools/games/steamback/default.nix b/pkgs/tools/games/steamback/default.nix
index bb91fa41c618d..e7cc2c06b9109 100644
--- a/pkgs/tools/games/steamback/default.nix
+++ b/pkgs/tools/games/steamback/default.nix
@@ -57,7 +57,7 @@ buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A Decky plugin to add versioned save-game snapshots to Steam-cloud enabled games";
+    description = "Decky plugin to add versioned save-game snapshots to Steam-cloud enabled games";
     mainProgram = "steamback";
     homepage = "https://github.com/geeksville/steamback";
     license = licenses.gpl3;
diff --git a/pkgs/tools/games/ukmm/default.nix b/pkgs/tools/games/ukmm/default.nix
index f76613ed4a571..b33ecbeb3b5dc 100644
--- a/pkgs/tools/games/ukmm/default.nix
+++ b/pkgs/tools/games/ukmm/default.nix
@@ -60,7 +60,7 @@ rustPlatform.buildRustPackage rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A new mod manager for The Legend of Zelda: Breath of the Wild";
+    description = "New mod manager for The Legend of Zelda: Breath of the Wild";
     homepage = "https://github.com/NiceneNerd/ukmm";
     changelog = "https://github.com/NiceneNerd/ukmm/blob/${src.rev}/CHANGELOG.md";
     license = licenses.gpl3Plus;
diff --git a/pkgs/tools/graphics/adriconf/default.nix b/pkgs/tools/graphics/adriconf/default.nix
index 3d516f8ee113b..5085462fb4936 100644
--- a/pkgs/tools/graphics/adriconf/default.nix
+++ b/pkgs/tools/graphics/adriconf/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.freedesktop.org/mesa/adriconf/";
-    description = "A GUI tool used to configure open source graphics drivers";
+    description = "GUI tool used to configure open source graphics drivers";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ muscaln ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/graphics/apng2gif/default.nix b/pkgs/tools/graphics/apng2gif/default.nix
index d4fdd7d448c4e..5fc0e4ef1a730 100644
--- a/pkgs/tools/graphics/apng2gif/default.nix
+++ b/pkgs/tools/graphics/apng2gif/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://apng2gif.sourceforge.net/";
-    description = "A simple program that converts APNG files to animated GIF format";
+    description = "Simple program that converts APNG files to animated GIF format";
     license = licenses.zlib;
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.all;
diff --git a/pkgs/tools/graphics/astc-encoder/default.nix b/pkgs/tools/graphics/astc-encoder/default.nix
index 88df64b7d2d67..a67fdc1d3978f 100644
--- a/pkgs/tools/graphics/astc-encoder/default.nix
+++ b/pkgs/tools/graphics/astc-encoder/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://github.com/ARM-software/astc-encoder";
-    description = "An encoder for the ASTC texture compression format";
+    description = "Encoder for the ASTC texture compression format";
     longDescription = ''
       The Adaptive Scalable Texture Compression (ASTC) format is
       widely supported by mobile and desktop graphics hardware and
diff --git a/pkgs/tools/graphics/asymptote/default.nix b/pkgs/tools/graphics/asymptote/default.nix
index 4af2e3be53719..25a9ebeb18dc7 100644
--- a/pkgs/tools/graphics/asymptote/default.nix
+++ b/pkgs/tools/graphics/asymptote/default.nix
@@ -1,11 +1,10 @@
-{ lib, stdenv, fetchurl, fetchpatch
+{ lib, stdenv, fetchurl
 , autoreconfHook, bison, glm, flex, wrapQtAppsHook, cmake, pkg-config
 , freeglut, ghostscriptX, imagemagick, fftw, eigen, libtirpc
 , boehmgc, libGLU, libGL, mesa, ncurses, readline, gsl, libsigsegv
 , python3, qtbase, qtsvg, boost
 , zlib, perl, curl
 , texinfo
-, texlive
 , texliveSmall
 , darwin
 }:
@@ -127,7 +126,7 @@ stdenv.mkDerivation (finalAttrs: {
   enableParallelInstalling = false;
 
   meta = with lib; {
-    description =  "A tool for programming graphics intended to replace Metapost";
+    description =  "Tool for programming graphics intended to replace Metapost";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.raskin ];
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/pkgs/tools/graphics/deqp-runner/default.nix b/pkgs/tools/graphics/deqp-runner/default.nix
index 93ca48daaf683..7749d5fdb5c52 100644
--- a/pkgs/tools/graphics/deqp-runner/default.nix
+++ b/pkgs/tools/graphics/deqp-runner/default.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-xLtKrzjDwBxsg9YNlLQdteAkhuS1rpUbyMWdMwFTrf4=";
 
   meta = with lib; {
-    description = "A VK-GL-CTS/dEQP wrapper program to parallelize it across CPUs and report results against a baseline";
+    description = "VK-GL-CTS/dEQP wrapper program to parallelize it across CPUs and report results against a baseline";
     homepage = "https://gitlab.freedesktop.org/anholt/deqp-runner";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/tools/graphics/directx-shader-compiler/default.nix b/pkgs/tools/graphics/directx-shader-compiler/default.nix
index 1bd0293f39b50..c6c3daeab1e30 100644
--- a/pkgs/tools/graphics/directx-shader-compiler/default.nix
+++ b/pkgs/tools/graphics/directx-shader-compiler/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "directx-shader-compiler";
-  version = "1.7.2308";
+  version = "1.8.2405";
 
   # Put headers in dev, there are lot of them which aren't necessary for
   # using the compiler binary.
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     owner = "microsoft";
     repo = "DirectXShaderCompiler";
     rev = "v${version}";
-    hash = "sha256-pfdAD+kRpmqW29Y8jn6+X5Ujy/9cIvisYr0tH1PuxsY=";
+    hash = "sha256-p1sQcKWSQo0VU1JwB7J0eqT85CzNWxAMqC4HZ95NySg=";
     fetchSubmodules = true;
   };
 
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A compiler to compile HLSL programs into DXIL and SPIR-V";
+    description = "Compiler to compile HLSL programs into DXIL and SPIR-V";
     homepage = "https://github.com/microsoft/DirectXShaderCompiler";
     platforms = with platforms; linux ++ darwin;
     license = licenses.ncsa;
diff --git a/pkgs/tools/graphics/dpic/default.nix b/pkgs/tools/graphics/dpic/default.nix
index 53066ce42f8f1..ff2f7c24f8f53 100644
--- a/pkgs/tools/graphics/dpic/default.nix
+++ b/pkgs/tools/graphics/dpic/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "DESTDIR=$(out)" ];
 
   meta = with lib; {
-    description = "An implementation of the pic little language for creating drawings";
+    description = "Implementation of the pic little language for creating drawings";
     homepage = "https://ece.uwaterloo.ca/~aplevich/dpic/";
     license = licenses.bsd2;
     maintainers = with maintainers; [ aespinosa ];
diff --git a/pkgs/tools/graphics/editres/default.nix b/pkgs/tools/graphics/editres/default.nix
index ce8b2e0a4ff6a..d1da7d2c5a5f8 100644
--- a/pkgs/tools/graphics/editres/default.nix
+++ b/pkgs/tools/graphics/editres/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://cgit.freedesktop.org/xorg/app/editres/";
-    description = "A dynamic resource editor for X Toolkit applications";
+    description = "Dynamic resource editor for X Toolkit applications";
     license = licenses.mit;
     platforms = platforms.linux;
     mainProgram = "editres";
diff --git a/pkgs/tools/graphics/epstool/default.nix b/pkgs/tools/graphics/epstool/default.nix
index 85cfa563f4745..fadc5e62e2481 100644
--- a/pkgs/tools/graphics/epstool/default.nix
+++ b/pkgs/tools/graphics/epstool/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A utility to create or extract preview images in EPS files, fix bounding boxes and convert to bitmaps";
+    description = "Utility to create or extract preview images in EPS files, fix bounding boxes and convert to bitmaps";
     homepage = "http://pages.cs.wisc.edu/~ghost/gsview/epstool.htm";
     license = licenses.gpl2Only;
     maintainers = [ maintainers.asppsa ];
diff --git a/pkgs/tools/graphics/exif/default.nix b/pkgs/tools/graphics/exif/default.nix
index 437ae29a2f50b..30b0d6c10eee9 100644
--- a/pkgs/tools/graphics/exif/default.nix
+++ b/pkgs/tools/graphics/exif/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://libexif.github.io";
-    description = "A utility to read and manipulate EXIF data in digital photographs";
+    description = "Utility to read and manipulate EXIF data in digital photographs";
     platforms = platforms.unix;
     license = licenses.lgpl21Plus;
     mainProgram = "exif";
diff --git a/pkgs/tools/graphics/facedetect/default.nix b/pkgs/tools/graphics/facedetect/default.nix
index d83501d26da6f..623f9e249ff8b 100644
--- a/pkgs/tools/graphics/facedetect/default.nix
+++ b/pkgs/tools/graphics/facedetect/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.thregr.org/~wavexx/software/facedetect/";
-    description = "A simple face detector for batch processing";
+    description = "Simple face detector for batch processing";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = [ maintainers.rycee ];
diff --git a/pkgs/tools/graphics/fim/default.nix b/pkgs/tools/graphics/fim/default.nix
index 0f2e11ba59b8a..45b03319fa2aa 100644
--- a/pkgs/tools/graphics/fim/default.nix
+++ b/pkgs/tools/graphics/fim/default.nix
@@ -38,7 +38,7 @@ gcc9Stdenv.mkDerivation rec {
   env.NIX_CFLAGS_COMPILE = lib.optionalString x11Support "-lSDL";
 
   meta = with lib; {
-    description = "A lightweight, highly customizable and scriptable image viewer";
+    description = "Lightweight, highly customizable and scriptable image viewer";
     longDescription = ''
       FIM (Fbi IMproved) is a lightweight, console based image viewer that aims
       to be a highly customizable and scriptable for users who are comfortable
diff --git a/pkgs/tools/graphics/gfxreconstruct/default.nix b/pkgs/tools/graphics/gfxreconstruct/default.nix
index 6dbc039b5df29..78dabc68a61b0 100644
--- a/pkgs/tools/graphics/gfxreconstruct/default.nix
+++ b/pkgs/tools/graphics/gfxreconstruct/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gfxreconstruct";
-  version = "1.0.3";
+  version = "1.0.4";
 
   src = fetchFromGitHub {
     owner = "LunarG";
     repo = "gfxreconstruct";
     rev = "v${version}";
-    hash = "sha256-4qNAMPswsYtzHmTKr+waDLoWa9xex5hvX1Og/KibiBg=";
+    hash = "sha256-MuCdJoBFxKwDCOCltlU3oBS9elFS6F251dHjHcIb4Jg=";
     fetchSubmodules = true;
   };
 
@@ -50,10 +50,17 @@ stdenv.mkDerivation rec {
       --replace "scriptdir, '..', cmd" 'scriptdir'
   '';
 
-  # Fix the path to the layer library
+  # Fix the paths to load the layer.
+  # Also remove the .py suffix on files so that gfxrecon
+  # does not try to start the wrapper bash scripts with python.
   postInstall = ''
     substituteInPlace $out/share/vulkan/explicit_layer.d/VkLayer_gfxreconstruct.json \
       --replace 'libVkLayer_gfxreconstruct.so' "$out/lib/libVkLayer_gfxreconstruct.so"
+    for f in $out/bin/*.py; do
+      mv -- "$f" "''${f%%.py}"
+    done
+    wrapProgram $out/bin/gfxrecon-capture-vulkan \
+      --prefix VK_ADD_LAYER_PATH : "$out/share/vulkan/explicit_layer.d"
     wrapProgram $out/bin/gfxrecon-replay \
       --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ vulkan-loader ]}
   '';
@@ -61,6 +68,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Graphics API Capture and Replay Tools";
     homepage = "https://github.com/LunarG/gfxreconstruct/";
+    changelog = "https://github.com/LunarG/gfxreconstruct/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ Flakebi ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/graphics/gif2apng/default.nix b/pkgs/tools/graphics/gif2apng/default.nix
index 712dc395246ff..1a824e14a5a3e 100644
--- a/pkgs/tools/graphics/gif2apng/default.nix
+++ b/pkgs/tools/graphics/gif2apng/default.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gif2apng.sourceforge.net/";
-    description = "A simple program that converts animations from GIF to APNG format";
+    description = "Simple program that converts animations from GIF to APNG format";
     license = licenses.zlib;
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.all;
diff --git a/pkgs/tools/graphics/gifski/default.nix b/pkgs/tools/graphics/gifski/default.nix
index ba2427281528b..b95fc26e67158 100644
--- a/pkgs/tools/graphics/gifski/default.nix
+++ b/pkgs/tools/graphics/gifski/default.nix
@@ -44,11 +44,6 @@ rustPlatform.buildRustPackage rec {
   #
   checkType = "debug";
 
-  # Cargo.lock is outdated
-  postPatch = ''
-    cargo metadata --offline
-  '';
-
   meta = with lib; {
     description = "GIF encoder based on libimagequant (pngquant)";
     homepage = "https://gif.ski/";
diff --git a/pkgs/tools/graphics/gnuplot/default.nix b/pkgs/tools/graphics/gnuplot/default.nix
index 64e00642889c1..97e566b561d22 100644
--- a/pkgs/tools/graphics/gnuplot/default.nix
+++ b/pkgs/tools/graphics/gnuplot/default.nix
@@ -21,11 +21,11 @@ let
 in
 (if withQt then mkDerivation else stdenv.mkDerivation) rec {
   pname = "gnuplot";
-  version = "6.0.0";
+  version = "6.0.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/gnuplot/${pname}-${version}.tar.gz";
-    sha256 = "sha256-Y1oo8Jk/arDRF54HKtObgTnQf1Ejf4Qdk8bC/0sXWOw=";
+    sha256 = "sha256-6FpmDBoqGAj/JPfmmYH/y6xmpFydz3EbZWELJupxN5o=";
   };
 
   nativeBuildInputs = [ makeWrapper pkg-config texinfo ] ++ lib.optional withQt qttools;
@@ -76,7 +76,7 @@ in
 
   meta = with lib; {
     homepage = "http://www.gnuplot.info/";
-    description = "A portable command-line driven graphing utility for many platforms";
+    description = "Portable command-line driven graphing utility for many platforms";
     platforms = platforms.linux ++ platforms.darwin;
     license = {
       # Essentially a BSD license with one modifaction:
diff --git a/pkgs/tools/graphics/goverlay/default.nix b/pkgs/tools/graphics/goverlay/default.nix
index b73216a7875c2..01e6b80efafc1 100644
--- a/pkgs/tools/graphics/goverlay/default.nix
+++ b/pkgs/tools/graphics/goverlay/default.nix
@@ -108,7 +108,7 @@ in stdenv.mkDerivation rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "An opensource project that aims to create a Graphical UI to help manage Linux overlays";
+    description = "Opensource project that aims to create a Graphical UI to help manage Linux overlays";
     homepage = "https://github.com/benjamimgois/goverlay";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ kira-bruneau ];
diff --git a/pkgs/tools/graphics/guff/default.nix b/pkgs/tools/graphics/guff/default.nix
index 056b6b58feb44..c9043bcf82722 100644
--- a/pkgs/tools/graphics/guff/default.nix
+++ b/pkgs/tools/graphics/guff/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib;  {
-    description = "A plot device";
+    description = "Plot device";
     homepage = "https://github.com/silentbicycle/guff";
     license = licenses.isc;
     maintainers = [ ];
diff --git a/pkgs/tools/graphics/hobbits/default.nix b/pkgs/tools/graphics/hobbits/default.nix
index db0f30e846903..10d0713852bf2 100644
--- a/pkgs/tools/graphics/hobbits/default.nix
+++ b/pkgs/tools/graphics/hobbits/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isAarch64 "-Wno-error=narrowing";
 
   meta = with lib; {
-    description = "A multi-platform GUI for bit-based analysis, processing, and visualization";
+    description = "Multi-platform GUI for bit-based analysis, processing, and visualization";
     homepage = "https://github.com/Mahlet-Inc/hobbits";
     license = licenses.mit;
     maintainers = with maintainers; [ sikmir ];
diff --git a/pkgs/tools/graphics/imageworsener/default.nix b/pkgs/tools/graphics/imageworsener/default.nix
index 1da3b9f890505..bf4c4f7a9c91b 100644
--- a/pkgs/tools/graphics/imageworsener/default.nix
+++ b/pkgs/tools/graphics/imageworsener/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A raster image scaling and processing utility";
+    description = "Raster image scaling and processing utility";
     homepage = "https://entropymine.com/imageworsener/";
     changelog = "https://github.com/jsummers/${pname}/blob/${version}/changelog.txt";
     license = licenses.mit;
diff --git a/pkgs/tools/graphics/imgur-screenshot/default.nix b/pkgs/tools/graphics/imgur-screenshot/default.nix
index fe23866bda0bb..a557657143f9c 100644
--- a/pkgs/tools/graphics/imgur-screenshot/default.nix
+++ b/pkgs/tools/graphics/imgur-screenshot/default.nix
@@ -20,7 +20,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A tool for easy screencapping and uploading to imgur";
+    description = "Tool for easy screencapping and uploading to imgur";
     homepage = "https://github.com/jomo/imgur-screenshot/";
     platforms = platforms.linux;
     license = licenses.mit;
diff --git a/pkgs/tools/graphics/imgurbash2/default.nix b/pkgs/tools/graphics/imgurbash2/default.nix
index e577c8be5a3d2..aff33f6d7dc80 100644
--- a/pkgs/tools/graphics/imgurbash2/default.nix
+++ b/pkgs/tools/graphics/imgurbash2/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A shell script that uploads images to imgur";
+    description = "Shell script that uploads images to imgur";
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ abbradar ];
diff --git a/pkgs/tools/graphics/lepton/default.nix b/pkgs/tools/graphics/lepton/default.nix
index f590e7178d679..27fcca3cacbfb 100644
--- a/pkgs/tools/graphics/lepton/default.nix
+++ b/pkgs/tools/graphics/lepton/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/dropbox/lepton";
-    description = "A tool to losslessly compress JPEGs";
+    description = "Tool to losslessly compress JPEGs";
     license = licenses.asl20;
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
     maintainers = with maintainers; [ artemist ];
diff --git a/pkgs/tools/graphics/libyafaray/default.nix b/pkgs/tools/graphics/libyafaray/default.nix
index 22bbfddbcf5d4..b5c8b45fc76e2 100644
--- a/pkgs/tools/graphics/libyafaray/default.nix
+++ b/pkgs/tools/graphics/libyafaray/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   ] ++ lib.optional withPython python3;
 
   meta = with lib; {
-    description = "A free, open source raytracer";
+    description = "Free, open source raytracer";
     downloadPage = "https://github.com/YafaRay/libYafaRay";
     homepage = "http://www.yafaray.org";
     maintainers = with maintainers; [ hodapp ];
diff --git a/pkgs/tools/graphics/lsix/default.nix b/pkgs/tools/graphics/lsix/default.nix
index b054351bf9ab5..bcb3867e3a787 100644
--- a/pkgs/tools/graphics/lsix/default.nix
+++ b/pkgs/tools/graphics/lsix/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "lsix";
-  version = "1.8.2";
+  version = "1.9.1";
 
   src = fetchFromGitHub {
     owner = "hackerb9";
     repo = "lsix";
     rev = finalAttrs.version;
-    sha256 = "sha256-xlOlAfZonSo/RERt5WxPqMvppVrY5/Yhh7SgCCsYDQE=";
+    sha256 = "sha256-msTG7otjzksg/2XyPDy31LEb7uGXSgB8fzfHvad9nPA=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/graphics/maim/default.nix b/pkgs/tools/graphics/maim/default.nix
index 57c50ce728aa6..bab4395d3e7c9 100644
--- a/pkgs/tools/graphics/maim/default.nix
+++ b/pkgs/tools/graphics/maim/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     mainProgram = "maim";
     inherit (src.meta) homepage;
-    description = "A command-line screenshot utility";
+    description = "Command-line screenshot utility";
     longDescription = ''
       maim (make image) takes screenshots of your desktop. It has options to
       take only a region, and relies on slop to query for regions. maim is
diff --git a/pkgs/tools/graphics/mangohud/default.nix b/pkgs/tools/graphics/mangohud/default.nix
index fc0fc9930d786..7ca9652baafc7 100644
--- a/pkgs/tools/graphics/mangohud/default.nix
+++ b/pkgs/tools/graphics/mangohud/default.nix
@@ -4,7 +4,6 @@
 , fetchFromGitHub
 , fetchurl
 , substituteAll
-, fetchpatch
 , coreutils
 , curl
 , glxinfo
@@ -34,6 +33,7 @@
 , gamescopeSupport ? true # build mangoapp and mangohudctl
 , lowerBitnessSupport ? stdenv.hostPlatform.isx86_64 # Support 32 bit on 64bit
 , nix-update-script
+, libxkbcommon
 }:
 
 let
@@ -94,14 +94,14 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "mangohud";
-  version = "0.7.1";
+  version = "0.7.2";
 
   src = fetchFromGitHub {
     owner = "flightlessmango";
     repo = "MangoHud";
     rev = "refs/tags/v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-Gnq+1j+PFbeipAfXGnTq7wZdVQeG9R9vLAKZnZj7Bvs=";
+    hash = "sha256-cj/F/DWUDm2AHTJvHgkKa+KdIrfxPWLzI570Dp4VFhs=";
   };
 
   outputs = [ "out" "doc" "man" ];
@@ -140,13 +140,6 @@ stdenv.mkDerivation (finalAttrs: {
       libdbus = dbus.lib;
       inherit hwdata;
     })
-
-    # Add dep_vulkan to mangoapp and test_amdgpu to fix build failure
-    # TODO: Remove in next release
-    (fetchpatch {
-      url = "https://github.com/flightlessmango/MangoHud/commit/cba217ffaf93aea6acb4e59e3e46bf912f740ccf.patch";
-      hash = "sha256-1My4/EuSMpe3AFhhFOJr8rz/wnywp+BW+F4dSgxToe0=";
-    })
   ];
 
   postPatch = ''
@@ -202,6 +195,7 @@ stdenv.mkDerivation (finalAttrs: {
     glew
     glfw
     xorg.libXrandr
+    libxkbcommon
   ];
 
   doCheck = true;
@@ -237,8 +231,9 @@ stdenv.mkDerivation (finalAttrs: {
       substituteInPlace $out/share/vulkan/implicit_layer.d/MangoHud.${layerPlatform}.json \
         --replace "VK_LAYER_MANGOHUD_overlay" "VK_LAYER_MANGOHUD_overlay_${toString stdenv.hostPlatform.parsed.cpu.bits}"
     '' + ''
-      # Add OpenGL driver path to RUNPATH to support NVIDIA cards
+      # Add OpenGL driver and libXNVCtrl paths to RUNPATH to support NVIDIA cards
       addOpenGLRunpath "$out/lib/mangohud/libMangoHud.so"
+      patchelf --add-rpath ${libXNVCtrl}/lib "$out/lib/mangohud/libMangoHud.so"
     '' + lib.optionalString gamescopeSupport ''
       addOpenGLRunpath "$out/bin/mangoapp"
     '' + lib.optionalString finalAttrs.finalPackage.doCheck ''
@@ -249,7 +244,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more";
+    description = "Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more";
     homepage = "https://github.com/flightlessmango/MangoHud";
     changelog = "https://github.com/flightlessmango/MangoHud/releases/tag/v${finalAttrs.version}";
     platforms = platforms.linux;
diff --git a/pkgs/tools/graphics/mangohud/hardcode-dependencies.patch b/pkgs/tools/graphics/mangohud/hardcode-dependencies.patch
index 1c0f3a497fe6f..4b7954a3ee5e7 100644
--- a/pkgs/tools/graphics/mangohud/hardcode-dependencies.patch
+++ b/pkgs/tools/graphics/mangohud/hardcode-dependencies.patch
@@ -12,17 +12,18 @@ index 7379af1..4eef3fe 100644
          return false;
      }
 diff --git a/src/logging.cpp b/src/logging.cpp
-index ca33ee3..90d3638 100644
+index 7d4cb98..256128c 100644
 --- a/src/logging.cpp
 +++ b/src/logging.cpp
-@@ -26,7 +26,11 @@ string exec(string command) {
+@@ -27,8 +27,12 @@ string exec(string command) {
  #endif
      std::array<char, 128> buffer;
      std::string result;
 +
 +    char* originalPath = getenv("PATH");
 +    setenv("PATH", "@path@", 1);
-     std::unique_ptr<FILE, decltype(&pclose)> pipe(popen(command.c_str(), "r"), pclose);
+     auto deleter = [](FILE* ptr){ pclose(ptr); };
+     std::unique_ptr<FILE, decltype(deleter)> pipe(popen(command.c_str(), "r"), deleter);
 +    setenv("PATH", originalPath, 1);
      if (!pipe) {
        return "popen failed!";
diff --git a/pkgs/tools/graphics/maskromtool/default.nix b/pkgs/tools/graphics/maskromtool/default.nix
index b2506bfa9df8c..7be41a4105085 100644
--- a/pkgs/tools/graphics/maskromtool/default.nix
+++ b/pkgs/tools/graphics/maskromtool/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "maskromtool";
-  version = "2024-01-28";
+  version = "2024-05-19";
 
   src = fetchFromGitHub {
     owner = "travisgoodspeed";
     repo = "maskromtool";
     rev = "v${version}";
-    hash = "sha256-jYnJgZ4bn5NDSzNyhb46xnmzbF9Y59shw8y/2zmxiVM=";
+    hash = "sha256-cG1OT5sbDW7uU7t+uh7GAdabd2zRlDTan2qPxBNHJTo=";
   };
 
   buildInputs = [
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    description = "A CAD tool for extracting bits from Mask ROM photographs";
+    description = "CAD tool for extracting bits from Mask ROM photographs";
     homepage = "https://github.com/travisgoodspeed/maskromtool";
     license = [
       lib.licenses.beerware
diff --git a/pkgs/tools/graphics/nifskope/default.nix b/pkgs/tools/graphics/nifskope/default.nix
index 056b3ad8d0651..90cf811e9130c 100644
--- a/pkgs/tools/graphics/nifskope/default.nix
+++ b/pkgs/tools/graphics/nifskope/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://niftools.sourceforge.net/wiki/NifSkope";
-    description = "A tool for analyzing and editing NetImmerse/Gamebryo '*.nif' files";
+    description = "Tool for analyzing and editing NetImmerse/Gamebryo '*.nif' files";
     maintainers = with maintainers; [ eelco ];
     platforms = platforms.linux;
     license = licenses.bsd3;
diff --git a/pkgs/tools/graphics/optipng/default.nix b/pkgs/tools/graphics/optipng/default.nix
index bbabcaf6b8000..070ac7d4f9306 100644
--- a/pkgs/tools/graphics/optipng/default.nix
+++ b/pkgs/tools/graphics/optipng/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://optipng.sourceforge.net/";
-    description = "A PNG optimizer";
+    description = "PNG optimizer";
     license = licenses.zlib;
     platforms = platforms.unix;
     mainProgram = "optipng";
diff --git a/pkgs/tools/graphics/oxipng/default.nix b/pkgs/tools/graphics/oxipng/default.nix
index 4650db3e506d6..aae604f674097 100644
--- a/pkgs/tools/graphics/oxipng/default.nix
+++ b/pkgs/tools/graphics/oxipng/default.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = {
     homepage = "https://github.com/shssoichiro/oxipng";
-    description = "A multithreaded lossless PNG compression optimizer";
+    description = "Multithreaded lossless PNG compression optimizer";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ dywedir ];
     mainProgram = "oxipng";
diff --git a/pkgs/tools/graphics/pdftoipe/default.nix b/pkgs/tools/graphics/pdftoipe/default.nix
index e969d90f9e05b..62734d4e610c5 100644
--- a/pkgs/tools/graphics/pdftoipe/default.nix
+++ b/pkgs/tools/graphics/pdftoipe/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A program that tries to convert arbitrary PDF documents to Ipe files";
+    description = "Program that tries to convert arbitrary PDF documents to Ipe files";
     homepage = "https://github.com/otfried/ipe-tools";
     changelog = "https://github.com/otfried/ipe-tools/releases";
     license = licenses.gpl3Plus;
diff --git a/pkgs/tools/graphics/perceptualdiff/default.nix b/pkgs/tools/graphics/perceptualdiff/default.nix
index aa88b33aa3819..1c8f99e88e9ab 100644
--- a/pkgs/tools/graphics/perceptualdiff/default.nix
+++ b/pkgs/tools/graphics/perceptualdiff/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ freeimage ];
 
   meta = with lib; {
-    description = "A program that compares two images using a perceptually based image metric";
+    description = "Program that compares two images using a perceptually based image metric";
     homepage = "https://github.com/myint/perceptualdiff";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ uri-canva ];
diff --git a/pkgs/tools/graphics/piglit/default.nix b/pkgs/tools/graphics/piglit/default.nix
index aa076d1b84e08..8cc125e47da9a 100644
--- a/pkgs/tools/graphics/piglit/default.nix
+++ b/pkgs/tools/graphics/piglit/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An OpenGL test suite, and test-suite runner";
+    description = "OpenGL test suite, and test-suite runner";
     homepage = "https://gitlab.freedesktop.org/mesa/piglit";
     license = licenses.free; # custom license. See COPYING in the source repo.
     platforms = platforms.mesaPlatforms;
diff --git a/pkgs/tools/graphics/pikchr/default.nix b/pkgs/tools/graphics/pikchr/default.nix
index 8c3e603cae846..2910bfaad4f63 100644
--- a/pkgs/tools/graphics/pikchr/default.nix
+++ b/pkgs/tools/graphics/pikchr/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation {
   doCheck = true;
 
   meta = with lib; {
-    description = "A PIC-like markup language for diagrams in technical documentation";
+    description = "PIC-like markup language for diagrams in technical documentation";
     homepage = "https://pikchr.org";
     license = licenses.bsd0;
     maintainers = with maintainers; [ fgaz ];
diff --git a/pkgs/tools/graphics/ploticus/default.nix b/pkgs/tools/graphics/ploticus/default.nix
index e83c57aa5ca37..b9ffbe78b0bf6 100644
--- a/pkgs/tools/graphics/ploticus/default.nix
+++ b/pkgs/tools/graphics/ploticus/default.nix
@@ -79,7 +79,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A non-interactive software package for producing plots and charts";
+    description = "Non-interactive software package for producing plots and charts";
     longDescription = ''
       Ploticus is a free, GPL'd, non-interactive
       software package for producing plots, charts, and graphics from
diff --git a/pkgs/tools/graphics/pngcrush/default.nix b/pkgs/tools/graphics/pngcrush/default.nix
index 2863881b9302c..ba9911b264ed5 100644
--- a/pkgs/tools/graphics/pngcrush/default.nix
+++ b/pkgs/tools/graphics/pngcrush/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://pmt.sourceforge.net/pngcrush";
-    description = "A PNG optimizer";
+    description = "PNG optimizer";
     license = lib.licenses.free;
     platforms = with lib.platforms; linux ++ darwin;
     mainProgram = "pngcrush";
diff --git a/pkgs/tools/graphics/pngnq/default.nix b/pkgs/tools/graphics/pngnq/default.nix
index 57b83cbf9e731..fa7bd56c3e04a 100644
--- a/pkgs/tools/graphics/pngnq/default.nix
+++ b/pkgs/tools/graphics/pngnq/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://pngnq.sourceforge.net/";
-    description = "A PNG quantizer";
+    description = "PNG quantizer";
     license = licenses.bsd3;
     maintainers = with maintainers; [ pSub ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/graphics/pngout/default.nix b/pkgs/tools/graphics/pngout/default.nix
index c80d4a65adc96..41724043930c7 100644
--- a/pkgs/tools/graphics/pngout/default.nix
+++ b/pkgs/tools/graphics/pngout/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A tool that aggressively optimizes the sizes of PNG images";
+    description = "Tool that aggressively optimizes the sizes of PNG images";
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfreeRedistributable;
     homepage = "http://advsys.net/ken/utils.htm";
diff --git a/pkgs/tools/graphics/pngquant/default.nix b/pkgs/tools/graphics/pngquant/default.nix
index cdfcb4093548c..5a2dd5b300677 100644
--- a/pkgs/tools/graphics/pngquant/default.nix
+++ b/pkgs/tools/graphics/pngquant/default.nix
@@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://pngquant.org/";
-    description = "A tool to convert 24/32-bit RGBA PNGs to 8-bit palette with alpha channel preserved";
+    description = "Tool to convert 24/32-bit RGBA PNGs to 8-bit palette with alpha channel preserved";
     changelog = "https://github.com/kornelski/pngquant/raw/${version}/CHANGELOG";
     platforms = platforms.unix;
     license = with licenses; [ gpl3Plus hpnd bsd2 ];
diff --git a/pkgs/tools/graphics/quirc/default.nix b/pkgs/tools/graphics/quirc/default.nix
index aa6c0cfeb671d..12bc652cd02dc 100644
--- a/pkgs/tools/graphics/quirc/default.nix
+++ b/pkgs/tools/graphics/quirc/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A small QR code decoding library";
+    description = "Small QR code decoding library";
     license = lib.licenses.isc;
     maintainers = [ lib.maintainers.raskin ];
     platforms = lib.platforms.linux ++ [ "x86_64-darwin" "aarch64-darwin" ];
diff --git a/pkgs/tools/graphics/resvg/default.nix b/pkgs/tools/graphics/resvg/default.nix
index 0839e91f38e6a..0ec9e3de3faba 100644
--- a/pkgs/tools/graphics/resvg/default.nix
+++ b/pkgs/tools/graphics/resvg/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "resvg";
-  version = "0.41.0";
+  version = "0.42.0";
 
   src = fetchFromGitHub {
     owner = "RazrFalcon";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-plZiyEiBWeV2mwTsNK5Je8Axs/hcHH8aV2VpOix6QCY=";
+    hash = "sha256-GAP/jCWtaMVmsLGD8EosspfzemrDAIAdts1tAz+zNik=";
   };
 
-  cargoHash = "sha256-U7xzb9e9wh9XbLvlYQ0ofIjH8FuSzVcrXnrehQmZgww=";
+  cargoHash = "sha256-mRj5Hz8jY0NZSUJXFCvLswQE7H3+fkouZbNtWLP47FE=";
 
   cargoBuildFlags = [
     "--package=resvg"
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "An SVG rendering library";
+    description = "SVG rendering library";
     homepage = "https://github.com/RazrFalcon/resvg";
     changelog = "https://github.com/RazrFalcon/resvg/blob/v${version}/CHANGELOG.md";
     license = licenses.mpl20;
diff --git a/pkgs/tools/graphics/rocket/default.nix b/pkgs/tools/graphics/rocket/default.nix
index 5dcd40b4d5ec7..28f0efae7e9a3 100644
--- a/pkgs/tools/graphics/rocket/default.nix
+++ b/pkgs/tools/graphics/rocket/default.nix
@@ -22,7 +22,7 @@ mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A tool for synchronizing music and visuals in demoscene productions";
+    description = "Tool for synchronizing music and visuals in demoscene productions";
     mainProgram = "editor";
     homepage = "https://github.com/rocket/rocket";
     license = licenses.zlib;
diff --git a/pkgs/tools/graphics/sanjuuni/default.nix b/pkgs/tools/graphics/sanjuuni/default.nix
index 41cfd6f7ee575..023492cbf1cd0 100644
--- a/pkgs/tools/graphics/sanjuuni/default.nix
+++ b/pkgs/tools/graphics/sanjuuni/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/MCJack123/sanjuuni";
-    description = "A command-line tool that converts images and videos into a format that can be displayed in ComputerCraft";
+    description = "Command-line tool that converts images and videos into a format that can be displayed in ComputerCraft";
     changelog = "https://github.com/MCJack123/sanjuuni/releases/tag/${version}";
     maintainers = [ maintainers.tomodachi94 ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/tools/graphics/scrot/default.nix b/pkgs/tools/graphics/scrot/default.nix
index 7d0b1abae1b6f..d969024f2b5d8 100644
--- a/pkgs/tools/graphics/scrot/default.nix
+++ b/pkgs/tools/graphics/scrot/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "scrot";
-  version = "1.10";
+  version = "1.11.1";
 
   src = fetchFromGitHub {
     owner = "resurrecting-open-source-projects";
     repo = pname;
     rev = version;
-    sha256 = "sha256-ypPUQt3N30qUw5ecVRhwz3Hnh9lTOnbAm7o5tdxjyds=";
+    sha256 = "sha256-MUmvzZMzzKKw5GjOUhpdrMIgKO9/i9RDqDtTsSghd18=";
   };
 
   nativeBuildInputs = [
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/resurrecting-open-source-projects/scrot";
-    description = "A command-line screen capture utility";
+    description = "Command-line screen capture utility";
     mainProgram = "scrot";
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/tools/graphics/shot-scraper/default.nix b/pkgs/tools/graphics/shot-scraper/default.nix
index 0c3e8688a3f7a..f162570c341c5 100644
--- a/pkgs/tools/graphics/shot-scraper/default.nix
+++ b/pkgs/tools/graphics/shot-scraper/default.nix
@@ -30,7 +30,7 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   meta = with lib; {
-    description = "A command-line utility for taking automated screenshots of websites";
+    description = "Command-line utility for taking automated screenshots of websites";
     homepage = "https://github.com/simonw/shot-scraper";
     changelog = "https://github.com/simonw/shot-scraper/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/pkgs/tools/graphics/snapdragon-profiler/default.nix b/pkgs/tools/graphics/snapdragon-profiler/default.nix
index aa8477d5717df..a4ece4ae1ab21 100644
--- a/pkgs/tools/graphics/snapdragon-profiler/default.nix
+++ b/pkgs/tools/graphics/snapdragon-profiler/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
     cp -r * $out/lib/snapdragon-profiler
     makeWrapper "${mono}/bin/mono" $out/bin/snapdragon-profiler \
       --add-flags "$out/lib/snapdragon-profiler/SnapdragonProfiler.exe" \
-      --suffix PATH : ${lib.makeBinPath [ jre androidenv.androidPkgs_9_0.platform-tools coreutils ]} \
+      --suffix PATH : ${lib.makeBinPath [ jre androidenv.androidPkgs.platform-tools coreutils ]} \
       --prefix MONO_GAC_PREFIX : ${gtk-sharp-2_0} \
       --suffix LD_LIBRARY_PATH : $(echo $NIX_LDFLAGS | sed 's/ -L/:/g;s/ -rpath /:/g;s/-rpath //') \
       --chdir "$out/lib/snapdragon-profiler" # Fixes themes not loading correctly
diff --git a/pkgs/tools/graphics/spirv-cross/default.nix b/pkgs/tools/graphics/spirv-cross/default.nix
index 7624c10dcdcf3..aec81ac9c4063 100644
--- a/pkgs/tools/graphics/spirv-cross/default.nix
+++ b/pkgs/tools/graphics/spirv-cross/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A tool designed for parsing and converting SPIR-V to other shader languages";
+    description = "Tool designed for parsing and converting SPIR-V to other shader languages";
     homepage = "https://github.com/KhronosGroup/SPIRV-Cross";
     changelog = "https://github.com/KhronosGroup/SPIRV-Cross/releases/tag/${finalAttrs.version}";
     platforms = platforms.all;
diff --git a/pkgs/tools/graphics/stegsolve/default.nix b/pkgs/tools/graphics/stegsolve/default.nix
index a42b3c304b288..9bd8f99114d18 100644
--- a/pkgs/tools/graphics/stegsolve/default.nix
+++ b/pkgs/tools/graphics/stegsolve/default.nix
@@ -44,7 +44,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A steganographic image analyzer, solver and data extractor for challanges";
+    description = "Steganographic image analyzer, solver and data extractor for challanges";
     homepage = "https://www.wechall.net/forum/show/thread/527/Stegsolve_1.3/";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = {
diff --git a/pkgs/tools/graphics/svg2pdf/default.nix b/pkgs/tools/graphics/svg2pdf/default.nix
index 851f359fdf80c..62a3438b9bf6d 100644
--- a/pkgs/tools/graphics/svg2pdf/default.nix
+++ b/pkgs/tools/graphics/svg2pdf/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "svg2pdf";
-  version = "0.10.0";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "typst";
     repo = "svg2pdf";
     rev = "v${version}";
-    hash = "sha256-4gCEm/E7lzd6pLyJnEEswtpZ45cCxAaHMxOWMY0I2Y8=";
+    hash = "sha256-gSXztee8tly8nNhcC4QcloOAgVpenWszg12w3thzKJ8=";
   };
 
-  cargoHash = "sha256-PBnOGXV9Q9BMxhzx/xs2hXsy0wzcCvrspee6M4WxqX0=";
+  cargoHash = "sha256-PaAhTSfw+enirVg9WHBpI+GjMwHA02/SiKkRa1A6QXc=";
 
   cargoBuildFlags = [
     "-p=svg2pdf-cli"
diff --git a/pkgs/tools/graphics/timg/default.nix b/pkgs/tools/graphics/timg/default.nix
index 5811cbba25e12..3138b6daf8319 100644
--- a/pkgs/tools/graphics/timg/default.nix
+++ b/pkgs/tools/graphics/timg/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = {
-    description = "A terminal image and video viewer";
+    description = "Terminal image and video viewer";
     homepage = "https://timg.sh/";
     license = lib.licenses.gpl2Only;
     mainProgram = "timg";
diff --git a/pkgs/tools/graphics/viu/default.nix b/pkgs/tools/graphics/viu/default.nix
index 83c97376676ac..20267511fd131 100644
--- a/pkgs/tools/graphics/viu/default.nix
+++ b/pkgs/tools/graphics/viu/default.nix
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = lib.optional withSixel libsixel;
 
   meta = with lib; {
-    description = "A command-line application to view images from the terminal written in Rust";
+    description = "Command-line application to view images from the terminal written in Rust";
     homepage = "https://github.com/atanunq/viu";
     license = licenses.mit;
     maintainers = with maintainers; [ chuangzhu ];
diff --git a/pkgs/tools/graphics/vkbasalt/default.nix b/pkgs/tools/graphics/vkbasalt/default.nix
index 937166ae9f46f..261cc13bbbf3e 100644
--- a/pkgs/tools/graphics/vkbasalt/default.nix
+++ b/pkgs/tools/graphics/vkbasalt/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A Vulkan post processing layer for Linux";
+    description = "Vulkan post processing layer for Linux";
     homepage = "https://github.com/DadSchoorse/vkBasalt";
     license = licenses.zlib;
     maintainers = with maintainers; [ kira-bruneau ];
diff --git a/pkgs/tools/graphics/vkmark/default.nix b/pkgs/tools/graphics/vkmark/default.nix
index e6b72eb20702a..4d5d665570cfd 100644
--- a/pkgs/tools/graphics/vkmark/default.nix
+++ b/pkgs/tools/graphics/vkmark/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = unstableGitUpdater { };
 
   meta = with lib; {
-    description = "An extensible Vulkan benchmarking suite";
+    description = "Extensible Vulkan benchmarking suite";
     homepage = "https://github.com/vkmark/vkmark";
     license = with licenses; [ lgpl21Plus ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/graphics/vulkan-helper/default.nix b/pkgs/tools/graphics/vulkan-helper/default.nix
index 93e6d7be0f046..22fb34c8f83f6 100644
--- a/pkgs/tools/graphics/vulkan-helper/default.nix
+++ b/pkgs/tools/graphics/vulkan-helper/default.nix
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A simple CLI app used to interface with basic Vulkan APIs";
+    description = "Simple CLI app used to interface with basic Vulkan APIs";
     homepage = "https://github.com/imLinguin/vulkan-helper-rs";
     license = licenses.mit;
     maintainers = with maintainers; [ aidalgol ];
diff --git a/pkgs/tools/graphics/wavefunctioncollapse/default.nix b/pkgs/tools/graphics/wavefunctioncollapse/default.nix
index 2c7ce42724589..0aabe83542706 100644
--- a/pkgs/tools/graphics/wavefunctioncollapse/default.nix
+++ b/pkgs/tools/graphics/wavefunctioncollapse/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   '';
   buildInputs = [mono];
   meta = {
-    description = "A generator of bitmaps that are locally similar to the input bitmap";
+    description = "Generator of bitmaps that are locally similar to the input bitmap";
     license = lib.licenses.mit;
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.linux;
diff --git a/pkgs/tools/graphics/wdisplays/default.nix b/pkgs/tools/graphics/wdisplays/default.nix
index 74998fe0fb79f..baa78027648b1 100644
--- a/pkgs/tools/graphics/wdisplays/default.nix
+++ b/pkgs/tools/graphics/wdisplays/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A graphical application for configuring displays in Wayland compositors";
+    description = "Graphical application for configuring displays in Wayland compositors";
     homepage = "https://github.com/luispabon/wdisplays";
     maintainers = with maintainers; [ lheckemann ma27 ];
     license = licenses.gpl3Plus;
diff --git a/pkgs/tools/graphics/welkin/default.nix b/pkgs/tools/graphics/welkin/default.nix
index e825f5e5d2b83..a35d4c48ee37a 100644
--- a/pkgs/tools/graphics/welkin/default.nix
+++ b/pkgs/tools/graphics/welkin/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "An RDF visualizer";
+    description = "RDF visualizer";
     maintainers = with lib.maintainers; [
       raskin
     ];
diff --git a/pkgs/tools/inputmethods/evscript/default.nix b/pkgs/tools/inputmethods/evscript/default.nix
index 1de971b7cea2e..dfd170a9a33b0 100644
--- a/pkgs/tools/inputmethods/evscript/default.nix
+++ b/pkgs/tools/inputmethods/evscript/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://codeberg.org/valpackett/evscript";
-    description = "A tiny sandboxed Dyon scripting environment for evdev input devices";
+    description = "Tiny sandboxed Dyon scripting environment for evdev input devices";
     mainProgram = "evscript";
     license = licenses.unlicense;
     maintainers = with maintainers; [ milesbreslin ];
diff --git a/pkgs/tools/inputmethods/evsieve/default.nix b/pkgs/tools/inputmethods/evsieve/default.nix
index c8c6752b823db..b900b136974e2 100644
--- a/pkgs/tools/inputmethods/evsieve/default.nix
+++ b/pkgs/tools/inputmethods/evsieve/default.nix
@@ -22,7 +22,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false; # unit tests create uinput devices
 
   meta = with lib; {
-    description = "A utility for mapping events from Linux event devices";
+    description = "Utility for mapping events from Linux event devices";
     mainProgram = "evsieve";
     homepage = "https://github.com/KarsMulder/evsieve";
     license = licenses.gpl2Plus;
diff --git a/pkgs/tools/inputmethods/fcitx5/default.nix b/pkgs/tools/inputmethods/fcitx5/default.nix
index a7680189b5088..6c0c53f479dbb 100644
--- a/pkgs/tools/inputmethods/fcitx5/default.nix
+++ b/pkgs/tools/inputmethods/fcitx5/default.nix
@@ -43,13 +43,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "fcitx5";
-  version = "5.1.9";
+  version = "5.1.10";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    hash = "sha256-zapkhDM8rrZwJhaafFVsBjjkK/bRJsZqUkq9RyOqV3E=";
+    hash = "sha256-rMtCzFe3imF/uY0kXM2ivyt11r5qNTNab7GkWzdeC/g=";
   };
 
   prePatch = ''
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-bamboo.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-bamboo.nix
index b28254ea3c121..4219275fab4f7 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-bamboo.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-bamboo.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "fcitx5-bamboo";
-  version = "1.0.5";
+  version = "1.0.6";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = "fcitx5-bamboo";
     rev = finalAttrs.version;
-    hash = "sha256-vEc9z7lFqk+LPP5sTzOYgV7u+/mQY2OsaRsTrtcI/EI=";
+    hash = "sha256-lWWSk5HxWFJKoE3Rf2s4sYhTSLKDnmPCzYGR/NscqFY=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-chewing.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-chewing.nix
index 008ec44955a95..d7e03bafdb89a 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-chewing.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-chewing.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-chewing";
-  version = "5.1.3";
+  version = "5.1.5";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    hash = "sha256-1rbpCniRPP9528qCAohN1o5198vypfWmYgCx8sd+NXU=";
+    hash = "sha256-qXIcIByfgfWRe0rhetTHRyA7RqUHIP6FATwvtrfXNwQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix
index 7875e14ec399b..2ad2ef25b9d8e 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix
@@ -32,13 +32,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-chinese-addons";
-  version = "5.1.5";
+  version = "5.1.6";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    hash = "sha256-7BgwMKssP9H8hryH+6p3g66ocZQcMvAysQrxZrLI+9I=";
+    hash = "sha256-Vq7/5UBoejylXLiUIbpxZ7P3HI8+YNVDweP+uOMnCWc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix
index 7239a70ed94ba..432ee0a6e73e7 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix
@@ -29,13 +29,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-configtool";
-  version = "5.1.5";
+  version = "5.1.6";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    hash = "sha256-MMrhJwG3FApYopXys2CpavHBOm8h+wBoDN4T5e2bzH4=";
+    hash = "sha256-ZB0YH5IYYjYunsVQtFaVVBW+zkTn/bgtMEWE376IoiU=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-hangul.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-hangul.nix
index 844f9c477459d..96741f898cdaa 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-hangul.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-hangul.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-hangul";
-  version = "5.1.3";
+  version = "5.1.4";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    hash = "sha256-eaL+5wEQdEkXchKBxUhIys1qwjKLOL3awRhFgai4l1U=";
+    hash = "sha256-v5XZqsQqA74NSXTPBU77C6GFlnyC/wFFPOOYn8lqidc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix
index 26e4011034fa9..e9a042852b081 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-rime";
-  version = "5.1.6";
+  version = "5.1.8";
 
   src = fetchurl {
     url = "https://download.fcitx-im.org/fcitx5/${pname}/${pname}-${version}.tar.zst";
-    hash = "sha256-Ll0T+bgGXYbg/POJmCeDVjkTvaNuR/bxw9hQJJV+CQo=";
+    hash = "sha256-nnYk/nGbNGbl7Y39AueIltYA2fd43Gb1SmQu5VZRycM=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-skk.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-skk.nix
index 664c86f048817..6254073c8f35c 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-skk.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-skk.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-skk";
-  version = "5.1.3";
+  version = "5.1.4";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    hash = "sha256-dbgnhPkpwytPV3EiT4vvpkSucJVDPIED96snF0Eu6qQ=";
+    hash = "sha256-K+AblsG/LwE1httvRCukMEa1KEDaAUWNLUl7MWyy2ow=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix
index d5136baf4e80c..d86c55c836529 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-table-extra";
-  version = "5.1.5";
+  version = "5.1.6";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    hash = "sha256-7SZuMGUQcvKVYFdDkSOSmfO4E9mIfS5EK3+ufg5u2vk=";
+    hash = "sha256-no8TDbK88SnuLAz72QK2q2XM5bLdkGd8lkWFwreajO8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix
index 449be2318bddb..d06fa2823effb 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-table-other";
-  version = "5.1.2";
+  version = "5.1.3";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    hash = "sha256-S9no+OxCwZUfRUKdpbBBqUSeVVs8uI9otV4ndqsgaXM=";
+    hash = "sha256-hIUzVc3Bs1zGvM/+R72NigU997Wmm++ZDxnzP+YpX1w=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/inputmethods/fcitx5/with-addons.nix b/pkgs/tools/inputmethods/fcitx5/with-addons.nix
index 614074595f51a..58175eedade8b 100644
--- a/pkgs/tools/inputmethods/fcitx5/with-addons.nix
+++ b/pkgs/tools/inputmethods/fcitx5/with-addons.nix
@@ -36,13 +36,13 @@ symlinkJoin {
       wrapProgram $out/bin/fcitx5-config-qt --prefix FCITX_ADDON_DIRS : "$out/lib/fcitx5"
     ''}
 
-    desktop=share/applications/org.fcitx.Fcitx5.desktop
-    autostart=etc/xdg/autostart/org.fcitx.Fcitx5.desktop
-    rm $out/$desktop
-    rm $out/$autostart
-    cp ${fcitx5}/$desktop $out/$desktop
-    sed -i $out/$desktop -e "s|^Exec=.*|Exec=$out/bin/fcitx5|g"
-    ln -s $out/$desktop $out/$autostart
+    pushd $out
+    grep -Rl --include=\*.{desktop,service} share/applications etc/xdg/autostart share/dbus-1/services -e ${fcitx5} | while read -r file; do
+      rm $file
+      cp ${fcitx5}/$file $file
+      substituteInPlace $file --replace-fail ${fcitx5} $out
+    done
+    popd
   '';
 
   inherit (fcitx5) meta;
diff --git a/pkgs/tools/inputmethods/hime/default.nix b/pkgs/tools/inputmethods/hime/default.nix
index 685ac169e0656..e0efa104840cd 100644
--- a/pkgs/tools/inputmethods/hime/default.nix
+++ b/pkgs/tools/inputmethods/hime/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://hime-ime.github.io/";
     downloadPage = "https://github.com/hime-ime/hime/downloads";
-    description = "A useful input method engine for Asia region";
+    description = "Useful input method engine for Asia region";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ yanganto ];
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix
index 286539174a95a..d3a6a08761b74 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix
@@ -1,44 +1,35 @@
 { lib, stdenv
 , fetchFromGitHub
-, glib
-, gettext
 , xorg
 , pkg-config
 , wrapGAppsHook3
-, gtk3
 , go
 }:
 
 stdenv.mkDerivation rec {
   pname = "ibus-bamboo";
-  version = "0.8.2-rc18";
+  version = "0.8.4-rc3";
 
   src = fetchFromGitHub {
     owner = "BambooEngine";
     repo = pname;
     rev = "v" + lib.toUpper version;
-    sha256 = "sha256-5FSGPUJtUdYyeqJenvKaMIJcvon91I//62fnTCXcdig=";
+    sha256 = "sha256-P09gXuxbD4RJcXvgnRyFgSxt6NEXfpXJDPzl50ZtAxM=";
   };
 
   nativeBuildInputs = [
-    gettext
     pkg-config
     wrapGAppsHook3
     go
   ];
 
   buildInputs = [
-    glib
-    gtk3
-    xorg.libX11
-    xorg.xorgproto
     xorg.libXtst
-    xorg.libXi
   ];
 
   preConfigure = ''
     export GOCACHE="$TMPDIR/go-cache"
-    sed -i "s,/usr,$out," bamboo.xml
+    sed -i "s,/usr,$out," data/bamboo.xml
   '';
 
   makeFlags = [
@@ -48,10 +39,10 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     isIbusEngine = true;
-    description = "A Vietnamese IME for IBus";
+    description = "Vietnamese IME for IBus";
     homepage = "https://github.com/BambooEngine/ibus-bamboo";
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ superbo ];
+    maintainers = with maintainers; [ astronaut0212 ];
   };
 }
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-cangjie/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-cangjie/default.nix
index 7c59754d2e626..ac85ed7f7f286 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-cangjie/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-cangjie/default.nix
@@ -65,7 +65,7 @@ stdenv.mkDerivation {
 
   meta = {
     isIbusEngine = true;
-    description = "An IBus engine for users of the Cangjie and Quick input methods";
+    description = "IBus engine for users of the Cangjie and Quick input methods";
     mainProgram = "ibus-setup-cangjie";
     homepage = "https://github.com/Cangjians/ibus-cangjie";
     license = lib.licenses.gpl3Plus;
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
index fedcbdc4c96e2..d88c00fb79836 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     isIbusEngine = true;
-    description  = "An IBus framework for table-based input methods";
+    description  = "IBus framework for table-based input methods";
     mainProgram = "ibus-table-createdb";
     homepage     = "https://github.com/kaio/ibus-table/wiki";
     license      = licenses.lgpl21;
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix
index 8bfb1552775ee..d0581164d663c 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix
@@ -13,13 +13,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "ibus-typing-booster";
-  version = "2.25.7";
+  version = "2.25.9";
 
   src = fetchFromGitHub {
     owner = "mike-fabian";
     repo = "ibus-typing-booster";
     rev = version;
-    hash = "sha256-CZqtjiBTvnTvTf1AUd0IWINSQo4iOaJkBFT2YFsqTvI=";
+    hash = "sha256-dQifLJjgTKkFYBOJKxGXA1w97UBa0Bh56I6nRk0GVj0=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config wrapGAppsHook3 gobject-introspection ];
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://mike-fabian.github.io/ibus-typing-booster/";
     license = licenses.gpl3Plus;
-    description = "A completion input method for faster typing";
+    description = "Completion input method for faster typing";
     mainProgram = "emoji-picker";
     maintainers = with maintainers; [ ncfavier ];
     isIbusEngine = true;
diff --git a/pkgs/tools/inputmethods/ibus/default.nix b/pkgs/tools/inputmethods/ibus/default.nix
index 2acd97cbab7c8..07bc78f0920ed 100644
--- a/pkgs/tools/inputmethods/ibus/default.nix
+++ b/pkgs/tools/inputmethods/ibus/default.nix
@@ -58,13 +58,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "ibus";
-  version = "1.5.29";
+  version = "1.5.30";
 
   src = fetchFromGitHub {
     owner = "ibus";
     repo = "ibus";
     rev = version;
-    sha256 = "sha256-d4EUIg0v8rfHdvzG5USc6GLY6QHtQpIJp1PrPaaBxxE=";
+    sha256 = "sha256-VgSjeKF9DCkDfE9lHEaWpgZb6ibdgoDf/I6qeJf8Ah4=";
   };
 
   patches = [
diff --git a/pkgs/tools/inputmethods/input-remapper/default.nix b/pkgs/tools/inputmethods/input-remapper/default.nix
index eb1c9dedd38df..c90eb780e7d64 100644
--- a/pkgs/tools/inputmethods/input-remapper/default.nix
+++ b/pkgs/tools/inputmethods/input-remapper/default.nix
@@ -137,7 +137,7 @@ in
   passthru.tests = nixosTests.input-remapper;
 
   meta = with lib; {
-    description = "An easy to use tool to change the mapping of your input device buttons";
+    description = "Easy to use tool to change the mapping of your input device buttons";
     homepage = "https://github.com/sezanzeb/input-remapper";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/tools/inputmethods/interception-tools/default.nix b/pkgs/tools/inputmethods/interception-tools/default.nix
index 843584a7d443d..af77a4a703776 100644
--- a/pkgs/tools/inputmethods/interception-tools/default.nix
+++ b/pkgs/tools/inputmethods/interception-tools/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libevdev udev yaml-cpp boost ];
 
   meta = {
-    description = "A minimal composable infrastructure on top of libudev and libevdev";
+    description = "Minimal composable infrastructure on top of libudev and libevdev";
     homepage = "https://gitlab.com/interception/linux/tools";
     license = lib.licenses.gpl3Only;
     maintainers = [ lib.maintainers.vyp ];
diff --git a/pkgs/tools/inputmethods/keyd/default.nix b/pkgs/tools/inputmethods/keyd/default.nix
index a3df8d44cec8e..d74cc15254990 100644
--- a/pkgs/tools/inputmethods/keyd/default.nix
+++ b/pkgs/tools/inputmethods/keyd/default.nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation {
   passthru.tests.keyd = nixosTests.keyd;
 
   meta = with lib; {
-    description = "A key remapping daemon for Linux";
+    description = "Key remapping daemon for Linux";
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/inputmethods/keymapper/default.nix b/pkgs/tools/inputmethods/keymapper/default.nix
index 874a651b66a7c..6ed0ad69db9dd 100644
--- a/pkgs/tools/inputmethods/keymapper/default.nix
+++ b/pkgs/tools/inputmethods/keymapper/default.nix
@@ -10,18 +10,18 @@
 , wayland
 , libxkbcommon
 , gtk3
-, libappindicator
+, libayatana-appindicator
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "keymapper";
-  version = "4.3.0";
+  version = "4.4.0";
 
   src = fetchFromGitHub {
     owner = "houmain";
     repo = "keymapper";
     rev = finalAttrs.version;
-    hash = "sha256-QfISsRm0j/VoTmpDQes5XQooXHcmjqRD/WS/nvPDl00=";
+    hash = "sha256-NB9sVSkd01lm9Ia8fGrnICjD1cNdPfcvJ++Yy3NO5QQ=";
   };
 
   # all the following must be in nativeBuildInputs
@@ -35,12 +35,12 @@ stdenv.mkDerivation (finalAttrs: {
     libusb1
     libxkbcommon
     gtk3
-    libappindicator
+    libayatana-appindicator
   ];
 
   meta = {
     changelog = "https://github.com/houmain/keymapper/blob/${finalAttrs.src.rev}/CHANGELOG.md";
-    description = "A cross-platform context-aware key remapper";
+    description = "Cross-platform context-aware key remapper";
     homepage = "https://github.com/houmain/keymapper";
     license = lib.licenses.gpl3Only;
     mainProgram = "keymapper";
diff --git a/pkgs/tools/inputmethods/nabi/default.nix b/pkgs/tools/inputmethods/nabi/default.nix
index 62bb10494b130..248538752d685 100644
--- a/pkgs/tools/inputmethods/nabi/default.nix
+++ b/pkgs/tools/inputmethods/nabi/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ gtk2 libhangul ];
 
   meta = with lib; {
-    description = "The Easy Hangul XIM";
+    description = "Easy Hangul XIM";
     mainProgram = "nabi";
     homepage = "https://github.com/choehwanjin/nabi";
     license = licenses.gpl2Plus;
diff --git a/pkgs/tools/inputmethods/skk/skk-dicts/default.nix b/pkgs/tools/inputmethods/skk/skk-dicts/default.nix
index da6074a96a302..7b224cb7d2855 100644
--- a/pkgs/tools/inputmethods/skk/skk-dicts/default.nix
+++ b/pkgs/tools/inputmethods/skk/skk-dicts/default.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A collection of standard SKK dictionaries";
+    description = "Collection of standard SKK dictionaries";
     longDescription = ''
       This package provides a collection of standard kana-to-kanji
       dictionaries for the SKK Japanese input method.
diff --git a/pkgs/tools/inputmethods/skk/skktools/default.nix b/pkgs/tools/inputmethods/skk/skktools/default.nix
index 130c27090a486..537c77a1394e5 100644
--- a/pkgs/tools/inputmethods/skk/skktools/default.nix
+++ b/pkgs/tools/inputmethods/skk/skktools/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ gdbm glib ];
 
   meta = {
-    description = "A collection of tools to edit SKK dictionaries";
+    description = "Collection of tools to edit SKK dictionaries";
     longDescription = ''
       This package provides a collection of tools to manipulate
       (merge, sort etc.) the dictionaries formatted for SKK Japanese
diff --git a/pkgs/tools/inputmethods/triggerhappy/default.nix b/pkgs/tools/inputmethods/triggerhappy/default.nix
index 73df87a8262e2..d35a6ebf072fb 100644
--- a/pkgs/tools/inputmethods/triggerhappy/default.nix
+++ b/pkgs/tools/inputmethods/triggerhappy/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A lightweight hotkey daemon";
+    description = "Lightweight hotkey daemon";
     longDescription = ''
       Triggerhappy is a hotkey daemon developed with small and embedded systems in
       mind, e.g. linux based routers. It attaches to the input device files and
diff --git a/pkgs/tools/inputmethods/uim/default.nix b/pkgs/tools/inputmethods/uim/default.nix
index df1793eb36ffc..be720c6ce2341 100644
--- a/pkgs/tools/inputmethods/uim/default.nix
+++ b/pkgs/tools/inputmethods/uim/default.nix
@@ -140,7 +140,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage    = src.meta.homepage;
-    description = "A multilingual input method framework";
+    description = "Multilingual input method framework";
     license     = licenses.bsd3;
     platforms   = platforms.unix;
     maintainers = with maintainers; [ ericsagnes oxij ];
diff --git a/pkgs/tools/llm/heygpt/default.nix b/pkgs/tools/llm/heygpt/default.nix
index eb2c7e4b11b45..f65dc392a2be1 100644
--- a/pkgs/tools/llm/heygpt/default.nix
+++ b/pkgs/tools/llm/heygpt/default.nix
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   OPENSSL_DIR = "${lib.getDev openssl}";
 
   meta = with lib; {
-    description = "A simple command-line interface for ChatGPT API";
+    description = "Simple command-line interface for ChatGPT API";
     homepage = "https://github.com/fuyufjh/heygpt";
     license = licenses.mit;
     mainProgram = "heygpt";
diff --git a/pkgs/tools/misc/0x/default.nix b/pkgs/tools/misc/0x/default.nix
index 2f1493d23452e..c5adee2a19467 100644
--- a/pkgs/tools/misc/0x/default.nix
+++ b/pkgs/tools/misc/0x/default.nix
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage {
 
   meta = with lib; {
     homepage = "https://github.com/mcy/0x";
-    description = "A colorful, configurable xxd";
+    description = "Colorful, configurable xxd";
     mainProgram = "0x";
     license = licenses.asl20;
     maintainers = with maintainers; [ AndersonTorres ];
diff --git a/pkgs/tools/misc/addic7ed-cli/default.nix b/pkgs/tools/misc/addic7ed-cli/default.nix
index d335cfb1d737b..9d5fef14bf253 100644
--- a/pkgs/tools/misc/addic7ed-cli/default.nix
+++ b/pkgs/tools/misc/addic7ed-cli/default.nix
@@ -22,7 +22,7 @@ python3Packages.buildPythonApplication rec {
   pythonImportsCheck = [ "addic7ed_cli" ];
 
   meta = with lib; {
-    description = "A commandline access to addic7ed subtitles";
+    description = "Commandline access to addic7ed subtitles";
     homepage = "https://github.com/BenoitZugmeyer/addic7ed-cli";
     license = licenses.mit;
     maintainers = with maintainers; [ aethelz ];
diff --git a/pkgs/tools/misc/adrgen/default.nix b/pkgs/tools/misc/adrgen/default.nix
index 4a367062cafa9..979d1878035d3 100644
--- a/pkgs/tools/misc/adrgen/default.nix
+++ b/pkgs/tools/misc/adrgen/default.nix
@@ -36,7 +36,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/asiermarques/adrgen";
-    description = "A command-line tool for generating and managing Architecture Decision Records";
+    description = "Command-line tool for generating and managing Architecture Decision Records";
     license = licenses.mit;
     maintainers = [ maintainers.ivar ];
     mainProgram = "adrgen";
diff --git a/pkgs/tools/misc/afetch/default.nix b/pkgs/tools/misc/afetch/default.nix
index 9b8fe7e4e0916..9413666372df3 100644
--- a/pkgs/tools/misc/afetch/default.nix
+++ b/pkgs/tools/misc/afetch/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A fetch program written in C";
+    description = "Fetch program written in C";
     homepage = "https://github.com/13-CF/afetch";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dan4ik605743 jk ];
diff --git a/pkgs/tools/misc/agedu/default.nix b/pkgs/tools/misc/agedu/default.nix
index d8b2c1a2c5ca7..d01e6aab141c1 100644
--- a/pkgs/tools/misc/agedu/default.nix
+++ b/pkgs/tools/misc/agedu/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ cmake halibut ];
 
   meta = with lib; {
-    description = "A Unix utility for tracking down wasted disk space";
+    description = "Unix utility for tracking down wasted disk space";
     longDescription = ''
        Most Unix file systems, in their default mode, helpfully record when a
        file was last accessed. So if you generated a large amount of data years
diff --git a/pkgs/tools/misc/aichat/default.nix b/pkgs/tools/misc/aichat/default.nix
index a3b7307290eea..975fb995bb87d 100644
--- a/pkgs/tools/misc/aichat/default.nix
+++ b/pkgs/tools/misc/aichat/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "aichat";
-  version = "0.17.0";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "sigoden";
     repo = "aichat";
     rev = "v${version}";
-    hash = "sha256-muRUBBmhXtIbKvMzBISjoHFSOtYci6x9nQI/bUiEHrs=";
+    hash = "sha256-V7WKzi9PKSek8DlF7QzBEaYn3a+BJzMtKEoi5yMGS/w=";
   };
 
-  cargoHash = "sha256-RKyZOfjweSE83hAjBIve38CT9R2DomwW3qA8ezw6dCI=";
+  cargoHash = "sha256-sFRYu1sQ9PdjsBTgajMfvJqA32Q8HZCHs3h2wemb9oY=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/tools/misc/alarm-clock-applet/default.nix b/pkgs/tools/misc/alarm-clock-applet/default.nix
index 85feb80700e6e..c73d2b758cd5e 100644
--- a/pkgs/tools/misc/alarm-clock-applet/default.nix
+++ b/pkgs/tools/misc/alarm-clock-applet/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A fully-featured alarm clock with an indicator";
+    description = "Fully-featured alarm clock with an indicator";
     homepage = "https://alarm-clock-applet.github.io";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ aleksana ];
diff --git a/pkgs/tools/misc/apkeep/default.nix b/pkgs/tools/misc/apkeep/default.nix
index 2b52ab1d788a3..5bc0aec88cb29 100644
--- a/pkgs/tools/misc/apkeep/default.nix
+++ b/pkgs/tools/misc/apkeep/default.nix
@@ -35,7 +35,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A command-line tool for downloading APK files from various sources";
+    description = "Command-line tool for downloading APK files from various sources";
     homepage = "https://github.com/EFForg/apkeep";
     changelog = "https://github.com/EFForg/apkeep/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/tools/misc/archi/update.sh b/pkgs/tools/misc/archi/update.sh
index 07d488637945b..d405a188d3d09 100755
--- a/pkgs/tools/misc/archi/update.sh
+++ b/pkgs/tools/misc/archi/update.sh
@@ -21,6 +21,5 @@ do
     prefetch=$(nix-prefetch-url https://www.archimatetool.com/downloads/archi/$latestVersion/$2)
     hash=$(nix-hash --type sha256 --to-sri $prefetch)
 
-    update-source-version archi 0 "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" --system=$1
-    update-source-version archi $latestVersion $hash --system=$1
+    update-source-version archi $latestVersion $hash --system=$1 --ignore-same-version
 done
diff --git a/pkgs/tools/misc/asciinema-agg/default.nix b/pkgs/tools/misc/asciinema-agg/default.nix
index 3b530eb28f6f9..238a5c8af0736 100644
--- a/pkgs/tools/misc/asciinema-agg/default.nix
+++ b/pkgs/tools/misc/asciinema-agg/default.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A command-line tool for generating animated GIF files from asciicast v2 files produced by asciinema terminal recorder";
+    description = "Command-line tool for generating animated GIF files from asciicast v2 files produced by asciinema terminal recorder";
     homepage = "https://github.com/asciinema/agg";
     changelog = "https://github.com/asciinema/agg/releases/tag/${src.rev}";
     license = licenses.asl20;
diff --git a/pkgs/tools/misc/askalono/default.nix b/pkgs/tools/misc/askalono/default.nix
index 3b9a0c9633e9f..a15d4d08aae8a 100644
--- a/pkgs/tools/misc/askalono/default.nix
+++ b/pkgs/tools/misc/askalono/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-OkN8V37GApJvremRJlWG3HSpWgMC17Ge8JMTiQVoc/g=";
 
   meta = with lib; {
-    description = "A tool to detect open source licenses from texts";
+    description = "Tool to detect open source licenses from texts";
     homepage = "https://github.com/jpeddicord/askalono";
     changelog = "https://github.com/jpeddicord/askalono/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/tools/misc/astronomer/default.nix b/pkgs/tools/misc/astronomer/default.nix
index fb10f428967b6..77b30afa05290 100644
--- a/pkgs/tools/misc/astronomer/default.nix
+++ b/pkgs/tools/misc/astronomer/default.nix
@@ -19,7 +19,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "A tool to detect illegitimate stars from bot accounts on GitHub projects";
+    description = "Tool to detect illegitimate stars from bot accounts on GitHub projects";
     homepage = "https://github.com/Ullaakut/astronomer";
     changelog = "https://github.com/Ullaakut/astronomer/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/tools/misc/autojump/default.nix b/pkgs/tools/misc/autojump/default.nix
index 977e339d7ef55..8305c82937ebd 100644
--- a/pkgs/tools/misc/autojump/default.nix
+++ b/pkgs/tools/misc/autojump/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A `cd' command that learns";
+    description = "`cd' command that learns";
     mainProgram = "autojump";
     longDescription = ''
       One of the most used shell commands is “cd”.  A quick survey
diff --git a/pkgs/tools/misc/backdown/default.nix b/pkgs/tools/misc/backdown/default.nix
index e578b1ab4295d..f75388ea8677d 100644
--- a/pkgs/tools/misc/backdown/default.nix
+++ b/pkgs/tools/misc/backdown/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-BOwhXq/xVuk3KylL3KeIkiIG3SXVASFiYkUgKJhMzuU=";
 
   meta = with lib; {
-    description = "A file deduplicator";
+    description = "File deduplicator";
     homepage = "https://github.com/Canop/backdown";
     changelog = "https://github.com/Canop/backdown/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/tools/misc/bartib/default.nix b/pkgs/tools/misc/bartib/default.nix
index 0719f8a168bba..43921e337131d 100644
--- a/pkgs/tools/misc/bartib/default.nix
+++ b/pkgs/tools/misc/bartib/default.nix
@@ -12,9 +12,6 @@ rustPlatform.buildRustPackage rec {
   };
 
   cargoSha256 = "sha256-s/oGv7/0LgNpdGu6dnvvbxDgFDvcvcHL01dSPxhMVWE=";
-  preConfigure = ''
-    cargo metadata --offline
-  '';
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -23,7 +20,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A simple timetracker for the command line";
+    description = "Simple timetracker for the command line";
     homepage = "https://github.com/nikolassv/bartib";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ figsoda ];
diff --git a/pkgs/tools/misc/bbe/default.nix b/pkgs/tools/misc/bbe/default.nix
index 58d099da4b06d..519c272902b4a 100644
--- a/pkgs/tools/misc/bbe/default.nix
+++ b/pkgs/tools/misc/bbe/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "doc" ];
 
   meta = with lib; {
-    description = "A sed-like editor for binary files";
+    description = "Sed-like editor for binary files";
     homepage = "https://bbe-.sourceforge.net/";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
diff --git a/pkgs/tools/misc/bdf2psf/default.nix b/pkgs/tools/misc/bdf2psf/default.nix
index 41caab53e2fea..9bfc1f0beb0e4 100644
--- a/pkgs/tools/misc/bdf2psf/default.nix
+++ b/pkgs/tools/misc/bdf2psf/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bdf2psf";
-  version = "1.226";
+  version = "1.227";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/c/console-setup/bdf2psf_${version}_all.deb";
-    sha256 = "sha256-MLNLeCgBzp2awt9ZJM2kaCWQhRnC6sSwm1fHlv3EwHo=";
+    sha256 = "sha256-EJnxgz+ZKMtl6eIpIPYdXeMAnV/gydgklC/7yG2THpM=";
   };
 
   nativeBuildInputs = [ dpkg ];
diff --git a/pkgs/tools/misc/betterdiscordctl/default.nix b/pkgs/tools/misc/betterdiscordctl/default.nix
index c2c935c0d9814..c1030db7a7a37 100644
--- a/pkgs/tools/misc/betterdiscordctl/default.nix
+++ b/pkgs/tools/misc/betterdiscordctl/default.nix
@@ -34,7 +34,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/bb010g/betterdiscordctl";
-    description = "A utility for managing BetterDiscord on Linux";
+    description = "Utility for managing BetterDiscord on Linux";
     license = licenses.mit;
     mainProgram = "betterdiscordctl";
     maintainers = with maintainers; [ ivar bb010g ];
diff --git a/pkgs/tools/misc/bfetch/default.nix b/pkgs/tools/misc/bfetch/default.nix
index 2d678da532332..687b3c1280167 100644
--- a/pkgs/tools/misc/bfetch/default.nix
+++ b/pkgs/tools/misc/bfetch/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "A SuperB general-purpose fetch displayer written in portable sh";
+    description = "SuperB general-purpose fetch displayer written in portable sh";
     homepage = "https://github.com/NNBnh/bfetch";
     license = licenses.gpl3Only;
     platforms = platforms.all;
diff --git a/pkgs/tools/misc/bfr/default.nix b/pkgs/tools/misc/bfr/default.nix
index 60905d95e57dd..6d67d4d206772 100644
--- a/pkgs/tools/misc/bfr/default.nix
+++ b/pkgs/tools/misc/bfr/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ perl ];
 
   meta = with lib; {
-    description = "A general-purpose command-line pipe buffer";
+    description = "General-purpose command-line pipe buffer";
     license = lib.licenses.gpl2Only;
     maintainers = with maintainers; [ pSub ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/misc/bibtex2html/default.nix b/pkgs/tools/misc/bibtex2html/default.nix
index ba73de533af96..2af4aaa081283 100644
--- a/pkgs/tools/misc/bibtex2html/default.nix
+++ b/pkgs/tools/misc/bibtex2html/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ ocaml perl ];
 
   meta = with lib; {
-    description = "A collection of tools for translating from BibTeX to HTML";
+    description = "Collection of tools for translating from BibTeX to HTML";
     homepage = "https://www.lri.fr/~filliatr/bibtex2html/";
     license = licenses.gpl2Only;
     platforms = ocaml.meta.platforms or [];
diff --git a/pkgs/tools/misc/bkt/default.nix b/pkgs/tools/misc/bkt/default.nix
index beef0b8412ca2..5f6053ec9de96 100644
--- a/pkgs/tools/misc/bkt/default.nix
+++ b/pkgs/tools/misc/bkt/default.nix
@@ -16,7 +16,7 @@
   cargoHash = "sha256-Pl+a+ZpxaguRloH8R7x4FmYpTwTUwFrYy7AS/5K3L+8=";
 
   meta = {
-    description = "A subprocess caching utility";
+    description = "Subprocess caching utility";
     homepage = "https://github.com/dimo414/bkt";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.mangoiv ];
diff --git a/pkgs/tools/misc/bkyml/default.nix b/pkgs/tools/misc/bkyml/default.nix
index 8b930e960e246..cfd996f608913 100644
--- a/pkgs/tools/misc/bkyml/default.nix
+++ b/pkgs/tools/misc/bkyml/default.nix
@@ -39,7 +39,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/joscha/bkyml";
-    description = "A CLI tool to generate a pipeline.yaml file for Buildkite on the fly";
+    description = "CLI tool to generate a pipeline.yaml file for Buildkite on the fly";
     license = licenses.mit;
     maintainers = with maintainers; [ olebedev ];
   };
diff --git a/pkgs/tools/misc/blflash/default.nix b/pkgs/tools/misc/blflash/default.nix
index 36c1712a6e579..36bdca12de874 100644
--- a/pkgs/tools/misc/blflash/default.nix
+++ b/pkgs/tools/misc/blflash/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-NRBW2rGrtEmmxONTpCM1D+o5HtnLjp175Sq9+aCp7ZE=";
 
   meta = with lib; {
-    description = "An bl602 serial flasher written in Rust";
+    description = "Bl602 serial flasher written in Rust";
     homepage = "https://github.com/spacemeowx2/blflash";
     license = with licenses; [ mit asl20 ];
     maintainers = with maintainers; [ _0x4A6F ];
diff --git a/pkgs/tools/misc/bonk/default.nix b/pkgs/tools/misc/bonk/default.nix
index cfd815d66b316..b4a65329dc96f 100644
--- a/pkgs/tools/misc/bonk/default.nix
+++ b/pkgs/tools/misc/bonk/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-/qBuIG5ETUWMv2iOGpW3/awuhZb35qsBAflNJv3xTUs=";
 
   meta = {
-    description = "The blazingly fast touch alternative written in Rust";
+    description = "Blazingly fast touch alternative written in Rust";
     homepage = "https://github.com/elliot40404/bonk";
     license = lib.licenses.mit;
     mainProgram = "bonk";
diff --git a/pkgs/tools/misc/broot/default.nix b/pkgs/tools/misc/broot/default.nix
index fc1d076c1ad69..5fda81cf80b4b 100644
--- a/pkgs/tools/misc/broot/default.nix
+++ b/pkgs/tools/misc/broot/default.nix
@@ -13,21 +13,22 @@
 , xorg
 , zlib
 , buildPackages
-, withClipboard ? false
+, withClipboard ? !stdenv.isDarwin
+, withTrash ? !stdenv.isDarwin
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "broot";
-  version = "1.38.0";
+  version = "1.39.0";
 
   src = fetchFromGitHub {
     owner = "Canop";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-eKvJyORTb8gFgyeWW7C6PngQ+bKE9Oln2lpd646YbMU=";
+    hash = "sha256-OmkO7qZ8l9HvSJFGNgTeCo/gS17fF0edfOc8wvf29/I=";
   };
 
-  cargoHash = "sha256-uX0pQMt6WLUsXaUmbMojyScykdFe8DqpyGrK0QC66eE=";
+  cargoHash = "sha256-lfFv8NF5nID96tCcLB7bXnDfAyrjoXhnBa2QDHz3nY4=";
 
   nativeBuildInputs = [
     installShellFiles
@@ -42,7 +43,7 @@ rustPlatform.buildRustPackage rec {
     zlib
   ];
 
-  buildFeatures = lib.optionals withClipboard [ "clipboard" ];
+  buildFeatures = lib.optionals withTrash [ "trash" ] ++ lib.optionals withClipboard [ "clipboard" ];
 
   RUSTONIG_SYSTEM_LIBONIG = true;
 
@@ -88,7 +89,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "An interactive tree view, a fuzzy search, a balanced BFS descent and customizable commands";
+    description = "Interactive tree view, a fuzzy search, a balanced BFS descent and customizable commands";
     homepage = "https://dystroy.org/broot/";
     changelog = "https://github.com/Canop/broot/releases/tag/v${version}";
     maintainers = with maintainers; [ dywedir ];
diff --git a/pkgs/tools/misc/buildtorrent/default.nix b/pkgs/tools/misc/buildtorrent/default.nix
index d9fc90768a984..e6a800dc54675 100644
--- a/pkgs/tools/misc/buildtorrent/default.nix
+++ b/pkgs/tools/misc/buildtorrent/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A simple commandline torrent creator";
+    description = "Simple commandline torrent creator";
     homepage = "https://mathr.co.uk/blog/torrent.html";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
diff --git a/pkgs/tools/misc/calamares-nixos-extensions/default.nix b/pkgs/tools/misc/calamares-nixos-extensions/default.nix
index 2b8965544ab3d..481ed56f3de5a 100644
--- a/pkgs/tools/misc/calamares-nixos-extensions/default.nix
+++ b/pkgs/tools/misc/calamares-nixos-extensions/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "calamares-nixos-extensions";
-  version = "0.3.15";
+  version = "0.3.16";
 
   src = fetchFromGitHub {
     owner = "NixOS";
     repo = "calamares-nixos-extensions";
     rev = version;
-    hash = "sha256-PZQjrteLWcInXIavuANHfzfl9gOXATWtIlDUp45j5Ao=";
+    hash = "sha256-ajQWmZVY60Q2cGJcLqMT2ypIi7bMMiyHMgdlp3g9874=";
   };
 
   installPhase = ''
diff --git a/pkgs/tools/misc/capture/default.nix b/pkgs/tools/misc/capture/default.nix
index be08be4f1436a..9eac4dd0bbc55 100644
--- a/pkgs/tools/misc/capture/default.nix
+++ b/pkgs/tools/misc/capture/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A no bullshit screen capture tool";
+    description = "No bullshit screen capture tool";
     homepage = "https://github.com/buhman/capture";
     maintainers = [ maintainers.ar1a ];
     license = licenses.gpl3Plus;
diff --git a/pkgs/tools/misc/cf-terraforming/default.nix b/pkgs/tools/misc/cf-terraforming/default.nix
index 42ac51995531a..086d1f044ddfe 100644
--- a/pkgs/tools/misc/cf-terraforming/default.nix
+++ b/pkgs/tools/misc/cf-terraforming/default.nix
@@ -24,7 +24,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A command line utility to facilitate terraforming your existing Cloudflare resources";
+    description = "Command line utility to facilitate terraforming your existing Cloudflare resources";
     homepage = "https://github.com/cloudflare/cf-terraforming/";
     license = licenses.mpl20;
     maintainers = with maintainers; [ benley ];
diff --git a/pkgs/tools/misc/changelogger/default.nix b/pkgs/tools/misc/changelogger/default.nix
index bae346ca37c5b..fa46e7b10752c 100644
--- a/pkgs/tools/misc/changelogger/default.nix
+++ b/pkgs/tools/misc/changelogger/default.nix
@@ -34,7 +34,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A tool to manage your changelog file in Markdown";
+    description = "Tool to manage your changelog file in Markdown";
     homepage = "https://github.com/MarkusFreitag/changelogger";
     changelog = "https://github.com/MarkusFreitag/changelogger/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/tools/misc/charasay/default.nix b/pkgs/tools/misc/charasay/default.nix
index 7e79c6479b40d..20594414daef5 100644
--- a/pkgs/tools/misc/charasay/default.nix
+++ b/pkgs/tools/misc/charasay/default.nix
@@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "The future of cowsay - Colorful characters saying something";
+    description = "Future of cowsay - Colorful characters saying something";
     homepage = "https://github.com/latipun7/charasay";
     license = licenses.mit;
     maintainers = with maintainers; [ hmajid2301 ];
diff --git a/pkgs/tools/misc/chatgpt-cli/default.nix b/pkgs/tools/misc/chatgpt-cli/default.nix
index b823eb997e84f..a7712aee4116c 100644
--- a/pkgs/tools/misc/chatgpt-cli/default.nix
+++ b/pkgs/tools/misc/chatgpt-cli/default.nix
@@ -5,16 +5,16 @@
 }:
 buildGoModule rec {
   pname = "chatgpt";
-  version = "1.3.4";
+  version = "1.3.5";
 
   src = fetchFromGitHub {
     owner = "j178";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-PwC/LyWGgFdj1aye8A/W9wc78z9mEbvz4DNsB0eHtl0=";
+    hash = "sha256-+U5fDG/t1x7F4h+D3rVdgvYICoQDH7dd5GUNOCkXw/Q=";
   };
 
-  vendorHash = "sha256-hmg301m4Zn7BzlOJ6VVySkxwFt7CDT7MS9EH1JqeW/E=";
+  vendorHash = "sha256-/bL9RRqNlKLqZSaym9y5A+RUDrHpv7GBR6ubZkZMPS4=";
 
   subPackages = [ "cmd/chatgpt" ];
 
diff --git a/pkgs/tools/misc/chef-cli/default.nix b/pkgs/tools/misc/chef-cli/default.nix
index af3a60103ca35..01a80de279568 100644
--- a/pkgs/tools/misc/chef-cli/default.nix
+++ b/pkgs/tools/misc/chef-cli/default.nix
@@ -10,7 +10,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "chef-cli";
 
   meta = with lib; {
-    description = "The Chef Infra Client is a powerful agent that applies your configurations on remote Linux, macOS, Windows and cloud-based systems";
+    description = "Chef Infra Client is a powerful agent that applies your configurations on remote Linux, macOS, Windows and cloud-based systems";
     homepage = "https://chef.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ dylanmtaylor ];
diff --git a/pkgs/tools/misc/clickclack/default.nix b/pkgs/tools/misc/clickclack/default.nix
index 884c2ac84bc18..15fe00486d3e6 100644
--- a/pkgs/tools/misc/clickclack/default.nix
+++ b/pkgs/tools/misc/clickclack/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A vibration/audio feedback tool to be used with virtual keyboards";
+    description = "Vibration/audio feedback tool to be used with virtual keyboards";
     homepage = "https://git.sr.ht/~proycon/clickclack";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/tools/misc/clini/default.nix b/pkgs/tools/misc/clini/default.nix
index 95d86e6fd46d1..b5bd825821498 100644
--- a/pkgs/tools/misc/clini/default.nix
+++ b/pkgs/tools/misc/clini/default.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-hOPj3c3WIISRqP/9Kpc/Yh9Z/wfAkHQ/731+BkWElIQ=";
 
   meta = with lib; {
-    description = "A simple tool to do basic modification of ini files";
+    description = "Simple tool to do basic modification of ini files";
     homepage = "https://github.com/domgreen/clini";
     license = licenses.mit;
     maintainers = with maintainers; [ Flakebi ];
diff --git a/pkgs/tools/misc/cloc/default.nix b/pkgs/tools/misc/cloc/default.nix
index 4cb21ea5c99e9..124e3869b7210 100644
--- a/pkgs/tools/misc/cloc/default.nix
+++ b/pkgs/tools/misc/cloc/default.nix
@@ -51,7 +51,7 @@ in stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "A program that counts lines of source code";
+    description = "Program that counts lines of source code";
     homepage = "https://github.com/AlDanial/cloc";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.all;
diff --git a/pkgs/tools/misc/clpeak/default.nix b/pkgs/tools/misc/clpeak/default.nix
index 4539602320f3f..4b190acf19b7c 100644
--- a/pkgs/tools/misc/clpeak/default.nix
+++ b/pkgs/tools/misc/clpeak/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ ocl-icd opencl-clhpp ];
 
   meta = with lib; {
-    description = "A tool which profiles OpenCL devices to find their peak capacities";
+    description = "Tool which profiles OpenCL devices to find their peak capacities";
     homepage = "https://github.com/krrishnarraj/clpeak/";
     license = licenses.unlicense;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/tools/misc/clubhouse-cli/default.nix b/pkgs/tools/misc/clubhouse-cli/default.nix
index 22148f820d40b..8e44b2c0cec86 100644
--- a/pkgs/tools/misc/clubhouse-cli/default.nix
+++ b/pkgs/tools/misc/clubhouse-cli/default.nix
@@ -17,7 +17,7 @@ buildNpmPackage rec {
   npmDepsHash = "sha256-QlCLEvmqLVkWwgTVlToYD6bptLp/MVfQ10Wdfr3PIr4=";
 
   meta = {
-    description = "A command line tool for viewing, creating and updating clubhouse.io stories";
+    description = "Command line tool for viewing, creating and updating clubhouse.io stories";
     homepage = "https://github.com/andjosh/clubhouse-cli";
     changelog = "https://github.com/andjosh/clubhouse-cli/blob/${src.rev}/CHANGELOG.md";
     license = lib.licenses.mit;
diff --git a/pkgs/tools/misc/code-minimap/default.nix b/pkgs/tools/misc/code-minimap/default.nix
index 34d8547ebd327..db58ede25abff 100644
--- a/pkgs/tools/misc/code-minimap/default.nix
+++ b/pkgs/tools/misc/code-minimap/default.nix
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = lib.optional stdenv.isDarwin libiconv;
 
   meta = with lib; {
-    description = "A high performance code minimap render";
+    description = "High performance code minimap render";
     homepage = "https://github.com/wfxr/code-minimap";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ bsima ];
diff --git a/pkgs/tools/misc/codevis/default.nix b/pkgs/tools/misc/codevis/default.nix
index c41351f95983f..3ef5e899b4ac1 100644
--- a/pkgs/tools/misc/codevis/default.nix
+++ b/pkgs/tools/misc/codevis/default.nix
@@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A tool to take all source code in a folder and render them to one image";
+    description = "Tool to take all source code in a folder and render them to one image";
     homepage = "https://github.com/sloganking/codevis";
     changelog = "https://github.com/sloganking/codevis/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/tools/misc/conserver/default.nix b/pkgs/tools/misc/conserver/default.nix
index 30ac050ee0d33..ca066c834b8a9 100644
--- a/pkgs/tools/misc/conserver/default.nix
+++ b/pkgs/tools/misc/conserver/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.conserver.com/";
-    description = "An application that allows multiple users to watch a serial console at the same time";
+    description = "Application that allows multiple users to watch a serial console at the same time";
     license = licenses.bsd3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ sarcasticadmin ];
diff --git a/pkgs/tools/misc/coreboot-configurator/default.nix b/pkgs/tools/misc/coreboot-configurator/default.nix
index 2c51fd61fc110..d8e322421c75e 100644
--- a/pkgs/tools/misc/coreboot-configurator/default.nix
+++ b/pkgs/tools/misc/coreboot-configurator/default.nix
@@ -51,7 +51,7 @@ mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A simple GUI to change settings in Coreboot's CBFS";
+    description = "Simple GUI to change settings in Coreboot's CBFS";
     homepage = "https://support.starlabs.systems/kb/guides/coreboot-configurator";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
diff --git a/pkgs/tools/misc/coreboot-utils/default.nix b/pkgs/tools/misc/coreboot-utils/default.nix
index e13b97e0c3a0b..0410a23221eaa 100644
--- a/pkgs/tools/misc/coreboot-utils/default.nix
+++ b/pkgs/tools/misc/coreboot-utils/default.nix
@@ -1,23 +1,23 @@
 { lib, stdenv, fetchgit, pkg-config, zlib, pciutils, openssl, coreutils, acpica-tools, makeWrapper, gnugrep, gnused, file, buildEnv }:
 
 let
-  version = "24.02";
+  version = "24.05";
 
   commonMeta = with lib; {
     description = "Various coreboot-related tools";
     homepage = "https://www.coreboot.org";
     license = with licenses; [ gpl2Only gpl2Plus ];
-    maintainers = with maintainers; [ felixsinger ];
+    maintainers = with maintainers; [ felixsinger jmbaur ];
     platforms = platforms.linux;
   };
 
-  generic = { pname, path ? "util/${pname}", ... }@args: stdenv.mkDerivation (rec {
+  generic = { pname, path ? "util/${pname}", ... }@args: stdenv.mkDerivation ({
     inherit pname version;
 
     src = fetchgit {
       url = "https://review.coreboot.org/coreboot";
-      rev = "4845b69db29107ce8d9cd2969b4aad5c7daa6399";
-      sha256 = "sha256-whALKP9MetyMJSmXVf0WYd9dP8AGa+ADAB8cmIqt4HU=";
+      rev = version;
+      hash = "sha256-Fq3tZje6QoMskxqWd61OstgI9Sj25yijf8S3LiTJuYc=";
     };
 
     enableParallelBuilding = true;
diff --git a/pkgs/tools/misc/coreutils/default.nix b/pkgs/tools/misc/coreutils/default.nix
index 2e2f2f1601247..8e051b798f33a 100644
--- a/pkgs/tools/misc/coreutils/default.nix
+++ b/pkgs/tools/misc/coreutils/default.nix
@@ -39,7 +39,13 @@ stdenv.mkDerivation rec {
     hash = "sha256-zTKO3qyS9qZl3p8yPJO3Eq8YWLwuDYjz9xAEaUcKG4o=";
   };
 
-  patches = lib.optionals stdenv.hostPlatform.isMusl [
+  patches = [
+    # https://lists.gnu.org/archive/html/bug-coreutils/2024-05/msg00037.html
+    # This is not precisely the patch provided - this is a diff of the Makefile.in
+    # after the patch was applied and autoreconf was run, since adding autoreconf
+    # here causes infinite recursion.
+    ./fix-mix-flags-deps-libintl.patch
+  ] ++ lib.optionals stdenv.hostPlatform.isMusl [
     # https://lists.gnu.org/archive/html/bug-coreutils/2024-03/msg00089.html
     ./fix-test-failure-musl.patch
   ];
@@ -99,13 +105,12 @@ stdenv.mkDerivation rec {
   separateDebugInfo = true;
 
   nativeBuildInputs = [
-    # autoreconfHook is due to patch, normally only needed for cygwin
-    autoreconfHook
     perl
     xz.bin
   ]
   ++ optionals stdenv.hostPlatform.isCygwin [
     # due to patch
+    autoreconfHook
     texinfo
   ];
 
@@ -178,7 +183,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.gnu.org/software/coreutils/";
-    description = "The GNU Core Utilities";
+    description = "GNU Core Utilities";
     longDescription = ''
       The GNU Core Utilities are the basic file, shell and text manipulation
       utilities of the GNU operating system. These are the core utilities which
diff --git a/pkgs/tools/misc/coreutils/fix-mix-flags-deps-libintl.patch b/pkgs/tools/misc/coreutils/fix-mix-flags-deps-libintl.patch
new file mode 100644
index 0000000000000..f6002b55faf69
--- /dev/null
+++ b/pkgs/tools/misc/coreutils/fix-mix-flags-deps-libintl.patch
@@ -0,0 +1,49 @@
+--- a/Makefile.in	2024-05-21 17:03:50.488979000 -0700
++++ b/Makefile.in	2024-05-21 17:18:56.243091000 -0700
+@@ -692,8 +692,6 @@
+ @USE_PCLMUL_CRC32_TRUE@am__append_211 = $(cksum_pclmul_ldadd)
+ @USE_AVX2_WC_LINECOUNT_TRUE@am__append_212 = src/libwc_avx2.a
+ @USE_AVX2_WC_LINECOUNT_TRUE@am__append_213 = $(wc_avx2_ldadd)
+-@SINGLE_BINARY_FALSE@src_coreutils_DEPENDENCIES =  \
+-@SINGLE_BINARY_FALSE@	$(am__DEPENDENCIES_2)
+ # Command arch
+ # Command hostname
+ # Command chroot
+@@ -2825,6 +2823,12 @@
+ nodist_src_coreutils_OBJECTS =
+ src_coreutils_OBJECTS = $(am_src_coreutils_OBJECTS) \
+ 	$(nodist_src_coreutils_OBJECTS)
++@SINGLE_BINARY_FALSE@src_coreutils_DEPENDENCIES =  \
++@SINGLE_BINARY_FALSE@	$(am__DEPENDENCIES_2)
++@SINGLE_BINARY_TRUE@src_coreutils_DEPENDENCIES =  \
++@SINGLE_BINARY_TRUE@	$(am__DEPENDENCIES_1) \
++@SINGLE_BINARY_TRUE@	$(am__DEPENDENCIES_2) \
++@SINGLE_BINARY_TRUE@	$(am__DEPENDENCIES_1)
+ src_coreutils_LINK = $(CCLD) $(src_coreutils_CFLAGS) $(CFLAGS) \
+ 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+ am__objects_221 = src/copy.$(OBJEXT) src/cp-hash.$(OBJEXT) \
+@@ -7492,7 +7496,12 @@
+ src_libstdbuf_so_CFLAGS = -fPIC $(AM_CFLAGS)
+ # Single binary dependencies
+ @SINGLE_BINARY_TRUE@src_coreutils_CFLAGS = -DSINGLE_BINARY $(AM_CFLAGS)
+-@SINGLE_BINARY_TRUE@src_coreutils_DEPENDENCIES = $(LDADD) $(single_binary_deps)
++
++# Creates symlinks or shebangs to the installed programs when building
++# coreutils single binary.
++@SINGLE_BINARY_TRUE@EXTRA_src_coreutils_DEPENDENCIES =  \
++@SINGLE_BINARY_TRUE@	$(single_binary_deps) \
++@SINGLE_BINARY_TRUE@	src/coreutils_$(single_binary_install_type)
+ @SINGLE_BINARY_TRUE@src_libsinglebin_dir_a_DEPENDENCIES = src/libsinglebin_ls.a
+ @SINGLE_BINARY_TRUE@src_libsinglebin_vdir_a_DEPENDENCIES = src/libsinglebin_ls.a
+ @SINGLE_BINARY_TRUE@src_libsinglebin_arch_a_DEPENDENCIES = src/libsinglebin_uname.a
+@@ -7880,10 +7889,6 @@
+ @SINGLE_BINARY_TRUE@src_libsinglebin_yes_a_DEPENDENCIES = $(src_yes_DEPENDENCIES)
+ @SINGLE_BINARY_TRUE@src_libsinglebin_yes_a_CFLAGS = "-Dmain=single_binary_main_yes (int, char **);  int single_binary_main_yes"  -Dusage=_usage_yes $(src_coreutils_CFLAGS)
+ 
+-# Creates symlinks or shebangs to the installed programs when building
+-# coreutils single binary.
+-@SINGLE_BINARY_TRUE@EXTRA_src_coreutils_DEPENDENCIES = src/coreutils_$(single_binary_install_type)
+-
+ # false exits nonzero even with --help or --version.
+ # test doesn't support --help or --version.
+ # Tell automake to exempt then from that installcheck test.
diff --git a/pkgs/tools/misc/cowsay/default.nix b/pkgs/tools/misc/cowsay/default.nix
index 874299905e079..b0910da7b067f 100644
--- a/pkgs/tools/misc/cowsay/default.nix
+++ b/pkgs/tools/misc/cowsay/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A program which generates ASCII pictures of a cow with a message";
+    description = "Program which generates ASCII pictures of a cow with a message";
     homepage = "https://cowsay.diamonds";
     changelog = "https://github.com/cowsay-org/cowsay/releases/tag/v${finalAttrs.version}";
     license = licenses.gpl3Only;
diff --git a/pkgs/tools/misc/crudini/default.nix b/pkgs/tools/misc/crudini/default.nix
index ea77f4db163ec..ec3cad6e87476 100644
--- a/pkgs/tools/misc/crudini/default.nix
+++ b/pkgs/tools/misc/crudini/default.nix
@@ -1,6 +1,5 @@
 { lib
 , fetchFromGitHub
-, fetchpatch
 , python3Packages
 , help2man
 , installShellFiles
@@ -51,7 +50,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A utility for manipulating ini files ";
+    description = "Utility for manipulating ini files ";
     homepage = "https://www.pixelbeat.org/programs/crudini/";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/pkgs/tools/misc/cunit/default.nix b/pkgs/tools/misc/cunit/default.nix
index 77af6497a573b..5b6f1de61b161 100644
--- a/pkgs/tools/misc/cunit/default.nix
+++ b/pkgs/tools/misc/cunit/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "A Unit Testing Framework for C";
+    description = "Unit Testing Framework for C";
 
     longDescription = ''
       CUnit is a lightweight system for writing, administering, and running
diff --git a/pkgs/tools/misc/cutecom/default.nix b/pkgs/tools/misc/cutecom/default.nix
index 490d33b123d84..e36bd288b2ae1 100644
--- a/pkgs/tools/misc/cutecom/default.nix
+++ b/pkgs/tools/misc/cutecom/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A graphical serial terminal";
+    description = "Graphical serial terminal";
     homepage = "https://gitlab.com/cutecom/cutecom/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ bennofs ];
diff --git a/pkgs/tools/misc/cyberchef/default.nix b/pkgs/tools/misc/cyberchef/default.nix
index f0a20fe9687f1..db888fccbf9bc 100644
--- a/pkgs/tools/misc/cyberchef/default.nix
+++ b/pkgs/tools/misc/cyberchef/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cyberchef";
-  version = "10.18.6";
+  version = "10.18.8";
 
   src = fetchzip {
     url = "https://github.com/gchq/CyberChef/releases/download/v${version}/CyberChef_v${version}.zip";
-    sha256 = "sha256-LbauIeDUqfL1ChZTThq7CJ++yNiuKaa773jSdmxorf8=";
+    sha256 = "sha256-1Ta0fgrwBHfUlj7aJkiAHV7MmHRlXJloYt2P889ya+U=";
     stripRoot = false;
   };
 
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The Cyber Swiss Army Knife for encryption, encoding, compression and data analysis";
+    description = "Cyber Swiss Army Knife for encryption, encoding, compression and data analysis";
     homepage = "https://gchq.github.io/CyberChef";
     changelog = "https://github.com/gchq/CyberChef/blob/v${version}/CHANGELOG.md";
     maintainers = with maintainers; [ sebastianblunt ];
diff --git a/pkgs/tools/misc/dashing/default.nix b/pkgs/tools/misc/dashing/default.nix
index c7ec598fe309e..f2f9353f403a6 100644
--- a/pkgs/tools/misc/dashing/default.nix
+++ b/pkgs/tools/misc/dashing/default.nix
@@ -20,7 +20,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A Dash Generator Script for Any HTML";
+    description = "Dash Generator Script for Any HTML";
     homepage = "https://github.com/technosophos/dashing";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/tools/misc/datamash/default.nix b/pkgs/tools/misc/datamash/default.nix
index 15cd8234a5734..6ee082c5151da 100644
--- a/pkgs/tools/misc/datamash/default.nix
+++ b/pkgs/tools/misc/datamash/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A command-line program which performs basic numeric,textual and statistical operations on input textual data files";
+    description = "Command-line program which performs basic numeric,textual and statistical operations on input textual data files";
     homepage = "https://www.gnu.org/software/datamash/";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
diff --git a/pkgs/tools/misc/datefmt/default.nix b/pkgs/tools/misc/datefmt/default.nix
index 0b2dd7fae270e..36fdf9fcfebbc 100644
--- a/pkgs/tools/misc/datefmt/default.nix
+++ b/pkgs/tools/misc/datefmt/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://jb55.com/datefmt";
-    description = "A tool that formats timestamps in text streams";
+    description = "Tool that formats timestamps in text streams";
     platforms = platforms.all;
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ jb55 ];
diff --git a/pkgs/tools/misc/dateutils/default.nix b/pkgs/tools/misc/dateutils/default.nix
index 60219070d96a0..fa042b55ad522 100644
--- a/pkgs/tools/misc/dateutils/default.nix
+++ b/pkgs/tools/misc/dateutils/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A bunch of tools that revolve around fiddling with dates and times in the command line";
+    description = "Bunch of tools that revolve around fiddling with dates and times in the command line";
     homepage = "http://www.fresse.org/dateutils/";
     license = licenses.bsd3;
     platforms = platforms.unix;
diff --git a/pkgs/tools/misc/ddccontrol/default.nix b/pkgs/tools/misc/ddccontrol/default.nix
index 630b06bcfb3ce..5886d2e18318c 100644
--- a/pkgs/tools/misc/ddccontrol/default.nix
+++ b/pkgs/tools/misc/ddccontrol/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A program used to control monitor parameters by software";
+    description = "Program used to control monitor parameters by software";
     homepage = "https://github.com/ddccontrol/ddccontrol";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/tools/misc/didyoumean/default.nix b/pkgs/tools/misc/didyoumean/default.nix
index d7671cf08bbe7..c3a04d289d559 100644
--- a/pkgs/tools/misc/didyoumean/default.nix
+++ b/pkgs/tools/misc/didyoumean/default.nix
@@ -46,7 +46,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A CLI spelling corrector for when you're unsure";
+    description = "CLI spelling corrector for when you're unsure";
     homepage = "https://github.com/hisbaan/didyoumean";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ evanjs wegank ];
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index 7bf5b4586e0d5..89af942966a6b 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -96,11 +96,11 @@ in
 # Note: when upgrading this package, please run the list-missing-tools.sh script as described below!
 python.pkgs.buildPythonApplication rec {
   pname = "diffoscope";
-  version = "267";
+  version = "269";
 
   src = fetchurl {
     url = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
-    hash = "sha256-eU5n39kwITCGKXFu7ESAs9bZM6SPxey0tmDLd86zRvE=";
+    hash = "sha256-L2UygmcTXgcc9l8ALpOS52+2dhsO42733nlc1Hzl8L8=";
   };
 
   outputs = [
@@ -108,6 +108,9 @@ python.pkgs.buildPythonApplication rec {
     "man"
   ];
 
+  # https://salsa.debian.org/reproducible-builds/diffoscope/-/issues/378
+  sourceRoot = "./-269";
+
   patches = [
     ./ignore_links.patch
     ./openssh-no-dsa.patch # https://salsa.debian.org/reproducible-builds/diffoscope/-/merge_requests/139
diff --git a/pkgs/tools/misc/direnv/default.nix b/pkgs/tools/misc/direnv/default.nix
index 4bb9d9bacaff2..033f73249f0b9 100644
--- a/pkgs/tools/misc/direnv/default.nix
+++ b/pkgs/tools/misc/direnv/default.nix
@@ -35,7 +35,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A shell extension that manages your environment";
+    description = "Shell extension that manages your environment";
     longDescription = ''
       Once hooked into your shell direnv is looking for an .envrc file in your
       current directory before every prompt.
diff --git a/pkgs/tools/misc/discocss/default.nix b/pkgs/tools/misc/discocss/default.nix
index b930338c29f4d..102b75aee71f3 100644
--- a/pkgs/tools/misc/discocss/default.nix
+++ b/pkgs/tools/misc/discocss/default.nix
@@ -32,7 +32,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A tiny Discord css-injector";
+    description = "Tiny Discord css-injector";
     changelog = "https://github.com/mlvzk/discocss/releases/tag/v${version}";
     homepage = "https://github.com/mlvzk/discocss";
     license = licenses.mpl20;
diff --git a/pkgs/tools/misc/diskus/default.nix b/pkgs/tools/misc/diskus/default.nix
index cfbcfdcca6ebb..b63532216a998 100644
--- a/pkgs/tools/misc/diskus/default.nix
+++ b/pkgs/tools/misc/diskus/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "sha256-qNXv6Z9sKl7rol78UTOSRFML/JCGfOJMGOdt49KHD50=";
 
   meta = with lib; {
-    description = "A minimal, fast alternative to 'du -sh'";
+    description = "Minimal, fast alternative to 'du -sh'";
     homepage = "https://github.com/sharkdp/diskus";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = [ maintainers.fuerbringer ];
diff --git a/pkgs/tools/misc/dmg2img/default.nix b/pkgs/tools/misc/dmg2img/default.nix
index 7f9c41cda32c0..8b1e997ff7367 100644
--- a/pkgs/tools/misc/dmg2img/default.nix
+++ b/pkgs/tools/misc/dmg2img/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     platforms = lib.platforms.unix;
-    description = "An Apple's compressed dmg to standard (hfsplus) image disk file convert tool";
+    description = "Apple's compressed dmg to standard (hfsplus) image disk file convert tool";
     license = lib.licenses.gpl3;
   };
 }
diff --git a/pkgs/tools/misc/dotter/default.nix b/pkgs/tools/misc/dotter/default.nix
index bcabb2ef8aac6..48d89dd86b339 100644
--- a/pkgs/tools/misc/dotter/default.nix
+++ b/pkgs/tools/misc/dotter/default.nix
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A dotfile manager and templater written in rust 🦀";
+    description = "Dotfile manager and templater written in rust 🦀";
     homepage = "https://github.com/SuperCuber/dotter";
     license = licenses.unlicense;
     maintainers = with maintainers; [ linsui ];
diff --git a/pkgs/tools/misc/dtach/default.nix b/pkgs/tools/misc/dtach/default.nix
index 226c7335f2645..4629715d434da 100644
--- a/pkgs/tools/misc/dtach/default.nix
+++ b/pkgs/tools/misc/dtach/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://dtach.sourceforge.net/";
-    description = "A program that emulates the detach feature of screen";
+    description = "Program that emulates the detach feature of screen";
 
     longDescription = ''
       dtach is a tiny program that emulates the detach feature of
diff --git a/pkgs/tools/misc/dtool/default.nix b/pkgs/tools/misc/dtool/default.nix
index 8fdb2f533d47f..8b4349dbb59ac 100644
--- a/pkgs/tools/misc/dtool/default.nix
+++ b/pkgs/tools/misc/dtool/default.nix
@@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
   checkType = "debug";
 
   meta = with lib; {
-    description = "A command-line tool collection to assist development written in RUST";
+    description = "Command-line tool collection to assist development written in RUST";
     homepage = "https://github.com/guoxbin/dtool";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ linuxissuper ];
diff --git a/pkgs/tools/misc/dua/default.nix b/pkgs/tools/misc/dua/default.nix
index 22ae9a7a64310..ae79aa4985780 100644
--- a/pkgs/tools/misc/dua/default.nix
+++ b/pkgs/tools/misc/dua/default.nix
@@ -30,7 +30,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A tool to conveniently learn about the disk usage of directories";
+    description = "Tool to conveniently learn about the disk usage of directories";
     homepage = "https://github.com/Byron/dua-cli";
     changelog = "https://github.com/Byron/dua-cli/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
diff --git a/pkgs/tools/misc/dutree/default.nix b/pkgs/tools/misc/dutree/default.nix
index fe47997296e87..f9fc1afa18d2b 100644
--- a/pkgs/tools/misc/dutree/default.nix
+++ b/pkgs/tools/misc/dutree/default.nix
@@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "0gg1w0xx36aswfm0y53nqwwz7zds25ysmklbrc8v2r91j74bhkzw";
 
   meta = with lib; {
-    description = "A tool to analyze file system usage written in Rust";
+    description = "Tool to analyze file system usage written in Rust";
     homepage = "https://github.com/nachoparker/dutree";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ figsoda ];
diff --git a/pkgs/tools/misc/dwt1-shell-color-scripts/default.nix b/pkgs/tools/misc/dwt1-shell-color-scripts/default.nix
index e7c7287b5311a..25e5d44752307 100644
--- a/pkgs/tools/misc/dwt1-shell-color-scripts/default.nix
+++ b/pkgs/tools/misc/dwt1-shell-color-scripts/default.nix
@@ -44,7 +44,7 @@ stdenvNoCC.mkDerivation {
 
   meta = {
     homepage = "https://gitlab.com/dwt1/shell-color-scripts";
-    description = "A collection of shell color scripts collected by dt (Derek Taylor)";
+    description = "Collection of shell color scripts collected by dt (Derek Taylor)";
     license = with lib.licenses; [ mit ];
     maintainers = with lib.maintainers; [ ];
     platforms = lib.platforms.all;
diff --git a/pkgs/tools/misc/easeprobe/default.nix b/pkgs/tools/misc/easeprobe/default.nix
index 70181956339c0..314149003a15c 100644
--- a/pkgs/tools/misc/easeprobe/default.nix
+++ b/pkgs/tools/misc/easeprobe/default.nix
@@ -29,7 +29,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "A simple, standalone, and lightweight tool that can do health/status checking, written in Go";
+    description = "Simple, standalone, and lightweight tool that can do health/status checking, written in Go";
     homepage = "https://github.com/megaease/easeprobe";
     license = licenses.asl20;
     maintainers = with maintainers; [ dit7ya ];
diff --git a/pkgs/tools/misc/eludris/default.nix b/pkgs/tools/misc/eludris/default.nix
index e3fc67fcacb0e..e0762d179ec08 100644
--- a/pkgs/tools/misc/eludris/default.nix
+++ b/pkgs/tools/misc/eludris/default.nix
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage rec {
   nativeBuildInputs = [ pkg-config ];
 
   meta = with lib; {
-    description = "A simple CLI to help you with setting up and managing your Eludris instance";
+    description = "Simple CLI to help you with setting up and managing your Eludris instance";
     mainProgram = "eludris";
     homepage = "https://github.com/eludris/eludris/tree/main/cli";
     license = licenses.mit;
diff --git a/pkgs/tools/misc/empty/default.nix b/pkgs/tools/misc/empty/default.nix
index 29dfa606dd44e..cfe8ed67cd94e 100644
--- a/pkgs/tools/misc/empty/default.nix
+++ b/pkgs/tools/misc/empty/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://empty.sourceforge.net";
-    description = "A simple tool to automate interactive terminal applications";
+    description = "Simple tool to automate interactive terminal applications";
     license = licenses.bsd3;
     platforms = platforms.all;
     longDescription = ''
diff --git a/pkgs/tools/misc/encpipe/default.nix b/pkgs/tools/misc/encpipe/default.nix
index f3ab870b0f05e..c48fa9d162f43 100644
--- a/pkgs/tools/misc/encpipe/default.nix
+++ b/pkgs/tools/misc/encpipe/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An encryption tool";
+    description = "Encryption tool";
     homepage = "https://github.com/jedisct1/encpipe";
     license = licenses.isc;
     maintainers = with maintainers; [ figsoda ];
diff --git a/pkgs/tools/misc/esphome/default.nix b/pkgs/tools/misc/esphome/default.nix
index 2593ef5b7bb80..7dc67ba2ef70f 100644
--- a/pkgs/tools/misc/esphome/default.nix
+++ b/pkgs/tools/misc/esphome/default.nix
@@ -19,14 +19,14 @@ let
 in
 python.pkgs.buildPythonApplication rec {
   pname = "esphome";
-  version = "2024.4.2";
+  version = "2024.5.4";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-q4SVsfd5PJjeqt6UJJG6vuyxTA/bqDDl6e5dxhWIfYM=";
+    hash = "sha256-UxNMHRQLrViK9ssFc0vHA/zqNw5yH8E6n+OAnq6vJdQ=";
   };
 
   nativeBuildInputs = with python.pkgs; [
diff --git a/pkgs/tools/misc/ethtool/default.nix b/pkgs/tools/misc/ethtool/default.nix
index 72590420e1a1f..f0742e8bd427b 100644
--- a/pkgs/tools/misc/ethtool/default.nix
+++ b/pkgs/tools/misc/ethtool/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
 , libmnl
 , pkg-config
 , writeScript
@@ -9,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ethtool";
-  version = "6.7";
+  version = "6.9";
 
   src = fetchurl {
     url = "mirror://kernel/software/network/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-w65SawHOTY32x5SrFw3kpBBNER6o2Ns/H9fCX8uQVhk=";
+    sha256 = "sha256-pxsDVAEGYcXPF4vGBu1Q/LkYBc8Yl60OsoGDh6X9DNk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/ets/default.nix b/pkgs/tools/misc/ets/default.nix
index 874c57ccaa89f..ad81513a89a98 100644
--- a/pkgs/tools/misc/ets/default.nix
+++ b/pkgs/tools/misc/ets/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub, fetchpatch, installShellFiles }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "ets";
diff --git a/pkgs/tools/misc/eva/default.nix b/pkgs/tools/misc/eva/default.nix
index b15957a909a88..3d07baeb59036 100644
--- a/pkgs/tools/misc/eva/default.nix
+++ b/pkgs/tools/misc/eva/default.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "sha256-gnym2sedyzQzubOtj64Yoh+sKT+sa60w/Z72hby7Pms=";
 
   meta = with lib; {
-    description = "A calculator REPL, similar to bc";
+    description = "Calculator REPL, similar to bc";
     homepage = "https://github.com/NerdyPepper/eva";
     license = licenses.mit;
     maintainers = with maintainers; [ nrdxp ma27 figsoda ];
diff --git a/pkgs/tools/misc/expect/default.nix b/pkgs/tools/misc/expect/default.nix
index e2457ad63e137..543400380162d 100644
--- a/pkgs/tools/misc/expect/default.nix
+++ b/pkgs/tools/misc/expect/default.nix
@@ -48,7 +48,7 @@ tcl.mkTclDerivation rec {
   outputs = [ "out" "dev" ];
 
   meta = with lib; {
-    description = "A tool for automating interactive applications";
+    description = "Tool for automating interactive applications";
     homepage = "https://expect.sourceforge.net/";
     license = licenses.publicDomain;
     platforms = platforms.unix;
diff --git a/pkgs/tools/misc/faketty/default.nix b/pkgs/tools/misc/faketty/default.nix
index 228cdf7f2f2fd..dc48382945c9e 100644
--- a/pkgs/tools/misc/faketty/default.nix
+++ b/pkgs/tools/misc/faketty/default.nix
@@ -2,21 +2,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "faketty";
-  version = "1.0.16";
+  version = "1.0.17";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-BlQnVjYPFUfEurFUE2MHOL2ad56Nu/atzRuFu4OoCSI=";
+    hash = "sha256-JUvQg8WLk5+O+3fbbQSUW6Mtp9TrYlrt+uwMAzm082Q=";
   };
 
-  cargoHash = "sha256-q9jx03XYA977481B9xuUfaaMBDbSVx4xREj4Q1Ti/Yw=";
+  cargoHash = "sha256-Y+jcq2twIGDbHTA6aBGnyN9Old993Y/2j/fKnXhZGYU=";
 
   postPatch = ''
     patchShebangs tests/test.sh
   '';
 
   meta = with lib; {
-    description = "A wrapper to execute a command in a pty, even if redirecting the output";
+    description = "Wrapper to execute a command in a pty, even if redirecting the output";
     homepage = "https://github.com/dtolnay/faketty";
     changelog = "https://github.com/dtolnay/faketty/releases/tag/${version}";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/pkgs/tools/misc/fcp/default.nix b/pkgs/tools/misc/fcp/default.nix
index 61db506bc1aed..dd7035e19c285 100644
--- a/pkgs/tools/misc/fcp/default.nix
+++ b/pkgs/tools/misc/fcp/default.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A significantly faster alternative to the classic Unix cp(1) command";
+    description = "Significantly faster alternative to the classic Unix cp(1) command";
     homepage = "https://github.com/svetlitski/fcp";
     changelog = "https://github.com/svetlitski/fcp/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/pkgs/tools/misc/fd/default.nix b/pkgs/tools/misc/fd/default.nix
index f203e48816166..2ec3106a01892 100644
--- a/pkgs/tools/misc/fd/default.nix
+++ b/pkgs/tools/misc/fd/default.nix
@@ -39,7 +39,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A simple, fast and user-friendly alternative to find";
+    description = "Simple, fast and user-friendly alternative to find";
     longDescription = ''
       `fd` is a simple, fast and user-friendly alternative to `find`.
 
diff --git a/pkgs/tools/misc/fdtools/default.nix b/pkgs/tools/misc/fdtools/default.nix
index 0815ae04d623b..e0dc8ea17fe72 100644
--- a/pkgs/tools/misc/fdtools/default.nix
+++ b/pkgs/tools/misc/fdtools/default.nix
@@ -79,7 +79,7 @@ in stdenv.mkDerivation {
 
   meta = {
     homepage = "https://code.dogmap.org/fdtools/";
-    description = "A set of utilities for working with file descriptors";
+    description = "Set of utilities for working with file descriptors";
     license = lib.licenses.gpl2Only;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.Profpatsch ];
diff --git a/pkgs/tools/misc/fdupes/default.nix b/pkgs/tools/misc/fdupes/default.nix
index fefb3992749b9..c82d2c861f0ef 100644
--- a/pkgs/tools/misc/fdupes/default.nix
+++ b/pkgs/tools/misc/fdupes/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fdupes";
-  version = "2.3.0";
+  version = "2.3.1";
 
   src = fetchFromGitHub {
     owner = "adrianlopezroche";
     repo = "fdupes";
     rev = "v${version}";
-    hash = "sha256-BW6a5vKRAuXs/zWPHhtZs6Y4scyCEfqHEAkGUSUiwkI=";
+    hash = "sha256-yOUgPa13DHDcuEqJMpBQVMOKFH/rlH44rWiIPRwnztM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/fedifetcher/default.nix b/pkgs/tools/misc/fedifetcher/default.nix
index ac34847ab2341..579cabc0b0de7 100644
--- a/pkgs/tools/misc/fedifetcher/default.nix
+++ b/pkgs/tools/misc/fedifetcher/default.nix
@@ -27,7 +27,7 @@ python3.pkgs.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A tool for Mastodon that automatically fetches missing replies and posts from other fediverse instances";
+    description = "Tool for Mastodon that automatically fetches missing replies and posts from other fediverse instances";
     longDescription = ''
       FediFetcher is a tool for Mastodon that automatically fetches missing
       replies and posts from other fediverse instances, and adds them to your
diff --git a/pkgs/tools/misc/fet-sh/default.nix b/pkgs/tools/misc/fet-sh/default.nix
index 689eb0395f40a..3a95451d00162 100644
--- a/pkgs/tools/misc/fet-sh/default.nix
+++ b/pkgs/tools/misc/fet-sh/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A fetch written in posix shell without any external commands";
+    description = "Fetch written in posix shell without any external commands";
     homepage = "https://github.com/6gk/fet.sh";
     license = licenses.isc;
     platforms = platforms.all;
diff --git a/pkgs/tools/misc/fetchutils/default.nix b/pkgs/tools/misc/fetchutils/default.nix
index d1c830f877d63..b4ab650ecaafb 100644
--- a/pkgs/tools/misc/fetchutils/default.nix
+++ b/pkgs/tools/misc/fetchutils/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A collection of small shell utilities to fetch system information";
+    description = "Collection of small shell utilities to fetch system information";
     homepage = "https://github.com/lptstr/fetchutils";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/tools/misc/file/default.nix b/pkgs/tools/misc/file/default.nix
index 8cff5ccd70afb..09138dada7631 100644
--- a/pkgs/tools/misc/file/default.nix
+++ b/pkgs/tools/misc/file/default.nix
@@ -1,4 +1,5 @@
 { lib, stdenv, fetchurl, file, zlib, libgnurx
+, updateAutotoolsGnuConfigScriptsHook
 , testers
 }:
 
@@ -30,7 +31,8 @@ stdenv.mkDerivation (finalAttrs: {
   strictDeps = true;
   enableParallelBuilding = true;
 
-  nativeBuildInputs = lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) file;
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ]
+    ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) file;
   buildInputs = [ zlib ]
     ++ lib.optional stdenv.hostPlatform.isWindows libgnurx;
 
@@ -43,7 +45,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://darwinsys.com/file";
-    description = "A program that shows the type of files";
+    description = "Program that shows the type of files";
     maintainers = with maintainers; [ doronbehar ];
     license = licenses.bsd2;
     pkgConfigModules = [ "libmagic" ];
diff --git a/pkgs/tools/misc/fileschanged/default.nix b/pkgs/tools/misc/fileschanged/default.nix
index 5644a01fa75a0..bb0898a5d37f8 100644
--- a/pkgs/tools/misc/fileschanged/default.nix
+++ b/pkgs/tools/misc/fileschanged/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://www.nongnu.org/fileschanged/";
-    description = "A command-line utility that reports when files have been altered";
+    description = "Command-line utility that reports when files have been altered";
     license = lib.licenses.gpl3Plus;
 
     longDescription = ''
diff --git a/pkgs/tools/misc/findutils/default.nix b/pkgs/tools/misc/findutils/default.nix
index b37eaeaea1be1..cfa4105cda0d4 100644
--- a/pkgs/tools/misc/findutils/default.nix
+++ b/pkgs/tools/misc/findutils/default.nix
@@ -1,4 +1,5 @@
 { lib, stdenv, fetchurl
+, updateAutotoolsGnuConfigScriptsHook
 , coreutils
 }:
 
@@ -22,11 +23,13 @@ stdenv.mkDerivation rec {
 
   patches = [ ./no-install-statedir.patch ];
 
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
   buildInputs = [ coreutils ]; # bin/updatedb script needs to call sort
 
   # Since glibc-2.25 the i686 tests hang reliably right after test-sleep.
   doCheck
     =  !stdenv.hostPlatform.isDarwin
+    && !stdenv.hostPlatform.isFreeBSD
     && !(stdenv.hostPlatform.libc == "glibc" && stdenv.hostPlatform.isi686)
     && (stdenv.hostPlatform.libc != "musl")
     && stdenv.hostPlatform == stdenv.buildPlatform;
diff --git a/pkgs/tools/misc/flitter/default.nix b/pkgs/tools/misc/flitter/default.nix
index 958c5ebc32097..6b092b35be8ca 100644
--- a/pkgs/tools/misc/flitter/default.nix
+++ b/pkgs/tools/misc/flitter/default.nix
@@ -51,7 +51,7 @@ ocamlPackages.buildDunePackage {
   '';
 
   meta = with lib; {
-    description = "A Livesplit-inspired speedrunning split timer for Linux/macOS terminal";
+    description = "Livesplit-inspired speedrunning split timer for Linux/macOS terminal";
     license = licenses.mit;
     maintainers = with maintainers; [ fgaz ];
     homepage = "https://github.com/alexozer/flitter";
diff --git a/pkgs/tools/misc/flowgger/default.nix b/pkgs/tools/misc/flowgger/default.nix
index 8a37717257eb3..83d709637b1dd 100644
--- a/pkgs/tools/misc/flowgger/default.nix
+++ b/pkgs/tools/misc/flowgger/default.nix
@@ -35,7 +35,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/awslabs/flowgger";
-    description = "A fast, simple and lightweight data collector written in Rust";
+    description = "Fast, simple and lightweight data collector written in Rust";
     license = licenses.bsd2;
     maintainers = with maintainers; [];
     mainProgram = "flowgger";
diff --git a/pkgs/tools/misc/fltrdr/default.nix b/pkgs/tools/misc/fltrdr/default.nix
index 25cbf80593357..db7cd2afffced 100644
--- a/pkgs/tools/misc/fltrdr/default.nix
+++ b/pkgs/tools/misc/fltrdr/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://octobanana.com/software/fltrdr";
-    description = "A TUI text reader for the terminal";
+    description = "TUI text reader for the terminal";
 
     longDescription = ''
       Fltrdr, or flat-reader, is an interactive text reader for the terminal. It
diff --git a/pkgs/tools/misc/fluent-bit/default.nix b/pkgs/tools/misc/fluent-bit/default.nix
index 86ae31ba214d0..20349aa8ff4d4 100644
--- a/pkgs/tools/misc/fluent-bit/default.nix
+++ b/pkgs/tools/misc/fluent-bit/default.nix
@@ -8,30 +8,36 @@
 , postgresql
 , openssl
 , libyaml
+, darwin
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "fluent-bit";
-  version = "3.0.3";
+  version = "3.0.7";
 
   src = fetchFromGitHub {
     owner = "fluent";
     repo = "fluent-bit";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-nlBzD9u7DsCbJq9FxsbsP8F/tPklZ43NV8T2eiwWE24=";
+    hash = "sha256-AR+YmxIP6VZlpztpez6OViX1cGqoP/jeOiuzBcav1Eg=";
   };
 
+  # optional only to avoid linux rebuild
+  patches = lib.optionals stdenv.isDarwin [ ./macos-11-sdk-compat.patch ];
+
   nativeBuildInputs = [ cmake flex bison ];
 
   buildInputs = [ openssl libyaml postgresql ]
-    ++ lib.optionals stdenv.isLinux [ systemd ];
+    ++ lib.optionals stdenv.isLinux [ systemd ]
+    ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk_11_0.frameworks.IOKit darwin.apple_sdk_11_0.frameworks.Foundation ];
 
   cmakeFlags = [
     "-DFLB_RELEASE=ON"
     "-DFLB_METRICS=ON"
     "-DFLB_HTTP_SERVER=ON"
     "-DFLB_OUT_PGSQL=ON"
-  ];
+  ]
+  ++ lib.optionals stdenv.isDarwin [ "-DCMAKE_OSX_DEPLOYMENT_TARGET=10.13" ];
 
   env.NIX_CFLAGS_COMPILE = toString (
     # Used by the embedded luajit, but is not predefined on older mac SDKs.
diff --git a/pkgs/tools/misc/fluent-bit/macos-11-sdk-compat.patch b/pkgs/tools/misc/fluent-bit/macos-11-sdk-compat.patch
new file mode 100644
index 0000000000000..5063e028e6564
--- /dev/null
+++ b/pkgs/tools/misc/fluent-bit/macos-11-sdk-compat.patch
@@ -0,0 +1,17 @@
+diff --git i/src/flb_utils.c w/src/flb_utils.c
+index 87637f1331d7..7a0036566438 100644
+--- i/src/flb_utils.c
++++ w/src/flb_utils.c
+@@ -1424,11 +1424,11 @@ int flb_utils_get_machine_id(char **out_id, size_t *out_size)
+         return 0;
+     }
+ #elif defined (FLB_SYSTEM_MACOS)
+     bool bret;
+     CFStringRef serialNumber;
+-    io_service_t platformExpert = IOServiceGetMatchingService(kIOMainPortDefault,
++    io_service_t platformExpert = IOServiceGetMatchingService(kIOMasterPortDefault,
+         IOServiceMatching("IOPlatformExpertDevice"));
+
+     if (platformExpert) {
+         CFTypeRef serialNumberAsCFString =
+             IORegistryEntryCreateCFProperty(platformExpert,
diff --git a/pkgs/tools/misc/fluentd/default.nix b/pkgs/tools/misc/fluentd/default.nix
index 18752acb98d46..de21fe7dadefd 100644
--- a/pkgs/tools/misc/fluentd/default.nix
+++ b/pkgs/tools/misc/fluentd/default.nix
@@ -10,7 +10,7 @@ bundlerEnv {
   passthru.tests.fluentd = nixosTests.fluentd;
 
   meta = with lib; {
-    description = "A data collector";
+    description = "Data collector";
     homepage    = "https://www.fluentd.org/";
     license     = licenses.asl20;
     maintainers = with maintainers; [ offline nicknovitski ];
diff --git a/pkgs/tools/misc/foma/default.nix b/pkgs/tools/misc/foma/default.nix
index 5d82f699e7d8c..8c83d33ee359c 100644
--- a/pkgs/tools/misc/foma/default.nix
+++ b/pkgs/tools/misc/foma/default.nix
@@ -1,37 +1,34 @@
-{ lib, stdenv, fetchFromGitHub, zlib, flex, bison, readline, darwin }:
+{ lib, stdenv, fetchFromGitHub, bison, cmake, flex, pkg-config, readline, zlib }:
 
 stdenv.mkDerivation rec {
   pname = "foma";
-  version = "0.10.0alpha";
+  version = "0.10.0alpha-unstable-03-13-2024";
 
   src = fetchFromGitHub {
     owner = "mhulden";
     repo = "foma";
-    rev = "82f9acdef234eae8b7619ccc3a386cc0d7df62bc";
-    sha256 = "1vf01l18j8cksnavbabcckp9gg692w6v5lg81xrzv6f5v14zp4nr";
+    rev = "e0d8122bda4bbd56f18510bdfe840617f9736ae7";
+    hash = "sha256-UbwuHTilKWo4sVD3igcSlTqH78N6JQFvRD35QwfoX10=";
   };
 
   sourceRoot = "${src.name}/foma";
 
-  nativeBuildInputs = [ flex bison ]
-    ++ lib.optional stdenv.isDarwin darwin.cctools;
-  buildInputs = [ zlib readline ];
+  outputs = [ "out" "dev" ];
 
-  makeFlags = [
-    "CC:=$(CC)"
-    "RANLIB:=$(RANLIB)"
-    "prefix=$(out)"
-  ] ++ lib.optionals (!stdenv.isDarwin) [
-    "AR:=$(AR)" # libtool is used for darwin
-  ];
+  nativeBuildInputs = [ bison cmake flex pkg-config ];
+  buildInputs = [ readline zlib ];
 
-  patchPhase = ''
-    substituteInPlace Makefile \
-      --replace '-ltermcap' ' '
-  '';
+  cmakeFlags = [
+    # the cmake package does not handle absolute CMAKE_INSTALL_XXXDIR
+    # correctly (setting it to an absolute path causes include files to go to
+    # $out/$out/include, because the absolute path is interpreted with root at
+    # $out).
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+  ];
 
   meta = with lib; {
-    description = "A multi-purpose finite-state toolkit designed for applications ranging from natural language processing to research in automata theory";
+    description = "Multi-purpose finite-state toolkit designed for applications ranging from natural language processing to research in automata theory";
     homepage = "https://github.com/mhulden/foma";
     license = licenses.asl20;
     maintainers = [ maintainers.tckmn ];
diff --git a/pkgs/tools/misc/fontforge/default.nix b/pkgs/tools/misc/fontforge/default.nix
index d7a083baaf77c..aed9b33584b66 100644
--- a/pkgs/tools/misc/fontforge/default.nix
+++ b/pkgs/tools/misc/fontforge/default.nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = with lib; {
-    description = "A font editor";
+    description = "Font editor";
     homepage = "https://fontforge.github.io";
     platforms = platforms.all;
     license = licenses.bsd3;
diff --git a/pkgs/tools/misc/fortune/default.nix b/pkgs/tools/misc/fortune/default.nix
index 516cfc201eb8a..58928b4bf7ad4 100644
--- a/pkgs/tools/misc/fortune/default.nix
+++ b/pkgs/tools/misc/fortune/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     mainProgram = "fortune";
-    description = "A program that displays a pseudorandom message from a database of quotations";
+    description = "Program that displays a pseudorandom message from a database of quotations";
     license = licenses.bsdOriginal;
     platforms = platforms.unix;
     maintainers = with maintainers; [ vonfry ];
diff --git a/pkgs/tools/misc/fre/default.nix b/pkgs/tools/misc/fre/default.nix
index 807529f200dc4..6953a630eb4e3 100644
--- a/pkgs/tools/misc/fre/default.nix
+++ b/pkgs/tools/misc/fre/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-BEIrjHsIrNkFEEjCrTKwsJL9hptmVOI8x3ZWoo9ZUvQ=";
 
   meta = with lib; {
-    description = "A CLI tool for tracking your most-used directories and files";
+    description = "CLI tool for tracking your most-used directories and files";
     homepage = "https://github.com/camdencheek/fre";
     changelog = "https://github.com/camdencheek/fre/blob/${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
diff --git a/pkgs/tools/misc/freshfetch/default.nix b/pkgs/tools/misc/freshfetch/default.nix
index 0723c18048b97..40119d9f0b3df 100644
--- a/pkgs/tools/misc/freshfetch/default.nix
+++ b/pkgs/tools/misc/freshfetch/default.nix
@@ -39,7 +39,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A fresh take on neofetch";
+    description = "Fresh take on neofetch";
     homepage = "https://github.com/k4rakara/freshfetch";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/pkgs/tools/misc/fsearch/default.nix b/pkgs/tools/misc/fsearch/default.nix
index 933daaf3df51a..43902b5d99ca6 100644
--- a/pkgs/tools/misc/fsearch/default.nix
+++ b/pkgs/tools/misc/fsearch/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A fast file search utility for Unix-like systems based on GTK+3";
+    description = "Fast file search utility for Unix-like systems based on GTK+3";
     homepage = "https://github.com/cboxdoerfer/fsearch.git";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ artturin ];
diff --git a/pkgs/tools/misc/fsrx/default.nix b/pkgs/tools/misc/fsrx/default.nix
index 63f3b9728f1e0..846b600d8e998 100644
--- a/pkgs/tools/misc/fsrx/default.nix
+++ b/pkgs/tools/misc/fsrx/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A flow state reader in the terminal";
+    description = "Flow state reader in the terminal";
     homepage = "https://github.com/thatvegandev/fsrx";
     license = licenses.mit;
     maintainers = with maintainers; [ MoritzBoehme ];
diff --git a/pkgs/tools/misc/fw/default.nix b/pkgs/tools/misc/fw/default.nix
index 54d263fc112fb..5483bc872d4a0 100644
--- a/pkgs/tools/misc/fw/default.nix
+++ b/pkgs/tools/misc/fw/default.nix
@@ -39,7 +39,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A workspace productivity booster";
+    description = "Workspace productivity booster";
     homepage = "https://github.com/brocode/fw";
     license = licenses.wtfpl;
     maintainers = with maintainers; [ figsoda ];
diff --git a/pkgs/tools/misc/fzy/default.nix b/pkgs/tools/misc/fzy/default.nix
index b7186e08d3dbb..ea78b6c963d4d 100644
--- a/pkgs/tools/misc/fzy/default.nix
+++ b/pkgs/tools/misc/fzy/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "A better fuzzy finder";
+    description = "Better fuzzy finder";
     homepage = "https://github.com/jhawthorn/fzy";
     license = licenses.mit;
     maintainers = with maintainers; [ dywedir ];
diff --git a/pkgs/tools/misc/g933-utils/default.nix b/pkgs/tools/misc/g933-utils/default.nix
index de084fb74bf44..c4532419f1034 100644
--- a/pkgs/tools/misc/g933-utils/default.nix
+++ b/pkgs/tools/misc/g933-utils/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ udev ];
 
   meta = with lib; {
-    description = "An application to configure Logitech wireless G933/G533 headsets";
+    description = "Application to configure Logitech wireless G933/G533 headsets";
     homepage = "https://github.com/ashkitten/g933-utils";
     license = licenses.mit;
     maintainers = with maintainers; [ seqizz ];
diff --git a/pkgs/tools/misc/getoptions/default.nix b/pkgs/tools/misc/getoptions/default.nix
index 9860430515e4e..dc9bae451750b 100644
--- a/pkgs/tools/misc/getoptions/default.nix
+++ b/pkgs/tools/misc/getoptions/default.nix
@@ -30,7 +30,7 @@ stdenvNoCC.mkDerivation rec {
   checkTarget = "testall";
 
   meta = with lib; {
-    description = "An elegant option/argument parser for shell scripts (full support for bash and all POSIX shells)";
+    description = "Elegant option/argument parser for shell scripts (full support for bash and all POSIX shells)";
     homepage = "https://github.com/ko1nksm/getoptions";
     license = licenses.cc0;
     platforms = platforms.all;
diff --git a/pkgs/tools/misc/gh-dash/default.nix b/pkgs/tools/misc/gh-dash/default.nix
index 82201e0bd53dd..91de04a0565d1 100644
--- a/pkgs/tools/misc/gh-dash/default.nix
+++ b/pkgs/tools/misc/gh-dash/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "gh-dash";
-  version = "3.14.0";
+  version = "4.1.2";
 
   src = fetchFromGitHub {
     owner = "dlvhdr";
     repo = "gh-dash";
     rev = "v${version}";
-    hash = "sha256-6YPUGOQ2KBfu+3XAgub9Cpz0QBrU2kV+gq13tUtzY+w=";
+    hash = "sha256-crMlld0Lrfy/MPjQd071azRpvdII8aC2nbSRxBxYu+U=";
   };
 
-  vendorHash = "sha256-jCf9FWAhZK5hTzyy8N4r5dfUYTgESmsn8iKxCccgWiM=";
+  vendorHash = "sha256-JOd2czYWVgE1jBfeuoVRp+oE/asyk50o5Pf021jD5mY=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/misc/gh-eco/default.nix b/pkgs/tools/misc/gh-eco/default.nix
deleted file mode 100644
index 329ef60c1b4e1..0000000000000
--- a/pkgs/tools/misc/gh-eco/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib
-, fetchFromGitHub
-, buildGoModule
-}:
-
-buildGoModule rec {
-  pname = "gh-eco";
-  version = "0.1.3";
-
-  src = fetchFromGitHub {
-    owner = "coloradocolby";
-    repo = "gh-eco";
-    rev = "v${version}";
-    sha256 = "sha256-TE1AymNlxjUtkBnBO/VBjYaqLuRyxL75s6sMidKUXTE=";
-  };
-
-  vendorHash = "sha256-K85fYV1uP/qSw8GPoG1u6UQo94vQOUo4cd9Ro+UApQ0=";
-
-  ldflags = [
-    "-s"
-    "-w"
-    "-X main.Version=${version}"
-  ];
-
-  meta = with lib; {
-    homepage = "https://github.com/coloradocolby/gh-eco";
-    description = "gh extension to explore the ecosystem";
-    license = licenses.mit;
-    maintainers = with maintainers; [ helium ];
-    mainProgram = "gh-eco";
-  };
-}
-
diff --git a/pkgs/tools/misc/gibo/default.nix b/pkgs/tools/misc/gibo/default.nix
index edd166f00f565..d037059fd4e3b 100644
--- a/pkgs/tools/misc/gibo/default.nix
+++ b/pkgs/tools/misc/gibo/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://github.com/simonwhitaker/gibo";
     license = lib.licenses.publicDomain;
-    description = "A shell script for easily accessing gitignore boilerplates";
+    description = "Shell script for easily accessing gitignore boilerplates";
     platforms = lib.platforms.unix;
     mainProgram = "gibo";
   };
diff --git a/pkgs/tools/misc/github-copilot-cli/default.nix b/pkgs/tools/misc/github-copilot-cli/default.nix
index 644f3f983b8ea..821a36f75f205 100644
--- a/pkgs/tools/misc/github-copilot-cli/default.nix
+++ b/pkgs/tools/misc/github-copilot-cli/default.nix
@@ -18,7 +18,7 @@ buildNpmPackage rec {
   dontNpmBuild = true;
 
   meta = with lib; {
-    description = "A CLI experience for letting GitHub Copilot help you on the command line";
+    description = "CLI experience for letting GitHub Copilot help you on the command line";
     homepage = "https://githubnext.com/projects/copilot-cli/";
     license = licenses.unfree; # upstream has no license
     maintainers = [ maintainers.malo ];
diff --git a/pkgs/tools/misc/gitrs/default.nix b/pkgs/tools/misc/gitrs/default.nix
index 4ce36855ef67c..f6a49fe850cef 100644
--- a/pkgs/tools/misc/gitrs/default.nix
+++ b/pkgs/tools/misc/gitrs/default.nix
@@ -33,7 +33,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A simple, opinionated, tool, written in Rust, for declaratively managing Git repos on your machine";
+    description = "Simple, opinionated, tool, written in Rust, for declaratively managing Git repos on your machine";
     homepage = "https://github.com/mccurdyc/gitrs";
     license = licenses.mit;
     maintainers = with maintainers; [ mccurdyc ];
diff --git a/pkgs/tools/misc/glasgow/default.nix b/pkgs/tools/misc/glasgow/default.nix
index 77f3eb01d96ad..4821ad923ef85 100644
--- a/pkgs/tools/misc/glasgow/default.nix
+++ b/pkgs/tools/misc/glasgow/default.nix
@@ -76,7 +76,7 @@ python3.pkgs.buildPythonApplication rec {
     description = "Software for Glasgow, a digital interface multitool";
     homepage = "https://github.com/GlasgowEmbedded/Glasgow";
     license = licenses.bsd0;
-    maintainers = with maintainers; [ emily thoughtpolice ];
+    maintainers = with maintainers; [ thoughtpolice ];
     mainProgram = "glasgow";
   };
 }
diff --git a/pkgs/tools/misc/go-ios/default.nix b/pkgs/tools/misc/go-ios/default.nix
index a5f204c9d04d9..0cf946ae43e57 100644
--- a/pkgs/tools/misc/go-ios/default.nix
+++ b/pkgs/tools/misc/go-ios/default.nix
@@ -33,7 +33,7 @@ buildGoModule rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "An operating system independent implementation of iOS device features";
+    description = "Operating system independent implementation of iOS device features";
     homepage = "https://github.com/danielpaulus/go-ios";
     license = licenses.mit;
     maintainers = with maintainers; [ eyjhb ];
diff --git a/pkgs/tools/misc/go.rice/default.nix b/pkgs/tools/misc/go.rice/default.nix
index 3ee268f2a8292..4c3fd6ef4c068 100644
--- a/pkgs/tools/misc/go.rice/default.nix
+++ b/pkgs/tools/misc/go.rice/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   subPackages = [ "." "rice" ];
 
   meta = with lib; {
-    description = "A Go package that makes working with resources such as html, js, css, images, templates very easy";
+    description = "Go package that makes working with resources such as html, js, css, images, templates very easy";
     homepage = "https://github.com/GeertJohan/go.rice";
     license = licenses.bsd2;
     maintainers = with maintainers; [ blaggacao ];
diff --git a/pkgs/tools/misc/goaccess/default.nix b/pkgs/tools/misc/goaccess/default.nix
index 68169debff5bf..9fd40e7fc334d 100644
--- a/pkgs/tools/misc/goaccess/default.nix
+++ b/pkgs/tools/misc/goaccess/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "goaccess";
-  version = "1.9.2";
+  version = "1.9.3";
 
   src = fetchFromGitHub {
     owner = "allinurl";
     repo = "goaccess";
     rev = "refs/tags/v${version}";
-    hash = "sha256-FAooBAP2RbqAp7NTJNBdbRVldGCbx3SvOoTaiQ9Fl/I=";
+    hash = "sha256-ZOngDAHA88YQvkx2pk5ZSpBzxqelvCIR4z5hiFmfGyc=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/misc/godu/default.nix b/pkgs/tools/misc/godu/default.nix
index 7bd29ed43661e..1f310b2f68817 100644
--- a/pkgs/tools/misc/godu/default.nix
+++ b/pkgs/tools/misc/godu/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "godu";
-  version = "1.4.1";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     owner = "viktomas";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-fJeSUAuNELZZ1DcybNsYd2ZX93VYWsLum5tHp68ZVlo=";
+    hash = "sha256-z1LCPweaf8e/HWkSrRCiMYZl4F4dKo4/wDkWgY+eTvk=";
   };
 
   vendorHash = "sha256-8cZCeZ0gqxqbwB0WuEOFmEUNQd3/KcLeN0eLGfWG8BY=";
diff --git a/pkgs/tools/misc/goreleaser/default.nix b/pkgs/tools/misc/goreleaser/default.nix
index 1fff3856bfb64..d73ade81d0242 100644
--- a/pkgs/tools/misc/goreleaser/default.nix
+++ b/pkgs/tools/misc/goreleaser/default.nix
@@ -9,16 +9,16 @@
 }:
 buildGoModule rec {
   pname = "goreleaser";
-  version = "1.26.1";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-ZUHXH8WBjYW5qE7iQPP8URMUNxn2eLl4UbhAxDbn3qI=";
+    hash = "sha256-GC9jT0vEokezBeCUSvSal7mcExiPgGcTHmP94A1cEPE=";
   };
 
-  vendorHash = "sha256-EPrYZz6I9M+zih4gGQTtJ5LAjsQgDqvNMk7hU3PwkKQ=";
+  vendorHash = "sha256-0EO99dUNdIEQt8iswPOvHFt/+XeihhJRhJIt2bC9Zp0=";
 
   ldflags =
     [ "-s" "-w" "-X main.version=${version}" "-X main.builtBy=nixpkgs" ];
diff --git a/pkgs/tools/misc/gotify-cli/default.nix b/pkgs/tools/misc/gotify-cli/default.nix
index 296f3d19a88d4..4675789c59149 100644
--- a/pkgs/tools/misc/gotify-cli/default.nix
+++ b/pkgs/tools/misc/gotify-cli/default.nix
@@ -24,7 +24,7 @@ buildGoModule rec {
   meta = with lib; {
     license = licenses.mit;
     homepage = "https://github.com/gotify/cli";
-    description = "A command line interface for pushing messages to gotify/server";
+    description = "Command line interface for pushing messages to gotify/server";
     maintainers = with maintainers; [ ];
     mainProgram = "gotify";
   };
diff --git a/pkgs/tools/misc/gradescope-submit/default.nix b/pkgs/tools/misc/gradescope-submit/default.nix
index 89e7dc89438c8..54ae4b4583822 100644
--- a/pkgs/tools/misc/gradescope-submit/default.nix
+++ b/pkgs/tools/misc/gradescope-submit/default.nix
@@ -26,7 +26,7 @@ ocamlPackages.buildDunePackage rec {
   ];
 
   meta = with lib; {
-    description = "A small script to submit to Gradescope via GitHub";
+    description = "Small script to submit to Gradescope via GitHub";
     homepage = "https://github.com/nmittu/gradescope-submit";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/pkgs/tools/misc/grass-sass/default.nix b/pkgs/tools/misc/grass-sass/default.nix
index 457822052d01a..e8c788169b619 100644
--- a/pkgs/tools/misc/grass-sass/default.nix
+++ b/pkgs/tools/misc/grass-sass/default.nix
@@ -5,20 +5,20 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "grass";
-  version = "0.13.2";
+  version = "0.13.3";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-JFfNj+IMwIZ+DkaCy3mobSAaq4YphhMpGkx/P33UdJE=";
+    hash = "sha256-catGfGiKjB6KZCt6yjwdR5VV0RAaBfiUnjlyCCBguBs=";
   };
 
-  cargoHash = "sha256-WzG+yOjxTX2ms2JMpZJYcaKZw0gc9g6/OUe/T7oyK20=";
+  cargoHash = "sha256-xonfDCJWVIuZQOBSLcrEFnziHwz6ZNQQxvVh+ulueUo=";
 
   # tests require rust nightly
   doCheck = false;
 
   meta = with lib; {
-    description = "A Sass compiler written purely in Rust";
+    description = "Sass compiler written purely in Rust";
     homepage = "https://github.com/connorskees/grass";
     changelog = "https://github.com/connorskees/grass/blob/master/CHANGELOG.md#${replaceStrings [ "." ] [ "" ] version}";
     license = licenses.mit;
diff --git a/pkgs/tools/misc/graylog/plugins.nix b/pkgs/tools/misc/graylog/plugins.nix
index 7907a4c9a2256..3f5229549c8d2 100644
--- a/pkgs/tools/misc/graylog/plugins.nix
+++ b/pkgs/tools/misc/graylog/plugins.nix
@@ -38,7 +38,7 @@ in {
     };
     meta = {
       homepage = "https://github.com/cvtienhoven/graylog-plugin-aggregates";
-      description = "A plugin that enables users to execute term searches and get notified when the given criteria are met";
+      description = "Plugin that enables users to execute term searches and get notified when the given criteria are met";
     };
   };
   auth_sso = glPlugin rec {
@@ -114,7 +114,7 @@ in {
     '';
     meta = {
       homepage = "https://github.com/Graylog2/graylog-plugin-integrations";
-      description = "A collection of open source Graylog integrations that will be released together";
+      description = "Collection of open source Graylog integrations that will be released together";
     };
   };
   internal-logs = glPlugin rec {
@@ -140,7 +140,7 @@ in {
     };
     meta = {
       homepage = "https://github.com/graylog-labs/graylog-plugin-ipanonymizer";
-      description = "A graylog-server plugin that replaces the last octet of IP addresses in messages with xxx";
+      description = "Graylog-server plugin that replaces the last octet of IP addresses in messages with xxx";
     };
   };
   jabber = glPlugin rec {
@@ -166,7 +166,7 @@ in {
     };
     meta = {
       homepage = "https://github.com/graylog-labs/graylog-plugin-metrics";
-      description = "An output plugin for integrating Graphite, Ganglia and StatsD with Graylog";
+      description = "Output plugin for integrating Graphite, Ganglia and StatsD with Graylog";
     };
   };
   mongodb-profiler = glPlugin rec {
@@ -192,7 +192,7 @@ in {
     };
     meta = {
       homepage = "https://github.com/graylog-labs/graylog-plugin-pagerduty";
-      description = "An alarm callback plugin for integrating PagerDuty into Graylog";
+      description = "Alarm callback plugin for integrating PagerDuty into Graylog";
     };
   };
   redis = glPlugin rec {
@@ -285,7 +285,7 @@ in {
     };
     meta = {
       homepage = "https://github.com/graylog-labs/graylog-plugin-twiliosms";
-      description = "An alarm callback plugin for integrating the Twilio SMS API into Graylog";
+      description = "Alarm callback plugin for integrating the Twilio SMS API into Graylog";
     };
   };
   twitter = glPlugin rec {
diff --git a/pkgs/tools/misc/grc/default.nix b/pkgs/tools/misc/grc/default.nix
index e8f4282fb1937..e080918f4c96a 100644
--- a/pkgs/tools/misc/grc/default.nix
+++ b/pkgs/tools/misc/grc/default.nix
@@ -40,7 +40,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "http://kassiopeia.juls.savba.sk/~garabik/software/grc.html";
-    description = "A generic text colouriser";
+    description = "Generic text colouriser";
     longDescription = ''
       Generic Colouriser is yet another colouriser (written in Python) for
       beautifying your logfiles or output of commands.
diff --git a/pkgs/tools/misc/grex/default.nix b/pkgs/tools/misc/grex/default.nix
index d68deba131ffc..2697c6b3febee 100644
--- a/pkgs/tools/misc/grex/default.nix
+++ b/pkgs/tools/misc/grex/default.nix
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A command-line tool for generating regular expressions from user-provided test cases";
+    description = "Command-line tool for generating regular expressions from user-provided test cases";
     homepage = "https://github.com/pemistahl/grex";
     changelog = "https://github.com/pemistahl/grex/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/tools/misc/grit/default.nix b/pkgs/tools/misc/grit/default.nix
index 448224c9e9ad7..991aa2135ff59 100644
--- a/pkgs/tools/misc/grit/default.nix
+++ b/pkgs/tools/misc/grit/default.nix
@@ -15,7 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A multitree-based personal task manager";
+    description = "Multitree-based personal task manager";
     homepage = "https://github.com/climech/grit";
     license = licenses.mit;
     maintainers = [ maintainers.ivar ];
diff --git a/pkgs/tools/misc/grizzly/default.nix b/pkgs/tools/misc/grizzly/default.nix
index ed5c67d95c245..af80a479ba7f5 100644
--- a/pkgs/tools/misc/grizzly/default.nix
+++ b/pkgs/tools/misc/grizzly/default.nix
@@ -19,7 +19,7 @@ buildGoModule rec {
   subPackages = [ "cmd/grr" ];
 
   meta = with lib; {
-    description = "A utility for managing Jsonnet dashboards against the Grafana API";
+    description = "Utility for managing Jsonnet dashboards against the Grafana API";
     homepage = "https://grafana.github.io/grizzly/";
     license = licenses.asl20;
     maintainers = with lib.maintainers; [ nrhtr ];
diff --git a/pkgs/tools/misc/grub/default.nix b/pkgs/tools/misc/grub/default.nix
index f92f765a6fab1..ce58f6ea0a18a 100644
--- a/pkgs/tools/misc/grub/default.nix
+++ b/pkgs/tools/misc/grub/default.nix
@@ -1,5 +1,6 @@
-{ lib, stdenv, runCommand, fetchFromSavannah, fetchpatch, flex, bison, python3, autoconf, automake, libtool, bash
-, rsync, gettext, ncurses, libusb-compat-0_1, freetype, qemu, lvm2, unifont, pkg-config
+{ lib, stdenv, fetchFromSavannah, flex, bison, python3, autoconf, automake, libtool, bash
+, gettext, ncurses, libusb-compat-0_1, freetype, qemu, lvm2, unifont, pkg-config
+, fetchzip
 , buildPackages
 , nixosTests
 , fuse # only needed for grub-mount
@@ -53,22 +54,13 @@ let
     hash = "sha256-lathsBb2f7urh8R86ihpTdwo3h1hAHnRiHd5gCLVpBc=";
   };
 
-  # HACK: the translations are stored on a different server,
-  # not versioned and not included in the git repo, so fetch them
-  # and hope they don't change often
-  locales = runCommand "grub-locales" {
-    nativeBuildInputs = [rsync];
-
-    outputHashAlgo = "sha256";
-    outputHashMode = "recursive";
-    outputHash = "sha256-XzW2e7Xe7Pi297eV/fD2B/6uONEz9UjL2EHDCY0huTA=";
-  }
-  ''
-    mkdir -p po
-    ${src}/linguas.sh
-
-    mv po $out
-  '';
+  # The locales are fetched from translationproject.org at build time,
+  # but those translations are not versioned/stable. For that reason
+  # we take them from the nearest release tarball instead:
+  locales = fetchzip {
+    url = "https://ftp.gnu.org/gnu/grub/grub-2.12.tar.gz";
+    hash = "sha256-IoRiJHNQ58y0UhCAD0CrpFiI8Mz1upzAtyh5K4Njh/w=";
+  };
 in (
 
 assert efiSupport -> canEfi;
@@ -134,7 +126,7 @@ stdenv.mkDerivation rec {
         exit 1
       fi
 
-      cp -f --no-preserve=mode ${locales}/* po
+      cp -f --no-preserve=mode ${locales}/po/LINGUAS ${locales}/po/*.po po
 
       ./bootstrap --no-git --gnulib-srcdir=${gnulib}
 
diff --git a/pkgs/tools/misc/gtkterm/default.nix b/pkgs/tools/misc/gtkterm/default.nix
index 7dac20b72c478..5ec61bb70f503 100644
--- a/pkgs/tools/misc/gtkterm/default.nix
+++ b/pkgs/tools/misc/gtkterm/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A simple, graphical serial port terminal emulator";
+    description = "Simple, graphical serial port terminal emulator";
     homepage = "https://github.com/wvdakker/gtkterm";
     license = licenses.gpl3Plus;
     longDescription = ''
diff --git a/pkgs/tools/misc/gwe/default.nix b/pkgs/tools/misc/gwe/default.nix
index 5f2c29c644d97..58b116da3606c 100644
--- a/pkgs/tools/misc/gwe/default.nix
+++ b/pkgs/tools/misc/gwe/default.nix
@@ -32,13 +32,13 @@ let
  ]);
 in stdenv.mkDerivation rec {
   pname = "gwe";
-  version = "0.15.7";
+  version = "0.15.9";
 
   src = fetchFromGitLab {
     owner = "leinardi";
     repo = pname;
     rev = version;
-    sha256 = "sha256-0/VQD3WuSMShsPjydOxVEufBZqVOCTFO3UbJpsy+oLE=";
+    sha256 = "sha256-agq967QN1nsAOn+1Ce64+id7UlSS/K3XGsUUihWOztk=";
   };
 
   prePatch = ''
diff --git a/pkgs/tools/misc/h/default.nix b/pkgs/tools/misc/h/default.nix
index 6e4ae6381e756..6d65accc51d54 100644
--- a/pkgs/tools/misc/h/default.nix
+++ b/pkgs/tools/misc/h/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "h";
-  version = "1.0.4";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "zimbatm";
     repo = "h";
     rev = "v${version}";
-    hash = "sha256-eitUKOo2c1c+SyctkUW/SUb2RCKUoU6nJplfJVdwBSs=";
+    hash = "sha256-4rhol8a+OMX2+MxFPEM1WzM/70C7sye8jw4pg7CujRo=";
   };
 
   buildInputs = [ ruby ];
diff --git a/pkgs/tools/misc/h5utils/default.nix b/pkgs/tools/misc/h5utils/default.nix
index 705ac56f5baf9..90f9b48dd1182 100644
--- a/pkgs/tools/misc/h5utils/default.nix
+++ b/pkgs/tools/misc/h5utils/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     ++ optional (libmatheval != null) libmatheval;
 
   meta = with lib; {
-    description = "A set of utilities for visualization and conversion of scientific data in the free, portable HDF5 format";
+    description = "Set of utilities for visualization and conversion of scientific data in the free, portable HDF5 format";
     homepage = "https://github.com/stevengj/h5utils";
     changelog = "https://github.com/NanoComp/h5utils/releases/tag/${version}";
     license = with licenses; [ mit gpl2Plus ];
diff --git a/pkgs/tools/misc/hackertyper/default.nix b/pkgs/tools/misc/hackertyper/default.nix
index da9af1eca922f..0428a38cfeb5c 100644
--- a/pkgs/tools/misc/hackertyper/default.nix
+++ b/pkgs/tools/misc/hackertyper/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A C rewrite of hackertyper.net";
+    description = "C rewrite of hackertyper.net";
     homepage = "https://github.com/Hurricane996/Hackertyper";
     license = licenses.gpl3;
     maintainers = [ maintainers.marius851000 ];
diff --git a/pkgs/tools/misc/halp/default.nix b/pkgs/tools/misc/halp/default.nix
index e88e23f7cfe7c..e036336eb10ce 100644
--- a/pkgs/tools/misc/halp/default.nix
+++ b/pkgs/tools/misc/halp/default.nix
@@ -70,7 +70,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A CLI tool to get help with CLI tools";
+    description = "CLI tool to get help with CLI tools";
     homepage = "https://github.com/orhun/halp";
     changelog = "https://github.com/orhun/halp/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ asl20 mit ];
diff --git a/pkgs/tools/misc/hashit/default.nix b/pkgs/tools/misc/hashit/default.nix
index ecd7aaf5cdcc4..5e9f07700dc28 100644
--- a/pkgs/tools/misc/hashit/default.nix
+++ b/pkgs/tools/misc/hashit/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A simple app for checking usual checksums - Designed for elementary OS";
+    description = "Simple app for checking usual checksums - Designed for elementary OS";
     homepage = "https://github.com/artemanufrij/hashit";
     license = licenses.gpl2Plus;
     maintainers = teams.pantheon.members;
diff --git a/pkgs/tools/misc/hashpump/default.nix b/pkgs/tools/misc/hashpump/default.nix
index 11b0650d849d7..cdb153f2c0802 100644
--- a/pkgs/tools/misc/hashpump/default.nix
+++ b/pkgs/tools/misc/hashpump/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A tool to exploit the hash length extension attack in various hashing algorithms";
+    description = "Tool to exploit the hash length extension attack in various hashing algorithms";
     homepage = "https://github.com/bwall/HashPump";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ t4ccer ];
diff --git a/pkgs/tools/misc/hdf5/default.nix b/pkgs/tools/misc/hdf5/default.nix
index c6855a47f8e63..bbea88413c776 100644
--- a/pkgs/tools/misc/hdf5/default.nix
+++ b/pkgs/tools/misc/hdf5/default.nix
@@ -103,6 +103,12 @@ stdenv.mkDerivation rec {
       mv "$file" "''${file%%-shared}"
     done
     popd
+  '' + lib.optionalString fortranSupport
+  ''
+    mv $out/mod/shared $dev/include
+    rm -r $out/mod
+
+    find "$out" -type f -exec remove-references-to -t ${fortran} '{}' +
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/tools/misc/heatseeker/default.nix b/pkgs/tools/misc/heatseeker/default.nix
index 210e184e9d4a9..388a40f2832b8 100644
--- a/pkgs/tools/misc/heatseeker/default.nix
+++ b/pkgs/tools/misc/heatseeker/default.nix
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   TRAVIS = "true";
 
   meta = with lib; {
-    description = "A general-purpose fuzzy selector";
+    description = "General-purpose fuzzy selector";
     homepage = "https://github.com/rschmitt/heatseeker";
     license = licenses.mit;
     maintainers = [ ];
diff --git a/pkgs/tools/misc/hebcal/default.nix b/pkgs/tools/misc/hebcal/default.nix
index ef1686c20cb44..d8a2b3b7295b8 100644
--- a/pkgs/tools/misc/hebcal/default.nix
+++ b/pkgs/tools/misc/hebcal/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://hebcal.github.io";
-    description = "A perpetual Jewish Calendar";
+    description = "Perpetual Jewish Calendar";
     longDescription = "Hebcal is a program which prints out the days in the Jewish calendar for a given Gregorian year. Hebcal is fairly flexible in terms of which events in the Jewish calendar it displays.";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.hhm ];
diff --git a/pkgs/tools/misc/heimdall/default.nix b/pkgs/tools/misc/heimdall/default.nix
index 422363ef418ab..ce56a4f4057b1 100644
--- a/pkgs/tools/misc/heimdall/default.nix
+++ b/pkgs/tools/misc/heimdall/default.nix
@@ -46,7 +46,7 @@ mkDerivation rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     homepage = "http://www.glassechidna.com.au/products/heimdall/";
-    description = "A cross-platform tool suite to flash firmware onto Samsung Galaxy S devices";
+    description = "Cross-platform tool suite to flash firmware onto Samsung Galaxy S devices";
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.unix;
diff --git a/pkgs/tools/misc/hexdiff/default.nix b/pkgs/tools/misc/hexdiff/default.nix
index 937a07bee78bc..9ee711e7457ea 100644
--- a/pkgs/tools/misc/hexdiff/default.nix
+++ b/pkgs/tools/misc/hexdiff/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "https://github.com/ahroach/hexdiff";
-    description = "A terminal application for differencing two binary files, with color-coded output";
+    description = "Terminal application for differencing two binary files, with color-coded output";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ rogarb ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/tools/misc/hexyl/default.nix b/pkgs/tools/misc/hexyl/default.nix
index fa68fb4a2d439..5f72c7a702f3a 100644
--- a/pkgs/tools/misc/hexyl/default.nix
+++ b/pkgs/tools/misc/hexyl/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-fXrdOiCmRgMPJxZIS/SkTkZZkag8ZUhNnMlU4k1m/+0=";
 
   meta = with lib; {
-    description = "A command-line hex viewer";
+    description = "Command-line hex viewer";
     longDescription = ''
       `hexyl` is a simple hex viewer for the terminal. It uses a colored
       output to distinguish different categories of bytes (NULL bytes,
diff --git a/pkgs/tools/misc/hid-listen/default.nix b/pkgs/tools/misc/hid-listen/default.nix
index 62c2d7beb2ff5..d126bb9e850fb 100644
--- a/pkgs/tools/misc/hid-listen/default.nix
+++ b/pkgs/tools/misc/hid-listen/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A tool thats prints debugging information from usb HID devices";
+    description = "Tool thats prints debugging information from usb HID devices";
     homepage = "https://www.pjrc.com/teensy/hid_listen.html";
     license = licenses.gpl3;
     maintainers = with maintainers; [ tomsmeets ];
diff --git a/pkgs/tools/misc/hostsblock/default.nix b/pkgs/tools/misc/hostsblock/default.nix
index 0346c81c66dbc..96eac13b76a48 100644
--- a/pkgs/tools/misc/hostsblock/default.nix
+++ b/pkgs/tools/misc/hostsblock/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "An ad- and malware-blocking script for Linux";
+    description = "Ad- and malware-blocking script for Linux";
     homepage = "http://gaenserich.github.io/hostsblock/";
     license = licenses.gpl3;
     maintainers = [ maintainers.nicknovitski ];
diff --git a/pkgs/tools/misc/html-proofer/default.nix b/pkgs/tools/misc/html-proofer/default.nix
index cc4f6f69f2633..e15476cca08c5 100644
--- a/pkgs/tools/misc/html-proofer/default.nix
+++ b/pkgs/tools/misc/html-proofer/default.nix
@@ -11,7 +11,7 @@ bundlerEnv rec {
   passthru.updateScript = bundlerUpdateScript pname;
 
   meta = with lib; {
-    description = "A tool to validate HTML files";
+    description = "Tool to validate HTML files";
     homepage    = "https://github.com/gjtorikian/html-proofer";
     license     = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/tools/misc/hunt/default.nix b/pkgs/tools/misc/hunt/default.nix
index 6163e8cf3b0da..69b9de8f7e3da 100644
--- a/pkgs/tools/misc/hunt/default.nix
+++ b/pkgs/tools/misc/hunt/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "hunt";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "LyonSyonII";
     repo = "hunt-rs";
     rev = "v${version}";
-    sha256 = "sha256-cpqietS/yTI5ONkH4jjIUOVATutd2vj9xmxRbBwmzeI=";
+    sha256 = "sha256-NKXZECtepuFg6qTuXF9Gnat/vnrygt3UOZb0YUKPqi8=";
   };
 
-  cargoHash = "sha256-LWZaU+zHbfiogWXW9XGA3iP95u3qqh2LX9LL2lsQPLg=";
+  cargoHash = "sha256-ExwcFJVqQF/RTUyv1FvOCnlB+9Z7uhi/5UUjW7WcXTk=";
 
   meta = with lib; {
     description = "Simplified Find command made with Rust";
diff --git a/pkgs/tools/misc/ili2c/default.nix b/pkgs/tools/misc/ili2c/default.nix
index d4ac130463770..1d6f373db83a3 100644
--- a/pkgs/tools/misc/ili2c/default.nix
+++ b/pkgs/tools/misc/ili2c/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "The INTERLIS Compiler";
+    description = "INTERLIS Compiler";
     longDescription = ''
       Checks the syntactical correctness of an INTERLIS data model.
     '';
@@ -63,7 +63,7 @@ stdenv.mkDerivation (finalAttrs: {
     ];
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; teams.geospatial.members ++ [ das-g ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     mainProgram = "ili2c";
   };
 })
diff --git a/pkgs/tools/misc/infracost/default.nix b/pkgs/tools/misc/infracost/default.nix
index 51316f969ec1a..16b0f64a22079 100644
--- a/pkgs/tools/misc/infracost/default.nix
+++ b/pkgs/tools/misc/infracost/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "infracost";
-  version = "0.10.33";
+  version = "0.10.37";
 
   src = fetchFromGitHub {
     owner = "infracost";
     rev = "v${version}";
     repo = "infracost";
-    sha256 = "sha256-zIAf6lD9XFmrAgvVmIY+tXLn4FmkkdimjVCWasK7OCc=";
+    sha256 = "sha256-WcX/H0zGXbkf5mM5Xq07UuQixUCCUXRPmBVrf3V4TEM=";
   };
-  vendorHash = "sha256-ji9TpUcq0aUAn5vV5dnaC15i0Uli2Qsz/BrOKB3/Rl4=";
+  vendorHash = "sha256-bLSj4/+7h0uHdR956VL4iLqRddKV5Ac+FIL1zJxPCW8=";
 
   ldflags = [ "-s" "-w" "-X github.com/infracost/infracost/internal/version.Version=v${version}" ];
 
@@ -25,7 +25,8 @@ buildGoModule rec {
     unset subPackages
 
     # remove tests that require networking
-    rm cmd/infracost/{breakdown,diff,hcl,run}_test.go
+    rm cmd/infracost/{breakdown,comment,diff,hcl,run,upload}_test.go
+    rm cmd/infracost/comment_{azure_repos,bitbucket,github,gitlab}_test.go
   '';
 
   checkFlags = [
diff --git a/pkgs/tools/misc/ink/default.nix b/pkgs/tools/misc/ink/default.nix
index 6932d04c8d6ca..6e46240b64d62 100644
--- a/pkgs/tools/misc/ink/default.nix
+++ b/pkgs/tools/misc/ink/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "man" ];
 
   meta = with lib; {
-    description = "A command line tool for checking the ink level of your locally connected printer";
+    description = "Command line tool for checking the ink level of your locally connected printer";
     longDescription = ''
       Ink is a command line tool for checking the ink level of your locally connected printer on a system which runs Linux or FreeBSD. Canon BJNP network printers are supported too.
     '';
diff --git a/pkgs/tools/misc/inklingreader/default.nix b/pkgs/tools/misc/inklingreader/default.nix
index efe1eeb34aebc..55596ba489992 100644
--- a/pkgs/tools/misc/inklingreader/default.nix
+++ b/pkgs/tools/misc/inklingreader/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://github.com/roelj/inklingreader";
-    description = "A GNU/Linux-friendly version of the Wacom Inkling SketchManager";
+    description = "GNU/Linux-friendly version of the Wacom Inkling SketchManager";
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ totoroot ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/tools/misc/inspec/Gemfile.lock b/pkgs/tools/misc/inspec/Gemfile.lock
index 503207134db06..d0f1255960b47 100644
--- a/pkgs/tools/misc/inspec/Gemfile.lock
+++ b/pkgs/tools/misc/inspec/Gemfile.lock
@@ -1,204 +1,207 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (7.0.4.3)
+    activesupport (7.0.8)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
       tzinfo (~> 2.0)
-    addressable (2.8.4)
+    addressable (2.8.6)
       public_suffix (>= 2.0.2, < 6.0)
     ast (2.4.2)
-    aws-eventstream (1.2.0)
-    aws-partitions (1.749.0)
-    aws-sdk-alexaforbusiness (1.58.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-eventstream (1.3.0)
+    aws-partitions (1.864.0)
+    aws-sdk-account (1.20.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-alexaforbusiness (1.67.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
     aws-sdk-amplify (1.32.0)
       aws-sdk-core (~> 3, >= 3.120.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-apigateway (1.81.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-apigateway (1.90.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-apigatewayv2 (1.44.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-apigatewayv2 (1.53.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
     aws-sdk-applicationautoscaling (1.51.0)
       aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-athena (1.64.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-athena (1.79.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-autoscaling (1.63.0)
-      aws-sdk-core (~> 3, >= 3.112.0)
+    aws-sdk-autoscaling (1.92.0)
+      aws-sdk-core (~> 3, >= 3.176.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-batch (1.47.0)
-      aws-sdk-core (~> 3, >= 3.112.0)
+    aws-sdk-batch (1.73.0)
+      aws-sdk-core (~> 3, >= 3.176.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-budgets (1.52.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-budgets (1.62.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-cloudformation (1.77.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-cloudformation (1.97.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-cloudfront (1.76.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-cloudfront (1.86.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-cloudhsm (1.41.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-cloudhsm (1.50.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-cloudhsmv2 (1.44.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-cloudhsmv2 (1.53.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-cloudtrail (1.58.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-cloudtrail (1.74.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-cloudwatch (1.72.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-cloudwatch (1.84.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-cloudwatchevents (1.46.0)
-      aws-sdk-core (~> 3, >= 3.112.0)
+    aws-sdk-cloudwatchevents (1.62.0)
+      aws-sdk-core (~> 3, >= 3.176.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-cloudwatchlogs (1.62.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-cloudwatchlogs (1.75.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-codecommit (1.53.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-codecommit (1.62.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-codedeploy (1.52.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-codedeploy (1.63.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-codepipeline (1.55.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-codepipeline (1.67.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-cognitoidentity (1.31.0)
-      aws-sdk-core (~> 3, >= 3.112.0)
+    aws-sdk-cognitoidentity (1.45.0)
+      aws-sdk-core (~> 3, >= 3.176.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-cognitoidentityprovider (1.53.0)
-      aws-sdk-core (~> 3, >= 3.112.0)
+    aws-sdk-cognitoidentityprovider (1.76.0)
+      aws-sdk-core (~> 3, >= 3.176.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-configservice (1.89.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-configservice (1.103.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-core (3.171.0)
-      aws-eventstream (~> 1, >= 1.0.2)
+    aws-sdk-core (3.190.0)
+      aws-eventstream (~> 1, >= 1.3.0)
       aws-partitions (~> 1, >= 1.651.0)
-      aws-sigv4 (~> 1.5)
+      aws-sigv4 (~> 1.8)
       jmespath (~> 1, >= 1.6.1)
-    aws-sdk-costandusagereportservice (1.43.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-costandusagereportservice (1.53.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-databasemigrationservice (1.53.0)
-      aws-sdk-core (~> 3, >= 3.112.0)
+    aws-sdk-databasemigrationservice (1.80.0)
+      aws-sdk-core (~> 3, >= 3.176.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-dynamodb (1.84.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-dynamodb (1.98.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-ec2 (1.375.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-ec2 (1.430.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-ecr (1.58.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-ecr (1.68.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-ecrpublic (1.16.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-ecrpublic (1.25.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-ecs (1.114.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-ecs (1.135.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-efs (1.59.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-efs (1.71.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-eks (1.83.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-eks (1.95.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-elasticache (1.84.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-elasticache (1.95.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-elasticbeanstalk (1.54.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-elasticbeanstalk (1.63.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-elasticloadbalancing (1.42.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-elasticloadbalancing (1.51.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-elasticloadbalancingv2 (1.84.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-elasticloadbalancingv2 (1.96.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-elasticsearchservice (1.69.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-elasticsearchservice (1.79.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
     aws-sdk-emr (1.53.0)
       aws-sdk-core (~> 3, >= 3.121.2)
       aws-sigv4 (~> 1.1)
-    aws-sdk-eventbridge (1.24.0)
-      aws-sdk-core (~> 3, >= 3.112.0)
+    aws-sdk-eventbridge (1.46.0)
+      aws-sdk-core (~> 3, >= 3.176.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-firehose (1.51.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-firehose (1.60.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-glue (1.88.0)
-      aws-sdk-core (~> 3, >= 3.112.0)
+    aws-sdk-glue (1.145.0)
+      aws-sdk-core (~> 3, >= 3.176.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-guardduty (1.67.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-guardduty (1.85.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-iam (1.77.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-iam (1.92.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-kafka (1.54.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-kafka (1.67.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-kinesis (1.45.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-kinesis (1.54.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-kms (1.63.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-kms (1.74.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-lambda (1.95.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-lambda (1.113.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
     aws-sdk-mq (1.40.0)
       aws-sdk-core (~> 3, >= 3.120.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-networkfirewall (1.26.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-networkfirewall (1.39.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-networkmanager (1.30.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-networkmanager (1.40.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-organizations (1.59.0)
-      aws-sdk-core (~> 3, >= 3.112.0)
+    aws-sdk-organizations (1.77.0)
+      aws-sdk-core (~> 3, >= 3.176.0)
       aws-sigv4 (~> 1.1)
     aws-sdk-ram (1.26.0)
       aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-rds (1.176.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-rds (1.208.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-redshift (1.91.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-redshift (1.107.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-route53 (1.71.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-route53 (1.83.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-route53domains (1.43.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-route53domains (1.54.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-route53resolver (1.40.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-route53resolver (1.51.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.120.1)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-s3 (1.141.0)
+      aws-sdk-core (~> 3, >= 3.189.0)
       aws-sdk-kms (~> 1)
-      aws-sigv4 (~> 1.4)
+      aws-sigv4 (~> 1.8)
     aws-sdk-s3control (1.43.0)
       aws-sdk-core (~> 3, >= 3.122.0)
       aws-sigv4 (~> 1.1)
     aws-sdk-secretsmanager (1.46.0)
       aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-securityhub (1.79.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-securityhub (1.99.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
     aws-sdk-servicecatalog (1.60.0)
       aws-sdk-core (~> 3, >= 3.112.0)
@@ -206,8 +209,8 @@ GEM
     aws-sdk-ses (1.41.0)
       aws-sdk-core (~> 3, >= 3.120.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-shield (1.51.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-shield (1.60.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
     aws-sdk-signer (1.32.0)
       aws-sdk-core (~> 3, >= 3.120.0)
@@ -215,17 +218,17 @@ GEM
     aws-sdk-simpledb (1.29.0)
       aws-sdk-core (~> 3, >= 3.120.0)
       aws-sigv2 (~> 1.0)
-    aws-sdk-sms (1.43.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-sms (1.52.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-sns (1.60.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-sns (1.70.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-sqs (1.53.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-sqs (1.69.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-ssm (1.150.0)
-      aws-sdk-core (~> 3, >= 3.165.0)
+    aws-sdk-ssm (1.162.0)
+      aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
     aws-sdk-states (1.39.0)
       aws-sdk-core (~> 3, >= 3.112.0)
@@ -233,14 +236,14 @@ GEM
     aws-sdk-synthetics (1.19.0)
       aws-sdk-core (~> 3, >= 3.121.2)
       aws-sigv4 (~> 1.1)
-    aws-sdk-transfer (1.34.0)
-      aws-sdk-core (~> 3, >= 3.112.0)
+    aws-sdk-transfer (1.73.0)
+      aws-sdk-core (~> 3, >= 3.176.0)
       aws-sigv4 (~> 1.1)
     aws-sdk-waf (1.43.0)
       aws-sdk-core (~> 3, >= 3.122.0)
       aws-sigv4 (~> 1.1)
-    aws-sigv2 (1.1.0)
-    aws-sigv4 (1.5.2)
+    aws-sigv2 (1.2.0)
+    aws-sigv4 (1.8.0)
       aws-eventstream (~> 1, >= 1.0.2)
     azure_graph_rbac (0.17.2)
       ms_rest_azure (~> 0.12.0)
@@ -254,17 +257,24 @@ GEM
       ms_rest_azure (~> 0.12.0)
     bson (4.15.0)
     builder (3.2.4)
-    chef-config (18.2.7)
+    chef-config (18.3.0)
       addressable
-      chef-utils (= 18.2.7)
+      chef-utils (= 18.3.0)
       fuzzyurl
       mixlib-config (>= 2.2.12, < 4.0)
       mixlib-shellout (>= 2.0, < 4.0)
       tomlrb (~> 1.2)
+    chef-licensing (0.7.5)
+      activesupport (~> 7.0, < 7.1)
+      chef-config (>= 15)
+      faraday (>= 1, < 3)
+      faraday-http-cache
+      tty-prompt (~> 0.23)
+      tty-spinner (~> 0.9.3)
     chef-telemetry (1.1.1)
       chef-config
       concurrent-ruby (~> 1.0)
-    chef-utils (18.2.7)
+    chef-utils (18.3.0)
       concurrent-ruby
     coderay (1.1.3)
     concurrent-ruby (1.2.2)
@@ -275,10 +285,34 @@ GEM
     docker-api (2.2.0)
       excon (>= 0.47.0)
       multi_json
-    domain_name (0.5.20190701)
-      unf (>= 0.0.5, < 1.0.0)
+    domain_name (0.6.20231109)
+    dry-configurable (0.13.0)
+      concurrent-ruby (~> 1.0)
+      dry-core (~> 0.6)
+    dry-container (0.11.0)
+      concurrent-ruby (~> 1.0)
+    dry-core (0.9.1)
+      concurrent-ruby (~> 1.0)
+      zeitwerk (~> 2.6)
+    dry-inflector (0.3.0)
+    dry-logic (1.3.0)
+      concurrent-ruby (~> 1.0)
+      dry-core (~> 0.9, >= 0.9)
+      zeitwerk (~> 2.6)
+    dry-struct (1.5.2)
+      dry-core (~> 0.9, >= 0.9)
+      dry-types (~> 1.6)
+      ice_nine (~> 0.11)
+      zeitwerk (~> 2.6)
+    dry-types (1.6.1)
+      concurrent-ruby (~> 1.0)
+      dry-container (~> 0.3)
+      dry-core (~> 0.9, >= 0.9)
+      dry-inflector (~> 0.1, >= 0.1.2)
+      dry-logic (~> 1.3, >= 1.3)
+      zeitwerk (~> 2.6)
     erubi (1.12.0)
-    excon (0.99.0)
+    excon (0.105.0)
     faraday (1.10.3)
       faraday-em_http (~> 1.0)
       faraday-em_synchrony (~> 1.0)
@@ -299,6 +333,8 @@ GEM
     faraday-excon (1.1.0)
     faraday-follow_redirects (0.3.0)
       faraday (>= 1, < 3)
+    faraday-http-cache (2.5.0)
+      faraday (>= 0.8)
     faraday-httpclient (1.0.1)
     faraday-multipart (1.0.4)
       multipart-post (~> 2)
@@ -309,7 +345,7 @@ GEM
     faraday-retry (1.0.3)
     faraday_middleware (1.0.0)
       faraday (~> 1.0)
-    ffi (1.15.5)
+    ffi (1.16.3)
     fuzzyurl (0.9.0)
     google-api-client (0.52.0)
       addressable (~> 2.5, >= 2.5.1)
@@ -332,33 +368,37 @@ GEM
     gyoku (1.4.0)
       builder (>= 2.1.2)
       rexml (~> 3.0)
-    hashie (4.1.0)
+    hashdiff (1.0.1)
+    hashie (5.0.0)
     highline (2.1.0)
     http-cookie (1.0.5)
       domain_name (~> 0.5)
     httpclient (2.8.3)
-    i18n (1.12.0)
+    i18n (1.14.1)
       concurrent-ruby (~> 1.0)
+    ice_nine (0.11.2)
     inifile (3.0.0)
-    inspec (5.21.29)
+    inspec (6.6.0)
       cookstyle
       faraday_middleware (>= 0.12.2, < 1.1)
-      inspec-core (= 5.21.29)
+      inspec-core (= 6.6.0)
       mongo (= 2.13.2)
       progress_bar (~> 1.3.3)
       rake
       train (~> 3.10)
       train-aws (~> 0.2)
       train-habitat (~> 0.1)
+      train-kubernetes (~> 0.1)
       train-winrm (~> 0.2)
-    inspec-bin (5.21.29)
-      inspec (= 5.21.29)
-    inspec-core (5.21.29)
+    inspec-bin (6.6.0)
+      inspec (= 6.6.0)
+    inspec-core (6.6.0)
       addressable (~> 2.4)
+      chef-licensing (>= 0.7.5)
       chef-telemetry (~> 1.0, >= 1.0.8)
       faraday (>= 1, < 3)
       faraday-follow_redirects (~> 0.3)
-      hashie (>= 3.4, < 5.0)
+      hashie (>= 3.4, < 6.0)
       license-acceptance (>= 0.2.13, < 3.0)
       method_source (>= 0.8, < 2.0)
       mixlib-log (~> 3.0)
@@ -366,19 +406,32 @@ GEM
       parallel (~> 1.9)
       parslet (>= 1.5, < 2.0)
       pry (~> 0.13)
-      rspec (>= 3.9, <= 3.11)
+      rspec (>= 3.9, <= 3.12)
       rspec-its (~> 1.2)
       rubyzip (>= 1.2.2, < 3.0)
       semverse (~> 3.0)
       sslshake (~> 1.2)
-      thor (>= 0.20, < 2.0)
+      thor (>= 0.20, < 1.3.0)
       tomlrb (>= 1.2, < 2.1)
-      train-core (~> 3.10)
+      train-core (>= 3.11.0)
       tty-prompt (~> 0.17)
       tty-table (~> 0.10)
     jmespath (1.6.2)
-    json (2.6.3)
-    jwt (2.7.0)
+    json (2.7.1)
+    jsonpath (0.9.9)
+      multi_json
+      to_regexp (~> 0.2.1)
+    jwt (2.7.1)
+    k8s-ruby (0.14.0)
+      dry-configurable (~> 0.13.0)
+      dry-struct (<= 1.6.0)
+      dry-types (<= 1.7.0)
+      excon (~> 0.71)
+      hashdiff (~> 1.0.0)
+      jsonpath (~> 0.9.5)
+      recursive-open-struct (~> 1.1.3)
+      yajl-ruby (~> 1.4.0)
+      yaml-safe_load_stream3
     license-acceptance (2.1.13)
       pastel (~> 0.7)
       tomlrb (>= 1.2, < 3.0)
@@ -390,8 +443,8 @@ GEM
       multi_json (~> 1.14)
     memoist (0.16.2)
     method_source (1.0.0)
-    mini_mime (1.1.2)
-    minitest (5.18.0)
+    mini_mime (1.1.5)
+    minitest (5.20.0)
     mixlib-config (3.0.27)
       tomlrb
     mixlib-log (3.0.9)
@@ -412,13 +465,14 @@ GEM
     multipart-post (2.3.0)
     net-scp (4.0.0)
       net-ssh (>= 2.6.5, < 8.0.0)
-    net-ssh (7.1.0)
+    net-ssh (7.2.0)
     nori (2.6.0)
     options (2.3.2)
     os (1.1.4)
     parallel (1.23.0)
-    parser (3.2.2.0)
+    parser (3.2.2.4)
       ast (~> 2.4.1)
+      racc
     parslet (1.8.2)
     pastel (0.8.0)
       tty-color (~> 0.5)
@@ -428,32 +482,34 @@ GEM
     pry (0.14.2)
       coderay (~> 1.1)
       method_source (~> 1.0)
-    public_suffix (5.0.1)
+    public_suffix (5.0.4)
+    racc (1.7.3)
     rainbow (3.1.1)
-    rake (13.0.6)
-    regexp_parser (2.8.0)
+    rake (13.1.0)
+    recursive-open-struct (1.1.3)
+    regexp_parser (2.8.3)
     representable (3.2.0)
       declarative (< 0.1.0)
       trailblazer-option (>= 0.1.1, < 0.2.0)
       uber (< 0.2.0)
     retriable (3.1.2)
-    rexml (3.2.5)
-    rspec (3.11.0)
-      rspec-core (~> 3.11.0)
-      rspec-expectations (~> 3.11.0)
-      rspec-mocks (~> 3.11.0)
-    rspec-core (3.11.0)
-      rspec-support (~> 3.11.0)
-    rspec-expectations (3.11.1)
+    rexml (3.2.6)
+    rspec (3.12.0)
+      rspec-core (~> 3.12.0)
+      rspec-expectations (~> 3.12.0)
+      rspec-mocks (~> 3.12.0)
+    rspec-core (3.12.2)
+      rspec-support (~> 3.12.0)
+    rspec-expectations (3.12.3)
       diff-lcs (>= 1.2.0, < 2.0)
-      rspec-support (~> 3.11.0)
+      rspec-support (~> 3.12.0)
     rspec-its (1.3.0)
       rspec-core (>= 3.0.0)
       rspec-expectations (>= 3.0.0)
-    rspec-mocks (3.11.2)
+    rspec-mocks (3.12.6)
       diff-lcs (>= 1.2.0, < 2.0)
-      rspec-support (~> 3.11.0)
-    rspec-support (3.11.1)
+      rspec-support (~> 3.12.0)
+    rspec-support (3.12.1)
     rubocop (1.25.1)
       parallel (~> 1.10)
       parser (>= 3.1.0.0)
@@ -463,14 +519,14 @@ GEM
       rubocop-ast (>= 1.15.1, < 2.0)
       ruby-progressbar (~> 1.7)
       unicode-display_width (>= 1.4.0, < 3.0)
-    rubocop-ast (1.28.0)
+    rubocop-ast (1.30.0)
       parser (>= 3.2.1.0)
     ruby-progressbar (1.13.0)
     ruby2_keywords (0.0.5)
     rubyntlm (0.6.3)
     rubyzip (2.3.2)
     semverse (3.0.2)
-    signet (0.17.0)
+    signet (0.18.0)
       addressable (~> 2.8)
       faraday (>= 0.17.5, < 3.a)
       jwt (>= 1.5, < 3.0)
@@ -481,11 +537,12 @@ GEM
       unicode-display_width (>= 1.5, < 3.0)
       unicode_utils (~> 1.4)
     strings-ansi (0.2.0)
-    thor (1.2.1)
+    thor (1.2.2)
     timeliness (0.3.10)
+    to_regexp (0.2.1)
     tomlrb (1.3.0)
     trailblazer-option (0.1.2)
-    train (3.10.7)
+    train (3.11.0)
       activesupport (>= 6.0.3.1)
       azure_graph_rbac (~> 0.16)
       azure_mgmt_key_vault (~> 0.17)
@@ -496,17 +553,18 @@ GEM
       google-api-client (>= 0.23.9, <= 0.52.0)
       googleauth (>= 0.6.6, <= 0.14.0)
       inifile (~> 3.0)
-      train-core (= 3.10.7)
+      train-core (= 3.11.0)
       train-winrm (~> 0.2)
-    train-aws (0.2.24)
+    train-aws (0.2.36)
+      aws-sdk-account (~> 1.14)
       aws-sdk-alexaforbusiness (~> 1.0)
       aws-sdk-amplify (~> 1.32.0)
       aws-sdk-apigateway (~> 1.0)
       aws-sdk-apigatewayv2 (~> 1.0)
       aws-sdk-applicationautoscaling (>= 1.46, < 1.52)
       aws-sdk-athena (~> 1.0)
-      aws-sdk-autoscaling (>= 1.22, < 1.64)
-      aws-sdk-batch (>= 1.36, < 1.48)
+      aws-sdk-autoscaling (>= 1.22, < 1.93)
+      aws-sdk-batch (>= 1.36, < 1.74)
       aws-sdk-budgets (~> 1.0)
       aws-sdk-cloudformation (~> 1.0)
       aws-sdk-cloudfront (~> 1.0)
@@ -514,17 +572,17 @@ GEM
       aws-sdk-cloudhsmv2 (~> 1.0)
       aws-sdk-cloudtrail (~> 1.8)
       aws-sdk-cloudwatch (~> 1.13)
-      aws-sdk-cloudwatchevents (>= 1.36, < 1.47)
+      aws-sdk-cloudwatchevents (>= 1.36, < 1.63)
       aws-sdk-cloudwatchlogs (~> 1.13)
       aws-sdk-codecommit (~> 1.0)
       aws-sdk-codedeploy (~> 1.0)
       aws-sdk-codepipeline (~> 1.0)
-      aws-sdk-cognitoidentity (>= 1.26, < 1.32)
-      aws-sdk-cognitoidentityprovider (>= 1.46, < 1.54)
+      aws-sdk-cognitoidentity (>= 1.26, < 1.46)
+      aws-sdk-cognitoidentityprovider (>= 1.46, < 1.77)
       aws-sdk-configservice (~> 1.21)
       aws-sdk-core (~> 3.0)
       aws-sdk-costandusagereportservice (~> 1.6)
-      aws-sdk-databasemigrationservice (>= 1.42, < 1.54)
+      aws-sdk-databasemigrationservice (>= 1.42, < 1.81)
       aws-sdk-dynamodb (~> 1.31)
       aws-sdk-ec2 (~> 1.70)
       aws-sdk-ecr (~> 1.18)
@@ -538,9 +596,9 @@ GEM
       aws-sdk-elasticloadbalancingv2 (~> 1.0)
       aws-sdk-elasticsearchservice (~> 1.0)
       aws-sdk-emr (~> 1.53.0)
-      aws-sdk-eventbridge (~> 1.24.0)
+      aws-sdk-eventbridge (>= 1.24, < 1.47)
       aws-sdk-firehose (~> 1.0)
-      aws-sdk-glue (>= 1.71, < 1.89)
+      aws-sdk-glue (>= 1.71, < 1.146)
       aws-sdk-guardduty (~> 1.31)
       aws-sdk-iam (~> 1.13)
       aws-sdk-kafka (~> 1.0)
@@ -550,7 +608,7 @@ GEM
       aws-sdk-mq (~> 1.40.0)
       aws-sdk-networkfirewall (>= 1.6.0)
       aws-sdk-networkmanager (>= 1.13.0)
-      aws-sdk-organizations (>= 1.17, < 1.60)
+      aws-sdk-organizations (>= 1.17, < 1.78)
       aws-sdk-ram (>= 1.21, < 1.27)
       aws-sdk-rds (~> 1.43)
       aws-sdk-redshift (~> 1.0)
@@ -572,9 +630,9 @@ GEM
       aws-sdk-ssm (~> 1.0)
       aws-sdk-states (>= 1.35, < 1.40)
       aws-sdk-synthetics (~> 1.19.0)
-      aws-sdk-transfer (>= 1.26, < 1.35)
+      aws-sdk-transfer (>= 1.26, < 1.74)
       aws-sdk-waf (~> 1.43.0)
-    train-core (3.10.7)
+    train-core (3.11.0)
       addressable (~> 2.5)
       ffi (!= 1.13.0)
       json (>= 1.8, < 3.0)
@@ -582,6 +640,9 @@ GEM
       net-scp (>= 1.2, < 5.0)
       net-ssh (>= 2.9, < 8.0)
     train-habitat (0.2.22)
+    train-kubernetes (0.1.12)
+      k8s-ruby (~> 0.14.0)
+      train (~> 3.0)
     train-winrm (0.2.13)
       winrm (>= 2.3.6, < 3.0)
       winrm-elevated (~> 1.2.2)
@@ -600,6 +661,8 @@ GEM
       tty-screen (~> 0.8)
       wisper (~> 2.0)
     tty-screen (0.8.1)
+    tty-spinner (0.9.3)
+      tty-cursor (~> 0.7)
     tty-table (0.12.0)
       pastel (~> 0.8)
       strings (~> 0.2.0)
@@ -607,10 +670,7 @@ GEM
     tzinfo (2.0.6)
       concurrent-ruby (~> 1.0)
     uber (0.1.0)
-    unf (0.1.4)
-      unf_ext
-    unf_ext (0.0.8.2)
-    unicode-display_width (2.4.2)
+    unicode-display_width (2.5.0)
     unicode_utils (1.4.0)
     winrm (2.3.6)
       builder (>= 2.1.2)
@@ -631,13 +691,16 @@ GEM
       rubyzip (~> 2.0)
       winrm (~> 2.0)
     wisper (2.0.1)
+    yajl-ruby (1.4.3)
+    yaml-safe_load_stream3 (0.1.2)
+    zeitwerk (2.6.12)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
-  inspec!
-  inspec-bin!
+  inspec
+  inspec-bin
 
 BUNDLED WITH
-   2.1.4
+   2.4.22
diff --git a/pkgs/tools/misc/inspec/gemset.nix b/pkgs/tools/misc/inspec/gemset.nix
index ac2a8914427f8..583b3023c6f53 100644
--- a/pkgs/tools/misc/inspec/gemset.nix
+++ b/pkgs/tools/misc/inspec/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15m0b1im6i401ab51vzr7f8nk8kys1qa0snnl741y3sir3xd07jp";
+      sha256 = "188kbwkn1lbhz40ala8ykp20jzqphgc68g3d8flin8cqa2xid0s5";
       type = "gem";
     };
-    version = "7.0.4.3";
+    version = "7.0.8";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -16,10 +16,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15s8van7r2ad3dq6i03l3z4hqnvxcq75a3h72kxvf9an53sqma20";
+      sha256 = "0irbdwkkjwzajq1ip6ba46q49sxnrl2cw7ddkdhsfhb6aprnm3vr";
       type = "gem";
     };
-    version = "2.8.4";
+    version = "2.8.6";
   };
   ast = {
     groups = ["default"];
@@ -36,20 +36,31 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pyis1nvnbjxk12a43xvgj2gv0mvp4cnkc1gzw0v1018r61399gz";
+      sha256 = "0gvdg4yx4p9av2glmp7vsxhs0n8fj1ga9kq2xdb8f95j7b04qhzi";
       type = "gem";
     };
-    version = "1.2.0";
+    version = "1.3.0";
   };
   aws-partitions = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12n41py8jfxf9p3gy62ikw8n7wd0cmczk3i2fzxb4ms2xvkxv7b0";
+      sha256 = "16n1d0bh3zy925y4f8flrnkfir2smsj0j31zslfaz6vf6cvi9qjs";
       type = "gem";
     };
-    version = "1.749.0";
+    version = "1.864.0";
+  };
+  aws-sdk-account = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1h6fqfq5pgsmnchmg4w4l9mypv2ggix1d0a8b8w66a9xvsk8bkxd";
+      type = "gem";
+    };
+    version = "1.20.0";
   };
   aws-sdk-alexaforbusiness = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -57,10 +68,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hbb2fpmxb77bp4mm3z24k8vhcc8y9ngjz9jarb54v4lbs8cmlq6";
+      sha256 = "1ps37857dgnydnih2gxrl3a5fr571242006l9634jzm8w91jpb80";
       type = "gem";
     };
-    version = "1.58.0";
+    version = "1.67.0";
   };
   aws-sdk-amplify = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -79,10 +90,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1m3vxlx20hjd14hc90k4lvqvhblh4c9m14pbnqp3k271zpaljnzx";
+      sha256 = "0gqd04rdzz487bgy64gq2fqm20wcdd2zk8rnl51nyq6cfxsslbvw";
       type = "gem";
     };
-    version = "1.81.0";
+    version = "1.90.0";
   };
   aws-sdk-apigatewayv2 = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -90,10 +101,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lq2qzxk396kbmbxcsx8ic61758zl3ynxymwia1wzdxwkpsxks71";
+      sha256 = "1dq11njjh05dm6dc2gjrbhl6ga6a9mxaisr7bgk0gv295b5nfiwp";
       type = "gem";
     };
-    version = "1.44.0";
+    version = "1.53.0";
   };
   aws-sdk-applicationautoscaling = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -112,10 +123,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qzdnv42x0q2f53zsvj7i56b49n82zbx3qikcf9mp2bgxsbddvg8";
+      sha256 = "19fs835xm7pls49yryayh80m6dap44g4r2qk94ssvck5paxyylk3";
       type = "gem";
     };
-    version = "1.64.0";
+    version = "1.79.0";
   };
   aws-sdk-autoscaling = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -123,10 +134,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wr9dkf88h46s9n173imvbm6233a8d3cmcnvbm2s3bz0glzp0k4c";
+      sha256 = "1hv9nfzbn478vjv88c6jybf4nsii1c04vzqckgh4pajm5mc8kk7p";
       type = "gem";
     };
-    version = "1.63.0";
+    version = "1.92.0";
   };
   aws-sdk-batch = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -134,10 +145,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xd8yvvxdmha951h8b1qjijx3l21c9pwjr6nifaxjylpx5897fc0";
+      sha256 = "06lxajqdjwxdc9wx17igsdxj608charbpwhnfnb83dcrfaavkqms";
       type = "gem";
     };
-    version = "1.47.0";
+    version = "1.73.0";
   };
   aws-sdk-budgets = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -145,10 +156,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qmlqplc5l72p3mgpin3wjcdny4fbnq9lwcn55vphp8kgdzvv74p";
+      sha256 = "0689sck8d49smzavhipl2i3nrr5lrw3miam88a7h7qckwmlsp098";
       type = "gem";
     };
-    version = "1.52.0";
+    version = "1.62.0";
   };
   aws-sdk-cloudformation = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -156,10 +167,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1634skrhc9nj46smvclx3767qvj02ydqjw15rkww1pigqvh46mcz";
+      sha256 = "0sgsyzsyjdw795k81sc0qy1h4rd3ksxszcxp93wx07vrl8nv5i0a";
       type = "gem";
     };
-    version = "1.77.0";
+    version = "1.97.0";
   };
   aws-sdk-cloudfront = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -167,10 +178,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jfrqwrvp9iv7sf24w0bbw094nz87w1gvrbq1725b0d0bry66ydy";
+      sha256 = "1fxrv7zqlp61cpazd3i3slbyv10fgd6xk9wsb0p5fshm64zg0s16";
       type = "gem";
     };
-    version = "1.76.0";
+    version = "1.86.0";
   };
   aws-sdk-cloudhsm = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -178,10 +189,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gis7ggljdsygb64knxfg6vxn8rbk5zfgcxqrjhvf4812hqzv4sp";
+      sha256 = "1ijcid6qpz49vmsp7zig0h7qzgx5rc027iqwl4bnyic6vmgir6ai";
       type = "gem";
     };
-    version = "1.41.0";
+    version = "1.50.0";
   };
   aws-sdk-cloudhsmv2 = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -189,10 +200,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10fcy73lvivjdywklkqhp70jik2fscp0cz54qdzjpdhwvvpvgnfk";
+      sha256 = "0hmjkz09xldacq12l1b924gkfyzx6s0zvigmw2dvbxf3v1imainn";
       type = "gem";
     };
-    version = "1.44.0";
+    version = "1.53.0";
   };
   aws-sdk-cloudtrail = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -200,10 +211,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zfppjsasqbdhv9vvvjqif3b4mxgchw0i66hyxpc2gswk2a5803j";
+      sha256 = "03nr4qpv6678b3lpgbfvlaxydg7m72r1l2ml0mv14z5h066i964s";
       type = "gem";
     };
-    version = "1.58.0";
+    version = "1.74.0";
   };
   aws-sdk-cloudwatch = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -211,10 +222,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vls66mnkmxd05wqadgh7hfknj7yhnsfdms43cy607jv057lcqn4";
+      sha256 = "18865fsj24pf6z0rn1n94b7q4299hclbi7h085484am7g0v1gfnx";
       type = "gem";
     };
-    version = "1.72.0";
+    version = "1.84.0";
   };
   aws-sdk-cloudwatchevents = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -222,10 +233,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xfyviddwll6n4lxl3g57x86gic9ycppnmpnl90jsbgy2dp12632";
+      sha256 = "1dbafxhkp3x5fgibc3i663mnf44kbmfh9ia9cq6fwn45cw2bpfik";
       type = "gem";
     };
-    version = "1.46.0";
+    version = "1.62.0";
   };
   aws-sdk-cloudwatchlogs = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -233,10 +244,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1paqyv0m55ag25liwmgqdj1vwi3yd231hvn419i0y1wg5ffcsg7j";
+      sha256 = "01mvckn874662bl9vfphgn2s983hxsp53bsf07y809kkksw4mipr";
       type = "gem";
     };
-    version = "1.62.0";
+    version = "1.75.0";
   };
   aws-sdk-codecommit = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -244,10 +255,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vzpfsnnvwp21d9rsdaaml8fsigbwj344ghqw9834m4y3g7xax80";
+      sha256 = "0blk86gvg74s7imhz07brrgc4q71ddnwd5nf1a86vyn8rdcq0dxx";
       type = "gem";
     };
-    version = "1.53.0";
+    version = "1.62.0";
   };
   aws-sdk-codedeploy = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -255,10 +266,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1g8lp4ci1b40rx754hf2vfpzl4v9zi5vjakzmc1r9fg58x0v9wyv";
+      sha256 = "0v4gv1ycw0b12an6002qz0vspzqhxzc1719ylshr7zxlc4yy7ndi";
       type = "gem";
     };
-    version = "1.52.0";
+    version = "1.63.0";
   };
   aws-sdk-codepipeline = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -266,10 +277,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kvzsssfas7m2sxmfirnl0bp49m079bgj8lg5rlj2gri3wdgkx3f";
+      sha256 = "0d0finvyv46h9bqyds092pnjspg6hcr2rakk54w3y84smyzaawp3";
       type = "gem";
     };
-    version = "1.55.0";
+    version = "1.67.0";
   };
   aws-sdk-cognitoidentity = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -277,10 +288,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k7d4riiczkkxi4l3nh8nd2sn449j73s9cwcbk6b37lnkvq81kq2";
+      sha256 = "1hhhnlipplr9fv8lvq612y49n4xasqdjkkxd7m002drp2zm7rzbj";
       type = "gem";
     };
-    version = "1.31.0";
+    version = "1.45.0";
   };
   aws-sdk-cognitoidentityprovider = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -288,10 +299,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0j2v3m0d5d756nm98xgf10kz4cz68a8m9xlwzlqh86smqcml6v25";
+      sha256 = "1v2lf191jinkl3kfbl6zdv29cn7xbpyksshww1mz29a323j5bm4x";
       type = "gem";
     };
-    version = "1.53.0";
+    version = "1.76.0";
   };
   aws-sdk-configservice = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -299,10 +310,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lky7k2fqzqs8lpm3wqa5vw1b7np8g82hi39m6fsk1wvahx6kiwa";
+      sha256 = "11xb46y5glq0bqlhbhpkr9mf1p17jsxb5l0wq3hpvzxw376ip6hl";
       type = "gem";
     };
-    version = "1.89.0";
+    version = "1.103.0";
   };
   aws-sdk-core = {
     dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
@@ -310,10 +321,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0732vv8zi67z25fss1sdvqx0vv1ap3w6hz1avxzwznkjp002vj39";
+      sha256 = "19nglxz49nlzgsvnivb3bdm17vxjn1ng2br8659xv48nzjrmyid3";
       type = "gem";
     };
-    version = "3.171.0";
+    version = "3.190.0";
   };
   aws-sdk-costandusagereportservice = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -321,10 +332,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0l9df1dji0m1sj6w5gjmxd0bjv7q858pnhwjhfkr0mfdk1dnsjbj";
+      sha256 = "0jps30r7l5g7j4b1lss9m1isyk5h8k469hq9dp4yljis0jdlmy3c";
       type = "gem";
     };
-    version = "1.43.0";
+    version = "1.53.0";
   };
   aws-sdk-databasemigrationservice = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -332,10 +343,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kppbmbd26bmbwy1f803symy36kbigf5mdgd91jh5r2l63418m46";
+      sha256 = "1ss4x2syf6c5ray6g61cxxcx2q7mzqv0gk00d1dl7g4c5z9avhwi";
       type = "gem";
     };
-    version = "1.53.0";
+    version = "1.80.0";
   };
   aws-sdk-dynamodb = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -343,10 +354,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1h7sl8236mgq0q6mzbznrq3wksr3jd4m8lwj6bkz678z6mxa0fal";
+      sha256 = "1ib8iwgp7ddhcgmqmzjq9js0kw8m5mm4mi7klrl84925lgvlvk65";
       type = "gem";
     };
-    version = "1.84.0";
+    version = "1.98.0";
   };
   aws-sdk-ec2 = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -354,10 +365,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zj67jzg81nr3da2mwh27b22ps2waz41fhvc2f2khdfjazi7knqv";
+      sha256 = "1zyazx97nskgl9xzspg2q1rji02p2jv789v8qd1qz6hknz0z6r5f";
       type = "gem";
     };
-    version = "1.375.0";
+    version = "1.430.0";
   };
   aws-sdk-ecr = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -365,10 +376,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cyscy0v5xsk8x946r125bidrzx7y4fam09ra8pl8xjp5a0706ig";
+      sha256 = "103ycwxv367bkrqzdpypd0p650r62ka3azw2pzdwc38pj5r3nxl6";
       type = "gem";
     };
-    version = "1.58.0";
+    version = "1.68.0";
   };
   aws-sdk-ecrpublic = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -376,10 +387,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15iz3wnc2z3n0f9lnbfgqyyi0bg6l65dyn5wc09p8wilg6jlib5c";
+      sha256 = "1a5j7v70gwwy1md4awz37k77qlwgls390xlwbri8lkcxmaw2x5bp";
       type = "gem";
     };
-    version = "1.16.0";
+    version = "1.25.0";
   };
   aws-sdk-ecs = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -387,10 +398,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pkz2fy63wr6wfzmwyscfzsjn4443cp7y4kzvirg1gcyq1cpyxgy";
+      sha256 = "0s4yyi22v0vv3pyskpz4qzahngfxawxjx8x4ch2aj8c8wffkfclk";
       type = "gem";
     };
-    version = "1.114.0";
+    version = "1.135.0";
   };
   aws-sdk-efs = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -398,10 +409,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0r16nqsqhlc429p9hd1j226fkd9xq6x4ybm01sj482vjg4wsq4qg";
+      sha256 = "1m8ymz0wq1p6iz126qcdsrz0ss730p1inb6g1w07r9ganjdzbplx";
       type = "gem";
     };
-    version = "1.59.0";
+    version = "1.71.0";
   };
   aws-sdk-eks = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -409,10 +420,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12k9i7syfmxlk5dracwvin03bjhy8abyd58180z4zmq77al0dn24";
+      sha256 = "13aac0gpyxm660pbcbpvpcpw20db28p5lbwjs45rczc9l3yl9aw1";
       type = "gem";
     };
-    version = "1.83.0";
+    version = "1.95.0";
   };
   aws-sdk-elasticache = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -420,10 +431,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wydzznzk4zhy3bh4ra8b2dsdhhib4ahnppni72zhr3dvda0pxfg";
+      sha256 = "061zg2k3kvayrnih0qiilcdarwjap37bzf1a0v5n6a57606hc40s";
       type = "gem";
     };
-    version = "1.84.0";
+    version = "1.95.0";
   };
   aws-sdk-elasticbeanstalk = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -431,10 +442,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13haliasq2k74xhk0sl2rb9x14vk980rnp2rzm5d0jls42mkkzsm";
+      sha256 = "0ysn5cj4rwqj2jvsg02i8qs9j3z6c6lwhici58q09m62xzrhr3qg";
       type = "gem";
     };
-    version = "1.54.0";
+    version = "1.63.0";
   };
   aws-sdk-elasticloadbalancing = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -442,10 +453,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jf2mcb1lqqm5dpmrhrlszmf9hb98kj6i7yw118lqn5dkb1mjjy1";
+      sha256 = "09zvryq7121c05cswzwv337qylza33dwlqd97c11ii3y8pg2bsla";
       type = "gem";
     };
-    version = "1.42.0";
+    version = "1.51.0";
   };
   aws-sdk-elasticloadbalancingv2 = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -453,10 +464,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yzyk4q2g3hx74fhr7y37n8zp349g71micwzix5gwbjhfpjizy72";
+      sha256 = "1mgik7lhch27j4q4nzxci0rhrgybh0bx7bzcq48c5sggpm999qkr";
       type = "gem";
     };
-    version = "1.84.0";
+    version = "1.96.0";
   };
   aws-sdk-elasticsearchservice = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -464,10 +475,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1rz8hs78cd1lxcha29y751hxrv6yhcw6q9rvpcg24bgf81d4n4ag";
+      sha256 = "1nqrx6vm4yi1amk7677rw6jvwrdhv7pj4g507r5hqcfmilr5z1gx";
       type = "gem";
     };
-    version = "1.69.0";
+    version = "1.79.0";
   };
   aws-sdk-emr = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -486,10 +497,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cj1pwvhwal1qvmaiwi42lhsak7mb61bmm7j1g4gmscxg36l3bj2";
+      sha256 = "1mnpcklsm8dicz35yj89jr870xii1xghfdjfqif1lxii4vvhlqba";
       type = "gem";
     };
-    version = "1.24.0";
+    version = "1.46.0";
   };
   aws-sdk-firehose = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -497,10 +508,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0z0dvga01xg6pahy5p4bfc8s73n3ycjr0h3cxvhy8kcymynswn1k";
+      sha256 = "0n4iz5bv80gd7m070jyr5kv36yx8qyq1i8ljh5bfj3cr57vvdw89";
       type = "gem";
     };
-    version = "1.51.0";
+    version = "1.60.0";
   };
   aws-sdk-glue = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -508,10 +519,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1608aiav3iz6jcxdlprcax5984gq5m20dyg8w8caqjkgrrgkyd3f";
+      sha256 = "1pjw4vfniswiprjr5vivgq3vilw05gqqr5mkkwhx38y6xc8kr7ga";
       type = "gem";
     };
-    version = "1.88.0";
+    version = "1.145.0";
   };
   aws-sdk-guardduty = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -519,10 +530,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12wvpgzqw7lswxchsbwmn0csp5lj521a1fx6f0dv8s26swnmhdsk";
+      sha256 = "0ya8q0hgh7293jlz1pchci5qvywnmg87h3x3k9hsbqf1023bz9nz";
       type = "gem";
     };
-    version = "1.67.0";
+    version = "1.85.0";
   };
   aws-sdk-iam = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -530,10 +541,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0crb3m1apj6kszp9aqmc2lqw99i1xkxbp5fl1s5748718kld4s8v";
+      sha256 = "0whclpcvbdy7gzvqpk8734nxjfxs3362k197xl1wnrpixklkacyz";
       type = "gem";
     };
-    version = "1.77.0";
+    version = "1.92.0";
   };
   aws-sdk-kafka = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -541,10 +552,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pxzjmdb5bqrqnivmw7li2qliam0dm6v56idv50slds96q6jck61";
+      sha256 = "0gg28ixfr681sxjffp28wy47siz7jypvm04ldqarlcvgaqnk08ds";
       type = "gem";
     };
-    version = "1.54.0";
+    version = "1.67.0";
   };
   aws-sdk-kinesis = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -552,10 +563,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k14773dyzwcjcb9a1pqbh0vqzjlb19cwf0ydw7pch5g8x5fs5g2";
+      sha256 = "19xzw7i6i4f0yn604is07w3zf3q6lch2ki29bg31m0jd2jdj2rn0";
       type = "gem";
     };
-    version = "1.45.0";
+    version = "1.54.0";
   };
   aws-sdk-kms = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -563,10 +574,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0v87zi28dfmrv7bv91yfldccnpd63n295siirbz7wqv1rajn8n02";
+      sha256 = "1isrj19kzy9sb7a76a1c2n5x0d9lg1h2n7fp7cn13xjis0hpnlxj";
       type = "gem";
     };
-    version = "1.63.0";
+    version = "1.74.0";
   };
   aws-sdk-lambda = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -574,10 +585,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1a0l6yxmvc1hxlmhg4lcsh6yljmsav8p1rprlnnjvhgszhp3gcv3";
+      sha256 = "1gfysixcf5wsaqk0cycg3zryybs9zwvg0v6j9hn7zc99x27qjca4";
       type = "gem";
     };
-    version = "1.95.0";
+    version = "1.113.0";
   };
   aws-sdk-mq = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -596,10 +607,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ai74sc8q0vvnkicl4dyq1xikclpmdd0rbzlqpww64wd5q2i6myp";
+      sha256 = "02bq2flz4kqcr9fvk09mvn6r7h1arnjjw87l0qkgyr94x8ngidpy";
       type = "gem";
     };
-    version = "1.26.0";
+    version = "1.39.0";
   };
   aws-sdk-networkmanager = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -607,10 +618,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ldlvhcvbs5r2dzfa2wglacywnqgijbr9iqalq0jhbv4aknmgfjy";
+      sha256 = "0qpi693cjnzy91yyavmhgj6047kk04hslbqb7hgiqvz1ki4qr9q9";
       type = "gem";
     };
-    version = "1.30.0";
+    version = "1.40.0";
   };
   aws-sdk-organizations = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -618,10 +629,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1b5zy7hc67k5pmmnv90p5skd12a61gk1swqlq4a5vn3kjlmg57al";
+      sha256 = "169dz3ip2vz22mk6hczsd1v6lf2v428i0jhpllnay11zsficc6p1";
       type = "gem";
     };
-    version = "1.59.0";
+    version = "1.77.0";
   };
   aws-sdk-ram = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -640,10 +651,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15jril7gd5ax0pabbj6gxfnh30x2c9ffw4dv31vb8k7rpdrzkzj8";
+      sha256 = "1yrc7ivykdcrq8s6isd368gr02jclwc140pckf1vyii2f2g79k30";
       type = "gem";
     };
-    version = "1.176.0";
+    version = "1.208.0";
   };
   aws-sdk-redshift = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -651,10 +662,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1smv2621gzrhk0wbnmyb2kdqcjp8z8wldy1vfypdcpgvlj9m2wvk";
+      sha256 = "08rgpxknp11q4dxzncn4x30bpqkd4ssi78wq2j0kfgl5qbid48y8";
       type = "gem";
     };
-    version = "1.91.0";
+    version = "1.107.0";
   };
   aws-sdk-route53 = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -662,10 +673,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xcg7rl6lllm4syxgw496976dnsmfwvxw4131klaycfx9dixz1kc";
+      sha256 = "1p7py5g5bk9yxlg6h04rkvgzgbysj7zm63bpdrswxwzhynmb8p9v";
       type = "gem";
     };
-    version = "1.71.0";
+    version = "1.83.0";
   };
   aws-sdk-route53domains = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -673,10 +684,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12in1rcjnni4xza6mdmp3avrb4hgkfk8dzsiqp97yvpywd1dbara";
+      sha256 = "15v2fbm9563kad3hnac5372xr7lvhxdyggrjzx1rbn56kf7bcb6n";
       type = "gem";
     };
-    version = "1.43.0";
+    version = "1.54.0";
   };
   aws-sdk-route53resolver = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -684,10 +695,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vcwh47pgr745wyl0zwjjhr29yynjgl9w8d0qpnqn1i8ywbnxn9b";
+      sha256 = "0i57m3vysjlbvfrf0jpyi343bi8nw1j9gjcm50sv3lzx0ix66bpi";
       type = "gem";
     };
-    version = "1.40.0";
+    version = "1.51.0";
   };
   aws-sdk-s3 = {
     dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
@@ -695,10 +706,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mapdzm97rv22pca1hvvshwsafa12gd2yv2fcy63dfjn5vjjq893";
+      sha256 = "0bnhpmi0iiaj88rqc5lhhnp2gyrk4fs8xz51lj36wwzng94qinya";
       type = "gem";
     };
-    version = "1.120.1";
+    version = "1.141.0";
   };
   aws-sdk-s3control = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -728,10 +739,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vp8hkmwl0p7xasbzhgnsk3ikj6l34vgyd3g9yg5nfsr4098almv";
+      sha256 = "1z63plqdq0hhl6g78dlxvr04g8a81smxn223wqsz2macf8c96wgl";
       type = "gem";
     };
-    version = "1.79.0";
+    version = "1.99.0";
   };
   aws-sdk-servicecatalog = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -761,10 +772,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xd1baasgazrfc1b2pr196jycj14rb6kdkxjkqa0rnd0ml9xwiwj";
+      sha256 = "1gk003vj7gs7a3rs79rs5bv5wcsyk9fsf3cc6ci3kbj5y5kbzabc";
       type = "gem";
     };
-    version = "1.51.0";
+    version = "1.60.0";
   };
   aws-sdk-signer = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -794,10 +805,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1z40zf3v3isqsc6ipmv8v6f28a0bsrba2rivgya98hk1wyivxn4w";
+      sha256 = "17rmy3hzs3cv3vzr5j2swninwqdxf33hcci96pmy88wrcx4nav5x";
       type = "gem";
     };
-    version = "1.43.0";
+    version = "1.52.0";
   };
   aws-sdk-sns = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -805,10 +816,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10kn9nsh7jn0ikmxybhxh3wgczlpp3pcanqvmc3cjh1sahy8sb1n";
+      sha256 = "0zbn3gfksbszgdk806l96fmqa9npqm2gqgvjrqm4x44hl1a5cf8z";
       type = "gem";
     };
-    version = "1.60.0";
+    version = "1.70.0";
   };
   aws-sdk-sqs = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -816,10 +827,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1rp62fmz4lc32qj2phqmrdic4j4la34xp2a6vlg4v6lqz2y2fjhs";
+      sha256 = "1nsr4q2g7sfap9vx8vk5532mkyww8an25qabwplsdy9s625p8ahl";
       type = "gem";
     };
-    version = "1.53.0";
+    version = "1.69.0";
   };
   aws-sdk-ssm = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -827,10 +838,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16p7l4mgzs6al3rpb35318gc06vp757vjb99brbkx8ppyg78cdir";
+      sha256 = "0xz10344dwm4pj8qnl19bnh99arxp7cd9mn2alslrnw7y2gipzz1";
       type = "gem";
     };
-    version = "1.150.0";
+    version = "1.162.0";
   };
   aws-sdk-states = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -860,10 +871,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "017zpcqssv138y7nqzwqpvcnsbq2jws6g22996n64kcr2azj28gn";
+      sha256 = "087y19nzkh26a7rac5ci7d792mdjfwg1mfm884r118g89y4imcdf";
       type = "gem";
     };
-    version = "1.34.0";
+    version = "1.73.0";
   };
   aws-sdk-waf = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -881,10 +892,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bnsw26vd0z3gayrqxhjg94ccjdygpk00bmhdjhzagmgngmdbhrk";
+      sha256 = "1zams698qxn5ws4f8basqp895b206pclsxsja5cnxkhrmj2n781j";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.2.0";
   };
   aws-sigv4 = {
     dependencies = ["aws-eventstream"];
@@ -892,10 +903,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11hkna2av47bl0yprgp8k4ya70rc3m2ib5w10fn0piplgkkmhz7m";
+      sha256 = "1g3w27wzjy4si6kp49w10as6ml6g6zl3xrfqs5ikpfciidv9kpc4";
       type = "gem";
     };
-    version = "1.5.2";
+    version = "1.8.0";
   };
   azure_graph_rbac = {
     dependencies = ["ms_rest_azure"];
@@ -978,10 +989,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13581xgpdvdyd0zvdankharj9aahs99vmihcknm66v03a37q7y6x";
+      sha256 = "1pvjf3qbb3apg9vdy4zykamm7801qz4m6256wjqn73fs87zs50y1";
       type = "gem";
     };
-    version = "18.2.7";
+    version = "18.3.0";
+  };
+  chef-licensing = {
+    dependencies = ["activesupport" "chef-config" "faraday" "faraday-http-cache" "tty-prompt" "tty-spinner"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1inm01nrkxsdvf0fak2qkpva1k7d4fpi8z9xf646bsgrjz2761rb";
+      type = "gem";
+    };
+    version = "0.7.5";
   };
   chef-telemetry = {
     dependencies = ["chef-config" "concurrent-ruby"];
@@ -1000,10 +1022,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1q5by0q1i443lds626cyq78jhzkwb6b1f8vcbv82q790q06vg1w9";
+      sha256 = "0087jwhqslfm3ygj507dmmdp3k0589j5jl54mkwgbabbwan7lzw2";
       type = "gem";
     };
-    version = "18.2.7";
+    version = "18.3.0";
   };
   coderay = {
     groups = ["default"];
@@ -1068,15 +1090,90 @@
     version = "2.2.0";
   };
   domain_name = {
-    dependencies = ["unf"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lcqjsmixjp52bnlgzh4lg9ppsk52x9hpwdjd53k8jnbah2602h0";
+      sha256 = "1gpciaifmxql8h01ci12qq08dnqrdlzkkz6fmia9v9yc3r9a29si";
+      type = "gem";
+    };
+    version = "0.6.20231109";
+  };
+  dry-configurable = {
+    dependencies = ["concurrent-ruby" "dry-core"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qzq7aaw020qq06d2lpjq03a3gqnkyya040fjgyfp5q3dlr9c44v";
+      type = "gem";
+    };
+    version = "0.13.0";
+  };
+  dry-container = {
+    dependencies = ["concurrent-ruby"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0aaj0ffwkbdagrry127x1gd4m6am88mhhfzi7czk8isdcj0r7gi3";
+      type = "gem";
+    };
+    version = "0.11.0";
+  };
+  dry-core = {
+    dependencies = ["concurrent-ruby" "zeitwerk"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1dpm9dk11x2zcjsymkl5jcz5nxhffsg7qqy5p6h92cppzbwmm656";
+      type = "gem";
+    };
+    version = "0.9.1";
+  };
+  dry-inflector = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rw0xxx1yga8r8bwgpywgshvqwd0w6shy0s4y1qrsz0cjxfwga0i";
+      type = "gem";
+    };
+    version = "0.3.0";
+  };
+  dry-logic = {
+    dependencies = ["concurrent-ruby" "dry-core" "zeitwerk"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12ikf5j5n7bhwd0mzi27ikwdr944l78sp86ndvkbqpfq607335ys";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  dry-struct = {
+    dependencies = ["dry-core" "dry-types" "ice_nine" "zeitwerk"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "177jvjlkjshv80cmy54jnfd18lryzaigd8mbm39iaigah7afhwf4";
       type = "gem";
     };
-    version = "0.5.20190701";
+    version = "1.5.2";
+  };
+  dry-types = {
+    dependencies = ["concurrent-ruby" "dry-container" "dry-core" "dry-inflector" "dry-logic" "zeitwerk"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xpbh437hw16h8qxw7454vkabnq7w9g51sh4qs3z82xl8qvkhdqy";
+      type = "gem";
+    };
+    version = "1.6.1";
   };
   erubi = {
     groups = ["default"];
@@ -1093,10 +1190,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0j826kfvzn7nc5pv950n270r0sx1702k988ad11cdlav3dcxxw09";
+      sha256 = "138gi8b95nqv8m83dynpsszz11a6c5si1pym6y0b6bfb01r33pyi";
       type = "gem";
     };
-    version = "0.99.0";
+    version = "0.105.0";
   };
   faraday = {
     dependencies = ["faraday-em_http" "faraday-em_synchrony" "faraday-excon" "faraday-httpclient" "faraday-multipart" "faraday-net_http" "faraday-net_http_persistent" "faraday-patron" "faraday-rack" "faraday-retry" "ruby2_keywords"];
@@ -1161,6 +1258,17 @@
     };
     version = "0.3.0";
   };
+  faraday-http-cache = {
+    dependencies = ["faraday"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qvl49xpl2mwxgcj6aj11qrjk94xrqhbnpl5vp1y2275crnkddv4";
+      type = "gem";
+    };
+    version = "2.5.0";
+  };
   faraday-httpclient = {
     groups = ["default"];
     platforms = [];
@@ -1248,10 +1356,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1862ydmclzy1a0cjbvm8dz7847d9rch495ib0zb64y84d3xd4bkg";
+      sha256 = "1yvii03hcgqj30maavddqamqy50h7y6xcn2wcyq72wn823zl4ckd";
       type = "gem";
     };
-    version = "1.15.5";
+    version = "1.16.3";
   };
   fuzzyurl = {
     groups = ["default"];
@@ -1307,15 +1415,25 @@
     };
     version = "1.4.0";
   };
+  hashdiff = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nynpl0xbj0nphqx1qlmyggq58ms1phf5i03hk64wcc0a17x1m1c";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
   hashie = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02bsx12ihl78x0vdm37byp78jjw2ff6035y7rrmbd90qxjwxr43q";
+      sha256 = "1nh3arcrbz1rc1cr59qm53sdhqm137b258y8rcb4cvd3y98lwv4x";
       type = "gem";
     };
-    version = "4.1.0";
+    version = "5.0.0";
   };
   highline = {
     groups = ["default"];
@@ -1354,10 +1472,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vdcchz7jli1p0gnc669a7bj3q1fv09y9ppf0y3k0vb1jwdwrqwi";
+      sha256 = "0qaamqsh5f3szhcakkak8ikxlzxqnv49n2p7504hcz2l0f4nj0wx";
       type = "gem";
     };
-    version = "1.12.0";
+    version = "1.14.1";
+  };
+  ice_nine = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x";
+      type = "gem";
+    };
+    version = "0.11.2";
   };
   inifile = {
     groups = ["default"];
@@ -1370,15 +1498,15 @@
     version = "3.0.0";
   };
   inspec = {
-    dependencies = ["cookstyle" "faraday_middleware" "inspec-core" "mongo" "progress_bar" "rake" "train" "train-aws" "train-habitat" "train-winrm"];
+    dependencies = ["cookstyle" "faraday_middleware" "inspec-core" "mongo" "progress_bar" "rake" "train" "train-aws" "train-habitat" "train-kubernetes" "train-winrm"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1y2p1dm8b648gw6sabgq45mj0wvc683xq4jvh286vmfhkld8ibgh";
+      sha256 = "0n1c3h1mrnw4059ih0n4gbi77qvwaigg6p8wmbpxkzya0jh45h55";
       type = "gem";
     };
-    version = "5.21.29";
+    version = "6.6.0";
   };
   inspec-bin = {
     dependencies = ["inspec"];
@@ -1386,21 +1514,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02lq4qnmxdc3vn5wwrb5m526js14jvj5c3wczln2skmqg5yr6pbh";
+      sha256 = "05g1sidv6grd9m7i85w4p5kpllds2jpvms6cmxs19948bm9abw91";
       type = "gem";
     };
-    version = "5.21.29";
+    version = "6.6.0";
   };
   inspec-core = {
-    dependencies = ["addressable" "chef-telemetry" "faraday" "faraday-follow_redirects" "hashie" "license-acceptance" "method_source" "mixlib-log" "multipart-post" "parallel" "parslet" "pry" "rspec" "rspec-its" "rubyzip" "semverse" "sslshake" "thor" "tomlrb" "train-core" "tty-prompt" "tty-table"];
+    dependencies = ["addressable" "chef-licensing" "chef-telemetry" "faraday" "faraday-follow_redirects" "hashie" "license-acceptance" "method_source" "mixlib-log" "multipart-post" "parallel" "parslet" "pry" "rspec" "rspec-its" "rubyzip" "semverse" "sslshake" "thor" "tomlrb" "train-core" "tty-prompt" "tty-table"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1irzd4nms4fpv5llkqsx8mlgyhgsibkzk293w31yixarg3jbnvd7";
+      sha256 = "0mlw0jbik3hpypnxx9bz4ymfzi8v9f875c73nql9m2j0zxb10hwa";
       type = "gem";
     };
-    version = "5.21.29";
+    version = "6.6.0";
   };
   jmespath = {
     groups = ["default"];
@@ -1417,20 +1545,42 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nalhin1gda4v8ybk6lq8f407cgfrj6qzn234yra4ipkmlbfmal6";
+      sha256 = "0r9jmjhg2ly3l736flk7r2al47b5c8cayh0gqkq0yhjqzc9a6zhq";
+      type = "gem";
+    };
+    version = "2.7.1";
+  };
+  jsonpath = {
+    dependencies = ["multi_json" "to_regexp"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zim5bl7zsbccd502iy63f7c3b6dw0a820z7q8kpv66hncavb7gp";
       type = "gem";
     };
-    version = "2.6.3";
+    version = "0.9.9";
   };
   jwt = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09yj3z5snhaawh2z1w45yyihzmh57m6m7dp8ra8gxavhj5kbiq5p";
+      sha256 = "16z11alz13vfc4zs5l3fk6n51n2jw9lskvc4h4prnww0y797qd87";
       type = "gem";
     };
-    version = "2.7.0";
+    version = "2.7.1";
+  };
+  k8s-ruby = {
+    dependencies = ["dry-configurable" "dry-struct" "dry-types" "excon" "hashdiff" "jsonpath" "recursive-open-struct" "yajl-ruby" "yaml-safe_load_stream3"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09q2lxwcsdmnqi91c62gc89bvwlq0arn5nvrl6g1whg46zvmis5z";
+      type = "gem";
+    };
+    version = "0.14.0";
   };
   license-acceptance = {
     dependencies = ["pastel" "tomlrb" "tty-box" "tty-prompt"];
@@ -1489,20 +1639,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lbim375gw2dk6383qirz13hgdmxlan0vc5da2l072j3qw6fqjm5";
+      sha256 = "1vycif7pjzkr29mfk4dlqv3disc5dn0va04lkwajlpr1wkibg0c6";
       type = "gem";
     };
-    version = "1.1.2";
+    version = "1.1.5";
   };
   minitest = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ic7i5z88zcaqnpzprf7saimq2f6sad57g5mkkqsrqrcd6h3mx06";
+      sha256 = "0bkmfi9mb49m0fkdhl2g38i3xxa02d411gg0m8x0gvbwfmmg5ym3";
       type = "gem";
     };
-    version = "5.18.0";
+    version = "5.20.0";
   };
   mixlib-config = {
     dependencies = ["tomlrb"];
@@ -1605,10 +1755,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0yx0pb5fmziz92bw8qzbh8vf20lr56nd3s6q8h0gsgr307lki687";
+      sha256 = "1jyj6j7w9zpj2zhp4dyhdjiwsn9rqwksj7s7fzpnn7rx2xvz2a1a";
       type = "gem";
     };
-    version = "7.1.0";
+    version = "7.2.0";
   };
   nori = {
     groups = ["default"];
@@ -1651,15 +1801,15 @@
     version = "1.23.0";
   };
   parser = {
-    dependencies = ["ast"];
+    dependencies = ["ast" "racc"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s5afi89p76k8vpwiqvh343pm5l23ijqlpszhz65afym3zpkxhzx";
+      sha256 = "0r69dbh6h6j4d54isany2ir4ni4gf2ysvk3k44awi6amz18nggpd";
       type = "gem";
     };
-    version = "3.2.2.0";
+    version = "3.2.2.4";
   };
   parslet = {
     groups = ["default"];
@@ -1709,10 +1859,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hz0bx2qs2pwb0bwazzsah03ilpf3aai8b7lk7s35jsfzwbkjq35";
+      sha256 = "1bni4qjrsh2q49pnmmd6if4iv3ak36bd2cckrs6npl111n769k9m";
       type = "gem";
     };
-    version = "5.0.1";
+    version = "5.0.4";
+  };
+  racc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01b9662zd2x9bp4rdjfid07h09zxj7kvn7f5fghbqhzc625ap1dp";
+      type = "gem";
+    };
+    version = "1.7.3";
   };
   rainbow = {
     groups = ["default"];
@@ -1729,20 +1889,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w";
+      sha256 = "1ilr853hawi09626axx0mps4rkkmxcs54mapz9jnqvpnlwd3wsmy";
+      type = "gem";
+    };
+    version = "13.1.0";
+  };
+  recursive-open-struct = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nnyr6qsqrcszf6c10n4zfjs8h9n67zvsmx6mp8brkigamr8llx3";
       type = "gem";
     };
-    version = "13.0.6";
+    version = "1.1.3";
   };
   regexp_parser = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17xizkw5ryw8hhq64iqxmzdrrdxpc5lhkqc1fgm1aj0zsk1r2950";
+      sha256 = "1xrghj2vka7girycp1m88kvl4qxkm4mj4djz4w1jzywb4v97fclm";
       type = "gem";
     };
-    version = "2.8.0";
+    version = "2.8.3";
   };
   representable = {
     dependencies = ["declarative" "trailblazer-option" "uber"];
@@ -1770,10 +1940,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
+      sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0";
       type = "gem";
     };
-    version = "3.2.5";
+    version = "3.2.6";
   };
   rspec = {
     dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
@@ -1781,10 +1951,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19dyb6rcvgi9j2mksd29wfdhfdyzqk7yjhy1ai77559hbhpg61w9";
+      sha256 = "171rc90vcgjl8p1bdrqa92ymrj8a87qf6w20x05xq29mljcigi6c";
       type = "gem";
     };
-    version = "3.11.0";
+    version = "3.12.0";
   };
   rspec-core = {
     dependencies = ["rspec-support"];
@@ -1792,10 +1962,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "118hkfw9b11hvvalr7qlylwal5h8dihagm9xg7k4gskg7587hca6";
+      sha256 = "0l95bnjxdabrn79hwdhn2q1n7mn26pj7y1w5660v5qi81x458nqm";
       type = "gem";
     };
-    version = "3.11.0";
+    version = "3.12.2";
   };
   rspec-expectations = {
     dependencies = ["diff-lcs" "rspec-support"];
@@ -1803,10 +1973,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0l1bzk6a68i1b2qix83vs40r0pbjawv67hixiq2qxsja19bbq3bc";
+      sha256 = "05j44jfqlv7j2rpxb5vqzf9hfv7w8ba46wwgxwcwd8p0wzi1hg89";
       type = "gem";
     };
-    version = "3.11.1";
+    version = "3.12.3";
   };
   rspec-its = {
     dependencies = ["rspec-core" "rspec-expectations"];
@@ -1825,20 +1995,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vsqp9dij2rj9aapcn3sz7qzw0d8ln7x9p46h9rzd3jzb7his9kk";
+      sha256 = "1gq7gviwpck7fhp4y5ibljljvxgjklza18j62qf6zkm2icaa8lfy";
       type = "gem";
     };
-    version = "3.11.2";
+    version = "3.12.6";
   };
   rspec-support = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1c01iicvrjk6vv744jgh0y4kk9d0kg2rd2ihdyzvg5p06xm2fpzq";
+      sha256 = "1ky86j3ksi26ng9ybd7j0qsdf1lpr8mzrmn98yy9gzv801fvhsgr";
       type = "gem";
     };
-    version = "3.11.1";
+    version = "3.12.1";
   };
   rubocop = {
     dependencies = ["parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
@@ -1857,10 +2027,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0n2gsafg6p7nr1z8i1hkvp2qqkkbg842ba183dnl0h08xd9ms6q5";
+      sha256 = "1cs9cc5p9q70valk4na3lki4xs88b52486p2v46yx3q1n5969bgs";
       type = "gem";
     };
-    version = "1.28.0";
+    version = "1.30.0";
   };
   ruby-progressbar = {
     groups = ["default"];
@@ -1918,10 +2088,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0100rclkhagf032rg3r0gf3f4znrvvvqrimy6hpa73f21n9k2a0x";
+      sha256 = "0fzakk5y7zzii76zlkynpp1c764mzkkfg4mpj18f5pf2xp1aikb6";
       type = "gem";
     };
-    version = "0.17.0";
+    version = "0.18.0";
   };
   sslshake = {
     groups = ["default"];
@@ -1959,10 +2129,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0inl77jh4ia03jw3iqm5ipr76ghal3hyjrd6r8zqsswwvi9j2xdi";
+      sha256 = "0k7j2wn14h1pl4smibasw0bp66kg626drxb59z7rzflch99cd4rg";
       type = "gem";
     };
-    version = "1.2.1";
+    version = "1.2.2";
   };
   timeliness = {
     groups = ["default"];
@@ -1974,6 +2144,16 @@
     };
     version = "0.3.10";
   };
+  to_regexp = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rgabfhnql6l4fx09mmj5d0vza924iczqf2blmn82l782b6qqi9v";
+      type = "gem";
+    };
+    version = "0.2.1";
+  };
   tomlrb = {
     groups = ["default"];
     platforms = [];
@@ -2000,21 +2180,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04ixvxhpv33h8wcirplzgp5pix2xipx5hfxxlrjp579hrcs38sjy";
+      sha256 = "18ghsakhnm4xjzfi53d1ij5a2vgr1nk8fgqrr05rbya7c9sbh8ns";
       type = "gem";
     };
-    version = "3.10.7";
+    version = "3.11.0";
   };
   train-aws = {
-    dependencies = ["aws-sdk-alexaforbusiness" "aws-sdk-amplify" "aws-sdk-apigateway" "aws-sdk-apigatewayv2" "aws-sdk-applicationautoscaling" "aws-sdk-athena" "aws-sdk-autoscaling" "aws-sdk-batch" "aws-sdk-budgets" "aws-sdk-cloudformation" "aws-sdk-cloudfront" "aws-sdk-cloudhsm" "aws-sdk-cloudhsmv2" "aws-sdk-cloudtrail" "aws-sdk-cloudwatch" "aws-sdk-cloudwatchevents" "aws-sdk-cloudwatchlogs" "aws-sdk-codecommit" "aws-sdk-codedeploy" "aws-sdk-codepipeline" "aws-sdk-cognitoidentity" "aws-sdk-cognitoidentityprovider" "aws-sdk-configservice" "aws-sdk-core" "aws-sdk-costandusagereportservice" "aws-sdk-databasemigrationservice" "aws-sdk-dynamodb" "aws-sdk-ec2" "aws-sdk-ecr" "aws-sdk-ecrpublic" "aws-sdk-ecs" "aws-sdk-efs" "aws-sdk-eks" "aws-sdk-elasticache" "aws-sdk-elasticbeanstalk" "aws-sdk-elasticloadbalancing" "aws-sdk-elasticloadbalancingv2" "aws-sdk-elasticsearchservice" "aws-sdk-emr" "aws-sdk-eventbridge" "aws-sdk-firehose" "aws-sdk-glue" "aws-sdk-guardduty" "aws-sdk-iam" "aws-sdk-kafka" "aws-sdk-kinesis" "aws-sdk-kms" "aws-sdk-lambda" "aws-sdk-mq" "aws-sdk-networkfirewall" "aws-sdk-networkmanager" "aws-sdk-organizations" "aws-sdk-ram" "aws-sdk-rds" "aws-sdk-redshift" "aws-sdk-route53" "aws-sdk-route53domains" "aws-sdk-route53resolver" "aws-sdk-s3" "aws-sdk-s3control" "aws-sdk-secretsmanager" "aws-sdk-securityhub" "aws-sdk-servicecatalog" "aws-sdk-ses" "aws-sdk-shield" "aws-sdk-signer" "aws-sdk-simpledb" "aws-sdk-sms" "aws-sdk-sns" "aws-sdk-sqs" "aws-sdk-ssm" "aws-sdk-states" "aws-sdk-synthetics" "aws-sdk-transfer" "aws-sdk-waf"];
+    dependencies = ["aws-sdk-account" "aws-sdk-alexaforbusiness" "aws-sdk-amplify" "aws-sdk-apigateway" "aws-sdk-apigatewayv2" "aws-sdk-applicationautoscaling" "aws-sdk-athena" "aws-sdk-autoscaling" "aws-sdk-batch" "aws-sdk-budgets" "aws-sdk-cloudformation" "aws-sdk-cloudfront" "aws-sdk-cloudhsm" "aws-sdk-cloudhsmv2" "aws-sdk-cloudtrail" "aws-sdk-cloudwatch" "aws-sdk-cloudwatchevents" "aws-sdk-cloudwatchlogs" "aws-sdk-codecommit" "aws-sdk-codedeploy" "aws-sdk-codepipeline" "aws-sdk-cognitoidentity" "aws-sdk-cognitoidentityprovider" "aws-sdk-configservice" "aws-sdk-core" "aws-sdk-costandusagereportservice" "aws-sdk-databasemigrationservice" "aws-sdk-dynamodb" "aws-sdk-ec2" "aws-sdk-ecr" "aws-sdk-ecrpublic" "aws-sdk-ecs" "aws-sdk-efs" "aws-sdk-eks" "aws-sdk-elasticache" "aws-sdk-elasticbeanstalk" "aws-sdk-elasticloadbalancing" "aws-sdk-elasticloadbalancingv2" "aws-sdk-elasticsearchservice" "aws-sdk-emr" "aws-sdk-eventbridge" "aws-sdk-firehose" "aws-sdk-glue" "aws-sdk-guardduty" "aws-sdk-iam" "aws-sdk-kafka" "aws-sdk-kinesis" "aws-sdk-kms" "aws-sdk-lambda" "aws-sdk-mq" "aws-sdk-networkfirewall" "aws-sdk-networkmanager" "aws-sdk-organizations" "aws-sdk-ram" "aws-sdk-rds" "aws-sdk-redshift" "aws-sdk-route53" "aws-sdk-route53domains" "aws-sdk-route53resolver" "aws-sdk-s3" "aws-sdk-s3control" "aws-sdk-secretsmanager" "aws-sdk-securityhub" "aws-sdk-servicecatalog" "aws-sdk-ses" "aws-sdk-shield" "aws-sdk-signer" "aws-sdk-simpledb" "aws-sdk-sms" "aws-sdk-sns" "aws-sdk-sqs" "aws-sdk-ssm" "aws-sdk-states" "aws-sdk-synthetics" "aws-sdk-transfer" "aws-sdk-waf"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vl7yfzcd6mq5lmjgagxbdhjhyv5rj2piap3w28zdwqkbyyhir8b";
+      sha256 = "0b0p6ig4dfd2y1cfwdlzxj7wsbllwyzxd1wg87z1vs78v892ip5n";
       type = "gem";
     };
-    version = "0.2.24";
+    version = "0.2.36";
   };
   train-core = {
     dependencies = ["addressable" "ffi" "json" "mixlib-shellout" "net-scp" "net-ssh"];
@@ -2022,10 +2202,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1f0yxh5mpr7rdn3660jf5iwc3rhv4l82dd9mhcrm6v85901rvj9c";
+      sha256 = "1j3pfsdrrqpcqp9qbqdh4j1557hww3q3gyjjpnzmgkw43vv685gb";
       type = "gem";
     };
-    version = "3.10.7";
+    version = "3.11.0";
   };
   train-habitat = {
     groups = ["default"];
@@ -2037,6 +2217,17 @@
     };
     version = "0.2.22";
   };
+  train-kubernetes = {
+    dependencies = ["k8s-ruby" "train"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02gy54pybd53hbaay1kllk269pjwbjzfr3jlgxa6sd68ljy7s5w2";
+      type = "gem";
+    };
+    version = "0.1.12";
+  };
   train-winrm = {
     dependencies = ["winrm" "winrm-elevated" "winrm-fs"];
     groups = ["default"];
@@ -2111,6 +2302,17 @@
     };
     version = "0.8.1";
   };
+  tty-spinner = {
+    dependencies = ["tty-cursor"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hh5awmijnzw9flmh5ak610x1d00xiqagxa5mbr63ysggc26y0qf";
+      type = "gem";
+    };
+    version = "0.9.3";
+  };
   tty-table = {
     dependencies = ["pastel" "strings" "tty-screen"];
     groups = ["default"];
@@ -2143,36 +2345,15 @@
     };
     version = "0.1.0";
   };
-  unf = {
-    dependencies = ["unf_ext"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
-      type = "gem";
-    };
-    version = "0.1.4";
-  };
-  unf_ext = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1yj2nz2l101vr1x9w2k83a0fag1xgnmjwp8w8rw4ik2rwcz65fch";
-      type = "gem";
-    };
-    version = "0.0.8.2";
-  };
   unicode-display_width = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gi82k102q7bkmfi7ggn9ciypn897ylln1jk9q67kjhr39fj043a";
+      sha256 = "1d0azx233nags5jx3fqyr23qa2rhgzbhv8pxp46dgbg1mpf82xky";
       type = "gem";
     };
-    version = "2.4.2";
+    version = "2.5.0";
   };
   unicode_utils = {
     groups = ["default"];
@@ -2227,4 +2408,34 @@
     };
     version = "2.0.1";
   };
+  yajl-ruby = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lni4jbyrlph7sz8y49q84pb0sbj82lgwvnjnsiv01xf26f4v5wc";
+      type = "gem";
+    };
+    version = "1.4.3";
+  };
+  yaml-safe_load_stream3 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10g4wy0vmggxnb3bz1zz74rfhhzqa50hc553sn7yqrbywpzn6kzx";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
+  zeitwerk = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gir0if4nryl1jhwi28669gjwhxb7gzrm1fcc8xzsch3bnbi47jn";
+      type = "gem";
+    };
+    version = "2.6.12";
+  };
 }
diff --git a/pkgs/tools/misc/interactsh/default.nix b/pkgs/tools/misc/interactsh/default.nix
index 894bf14457234..a2c31aae9fe99 100644
--- a/pkgs/tools/misc/interactsh/default.nix
+++ b/pkgs/tools/misc/interactsh/default.nix
@@ -26,7 +26,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "An Out of bounds interaction gathering server and client library";
+    description = "Out of bounds interaction gathering server and client library";
     longDescription = ''
       Interactsh is an Open-Source Solution for Out of band Data Extraction,
       A tool designed to detect bugs that cause external interactions,
diff --git a/pkgs/tools/misc/ipbt/default.nix b/pkgs/tools/misc/ipbt/default.nix
index 3b9b6d1496ee3..66369d9833948 100644
--- a/pkgs/tools/misc/ipbt/default.nix
+++ b/pkgs/tools/misc/ipbt/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ ncurses ];
 
   meta = with lib; {
-    description = "A high-tech ttyrec player for Unix";
+    description = "High-tech ttyrec player for Unix";
     homepage = "https://www.chiark.greenend.org.uk/~sgtatham/ipbt/";
     license = licenses.mit;
     maintainers = [ maintainers.tckmn ];
diff --git a/pkgs/tools/misc/ipxe/default.nix b/pkgs/tools/misc/ipxe/default.nix
index 7ad4b0d809f11..0b33329e1bebf 100644
--- a/pkgs/tools/misc/ipxe/default.nix
+++ b/pkgs/tools/misc/ipxe/default.nix
@@ -33,7 +33,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "ipxe";
-  version = "1.21.1-unstable-2024-04-17";
+  version = "1.21.1-unstable-2024-05-31";
 
   nativeBuildInputs = [ gnu-efi mtools openssl perl xorriso xz ] ++ lib.optional stdenv.hostPlatform.isx86 syslinux;
   depsBuildBuild = [ buildPackages.stdenv.cc ];
@@ -43,8 +43,8 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "ipxe";
     repo = "ipxe";
-    rev = "d7e58c5a812988c341ec4ad19f79faf067388d58";
-    hash = "sha256-OIisRd2o2zrTqH1Xv3FDhQWDqhKNeGhPkHWyYZzbtTU=";
+    rev = "e965f179e1654103eca33feed7a9cc4c51d91be6";
+    hash = "sha256-32LYNF+5z5rS4y2iGKA2BnQntXg9Ec9709m6pL5hBdo=";
   };
 
   postPatch = lib.optionalString stdenv.hostPlatform.isAarch64 ''
diff --git a/pkgs/tools/misc/ised/default.nix b/pkgs/tools/misc/ised/default.nix
index 9f6b716b42930..ee07ccc23e1ee 100644
--- a/pkgs/tools/misc/ised/default.nix
+++ b/pkgs/tools/misc/ised/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "A numeric sequence editor";
+    description = "Numeric sequence editor";
     maintainers = with lib.maintainers; [ raskin ];
     platforms = with lib.platforms; linux;
     license = lib.licenses.gpl3Plus;
diff --git a/pkgs/tools/misc/isoimagewriter/default.nix b/pkgs/tools/misc/isoimagewriter/default.nix
index 1ffb0f51db510..66cad815a2c75 100644
--- a/pkgs/tools/misc/isoimagewriter/default.nix
+++ b/pkgs/tools/misc/isoimagewriter/default.nix
@@ -21,7 +21,7 @@ mkDerivation rec {
   ];
 
   meta = {
-    description = "A program to write hybrid ISO files onto USB disks";
+    description = "Program to write hybrid ISO files onto USB disks";
     homepage = "https://invent.kde.org/utilities/isoimagewriter";
     platforms = lib.platforms.linux;
     license = lib.licenses.gpl3Plus;
diff --git a/pkgs/tools/misc/jdiskreport/default.nix b/pkgs/tools/misc/jdiskreport/default.nix
index 6490d68ce0b77..b8e983ea91bdb 100644
--- a/pkgs/tools/misc/jdiskreport/default.nix
+++ b/pkgs/tools/misc/jdiskreport/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.jgoodies.com/freeware/jdiskreport/";
-    description = "A graphical utility to visualize disk usage";
+    description = "Graphical utility to visualize disk usage";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.unfreeRedistributable; #TODO freedist, libs under BSD-3
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
diff --git a/pkgs/tools/misc/jdupes/default.nix b/pkgs/tools/misc/jdupes/default.nix
index 8e29307ad24a0..9d311a30d0fb9 100644
--- a/pkgs/tools/misc/jdupes/default.nix
+++ b/pkgs/tools/misc/jdupes/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A powerful duplicate file finder and an enhanced fork of 'fdupes'";
+    description = "Powerful duplicate file finder and an enhanced fork of 'fdupes'";
     longDescription = ''
       jdupes is a program for identifying and taking actions upon
       duplicate files. This fork known as 'jdupes' is heavily modified
diff --git a/pkgs/tools/misc/jstest-gtk/default.nix b/pkgs/tools/misc/jstest-gtk/default.nix
index 1b201396b7ad7..8fb45330e124d 100644
--- a/pkgs/tools/misc/jstest-gtk/default.nix
+++ b/pkgs/tools/misc/jstest-gtk/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ gtkmm3 libsigcxx xorg.libX11 ];
 
   meta = with lib; {
-    description = "A simple joystick tester based on Gtk+";
+    description = "Simple joystick tester based on Gtk+";
     longDescription = ''
       It provides you with a list of attached joysticks, a way to display which
       buttons and axis are pressed, a way to remap axis and buttons and a way
diff --git a/pkgs/tools/misc/jugglinglab/default.nix b/pkgs/tools/misc/jugglinglab/default.nix
index ee2f4cbfc7e5e..f8f7a3fb37fdf 100644
--- a/pkgs/tools/misc/jugglinglab/default.nix
+++ b/pkgs/tools/misc/jugglinglab/default.nix
@@ -63,7 +63,7 @@ maven.buildMavenPackage rec {
   '';
 
   meta = with lib; {
-    description = "A program to visualize different juggling pattens";
+    description = "Program to visualize different juggling pattens";
     homepage = "https://jugglinglab.org/";
     license = licenses.gpl2Only;
     mainProgram = "jugglinglab";
diff --git a/pkgs/tools/misc/kakoune-cr/default.nix b/pkgs/tools/misc/kakoune-cr/default.nix
index 9a9fa5c9162a1..8a8eb55d65e6c 100644
--- a/pkgs/tools/misc/kakoune-cr/default.nix
+++ b/pkgs/tools/misc/kakoune-cr/default.nix
@@ -42,7 +42,7 @@ crystal.buildCrystalPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/alexherbo2/kakoune.cr";
-    description = "A command-line tool for Kakoune";
+    description = "Command-line tool for Kakoune";
     license = licenses.unlicense;
     maintainers = with maintainers; [ malte-v ];
     platforms = platforms.unix;
diff --git a/pkgs/tools/misc/kalker/default.nix b/pkgs/tools/misc/kalker/default.nix
index ef152524da7ad..452ac6abc26d5 100644
--- a/pkgs/tools/misc/kalker/default.nix
+++ b/pkgs/tools/misc/kalker/default.nix
@@ -23,11 +23,6 @@ rustPlatform.buildRustPackage rec {
 
   outputs = [ "out" "lib" ];
 
-  # Cargo.lock is outdated
-  preConfigure = ''
-    cargo metadata --offline
-  '';
-
   postInstall = ''
     moveToOutput "lib" "$lib"
   '';
@@ -37,7 +32,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     homepage = "https://kalker.strct.net";
     changelog = "https://github.com/PaddiM8/kalker/releases/tag/v${version}";
-    description = "A command line calculator";
+    description = "Command line calculator";
     longDescription = ''
       A command line calculator that supports math-like syntax with user-defined
       variables, functions, derivation, integration, and complex numbers
diff --git a/pkgs/tools/misc/kargo/default.nix b/pkgs/tools/misc/kargo/default.nix
index 2097d47aa1ba2..5945ce4d4fe25 100644
--- a/pkgs/tools/misc/kargo/default.nix
+++ b/pkgs/tools/misc/kargo/default.nix
@@ -30,7 +30,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/kubespray/kargo-cli";
-    description = "A tool helps to deploy a kubernetes cluster with Ansible";
+    description = "Tool helps to deploy a kubernetes cluster with Ansible";
     platforms = platforms.all;
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/tools/misc/kb/default.nix b/pkgs/tools/misc/kb/default.nix
index 85a72adebcddc..f3de66d7612f0 100644
--- a/pkgs/tools/misc/kb/default.nix
+++ b/pkgs/tools/misc/kb/default.nix
@@ -41,7 +41,7 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   meta = with lib; {
-    description = "A minimalist command line knowledge base manager";
+    description = "Minimalist command line knowledge base manager";
     longDescription = ''
       kb is a text-oriented minimalist command line knowledge base manager. kb
       can be considered a quick note collection and access tool oriented toward
diff --git a/pkgs/tools/misc/kcollectd/default.nix b/pkgs/tools/misc/kcollectd/default.nix
index dc45a18fe3dda..c46fdcd74ec4b 100644
--- a/pkgs/tools/misc/kcollectd/default.nix
+++ b/pkgs/tools/misc/kcollectd/default.nix
@@ -47,7 +47,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A graphical frontend to collectd";
+    description = "Graphical frontend to collectd";
     homepage = "https://www.antonioerusso.com/projects/kcollectd/";
     maintainers = [ maintainers.symphorien ];
     license = [ lib.licenses.gpl3Plus ];
diff --git a/pkgs/tools/misc/keymapviz/default.nix b/pkgs/tools/misc/keymapviz/default.nix
index 6ed68a43b31f2..22b361b3c94ae 100644
--- a/pkgs/tools/misc/keymapviz/default.nix
+++ b/pkgs/tools/misc/keymapviz/default.nix
@@ -14,7 +14,7 @@ python3.pkgs.buildPythonApplication rec {
   propagatedBuildInputs = with python3.pkgs; [ regex ];
 
   meta = with lib; {
-    description = "A qmk keymap.c visualizer";
+    description = "Qmk keymap.c visualizer";
     homepage = "https://github.com/yskoht/keymapviz";
     license = licenses.mit;
     maintainers = with maintainers; [ lom ];
diff --git a/pkgs/tools/misc/killport/default.nix b/pkgs/tools/misc/killport/default.nix
index d043385f2069e..24f66a8b497fa 100644
--- a/pkgs/tools/misc/killport/default.nix
+++ b/pkgs/tools/misc/killport/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   nativeBuildInputs = [ rustPlatform.bindgenHook ];
 
   meta = with lib; {
-    description = "A command-line tool to easily kill processes running on a specified port";
+    description = "Command-line tool to easily kill processes running on a specified port";
     homepage = "https://github.com/jkfran/killport";
     license = licenses.mit;
     maintainers = with maintainers; [ sno2wman ];
diff --git a/pkgs/tools/misc/krapslog/default.nix b/pkgs/tools/misc/krapslog/default.nix
index 909d047f834af..5448fa942763a 100644
--- a/pkgs/tools/misc/krapslog/default.nix
+++ b/pkgs/tools/misc/krapslog/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "krapslog";
-  version = "0.5.4";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "acj";
     repo = "krapslog-rs";
     rev = version;
-    sha256 = "sha256-nYKqPaO7sA9aWPqngLoTq2PkpAi9zCADFZhYwIK1L2s=";
+    sha256 = "sha256-wRziLNMwLZBCn330FNC9x6loCCyuC+31Kh51ZI/j1Cc=";
   };
 
-  cargoHash = "sha256-Ybz2hNRMWSRuF6tWKsm0Ka7TOKwKvssA9/i6Hqk1tEE=";
+  cargoHash = "sha256-5jhEcwOdzLqzxQsEBqo4d5ecsg/vhiKuVjGYIwFzihE=";
 
   buildInputs = lib.optional stdenv.isDarwin libiconv;
 
diff --git a/pkgs/tools/misc/kronometer/default.nix b/pkgs/tools/misc/kronometer/default.nix
index 6e303ddfc983e..a9a769e7ce0ed 100644
--- a/pkgs/tools/misc/kronometer/default.nix
+++ b/pkgs/tools/misc/kronometer/default.nix
@@ -15,7 +15,7 @@ mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://kde.org/applications/utilities/kronometer/";
-    description = "A stopwatch application";
+    description = "Stopwatch application";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ peterhoeg ];
     mainProgram = "kronometer";
diff --git a/pkgs/tools/misc/krunner-translator/default.nix b/pkgs/tools/misc/krunner-translator/default.nix
index c97428b9469c9..e500b7c1ddea8 100644
--- a/pkgs/tools/misc/krunner-translator/default.nix
+++ b/pkgs/tools/misc/krunner-translator/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A plugin for KRunner which integrates a translator, supports Google Translate, Bing Translator, youdao and Baidu Fanyi";
+    description = "Plugin for KRunner which integrates a translator, supports Google Translate, Bing Translator, youdao and Baidu Fanyi";
     homepage = "https://github.com/naraesk/krunner-translator";
     license = licenses.gpl3;
     maintainers = with maintainers; [ pongo1231 ];
diff --git a/pkgs/tools/misc/lazycli/default.nix b/pkgs/tools/misc/lazycli/default.nix
index 70b5f345690ee..1522a937ffb86 100644
--- a/pkgs/tools/misc/lazycli/default.nix
+++ b/pkgs/tools/misc/lazycli/default.nix
@@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A tool to static turn CLI commands into TUIs";
+    description = "Tool to static turn CLI commands into TUIs";
     homepage = "https://github.com/jesseduffield/lazycli";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/pkgs/tools/misc/lazydocker/default.nix b/pkgs/tools/misc/lazydocker/default.nix
index 59a6ad16ce9d5..08ddc37ca977a 100644
--- a/pkgs/tools/misc/lazydocker/default.nix
+++ b/pkgs/tools/misc/lazydocker/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "lazydocker";
-  version = "0.23.1";
+  version = "0.23.3";
 
   src = fetchFromGitHub {
     owner = "jesseduffield";
     repo = "lazydocker";
     rev = "v${version}";
-    sha256 = "sha256-nW3eaSisXLqoWZ+5YLLCfC1k4lTXWd5ZqY2xTM/I0PY=";
+    sha256 = "sha256-1nw0X8sZBtBsxlEUDVYMAinjMEMlIlzjJ4s+WApeE6o=";
   };
 
   vendorHash = null;
@@ -26,7 +26,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A simple terminal UI for both docker and docker-compose";
+    description = "Simple terminal UI for both docker and docker-compose";
     homepage = "https://github.com/jesseduffield/lazydocker";
     license = licenses.mit;
     maintainers = with maintainers; [ das-g Br1ght0ne ];
diff --git a/pkgs/tools/misc/lbdb/default.nix b/pkgs/tools/misc/lbdb/default.nix
index 44f0149cbb7cc..20ea8beaaa838 100644
--- a/pkgs/tools/misc/lbdb/default.nix
+++ b/pkgs/tools/misc/lbdb/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.spinnaker.de/lbdb/";
-    description = "The Little Brother's Database";
+    description = "Little Brother's Database";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ kaiha bfortz ];
     platforms = platforms.all;
diff --git a/pkgs/tools/misc/leanify/default.nix b/pkgs/tools/misc/leanify/default.nix
index 86aef217e1100..f0006ff7f183e 100644
--- a/pkgs/tools/misc/leanify/default.nix
+++ b/pkgs/tools/misc/leanify/default.nix
@@ -24,6 +24,14 @@ stdenv.mkDerivation rec {
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
+  doCheck = true;
+
+  checkPhase = ''
+    runHook preCheck
+    ./leanify /dev/null
+    runHook postCheck
+  '';
+
   installPhase = ''
     runHook preInstall
 
diff --git a/pkgs/tools/misc/ledit/default.nix b/pkgs/tools/misc/ledit/default.nix
index e6470ea3fb8c2..a9ef90a48bf3b 100644
--- a/pkgs/tools/misc/ledit/default.nix
+++ b/pkgs/tools/misc/ledit/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "http://pauillac.inria.fr/~ddr/ledit/";
-    description = "A line editor, allowing to use shell commands with control characters like in emacs";
+    description = "Line editor, allowing to use shell commands with control characters like in emacs";
     license = licenses.bsd3;
     maintainers = [ maintainers.delta ];
     mainProgram = "ledit";
diff --git a/pkgs/tools/misc/lektor/default.nix b/pkgs/tools/misc/lektor/default.nix
index 129e5e41851c1..84c4042912bd3 100644
--- a/pkgs/tools/misc/lektor/default.nix
+++ b/pkgs/tools/misc/lektor/default.nix
@@ -94,7 +94,7 @@ python.pkgs.buildPythonApplication rec {
   '';
 
   meta = {
-    description = "A static content management system";
+    description = "Static content management system";
     homepage = "https://www.getlektor.com/";
     changelog = "https://github.com/lektor/lektor/blob/v${version}/CHANGES.md";
     license = lib.licenses.bsd3;
diff --git a/pkgs/tools/misc/lemmeknow/default.nix b/pkgs/tools/misc/lemmeknow/default.nix
index aa5c3786831a8..8c119a350a92a 100644
--- a/pkgs/tools/misc/lemmeknow/default.nix
+++ b/pkgs/tools/misc/lemmeknow/default.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-slV9RxdFCEx1El7hngWGv+5CqDSQsU2ACF2nWQLOTU0=";
 
   meta = with lib; {
-    description = "A tool to identify anything";
+    description = "Tool to identify anything";
     homepage = "https://github.com/swanandx/lemmeknow";
     changelog = "https://github.com/swanandx/lemmeknow/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/tools/misc/lemmy-help/default.nix b/pkgs/tools/misc/lemmy-help/default.nix
index 8c0f7110226e5..2e4126db38f8d 100644
--- a/pkgs/tools/misc/lemmy-help/default.nix
+++ b/pkgs/tools/misc/lemmy-help/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "sha256-BCwpiBPvnLgbpOaXgUK2EDXnT8d4jo7aqgM6uwl80eg=";
 
   meta = with lib; {
-    description = "A CLI for generating vim help docs from emmylua comments";
+    description = "CLI for generating vim help docs from emmylua comments";
     longDescription = ''
       `lemmy-help` is an emmylua parser as well as a CLI which takes that parsed tree and converts it into vim help docs.
     '';
diff --git a/pkgs/tools/misc/lesspipe/default.nix b/pkgs/tools/misc/lesspipe/default.nix
index 9922573d3e933..b2c310bc5f40e 100644
--- a/pkgs/tools/misc/lesspipe/default.nix
+++ b/pkgs/tools/misc/lesspipe/default.nix
@@ -74,9 +74,9 @@ stdenv.mkDerivation rec {
           "mdcat" "pandoc" "docx2txt" "libreoffice" "pptx2md" "mdcat" "xlscat" "odt2txt" "wvText" "antiword" "catdoc"
           "broken_catppt" "sxw2txt" "groff" "mandoc" "unrtf" "dvi2tty" "pod2text" "perldoc" "h5dump" "ncdump" "matdump"
           "djvutxt" "openssl" "gpg" "plistutil" "plutil" "id3v2" "csvlook" "jq" "zlib-flate" "lessfilter"
-        ] ++ lib.optional stdenv.isDarwin [
-          # resholve only identifies this on darwin
-          # call site is gaurded by || so it's safe to leave dynamic
+        ] ++ lib.optional (stdenv.isDarwin || stdenv.isFreeBSD) [
+          # resholve only identifies this on darwin/bsd
+          # call site is guarded by || so it's safe to leave dynamic
           "locale"
         ];
         builtin = [ "setopt" ];
@@ -108,7 +108,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A preprocessor for less";
+    description = "Preprocessor for less";
     longDescription = ''
       Usually lesspipe.sh is called as an input filter to less. With the help
       of that filter less will display the uncompressed contents of compressed
diff --git a/pkgs/tools/misc/license-generator/default.nix b/pkgs/tools/misc/license-generator/default.nix
index 2aa2235e7c3cc..01aa8e554fb0b 100644
--- a/pkgs/tools/misc/license-generator/default.nix
+++ b/pkgs/tools/misc/license-generator/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "license-generator";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-ijA/AqLeQ9/XLeCriWNUA6R3iKyq+QPDH5twSvqFmEA=";
+    hash = "sha256-OIut6eE8cm7eBeHwuCUqSMDH48ZiJpF4vFaQ6wVLnfg=";
   };
 
-  cargoHash = "sha256-FfkCV4anPHElGGIOYDSzHam5ohVGpOgtu/nM0aw9HzU=";
+  cargoHash = "sha256-tv3Qx4JP2Lbl+k686mX7acabh7nyP1E9w7cQUnjh+pE=";
 
   meta = with lib; {
     description = "Command-line tool for generating license files";
diff --git a/pkgs/tools/misc/lifecycled/default.nix b/pkgs/tools/misc/lifecycled/default.nix
index 728424f8d89e8..f4148b6316c28 100644
--- a/pkgs/tools/misc/lifecycled/default.nix
+++ b/pkgs/tools/misc/lifecycled/default.nix
@@ -22,7 +22,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A daemon for responding to AWS AutoScaling Lifecycle Hooks";
+    description = "Daemon for responding to AWS AutoScaling Lifecycle Hooks";
     homepage = "https://github.com/buildkite/lifecycled/";
     license = licenses.mit;
     maintainers = with maintainers; [ cole-h grahamc ];
diff --git a/pkgs/tools/misc/limitcpu/default.nix b/pkgs/tools/misc/limitcpu/default.nix
index 168abdd56ba88..4d8b14229ac23 100644
--- a/pkgs/tools/misc/limitcpu/default.nix
+++ b/pkgs/tools/misc/limitcpu/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://limitcpu.sourceforge.net/";
-    description = "A tool to throttle the CPU usage of programs";
+    description = "Tool to throttle the CPU usage of programs";
     platforms = with platforms; linux ++ freebsd;
     license = licenses.gpl2Only;
     maintainers = [maintainers.rycee];
diff --git a/pkgs/tools/misc/lipl/default.nix b/pkgs/tools/misc/lipl/default.nix
index 1f6b8437af301..8d9d294f3edd7 100644
--- a/pkgs/tools/misc/lipl/default.nix
+++ b/pkgs/tools/misc/lipl/default.nix
@@ -22,7 +22,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A command line tool to analyse the output over time of custom shell commands";
+    description = "Command line tool to analyse the output over time of custom shell commands";
     homepage = "https://github.com/yxdunc/lipl";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/pkgs/tools/misc/lnav/default.nix b/pkgs/tools/misc/lnav/default.nix
index ffaea930b5d33..623dcb28c97e5 100644
--- a/pkgs/tools/misc/lnav/default.nix
+++ b/pkgs/tools/misc/lnav/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/tstack/lnav";
-    description = "The Logfile Navigator";
+    description = "Logfile Navigator";
     longDescription = ''
       The log file navigator, lnav, is an enhanced log file viewer that takes
       advantage of any semantic information that can be gleaned from the files
diff --git a/pkgs/tools/misc/lokalise2-cli/default.nix b/pkgs/tools/misc/lokalise2-cli/default.nix
index 43a6e50b5b366..c9baf275b4d20 100644
--- a/pkgs/tools/misc/lokalise2-cli/default.nix
+++ b/pkgs/tools/misc/lokalise2-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "lokalise2-cli";
-  version = "2.6.10";
+  version = "2.6.14";
 
   src = fetchFromGitHub {
     owner = "lokalise";
     repo = "lokalise-cli-2-go";
     rev = "v${version}";
-    sha256 = "sha256-jRytFOlyCp8uXOaAgfvjGGFX2IBLKGE5/cQnOed1elE=";
+    sha256 = "sha256-kj0tkI87pgYdJNlQXCRpVhg7IjvWTDBDeXqePO0HZNo=";
   };
 
   vendorHash = "sha256-P7AqMSV05UKeiUqWBxCOlLwMJcAtp0lpUC+eoE3JZFM=";
diff --git a/pkgs/tools/misc/lolcat/default.nix b/pkgs/tools/misc/lolcat/default.nix
index a10c81416053d..b56606d21d5df 100644
--- a/pkgs/tools/misc/lolcat/default.nix
+++ b/pkgs/tools/misc/lolcat/default.nix
@@ -8,7 +8,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "lolcat";
 
   meta = with lib; {
-    description = "A rainbow version of cat";
+    description = "Rainbow version of cat";
     homepage    = "https://github.com/busyloop/lolcat";
     license     = licenses.bsd3;
     maintainers = with maintainers; [ StillerHarpo manveru nicknovitski ];
diff --git a/pkgs/tools/misc/lsd/default.nix b/pkgs/tools/misc/lsd/default.nix
index f89467af643af..9b80e70e35cd8 100644
--- a/pkgs/tools/misc/lsd/default.nix
+++ b/pkgs/tools/misc/lsd/default.nix
@@ -54,7 +54,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/lsd-rs/lsd";
-    description = "The next gen ls command";
+    description = "Next gen ls command";
     license = licenses.asl20;
     maintainers = with maintainers; [ zowoq SuperSandro2000 ];
     mainProgram = "lsd";
diff --git a/pkgs/tools/misc/lwc/default.nix b/pkgs/tools/misc/lwc/default.nix
index 77e6d5033f31e..9d22151405df3 100644
--- a/pkgs/tools/misc/lwc/default.nix
+++ b/pkgs/tools/misc/lwc/default.nix
@@ -23,7 +23,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "A live-updating version of the UNIX wc command";
+    description = "Live-updating version of the UNIX wc command";
     homepage = "https://github.com/timdp/lwc";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/pkgs/tools/misc/macchina/default.nix b/pkgs/tools/misc/macchina/default.nix
index 3da4d9b07fbb3..036d500f6b65f 100644
--- a/pkgs/tools/misc/macchina/default.nix
+++ b/pkgs/tools/misc/macchina/default.nix
@@ -33,7 +33,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A fast, minimal and customizable system information fetcher";
+    description = "Fast, minimal and customizable system information fetcher";
     homepage = "https://github.com/Macchina-CLI/macchina";
     changelog = "https://github.com/Macchina-CLI/macchina/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/pkgs/tools/misc/man-db/default.nix b/pkgs/tools/misc/man-db/default.nix
index 59450f5c360ed..9e717cad275ab 100644
--- a/pkgs/tools/misc/man-db/default.nix
+++ b/pkgs/tools/misc/man-db/default.nix
@@ -89,7 +89,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://man-db.nongnu.org";
-    description = "An implementation of the standard Unix documentation system accessed using the man command";
+    description = "Implementation of the standard Unix documentation system accessed using the man command";
     license = licenses.gpl2Plus;
     platforms = lib.platforms.unix;
     mainProgram = "man";
diff --git a/pkgs/tools/misc/mastotool/default.nix b/pkgs/tools/misc/mastotool/default.nix
index a75f97c4a6ece..eb5e64573225e 100644
--- a/pkgs/tools/misc/mastotool/default.nix
+++ b/pkgs/tools/misc/mastotool/default.nix
@@ -19,7 +19,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "A collection of command-line tools to work with your Mastodon account";
+    description = "Collection of command-line tools to work with your Mastodon account";
     homepage = "https://github.com/muesli/mastotool";
     changelog = "https://github.com/muesli/mastotool/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/tools/misc/mbuffer/default.nix b/pkgs/tools/misc/mbuffer/default.nix
index 672f2eb9298ab..177e70dd574cb 100644
--- a/pkgs/tools/misc/mbuffer/default.nix
+++ b/pkgs/tools/misc/mbuffer/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description  = "A tool for buffering data streams with a large set of unique features";
+    description  = "Tool for buffering data streams with a large set of unique features";
     homepage = "https://www.maier-komor.de/mbuffer.html";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/tools/misc/mcfly/default.nix b/pkgs/tools/misc/mcfly/default.nix
index 17fea7b5fb178..adcbfa7db8267 100644
--- a/pkgs/tools/misc/mcfly/default.nix
+++ b/pkgs/tools/misc/mcfly/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mcfly";
-  version = "0.8.6";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "cantino";
     repo = "mcfly";
     rev = "v${version}";
-    hash = "sha256-OoDfQze4t03PaLyoB0/0HtcsPK6Jy74OythuJG6Vy60=";
+    hash = "sha256-vVpZP3bixbV9K32PP0rxWoEGCnWa4xRYHFmgr8wDbS8=";
   };
 
   postPatch = ''
@@ -17,11 +17,11 @@ rustPlatform.buildRustPackage rec {
     substituteInPlace mcfly.fish --replace '(command which mcfly)'  '${placeholder "out"}/bin/mcfly'
   '';
 
-  cargoHash = "sha256-Y1W9QetWZAgcZdfJNH9Hg3i4NZoCpf7FIPOlaRJzBrQ=";
+  cargoHash = "sha256-MTCHznGki7WALNyZByTz4bZ6NDZFpDXcaQ7iYqbMruA=";
 
   meta = with lib; {
     homepage = "https://github.com/cantino/mcfly";
-    description = "An upgraded ctrl-r where history results make sense for what you're working on right now";
+    description = "Upgraded ctrl-r where history results make sense for what you're working on right now";
     changelog = "https://github.com/cantino/mcfly/raw/v${version}/CHANGELOG.txt";
     license = licenses.mit;
     maintainers = [ maintainers.melkor333 ];
diff --git a/pkgs/tools/misc/memtest86+/default.nix b/pkgs/tools/misc/memtest86+/default.nix
index 520b0a98c2018..72b74039f7806 100644
--- a/pkgs/tools/misc/memtest86+/default.nix
+++ b/pkgs/tools/misc/memtest86+/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://www.memtest.org/";
-    description = "A tool to detect memory errors";
+    description = "Tool to detect memory errors";
     license = lib.licenses.gpl2Only;
     platforms = [ "x86_64-linux" "i686-linux" ];
     maintainers = [ lib.maintainers.LunNova ];
diff --git a/pkgs/tools/misc/memtest86-efi/default.nix b/pkgs/tools/misc/memtest86-efi/default.nix
index 264fe013b27a7..ead250feee6a5 100644
--- a/pkgs/tools/misc/memtest86-efi/default.nix
+++ b/pkgs/tools/misc/memtest86-efi/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.memtest86.com/";
     downloadPage = "https://www.memtest86.com/download.htm";
     changelog = "https://www.memtest86.com/whats-new.html";
-    description = "A tool to detect memory errors, to be run from a bootloader";
+    description = "Tool to detect memory errors, to be run from a bootloader";
     longDescription = ''
       A UEFI app that is able to detect errors in RAM.  It can be run from a
       bootloader.  Released under a proprietary freeware license.
diff --git a/pkgs/tools/misc/microplane/default.nix b/pkgs/tools/misc/microplane/default.nix
index 53d5cc567f09d..5fb431d387419 100644
--- a/pkgs/tools/misc/microplane/default.nix
+++ b/pkgs/tools/misc/microplane/default.nix
@@ -22,7 +22,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A CLI tool to make git changes across many repos";
+    description = "CLI tool to make git changes across many repos";
     homepage = "https://github.com/Clever/microplane";
     license = licenses.asl20;
     maintainers = with maintainers; [ dbirks ];
diff --git a/pkgs/tools/misc/minipro/default.nix b/pkgs/tools/misc/minipro/default.nix
index 13bb93cb4fbe5..b60e886f47c52 100644
--- a/pkgs/tools/misc/minipro/default.nix
+++ b/pkgs/tools/misc/minipro/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.com/DavidGriffith/minipro";
-    description = "An open source program for controlling the MiniPRO TL866xx series of chip programmers";
+    description = "Open source program for controlling the MiniPRO TL866xx series of chip programmers";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.bmwalters ];
     mainProgram = "minipro";
diff --git a/pkgs/tools/misc/mise/default.nix b/pkgs/tools/misc/mise/default.nix
index 5c24e8314ce18..eb8a537b5a930 100644
--- a/pkgs/tools/misc/mise/default.nix
+++ b/pkgs/tools/misc/mise/default.nix
@@ -76,7 +76,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = {
     homepage = "https://mise.jdx.dev";
-    description = "The front-end to your dev env";
+    description = "Front-end to your dev env";
     changelog = "https://github.com/jdx/mise/releases/tag/v${version}";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ konradmalik ];
diff --git a/pkgs/tools/misc/mmake/default.nix b/pkgs/tools/misc/mmake/default.nix
index 32f089f1a7714..b0aff161ecea8 100644
--- a/pkgs/tools/misc/mmake/default.nix
+++ b/pkgs/tools/misc/mmake/default.nix
@@ -20,7 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/tj/mmake";
-    description = "A small program  which wraps make to provide additional functionality";
+    description = "Small program  which wraps make to provide additional functionality";
     longDescription = ''
       Mmake is a small program  which wraps make to provide additional
       functionality,  such   as  user-friendly  help   output,  remote
diff --git a/pkgs/tools/misc/mmctl/default.nix b/pkgs/tools/misc/mmctl/default.nix
index a884f24db4702..956a12f598bdb 100644
--- a/pkgs/tools/misc/mmctl/default.nix
+++ b/pkgs/tools/misc/mmctl/default.nix
@@ -6,7 +6,7 @@ mattermost.overrideAttrs (o: {
   subPackages = [ "cmd/mmctl" ];
 
   meta = o.meta // {
-    description = "A remote CLI tool for Mattermost";
+    description = "Remote CLI tool for Mattermost";
     mainProgram = "mmctl";
   };
 })
diff --git a/pkgs/tools/misc/mongodb-compass/default.nix b/pkgs/tools/misc/mongodb-compass/default.nix
index c89018cf03a45..00dce959fb630 100644
--- a/pkgs/tools/misc/mongodb-compass/default.nix
+++ b/pkgs/tools/misc/mongodb-compass/default.nix
@@ -128,7 +128,7 @@ in stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "The GUI for MongoDB";
+    description = "GUI for MongoDB";
     maintainers = with maintainers; [ bryanasdev000 ];
     homepage = "https://github.com/mongodb-js/compass";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/tools/misc/most/default.nix b/pkgs/tools/misc/most/default.nix
index dd94f1fed45fc..3cea48c31c273 100644
--- a/pkgs/tools/misc/most/default.nix
+++ b/pkgs/tools/misc/most/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A terminal pager similar to 'more' and 'less'";
+    description = "Terminal pager similar to 'more' and 'less'";
     longDescription = ''
       MOST is a powerful paging program for Unix, VMS, MSDOS, and win32
       systems. Unlike other well-known paging programs most supports multiple
diff --git a/pkgs/tools/misc/mpdscribble/default.nix b/pkgs/tools/misc/mpdscribble/default.nix
index 335dedf12fe21..e7baa6641ccfb 100644
--- a/pkgs/tools/misc/mpdscribble/default.nix
+++ b/pkgs/tools/misc/mpdscribble/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   ] ++ lib.optional stdenv.isLinux systemd;
 
   meta = with lib; {
-    description = "A MPD client which submits info about tracks being played to a scrobbler";
+    description = "MPD client which submits info about tracks being played to a scrobbler";
     homepage = "https://www.musicpd.org/clients/mpdscribble/";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.sohalt ];
diff --git a/pkgs/tools/misc/mpremote/default.nix b/pkgs/tools/misc/mpremote/default.nix
index 149e3c9686ac3..b55efaa3b0a01 100644
--- a/pkgs/tools/misc/mpremote/default.nix
+++ b/pkgs/tools/misc/mpremote/default.nix
@@ -9,13 +9,13 @@
 }:
 buildPythonApplication rec {
   pname = "mpremote";
-  version = "1.22.2";
+  version = "1.23.0";
 
   src = fetchFromGitHub {
     owner = "micropython";
     repo = "micropython";
     rev = "refs/tags/v${version}";
-    hash = "sha256-67CAR34VrMOzvNkukDeGRnUfoOLO66R37wsrRHjpp5E=";
+    hash = "sha256-TEW9aDXodPYWlm7xxodaG/2sXOCPpDUKtYVzYZgAzf4=";
   };
   sourceRoot = "${src.name}/tools/mpremote";
   format = "pyproject";
@@ -33,7 +33,7 @@ buildPythonApplication rec {
   pythonImportsCheck = [ "mpremote" ];
 
   meta = with lib; {
-    description = "An integrated set of utilities to remotely interact with and automate a MicroPython device over a serial connection";
+    description = "Integrated set of utilities to remotely interact with and automate a MicroPython device over a serial connection";
     homepage = "https://github.com/micropython/micropython/blob/master/tools/mpremote/README.md";
     platforms = platforms.unix;
     license = licenses.mit;
diff --git a/pkgs/tools/misc/mprocs/default.nix b/pkgs/tools/misc/mprocs/default.nix
index ae0d113f8159b..a2e7f8a018dc9 100644
--- a/pkgs/tools/misc/mprocs/default.nix
+++ b/pkgs/tools/misc/mprocs/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A TUI tool to run multiple commands in parallel and show the output of each command separately";
+    description = "TUI tool to run multiple commands in parallel and show the output of each command separately";
     homepage = "https://github.com/pvolok/mprocs";
     license = licenses.mit;
     maintainers = with maintainers; [ GaetanLepage pyrox0 ];
diff --git a/pkgs/tools/misc/mrtg/default.nix b/pkgs/tools/misc/mrtg/default.nix
index 343a3d5c2a253..ee74024d05567 100644
--- a/pkgs/tools/misc/mrtg/default.nix
+++ b/pkgs/tools/misc/mrtg/default.nix
@@ -1,5 +1,11 @@
 { lib, stdenv, fetchurl, perl, gd, rrdtool }:
 
+let
+  perlWithPkgs = perl.withPackages (pp: with pp;[
+    Socket6
+    IOSocketINET6
+  ]);
+in
 stdenv.mkDerivation rec {
   pname = "mrtg";
   version = "2.17.10";
@@ -10,13 +16,15 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    perl
+    # add support for ipv6 snmp:
+    # https://github.com/oetiker/mrtg/blob/433ebfa5fc043971b46a5cd975fb642c76e3e49d/src/bin/mrtg#L331-L341
+    perlWithPkgs
     gd
     rrdtool
   ];
 
   meta = with lib; {
-    description = "The Multi Router Traffic Grapher";
+    description = "Multi Router Traffic Grapher";
     homepage = "https://oss.oetiker.ch/mrtg/";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ robberer ];
diff --git a/pkgs/tools/misc/ms-sys/default.nix b/pkgs/tools/misc/ms-sys/default.nix
index 5d736952d2328..ebf69a9b9a3b0 100644
--- a/pkgs/tools/misc/ms-sys/default.nix
+++ b/pkgs/tools/misc/ms-sys/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "A program for writing Microsoft-compatible boot records";
+    description = "Program for writing Microsoft-compatible boot records";
     homepage = "https://ms-sys.sourceforge.net/";
     license = licenses.gpl2Plus;
     platforms = with platforms; linux;
diff --git a/pkgs/tools/misc/mstflint/default.nix b/pkgs/tools/misc/mstflint/default.nix
index 16b46002a3016..cd94f83f3f1b6 100644
--- a/pkgs/tools/misc/mstflint/default.nix
+++ b/pkgs/tools/misc/mstflint/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
 , rdma-core
 , openssl
 , zlib
diff --git a/pkgs/tools/misc/nagstamon/default.nix b/pkgs/tools/misc/nagstamon/default.nix
index eb80c03bec918..a0570c77be5b0 100644
--- a/pkgs/tools/misc/nagstamon/default.nix
+++ b/pkgs/tools/misc/nagstamon/default.nix
@@ -16,7 +16,7 @@ pythonPackages.buildPythonApplication rec {
      beautifulsoup4 keyring requests-kerberos kerberos lxml ];
 
   meta = with lib; {
-    description = "A status monitor for the desktop";
+    description = "Status monitor for the desktop";
     homepage = "https://nagstamon.ifw-dresden.de/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ pSub ];
diff --git a/pkgs/tools/misc/nanoemoji/default.nix b/pkgs/tools/misc/nanoemoji/default.nix
index a4fb6768d0bb7..210eb5d6f8a2a 100644
--- a/pkgs/tools/misc/nanoemoji/default.nix
+++ b/pkgs/tools/misc/nanoemoji/default.nix
@@ -64,7 +64,7 @@ python3.pkgs.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A wee tool to build color fonts";
+    description = "Wee tool to build color fonts";
     homepage = "https://github.com/googlefonts/nanoemoji";
     license = licenses.asl20;
     maintainers = with maintainers; [ _999eagle ];
diff --git a/pkgs/tools/misc/natls/default.nix b/pkgs/tools/misc/natls/default.nix
index a324768faea49..1398f271a5502 100644
--- a/pkgs/tools/misc/natls/default.nix
+++ b/pkgs/tools/misc/natls/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "sha256-Am4HmfmhskKxcp1iWod5z3caHwsdo31qCaVi0UxTXAg=";
 
   meta = with lib; {
-    description = "the 'ls' replacement you never knew you needed";
+    description = "'ls' replacement you never knew you needed";
     homepage = "https://github.com/willdoescode/nat";
     license = licenses.mit;
     maintainers = with maintainers; [ cafkafk ];
diff --git a/pkgs/tools/misc/nb/default.nix b/pkgs/tools/misc/nb/default.nix
index 5d394f1c7b190..4cc68426ce7e4 100644
--- a/pkgs/tools/misc/nb/default.nix
+++ b/pkgs/tools/misc/nb/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A command line note-taking, bookmarking, archiving, and knowledge base application";
+    description = "Command line note-taking, bookmarking, archiving, and knowledge base application";
     longDescription = ''
       `nb` creates notes in text-based formats like Markdown, Emacs Org mode,
       and LaTeX, can work with files in any format, can import and export notes
diff --git a/pkgs/tools/misc/nbench/default.nix b/pkgs/tools/misc/nbench/default.nix
index f1af32cc0e3f5..c56a76023b5d9 100644
--- a/pkgs/tools/misc/nbench/default.nix
+++ b/pkgs/tools/misc/nbench/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.math.utah.edu/~mayer/linux/bmark.html";
-    description = "A synthetic computing benchmark program";
+    description = "Synthetic computing benchmark program";
     platforms = platforms.unix;
     maintainers = with lib.maintainers; [ bennofs ];
     mainProgram = "nbench";
diff --git a/pkgs/tools/misc/neofetch/default.nix b/pkgs/tools/misc/neofetch/default.nix
index 806655ffe9f70..d035fe3120910 100644
--- a/pkgs/tools/misc/neofetch/default.nix
+++ b/pkgs/tools/misc/neofetch/default.nix
@@ -53,7 +53,7 @@ stdenvNoCC.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A fast, highly customizable system info script";
+    description = "Fast, highly customizable system info script";
     homepage = "https://github.com/dylanaraps/neofetch";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/tools/misc/netbootxyz-efi/default.nix b/pkgs/tools/misc/netbootxyz-efi/default.nix
index efa16daaeacfd..2726df1b87018 100644
--- a/pkgs/tools/misc/netbootxyz-efi/default.nix
+++ b/pkgs/tools/misc/netbootxyz-efi/default.nix
@@ -13,7 +13,7 @@ in fetchurl {
 
   meta = with lib; {
     homepage = "https://netboot.xyz/";
-    description = "A tool to boot OS installers and utilities over the network, to be run from a bootloader";
+    description = "Tool to boot OS installers and utilities over the network, to be run from a bootloader";
     license = licenses.asl20;
     maintainers = with maintainers; [ Enzime ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/misc/node-glob/default.nix b/pkgs/tools/misc/node-glob/default.nix
index aba4690bbba43..4b3cde4edd9f2 100644
--- a/pkgs/tools/misc/node-glob/default.nix
+++ b/pkgs/tools/misc/node-glob/default.nix
@@ -20,7 +20,7 @@ buildNpmPackage rec {
 
   meta = {
     changelog = "https://github.com/isaacs/node-glob/blob/${src.rev}/changelog.md";
-    description = "A little globber for Node.js";
+    description = "Little globber for Node.js";
     homepage = "https://github.com/isaacs/node-glob";
     license = lib.licenses.isc;
     mainProgram = "glob";
diff --git a/pkgs/tools/misc/nomino/default.nix b/pkgs/tools/misc/nomino/default.nix
index 9dd489f459487..ab4d1d0fbd234 100644
--- a/pkgs/tools/misc/nomino/default.nix
+++ b/pkgs/tools/misc/nomino/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nomino";
-  version = "1.3.4";
+  version = "1.3.5";
 
   src = fetchFromGitHub {
     owner = "yaa110";
     repo = pname;
     rev = version;
-    hash = "sha256-jV1GqwQURRFPGuFXPhtgbBJHOdroQk6KHMI5yHa0Z64=";
+    hash = "sha256-qznue5C/6Y+54/gV1lLgJPCezW0zF2Fe2ZlMvU57+Q0=";
   };
 
-  cargoHash = "sha256-QluOfU8TO5422lVXswjiQb2YleWiq5twwYzpBJsBs2Y=";
+  cargoHash = "sha256-28QXDhpcrW1flnU5WesAdbJSMrZAhIuFv2LSJHTk74Y=";
 
   meta = with lib; {
     description = "Batch rename utility for developers";
diff --git a/pkgs/tools/misc/ntfy/default.nix b/pkgs/tools/misc/ntfy/default.nix
index fc9fd078ab205..348c1e3152537 100644
--- a/pkgs/tools/misc/ntfy/default.nix
+++ b/pkgs/tools/misc/ntfy/default.nix
@@ -84,7 +84,7 @@ in python.pkgs.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A utility for sending notifications, on demand and when commands finish";
+    description = "Utility for sending notifications, on demand and when commands finish";
     homepage = "http://ntfy.rtfd.org/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ kamilchm ];
diff --git a/pkgs/tools/misc/nux/default.nix b/pkgs/tools/misc/nux/default.nix
index 89aea5e9dd9d9..d1d44a35c20c5 100644
--- a/pkgs/tools/misc/nux/default.nix
+++ b/pkgs/tools/misc/nux/default.nix
@@ -31,7 +31,7 @@ rustPlatform.buildRustPackage {
 
   meta = {
     homepage = "https://github.com/NuxPackage/nux";
-    description = "A wrapper over the nix cli";
+    description = "Wrapper over the nix cli";
     license = with lib.licenses; [ gpl3Plus ];
     maintainers = with lib.maintainers; [ ];
     mainProgram = "nux";
diff --git a/pkgs/tools/misc/nvimpager/default.nix b/pkgs/tools/misc/nvimpager/default.nix
index fb10d0ad89c96..80900bf30ae8e 100644
--- a/pkgs/tools/misc/nvimpager/default.nix
+++ b/pkgs/tools/misc/nvimpager/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nvimpager";
-  version = "0.12.0";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "lucc";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-RmpPWS9gnBnR+Atw6uzBmeDSgoTOFSdKzHoJ84O+gyA=";
+    sha256 = "sha256-Au9rRZMZfU4qHi/ng6JO8FnMpySKDbKzr75SBPY3QiA=";
   };
 
   buildInputs = [
@@ -25,18 +25,15 @@ stdenv.mkDerivation rec {
   buildFlags = [ "nvimpager.configured" "nvimpager.1" ];
   preBuild = ''
     patchShebangs nvimpager
-    substituteInPlace nvimpager --replace ':-nvim' ':-${neovim}/bin/nvim'
+    substituteInPlace nvimpager --replace-fail ':-nvim' ':-${lib.getExe neovim}'
     '';
 
   doCheck = true;
   nativeCheckInputs = [ lua51Packages.busted util-linux neovim ];
-  # filter out one test that fails in the sandbox of nix
-  checkPhase = let
-    exclude-tags = if stdenv.isDarwin then "nix,mac" else "nix";
-  in ''
-    runHook preCheck
-    make test BUSTED='busted --output TAP --exclude-tags=${exclude-tags}'
-    runHook postCheck
+  # filter out one test that fails in the sandbox of nix or with neovim v0.10
+  # or on macOS
+  preCheck = ''
+    checkFlagsArray+=('BUSTED=busted --output TAP --exclude-tags=${"nix,v10" + lib.optionalString stdenv.isDarwin ",mac"}')
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/misc/ondir/default.nix b/pkgs/tools/misc/ondir/default.nix
index 1b32f474fc04e..0bcffd5ade712 100644
--- a/pkgs/tools/misc/ondir/default.nix
+++ b/pkgs/tools/misc/ondir/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "a small program to automate tasks specific to certain directories";
+    description = "Small program to automate tasks specific to certain directories";
     longDescription = ''
     It works by executing scripts in directories when you enter and leave them.
     This is done by overriding the shell builtins cd, pushd, and popd,
diff --git a/pkgs/tools/misc/opentelemetry-collector/contrib.nix b/pkgs/tools/misc/opentelemetry-collector/contrib.nix
index e24a9ff66b18c..7d2c99226690c 100644
--- a/pkgs/tools/misc/opentelemetry-collector/contrib.nix
+++ b/pkgs/tools/misc/opentelemetry-collector/contrib.nix
@@ -8,18 +8,18 @@
 
 buildGoModule rec {
   pname = "opentelemetry-collector-contrib";
-  version = "0.101.0";
+  version = "0.102.0";
 
   src = fetchFromGitHub {
     owner = "open-telemetry";
     repo = "opentelemetry-collector-contrib";
     rev = "v${version}";
-    sha256 = "sha256-WdMQnAYAdyvS0uyRzvLnhi1HeoWqmUQSIq6MdcP7NfY=";
+    sha256 = "sha256-syl4mvh78otLWnDpu/7DHlAq0UqQ+4Alg8tZ16OYBQ4=";
   };
 
   # proxy vendor to avoid hash missmatches between linux and macOS
   proxyVendor = true;
-  vendorHash = "sha256-LM9Co4XpmyIOTVllhiiON4R8OYTO5OjY9Wn+LrU6PIM=";
+  vendorHash = "sha256-SEj2waLnThV+anIdtZisJDusTrjObSXNPWIrWoL0gNA=";
 
   # there is a nested go.mod
   sourceRoot = "${src.name}/cmd/otelcontribcol";
diff --git a/pkgs/tools/misc/opentelemetry-collector/default.nix b/pkgs/tools/misc/opentelemetry-collector/default.nix
index 463a699638f7d..b9f3d12c0a928 100644
--- a/pkgs/tools/misc/opentelemetry-collector/default.nix
+++ b/pkgs/tools/misc/opentelemetry-collector/default.nix
@@ -50,7 +50,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/open-telemetry/opentelemetry-collector";
     changelog = "https://github.com/open-telemetry/opentelemetry-collector/blob/v${version}/CHANGELOG.md";
-    description = "A vendor-agnostic implementation on how to receive, process and export telemetry data";
+    description = "Vendor-agnostic implementation on how to receive, process and export telemetry data";
     longDescription = ''
       The OpenTelemetry Collector offers a vendor-agnostic implementation on how
       to receive, process and export telemetry data. In addition, it removes the
diff --git a/pkgs/tools/misc/oscclip/default.nix b/pkgs/tools/misc/oscclip/default.nix
index 3020998d93929..2b4e6aa7d1f7a 100644
--- a/pkgs/tools/misc/oscclip/default.nix
+++ b/pkgs/tools/misc/oscclip/default.nix
@@ -19,7 +19,7 @@ python3Packages.buildPythonApplication rec {
   nativeBuildInputs = with python3Packages; [ poetry-core ];
 
   meta = with lib; {
-    description = "A program that allows to copy/paste from a terminal using osc-52 control sequences";
+    description = "Program that allows to copy/paste from a terminal using osc-52 control sequences";
     longDescription = ''
       oscclip provides two commands: osc-copy and osc-paste. These commands allow to interact with the clipboard through the terminal directly.
       This means that they work through ssh sessions for example (given that the terminal supports osc-52 sequences).
diff --git a/pkgs/tools/misc/otel-cli/default.nix b/pkgs/tools/misc/otel-cli/default.nix
index 65f97c75f7d29..09c2481782443 100644
--- a/pkgs/tools/misc/otel-cli/default.nix
+++ b/pkgs/tools/misc/otel-cli/default.nix
@@ -26,7 +26,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/equinix-labs/otel-cli";
-    description = "A command-line tool for sending OpenTelemetry traces";
+    description = "Command-line tool for sending OpenTelemetry traces";
     changelog = "https://github.com/equinix-labs/otel-cli/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with lib.maintainers; [ emattiza urandom ];
diff --git a/pkgs/tools/misc/pandoc-include/default.nix b/pkgs/tools/misc/pandoc-include/default.nix
index da509e094f847..9e552adbfc9c0 100644
--- a/pkgs/tools/misc/pandoc-include/default.nix
+++ b/pkgs/tools/misc/pandoc-include/default.nix
@@ -5,6 +5,7 @@
 , panflute
 , lxml
 , setuptools
+, nix-update-script
 }:
 
 buildPythonApplication rec {
@@ -23,6 +24,8 @@ buildPythonApplication rec {
     setuptools
   ];
 
+  passthru.updateScript = nix-update-script {};
+
   propagatedBuildInputs = [ natsort panflute lxml ];
 
   pythonImportsCheck = [ "pandoc_include.main" ];
diff --git a/pkgs/tools/misc/pandoc-lua-filters/default.nix b/pkgs/tools/misc/pandoc-lua-filters/default.nix
index 1323da5104ba8..d779cbb7fa406 100644
--- a/pkgs/tools/misc/pandoc-lua-filters/default.nix
+++ b/pkgs/tools/misc/pandoc-lua-filters/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A collection of lua filters for pandoc";
+    description = "Collection of lua filters for pandoc";
     homepage = "https://github.com/pandoc/lua-filters";
     license = licenses.mit;
     maintainers = with maintainers; [ jtojnar ];
diff --git a/pkgs/tools/misc/panoply/default.nix b/pkgs/tools/misc/panoply/default.nix
index b5df3adc7b3d4..d2a04e3c38f7e 100644
--- a/pkgs/tools/misc/panoply/default.nix
+++ b/pkgs/tools/misc/panoply/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "panoply";
-  version = "5.4.0";
+  version = "5.4.1";
 
   src = fetchurl {
     url = "https://www.giss.nasa.gov/tools/panoply/download/PanoplyJ-${version}.tgz";
-    sha256 = "sha256-mWk0wuTxkITVU3SwWYPHrX8Y9NceXeRMwyvpwEDWIiA=";
+    sha256 = "sha256-C/9kFWDpv4bzqpsUcGpZn7P+fqU6teU39HibYhhva3o=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/misc/paperlike-go/default.nix b/pkgs/tools/misc/paperlike-go/default.nix
index 59d477b62fe2a..ad2782bfaf00e 100644
--- a/pkgs/tools/misc/paperlike-go/default.nix
+++ b/pkgs/tools/misc/paperlike-go/default.nix
@@ -19,7 +19,7 @@ buildGoModule {
   subPackages = [ "cmd/paperlike-cli" ];
 
   meta = {
-    description = "A Linux Go library and CLI utility to control a Dasung Paperlike display via I2C DDC";
+    description = "Linux Go library and CLI utility to control a Dasung Paperlike display via I2C DDC";
     homepage = "https://github.com/leoluk/paperlike-go";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.adisbladis ];
diff --git a/pkgs/tools/misc/parallel/default.nix b/pkgs/tools/misc/parallel/default.nix
index ec1603640a8ef..e68ed0e5cd009 100644
--- a/pkgs/tools/misc/parallel/default.nix
+++ b/pkgs/tools/misc/parallel/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "parallel";
-  version = "20240422";
+  version = "20240522";
 
   src = fetchurl {
     url = "mirror://gnu/parallel/${pname}-${version}.tar.bz2";
-    hash = "sha256-eDiIID7eK5LO0x6z6AnKOp2J9FCP3LEYML+zV1SIJGc=";
+    hash = "sha256-Z+2frTG/PiXwnVAOfoyn3546w4D+Tr0WxvAURIo0aSg=";
   };
 
   outputs = [ "out" "man" "doc" ];
diff --git a/pkgs/tools/misc/parquet-tools/default.nix b/pkgs/tools/misc/parquet-tools/default.nix
index 988c7245ded14..2e0d5744659a3 100644
--- a/pkgs/tools/misc/parquet-tools/default.nix
+++ b/pkgs/tools/misc/parquet-tools/default.nix
@@ -73,7 +73,7 @@ buildPythonApplication rec {
   ];
 
   meta = with lib; {
-    description = "A CLI tool for parquet files";
+    description = "CLI tool for parquet files";
     homepage = "https://github.com/ktrueda/parquet-tools";
     changelog = "https://github.com/ktrueda/parquet-tools/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/tools/misc/pastebinit/default.nix b/pkgs/tools/misc/pastebinit/default.nix
index 21beecc443c02..27735d615573a 100644
--- a/pkgs/tools/misc/pastebinit/default.nix
+++ b/pkgs/tools/misc/pastebinit/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://stgraber.org/category/pastebinit/";
-    description = "A software that lets you send anything you want directly to a pastebin from the command line";
+    description = "Software that lets you send anything you want directly to a pastebin from the command line";
     maintainers = with maintainers; [ raboof samuel-martineau ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux ++ lib.platforms.darwin;
diff --git a/pkgs/tools/misc/pazi/default.nix b/pkgs/tools/misc/pazi/default.nix
index c4c1ea18b549b..43ea65c54de35 100644
--- a/pkgs/tools/misc/pazi/default.nix
+++ b/pkgs/tools/misc/pazi/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "1iamlp5519h8mmgd4964cvyp7mmnqdg2d3qj5v7yzilyp4nz15jc";
 
   meta = with lib; {
-    description = "An autojump \"zap to directory\" helper";
+    description = "Autojump \"zap to directory\" helper";
     homepage = "https://github.com/euank/pazi";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/tools/misc/pb/default.nix b/pkgs/tools/misc/pb/default.nix
index 061ca691af753..6b588d8df472f 100644
--- a/pkgs/tools/misc/pb/default.nix
+++ b/pkgs/tools/misc/pb/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "pb";
-  version = "0.4.0";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "parseablehq";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-ckRvtEtagyYpXJ0hh8jsgpE/16bu7b9IdNn2stvb2iI=";
+    hash = "sha256-dMc4IgtyYVFXGPUjevVyPo4XYImHJlgwp4jKnh3CedM=";
   };
 
-  vendorHash = "sha256-dNSr0bQz7XdC2fTD82TI8tfmwKBuAcbxjaMC9KAjxlI=";
+  vendorHash = "sha256-38lXffh3ZkMtvHi9roLHW0A6bzb+LRC91I3DdYyq1h0=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/misc/pb_cli/default.nix b/pkgs/tools/misc/pb_cli/default.nix
index b884b28658385..ac9b7b6f22c20 100644
--- a/pkgs/tools/misc/pb_cli/default.nix
+++ b/pkgs/tools/misc/pb_cli/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A no bullshit 0x0.st client";
+    description = "No bullshit 0x0.st client";
     homepage = "https://github.com/ptpb/pb_cli";
     maintainers = [ maintainers.ar1a ];
     license = licenses.gpl3Plus;
diff --git a/pkgs/tools/misc/peep/default.nix b/pkgs/tools/misc/peep/default.nix
index 301b04cbb816f..071bab99ae921 100644
--- a/pkgs/tools/misc/peep/default.nix
+++ b/pkgs/tools/misc/peep/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-CDWa03H8vWfhx2dwZU5rAV3fSwAGqCIPcvl+lTG4npE=";
 
   meta = with lib; {
-    description = "The CLI text viewer tool that works like less command on small pane within the terminal window";
+    description = "CLI text viewer tool that works like less command on small pane within the terminal window";
     homepage = "https://github.com/ryochack/peep";
     changelog = "https://github.com/ryochack/peep/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/tools/misc/peruse/default.nix b/pkgs/tools/misc/peruse/default.nix
index 09c39385c8b7d..ba99cdd8cdf96 100644
--- a/pkgs/tools/misc/peruse/default.nix
+++ b/pkgs/tools/misc/peruse/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
   pathsToLink = [ "/etc/xdg/peruse.knsrc" ];
 
   meta = with lib; {
-    description = "A comic book reader";
+    description = "Comic book reader";
     homepage = "https://peruse.kde.org";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/pkgs/tools/misc/pfetch-rs/default.nix b/pkgs/tools/misc/pfetch-rs/default.nix
index 0f1d5b2f1d33a..143e340a4c0d7 100644
--- a/pkgs/tools/misc/pfetch-rs/default.nix
+++ b/pkgs/tools/misc/pfetch-rs/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pfetch-rs";
-  version = "2.9.1";
+  version = "2.9.2";
 
   src = fetchFromGitHub {
     owner = "Gobidev";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-tpJk31Z7QzZNLmEv/L1008tf6hpJJI6b7E1o/kwbJe0=";
+    hash = "sha256-1Mw20O64I0UeAOO4Gea8cAbNnHkWOMvoRawIAZ62kTI=";
   };
 
-  cargoHash = "sha256-CQVPEUpblypDyr48MrLY3roGunOxem0eM1OtbcKlnsw=";
+  cargoHash = "sha256-Jx8g49rMatXMV1KvoFGBhXKmf77WR4uE/Xewl5TMeWM=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.AppKit
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
 
 
   meta = with lib; {
-    description = "A rewrite of the pfetch system information tool in Rust";
+    description = "Rewrite of the pfetch system information tool in Rust";
     homepage = "https://github.com/Gobidev/pfetch-rs";
     changelog = "https://github.com/Gobidev/pfetch-rs/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/tools/misc/pfetch/default.nix b/pkgs/tools/misc/pfetch/default.nix
index 5f9e8bf7676a6..732f680028897 100644
--- a/pkgs/tools/misc/pfetch/default.nix
+++ b/pkgs/tools/misc/pfetch/default.nix
@@ -18,7 +18,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A pretty system information tool written in POSIX sh";
+    description = "Pretty system information tool written in POSIX sh";
     homepage = "https://github.com/dylanaraps/pfetch";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/tools/misc/pg_top/default.nix b/pkgs/tools/misc/pg_top/default.nix
index 0999c9456d536..c8a35e9fb178e 100644
--- a/pkgs/tools/misc/pg_top/default.nix
+++ b/pkgs/tools/misc/pg_top/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ ncurses postgresql ];
 
   meta = with lib; {
-    description = "A 'top' like tool for PostgreSQL";
+    description = "'top' like tool for PostgreSQL";
     longDescription = ''
       pg_top allows you to:
        * View currently running SQL statement of a process.
diff --git a/pkgs/tools/misc/pgbadger/default.nix b/pkgs/tools/misc/pgbadger/default.nix
index b1024d68a91c5..27c532e8144cd 100644
--- a/pkgs/tools/misc/pgbadger/default.nix
+++ b/pkgs/tools/misc/pgbadger/default.nix
@@ -64,7 +64,7 @@ buildPerlPackage rec {
 
   meta = {
     homepage = "https://github.com/darold/pgbadger";
-    description = "A fast PostgreSQL Log Analyzer";
+    description = "Fast PostgreSQL Log Analyzer";
     changelog = "https://github.com/darold/pgbadger/raw/v${version}/ChangeLog";
     license = lib.licenses.postgresql;
     maintainers = lib.teams.determinatesystems.members;
diff --git a/pkgs/tools/misc/phrase-cli/default.nix b/pkgs/tools/misc/phrase-cli/default.nix
index fc00c5936b06b..fa262ec1e583c 100644
--- a/pkgs/tools/misc/phrase-cli/default.nix
+++ b/pkgs/tools/misc/phrase-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "phrase-cli";
-  version = "2.27.0";
+  version = "2.28.0";
 
   src = fetchFromGitHub {
     owner = "phrase";
     repo = "phrase-cli";
     rev = version;
-    sha256 = "sha256-PStbkJbSGCN92eAk4TZaIzbkG1C25PKI6R6LJgaQuxQ=";
+    sha256 = "sha256-jaGCNWbq/CDxJXiGqueM1mj86K26Eyr0ND08Pt0IEj0=";
   };
 
-  vendorHash = "sha256-5EgttRimT+TTL9QhT36AO9rx2DdZBmnQrllBfRpdhg0=";
+  vendorHash = "sha256-MwwIzgOmEUcTxdlJWKZU8A4fH3efuNIeS/mFceBYBY0=";
 
   ldflags = [ "-X=github.com/phrase/phrase-cli/cmd.PHRASE_CLIENT_VERSION=${version}" ];
 
diff --git a/pkgs/tools/misc/pipectl/default.nix b/pkgs/tools/misc/pipectl/default.nix
index f5cdeffc3ece0..68df99eb476b5 100644
--- a/pkgs/tools/misc/pipectl/default.nix
+++ b/pkgs/tools/misc/pipectl/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/Ferdi265/pipectl";
     license = licenses.gpl3;
-    description = "a simple named pipe management utility";
+    description = "Simple named pipe management utility";
     maintainers = with maintainers; [ synthetica ];
     mainProgram = "pipectl";
   };
diff --git a/pkgs/tools/misc/pipelight/default.nix b/pkgs/tools/misc/pipelight/default.nix
index e565bf554fff1..1ffeaede331cb 100644
--- a/pkgs/tools/misc/pipelight/default.nix
+++ b/pkgs/tools/misc/pipelight/default.nix
@@ -60,7 +60,7 @@ in stdenv.mkDerivation rec {
   meta = {
     homepage = "http://pipelight.net/";
     license = with lib.licenses; [ mpl11 gpl2Only lgpl21 ];
-    description = "A wrapper for using Windows plugins in Linux browsers";
+    description = "Wrapper for using Windows plugins in Linux browsers";
     maintainers = with lib.maintainers; [ ];
     platforms = [ "x86_64-linux" "i686-linux" ];
     mainProgram = "pipelight-plugin";
diff --git a/pkgs/tools/misc/pistol/default.nix b/pkgs/tools/misc/pistol/default.nix
index 79826e6f79249..029c1077cc52c 100644
--- a/pkgs/tools/misc/pistol/default.nix
+++ b/pkgs/tools/misc/pistol/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "pistol";
-  version = "0.4.2";
+  version = "0.4.3";
 
   src = fetchFromGitHub {
     owner = "doronbehar";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-7nALrB+QubEnryVsGPpFMJ003SP2lheYTkWXF5w/V8I=";
+    sha256 = "sha256-xzVVOx5Uz10Bv8LDRuqqxyjdYp1JKhQPb3ws2l6Dg2Y=";
   };
 
-  vendorHash = "sha256-9Ydps8UA1f0fwG5SHRE4F61OyRJiITw/4SyoMEbsRgM=";
+  vendorHash = "sha256-9+eWTpz2VcNtEwVtVdNPjXYdG7XjB7cvC4WWvxF7Lvs=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/misc/pkgdiff/default.nix b/pkgs/tools/misc/pkgdiff/default.nix
index 77ba84c1df0f6..139c0f8e2d56c 100644
--- a/pkgs/tools/misc/pkgdiff/default.nix
+++ b/pkgs/tools/misc/pkgdiff/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A tool for visualizing changes in Linux software packages";
+    description = "Tool for visualizing changes in Linux software packages";
     homepage = "https://lvc.github.io/pkgdiff/";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ sweber ];
diff --git a/pkgs/tools/misc/plantuml-server/default.nix b/pkgs/tools/misc/plantuml-server/default.nix
index 7335944ff4237..bf186a3bad9aa 100644
--- a/pkgs/tools/misc/plantuml-server/default.nix
+++ b/pkgs/tools/misc/plantuml-server/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchurl, nixosTests }:
 
 let
-  version = "1.2024.4";
+  version = "1.2024.5";
 in
 stdenv.mkDerivation rec {
   pname = "plantuml-server";
   inherit version;
   src = fetchurl {
     url = "https://github.com/plantuml/plantuml-server/releases/download/v${version}/plantuml-v${version}.war";
-    sha256 = "sha256-7m0MOP6AN7V7mlrVfwxGy1AfCQx2ufp5GU2WQoSTIBc=";
+    sha256 = "sha256-WbgjPPEm51DXzpSt2j8It8PWKRKrIK8HXoWY+N/1mlg=";
   };
 
   dontUnpack = true;
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A web application to generate UML diagrams on-the-fly";
+    description = "Web application to generate UML diagrams on-the-fly";
     homepage = "https://plantuml.com/";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.gpl3Plus;
diff --git a/pkgs/tools/misc/plantuml/default.nix b/pkgs/tools/misc/plantuml/default.nix
index 8f4d82f2ea49e..83476bd995735 100644
--- a/pkgs/tools/misc/plantuml/default.nix
+++ b/pkgs/tools/misc/plantuml/default.nix
@@ -8,11 +8,11 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "plantuml";
-  version = "1.2024.4";
+  version = "1.2024.5";
 
   src = fetchurl {
     url = "https://github.com/plantuml/plantuml/releases/download/v${finalAttrs.version}/plantuml-pdf-${finalAttrs.version}.jar";
-    hash = "sha256-8Xs7fyYr4CvXNO+g2g+7LLObUUVKxmt/27/wHdCwSIE=";
+    hash = "sha256-YayIedHIIpecVF7BZSvBTp66Eb7He+l+1RCir5KuL28=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/plotinus/default.nix b/pkgs/tools/misc/plotinus/default.nix
index 10c86b10c3da7..2cd2a74f6fde7 100644
--- a/pkgs/tools/misc/plotinus/default.nix
+++ b/pkgs/tools/misc/plotinus/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A searchable command palette in every modern GTK application";
+    description = "Searchable command palette in every modern GTK application";
     homepage = "https://github.com/p-e-w/plotinus";
     maintainers = with maintainers; [ samdroid-apps ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/misc/pokeget-rs/default.nix b/pkgs/tools/misc/pokeget-rs/default.nix
index 2505fd2f96785..04ac51d4934b0 100644
--- a/pkgs/tools/misc/pokeget-rs/default.nix
+++ b/pkgs/tools/misc/pokeget-rs/default.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-JeRSBG1HswttHOGyiNseFf2KiWkumrzEIw76A80nQHM=";
 
   meta = with lib; {
-    description = "A better rust version of pokeget";
+    description = "Better rust version of pokeget";
     homepage = "https://github.com/talwat/pokeget-rs";
     license = licenses.mit;
     mainProgram = "pokeget";
diff --git a/pkgs/tools/misc/portal/default.nix b/pkgs/tools/misc/portal/default.nix
index 3577f0f0b31a5..221526b7f3423 100644
--- a/pkgs/tools/misc/portal/default.nix
+++ b/pkgs/tools/misc/portal/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
   ldflags = [ "-s -X main.version=${version}" ]; # from: https://github.com/SpatiumPortae/portal/blob/master/Makefile#L3
 
   meta = with lib; {
-    description = "A quick and easy command-line file transfer utility from any computer to another";
+    description = "Quick and easy command-line file transfer utility from any computer to another";
     homepage = "https://github.com/SpatiumPortae/portal";
     changelog = "https://github.com/SpatiumPortae/portal/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/tools/misc/pouf/default.nix b/pkgs/tools/misc/pouf/default.nix
index e114af2c2c1eb..0754ca0c09f1a 100644
--- a/pkgs/tools/misc/pouf/default.nix
+++ b/pkgs/tools/misc/pouf/default.nix
@@ -16,15 +16,10 @@ rustPlatform.buildRustPackage rec {
 
   cargoHash = "sha256-rVJAaeg27SdM8cTx12rKLIGEYtXUhLHXUYpT78oVNlo=";
 
-  # Cargo.lock is outdated.
-  preConfigure = ''
-    cargo update --offline
-  '';
-
   postInstall = "make PREFIX=$out copy-data";
 
   meta = with lib; {
-    description = "A CLI program for produce fake datas";
+    description = "CLI program for produce fake datas";
     homepage = "https://github.com/mothsart/pouf";
     changelog = "https://github.com/mothsart/pouf/releases/tag/${version}";
     maintainers = with maintainers; [ mothsart ];
diff --git a/pkgs/tools/misc/powerline-go/default.nix b/pkgs/tools/misc/powerline-go/default.nix
index 2b328e474bb98..2fe2ee034e3c4 100644
--- a/pkgs/tools/misc/powerline-go/default.nix
+++ b/pkgs/tools/misc/powerline-go/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
   vendorHash = "sha256-W7Lf9s689oJy4U5sQlkLt3INJwtvzU2pot3EFimp7Jw=";
 
   meta = with lib; {
-    description = "A Powerline like prompt for Bash, ZSH and Fish";
+    description = "Powerline like prompt for Bash, ZSH and Fish";
     homepage = "https://github.com/justjanne/powerline-go";
     changelog = "https://github.com/justjanne/powerline-go/releases/tag/v${version}";
     license = licenses.gpl3Plus;
diff --git a/pkgs/tools/misc/pre-commit/default.nix b/pkgs/tools/misc/pre-commit/default.nix
index 122226486bd4b..0afa9180a47d5 100644
--- a/pkgs/tools/misc/pre-commit/default.nix
+++ b/pkgs/tools/misc/pre-commit/default.nix
@@ -183,7 +183,7 @@ buildPythonApplication rec {
   };
 
   meta = with lib; {
-    description = "A framework for managing and maintaining multi-language pre-commit hooks";
+    description = "Framework for managing and maintaining multi-language pre-commit hooks";
     homepage = "https://pre-commit.com/";
     license = licenses.mit;
     maintainers = with maintainers; [ borisbabic ];
diff --git a/pkgs/tools/misc/present-cli/default.nix b/pkgs/tools/misc/present-cli/default.nix
index 7c1c87647a190..4c0ac78b6ccd2 100644
--- a/pkgs/tools/misc/present-cli/default.nix
+++ b/pkgs/tools/misc/present-cli/default.nix
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A script interpolation engine for markdown documents";
+    description = "Script interpolation engine for markdown documents";
     homepage = "https://github.com/terror/present/";
     license = licenses.cc0;
     maintainers = with maintainers; [ cameronfyfe ];
diff --git a/pkgs/tools/misc/pricehist/default.nix b/pkgs/tools/misc/pricehist/default.nix
index d195cb42a147c..fc6c5753b7672 100644
--- a/pkgs/tools/misc/pricehist/default.nix
+++ b/pkgs/tools/misc/pricehist/default.nix
@@ -47,7 +47,7 @@ buildPythonApplication rec {
     "lxml"
   ];
   meta = with lib; {
-    description = "A command-line tool for fetching and formatting historical price data, with support for multiple data sources and output formats";
+    description = "Command-line tool for fetching and formatting historical price data, with support for multiple data sources and output formats";
     homepage = "https://gitlab.com/chrisberkhout/pricehist";
     license = licenses.mit;
     mainProgram = "pricehist";
diff --git a/pkgs/tools/misc/psw/default.nix b/pkgs/tools/misc/psw/default.nix
index d765de2a096a5..bcf67bfa5f111 100644
--- a/pkgs/tools/misc/psw/default.nix
+++ b/pkgs/tools/misc/psw/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-+0eMhOteNK3QTnG0HB3/TYDFmPTztdQ0h3RKBTN0J/o=";
 
   meta = with lib; {
-    description = "A command line tool to write random bytes to stdout";
+    description = "Command line tool to write random bytes to stdout";
     homepage = "https://github.com/Wulfsta/psw";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ wulfsta ];
diff --git a/pkgs/tools/misc/pv/default.nix b/pkgs/tools/misc/pv/default.nix
index 740bea469a393..309a78c5400c0 100644
--- a/pkgs/tools/misc/pv/default.nix
+++ b/pkgs/tools/misc/pv/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "pv";
-  version = "1.8.9";
+  version = "1.8.10";
 
   src = fetchurl {
     url = "https://www.ivarch.com/programs/sources/pv-${finalAttrs.version}.tar.gz";
-    sha256 = "sha256-oHidj4xaCPrzcLWgfR2Tau/5UEpPSdp21BZHl6xGBuY=";
+    sha256 = "sha256-1MkMF8/NRKqWuYI3cx5PgR4HHUwgUqaJ0tgeZnH1cbE=";
   };
 
   meta = {
diff --git a/pkgs/tools/misc/qjoypad/default.nix b/pkgs/tools/misc/qjoypad/default.nix
index 260c8f498e6b1..bc8f107a54fb5 100644
--- a/pkgs/tools/misc/qjoypad/default.nix
+++ b/pkgs/tools/misc/qjoypad/default.nix
@@ -14,7 +14,7 @@ mkDerivation rec {
   buildInputs = [ libX11 libXtst qtbase qtx11extras ];
 
   meta = with lib; {
-    description = "A program that lets you use gaming devices anywhere";
+    description = "Program that lets you use gaming devices anywhere";
     longDescription = ''
       A simple Linux/QT program that lets you use your gaming devices
       where you want them: in your games! QJoyPad takes input from a
diff --git a/pkgs/tools/misc/qmk/default.nix b/pkgs/tools/misc/qmk/default.nix
index 5493463e3c32e..c550d76538872 100644
--- a/pkgs/tools/misc/qmk/default.nix
+++ b/pkgs/tools/misc/qmk/default.nix
@@ -54,7 +54,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/qmk/qmk_cli";
-    description = "A program to help users work with QMK Firmware";
+    description = "Program to help users work with QMK Firmware";
     longDescription = ''
       qmk_cli is a companion tool to QMK firmware. With it, you can:
 
@@ -70,7 +70,7 @@ python3.pkgs.buildPythonApplication rec {
       - ... and many more!
     '';
     license = licenses.mit;
-    maintainers = with maintainers; [ bhipple babariviere ekleog ];
+    maintainers = with maintainers; [ bhipple ekleog ];
     mainProgram = "qmk";
   };
 }
diff --git a/pkgs/tools/misc/qt6gtk2/default.nix b/pkgs/tools/misc/qt6gtk2/default.nix
index 69044a2bb3126..28a3e6e535893 100644
--- a/pkgs/tools/misc/qt6gtk2/default.nix
+++ b/pkgs/tools/misc/qt6gtk2/default.nix
@@ -1,14 +1,14 @@
-{ fetchFromGitHub, lib, stdenv, gtk2, pkg-config, qmake, qtbase }:
+{ fetchFromGitHub, lib, stdenv, gtk2, pkg-config, qmake, qtbase, unstableGitUpdater }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "qt6gtk2";
-  version = "0.2";
+  version = "0.2-unstable-2024-05-06";
 
   src = fetchFromGitHub {
     owner = "trialuser02";
     repo = finalAttrs.pname;
-    rev = finalAttrs.version;
-    hash = "sha256-g5ZCwTnNEJJ57zEwNqMxrl0EWYJMt3PquZ2IsmxQYqk=";
+    rev = "d29ba6c1fb4ac933ed7b91f0480cbd0c5a975ab8";
+    hash = "sha256-lIUCdfsmvuzDQaOi2U/CHch1re6Jn6yDfcX26Gu0eUo=";
   };
 
   buildInputs = [ gtk2 qtbase ];
@@ -16,15 +16,11 @@ stdenv.mkDerivation (finalAttrs: {
 
   dontWrapQtApps = true;
 
-  installPhase = ''
-    runHook preInstall
+  qmakeFlags = [
+    "PLUGINDIR=${placeholder "out"}/${qtbase.qtPluginPrefix}"
+  ];
 
-    mkdir -p $out/lib/qt-6/plugins/{platformthemes,styles}
-    cp -pr src/qt6gtk2-qtplugin/libqt6gtk2.so $out/lib/qt-6/plugins/platformthemes
-    cp -pr src/qt6gtk2-style/libqt6gtk2-style.so $out/lib/qt-6/plugins/styles
-
-    runHook postInstall
-  '';
+  passthru.updateScript = unstableGitUpdater { };
 
   meta = {
     description = "GTK+2.0 integration plugins for Qt6";
diff --git a/pkgs/tools/misc/quich/default.nix b/pkgs/tools/misc/quich/default.nix
index effd7993b8037..cc7131678a552 100644
--- a/pkgs/tools/misc/quich/default.nix
+++ b/pkgs/tools/misc/quich/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "DESTDIR=" "PREFIX=$(out)" "CC=${stdenv.cc.targetPrefix}cc" ];
 
   meta = with lib; {
-    description = "The advanced terminal calculator";
+    description = "Advanced terminal calculator";
     longDescription = ''
       Quich is a compact, fast, powerful and useful calculator for your terminal
       with numerous features, supporting Windows and Linux Systems,
diff --git a/pkgs/tools/misc/r3ctl/default.nix b/pkgs/tools/misc/r3ctl/default.nix
index 8af95a4630cf6..bc0c7837e2a99 100644
--- a/pkgs/tools/misc/r3ctl/default.nix
+++ b/pkgs/tools/misc/r3ctl/default.nix
@@ -39,7 +39,7 @@ qt5.mkDerivation {
   ];
 
   meta = with lib; {
-    description = "A cmdline tool to control the r3 hackerspace lights";
+    description = "Cmdline tool to control the r3 hackerspace lights";
     mainProgram = "r3ctl";
     homepage = "https://github.com/0xfeedc0de64/r3ctl";
     maintainers = with maintainers; [ mkg20001 ];
diff --git a/pkgs/tools/misc/ramfetch/default.nix b/pkgs/tools/misc/ramfetch/default.nix
index 136c335982771..c8055f99fe44f 100644
--- a/pkgs/tools/misc/ramfetch/default.nix
+++ b/pkgs/tools/misc/ramfetch/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A tool which displays memory information";
+    description = "Tool which displays memory information";
     homepage = "https://codeberg.org/jahway603/ramfetch";
     platforms = lib.platforms.linux;
     license = lib.licenses.mit;
diff --git a/pkgs/tools/misc/remind/default.nix b/pkgs/tools/misc/remind/default.nix
index 31b7dad24003b..467981bb0a294 100644
--- a/pkgs/tools/misc/remind/default.nix
+++ b/pkgs/tools/misc/remind/default.nix
@@ -15,11 +15,11 @@ let
 in
 tcl.mkTclDerivation rec {
   pname = "remind";
-  version = "04.03.07";
+  version = "05.00.01";
 
   src = fetchurl {
     url = "https://dianne.skoll.ca/projects/remind/download/remind-${version}.tar.gz";
-    sha256 = "sha256-s/jEsNXUBigNHPTCi3e4V2pGUNhK2s5/n+sU1ow7UU0=";
+    sha256 = "sha256-tj36/lLn67/hkNMrRVGXRLqQ9Sx6oDKZHeajiSYn97c=";
   };
 
   propagatedBuildInputs = tclLibraries;
diff --git a/pkgs/tools/misc/renameutils/default.nix b/pkgs/tools/misc/renameutils/default.nix
index 1b6c70a2773d2..e3ce23eca0a38 100644
--- a/pkgs/tools/misc/renameutils/default.nix
+++ b/pkgs/tools/misc/renameutils/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://www.nongnu.org/renameutils/";
-    description = "A set of programs to make renaming of files faster";
+    description = "Set of programs to make renaming of files faster";
     platforms = lib.platforms.unix;
     license = lib.licenses.gpl2Plus;
   };
diff --git a/pkgs/tools/misc/rfc/default.nix b/pkgs/tools/misc/rfc/default.nix
index d747cbf185e48..b172122d828f0 100644
--- a/pkgs/tools/misc/rfc/default.nix
+++ b/pkgs/tools/misc/rfc/default.nix
@@ -34,7 +34,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A tool to read RFCs from the command line";
+    description = "Tool to read RFCs from the command line";
     longDescription = ''
       rfc is a little tool written in Bash to read RFCs from the command-line.
       It fetches RFCs and drafts from the Web and caches them locally.
diff --git a/pkgs/tools/misc/riemann-c-client/default.nix b/pkgs/tools/misc/riemann-c-client/default.nix
index f0acc5cc04b0e..929eb0a376395 100644
--- a/pkgs/tools/misc/riemann-c-client/default.nix
+++ b/pkgs/tools/misc/riemann-c-client/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://git.madhouse-project.org/algernon/riemann-c-client";
-    description = "A C client library for the Riemann monitoring system";
+    description = "C client library for the Riemann monitoring system";
     mainProgram = "riemann-client";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ pradeepchhetri ];
diff --git a/pkgs/tools/misc/ripdrag/default.nix b/pkgs/tools/misc/ripdrag/default.nix
index ac8772b30496a..4c9650d602796 100644
--- a/pkgs/tools/misc/ripdrag/default.nix
+++ b/pkgs/tools/misc/ripdrag/default.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ gtk4 ];
 
   meta = with lib; {
-    description = "An application that lets you drag and drop files from and to the terminal";
+    description = "Application that lets you drag and drop files from and to the terminal";
     homepage = "https://github.com/nik012003/ripdrag";
     changelog = "https://github.com/nik012003/ripdrag/releases/tag/${src.rev}";
     license = licenses.gpl3Only;
diff --git a/pkgs/tools/misc/ristate/default.nix b/pkgs/tools/misc/ristate/default.nix
index 3c4baea4d3c1e..c674b96f9b003 100644
--- a/pkgs/tools/misc/ristate/default.nix
+++ b/pkgs/tools/misc/ristate/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "sha256-HTfRWvE3m7XZhZDj5bEkrQI3pD6GNiKd2gJtMjRQ8Rw=";
 
   meta = with lib; {
-    description = "A river-status client written in Rust";
+    description = "River-status client written in Rust";
     homepage = "https://gitlab.com/snakedye/ristate";
     license = licenses.mit;
     maintainers = with maintainers; [ kranzes ];
diff --git a/pkgs/tools/misc/roundup/default.nix b/pkgs/tools/misc/roundup/default.nix
index efe220fd5f9b5..2993b5f829464 100644
--- a/pkgs/tools/misc/roundup/default.nix
+++ b/pkgs/tools/misc/roundup/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A unit testing tool for running test plans which are written in any POSIX shell";
+    description = "Unit testing tool for running test plans which are written in any POSIX shell";
     homepage = "http://bmizerany.github.io/roundup/";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/tools/misc/rpm-ostree/default.nix b/pkgs/tools/misc/rpm-ostree/default.nix
index 835cff2cf0186..4b9067bd45025 100644
--- a/pkgs/tools/misc/rpm-ostree/default.nix
+++ b/pkgs/tools/misc/rpm-ostree/default.nix
@@ -115,7 +115,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A hybrid image/package system. It uses OSTree as an image format, and uses RPM as a component model";
+    description = "Hybrid image/package system. It uses OSTree as an image format, and uses RPM as a component model";
     homepage = "https://coreos.github.io/rpm-ostree/";
     license = licenses.lgpl2Plus;
     maintainers = with maintainers; [ copumpkin ];
diff --git a/pkgs/tools/misc/rshim-user-space/default.nix b/pkgs/tools/misc/rshim-user-space/default.nix
index 329c572967a95..80d9b6adf516c 100644
--- a/pkgs/tools/misc/rshim-user-space/default.nix
+++ b/pkgs/tools/misc/rshim-user-space/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rshim-user-space";
-  version = "2.0.20";
+  version = "2.0.32";
 
   src = fetchFromGitHub {
     owner = "Mellanox";
     repo = pname;
     rev = "rshim-${version}";
-    hash = "sha256-zm1cMTna9o8edl0M7tjUhbnElbUkQZSkh3KOI6tbE6I=";
+    hash = "sha256-GF7cKIf72EYRBRb6d3IWONE7YJwohTLKF1RGdDMTG6c=";
   };
 
   nativeBuildInputs = [
@@ -36,6 +36,10 @@ stdenv.mkDerivation rec {
     fuse
   ];
 
+  prePatch = ''
+    patchShebangs scripts/bfb-install
+  '';
+
   strictDeps = true;
 
   preConfigure = "./bootstrap.sh";
diff --git a/pkgs/tools/misc/rtz/default.nix b/pkgs/tools/misc/rtz/default.nix
index ba66935d0a951..a223e1ebf01f8 100644
--- a/pkgs/tools/misc/rtz/default.nix
+++ b/pkgs/tools/misc/rtz/default.nix
@@ -47,7 +47,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A tool to easily work with timezone lookups via a binary, a library, or a server";
+    description = "Tool to easily work with timezone lookups via a binary, a library, or a server";
     homepage = "https://github.com/twitchax/rtz";
     changelog = "https://github.com/twitchax/rtz/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/tools/misc/rustypaste-cli/default.nix b/pkgs/tools/misc/rustypaste-cli/default.nix
index e78074ca63304..32fa6b5a49ff8 100644
--- a/pkgs/tools/misc/rustypaste-cli/default.nix
+++ b/pkgs/tools/misc/rustypaste-cli/default.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A CLI tool for rustypaste";
+    description = "CLI tool for rustypaste";
     homepage = "https://github.com/orhun/rustypaste-cli";
     changelog = "https://github.com/orhun/rustypaste-cli/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/tools/misc/sagoin/default.nix b/pkgs/tools/misc/sagoin/default.nix
index b3fdd6e99405d..08967f9427e4e 100644
--- a/pkgs/tools/misc/sagoin/default.nix
+++ b/pkgs/tools/misc/sagoin/default.nix
@@ -33,7 +33,7 @@ rustPlatform.buildRustPackage rec {
   GEN_ARTIFACTS = "artifacts";
 
   meta = with lib; {
-    description = "A command-line submission tool for the UMD CS Submit Server";
+    description = "Command-line submission tool for the UMD CS Submit Server";
     homepage = "https://github.com/figsoda/sagoin";
     changelog = "https://github.com/figsoda/sagoin/blob/v${version}/CHANGELOG.md";
     license = licenses.agpl3Plus;
diff --git a/pkgs/tools/misc/savepagenow/default.nix b/pkgs/tools/misc/savepagenow/default.nix
index da29fa3b05a9c..9e723d53f54f0 100644
--- a/pkgs/tools/misc/savepagenow/default.nix
+++ b/pkgs/tools/misc/savepagenow/default.nix
@@ -17,7 +17,7 @@ python3Packages.buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A simple Python wrapper for archive.org's \"Save Page Now\" capturing service";
+    description = "Simple Python wrapper for archive.org's \"Save Page Now\" capturing service";
     homepage = "https://github.com/pastpages/savepagenow";
     license = licenses.mit;
     maintainers = with maintainers; [ SuperSandro2000 ];
diff --git a/pkgs/tools/misc/scdl/default.nix b/pkgs/tools/misc/scdl/default.nix
index 2637c892e03ea..8cff2ac8979e2 100644
--- a/pkgs/tools/misc/scdl/default.nix
+++ b/pkgs/tools/misc/scdl/default.nix
@@ -2,15 +2,17 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "scdl";
-  version = "2.7.7";
-  format = "setuptools";
+  version = "2.7.9";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-/QQb8xbi0rv5dU3WFr/hm2BuM/iDZ2OhrGjuqsQMqdk=";
+    hash = "sha256-/TRRVZc0b7WRjNNe24KdCFyKuaic3I3B5Tnb8ZnMS1o=";
   };
 
-  propagatedBuildInputs = with python3Packages; [
+  build-system = [ python3Packages.setuptools ];
+
+  dependencies = with python3Packages; [
     docopt
     mutagen
     termcolor
diff --git a/pkgs/tools/misc/screen/default.nix b/pkgs/tools/misc/screen/default.nix
index 9d6d302634f87..40b79acba6042 100644
--- a/pkgs/tools/misc/screen/default.nix
+++ b/pkgs/tools/misc/screen/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
 , autoreconfHook
 , ncurses
 , libxcrypt
@@ -39,8 +38,8 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.gnu.org/software/screen/";
-    description = "A window manager that multiplexes a physical terminal";
-    license = licenses.gpl2Plus;
+    description = "Window manager that multiplexes a physical terminal";
+    license = licenses.gpl3Plus;
 
     longDescription =
       '' GNU Screen is a full-screen window manager that multiplexes a physical
diff --git a/pkgs/tools/misc/script-directory/default.nix b/pkgs/tools/misc/script-directory/default.nix
index 59ede7bdccd9d..95ab361782f6d 100644
--- a/pkgs/tools/misc/script-directory/default.nix
+++ b/pkgs/tools/misc/script-directory/default.nix
@@ -32,7 +32,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = {
-    description = "A cozy nest for your scripts";
+    description = "Cozy nest for your scripts";
     homepage = "https://github.com/ianthehenry/sd";
     changelog = "https://github.com/ianthehenry/sd/tree/${src.rev}#changelog";
     license = lib.licenses.mit;
diff --git a/pkgs/tools/misc/see/default.nix b/pkgs/tools/misc/see/default.nix
index 592bc59262ca4..31cc69ffe46b9 100644
--- a/pkgs/tools/misc/see/default.nix
+++ b/pkgs/tools/misc/see/default.nix
@@ -23,7 +23,7 @@ python3.pkgs.buildPythonApplication {
   ];
 
   meta = {
-    description = "A CLI tool to open files in the terminal";
+    description = "CLI tool to open files in the terminal";
     homepage = "https://github.com/Textualize/textualize-see";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ anselmschueler ];
diff --git a/pkgs/tools/misc/sensible-utils/default.nix b/pkgs/tools/misc/sensible-utils/default.nix
index f75629d96f122..0335a0756401f 100644
--- a/pkgs/tools/misc/sensible-utils/default.nix
+++ b/pkgs/tools/misc/sensible-utils/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A collection of utilities used by programs to sensibly select and spawn an appropriate browser, editor, or pager";
+    description = "Collection of utilities used by programs to sensibly select and spawn an appropriate browser, editor, or pager";
     longDescription = ''
        The specific utilities included are:
        - sensible-browser
diff --git a/pkgs/tools/misc/setconf/default.nix b/pkgs/tools/misc/setconf/default.nix
index 8384617e5e5d0..fd43ad6350cf4 100644
--- a/pkgs/tools/misc/setconf/default.nix
+++ b/pkgs/tools/misc/setconf/default.nix
@@ -17,7 +17,7 @@ buildPythonApplication rec {
 
   meta = {
     homepage = "https://github.com/xyproto/setconf";
-    description = "A small utility for changing settings in configuration textfiles";
+    description = "Small utility for changing settings in configuration textfiles";
     changelog = "https://github.com/xyproto/setconf/releases/tag/${version}";
     maintainers = [ lib.maintainers.AndersonTorres ];
     mainProgram = "setconf";
diff --git a/pkgs/tools/misc/sfeed/default.nix b/pkgs/tools/misc/sfeed/default.nix
index c12ddec63c948..3217b8f20d52a 100644
--- a/pkgs/tools/misc/sfeed/default.nix
+++ b/pkgs/tools/misc/sfeed/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://codemadness.org/sfeed-simple-feed-parser.html";
-    description = "A RSS and Atom parser (and some format programs)";
+    description = "RSS and Atom parser (and some format programs)";
     longDescription = ''
       It converts RSS or Atom feeds from XML to a TAB-separated file. There are
       formatting programs included to convert this TAB-separated format to
diff --git a/pkgs/tools/misc/shadowenv/Cargo.lock.patch b/pkgs/tools/misc/shadowenv/Cargo.lock.patch
deleted file mode 100644
index d1866991cea79..0000000000000
--- a/pkgs/tools/misc/shadowenv/Cargo.lock.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git c/Cargo.lock i/Cargo.lock
-index fb6ef6e..347b404 100644
---- c/Cargo.lock
-+++ i/Cargo.lock
-@@ -1168,7 +1168,7 @@ dependencies = [
- 
- [[package]]
- name = "shadowenv"
--version = "2.1.0"
-+version = "2.1.1"
- dependencies = [
-  "atty",
-  "blake2",
diff --git a/pkgs/tools/misc/shadowenv/default.nix b/pkgs/tools/misc/shadowenv/default.nix
index b9387024419b1..34597142522c0 100644
--- a/pkgs/tools/misc/shadowenv/default.nix
+++ b/pkgs/tools/misc/shadowenv/default.nix
@@ -2,18 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "shadowenv";
-  version = "2.1.1";
+  version = "2.1.2";
 
   src = fetchFromGitHub {
     owner = "Shopify";
     repo = pname;
     rev = version;
-    hash = "sha256-NKqoeJ2sejbe7Gghk3H7oJtP16SX1PcIIjsh/bZdTfQ=";
+    hash = "sha256-SYVVP1WOadsgucHo3z5QxbGtzczfiej4C3/EmbrHOhg=";
   };
 
-  cargoPatches = [ ./Cargo.lock.patch ];
-
-  cargoHash = "sha256-CGAwb+UduM2QKne2bPntOcFnaUQN/3uUANc6z7f/Oig=";
+  cargoHash = "sha256-x4OQa84cIKzx29lMx56GfqSFE216jD897g4VhkiV4Kc=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/misc/sheldon/default.nix b/pkgs/tools/misc/sheldon/default.nix
index ddff13c9bcfd4..4f0c22344a5b4 100644
--- a/pkgs/tools/misc/sheldon/default.nix
+++ b/pkgs/tools/misc/sheldon/default.nix
@@ -57,7 +57,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A fast and configurable shell plugin manager";
+    description = "Fast and configurable shell plugin manager";
     homepage = "https://github.com/rossmacarthur/sheldon";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ seqizz ];
diff --git a/pkgs/tools/misc/shelldap/default.nix b/pkgs/tools/misc/shelldap/default.nix
index 09901368c8701..dcc95b24ef48f 100644
--- a/pkgs/tools/misc/shelldap/default.nix
+++ b/pkgs/tools/misc/shelldap/default.nix
@@ -51,7 +51,7 @@ perlPackages.buildPerlPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/mahlonsmith/shelldap/";
-    description = "A handy shell-like interface for browsing LDAP servers and editing their content";
+    description = "Handy shell-like interface for browsing LDAP servers and editing their content";
     changelog = "https://github.com/mahlonsmith/shelldap/blob/v${version}/CHANGELOG";
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ clerie tobiasBora ];
diff --git a/pkgs/tools/misc/shunit2/default.nix b/pkgs/tools/misc/shunit2/default.nix
index 017d19264798e..57f1957a7e0e2 100644
--- a/pkgs/tools/misc/shunit2/default.nix
+++ b/pkgs/tools/misc/shunit2/default.nix
@@ -82,7 +82,7 @@ resholve.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/kward/shunit2";
-    description = "An xUnit based unit test framework for Bourne based shell scripts";
+    description = "XUnit based unit test framework for Bourne based shell scripts";
     maintainers = with maintainers; [ abathur utdemir ];
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/pkgs/tools/misc/sqlite3-to-mysql/default.nix b/pkgs/tools/misc/sqlite3-to-mysql/default.nix
index 289de7d02264a..75d554ca4ecbe 100644
--- a/pkgs/tools/misc/sqlite3-to-mysql/default.nix
+++ b/pkgs/tools/misc/sqlite3-to-mysql/default.nix
@@ -9,7 +9,7 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "sqlite3-to-mysql";
-  version = "2.1.10";
+  version = "2.2.0";
   format = "pyproject";
 
   disabled = python3Packages.pythonOlder "3.8";
@@ -18,7 +18,7 @@ python3Packages.buildPythonApplication rec {
     owner = "techouse";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-E8cKgKT6Tmz5rR/E2eXDVEVdOr7kk+VbkpF+Yc7IZrw=";
+    hash = "sha256-oav5HJdTmSAKk1b0wpzU2UOoY53zh5BrQ3Q0N360NeQ=";
   };
 
   nativeBuildInputs = with python3Packages; [
@@ -59,7 +59,7 @@ python3Packages.buildPythonApplication rec {
   };
 
   meta = with lib; {
-    description = "A simple Python tool to transfer data from SQLite 3 to MySQL";
+    description = "Simple Python tool to transfer data from SQLite 3 to MySQL";
     homepage = "https://github.com/techouse/sqlite3-to-mysql";
     license = licenses.mit;
     maintainers = with maintainers; [ gador ];
diff --git a/pkgs/tools/misc/srisum/default.nix b/pkgs/tools/misc/srisum/default.nix
index 8412e48d7907c..905e5c9acaaa6 100644
--- a/pkgs/tools/misc/srisum/default.nix
+++ b/pkgs/tools/misc/srisum/default.nix
@@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
   doInstallCheck = true;
 
   meta = with lib; {
-    description = "A command-line utility to compute and check subresource integrity hashes";
+    description = "Command-line utility to compute and check subresource integrity hashes";
     homepage = "https://github.com/zkat/srisum-rs";
     changelog = "https://github.com/zkat/srisum-rs/raw/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 ];
diff --git a/pkgs/tools/misc/starship/default.nix b/pkgs/tools/misc/starship/default.nix
index ce82cb7745c7d..06944a40eb1ec 100644
--- a/pkgs/tools/misc/starship/default.nix
+++ b/pkgs/tools/misc/starship/default.nix
@@ -57,7 +57,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A minimal, blazing fast, and extremely customizable prompt for any shell";
+    description = "Minimal, blazing fast, and extremely customizable prompt for any shell";
     homepage = "https://starship.rs";
     license = licenses.isc;
     maintainers = with maintainers; [ danth davidtwco Br1ght0ne Frostman ];
diff --git a/pkgs/tools/misc/staruml/default.nix b/pkgs/tools/misc/staruml/default.nix
index 036f47965b8f8..d98225ac365f2 100644
--- a/pkgs/tools/misc/staruml/default.nix
+++ b/pkgs/tools/misc/staruml/default.nix
@@ -24,12 +24,12 @@ let
   ];
 in
 stdenv.mkDerivation (finalAttrs: {
-  version = "6.1.0";
+  version = "6.1.1";
   pname = "staruml";
 
   src = fetchurl {
       url = "https://files.staruml.io/releases-v6/StarUML_${finalAttrs.version}_amd64.deb";
-      sha256 = "sha256-ULdrAQCiQlTN+aRhETj+ASMKkKctFgC2AfvUHGc6stU=";
+      sha256 = "sha256-AtWzGEegKUDeNLhklm74JNQQqBzdOE4MUYBFp9ubd2A=";
     };
 
   nativeBuildInputs = [ wrapGAppsHook3 dpkg ];
@@ -69,7 +69,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A sophisticated software modeler";
+    description = "Sophisticated software modeler";
     homepage = "https://staruml.io/";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
diff --git a/pkgs/tools/misc/stow/default.nix b/pkgs/tools/misc/stow/default.nix
index 4dd72d8d8caf5..2ea55a347479e 100644
--- a/pkgs/tools/misc/stow/default.nix
+++ b/pkgs/tools/misc/stow/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation (finalAttrs: {
   doCheck = true;
 
   meta = with lib; {
-    description = "A tool for managing the installation of multiple software packages in the same run-time directory tree";
+    description = "Tool for managing the installation of multiple software packages in the same run-time directory tree";
 
     longDescription = ''
       GNU Stow is a symlink farm manager which takes distinct packages
diff --git a/pkgs/tools/misc/subberthehut/default.nix b/pkgs/tools/misc/subberthehut/default.nix
index 66e4442ad460c..58860f30dc5a1 100644
--- a/pkgs/tools/misc/subberthehut/default.nix
+++ b/pkgs/tools/misc/subberthehut/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/mus65/subberthehut";
-    description = "An OpenSubtitles.org downloader";
+    description = "OpenSubtitles.org downloader";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ jqueiroz ];
diff --git a/pkgs/tools/misc/svtplay-dl/default.nix b/pkgs/tools/misc/svtplay-dl/default.nix
index 5abdb5bba60d7..e03b792456816 100644
--- a/pkgs/tools/misc/svtplay-dl/default.nix
+++ b/pkgs/tools/misc/svtplay-dl/default.nix
@@ -15,7 +15,7 @@ let
     python pytest nose3 cryptography pyyaml requests mock requests-mock
     python-dateutil setuptools;
 
-  version = "4.73";
+  version = "4.83";
 
 in
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "spaam";
     repo = "svtplay-dl";
     rev = version;
-    hash = "sha256-e8ewsx2mx62JTUnpMoSRL44EGDllQuk/k9gRztOkWMc=";
+    hash = "sha256-CaidnRd21qtPKlFMHfQMmYVz/CfN88uBC1XK3JikHf0=";
   };
 
   pythonPaths = [ cryptography pyyaml requests ];
diff --git a/pkgs/tools/misc/svu/default.nix b/pkgs/tools/misc/svu/default.nix
index 0fafaffc153b4..b3919163f4103 100644
--- a/pkgs/tools/misc/svu/default.nix
+++ b/pkgs/tools/misc/svu/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "svu";
-  version = "1.12.0";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "caarlos0";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-MztFramrNqxYmdTRf857HOC7H66dLvezG6LL9njxWUs=";
+    sha256 = "sha256-10pDJQ5GQrrNJaDD2PP9MQqib4llsA5c6X3Qeu3Lgkk=";
   };
 
-  vendorHash = "sha256-+e1oL08KvBSNaRepGR2SBBrEDJaGxl5V9rOBysGEfQs=";
+  vendorHash = "sha256-/FSvNoVDWAkQs09gMrqyoA0su52nlk/nSCYRAhQhbwQ=";
 
   ldflags = [ "-s" "-w" "-X=main.version=${version}" "-X=main.builtBy=nixpkgs" ];
 
diff --git a/pkgs/tools/misc/synth/default.nix b/pkgs/tools/misc/synth/default.nix
index 92e4e8531f9aa..1d2eddbd54e5f 100644
--- a/pkgs/tools/misc/synth/default.nix
+++ b/pkgs/tools/misc/synth/default.nix
@@ -33,7 +33,7 @@ rustPlatform.buildRustPackage rec {
   RUSTC_BOOTSTRAP = 1;
 
   meta = with lib; {
-    description = "A tool for generating realistic data using a declarative data model";
+    description = "Tool for generating realistic data using a declarative data model";
     homepage = "https://github.com/getsynth/synth";
     license = licenses.asl20;
     maintainers = with maintainers; [ figsoda ];
diff --git a/pkgs/tools/misc/systrayhelper/default.nix b/pkgs/tools/misc/systrayhelper/default.nix
index 1635054b56c66..328ea27e8b806 100644
--- a/pkgs/tools/misc/systrayhelper/default.nix
+++ b/pkgs/tools/misc/systrayhelper/default.nix
@@ -30,7 +30,7 @@ buildGoModule rec {
   doCheck = false; # Display required
 
   meta = with lib; {
-    description = "A systray utility written in go, using json over stdio for control and events";
+    description = "Systray utility written in go, using json over stdio for control and events";
     homepage = "https://github.com/ssbc/systrayhelper";
     maintainers = with maintainers; [ cryptix ];
     license = licenses.mit;
diff --git a/pkgs/tools/misc/sysz/default.nix b/pkgs/tools/misc/sysz/default.nix
index 37b34aec2d273..aac3bfb29c94a 100644
--- a/pkgs/tools/misc/sysz/default.nix
+++ b/pkgs/tools/misc/sysz/default.nix
@@ -24,7 +24,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/joehillen/sysz";
-    description = "A fzf terminal UI for systemctl";
+    description = "Fzf terminal UI for systemctl";
     license = licenses.unlicense;
     maintainers = with maintainers; [ hleboulanger ];
     platforms = platforms.unix;
diff --git a/pkgs/tools/misc/szyszka/default.nix b/pkgs/tools/misc/szyszka/default.nix
index 8be3e0caf8b68..b1e68b327b242 100644
--- a/pkgs/tools/misc/szyszka/default.nix
+++ b/pkgs/tools/misc/szyszka/default.nix
@@ -43,7 +43,7 @@ rustPlatform.buildRustPackage rec {
   ]);
 
   meta = with lib; {
-    description = "A simple but powerful and fast bulk file renamer";
+    description = "Simple but powerful and fast bulk file renamer";
     homepage = "https://github.com/qarmin/szyszka";
     license = licenses.mit;
     maintainers = with maintainers; [ kranzes ];
diff --git a/pkgs/tools/misc/t/default.nix b/pkgs/tools/misc/t/default.nix
index 4d0c961847cee..0bcedf344ba69 100644
--- a/pkgs/tools/misc/t/default.nix
+++ b/pkgs/tools/misc/t/default.nix
@@ -8,7 +8,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "t";
 
   meta = with lib; {
-    description = "A command-line power tool for Twitter";
+    description = "Command-line power tool for Twitter";
     homepage    = "http://sferik.github.io/t/";
     license     = licenses.asl20;
     maintainers = with maintainers; [ offline manveru nicknovitski ];
diff --git a/pkgs/tools/misc/tailer/default.nix b/pkgs/tools/misc/tailer/default.nix
index 96631875f5a49..9e8c31790af80 100644
--- a/pkgs/tools/misc/tailer/default.nix
+++ b/pkgs/tools/misc/tailer/default.nix
@@ -31,7 +31,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A CLI tool to insert lines when command output stops";
+    description = "CLI tool to insert lines when command output stops";
     homepage = "https://github.com/hionay/tailer";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/pkgs/tools/misc/tailspin/default.nix b/pkgs/tools/misc/tailspin/default.nix
index 6be1f08efa092..4e837df61c7ce 100644
--- a/pkgs/tools/misc/tailspin/default.nix
+++ b/pkgs/tools/misc/tailspin/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-uTUowYoLEywGNzPyxq53Si5GSrh/F9kUFIDjw/wfdAQ=";
 
   meta = with lib; {
-    description = "A log file highlighter";
+    description = "Log file highlighter";
     homepage = "https://github.com/bensadeh/tailspin";
     changelog = "https://github.com/bensadeh/tailspin/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/tools/misc/taoup/default.nix b/pkgs/tools/misc/taoup/default.nix
index 4d991a88cf114..11688a46e5a1e 100644
--- a/pkgs/tools/misc/taoup/default.nix
+++ b/pkgs/tools/misc/taoup/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "The Tao of Unix Programming (Ruby-powered ANSI colored fortunes)";
+    description = "Tao of Unix Programming (Ruby-powered ANSI colored fortunes)";
     homepage = "https://github.com/globalcitizen/taoup";
     license = lib.licenses.gpl3Only;
     maintainers = [ lib.maintainers.zakame ];
diff --git a/pkgs/tools/misc/tbls/default.nix b/pkgs/tools/misc/tbls/default.nix
index 0a3b341cc482c..d5ceaa6f52de3 100644
--- a/pkgs/tools/misc/tbls/default.nix
+++ b/pkgs/tools/misc/tbls/default.nix
@@ -9,16 +9,16 @@
 
 buildGoModule rec {
   pname = "tbls";
-  version = "1.75.0";
+  version = "1.76.1";
 
   src = fetchFromGitHub {
     owner = "k1LoW";
     repo = "tbls";
     rev = "v${version}";
-    hash = "sha256-8bfDahJw+ZUSNqMiKDqqyX2jVPd6Wg3JsD/ATAW/oF4=";
+    hash = "sha256-xSmw3udoTTEpEpfoyU48RAlN8gR/cfqco1DQ8qs5W94=";
   };
 
-  vendorHash = "sha256-NafHcWP9xJX2hy8i1TKtBi54cXDKgoxbgwLQjYRBcjU=";
+  vendorHash = "sha256-ALjpU5el6Tmzsw2f5/AizFBuk+zJj9RKe9KHdE0AOrM=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -47,7 +47,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A tool to generate documentation based on a database structure";
+    description = "Tool to generate documentation based on a database structure";
     homepage = "https://github.com/k1LoW/tbls";
     changelog = "https://github.com/k1LoW/tbls/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/tools/misc/tealdeer/default.nix b/pkgs/tools/misc/tealdeer/default.nix
index ce06bdfdce8f0..dfe57f5fef069 100644
--- a/pkgs/tools/misc/tealdeer/default.nix
+++ b/pkgs/tools/misc/tealdeer/default.nix
@@ -43,7 +43,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A very fast implementation of tldr in Rust";
+    description = "Very fast implementation of tldr in Rust";
     homepage = "https://github.com/dbrgn/tealdeer";
     maintainers = with maintainers; [ davidak newam ];
     license = with licenses; [ asl20 mit ];
diff --git a/pkgs/tools/misc/teamocil/default.nix b/pkgs/tools/misc/teamocil/default.nix
index 4344668809cef..a3e85031dee64 100644
--- a/pkgs/tools/misc/teamocil/default.nix
+++ b/pkgs/tools/misc/teamocil/default.nix
@@ -8,7 +8,7 @@ bundlerEnv {
   passthru.updateScript = bundlerUpdateScript "teamocil";
 
   meta = with lib; {
-    description     = "A simple tool used to automatically create windows and panes in tmux with YAML files";
+    description     = "Simple tool used to automatically create windows and panes in tmux with YAML files";
     homepage        = "https://github.com/remiprev/teamocil";
     license         = licenses.mit;
     platforms       = platforms.all;
diff --git a/pkgs/tools/misc/tere/default.nix b/pkgs/tools/misc/tere/default.nix
index 70bd03ccaa49b..61afcbca9a19e 100644
--- a/pkgs/tools/misc/tere/default.nix
+++ b/pkgs/tools/misc/tere/default.nix
@@ -1,24 +1,56 @@
-{ lib, fetchFromGitHub, rustPlatform }:
+{ lib, fetchFromGitHub, rustPlatform, ncurses, stdenv, python3 }:
 
-rustPlatform.buildRustPackage rec {
+rustPlatform.buildRustPackage {
   pname = "tere";
-  version = "1.5.0";
+  version = "1.5.1-unstable-2024-04-01";
 
   src = fetchFromGitHub {
     owner = "mgunyho";
     repo = "tere";
-    rev = "v${version}";
-    sha256 = "sha256-xqbFBRzBfTwSdkC8e85yANdVA45G6E1FYlTXP8QfVIk=";
+    rev = "659422ecb2810f91446a71e52b82524d4f1755d8";
+    sha256 = "sha256-CH8gcfkjSAknG6kKHp0aODcrjEJjzHbgeVaE/PK1zRA=";
   };
 
-  cargoHash = "sha256-Y2Zgo/VAJxzQd2cXxyiJS5AqcVRClAuUsEogivK3EJw=";
+  cargoHash = "sha256-GtGWuvYdxP3dgGekoXYaM+lnZJBgJX1UIWe0EH+/52M=";
 
-  postPatch = ''
-    rm .cargo/config.toml;
-  '';
+  nativeBuildInputs = [
+    # ncurses provides the tput command needed for integration tests
+    # https://github.com/mgunyho/tere/issues/93#issuecomment-2029624187
+    ncurses
+  ];
+
+  checkFlags = lib.optionals stdenv.isDarwin [
+    # Unexplained fail
+    # https://github.com/NixOS/nixpkgs/pull/298527#issuecomment-2053758845
+    "--skip=first_run_prompt_accept"
+  ];
+
+  # NOTE: workaround for build fail on aarch64
+  # See https://github.com/NixOS/nixpkgs/issues/145726#issuecomment-971331986
+  preBuild =
+    let
+      python-with-toml = python3.withPackages (ps: [ps.toml]);
+      script = builtins.toFile "clear_linkers.py" ''
+        from os import path
+        import toml
+
+        if path.exists(".cargo/config.toml"):
+          config = toml.load(open(".cargo/config.toml"))
+
+          for target in config.get("target",{}).values():
+            if "linker" in target:
+              del target["linker"]
+
+          toml.dump(config,open(".cargo/config.toml", "w"))
+        else:
+          print(__file__, ":  CONFIG.TOML EXPECTED")
+          exit(1)
+      '';
+    in
+      "${python-with-toml}/bin/python3 ${script}";
 
   meta = with lib; {
-    description = "A faster alternative to cd + ls";
+    description = "Faster alternative to cd + ls";
     homepage = "https://github.com/mgunyho/tere";
     license = licenses.eupl12;
     maintainers = with maintainers; [ ProducerMatt ];
diff --git a/pkgs/tools/misc/tfk8s/default.nix b/pkgs/tools/misc/tfk8s/default.nix
index 52795b7540025..a0bdefde16202 100644
--- a/pkgs/tools/misc/tfk8s/default.nix
+++ b/pkgs/tools/misc/tfk8s/default.nix
@@ -33,7 +33,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "An utility to convert Kubernetes YAML manifests to Terraform's HCL format";
+    description = "Utility to convert Kubernetes YAML manifests to Terraform's HCL format";
     license = licenses.mit;
     longDescription = ''
       tfk8s is a tool that makes it easier to work with the Terraform Kubernetes Provider.
diff --git a/pkgs/tools/misc/theme-sh/default.nix b/pkgs/tools/misc/theme-sh/default.nix
index 3d41258731512..e1ebe9b732667 100644
--- a/pkgs/tools/misc/theme-sh/default.nix
+++ b/pkgs/tools/misc/theme-sh/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A script which lets you set your $terminal theme";
+    description = "Script which lets you set your $terminal theme";
     homepage = "https://github.com/lemnos/theme.sh";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/tools/misc/thin-provisioning-tools/Cargo.lock b/pkgs/tools/misc/thin-provisioning-tools/Cargo.lock
new file mode 100644
index 0000000000000..8f9a97c8733ee
--- /dev/null
+++ b/pkgs/tools/misc/thin-provisioning-tools/Cargo.lock
@@ -0,0 +1,907 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
+
+[[package]]
+name = "anyhow"
+version = "1.0.80"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi 0.1.19",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "base64"
+version = "0.21.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+
+[[package]]
+name = "bytemuck"
+version = "1.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
+
+[[package]]
+name = "byteorder"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+
+[[package]]
+name = "cassowary"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "clap"
+version = "4.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da"
+dependencies = [
+ "clap_builder",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb"
+dependencies = [
+ "anstyle",
+ "clap_lex",
+ "strsim",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
+
+[[package]]
+name = "console"
+version = "0.15.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
+dependencies = [
+ "encode_unicode",
+ "lazy_static",
+ "libc",
+ "unicode-width",
+ "windows-sys",
+]
+
+[[package]]
+name = "crc32c"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89254598aa9b9fa608de44b3ae54c810f0f06d755e24c50177f1f8f31ff50ce2"
+dependencies = [
+ "rustc_version",
+]
+
+[[package]]
+name = "crc32fast"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "data-encoding"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
+
+[[package]]
+name = "downcast"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1"
+
+[[package]]
+name = "duct"
+version = "0.13.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4ab5718d1224b63252cd0c6f74f6480f9ffeb117438a2e0f5cf6d9a4798929c"
+dependencies = [
+ "libc",
+ "once_cell",
+ "os_pipe",
+ "shared_child",
+]
+
+[[package]]
+name = "encode_unicode"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+
+[[package]]
+name = "env_logger"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
+dependencies = [
+ "log",
+ "regex",
+]
+
+[[package]]
+name = "errno"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+dependencies = [
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
+name = "exitcode"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de853764b47027c2e862a995c34978ffa63c1501f2e15f987ba11bd4f9bba193"
+
+[[package]]
+name = "fastrand"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+
+[[package]]
+name = "fixedbitset"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
+
+[[package]]
+name = "flate2"
+version = "1.0.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
+dependencies = [
+ "crc32fast",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "fragile"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa"
+
+[[package]]
+name = "getrandom"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd"
+
+[[package]]
+name = "indicatif"
+version = "0.17.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3"
+dependencies = [
+ "console",
+ "instant",
+ "number_prefix",
+ "portable-atomic",
+ "unicode-width",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "iovec"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libc"
+version = "0.2.153"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+
+[[package]]
+name = "log"
+version = "0.4.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+
+[[package]]
+name = "memchr"
+version = "2.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+
+[[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
+name = "miniz_oxide"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
+dependencies = [
+ "adler",
+]
+
+[[package]]
+name = "mockall"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43766c2b5203b10de348ffe19f7e54564b64f3d6018ff7648d1e2d6d3a0f0a48"
+dependencies = [
+ "cfg-if",
+ "downcast",
+ "fragile",
+ "lazy_static",
+ "mockall_derive",
+ "predicates",
+ "predicates-tree",
+]
+
+[[package]]
+name = "mockall_derive"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af7cbce79ec385a1d4f54baa90a76401eb15d9cab93685f62e7e9f942aa00ae2"
+dependencies = [
+ "cfg-if",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.50",
+]
+
+[[package]]
+name = "nom"
+version = "7.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+dependencies = [
+ "memchr",
+ "minimal-lexical",
+]
+
+[[package]]
+name = "num-derive"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.50",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+dependencies = [
+ "hermit-abi 0.3.6",
+ "libc",
+]
+
+[[package]]
+name = "number_prefix"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
+
+[[package]]
+name = "numtoa"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef"
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "os_pipe"
+version = "1.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57119c3b893986491ec9aa85056780d3a0f3cf4da7cc09dd3650dbd6c6738fb9"
+dependencies = [
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
+name = "portable-atomic"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "predicates"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8"
+dependencies = [
+ "anstyle",
+ "predicates-core",
+]
+
+[[package]]
+name = "predicates-core"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174"
+
+[[package]]
+name = "predicates-tree"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf"
+dependencies = [
+ "predicates-core",
+ "termtree",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.78"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quick-xml"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "quickcheck"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6"
+dependencies = [
+ "env_logger",
+ "log",
+ "rand",
+]
+
+[[package]]
+name = "quickcheck_macros"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b22a693222d716a9587786f37ac3f6b4faedb5b80c23914e7303ff5a1d8016e9"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rangemap"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "795915a3930a5d6bafd9053d37602fea3e61be2e5d4d788983a8ba9654c1c6f2"
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_termios"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20145670ba436b55d91fc92d25e71160fbfbdd57831631c8d7d36377a476f1cb"
+
+[[package]]
+name = "regex"
+version = "1.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+
+[[package]]
+name = "rio"
+version = "0.9.4"
+source = "git+https://github.com/jthornber/rio?branch=master#2979a720f671e836302c01546f9cc9f7988610c8"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "roaring"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1c77081a55300e016cb86f2864415b7518741879db925b8d488a0ee0d2da6bf"
+dependencies = [
+ "bytemuck",
+ "byteorder",
+]
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "rustix"
+version = "0.38.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
+dependencies = [
+ "bitflags 2.4.2",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys",
+]
+
+[[package]]
+name = "safemem"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
+
+[[package]]
+name = "semver"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
+
+[[package]]
+name = "shared_child"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "strsim"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.50"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74f1bdc9872430ce9b75da68329d1c1746faf50ffac5f19e02b71e37ff881ffb"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "rustix",
+ "windows-sys",
+]
+
+[[package]]
+name = "termion"
+version = "1.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "077185e2eac69c3f8379a4298e1e07cd36beb962290d4a51199acf0fdc10607e"
+dependencies = [
+ "libc",
+ "numtoa",
+ "redox_syscall",
+ "redox_termios",
+]
+
+[[package]]
+name = "termtree"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
+
+[[package]]
+name = "thinp"
+version = "1.0.12"
+dependencies = [
+ "anyhow",
+ "atty",
+ "base64",
+ "byteorder",
+ "clap",
+ "crc32c",
+ "data-encoding",
+ "duct",
+ "exitcode",
+ "fixedbitset",
+ "flate2",
+ "indicatif",
+ "iovec",
+ "libc",
+ "mockall",
+ "nom",
+ "num-derive",
+ "num-traits",
+ "num_cpus",
+ "quick-xml",
+ "quickcheck",
+ "quickcheck_macros",
+ "rand",
+ "rangemap",
+ "rio",
+ "roaring",
+ "safemem",
+ "tempfile",
+ "termion",
+ "thinp",
+ "thiserror",
+ "threadpool",
+ "tui",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.50",
+]
+
+[[package]]
+name = "threadpool"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
+dependencies = [
+ "num_cpus",
+]
+
+[[package]]
+name = "tui"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccdd26cbd674007e649a272da4475fb666d3aa0ad0531da7136db6fab0e5bad1"
+dependencies = [
+ "bitflags 1.3.2",
+ "cassowary",
+ "termion",
+ "unicode-segmentation",
+ "unicode-width",
+]
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
+
+[[package]]
+name = "unicode-width"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6"
diff --git a/pkgs/tools/misc/thin-provisioning-tools/default.nix b/pkgs/tools/misc/thin-provisioning-tools/default.nix
index bff6c9c96887a..aa1fc40be50ce 100644
--- a/pkgs/tools/misc/thin-provisioning-tools/default.nix
+++ b/pkgs/tools/misc/thin-provisioning-tools/default.nix
@@ -1,25 +1,33 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, expat, libaio, boost }:
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, nixosTests }:
 
-stdenv.mkDerivation rec {
+rustPlatform.buildRustPackage rec {
   pname = "thin-provisioning-tools";
-  version = "0.9.0";
+  version = "1.0.12";
 
   src = fetchFromGitHub {
     owner = "jthornber";
     repo = "thin-provisioning-tools";
     rev = "v${version}";
-    sha256 = "1iwg04rhmdhijmlk5hfl8wvv83115lzb65if6cc1glkkfva8jfjp";
+    hash = "sha256-wliyTWo3iOonqf4UW50V5co0RQlc75VwLofF9FHV2LI=";
   };
 
-  nativeBuildInputs = [ autoreconfHook ];
-
-  buildInputs = [ expat libaio boost ];
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "rio-0.9.4" = "sha256-2l5cm7YLZyf2kuRPMytu7Fdewi6x3+9KyyQBv2F8ZDA=";
+    };
+  };
 
-  enableParallelBuilding = true;
+  passthru.tests = {
+    inherit (nixosTests.lvm2) lvm-thinpool-linux-latest;
+  };
 
   meta = with lib; {
     homepage = "https://github.com/jthornber/thin-provisioning-tools/";
-    description = "A suite of tools for manipulating the metadata of the dm-thin device-mapper target";
+    description = "Suite of tools for manipulating the metadata of the dm-thin device-mapper target";
     license = licenses.gpl3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/tools/misc/thumbs/default.nix b/pkgs/tools/misc/thumbs/default.nix
index e7f785b9e5bf0..f170375afb870 100644
--- a/pkgs/tools/misc/thumbs/default.nix
+++ b/pkgs/tools/misc/thumbs/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/fcsonline/tmux-thumbs";
-    description = "A lightning fast version of tmux-fingers written in Rust, copy/pasting tmux like vimium/vimperator";
+    description = "Lightning fast version of tmux-fingers written in Rust, copy/pasting tmux like vimium/vimperator";
     license = licenses.mit;
     maintainers = with maintainers; [ ghostbuster91 ];
   };
diff --git a/pkgs/tools/misc/timer/default.nix b/pkgs/tools/misc/timer/default.nix
index 908127575e7a4..732c6358a2e09 100644
--- a/pkgs/tools/misc/timer/default.nix
+++ b/pkgs/tools/misc/timer/default.nix
@@ -18,7 +18,7 @@ buildGoModule rec {
   passthru.tests.version = testers.testVersion { package = timer; };
 
   meta = with lib; {
-    description = "A `sleep` with progress";
+    description = "`sleep` with progress";
     homepage = "https://github.com/caarlos0/timer";
     license = licenses.mit;
     maintainers = with maintainers; [ zowoq caarlos0 ];
diff --git a/pkgs/tools/misc/timidity/default.nix b/pkgs/tools/misc/timidity/default.nix
index 1cb62fec2e024..26f84e383c48f 100644
--- a/pkgs/tools/misc/timidity/default.nix
+++ b/pkgs/tools/misc/timidity/default.nix
@@ -89,7 +89,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://sourceforge.net/projects/timidity/";
     license = licenses.gpl2Plus;
-    description = "A software MIDI renderer";
+    description = "Software MIDI renderer";
     maintainers = [ maintainers.marcweber ];
     platforms = platforms.unix;
     mainProgram = "timidity";
diff --git a/pkgs/tools/misc/tmux-mem-cpu-load/default.nix b/pkgs/tools/misc/tmux-mem-cpu-load/default.nix
index 1e197ef162eab..012a18911d406 100644
--- a/pkgs/tools/misc/tmux-mem-cpu-load/default.nix
+++ b/pkgs/tools/misc/tmux-mem-cpu-load/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tmux-mem-cpu-load";
-  version = "3.8.0";
+  version = "3.8.1";
 
   src = fetchFromGitHub {
     owner = "thewtex";
     repo = "tmux-mem-cpu-load";
     rev = "v${version}";
-    sha256 = "sha256-dRHV2XF3NFzd4HT9SbRnEn8U40QTnAUJDsM51NA9fEk=";
+    sha256 = "sha256-8QUcEbgk3DSsWt9TRHHtDhQ7a1hkK8RZEX+0d3h/c0w=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/misc/tmux-sessionizer/default.nix b/pkgs/tools/misc/tmux-sessionizer/default.nix
index 207962a82e358..b6a3682ec7574 100644
--- a/pkgs/tools/misc/tmux-sessionizer/default.nix
+++ b/pkgs/tools/misc/tmux-sessionizer/default.nix
@@ -39,7 +39,7 @@ rustPlatform.buildRustPackage {
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
 
   meta = with lib; {
-    description = "The fastest way to manage projects as tmux sessions";
+    description = "Fastest way to manage projects as tmux sessions";
     homepage = "https://github.com/jrmoulton/tmux-sessionizer";
     license = licenses.mit;
     maintainers = with maintainers; [ vinnymeller mrcjkb ];
diff --git a/pkgs/tools/misc/tmux/default.nix b/pkgs/tools/misc/tmux/default.nix
index 913310ec7a471..dec0e1b453359 100644
--- a/pkgs/tools/misc/tmux/default.nix
+++ b/pkgs/tools/misc/tmux/default.nix
@@ -38,10 +38,17 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-RX3RZ0Mcyda7C7im1r4QgUxTnp95nfpGgQ2HRxr0s64=";
   };
 
-  patches = [(fetchpatch {
-    url = "https://github.com/tmux/tmux/commit/2d1afa0e62a24aa7c53ce4fb6f1e35e29d01a904.diff";
-    hash = "sha256-mDt5wy570qrUc0clGa3GhZFTKgL0sfnQcWJEJBKAbKs=";
-  })];
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/tmux/tmux/commit/2d1afa0e62a24aa7c53ce4fb6f1e35e29d01a904.diff";
+      hash = "sha256-mDt5wy570qrUc0clGa3GhZFTKgL0sfnQcWJEJBKAbKs=";
+    })
+    # this patch is designed for android but FreeBSD exhibits the same error for the same reason
+    (fetchpatch {
+      url = "https://github.com/tmux/tmux/commit/4f5a944ae3e8f7a230054b6c0b26f423fa738e71.patch";
+      hash = "sha256-HlUeU5ZicPe7Ya8A1HpunxfVOE2BF6jOHq3ZqTuU5RE=";
+    })
+  ];
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/tools/misc/tmuxp/default.nix b/pkgs/tools/misc/tmuxp/default.nix
index f0352cdda3602..6964cb5ace4e9 100644
--- a/pkgs/tools/misc/tmuxp/default.nix
+++ b/pkgs/tools/misc/tmuxp/default.nix
@@ -2,8 +2,8 @@
 
 let
   pname = "tmuxp";
-  version = "1.46.0";
-  hash = "sha256-+aXpsB4mjw9sZLalv3knW8okP+mh2P/nbZCiCwa3UBU=";
+  version = "1.47.0";
+  hash = "sha256-HYY6CEUPpZVvVK9kV4Ehw4wGk5YfIVSkZ0+qqf6Nz4c=";
 in
 python3Packages.buildPythonApplication {
   inherit pname version;
diff --git a/pkgs/tools/misc/toastify/default.nix b/pkgs/tools/misc/toastify/default.nix
index 2de5877c0f057..b244aec493ace 100644
--- a/pkgs/tools/misc/toastify/default.nix
+++ b/pkgs/tools/misc/toastify/default.nix
@@ -22,7 +22,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A commandline tool that shows desktop notifications using notify-rust";
+    description = "Commandline tool that shows desktop notifications using notify-rust";
     homepage = "https://github.com/hoodie/toastify";
     changelog = "https://github.com/hoodie/toastify/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/tools/misc/topicctl/default.nix b/pkgs/tools/misc/topicctl/default.nix
index c3252987c4ce3..1b19b83edc8aa 100644
--- a/pkgs/tools/misc/topicctl/default.nix
+++ b/pkgs/tools/misc/topicctl/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "topicctl";
-  version = "1.17.0";
+  version = "1.18.0";
 
   src = fetchFromGitHub {
     owner = "segmentio";
     repo = "topicctl";
     rev = "v${version}";
-    sha256 = "sha256-S1i2Nv7FQzqCTTjkS5slEI0vdt3kXhVWdtaYyng1GsQ=";
+    sha256 = "sha256-ZvyMGtsmXnJUGUoC9UciqCpQJsbxykzeRDo+i4ni82o=";
   };
 
   vendorHash = "sha256-+mnnvdna1g6JE29weOJZmdO3jFp2a75dV9wK2XcWJ9s=";
@@ -23,7 +23,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A tool for easy, declarative management of Kafka topics";
+    description = "Tool for easy, declarative management of Kafka topics";
     inherit (src.meta) homepage;
     license = licenses.mit;
     maintainers = with maintainers; [ eskytthe srhb ];
diff --git a/pkgs/tools/misc/torrenttools/default.nix b/pkgs/tools/misc/torrenttools/default.nix
index 0fa5dbffafbbb..6daa39dd7e739 100644
--- a/pkgs/tools/misc/torrenttools/default.nix
+++ b/pkgs/tools/misc/torrenttools/default.nix
@@ -90,7 +90,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A CLI tool for creating, inspecting and modifying BitTorrent metafiles";
+    description = "CLI tool for creating, inspecting and modifying BitTorrent metafiles";
     homepage = "https://github.com/fbdtemme/torrenttools";
     license = licenses.mit;
     maintainers = with maintainers; [ azahi ];
diff --git a/pkgs/tools/misc/trash-cli/default.nix b/pkgs/tools/misc/trash-cli/default.nix
index 7f89f7a12cdee..e807bff429d99 100644
--- a/pkgs/tools/misc/trash-cli/default.nix
+++ b/pkgs/tools/misc/trash-cli/default.nix
@@ -1,14 +1,14 @@
-{ lib, fetchFromGitHub, installShellFiles, python3Packages }:
+{ lib, fetchFromGitHub, installShellFiles, nix-update-script, python3Packages }:
 
 python3Packages.buildPythonApplication rec {
   pname = "trash-cli";
-  version = "0.24.4.17";
+  version = "0.24.5.26";
 
   src = fetchFromGitHub {
     owner = "andreafrancia";
     repo = "trash-cli";
     rev = version;
-    hash = "sha256-pXDqn+QuhTE12zXq6A4GSGSCtYJ6hBahv2p9aYQXxaI=";
+    hash = "sha256-ltuMnxtG4jTTSZd6ZHWl8wI0oQMMFqW0HAPetZMfGtc=";
   };
 
   propagatedBuildInputs = with python3Packages; [ psutil six ];
@@ -56,6 +56,8 @@ python3Packages.buildPythonApplication rec {
     done
   '';
 
+  passthru.updateScript = nix-update-script { };
+
   meta = with lib; {
     homepage = "https://github.com/andreafrancia/trash-cli";
     description = "Command line interface to the freedesktop.org trashcan";
diff --git a/pkgs/tools/misc/trashy/default.nix b/pkgs/tools/misc/trashy/default.nix
index cc985b8f3b35e..f9cfdd6127618 100644
--- a/pkgs/tools/misc/trashy/default.nix
+++ b/pkgs/tools/misc/trashy/default.nix
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A simple, fast, and featureful alternative to rm and trash-cli";
+    description = "Simple, fast, and featureful alternative to rm and trash-cli";
     homepage = "https://github.com/oberblastmeister/trashy";
     changelog = "https://github.com/oberblastmeister/trashy/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/pkgs/tools/misc/trillian/default.nix b/pkgs/tools/misc/trillian/default.nix
index f52c8f518dd73..2224adec80446 100644
--- a/pkgs/tools/misc/trillian/default.nix
+++ b/pkgs/tools/misc/trillian/default.nix
@@ -25,7 +25,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/google/trillian";
-    description = "A transparent, highly scalable and cryptographically verifiable data store";
+    description = "Transparent, highly scalable and cryptographically verifiable data store";
     license = [ licenses.asl20 ];
     maintainers = [ maintainers.adisbladis ];
   };
diff --git a/pkgs/tools/misc/ttfautohint/default.nix b/pkgs/tools/misc/ttfautohint/default.nix
index 14572d12a781d..5b068de2ddd7c 100644
--- a/pkgs/tools/misc/ttfautohint/default.nix
+++ b/pkgs/tools/misc/ttfautohint/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   dontWrapQtApps = true;
 
   meta = with lib; {
-    description = "An automatic hinter for TrueType fonts";
+    description = "Automatic hinter for TrueType fonts";
     mainProgram = "ttfautohint";
     longDescription = ''
       A library and two programs which take a TrueType font as the
diff --git a/pkgs/tools/misc/ttyplot/default.nix b/pkgs/tools/misc/ttyplot/default.nix
index 64b9b7cddfab7..d9f4ac565514e 100644
--- a/pkgs/tools/misc/ttyplot/default.nix
+++ b/pkgs/tools/misc/ttyplot/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ttyplot";
-  version = "1.6.4";
+  version = "1.6.5";
 
   src = fetchFromGitHub {
     owner = "tenox7";
     repo = "ttyplot";
     rev = version;
-    hash = "sha256-yxAFqi3TgiKiZYgR891ahkwUqZLk/JDsjujOYmBjUtk=";
+    hash = "sha256-DLFEnEo+EQuq4ziqo9qfyHGD1Zosk9Kb/80QjnI2aXk=";
   };
 
   nativeBuildInputs = [
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "A simple general purpose plotting utility for tty with data input from stdin";
+    description = "Simple general purpose plotting utility for tty with data input from stdin";
     homepage = "https://github.com/tenox7/ttyplot";
     license = licenses.asl20;
     platforms = platforms.all;
diff --git a/pkgs/tools/misc/twm/default.nix b/pkgs/tools/misc/twm/default.nix
index 02f1f011a99c7..213378e41f051 100644
--- a/pkgs/tools/misc/twm/default.nix
+++ b/pkgs/tools/misc/twm/default.nix
@@ -6,24 +6,35 @@
 , pkg-config
 , Security
 , nix-update-script
+, installShellFiles
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "twm";
-  version = "0.9.1";
+  version = "0.10.2";
 
   src = fetchFromGitHub {
     owner = "vinnymeller";
     repo = "twm";
-    rev = "v${version}";
-    hash = "sha256-1hRGcvUGHO5ENgI3tdT46736ODN8QZ6vg+Y1y2XeuAA=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-qOOEeaxae7nYbvNzl3BEZkdjO69lgtGrrLS5Q7akN9U=";
   };
 
-  cargoHash = "sha256-iJB+7+1tFT/tKvXlxaaW3QJHjWNZmCVIEXwtrSei/Do=";
+  cargoHash = "sha256-gJ5go9V8c97pQZICUD1ksLJhOyJXyVXAWssH3fhrRVQ=";
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config installShellFiles ];
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
 
+  postInstall = ''
+    installShellCompletion --cmd twm \
+      --bash <($out/bin/twm --print-bash-completion) \
+      --zsh <($out/bin/twm --print-zsh-completion) \
+      --fish <($out/bin/twm --print-fish-completion)
+
+    $out/bin/twm --print-man > twm.1
+    installManPage twm.1
+  '';
+
   passthru.updateScript = nix-update-script { };
 
   meta = {
diff --git a/pkgs/tools/misc/twspace-dl/default.nix b/pkgs/tools/misc/twspace-dl/default.nix
index a9d86a18c66b3..73a0129fe83fa 100644
--- a/pkgs/tools/misc/twspace-dl/default.nix
+++ b/pkgs/tools/misc/twspace-dl/default.nix
@@ -24,7 +24,7 @@ python3Packages.buildPythonApplication rec {
   pythonImportsCheck = [ "twspace_dl" ];
 
   meta = with lib; {
-    description = "A python module to download twitter spaces";
+    description = "Python module to download twitter spaces";
     homepage = "https://github.com/HoloArchivists/twspace-dl";
     changelog = "https://github.com/HoloArchivists/twspace-dl/releases/tag/${version}";
     license = licenses.gpl2Only;
diff --git a/pkgs/tools/misc/tz/default.nix b/pkgs/tools/misc/tz/default.nix
index 4059125353f71..c883058a725ec 100644
--- a/pkgs/tools/misc/tz/default.nix
+++ b/pkgs/tools/misc/tz/default.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
   vendorHash = "sha256-lcCra4LyebkmelvBs0Dd2mn6R64Q5MaUWc5AP8V9pec=";
 
   meta = with lib; {
-    description = "A time zone helper";
+    description = "Time zone helper";
     homepage = "https://github.com/oz/tz";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ siraben ];
diff --git a/pkgs/tools/misc/uair/default.nix b/pkgs/tools/misc/uair/default.nix
index 5d154ef82d80e..47c4d7631da29 100644
--- a/pkgs/tools/misc/uair/default.nix
+++ b/pkgs/tools/misc/uair/default.nix
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "An extensible pomodoro timer";
+    description = "Extensible pomodoro timer";
     homepage = "https://github.com/metent/uair";
     license = licenses.mit;
     maintainers = with maintainers; [ thled ];
diff --git a/pkgs/tools/misc/ugs/default.nix b/pkgs/tools/misc/ugs/default.nix
index cb1033123df19..05fb77ac15735 100644
--- a/pkgs/tools/misc/ugs/default.nix
+++ b/pkgs/tools/misc/ugs/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   desktopItems = [ desktopItem ];
 
   meta = with lib; {
-    description = "A cross-platform G-Code sender for GRBL, Smoothieware, TinyG and G2core";
+    description = "Cross-platform G-Code sender for GRBL, Smoothieware, TinyG and G2core";
     homepage = "https://github.com/winder/Universal-G-Code-Sender";
     maintainers = with maintainers; [ matthewcroughan ];
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
diff --git a/pkgs/tools/misc/ugtrain/default.nix b/pkgs/tools/misc/ugtrain/default.nix
index e92170ad595a6..868700d642996 100644
--- a/pkgs/tools/misc/ugtrain/default.nix
+++ b/pkgs/tools/misc/ugtrain/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/ugtrain/ugtrain";
-    description = "The Universal Elite Game Trainer for CLI (Linux game trainer research project)";
+    description = "Universal Elite Game Trainer for CLI (Linux game trainer research project)";
     maintainers = with maintainers; [ mtrsk ];
     platforms = platforms.linux;
     license = licenses.gpl3Only;
diff --git a/pkgs/tools/misc/undocker/default.nix b/pkgs/tools/misc/undocker/default.nix
index 0b6fb57f710e1..fb52e019ffbc9 100644
--- a/pkgs/tools/misc/undocker/default.nix
+++ b/pkgs/tools/misc/undocker/default.nix
@@ -28,7 +28,7 @@ buildGoModule {
 
   meta = with lib; {
     homepage = "https://git.jakstys.lt/motiejus/undocker";
-    description = "A CLI tool to convert a Docker image to a flattened rootfs tarball";
+    description = "CLI tool to convert a Docker image to a flattened rootfs tarball";
     license = licenses.asl20;
     maintainers = with maintainers; [ jordanisaacs motiejus ];
     mainProgram = "undocker";
diff --git a/pkgs/tools/misc/unparam/default.nix b/pkgs/tools/misc/unparam/default.nix
index 6578f08c59aec..535617b1f12ea 100644
--- a/pkgs/tools/misc/unparam/default.nix
+++ b/pkgs/tools/misc/unparam/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "unparam";
-  version = "unstable-2023-03-12";
+  version = "0-unstable-2024-05-28";
 
   src = fetchFromGitHub {
     owner = "mvdan";
     repo = "unparam";
-    rev = "e84e2d14e3b88193890ff95d72ecb81312f36589";
-    sha256 = "sha256-kbEdOqX/p/FrNfWQ2WjXX+lERprSV2EI9l+kapHuFi4=";
+    rev = "8a5130ca722ffad18c95cc467b561f1668b9b0d2";
+    hash = "sha256-CYCXTriGUd4bNY6ZPfkX4puE1imcqYHnX1SXVdnXPGM=";
   };
 
-  vendorHash = "sha256-gEZFAMcr1okqG2IXcS3hDzZKMINohd2JzxezGbzyeBE=";
+  vendorHash = "sha256-2lNC4V1WQkJdkagIlBu6tj4SA4KJKstHXc+B4emKu6s=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/tools/misc/upower-notify/default.nix b/pkgs/tools/misc/upower-notify/default.nix
index 8033a91ecf51a..205735ae01382 100644
--- a/pkgs/tools/misc/upower-notify/default.nix
+++ b/pkgs/tools/misc/upower-notify/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, fetchpatch }:
 
 # To use upower-notify, the maintainer suggests adding something like this to your configuration.nix:
 #
@@ -6,20 +6,27 @@
 #   ${pkgs.dunst}/bin/dunst -shrink -geometry 0x0-50-50 -key space & # ...if don't already have a dbus notification display app
 #   (sleep 3; exec ${pkgs.yeshup}/bin/yeshup ${pkgs.go-upower-notify}/bin/upower-notify) &
 # '';
-buildGoPackage rec {
+buildGoModule {
   pname = "upower-notify";
-  version = "unstable-2016-03-10";
-
-  goPackagePath = "github.com/omeid/upower-notify";
+  version = "0-unstable-2019-01-06";
 
   src = fetchFromGitHub {
     owner = "omeid";
     repo = "upower-notify";
-    rev = "14c581e683a7e90ec9fa6d409413c16599a5323c";
-    sha256 = "16zlvn53p9m10ph8n9gps51fkkvl6sf4afdzni6azk05j0ng49jw";
+    rev = "7013b0d4d2687e03554b1287e566dc8979896ea5";
+    sha256 = "sha256-8kGMeWIyM6ML1ffQ6L+SNzuBb7e5Y5I5QKMkyEjSVEA=";
   };
 
-  goDeps = ./deps.nix;
+  patches = [
+    # Migrate to Go module
+    (fetchpatch {
+      url = "https://github.com/omeid/upower-notify/commit/dff8ad7e33e5b0cf148e73c6ea0c358da72006ed.patch";
+      hash = "sha256-zPSryo6f+6QGgjOkC3W1fPIbZ3FD6S/rAuBJXHWqjZg=";
+    })
+  ];
+
+  vendorHash = "sha256-58zK6t3rb+19ilaQaNgsMVFQBYKPIV40ww8klrGbpnw=";
+  proxyVendor = true;
 
   meta = with lib; {
     description = "simple tool to give you Desktop Notifications about your battery";
diff --git a/pkgs/tools/misc/upower-notify/deps.nix b/pkgs/tools/misc/upower-notify/deps.nix
deleted file mode 100644
index 8a729857b8191..0000000000000
--- a/pkgs/tools/misc/upower-notify/deps.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-[
-  {
-    goPackagePath = "github.com/godbus/dbus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/godbus/dbus";
-      rev = "32c6cc29c14570de4cf6d7e7737d68fb2d01ad15";
-      sha256 = "0v401f761l88yapiaw23pxvxviqrwl2r2vfd6lq02044i7x4i5r3";
-    };
-  }
-]
diff --git a/pkgs/tools/misc/urlencode/default.nix b/pkgs/tools/misc/urlencode/default.nix
index 6b8097a6b5278..b61b8a37c2e76 100644
--- a/pkgs/tools/misc/urlencode/default.nix
+++ b/pkgs/tools/misc/urlencode/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "sha256-UPw+/wVOEM+kciOr70P+gdMCxtCKQ/SXsNAWA44v4v8=";
 
   meta = with lib; {
-    description = "A CLI utility for URL-encoding or -decoding strings";
+    description = "CLI utility for URL-encoding or -decoding strings";
     homepage = "https://github.com/dead10ck/urlencode";
     license = licenses.mit;
     maintainers = with maintainers; [ l0b0 ];
diff --git a/pkgs/tools/misc/usbimager/default.nix b/pkgs/tools/misc/usbimager/default.nix
index a872fb9a74c49..2ff1c0b415e77 100644
--- a/pkgs/tools/misc/usbimager/default.nix
+++ b/pkgs/tools/misc/usbimager/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
     ++ lib.optional withUdisks "USE_UDISKS2=yes";
 
   meta = with lib; {
-    description = "A very minimal GUI app that can write compressed disk images to USB drives";
+    description = "Very minimal GUI app that can write compressed disk images to USB drives";
     homepage = "https://gitlab.com/bztsrc/usbimager";
     license = licenses.mit;
     maintainers = with maintainers; [ vdot0x23 ];
diff --git a/pkgs/tools/misc/usbmuxd/default.nix b/pkgs/tools/misc/usbmuxd/default.nix
index 2cec5d7d77af2..6901767c9cf8a 100644
--- a/pkgs/tools/misc/usbmuxd/default.nix
+++ b/pkgs/tools/misc/usbmuxd/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/libimobiledevice/usbmuxd";
-    description = "A socket daemon to multiplex connections from and to iOS devices";
+    description = "Socket daemon to multiplex connections from and to iOS devices";
     longDescription = ''
       usbmuxd stands for "USB multiplexing daemon". This daemon is in charge of
       multiplexing connections over USB to an iOS device. To users, it means
diff --git a/pkgs/tools/misc/usbmuxd2/default.nix b/pkgs/tools/misc/usbmuxd2/default.nix
index 2eee1bb71324c..e4674eb386f15 100644
--- a/pkgs/tools/misc/usbmuxd2/default.nix
+++ b/pkgs/tools/misc/usbmuxd2/default.nix
@@ -78,7 +78,7 @@ clangStdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/tihmstar/usbmuxd2";
-    description = "A socket daemon to multiplex connections from and to iOS devices";
+    description = "Socket daemon to multiplex connections from and to iOS devices";
     license = licenses.lgpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ onny ];
diff --git a/pkgs/tools/misc/uudeview/default.nix b/pkgs/tools/misc/uudeview/default.nix
index 6875e6f123432..3ce22f74c4de7 100644
--- a/pkgs/tools/misc/uudeview/default.nix
+++ b/pkgs/tools/misc/uudeview/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "The Nice and Friendly Decoder";
+    description = "Nice and Friendly Decoder";
     homepage = "http://www.fpx.de/fp/Software/UUDeview/";
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ woffs ];
diff --git a/pkgs/tools/misc/uwufetch/default.nix b/pkgs/tools/misc/uwufetch/default.nix
index d0ae239d9ec2f..4dba7dac8038e 100644
--- a/pkgs/tools/misc/uwufetch/default.nix
+++ b/pkgs/tools/misc/uwufetch/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A meme system info tool for Linux";
+    description = "Meme system info tool for Linux";
     homepage = "https://github.com/TheDarkBug/uwufetch";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/pkgs/tools/misc/valeronoi/default.nix b/pkgs/tools/misc/valeronoi/default.nix
index b27fe3e499a31..2f4e1a426f253 100644
--- a/pkgs/tools/misc/valeronoi/default.nix
+++ b/pkgs/tools/misc/valeronoi/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/ccoors/Valeronoi/";
-    description = "A WiFi mapping companion app for Valetudo";
+    description = "WiFi mapping companion app for Valetudo";
     license = licenses.gpl3Only;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ nova-madeline maeve ];
diff --git a/pkgs/tools/misc/vector/Cargo.lock b/pkgs/tools/misc/vector/Cargo.lock
index 4362aedcf6158..dfccefda9e01b 100644
--- a/pkgs/tools/misc/vector/Cargo.lock
+++ b/pkgs/tools/misc/vector/Cargo.lock
@@ -66,7 +66,7 @@ version = "0.7.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd"
 dependencies = [
- "getrandom 0.2.14",
+ "getrandom 0.2.15",
  "once_cell",
  "version_check",
 ]
@@ -78,7 +78,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
 dependencies = [
  "cfg-if",
- "getrandom 0.2.14",
+ "getrandom 0.2.15",
  "once_cell",
  "version_check",
  "zerocopy",
@@ -94,6 +94,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "alloc-no-stdlib"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
+
+[[package]]
+name = "alloc-stdlib"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
+dependencies = [
+ "alloc-no-stdlib",
+]
+
+[[package]]
 name = "allocator-api2"
 version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -227,9 +242,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.82"
+version = "1.0.86"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519"
+checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
 
 [[package]]
 name = "apache-avro"
@@ -359,10 +374,11 @@ dependencies = [
 
 [[package]]
 name = "async-compression"
-version = "0.4.9"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e9eabd7a98fe442131a17c316bd9349c43695e49e730c3c8e12cfb5f4da2693"
+checksum = "cd066d0b4ef8ecb03a55319dc13aa6910616d0f44008a045bb1835af830abff5"
 dependencies = [
+ "brotli",
  "flate2",
  "futures-core",
  "memchr",
@@ -426,21 +442,21 @@ dependencies = [
 
 [[package]]
 name = "async-graphql"
-version = "7.0.3"
+version = "7.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "261fa27d5bff5afdf7beff291b3bc73f99d1529804c70e51b0fbc51e70b1c6a9"
+checksum = "bf338d20ba5bab309f55ce8df95d65ee19446f7737f06f4a64593ab2c6b546ad"
 dependencies = [
  "async-graphql-derive",
  "async-graphql-parser",
  "async-graphql-value",
  "async-stream",
  "async-trait",
- "base64 0.21.7",
+ "base64 0.22.1",
  "bytes 1.6.0",
  "chrono",
  "fnv",
  "futures-util",
- "http 1.0.0",
+ "http 1.1.0",
  "indexmap 2.2.6",
  "mime",
  "multer",
@@ -457,26 +473,26 @@ dependencies = [
 
 [[package]]
 name = "async-graphql-derive"
-version = "7.0.3"
+version = "7.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3188809947798ea6db736715a60cf645ba3b87ea031c710130e1476b48e45967"
+checksum = "fc51fd6b7102acda72bc94e8ae1543844d5688ff394a6cf7c21f2a07fe2d64e4"
 dependencies = [
  "Inflector",
  "async-graphql-parser",
  "darling 0.20.8",
- "proc-macro-crate 1.3.1",
- "proc-macro2 1.0.81",
+ "proc-macro-crate 3.1.0",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "strum 0.26.1",
- "syn 2.0.60",
+ "strum 0.26.2",
+ "syn 2.0.66",
  "thiserror",
 ]
 
 [[package]]
 name = "async-graphql-parser"
-version = "7.0.3"
+version = "7.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4e65a0b83027f35b2a5d9728a098bc66ac394caa8191d2c65ed9eb2985cf3d8"
+checksum = "75361eefd64e39f89bead4cb45fddbaf60ddb0e7b15fb7c852b6088bcd63071f"
 dependencies = [
  "async-graphql-value",
  "pest",
@@ -486,9 +502,9 @@ dependencies = [
 
 [[package]]
 name = "async-graphql-value"
-version = "7.0.3"
+version = "7.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68e40849c29a39012d38bff87bfed431f1ed6c53fbec493294c1045d61a7ae75"
+checksum = "c1f665d2d52b41c4ed1f01c43f3ef27a2fe0af2452ed5c8bc7ac9b1a8719afaa"
 dependencies = [
  "bytes 1.6.0",
  "indexmap 2.2.6",
@@ -498,9 +514,9 @@ dependencies = [
 
 [[package]]
 name = "async-graphql-warp"
-version = "7.0.3"
+version = "7.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e901ea60bac5613a1c824da04c8e72906cf79efde5c56f657e3a4ac89624b0a5"
+checksum = "e400c0f2609939f8cec46d8137f0959a49a4a514458f2a43a4ee0b0f6eb20a36"
 dependencies = [
  "async-graphql",
  "futures-util",
@@ -560,11 +576,11 @@ dependencies = [
 
 [[package]]
 name = "async-lock"
-version = "3.0.0"
+version = "3.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45e900cdcd39bb94a14487d3f7ef92ca222162e6c7c3fe7cb3550ea75fb486ed"
+checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18"
 dependencies = [
- "event-listener 3.0.1",
+ "event-listener 5.3.1",
  "event-listener-strategy",
  "pin-project-lite",
 ]
@@ -649,9 +665,9 @@ version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -689,9 +705,9 @@ version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -706,9 +722,9 @@ version = "0.1.80"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -724,17 +740,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
 
 [[package]]
-name = "atty"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-dependencies = [
- "hermit-abi 0.1.19",
- "libc",
- "winapi",
-]
-
-[[package]]
 name = "autocfg"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1051,9 +1056,9 @@ dependencies = [
 
 [[package]]
 name = "aws-sigv4"
-version = "1.2.1"
+version = "1.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58b56f1cbe6fd4d0c2573df72868f20ab1c125ca9c9dbce17927a463433a2e57"
+checksum = "31eed8d45759b2c5fe7fd304dd70739060e9e0de509209036eabea14d0720cce"
 dependencies = [
  "aws-credential-types",
  "aws-smithy-eventstream",
@@ -1065,7 +1070,7 @@ dependencies = [
  "hex",
  "hmac",
  "http 0.2.9",
- "http 1.0.0",
+ "http 1.1.0",
  "once_cell",
  "percent-encoding",
  "sha2",
@@ -1158,9 +1163,9 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-runtime"
-version = "1.4.0"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cf64e73ef8d4dac6c933230d56d136b75b252edcf82ed36e37d603090cd7348"
+checksum = "db83b08939838d18e33b5dbaf1a0f048f28c10bd28071ab7ce6f245451855414"
 dependencies = [
  "aws-smithy-async",
  "aws-smithy-http",
@@ -1172,6 +1177,7 @@ dependencies = [
  "http 0.2.9",
  "http-body 0.4.5",
  "http-body 1.0.0",
+ "httparse",
  "hyper 0.14.28",
  "hyper-rustls 0.24.2",
  "once_cell",
@@ -1184,15 +1190,15 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-runtime-api"
-version = "1.5.0"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c19fdae6e3d5ac9cd01f2d6e6c359c5f5a3e028c2d148a8f5b90bf3399a18a7"
+checksum = "1b570ea39eb95bd32543f6e4032bce172cb6209b9bc8c83c770d08169e875afc"
 dependencies = [
  "aws-smithy-async",
  "aws-smithy-types",
  "bytes 1.6.0",
  "http 0.2.9",
- "http 1.0.0",
+ "http 1.1.0",
  "pin-project-lite",
  "tokio",
  "tracing 0.1.40",
@@ -1201,15 +1207,15 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-types"
-version = "1.1.8"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abe14dceea1e70101d38fbf2a99e6a34159477c0fb95e68e05c66bd7ae4c3729"
+checksum = "cfe321a6b21f5d8eabd0ade9c55d3d0335f3c3157fc2b3e87f05f34b539e4df5"
 dependencies = [
  "base64-simd",
  "bytes 1.6.0",
  "bytes-utils",
  "http 0.2.9",
- "http 1.0.0",
+ "http 1.1.0",
  "http-body 0.4.5",
  "http-body 1.0.0",
  "http-body-util",
@@ -1233,9 +1239,9 @@ dependencies = [
 
 [[package]]
 name = "aws-types"
-version = "1.2.0"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a43b56df2c529fe44cb4d92bd64d0479883fb9608ff62daede4df5405381814"
+checksum = "6f734808d43702a67e57d478a12e227d4d038d0b90c9005a78c87890d3805922"
 dependencies = [
  "aws-credential-types",
  "aws-smithy-async",
@@ -1303,14 +1309,14 @@ dependencies = [
  "bytes 1.6.0",
  "dyn-clone",
  "futures 0.3.30",
- "getrandom 0.2.14",
+ "getrandom 0.2.15",
  "http-types",
  "log",
  "paste",
  "pin-project",
  "quick-xml",
  "rand 0.8.5",
- "reqwest",
+ "reqwest 0.11.26",
  "rustc_version 0.4.0",
  "serde",
  "serde_json",
@@ -1325,7 +1331,7 @@ version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8bd7ea32ca7eb66ff4757f83baac702ff11d469e5de365b6bc6f79f9c25d3436"
 dependencies = [
- "async-lock 3.0.0",
+ "async-lock 3.4.0",
  "async-trait",
  "azure_core",
  "futures 0.3.30",
@@ -1388,7 +1394,7 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1"
 dependencies = [
- "getrandom 0.2.14",
+ "getrandom 0.2.15",
  "instant",
  "rand 0.8.5",
 ]
@@ -1507,12 +1513,12 @@ checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
 
 [[package]]
 name = "bitmask-enum"
-version = "2.2.3"
+version = "2.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9990737a6d5740ff51cdbbc0f0503015cb30c390f6623968281eb214a520cfc0"
+checksum = "afb15541e888071f64592c0b4364fdff21b7cb0a247f984296699351963a8721"
 dependencies = [
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -1584,7 +1590,7 @@ dependencies = [
  "futures-util",
  "hex",
  "home",
- "http 1.0.0",
+ "http 1.1.0",
  "http-body-util",
  "hyper 1.2.0",
  "hyper-named-pipe",
@@ -1640,13 +1646,34 @@ checksum = "f404657a7ea7b5249e36808dff544bc88a28f26e0ac40009f674b7a009d14be3"
 dependencies = [
  "once_cell",
  "proc-macro-crate 2.0.0",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
  "syn_derive",
 ]
 
 [[package]]
+name = "brotli"
+version = "6.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b"
+dependencies = [
+ "alloc-no-stdlib",
+ "alloc-stdlib",
+ "brotli-decompressor",
+]
+
+[[package]]
+name = "brotli-decompressor"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6221fe77a248b9117d431ad93761222e1cf8ff282d9d1d5d9f53d6299a1cf76"
+dependencies = [
+ "alloc-no-stdlib",
+ "alloc-stdlib",
+]
+
+[[package]]
 name = "bson"
 version = "2.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1712,7 +1739,7 @@ version = "0.6.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a7ec4c6f261935ad534c0c22dbef2201b45918860eb1c574b972bd213a76af61"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
  "syn 1.0.109",
 ]
@@ -1765,39 +1792,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc"
 
 [[package]]
-name = "cached"
-version = "0.50.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10a7d38ed2761b8a13ce42bc44b09d5a052b88da2f9fead624c779f31ac0729a"
-dependencies = [
- "ahash 0.8.11",
- "cached_proc_macro",
- "cached_proc_macro_types",
- "hashbrown 0.14.5",
- "instant",
- "once_cell",
- "thiserror",
-]
-
-[[package]]
-name = "cached_proc_macro"
-version = "0.21.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "771aa57f3b17da6c8bcacb187bb9ec9bc81c8160e72342e67c329e0e1651a669"
-dependencies = [
- "darling 0.20.8",
- "proc-macro2 1.0.81",
- "quote 1.0.36",
- "syn 2.0.60",
-]
-
-[[package]]
-name = "cached_proc_macro_types"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ade8366b8bd5ba243f0a58f036cc0ca8a2f069cff1a2351ef1cac6b083e16fc0"
-
-[[package]]
 name = "cargo_toml"
 version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2016,24 +2010,9 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "2.34.0"
+version = "4.5.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
-dependencies = [
- "ansi_term",
- "atty",
- "bitflags 1.3.2",
- "strsim 0.8.0",
- "textwrap",
- "unicode-width",
- "vec_map",
-]
-
-[[package]]
-name = "clap"
-version = "4.5.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0"
+checksum = "5db83dced34638ad474f39f250d7fea9598bdd239eaced1bdf45d597da0f433f"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -2045,15 +2024,15 @@ version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bb9b20c0dd58e4c2e991c8d203bbeb76c11304d1011659686b5b644bc29aa478"
 dependencies = [
- "clap 4.5.4",
+ "clap",
  "log",
 ]
 
 [[package]]
 name = "clap_builder"
-version = "4.5.2"
+version = "4.5.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
+checksum = "f7e204572485eb3fbf28f871612191521df159bc3e15a9f5064c66dba3a8c05f"
 dependencies = [
  "anstream",
  "anstyle",
@@ -2064,23 +2043,23 @@ dependencies = [
 
 [[package]]
 name = "clap_complete"
-version = "4.5.2"
+version = "4.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd79504325bf38b10165b02e89b4347300f855f273c4cb30c4a3209e6583275e"
+checksum = "d2020fa13af48afc65a9a87335bda648309ab3d154cd03c7ff95b378c7ed39c4"
 dependencies = [
- "clap 4.5.4",
+ "clap",
 ]
 
 [[package]]
 name = "clap_derive"
-version = "4.5.4"
+version = "4.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64"
+checksum = "c780290ccf4fb26629baa7a1081e68ced113f1d3ec302fa5948f1c381ebf06c6"
 dependencies = [
  "heck 0.5.0",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -2122,7 +2101,7 @@ dependencies = [
  "memchr",
  "once_cell",
  "ordered-float 4.2.0",
- "prost 0.12.4",
+ "prost 0.12.6",
  "prost-reflect",
  "regex",
  "rstest",
@@ -2227,9 +2206,9 @@ dependencies = [
 
 [[package]]
 name = "concurrent-queue"
-version = "2.3.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400"
+checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
 dependencies = [
  "crossbeam-utils",
 ]
@@ -2261,22 +2240,22 @@ dependencies = [
 
 [[package]]
 name = "console-api"
-version = "0.6.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd326812b3fd01da5bb1af7d340d0d555fd3d4b641e7f1dfcf5962a902952787"
+checksum = "a257c22cd7e487dd4a13d413beabc512c5052f0bc048db0da6a84c3d8a6142fd"
 dependencies = [
  "futures-core",
- "prost 0.12.4",
- "prost-types 0.12.4",
- "tonic",
+ "prost 0.12.6",
+ "prost-types 0.12.6",
+ "tonic 0.11.0",
  "tracing-core 0.1.32",
 ]
 
 [[package]]
 name = "console-subscriber"
-version = "0.2.0"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7481d4c57092cd1c19dd541b92bdce883de840df30aa5d03fd48a3935c01842e"
+checksum = "31c4cc54bae66f7d9188996404abdf7fdfa23034ef8e43478c8810828abad758"
 dependencies = [
  "console-api",
  "crossbeam-channel",
@@ -2284,13 +2263,14 @@ dependencies = [
  "futures-task",
  "hdrhistogram",
  "humantime",
- "prost-types 0.12.4",
+ "prost 0.12.6",
+ "prost-types 0.12.6",
  "serde",
  "serde_json",
  "thread_local",
  "tokio",
  "tokio-stream",
- "tonic",
+ "tonic 0.11.0",
  "tracing 0.1.40",
  "tracing-core 0.1.32",
  "tracing-subscriber",
@@ -2389,9 +2369,9 @@ dependencies = [
 
 [[package]]
 name = "crc32fast"
-version = "1.4.0"
+version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
+checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
 dependencies = [
  "cfg-if",
 ]
@@ -2405,7 +2385,7 @@ dependencies = [
  "anes",
  "cast",
  "ciborium",
- "clap 4.5.4",
+ "clap",
  "criterion-plot",
  "futures 0.3.30",
  "is-terminal",
@@ -2479,9 +2459,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.19"
+version = "0.8.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
 
 [[package]]
 name = "crossterm"
@@ -2606,9 +2586,9 @@ version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -2639,7 +2619,7 @@ checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610"
 dependencies = [
  "fnv",
  "ident_case",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
  "strsim 0.10.0",
  "syn 1.0.109",
@@ -2653,10 +2633,10 @@ checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f"
 dependencies = [
  "fnv",
  "ident_case",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
  "strsim 0.10.0",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -2678,7 +2658,7 @@ checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
 dependencies = [
  "darling_core 0.20.8",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -2714,15 +2694,15 @@ checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a"
 
 [[package]]
 name = "databend-client"
-version = "0.17.1"
+version = "0.18.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "123d9b08aefcdce56e2379487198c1fb8c439cedf6c31d16c3974f0f9d3e282f"
+checksum = "8afe21f4ac2e61c9360d5c1b7cce3ed4392c2a42c6c1dbb1115cc27f25f23b78"
 dependencies = [
  "async-trait",
  "log",
  "once_cell",
  "percent-encoding",
- "reqwest",
+ "reqwest 0.12.4",
  "serde",
  "serde_json",
  "tokio",
@@ -2791,7 +2771,7 @@ version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
  "syn 1.0.109",
 ]
@@ -2802,9 +2782,9 @@ version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -2814,7 +2794,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
 dependencies = [
  "convert_case 0.4.0",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
  "rustc_version 0.4.0",
  "syn 1.0.109",
@@ -2887,6 +2867,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "displaydoc"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
+dependencies = [
+ "proc-macro2 1.0.85",
+ "quote 1.0.36",
+ "syn 2.0.66",
+]
+
+[[package]]
 name = "dns-lookup"
 version = "2.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2929,6 +2920,24 @@ dependencies = [
 ]
 
 [[package]]
+name = "domain"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7eefe29e8dd614abbee51a1616654cab123c4c56850ab83f5b7f1e1f9977bf7c"
+dependencies = [
+ "bytes 1.6.0",
+ "futures-util",
+ "moka",
+ "octseq",
+ "rand 0.8.5",
+ "serde",
+ "smallvec",
+ "time",
+ "tokio",
+ "tracing 0.1.40",
+]
+
+[[package]]
 name = "duct"
 version = "0.13.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3040,9 +3049,9 @@ checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0"
 
 [[package]]
 name = "encoding_rs"
-version = "0.8.33"
+version = "0.8.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
 dependencies = [
  "cfg-if",
  "serde",
@@ -3071,7 +3080,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "21cdad81446a7f7dc43f6a77409efeb9733d2fa65553efef6018ef257c959b73"
 dependencies = [
  "heck 0.4.1",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
  "syn 1.0.109",
 ]
@@ -3083,9 +3092,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a"
 dependencies = [
  "heck 0.4.1",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -3095,29 +3104,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd"
 dependencies = [
  "once_cell",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "enumflags2"
-version = "0.7.9"
+version = "0.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d"
+checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d"
 dependencies = [
  "enumflags2_derive",
 ]
 
 [[package]]
 name = "enumflags2_derive"
-version = "0.7.9"
+version = "0.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
+checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -3217,12 +3226,23 @@ dependencies = [
 ]
 
 [[package]]
+name = "event-listener"
+version = "5.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "event-listener-strategy"
-version = "0.3.0"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d96b852f1345da36d551b9473fa1e2b1eb5c5195585c6c018118bc92a8d91160"
+checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1"
 dependencies = [
- "event-listener 3.0.1",
+ "event-listener 5.3.1",
  "pin-project-lite",
 ]
 
@@ -3524,9 +3544,9 @@ version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -3591,9 +3611,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.14"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c"
+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -3636,7 +3656,7 @@ dependencies = [
  "arc-swap",
  "futures 0.3.30",
  "log",
- "reqwest",
+ "reqwest 0.11.26",
  "serde",
  "serde_derive",
  "serde_json",
@@ -3705,7 +3725,7 @@ dependencies = [
  "graphql-parser",
  "heck 0.4.1",
  "lazy_static",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
  "serde",
  "serde_json",
@@ -3719,7 +3739,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "83febfa838f898cfa73dfaa7a8eb69ff3409021ac06ee94cfb3d622f6eeb1a97"
 dependencies = [
  "graphql_client_codegen",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "syn 1.0.109",
 ]
 
@@ -3728,12 +3748,12 @@ name = "greptime-proto"
 version = "0.1.0"
 source = "git+https://github.com/GreptimeTeam/greptime-proto.git?tag=v0.4.1#4306ab645ee55b3f7f2ad3fb7acc5820f967c1aa"
 dependencies = [
- "prost 0.12.4",
+ "prost 0.12.6",
  "serde",
  "serde_json",
  "strum 0.25.0",
  "strum_macros 0.25.3",
- "tonic",
+ "tonic 0.10.2",
  "tonic-build 0.10.2",
 ]
 
@@ -3748,12 +3768,12 @@ dependencies = [
  "futures-util",
  "greptime-proto",
  "parking_lot",
- "prost 0.12.4",
+ "prost 0.12.6",
  "rand 0.8.5",
  "snafu 0.7.5",
  "tokio",
  "tokio-stream",
- "tonic",
+ "tonic 0.10.2",
  "tonic-build 0.9.2",
  "tower",
 ]
@@ -3800,16 +3820,16 @@ dependencies = [
 
 [[package]]
 name = "h2"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "816ec7294445779408f36fe57bc5b7fc1cf59664059096c65f905c1c61f58069"
+checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab"
 dependencies = [
+ "atomic-waker",
  "bytes 1.6.0",
  "fnv",
  "futures-core",
  "futures-sink",
- "futures-util",
- "http 1.0.0",
+ "http 1.1.0",
  "indexmap 2.2.6",
  "slab",
  "tokio",
@@ -3897,15 +3917,6 @@ dependencies = [
 
 [[package]]
 name = "heck"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
-dependencies = [
- "unicode-segmentation",
-]
-
-[[package]]
-name = "heck"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
@@ -4042,15 +4053,6 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hermit-abi"
 version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
@@ -4147,9 +4149,9 @@ dependencies = [
 
 [[package]]
 name = "http"
-version = "1.0.0"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea"
+checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
 dependencies = [
  "bytes 1.6.0",
  "fnv",
@@ -4174,7 +4176,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
 dependencies = [
  "bytes 1.6.0",
- "http 1.0.0",
+ "http 1.1.0",
 ]
 
 [[package]]
@@ -4185,7 +4187,7 @@ checksum = "41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840"
 dependencies = [
  "bytes 1.6.0",
  "futures-util",
- "http 1.0.0",
+ "http 1.1.0",
  "http-body 1.0.0",
  "pin-project-lite",
 ]
@@ -4278,7 +4280,7 @@ dependencies = [
  "bytes 1.6.0",
  "futures-channel",
  "futures-util",
- "http 1.0.0",
+ "http 1.1.0",
  "http-body 1.0.0",
  "httparse",
  "itoa",
@@ -4361,7 +4363,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c"
 dependencies = [
  "futures-util",
- "http 1.0.0",
+ "http 1.1.0",
  "hyper 1.2.0",
  "hyper-util",
  "log",
@@ -4407,7 +4409,7 @@ dependencies = [
  "bytes 1.6.0",
  "futures-channel",
  "futures-util",
- "http 1.0.0",
+ "http 1.1.0",
  "http-body 1.0.0",
  "hyper 1.2.0",
  "pin-project-lite",
@@ -4457,6 +4459,124 @@ dependencies = [
 ]
 
 [[package]]
+name = "icu_collections"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526"
+dependencies = [
+ "displaydoc",
+ "yoke",
+ "zerofrom",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_locid"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637"
+dependencies = [
+ "displaydoc",
+ "litemap",
+ "tinystr",
+ "writeable",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_locid_transform"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e"
+dependencies = [
+ "displaydoc",
+ "icu_locid",
+ "icu_locid_transform_data",
+ "icu_provider",
+ "tinystr",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_locid_transform_data"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e"
+
+[[package]]
+name = "icu_normalizer"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f"
+dependencies = [
+ "displaydoc",
+ "icu_collections",
+ "icu_normalizer_data",
+ "icu_properties",
+ "icu_provider",
+ "smallvec",
+ "utf16_iter",
+ "utf8_iter",
+ "write16",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_normalizer_data"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516"
+
+[[package]]
+name = "icu_properties"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f8ac670d7422d7f76b32e17a5db556510825b29ec9154f235977c9caba61036"
+dependencies = [
+ "displaydoc",
+ "icu_collections",
+ "icu_locid_transform",
+ "icu_properties_data",
+ "icu_provider",
+ "tinystr",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_properties_data"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569"
+
+[[package]]
+name = "icu_provider"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9"
+dependencies = [
+ "displaydoc",
+ "icu_locid",
+ "icu_provider_macros",
+ "stable_deref_trait",
+ "tinystr",
+ "writeable",
+ "yoke",
+ "zerofrom",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_provider_macros"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6"
+dependencies = [
+ "proc-macro2 1.0.85",
+ "quote 1.0.36",
+ "syn 2.0.66",
+]
+
+[[package]]
 name = "ident_case"
 version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4475,6 +4595,16 @@ dependencies = [
 
 [[package]]
 name = "idna"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "idna"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
@@ -4494,6 +4624,18 @@ dependencies = [
 ]
 
 [[package]]
+name = "idna"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4716a3a0933a1d01c2f72450e89596eb51dd34ef3c211ccd875acdf1f8fe47ed"
+dependencies = [
+ "icu_normalizer",
+ "icu_properties",
+ "smallvec",
+ "utf8_iter",
+]
+
+[[package]]
 name = "indexmap"
 version = "1.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4543,9 +4685,9 @@ checksum = "64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac"
 
 [[package]]
 name = "infer"
-version = "0.15.0"
+version = "0.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb33622da908807a06f9513c19b3c1ad50fab3e4137d82a78107d502075aa199"
+checksum = "bc150e5ce2330295b8616ce0e3f53250e53af31759a9dbedad1621ba29151847"
 
 [[package]]
 name = "inotify"
@@ -4598,7 +4740,7 @@ version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
 dependencies = [
- "hermit-abi 0.3.3",
+ "hermit-abi",
  "libc",
  "windows-sys 0.48.0",
 ]
@@ -4621,7 +4763,7 @@ dependencies = [
  "socket2 0.5.7",
  "widestring 1.0.2",
  "windows-sys 0.48.0",
- "winreg",
+ "winreg 0.50.0",
 ]
 
 [[package]]
@@ -4648,7 +4790,7 @@ version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
 dependencies = [
- "hermit-abi 0.3.3",
+ "hermit-abi",
  "rustix 0.38.31",
  "windows-sys 0.48.0",
 ]
@@ -4687,6 +4829,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "itertools"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
+dependencies = [
+ "either",
+]
+
+[[package]]
 name = "itoa"
 version = "1.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4766,7 +4917,7 @@ dependencies = [
  "k8s-test-framework",
  "rand 0.8.5",
  "regex",
- "reqwest",
+ "reqwest 0.11.26",
  "serde_json",
  "tokio",
  "tracing 0.1.40",
@@ -5002,9 +5153,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.154"
+version = "0.2.155"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346"
+checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
 
 [[package]]
 name = "libflate"
@@ -5087,6 +5238,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "litemap"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704"
+
+[[package]]
 name = "lock_api"
 version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5120,9 +5277,9 @@ version = "0.1.0"
 dependencies = [
  "bytes 1.6.0",
  "chrono",
- "prost 0.12.4",
- "prost-build 0.12.4",
- "prost-types 0.12.4",
+ "prost 0.12.6",
+ "prost-build 0.12.6",
+ "prost-types 0.12.6",
  "snap",
 ]
 
@@ -5334,9 +5491,9 @@ version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ddece26afd34c31585c74a4db0630c376df271c285d682d1e55012197830b6df"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -5419,9 +5576,9 @@ dependencies = [
 
 [[package]]
 name = "mlua"
-version = "0.9.7"
+version = "0.9.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d9bed6bce296397a9d6a86f995dd10a547a4e6949825d45225906bdcbfe7367"
+checksum = "e340c022072f3208a4105458286f4985ba5355bfe243c3073afe45cbe9ecf491"
 dependencies = [
  "bstr 1.9.1",
  "mlua-sys",
@@ -5433,9 +5590,9 @@ dependencies = [
 
 [[package]]
 name = "mlua-sys"
-version = "0.5.1"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2847b42764435201d8cbee1f517edb79c4cca4181877b90047587c89e1b7bce4"
+checksum = "5552e7e4e22ada0463dfdeee6caf6dc057a189fdc83136408a8f950a5e5c5540"
 dependencies = [
  "cc",
  "cfg-if",
@@ -5446,24 +5603,48 @@ dependencies = [
 
 [[package]]
 name = "mlua_derive"
-version = "0.9.2"
+version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aaade5f94e5829db58791664ba98f35fea6a3ffebc783becb51dc97c7a21abee"
+checksum = "09697a6cec88e7f58a02c7ab5c18c611c6907c8654613df9cc0192658a4fb859"
 dependencies = [
  "itertools 0.12.1",
  "once_cell",
  "proc-macro-error",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
  "regex",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "mock_instant"
-version = "0.4.0"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c356644192565524790740e4075307c2cfc26d04d2543fb8e3ab9ef43a115ec"
+checksum = "cdcebb6db83796481097dedc7747809243cc81d9ed83e6a938b76d4ea0b249cf"
+
+[[package]]
+name = "moka"
+version = "0.12.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e0d88686dc561d743b40de8269b26eaf0dc58781bde087b0984646602021d08"
+dependencies = [
+ "async-lock 3.4.0",
+ "async-trait",
+ "crossbeam-channel",
+ "crossbeam-epoch",
+ "crossbeam-utils",
+ "event-listener 5.3.1",
+ "futures-util",
+ "once_cell",
+ "parking_lot",
+ "quanta 0.12.3",
+ "rustc_version 0.4.0",
+ "smallvec",
+ "tagptr",
+ "thiserror",
+ "triomphe",
+ "uuid",
+]
 
 [[package]]
 name = "mongodb"
@@ -5509,7 +5690,7 @@ dependencies = [
  "trust-dns-resolver",
  "typed-builder 0.10.0",
  "uuid",
- "webpki-roots",
+ "webpki-roots 0.25.2",
 ]
 
 [[package]]
@@ -5521,7 +5702,7 @@ dependencies = [
  "bytes 1.6.0",
  "encoding_rs",
  "futures-util",
- "http 1.0.0",
+ "http 1.1.0",
  "httparse",
  "log",
  "memchr",
@@ -5650,7 +5831,7 @@ dependencies = [
  "data-encoding",
  "ed25519",
  "ed25519-dalek",
- "getrandom 0.2.14",
+ "getrandom 0.2.15",
  "log",
  "rand 0.8.5",
  "signatory",
@@ -5665,7 +5846,7 @@ dependencies = [
  "data-encoding",
  "ed25519",
  "ed25519-dalek",
- "getrandom 0.2.14",
+ "getrandom 0.2.15",
  "log",
  "rand 0.8.5",
  "signatory",
@@ -5839,9 +6020,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.18"
+version = "0.2.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
 dependencies = [
  "autocfg",
  "libm",
@@ -5853,7 +6034,7 @@ version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
- "hermit-abi 0.3.3",
+ "hermit-abi",
  "libc",
 ]
 
@@ -5891,7 +6072,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799"
 dependencies = [
  "proc-macro-crate 1.3.1",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
  "syn 1.0.109",
 ]
@@ -5903,9 +6084,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6"
 dependencies = [
  "proc-macro-crate 1.3.1",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -5914,10 +6095,10 @@ version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b"
 dependencies = [
- "proc-macro-crate 2.0.0",
- "proc-macro2 1.0.81",
+ "proc-macro-crate 3.1.0",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -5943,10 +6124,10 @@ checksum = "c38841cdd844847e3e7c8d29cef9dcfed8877f8f56f9071f77843ecf3baf937f"
 dependencies = [
  "base64 0.13.1",
  "chrono",
- "getrandom 0.2.14",
+ "getrandom 0.2.15",
  "http 0.2.9",
  "rand 0.8.5",
- "reqwest",
+ "reqwest 0.11.26",
  "serde",
  "serde_json",
  "serde_path_to_error",
@@ -5974,6 +6155,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "octseq"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ed2eaec452d98ccc1c615dd843fd039d9445f2fb4da114ee7e6af5fcb68be98"
+dependencies = [
+ "bytes 1.6.0",
+ "serde",
+ "smallvec",
+]
+
+[[package]]
 name = "ofb"
 version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6036,14 +6228,14 @@ dependencies = [
  "chrono",
  "flagset",
  "futures 0.3.30",
- "getrandom 0.2.14",
+ "getrandom 0.2.15",
  "http 0.2.9",
  "log",
  "md-5",
  "once_cell",
  "percent-encoding",
  "quick-xml",
- "reqwest",
+ "reqwest 0.11.26",
  "serde",
  "serde_json",
  "tokio",
@@ -6103,9 +6295,9 @@ version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -6116,9 +6308,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-src"
-version = "300.2.3+3.2.1"
+version = "300.3.1+3.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843"
+checksum = "7259953d42a81bf137fbbd73bd30a8e1914d6dce43c2b90ed575783a22608b91"
 dependencies = [
  "cc",
 ]
@@ -6144,9 +6336,9 @@ dependencies = [
  "chrono",
  "hex",
  "ordered-float 4.2.0",
- "prost 0.12.4",
- "prost-build 0.12.4",
- "tonic",
+ "prost 0.12.6",
+ "prost-build 0.12.6",
+ "tonic 0.10.2",
  "tonic-build 0.10.2",
  "vector-core",
  "vector-lookup",
@@ -6220,6 +6412,12 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
 
 [[package]]
 name = "owo-colors"
+version = "3.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f"
+
+[[package]]
+name = "owo-colors"
 version = "4.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "caff54706df99d2a78a5a4e3455ff45448d81ef1bb63c22cd14052ca0e993a3f"
@@ -6268,9 +6466,9 @@ checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
 
 [[package]]
 name = "parking_lot"
-version = "0.12.2"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb"
+checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
 dependencies = [
  "lock_api",
  "parking_lot_core",
@@ -6306,9 +6504,9 @@ checksum = "13242a5ce97f39a8095d03c8b273e91d09f2690c0b7d69a2af844941115bab24"
 
 [[package]]
 name = "paste"
-version = "1.0.14"
+version = "1.0.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
+checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
 
 [[package]]
 name = "pbkdf2"
@@ -6361,9 +6559,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "pest"
-version = "2.7.7"
+version = "2.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "219c0dcc30b6a27553f9cc242972b67f75b60eb0db71f0b5462f38b058c41546"
+checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8"
 dependencies = [
  "memchr",
  "thiserror",
@@ -6388,9 +6586,9 @@ checksum = "1381c29a877c6d34b8c176e734f35d7f7f5b3adaefe940cb4d1bb7af94678e2e"
 dependencies = [
  "pest",
  "pest_meta",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -6476,16 +6674,16 @@ version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.13"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
 
 [[package]]
 name = "pin-utils"
@@ -6728,14 +6926,13 @@ dependencies = [
 
 [[package]]
 name = "prettydiff"
-version = "0.6.4"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ff1fec61082821f8236cf6c0c14e8172b62ce8a72a0eedc30d3b247bb68dc11"
+checksum = "abec3fb083c10660b3854367697da94c674e9e82aa7511014dc958beeb7215e9"
 dependencies = [
- "ansi_term",
+ "owo-colors 3.5.0",
  "pad",
  "prettytable-rs",
- "structopt",
 ]
 
 [[package]]
@@ -6744,7 +6941,7 @@ version = "0.1.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "syn 1.0.109",
 ]
 
@@ -6754,8 +6951,8 @@ version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d"
 dependencies = [
- "proc-macro2 1.0.81",
- "syn 2.0.60",
+ "proc-macro2 1.0.85",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -6801,13 +6998,22 @@ dependencies = [
 ]
 
 [[package]]
+name = "proc-macro-crate"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
+dependencies = [
+ "toml_edit 0.21.1",
+]
+
+[[package]]
 name = "proc-macro-error"
 version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
 dependencies = [
  "proc-macro-error-attr",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
  "syn 1.0.109",
  "version_check",
@@ -6819,7 +7025,7 @@ version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
  "version_check",
 ]
@@ -6847,9 +7053,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.81"
+version = "1.0.85"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba"
+checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23"
 dependencies = [
  "unicode-ident",
 ]
@@ -6861,9 +7067,9 @@ dependencies = [
  "indexmap 2.2.6",
  "nom",
  "num_enum 0.7.2",
- "prost 0.12.4",
- "prost-build 0.12.4",
- "prost-types 0.12.4",
+ "prost 0.12.6",
+ "prost-build 0.12.6",
+ "prost-types 0.12.6",
  "snafu 0.7.5",
  "vector-common",
 ]
@@ -6894,7 +7100,7 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9cf16337405ca084e9c78985114633b6827711d22b9e6ef6c6c0d665eb3f0b6e"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
  "syn 1.0.109",
 ]
@@ -6911,12 +7117,12 @@ dependencies = [
 
 [[package]]
 name = "prost"
-version = "0.12.4"
+version = "0.12.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0f5d036824e4761737860779c906171497f6d55681139d8312388f8fe398922"
+checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29"
 dependencies = [
  "bytes 1.6.0",
- "prost-derive 0.12.4",
+ "prost-derive 0.12.6",
 ]
 
 [[package]]
@@ -6943,9 +7149,9 @@ dependencies = [
 
 [[package]]
 name = "prost-build"
-version = "0.12.4"
+version = "0.12.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80b776a1b2dc779f5ee0641f8ade0125bc1298dd41a9a0c16d8bd57b42d222b1"
+checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4"
 dependencies = [
  "bytes 1.6.0",
  "heck 0.5.0",
@@ -6955,10 +7161,10 @@ dependencies = [
  "once_cell",
  "petgraph",
  "prettyplease 0.2.15",
- "prost 0.12.4",
- "prost-types 0.12.4",
+ "prost 0.12.6",
+ "prost-types 0.12.6",
  "regex",
- "syn 2.0.60",
+ "syn 2.0.66",
  "tempfile",
 ]
 
@@ -6970,22 +7176,22 @@ checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4"
 dependencies = [
  "anyhow",
  "itertools 0.10.5",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
  "syn 1.0.109",
 ]
 
 [[package]]
 name = "prost-derive"
-version = "0.12.4"
+version = "0.12.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19de2de2a00075bf566bee3bd4db014b11587e84184d3f7a791bc17f1a8e9e48"
+checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1"
 dependencies = [
  "anyhow",
  "itertools 0.12.1",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -6996,8 +7202,8 @@ checksum = "6f5eec97d5d34bdd17ad2db2219aabf46b054c6c41bd5529767c9ce55be5898f"
 dependencies = [
  "base64 0.22.1",
  "once_cell",
- "prost 0.12.4",
- "prost-types 0.12.4",
+ "prost 0.12.6",
+ "prost-types 0.12.6",
  "serde",
  "serde-value",
 ]
@@ -7013,11 +7219,11 @@ dependencies = [
 
 [[package]]
 name = "prost-types"
-version = "0.12.4"
+version = "0.12.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3235c33eb02c1f1e212abdbe34c78b264b038fb58ca612664343271e36e55ffe"
+checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0"
 dependencies = [
- "prost 0.12.4",
+ "prost 0.12.6",
 ]
 
 [[package]]
@@ -7050,16 +7256,26 @@ version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
  "syn 1.0.109",
 ]
 
 [[package]]
+name = "publicsuffix"
+version = "2.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96a8c1bda5ae1af7f99a2962e49df150414a43d62404644d98dd5c3a93d07457"
+dependencies = [
+ "idna 0.3.0",
+ "psl-types",
+]
+
+[[package]]
 name = "pulsar"
-version = "6.1.0"
+version = "6.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d21c6a837986cf25d22ac5b951c267d95808f3c830ff009c2879fff259a0268"
+checksum = "d7f3541ff84e39da334979ac4bf171e0f277f4f782603aeae65bf5795dc7275a"
 dependencies = [
  "async-trait",
  "bit-vec",
@@ -7164,7 +7380,7 @@ version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b22a693222d716a9587786f37ac3f6b4faedb5b80c23914e7303ff5a1d8016e9"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
  "syn 1.0.109",
 ]
@@ -7184,7 +7400,7 @@ version = "1.0.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
 ]
 
 [[package]]
@@ -7268,7 +7484,7 @@ version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
 dependencies = [
- "getrandom 0.2.14",
+ "getrandom 0.2.15",
 ]
 
 [[package]]
@@ -7301,21 +7517,21 @@ dependencies = [
 
 [[package]]
 name = "ratatui"
-version = "0.26.2"
+version = "0.26.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a564a852040e82671dc50a37d88f3aa83bbc690dfc6844cfe7a2591620206a80"
+checksum = "f44c9e68fd46eda15c646fbb85e1040b657a58cdc8c98db1d97a55930d991eef"
 dependencies = [
  "bitflags 2.4.1",
  "cassowary",
  "compact_str",
  "crossterm",
- "indoc",
  "itertools 0.12.1",
  "lru",
  "paste",
  "stability",
- "strum 0.26.1",
+ "strum 0.26.2",
  "unicode-segmentation",
+ "unicode-truncate",
  "unicode-width",
 ]
 
@@ -7471,16 +7687,16 @@ version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
 dependencies = [
- "getrandom 0.2.14",
+ "getrandom 0.2.15",
  "redox_syscall 0.2.16",
  "thiserror",
 ]
 
 [[package]]
 name = "regex"
-version = "1.10.4"
+version = "1.10.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -7568,7 +7784,6 @@ dependencies = [
  "js-sys",
  "log",
  "mime",
- "mime_guess",
  "native-tls",
  "once_cell",
  "percent-encoding",
@@ -7590,8 +7805,52 @@ dependencies = [
  "wasm-bindgen-futures",
  "wasm-streams",
  "web-sys",
- "webpki-roots",
- "winreg",
+ "webpki-roots 0.25.2",
+ "winreg 0.50.0",
+]
+
+[[package]]
+name = "reqwest"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10"
+dependencies = [
+ "base64 0.22.1",
+ "bytes 1.6.0",
+ "futures-core",
+ "futures-util",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "http-body-util",
+ "hyper 1.2.0",
+ "hyper-rustls 0.26.0",
+ "hyper-util",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "mime_guess",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls 0.22.4",
+ "rustls-pemfile 2.1.0",
+ "rustls-pki-types",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "sync_wrapper",
+ "tokio",
+ "tokio-rustls 0.25.0",
+ "tokio-util",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-streams",
+ "web-sys",
+ "webpki-roots 0.26.1",
+ "winreg 0.52.0",
 ]
 
 [[package]]
@@ -7627,7 +7886,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b"
 dependencies = [
  "cc",
- "getrandom 0.2.14",
+ "getrandom 0.2.15",
  "libc",
  "spin 0.9.8",
  "untrusted",
@@ -7658,7 +7917,7 @@ version = "0.7.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
  "syn 1.0.109",
 ]
@@ -7705,9 +7964,9 @@ dependencies = [
 
 [[package]]
 name = "roaring"
-version = "0.10.4"
+version = "0.10.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b26f4c25a604fcb3a1bcd96dd6ba37c93840de95de8198d94c0d571a74a804d1"
+checksum = "7699249cc2c7d71939f30868f47e9d7add0bdc030d90ee10bfd16887ff8bb1c8"
 dependencies = [
  "bytemuck",
  "byteorder",
@@ -7715,9 +7974,9 @@ dependencies = [
 
 [[package]]
 name = "roxmltree"
-version = "0.19.0"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cd14fd5e3b777a7422cca79358c57a8f6e3a703d9ac187448d0daf220c2407f"
+checksum = "6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97"
 
 [[package]]
 name = "rsa"
@@ -7741,9 +8000,9 @@ dependencies = [
 
 [[package]]
 name = "rstest"
-version = "0.19.0"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d5316d2a1479eeef1ea21e7f9ddc67c191d497abc8fc3ba2467857abbb68330"
+checksum = "9afd55a67069d6e434a95161415f5beeada95a01c7b815508a82dcb0e1593682"
 dependencies = [
  "futures 0.3.30",
  "futures-timer",
@@ -7753,18 +8012,19 @@ dependencies = [
 
 [[package]]
 name = "rstest_macros"
-version = "0.19.0"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04a9df72cc1f67020b0d63ad9bfe4a323e459ea7eb68e03bd9824db49f9a4c25"
+checksum = "4165dfae59a39dd41d8dec720d3cbfbc71f69744efb480a3920f5d4e0cc6798d"
 dependencies = [
  "cfg-if",
  "glob",
- "proc-macro2 1.0.81",
+ "proc-macro-crate 3.1.0",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
  "regex",
  "relative-path",
  "rustc_version 0.4.0",
- "syn 2.0.60",
+ "syn 2.0.66",
  "unicode-ident",
 ]
 
@@ -7829,7 +8089,7 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
 dependencies = [
- "semver 1.0.22",
+ "semver 1.0.23",
 ]
 
 [[package]]
@@ -8005,9 +8265,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.17"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
 
 [[package]]
 name = "salsa20"
@@ -8029,9 +8289,9 @@ dependencies = [
 
 [[package]]
 name = "sasl2-sys"
-version = "0.1.20+2.1.28"
+version = "0.1.22+2.1.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e645bd98535fc8fd251c43ba7c7c1f9be1e0369c99b6a5ea719052a773e655c"
+checksum = "05f2a7f7efd9fc98b3a9033272df10709f5ee3fa0eabbd61a527a3a1ed6bd3c6"
 dependencies = [
  "cc",
  "duct",
@@ -8144,9 +8404,9 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.22"
+version = "1.0.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
+checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
 dependencies = [
  "serde",
 ]
@@ -8159,18 +8419,18 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
 
 [[package]]
 name = "serde"
-version = "1.0.200"
+version = "1.0.203"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ddc6f9cc94d67c0e21aaf7eda3a010fd3af78ebf6e096aa6e2e13c79749cce4f"
+checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde-toml-merge"
-version = "0.3.6"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88075e75b01384301454b1c188243552c674263c0c0c3c7ed5dd82291b20798f"
+checksum = "93b4e415d6bff989e5e48649ca9b8b4d4997cb069a0c90a84bfd38c7df5e3968"
 dependencies = [
  "toml",
 ]
@@ -8207,31 +8467,31 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.200"
+version = "1.0.203"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "856f046b9400cee3c8c94ed572ecdb752444c24528c035cd35882aad6f492bcb"
+checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "serde_derive_internals"
-version = "0.29.0"
+version = "0.29.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "330f01ce65a3a5fe59a60c82f3c9a024b573b8a6e875bd233fe5f934e71d54e3"
+checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.116"
+version = "1.0.117"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813"
+checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
 dependencies = [
  "indexmap 2.2.6",
  "itoa",
@@ -8284,16 +8544,16 @@ version = "0.1.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.5"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0"
 dependencies = [
  "serde",
 ]
@@ -8345,7 +8605,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082"
 dependencies = [
  "darling 0.13.4",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
  "syn 1.0.109",
 ]
@@ -8357,9 +8617,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "65569b702f41443e8bc8bbb1c5779bd0450bbe723b56198980e80ec45780bce2"
 dependencies = [
  "darling 0.20.8",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -8624,7 +8884,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf"
 dependencies = [
  "heck 0.4.1",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
  "syn 1.0.109",
 ]
@@ -8636,9 +8896,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "080c44971436b1af15d6f61ddd8b543995cf63ab8e677d46b00cc06f4ef267a0"
 dependencies = [
  "heck 0.4.1",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -8708,10 +8968,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2ff9eaf853dec4c8802325d8b6d3dffa86cc707fd7a1a4cdbf416e13b061787a"
 dependencies = [
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
+name = "stable_deref_trait"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+
+[[package]]
 name = "static_assertions"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8769,12 +9035,6 @@ dependencies = [
 
 [[package]]
 name = "strsim"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
-
-[[package]]
-name = "strsim"
 version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
@@ -8786,30 +9046,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
 
 [[package]]
-name = "structopt"
-version = "0.3.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10"
-dependencies = [
- "clap 2.34.0",
- "lazy_static",
- "structopt-derive",
-]
-
-[[package]]
-name = "structopt-derive"
-version = "0.4.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
-dependencies = [
- "heck 0.3.3",
- "proc-macro-error",
- "proc-macro2 1.0.81",
- "quote 1.0.36",
- "syn 1.0.109",
-]
-
-[[package]]
 name = "strum"
 version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8817,9 +9053,9 @@ checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
 
 [[package]]
 name = "strum"
-version = "0.26.1"
+version = "0.26.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "723b93e8addf9aa965ebe2d11da6d7540fa2283fcea14b3371ff055f7ba13f5f"
+checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29"
 dependencies = [
  "strum_macros 0.26.1",
 ]
@@ -8831,10 +9067,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
 dependencies = [
  "heck 0.4.1",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
  "rustversion",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -8844,10 +9080,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7a3417fc93d76740d974a01654a09777cb500428cc874ca9f45edfe0c4d4cd18"
 dependencies = [
  "heck 0.4.1",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
  "rustversion",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -8883,18 +9119,18 @@ version = "1.0.109"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
  "unicode-ident",
 ]
 
 [[package]]
 name = "syn"
-version = "2.0.60"
+version = "2.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3"
+checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
  "unicode-ident",
 ]
@@ -8906,9 +9142,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b"
 dependencies = [
  "proc-macro-error",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -8918,6 +9154,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
 
 [[package]]
+name = "synstructure"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
+dependencies = [
+ "proc-macro2 1.0.85",
+ "quote 1.0.36",
+ "syn 2.0.66",
+]
+
+[[package]]
 name = "syslog"
 version = "6.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8962,6 +9209,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "tagptr"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417"
+
+[[package]]
 name = "take_mut"
 version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -9051,32 +9304,23 @@ dependencies = [
 ]
 
 [[package]]
-name = "textwrap"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-dependencies = [
- "unicode-width",
-]
-
-[[package]]
 name = "thiserror"
-version = "1.0.59"
+version = "1.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa"
+checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.59"
+version = "1.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66"
+checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -9151,6 +9395,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "tinystr"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f"
+dependencies = [
+ "displaydoc",
+ "zerovec",
+]
+
+[[package]]
 name = "tinytemplate"
 version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -9177,9 +9431,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.37.0"
+version = "1.38.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787"
+checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a"
 dependencies = [
  "backtrace",
  "bytes 1.6.0",
@@ -9218,13 +9472,13 @@ dependencies = [
 
 [[package]]
 name = "tokio-macros"
-version = "2.2.0"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
+checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -9374,21 +9628,21 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.8.12"
+version = "0.8.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
+checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.22.8",
+ "toml_edit 0.22.14",
 ]
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.5"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf"
 dependencies = [
  "serde",
 ]
@@ -9417,9 +9671,20 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.22.8"
+version = "0.21.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c12219811e0c1ba077867254e5ad62ee2c9c190b0d957110750ac0cda1ae96cd"
+checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
+dependencies = [
+ "indexmap 2.2.6",
+ "toml_datetime",
+ "winnow 0.5.18",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38"
 dependencies = [
  "indexmap 2.2.6",
  "serde",
@@ -9447,7 +9712,7 @@ dependencies = [
  "hyper-timeout",
  "percent-encoding",
  "pin-project",
- "prost 0.12.4",
+ "prost 0.12.6",
  "rustls 0.21.11",
  "rustls-native-certs 0.6.3",
  "rustls-pemfile 1.0.3",
@@ -9461,13 +9726,40 @@ dependencies = [
 ]
 
 [[package]]
+name = "tonic"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13"
+dependencies = [
+ "async-stream",
+ "async-trait",
+ "axum",
+ "base64 0.21.7",
+ "bytes 1.6.0",
+ "h2 0.3.26",
+ "http 0.2.9",
+ "http-body 0.4.5",
+ "hyper 0.14.28",
+ "hyper-timeout",
+ "percent-encoding",
+ "pin-project",
+ "prost 0.12.6",
+ "tokio",
+ "tokio-stream",
+ "tower",
+ "tower-layer",
+ "tower-service",
+ "tracing 0.1.40",
+]
+
+[[package]]
 name = "tonic-build"
 version = "0.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a6fdaae4c2c638bb70fe42803a26fbd6fc6ac8c72f5c59f67ecc2a2dcabf4b07"
 dependencies = [
  "prettyplease 0.1.25",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "prost-build 0.11.9",
  "quote 1.0.36",
  "syn 1.0.109",
@@ -9480,10 +9772,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9d021fc044c18582b9a2408cd0dd05b1596e3ecdb5c4df822bb0183545683889"
 dependencies = [
  "prettyplease 0.2.15",
- "proc-macro2 1.0.81",
- "prost-build 0.12.4",
+ "proc-macro2 1.0.85",
+ "prost-build 0.12.6",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -9584,9 +9876,9 @@ version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -9713,6 +10005,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "triomphe"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b2cb4fbb9995eeb36ac86fadf24031ccd58f99d6b4b2d7b911db70bddb80d90"
+
+[[package]]
 name = "trust-dns-proto"
 version = "0.21.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -9791,7 +10089,7 @@ dependencies = [
  "byteorder",
  "bytes 1.6.0",
  "data-encoding",
- "http 1.0.0",
+ "http 1.1.0",
  "httparse",
  "log",
  "rand 0.8.5",
@@ -9817,7 +10115,7 @@ version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "89851716b67b937e393b3daa8423e67ddfc4bbbf1654bcf05488e95e0828db0c"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
  "syn 1.0.109",
 ]
@@ -9837,9 +10135,9 @@ version = "0.16.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f03ca4cb38206e2bef0700092660bb74d696f808514dae47fa1467cbfe26e96e"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -9867,9 +10165,9 @@ version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ac73887f47b9312552aa90ef477927ff014d63d1920ca8037c6c1951eab64bb1"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -9944,6 +10242,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
 
 [[package]]
+name = "unicode-truncate"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a5fbabedabe362c618c714dbefda9927b5afc8e2a8102f47f081089a9019226"
+dependencies = [
+ "itertools 0.12.1",
+ "unicode-width",
+]
+
+[[package]]
 name = "unicode-width"
 version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -10005,12 +10313,12 @@ dependencies = [
 
 [[package]]
 name = "url"
-version = "2.5.0"
+version = "2.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
+checksum = "f7c25da092f0a868cdf09e8674cd3b7ef3a7d92a24253e663a2fb85e2496de56"
 dependencies = [
  "form_urlencoded",
- "idna 0.5.0",
+ "idna 1.0.0",
  "percent-encoding",
  "serde",
 ]
@@ -10028,12 +10336,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
 
 [[package]]
+name = "utf16_iter"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246"
+
+[[package]]
 name = "utf8-width"
 version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3"
 
 [[package]]
+name = "utf8_iter"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
+
+[[package]]
 name = "utf8parse"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -10046,7 +10366,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
 dependencies = [
  "atomic",
- "getrandom 0.2.14",
+ "getrandom 0.2.15",
  "rand 0.8.5",
  "serde",
  "wasm-bindgen",
@@ -10069,9 +10389,8 @@ name = "vdev"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "cached",
  "chrono",
- "clap 4.5.4",
+ "clap",
  "clap-verbosity-flag",
  "clap_complete",
  "confy",
@@ -10081,14 +10400,14 @@ dependencies = [
  "hex",
  "indexmap 2.2.6",
  "indicatif",
- "itertools 0.12.1",
+ "itertools 0.13.0",
  "log",
  "once_cell",
  "os_info",
- "owo-colors",
+ "owo-colors 4.0.0",
  "paste",
  "regex",
- "reqwest",
+ "reqwest 0.11.26",
  "serde",
  "serde_json",
  "serde_yaml 0.9.34+deprecated",
@@ -10098,14 +10417,8 @@ dependencies = [
 ]
 
 [[package]]
-name = "vec_map"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
-
-[[package]]
 name = "vector"
-version = "0.38.0"
+version = "0.39.0"
 dependencies = [
  "apache-avro",
  "approx",
@@ -10150,7 +10463,7 @@ dependencies = [
  "chrono",
  "chrono-tz",
  "cidr-utils 0.6.1",
- "clap 4.5.4",
+ "clap",
  "colored",
  "console-subscriber",
  "criterion",
@@ -10173,7 +10486,7 @@ dependencies = [
  "governor",
  "greptimedb-client",
  "grok",
- "h2 0.4.4",
+ "h2 0.4.5",
  "hash_hasher",
  "hashbrown 0.14.5",
  "headers",
@@ -10189,10 +10502,10 @@ dependencies = [
  "hyper-proxy",
  "indexmap 2.2.6",
  "indoc",
- "infer 0.15.0",
+ "infer 0.16.0",
  "inventory",
  "ipnet",
- "itertools 0.12.1",
+ "itertools 0.13.0",
  "k8s-openapi 0.18.0",
  "kube",
  "lapin",
@@ -10225,10 +10538,11 @@ dependencies = [
  "portpicker",
  "postgres-openssl",
  "proptest",
- "prost 0.12.4",
- "prost-build 0.12.4",
+ "proptest-derive",
+ "prost 0.12.6",
+ "prost-build 0.12.6",
  "prost-reflect",
- "prost-types 0.12.4",
+ "prost-types 0.12.6",
  "pulsar",
  "quickcheck",
  "rand 0.8.5",
@@ -10237,21 +10551,20 @@ dependencies = [
  "rdkafka",
  "redis",
  "regex",
- "reqwest",
+ "reqwest 0.11.26",
  "rmp-serde",
  "rmpv",
  "roaring",
  "rstest",
  "rumqttc",
  "seahash",
- "semver 1.0.22",
+ "semver 1.0.23",
  "serde",
  "serde-toml-merge",
  "serde_bytes",
  "serde_json",
  "serde_with 3.8.1",
  "serde_yaml 0.9.34+deprecated",
- "sha2",
  "similar-asserts",
  "smallvec",
  "smpl_jwt",
@@ -10272,7 +10585,7 @@ dependencies = [
  "tokio-tungstenite 0.20.1",
  "tokio-util",
  "toml",
- "tonic",
+ "tonic 0.10.2",
  "tonic-build 0.10.2",
  "tower",
  "tower-http",
@@ -10301,11 +10614,11 @@ version = "0.1.2"
 dependencies = [
  "anyhow",
  "chrono",
- "clap 4.5.4",
+ "clap",
  "futures 0.3.30",
  "graphql_client",
  "indoc",
- "reqwest",
+ "reqwest 0.11.26",
  "serde",
  "serde_json",
  "tokio",
@@ -10324,7 +10637,7 @@ dependencies = [
  "async-trait",
  "bytecheck",
  "bytes 1.6.0",
- "clap 4.5.4",
+ "clap",
  "crc32fast",
  "criterion",
  "crossbeam-queue",
@@ -10427,11 +10740,11 @@ dependencies = [
  "convert_case 0.6.0",
  "darling 0.20.8",
  "once_cell",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
  "serde",
  "serde_json",
- "syn 2.0.60",
+ "syn 2.0.66",
  "tracing 0.1.40",
 ]
 
@@ -10440,11 +10753,11 @@ name = "vector-config-macros"
 version = "0.1.0"
 dependencies = [
  "darling 0.20.8",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
  "serde",
  "serde_derive_internals",
- "syn 2.0.60",
+ "syn 2.0.66",
  "vector-config",
  "vector-config-common",
 ]
@@ -10489,9 +10802,9 @@ dependencies = [
  "parking_lot",
  "pin-project",
  "proptest",
- "prost 0.12.4",
- "prost-build 0.12.4",
- "prost-types 0.12.4",
+ "prost 0.12.6",
+ "prost-build 0.12.6",
+ "prost-types 0.12.6",
  "quanta 0.12.3",
  "quickcheck",
  "quickcheck_macros",
@@ -10515,7 +10828,7 @@ dependencies = [
  "tokio-test",
  "tokio-util",
  "toml",
- "tonic",
+ "tonic 0.10.2",
  "tracing 0.1.40",
  "tracing-core 0.1.32",
  "tracing-subscriber",
@@ -10584,7 +10897,7 @@ dependencies = [
 name = "vector-vrl-cli"
 version = "0.1.0"
 dependencies = [
- "clap 4.5.4",
+ "clap",
  "vector-vrl-functions",
  "vrl",
 ]
@@ -10603,7 +10916,7 @@ dependencies = [
  "ansi_term",
  "chrono",
  "chrono-tz",
- "clap 4.5.4",
+ "clap",
  "enrichment",
  "glob",
  "prettydiff",
@@ -10622,7 +10935,7 @@ version = "0.1.0"
 dependencies = [
  "cargo_toml",
  "enrichment",
- "getrandom 0.2.14",
+ "getrandom 0.2.15",
  "gloo-utils",
  "serde",
  "serde-wasm-bindgen",
@@ -10645,9 +10958,9 @@ checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
 
 [[package]]
 name = "vrl"
-version = "0.15.0"
+version = "0.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82cfcc99d9936dc2a8645f049122a5c5d137b066d0ffc48f01203ab2f102ed62"
+checksum = "6a714e10e3f6bac2ef76935b9281cc7434cc6f85f6ddab644383454555b63346"
 dependencies = [
  "aes",
  "ansi_term",
@@ -10664,7 +10977,7 @@ dependencies = [
  "chrono",
  "chrono-tz",
  "cidr-utils 0.6.1",
- "clap 4.5.4",
+ "clap",
  "codespan-reporting",
  "community-id",
  "crypto_secretbox",
@@ -10673,6 +10986,7 @@ dependencies = [
  "data-encoding",
  "digest",
  "dns-lookup",
+ "domain",
  "dyn-clone",
  "exitcode",
  "flate2",
@@ -10684,7 +10998,7 @@ dependencies = [
  "idna 0.5.0",
  "indexmap 2.2.6",
  "indoc",
- "itertools 0.12.1",
+ "itertools 0.13.0",
  "lalrpop",
  "lalrpop-util",
  "md-5",
@@ -10701,9 +11015,11 @@ dependencies = [
  "pest_derive",
  "prettydiff",
  "prettytable-rs",
- "prost 0.12.4",
+ "prost 0.12.6",
  "prost-reflect",
  "psl",
+ "psl-types",
+ "publicsuffix",
  "quickcheck",
  "quoted_printable",
  "rand 0.8.5",
@@ -10755,7 +11071,7 @@ version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
 ]
 
@@ -10858,9 +11174,9 @@ dependencies = [
  "bumpalo",
  "log",
  "once_cell",
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
  "wasm-bindgen-shared",
 ]
 
@@ -10892,9 +11208,9 @@ version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -10952,6 +11268,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc"
 
 [[package]]
+name = "webpki-roots"
+version = "0.26.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009"
+dependencies = [
+ "rustls-pki-types",
+]
+
+[[package]]
 name = "which"
 version = "4.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -11287,6 +11612,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "winreg"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "wiremock"
 version = "0.5.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -11319,6 +11654,18 @@ dependencies = [
 ]
 
 [[package]]
+name = "write16"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936"
+
+[[package]]
+name = "writeable"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51"
+
+[[package]]
 name = "wyz"
 version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -11343,6 +11690,30 @@ dependencies = [
 ]
 
 [[package]]
+name = "yoke"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5"
+dependencies = [
+ "serde",
+ "stable_deref_trait",
+ "yoke-derive",
+ "zerofrom",
+]
+
+[[package]]
+name = "yoke-derive"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95"
+dependencies = [
+ "proc-macro2 1.0.85",
+ "quote 1.0.36",
+ "syn 2.0.66",
+ "synstructure",
+]
+
+[[package]]
 name = "zerocopy"
 version = "0.7.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -11357,9 +11728,30 @@ version = "0.7.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a"
 dependencies = [
- "proc-macro2 1.0.81",
+ "proc-macro2 1.0.85",
  "quote 1.0.36",
- "syn 2.0.60",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "zerofrom"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55"
+dependencies = [
+ "zerofrom-derive",
+]
+
+[[package]]
+name = "zerofrom-derive"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5"
+dependencies = [
+ "proc-macro2 1.0.85",
+ "quote 1.0.36",
+ "syn 2.0.66",
+ "synstructure",
 ]
 
 [[package]]
@@ -11369,6 +11761,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9"
 
 [[package]]
+name = "zerovec"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb2cc8827d6c0994478a15c53f374f46fbd41bea663d809b14744bc42e6b109c"
+dependencies = [
+ "yoke",
+ "zerofrom",
+ "zerovec-derive",
+]
+
+[[package]]
+name = "zerovec-derive"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97cf56601ee5052b4417d90c8755c6683473c926039908196cf35d99f893ebe7"
+dependencies = [
+ "proc-macro2 1.0.85",
+ "quote 1.0.36",
+ "syn 2.0.66",
+]
+
+[[package]]
 name = "zstd"
 version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/pkgs/tools/misc/vector/default.nix b/pkgs/tools/misc/vector/default.nix
index 91b755f82827a..9ed2bc9c6e2ed 100644
--- a/pkgs/tools/misc/vector/default.nix
+++ b/pkgs/tools/misc/vector/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , rustPlatform
 , pkg-config
 , openssl
@@ -37,7 +36,7 @@
 
 let
   pname = "vector";
-  version = "0.38.0";
+  version = "0.39.0";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -46,15 +45,9 @@ rustPlatform.buildRustPackage {
     owner = "vectordotdev";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-sJgryN6/XaM1qXxv76/5RGanUpBYxIsGYGToOCXDvwA=";
+    hash = "sha256-S6yzh8ISIh6xzw5DwQaoZdpfmDHE9gfjlEtxIZerSak=";
   };
 
-  patches = [
-    # Enable LTO to bring down binary size
-    # Adapted from https://github.com/vectordotdev/vector/pull/20034
-    ./vector-lto.patch
-  ];
-
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
@@ -84,6 +77,9 @@ rustPlatform.buildRustPackage {
   # needed to dynamically link rdkafka
   CARGO_FEATURE_DYNAMIC_LINKING=1;
 
+  CARGO_PROFILE_RELEASE_LTO = "fat";
+  CARGO_PROFILE_RELEASE_CODEGEN_UNITS = "1";
+
   buildNoDefaultFeatures = true;
   buildFeatures = features;
 
@@ -129,7 +125,7 @@ rustPlatform.buildRustPackage {
   };
 
   meta = with lib; {
-    description = "A high-performance observability data pipeline";
+    description = "High-performance observability data pipeline";
     homepage = "https://github.com/vectordotdev/vector";
     license = licenses.mpl20;
     maintainers = with maintainers; [ thoughtpolice happysalada ];
diff --git a/pkgs/tools/misc/vector/vector-lto.patch b/pkgs/tools/misc/vector/vector-lto.patch
deleted file mode 100644
index a795c1f16d25e..0000000000000
--- a/pkgs/tools/misc/vector/vector-lto.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- ./Cargo.toml	2024-04-10 00:01:12.033806583 +0100
-+++ ./Cargo.toml	2024-04-10 00:01:48.324228125 +0100
-@@ -45,7 +45,8 @@ path = "tests/e2e/mod.rs"
- # This results in roughly a 5% reduction in performance when compiling locally vs when
- # compiled via the CI pipeline.
- [profile.release]
--debug = false # Do not include debug symbols in the executable.
-+lto = true
-+codegen-units = 1
- 
- [profile.bench]
- debug = true
diff --git a/pkgs/tools/misc/vial/default.nix b/pkgs/tools/misc/vial/default.nix
index d33a6053d5744..77cf03500207a 100644
--- a/pkgs/tools/misc/vial/default.nix
+++ b/pkgs/tools/misc/vial/default.nix
@@ -22,7 +22,7 @@ appimageTools.wrapType2 {
   '';
 
   meta = {
-    description = "An Open-source GUI and QMK fork for configuring your keyboard in real time";
+    description = "Open-source GUI and QMK fork for configuring your keyboard in real time";
     homepage = "https://get.vial.today";
     license = lib.licenses.gpl2Plus;
     mainProgram = "Vial";
diff --git a/pkgs/tools/misc/viddy/default.nix b/pkgs/tools/misc/viddy/default.nix
index 280cf82c4b414..2f23f77b166e3 100644
--- a/pkgs/tools/misc/viddy/default.nix
+++ b/pkgs/tools/misc/viddy/default.nix
@@ -21,7 +21,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "A modern watch command";
+    description = "Modern watch command";
     homepage = "https://github.com/sachaos/viddy";
     license = licenses.mit;
     maintainers = with maintainers; [ j-hui ];
diff --git a/pkgs/tools/misc/vivid/default.nix b/pkgs/tools/misc/vivid/default.nix
index 3115735ed9be8..81c81e6d6f882 100644
--- a/pkgs/tools/misc/vivid/default.nix
+++ b/pkgs/tools/misc/vivid/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-gtqdQuf3Ybt0PDCQw3gGAzIROq39NJKPIat0lyIPGgg=";
 
   meta = with lib; {
-    description = "A generator for LS_COLORS with support for multiple color themes";
+    description = "Generator for LS_COLORS with support for multiple color themes";
     homepage = "https://github.com/sharkdp/vivid";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = [ maintainers.dtzWill ];
diff --git a/pkgs/tools/misc/vorbisgain/default.nix b/pkgs/tools/misc/vorbisgain/default.nix
index f5a2e2d1dad5d..80307144fd9ad 100644
--- a/pkgs/tools/misc/vorbisgain/default.nix
+++ b/pkgs/tools/misc/vorbisgain/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://sjeng.org/vorbisgain.html";
-    description = "A utility that corrects the volume of an Ogg Vorbis file to a predefined standardized loudness";
+    description = "Utility that corrects the volume of an Ogg Vorbis file to a predefined standardized loudness";
     license = licenses.gpl2Only;
     platforms = platforms.unix;
     maintainers = with maintainers; [ pSub ];
diff --git a/pkgs/tools/misc/vsc-leetcode-cli/default.nix b/pkgs/tools/misc/vsc-leetcode-cli/default.nix
index cb70f9a80eed2..6cc544a4361eb 100644
--- a/pkgs/tools/misc/vsc-leetcode-cli/default.nix
+++ b/pkgs/tools/misc/vsc-leetcode-cli/default.nix
@@ -19,7 +19,7 @@ buildNpmPackage {
   dontNpmBuild = true;
 
   meta = with lib; {
-    description = "A CLI tool for leetcode.com";
+    description = "CLI tool for leetcode.com";
     homepage = "https://github.com/leetcode-tools/leetcode-cli";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
diff --git a/pkgs/tools/misc/vtm/default.nix b/pkgs/tools/misc/vtm/default.nix
index 9cd8d5df90107..6c83a456948b6 100644
--- a/pkgs/tools/misc/vtm/default.nix
+++ b/pkgs/tools/misc/vtm/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "vtm";
-  version = "0.9.81";
+  version = "0.9.82";
 
   src = fetchFromGitHub {
     owner = "netxs-group";
     repo = "vtm";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-/PVZr87w4Iu44355U9YH51jWF+mNPZvdyfYKJvOLDJU=";
+    hash = "sha256-FqsvU3qt5TwTD6J7WFOgDrHWiDYfU3Y51k8klRCV0kQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/wakapi/default.nix b/pkgs/tools/misc/wakapi/default.nix
index a8c4a28775eaa..8edcd7bef01fd 100644
--- a/pkgs/tools/misc/wakapi/default.nix
+++ b/pkgs/tools/misc/wakapi/default.nix
@@ -27,7 +27,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://wakapi.dev/";
     changelog = "https://github.com/muety/wakapi/releases/tag/${version}";
-    description = "A minimalist self-hosted WakaTime-compatible backend for coding statistics";
+    description = "Minimalist self-hosted WakaTime-compatible backend for coding statistics";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ t4ccer ];
     mainProgram = "wakapi";
diff --git a/pkgs/tools/misc/wasm-tools/default.nix b/pkgs/tools/misc/wasm-tools/default.nix
index 7cfee6482faf3..e89628a117ff6 100644
--- a/pkgs/tools/misc/wasm-tools/default.nix
+++ b/pkgs/tools/misc/wasm-tools/default.nix
@@ -5,19 +5,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wasm-tools";
-  version = "1.208.1";
+  version = "1.211.1";
 
   src = fetchFromGitHub {
     owner = "bytecodealliance";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-+//n8rh0wToxiq6fob9UvFP3YTT9F/0MSbVSzihFNww=";
+    hash = "sha256-xd5/QB6/V8cyoygShmcIzUgXZNs+kBuPtKy56BSoxKo=";
     fetchSubmodules = true;
   };
 
   # Disable cargo-auditable until https://github.com/rust-secure-code/cargo-auditable/issues/124 is solved.
   auditable = false;
-  cargoHash = "sha256-Peml+41VcGKI3UbUhKDPZqPwgY0zcYbhwXhyLibe2T4=";
+  cargoHash = "sha256-H3eEwVZB6xzZwW5Bvgs7yPV58QUNvLSWSDigLzs2uG0=";
   cargoBuildFlags = [ "--package" "wasm-tools" ];
   cargoTestFlags = [ "--all" ];
 
diff --git a/pkgs/tools/misc/wayback-machine-archiver/default.nix b/pkgs/tools/misc/wayback-machine-archiver/default.nix
index c3ebc937eb353..034cc303e6edd 100644
--- a/pkgs/tools/misc/wayback-machine-archiver/default.nix
+++ b/pkgs/tools/misc/wayback-machine-archiver/default.nix
@@ -23,7 +23,7 @@ python3.pkgs.buildPythonApplication rec {
   pythonImportsCheck = [ "wayback_machine_archiver" ];
 
   meta = with lib; {
-    description = "A Python script to submit web pages to the Wayback Machine for archiving";
+    description = "Python script to submit web pages to the Wayback Machine for archiving";
     homepage = "https://github.com/agude/wayback-machine-archiver";
     license = licenses.mit;
     maintainers = with maintainers; [ dandellion ];
diff --git a/pkgs/tools/misc/wayback/default.nix b/pkgs/tools/misc/wayback/default.nix
index 368d1bad63f96..3fb220c4001ec 100644
--- a/pkgs/tools/misc/wayback/default.nix
+++ b/pkgs/tools/misc/wayback/default.nix
@@ -24,7 +24,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "An archiving tool with an IM-style interface";
+    description = "Archiving tool with an IM-style interface";
     homepage = "https://docs.wabarc.eu.org";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ _2gn ];
diff --git a/pkgs/tools/misc/waylevel/default.nix b/pkgs/tools/misc/waylevel/default.nix
index b3b1ddfeeebfd..f0688ebf47eeb 100644
--- a/pkgs/tools/misc/waylevel/default.nix
+++ b/pkgs/tools/misc/waylevel/default.nix
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A tool to print wayland toplevels and other compositor info";
+    description = "Tool to print wayland toplevels and other compositor info";
     homepage = "https://git.sr.ht/~shinyzenith/waylevel";
     license = licenses.bsd2;
     maintainers = with maintainers; [ dit7ya ];
diff --git a/pkgs/tools/misc/wayshot/default.nix b/pkgs/tools/misc/wayshot/default.nix
index e8d5576af51e4..0f46dc85a1cf9 100644
--- a/pkgs/tools/misc/wayshot/default.nix
+++ b/pkgs/tools/misc/wayshot/default.nix
@@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A native, blazing-fast screenshot tool for wlroots based compositors such as sway and river";
+    description = "Native, blazing-fast screenshot tool for wlroots based compositors such as sway and river";
     homepage = "https://github.com/waycrate/wayshot";
     license = licenses.bsd2;
     maintainers = with maintainers; [ dit7ya id3v1669 ];
diff --git a/pkgs/tools/misc/webcat/default.nix b/pkgs/tools/misc/webcat/default.nix
index 7c8c56dc86c16..2fff1266eb9cd 100644
--- a/pkgs/tools/misc/webcat/default.nix
+++ b/pkgs/tools/misc/webcat/default.nix
@@ -22,7 +22,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://rumpelsepp.org/blog/ssh-through-websocket/";
-    description = "The lightweight swiss army knife for websockets";
+    description = "Lightweight swiss army knife for websockets";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ montag451 ];
     mainProgram = "webcat";
diff --git a/pkgs/tools/misc/whatsapp-chat-exporter/default.nix b/pkgs/tools/misc/whatsapp-chat-exporter/default.nix
index 9b2281d07a6f4..7542acbafa127 100644
--- a/pkgs/tools/misc/whatsapp-chat-exporter/default.nix
+++ b/pkgs/tools/misc/whatsapp-chat-exporter/default.nix
@@ -5,14 +5,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "whatsapp-chat-exporter";
-  version = "0.9.7";
+  version = "0.10.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "KnugiHK";
     repo = "Whatsapp-Chat-Exporter";
     rev = "refs/tags/${version}";
-    hash = "sha256-ySKZM7zmPKb+AHAK7IDpn07qinwz0YY8btb4KWGfy7w=";
+    hash = "sha256-W66qEQa7jlgd8v6dsIVAz6gmWsYr3SMqyhF2KIwC6hI=";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/tools/misc/wlc/default.nix b/pkgs/tools/misc/wlc/default.nix
index 648f05587d077..211bde7c240d8 100644
--- a/pkgs/tools/misc/wlc/default.nix
+++ b/pkgs/tools/misc/wlc/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Weblate commandline client using Weblate's REST API";
+    description = "Weblate commandline client using Weblate's REST API";
     homepage = "https://github.com/WeblateOrg/wlc";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ paperdigits ];
diff --git a/pkgs/tools/misc/woeusb-ng/default.nix b/pkgs/tools/misc/woeusb-ng/default.nix
index 1c3754bd95f3c..0858422be3a0c 100644
--- a/pkgs/tools/misc/woeusb-ng/default.nix
+++ b/pkgs/tools/misc/woeusb-ng/default.nix
@@ -47,7 +47,7 @@ buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A tool to create a Windows USB stick installer from a real Windows DVD or image";
+    description = "Tool to create a Windows USB stick installer from a real Windows DVD or image";
     homepage = "https://github.com/WoeUSB/WoeUSB-ng";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ stunkymonkey ];
diff --git a/pkgs/tools/misc/wootility/default.nix b/pkgs/tools/misc/wootility/default.nix
index f8590702ecb95..0a376aaf782d7 100644
--- a/pkgs/tools/misc/wootility/default.nix
+++ b/pkgs/tools/misc/wootility/default.nix
@@ -8,11 +8,11 @@
 
 appimageTools.wrapType2 rec {
   pname = "wootility";
-  version = "4.6.18";
+  version = "4.6.20";
 
   src = fetchurl {
     url = "https://s3.eu-west-2.amazonaws.com/wooting-update/wootility-lekker-linux-latest/wootility-lekker-${version}.AppImage";
-    sha256 = "sha256-oiPt1xgmYGYO1dk01rDwwaUf+yhDAbRCqTTuOivR/kI=";
+    sha256 = "sha256-JodmF3TThPpXXx1eOnYmYAJ4x5Ylcf35bw3R++5/Buk=";
   };
 
   profile = ''
@@ -29,7 +29,7 @@ appimageTools.wrapType2 rec {
 
   meta = with lib; {
     homepage = "https://wooting.io/wootility";
-    description = "A customization and management software for Wooting keyboards";
+    description = "Customization and management software for Wooting keyboards";
     platforms = [ "x86_64-linux" ];
     license = "unknown";
     maintainers = with maintainers; [ davidtwco ];
diff --git a/pkgs/tools/misc/wyrd/default.nix b/pkgs/tools/misc/wyrd/default.nix
index cdce7a5e347f3..8f5ad8268e693 100644
--- a/pkgs/tools/misc/wyrd/default.nix
+++ b/pkgs/tools/misc/wyrd/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   preferLocalBuild = true;
 
   meta = with lib; {
-    description = "A text-based front-end to Remind";
+    description = "Text-based front-end to Remind";
     longDescription = ''
       Wyrd is a text-based front-end to Remind, a sophisticated
       calendar and alarm program. Remind's power lies in its
diff --git a/pkgs/tools/misc/xcp/default.nix b/pkgs/tools/misc/xcp/default.nix
index bb310c3cce7ce..ecdb455986153 100644
--- a/pkgs/tools/misc/xcp/default.nix
+++ b/pkgs/tools/misc/xcp/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-UdQUrIRos3TmebotdESvKH+90WVMJ0oTc43p+AT4xMI=";
 
   meta = with lib; {
-    description = "An extended cp(1)";
+    description = "Extended cp(1)";
     homepage = "https://github.com/tarka/xcp";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ lom ];
diff --git a/pkgs/tools/misc/xdaliclock/default.nix b/pkgs/tools/misc/xdaliclock/default.nix
index 333da375d5801..5bd2e719da72d 100644
--- a/pkgs/tools/misc/xdaliclock/default.nix
+++ b/pkgs/tools/misc/xdaliclock/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A clock application that morphs digits when they are changed";
+    description = "Clock application that morphs digits when they are changed";
     maintainers = with maintainers; [ raskin ];
     platforms = with platforms; linux ++ freebsd;
     license = licenses.free; #TODO BSD on Gentoo, looks like MIT
diff --git a/pkgs/tools/misc/xdg-ninja/default.nix b/pkgs/tools/misc/xdg-ninja/default.nix
index f3c4ca677051b..e30b7602d1c8c 100644
--- a/pkgs/tools/misc/xdg-ninja/default.nix
+++ b/pkgs/tools/misc/xdg-ninja/default.nix
@@ -27,7 +27,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A shell script which checks your $HOME for unwanted files and directories";
+    description = "Shell script which checks your $HOME for unwanted files and directories";
     homepage = "https://github.com/b3nj5m1n/xdg-ninja";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/tools/misc/xjobs/default.nix b/pkgs/tools/misc/xjobs/default.nix
index 9dfa605fbc474..78e030c2e049f 100644
--- a/pkgs/tools/misc/xjobs/default.nix
+++ b/pkgs/tools/misc/xjobs/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A program which reads job descriptions line by line and executes them in parallel";
+    description = "Program which reads job descriptions line by line and executes them in parallel";
     homepage = "https://www.maier-komor.de/xjobs.html";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
diff --git a/pkgs/tools/misc/xmonad-log/deps.nix b/pkgs/tools/misc/xmonad-log/deps.nix
deleted file mode 100644
index f5a7c7e5dd1dd..0000000000000
--- a/pkgs/tools/misc/xmonad-log/deps.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
-[
-  {
-    goPackagePath = "github.com/godbus/dbus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/godbus/dbus";
-      rev = "a389bdde4dd695d414e47b755e95e72b7826432c";
-      sha256 = "1ckvg15zdsgmbn4mi36cazkb407ixc9mmyf7vwj8b8wi3d00rgn9";
-    };
-  }
-]
diff --git a/pkgs/tools/misc/xstow/default.nix b/pkgs/tools/misc/xstow/default.nix
index e40cffb516599..96e569fe26b0b 100644
--- a/pkgs/tools/misc/xstow/default.nix
+++ b/pkgs/tools/misc/xstow/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A replacement of GNU Stow written in C++";
+    description = "Replacement of GNU Stow written in C++";
     homepage = "https://github.com/majorkingleo/xstow";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ nzbr ];
diff --git a/pkgs/tools/misc/xxv/default.nix b/pkgs/tools/misc/xxv/default.nix
index 0068de3c92459..cd0208dd9ecf4 100644
--- a/pkgs/tools/misc/xxv/default.nix
+++ b/pkgs/tools/misc/xxv/default.nix
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
   buildFeatures = lib.optional (!useNcurses) "pancurses-backend";
 
   meta = with lib; {
-    description = "A visual hex viewer for the terminal";
+    description = "Visual hex viewer for the terminal";
     longDescription = ''
       XXV is a terminal hex viewer with a text user interface, written in 100% safe Rust.
     '';
diff --git a/pkgs/tools/misc/you-get/default.nix b/pkgs/tools/misc/you-get/default.nix
index 225c37e4ba464..785c66db62f88 100644
--- a/pkgs/tools/misc/you-get/default.nix
+++ b/pkgs/tools/misc/you-get/default.nix
@@ -8,7 +8,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "you-get";
-  version = "0.4.1650";
+  version = "0.4.1700";
   format = "setuptools";
 
   # Tests aren't packaged, but they all hit the real network so
@@ -17,7 +17,7 @@ python3.pkgs.buildPythonApplication rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-s8lEz3pjzEaMzMiBbc5/wAjC5rW6Uq7+XOIIGBijrUc=";
+    sha256 = "sha256-XNIUkgEqRGrBtSxvfkSUSqxltZ6ZdkWoTc9kz4BD6Zw=";
   };
 
   patches = [
@@ -43,7 +43,7 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   meta = with lib; {
-    description = "A tiny command line utility to download media contents from the web";
+    description = "Tiny command line utility to download media contents from the web";
     homepage = "https://you-get.org";
     changelog = "https://github.com/soimort/you-get/raw/v${version}/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/pkgs/tools/misc/yt-dlp/default.nix b/pkgs/tools/misc/yt-dlp/default.nix
index 87326c4531319..d4e1f6df6dc4f 100644
--- a/pkgs/tools/misc/yt-dlp/default.nix
+++ b/pkgs/tools/misc/yt-dlp/default.nix
@@ -25,13 +25,13 @@ buildPythonPackage rec {
   # The websites yt-dlp deals with are a very moving target. That means that
   # downloads break constantly. Because of that, updates should always be backported
   # to the latest stable release.
-  version = "2024.4.9";
+  version = "2024.5.27";
   pyproject = true;
 
   src = fetchPypi {
     inherit version;
     pname = "yt_dlp";
-    hash = "sha256-fukFcrTTE7WCuZyJ5OzPd5tX/1TtwzGHPGs/unf6qLA=";
+    hash = "sha256-NWbA3iQNDNPRwihc5lX3LKON/GGNY01GgYsA2J1SiL4=";
   };
 
   build-system = [
diff --git a/pkgs/tools/misc/ytcast/default.nix b/pkgs/tools/misc/ytcast/default.nix
index 798508f2451e5..7466414576955 100644
--- a/pkgs/tools/misc/ytcast/default.nix
+++ b/pkgs/tools/misc/ytcast/default.nix
@@ -15,7 +15,7 @@ buildGoModule rec {
   ldflags = [ "-X main.progVersion=${version}" ];
 
   meta = with lib; {
-    description = "A tool to cast YouTube videos from the command-line";
+    description = "Tool to cast YouTube videos from the command-line";
     homepage = "https://github.com/MarcoLucidi01/ytcast";
     license = licenses.mit;
     maintainers = with maintainers; [ waelwindows ];
diff --git a/pkgs/tools/misc/ytfzf/default.nix b/pkgs/tools/misc/ytfzf/default.nix
index 783ac793604fb..c3887972a4ca4 100644
--- a/pkgs/tools/misc/ytfzf/default.nix
+++ b/pkgs/tools/misc/ytfzf/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A posix script to find and watch youtube videos from the terminal";
+    description = "Posix script to find and watch youtube videos from the terminal";
     homepage = "https://github.com/pystardust/ytfzf";
     license = licenses.gpl3Only;
     platforms = platforms.all;
diff --git a/pkgs/tools/misc/yubico-piv-tool/default.nix b/pkgs/tools/misc/yubico-piv-tool/default.nix
index 2b8e50a7222e3..d3c73b62a7b65 100644
--- a/pkgs/tools/misc/yubico-piv-tool/default.nix
+++ b/pkgs/tools/misc/yubico-piv-tool/default.nix
@@ -17,7 +17,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "yubico-piv-tool";
-  version = "2.5.1";
+  version = "2.5.2";
 
   outputs = [ "out" "dev" "man" ];
 
@@ -25,7 +25,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "Yubico";
     repo = "yubico-piv-tool";
     rev = "refs/tags/yubico-piv-tool-${finalAttrs.version}";
-    hash = "sha256-8W5c5JwEAhBAgoRC/pmQs3U3RekQMmkHAXVW36Y+J+U=";
+    hash = "sha256-SBVYr6OcWqT+WKOZgIeZ1TmqCbcGAjbq/HaWIwPduFw=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/misc/yubikey-personalization-gui/default.nix b/pkgs/tools/misc/yubikey-personalization-gui/default.nix
index a63ab7a7ce193..347221ceedf8e 100644
--- a/pkgs/tools/misc/yubikey-personalization-gui/default.nix
+++ b/pkgs/tools/misc/yubikey-personalization-gui/default.nix
@@ -36,7 +36,7 @@ mkDerivation rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     homepage = "https://developers.yubico.com/yubikey-personalization-gui";
-    description = "A QT based cross-platform utility designed to facilitate reconfiguration of the Yubikey";
+    description = "QT based cross-platform utility designed to facilitate reconfiguration of the Yubikey";
     license = licenses.bsd2;
     platforms = platforms.unix;
     mainProgram = "yubikey-personalization-gui";
diff --git a/pkgs/tools/misc/yubikey-personalization/default.nix b/pkgs/tools/misc/yubikey-personalization/default.nix
index f8583f3614024..13a1cc3611973 100644
--- a/pkgs/tools/misc/yubikey-personalization/default.nix
+++ b/pkgs/tools/misc/yubikey-personalization/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://developers.yubico.com/yubikey-personalization";
-    description = "A library and command line tool to personalize YubiKeys";
+    description = "Library and command line tool to personalize YubiKeys";
     license = licenses.bsd2;
     platforms = platforms.unix;
   };
diff --git a/pkgs/tools/misc/z-lua/default.nix b/pkgs/tools/misc/z-lua/default.nix
index f9347ad41c453..f095a4260b89b 100644
--- a/pkgs/tools/misc/z-lua/default.nix
+++ b/pkgs/tools/misc/z-lua/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/skywind3000/z.lua";
-    description = "A new cd command that helps you navigate faster by learning your habits";
+    description = "New cd command that helps you navigate faster by learning your habits";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
     mainProgram = "z.lua";
diff --git a/pkgs/tools/misc/zellij/default.nix b/pkgs/tools/misc/zellij/default.nix
index dbb7f4ecc0542..ca2ababb464b3 100644
--- a/pkgs/tools/misc/zellij/default.nix
+++ b/pkgs/tools/misc/zellij/default.nix
@@ -59,7 +59,7 @@ rustPlatform.buildRustPackage rec {
   passthru.tests.version = testers.testVersion { package = zellij; };
 
   meta = with lib; {
-    description = "A terminal workspace with batteries included";
+    description = "Terminal workspace with batteries included";
     homepage = "https://zellij.dev/";
     changelog = "https://github.com/zellij-org/zellij/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
diff --git a/pkgs/tools/misc/zf/default.nix b/pkgs/tools/misc/zf/default.nix
index 402fbbb5f6979..2a5197245990e 100644
--- a/pkgs/tools/misc/zf/default.nix
+++ b/pkgs/tools/misc/zf/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/natecraddock/zf";
-    description = "A commandline fuzzy finder that prioritizes matches on filenames";
+    description = "Commandline fuzzy finder that prioritizes matches on filenames";
     changelog = "https://github.com/natecraddock/zf/releases/tag/${finalAttrs.version}";
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
diff --git a/pkgs/tools/misc/zotero-translation-server/default.nix b/pkgs/tools/misc/zotero-translation-server/default.nix
index 5150df1fbb8f5..923d9d4de8fb1 100644
--- a/pkgs/tools/misc/zotero-translation-server/default.nix
+++ b/pkgs/tools/misc/zotero-translation-server/default.nix
@@ -27,7 +27,7 @@ buildNpmPackage rec {
   '';
 
   meta = with lib; {
-    description = "A Node.js-based server to run Zotero translators";
+    description = "Node.js-based server to run Zotero translators";
     homepage = "https://github.com/zotero/translation-server";
     license = licenses.agpl3Only;
     maintainers = [ ];
diff --git a/pkgs/tools/misc/zoxide/default.nix b/pkgs/tools/misc/zoxide/default.nix
index 091730f7c1e69..5383e8d5376f3 100644
--- a/pkgs/tools/misc/zoxide/default.nix
+++ b/pkgs/tools/misc/zoxide/default.nix
@@ -39,7 +39,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A fast cd command that learns your habits";
+    description = "Fast cd command that learns your habits";
     homepage = "https://github.com/ajeetdsouza/zoxide";
     changelog = "https://github.com/ajeetdsouza/zoxide/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
diff --git a/pkgs/tools/misc/zthrottle/default.nix b/pkgs/tools/misc/zthrottle/default.nix
index 1598215e0eb94..8789af2881460 100644
--- a/pkgs/tools/misc/zthrottle/default.nix
+++ b/pkgs/tools/misc/zthrottle/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A program that throttles a pipeline, only letting a line through at most every $1 seconds";
+    description = "Program that throttles a pipeline, only letting a line through at most every $1 seconds";
     homepage = "https://github.com/anko/zthrottle";
     license = licenses.unlicense;
     maintainers = [ maintainers.ckie ];
diff --git a/pkgs/tools/networking/aardvark-dns/default.nix b/pkgs/tools/networking/aardvark-dns/default.nix
index f8770612b2537..3daebbead08c8 100644
--- a/pkgs/tools/networking/aardvark-dns/default.nix
+++ b/pkgs/tools/networking/aardvark-dns/default.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "aardvark-dns";
-  version = "1.10.0";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-BZJn0XrqDttNlKNpLy2iZzt8xcpxCoBrWV+L8MstMnM=";
+    hash = "sha256-MejXcHleJ6AmnoiZefZfp9La8D4PxHgEg0pMxUk2740=";
   };
 
-  cargoHash = "sha256-hDskOYyOo18EWsYTIf1trZxhRQK0Jf+T4bXb1JJKjEo=";
+  cargoHash = "sha256-r7etdWr/0cY38A7fRB5QQ86EyQ5YpuxyY3vx5qrdquc=";
 
   passthru.tests = { inherit (nixosTests) podman; };
 
diff --git a/pkgs/tools/networking/ain/default.nix b/pkgs/tools/networking/ain/default.nix
index 2425c600235d4..b5fd8cbf9c4d3 100644
--- a/pkgs/tools/networking/ain/default.nix
+++ b/pkgs/tools/networking/ain/default.nix
@@ -23,7 +23,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "A HTTP API client for the terminal";
+    description = "HTTP API client for the terminal";
     homepage = "https://github.com/jonaslu/ain";
     changelog = "https://github.com/jonaslu/ain/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/tools/networking/aircrack-ng/default.nix b/pkgs/tools/networking/aircrack-ng/default.nix
index b4cab28e3ebdf..6bfd3136dc984 100644
--- a/pkgs/tools/networking/aircrack-ng/default.nix
+++ b/pkgs/tools/networking/aircrack-ng/default.nix
@@ -1,34 +1,103 @@
-{ lib, stdenv, fetchurl, libpcap, openssl, zlib, wirelesstools
-, iw, ethtool, pciutils, libnl, pkg-config, makeWrapper
-, autoreconfHook, usbutils }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchzip
+, makeWrapper
+, autoreconfHook
+, pkg-config
+, openssl
+, libgcrypt
+, cmocka
+, expect
+, sqlite
+, pcre2
 
+  # Linux
+, libpcap
+, zlib
+, wirelesstools
+, iw
+, ethtool
+, pciutils
+, libnl
+, usbutils
+, tcpdump
+, hostapd
+, wpa_supplicant
+, screen
+
+  # Cygwin
+, libiconv
+
+  # options
+, enableExperimental ? true
+, useGcrypt ? false
+, enableAirolib ? true
+, enableRegex ? true
+, useAirpcap ? stdenv.isCygwin
+}:
+let
+  airpcap-sdk = fetchzip {
+    pname = "airpcap-sdk";
+    version = "4.1.1";
+    url = "https://support.riverbed.com/bin/support/download?sid=l3vk3eu649usgu3rj60uncjqqu";
+    hash = "sha256-kJhnUvhnF9F/kIJx9NcbRUfIXUSX/SRaO/SWNvdkVT8=";
+    stripRoot = false;
+    extension = "zip";
+  };
+in
 stdenv.mkDerivation rec {
   pname = "aircrack-ng";
   version = "1.7";
 
-  src = fetchurl {
-    url = "https://download.aircrack-ng.org/aircrack-ng-${version}.tar.gz";
-    sha256 = "1hsq1gwmafka4bahs6rc8p98yi542h9a502h64bjlygpr3ih99q5";
+  src = fetchFromGitHub {
+    owner = "aircrack-ng";
+    repo = "aircrack-ng";
+    rev = version;
+    hash = "sha256-niQDwiqi5GtBW5HIn0endnqPb/MqllcjsjXw4pTyFKY=";
   };
 
+  postPatch = lib.optionalString stdenv.isLinux ''
+    substituteInPlace lib/osdep/linux.c --replace-warn /usr/local/bin ${lib.escapeShellArg (lib.makeBinPath [
+      wirelesstools
+    ])}
+  '';
+
+  configureFlags = [
+    (lib.withFeature enableExperimental "experimental")
+    (lib.withFeature useGcrypt "gcrypt")
+    (lib.withFeatureAs useAirpcap "airpcap" airpcap-sdk)
+  ];
+
   nativeBuildInputs = [ pkg-config makeWrapper autoreconfHook ];
-  buildInputs = [ libpcap openssl zlib libnl iw ethtool pciutils ];
+  buildInputs =
+    lib.singleton (if useGcrypt then libgcrypt else openssl)
+    ++ lib.optionals stdenv.isLinux [ libpcap zlib libnl iw ethtool pciutils ]
+    ++ lib.optional (stdenv.isCygwin && stdenv.isClang) libiconv
+    ++ lib.optional enableAirolib sqlite
+    ++ lib.optional enableRegex pcre2
+    ++ lib.optional useAirpcap airpcap-sdk;
 
-  patchPhase = ''
-    sed -e 's@/usr/local/bin@'${wirelesstools}@ -i lib/osdep/linux.c
-  '';
+  nativeCheckInputs = [ cmocka expect ];
 
-  postFixup = ''
-    wrapProgram $out/bin/airmon-ng --prefix PATH : ${lib.makeBinPath [
-      ethtool iw pciutils usbutils
-    ]}
+  postFixup = lib.optionalString stdenv.isLinux ''
+    wrapProgram "$out/bin/airmon-ng" --prefix PATH : ${lib.escapeShellArg (lib.makeBinPath [
+      ethtool
+      iw
+      pciutils
+      usbutils
+    ])}
   '';
 
-  meta = with lib; {
-    description = "Wireless encryption cracking tools";
-    homepage = "http://www.aircrack-ng.org/";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ ];
-    platforms = platforms.linux;
+  installCheckTarget = "integration";
+  nativeInstallCheckInputs = [ cmocka expect ] ++ lib.optionals stdenv.isLinux [ tcpdump hostapd wpa_supplicant screen ];
+
+  meta = {
+    description = "WiFi security auditing tools suite";
+    homepage = "https://www.aircrack-ng.org/";
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ caralice ];
+    platforms = with lib.platforms; builtins.concatLists [ linux darwin cygwin netbsd openbsd freebsd illumos ];
+    changelog = "https://github.com/aircrack-ng/aircrack-ng/blob/${src.rev}/ChangeLog";
   };
 }
diff --git a/pkgs/tools/networking/aria2/default.nix b/pkgs/tools/networking/aria2/default.nix
index 094cc8733bdcd..97eb911baef11 100644
--- a/pkgs/tools/networking/aria2/default.nix
+++ b/pkgs/tools/networking/aria2/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, pkg-config, autoreconfHook
+{ lib, stdenv, fetchFromGitHub, pkg-config, autoreconfHook
 , gnutls, c-ares, libxml2, sqlite, zlib, libssh2
 , cppunit, sphinx
-, Security
+, Security, nixosTests
 }:
 
 stdenv.mkDerivation rec {
@@ -38,12 +38,16 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.tests = {
+    aria2 = nixosTests.aria2;
+  };
+
   meta = with lib; {
     homepage = "https://aria2.github.io";
-    description = "A lightweight, multi-protocol, multi-source, command-line download utility";
+    description = "Lightweight, multi-protocol, multi-source, command-line download utility";
     mainProgram = "aria2c";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ Br1ght0ne koral ];
+    maintainers = with maintainers; [ Br1ght0ne koral timhae ];
   };
 }
diff --git a/pkgs/tools/networking/badvpn/default.nix b/pkgs/tools/networking/badvpn/default.nix
index b1fc3b5b9b602..04eb96eeefd9f 100644
--- a/pkgs/tools/networking/badvpn/default.nix
+++ b/pkgs/tools/networking/badvpn/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A set of network-related (mostly VPN-related) tools";
+    description = "Set of network-related (mostly VPN-related) tools";
     license = licenses.bsd3;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/networking/bandwhich/default.nix b/pkgs/tools/networking/bandwhich/default.nix
index 43da60ffb89d7..9862bd5bd97ae 100644
--- a/pkgs/tools/networking/bandwhich/default.nix
+++ b/pkgs/tools/networking/bandwhich/default.nix
@@ -43,7 +43,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A CLI utility for displaying current network utilization";
+    description = "CLI utility for displaying current network utilization";
     longDescription = ''
       bandwhich sniffs a given network interface and records IP packet size, cross
       referencing it with the /proc filesystem on linux or lsof on MacOS. It is
diff --git a/pkgs/tools/networking/bore-cli/default.nix b/pkgs/tools/networking/bore-cli/default.nix
index d339f8a28b56e..30a0463ace08c 100644
--- a/pkgs/tools/networking/bore-cli/default.nix
+++ b/pkgs/tools/networking/bore-cli/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "bore-cli";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "ekzhang";
     repo = "bore";
     rev = "v${version}";
-    hash = "sha256-fHCWK/GI/MDbBPCpkgKJlWjFEsl8Ey6IdUZQPnYUfjg=";
+    hash = "sha256-i7JVE1Y982QUNocd56gHbhRr5rBWqTv1YT5uDwpAlA8=";
   };
 
-  cargoHash = "sha256-/k/7/mCD0abspPr+GGk/8ovnWl85OsmJtzirmfVxDNo=";
+  cargoHash = "sha256-PZDie/lBextHu8EV/butg2pJZFfizeOEdD21I3XFoHk=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     Security
diff --git a/pkgs/tools/networking/bore/default.nix b/pkgs/tools/networking/bore/default.nix
index abbbcc414751f..f32e9ff7542ca 100644
--- a/pkgs/tools/networking/bore/default.nix
+++ b/pkgs/tools/networking/bore/default.nix
@@ -46,5 +46,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.isc;
     maintainers = [ maintainers.delan ];
     mainProgram = "bore";
+    broken = stdenv.isDarwin; # bindgen fails on: "in6_addr_union_(...)" is not a valid Ident
   };
 }
diff --git a/pkgs/tools/networking/brook/default.nix b/pkgs/tools/networking/brook/default.nix
index 943ccbc9798ab..6bb6f9ab8bcf3 100644
--- a/pkgs/tools/networking/brook/default.nix
+++ b/pkgs/tools/networking/brook/default.nix
@@ -15,7 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/txthinking/brook";
-    description = "A cross-platform Proxy/VPN software";
+    description = "Cross-platform Proxy/VPN software";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ xrelkd ];
     mainProgram = "brook";
diff --git a/pkgs/tools/networking/bukubrow/default.nix b/pkgs/tools/networking/bukubrow/default.nix
index 7d7711dac1e4e..db14b24799e27 100644
--- a/pkgs/tools/networking/bukubrow/default.nix
+++ b/pkgs/tools/networking/bukubrow/default.nix
@@ -39,7 +39,7 @@ in rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A WebExtension for Buku, a command-line bookmark manager";
+    description = "WebExtension for Buku, a command-line bookmark manager";
     homepage = "https://github.com/SamHH/bukubrow-host";
     license = licenses.gpl3;
     maintainers = [ ];
diff --git a/pkgs/tools/networking/bwm-ng/default.nix b/pkgs/tools/networking/bwm-ng/default.nix
index e594e1bae7784..d10ecadc4e3ba 100644
--- a/pkgs/tools/networking/bwm-ng/default.nix
+++ b/pkgs/tools/networking/bwm-ng/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A small and simple console-based live network and disk io bandwidth monitor";
+    description = "Small and simple console-based live network and disk io bandwidth monitor";
     mainProgram = "bwm-ng";
     homepage = "http://www.gropp.org/?id=projects&sub=bwm-ng";
     license = licenses.gpl2Plus;
diff --git a/pkgs/tools/networking/cadaver/default.nix b/pkgs/tools/networking/cadaver/default.nix
index e164e5bf433ae..699b0d04dc869 100644
--- a/pkgs/tools/networking/cadaver/default.nix
+++ b/pkgs/tools/networking/cadaver/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A command-line WebDAV client";
+    description = "Command-line WebDAV client";
     homepage = "https://notroj.github.io/cadaver/";
     changelog = "https://github.com/notroj/cadaver/blob/${version}/NEWS";
     maintainers = with maintainers; [ ianwookim ];
diff --git a/pkgs/tools/networking/carddav-util/default.nix b/pkgs/tools/networking/carddav-util/default.nix
index 76e1b2656628d..539cfa67aa5a0 100644
--- a/pkgs/tools/networking/carddav-util/default.nix
+++ b/pkgs/tools/networking/carddav-util/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/ljanyst/carddav-util";
-    description = "A CardDAV import/export utility";
+    description = "CardDAV import/export utility";
     mainProgram = "carddav-util.py";
     platforms = platforms.unix;
     license = licenses.isc;
diff --git a/pkgs/tools/networking/cfspeedtest/default.nix b/pkgs/tools/networking/cfspeedtest/default.nix
index cb18d9ae1ed34..dd6f3b145710b 100644
--- a/pkgs/tools/networking/cfspeedtest/default.nix
+++ b/pkgs/tools/networking/cfspeedtest/default.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cfspeedtest";
-  version = "1.2.3";
+  version = "1.2.4";
 
   src = fetchFromGitHub {
     owner = "code-inflation";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-xg5jSA3J6QzqiItNV+poVxxXmKKPE7TsEYMGdKv4k+k=";
+    hash = "sha256-55g3dskYlAJNnoLwjTL0XvpDIk2l53EQ+CZ1MzhuxNI=";
   };
 
-  cargoHash = "sha256-ZXETP60R2121xTFqsvIFziUtKhL+ODGCpG98Mlt/zlg=";
+  cargoHash = "sha256-lTYiL5kCm9NClN4YjIlHz6aQlEwrESE25lOdJGkLMDA=";
 
   meta = with lib; {
     description = "Unofficial CLI for speed.cloudflare.com";
diff --git a/pkgs/tools/networking/checkip/default.nix b/pkgs/tools/networking/checkip/default.nix
index 7262d4d08f390..1ac21fcb84e28 100644
--- a/pkgs/tools/networking/checkip/default.nix
+++ b/pkgs/tools/networking/checkip/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "checkip";
-  version = "0.46.2";
+  version = "0.47.4";
 
   src = fetchFromGitHub {
     owner = "jreisinger";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-5GOVn95gaiRPoQvfeBG+zxSISwgMk0L2vexcQtPC/dw=";
+    hash = "sha256-b30Biyncg48Lv78LlojnWVwLDt30QwPhyxi97n6XjY4=";
   };
 
   vendorHash = "sha256-awqaDEdWILm8RcQ8hrtJFMTJQA5TzGZhiBTMfexmtA0=";
diff --git a/pkgs/tools/networking/cksfv/default.nix b/pkgs/tools/networking/cksfv/default.nix
index d8a2553375044..7fe184b1ef39b 100644
--- a/pkgs/tools/networking/cksfv/default.nix
+++ b/pkgs/tools/networking/cksfv/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://zakalwe.fi/~shd/foss/cksfv/";
-    description = "A tool for verifying files against a SFV checksum file";
+    description = "Tool for verifying files against a SFV checksum file";
     maintainers = with maintainers; [ ];
     platforms = platforms.all;
     license = licenses.gpl2Plus;
diff --git a/pkgs/tools/networking/cloudflare-warp/default.nix b/pkgs/tools/networking/cloudflare-warp/default.nix
index 7f5c9b18438c9..0e36b71c55b3b 100644
--- a/pkgs/tools/networking/cloudflare-warp/default.nix
+++ b/pkgs/tools/networking/cloudflare-warp/default.nix
@@ -85,9 +85,11 @@ stdenv.mkDerivation rec {
     homepage = "https://pkg.cloudflareclient.com/packages/cloudflare-warp";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
+    mainProgram = "warp-cli";
     maintainers = with maintainers; [
       wolfangaukang
       devpikachu
+      marcusramberg
     ];
     platforms = [ "x86_64-linux" "aarch64-linux" ];
   };
diff --git a/pkgs/tools/networking/configurable-http-proxy/default.nix b/pkgs/tools/networking/configurable-http-proxy/default.nix
index 74d009d3ed1a6..7dc9a403b4243 100644
--- a/pkgs/tools/networking/configurable-http-proxy/default.nix
+++ b/pkgs/tools/networking/configurable-http-proxy/default.nix
@@ -20,7 +20,7 @@ buildNpmPackage rec {
 
   meta = {
     changelog = "https://github.com/jupyterhub/configurable-http-proxy/blob/${src.rev}/CHANGELOG.md";
-    description = "A configurable-on-the-fly HTTP Proxy";
+    description = "Configurable-on-the-fly HTTP Proxy";
     homepage = "https://github.com/jupyterhub/configurable-http-proxy";
     license = lib.licenses.bsd3;
     mainProgram = "configurable-http-proxy";
diff --git a/pkgs/tools/networking/containerlab/default.nix b/pkgs/tools/networking/containerlab/default.nix
index 9cf57276a2ea0..aeaa2d044cb60 100644
--- a/pkgs/tools/networking/containerlab/default.nix
+++ b/pkgs/tools/networking/containerlab/default.nix
@@ -6,18 +6,18 @@
 
 buildGoModule rec {
   pname = "containerlab";
-  version = "0.54.2";
+  version = "0.55.0";
 
   src = fetchFromGitHub {
     owner = "srl-labs";
     repo = "containerlab";
     rev = "v${version}";
-    hash = "sha256-XRFSfMe08w69oudCDGfnJxROA7ycZEMNbAWP6zJKTN0=";
+    hash = "sha256-g+42nvNR1sWrkeU/oOajtmqeDVjRiwp7i+hrZU+FE00=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
 
-  vendorHash = "sha256-+buFaaUb4wCrlIBG+SwPXp/PqU/qvdfHTpEH4OrXsUs=";
+  vendorHash = "sha256-D0nZhw1YY+Ci7g6wTiUoPp8EoKcL0YIfWHsjDlLR/K8=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/networking/corkscrew/default.nix b/pkgs/tools/networking/corkscrew/default.nix
index d97d93e62f61a..6c433981aeb33 100644
--- a/pkgs/tools/networking/corkscrew/default.nix
+++ b/pkgs/tools/networking/corkscrew/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/bryanpkc/corkscrew";
-    description = "A tool for tunneling SSH through HTTP proxies";
+    description = "Tool for tunneling SSH through HTTP proxies";
     license = lib.licenses.gpl2Only;
     platforms = platforms.unix;
     mainProgram = "corkscrew";
diff --git a/pkgs/tools/networking/croc/default.nix b/pkgs/tools/networking/croc/default.nix
index 6772ccb750f14..ba5724d080643 100644
--- a/pkgs/tools/networking/croc/default.nix
+++ b/pkgs/tools/networking/croc/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "croc";
-  version = "9.6.16";
+  version = "10.0.8";
 
   src = fetchFromGitHub {
     owner = "schollz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-rAOWiu0f9f1v1oD5HI/kl1knoHkU2LgS3D2qsdd98y4=";
+    hash = "sha256-kfvAJT//ZjhjNhKNbaRGjiXO8fsaZZCVZ03BUdD6V6c=";
   };
 
-  vendorHash = "sha256-SxdN1IyQd/DLI8ZXyCWsW3JLi4dlGSvpr+ub/Oqkw70=";
+  vendorHash = "sha256-URaU6gy+DOChdbuvUTIWY3cUQTVogD5gUH3p17xmXzE=";
 
   subPackages = [ "." ];
 
@@ -20,6 +20,7 @@ buildGoModule rec {
       local-relay = callPackage ./test-local-relay.nix { };
     };
   };
+
   meta = with lib; {
     description = "Easily and securely send things from one computer to another";
     longDescription = ''
diff --git a/pkgs/tools/networking/croc/test-local-relay.nix b/pkgs/tools/networking/croc/test-local-relay.nix
index a3aa0f3c966df..90d335885e7fc 100644
--- a/pkgs/tools/networking/croc/test-local-relay.nix
+++ b/pkgs/tools/networking/croc/test-local-relay.nix
@@ -6,15 +6,20 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ croc ];
 
   buildCommand = ''
-    HOME=$(mktemp -d)
+    HOME="$(mktemp -d)"
     # start a local relay
     croc relay --ports 11111,11112 &
+
+    export CROC_SECRET="sN3nx4hGLeihmn8G"
+
     # start sender in background
     MSG="See you later, alligator!"
     croc --relay localhost:11111 send --code correct-horse-battery-staple --text "$MSG" &
+
     # wait for things to settle
     sleep 1
     MSG2=$(croc --relay localhost:11111 --yes correct-horse-battery-staple)
+
     # compare
     [ "$MSG" = "$MSG2" ] && touch $out
   '';
diff --git a/pkgs/tools/networking/curl-impersonate/default.nix b/pkgs/tools/networking/curl-impersonate/default.nix
index 8f7b659d19b58..f8ec8253c6daa 100644
--- a/pkgs/tools/networking/curl-impersonate/default.nix
+++ b/pkgs/tools/networking/curl-impersonate/default.nix
@@ -170,7 +170,7 @@ let
     };
 
     meta = with lib; {
-      description = "A special build of curl that can impersonate Chrome & Firefox";
+      description = "Special build of curl that can impersonate Chrome & Firefox";
       homepage = "https://github.com/lwthiker/curl-impersonate";
       license = with licenses; [ curl mit ];
       maintainers = with maintainers; [ deliciouslytyped lilyinstarlight ];
diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix
index 0bd65a307b0b7..154156e89463f 100644
--- a/pkgs/tools/networking/curl/default.nix
+++ b/pkgs/tools/networking/curl/default.nix
@@ -49,14 +49,14 @@ assert !((lib.count (x: x) [ gnutlsSupport opensslSupport wolfsslSupport rustlsS
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "curl";
-  version = "8.7.1";
+  version = "8.8.0";
 
   src = fetchurl {
     urls = [
       "https://curl.haxx.se/download/curl-${finalAttrs.version}.tar.xz"
       "https://github.com/curl/curl/releases/download/curl-${builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version}/curl-${finalAttrs.version}.tar.xz"
     ];
-    hash = "sha256-b+oqrGpGEPvQQAr7C83b5yWKZMY/H2jlhV68DGWXEM0=";
+    hash = "sha256-D1i7lfwzDIpG7rPfVwGw2Qydm/zEK9HNCHkdElUdRAA=";
   };
 
   patches = lib.optionals (lib.versionOlder finalAttrs.version "8.7.2") [
@@ -65,7 +65,10 @@ stdenv.mkDerivation (finalAttrs: {
     ./8.7.1-compression-fix.patch
   ];
 
+  # this could be accomplished by updateAutotoolsGnuConfigScriptsHook, but that causes infinite recursion
+  # necessary for FreeBSD code path in configure
   postPatch = ''
+    substituteInPlace ./config.guess --replace-fail /usr/bin/uname uname
     patchShebangs scripts
   '';
 
@@ -211,7 +214,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     changelog = "https://curl.se/changes.html#${lib.replaceStrings [ "." ] [ "_" ] finalAttrs.version}";
-    description = "A command line tool for transferring files with URL syntax";
+    description = "Command line tool for transferring files with URL syntax";
     homepage    = "https://curl.se/";
     license = licenses.curl;
     maintainers = with maintainers; [ lovek323 ];
diff --git a/pkgs/tools/networking/dae/default.nix b/pkgs/tools/networking/dae/default.nix
index 0c95db7e3af1d..89f961c473922 100644
--- a/pkgs/tools/networking/dae/default.nix
+++ b/pkgs/tools/networking/dae/default.nix
@@ -5,17 +5,17 @@
 }:
 buildGoModule rec {
   pname = "dae";
-  version = "0.4.0";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "daeuniverse";
     repo = "dae";
     rev = "v${version}";
-    hash = "sha256-hvAuWCacaWxXwxx5ktj57hnWt8fcnwD6rUuRj1+ZtFA=";
+    hash = "sha256-RO0XsGyIgf2PQekiC71HirEPp2SQDJpiAbjg7TyaGVQ=";
     fetchSubmodules = true;
   };
 
-  vendorHash = "sha256-4U6zIxK8K+MGxRboTtsKntDMp8/cQWPqXQ3l03AEtBs=";
+  vendorHash = "sha256-KFe0hGAXn4mrWCsU91cfUZc21SgJes6XXFhAKrqmULE=";
 
   proxyVendor = true;
 
@@ -44,7 +44,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A Linux high-performance transparent proxy solution based on eBPF";
+    description = "Linux high-performance transparent proxy solution based on eBPF";
     homepage = "https://github.com/daeuniverse/dae";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ oluceps pokon548 ];
diff --git a/pkgs/tools/networking/ddns-go/default.nix b/pkgs/tools/networking/ddns-go/default.nix
index 3d3a1c4f14153..9c5b96c90ac41 100644
--- a/pkgs/tools/networking/ddns-go/default.nix
+++ b/pkgs/tools/networking/ddns-go/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "ddns-go";
-  version = "6.6.0";
+  version = "6.6.2";
 
   src = fetchFromGitHub {
     owner = "jeessy2";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Id6MXY78S5Rw4Qlmnr/66qnBG95XNcZ6exsyI01zUxo=";
+    hash = "sha256-rl0J10HuZ7WBnOTylCW0MrNFEoKoBwUicJWy9vcQIew=";
   };
 
-  vendorHash = "sha256-J18JTLUvUaZDp1/65iJJp4oVSNOsENrMghJVP40ITOo=";
+  vendorHash = "sha256-dJXXGoTzgbmpDoAYKfkUgsmQILQQ+zbE14+BiaNEHSs=";
 
   ldflags = [
     "-X main.version=${version}"
diff --git a/pkgs/tools/networking/decode-spam-headers/default.nix b/pkgs/tools/networking/decode-spam-headers/default.nix
index 0294a45be78bd..738a6f8314746 100644
--- a/pkgs/tools/networking/decode-spam-headers/default.nix
+++ b/pkgs/tools/networking/decode-spam-headers/default.nix
@@ -36,7 +36,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/mgeeky/decode-spam-headers/";
-    description = "A script that helps you understand why your E-Mail ended up in Spam";
+    description = "Script that helps you understand why your E-Mail ended up in Spam";
     mainProgram = "decode-spam-headers";
     longDescription = ''
       Whether you are trying to understand why a specific e-mail ended up in
diff --git a/pkgs/tools/networking/dhcpcd/default.nix b/pkgs/tools/networking/dhcpcd/default.nix
index 158097d7c166b..077d2f4164386 100644
--- a/pkgs/tools/networking/dhcpcd/default.nix
+++ b/pkgs/tools/networking/dhcpcd/default.nix
@@ -3,6 +3,7 @@
 , fetchFromGitHub
 , pkg-config
 , udev
+, freebsd
 , runtimeShellPackage
 , runtimeShell
 , nixosTests
@@ -22,8 +23,12 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
-    udev
     runtimeShellPackage # So patchShebangs finds a bash suitable for the installed scripts
+  ] ++ lib.optionals stdenv.isLinux [
+    udev
+  ] ++ lib.optionals stdenv.isFreeBSD [
+    freebsd.libcapsicum
+    freebsd.libcasper
   ];
 
   postPatch = ''
@@ -52,7 +57,7 @@ stdenv.mkDerivation rec {
   installFlags = [ "DBDIR=$(TMPDIR)/db" "SYSCONFDIR=${placeholder "out"}/etc" ];
 
   # Check that the udev plugin got built.
-  postInstall = lib.optionalString (udev != null) "[ -e ${placeholder "out"}/lib/dhcpcd/dev/udev.so ]";
+  postInstall = lib.optionalString (udev != null && stdenv.isLinux) "[ -e ${placeholder "out"}/lib/dhcpcd/dev/udev.so ]";
 
   passthru = {
     inherit enablePrivSep;
@@ -60,9 +65,9 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A client for the Dynamic Host Configuration Protocol (DHCP)";
+    description = "Client for the Dynamic Host Configuration Protocol (DHCP)";
     homepage = "https://roy.marples.name/projects/dhcpcd";
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.freebsd;
     license = licenses.bsd2;
     maintainers = with maintainers; [ eelco ];
     mainProgram = "dhcpcd";
diff --git a/pkgs/tools/networking/dhcpdump/default.nix b/pkgs/tools/networking/dhcpdump/default.nix
index e0e95f26d3d5f..979dd0d463f53 100644
--- a/pkgs/tools/networking/dhcpdump/default.nix
+++ b/pkgs/tools/networking/dhcpdump/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A tool for visualization of DHCP packets as recorded and output by tcpdump to analyze DHCP server responses";
+    description = "Tool for visualization of DHCP packets as recorded and output by tcpdump to analyze DHCP server responses";
     homepage = "https://github.com/bbonev/dhcpdump";
     changelog = "https://github.com/bbonev/dhcpdump/releases/tag/v${version}";
     platforms = platforms.linux;
diff --git a/pkgs/tools/networking/dirb/default.nix b/pkgs/tools/networking/dirb/default.nix
index 313ecc110b0fb..9165d4db383d1 100644
--- a/pkgs/tools/networking/dirb/default.nix
+++ b/pkgs/tools/networking/dirb/default.nix
@@ -38,7 +38,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A web content scanner";
+    description = "Web content scanner";
     homepage = "https://dirb.sourceforge.net/";
     maintainers = with lib.maintainers; [ bennofs ];
     license = with lib.licenses; [ gpl2Only ];
diff --git a/pkgs/tools/networking/djbdns/default.nix b/pkgs/tools/networking/djbdns/default.nix
index 52f7e9a0fb557..21a8d55a6aecb 100644
--- a/pkgs/tools/networking/djbdns/default.nix
+++ b/pkgs/tools/networking/djbdns/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation {
   };
 
   meta = with lib; {
-    description = "A collection of Domain Name System tools";
+    description = "Collection of Domain Name System tools";
     longDescription = "Includes software for all the fundamental DNS operations: DNS cache: finding addresses of Internet hosts; DNS server: publishing addresses of Internet hosts; and DNS client: talking to a DNS cache.";
     homepage = "https://cr.yp.to/djbdns.html";
     license = licenses.publicDomain;
diff --git a/pkgs/tools/networking/dnscrypt-proxy/default.nix b/pkgs/tools/networking/dnscrypt-proxy/default.nix
index 319e8d9f822ae..eeb8696bc8ed2 100644
--- a/pkgs/tools/networking/dnscrypt-proxy/default.nix
+++ b/pkgs/tools/networking/dnscrypt-proxy/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A tool that provides secure DNS resolution";
+    description = "Tool that provides secure DNS resolution";
 
     license = licenses.isc;
     homepage = "https://dnscrypt.info/";
diff --git a/pkgs/tools/networking/dnscrypt-wrapper/default.nix b/pkgs/tools/networking/dnscrypt-wrapper/default.nix
index 49647153b6668..d632934b0db09 100644
--- a/pkgs/tools/networking/dnscrypt-wrapper/default.nix
+++ b/pkgs/tools/networking/dnscrypt-wrapper/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A tool for adding dnscrypt support to any name resolver";
+    description = "Tool for adding dnscrypt support to any name resolver";
     homepage = "https://dnscrypt.info/";
     license = licenses.isc;
     maintainers = with maintainers; [ joachifm ];
diff --git a/pkgs/tools/networking/dnsmasq/default.nix b/pkgs/tools/networking/dnsmasq/default.nix
index 623c498f995f5..2b0a6bfc87263 100644
--- a/pkgs/tools/networking/dnsmasq/default.nix
+++ b/pkgs/tools/networking/dnsmasq/default.nix
@@ -88,7 +88,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "An integrated DNS, DHCP and TFTP server for small networks";
+    description = "Integrated DNS, DHCP and TFTP server for small networks";
     homepage = "https://www.thekelleys.org.uk/dnsmasq/doc.html";
     license = licenses.gpl2Only;
     mainProgram = "dnsmasq";
diff --git a/pkgs/tools/networking/dnsproxy/default.nix b/pkgs/tools/networking/dnsproxy/default.nix
index 6036d6658d021..08624565dcd07 100644
--- a/pkgs/tools/networking/dnsproxy/default.nix
+++ b/pkgs/tools/networking/dnsproxy/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "dnsproxy";
-  version = "0.71.1";
+  version = "0.71.2";
 
   src = fetchFromGitHub {
     owner = "AdguardTeam";
     repo = "dnsproxy";
     rev = "v${version}";
-    hash = "sha256-g+QjGU+9//Ms7s61IzkxLTffmu1XIhzUX841e86JqE4=";
+    hash = "sha256-fsJWyb3YFmTeLf1qbO42RTldiEv3MeXyrySywGmIg5A=";
   };
 
-  vendorHash = "sha256-8t1/XIjDXRHumHkRNxQBeexL2qN94AHModk8ioLpMNY=";
+  vendorHash = "sha256-oINdRXLtfoCOpZ+n4HAkPtXyKen4m9VaDz1ggiEzehc=";
 
   ldflags = [ "-s" "-w" "-X" "github.com/AdguardTeam/dnsproxy/internal/version.version=${version}" ];
 
diff --git a/pkgs/tools/networking/dropbear/default.nix b/pkgs/tools/networking/dropbear/default.nix
index f64e51555bdd5..5e4e0be603c7d 100644
--- a/pkgs/tools/networking/dropbear/default.nix
+++ b/pkgs/tools/networking/dropbear/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ zlib libxcrypt ];
 
   meta = with lib; {
-    description = "A small footprint implementation of the SSH 2 protocol";
+    description = "Small footprint implementation of the SSH 2 protocol";
     homepage = "https://matt.ucc.asn.au/dropbear/dropbear.html";
     changelog = "https://github.com/mkj/dropbear/raw/DROPBEAR_${version}/CHANGES";
     license = licenses.mit;
diff --git a/pkgs/tools/networking/edgedb/0001-dynamically-patchelf-binaries.patch b/pkgs/tools/networking/edgedb/0001-dynamically-patchelf-binaries.patch
index ec2dccfc359a9..5b7b720fc7e77 100644
--- a/pkgs/tools/networking/edgedb/0001-dynamically-patchelf-binaries.patch
+++ b/pkgs/tools/networking/edgedb/0001-dynamically-patchelf-binaries.patch
@@ -1,8 +1,8 @@
 diff --git a/src/portable/install.rs b/src/portable/install.rs
-index dc0d932..5394fc1 100644
+index 15944e4..f873349 100644
 --- a/src/portable/install.rs
 +++ b/src/portable/install.rs
-@@ -133,8 +133,16 @@ fn unpack_package(cache_file: &Path, target_dir: &Path)
+@@ -134,8 +134,16 @@ fn unpack_package(cache_file: &Path, target_dir: &Path) -> anyhow::Result<()> {
      for entry in arch.entries()? {
          let mut entry = entry?;
          let path = entry.path()?;
@@ -11,7 +11,7 @@ index dc0d932..5394fc1 100644
 +            path_iter.next(); // discards first folder
 +            path_iter.as_path().starts_with("bin")
 +        };
-         if let Some(path) = build_path(&target_dir, &*path)? {
+         if let Some(path) = build_path(&target_dir, &path)? {
 -            entry.unpack(path)?;
 +            entry.unpack(&path)?;
 +            if is_inside_bin {
@@ -20,7 +20,7 @@ index dc0d932..5394fc1 100644
          }
      }
      bar.finish_and_clear();
-@@ -203,3 +211,11 @@ pub fn package(pkg_info: &PackageInfo) -> anyhow::Result<InstallInfo> {
+@@ -222,3 +230,11 @@ pub fn package(pkg_info: &PackageInfo) -> anyhow::Result<InstallInfo> {
  
      Ok(info)
  }
diff --git a/pkgs/tools/networking/edgedb/Cargo.lock b/pkgs/tools/networking/edgedb/Cargo.lock
index 42213f27d667b..bf0ae748327a4 100644
--- a/pkgs/tools/networking/edgedb/Cargo.lock
+++ b/pkgs/tools/networking/edgedb/Cargo.lock
@@ -4,9 +4,9 @@ version = 3
 
 [[package]]
 name = "addr2line"
-version = "0.19.0"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
 dependencies = [
  "gimli",
 ]
@@ -25,9 +25,9 @@ checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
 
 [[package]]
 name = "aes"
-version = "0.8.2"
+version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241"
+checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0"
 dependencies = [
  "cfg-if",
  "cipher",
@@ -35,32 +35,15 @@ dependencies = [
 ]
 
 [[package]]
-name = "ahash"
-version = "0.7.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
-dependencies = [
- "getrandom",
- "once_cell",
- "version_check",
-]
-
-[[package]]
 name = "aho-corasick"
-version = "1.0.2"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
-name = "android-tzdata"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
-
-[[package]]
 name = "ansi-escapes"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -68,9 +51,9 @@ checksum = "7e3c0daaaae24df5995734b689627f8fa02101bc5bbc768be3055b66a010d7af"
 
 [[package]]
 name = "anstream"
-version = "0.6.4"
+version = "0.6.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44"
+checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -82,49 +65,49 @@ dependencies = [
 
 [[package]]
 name = "anstyle"
-version = "1.0.0"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.2"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
 dependencies = [
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle-query"
-version = "1.0.0"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
 dependencies = [
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "anstyle-wincon"
-version = "3.0.1"
+version = "3.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
 dependencies = [
  "anstyle",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "anyhow"
-version = "1.0.71"
+version = "1.0.82"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8"
+checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519"
 
 [[package]]
 name = "append-only-vec"
-version = "0.1.2"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5608767d94038891df4c7bb82f6b1beb55fe3d204735985e20de329bc35d5fee"
+checksum = "f3cb8f874ecf419dd8165d0279746de966cb8966636d028845e3bd65d519812a"
 
 [[package]]
 name = "arc-swap"
@@ -134,26 +117,26 @@ checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
 
 [[package]]
 name = "arrayref"
-version = "0.3.6"
+version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
+checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545"
 
 [[package]]
 name = "arrayvec"
-version = "0.7.2"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
+checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
 
 [[package]]
 name = "assert_cmd"
-version = "2.0.11"
+version = "2.0.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86d6b683edf8d1119fe420a94f8a7e389239666aa72e65495d91c00462510151"
+checksum = "00ad3f3a942eee60335ab4342358c161ee296829e0d16ff42fc1d6cb07815467"
 dependencies = [
  "anstyle",
  "bstr",
  "doc-comment",
- "predicates 3.0.3",
+ "predicates 3.1.0",
  "predicates-core",
  "predicates-tree",
  "wait-timeout",
@@ -161,62 +144,94 @@ dependencies = [
 
 [[package]]
 name = "async-channel"
-version = "1.8.0"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
+dependencies = [
+ "concurrent-queue",
+ "event-listener 2.5.3",
+ "futures-core",
+]
+
+[[package]]
+name = "async-channel"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833"
+checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
 dependencies = [
  "concurrent-queue",
- "event-listener",
+ "event-listener 5.0.0",
+ "event-listener-strategy 0.5.0",
  "futures-core",
+ "pin-project-lite",
 ]
 
 [[package]]
 name = "async-executor"
-version = "1.5.0"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17adb73da160dfb475c183343c8cccd80721ea5a605d3eb57125f0a7b7a92d0b"
+checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c"
 dependencies = [
- "async-lock",
+ "async-lock 3.3.0",
  "async-task",
  "concurrent-queue",
- "fastrand",
- "futures-lite",
+ "fastrand 2.0.1",
+ "futures-lite 2.2.0",
  "slab",
 ]
 
 [[package]]
 name = "async-global-executor"
-version = "2.3.1"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776"
+checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c"
 dependencies = [
- "async-channel",
+ "async-channel 2.2.0",
  "async-executor",
- "async-io",
- "async-lock",
+ "async-io 2.3.1",
+ "async-lock 3.3.0",
  "blocking",
- "futures-lite",
+ "futures-lite 2.2.0",
  "once_cell",
 ]
 
 [[package]]
 name = "async-io"
-version = "1.12.0"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c374dda1ed3e7d8f0d9ba58715f924862c63eae6849c92d3a18e7fbde9e2794"
+checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
 dependencies = [
- "async-lock",
+ "async-lock 2.8.0",
  "autocfg",
+ "cfg-if",
  "concurrent-queue",
- "futures-lite",
- "libc",
+ "futures-lite 1.13.0",
  "log",
  "parking",
- "polling",
+ "polling 2.8.0",
+ "rustix 0.37.27",
  "slab",
- "socket2",
+ "socket2 0.4.10",
  "waker-fn",
- "windows-sys 0.42.0",
+]
+
+[[package]]
+name = "async-io"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f97ab0c5b00a7cdbe5a371b9a782ee7be1316095885c8a4ea1daf490eb0ef65"
+dependencies = [
+ "async-lock 3.3.0",
+ "cfg-if",
+ "concurrent-queue",
+ "futures-io",
+ "futures-lite 2.2.0",
+ "parking",
+ "polling 3.4.0",
+ "rustix 0.38.31",
+ "slab",
+ "tracing",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -230,11 +245,22 @@ dependencies = [
 
 [[package]]
 name = "async-lock"
-version = "2.7.0"
+version = "2.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7"
+checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
 dependencies = [
- "event-listener",
+ "event-listener 2.5.3",
+]
+
+[[package]]
+name = "async-lock"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
+dependencies = [
+ "event-listener 4.0.3",
+ "event-listener-strategy 0.4.0",
+ "pin-project-lite",
 ]
 
 [[package]]
@@ -243,15 +269,15 @@ version = "1.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d"
 dependencies = [
- "async-channel",
+ "async-channel 1.9.0",
  "async-global-executor",
- "async-io",
- "async-lock",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
  "crossbeam-utils",
  "futures-channel",
  "futures-core",
  "futures-io",
- "futures-lite",
+ "futures-lite 1.13.0",
  "gloo-timers",
  "kv-log-macro",
  "log",
@@ -265,26 +291,26 @@ dependencies = [
 
 [[package]]
 name = "async-task"
-version = "4.3.0"
+version = "4.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524"
+checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
 
 [[package]]
 name = "async-trait"
-version = "0.1.66"
+version = "0.1.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b84f9ebcc6c1f5b8cb160f6990096a5c127f423fcb6e1ccc46c370cbdfb75dfc"
+checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "atomic-waker"
-version = "1.1.0"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "debc29dde2e69f9e47506b525f639ed42300fc014a3e007832592448fa8e4599"
+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
 
 [[package]]
 name = "atty"
@@ -305,9 +331,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "backtrace"
-version = "0.3.67"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
 dependencies = [
  "addr2line",
  "cc",
@@ -332,27 +358,21 @@ checksum = "23ce669cd6c8588f79e15cf450314f9638f967fc5770ff1c7c1deb0925ea7cfa"
 
 [[package]]
 name = "base64"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
-
-[[package]]
-name = "base64"
-version = "0.21.2"
+version = "0.21.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
 name = "base64ct"
-version = "1.0.1"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a32fd6af2b5827bce66c29053ba0e7c42b9dcab01835835058558c10851a46b"
+checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
 
 [[package]]
 name = "basic-toml"
-version = "0.1.2"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c0de75129aa8d0cceaf750b89013f0e08804d6ec61416da787b35ad0d7cddf1"
+checksum = "2db21524cad41c5591204d22d75e1970a2d1f71060214ca931dc7d5afe2c14e5"
 dependencies = [
  "serde",
 ]
@@ -363,7 +383,7 @@ version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a6773ddc0eafc0e509fb60e48dff7f450f8e674a0686ae8605e8d9901bd5eefa"
 dependencies = [
- "num-bigint 0.4.3",
+ "num-bigint 0.4.4",
  "num-integer",
  "num-traits",
  "serde",
@@ -377,9 +397,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.0"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 
 [[package]]
 name = "bitvec"
@@ -395,27 +415,26 @@ dependencies = [
 
 [[package]]
 name = "blake2b_simd"
-version = "1.0.1"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c2f0dc9a68c6317d884f97cc36cf5a3d20ba14ce404227df55e1af708ab04bc"
+checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780"
 dependencies = [
  "arrayref",
  "arrayvec",
- "constant_time_eq 0.2.4",
+ "constant_time_eq 0.3.0",
 ]
 
 [[package]]
 name = "blake3"
-version = "1.4.0"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "729b71f35bd3fa1a4c86b85d32c8b9069ea7fe14f7a53cfabb65f62d4265b888"
+checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87"
 dependencies = [
  "arrayref",
  "arrayvec",
  "cc",
  "cfg-if",
- "constant_time_eq 0.2.4",
- "digest",
+ "constant_time_eq 0.3.0",
 ]
 
 [[package]]
@@ -429,47 +448,48 @@ dependencies = [
 
 [[package]]
 name = "blocking"
-version = "1.3.0"
+version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c67b173a56acffd6d2326fb7ab938ba0b00a71480e14902b2591c87bc5741e8"
+checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
 dependencies = [
- "async-channel",
- "async-lock",
+ "async-channel 2.2.0",
+ "async-lock 3.3.0",
  "async-task",
- "atomic-waker",
- "fastrand",
- "futures-lite",
+ "fastrand 2.0.1",
+ "futures-io",
+ "futures-lite 2.2.0",
+ "piper",
+ "tracing",
 ]
 
 [[package]]
 name = "bstr"
-version = "1.3.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ffdb39cb703212f3c11973452c2861b972f757b021158f3516ba10f2fa8b2c1"
+checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc"
 dependencies = [
  "memchr",
- "once_cell",
  "regex-automata",
  "serde",
 ]
 
 [[package]]
 name = "bumpalo"
-version = "3.13.0"
+version = "3.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
+checksum = "d32a994c2b3ca201d9b263612a374263f05e7adde37c4707f693dcd375076d1f"
 
 [[package]]
 name = "byteorder"
-version = "1.4.3"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
-version = "1.4.0"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
 
 [[package]]
 name = "bzip2"
@@ -494,11 +514,12 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.79"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
 dependencies = [
  "jobserver",
+ "libc",
 ]
 
 [[package]]
@@ -508,12 +529,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
+[[package]]
 name = "chrono"
-version = "0.4.26"
+version = "0.4.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
+checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b"
 dependencies = [
- "android-tzdata",
  "num-traits",
 ]
 
@@ -541,9 +567,9 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.4.6"
+version = "4.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d04704f56c2cde07f43e8e2c154b43f216dc5c92fc98ada720177362f953b956"
+checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -551,14 +577,14 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.4.6"
+version = "4.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e231faeaca65ebd1ea3c737966bf858971cd38c3849107aa3ea7de90a804e45"
+checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99"
 dependencies = [
  "anstream",
  "anstyle",
- "clap_lex 0.5.1",
- "strsim",
+ "clap_lex 0.7.0",
+ "strsim 0.11.0",
  "terminal_size 0.3.0",
 ]
 
@@ -573,23 +599,23 @@ dependencies = [
 
 [[package]]
 name = "clap_complete"
-version = "4.4.3"
+version = "4.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3ae8ba90b9d8b007efe66e55e48fb936272f5ca00349b5b0e89877520d35ea7"
+checksum = "299353be8209bd133b049bf1c63582d184a8b39fd9c04f15fe65f50f88bdfe6c"
 dependencies = [
- "clap 4.4.6",
+ "clap 4.5.0",
 ]
 
 [[package]]
 name = "clap_derive"
-version = "4.4.2"
+version = "4.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873"
+checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.18",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -613,9 +639,9 @@ dependencies = [
 
 [[package]]
 name = "clap_lex"
-version = "0.5.1"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
 
 [[package]]
 name = "clicolors-control"
@@ -689,25 +715,35 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "55b672471b4e9f9e95499ea597ff64941a309b2cdbffcc46f2cc5e2d971fd335"
 
 [[package]]
+name = "command-fds"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7bb11bd1378bf3731b182997b40cefe00aba6a6cc74042c8318c1b271d3badf7"
+dependencies = [
+ "nix 0.27.1",
+ "thiserror",
+]
+
+[[package]]
 name = "concurrent-queue"
-version = "2.1.0"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c278839b831783b70278b14df4d45e1beb1aad306c07bb796637de9a0e323e8e"
+checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
 dependencies = [
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "console"
-version = "0.15.5"
+version = "0.15.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3d79fbe8970a77e3e34151cc13d3b3e248aa0faaecb9f6091fa07ebefe5ad60"
+checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
 dependencies = [
  "encode_unicode 0.3.6",
  "lazy_static",
  "libc",
  "unicode-width",
- "windows-sys 0.42.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -718,9 +754,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
 
 [[package]]
 name = "constant_time_eq"
-version = "0.2.4"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3ad85c1f65dc7b37604eb0e89748faf0b9653065f2a8ef69f96a687ec1e9279"
+checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2"
 
 [[package]]
 name = "coolor"
@@ -733,9 +769,9 @@ dependencies = [
 
 [[package]]
 name = "core-foundation"
-version = "0.9.3"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -743,15 +779,15 @@ dependencies = [
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.8.3"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.5"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
  "libc",
 ]
@@ -764,20 +800,19 @@ checksum = "338089f42c427b86394a5ee60ff321da23a5c89c9d89514c829687b26359fcff"
 
 [[package]]
 name = "crc32fast"
-version = "1.3.2"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
 dependencies = [
  "cfg-if",
 ]
 
 [[package]]
 name = "crossbeam"
-version = "0.8.2"
+version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c"
+checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8"
 dependencies = [
- "cfg-if",
  "crossbeam-channel",
  "crossbeam-deque",
  "crossbeam-epoch",
@@ -787,56 +822,46 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.8"
+version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
+checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b"
 dependencies = [
- "cfg-if",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-deque"
-version = "0.8.3"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
 dependencies = [
- "cfg-if",
  "crossbeam-epoch",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.14"
+version = "0.9.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
 dependencies = [
- "autocfg",
- "cfg-if",
  "crossbeam-utils",
- "memoffset 0.8.0",
- "scopeguard",
 ]
 
 [[package]]
 name = "crossbeam-queue"
-version = "0.3.8"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add"
+checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35"
 dependencies = [
- "cfg-if",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.16"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
-dependencies = [
- "cfg-if",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
 name = "crossterm"
@@ -856,9 +881,9 @@ dependencies = [
 
 [[package]]
 name = "crossterm_winapi"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ae1b35a484aa10e07fe0638d02301c5ad24de82d310ccbd2f3693da5f09bf1c"
+checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
 dependencies = [
  "winapi",
 ]
@@ -874,23 +899,22 @@ dependencies = [
 ]
 
 [[package]]
-name = "ctor"
-version = "0.1.26"
+name = "ctrlc"
+version = "3.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096"
+checksum = "b467862cc8610ca6fc9a1532d7777cee0804e678ab45410897b9396495994a0b"
 dependencies = [
- "quote",
- "syn 1.0.109",
+ "nix 0.27.1",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
-name = "ctrlc"
-version = "3.4.0"
+name = "deranged"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a011bbe2c35ce9c1f143b7af6f94f29a167beb4cd1d29e6740ce836f723120e"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
 dependencies = [
- "nix",
- "windows-sys 0.48.0",
+ "powerfmt",
 ]
 
 [[package]]
@@ -907,9 +931,9 @@ checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
 
 [[package]]
 name = "digest"
-version = "0.10.6"
+version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
 dependencies = [
  "block-buffer",
  "crypto-common",
@@ -980,9 +1004,9 @@ dependencies = [
 
 [[package]]
 name = "dissimilar"
-version = "1.0.6"
+version = "1.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "210ec60ae7d710bed8683e333e9d2855a8a56a3e9892b38bad3bb0d4d29b0d5e"
+checksum = "86e3bdc80eee6e16b2b6b0f87fbc98c04bee3455e35174c0de1a125d0688c632"
 
 [[package]]
 name = "doc-comment"
@@ -998,7 +1022,7 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
 
 [[package]]
 name = "edgedb-cli"
-version = "4.1.1"
+version = "5.1.0"
 dependencies = [
  "ansi-escapes",
  "anyhow",
@@ -1007,15 +1031,15 @@ dependencies = [
  "async-listen",
  "backtrace",
  "base32",
- "base64 0.13.1",
+ "base64",
  "bigdecimal",
  "bitvec",
  "blake2b_simd",
  "blake3",
  "bytes",
  "chrono",
- "clap 4.4.6",
- "clap_complete 4.4.3",
+ "clap 4.5.0",
+ "clap_complete 4.5.0",
  "clicolors-control",
  "codespan-reporting",
  "color-print",
@@ -1033,14 +1057,15 @@ dependencies = [
  "edgedb-protocol",
  "edgedb-tokio",
  "edgeql-parser",
- "env_logger 0.10.0",
- "fd-lock 3.0.12",
+ "env_logger 0.10.2",
+ "fd-lock 3.0.13",
  "fn-error-context",
  "fs-err",
+ "fs_extra",
  "futures-util",
  "gethostname",
  "hex",
- "humantime 2.1.0",
+ "humantime",
  "humantime-serde",
  "immutable-chunkmap",
  "indexmap 2.0.0-pre",
@@ -1051,14 +1076,14 @@ dependencies = [
  "log",
  "minimad",
  "native-tls",
- "nix",
+ "nix 0.26.4",
  "notify",
- "num-bigint 0.4.3",
+ "num-bigint 0.4.4",
  "once_cell",
  "open",
  "openssl",
  "os-release",
- "pem 1.1.1",
+ "pem",
  "predicates 2.1.5",
  "pretty_assertions",
  "prettytable-rs",
@@ -1079,11 +1104,12 @@ dependencies = [
  "serde_str",
  "sha1",
  "sha2",
+ "shared-client-tests",
  "shell-escape",
  "shutdown_hooks",
  "signal-hook",
- "snafu",
- "strsim",
+ "snafu 0.7.5",
+ "strsim 0.10.0",
  "tar",
  "tempfile",
  "term",
@@ -1091,6 +1117,7 @@ dependencies = [
  "termimad",
  "terminal_size 0.2.6",
  "test-case",
+ "test-utils",
  "textwrap",
  "thiserror",
  "tokio",
@@ -1103,24 +1130,23 @@ dependencies = [
  "uuid",
  "wait-timeout",
  "warp",
- "webpki",
  "which",
  "whoami",
  "winapi",
- "winreg",
+ "winreg 0.10.1",
  "wslapi",
  "zip",
- "zstd 0.12.3+zstd.1.5.2",
+ "zstd 0.12.4",
 ]
 
 [[package]]
 name = "edgedb-cli-derive"
 version = "0.4.0"
 dependencies = [
- "clap 4.4.6",
+ "clap 4.5.0",
  "clap_generate",
  "heck",
- "indexmap 1.9.3",
+ "indexmap 2.0.0-pre",
  "proc-macro-error",
  "proc-macro2",
  "quote",
@@ -1132,18 +1158,18 @@ dependencies = [
 [[package]]
 name = "edgedb-derive"
 version = "0.5.1"
-source = "git+https://github.com/edgedb/edgedb-rust/#a1094916fe28d090156c006722ca660cc29e06ad"
+source = "git+https://github.com/edgedb/edgedb-rust/#783438e6322acc6a4960e61ad2f46b0c8c9517cd"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.18",
+ "syn 2.0.48",
  "trybuild",
 ]
 
 [[package]]
 name = "edgedb-errors"
 version = "0.4.1"
-source = "git+https://github.com/edgedb/edgedb-rust/#a1094916fe28d090156c006722ca660cc29e06ad"
+source = "git+https://github.com/edgedb/edgedb-rust/#783438e6322acc6a4960e61ad2f46b0c8c9517cd"
 dependencies = [
  "bytes",
 ]
@@ -1151,29 +1177,29 @@ dependencies = [
 [[package]]
 name = "edgedb-protocol"
 version = "0.6.0"
-source = "git+https://github.com/edgedb/edgedb-rust/#a1094916fe28d090156c006722ca660cc29e06ad"
+source = "git+https://github.com/edgedb/edgedb-rust/#783438e6322acc6a4960e61ad2f46b0c8c9517cd"
 dependencies = [
  "bigdecimal",
- "bitflags 2.4.0",
+ "bitflags 2.4.2",
  "bytes",
  "chrono",
  "edgedb-errors",
- "num-bigint 0.4.3",
+ "num-bigint 0.4.4",
  "num-traits",
- "snafu",
+ "snafu 0.8.2",
  "uuid",
 ]
 
 [[package]]
 name = "edgedb-tokio"
 version = "0.5.0"
-source = "git+https://github.com/edgedb/edgedb-rust/#a1094916fe28d090156c006722ca660cc29e06ad"
+source = "git+https://github.com/edgedb/edgedb-rust/#783438e6322acc6a4960e61ad2f46b0c8c9517cd"
 dependencies = [
  "anyhow",
  "arc-swap",
  "async-trait",
  "base16ct",
- "base64 0.21.2",
+ "base64",
  "bytes",
  "crc16",
  "dirs 5.0.1",
@@ -1185,7 +1211,8 @@ dependencies = [
  "rand",
  "rustls",
  "rustls-native-certs",
- "rustls-pemfile",
+ "rustls-pemfile 2.1.0",
+ "rustls-webpki",
  "scram",
  "serde",
  "serde_json",
@@ -1196,14 +1223,13 @@ dependencies = [
  "tokio",
  "tokio-stream",
  "url",
- "webpki",
  "webpki-roots",
 ]
 
 [[package]]
 name = "edgeql-parser"
 version = "0.1.0"
-source = "git+https://github.com/edgedb/edgedb#6f6b4cd1174daff8a1c1a7065659bb7837599b3e"
+source = "git+https://github.com/edgedb/edgedb#b53f17c1b16577a1f08fd5afa5be1333e9cf719a"
 dependencies = [
  "append-only-vec",
  "base32",
@@ -1215,16 +1241,16 @@ dependencies = [
  "phf",
  "serde_json",
  "sha2",
- "snafu",
+ "snafu 0.7.5",
  "thiserror",
  "unicode-width",
 ]
 
 [[package]]
 name = "either"
-version = "1.8.1"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 
 [[package]]
 name = "encode_unicode"
@@ -1240,9 +1266,9 @@ checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0"
 
 [[package]]
 name = "encoding_rs"
-version = "0.8.32"
+version = "0.8.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
 dependencies = [
  "cfg-if",
 ]
@@ -1254,25 +1280,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d"
 
 [[package]]
-name = "env_logger"
-version = "0.5.13"
+name = "env_filter"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15b0a4d2e39f8420210be8b27eeda28029729e2fd4291019455016c348240c38"
+checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea"
 dependencies = [
- "atty",
- "humantime 1.3.0",
  "log",
  "regex",
- "termcolor",
 ]
 
 [[package]]
 name = "env_logger"
-version = "0.10.0"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
 dependencies = [
- "humantime 2.1.0",
+ "humantime",
  "is-terminal",
  "log",
  "regex",
@@ -1280,24 +1303,32 @@ dependencies = [
 ]
 
 [[package]]
-name = "errno"
-version = "0.3.1"
+name = "env_logger"
+version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9"
 dependencies = [
- "errno-dragonfly",
- "libc",
- "windows-sys 0.48.0",
+ "anstream",
+ "anstyle",
+ "env_filter",
+ "humantime",
+ "log",
 ]
 
 [[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
 dependencies = [
- "cc",
  "libc",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -1307,6 +1338,48 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
 
 [[package]]
+name = "event-listener"
+version = "4.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener"
+version = "5.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b72557800024fabbaa2449dd4bf24e37b93702d457a4d4f2b0dd1f0f039f20c1"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
+dependencies = [
+ "event-listener 4.0.3",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
+dependencies = [
+ "event-listener 5.0.0",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "fastrand"
 version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1316,6 +1389,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "fastrand"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+
+[[package]]
 name = "fd-lock"
 version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1327,32 +1406,32 @@ dependencies = [
 
 [[package]]
 name = "fd-lock"
-version = "3.0.12"
+version = "3.0.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39ae6b3d9530211fb3b12a95374b8b0823be812f53d09e18c5675c0146b09642"
+checksum = "ef033ed5e9bad94e55838ca0ca906db0e043f517adda0c8b79c7a8c66c93c1b5"
 dependencies = [
  "cfg-if",
- "rustix 0.37.7",
+ "rustix 0.38.31",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "filetime"
-version = "0.2.20"
+version = "0.2.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a3de6e8d11b22ff9edc6d916f890800597d60f8b2da1caf2955c274638d6412"
+checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.2.16",
- "windows-sys 0.45.0",
+ "redox_syscall",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "flate2"
-version = "1.0.25"
+version = "1.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
  "crc32fast",
  "miniz_oxide",
@@ -1375,7 +1454,7 @@ checksum = "2cd66269887534af4b0c3e3337404591daa8dc8b9b2b3db71f9523beb4bafb41"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.18",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1401,18 +1480,27 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
 
 [[package]]
 name = "form_urlencoded"
-version = "1.1.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 dependencies = [
  "percent-encoding",
 ]
 
 [[package]]
 name = "fs-err"
-version = "2.9.0"
+version = "2.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0845fa252299212f0389d64ba26f34fa32cfe41588355f21ed507c59a0f64541"
+checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "fs_extra"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
 
 [[package]]
 name = "fsevent-sys"
@@ -1431,9 +1519,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
 
 [[package]]
 name = "futures-channel"
-version = "0.3.26"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e5317663a9089767a1ec00a487df42e0ca174b61b4483213ac24448e4664df5"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -1441,23 +1529,23 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.26"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec90ff4d0fe1f57d600049061dc6bb68ed03c7d2fbd697274c41805dcb3f8608"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
 name = "futures-io"
-version = "0.3.26"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfb8371b6fb2aeb2d280374607aeabfc99d95c72edfe51692e42d3d7f0d08531"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
 name = "futures-lite"
-version = "1.12.0"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48"
+checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
 dependencies = [
- "fastrand",
+ "fastrand 1.9.0",
  "futures-core",
  "futures-io",
  "memchr",
@@ -1467,33 +1555,46 @@ dependencies = [
 ]
 
 [[package]]
+name = "futures-lite"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba"
+dependencies = [
+ "fastrand 2.0.1",
+ "futures-core",
+ "futures-io",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "futures-macro"
-version = "0.3.26"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95a73af87da33b5acf53acfebdc339fe592ecf5357ac7c0a7734ab9d8c876a70"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.26"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f310820bb3e8cfd46c80db4d7fb8353e15dfff853a127158425f31e0be6c8364"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
 
 [[package]]
 name = "futures-task"
-version = "0.3.26"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcf79a1bf610b10f42aea489289c5a2c478a786509693b80cd39c44ccd936366"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
 name = "futures-util"
-version = "0.3.26"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c1d6de3acfef38d2be4b1f543f553131788603495be83da675e180c8d6b7bd1"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
  "futures-core",
  "futures-macro",
@@ -1506,9 +1607,9 @@ dependencies = [
 
 [[package]]
 name = "generic-array"
-version = "0.14.6"
+version = "0.14.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
 dependencies = [
  "typenum",
  "version_check",
@@ -1521,14 +1622,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818"
 dependencies = [
  "libc",
- "windows-targets 0.48.0",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
 name = "getrandom"
-version = "0.2.8"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
  "libc",
@@ -1537,9 +1638,9 @@ dependencies = [
 
 [[package]]
 name = "gimli"
-version = "0.27.2"
+version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
 name = "glob"
@@ -1561,9 +1662,9 @@ dependencies = [
 
 [[package]]
 name = "h2"
-version = "0.3.19"
+version = "0.3.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d357c7ae988e7d2182f7d7871d0b963962420b0678b0997ce7de72001aeab782"
+checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
 dependencies = [
  "bytes",
  "fnv",
@@ -1571,7 +1672,7 @@ dependencies = [
  "futures-sink",
  "futures-util",
  "http",
- "indexmap 1.9.3",
+ "indexmap 2.2.3",
  "slab",
  "tokio",
  "tokio-util",
@@ -1583,9 +1684,6 @@ name = "hashbrown"
 version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-dependencies = [
- "ahash",
-]
 
 [[package]]
 name = "hashbrown"
@@ -1594,13 +1692,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
 
 [[package]]
+name = "hashbrown"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+
+[[package]]
 name = "headers"
-version = "0.3.8"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584"
+checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270"
 dependencies = [
- "base64 0.13.1",
- "bitflags 1.3.2",
+ "base64",
  "bytes",
  "headers-core",
  "http",
@@ -1635,18 +1738,9 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.3.1"
+version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
+checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd"
 
 [[package]]
 name = "hex"
@@ -1667,10 +1761,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "home"
+version = "0.5.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "http"
-version = "0.2.9"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
 dependencies = [
  "bytes",
  "fnv",
@@ -1679,9 +1782,9 @@ dependencies = [
 
 [[package]]
 name = "http-body"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
 dependencies = [
  "bytes",
  "http",
@@ -1696,18 +1799,9 @@ checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
 
 [[package]]
 name = "httpdate"
-version = "1.0.2"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
-
-[[package]]
-name = "humantime"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
-dependencies = [
- "quick-error",
-]
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
 
 [[package]]
 name = "humantime"
@@ -1721,15 +1815,15 @@ version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "57a3db5ea5923d99402c94e9feb261dc5ee9b4efa158b0315f788cf549cc200c"
 dependencies = [
- "humantime 2.1.0",
+ "humantime",
  "serde",
 ]
 
 [[package]]
 name = "hyper"
-version = "0.14.24"
+version = "0.14.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e011372fa0b68db8350aa7a248930ecc7839bf46d8485577d69f117a75f164c"
+checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -1742,7 +1836,7 @@ dependencies = [
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2",
+ "socket2 0.5.5",
  "tokio",
  "tower-service",
  "tracing",
@@ -1764,9 +1858,9 @@ dependencies = [
 
 [[package]]
 name = "idna"
-version = "0.3.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
 dependencies = [
  "unicode-bidi",
  "unicode-normalization",
@@ -1803,10 +1897,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "indexmap"
+version = "2.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.14.3",
+]
+
+[[package]]
 name = "indicatif"
-version = "0.17.5"
+version = "0.17.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ff8cc23a7393a397ed1d7f56e6365cba772aba9f9912ab968b03043c395d057"
+checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3"
 dependencies = [
  "console",
  "instant",
@@ -1855,30 +1959,30 @@ dependencies = [
 
 [[package]]
 name = "io-lifetimes"
-version = "1.0.6"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cfa919a82ea574332e2de6e74b4c36e74d41982b335080fa59d4ef31be20fdf3"
+checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
 dependencies = [
+ "hermit-abi 0.3.6",
  "libc",
- "windows-sys 0.45.0",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "ipnet"
-version = "2.7.1"
+version = "2.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
 
 [[package]]
 name = "is-terminal"
-version = "0.4.7"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f"
+checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
 dependencies = [
- "hermit-abi 0.3.1",
- "io-lifetimes",
- "rustix 0.37.7",
- "windows-sys 0.48.0",
+ "hermit-abi 0.3.6",
+ "libc",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -1892,33 +1996,33 @@ dependencies = [
 
 [[package]]
 name = "itoa"
-version = "1.0.6"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
 name = "jobserver"
-version = "0.1.26"
+version = "0.1.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
+checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "js-sys"
-version = "0.3.61"
+version = "0.3.68"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
+checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee"
 dependencies = [
  "wasm-bindgen",
 ]
 
 [[package]]
 name = "kqueue"
-version = "1.0.7"
+version = "1.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c8fc60ba15bf51257aa9807a48a61013db043fcf3a78cb0d916e8e396dcad98"
+checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c"
 dependencies = [
  "kqueue-sys",
  "libc",
@@ -1926,9 +2030,9 @@ dependencies = [
 
 [[package]]
 name = "kqueue-sys"
-version = "1.0.3"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8367585489f01bc55dd27404dcf56b95e6da061a256a666ab23be9ba96a2e587"
+checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b"
 dependencies = [
  "bitflags 1.3.2",
  "libc",
@@ -1951,9 +2055,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.146"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libflate"
@@ -1976,6 +2080,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "libredox"
+version = "0.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+dependencies = [
+ "bitflags 2.4.2",
+ "libc",
+ "redox_syscall",
+]
+
+[[package]]
 name = "linux-raw-sys"
 version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1983,15 +2098,15 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.10"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
 
 [[package]]
 name = "lock_api"
-version = "0.4.9"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -1999,18 +2114,18 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.19"
+version = "0.4.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
 dependencies = [
  "value-bag",
 ]
 
 [[package]]
 name = "memchr"
-version = "2.5.0"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "memoffset"
@@ -2022,19 +2137,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "memoffset"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
 name = "mime"
-version = "0.3.16"
+version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
 
 [[package]]
 name = "mime_guess"
@@ -2048,9 +2154,9 @@ dependencies = [
 
 [[package]]
 name = "minidl"
-version = "0.1.5"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87d3d8666e5ed22230c0096edcccf7097905b1e2975869e1b9fe5df40d26d801"
+checksum = "fc0a023a2715164b8a15b7f91a4baa3decc92158a539b96bf0bdb61f18c69366"
 
 [[package]]
 name = "minimad"
@@ -2069,23 +2175,23 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.6.2"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
 dependencies = [
  "adler",
 ]
 
 [[package]]
 name = "mio"
-version = "0.8.6"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9"
+checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
 dependencies = [
  "libc",
  "log",
  "wasi",
- "windows-sys 0.45.0",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -2117,16 +2223,38 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.26.2"
+version = "0.26.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a"
+checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
 dependencies = [
  "bitflags 1.3.2",
  "cfg-if",
  "libc",
- "memoffset 0.7.1",
+ "memoffset",
  "pin-utils",
- "static_assertions",
+]
+
+[[package]]
+name = "nix"
+version = "0.27.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
+dependencies = [
+ "bitflags 2.4.2",
+ "cfg-if",
+ "libc",
+]
+
+[[package]]
+name = "nix"
+version = "0.28.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
+dependencies = [
+ "bitflags 2.4.2",
+ "cfg-if",
+ "cfg_aliases",
+ "libc",
 ]
 
 [[package]]
@@ -2177,9 +2305,9 @@ dependencies = [
 
 [[package]]
 name = "num-bigint"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
+checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
 dependencies = [
  "autocfg",
  "num-integer",
@@ -2187,31 +2315,36 @@ dependencies = [
 ]
 
 [[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
 name = "num-integer"
-version = "0.1.45"
+version = "0.1.46"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
 dependencies = [
- "autocfg",
  "num-traits",
 ]
 
 [[package]]
 name = "num-traits"
-version = "0.2.15"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
 name = "num_cpus"
-version = "1.15.0"
+version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
- "hermit-abi 0.2.6",
+ "hermit-abi 0.3.6",
  "libc",
 ]
 
@@ -2223,18 +2356,18 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
 
 [[package]]
 name = "object"
-version = "0.30.3"
+version = "0.32.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "once_cell"
-version = "1.18.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "open"
@@ -2248,11 +2381,11 @@ dependencies = [
 
 [[package]]
 name = "openssl"
-version = "0.10.54"
+version = "0.10.63"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69b3f656a17a6cbc115b5c7a40c616947d213ba182135b014d6051b73ab6f019"
+checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "cfg-if",
  "foreign-types",
  "libc",
@@ -2263,13 +2396,13 @@ dependencies = [
 
 [[package]]
 name = "openssl-macros"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c"
+checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2280,18 +2413,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-src"
-version = "111.25.1+1.1.1t"
+version = "300.2.3+3.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ef9a9cc6ea7d9d5e7c4a913dc4b48d0e359eddf01af1dfec96ba7064b4aba10"
+checksum = "5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843"
 dependencies = [
  "cc",
 ]
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.88"
+version = "0.9.99"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2ce0f250f34a308dcfdbb351f511359857d4ed2134ba715a4eadd46e1ffd617"
+checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae"
 dependencies = [
  "cc",
  "libc",
@@ -2317,18 +2450,9 @@ dependencies = [
 
 [[package]]
 name = "os_str_bytes"
-version = "6.4.1"
+version = "6.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee"
-
-[[package]]
-name = "output_vt100"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66"
-dependencies = [
- "winapi",
-]
+checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1"
 
 [[package]]
 name = "packed_struct"
@@ -2353,9 +2477,9 @@ dependencies = [
 
 [[package]]
 name = "parking"
-version = "2.0.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72"
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
 
 [[package]]
 name = "parking_lot"
@@ -2369,15 +2493,15 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.7"
+version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.2.16",
+ "redox_syscall",
  "smallvec",
- "windows-sys 0.45.0",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
@@ -2411,29 +2535,19 @@ dependencies = [
 
 [[package]]
 name = "pem"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd56cbd21fea48d0c440b41cd69c589faacade08c992d9a54e471b79d0fd13eb"
-dependencies = [
- "base64 0.13.1",
- "once_cell",
- "regex",
-]
-
-[[package]]
-name = "pem"
-version = "1.1.1"
+version = "3.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8"
+checksum = "1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310"
 dependencies = [
- "base64 0.13.1",
+ "base64",
+ "serde",
 ]
 
 [[package]]
 name = "percent-encoding"
-version = "2.2.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "phf"
@@ -2465,7 +2579,7 @@ dependencies = [
  "phf_shared",
  "proc-macro2",
  "quote",
- "syn 2.0.18",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2479,29 +2593,29 @@ dependencies = [
 
 [[package]]
 name = "pin-project"
-version = "1.0.12"
+version = "1.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc"
+checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.0.12"
+version = "1.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55"
+checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.9"
+version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
 
 [[package]]
 name = "pin-utils"
@@ -2510,16 +2624,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
+name = "piper"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4"
+dependencies = [
+ "atomic-waker",
+ "fastrand 2.0.1",
+ "futures-io",
+]
+
+[[package]]
 name = "pkg-config"
-version = "0.3.26"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
 name = "polling"
-version = "2.6.0"
+version = "2.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e1f879b2998099c2d69ab9605d145d5b661195627eccc680002c4918a7fb6fa"
+checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
 dependencies = [
  "autocfg",
  "bitflags 1.3.2",
@@ -2528,14 +2653,34 @@ dependencies = [
  "libc",
  "log",
  "pin-project-lite",
- "windows-sys 0.45.0",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "polling"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30054e72317ab98eddd8561db0f6524df3367636884b7b21b703e4b280a84a14"
+dependencies = [
+ "cfg-if",
+ "concurrent-queue",
+ "pin-project-lite",
+ "rustix 0.38.31",
+ "tracing",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "portable-atomic"
-version = "1.3.3"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "767eb9f07d4a5ebcb39bbf2d452058a93c011373abf6832e24194a1c3f004794"
+checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
+
+[[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
 
 [[package]]
 name = "ppv-lite86"
@@ -2559,13 +2704,12 @@ dependencies = [
 
 [[package]]
 name = "predicates"
-version = "3.0.3"
+version = "3.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09963355b9f467184c04017ced4a2ba2d75cbcb4e7462690d388233253d4b1a9"
+checksum = "68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8"
 dependencies = [
  "anstyle",
  "difflib",
- "itertools",
  "predicates-core",
 ]
 
@@ -2577,9 +2721,9 @@ checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174"
 
 [[package]]
 name = "predicates-tree"
-version = "1.0.7"
+version = "1.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54ff541861505aabf6ea722d2131ee980b8276e10a1297b94e896dd8b621850d"
+checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf"
 dependencies = [
  "predicates-core",
  "termtree",
@@ -2587,13 +2731,11 @@ dependencies = [
 
 [[package]]
 name = "pretty_assertions"
-version = "1.3.0"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a25e9bcb20aa780fd0bb16b72403a9064d6b3f22f026946029acb941a50af755"
+checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66"
 dependencies = [
- "ctor",
  "diff",
- "output_vt100",
  "yansi",
 ]
 
@@ -2650,16 +2792,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "quick-error"
-version = "1.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
-
-[[package]]
 name = "quote"
-version = "1.0.28"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -2712,63 +2848,60 @@ dependencies = [
 
 [[package]]
 name = "redox_syscall"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
-dependencies = [
- "bitflags 1.3.2",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.3.5"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
 dependencies = [
  "bitflags 1.3.2",
 ]
 
 [[package]]
 name = "redox_users"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
 dependencies = [
  "getrandom",
- "redox_syscall 0.2.16",
+ "libredox",
  "thiserror",
 ]
 
 [[package]]
 name = "regex"
-version = "1.8.4"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
+ "regex-automata",
  "regex-syntax",
 ]
 
 [[package]]
 name = "regex-automata"
-version = "0.1.10"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.2"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "reqwest"
-version = "0.11.18"
+version = "0.11.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55"
+checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251"
 dependencies = [
- "base64 0.21.2",
+ "base64",
  "bytes",
  "encoding_rs",
  "futures-core",
@@ -2786,9 +2919,12 @@ dependencies = [
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
+ "rustls-pemfile 1.0.4",
  "serde",
  "serde_json",
  "serde_urlencoded",
+ "sync_wrapper",
+ "system-configuration",
  "tokio",
  "tokio-native-tls",
  "tower-service",
@@ -2796,7 +2932,7 @@ dependencies = [
  "wasm-bindgen",
  "wasm-bindgen-futures",
  "web-sys",
- "winreg",
+ "winreg 0.50.0",
 ]
 
 [[package]]
@@ -2805,7 +2941,7 @@ version = "0.5.0"
 source = "git+https://github.com/tailhook/rexpect?branch=default_terminal_size#7643379e581e8019b49070782e5b6df34d762178"
 dependencies = [
  "comma",
- "nix",
+ "nix 0.26.4",
  "regex",
  "tempfile",
  "thiserror",
@@ -2813,17 +2949,16 @@ dependencies = [
 
 [[package]]
 name = "ring"
-version = "0.16.20"
+version = "0.17.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
+checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
 dependencies = [
  "cc",
+ "getrandom",
  "libc",
- "once_cell",
  "spin",
- "untrusted 0.7.1",
- "web-sys",
- "winapi",
+ "untrusted 0.9.0",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -2846,75 +2981,105 @@ dependencies = [
 
 [[package]]
 name = "rustc-demangle"
-version = "0.1.21"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342"
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
 
 [[package]]
 name = "rustix"
-version = "0.37.7"
+version = "0.37.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2aae838e49b3d63e9274e1c01833cc8139d3fec468c3b84688c628f44b1ae11d"
+checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
 dependencies = [
  "bitflags 1.3.2",
  "errno",
  "io-lifetimes",
  "libc",
  "linux-raw-sys 0.3.8",
- "windows-sys 0.45.0",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "rustix"
-version = "0.38.3"
+version = "0.38.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac5ffa1efe7548069688cd7028f32591853cd7b5b756d41bcffd2353e4fc75b4"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.2",
  "errno",
  "libc",
- "linux-raw-sys 0.4.10",
- "windows-sys 0.48.0",
+ "linux-raw-sys 0.4.13",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "rustls"
-version = "0.20.8"
+version = "0.22.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f"
+checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41"
 dependencies = [
  "log",
  "ring",
- "sct",
- "webpki",
+ "rustls-pki-types",
+ "rustls-webpki",
+ "subtle",
+ "zeroize",
 ]
 
 [[package]]
 name = "rustls-native-certs"
-version = "0.6.2"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50"
+checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792"
 dependencies = [
  "openssl-probe",
- "rustls-pemfile",
+ "rustls-pemfile 2.1.0",
+ "rustls-pki-types",
  "schannel",
  "security-framework",
 ]
 
 [[package]]
 name = "rustls-pemfile"
-version = "1.0.2"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
+dependencies = [
+ "base64",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c333bb734fcdedcea57de1602543590f545f127dc8b533324318fd492c5c70b"
+dependencies = [
+ "base64",
+ "rustls-pki-types",
+]
+
+[[package]]
+name = "rustls-pki-types"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b"
+checksum = "048a63e5b3ac996d78d402940b5fa47973d2d080c6c6fffa1d0f19c4445310b7"
+
+[[package]]
+name = "rustls-webpki"
+version = "0.102.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610"
 dependencies = [
- "base64 0.21.2",
+ "ring",
+ "rustls-pki-types",
+ "untrusted 0.9.0",
 ]
 
 [[package]]
 name = "rustversion"
-version = "1.0.12"
+version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "rustyline"
@@ -2928,7 +3093,7 @@ dependencies = [
  "libc",
  "log",
  "memchr",
- "nix",
+ "nix 0.26.4",
  "radix_trie",
  "scopeguard",
  "smallvec",
@@ -2940,9 +3105,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.13"
+version = "1.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
+checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
 
 [[package]]
 name = "same-file"
@@ -2955,11 +3120,11 @@ dependencies = [
 
 [[package]]
 name = "schannel"
-version = "0.1.21"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
 dependencies = [
- "windows-sys 0.42.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -2970,36 +3135,25 @@ checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
 
 [[package]]
 name = "scopeguard"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "scram"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7679a5e6b97bac99b2c208894ba0d34b17d9657f0b728c1cd3bf1c5f7f6ebe88"
-dependencies = [
- "base64 0.13.1",
- "rand",
- "ring",
-]
-
-[[package]]
-name = "sct"
 version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
+source = "git+https://github.com/elprans/scram#b1f594638f1022ed7e6550a63ad94bb95256a097"
 dependencies = [
+ "base64",
+ "rand",
  "ring",
- "untrusted 0.7.1",
 ]
 
 [[package]]
 name = "security-framework"
-version = "2.8.2"
+version = "2.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254"
+checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
 dependencies = [
  "bitflags 1.3.2",
  "core-foundation",
@@ -3010,9 +3164,9 @@ dependencies = [
 
 [[package]]
 name = "security-framework-sys"
-version = "2.8.0"
+version = "2.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4"
+checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -3020,40 +3174,40 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.17"
+version = "1.0.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed"
+checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "serde"
-version = "1.0.164"
+version = "1.0.198"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d"
+checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.164"
+version = "1.0.198"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68"
+checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.18",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.96"
+version = "1.0.116"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1"
+checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813"
 dependencies = [
- "indexmap 1.9.3",
+ "indexmap 2.2.3",
  "itoa",
  "ryu",
  "serde",
@@ -3070,10 +3224,11 @@ dependencies = [
 
 [[package]]
 name = "serde_path_to_error"
-version = "0.1.11"
+version = "0.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7f05c1d5476066defcdfacce1f52fc3cae3af1d3089727100c02ae92e5abbe0"
+checksum = "ebd154a240de39fdebcf5775d2675c204d7c13cf39a4c697be6493c8e734337c"
 dependencies = [
+ "itoa",
  "serde",
 ]
 
@@ -3099,9 +3254,9 @@ dependencies = [
 
 [[package]]
 name = "sha1"
-version = "0.10.5"
+version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -3110,9 +3265,9 @@ dependencies = [
 
 [[package]]
 name = "sha2"
-version = "0.10.6"
+version = "0.10.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -3120,6 +3275,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "shared-client-tests"
+version = "0.1.0"
+dependencies = [
+ "assert_cmd",
+ "edgedb-protocol",
+ "hex",
+ "indexmap 2.0.0-pre",
+ "predicates 2.1.5",
+ "serde_json",
+ "sha1",
+ "tempfile",
+]
+
+[[package]]
 name = "shell-escape"
 version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3133,9 +3302,9 @@ checksum = "6057adedbec913419c92996f395ba69931acbd50b7d56955394cd3f7bedbfa45"
 
 [[package]]
 name = "signal-hook"
-version = "0.3.15"
+version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9"
+checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
 dependencies = [
  "libc",
  "signal-hook-registry",
@@ -3163,47 +3332,56 @@ dependencies = [
 
 [[package]]
 name = "siphasher"
-version = "0.3.10"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
 
 [[package]]
 name = "slab"
-version = "0.4.8"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
 name = "smallvec"
-version = "1.10.0"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
 name = "smawk"
-version = "0.3.1"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f67ad224767faa3c7d8b6d91985b78e70a1324408abcb1cfcc2be4c06bc06043"
+checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c"
 
 [[package]]
 name = "snafu"
-version = "0.7.4"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb0656e7e3ffb70f6c39b3c2a86332bb74aa3c679da781642590f3c1118c5045"
+checksum = "e4de37ad025c587a29e8f3f5605c00f70b98715ef90b9061a815b9e59e9042d6"
 dependencies = [
  "backtrace",
  "doc-comment",
- "snafu-derive",
+ "snafu-derive 0.7.5",
+]
+
+[[package]]
+name = "snafu"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75976f4748ab44f6e5332102be424e7c2dc18daeaf7e725f2040c3ebb133512e"
+dependencies = [
+ "snafu-derive 0.8.2",
 ]
 
 [[package]]
 name = "snafu-derive"
-version = "0.7.4"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "475b3bbe5245c26f2d8a6f62d67c1f30eb9fffeccee721c45d162c3ebbdf81b2"
+checksum = "990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf"
 dependencies = [
  "heck",
  "proc-macro2",
@@ -3212,26 +3390,42 @@ dependencies = [
 ]
 
 [[package]]
+name = "snafu-derive"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4b19911debfb8c2fb1107bc6cb2d61868aaf53a988449213959bb1b5b1ed95f"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
 name = "socket2"
-version = "0.4.9"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
+checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
 dependencies = [
  "libc",
  "winapi",
 ]
 
 [[package]]
-name = "spin"
-version = "0.5.2"
+name = "socket2"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+dependencies = [
+ "libc",
+ "windows-sys 0.48.0",
+]
 
 [[package]]
-name = "static_assertions"
-version = "1.1.0"
+name = "spin"
+version = "0.9.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
 
 [[package]]
 name = "strsim"
@@ -3240,10 +3434,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
+name = "strsim"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
+
+[[package]]
 name = "subtle"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
 
 [[package]]
 name = "syn"
@@ -3258,9 +3458,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.18"
+version = "2.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -3268,6 +3468,33 @@ dependencies = [
 ]
 
 [[package]]
+name = "sync_wrapper"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
+
+[[package]]
+name = "system-configuration"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "system-configuration-sys",
+]
+
+[[package]]
+name = "system-configuration-sys"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
 name = "tap"
 version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3275,9 +3502,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
 
 [[package]]
 name = "tar"
-version = "0.4.38"
+version = "0.4.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6"
+checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb"
 dependencies = [
  "filetime",
  "libc",
@@ -3286,15 +3513,14 @@ dependencies = [
 
 [[package]]
 name = "tempfile"
-version = "3.5.0"
+version = "3.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998"
+checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67"
 dependencies = [
  "cfg-if",
- "fastrand",
- "redox_syscall 0.3.5",
- "rustix 0.37.7",
- "windows-sys 0.45.0",
+ "fastrand 2.0.1",
+ "rustix 0.38.31",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -3310,9 +3536,9 @@ dependencies = [
 
 [[package]]
 name = "termcolor"
-version = "1.2.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
 dependencies = [
  "winapi-util",
 ]
@@ -3337,7 +3563,7 @@ version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237"
 dependencies = [
- "rustix 0.37.7",
+ "rustix 0.37.27",
  "windows-sys 0.48.0",
 ]
 
@@ -3347,15 +3573,15 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
 dependencies = [
- "rustix 0.38.3",
+ "rustix 0.38.31",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "termtree"
-version = "0.4.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95059e91184749cb66be6dc994f67f182b6d897cb3df74a5bf66b5e709295fd8"
+checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
 
 [[package]]
 name = "test-case"
@@ -3381,16 +3607,30 @@ dependencies = [
 
 [[package]]
 name = "test-cert-gen"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "345f92b7cac59507cdaba298c5493f7c40e2063d31f6fc621105183344d5d50a"
+version = "0.10.0-pre"
+source = "git+https://github.com/elprans/rust-tls-api.git?branch=rustls-22#b73652c53e1cbdc676f4f1cd3645cab00be514e5"
 dependencies = [
  "once_cell",
- "pem 0.8.3",
+ "pem",
  "tempfile",
 ]
 
 [[package]]
+name = "test-utils"
+version = "0.1.0"
+source = "git+https://github.com/edgedb/test-utils.git#fdb2b93975a92dd3569c9cc0c18e4b64e2a39a0f"
+dependencies = [
+ "anyhow",
+ "command-fds",
+ "fs_extra",
+ "nix 0.28.0",
+ "once_cell",
+ "serde",
+ "serde_json",
+ "shutdown_hooks",
+]
+
+[[package]]
 name = "textwrap"
 version = "0.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3404,39 +3644,42 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.40"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
+checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.40"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
+checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.18",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "time"
-version = "0.3.20"
+version = "0.3.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
 dependencies = [
+ "deranged",
+ "num-conv",
+ "powerfmt",
  "serde",
  "time-core",
 ]
 
 [[package]]
 name = "time-core"
-version = "0.1.0"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "tinyvec"
@@ -3455,25 +3698,20 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tls-api"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "66d1b3dfb0a60da3e8a130c9f2432063d9979928a05c2b2cdcfc9fd05e4f53a3"
+version = "0.10.0-pre"
+source = "git+https://github.com/elprans/rust-tls-api.git?branch=rustls-22#b73652c53e1cbdc676f4f1cd3645cab00be514e5"
 dependencies = [
  "anyhow",
- "log",
- "pem 0.8.3",
+ "pem",
  "tempfile",
  "thiserror",
  "tokio",
- "void",
- "webpki",
 ]
 
 [[package]]
 name = "tls-api-not-tls"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "529dda0254aa61462ebe3937ecf877b6b1d7e745d25b74c18ba98593aefd7086"
+version = "0.10.0-pre"
+source = "git+https://github.com/elprans/rust-tls-api.git?branch=rustls-22#b73652c53e1cbdc676f4f1cd3645cab00be514e5"
 dependencies = [
  "anyhow",
  "thiserror",
@@ -3484,64 +3722,62 @@ dependencies = [
 
 [[package]]
 name = "tls-api-rustls"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afcd7905a7d9603bc4c1bcf4710141d463cde70f027ab7900bc1d0012712444d"
+version = "0.10.0-pre"
+source = "git+https://github.com/elprans/rust-tls-api.git?branch=rustls-22#b73652c53e1cbdc676f4f1cd3645cab00be514e5"
 dependencies = [
  "anyhow",
  "rustls",
+ "rustls-webpki",
  "thiserror",
  "tls-api",
  "tls-api-test",
  "tokio",
- "webpki",
  "webpki-roots",
 ]
 
 [[package]]
 name = "tls-api-test"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9df107843d725428d76bb159040fbae6d1524dcf25d5b24c56daa6b37ce9dbb5"
+version = "0.10.0-pre"
+source = "git+https://github.com/elprans/rust-tls-api.git?branch=rustls-22#b73652c53e1cbdc676f4f1cd3645cab00be514e5"
 dependencies = [
  "anyhow",
- "env_logger 0.5.13",
+ "env_logger 0.11.3",
  "log",
- "pem 0.8.3",
+ "pem",
+ "rustls-webpki",
  "test-cert-gen",
  "tls-api",
  "tokio",
  "untrusted 0.6.2",
- "webpki",
 ]
 
 [[package]]
 name = "tokio"
-version = "1.28.2"
+version = "1.36.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
 dependencies = [
- "autocfg",
+ "backtrace",
  "bytes",
  "libc",
  "mio",
  "num_cpus",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2",
+ "socket2 0.5.5",
  "tokio-macros",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "tokio-macros"
-version = "2.1.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.18",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -3556,13 +3792,13 @@ dependencies = [
 
 [[package]]
 name = "tokio-rustls"
-version = "0.23.4"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59"
+checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
 dependencies = [
  "rustls",
+ "rustls-pki-types",
  "tokio",
- "webpki",
 ]
 
 [[package]]
@@ -3578,9 +3814,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.7.7"
+version = "0.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5427d89453009325de0d8f342c9490009f76e999cb7672d77e46267448f7e6b2"
+checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
 dependencies = [
  "bytes",
  "futures-core",
@@ -3607,11 +3843,10 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
 
 [[package]]
 name = "tracing"
-version = "0.1.37"
+version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
- "cfg-if",
  "log",
  "pin-project-lite",
  "tracing-core",
@@ -3619,24 +3854,24 @@ dependencies = [
 
 [[package]]
 name = "tracing-core"
-version = "0.1.30"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
 dependencies = [
  "once_cell",
 ]
 
 [[package]]
 name = "try-lock"
-version = "0.2.4"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
 
 [[package]]
 name = "trybuild"
-version = "1.0.79"
+version = "1.0.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db3115bddce1b5f52dd4b5e0ec8298a66ce733e4cc6759247dc2d1c11508ec38"
+checksum = "9a9d3ba662913483d6722303f619e75ea10b7855b0f8e0d72799cf8621bb488f"
 dependencies = [
  "basic-toml",
  "glob",
@@ -3649,40 +3884,36 @@ dependencies = [
 
 [[package]]
 name = "typenum"
-version = "1.16.0"
+version = "1.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 
 [[package]]
 name = "unicase"
-version = "2.6.0"
+version = "2.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
+checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
 dependencies = [
  "version_check",
 ]
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.11"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "524b68aca1d05e03fdf03fcdce2c6c94b6daf6d16861ddaa7e4f2b6638a9052c"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.8"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-linebreak"
-version = "0.1.4"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5faade31a542b8b35855fff6e8def199853b2da8da256da52f52f1316ee3137"
-dependencies = [
- "hashbrown 0.12.3",
- "regex",
-]
+checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
 
 [[package]]
 name = "unicode-normalization"
@@ -3695,15 +3926,15 @@ dependencies = [
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.10.1"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
 
 [[package]]
 name = "unicode-width"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
 name = "untrusted"
@@ -3713,15 +3944,15 @@ checksum = "55cd1f4b4e96b46aeb8d4855db4a7a9bd96eeeb5c6a1ab54593328761642ce2f"
 
 [[package]]
 name = "untrusted"
-version = "0.7.1"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
 
 [[package]]
 name = "url"
-version = "2.3.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
 dependencies = [
  "form_urlencoded",
  "idna",
@@ -3731,9 +3962,9 @@ dependencies = [
 
 [[package]]
 name = "urlencoding"
-version = "2.1.2"
+version = "2.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8db7427f936968176eaa7cdf81b7f98b980b18495ec28f1b5791ac3bfe3eea9"
+checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
 
 [[package]]
 name = "utf8parse"
@@ -3743,18 +3974,20 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
 name = "uuid"
-version = "1.3.4"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fa2982af2eec27de306107c027578ff7f423d65f7250e40ce0fea8f45248b81"
+checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
 dependencies = [
+ "getrandom",
+ "rand",
  "serde",
 ]
 
 [[package]]
 name = "value-bag"
-version = "1.4.0"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4d330786735ea358f3bc09eea4caa098569c1c93f342d9aca0514915022fe7e"
+checksum = "126e423afe2dd9ac52142e7e9d5ce4135d7e13776c529d27fd6bc49f19e3280b"
 
 [[package]]
 name = "vcpkg"
@@ -3769,12 +4002,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[package]]
-name = "void"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
-
-[[package]]
 name = "wait-timeout"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3785,36 +4012,33 @@ dependencies = [
 
 [[package]]
 name = "waker-fn"
-version = "1.1.0"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
+checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
 
 [[package]]
 name = "walkdir"
-version = "2.3.2"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
+checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
 dependencies = [
  "same-file",
- "winapi",
  "winapi-util",
 ]
 
 [[package]]
 name = "want"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0"
+checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
 dependencies = [
- "log",
  "try-lock",
 ]
 
 [[package]]
 name = "warp"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba431ef570df1287f7f8b07e376491ad54f84d26ac473489427231e1718e1f69"
+version = "0.3.6"
+source = "git+https://github.com/seanmonstar/warp.git?rev=7b07043cee0ca24e912155db4e8f6d9ab7c049ed#7b07043cee0ca24e912155db4e8f6d9ab7c049ed"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -3827,14 +4051,13 @@ dependencies = [
  "mime_guess",
  "percent-encoding",
  "pin-project",
- "rustls-pemfile",
+ "rustls-pemfile 2.1.0",
  "scoped-tls",
  "serde",
  "serde_json",
  "serde_urlencoded",
  "tokio",
  "tokio-rustls",
- "tokio-stream",
  "tokio-util",
  "tower-service",
  "tracing",
@@ -3848,9 +4071,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.84"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
+checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -3858,24 +4081,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.84"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
+checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.48",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.34"
+version = "0.4.41"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454"
+checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -3885,9 +4108,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.84"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
+checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -3895,22 +4118,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.84"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
+checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.48",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.84"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
+checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838"
 
 [[package]]
 name = "wchar"
@@ -3936,49 +4159,40 @@ dependencies = [
 
 [[package]]
 name = "web-sys"
-version = "0.3.61"
+version = "0.3.68"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
+checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
 ]
 
 [[package]]
-name = "webpki"
-version = "0.22.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd"
-dependencies = [
- "ring",
- "untrusted 0.7.1",
-]
-
-[[package]]
 name = "webpki-roots"
-version = "0.22.6"
+version = "0.26.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87"
+checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009"
 dependencies = [
- "webpki",
+ "rustls-pki-types",
 ]
 
 [[package]]
 name = "which"
-version = "4.4.0"
+version = "4.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269"
+checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"
 dependencies = [
  "either",
- "libc",
+ "home",
  "once_cell",
+ "rustix 0.38.31",
 ]
 
 [[package]]
 name = "whoami"
-version = "1.4.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c70234412ca409cc04e864e89523cb0fc37f5e1344ebed5a3ebf4192b6b9f68"
+checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50"
 dependencies = [
  "wasm-bindgen",
  "web-sys",
@@ -4002,9 +4216,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.5"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
 dependencies = [
  "winapi",
 ]
@@ -4021,13 +4235,13 @@ version = "0.42.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
 dependencies = [
- "windows_aarch64_gnullvm 0.42.1",
- "windows_aarch64_msvc 0.42.1",
- "windows_i686_gnu 0.42.1",
- "windows_i686_msvc 0.42.1",
- "windows_x86_64_gnu 0.42.1",
- "windows_x86_64_gnullvm 0.42.1",
- "windows_x86_64_msvc 0.42.1",
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
 ]
 
 [[package]]
@@ -4036,7 +4250,7 @@ version = "0.45.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
 dependencies = [
- "windows-targets 0.42.1",
+ "windows-targets 0.42.2",
 ]
 
 [[package]]
@@ -4045,122 +4259,188 @@ version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
- "windows-targets 0.48.0",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
 name = "windows-targets"
-version = "0.42.1"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7"
+checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
 dependencies = [
- "windows_aarch64_gnullvm 0.42.1",
- "windows_aarch64_msvc 0.42.1",
- "windows_i686_gnu 0.42.1",
- "windows_i686_msvc 0.42.1",
- "windows_x86_64_gnu 0.42.1",
- "windows_x86_64_gnullvm 0.42.1",
- "windows_x86_64_msvc 0.42.1",
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
 ]
 
 [[package]]
 name = "windows-targets"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
- "windows_aarch64_gnullvm 0.48.0",
- "windows_aarch64_msvc 0.48.0",
- "windows_i686_gnu 0.48.0",
- "windows_i686_msvc 0.48.0",
- "windows_x86_64_gnu 0.48.0",
- "windows_x86_64_gnullvm 0.48.0",
- "windows_x86_64_msvc 0.48.0",
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.0",
+ "windows_aarch64_msvc 0.52.0",
+ "windows_i686_gnu 0.52.0",
+ "windows_i686_msvc 0.52.0",
+ "windows_x86_64_gnu 0.52.0",
+ "windows_x86_64_gnullvm 0.52.0",
+ "windows_x86_64_msvc 0.52.0",
 ]
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.42.1"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608"
+checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.48.0"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.42.1"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7"
+checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.48.0"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.42.1"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640"
+checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.42.1"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605"
+checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.42.1"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45"
+checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.42.1"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463"
+checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.42.1"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd"
+checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
 
 [[package]]
 name = "winreg"
@@ -4172,6 +4452,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "winreg"
+version = "0.50.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "wslapi"
 version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4193,11 +4483,13 @@ dependencies = [
 
 [[package]]
 name = "xattr"
-version = "0.2.3"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc"
+checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
 dependencies = [
  "libc",
+ "linux-raw-sys 0.4.13",
+ "rustix 0.38.31",
 ]
 
 [[package]]
@@ -4207,6 +4499,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
 
 [[package]]
+name = "zeroize"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
+
+[[package]]
 name = "zip"
 version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4237,11 +4535,11 @@ dependencies = [
 
 [[package]]
 name = "zstd"
-version = "0.12.3+zstd.1.5.2"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76eea132fb024e0e13fd9c2f5d5d595d8a967aa72382ac2f9d39fcc95afd0806"
+checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c"
 dependencies = [
- "zstd-safe 6.0.5+zstd.1.5.4",
+ "zstd-safe 6.0.6",
 ]
 
 [[package]]
@@ -4256,9 +4554,9 @@ dependencies = [
 
 [[package]]
 name = "zstd-safe"
-version = "6.0.5+zstd.1.5.4"
+version = "6.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d56d9e60b4b1758206c238a10165fbcae3ca37b01744e394c463463f6529d23b"
+checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581"
 dependencies = [
  "libc",
  "zstd-sys",
@@ -4266,11 +4564,10 @@ dependencies = [
 
 [[package]]
 name = "zstd-sys"
-version = "2.0.8+zstd.1.5.5"
+version = "2.0.9+zstd.1.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c"
+checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656"
 dependencies = [
  "cc",
- "libc",
  "pkg-config",
 ]
diff --git a/pkgs/tools/networking/edgedb/default.nix b/pkgs/tools/networking/edgedb/default.nix
index bcc62b79d194d..e94ed46364ad5 100644
--- a/pkgs/tools/networking/edgedb/default.nix
+++ b/pkgs/tools/networking/edgedb/default.nix
@@ -1,51 +1,64 @@
-{ stdenv
-, lib
-, patchelf
-, fetchFromGitHub
-, rustPlatform
-, makeBinaryWrapper
-, pkg-config
-, curl
-, Security
-, CoreServices
-, libiconv
-, xz
-, perl
-, substituteAll
-# for passthru.tests:
-, edgedb
-, testers
+{
+  stdenv,
+  lib,
+  patchelf,
+  fetchFromGitHub,
+  rustPlatform,
+  makeBinaryWrapper,
+  pkg-config,
+  curl,
+  Security,
+  CoreServices,
+  libiconv,
+  xz,
+  perl,
+  substituteAll,
+  # for passthru.tests:
+  edgedb,
+  testers,
 }:
-
 rustPlatform.buildRustPackage rec {
   pname = "edgedb";
-  version = "4.1.1";
+  version = "5.1.0";
 
   src = fetchFromGitHub {
     owner = "edgedb";
     repo = "edgedb-cli";
     rev = "v${version}";
-    hash = "sha256-PHtjm3xlGwkDskH3A9/QQrmzt2Xi+sqnQAQV6WG7a6M=";
+    hash = "sha256-znxAtfSeepLQqkPsEzQBp3INZym5BLap6m29C/9z+h8=";
     fetchSubmodules = true;
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "edgedb-derive-0.5.1" = "sha256-1tbWg3bLab3xlVQxb4G+kpXriO+zQpnrwAESy5Tqsu4=";
-      "edgeql-parser-0.1.0" = "sha256-c5xBuW47xXgy8VLR/P7DvVhLBd0rvI6P9w82IPPsTwo=";
+      "edgedb-derive-0.5.1" = "sha256-ATldvarkp/W5bz55qoMtfTMcueWklyKnrJUHvLKlWh0=";
+      "edgeql-parser-0.1.0" = "sha256-KPi2M2UEN+p3V/fcmKtb3K9XTLC4vJ5H+yG8ZfD7RBs=";
       "indexmap-2.0.0-pre" = "sha256-QMOmoUHE1F/sp+NeDpgRGqqacWLHWG02YgZc5vAdXZY=";
       "rexpect-0.5.0" = "sha256-vstAL/fJWWx7WbmRxNItKpzvgGF3SvJDs5isq9ym/OA=";
       "rustyline-8.0.0" = "sha256-CrICwQbHPzS4QdVIEHxt2euX+g+0pFYe84NfMp1daEc=";
       "serde_str-1.0.0" = "sha256-CMBh5lxdQb2085y0jc/DrV6B8iiXvVO2aoZH/lFFjak=";
+      "scram-0.7.0" = "sha256-QTPxyXBpMXCDkRRJEMYly1GKp90khrwwuMI1eHc2H+Y=";
+      "test-cert-gen-0.10.0-pre" = "sha256-Hyk4/iw6/SgEI70vPCNNbE9+nQ0pOAM158hncyUbvp8=";
+      "test-utils-0.1.0" = "sha256-FoF/U89Q9E2Dlmpoh+cfDcScmhcsSNut+rE7BECJSJI=";
+      "warp-0.3.6" = "sha256-knDt2aw/PJ0iabhKg+okwwnEzCY+vQVhE7HKCTM6QbE=";
     };
   };
 
-  nativeBuildInputs = [ makeBinaryWrapper pkg-config perl ];
+  nativeBuildInputs = [
+    makeBinaryWrapper
+    pkg-config
+    perl
+  ];
 
-  buildInputs = [
-    curl
-  ] ++ lib.optionals stdenv.isDarwin [ CoreServices Security libiconv xz ];
+  buildInputs =
+    [ curl ]
+    ++ lib.optionals stdenv.isDarwin [
+      CoreServices
+      Security
+      libiconv
+      xz
+    ];
 
   checkFeatures = [ ];
 
@@ -67,8 +80,15 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "EdgeDB cli";
     homepage = "https://www.edgedb.com/docs/cli/index";
-    license = with licenses; [ asl20 /* or */ mit ];
-    maintainers = with maintainers; [ ahirner kirillrdy ];
+    license = with licenses; [
+      asl20
+      # or
+      mit
+    ];
+    maintainers = with maintainers; [
+      ahirner
+      kirillrdy
+    ];
     mainProgram = "edgedb";
   };
 }
diff --git a/pkgs/tools/networking/eggdrop/default.nix b/pkgs/tools/networking/eggdrop/default.nix
index fad18ce2213f3..7f5b7afb32e72 100644
--- a/pkgs/tools/networking/eggdrop/default.nix
+++ b/pkgs/tools/networking/eggdrop/default.nix
@@ -31,6 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     homepage = "https://www.eggheads.org";
-    description = "An Internet Relay Chat (IRC) bot";
+    description = "Internet Relay Chat (IRC) bot";
   };
 }
diff --git a/pkgs/tools/networking/eternal-terminal/default.nix b/pkgs/tools/networking/eternal-terminal/default.nix
index 27778006b1e18..7a48cbe775291 100644
--- a/pkgs/tools/networking/eternal-terminal/default.nix
+++ b/pkgs/tools/networking/eternal-terminal/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "eternal-terminal";
-  version = "6.2.8";
+  version = "6.2.9";
 
   src = fetchFromGitHub {
     owner = "MisterTea";
     repo = "EternalTerminal";
     rev = "refs/tags/et-v${version}";
-    hash = "sha256-7LhCP7zARpigsDJmA7y/ZIgN06l8aCszXryzPoa4aL0=";
+    hash = "sha256-vukh3a6SxHaVCT4hmoVt4hEGB8Sqylu53Nz8fgBWkTM";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/networking/findomain/default.nix b/pkgs/tools/networking/findomain/default.nix
index deb9bb32fe0a8..e04699ff7458c 100644
--- a/pkgs/tools/networking/findomain/default.nix
+++ b/pkgs/tools/networking/findomain/default.nix
@@ -49,7 +49,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "The fastest and cross-platform subdomain enumerator";
+    description = "Fastest and cross-platform subdomain enumerator";
     homepage = "https://github.com/Findomain/Findomain";
     changelog = "https://github.com/Findomain/Findomain/releases/tag/${version}";
     license = licenses.gpl3Plus;
diff --git a/pkgs/tools/networking/flannel/default.nix b/pkgs/tools/networking/flannel/default.nix
index b4f632722b0b6..2eeb19b51fd38 100644
--- a/pkgs/tools/networking/flannel/default.nix
+++ b/pkgs/tools/networking/flannel/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "flannel";
-  version = "0.25.1";
+  version = "0.25.4";
   rev = "v${version}";
 
-  vendorHash = "sha256-hitYX6Y2ElDhjwgoX5feSNwpTUA6PXqpH70ZnIW9RaM=";
+  vendorHash = "sha256-3Lm8r1Hm27l5iGgZsXI91RT3aDb2QXKAeo2UbA2D+/I=";
 
   src = fetchFromGitHub {
     inherit rev;
     owner = "flannel-io";
     repo = "flannel";
-    sha256 = "sha256-Aa+LPn5fRrv7vzCqqbHzNaVn5nU6/mi09t6y/5nx0+s=";
+    sha256 = "sha256-C/g9InD3BdXZ2k9rZYudYmaNpshJrujGdkL1Jqs9lDM=";
   };
 
   ldflags = [ "-X github.com/flannel-io/flannel/pkg/version.Version=${rev}" ];
diff --git a/pkgs/tools/networking/frp/default.nix b/pkgs/tools/networking/frp/default.nix
index a8adbf7a7d0ea..80cbd67811a65 100644
--- a/pkgs/tools/networking/frp/default.nix
+++ b/pkgs/tools/networking/frp/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "frp";
-  version = "0.57.0";
+  version = "0.58.1";
 
   src = fetchFromGitHub {
     owner = "fatedier";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-TE00xGHe8Dhm9rxD3zlB4Cf8OasPsZQhxoqXFSsSDL8=";
+    hash = "sha256-RVB21zK46uZcKSlT9+Xcpwla/ohahsJN3txhGUhxRM0=";
   };
 
-  vendorHash = "sha256-WtpsgN3zf2fELJ1yXWYSEkqXe1Fx+j3uwoJx6Q17OU8=";
+  vendorHash = "sha256-/FxX1Tl393X/KheBG5aFFhdgKDUhRkd7Ge032P0ZE64=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/networking/ghz/default.nix b/pkgs/tools/networking/ghz/default.nix
index ca48241b8ff81..05b5f0e9b035f 100644
--- a/pkgs/tools/networking/ghz/default.nix
+++ b/pkgs/tools/networking/ghz/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "ghz";
-  version = "0.118.0";
+  version = "0.120.0";
 
   src = fetchFromGitHub {
     owner = "bojand";
     repo = "ghz";
     rev = "v${version}";
-    sha256 = "sha256-oBxkXe5PHdi5H5qSwV2G6+wBTvI4nRJuaRnUiq/3l+c=";
+    sha256 = "sha256-EzyQbMoR4veHbc9VaNfiXMi18wXbTbDPfDxo5NCk7CE=";
   };
 
-  vendorHash = "sha256-h/obb+hJ0XnE7GK7G5djITjiL0OjjIk1q68JM8+EfHo=";
+  vendorHash = "sha256-7TrYWmVKxHKVTyiIak7tRYKE4hgG/4zfsM76bJRxnAk=";
 
   subPackages = [ "cmd/ghz" "cmd/ghz-web" ];
 
diff --git a/pkgs/tools/networking/globalping-cli/default.nix b/pkgs/tools/networking/globalping-cli/default.nix
index 9b158128fe887..25cf1a1e641da 100644
--- a/pkgs/tools/networking/globalping-cli/default.nix
+++ b/pkgs/tools/networking/globalping-cli/default.nix
@@ -29,7 +29,7 @@ buildGoModule rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A simple CLI tool to run networking commands remotely from hundreds of globally distributed servers";
+    description = "Simple CLI tool to run networking commands remotely from hundreds of globally distributed servers";
     homepage = "https://www.jsdelivr.com/globalping/cli";
     license = licenses.mpl20;
     maintainers = with maintainers; [ xyenon ];
diff --git a/pkgs/tools/networking/gnirehtet/default.nix b/pkgs/tools/networking/gnirehtet/default.nix
index 2281822d2e778..95ef1c7402d91 100644
--- a/pkgs/tools/networking/gnirehtet/default.nix
+++ b/pkgs/tools/networking/gnirehtet/default.nix
@@ -44,7 +44,7 @@ rustPlatform.buildRustPackage rec {
   postInstall = ''
     wrapProgram $out/bin/gnirehtet \
     --set GNIREHTET_APK ${apk}/gnirehtet.apk \
-    --set ADB ${androidenv.androidPkgs_9_0.platform-tools}/bin/adb
+    --set ADB ${androidenv.androidPkgs.platform-tools}/bin/adb
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/networking/gobgp/default.nix b/pkgs/tools/networking/gobgp/default.nix
index bd9049ee8cdc1..8969ef275267d 100644
--- a/pkgs/tools/networking/gobgp/default.nix
+++ b/pkgs/tools/networking/gobgp/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "gobgp";
-  version = "3.26.0";
+  version = "3.27.0";
 
   src = fetchFromGitHub {
     owner = "osrg";
     repo = "gobgp";
     rev = "v${version}";
-    sha256 = "sha256-bFxKFAw02M8RmMCFFT3nu3urmvh7Wzi0rryuTi8Hw9k=";
+    sha256 = "sha256-RxBAnElmQkrkMuIC0UpneJXN1OiPhaTPm/tYvc8QSg8=";
   };
 
   vendorHash = "sha256-wrgRQwisOHAhvRbvGXMW5VWkQuEifCwCo3usuxLie4A=";
@@ -24,7 +24,7 @@ buildGoModule rec {
   subPackages = [ "cmd/gobgp" ];
 
   meta = with lib; {
-    description = "A CLI tool for GoBGP";
+    description = "CLI tool for GoBGP";
     homepage = "https://osrg.github.io/gobgp/";
     license = licenses.asl20;
     maintainers = with maintainers; [ higebu ];
diff --git a/pkgs/tools/networking/goflow/default.nix b/pkgs/tools/networking/goflow/default.nix
index f3dc23c3f7450..5ec54a85ee25b 100644
--- a/pkgs/tools/networking/goflow/default.nix
+++ b/pkgs/tools/networking/goflow/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
   vendorHash = "sha256-fOlfVI8v7KqNSRhAPlZBSHKfZRlCbCgjnMV/6bsqDhg=";
 
   meta = with lib; {
-    description = "A NetFlow/IPFIX/sFlow collector in Go";
+    description = "NetFlow/IPFIX/sFlow collector in Go";
     homepage = "https://github.com/cloudflare/goflow";
     license = licenses.bsd3;
     maintainers = with maintainers; [ heph2 ];
diff --git a/pkgs/tools/networking/goodhosts/default.nix b/pkgs/tools/networking/goodhosts/default.nix
index 2604d751d8e81..9f61465b41ff0 100644
--- a/pkgs/tools/networking/goodhosts/default.nix
+++ b/pkgs/tools/networking/goodhosts/default.nix
@@ -26,7 +26,7 @@ buildGoModule rec {
   vendorHash = "sha256-t/pdJWz6rLnBbH8iq9Nqy+E+DD2770UCEcowwStPdqM=";
 
   meta = with lib; {
-    description = "A CLI tool for managing hostfiles";
+    description = "CLI tool for managing hostfiles";
     license = licenses.mit;
     homepage = "https://github.com/goodhosts/cli/tree/main";
     maintainers = with maintainers; [ schinmai-akamai ];
diff --git a/pkgs/tools/networking/gost/default.nix b/pkgs/tools/networking/gost/default.nix
index 2921fab6f2a99..0746e80e37ca4 100644
--- a/pkgs/tools/networking/gost/default.nix
+++ b/pkgs/tools/networking/gost/default.nix
@@ -52,7 +52,7 @@ buildGoModule rec {
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
-    description = "A simple tunnel written in golang";
+    description = "Simple tunnel written in golang";
     homepage = "https://github.com/ginuerzh/gost";
     license = licenses.mit;
     maintainers = with maintainers; [ pmy ];
diff --git a/pkgs/tools/networking/grpc_cli/default.nix b/pkgs/tools/networking/grpc_cli/default.nix
index 84f498b0a1fac..b16f9601ec437 100644
--- a/pkgs/tools/networking/grpc_cli/default.nix
+++ b/pkgs/tools/networking/grpc_cli/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "grpc_cli";
-  version = "1.64.0";
+  version = "1.64.2";
   src = fetchFromGitHub {
     owner = "grpc";
     repo = "grpc";
     rev = "v${version}";
-    hash = "sha256-5mTyXA7jxos+PclImuFDyLTEVkqxm4Kxnorm8R12i9U=";
+    hash = "sha256-ejutUSrDOjNjG0x1DTq8t26C8LoY7OPJsp0r2bX06os=";
     fetchSubmodules = true;
   };
   nativeBuildInputs = [ automake cmake autoconf ];
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
   meta = with lib; {
-    description = "The command line tool for interacting with grpc services";
+    description = "Command line tool for interacting with grpc services";
     homepage = "https://github.com/grpc/grpc";
     license = licenses.asl20;
     maintainers = with maintainers; [ doriath ];
diff --git a/pkgs/tools/networking/grpcui/default.nix b/pkgs/tools/networking/grpcui/default.nix
index 92a5df036de13..2f8106a2854af 100644
--- a/pkgs/tools/networking/grpcui/default.nix
+++ b/pkgs/tools/networking/grpcui/default.nix
@@ -20,7 +20,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" "-X main.version=${version}" ];
 
   meta = with lib; {
-    description = "An interactive web UI for gRPC, along the lines of postman";
+    description = "Interactive web UI for gRPC, along the lines of postman";
     homepage = "https://github.com/fullstorydev/grpcui";
     license = licenses.mit;
     maintainers = with maintainers; [ pradyuman ];
diff --git a/pkgs/tools/networking/guardian-agent/default.nix b/pkgs/tools/networking/guardian-agent/default.nix
deleted file mode 100644
index 46fcdb8dd47b7..0000000000000
--- a/pkgs/tools/networking/guardian-agent/default.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-{ buildGoPackage
-, fetchFromGitHub
-, lib
-, autossh
-, makeWrapper
-, stdenv
-}:
-
-buildGoPackage rec {
-  pname = "guardian-agent";
-  version = "0.7.2";
-
-  src = fetchFromGitHub {
-    owner = "StanfordSNR";
-    repo = pname;
-    rev = "v${version}-beta";
-    sha256 = "05269y944hcabn6dqa66387rdhx81vcqcyjv6m1hdbz5ba8j7mqn";
-  };
-
-  nativeBuildInputs = [ makeWrapper ];
-
-  goPackagePath = "github.com/StanfordSNR/guardian-agent";
-
-  deleteVendor = true;
-  goDeps = ./deps.nix;
-
-  postInstall = ''
-    mkdir -p $out/bin $out/share/doc/${pname}
-    cp -v ./go/src/github.com/StanfordSNR/${pname}/scripts/* $out/bin/
-    cp -vr ./go/src/github.com/StanfordSNR/${pname}/{AUTHORS,doc,LICENSE,README.md} $out/share/doc/guardian-agent
-  '';
-
-  postFixup = ''
-    wrapProgram $out/bin/sga-guard \
-      --prefix PATH : "$out/bin" \
-      --prefix PATH : "${autossh}/bin"
-  '';
-
-  meta = with lib; {
-    description = "Secure ssh-agent forwarding for Mosh and SSH";
-    homepage = "https://github.com/StanfordSNR/guardian-agent";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ mmahut ];
-    platforms = platforms.unix;
-    broken = stdenv.isDarwin; # x/sys/unix needs an update, but software is unmaintained
-  };
-}
diff --git a/pkgs/tools/networking/guardian-agent/deps.nix b/pkgs/tools/networking/guardian-agent/deps.nix
deleted file mode 100644
index 950a346ce8be3..0000000000000
--- a/pkgs/tools/networking/guardian-agent/deps.nix
+++ /dev/null
@@ -1,58 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "github.com/hashicorp/yamux";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/yamux";
-      rev = "2f1d1f20f75d5404f53b9edf6b53ed5505508675";
-      sha256 = "1fga3p6j2g24ip9qjfwn3nqjr00m4nnjz92app7ms3sz7vgq2a7s";
-    };
-  }
-  {
-    goPackagePath = "github.com/howeyc/gopass";
-    fetch = {
-      type = "git";
-      url = "https://github.com/howeyc/gopass";
-      rev = "bf9dde6d0d2c004a008c27aaee91170c786f6db8";
-      sha256 = "1jxzyfnqi0h1fzlsvlkn10bncic803bfhslyijcxk55mgh297g45";
-    };
-  }
-  {
-    goPackagePath = "github.com/sternhenri/interact";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sternhenri/interact";
-      rev = "dfeb9ef2030483f98cee2c86f5775fe6c729f10b";
-      sha256 = "00b09fyy9zhv11mbzm18ngg765g0gyb23bmr4fc83i09w912if7j";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "04f50cda93cbb67f2afa353c52f342100e80e625";
-      sha256 = "0hmfsz9y1ingwsn482hlzzmzs7kr3cklm0ana0mbdk70isw2bxnw";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://github.com/StanfordSNR/crypto";
-      rev = "e451cabda2acd7a416728ee89b75975b8b0c90d7";
-      sha256 = "0aj6fc0i1dm6rdgr1mlv2pl4s0i6sj821k2p4gig45h5mn06mhpz";
-    };
-  }
-  {
-    goPackagePath = "github.com/jessevdk/go-flags";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jessevdk/go-flags";
-      rev = "c0795c8afcf41dd1d786bebce68636c199b3bb45";
-      sha256 = "0xsmr17mrpm9kx34zfzzirwy0n459h975x49p41fs2f6ly6lk9vp";
-    };
-  }
-
-]
diff --git a/pkgs/tools/networking/gvpe/default.nix b/pkgs/tools/networking/gvpe/default.nix
index 04033aaa375c7..13e61e59d3dc1 100644
--- a/pkgs/tools/networking/gvpe/default.nix
+++ b/pkgs/tools/networking/gvpe/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A protected multinode virtual network";
+    description = "Protected multinode virtual network";
     homepage = "http://software.schmorp.de/pkg/gvpe.html";
     maintainers = [ maintainers.raskin ];
     platforms = with platforms; linux ++ freebsd;
diff --git a/pkgs/tools/networking/hblock/default.nix b/pkgs/tools/networking/hblock/default.nix
index 6615c27fe6298..0aa3a75208e4e 100644
--- a/pkgs/tools/networking/hblock/default.nix
+++ b/pkgs/tools/networking/hblock/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hblock";
-  version = "3.4.4";
+  version = "3.4.5";
 
   src = fetchFromGitHub {
     owner = "hectorm";
     repo = "hblock";
     rev = "v${version}";
-    hash = "sha256-cYLpK5zUOzgbcBVrJT/N6Y9kMpg6KD1EthrstoF4sF8=";
+    hash = "sha256-HPQ3SKaQlPEEgWjDCs6tCxi6+3pz1gIqDhHMsPT1hVg=";
   };
 
   buildInputs = [ coreutils curl gnugrep gawk ];
diff --git a/pkgs/tools/networking/hostapd-mana/default.nix b/pkgs/tools/networking/hostapd-mana/default.nix
index 2ca826314c579..b32fe76b02235 100644
--- a/pkgs/tools/networking/hostapd-mana/default.nix
+++ b/pkgs/tools/networking/hostapd-mana/default.nix
@@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/sensepost/hostapd-mana";
-    description = "A featureful rogue wifi access point tool";
+    description = "Featureful rogue wifi access point tool";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bbjubjub ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/networking/hp2p/default.nix b/pkgs/tools/networking/hp2p/default.nix
index 9e2b5d639049c..cd6d6e8b9dd94 100644
--- a/pkgs/tools/networking/hp2p/default.nix
+++ b/pkgs/tools/networking/hp2p/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A MPI based benchmark for network diagnostics";
+    description = "MPI based benchmark for network diagnostics";
     homepage = "https://github.com/cea-hpc/hp2p";
     platforms = platforms.unix;
     license = licenses.cecill-c;
diff --git a/pkgs/tools/networking/hping/default.nix b/pkgs/tools/networking/hping/default.nix
index 11a8cad05b9cd..528bf11e7d94d 100644
--- a/pkgs/tools/networking/hping/default.nix
+++ b/pkgs/tools/networking/hping/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A command-line oriented TCP/IP packet assembler/analyzer";
+    description = "Command-line oriented TCP/IP packet assembler/analyzer";
     homepage = "http://www.hping.org/";
     license = licenses.gpl2Only;
     platforms = platforms.unix;
diff --git a/pkgs/tools/networking/http-prompt/default.nix b/pkgs/tools/networking/http-prompt/default.nix
index 02bb42800abf3..9e3cf2a8b0bfa 100644
--- a/pkgs/tools/networking/http-prompt/default.nix
+++ b/pkgs/tools/networking/http-prompt/default.nix
@@ -26,7 +26,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "An interactive command-line HTTP client featuring autocomplete and syntax highlighting";
+    description = "Interactive command-line HTTP client featuring autocomplete and syntax highlighting";
     mainProgram = "http-prompt";
     homepage = "https://github.com/eliangcs/http-prompt";
     license = licenses.mit;
diff --git a/pkgs/tools/networking/http2tcp/default.nix b/pkgs/tools/networking/http2tcp/default.nix
index b1f3c704b1fa5..c1ee7bf45bb6b 100644
--- a/pkgs/tools/networking/http2tcp/default.nix
+++ b/pkgs/tools/networking/http2tcp/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     maintainers = with maintainers; [ clkamp ];
-    description = "A tool for tunneling TCP connections via HTTP GET requests";
+    description = "Tool for tunneling TCP connections via HTTP GET requests";
     longDescription = ''
       The http2tcp tools allow to tunnel tcp connections (presumably
       ssh) via syntactically correct http requests. It is designed to
diff --git a/pkgs/tools/networking/httperf/default.nix b/pkgs/tools/networking/httperf/default.nix
index 54fdb06b6c588..bc5f17a2420ef 100644
--- a/pkgs/tools/networking/httperf/default.nix
+++ b/pkgs/tools/networking/httperf/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The httperf HTTP load generator";
+    description = "Httperf HTTP load generator";
     homepage = "https://github.com/httperf/httperf";
     maintainers = with maintainers; [ ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/tools/networking/httping/default.nix b/pkgs/tools/networking/httping/default.nix
deleted file mode 100644
index 1933dc41de0f1..0000000000000
--- a/pkgs/tools/networking/httping/default.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, fetchpatch
-, fftw ? null
-, gettext
-, libintl
-, ncurses
-, openssl
-}:
-
-stdenv.mkDerivation rec {
-  pname = "httping";
-  version = "2.9";
-
-  src = fetchFromGitHub {
-    owner = "folkertvanheusden";
-    repo = "HTTPing";
-    rev = "v${version}";
-    hash = "sha256-aExTXXtW03UKMuMjTMx1k/MUpcRMh1PdSPkDGH+Od70=";
-  };
-
-  patches = [
-    # Pull upstream fix for missing <unistd.h>
-    #   https://github.com/folkertvanheusden/HTTPing/pull/8
-    (fetchpatch {
-      name = "add-unistd.patch";
-      url = "https://github.com/folkertvanheusden/HTTPing/commit/aad3c275686344fe9a235faeac4ee3832f3aa8d5.patch";
-      hash = "sha256-bz3AMQTSfSTwUyf9WbkAFWVmFo06ei+Qd55x+RRDREY=";
-    })
-  ];
-
-  nativeBuildInputs = [
-    gettext
-  ];
-
-  buildInputs = [
-    fftw
-    libintl
-    ncurses
-    openssl
-  ];
-
-  makeFlags = [
-    "DESTDIR=$(out)"
-    "PREFIX="
-  ];
-
-  meta = with lib; {
-    homepage = "https://vanheusden.com/httping";
-    description = "ping with HTTP requests";
-    longDescription = ''
-      Give httping an url, and it'll show you how long it takes to connect,
-      send a request and retrieve the reply (only the headers). Be aware that
-      the transmission across the network also takes time! So it measures the
-      latency of the webserver + network. It supports IPv6.
-    '';
-    license = licenses.agpl3Only;
-    maintainers = [];
-    platforms = platforms.linux ++ platforms.darwin;
-    mainProgram = "httping";
-  };
-}
diff --git a/pkgs/tools/networking/httplz/default.nix b/pkgs/tools/networking/httplz/default.nix
index c85c763635d30..e83570f62f043 100644
--- a/pkgs/tools/networking/httplz/default.nix
+++ b/pkgs/tools/networking/httplz/default.nix
@@ -44,7 +44,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A basic http server for hosting a folder fast and simply";
+    description = "Basic http server for hosting a folder fast and simply";
     mainProgram = "httplz";
     homepage = "https://github.com/thecoshman/http";
     changelog = "https://github.com/thecoshman/http/releases/tag/v${version}";
diff --git a/pkgs/tools/networking/hysteria/default.nix b/pkgs/tools/networking/hysteria/default.nix
index b6fdc349b9c71..0d3dcb3cabcd8 100644
--- a/pkgs/tools/networking/hysteria/default.nix
+++ b/pkgs/tools/networking/hysteria/default.nix
@@ -4,16 +4,16 @@
 }:
 buildGoModule rec {
   pname = "hysteria";
-  version = "2.4.4";
+  version = "2.4.5";
 
   src = fetchFromGitHub {
     owner = "apernet";
     repo = pname;
     rev = "app/v${version}";
-    hash = "sha256-p6h9cZYSxyMgLaVASnbHk6Bjdt6tTqj/9vhTS/CaiWA=";
+    hash = "sha256-dRVTlH+g/pwwacrdof3n8OeLMsgZswpOwvtAx13bZGo=";
   };
 
-  vendorHash = "sha256-DiwF8QuEs5JaSL+G6aycW01bXnQtL/GTd5kYsYeJUD4=";
+  vendorHash = "sha256-nrcREOp92jIB8CzdOevYufpIN6l9Tcg/B4tT15d5TOE=";
   proxyVendor = true;
 
   ldflags =
@@ -33,7 +33,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A feature-packed proxy & relay utility optimized for lossy, unstable connections";
+    description = "Feature-packed proxy & relay utility optimized for lossy, unstable connections";
     homepage = "https://github.com/apernet/hysteria";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/tools/networking/ifwifi/default.nix b/pkgs/tools/networking/ifwifi/default.nix
index 8777df72b5e16..e62266c2dc6b2 100644
--- a/pkgs/tools/networking/ifwifi/default.nix
+++ b/pkgs/tools/networking/ifwifi/default.nix
@@ -30,7 +30,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A simple wrapper over nmcli using wifiscanner made in rust";
+    description = "Simple wrapper over nmcli using wifiscanner made in rust";
     mainProgram = "ifwifi";
     longDescription = ''
       In the author's words:
diff --git a/pkgs/tools/networking/igmpproxy/default.nix b/pkgs/tools/networking/igmpproxy/default.nix
index 252f9dd056091..0632b1f48cea4 100644
--- a/pkgs/tools/networking/igmpproxy/default.nix
+++ b/pkgs/tools/networking/igmpproxy/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook ];
 
   meta = with lib; {
-    description = "A daemon that routes multicast using IGMP forwarding";
+    description = "Daemon that routes multicast using IGMP forwarding";
     homepage = "https://github.com/pali/igmpproxy/";
     changelog = "https://github.com/pali/igmpproxy/releases/tag/${version}";
     license = licenses.gpl2Plus;
diff --git a/pkgs/tools/networking/innernet/default.nix b/pkgs/tools/networking/innernet/default.nix
index f4523e0ec201c..0e6480f58dbed 100644
--- a/pkgs/tools/networking/innernet/default.nix
+++ b/pkgs/tools/networking/innernet/default.nix
@@ -51,7 +51,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A private network system that uses WireGuard under the hood";
+    description = "Private network system that uses WireGuard under the hood";
     homepage = "https://github.com/tonarino/innernet";
     changelog = "https://github.com/tonarino/innernet/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/tools/networking/iodine/default.nix b/pkgs/tools/networking/iodine/default.nix
index a684f3a580f56..328d1354ede3c 100644
--- a/pkgs/tools/networking/iodine/default.nix
+++ b/pkgs/tools/networking/iodine/default.nix
@@ -1,21 +1,27 @@
-{ lib, stdenv, fetchFromGitHub, zlib, nettools, nixosTests }:
-
-stdenv.mkDerivation rec {
+{ lib
+, stdenv
+, fetchFromGitHub
+, zlib
+, nettools
+, nixosTests
+}:
+
+stdenv.mkDerivation (finalAttrs: {
   pname = "iodine";
-  version = "unstable-2019-09-27";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "yarrick";
     repo = "iodine";
-    rev = "8e14f18";
-    sha256 = "0k8m99qfjd5n6n56jnq85y7q8h2i2b8yw6ba0kxsz4jyx97lavg3";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-0vDl/F/57puugrEdOtdlpNPMF9ugO7TP3KLWo/7bP2k=";
   };
 
   buildInputs = [ zlib ];
 
   patchPhase = ''sed -i "s,/sbin/route,${nettools}/bin/route," src/tun.c'';
 
-  env.NIX_CFLAGS_COMPILE = "-DIFCONFIGPATH=\"${nettools}/bin/\"";
+  env.NIX_CFLAGS_COMPILE = ''-DIFCONFIGPATH="${nettools}/bin/" -DROUTEPATH="${nettools}/bin/"'';
 
   installFlags = [ "prefix=\${out}" ];
 
@@ -29,4 +35,4 @@ stdenv.mkDerivation rec {
     license = lib.licenses.isc;
     platforms = lib.platforms.unix;
   };
-}
+})
diff --git a/pkgs/tools/networking/iperf3d/default.nix b/pkgs/tools/networking/iperf3d/default.nix
index eb1fa052131be..93490be8e1532 100644
--- a/pkgs/tools/networking/iperf3d/default.nix
+++ b/pkgs/tools/networking/iperf3d/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-3mJBn70sSoDL9GNxgEZqA8S4GrY+DjnYY9Cc5Xe1GFQ=";
 
   meta = with lib; {
-    description = "A iperf3 client and server wrapper for dynamic server ports";
+    description = "Iperf3 client and server wrapper for dynamic server ports";
     mainProgram = "iperf3d";
     homepage = "https://github.com/wobcom/iperf3d";
     license = licenses.mit;
diff --git a/pkgs/tools/networking/juicity/default.nix b/pkgs/tools/networking/juicity/default.nix
index 0bcf6a5d30dcb..84eb2ac006a93 100644
--- a/pkgs/tools/networking/juicity/default.nix
+++ b/pkgs/tools/networking/juicity/default.nix
@@ -39,7 +39,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/juicity/juicity";
-    description = "A quic-based proxy protocol";
+    description = "Quic-based proxy protocol";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ oluceps ];
   };
diff --git a/pkgs/tools/networking/jwhois/default.nix b/pkgs/tools/networking/jwhois/default.nix
index 99a84fbb11d28..b384043cc23ec 100644
--- a/pkgs/tools/networking/jwhois/default.nix
+++ b/pkgs/tools/networking/jwhois/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-Wno-undef-prefix";
 
   meta = {
-    description = "A client for the WHOIS protocol allowing you to query the owner of a domain name";
+    description = "Client for the WHOIS protocol allowing you to query the owner of a domain name";
     homepage = "https://www.gnu.org/software/jwhois/";
     license = lib.licenses.gpl3Only;
     platforms = lib.platforms.unix;
diff --git a/pkgs/tools/networking/kapp/default.nix b/pkgs/tools/networking/kapp/default.nix
index 7a6806d619973..fb1a243d8aac9 100644
--- a/pkgs/tools/networking/kapp/default.nix
+++ b/pkgs/tools/networking/kapp/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kapp";
-  version = "0.62.0";
+  version = "0.62.1";
 
   src = fetchFromGitHub {
     owner = "carvel-dev";
     repo = "kapp";
     rev = "v${version}";
-    hash = "sha256-yaTQ1dE0WiH+FTyWaUZwp2qmpnUdhk+I6IKM8lOHXYM=";
+    hash = "sha256-JwrUkurxSSET8OOfgALXOrM9KnfvXGZuDOnyk3ZoAoQ=";
   };
 
   vendorHash = null;
diff --git a/pkgs/tools/networking/kea/default.nix b/pkgs/tools/networking/kea/default.nix
index 5bdb7bd7607ba..b5247085fbae5 100644
--- a/pkgs/tools/networking/kea/default.nix
+++ b/pkgs/tools/networking/kea/default.nix
@@ -23,11 +23,11 @@
 
 stdenv.mkDerivation rec {
   pname = "kea";
-  version = "2.4.1"; # only even minor versions are stable
+  version = "2.6.0"; # only even minor versions are stable
 
   src = fetchurl {
     url = "https://ftp.isc.org/isc/${pname}/${version}/${pname}-${version}.tar.gz";
-    hash = "sha256-gVxh9cJxyqSh2zHdZW61Cn9uqXPaNpD3yFgUCOGAExo=";
+    hash = "sha256-IHzq4z6zuB7E5qxWBSSahbk3eTM7YqrfOeSJ8R283I0=";
   };
 
   patches = [
diff --git a/pkgs/tools/networking/keepalived/default.nix b/pkgs/tools/networking/keepalived/default.nix
index 80059a664549a..9ffa8d1ee09ea 100644
--- a/pkgs/tools/networking/keepalived/default.nix
+++ b/pkgs/tools/networking/keepalived/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "keepalived";
-  version = "2.2.8";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     owner = "acassen";
     repo = "keepalived";
     rev = "v${version}";
-    sha256 = "sha256-QkebGQCYE4ccUvcxKG3qQ4wqC+RzxGHim8kgHQbIr5Q=";
+    sha256 = "sha256-FAmHhMBCG9sezCfp+WvY1klta2BvnGjztQ87arvJTE0=";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/networking/knock/package.nix b/pkgs/tools/networking/knock/package.nix
index 1197bec808cff..064cd8eff67b5 100644
--- a/pkgs/tools/networking/knock/package.nix
+++ b/pkgs/tools/networking/knock/package.nix
@@ -27,7 +27,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A simple CLI network reachability tester";
+    description = "Simple CLI network reachability tester";
     homepage = "https://codeberg.org/nat-418/knock";
     license = licenses.bsd0;
     changelog = "https://codeberg.org/nat-418/knock/raw/branch/trunk/CHANGELOG.md";
diff --git a/pkgs/tools/networking/lftp/default.nix b/pkgs/tools/networking/lftp/default.nix
index 637214809d41e..a3bf468f21e73 100644
--- a/pkgs/tools/networking/lftp/default.nix
+++ b/pkgs/tools/networking/lftp/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A file transfer program supporting a number of network protocols";
+    description = "File transfer program supporting a number of network protocols";
     homepage = "https://lftp.yar.ru/";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/pkgs/tools/networking/libnids/default.nix b/pkgs/tools/networking/libnids/default.nix
index 97edccfea1731..739c8c57879ac 100644
--- a/pkgs/tools/networking/libnids/default.nix
+++ b/pkgs/tools/networking/libnids/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
   env.NIX_CFLAGS_COMPILE = "-Dg_thread_init= ";
 
   meta = with lib; {
-    description = "An E-component of Network Intrusion Detection System which emulates the IP stack of Linux 2.0.x";
+    description = "E-component of Network Intrusion Detection System which emulates the IP stack of Linux 2.0.x";
     homepage = "https://libnids.sourceforge.net/";
     license = licenses.gpl2Only;
     maintainers = [ maintainers.symphorien ];
diff --git a/pkgs/tools/networking/libreswan/default.nix b/pkgs/tools/networking/libreswan/default.nix
index 690cbfbbba5f5..07f35663752bc 100644
--- a/pkgs/tools/networking/libreswan/default.nix
+++ b/pkgs/tools/networking/libreswan/default.nix
@@ -108,7 +108,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://libreswan.org";
-    description = "A free software implementation of the VPN protocol based on IPSec and the Internet Key Exchange";
+    description = "Free software implementation of the VPN protocol based on IPSec and the Internet Key Exchange";
     platforms = platforms.linux ++ platforms.freebsd;
     license = with licenses; [ gpl2Plus mpl20 ] ;
     maintainers = with maintainers; [ afranchuk rnhmjoj ];
diff --git a/pkgs/tools/networking/ligolo-ng/default.nix b/pkgs/tools/networking/ligolo-ng/default.nix
index 7eee1ccb047dd..80f26666f0ffc 100644
--- a/pkgs/tools/networking/ligolo-ng/default.nix
+++ b/pkgs/tools/networking/ligolo-ng/default.nix
@@ -30,10 +30,9 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A tunneling/pivoting tool that uses a TUN interface";
+    description = "Tunneling/pivoting tool that uses a TUN interface";
     homepage = "https://github.com/tnpitsecurity/ligolo-ng";
     changelog = "https://github.com/nicocha30/ligolo-ng/releases/tag/v${version}";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/tools/networking/logmein-hamachi/default.nix b/pkgs/tools/networking/logmein-hamachi/default.nix
index aef393c919378..d6a7648c445ba 100644
--- a/pkgs/tools/networking/logmein-hamachi/default.nix
+++ b/pkgs/tools/networking/logmein-hamachi/default.nix
@@ -34,7 +34,7 @@ in stdenv.mkDerivation rec {
   dontPatchELF = true;
 
   meta = with lib; {
-    description = "A hosted VPN service that lets you securely extend LAN-like networks to distributed teams";
+    description = "Hosted VPN service that lets you securely extend LAN-like networks to distributed teams";
     homepage = "https://secure.logmein.com/products/hamachi/";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfreeRedistributable;
diff --git a/pkgs/tools/networking/lychee/default.nix b/pkgs/tools/networking/lychee/default.nix
index 610869897b7b8..bc6f1d3a1f39a 100644
--- a/pkgs/tools/networking/lychee/default.nix
+++ b/pkgs/tools/networking/lychee/default.nix
@@ -1,4 +1,5 @@
-{ lib
+{ callPackage
+, lib
 , stdenv
 , rustPlatform
 , fetchFromGitHub
@@ -6,6 +7,7 @@
 , openssl
 , Security
 , SystemConfiguration
+, testers
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -41,8 +43,17 @@ rustPlatform.buildRustPackage rec {
     "--skip=src/lib.rs"
   ];
 
+  passthru.tests = {
+    # NOTE: These assume that testers.lycheeLinkCheck uses this exact derivation.
+    #       Which is true most of the time, but not necessarily after overriding.
+    ok = callPackage ./tests/ok.nix { };
+    fail = callPackage ./tests/fail.nix { };
+    fail-emptyDirectory = callPackage ./tests/fail-emptyDirectory.nix { };
+    network = testers.runNixOSTest ./tests/network.nix;
+  };
+
   meta = with lib; {
-    description = "A fast, async, stream-based link checker written in Rust";
+    description = "Fast, async, stream-based link checker written in Rust";
     homepage = "https://github.com/lycheeverse/lychee";
     downloadPage = "https://github.com/lycheeverse/lychee/releases/tag/v${version}";
     license = with licenses; [ asl20 mit ];
diff --git a/pkgs/tools/networking/lychee/tests/fail-emptyDirectory.nix b/pkgs/tools/networking/lychee/tests/fail-emptyDirectory.nix
new file mode 100644
index 0000000000000..9db4b23b1bc96
--- /dev/null
+++ b/pkgs/tools/networking/lychee/tests/fail-emptyDirectory.nix
@@ -0,0 +1,28 @@
+{ runCommand, testers, emptyDirectory }:
+let
+  sitePkg = runCommand "site" { } ''
+    dist=$out/dist
+    mkdir -p $dist
+    echo "<html><body><a href=\"https://example.com/foo\">foo</a></body></html>" > $dist/index.html
+    echo "<html><body></body></html>" > $dist/foo.html
+  '';
+  check = testers.lycheeLinkCheck {
+    site = sitePkg + "/dist";
+    remap = {
+      # Normally would recommend to append a subpath that hints why it's forbidden; see example in docs.
+      # However, we also want to test that a package is converted to a string *before*
+      # it's tested whether it's a store path. Mistake made during development caused:
+      # cannot check URI: InvalidUrlRemap("The remapping pattern must produce a valid URL, but it is not: /nix/store/4d0ix...empty-directory/foo
+      "https://example.com" = emptyDirectory;
+    };
+  };
+
+  failure = testers.testBuildFailure check;
+in
+  runCommand "link-check-fail" { inherit failure; } ''
+    # The details of the message might change, but we have to make sure the
+    # correct error is reported, so that we know it's not something else that
+    # went wrong.
+    grep 'empty-directory/foo.*Cannot find file' $failure/testBuildFailure.log >/dev/null
+    touch $out
+  ''
diff --git a/pkgs/tools/networking/lychee/tests/fail.nix b/pkgs/tools/networking/lychee/tests/fail.nix
new file mode 100644
index 0000000000000..5a83814d3c443
--- /dev/null
+++ b/pkgs/tools/networking/lychee/tests/fail.nix
@@ -0,0 +1,21 @@
+{ runCommand, testers }:
+let
+  sitePkg = runCommand "site" { } ''
+    dist=$out/dist
+    mkdir -p $dist
+    echo "<html><body><a href=\"https://example.com/foo.html#foos-missing-anchor\">foo</a></body></html>" > $dist/index.html
+    echo "<html><body><a href=\".\">index</a></body></html>" > $dist/foo.html
+  '';
+
+  linkCheck = testers.lycheeLinkCheck rec {
+    site = sitePkg + "/dist";
+    remap = { "https://exampl[e]\\.com" = site; };
+  };
+
+  failure = testers.testBuildFailure linkCheck;
+
+in
+  runCommand "link-check-fail" { inherit failure; } ''
+    grep -F foos-missing-anchor $failure/testBuildFailure.log >/dev/null
+    touch $out
+  ''
diff --git a/pkgs/tools/networking/lychee/tests/network.nix b/pkgs/tools/networking/lychee/tests/network.nix
new file mode 100644
index 0000000000000..8d7f908a58053
--- /dev/null
+++ b/pkgs/tools/networking/lychee/tests/network.nix
@@ -0,0 +1,66 @@
+{ config, hostPkgs, lib, ... }:
+let
+  sitePkg = hostPkgs.runCommand "site" { } ''
+    dist=$out/dist
+    mkdir -p $dist
+    echo "<html><body><a href=\"http://example/foo.html\">foo</a></body></html>" > $dist/index.html
+    echo "<html><body><a href=\".\">index</a></body></html>" > $dist/foo.html
+  '';
+  check = config.node.pkgs.testers.lycheeLinkCheck {
+    site = sitePkg;
+  };
+in
+{
+  name = "testers-lychee-link-check-run";
+  nodes.client = { ... }: { };
+  nodes.example = {
+    networking.firewall.allowedTCPPorts = [ 80 ];
+    services.nginx = {
+      enable = true;
+      virtualHosts."example" = {
+        locations."/" = {
+          root = "/var/www/example";
+          index = "index.html";
+        };
+      };
+    };
+
+  };
+  testScript = ''
+    start_all()
+
+    # SETUP
+
+    example.succeed("""
+        mkdir -p /var/www/example
+        echo '<h1>hi</h1>' > /var/www/example/index.html
+    """)
+    client.wait_until_succeeds("""
+        curl --fail -v http://example
+    """)
+
+    # FAILURE CASE
+
+    client.succeed("""
+        exec 1>&2
+        r=0
+        ${lib.getExe check.online} || {
+          r=$?
+        }
+        if [[ $r -ne 2 ]]; then
+            echo "lycheeLinkCheck unexpected exit code $r"
+            exit 1
+        fi
+    """)
+
+    # SUCCESS CASE
+
+    example.succeed("""
+        echo '<h1>foo</h1>' > /var/www/example/foo.html
+    """)
+
+    client.succeed("""
+        ${lib.getExe check.online}
+    """)
+  '';
+}
diff --git a/pkgs/tools/networking/lychee/tests/ok.nix b/pkgs/tools/networking/lychee/tests/ok.nix
new file mode 100644
index 0000000000000..6a6c0b9c87b49
--- /dev/null
+++ b/pkgs/tools/networking/lychee/tests/ok.nix
@@ -0,0 +1,12 @@
+{ runCommand, testers }:
+let
+  sitePkg = runCommand "site" { } ''
+    dist=$out/dist
+    mkdir -p $dist
+    echo "<html><body><a href=\"https://example.com/foo.html\">foo</a><a href=\"https://nixos.org/this-is-ignored.html\">bar</a></body></html>" > $dist/index.html
+    echo "<html><body><a href=\".\">index</a></body></html>" > $dist/foo.html
+  '';
+in testers.lycheeLinkCheck rec {
+  site = sitePkg + "/dist";
+  remap = { "https://example.com" = site; };
+}
diff --git a/pkgs/tools/networking/maubot/default.nix b/pkgs/tools/networking/maubot/default.nix
index 7794395180db1..6ea75522701ae 100644
--- a/pkgs/tools/networking/maubot/default.nix
+++ b/pkgs/tools/networking/maubot/default.nix
@@ -125,7 +125,7 @@ let
     };
 
     meta = with lib; {
-      description = "A plugin-based Matrix bot system written in Python";
+      description = "Plugin-based Matrix bot system written in Python";
       homepage = "https://maubot.xyz/";
       changelog = "https://github.com/maubot/maubot/blob/v${version}/CHANGELOG.md";
       license = licenses.agpl3Plus;
diff --git a/pkgs/tools/networking/mdk4/default.nix b/pkgs/tools/networking/mdk4/default.nix
index 53713f473a169..2358e90831456 100644
--- a/pkgs/tools/networking/mdk4/default.nix
+++ b/pkgs/tools/networking/mdk4/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation {
   makeFlags = [ "PREFIX=$(out)" "SBINDIR=$(PREFIX)/bin" ];
 
   meta = with lib; {
-    description = "A tool that injects data into wireless networks";
+    description = "Tool that injects data into wireless networks";
     homepage = "https://github.com/aircrack-ng/mdk4";
     maintainers = with maintainers; [ moni ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/tools/networking/minio-client/default.nix b/pkgs/tools/networking/minio-client/default.nix
index 34325cab9edb3..e3507a2fde4c3 100644
--- a/pkgs/tools/networking/minio-client/default.nix
+++ b/pkgs/tools/networking/minio-client/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "minio-client";
-  version = "2024-05-09T17-04-24Z";
+  version = "2024-06-10T16-44-15Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "mc";
     rev = "RELEASE.${version}";
-    sha256 = "sha256-S7bi7BTbsbXUFoDpm0IhOvjnumcKbewV0celUxAx57g=";
+    sha256 = "sha256-PC8AhgOhNxGUQmHoqKDjc2eNBgp3OIVL22Xy5ag8e/c=";
   };
 
-  vendorHash = "sha256-vqPSzzNIvy+9J9bPE4hxWvRPuPKpB8ahuu6ENnFmfJ0=";
+  vendorHash = "sha256-2dXaL/lGgvF191RVfew7b67AQwCOpE2szJudegve92A=";
 
   subPackages = [ "." ];
 
@@ -30,7 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/minio/mc";
-    description = "A replacement for ls, cp, mkdir, diff and rsync commands for filesystems and object storage";
+    description = "Replacement for ls, cp, mkdir, diff and rsync commands for filesystems and object storage";
     maintainers = with maintainers; [ bachp eelco ];
     mainProgram = "mc";
     license = licenses.asl20;
diff --git a/pkgs/tools/networking/miniupnpc/default.nix b/pkgs/tools/networking/miniupnpc/default.nix
index f1a639b720609..b5d577d6139e2 100644
--- a/pkgs/tools/networking/miniupnpc/default.nix
+++ b/pkgs/tools/networking/miniupnpc/default.nix
@@ -1,18 +1,22 @@
 { lib
 , stdenv
-, fetchurl
+, fetchFromGitHub
 , cmake
 }:
 
 stdenv.mkDerivation rec {
   pname = "miniupnpc";
-  version = "2.2.6";
+  version = "2.2.7";
 
-  src = fetchurl {
-    url = "https://miniupnp.tuxfamily.org/files/${pname}-${version}.tar.gz";
-    sha256 = "sha256-N/zZGVNQjD5i1pZLuP+8XUfz4TSB+lTmIU/MaHBMZvE=";
+  src = fetchFromGitHub {
+    owner = "miniupnp";
+    repo = "miniupnp";
+    rev = "miniupnpc_${lib.replaceStrings ["."] ["_"] version}";
+    hash = "sha256-cIijY1NcdF169tibfB13845UT9ZoJ/CZ+XLES9ctWTY=";
   };
 
+  sourceRoot = "${src.name}/miniupnpc";
+
   nativeBuildInputs = [ cmake ];
 
   doCheck = !stdenv.isFreeBSD;
@@ -33,7 +37,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://miniupnp.tuxfamily.org/";
-    description = "A client that implements the UPnP Internet Gateway Device (IGD) specification";
+    description = "Client that implements the UPnP Internet Gateway Device (IGD) specification";
     platforms = with platforms; linux ++ freebsd ++ darwin;
     license = licenses.bsd3;
     mainProgram = "upnpc";
diff --git a/pkgs/tools/networking/miniupnpd/default.nix b/pkgs/tools/networking/miniupnpd/default.nix
index 974fb371bab4e..16476ab33fba6 100644
--- a/pkgs/tools/networking/miniupnpd/default.nix
+++ b/pkgs/tools/networking/miniupnpd/default.nix
@@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://miniupnp.tuxfamily.org/";
-    description = "A daemon that implements the UPnP Internet Gateway Device (IGD) specification";
+    description = "Daemon that implements the UPnP Internet Gateway Device (IGD) specification";
     platforms = platforms.linux;
     license = licenses.bsd3;
     mainProgram = "miniupnpd";
diff --git a/pkgs/tools/networking/mockoon/default.nix b/pkgs/tools/networking/mockoon/default.nix
index 362d400f48d5d..76d32bd24666f 100644
--- a/pkgs/tools/networking/mockoon/default.nix
+++ b/pkgs/tools/networking/mockoon/default.nix
@@ -29,7 +29,7 @@ appimageTools.wrapType2 {
   '';
 
   meta = with lib; {
-    description = "The easiest and quickest way to run mock APIs locally";
+    description = "Easiest and quickest way to run mock APIs locally";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     homepage = "https://mockoon.com";
     license = licenses.mit;
diff --git a/pkgs/tools/networking/modemmanager/default.nix b/pkgs/tools/networking/modemmanager/default.nix
index d432b590c5c3f..a91854865b1b2 100644
--- a/pkgs/tools/networking/modemmanager/default.nix
+++ b/pkgs/tools/networking/modemmanager/default.nix
@@ -4,7 +4,6 @@
 , fetchpatch
 , glib
 , libgudev
-, polkit
 , ppp
 , gettext
 , pkg-config
@@ -12,14 +11,19 @@
 , python3
 , libmbim
 , libqmi
-, systemd
 , bash-completion
 , meson
 , ninja
 , vala
-, gobject-introspection
 , dbus
 , bash
+, gobject-introspection
+, buildPackages
+, withIntrospection ? lib.meta.availableOn stdenv.hostPlatform gobject-introspection && stdenv.hostPlatform.emulatorAvailable buildPackages
+, polkit
+, withPolkit ? lib.meta.availableOn stdenv.hostPlatform polkit
+, systemd
+, withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd
 }:
 
 stdenv.mkDerivation rec {
@@ -51,25 +55,29 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     meson
     ninja
-    vala
-    gobject-introspection
     gettext
+    glib
     pkg-config
     libxslt
     python3
+  ] ++ lib.optionals withIntrospection [
+    gobject-introspection
+    vala
   ];
 
   buildInputs = [
     glib
     libgudev
-    polkit
     ppp
     libmbim
     libqmi
-    systemd
     bash-completion
     dbus
     bash # shebangs in share/ModemManager/fcc-unlock.available.d/
+  ] ++ lib.optionals withPolkit [
+    polkit
+  ] ++ lib.optionals withSystemd [
+    systemd
   ];
 
   nativeInstallCheckInputs = [
@@ -81,9 +89,15 @@ stdenv.mkDerivation rec {
   mesonFlags = [
     "-Dudevdir=${placeholder "out"}/lib/udev"
     "-Ddbus_policy_dir=${placeholder "out"}/share/dbus-1/system.d"
+    "-Dsystemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
     "--sysconfdir=/etc"
     "--localstatedir=/var"
-    "-Dvapi=true"
+    (lib.mesonBool "introspection" withIntrospection)
+    (lib.mesonBool "qrtr" withIntrospection)
+    (lib.mesonBool "vapi" withIntrospection)
+    (lib.mesonBool "systemd_suspend_resume" withSystemd)
+    (lib.mesonBool "systemd_journal" withSystemd)
+    (lib.mesonOption "polkit" (if withPolkit then "strict" else "no"))
   ];
 
   postPatch = ''
@@ -96,7 +110,7 @@ stdenv.mkDerivation rec {
   # load libraries from the install path, which doesn't usually exist
   # when `meson test' is run.  So to work around that, we run it as an
   # install check instead, when those paths will have been created.
-  doInstallCheck = true;
+  doInstallCheck = withIntrospection;
   installCheckPhase = ''
     runHook preInstallCheck
     export G_TEST_DBUS_DAEMON="${dbus}/bin/dbus-daemon"
diff --git a/pkgs/tools/networking/moodle-dl/default.nix b/pkgs/tools/networking/moodle-dl/default.nix
index 76c3e4b1a20a4..8d220524cdb27 100644
--- a/pkgs/tools/networking/moodle-dl/default.nix
+++ b/pkgs/tools/networking/moodle-dl/default.nix
@@ -1,31 +1,40 @@
-{ lib, python3Packages, fetchPypi }:
+{ lib, python3Packages, fetchFromGitHub, gitUpdater }:
 
 python3Packages.buildPythonApplication rec {
   pname = "moodle-dl";
-  version = "2.2.2.4";
+  version = "2.3.9";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-76JU/uYJH7nVWCR+d8vvjYCCSMfe/8R9l756AmzZPHU=";
+  src = fetchFromGitHub {
+    owner = "C0D3D3V";
+    repo = "Moodle-DL";
+    rev = "refs/tags/${version}";
+    hash = "sha256-GTOeqHWtFsuf5KcklEidjBNJP/9rtMGnQFym3PSp+ss=";
   };
 
   propagatedBuildInputs = with python3Packages; [
-    sentry-sdk
-    colorama
-    yt-dlp
+    aiodns
+    aiofiles
+    aiohttp
     certifi
+    colorama
+    colorlog
     html2text
+    readchar
     requests
-    aioxmpp
+    sentry-sdk
+    xmpppy
+    yt-dlp
   ];
 
   # upstream has no tests
   doCheck = false;
 
+  passthru.updateScript = gitUpdater { };
+
   meta = with lib; {
     homepage = "https://github.com/C0D3D3V/Moodle-Downloader-2";
     maintainers = [ maintainers.kmein ];
-    description = "A Moodle downloader that downloads course content fast from Moodle";
+    description = "Moodle downloader that downloads course content fast from Moodle";
     mainProgram = "moodle-dl";
     license = licenses.gpl3Plus;
   };
diff --git a/pkgs/tools/networking/motrix/default.nix b/pkgs/tools/networking/motrix/default.nix
index 2d0919cb0aceb..8c26a67352aaa 100644
--- a/pkgs/tools/networking/motrix/default.nix
+++ b/pkgs/tools/networking/motrix/default.nix
@@ -27,7 +27,7 @@ appimageTools.wrapType2 {
   '';
 
   meta = with lib; {
-    description = "A full-featured download manager";
+    description = "Full-featured download manager";
     homepage = "https://motrix.app";
     license = licenses.mit;
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/tools/networking/mtr/default.nix b/pkgs/tools/networking/mtr/default.nix
index 6343cf53fb2af..d36dcef4f0804 100644
--- a/pkgs/tools/networking/mtr/default.nix
+++ b/pkgs/tools/networking/mtr/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A network diagnostics tool";
+    description = "Network diagnostics tool";
     homepage = "https://www.bitwizard.nl/mtr/";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ koral orivej raskin globin ];
diff --git a/pkgs/tools/networking/mu/default.nix b/pkgs/tools/networking/mu/default.nix
index 3472534cbe816..b54c07eae9afb 100644
--- a/pkgs/tools/networking/mu/default.nix
+++ b/pkgs/tools/networking/mu/default.nix
@@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
   env.LANG = "C.UTF-8";
 
   meta = with lib; {
-    description = "A collection of utilities for indexing and searching Maildirs";
+    description = "Collection of utilities for indexing and searching Maildirs";
     license = licenses.gpl3Plus;
     homepage = "https://www.djcbsoftware.nl/code/mu/";
     changelog = "https://github.com/djcb/mu/releases/tag/v${version}";
diff --git a/pkgs/tools/networking/muffet/default.nix b/pkgs/tools/networking/muffet/default.nix
index 3914c4af581c6..ea2fc8604650d 100644
--- a/pkgs/tools/networking/muffet/default.nix
+++ b/pkgs/tools/networking/muffet/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
   vendorHash = "sha256-3kURSzwzM4QPCbb8C1vRb6Mr46XKNyZF0sAze5Z9xsg=";
 
   meta = with lib; {
-    description = "A website link checker which scrapes and inspects all pages in a website recursively";
+    description = "Website link checker which scrapes and inspects all pages in a website recursively";
     homepage = "https://github.com/raviqqe/muffet";
     changelog = "https://github.com/raviqqe/muffet/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/tools/networking/mutt-ics/default.nix b/pkgs/tools/networking/mutt-ics/default.nix
index a8f3ca9d2ae6e..9f92dc9e547a7 100644
--- a/pkgs/tools/networking/mutt-ics/default.nix
+++ b/pkgs/tools/networking/mutt-ics/default.nix
@@ -14,7 +14,7 @@ with python3.pkgs; buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/dmedvinsky/mutt-ics";
-    description = "A tool to show calendar event details in Mutt";
+    description = "Tool to show calendar event details in Mutt";
     mainProgram = "mutt-ics";
     license = licenses.mit;
     maintainers = with maintainers; [ mh182 ];
diff --git a/pkgs/tools/networking/namespaced-openvpn/default.nix b/pkgs/tools/networking/namespaced-openvpn/default.nix
index abcf006b76415..3a879b330a8ba 100644
--- a/pkgs/tools/networking/namespaced-openvpn/default.nix
+++ b/pkgs/tools/networking/namespaced-openvpn/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/slingamn/namespaced-openvpn";
-    description = "Network namespace isolation for OpenVPN tunnels.";
+    description = "Network namespace isolation for OpenVPN tunnels";
     license = licenses.mit;
     maintainers = [ maintainers.lodi ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/networking/narrowlink/default.nix b/pkgs/tools/networking/narrowlink/default.nix
index 9000ad282cbfe..d56c207eeb5e8 100644
--- a/pkgs/tools/networking/narrowlink/default.nix
+++ b/pkgs/tools/networking/narrowlink/default.nix
@@ -30,7 +30,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = {
-    description = "A self-hosted solution to enable secure connectivity between devices across restricted networks like NAT or firewalls";
+    description = "Self-hosted solution to enable secure connectivity between devices across restricted networks like NAT or firewalls";
     homepage = "https://github.com/narrowlink/narrowlink";
     license = with lib.licenses; [ agpl3Only mpl20 ]; # the gateway component is AGPLv3, the rest is MPLv2
     maintainers = with lib.maintainers; [ dit7ya ];
diff --git a/pkgs/tools/networking/ndisc6/default.nix b/pkgs/tools/networking/ndisc6/default.nix
index a0257b72cfdab..6463c1e94ddb2 100644
--- a/pkgs/tools/networking/ndisc6/default.nix
+++ b/pkgs/tools/networking/ndisc6/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.remlab.net/ndisc6/";
-    description = "A small collection of useful tools for IPv6 networking";
+    description = "Small collection of useful tools for IPv6 networking";
     maintainers = with maintainers; [ eelco ];
     platforms = platforms.linux;
     license = licenses.gpl2Only;
diff --git a/pkgs/tools/networking/ndjbdns/default.nix b/pkgs/tools/networking/ndjbdns/default.nix
index 7f494de414324..e5a3837657b17 100644
--- a/pkgs/tools/networking/ndjbdns/default.nix
+++ b/pkgs/tools/networking/ndjbdns/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
     ++ lib.optional stdenv.isLinux systemd;
 
   meta = with lib; {
-    description = "A brand new release of the Djbdns";
+    description = "Brand new release of the Djbdns";
     longDescription = ''
       Djbdns is a fully‐fledged Domain Name System(DNS), originally written by the eminent author of qmail, Dr. D J Bernstein.
     '';
diff --git a/pkgs/tools/networking/nebula/default.nix b/pkgs/tools/networking/nebula/default.nix
index 09123767d1160..0f6c0cc8b7542 100644
--- a/pkgs/tools/networking/nebula/default.nix
+++ b/pkgs/tools/networking/nebula/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "nebula";
-  version = "1.9.0";
+  version = "1.9.3";
 
   src = fetchFromGitHub {
     owner = "slackhq";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-JCYH3MTHHIKTA12G99e9VJQtQ6UDSxdTNCLX6ZeOKsM=";
+    hash = "sha256-+RferzOPlx7UuqpckQBY/RDO9gptknhuan+Es0Vf/yM=";
   };
 
   vendorHash = "sha256-4BnFvA0dxsEK7ictDUZ6nol6PtM54kk9dwKPTQbRUR0=";
diff --git a/pkgs/tools/networking/netassert/default.nix b/pkgs/tools/networking/netassert/default.nix
index d226b5345681f..caf473ea46c26 100644
--- a/pkgs/tools/networking/netassert/default.nix
+++ b/pkgs/tools/networking/netassert/default.nix
@@ -28,7 +28,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/controlplaneio/netassert";
     changelog = "https://github.com/controlplaneio/netassert/blob/${src.rev}/CHANGELOG.md";
-    description = "A command line utility to test network connectivity between kubernetes objects";
+    description = "Command line utility to test network connectivity between kubernetes objects";
     longDescription = ''
       NetAssert is a command line utility to test network connectivity between kubernetes objects.
       It currently supports Deployment, Pod, Statefulset and Daemonset.
diff --git a/pkgs/tools/networking/netbird/default.nix b/pkgs/tools/networking/netbird/default.nix
index 54eab181ac20f..b10663216e035 100644
--- a/pkgs/tools/networking/netbird/default.nix
+++ b/pkgs/tools/networking/netbird/default.nix
@@ -31,16 +31,16 @@ let
 in
 buildGoModule rec {
   pname = "netbird";
-  version = "0.27.7";
+  version = "0.27.10";
 
   src = fetchFromGitHub {
     owner = "netbirdio";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-byUmgttd0v47G1Powww/YtXOw7TT6Fe2uoOuBOp2l78=";
+    hash = "sha256-eliLEyw++NE+OTu4TNJWLptPDVCYUySRciBRoebmXYc=";
   };
 
-  vendorHash = "sha256-LPq6ovulE+xdoRaQpwA0mNqw3kFxMs/am1ucO8UmDtU=";
+  vendorHash = "sha256-gV/Jx5QEVw2PjMP3BRkZCZ0lo5i8DUddSs+yntfBcTM=";
 
   nativeBuildInputs = [ installShellFiles ] ++ lib.optional ui pkg-config;
 
diff --git a/pkgs/tools/networking/netdiscover/default.nix b/pkgs/tools/networking/netdiscover/default.nix
index 3aec143b3a56d..f58a6903943bc 100644
--- a/pkgs/tools/networking/netdiscover/default.nix
+++ b/pkgs/tools/networking/netdiscover/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   # Running update-oui-database.sh would probably make the build irreproducible
 
   meta = with lib; {
-    description = "A network address discovering tool, developed mainly for those wireless networks without dhcp server, it also works on hub/switched networks";
+    description = "Network address discovering tool, developed mainly for those wireless networks without dhcp server, it also works on hub/switched networks";
     homepage = "https://github.com/netdiscover-scanner/netdiscover";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ vdot0x23 ];
diff --git a/pkgs/tools/networking/nethogs/default.nix b/pkgs/tools/networking/nethogs/default.nix
index 8c2d4ba84291e..c01e2c2cff0d4 100644
--- a/pkgs/tools/networking/nethogs/default.nix
+++ b/pkgs/tools/networking/nethogs/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   installFlags = [ "PREFIX=$(out)" "sbin=$(out)/bin" ];
 
   meta = with lib; {
-    description = "A small 'net top' tool, grouping bandwidth by process";
+    description = "Small 'net top' tool, grouping bandwidth by process";
     longDescription = ''
       NetHogs is a small 'net top' tool. Instead of breaking the traffic down
       per protocol or per subnet, like most tools do, it groups bandwidth by
diff --git a/pkgs/tools/networking/netmask/default.nix b/pkgs/tools/networking/netmask/default.nix
index 008688a757c54..4f55df3cc2792 100644
--- a/pkgs/tools/networking/netmask/default.nix
+++ b/pkgs/tools/networking/netmask/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/tlby/netmask";
-    description = "An IP address formatting tool ";
+    description = "IP address formatting tool ";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.jensbin ];
diff --git a/pkgs/tools/networking/netselect/default.nix b/pkgs/tools/networking/netselect/default.nix
index be68e3e2c6009..aa8d81dc7d681 100644
--- a/pkgs/tools/networking/netselect/default.nix
+++ b/pkgs/tools/networking/netselect/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/apenwarr/netselect";
-    description = "An ultrafast intelligent parallelizing binary-search implementation of \"ping\"";
+    description = "Ultrafast intelligent parallelizing binary-search implementation of \"ping\"";
     license = licenses.bsd3;
     platforms = platforms.linux;
   };
diff --git a/pkgs/tools/networking/networkmanager/default.nix b/pkgs/tools/networking/networkmanager/default.nix
index 3c338ddc10cb7..22d774f086bcc 100644
--- a/pkgs/tools/networking/networkmanager/default.nix
+++ b/pkgs/tools/networking/networkmanager/default.nix
@@ -60,11 +60,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "networkmanager";
-  version = "1.46.0";
+  version = "1.48.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/NetworkManager/${lib.versions.majorMinor version}/NetworkManager-${version}.tar.xz";
-    hash = "sha256-ciZJ4lNiaTszQ3FHOAKnKbDsnuKDN1CWkF+GiAjnQGg=";
+    hash = "sha256-/IC5Qt444ylGjm/B37QKrWp40C3fa47DH5rMZGC4cj8=";
   };
 
   outputs = [ "out" "dev" "devdoc" "man" "doc" ];
diff --git a/pkgs/tools/networking/networkmanager/fix-paths.patch b/pkgs/tools/networking/networkmanager/fix-paths.patch
index e2010d8e64eb4..ecdb60ceeb82f 100644
--- a/pkgs/tools/networking/networkmanager/fix-paths.patch
+++ b/pkgs/tools/networking/networkmanager/fix-paths.patch
@@ -11,10 +11,10 @@ index 148acade5c..6395fbfbe5 100644
  
  LABEL="nm_drivers_end"
 diff --git a/src/core/devices/nm-device.c b/src/core/devices/nm-device.c
-index a9e8c08508..875d6cc2cd 100644
+index f3441508ab..7cde8d7d39 100644
 --- a/src/core/devices/nm-device.c
 +++ b/src/core/devices/nm-device.c
-@@ -14645,14 +14645,14 @@ nm_device_start_ip_check(NMDevice *self)
+@@ -14839,14 +14839,14 @@ nm_device_start_ip_check(NMDevice *self)
              gw = nm_l3_config_data_get_best_default_route(l3cd, AF_INET);
              if (gw) {
                  nm_inet4_ntop(NMP_OBJECT_CAST_IP4_ROUTE(gw)->gateway, buf);
@@ -32,22 +32,22 @@ index a9e8c08508..875d6cc2cd 100644
              }
          }
 diff --git a/src/libnm-client-impl/meson.build b/src/libnm-client-impl/meson.build
-index 79ac95598a..83f7ab1373 100644
+index 3dd2338a82..de75cc040b 100644
 --- a/src/libnm-client-impl/meson.build
 +++ b/src/libnm-client-impl/meson.build
-@@ -191,7 +191,6 @@ if enable_introspection
+@@ -190,7 +190,6 @@ if enable_introspection
        input: [gen_infos_cmd, libnm_gir[0]] + libnm_core_settings_sources,
        output: 'nm-property-infos-' + name + '.xml',
        command: [
--        python.path(),
+-        python_path,
          gen_infos_cmd,
          name,
          '@OUTPUT@',
-@@ -207,7 +206,6 @@ if enable_introspection
+@@ -206,7 +205,6 @@ if enable_introspection
          'env',
          'GI_TYPELIB_PATH=' + gi_typelib_path,
          'LD_LIBRARY_PATH=' + ld_library_path,
--        python.path(),
+-        python_path,
          gen_gir_cmd,
          '--lib-path', meson.current_build_dir(),
          '--gir', libnm_gir[0],
@@ -89,14 +89,14 @@ index cbe76f5f1c..8515f94994 100644
      oc_argv[oc_argc++] = path;
      oc_argv[oc_argc++] = "--authenticate";
 diff --git a/src/libnmc-setting/meson.build b/src/libnmc-setting/meson.build
-index 7fb460dc33..790a2b75fc 100644
+index 4d5079dfb3..5a15447fde 100644
 --- a/src/libnmc-setting/meson.build
 +++ b/src/libnmc-setting/meson.build
 @@ -9,7 +9,6 @@ if enable_docs
      input: [merge_cmd, nm_settings_docs_xml_gir['nmcli'], nm_property_infos_xml['nmcli']],
      output: 'settings-docs-input.xml',
      command: [
--      python.path(),
+-      python_path,
        merge_cmd,
        '@OUTPUT@',
        nm_property_infos_xml['nmcli'],
@@ -104,19 +104,19 @@ index 7fb460dc33..790a2b75fc 100644
      input: [gen_cmd, settings_docs_input_xml],
      output: 'settings-docs.h',
      command: [
--      python.path(),
+-      python_path,
        gen_cmd,
        '--output', '@OUTPUT@',
        '--xml', settings_docs_input_xml
 diff --git a/src/tests/client/meson.build b/src/tests/client/meson.build
-index 8c36e40559..cfb6649a21 100644
+index 5686a1c174..cfb6649a21 100644
 --- a/src/tests/client/meson.build
 +++ b/src/tests/client/meson.build
 @@ -6,7 +6,6 @@ test(
    args: [
      build_root,
      source_root,
--    python.path(),
+-    python_path,
      '--',
      'TestNmcli',
    ],
@@ -124,7 +124,7 @@ index 8c36e40559..cfb6649a21 100644
      args: [
        build_root,
        source_root,
--      python.path(),
+-      python_path,
        '--',
        'TestNmCloudSetup',
      ],
diff --git a/pkgs/tools/networking/networkmanager/iodine/default.nix b/pkgs/tools/networking/networkmanager/iodine/default.nix
index aff411ea0ed9b..fa706f1b5892a 100644
--- a/pkgs/tools/networking/networkmanager/iodine/default.nix
+++ b/pkgs/tools/networking/networkmanager/iodine/default.nix
@@ -1,18 +1,31 @@
-{ lib, stdenv, fetchFromGitLab, substituteAll, autoreconfHook, iodine, intltool, pkg-config, networkmanager, libsecret, gtk3
-, withGnome ? true, gnome, fetchpatch, libnma, glib }:
+{
+  lib,
+  stdenv,
+  fetchFromGitLab,
+  substituteAll,
+  autoreconfHook,
+  iodine,
+  intltool,
+  pkg-config,
+  networkmanager,
+  libsecret,
+  gtk3,
+  withGnome ? true,
+  unstableGitUpdater,
+  libnma,
+  glib,
+}:
 
-let
-  pname = "NetworkManager-iodine";
-  version = "unstable-2019-11-05";
-in stdenv.mkDerivation {
-  name = "${pname}${lib.optionalString withGnome "-gnome"}-${version}";
+stdenv.mkDerivation {
+  pname = "NetworkManager-iodine${lib.optionalString withGnome "-gnome"}";
+  version = "1.2.0-unstable-2024-05-12";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
     repo = "network-manager-iodine";
-    rev = "2ef0abf089b00a0546f214dde0d45e63f2990b79";
-    sha256 = "1ps26fr9b1yyafj7lrzf2kmaxb0ipl0mhagch5kzrjdsc5xkajz7";
+    rev = "8ec0a35e12047ccf256b3951897c701661ddb8af";
+    sha256 = "cNjznry8wi1UmE5khf0JCEYjs9nDU/u8lFLte53MLTM=";
   };
 
   patches = [
@@ -20,34 +33,41 @@ in stdenv.mkDerivation {
       src = ./fix-paths.patch;
       inherit iodine;
     })
-    # Don't use etc/dbus-1/system.d
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/network-manager-iodine/merge_requests/2.patch";
-      sha256 = "108pkf0mddj32s46k7jkmpwcaq2ylci4dqpp7wck3zm9q2jffff2";
-    })
   ];
 
-  buildInputs = [ iodine networkmanager glib ]
-    ++ lib.optionals withGnome [ gtk3 libsecret libnma ];
-
-  nativeBuildInputs = [ intltool autoreconfHook pkg-config ];
+  nativeBuildInputs = [
+    intltool
+    autoreconfHook
+    pkg-config
+  ];
 
-  # glib-2.62 deprecations
-  env.NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS";
+  buildInputs =
+    [
+      iodine
+      networkmanager
+      glib
+    ]
+    ++ lib.optionals withGnome [
+      gtk3
+      libsecret
+      libnma
+    ];
 
-  preConfigure = "intltoolize";
   configureFlags = [
-    "--without-libnm-glib"
     "--with-gnome=${if withGnome then "yes" else "no"}"
     "--localstatedir=/" # needed for the management socket under /run/NetworkManager
     "--enable-absolute-paths"
   ];
 
+  preConfigure = ''
+    intltoolize
+  '';
+
   passthru = {
-    updateScript = gnome.updateScript {
-      packageName = pname;
-      attrPath = "networkmanager-iodine";
+    updateScript = unstableGitUpdater {
+      tagPrefix = "v";
     };
+
     networkManagerPlugin = "VPN/nm-iodine-service.name";
   };
 
diff --git a/pkgs/tools/networking/nexttrace/default.nix b/pkgs/tools/networking/nexttrace/default.nix
index df8bce88dcaab..6ed2055d54544 100644
--- a/pkgs/tools/networking/nexttrace/default.nix
+++ b/pkgs/tools/networking/nexttrace/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "nexttrace";
-  version = "1.3.0";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "nxtrace";
     repo = "NTrace-core";
     rev = "v${version}";
-    sha256 = "sha256-15ONnY0ST3e9FPyNkyUfQLgKUXjrMX2+4Op4WDumyyk=";
+    sha256 = "sha256-mJkAV4eUecJv2H3smfTNPcj+liCH8wNl/wiO+Q92eDE=";
   };
-  vendorHash = "sha256-dlubG+2UvlZI0r9CU2ljCbLs1+t+xgwP2yrbiAt8MgQ=";
+  vendorHash = "sha256-immUT11gO3dFkrwrjwwYtPLxhYvSKcxmwaEkjFGrMsE=";
 
   doCheck = false; # Tests require a network connection.
 
@@ -25,7 +25,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "An open source visual route tracking CLI tool";
+    description = "Open source visual route tracking CLI tool";
     homepage = "https://mtr.moe";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ sharzy ];
diff --git a/pkgs/tools/networking/nss-mdns/default.nix b/pkgs/tools/networking/nss-mdns/default.nix
index eb231f0ce0368..727c6007c71df 100644
--- a/pkgs/tools/networking/nss-mdns/default.nix
+++ b/pkgs/tools/networking/nss-mdns/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    description = "The mDNS Name Service Switch (NSS) plug-in";
+    description = "MDNS Name Service Switch (NSS) plug-in";
     longDescription = ''
       `nss-mdns' is a plugin for the GNU Name Service Switch (NSS)
       functionality of the GNU C Library (glibc) providing host name
diff --git a/pkgs/tools/networking/ntp/default.nix b/pkgs/tools/networking/ntp/default.nix
index 1a081993bbd6f..d0c652ca636c0 100644
--- a/pkgs/tools/networking/ntp/default.nix
+++ b/pkgs/tools/networking/ntp/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.ntp.org/";
-    description = "An implementation of the Network Time Protocol";
+    description = "Implementation of the Network Time Protocol";
     license = {
       # very close to isc and bsd2
       url = "https://www.eecis.udel.edu/~mills/ntp/html/copyright.html";
diff --git a/pkgs/tools/networking/ntpd-rs/default.nix b/pkgs/tools/networking/ntpd-rs/default.nix
index 70c1daf404cac..2803d72110580 100644
--- a/pkgs/tools/networking/ntpd-rs/default.nix
+++ b/pkgs/tools/networking/ntpd-rs/default.nix
@@ -69,7 +69,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A full-featured implementation of the Network Time Protocol";
+    description = "Full-featured implementation of the Network Time Protocol";
     homepage = "https://tweedegolf.nl/en/pendulum";
     changelog = "https://github.com/pendulum-project/ntpd-rs/blob/v${version}/CHANGELOG.md";
     mainProgram = "ntp-ctl";
diff --git a/pkgs/tools/networking/ntttcp/default.nix b/pkgs/tools/networking/ntttcp/default.nix
index af1a298fdadbf..5246d2cc495f3 100644
--- a/pkgs/tools/networking/ntttcp/default.nix
+++ b/pkgs/tools/networking/ntttcp/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Linux network throughput multiple-thread benchmark tool";
+    description = "Linux network throughput multiple-thread benchmark tool";
     homepage = "https://github.com/microsoft/ntttcp-for-linux";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/tools/networking/nxdomain/default.nix b/pkgs/tools/networking/nxdomain/default.nix
index 2a23230ce778f..071f236bfe5f8 100644
--- a/pkgs/tools/networking/nxdomain/default.nix
+++ b/pkgs/tools/networking/nxdomain/default.nix
@@ -21,7 +21,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/zopieux/nxdomain";
-    description = "A domain (ad) block list creator";
+    description = "Domain (ad) block list creator";
     mainProgram = "nxdomain";
     platforms = platforms.all;
     license = licenses.gpl3Only;
diff --git a/pkgs/tools/networking/nzbget/default.nix b/pkgs/tools/networking/nzbget/default.nix
index 5ecda7d8f73ab..19323e18fc5d7 100644
--- a/pkgs/tools/networking/nzbget/default.nix
+++ b/pkgs/tools/networking/nzbget/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , autoreconfHook
 , boost
 , pkg-config
@@ -55,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://nzbget.com/";
     changelog = "https://github.com/nzbgetcom/nzbget/releases/tag/v${finalAttrs.version}";
     license = licenses.gpl2Plus;
-    description = "A command line tool for downloading files from news servers";
+    description = "Command line tool for downloading files from news servers";
     maintainers = with maintainers; [ pSub devusb ];
     platforms = with platforms; unix;
     mainProgram = "nzbget";
diff --git a/pkgs/tools/networking/ockam/default.nix b/pkgs/tools/networking/ockam/default.nix
index 0b8c0ad1c5fc7..cca1fb40bf7db 100644
--- a/pkgs/tools/networking/ockam/default.nix
+++ b/pkgs/tools/networking/ockam/default.nix
@@ -13,7 +13,7 @@
 
 let
   pname = "ockam";
-  version = "0.124.0";
+  version = "0.126.0";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -22,10 +22,10 @@ rustPlatform.buildRustPackage {
     owner = "build-trust";
     repo = pname;
     rev = "ockam_v${version}";
-    hash = "sha256-ovcZD9D/iVF3iIti+vQ29YIJE+UI64BeuA2huJsAx5s=";
+    hash = "sha256-LkjMxUKTlj3fkSlm1NNOQKVUEz6baqaxMXcI6myaT24=";
   };
 
-  cargoHash = "sha256-z+GIFN5Q3LWnT5PrZ291G2lHgd5mzDFkKwdcxUXvUnU=";
+  cargoHash = "sha256-wOBr1U9lekDwG8MntrvR7QtMItJ41kLcyt70N2Uz1M8=";
   nativeBuildInputs = [ git pkg-config ];
   buildInputs = [ openssl dbus ]
     ++ lib.optionals stdenv.isDarwin [ AppKit Security ];
diff --git a/pkgs/tools/networking/oha/default.nix b/pkgs/tools/networking/oha/default.nix
index 40eedfffb7a64..c25d471abf2e6 100644
--- a/pkgs/tools/networking/oha/default.nix
+++ b/pkgs/tools/networking/oha/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "oha";
-  version = "1.4.4";
+  version = "1.4.5";
 
   src = fetchFromGitHub {
     owner = "hatoo";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-ghzBP7Y76eUmVbKAym7bujXdwJtHxuZKBt3kcbBriY4=";
+    hash = "sha256-siYJVx5WYveCDpLYp+Bapnr9KSitmBlw9RFkrqPZYCQ=";
   };
 
-  cargoHash = "sha256-2QY4vmLvJ+QcSAfeDPGGW/YcUWd1kKeqKbYThYf4uOA=";
+  cargoHash = "sha256-ieutZfp1vw3/wVLQ/GQu+W8fEqYS7peHFBrWjZ4qLwU=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [
     pkg-config
diff --git a/pkgs/tools/networking/olsrd/default.nix b/pkgs/tools/networking/olsrd/default.nix
index 4fb8892ec020c..8e0dec4b48b1c 100644
--- a/pkgs/tools/networking/olsrd/default.nix
+++ b/pkgs/tools/networking/olsrd/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "An adhoc wireless mesh routing daemon";
+    description = "Adhoc wireless mesh routing daemon";
     license = lib.licenses.bsd3;
     homepage = "http://olsr.org/";
     maintainers = with lib.maintainers; [viric];
diff --git a/pkgs/tools/networking/oneshot/default.nix b/pkgs/tools/networking/oneshot/default.nix
index 541d5270dcd11..34c9b0d7f7be1 100644
--- a/pkgs/tools/networking/oneshot/default.nix
+++ b/pkgs/tools/networking/oneshot/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "oneshot";
-  version = "2.0.2";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner = "forestnode-io";
     repo = "oneshot";
     rev = "v${version}";
-    hash = "sha256-aIbKXBJNcBbYJRzETT0mkaqTRo+/8o6z882G21V74rg=";
+    hash = "sha256-eEVjdFHZyk2bSVqrMJIsgZvvLoDOira8zTzX9oDNtHM=";
   };
 
   vendorHash = "sha256-TktSQMIHYXF9eyY6jyfE31WLXEq7VZU3qnVIMGjMMcA=";
@@ -41,7 +41,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A first-come first-served single-fire HTTP server";
+    description = "First-come first-served single-fire HTTP server";
     homepage = "https://www.oneshot.uno/";
     license = licenses.mit;
     maintainers = with maintainers; [ milibopp ];
diff --git a/pkgs/tools/networking/onetun/default.nix b/pkgs/tools/networking/onetun/default.nix
index 87a9b0bfc82f2..4bc18cee4662e 100644
--- a/pkgs/tools/networking/onetun/default.nix
+++ b/pkgs/tools/networking/onetun/default.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A cross-platform, user-space WireGuard port-forwarder that requires no root-access or system network configurations";
+    description = "Cross-platform, user-space WireGuard port-forwarder that requires no root-access or system network configurations";
     homepage = "https://github.com/aramperes/onetun";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
diff --git a/pkgs/tools/networking/oonf-olsrd2/default.nix b/pkgs/tools/networking/oonf-olsrd2/default.nix
index bc7cbe8d491da..8cdee7c465e1f 100644
--- a/pkgs/tools/networking/oonf-olsrd2/default.nix
+++ b/pkgs/tools/networking/oonf-olsrd2/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An adhoc wireless mesh routing daemon";
+    description = "Adhoc wireless mesh routing daemon";
     license = licenses.bsd3;
     homepage = "http://olsr.org/";
     maintainers = with maintainers; [ mkg20001 ];
diff --git a/pkgs/tools/networking/ooniprobe-cli/default.nix b/pkgs/tools/networking/ooniprobe-cli/default.nix
index d9015a6611667..55fd08f4a2308 100644
--- a/pkgs/tools/networking/ooniprobe-cli/default.nix
+++ b/pkgs/tools/networking/ooniprobe-cli/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "ooniprobe-cli";
-  version = "3.21.1";
+  version = "3.22.0";
 
   src = fetchFromGitHub {
     owner = "ooni";
     repo = "probe-cli";
     rev = "v${version}";
-    hash = "sha256-H5QlyxNQdKGoTIdfh/neULakTddVIhXgMJ/wLbqvGbY=";
+    hash = "sha256-06uUnxkkG6sfIfaXm5ZA4N3eWPeMZOyL740FqiKkHM4=";
   };
 
-  vendorHash = "sha256-I88cALmc8iTaVJ36ntQLw+wRMM2GLWMWLhv8EDJDRgg=";
+  vendorHash = "sha256-gjtrT1Dtk1sUTVK14qKtrIZNptj1mGNg6HTKv0HkEkc=";
 
   subPackages = [ "cmd/ooniprobe" ];
 
@@ -22,7 +22,7 @@ buildGoModule rec {
 
   meta = with lib; {
     changelog = "https://github.com/ooni/probe-cli/releases/tag/${src.rev}";
-    description = "The Open Observatory of Network Interference command line network probe";
+    description = "Open Observatory of Network Interference command line network probe";
     homepage = "https://ooni.org/install/cli";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/tools/networking/opendrop/default.nix b/pkgs/tools/networking/opendrop/default.nix
index a617eadfc410f..ce43b96d43f9e 100644
--- a/pkgs/tools/networking/opendrop/default.nix
+++ b/pkgs/tools/networking/opendrop/default.nix
@@ -53,7 +53,7 @@ buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "An open Apple AirDrop implementation written in Python";
+    description = "Open Apple AirDrop implementation written in Python";
     homepage = "https://owlink.org/";
     changelog = "https://github.com/seemoo-lab/opendrop/releases/tag/${src.rev}";
     license = licenses.gpl3Only;
diff --git a/pkgs/tools/networking/openfortivpn/default.nix b/pkgs/tools/networking/openfortivpn/default.nix
index 6ab3809c47965..91ec26c96a612 100644
--- a/pkgs/tools/networking/openfortivpn/default.nix
+++ b/pkgs/tools/networking/openfortivpn/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openfortivpn";
-  version = "1.22.0";
+  version = "1.22.1";
 
   src = fetchFromGitHub {
     owner = "adrienverge";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-K4sTvt0rIDh8A7uhUQmw3zvS2ksclOLBO76wHevRONU=";
+    hash = "sha256-FhS4q8p1Q2Lu7xj2ZkUbJcMWvRSn+lqFdYqBNYB3V1E=";
   };
 
   # we cannot write the config file to /etc and as we don't need the file, so drop it
diff --git a/pkgs/tools/networking/openresolv/default.nix b/pkgs/tools/networking/openresolv/default.nix
index 956584bfae9ab..3b4f65278d400 100644
--- a/pkgs/tools/networking/openresolv/default.nix
+++ b/pkgs/tools/networking/openresolv/default.nix
@@ -33,11 +33,11 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A program to manage /etc/resolv.conf";
+    description = "Program to manage /etc/resolv.conf";
     mainProgram = "resolvconf";
     homepage = "https://roy.marples.name/projects/openresolv";
     license = lib.licenses.bsd2;
     maintainers = [ lib.maintainers.eelco ];
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.linux ++ lib.platforms.freebsd;
   };
 }
diff --git a/pkgs/tools/networking/openssh/common.nix b/pkgs/tools/networking/openssh/common.nix
index d5f658641efd8..7196ceeebaadf 100644
--- a/pkgs/tools/networking/openssh/common.nix
+++ b/pkgs/tools/networking/openssh/common.nix
@@ -22,7 +22,7 @@
 , pam
 , libredirect
 , etcDir ? null
-, withKerberos ? true
+, withKerberos ? false
 , withLdns ? true
 , libkrb5
 , libfido2
@@ -177,13 +177,16 @@ stdenv.mkDerivation {
     "sysconfdir=\${out}/etc/ssh"
   ];
 
-  passthru.tests = {
-    borgbackup-integration = nixosTests.borgbackup;
-    openssh = nixosTests.openssh;
+  passthru = {
+    inherit withKerberos;
+    tests = {
+      borgbackup-integration = nixosTests.borgbackup;
+      openssh = nixosTests.openssh;
+    };
   };
 
   meta = with lib; {
-    description = "An implementation of the SSH protocol${extraDesc}";
+    description = "Implementation of the SSH protocol${extraDesc}";
     homepage = "https://www.openssh.com/";
     changelog = "https://www.openssh.com/releasenotes.html";
     license = licenses.bsd2;
diff --git a/pkgs/tools/networking/openssh/copyid.nix b/pkgs/tools/networking/openssh/copyid.nix
index 40707c2a73462..b0b0d9c96a32c 100644
--- a/pkgs/tools/networking/openssh/copyid.nix
+++ b/pkgs/tools/networking/openssh/copyid.nix
@@ -2,7 +2,7 @@
 
 runCommand "ssh-copy-id-${openssh.version}" {
   meta = openssh.meta // {
-    description = "A tool to copy SSH public keys to a remote machine";
+    description = "Tool to copy SSH public keys to a remote machine";
     priority = (openssh.meta.priority or 0) - 1;
   };
 } ''
diff --git a/pkgs/tools/networking/openvpn/default.nix b/pkgs/tools/networking/openvpn/default.nix
index 2a725496e81c2..905b9b7c97d8f 100644
--- a/pkgs/tools/networking/openvpn/default.nix
+++ b/pkgs/tools/networking/openvpn/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A robust and highly flexible tunneling application";
+    description = "Robust and highly flexible tunneling application";
     downloadPage = "https://openvpn.net/community-downloads/";
     homepage = "https://openvpn.net/";
     license = licenses.gpl2Only;
diff --git a/pkgs/tools/networking/owl/default.nix b/pkgs/tools/networking/owl/default.nix
index 568eeca0afff7..45dcb39c4d774 100644
--- a/pkgs/tools/networking/owl/default.nix
+++ b/pkgs/tools/networking/owl/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libev libnl libpcap ];
 
   meta = with lib; {
-    description = "An open Apple Wireless Direct Link (AWDL) implementation written in C";
+    description = "Open Apple Wireless Direct Link (AWDL) implementation written in C";
     homepage = "https://owlink.org/";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ wolfangaukang ];
diff --git a/pkgs/tools/networking/p2p/gtk-gnutella/default.nix b/pkgs/tools/networking/p2p/gtk-gnutella/default.nix
index 2c75cefe850e5..5fe7834e2d329 100644
--- a/pkgs/tools/networking/p2p/gtk-gnutella/default.nix
+++ b/pkgs/tools/networking/p2p/gtk-gnutella/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A GTK Gnutella client, optimized for speed and scalability";
+    description = "GTK Gnutella client, optimized for speed and scalability";
     mainProgram = "gtk-gnutella";
     homepage = "https://gtk-gnutella.sourceforge.net/"; # Code: https://github.com/gtk-gnutella/gtk-gnutella
     changelog = "https://raw.githubusercontent.com/gtk-gnutella/gtk-gnutella/v${finalAttrs.version}/ChangeLog";
diff --git a/pkgs/tools/networking/pacparser/default.nix b/pkgs/tools/networking/pacparser/default.nix
index dc45aaac58fab..bb12585155770 100644
--- a/pkgs/tools/networking/pacparser/default.nix
+++ b/pkgs/tools/networking/pacparser/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "format" ];
 
   meta = with lib; {
-    description = "A library to parse proxy auto-config (PAC) files";
+    description = "Library to parse proxy auto-config (PAC) files";
     homepage = "https://pacparser.manugarg.com/";
     license = licenses.lgpl3;
     platforms = platforms.linux;
diff --git a/pkgs/tools/networking/passh/default.nix b/pkgs/tools/networking/passh/default.nix
index 060272c01a2e4..36eefcab0dcc4 100644
--- a/pkgs/tools/networking/passh/default.nix
+++ b/pkgs/tools/networking/passh/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://github.com/clarkwang/passh";
-    description = "An sshpass alternative for non-interactive ssh auth";
+    description = "Sshpass alternative for non-interactive ssh auth";
     license = licenses.gpl3;
     maintainers = [ maintainers.lovesegfault ];
     mainProgram = finalAttrs.pname;
diff --git a/pkgs/tools/networking/pgrok/build-deps/package.json b/pkgs/tools/networking/pgrok/build-deps/package.json
deleted file mode 100644
index b40bf794c6de0..0000000000000
--- a/pkgs/tools/networking/pgrok/build-deps/package.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
-  "name": "pgrokd",
-  "scripts": {
-    "dev": "vite",
-    "build": "tsc && vite build --outDir=dist --emptyOutDir",
-    "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0"
-  },
-  "version": "1.4.1",
-  "dependencies": {
-    "axios": "~1.4.0",
-    "react": "~18.2.0",
-    "react-dom": "~18.2.0",
-    "react-router-dom": "~6.15.0",
-    "@headlessui/react": "~1.7.17",
-    "@heroicons/react": "~2.0.18",
-    "@tailwindcss/forms": "~0.5.4",
-    "@trivago/prettier-plugin-sort-imports": "~4.2.0",
-    "@types/node": "~20.5.1",
-    "@types/react": "~18.2.15",
-    "@types/react-dom": "~18.2.7",
-    "@typescript-eslint/eslint-plugin": "~6.0.0",
-    "@typescript-eslint/parser": "~6.0.0",
-    "@vitejs/plugin-react": "~4.0.3",
-    "autoprefixer": "~10.4.15",
-    "code-inspector-plugin": "v0.1.9",
-    "eslint": "~8.45.0",
-    "eslint-plugin-import": "~2.28.0",
-    "eslint-plugin-react": "~7.33.2",
-    "eslint-plugin-react-hooks": "~4.6.0",
-    "eslint-plugin-react-refresh": "~0.4.3",
-    "eslint-plugin-unicorn": "~48.0.1",
-    "postcss": "~8.4.28",
-    "prettier": "~3.0.2",
-    "tailwindcss": "~3.3.3",
-    "typescript": "~5.0.2",
-    "vite": "~4.4.5"
-  }
-}
diff --git a/pkgs/tools/networking/pgrok/update.sh b/pkgs/tools/networking/pgrok/update.sh
deleted file mode 100755
index 5e2e082fd6a09..0000000000000
--- a/pkgs/tools/networking/pgrok/update.sh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -i bash -p nix curl nix-update jq
-
-set -euo pipefail
-
-nix-update
-
-cd "$(dirname "$0")"
-
-nixpkgs=../../../..
-node_packages="$nixpkgs/pkgs/development/node-packages"
-pgrok="$nixpkgs/pkgs/tools/networking/pgrok"
-
-TARGET_VERSION_REMOTE=$(curl -s https://api.github.com/repos/pgrok/pgrok/releases/latest | jq -r ".tag_name")
-TARGET_VERSION=${TARGET_VERSION_REMOTE#v}
-
-SRC_FILE_BASE="https://raw.githubusercontent.com/pgrok/pgrok/v$TARGET_VERSION"
-
-# replace ^ versions with ~, replace outdir to dist
-curl https://raw.githubusercontent.com/pgrok/pgrok/main/pgrokd/web/package.json \
-    | jq "{name,scripts,version: \"${TARGET_VERSION}\",dependencies: (.dependencies + .devDependencies) }" \
-    | sed -e 's/"\^/"~/g' -e 's/\.\.\/cli\/dist/dist/g' \
-    > "$pgrok/build-deps/package.json.new"
-
-old_deps="$(jq '.dependencies' "$pgrok/build-deps/package.json")"
-new_deps="$(jq '.dependencies' "$pgrok/build-deps/package.json.new")"
-
-if [[ "$old_deps" == "$new_deps" ]]; then
-    echo "package.json dependencies not changed, do simple version change"
-
-    sed -e '/^  "pgrok-build-deps/,+3 s/version = ".*"/version = "'"$TARGET_VERSION"'"/' \
-        --in-place "$node_packages"/node-packages.nix
-    mv build-deps/package.json{.new,}
-else
-    echo "package.json dependencies changed, updating nodePackages"
-    mv build-deps/package.json{.new,}
-
-    ./"$node_packages"/generate.sh
-fi
-
diff --git a/pkgs/tools/networking/pgrok/web.nix b/pkgs/tools/networking/pgrok/web.nix
deleted file mode 100644
index 0cbe45e0e3966..0000000000000
--- a/pkgs/tools/networking/pgrok/web.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ src
-, version
-, nodejs
-, nodePackages
-, stdenvNoCC
-}:
-let
-  build-deps = nodePackages."pgrok-build-deps-../../tools/networking/pgrok/build-deps";
-in
-stdenvNoCC.mkDerivation {
-  pname = "pgrok-web";
-  inherit version;
-  src = "${src}/pgrokd/web";
-
-  nativeBuildInputs = [ nodejs ];
-
-  buildPhase = ''
-    runHook preBuild
-    cp ${./build-deps/package.json} package.json
-    ln -s ${build-deps}/lib/node_modules/pgrokd/node_modules node_modules
-    npm run build
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-    cp -r dist $out
-    runHook postInstall
-  '';
-}
diff --git a/pkgs/tools/networking/phantomsocks/default.nix b/pkgs/tools/networking/phantomsocks/default.nix
index 7bb053c680f77..bb8aad8740df8 100644
--- a/pkgs/tools/networking/phantomsocks/default.nix
+++ b/pkgs/tools/networking/phantomsocks/default.nix
@@ -3,26 +3,27 @@
 , fetchFromGitHub
 , stdenv
 , libpcap
-# Cann't be build with both pcap and rawsocket tags
+  # Cann't be build with both pcap and rawsocket tags
 , withPcap ? (!stdenv.isLinux && !withRawsocket)
 , withRawsocket ? (stdenv.isLinux && !withPcap)
 }:
 
 buildGoModule rec {
   pname = "phantomsocks";
-  version = "unstable-2023-04-05";
+  version = "unstable-2023-11-30";
 
   src = fetchFromGitHub {
     owner = "macronut";
     repo = pname;
-    rev = "a54ae9f3611e8623f89e69273f2ded7f7c0a7abf";
-    hash = "sha256-ytTLwKlwbaiSWDRZBkOV7Hrl5ywWzLbv/fJ7nVlD++E=";
+    rev = "b1b13c5b88cf3bac54f39c37c0ffcb0b46e31049";
+    hash = "sha256-ptCzd2/8dNHjAkhwA2xpZH8Ki/9DnblHI2gAIpgM+8E=";
   };
 
-  vendorHash = "sha256-c0NQfZuMMWz1ASwFBcpMNjxZwXLo++gMYBiNgvT8ZLQ=";
+  vendorHash = "sha256-0MJlz7HAhRThn8O42yhvU3p5HgTG8AkPM0ksSjWYAC4=";
 
   ldflags = [
-    "-s" "-w"
+    "-s"
+    "-w"
   ];
   buildInputs = lib.optional withPcap libpcap;
   tags = lib.optional withPcap "pcap"
@@ -30,7 +31,7 @@ buildGoModule rec {
 
   meta = with lib;{
     homepage = "https://github.com/macronut/phantomsocks";
-    description = "A cross-platform proxy client/server for Linux/Windows/macOS";
+    description = "Cross-platform proxy client/server for Linux/Windows/macOS";
     longDescription = ''
       A cross-platform proxy tool that could be used to modify TCP packets
       to implement TCB desync to bypass detection and censoring.
diff --git a/pkgs/tools/networking/photon/default.nix b/pkgs/tools/networking/photon/default.nix
index 8a69bd70c1495..acd0d1c8171df 100644
--- a/pkgs/tools/networking/photon/default.nix
+++ b/pkgs/tools/networking/photon/default.nix
@@ -27,7 +27,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "a lightning fast web crawler which extracts URLs, files, intel & endpoints from a target";
+    description = "Lightning fast web crawler which extracts URLs, files, intel & endpoints from a target";
     homepage = "https://github.com/s0md3v/Photon";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/tools/networking/pirate-get/default.nix b/pkgs/tools/networking/pirate-get/default.nix
index 5a28858621b06..743ee82c2bd99 100644
--- a/pkgs/tools/networking/pirate-get/default.nix
+++ b/pkgs/tools/networking/pirate-get/default.nix
@@ -14,7 +14,7 @@ buildPythonApplication rec {
   propagatedBuildInputs = [ colorama veryprettytable pyperclip ];
 
   meta = with lib; {
-    description = "A command line interface for The Pirate Bay";
+    description = "Command line interface for The Pirate Bay";
     mainProgram = "pirate-get";
     homepage = "https://github.com/vikstrous/pirate-get";
     license = licenses.gpl3Plus;
diff --git a/pkgs/tools/networking/pixiecore/default.nix b/pkgs/tools/networking/pixiecore/default.nix
index cbdee103912ff..f6cb11d239218 100644
--- a/pkgs/tools/networking/pixiecore/default.nix
+++ b/pkgs/tools/networking/pixiecore/default.nix
@@ -19,7 +19,7 @@ buildGoModule rec {
   subPackages = [ "cmd/pixiecore" ];
 
   meta = {
-    description = "A tool to manage network booting of machines";
+    description = "Tool to manage network booting of machines";
     homepage = "https://github.com/danderson/netboot/tree/master/pixiecore";
     license =  lib.licenses.asl20;
     maintainers = with lib.maintainers; [ bbigras ];
diff --git a/pkgs/tools/networking/pixiewps/default.nix b/pkgs/tools/networking/pixiewps/default.nix
index d3a7f0bc69d1e..044ccee37977f 100644
--- a/pkgs/tools/networking/pixiewps/default.nix
+++ b/pkgs/tools/networking/pixiewps/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "An offline WPS bruteforce utility";
+    description = "Offline WPS bruteforce utility";
     homepage = "https://github.com/wiire-a/pixiewps";
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.nico202 ];
diff --git a/pkgs/tools/networking/pmacct/default.nix b/pkgs/tools/networking/pmacct/default.nix
index 6c4be00c3ef58..620f2e965c344 100644
--- a/pkgs/tools/networking/pmacct/default.nix
+++ b/pkgs/tools/networking/pmacct/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A small set of multi-purpose passive network monitoring tools";
+    description = "Small set of multi-purpose passive network monitoring tools";
     longDescription = ''
       pmacct is a small set of multi-purpose passive network monitoring tools
       [NetFlow IPFIX sFlow libpcap BGP BMP RPKI IGP Streaming Telemetry]
diff --git a/pkgs/tools/networking/popura/default.nix b/pkgs/tools/networking/popura/default.nix
index e6e67cafe7a8b..c7e5174452adc 100644
--- a/pkgs/tools/networking/popura/default.nix
+++ b/pkgs/tools/networking/popura/default.nix
@@ -24,7 +24,7 @@ buildGoModule rec {
    ];
 
   meta = with lib; {
-    description = "An alternative Yggdrasil network client";
+    description = "Alternative Yggdrasil network client";
     homepage = "https://github.com/popura-network/popura";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ urandom ];
diff --git a/pkgs/tools/networking/pptpd/default.nix b/pkgs/tools/networking/pptpd/default.nix
index d1cb90089e0c5..37a92475c984a 100644
--- a/pkgs/tools/networking/pptpd/default.nix
+++ b/pkgs/tools/networking/pptpd/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage    = "https://poptop.sourceforge.net/dox/";
-    description = "The PPTP Server for Linux";
+    description = "PPTP Server for Linux";
     platforms   = platforms.linux;
     maintainers = with maintainers; [ obadz ];
     license = licenses.gpl2Only;
diff --git a/pkgs/tools/networking/prettyping/default.nix b/pkgs/tools/networking/prettyping/default.nix
index ac5dd3d1d6aeb..3f42a07261dd2 100644
--- a/pkgs/tools/networking/prettyping/default.nix
+++ b/pkgs/tools/networking/prettyping/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/denilsonsa/prettyping";
-    description = "A wrapper around the standard ping tool with the objective of making the output prettier, more colorful, more compact, and easier to read";
+    description = "Wrapper around the standard ping tool with the objective of making the output prettier, more colorful, more compact, and easier to read";
     mainProgram = "prettyping";
     license = with licenses; [ mit ];
     platforms = platforms.unix;
diff --git a/pkgs/tools/networking/proxychains-ng/default.nix b/pkgs/tools/networking/proxychains-ng/default.nix
index bdc5622f2d505..64e3bb57c4ac9 100644
--- a/pkgs/tools/networking/proxychains-ng/default.nix
+++ b/pkgs/tools/networking/proxychains-ng/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A preloader which hooks calls to sockets in dynamically linked programs and redirects it through one or more socks/http proxies";
+    description = "Preloader which hooks calls to sockets in dynamically linked programs and redirects it through one or more socks/http proxies";
     homepage = "https://github.com/rofl0r/proxychains-ng";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ zenithal ];
diff --git a/pkgs/tools/networking/q/default.nix b/pkgs/tools/networking/q/default.nix
index 8602cda6da7b7..95bdbe58ae29c 100644
--- a/pkgs/tools/networking/q/default.nix
+++ b/pkgs/tools/networking/q/default.nix
@@ -22,7 +22,7 @@ buildGoModule rec {
   doCheck = false; # tries to resolve DNS
 
   meta = {
-    description = "A tiny and feature-rich command line DNS client with support for UDP, TCP, DoT, DoH, DoQ, and ODoH";
+    description = "Tiny and feature-rich command line DNS client with support for UDP, TCP, DoT, DoH, DoQ, and ODoH";
     homepage = "https://github.com/natesales/q";
     license = lib.licenses.gpl3Only;
     maintainers = [ lib.maintainers.das_j ];
diff --git a/pkgs/tools/networking/quickserve/default.nix b/pkgs/tools/networking/quickserve/default.nix
index c739080625889..b5a760617974f 100644
--- a/pkgs/tools/networking/quickserve/default.nix
+++ b/pkgs/tools/networking/quickserve/default.nix
@@ -27,7 +27,7 @@ in stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A simple HTTP server for quickly sharing files";
+    description = "Simple HTTP server for quickly sharing files";
     homepage = "https://xyne.archlinux.ca/projects/quickserve/";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ lassulus ];
diff --git a/pkgs/tools/networking/radsecproxy/default.nix b/pkgs/tools/networking/radsecproxy/default.nix
index 00e908e51a247..493dd6c0e835e 100644
--- a/pkgs/tools/networking/radsecproxy/default.nix
+++ b/pkgs/tools/networking/radsecproxy/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://radsecproxy.github.io/";
-    description = "A generic RADIUS proxy that supports both UDP and TLS (RadSec) RADIUS transports";
+    description = "Generic RADIUS proxy that supports both UDP and TLS (RadSec) RADIUS transports";
     license = licenses.bsd3;
     maintainers = with maintainers; [ sargon ];
     platforms = with platforms; linux;
diff --git a/pkgs/tools/networking/ratman/default.nix b/pkgs/tools/networking/ratman/default.nix
index 7dee1717e9cbf..cccf50206d5dc 100644
--- a/pkgs/tools/networking/ratman/default.nix
+++ b/pkgs/tools/networking/ratman/default.nix
@@ -84,7 +84,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A modular decentralised peer-to-peer packet router and associated tools";
+    description = "Modular decentralised peer-to-peer packet router and associated tools";
     homepage = "https://git.irde.st/we/irdest";
     platforms = platforms.unix;
     license = licenses.agpl3Only;
diff --git a/pkgs/tools/networking/ratools/default.nix b/pkgs/tools/networking/ratools/default.nix
index 0eea11bb3f588..1399fc4c8d599 100644
--- a/pkgs/tools/networking/ratools/default.nix
+++ b/pkgs/tools/networking/ratools/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A fast, dynamic, multi-threading framework for IPv6 Router Advertisements";
+    description = "Fast, dynamic, multi-threading framework for IPv6 Router Advertisements";
     homepage = "https://github.com/danrl/ratools";
     license = licenses.asl20;
     platforms = platforms.linux;
diff --git a/pkgs/tools/networking/redfang/default.nix b/pkgs/tools/networking/redfang/default.nix
index a6447c19576cd..9c852aa5ffb65 100644
--- a/pkgs/tools/networking/redfang/default.nix
+++ b/pkgs/tools/networking/redfang/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ bluez ];
 
   meta = with lib; {
-    description = "A small proof-of-concept application to find non discoverable bluetooth devices";
+    description = "Small proof-of-concept application to find non discoverable bluetooth devices";
     homepage = "https://gitlab.com/kalilinux/packages/redfang";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ moni ];
diff --git a/pkgs/tools/networking/redir/default.nix b/pkgs/tools/networking/redir/default.nix
index 46233e4a4daad..87ea83f5a467d 100644
--- a/pkgs/tools/networking/redir/default.nix
+++ b/pkgs/tools/networking/redir/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook ];
 
   meta = {
-    description = "A TCP port redirector for UNIX";
+    description = "TCP port redirector for UNIX";
     homepage = "https://github.com/troglobit/redir";
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ ];
diff --git a/pkgs/tools/networking/redli/default.nix b/pkgs/tools/networking/redli/default.nix
index 9703fe4d4089e..07897de0397a2 100644
--- a/pkgs/tools/networking/redli/default.nix
+++ b/pkgs/tools/networking/redli/default.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
   vendorHash = null;
 
   meta = with lib; {
-    description = "A humane alternative to the Redis-cli and TLS";
+    description = "Humane alternative to the Redis-cli and TLS";
     homepage = "https://github.com/IBM-Cloud/redli";
     license = licenses.asl20;
     maintainers = with maintainers; [ tchekda ];
diff --git a/pkgs/tools/networking/rewrk/default.nix b/pkgs/tools/networking/rewrk/default.nix
index 58aa3f46185b1..a76d666117732 100644
--- a/pkgs/tools/networking/rewrk/default.nix
+++ b/pkgs/tools/networking/rewrk/default.nix
@@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A more modern http framework benchmarker supporting HTTP/1 and HTTP/2 benchmarks";
+    description = "More modern http framework benchmarker supporting HTTP/1 and HTTP/2 benchmarks";
     homepage = "https://github.com/lnx-search/rewrk";
     changelog = "https://github.com/lnx-search/rewrk/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/tools/networking/rosenpass/tools.nix b/pkgs/tools/networking/rosenpass/tools.nix
index 86f7359809a55..04af5755abb99 100644
--- a/pkgs/tools/networking/rosenpass/tools.nix
+++ b/pkgs/tools/networking/rosenpass/tools.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
   '';
 
   meta = rosenpass.meta // {
-    description = "The Rosenpass tool `rp`, which is a script that wraps the `rosenpass` binary";
+    description = "Rosenpass tool `rp`, which is a script that wraps the `rosenpass` binary";
     mainProgram = "rp";
   };
 }
diff --git a/pkgs/tools/networking/rtptools/default.nix b/pkgs/tools/networking/rtptools/default.nix
index 5d439f183d2f6..8214d0785f166 100644
--- a/pkgs/tools/networking/rtptools/default.nix
+++ b/pkgs/tools/networking/rtptools/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
     sha256 = "0a4c0vmhxibfc58rrxpbav2bsk546chkg50ir4h3i57v4fjb4xic";
   };
   meta = {
-    description = "A number of small applications that can be used for processing RTP data";
+    description = "Number of small applications that can be used for processing RTP data";
     homepage = "https://www.cs.columbia.edu/irt/software/rtptools/";
     maintainers = [ lib.maintainers.lheckemann ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/tools/networking/s3rs/default.nix b/pkgs/tools/networking/s3rs/default.nix
index 2e72c7cb45bff..ec4725e9f2d0c 100644
--- a/pkgs/tools/networking/s3rs/default.nix
+++ b/pkgs/tools/networking/s3rs/default.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
     ++ lib.optionals stdenv.isDarwin [ Security ];
 
   meta = with lib; {
-    description = "A s3 cli client with multi configs with diffent provider";
+    description = "S3 cli client with multi configs with diffent provider";
     homepage = "https://github.com/yanganto/s3rs";
     license = licenses.mit;
     maintainers = with maintainers; [ yanganto ];
diff --git a/pkgs/tools/networking/shadowsocks-libev/default.nix b/pkgs/tools/networking/shadowsocks-libev/default.nix
index 4b268213c94cd..b6544c60edaff 100644
--- a/pkgs/tools/networking/shadowsocks-libev/default.nix
+++ b/pkgs/tools/networking/shadowsocks-libev/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A lightweight secured SOCKS5 proxy";
+    description = "Lightweight secured SOCKS5 proxy";
     longDescription = ''
       Shadowsocks-libev is a lightweight secured SOCKS5 proxy for embedded devices and low-end boxes.
       It is a port of Shadowsocks created by @clowwindy, which is maintained by @madeye and @linusyang.
diff --git a/pkgs/tools/networking/shadowsocks-rust/default.nix b/pkgs/tools/networking/shadowsocks-rust/default.nix
index 360639fa9ad4f..cc261d1cfdf9f 100644
--- a/pkgs/tools/networking/shadowsocks-rust/default.nix
+++ b/pkgs/tools/networking/shadowsocks-rust/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "shadowsocks-rust";
-  version = "1.18.4";
+  version = "1.19.2";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "shadowsocks";
     repo = pname;
-    hash = "sha256-1gZP0PVvYWEfWmTVql+8uyNhcjawBMJKvqy/4sZ0/6Y=";
+    hash = "sha256-Mru6HUq0er3zIpyaFcbFfyaoYvD+YHgU+kGp9yW5ia0=";
   };
 
-  cargoHash = "sha256-GZuRz4VtAm+aQO0Hq5v3HVfqjoMPsEw5G6VADsAvdEQ=";
+  cargoHash = "sha256-mx//rLIsxrGV1nh8HR/Dg+SPRdSapmvulM1nYuHJzg0=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ];
 
@@ -48,7 +48,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Rust port of Shadowsocks";
+    description = "Rust port of Shadowsocks";
     homepage = "https://github.com/shadowsocks/shadowsocks-rust";
     changelog = "https://github.com/shadowsocks/shadowsocks-rust/raw/v${version}/debian/changelog";
     license = licenses.mit;
diff --git a/pkgs/tools/networking/shorewall/default.nix b/pkgs/tools/networking/shorewall/default.nix
index 79fd1c17a492c..f3edc8d0d01c7 100644
--- a/pkgs/tools/networking/shorewall/default.nix
+++ b/pkgs/tools/networking/shorewall/default.nix
@@ -105,7 +105,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://www.shorewall.net/";
-    description = "An IP gateway/firewall configuration tool for GNU/Linux";
+    description = "IP gateway/firewall configuration tool for GNU/Linux";
     longDescription = ''
       Shorewall is a high-level tool for configuring Netfilter. You describe your
       firewall/gateway requirements using entries in a set of configuration
diff --git a/pkgs/tools/networking/simpleproxy/default.nix b/pkgs/tools/networking/simpleproxy/default.nix
index e91d5d4eb2721..3b2b614e282cd 100644
--- a/pkgs/tools/networking/simpleproxy/default.nix
+++ b/pkgs/tools/networking/simpleproxy/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/vzaliva/simpleproxy";
-    description = "A simple TCP proxy";
+    description = "Simple TCP proxy";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.montag451 ];
     mainProgram = "simpleproxy";
diff --git a/pkgs/tools/networking/sing-box/default.nix b/pkgs/tools/networking/sing-box/default.nix
index 51a877b35264a..339219cd8ef10 100644
--- a/pkgs/tools/networking/sing-box/default.nix
+++ b/pkgs/tools/networking/sing-box/default.nix
@@ -11,20 +11,19 @@
 
 buildGoModule rec {
   pname = "sing-box";
-  version = "1.8.14";
+  version = "1.9.3";
 
   src = fetchFromGitHub {
     owner = "SagerNet";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-46LucDuw5+B44481tafB5RodECAiLcnKQ4TeUhwEOjc=";
+    hash = "sha256-5T3Z5tayiKLeyP92Sgmxe3+QQW1QFIw3f+SF9qlr6bI=";
   };
 
-  vendorHash = "sha256-7GQTsicl420bXUPT09sBn+OLBA5Ppi8OPWJys8mNe+c=";
+  vendorHash = "sha256-UVFswS51OlYf01UJT7kqeCvmh3kGsiKet7tH/2AOkjc=";
 
   tags = [
     "with_quic"
-    "with_grpc"
     "with_dhcp"
     "with_wireguard"
     "with_ech"
@@ -32,7 +31,6 @@ buildGoModule rec {
     "with_reality_server"
     "with_acme"
     "with_clash_api"
-    "with_v2ray_api"
     "with_gvisor"
   ];
 
@@ -65,7 +63,7 @@ buildGoModule rec {
 
   meta = with lib;{
     homepage = "https://sing-box.sagernet.org";
-    description = "The universal proxy platform";
+    description = "Universal proxy platform";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ nickcao ];
     mainProgram = "sing-box";
diff --git a/pkgs/tools/networking/sish/default.nix b/pkgs/tools/networking/sish/default.nix
index e85e6c80f4d8e..be17d6fe885be 100644
--- a/pkgs/tools/networking/sish/default.nix
+++ b/pkgs/tools/networking/sish/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "sish";
-  version = "2.15.0";
+  version = "2.16.0";
 
   src = fetchFromGitHub {
     owner = "antoniomika";
     repo = "sish";
     rev = "refs/tags/v${version}";
-    hash = "sha256-70FKq36q/wNMEmaFOXY9gt24gXXbdpQJB1F7wQwYigE=";
+    hash = "sha256-YGeUiuLT67UI5whDAKcDFvYGnCIBkX4oCtKq47Qnw1k=";
   };
 
   vendorHash = "sha256-hlwJE31osz9MgZ0vCx4L6vo4PuGh0NgiPJgDq65fZ4U=";
diff --git a/pkgs/tools/networking/sitespeed-io/default.nix b/pkgs/tools/networking/sitespeed-io/default.nix
index ed7bf5363e9bc..e59fc2de97b4f 100644
--- a/pkgs/tools/networking/sitespeed-io/default.nix
+++ b/pkgs/tools/networking/sitespeed-io/default.nix
@@ -24,13 +24,13 @@
 assert (!withFirefox && !withChromium) -> throw "Either `withFirefox` or `withChromium` must be enabled.";
 buildNpmPackage rec {
   pname = "sitespeed-io";
-  version = "33.6.0";
+  version = "34.0.1";
 
   src = fetchFromGitHub {
     owner = "sitespeedio";
     repo = "sitespeed.io";
     rev = "v${version}";
-    hash = "sha256-ln4P0mVKv/QppkKJwBQsV1OSvH3OFUsDN/WsOyRDGus=";
+    hash = "sha256-yC/TlAJa71hbPYYuqPV+k3syGuo/VhnNjXmmxh47ySQ=";
   };
 
   nodejs = nodejs_18;
@@ -46,7 +46,7 @@ buildNpmPackage rec {
 
   dontNpmBuild = true;
   npmInstallFlags = [ "--omit=dev" ];
-  npmDepsHash = "sha256-XdWpoXeDY7eV5F9UezUZBsr3RelajleVNzThTEjzw74=";
+  npmDepsHash = "sha256-Q0cWxV5OOaG8Z3aM2j0HtD1e9yPFVDSRcMKBf/yscv4=";
 
   postInstall = ''
     mv $out/bin/sitespeed{.,-}io
@@ -87,7 +87,7 @@ buildNpmPackage rec {
   };
 
   meta = with lib; {
-    description = "An open source tool that helps you monitor, analyze and optimize your website speed and performance";
+    description = "Open source tool that helps you monitor, analyze and optimize your website speed and performance";
     homepage = "https://sitespeed.io";
     license = licenses.mit;
     maintainers = with maintainers; [ misterio77 ];
diff --git a/pkgs/tools/networking/snmpcheck/default.nix b/pkgs/tools/networking/snmpcheck/default.nix
index b365ccc5f1911..dbf6c95de8ac1 100644
--- a/pkgs/tools/networking/snmpcheck/default.nix
+++ b/pkgs/tools/networking/snmpcheck/default.nix
@@ -25,7 +25,6 @@ stdenv.mkDerivation rec {
     description = "SNMP enumerator";
     homepage = "http://www.nothink.org/codes/snmpcheck/";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ elohmeier ];
     mainProgram = "snmp-check";
   };
 }
diff --git a/pkgs/tools/networking/srelay/default.nix b/pkgs/tools/networking/srelay/default.nix
index 784aca8fe4316..a8d6a33ac3d17 100644
--- a/pkgs/tools/networking/srelay/default.nix
+++ b/pkgs/tools/networking/srelay/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   installPhase = "install -D srelay $out/bin/srelay";
 
   meta = {
-    description = "A SOCKS proxy and relay";
+    description = "SOCKS proxy and relay";
     homepage = "http://socks-relay.sourceforge.net/";
     platforms = lib.platforms.unix;
     license = lib.licenses.bsd3;
diff --git a/pkgs/tools/networking/ssldump/default.nix b/pkgs/tools/networking/ssldump/default.nix
index a855315a565cf..ad39514f0e343 100644
--- a/pkgs/tools/networking/ssldump/default.nix
+++ b/pkgs/tools/networking/ssldump/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An SSLv3/TLS network protocol analyzer";
+    description = "SSLv3/TLS network protocol analyzer";
     homepage = "https://ssldump.sourceforge.net";
     license = "BSD-style";
     maintainers = with maintainers; [ aycanirican ];
diff --git a/pkgs/tools/networking/stevenblack-blocklist/default.nix b/pkgs/tools/networking/stevenblack-blocklist/default.nix
index 0531a3d20b248..34f64cb5e4804 100644
--- a/pkgs/tools/networking/stevenblack-blocklist/default.nix
+++ b/pkgs/tools/networking/stevenblack-blocklist/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchFromGitHub }:
 
 let
-  version = "3.14.71";
+  version = "3.14.79";
 in
 fetchFromGitHub {
   name = "stevenblack-blocklist-${version}";
@@ -9,7 +9,7 @@ fetchFromGitHub {
   owner = "StevenBlack";
   repo = "hosts";
   rev = version;
-  hash = "sha256-33aDL+nJ+BOwOOSfiaAX3r8BdDM2rWCaeiz55nUXrd8=";
+  hash = "sha256-MfQGu+Y4/A0GKIu9d//U+yiP0fN/7cWhEo2dut4UvcE=";
 
   meta = with lib; {
     description = "Unified hosts file with base extensions";
@@ -18,6 +18,7 @@ fetchFromGitHub {
     maintainers = with maintainers; [
       moni
       Guanran928
+      frontear
     ];
   };
 }
diff --git a/pkgs/tools/networking/swagger-codegen3/default.nix b/pkgs/tools/networking/swagger-codegen3/default.nix
index 04fd6ce62fda1..b2bc6d5ccd713 100644
--- a/pkgs/tools/networking/swagger-codegen3/default.nix
+++ b/pkgs/tools/networking/swagger-codegen3/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, jre, makeWrapper, testers, swagger-codegen3 }:
 
 stdenv.mkDerivation rec {
-  version = "3.0.56";
+  version = "3.0.57";
   pname = "swagger-codegen";
 
   jarfilename = "${pname}-cli-${version}.jar";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://maven/io/swagger/codegen/v3/${pname}-cli/${version}/${jarfilename}";
-    sha256 = "sha256-i2XC7fFfsO2OIE4NsO/WiqSHiYCXJZr6naxxAw/jkt0=";
+    sha256 = "sha256-KwygxRjw6NE/swVjDYQAkwfO/OnLiIGhsKCJbXM0VYQ=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/tools/networking/swaks/default.nix b/pkgs/tools/networking/swaks/default.nix
index 1ca00b6beaea4..d4308b6037893 100644
--- a/pkgs/tools/networking/swaks/default.nix
+++ b/pkgs/tools/networking/swaks/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.jetmore.org/john/code/swaks/";
-    description = "A featureful, flexible, scriptable, transaction-oriented SMTP test tool";
+    description = "Featureful, flexible, scriptable, transaction-oriented SMTP test tool";
     mainProgram = "swaks";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [];
diff --git a/pkgs/tools/networking/tcpreplay/default.nix b/pkgs/tools/networking/tcpreplay/default.nix
index 8d0c8eb4fc4a5..625de8111dcbf 100644
--- a/pkgs/tools/networking/tcpreplay/default.nix
+++ b/pkgs/tools/networking/tcpreplay/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A suite of utilities for editing and replaying network traffic";
+    description = "Suite of utilities for editing and replaying network traffic";
     homepage = "https://tcpreplay.appneta.com/";
     license = with licenses; [ bsdOriginalUC gpl3Only ];
     maintainers = with maintainers; [ eleanor ];
diff --git a/pkgs/tools/networking/tcptraceroute/default.nix b/pkgs/tools/networking/tcptraceroute/default.nix
index 978d065570718..586462e6c2c53 100644
--- a/pkgs/tools/networking/tcptraceroute/default.nix
+++ b/pkgs/tools/networking/tcptraceroute/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libpcap libnet ];
 
   meta = {
-    description = "A traceroute implementation using TCP packets";
+    description = "Traceroute implementation using TCP packets";
     homepage = "https://github.com/mct/tcptraceroute";
     license = lib.licenses.gpl2Only;
     maintainers = [ ];
diff --git a/pkgs/tools/networking/teavpn2/default.nix b/pkgs/tools/networking/teavpn2/default.nix
index 57016a0302a07..cc54259aae0d0 100644
--- a/pkgs/tools/networking/teavpn2/default.nix
+++ b/pkgs/tools/networking/teavpn2/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "An open source VPN Software";
+    description = "Open source VPN Software";
     homepage = "https://github.com/TeaInside/teavpn2";
     license = licenses.gpl2Plus;
     mainProgram = "teavpn2";
diff --git a/pkgs/tools/networking/termscp/default.nix b/pkgs/tools/networking/termscp/default.nix
index 924de6cf1e2e3..a5777a1f7f282 100644
--- a/pkgs/tools/networking/termscp/default.nix
+++ b/pkgs/tools/networking/termscp/default.nix
@@ -51,7 +51,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A feature rich terminal UI file transfer and explorer with support for SCP/SFTP/FTP/S3/SMB";
+    description = "Feature rich terminal UI file transfer and explorer with support for SCP/SFTP/FTP/S3/SMB";
     homepage = "https://github.com/veeso/termscp";
     changelog = "https://github.com/veeso/termscp/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
diff --git a/pkgs/tools/networking/termshark/default.nix b/pkgs/tools/networking/termshark/default.nix
index bdca008cc94c2..5535ca550b81d 100644
--- a/pkgs/tools/networking/termshark/default.nix
+++ b/pkgs/tools/networking/termshark/default.nix
@@ -28,7 +28,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://termshark.io/";
-    description = "A terminal UI for wireshark-cli, inspired by Wireshark";
+    description = "Terminal UI for wireshark-cli, inspired by Wireshark";
     mainProgram = "termshark";
     license = licenses.mit;
     maintainers = with maintainers; [ winpat ];
diff --git a/pkgs/tools/networking/tgt/default.nix b/pkgs/tools/networking/tgt/default.nix
index f04f06acc7d30..1399750f47323 100644
--- a/pkgs/tools/networking/tgt/default.nix
+++ b/pkgs/tools/networking/tgt/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tgt";
-  version = "1.0.91";
+  version = "1.0.92";
 
   src = fetchFromGitHub {
     owner = "fujita";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-/aykQolUWcCU/PV3bYq8cR0oSAS+ojzZC5PBWgIh2dM=";
+    sha256 = "sha256-Axx9D4BIg68R9bDDNyIGw8n91Jg1YJ/zN1rE6aeMZcs=";
   };
 
   nativeBuildInputs = [ libxslt docbook_xsl makeWrapper ];
diff --git a/pkgs/tools/networking/tinyfecvpn/default.nix b/pkgs/tools/networking/tinyfecvpn/default.nix
index 8e609a886b306..fc95e944818a6 100644
--- a/pkgs/tools/networking/tinyfecvpn/default.nix
+++ b/pkgs/tools/networking/tinyfecvpn/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/wangyu-/tinyfecVPN";
-    description = "A VPN Designed for Lossy Links, with Build-in Forward Error Correction(FEC) Support";
+    description = "VPN Designed for Lossy Links, with Build-in Forward Error Correction(FEC) Support";
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/tools/networking/tinyproxy/default.nix b/pkgs/tools/networking/tinyproxy/default.nix
index 11f93b6e49020..b5d45baf998b7 100644
--- a/pkgs/tools/networking/tinyproxy/default.nix
+++ b/pkgs/tools/networking/tinyproxy/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://tinyproxy.github.io/";
-    description = "A light-weight HTTP/HTTPS proxy daemon for POSIX operating systems";
+    description = "Light-weight HTTP/HTTPS proxy daemon for POSIX operating systems";
     license = licenses.gpl2Only;
     platforms = platforms.all;
     maintainers = [ maintainers.carlosdagos ];
diff --git a/pkgs/tools/networking/tinystatus/default.nix b/pkgs/tools/networking/tinystatus/default.nix
index d58d853b5e109..59a6dcff9dee3 100644
--- a/pkgs/tools/networking/tinystatus/default.nix
+++ b/pkgs/tools/networking/tinystatus/default.nix
@@ -49,7 +49,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A static HTML status page generator written in pure shell";
+    description = "Static HTML status page generator written in pure shell";
     mainProgram = "tinystatus";
     homepage = "https://github.com/bderenzo/tinystatus";
     license = licenses.mit;
diff --git a/pkgs/tools/networking/tox-node/default.nix b/pkgs/tools/networking/tox-node/default.nix
index 10a823f287362..5ff731ca2dfab 100644
--- a/pkgs/tools/networking/tox-node/default.nix
+++ b/pkgs/tools/networking/tox-node/default.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A server application to run tox node written in pure Rust";
+    description = "Server application to run tox node written in pure Rust";
     homepage = "https://github.com/tox-rs/tox";
     license = [ licenses.gpl3Plus ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/networking/toxvpn/default.nix b/pkgs/tools/networking/toxvpn/default.nix
index 633ecf654924e..555960da39800 100644
--- a/pkgs/tools/networking/toxvpn/default.nix
+++ b/pkgs/tools/networking/toxvpn/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
   postInstall = "$out/bin/toxvpn -h";
 
   meta = with lib; {
-    description = "A powerful tool that allows one to make tunneled point to point connections over Tox";
+    description = "Powerful tool that allows one to make tunneled point to point connections over Tox";
     homepage = "https://github.com/cleverca22/toxvpn";
     license = licenses.gpl3;
     maintainers = with maintainers; [ cleverca22 obadz toonn ];
diff --git a/pkgs/tools/networking/tracebox/default.nix b/pkgs/tools/networking/tracebox/default.nix
index 0652e6e59bef8..1d50aea475663 100644
--- a/pkgs/tools/networking/tracebox/default.nix
+++ b/pkgs/tools/networking/tracebox/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.tracebox.org/";
-    description = "A middlebox detection tool";
+    description = "Middlebox detection tool";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ ck3d ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/networking/trippy/default.nix b/pkgs/tools/networking/trippy/default.nix
index e45122d53de09..95e85c60bc4b5 100644
--- a/pkgs/tools/networking/trippy/default.nix
+++ b/pkgs/tools/networking/trippy/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-OCbrg1uSot0uNFx7uSlN5Bh6bl34ng9xO6lo9wks6nY=";
 
   meta = with lib; {
-    description = "A network diagnostic tool";
+    description = "Network diagnostic tool";
     homepage = "https://trippy.cli.rs";
     changelog = "https://github.com/fujiapple852/trippy/blob/${src.rev}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/tools/networking/trurl/default.nix b/pkgs/tools/networking/trurl/default.nix
index ea19b2794ec2f..fe330172afaff 100644
--- a/pkgs/tools/networking/trurl/default.nix
+++ b/pkgs/tools/networking/trurl/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A command line tool for URL parsing and manipulation";
+    description = "Command line tool for URL parsing and manipulation";
     homepage = "https://curl.se/trurl";
     changelog = "https://github.com/curl/trurl/releases/tag/${pname}-${version}";
     license = licenses.curl;
diff --git a/pkgs/tools/networking/twa/default.nix b/pkgs/tools/networking/twa/default.nix
index ab73eae70046c..1d860bc753648 100644
--- a/pkgs/tools/networking/twa/default.nix
+++ b/pkgs/tools/networking/twa/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A tiny web auditor with strong opinions";
+    description = "Tiny web auditor with strong opinions";
     homepage = "https://github.com/trailofbits/twa";
     license = licenses.mit;
     maintainers = with maintainers; [ avaq ];
diff --git a/pkgs/tools/networking/udp2raw/default.nix b/pkgs/tools/networking/udp2raw/default.nix
index e10db84eb49f8..8844e375d19e3 100644
--- a/pkgs/tools/networking/udp2raw/default.nix
+++ b/pkgs/tools/networking/udp2raw/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/wangyu-/udp2raw";
-    description = "A tunnel which turns UDP traffic into encrypted UDP/FakeTCP/ICMP traffic by using a raw socket";
+    description = "Tunnel which turns UDP traffic into encrypted UDP/FakeTCP/ICMP traffic by using a raw socket";
     mainProgram = "udp2raw";
     license = licenses.mit;
     changelog = "https://github.com/wangyu-/udp2raw/releases/tag/${version}";
diff --git a/pkgs/tools/networking/urlwatch/default.nix b/pkgs/tools/networking/urlwatch/default.nix
index 0335ed765479d..41767f735c569 100644
--- a/pkgs/tools/networking/urlwatch/default.nix
+++ b/pkgs/tools/networking/urlwatch/default.nix
@@ -45,7 +45,7 @@ python3Packages.buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A tool for monitoring webpages for updates";
+    description = "Tool for monitoring webpages for updates";
     mainProgram = "urlwatch";
     homepage = "https://thp.io/2008/urlwatch/";
     license = licenses.bsd3;
diff --git a/pkgs/tools/networking/userhosts/default.nix b/pkgs/tools/networking/userhosts/default.nix
index 10bfbd650aa74..1433e0dd28ac7 100644
--- a/pkgs/tools/networking/userhosts/default.nix
+++ b/pkgs/tools/networking/userhosts/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   installFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "A libc wrapper providing per-user hosts file";
+    description = "Libc wrapper providing per-user hosts file";
     homepage = "https://github.com/figiel/hosts";
     maintainers = [ maintainers.bobvanderlinden ];
     license = licenses.cc0;
diff --git a/pkgs/tools/networking/v2ray/default.nix b/pkgs/tools/networking/v2ray/default.nix
index c46af01f79234..4fe4222ff08ea 100644
--- a/pkgs/tools/networking/v2ray/default.nix
+++ b/pkgs/tools/networking/v2ray/default.nix
@@ -54,7 +54,7 @@ buildGoModule rec {
 
   meta = {
     homepage = "https://www.v2fly.org/en_US/";
-    description = "A platform for building proxies to bypass network restrictions";
+    description = "Platform for building proxies to bypass network restrictions";
     mainProgram = "v2ray";
     license = with lib.licenses; [ mit ];
     maintainers = with lib.maintainers; [ servalcatty ];
diff --git a/pkgs/tools/networking/v2raya/default.nix b/pkgs/tools/networking/v2raya/default.nix
index 298b27a14ef48..a09bc8e3c53ab 100644
--- a/pkgs/tools/networking/v2raya/default.nix
+++ b/pkgs/tools/networking/v2raya/default.nix
@@ -89,7 +89,7 @@ buildGoModule {
   '';
 
   meta = with lib; {
-    description = "A Linux web GUI client of Project V which supports V2Ray, Xray, SS, SSR, Trojan and Pingtunnel";
+    description = "Linux web GUI client of Project V which supports V2Ray, Xray, SS, SSR, Trojan and Pingtunnel";
     homepage = "https://github.com/v2rayA/v2rayA";
     mainProgram = "v2rayA";
     license = licenses.agpl3Only;
diff --git a/pkgs/tools/networking/veilid/default.nix b/pkgs/tools/networking/veilid/default.nix
index d41177eabf306..cc6669b794823 100644
--- a/pkgs/tools/networking/veilid/default.nix
+++ b/pkgs/tools/networking/veilid/default.nix
@@ -49,7 +49,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "An open-source, peer-to-peer, mobile-first, networked application framework";
+    description = "Open-source, peer-to-peer, mobile-first, networked application framework";
     homepage = "https://veilid.com";
     license = licenses.mpl20;
     maintainers = with maintainers; [ bbigras qbit ];
diff --git a/pkgs/tools/networking/voms/default.nix b/pkgs/tools/networking/voms/default.nix
index cafc812032b7a..b51b583e69372 100644
--- a/pkgs/tools/networking/voms/default.nix
+++ b/pkgs/tools/networking/voms/default.nix
@@ -76,7 +76,7 @@ stdenv.mkDerivation rec{
   '';
 
   meta = with lib; {
-    description = "The C/C++ VOMS server, client and APIs v2.x";
+    description = "C/C++ VOMS server, client and APIs v2.x";
     homepage = "https://italiangrid.github.io/voms/";
     changelog = "https://github.com/italiangrid/voms/blob/master/ChangeLog";
     license = licenses.asl20;
diff --git a/pkgs/tools/networking/waitron/default.nix b/pkgs/tools/networking/waitron/default.nix
index 7ad9ed77a7d57..d0dd8a6a17ded 100644
--- a/pkgs/tools/networking/waitron/default.nix
+++ b/pkgs/tools/networking/waitron/default.nix
@@ -24,7 +24,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "A tool to manage network booting of machines";
+    description = "Tool to manage network booting of machines";
     longDescription = ''
       Waitron is used to build machines (primarily bare-metal, but anything that
       understands PXE booting will work) based on definitions from any number of
diff --git a/pkgs/tools/networking/wbox/default.nix b/pkgs/tools/networking/wbox/default.nix
index 16f0883cd1d9d..dad3f374f7ae9 100644
--- a/pkgs/tools/networking/wbox/default.nix
+++ b/pkgs/tools/networking/wbox/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "A simple HTTP benchmarking tool";
+    description = "Simple HTTP benchmarking tool";
     homepage = "http://www.hping.org/wbox/";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.unix;
diff --git a/pkgs/tools/networking/wgautomesh/default.nix b/pkgs/tools/networking/wgautomesh/default.nix
index a9843e2efa17b..cd686a9bd592d 100644
--- a/pkgs/tools/networking/wgautomesh/default.nix
+++ b/pkgs/tools/networking/wgautomesh/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-DGDVjQ4fr4/F1RE0qVc5CWcXrrCEswCF7rQQwlKzMPA=";
 
   meta = with lib; {
-    description = "A simple utility to help connect wireguard nodes together in a full mesh topology";
+    description = "Simple utility to help connect wireguard nodes together in a full mesh topology";
     homepage = "https://git.deuxfleurs.fr/Deuxfleurs/wgautomesh";
     license = licenses.agpl3Only;
     maintainers = [ maintainers.lx ];
diff --git a/pkgs/tools/networking/xray/default.nix b/pkgs/tools/networking/xray/default.nix
index 56803c3dc312b..e27931f00c0e3 100644
--- a/pkgs/tools/networking/xray/default.nix
+++ b/pkgs/tools/networking/xray/default.nix
@@ -11,16 +11,16 @@
 
 buildGoModule rec {
   pname = "xray";
-  version = "1.8.11";
+  version = "1.8.13";
 
   src = fetchFromGitHub {
     owner = "XTLS";
     repo = "Xray-core";
     rev = "v${version}";
-    hash = "sha256-uOE+Gp42WsqSA5/kQRjk+BKq9igmZCrq/9v1BJMXwFc=";
+    hash = "sha256-+npmj8Cz3/XTabAXL+J02EmyvPwtwz9TKazd9z9emwI=";
   };
 
-  vendorHash = "sha256-7E/H8ctv9BU59wPmywNeDhx1R4mqrjpM9E+Hz+AaPlk=";
+  vendorHash = "sha256-55mNCD3p6Xy6S1w8WzJwxKttjEkEjJZcGTLQdWl1bQQ=";
 
   nativeBuildInputs = [ makeWrapper ];
 
@@ -51,7 +51,7 @@ buildGoModule rec {
   };
 
   meta = {
-    description = "A platform for building proxies to bypass network restrictions. A replacement for v2ray-core, with XTLS support and fully compatible configuration";
+    description = "Platform for building proxies to bypass network restrictions. A replacement for v2ray-core, with XTLS support and fully compatible configuration";
     mainProgram = "xray";
     homepage = "https://github.com/XTLS/Xray-core";
     license = with lib.licenses; [ mpl20 ];
diff --git a/pkgs/tools/networking/yrd/default.nix b/pkgs/tools/networking/yrd/default.nix
deleted file mode 100644
index 04fee4daf541b..0000000000000
--- a/pkgs/tools/networking/yrd/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ lib
-, python3
-, fetchFromGitHub
-}:
-
-python3.pkgs.buildPythonApplication rec {
-  pname = "yrd";
-  version = "0.5.3";
-
-  src = fetchFromGitHub {
-    owner = "kpcyrd";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "1yx1hr8z4cvlb3yi24dwafs0nxq41k4q477jc9q24w61a0g662ps";
-  };
-
-  propagatedBuildInputs = with python3.pkgs; [
-    argh
-    requests
-  ];
-
-  nativeCheckInputs = with python3.pkgs; [
-    nose
-  ];
-
-  checkPhase = ''
-    nosetests -v yrd
-  '';
-
-  meta = with lib; {
-    description = "Cjdns swiss army knife";
-    maintainers = with maintainers; [ akru ];
-    platforms = platforms.linux;
-    license = licenses.gpl3Only;
-    homepage = "https://github.com/kpcyrd/yrd";
-  };
-}
diff --git a/pkgs/tools/networking/zerotierone/default.nix b/pkgs/tools/networking/zerotierone/default.nix
index f9415055a537d..fa2c86d6f83a9 100644
--- a/pkgs/tools/networking/zerotierone/default.nix
+++ b/pkgs/tools/networking/zerotierone/default.nix
@@ -65,6 +65,19 @@ in stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
+  # Ensure Rust compiles for the right target
+  env.CARGO_BUILD_TARGET = stdenv.hostPlatform.rust.rustcTarget;
+
+  # Cargo won't compile to target/release but to target/<RUST_TARGET>/release when a target is
+  # explicitly defined. The build-system however expects target/release. Hence we just symlink from
+  # the latter to the former.
+  preBuild = ''
+    mkdir -p rustybits/target/release
+    ln -rs \
+      ./rustybits/target/${stdenv.hostPlatform.rust.rustcTarget}/release/libzeroidc.a \
+      ./rustybits/target/release/
+  '';
+
   buildFlags = [ "all" "selftest" ];
 
   doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
diff --git a/pkgs/tools/nix/alejandra/default.nix b/pkgs/tools/nix/alejandra/default.nix
index 2dc35be811067..d3501faa10c4a 100644
--- a/pkgs/tools/nix/alejandra/default.nix
+++ b/pkgs/tools/nix/alejandra/default.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "The Uncompromising Nix Code Formatter";
+    description = "Uncompromising Nix Code Formatter";
     homepage = "https://github.com/kamadorueda/alejandra";
     changelog = "https://github.com/kamadorueda/alejandra/blob/${version}/CHANGELOG.md";
     license = licenses.unlicense;
diff --git a/pkgs/tools/nix/fh/default.nix b/pkgs/tools/nix/fh/default.nix
index ceae99faaae0a..2a3e1d9e5a4d2 100644
--- a/pkgs/tools/nix/fh/default.nix
+++ b/pkgs/tools/nix/fh/default.nix
@@ -45,7 +45,7 @@ rustPlatform.buildRustPackage rec {
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
-    description = "The official FlakeHub CLI";
+    description = "Official FlakeHub CLI";
     homepage = "https://github.com/DeterminateSystems/fh";
     changelog = "https://github.com/DeterminateSystems/fh/releases/tag/${src.rev}";
     license = licenses.asl20;
diff --git a/pkgs/tools/nix/nix-melt/default.nix b/pkgs/tools/nix/nix-melt/default.nix
index 50f830cf42a09..3371eaf82fead 100644
--- a/pkgs/tools/nix/nix-melt/default.nix
+++ b/pkgs/tools/nix/nix-melt/default.nix
@@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A ranger-like flake.lock viewer";
+    description = "Ranger-like flake.lock viewer";
     mainProgram = "nix-melt";
     homepage = "https://github.com/nix-community/nix-melt";
     changelog = "https://github.com/nix-community/nix-melt/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/tools/nix/nix-script/default.nix b/pkgs/tools/nix/nix-script/default.nix
index c83bfbc7a2268..2fb9d88b6fc85 100644
--- a/pkgs/tools/nix/nix-script/default.nix
+++ b/pkgs/tools/nix/nix-script/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A shebang for running inside nix-shell";
+    description = "Shebang for running inside nix-shell";
     homepage    = "https://github.com/bennofs/nix-script";
     license     = licenses.bsd3;
     maintainers = with maintainers; [ bennofs rnhmjoj ];
diff --git a/pkgs/tools/nix/nix-store-gcs-proxy/default.nix b/pkgs/tools/nix/nix-store-gcs-proxy/default.nix
index c83d44101b5ba..158e8e6056a29 100644
--- a/pkgs/tools/nix/nix-store-gcs-proxy/default.nix
+++ b/pkgs/tools/nix/nix-store-gcs-proxy/default.nix
@@ -15,7 +15,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = {
-    description = "A HTTP nix store that proxies requests to Google Storage";
+    description = "HTTP nix store that proxies requests to Google Storage";
     mainProgram = "nix-store-gcs-proxy";
     homepage = "https://github.com/tweag/nix-store-gcs-proxy";
     license = lib.licenses.asl20;
diff --git a/pkgs/tools/nix/nixci/default.nix b/pkgs/tools/nix/nixci/default.nix
index dbbc7ae1cc4f4..e84e21f4c83fb 100644
--- a/pkgs/tools/nix/nixci/default.nix
+++ b/pkgs/tools/nix/nixci/default.nix
@@ -12,15 +12,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nixci";
-  version = "0.4.0";
+  version = "0.5.0";
 
   src = fetchCrate {
     inherit version;
     pname = "nixci";
-    hash = "sha256-JC1LUny8UKflANlcx6Hcgx39CRry+ossnp/RQK36oaI=";
+    hash = "sha256-XbPXS29zqg+pOs/JRRB2bRPdMTDy/oKLM41UomSZTN0=";
   };
 
-  cargoHash = "sha256-pYPzM7QlQ2EXwrvuXMa1qs0m7cmumh1iPesgJZ0H2kg=";
+  cargoHash = "sha256-+ed/XsEAwp7bsZOb+bOailpgSFnKvwoHR0QptnGeulk=";
 
   nativeBuildInputs = [ pkg-config ];
 
@@ -37,8 +37,8 @@ rustPlatform.buildRustPackage rec {
   env.DEVOUR_FLAKE = fetchFromGitHub {
     owner = "srid";
     repo = "devour-flake";
-    rev = "v3";
-    hash = "sha256-O51F4YFOzlaQAc9b6xjkAqpvrvCtw/Os2M7TU0y4SKQ=";
+    rev = "v4";
+    hash = "sha256-Vey9n9hIlWiSAZ6CCTpkrL6jt4r2JvT2ik9wa2bjeC0=";
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/nix/nixdoc/default.nix b/pkgs/tools/nix/nixdoc/default.nix
index 54d0c1be4ce6b..29be340981818 100644
--- a/pkgs/tools/nix/nixdoc/default.nix
+++ b/pkgs/tools/nix/nixdoc/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nixdoc";
-  version = "3.0.2";
+  version = "3.0.5";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "nixdoc";
     rev = "v${version}";
-    sha256 = "sha256-V3MAvbdYk3DL064UYcJE9HmwfQBwpMxVXWiAKX6honA=";
+    sha256 = "sha256-6aPfpkcUoAYaGYqBPFJJQvQ9dMGne9TWJ2HAx95JujY=";
   };
 
-  cargoHash = "sha256-RFxTjLiJCEc42Mb8rcayOFHkYk2GfpgsO3+hAaRwHgs=";
+  cargoHash = "sha256-5bWP8dhApnQyK/gQNkPrLeqFvRVbSlVNRG6pRDb/fdk=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ darwin.Security ];
 
diff --git a/pkgs/tools/nix/nixpkgs-hammering/default.nix b/pkgs/tools/nix/nixpkgs-hammering/default.nix
index 6f05a34e14f01..1ce398f917803 100644
--- a/pkgs/tools/nix/nixpkgs-hammering/default.nix
+++ b/pkgs/tools/nix/nixpkgs-hammering/default.nix
@@ -19,7 +19,7 @@ let
   };
 
   meta = with lib; {
-    description = "A set of nit-picky rules that aim to point out and explain common mistakes in nixpkgs package pull requests";
+    description = "Set of nit-picky rules that aim to point out and explain common mistakes in nixpkgs package pull requests";
     homepage = "https://github.com/jtojnar/nixpkgs-hammering";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/pkgs/tools/nix/nixpkgs-lint/default.nix b/pkgs/tools/nix/nixpkgs-lint/default.nix
index d5e17cd46b37e..1bfad00a3fe9e 100644
--- a/pkgs/tools/nix/nixpkgs-lint/default.nix
+++ b/pkgs/tools/nix/nixpkgs-lint/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-LWtBO0Ai5cOtnfZElBrHZ7sDdp3ddfcCRdTA/EEDPfE=";
 
   meta = with lib; {
-    description = "A fast semantic linter for Nix using tree-sitter";
+    description = "Fast semantic linter for Nix using tree-sitter";
     mainProgram = "nixpkgs-lint";
     homepage = "https://github.com/nix-community/nixpkgs-lint";
     changelog = "https://github.com/nix-community/nixpkgs-lint/releases/tag/${src.rev}";
diff --git a/pkgs/tools/package-management/apk-tools/default.nix b/pkgs/tools/package-management/apk-tools/default.nix
index 4800a6641bd0c..55a406d595695 100644
--- a/pkgs/tools/package-management/apk-tools/default.nix
+++ b/pkgs/tools/package-management/apk-tools/default.nix
@@ -4,14 +4,14 @@
 
 stdenv.mkDerivation rec {
   pname = "apk-tools";
-  version = "2.14.1";
+  version = "2.14.4";
 
   src = fetchFromGitLab {
     domain = "gitlab.alpinelinux.org";
     owner = "alpine";
     repo = "apk-tools";
     rev = "v${version}";
-    sha256 = "sha256-gO7Yf60eabvAdPDSzxvxeEMsvc6ixy1iQ6/o7WWlE2Q=";
+    sha256 = "sha256-NaLa975AJrfvxxUkPTGLno/BoMQKBGaMIJjSbs+63NA=";
   };
 
   nativeBuildInputs = [ pkg-config scdoc ]
diff --git a/pkgs/tools/package-management/appimagekit/default.nix b/pkgs/tools/package-management/appimagekit/default.nix
index d11cd16127589..b1a25758cbb6c 100644
--- a/pkgs/tools/package-management/appimagekit/default.nix
+++ b/pkgs/tools/package-management/appimagekit/default.nix
@@ -117,7 +117,7 @@ in stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A tool to package desktop applications as AppImages";
+    description = "Tool to package desktop applications as AppImages";
     longDescription = ''
       AppImageKit is an implementation of the AppImage format that
       provides tools such as appimagetool and appimaged for handling
diff --git a/pkgs/tools/package-management/apx/default.nix b/pkgs/tools/package-management/apx/default.nix
index 381307d6735ec..1e161b805e948 100644
--- a/pkgs/tools/package-management/apx/default.nix
+++ b/pkgs/tools/package-management/apx/default.nix
@@ -50,7 +50,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "The Vanilla OS package manager";
+    description = "Vanilla OS package manager";
     homepage = "https://github.com/Vanilla-OS/apx";
     changelog = "https://github.com/Vanilla-OS/apx/releases/tag/v${version}";
     license = licenses.gpl3Only;
diff --git a/pkgs/tools/package-management/cde/default.nix b/pkgs/tools/package-management/cde/default.nix
index 2e0ceb53e4f9c..8eefb923bcd3e 100644
--- a/pkgs/tools/package-management/cde/default.nix
+++ b/pkgs/tools/package-management/cde/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/usnistgov/corr-CDE";
-    description = "A packaging tool for building portable packages";
+    description = "Packaging tool for building portable packages";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.rlupton20 ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/package-management/checkinstall/default.nix b/pkgs/tools/package-management/checkinstall/default.nix
index a56880cb34264..424831daad977 100644
--- a/pkgs/tools/package-management/checkinstall/default.nix
+++ b/pkgs/tools/package-management/checkinstall/default.nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://checkinstall.izto.org/";
-    description = "A tool for automatically generating Slackware, RPM or Debian packages when doing `make install'";
+    description = "Tool for automatically generating Slackware, RPM or Debian packages when doing `make install'";
     maintainers = [ lib.maintainers.eelco ];
     platforms = lib.platforms.linux;
     license = lib.licenses.gpl2Plus;
diff --git a/pkgs/tools/package-management/ciel/default.nix b/pkgs/tools/package-management/ciel/default.nix
index c5809fdca944c..5003f4dc42fe1 100644
--- a/pkgs/tools/package-management/ciel/default.nix
+++ b/pkgs/tools/package-management/ciel/default.nix
@@ -62,7 +62,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A tool for controlling AOSC OS packaging environments using multi-layer filesystems and containers";
+    description = "Tool for controlling AOSC OS packaging environments using multi-layer filesystems and containers";
     homepage = "https://github.com/AOSC-Dev/ciel-rs";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/tools/package-management/disnix/DisnixWebService/default.nix b/pkgs/tools/package-management/disnix/DisnixWebService/default.nix
index 752af3a432253..d11bc09589940 100644
--- a/pkgs/tools/package-management/disnix/DisnixWebService/default.nix
+++ b/pkgs/tools/package-management/disnix/DisnixWebService/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "A SOAP interface and client for Disnix";
+    description = "SOAP interface and client for Disnix";
     mainProgram = "disnix-soap-client";
     homepage = "https://github.com/svanderburg/DisnixWebService";
     changelog = "https://github.com/svanderburg/DisnixWebService/blob/${finalAttrs.src.rev}/NEWS.txt";
diff --git a/pkgs/tools/package-management/disnix/default.nix b/pkgs/tools/package-management/disnix/default.nix
index 27f055c089cb8..e126c133108de 100644
--- a/pkgs/tools/package-management/disnix/default.nix
+++ b/pkgs/tools/package-management/disnix/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, glib, libxml2, libxslt, getopt, dysnomia, libintl, libiconv }:
+{ lib, stdenv, fetchurl, fetchpatch, pkg-config, glib, libxml2, libxslt, getopt, dysnomia, libintl, libiconv }:
 
 stdenv.mkDerivation rec {
   pname = "disnix";
@@ -9,11 +9,21 @@ stdenv.mkDerivation rec {
     sha256 = "0mc0wy8fca60w0d56cljq2cw1xigbp2dklb43fxa5xph94j3i49a";
   };
 
+  patches = [
+    # https://github.com/svanderburg/disnix/pull/21
+    # fix implicit function declaration
+    (fetchpatch {
+      name = "add-stdlib.h.patch";
+      url = "https://github.com/svanderburg/disnix/commit/aa969f1d152acb35fc70c6c8db249b61f5a9eb41.patch";
+      hash = "sha256-RZNVVdZ7Rx8n7qzbJOw8BHL8f07mvh8IKpfsWexuVLU=";
+    })
+  ];
+
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ glib libxml2 libxslt getopt libintl libiconv dysnomia ];
 
   meta = {
-    description = "A Nix-based distributed service deployment tool";
+    description = "Nix-based distributed service deployment tool";
     license = lib.licenses.lgpl21Plus;
     maintainers = with lib.maintainers; [ sander tomberek ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/tools/package-management/disnix/dydisnix/default.nix b/pkgs/tools/package-management/disnix/dydisnix/default.nix
index 0c95e41f8c9a2..e6670ff2e1142 100644
--- a/pkgs/tools/package-management/disnix/dydisnix/default.nix
+++ b/pkgs/tools/package-management/disnix/dydisnix/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A toolset enabling self-adaptive redeployment on top of Disnix";
+    description = "Toolset enabling self-adaptive redeployment on top of Disnix";
     longDescription = ''
       Dynamic Disnix is a (very experimental!) prototype extension framework for Disnix supporting dynamic (re)deployment of service-oriented systems.
     '';
diff --git a/pkgs/tools/package-management/dpkg/default.nix b/pkgs/tools/package-management/dpkg/default.nix
index f0f7d621414e4..b555f6d0fe8db 100644
--- a/pkgs/tools/package-management/dpkg/default.nix
+++ b/pkgs/tools/package-management/dpkg/default.nix
@@ -90,7 +90,7 @@ stdenv.mkDerivation rec {
   setupHook = ./setup-hook.sh;
 
   meta = with lib; {
-    description = "The Debian package manager";
+    description = "Debian package manager";
     homepage = "https://wiki.debian.org/Teams/Dpkg";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/tools/package-management/emplace/default.nix b/pkgs/tools/package-management/emplace/default.nix
index 6dd2445d6cef6..2bf3d67443edd 100644
--- a/pkgs/tools/package-management/emplace/default.nix
+++ b/pkgs/tools/package-management/emplace/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "emplace";
-  version = "1.5.3";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "tversteeg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-KwA0GlZatY1DvtqSR4rwq/nODSa9n+S0gPVqS6agSzM=";
+    sha256 = "sha256-FZ+lvf5HRSruUdmkm/Hqz0aRa95SjfIa43WQczRCGNg=";
   };
 
-  cargoHash = "sha256-eQ+T6YiYYeWaUezXB59+Ki05PXtJd7ISwnRw/x/YTZA=";
+  cargoHash = "sha256-0bKLN0l3ldHJizqWuSoBUxQ8I114BQz6ZTtsro3eYEI=";
 
   meta = with lib; {
     description = "Mirror installed software on multiple machines";
diff --git a/pkgs/tools/package-management/fpm/Gemfile.lock b/pkgs/tools/package-management/fpm/Gemfile.lock
index b3e8b9d221a50..61c6a233e157a 100644
--- a/pkgs/tools/package-management/fpm/Gemfile.lock
+++ b/pkgs/tools/package-management/fpm/Gemfile.lock
@@ -1,26 +1,20 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    arr-pm (0.0.11)
-      cabin (> 0)
-    backports (3.21.0)
+    arr-pm (0.0.12)
+    backports (3.24.1)
     cabin (0.9.0)
     clamp (1.0.1)
-    dotenv (2.7.6)
-    fpm (1.13.0)
+    dotenv (2.8.1)
+    fpm (1.15.1)
       arr-pm (~> 0.0.11)
       backports (>= 2.6.2)
       cabin (>= 0.6.0)
       clamp (~> 1.0.0)
-      git (>= 1.3.0, < 2.0)
-      json (>= 1.7.7, < 3.0)
       pleaserun (~> 0.0.29)
       rexml
       stud
-    git (1.8.1)
-      rchardet (~> 1.8)
     insist (1.0.0)
-    json (2.5.1)
     mustache (0.99.8)
     pleaserun (0.0.32)
       cabin (> 0)
@@ -29,8 +23,7 @@ GEM
       insist
       mustache (= 0.99.8)
       stud
-    rchardet (1.8.0)
-    rexml (3.2.5)
+    rexml (3.2.6)
     stud (0.0.23)
 
 PLATFORMS
@@ -40,4 +33,4 @@ DEPENDENCIES
   fpm
 
 BUNDLED WITH
-   2.1.4
+   2.5.3
diff --git a/pkgs/tools/package-management/fpm/gemset.nix b/pkgs/tools/package-management/fpm/gemset.nix
index dca13598e8cc0..195073f7546e6 100644
--- a/pkgs/tools/package-management/fpm/gemset.nix
+++ b/pkgs/tools/package-management/fpm/gemset.nix
@@ -1,24 +1,23 @@
 {
   arr-pm = {
-    dependencies = ["cabin"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17qssricshzs2ml1jvn4bs2h85gxvrqm074pl5nl8vr74620iazi";
+      sha256 = "0fddw0vwdrr7v3a0lfqbmnd664j48a9psrjd3wh3k4i3flplizzx";
       type = "gem";
     };
-    version = "0.0.11";
+    version = "0.0.12";
   };
   backports = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xqvwj3mm28g1z4npya51zjcvxaniyyzn3fwgcdwmm8xrdbl8fgr";
+      sha256 = "1f3zcy0q88rw3clk0r7bai7sp4r253lndf0qmdgczq1ykbm219w3";
       type = "gem";
     };
-    version = "3.21.0";
+    version = "3.24.1";
   };
   cabin = {
     groups = ["default"];
@@ -45,32 +44,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0iym172c5337sm1x2ykc2i3f961vj3wdclbyg1x6sxs3irgfsl94";
+      sha256 = "1n0pi8x8ql5h1mijvm8lgn6bhq4xjb5a500p5r1krq4s6j9lg565";
       type = "gem";
     };
-    version = "2.7.6";
+    version = "2.8.1";
   };
   fpm = {
-    dependencies = ["arr-pm" "backports" "cabin" "clamp" "git" "json" "pleaserun" "rexml" "stud"];
+    dependencies = ["arr-pm" "backports" "cabin" "clamp" "pleaserun" "rexml" "stud"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03ss7yh628f0m6by23q3sniq660gm07mkz6wqjpvr118gc0h53sa";
+      sha256 = "1grd0lb0mw1jvw6l8zqgh49m9gg2jxn98rifq2spzacwm11g7yqz";
       type = "gem";
     };
-    version = "1.13.0";
-  };
-  git = {
-    dependencies = ["rchardet"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0vdcv93s33d9914a9nxrn2y2qv15xk7jx94007cmalp159l08cnl";
-      type = "gem";
-    };
-    version = "1.8.1";
+    version = "1.15.1";
   };
   insist = {
     groups = ["default"];
@@ -82,16 +70,6 @@
     };
     version = "1.0.0";
   };
-  json = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
-      type = "gem";
-    };
-    version = "2.5.1";
-  };
   mustache = {
     groups = ["default"];
     platforms = [];
@@ -113,25 +91,15 @@
     };
     version = "0.0.32";
   };
-  rchardet = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1isj1b3ywgg2m1vdlnr41lpvpm3dbyarf1lla4dfibfmad9csfk9";
-      type = "gem";
-    };
-    version = "1.8.0";
-  };
   rexml = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
+      sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0";
       type = "gem";
     };
-    version = "3.2.5";
+    version = "3.2.6";
   };
   stud = {
     groups = ["default"];
diff --git a/pkgs/tools/package-management/fusesoc/default.nix b/pkgs/tools/package-management/fusesoc/default.nix
index 680cbc0209459..a3e397ae93915 100644
--- a/pkgs/tools/package-management/fusesoc/default.nix
+++ b/pkgs/tools/package-management/fusesoc/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/olofk/fusesoc";
-    description = "A package manager and build tools for HDL code";
+    description = "Package manager and build tools for HDL code";
     maintainers = with maintainers; [ genericnerdyusername ];
     license = licenses.bsd3;
     mainProgram = "fusesoc";
diff --git a/pkgs/tools/package-management/gx/default.nix b/pkgs/tools/package-management/gx/default.nix
index 3f757dde448c1..8d9fa95f09c57 100644
--- a/pkgs/tools/package-management/gx/default.nix
+++ b/pkgs/tools/package-management/gx/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "A packaging tool built around IPFS";
+    description = "Packaging tool built around IPFS";
     homepage = "https://github.com/whyrusleeping/gx";
     license = licenses.mit;
     maintainers = with maintainers; [ zimbatm ];
diff --git a/pkgs/tools/package-management/gx/go/default.nix b/pkgs/tools/package-management/gx/go/default.nix
index dee8861d65d6e..8f8053c99591a 100644
--- a/pkgs/tools/package-management/gx/go/default.nix
+++ b/pkgs/tools/package-management/gx/go/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "A tool for importing go packages into gx";
+    description = "Tool for importing go packages into gx";
     mainProgram = "gx-go";
     homepage = "https://github.com/whyrusleeping/gx-go";
     license = licenses.mit;
diff --git a/pkgs/tools/package-management/libdnf/default.nix b/pkgs/tools/package-management/libdnf/default.nix
index 79fc38eaef33d..dc5e95f7f3d98 100644
--- a/pkgs/tools/package-management/libdnf/default.nix
+++ b/pkgs/tools/package-management/libdnf/default.nix
@@ -24,7 +24,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libdnf";
-  version = "0.73.1";
+  version = "0.73.2";
 
   outputs = [ "out" "dev" "py" ];
 
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     owner = "rpm-software-management";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-mZCrJ1fXqKE1sMYKWHLLQEPkdLwPwqJz+8n+DlNmxvM=";
+    hash = "sha256-tdAbkIb3BAhNKFbjIGHEdVNwh3E1sKFLP+L4MhifsQM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/package-management/licensee/default.nix b/pkgs/tools/package-management/licensee/default.nix
index b72c218cd16aa..02e5f919fb58d 100644
--- a/pkgs/tools/package-management/licensee/default.nix
+++ b/pkgs/tools/package-management/licensee/default.nix
@@ -8,7 +8,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "licensee";
 
   meta = with lib; {
-    description = "A Ruby Gem to detect under what license a project is distributed";
+    description = "Ruby Gem to detect under what license a project is distributed";
     homepage    = "https://licensee.github.io/licensee/";
     license     = licenses.mit;
     maintainers = [ maintainers.sternenseemann ];
diff --git a/pkgs/tools/package-management/lix/common.nix b/pkgs/tools/package-management/lix/common.nix
index a544707b4f355..8c89cf9fefda6 100644
--- a/pkgs/tools/package-management/lix/common.nix
+++ b/pkgs/tools/package-management/lix/common.nix
@@ -11,6 +11,7 @@
     inherit hash;
   },
   docCargoHash ? null,
+  docCargoLock ? null,
   patches ? [ ],
   maintainers ? lib.teams.lix.members,
 }@args:
@@ -65,6 +66,12 @@ assert (hash == null) -> (src != null);
   util-linuxMinimal,
   xz,
   nixosTests,
+  lix-doc ? callPackage ./doc {
+    inherit src;
+    version = "${version}${suffix}";
+    cargoHash = docCargoHash;
+    cargoLock = docCargoLock;
+  },
 
   enableDocumentation ? stdenv.hostPlatform == stdenv.buildPlatform,
   enableStatic ? stdenv.hostPlatform.isStatic,
@@ -78,209 +85,205 @@ assert (hash == null) -> (src != null);
   stateDir,
   storeDir,
 }:
-let
-  lix-doc = callPackage ./doc {
-    inherit src;
-    version = "${version}${suffix}";
-    cargoHash = docCargoHash;
-  };
-  self = stdenv.mkDerivation {
-    pname = "lix";
+assert lib.assertMsg (docCargoHash != null || docCargoLock != null) "Either `lix-doc`'s cargoHash using `docCargoHash` or `lix-doc`'s `cargoLock.lockFile` using `docCargoLock` must be set!";
+stdenv.mkDerivation {
+  pname = "lix";
 
-    version = "${version}${suffix}";
-    VERSION_SUFFIX = suffix;
+  version = "${version}${suffix}";
+  VERSION_SUFFIX = suffix;
 
-    inherit src patches;
+  inherit src patches;
 
-    outputs =
-      [
-        "out"
-        "dev"
-      ]
-      ++ lib.optionals enableDocumentation [
-        "man"
-        "doc"
-      ];
+  outputs =
+    [
+      "out"
+      "dev"
+    ]
+    ++ lib.optionals enableDocumentation [
+      "man"
+      "doc"
+    ];
 
-    strictDeps = true;
+  strictDeps = true;
 
-    nativeBuildInputs =
-      [
-        pkg-config
-        bison
-        flex
-        jq
-        meson
-        ninja
-        cmake
-        python3
-        doxygen
+  nativeBuildInputs =
+    [
+      pkg-config
+      bison
+      flex
+      jq
+      meson
+      ninja
+      cmake
+      python3
+      doxygen
 
-        # Tests
-        git
-        mercurial
-        jq
-        lsof
-      ]
-      ++ lib.optionals (enableDocumentation) [
-        (lib.getBin lowdown)
-        mdbook
-        mdbook-linkcheck
-      ]
-      ++ lib.optionals stdenv.isLinux [ util-linuxMinimal ];
+      # Tests
+      git
+      mercurial
+      jq
+      lsof
+    ]
+    ++ lib.optionals (enableDocumentation) [
+      (lib.getBin lowdown)
+      mdbook
+      mdbook-linkcheck
+    ]
+    ++ lib.optionals stdenv.isLinux [ util-linuxMinimal ];
 
-    buildInputs =
-      [
-        boost
-        brotli
-        bzip2
-        curl
-        editline
-        libsodium
-        openssl
-        sqlite
-        xz
-        gtest
-        libarchive
-        lowdown
-        rapidcheck
-        toml11
-        lix-doc
-      ]
-      ++ lib.optionals stdenv.isDarwin [ Security ]
-      ++ lib.optionals (stdenv.isx86_64) [ libcpuid ]
-      ++ lib.optionals withLibseccomp [ libseccomp ]
-      ++ lib.optionals withAWS [ aws-sdk-cpp ];
+  buildInputs =
+    [
+      boost
+      brotli
+      bzip2
+      curl
+      editline
+      libsodium
+      openssl
+      sqlite
+      xz
+      gtest
+      libarchive
+      lowdown
+      rapidcheck
+      toml11
+      lix-doc
+    ]
+    ++ lib.optionals stdenv.isDarwin [ Security ]
+    ++ lib.optionals (stdenv.isx86_64) [ libcpuid ]
+    ++ lib.optionals withLibseccomp [ libseccomp ]
+    ++ lib.optionals withAWS [ aws-sdk-cpp ];
 
-    propagatedBuildInputs = [
-      boehmgc
-      nlohmann_json
-    ];
+  propagatedBuildInputs = [
+    boehmgc
+    nlohmann_json
+  ];
 
-    postPatch = ''
-      patchShebangs --build tests
-    '';
+  postPatch = ''
+    patchShebangs --build tests
+  '';
 
-    preConfigure =
-      # Copy libboost_context so we don't get all of Boost in our closure.
-      # https://github.com/NixOS/nixpkgs/issues/45462
-      lib.optionalString (!enableStatic) ''
-        mkdir -p $out/lib
-        cp -pd ${boost}/lib/{libboost_context*,libboost_thread*,libboost_system*} $out/lib
-        rm -f $out/lib/*.a
-        ${lib.optionalString stdenv.isLinux ''
-          chmod u+w $out/lib/*.so.*
-          patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib $out/lib/libboost_thread.so.*
-        ''}
-        ${lib.optionalString stdenv.hostPlatform.isDarwin ''
-          for LIB in $out/lib/*.dylib; do
-            chmod u+w $LIB
-            install_name_tool -id $LIB $LIB
-            install_name_tool -delete_rpath ${boost}/lib/ $LIB || true
-          done
-          install_name_tool -change ${boost}/lib/libboost_system.dylib $out/lib/libboost_system.dylib $out/lib/libboost_thread.dylib
-        ''}
-      '';
+  preConfigure =
+    # Copy libboost_context so we don't get all of Boost in our closure.
+    # https://github.com/NixOS/nixpkgs/issues/45462
+    lib.optionalString (!enableStatic) ''
+      mkdir -p $out/lib
+      cp -pd ${boost}/lib/{libboost_context*,libboost_thread*,libboost_system*} $out/lib
+      rm -f $out/lib/*.a
+      ${lib.optionalString stdenv.isLinux ''
+        chmod u+w $out/lib/*.so.*
+        patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib $out/lib/libboost_thread.so.*
+      ''}
+      ${lib.optionalString stdenv.hostPlatform.isDarwin ''
+        for LIB in $out/lib/*.dylib; do
+          chmod u+w $LIB
+          install_name_tool -id $LIB $LIB
+          install_name_tool -delete_rpath ${boost}/lib/ $LIB || true
+        done
+        install_name_tool -change ${boost}/lib/libboost_system.dylib $out/lib/libboost_system.dylib $out/lib/libboost_thread.dylib
+      ''}
+    '';
 
-    mesonFlags =
-      [
-        (lib.mesonEnable "gc" true)
-        (lib.mesonBool "enable-tests" true)
-        (lib.mesonBool "enable-docs" enableDocumentation)
-        (lib.mesonBool "enable-embedded-sandbox-shell" (stdenv.isLinux && stdenv.hostPlatform.isStatic))
-        (lib.mesonEnable "seccomp-sandboxing" withLibseccomp)
+  mesonBuildType = "release";
+  mesonFlags =
+    [
+      # LTO optimization
+      (lib.mesonBool "b_lto" (!stdenv.isDarwin))
+      (lib.mesonEnable "gc" true)
+      (lib.mesonBool "enable-tests" true)
+      (lib.mesonBool "enable-docs" enableDocumentation)
+      (lib.mesonBool "enable-embedded-sandbox-shell" (stdenv.isLinux && stdenv.hostPlatform.isStatic))
+      (lib.mesonEnable "seccomp-sandboxing" withLibseccomp)
 
-        (lib.mesonOption "store-dir" storeDir)
-        (lib.mesonOption "state-dir" stateDir)
-        (lib.mesonOption "sysconfdir" confDir)
-      ]
-      ++ lib.optionals stdenv.isLinux [
-        (lib.mesonOption "sandbox-shell" "${busybox-sandbox-shell}/bin/busybox")
-      ];
+      (lib.mesonOption "store-dir" storeDir)
+      (lib.mesonOption "state-dir" stateDir)
+      (lib.mesonOption "sysconfdir" confDir)
+    ]
+    ++ lib.optionals stdenv.isLinux [
+      (lib.mesonOption "sandbox-shell" "${busybox-sandbox-shell}/bin/busybox")
+    ];
 
-    # Needed for Meson to find Boost.
-    # https://github.com/NixOS/nixpkgs/issues/86131.
-    env = {
-      BOOST_INCLUDEDIR = "${lib.getDev boost}/include";
-      BOOST_LIBRARYDIR = "${lib.getLib boost}/lib";
-    };
+  # Needed for Meson to find Boost.
+  # https://github.com/NixOS/nixpkgs/issues/86131.
+  env = {
+    BOOST_INCLUDEDIR = "${lib.getDev boost}/include";
+    BOOST_LIBRARYDIR = "${lib.getLib boost}/lib";
+  };
 
-    postInstall =
-      ''
-        mkdir -p $doc/nix-support
-        echo "doc manual $doc/share/doc/nix/manual" >> $doc/nix-support/hydra-build-products
-      ''
-      + lib.optionalString stdenv.hostPlatform.isStatic ''
-        mkdir -p $out/nix-support
-        echo "file binary-dist $out/bin/nix" >> $out/nix-support/hydra-build-products
-      ''
-      + lib.optionalString stdenv.isDarwin ''
-        for lib in libnixutil.dylib libnixexpr.dylib; do
-          install_name_tool \
-            -change "${lib.getLib boost}/lib/libboost_context.dylib" \
-            "$out/lib/libboost_context.dylib" \
-            "$out/lib/$lib"
-        done
-      '';
+  postInstall =
+    ''
+      mkdir -p $doc/nix-support
+      echo "doc manual $doc/share/doc/nix/manual" >> $doc/nix-support/hydra-build-products
+    ''
+    + lib.optionalString stdenv.hostPlatform.isStatic ''
+      mkdir -p $out/nix-support
+      echo "file binary-dist $out/bin/nix" >> $out/nix-support/hydra-build-products
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      for lib in liblixutil.dylib liblixexpr.dylib; do
+        install_name_tool \
+          -change "${lib.getLib boost}/lib/libboost_context.dylib" \
+          "$out/lib/libboost_context.dylib" \
+          "$out/lib/$lib"
+      done
+    '';
 
-    doCheck = true;
-    mesonCheckFlags = [ "--suite=check" ];
-    checkInputs = [
-      gtest
-      rapidcheck
-    ];
+  doCheck = true;
+  mesonCheckFlags = [ "--suite=check" ];
+  checkInputs = [
+    gtest
+    rapidcheck
+  ];
 
-    doInstallCheck = true;
-    mesonInstallCheckFlags = [ "--suite=installcheck" ];
+  doInstallCheck = true;
+  mesonInstallCheckFlags = [ "--suite=installcheck" ];
 
-    preInstallCheck = lib.optionalString stdenv.hostPlatform.isDarwin ''
-      # socket path becomes too long otherwise
-      export TMPDIR=$NIX_BUILD_TOP
-      # Prevent crashes in libcurl due to invoking Objective-C `+initialize` methods after `fork`.
-      # See http://sealiesoftware.com/blog/archive/2017/6/5/Objective-C_and_fork_in_macOS_1013.html.
-      export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
-    '';
+  preInstallCheck = lib.optionalString stdenv.hostPlatform.isDarwin ''
+    # socket path becomes too long otherwise
+    export TMPDIR=$NIX_BUILD_TOP
+    # Prevent crashes in libcurl due to invoking Objective-C `+initialize` methods after `fork`.
+    # See http://sealiesoftware.com/blog/archive/2017/6/5/Objective-C_and_fork_in_macOS_1013.html.
+    export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
+  '';
 
-    installCheckPhase = ''
-      runHook preInstallCheck
-      flagsArray=($mesonInstallCheckFlags "''${mesonInstallCheckFlagsArray[@]}")
-      meson test --no-rebuild "''${flagsArray[@]}"
-      runHook postInstallCheck
-    '';
-    # strictoverflow is disabled because we trap on signed overflow instead
-    hardeningDisable = [ "strictoverflow" ] ++ lib.optional stdenv.hostPlatform.isStatic "pie";
-    # hardeningEnable = lib.optionals (!stdenv.isDarwin) [ "pie" ];
-    # hardeningDisable = lib.optional stdenv.hostPlatform.isMusl "fortify";
-    separateDebugInfo = stdenv.isLinux && !enableStatic;
-    enableParallelBuilding = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    flagsArray=($mesonInstallCheckFlags "''${mesonInstallCheckFlagsArray[@]}")
+    meson test --no-rebuild "''${flagsArray[@]}"
+    runHook postInstallCheck
+  '';
+  # strictoverflow is disabled because we trap on signed overflow instead
+  hardeningDisable = [ "strictoverflow" ] ++ lib.optional stdenv.hostPlatform.isStatic "pie";
+  # hardeningEnable = lib.optionals (!stdenv.isDarwin) [ "pie" ];
+  # hardeningDisable = lib.optional stdenv.hostPlatform.isMusl "fortify";
+  separateDebugInfo = stdenv.isLinux && !enableStatic;
+  enableParallelBuilding = true;
 
-    passthru = {
-      inherit aws-sdk-cpp boehmgc;
-      tests = {
-        misc = nixosTests.misc.lix.passthru.override { nixPackage = self; };
-      };
+  passthru = {
+    inherit aws-sdk-cpp boehmgc;
+    tests = {
+      misc = nixosTests.nix-misc.lix;
     };
+  };
 
-    # point 'nix edit' and ofborg at the file that defines the attribute,
-    # not this common file.
-    pos = builtins.unsafeGetAttrPos "version" args;
-    meta = with lib; {
-      description = "Powerful package manager that makes package management reliable and reproducible";
-      longDescription = ''
-        Lix (a fork of Nix) is a powerful package manager for Linux and other Unix systems that
-        makes package management reliable and reproducible. It provides atomic
-        upgrades and rollbacks, side-by-side installation of multiple versions of
-        a package, multi-user package management and easy setup of build
-        environments.
-      '';
-      homepage = "https://lix.systems";
-      license = licenses.lgpl21Plus;
-      inherit maintainers;
-      platforms = platforms.unix;
-      outputsToInstall = [ "out" ] ++ optional enableDocumentation "man";
-      mainProgram = "nix";
-      broken = enableStatic;
-    };
+  # point 'nix edit' and ofborg at the file that defines the attribute,
+  # not this common file.
+  pos = builtins.unsafeGetAttrPos "version" args;
+  meta = with lib; {
+    description = "Powerful package manager that makes package management reliable and reproducible";
+    longDescription = ''
+      Lix (a fork of Nix) is a powerful package manager for Linux and other Unix systems that
+      makes package management reliable and reproducible. It provides atomic
+      upgrades and rollbacks, side-by-side installation of multiple versions of
+      a package, multi-user package management and easy setup of build
+      environments.
+    '';
+    homepage = "https://lix.systems";
+    license = licenses.lgpl21Plus;
+    inherit maintainers;
+    platforms = platforms.unix;
+    outputsToInstall = [ "out" ] ++ optional enableDocumentation "man";
+    mainProgram = "nix";
+    broken = enableStatic;
   };
-in
-self
+}
diff --git a/pkgs/tools/package-management/lix/default.nix b/pkgs/tools/package-management/lix/default.nix
index 9a03e64f8b8fc..c262bbac48c26 100644
--- a/pkgs/tools/package-management/lix/default.nix
+++ b/pkgs/tools/package-management/lix/default.nix
@@ -47,11 +47,13 @@ let
     };
 in
 lib.makeExtensible (self: ({
+  buildLix = common;
+
   lix_2_90 = (
     common {
-      version = "2.90-beta.1";
-      hash = "sha256-REWlo2RYHfJkxnmZTEJu3Cd/2VM+wjjpPy7Xi4BdDTQ=";
-      docCargoHash = "sha256-oH248kR4Of0MhcY2DYxNX0A+/XJ3L+UuIpBKn3sJt54=";
+      version = "2.90.0-rc1";
+      hash = "sha256-WY7BGnu5PnbK4O8cKKv9kvxwzZIGbIQUQLGPHFXitI0=";
+      docCargoHash = "sha256-V/MEC2aRlVrt/IKozyYZvZTXENrtDS/wsV08/ao4TCw=";
     }
   );
 
diff --git a/pkgs/tools/package-management/lix/doc/default.nix b/pkgs/tools/package-management/lix/doc/default.nix
index a3c1d7d9ccc5a..b19f3bd2a170d 100644
--- a/pkgs/tools/package-management/lix/doc/default.nix
+++ b/pkgs/tools/package-management/lix/doc/default.nix
@@ -2,11 +2,12 @@
   src,
   rustPlatform,
   version,
-  cargoHash,
+  cargoHash ? null,
+  cargoLock ? null
 }:
 
 rustPlatform.buildRustPackage {
   pname = "lix-doc";
-  sourceRoot = "${src.name}/lix-doc";
-  inherit version src cargoHash;
+  sourceRoot = "${src.name or src}/lix-doc";
+  inherit version src cargoHash cargoLock;
 }
diff --git a/pkgs/tools/package-management/morph/default.nix b/pkgs/tools/package-management/morph/default.nix
index 71c9c285f3084..b5f6535c96ba9 100644
--- a/pkgs/tools/package-management/morph/default.nix
+++ b/pkgs/tools/package-management/morph/default.nix
@@ -29,7 +29,7 @@ buildGoModule rec {
   outputs = [ "out" "lib" ];
 
   meta = with lib; {
-    description = "A NixOS host manager written in Golang";
+    description = "NixOS host manager written in Golang";
     license = licenses.mit;
     homepage = "https://github.com/dbcdk/morph";
     maintainers = with maintainers; [adamt johanot];
diff --git a/pkgs/tools/package-management/nfpm/default.nix b/pkgs/tools/package-management/nfpm/default.nix
index 233cd511110d9..1cc00581cb980 100644
--- a/pkgs/tools/package-management/nfpm/default.nix
+++ b/pkgs/tools/package-management/nfpm/default.nix
@@ -35,7 +35,7 @@ buildGoModule rec {
     '';
 
   meta = with lib; {
-    description = "A simple deb and rpm packager written in Go";
+    description = "Simple deb and rpm packager written in Go";
     homepage = "https://github.com/goreleaser/nfpm";
     changelog = "https://github.com/goreleaser/nfpm/releases/tag/v${version}";
     maintainers = with maintainers; [ techknowlogick caarlos0 ];
diff --git a/pkgs/tools/package-management/niff/default.nix b/pkgs/tools/package-management/niff/default.nix
index 9fd71964dc26f..909aaaa9413c3 100644
--- a/pkgs/tools/package-management/niff/default.nix
+++ b/pkgs/tools/package-management/niff/default.nix
@@ -26,7 +26,7 @@ in stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "A program that compares two Nix expressions and determines which attributes changed";
+    description = "Program that compares two Nix expressions and determines which attributes changed";
     homepage = "https://github.com/FRidh/niff";
     license = lib.licenses.mit;
     mainProgram = "niff";
diff --git a/pkgs/tools/package-management/nix-doc/default.nix b/pkgs/tools/package-management/nix-doc/default.nix
index 3d0069c87dba2..e07c21950b325 100644
--- a/pkgs/tools/package-management/nix-doc/default.nix
+++ b/pkgs/tools/package-management/nix-doc/default.nix
@@ -47,7 +47,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "sha256-CHagzXTG9AfrFd3WmHanQ+YddMgmVxSuB8vK98A1Mlw=";
 
   meta = with lib; {
-    description = "An interactive Nix documentation tool";
+    description = "Interactive Nix documentation tool";
     longDescription = "An interactive Nix documentation tool providing a CLI for function search, a Nix plugin for docs in the REPL, and a ctags implementation for Nix script";
     homepage = "https://github.com/lf-/nix-doc";
     license = licenses.lgpl3Plus;
diff --git a/pkgs/tools/package-management/nix-du/default.nix b/pkgs/tools/package-management/nix-du/default.nix
index d8f2b79a4bbb6..5ef86d033f9ed 100644
--- a/pkgs/tools/package-management/nix-du/default.nix
+++ b/pkgs/tools/package-management/nix-du/default.nix
@@ -35,7 +35,7 @@ rustPlatform.buildRustPackage rec {
   nativeBuildInputs = [ pkg-config rustPlatform.bindgenHook ];
 
   meta = with lib; {
-    description = "A tool to determine which gc-roots take space in your nix store";
+    description = "Tool to determine which gc-roots take space in your nix store";
     homepage = "https://github.com/symphorien/nix-du";
     license = licenses.lgpl3Only;
     maintainers = [ maintainers.symphorien ];
diff --git a/pkgs/tools/package-management/nix-index/default.nix b/pkgs/tools/package-management/nix-index/default.nix
index 35df4f9674d67..b4b8b0832094c 100644
--- a/pkgs/tools/package-management/nix-index/default.nix
+++ b/pkgs/tools/package-management/nix-index/default.nix
@@ -4,16 +4,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nix-index";
-  version = "0.1.7";
+  version = "0.1.8";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "nix-index";
     rev = "v${version}";
-    hash = "sha256-WPWd2aMuP4L17UDFz7SI6lqyrCzrPV8c88vGyO6r6jk=";
+    hash = "sha256-r3Vg9ox953HdUp5Csxd2DYUyBe9u61fmA94PpcAZRqo=";
   };
 
-  cargoHash = "sha256-zZhQ3pOid7BCGzcyCrl6sDm0q6IEVKF7K+d6nVs9flk=";
+  cargoHash = "sha256-c1Ivsj9of/cjEKU0lo4I9BfIUQZ3pPf2QF9fAlZTQn0=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl curl sqlite ]
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A files database for nixpkgs";
+    description = "Files database for nixpkgs";
     homepage = "https://github.com/nix-community/nix-index";
     changelog = "https://github.com/nix-community/nix-index/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ bsd3 ];
diff --git a/pkgs/tools/package-management/nix-serve/default.nix b/pkgs/tools/package-management/nix-serve/default.nix
index a149b490f5aac..018fe9ffb89fb 100644
--- a/pkgs/tools/package-management/nix-serve/default.nix
+++ b/pkgs/tools/package-management/nix-serve/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/edolstra/nix-serve";
-    description = "A utility for sharing a Nix store as a binary cache";
+    description = "Utility for sharing a Nix store as a binary cache";
     maintainers = [ maintainers.eelco ];
     license = licenses.lgpl21;
     platforms = nix.meta.platforms;
diff --git a/pkgs/tools/package-management/nix-top/default.nix b/pkgs/tools/package-management/nix-top/default.nix
index dc49f2a739e94..d9dcc2d64ec68 100644
--- a/pkgs/tools/package-management/nix-top/default.nix
+++ b/pkgs/tools/package-management/nix-top/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/samueldr/nix-top";
     license = licenses.mit;
     maintainers = with maintainers; [ samueldr ];
-    platforms = platforms.linux ++ platforms.darwin;
+    platforms = platforms.linux ++ platforms.darwin ++ platforms.freebsd;
     mainProgram = "nix-top";
   };
 }
diff --git a/pkgs/tools/package-management/nix/common.nix b/pkgs/tools/package-management/nix/common.nix
index b04c59369f185..22b1cb817b691 100644
--- a/pkgs/tools/package-management/nix/common.nix
+++ b/pkgs/tools/package-management/nix/common.nix
@@ -5,7 +5,8 @@
 , hash ? null
 , src ? fetchFromGitHub { owner = "NixOS"; repo = "nix"; rev = version; inherit hash; }
 , patches ? [ ]
-, maintainers ? with lib.maintainers; [ eelco lovesegfault artturin ma27 ]
+, maintainers ? with lib.maintainers; [ eelco lovesegfault artturin ]
+, self_attribute_name
 }@args:
 assert (hash == null) -> (src != null);
 let
@@ -61,6 +62,7 @@ in
 , mdbook
 , mdbook-linkcheck
 , nlohmann_json
+, nixosTests
 , openssl
 , perl
 , pkg-config
@@ -249,7 +251,10 @@ self = stdenv.mkDerivation {
     perl-bindings = perl.pkgs.toPerlModule (callPackage ./nix-perl.nix { nix = self; inherit Security; });
 
     tests = {
-      nixi686 = pkgsi686Linux.nixVersions.${"nix_${lib.versions.major version}_${lib.versions.minor version}"};
+      nixi686 = pkgsi686Linux.nixVersions.${self_attribute_name};
+      # Basic smoke test that needs to pass when upgrading nix.
+      # Note that this test does only test the nixVersions.stable attribute.
+      misc = nixosTests.nix-misc.default;
     };
   };
 
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 5d3698a97e81f..5f2a9dadfd6b2 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -138,6 +138,7 @@ in lib.makeExtensible (self: ({
     patches = [
       patch-monitorfdhup
     ];
+    self_attribute_name = "nix_2_3";
     maintainers = with lib.maintainers; [ flokli raitobezarius ];
   }).override { boehmgc = boehmgc-nix_2_3; }).overrideAttrs {
     # https://github.com/NixOS/nix/issues/10222
@@ -148,40 +149,52 @@ in lib.makeExtensible (self: ({
   nix_2_18 = common {
     version = "2.18.2";
     hash = "sha256-8gNJlBlv2bnffRg0CejiBXc6U/S6YeCLAdHrYvTPyoY=";
+    self_attribute_name = "nix_2_18";
   };
 
   nix_2_19 = common {
     version = "2.19.4";
     hash = "sha256-qXjyVmDm1SFWk1az3GWIsJ0fVG0nWet2FdldFOnUydI=";
+    self_attribute_name = "nix_2_19";
   };
 
   nix_2_20 = common {
     version = "2.20.6";
     hash = "sha256-BSl8Jijq1A4n1ToQy0t0jDJCXhJK+w1prL8QMHS5t54=";
+    self_attribute_name = "nix_2_20";
   };
 
   nix_2_21 = common {
     version = "2.21.2";
     hash = "sha256-ObaVDDPtnOeIE0t7m4OVk5G+OS6d9qYh+ktK67Fe/zE=";
+    self_attribute_name = "nix_2_21";
   };
 
   nix_2_22 = common {
     version = "2.22.1";
     hash = "sha256-5Q1WkpTWH7fkVfYhHDc5r0A+Vc+K5xB1UhzrLzBCrB8=";
+    self_attribute_name = "nix_2_22";
+  };
+
+  nix_2_23 = common {
+    version = "2.23.0";
+    hash = "sha256-cRCwRDxR8rEQQEvGjIH8g0krJd4ZFJrdgmPXkv65S/Y=";
+    self_attribute_name = "nix_2_23";
   };
 
   git = common rec {
     version = "2.23.0";
-    suffix = "pre20240520_${lib.substring 0 8 src.rev}";
+    suffix = "pre20240526_${lib.substring 0 8 src.rev}";
     src = fetchFromGitHub {
       owner = "NixOS";
       repo = "nix";
-      rev = "b7709d14a5b3a76d1c5b35b48ea3ed2de6c3dc28";
-      hash = "sha256-v+M9oeOcfgFXVoXqdpaskTHNA0T3Pr/8IOJtCggh+To=";
+      rev = "7de033d63fbcf97aad164e131ae3a85e5dcebce7";
+      hash = "sha256-LtsyUsVpr9sM0n1L7MeTw8/6wGtGeXFvKAbPR5lqN8Q=";
     };
+    self_attribute_name = "git";
   };
 
-  latest = self.nix_2_22;
+  latest = self.nix_2_23;
 
   # The minimum Nix version supported by Nixpkgs
   # Note that some functionality *might* have been backported into this Nix version,
diff --git a/pkgs/tools/package-management/nix/patches/boehmgc-coroutine-sp-fallback.patch b/pkgs/tools/package-management/nix/patches/boehmgc-coroutine-sp-fallback.patch
index 578bd325d56bd..a53b7f1f52f49 100644
--- a/pkgs/tools/package-management/nix/patches/boehmgc-coroutine-sp-fallback.patch
+++ b/pkgs/tools/package-management/nix/patches/boehmgc-coroutine-sp-fallback.patch
@@ -11,14 +11,23 @@ index 2b45489..0e6d8ef 100644
      GC_bool found_me = FALSE;
      size_t nthreads = 0;
      int i;
-@@ -868,6 +870,31 @@ GC_INNER void GC_push_all_stacks(void)
+@@ -868,6 +870,40 @@ GC_INNER void GC_push_all_stacks(void)
              hi = p->altstack + p->altstack_size;
  #         endif
            /* FIXME: Need to scan the normal stack too, but how ? */
 +        } else {
++          #ifdef HAVE_PTHREAD_ATTR_GET_NP
++          if (pthread_attr_init(&pattr) != 0) {
++            ABORT("GC_push_all_stacks: pthread_attr_init failed!");
++          }
++          if (pthread_attr_get_np(p->id, &pattr) != 0) {
++            ABORT("GC_push_all_stacks: pthread_attr_get_np failed!");
++          }
++          #else
 +          if (pthread_getattr_np(p->id, &pattr)) {
 +            ABORT("GC_push_all_stacks: pthread_getattr_np failed!");
 +          }
++          #endif
 +          if (pthread_attr_getstacksize(&pattr, &stack_limit)) {
 +            ABORT("GC_push_all_stacks: pthread_attr_getstacksize failed!");
 +          }
diff --git a/pkgs/tools/package-management/nixpkgs-review/default.nix b/pkgs/tools/package-management/nixpkgs-review/default.nix
index 3c3956bb94cc1..3d119f6b846ad 100644
--- a/pkgs/tools/package-management/nixpkgs-review/default.nix
+++ b/pkgs/tools/package-management/nixpkgs-review/default.nix
@@ -16,14 +16,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "nixpkgs-review";
-  version = "2.10.4";
+  version = "2.10.5";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "nixpkgs-review";
-    rev = version;
-    hash = "sha256-+4T6Mm4YfH0wWlkNYS03H9Z9oNlYQnVUncvWGA0CKIQ=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-dRTKE8gkV298ZmMokyy3Ufer/Lp1GQYdEhIBoLhloEQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/package-management/opkg/default.nix b/pkgs/tools/package-management/opkg/default.nix
index ba45cb0835b20..bced64f20d034 100644
--- a/pkgs/tools/package-management/opkg/default.nix
+++ b/pkgs/tools/package-management/opkg/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A lightweight package management system based upon ipkg";
+    description = "Lightweight package management system based upon ipkg";
     homepage = "https://git.yoctoproject.org/cgit/cgit.cgi/opkg/";
     changelog = "https://git.yoctoproject.org/opkg/tree/NEWS?h=v${version}";
     license = licenses.gpl2Plus;
diff --git a/pkgs/tools/package-management/pacman/default.nix b/pkgs/tools/package-management/pacman/default.nix
index e3367ef1438db..7a5fc098bb2c2 100644
--- a/pkgs/tools/package-management/pacman/default.nix
+++ b/pkgs/tools/package-management/pacman/default.nix
@@ -125,7 +125,7 @@ stdenv.mkDerivation (final: {
   '';
 
   meta = with lib; {
-    description = "A simple library-based package manager";
+    description = "Simple library-based package manager";
     homepage = "https://archlinux.org/pacman/";
     changelog = "https://gitlab.archlinux.org/pacman/pacman/-/raw/v${final.version}/NEWS";
     license = licenses.gpl2Plus;
diff --git a/pkgs/tools/package-management/pacup/default.nix b/pkgs/tools/package-management/pacup/default.nix
index 7afd4eb815d73..992615982ea73 100644
--- a/pkgs/tools/package-management/pacup/default.nix
+++ b/pkgs/tools/package-management/pacup/default.nix
@@ -4,13 +4,13 @@
 }:
 
 python3.pkgs.buildPythonApplication rec {
-  name = "pacup";
+  pname = "pacup";
   version = "2.0.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "pacstall";
-    repo = name;
+    repo = "pacup";
     rev = "refs/tags/${version}";
     hash = "sha256-ItO38QyxNHftKPQZAPO7596ddBfX0a1nfVVqgx7BfwI=";
   };
diff --git a/pkgs/tools/package-management/pdm/default.nix b/pkgs/tools/package-management/pdm/default.nix
index f7e39900a98de..2fab674ec13df 100644
--- a/pkgs/tools/package-management/pdm/default.nix
+++ b/pkgs/tools/package-management/pdm/default.nix
@@ -11,14 +11,14 @@
 with python3.pkgs;
 buildPythonApplication rec {
   pname = "pdm";
-  version = "2.15.2";
+  version = "2.15.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-wI6HB4wpwA562WgdxqI0GdxWF9y+bMIFAk70tOfihHU=";
+    hash = "sha256-WOIlhQVn3K3OQkGNtGOJlt8rE3jNCDDNSK/aG0VdnHI=";
   };
 
   nativeBuildInputs = [
@@ -50,7 +50,6 @@ buildPythonApplication rec {
     unearth
     virtualenv
   ] ++ httpx.optional-dependencies.socks
-  ++ pbs-installer.optional-dependencies.install
   ++ lib.optionals (pythonOlder "3.11") [
     tomli
   ]
@@ -81,11 +80,12 @@ buildPythonApplication rec {
   '';
 
   nativeCheckInputs = [
+    first
     pytestCheckHook
     pytest-mock
     pytest-xdist
     pytest-httpserver
-  ] ++ lib.optional stdenv.isLinux first;
+  ];
 
   pytestFlagsArray = [
     "-m 'not network'"
@@ -120,7 +120,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://pdm-project.org";
     changelog = "https://github.com/pdm-project/pdm/releases/tag/${version}";
-    description = "A modern Python package and dependency manager supporting the latest PEP standards";
+    description = "Modern Python package and dependency manager supporting the latest PEP standards";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
     mainProgram = "pdm";
diff --git a/pkgs/tools/package-management/pkg/default.nix b/pkgs/tools/package-management/pkg/default.nix
index 1d0d021809603..92a2270e2d75f 100644
--- a/pkgs/tools/package-management/pkg/default.nix
+++ b/pkgs/tools/package-management/pkg/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "pkg";
-  version = "1.21.2";
+  version = "1.21.3";
 
   src = fetchFromGitHub {
     owner = "freebsd";
     repo = "pkg";
     rev = finalAttrs.version;
-    hash = "sha256-iiekjV/X9dAqk9WTxDgi6SK/XkI0aKEfN4Hopgid3Rw=";
+    hash = "sha256-9LWoacjisyaiR0spF5/k5SneIo09UaCHBE1mrewftd8=";
   };
 
   setOutputFlags = false;
diff --git a/pkgs/tools/package-management/poetry2conda/default.nix b/pkgs/tools/package-management/poetry2conda/default.nix
index 7aa821d678ace..9b0975bd01cf6 100644
--- a/pkgs/tools/package-management/poetry2conda/default.nix
+++ b/pkgs/tools/package-management/poetry2conda/default.nix
@@ -39,7 +39,7 @@ with python3.pkgs; buildPythonApplication rec {
   ];
 
   meta = with lib; {
-    description = "A script to convert a Python project declared on a pyproject.toml to a conda environment";
+    description = "Script to convert a Python project declared on a pyproject.toml to a conda environment";
     homepage = "https://github.com/dojeda/poetry2conda";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
diff --git a/pkgs/tools/package-management/protontricks/default.nix b/pkgs/tools/package-management/protontricks/default.nix
index c3c43163c6710..468a1ca75b3fb 100644
--- a/pkgs/tools/package-management/protontricks/default.nix
+++ b/pkgs/tools/package-management/protontricks/default.nix
@@ -12,6 +12,7 @@
 , yad
 , pytestCheckHook
 , nix-update-script
+, extraCompatPaths ? ""
 }:
 
 buildPythonApplication rec {
@@ -51,7 +52,7 @@ buildPythonApplication rec {
     ]}"
     # Steam Runtime does not work outside of steam-run, so don't use it
     "--set STEAM_RUNTIME 0"
-  ];
+  ] ++ lib.optional (extraCompatPaths != "") "--set STEAM_EXTRA_COMPAT_TOOLS_PATHS ${extraCompatPaths}";
 
   nativeCheckInputs = [ pytestCheckHook ];
 
@@ -66,7 +67,7 @@ buildPythonApplication rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A simple wrapper for running Winetricks commands for Proton-enabled games";
+    description = "Simple wrapper for running Winetricks commands for Proton-enabled games";
     homepage = "https://github.com/Matoking/protontricks";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ kira-bruneau ];
diff --git a/pkgs/tools/package-management/rpm/default.nix b/pkgs/tools/package-management/rpm/default.nix
index e931ca16de7e8..ac9c498a9c89f 100644
--- a/pkgs/tools/package-management/rpm/default.nix
+++ b/pkgs/tools/package-management/rpm/default.nix
@@ -90,7 +90,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.rpm.org/";
     license = with licenses; [ gpl2Plus lgpl21Plus ];
-    description = "The RPM Package Manager";
+    description = "RPM Package Manager";
     maintainers = with maintainers; [ copumpkin ];
     platforms = platforms.linux;
     # Support for darwin was removed in https://github.com/NixOS/nixpkgs/pull/196350.
diff --git a/pkgs/tools/package-management/xbps/default.nix b/pkgs/tools/package-management/xbps/default.nix
index 07aa1a7accc15..e5ada2e10268d 100644
--- a/pkgs/tools/package-management/xbps/default.nix
+++ b/pkgs/tools/package-management/xbps/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/void-linux/xbps";
-    description = "The X Binary Package System";
+    description = "X Binary Package System";
     platforms = platforms.linux; # known to not work on Darwin, at least
     license = licenses.bsd2;
     maintainers = with maintainers; [ dtzWill ];
diff --git a/pkgs/tools/security/acsccid/default.nix b/pkgs/tools/security/acsccid/default.nix
index f471393b2cfc2..dea5c14fc3bce 100644
--- a/pkgs/tools/security/acsccid/default.nix
+++ b/pkgs/tools/security/acsccid/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A PC/SC driver for Linux/Mac OS X and it supports ACS CCID smart card readers";
+    description = "PC/SC driver for Linux/Mac OS X and it supports ACS CCID smart card readers";
     longDescription = ''
       acsccid is a PC/SC driver for Linux/Mac OS X and it supports ACS CCID smart card
       readers. This library provides a PC/SC IFD handler implementation and
diff --git a/pkgs/tools/security/age-plugin-ledger/default.nix b/pkgs/tools/security/age-plugin-ledger/default.nix
index d3e1e49904ef1..516edc55db392 100644
--- a/pkgs/tools/security/age-plugin-ledger/default.nix
+++ b/pkgs/tools/security/age-plugin-ledger/default.nix
@@ -36,7 +36,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Ledger Nano plugin for age";
+    description = "Ledger Nano plugin for age";
     mainProgram = "age-plugin-ledger";
     homepage = "https://github.com/Ledger-Donjon/age-plugin-ledger";
     license = with licenses; [ mit asl20 ];
diff --git a/pkgs/tools/security/age/default.nix b/pkgs/tools/security/age/default.nix
index ea8108fde301c..89acb4d14c334 100644
--- a/pkgs/tools/security/age/default.nix
+++ b/pkgs/tools/security/age/default.nix
@@ -2,36 +2,16 @@
 
 buildGoModule rec {
   pname = "age";
-  version = "1.1.1";
-  vendorHash = "sha256-MumPdRTz840+hoisJ7ADgBhyK3n8P6URobbRJYDFkDY=";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "FiloSottile";
     repo = "age";
     rev = "v${version}";
-    sha256 = "sha256-LRxxJQLQkzoCNYGS/XBixVmYXoZ1mPHKvFicPGXYLcw=";
+    hash = "sha256-O0NKDPvr+6ZupakPIpnGgDcdfG3nWR1pvVE+3KkYurY=";
   };
 
-  # Worked with the upstream to change the way test vectors were sourced from
-  # another repo at test run time, so we can run test without network access.
-  # https://github.com/FiloSottile/age/pull/476
-  #
-  # Changes landed after v1.1.1, so we'll patch this one until next release.
-  patches = [
-    # Revert "all: temporarily disable testscript tests"
-    (fetchpatch {
-      name = "0001-revert-temporarily-disabled-testscript-tests.patch";
-      url = "https://github.com/FiloSottile/age/commit/5471e05672de168766f5f11453fd324c53c264e5.patch";
-      sha256 = "sha256-F3oDhRWJqqcF9MDDWPeO9V/wUGXkmUXY87wgokUIoOk=";
-    })
-
-    # age: depend on c2sp.org/CCTV/age for TestVectors
-    (fetchpatch {
-      name = "0002-depend-on-c2sp_cctv_age__TestVectors.patch";
-      url = "https://github.com/FiloSottile/age/commit/edf7388f7731b274b055dcab3ec4006cc4961b68.patch";
-      sha256 = "sha256-CloCj/uF3cqTeCfRkV6TeYiovuDQXm1ZIklREWAot1E=";
-    })
-  ];
+  vendorHash = "sha256-5We4OYoexzzSF1AkxuGCUwuYJ3Wra+T6mCcT4XYgzhU=";
 
   ldflags = [
     "-s" "-w" "-X main.Version=${version}"
@@ -59,6 +39,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
+    changelog = "https://github.com/FiloSottile/age/releases/tag/v${version}";
     homepage = "https://age-encryption.org/";
     description = "Modern encryption tool with small explicit keys";
     license = licenses.bsd3;
diff --git a/pkgs/tools/security/aide/default.nix b/pkgs/tools/security/aide/default.nix
index d5d1fe2ae5a11..a0cbd7da0f961 100644
--- a/pkgs/tools/security/aide/default.nix
+++ b/pkgs/tools/security/aide/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://aide.github.io/";
-    description = "A file and directory integrity checker";
+    description = "File and directory integrity checker";
     mainProgram = "aide";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ happysalada ];
diff --git a/pkgs/tools/security/argocd-vault-plugin/default.nix b/pkgs/tools/security/argocd-vault-plugin/default.nix
index b80a67792e5be..3219d0a74e2b8 100644
--- a/pkgs/tools/security/argocd-vault-plugin/default.nix
+++ b/pkgs/tools/security/argocd-vault-plugin/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "argocd-vault-plugin";
-  version = "1.17.0";
+  version = "1.18.1";
 
   src = fetchFromGitHub {
     owner = "argoproj-labs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-YH7yNRaKdYzasaxYSManuiImyxglmIwgLvDKjUg3MR8=";
+    hash = "sha256-rWNR4GVivuEprdX/xhwk/9SReeJ19UWDWx8Bf8z6CTI=";
   };
 
-  vendorHash = "sha256-0PrGrcS8Gx0cVImGrlmXlycFgWCTLjg2ISi0OhYoPpw=";
+  vendorHash = "sha256-iZ3WWM5p0UuKpdLq6wczLtgX01q6Vtx8j/XCAH+4POs=";
 
   ldflags = [
     "-X=github.com/argoproj-labs/argocd-vault-plugin/version.Version=v${version}"
@@ -38,7 +38,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://argocd-vault-plugin.readthedocs.io";
     changelog = "https://github.com/argoproj-labs/argocd-vault-plugin/releases/tag/v${version}";
-    description = "An Argo CD plugin to retrieve secrets from Secret Management tools and inject them into Kubernetes secrets";
+    description = "Argo CD plugin to retrieve secrets from Secret Management tools and inject them into Kubernetes secrets";
     mainProgram = "argocd-vault-plugin";
     license = licenses.asl20;
     maintainers = with maintainers; [ urandom ];
diff --git a/pkgs/tools/security/arti/default.nix b/pkgs/tools/security/arti/default.nix
index 0dfd7c612292b..8a00d80c0e8a0 100644
--- a/pkgs/tools/security/arti/default.nix
+++ b/pkgs/tools/security/arti/default.nix
@@ -34,7 +34,7 @@ rustPlatform.buildRustPackage rec {
   cargoTestFlags = [ "--package" "arti" ];
 
   meta = with lib; {
-    description = "An implementation of Tor in Rust";
+    description = "Implementation of Tor in Rust";
     mainProgram = "arti";
     homepage = "https://arti.torproject.org/";
     changelog = "https://gitlab.torproject.org/tpo/core/arti/-/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/tools/security/b2sum/default.nix b/pkgs/tools/security/b2sum/default.nix
index 1ce14a55b079e..0dc8a9b35e83b 100644
--- a/pkgs/tools/security/b2sum/default.nix
+++ b/pkgs/tools/security/b2sum/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation (finalAttrs: {
   installFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "The b2sum utility is similar to the md5sum or shasum utilities but for BLAKE2";
+    description = "B2sum utility is similar to the md5sum or shasum utilities but for BLAKE2";
     mainProgram = "b2sum";
     homepage = "https://blake2.net";
     license = with licenses; [ asl20 cc0 openssl ];
diff --git a/pkgs/tools/security/bao/default.nix b/pkgs/tools/security/bao/default.nix
index 503896885c13f..0a6c615fb5a6b 100644
--- a/pkgs/tools/security/bao/default.nix
+++ b/pkgs/tools/security/bao/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-SNsRN5XgchZq6/BZnMeahIqnkP4Jq6bZxbE5cDVpsQA=";
 
   meta = {
-    description = "An implementation of BLAKE3 verified streaming";
+    description = "Implementation of BLAKE3 verified streaming";
     homepage = "https://github.com/oconnor663/bao";
     maintainers = with lib.maintainers; [ amarshall ];
     license = with lib.licenses; [ cc0 asl20 ];
diff --git a/pkgs/tools/security/bettercap/default.nix b/pkgs/tools/security/bettercap/default.nix
index 2ece9ee6e4c40..db11044479515 100644
--- a/pkgs/tools/security/bettercap/default.nix
+++ b/pkgs/tools/security/bettercap/default.nix
@@ -28,7 +28,7 @@ buildGoModule rec {
     ++ lib.optionals stdenv.isLinux [ libnfnetlink libnetfilter_queue ];
 
   meta = with lib; {
-    description = "A man in the middle tool";
+    description = "Man in the middle tool";
     longDescription = ''
       BetterCAP is a powerful, flexible and portable tool created to perform various
       types of MITM attacks against a network, manipulate HTTP, HTTPS and TCP traffic
diff --git a/pkgs/tools/security/beyond-identity/default.nix b/pkgs/tools/security/beyond-identity/default.nix
index 31b3439f0e876..4d535cbb89e1a 100644
--- a/pkgs/tools/security/beyond-identity/default.nix
+++ b/pkgs/tools/security/beyond-identity/default.nix
@@ -5,7 +5,7 @@
 
 let
   pname = "beyond-identity";
-  version = "2.60.0-0";
+  version = "2.97.0-0";
   libPath = lib.makeLibraryPath ([ glib glibc openssl tpm2-tss gtk3 gnome.gnome-keyring polkit polkit_gnome ]);
   meta = with lib; {
     description = "Passwordless MFA identities for workforces, customers, and developers";
@@ -22,7 +22,7 @@ let
 
     src = fetchurl {
       url = "https://packages.beyondidentity.com/public/linux-authenticator/deb/ubuntu/pool/focal/main/b/be/${pname}_${version}/${pname}_${version}_amd64.deb";
-      hash = "sha512-JrHLf7KkJVbJLxx54OTvOSaIzY3+hjX+bpkeBHKX23YriCJssUUvEP6vlbI4r6gjMMFMhW92k0iikAgD1Tr4ug==";
+      hash = "sha512-aOQi0hG7AZ3lIAPCDgGAjqVmNCuqFC62CjI9XPLBpvbxBgr2yi7alP952i31MufzzruzVweoQb8SWgNIHq/zIw==";
     };
 
     nativeBuildInputs = [
@@ -38,9 +38,6 @@ let
 
       rm -rf usr/share/doc
 
-      # https://github.com/NixOS/nixpkgs/issues/42117
-      sed -i -e 's/auth_self/yes/g' usr/share/polkit-1/actions/com.beyondidentity.endpoint.stepup.policy
-
       cp -ar usr/{bin,share} $out
       cp -ar opt/beyond-identity/bin $out/opt/beyond-identity
 
@@ -71,8 +68,7 @@ let
   };
 # /usr/bin/pkcheck is hardcoded in binary - we need FHS
 in buildFHSEnv {
-   inherit meta;
-   name = pname;
+   inherit pname version meta;
 
    targetPkgs = pkgs: [
      beyond-identity
diff --git a/pkgs/tools/security/binbloom/default.nix b/pkgs/tools/security/binbloom/default.nix
index ce99de997cc0b..766e40f8f0594 100644
--- a/pkgs/tools/security/binbloom/default.nix
+++ b/pkgs/tools/security/binbloom/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "binbloom";
-  version = "2.0";
+  version = "2.1";
 
   src = fetchFromGitHub {
     owner = "quarkslab";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-UiKiDey/pHtJDr4UYqt+T/TneKig5tT8YU2u98Ttjmo=";
+    hash = "sha256-ox4o9RPtqMsme//8dVatNUo+mA/6dM9eI/T5lsuSAus=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/security/bkcrack/default.nix b/pkgs/tools/security/bkcrack/default.nix
index afc18759c78d5..5bebb8618b7ea 100644
--- a/pkgs/tools/security/bkcrack/default.nix
+++ b/pkgs/tools/security/bkcrack/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "bkcrack";
-  version = "1.6.1";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "kimci86";
     repo = "bkcrack";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-x7JK7+DcD2uSWZRTJQPGCcF2mHBlu6FwYUbuYzbvD+s=";
+    hash = "sha256-smDmnqmYuFT3ip3ULQfiiF5YxkwzPwPYBujqq9GUyMs=";
   };
 
   passthru.updateScript = nix-update-script { };
diff --git a/pkgs/tools/security/cdxgen/default.nix b/pkgs/tools/security/cdxgen/default.nix
index 1742e47f1d844..a71b6ba5fef26 100644
--- a/pkgs/tools/security/cdxgen/default.nix
+++ b/pkgs/tools/security/cdxgen/default.nix
@@ -5,16 +5,16 @@
 
 buildNpmPackage rec {
   pname = "cdxgen";
-  version = "10.5.1";
+  version = "10.5.2";
 
   src = fetchFromGitHub {
     owner = "AppThreat";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-sGFKmO3nsu5xvli6uGcRAc6CRJgQEvb6avShh2Z0kYg=";
+    sha256 = "sha256-CmX19UdmXTbmO+6nFzsFbZspmIWYFtcUVaA0j8iU7GI=";
   };
 
-  npmDepsHash = "sha256-1dKy9/cDr29RrVorpEdNNxPGGX12d/JXAU2g7IAdV/8=";
+  npmDepsHash = "sha256-Vd+zRExQFmmv9f8uWQFE/nWRs6y86nLFu5HrM6iCf7U=";
 
   dontNpmBuild = true;
 
diff --git a/pkgs/tools/security/cewl/default.nix b/pkgs/tools/security/cewl/default.nix
index dc1ad37513daa..833c521250792 100644
--- a/pkgs/tools/security/cewl/default.nix
+++ b/pkgs/tools/security/cewl/default.nix
@@ -29,6 +29,5 @@ stdenv.mkDerivation rec {
     mainProgram = "cewl";
     homepage = "https://digi.ninja/projects/cewl.php/";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/tools/security/cfripper/default.nix b/pkgs/tools/security/cfripper/default.nix
index edacd10e8b050..a1c9f94849810 100644
--- a/pkgs/tools/security/cfripper/default.nix
+++ b/pkgs/tools/security/cfripper/default.nix
@@ -3,36 +3,32 @@
 , python3
 }:
 
-
-let
-  python = python3.override {
-    packageOverrides = self: super: {
-      pydantic = self.pydantic_1;
-    };
-  };
-in python.pkgs.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "cfripper";
-  version = "1.15.6";
+  version = "1.15.7";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Skyscanner";
     repo = "cfripper";
     rev = "refs/tags/v${version}";
-    hash = "sha256-h/NNTE5u1coyD4owiGjsK6SIuvDq1SQOPW4RM4yJtno=";
+    hash = "sha256-ymuxZwW3Pwx/CyG2iPoY7LP9e+1K6EUBi/TApg0YvkE=";
   };
 
   pythonRelaxDeps = [
     "pluggy"
   ];
 
-  nativeBuildInputs = with python.pkgs; [
-    pythonRelaxDepsHook
+  build-system = with python3.pkgs; [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = with python.pkgs; [
+  nativeBuildInputs = with python3.pkgs; [
+    pythonRelaxDepsHook
+  ];
+
+  dependencies = with python3.pkgs; [
     boto3
     cfn-flip
     click
@@ -43,7 +39,7 @@ in python.pkgs.buildPythonApplication rec {
     setuptools
   ];
 
-  nativeCheckInputs = with python.pkgs; [
+  nativeCheckInputs = with python3.pkgs; [
     moto
     pytestCheckHook
   ];
@@ -65,10 +61,10 @@ in python.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool for analysing CloudFormation templates";
-    mainProgram = "cfripper";
     homepage = "https://github.com/Skyscanner/cfripper";
     changelog = "https://github.com/Skyscanner/cfripper/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "cfripper";
   };
 }
diff --git a/pkgs/tools/security/chain-bench/default.nix b/pkgs/tools/security/chain-bench/default.nix
index 883674951b14f..1fc50d665002a 100644
--- a/pkgs/tools/security/chain-bench/default.nix
+++ b/pkgs/tools/security/chain-bench/default.nix
@@ -42,7 +42,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/aquasecurity/chain-bench";
     changelog = "https://github.com/aquasecurity/chain-bench/releases/tag/v${version}";
-    description = "An open-source tool for auditing your software supply chain stack for security compliance based on a new CIS Software Supply Chain benchmark";
+    description = "Open-source tool for auditing your software supply chain stack for security compliance based on a new CIS Software Supply Chain benchmark";
     mainProgram = "chain-bench";
     longDescription = ''
       Chain-bench is an open-source tool for auditing your software supply chain
diff --git a/pkgs/tools/security/cherrybomb/default.nix b/pkgs/tools/security/cherrybomb/default.nix
index 6f8fc1d2a8e34..139ac5aea1ad5 100644
--- a/pkgs/tools/security/cherrybomb/default.nix
+++ b/pkgs/tools/security/cherrybomb/default.nix
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A CLI tool that helps you avoid undefined user behavior by validating your API specifications";
+    description = "CLI tool that helps you avoid undefined user behavior by validating your API specifications";
     mainProgram = "cherrybomb";
     homepage = "https://github.com/blst-security/cherrybomb";
     changelog = "https://github.com/blst-security/cherrybomb/releases/tag/v${version}";
diff --git a/pkgs/tools/security/chntpw/default.nix b/pkgs/tools/security/chntpw/default.nix
index 827a00f718c12..60cbed0f3d3d2 100644
--- a/pkgs/tools/security/chntpw/default.nix
+++ b/pkgs/tools/security/chntpw/default.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://pogostick.net/~pnh/ntpasswd/";
-    description = "An utility to reset the password of any user that has a valid local account on a Windows system";
+    description = "Utility to reset the password of any user that has a valid local account on a Windows system";
     maintainers = with lib.maintainers; [ deepfire ];
     license = licenses.gpl2Only;
     platforms = lib.platforms.unix;
diff --git a/pkgs/tools/security/cnquery/default.nix b/pkgs/tools/security/cnquery/default.nix
index ad09b62e713ac..22bb67677b0a3 100644
--- a/pkgs/tools/security/cnquery/default.nix
+++ b/pkgs/tools/security/cnquery/default.nix
@@ -6,18 +6,18 @@
 
 buildGoModule rec {
   pname = "cnquery";
-  version = "11.4.3";
+  version = "11.8.0";
 
   src = fetchFromGitHub {
     owner = "mondoohq";
     repo = "cnquery";
     rev = "refs/tags/v${version}";
-    hash = "sha256-j2cBoeUpxZV8NlC0D3e6bF533LVN0eIRqE7PSIWBGEw=";
+    hash = "sha256-TlDhfz7nS4zUalYlcvlc1pqytQI24rYCR6mayKX0X0M=";
   };
 
   subPackages = [ "apps/cnquery" ];
 
-  vendorHash = "sha256-kovSP+ru32vxve8tmeTRS1fsWTpyBTWhLp5iexKo0Fk=";
+  vendorHash = "sha256-9oOXiBvCNRV/spusFgG5f29I7CI5fy872NsAezOgs6c=";
 
   ldflags = [
     "-w"
diff --git a/pkgs/tools/security/cnspec/default.nix b/pkgs/tools/security/cnspec/default.nix
index d534a4977a14b..b02cc7ed4867e 100644
--- a/pkgs/tools/security/cnspec/default.nix
+++ b/pkgs/tools/security/cnspec/default.nix
@@ -6,18 +6,18 @@
 
 buildGoModule rec {
   pname = "cnspec";
-  version = "11.5.0";
+  version = "11.9.0";
 
   src = fetchFromGitHub {
     owner = "mondoohq";
     repo = "cnspec";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MQrWZ3nFE/gEU7/AoSIr91LMteo/+68MDwiJBxiosvM=";
+    hash = "sha256-ry8VUMTswRwt0QViTi6ZnYxDN9P5wVdXLsNJlvhJ3yM=";
   };
 
   proxyVendor = true;
 
-  vendorHash = "sha256-1ytyebfUyeAQcx1HPxn6X0p4t5VlB4uflZJF1f+HhPU=";
+  vendorHash = "sha256-csSdZifkohlAVD2vXe4P1J4nX+EJNFB+YaVXRZKBsKI=";
 
   subPackages = [ "apps/cnspec" ];
 
@@ -28,7 +28,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "An open source, cloud-native security and policy project";
+    description = "Open source, cloud-native security and policy project";
     homepage = "https://github.com/mondoohq/cnspec";
     changelog = "https://github.com/mondoohq/cnspec/releases/tag/v${version}";
     license = licenses.bsl11;
diff --git a/pkgs/tools/security/crowbar/default.nix b/pkgs/tools/security/crowbar/default.nix
index 095004ab76df1..114fdca5a85dc 100644
--- a/pkgs/tools/security/crowbar/default.nix
+++ b/pkgs/tools/security/crowbar/default.nix
@@ -35,7 +35,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/galkan/crowbar";
-    description = "A brute forcing tool that can be used during penetration tests";
+    description = "Brute forcing tool that can be used during penetration tests";
     mainProgram = "crowbar";
     license = licenses.mit;
     maintainers = with maintainers; [ pamplemousse ];
diff --git a/pkgs/tools/security/crowdsec/default.nix b/pkgs/tools/security/crowdsec/default.nix
index eb3c3cd229e5b..d53fbce808008 100644
--- a/pkgs/tools/security/crowdsec/default.nix
+++ b/pkgs/tools/security/crowdsec/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "crowdsec";
-  version = "1.6.1";
+  version = "1.6.2";
 
   src = fetchFromGitHub {
     owner = "crowdsecurity";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-CCQDMIBpKmaUSRwyjryTO3YWVIrr6FwW64K+alTrcdw=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-3GpSpADtCNvekR7gjbIlqzog7PMog6Sra5tpcnUf/gk=";
   };
 
-  vendorHash = "sha256-K38hxWcrYOznXr8eST0xQBL0nNxHMAiGji5rFwAK0Qw=";
+  vendorHash = "sha256-kkQYKiOSmFHjhOrYV40YRZX9w6rUue0NSKfw+Bqxb9s=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/security/ctmg/default.nix b/pkgs/tools/security/ctmg/default.nix
index 81d57513aac37..63c9004bcbc9f 100644
--- a/pkgs/tools/security/ctmg/default.nix
+++ b/pkgs/tools/security/ctmg/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   installPhase = "install -D ctmg.sh $out/bin/ctmg";
 
   meta = with lib; {
-    description = "An encrypted container manager for Linux using cryptsetup";
+    description = "Encrypted container manager for Linux using cryptsetup";
     homepage = "https://git.zx2c4.com/ctmg/about/";
     license = licenses.isc;
     maintainers = with maintainers; [ mrVanDalo ];
diff --git a/pkgs/tools/security/dieharder/default.nix b/pkgs/tools/security/dieharder/default.nix
index 716b3266faee1..2cc5f719aa1da 100644
--- a/pkgs/tools/security/dieharder/default.nix
+++ b/pkgs/tools/security/dieharder/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A Random Number Generator test suite";
+    description = "Random Number Generator test suite";
     mainProgram = "dieharder";
     homepage = "https://webhome.phy.duke.edu/~rgb/General/dieharder.php";
     license = licenses.gpl2Plus;
diff --git a/pkgs/tools/security/dnsenum/default.nix b/pkgs/tools/security/dnsenum/default.nix
index 826ebec015e4e..4fa5c0e26207e 100644
--- a/pkgs/tools/security/dnsenum/default.nix
+++ b/pkgs/tools/security/dnsenum/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/fwaeytens/dnsenum";
-    description = "A tool to enumerate DNS information";
+    description = "Tool to enumerate DNS information";
     mainProgram = "dnsenum";
     maintainers = with maintainers; [ c0bw3b ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/tools/security/doas-sudo-shim/default.nix b/pkgs/tools/security/doas-sudo-shim/default.nix
index 80b913d4cc9eb..86f111da9f5e1 100644
--- a/pkgs/tools/security/doas-sudo-shim/default.nix
+++ b/pkgs/tools/security/doas-sudo-shim/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A shim for the sudo command that utilizes doas";
+    description = "Shim for the sudo command that utilizes doas";
     homepage = "https://github.com/jirutka/doas-sudo-shim";
     license = licenses.isc;
     mainProgram = "sudo";
diff --git a/pkgs/tools/security/donkey/default.nix b/pkgs/tools/security/donkey/default.nix
index 22793db15431b..f56811cc273f9 100644
--- a/pkgs/tools/security/donkey/default.nix
+++ b/pkgs/tools/security/donkey/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   passthru.tests.version = testers.testVersion { package = donkey; };
 
   meta = with lib; {
-    description = "An alternative for S/KEY's 'key' command";
+    description = "Alternative for S/KEY's 'key' command";
     longDescription = ''
 Donkey is an alternative for S/KEY's "key" command.  The new feature that
 the original key doesn't have is print an entry for skeykeys as
diff --git a/pkgs/tools/security/doona/default.nix b/pkgs/tools/security/doona/default.nix
index fd36680c022d2..bc890d52abb5a 100644
--- a/pkgs/tools/security/doona/default.nix
+++ b/pkgs/tools/security/doona/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/wireghoul/doona";
-    description = "A fork of the Bruteforce Exploit Detector Tool (BED)";
+    description = "Fork of the Bruteforce Exploit Detector Tool (BED)";
     mainProgram = "doona";
     longDescription = ''
       A fork of the Bruteforce Exploit Detector Tool (BED).
diff --git a/pkgs/tools/security/earlybird/default.nix b/pkgs/tools/security/earlybird/default.nix
index d5f001fc995aa..46b94e9d708ee 100644
--- a/pkgs/tools/security/earlybird/default.nix
+++ b/pkgs/tools/security/earlybird/default.nix
@@ -19,7 +19,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "A sensitive data detection tool capable of scanning source code repositories for passwords, key files, and more";
+    description = "Sensitive data detection tool capable of scanning source code repositories for passwords, key files, and more";
     mainProgram = "earlybird";
     homepage = "https://github.com/americanexpress/earlybird";
     changelog = "https://github.com/americanexpress/earlybird/releases/tag/v${version}";
diff --git a/pkgs/tools/security/echidna/default.nix b/pkgs/tools/security/echidna/default.nix
index 7f503acd6f0bd..b6c0d652ebb31 100644
--- a/pkgs/tools/security/echidna/default.nix
+++ b/pkgs/tools/security/echidna/default.nix
@@ -1,9 +1,7 @@
 { lib
 , mkDerivation
 , fetchFromGitHub
-, fetchpatch
 , haskellPackages
-, haskell
 , slither-analyzer
 }:
 
diff --git a/pkgs/tools/security/efitools/aarch64.patch b/pkgs/tools/security/efitools/aarch64.patch
new file mode 100644
index 0000000000000..89a77aafd3f5e
--- /dev/null
+++ b/pkgs/tools/security/efitools/aarch64.patch
@@ -0,0 +1,16 @@
+diff --git a/Make.rules b/Make.rules
+index 903a5a4..59eca2f 100644
+--- a/Make.rules
++++ b/Make.rules
+@@ -51,11 +51,6 @@ ifeq ($(ARCH),arm)
+   FORMAT = -O binary
+ endif
+ 
+-ifeq ($(ARCH),aarch64)
+-  LDFLAGS += --defsym=EFI_SUBSYSTEM=0x0a
+-  FORMAT = -O binary
+-endif
+-
+ %.efi: %.so
+ 	$(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic -j .dynsym \
+ 		   -j .rel -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* \
diff --git a/pkgs/tools/security/efitools/default.nix b/pkgs/tools/security/efitools/default.nix
index 0d8dab926cb2c..fac59ef8d7737 100644
--- a/pkgs/tools/security/efitools/default.nix
+++ b/pkgs/tools/security/efitools/default.nix
@@ -21,6 +21,11 @@ stdenv.mkDerivation rec {
     sha256 = "0jabgl2pxvfl780yvghq131ylpf82k7banjz0ksjhlm66ik8gb1i";
   };
 
+  # https://github.com/ncroxon/gnu-efi/issues/7#issuecomment-2122741592
+  patches = [
+    ./aarch64.patch
+  ];
+
   postPatch = ''
     sed -i -e 's#/usr/include/efi#${gnu-efi}/include/efi/#g' Make.rules
     sed -i -e 's#/usr/lib64/gnuefi#${gnu-efi}/lib/#g' Make.rules
diff --git a/pkgs/tools/security/eid-mw/default.nix b/pkgs/tools/security/eid-mw/default.nix
index 1b445312353a3..408d40609403c 100644
--- a/pkgs/tools/security/eid-mw/default.nix
+++ b/pkgs/tools/security/eid-mw/default.nix
@@ -22,13 +22,13 @@
 stdenv.mkDerivation rec {
   pname = "eid-mw";
   # NOTE: Don't just blindly update to the latest version/tag. Releases are always for a specific OS.
-  version = "5.1.18";
+  version = "5.1.19";
 
   src = fetchFromGitHub {
     owner = "Fedict";
     repo = "eid-mw";
     rev = "v${version}";
-    hash = "sha256-1cdBFpO9bvLlHJE6c7TCscV/Qgx8BHUtFe9UoKPfUOQ=";
+    hash = "sha256-SGdM3GJECFZwd4tAQ6YP7H7YB6DngvD4IU9DTXbJEIo=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/security/enc/default.nix b/pkgs/tools/security/enc/default.nix
index c5f4d62586c5b..cec98aff11511 100644
--- a/pkgs/tools/security/enc/default.nix
+++ b/pkgs/tools/security/enc/default.nix
@@ -40,7 +40,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/life4/enc";
     changelog = "https://github.com/life4/enc/releases/tag/v${version}";
-    description = "A modern and friendly alternative to GnuPG";
+    description = "Modern and friendly alternative to GnuPG";
     mainProgram = "enc";
     longDescription = ''
       Enc is a CLI tool for encryption, a modern and friendly alternative to GnuPG.
diff --git a/pkgs/tools/security/enpass/default.nix b/pkgs/tools/security/enpass/default.nix
index d95ba0baa9bec..7ef13bce43075 100644
--- a/pkgs/tools/security/enpass/default.nix
+++ b/pkgs/tools/security/enpass/default.nix
@@ -57,7 +57,7 @@ let
     };
 
     meta = with lib; {
-      description = "A well known password manager";
+      description = "Well known password manager";
       homepage = "https://www.enpass.io/";
       sourceProvenance = with sourceTypes; [ binaryNativeCode ];
       license = licenses.unfree;
diff --git a/pkgs/tools/security/enum4linux/default.nix b/pkgs/tools/security/enum4linux/default.nix
index dd054b58caa59..4703bae488db9 100644
--- a/pkgs/tools/security/enum4linux/default.nix
+++ b/pkgs/tools/security/enum4linux/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A tool for enumerating information from Windows and Samba systems";
+    description = "Tool for enumerating information from Windows and Samba systems";
     mainProgram = "enum4linux";
     homepage = "https://labs.portcullis.co.uk/tools/enum4linux/";
     license = licenses.gpl2Plus;
diff --git a/pkgs/tools/security/evil-winrm/default.nix b/pkgs/tools/security/evil-winrm/default.nix
index ab406caafb65c..b8e88e1db9ebd 100644
--- a/pkgs/tools/security/evil-winrm/default.nix
+++ b/pkgs/tools/security/evil-winrm/default.nix
@@ -42,6 +42,5 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/Hackplayers/evil-winrm";
     changelog = "https://github.com/Hackplayers/evil-winrm/blob/v${version}/CHANGELOG.md";
     license = licenses.lgpl3Plus;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/tools/security/exploitdb/default.nix b/pkgs/tools/security/exploitdb/default.nix
index 6e16722f2373a..086927a43fcea 100644
--- a/pkgs/tools/security/exploitdb/default.nix
+++ b/pkgs/tools/security/exploitdb/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "exploitdb";
-  version = "2024-05-20";
+  version = "2024-06-15";
 
   src = fetchFromGitLab {
     owner = "exploit-database";
     repo = "exploitdb";
     rev = "refs/tags/${version}";
-    hash = "sha256-Cizs0dUP0wuwo3jYaL73gXUdxsMEBH91DgdQD6GbHrc=";
+    hash = "sha256-bETNSUv36GobOke1bwE+uTSRqln3kANqfl8UIx7bdjM=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/security/fail2ban/default.nix b/pkgs/tools/security/fail2ban/default.nix
index 0ed0af4e0698b..7526c21d68118 100644
--- a/pkgs/tools/security/fail2ban/default.nix
+++ b/pkgs/tools/security/fail2ban/default.nix
@@ -73,7 +73,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://www.fail2ban.org/";
-    description = "A program that scans log files for repeated failing login attempts and bans IP addresses";
+    description = "Program that scans log files for repeated failing login attempts and bans IP addresses";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ eelco lovek323 ];
   };
diff --git a/pkgs/tools/security/faraday-agent-dispatcher/default.nix b/pkgs/tools/security/faraday-agent-dispatcher/default.nix
index 8c390f2b6f7aa..2a44e8186ed1b 100644
--- a/pkgs/tools/security/faraday-agent-dispatcher/default.nix
+++ b/pkgs/tools/security/faraday-agent-dispatcher/default.nix
@@ -5,31 +5,34 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "faraday-agent-dispatcher";
-  version = "3.3.0";
+  version = "3.4.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "infobyte";
     repo = "faraday_agent_dispatcher";
     rev = "refs/tags/${version}";
-    hash = "sha256-rpi8S6pmei8MaACnfmOKFK+nNpljoMglu2uk75zvs9I=";
+    hash = "sha256-b62WO1+5EWzsTCzeZPX9T+ho8Sig46lH/9dPmGGhPWA=";
   };
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace '"pytest-runner",' ""
+      --replace-fail '"pytest-runner",' ""
   '';
 
   pythonRelaxDeps = [
     "python-socketio"
   ];
 
+  build-system = with python3.pkgs; [
+    setuptools-scm
+  ];
+
   nativeBuildInputs = with python3.pkgs; [
     pythonRelaxDepsHook
-    setuptools-scm
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  dependencies = with python3.pkgs; [
     aiohttp
     click
     faraday-agent-parameters-types
@@ -71,10 +74,10 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to send result from tools to the Faraday Platform";
-    mainProgram = "faraday-dispatcher";
     homepage = "https://github.com/infobyte/faraday_agent_dispatcher";
     changelog = "https://github.com/infobyte/faraday_agent_dispatcher/releases/tag/${version}";
-    license = with licenses; [ gpl3Only ];
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "faraday-dispatcher";
   };
 }
diff --git a/pkgs/tools/security/firefox_decrypt/default.nix b/pkgs/tools/security/firefox_decrypt/default.nix
index 9ade5976e8d81..2799a990975a4 100644
--- a/pkgs/tools/security/firefox_decrypt/default.nix
+++ b/pkgs/tools/security/firefox_decrypt/default.nix
@@ -38,7 +38,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/unode/firefox_decrypt";
-    description = "A tool to extract passwords from profiles of Mozilla Firefox and derivates";
+    description = "Tool to extract passwords from profiles of Mozilla Firefox and derivates";
     mainProgram = "firefox_decrypt";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ schnusch ];
diff --git a/pkgs/tools/security/fscan/default.nix b/pkgs/tools/security/fscan/default.nix
index 29fbf2453ee43..37886995b3614 100644
--- a/pkgs/tools/security/fscan/default.nix
+++ b/pkgs/tools/security/fscan/default.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
   vendorHash = "sha256-FFYqvGEFe7sUEb4G3ApQOuYoiDXeA54P7spmKfRiEF0=";
 
   meta = with lib; {
-    description = "An intranet comprehensive scanning tool";
+    description = "Intranet comprehensive scanning tool";
     homepage = "https://github.com/shadow1ng/fscan";
     license = licenses.mit;
     maintainers = with maintainers; [ Misaka13514 ];
diff --git a/pkgs/tools/security/fulcio/default.nix b/pkgs/tools/security/fulcio/default.nix
index 2681c7126ebe1..934cb4446ae0c 100644
--- a/pkgs/tools/security/fulcio/default.nix
+++ b/pkgs/tools/security/fulcio/default.nix
@@ -66,7 +66,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/sigstore/fulcio";
     changelog = "https://github.com/sigstore/fulcio/releases/tag/v${version}";
-    description = "A Root-CA for code signing certs - issuing certificates based on an OIDC email address";
+    description = "Root-CA for code signing certs - issuing certificates based on an OIDC email address";
     mainProgram = "fulcio";
     longDescription = ''
       Fulcio is a free code signing Certificate Authority, built to make
diff --git a/pkgs/tools/security/genpass/default.nix b/pkgs/tools/security/genpass/default.nix
index 243132bb263dd..da6b5c5bda08b 100644
--- a/pkgs/tools/security/genpass/default.nix
+++ b/pkgs/tools/security/genpass/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = lib.optionals stdenv.isDarwin [ CoreFoundation libiconv Security ];
 
   meta = with lib; {
-    description = "A simple yet robust commandline random password generator";
+    description = "Simple yet robust commandline random password generator";
     mainProgram = "genpass";
     homepage = "https://sr.ht/~cyplo/genpass/";
     license = licenses.agpl3Only;
diff --git a/pkgs/tools/security/ggshield/default.nix b/pkgs/tools/security/ggshield/default.nix
index 45b66653d6bfc..aba9ce1c22775 100644
--- a/pkgs/tools/security/ggshield/default.nix
+++ b/pkgs/tools/security/ggshield/default.nix
@@ -7,14 +7,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "ggshield";
-  version = "1.27.0";
+  version = "1.28.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "GitGuardian";
     repo = "ggshield";
     rev = "refs/tags/v${version}";
-    hash = "sha256-esrDJar9J7V0ZIupfyURFWeGigV04Kxo06o/jMz17Fk=";
+    hash = "sha256-iayxm234Rvi5O0Vb0RCid0iAvRQ2fCjoKAQVJY/9nbE=";
   };
 
   pythonRelaxDeps = true;
diff --git a/pkgs/tools/security/ghauri/default.nix b/pkgs/tools/security/ghauri/default.nix
index fc7cfd2bb1e15..426cb66b7e6f1 100644
--- a/pkgs/tools/security/ghauri/default.nix
+++ b/pkgs/tools/security/ghauri/default.nix
@@ -5,17 +5,21 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "ghauri";
-  version = "1.3.2";
-  format = "setuptools";
+  version = "1.3.4";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "r0oth3x49";
     repo = "ghauri";
     rev = "refs/tags/${version}";
-    hash = "sha256-zd+Uf2t8yBWi07+BJYYYQ+4fIissuBdXjj877ul4gAQ=";
+    hash = "sha256-1xrswAxavUz3ybmT0E00pjiR8pmHvuBXE4zhAPnz5MQ=";
   };
 
-  propagatedBuildInputs = with python3.pkgs; [
+  build-system = with python3.pkgs; [
+    setuptools
+  ];
+
+  dependencies = with python3.pkgs; [
     chardet
     colorama
     requests
@@ -31,10 +35,10 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool for detecting and exploiting SQL injection security flaws";
-    mainProgram = "ghauri";
     homepage = "https://github.com/r0oth3x49/ghauri";
     changelog = "https://github.com/r0oth3x49/ghauri/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "ghauri";
   };
 }
diff --git a/pkgs/tools/security/ghidra/build.nix b/pkgs/tools/security/ghidra/build.nix
index c0a8dca4cd0e8..ba23647c9c2db 100644
--- a/pkgs/tools/security/ghidra/build.nix
+++ b/pkgs/tools/security/ghidra/build.nix
@@ -4,10 +4,12 @@
 , callPackage
 , gradle_7
 , perl
-, makeWrapper
+, makeBinaryWrapper
 , openjdk17
 , unzip
 , makeDesktopItem
+, copyDesktopItems
+, desktopToDarwinBundle
 , icoutils
 , xcbuild
 , protobuf
@@ -53,15 +55,6 @@ let
     ./0003-Remove-build-datestamp.patch
   ];
 
-  desktopItem = makeDesktopItem {
-    name = "ghidra";
-    exec = "ghidra";
-    icon = "ghidra";
-    desktopName = "Ghidra";
-    genericName = "Ghidra Software Reverse Engineering Suite";
-    categories = [ "Development" ];
-  };
-
   postPatch = ''
     # Set name of release (eg. PUBLIC, DEV, etc.)
     sed -i -e 's/application\.release\.name=.*/application.release.name=${releaseName}/' Ghidra/application.properties
@@ -145,9 +138,28 @@ HERE
 in stdenv.mkDerivation (finalAttrs: {
   inherit pname version src patches postPatch;
 
+  desktopItems = [
+    (makeDesktopItem {
+      name = "ghidra";
+      exec = "ghidra";
+      icon = "ghidra";
+      desktopName = "Ghidra";
+      genericName = "Ghidra Software Reverse Engineering Suite";
+      categories = [ "Development" ];
+      terminal = false;
+    })
+  ];
+
   nativeBuildInputs = [
-    gradle unzip makeWrapper icoutils protobuf
-  ] ++ lib.optional stdenv.isDarwin xcbuild;
+    gradle
+    unzip
+    makeBinaryWrapper
+    copyDesktopItems
+    protobuf
+  ] ++ lib.optionals stdenv.isDarwin [
+    xcbuild
+    desktopToDarwinBundle
+  ];
 
   dontStrip = true;
 
@@ -169,6 +181,7 @@ in stdenv.mkDerivation (finalAttrs: {
 
   installPhase = ''
     runHook preInstall
+
     mkdir -p "${pkg_path}" "$out/share/applications"
 
     ZIP=build/dist/$(ls build/dist)
@@ -178,15 +191,13 @@ in stdenv.mkDerivation (finalAttrs: {
     mv "${pkg_path}"/*/* "${pkg_path}"
     rmdir "''${f[@]}"
 
-    ln -s ${desktopItem}/share/applications/* $out/share/applications
-
-    icotool -x "Ghidra/RuntimeScripts/Windows/support/ghidra.ico"
-    rm ghidra_4_40x40x32.png
-    for f in ghidra_*.png; do
-      res=$(basename "$f" ".png" | cut -d"_" -f3 | cut -d"x" -f1-2)
-      mkdir -pv "$out/share/icons/hicolor/$res/apps"
-      mv "$f" "$out/share/icons/hicolor/$res/apps/ghidra.png"
+    for f in Ghidra/Framework/Gui/src/main/resources/images/GhidraIcon*.png; do
+      res=$(basename "$f" ".png" | cut -d"_" -f3 | cut -c11-)
+      install -Dm444 "$f" "$out/share/icons/hicolor/''${res}x''${res}/apps/ghidra.png"
     done;
+    # improved macOS icon support
+    install -Dm444 Ghidra/Framework/Gui/src/main/resources/images/GhidraIcon64.png $out/share/icons/hicolor/32x32@2/apps/ghidra.png
+
     runHook postInstall
   '';
 
@@ -206,7 +217,8 @@ in stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A software reverse engineering (SRE) suite of tools developed by NSA's Research Directorate in support of the Cybersecurity mission";
+    changelog = "https://htmlpreview.github.io/?https://github.com/NationalSecurityAgency/ghidra/blob/Ghidra_${finalAttrs.version}_build/Ghidra/Configurations/Public_Release/src/global/docs/ChangeHistory.html";
+    description = "Software reverse engineering (SRE) suite of tools";
     mainProgram = "ghidra";
     homepage = "https://ghidra-sre.org/";
     platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
diff --git a/pkgs/tools/security/ghidra/default.nix b/pkgs/tools/security/ghidra/default.nix
index 2337b36eb7c8e..2788fe15974ec 100644
--- a/pkgs/tools/security/ghidra/default.nix
+++ b/pkgs/tools/security/ghidra/default.nix
@@ -69,7 +69,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A software reverse engineering (SRE) suite of tools developed by NSA's Research Directorate in support of the Cybersecurity mission";
+    description = "Software reverse engineering (SRE) suite of tools developed by NSA's Research Directorate in support of the Cybersecurity mission";
     mainProgram = "ghidra";
     homepage = "https://github.com/NationalSecurityAgency/ghidra";
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
diff --git a/pkgs/tools/security/ghidra/with-extensions.nix b/pkgs/tools/security/ghidra/with-extensions.nix
index 8ce4a04c2d460..38165ed94f711 100644
--- a/pkgs/tools/security/ghidra/with-extensions.nix
+++ b/pkgs/tools/security/ghidra/with-extensions.nix
@@ -1,7 +1,9 @@
 { lib
+, stdenv
 , callPackage
 , symlinkJoin
 , makeBinaryWrapper
+, desktopToDarwinBundle
 , ghidra
 }:
 
@@ -19,10 +21,14 @@ let
   withExtensions = f: (symlinkJoin {
     name = "${ghidra.pname}-with-extensions-${lib.getVersion ghidra}";
     paths = (f allExtensions);
-    nativeBuildInputs = [ makeBinaryWrapper ];
+    nativeBuildInputs = [ makeBinaryWrapper ]
+      ++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle;
     postBuild = ''
       makeWrapper '${ghidra}/bin/ghidra' "$out/bin/ghidra" \
         --set NIX_GHIDRAHOME "$out/lib/ghidra/Ghidra"
+      ln -s ${ghidra}/share $out/share
+    '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
+      convertDesktopFiles $prefix
     '';
     inherit (ghidra) meta;
   });
diff --git a/pkgs/tools/security/gitleaks/default.nix b/pkgs/tools/security/gitleaks/default.nix
index d5bca2f14f859..207ee746a107c 100644
--- a/pkgs/tools/security/gitleaks/default.nix
+++ b/pkgs/tools/security/gitleaks/default.nix
@@ -9,16 +9,16 @@
 
 buildGoModule rec {
   pname = "gitleaks";
-  version = "8.18.2";
+  version = "8.18.4";
 
   src = fetchFromGitHub {
     owner = "zricethezav";
     repo = "gitleaks";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+UPlknAwmIeXlosHBXl3qPREV186lfDZGZG/Zx1rxYs=";
+    hash = "sha256-tAomF5Ym+D/VMYXrsPlUnh3M94Xdx6I8WoU1jMouZag=";
   };
 
-  vendorHash = "sha256-30IJNP4XuV2YNy1TumPUju+GrHFBYi76coy0bJBqDI4=";
+  vendorHash = "sha256-DgCtWRo5KNuFCdhGJvzoH2v8n7mIxNk8eHyZFPUPo24=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/security/gnu-pw-mgr/default.nix b/pkgs/tools/security/gnu-pw-mgr/default.nix
index 8478c37483662..0e1c8c0f589eb 100644
--- a/pkgs/tools/security/gnu-pw-mgr/default.nix
+++ b/pkgs/tools/security/gnu-pw-mgr/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.gnu.org/software/gnu-pw-mgr/";
-    description = "A password manager designed to make it easy to reconstruct difficult passwords";
+    description = "Password manager designed to make it easy to reconstruct difficult passwords";
     license = with licenses; [ gpl3Plus lgpl3Plus ];
     platforms = lib.platforms.linux;
     maintainers = with maintainers; [ qoelet ];
diff --git a/pkgs/tools/security/gnupg-pkcs11-scd/default.nix b/pkgs/tools/security/gnupg-pkcs11-scd/default.nix
index 76cc2639bf90e..e594fde69dac2 100644
--- a/pkgs/tools/security/gnupg-pkcs11-scd/default.nix
+++ b/pkgs/tools/security/gnupg-pkcs11-scd/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A smart-card daemon to enable the use of PKCS#11 tokens with GnuPG";
+    description = "Smart-card daemon to enable the use of PKCS#11 tokens with GnuPG";
     mainProgram = "gnupg-pkcs11-scd";
     longDescription = ''
     gnupg-pkcs11 is a project to implement a BSD-licensed smart-card
diff --git a/pkgs/tools/security/go-cve-search/default.nix b/pkgs/tools/security/go-cve-search/default.nix
index 2e521de96ed35..e7eb19729ffb8 100644
--- a/pkgs/tools/security/go-cve-search/default.nix
+++ b/pkgs/tools/security/go-cve-search/default.nix
@@ -20,7 +20,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A lightweight CVE search tool";
+    description = "Lightweight CVE search tool";
     mainProgram = "go-cve-search";
     longDescription = ''
       go-cve-search is a lightweight tool to search CVE (Common Vulnerabilities
diff --git a/pkgs/tools/security/gopass/default.nix b/pkgs/tools/security/gopass/default.nix
index 5cc6624b721d9..35961ad0abe1c 100644
--- a/pkgs/tools/security/gopass/default.nix
+++ b/pkgs/tools/security/gopass/default.nix
@@ -58,7 +58,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "The slightly more awesome Standard Unix Password Manager for Teams. Written in Go";
+    description = "Slightly more awesome Standard Unix Password Manager for Teams. Written in Go";
     homepage = "https://www.gopass.pw/";
     license = licenses.mit;
     maintainers = with maintainers; [ rvolosatovs sikmir ];
diff --git a/pkgs/tools/security/gotrue/default.nix b/pkgs/tools/security/gotrue/default.nix
index 06b3560dec564..6a9d77ba062a6 100644
--- a/pkgs/tools/security/gotrue/default.nix
+++ b/pkgs/tools/security/gotrue/default.nix
@@ -24,7 +24,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/netlify/gotrue";
-    description = "An SWT based API for managing users and issuing SWT tokens";
+    description = "SWT based API for managing users and issuing SWT tokens";
     mainProgram = "gotrue";
     changelog = "https://github.com/netlify/gotrue/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/tools/security/gotrue/supabase.nix b/pkgs/tools/security/gotrue/supabase.nix
index 9020a0c8c9ba2..92a741167782c 100644
--- a/pkgs/tools/security/gotrue/supabase.nix
+++ b/pkgs/tools/security/gotrue/supabase.nix
@@ -35,7 +35,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/supabase/gotrue";
-    description = "A JWT based API for managing users and issuing JWT tokens";
+    description = "JWT based API for managing users and issuing JWT tokens";
     mainProgram = "gotrue";
     changelog = "https://github.com/supabase/gotrue/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/tools/security/govulncheck/default.nix b/pkgs/tools/security/govulncheck/default.nix
index 166e6dd53963f..9b51c052ed564 100644
--- a/pkgs/tools/security/govulncheck/default.nix
+++ b/pkgs/tools/security/govulncheck/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "govulncheck";
-  version = "1.1.0";
+  version = "1.1.2";
 
   src = fetchFromGitHub {
     owner = "golang";
     repo = "vuln";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sS58HyrwyRv3zYi8OgiDYnKSbyu2i3KVoSX/0wQbqGw=";
+    hash = "sha256-kpAk6Gn/uXWPzg6thp2RYrP0kouMmEaVxZSaJpf445Y=";
   };
 
   patches = [
@@ -23,7 +23,7 @@ buildGoModule rec {
     })
   ];
 
-  vendorHash = "sha256-ZHf//khvBGG+gRBKoKZo4NKoIJCQsbQfe2uT7cAHDcM=";
+  vendorHash = "sha256-0RtnyeOuvOv8cv4pFjRAR7VJB2FG6hqMML+Vz/FAjFM=";
 
   subPackages = [
     "cmd/govulncheck"
@@ -40,7 +40,8 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://pkg.go.dev/golang.org/x/vuln/cmd/govulncheck";
     downloadPage = "https://github.com/golang/vuln";
-    description = "The database client and tools for the Go vulnerability database, also known as vuln";
+    changelog = "https://github.com/golang/vuln/releases/tag/v${version}";
+    description = "Database client and tools for the Go vulnerability database, also known as vuln";
     mainProgram = "govulncheck";
     longDescription = ''
       Govulncheck reports known vulnerabilities that affect Go code. It uses
diff --git a/pkgs/tools/security/graphw00f/default.nix b/pkgs/tools/security/graphw00f/default.nix
index 9edcf7c1f939f..711b2f5b21163 100644
--- a/pkgs/tools/security/graphw00f/default.nix
+++ b/pkgs/tools/security/graphw00f/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "graphw00f";
-  version = "1.1.15";
+  version = "1.1.16";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "dolevf";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-wAymwT2PRyX7m/yh6BAa8YNkH7pE69bKHKZ15phuUJo=";
+    hash = "sha256-amyW+k6eXc4pyRLgrEXfOmMtReZvS8zDDBy+FSY6wHA=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/security/haka/default.nix b/pkgs/tools/security/haka/default.nix
index b20abbb8bf20f..c51d582f4c0d5 100644
--- a/pkgs/tools/security/haka/default.nix
+++ b/pkgs/tools/security/haka/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation {
   passthru.tests = { inherit (nixosTests) haka; };
 
   meta = {
-    description = "A collection of tools that allows capturing TCP/IP packets and filtering them based on Lua policy files";
+    description = "Collection of tools that allows capturing TCP/IP packets and filtering them based on Lua policy files";
     homepage = "http://www.haka-security.org/";
     license = lib.licenses.mpl20;
     maintainers = [ lib.maintainers.tvestelind ];
diff --git a/pkgs/tools/security/hashdeep/default.nix b/pkgs/tools/security/hashdeep/default.nix
index f4f327b48d80f..c870353d75b5a 100644
--- a/pkgs/tools/security/hashdeep/default.nix
+++ b/pkgs/tools/security/hashdeep/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook ];
 
   meta = with lib; {
-    description = "A set of cross-platform tools to compute hashes";
+    description = "Set of cross-platform tools to compute hashes";
     homepage = "https://github.com/jessek/hashdeep";
     license = licenses.gpl2Only;
     maintainers = [ maintainers.karantan ];
diff --git a/pkgs/tools/security/haveged/default.nix b/pkgs/tools/security/haveged/default.nix
index c30469c3a3d93..63beadffa5646 100644
--- a/pkgs/tools/security/haveged/default.nix
+++ b/pkgs/tools/security/haveged/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A simple entropy daemon";
+    description = "Simple entropy daemon";
     mainProgram = "haveged";
     longDescription = ''
       The haveged project is an attempt to provide an easy-to-use, unpredictable
diff --git a/pkgs/tools/security/himitsu/default.nix b/pkgs/tools/security/himitsu/default.nix
index d6bbb8fd69218..d4d6dcb211e47 100644
--- a/pkgs/tools/security/himitsu/default.nix
+++ b/pkgs/tools/security/himitsu/default.nix
@@ -1,38 +1,34 @@
-{ lib
-, stdenv
-, fetchFromSourcehut
-, hare
-, scdoc
+{
+  fetchFromSourcehut,
+  hareHook,
+  lib,
+  scdoc,
+  stdenv,
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "himitsu";
-  version = "0.6";
+  version = "0.7";
 
   src = fetchFromSourcehut {
-    name = pname + "-src";
     owner = "~sircmpwn";
-    repo = pname;
-    rev = version;
-    hash = "sha256-3x6Lc1rWBtYWVocBuMV5CtoZQjL0Ce+6J2xFjaYaeG4=";
+    repo = "himitsu";
+    rev = finalAttrs.version;
+    hash = "sha256-jDxQajc8Kyfihm8q3wCpA+WsbAkQEZerLckLQXNhTa8=";
   };
 
   nativeBuildInputs = [
-    hare
+    hareHook
     scdoc
   ];
 
-  preConfigure = ''
-    export HARECACHE=$(mktemp -d)
-  '';
-
-  installFlags = [ "PREFIX=" "DESTDIR=$(out)" ];
+  installFlags = [ "PREFIX=${builtins.placeholder "out"}" ];
 
   meta = with lib; {
     homepage = "https://himitsustore.org/";
-    description = "A secret storage manager";
+    description = "Secret storage manager";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ auchter ];
-    inherit (hare.meta) platforms badPlatforms;
+    inherit (hareHook.meta) platforms badPlatforms;
   };
-}
+})
diff --git a/pkgs/tools/security/httpx/default.nix b/pkgs/tools/security/httpx/default.nix
index a0a6c0e9e9e21..d0d78c3047fae 100644
--- a/pkgs/tools/security/httpx/default.nix
+++ b/pkgs/tools/security/httpx/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "httpx";
-  version = "1.6.1";
+  version = "1.6.3";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "httpx";
     rev = "refs/tags/v${version}";
-    hash = "sha256-LW5zJqJqUD5v50OZuPqMYefrcIsjEIr7a4rogveiLA0=";
+    hash = "sha256-N2Fym3OwTHjdaJ1fzGWL+BoUYsQ5216d3Ohz5Yrf558=";
   };
 
-  vendorHash = "sha256-A82eMV9MegJt3wAkK0YbyMQqt7zlX01DmZ2z3YIGrQ8=";
+  vendorHash = "sha256-jD5LQ9HZbWpoXgnyA7RacaDdyBPMbK02PhKQT+1il4Q=";
 
   subPackages = [ "cmd/httpx" ];
 
diff --git a/pkgs/tools/security/iaito/default.nix b/pkgs/tools/security/iaito/default.nix
index 2ba6dd0aec265..79d9a65136c51 100644
--- a/pkgs/tools/security/iaito/default.nix
+++ b/pkgs/tools/security/iaito/default.nix
@@ -13,13 +13,13 @@
 
 let
   pname = "iaito";
-  version = "5.9.0";
+  version = "5.9.2";
 
   main_src = fetchFromGitHub rec {
     owner = "radareorg";
     repo = pname;
-    rev = version;
-    hash = "sha256-Ep3Cbi0qjY4PKG0urr12y0DgX/l/Tsq8w1qlyH0lu3s=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-bq4kaP3BmDprKAxMxO+OvTceEQFeAxJ7aGDnRFHjVDA=";
     name = repo;
   };
 
@@ -31,8 +31,7 @@ let
     name = repo;
   };
 in
-
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   inherit pname version;
 
   srcs = [ main_src translations_src ];
@@ -61,9 +60,6 @@ stdenv.mkDerivation rec {
     radare2
   ];
 
-  # the radare2 binary package seems to not install all necessary headers.
-  env.NIX_CFLAGS_COMPILE = toString [ "-I" "${radare2.src}/shlr/sdb/include/sdb" ];
-
   postBuild = ''
     pushd ../../../${translations_src.name}
     make build -j$NIX_BUILD_CORES PREFIX=$out
@@ -86,16 +82,16 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An official graphical interface of radare2";
-    mainProgram = "iaito";
+    description = "Official Qt frontend of radare2";
     longDescription = ''
-      iaito is the official graphical interface of radare2. It's the
-      continuation of Cutter for radare2 after the Rizin fork.
+      iaito is the official graphical interface for radare2, a libre reverse
+      engineering framework.
     '';
     homepage = "https://radare.org/n/iaito.html";
-    changelog = "https://github.com/radareorg/iaito/releases/tag/${version}";
-    license = licenses.gpl3Plus;
+    changelog = "https://github.com/radareorg/iaito/releases/tag/${finalAttrs.version}";
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ azahi ];
+    mainProgram = "iaito";
     platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/tools/security/jwt-cli/default.nix b/pkgs/tools/security/jwt-cli/default.nix
index 6d970dca9519a..db049b1fa7121 100644
--- a/pkgs/tools/security/jwt-cli/default.nix
+++ b/pkgs/tools/security/jwt-cli/default.nix
@@ -1,20 +1,29 @@
-{ lib, stdenv, fetchFromGitHub, rustPlatform, Security }:
+{ lib, stdenv, fetchFromGitHub, installShellFiles, rustPlatform, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "jwt-cli";
-  version = "6.0.0";
+  version = "6.1.0";
 
   src = fetchFromGitHub {
     owner = "mike-engel";
     repo = pname;
     rev = version;
-    sha256 = "sha256-EzXpiJGTAlTDHJwl7FwIsDHMqStj2PLD1PHmv0flBKc=";
+    sha256 = "sha256-iEZlT0Kyx+z/KYDw/YI3rb4eIi98Q48hEoK+6eRpJbM=";
   };
 
-  cargoHash = "sha256-l1W+eYuKnMPN2wPhYPXo5ixUz2bX+FZnDazk+FbxquU=";
+  cargoHash = "sha256-DXyjdwVJUQpOz/Pctl35D00oSgrfehUg8wYyLdttiew=";
+
+  nativeBuildInputs = [ installShellFiles ];
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
+  postInstall = ''
+    installShellCompletion --cmd jwt \
+      --bash <($out/bin/jwt completion bash) \
+      --fish <($out/bin/jwt completion fish) \
+      --zsh <($out/bin/jwt completion zsh)
+  '';
+
   doInstallCheck = true;
   installCheckPhase = ''
     $out/bin/jwt --version > /dev/null
diff --git a/pkgs/tools/security/jwt-hack/default.nix b/pkgs/tools/security/jwt-hack/default.nix
index 4922f67fe576a..2b73d69249aa2 100644
--- a/pkgs/tools/security/jwt-hack/default.nix
+++ b/pkgs/tools/security/jwt-hack/default.nix
@@ -1,24 +1,31 @@
-{ lib
-, buildGoModule
-, fetchFromGitHub
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
 }:
 
 buildGoModule rec {
   pname = "jwt-hack";
-  version = "1.1.2";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "hahwul";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-K0ZtEi0zAKRlIGvorrXmtmkcMvyLIXWPnVMQANZbClk=";
+    repo = "jwt-hack";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-IHR+ItI4ToINLpkVc7yrgpNTS17nD02G6x3pNMEfIW4=";
   };
 
-  vendorHash = "sha256-VYh3oRy8bmtXf6AnLNi/M2kA6t+crW3AXBiGovpdt8U=";
+  vendorHash = "sha256-YEH+epSvyy1j0s8AIJ5+BdF47H7KqgBRC4t81noOkjo=";
+
+  ldflags = [
+    "-w"
+    "-s"
+  ];
 
   meta = with lib; {
     description = "Tool for attacking JWT";
     homepage = "https://github.com/hahwul/jwt-hack";
+    changelog = "https://github.com/hahwul/jwt-hack/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
     mainProgram = "jwt-hack";
diff --git a/pkgs/tools/security/katana/default.nix b/pkgs/tools/security/katana/default.nix
index 98aabba79d3a3..f879f12481d5e 100644
--- a/pkgs/tools/security/katana/default.nix
+++ b/pkgs/tools/security/katana/default.nix
@@ -26,7 +26,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "A next-generation crawling and spidering framework";
+    description = "Next-generation crawling and spidering framework";
     mainProgram = "katana";
     homepage = "https://github.com/projectdiscovery/katana";
     changelog = "https://github.com/projectdiscovery/katana/releases/tag/v${version}";
diff --git a/pkgs/tools/security/kbs2/default.nix b/pkgs/tools/security/kbs2/default.nix
index 4c1c23820f5ff..4f193d4ffccb0 100644
--- a/pkgs/tools/security/kbs2/default.nix
+++ b/pkgs/tools/security/kbs2/default.nix
@@ -46,7 +46,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A secret manager backed by age";
+    description = "Secret manager backed by age";
     mainProgram = "kbs2";
     homepage = "https://github.com/woodruffw/kbs2";
     changelog = "https://github.com/woodruffw/kbs2/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/tools/security/kdigger/default.nix b/pkgs/tools/security/kdigger/default.nix
index dc700bc8e84a9..a4f565bb791b4 100644
--- a/pkgs/tools/security/kdigger/default.nix
+++ b/pkgs/tools/security/kdigger/default.nix
@@ -60,7 +60,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/quarkslab/kdigger";
     changelog = "https://github.com/quarkslab/kdigger/releases/tag/v${version}";
-    description = "An in-pod context discovery tool for Kubernetes penetration testing";
+    description = "In-pod context discovery tool for Kubernetes penetration testing";
     mainProgram = "kdigger";
     longDescription = ''
       kdigger, short for "Kubernetes digger", is a context discovery tool for
diff --git a/pkgs/tools/security/keybase/default.nix b/pkgs/tools/security/keybase/default.nix
index 38b5bf72fd315..6f77eab11323a 100644
--- a/pkgs/tools/security/keybase/default.nix
+++ b/pkgs/tools/security/keybase/default.nix
@@ -34,7 +34,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://www.keybase.io/";
-    description = "The Keybase official command-line utility and service";
+    description = "Keybase official command-line utility and service";
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ avaq np rvolosatovs Br1ght0ne shofius ];
     license = licenses.bsd3;
diff --git a/pkgs/tools/security/keybase/gui.nix b/pkgs/tools/security/keybase/gui.nix
index e9f5f52e8a0b4..666425e4d3d0f 100644
--- a/pkgs/tools/security/keybase/gui.nix
+++ b/pkgs/tools/security/keybase/gui.nix
@@ -108,7 +108,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.keybase.io/";
-    description = "The Keybase official GUI";
+    description = "Keybase official GUI";
     mainProgram = "keybase-gui";
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ avaq rvolosatovs puffnfresh np Br1ght0ne shofius ];
diff --git a/pkgs/tools/security/keybase/kbfs.nix b/pkgs/tools/security/keybase/kbfs.nix
index 3c508e86f76f8..b3e2974a0033b 100644
--- a/pkgs/tools/security/keybase/kbfs.nix
+++ b/pkgs/tools/security/keybase/kbfs.nix
@@ -13,7 +13,7 @@ buildGoModule {
 
   meta = with lib; {
     homepage = "https://keybase.io/docs/kbfs";
-    description = "The Keybase filesystem";
+    description = "Keybase filesystem";
     maintainers = with maintainers; [ avaq rvolosatovs bennofs np shofius ];
     license = licenses.bsd3;
   };
diff --git a/pkgs/tools/security/keycard-cli/default.nix b/pkgs/tools/security/keycard-cli/default.nix
index 26c1d7934fbb5..017990084c56a 100644
--- a/pkgs/tools/security/keycard-cli/default.nix
+++ b/pkgs/tools/security/keycard-cli/default.nix
@@ -19,7 +19,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" "-X main.version=${version}" ];
 
   meta = with lib; {
-    description = "A command line tool and shell to manage keycards";
+    description = "Command line tool and shell to manage keycards";
     mainProgram = "keycard-cli";
     homepage = "https://keycard.status.im";
     license = licenses.mpl20;
diff --git a/pkgs/tools/security/keyscope/default.nix b/pkgs/tools/security/keyscope/default.nix
index 928daf4b23034..7601f22445792 100644
--- a/pkgs/tools/security/keyscope/default.nix
+++ b/pkgs/tools/security/keyscope/default.nix
@@ -40,7 +40,7 @@ rustPlatform.buildRustPackage rec {
   VERGEN_GIT_SEMVER = "v${version}";
 
   meta = with lib; {
-    description = "A key and secret workflow (validation, invalidation, etc.) tool";
+    description = "Key and secret workflow (validation, invalidation, etc.) tool";
     mainProgram = "keyscope";
     homepage = "https://github.com/spectralops/keyscope";
     changelog = "https://github.com/spectralops/keyscope/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/tools/security/kpcli/default.nix b/pkgs/tools/security/kpcli/default.nix
index 0509663af1aab..5a3b0a75862f4 100644
--- a/pkgs/tools/security/kpcli/default.nix
+++ b/pkgs/tools/security/kpcli/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, makeWrapper, perl, perlPackages }:
 
 stdenv.mkDerivation rec {
-  version = "4.0";
+  version = "4.1";
   pname = "kpcli";
 
   src = fetchurl {
     url = "mirror://sourceforge/kpcli/${pname}-${version}.pl";
-    sha256 = "sha256-UYnX2tad3Jg00kdX5WHStI6u2pyts+SZlgj/jv4o/TU=";
+    sha256 = "sha256-3t8OhvRPj3oanFJKRaUVhGlF0B4E+UAlcfGMIpcet9s=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/security/kubescape/default.nix b/pkgs/tools/security/kubescape/default.nix
index bfc482613d547..d0f8415cbedbc 100644
--- a/pkgs/tools/security/kubescape/default.nix
+++ b/pkgs/tools/security/kubescape/default.nix
@@ -11,17 +11,17 @@
 
 buildGoModule rec {
   pname = "kubescape";
-  version = "3.0.10";
+  version = "3.0.11";
 
   src = fetchFromGitHub {
     owner = "kubescape";
     repo = "kubescape";
     rev = "refs/tags/v${version}";
-    hash = "sha256-r6w2Cfyjxqf/1DMBGgmE8Oh/WnvBOa7mAEGXnPjk1Pg=";
+    hash = "sha256-hxHVQ8Ssvwq5lk+b7v1kLrYeGSfJEj/FudSd0V3tUnQ=";
     fetchSubmodules = true;
   };
 
-  vendorHash = "sha256-WPa6IKPjdBtoHYKA2yYtaI1LCbkyv374fcThxbSEKxo=";
+  vendorHash = "sha256-iwcwhBX/Kl55G8SrI1mmkP5bj8BrLAGBdk3UnK1Xfag=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/tools/security/kubestroyer/default.nix b/pkgs/tools/security/kubestroyer/default.nix
index 8e0922e4dfb07..a3f03e605c42a 100644
--- a/pkgs/tools/security/kubestroyer/default.nix
+++ b/pkgs/tools/security/kubestroyer/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "kubestroyer";
-  version = "0.2";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "Rolix44";
     repo = "Kubestroyer";
     rev = "refs/tags/v${version}";
-    hash = "sha256-M/abb2IT0mXwj8lAitr18VtIgC4NvapPywBwcUWr9i8=";
+    hash = "sha256-A4kx0Xx3p9rP8OKRLPe9AfX+rqGggtvPb7Hsg+lLkSI=";
   };
 
-  vendorHash = "sha256-x0lIi4QUuYn0kv0HV4h8k61kRu10LCyELudisqUdTAg=";
+  vendorHash = "sha256-V6qEvMsX7tdhooW116+0ayT6RYkdjDbz6QwWb8rC4ig=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/security/ldeep/default.nix b/pkgs/tools/security/ldeep/default.nix
index 0b3a2b47df4cf..098b811eb3f8d 100644
--- a/pkgs/tools/security/ldeep/default.nix
+++ b/pkgs/tools/security/ldeep/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "ldeep";
-  version = "1.0.53";
+  version = "1.0.58";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "franc-pentest";
     repo = "ldeep";
     rev = "refs/tags/${version}";
-    hash = "sha256-67jVpzvdjEcjFmTRE2YjPr4AO1iN+PakwoKcjvimt8g=";
+    hash = "sha256-u8qcihjGZmOAjjVBa6nLruD74zGozHnahShqUUXILcY=";
   };
 
   pythonRelaxDeps = [
@@ -20,9 +20,12 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   build-system = with python3.pkgs; [
+    pdm-backend
+  ];
+
+  nativeBuildInputs = with python3.pkgs; [
     cython
     pythonRelaxDepsHook
-    setuptools
   ];
 
   dependencies = with python3.pkgs; [
@@ -50,7 +53,7 @@ python3.pkgs.buildPythonApplication rec {
     description = "In-depth LDAP enumeration utility";
     homepage = "https://github.com/franc-pentest/ldeep";
     changelog = "https://github.com/franc-pentest/ldeep/releases/tag/${version}";
-    license = with licenses; [ mit ];
+    license = licenses.mit;
     maintainers = with maintainers; [ fab ];
     mainProgram = "ldeep";
   };
diff --git a/pkgs/tools/security/libtpms/default.nix b/pkgs/tools/security/libtpms/default.nix
index a7249481454ab..5ac368eea9f06 100644
--- a/pkgs/tools/security/libtpms/default.nix
+++ b/pkgs/tools/security/libtpms/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "The libtpms library provides software emulation of a Trusted Platform Module (TPM 1.2 and TPM 2.0)";
+    description = "Libtpms library provides software emulation of a Trusted Platform Module (TPM 1.2 and TPM 2.0)";
     homepage = "https://github.com/stefanberger/libtpms";
     license = licenses.bsd3;
     maintainers = [ maintainers.baloo ];
diff --git a/pkgs/tools/security/logkeys/default.nix b/pkgs/tools/security/logkeys/default.nix
index 1172250f9c483..ed3180fd7e460 100644
--- a/pkgs/tools/security/logkeys/default.nix
+++ b/pkgs/tools/security/logkeys/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
   preConfigure = "./autogen.sh";
 
   meta = with lib; {
-    description = "A GNU/Linux keylogger that works";
+    description = "GNU/Linux keylogger that works";
     license = licenses.gpl3;
     homepage = "https://github.com/kernc/logkeys";
     maintainers = with maintainers; [mikoim offline];
diff --git a/pkgs/tools/security/mantra/default.nix b/pkgs/tools/security/mantra/default.nix
index 348c0afc32513..5a6b0074b46b1 100644
--- a/pkgs/tools/security/mantra/default.nix
+++ b/pkgs/tools/security/mantra/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "mantra";
-  version = "1.1";
+  version = "2.0";
 
   src = fetchFromGitHub {
     owner = "MrEmpy";
     repo = "Mantra";
-    rev = "refs/tags/v.${version}";
-    hash = "sha256-wIFZgxl6qULDvdUeq4yiuc5dPDudKsYvVUewSL0ITNM=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-fBcoKoTBGCyJS8+mzKXLGxcxmRsCcZFZEyMTnA5Rkbw=";
   };
 
   vendorHash = null;
@@ -24,7 +24,7 @@ buildGoModule rec {
   meta = with lib; {
     description = "Tool used to hunt down API key leaks in JS files and pages";
     homepage = "https://github.com/MrEmpy/Mantra";
-    changelog = "https://github.com/MrEmpy/Mantra/releases/tag/v.${version}";
+    changelog = "https://github.com/MrEmpy/Mantra/releases/tag/v${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
     mainProgram = "mantra";
diff --git a/pkgs/tools/security/medusa/default.nix b/pkgs/tools/security/medusa/default.nix
index c7008be8f948e..b33f36bd30f67 100644
--- a/pkgs/tools/security/medusa/default.nix
+++ b/pkgs/tools/security/medusa/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/jmk-foofus/medusa";
-    description = "A speedy, parallel, and modular, login brute-forcer";
+    description = "Speedy, parallel, and modular, login brute-forcer";
     mainProgram = "medusa";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/tools/security/metasploit/Gemfile b/pkgs/tools/security/metasploit/Gemfile
index ae2b6975af12b..95bd1b8435df6 100644
--- a/pkgs/tools/security/metasploit/Gemfile
+++ b/pkgs/tools/security/metasploit/Gemfile
@@ -1,4 +1,4 @@
 # frozen_string_literal: true
 source "https://rubygems.org"
 
-gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.4.9"
+gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.4.13"
diff --git a/pkgs/tools/security/metasploit/Gemfile.lock b/pkgs/tools/security/metasploit/Gemfile.lock
index bfb9433561018..864358152c6d8 100644
--- a/pkgs/tools/security/metasploit/Gemfile.lock
+++ b/pkgs/tools/security/metasploit/Gemfile.lock
@@ -1,9 +1,11 @@
 GIT
   remote: https://github.com/rapid7/metasploit-framework
-  revision: eac2a919309b9ec735cae13ceead0f4aa0e412e8
-  ref: refs/tags/6.4.9
+  revision: 0dae49af4bc85231052e15fc97f8bfbf9ec56cf3
+  ref: refs/tags/6.4.13
   specs:
-    metasploit-framework (6.4.9)
+    metasploit-framework (6.4.13)
+      aarch64
+      abbrev
       actionpack (~> 7.0.0)
       activerecord (~> 7.0.0)
       activesupport (~> 7.0.0)
@@ -12,12 +14,16 @@ GIT
       aws-sdk-iam
       aws-sdk-s3
       aws-sdk-ssm
+      base64
       bcrypt
       bcrypt_pbkdf
+      bigdecimal
       bootsnap
       bson
       chunky_png
+      csv
       dnsruby
+      drb
       ed25519
       em-http-request
       eventmachine
@@ -26,6 +32,7 @@ GIT
       faraday-retry
       faye-websocket
       filesize
+      getoptlong
       hrr_rb_ssh-ed25519
       http-cookie
       irb (~> 1.7.4)
@@ -40,6 +47,7 @@ GIT
       metasploit_payloads-mettle (= 1.0.26)
       mqtt
       msgpack (~> 1.6.0)
+      mutex_m
       nessus_rest
       net-imap
       net-ldap
@@ -47,7 +55,7 @@ GIT
       net-ssh
       network_interface
       nexpose
-      nokogiri (~> 1.14.0)
+      nokogiri
       octokit (~> 4.0)
       openssl-ccm
       openvas-omp
@@ -87,7 +95,7 @@ GIT
       rubyntlm
       rubyzip
       sinatra
-      sqlite3 (= 1.6.6)
+      sqlite3 (= 1.7.3)
       sshkey
       swagger-blocks
       thin
@@ -105,26 +113,29 @@ GIT
 GEM
   remote: https://rubygems.org/
   specs:
-    Ascii85 (1.1.0)
-    actionpack (7.0.8.1)
-      actionview (= 7.0.8.1)
-      activesupport (= 7.0.8.1)
+    Ascii85 (1.1.1)
+    aarch64 (2.1.0)
+      racc (~> 1.6)
+    abbrev (0.1.2)
+    actionpack (7.0.8.3)
+      actionview (= 7.0.8.3)
+      activesupport (= 7.0.8.3)
       rack (~> 2.0, >= 2.2.4)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actionview (7.0.8.1)
-      activesupport (= 7.0.8.1)
+    actionview (7.0.8.3)
+      activesupport (= 7.0.8.3)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.1, >= 1.2.0)
-    activemodel (7.0.8.1)
-      activesupport (= 7.0.8.1)
-    activerecord (7.0.8.1)
-      activemodel (= 7.0.8.1)
-      activesupport (= 7.0.8.1)
-    activesupport (7.0.8.1)
+    activemodel (7.0.8.3)
+      activesupport (= 7.0.8.3)
+    activerecord (7.0.8.3)
+      activemodel (= 7.0.8.3)
+      activesupport (= 7.0.8.3)
+    activesupport (7.0.8.3)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
@@ -135,37 +146,37 @@ GEM
     arel-helpers (2.14.0)
       activerecord (>= 3.1.0, < 8)
     aws-eventstream (1.3.0)
-    aws-partitions (1.916.0)
-    aws-sdk-core (3.192.1)
+    aws-partitions (1.933.0)
+    aws-sdk-core (3.196.1)
       aws-eventstream (~> 1, >= 1.3.0)
       aws-partitions (~> 1, >= 1.651.0)
       aws-sigv4 (~> 1.8)
       jmespath (~> 1, >= 1.6.1)
-    aws-sdk-ec2 (1.450.0)
-      aws-sdk-core (~> 3, >= 3.191.0)
+    aws-sdk-ec2 (1.457.1)
+      aws-sdk-core (~> 3, >= 3.193.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-ec2instanceconnect (1.38.0)
-      aws-sdk-core (~> 3, >= 3.191.0)
+    aws-sdk-ec2instanceconnect (1.40.0)
+      aws-sdk-core (~> 3, >= 3.193.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-iam (1.96.0)
-      aws-sdk-core (~> 3, >= 3.191.0)
+    aws-sdk-iam (1.98.0)
+      aws-sdk-core (~> 3, >= 3.193.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-kms (1.79.0)
-      aws-sdk-core (~> 3, >= 3.191.0)
+    aws-sdk-kms (1.82.0)
+      aws-sdk-core (~> 3, >= 3.193.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.147.0)
-      aws-sdk-core (~> 3, >= 3.192.0)
+    aws-sdk-s3 (1.151.0)
+      aws-sdk-core (~> 3, >= 3.194.0)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.8)
-    aws-sdk-ssm (1.166.0)
-      aws-sdk-core (~> 3, >= 3.191.0)
+    aws-sdk-ssm (1.169.0)
+      aws-sdk-core (~> 3, >= 3.193.0)
       aws-sigv4 (~> 1.1)
     aws-sigv4 (1.8.0)
       aws-eventstream (~> 1, >= 1.0.2)
     base64 (0.2.0)
     bcrypt (3.1.20)
-    bcrypt_pbkdf (1.1.0)
-    bigdecimal (3.1.7)
+    bcrypt_pbkdf (1.1.1)
+    bigdecimal (3.1.8)
     bindata (2.4.15)
     bootsnap (1.18.3)
       msgpack (~> 1.2)
@@ -175,11 +186,13 @@ GEM
     concurrent-ruby (1.2.3)
     cookiejar (0.3.4)
     crass (1.0.6)
+    csv (3.3.0)
     daemons (1.4.1)
     date (3.3.4)
     dnsruby (1.72.1)
       simpleidn (~> 0.2.1)
     domain_name (0.6.20240107)
+    drb (2.2.1)
     ed25519 (1.3.0)
     em-http-request (1.1.7)
       addressable (>= 2.3.4)
@@ -205,6 +218,7 @@ GEM
       websocket-driver (>= 0.5.1)
     ffi (1.16.3)
     filesize (0.2.0)
+    getoptlong (0.2.1)
     gssapi (1.3.1)
       ffi (>= 1.0.1)
     gyoku (1.4.0)
@@ -219,7 +233,7 @@ GEM
       domain_name (~> 0.5)
     http_parser.rb (0.8.0)
     httpclient (2.8.3)
-    i18n (1.14.4)
+    i18n (1.14.5)
       concurrent-ruby (~> 1.0)
     io-console (0.7.2)
     irb (1.7.4)
@@ -269,14 +283,15 @@ GEM
     metasploit_payloads-mettle (1.0.26)
     method_source (1.1.0)
     mini_portile2 (2.8.6)
-    minitest (5.22.3)
+    minitest (5.23.1)
     mqtt (0.6.0)
     msgpack (1.6.1)
     multi_json (1.15.0)
     mustermann (3.0.0)
       ruby2_keywords (~> 0.0.1)
+    mutex_m (0.2.0)
     nessus_rest (0.1.6)
-    net-imap (0.4.10)
+    net-imap (0.4.11)
       date
       net-protocol
     net-ldap (0.19.0)
@@ -287,7 +302,7 @@ GEM
     net-ssh (7.2.3)
     network_interface (0.0.4)
     nexpose (7.3.0)
-    nio4r (2.7.1)
+    nio4r (2.7.3)
     nokogiri (1.14.5)
       mini_portile2 (~> 2.8.0)
       racc (~> 1.4)
@@ -302,7 +317,7 @@ GEM
     packetfu (2.0.0)
       pcaprub (~> 0.13.1)
     patch_finder (1.0.2)
-    pcaprub (0.13.1)
+    pcaprub (0.13.2)
     pdf-reader (2.12.0)
       Ascii85 (~> 1.0)
       afm (~> 0.2.1)
@@ -313,7 +328,7 @@ GEM
     public_suffix (5.0.5)
     puma (6.4.2)
       nio4r (~> 2.0)
-    racc (1.7.3)
+    racc (1.8.0)
     rack (2.2.9)
     rack-protection (3.2.0)
       base64 (>= 0.1.0)
@@ -327,9 +342,9 @@ GEM
     rails-html-sanitizer (1.6.0)
       loofah (~> 2.21)
       nokogiri (~> 1.14)
-    railties (7.0.8.1)
-      actionpack (= 7.0.8.1)
-      activesupport (= 7.0.8.1)
+    railties (7.0.8.3)
+      actionpack (= 7.0.8.3)
+      activesupport (= 7.0.8.3)
       method_source
       rake (>= 12.2)
       thor (~> 1.0)
@@ -341,7 +356,7 @@ GEM
     recog (3.1.5)
       nokogiri
     redcarpet (3.6.0)
-    reline (0.5.2)
+    reline (0.5.7)
       io-console (~> 0.5)
     rex-arch (0.1.15)
       rex-text
@@ -351,7 +366,7 @@ GEM
       rex-core
       rex-struct2
       rex-text
-    rex-core (0.1.31)
+    rex-core (0.1.32)
     rex-encoder (0.1.7)
       metasm
       rex-arch
@@ -374,7 +389,7 @@ GEM
       rex-random_identifier
       rex-text
       ruby-rc4
-    rex-random_identifier (0.1.11)
+    rex-random_identifier (0.1.12)
       rex-text
     rex-registry (0.1.5)
     rex-rop_builder (0.1.5)
@@ -388,16 +403,17 @@ GEM
       rex-socket
       rex-text
     rex-struct2 (0.1.4)
-    rex-text (0.2.57)
+    rex-text (0.2.58)
     rex-zip (0.1.5)
       rex-text
-    rexml (3.2.6)
+    rexml (3.2.8)
+      strscan (>= 3.0.9)
     rkelly-remix (0.0.7)
     ruby-macho (4.0.1)
     ruby-mysql (4.1.0)
     ruby-rc4 (0.1.5)
     ruby2_keywords (0.0.5)
-    ruby_smb (3.3.5)
+    ruby_smb (3.3.8)
       bindata (= 2.4.15)
       openssl-ccm
       openssl-cmac
@@ -408,17 +424,17 @@ GEM
     sawyer (0.9.2)
       addressable (>= 2.3.5)
       faraday (>= 0.17.3, < 3)
-    simpleidn (0.2.1)
-      unf (~> 0.1.4)
+    simpleidn (0.2.3)
     sinatra (3.2.0)
       mustermann (~> 3.0)
       rack (~> 2.2, >= 2.2.4)
       rack-protection (= 3.2.0)
       tilt (~> 2.0)
-    sqlite3 (1.6.6)
+    sqlite3 (1.7.3)
       mini_portile2 (~> 2.8.0)
     sshkey (3.0.0)
     strptime (0.2.5)
+    strscan (3.1.0)
     swagger-blocks (3.0.0)
     thin (1.8.2)
       daemons (~> 1.0, >= 1.0.9)
@@ -433,9 +449,6 @@ GEM
       concurrent-ruby (~> 1.0)
     tzinfo-data (1.2024.1)
       tzinfo (>= 1.0.0)
-    unf (0.1.4)
-      unf_ext
-    unf_ext (0.0.9.1)
     unix-crypt (1.3.1)
     warden (1.2.9)
       rack (>= 2.0.9)
@@ -459,7 +472,7 @@ GEM
       activesupport (>= 4.2, < 8.0)
     xmlrpc (0.3.3)
       webrick
-    zeitwerk (2.6.13)
+    zeitwerk (2.6.14)
 
 PLATFORMS
   ruby
diff --git a/pkgs/tools/security/metasploit/default.nix b/pkgs/tools/security/metasploit/default.nix
index 7779f954b6195..b7144716ecf4f 100644
--- a/pkgs/tools/security/metasploit/default.nix
+++ b/pkgs/tools/security/metasploit/default.nix
@@ -15,13 +15,13 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "metasploit-framework";
-  version = "6.4.9";
+  version = "6.4.13";
 
   src = fetchFromGitHub {
     owner = "rapid7";
     repo = "metasploit-framework";
     rev = "refs/tags/${version}";
-    hash = "sha256-0f7kpzeOY6EbFb7LRZc/J5lFYcf21HC6H6q0+qtTcao=";
+    hash = "sha256-9Qo+6FAkrzkXpaHPa6u3BgGH8yKDCKo1TtS4xO12Kew=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/security/metasploit/gemset.nix b/pkgs/tools/security/metasploit/gemset.nix
index 901b70c29cc2c..5edc7bb331356 100644
--- a/pkgs/tools/security/metasploit/gemset.nix
+++ b/pkgs/tools/security/metasploit/gemset.nix
@@ -1,53 +1,73 @@
 {
+  aarch64 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1c0hkbm94prkw0nb76l0il7fhz1xz5dkgzh6wwyrs88lwggv9avh";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  abbrev = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hj2qyx7rzpc7awhvqlm597x7qdxwi4kkml4aqnp5jylmsm4w6xd";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
   actionpack = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jh83rqd6glys1b2wsihzsln8yk6zdwgiyn9xncyiav9rcwjpkax";
+      sha256 = "11c5pm65m46wlqd25glmwpkji1jn1v2n918jmklxp4w9rr43dzi6";
       type = "gem";
     };
-    version = "7.0.8.1";
+    version = "7.0.8.3";
   };
   actionview = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ygpg75f3ffdcbxvf7s14xw3hcjin1nnx1nk3mg9mj2xc1nb60aa";
+      sha256 = "0p0w1rl3f5k7m39j9gnyw5wqz6ym18bhcacisqq4zng2k6jf4893";
       type = "gem";
     };
-    version = "7.0.8.1";
+    version = "7.0.8.3";
   };
   activemodel = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0grdpvglh0cj96qhlxjj9bcfqkh13c1pfpcwc9ld3aw0yzvsw5a1";
+      sha256 = "0y8w73rdd7x1m1gwswjhpqfbjr95hh7hcnkjqk1wz8x9gjk9njb6";
       type = "gem";
     };
-    version = "7.0.8.1";
+    version = "7.0.8.3";
   };
   activerecord = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rlky1cr5kcdl0jad3nk5jpim6vjzbgkfhxnk7y492b3j2nznpcf";
+      sha256 = "03pqj57md528dgwwplr234hq628allla71i1pxys2inbpp7s7vn8";
       type = "gem";
     };
-    version = "7.0.8.1";
+    version = "7.0.8.3";
   };
   activesupport = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ff3x7q400flzhml131ix8zfwmh13h70rs6yzbzf513g781gbbxh";
+      sha256 = "1ybapgiiysxgcjyzifn34ksbwjdjzslbvbcd7v83wiry1qmiyg93";
       type = "gem";
     };
-    version = "7.0.8.1";
+    version = "7.0.8.3";
   };
   addressable = {
     groups = ["default"];
@@ -84,10 +104,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ds4v9xgsyvijnlflak4dzf1qwmda9yd5bv8jwsb56nngd399rlw";
+      sha256 = "1c62cx96r0v265mywnlik43qx0wf6bjbzl54qa47x6dzjg861mvk";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.1.1";
   };
   aws-eventstream = {
     groups = ["default"];
@@ -104,80 +124,80 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gilrh9fb1576xm2ah0l6d33qkiabz55zpq004qqia9xavl43ylz";
+      sha256 = "1axv3iicp4as5dxhmwrxf3rc7389ba94gk11yilw3vwv4hch87yx";
       type = "gem";
     };
-    version = "1.916.0";
+    version = "1.933.0";
   };
   aws-sdk-core = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hp8rxk9wl3kmb7xabcz5hbcv7kzsvsx0wyib2fsg9d42kz149n0";
+      sha256 = "0f44kp3g9g8v60f7xw769r734b7w6n774jj2njn42444ip3zwsz3";
       type = "gem";
     };
-    version = "3.192.1";
+    version = "3.196.1";
   };
   aws-sdk-ec2 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "101jjqf912jwca119v86i4inlkf2gldmmhgdm2rdk5hqrwl4yrf4";
+      sha256 = "114xd77sb1wzxv1ys2dg7adzyfbfzy3k2x885slgbdwh6q9nby0f";
       type = "gem";
     };
-    version = "1.450.0";
+    version = "1.457.1";
   };
   aws-sdk-ec2instanceconnect = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mhqk2s8klp8djibrhgmh9lz9nr4rh1yy7y6c86if55r07i1912c";
+      sha256 = "1sjjyp90hhgbxmiw9sdscyfgjpy86m10dbr1dmxw3dmq244p3ilq";
       type = "gem";
     };
-    version = "1.38.0";
+    version = "1.40.0";
   };
   aws-sdk-iam = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zcvkal9ahwr84pz1cb3y9ylx3f74m4kgs4n160dfzf51b8m917l";
+      sha256 = "0a2kir61jwjpwwk5nld3daxkbc38ivszrxyjs9v320cq6hk6g80v";
       type = "gem";
     };
-    version = "1.96.0";
+    version = "1.98.0";
   };
   aws-sdk-kms = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cb0006xf5isq5drdwkvd6xz20886x3rzcj5qyly7g8gql5lc8aw";
+      sha256 = "0j6wlmn9h8l571ll7pamqxk5b3mg5ms65b85w0r1qjs3v1i5xfcd";
       type = "gem";
     };
-    version = "1.79.0";
+    version = "1.82.0";
   };
   aws-sdk-s3 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ibw2v56k8v2sw92cyliprq1xxfyavnd60yl6ach3f4qbp156xrn";
+      sha256 = "023h9xx65dd91z1sk9znhfwp4wr48imnnhdhvczv64m17r7ych4y";
       type = "gem";
     };
-    version = "1.147.0";
+    version = "1.151.0";
   };
   aws-sdk-ssm = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0drad0zka0kjayiy971vcl5dfp6j37wgga4xncya8w8xsrknh9s8";
+      sha256 = "1liyqnj8hjyrix96kbbqflr4bh3hg07jjcx5x6bsiiqsixblq4md";
       type = "gem";
     };
-    version = "1.166.0";
+    version = "1.169.0";
   };
   aws-sigv4 = {
     groups = ["default"];
@@ -214,20 +234,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ndamfaivnkhc6hy0yqyk2gkwr6f3bz6216lh74hsiiyk3axz445";
+      sha256 = "04rb3rp9bdxn1y3qiflfpj7ccwb8ghrfbydh5vfz1l9px3fpg41g";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.1.1";
   };
   bigdecimal = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0cq1c29zbkcxgdihqisirhcw76xc768z2zpd5vbccpq0l1lv76g7";
+      sha256 = "1gi7zqgmqwi5lizggs1jhc3zlwaqayy9rx2ah80sxy24bbnng558";
       type = "gem";
     };
-    version = "3.1.7";
+    version = "3.1.8";
   };
   bindata = {
     groups = ["default"];
@@ -309,6 +329,16 @@
     };
     version = "1.0.6";
   };
+  csv = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zfn40dvgjk1xv1z8l11hr9jfg3jncwsc9yhzsz4l4rivkpivg8b";
+      type = "gem";
+    };
+    version = "3.3.0";
+  };
   daemons = {
     groups = ["default"];
     platforms = [];
@@ -349,6 +379,16 @@
     };
     version = "0.6.20240107";
   };
+  drb = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h5kbj9hvg5hb3c7l425zpds0vb42phvln2knab8nmazg2zp5m79";
+      type = "gem";
+    };
+    version = "2.2.1";
+  };
   ed25519 = {
     groups = ["default"];
     platforms = [];
@@ -469,6 +509,16 @@
     };
     version = "0.2.0";
   };
+  getoptlong = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "198vy9dxyzibqdbw9jg8p2ljj9iknkyiqlyl229vz55rjxrz08zx";
+      type = "gem";
+    };
+    version = "0.2.1";
+  };
   gssapi = {
     groups = ["default"];
     platforms = [];
@@ -554,10 +604,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lbm33fpb3w06wd2231sg58dwlwgjsvym93m548ajvl6s3mfvpn7";
+      sha256 = "1ffix518y7976qih9k1lgnc17i3v6yrlh0a3mckpxdb4wc2vrp16";
       type = "gem";
     };
-    version = "1.14.4";
+    version = "1.14.5";
   };
   io-console = {
     groups = ["default"];
@@ -674,12 +724,12 @@
     platforms = [];
     source = {
       fetchSubmodules = false;
-      rev = "eac2a919309b9ec735cae13ceead0f4aa0e412e8";
-      sha256 = "1akiafmzmd5a3yx71m7nqxhlb6977yblbjxy2lds2qwf6yky9zni";
+      rev = "0dae49af4bc85231052e15fc97f8bfbf9ec56cf3";
+      sha256 = "1v19fvnw9f6l9qssl2434brqf086nymnpkx1llbkkbr4a3l3w2pm";
       type = "git";
       url = "https://github.com/rapid7/metasploit-framework";
     };
-    version = "6.4.9";
+    version = "6.4.13";
   };
   metasploit-model = {
     groups = ["default"];
@@ -746,10 +796,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07lq26b86giy3ha3fhrywk9r1ajhc2pm2mzj657jnpnbj1i6g17a";
+      sha256 = "1gkslxvkhh44s21rbjvka3zsvfxxrf5pcl6f75rv2vyrzzbgis7i";
       type = "gem";
     };
-    version = "5.22.3";
+    version = "5.23.1";
   };
   mqtt = {
     groups = ["default"];
@@ -791,6 +841,16 @@
     };
     version = "3.0.0";
   };
+  mutex_m = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ma093ayps1m92q845hmpk0dmadicvifkbf05rpq9pifhin0rvxn";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
   nessus_rest = {
     groups = ["default"];
     platforms = [];
@@ -806,10 +866,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zn7j2w0hc622ig0rslk4iy6yp3937dy9ibhyr1mwwx39n7paxaj";
+      sha256 = "1y0pzapcasfjayk4nydy04hnx11xmsv8jl8myizxhbpkdmrl10dc";
       type = "gem";
     };
-    version = "0.4.10";
+    version = "0.4.11";
   };
   net-ldap = {
     groups = ["default"];
@@ -876,10 +936,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15iwbiij52x6jhdbl0rkcldnhfndmsy0sbnsygkr9vhskfqrp72m";
+      sha256 = "017nbw87dpr4wyk81cgj8kxkxqgsgblrkxnmmadc77cg9gflrfal";
       type = "gem";
     };
-    version = "2.7.1";
+    version = "2.7.3";
   };
   nokogiri = {
     dependencies = ["mini_portile2" "racc"];
@@ -967,10 +1027,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0886fcc5bi0kc0rbma5fj3wa3hbg2nl7ivnbi2j995yzg36zq7xy";
+      sha256 = "0bwhm5b7f0ncazffxzlyql83khcgydx2ncav9k241gab4knkhb7l";
       type = "gem";
     };
-    version = "0.13.1";
+    version = "0.13.2";
   };
   pdf-reader = {
     groups = ["default"];
@@ -1017,10 +1077,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01b9662zd2x9bp4rdjfid07h09zxj7kvn7f5fghbqhzc625ap1dp";
+      sha256 = "021s7maw0c4d9a6s07vbmllrzqsj2sgmrwimlh8ffkvwqdjrld09";
       type = "gem";
     };
-    version = "1.7.3";
+    version = "1.8.0";
   };
   rack = {
     groups = ["default"];
@@ -1077,10 +1137,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08ga56kz6a37dnlmi7y45r19fcc7jzb62mrc3ifavbzggmhy7r62";
+      sha256 = "0sxki005rl1315mp78csayvfdx5zxjvwv8xmcfyjksgq27cimk5r";
       type = "gem";
     };
-    version = "7.0.8.1";
+    version = "7.0.8.3";
   };
   rake = {
     groups = ["default"];
@@ -1137,10 +1197,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xwf7i2kvgaxbpdqqkncv9dpfhlj55shig4sdzgy7kgbfj09mm03";
+      sha256 = "06rlp3wjcbwbgw3xlawclzzmj6ryn6ap65nh54x5yzgx0c3jlqqz";
       type = "gem";
     };
-    version = "0.5.2";
+    version = "0.5.7";
   };
   rex-arch = {
     groups = ["default"];
@@ -1167,10 +1227,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s5fz1fipk2x9grd8rj7n09wfmq78kdhw9fvrmgr9z52zi640xzs";
+      sha256 = "0468gxcwhzp5y7lahkf0cg4vyy01wb2fk6w1rx4fgh1l9330a64b";
       type = "gem";
     };
-    version = "0.1.31";
+    version = "0.1.32";
   };
   rex-encoder = {
     groups = ["default"];
@@ -1247,10 +1307,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qxc05f0xvradyp50vz8s1h9lzgh9c31nz8yq7r22bph03v71f0c";
+      sha256 = "02709z33zcbq2i3ca66b94n3aqbd8r6ib1dgb2fby1vk5nrg18p9";
       type = "gem";
     };
-    version = "0.1.11";
+    version = "0.1.12";
   };
   rex-registry = {
     groups = ["default"];
@@ -1307,10 +1367,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08wrqy8sgncsn6kcplw7bl6c2bmyj9fza7x77wrlwh1gza7pcjk4";
+      sha256 = "04icj61kn5bnd939km6y49ylv8sbkqb96jld91nbrijahawcf5yz";
       type = "gem";
     };
-    version = "0.2.57";
+    version = "0.2.58";
   };
   rex-zip = {
     groups = ["default"];
@@ -1327,10 +1387,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0";
+      sha256 = "0d8ivcirrrxpkpjc1c835wknc9s2fl54xpw08s177yfrh5ish209";
       type = "gem";
     };
-    version = "3.2.6";
+    version = "3.2.8";
   };
   rkelly-remix = {
     groups = ["default"];
@@ -1387,10 +1447,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fwk5hqaph37apa5zf1mg2n2wd5lkz3sgwl0f4ndhkv1vfxbb2ys";
+      sha256 = "1hw3hj2q0xkqr90snzrpiqfa7lsc5k4w6bgdj624vxkh7q0nnfw7";
       type = "gem";
     };
-    version = "3.3.5";
+    version = "3.3.8";
   };
   rubyntlm = {
     groups = ["default"];
@@ -1427,10 +1487,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06f7w6ph3bzzqk212yylfp4jfx275shgp9zg3xszbpv1ny2skp9m";
+      sha256 = "0a9c1mdy12y81ck7mcn9f9i2s2wwzjh1nr92ps354q517zq9dkh8";
       type = "gem";
     };
-    version = "0.2.1";
+    version = "0.2.3";
   };
   sinatra = {
     groups = ["default"];
@@ -1447,10 +1507,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15415lmz69jbzl6nch4q5l2jxv054676nk6y0vgy0g3iklmjrxvc";
+      sha256 = "073hd24qwx9j26cqbk0jma0kiajjv9fb8swv9rnz8j4mf0ygcxzs";
       type = "gem";
     };
-    version = "1.6.6";
+    version = "1.7.3";
   };
   sshkey = {
     groups = ["default"];
@@ -1472,6 +1532,16 @@
     };
     version = "0.2.5";
   };
+  strscan = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mamrl7pxacbc79ny5hzmakc9grbjysm3yy6119ppgsg44fsif01";
+      type = "gem";
+    };
+    version = "3.1.0";
+  };
   swagger-blocks = {
     groups = ["default"];
     platforms = [];
@@ -1552,26 +1622,6 @@
     };
     version = "1.2024.1";
   };
-  unf = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
-      type = "gem";
-    };
-    version = "0.1.4";
-  };
-  unf_ext = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1sf6bxvf6x8gihv6j63iakixmdddgls58cpxpg32chckb2l18qcj";
-      type = "gem";
-    };
-    version = "0.0.9.1";
-  };
   unix-crypt = {
     groups = ["default"];
     platforms = [];
@@ -1677,9 +1727,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1m67qmsak3x8ixs8rb971azl3l7wapri65pmbf5z886h46q63f1d";
+      sha256 = "0ayraiqfhhjzpyr4yxp035002lq78ip1zhr0ix87rn3rqpnsrn3h";
       type = "gem";
     };
-    version = "2.6.13";
+    version = "2.6.14";
   };
 }
diff --git a/pkgs/tools/security/minica/default.nix b/pkgs/tools/security/minica/default.nix
index e7a05412303ee..8c351e1803618 100644
--- a/pkgs/tools/security/minica/default.nix
+++ b/pkgs/tools/security/minica/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "minica";
-  version = "1.0.2";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "jsha";
     repo = "minica";
     rev = "v${version}";
-    sha256 = "sha256-3p6rUFFiWXhX9BBbxqWxRoyRceexvNnqcFCyNi5HoaA=";
+    sha256 = "sha256-YUeP3xBoZzonJYfEAOWZYCTFwOxFWySW7ezvpMLNZ1I=";
   };
 
   vendorHash = null;
@@ -19,7 +19,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "A simple tool for generating self signed certificates";
+    description = "Simple tool for generating self signed certificates";
     mainProgram = "minica";
     longDescription = ''
       Minica is a simple CA intended for use in situations where the CA operator
diff --git a/pkgs/tools/security/minio-certgen/default.nix b/pkgs/tools/security/minio-certgen/default.nix
index fed6bdca2c546..2379de92f430c 100644
--- a/pkgs/tools/security/minio-certgen/default.nix
+++ b/pkgs/tools/security/minio-certgen/default.nix
@@ -2,19 +2,19 @@
 
 buildGoModule rec {
   pname = "minio-certgen";
-  version = "1.2.1";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "certgen";
     rev = "v${version}";
-    sha256 = "sha256-qi+SeNLW/jE2dGar4Lf16TKRT3ZTmWB/j8EsnoyrdxI=";
+    sha256 = "sha256-bYZfQeqPqroMkqJOqHri3l7xscEK9ml/oNLVPBVSDKk=";
   };
 
   vendorHash = null;
 
   meta = with lib; {
-    description = "A simple Minio tool to generate self-signed certificates, and provides SAN certificates with DNS and IP entries";
+    description = "Simple Minio tool to generate self-signed certificates, and provides SAN certificates with DNS and IP entries";
     downloadPage = "https://github.com/minio/certgen";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bryanasdev000 ];
diff --git a/pkgs/tools/security/minisign/default.nix b/pkgs/tools/security/minisign/default.nix
index aaa280f40e90b..45886a3803be7 100644
--- a/pkgs/tools/security/minisign/default.nix
+++ b/pkgs/tools/security/minisign/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libsodium ];
 
   meta = with lib; {
-    description = "A simple tool for signing files and verifying signatures";
+    description = "Simple tool for signing files and verifying signatures";
     longDescription = ''
       minisign uses public key cryptography to help facilitate secure (but not
       necessarily private) file transfer, e.g., of software artefacts. minisign
diff --git a/pkgs/tools/security/mkrand/default.nix b/pkgs/tools/security/mkrand/default.nix
index b0ebe7e521fa7..38ef22117fa33 100644
--- a/pkgs/tools/security/mkrand/default.nix
+++ b/pkgs/tools/security/mkrand/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "A Digital Random Bit Generator";
+    description = "Digital Random Bit Generator";
     mainProgram = "mkrand";
     longDescription = "MKRAND is a utility for generating random information.";
     homepage = "https://github.com/mknight-tag/MKRAND/";
diff --git a/pkgs/tools/security/mpw/default.nix b/pkgs/tools/security/mpw/default.nix
index 25c71eb046db7..4ee765bdbdd1b 100644
--- a/pkgs/tools/security/mpw/default.nix
+++ b/pkgs/tools/security/mpw/default.nix
@@ -56,7 +56,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A stateless password management solution";
+    description = "Stateless password management solution";
     mainProgram = "mpw";
     homepage = "https://masterpasswordapp.com/";
     license = licenses.gpl3;
diff --git a/pkgs/tools/security/networkminer/default.nix b/pkgs/tools/security/networkminer/default.nix
index 6e762ef543fef..f83c6b3e2415e 100644
--- a/pkgs/tools/security/networkminer/default.nix
+++ b/pkgs/tools/security/networkminer/default.nix
@@ -62,7 +62,7 @@ buildDotnetModule rec {
   '';
 
   meta = with lib; {
-    description = "The Open Source Network Forensic Analysis Tool (NFAT)";
+    description = "Open Source Network Forensic Analysis Tool (NFAT)";
     homepage = "https://www.netresec.com/?page=NetworkMiner";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ emilytrau ];
diff --git a/pkgs/tools/security/nitrokey-app2/default.nix b/pkgs/tools/security/nitrokey-app2/default.nix
index 8e97ce02af4c9..5477a603d4afd 100644
--- a/pkgs/tools/security/nitrokey-app2/default.nix
+++ b/pkgs/tools/security/nitrokey-app2/default.nix
@@ -1,49 +1,27 @@
 { lib
 , stdenv
 , python3
-, fetchPypi
 , fetchFromGitHub
 , wrapQtAppsHook
 , qtbase
 , qtwayland
 }:
 
-let
-  python = python3.override {
-    packageOverrides = self: super: {
-      pynitrokey = super.pynitrokey.overridePythonAttrs (old: rec {
-        version = "0.4.45";
-        src = fetchPypi {
-          inherit (old) pname;
-          inherit version;
-          hash = "sha256-iY4ThrmXP7pEjTYYU4lePVAbuJGTdHX3iKswXzuf7W8=";
-        };
-      });
-    };
-  };
-in python.pkgs.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "nitrokey-app2";
-  version = "2.2.2";
+  version = "2.3.0";
   pyproject = true;
 
-  disabled = python.pythonOlder "3.9";
+  disabled = python3.pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "Nitrokey";
     repo = "nitrokey-app2";
     rev = "v${version}";
-    hash = "sha256-MiyfmsrKZRoe7YMEjR1LHPesfJh6+dcSydoEAgrALJ8=";
+    hash = "sha256-BSq3ezNt6btQUO1hMVw9bN3VCyUOUhfRFJcHDGkIm6Q=";
   };
 
-  # https://github.com/Nitrokey/nitrokey-app2/issues/152
-  #
-  # pythonRelaxDepsHook does not work here, because it runs in postBuild and
-  # only modifies the dependencies in the built distribution.
-  postPatch = ''
-    substituteInPlace pyproject.toml --replace 'pynitrokey = "' 'pynitrokey = ">='
-  '';
-
-  nativeBuildInputs = with python.pkgs; [
+  nativeBuildInputs = with python3.pkgs; [
     poetry-core
     wrapQtAppsHook
   ];
@@ -52,7 +30,7 @@ in python.pkgs.buildPythonApplication rec {
     qtwayland
   ];
 
-  propagatedBuildInputs = with python.pkgs; [
+  propagatedBuildInputs = with python3.pkgs; [
     pynitrokey
     pyudev
     pyside6
diff --git a/pkgs/tools/security/nmap-formatter/default.nix b/pkgs/tools/security/nmap-formatter/default.nix
index ade602a65375b..7b2fca55d954e 100644
--- a/pkgs/tools/security/nmap-formatter/default.nix
+++ b/pkgs/tools/security/nmap-formatter/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "nmap-formatter";
-  version = "2.1.6";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "vdjagilev";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-40ix4D/f63Q5cqVmBvpSmbK2KNXiYLdv/xXBNPJXfac=";
+    hash = "sha256-JqSsFEZmmVOnNza9xh+JrlWxE4XdA1GSX9yw2NIPYhQ=";
   };
 
-  vendorHash = "sha256-OUhvQwC7EJF7CIM7NHCs0TqRTZHTiDupkfYREPaxpXo=";
+  vendorHash = "sha256-MiBY4kWBZM2ZcW3SMqQ+7gKFnFt78wMI9S3OfCgth5g=";
 
   meta = with lib; {
     description = "Tool that allows you to convert nmap output";
diff --git a/pkgs/tools/security/nmap/default.nix b/pkgs/tools/security/nmap/default.nix
index 8d5b3d90e5c64..9280abbcfb5d0 100644
--- a/pkgs/tools/security/nmap/default.nix
+++ b/pkgs/tools/security/nmap/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   doCheck = false; # fails 3 tests, probably needs the net
 
   meta = with lib; {
-    description = "A free and open source utility for network discovery and security auditing";
+    description = "Free and open source utility for network discovery and security auditing";
     homepage    = "http://www.nmap.org";
     license     = licenses.gpl2Only;
     platforms   = platforms.all;
diff --git a/pkgs/tools/security/notary/default.nix b/pkgs/tools/security/notary/default.nix
index f1fed4806eb41..be147369ffe29 100644
--- a/pkgs/tools/security/notary/default.nix
+++ b/pkgs/tools/security/notary/default.nix
@@ -36,7 +36,7 @@ buildGoPackage rec {
   '';
 
   meta = with lib; {
-    description = "A project that allows anyone to have trust over arbitrary collections of data";
+    description = "Project that allows anyone to have trust over arbitrary collections of data";
     mainProgram = "notary";
     longDescription = ''
       The Notary project comprises a server and a client for running and
diff --git a/pkgs/tools/security/notation/default.nix b/pkgs/tools/security/notation/default.nix
index f9318296060f5..3afd7bd27f2ff 100644
--- a/pkgs/tools/security/notation/default.nix
+++ b/pkgs/tools/security/notation/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "notation";
-  version = "1.1.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "notaryproject";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-MJBFdtx+HkPCN1SIohKOy33BW746GNN2fWkr7TIuBmk=";
+    hash = "sha256-Pi4Ddlx8G4dRDz79yTiPBf6gf0wsvoE9CuyeVGrHst0=";
   };
 
-  vendorHash = "sha256-USkufc1dG4eyRfRJHSX4mVZHnvOc5onHenF98Aedac4=";
+  vendorHash = "sha256-REJPSBLXzIPAmxwzckufTqJvZCWUUkJLBmHTx2nv9QM=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/tools/security/nsjail/default.nix b/pkgs/tools/security/nsjail/default.nix
index 23b938a83f9a9..dbf62872d21fa 100644
--- a/pkgs/tools/security/nsjail/default.nix
+++ b/pkgs/tools/security/nsjail/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A light-weight process isolation tool, making use of Linux namespaces and seccomp-bpf syscall filters";
+    description = "Light-weight process isolation tool, making use of Linux namespaces and seccomp-bpf syscall filters";
     homepage    = "https://nsjail.dev/";
     changelog   = "https://github.com/google/nsjail/releases/tag/${version}";
     license     = licenses.asl20;
diff --git a/pkgs/tools/security/nuclei/default.nix b/pkgs/tools/security/nuclei/default.nix
index 259680693dac5..29b8a5547cfbd 100644
--- a/pkgs/tools/security/nuclei/default.nix
+++ b/pkgs/tools/security/nuclei/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "nuclei";
-  version = "3.2.7";
+  version = "3.2.9";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "nuclei";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sXrDmtuKfFeYAJnxIZGQiYiAjx40YQLfnMQ8YUCkZ7s=";
+    hash = "sha256-4YfdpM+F2hP88GbB5ct2dla/balbt8uQcJSUyJut99U=";
   };
 
-  vendorHash = "sha256-PXa8Fd7LE6uebpep1/HV2EuJdzj8cxeiZ4DYALIoh2A=";
+  vendorHash = "sha256-zonoIvDbSHpURKPJoTfL2SrpiIAQkh0oAGEDEQiH35M=";
 
   subPackages = [ "cmd/nuclei/" ];
 
diff --git a/pkgs/tools/security/oauth2c/default.nix b/pkgs/tools/security/oauth2c/default.nix
index 292ac255b3a04..1289eb05f2154 100644
--- a/pkgs/tools/security/oauth2c/default.nix
+++ b/pkgs/tools/security/oauth2c/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "oauth2c";
-  version = "1.13.0";
+  version = "1.14.0";
 
   src = fetchFromGitHub {
     owner = "cloudentity";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-NNVHEV8qnPv+xXFzPsh1V+fSOQZxpADCRPIUsak5M5M=";
+    hash = "sha256-sxaInCsW3MKOYV3TscJYGwzSncg5TUW9YVheuxoO1h4=";
   };
 
-  vendorHash = "sha256-x6cb19rKJXm+EIxJeykhpFmUYOPb/VljzCOVjorP5MQ=";
+  vendorHash = "sha256-PdLh/J0HUvr1JjW/ew5PQe9TJNykI4tJhlRoVjRT/hg=";
 
   doCheck = false; # tests want to talk to oauth2c.us.authz.cloudentity.io
 
diff --git a/pkgs/tools/security/opensc/default.nix b/pkgs/tools/security/opensc/default.nix
index 8d8246028f7c3..b767261b4e0a8 100644
--- a/pkgs/tools/security/opensc/default.nix
+++ b/pkgs/tools/security/opensc/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, zlib, readline, openssl
 , libiconv, pcsclite, libassuan, libXt
-, fetchpatch
 , docbook_xsl, libxslt, docbook_xml_dtd_412
 , Carbon, PCSC, buildPackages
 , withApplePCSC ? stdenv.isDarwin
diff --git a/pkgs/tools/security/osv-scanner/default.nix b/pkgs/tools/security/osv-scanner/default.nix
index 3196ebe5706b9..32be96f853e72 100644
--- a/pkgs/tools/security/osv-scanner/default.nix
+++ b/pkgs/tools/security/osv-scanner/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "osv-scanner";
-  version = "1.7.3";
+  version = "1.7.4";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "osv-scanner";
     rev = "refs/tags/v${version}";
-    hash = "sha256-tagTrjsYPT5csm841HvPbtUsbsaapS8JuHwsPTZWheA=";
+    hash = "sha256-Z5dRXVbisVoTeS/KVS2tnpaL0i9DMFZYu+vHGWQ1Mvc=";
   };
 
-  vendorHash = "sha256-yu6qefmTiMRGeyOkiQVOtXQu3BGE2SBHerWNlDDlZxw=";
+  vendorHash = "sha256-6soB9XLh+ez+iGrnDYh1qrz94KQCoUJPiQA8Cv0oz+o=";
 
   subPackages = [
     "cmd/osv-scanner"
diff --git a/pkgs/tools/security/pass/extensions/checkup.nix b/pkgs/tools/security/pass/extensions/checkup.nix
index b1cff6a20724b..d275c19166f41 100644
--- a/pkgs/tools/security/pass/extensions/checkup.nix
+++ b/pkgs/tools/security/pass/extensions/checkup.nix
@@ -33,7 +33,7 @@ in stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A pass extension to check against the Have I been pwned API to see if your passwords are publicly leaked or not";
+    description = "Pass extension to check against the Have I been pwned API to see if your passwords are publicly leaked or not";
     homepage = "https://github.com/etu/pass-checkup";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ etu ];
diff --git a/pkgs/tools/security/pass/extensions/file.nix b/pkgs/tools/security/pass/extensions/file.nix
index 1c07e289ad28b..962ab2bd2a407 100644
--- a/pkgs/tools/security/pass/extensions/file.nix
+++ b/pkgs/tools/security/pass/extensions/file.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   installFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "A pass extension that allows to add files to password-store";
+    description = "Pass extension that allows to add files to password-store";
     homepage = "https://github.com/dvogt23/pass-file";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ taranarmo ];
diff --git a/pkgs/tools/security/pass/extensions/import.nix b/pkgs/tools/security/pass/extensions/import.nix
index 0be41525ea289..badc58361d535 100644
--- a/pkgs/tools/security/pass/extensions/import.nix
+++ b/pkgs/tools/security/pass/extensions/import.nix
@@ -1,6 +1,5 @@
 { lib
 , fetchurl
-, fetchpatch
 , python3Packages
 , gnupg
 , pass
diff --git a/pkgs/tools/security/pass/extensions/otp.nix b/pkgs/tools/security/pass/extensions/otp.nix
index 15f075ccec402..87df97dcde72a 100644
--- a/pkgs/tools/security/pass/extensions/otp.nix
+++ b/pkgs/tools/security/pass/extensions/otp.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
                  ];
 
   meta = with lib; {
-    description = "A pass extension for managing one-time-password (OTP) tokens";
+    description = "Pass extension for managing one-time-password (OTP) tokens";
     homepage = "https://github.com/tadfisher/pass-otp";
     license = licenses.gpl3;
     maintainers = with maintainers; [ jwiegley tadfisher toonn ];
diff --git a/pkgs/tools/security/pass/rofi-pass.nix b/pkgs/tools/security/pass/rofi-pass.nix
index 2c1e1ad5b7d2a..bd2cdbfbbbab7 100644
--- a/pkgs/tools/security/pass/rofi-pass.nix
+++ b/pkgs/tools/security/pass/rofi-pass.nix
@@ -29,13 +29,13 @@ assert lib.assertOneOf "backend" backend [ "x11" "wayland" ];
 
 stdenv.mkDerivation {
   pname = "rofi-pass";
-  version = "2.0.2-unstable-2024-02-13";
+  version = "2.0.2-unstable-2024-06-16";
 
   src = fetchFromGitHub {
     owner = "carnager";
     repo = "rofi-pass";
-    rev = "8aa6b9293a8f0af267425326fa966966ca42085e";
-    hash = "sha256-g/AuLYj0yvLCXFR3y9GbMiE6hDCPBeuFM145c2Ukvys=";
+    rev = "37c4c862deb133a85b7d72989acfdbd2ef16b8ad";
+    hash = "sha256-1lPNj47vTPLBK7mVm+PngV8C/ZsjJ2EN4ffXGU2TlQo=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -83,7 +83,7 @@ stdenv.mkDerivation {
   passthru.updateScript = unstableGitUpdater { };
 
   meta = {
-    description = "A script to make rofi work with password-store";
+    description = "Script to make rofi work with password-store";
     mainProgram = "rofi-pass";
     homepage = "https://github.com/carnager/rofi-pass";
     license = lib.licenses.gpl3;
diff --git a/pkgs/tools/security/pass/wofi-pass.nix b/pkgs/tools/security/pass/wofi-pass.nix
index 9db6a7ffda35e..ef48f335b5fdf 100644
--- a/pkgs/tools/security/pass/wofi-pass.nix
+++ b/pkgs/tools/security/pass/wofi-pass.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A script to make wofi work with password-store";
+    description = "Script to make wofi work with password-store";
     homepage = "https://github.com/schmidtandreas/wofi-pass";
     maintainers = with lib.maintainers; [ akechishiro ];
     license = lib.licenses.gpl2Plus;
diff --git a/pkgs/tools/security/pass2csv/default.nix b/pkgs/tools/security/pass2csv/default.nix
index 101af2e7aa947..7071ad9fb219d 100644
--- a/pkgs/tools/security/pass2csv/default.nix
+++ b/pkgs/tools/security/pass2csv/default.nix
@@ -27,7 +27,7 @@ buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "Export pass(1), \"the standard unix password manager\", to CSV";
+    description = "Export pass(1), \"Standard unix password manager\", to CSV";
     mainProgram = "pass2csv";
     homepage = "https://github.com/reinefjord/pass2csv";
     license = licenses.mit;
diff --git a/pkgs/tools/security/pgpdump/default.nix b/pkgs/tools/security/pgpdump/default.nix
index 31a1c506f3295..5a9b0d276e0c6 100644
--- a/pkgs/tools/security/pgpdump/default.nix
+++ b/pkgs/tools/security/pgpdump/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   buildInputs = lib.optionals supportCompressedPackets [ zlib bzip2 ];
 
   meta = with lib; {
-    description = "A PGP packet visualizer";
+    description = "PGP packet visualizer";
     mainProgram = "pgpdump";
     longDescription = ''
       pgpdump is a PGP packet visualizer which displays the packet format of
diff --git a/pkgs/tools/security/phrasendrescher/default.nix b/pkgs/tools/security/phrasendrescher/default.nix
index d4f7242b2896f..2f6017fd10ec4 100644
--- a/pkgs/tools/security/phrasendrescher/default.nix
+++ b/pkgs/tools/security/phrasendrescher/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--with-plugins" ];
 
   meta = with lib; {
-    description = "A modular and multi processing pass phrase cracking tool";
+    description = "Modular and multi processing pass phrase cracking tool";
     homepage = "https://leidecker.info/projects/phrasendrescher/index.shtml";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
diff --git a/pkgs/tools/security/pinentry/default.nix b/pkgs/tools/security/pinentry/default.nix
index 756b2a67565a4..bdbbd55e9607c 100644
--- a/pkgs/tools/security/pinentry/default.nix
+++ b/pkgs/tools/security/pinentry/default.nix
@@ -1,23 +1,27 @@
-{ stdenv
-, lib
-, fetchurl
-, fetchpatch
-, pkg-config
-, autoreconfHook
-, wrapGAppsHook3
-, libgpg-error
-, libassuan
-, libsForQt5
-, ncurses
-, gtk2
-, gcr
-, withLibsecret ? true
-, libsecret
+{
+  stdenv,
+  lib,
+  fetchurl,
+  fetchpatch,
+  pkg-config,
+  autoreconfHook,
+  wrapGAppsHook3,
+  libgpg-error,
+  libassuan,
+  libsForQt5,
+  qt6,
+  ncurses,
+  gtk2,
+  gcr,
+  withLibsecret ? true,
+  libsecret,
 }:
 
 let
   flavorInfo = {
-    tty = { flag = "tty"; };
+    tty = {
+      flag = "tty";
+    };
     curses = {
       flag = "curses";
       buildInputs = [ ncurses ];
@@ -31,52 +35,70 @@ let
       buildInputs = [ gcr ];
       nativeBuildInputs = [ wrapGAppsHook3 ];
     };
+    qt5 = {
+      flag = "qt5";
+      buildInputs = [
+        libsForQt5.qtbase
+        libsForQt5.kwayland
+        libsForQt5.qtx11extras
+      ];
+      nativeBuildInputs = [ libsForQt5.wrapQtAppsHook ];
+    };
     qt = {
       flag = "qt";
-      buildInputs = [ libsForQt5.qtbase ];
-      nativeBuildInputs = [ libsForQt5.wrapQtAppsHook ];
+      buildInputs = [
+        qt6.qtbase
+        qt6.qtwayland
+      ];
+      nativeBuildInputs = [ qt6.wrapQtAppsHook ];
+    };
+    emacs = {
+      flag = "emacs";
     };
-    emacs = { flag = "emacs"; };
   };
 
-  buildPinentry = pinentryExtraPname: buildFlavors:
+  buildPinentry =
+    pinentryExtraPname: buildFlavors:
     let
-      enableFeaturePinentry = f:
-        lib.enableFeature (lib.elem f buildFlavors) ("pinentry-" + flavorInfo.${f}.flag);
+      enableFeaturePinentry =
+        f: lib.enableFeature (lib.elem f buildFlavors) ("pinentry-" + flavorInfo.${f}.flag);
 
       pinentryMkDerivation =
-        if (lib.elem "qt" buildFlavors)
-        then libsForQt5.mkDerivation
-        else stdenv.mkDerivation;
-
+        if (lib.elem "qt5" buildFlavors) then libsForQt5.mkDerivation else stdenv.mkDerivation;
     in
     pinentryMkDerivation rec {
       pname = "pinentry-${pinentryExtraPname}";
-      version = "1.2.1";
+      version = "1.3.0";
 
       src = fetchurl {
         url = "mirror://gnupg/pinentry/pinentry-${version}.tar.bz2";
-        hash = "sha256-RXoYXlqFI4+5RalV3GNSq5YtyLSHILYvyfpIx1QKQGc=";
+        hash = "sha256-mzzVIm51l/L97TmaO8ZZkjNRU2VZ6dsIJpgbyjFklN4=";
       };
 
-      nativeBuildInputs = [ pkg-config autoreconfHook ]
-        ++ lib.concatMap (f: flavorInfo.${f}.nativeBuildInputs or [ ]) buildFlavors;
+      nativeBuildInputs = [
+        pkg-config
+        autoreconfHook
+      ] ++ lib.concatMap (f: flavorInfo.${f}.nativeBuildInputs or [ ]) buildFlavors;
 
-      buildInputs = [ libgpg-error libassuan ]
+      buildInputs =
+        [
+          libgpg-error
+          libassuan
+        ]
         ++ lib.optional withLibsecret libsecret
         ++ lib.concatMap (f: flavorInfo.${f}.buildInputs or [ ]) buildFlavors;
 
       dontWrapGApps = true;
       dontWrapQtApps = true;
 
-      patches = [
-        ./autoconf-ar.patch
-      ] ++ lib.optionals (lib.elem "gtk2" buildFlavors) [
-        (fetchpatch {
-          url = "https://salsa.debian.org/debian/pinentry/raw/debian/1.1.0-1/debian/patches/0007-gtk2-When-X11-input-grabbing-fails-try-again-over-0..patch";
-          sha256 = "15r1axby3fdlzz9wg5zx7miv7gqx2jy4immaw4xmmw5skiifnhfd";
-        })
-      ];
+      patches =
+        [ ./autoconf-ar.patch ]
+        ++ lib.optionals (lib.elem "gtk2" buildFlavors) [
+          (fetchpatch {
+            url = "https://salsa.debian.org/debian/pinentry/raw/debian/1.1.0-1/debian/patches/0007-gtk2-When-X11-input-grabbing-fails-try-again-over-0..patch";
+            sha256 = "15r1axby3fdlzz9wg5zx7miv7gqx2jy4immaw4xmmw5skiifnhfd";
+          })
+        ];
 
       configureFlags = [
         "--with-libgpg-error-prefix=${libgpg-error.dev}"
@@ -87,35 +109,76 @@ let
       postInstall =
         lib.optionalString (lib.elem "gnome3" buildFlavors) ''
           wrapGApp $out/bin/pinentry-gnome3
-        '' + lib.optionalString (lib.elem "qt" buildFlavors) ''
+        ''
+        + lib.optionalString (lib.elem "qt5" buildFlavors) ''
+          wrapQtApp $out/bin/pinentry-qt5
+          ln -sf $out/bin/pinentry-qt5 $out/bin/pinentry-qt
+        ''
+        + lib.optionalString (lib.elem "qt" buildFlavors) ''
           wrapQtApp $out/bin/pinentry-qt
         '';
 
-      passthru = { flavors = buildFlavors; };
+      passthru = {
+        flavors = buildFlavors;
+      };
 
-      meta = with lib; {
+      meta = {
         homepage = "https://gnupg.org/software/pinentry/index.html";
         description = "GnuPG’s interface to passphrase input";
-        license = licenses.gpl2Plus;
+        license = lib.licenses.gpl2Plus;
         platforms =
-          if elem "gnome3" buildFlavors then platforms.linux else
-          if elem "qt" buildFlavors then (remove "aarch64-darwin" platforms.all) else
-          platforms.all;
+          if lib.elem "gnome3" buildFlavors then
+            lib.platforms.linux
+          else if (lib.elem "qt5" buildFlavors || lib.elem "qt" buildFlavors) then
+            (lib.remove "aarch64-darwin" lib.platforms.all)
+          else
+            lib.platforms.all;
         longDescription = ''
           Pinentry provides a console and (optional) GTK and Qt GUIs allowing users
           to enter a passphrase when `gpg` or `gpg2` is run and needs it.
         '';
-        maintainers = with maintainers; [ fpletz ];
+        maintainers = with lib.maintainers; [ fpletz ];
         mainProgram = "pinentry";
       };
     };
 in
 {
-  pinentry-curses = buildPinentry "curses" [ "curses" "tty" ];
-  pinentry-emacs = buildPinentry "emacs" [ "emacs" "curses" "tty" ];
-  pinentry-gnome3 = buildPinentry "gnome3" [ "gnome3" "curses" "tty" ];
-  pinentry-gtk2 = buildPinentry "gtk2" [ "gtk2" "curses" "tty" ];
-  pinentry-qt = buildPinentry "qt" [ "qt" "curses" "tty" ];
+  pinentry-curses = buildPinentry "curses" [
+    "curses"
+    "tty"
+  ];
+  pinentry-emacs = buildPinentry "emacs" [
+    "emacs"
+    "curses"
+    "tty"
+  ];
+  pinentry-gnome3 = buildPinentry "gnome3" [
+    "gnome3"
+    "curses"
+    "tty"
+  ];
+  pinentry-gtk2 = buildPinentry "gtk2" [
+    "gtk2"
+    "curses"
+    "tty"
+  ];
+  pinentry-qt5 = buildPinentry "qt5" [
+    "qt5"
+    "curses"
+    "tty"
+  ];
+  pinentry-qt = buildPinentry "qt" [
+    "qt"
+    "curses"
+    "tty"
+  ];
   pinentry-tty = buildPinentry "tty" [ "tty" ];
-  pinentry-all = buildPinentry "all" [ "curses" "tty" "gtk2" "gnome3" "qt" "emacs" ];
+  pinentry-all = buildPinentry "all" [
+    "curses"
+    "tty"
+    "gtk2"
+    "gnome3"
+    "qt"
+    "emacs"
+  ];
 }
diff --git a/pkgs/tools/security/plasma-pass/default.nix b/pkgs/tools/security/plasma-pass/default.nix
index 9475b2a4a099d..a2b0816dc2386 100644
--- a/pkgs/tools/security/plasma-pass/default.nix
+++ b/pkgs/tools/security/plasma-pass/default.nix
@@ -31,7 +31,7 @@ mkDerivation rec {
   nativeBuildInputs = [ cmake extra-cmake-modules ];
 
   meta = with lib; {
-    description = "A Plasma applet to access passwords from pass, the standard UNIX password manager";
+    description = "Plasma applet to access passwords from pass, the standard UNIX password manager";
     homepage = "https://invent.kde.org/plasma/plasma-pass";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ matthiasbeyer ];
diff --git a/pkgs/tools/security/please/default.nix b/pkgs/tools/security/please/default.nix
index 2ecbc9ab30352..822cdb54cfd34 100644
--- a/pkgs/tools/security/please/default.nix
+++ b/pkgs/tools/security/please/default.nix
@@ -35,7 +35,7 @@ rustPlatform.buildRustPackage rec {
   passthru.tests = { inherit (nixosTests) please; };
 
   meta = with lib; {
-    description = "A polite regex-first sudo alternative";
+    description = "Polite regex-first sudo alternative";
     longDescription = ''
       Delegate accurate least privilege access with ease. Express easily with a
       regex and expose only what is needed and nothing more. Or validate file
diff --git a/pkgs/tools/security/proxmark3/default.nix b/pkgs/tools/security/proxmark3/default.nix
index ee37f938b5d99..94d9d76b92889 100644
--- a/pkgs/tools/security/proxmark3/default.nix
+++ b/pkgs/tools/security/proxmark3/default.nix
@@ -26,13 +26,13 @@
 assert withBlueshark -> stdenv.hostPlatform.isLinux;
 stdenv.mkDerivation (finalAttrs: {
   pname = "proxmark3";
-  version = "4.18341";
+  version = "4.18589";
 
   src = fetchFromGitHub {
     owner = "RfidResearchGroup";
     repo = "proxmark3";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-YeBrrzCiDgl4WdhWYatm9sOAtBAECIv/f+OzB/RTdeg=";
+    hash = "sha256-e/FoyaHU/uH2yovEqtkrCXwHMlF94Acxl2lUA422Pig=";
   };
 
   patches = [
diff --git a/pkgs/tools/security/quark-engine/default.nix b/pkgs/tools/security/quark-engine/default.nix
index 58236cc8b30ab..c01704d0add6c 100644
--- a/pkgs/tools/security/quark-engine/default.nix
+++ b/pkgs/tools/security/quark-engine/default.nix
@@ -7,14 +7,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "quark-engine";
-  version = "24.5.1";
+  version = "24.6.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "quark-engine";
     repo = "quark-engine";
     rev = "refs/tags/v${version}";
-    hash = "sha256-W1UeTiyyYZzxu3XQ/6VkTvEyqPWl1Du6QutuoPhaSfs=";
+    hash = "sha256-DDtDNa/QZ5n5ASN6Fu/nnVEQ/9Vu5HSKXKvbrg6Bsjs=";
   };
 
   build-system = with python3.pkgs; [ setuptools ];
diff --git a/pkgs/tools/security/radamsa/default.nix b/pkgs/tools/security/radamsa/default.nix
index 1903b435b770a..e619a248137c5 100644
--- a/pkgs/tools/security/radamsa/default.nix
+++ b/pkgs/tools/security/radamsa/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "A general purpose fuzzer";
+    description = "General purpose fuzzer";
     mainProgram = "radamsa";
     longDescription = "Radamsa is a general purpose data fuzzer. It reads data from given sample files, or standard input if none are given, and outputs modified data. It is usually used to generate malformed data for testing programs.";
     homepage =  "https://gitlab.com/akihe/radamsa";
diff --git a/pkgs/tools/security/rblake2sum/default.nix b/pkgs/tools/security/rblake2sum/default.nix
index 8f2a868363560..9052ffb68a96d 100644
--- a/pkgs/tools/security/rblake2sum/default.nix
+++ b/pkgs/tools/security/rblake2sum/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage {
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
   meta = with lib; {
-    description = "A recursive blake2 digest (hash) of a file-system path";
+    description = "Recursive blake2 digest (hash) of a file-system path";
     homepage = "https://github.com/crev-dev/rblake2sum";
     license = [ licenses.mit ];
     maintainers = with maintainers; [ dpc ];
diff --git a/pkgs/tools/security/rblake3sum/default.nix b/pkgs/tools/security/rblake3sum/default.nix
index 341dcd06fb6a7..62f290cdf3208 100644
--- a/pkgs/tools/security/rblake3sum/default.nix
+++ b/pkgs/tools/security/rblake3sum/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage {
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
   meta = with lib; {
-    description = "A recursive blake3 digest (hash) of a file-system path";
+    description = "Recursive blake3 digest (hash) of a file-system path";
     homepage = "https://github.com/rustshop/rblake3sum";
     license = [ licenses.mit ];
     maintainers = with maintainers; [ dpc ];
diff --git a/pkgs/tools/security/ripasso/cursive.nix b/pkgs/tools/security/ripasso/cursive.nix
index faef4dbff48a2..ac4f176950df3 100644
--- a/pkgs/tools/security/ripasso/cursive.nix
+++ b/pkgs/tools/security/ripasso/cursive.nix
@@ -72,7 +72,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A simple password manager written in Rust";
+    description = "Simple password manager written in Rust";
     mainProgram = "ripasso-cursive";
     homepage = "https://github.com/cortex/ripasso";
     license = licenses.gpl3;
diff --git a/pkgs/tools/security/rng-tools/default.nix b/pkgs/tools/security/rng-tools/default.nix
index a5470f05613b4..f17615eaa1dd5 100644
--- a/pkgs/tools/security/rng-tools/default.nix
+++ b/pkgs/tools/security/rng-tools/default.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rng-tools";
-  version = "6.16";
+  version = "6.17";
 
   src = fetchFromGitHub {
     owner = "nhorman";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-9pXQhG2nbu6bq4BnBgEOyyUBNkQTI5RhWmJIoLtFU+c=";
+    hash = "sha256-wqJvLvxmNG2nb5P525w25Y8byUUJi24QIHNJomCKeG8=";
   };
 
   nativeBuildInputs = [ autoreconfHook libtool pkg-config ];
@@ -77,7 +77,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A random number generator daemon";
+    description = "Random number generator daemon";
     homepage = "https://github.com/nhorman/rng-tools";
     changelog = "https://github.com/nhorman/rng-tools/releases/tag/v${version}";
     license = licenses.gpl2Plus;
diff --git a/pkgs/tools/security/ronin/default.nix b/pkgs/tools/security/ronin/default.nix
index 1bf98ae9eafcc..ab9ec0cda4c98 100644
--- a/pkgs/tools/security/ronin/default.nix
+++ b/pkgs/tools/security/ronin/default.nix
@@ -23,7 +23,7 @@ bundlerEnv {
   passthru.updateScript = bundlerUpdateScript "ronin";
 
   meta = with lib; {
-    description = "A free and Open Source Ruby toolkit for security research and development";
+    description = "Free and Open Source Ruby toolkit for security research and development";
     homepage    = "https://ronin-rb.dev";
     license     = licenses.gpl3Plus;
     maintainers = with maintainers; [ Ch1keen ];
diff --git a/pkgs/tools/security/rsign2/default.nix b/pkgs/tools/security/rsign2/default.nix
index 86f2d6d843389..10a526a7b2cb5 100644
--- a/pkgs/tools/security/rsign2/default.nix
+++ b/pkgs/tools/security/rsign2/default.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-xqNFJFNV9mIVxzyQvhv5QwHVcXLuH76VYFAsgp5hW+w=";
 
   meta = with lib; {
-    description = "A command-line tool to sign files and verify signatures";
+    description = "Command-line tool to sign files and verify signatures";
     homepage = "https://github.com/jedisct1/rsign2";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/pkgs/tools/security/ruler/default.nix b/pkgs/tools/security/ruler/default.nix
index 6389c0eac0418..fe63a73072807 100644
--- a/pkgs/tools/security/ruler/default.nix
+++ b/pkgs/tools/security/ruler/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildGoModule
-, fetchFromGitHub
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
 }:
 
 buildGoModule rec {
@@ -9,17 +10,24 @@ buildGoModule rec {
 
   src = fetchFromGitHub {
     owner = "sensepost";
-    repo = pname;
-    rev = version;
+    repo = "ruler";
+    rev = "refs/tags/${version}";
     hash = "sha256-cEYpK1LB9b65xr6MCMax1vUtSWefjJdXNs4sPgx65d0=";
   };
 
   vendorHash = "sha256-ITd3cvZmRBWK3922dDRvNHNH8KzHoVfIQI6S318ibxA=";
 
+  ldflags = [
+    "-w"
+    "-s"
+  ];
+
   meta = with lib; {
     description = "Tool to abuse Exchange services";
     homepage = "https://github.com/sensepost/ruler";
+    changelog = "https://github.com/sensepost/ruler/releases/tag/${version}";
     license = with licenses; [ cc-by-nc-40 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "ruler";
   };
 }
diff --git a/pkgs/tools/security/safe/default.nix b/pkgs/tools/security/safe/default.nix
index 63fe240e5619d..83562ac8f1310 100644
--- a/pkgs/tools/security/safe/default.nix
+++ b/pkgs/tools/security/safe/default.nix
@@ -23,7 +23,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "A Vault CLI";
+    description = "Vault CLI";
     mainProgram = "safe";
     homepage = "https://github.com/starkandwayne/safe";
     license = licenses.mit;
diff --git a/pkgs/tools/security/saml2aws/default.nix b/pkgs/tools/security/saml2aws/default.nix
index 7c61095cc3a97..dfc2e6f9ce9a6 100644
--- a/pkgs/tools/security/saml2aws/default.nix
+++ b/pkgs/tools/security/saml2aws/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "saml2aws";
-  version = "2.36.15";
+  version = "2.36.16";
 
   src = fetchFromGitHub {
     owner = "Versent";
     repo = "saml2aws";
     rev = "v${version}";
-    sha256 = "sha256-lfA+D3NsrnYwqX1hfC3TOQKEBW/65QGUjzYxe2RVVSM=";
+    sha256 = "sha256-qe4a8dmanXRji7hLtlTYrIOuZ8lHwJtDI6dSFVYwcIo=";
   };
 
-  vendorHash = "sha256-3jne2an651tlyXgmmQ28R/bwsfaQzI4rC+4WJhyDA2E=";
+  vendorHash = "sha256-OdkgTBsoBjLajx/ueII3o1ldU7+fysTbdTp7tG9eMng=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ AppKit ];
 
diff --git a/pkgs/tools/security/schleuder/Gemfile b/pkgs/tools/security/schleuder/Gemfile
index 687c293bac913..41360b7292a88 100644
--- a/pkgs/tools/security/schleuder/Gemfile
+++ b/pkgs/tools/security/schleuder/Gemfile
@@ -1,3 +1,4 @@
 source 'https://rubygems.org' do
   gem 'schleuder'
+  gem 'net-smtp'
 end
diff --git a/pkgs/tools/security/schleuder/Gemfile.lock b/pkgs/tools/security/schleuder/Gemfile.lock
index 7f15bb7bd7176..96970097b875c 100644
--- a/pkgs/tools/security/schleuder/Gemfile.lock
+++ b/pkgs/tools/security/schleuder/Gemfile.lock
@@ -4,41 +4,45 @@ GEM
 GEM
   remote: https://rubygems.org/
   specs:
-    activemodel (6.1.6)
-      activesupport (= 6.1.6)
-    activerecord (6.1.6)
-      activemodel (= 6.1.6)
-      activesupport (= 6.1.6)
-    activesupport (6.1.6)
+    activemodel (6.1.7.7)
+      activesupport (= 6.1.7.7)
+    activerecord (6.1.7.7)
+      activemodel (= 6.1.7.7)
+      activesupport (= 6.1.7.7)
+    activesupport (6.1.7.7)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
       tzinfo (~> 2.0)
       zeitwerk (~> 2.3)
-    bcrypt (3.1.18)
+    bcrypt (3.1.20)
     charlock_holmes (0.7.7)
-    concurrent-ruby (1.1.10)
+    concurrent-ruby (1.3.1)
     daemons (1.4.1)
     eventmachine (1.2.7)
-    gpgme (2.0.20)
-      mini_portile2 (~> 2.3)
-    i18n (1.10.0)
+    gpgme (2.0.24)
+      mini_portile2 (~> 2.7)
+    i18n (1.14.5)
       concurrent-ruby (~> 1.0)
     mail (2.7.1)
       mini_mime (>= 0.1.1)
     mail-gpg (0.4.4)
       gpgme (~> 2.0, >= 2.0.2)
       mail (~> 2.5, >= 2.5.3)
-    mini_mime (1.1.2)
-    mini_portile2 (2.8.0)
-    minitest (5.16.1)
+    mini_mime (1.1.5)
+    mini_portile2 (2.8.6)
+    minitest (5.23.1)
     multi_json (1.15.0)
-    mustermann (1.1.1)
+    mustermann (2.0.2)
       ruby2_keywords (~> 0.0.1)
-    rack (2.2.3.1)
-    rack-protection (2.2.0)
+    net-protocol (0.2.2)
+      timeout
+    net-smtp (0.5.0)
+      net-protocol
+    rack (2.2.9)
+    rack-protection (2.2.4)
       rack
-    rake (13.0.6)
+    rake (13.2.1)
     ruby2_keywords (0.0.5)
     schleuder (4.0.3)
       activerecord (~> 6.1.3)
@@ -53,34 +57,35 @@ GEM
       sqlite3 (~> 1.4.2)
       thin (~> 1)
       thor (~> 0)
-    sinatra (2.2.0)
-      mustermann (~> 1.0)
+    sinatra (2.2.4)
+      mustermann (~> 2.0)
       rack (~> 2.2)
-      rack-protection (= 2.2.0)
+      rack-protection (= 2.2.4)
       tilt (~> 2.0)
-    sinatra-contrib (2.2.0)
+    sinatra-contrib (2.2.4)
       multi_json
-      mustermann (~> 1.0)
-      rack-protection (= 2.2.0)
-      sinatra (= 2.2.0)
+      mustermann (~> 2.0)
+      rack-protection (= 2.2.4)
+      sinatra (= 2.2.4)
       tilt (~> 2.0)
     sqlite3 (1.4.4)
-    thin (1.8.1)
+    thin (1.8.2)
       daemons (~> 1.0, >= 1.0.9)
       eventmachine (~> 1.0, >= 1.0.4)
       rack (>= 1, < 3)
     thor (0.20.3)
-    tilt (2.0.10)
-    tzinfo (2.0.4)
+    tilt (2.3.0)
+    timeout (0.4.1)
+    tzinfo (2.0.6)
       concurrent-ruby (~> 1.0)
-    zeitwerk (2.6.0)
+    zeitwerk (2.6.15)
 
 PLATFORMS
-  aarch64-linux
   x86_64-linux
 
 DEPENDENCIES
+  net-smtp!
   schleuder!
 
 BUNDLED WITH
-   2.3.9
+   2.5.9
diff --git a/pkgs/tools/security/schleuder/cli/Gemfile b/pkgs/tools/security/schleuder/cli/Gemfile
index 428e856aecc65..12a93f677cfbe 100644
--- a/pkgs/tools/security/schleuder/cli/Gemfile
+++ b/pkgs/tools/security/schleuder/cli/Gemfile
@@ -1,4 +1,4 @@
 source "https://rubygems.org"
 
-gem "schleuder-cli", git: "https://0xacab.org/schleuder/schleuder-cli", tag: "schleuder-cli-0.1.0"
+gem "schleuder-cli", git: "https://0xacab.org/schleuder/schleuder-cli", tag: "schleuder-cli-0.2.0"
 
diff --git a/pkgs/tools/security/schleuder/cli/Gemfile.lock b/pkgs/tools/security/schleuder/cli/Gemfile.lock
index 3eead9459e054..808bcb8bc4f95 100644
--- a/pkgs/tools/security/schleuder/cli/Gemfile.lock
+++ b/pkgs/tools/security/schleuder/cli/Gemfile.lock
@@ -1,15 +1,15 @@
 GIT
   remote: https://0xacab.org/schleuder/schleuder-cli
-  revision: 1de2548695d9a74f47b7868954561b48cbc966f9
-  tag: schleuder-cli-0.1.0
+  revision: fd010d28b1503504056e714e03abf043b64794ea
+  tag: schleuder-cli-0.2.0
   specs:
-    schleuder-cli (0.1.0)
-      thor (~> 0)
+    schleuder-cli (0.2.0)
+      thor (~> 1)
 
 GEM
   remote: https://rubygems.org/
   specs:
-    thor (0.20.3)
+    thor (1.3.1)
 
 PLATFORMS
   aarch64-linux
@@ -19,4 +19,4 @@ DEPENDENCIES
   schleuder-cli!
 
 BUNDLED WITH
-   2.3.9
+   2.5.9
diff --git a/pkgs/tools/security/schleuder/cli/default.nix b/pkgs/tools/security/schleuder/cli/default.nix
index e34afa699f042..ea8e2c5083424 100644
--- a/pkgs/tools/security/schleuder/cli/default.nix
+++ b/pkgs/tools/security/schleuder/cli/default.nix
@@ -20,7 +20,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "schleuder-cli";
 
   meta = with lib; {
-    description = "A command line tool to create and manage schleuder-lists";
+    description = "Command line tool to create and manage schleuder-lists";
     longDescription = ''
       Schleuder-cli enables creating, configuring, and deleting lists,
       subscriptions, keys, etc. It uses the Schleuder API, provided by
diff --git a/pkgs/tools/security/schleuder/cli/gemset.nix b/pkgs/tools/security/schleuder/cli/gemset.nix
index 45ff62f891370..eeb05d82060f7 100644
--- a/pkgs/tools/security/schleuder/cli/gemset.nix
+++ b/pkgs/tools/security/schleuder/cli/gemset.nix
@@ -5,21 +5,21 @@
     platforms = [];
     source = {
       fetchSubmodules = false;
-      rev = "1de2548695d9a74f47b7868954561b48cbc966f9";
-      sha256 = "0k4i33w9a0bscw4wbs301vxca367g7pa89y6cr24i0014pbmhs9z";
+      rev = "fd010d28b1503504056e714e03abf043b64794ea";
+      sha256 = "1r8ayi0d00c14q40247rwjf5s5n3dsy9d9blhf5jzm3kddzpwnbx";
       type = "git";
       url = "https://0xacab.org/schleuder/schleuder-cli";
     };
-    version = "0.1.0";
+    version = "0.2.0";
   };
   thor = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yhrnp9x8qcy5vc7g438amd5j9sw83ih7c30dr6g6slgw9zj3g29";
+      sha256 = "1vq1fjp45az9hfp6fxljhdrkv75cvbab1jfrwcw738pnsiqk8zps";
       type = "gem";
     };
-    version = "0.20.3";
+    version = "1.3.1";
   };
 }
diff --git a/pkgs/tools/security/schleuder/gemset.nix b/pkgs/tools/security/schleuder/gemset.nix
index 63cd6a5db81f2..ba22b478b00a5 100644
--- a/pkgs/tools/security/schleuder/gemset.nix
+++ b/pkgs/tools/security/schleuder/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1f0ai51icvvx5q0jd1l89k0dlwzpsrkqlj6x43f8qc4bd1ya9glx";
+      sha256 = "0zz32997k2fsyd0fzrh8f79yjr6hv3i4j9wykkxncl02j8dhrkay";
       type = "gem";
     };
-    version = "6.1.6";
+    version = "6.1.7.7";
   };
   activerecord = {
     dependencies = ["activemodel" "activesupport"];
@@ -16,10 +16,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0khjnkvmiyap1g3rvw9hp16mzai4smqcg5hxhq28pll25ljzxdbp";
+      sha256 = "0qzymgyrvw2k32ldabp2jr0zgp6z9w8smyb946qgvs9zfs4n2qnn";
       type = "gem";
     };
-    version = "6.1.6";
+    version = "6.1.7.7";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
@@ -27,20 +27,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08wzpwgdm03vzb8gqr8bvfdarb89g5ah0skvwqk6qv87p55xqkyw";
+      sha256 = "0r2i9b0pm0b1dy8fc7kyls1g7f0bcnyq53v825rykibzdqfqdfgp";
       type = "gem";
     };
-    version = "6.1.6";
+    version = "6.1.7.7";
   };
   bcrypt = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "048z3fvcknqx7ikkhrcrykxlqmf9bzc7l0y5h1cnvrc9n2qf0k8m";
+      sha256 = "16a0g2q40biv93i1hch3gw8rbmhp77qnnifj1k0a6m7dng3zh444";
       type = "gem";
     };
-    version = "3.1.18";
+    version = "3.1.20";
   };
   charlock_holmes = {
     groups = ["default"];
@@ -57,10 +57,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s4fpn3mqiizpmpy2a24k4v365pv75y50292r8ajrv4i1p5b2k14";
+      sha256 = "1kmhr3pz2nmhnq0nqlicqfwfmkzkcl835g7sw1gjjhjvhz8g2sf3";
       type = "gem";
     };
-    version = "1.1.10";
+    version = "1.3.1";
   };
   daemons = {
     groups = ["default"];
@@ -88,10 +88,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xbgh9d8nbvsvyzqnd0mzhz0nr9hx4qn025kmz6d837lry4lc6gw";
+      sha256 = "0r1vmql7w7ka5xzj1aqf8pk2a4sv0znwj2zkg1fgvd5b89qcvv2k";
       type = "gem";
     };
-    version = "2.0.20";
+    version = "2.0.24";
   };
   i18n = {
     dependencies = ["concurrent-ruby"];
@@ -99,10 +99,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0b2qyvnk4yynlg17ymkq4g5xgr275637fhl1mjh0valw3cb1fhhg";
+      sha256 = "1ffix518y7976qih9k1lgnc17i3v6yrlh0a3mckpxdb4wc2vrp16";
       type = "gem";
     };
-    version = "1.10.0";
+    version = "1.14.5";
   };
   mail = {
     dependencies = ["mini_mime"];
@@ -131,30 +131,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lbim375gw2dk6383qirz13hgdmxlan0vc5da2l072j3qw6fqjm5";
+      sha256 = "1vycif7pjzkr29mfk4dlqv3disc5dn0va04lkwajlpr1wkibg0c6";
       type = "gem";
     };
-    version = "1.1.2";
+    version = "1.1.5";
   };
   mini_portile2 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rapl1sfmfi3bfr68da4ca16yhc0pp93vjwkj7y3rdqrzy3b41hy";
+      sha256 = "149r94xi6b3jbp6bv72f8383b95ndn0p5sxnq11gs1j9jadv0ajf";
       type = "gem";
     };
-    version = "2.8.0";
+    version = "2.8.6";
   };
   minitest = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08z6rgs1jgbc032843mwg3fayvzn4hihz8bl2gp87pf7z02kw5f3";
+      sha256 = "1gkslxvkhh44s21rbjvka3zsvfxxrf5pcl6f75rv2vyrzzbgis7i";
       type = "gem";
     };
-    version = "5.16.1";
+    version = "5.23.1";
   };
   multi_json = {
     groups = ["default"];
@@ -172,20 +172,42 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ccm54qgshr1lq3pr1dfh7gphkilc19dp63rw6fcx7460pjwy88a";
+      sha256 = "0m70qz27mlv2rhk4j1li6pw797gmiwwqg02vcgxcxr1rq2v53rnb";
       type = "gem";
     };
-    version = "1.1.1";
+    version = "2.0.2";
+  };
+  net-protocol = {
+    dependencies = ["timeout"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1a32l4x73hz200cm587bc29q8q9az278syw3x6fkc9d1lv5y0wxa";
+      type = "gem";
+    };
+    version = "0.2.2";
+  };
+  net-smtp = {
+    dependencies = ["net-protocol"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0amlhz8fhnjfmsiqcjajip57ici2xhw089x7zqyhpk51drg43h2z";
+      type = "gem";
+    };
+    version = "0.5.0";
   };
   rack = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1b1qsg0yfargdhmpapp2d3mlxj82wyygs9nj74w0r03diyi8swlc";
+      sha256 = "0hj0rkw2z9r1lcg2wlrcld2n3phwrcgqcp7qd1g9a7hwgalh2qzx";
       type = "gem";
     };
-    version = "2.2.3.1";
+    version = "2.2.9";
   };
   rack-protection = {
     dependencies = ["rack"];
@@ -193,20 +215,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hz6h6d67r217qi202qmxq2xkn3643ay3iybhl3dq3qd6j8nm3b2";
+      sha256 = "1d6irsigm0i4ig1m47c94kixi3wb8jnxwvwkl8qxvyngmb73srl2";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.2.4";
   };
   rake = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w";
+      sha256 = "17850wcwkgi30p7yqh60960ypn7yibacjjha0av78zaxwvd3ijs6";
       type = "gem";
     };
-    version = "13.0.6";
+    version = "13.2.1";
   };
   ruby2_keywords = {
     groups = ["default"];
@@ -235,10 +257,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x3rci7k30g96y307hvglpdgm3f7nga3k3n4i8n1v2xxx290800y";
+      sha256 = "0wkc079h6hzq737j4wycpnv7c38mhd0rl33pszyy7768zzvyjc9y";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.2.4";
   };
   sinatra-contrib = {
     dependencies = ["multi_json" "mustermann" "rack-protection" "sinatra" "tilt"];
@@ -246,10 +268,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zzckl2n7r18fk3929hgcv8pby6hxwva0rbxw66yq6r96lnwzryb";
+      sha256 = "0s6c1k3zzxp3xa7libvlpqaby27124rccyyxcsly04ih904cxk33";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.2.4";
   };
   sqlite3 = {
     groups = ["default"];
@@ -267,10 +289,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "123bh7qlv6shk8bg8cjc84ix8bhlfcilwnn3iy6zq3l57yaplm9l";
+      sha256 = "08g1yq6zzvgndj8fd98ah7pp8g2diw28p8bfjgv7rvjvp8d2am8w";
       type = "gem";
     };
-    version = "1.8.1";
+    version = "1.8.2";
   };
   thor = {
     groups = ["default"];
@@ -287,10 +309,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rn8z8hda4h41a64l0zhkiwz2vxw9b1nb70gl37h1dg2k874yrlv";
+      sha256 = "0p3l7v619hwfi781l3r7ypyv1l8hivp09r18kmkn6g11c4yr1pc2";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  timeout = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16mvvsmx90023wrhf8dxc1lpqh0m8alk65shb7xcya6a9gflw7vg";
       type = "gem";
     };
-    version = "2.0.10";
+    version = "0.4.1";
   };
   tzinfo = {
     dependencies = ["concurrent-ruby"];
@@ -298,19 +330,19 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10qp5x7f9hvlc0psv9gsfbxg4a7s0485wsbq1kljkxq94in91l4z";
+      sha256 = "16w2g84dzaf3z13gxyzlzbf748kylk5bdgg3n1ipvkvvqy685bwd";
       type = "gem";
     };
-    version = "2.0.4";
+    version = "2.0.6";
   };
   zeitwerk = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xjdr2szxvn3zb1sb5l8nfd6k9jr3b4qqbbg1mj9grf68m3fxckc";
+      sha256 = "1kr2731z8f6cj23jxh67cdnpkrnnfwbrxj1hfhshls4mp8i8drmj";
       type = "gem";
     };
-    version = "2.6.0";
+    version = "2.6.15";
   };
 }
diff --git a/pkgs/tools/security/scorecard/default.nix b/pkgs/tools/security/scorecard/default.nix
index 265253bba51be..75b6657fe7e25 100644
--- a/pkgs/tools/security/scorecard/default.nix
+++ b/pkgs/tools/security/scorecard/default.nix
@@ -8,13 +8,13 @@
 
 buildGoModule rec {
   pname = "scorecard";
-  version = "4.12.0";
+  version = "4.13.1";
 
   src = fetchFromGitHub {
     owner = "ossf";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Ys7uO+xMSlcD8OGw7fV+aR0+Q1UXrxPKVLQbphV4rKk=";
+    hash = "sha256-xf6HyiZlkU9ifgXr+/O8UeElqwF8c1h/9IRWDVHx2+g=";
     # populate values otherwise taken care of by goreleaser,
     # unfortunately these require us to use git. By doing
     # this in postFetch we can delete .git afterwards and
@@ -28,7 +28,7 @@ buildGoModule rec {
       find "$out" -name .git -print0 | xargs -0 rm -rf
     '';
   };
-  vendorHash = "sha256-L6HFZryniy3Gp8NKdjM4SK82ZG5eQPM7blkSE3YFhOw=";
+  vendorHash = "sha256-ohZcz7fn/YAglLI3YOi0J4FWkCJa2/nsM7T03+BOWkw=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -58,6 +58,11 @@ buildGoModule rec {
     export SKIP_GINKGO=1
   '';
 
+  checkFlags = [
+    # https://github.com/ossf/scorecard/pull/4134
+    "-skip TestRunScorecard/empty_commits_repos_should_return_repo_details_but_no_checks"
+  ];
+
   postInstall = ''
     installShellCompletion --cmd scorecard \
       --bash <($out/bin/scorecard completion bash) \
@@ -69,7 +74,7 @@ buildGoModule rec {
   installCheckPhase = ''
     runHook preInstallCheck
     $out/bin/scorecard --help
-    # $out/bin/scorecard version 2>&1 | grep "v${version}"
+    $out/bin/scorecard version 2>&1 | grep "v${version}"
     runHook postInstallCheck
   '';
 
diff --git a/pkgs/tools/security/secp256k1/default.nix b/pkgs/tools/security/secp256k1/default.nix
index 5494f8f26c24e..335d9c5c18a54 100644
--- a/pkgs/tools/security/secp256k1/default.nix
+++ b/pkgs/tools/security/secp256k1/default.nix
@@ -7,13 +7,13 @@
 stdenv.mkDerivation rec {
   pname = "secp256k1";
 
-  version = "0.4.1";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "bitcoin-core";
     repo = "secp256k1";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-atq34GnWkSkWTWxZP4PCSF3hIjGFhQ534E+WUtLRkiM=";
+    sha256 = "sha256-XcxBzOJngrm1szs48bBS6pcH2yaLfLKPUtyQ51eItaw=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/security/semgrep/common.nix b/pkgs/tools/security/semgrep/common.nix
index 1ae95ed6572ac..d51853953bf42 100644
--- a/pkgs/tools/security/semgrep/common.nix
+++ b/pkgs/tools/security/semgrep/common.nix
@@ -1,9 +1,9 @@
 { lib }:
 
 rec {
-  version = "1.73.0";
+  version = "1.74.0";
 
-  srcHash = "sha256-INgc1rTN5K5mcV3u4Jktn7cqu87Z5sLnn70CxuZlbPA=";
+  srcHash = "sha256-PH0fTT6n6o3Jtuq+cyyRb048Tuv3VGNduCZCEKTXMrE=";
 
   # submodule dependencies
   # these are fetched so we:
@@ -25,19 +25,19 @@ rec {
   core = {
     x86_64-linux = {
       platform = "any";
-      hash = "sha256-NSleztCh9+VEsezypbIS74Ll+KP/Nb/zqAWum7tdoMc=";
+      hash = "sha256-ZA5KlbSLkC0IJGqyK0XhuDKRx53987vf53vSM0zwD9k=";
     };
     aarch64-linux = {
       platform = "musllinux_1_0_aarch64.manylinux2014_aarch64";
-      hash = "sha256-tySsh+CLciJRXpr4oJa/h6Zh0Fw8c+EDdSNNRwOfKpg=";
+      hash = "sha256-aHq87uzk9TtnlMDfAS6492ocXRJSHdBinng0hu2xLas=";
     };
     x86_64-darwin = {
       platform = "macosx_10_14_x86_64";
-      hash = "sha256-jO8H0wSjW34ynx+WN0oP8mpuAsfMva7H86gg72WrsBY=";
+      hash = "sha256-OorDXQ0oYHV8aPu9o1dQAd22u78/EjpUWA2yPYG0S9E=";
     };
     aarch64-darwin = {
       platform = "macosx_11_0_arm64";
-      hash = "sha256-EizxrTI7b4qSp8nLwXCnvJqKwZje7+WXyw5z+Yk6bvQ=";
+      hash = "sha256-g8sFLh2V9NDIvAZOaDhMpFxKqbS/S1eKep4v1vlOOo8=";
     };
   };
 
diff --git a/pkgs/tools/security/semgrep/default.nix b/pkgs/tools/security/semgrep/default.nix
index 6b62ab80e7ea6..13307d3101027 100644
--- a/pkgs/tools/security/semgrep/default.nix
+++ b/pkgs/tools/security/semgrep/default.nix
@@ -1,6 +1,5 @@
 { lib
 , fetchFromGitHub
-, fetchpatch
 , semgrep-core
 , buildPythonApplication
 , pythonPackages
diff --git a/pkgs/tools/security/sequoia-sqop/default.nix b/pkgs/tools/security/sequoia-sqop/default.nix
index 9bd5684f30c69..2aba6b9043c9e 100644
--- a/pkgs/tools/security/sequoia-sqop/default.nix
+++ b/pkgs/tools/security/sequoia-sqop/default.nix
@@ -9,7 +9,7 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sequoia-sqop";
-  version = "0.33.0";
+  version = "0.34.0";
 
   src = fetchFromGitLab {
     owner = "sequoia-pgp";
@@ -17,10 +17,10 @@ rustPlatform.buildRustPackage rec {
     # generated etc
     repo = "sequoia-sop";
     rev = "v${version}";
-    hash = "sha256-5XK5Cec6ojrpIncAtlp9jYr9KxmNYJKPhbsJraA0FA0=";
+    hash = "sha256-RpXMF0Q5Dp0zDt1gPl2Z3RKyDa4NI0uZY7kIc230F48=";
   };
 
-  cargoHash = "sha256-8ujQyG9qLuG8vjHoRtvpn4ka/Ft39u+NoxSZrD9NsfY=";
+  cargoHash = "sha256-ccEnZPFUYU5F1PqkX1u7K2xuWYShhzJwEOfBEbi53gg=";
 
   nativeBuildInputs = [
     pkg-config
@@ -49,7 +49,7 @@ rustPlatform.buildRustPackage rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "An implementation of the Stateless OpenPGP Command Line Interface using Sequoia";
+    description = "Implementation of the Stateless OpenPGP Command Line Interface using Sequoia";
     homepage = "https://docs.sequoia-pgp.org/sqop/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ doronbehar ];
diff --git a/pkgs/tools/security/sequoia-sqv/default.nix b/pkgs/tools/security/sequoia-sqv/default.nix
index 1b80e9dd45185..7923b494c17e4 100644
--- a/pkgs/tools/security/sequoia-sqv/default.nix
+++ b/pkgs/tools/security/sequoia-sqv/default.nix
@@ -51,7 +51,7 @@ rustPlatform.buildRustPackage rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A command-line OpenPGP signature verification tool";
+    description = "Command-line OpenPGP signature verification tool";
     homepage = "https://docs.sequoia-pgp.org/sqv/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ doronbehar ];
diff --git a/pkgs/tools/security/sheesy-cli/default.nix b/pkgs/tools/security/sheesy-cli/default.nix
index c47e5a2128585..50aee190a763c 100644
--- a/pkgs/tools/security/sheesy-cli/default.nix
+++ b/pkgs/tools/security/sheesy-cli/default.nix
@@ -32,7 +32,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "The 'share-secrets-safely' CLI to interact with GPG/pass-like vaults";
+    description = "'share-secrets-safely' CLI to interact with GPG/pass-like vaults";
     homepage = "https://share-secrets-safely.github.io/cli/";
     changelog = "https://github.com/share-secrets-safely/cli/releases/tag/${version}";
     license = with licenses; [ lgpl21Only ];
diff --git a/pkgs/tools/security/shellnoob/default.nix b/pkgs/tools/security/shellnoob/default.nix
index f7814b24384bb..ef9488239bd06 100644
--- a/pkgs/tools/security/shellnoob/default.nix
+++ b/pkgs/tools/security/shellnoob/default.nix
@@ -24,7 +24,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A shellcode writing toolkit";
+    description = "Shellcode writing toolkit";
     homepage = "https://github.com/reyammer/shellnoob";
     mainProgram = "snoob";
     license = licenses.mit;
diff --git a/pkgs/tools/security/sherlock/default.nix b/pkgs/tools/security/sherlock/default.nix
index 2a475e13d3d5f..6ee08c3f3f58c 100644
--- a/pkgs/tools/security/sherlock/default.nix
+++ b/pkgs/tools/security/sherlock/default.nix
@@ -7,14 +7,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "sherlock";
-  version = "0-unstable-2024-05-15";
+  version = "0-unstable-2024-06-04";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "sherlock-project";
     repo = "sherlock";
-    rev = "0ecb496ae91bc36476e3e6800aa3928c5dcd82f8";
-    hash = "sha256-CikQaQsiwKz0yEk3rA6hi570LIobEaxxgQ5I/B6OxWk=";
+    rev = "ef124acf34e90626f4e59ab88bba1ed6141a4126";
+    hash = "sha256-haxUKdZuuJrSI4TH8jA1fT+4fhr6tlxnrEgWTuBuIC4=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/security/signing-party/default.nix b/pkgs/tools/security/signing-party/default.nix
index 323d7075a79c8..d0c50ddad0873 100644
--- a/pkgs/tools/security/signing-party/default.nix
+++ b/pkgs/tools/security/signing-party/default.nix
@@ -198,7 +198,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://salsa.debian.org/signing-party-team/signing-party";
-    description = "A collection of several projects relating to OpenPGP";
+    description = "Collection of several projects relating to OpenPGP";
     longDescription = ''
       This is a collection of several projects relating to OpenPGP.
 
diff --git a/pkgs/tools/security/smbmap/default.nix b/pkgs/tools/security/smbmap/default.nix
index 772df0a66ef91..1e91764db6091 100644
--- a/pkgs/tools/security/smbmap/default.nix
+++ b/pkgs/tools/security/smbmap/default.nix
@@ -1,21 +1,24 @@
-{ lib
-, fetchFromGitHub
-, python3
+{
+  lib,
+  fetchFromGitHub,
+  python3,
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "smbmap";
-  version = "1.10.2";
-  format = "setuptools";
+  version = "1.10.4";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "ShawnDEvans";
     repo = "smbmap";
     rev = "refs/tags/v${version}";
-    hash = "sha256-6+kO2Wfz3gGABS4fGxoebCubzvFAaJIGnMPA+k1mckc=";
+    hash = "sha256-CU0pio+R8JI/vQi13mOmiEeWC+r4EuLwWOQYLnm4Oao=";
   };
 
-  propagatedBuildInputs = with python3.pkgs; [
+  build-system = with python3.pkgs; [ setuptools ];
+
+  dependencies = with python3.pkgs; [
     impacket
     pyasn1
     pycrypto
@@ -26,16 +29,14 @@ python3.pkgs.buildPythonApplication rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "smbmap"
-  ];
+  pythonImportsCheck = [ "smbmap" ];
 
   meta = with lib; {
     description = "SMB enumeration tool";
-    mainProgram = "smbmap";
     homepage = "https://github.com/ShawnDEvans/smbmap";
     changelog = "https://github.com/ShawnDEvans/smbmap/releases/tag/v${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "smbmap";
   };
 }
diff --git a/pkgs/tools/security/snowcat/default.nix b/pkgs/tools/security/snowcat/default.nix
index a08b18edd147b..0054c7a81322e 100644
--- a/pkgs/tools/security/snowcat/default.nix
+++ b/pkgs/tools/security/snowcat/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/praetorian-inc/snowcat";
     changelog = "https://github.com/praetorian-inc/snowcat/releases/tag/v${version}";
-    description = "A tool to audit the istio service mesh";
+    description = "Tool to audit the istio service mesh";
     mainProgram = "snowcat";
     longDescription = ''
       Snowcat gathers and analyzes the configuration of an Istio cluster and
diff --git a/pkgs/tools/security/solo2-cli/default.nix b/pkgs/tools/security/solo2-cli/default.nix
index 417afd93a99c3..a241e8780101b 100644
--- a/pkgs/tools/security/solo2-cli/default.nix
+++ b/pkgs/tools/security/solo2-cli/default.nix
@@ -42,7 +42,7 @@ rustPlatform.buildRustPackage rec {
   buildFeatures = [ "cli" ];
 
   meta = with lib; {
-    description = "A CLI tool for managing SoloKeys' Solo2 USB security keys";
+    description = "CLI tool for managing SoloKeys' Solo2 USB security keys";
     homepage = "https://github.com/solokeys/solo2-cli";
     license = with licenses; [ asl20 mit ]; # either at your option
     maintainers = with maintainers; [ lukegb ];
diff --git a/pkgs/tools/security/spectre-cli/default.nix b/pkgs/tools/security/spectre-cli/default.nix
index f06365de90b55..923046cdad4ae 100644
--- a/pkgs/tools/security/spectre-cli/default.nix
+++ b/pkgs/tools/security/spectre-cli/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A stateless cryptographic identity algorithm";
+    description = "Stateless cryptographic identity algorithm";
     homepage = "https://spectre.app";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ emmabastas ];
diff --git a/pkgs/tools/security/spire/default.nix b/pkgs/tools/security/spire/default.nix
index 236710eb0ebae..861167c15ae82 100644
--- a/pkgs/tools/security/spire/default.nix
+++ b/pkgs/tools/security/spire/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "spire";
-  version = "1.9.5";
+  version = "1.9.6";
 
   outputs = [ "out" "agent" "server" ];
 
@@ -10,10 +10,10 @@ buildGoModule rec {
     owner = "spiffe";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-cn7ipY5dKcKSUTqOAqOf9KgdufMnk58WW4to9MfRL7g=";
+    sha256 = "sha256-wubrZJBPLA83VB57UVKLuh2cmyXHouwN4BVPiHFl+1s=";
   };
 
-  vendorHash = "sha256-XWfo6NbADVRaMuemTrDgF2LQSpIe037z8el2CVzOJHI=";
+  vendorHash = "sha256-tx0zIr9rXuOvt+77Sp6dIdtN21fDX5FdnTxGpHWo7+A=";
 
   subPackages = [ "cmd/spire-agent" "cmd/spire-server" ];
 
@@ -28,7 +28,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "The SPIFFE Runtime Environment";
+    description = "SPIFFE Runtime Environment";
     homepage = "https://github.com/spiffe/spire";
     changelog = "https://github.com/spiffe/spire/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/tools/security/ssdeep/default.nix b/pkgs/tools/security/ssdeep/default.nix
index 110174d1a8bb3..68b8afdf67125 100644
--- a/pkgs/tools/security/ssdeep/default.nix
+++ b/pkgs/tools/security/ssdeep/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A program for calculating fuzzy hashes";
+    description = "Program for calculating fuzzy hashes";
     mainProgram = "ssdeep";
     homepage    = "http://www.ssdeep.sf.net";
     license     = lib.licenses.gpl2Plus;
diff --git a/pkgs/tools/security/ssh-audit/default.nix b/pkgs/tools/security/ssh-audit/default.nix
index 0551a7b10b222..ec12b6f4bde54 100644
--- a/pkgs/tools/security/ssh-audit/default.nix
+++ b/pkgs/tools/security/ssh-audit/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchFromGitHub
+, installShellFiles
 , nixosTests
 , python3Packages
 }:
@@ -8,6 +9,7 @@ python3Packages.buildPythonApplication rec {
   pname = "ssh-audit";
   version = "3.2.0";
   format = "setuptools";
+  outputs = [ "out" "man" ];
 
   src = fetchFromGitHub {
     owner = "jtesta";
@@ -16,6 +18,11 @@ python3Packages.buildPythonApplication rec {
     sha256 = "sha256-g5h0A1BJqzOZaSVUxyi7IsCcrbto4+7+HpiVjFZy50Y=";
   };
 
+  nativeBuildInputs = [ installShellFiles ];
+  postInstall = ''
+    installManPage $src/ssh-audit.1
+  '';
+
   nativeCheckInputs = with python3Packages; [
     pytestCheckHook
   ];
diff --git a/pkgs/tools/security/ssh-to-pgp/default.nix b/pkgs/tools/security/ssh-to-pgp/default.nix
index 15067063d328e..c2cc76ef74b73 100644
--- a/pkgs/tools/security/ssh-to-pgp/default.nix
+++ b/pkgs/tools/security/ssh-to-pgp/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "ssh-to-pgp";
-  version = "1.1.2";
+  version = "1.1.3";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "ssh-to-pgp";
     rev = version;
-    sha256 = "sha256-SoHKBuI3ROfWTI45rFdMNkHVYHa5nX1A0/ljgGpF8NY=";
+    sha256 = "sha256-EynI4YQ6yjhMIOSoMM7WgLwI//5moFgdhFLX82J+bSA=";
   };
 
-  vendorHash = "sha256-sHvb6jRSMXIUv1D0dbTJWmETCaFr9BquNmcc8J06m/o=";
+  vendorHash = "sha256-ww1CDDGo2r8h0ePvU8PS2owzE1vLTz2m7Z9thsQle7s=";
 
   nativeCheckInputs = [ gnupg ];
   checkPhase = ''
diff --git a/pkgs/tools/security/sslscan/default.nix b/pkgs/tools/security/sslscan/default.nix
index 43e2b8ace7176..ab699f8f02b77 100644
--- a/pkgs/tools/security/sslscan/default.nix
+++ b/pkgs/tools/security/sslscan/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sslscan";
-  version = "2.1.3";
+  version = "2.1.4";
 
   src = fetchFromGitHub {
     owner = "rbsec";
     repo = "sslscan";
     rev = "refs/tags/${version}";
-    hash = "sha256-oLlMeFVicDwr2XjCX/0cBMTXLKB8js50646uAf3tP9k=";
+    hash = "sha256-we55Oo9sIZ1FQn94xejlCKwlZBDMrQs/1f++blXTTUM=";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/tools/security/step-ca/default.nix b/pkgs/tools/security/step-ca/default.nix
index 1b227b3cdfdf1..7c8f44918506b 100644
--- a/pkgs/tools/security/step-ca/default.nix
+++ b/pkgs/tools/security/step-ca/default.nix
@@ -13,16 +13,16 @@
 
 buildGoModule rec {
   pname = "step-ca";
-  version = "0.26.1";
+  version = "0.26.2";
 
   src = fetchFromGitHub {
     owner = "smallstep";
     repo = "certificates";
     rev = "refs/tags/v${version}";
-    hash = "sha256-yej7gzhaUPbcvqbse7Hh7Im38+DUfC9UZkpjpuG8ctk=";
+    hash = "sha256-sLHmeF/yh74/qsoF/DrYSAbULG9Nsvd6bvUT4tSVHdQ=";
   };
 
-  vendorHash = "sha256-XlfdIg8YHCeCvc7kZczUxlxUonyZSQATgsxLTMvNDk4=";
+  vendorHash = "sha256-TISPM6bYzS0TpmopQLBns/rQqPKLDHK1job003vpFiQ=";
 
   ldflags = [
     "-w"
@@ -62,7 +62,7 @@ buildGoModule rec {
   passthru.tests.step-ca = nixosTests.step-ca;
 
   meta = with lib; {
-    description = "A private certificate authority (X.509 & SSH) & ACME server for secure automated certificate management, so you can use TLS everywhere & SSO for SSH";
+    description = "Private certificate authority (X.509 & SSH) & ACME server for secure automated certificate management, so you can use TLS everywhere & SSO for SSH";
     homepage = "https://smallstep.com/certificates/";
     changelog = "https://github.com/smallstep/certificates/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/tools/security/step-kms-plugin/default.nix b/pkgs/tools/security/step-kms-plugin/default.nix
index 95a3b85fca637..a64f86a31d1ee 100644
--- a/pkgs/tools/security/step-kms-plugin/default.nix
+++ b/pkgs/tools/security/step-kms-plugin/default.nix
@@ -11,16 +11,16 @@
 
 buildGoModule rec {
   pname = "step-kms-plugin";
-  version = "0.11.1";
+  version = "0.11.3";
 
   src = fetchFromGitHub {
     owner = "smallstep";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-EkLLhHXvh10tfEY6AY6o3n3JcmCXwauHsQ8VJRBpnnY=";
+    hash = "sha256-Gl/5AExN2/MEoR2HKpw7mDfuc/1Wj0UGSdXPzHl2JdU=";
   };
 
-  vendorHash = "sha256-kwM5eNeAVtA6DaoFtBhxc7Jnfb7vVkdIGpUxVGjWwC8=";
+  vendorHash = "sha256-O6orQYrupJdJbx23TXCP0qWyvn6Hv2iDeRYvIgLp1NM=";
 
   proxyVendor = true;
 
diff --git a/pkgs/tools/security/sudo-rs/default.nix b/pkgs/tools/security/sudo-rs/default.nix
index a1e46c6ee7083..f4ea401e7e10e 100644
--- a/pkgs/tools/security/sudo-rs/default.nix
+++ b/pkgs/tools/security/sudo-rs/default.nix
@@ -70,7 +70,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A memory safe implementation of sudo and su";
+    description = "Memory safe implementation of sudo and su";
     homepage = "https://github.com/memorysafety/sudo-rs";
     changelog = "${meta.homepage}/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 mit ];
diff --git a/pkgs/tools/security/sudo/default.nix b/pkgs/tools/security/sudo/default.nix
index 060dbb34f5600..948297df707b9 100644
--- a/pkgs/tools/security/sudo/default.nix
+++ b/pkgs/tools/security/sudo/default.nix
@@ -74,7 +74,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests = { inherit (nixosTests) sudo; };
 
   meta = with lib; {
-    description = "A command to run commands as root";
+    description = "Command to run commands as root";
     longDescription =
       ''
         Sudo (su "do") allows a system administrator to delegate
@@ -86,7 +86,7 @@ stdenv.mkDerivation (finalAttrs: {
     # From https://www.sudo.ws/about/license/
     license = with licenses; [ sudo bsd2 bsd3 zlib ];
     maintainers = with maintainers; [ ];
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.freebsd;
     mainProgram = "sudo";
   };
 })
diff --git a/pkgs/tools/security/tboot/default.nix b/pkgs/tools/security/tboot/default.nix
index 62f6b7823e838..e4b16cf9f290e 100644
--- a/pkgs/tools/security/tboot/default.nix
+++ b/pkgs/tools/security/tboot/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   installFlags = [ "DESTDIR=$(out)" ];
 
   meta = with lib; {
-    description = "A pre-kernel/VMM module that uses Intel(R) TXT to perform a measured and verified launch of an OS kernel/VMM";
+    description = "Pre-kernel/VMM module that uses Intel(R) TXT to perform a measured and verified launch of an OS kernel/VMM";
     homepage    = "https://sourceforge.net/projects/tboot/";
     changelog   = "https://sourceforge.net/p/tboot/code/ci/v${version}/tree/CHANGELOG";
     license     = licenses.bsd3;
diff --git a/pkgs/tools/security/tessen/default.nix b/pkgs/tools/security/tessen/default.nix
index 944695e831dcf..961c86753d765 100644
--- a/pkgs/tools/security/tessen/default.nix
+++ b/pkgs/tools/security/tessen/default.nix
@@ -44,7 +44,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://sr.ht/~ayushnix/tessen";
-    description = "An interactive menu to autotype and copy Pass and GoPass data";
+    description = "Interactive menu to autotype and copy Pass and GoPass data";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ monaaraj ];
diff --git a/pkgs/tools/security/thc-hydra/default.nix b/pkgs/tools/security/thc-hydra/default.nix
index 7222cc81780e7..6d366fd3e80b4 100644
--- a/pkgs/tools/security/thc-hydra/default.nix
+++ b/pkgs/tools/security/thc-hydra/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A very fast network logon cracker which support many different services";
+    description = "Very fast network logon cracker which support many different services";
     homepage = "https://github.com/vanhauser-thc/thc-hydra"; # https://www.thc.org/
     changelog = "https://github.com/vanhauser-thc/thc-hydra/raw/v${version}/CHANGES";
     license = licenses.agpl3Plus;
diff --git a/pkgs/tools/security/tor/default.nix b/pkgs/tools/security/tor/default.nix
index 2f33862fcffe8..30eb8360fe391 100644
--- a/pkgs/tools/security/tor/default.nix
+++ b/pkgs/tools/security/tor/default.nix
@@ -30,11 +30,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "tor";
-  version = "0.4.8.11";
+  version = "0.4.8.12";
 
   src = fetchurl {
     url = "https://dist.torproject.org/${pname}-${version}.tar.gz";
-    sha256 = "sha256-jyvfkOYzgHgSNap9YE4VlXDyg+zuZ0Zwhz2LtwUsjgc=";
+    sha256 = "sha256-ynzHNdmON0e1jy88wU+ATdeJ+g+zM6hNy2vXCtu4yHQ=";
   };
 
   outputs = [ "out" "geoip" ];
diff --git a/pkgs/tools/security/tpm-quote-tools/default.nix b/pkgs/tools/security/tpm-quote-tools/default.nix
index 938d0a6f29467..58ff7160924c6 100644
--- a/pkgs/tools/security/tpm-quote-tools/default.nix
+++ b/pkgs/tools/security/tpm-quote-tools/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A collection of programs that provide support for TPM based attestation using the TPM quote mechanism";
+    description = "Collection of programs that provide support for TPM based attestation using the TPM quote mechanism";
     longDescription = ''
       The TPM Quote Tools is a collection of programs that provide support
       for TPM based attestation using the TPM quote mechanism.  The manual
diff --git a/pkgs/tools/security/tpm2-tools/default.nix b/pkgs/tools/security/tpm2-tools/default.nix
index 1cf4d40091389..2e78257a13e2a 100644
--- a/pkgs/tools/security/tpm2-tools/default.nix
+++ b/pkgs/tools/security/tpm2-tools/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, lib, fetchpatch
+{ stdenv, fetchurl, lib
 , pandoc, pkg-config, makeWrapper, curl, openssl, tpm2-tss, libuuid
 , abrmdSupport ? true, tpm2-abrmd ? null }:
 
diff --git a/pkgs/tools/security/truecrack/default.nix b/pkgs/tools/security/truecrack/default.nix
index 1c0648f33bcb4..06a0d7e4f6b2e 100644
--- a/pkgs/tools/security/truecrack/default.nix
+++ b/pkgs/tools/security/truecrack/default.nix
@@ -40,7 +40,7 @@ gccStdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A brute-force password cracker for TrueCrypt volumes, optimized for Nvidia Cuda technology";
+    description = "Brute-force password cracker for TrueCrypt volumes, optimized for Nvidia Cuda technology";
     mainProgram = "truecrack";
     homepage = "https://gitlab.com/kalilinux/packages/truecrack";
     broken = cudaSupport;
diff --git a/pkgs/tools/security/trufflehog/default.nix b/pkgs/tools/security/trufflehog/default.nix
index d0e9cb39a2321..e94cfbd846eaf 100644
--- a/pkgs/tools/security/trufflehog/default.nix
+++ b/pkgs/tools/security/trufflehog/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "trufflehog";
-  version = "3.76.3";
+  version = "3.78.1";
 
   src = fetchFromGitHub {
     owner = "trufflesecurity";
     repo = "trufflehog";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Esw9O0OO6a4BwN/HA8WTDUX4xcwN6Jdu1io4DYko54A=";
+    hash = "sha256-Gek42O48RDkygeq+9oaV2f9UephOjxrevC6uQeAn24s=";
   };
 
-  vendorHash = "sha256-vHHLHXfeRl9aEBqFidGCkBLs/ifwOysbUSYbQaTKcPU=";
+  vendorHash = "sha256-KSIHJe83F2PBWBYe/aoWJrqzGvDwZhrrCvJ2GVBnmfo=";
 
   proxyVendor = true;
 
diff --git a/pkgs/tools/security/uncover/default.nix b/pkgs/tools/security/uncover/default.nix
index f0ee8aa23757f..7bb56ce21451e 100644
--- a/pkgs/tools/security/uncover/default.nix
+++ b/pkgs/tools/security/uncover/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "uncover";
-  version = "1.0.7";
+  version = "1.0.8";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-CJA+rDLubghaQT+yb0zQY3y8hF0/5ISH9YFvIQHwH2Y=";
+    hash = "sha256-iBZwR4hEd1pmmq4WzY/kfwHmpFj/MG+xGitbIQI8K5I=";
   };
 
-  vendorHash = "sha256-A7XPsl27Q5CaQXQUEvNB05B2M3mFGz/yZ4sOnOHxhw8=";
+  vendorHash = "sha256-cf9Itdz1hR74TVoFOsOdUcrvEuT57RZn2tgrEXU4c8E=";
 
   meta = with lib; {
     description = "API wrapper to search for exposed hosts";
diff --git a/pkgs/tools/security/vals/default.nix b/pkgs/tools/security/vals/default.nix
index b7b1012ad2772..ff7f8246ef060 100644
--- a/pkgs/tools/security/vals/default.nix
+++ b/pkgs/tools/security/vals/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "vals";
-  version = "0.37.1";
+  version = "0.37.2";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "helmfile";
     repo = pname;
-    sha256 = "sha256-POFxoGUbcasEvFdovZ1RER+yxLzg9owyKjWcr1zI+nc=";
+    sha256 = "sha256-L0T0Lu5UP/KG2jdJfw5lM6/FagZUpMLGNWyf4tktzmQ=";
   };
 
-  vendorHash = "sha256-Yzab4Y6ETOZM5zL/5fQSzqNFi51YOgDjsL53efW1vvk=";
+  vendorHash = "sha256-7ethl7BL6JBzIbyvpUE2TdvvPWs/CUvJQhjH2P5UCTY=";
+
+  proxyVendor = true;
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/security/vault-medusa/default.nix b/pkgs/tools/security/vault-medusa/default.nix
index cd7cf537de587..2995d4b9cd0b3 100644
--- a/pkgs/tools/security/vault-medusa/default.nix
+++ b/pkgs/tools/security/vault-medusa/default.nix
@@ -2,19 +2,19 @@
 
 buildGoModule rec {
   pname = "vault-medusa";
-  version = "0.7.0";
+  version = "0.7.2";
 
   src = fetchFromGitHub {
     owner = "jonasvinther";
     repo = "medusa";
     rev = "v${version}";
-    sha256 = "sha256-8lbaXcu+o+grbFPJxZ6p/LezxDFCUvOQyX49zX4V/v0=";
+    sha256 = "sha256-c5ldU54SQQKnKp2xxUiHVOaCRV9ttC24sN8AUMMuWzQ=";
   };
 
-  vendorHash = "sha256-/8wusZt0BQ//HCokjiSpsgsGb19FggrGrEuhCrwm9L0=";
+  vendorHash = "sha256-GdQiPeU5SWZlqWkyk8gU9yVTUQxJlurhY3l1xZXKeJY=";
 
   meta = with lib; {
-    description = "A cli tool for importing and exporting Hashicorp Vault secrets";
+    description = "Cli tool for importing and exporting Hashicorp Vault secrets";
     mainProgram = "medusa";
     homepage = "https://github.com/jonasvinther/medusa";
     license = licenses.mit;
diff --git a/pkgs/tools/security/vault-ssh-plus/default.nix b/pkgs/tools/security/vault-ssh-plus/default.nix
index 80cfa8674cb2b..a3a92f7c6a4c4 100644
--- a/pkgs/tools/security/vault-ssh-plus/default.nix
+++ b/pkgs/tools/security/vault-ssh-plus/default.nix
@@ -8,16 +8,16 @@
 }:
 buildGoModule rec {
   pname = "vault-ssh-plus";
-  version = "0.7.3";
+  version = "0.7.4";
 
   src = fetchFromGitHub {
     owner = "isometry";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-IRmFC5WsLmHfPjS/jW5V7dNF5rNvmsh3YKwW7rGII24=";
+    hash = "sha256-djS50SBR8HTyEd5Ya2I9w5irBrLTqzekEi5ASmkl6yk=";
   };
 
-  vendorHash = "sha256-cuU7rEpJrwrbiXLajdv4h6GePbpZclweyB9qZ3SIjP0=";
+  vendorHash = "sha256-NndIBvW1/EZJ2KwP6HZ6wvhrgtmhTe97l3VxprtWq30=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/tools/security/vault/default.nix b/pkgs/tools/security/vault/default.nix
index 5f24a8a6f6b2c..6efce59221d89 100644
--- a/pkgs/tools/security/vault/default.nix
+++ b/pkgs/tools/security/vault/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "vault";
-  version = "1.16.2";
+  version = "1.17.0";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "vault";
     rev = "v${version}";
-    hash = "sha256-OFYUM6NFNwpx356y+G1yAOOgpinK8qOkLBtUMFPFXK8=";
+    hash = "sha256-jnX3sJJIe62y5p5w7xs5IQ5xE/9aWzM02H2x/p7E9gc=";
   };
 
-  vendorHash = "sha256-pWteRqBGKHcqjN3wSxWuoy0YK7w2Zaz2BsiveG7UkVE=";
+  vendorHash = "sha256-r2tDPAPM8wPWRaArsjf5YcERyy3pwmIM4Wx2HSUdFEg=";
 
   proxyVendor = true;
 
@@ -44,7 +44,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://www.vaultproject.io/";
-    description = "A tool for managing secrets";
+    description = "Tool for managing secrets";
     changelog = "https://github.com/hashicorp/vault/blob/v${version}/CHANGELOG.md";
     license = licenses.bsl11;
     mainProgram = "vault";
diff --git a/pkgs/tools/security/vault/vault-bin.nix b/pkgs/tools/security/vault/vault-bin.nix
index c1dd64d604b42..dbdd8d49f76b0 100644
--- a/pkgs/tools/security/vault/vault-bin.nix
+++ b/pkgs/tools/security/vault/vault-bin.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = ./update-bin.sh;
 
   meta = with lib; {
-    description = "A tool for managing secrets, this binary includes the UI";
+    description = "Tool for managing secrets, this binary includes the UI";
     homepage = "https://www.vaultproject.io";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.bsl11;
diff --git a/pkgs/tools/security/vexctl/default.nix b/pkgs/tools/security/vexctl/default.nix
index 1bb56dbb0547e..13086faf73d4c 100644
--- a/pkgs/tools/security/vexctl/default.nix
+++ b/pkgs/tools/security/vexctl/default.nix
@@ -62,7 +62,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/chainguard-dev/vex/";
-    description = "A tool to attest VEX impact statements";
+    description = "Tool to attest VEX impact statements";
     mainProgram = "vexctl";
     license = licenses.asl20;
     maintainers = with maintainers; [ jk ];
diff --git a/pkgs/tools/security/volatility3/default.nix b/pkgs/tools/security/volatility3/default.nix
index 7f6307687323a..ffc0a0c932804 100644
--- a/pkgs/tools/security/volatility3/default.nix
+++ b/pkgs/tools/security/volatility3/default.nix
@@ -5,21 +5,21 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "volatility3";
-  version = "2.5.2";
+  version = "2.7.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "volatilityfoundation";
     repo = "volatility3";
     rev = "refs/tags/v${version}";
-    hash = "sha256-tghwDDfy8TohqTn9WQvmEal3qK0OKKq7GvGnPGTble0=";
+    hash = "sha256-elTUAvSe91TqpsTXg08SPKaVr6iM7FKcBaVNunv+HfU=";
   };
 
-  nativeBuildInputs = with python3.pkgs; [
+  build-system = with python3.pkgs; [
     setuptools
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  dependencies = with python3.pkgs; [
     capstone
     jsonschema
     pefile
diff --git a/pkgs/tools/security/wapiti/default.nix b/pkgs/tools/security/wapiti/default.nix
index 13a7e55cc3ec6..1ddfbb703b967 100644
--- a/pkgs/tools/security/wapiti/default.nix
+++ b/pkgs/tools/security/wapiti/default.nix
@@ -1,57 +1,59 @@
-{ lib
-, fetchFromGitHub
-, python3
+{
+  lib,
+  fetchFromGitHub,
+  python3,
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "wapiti";
   version = "3.1.8";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "wapiti-scanner";
-    repo = pname;
+    repo = "wapiti";
     rev = "refs/tags/${version}";
     hash = "sha256-2ssbczUa4pTA5Fai+sK1hES8skJMIHxa/R2hNIiEVLs=";
   };
 
   postPatch = ''
-    # Ignore pinned versions
-    sed -i -e "s/==[0-9.]*//;s/>=[0-9.]*//" pyproject.toml
-
     # Remove code coverage checking
     substituteInPlace pyproject.toml \
       --replace "--cov --cov-report=xml" ""
   '';
 
-  nativeBuildInputs = with python3.pkgs; [
-    setuptools
-    wheel
-  ];
+  pythonRelaxDeps = true;
+
+  build-system = with python3.pkgs; [ setuptools ];
 
-  propagatedBuildInputs = with python3.pkgs; [
-    aiocache
-    aiohttp
-    aiosqlite
-    arsenic
-    beautifulsoup4
-    browser-cookie3
-    dnspython
-    h11
-    httpcore
-    httpx
-    httpx-ntlm
-    loguru
-    mako
-    markupsafe
-    mitmproxy
-    pyasn1
-    six
-    sqlalchemy
-    tld
-    yaswfp
-  ] ++ httpx.optional-dependencies.brotli
-  ++ httpx.optional-dependencies.socks;
+  nativeBuildInputs = with python3.pkgs; [ pythonRelaxDepsHook ];
+
+  dependencies =
+    with python3.pkgs;
+    [
+      aiocache
+      aiohttp
+      aiosqlite
+      arsenic
+      beautifulsoup4
+      browser-cookie3
+      dnspython
+      h11
+      httpcore
+      httpx
+      httpx-ntlm
+      loguru
+      mako
+      markupsafe
+      mitmproxy
+      pyasn1
+      six
+      sqlalchemy
+      tld
+      yaswfp
+    ]
+    ++ httpx.optional-dependencies.brotli
+    ++ httpx.optional-dependencies.socks;
 
   __darwinAllowLocalNetworking = true;
 
@@ -138,9 +140,7 @@ python3.pkgs.buildPythonApplication rec {
     "tests/attack/test_mod_ssl.py"
   ];
 
-  pythonImportsCheck = [
-    "wapitiCore"
-  ];
+  pythonImportsCheck = [ "wapitiCore" ];
 
   meta = with lib; {
     description = "Web application vulnerability scanner";
@@ -154,7 +154,7 @@ python3.pkgs.buildPythonApplication rec {
     '';
     homepage = "https://wapiti-scanner.github.io/";
     changelog = "https://github.com/wapiti-scanner/wapiti/blob/${version}/doc/ChangeLog_Wapiti";
-    license = with licenses; [ gpl2Only ];
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/tools/security/witness/default.nix b/pkgs/tools/security/witness/default.nix
index 2aa26b7e6080c..75cdc9e1ce61b 100644
--- a/pkgs/tools/security/witness/default.nix
+++ b/pkgs/tools/security/witness/default.nix
@@ -10,15 +10,15 @@
 
 buildGoModule rec {
   pname = "witness";
-  version = "0.4.0";
+  version = "0.5.2";
 
   src = fetchFromGitHub {
     owner = "in-toto";
     repo = "witness";
     rev = "v${version}";
-    sha256 = "sha256-QnZZVQZMkh9GH6io19mlE3gHaiX73TgH7ibFT1H5DB4=";
+    sha256 = "sha256-3up10DdW0nMPAghEVlnOrFUbjQd1AuNmraBDjBPdjm8=";
   };
-  vendorHash = "sha256-5q405OP8VPChhxiH2tjh2H+ailQRjGmLZvul7CubjJo=";
+  vendorHash = "sha256-sYWcmQloeZlwuUz0SkucpVGOqkoOpgnsHDsuWyWTBPQ=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -52,7 +52,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A pluggable framework for software supply chain security. Witness prevents tampering of build materials and verifies the integrity of the build process from source to target";
+    description = "Pluggable framework for software supply chain security. Witness prevents tampering of build materials and verifies the integrity of the build process from source to target";
     longDescription = ''
       Witness prevents tampering of build materials and verifies the integrity
       of the build process from source to target. It works by wrapping commands
diff --git a/pkgs/tools/security/xcrawl3r/default.nix b/pkgs/tools/security/xcrawl3r/default.nix
index b714d555bafb7..c12439f49d67b 100644
--- a/pkgs/tools/security/xcrawl3r/default.nix
+++ b/pkgs/tools/security/xcrawl3r/default.nix
@@ -22,7 +22,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "A CLI utility to recursively crawl webpages";
+    description = "CLI utility to recursively crawl webpages";
     homepage = "https://github.com/hueristiq/xcrawl3r";
     changelog = "https://github.com/hueristiq/xcrawl3r/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/tools/security/yarGen/default.nix b/pkgs/tools/security/yarGen/default.nix
index 12b2567f340ef..d1bc8a864721a 100644
--- a/pkgs/tools/security/yarGen/default.nix
+++ b/pkgs/tools/security/yarGen/default.nix
@@ -50,7 +50,7 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   meta = with lib; {
-    description = "A generator for YARA rules";
+    description = "Generator for YARA rules";
     mainProgram = "yarGen.py";
     homepage = "https://github.com/Neo23x0/yarGen";
     license = licenses.bsd3;
diff --git a/pkgs/tools/security/yaralyzer/default.nix b/pkgs/tools/security/yaralyzer/default.nix
index ddfc828741e53..47b5576e7bec8 100644
--- a/pkgs/tools/security/yaralyzer/default.nix
+++ b/pkgs/tools/security/yaralyzer/default.nix
@@ -3,31 +3,16 @@
 , fetchFromGitHub
 }:
 
-let
-  python = python3.override {
-    packageOverrides = self: super: {
-      yara-python = super.yara-python.overridePythonAttrs (oldAttrs: rec {
-        version = "4.2.3";
-        src = fetchFromGitHub {
-          owner = "VirusTotal";
-          repo = "yara-python";
-          rev = "v${version}";
-          hash = "sha256-spUQuezQMqaG1hboM0/Gs7siCM6x0b40O+sV7qGGBng=";
-        };
-      });
-    };
-  };
-in
-python.pkgs.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "yaralyzer";
-  version = "0.9.3";
+  version = "0.9.4";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "michelcrypt4d4mus";
     repo = "yaralyzer";
     rev = "refs/tags/v${version}";
-    hash = "sha256-KGQNonzAZp8c0a3Rjb1WfsEkx5srgRzZfGR3gfNEdzY=";
+    hash = "sha256-rDb09XJOGWNARR0hhQQ91KXWepsLyR2a6/o3jagh6nA=";
   };
 
   pythonRelaxDeps = [
@@ -35,12 +20,12 @@ python.pkgs.buildPythonApplication rec {
     "rich"
   ];
 
-  nativeBuildInputs = with python.pkgs; [
+  build-system = with python3.pkgs; [
     poetry-core
     pythonRelaxDepsHook
   ];
 
-  propagatedBuildInputs = with python.pkgs; [
+  dependencies = with python3.pkgs; [
     chardet
     python-dotenv
     rich
@@ -52,12 +37,12 @@ python.pkgs.buildPythonApplication rec {
     "yaralyzer"
   ];
 
-  meta = with lib; {
+  meta = {
     description = "Tool to visually inspect and force decode YARA and regex matches";
     homepage = "https://github.com/michelcrypt4d4mus/yaralyzer";
-    changelog = "https://github.com/michelcrypt4d4mus/yaralyzer/blob/${version}/CHANGELOG.md";
-    license = licenses.gpl3Only;
-    maintainers = with maintainers; [ fab ];
+    changelog = "https://github.com/michelcrypt4d4mus/yaralyzer/blob/v${version}/CHANGELOG.md";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ fab ];
     mainProgram = "yaralyze";
   };
 }
diff --git a/pkgs/tools/security/yersinia/default.nix b/pkgs/tools/security/yersinia/default.nix
index ae2ca9babff2c..cc17452a96924 100644
--- a/pkgs/tools/security/yersinia/default.nix
+++ b/pkgs/tools/security/yersinia/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, autoreconfHook, pkg-config, fetchpatch
+{ stdenv, lib, fetchFromGitHub, autoreconfHook, pkg-config
 , ncurses, libpcap, libnet
 # alpha version of GTK interface
 , withGtk ? false, gtk2
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "LDFLAGS=-lncurses" ];
 
   meta = with lib; {
-    description = "A framework for layer 2 attacks";
+    description = "Framework for layer 2 attacks";
     mainProgram = "yersinia";
     homepage = "https://github.com/tomac/yersinia";
     license = licenses.gpl2Plus;
diff --git a/pkgs/tools/security/yubikey-agent/default.nix b/pkgs/tools/security/yubikey-agent/default.nix
index 24cd2d7642678..f43e83e575e79 100644
--- a/pkgs/tools/security/yubikey-agent/default.nix
+++ b/pkgs/tools/security/yubikey-agent/default.nix
@@ -36,7 +36,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A seamless ssh-agent for YubiKeys";
+    description = "Seamless ssh-agent for YubiKeys";
     mainProgram = "yubikey-agent";
     license = licenses.bsd3;
     homepage = "https://filippo.io/yubikey-agent";
diff --git a/pkgs/tools/security/yubikey-touch-detector/default.nix b/pkgs/tools/security/yubikey-touch-detector/default.nix
index b6ce85819cee6..1cb16d1ca712c 100644
--- a/pkgs/tools/security/yubikey-touch-detector/default.nix
+++ b/pkgs/tools/security/yubikey-touch-detector/default.nix
@@ -30,7 +30,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A tool to detect when your YubiKey is waiting for a touch";
+    description = "Tool to detect when your YubiKey is waiting for a touch";
     homepage = "https://github.com/maximbaz/yubikey-touch-detector";
     maintainers = with maintainers; [ sumnerevans ];
     license = with licenses; [ bsd2 isc ];
diff --git a/pkgs/tools/security/zeekscript/default.nix b/pkgs/tools/security/zeekscript/default.nix
index eb7d097c5d744..7c652476e79a8 100644
--- a/pkgs/tools/security/zeekscript/default.nix
+++ b/pkgs/tools/security/zeekscript/default.nix
@@ -31,7 +31,7 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   meta = with lib; {
-    description = "A Zeek script formatter and analyzer";
+    description = "Zeek script formatter and analyzer";
     homepage = "https://github.com/zeek/zeekscript";
     changelog = "https://github.com/zeek/zeekscript/blob/v${version}/CHANGES";
     license = licenses.bsd3;
diff --git a/pkgs/tools/security/zmap/default.nix b/pkgs/tools/security/zmap/default.nix
index de1bc354cf62b..16e58028f3e10 100644
--- a/pkgs/tools/security/zmap/default.nix
+++ b/pkgs/tools/security/zmap/default.nix
@@ -1,22 +1,22 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config, libjson, json_c, gengetopt, flex, byacc, gmp
-, libpcap, libunistring
+, libpcap, libunistring, judy
 }:
 
 stdenv.mkDerivation rec {
   pname = "zmap";
-  version = "3.0.0";
+  version = "4.1.1";
 
   src = fetchFromGitHub {
     owner = "zmap";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-OJZKcnsuBi3z/AI05RMBitgn01bhVTqx2jFYJLuIJk4=";
+    sha256 = "sha256-ftdjIBAAe+3qUEHoNMAOCmzy+PWD4neIMWvFXFi2JFo=";
   };
 
   cmakeFlags = [ "-DRESPECT_INSTALL_PREFIX_CONFIG=ON" ];
 
   nativeBuildInputs = [ cmake pkg-config gengetopt flex byacc ];
-  buildInputs = [ libjson json_c gmp libpcap libunistring ];
+  buildInputs = [ libjson json_c gmp libpcap libunistring judy ];
 
   outputs = [ "out" "man" ];
 
diff --git a/pkgs/tools/system/actkbd/default.nix b/pkgs/tools/system/actkbd/default.nix
index 7f8058433a1d8..175e405155d43 100644
--- a/pkgs/tools/system/actkbd/default.nix
+++ b/pkgs/tools/system/actkbd/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A keyboard shortcut daemon";
+    description = "Keyboard shortcut daemon";
     longDescription = ''
       actkbd is a simple daemon that binds actions to keyboard events
       directly on evdev interface (that is, no X11 required). It
diff --git a/pkgs/tools/system/at/default.nix b/pkgs/tools/system/at/default.nix
index e5eebb727b54f..5990bf4c08fa3 100644
--- a/pkgs/tools/system/at/default.nix
+++ b/pkgs/tools/system/at/default.nix
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The classical Unix `at' job scheduling command";
+    description = "Classical Unix `at' job scheduling command";
     license = licenses.gpl2Plus;
     homepage = "https://tracker.debian.org/pkg/at";
     changelog = "https://salsa.debian.org/debian/at/-/raw/master/ChangeLog";
diff --git a/pkgs/tools/system/auto-cpufreq/default.nix b/pkgs/tools/system/auto-cpufreq/default.nix
deleted file mode 100644
index 4c15908eab191..0000000000000
--- a/pkgs/tools/system/auto-cpufreq/default.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-{ lib, python3Packages, fetchFromGitHub, substituteAll }:
-
-python3Packages.buildPythonPackage rec {
-  pname = "auto-cpufreq";
-  version = "1.9.9";
-
-  src = fetchFromGitHub {
-    owner = "AdnanHodzic";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-D/5pwE2V+yXj92ECOUcl/dajMDbvVdz9YNJrl2Pzvts=";
-  };
-
-  propagatedBuildInputs = with python3Packages; [ setuptools-git-versioning click distro psutil ];
-
-  doCheck = false;
-  pythonImportsCheck = [ "auto_cpufreq" ];
-
-  patches = [
-    # hardcodes version output
-    (substituteAll {
-      src = ./fix-version-output.patch;
-      inherit version;
-    })
-
-    # patch to prevent script copying and to disable install
-    ./prevent-install-and-copy.patch
-    # patch to prevent update
-    ./prevent-update.patch
-  ];
-
-  postInstall = ''
-    # copy script manually
-    cp ${src}/scripts/cpufreqctl.sh $out/bin/cpufreqctl.auto-cpufreq
-
-    # systemd service
-    mkdir -p $out/lib/systemd/system
-    cp ${src}/scripts/auto-cpufreq.service $out/lib/systemd/system
-  '';
-
-  meta = with lib; {
-    mainProgram = "${pname}";
-    homepage = "https://github.com/AdnanHodzic/auto-cpufreq";
-    description = "Automatic CPU speed & power optimizer for Linux";
-    license = licenses.lgpl3Plus;
-    platforms = platforms.linux;
-    maintainers = [ maintainers.Technical27 ];
-  };
-}
diff --git a/pkgs/tools/system/auto-cpufreq/prevent-update.patch b/pkgs/tools/system/auto-cpufreq/prevent-update.patch
deleted file mode 100644
index 10da9fec97855..0000000000000
--- a/pkgs/tools/system/auto-cpufreq/prevent-update.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-diff --git a/requirements.txt b/requirements.txt
-index f492cac..e61d1a4 100755
---- a/requirements.txt
-+++ b/requirements.txt
-@@ -2,4 +2,3 @@
- psutil
- click
- distro
--requests
-
-diff --git a/auto_cpufreq/core.py b/auto_cpufreq/core.py
-index 99397a9..697fb68 100755
---- a/auto_cpufreq/core.py
-+++ b/auto_cpufreq/core.py
-@@ -18,7 +18,6 @@ from math import isclose
- from pathlib import Path
- from shutil import which
- from subprocess import getoutput, call, run, check_output, DEVNULL
--import requests
- import re
- 
- # execution timestamp used in countdown func
-
-diff --git a/bin/auto-cpufreq b/bin/auto-cpufreq
-index b89d925..b73974c 100755
---- a/bin/auto-cpufreq
-+++ b/bin/auto-cpufreq
-@@ -193,31 +193,7 @@
-         elif remove:
-             print("remove is disabled in the nix package")
-         elif update:
--            root_check()
--            if os.getenv("PKG_MARKER") == "SNAP":
--                print("Detected auto-cpufreq was installed using snap")
--                # refresh snap directly using this command
--
--                print("Please update using snap package manager, i.e: `sudo snap refresh auto-cpufreq`.")
--                #check for AUR 
--            elif subprocess.run(["bash", "-c", "command -v yay >/dev/null 2>&1"]).returncode == 0 or subprocess.run(["bash", "-c", "command -v pacman >/dev/null 2>&1"]).returncode == 0:
--                print("Arch-based distribution with AUR support detected. Please refresh auto-cpufreq using your AUR helper.")
--            else:
--                verify_update()
--                ans = input ("Do you want to update auto-cpufreq to the latest release? [y/n]: ")
--                valid_options = ['y', 'Y', 'yes', 'YES', 'Yes']
--                if ans.lower() in valid_options:
--                    remove_daemon()
--                    remove_complete_msg()
--                    new_update()
--                else:
--                    print("incorrect input\n")
--                    print("Aborted")
--                print("enabling daemon")
--                run(["auto-cpufreq", "--install"])
--                print("auto-cpufreq is installed with the latest version")
--                app_version()
--            
-+            print("update is disabled in the nix package")            
-
-
- if __name__ == "__main__":
\ No newline at end of file
diff --git a/pkgs/tools/system/automatic-timezoned/default.nix b/pkgs/tools/system/automatic-timezoned/default.nix
index 5cdedcffd1f4e..c0a5e76d06775 100644
--- a/pkgs/tools/system/automatic-timezoned/default.nix
+++ b/pkgs/tools/system/automatic-timezoned/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "automatic-timezoned";
-  version = "2.0.14";
+  version = "2.0.16";
 
   src = fetchFromGitHub {
     owner = "maxbrunet";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-6jHuN3Ojswhh7dVODlcPWttBxin3kpPn74h88o6QuoM=";
+    sha256 = "sha256-Ew2UiWq/K93HfKqaQoDHPrkKgHkgzzzdQwJTXmSYTeE=";
   };
 
-  cargoHash = "sha256-EvBinuz3/a4IXLEHin9szng+PvDkf0nu5HWGgrb6G6A=";
+  cargoHash = "sha256-HsLDpfdL5/rQU8usKiWRnbZ5s6XxchbHpp+9SFhoDi4=";
 
   meta = with lib; {
     description = "Automatically update system timezone based on location";
diff --git a/pkgs/tools/system/bfs/default.nix b/pkgs/tools/system/bfs/default.nix
index ea23d7307d729..3469060c74c56 100644
--- a/pkgs/tools/system/bfs/default.nix
+++ b/pkgs/tools/system/bfs/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   buildFlags = [ "release" ]; # "release" enables compiler optimizations
 
   meta = with lib; {
-    description = "A breadth-first version of the UNIX find command";
+    description = "Breadth-first version of the UNIX find command";
     longDescription = ''
       bfs is a variant of the UNIX find command that operates breadth-first rather than
       depth-first. It is otherwise intended to be compatible with many versions of find.
diff --git a/pkgs/tools/system/bottom/default.nix b/pkgs/tools/system/bottom/default.nix
index dfc1ffcd112c9..160baf72636be 100644
--- a/pkgs/tools/system/bottom/default.nix
+++ b/pkgs/tools/system/bottom/default.nix
@@ -43,7 +43,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A cross-platform graphical process/system monitor with a customizable interface";
+    description = "Cross-platform graphical process/system monitor with a customizable interface";
     homepage = "https://github.com/ClementTsang/bottom";
     changelog = "https://github.com/ClementTsang/bottom/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/tools/system/btop/default.nix b/pkgs/tools/system/btop/default.nix
index dfbc50ab86844..d38b018128fad 100644
--- a/pkgs/tools/system/btop/default.nix
+++ b/pkgs/tools/system/btop/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A monitor of resources";
+    description = "Monitor of resources";
     homepage = "https://github.com/aristocratos/btop";
     changelog = "https://github.com/aristocratos/btop/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/tools/system/consul-template/default.nix b/pkgs/tools/system/consul-template/default.nix
index d9571cfcaa8d7..ae095eabd423e 100644
--- a/pkgs/tools/system/consul-template/default.nix
+++ b/pkgs/tools/system/consul-template/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "consul-template";
-  version = "0.37.6";
+  version = "0.38.1";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "consul-template";
     rev = "v${version}";
-    hash = "sha256-YkhU8BFSQpYUfgB5CxtaRJOghfH1uu1gpvArIeWHXEI=";
+    hash = "sha256-zpoYketdEiiF25K0juIP8Y+yjBsc9Jfx0W17QN/vEyo=";
   };
 
-  vendorHash = "sha256-3Z8EiO48+OAg/TnoKUuokLBSXnUUrxe8ZgE1nrILFSg=";
+  vendorHash = "sha256-CjDVVgJq9LaVDxWRy2RN/ItaBmmulfBQ4ms0he51lqA=";
 
   # consul-template tests depend on vault and consul services running to
   # execute tests so we skip them here
diff --git a/pkgs/tools/system/das_watchdog/default.nix b/pkgs/tools/system/das_watchdog/default.nix
index ec7eb2b173d0e..141e16181cec6 100644
--- a/pkgs/tools/system/das_watchdog/default.nix
+++ b/pkgs/tools/system/das_watchdog/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/kmatheussen/das_watchdog";
-    description = "A general watchdog for the linux operating system";
+    description = "General watchdog for the linux operating system";
     longDescription = ''
       It should run in the background at all times to ensure a realtime process
       won't hang the machine.";
diff --git a/pkgs/tools/system/dcfldd/default.nix b/pkgs/tools/system/dcfldd/default.nix
index 0814055d48395..57ea989021b87 100644
--- a/pkgs/tools/system/dcfldd/default.nix
+++ b/pkgs/tools/system/dcfldd/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ ];
 
   meta = with lib; {
-    description = "An enhanced version of GNU dd";
+    description = "Enhanced version of GNU dd";
 
     homepage = "https://dcfldd.sourceforge.net/";
 
diff --git a/pkgs/tools/system/dd_rescue/default.nix b/pkgs/tools/system/dd_rescue/default.nix
index f7501d7680346..e58499d2b2d45 100644
--- a/pkgs/tools/system/dd_rescue/default.nix
+++ b/pkgs/tools/system/dd_rescue/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A tool to copy data from a damaged block device";
+    description = "Tool to copy data from a damaged block device";
     maintainers = with maintainers; [ raskin domenkozar ];
     platforms = platforms.linux;
     homepage = "http://www.garloff.de/kurt/linux/ddrescue/";
diff --git a/pkgs/tools/system/ddh/default.nix b/pkgs/tools/system/ddh/default.nix
index 33618da36376e..14afcec4c4634 100644
--- a/pkgs/tools/system/ddh/default.nix
+++ b/pkgs/tools/system/ddh/default.nix
@@ -13,7 +13,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "6yPDkbag81TZ4k72rbmGT6HWKdGK4yfKxjGNFKEWXPI=";
 
   meta = with lib; {
-    description = "A fast duplicate file finder";
+    description = "Fast duplicate file finder";
     longDescription = ''
       DDH traverses input directories and their subdirectories.
       It also hashes files as needed and reports findings.
diff --git a/pkgs/tools/system/ddrescueview/default.nix b/pkgs/tools/system/ddrescueview/default.nix
index 3576c0eb65376..d3a2e46da14bf 100644
--- a/pkgs/tools/system/ddrescueview/default.nix
+++ b/pkgs/tools/system/ddrescueview/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A tool to graphically examine ddrescue mapfiles";
+    description = "Tool to graphically examine ddrescue mapfiles";
     homepage = "https://sourceforge.net/projects/ddrescueview/";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/tools/system/ddrutility/default.nix b/pkgs/tools/system/ddrutility/default.nix
index fc81c35fa4626..ee1c549fca9a9 100644
--- a/pkgs/tools/system/ddrutility/default.nix
+++ b/pkgs/tools/system/ddrutility/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "DESTDIR=$(out)" ];
 
   meta = with lib; {
-    description = "A set of utilities for hard drive data rescue";
+    description = "Set of utilities for hard drive data rescue";
     homepage = "https://sourceforge.net/projects/ddrutility/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/tools/system/dool/default.nix b/pkgs/tools/system/dool/default.nix
index fc0da53123cab..f781f36dffbdc 100644
--- a/pkgs/tools/system/dool/default.nix
+++ b/pkgs/tools/system/dool/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dool";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchFromGitHub {
     owner = "scottchiefbaker";
     repo = "dool";
     rev = "v${version}";
-    hash = "sha256-g74XyNtNdYf2qTCFBWIVZ3LhngDln/yu3bRJzO890JU=";
+    hash = "sha256-G9mcvUPGQw+0AtvlHdnnfAmcZtcUH/Sc77UVeA/FYZc=";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/system/efibootmgr/default.nix b/pkgs/tools/system/efibootmgr/default.nix
index 1eda5cbbce553..adc33c782a016 100644
--- a/pkgs/tools/system/efibootmgr/default.nix
+++ b/pkgs/tools/system/efibootmgr/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   installFlags = [ "prefix=$(out)" ];
 
   meta = with lib; {
-    description = "A Linux user-space application to modify the Intel Extensible Firmware Interface (EFI) Boot Manager";
+    description = "Linux user-space application to modify the Intel Extensible Firmware Interface (EFI) Boot Manager";
     homepage = "https://github.com/rhboot/efibootmgr";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/tools/system/epilys-bb/default.nix b/pkgs/tools/system/epilys-bb/default.nix
index 44a1e566c5d47..e368c7c9ec483 100644
--- a/pkgs/tools/system/epilys-bb/default.nix
+++ b/pkgs/tools/system/epilys-bb/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-+aCMwKOg+3HDntG14gjJLec8XD51wuTyYyzLjuW6lbY=";
 
   meta = with lib; {
-    description = "A clean, simple, and fast process viewer";
+    description = "Clean, simple, and fast process viewer";
     homepage = "https://nessuent.xyz/bb.html";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ cafkafk ];
diff --git a/pkgs/tools/system/fcron/default.nix b/pkgs/tools/system/fcron/default.nix
index 95f46833cf206..c9ffa02744575 100644
--- a/pkgs/tools/system/fcron/default.nix
+++ b/pkgs/tools/system/fcron/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description="A command scheduler with extended capabilities over cron and anacron";
+    description="Command scheduler with extended capabilities over cron and anacron";
     homepage = "http://fcron.free.fr";
     license = licenses.gpl2Plus;
     platforms = lib.platforms.all;
diff --git a/pkgs/tools/system/fdisk/default.nix b/pkgs/tools/system/fdisk/default.nix
index b48108ea76c4c..f2b3ab0f81325 100644
--- a/pkgs/tools/system/fdisk/default.nix
+++ b/pkgs/tools/system/fdisk/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "A command-line disk partitioning tool";
+    description = "Command-line disk partitioning tool";
     longDescription = ''
       GNU fdisk provides a GNU version of the common disk partitioning tool
       fdisk.  fdisk is used for the creation and manipulation of disk partition
diff --git a/pkgs/tools/system/go-audit/default.nix b/pkgs/tools/system/go-audit/default.nix
index 38fd388973902..722fdad702c53 100644
--- a/pkgs/tools/system/go-audit/default.nix
+++ b/pkgs/tools/system/go-audit/default.nix
@@ -20,7 +20,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "An alternative to the auditd daemon";
+    description = "Alternative to the auditd daemon";
     homepage = "https://github.com/slackhq/go-audit";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/pkgs/tools/system/gopsuinfo/default.nix b/pkgs/tools/system/gopsuinfo/default.nix
index b4a1003e40cfe..1deeeee1722ca 100644
--- a/pkgs/tools/system/gopsuinfo/default.nix
+++ b/pkgs/tools/system/gopsuinfo/default.nix
@@ -32,7 +32,7 @@ buildGoModule rec {
   postInstall = '' make install DESTDIR=$out '';
 
   meta = with lib; {
-    description = "A gopsutil-based command to display system usage info";
+    description = "Gopsutil-based command to display system usage info";
     homepage = "https://github.com/nwg-piotr/gopsuinfo";
     license = licenses.bsd2;
     maintainers = with maintainers; [ otini ];
diff --git a/pkgs/tools/system/gotop/default.nix b/pkgs/tools/system/gotop/default.nix
index 9681d3286cefd..5305b127a1c51 100644
--- a/pkgs/tools/system/gotop/default.nix
+++ b/pkgs/tools/system/gotop/default.nix
@@ -44,7 +44,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A terminal based graphical activity monitor inspired by gtop and vtop";
+    description = "Terminal based graphical activity monitor inspired by gtop and vtop";
     homepage = "https://github.com/xxxserxxx/gotop";
     changelog = "https://github.com/xxxserxxx/gotop/raw/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/tools/system/gptman/default.nix b/pkgs/tools/system/gptman/default.nix
index 533210ee4d8f8..cd9fd43615639 100644
--- a/pkgs/tools/system/gptman/default.nix
+++ b/pkgs/tools/system/gptman/default.nix
@@ -22,7 +22,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    description = "A GPT manager that allows you to copy partitions from one disk to another and more";
+    description = "GPT manager that allows you to copy partitions from one disk to another and more";
     homepage = "https://github.com/rust-disk-partition-management/gptman";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ akshgpt7 ];
diff --git a/pkgs/tools/system/gt5/default.nix b/pkgs/tools/system/gt5/default.nix
index 49d9fe651d497..c62ff2c3a8db0 100644
--- a/pkgs/tools/system/gt5/default.nix
+++ b/pkgs/tools/system/gt5/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A diff-capable 'du' browser";
+    description = "Diff-capable 'du' browser";
     homepage = "https://gt5.sourceforge.net/";
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [viric];
diff --git a/pkgs/tools/system/honcho/default.nix b/pkgs/tools/system/honcho/default.nix
index 08c0fb3f6b58f..1540d227dffe3 100644
--- a/pkgs/tools/system/honcho/default.nix
+++ b/pkgs/tools/system/honcho/default.nix
@@ -29,7 +29,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A Python clone of Foreman, a tool for managing Procfile-based applications";
+    description = "Python clone of Foreman, a tool for managing Procfile-based applications";
     license = licenses.mit;
     homepage = "https://github.com/nickstenning/honcho";
     maintainers = with maintainers; [ benley ];
diff --git a/pkgs/tools/system/htop/default.nix b/pkgs/tools/system/htop/default.nix
index 20274695f8ac2..55e9b5e9365cb 100644
--- a/pkgs/tools/system/htop/default.nix
+++ b/pkgs/tools/system/htop/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = with lib; {
-    description = "An interactive process viewer";
+    description = "Interactive process viewer";
     homepage = "https://htop.dev";
     license = licenses.gpl2Only;
     platforms = platforms.all;
diff --git a/pkgs/tools/system/htop/htop-vim.nix b/pkgs/tools/system/htop/htop-vim.nix
index 7f020f54f9de9..6dfb72c8ca75e 100644
--- a/pkgs/tools/system/htop/htop-vim.nix
+++ b/pkgs/tools/system/htop/htop-vim.nix
@@ -13,7 +13,7 @@ htop.overrideAttrs (oldAttrs: rec {
 
   meta = with lib; {
     inherit (oldAttrs.meta) platforms license;
-    description = "An interactive process viewer for Linux, with vim-style keybindings";
+    description = "Interactive process viewer for Linux, with vim-style keybindings";
     homepage = "https://github.com/KoffeinFlummi/htop-vim";
     maintainers = with maintainers; [ thiagokokada ];
     mainProgram = "htop";
diff --git a/pkgs/tools/system/incron/default.nix b/pkgs/tools/system/incron/default.nix
index b0a2765ddfe10..5c26235f8452b 100644
--- a/pkgs/tools/system/incron/default.nix
+++ b/pkgs/tools/system/incron/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A cron-like daemon which handles filesystem events";
+    description = "Cron-like daemon which handles filesystem events";
     homepage = "https://github.com/ar-/incron";
     license = licenses.gpl2Only;
     maintainers = [ maintainers.aanderse ];
diff --git a/pkgs/tools/system/inxi/default.nix b/pkgs/tools/system/inxi/default.nix
index fff9befd714bd..c00df8611ea1a 100644
--- a/pkgs/tools/system/inxi/default.nix
+++ b/pkgs/tools/system/inxi/default.nix
@@ -46,7 +46,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A full featured CLI system information tool";
+    description = "Full featured CLI system information tool";
     longDescription = ''
       inxi is a command line system information script built for console and
       IRC. It is also used a debugging tool for forum technical support to
diff --git a/pkgs/tools/system/ipmiutil/default.nix b/pkgs/tools/system/ipmiutil/default.nix
index b08d705cad17e..cbc239b8c13a8 100644
--- a/pkgs/tools/system/ipmiutil/default.nix
+++ b/pkgs/tools/system/ipmiutil/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   env.NIX_CFLAGS_COMPILE = "-fno-stack-protector";
 
   meta = with lib; {
-    description = "An easy-to-use IPMI server management utility";
+    description = "Easy-to-use IPMI server management utility";
     homepage = "https://ipmiutil.sourceforge.net/";
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/system/java-service-wrapper/default.nix b/pkgs/tools/system/java-service-wrapper/default.nix
index 9578941ef9a12..2b33564b683ff 100644
--- a/pkgs/tools/system/java-service-wrapper/default.nix
+++ b/pkgs/tools/system/java-service-wrapper/default.nix
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   pname = "java-service-wrapper";
-  version = "3.5.56";
+  version = "3.5.57";
 
   src = fetchurl {
     url = "https://wrapper.tanukisoftware.com/download/${version}/wrapper_${version}_src.tar.gz";
-    hash = "sha256-zZfJP/uf78D/6G51Km1bNRRIv5i8x69Xw+imho4/ZpQ=";
+    hash = "sha256-86YusgyLUveMrXepAtnABgdZCGlQDQjVFnG9GqFnCIg=";
   };
 
   strictDeps = true;
diff --git a/pkgs/tools/system/jobber/default.nix b/pkgs/tools/system/jobber/default.nix
index d9620e49977b8..e194e69c2cfc9 100644
--- a/pkgs/tools/system/jobber/default.nix
+++ b/pkgs/tools/system/jobber/default.nix
@@ -33,7 +33,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://dshearer.github.io/jobber";
     changelog = "https://github.com/dshearer/jobber/releases/tag/v${version}";
-    description = "An alternative to cron, with sophisticated status-reporting and error-handling";
+    description = "Alternative to cron, with sophisticated status-reporting and error-handling";
     license = licenses.mit;
     maintainers = with maintainers; [ urandom ];
     mainProgram = "jobber";
diff --git a/pkgs/tools/system/jsvc/default.nix b/pkgs/tools/system/jsvc/default.nix
index f8f67b0f45f95..2d01daabd01b3 100644
--- a/pkgs/tools/system/jsvc/default.nix
+++ b/pkgs/tools/system/jsvc/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jsvc";
-  version = "1.3.4";
+  version = "1.4.0";
 
   src = fetchurl {
     url = "https://downloads.apache.org//commons/daemon/source/commons-daemon-${version}-src.tar.gz";
-    sha256 = "sha256-30hJ0F5YFmEOZ4IYg/T8HhFySgu4t4uEsh7dUDns674=";
+    sha256 = "sha256-AFnx6AqmOfAsfh/4ALV9xiA2pbP0sX1h5dPj/9JCj+4=";
   };
 
   buildInputs = [ commonsDaemon ];
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage    = "https://commons.apache.org/proper/commons-daemon";
-    description = "A part of the Apache Commons Daemon software, a set of utilities and Java support classes for running Java applications as server processes";
+    description = "Part of the Apache Commons Daemon software, a set of utilities and Java support classes for running Java applications as server processes";
     maintainers = with lib.maintainers; [ rsynnest ];
     license     = lib.licenses.asl20;
     platforms = with lib.platforms; unix;
diff --git a/pkgs/tools/system/kanata/default.nix b/pkgs/tools/system/kanata/default.nix
index d5df916498987..4f25b78f8bb29 100644
--- a/pkgs/tools/system/kanata/default.nix
+++ b/pkgs/tools/system/kanata/default.nix
@@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A tool to improve keyboard comfort and usability with advanced customization";
+    description = "Tool to improve keyboard comfort and usability with advanced customization";
     homepage = "https://github.com/jtroo/kanata";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ bmanuel linj ];
diff --git a/pkgs/tools/system/localtime/default.nix b/pkgs/tools/system/localtime/default.nix
index bdb1fa2e74445..9a0fdac7577dd 100644
--- a/pkgs/tools/system/localtime/default.nix
+++ b/pkgs/tools/system/localtime/default.nix
@@ -34,7 +34,7 @@ buildGoModule {
   '';
 
   meta = with lib; {
-    description = "A daemon for keeping the system timezone up-to-date based on the current location";
+    description = "Daemon for keeping the system timezone up-to-date based on the current location";
     homepage = "https://github.com/Stebalien/localtime";
     maintainers = with maintainers; [ lovesegfault ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/system/logrotate/default.nix b/pkgs/tools/system/logrotate/default.nix
index e92f34188f4ff..017cb0b1cb6cf 100644
--- a/pkgs/tools/system/logrotate/default.nix
+++ b/pkgs/tools/system/logrotate/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "logrotate";
-  version = "3.21.0";
+  version = "3.22.0";
 
   src = fetchFromGitHub {
     owner = "logrotate";
     repo = "logrotate";
     rev = version;
-    sha256 = "sha256-w86y6bz/nvH/0mIbn2XrSs5KdOM/xadnlZMQZp4LdGQ=";
+    sha256 = "sha256-D7E2mpC7v2kbsb1EyhR6hLvGbnIvGB2MK1n1gptYyKI=";
   };
 
   # Logrotate wants to access the 'mail' program; to be done.
diff --git a/pkgs/tools/system/memtester/default.nix b/pkgs/tools/system/memtester/default.nix
index cb4f6768f2365..cb4d4eddb6445 100644
--- a/pkgs/tools/system/memtester/default.nix
+++ b/pkgs/tools/system/memtester/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   installFlags = [ "INSTALLPATH=$(out)" ];
 
   meta = with lib; {
-    description = "A userspace utility for testing the memory subsystem for faults";
+    description = "Userspace utility for testing the memory subsystem for faults";
     homepage = "http://pyropus.ca/software/memtester/";
     license = licenses.gpl2Only;
     maintainers = [ maintainers.dezgeg ];
diff --git a/pkgs/tools/system/minijail/default.nix b/pkgs/tools/system/minijail/default.nix
index 87913252ab4bd..05129009deee2 100644
--- a/pkgs/tools/system/minijail/default.nix
+++ b/pkgs/tools/system/minijail/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "minijail";
-  version = "18";
+  version = "2024.05.22";
 
   src = fetchFromGitiles {
-    url = "https://android.googlesource.com/platform/external/minijail";
+    url = "https://chromium.googlesource.com/chromiumos/platform/minijail";
     rev = "linux-v${version}";
-    sha256 = "sha256-OpwzISZ5iZNQvJAX7UJJ4gELEaVfcQgY9cqMM0YvBzc=";
+    sha256 = "sha256-1NNjNEC0pNb0WW0PG5smltT1/dGYNRfhNxJtW0hngI8=";
   };
 
   buildInputs = [ libcap ];
@@ -37,9 +37,9 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    homepage = "https://android.googlesource.com/platform/external/minijail/";
+    homepage = "https://chromium.googlesource.com/chromiumos/platform/minijail/+/refs/heads/main/README.md";
     description = "Sandboxing library and application using Linux namespaces and capabilities";
-    changelog = "https://android.googlesource.com/platform/external/minijail/+/refs/tags/linux-v${version}";
+    changelog = "https://chromium.googlesource.com/chromiumos/platform/minijail/+/refs/tags/linux-v${version}";
     license = licenses.bsd3;
     maintainers = with maintainers; [ pcarrier qyliss ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/system/minijail/tools.nix b/pkgs/tools/system/minijail/tools.nix
index 266879a303338..c9c52e479e78e 100644
--- a/pkgs/tools/system/minijail/tools.nix
+++ b/pkgs/tools/system/minijail/tools.nix
@@ -33,7 +33,7 @@ buildPythonApplication {
 
   meta = with lib; {
     homepage = "https://android.googlesource.com/platform/external/minijail/+/refs/heads/master/tools/";
-    description = "A set of tools for minijail";
+    description = "Set of tools for minijail";
     license = licenses.asl20;
     inherit (minijail.meta) maintainers platforms;
   };
diff --git a/pkgs/tools/system/monit/default.nix b/pkgs/tools/system/monit/default.nix
index 319d3492b48ef..49db2fae93d9b 100644
--- a/pkgs/tools/system/monit/default.nix
+++ b/pkgs/tools/system/monit/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "monit";
-  version = "5.33.0";
+  version = "5.34.0";
 
   src = fetchurl {
     url = "https://mmonit.com/monit/dist/monit-${version}.tar.gz";
-    sha256 = "sha256-Gs6InAGDRzqdcBYN9lM7tuEzjcE1T1koUHgD4eKoY7U=";
+    sha256 = "sha256-N/UUzYlzu84QTLhRf/P8UEBSoINwPu4NDoc9smuRmCA=";
   };
 
   nativeBuildInputs = [ bison flex ] ++
diff --git a/pkgs/tools/system/nsc/default.nix b/pkgs/tools/system/nsc/default.nix
index 8e902f7c8ab5b..d7664f9e317bf 100644
--- a/pkgs/tools/system/nsc/default.nix
+++ b/pkgs/tools/system/nsc/default.nix
@@ -51,7 +51,7 @@ buildGoModule rec {
   doCheck = !stdenv.isDarwin;
 
   meta = {
-    description = "A tool for creating NATS account and user access configurations";
+    description = "Tool for creating NATS account and user access configurations";
     homepage = "https://github.com/nats-io/nsc";
     license = with lib.licenses; [ asl20 ];
     maintainers = with lib.maintainers; [ cbrewster ];
diff --git a/pkgs/tools/system/nvitop/default.nix b/pkgs/tools/system/nvitop/default.nix
index af53911c8862b..1c7ed6083daf2 100644
--- a/pkgs/tools/system/nvitop/default.nix
+++ b/pkgs/tools/system/nvitop/default.nix
@@ -30,7 +30,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "An interactive NVIDIA-GPU process viewer, the one-stop solution for GPU process management";
+    description = "Interactive NVIDIA-GPU process viewer, the one-stop solution for GPU process management";
     homepage = "https://github.com/XuehaiPan/nvitop";
     changelog = "https://github.com/XuehaiPan/nvitop/releases/tag/v${version}";
     license = licenses.gpl3;
diff --git a/pkgs/tools/system/nvtop/build-nvtop.nix b/pkgs/tools/system/nvtop/build-nvtop.nix
index a72ab1ce0dfd3..cfc13f14c4719 100644
--- a/pkgs/tools/system/nvtop/build-nvtop.nix
+++ b/pkgs/tools/system/nvtop/build-nvtop.nix
@@ -75,7 +75,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A (h)top like task monitor for AMD, Adreno, Intel and NVIDIA GPUs";
+    description = "(h)top like task monitor for AMD, Adreno, Intel and NVIDIA GPUs";
     longDescription = ''
       Nvtop stands for Neat Videocard TOP, a (h)top like task monitor for AMD, Adreno, Intel and NVIDIA GPUs.
       It can handle multiple GPUs and print information about them in a htop familiar way.
diff --git a/pkgs/tools/system/opencl-info/default.nix b/pkgs/tools/system/opencl-info/default.nix
deleted file mode 100644
index fc549d2d7961f..0000000000000
--- a/pkgs/tools/system/opencl-info/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, opencl-clhpp, ocl-icd }:
-
-stdenv.mkDerivation {
-  pname = "opencl-info";
-  version = "unstable-2014-02-21";
-
-  src = fetchFromGitHub {
-    owner = "marchv";
-    repo = "opencl-info";
-    rev = "3e53d001a98978feb865650cf0e93b045400c0d7";
-    sha256 = "114lxgnjg40ivjjszkv4n3f3yq2lbrvywryvbazf20kqmdz7315l";
-  };
-
-  patches = [
-    # The cl.hpp header was removed from opencl-clhpp. This patch
-    # updates opencl-info to use the new cp2.hpp header.
-    #
-    # Submitted upstream: https://github.com/marchv/opencl-info/pull/2
-    ./opencl-info-clhpp2.diff
-  ];
-
-  buildInputs = [ opencl-clhpp ocl-icd ];
-
-  NIX_LDFLAGS = "-lOpenCL";
-
-  installPhase = ''
-    install -Dm755 opencl-info $out/bin/opencl-info
-  '';
-
-  meta = with lib; {
-    description = "A tool to dump OpenCL platform/device information";
-    homepage = "https://github.com/marchv/opencl-info";
-    license = licenses.mit;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ abbradar ];
-    mainProgram = "opencl-info";
-  };
-}
diff --git a/pkgs/tools/system/opencl-info/opencl-info-clhpp2.diff b/pkgs/tools/system/opencl-info/opencl-info-clhpp2.diff
deleted file mode 100644
index 013222beebf74..0000000000000
--- a/pkgs/tools/system/opencl-info/opencl-info-clhpp2.diff
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/opencl-info.cpp b/opencl-info.cpp
-index a23015d..a6de0c1 100644
---- a/opencl-info.cpp
-+++ b/opencl-info.cpp
-@@ -7,7 +7,7 @@
- #if defined(__APPLE__) || defined(__MACOSX)
- #  include <OpenCL/cl.hpp>
- #else
--#  include <CL/cl.hpp>
-+#  include <CL/cl2.hpp>
- #endif
- 
- #include <iostream>
-@@ -130,7 +130,7 @@ int main() {
-                 PconstEnd;
-                 P(device, CL_DEVICE_LOCAL_MEM_SIZE);
-                 Pbool(device, CL_DEVICE_ERROR_CORRECTION_SUPPORT);
--                Pbool(device, CL_DEVICE_HOST_UNIFIED_MEMORY);
-+                // Pbool(device, CL_DEVICE_HOST_UNIFIED_MEMORY); /* Deprecated in 2.0 */
-                 P(device, CL_DEVICE_PROFILING_TIMER_RESOLUTION);
-                 Pbool(device, CL_DEVICE_ENDIAN_LITTLE);
-                 Pbool(device, CL_DEVICE_AVAILABLE);
diff --git a/pkgs/tools/system/openipmi/default.nix b/pkgs/tools/system/openipmi/default.nix
index e1616460413d2..2102f9e52b7b8 100644
--- a/pkgs/tools/system/openipmi/default.nix
+++ b/pkgs/tools/system/openipmi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, popt, ncurses, python3, readline, lib }:
+{ stdenv, fetchurl, popt, ncurses, python3, readline, lib, openssl }:
 
 stdenv.mkDerivation rec {
   pname = "OpenIPMI";
@@ -9,13 +9,13 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-sFkRT2KZ1z8E/252oIV6Crgao2Le6ZZE0layI4ckN60=";
   };
 
-  buildInputs = [ ncurses popt python3 readline ];
+  buildInputs = [ ncurses popt python3 readline openssl ];
 
   outputs = [ "out" "lib" "dev" "man" ];
 
   meta = with lib; {
     homepage = "https://openipmi.sourceforge.io/";
-    description = "A user-level library that provides a higher-level abstraction of IPMI and generic services";
+    description = "User-level library that provides a higher-level abstraction of IPMI and generic services";
     license = with licenses; [ gpl2Only lgpl2Only ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ arezvov ] ++ teams.c3d2.members;
diff --git a/pkgs/tools/system/openseachest/default.nix b/pkgs/tools/system/openseachest/default.nix
index ab17c23bc61e9..f1015683660c6 100644
--- a/pkgs/tools/system/openseachest/default.nix
+++ b/pkgs/tools/system/openseachest/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A collection of command line diagnostic tools for storage devices";
+    description = "Collection of command line diagnostic tools for storage devices";
     homepage = "https://github.com/Seagate/openSeaChest";
     license = licenses.mpl20;
     maintainers = with maintainers; [ justinas ];
diff --git a/pkgs/tools/system/pciutils/default.nix b/pkgs/tools/system/pciutils/default.nix
index 1e3b17caf90bb..5290455390c3d 100644
--- a/pkgs/tools/system/pciutils/default.nix
+++ b/pkgs/tools/system/pciutils/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://mj.ucw.cz/sw/pciutils/";
-    description = "A collection of programs for inspecting and manipulating configuration of PCI devices";
+    description = "Collection of programs for inspecting and manipulating configuration of PCI devices";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = [ maintainers.vcunat ]; # not really, but someone should watch it
diff --git a/pkgs/tools/system/pdisk/default.nix b/pkgs/tools/system/pdisk/default.nix
index e6c3e75007ed3..de0e0b890e727 100644
--- a/pkgs/tools/system/pdisk/default.nix
+++ b/pkgs/tools/system/pdisk/default.nix
@@ -78,7 +78,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A low-level Apple partition table editor for Linux, OSS Apple version";
+    description = "Low-level Apple partition table editor for Linux, OSS Apple version";
     homepage = "https://github.com/apple-oss-distributions/pdisk";
     license = with licenses; [
       hpnd # original license statements seems to match this (in files that are shared with mac-fdisk)
diff --git a/pkgs/tools/system/rex/default.nix b/pkgs/tools/system/rex/default.nix
index 980874322bb84..0af9628f41a9a 100644
--- a/pkgs/tools/system/rex/default.nix
+++ b/pkgs/tools/system/rex/default.nix
@@ -88,7 +88,7 @@ perlPackages.buildPerlPackage rec {
 
   meta = {
     homepage = "https://www.rexify.org";
-    description = "The friendly automation framework";
+    description = "Friendly automation framework";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ qbit ];
   };
diff --git a/pkgs/tools/system/runitor/default.nix b/pkgs/tools/system/runitor/default.nix
index 6d2eeff80c604..d78417e6ee05f 100644
--- a/pkgs/tools/system/runitor/default.nix
+++ b/pkgs/tools/system/runitor/default.nix
@@ -27,7 +27,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://bdd.fi/x/runitor";
-    description = "A command runner with healthchecks.io integration";
+    description = "Command runner with healthchecks.io integration";
     longDescription = ''
       Runitor runs the supplied command, captures its output, and based on its exit
       code reports successful or failed execution to https://healthchecks.io or your
diff --git a/pkgs/tools/system/sleuthkit/default.nix b/pkgs/tools/system/sleuthkit/default.nix
index 934a81724446d..53d148a53028c 100644
--- a/pkgs/tools/system/sleuthkit/default.nix
+++ b/pkgs/tools/system/sleuthkit/default.nix
@@ -98,7 +98,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A forensic/data recovery tool";
+    description = "Forensic/data recovery tool";
     homepage = "https://www.sleuthkit.org/";
     changelog = "https://github.com/sleuthkit/sleuthkit/blob/${finalAttrs.src.rev}/NEWS.txt";
     maintainers = with maintainers; [ raskin gfrascadorio ];
diff --git a/pkgs/tools/system/stress-ng/default.nix b/pkgs/tools/system/stress-ng/default.nix
index 6ff1a8931b6ea..a0ab272c2a794 100644
--- a/pkgs/tools/system/stress-ng/default.nix
+++ b/pkgs/tools/system/stress-ng/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv, fetchFromGitHub
 , attr, judy, keyutils, libaio, libapparmor, libbsd, libcap, libgcrypt, lksctp-tools, zlib
+, libglvnd, mesa
 }:
 
 stdenv.mkDerivation rec {
@@ -20,7 +21,7 @@ stdenv.mkDerivation rec {
   # All platforms inputs then Linux-only ones
   buildInputs = [ judy libbsd libgcrypt zlib ]
     ++ lib.optionals stdenv.hostPlatform.isLinux [
-      attr keyutils libaio libapparmor libcap lksctp-tools
+      attr keyutils libaio libapparmor libcap lksctp-tools libglvnd mesa
     ];
 
   makeFlags = [
diff --git a/pkgs/tools/system/supervise/default.nix b/pkgs/tools/system/supervise/default.nix
index 3d69faf7bd4ff..8b6d7d97499c1 100644
--- a/pkgs/tools/system/supervise/default.nix
+++ b/pkgs/tools/system/supervise/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/catern/supervise";
-    description = "A minimal unprivileged process supervisor making use of modern Linux features";
+    description = "Minimal unprivileged process supervisor making use of modern Linux features";
     platforms = platforms.linux;
     license = licenses.gpl3;
     maintainers = with lib.maintainers; [ catern ];
diff --git a/pkgs/tools/system/thinkfan/default.nix b/pkgs/tools/system/thinkfan/default.nix
index 17887cc7bdf58..60f268caca2a5 100644
--- a/pkgs/tools/system/thinkfan/default.nix
+++ b/pkgs/tools/system/thinkfan/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ yaml-cpp ] ++ lib.optional smartSupport libatasmart;
 
   meta = {
-    description = "A simple, lightweight fan control program";
+    description = "Simple, lightweight fan control program";
     longDescription = ''
       Thinkfan is a minimalist fan control program. Originally designed
       specifically for IBM/Lenovo Thinkpads, it now supports any kind of
diff --git a/pkgs/tools/system/wsysmon/default.nix b/pkgs/tools/system/wsysmon/default.nix
index 8f03fdf90ccd8..0e6635b0292fb 100644
--- a/pkgs/tools/system/wsysmon/default.nix
+++ b/pkgs/tools/system/wsysmon/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A windows task manager clone for Linux";
+    description = "Windows task manager clone for Linux";
     homepage = "https://github.com/SlyFabi/WSysMon";
     license = [ licenses.mit ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/system/zps/default.nix b/pkgs/tools/system/zps/default.nix
index ab093d9e553bc..62a9efe7d7d93 100644
--- a/pkgs/tools/system/zps/default.nix
+++ b/pkgs/tools/system/zps/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A small utility for listing and reaping zombie processes on GNU/Linux";
+    description = "Small utility for listing and reaping zombie processes on GNU/Linux";
     homepage = "https://github.com/orhun/zps";
     changelog = "https://github.com/orhun/zps/releases/tag/${version}";
     license = licenses.gpl3Only;
diff --git a/pkgs/tools/system/zx/default.nix b/pkgs/tools/system/zx/default.nix
index 1dec344ed3aaf..f8e18a310629e 100644
--- a/pkgs/tools/system/zx/default.nix
+++ b/pkgs/tools/system/zx/default.nix
@@ -1,26 +1,28 @@
-{ lib
-, buildNpmPackage
-, fetchFromGitHub
+{
+  lib,
+  buildNpmPackage,
+  fetchFromGitHub,
 }:
 
 buildNpmPackage rec {
   pname = "zx";
-  version = "7.2.3";
+  version = "8.1.2";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "zx";
     rev = version;
-    hash = "sha256-YMfecNazmL8J+f80FdIRvr2upQ7VgXSkQQnm8z0Swhw=";
+    hash = "sha256-tv66idt+IfELc5TpMwDujJeIOi+kxFSl3RX3SrYL9ac=";
   };
 
-  npmDepsHash = "sha256-ywNd2LGjM35ecW4dnj0oNwdSX2CRy8i9OGKPIdI0UEQ=";
+  npmDepsHash = "sha256-WZJDbdqoy/JkKAR00nG4IdM6okHLsqfudHw0Gs+WntM=";
 
   meta = {
     description = "Tool for writing scripts using JavaScript";
     homepage = "https://github.com/google/zx";
+    changelog = "https://github.com/google/zx/releases/tag/${version}";
     license = lib.licenses.asl20;
-    maintainers = with lib.maintainers; [ hlolli ];
+    maintainers = with lib.maintainers; [ jlbribeiro ];
     mainProgram = "zx";
   };
 }
diff --git a/pkgs/tools/text/a2ps/default.nix b/pkgs/tools/text/a2ps/default.nix
index c275ee7d967c9..78d4c4dcad9fc 100644
--- a/pkgs/tools/text/a2ps/default.nix
+++ b/pkgs/tools/text/a2ps/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   strictDeps = true;
 
   meta = with lib; {
-    description = "An Anything to PostScript converter and pretty-printer";
+    description = "Anything to PostScript converter and pretty-printer";
     longDescription = ''
       GNU a2ps converts files into PostScript for printing or viewing. It uses a nice default format,
       usually two pages on each physical page, borders surrounding pages, headers with useful information
diff --git a/pkgs/tools/text/align/default.nix b/pkgs/tools/text/align/default.nix
index 844b03b2c8c12..fa97b97ad261c 100644
--- a/pkgs/tools/text/align/default.nix
+++ b/pkgs/tools/text/align/default.nix
@@ -15,7 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/Guitarbum722/align";
-    description = "A general purpose application and library for aligning text";
+    description = "General purpose application and library for aligning text";
     mainProgram = "align";
     maintainers = with maintainers; [ hrhino ];
     license = licenses.mit;
diff --git a/pkgs/tools/text/amber/default.nix b/pkgs/tools/text/amber/default.nix
index e4158b4bfc2d4..0b81281fad1ad 100644
--- a/pkgs/tools/text/amber/default.nix
+++ b/pkgs/tools/text/amber/default.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
 
   meta = with lib; {
-    description = "A code search-and-replace tool";
+    description = "Code search-and-replace tool";
     homepage = "https://github.com/dalance/amber";
     license = with licenses; [ mit ];
     maintainers = [ maintainers.bdesham ];
diff --git a/pkgs/tools/text/anew/default.nix b/pkgs/tools/text/anew/default.nix
index 58b6059a252c5..35c7d872f3d8b 100644
--- a/pkgs/tools/text/anew/default.nix
+++ b/pkgs/tools/text/anew/default.nix
@@ -19,7 +19,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "A tool for adding new lines to files, skipping duplicates";
+    description = "Tool for adding new lines to files, skipping duplicates";
     mainProgram = "anew";
     homepage = "https://github.com/tomnomnom/anew";
     license = licenses.mit;
diff --git a/pkgs/tools/text/angle-grinder/default.nix b/pkgs/tools/text/angle-grinder/default.nix
index dd34316803e16..322cd12463c85 100644
--- a/pkgs/tools/text/angle-grinder/default.nix
+++ b/pkgs/tools/text/angle-grinder/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "angle-grinder";
-  version = "0.19.2";
+  version = "0.19.4";
 
   src = fetchFromGitHub {
     owner = "rcoh";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-/OYIG4s0hH/bkAPxt/x5qHopDIoMN9AJLQ8Sx8USgsM=";
+    sha256 = "sha256-1SZho04qJcNi84ZkDmxoVkLx9VJX04QINZQ6ZEoCq+c=";
   };
 
-  cargoHash = "sha256-pOW2jFQxaf2zQWL5+URvHVeCAvSI0u8iALPO5fCoqmI=";
+  cargoHash = "sha256-+l0+zaZSPOk4gJLHZ9LFFbYlZ5vkS68Jg2dWPHSkzKw=";
 
   meta = with lib; {
     description = "Slice and dice logs on the command line";
diff --git a/pkgs/tools/text/ansifilter/default.nix b/pkgs/tools/text/ansifilter/default.nix
index e2fd695d41ecc..686b8c9f4171e 100644
--- a/pkgs/tools/text/ansifilter/default.nix
+++ b/pkgs/tools/text/ansifilter/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
       Tool to remove ANSI or convert them to another format
       (HTML, TeX, LaTeX, RTF, Pango or BBCode)
     '';
-    homepage = "http://www.andre-simon.de/doku/ansifilter/en/ansifilter.php";
+    homepage = "http://www.andre-simon.de/doku/ansifilter/en/ansifilter.html";
     license = licenses.gpl3;
     maintainers = [ maintainers.Adjective-Object ];
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/pkgs/tools/text/ascii/default.nix b/pkgs/tools/text/ascii/default.nix
index ad9884faa17d6..6a280bc516f96 100644
--- a/pkgs/tools/text/ascii/default.nix
+++ b/pkgs/tools/text/ascii/default.nix
@@ -1,14 +1,20 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchFromGitLab, gitUpdater, asciidoctor }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "ascii";
-  version = "3.20";
+  version = "3.30";
 
-  src = fetchurl {
-    url = "http://www.catb.org/~esr/ascii/${pname}-${version}.tar.gz";
-    sha256 = "sha256-nm5X6mDUGagDoCTOY2YlTvtxYma4Tu3VjNmA2rzBFnQ=";
+  src = fetchFromGitLab {
+    owner = "esr";
+    repo = "ascii";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-TE9YR5Va9tXaf2ZyNxz7d8lZRTgnD4Lz7FyqRDl1HNY=";
   };
 
+  nativeBuildInputs = [
+    asciidoctor
+  ];
+
   prePatch = ''
     sed -i -e "s|^PREFIX = .*|PREFIX = $out|" Makefile
   '';
@@ -17,12 +23,15 @@ stdenv.mkDerivation rec {
     mkdir -vp "$out/bin" "$out/share/man/man1"
   '';
 
+  passthru.updateScript = gitUpdater { };
+
   meta = with lib; {
     description = "Interactive ASCII name and synonym chart";
     mainProgram = "ascii";
     homepage = "http://www.catb.org/~esr/ascii/";
-    license = licenses.bsd3;
+    changelog = "https://gitlab.com/esr/ascii/-/blob/${finalAttrs.version}/NEWS.adoc";
+    license = licenses.bsd2;
     platforms = platforms.all;
     maintainers = [ maintainers.bjornfor ];
   };
-}
+})
diff --git a/pkgs/tools/text/autocorrect/default.nix b/pkgs/tools/text/autocorrect/default.nix
index 2e51672363f43..19e69a468ffd6 100644
--- a/pkgs/tools/text/autocorrect/default.nix
+++ b/pkgs/tools/text/autocorrect/default.nix
@@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
   passthru.updateScript = ./update.sh;
 
   meta = with lib; {
-    description = "A linter and formatter for help you improve copywriting, to correct spaces, punctuations between CJK (Chinese, Japanese, Korean)";
+    description = "Linter and formatter for help you improve copywriting, to correct spaces, punctuations between CJK (Chinese, Japanese, Korean)";
     mainProgram = "autocorrect";
     homepage = "https://huacnlee.github.io/autocorrect";
     changelog = "https://github.com/huacnlee/autocorrect/releases/tag/v${version}";
diff --git a/pkgs/tools/text/bashblog/default.nix b/pkgs/tools/text/bashblog/default.nix
index 0159e20de99ad..54e5d6f748e0c 100644
--- a/pkgs/tools/text/bashblog/default.nix
+++ b/pkgs/tools/text/bashblog/default.nix
@@ -53,7 +53,7 @@ in stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A single Bash script to create blogs";
+    description = "Single Bash script to create blogs";
     mainProgram = "bashblog";
     homepage = "https://github.com/cfenollosa/bashblog";
     license = licenses.gpl3Only;
diff --git a/pkgs/tools/text/boxes/default.nix b/pkgs/tools/text/boxes/default.nix
index 2f1f450ada15d..68e5b9c7ddca0 100644
--- a/pkgs/tools/text/boxes/default.nix
+++ b/pkgs/tools/text/boxes/default.nix
@@ -36,7 +36,7 @@ gccStdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A command line program which draws, removes, and repairs ASCII art boxes";
+    description = "Command line program which draws, removes, and repairs ASCII art boxes";
     mainProgram = "boxes";
     homepage = "https://boxes.thomasjensen.com";
     license = licenses.gpl2Plus;
diff --git a/pkgs/tools/text/cconv/default.nix b/pkgs/tools/text/cconv/default.nix
index 86aaf2d5f7c6b..872db0a44970e 100644
--- a/pkgs/tools/text/cconv/default.nix
+++ b/pkgs/tools/text/cconv/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libiconv ];
 
   meta = with lib; {
-    description = "A iconv based simplified-traditional chinese conversion tool";
+    description = "Iconv based simplified-traditional chinese conversion tool";
     mainProgram = "cconv";
     homepage = "https://github.com/xiaoyjy/cconv";
     license = licenses.mit;
diff --git a/pkgs/tools/text/choose/default.nix b/pkgs/tools/text/choose/default.nix
index b765a40f5496f..c3afeb492280f 100644
--- a/pkgs/tools/text/choose/default.nix
+++ b/pkgs/tools/text/choose/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "sha256-0INC0LFzlnFnt5pCiU4xePxU8a6GiU1L8bg7zcuFl2k=";
 
   meta = with lib; {
-    description = "A human-friendly and fast alternative to cut and (sometimes) awk";
+    description = "Human-friendly and fast alternative to cut and (sometimes) awk";
     mainProgram = "choose";
     homepage = "https://github.com/theryangeary/choose";
     license = licenses.gpl3;
diff --git a/pkgs/tools/text/chroma/default.nix b/pkgs/tools/text/chroma/default.nix
index 2b59831529dbd..e577451af1657 100644
--- a/pkgs/tools/text/chroma/default.nix
+++ b/pkgs/tools/text/chroma/default.nix
@@ -30,7 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/alecthomas/chroma";
-    description = "A general purpose syntax highlighter in pure Go";
+    description = "General purpose syntax highlighter in pure Go";
     license = licenses.mit;
     maintainers = [ maintainers.sternenseemann ];
     mainProgram = "chroma";
diff --git a/pkgs/tools/text/clima/default.nix b/pkgs/tools/text/clima/default.nix
index cfa39590a7144..65483e1152699 100644
--- a/pkgs/tools/text/clima/default.nix
+++ b/pkgs/tools/text/clima/default.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A minimal viewer for Termimad";
+    description = "Minimal viewer for Termimad";
     homepage = "https://github.com/Canop/clima";
     changelog = "https://github.com/Canop/clima/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/tools/text/cmigemo/default.nix b/pkgs/tools/text/cmigemo/default.nix
index 09810f1e08368..20cee369e73f2 100644
--- a/pkgs/tools/text/cmigemo/default.nix
+++ b/pkgs/tools/text/cmigemo/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation {
   installTargets = [ (if stdenv.isDarwin then "osx-install" else "gcc-install") ];
 
   meta = with lib; {
-    description = "A tool that supports Japanese incremental search with Romaji";
+    description = "Tool that supports Japanese incremental search with Romaji";
     mainProgram = "cmigemo";
     homepage = "https://www.kaoriya.net/software/cmigemo";
     license = licenses.mit;
diff --git a/pkgs/tools/text/comrak/default.nix b/pkgs/tools/text/comrak/default.nix
index f850302a9af87..05eee8cc81368 100644
--- a/pkgs/tools/text/comrak/default.nix
+++ b/pkgs/tools/text/comrak/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-rbGl7jQABZu4aMpzlv49uMuKmw7U+9zLS6pAJIJajR8=";
 
   meta = with lib; {
-    description = "A CommonMark-compatible GitHub Flavored Markdown parser and formatter";
+    description = "CommonMark-compatible GitHub Flavored Markdown parser and formatter";
     mainProgram = "comrak";
     homepage = "https://github.com/kivikakk/comrak";
     changelog = "https://github.com/kivikakk/comrak/blob/${version}/changelog.txt";
diff --git a/pkgs/tools/text/convertlit/default.nix b/pkgs/tools/text/convertlit/default.nix
index 751b969e4469f..417007fbd3ba9 100644
--- a/pkgs/tools/text/convertlit/default.nix
+++ b/pkgs/tools/text/convertlit/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://www.convertlit.com/";
-    description = "A tool for converting Microsoft Reader ebooks to more open formats";
+    description = "Tool for converting Microsoft Reader ebooks to more open formats";
     mainProgram = "clit";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.linux;
diff --git a/pkgs/tools/text/crowdin-cli/default.nix b/pkgs/tools/text/crowdin-cli/default.nix
index 763c2e3b0fbea..d5685a9c56c7c 100644
--- a/pkgs/tools/text/crowdin-cli/default.nix
+++ b/pkgs/tools/text/crowdin-cli/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "crowdin-cli";
-  version = "3.19.4";
+  version = "4.0.0";
 
   src = fetchurl {
     url = "https://github.com/crowdin/${pname}/releases/download/${version}/${pname}.zip";
-    hash = "sha256-SD4D9wW+Tdr3mD91SJKm5K3gktH0ywQBRh0d1TMeLDs=";
+    hash = "sha256-7KyQUnl2O/raQLcP5VsMCX3084Mn6HFfxjJmksAkWBc=";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper unzip ];
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     mainProgram = "crowdin";
     homepage = "https://github.com/crowdin/crowdin-cli/";
-    description = "A command-line client for the Crowdin API";
+    description = "Command-line client for the Crowdin API";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.mit;
     maintainers = with maintainers; [ DamienCassou ];
diff --git a/pkgs/tools/text/csvdiff/default.nix b/pkgs/tools/text/csvdiff/default.nix
index b7e68a7091224..90faa060bed09 100644
--- a/pkgs/tools/text/csvdiff/default.nix
+++ b/pkgs/tools/text/csvdiff/default.nix
@@ -18,7 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://aswinkarthik.github.io/csvdiff/";
-    description = "A fast diff tool for comparing csv files";
+    description = "Fast diff tool for comparing csv files";
     mainProgram = "csvdiff";
     license = licenses.mit;
     maintainers = with maintainers; [ turion ];
diff --git a/pkgs/tools/text/csview/default.nix b/pkgs/tools/text/csview/default.nix
index 747847a1bee20..1aa63333d89c1 100644
--- a/pkgs/tools/text/csview/default.nix
+++ b/pkgs/tools/text/csview/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-/pswnb2vNtw8zSoWuC7oZPJ4yxVuy1c4ES1NUHhnG6I=";
 
   meta = with lib; {
-    description = "A high performance csv viewer with cjk/emoji support";
+    description = "High performance csv viewer with cjk/emoji support";
     mainProgram = "csview";
     homepage = "https://github.com/wfxr/csview";
     license = with licenses; [ mit /* or */ asl20 ];
diff --git a/pkgs/tools/text/d2/default.nix b/pkgs/tools/text/d2/default.nix
index d5cef467f5072..8a66411022694 100644
--- a/pkgs/tools/text/d2/default.nix
+++ b/pkgs/tools/text/d2/default.nix
@@ -47,7 +47,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A modern diagram scripting language that turns text to diagrams";
+    description = "Modern diagram scripting language that turns text to diagrams";
     homepage = "https://d2lang.com";
     license = licenses.mpl20;
     maintainers = with maintainers; [ dit7ya kashw2 ];
diff --git a/pkgs/tools/text/diffsitter/default.nix b/pkgs/tools/text/diffsitter/default.nix
index 8e0a6bbc3d156..e13ad3bff23bb 100644
--- a/pkgs/tools/text/diffsitter/default.nix
+++ b/pkgs/tools/text/diffsitter/default.nix
@@ -73,7 +73,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/afnanenayet/diffsitter";
-    description = "A tree-sitter based AST difftool to get meaningful semantic diffs";
+    description = "Tree-sitter based AST difftool to get meaningful semantic diffs";
     license = licenses.mit;
     maintainers = with maintainers; [ bbigras ];
   };
diff --git a/pkgs/tools/text/difftastic/Cargo.lock b/pkgs/tools/text/difftastic/Cargo.lock
index 425b396c8b401..b9d4208b8e38b 100644
--- a/pkgs/tools/text/difftastic/Cargo.lock
+++ b/pkgs/tools/text/difftastic/Cargo.lock
@@ -4,9 +4,9 @@ version = 3
 
 [[package]]
 name = "ahash"
-version = "0.8.9"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
 dependencies = [
  "cfg-if",
  "once_cell",
@@ -16,9 +16,9 @@ dependencies = [
 
 [[package]]
 name = "aho-corasick"
-version = "1.1.2"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
 dependencies = [
  "memchr",
 ]
@@ -31,11 +31,11 @@ checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
 
 [[package]]
 name = "assert_cmd"
-version = "2.0.5"
+version = "2.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5c2ca00549910ec251e3bd15f87aeeb206c9456b9a77b43ff6c97c54042a472"
+checksum = "9834fcc22e0874394a010230586367d4a3e9f11b560f469262678547e1d2575e"
 dependencies = [
- "bstr 0.2.17",
+ "bstr",
  "doc-comment",
  "predicates",
  "predicates-core",
@@ -68,28 +68,18 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.2"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
 
 [[package]]
 name = "bstr"
-version = "0.2.17"
+version = "1.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223"
-dependencies = [
- "lazy_static",
- "memchr",
- "regex-automata 0.1.10",
-]
-
-[[package]]
-name = "bstr"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05"
+checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
 dependencies = [
  "memchr",
+ "regex-automata 0.4.6",
  "serde",
 ]
 
@@ -100,19 +90,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
 
 [[package]]
-name = "bytecount"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72feb31ffc86498dacdbd0fcebb56138e7177a8cc5cea4516031d15ae85a742e"
-
-[[package]]
 name = "cc"
-version = "1.0.83"
+version = "1.0.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
-dependencies = [
- "libc",
-]
+checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
 
 [[package]]
 name = "cfg-if"
@@ -129,7 +110,7 @@ dependencies = [
  "atty",
  "bitflags 1.3.2",
  "clap_lex",
- "indexmap",
+ "indexmap 1.9.3",
  "once_cell",
  "strsim",
  "termcolor",
@@ -148,18 +129,18 @@ dependencies = [
 
 [[package]]
 name = "const_format"
-version = "0.2.23"
+version = "0.2.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0936ffe6d0c8d6a51b3b0a73b2acbe925d786f346cf45bfddc8341d79fb7dc8a"
+checksum = "e3a214c7af3d04997541b18d432afaff4c455e79e2029079647e72fc2bd27673"
 dependencies = [
  "const_format_proc_macros",
 ]
 
 [[package]]
 name = "const_format_proc_macros"
-version = "0.2.22"
+version = "0.2.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef196d5d972878a48da7decb7686eded338b4858fbabeed513d63a7c98b2b82d"
+checksum = "c7f6ff08fd20f4f299298a28e2dfa8a8ba1036e6cd2460ac1de7b425d76f2500"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -167,49 +148,29 @@ dependencies = [
 ]
 
 [[package]]
-name = "crossbeam-channel"
-version = "0.5.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
-dependencies = [
- "cfg-if",
- "crossbeam-utils",
-]
-
-[[package]]
 name = "crossbeam-deque"
-version = "0.8.1"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
 dependencies = [
- "cfg-if",
  "crossbeam-epoch",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.8"
+version = "0.9.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1145cf131a2c6ba0615079ab6a638f7e1973ac9c2634fcbeaaad6114246efe8c"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
 dependencies = [
- "autocfg",
- "cfg-if",
  "crossbeam-utils",
- "lazy_static",
- "memoffset",
- "scopeguard",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.8"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38"
-dependencies = [
- "cfg-if",
- "lazy_static",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
 name = "crossterm"
@@ -217,7 +178,7 @@ version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "crossterm_winapi",
  "libc",
  "mio",
@@ -237,20 +198,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "ctor"
-version = "0.1.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f877be4f7c9f246b183111634f75baa039715e3f46ce860677d3b19a69fb229c"
-dependencies = [
- "quote",
- "syn 1.0.95",
-]
-
-[[package]]
 name = "diff"
-version = "0.1.12"
+version = "0.1.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499"
+checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
 
 [[package]]
 name = "difflib"
@@ -260,7 +211,7 @@ checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
 
 [[package]]
 name = "difftastic"
-version = "0.56.1"
+version = "0.58.0"
 dependencies = [
  "assert_cmd",
  "bumpalo",
@@ -270,6 +221,7 @@ dependencies = [
  "crossterm",
  "glob",
  "hashbrown 0.14.3",
+ "home",
  "humansize",
  "ignore",
  "itertools 0.11.0",
@@ -289,6 +241,7 @@ dependencies = [
  "rustc-hash",
  "serde",
  "serde_json",
+ "smallvec",
  "strsim",
  "strum",
  "tree-sitter",
@@ -307,15 +260,15 @@ checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
 
 [[package]]
 name = "either"
-version = "1.6.1"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 
 [[package]]
 name = "env_logger"
-version = "0.10.0"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
 dependencies = [
  "humantime",
  "is-terminal",
@@ -325,20 +278,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
 name = "errno"
-version = "0.3.5"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
 dependencies = [
  "libc",
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "fixedbitset"
-version = "0.4.1"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "279fb028e20b3c4c320317955b77c5e0c9701f05a1d309905d6fc702cdc5053e"
+checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
 
 [[package]]
 name = "float-cmp"
@@ -363,22 +322,22 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
 name = "globset"
-version = "0.4.13"
+version = "0.4.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d"
+checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
 dependencies = [
  "aho-corasick",
- "bstr 1.6.0",
- "fnv",
+ "bstr",
  "log",
- "regex",
+ "regex-automata 0.4.6",
+ "regex-syntax 0.8.2",
 ]
 
 [[package]]
 name = "hashbrown"
-version = "0.11.2"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
 
 [[package]]
 name = "hashbrown"
@@ -407,9 +366,18 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.3"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+
+[[package]]
+name = "home"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
+dependencies = [
+ "windows-sys 0.48.0",
+]
 
 [[package]]
 name = "humansize"
@@ -446,12 +414,22 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "1.7.0"
+version = "1.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5"
+checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
 dependencies = [
  "autocfg",
- "hashbrown 0.11.2",
+ "hashbrown 0.12.3",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.14.3",
 ]
 
 [[package]]
@@ -460,28 +438,27 @@ version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
 dependencies = [
- "hermit-abi 0.3.3",
+ "hermit-abi 0.3.9",
  "libc",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "is-terminal"
-version = "0.4.7"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f"
+checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
 dependencies = [
- "hermit-abi 0.3.3",
- "io-lifetimes",
- "rustix",
- "windows-sys",
+ "hermit-abi 0.3.9",
+ "libc",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "itertools"
-version = "0.10.3"
+version = "0.10.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3"
+checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
 dependencies = [
  "either",
 ]
@@ -497,9 +474,9 @@ dependencies = [
 
 [[package]]
 name = "itoa"
-version = "1.0.9"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
 name = "lazy_static"
@@ -509,15 +486,15 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.149"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libm"
-version = "0.2.7"
+version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
+checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
 
 [[package]]
 name = "libmimalloc-sys"
@@ -552,12 +529,9 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.17"
+version = "0.4.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if",
-]
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
 
 [[package]]
 name = "memchr"
@@ -566,15 +540,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
-name = "memoffset"
-version = "0.6.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
 name = "mimalloc"
 version = "0.1.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -591,21 +556,21 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
 name = "mio"
-version = "0.8.10"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
  "log",
  "wasi",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "nom"
-version = "7.1.1"
+version = "7.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
 dependencies = [
  "memchr",
  "minimal-lexical",
@@ -619,24 +584,14 @@ checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
 
 [[package]]
 name = "num-traits"
-version = "0.2.15"
+version = "0.2.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
-name = "num_cpus"
-version = "1.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
-dependencies = [
- "hermit-abi 0.1.19",
- "libc",
-]
-
-[[package]]
 name = "once_cell"
 version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -644,18 +599,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "os_str_bytes"
-version = "6.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "029d8d0b2f198229de29dca79676f2738ff952edf3fde542eb8bf94d8c21b435"
-
-[[package]]
-name = "output_vt100"
-version = "0.1.3"
+version = "6.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66"
-dependencies = [
- "winapi",
-]
+checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1"
 
 [[package]]
 name = "owo-colors"
@@ -683,17 +629,17 @@ dependencies = [
  "libc",
  "redox_syscall",
  "smallvec",
- "windows-targets",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
 name = "petgraph"
-version = "0.6.1"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51b305cc4569dd4e8765bab46261f67ef5d4d11a4b6e745100ee5dad8948b46c"
+checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
 dependencies = [
  "fixedbitset",
- "indexmap",
+ "indexmap 2.2.6",
 ]
 
 [[package]]
@@ -704,7 +650,7 @@ checksum = "a5aab5be6e4732b473071984b3164dbbfb7a3674d30ea5ff44410b6bcd960c3c"
 dependencies = [
  "difflib",
  "float-cmp",
- "itertools 0.10.3",
+ "itertools 0.10.5",
  "normalize-line-endings",
  "predicates-core",
  "regex",
@@ -712,15 +658,15 @@ dependencies = [
 
 [[package]]
 name = "predicates-core"
-version = "1.0.3"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da1c2388b1513e1b605fcec39a95e0a9e8ef088f71443ef37099fa9ae6673fcb"
+checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174"
 
 [[package]]
 name = "predicates-tree"
-version = "1.0.5"
+version = "1.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d86de6de25020a36c6d3643a86d9a6a9f552107c0559c60ea03551b5e16c032"
+checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf"
 dependencies = [
  "predicates-core",
  "termtree",
@@ -728,13 +674,11 @@ dependencies = [
 
 [[package]]
 name = "pretty_assertions"
-version = "1.3.0"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a25e9bcb20aa780fd0bb16b72403a9064d6b3f22f026946029acb941a50af755"
+checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66"
 dependencies = [
- "ctor",
  "diff",
- "output_vt100",
  "yansi",
 ]
 
@@ -750,9 +694,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.78"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
 dependencies = [
  "unicode-ident",
 ]
@@ -774,9 +718,9 @@ checksum = "59ffec9df464013295b499298811e6a3de31bf8128092135826517db12dee601"
 
 [[package]]
 name = "rayon"
-version = "1.7.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
+checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
 dependencies = [
  "either",
  "rayon-core",
@@ -784,14 +728,12 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.11.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
- "crossbeam-channel",
  "crossbeam-deque",
  "crossbeam-utils",
- "num_cpus",
 ]
 
 [[package]]
@@ -812,24 +754,29 @@ dependencies = [
  "aho-corasick",
  "memchr",
  "regex-automata 0.3.9",
- "regex-syntax",
+ "regex-syntax 0.7.5",
 ]
 
 [[package]]
 name = "regex-automata"
-version = "0.1.10"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+checksum = "59b23e92ee4318893fa3fe3e6fb365258efbfe6ac6ab30f090cdcbb7aa37efa9"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax 0.7.5",
+]
 
 [[package]]
 name = "regex-automata"
-version = "0.3.9"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59b23e92ee4318893fa3fe3e6fb365258efbfe6ac6ab30f090cdcbb7aa37efa9"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-syntax",
+ "regex-syntax 0.8.2",
 ]
 
 [[package]]
@@ -839,6 +786,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
 
 [[package]]
+name = "regex-syntax"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+
+[[package]]
 name = "rustc-hash"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -855,20 +808,20 @@ dependencies = [
  "io-lifetimes",
  "libc",
  "linux-raw-sys",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "rustversion"
-version = "1.0.12"
+version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "ryu"
-version = "1.0.15"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "same-file"
@@ -881,35 +834,35 @@ dependencies = [
 
 [[package]]
 name = "scopeguard"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "serde"
-version = "1.0.176"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76dc28c9523c5d70816e393136b86d48909cfb27cecaa902d338c19ed47164dc"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.176"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4e7b8c5dc823e3b90651ff1d3808419cd14e5ad76de04feaf37da114e7a306f"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.49",
+ "syn",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.104"
+version = "1.0.114"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
 dependencies = [
  "itoa",
  "ryu",
@@ -948,9 +901,9 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.13.1"
+version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "strsim"
@@ -969,33 +922,22 @@ dependencies = [
 
 [[package]]
 name = "strum_macros"
-version = "0.25.1"
+version = "0.25.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6069ca09d878a33f883cc06aaa9718ede171841d3832450354410b718b097232"
+checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.49",
-]
-
-[[package]]
-name = "syn"
-version = "1.0.95"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbaf6116ab8924f39d52792136fb74fd60a80194cf1b1c6ffa6453eef1c3f942"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
+ "syn",
 ]
 
 [[package]]
 name = "syn"
-version = "2.0.49"
+version = "2.0.55"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "915aea9e586f80826ee59f8453c1101f9d1c4b3964cd2460185ee8e299ada496"
+checksum = "002a1b3dbf967edfafc32655d0f377ab0bb7b994aa1d32c8cc7e9b8bf3ebb8f0"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1004,9 +946,9 @@ dependencies = [
 
 [[package]]
 name = "termcolor"
-version = "1.1.3"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
 dependencies = [
  "winapi-util",
 ]
@@ -1018,14 +960,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237"
 dependencies = [
  "rustix",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "termtree"
-version = "0.2.4"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "507e9898683b6c43a9aa55b64259b721b52ba226e0f3779137e50ad114a4c90b"
+checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
 
 [[package]]
 name = "textwrap"
@@ -1038,9 +980,9 @@ dependencies = [
 
 [[package]]
 name = "thread_local"
-version = "1.1.7"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
 dependencies = [
  "cfg-if",
  "once_cell",
@@ -1058,12 +1000,13 @@ dependencies = [
 
 [[package]]
 name = "tree_magic_mini"
-version = "3.0.2"
-source = "git+https://github.com/Wilfred/tree_magic?branch=fix-panic-for-empty-strings#13dd6dda15c7062bd8f7dd5bc9bb5b16ce9ee613"
+version = "3.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77ee137597cdb361b55a4746983e4ac1b35ab6024396a419944ad473bb915265"
 dependencies = [
- "bytecount",
  "fnv",
- "lazy_static",
+ "home",
+ "memchr",
  "nom",
  "once_cell",
  "petgraph",
@@ -1077,21 +1020,21 @@ checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.0"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-width"
-version = "0.1.9"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
 name = "unicode-xid"
-version = "0.2.3"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04"
+checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
 
 [[package]]
 name = "version_check"
@@ -1110,9 +1053,9 @@ dependencies = [
 
 [[package]]
 name = "walkdir"
-version = "2.3.3"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
 dependencies = [
  "same-file",
  "winapi-util",
@@ -1142,9 +1085,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.5"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
 dependencies = [
  "winapi",
 ]
@@ -1161,7 +1104,16 @@ version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
- "windows-targets",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -1170,13 +1122,28 @@ version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
 ]
 
 [[package]]
@@ -1186,42 +1153,84 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+
+[[package]]
 name = "windows_aarch64_msvc"
 version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+
+[[package]]
 name = "windows_i686_gnu"
 version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
+name = "windows_i686_gnu"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+
+[[package]]
 name = "windows_i686_msvc"
 version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
+name = "windows_i686_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+
+[[package]]
 name = "windows_x86_64_gnu"
 version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+
+[[package]]
 name = "windows_x86_64_gnullvm"
 version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+
+[[package]]
 name = "windows_x86_64_msvc"
 version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+
+[[package]]
 name = "wu-diff"
 version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1250,5 +1259,5 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.49",
+ "syn",
 ]
diff --git a/pkgs/tools/text/difftastic/default.nix b/pkgs/tools/text/difftastic/default.nix
index 01f62462fdd8e..5b14aa3225827 100644
--- a/pkgs/tools/text/difftastic/default.nix
+++ b/pkgs/tools/text/difftastic/default.nix
@@ -4,34 +4,29 @@
 , fetchFromGitHub
 , testers
 , difftastic
-, stdenv
 }:
 
 let
   mimallocPatch = fetchpatch {
-    name = "fix-build-on-older-macos-releases.patch";
+    # fixes compilation error on x86_64-darwin
+    # remove after update to libmimalloc-sys >= 0.1.29
+    # (fixed in mimalloc >= 1.7.6 which is included with libmimalloc-sys >= 0.1.29)
     url = "https://github.com/microsoft/mimalloc/commit/40e0507a5959ee218f308d33aec212c3ebeef3bb.patch";
-    sha256 = "sha256-DK0LqsVXXiEVQSQCxZ5jyZMg0UJJx9a/WxzCroYSHZc=";
+    hash = "sha256-DK0LqsVXXiEVQSQCxZ5jyZMg0UJJx9a/WxzCroYSHZc=";
   };
 in
-
 rustPlatform.buildRustPackage rec {
   pname = "difftastic";
-  version = "0.56.1";
+  version = "0.58.0";
 
   src = fetchFromGitHub {
     owner = "wilfred";
     repo = pname;
     rev = version;
-    hash = "sha256-XQzsLowHtgXIKfUWx1Sj1D0F8scb7fNp33Cwfh5XvJI=";
+    hash = "sha256-PTc8/NhWsLcKJj+9ebV/YaWEmyOWKJCYUjmVbr4z2SY=";
   };
 
-  cargoLock = {
-    lockFile = ./Cargo.lock;
-    outputHashes = {
-      "tree_magic_mini-3.0.2" = "sha256-iIX/DeDbquObDPOx/pctVFN4R8GSkD9bPNkNgOLdUJs=";
-    };
-  };
+  cargoLock.lockFile = ./Cargo.lock;
 
   # skip flaky tests
   checkFlags = [
@@ -46,11 +41,11 @@ rustPlatform.buildRustPackage rec {
   passthru.tests.version = testers.testVersion { package = difftastic; };
 
   meta = with lib; {
-    description = "A syntax-aware diff";
+    description = "Syntax-aware diff";
     homepage = "https://github.com/Wilfred/difftastic";
     changelog = "https://github.com/Wilfred/difftastic/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
-    maintainers = with maintainers; [ ethancedwards8 figsoda ];
+    maintainers = with maintainers; [ ethancedwards8 figsoda matthiasbeyer ];
     mainProgram = "difft";
   };
 }
diff --git a/pkgs/tools/text/diffutils/default.nix b/pkgs/tools/text/diffutils/default.nix
index 8c4a160d4b1e5..6c1bc8bf01f13 100644
--- a/pkgs/tools/text/diffutils/default.nix
+++ b/pkgs/tools/text/diffutils/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, xz, coreutils ? null }:
+{ lib, stdenv, fetchurl, updateAutotoolsGnuConfigScriptsHook, xz, coreutils ? null }:
 
 # Note: this package is used for bootstrapping fetchurl, and thus
 # cannot use fetchpatch! All mutable patches (generated by GitHub or
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "info" ];
 
-  nativeBuildInputs = [ (lib.getBin xz) ];
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook (lib.getBin xz) ];
   /* If no explicit coreutils is given, use the one from stdenv. */
   buildInputs = [ coreutils ];
 
diff --git a/pkgs/tools/text/epub2txt2/default.nix b/pkgs/tools/text/epub2txt2/default.nix
index 80a3ebde74547..8ccc01d57b5bc 100644
--- a/pkgs/tools/text/epub2txt2/default.nix
+++ b/pkgs/tools/text/epub2txt2/default.nix
@@ -2,19 +2,19 @@
 
 stdenv.mkDerivation rec {
   pname = "epub2txt2";
-  version = "2.06";
+  version = "2.07";
 
   src = fetchFromGitHub {
     owner = "kevinboone";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-zzcig5XNh9TqUHginsfoC47WrKavqi6k6ezir+OOMJk=";
+    sha256 = "sha256-/P81ZXhB0wyRx2bb/CO7+kTTNspYKoGUpBGLb8Yfb5I=";
   };
 
   makeFlags = [ "CC:=$(CC)" "PREFIX:=$(out)" ];
 
   meta = {
-    description = "A simple command-line utility for Linux, for extracting text from EPUB documents";
+    description = "Simple command-line utility for Linux, for extracting text from EPUB documents";
     homepage = "https://github.com/kevinboone/epub2txt2";
     license = lib.licenses.gpl3Only;
     platforms = lib.platforms.unix;
diff --git a/pkgs/tools/text/fanficfare/default.nix b/pkgs/tools/text/fanficfare/default.nix
index f4cf0f68b45b1..9aee49e391d9f 100644
--- a/pkgs/tools/text/fanficfare/default.nix
+++ b/pkgs/tools/text/fanficfare/default.nix
@@ -1,13 +1,13 @@
 { lib, python3Packages, fetchPypi }:
 
 python3Packages.buildPythonApplication rec {
-  pname = "FanFicFare";
-  version = "4.33.0";
+  pname = "fanficfare";
+  version = "4.35.0";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-1s3YeI4deej+lkDXtFzfBOtATY+jx+KB7JAnLUDZK8w=";
+    hash = "sha256-hPBURlsrr/7c26YFZo5UT7PTs8s+D8BXxjU/uposHjQ=";
   };
 
   nativeBuildInputs = with python3Packages; [
diff --git a/pkgs/tools/text/fastmod/default.nix b/pkgs/tools/text/fastmod/default.nix
index 53d68a7723a6a..e7b2f3b107c97 100644
--- a/pkgs/tools/text/fastmod/default.nix
+++ b/pkgs/tools/text/fastmod/default.nix
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
 
   meta = with lib; {
-    description = "A utility that makes sweeping changes to large, shared code bases";
+    description = "Utility that makes sweeping changes to large, shared code bases";
     mainProgram = "fastmod";
     homepage = "https://github.com/facebookincubator/fastmod";
     license = licenses.asl20;
diff --git a/pkgs/tools/text/frawk/default.nix b/pkgs/tools/text/frawk/default.nix
index 46f73ebd0b9cb..2b9f2e0beaa8e 100644
--- a/pkgs/tools/text/frawk/default.nix
+++ b/pkgs/tools/text/frawk/default.nix
@@ -35,7 +35,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A small programming language for writing short programs processing textual data";
+    description = "Small programming language for writing short programs processing textual data";
     mainProgram = "frawk";
     homepage = "https://github.com/ezrosent/frawk";
     changelog = "https://github.com/ezrosent/frawk/releases/tag/v${version}";
diff --git a/pkgs/tools/text/frogmouth/default.nix b/pkgs/tools/text/frogmouth/default.nix
index e7c9916c13390..b2551b6387d68 100644
--- a/pkgs/tools/text/frogmouth/default.nix
+++ b/pkgs/tools/text/frogmouth/default.nix
@@ -35,7 +35,7 @@ python3.pkgs.buildPythonApplication rec {
   pythonImportsCheck = [ "frogmouth" ];
 
   meta = with lib; {
-    description = "A Markdown browser for your terminal";
+    description = "Markdown browser for your terminal";
     mainProgram = "frogmouth";
     homepage = "https://github.com/Textualize/frogmouth";
     changelog = "https://github.com/Textualize/frogmouth/blob/${src.rev}/ChangeLog.md";
diff --git a/pkgs/tools/text/gawk/default.nix b/pkgs/tools/text/gawk/default.nix
index d85880e82e155..8857fa29d1c63 100644
--- a/pkgs/tools/text/gawk/default.nix
+++ b/pkgs/tools/text/gawk/default.nix
@@ -1,4 +1,5 @@
 { lib, stdenv, fetchurl
+, runtimeShellPackage
 # TODO: links -lsigsegv but loses the reference for some reason
 , withSigsegv ? (false && stdenv.hostPlatform.system != "x86_64-cygwin"), libsigsegv
 , interactive ? false, readline
@@ -39,7 +40,9 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook ]
     ++ lib.optional (doCheck && stdenv.isLinux) glibcLocales;
 
-  buildInputs = lib.optional withSigsegv libsigsegv
+  buildInputs = [
+    runtimeShellPackage
+  ] ++ lib.optional withSigsegv libsigsegv
     ++ lib.optional interactive readline
     ++ lib.optional stdenv.isDarwin locale;
 
diff --git a/pkgs/tools/text/glogg/default.nix b/pkgs/tools/text/glogg/default.nix
index a83baf4aa7619..7a6562aab1430 100644
--- a/pkgs/tools/text/glogg/default.nix
+++ b/pkgs/tools/text/glogg/default.nix
@@ -28,7 +28,7 @@ mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The fast, smart log explorer";
+    description = "Fast, smart log explorer";
     mainProgram = "glogg";
     longDescription = ''
       A multi-platform GUI application to browse and search through long or complex log files. It is designed with programmers and system administrators in mind. glogg can be seen as a graphical, interactive combination of grep and less.
diff --git a/pkgs/tools/text/gnugrep/default.nix b/pkgs/tools/text/gnugrep/default.nix
index 5df81274c6a5d..7298fe881bea1 100644
--- a/pkgs/tools/text/gnugrep/default.nix
+++ b/pkgs/tools/text/gnugrep/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, glibcLocales, fetchurl, pcre2, libiconv, perl }:
+{ lib, stdenv, updateAutotoolsGnuConfigScriptsHook, glibcLocales, fetchurl, pcre2, libiconv, perl, runtimeShellPackage }:
 
 # Note: this package is used for bootstrapping fetchurl, and thus
 # cannot use fetchpatch! All mutable patches (generated by GitHub or
@@ -26,7 +26,8 @@ stdenv.mkDerivation {
   nativeCheckInputs = [ perl glibcLocales ];
   outputs = [ "out" "info" ]; # the man pages are rather small
 
-  buildInputs = [ pcre2 libiconv ];
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
+  buildInputs = [ pcre2 libiconv runtimeShellPackage ];
 
   # cygwin: FAIL: multibyte-white-space
   # freebsd: FAIL mb-non-UTF8-performance
diff --git a/pkgs/tools/text/gnused/default.nix b/pkgs/tools/text/gnused/default.nix
index f493e4f358d65..bc736f418725b 100644
--- a/pkgs/tools/text/gnused/default.nix
+++ b/pkgs/tools/text/gnused/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, perl }:
+{ lib, stdenv, fetchurl, updateAutotoolsGnuConfigScriptsHook, perl }:
 
 stdenv.mkDerivation rec {
   pname = "gnused";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "info" ];
 
-  nativeBuildInputs = [ perl ];
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook perl ];
   preConfigure = "patchShebangs ./build-aux/help2man";
 
   # Prevents attempts of running 'help2man' on cross-built binaries.
diff --git a/pkgs/tools/text/goawk/default.nix b/pkgs/tools/text/goawk/default.nix
index 4d84d133775e3..70c9fb8d55315 100644
--- a/pkgs/tools/text/goawk/default.nix
+++ b/pkgs/tools/text/goawk/default.nix
@@ -34,7 +34,7 @@ buildGoModule rec {
   doCheck = (stdenv.system != "aarch64-darwin");
 
   meta = with lib; {
-    description = "A POSIX-compliant AWK interpreter written in Go";
+    description = "POSIX-compliant AWK interpreter written in Go";
     homepage = "https://benhoyt.com/writings/goawk/";
     license = licenses.mit;
     mainProgram = "goawk";
diff --git a/pkgs/tools/text/grin/default.nix b/pkgs/tools/text/grin/default.nix
index 3e3763d9ef719..5217451a984be 100644
--- a/pkgs/tools/text/grin/default.nix
+++ b/pkgs/tools/text/grin/default.nix
@@ -27,7 +27,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = {
     homepage = "https://github.com/matthew-brett/grin";
-    description = "A grep program configured the way I like it";
+    description = "Grep program configured the way I like it";
     platforms = lib.platforms.all;
     maintainers = [ lib.maintainers.sjagoe ];
   };
diff --git a/pkgs/tools/text/groff/default.nix b/pkgs/tools/text/groff/default.nix
index df06292c4f3ef..6e10144bb587c 100644
--- a/pkgs/tools/text/groff/default.nix
+++ b/pkgs/tools/text/groff/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, perl
+{ lib, stdenv, fetchurl, perl
 , enableGhostscript ? false
 , ghostscript, gawk, libX11, libXaw, libXt, libXmu # for postscript and html output
 , enableHtml ? false, psutils, netpbm # for html output
diff --git a/pkgs/tools/text/gucci/default.nix b/pkgs/tools/text/gucci/default.nix
index 2f448450661bd..c4e0ef81503da 100644
--- a/pkgs/tools/text/gucci/default.nix
+++ b/pkgs/tools/text/gucci/default.nix
@@ -29,7 +29,7 @@ buildGoModule rec {
   ];
 
   meta = with lib; {
-    description = "A simple CLI templating tool written in golang";
+    description = "Simple CLI templating tool written in golang";
     mainProgram = "gucci";
     homepage = "https://github.com/noqcks/gucci";
     license = licenses.mit;
diff --git a/pkgs/tools/text/hck/default.nix b/pkgs/tools/text/hck/default.nix
index fe8aa63c0cff8..1a8238059e4f1 100644
--- a/pkgs/tools/text/hck/default.nix
+++ b/pkgs/tools/text/hck/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
-    description = "A close to drop in replacement for cut that can use a regex delimiter instead of a fixed string";
+    description = "Close to drop in replacement for cut that can use a regex delimiter instead of a fixed string";
     homepage = "https://github.com/sstadick/hck";
     changelog = "https://github.com/sstadick/hck/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit /* or */ unlicense ];
diff --git a/pkgs/tools/text/hcledit/default.nix b/pkgs/tools/text/hcledit/default.nix
index 1d0d4fd6464ab..86c1e226fd0e9 100644
--- a/pkgs/tools/text/hcledit/default.nix
+++ b/pkgs/tools/text/hcledit/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
   vendorHash = "sha256-huDM8kPA6vQcoJTxiWzVFZKHrTKw1ip32hMZJYZM0og=";
 
   meta = with lib; {
-    description = "A command line editor for HCL";
+    description = "Command line editor for HCL";
     mainProgram = "hcledit";
     homepage = "https://github.com/minamijoyo/hcledit";
     license = licenses.mit;
diff --git a/pkgs/tools/text/highlight/default.nix b/pkgs/tools/text/highlight/default.nix
index d26d4fcc84238..312c849214995 100644
--- a/pkgs/tools/text/highlight/default.nix
+++ b/pkgs/tools/text/highlight/default.nix
@@ -3,13 +3,13 @@
 let
   self = stdenv.mkDerivation rec {
     pname = "highlight";
-    version = "4.11";
+    version = "4.12";
 
     src = fetchFromGitLab {
       owner = "saalen";
       repo = "highlight";
       rev = "v${version}";
-      sha256 = "sha256-8QWcpSYkzw62XFyIqisM2x1AOqzVUPUYgs5bPA4liSw=";
+      sha256 = "sha256-TFMU9owxBGrrbatk7Jj9xP8OEJNjXnjbwnW6Xq34awI=";
     };
 
     enableParallelBuilding = true;
diff --git a/pkgs/tools/text/html-tidy/default.nix b/pkgs/tools/text/html-tidy/default.nix
index 1f9c04b7c9dbb..16e6035cef89e 100644
--- a/pkgs/tools/text/html-tidy/default.nix
+++ b/pkgs/tools/text/html-tidy/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   # https://github.com/htacg/tidy-html5/issues/326#issuecomment-160322107
 
   meta = with lib; {
-    description = "A HTML validator and `tidier'";
+    description = "HTML validator and `tidier'";
     longDescription = ''
       HTML Tidy is a command-line tool and C library that can be
       used to validate and fix HTML data.
diff --git a/pkgs/tools/text/html2text/default.nix b/pkgs/tools/text/html2text/default.nix
index 4bcf02b5c8485..247ee8e814df7 100644
--- a/pkgs/tools/text/html2text/default.nix
+++ b/pkgs/tools/text/html2text/default.nix
@@ -1,35 +1,24 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchFromGitLab, autoreconfHook, libiconv }:
 
 stdenv.mkDerivation rec {
   pname = "html2text";
-  version = "1.3.2a";
+  version = "2.2.3";
 
-  src = fetchurl {
-    url = "http://www.mbayer.de/html2text/downloads/html2text-${version}.tar.gz";
-    sha256 = "000b39d5d910b867ff7e087177b470a1e26e2819920dcffd5991c33f6d480392";
+  src = fetchFromGitLab {
+    owner = "grobian";
+    repo = "html2text";
+    rev = "v${version}";
+    hash = "sha256-7Ch51nJ5BeRqs4PEIPnjCGk+Nm2ydgJQCtkcpihXun8=";
   };
 
-  preConfigure = ''
-    substituteInPlace configure \
-        --replace /bin/echo echo \
-        --replace CXX=unknown ':'
-  '' + lib.optionalString stdenv.cc.isClang ''
-    substituteInPlace HTMLParser.C \
-      --replace "register " ""
-  '';
+  nativeBuildInputs = [ autoreconfHook ];
 
-  # the --prefix has no effect
-  installPhase = ''
-    mkdir -p $out/bin $out/man/man{1,5}
-    cp html2text $out/bin
-    cp html2text.1.gz $out/man/man1
-    cp html2textrc.5.gz $out/man/man5
-  '';
+  buildInputs = lib.optional stdenv.isDarwin libiconv;
 
   meta = {
     description = "Convert HTML to plain text";
     mainProgram = "html2text";
-    homepage = "http://www.mbayer.de/html2text/";
+    homepage = "https://gitlab.com/grobian/html2text";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.eikek ];
diff --git a/pkgs/tools/text/ispell/default.nix b/pkgs/tools/text/ispell/default.nix
index 2f7b25d5fa255..3dea94d0912b7 100644
--- a/pkgs/tools/text/ispell/default.nix
+++ b/pkgs/tools/text/ispell/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An interactive spell-checking program for Unix";
+    description = "Interactive spell-checking program for Unix";
     homepage = "https://www.cs.hmc.edu/~geoff/ispell.html";
     license = licenses.free;
     platforms = platforms.unix;
diff --git a/pkgs/tools/text/jen/default.nix b/pkgs/tools/text/jen/default.nix
index 0ed0548c0d506..cfd8298c37258 100644
--- a/pkgs/tools/text/jen/default.nix
+++ b/pkgs/tools/text/jen/default.nix
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A simple CLI generation tool for creating large datasets";
+    description = "Simple CLI generation tool for creating large datasets";
     mainProgram = "jen";
     homepage = "https://github.com/whitfin/jen";
     license = licenses.mit;
diff --git a/pkgs/tools/text/jotdown/default.nix b/pkgs/tools/text/jotdown/default.nix
index 769b5e2968874..c3b61b4f739bf 100644
--- a/pkgs/tools/text/jotdown/default.nix
+++ b/pkgs/tools/text/jotdown/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-bkMJ7ApM+GsshwIFuYsH19CnU6ebq0GfwQvVp9QD46A=";
 
   meta = with lib; {
-    description = "A minimal Djot CLI";
+    description = "Minimal Djot CLI";
     mainProgram = "jotdown";
     homepage = "https://github.com/hellux/jotdown";
     changelog = "https://github.com/hellux/jotdown/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/tools/text/jumanpp/default.nix b/pkgs/tools/text/jumanpp/default.nix
index af141c873b3b4..382b2f319c142 100644
--- a/pkgs/tools/text/jumanpp/default.nix
+++ b/pkgs/tools/text/jumanpp/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
     ++ lib.optional stdenv.isDarwin libiconv;
 
   meta = with lib; {
-    description = "A Japanese morphological analyser using a recurrent neural network language model (RNNLM)";
+    description = "Japanese morphological analyser using a recurrent neural network language model (RNNLM)";
     mainProgram = "jumanpp";
     longDescription = ''
       JUMAN++ is a new morphological analyser that considers semantic
diff --git a/pkgs/tools/text/kdiff3/default.nix b/pkgs/tools/text/kdiff3/default.nix
index c22814372314b..456b2c568d820 100644
--- a/pkgs/tools/text/kdiff3/default.nix
+++ b/pkgs/tools/text/kdiff3/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "kdiff3";
-  version = "1.11.0";
+  version = "1.11.1";
 
   src = fetchurl {
     url = "mirror://kde/stable/kdiff3/kdiff3-${finalAttrs.version}.tar.xz";
-    hash = "sha256-O/N5VMoZo2Xze1WLV0yPvTZnGcCH17gheI0++tDESFE=";
+    hash = "sha256-MPFKWrbg1VEWgpF42CdlTDDoQhwE/pcA085npTCEYpg=";
   };
 
   nativeBuildInputs = [ extra-cmake-modules kdoctools wrapQtAppsHook ];
diff --git a/pkgs/tools/text/languagetool/default.nix b/pkgs/tools/text/languagetool/default.nix
index 58525bdeae4c7..df634c510c8a8 100644
--- a/pkgs/tools/text/languagetool/default.nix
+++ b/pkgs/tools/text/languagetool/default.nix
@@ -36,6 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ edwtjo ];
     platforms = jre.meta.platforms;
-    description = "A proofreading program for English, French German, Polish, and more";
+    description = "Proofreading program for English, French German, Polish, and more";
   };
 }
diff --git a/pkgs/tools/text/link-grammar/default.nix b/pkgs/tools/text/link-grammar/default.nix
index 0406c41d1a889..68d38d7505d48 100644
--- a/pkgs/tools/text/link-grammar/default.nix
+++ b/pkgs/tools/text/link-grammar/default.nix
@@ -54,7 +54,7 @@ link-grammar = stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A Grammar Checking library";
+    description = "Grammar Checking library";
     homepage = "https://www.abisource.com/projects/link-grammar/";
     changelog = "https://github.com/opencog/link-grammar/blob/link-grammar-${version}/ChangeLog";
     license = licenses.lgpl21Only;
diff --git a/pkgs/tools/text/mark/default.nix b/pkgs/tools/text/mark/default.nix
index ca42b2687edc9..8aaa5c09b6706 100644
--- a/pkgs/tools/text/mark/default.nix
+++ b/pkgs/tools/text/mark/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" "-X main.version=${version}" ];
 
   meta = with lib; {
-    description = "A tool for syncing your markdown documentation with Atlassian Confluence pages";
+    description = "Tool for syncing your markdown documentation with Atlassian Confluence pages";
     mainProgram = "mark";
     homepage = "https://github.com/kovetskiy/mark";
     license = licenses.asl20;
diff --git a/pkgs/tools/text/markdownlint-cli/default.nix b/pkgs/tools/text/markdownlint-cli/default.nix
index 736c59d2c5cf0..12b19d3a71655 100644
--- a/pkgs/tools/text/markdownlint-cli/default.nix
+++ b/pkgs/tools/text/markdownlint-cli/default.nix
@@ -5,16 +5,16 @@
 
 buildNpmPackage rec {
   pname = "markdownlint-cli";
-  version = "0.40.0";
+  version = "0.41.0";
 
   src = fetchFromGitHub {
     owner = "igorshubovych";
     repo = "markdownlint-cli";
     rev = "v${version}";
-    hash = "sha256-h9h1qJ6xKQRRNSr3PsMeuMMyzfJbq49BluKvhJK86v4=";
+    hash = "sha256-qRbfOxMCm5pUAi0KHookOOnKaTShBUkTkrqZX4QGezk=";
   };
 
-  npmDepsHash = "sha256-Ez83Q/zXF61L0hoEb+i4h8oyelrHfgHueAW2mqhCjMQ=";
+  npmDepsHash = "sha256-UwyjaEKYA81J0DR2yFqYVp4e7l3Jol/R8hgaijNpBaU=";
 
   dontNpmBuild = true;
 
diff --git a/pkgs/tools/text/markdownlint-cli2/default.nix b/pkgs/tools/text/markdownlint-cli2/default.nix
index 86e1338a09ef3..7ffacaa08db75 100644
--- a/pkgs/tools/text/markdownlint-cli2/default.nix
+++ b/pkgs/tools/text/markdownlint-cli2/default.nix
@@ -24,7 +24,7 @@ buildNpmPackage rec {
 
   meta = {
     changelog = "https://github.com/DavidAnson/markdownlint-cli2/blob/${src.rev}/CHANGELOG.md";
-    description = "A fast, flexible, configuration-based command-line interface for linting Markdown/CommonMark files with the markdownlint library";
+    description = "Fast, flexible, configuration-based command-line interface for linting Markdown/CommonMark files with the markdownlint library";
     homepage = "https://github.com/DavidAnson/markdownlint-cli2";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ natsukium ];
diff --git a/pkgs/tools/text/mdbook-admonish/default.nix b/pkgs/tools/text/mdbook-admonish/default.nix
index 442620f87265b..f579315cd9084 100644
--- a/pkgs/tools/text/mdbook-admonish/default.nix
+++ b/pkgs/tools/text/mdbook-admonish/default.nix
@@ -2,21 +2,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook-admonish";
-  version = "1.16.0";
+  version = "1.17.1";
 
   src = fetchFromGitHub {
     owner = "tommilligan";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-/P9cHxeo2HZ11ErdAULlZt1VwmVqs4hoC8inXQiGLj4=";
+    hash = "sha256-Jj3mbsH/rFrUTWcgT4+KQJ2Bae58STHBB+7oZwbrhLk=";
   };
 
-  cargoHash = "sha256-d/jbokKsnuaJfKHQhtXVoD/JoNdhlZpnwRkgOw15p+Y=";
+  cargoHash = "sha256-a2JGpIvI65djxyB1LZFWgIQmhsLPLhiYkyvqKwysgQo=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
   meta = with lib; {
-    description = "A preprocessor for mdbook to add Material Design admonishments";
+    description = "Preprocessor for mdbook to add Material Design admonishments";
     mainProgram = "mdbook-admonish";
     license = licenses.mit;
     maintainers = with maintainers; [ jmgilman Frostman matthiasbeyer ];
diff --git a/pkgs/tools/text/mdbook-footnote/default.nix b/pkgs/tools/text/mdbook-footnote/default.nix
index 01777669c4afa..7beeb3e33c635 100644
--- a/pkgs/tools/text/mdbook-footnote/default.nix
+++ b/pkgs/tools/text/mdbook-footnote/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
   meta = with lib; {
-    description = "A preprocessor for mdbook to support the inclusion of automatically numbered footnotes";
+    description = "Preprocessor for mdbook to support the inclusion of automatically numbered footnotes";
     mainProgram = "mdbook-footnote";
     homepage = "https://github.com/daviddrysdale/mdbook-footnote";
     license = licenses.asl20;
diff --git a/pkgs/tools/text/mdbook-graphviz/default.nix b/pkgs/tools/text/mdbook-graphviz/default.nix
index 43171c92dc96f..9dc9f1df0e021 100644
--- a/pkgs/tools/text/mdbook-graphviz/default.nix
+++ b/pkgs/tools/text/mdbook-graphviz/default.nix
@@ -2,23 +2,23 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook-graphviz";
-  version = "0.1.7";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "dylanowen";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-FuAjuU4IXXuas+ubSuTMrZiYTGcZCuLTCSTJXtY2nlw=";
+    hash = "sha256-myASia/nkZmAf00lZ357Sh3YV73pCBrZAIRhSzFkZa0=";
   };
 
-  cargoHash = "sha256-d4s9wmjqMHjev1Y4nAobFnCc5NTdklXcs7XTRXFMEjU=";
+  cargoHash = "sha256-UB/l+rcVHkrHv/fybDy/UjrJbVksWgt9JRQC118/kGM=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
   nativeCheckInputs = [ graphviz ];
 
   meta = with lib; {
-    description = "A preprocessor for mdbook, rendering Graphviz graphs to HTML at build time";
+    description = "Preprocessor for mdbook, rendering Graphviz graphs to HTML at build time";
     mainProgram = "mdbook-graphviz";
     homepage = "https://github.com/dylanowen/mdbook-graphviz";
     changelog = "https://github.com/dylanowen/mdbook-graphviz/releases/tag/v${version}";
diff --git a/pkgs/tools/text/mdbook-i18n-helpers/default.nix b/pkgs/tools/text/mdbook-i18n-helpers/default.nix
index e38da146b1fa6..f9343e1637981 100644
--- a/pkgs/tools/text/mdbook-i18n-helpers/default.nix
+++ b/pkgs/tools/text/mdbook-i18n-helpers/default.nix
@@ -5,17 +5,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook-i18n-helpers";
-  version = "0.3.2";
+  version = "0.3.4";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "mdbook-i18n-helpers";
     # TODO fix once upstream uses semver for tags again
     rev = "refs/tags/mdbook-i18n-helpers-${version}";
-    hash = "sha256-+lXIqq8T6jUkvxzvUnvRDmJg6BnT6rNK67kTm3krR0E=";
+    hash = "sha256-nIavOBWPyCmCLwPcDbjjG1sa71HObGnhms9sSCAR2iA=";
   };
 
-  cargoHash = "sha256-xQwag3mlcLKI2ERhp+Sug8FZ6LMxnG4P1JaZNtrzdk8=";
+  cargoHash = "sha256-bBUgsZHvJPwsdM3DjhaoAvIkPXQ6gzPOdfcE5rAnMQk=";
 
   meta = with lib; {
     description = "Helpers for a mdbook i18n workflow based on Gettext";
diff --git a/pkgs/tools/text/mdbook-katex/default.nix b/pkgs/tools/text/mdbook-katex/default.nix
index f914dedaf6aa6..b6c2a1ec1d304 100644
--- a/pkgs/tools/text/mdbook-katex/default.nix
+++ b/pkgs/tools/text/mdbook-katex/default.nix
@@ -2,19 +2,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook-katex";
-  version = "0.8.1";
+  version = "0.9.0";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-mVgI2lvT4w5+Tpq3Sx7j86LHFnuwI4bAAAqrUkiF1B4=";
+    hash = "sha256-OTMPf/ZlUtqKz8Lb0uFOhad33N6SaCIZ86I2ajZ19fU=";
   };
 
-  cargoHash = "sha256-ps31HGsAqWJBTP7HNLjfTz610ihDlvfAvlRHqZR01No=";
+  cargoHash = "sha256-U8uDcNkEyz7zAqCTthY5SVGshsJRKRaoBLOpBpQ9sho=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
   meta = with lib; {
-    description = "A preprocessor for mdbook, rendering LaTeX equations to HTML at build time";
+    description = "Preprocessor for mdbook, rendering LaTeX equations to HTML at build time";
     mainProgram = "mdbook-katex";
     homepage = "https://github.com/lzanini/${pname}";
     license = [ licenses.mit ];
diff --git a/pkgs/tools/text/mdbook-linkcheck/default.nix b/pkgs/tools/text/mdbook-linkcheck/default.nix
index b8d19d01e7633..878b93b055de0 100644
--- a/pkgs/tools/text/mdbook-linkcheck/default.nix
+++ b/pkgs/tools/text/mdbook-linkcheck/default.nix
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   passthru.tests.version = testers.testVersion { package = mdbook-linkcheck; };
 
   meta = with lib; {
-    description = "A backend for `mdbook` which will check your links for you";
+    description = "Backend for `mdbook` which will check your links for you";
     mainProgram = "mdbook-linkcheck";
     homepage = "https://github.com/Michael-F-Bryan/mdbook-linkcheck";
     license = licenses.mit;
diff --git a/pkgs/tools/text/mdbook-mermaid/default.nix b/pkgs/tools/text/mdbook-mermaid/default.nix
index 2dafb13d508cd..52211b2737108 100644
--- a/pkgs/tools/text/mdbook-mermaid/default.nix
+++ b/pkgs/tools/text/mdbook-mermaid/default.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A preprocessor for mdbook to add mermaid.js support";
+    description = "Preprocessor for mdbook to add mermaid.js support";
     mainProgram = "mdbook-mermaid";
     homepage = "https://github.com/badboy/mdbook-mermaid";
     changelog = "https://github.com/badboy/mdbook-mermaid/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/tools/text/mdbook-pdf/default.nix b/pkgs/tools/text/mdbook-pdf/default.nix
index 0b3b0bfbc8606..472f5e3b86290 100644
--- a/pkgs/tools/text/mdbook-pdf/default.nix
+++ b/pkgs/tools/text/mdbook-pdf/default.nix
@@ -43,7 +43,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A backend for mdBook written in Rust for generating PDF";
+    description = "Backend for mdBook written in Rust for generating PDF";
     mainProgram = "mdbook-pdf";
     homepage = "https://github.com/HollowMan6/mdbook-pdf";
     changelog = "https://github.com/HollowMan6/mdbook-pdf/releases/tag/v${version}";
diff --git a/pkgs/tools/text/mdbook-toc/default.nix b/pkgs/tools/text/mdbook-toc/default.nix
index 3ee6fb6e814f5..a9c3855964b58 100644
--- a/pkgs/tools/text/mdbook-toc/default.nix
+++ b/pkgs/tools/text/mdbook-toc/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
   meta = with lib; {
-    description = "A preprocessor for mdbook to add inline Table of Contents support";
+    description = "Preprocessor for mdbook to add inline Table of Contents support";
     mainProgram = "mdbook-toc";
     homepage = "https://github.com/badboy/mdbook-toc";
     license = [ licenses.mpl20 ];
diff --git a/pkgs/tools/text/opencc/default.nix b/pkgs/tools/text/opencc/default.nix
index 5cc8594741185..bc4630b871787 100644
--- a/pkgs/tools/text/opencc/default.nix
+++ b/pkgs/tools/text/opencc/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/BYVoid/OpenCC";
     license = licenses.asl20;
-    description = "A project for conversion between Traditional and Simplified Chinese";
+    description = "Project for conversion between Traditional and Simplified Chinese";
     longDescription = ''
       Open Chinese Convert (OpenCC) is an opensource project for conversion between
       Traditional Chinese and Simplified Chinese, supporting character-level conversion,
diff --git a/pkgs/tools/text/paperoni/default.nix b/pkgs/tools/text/paperoni/default.nix
index 9e188c6d55083..1ceb29f1265a6 100644
--- a/pkgs/tools/text/paperoni/default.nix
+++ b/pkgs/tools/text/paperoni/default.nix
@@ -42,7 +42,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "An article extractor in Rust";
+    description = "Article extractor in Rust";
     mainProgram = "paperoni";
     homepage = "https://github.com/hipstermojo/paperoni";
     changelog = "https://github.com/hipstermojo/paperoni/releases/tag/${src.rev}";
diff --git a/pkgs/tools/text/percollate/default.nix b/pkgs/tools/text/percollate/default.nix
index 2a7f8eaec3546..09c749a1680b1 100644
--- a/pkgs/tools/text/percollate/default.nix
+++ b/pkgs/tools/text/percollate/default.nix
@@ -2,21 +2,21 @@
 
 buildNpmPackage rec {
   pname = "percollate";
-  version = "4.2.0";
+  version = "4.2.1";
 
   src = fetchFromGitHub {
     owner = "danburzo";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-AmvdigxLZA3lgT48Z9EVEWOC92kWNA2ve37RMJTR0UA=";
+    hash = "sha256-vGBGw9dUOSvSqM4WN53bb2LRduLjR6fW99C0ScdMVXk=";
   };
 
-  npmDepsHash = "sha256-21Q47puHZ8/jXIlLFrro87hOYahBjov8Pbg/Z2wgt+g=";
+  npmDepsHash = "sha256-Qne4XjUmJS5e6x380CFY3Kd7/5coXHMxniMfqYIHQcQ=";
 
   dontNpmBuild = true;
 
   # Dev dependencies include an unnecessary Java dependency (epubchecker)
-  # https://github.com/danburzo/percollate/blob/v4.2.0/package.json#L40
+  # https://github.com/danburzo/percollate/blob/v4.2.1/package.json#L40
   npmInstallFlags = [ "--omit=dev" ];
 
   nativeBuildInputs = [ makeWrapper ];
@@ -35,7 +35,7 @@ buildNpmPackage rec {
   '';
 
   meta = with lib; {
-    description = "A command-line tool to turn web pages into readable PDF, EPUB, HTML, or Markdown docs";
+    description = "Command-line tool to turn web pages into readable PDF, EPUB, HTML, or Markdown docs";
     homepage = "https://github.com/danburzo/percollate";
     license = licenses.mit;
     maintainers = [ maintainers.austinbutler ];
diff --git a/pkgs/tools/text/pinyin-tool/default.nix b/pkgs/tools/text/pinyin-tool/default.nix
index 40ca31fe53a7e..9d434d1aa98f0 100644
--- a/pkgs/tools/text/pinyin-tool/default.nix
+++ b/pkgs/tools/text/pinyin-tool/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
   meta = with lib; {
-    description = "A simple command line tool for converting Chinese characters to space-separate pinyin words";
+    description = "Simple command line tool for converting Chinese characters to space-separate pinyin words";
     mainProgram = "pinyin-tool";
     homepage = "https://github.com/briankung/pinyin-tool";
     license = licenses.mit;
diff --git a/pkgs/tools/text/platinum-searcher/default.nix b/pkgs/tools/text/platinum-searcher/default.nix
index d0128fcfd0e44..92386af9cb34e 100644
--- a/pkgs/tools/text/platinum-searcher/default.nix
+++ b/pkgs/tools/text/platinum-searcher/default.nix
@@ -25,7 +25,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/monochromegane/the_platinum_searcher";
-    description = "A code search tool similar to ack and the_silver_searcher(ag)";
+    description = "Code search tool similar to ack and the_silver_searcher(ag)";
     mainProgram = "pt";
     license = licenses.mit;
   };
diff --git a/pkgs/tools/text/pn/default.nix b/pkgs/tools/text/pn/default.nix
index a228f093c3467..ddb6e6ea1f888 100644
--- a/pkgs/tools/text/pn/default.nix
+++ b/pkgs/tools/text/pn/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libphonenumber icu protobuf ];
 
   meta = with lib; {
-    description = "A libphonenumber command-line wrapper";
+    description = "Libphonenumber command-line wrapper";
     mainProgram = "pn";
     homepage = "https://github.com/Orange-OpenSource/pn";
     license = licenses.asl20;
diff --git a/pkgs/tools/text/pomsky/default.nix b/pkgs/tools/text/pomsky/default.nix
index 65b67b58fa400..d86b138861bf2 100644
--- a/pkgs/tools/text/pomsky/default.nix
+++ b/pkgs/tools/text/pomsky/default.nix
@@ -35,7 +35,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A portable, modern regular expression language";
+    description = "Portable, modern regular expression language";
     mainProgram = "pomsky";
     homepage = "https://pomsky-lang.org";
     changelog = "https://github.com/pomsky-lang/pomsky/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/tools/text/popfile/default.nix b/pkgs/tools/text/popfile/default.nix
index 2ab51fa24a308..b902a75bb4767 100644
--- a/pkgs/tools/text/popfile/default.nix
+++ b/pkgs/tools/text/popfile/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "An email classification system that automatically sorts messages and fights spam";
+    description = "Email classification system that automatically sorts messages and fights spam";
     homepage = "https://getpopfile.org/";
     license = lib.licenses.gpl2Only;
 
diff --git a/pkgs/tools/text/proselint/default.nix b/pkgs/tools/text/proselint/default.nix
index 2f62484d980a0..904eb2c5363fa 100644
--- a/pkgs/tools/text/proselint/default.nix
+++ b/pkgs/tools/text/proselint/default.nix
@@ -14,7 +14,7 @@ buildPythonApplication rec {
   propagatedBuildInputs = [ click future six ];
 
   meta = with lib; {
-    description = "A linter for prose";
+    description = "Linter for prose";
     mainProgram = "proselint";
     homepage = "http://proselint.com";
     license = licenses.bsd3;
diff --git a/pkgs/tools/text/rare-regex/default.nix b/pkgs/tools/text/rare-regex/default.nix
index 6dbd062ef61c3..b565ed8aded26 100644
--- a/pkgs/tools/text/rare-regex/default.nix
+++ b/pkgs/tools/text/rare-regex/default.nix
@@ -10,13 +10,13 @@
 
 buildGoModule rec {
   pname = "rare";
-  version = "0.3.3";
+  version = "0.3.4";
 
   src = fetchFromGitHub {
     owner = "zix99";
     repo = "rare";
     rev = version;
-    hash = "sha256-83iHYWMdLOzWDu/WW2TN8D2gUe2Y74aGBUjfHIa9ki8=";
+    hash = "sha256-T27RBIrIXlhFBjzNgN6B49qgTHcek8MajXlbRC5DTMs=";
   };
 
   vendorHash = "sha256-wUOtxNjL/4MosACCzPTWKWrnMZhxINfN1ppkRsqDh9M=";
@@ -43,7 +43,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A fast text scanner/regex extractor and realtime summarizer";
+    description = "Fast text scanner/regex extractor and realtime summarizer";
     homepage = "https://rare.zdyn.net";
     changelog = "https://github.com/zix99/rare/releases/tag/${src.rev}";
     license = licenses.gpl3Plus;
diff --git a/pkgs/tools/text/repgrep/default.nix b/pkgs/tools/text/repgrep/default.nix
index 607aa230569b3..1fb6156dfc4ec 100644
--- a/pkgs/tools/text/repgrep/default.nix
+++ b/pkgs/tools/text/repgrep/default.nix
@@ -43,7 +43,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "An interactive replacer for ripgrep that makes it easy to find and replace across files on the command line";
+    description = "Interactive replacer for ripgrep that makes it easy to find and replace across files on the command line";
     homepage = "https://github.com/acheronfail/repgrep";
     changelog = "https://github.com/acheronfail/repgrep/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ mit asl20 unlicense ];
diff --git a/pkgs/tools/text/replace/default.nix b/pkgs/tools/text/replace/default.nix
index 62b83636b37c9..61c6a65322d14 100644
--- a/pkgs/tools/text/replace/default.nix
+++ b/pkgs/tools/text/replace/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   patches = [./malloc.patch];
 
   meta = {
-    description = "A tool to replace verbatim strings";
+    description = "Tool to replace verbatim strings";
     homepage = "https://replace.richardlloyd.org.uk/";
     mainProgram = "replace-literal";
     platforms = lib.platforms.unix;
diff --git a/pkgs/tools/text/rgxg/default.nix b/pkgs/tools/text/rgxg/default.nix
index f2f4870d8adf2..4cc1722392ecf 100644
--- a/pkgs/tools/text/rgxg/default.nix
+++ b/pkgs/tools/text/rgxg/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A C library and a command-line tool to generate (extended) regular expressions";
+    description = "C library and a command-line tool to generate (extended) regular expressions";
     mainProgram = "rgxg";
     license = licenses.zlib;
     maintainers = with maintainers; [ hloeffler ];
diff --git a/pkgs/tools/text/riffdiff/default.nix b/pkgs/tools/text/riffdiff/default.nix
index 6ad13776a23bc..aadb6f26354bb 100644
--- a/pkgs/tools/text/riffdiff/default.nix
+++ b/pkgs/tools/text/riffdiff/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-w3oDpJMsfV9mIWI44YgOsNZH2vahSRCSJnYpFWBx/eU=";
 
   meta = with lib; {
-    description = "A diff filter highlighting which line parts have changed";
+    description = "Diff filter highlighting which line parts have changed";
     homepage = "https://github.com/walles/riff";
     license = licenses.mit;
     maintainers = with maintainers; [ johnpyp ];
diff --git a/pkgs/tools/text/ripgrep/default.nix b/pkgs/tools/text/ripgrep/default.nix
index 427625a0000f8..35e56b7fb3a49 100644
--- a/pkgs/tools/text/ripgrep/default.nix
+++ b/pkgs/tools/text/ripgrep/default.nix
@@ -53,7 +53,7 @@ in rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A utility that combines the usability of The Silver Searcher with the raw speed of grep";
+    description = "Utility that combines the usability of The Silver Searcher with the raw speed of grep";
     homepage = "https://github.com/BurntSushi/ripgrep";
     changelog = "https://github.com/BurntSushi/ripgrep/releases/tag/${version}";
     license = with licenses; [ unlicense /* or */ mit ];
diff --git a/pkgs/tools/text/rnr/default.nix b/pkgs/tools/text/rnr/default.nix
index b2d38832a4d5d..fbc4f1b382f8e 100644
--- a/pkgs/tools/text/rnr/default.nix
+++ b/pkgs/tools/text/rnr/default.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
   cargoSha256 = "sha256-+oDRNBQ03MknhcTpZFKt0ipJY43LPOKbGF014rrs6dw=";
 
   meta = with lib; {
-    description = "A command-line tool to batch rename files and directories";
+    description = "Command-line tool to batch rename files and directories";
     mainProgram = "rnr";
     homepage = "https://github.com/ismaelgv/rnr";
     changelog = "https://github.com/ismaelgv/rnr/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/tools/text/runiq/default.nix b/pkgs/tools/text/runiq/default.nix
index 52386bb0f24a0..330c4cdbf930c 100644
--- a/pkgs/tools/text/runiq/default.nix
+++ b/pkgs/tools/text/runiq/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "An efficient way to filter duplicate lines from input, à la uniq";
+    description = "Efficient way to filter duplicate lines from input, à la uniq";
     mainProgram = "runiq";
     homepage = "https://github.com/whitfin/runiq";
     license = licenses.mit;
diff --git a/pkgs/tools/text/sad/default.nix b/pkgs/tools/text/sad/default.nix
index d0c6e430e7263..a3fba1a8d088a 100644
--- a/pkgs/tools/text/sad/default.nix
+++ b/pkgs/tools/text/sad/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sad";
-  version = "0.4.28";
+  version = "0.4.29";
 
   src = fetchFromGitHub {
     owner = "ms-jpq";
     repo = "sad";
     rev = "refs/tags/v${version}";
-    hash = "sha256-9zsNYUYUQ3RmJQN7uf+YQjywr7rRAIx5zz6EYkbN8/o=";
+    hash = "sha256-TLVUvz/phAy+ljIsdv4GVSFHTAZ5ywQs32WHsu9g9Fc=";
   };
 
-  cargoHash = "sha256-OSVG1sFSLKkVsgI0I2mYTszcPGlfOL1Md/aCpMf6Eow=";
+  cargoHash = "sha256-4XmTxeKbdC4HRownFlEc4GrSVimKkQg/yNI0us7gzQI=";
 
   nativeBuildInputs = [ python3 ];
 
diff --git a/pkgs/tools/text/scraper/default.nix b/pkgs/tools/text/scraper/default.nix
index 42b8c91effe08..0c4afcad4f87a 100644
--- a/pkgs/tools/text/scraper/default.nix
+++ b/pkgs/tools/text/scraper/default.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A tool to query HTML files with CSS selectors";
+    description = "Tool to query HTML files with CSS selectors";
     mainProgram = "scraper";
     homepage = "https://github.com/causal-agent/scraper";
     changelog = "https://github.com/causal-agent/scraper/releases/tag/v${version}";
diff --git a/pkgs/tools/text/seehecht/default.nix b/pkgs/tools/text/seehecht/default.nix
index 55c02a8c90c60..9a7b1f936a99d 100644
--- a/pkgs/tools/text/seehecht/default.nix
+++ b/pkgs/tools/text/seehecht/default.nix
@@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A tool to quickly open a markdown document with already filled out frontmatter";
+    description = "Tool to quickly open a markdown document with already filled out frontmatter";
     license = licenses.lgpl3Only;
     platforms = platforms.all;
     maintainers = with maintainers; [ annaaurora ];
diff --git a/pkgs/tools/text/sgml/openjade/default.nix b/pkgs/tools/text/sgml/openjade/default.nix
index 87bc8e7a8aed1..60fa161d20c50 100644
--- a/pkgs/tools/text/sgml/openjade/default.nix
+++ b/pkgs/tools/text/sgml/openjade/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    description = "An implementation of DSSSL, an ISO standard for formatting SGML (and XML) documents";
+    description = "Implementation of DSSSL, an ISO standard for formatting SGML (and XML) documents";
     mainProgram = "openjade";
     license = lib.licenses.mit;
     homepage = "https://openjade.sourceforge.net/";
diff --git a/pkgs/tools/text/sgml/opensp/default.nix b/pkgs/tools/text/sgml/opensp/default.nix
index 27f5dc4e9d9b2..a51bd79251646 100644
--- a/pkgs/tools/text/sgml/opensp/default.nix
+++ b/pkgs/tools/text/sgml/opensp/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   doCheck = false; # fails
 
   meta = with lib; {
-    description = "A suite of SGML/XML processing tools";
+    description = "Suite of SGML/XML processing tools";
     license = licenses.mit;
     homepage = "https://openjade.sourceforge.net/";
     platforms = platforms.unix;
diff --git a/pkgs/tools/text/sgrep/default.nix b/pkgs/tools/text/sgrep/default.nix
index 3e82ce9afc602..4b7476e55f6d0 100644
--- a/pkgs/tools/text/sgrep/default.nix
+++ b/pkgs/tools/text/sgrep/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.cs.helsinki.fi/u/jjaakkol/sgrep.html";
-    description = "A grep for structured text formats such as XML";
+    description = "Grep for structured text formats such as XML";
     mainProgram = "sgrep";
     longDescription = ''
       sgrep (structured grep) is a tool for searching and indexing text,
diff --git a/pkgs/tools/text/shab/default.nix b/pkgs/tools/text/shab/default.nix
index 733ba4f80cf55..bbc60921903d6 100644
--- a/pkgs/tools/text/shab/default.nix
+++ b/pkgs/tools/text/shab/default.nix
@@ -40,7 +40,7 @@ let
     };
 
     meta = with lib; {
-      description = "The bash templating language";
+      description = "Bash templating language";
       mainProgram = "shab";
       homepage = "https://github.com/zimbatm/shab";
       license = licenses.unlicense;
diff --git a/pkgs/tools/text/shfmt/default.nix b/pkgs/tools/text/shfmt/default.nix
index 8c5da3097b4b8..b2437a01c993d 100644
--- a/pkgs/tools/text/shfmt/default.nix
+++ b/pkgs/tools/text/shfmt/default.nix
@@ -26,7 +26,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/mvdan/sh";
-    description = "A shell parser and formatter";
+    description = "Shell parser and formatter";
     longDescription = ''
       shfmt formats shell programs. It can use tabs or any number of spaces to indent.
       You can feed it standard input, any number of files or any number of directories to recurse into.
diff --git a/pkgs/tools/text/shocco/default.nix b/pkgs/tools/text/shocco/default.nix
index 75f218f213e6d..6fc11f6ef0bae 100644
--- a/pkgs/tools/text/shocco/default.nix
+++ b/pkgs/tools/text/shocco/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ perlPackages.TextMarkdown python3.pkgs.pygments ];
 
   meta = with lib; {
-    description = "A quick-and-dirty, literate-programming-style documentation generator for / in POSIX shell";
+    description = "Quick-and-dirty, literate-programming-style documentation generator for / in POSIX shell";
     mainProgram = "shocco";
     homepage = "https://rtomayko.github.io/shocco/";
     license = licenses.mit;
diff --git a/pkgs/tools/text/sift/default.nix b/pkgs/tools/text/sift/default.nix
index 1aecb3ac8909c..04ca7f0c21366 100644
--- a/pkgs/tools/text/sift/default.nix
+++ b/pkgs/tools/text/sift/default.nix
@@ -30,7 +30,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A fast and powerful alternative to grep";
+    description = "Fast and powerful alternative to grep";
     mainProgram = "sift";
     homepage = "https://sift-tool.org";
     maintainers = with maintainers; [ viraptor ];
diff --git a/pkgs/tools/text/silver-searcher/default.nix b/pkgs/tools/text/silver-searcher/default.nix
index 94c5c8cf02fc9..568b49371f69d 100644
--- a/pkgs/tools/text/silver-searcher/default.nix
+++ b/pkgs/tools/text/silver-searcher/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/ggreer/the_silver_searcher/";
-    description = "A code-searching tool similar to ack, but faster";
+    description = "Code-searching tool similar to ack, but faster";
     maintainers = with maintainers; [ madjar ];
     mainProgram = "ag";
     platforms = platforms.all;
diff --git a/pkgs/tools/text/teip/default.nix b/pkgs/tools/text/teip/default.nix
index caa665fc3c93c..90a41a8cf38d4 100644
--- a/pkgs/tools/text/teip/default.nix
+++ b/pkgs/tools/text/teip/default.nix
@@ -23,11 +23,6 @@ rustPlatform.buildRustPackage rec {
 
   nativeCheckInputs = [ perl ];
 
-  # Cargo.lock is outdated
-  preConfigure = ''
-    cargo update --offline
-  '';
-
   # tests are locale sensitive
   preCheck = ''
     export LANG=${if stdenv.isDarwin then "en_US.UTF-8" else "C.UTF-8"}
@@ -42,7 +37,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A tool to bypass a partial range of standard input to any command";
+    description = "Tool to bypass a partial range of standard input to any command";
     mainProgram = "teip";
     homepage = "https://github.com/greymd/teip";
     changelog = "https://github.com/greymd/teip/releases/tag/v${version}";
diff --git a/pkgs/tools/text/termbook/default.nix b/pkgs/tools/text/termbook/default.nix
index a68f0ce416f45..d16dc05cba53b 100644
--- a/pkgs/tools/text/termbook/default.nix
+++ b/pkgs/tools/text/termbook/default.nix
@@ -51,7 +51,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A runner for `mdbooks` to keep your documentation tested";
+    description = "Runner for `mdbooks` to keep your documentation tested";
     mainProgram = "termbook";
     homepage = "https://github.com/Byron/termbook/";
     changelog = "https://github.com/Byron/termbook/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/tools/text/tesh/default.nix b/pkgs/tools/text/tesh/default.nix
index abff7771add23..d4d2c1e0ed714 100644
--- a/pkgs/tools/text/tesh/default.nix
+++ b/pkgs/tools/text/tesh/default.nix
@@ -1,4 +1,4 @@
-{ python3Packages, fetchFromGitHub, fetchpatch }:
+{ python3Packages, fetchFromGitHub }:
 
 let
   version = "0.3.2";
diff --git a/pkgs/tools/text/textpieces/default.nix b/pkgs/tools/text/textpieces/default.nix
deleted file mode 100644
index 90f05fc8f1dc3..0000000000000
--- a/pkgs/tools/text/textpieces/default.nix
+++ /dev/null
@@ -1,86 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, fetchpatch
-, python3
-, meson
-, ninja
-, pkg-config
-, vala
-, glib
-, gtk4
-, libgee
-, libadwaita
-, libportal-gtk4
-, json-glib
-, blueprint-compiler
-, gtksourceview5
-, gobject-introspection
-, wrapGAppsHook4
-, appstream-glib
-, desktop-file-utils
-}:
-
-let
-  pythonEnv = python3.withPackages (ps: with ps; [ pyyaml ]);
-in
-stdenv.mkDerivation (finalAttrs: {
-  pname = "textpieces";
-  version = "3.4.1";
-
-  src = fetchFromGitHub {
-    owner = "liferooter";
-    repo = "textpieces";
-    rev = "v${finalAttrs.version}";
-    hash = "sha256-3ZUHzt3oXYgsnJVDf83JUDhcF+0DLgFfOMtpKI/FTcE=";
-  };
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    pkg-config
-    pythonEnv
-    vala
-    blueprint-compiler
-    wrapGAppsHook4
-    appstream-glib
-    desktop-file-utils
-    gobject-introspection
-  ];
-
-  buildInputs = [
-    glib
-    gtk4
-    libadwaita
-    libportal-gtk4
-    libgee
-    json-glib
-    gtksourceview5
-  ];
-
-  runtimeDependencies = [
-    pythonEnv
-  ];
-
-  patches = [
-  (fetchpatch {
-    url = "https://github.com/liferooter/textpieces/commit/26348782b9fddc5f2ffb9497cf18ec8ce9592960.patch";
-    hash = "sha256-w86PCeDhoyMPm63GCBa2Ax8KfCdlxtmGeUrmt1ZSz1k=";
-  })
-  ];
-
-  postPatch = ''
-    chmod +x build-aux/meson/postinstall.py
-    patchShebangs build-aux/meson/postinstall.py
-    patchShebangs scripts/
-  '';
-
-  meta = with lib; {
-    description = "Quick text processing";
-    longDescription = "A small tool for quick text transformations such as checksums, encoding, decoding and so on.";
-    homepage = "https://github.com/liferooter/textpieces";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ zendo ];
-  };
-})
diff --git a/pkgs/tools/text/tidy-viewer/default.nix b/pkgs/tools/text/tidy-viewer/default.nix
index cbeb97214893b..b2d55ee276150 100644
--- a/pkgs/tools/text/tidy-viewer/default.nix
+++ b/pkgs/tools/text/tidy-viewer/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   meta = with lib; {
-    description = "A cross-platform CLI csv pretty printer that uses column styling to maximize viewer enjoyment";
+    description = "Cross-platform CLI csv pretty printer that uses column styling to maximize viewer enjoyment";
     mainProgram = "tidy-viewer";
     homepage = "https://github.com/alexhallam/tv";
     changelog = "https://github.com/alexhallam/tv/blob/${version}/CHANGELOG.md";
diff --git a/pkgs/tools/text/tml/default.nix b/pkgs/tools/text/tml/default.nix
index 0dc3cba1dbd19..244b2d10adc11 100644
--- a/pkgs/tools/text/tml/default.nix
+++ b/pkgs/tools/text/tml/default.nix
@@ -19,7 +19,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
-    description = "A tiny markup language for terminal output";
+    description = "Tiny markup language for terminal output";
     mainProgram = "tml";
     homepage = "https://github.com/liamg/tml";
     changelog = "https://github.com/liamg/tml/releases/tag/v${version}";
diff --git a/pkgs/tools/text/unrtf/default.nix b/pkgs/tools/text/unrtf/default.nix
index 4395c0f6e9414..5e6766e4db942 100644
--- a/pkgs/tools/text/unrtf/default.nix
+++ b/pkgs/tools/text/unrtf/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "man" ];
 
   meta = with lib; {
-    description = "A converter from Rich Text Format to other formats";
+    description = "Converter from Rich Text Format to other formats";
     mainProgram = "unrtf";
     longDescription = ''
       UnRTF converts documents in Rich Text Format to other
diff --git a/pkgs/tools/text/untex/default.nix b/pkgs/tools/text/untex/default.nix
index c6f8330496506..cb4c0e4fcb9e6 100644
--- a/pkgs/tools/text/untex/default.nix
+++ b/pkgs/tools/text/untex/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A utility which removes LaTeX commands from input";
+    description = "Utility which removes LaTeX commands from input";
     mainProgram = "untex";
     homepage = "https://www.ctan.org/pkg/untex";
     license = licenses.gpl1Only;
diff --git a/pkgs/tools/text/vale/default.nix b/pkgs/tools/text/vale/default.nix
index d42703ce0a76b..2dfb2f00f662e 100644
--- a/pkgs/tools/text/vale/default.nix
+++ b/pkgs/tools/text/vale/default.nix
@@ -10,7 +10,7 @@
 
 buildGoModule rec {
   pname = "vale";
-  version = "3.4.2";
+  version = "3.6.0";
 
   subPackages = [ "cmd/vale" ];
 
@@ -18,10 +18,10 @@ buildGoModule rec {
     owner = "errata-ai";
     repo = "vale";
     rev = "v${version}";
-    hash = "sha256-9923mmZZmg08Zq+Vbt4zus0UvmsTJ/r1ddVdeOB7yJU=";
+    hash = "sha256-Xkea1o0ywRKIg0cMJuxQehHbgVF0SSC9VRa53FQEong=";
   };
 
-  vendorHash = "sha256-4GtMKhxGkNwF6ydFE708SbzBm9mwCDKtINljTQXwz2c=";
+  vendorHash = "sha256-OLlViQKLTark9yknnjJFiEThFtxNNjue5LUp1P/anKU=";
 
   ldflags = [ "-s" "-w" "-X main.version=${version}" ];
 
@@ -42,7 +42,7 @@ buildGoModule rec {
   };
 
   meta = with lib; {
-    description = "A syntax-aware linter for prose built with speed and extensibility in mind";
+    description = "Syntax-aware linter for prose built with speed and extensibility in mind";
     longDescription = ''
       Vale in Nixpkgs offers the helper `.withStyles` allow you to install it
       predefined styles:
diff --git a/pkgs/tools/text/vale/styles.nix b/pkgs/tools/text/vale/styles.nix
index 54764f77ff471..6022d38497a9f 100644
--- a/pkgs/tools/text/vale/styles.nix
+++ b/pkgs/tools/text/vale/styles.nix
@@ -32,15 +32,15 @@ in
 {
   alex = buildStyle rec {
     name = "alex";
-    version = "0.2.1";
+    version = "0.2.2";
     src = fetchFromGitHub {
       owner = "errata-ai";
       repo = "alex";
       rev = "v${version}";
-      hash = "sha256-xNF7se2FwKgNe5KYx/zvGWpIwBsBADYGH4JV1lUww+Q=";
+      hash = "sha256-mfeMa+KlkqwyS+h+oo5p5+P2bsmZ0BOph2nbQiaoNqM=";
     };
     meta = {
-      description = "A Vale-compatible implementation of the guidelines enforced by the alex linter";
+      description = "Vale-compatible implementation of the guidelines enforced by the alex linter";
       homepage = "https://github.com/errata-ai/alex";
       license = lib.licenses.mit;
     };
@@ -56,7 +56,7 @@ in
       hash = "sha256-jSmfUgzlIbDVh2zLtnTNpM/z6dHMp358F9adLZ5+qcw=";
     };
     meta = {
-      description = "A Vale-compatible implementation of the Google Developer Documentation Style Guide";
+      description = "Vale-compatible implementation of the Google Developer Documentation Style Guide";
       homepage = "https://github.com/errata-ai/Google";
       license = lib.licenses.mit;
     };
@@ -72,7 +72,7 @@ in
       hash = "sha256-zRz5ThOg5RLTZj3dYPe0PDvOF5DjO31lduSpi2Us87U=";
     };
     meta = {
-      description = "A Vale-compatible implementation of the Joblint linter";
+      description = "Vale-compatible implementation of the Joblint linter";
       homepage = "https://github.com/errata-ai/Joblint";
       license = lib.licenses.mit;
     };
@@ -88,7 +88,7 @@ in
       hash = "sha256-4j05bIGAVEy6untUqtrUxdLKlhyOcJsbcsow8OxRp1A=";
     };
     meta = {
-      description = "A Vale-compatible implementation of the Microsoft Writing Style Guide";
+      description = "Vale-compatible implementation of the Microsoft Writing Style Guide";
       homepage = "https://github.com/errata-ai/Microsoft";
       license = lib.licenses.mit;
     };
@@ -96,15 +96,15 @@ in
 
   proselint = buildStyle rec {
     name = "proselint";
-    version = "0.3.3";
+    version = "0.3.4";
     src = fetchFromGitHub {
       owner = "errata-ai";
       repo = "proselint";
       rev = "v${version}";
-      hash = "sha256-faeWr1bRhnKsycJY89WqnRv8qIowUmz3EQvDyjtl63w=";
+      hash = "sha256-ryKJDX1JrvDWVKLC5qQGctweDf74yuwEXxl/IqumM4s=";
     };
     meta = {
-      description = "A Vale-compatible implementation of Python's proselint linter";
+      description = "Vale-compatible implementation of Python's proselint linter";
       homepage = "https://github.com/errata-ai/proselint";
       license = lib.licenses.bsd3;
     };
@@ -128,15 +128,15 @@ in
 
   write-good = buildStyle rec {
     name = "write-good";
-    version = "0.4.0";
+    version = "0.4.1";
     src = fetchFromGitHub {
       owner = "errata-ai";
       repo = "write-good";
       rev = "v${version}";
-      hash = "sha256-KQzY6MeHV/owPVmUAfzGUO0HmFPkD7wdQqOvBkipwP8=";
+      hash = "sha256-W/eHlXklAVlAnY8nLPi/SIKsg8UUnH8UkH99BDo5yKk=";
     };
     meta = {
-      description = "A Vale-compatible implementation of the write-good linter";
+      description = "Vale-compatible implementation of the write-good linter";
       homepage = "https://github.com/errata-ai/write-good";
       license = lib.licenses.mit;
     };
diff --git a/pkgs/tools/text/validator-nu/default.nix b/pkgs/tools/text/validator-nu/default.nix
index 56c227b46da45..d52c87e4186ba 100644
--- a/pkgs/tools/text/validator-nu/default.nix
+++ b/pkgs/tools/text/validator-nu/default.nix
@@ -78,6 +78,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ andersk ivan ];
     mainProgram = "vnu";
+    platforms = lib.platforms.all;
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode fromSource ];
   };
 })
diff --git a/pkgs/tools/text/wrap/default.nix b/pkgs/tools/text/wrap/default.nix
index 4eebcf60437bd..959c78608db1c 100644
--- a/pkgs/tools/text/wrap/default.nix
+++ b/pkgs/tools/text/wrap/default.nix
@@ -33,7 +33,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A Fountain export tool with some extras";
+    description = "Fountain export tool with some extras";
     homepage = "https://github.com/Wraparound/wrap";
     license = licenses.gpl3Only;
     maintainers = [ maintainers.austinbutler ];
diff --git a/pkgs/tools/text/xidel/default.nix b/pkgs/tools/text/xidel/default.nix
index d7fefa2d495db..6a55a5d9e8b13 100644
--- a/pkgs/tools/text/xidel/default.nix
+++ b/pkgs/tools/text/xidel/default.nix
@@ -90,7 +90,7 @@ in stdenv.mkDerivation rec {
     mainProgram = "xidel";
     homepage = "https://www.videlibri.de/xidel.html";
     license = licenses.gpl3Plus;
-    platforms = platforms.linux;
+    platforms = platforms.all;
     maintainers = [ maintainers.bjornfor ];
   };
 }
diff --git a/pkgs/tools/text/xml/jing-trang/default.nix b/pkgs/tools/text/xml/jing-trang/default.nix
index f13a82faf295b..1de721fb0b0e2 100644
--- a/pkgs/tools/text/xml/jing-trang/default.nix
+++ b/pkgs/tools/text/xml/jing-trang/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   checkPhase = "ant test";
 
   meta = with lib; {
-    description = "A RELAX NG validator in Java";
+    description = "RELAX NG validator in Java";
     # The homepage is www.thaiopensource.com, but it links to googlecode.com
     # for downloads and call it the "project site".
     homepage = "https://www.thaiopensource.com/relaxng/trang.html";
diff --git a/pkgs/tools/text/xml/rxp/default.nix b/pkgs/tools/text/xml/rxp/default.nix
index b45c89af1c03d..fe93607d27f2d 100644
--- a/pkgs/tools/text/xml/rxp/default.nix
+++ b/pkgs/tools/text/xml/rxp/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     license = lib.licenses.gpl2Plus;
-    description = "A validating XML parser written in C";
+    description = "Validating XML parser written in C";
     homepage = "https://www.cogsci.ed.ac.uk/~richard/rxp.html";
     platforms = lib.platforms.unix;
     mainProgram = "rxp";
diff --git a/pkgs/tools/text/xml/xmlformat/default.nix b/pkgs/tools/text/xml/xmlformat/default.nix
index ea0e90502dc20..514d691c6a32d 100644
--- a/pkgs/tools/text/xml/xmlformat/default.nix
+++ b/pkgs/tools/text/xml/xmlformat/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "a configurable formatter (or 'pretty-printer') for XML documents";
+    description = "Configurable formatter (or 'pretty-printer') for XML documents";
     mainProgram = "xmlformat";
     homepage = "http://www.kitebird.com/software/xmlformat/";
     license = lib.licenses.bsd3;
diff --git a/pkgs/tools/text/xml/xmlstarlet/default.nix b/pkgs/tools/text/xml/xmlstarlet/default.nix
index b5eb08199fc61..b3ee37d894b14 100644
--- a/pkgs/tools/text/xml/xmlstarlet/default.nix
+++ b/pkgs/tools/text/xml/xmlstarlet/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A command line tool for manipulating and querying XML data";
+    description = "Command line tool for manipulating and querying XML data";
     homepage = "https://xmlstar.sourceforge.net/";
     license = lib.licenses.mit;
     mainProgram = "xmlstarlet";
diff --git a/pkgs/tools/text/xsv/default.nix b/pkgs/tools/text/xsv/default.nix
index 3e617a621e334..bf5a7ed6b8054 100644
--- a/pkgs/tools/text/xsv/default.nix
+++ b/pkgs/tools/text/xsv/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = lib.optional stdenv.isDarwin Security;
 
   meta = with lib; {
-    description = "A fast CSV toolkit written in Rust";
+    description = "Fast CSV toolkit written in Rust";
     mainProgram = "xsv";
     homepage = "https://github.com/BurntSushi/xsv";
     license = with licenses; [ unlicense /* or */ mit ];
diff --git a/pkgs/tools/typesetting/asciidoctor-with-extensions/default.nix b/pkgs/tools/typesetting/asciidoctor-with-extensions/default.nix
index ba9c21631a90e..c236b436acf1a 100644
--- a/pkgs/tools/typesetting/asciidoctor-with-extensions/default.nix
+++ b/pkgs/tools/typesetting/asciidoctor-with-extensions/default.nix
@@ -33,7 +33,7 @@ bundlerApp rec {
   };
 
   meta = with lib; {
-    description = "A faster Asciidoc processor written in Ruby, with many extensions enabled";
+    description = "Faster Asciidoc processor written in Ruby, with many extensions enabled";
     homepage = "https://asciidoctor.org/";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
diff --git a/pkgs/tools/typesetting/asciidoctor/default.nix b/pkgs/tools/typesetting/asciidoctor/default.nix
index 5f78c12508d14..8b20e718f8fd4 100644
--- a/pkgs/tools/typesetting/asciidoctor/default.nix
+++ b/pkgs/tools/typesetting/asciidoctor/default.nix
@@ -17,7 +17,7 @@ bundlerApp {
   };
 
   meta = with lib; {
-    description = "A faster Asciidoc processor written in Ruby";
+    description = "Faster Asciidoc processor written in Ruby";
     homepage = "https://asciidoctor.org/";
     license = licenses.mit;
     maintainers = with maintainers; [ gpyh nicknovitski ];
diff --git a/pkgs/tools/typesetting/asciidoctorj/default.nix b/pkgs/tools/typesetting/asciidoctorj/default.nix
index ac9abf1924c02..2909573298214 100644
--- a/pkgs/tools/typesetting/asciidoctorj/default.nix
+++ b/pkgs/tools/typesetting/asciidoctorj/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "asciidoctorj";
-  version = "2.5.12";
+  version = "2.5.13";
 
   src = fetchzip {
     url = "mirror://maven/org/asciidoctor/${pname}/${version}/${pname}-${version}-bin.zip";
-    sha256 = "sha256-cpFY9nEqy7yBevupHMpNybqnAfN2fT9RcSKWlRdWsag=";
+    sha256 = "sha256-II6R5/7vDONkk/6pL1n/h7Snvu3vaLulIOAw/FjZMBc=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/typesetting/hevea/default.nix b/pkgs/tools/typesetting/hevea/default.nix
index f03ee980583f5..85317b7d7ecd8 100644
--- a/pkgs/tools/typesetting/hevea/default.nix
+++ b/pkgs/tools/typesetting/hevea/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
-    description = "A quite complete and fast LATEX to HTML translator";
+    description = "Quite complete and fast LATEX to HTML translator";
     homepage = "https://hevea.inria.fr/";
     changelog = "https://github.com/maranget/hevea/raw/v${version}/CHANGES";
     license = licenses.qpl;
diff --git a/pkgs/tools/typesetting/kramdown-asciidoc/default.nix b/pkgs/tools/typesetting/kramdown-asciidoc/default.nix
index f3058156848ed..750ed6396d1b4 100644
--- a/pkgs/tools/typesetting/kramdown-asciidoc/default.nix
+++ b/pkgs/tools/typesetting/kramdown-asciidoc/default.nix
@@ -25,7 +25,7 @@ let
     # };
 
     meta = with lib; {
-      description = "A kramdown extension for converting Markdown documents to AsciiDoc";
+      description = "Kramdown extension for converting Markdown documents to AsciiDoc";
       homepage = "https://asciidoctor.org/";
       license = licenses.mit;
       maintainers = with maintainers; [ ];
diff --git a/pkgs/tools/typesetting/marp/default.nix b/pkgs/tools/typesetting/marp/default.nix
index b61cc4dcdf661..2412935a0f9d3 100644
--- a/pkgs/tools/typesetting/marp/default.nix
+++ b/pkgs/tools/typesetting/marp/default.nix
@@ -10,18 +10,18 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "marp-cli";
-  version = "3.2.0";
+  version = "3.4.0";
 
   src = fetchFromGitHub {
     owner = "marp-team";
     repo = "marp-cli";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-bx5mq5KI85qUct/9Hr6mby6dWmRkmpVbiIw+M8PZas8=";
+    hash = "sha256-azscuPkQ9/xcQtBg+5pJigXSQQVtBGvbd7ZwiLwU7Qo=";
   };
 
   offlineCache = fetchYarnDeps {
     yarnLock = "${finalAttrs.src}/yarn.lock";
-    hash = "sha256-BogCt7ezmWxv2YfhljHYoBf47/FHR0qLZosjnoQhqgs=";
+    hash = "sha256-b/JyhsfXEbmM6+ajrjL65WhX9u9MEH+m1NHE6cTyf2g=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/typesetting/mmark/default.nix b/pkgs/tools/typesetting/mmark/default.nix
index 3e1c95ca02417..ab371104dc868 100644
--- a/pkgs/tools/typesetting/mmark/default.nix
+++ b/pkgs/tools/typesetting/mmark/default.nix
@@ -23,7 +23,7 @@ buildGoModule rec {
   };
 
   meta = {
-    description = "A powerful markdown processor in Go geared towards the IETF";
+    description = "Powerful markdown processor in Go geared towards the IETF";
     homepage = "https://github.com/mmarkdown/mmark";
     license = with lib.licenses; bsd2;
     maintainers = with lib.maintainers; [ yrashk ];
diff --git a/pkgs/tools/typesetting/multimarkdown/default.nix b/pkgs/tools/typesetting/multimarkdown/default.nix
index 65cf5931ac10c..91e1c9cb31096 100644
--- a/pkgs/tools/typesetting/multimarkdown/default.nix
+++ b/pkgs/tools/typesetting/multimarkdown/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://fletcher.github.io/MultiMarkdown-6/introduction.html";
-    description = "A derivative of Markdown that adds new syntax features";
+    description = "Derivative of Markdown that adds new syntax features";
     longDescription = ''
       MultiMarkdown is a lightweight markup language created by
       Fletcher T. Penney and based on Markdown, which supports
diff --git a/pkgs/tools/typesetting/pdf2djvu/default.nix b/pkgs/tools/typesetting/pdf2djvu/default.nix
index b695ff9ebec36..da741c76c70b4 100644
--- a/pkgs/tools/typesetting/pdf2djvu/default.nix
+++ b/pkgs/tools/typesetting/pdf2djvu/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , autoreconfHook
 , gettext
 , libtool
diff --git a/pkgs/tools/typesetting/pdfchain/default.nix b/pkgs/tools/typesetting/pdfchain/default.nix
index 4335f8105d7dc..0b94c54870d1f 100644
--- a/pkgs/tools/typesetting/pdfchain/default.nix
+++ b/pkgs/tools/typesetting/pdfchain/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A graphical user interface for the PDF Toolkit (PDFtk)";
+    description = "Graphical user interface for the PDF Toolkit (PDFtk)";
     homepage = "https://pdfchain.sourceforge.io";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ hqurve ];
diff --git a/pkgs/tools/typesetting/pulldown-cmark/default.nix b/pkgs/tools/typesetting/pulldown-cmark/default.nix
index 76f172da3cda0..938afe05ce580 100644
--- a/pkgs/tools/typesetting/pulldown-cmark/default.nix
+++ b/pkgs/tools/typesetting/pulldown-cmark/default.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = "sha256-L1KPpLw1MEYDisVdPEO16ZvSRx/ya22oDReyS+hG5t4=";
 
   meta = {
-    description = "A pull parser for CommonMark written in Rust";
+    description = "Pull parser for CommonMark written in Rust";
     homepage = "https://github.com/raphlinus/pulldown-cmark";
     license = with lib.licenses; [ mit ];
     maintainers = with lib.maintainers; [ CobaltCause ];
diff --git a/pkgs/tools/typesetting/satysfi/default.nix b/pkgs/tools/typesetting/satysfi/default.nix
index 64bd2a80fff5a..c4e1a9980fe05 100644
--- a/pkgs/tools/typesetting/satysfi/default.nix
+++ b/pkgs/tools/typesetting/satysfi/default.nix
@@ -64,7 +64,7 @@ in
 
     meta = with lib; {
       homepage = "https://github.com/gfngfn/SATySFi";
-      description = "A statically-typed, functional typesetting system";
+      description = "Statically-typed, functional typesetting system";
       changelog = "https://github.com/gfngfn/SATySFi/blob/v${version}/CHANGELOG.md";
       license = licenses.lgpl3Only;
       maintainers = [ maintainers.mt-caret ];
diff --git a/pkgs/tools/typesetting/sile/default.nix b/pkgs/tools/typesetting/sile/default.nix
index 61329037c9612..b6a77b55f6851 100644
--- a/pkgs/tools/typesetting/sile/default.nix
+++ b/pkgs/tools/typesetting/sile/default.nix
@@ -121,7 +121,7 @@ stdenv.mkDerivation (finalAttrs: {
   outputs = [ "out" "doc" "man" "dev" ];
 
   meta = with lib; {
-    description = "A typesetting system";
+    description = "Typesetting system";
     longDescription = ''
       SILE is a typesetting system; its job is to produce beautiful
       printed documents. Conceptually, SILE is similar to TeX—from
diff --git a/pkgs/tools/typesetting/skribilo/default.nix b/pkgs/tools/typesetting/skribilo/default.nix
index 548b75621c3bb..9602ff7d167ec 100644
--- a/pkgs/tools/typesetting/skribilo/default.nix
+++ b/pkgs/tools/typesetting/skribilo/default.nix
@@ -54,7 +54,7 @@ in stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://www.nongnu.org/skribilo/";
-    description = "The Ultimate Document Programming Framework";
+    description = "Ultimate Document Programming Framework";
     longDescription = ''
       Skribilo is a free document production tool that takes a structured
       document representation as its input and renders that document in a
diff --git a/pkgs/tools/typesetting/sshlatex/default.nix b/pkgs/tools/typesetting/sshlatex/default.nix
index ed1252928bb3e..a163c934e46d1 100644
--- a/pkgs/tools/typesetting/sshlatex/default.nix
+++ b/pkgs/tools/typesetting/sshlatex/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A collection of hacks to efficiently run LaTeX via ssh";
+    description = "Collection of hacks to efficiently run LaTeX via ssh";
     longDescription = ''
       sshlatex is a tool which uploads LaTeX source files to a remote, runs
       LaTeX there, and streams the resulting PDF file to the local host.
diff --git a/pkgs/tools/typesetting/tex/advi/default.nix b/pkgs/tools/typesetting/tex/advi/default.nix
index ff20a10c5cf45..05262a3f2c01c 100644
--- a/pkgs/tools/typesetting/tex/advi/default.nix
+++ b/pkgs/tools/typesetting/tex/advi/default.nix
@@ -64,7 +64,7 @@ ocamlPackages.buildDunePackage rec {
 
   meta = with lib; {
     homepage = "http://advi.inria.fr/";
-    description = "A Unix-platform DVI previewer and a programmable presenter for slides written in LaTeX";
+    description = "Unix-platform DVI previewer and a programmable presenter for slides written in LaTeX";
     license = licenses.lgpl21Only;
     maintainers = [ maintainers.xworld21 ];
   };
diff --git a/pkgs/tools/typesetting/tex/blahtexml/default.nix b/pkgs/tools/typesetting/tex/blahtexml/default.nix
index fb7605924023a..9d88ac3b0be60 100644
--- a/pkgs/tools/typesetting/tex/blahtexml/default.nix
+++ b/pkgs/tools/typesetting/tex/blahtexml/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://gva.noekeon.org/blahtexml/";
-    description = "A TeX to MathML converter";
+    description = "TeX to MathML converter";
     longDescription = ''
       Blahtex is a program written in C++, which converts an equation given in
       a syntax close to TeX into MathML. It is designed by David Harvey and is
diff --git a/pkgs/tools/typesetting/tex/catdvi/default.nix b/pkgs/tools/typesetting/tex/catdvi/default.nix
index fe0f22bd95b0d..03fedbbc386d9 100644
--- a/pkgs/tools/typesetting/tex/catdvi/default.nix
+++ b/pkgs/tools/typesetting/tex/catdvi/default.nix
@@ -84,7 +84,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "http://catdvi.sourceforge.net";
-    description = "A DVI to plain text translator";
+    description = "DVI to plain text translator";
     license = licenses.gpl2Plus;
     maintainers = [ ];
   };
diff --git a/pkgs/tools/typesetting/tex/dblatex/default.nix b/pkgs/tools/typesetting/tex/dblatex/default.nix
index d615cefd77c38..4574b44f8448e 100644
--- a/pkgs/tools/typesetting/tex/dblatex/default.nix
+++ b/pkgs/tools/typesetting/tex/dblatex/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
   passthru = { inherit tex; };
 
   meta = {
-    description = "A program to convert DocBook to DVI, PostScript or PDF via LaTeX or ConTeXt";
+    description = "Program to convert DocBook to DVI, PostScript or PDF via LaTeX or ConTeXt";
     mainProgram = "dblatex";
     homepage = "https://dblatex.sourceforge.net/";
     license = lib.licenses.gpl2Plus;
diff --git a/pkgs/tools/typesetting/tex/latexrun/default.nix b/pkgs/tools/typesetting/tex/latexrun/default.nix
index ea2c630e79605..5cab85a1cc1ff 100644
--- a/pkgs/tools/typesetting/tex/latexrun/default.nix
+++ b/pkgs/tools/typesetting/tex/latexrun/default.nix
@@ -20,7 +20,7 @@ stdenvNoCC.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A 21st century LaTeX wrapper";
+    description = "21st century LaTeX wrapper";
     mainProgram = "latexrun";
     homepage = "https://github.com/aclements/latexrun";
     license = licenses.mit;
diff --git a/pkgs/tools/typesetting/tex/pgf-tikz/pgf-1.x.nix b/pkgs/tools/typesetting/tex/pgf-tikz/pgf-1.x.nix
index 25c65d081911d..b0681d1ce8d14 100644
--- a/pkgs/tools/typesetting/tex/pgf-tikz/pgf-1.x.nix
+++ b/pkgs/tools/typesetting/tex/pgf-tikz/pgf-1.x.nix
@@ -28,7 +28,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://github.com/pgf-tikz/pgf";
-    description = "A Portable Graphic Format for TeX - version ${finalAttrs.version}";
+    description = "Portable Graphic Format for TeX - version ${finalAttrs.version}";
     branch = lib.versions.major version;
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ AndersonTorres ];
diff --git a/pkgs/tools/typesetting/tex/pgf-tikz/pgf-2.x.nix b/pkgs/tools/typesetting/tex/pgf-tikz/pgf-2.x.nix
index d25e1bd84904f..82d2026063829 100644
--- a/pkgs/tools/typesetting/tex/pgf-tikz/pgf-2.x.nix
+++ b/pkgs/tools/typesetting/tex/pgf-tikz/pgf-2.x.nix
@@ -28,7 +28,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://github.com/pgf-tikz/pgf";
-    description = "A Portable Graphic Format for TeX";
+    description = "Portable Graphic Format for TeX";
     branch = lib.versions.major version;
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ AndersonTorres ];
diff --git a/pkgs/tools/typesetting/tex/pgf-tikz/pgf-3.x.nix b/pkgs/tools/typesetting/tex/pgf-tikz/pgf-3.x.nix
index 6fabce3d7316a..3395c15adf6c1 100644
--- a/pkgs/tools/typesetting/tex/pgf-tikz/pgf-3.x.nix
+++ b/pkgs/tools/typesetting/tex/pgf-tikz/pgf-3.x.nix
@@ -28,7 +28,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://github.com/pgf-tikz/pgf";
-    description = "A Portable Graphic Format for TeX - version ${finalAttrs.version}";
+    description = "Portable Graphic Format for TeX - version ${finalAttrs.version}";
     branch = lib.versions.major version;
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ AndersonTorres ];
diff --git a/pkgs/tools/typesetting/tex/tetex/default.nix b/pkgs/tools/typesetting/tex/tetex/default.nix
index d153864172187..6000a13ec6212 100644
--- a/pkgs/tools/typesetting/tex/tetex/default.nix
+++ b/pkgs/tools/typesetting/tex/tetex/default.nix
@@ -31,6 +31,11 @@ stdenv.mkDerivation rec {
 
   setupHook = ./setup-hook.sh;
 
+  env = {
+    CFLAGS = "-std=gnu89";
+    CXXFLAGS = "-std=c++03";
+  };
+
   configureFlags =
     [ "--disable-multiplatform" "--without-x11" "--without-xdvik"
       "--without-oxdvik" "--without-texinfo" "--without-texi2html"
@@ -47,7 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description  = "A full-featured (La)TeX distribution";
+    description  = "Full-featured (La)TeX distribution";
     homepage     = "http://www.tug.org/tetex/";
     maintainers  = with maintainers; [ lovek323 ];
     platforms    = platforms.unix;
diff --git a/pkgs/tools/typesetting/tex/texlive/bin.nix b/pkgs/tools/typesetting/tex/texlive/bin.nix
index ece8a36aa5536..86ac35eb78094 100644
--- a/pkgs/tools/typesetting/tex/texlive/bin.nix
+++ b/pkgs/tools/typesetting/tex/texlive/bin.nix
@@ -328,7 +328,7 @@ context = stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ninja ];
 
   meta = with lib; {
-    description = "The LUAMETATEX engine is a follow up on LUATEX and is again part of CONTEXT development";
+    description = "LUAMETATEX engine is a follow up on LUATEX and is again part of CONTEXT development";
     homepage = "https://www.pragma-ade.nl/luametatex-1.htm";
     license = licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ apfelkuchen6 xworld21 ];
diff --git a/pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix b/pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix
index c5a55cf0f9c96..e289f9171c158 100644
--- a/pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix
+++ b/pkgs/tools/typesetting/tex/texlive/build-texlive-package.nix
@@ -62,7 +62,7 @@ let
     # TeX Live packages should not be installed directly into the user profile
     outputsToInstall = [ ];
     longDescription = ''
-      This package cannot be installed directly. Please use `texlive.withPackages`.
+      This package cannot be installed or used directly. Please use `texlive.withPackages (ps: [ ps.${lib.strings.escapeNixIdentifier pname} ])`.
     '';
     # discourage nix-env from matching this package
     priority = 10;
@@ -152,7 +152,7 @@ let
 
   # fake derivation for resolving dependencies in the absence of a "tex" containers
   fakeTeX = passthru
-    // { inherit meta; tlOutputName = "tex"; }
+    // { inherit meta; tlOutputName = "tex"; inherit build; }
     // outputDrvs;
 
   containers = rec {
@@ -214,22 +214,31 @@ let
           ln -s {"$texdoc"/doc,"$out"/share}/info
         '') [ "out" ] // outputDrvs;
   };
-in
-if outputs == [ ] then removeAttrs fakeTeX [ "outputSpecified" ] else
-runCommand name
-  {
-    __structuredAttrs = true;
-    inherit meta outputDrvs outputs;
-    passthru = removeAttrs passthru [ "outputSpecified" ];
-
-    # force output name in case "out" is missing
-    nativeBuildInputs = lib.optional (! hasBinfiles)
-      (writeShellScript "force-output.sh" ''
+
+  # multioutput derivation to be exported under texlivePackages
+  # to make Hydra build all containers
+  build = runCommand name
+    {
+      __structuredAttrs = true;
+      inherit meta outputDrvs;
+      outputs = if outputs != [ ] then outputs else [ "out" ];
+      passthru = removeAttrs passthru [ "outputSpecified" ] // { inherit build; };
+
+      # force output name in case "out" is missing
+      preHook = lib.optionalString (!hasBinfiles && outputs != [ ]) ''
         export out="''${${builtins.head outputs}-}"
-      '');
-  }
-  ''
-    for outputName in ''${!outputs[@]} ; do
-      ln -s "''${outputDrvs[$outputName]}" "''${outputs[$outputName]}"
-    done
-  '' // outputDrvs
+      '';
+    }
+    # each output is just a symlink to the corresponding container
+    # if the container is missing (that is, outputs == [ ]), create a file, to prevent passing the package to .withPackages
+    ''
+      for outputName in ''${!outputs[@]} ; do
+        if [[ -z ''${outputDrvs[$outputName]} ]] ; then
+          ln -s "''${outputDrvs[$outputName]}" "''${outputs[$outputName]}"
+        else
+          touch "''${outputs[$outputName]}"
+        fi
+      done
+    '';
+in
+if outputs == [ ] then removeAttrs fakeTeX [ "outputSpecified" ] else build // outputDrvs
diff --git a/pkgs/tools/typesetting/tex/texpresso/default.nix b/pkgs/tools/typesetting/tex/texpresso/default.nix
index 52e8be777c09e..82f6bca589e97 100644
--- a/pkgs/tools/typesetting/tex/texpresso/default.nix
+++ b/pkgs/tools/typesetting/tex/texpresso/default.nix
@@ -17,7 +17,7 @@
 
 stdenv.mkDerivation rec {
   pname = "texpresso";
-  version = "0-unstable-2024-05-09";
+  version = "0-unstable-2024-05-23";
 
   nativeBuildInputs = [
     makeWrapper
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "let-def";
     repo = "texpresso";
-    rev = "8b6cfcd10c03596bc3645ac8425a48b105d8650d";
+    rev = "01cafac1ec6d33d5e169a0202f23a6f565cc55b8";
     hash = "sha256-uLGanGEUGzxIYFbU3U8LLV3bpn/IN9XltvWCmwSlD7E=";
   };
 
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     inherit (src.meta) homepage;
-    description = "Live rendering and error reporting for LaTeX.";
+    description = "Live rendering and error reporting for LaTeX";
     maintainers = with lib.maintainers; [ nickhu ];
     license = lib.licenses.mit;
   };
diff --git a/pkgs/tools/typesetting/tex/texpresso/tectonic.nix b/pkgs/tools/typesetting/tex/texpresso/tectonic.nix
index 838a51324a099..603c4d5ad3f4c 100644
--- a/pkgs/tools/typesetting/tex/texpresso/tectonic.nix
+++ b/pkgs/tools/typesetting/tex/texpresso/tectonic.nix
@@ -6,8 +6,8 @@ tectonic-unwrapped.override (old: {
       src = fetchFromGitHub {
         owner = "let-def";
         repo = "tectonic";
-        rev = "b38cb3b2529bba947d520ac29fbb7873409bd270";
-        hash = "sha256-ap7fEPHsASAphIQkjcvk1CC7egTdxaUh7IpSS5os4W8=";
+        rev = "bc522fabfdd17099deac2e12662b2a0810ceb104";
+        hash = "sha256-0esXnUML6C9DYrpmBBB+ACypLvnLsYE9fuNiiCFfYzw=";
         fetchSubmodules = true;
       };
       cargoHash = "sha256-62sxvPIiY3len1wsl7QelK3u4ekftIjcTqoIGZMYb5A=";
diff --git a/pkgs/tools/typesetting/tikzit/default.nix b/pkgs/tools/typesetting/tikzit/default.nix
index 44c2fed0508ac..e6402deaa96b1 100644
--- a/pkgs/tools/typesetting/tikzit/default.nix
+++ b/pkgs/tools/typesetting/tikzit/default.nix
@@ -18,7 +18,7 @@ mkDerivation {
   enableParallelBuilding = false;
 
   meta = with lib; {
-    description = "A graphical tool for rapidly creating graphs and diagrams using PGF/TikZ";
+    description = "Graphical tool for rapidly creating graphs and diagrams using PGF/TikZ";
     longDescription = ''
       TikZiT is a simple GUI editor for graphs and string diagrams.
       Its native file format is a subset of PGF/TikZ, which means TikZiT files
diff --git a/pkgs/tools/video/atomicparsley/default.nix b/pkgs/tools/video/atomicparsley/default.nix
index 28d55f13fe3dd..3db6e27cf7157 100644
--- a/pkgs/tools/video/atomicparsley/default.nix
+++ b/pkgs/tools/video/atomicparsley/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A CLI program for reading, parsing and setting metadata into MPEG-4 files";
+    description = "CLI program for reading, parsing and setting metadata into MPEG-4 files";
     homepage = "https://github.com/wez/atomicparsley";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/tools/video/bento4/default.nix b/pkgs/tools/video/bento4/default.nix
index 54e5a22cc67d5..12764ad92778e 100644
--- a/pkgs/tools/video/bento4/default.nix
+++ b/pkgs/tools/video/bento4/default.nix
@@ -18,7 +18,11 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ];
+  cmakeFlags = [
+    "-DBUILD_SHARED_LIBS=ON"
+  ] ++ lib.optionals stdenv.isDarwin [
+    "-DCMAKE_OSX_ARCHITECTURES="
+  ];
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/tools/video/go2rtc/default.nix b/pkgs/tools/video/go2rtc/default.nix
index 90a982335facc..39be2d40369be 100644
--- a/pkgs/tools/video/go2rtc/default.nix
+++ b/pkgs/tools/video/go2rtc/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "go2rtc";
-  version = "1.9.2";
+  version = "1.9.4";
 
   src = fetchFromGitHub {
     owner = "AlexxIT";
     repo = "go2rtc";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GqZs11g05xc3Nob/jqGbG/rFYBhyEPNdXYJuJBiAyko=";
+    hash = "sha256-LK2+hNgP9EhnAL9QKzvfn0+pYjuJJDB7l1fd57jeCWw=";
   };
 
-  vendorHash = "sha256-5c3oauklMD9fEnVGPyWq6hR5jz6pSnq2kmdq+0JBfpo=";
+  vendorHash = "sha256-mUdUMZf3KhJyE0iv2yvWtkHa+pyXcv2RTZY+JtBLrSQ=";
 
   CGO_ENABLED = 0;
 
@@ -26,7 +26,7 @@ buildGoModule rec {
   doCheck = false; # tests fail
 
   meta = with lib; {
-    description = "Ultimate camera streaming application with support RTSP, RTMP, HTTP-FLV, WebRTC, MSE, HLS, MJPEG, HomeKit, FFmpeg, etc.";
+    description = "Ultimate camera streaming application with support RTSP, RTMP, HTTP-FLV, WebRTC, MSE, HLS, MJPEG, HomeKit, FFmpeg, etc";
     homepage = "https://github.com/AlexxIT/go2rtc";
     changelog = "https://github.com/AlexxIT/go2rtc/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/tools/video/mjpegtools/default.nix b/pkgs/tools/video/mjpegtools/default.nix
index f231d6ed184da..147c30fed4c52 100644
--- a/pkgs/tools/video/mjpegtools/default.nix
+++ b/pkgs/tools/video/mjpegtools/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "lib" ];
 
   meta = with lib; {
-    description = "A suite of programs for processing MPEG or MJPEG video";
+    description = "Suite of programs for processing MPEG or MJPEG video";
     homepage = "http://mjpeg.sourceforge.net/";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/tools/video/recyclarr/update.sh b/pkgs/tools/video/recyclarr/update.sh
index 83942439cc284..c9e5d5731992a 100755
--- a/pkgs/tools/video/recyclarr/update.sh
+++ b/pkgs/tools/video/recyclarr/update.sh
@@ -24,23 +24,8 @@ function get_hash() {
     nix hash to-sri "sha256:$pkg_hash"
 }
 
-# aarch64-darwin
-# reset version first so that all platforms are always updated and in sync
-update-source-version recyclarr 0 "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" --system="aarch64-darwin"
-update-source-version recyclarr "$latestVersion" $(get_hash osx arm64 "$latestVersion") --system="aarch64-darwin"
-
-# x86_64-darwin
-# reset version first so that all platforms are always updated and in sync
-update-source-version recyclarr 0 "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" --system="x86_64-darwin"
-update-source-version recyclarr "$latestVersion" $(get_hash osx x64 "$latestVersion") --system="x86_64-darwin"
-
-# aarch64-linux
-# reset version first so that all platforms are always updated and in sync
-update-source-version recyclarr 0 "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" --system="aarch64-linux"
-update-source-version recyclarr "$latestVersion" $(get_hash linux arm64 "$latestVersion") --system="aarch64-linux"
-
-# x86_64-linux
-# reset version first so that all platforms are always updated and in sync
-update-source-version recyclarr 0 "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" --system="x86_64-linux"
-update-source-version recyclarr "$latestVersion" $(get_hash linux x64 "$latestVersion") --system="x86_64-linux"
+update-source-version recyclarr "$latestVersion" $(get_hash osx arm64 "$latestVersion") --system="aarch64-darwin" --ignore-same-version
+update-source-version recyclarr "$latestVersion" $(get_hash osx x64 "$latestVersion") --system="x86_64-darwin" --ignore-same-version
+update-source-version recyclarr "$latestVersion" $(get_hash linux arm64 "$latestVersion") --system="aarch64-linux" --ignore-same-version
+update-source-version recyclarr "$latestVersion" $(get_hash linux x64 "$latestVersion") --system="x86_64-linux" --ignore-same-version
 
diff --git a/pkgs/tools/video/replay-sorcery/default.nix b/pkgs/tools/video/replay-sorcery/default.nix
index 7323644cdefb8..23e3f77154c7d 100644
--- a/pkgs/tools/video/replay-sorcery/default.nix
+++ b/pkgs/tools/video/replay-sorcery/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An open-source, instant-replay solution for Linux";
+    description = "Open-source, instant-replay solution for Linux";
     homepage = "https://github.com/matanui159/ReplaySorcery";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ kira-bruneau ];
diff --git a/pkgs/tools/video/swfmill/default.nix b/pkgs/tools/video/swfmill/default.nix
index 67c35d838fc79..9e8fea8b53a61 100644
--- a/pkgs/tools/video/swfmill/default.nix
+++ b/pkgs/tools/video/swfmill/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${libxml2.dev}/include/libxml2";
 
   meta = {
-    description = "An xml2swf and swf2xml processor with import functionalities";
+    description = "Xml2swf and swf2xml processor with import functionalities";
     homepage = "http://swfmill.org";
     license = lib.licenses.gpl2Only;
     platforms = lib.platforms.unix;
diff --git a/pkgs/tools/video/tsduck/default.nix b/pkgs/tools/video/tsduck/default.nix
index bb4757a4cf7fc..2e91b2dc8575d 100644
--- a/pkgs/tools/video/tsduck/default.nix
+++ b/pkgs/tools/video/tsduck/default.nix
@@ -82,7 +82,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "The MPEG Transport Stream Toolkit";
+    description = "MPEG Transport Stream Toolkit";
     homepage    = "https://github.com/tsduck/tsduck";
     license     = licenses.bsd2;
     maintainers = with maintainers; [ siriobalmelli ];
diff --git a/pkgs/tools/video/xjadeo/default.nix b/pkgs/tools/video/xjadeo/default.nix
index 01cb2c997913f..683a4a263eaac 100644
--- a/pkgs/tools/video/xjadeo/default.nix
+++ b/pkgs/tools/video/xjadeo/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "The X Jack Video Monitor";
+    description = "X Jack Video Monitor";
     longDescription = ''
       Xjadeo is a software video player that displays a video-clip in sync with
       an external time source (MTC, LTC, JACK-transport). Xjadeo is useful in
diff --git a/pkgs/tools/virtualization/amazon-ecs-cli/default.nix b/pkgs/tools/virtualization/amazon-ecs-cli/default.nix
index 16b43012e2600..cd242a56410f6 100644
--- a/pkgs/tools/virtualization/amazon-ecs-cli/default.nix
+++ b/pkgs/tools/virtualization/amazon-ecs-cli/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_CLI.html";
-    description = "The Amazon ECS command line interface";
+    description = "Amazon ECS command line interface";
     longDescription = "The Amazon Elastic Container Service (Amazon ECS) command line interface (CLI) provides high-level commands to simplify creating, updating, and monitoring clusters and tasks from a local development environment.";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
diff --git a/pkgs/tools/virtualization/awsebcli/default.nix b/pkgs/tools/virtualization/awsebcli/default.nix
index 3b7c7bf4033bc..d53c974a18d4c 100644
--- a/pkgs/tools/virtualization/awsebcli/default.nix
+++ b/pkgs/tools/virtualization/awsebcli/default.nix
@@ -92,7 +92,7 @@ localPython.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://aws.amazon.com/elasticbeanstalk/";
-    description = "A command line interface for Elastic Beanstalk";
+    description = "Command line interface for Elastic Beanstalk";
     changelog = "https://github.com/aws/aws-elastic-beanstalk-cli/blob/${version}/CHANGES.rst";
     maintainers = with maintainers; [ eqyiel kirillrdy ];
     license = licenses.asl20;
diff --git a/pkgs/tools/virtualization/govc/default.nix b/pkgs/tools/virtualization/govc/default.nix
index 4dc260d7aa525..dafe1c2fda273 100644
--- a/pkgs/tools/virtualization/govc/default.nix
+++ b/pkgs/tools/virtualization/govc/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "govc";
-  version = "0.37.2";
+  version = "0.37.3";
 
   subPackages = [ "govc" ];
 
@@ -10,7 +10,7 @@ buildGoModule rec {
     rev = "v${version}";
     owner = "vmware";
     repo = "govmomi";
-    sha256 = "sha256-9gsakFUmeOgWJGmhYtBcdjaEsF5oE3ytoHgwASOciq0=";
+    sha256 = "sha256-lqErey/uht+ub6deGgGNbytf0mhxgRekqe4y53Gtbms=";
   };
 
   vendorHash = "sha256-1EAQMYaTEtfAiu7+UTkC7QZwSWC1Ihwj9leTd90T0ZU=";
@@ -22,7 +22,7 @@ buildGoModule rec {
   ];
 
   meta = {
-    description = "A vSphere CLI built on top of govmomi";
+    description = "VSphere CLI built on top of govmomi";
     homepage = "https://github.com/vmware/govmomi/tree/master/govc";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ nicknovitski ];
diff --git a/pkgs/tools/virtualization/jumppad/default.nix b/pkgs/tools/virtualization/jumppad/default.nix
index 3976b8c960ff5..5133d4477fab1 100644
--- a/pkgs/tools/virtualization/jumppad/default.nix
+++ b/pkgs/tools/virtualization/jumppad/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "jumppad";
-  version = "0.11.1";
+  version = "0.11.2";
 
   src = fetchFromGitHub {
     owner = "jumppad-labs";
     repo = "jumppad";
     rev = version;
-    hash = "sha256-8oynWGvWRqXcIBpgLEpFFDwPCbyePXJmFC8xgKPaN9Q=";
+    hash = "sha256-ovPXjSHTCv7ke8k0iOqB4jB4R3cRMJ5cFkpptPrAr+g=";
   };
   vendorHash = "sha256-39CORZ5qqbMJuTzYt1sKbHPPYkQEwQWSIQ4hWqdUFmk=";
 
@@ -24,7 +24,7 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A tool for building modern cloud native development environments";
+    description = "Tool for building modern cloud native development environments";
     homepage = "https://jumppad.dev";
     license = licenses.mpl20;
     maintainers = with maintainers; [ cpcloud ];
diff --git a/pkgs/tools/virtualization/kubevirt/default.nix b/pkgs/tools/virtualization/kubevirt/default.nix
index d20168fc7cba6..53c2802068438 100644
--- a/pkgs/tools/virtualization/kubevirt/default.nix
+++ b/pkgs/tools/virtualization/kubevirt/default.nix
@@ -8,13 +8,13 @@
 
 buildGoModule rec {
   pname = "kubevirt";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "kubevirt";
     repo = "kubevirt";
     rev = "v${version}";
-    hash = "sha256-GQhynbGu3pEYYKOib0l/TfXrrLQ7TkjacWVdwFrlzEo=";
+    hash = "sha256-N7To46D8a64/fVDHOuRWt8xQduh/Lvi5C3/N9FhujmI=";
   };
 
   vendorHash = null;
diff --git a/pkgs/tools/virtualization/linode-cli/default.nix b/pkgs/tools/virtualization/linode-cli/default.nix
index a4f54ec86177b..795eb1e8636e5 100644
--- a/pkgs/tools/virtualization/linode-cli/default.nix
+++ b/pkgs/tools/virtualization/linode-cli/default.nix
@@ -78,7 +78,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     mainProgram = "linode-cli";
-    description = "The Linode Command Line Interface";
+    description = "Linode Command Line Interface";
     homepage = "https://github.com/linode/linode-cli";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ryantm techknowlogick ];
diff --git a/pkgs/tools/virtualization/mkosi/default.nix b/pkgs/tools/virtualization/mkosi/default.nix
index 130b47a5c9d24..4514280f7757a 100644
--- a/pkgs/tools/virtualization/mkosi/default.nix
+++ b/pkgs/tools/virtualization/mkosi/default.nix
@@ -1,6 +1,5 @@
 { lib
 , fetchFromGitHub
-, fetchpatch
 , stdenv
 , python3
 , bubblewrap
diff --git a/pkgs/tools/virtualization/nixos-shell/default.nix b/pkgs/tools/virtualization/nixos-shell/default.nix
index 6f7340835523f..14924de4e32d3 100644
--- a/pkgs/tools/virtualization/nixos-shell/default.nix
+++ b/pkgs/tools/virtualization/nixos-shell/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nixos-shell";
-  version = "1.1.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "nixos-shell";
     rev = version;
-    sha256 = "sha256-5hHkokfSY3Z4VqjNm/j564l9Bgynw5H5McX0hTruGoI=";
+    sha256 = "sha256-r5qNuv8MAo9He2g2jMPYlpxwaMzKomDvxvjNoS0JKDI=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/wayland/cliphist/default.nix b/pkgs/tools/wayland/cliphist/default.nix
index 7485d79bf7bc4..0cbb856162b2a 100644
--- a/pkgs/tools/wayland/cliphist/default.nix
+++ b/pkgs/tools/wayland/cliphist/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+}:
 
 buildGoModule rec {
   pname = "cliphist";
@@ -13,6 +17,10 @@ buildGoModule rec {
 
   vendorHash = "sha256-O4jOFWygmFxm8ydOq1xtB1DESyWpFGXeSp8a6tT+too=";
 
+  postInstall = ''
+    cp ${src}/contrib/* $out/bin/
+  '';
+
   meta = with lib; {
     description = "Wayland clipboard manager";
     homepage = "https://github.com/sentriz/cliphist";
diff --git a/pkgs/tools/wayland/clipman/default.nix b/pkgs/tools/wayland/clipman/default.nix
index a00c9cc58dec6..95cdab616a44b 100644
--- a/pkgs/tools/wayland/clipman/default.nix
+++ b/pkgs/tools/wayland/clipman/default.nix
@@ -33,7 +33,7 @@ buildGoModule rec {
 
   meta = with lib; {
     homepage = "https://github.com/chmouel/clipman";
-    description = "A simple clipboard manager for Wayland";
+    description = "Simple clipboard manager for Wayland";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ma27 ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/wayland/gnome-randr/default.nix b/pkgs/tools/wayland/gnome-randr/default.nix
index 51c460852c0af..65265f4522958 100644
--- a/pkgs/tools/wayland/gnome-randr/default.nix
+++ b/pkgs/tools/wayland/gnome-randr/default.nix
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage {
   nativeBuildInputs = [ pkg-config ];
 
   meta = with lib; {
-    description = "An xrandr-like CLI for configuring displays on GNOME/Wayland, on distros that don't support `wlr-randr`";
+    description = "Xrandr-like CLI for configuring displays on GNOME/Wayland, on distros that don't support `wlr-randr`";
     homepage = "https://github.com/maxwellainatchi/gnome-randr-rust";
     license = licenses.mit;
     maintainers = [ maintainers.roberth ];
diff --git a/pkgs/tools/wayland/kanshi/default.nix b/pkgs/tools/wayland/kanshi/default.nix
index f54201c808dba..853638db6fb6a 100644
--- a/pkgs/tools/wayland/kanshi/default.nix
+++ b/pkgs/tools/wayland/kanshi/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "kanshi";
-  version = "1.6.0";
+  version = "1.7.0";
 
   src = fetchFromSourcehut {
     owner = "~emersion";
     repo = "kanshi";
     rev = "v${version}";
-    sha256 = "sha256-KjP7EdssaZwa1OupLQgzwJSAADKLsjHltEavPjsS1YM=";
+    sha256 = "sha256-FDt+F5tWHLsMejlExb5yPh0SlWzuUlK9u54Uy+alrzw=";
   };
 
   strictDeps = true;
diff --git a/pkgs/tools/wayland/mpvpaper/default.nix b/pkgs/tools/wayland/mpvpaper/default.nix
index acadb99c2d669..dab819d883611 100644
--- a/pkgs/tools/wayland/mpvpaper/default.nix
+++ b/pkgs/tools/wayland/mpvpaper/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A video wallpaper program for wlroots based wayland compositors";
+    description = "Video wallpaper program for wlroots based wayland compositors";
     homepage = "https://github.com/GhostNaN/mpvpaper";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
diff --git a/pkgs/tools/wayland/oguri/default.nix b/pkgs/tools/wayland/oguri/default.nix
index 4c13a3879fcfa..9156e6df39b00 100644
--- a/pkgs/tools/wayland/oguri/default.nix
+++ b/pkgs/tools/wayland/oguri/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/vilhalmer/oguri/";
-    description = "A very nice animated wallpaper daemon for Wayland compositors";
+    description = "Very nice animated wallpaper daemon for Wayland compositors";
     license = licenses.mit;
     maintainers = with maintainers; [ AndersonTorres ];
     inherit (wayland.meta) platforms;
diff --git a/pkgs/tools/wayland/shikane/default.nix b/pkgs/tools/wayland/shikane/default.nix
index b9cac576b5871..edf83aea2d065 100644
--- a/pkgs/tools/wayland/shikane/default.nix
+++ b/pkgs/tools/wayland/shikane/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "shikane";
-  version = "0.2.0";
+  version = "1.0.1";
 
   src = fetchFromGitLab {
     owner = "w0lff";
     repo = "shikane";
     rev = "v${version}";
-    hash = "sha256-S55elFZQT234fKlISFi21QJtnf2yB0O2u2vSNFhzgBg=";
+    hash = "sha256-Chc1+JUHXzuLl26NuBGVxSiXiaE4Ns1FXb0dBs6STVk=";
   };
 
-  cargoHash = "sha256-4wisXVaZa2GBFKywl48beQgg4c+lawL3L/837ZU1Y94=";
+  cargoHash = "sha256-uuQBTAyWczzc4Ez2Tq4Ps6NPonXqHrXAP2AZFzgsvo4=";
 
   nativeBuildInputs = [
     installShellFiles
@@ -35,7 +35,7 @@ rustPlatform.buildRustPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A dynamic output configuration tool that automatically detects and configures connected outputs based on a set of profiles";
+    description = "Dynamic output configuration tool that automatically detects and configures connected outputs based on a set of profiles";
     homepage = "https://gitlab.com/w0lff/shikane";
     changelog = "https://gitlab.com/w0lff/shikane/-/tags/v${version}";
     license = licenses.mit;
diff --git a/pkgs/tools/wayland/shotman/default.nix b/pkgs/tools/wayland/shotman/default.nix
index 08de35f14d3f2..7623dd4504e7e 100644
--- a/pkgs/tools/wayland/shotman/default.nix
+++ b/pkgs/tools/wayland/shotman/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "shotman";
-  version = "0.4.5";
+  version = "0.4.6";
 
   src = fetchFromSourcehut {
     owner = "~whynothugo";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-SctWNhYCFTAOOnDEcsFZH61+QQAcmup11GVVXA1U5Dw=";
+    hash = "sha256-OmYCeB2szWmFJQ+MXWmVI7IzeXgbix9ZK4/4kgR5S6A=";
   };
 
-  cargoHash = "sha256-q5scdgfB5NgtjAgnIy/+c+y/mymF0b9ZZSz2LmM0pfw=";
+  cargoHash = "sha256-Kq2uq171B+4WzEJauH19/nzkm2irM4ggoFfxlARfyEg=";
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
 
@@ -30,7 +30,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "The uncompromising screenshot GUI for Wayland compositors";
+    description = "Uncompromising screenshot GUI for Wayland compositors";
     homepage = "https://git.sr.ht/~whynothugo/shotman";
     license = licenses.isc;
     platforms = platforms.linux;
diff --git a/pkgs/tools/wayland/swayr/default.nix b/pkgs/tools/wayland/swayr/default.nix
index 0d86bac82139b..e72f44836c1bb 100644
--- a/pkgs/tools/wayland/swayr/default.nix
+++ b/pkgs/tools/wayland/swayr/default.nix
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = {
-    description = "A window switcher (and more) for sway";
+    description = "Window switcher (and more) for sway";
     homepage = "https://git.sr.ht/~tsdh/swayr";
     license = lib.licenses.gpl3Plus;
     mainProgram = "swayr";
diff --git a/pkgs/tools/wayland/waylogout/default.nix b/pkgs/tools/wayland/waylogout/default.nix
index 6bf3b89eea409..518d030945105 100644
--- a/pkgs/tools/wayland/waylogout/default.nix
+++ b/pkgs/tools/wayland/waylogout/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation {
   ];
 
   meta = with lib; {
-    description = "A graphical logout/suspend/reboot/shutdown dialog for wayland";
+    description = "Graphical logout/suspend/reboot/shutdown dialog for wayland";
     homepage = "https://github.com/loserMcloser/waylogout";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
diff --git a/pkgs/tools/wayland/waynergy/default.nix b/pkgs/tools/wayland/waynergy/default.nix
index cbb1913877970..434303c45b737 100644
--- a/pkgs/tools/wayland/waynergy/default.nix
+++ b/pkgs/tools/wayland/waynergy/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A synergy client for Wayland compositors";
+    description = "Synergy client for Wayland compositors";
     longDescription = ''
       A synergy client for Wayland compositors
     '';
diff --git a/pkgs/tools/wayland/wl-clipboard-x11/default.nix b/pkgs/tools/wayland/wl-clipboard-x11/default.nix
index 0c127f751dfff..e7cdb9a554a51 100644
--- a/pkgs/tools/wayland/wl-clipboard-x11/default.nix
+++ b/pkgs/tools/wayland/wl-clipboard-x11/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A wrapper to use wl-clipboard as a drop-in replacement for X11 clipboard tools";
+    description = "Wrapper to use wl-clipboard as a drop-in replacement for X11 clipboard tools";
     homepage = "https://github.com/brunelli/wl-clipboard-x11";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ artturin ];
diff --git a/pkgs/tools/wayland/wl-mirror/default.nix b/pkgs/tools/wayland/wl-mirror/default.nix
index 96830926a6713..acc961aa9bb10 100644
--- a/pkgs/tools/wayland/wl-mirror/default.nix
+++ b/pkgs/tools/wayland/wl-mirror/default.nix
@@ -28,13 +28,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "wl-mirror";
-  version = "0.16.2";
+  version = "0.16.3";
 
   src = fetchFromGitHub {
     owner = "Ferdi265";
     repo = "wl-mirror";
     rev = "v${version}";
-    hash = "sha256-srGqMqkkdJzcxN2sNToqDw/6B4OirlmKW1MXt1Nmvsk=";
+    hash = "sha256-/ZxTFr5Mmg1UoJikweGJThREgutKCF0C5IwxEZ3bv7Q=";
   };
 
   strictDeps = true;
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/Ferdi265/wl-mirror";
-    description = "A simple Wayland output mirror client";
+    description = "Simple Wayland output mirror client";
     license = licenses.gpl3;
     maintainers = with maintainers; [ synthetica ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/wayland/wleave/default.nix b/pkgs/tools/wayland/wleave/default.nix
index 0ddd5c4595aee..d4fb46142d597 100644
--- a/pkgs/tools/wayland/wleave/default.nix
+++ b/pkgs/tools/wayland/wleave/default.nix
@@ -61,7 +61,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "A Wayland-native logout script written in GTK3";
+    description = "Wayland-native logout script written in GTK3";
     homepage = "https://github.com/AMNatty/wleave";
     license = licenses.mit;
     mainProgram = "wleave";
diff --git a/pkgs/tools/wayland/wlprop/default.nix b/pkgs/tools/wayland/wlprop/default.nix
index 0637d0596ca20..bec633dc60fca 100644
--- a/pkgs/tools/wayland/wlprop/default.nix
+++ b/pkgs/tools/wayland/wlprop/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   passthru.scriptName = "wlprop.sh";
 
   meta = with lib; {
-    description = "An xprop clone for wlroots based compositors";
+    description = "Xprop clone for wlroots based compositors";
     homepage = "https://gist.github.com/crispyricepc/f313386043395ff06570e02af2d9a8e0";
     license = licenses.mit;
     maintainers = with maintainers; [ sebtm ];
diff --git a/pkgs/tools/wayland/wlr-randr/default.nix b/pkgs/tools/wayland/wlr-randr/default.nix
index 94250dad2efc4..6d470aae1971f 100644
--- a/pkgs/tools/wayland/wlr-randr/default.nix
+++ b/pkgs/tools/wayland/wlr-randr/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ wayland ];
 
   meta = with lib; {
-    description = "An xrandr clone for wlroots compositors";
+    description = "Xrandr clone for wlroots compositors";
     homepage = "https://git.sr.ht/~emersion/wlr-randr";
     license = licenses.mit;
     maintainers = with maintainers; [ ma27 ];
diff --git a/pkgs/tools/wayland/wlr-which-key/default.nix b/pkgs/tools/wayland/wlr-which-key/default.nix
index bef65f8bc9dbc..3eaa2822c1901 100644
--- a/pkgs/tools/wayland/wlr-which-key/default.nix
+++ b/pkgs/tools/wayland/wlr-which-key/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wlr-which-key";
-  version = "0.1.1";
+  version = "0.1.3";
 
   src = fetchFromGitHub {
     owner = "MaxVerevkin";
     repo = "wlr-which-key";
     rev = "v${version}";
-    hash = "sha256-FVpPS5EQ6+xZIBtdS18SdVx0TK9/ikryU9mtm5JvDgk=";
+    hash = "sha256-DedmLWjK0a6AoGaKGRKfsmK/NIAFV2EYY8MgfiEj4+o=";
   };
 
-  cargoHash = "sha256-JELvmG2CiknBP3QbaXSl1uj6wEgLaDFVFBuS1l5SUk4=";
+  cargoHash = "sha256-ZGaQX5raMSCwt88xhctwCxGWa9HZtcNqTKM35Z8QvAc=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/tools/wayland/wluma/default.nix b/pkgs/tools/wayland/wluma/default.nix
index edc751fec5117..94201db4a395f 100644
--- a/pkgs/tools/wayland/wluma/default.nix
+++ b/pkgs/tools/wayland/wluma/default.nix
@@ -1,7 +1,10 @@
 { lib
+, stdenv
 , fetchFromGitHub
 , makeWrapper
 , rustPlatform
+, marked-man
+, coreutils
 , vulkan-loader
 , wayland
 , pkg-config
@@ -22,6 +25,19 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-Ow3SjeulYiHY9foXrmTtLK3F+B3+DrtDjBUke3bJeDw=";
   };
 
+  postPatch = ''
+    substituteInPlace Makefile --replace \
+      'target/release/$(BIN)' \
+      'target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/$(BIN)'
+
+    # Needs chmod and chgrp
+    substituteInPlace 90-wluma-backlight.rules --replace \
+      'RUN+="/bin/' 'RUN+="${coreutils}/bin/'
+
+    substituteInPlace wluma.service --replace \
+      'ExecStart=/usr/bin/wluma' 'ExecStart=${placeholder "out"}/bin/wluma'
+  '';
+
   cargoLock = {
     lockFile = ./Cargo.lock;
   };
@@ -30,6 +46,7 @@ rustPlatform.buildRustPackage rec {
     makeWrapper
     pkg-config
     rustPlatform.bindgenHook
+    marked-man
   ];
 
   buildInputs = [
@@ -39,6 +56,12 @@ rustPlatform.buildRustPackage rec {
     dbus
   ];
 
+  postBuild = ''
+    make docs
+  '';
+
+  dontCargoInstall = true;
+  installFlags = [ "PREFIX=${placeholder "out"}" ];
   postInstall = ''
     wrapProgram $out/bin/wluma \
       --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ wayland ]}"
diff --git a/pkgs/tools/wayland/wob/default.nix b/pkgs/tools/wayland/wob/default.nix
index f51ae7dc76570..d57755244a10f 100644
--- a/pkgs/tools/wayland/wob/default.nix
+++ b/pkgs/tools/wayland/wob/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "A lightweight overlay bar for Wayland";
+    description = "Lightweight overlay bar for Wayland";
     longDescription = ''
       A lightweight overlay volume/backlight/progress/anything bar for Wayland,
       inspired by xob.
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 66114c9995fc3..33be186191994 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -59,7 +59,9 @@ mapAliases ({
   AusweisApp2 = ausweisapp; # Added 2023-11-08
   a4term = a4; # Added 2023-10-06
   acorn = throw "acorn has been removed as the upstream project was archived"; # Added 2024-04-27
+  acousticbrainz-client = throw "acousticbrainz-client has been removed since the AcousticBrainz project has been shut down"; # Added 2024-06-04
   adtool = throw "'adtool' has been removed, as it was broken and unmaintained";
+  adom = throw "'adom' has been removed, as it was broken and unmaintained"; # added 2024-05-09
   advcpmv = throw "'advcpmv' has been removed, as it is not being actively maintained and break recent coreutils."; # Added 2024-03-29
   aether = throw "aether has been removed from nixpkgs; upstream unmaintained, security issues"; # Added 2023-10-03
   afl = throw "afl has been removed as the upstream project was archived. Consider using 'aflplusplus'"; # Added 2024-04-21
@@ -80,6 +82,7 @@ mapAliases ({
   apacheAnt_1_9 = throw "Ant 1.9 has been removed since it's not used in nixpkgs anymore"; # Added 2023-11-12
   antimicroX = antimicrox; # Added 2021-10-31
   appthreat-depscan = dep-scan; # Added 2024-04-10
+  arcanist = throw "arcanist was removed as phabricator is not supported and does not accept fixes"; # Added 2024-06-07
   arcanPackages = throw "arcanPackages was removed and its sub-attributes were promoted to top-level"; # Added 2023-11-26
   archiveopteryx = throw "archiveopteryx depended on an unsupported version of OpenSSL and was unmaintained"; # Added 2024-01-03
   ardour_6 = throw "ardour_6 has been removed in favor of newer versions"; # Added 2023-10-13
@@ -95,7 +98,9 @@ mapAliases ({
   auditBlasHook = throw "'auditBlasHook' has been removed since it never worked"; # Added 2024-04-02
   authy = throw "'authy' has been removed since it reached end of life"; # Added 2024-04-19
   avldrums-lv2 = x42-avldrums; # Added 2020-03-29
+  avrlibcCross = avrlibc; # Added 2024-06-18
   awesome-4-0 = awesome; # Added 2022-05-05
+  aws-env = throw "aws-env has been removed as the upstream project was unmaintained"; # Added 2024-06-11
 
   ### B ###
 
@@ -106,6 +111,7 @@ mapAliases ({
   bash_5 = bash; # Added 2021-08-20
   bazel_3 = throw "bazel 3 is past end of life as it is not an lts version"; # Added 2023-02-02
   bazel_4 = throw "'bazel_4' has been removed from nixpkgs as it has reached end of life"; # Added 2024-01-23
+  BeatSaberModManager = beatsabermodmanager; # Added 2024-06-12
   bedup = throw "bedup was removed because it was broken and abandoned upstream"; # added 2023-02-04
   bee-unstable = throw "bee-unstable has been removed, use 'bee' instead"; # Added 2024-02-12
   bee-clef = throw "bee-clef has been removed as the upstream project was archived"; # Added 2024-02-12
@@ -131,6 +137,7 @@ mapAliases ({
   boost174 = throw "boost174 has been deprecated in favor of the latest version"; # Added 2023-06-08
   boost17x = throw "boost17x has been deprecated in favor of the latest version"; # Added 2023-07-13
   boost18x = throw "boost18x has been deprecated in favor of the latest version"; # Added 2023-07-13
+  boost_process = throw "boost_process has been removed as it is included in regular boost"; # Added 2024-05-01
   bpb = throw "bpb has been removed as it is unmaintained and not compatible with recent Rust versions"; # Added 2024-04-30
   bpftool = bpftools; # Added 2021-05-03
   bpytop = throw "bpytop has been deprecated by btop"; # Added 2023-02-16
@@ -172,6 +179,10 @@ mapAliases ({
   chia-plotter = throw "chia-plotter has been removed. see https://github.com/NixOS/nixpkgs/pull/270254"; # Added 2023-11-30
   chkservice = throw "chkservice has been removed from nixpkgs, as it has been deleted upstream"; # Added 2024-01-08
   chocolateDoom = chocolate-doom; # Added 2023-05-01
+  ChowCentaur = chow-centaur; # Added 2024-06-12
+  ChowPhaser = chow-phaser; # Added 2024-06-12
+  ChowKick = chow-kick; # Added 2024-06-12
+  CHOWTapeModel = chow-tape-model; # Added 2024-06-12
   chrome-gnome-shell = gnome-browser-connector; # Added 2022-07-27
   chromiumBeta = throw "'chromiumBeta' has been removed due to the lack of maintenance in nixpkgs. Consider using 'chromium' instead."; # Added 2023-10-18
   chromiumDev = throw "'chromiumDev' has been removed due to the lack of maintenance in nixpkgs. Consider using 'chromium' instead."; # Added 2023-10-18
@@ -182,11 +193,13 @@ mapAliases ({
   inherit (libsForQt5.mauiPackages) clip; # added 2022-05-17
   clpm = throw "'clpm' has been removed from nixpkgs"; # Added 2024-04-01
   clwrapperFunction = throw "Lisp packages have been redesigned. See 'lisp-modules' in the nixpkgs manual."; # Added 2024-05-07
+  CoinMP = coinmp; # Added 2024-06-12
   collada-dom = opencollada; # added 2024-02-21
   composable_kernel = throw "'composable_kernel' has been replaced with 'rocmPackages.composable_kernel'"; # Added 2023-10-08
   cope = throw "'cope' has been removed, as it is broken in nixpkgs since it was added, and fixing it is not trivial"; # Added 2024-04-12
   cpp-ipfs-api = cpp-ipfs-http-client; # Project has been renamed. Added 2022-05-15
   crispyDoom = crispy-doom; # Added 2023-05-01
+  crossLibcStdenv = stdenvNoLibc; # Added 2024-06-18
   cryptowatch-desktop = throw "Cryptowatch Desktop was sunset on September 30th 2023 and has been removed from nixpkgs"; # Added 2023-12-22
   clash = throw "'clash' has been removed, upstream gone. Consider using 'mihomo' instead."; # added 2023-11-10
   clasp = clingo; # added 2022-12-22
@@ -199,6 +212,7 @@ mapAliases ({
   compton = throw "'compton' has been renamed to/replaced by 'picom'"; # Converted to throw 2023-09-10
   concurrencykit = libck; # Added 2021-03
   connmanPackages = throw "'connmanPackages' was removed and their subpackages/attributes were promoted to top level."; # Added 2023-10-08
+  containerpilot = throw "'containerpilot' has been removed from nixpkgs, as it was broken and unmaintained"; # Added 2024-06-09
   convoy = throw "'convoy' has been removed from nixpkgs, as it was archived upstream"; # Added 2023-12-27
   crda = throw "'crda' has been removed from nixpkgs, as it is needed only for kernels before 4.16"; # Added 2024-02-06
   cups-kyodialog3 = cups-kyodialog; # Added 2022-11-12
@@ -217,6 +231,7 @@ mapAliases ({
   clang15Stdenv = lowPrio llvmPackages_15.stdenv;
   clang16Stdenv = lowPrio llvmPackages_16.stdenv;
   clang17Stdenv = lowPrio llvmPackages_17.stdenv;
+  clang18Stdenv = lowPrio llvmPackages_18.stdenv;
 
   clang-tools_6 = throw "clang-tools_6 has been removed from nixpkgs"; # Added 2024-01-08
   clang-tools_7 = throw "clang-tools_7 has been removed from nixpkgs"; # Added 2023-11-19
@@ -249,9 +264,11 @@ mapAliases ({
   dep = throw "'dep' has been removed, because it is deprecated and archived in favor of Go modules"; # Added 2023-12-26
   devserver = throw "'devserver' has been removed in favor of 'miniserve' or other alternatives"; # Added 2023-01-13
   dfeet = throw "'dfeet' has been removed because it is archived upstream. Please use 'd-spy' instead"; # Added 2024-03-07
+  dgsh = throw "'dgsh' has been removed, as it was broken and unmaintained"; # added 2024-05-09
   dhcp = throw "dhcp (ISC DHCP) has been removed from nixpkgs, because it reached its end of life"; # Added 2023-04-04
   dibbler = throw "dibbler was removed because it is not maintained anymore"; # Added 2024-05-14
   dnnl = oneDNN; # Added 2020-04-22
+  docker-distribution = distribution; # Added 2023-12-26
   docker-machine = throw "'docker-machine' has been removed, because the upstream project was archived"; # Added 2023-12-27
   docker-machine-kvm = throw "'docker-machine-kvm' has been removed, because 'docker-machine' was archived upstream and removed"; # Added 2023-12-27
   docker-machine-xhyve = throw "'docker-machine-xhyve' has been removed, because 'docker-machine' was archived upstream and removed"; # Added 2023-12-27
@@ -334,14 +351,21 @@ mapAliases ({
   enchant1 = throw "enchant1 has been removed from nixpkgs, as it was unmaintained"; # Added 2023-01-18
   enyo-doom = enyo-launcher; # Added 2022-09-09
   epoxy = libepoxy; # Added 2021-11-11
-  inherit (beam.interpreters) erlangR26 erlangR25 erlangR24; # added 2023-03-21
-  erlang_21 = throw "erlangR21 has been removed in favor of newer versions."; # added 2023-03-21
-  erlangR21 = erlang_21;
-  erlang_22 = throw "erlangR22 has been removed in favor of newer versions."; # added 2023-03-21
-  erlangR22 = erlang_22;
-  erlang_23 = throw "erlangR23 has been removed in favor of newer versions."; # added 2023-09-11
-  erlangR23 = erlang_23;
+
   erlang_27-rc3 = throw "erlang_27-rc3 has been removed in favor of erlang_27"; # added 2024-05-20
+  erlangR24 = throw "erlangR24 has been removed in favor of erlang_24"; # added 2024-05-24
+  erlangR24_odbc = throw "erlangR24_odbc has been removed in favor of erlang_24_odbc"; # added 2024-05-24
+  erlangR24_javac = throw "erlangR24_javac has been removed in favor of erlang_24_javac"; # added 2024-05-24
+  erlangR24_odbc_javac = throw "erlangR24_odbc_javac has been removed in favor of erlang_24_odbc_javac"; # added 2024-05-24
+  erlangR25 = throw "erlangR25 has been removed in favor of erlang_25"; # added 2024-05-24
+  erlangR25_odbc = throw "erlangR25_odbc has been removed in favor of erlang_25_odbc"; # added 2024-05-24
+  erlangR25_javac = throw "erlangR25_javac has been removed in favor of erlang_25_javac"; # added 2024-05-24
+  erlangR25_odbc_javac = throw "erlangR25_odbc_javac has been removed in favor of erlang_25_odbc_javac"; # added 2024-05-24
+  erlangR26 = throw "erlangR26 has been removed in favor of erlang_26"; # added 2024-05-24
+  erlangR26_odbc = throw "erlangR26_odbc has been removed in favor of erlang_26_odbc"; # added 2024-05-24
+  erlangR26_javac = throw "erlangR26_javac has been removed in favor of erlang_26_javac"; # added 2024-05-24
+  erlangR26_odbc_javac = throw "erlangR26_odbc_javac has been removed in favor of erlang_26_odbc_javac"; # added 2024-05-24
+
   etcd_3_3 = throw "etcd_3_3 has been removed because upstream no longer maintains it"; # Added 2023-09-29
   etcher = throw "'etcher' has been removed because it depended on an insecure version of Electron"; # Added 2024-03-14
   eterm = throw "eterm was removed because it is still insecure: https://github.com/mej/Eterm/issues/7"; # Added 2023-09-10
@@ -357,6 +381,7 @@ mapAliases ({
   fastnlo_toolkit = fastnlo-toolkit; # Added 2024-01-03
   inherit (luaPackages) fennel; # Added 2022-09-24
   fetchFromGithub = throw "You meant fetchFromGitHub, with a capital H"; # preserve
+  FIL-plugins = fil-plugins; # Added 2024-06-12
   findimagedupes = throw "findimagedupes has been removed because the perl bindings are no longer compatible"; # Added 2023-07-10
   finger_bsd = bsd-finger;
   fingerd_bsd = bsd-fingerd;
@@ -380,6 +405,7 @@ mapAliases ({
   fractal-next = fractal; # added 2023-11-25
   framework-system-tools = framework-tool; # added 2023-12-09
   fritzprofiles = throw "fritzprofiles was removed from nixpkgs, because it was removed as dependency of home-assistant for which it was pacakged."; # added 2024-01-05
+  frostwire = throw "frostwire was removed, as it was broken due to reproducibility issues, use `frostwire-bin` package instead."; # added 2024-05-17
   fuse2fs = if stdenv.isLinux then e2fsprogs.fuse2fs else null; # Added 2022-03-27 preserve, reason: convenience, arch has a package named fuse2fs too.
   futuresql = libsForQt5.futuresql; # added 2023-11-11
   fx_cast_bridge = fx-cast-bridge; # added 2023-07-26
@@ -481,6 +507,8 @@ mapAliases ({
   godot-headless = throw "godot-headless has been renamed to godot3-headless to distinguish from version 4"; # Added 2023-07-16
   godot-server = throw "godot-server has been renamed to godot3-server to distinguish from version 4"; # Added 2023-07-16
 
+  gdtoolkit = throw "gdtoolkit has been renamed to gdtoolkit_3 to distinguish from version 4"; # Added 2024-02-17
+
   google-chrome-beta = throw "'google-chrome-beta' has been removed due to the lack of maintenance in nixpkgs. Consider using 'google-chrome' instead."; # Added 2023-10-18
   google-chrome-dev = throw "'google-chrome-dev' has been removed due to the lack of maintenance in nixpkgs. Consider using 'google-chrome' instead."; # Added 2023-10-18
   google-gflags = throw "'google-gflags' has been renamed to/replaced by 'gflags'"; # Converted to throw 2023-09-10
@@ -514,6 +542,7 @@ mapAliases ({
   grub = throw "grub1 was removed after not being maintained upstream for a decade. Please switch to another bootloader"; # Added 2023-04-11
   gtkcord4 = dissent; # Added 2024-03-10
   gtkpod = throw "'gtkpod' was removed due to one of its dependencies, 'anjuta' being unmaintained"; # Added 2024-01-16
+  guardian-agent = throw "'guardian-agent' has been removed, as it hasn't been maintained upstream in years and accumulated many vulnerabilities"; # Added 2024-06-09
   guile-disarchive = disarchive; # Added 2023-10-27
   guile-lint = throw "'guile-lint' has been removed, please use 'guild lint' instead"; # Added 2023-10-16
 
@@ -521,6 +550,7 @@ mapAliases ({
 
   haxe_3_2 = throw "'haxe_3_2' has been removed because it is old and no longer used by any packages in nixpkgs"; # Added 2023-03-15
   haxe_3_4 = throw "'haxe_3_4' has been removed because it is old and no longer used by any packages in nixpkgs"; # Added 2023-03-15
+  HentaiAtHome = hentai-at-home; # Added 2024-06-12
   hepmc = throw "'hepmc' has been renamed to/replaced by 'hepmc2'"; # Converted to throw 2023-09-10
   hikari = throw "hikari has been removed from nixpkgs, it was unmaintained and required wlroots_0_15 at the time of removal"; # Added 2024-03-28
   hip = throw "'hip' has been removed in favor of 'rocmPackages.clr'"; # Added 2023-10-08
@@ -583,11 +613,14 @@ mapAliases ({
   julia_18 = throw "'julia_18' has been removed from nixpkgs as it has reached end of life"; # Added 2024-01-11
   julia_18-bin = throw "'julia_18-bin' has been removed from nixpkgs as it has reached end of life"; # Added 2024-01-11
 
+  jush = throw "jush has been removed from nixpkgs because it is unmaintained"; # Added 2024-05-28
+
   ### K ###
 
   k3s_1_24 = throw "'k3s_1_24' has been removed from nixpkgs as it has reached end of life"; # Added 2024-03-14
   k3s_1_25 = throw "'k3s_1_25' has been removed from nixpkgs as it has reached end of life"; # Added 2024-03-14
   k3s_1_26 = throw "'k3s_1_26' has been removed from nixpkgs as it has reached end of life"; # Added 2024-05-20
+  k3s_1_27 = throw "'k3s_1_27' has been removed from nixpkgs as it has reached end of life on 2024-06-28"; # Added 2024-06-01
   # k3d was a 3d editing software k-3d - "k3d has been removed because it was broken and has seen no release since 2016" Added 2022-01-04
   # now kube3d/k3d will take it's place
   kube3d = k3d; # Added 2022-0705
@@ -620,11 +653,14 @@ mapAliases ({
   ### L ###
 
   larynx = piper-tts; # Added 2023-05-09
+  LASzip = laszip; # Added 2024-06-12
+  LASzip2 = laszip_2; # Added 2024-06-12
   latinmodern-math = lmmath;
   ldgallery = throw "'ldgallery' has been removed from nixpkgs. Use the Flake provided by ldgallery instead"; # Added 2023-07-26
   ledger_agent = ledger-agent; # Added 2024-01-07
   lfs = dysk; # Added 2023-07-03
   llvmPackages_rocm = throw "'llvmPackages_rocm' has been replaced with 'rocmPackages.llvm'"; # Added 2023-10-08
+  libAfterImage = throw "'libAfterImage' has been removed from nixpkgs, as it's no longer in development for a long time"; # Added 2024-06-01
   libayatana-indicator-gtk3 = libayatana-indicator; # Added 2022-10-18
   libayatana-appindicator-gtk3 = libayatana-appindicator; # Added 2022-10-18
   libbencodetools = bencodetools; # Added 2022-07-30
@@ -644,8 +680,11 @@ mapAliases ({
   libmongo-client = throw "'libmongo-client' has been removed, upstream gone"; # Added 2023-06-22
   libpulseaudio-vanilla = libpulseaudio; # Added 2022-04-20
   libquotient = libsForQt5.libquotient; # Added 2023-11-11
+  librarian-puppet-go = throw "'librarian-puppet-go' has been removed, as it's upstream is unmaintained"; # Added 2024-06-10
   libraw_unstable = throw "'libraw_unstable' has been removed, please use libraw"; # Added 2023-01-30
   librdf = lrdf; # Added 2020-03-22
+  LibreArp = librearp; # Added 2024-06-12
+  LibreArp-lv2 = librearp-lv2; # Added 2024-06-12
   libressl_3_5 = throw "'libressl_3_5' has reached end-of-life "; # Added 2023-05-07
   librtlsdr = rtl-sdr; # Added 2023-02-18
   librewolf-wayland = librewolf; # Added 2022-11-15
@@ -667,6 +706,7 @@ mapAliases ({
   lispPackages_new = throw "Lisp packages have been redesigned. See 'lisp-modules' in the nixpkgs manual."; # Added 2024-05-07
   lispPackages = throw "Lisp packages have been redesigned. See 'lisp-modules' in the nixpkgs manual."; # Added 2024-05-07
   lispPackagesFor = throw "Lisp packages have been redesigned. See 'lisp-modules' in the nixpkgs manual."; # Added 2024-05-07
+  Literate = literate; # Added 2024-06-12
   llama = walk; # Added 2023-01-23
 
   # Linux kernels
@@ -778,6 +818,7 @@ mapAliases ({
 
   lobster-two = google-fonts; # Added 2021-07-22
   luxcorerender = throw "'luxcorerender' has been removed as it's unmaintained and broken in nixpkgs since a while ago"; # Added 2023-06-07
+  lv_img_conv = throw "'lv_img_conv' has been removed from nixpkgs as it is broken"; # Added 2024-06-18
   lxd = lib.warn "lxd has been renamed to lxd-lts" lxd-lts; # Added 2024-04-01
   lxd-unwrapped = lib.warn "lxd-unwrapped has been renamed to lxd-unwrapped-lts" lxd-unwrapped-lts; # Added 2024-04-01
   lzma = xz; # moved from top-level 2021-03-14
@@ -799,6 +840,7 @@ mapAliases ({
   meme = meme-image-generator; # Added 2021-04-21
   mess = throw "'mess' has been renamed to/replaced by 'mame'"; # Converted to throw 2023-09-10
   microsoft_gsl = microsoft-gsl; # Added 2023-05-26
+  MIDIVisualizer = midivisualizer; # Added 2024-06-12
   migraphx = throw "'migraphx' has been replaced with 'rocmPackages.migraphx'"; # Added 2023-10-08
   minishift = throw "'minishift' has been removed as it was discontinued upstream. Use 'crc' to setup a microshift cluster instead"; # Added 2023-12-30
   miopen = throw "'miopen' has been replaced with 'rocmPackages.miopen'"; # Added 2023-10-08
@@ -834,7 +876,9 @@ mapAliases ({
   mozart = throw "'mozart' has been renamed to/replaced by 'mozart2-binary'"; # Converted to throw 2023-09-10
   mpc_cli = mpc-cli; # moved from top-level 2022-01-24
   mpd_clientlib = libmpdclient; # Added 2021-02-11
+  mpdevil = plattenalbum; # Added 2024-05-22
   mpg321 = throw "'mpg321' has been removed due to it being unmaintained by upstream. Consider using mpg123 instead."; # Added 2024-05-10
+  msp430NewlibCross = msp430Newlib; # Added 2024-06-18
   mumble_git = throw "'mumble_git' has been renamed to/replaced by 'pkgs.mumble'"; # Converted to throw 2023-09-10
   murmur_git = throw "'murmur_git' has been renamed to/replaced by 'pkgs.murmur'"; # Converted to throw 2023-09-10
   mutt-with-sidebar = mutt; # Added 2022-09-17
@@ -868,6 +912,8 @@ mapAliases ({
   nagiosPluginsOfficial = monitoring-plugins;
   neochat = libsForQt5.kdeGear.neochat; # added 2022-05-10
   neoload = throw "'neoload' has been removed as it is broken and unmaintained"; # Added 2024-03-02
+  newlibCross = newlib; # Added 2024-06-18
+  newlib-nanoCross = newlib-nano; # Added 2024-06-18
   nitrokey-udev-rules = libnitrokey; # Added 2023-03-25
   nix-direnv-flakes = nix-direnv;
   nix-repl = throw (
@@ -879,11 +925,8 @@ mapAliases ({
   nix-template-rpm = throw "'nix-template-rpm' has been removed as it is broken and unmaintained"; # Added 2023-11-20
   nixFlakes = nixVersions.stable; # Added 2021-05-21
   nixStable = nixVersions.stable; # Added 2022-01-24
-  nixUnstable = nixVersions.unstable; # Added 2022-01-26
+  nixUnstable = throw "nixUnstable has been removed. For bleeding edge (Nix master, roughly weekly updated) use nixVersions.git, otherwise use nixVersions.latest."; # Converted to throw 2024-04-22
   nix_2_3 = nixVersions.nix_2_3;
-  nix_2_4 = nixVersions.nix_2_4;
-  nix_2_5 = nixVersions.nix_2_5;
-  nix_2_6 = nixVersions.nix_2_6;
   nixfmt = lib.warn "nixfmt was renamed to nixfmt-classic. The nixfmt attribute may be used for the new RFC 166-style formatter in the future, which is currently available as nixfmt-rfc-style" nixfmt-classic; # Added 2024-03-31
   nixops = throw "'nixops' has been removed. Please use 'nixops_unstable_minimal' for the time being. E.g. nixops_unstable_minimal.withPlugins (ps: [ ps.nixops-gce ])"; # Added 2023-10-26
   nixopsUnstable = nixops_unstable; # Added 2022-03-03
@@ -910,6 +953,7 @@ mapAliases ({
   noto-fonts-emoji = noto-fonts-color-emoji; # Added 2023-09-09
   noto-fonts-extra = noto-fonts; # Added 2023-04-08
   NSPlist = nsplist; # Added 2024-01-05
+  nushellFull = lib.warn "`nushellFull` has has been replaced by `nushell` as it's features no longer exist" nushell; # Added 2024-05-30
   nvidia-thrust = throw "nvidia-thrust has been removed because the project was deprecated; use cudaPackages.cuda_cccl";
   nvtop = lib.warn "nvtop has been renamed to nvtopPackages.full" nvtopPackages.full; # Added 2024-02-25
   nvtop-amd = lib.warn "nvtop-amd has been renamed to nvtopPackages.amd" nvtopPackages.amd; # Added 2024-02-25
@@ -928,12 +972,14 @@ mapAliases ({
   octorpki = throw "octorpki has been removed, upstream says to use rpki-client instead"; # Added 2024-03-19
   ogre1_9 = throw "ogre1_9 has been removed, use ogre instead"; # Added 2023-03-22
   ogre1_10 = throw "ogre1_10 has been removed, use ogre instead"; # Added 2023-07-20
+  onevpl-intel-gpu = lib.warn "onevpl-intel-gpu has been renamed to vpl-gpu-rt" vpl-gpu-rt; # Added 2024-06-04
   opa = throw "opa has been removed from nixpkgs as upstream has abandoned the project"; # Added 2023-03-21
   opam_1_2 = throw "'opam_1_2' has been renamed to/replaced by 'opam'"; # Added 2023-03-08
   openafs_1_8 = openafs; # Added 2022-08-22
   openapi-generator-cli-unstable = throw "openapi-generator-cli-unstable was removed as it was not being updated; consider openapi-generator-cli instead"; # Added 2024-01-02
   openbangla-keyboard = throw "openbangla-keyboard has been replaced by ibus-engines.openbangla-keyboard and fcitx5-openbangla-keyboard"; # added 2023-10-10
   opencascade = throw "'opencascade' has been removed as it is unmaintained; consider opencascade-occt instead'"; # Added 2023-09-18
+  opencl-info = throw "opencl-info has been removed, as the upstream is unmaintained; consider using 'clinfo' instead"; # Added 2024-06-12
   openconnect_head = openconnect_unstable; # Added 2022-03-29
   openconnect_gnutls = openconnect; # Added 2022-03-29
   openconnect_unstable = throw "openconnect_unstable was removed from nixpkgs as it was not being updated"; # Added 2023-06-01
@@ -978,6 +1024,7 @@ mapAliases ({
   percona-xtrabackup_8_0 = percona-xtrabackup_lts; # Added 2024-05-07
   perldevel = throw "'perldevel' has been dropped due to lack of updates in nixpkgs and lack of consistent support for devel versions by 'perl-cross' releases, use 'perl' instead";
   perldevelPackages = perldevel;
+  petrinizer = throw "'petrinizer' has been removed, as it was broken and unmaintained"; # added 2024-05-09
   pgadmin = pgadmin4;
   pharo-spur64 = pharo; # Added 2022-08-03
   phodav_2_0 = throw "'phodav_2_0' has been renamed to/replaced by 'phodav'"; # Added 2023-02-21
@@ -997,6 +1044,7 @@ mapAliases ({
   pltScheme = racket; # just to be sure
   pmdk = throw "'pmdk' is discontinued, no further support or maintenance is planned by upstream"; # Added 2023-02-06
   pomotroid = throw "pomotroid has been removed from nixpkgs, because it depended on an insecure version of electron"; # Added 2023-09-12
+  poretools = throw "poretools has been removed from nixpkgs, as it was broken and unmaintained"; # Added 2024-06-03
   powerdns = pdns; # Added 2022-03-28
 
   # postgresql plugins
@@ -1039,9 +1087,11 @@ mapAliases ({
   prismlauncher-qt5 = throw "'prismlauncher-qt5' has been removed from nixpkgs. Please use 'prismlauncher'"; # Added 2024-04-20
   prismlauncher-qt5-unwrapped = throw "'prismlauncher-qt5-unwrapped' has been removed from nixpkgs. Please use 'prismlauncher-unwrapped'"; # Added 2024-04-20
   privacyidea = throw "privacyidea has been removed from nixpkgs"; # Added 2023-10-31
+  probe-rs = probe-rs-tools; # Added 2024-05-23
   probe-rs-cli = throw "probe-rs-cli is now part of the probe-rs package"; # Added 2023-07-03
   processing3 = throw "'processing3' has been renamed to/replaced by 'processing'"; # Converted to throw 2023-09-10
   prometheus-dmarc-exporter = dmarc-metrics-exporter; # added 2022-05-31
+  prometheus-dovecot-exporter = dovecot_exporter; # Added 2024-06-10
   prometheus-openvpn-exporter = throw "'prometheus-openvpn-exporter' has been removed from nixpkgs, as it was broken and unmaintained"; # Added 2023-12-23
   prometheus-speedtest-exporter = throw "prometheus-speedtest-exporter was removed as unmaintained"; # Added 2023-07-31
   protobuf3_17 = throw "protobuf3_17 does not receive updates anymore and has been removed"; # Added 2023-05-21
@@ -1185,6 +1235,7 @@ mapAliases ({
   shipyard = jumppad; # Added 2023-06-06
   signumone-ks = throw "signumone-ks has been removed from nixpkgs because the developers stopped offering the binaries"; # Added 2023-08-17
   simplenote = throw "'simplenote' has been removed because it is no longer maintained and insecure"; # Added 2023-10-09
+  SkypeExport = skypeexport; # Added 2024-06-12
   slack-dark = slack; # Added 2020-03-27
   slmenu = throw "slmenu has been removed (upstream is gone)"; # Added 2023-04-06
   slurm-llnl = slurm; # renamed July 2017
@@ -1194,6 +1245,7 @@ mapAliases ({
   solr = throw "'solr' has been removed from nixpkgs, as it was broken and unmaintained"; # Added 2023-03-16
   soundOfSorting = sound-of-sorting; # Added 2023-07-07
   soundux = throw "'soundux' has been removed, as it is unmaintained."; # Added on 2024-02-14
+  SPAdes = spades; # Added 2024-06-12
   spark2 = throw "'spark2' is no longer supported nixpkgs, please use 'spark'"; # Added 2023-05-08
   spark_2_4 = throw "'spark_2_4' is no longer supported nixpkgs, please use 'spark'"; # Added 2023-05-08
   spark_3_1 = throw "'spark_3_1' is no longer supported nixpkgs, please use 'spark'"; # Added 2023-05-08
@@ -1242,6 +1294,7 @@ mapAliases ({
   supertux-editor = throw "'supertux-editor' has been removed, as it was broken and unmaintained"; # Added 2023-12-22
   swift-im = throw "swift-im has been removed as it is unmaintained and depends on deprecated Python 2 / Qt WebKit"; # Added 2023-01-06
   swtpm-tpm2 = swtpm; # Added 2021-02-26
+  Sylk = sylk; # Added 2024-06-12
   syncthing-cli = syncthing; # Added 2021-04-06
   syncthingtray-qt6 = syncthingtray; # Added 2024-03-06
 
@@ -1255,6 +1308,7 @@ mapAliases ({
   telegram-cli = throw "telegram-cli was removed because it was broken and abandoned upstream"; # Added 2023-07-28
   teleport_11 = throw "teleport 11 has been removed as it is EOL. Please upgrade to Teleport 12 or later"; # Added 2023-11-27
   teleport_12 = throw "teleport 12 has been removed as it is EOL. Please upgrade to Teleport 13 or later"; # Added 2024-02-04
+  teleport_13 = throw "teleport 13 has been removed as it is EOL. Please upgrade to Teleport 14 or later"; # Added 2024-05-26
   teleprompter = throw "teleprompter has been removed. reason: upstream dead and does not work with recent electron versions"; # Added 2024-03-14
   tensile = throw "'tensile' has been replaced with 'rocmPackages.tensile'"; # Added 2023-10-08
   tepl = libgedit-tepl; # Added 2024-04-29
@@ -1283,6 +1337,8 @@ mapAliases ({
   uade123 = uade; # Added 2022-07-30
   uberwriter = apostrophe; # Added 2020-04-23
   ubootBeagleboneBlack = ubootAmx335xEVM; # Added 2020-01-21
+  uclibc = uclibc-ng; # Added 2022-06-16
+  uclibcCross = uclibc-ng; # Added 2022-06-16
   ue4 = throw "ue4 has been removed, because the package was broken for years"; # Added 2023-11-22
   uhd3_5 = throw "uhd3_5 has been removed, because it was no longer needed"; # Added 2023-10-07
   uhhyou.lv2 = throw "'uhhyou.lv2' has been removed, upstream gone"; # Added 2023-06-21
@@ -1337,6 +1393,7 @@ mapAliases ({
   volatility = throw "'volatility' has been removed, as it was broken and unmaintained"; # Added 2023-12-10
 
   ### W ###
+  wakatime = wakatime-cli; # 2024-05-30
   waybar-hyprland = throw "waybar-hyprland has been removed: hyprland support is now built into waybar by default."; # Added 2023-08-21
   wayfireApplications-unwrapped = throw ''
     'wayfireApplications-unwrapped.wayfire' has been renamed to/replaced by 'wayfire'
@@ -1373,7 +1430,7 @@ mapAliases ({
   xineLib = xine-lib; # Added 2021-04-27
   xineUI = xine-ui; # Added 2021-04-27
   xmlada = gnatPackages.xmlada; # Added 2024-02-25
-  xonsh-unwrapped = throw "'xonsh-unwrapped' was incorporated into xonsh code; call xonsh directly instead."; # Added 2024-01-20
+  xonsh-unwrapped = xonsh.passthru.unwrapped;
   xtrt = throw "xtrt has been removed due to being abandoned"; # Added 2023-05-25
   xulrunner = firefox-unwrapped; # Added 2023-11-03
   xvfb_run = xvfb-run; # Added 2021-05-07
@@ -1383,6 +1440,8 @@ mapAliases ({
   yacc = bison; # moved from top-level 2021-03-14
   yafaray-core = libyafaray; # Added 2022-09-23
   yarn2nix-moretea-openssl_1_1 = throw "'yarn2nix-moretea-openssl_1_1' has been removed."; # Added 2023-02-04
+  yi = throw "'yi' has been removed, as it was broken and unmaintained"; # added 2024-05-09
+  yrd = throw "'yrd' has been removed, as it was broken and unmaintained"; # added 2024-05-27
   ytmdesktop = throw "ytmdesktop was removed because upstream vanished"; # added 2024-03-24
   yubikey-manager4 = throw "yubikey-manager4 has been removed, since it is no longer required by yubikey-manager-qt. Please update to yubikey-manager."; # Added 2024-01-14
   yuzu-ea = throw "yuzu-ea has been removed from nixpkgs, as it has been taken down upstream"; # Added 2024-03-04
@@ -1417,6 +1476,10 @@ mapAliases ({
   inherit (stdenv.hostPlatform) system; # Added 2021-10-22
   inherit (stdenv) buildPlatform hostPlatform targetPlatform; # Added 2023-01-09
 
+  freebsdCross = freebsd; # Added 2024-06-18
+  netbsdCross = netbsd; # Added 2024-06-18
+  openbsdCross = openbsd; # Added 2024-06-18
+
   # LLVM packages for (integration) testing that should not be used inside Nixpkgs:
   llvmPackages_latest = llvmPackages_18;
   llvmPackages_git = recurseIntoAttrs (callPackage ../development/compilers/llvm/git {
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index b330f35fd78f4..36cdab06d6dca 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -31,19 +31,6 @@ with pkgs;
   # it's just the plain stdenv.
   stdenv_32bit = lowPrio (if stdenv.hostPlatform.is32bit then stdenv else multiStdenv);
 
-  stdenvNoCC = stdenv.override (
-    { cc = null; hasCC = false; }
-
-    // lib.optionalAttrs (stdenv.hostPlatform.isDarwin && (stdenv.hostPlatform != stdenv.buildPlatform)) {
-      # TODO: This is a hack to use stdenvNoCC to produce a CF when cross
-      # compiling. It's not very sound. The cross stdenv has:
-      #   extraBuildInputs = [ targetPackages.darwin.apple_sdks.frameworks.CoreFoundation ]
-      # and uses stdenvNoCC. In order to make this not infinitely recursive, we
-      # need to exclude this extraBuildInput.
-      extraBuildInputs = [];
-    }
-  );
-
   mkStdenvNoLibs = stdenv: let
     bintools = stdenv.cc.bintools.override {
       libc = null;
@@ -61,7 +48,7 @@ with pkgs;
   };
 
   stdenvNoLibs =
-    if stdenv.hostPlatform != stdenv.buildPlatform && (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.useLLVM or false)
+    if stdenvNoCC.hostPlatform != stdenvNoCC.buildPlatform
     then
       # We cannot touch binutils or cc themselves, because that will cause
       # infinite recursion. So instead, we just choose a libc based on the
@@ -74,7 +61,17 @@ with pkgs;
       # thing to to create an earlier thing (leading to infinite recursion) and
       # we also would still respect the stage arguments choices for these
       # things.
-      overrideCC stdenv buildPackages.llvmPackages.clangNoCompilerRt
+      (if stdenvNoCC.hostPlatform.isDarwin || stdenvNoCC.hostPlatform.useLLVM or false
+       then overrideCC stdenvNoCC buildPackages.llvmPackages.clangNoCompilerRt
+       else gccCrossLibcStdenv)
+    else mkStdenvNoLibs stdenv;
+
+  stdenvNoLibc =
+    if stdenvNoCC.hostPlatform != stdenvNoCC.buildPlatform
+    then
+      (if stdenvNoCC.hostPlatform.isDarwin || stdenvNoCC.hostPlatform.useLLVM or false
+       then overrideCC stdenvNoCC buildPackages.llvmPackages.clangNoLibc
+       else gccCrossLibcStdenv)
     else mkStdenvNoLibs stdenv;
 
   gccStdenvNoLibs = mkStdenvNoLibs gccStdenv;
@@ -403,8 +400,6 @@ with pkgs;
   buildFHSEnvChroot = callPackage ../build-support/build-fhsenv-chroot { }; # Deprecated; use buildFHSEnv/buildFHSEnvBubblewrap
   buildFHSEnvBubblewrap = callPackage ../build-support/build-fhsenv-bubblewrap { };
 
-  buildMaven = callPackage ../build-support/build-maven.nix { };
-
   c64-debugger = callPackage ../applications/emulators/c64-debugger { };
 
   camunda-modeler = callPackage ../applications/misc/camunda-modeler { };
@@ -419,18 +414,12 @@ with pkgs;
 
   catatonit = callPackage ../applications/virtualization/catatonit { };
 
-  catppuccin-catwalk = callPackage ../development/tools/misc/catppuccin-catwalk { };
-
-  catppuccin-gtk = callPackage ../data/themes/catppuccin-gtk { };
-
   catppuccin-kde = callPackage ../data/themes/catppuccin-kde { };
 
   catppuccin-kvantum = callPackage ../data/themes/catppuccin-kvantum { };
 
   catppuccin-papirus-folders = callPackage ../data/icons/catppuccin-papirus-folders { };
 
-  catppuccin-plymouth = callPackage ../data/themes/catppuccin-plymouth { };
-
   btdu = callPackage ../tools/misc/btdu { };
 
   ccal = callPackage ../tools/misc/ccal { };
@@ -531,8 +520,6 @@ with pkgs;
 
   containerlab = callPackage ../tools/networking/containerlab { };
 
-  containerpilot = callPackage ../applications/networking/cluster/containerpilot { };
-
   coolercontrol = recurseIntoAttrs (callPackage ../applications/system/coolercontrol { });
 
   confetty = callPackage ../applications/misc/confetty { };
@@ -706,7 +693,7 @@ with pkgs;
 
   buildcatrust = with python3.pkgs; toPythonApplication buildcatrust;
 
-  probe-rs = callPackage ../development/tools/rust/probe-rs {
+  probe-rs-tools = callPackage ../by-name/pr/probe-rs-tools/package.nix {
     inherit (darwin.apple_sdk.frameworks) AppKit;
     inherit (darwin) DarwinTools;
   };
@@ -820,6 +807,9 @@ with pkgs;
 
   oletools = with python3.pkgs; toPythonApplication oletools;
 
+  ollama-rocm = callPackage ../by-name/ol/ollama/package.nix { acceleration = "rocm"; };
+  ollama-cuda = callPackage ../by-name/ol/ollama/package.nix { acceleration = "cuda"; };
+
   ots = callPackage ../tools/security/ots {  };
 
   credential-detector = callPackage ../tools/security/credential-detector { };
@@ -1067,8 +1057,6 @@ with pkgs;
 
   mod = callPackage ../development/tools/mod { };
 
-  mods = callPackage ../tools/misc/mods { };
-
   mongosh = callPackage ../development/tools/mongosh { };
 
   mya = callPackage ../applications/misc/mya { };
@@ -1480,6 +1468,7 @@ with pkgs;
   _6tunnel = callPackage ../tools/networking/6tunnel { };
 
   _7zz = darwin.apple_sdk_11_0.callPackage ../tools/archivers/7zz { };
+  _7zz-rar = _7zz.override { enableUnfree = true; };
 
   _9pfs = callPackage ../tools/filesystems/9pfs { };
 
@@ -1499,8 +1488,6 @@ with pkgs;
 
   abduco = callPackage ../tools/misc/abduco { };
 
-  ablog = callPackage ../applications/misc/ablog { };
-
   acct = callPackage ../tools/system/acct { };
 
   accuraterip-checksum = callPackage ../tools/audio/accuraterip-checksum { };
@@ -1509,8 +1496,6 @@ with pkgs;
 
   acme-sh = callPackage ../tools/admin/acme-sh { };
 
-  acousticbrainz-client = callPackage ../tools/audio/acousticbrainz-client { };
-
   alsaequal = callPackage ../tools/audio/alsaequal { };
 
   acpica-tools = callPackage ../tools/system/acpica-tools { };
@@ -1763,8 +1748,6 @@ with pkgs;
 
   copier = callPackage ../tools/misc/copier { };
 
-  gabutdm = callPackage ../applications/networking/gabutdm { };
-
   gamemode = callPackage ../tools/games/gamemode {
     libgamemode32 = pkgsi686Linux.gamemode.lib;
   };
@@ -1825,8 +1808,6 @@ with pkgs;
 
   gh-dash = callPackage ../tools/misc/gh-dash { };
 
-  gh-eco = callPackage ../tools/misc/gh-eco { };
-
   gh-markdown-preview = callPackage ../tools/misc/gh-markdown-preview { };
 
   ghostie = callPackage ../tools/misc/ghostie { };
@@ -2158,7 +2139,9 @@ with pkgs;
 
   archi = callPackage ../tools/misc/archi { };
 
-  breitbandmessung = callPackage ../applications/networking/breitbandmessung { };
+  breitbandmessung = callPackage ../applications/networking/breitbandmessung {
+    electron = electron_29;
+  };
 
   ### APPLICATIONS/VERSION-MANAGEMENT
 
@@ -2607,8 +2590,6 @@ with pkgs;
 
   cdemu-daemon = callPackage ../applications/emulators/cdemu/daemon.nix { };
 
-  cemu = callPackage ../applications/emulators/cemu { };
-
   cen64 = callPackage ../applications/emulators/cen64 { };
 
   citations = callPackage ../applications/misc/citations { };
@@ -2638,8 +2619,6 @@ with pkgs;
     inherit (darwin.apple_sdk_11_0.frameworks) AudioUnit Carbon Cocoa;
   };
 
-  duckstation = qt6Packages.callPackage ../applications/emulators/duckstation { };
-
   dynamips = callPackage ../applications/emulators/dynamips { };
 
   emu2 = callPackage ../applications/emulators/emu2 { };
@@ -2723,8 +2702,6 @@ with pkgs;
 
   pcem = callPackage ../applications/emulators/pcem { };
 
-  pcsx2 = qt6Packages.callPackage ../applications/emulators/pcsx2 { };
-
   pcsxr = callPackage ../applications/emulators/pcsxr { };
 
   ppsspp-sdl = let
@@ -2828,6 +2805,7 @@ with pkgs;
   ### APPLICATIONS/EMULATORS/DOLPHIN-EMU
 
   dolphin-emu = qt6Packages.callPackage ../applications/emulators/dolphin-emu {
+    stdenv = if stdenv.isDarwin then overrideSDK stdenv "11.0" else stdenv;
     inherit (darwin.apple_sdk_11_0.frameworks) CoreBluetooth ForceFeedback IOBluetooth IOKit OpenGL VideoToolbox;
     inherit (darwin) moltenvk;
   };
@@ -2901,8 +2879,6 @@ with pkgs;
     inherit (qt5) wrapQtAppsHook;
   };
 
-  felix-fm = callPackage ../applications/file-managers/felix-fm { };
-
   krusader = libsForQt5.callPackage ../applications/file-managers/krusader { };
 
   lesscpy = callPackage ../development/compilers/lesscpy { };
@@ -2925,6 +2901,8 @@ with pkgs;
 
   portfolio-filemanager = callPackage ../applications/file-managers/portfolio-filemanager { };
 
+  pot = callPackage ../by-name/po/pot/package.nix { pnpm = pnpm_8; };
+
   potreeconverter = callPackage ../applications/graphics/potreeconverter { };
 
   ranger = callPackage ../applications/file-managers/ranger { };
@@ -3077,8 +3055,6 @@ with pkgs;
 
   lilo = callPackage ../tools/misc/lilo { };
 
-  logseq = callPackage ../applications/misc/logseq { };
-
   natls = callPackage ../tools/misc/natls { };
 
   notion-app-enhanced = callPackage ../applications/office/notion-app-enhanced { };
@@ -3132,7 +3108,7 @@ with pkgs;
   inherit (callPackages ../development/tools/ammonite {})
     ammonite_2_12
     ammonite_2_13;
-  ammonite = if scala == scala_2_12 then ammonite_2_12 else ammonite_2_13;
+  ammonite = ammonite_2_13;
 
   amp = callPackage ../applications/editors/amp { };
 
@@ -3218,8 +3194,6 @@ with pkgs;
 
   arangodb = callPackage ../servers/nosql/arangodb { };
 
-  arcanist = callPackage ../development/tools/misc/arcanist { php = php81; };
-
   arduino = arduino-core.override { withGui = true; };
 
   arduino-ci = callPackage ../development/embedded/arduino/arduino-ci { };
@@ -3330,8 +3304,6 @@ with pkgs;
 
   aws-lambda-rie = callPackage ../tools/admin/aws-lambda-runtime-interface-emulator { };
 
-  aws-env = callPackage ../tools/admin/aws-env { };
-
   aws-google-auth = python3Packages.callPackage ../tools/admin/aws-google-auth { };
 
   aws-mfa = python3Packages.callPackage ../tools/admin/aws-mfa { };
@@ -3488,8 +3460,6 @@ with pkgs;
 
   bazarr = callPackage ../servers/bazarr { };
 
-  bcachefs-tools = callPackage ../tools/filesystems/bcachefs-tools { };
-
   bisq-desktop = callPackage ../applications/blockchains/bisq-desktop {
     openjdk11 = openjdk11.override { enableJavaFX = true; };
   };
@@ -3657,6 +3627,7 @@ with pkgs;
   dell-command-configure = callPackage ../tools/system/dell-command-configure { };
 
   deltachat-desktop = callPackage ../applications/networking/instant-messengers/deltachat-desktop {
+    electron = electron_30;
     inherit (darwin.apple_sdk.frameworks) CoreServices;
   };
 
@@ -3666,6 +3637,8 @@ with pkgs;
 
   deterministic-uname = callPackage ../build-support/deterministic-uname { };
 
+  deterministic-host-uname = deterministic-uname.override { forPlatform = stdenv.hostPlatform; };
+
   dfmt = callPackage ../tools/text/dfmt { };
 
   diopser = callPackage ../applications/audio/diopser { };
@@ -3680,8 +3653,6 @@ with pkgs;
 
   djmount = callPackage ../tools/filesystems/djmount { };
 
-  dgsh = callPackage ../shells/dgsh { };
-
   dkimpy = with python3Packages; toPythonApplication dkimpy;
 
   dl-librescore = callPackage ../tools/audio/dl-librescore { };
@@ -3930,8 +3901,6 @@ with pkgs;
 
   mobilecoin-wallet = callPackage ../applications/misc/mobilecoin-wallet { };
 
-  mpdevil = callPackage ../applications/audio/mpdevil { };
-
   pacparser = callPackage ../tools/networking/pacparser { };
 
   pairdrop = callPackage ../applications/misc/pairdrop { };
@@ -4087,7 +4056,7 @@ with pkgs;
   adbfs-rootless = callPackage ../development/mobile/adbfs-rootless { };
 
   adb-sync = callPackage ../development/mobile/adb-sync {
-    inherit (androidenv.androidPkgs_9_0) platform-tools;
+    inherit (androidenv.androidPkgs) platform-tools;
   };
 
   amoco = callPackage ../tools/security/amoco { };
@@ -4103,7 +4072,7 @@ with pkgs;
   androidndkPkgs_23b = (callPackage ../development/androidndk-pkgs {})."23b";
   androidndkPkgs_24 = (callPackage ../development/androidndk-pkgs {})."24";
 
-  androidsdk_9_0 = androidenv.androidPkgs_9_0.androidsdk;
+  androidsdk = androidenv.androidPkgs.androidsdk;
 
   webos = recurseIntoAttrs {
     cmake-modules = callPackage ../development/mobile/webos/cmake-modules.nix { };
@@ -4216,8 +4185,6 @@ with pkgs;
 
   beats = callPackage ../tools/misc/beats { };
 
-  BeatSaberModManager = callPackage ../games/BeatSaberModManager/default.nix { };
-
   beauty-line-icon-theme = callPackage ../data/icons/beauty-line-icon-theme {
     inherit (plasma5Packages) breeze-icons;
   };
@@ -4815,6 +4782,8 @@ with pkgs;
 
   crudini = callPackage ../tools/misc/crudini { };
 
+  csv2md = with python3Packages; toPythonApplication csv2md;
+
   csv2odf = callPackage ../applications/office/csv2odf { };
 
   csv2parquet = callPackage ../tools/misc/csv2parquet { };
@@ -5045,6 +5014,8 @@ with pkgs;
 
   easyabc = callPackage ../applications/audio/easyabc { };
 
+  easyaudiosync = qt6Packages.callPackage ../applications/audio/easyaudiosync {};
+
   easycrypt = callPackage ../applications/science/logic/easycrypt {
     why3 = pkgs.why3.override { ideSupport = false; };
   };
@@ -5075,7 +5046,7 @@ with pkgs;
 
   element-desktop = callPackage ../applications/networking/instant-messengers/element/element-desktop.nix {
     inherit (darwin.apple_sdk.frameworks) Security AppKit CoreServices;
-    electron = electron_29;
+    electron = electron_30;
   };
   element-desktop-wayland = writeScriptBin "element-desktop" ''
     #!/bin/sh
@@ -5121,7 +5092,7 @@ with pkgs;
   eschalot = callPackage ../tools/security/eschalot { };
 
   espanso = callPackage ../applications/office/espanso {
-    inherit (darwin.apple_sdk.frameworks) AppKit Cocoa Foundation IOKit Kernel AVFoundation Carbon QTKit AVKit WebKit;
+    inherit (darwin.apple_sdk_11_0.frameworks) AppKit Cocoa Foundation IOKit Kernel AVFoundation Carbon QTKit AVKit WebKit System;
   };
   espanso-wayland = espanso.override {
     x11Support = false;
@@ -5288,7 +5259,7 @@ with pkgs;
   # TeX Live; see https://nixos.org/nixpkgs/manual/#sec-language-texlive
   texlive = callPackage ../tools/typesetting/tex/texlive { };
   inherit (texlive.schemes) texliveBasic texliveBookPub texliveConTeXt texliveFull texliveGUST texliveInfraOnly texliveMedium texliveMinimal texliveSmall texliveTeTeX;
-  texlivePackages = recurseIntoAttrs (lib.filterAttrs (_: lib.isDerivation) texlive.pkgs);
+  texlivePackages = recurseIntoAttrs (lib.mapAttrs (_: v: v.build) texlive.pkgs);
 
   fop = callPackage ../tools/typesetting/fop { };
 
@@ -5402,8 +5373,6 @@ with pkgs;
 
   globalarrays = callPackage ../development/libraries/globalarrays { };
 
-  glock = callPackage ../development/tools/glock { };
-
   glslviewer = callPackage ../development/tools/glslviewer {
     inherit (darwin.apple_sdk.frameworks) Cocoa;
   };
@@ -5517,8 +5486,6 @@ with pkgs;
   hypr = callPackage ../applications/window-managers/hyprwm/hypr {
     cairo = cairo.override { xcbSupport = true; };  };
 
-  hyprland = callPackage ../applications/window-managers/hyprwm/hyprland { };
-
   hyprland-autoname-workspaces = callPackage ../applications/misc/hyprland-autoname-workspaces { };
 
   hyprland-per-window-layout = callPackage ../tools/wayland/hyprland-per-window-layout { };
@@ -5527,13 +5494,11 @@ with pkgs;
 
   hyprpaper = callPackage ../applications/window-managers/hyprwm/hyprpaper { };
 
-  hyprpicker = callPackage ../applications/window-managers/hyprwm/hyprpicker {
-    wlroots = wlroots_0_16;
-  };
+  hyprpicker = callPackage ../applications/window-managers/hyprwm/hyprpicker { };
 
   hyprshade = python311Packages.callPackage ../applications/window-managers/hyprwm/hyprshade { };
 
-  hyprlandPlugins = recurseIntoAttrs (callPackage ../applications/window-managers/hyprwm/hyprland/plugins.nix { });
+  hyprlandPlugins = recurseIntoAttrs (callPackage ../applications/window-managers/hyprwm/hyprland-plugins { });
 
   hysteria = callPackage ../tools/networking/hysteria { };
 
@@ -5571,10 +5536,6 @@ with pkgs;
 
   jellycli = callPackage ../applications/audio/jellycli { };
 
-  jellyfin = callPackage ../servers/jellyfin {
-    ffmpeg = jellyfin-ffmpeg;
-  };
-
   jellyfin-ffmpeg = callPackage ../development/libraries/jellyfin-ffmpeg { };
 
   jellyfin-media-player = libsForQt5.callPackage ../applications/video/jellyfin-media-player {
@@ -5583,8 +5544,6 @@ with pkgs;
 
   jellyfin-mpv-shim = python3Packages.callPackage ../applications/video/jellyfin-mpv-shim { };
 
-  jellyfin-web = callPackage ../servers/jellyfin/web.nix { };
-
   jellyseerr = callPackage ../servers/jellyseerr { };
 
   jiten = callPackage ../applications/misc/jiten { };
@@ -5641,8 +5600,6 @@ with pkgs;
 
   klog = qt5.callPackage ../applications/radio/klog { };
 
-  knxd = callPackage ../servers/knxd { };
-
   komga = callPackage ../servers/komga { };
 
   komorebi = callPackage ../applications/graphics/komorebi { };
@@ -5730,6 +5687,11 @@ with pkgs;
 
   loccount = callPackage ../development/tools/misc/loccount { };
 
+  logseq = callPackage ../by-name/lo/logseq/package.nix {
+    # electron version from: https://github.com/logseq/logseq/blob/d8c6ca264bdf9a6a0f03c46dbf3509210367624a/package.json#L116
+    electron = electron_28;
+  };
+
   long-shebang = callPackage ../misc/long-shebang { };
 
   lssecret = callPackage ../misc/lssecret {};
@@ -6003,9 +5965,6 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) AppKit Security;
   };
 
-  odoo = callPackage ../applications/finance/odoo { };
-  odoo15 = callPackage ../applications/finance/odoo/odoo15.nix { };
-
   odafileconverter = libsForQt5.callPackage ../applications/graphics/odafileconverter { };
 
   oil-buku = callPackage ../applications/misc/oil-buku { };
@@ -6196,8 +6155,6 @@ with pkgs;
 
   socklog = callPackage ../tools/system/socklog { };
 
-  soju = callPackage ../applications/networking/soju { };
-
   spacevim = callPackage ../applications/editors/spacevim { };
 
   srvc = callPackage ../applications/version-management/srvc { };
@@ -6246,10 +6203,6 @@ with pkgs;
     rainloop-community
     rainloop-standard;
 
-  rav1e = callPackage ../tools/video/rav1e {
-    inherit (darwin.apple_sdk.frameworks) Security;
-  };
-
   raven-reader = callPackage ../applications/networking/newsreaders/raven-reader { };
 
   razergenie = libsForQt5.callPackage ../applications/misc/razergenie { };
@@ -6666,8 +6619,9 @@ with pkgs;
     citrix_workspace_23_09_0
     citrix_workspace_23_11_0
     citrix_workspace_24_02_0
+    citrix_workspace_24_05_0
   ;
-  citrix_workspace = citrix_workspace_24_02_0;
+  citrix_workspace = citrix_workspace_24_05_0;
 
   clima = callPackage ../tools/text/clima { };
 
@@ -6756,9 +6710,7 @@ with pkgs;
 
   unionfs-fuse = callPackage ../tools/filesystems/unionfs-fuse { };
 
-  unparam = callPackage ../tools/misc/unparam {
-    buildGoModule = buildGo121Module;
-  };
+  unparam = callPackage ../tools/misc/unparam { };
 
   inherit (nodePackages) uppy-companion;
 
@@ -7430,8 +7382,6 @@ with pkgs;
 
   dt-schema = callPackage ../development/tools/dt-schema { };
 
-  dub = callPackage ../development/tools/build-managers/dub { };
-
   inherit (import ../build-support/dlang/dub-support.nix { inherit callPackage; })
     buildDubPackage dub-to-nix;
 
@@ -7608,7 +7558,7 @@ with pkgs;
 
   tracker = callPackage ../development/libraries/tracker { };
 
-  tracy = callPackage ../development/tools/tracy { };
+  tracy-x11 = callPackage ../by-name/tr/tracy/package.nix { withWayland = false; };
 
   trivy = callPackage ../tools/admin/trivy { };
 
@@ -8135,7 +8085,6 @@ with pkgs;
 
   frigate = callPackage ../applications/video/frigate { };
 
-  frostwire = callPackage ../applications/networking/p2p/frostwire { };
   frostwire-bin = callPackage ../applications/networking/p2p/frostwire/frostwire-bin.nix { };
 
   ftgl = callPackage ../development/libraries/ftgl { };
@@ -8251,8 +8200,6 @@ with pkgs;
 
   gdmap = callPackage ../tools/system/gdmap { };
 
-  gdtoolkit = callPackage ../development/tools/gdtoolkit { };
-
   gef = callPackage ../development/tools/misc/gef { };
 
   gelasio = callPackage ../data/fonts/gelasio { };
@@ -8275,8 +8222,6 @@ with pkgs;
 
   geteltorito = callPackage ../tools/misc/geteltorito { };
 
-  getmail6 = callPackage ../tools/networking/getmail6 { };
-
   getopt = callPackage ../tools/misc/getopt { };
 
   getoptions = callPackage ../tools/misc/getoptions { };
@@ -8352,8 +8297,6 @@ with pkgs;
 
   git-latexdiff = callPackage ../tools/typesetting/git-latexdiff { };
 
-  gitea = callPackage ../applications/version-management/gitea { };
-
   gitea-actions-runner = callPackage ../development/tools/continuous-integration/gitea-actions-runner { };
 
   gokart = callPackage ../development/tools/gokart { };
@@ -8564,6 +8507,10 @@ with pkgs;
 
   gparted = callPackage ../tools/misc/gparted { };
 
+  gpt4all-cuda = gpt4all.override {
+    cudaSupport = true;
+  };
+
   gpt2tc = callPackage ../tools/text/gpt2tc { };
 
   gptcommit = callPackage ../development/tools/gptcommit {
@@ -8875,8 +8822,6 @@ with pkgs;
 
   hardinfo = callPackage ../tools/system/hardinfo { };
 
-  harmonia = callPackage ../tools/package-management/harmonia { };
-
   hayagriva = callPackage ../tools/typesetting/hayagriva { };
 
   hcl2json = callPackage ../applications/misc/hcl2json { };
@@ -9012,8 +8957,6 @@ with pkgs;
 
   httpie = with python3Packages; toPythonApplication httpie;
 
-  httping = callPackage ../tools/networking/httping { };
-
   httplz = callPackage ../tools/networking/httplz { };
 
   httpfs2 = callPackage ../tools/filesystems/httpfs { };
@@ -9028,8 +8971,6 @@ with pkgs;
 
   hue-plus = libsForQt5.callPackage ../applications/misc/hue-plus { };
 
-  hurl = callPackage ../tools/networking/hurl { };
-
   hubicfuse = callPackage ../tools/filesystems/hubicfuse { };
 
   humanfriendly = with python3Packages; toPythonApplication humanfriendly;
@@ -9257,8 +9198,6 @@ with pkgs;
 
   iroh = callPackage ../applications/networking/iroh { };
 
-  irrd = callPackage ../servers/misc/irrd { };
-
   ised = callPackage ../tools/misc/ised { };
 
   isl = isl_0_20;
@@ -9516,17 +9455,7 @@ with pkgs;
 
   kestrel = callPackage ../tools/security/kestrel { };
 
-  kexec-tools = callPackage ../os-specific/linux/kexec-tools {
-    # clangStdenv fails with
-    # purgatory/arch/i386/entry32-16.S:23:2: error: unknown directive
-    #  .arch i386
-    #  ^
-    # purgatory/arch/i386/entry32-16.S:115:11: error: unknown token in expression
-    #  ljmp %cs:*(realdest - entry16)
-    #           ^
-    # make: *** [Makefile:128: purgatory/arch/i386/entry32-16.o] Error 1
-    stdenv = gccStdenv;
-  };
+  kexec-tools = callPackage ../os-specific/linux/kexec-tools { };
 
   keepkey-agent = with python3Packages; toPythonApplication keepkey-agent;
 
@@ -9645,8 +9574,6 @@ with pkgs;
 
   last-resort = callPackage ../data/fonts/last-resort { };
 
-  ldc = callPackage ../development/compilers/ldc { };
-
   ligo =
     let ocaml_p = ocaml-ng.ocamlPackages_4_14_janeStreet_0_15; in
     callPackage ../development/compilers/ligo {
@@ -10420,10 +10347,6 @@ with pkgs;
 
   lv = callPackage ../tools/text/lv { };
 
-  lv_img_conv = callPackage ../development/tools/lv_img_conv  {
-    inherit (darwin.apple_sdk.frameworks) CoreText;
-  };
-
   lwc = callPackage ../tools/misc/lwc { };
 
   lxd-image-server = callPackage ../tools/virtualization/lxd-image-server { };
@@ -10503,8 +10426,6 @@ with pkgs;
 
   mandoc = callPackage ../tools/misc/mandoc { };
 
-  mangareader = libsForQt5.callPackage ../applications/graphics/mangareader { };
-
   mangohud = callPackage ../tools/graphics/mangohud {
     libXNVCtrl = linuxPackages.nvidia_x11.settings.libXNVCtrl;
     mangohud32 = pkgsi686Linux.mangohud;
@@ -10684,7 +10605,7 @@ with pkgs;
   mole = callPackage ../tools/networking/mole { };
 
   morgen = callPackage ../applications/office/morgen {
-    electron = electron_28;
+    electron = electron_29;
   };
 
   mosh = callPackage ../tools/networking/mosh { };
@@ -10957,6 +10878,7 @@ with pkgs;
     nomad_1_5
     nomad_1_6
     nomad_1_7
+    nomad_1_8
     ;
 
   nomad-autoscaler = callPackage ../applications/networking/cluster/nomad-autoscaler { };
@@ -11003,8 +10925,6 @@ with pkgs;
 
   mkgmap-splitter = callPackage ../applications/misc/mkgmap/splitter { };
 
-  mpack = callPackage ../tools/networking/mpack { };
-
   mtm = callPackage ../tools/misc/mtm { };
 
   op-geth = callPackage ../applications/blockchains/optimism/geth.nix {
@@ -11283,8 +11203,6 @@ with pkgs;
 
   opencc = callPackage ../tools/text/opencc { };
 
-  opencl-info = callPackage ../tools/system/opencl-info { };
-
   opencryptoki = callPackage ../tools/security/opencryptoki { };
 
   opendbx = callPackage ../development/libraries/opendbx { };
@@ -11372,12 +11290,21 @@ with pkgs;
     etcDir = "/etc/ssh";
   };
 
+  opensshWithKerberos = openssh.override {
+    withKerberos = true;
+  };
+
   openssh_hpn = opensshPackages.openssh_hpn.override {
     etcDir = "/etc/ssh";
   };
 
+  openssh_hpnWithKerberos = openssh_hpn.override {
+    withKerberos = true;
+  };
+
   openssh_gssapi = opensshPackages.openssh_gssapi.override {
     etcDir = "/etc/ssh";
+    withKerberos = true;
   };
 
   ssh-copy-id = callPackage ../tools/networking/openssh/copyid.nix { };
@@ -11531,6 +11458,7 @@ with pkgs;
   };
 
   p7zip = callPackage ../tools/archivers/p7zip { };
+  p7zip-rar = p7zip.override { enableUnfree = true; };
 
   packagekit = callPackage ../tools/package-management/packagekit { };
 
@@ -11912,6 +11840,10 @@ with pkgs;
 
   pngquant = callPackage ../tools/graphics/pngquant { };
 
+  inherit (callPackages ../development/tools/pnpm { })
+    pnpm_8 pnpm_9;
+  pnpm = pnpm_9;
+
   po4a = perlPackages.Po4a;
 
   poac = callPackage ../development/tools/poac {
@@ -11944,8 +11876,6 @@ with pkgs;
 
   polipo = callPackage ../servers/polipo { };
 
-  polkit_gnome = callPackage ../tools/security/polkit-gnome { };
-
   poly2tri-c = callPackage ../development/libraries/poly2tri-c { };
 
   polypane = callPackage ../applications/networking/browsers/polypane { };
@@ -11956,8 +11886,6 @@ with pkgs;
 
   popfile = callPackage ../tools/text/popfile { };
 
-  poretools = callPackage ../applications/science/biology/poretools { };
-
   porsmo = callPackage ../applications/misc/porsmo { };
 
   pantum-driver = callPackage ../misc/drivers/pantum-driver { };
@@ -11966,7 +11894,11 @@ with pkgs;
 
   postscript-lexmark = callPackage ../misc/drivers/postscript-lexmark { };
 
-  povray = callPackage ../tools/graphics/povray { };
+  povray = callPackage ../tools/graphics/povray {
+    # https://github.com/POV-Ray/povray/issues/460
+    # https://github.com/NixOS/nixpkgs/issues/311017
+    stdenv = gcc12Stdenv;
+  };
 
   power-profiles-daemon = callPackage ../os-specific/linux/power-profiles-daemon { };
 
@@ -13370,8 +13302,6 @@ with pkgs;
 
   systrayhelper = callPackage ../tools/misc/systrayhelper { };
 
-  Sylk = callPackage ../applications/networking/Sylk { };
-
   privoxy = callPackage ../tools/networking/privoxy {
     w3m = w3m-batch;
   };
@@ -13472,7 +13402,7 @@ with pkgs;
 
   inherit (callPackages ../servers/teleport {
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security AppKit;
-  }) teleport_13 teleport_14 teleport_15 teleport;
+  }) teleport_14 teleport_15 teleport;
 
   telepresence = callPackage ../tools/networking/telepresence {
     pythonPackages = python3Packages;
@@ -13637,8 +13567,6 @@ with pkgs;
     pkgs = pkgs.__splicedPackages;
   });
 
-  tmsu = callPackage ../tools/filesystems/tmsu { };
-
   tncattach = callPackage ../applications/radio/tncattach { };
 
   to-html = callPackage ../tools/text/to-html { };
@@ -13732,7 +13660,7 @@ with pkgs;
   trunk-io = callPackage ../development/tools/trunk-io { };
 
   trunk-ng = callPackage ../by-name/tr/trunk-ng/package.nix {
-    inherit (darwin.apple_sdk.frameworks) CoreServices Security;
+    inherit (darwin.apple_sdk.frameworks) CoreServices Security SystemConfiguration;
   };
 
   tthsum = callPackage ../applications/misc/tthsum { };
@@ -13743,7 +13671,7 @@ with pkgs;
 
   trace-cmd = callPackage ../os-specific/linux/trace-cmd { };
 
-  kernelshark = libsForQt5.callPackage ../os-specific/linux/trace-cmd/kernelshark.nix { };
+  kernelshark = qt6Packages.callPackage ../os-specific/linux/trace-cmd/kernelshark.nix { };
 
   traceroute = callPackage ../tools/networking/traceroute { };
 
@@ -14093,6 +14021,8 @@ with pkgs;
 
   viking = callPackage ../applications/misc/viking { };
 
+  vikunja = callPackage ../by-name/vi/vikunja/package.nix { pnpm = pnpm_8; };
+
   vim-vint = callPackage ../development/tools/vim-vint { };
 
   vimer = callPackage ../tools/misc/vimer { };
@@ -14141,10 +14071,9 @@ with pkgs;
 
   vpn-slice = python3Packages.callPackage ../tools/networking/vpn-slice { };
 
-  vp = callPackage ../applications/misc/vp {
-    # Enable next line for console graphics. Note that
-    # it requires `sixel` enabled terminals such as mlterm
-    # or xterm -ti 340
+  vpWithSixel = vp.override {
+    # Enable next line for console graphics. Note that it requires `sixel`
+    # enabled terminals such as mlterm or xterm -ti 340
     SDL = SDL_sixel;
   };
 
@@ -14270,8 +14199,6 @@ with pkgs;
 
   woodpecker-cli = callPackage ../development/tools/continuous-integration/woodpecker/cli.nix { };
 
-  woodpecker-pipeline-transform = callPackage ../development/tools/continuous-integration/woodpecker-pipeline-transform { };
-
   woodpecker-plugin-git = callPackage ../development/tools/continuous-integration/woodpecker-plugin-git { };
 
   woodpecker-server = callPackage ../development/tools/continuous-integration/woodpecker/server.nix { };
@@ -14288,8 +14215,6 @@ with pkgs;
 
   wsmancli = callPackage ../tools/system/wsmancli { };
 
-  wstunnel = haskell.lib.compose.justStaticExecutables haskellPackages.wstunnel;
-
   wolfebin = callPackage ../tools/networking/wolfebin { };
 
   wthrr = callPackage ../applications/misc/wthrr { };
@@ -14803,11 +14728,6 @@ with pkgs;
 
   ytfzf = callPackage ../tools/misc/ytfzf { };
 
-  # To expose more packages for Yi, override the extraPackages arg.
-  yi = callPackage ../applications/editors/yi/wrapper.nix {
-    haskellPackages = haskell.packages.ghc810;
-  };
-
   yaydl = callPackage ../tools/video/yaydl {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -15047,8 +14967,6 @@ with pkgs;
 
   ion = callPackage ../shells/ion { };
 
-  jush = callPackage ../shells/jush { };
-
   ksh = callPackage ../shells/ksh { };
 
   liquidprompt = callPackage ../shells/liquidprompt { };
@@ -15103,6 +15021,8 @@ with pkgs;
   temurin-bin = temurin-bin-21;
   temurin-jre-bin = temurin-jre-bin-21;
 
+  semeru-bin-21 = javaPackages.compiler.semeru-bin.jdk-21;
+  semeru-jre-bin-21 = javaPackages.compiler.semeru-bin.jre-21;
   semeru-bin-17 = javaPackages.compiler.semeru-bin.jdk-17;
   semeru-jre-bin-17 = javaPackages.compiler.semeru-bin.jre-17;
   semeru-bin-16 = javaPackages.compiler.semeru-bin.jdk-16;
@@ -15112,8 +15032,8 @@ with pkgs;
   semeru-bin-8 = javaPackages.compiler.semeru-bin.jdk-8;
   semeru-jre-bin-8 = javaPackages.compiler.semeru-bin.jre-8;
 
-  semeru-bin = semeru-bin-17;
-  semeru-jre-bin = semeru-jre-bin-17;
+  semeru-bin = semeru-bin-21;
+  semeru-jre-bin = semeru-jre-bin-21;
 
   adoptopenjdk-bin-17-packages-linux = import ../development/compilers/adoptopenjdk-bin/jdk17-linux.nix { inherit stdenv lib; };
   adoptopenjdk-bin-17-packages-darwin = import ../development/compilers/adoptopenjdk-bin/jdk17-darwin.nix { inherit lib; };
@@ -15418,8 +15338,11 @@ with pkgs;
 
   fluidd = callPackage ../applications/misc/fluidd { };
 
-  flutterPackages = recurseIntoAttrs (callPackage ../development/compilers/flutter { });
+  flutterPackages-bin = recurseIntoAttrs (callPackage ../development/compilers/flutter { });
+  flutterPackages-source = recurseIntoAttrs (callPackage ../development/compilers/flutter { useNixpkgsEngine = true; });
+  flutterPackages = flutterPackages-bin;
   flutter = flutterPackages.stable;
+  flutter323 = flutterPackages.v3_23;
   flutter322 = flutterPackages.v3_22;
   flutter319 = flutterPackages.v3_19;
   flutter316 = flutterPackages.v3_16;
@@ -15533,12 +15456,7 @@ with pkgs;
     dontStrip = true;
   }));
 
-  gccCrossLibcStdenv = overrideCC stdenv buildPackages.gccWithoutTargetLibc;
-
-  crossLibcStdenv =
-    if stdenv.hostPlatform.useLLVM or false || stdenv.hostPlatform.isDarwin
-    then overrideCC stdenv buildPackages.llvmPackages.clangNoLibc
-    else gccCrossLibcStdenv;
+  gccCrossLibcStdenv = overrideCC stdenvNoCC buildPackages.gccWithoutTargetLibc;
 
   # The GCC used to build libc for the target platform. Normal gccs will be
   # built with, and use, that cross-compiled libc.
@@ -15937,7 +15855,10 @@ with pkgs;
 
   cabal-install = haskell.lib.compose.justStaticExecutables haskellPackages.cabal-install;
 
-  stack = haskell.lib.compose.justStaticExecutables haskellPackages.stack;
+  stack =
+    # TODO: Erroneous references to GHC on aarch64-darwin: https://github.com/NixOS/nixpkgs/issues/318013
+    (if stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64 then lib.id else haskell.lib.compose.justStaticExecutables)
+      haskellPackages.stack;
 
   hlint = haskell.lib.compose.justStaticExecutables haskellPackages.hlint;
 
@@ -16020,10 +15941,6 @@ with pkgs;
 
   gocover-cobertura = callPackage ../development/tools/gocover-cobertura { };
 
-  gobang = callPackage ../development/tools/database/gobang {
-    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security SystemConfiguration;
-  };
-
   goblob = callPackage ../tools/security/goblob { };
 
   gogetdoc = callPackage ../development/tools/gogetdoc { };
@@ -16106,8 +16023,6 @@ with pkgs;
   jdk17 = openjdk17;
   jdk17_headless = openjdk17_headless;
 
-  openjdk16-bootstrap = javaPackages.compiler.openjdk16-bootstrap;
-
   openjdk19 = javaPackages.compiler.openjdk19;
   openjdk19_headless = javaPackages.compiler.openjdk19.headless;
   jdk19 = openjdk19;
@@ -16209,8 +16124,6 @@ with pkgs;
   julia-stable-bin = julia_110-bin;
   julia-bin = julia-stable-bin;
 
-  jwasm =  callPackage ../development/compilers/jwasm { };
-
   kind2 = darwin.apple_sdk_11_0.callPackage ../development/compilers/kind2 { };
 
   kingstvis = callPackage ../applications/science/electronics/kingstvis { };
@@ -16298,6 +16211,7 @@ with pkgs;
     choose = platform:
       /**/ if platform.isDarwin then 16
       else if platform.isFreeBSD then 16
+      else if platform.isOpenBSD then 18
       else if platform.isAndroid then 12
       else if platform.isLinux then 17
       else if platform.isWasm then 16
@@ -16546,8 +16460,6 @@ with pkgs;
 
   qbe = callPackage ../development/compilers/qbe { };
 
-  rasm = callPackage ../development/compilers/rasm { };
-
   replibyte = callPackage ../development/tools/database/replibyte {
     inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
   };
@@ -16567,11 +16479,11 @@ with pkgs;
   wrapRustcWith = { rustc-unwrapped, ... } @ args: callPackage ../build-support/rust/rustc-wrapper args;
   wrapRustc = rustc-unwrapped: wrapRustcWith { inherit rustc-unwrapped; };
 
-  rust_1_77 = callPackage ../development/compilers/rust/1_77.nix {
+  rust_1_78 = callPackage ../development/compilers/rust/1_78.nix {
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security SystemConfiguration;
-    llvm_17 = llvmPackages_17.libllvm;
+    llvm_18 = llvmPackages_18.libllvm;
   };
-  rust = rust_1_77;
+  rust = rust_1_78;
 
   mrustc = callPackage ../development/compilers/mrustc { };
   mrustc-minicargo = callPackage ../development/compilers/mrustc/minicargo.nix { };
@@ -16579,8 +16491,8 @@ with pkgs;
     openssl = openssl_1_1;
   };
 
-  rustPackages_1_77 = rust_1_77.packages.stable;
-  rustPackages = rustPackages_1_77;
+  rustPackages_1_78 = rust_1_78.packages.stable;
+  rustPackages = rustPackages_1_78;
 
   inherit (rustPackages) cargo cargo-auditable cargo-auditable-cargo-wrapper clippy rustc rustPlatform;
 
@@ -16845,7 +16757,7 @@ with pkgs;
   scala_2_13 = callPackage ../development/compilers/scala/2.x.nix { majorVersion = "2.13"; };
   scala_3 = callPackage ../development/compilers/scala { };
 
-  scala = scala_2_13;
+  scala = scala_3;
   scala-runners = callPackage ../development/compilers/scala-runners {
     coursier = coursier.override { jre = jdk8; };
   };
@@ -16926,6 +16838,7 @@ with pkgs;
   swiPrologWithGui = swiProlog.override { withGui = true; };
 
   tbb_2020_3 = callPackage ../development/libraries/tbb/2020_3.nix { };
+  tbb_2021_5 = callPackage ../development/libraries/tbb/2021_5.nix { } ;
   tbb_2021_11 = callPackage ../development/libraries/tbb { };
   # many packages still fail with latest version
   tbb = tbb_2020_3;
@@ -17078,7 +16991,7 @@ with pkgs;
 
   # BQN interpreters and compilers
 
-  mbqn = callPackage ../development/interpreters/bqn/mlochbaum-bqn { };
+  mbqn = bqn;
 
   cbqn = cbqn-bootstrap.phase2;
   cbqn-replxx = cbqn-bootstrap.phase2-replxx;
@@ -17103,43 +17016,46 @@ with pkgs;
 
     phase0 = callPackage ../development/interpreters/bqn/cbqn {
       inherit (cbqn-bootstrap) mbqn-source stdenv;
-      genBytecode = false;
-      bqn-path = null;
+      generateBytecode = false;
+      # Not really used, but since null can be dangerous...
+      bqn-interpreter = "${lib.getExe' buildPackages.mbqn "bqn"}";
     };
 
     phase0-replxx = callPackage ../development/interpreters/bqn/cbqn {
       inherit (cbqn-bootstrap) mbqn-source stdenv;
-      genBytecode = false;
-      bqn-path = null;
       enableReplxx = true;
+      generateBytecode = false;
+      # Not really used, but since null can be dangerous...
+      bqn-interpreter = "${lib.getExe' buildPackages.mbqn "bqn"}";
     };
 
     phase1 = callPackage ../development/interpreters/bqn/cbqn {
       inherit (cbqn-bootstrap) mbqn-source stdenv;
-      genBytecode = true;
-      bqn-path = "${buildPackages.cbqn-bootstrap.phase0}/bin/cbqn";
+      generateBytecode = true;
+      bqn-interpreter = "${lib.getExe' buildPackages.cbqn-bootstrap.phase0 "cbqn"}";
     };
 
     phase2 = callPackage ../development/interpreters/bqn/cbqn {
       inherit (cbqn-bootstrap) mbqn-source stdenv;
-      genBytecode = true;
-      bqn-path = "${buildPackages.cbqn-bootstrap.phase1}/bin/cbqn";
+      generateBytecode = true;
+      bqn-interpreter = "${lib.getExe' buildPackages.cbqn-bootstrap.phase0 "cbqn"}";
     };
 
     phase2-replxx = callPackage ../development/interpreters/bqn/cbqn {
       inherit (cbqn-bootstrap) mbqn-source stdenv;
-      genBytecode = true;
-      bqn-path = "${buildPackages.cbqn-bootstrap.phase1}/bin/cbqn";
+      generateBytecode = true;
       enableReplxx = true;
+      bqn-interpreter = "${lib.getExe' buildPackages.cbqn-bootstrap.phase0 "cbqn"}";
     };
   };
 
-  dbqn = callPackage ../development/interpreters/bqn/dzaima-bqn {
+  dbqn = callPackage ../by-name/db/dbqn/package.nix {
     buildNativeImage = false;
-    stdenv = stdenvNoCC;
     jdk = jre;
+    stdenv = stdenvNoCC;
   };
-  dbqn-native = callPackage ../development/interpreters/bqn/dzaima-bqn {
+
+  dbqn-native = dbqn.override {
     buildNativeImage = true;
     jdk = graalvm-ce;
   };
@@ -17213,8 +17129,7 @@ with pkgs;
 
   inherit (beam.interpreters)
     erlang erlang_27 erlang_26 erlang_25 erlang_24
-    erlang_odbc erlang_javac erlang_odbc_javac
-    elixir elixir_1_16 elixir_1_15 elixir_1_14 elixir_1_13 elixir_1_12 elixir_1_11 elixir_1_10
+    elixir elixir_1_17 elixir_1_16 elixir_1_15 elixir_1_14 elixir_1_13 elixir_1_12 elixir_1_11 elixir_1_10
     elixir-ls;
 
   erlang_nox = beam_nox.interpreters.erlang;
@@ -17709,9 +17624,8 @@ with pkgs;
 
   h3 = h3_3;
 
-  avrlibc      = callPackage ../development/misc/avr/libc { };
-  avrlibcCross = callPackage ../development/misc/avr/libc {
-    stdenv = crossLibcStdenv;
+  avrlibc = callPackage ../development/misc/avr/libc {
+    stdenv = stdenvNoLibc;
   };
 
   avr8burnomat = callPackage ../development/misc/avr8-burn-omat { };
@@ -17765,7 +17679,7 @@ with pkgs;
 
   guile-reader = callPackage ../development/guile-modules/guile-reader { };
 
-  guile-sdl = callPackage ../development/guile-modules/guile-sdl {
+  guile-sdl = callPackage ../by-name/gu/guile-sdl/package.nix {
     guile = guile_2_2;
   };
 
@@ -17785,10 +17699,7 @@ with pkgs;
 
   msp430GccSupport = callPackage ../development/misc/msp430/gcc-support.nix { };
 
-  msp430Newlib      = callPackage ../development/misc/msp430/newlib.nix { };
-  msp430NewlibCross = callPackage ../development/misc/msp430/newlib.nix {
-    newlib = newlibCross;
-  };
+  msp430Newlib = callPackage ../development/misc/msp430/newlib.nix { };
 
   mspds = callPackage ../development/misc/msp430/mspds { };
   mspds-bin = callPackage ../development/misc/msp430/mspds/binary.nix { };
@@ -17939,10 +17850,10 @@ with pkgs;
 
   nil = callPackage ../development/tools/language-servers/nil { };
 
-  nixd = callPackage ../development/tools/language-servers/nixd {
+  inherit (callPackages ../development/tools/language-servers/nixd {
     llvmPackages = llvmPackages_16;
     nix = nixVersions.nix_2_19;
-  };
+  }) nixf nixt nixd;
 
   openscad-lsp = callPackage ../development/tools/language-servers/openscad-lsp { };
 
@@ -17972,6 +17883,10 @@ with pkgs;
 
   ansible-lint = callPackage ../tools/admin/ansible/lint.nix { };
 
+  antares = callPackage ../by-name/an/antares/package.nix {
+    electron = electron_29;
+  };
+
   antlr2 = callPackage ../development/tools/parsing/antlr/2.7.7.nix { };
   antlr3_4 = callPackage ../development/tools/parsing/antlr/3.4.nix { };
   antlr3_5 = callPackage ../development/tools/parsing/antlr/3.5.nix { };
@@ -18037,12 +17952,12 @@ with pkgs;
     electron_30-bin;
 
   electron_24 = electron_24-bin;
-  electron_27 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_27 then electron-source.electron_27 else electron_27-bin;
-  electron_28 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_28 then electron-source.electron_28 else electron_28-bin;
+  electron_27 = electron_27-bin;
+  electron_28 = electron_28-bin;
   electron_29 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_29 then electron-source.electron_29 else electron_29-bin;
   electron_30 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_30 then electron-source.electron_30 else electron_30-bin;
-  electron = electron_29;
-  electron-bin = electron_29-bin;
+  electron = electron_30;
+  electron-bin = electron_30-bin;
 
   autobuild = callPackage ../development/tools/misc/autobuild { };
 
@@ -18070,8 +17985,6 @@ with pkgs;
 
   b4 = callPackage ../development/tools/b4 { };
 
-  babeltrace = callPackage ../development/tools/misc/babeltrace { };
-
   bam = callPackage ../development/tools/build-managers/bam { };
 
   bandit = with python3Packages; toPythonApplication bandit;
@@ -18490,8 +18403,6 @@ with pkgs;
 
   libcxx = llvmPackages.libcxx;
 
-  librarian-puppet-go = callPackage ../development/tools/librarian-puppet-go { };
-
   libgcc = stdenv.cc.cc.libgcc or null;
 
   # This is for e.g. LLVM libraries on linux.
@@ -18603,8 +18514,6 @@ with pkgs;
 
   dwz = callPackage ../development/tools/misc/dwz { };
 
-  eask = callPackage ../development/tools/eask { };
-
   easypdkprog = callPackage ../development/embedded/easypdkprog { };
 
   editorconfig-checker = callPackage ../development/tools/misc/editorconfig-checker { };
@@ -18659,8 +18568,6 @@ with pkgs;
 
   license-scanner = callPackage ../development/tools/license-scanner { };
 
-  Literate = callPackage ../development/tools/literate-programming/Literate { };
-
   md-tangle = callPackage ../development/tools/literate-programming/md-tangle { };
 
   # NOTE: Override and set useIcon = false to use Awk instead of Icon.
@@ -18851,7 +18758,10 @@ with pkgs;
     guile = guile_2_2;
   };
 
-  hadolint = haskell.lib.compose.justStaticExecutables haskellPackages.hadolint;
+  hadolint =
+    # TODO: Erroneous references to GHC on aarch64-darwin: https://github.com/NixOS/nixpkgs/issues/318013
+    (if stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64 then lib.id else haskell.lib.compose.justStaticExecutables)
+    haskellPackages.hadolint;
 
   halfempty = callPackage ../development/tools/halfempty { };
 
@@ -19089,8 +18999,8 @@ with pkgs;
 
   math-preview = callPackage ../tools/text/math-review { };
 
-  maven = maven3;
-  maven3 = callPackage ../development/tools/build-managers/apache-maven { };
+  maven3 = maven;
+  inherit (maven) buildMaven;
 
   mavproxy = python3Packages.callPackage ../applications/science/robotics/mavproxy { };
 
@@ -19108,7 +19018,7 @@ with pkgs;
 
   python-matter-server = with python3Packages; toPythonApplication (
     python-matter-server.overridePythonAttrs (oldAttrs: {
-      propagatedBuildInputs = oldAttrs.propagatedBuildInputs ++ oldAttrs.passthru.optional-dependencies.server;
+      dependencies = oldAttrs.dependencies ++ oldAttrs.optional-dependencies.server;
     })
   );
 
@@ -19152,7 +19062,10 @@ with pkgs;
 
   msitools = callPackage ../development/tools/misc/msitools { };
 
-  haskell-ci = haskell.lib.compose.justStaticExecutables haskellPackages.haskell-ci;
+  haskell-ci =
+    # TODO: Erroneous references to GHC on aarch64-darwin: https://github.com/NixOS/nixpkgs/issues/318013
+    (if stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64 then lib.id else haskell.lib.compose.justStaticExecutables)
+      haskellPackages.haskell-ci;
 
   nailgun = callPackage ../development/tools/nailgun { };
 
@@ -19160,8 +19073,6 @@ with pkgs;
 
   nex = callPackage ../development/tools/parsing/nex { };
 
-  ninja = callPackage ../development/tools/build-managers/ninja { };
-
   nimbo = with python3Packages; callPackage ../applications/misc/nimbo { };
 
   gn = callPackage ../development/tools/build-managers/gn { };
@@ -19179,6 +19090,10 @@ with pkgs;
     jre_headless = jre8_headless;
   };
 
+  nexusmods-app-unfree = callPackage ../by-name/ne/nexusmods-app/package.nix {
+    enableUnfree = true;
+  };
+
   nmrpflash = callPackage ../development/embedded/nmrpflash { };
 
   norminette = callPackage ../development/tools/norminette { };
@@ -19504,7 +19419,10 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
-  shake = haskell.lib.compose.justStaticExecutables haskellPackages.shake;
+  shake =
+    # TODO: Erroneous references to GHC on aarch64-darwin: https://github.com/NixOS/nixpkgs/issues/318013
+    (if stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64 then lib.id else haskell.lib.compose.justStaticExecutables)
+    haskellPackages.shake;
 
   shallot = callPackage ../tools/misc/shallot { };
 
@@ -20183,8 +20101,6 @@ with pkgs;
 
   boost = boost181;
 
-  boost_process = callPackage ../development/libraries/boost-process { };
-
   bosh-cli = callPackage ../applications/networking/cluster/bosh-cli { };
 
   botan2 = callPackage ../development/libraries/botan/2.0.nix {
@@ -20372,8 +20288,6 @@ with pkgs;
 
   soxt = callPackage ../development/libraries/soxt { };
 
-  CoinMP = callPackage ../development/libraries/CoinMP { };
-
   coinlive = callPackage ../tools/misc/coinlive {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -20531,8 +20445,6 @@ with pkgs;
 
   docopt_cpp = callPackage ../development/libraries/docopt_cpp { };
 
-  docopts = callPackage ../development/tools/misc/docopts { };
-
   dotconf = callPackage ../development/libraries/dotconf { };
 
   draco = callPackage ../development/libraries/draco {
@@ -20599,7 +20511,8 @@ with pkgs;
 
   elfio = callPackage ../development/libraries/elfio { };
 
-  emanote = haskell.lib.compose.justStaticExecutables haskellPackages.emanote;
+  # TODO: Fix references and add justStaticExecutables https://github.com/NixOS/nixpkgs/issues/318013
+  emanote = haskellPackages.emanote;
 
   enchant2 = callPackage ../development/libraries/enchant/2.x.nix { };
   enchant = enchant2;
@@ -20608,8 +20521,6 @@ with pkgs;
 
   entt = callPackage ../development/libraries/entt { };
 
-  epoll-shim = callPackage ../development/libraries/epoll-shim { };
-
   libepoxy = callPackage ../development/libraries/libepoxy {
     inherit (darwin.apple_sdk.frameworks) Carbon OpenGL;
   };
@@ -20850,7 +20761,7 @@ with pkgs;
   gecode_6 = qt5.callPackage ../development/libraries/gecode { };
   gecode = gecode_6;
 
-  geph = recurseIntoAttrs (callPackages ../applications/networking/geph { });
+  geph = recurseIntoAttrs (callPackages ../applications/networking/geph { pnpm = pnpm_8; });
 
   gephi = callPackage ../applications/science/misc/gephi { };
 
@@ -20913,6 +20824,7 @@ with pkgs;
   };
 
   gdcm = callPackage ../development/libraries/gdcm {
+    inherit (darwin) DarwinTools;
     inherit (darwin.apple_sdk.frameworks) ApplicationServices Cocoa;
   };
 
@@ -21002,14 +20914,14 @@ with pkgs;
   };
 
   muslCross = musl.override {
-    stdenv = crossLibcStdenv;
+    stdenv = stdenvNoLibc;
   };
 
   # These are used when buiding compiler-rt / libgcc, prior to building libc.
   preLibcCrossHeaders = let
     inherit (stdenv.targetPlatform) libc;
   in     if stdenv.targetPlatform.isMinGW then targetPackages.windows.mingw_w64_headers or windows.mingw_w64_headers
-    else if libc == "nblibc" then targetPackages.netbsdCross.headers or netbsdCross.headers
+    else if libc == "nblibc" then targetPackages.netbsd.headers or netbsd.headers
     else if libc == "libSystem" && stdenv.targetPlatform.isAarch64 then targetPackages.darwin.LibsystemCross or darwin.LibsystemCross
     else null;
 
@@ -21020,13 +20932,13 @@ with pkgs;
     /**/ if name == null then null
     else if name == "glibc" then targetPackages.glibcCross or glibcCross
     else if name == "bionic" then targetPackages.bionic or bionic
-    else if name == "uclibc" then targetPackages.uclibcCross or uclibcCross
-    else if name == "avrlibc" then targetPackages.avrlibcCross or avrlibcCross
-    else if name == "newlib" && stdenv.targetPlatform.isMsp430 then targetPackages.msp430NewlibCross or msp430NewlibCross
+    else if name == "uclibc" then targetPackages.uclibc or uclibc
+    else if name == "avrlibc" then targetPackages.avrlibc or avrlibc
+    else if name == "newlib" && stdenv.targetPlatform.isMsp430 then targetPackages.msp430Newlib or msp430Newlib
     else if name == "newlib" && stdenv.targetPlatform.isVc4 then targetPackages.vc4-newlib or vc4-newlib
     else if name == "newlib" && stdenv.targetPlatform.isOr1k then targetPackages.or1k-newlib or or1k-newlib
-    else if name == "newlib" then targetPackages.newlibCross or newlibCross
-    else if name == "newlib-nano" then targetPackages.newlib-nanoCross or newlib-nanoCross
+    else if name == "newlib" then targetPackages.newlib or newlib
+    else if name == "newlib-nano" then targetPackages.newlib-nano or newlib-nano
     else if name == "musl" then targetPackages.muslCross or muslCross
     else if name == "msvcrt" then targetPackages.windows.mingw_w64 or windows.mingw_w64
     else if name == "ucrt" then targetPackages.windows.mingw_w64 or windows.mingw_w64
@@ -21034,8 +20946,9 @@ with pkgs;
       if stdenv.targetPlatform.useiOSPrebuilt
       then targetPackages.darwin.iosSdkPkgs.libraries or darwin.iosSdkPkgs.libraries
       else targetPackages.darwin.LibsystemCross or (throw "don't yet have a `targetPackages.darwin.LibsystemCross for ${stdenv.targetPlatform.config}`")
-    else if name == "fblibc" then targetPackages.freebsdCross.libc or freebsdCross.libc
-    else if name == "nblibc" then targetPackages.netbsdCross.libc or netbsdCross.libc
+    else if name == "fblibc" then targetPackages.freebsd.libc or freebsd.libc
+    else if name == "oblibc" then targetPackages.openbsd.libc or openbsd.libc
+    else if name == "nblibc" then targetPackages.netbsd.libc or netbsd.libc
     else if name == "wasilibc" then targetPackages.wasilibc or wasilibc
     else if name == "relibc" then targetPackages.relibc or relibc
     else throw "Unknown libc ${name}";
@@ -21051,7 +20964,7 @@ with pkgs;
     };
 
   wasilibc = callPackage ../development/libraries/wasilibc {
-    stdenv = crossLibcStdenv;
+    stdenv = stdenvNoLibc;
   };
 
   relibc = callPackage ../development/libraries/relibc { };
@@ -21489,7 +21402,9 @@ with pkgs;
 
   ilmbase = callPackage ../development/libraries/ilmbase { };
 
-  imgui = callPackage ../development/libraries/imgui { };
+  imgui = callPackage ../development/libraries/imgui {
+    stdenv = if stdenv.isDarwin then overrideSDK stdenv "11.0" else stdenv;
+  };
 
   imtui = callPackage ../development/libraries/imtui { };
 
@@ -21568,7 +21483,7 @@ with pkgs;
 
   ispc = callPackage ../development/compilers/ispc {
     xcode = darwin.xcode_14;
-    llvmPackages = llvmPackages_15;
+    llvmPackages = llvmPackages_17;
   };
 
   isso = callPackage ../servers/isso {
@@ -21686,9 +21601,6 @@ with pkgs;
 
   LAStools = callPackage ../development/libraries/LAStools { };
 
-  LASzip = callPackage ../development/libraries/LASzip { };
-  LASzip2 = callPackage ../development/libraries/LASzip/LASzip2.nix { };
-
   laurel = callPackage ../servers/monitoring/laurel/default.nix { };
 
   lcm = callPackage ../development/libraries/lcm { };
@@ -21733,8 +21645,6 @@ with pkgs;
 
   lib3mf = callPackage ../development/libraries/lib3mf { };
 
-  libAfterImage = callPackage ../development/libraries/libAfterImage { };
-
   libaacs = callPackage ../development/libraries/libaacs { };
 
   libaal = callPackage ../development/libraries/libaal { };
@@ -22225,7 +22135,8 @@ with pkgs;
 
   libfabric = callPackage ../development/libraries/libfabric { };
 
-  libfive = qt6Packages.callPackage ../development/libraries/libfive {
+  libfive = libsForQt5.callPackage ../development/libraries/libfive {
+    stdenv = if stdenv.isDarwin then overrideSDK stdenv "11.0" else stdenv;
     python = python3;
   };
 
@@ -22690,12 +22601,8 @@ with pkgs;
 
   libopenglrecorder = callPackage ../development/libraries/libopenglrecorder { };
 
-  libopus = callPackage ../development/libraries/libopus { };
-
   libopusenc = callPackage ../development/libraries/libopusenc { };
 
-  liboqs = callPackage ../development/libraries/liboqs { };
-
   libosinfo = callPackage ../development/libraries/libosinfo { };
 
   libosip = callPackage ../development/libraries/osip { };
@@ -23234,7 +23141,10 @@ with pkgs;
 
   matio = callPackage ../development/libraries/matio { };
 
-  matterhorn = haskell.lib.compose.justStaticExecutables haskellPackages.matterhorn;
+  matterhorn =
+    # TODO: Erroneous references to GHC on aarch64-darwin: https://github.com/NixOS/nixpkgs/issues/318013
+    (if stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64 then lib.id else haskell.lib.compose.justStaticExecutables)
+      haskellPackages.matterhorn;
 
   maxflow = callPackage ../development/libraries/maxflow { };
 
@@ -23336,7 +23246,7 @@ with pkgs;
 
   micropython = callPackage ../development/interpreters/micropython { };
 
-  MIDIVisualizer = darwin.apple_sdk_11_0.callPackage ../applications/audio/midi-visualizer {
+  midivisualizer = darwin.apple_sdk_11_0.callPackage ../applications/audio/midivisualizer {
     inherit (darwin.apple_sdk_11_0.frameworks) AppKit Cocoa Carbon CoreAudio CoreMIDI CoreServices Kernel;
   };
 
@@ -23591,8 +23501,6 @@ with pkgs;
 
   ookla-speedtest = callPackage ../tools/networking/ookla-speedtest { };
 
-  open62541 = callPackage ../development/libraries/open62541 { };
-
   openalSoft = callPackage ../development/libraries/openal-soft {
     inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit AudioToolbox;
   };
@@ -23643,6 +23551,8 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks)
       AVFoundation Cocoa VideoDecodeAcceleration CoreMedia MediaToolbox Accelerate;
     ffmpeg = ffmpeg_4;
+    # OpenCV3 won't build with anything newer than CUDA 11 due to API changes.
+    cudaPackages = cudaPackages_11;
   };
 
   opencv4 = callPackage ../development/libraries/opencv/4.x.nix {
@@ -23682,10 +23592,6 @@ with pkgs;
 
   openpa = callPackage ../development/libraries/openpa { };
 
-  openpgp-card-tools = callPackage ../tools/security/openpgp-card-tools {
-    inherit (darwin.apple_sdk.frameworks) PCSC;
-  };
-
   opensaml-cpp = callPackage ../development/libraries/opensaml-cpp { };
 
   openscenegraph = callPackage ../development/libraries/openscenegraph {
@@ -23878,10 +23784,11 @@ with pkgs;
 
   prospector = callPackage ../development/tools/prospector { };
 
-  protobuf = protobuf_24;
+  protobuf = protobuf_25;
 
   inherit
     ({
+      protobuf_27 = callPackage ../development/libraries/protobuf/27.nix { };
       protobuf_26 = callPackage ../development/libraries/protobuf/26.nix { };
       protobuf_25 = callPackage ../development/libraries/protobuf/25.nix { };
       protobuf_24 = callPackage ../development/libraries/protobuf/24.nix { };
@@ -23895,6 +23802,7 @@ with pkgs;
         abseil-cpp = abseil-cpp_202103;
       };
     })
+    protobuf_27
     protobuf_26
     protobuf_25
     protobuf_24
@@ -24212,28 +24120,6 @@ with pkgs;
 
   SDL = SDL_classic;
 
-  SDL_audiolib = callPackage ../development/libraries/SDL_audiolib { };
-
-  SDL_sixel = callPackage ../development/libraries/SDL_sixel { };
-
-  SDL_gfx = callPackage ../development/libraries/SDL_gfx { };
-
-  SDL_gpu = callPackage ../development/libraries/SDL_gpu { };
-
-  SDL_image = callPackage ../development/libraries/SDL_image { };
-
-  SDL_mixer = callPackage ../development/libraries/SDL_mixer { };
-
-  SDL_net = callPackage ../development/libraries/SDL_net { };
-
-  SDL_Pango = callPackage ../development/libraries/SDL_Pango { };
-
-  SDL_sound = callPackage ../development/libraries/SDL_sound { };
-
-  SDL_stretch= callPackage ../development/libraries/SDL_stretch { };
-
-  SDL_ttf = callPackage ../development/libraries/SDL_ttf { };
-
   SDL2 = callPackage ../development/libraries/SDL2 {
     inherit (darwin.apple_sdk.frameworks) AudioUnit Cocoa CoreAudio CoreServices ForceFeedback OpenGL;
   };
@@ -24259,16 +24145,10 @@ with pkgs;
     };
   });
 
-  SDL2_gfx = callPackage ../development/libraries/SDL2_gfx { };
-
-  SDL2_sound = callPackage ../development/libraries/SDL2_sound {
-    inherit (darwin.apple_sdk.frameworks) AudioToolbox CoreAudio;
-  };
-
-  SDL2_ttf = callPackage ../development/libraries/SDL2_ttf { };
-
   sdrplay = callPackage ../applications/radio/sdrplay { };
 
+  sdr-j-fm = libsForQt5.callPackage ../applications/radio/sdr-j-fm { };
+
   sdrpp = callPackage ../applications/radio/sdrpp {
     inherit (darwin.apple_sdk.frameworks) AppKit;
   };
@@ -24730,9 +24610,7 @@ with pkgs;
 
   umockdev = callPackage ../development/libraries/umockdev { };
 
-  unconvert = callPackage ../development/tools/unconvert {
-    buildGoModule = buildGo121Module;
-  };
+  unconvert = callPackage ../development/tools/unconvert { };
 
   uncover = callPackage ../tools/security/uncover { };
 
@@ -24797,6 +24675,8 @@ with pkgs;
 
   vencord-web-extension = callPackage ../by-name/ve/vencord/package.nix { buildWebExtension = true; };
 
+  vesktop = callPackage ../by-name/ve/vesktop/package.nix { pnpm = pnpm_8; };
+
   vid-stab = callPackage ../development/libraries/vid-stab {
     inherit (llvmPackages) openmp;
   };
@@ -24805,8 +24685,6 @@ with pkgs;
     hdf5 = hdf5.override { usev110Api = true; };
   };
 
-  vkd3d = callPackage ../development/libraries/vkd3d {};
-
   vkd3d-proton = callPackage ../development/libraries/vkd3d-proton {};
 
   vkdisplayinfo = callPackage ../tools/graphics/vkdisplayinfo { };
@@ -25068,24 +24946,26 @@ with pkgs;
   libzra = callPackage ../development/libraries/libzra { };
 
   # requires a newer Apple SDK
-  zig_0_9 = darwin.apple_sdk_11_0.callPackage ../development/compilers/zig/0.9.nix {
+  zig_0_9 = darwin.apple_sdk_11_0.callPackage ../development/compilers/zig/0.9 {
     llvmPackages = llvmPackages_13;
   };
   # requires a newer Apple SDK
-  zig_0_10 = darwin.apple_sdk_11_0.callPackage ../development/compilers/zig/0.10.nix {
+  zig_0_10 = darwin.apple_sdk_11_0.callPackage ../development/compilers/zig/0.10 {
     llvmPackages = llvmPackages_15;
   };
   # requires a newer Apple SDK
-  zig_0_11 = darwin.apple_sdk_11_0.callPackage ../development/compilers/zig/0.11.nix {
+  zig_0_11 = darwin.apple_sdk_11_0.callPackage ../development/compilers/zig/0.11 {
     llvmPackages = llvmPackages_16;
   };
   # requires a newer Apple SDK
-  zig_0_12 = darwin.apple_sdk_11_0.callPackage ../development/compilers/zig/0.12.nix {
+  zig_0_12 = darwin.apple_sdk_11_0.callPackage ../development/compilers/zig/0.12 {
     llvmPackages = llvmPackages_17;
   };
-  zig = zig_0_12;
-
-  zig-shell-completions = callPackage ../development/compilers/zig/shell-completions.nix { };
+  # requires a newer Apple SDK
+  zig_0_13 = darwin.apple_sdk_11_0.callPackage ../development/compilers/zig/0.13 {
+    llvmPackages = llvmPackages_18;
+  };
+  zig = zig_0_13;
 
   zimlib = callPackage ../development/libraries/zimlib { };
 
@@ -25230,6 +25110,10 @@ with pkgs;
 
   leaps = callPackage ../development/tools/leaps { };
 
+  ### DEVELOPMENT / HARE
+
+  hareHook = callPackage ../by-name/ha/hare/hook.nix { };
+
   ### DEVELOPMENT / JAVA MODULES
 
   javaPackages = recurseIntoAttrs (callPackage ./java-packages.nix { });
@@ -25272,7 +25156,7 @@ with pkgs;
   # Clasp Common Lisp
   clasp-common-lisp = wrapLisp {
     pkg = callPackage ../development/compilers/clasp { };
-    faslExt = "fasp";
+    faslExt = "fasl";
   };
 
   # CLISP
@@ -25314,17 +25198,17 @@ with pkgs;
   };
 
   # Steel Bank Common Lisp
-  sbcl_2_4_3 = wrapLisp {
-    pkg = callPackage ../development/compilers/sbcl { version = "2.4.3"; };
+  sbcl_2_4_4 = wrapLisp {
+    pkg = callPackage ../development/compilers/sbcl { version = "2.4.4"; };
     faslExt = "fasl";
     flags = [ "--dynamic-space-size" "3000" ];
   };
-  sbcl_2_4_4 = wrapLisp {
-    pkg = callPackage ../development/compilers/sbcl { version = "2.4.4"; };
+  sbcl_2_4_5 = wrapLisp {
+    pkg = callPackage ../development/compilers/sbcl { version = "2.4.5"; };
     faslExt = "fasl";
     flags = [ "--dynamic-space-size" "3000" ];
   };
-  sbcl = sbcl_2_4_4;
+  sbcl = sbcl_2_4_5;
 
   sbclPackages = recurseIntoAttrs sbcl.pkgs;
 
@@ -25409,8 +25293,6 @@ with pkgs;
 
   alerta-server = callPackage ../servers/monitoring/alerta { };
 
-  allmark = callPackage ../servers/allmark { };
-
   alps = callPackage ../servers/alps { };
 
   anuko-time-tracker = callPackage ../servers/web-apps/anuko-time-tracker { };
@@ -25851,7 +25733,7 @@ with pkgs;
   leafnode1 = callPackage ../servers/news/leafnode/1.nix { };
 
   lemmy-server = callPackage ../servers/web-apps/lemmy/server.nix {
-    inherit (darwin.apple_sdk.frameworks) Security;
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
   };
 
   lemmy-ui = callPackage ../servers/web-apps/lemmy/ui.nix {
@@ -25898,7 +25780,7 @@ with pkgs;
 
   matrix-alertmanager = callPackage ../servers/monitoring/matrix-alertmanager { };
 
-  mattermost = callPackage ../servers/mattermost { buildGoModule = buildGo122Module; };
+  mattermost = callPackage ../servers/mattermost { };
   matterircd = callPackage ../servers/mattermost/matterircd.nix { };
   matterbridge = callPackage ../servers/matterbridge { };
 
@@ -26226,7 +26108,9 @@ with pkgs;
     buildGoModule = buildGo122Module;
   };
 
-  mir = callPackage ../servers/mir { };
+  inherit (callPackage ../servers/mir { })
+    mir
+    mir_2_15;
 
   miriway = callPackage ../applications/window-managers/miriway { };
 
@@ -26375,7 +26259,6 @@ with pkgs;
   prometheus-consul-exporter = callPackage ../servers/monitoring/prometheus/consul-exporter.nix { };
   prometheus-dcgm-exporter = callPackage ../servers/monitoring/prometheus/dcgm-exporter { };
   prometheus-dnsmasq-exporter = callPackage ../servers/monitoring/prometheus/dnsmasq-exporter.nix { };
-  prometheus-dovecot-exporter = callPackage ../servers/monitoring/prometheus/dovecot-exporter.nix { };
   prometheus-domain-exporter = callPackage ../servers/monitoring/prometheus/domain-exporter.nix { };
   prometheus-fastly-exporter = callPackage ../servers/monitoring/prometheus/fastly-exporter.nix { };
   prometheus-flow-exporter = callPackage ../servers/monitoring/prometheus/flow-exporter.nix { };
@@ -26467,7 +26350,7 @@ with pkgs;
 
   rabbitmq-server = callPackage ../servers/amqp/rabbitmq-server {
     inherit (darwin.apple_sdk.frameworks) AppKit Carbon Cocoa;
-    elixir = elixir_1_14;
+    erlang = erlang_26;
   };
 
   radicale2 = callPackage ../servers/radicale/2.x.nix { };
@@ -26600,23 +26483,6 @@ with pkgs;
 
   thttpd = callPackage ../servers/http/thttpd { };
 
-  stalwart-mail_0_6 = (stalwart-mail.override { rocksdb_8_11 = rocksdb_8_3; }).overrideAttrs (old: rec {
-    pname = "stalwart-mail_0_6";
-    version = "0.6.0";
-    src = fetchFromGitHub {
-      owner = "stalwartlabs";
-      repo = "mail-server";
-      rev = "v${version}";
-      hash = "sha256-OHwUWSUW6ovLQTxnuUrolQGhxbhp4YqKSH+ZTpe2WXc=";
-      fetchSubmodules = true;
-    };
-    cargoDeps = old.cargoDeps.overrideAttrs (_: {
-      inherit src;
-      name = "${pname}-${version}-vendor.tar.gz";
-      outputHash = "sha256-mW3OXQj6DcIMO1YlTG3G+a1ORRcuvp5/h7BU+b4QbnE=";
-    });
-  });
-
   static-web-server = callPackage ../servers/static-web-server { };
 
   stone = callPackage ../servers/stone { };
@@ -26812,8 +26678,6 @@ with pkgs;
 
   pg_tileserv = callPackage ../servers/geospatial/pg_tileserv { };
 
-  tile38 = callPackage ../servers/geospatial/tile38 { };
-
   ### OS-SPECIFIC
 
   airbuddy = callPackage ../os-specific/darwin/airbuddy { };
@@ -27192,8 +27056,6 @@ with pkgs;
 
   itpp = callPackage ../development/libraries/science/math/itpp { };
 
-  iw = callPackage ../os-specific/linux/iw { };
-
   iwd = callPackage ../os-specific/linux/iwd { };
 
   jool-cli = callPackage ../os-specific/linux/jool/cli.nix { };
@@ -27525,8 +27387,6 @@ with pkgs;
     inherit (darwin.apple_sdk_11_0.frameworks) AppKit Security;
   };
 
-  nushellFull = nushell.override { additionalFeatures = p: p ++ ["dataframe"]; };
-
   nu_scripts = callPackage ../shells/nushell/nu_scripts { };
 
   nushellPlugins = recurseIntoAttrs (callPackage ../shells/nushell/plugins {
@@ -27591,8 +27451,6 @@ with pkgs;
 
   go-protobuf = callPackage ../development/tools/go-protobuf { };
 
-  go-symbols = callPackage ../development/tools/go-symbols { };
-
   go-toml = callPackage ../development/tools/go-toml { };
 
   go-outline = callPackage ../development/tools/go-outline { };
@@ -27631,8 +27489,6 @@ with pkgs;
 
   gotraceui = callPackage ../development/tools/gotraceui { };
 
-  govers = callPackage ../development/tools/govers { };
-
   goverview = callPackage ../tools/security/goverview { };
 
   go-tools = callPackage ../development/tools/go-tools {
@@ -27690,6 +27546,7 @@ with pkgs;
   odin = callPackage ../development/compilers/odin {
     inherit (pkgs.darwin.apple_sdk_11_0) MacOSX-SDK;
     inherit (pkgs.darwin.apple_sdk_11_0.frameworks) Security;
+    llvmPackages = llvmPackages_18;
   };
 
   odp-dpdk = callPackage ../os-specific/linux/odp-dpdk { };
@@ -27702,8 +27559,6 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
-  ols = callPackage ../development/tools/ols { };
-
   openpam = callPackage ../development/libraries/openpam { };
 
   openbsm = callPackage ../development/libraries/openbsm { };
@@ -27756,8 +27611,6 @@ with pkgs;
 
   perf-tools = callPackage ../os-specific/linux/perf-tools { };
 
-  pgrok = callPackage ../tools/networking/pgrok { };
-
   picoprobe-udev-rules = callPackage ../os-specific/linux/picoprobe-udev-rules { };
 
   pipes = callPackage ../misc/screensavers/pipes { };
@@ -28100,14 +27953,6 @@ with pkgs;
     buildBarebox
     bareboxTools;
 
-  uclibc-ng-cross = uclibc-ng.override {
-    stdenv = crossLibcStdenv;
-  };
-
-  # Aliases
-  uclibc = uclibc-ng;
-  uclibcCross = uclibc-ng-cross;
-
   eudev = callPackage ../by-name/eu/eudev/package.nix {
     util-linux = util-linuxMinimal;
   };
@@ -28256,8 +28101,6 @@ with pkgs;
 
   ananicy = callPackage ../misc/ananicy { };
 
-  ananicy-cpp = callPackage ../misc/ananicy-cpp { };
-
   andagii = callPackage ../data/fonts/andagii { };
 
   andika = callPackage ../data/fonts/andika { };
@@ -28322,8 +28165,6 @@ with pkgs;
 
   brise = callPackage ../data/misc/brise { };
 
-  apl386 = callPackage ../data/fonts/apl386 { };
-
   bqn386 = callPackage ../data/fonts/bqn386 { };
 
   cacert = callPackage ../data/misc/cacert { };
@@ -28342,8 +28183,6 @@ with pkgs;
 
   cascadia-code = callPackage ../data/fonts/cascadia-code { };
 
-  catppuccin-cursors = callPackage ../data/icons/catppuccin-cursors { };
-
   ccsymbols = callPackage ../data/fonts/ccsymbols { };
 
   charis-sil = callPackage ../data/fonts/charis-sil { };
@@ -28382,8 +28221,6 @@ with pkgs;
 
   comixcursors = callPackage ../data/icons/comixcursors { };
 
-  corefonts = callPackage ../data/fonts/corefonts { };
-
   courier-prime = callPackage ../data/fonts/courier-prime { };
 
   cozette = callPackage ../data/fonts/cozette { };
@@ -28539,8 +28376,6 @@ with pkgs;
   flat-remix-gtk = callPackage ../data/themes/flat-remix-gtk { };
   flat-remix-gnome = callPackage ../data/themes/flat-remix-gnome { };
 
-  fluent-gtk-theme = callPackage ../data/themes/fluent-gtk-theme { };
-
   fluent-icon-theme = callPackage ../data/icons/fluent-icon-theme { };
 
   font-awesome_4 = (callPackage ../data/fonts/font-awesome { }).v4;
@@ -29061,7 +28896,7 @@ with pkgs;
 
   poly = callPackage ../data/fonts/poly { };
 
-  polychromatic = libsForQt5.callPackage ../applications/misc/polychromatic { };
+  polychromatic = qt6Packages.callPackage ../applications/misc/polychromatic { };
 
   polytopes_db = callPackage ../data/misc/polytopes_db { };
 
@@ -29103,6 +28938,10 @@ with pkgs;
 
   redhat-official-fonts = callPackage ../data/fonts/redhat-official { };
 
+  ricochet-refresh = callPackage ../by-name/ri/ricochet-refresh/package.nix {
+    protobuf = protobuf_21; # https://github.com/blueprint-freespeech/ricochet-refresh/issues/178
+  };
+
   rime-data = callPackage ../data/misc/rime-data { };
 
   roapi-http = callPackage ../servers/roapi/http.nix { };
@@ -29253,6 +29092,8 @@ with pkgs;
 
   siji = callPackage ../data/fonts/siji { };
 
+  smc-chilanka = callPackage ../data/fonts/smc-chilanka { };
+
   sound-theme-freedesktop = callPackage ../data/misc/sound-theme-freedesktop { };
 
   source-code-pro = callPackage ../data/fonts/source-code-pro { };
@@ -29381,7 +29222,10 @@ with pkgs;
 
   unscii = callPackage ../data/fonts/unscii { };
 
-  utterly-nord-plasma = libsForQt5.callPackage ../data/themes/utterly-nord-plasma { };
+  utterly-nord-plasma = kdePackages.callPackage ../data/themes/utterly-nord-plasma {
+    # renamed in KF6
+    plasma-framework = kdePackages.libplasma;
+  };
 
   utterly-round-plasma-style = callPackage ../data/themes/utterly-round-plasma-style { };
 
@@ -29610,6 +29454,7 @@ with pkgs;
   androidStudioPackages = recurseIntoAttrs
     (callPackage ../applications/editors/android-studio { });
   android-studio = androidStudioPackages.stable;
+  android-studio-full = android-studio.full;
 
   antfs-cli = callPackage ../applications/misc/antfs-cli { };
 
@@ -29673,8 +29518,6 @@ with pkgs;
 
   asap = callPackage ../tools/audio/asap { };
 
-  aseprite = callPackage ../applications/editors/aseprite { };
-
   assign-lb-ip = callPackage ../applications/networking/cluster/assign-lb-ip { };
 
   astroid = callPackage ../applications/networking/mailreaders/astroid {
@@ -30068,14 +29911,6 @@ with pkgs;
 
   cgif = callPackage ../tools/graphics/cgif { };
 
-  ChowCentaur  = callPackage ../applications/audio/ChowCentaur { };
-
-  ChowKick  = callPackage ../applications/audio/ChowKick { };
-
-  ChowPhaser  = callPackage ../applications/audio/ChowPhaser { };
-
-  CHOWTapeModel = callPackage ../applications/audio/CHOWTapeModel { };
-
   chromium = callPackage ../applications/networking/browsers/chromium (config.chromium or {});
 
   chuck = callPackage ../applications/audio/chuck {
@@ -30186,8 +30021,6 @@ with pkgs;
 
   coursera-dl = callPackage ../applications/misc/coursera-dl { };
 
-  coyim = callPackage ../applications/networking/instant-messengers/coyim { };
-
   cozy-drive = callPackage ../applications/networking/cozy-drive { };
 
   cplay-ng = callPackage ../applications/audio/cplay-ng { };
@@ -30341,8 +30174,6 @@ with pkgs;
   docker-machine-hyperkit = callPackage ../applications/networking/cluster/docker-machine/hyperkit.nix { };
   docker-machine-kvm2 = callPackage ../applications/networking/cluster/docker-machine/kvm2.nix { };
 
-  docker-distribution = callPackage ../applications/virtualization/docker/distribution.nix { };
-
   dockfmt = callPackage ../development/tools/dockfmt { };
 
   afterburn = callPackage ../tools/admin/afterburn { };
@@ -30467,10 +30298,6 @@ with pkgs;
 
   edlin = callPackage ../applications/editors/edlin { };
 
-  orbiton = callPackage ../applications/editors/orbiton {
-    buildGoModule = buildGo122Module;
-  };
-
   oed = callPackage ../applications/editors/oed { };
 
   ekho = callPackage ../applications/audio/ekho {
@@ -30692,8 +30519,6 @@ with pkgs;
 
   fig2dev = callPackage ../applications/graphics/fig2dev { };
 
-  FIL-plugins = callPackage ../applications/audio/FIL-plugins { };
-
   finalfrontier = callPackage ../applications/science/machine-learning/finalfrontier {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -30748,7 +30573,10 @@ with pkgs;
 
   fondo = callPackage ../applications/graphics/fondo { };
 
-  font-manager = callPackage ../applications/misc/font-manager { };
+  font-manager = callPackage ../by-name/fo/font-manager/package.nix {
+    libsoup = libsoup_3;
+    webkitgtk = webkitgtk_4_1;
+  };
 
   fontfinder = callPackage ../applications/misc/fontfinder { };
 
@@ -31275,9 +31103,19 @@ with pkgs;
     vmopts = config.jetbrains.vmopts or null;
     jdk = jetbrains.jdk;
   }) // {
-    jdk-no-jcef = callPackage ../development/compilers/jetbrains-jdk { withJcef = false; };
-    jdk = callPackage ../development/compilers/jetbrains-jdk {  };
-    jcef = callPackage ../development/compilers/jetbrains-jdk/jcef.nix { };
+    jdk-no-jcef = callPackage ../development/compilers/jetbrains-jdk {
+      jdk = jdk21;
+      withJcef = false;
+    };
+    jdk-no-jcef-17 = callPackage ../development/compilers/jetbrains-jdk/17.nix {
+      withJcef = false;
+    };
+    jdk = callPackage ../development/compilers/jetbrains-jdk {
+      jdk = jdk21;
+    };
+    jcef = callPackage ../development/compilers/jetbrains-jdk/jcef.nix {
+      jdk = jdk21;
+    };
   });
 
   jmusicbot = callPackage ../applications/audio/jmusicbot { };
@@ -31286,10 +31124,6 @@ with pkgs;
 
   lemonade = callPackage ../applications/misc/lemonade { };
 
-  LibreArp = callPackage ../applications/audio/LibreArp { };
-
-  LibreArp-lv2 = callPackage ../applications/audio/LibreArp/lv2.nix { };
-
   librespot = callPackage ../applications/audio/librespot {
     withALSA = stdenv.isLinux;
     withPulseAudio = config.pulseaudio or stdenv.isLinux;
@@ -31320,6 +31154,13 @@ with pkgs;
 
   manuskript = libsForQt5.callPackage ../applications/editors/manuskript { };
 
+  metacubexd = callPackage ../by-name/me/metacubexd/package.nix {
+    pnpm = callPackage ../development/tools/pnpm/generic.nix {
+      version = "9.1.4";
+      hash = "sha256-MKGAGsTnI3ee/tE6IfTDn562yfu0ztEBvOBrQiWT18k=";
+    };
+  };
+
   minari = python3Packages.toPythonApplication python3Packages.minari;
 
   mindforger = libsForQt5.callPackage ../applications/editors/mindforger { };
@@ -31446,8 +31287,6 @@ with pkgs;
 
   gpsd = callPackage ../servers/gpsd { };
 
-  gpsprune = callPackage ../applications/misc/gpsprune { };
-
   gpu-screen-recorder = callPackage ../applications/video/gpu-screen-recorder { };
 
   gpu-screen-recorder-gtk = callPackage ../applications/video/gpu-screen-recorder/gpu-screen-recorder-gtk.nix { };
@@ -31474,8 +31313,6 @@ with pkgs;
 
   gtklock-userinfo-module = callPackage ../tools/wayland/gtklock/userinfo-module.nix { };
 
-  guardian-agent = callPackage ../tools/networking/guardian-agent { };
-
   gv = callPackage ../applications/misc/gv { };
 
   guvcview = libsForQt5.callPackage ../os-specific/linux/guvcview { };
@@ -31547,7 +31384,10 @@ with pkgs;
   hledger-iadd = haskell.lib.compose.justStaticExecutables haskellPackages.hledger-iadd;
   hledger-interest = haskell.lib.compose.justStaticExecutables haskellPackages.hledger-interest;
   hledger-ui = haskell.lib.compose.justStaticExecutables haskellPackages.hledger-ui;
-  hledger-web = haskell.lib.compose.justStaticExecutables haskellPackages.hledger-web;
+  hledger-web =
+    # TODO: Erroneous references to GHC on aarch64-darwin: https://github.com/NixOS/nixpkgs/issues/318013
+    (if stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64 then lib.id else haskell.lib.compose.justStaticExecutables)
+    haskellPackages.hledger-web;
   hledger-utils = with python3.pkgs; toPythonApplication hledger-utils;
 
   hmm = callPackage ../applications/misc/hmm { };
@@ -31690,8 +31530,6 @@ with pkgs;
 
   protonup-qt = python3Packages.callPackage ../applications/misc/protonup-qt { };
 
-  pmbootstrap = python3Packages.callPackage ../tools/misc/pmbootstrap { };
-
   pokeget-rs = callPackage ../tools/misc/pokeget-rs { };
 
   popura = callPackage ../tools/networking/popura { };
@@ -31705,8 +31543,6 @@ with pkgs;
     singularity-overriden-nixos
     ;
 
-  sfwbar = callPackage ../applications/misc/sfwbar { };
-
   skate = callPackage ../applications/misc/skate { };
 
   slack = callPackage ../applications/networking/instant-messengers/slack { };
@@ -31744,8 +31580,6 @@ with pkgs;
 
   srain = callPackage ../applications/networking/irc/srain { };
 
-  streamdeck-ui = callPackage ../applications/misc/streamdeck-ui { };
-
   super-productivity = callPackage ../applications/office/super-productivity { };
 
   inherit (callPackages ../development/libraries/wlroots {})
@@ -31769,8 +31603,6 @@ with pkgs;
 
   waycorner = callPackage ../applications/misc/waycorner { };
 
-  waylock = callPackage ../applications/misc/waylock { };
-
   wayshot = callPackage ../tools/misc/wayshot { };
 
   waylevel = callPackage ../tools/misc/waylevel { };
@@ -31965,8 +31797,6 @@ with pkgs;
 
   img2pdf = with python3Packages; toPythonApplication img2pdf;
 
-  imgbrd-grabber = qt5.callPackage ../applications/graphics/imgbrd-grabber { };
-
   imgcat = callPackage ../applications/graphics/imgcat { };
 
   img-cat = callPackage ../applications/graphics/img-cat { };
@@ -32086,8 +31916,6 @@ with pkgs;
 
   johnny = callPackage ../applications/misc/johnny { };
 
-  josm = callPackage ../applications/misc/josm { };
-
   js8call = qt5.callPackage ../applications/radio/js8call { };
 
   jwm = callPackage ../applications/window-managers/jwm { };
@@ -32097,7 +31925,7 @@ with pkgs;
   inherit (callPackage ../applications/networking/cluster/k3s {
     buildGoModule = buildGo121Module;
     go = go_1_21;
-  }) k3s_1_27 k3s_1_28 k3s_1_29;
+  }) k3s_1_28 k3s_1_29;
   inherit (callPackage ../applications/networking/cluster/k3s {
     buildGoModule = buildGo122Module;
     go = go_1_22;
@@ -32169,6 +31997,8 @@ with pkgs;
 
   kitsas = libsForQt5.callPackage ../applications/office/kitsas { };
 
+  kiwitalk = callPackage ../by-name/ki/kiwitalk/package.nix { pnpm = pnpm_8; };
+
   kiwix = libsForQt5.callPackage ../applications/misc/kiwix { };
 
   kiwix-tools = callPackage ../applications/misc/kiwix/tools.nix { };
@@ -32327,8 +32157,6 @@ with pkgs;
 
   fluxctl = callPackage ../applications/networking/cluster/fluxctl { };
 
-  fluxcd = callPackage ../applications/networking/cluster/fluxcd { };
-
   linkerd = callPackage ../applications/networking/cluster/linkerd { };
   linkerd_edge = callPackage ../applications/networking/cluster/linkerd/edge.nix { };
   linkerd_stable = linkerd;
@@ -32446,13 +32274,11 @@ with pkgs;
   libreoffice-bin = callPackage ../applications/office/libreoffice/darwin { };
 
   libreoffice = hiPrio libreoffice-still;
+  libreoffice-unwrapped = libreoffice.unwrapped;
 
   libreoffice-qt = hiPrio libreoffice-qt-still;
-
   libreoffice-qt-unwrapped = libreoffice-qt.unwrapped;
 
-  libreoffice-unwrapped = libreoffice.unwrapped;
-
   libreoffice-qt-fresh = lowPrio (callPackage ../applications/office/libreoffice/wrapper.nix {
     unwrapped = libsForQt5.callPackage ../applications/office/libreoffice {
       kdeIntegration = true;
@@ -32469,6 +32295,9 @@ with pkgs;
   });
   libreoffice-qt-still-unwrapped = libreoffice-qt-still.unwrapped;
 
+  libreoffice-qt6 = hiPrio libreoffice-qt6-still;
+  libreoffice-qt6-unwrapped = libreoffice-qt6.unwrapped;
+
   libreoffice-qt6-fresh = lowPrio (callPackage ../applications/office/libreoffice/wrapper.nix {
     unwrapped = kdePackages.callPackage ../applications/office/libreoffice {
       kdeIntegration = true;
@@ -32688,8 +32517,6 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) CoreServices;
   };
 
-  media-downloader = libsForQt5.callPackage ../applications/video/media-downloader { };
-
   mediaelch = mediaelch-qt5;
   mediaelch-qt5 = libsForQt5.callPackage ../applications/misc/mediaelch { };
   mediaelch-qt6 = qt6Packages.callPackage ../applications/misc/mediaelch { };
@@ -32905,8 +32732,6 @@ with pkgs;
 
   motif = callPackage ../development/libraries/motif { };
 
-  mousai = callPackage ../applications/audio/mousai { };
-
   mozjpeg = callPackage ../applications/graphics/mozjpeg { };
 
   edgetx = libsForQt5.callPackage ../applications/misc/edgetx { };
@@ -33024,15 +32849,14 @@ with pkgs;
     inherit lua;
   };
 
-  shaka-packager = callPackage ../applications/video/shaka-packager { };
+  # Wrap avoiding rebuild
+  mpv = mpv-unwrapped.wrapper { mpv = mpv-unwrapped; };
 
-  # Wraps without triggering a rebuild
-  wrapMpv = callPackage ../applications/video/mpv/wrapper.nix { };
-  mpv = wrapMpv mpv-unwrapped { };
+  mpvScripts = mpv-unwrapped.scripts;
 
-  mpvpaper = callPackage ../tools/wayland/mpvpaper { };
+  shaka-packager = callPackage ../applications/video/shaka-packager { };
 
-  mpvScripts = callPackage ../applications/video/mpv/scripts { };
+  mpvpaper = callPackage ../tools/wayland/mpvpaper { };
 
   open-in-mpv = callPackage ../applications/video/open-in-mpv { };
 
@@ -33140,8 +32964,6 @@ with pkgs;
 
   nwg-menu = callPackage ../applications/misc/nwg-menu { };
 
-  nwg-panel = callPackage ../applications/misc/nwg-panel { };
-
   nwg-wrapper = callPackage ../applications/misc/nwg-wrapper { };
 
   ocm = callPackage ../applications/networking/cluster/ocm { };
@@ -33270,8 +33092,6 @@ with pkgs;
     protobuf = protobuf_21;
   };
 
-  smplayer = libsForQt5.callPackage ../applications/video/smplayer { };
-
   smtube = libsForQt5.callPackage ../applications/video/smtube { };
 
   softmaker-office = callPackage ../applications/office/softmaker/softmaker_office.nix { };
@@ -33420,7 +33240,7 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) AppKit Cocoa Foundation;
   };
 
-  nheko = libsForQt5.callPackage ../applications/networking/instant-messengers/nheko { };
+  nheko = qt6Packages.callPackage ../applications/networking/instant-messengers/nheko { };
 
   notepad-next = libsForQt5.callPackage ../applications/editors/notepad-next { };
 
@@ -33467,9 +33287,7 @@ with pkgs;
   obs-studio-plugins = recurseIntoAttrs (callPackage ../applications/video/obs-studio/plugins {});
   wrapOBS = callPackage ../applications/video/obs-studio/wrapper.nix { };
 
-  obsidian = callPackage ../applications/misc/obsidian {
-    electron = electron_28;
-  };
+  obsidian = callPackage ../applications/misc/obsidian { };
 
   octoprint = callPackage ../applications/misc/octoprint { };
 
@@ -33828,8 +33646,6 @@ with pkgs;
 
   premid = callPackage ../applications/misc/premid { };
 
-  process-cpp = callPackage ../development/libraries/process-cpp { };
-
   processing = callPackage ../applications/graphics/processing {
     jdk = jdk17;
   };
@@ -33949,8 +33765,6 @@ with pkgs;
 
   qpwgraph = qt6Packages.callPackage ../applications/audio/qpwgraph { };
 
-  qrcode = callPackage ../tools/graphics/qrcode { };
-
   qsampler = libsForQt5.callPackage ../applications/audio/qsampler { };
 
   qscreenshot = libsForQt5.callPackage ../applications/graphics/qscreenshot { };
@@ -34154,7 +33968,15 @@ with pkgs;
 
   rke = callPackage ../applications/networking/cluster/rke { };
 
-  rke2 = callPackage ../applications/networking/cluster/rke2 { };
+  inherit (callPackage ../applications/networking/cluster/rke2 {
+    buildGoModule = buildGo121Module;
+    go = go_1_21;
+  }) rke2_stable;
+  inherit (callPackage ../applications/networking/cluster/rke2 {
+    buildGoModule = buildGo122Module;
+    go = go_1_22;
+  }) rke2_latest rke2_testing;
+  rke2 = rke2_stable;
 
   rocketchat-desktop = callPackage ../applications/networking/instant-messengers/rocketchat-desktop { };
 
@@ -34313,8 +34135,6 @@ with pkgs;
 
   skypeforlinux = callPackage ../applications/networking/instant-messengers/skypeforlinux { };
 
-  SkypeExport = callPackage ../applications/networking/instant-messengers/SkypeExport { };
-
   slingshot = callPackage ../tools/misc/slingshot { };
 
   slop = callPackage ../tools/misc/slop { };
@@ -34461,8 +34281,6 @@ with pkgs;
 
   peru = callPackage ../applications/version-management/peru { };
 
-  petrinizer = haskellPackages.callPackage ../applications/science/logic/petrinizer { };
-
   pmidi = callPackage ../applications/audio/pmidi { };
 
   printrun = callPackage ../applications/misc/printrun { };
@@ -34542,13 +34360,7 @@ with pkgs;
 
   psst = callPackage ../applications/audio/psst { };
 
-  squeezelite = darwin.apple_sdk_11_0.callPackage ../applications/audio/squeezelite {
-    inherit (darwin.apple_sdk_11_0.frameworks) CoreVideo VideoDecodeAcceleration CoreAudio AudioToolbox AudioUnit Carbon;
-  };
-
-  squeezelite-pulse = darwin.apple_sdk_11_0.callPackage ../applications/audio/squeezelite {
-    inherit (darwin.apple_sdk_11_0.frameworks) CoreVideo VideoDecodeAcceleration CoreAudio AudioToolbox AudioUnit Carbon;
-
+  squeezelite-pulse = callPackage ../by-name/sq/squeezelite/package.nix {
     audioBackend = "pulse";
   };
 
@@ -34599,8 +34411,6 @@ with pkgs;
     pythonBindings = true;
   };
 
-  sublime-music = callPackage ../applications/audio/sublime-music { };
-
   subtitlr = callPackage ../applications/audio/subtitlr { };
 
   subunit = callPackage ../development/libraries/subunit { };
@@ -34651,8 +34461,6 @@ with pkgs;
 
   stc-cli = callPackage ../applications/networking/stc-cli { };
 
-  syncthing-tray = callPackage ../applications/misc/syncthing-tray { };
-
   syncthingtray = kdePackages.callPackage ../applications/misc/syncthingtray {
     # renamed in KF5 -> KF6
     plasma-framework = kdePackages.libplasma;
@@ -34780,9 +34588,9 @@ with pkgs;
 
   termimage = callPackage ../tools/graphics/termimage { };
 
-  terminal-notifier = callPackage ../applications/misc/terminal-notifier { };
+  terminaltexteffects = with python3Packages; toPythonApplication terminaltexteffects ;
 
-  textpieces = callPackage ../tools/text/textpieces { };
+  terminal-notifier = callPackage ../applications/misc/terminal-notifier { };
 
   textplots = callPackage ../tools/graphics/textplots { };
 
@@ -35178,8 +34986,6 @@ with pkgs;
 
   qpdfview = libsForQt5.callPackage ../applications/office/qpdfview { };
 
-  qtile = callPackage ../development/python-modules/qtile/wrapper.nix { };
-
   vimgolf = callPackage ../games/vimgolf { };
 
   vimpc = callPackage ../applications/audio/vimpc { };
@@ -35201,9 +35007,6 @@ with pkgs;
 
   neovim-gtk = callPackage ../applications/editors/neovim/neovim-gtk.nix { };
 
-  neovim-qt-unwrapped = libsForQt5.callPackage ../applications/editors/neovim/neovim-qt.nix { };
-  neovim-qt = libsForQt5.callPackage ../applications/editors/neovim/qt.nix { };
-
   gnvim-unwrapped = callPackage ../applications/editors/neovim/gnvim { };
 
   gnvim = callPackage ../applications/editors/neovim/gnvim/wrapper.nix { };
@@ -35227,7 +35030,7 @@ with pkgs;
   };
 
   virt-manager-qt = libsForQt5.callPackage ../applications/virtualization/virt-manager/qt.nix {
-    qtermwidget = lxqt.qtermwidget;
+    qtermwidget = lxqt.qtermwidget_1_4;
   };
 
   virtscreen = callPackage ../tools/admin/virtscreen { };
@@ -35448,6 +35251,8 @@ with pkgs;
 
   webcord = callPackage ../by-name/we/webcord/package.nix { electron = electron_30; };
 
+  webcord-vencord = callPackage ../by-name/we/webcord-vencord/package.nix { electron = electron_29; };
+
   webex = callPackage ../applications/networking/instant-messengers/webex { };
 
   webmacs = libsForQt5.callPackage ../applications/networking/browsers/webmacs {
@@ -35745,8 +35550,6 @@ with pkgs;
 
   xmobar = haskellPackages.xmobar.bin;
 
-  xmonad-log = callPackage ../tools/misc/xmonad-log { };
-
   xmonad-with-packages = callPackage ../applications/window-managers/xmonad/wrapper.nix {
     inherit (haskellPackages) ghcWithPackages;
     packages = _: [ haskellPackages.xmonad-contrib ];
@@ -35876,7 +35679,9 @@ with pkgs;
 
   youtube-dl-light = with python3Packages; toPythonApplication youtube-dl-light;
 
-  youtube-music = callPackage ../applications/audio/youtube-music { };
+  youtube-music = callPackage ../applications/audio/youtube-music {
+    pnpm = pnpm_9;
+  };
 
   youtube-tui = callPackage ../applications/video/youtube-tui {
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security AppKit;
@@ -35954,7 +35759,7 @@ with pkgs;
 
   zotero = callPackage ../applications/office/zotero { };
 
-  zotero_7 = callPackage ../applications/office/zotero/zotero_7.nix { };
+  zotero_7 = pkgs.zotero-beta;
 
   zscroll = callPackage ../applications/misc/zscroll { };
 
@@ -36234,7 +36039,10 @@ with pkgs;
 
   bean-add = callPackage ../applications/office/beancount/bean-add.nix { };
 
-  bench = haskell.lib.compose.justStaticExecutables haskellPackages.bench;
+  bench =
+    # TODO: Erroneous references to GHC on aarch64-darwin: https://github.com/NixOS/nixpkgs/issues/318013
+    (if stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64 then lib.id else haskell.lib.compose.justStaticExecutables)
+      haskellPackages.bench;
 
   cri-o = callPackage ../applications/virtualization/cri-o/wrapper.nix { };
   cri-o-unwrapped = callPackage ../applications/virtualization/cri-o { };
@@ -36293,7 +36101,9 @@ with pkgs;
 
   colobot = callPackage ../games/colobot { };
 
-  corsix-th = callPackage ../games/corsix-th { };
+  corsix-th = callPackage ../games/corsix-th {
+    inherit (darwin.apple_sdk.frameworks) Cocoa CoreVideo;
+  };
 
   enigma = callPackage ../games/enigma { };
 
@@ -36333,7 +36143,9 @@ with pkgs;
 
   keeperrl = callPackage ../games/keeperrl { };
 
-  shipwright = callPackage ../games/shipwright { };
+  shipwright = callPackage ../games/shipwright {
+    stdenv = if stdenv.isDarwin then overrideSDK stdenv "11.0" else stdenv;
+  };
 
   wipeout-rewrite = callPackage ../games/wipeout-rewrite {
     inherit (darwin.apple_sdk.frameworks) Foundation;
@@ -36467,8 +36279,6 @@ with pkgs;
 
   abuse = callPackage ../games/abuse { };
 
-  adom = callPackage ../games/adom { };
-
   airshipper = callPackage ../games/airshipper { };
 
   airstrike = callPackage ../games/airstrike { };
@@ -36541,8 +36351,6 @@ with pkgs;
 
   bsdgames = callPackage ../games/bsdgames { };
 
-  btanks = callPackage ../games/btanks { };
-
   bugdom = callPackage ../games/bugdom {
     stdenv = if stdenv.isDarwin then overrideSDK stdenv "11.0" else stdenv;
     inherit (darwin.apple_sdk_11_0.frameworks) IOKit Foundation OpenGL;
@@ -37050,8 +36858,6 @@ with pkgs;
 
   oilrush = callPackage ../games/oilrush { };
 
-  onscripter-en = callPackage ../games/onscripter-en { };
-
   openarena = callPackage ../games/openarena { };
 
   opendungeons = callPackage ../games/opendungeons { };
@@ -37491,8 +37297,6 @@ with pkgs;
 
   vitetris = callPackage ../games/vitetris { };
 
-  vms-empire = callPackage ../games/vms-empire { };
-
   voxelands = callPackage ../games/voxelands { };
 
   vvvvvv = callPackage ../by-name/vv/vvvvvv/package.nix {
@@ -37653,7 +37457,11 @@ with pkgs;
 
   enlightenment = recurseIntoAttrs (callPackage ../desktops/enlightenment { });
 
-  expidus = recurseIntoAttrs (callPackage ../desktops/expidus {});
+  expidus = recurseIntoAttrs (callPackages ../desktops/expidus {
+    # Use the Nix built Flutter Engine for testing.
+    # Also needed when we eventually package Genesis Shell.
+    flutterPackages = flutterPackages-source;
+  });
 
   gnome2 = recurseIntoAttrs (callPackage ../desktops/gnome-2 { });
 
@@ -37713,8 +37521,6 @@ with pkgs;
 
   pantheon = recurseIntoAttrs (callPackage ../desktops/pantheon { });
 
-  pantheon-tweaks = callPackage ../desktops/pantheon/third-party/pantheon-tweaks { };
-
   wingpanel-indicator-ayatana = callPackage ../desktops/pantheon/third-party/wingpanel-indicator-ayatana { };
 
   rox-filer = callPackage ../desktops/rox/rox-filer {
@@ -37771,6 +37577,8 @@ with pkgs;
 
   marvin = callPackage ../applications/science/chemistry/marvin { };
 
+  molbar = with python3Packages; toPythonApplication molbar;
+
   molden = callPackage ../applications/science/chemistry/molden { };
 
   mopac = callPackage ../applications/science/chemistry/mopac { };
@@ -37965,7 +37773,7 @@ with pkgs;
 
   minia = callPackage ../applications/science/biology/minia { };
 
-  mirtk = callPackage ../development/libraries/science/biology/mirtk { };
+  mirtk = callPackage ../development/libraries/science/biology/mirtk { itk = itk_5_2; };
 
   muscle = callPackage ../applications/science/biology/muscle { };
 
@@ -38063,8 +37871,6 @@ with pkgs;
 
   seaview = callPackage ../applications/science/biology/seaview { };
 
-  SPAdes = callPackage ../applications/science/biology/spades { };
-
   svaba = callPackage ../applications/science/biology/svaba { };
 
   tandem-aligner = callPackage ../applications/science/biology/tandem-aligner { };
@@ -38256,6 +38062,8 @@ with pkgs;
     version = "11";
   };
 
+  mathmod = libsForQt5.callPackage ../applications/science/math/mathmod { };
+
   metis = callPackage ../development/libraries/science/math/metis { };
 
   nauty = callPackage ../applications/science/math/nauty { };
@@ -38263,6 +38071,7 @@ with pkgs;
   osi = callPackage ../development/libraries/science/math/osi { };
 
   or-tools = callPackage ../development/libraries/science/math/or-tools {
+    inherit (darwin) DarwinTools;
     stdenv = if stdenv.isDarwin then overrideSDK stdenv "11.0" else stdenv;
     python = python3;
     protobuf = protobuf_21;
@@ -39190,11 +38999,7 @@ with pkgs;
 
   epson-workforce-635-nx625-series = callPackage ../misc/drivers/epson-workforce-635-nx625-series { };
 
-  foomatic-db = callPackage ../misc/cups/drivers/foomatic-db { };
-  foomatic-db-engine = callPackage ../misc/cups/drivers/foomatic-db-engine { };
-  foomatic-db-nonfree = callPackage ../misc/cups/drivers/foomatic-db-nonfree { };
-  foomatic-db-ppds = callPackage ../misc/cups/drivers/foomatic-db-ppds { };
-  foomatic-db-ppds-withNonfreeDb = callPackage ../misc/cups/drivers/foomatic-db-ppds { withNonfreeDb = true; };
+  foomatic-db-ppds-withNonfreeDb = callPackage ../by-name/fo/foomatic-db-ppds/package.nix { withNonfreeDb = true; };
 
   gutenprint = callPackage ../misc/drivers/gutenprint { };
 
@@ -39383,8 +39188,6 @@ with pkgs;
 
   velero = callPackage ../applications/networking/cluster/velero { };
 
-  HentaiAtHome = callPackage ../applications/misc/HentaiAtHome { };
-
   hplip = callPackage ../misc/drivers/hplip { };
 
   hplipWithPlugin = hplip.override { withPlugin = true; };
@@ -39482,8 +39285,6 @@ with pkgs;
     fmt = fmt_8;
   };
 
-  kontemplate = callPackage ../applications/networking/cluster/kontemplate { };
-
   # In general we only want keep the last three minor versions around that
   # correspond to the last three supported kubernetes versions:
   # https://kubernetes.io/docs/setup/release/version-skew-policy/#supported-versions
@@ -39493,8 +39294,9 @@ with pkgs;
     kops_1_26
     kops_1_27
     kops_1_28
+    kops_1_29
     ;
-  kops = kops_1_28;
+  kops = kops_1_29;
 
   lguf-brightness = callPackage ../misc/lguf-brightness { };
 
@@ -39844,7 +39646,6 @@ with pkgs;
     };
     mysql = mysql;
     pcre = pcre-cpp;
-    jre = openjdk19; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   });
 
   r128gain = callPackage ../applications/audio/r128gain { };
@@ -40227,8 +40028,6 @@ with pkgs;
 
   ssh-tools = callPackage ../applications/misc/ssh-tools { };
 
-  auto-cpufreq = callPackage ../tools/system/auto-cpufreq {  };
-
   thermald = callPackage ../tools/system/thermald { };
 
   therion = callPackage ../applications/misc/therion { };
@@ -40780,15 +40579,11 @@ with pkgs;
     name = "bsd-setup-hook";
   } ../os-specific/bsd/setup-hook.sh;
 
-  inherit (callPackage ../os-specific/bsd/freebsd { })
-    freebsd freebsdCross;
+  freebsd = callPackage ../os-specific/bsd/freebsd { };
 
   netbsd = callPackage ../os-specific/bsd/netbsd { };
-  netbsdCross = callPackage ../os-specific/bsd/netbsd {
-    stdenv = crossLibcStdenv;
-  };
 
-  yrd = callPackage ../tools/networking/yrd { };
+  openbsd = callPackage ../os-specific/bsd/openbsd { };
 
   powershell = callPackage ../shells/powershell { };
 
@@ -40812,18 +40607,14 @@ with pkgs;
 
   new-session-manager = callPackage ../applications/audio/new-session-manager { };
 
-  newlib = callPackage ../development/misc/newlib { };
-  newlibCross = callPackage ../development/misc/newlib {
-    stdenv = crossLibcStdenv;
+  newlib = callPackage ../development/misc/newlib {
+    stdenv = stdenvNoLibc;
   };
 
   newlib-nano = callPackage ../development/misc/newlib {
+    stdenv = stdenvNoLibc;
     nanoizeNewlib = true;
   };
-  newlib-nanoCross = callPackage ../development/misc/newlib {
-    nanoizeNewlib = true;
-    stdenv = crossLibcStdenv;
-  };
 
   omnisharp-roslyn = callPackage ../development/tools/omnisharp-roslyn { };
 
@@ -40873,8 +40664,6 @@ with pkgs;
 
   webwormhole = callPackage ../tools/networking/webwormhole { };
 
-  werf = callPackage ../applications/networking/cluster/werf { };
-
   yor = callPackage ../applications/networking/cluster/yor { };
 
   wifi-password = callPackage ../os-specific/darwin/wifi-password { };
diff --git a/pkgs/top-level/beam-packages.nix b/pkgs/top-level/beam-packages.nix
index dec1a5d734ce8..45900c8b06e2a 100644
--- a/pkgs/top-level/beam-packages.nix
+++ b/pkgs/top-level/beam-packages.nix
@@ -12,18 +12,6 @@
 let
   self = beam;
 
-  # Aliases added 2023-03-21
-  versionLoop = f: lib.lists.foldr (version: acc: (f version) // acc) { } [ "26" "25" "24" ];
-
-  interpretersAliases = versionLoop (version: {
-    "erlangR${version}" = self.interpreters."erlang_${version}";
-    "erlangR${version}_odbc" = self.interpreters."erlang_${version}_odbc";
-    "erlangR${version}_javac" = self.interpreters."erlang_${version}_javac";
-    "erlangR${version}_odbc_javac" = self.interpreters."erlang_${version}_odbc_javac";
-  });
-
-  packagesAliases = versionLoop (version: { "erlangR${version}" = self.packages."erlang_${version}"; });
-
 in
 
 {
@@ -35,9 +23,6 @@ in
   interpreters = {
 
     erlang = self.interpreters.${self.latestVersion};
-    erlang_odbc = self.interpreters."${self.latestVersion}_odbc";
-    erlang_javac = self.interpreters."${self.latestVersion}_javac";
-    erlang_odbc_javac = self.interpreters."${self.latestVersion}_odbc_javac";
 
     # Standard Erlang versions, using the generic builder.
 
@@ -56,12 +41,6 @@ in
       autoconf = buildPackages.autoconf269;
       inherit wxSupport systemdSupport;
     };
-    erlang_26_odbc = self.interpreters.erlang_26.override { odbcSupport = true; };
-    erlang_26_javac = self.interpreters.erlang_26.override { javacSupport = true; };
-    erlang_26_odbc_javac = self.interpreters.erlang_26.override {
-      javacSupport = true;
-      odbcSupport = true;
-    };
 
     erlang_25 = self.beamLib.callErlang ../development/interpreters/erlang/25.nix {
       wxGTK = wxGTK32;
@@ -69,12 +48,6 @@ in
       autoconf = buildPackages.autoconf269;
       inherit wxSupport systemdSupport;
     };
-    erlang_25_odbc = self.interpreters.erlang_25.override { odbcSupport = true; };
-    erlang_25_javac = self.interpreters.erlang_25.override { javacSupport = true; };
-    erlang_25_odbc_javac = self.interpreters.erlang_25.override {
-      javacSupport = true;
-      odbcSupport = true;
-    };
 
     erlang_24 = self.beamLib.callErlang ../development/interpreters/erlang/24.nix {
       wxGTK = wxGTK32;
@@ -83,19 +56,13 @@ in
       autoconf = buildPackages.autoconf269;
       inherit wxSupport systemdSupport;
     };
-    erlang_24_odbc = self.interpreters.erlang_24.override { odbcSupport = true; };
-    erlang_24_javac = self.interpreters.erlang_24.override { javacSupport = true; };
-    erlang_24_odbc_javac = self.interpreters.erlang_24.override {
-      javacSupport = true;
-      odbcSupport = true;
-    };
 
     # Other Beam languages. These are built with `beam.interpreters.erlang`. To
     # access for example elixir built with different version of Erlang, use
     # `beam.packages.erlang_24.elixir`.
     inherit (self.packages.erlang)
-      elixir elixir_1_16 elixir_1_15 elixir_1_14 elixir_1_13 elixir_1_12 elixir_1_11 elixir_1_10 elixir-ls lfe lfe_2_1;
-  } // interpretersAliases;
+      elixir elixir_1_17 elixir_1_16 elixir_1_15 elixir_1_14 elixir_1_13 elixir_1_12 elixir_1_11 elixir_1_10 elixir-ls lfe lfe_2_1;
+  };
 
   # Helper function to generate package set with a specific Erlang version.
   packagesWith = erlang:
@@ -105,11 +72,11 @@ in
   # appropriate Erlang/OTP version.
   packages = {
     erlang = self.packages.${self.latestVersion};
-
+    erlang_27 = self.packagesWith self.interpreters.erlang_27;
     erlang_26 = self.packagesWith self.interpreters.erlang_26;
     erlang_25 = self.packagesWith self.interpreters.erlang_25;
     erlang_24 = self.packagesWith self.interpreters.erlang_24;
-  } // packagesAliases;
+  };
 
   __attrsFailEvaluation = true;
 }
diff --git a/pkgs/top-level/darwin-aliases.nix b/pkgs/top-level/darwin-aliases.nix
index 78e29d9f1a598..c9799351f4e6c 100644
--- a/pkgs/top-level/darwin-aliases.nix
+++ b/pkgs/top-level/darwin-aliases.nix
@@ -57,6 +57,7 @@ mapAliases ({
 
   ### L ###
 
+  libauto = throw "'darwin.libauto' has been removed, as it was broken and unmaintained"; # added 2024-05-10
   libiconv = pkgs.libiconv; # 2024-03-27
 
   ### O ###
diff --git a/pkgs/top-level/dotnet-packages.nix b/pkgs/top-level/dotnet-packages.nix
index b9e30abb645f7..b6dc7bf5300db 100644
--- a/pkgs/top-level/dotnet-packages.nix
+++ b/pkgs/top-level/dotnet-packages.nix
@@ -154,7 +154,7 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
     buildInputs = [ pkgs.gtk-sharp-2_0 ];
 
     meta = {
-      description = "A generic framework for creating extensible applications";
+      description = "Generic framework for creating extensible applications";
       homepage = "https://www.mono-project.com/Mono.Addins";
       longDescription = ''
         A generic framework for creating extensible applications,
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 75f0e54d697cb..b924a29f26162 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -229,7 +229,7 @@ in {
       buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
       llvmPackages = pkgs.llvmPackages_12;
     };
-    ghc948 = callPackage ../development/compilers/ghc/9.4.8.fixme.nix {
+    ghc948 = callPackage ../development/compilers/ghc/9.4.8.nix {
       bootPkgs =
         # Building with 9.2 is broken due to
         # https://gitlab.haskell.org/ghc/ghc/-/issues/21914
@@ -568,7 +568,7 @@ in {
       buildHaskellPackages = ghc.bootPkgs;
       ghc = bh.compiler.ghcjs810;
       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
-      packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs.nix { };
+      packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs-8.x.nix { };
     };
 
     # The integer-simple attribute set contains package sets for all the GHC compilers
diff --git a/pkgs/top-level/kodi-packages.nix b/pkgs/top-level/kodi-packages.nix
index c9c8fe3b6a671..a294fa2e0d301 100644
--- a/pkgs/top-level/kodi-packages.nix
+++ b/pkgs/top-level/kodi-packages.nix
@@ -61,6 +61,8 @@ let
 
     controller-topology-project = callPackage ../applications/video/kodi/addons/controller-topology-project { };
 
+    formula1 = callPackage ../applications/video/kodi/addons/formula1 { };
+
     iagl = callPackage ../applications/video/kodi/addons/iagl { };
 
     invidious = callPackage ../applications/video/kodi/addons/invidious { };
@@ -97,6 +99,8 @@ let
 
     radioparadise = callPackage ../applications/video/kodi/addons/radioparadise { };
 
+    raiplay = callPackage ../applications/video/kodi/addons/raiplay { };
+
     svtplay = callPackage ../applications/video/kodi/addons/svtplay { };
 
     steam-controller = callPackage ../applications/video/kodi/addons/steam-controller { };
@@ -119,6 +123,8 @@ let
 
     osmc-skin = callPackage ../applications/video/kodi/addons/osmc-skin { };
 
+    upnext = callPackage ../applications/video/kodi/addons/upnext { };
+
     vfs-libarchive = callPackage ../applications/video/kodi/addons/vfs-libarchive { };
 
     vfs-rar = callPackage ../applications/video/kodi/addons/vfs-rar { };
@@ -175,6 +181,8 @@ let
 
     myconnpy = callPackage ../applications/video/kodi/addons/myconnpy { };
 
+    plugin-cache = callPackage ../applications/video/kodi/addons/plugin-cache { };
+
     requests = callPackage ../applications/video/kodi/addons/requests { };
 
     requests-cache = callPackage ../applications/video/kodi/addons/requests-cache { };
@@ -185,6 +193,8 @@ let
 
     signals = callPackage ../applications/video/kodi/addons/signals { };
 
+    simplecache = callPackage ../applications/video/kodi/addons/simplecache { };
+
     simplejson = callPackage ../applications/video/kodi/addons/simplejson { };
 
     six = callPackage ../applications/video/kodi/addons/six { };
diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix
index 24eadff372f18..cf4d860a82326 100644
--- a/pkgs/top-level/linux-kernels.nix
+++ b/pkgs/top-level/linux-kernels.nix
@@ -40,6 +40,7 @@ let
       };
       argsOverride = {
         inherit version;
+        pname = "linux-hardened";
         modDirVersion = modDirVersion' + kernelPatches.hardened.${kernel.meta.branch}.extra;
         src = fetchurl {
           url = "mirror://kernel/linux/kernel/v${major}.x/linux-${version}.tar.xz";
@@ -193,6 +194,7 @@ in {
         kernelPatches.rust_1_75
         kernelPatches.rust_1_76
         kernelPatches.rust_1_77-6_8
+        kernelPatches.rust_1_78
       ];
     };
 
@@ -202,6 +204,7 @@ in {
         kernelPatches.bridge_stp_helper
         kernelPatches.request_key_helper
         kernelPatches.rust_1_77-6_9
+        kernelPatches.rust_1_78
       ];
     };
 
@@ -213,7 +216,6 @@ in {
         kernelPatches = [
           kernelPatches.bridge_stp_helper
           kernelPatches.request_key_helper
-          kernelPatches.rust_1_77-6_9
         ];
       };
       latest = packageAliases.linux_latest.kernel;
@@ -316,8 +318,6 @@ in {
 
     akvcam = callPackage ../os-specific/linux/akvcam { };
 
-    amdgpu-pro = callPackage ../os-specific/linux/amdgpu-pro { };
-
     apfs = callPackage ../os-specific/linux/apfs { };
 
     ax99100 = callPackage ../os-specific/linux/ax99100 {};
@@ -417,6 +417,7 @@ in {
     nvidia_x11_legacy340   = nvidiaPackages.legacy_340;
     nvidia_x11_legacy390   = nvidiaPackages.legacy_390;
     nvidia_x11_legacy470   = nvidiaPackages.legacy_470;
+    nvidia_x11_legacy535   = nvidiaPackages.legacy_535;
     nvidia_x11_production  = nvidiaPackages.production;
     nvidia_x11_vulkan_beta = nvidiaPackages.vulkan_beta;
     nvidia_dc              = nvidiaPackages.dc;
@@ -589,6 +590,8 @@ in {
 
     hid-ite8291r3 = callPackage ../os-specific/linux/hid-ite8291r3 { };
 
+    hid-t150 = callPackage ../os-specific/linux/hid-t150 { };
+
     hid-tmff2 = callPackage ../os-specific/linux/hid-tmff2 { };
 
     drbd = callPackage ../os-specific/linux/drbd/driver.nix { };
@@ -600,6 +603,7 @@ in {
     rtl8723bs = throw "rtl8723bs was added in mainline kernel version 4.12"; # Added 2023-06-14
     vm-tools = self.mm-tools;
     xmm7360-pci = throw "Support for the XMM7360 WWAN card was added to the iosm kmod in mainline kernel version 5.18";
+    amdgpu-pro = throw "amdgpu-pro was removed due to lack of maintenance"; # Added 2024-06-16
   });
 
   hardenedPackagesFor = kernel: overrides: packagesFor (hardenedKernelFor kernel overrides);
diff --git a/pkgs/top-level/lua-packages.nix b/pkgs/top-level/lua-packages.nix
index a13c9c3f6c866..e39b990ecae10 100644
--- a/pkgs/top-level/lua-packages.nix
+++ b/pkgs/top-level/lua-packages.nix
@@ -54,7 +54,7 @@ rec {
     inherit (pkgs.buildPackages) makeSetupHook makeWrapper;
   };
 
-  luarocks = toLuaModule (callPackage ../development/tools/misc/luarocks/default.nix { });
+  luarocks_bootstrap = toLuaModule (callPackage ../development/tools/misc/luarocks/default.nix { });
 
   # a fork of luarocks used to generate nix lua derivations from rockspecs
   luarocks-nix = toLuaModule (callPackage ../development/tools/misc/luarocks/luarocks-nix.nix { });
@@ -197,7 +197,7 @@ rec {
     '';
 
     meta = with lib; {
-      description = "A modular widget library for the awesome window manager";
+      description = "Modular widget library for the awesome window manager";
       homepage = "https://vicious.rtfd.io";
       changelog = "https://vicious.rtfd.io/en/v${version}/changelog.html";
       license = licenses.gpl2Plus;
diff --git a/pkgs/top-level/make-tarball.nix b/pkgs/top-level/make-tarball.nix
index 78b90082547be..2fb6e97a711e6 100644
--- a/pkgs/top-level/make-tarball.nix
+++ b/pkgs/top-level/make-tarball.nix
@@ -55,6 +55,8 @@ pkgs.releaseTools.sourceTarball {
     echo "file json-br $packages" >> $out/nix-support/hydra-build-products
   '';
 
+  # --hard-dereference: reproducibility for src if auto-optimise-store = true
+  #   Some context: https://github.com/NixOS/infra/issues/438
   distPhase = ''
     mkdir -p $out/tarballs
     XZ_OPT="-T0" tar \
@@ -71,6 +73,7 @@ pkgs.releaseTools.sourceTarball {
       --sort=name \
       --mtime="@$SOURCE_DATE_EPOCH" \
       --mode=ug+w \
+      --hard-dereference \
       $src $(pwd)/{.version-suffix,.git-revision}
   '';
 }
diff --git a/pkgs/top-level/nim-overrides.nix b/pkgs/top-level/nim-overrides.nix
index 34db79a6a4ead..61717562e89e8 100644
--- a/pkgs/top-level/nim-overrides.nix
+++ b/pkgs/top-level/nim-overrides.nix
@@ -11,22 +11,21 @@
 , xorg
 }:
 
-# The following is list of overrides that take three arguments each:
+# The following is list of overrides that take two arguments each:
 # - lockAttrs: - an attrset from a Nim lockfile, use this for making constraints on the locked library
-# - finalAttrs: - final arguments to the depender package
 # - prevAttrs: - preceding arguments to the depender package
 {
-  jester = lockAttrs: finalAttrs:
+  jester = lockAttrs:
     { buildInputs ? [ ], ... }: {
       buildInputs = buildInputs ++ [ openssl ];
     };
 
-  hts = lockAttrs: finalAttrs:
+  hts = lockAttrs:
     { buildInputs ? [ ], ... }: {
       buildInputs = buildInputs ++ [ htslib ];
     };
 
-  getdns = lockAttrs: finalAttrs:
+  getdns = lockAttrs:
     { nativeBuildInputs ? [ ], buildInputs ? [ ], ... }: {
       nativeBuildInputs = nativeBuildInputs ++ [ pkg-config ];
       buildInputs = buildInputs ++ [ getdns ];
@@ -38,35 +37,35 @@
       "the selected version of the hashlib Nim library is hardware specific"
       # https://github.com/khchen/hashlib/pull/4
       # remove when fixed upstream
-      (_: _: { });
+      (_: { });
 
-  nimraylib_now = lockAttrs: finalAttrs:
+  nimraylib_now = lockAttrs:
     { buildInputs ? [ ], ... }: {
       buildInputs = buildInputs ++ [ raylib ];
     };
 
-  sass = lockAttrs: finalAttrs:
+  sass = lockAttrs:
     { buildInputs ? [ ], ... }: {
       buildInputs = buildInputs ++ [ libsass ];
     };
 
-  sdl2 = lockAttrs: finalAttrs:
+  sdl2 = lockAttrs:
     { buildInputs ? [ ], ... }: {
       buildInputs = buildInputs ++ [ SDL2 ];
     };
 
-  tkrzw = lockAttrs: finalAttrs:
+  tkrzw = lockAttrs:
     { nativeBuildInputs ? [ ], buildInputs ? [ ], ... }: {
       nativeBuildInputs = nativeBuildInputs ++ [ pkg-config ];
       buildInputs = buildInputs ++ [ tkrzw ];
     };
 
-  x11 = lockAttrs: finalAttrs:
+  x11 = lockAttrs:
     { buildInputs ? [ ], ... }: {
       buildInputs = buildInputs ++ (with xorg; [ libX11 libXft libXinerama ]);
     };
 
-  zippy = lockAttrs: finalAttrs:
+  zippy = lockAttrs:
     { nimFlags ? [ ], ... }: {
       nimFlags = nimFlags ++ lib.optionals stdenv.hostPlatform.isx86_64 [
         "--passC:-msse4.1"
diff --git a/pkgs/top-level/nixpkgs-basic-release-checks.nix b/pkgs/top-level/nixpkgs-basic-release-checks.nix
index ea18890903281..8d746001c5d64 100644
--- a/pkgs/top-level/nixpkgs-basic-release-checks.nix
+++ b/pkgs/top-level/nixpkgs-basic-release-checks.nix
@@ -12,7 +12,7 @@ pkgs.runCommand "nixpkgs-release-checks"
     export NIX_STORE_DIR=$TMPDIR/store
     export NIX_STATE_DIR=$TMPDIR/state
     export NIX_PATH=nixpkgs=$TMPDIR/barf.nix
-    opts=(--option build-users-group "")
+    opts=()
     nix-store --init
 
     echo 'abort "Illegal use of <nixpkgs> in Nixpkgs."' > $TMPDIR/barf.nix
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index 74aa545f2b85c..46866fd883610 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -119,6 +119,8 @@ let
 
     bwd = callPackage ../development/ocaml-modules/bwd { };
 
+    bytestring = callPackage ../development/ocaml-modules/bytestring { };
+
     bz2 = callPackage ../development/ocaml-modules/bz2 { };
 
     ### C ###
@@ -231,6 +233,8 @@ let
 
     color = callPackage ../development/ocaml-modules/color { };
 
+    colors = callPackage ../development/ocaml-modules/colors { };
+
     conduit = callPackage ../development/ocaml-modules/conduit { };
 
     conduit-async = callPackage ../development/ocaml-modules/conduit/async.nix { };
@@ -241,6 +245,8 @@ let
 
     conduit-mirage = callPackage ../development/ocaml-modules/conduit/mirage.nix { };
 
+    config = callPackage ../development/ocaml-modules/config { };
+
     config-file = callPackage ../development/ocaml-modules/config-file { };
 
     containers = callPackage ../development/ocaml-modules/containers { };
@@ -474,6 +480,8 @@ let
 
     ezjsonm = callPackage ../development/ocaml-modules/ezjsonm { };
 
+    ezjsonm-encoding = callPackage ../development/ocaml-modules/ezjsonm-encoding { };
+
     ezxmlm = callPackage ../development/ocaml-modules/ezxmlm { };
 
     ### F ###
@@ -600,6 +608,8 @@ let
     github-jsoo = callPackage ../development/ocaml-modules/github/jsoo.nix {  };
     github-unix = callPackage ../development/ocaml-modules/github/unix.nix {  };
 
+    gluon = callPackage ../development/ocaml-modules/gluon { };
+
     gluten = callPackage ../development/ocaml-modules/gluten { };
     gluten-eio = callPackage ../development/ocaml-modules/gluten/eio.nix { };
     gluten-lwt = callPackage ../development/ocaml-modules/gluten/lwt.nix { };
@@ -950,6 +960,8 @@ let
 
     letsencrypt-mirage = callPackage ../development/ocaml-modules/letsencrypt/mirage.nix { };
 
+    libc = callPackage ../development/ocaml-modules/libc { };
+
     lilv = callPackage ../development/ocaml-modules/lilv {
       inherit (pkgs) lilv;
     };
@@ -1038,6 +1050,8 @@ let
 
     mec = callPackage ../development/ocaml-modules/mec { };
 
+    memprof-limits = callPackage ../development/ocaml-modules/memprof-limits { };
+
     memtrace = callPackage ../development/ocaml-modules/memtrace { };
 
     menhir = callPackage ../development/ocaml-modules/menhir { };
@@ -1634,6 +1648,8 @@ let
 
     ringo = callPackage ../development/ocaml-modules/ringo { };
 
+    rio = callPackage ../development/ocaml-modules/rio { };
+
     riot = callPackage ../development/ocaml-modules/riot { };
 
     rock = callPackage ../development/ocaml-modules/rock { };
@@ -1712,6 +1728,8 @@ let
 
     spelll = callPackage ../development/ocaml-modules/spelll { };
 
+    spices = callPackage ../development/ocaml-modules/spices { };
+
     srt = callPackage ../development/ocaml-modules/srt {
       inherit (pkgs) srt;
     };
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 1650193caccdf..5071fff62745d 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -110,7 +110,7 @@ with self; {
     doCheck = false;
 
     meta = {
-      description = "A grep-like tool tailored to working with large trees of source code";
+      description = "Grep-like tool tailored to working with large trees of source code";
       homepage = "https://beyondgrep.com";
       license = with lib.licenses; [ artistic2 ];
     };
@@ -183,7 +183,7 @@ with self; {
       hash = "sha256-qvSEZ3Zd7qbkgFS8fUPkbk1Ay82hZVLGKdN74Jgokwk=";
     };
     meta = {
-      description = "A module for merging hierarchies using the C3 algorithm";
+      description = "Module for merging hierarchies using the C3 algorithm";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -256,7 +256,7 @@ with self; {
     buildInputs = [ Test2Suite ];
     propagatedBuildInputs = [ AlienBuild ArchiveExtract CaptureTiny Filechdir PathTiny ShellConfigGenerate ShellGuess SortVersions URI ];
     meta = {
-      description = "A Module::Build subclass for building Alien:: modules and their libraries";
+      description = "Module::Build subclass for building Alien:: modules and their libraries";
       homepage = "https://metacpan.org/pod/Alien::Base::ModuleBuild";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -505,7 +505,7 @@ with self; {
     };
     buildInputs = [ CanaryStability ];
     meta = {
-      description = "The DBI of event loop programming";
+      description = "DBI of event loop programming";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -586,10 +586,10 @@ with self; {
 
   AnyEventI3 = buildPerlPackage {
     pname = "AnyEvent-I3";
-    version = "0.17";
+    version = "0.19";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MS/MSTPLBG/AnyEvent-I3-0.17.tar.gz";
-      hash = "sha256-U4LJhMnxODlfKfDACvgaoMj0t2VYIFXHPt5LE/BKbWM=";
+      url = "mirror://cpan/authors/id/M/MS/MSTPLBG/AnyEvent-I3-0.19.tar.gz";
+      hash = "sha256-G807YNs9VWAUjeeRNT6K8RciZPWoXncZe5/8BB2sSDo=";
     };
     propagatedBuildInputs = [ AnyEvent JSONXS ];
     meta = {
@@ -607,7 +607,7 @@ with self; {
     };
     propagatedBuildInputs = [ AnyEvent ObjectEvent commonsense ];
     meta = {
-      description = "An event based IRC protocol client API";
+      description = "Event based IRC protocol client API";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -622,7 +622,7 @@ with self; {
     buildInputs = [ FileShareDirInstall TestException ];
     propagatedBuildInputs = [ AnyEvent DevelGlobalDestruction FileShareDir ListMoreUtils NetAMQP Readonly namespaceclean ];
     meta = {
-      description = "An asynchronous and multi channel Perl AMQP client";
+      description = "Asynchronous and multi channel Perl AMQP client";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -729,7 +729,7 @@ with self; {
     };
     buildInputs = [ TestDeep TestException ];
     meta = {
-      description = "A persistence framework for session data";
+      description = "Persistence framework for session data";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -815,7 +815,7 @@ with self; {
     };
     buildInputs = [ TestPod ];
     meta = {
-      description = "A bundle of Perl5 modules for reading configuration files and parsing command line arguments";
+      description = "Bundle of Perl5 modules for reading configuration files and parsing command line arguments";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -872,7 +872,7 @@ with self; {
       shortenPerlShebang $out/bin/cpm
     '';
     meta = {
-      description = "A fast CPAN module installer";
+      description = "Fast CPAN module installer";
       homepage = "https://github.com/skaji/cpm";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.zakame ];
@@ -918,7 +918,7 @@ with self; {
       rm $out/bin/wxchordpro # Wx not supported on darwin
     '';
     meta = {
-      description = "A lyrics and chords formatting program";
+      description = "Lyrics and chords formatting program";
       homepage = "https://www.chordpro.org";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "chordpro";
@@ -938,6 +938,23 @@ with self; {
     };
   };
 
+  Apppapersway = buildPerlPackage rec {
+    pname = "App-papersway";
+    version = "1.001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SP/SPWHITTON/App-papersway-${version}.tar.gz";
+      hash = "sha256-61OMfvEhgwFbNlOFjm9p3QxDOn31jQZdN8i1nIsWlns=";
+    };
+    buildInputs = [ AnyEvent AnyEventI3 GetoptLong JSON ];
+    meta = {
+      description = "PaperWM-like scrollable tiling window management for Sway/i3wm";
+      homepage = "https://spwhitton.name/tech/code/papersway/";
+      license = lib.licenses.gpl3Plus;
+      mainProgram = "papersway";
+      maintainers = with lib.maintainers; [ fgaz ];
+    };
+  };
+
   Appperlbrew = buildPerlModule {
     pname = "App-perlbrew";
     version = "0.98";
@@ -1059,7 +1076,7 @@ with self; {
     propagatedBuildInputs = [ ArchiveLibarchive Filechdir PathTiny RefUtil ];
     meta = {
       homepage = "https://metacpan.org/pod/Archive::Libarchive::Extract";
-      description = "An archive extracting mechanism (using libarchive)";
+      description = "Archive extracting mechanism (using libarchive)";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = with maintainers; [ tomasajt ];
     };
@@ -1123,7 +1140,7 @@ with self; {
     buildInputs = [ TestDeep TestSpec TestTrap ];
     propagatedBuildInputs = [ Moose namespaceautoclean ];
     meta = {
-      description = "A Simple limitable FIFO array, with sum and average methods";
+      description = "Simple limitable FIFO array, with sum and average methods";
       homepage = "https://github.com/dwburke/perl-Array-FIFO";
       license = with lib.licenses; [ artistic2 ];
     };
@@ -1476,7 +1493,7 @@ with self; {
     buildInputs = [ TestNoWarnings ];
     propagatedBuildInputs = [ UnicodeStringprep ];
     meta = {
-      description = "A Stringprep Profile for User Names and Passwords (RFC 4013)";
+      description = "Stringprep Profile for User Names and Passwords (RFC 4013)";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.sgo ];
     };
@@ -2089,7 +2106,7 @@ with self; {
       hash = "sha256-A9lntfgoRpCRN9WrmYSsVwrBCkQB4MYC89IgjEZayYI=";
     };
     meta = {
-      description = "A tiny Perl extension to generate cryptographically-secure random bytes";
+      description = "Tiny Perl extension to generate cryptographically-secure random bytes";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.sgo ];
     };
@@ -2105,7 +2122,7 @@ with self; {
     propagatedBuildInputs = [ DigestSHA1 Error IPCShareLite ];
     doCheck = false; # randomly fails
     meta = {
-      description = "The Cache Interface";
+      description = "Cache Interface";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -2192,7 +2209,7 @@ with self; {
       hash = "sha256-Tni35N0jG1VxpIzQ7htjlT9eNHkMnQIOFZWnx9Crvkk=";
     };
     meta = {
-      description = "A lightweight cache with timed expiration";
+      description = "Lightweight cache with timed expiration";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -2293,7 +2310,7 @@ with self; {
     };
     propagatedBuildInputs = [ HTMLTiny LWP ];
     meta = {
-      description = "A Perl implementation of the reCAPTCHA API";
+      description = "Perl implementation of the reCAPTCHA API";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -2564,7 +2581,7 @@ with self; {
       hash = "sha256-s54zllkDwAWD4BgOPdUopUkg9SB83wUmBcoTgoz6wTw=";
     };
     meta = {
-      description = "The Catalyst developer's manual";
+      description = "Catalyst developer's manual";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -2594,7 +2611,7 @@ with self; {
     buildInputs = [ TestFatal TypeTiny ];
     propagatedBuildInputs = [ CGISimple CGIStruct ClassC3AdoptNEXT DataDump HTTPBody ModulePluggable MooseXEmulateClassAccessorFast MooseXGetopt MooseXMethodAttributes MooseXRoleWithOverloading PathClass PerlIOutf8_strict PlackMiddlewareFixMissingBodyInRedirect PlackMiddlewareMethodOverride PlackMiddlewareRemoveRedundantBody PlackMiddlewareReverseProxy PlackTestExternalServer SafeIsa StringRewritePrefix TaskWeaken TextSimpleTable TreeSimpleVisitorFactory URIws ];
     meta = {
-      description = "The Catalyst Framework Runtime";
+      description = "Catalyst Framework Runtime";
       homepage = "http://dev.catalyst.perl.org";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "catalyst.pl";
@@ -2771,7 +2788,7 @@ with self; {
     buildInputs = [ HTTPMessage Plack SubOverride TestDeep ];
     propagatedBuildInputs = [ CatalystRuntime Moose PrometheusTiny PrometheusTinyShared ];
     meta = {
-      description = "A tiny Prometheus client";
+      description = "Tiny Prometheus client";
       homepage = "https://github.com/robn/Prometheus-Tiny";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -2930,7 +2947,7 @@ with self; {
     };
     buildInputs = [ CatalystRuntime TestLongString TestSimple13 TestWWWMechanize TestWWWMechanizeCatalyst TextCSV XMLSimple ];
     meta = {
-      description = "A view module to help in the convenience of downloading data into many supportable formats";
+      description = "View module to help in the convenience of downloading data into many supportable formats";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -3051,7 +3068,7 @@ with self; {
     propagatedBuildInputs = [ AnyURIEscape AppCmd CGIExpand ConfigOnion CpanelJSONXS DataCompare DataUtil IOHandleUtil LWP ListMoreUtils LogAny MIMETypes ModuleInfo MooXAliases ParserMGC PathIteratorRule PathTiny StringCamelCase TextCSV TextHogan Throwable TryTinyByClass URITemplate UUIDTiny YAMLLibYAML namespaceclean ];
     buildInputs = [ LogAnyAdapterLog4perl LogLog4perl TestDeep TestException TestLWPUserAgent TestPod ];
     meta = {
-      description = "A data toolkit";
+      description = "Data toolkit";
       homepage = "https://github.com/LibreCat/Catmandu";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "catmandu";
@@ -3201,7 +3218,7 @@ with self; {
       hash = "sha256-uU1QghsCYR2m7lQjGTFFB4xNuygvKxYqSw1YCUmXvEc=";
     };
     meta = {
-      description = "A lightweight CGI form processing package";
+      description = "Lightweight CGI form processing package";
       homepage = "https://github.com/JerilynFranz/perl-CGI-Minimal";
       license = with lib.licenses; [ mit ];
     };
@@ -3244,7 +3261,7 @@ with self; {
     };
     buildInputs = [ TestException TestNoWarnings ];
     meta = {
-      description = "A Simple totally OO CGI interface that is CGI.pm compliant";
+      description = "Simple totally OO CGI interface that is CGI.pm compliant";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -3292,7 +3309,7 @@ with self; {
     buildInputs = [ TestWarn ];
     propagatedBuildInputs = [ GD GraphicsToolkitColor ];
     meta = {
-      description = "A series of charting modules";
+      description = "Series of charting modules";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -3405,7 +3422,7 @@ with self; {
       hash = "sha256-dbO47I7+aHZ3tj8KEO75ZuAfYHNcVmVs51y7RMq6M1o=";
     };
     meta = {
-      description = "A minimalistic variant of Class::Accessor";
+      description = "Minimalistic variant of Class::Accessor";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -3446,7 +3463,7 @@ with self; {
     };
     propagatedBuildInputs = [ AlgorithmC3 ];
     meta = {
-      description = "A pragma to use the C3 method resolution order algorithm";
+      description = "Pragma to use the C3 method resolution order algorithm";
       homepage = "https://metacpan.org/release/Class-C3";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -3491,7 +3508,7 @@ with self; {
       hash = "sha256-m2XUG5kVOJkugWsyzE+ptKSguz6cEOfuvv+CZY27yPY=";
     };
     meta = {
-      description = "Simplifies creation, manipulation and usage of complex objects.";
+      description = "Simplifies creation, manipulation and usage of complex objects";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "classgen";
     };
@@ -3668,7 +3685,7 @@ with self; {
       hash = "sha256-p1KK8in6OhIF3NJakd59dKxvp9lSgbmTtV6Lb0+HuZE=";
     };
     meta = {
-      description = "A set of modules to make the module developement easier";
+      description = "Set of modules to make the module developement easier";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -3683,7 +3700,7 @@ with self; {
     # Remove unnecessary, non-autoconf, configure script.
     prePatch = "rm configure";
     meta = {
-      description = "A module for creating generic methods";
+      description = "Module for creating generic methods";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -3769,7 +3786,7 @@ with self; {
       hash = "sha256-3JoR4Nq1bcIg3qjJT+PEfbXn3Xwe0E3IF4qlu3v7vM4=";
     };
     meta = {
-      description = "A minimal lightweight exception class";
+      description = "Minimal lightweight exception class";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -3798,7 +3815,7 @@ with self; {
     buildInputs = [ TestFatal TestNeeds ];
     propagatedBuildInputs = [ DataOptList PackageStash ];
     meta = {
-      description = "A working (require \"Class::Name\") and more";
+      description = "Working (require \"Class::Name\") and more";
       homepage = "https://github.com/moose/Class-Load";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -4042,7 +4059,7 @@ with self; {
     buildInputs = [ TestMost TestWarn TestException TestDeep TestDifferences ModulePluggable ];
     propagatedBuildInputs = [ ClassAccessor ClassDataInheritable ];
     meta = {
-      description = "An easy-to-use and comprehensive named-color library";
+      description = "Easy-to-use and comprehensive named-color library";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -4224,7 +4241,7 @@ with self; {
     };
     propagatedBuildInputs = [ CaptureTiny ];
     meta = {
-      description = "A module to implement some of AutoConf macros in pure perl";
+      description = "Module to implement some of AutoConf macros in pure perl";
       homepage = "https://metacpan.org/release/Config-AutoConf";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -4266,7 +4283,7 @@ with self; {
       hash = "sha256-qLOjosnIxDuS3EAb8nCdZRTxW0Z/1PcsSNNWM1dx1uM=";
     };
     meta = {
-      description = "A grammar-based, user-friendly config parser";
+      description = "Grammar-based, user-friendly config parser";
       homepage = "https://github.com/schweikert/Config-Grammar";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -4312,7 +4329,7 @@ with self; {
     };
     propagatedBuildInputs = [ IOStringy ];
     meta = {
-      description = "A module for reading .ini-style configuration files";
+      description = "Module for reading .ini-style configuration files";
       homepage = "https://metacpan.org/release/Config-IniFiles";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = teams.deshaw.members;
@@ -4374,7 +4391,7 @@ with self; {
     };
     propagatedBuildInputs = [ ConfigINI ConfigMVP ];
     meta = {
-      description = "An MVP config reader for .ini files";
+      description = "MVP config reader for .ini files";
       homepage = "https://github.com/rjbs/Config-MVP-Reader-INI";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -4469,7 +4486,7 @@ with self; {
       rm t/01-builtin-password-scheme.t
     '';
     meta = {
-      description = "A generic connection to a hierarchical-structured data set";
+      description = "Generic connection to a hierarchical-structured data set";
       homepage = "https://github.com/whiterabbitsecurity/connector";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -4667,7 +4684,7 @@ with self; {
     propagatedBuildInputs = [ AnyEvent Guard commonsense ];
     buildInputs = [ CanaryStability ];
     meta = {
-      description = "The only real threads in perl";
+      description = "Only real threads in perl";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -5084,7 +5101,7 @@ with self; {
     propagatedBuildInputs = [ ClassMix ];
     perlPreHook = lib.optionalString (stdenv.isi686 || stdenv.isDarwin) "export LD=$CC";
     meta = {
-      description = "The Eksblowfish block cipher";
+      description = "Eksblowfish block cipher";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -5118,7 +5135,7 @@ with self; {
     '';
 
     meta = {
-      description = "A secure memorable password generator";
+      description = "Secure memorable password generator";
       homepage = "http://www.bartb.ie/hsxkpasswd";
       license = with lib.licenses; [ bsd2 ];
       maintainers = [ maintainers.dannixon ];
@@ -5165,7 +5182,7 @@ with self; {
     };
     propagatedBuildInputs = [ CryptURandom ];
     meta = {
-      description = "A module for managing passwords in a cryptographically agile manner";
+      description = "Module for managing passwords in a cryptographically agile manner";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -5179,7 +5196,7 @@ with self; {
     };
     propagatedBuildInputs = with perlPackages; [ CryptArgon2 CryptPassphrase ];
     meta = {
-      description = "An Argon2 encoder for Crypt::Passphrase";
+      description = "Argon2 encoder for Crypt::Passphrase";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -5193,7 +5210,7 @@ with self; {
     };
     propagatedBuildInputs = [ CryptBcrypt CryptPassphrase ];
     meta = {
-      description = "A bcrypt encoder for Crypt::Passphrase";
+      description = "Bcrypt encoder for Crypt::Passphrase";
       homepage = "https://github.com/Leont/crypt-passphrase-bcrypt";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -5440,7 +5457,7 @@ with self; {
       hash = "sha256-WIFVXWGHlyojgqoNTbLXTJcLBndMYhtspSNzkjbS1QE=";
     };
     meta = {
-      description = "The Twofish Encryption Algorithm";
+      description = "Twofish Encryption Algorithm";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.sgo ];
     };
@@ -5585,7 +5602,7 @@ with self; {
     buildInputs = [ TestFatal ];
     propagatedBuildInputs = [ DigestHMAC DigestSHA3 Moo TypeTiny namespaceautoclean strictures ];
     meta = {
-      description = "The PBKDF2 password hash algorithm";
+      description = "PBKDF2 password hash algorithm";
       homepage = "https://metacpan.org/release/Crypt-PBKDF2";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.sgo ];
@@ -5737,7 +5754,7 @@ with self; {
     };
     propagatedBuildInputs = [ Curses TermReadKey ];
     meta = {
-      description = "A curses based OO user interface framework";
+      description = "Curses based OO user interface framework";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -5823,7 +5840,7 @@ with self; {
     };
     propagatedBuildInputs = [ DataIEEE754 DevelStackTrace ScalarType StringBinaryInterpolation TestDifferences TestException ];
     meta = {
-      description = "A Compact Read Only Database that consumes very little memory";
+      description = "Compact Read Only Database that consumes very little memory";
       license = with lib.licenses; [ artistic1 gpl2Only ];
     };
   };
@@ -6036,7 +6053,7 @@ with self; {
     };
     buildInputs = [ ModuleBuildXSUtil TestRequires ];
     meta = {
-      description = "A grep-like program for searching source code";
+      description = "Grep-like program for searching source code";
       homepage = "https://github.com/msgpack/msgpack-perl";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.sgo ];
@@ -6316,7 +6333,7 @@ with self; {
     buildInputs = [ HashUtilFieldHashCompat ModuleBuildXSUtil ScopeGuard TestException ];
     perlPreHook = lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
     meta = {
-      description = "A selection of utilities for data and data types";
+      description = "Selection of utilities for data and data types";
       homepage = "https://github.com/gfx/Perl-Data-Util";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.DataUtil.x86_64-darwin
@@ -6501,7 +6518,7 @@ with self; {
       hash = "sha256-KaGSYxTOFoGjEtYVXClZDHcd2s+Rt0hYc85EnvIJ3QQ=";
     };
     meta = {
-      description = "A simple date object";
+      description = "Simple date object";
       license = with lib.licenses; [ artistic1 gpl2Plus ];
     };
   };
@@ -6516,7 +6533,7 @@ with self; {
     buildInputs = [ CPANMetaCheck TestFatal TestWarnings TestWithoutModule ];
     propagatedBuildInputs = [ DateTimeLocale DateTimeTimeZone ];
     meta = {
-      description = "A date and time object for Perl";
+      description = "Date and time object for Perl";
       homepage = "https://metacpan.org/release/DateTime";
       license = with lib.licenses; [ artistic2 ];
     };
@@ -6858,7 +6875,7 @@ with self; {
     };
     propagatedBuildInputs = [ ClassISA DevelStackTrace StringUtil TermReadKey TextTabularDisplay TieIxHash ];
     meta = {
-      description = "A collection of handy debugging routines for displaying the values of variables with a minimum of coding";
+      description = "Collection of handy debugging routines for displaying the values of variables with a minimum of coding";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -6958,7 +6975,7 @@ with self; {
     };
     propagatedBuildInputs = [ DevelCheckOS DevelHide TestException TestTime ];
     meta = {
-      description = "A framework for managing deprecations";
+      description = "Framework for managing deprecations";
       homepage = "https://github.com/DrHyde/perl-modules-Devel-Deprecations-Environmental";
       license = with lib.licenses; [ gpl2Only artistic1 ];
     };
@@ -7546,7 +7563,7 @@ with self; {
     };
     buildInputs = [ TestDeep TestException TestPod TestPodCoverage TestWarn ];
     meta = {
-      description = "A pure perl multi-level hash/array DBM that supports transactions";
+      description = "Pure perl multi-level hash/array DBM that supports transactions";
       homepage = "https://github.com/robkinyon/dbm-deep";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -7764,7 +7781,7 @@ with self; {
       hash = "sha256-zTwD7VR9PULGH6WBTJgpYTk5LnlxwJLgmkMfLJ9daFU=";
     };
     meta = {
-      description = "An object representing a stack trace";
+      description = "Object representing a stack trace";
       homepage = "https://metacpan.org/release/Devel-StackTrace";
       license = with lib.licenses; [ artistic2 ];
     };
@@ -7971,7 +7988,7 @@ with self; {
       hash = "sha256-4lGlGrx9m6PnCPc8KqII4J1HoMUo1iVHEPp4zI1ohbU=";
     };
     meta = {
-      description = "A __DIR__ constant for the directory your source file is in";
+      description = "__DIR__ constant for the directory your source file is in";
       homepage = "https://github.com/mauke/Dir-Self";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -8547,7 +8564,7 @@ with self; {
     };
     buildInputs = [ CaptureTiny ];
     meta = {
-      description = "A unified interface to MIME encoding and decoding";
+      description = "Unified interface to MIME encoding and decoding";
       homepage = "https://github.com/rjbs/Email-MIME-Encodings";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -8580,7 +8597,7 @@ with self; {
     preCheck = "rm t/internals.t t/plain_jpeg_attached.t"; # these tests expect EmailMIME version 1.946 and fail with 1.949 (the output difference in benign)
     meta = {
       homepage = "https://www.matijs.net/software/msgconv/";
-      description = "A .MSG to mbox converter";
+      description = ".MSG to mbox converter";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = with maintainers; [ peterhoeg ];
       mainProgram = "msgconvert";
@@ -8604,7 +8621,7 @@ with self; {
       shortenPerlShebang util/sendmail
     '';
     meta = {
-      description = "A library for sending email";
+      description = "Library for sending email";
       homepage = "https://github.com/rjbs/Email-Sender";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -8635,7 +8652,7 @@ with self; {
     buildInputs = [ Moo TestFatal ];
     propagatedBuildInputs = [ EmailMIME EmailSender ModuleRuntime ParamsUtil ];
     meta = {
-      description = "A more casual approach to creating and sending Email:: emails";
+      description = "More casual approach to creating and sending Email:: emails";
       homepage = "https://github.com/rjbs/Email-Stuffer";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = with maintainers; [ sgo ];
@@ -8711,7 +8728,7 @@ with self; {
     };
     nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
     meta = {
-      description = "An Encode::Encoding subclass that detects the encoding of data";
+      description = "Encode::Encoding subclass that detects the encoding of data";
       license = with lib.licenses; [ mpl11 gpl2Plus lgpl2Plus ]; # taken from fedora
     };
   };
@@ -8990,7 +9007,7 @@ with self; {
     };
     propagatedBuildInputs = [ ClassDataInheritable DevelStackTrace ];
     meta = {
-      description = "An Exception Object Class";
+      description = "Exception Object Class";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -9062,7 +9079,7 @@ with self; {
       hash = "sha256-byleLL/7HbwVvbna3DQWccHgzSvfLTErF1Jic8MiY40=";
     };
     meta = {
-      description = "An exporter with the features of Sub::Exporter but only core dependencies";
+      description = "Exporter with the features of Sub::Exporter but only core dependencies";
       homepage = "https://metacpan.org/release/Exporter-Tiny";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -9118,7 +9135,7 @@ with self; {
       hash = "sha256-rlEE9jRlDc6KebftE/tZ1no5whOmd2z9qj7nSeYvGow=";
     };
     meta = {
-      description = "A wrapper for perl's configuration";
+      description = "Wrapper for perl's configuration";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -9179,7 +9196,7 @@ with self; {
     buildInputs = [ pkgs.gfortran ];
     propagatedBuildInputs = [ FileWhich ];
     meta = {
-      description = "A simple interface to F77 libs";
+      description = "Simple interface to F77 libs";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -9234,7 +9251,7 @@ with self; {
     };
     perlPreHook = "export LD=$CC";
     meta = {
-      description = "A tool to build C libraries";
+      description = "Tool to build C libraries";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -9321,7 +9338,7 @@ with self; {
       hash = "sha256-Pfr1g36/3AB4lb/KhMPC521Ymn0zZADo37MkPYGCFd4=";
     };
     meta = {
-      description = "A set of useful typemaps";
+      description = "Set of useful typemaps";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -9411,7 +9428,7 @@ with self; {
       hash = "sha256-4clYwEJCehdeBR4ACPICXo7IBhPTx3UFl7+OUpsEQg4=";
     };
     meta = {
-      description = "A perl-based FastCGI process manager";
+      description = "Perl-based FastCGI process manager";
       license = with lib.licenses; [ gpl2Plus ];
     };
   };
@@ -9569,7 +9586,7 @@ with self; {
       hash = "sha256-Mev5Et9I1daB3vdLmIDXix86ykNRoO0f41cLjgOvbHk=";
     };
     meta = {
-      description = "A more sensible way to change directories";
+      description = "More sensible way to change directories";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -9743,7 +9760,7 @@ with self; {
     buildInputs = [ FileTreeCreate TestFile ];
     propagatedBuildInputs = [ ClassXSAccessor ];
     meta = {
-      description = "An object oriented File::Find replacement";
+      description = "Object oriented File::Find replacement";
       homepage = "https://metacpan.org/release/File-Find-Object";
       license = with lib.licenses; [ artistic2 ];
     };
@@ -10193,7 +10210,7 @@ with self; {
       hash = "sha256-/onLtCfg4F8c2Xwt1tOGasayG8eoVzTt4Vm9w1R5VSo=";
     };
     meta = {
-      description = "Perl extension for filesystem disk space information.";
+      description = "Perl extension for filesystem disk space information";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -10250,7 +10267,7 @@ with self; {
     };
     buildInputs = [ TestWarnings ];
     meta = {
-      description = "A simple, sane and efficient module to slurp a file";
+      description = "Simple, sane and efficient module to slurp a file";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -10263,7 +10280,7 @@ with self; {
       hash = "sha256-RSmVvuq/DpI+Zf3GJ6cl27EsnhDADYAYwW0QumJ1fx4=";
     };
     meta = {
-      description = "A simple, sane and efficient file slurper [DISCOURAGED]";
+      description = "Simple, sane and efficient file slurper [DISCOURAGED]";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -10397,10 +10414,10 @@ with self; {
 
   FinanceQuote = buildPerlPackage rec {
     pname = "Finance-Quote";
-    version = "1.61";
+    version = "1.62";
     src = fetchurl {
       url = "mirror://cpan/authors/id/B/BP/BPSCHUCK/Finance-Quote-${version}.tar.gz";
-      hash = "sha256-Qw7p3yLcqjLrYwpNf7V6KFQvn+UHsmawo39nVLTzWgg=";
+      hash = "sha256-DTEzsL89d5WCxWaFDVd/K76OGsvRFJeDHNQ9jzFgZII=";
     };
     buildInputs = [ DateManip DateRange DateSimple DateTime DateTimeFormatISO8601 StringUtil TestKwalitee TestPerlCritic TestPod TestPodCoverage ];
     propagatedBuildInputs = [ DateManip DateTimeFormatStrptime Encode HTMLTableExtract HTMLTokeParserSimple HTMLTree HTMLTreeBuilderXPath HTTPCookies HTTPCookieJar JSON IOCompress IOString LWPProtocolHttps Readonly StringUtil SpreadsheetXLSX TextTemplate TryTiny WebScraper XMLLibXML libwwwperl ];
@@ -10585,7 +10602,7 @@ with self; {
     buildInputs = [ Test2Suite ];
     propagatedBuildInputs = [ Future ];
     meta = {
-      description = "A FIFO queue of values that uses L<Future>s";
+      description = "FIFO queue of values that uses L<Future>s";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -10805,7 +10822,7 @@ with self; {
     propagatedBuildInputs = [ ArchiveExtract ConfigGitLike DataStreamBulk DateTime FileFindRule IODigest MooseXStrictConstructor MooseXTypesPathClass ];
     doCheck = false;
     meta = {
-      description = "A Pure Perl interface to Git repositories";
+      description = "Pure Perl interface to Git repositories";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -11357,7 +11374,7 @@ with self; {
     };
     propagatedBuildInputs = [ Gtk3 ];
     meta = {
-      description = "A simple interface to Gtk3's complex MVC list widget";
+      description = "Simple interface to Gtk3's complex MVC list widget";
       homepage = "https://github.com/soig/Gtk3-SimpleList";
       license = with lib.licenses; [ lgpl21Plus ];
     };
@@ -11411,7 +11428,7 @@ with self; {
       shortenPerlShebang $out/bin/hailo
     '';
     meta = {
-      description = "A pluggable Markov engine analogous to MegaHAL";
+      description = "Pluggable Markov engine analogous to MegaHAL";
       homepage = "https://hailo.org";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "hailo";
@@ -11521,7 +11538,7 @@ with self; {
     buildInputs = [ TestDeep TestFailWarnings TestFatal ];
     meta = {
       homepage = "https://github.com/dagolden/Hash-Ordered";
-      description = "A fast, pure-Perl ordered hash class";
+      description = "Fast, pure-Perl ordered hash class";
       license = lib.licenses.asl20;
     };
   };
@@ -12134,7 +12151,7 @@ with self; {
     # Broken on Hydra since 2021-06-17: https://hydra.nixos.org/build/146507373
     doCheck = false;
     meta = {
-      description = "A minimalist HTTP user agent cookie jar";
+      description = "Minimalist HTTP user agent cookie jar";
       homepage = "https://github.com/dagolden/HTTP-CookieJar";
       license = with lib.licenses; [ asl20 ];
     };
@@ -12165,7 +12182,7 @@ with self; {
     buildInputs = [ ModuleBuildTiny TestNeeds ];
     propagatedBuildInputs = [ HTTPMessage ];
     meta = {
-      description = "A simple http server class";
+      description = "Simple http server class";
       homepage = "https://github.com/libwww-perl/HTTP-Daemon";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -12240,7 +12257,7 @@ with self; {
       hash = "sha256-qeAP/7PYmRoUqq/dxh1tFoxP8U4xSuPbstTaMAjXRu8=";
     };
     meta = {
-      description = "An XS extension for processing HTTP headers";
+      description = "XS extension for processing HTTP headers";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       broken =
         stdenv.isi686 # loadable library and perl binaries are mismatched (got handshake key 0x7d40080, needed 0x7dc0080)
@@ -12330,7 +12347,7 @@ with self; {
       hash = "sha256-eU5oM+MmsQ0kNp+c2/wWZxBe9lkej0HlYaPUGnAnqAk=";
     };
     meta = {
-      description = "A fast, primitive HTTP request parser";
+      description = "Fast, primitive HTTP request parser";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -12346,7 +12363,7 @@ with self; {
     # tests fail because they require network access
     doCheck = false;
     meta = {
-      description = "A pure Perl HTTP proxy";
+      description = "Pure Perl HTTP proxy";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -12418,7 +12435,7 @@ with self; {
     };
     propagatedBuildInputs = [ HTMLMason HTTPServerSimple HookLexWrap ];
     meta = {
-      description = "A simple mason server";
+      description = "Simple mason server";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -12584,7 +12601,7 @@ with self; {
     };
     buildInputs = [ ModuleBuild ];
     meta = {
-      description = "A library to extract height/width from images";
+      description = "Library to extract height/width from images";
       homepage = "https://search.cpan.org/dist/Image-Size";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "imgsize";
@@ -12831,6 +12848,7 @@ with self; {
       url = "mirror://cpan/authors/id/L/LD/LDS/IO-Interface-1.09.tar.gz";
       hash = "sha256-5j6BxS6x4OYOwtmD9VUtJJPhFxeZJclnV/I8S9n6cTo=";
     };
+    nativeBuildInputs = lib.optionals stdenv.isDarwin [ pkgs.ld-is-cc-hook ];
     meta = {
       description = "Access and modify network interface card configuration";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
@@ -13724,7 +13742,7 @@ with self; {
     propagatedBuildInputs = [ EncodeLocale FileListing HTMLParser HTTPCookieJar HTTPCookies HTTPDate HTTPMessage HTTPNegotiate LWPMediaTypes NetHTTP TryTiny URI WWWRobotRules ];
     meta = {
       homepage = "https://github.com/libwww-perl/libwww-perl";
-      description = "The World-Wide Web library for Perl";
+      description = "World-Wide Web library for Perl";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -14166,7 +14184,7 @@ with self; {
     };
     buildInputs = [ TestInter ];
     meta = {
-      description = "A distribution of modules to handle locale codes";
+      description = "Distribution of modules to handle locale codes";
       homepage = "https://github.com/SBECK-github/Locale-Codes";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -14491,7 +14509,7 @@ with self; {
       hash = "sha256-6JEdM4ePoWmeQ+jQpU7V1WEEA4Z/9cM5+TQQPRfsZLA=";
     };
     meta = {
-      description = "A lightweight, flexible logging framework";
+      description = "Lightweight, flexible logging framework";
       homepage = "https://metacpan.org/release/Log-ger";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.sgo ];
@@ -14607,7 +14625,7 @@ with self; {
     buildInputs = [ TestDeep TestFatal ];
     propagatedBuildInputs = [ LogDispatchArray StringFlogger SubExporterGlobExporter ];
     meta = {
-      description = "A simple wrapper around Log::Dispatch";
+      description = "Simple wrapper around Log::Dispatch";
       homepage = "https://github.com/rjbs/Log-Dispatchouli";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -14678,7 +14696,7 @@ with self; {
     doCheck = !stdenv.isDarwin;
     nativeCheckInputs = [ HTTPDaemon TestFatal TestNeeds TestRequiresInternet ];
     meta = {
-      description = "The World-Wide Web library for Perl";
+      description = "World-Wide Web library for Perl";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -14800,7 +14818,7 @@ with self; {
     };
     propagatedBuildInputs = [ LWP ];
     meta = {
-      description = "A virtual browser that retries errors";
+      description = "Virtual browser that retries errors";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -14964,7 +14982,7 @@ with self; {
     buildInputs = [ FileSlurper TestCompile TestPod TestPodCoverage TextDiff UNIVERSALrequire URI ];
     propagatedBuildInputs = [ FileHandleUnget ];
     meta = {
-      description = "A fast and simple mbox folder reader";
+      description = "Fast and simple mbox folder reader";
       homepage = "https://github.com/coppit/mail-mbox-messageparser";
       license = with lib.licenses; [ gpl2Only ];
       maintainers = with maintainers; [ romildo ];
@@ -15011,7 +15029,7 @@ with self; {
     };
     propagatedBuildInputs = [ ParseRecDescent ];
     meta = {
-      description = "An IMAP Client API";
+      description = "IMAP Client API";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -15094,7 +15112,7 @@ with self; {
 
     doCheck = false; # The main test performs network access
     meta = {
-      description = "An object-oriented implementation of Sender Policy Framework";
+      description = "Object-oriented implementation of Sender Policy Framework";
       license = with lib.licenses; [ bsd3 ];
       mainProgram = "spfquery";
     };
@@ -15641,7 +15659,7 @@ with self; {
     };
     propagatedBuildInputs = [ CPANCommonIndex CPANMetaCheck CaptureTiny ExtUtilsHelpers ExtUtilsInstallPaths Filepushd HTTPTinyish ModuleCPANfile ParsePMFile StringShellQuote Win32ShellQuote locallib ];
     meta = {
-      description = "A CPAN client";
+      description = "CPAN client";
       homepage = "https://github.com/miyagawa/cpanminus";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -15694,7 +15712,7 @@ with self; {
     buildInputs = [ LWPProtocolHttps TestFatal TestNeeds ];
     propagatedBuildInputs = [ IOSocketSSL JSONMaybeXS Moo RefUtil SafeIsa TypeTiny URI ];
     meta = {
-      description = "A comprehensive, DWIM-featured client to the MetaCPAN API";
+      description = "Comprehensive, DWIM-featured client to the MetaCPAN API";
       homepage = "https://github.com/metacpan/metacpan-client";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = with maintainers; [ sgo ];
@@ -15745,7 +15763,7 @@ with self; {
 
     meta = {
       homepage = "https://www.mhonarc.org/";
-      description = "A mail-to-HTML converter";
+      description = "Mail-to-HTML converter";
       mainProgram = "mhonarc";
       license = with lib.licenses; [ gpl2Only ];
     };
@@ -15862,7 +15880,7 @@ with self; {
     };
     propagatedBuildInputs = [ Mojolicious YAMLLibYAML ];
     meta = {
-      description = "A high performance job queue for Perl";
+      description = "High performance job queue for Perl";
       homepage = "https://github.com/mojolicious/minion";
       license = with lib.licenses; [ artistic2 ];
       maintainers = [ maintainers.sgo ];
@@ -16047,7 +16065,7 @@ with self; {
     };
     doCheck = false;
     meta = {
-      description = "A collection of modules removed from Module-Build";
+      description = "Collection of modules removed from Module-Build";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -16109,7 +16127,7 @@ with self; {
     buildInputs = [ FileShareDir ];
     propagatedBuildInputs = [ ExtUtilsHelpers ExtUtilsInstallPaths ];
     meta = {
-      description = "A tiny replacement for Module::Build";
+      description = "Tiny replacement for Module::Build";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -16139,7 +16157,7 @@ with self; {
     propagatedBuildInputs = [ DevelCheckCompiler ];
     perlPreHook = "export LD=$CC";
     meta = {
-      description = "A Module::Build class for building XS modules";
+      description = "Module::Build class for building XS modules";
       homepage = "https://github.com/hideo55/Module-Build-XSUtil";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -16317,7 +16335,7 @@ with self; {
     buildInputs = [ CaptureTiny ];
     propagatedBuildInputs = [ ModuleInstall ];
     meta = {
-      description = "A Module::Install extension to include GitHub meta information in META.yml";
+      description = "Module::Install extension to include GitHub meta information in META.yml";
       homepage = "https://github.com/bingos/module-install-githubmeta";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.sgo ];
@@ -16334,7 +16352,7 @@ with self; {
     buildInputs = [ TestInDistDir ];
     propagatedBuildInputs = [ CaptureTiny IOAll ModuleInstall PodMarkdown ];
     meta = {
-      description = "A Module::Install extension to automatically convert POD to a README";
+      description = "Module::Install extension to automatically convert POD to a README";
       homepage = "https://github.com/bingos/module-install-readmefrompod";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.sgo ];
@@ -16734,7 +16752,7 @@ with self; {
     };
     propagatedBuildInputs = [ Mojolicious ];
     meta = {
-      description = "A plugin for enabling a Mojolicious app to log to syslog";
+      description = "Plugin for enabling a Mojolicious app to log to syslog";
       homepage = "https://github.com/jhthorsen/mojolicious-plugin-syslog";
       license = with lib.licenses; [ artistic2 ];
       maintainers = [ maintainers.sgo ];
@@ -16816,7 +16834,7 @@ with self; {
     buildInputs = [ ModuleBuildTiny ];
     propagatedBuildInputs = [ CryptOpenSSLRSA CryptOpenSSLX509 DataGUID Mojolicious XMLCanonicalizeXML ];
     meta = {
-      description = "A SAML2 toolkit using the Mojo toolkit";
+      description = "SAML2 toolkit using the Mojo toolkit";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.sgo ];
     };
@@ -16832,7 +16850,7 @@ with self; {
     buildInputs = [ ModuleBuildTiny ];
     propagatedBuildInputs = [ DBDSQLite Mojolicious SQLAbstractPg URIdb URI ];
     meta = {
-      description = "A tiny Mojolicious wrapper for SQLite";
+      description = "Tiny Mojolicious wrapper for SQLite";
       homepage = "https://github.com/Grinnz/Mojo-SQLite";
       license = with lib.licenses; [ artistic2 ];
       maintainers = [ maintainers.sgo ];
@@ -17021,7 +17039,7 @@ with self; {
       export LD=$CC
     '';
     meta = {
-      description = "A postmodern object system for Perl 5";
+      description = "Postmodern object system for Perl 5";
       homepage = "http://moose.perl.org";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.eelco ];
@@ -17242,7 +17260,7 @@ with self; {
     buildInputs = [ Moose TestDeepJSON TestWithoutModule DigestHMAC MooseXTypes ];
     propagatedBuildInputs = [ JSON MooseXRoleParameterized MooseXStorage namespaceautoclean ];
     meta = {
-      description = "A format role for MooseX::Storage using JSON.pm";
+      description = "Format role for MooseX::Storage using JSON.pm";
       homepage = "https://github.com/rjbs/MooseX-Storage-Format-JSONpm";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -17319,7 +17337,7 @@ with self; {
     };
     propagatedBuildInputs = [ ConfigAny MouseXConfigFromFile ];
     meta = {
-      description = "A Mouse role for setting attributes from a simple configfile";
+      description = "Mouse role for setting attributes from a simple configfile";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -17427,7 +17445,7 @@ with self; {
     buildInputs = [ TestUseAllModules ];
     propagatedBuildInputs = [ MouseXTypesPathClass ];
     meta = {
-      description = "An abstract Mouse role for setting attributes from a configfile";
+      description = "Abstract Mouse role for setting attributes from a configfile";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -17445,7 +17463,7 @@ with self; {
     buildInputs = [ ModuleBuildTiny MouseXConfigFromFile MouseXSimpleConfig TestException TestWarn ];
     propagatedBuildInputs = [ GetoptLongDescriptive Mouse ];
     meta = {
-      description = "A Mouse role for processing command line options";
+      description = "Mouse role for processing command line options";
       homepage = "https://github.com/gfx/mousex-getopt";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -17506,7 +17524,7 @@ with self; {
     buildInputs = [ ModuleBuildTiny TestDeep TestFatal TestRequires TestWithoutModule ];
     propagatedBuildInputs = [ MooseXTypesPathTiny ];
     meta = {
-      description = "An abstract Moose role for setting attributes from a configfile";
+      description = "Abstract Moose role for setting attributes from a configfile";
       homepage = "https://github.com/moose/MooseX-ConfigFromFile";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -17553,7 +17571,7 @@ with self; {
     buildInputs = [ ModuleBuildTiny MooseXStrictConstructor PathTiny TestDeep TestFatal TestNeeds TestTrap TestWarnings ];
     propagatedBuildInputs = [ GetoptLongDescriptive MooseXRoleParameterized ];
     meta = {
-      description = "A Moose role for processing command line options";
+      description = "Moose role for processing command line options";
       homepage = "https://github.com/moose/MooseX-Getopt";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -17692,7 +17710,7 @@ with self; {
     buildInputs = [ TestFatal ];
     propagatedBuildInputs = [ DevelCaller Moose ParamsValidate ];
     meta = {
-      description = "An extension of Params::Validate using Moose's types";
+      description = "Extension of Params::Validate using Moose's types";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -17799,7 +17817,7 @@ with self; {
     buildInputs = [ TestDeep TestDeepType TestFatal TestNeeds TestDeepJSON TestWithoutModule DigestHMAC MooseXTypes ];
     propagatedBuildInputs = [ ModuleRuntime Moose MooseXRoleParameterized PodCoverage StringRewritePrefix namespaceautoclean IOStringy JSON JSONXS JSONMaybeXS CpanelJSONXS YAML YAMLOld YAMLTiny YAMLLibYAML YAMLSyck ];
     meta = {
-      description = "A serialization framework for Moose classes";
+      description = "Serialization framework for Moose classes";
       homepage = "https://github.com/moose/MooseX-Storage";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -17878,7 +17896,7 @@ with self; {
     buildInputs = [ ModuleBuildTiny TestDeep TestWarnings ];
     propagatedBuildInputs = [ MooseXTypes ];
     meta = {
-      description = "A library of commonly used type constraints";
+      description = "Library of commonly used type constraints";
       homepage = "https://github.com/moose/MooseX-Types-Common";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -17942,7 +17960,7 @@ with self; {
     propagatedBuildInputs = [ MooseXTypes PathClass ];
     buildInputs = [ ModuleBuildTiny TestNeeds ];
     meta = {
-      description = "A Path::Class type library for Moose";
+      description = "Path::Class type library for Moose";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -18216,7 +18234,7 @@ with self; {
     };
     propagatedBuildInputs = [ YAMLLibYAML ];
     meta = {
-      description = "A simple Mustache Renderer";
+      description = "Simple Mustache Renderer";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -18676,7 +18694,7 @@ with self; {
     propagatedBuildInputs = [ BitVector ClassGomor NetIPv6Addr ];
     preCheck = "rm t/13-gethostsubs.t"; # it performs DNS queries
     meta = {
-      description = "The base framework for frame crafting";
+      description = "Base framework for frame crafting";
       license = with lib.licenses; [ artistic1 ];
     };
   };
@@ -18970,7 +18988,7 @@ with self; {
     buildInputs = [ TestWarn ];
     propagatedBuildInputs = [ ClassAccessor ClassDataInheritable DigestHMAC DigestSHA1 LWP ];
     meta = {
-      description = "An implementation of the OAuth protocol";
+      description = "Implementation of the OAuth protocol";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -19091,7 +19109,7 @@ with self; {
     };
     propagatedBuildInputs = [ Coro NetServer ];
     meta = {
-      description = "A co-operative multithreaded server using Coro";
+      description = "Co-operative multithreaded server using Coro";
       license = with lib.licenses; [ mit ];
     };
   };
@@ -19109,7 +19127,7 @@ with self; {
     buildInputs = [ ModuleInstall ];
     propagatedBuildInputs = [ NetServer ServerStarter ];
     meta = {
-      description = "A hot-deployable variant of Net::Server::PreFork";
+      description = "Hot-deployable variant of Net::Server::PreFork";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -19137,7 +19155,7 @@ with self; {
     };
     propagatedBuildInputs = [ DigestHMAC IOSocketSSL ];
     meta = {
-      description = "An SMTP client supporting TLS and AUTH";
+      description = "SMTP client supporting TLS and AUTH";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -19151,7 +19169,7 @@ with self; {
     };
     propagatedBuildInputs = [ DigestHMAC IOSocketSSL ];
     meta = {
-      description = "An SMTP client supporting TLS and AUTH (DEPRECATED, use Net::SMTPS instead)";
+      description = "SMTP client supporting TLS and AUTH (DEPRECATED, use Net::SMTPS instead)";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -19279,7 +19297,7 @@ with self; {
     propagatedBuildInputs = [ JSON LWPProtocolHttps ];
     doCheck = false;
     meta = {
-      description = "A perl API library for the Twitter API";
+      description = "Perl API library for the Twitter API";
       homepage = "https://github.com/semifor/net-twitter-lite";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -19431,7 +19449,7 @@ with self; {
     };
     propagatedBuildInputs = [ DigestHMAC ];
     meta = {
-      description = "An NTLM authentication module";
+      description = "NTLM authentication module";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.pSub ];
     };
@@ -19459,7 +19477,7 @@ with self; {
     };
     propagatedBuildInputs = [ AnyEvent commonsense ];
     meta = {
-      description = "A class that provides an event callback interface";
+      description = "Class that provides an event callback interface";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -19489,7 +19507,7 @@ with self; {
     perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
     propagatedBuildInputs = [ XSParseKeyword XSParseSublike ];
     meta = {
-      description = "A simple syntax for lexical field-based objects";
+      description = "Simple syntax for lexical field-based objects";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.zakame ];
     };
@@ -19560,7 +19578,7 @@ with self; {
     };
     propagatedBuildInputs = [ MojoliciousPluginOpenAPI ];
     meta = {
-      description = "A client for talking to an Open API powered server";
+      description = "Client for talking to an Open API powered server";
       homepage = "https://github.com/jhthorsen/openapi-client";
       license = with lib.licenses; [ artistic2 ];
       maintainers = [ maintainers.sgo ];
@@ -19605,7 +19623,7 @@ with self; {
     };
     propagatedBuildInputs = [ ArchiveZip XMLTwig ];
     meta = {
-      description = "The Perl Open OpenDocument Connector";
+      description = "Perl Open OpenDocument Connector";
       license = with lib.licenses; [ lgpl21Only ];
       maintainers = [ maintainers.wentasah ];
     };
@@ -19785,7 +19803,7 @@ with self; {
     buildInputs = [ TestWarn ];
     propagatedBuildInputs = [ Moo ];
     meta = {
-      description = "A simple parallel processing fork manager";
+      description = "Simple parallel processing fork manager";
       homepage = "https://github.com/dluxhu/perl-parallel-forkmanager";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -19833,7 +19851,7 @@ with self; {
     buildInputs = [ TestRequires TestSharedFork ];
     propagatedBuildInputs = [ ClassAccessorLite ListMoreUtils ProcWait3 ScopeGuard SignalMask ];
     meta = {
-      description = "A simple prefork server framework";
+      description = "Simple prefork server framework";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -20025,7 +20043,7 @@ with self; {
       hash = "sha256-RXsJiX8304pwVPlWMkc2VCf+JBAWIu1MfwVHI6RbWNU=";
     };
     meta = {
-      description = "A parser for the IRC protocol";
+      description = "Parser for the IRC protocol";
       homepage = "https://github.com/bingos/parse-irc";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = with maintainers; [ sgo ];
@@ -20546,7 +20564,7 @@ with self; {
     };
     buildInputs = [ ModuleBuildTiny TestSharedFork TestTCP ];
     meta = {
-      description = "A PerlIO layer that adds read & write timeout to a handle";
+      description = "PerlIO layer that adds read & write timeout to a handle";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -21175,7 +21193,7 @@ with self; {
     };
     buildInputs = [ HTTPMessage Plack TestException TestWarn ];
     meta = {
-      description = "A tiny Prometheus client";
+      description = "Tiny Prometheus client";
       homepage = "https://github.com/robn/Prometheus-Tiny";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -21191,7 +21209,7 @@ with self; {
     buildInputs = [ DataRandom HTTPMessage Plack TestDifferences TestException TestWarn ];
     propagatedBuildInputs = [ HashSharedMem JSONXS PrometheusTiny ];
     meta = {
-      description = "A tiny Prometheus client with a shared database behind it";
+      description = "Tiny Prometheus client with a shared database behind it";
       homepage = "https://github.com/robn/Prometheus-Tiny-Shared";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -21323,7 +21341,7 @@ with self; {
     buildInputs = [ TryTiny ];
     propagatedBuildInputs = [ GetoptLongDescriptive ModulePath Moo ParamsUtil PPI StringRewritePrefix TypeTiny namespaceautoclean ];
     meta = {
-      description = "A tool to scan your Perl code for its prerequisites";
+      description = "Tool to scan your Perl code for its prerequisites";
       homepage = "https://github.com/rjbs/Perl-PrereqScanner";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "scan-perl-prereqs";
@@ -21340,7 +21358,7 @@ with self; {
     propagatedBuildInputs = [ DataDump ModuleCPANfile ModuleFind RegexpTrie URIcpan ];
     buildInputs = [ ExtUtilsMakeMakerCPANfile ParseDistname TestFailWarnings TestUseAllModules ];
     meta = {
-      description = "A tool to scan your Perl code for its prerequisites";
+      description = "Tool to scan your Perl code for its prerequisites";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "scan-perl-prereqs-nqlite";
     };
@@ -21370,7 +21388,7 @@ with self; {
     };
     propagatedBuildInputs = [ IOString TaskWeaken PodParser ];
     meta = {
-      description = "An abstract, tree-based interface to perl POD documents";
+      description = "Abstract, tree-based interface to perl POD documents";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "paf";
     };
@@ -21446,7 +21464,7 @@ with self; {
     buildInputs = [ TestDifferences ];
     propagatedBuildInputs = [ PPI PodElemental ];
     meta = {
-      description = "A thing that takes a string of Perl and rewrites its documentation";
+      description = "Thing that takes a string of Perl and rewrites its documentation";
       homepage = "https://github.com/rjbs/Pod-Elemental-PerlMunger";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -21675,7 +21693,7 @@ with self; {
     propagatedBuildInputs = [ ClassTiny FileShareDir LinguaENInflect PathTiny PodParser ];
     buildInputs = [ FileShareDirInstall TestDeep ];
     meta = {
-      description = "A formatter for spellchecking Pod";
+      description = "Formatter for spellchecking Pod";
       homepage = "https://github.com/perl-pod/Pod-Spell";
       license = with lib.licenses; [ artistic2 ];
       mainProgram = "podspell";
@@ -21706,7 +21724,7 @@ with self; {
     propagatedBuildInputs = [ EncodeNewlines IOString PodWrap TextGlob ];
     buildInputs = [ TestCmd ];
     meta = {
-      description = "A reformatting Pod Processor";
+      description = "Reformatting Pod Processor";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "podtidy";
     };
@@ -22016,7 +22034,7 @@ with self; {
     };
     propagatedBuildInputs = [ LWPProtocolHttps ];
     meta = {
-      description = "A simple client for interacting with RESTful http/https resources";
+      description = "Simple client for interacting with RESTful http/https resources";
       homepage = "https://github.com/milescrawford/cpan-rest-client";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -22089,7 +22107,7 @@ with self; {
     };
     propagatedBuildInputs = [ MooseXRoleParameterized StringErrf ];
     meta = {
-      description = "A thing with a message method";
+      description = "Thing with a message method";
       homepage = "https://github.com/rjbs/Role-HasMessage";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -22120,7 +22138,7 @@ with self; {
     };
     propagatedBuildInputs = [ Moose ];
     meta = {
-      description = "A thing you can identify somehow";
+      description = "Thing you can identify somehow";
       homepage = "https://github.com/rjbs/Role-Identifiable";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -22148,7 +22166,7 @@ with self; {
     };
     propagatedBuildInputs = [ AnyEvent DataSExpression ];
     meta = {
-      description = "An Asynchronous Remote Procedure Stack";
+      description = "Asynchronous Remote Procedure Stack";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -22180,7 +22198,7 @@ with self; {
     propagatedBuildInputs = [ locallib ];
     doCheck = false; /* creates files in HOME */
     meta = {
-      description = "A simple pure perl RSS parser";
+      description = "Simple pure perl RSS parser";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -22388,7 +22406,7 @@ with self; {
       hash = "sha256-05JWfLObTqYGwOCsr9jtcjIDEbmVM27OX878+bFQ6dc=";
     };
     meta = {
-      description = "Linux/POSIX emulation of Win32::SerialPort functions.";
+      description = "Linux/POSIX emulation of Win32::SerialPort functions";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "modemtest";
     };
@@ -22404,7 +22422,7 @@ with self; {
     buildInputs = [ TestRequires TestSharedFork TestTCP ];
     doCheck = false; # Tests are slow and unstable
     meta = {
-      description = "A superdaemon for hot-deploying server programs";
+      description = "Superdaemon for hot-deploying server programs";
       homepage = "https://github.com/kazuho/p5-Server-Starter";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "start_server";
@@ -22629,7 +22647,7 @@ with self; {
       hash = "sha256-7WpMz6sJTJzRZPVkAk6YvSHZT0MSzKxNYkbSKzQIGs8=";
     };
     meta = {
-      description = "The fastest way to sort anything in Perl";
+      description = "Fastest way to sort anything in Perl";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -22642,7 +22660,7 @@ with self; {
       hash = "sha256-v18zB0BuviWBI38CWYLoyE9vZiXdd05FfAP4mU79Lqo=";
     };
     meta = {
-      description = "A perl 5 module for sorting of revision-like numbers";
+      description = "Perl 5 module for sorting of revision-like numbers";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -22853,7 +22871,7 @@ with self; {
       hash = "sha256-+qhpvEJlc2QVNqCfU1AuVA1ePjrWp6oaxiXT9pdrQuE=";
     };
     meta = {
-      description = "A simple SQL tokenizer";
+      description = "Simple SQL tokenizer";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -22925,7 +22943,7 @@ with self; {
     propagatedBuildInputs = [ ParallelPrefork Plack ServerStarter ];
     doCheck = !stdenv.isDarwin;
     meta = {
-      description = "A simple, high-performance PSGI/Plack HTTP server";
+      description = "Simple, high-performance PSGI/Plack HTTP server";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -22962,7 +22980,7 @@ with self; {
     };
     propagatedBuildInputs = [ NumberFormat ];
     meta = {
-      description = "A collection of very basic statistics modules";
+      description = "Collection of very basic statistics modules";
       license = with lib.licenses; [ lgpl2Only ];
     };
   };
@@ -23161,7 +23179,7 @@ with self; {
     buildInputs = [ JSONMaybeXS TimeDate ];
     propagatedBuildInputs = [ StringFormatter ];
     meta = {
-      description = "A simple sprintf-like dialect";
+      description = "Simple sprintf-like dialect";
       homepage = "https://github.com/rjbs/String-Errf";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -23231,7 +23249,7 @@ with self; {
     };
     meta = {
       # https://metacpan.org/pod/String::Interpolate
-      description = "String::Interpolate - Wrapper for builtin the Perl interpolation engine.";
+      description = "String::Interpolate - Wrapper for builtin the Perl interpolation engine";
       license = with lib.licenses; [ gpl1Plus ];
     };
     propagatedBuildInputs = [ PadWalker SafeHole ];
@@ -23388,7 +23406,7 @@ with self; {
     };
     propagatedBuildInputs = [ SubExporter ];
     meta = {
-      description = "A module for when strings are too long to be displayed in...";
+      description = "Module for when strings are too long to be displayed in...";
       homepage = "https://github.com/rjbs/String-Truncate";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -23449,7 +23467,7 @@ with self; {
     };
     propagatedBuildInputs = [ DataOptList ];
     meta = {
-      description = "A sophisticated exporter for custom-built routines";
+      description = "Sophisticated exporter for custom-built routines";
       homepage = "https://github.com/rjbs/Sub-Exporter";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -23638,7 +23656,7 @@ with self; {
     };
     propagatedBuildInputs = [ (pkgs.subversionClient.override { inherit perl; }) ];
     meta = {
-      description = "A simple interface to subversion's editor interface";
+      description = "Simple interface to subversion's editor interface";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -23683,7 +23701,7 @@ with self; {
     };
     doCheck = false;                             # FIXME: 2/293 test failures
     meta = {
-      description = "A switch statement for Perl, do not use if you can use given/when";
+      description = "Switch statement for Perl, do not use if you can use given/when";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -23772,7 +23790,7 @@ with self; {
     propagatedBuildInputs = [ XSParseKeyword ];
     perlPreHook = lib.optionalString (stdenv.isi686 || stdenv.isDarwin) "export LD=$CC";
     meta = {
-      description = "A try/catch/finally syntax for perl";
+      description = "Try/catch/finally syntax for perl";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.zakame ];
     };
@@ -23828,7 +23846,7 @@ with self; {
     buildInputs = lib.optional stdenv.isDarwin pkgs.darwin.apple_sdk.frameworks.Carbon;
     doCheck = !stdenv.isAarch64;
     meta = {
-      description = "Perl extension for getting CPU information. Currently only number of CPU's supported.";
+      description = "Perl extension for getting CPU information. Currently only number of CPU's supported";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -24280,7 +24298,7 @@ with self; {
       perl.perlOnBuild.pkgs.TermReadKey
     ];
     meta = {
-      description = "A perl module for simple terminal control";
+      description = "Perl module for simple terminal control";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -24328,7 +24346,7 @@ with self; {
     outputs = [ "out" ];
 
     meta = {
-      description = "A Term::ReadLine driver based on Term::ReadLine::Perl, with special features for microblogging and the TTYtter client (q.v)";
+      description = "Term::ReadLine driver based on Term::ReadLine::Perl, with special features for microblogging and the TTYtter client (q.v)";
       homepage = "https://www.floodgap.com/software/ttytter";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -24360,7 +24378,7 @@ with self; {
     propagatedBuildInputs = [ TermReadKey TextAutoformat ];
     meta = {
       homepage = "https://metacpan.org/release/Term-Shell";
-      description = "A simple command-line shell framework";
+      description = "Simple command-line shell framework";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -24373,7 +24391,7 @@ with self; {
       hash = "sha256-MnnAHHYiczXu/wkDKkD0sCsoUVGzV2wEys0VvgWUK9s=";
     };
     meta = {
-      description = "A fully-featured shell-like command line environment";
+      description = "Fully-featured shell-like command line environment";
       license = with lib.licenses; [ mit ];
     };
   };
@@ -24454,7 +24472,7 @@ with self; {
       hash = "sha256-+VTgMQlB1FwPw+tKQPXToA1oEZ4nfTA6HmrxHe1vvZQ=";
     };
     meta = {
-      description = "A class to emulate a DEC VT102 terminal";
+      description = "Class to emulate a DEC VT102 terminal";
       license = with lib.licenses; [ artistic2 ];
     };
   };
@@ -24468,7 +24486,7 @@ with self; {
     };
     propagatedBuildInputs = [ TermVT102 ];
     meta = {
-      description = "A Term::VT102 that grows automatically to accommodate whatever you print to it";
+      description = "Term::VT102 that grows automatically to accommodate whatever you print to it";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -24503,7 +24521,7 @@ with self; {
 
     propagatedBuildInputs = [ DataUUID Importer LongJump ScopeGuard TermTable Test2PluginMemUsage Test2PluginUUID Test2Suite YAMLTiny gotofile ];
     meta = {
-      description = "A new and improved test harness with better Test2 integration";
+      description = "New and improved test harness with better Test2 integration";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "yath";
       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.Test2Harness.x86_64-darwin
@@ -24643,7 +24661,7 @@ with self; {
     };
     propagatedBuildInputs = [ LogTrace ];
     meta = {
-      description = "A simple set of building blocks for both unit and runtime testing";
+      description = "Simple set of building blocks for both unit and runtime testing";
       license = with lib.licenses; [ gpl2Only ];
     };
   };
@@ -24674,7 +24692,7 @@ with self; {
     propagatedBuildInputs = [ Spiffy ];
     buildInputs = [ AlgorithmDiff TextDiff ];
     meta = {
-      description = "A Data Driven Testing Framework";
+      description = "Data Driven Testing Framework";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -24880,7 +24898,7 @@ with self; {
     buildInputs = [ TestFatal TestNeeds ];
     propagatedBuildInputs = [ TestDeep TryTiny ];
     meta = {
-      description = "A Test::Deep plugin for validating type constraints";
+      description = "Test::Deep plugin for validating type constraints";
       homepage = "https://github.com/karenetheridge/Test-Deep-Type";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -25011,7 +25029,7 @@ with self; {
     propagatedBuildInputs = [ HTTPDaemon Plack ];
     buildInputs = [ LWP ModuleBuildTiny TestException TestSharedFork TestTCP TestUseAllModules ];
     meta = {
-      description = "A fake HTTP server";
+      description = "Fake HTTP server";
       homepage = "https://github.com/masaki/Test-Fake-HTTPD";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -25228,7 +25246,7 @@ with self; {
     propagatedBuildInputs = [ LWP SafeIsa namespaceclean ];
     buildInputs = [ PathTiny Plack TestDeep TestFatal TestNeeds TestRequiresInternet TestWarnings ];
     meta = {
-      description = "A LWP::UserAgent suitable for simulating and testing network calls";
+      description = "LWP::UserAgent suitable for simulating and testing network calls";
       homepage = "https://github.com/karenetheridge/Test-LWP-UserAgent";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -25876,7 +25894,7 @@ with self; {
     moreInputs = [ TestTrap ]; # Added because tests were failing without it
     doCheck=true;
     meta = {
-      description = "A Test::Run plugin that";
+      description = "Test::Run plugin that";
       homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
       license = with lib.licenses; [ mit ];
     };
@@ -26387,7 +26405,7 @@ with self; {
       hash = "sha256-qhuFhBz5/G/jODZrvIcKTpMEonZB5j+Sof2Wvujr9kw=";
     };
     meta = {
-      description = "An implementation of the Brew edit distance";
+      description = "Implementation of the Brew edit distance";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -27148,7 +27166,7 @@ with self; {
     };
     propagatedBuildInputs = [ DevelStackTrace Moo ];
     meta = {
-      description = "A role for classes that can be thrown";
+      description = "Role for classes that can be thrown";
       homepage = "https://github.com/rjbs/Throwable";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -27163,7 +27181,7 @@ with self; {
     };
     propagatedBuildInputs = [ ClassVirtual enum ];
     meta = {
-      description = "A Least-Recently Used cache";
+      description = "Least-Recently Used cache";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -27312,7 +27330,7 @@ with self; {
       hash = "sha256-KeniEzlRBGx48gXxs+jfYskOEU8OCPoGuBd2ag+AixI=";
     };
     meta = {
-      description = "Variable ties made much easier: much, much, much easier..";
+      description = "Variable ties made much easier: much, much, much easier.";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -27451,7 +27469,7 @@ with self; {
       hash = "sha256-0H+lgFKb6sapyCdMa/IgtMOq3mhd9lwWadUzOb9u8eg=";
     };
     meta = {
-      description = "A Perl module to deal with time periods";
+      description = "Perl module to deal with time periods";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.winpat ];
     };
@@ -27506,7 +27524,7 @@ with self; {
     buildInputs = [ Tk ];
     doCheck = false;            # Expects working X11.
     meta = {
-      description = "A toolbar widget for Perl/Tk";
+      description = "Toolbar widget for Perl/Tk";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -27520,7 +27538,7 @@ with self; {
     };
     propagatedBuildInputs = [ FileSlurpTiny ];
     meta = {
-      description = "An N-ary tree";
+      description = "N-ary tree";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -27534,7 +27552,7 @@ with self; {
     };
     buildInputs = [ TestException ];
     meta = {
-      description = "A simple tree object";
+      description = "Simple tree object";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -27549,7 +27567,7 @@ with self; {
     propagatedBuildInputs = [ TreeSimple ];
     buildInputs = [ TestException ];
     meta = {
-      description = "A factory object for dispensing Visitor objects";
+      description = "Factory object for dispensing Visitor objects";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -28213,7 +28231,7 @@ with self; {
       hash = "sha256-tOR0C41Mt4NZEnPGNr1oMEiS4o2J6Iq/knOx3hf1Uvc=";
     };
     meta = {
-      description = "A generalisation of wantarray";
+      description = "Generalisation of wantarray";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -28419,7 +28437,7 @@ with self; {
     };
     propagatedBuildInputs = [ XMLParser ];
     meta = {
-      description = "A perl module for parsing XML encoding maps";
+      description = "Perl module for parsing XML encoding maps";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -28587,7 +28605,7 @@ with self; {
     };
     propagatedBuildInputs = [ XMLLibXML ];
     meta = {
-      description = "An API for simple XML files";
+      description = "API for simple XML files";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -28629,7 +28647,7 @@ with self; {
       hash = "sha256-R+mVhZ+N0EE6o/ItNQxKYtplLoVCZ6oFhq5USuK65e8=";
     };
     meta = {
-      description = "A simple generic namespace processor";
+      description = "Simple generic namespace processor";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -28650,7 +28668,7 @@ with self; {
     makeMakerFlags = [ "EXPATLIBPATH=${pkgs.expat.out}/lib" "EXPATINCPATH=${pkgs.expat.dev}/include" ];
     propagatedBuildInputs = [ LWP ];
     meta = {
-      description = "A perl module for parsing XML documents";
+      description = "Perl module for parsing XML documents";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -28693,7 +28711,7 @@ with self; {
       hash = "sha256-0v57y70L66FET0pzNAHnuKpSgvrUJm1Cc13XRYKy4mQ=";
     };
     meta = {
-      description = "A re-usable XPath engine for DOM-like trees";
+      description = "Re-usable XPath engine for DOM-like trees";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -28841,7 +28859,7 @@ with self; {
     };
     propagatedBuildInputs = [ XMLSAXExpat ];
     meta = {
-      description = "An API for simple XML files";
+      description = "API for simple XML files";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -28888,7 +28906,7 @@ with self; {
     propagatedBuildInputs = [ XMLParser ];
     doCheck = false;  # requires lots of extra packages
     meta = {
-      description = "A Perl module for processing huge XML documents in tree mode";
+      description = "Perl module for processing huge XML documents in tree mode";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "xml_grep";
     };
@@ -29081,7 +29099,7 @@ with self; {
     propagatedBuildInputs = [ ClassMethodModifiers JSONValidator Mojolicious MojoliciousPluginI18N MojoliciousPluginOpenAPI RoleTiny ];
     meta = {
       homepage = "http://preaction.me/yancy/";
-      description = "The Best Web Framework Deserves the Best CMS";
+      description = "Best Web Framework Deserves the Best CMS";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -29096,7 +29114,7 @@ with self; {
     buildInputs = [ NetHTTP TestFailWarnings TestFatal ];
     propagatedBuildInputs = [ HTTPHeadersActionPack HTTPMessage HashMultiValue IOHandleUtil ModuleRuntime Plack SubExporter TryTiny ];
     meta = {
-      description = "A Perl port of Webmachine";
+      description = "Perl port of Webmachine";
       homepage = "https://metacpan.org/release/Web-Machine";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -29186,7 +29204,7 @@ with self; {
     propagatedBuildInputs = [ ClassAccessor Clone EmailValid FileShareDir FileSlurp IOSocketINET6 ListMoreUtils ModuleFind Moose MooseXSingleton NetIP NetIPXS Readonly TextCSV ZonemasterLDNS libintl-perl ];
 
     meta = {
-      description = "A tool to check the quality of a DNS zone";
+      description = "Tool to check the quality of a DNS zone";
       license = with lib.licenses; [ bsd3 ];
     };
   };
diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix
index c53789ca10fc1..238fcd0dd8d75 100644
--- a/pkgs/top-level/php-packages.nix
+++ b/pkgs/top-level/php-packages.nix
@@ -57,7 +57,7 @@ in {
     php = php.unwrapped;
   };
 
-  inherit (builders.v1) buildComposerProject composerHooks mkComposerRepository;
+  inherit (builders.v1) buildComposerProject buildComposerWithPlugin composerHooks mkComposerRepository;
 
   # Wrap mkDerivation to prepend pname with "php-" to make names consistent
   # with how buildPecl does it and make the file easier to overview.
@@ -191,6 +191,10 @@ in {
 
     composer = callPackage ../development/php-packages/composer { };
 
+    composer-local-repo-plugin = callPackage ../development/php-packages/composer-local-repo-plugin { };
+
+    cyclonedx-php-composer = callPackage ../development/php-packages/cyclonedx-php-composer { };
+
     deployer = callPackage ../development/php-packages/deployer { };
 
     grumphp = callPackage ../development/php-packages/grumphp { };
@@ -616,6 +620,7 @@ in {
             "--enable-soap"
           ];
           doCheck = false;
+          internalDeps = [ php.extensions.session ];
         }
         {
           name = "sockets";
diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix
index 49eec3d93d70f..268595503756b 100644
--- a/pkgs/top-level/python-aliases.nix
+++ b/pkgs/top-level/python-aliases.nix
@@ -36,11 +36,13 @@ mapAliases ({
   abodepy = jaraco-abode; # added 2023-02-01
   acebinf = throw "acebinf has been removed because it is abandoned and broken."; # Added 2023-05-19
   adafruit-nrfutil = throw "adafruit-nrfutil has been promoted to a top-level attribute name: `pkgs.adafruit-nrfutil`."; # Added 2023-11-19
+  aioaladdinconnect = throw "aioaladdinconnect has been removed, as the API is supported was obsoleted on 2024-01-24."; # Added 2024-06-07
   aioh2 = throw "aioh2 has been removed because it is abandoned and broken."; # Added 2022-03-30
   aionotify = throw "aionotify has been removed because is unmaintained and incompatible with python3.11."; # Added 2023-10-27
   aiosenseme = throw "aiosenseme has been removed, because it does no longer work with the latest firmware and has become unmaintained"; # Added 2023-07-05
   aioquic-mitmproxy = throw "aioquic-mitmproxy has been removed because mitmproxy no longer uses it"; # Added 2024-01-16
   amazon_kclpy = amazon-kclpy; # added 2023-08-08
+  ambiclimate = throw "ambiclimate has been removed, because the service has been terminated after 2024-03-31."; # Added 2024-06-07
   ansible-base = throw "ansible-base has been removed, because it is end of life"; # added 2022-03-30
   ansible-doctor = throw "ansible-doctor has been promoted to a top-level attribute name: `pkgs.ansible-doctor`"; # Added 2023-05-16
   ansible-later = throw "ansible-later has been promoted to a top-level attribute name: `pkgs.ansible-later`"; # Added 2023-05-16
@@ -131,15 +133,18 @@ mapAliases ({
   django-hijack-admin = throw "django-hijack-admin has been removed, since it is no longer compatible to django-hijack"; # added 2023-06-21
   django_modelcluster = django-modelcluster; # added 2022-04-02
   django_nose = django-nose; # added 2023-07-25
+  django-nose = throw "django-nose has been removed since it has not been maintained and there are no dependent packages"; # added 2024-05-21
   django_reversion = django-reversion; # added 2022-06-18
   django_polymorphic = django-polymorphic; # added 2022-05-24
   django_redis = django-redis; # added 2021-10-11
   django_silk = django-silk; # added 2023-07-25
+  django-sr = throw "django-sr has been removed since it has been unmaintained for 10 years"; # added 2024-05-26
   django_tagging = django-tagging; # added 2023-07-25
   django_taggit = django-taggit; # added 2021-10-11
   django_treebeard = django-treebeard; # added 2023-07-25
   dns = dnspython; # added 2017-12-10
   docker_pycreds = docker-pycreds; # added 2024-01-03
+  docker-py = throw "docker-py was renamed to docker in version 2.0.0 back in 2016"; # added 2024-05-29
   doctest-ignore-unicode = throw "doctest-ignore-unicode has been removed since it has been unmaintained for 11 years"; # added 2024-05-20
   dogpile_cache = dogpile-cache; # added 2021-10-28
   dogpile-core = throw "dogpile-core is no longer maintained, use dogpile-cache instead"; # added 2021-11-20
@@ -305,8 +310,10 @@ mapAliases ({
   ninja-python = ninja; # add 2022-08-03
   nosejs = throw "nosejs has been removed since it has not been maintained for 15 years and there are no dependent packages"; # added 2024-05-21
   nose-cov = throw "nose-cov has been removed, it was archived and unmaintained since 2012"; # added 2024-05-21
+  nosexcover = throw "nosexcover has been removed since it has not been maintained and there are no dependent packages"; # added 2024-05-21
   nose-cover3 = throw "nose-cover3 has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-02-16
   nose-cprof = throw "nose-cprof has been removed since it has not been maintained for 7 years and there are no dependent packages"; # added 2024-05-21
+  nose-exclude = throw "nose-exclude has been removed since it has not been maintained since 2016"; # added 2024-05-21
   nose-randomly = throw "nose-randomly has been removed, it was archived and unmaintained since 2019"; # added 2024-05-22
   nose_progressive = throw "nose_progressive has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; #added 2023-02-21
   nose_warnings_filters = nose-warnings-filters; # added 2024-01-07
@@ -358,6 +365,7 @@ mapAliases ({
   pychef = throw "pychef has been removed because it's been archived upstream and abandoned since 2017."; # added 2022-11-14
   PyChromecast = pychromecast; # added 2023-02-19
   pycryptodome-test-vectors = throw "pycryptodome-test-vectors has been removed because it is an internal package to pycryptodome"; # added 2022-05-28
+  pyfftw = throw "pyfftw has been removed because it is unmaintained and broken."; # Added 2024-06-17
   pyflunearyou = pyoutbreaksnearme; # added 2023-02-11
   pyialarmxr = pyialarmxr-homeassistant; # added 2022-06-07
   pyialarmxr-homeassistant = throw "The package was removed together with the component support in home-assistant 2022.7.0"; # added 2022-07-07
@@ -388,6 +396,7 @@ mapAliases ({
   pyramid_multiauth = pyramid-multiauth; # added 2023-08-24
   pyreadability = readability-lxml; # added 2022-05-24
   pyres = throw "pyres has been removed, since it is abandoned and broken"; # added 2023-06-20
+  pygeos = throw "pygeos has been removed, since it was merged with shapely 2.0"; # added 2024-05-26
   pyRFC3339 = pyrfc3339; # added 2024-01-07
   pyroute2-core = throw "pyroute2 migrated back to a single package scheme in version 0.7.1"; # added 2022-07-16
   pyroute2-ethtool = throw "pyroute2 migrated back to a single package scheme in version 0.7.1"; # added 2022-07-16
@@ -485,6 +494,7 @@ mapAliases ({
   sapi-python-client = kbcstorage; # added 2022-04-20
   scikitimage = scikit-image; # added 2023-05-14
   scikitlearn = scikit-learn; # added 2021-07-21
+  scikits-samplerate = throw "scikits-samplerate has been removed, it was unsed and unmaintained since 2015"; # added 2024-05-23
   selectors34 = throw "selectors34 has been removed: functionality provided by Python itself; archived by upstream."; # added 2021-06-10
   sequoia = throw "python3Packages.sequoia was replaced by pysequoia - built from a dedicated repository, with a new API."; # added 2023-06-24
   setuptools_dso = setuptools-dso; # added 2024-03-03
@@ -527,6 +537,10 @@ mapAliases ({
   Theano = theano; # added 2023-02-19
   TheanoWithCuda = theanoWithCuda; # added 2023-02-19
   TheanoWithoutCuda = theanoWithoutCuda; # added 2023-02-19
+  theano = throw "theano has been removed because it is no longer maintained"; # added 2024-05-20
+  theanoWithCuda = throw "theano has been removed because it is no longer maintained"; # added 2024-05-20
+  theanoWithoutCuda = throw "theano has been removed because it is no longer maintained"; # added 2024-05-20
+  theano-pymc = throw "theano-pymc has been removed because it is no longer maintained"; # added 2024-05-20
   thumborPexif = throw "thumborPexif has been removed, because it was unused."; # added 2024-01-07
   torchgpipe = throw "torchgpipe has been removed, because it appears unmaintained and Pytorch now includes pipeline parallelism support"; # added 2024-05-18
   torrent_parser = torrent-parser; # added 2023-11-04
@@ -569,6 +583,7 @@ mapAliases ({
   zc_buildout_nix = throw "zc_buildout_nix was pinned to a version no longer compatible with other modules";
   zc-buildout221 = zc-buildout; # added 2021-07-21
   zc_lockfile = zc-lockfile; # added 2024-01-06
+  zipstream = throw "zipstream has been removed, because it has been unmaintained for 6 years and there are no dependent packages"; # added 2024-05-26
   zipstream-new = throw "zipstream-new has been removed, because it  was packaged as a dependency for octoprint, which has switched to zipstream-ng since."; # added 2024-01-05
   zope_broken = throw "zope_broken has been removed because it is obsolete and not needed in zodb>=3.10"; # added 2023-07-26
   zope_component = zope-component; # added 2023-07-28
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 150965f1d2052..b5d918e640c63 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -153,8 +153,6 @@ self: super: with self; {
 
   aioairq = callPackage ../development/python-modules/aioairq { };
 
-  aioaladdinconnect = callPackage ../development/python-modules/aioaladdinconnect { };
-
   aioambient = callPackage ../development/python-modules/aioambient { };
 
   aioapcaccess = callPackage ../development/python-modules/aioapcaccess { };
@@ -249,6 +247,8 @@ self: super: with self; {
 
   aiohttp-fast-url-dispatcher = callPackage ../development/python-modules/aiohttp-fast-url-dispatcher { };
 
+  aiohttp-fast-zlib = callPackage ../development/python-modules/aiohttp-fast-zlib { };
+
   aiohttp-isal = callPackage ../development/python-modules/aiohttp-isal { };
 
   aiohttp-jinja2 = callPackage ../development/python-modules/aiohttp-jinja2 { };
@@ -463,6 +463,8 @@ self: super: with self; {
 
   aiozeroconf = callPackage ../development/python-modules/aiozeroconf { };
 
+  aiozoneinfo = callPackage ../development/python-modules/aiozoneinfo { };
+
   airium = callPackage ../development/python-modules/airium { };
 
   airly = callPackage ../development/python-modules/airly { };
@@ -539,8 +541,6 @@ self: super: with self; {
 
   amberelectric = callPackage ../development/python-modules/amberelectric { };
 
-  ambiclimate = callPackage ../development/python-modules/ambiclimate { };
-
   amcrest = callPackage ../development/python-modules/amcrest { };
 
   amiibo-py = callPackage ../development/python-modules/amiibo-py { };
@@ -1005,6 +1005,8 @@ self: super: with self; {
 
   autoslot = callPackage ../development/python-modules/autoslot { };
 
+  autotrash = callPackage ../development/python-modules/autotrash { };
+
   avahi = toPythonModule (pkgs.avahi.override {
     inherit python;
     withPython = true;
@@ -1328,6 +1330,17 @@ self: super: with self; {
 
   babelgladeextractor = callPackage ../development/python-modules/babelgladeextractor { };
 
+  babeltrace = toPythonModule (pkgs.babeltrace.override {
+    pythonPackages = self;
+    enablePython = true;
+  });
+
+  babeltrace2 = toPythonModule (pkgs.babeltrace2.override {
+    inherit (self) python;
+    pythonPackages = self;
+    enablePython = true;
+  });
+
   bambi = callPackage ../development/python-modules/bambi { };
 
   pad4pi = callPackage ../development/python-modules/pad4pi { };
@@ -1501,6 +1514,8 @@ self: super: with self; {
 
   bentoml = callPackage ../development/python-modules/bentoml { };
 
+  berkeleydb = callPackage ../development/python-modules/berkeleydb { };
+
   bespon = callPackage ../development/python-modules/bespon { };
 
   betacode = callPackage ../development/python-modules/betacode { };
@@ -1523,6 +1538,8 @@ self: super: with self; {
 
   biliass = callPackage ../development/python-modules/biliass { };
 
+  bilibili-api-python = callPackage ../development/python-modules/bilibili-api-python { };
+
   billiard = callPackage ../development/python-modules/billiard { };
 
   bimmer-connected = callPackage ../development/python-modules/bimmer-connected { };
@@ -1941,6 +1958,8 @@ self: super: with self; {
 
   cashaddress = callPackage ../development/python-modules/cashaddress { };
 
+  cashews = callPackage ../development/python-modules/cashews {  };
+
   cassandra-driver = callPackage ../development/python-modules/cassandra-driver { };
 
   castepxbin = callPackage ../development/python-modules/castepxbin { };
@@ -2200,6 +2219,8 @@ self: super: with self; {
 
   clf = callPackage ../development/python-modules/clf { };
 
+  cli-ui = callPackage ../development/python-modules/cli-ui { };
+
   clip = callPackage ../development/python-modules/clip { };
 
   clip-anytorch = callPackage ../development/python-modules/clip-anytorch { };
@@ -2358,6 +2379,8 @@ self: super: with self; {
 
   collidoscope = callPackage ../development/python-modules/collidoscope { };
 
+  color-operations = callPackage ../development/python-modules/color-operations { };
+
   colorama = callPackage ../development/python-modules/colorama { };
 
   colorcet = callPackage ../development/python-modules/colorcet { };
@@ -2563,6 +2586,8 @@ self: super: with self; {
 
   crontab = callPackage ../development/python-modules/crontab { };
 
+  crossandra = callPackage ../development/python-modules/crossandra { };
+
   crossplane = callPackage ../development/python-modules/crossplane { };
 
   crownstone-cloud = callPackage ../development/python-modules/crownstone-cloud { };
@@ -2615,6 +2640,8 @@ self: super: with self; {
 
   cstruct = callPackage ../development/python-modules/cstruct { };
 
+  csv2md = callPackage ../development/python-modules/csv2md { };
+
   csvw = callPackage ../development/python-modules/csvw { };
 
   ctap-keyring-device = callPackage ../development/python-modules/ctap-keyring-device { };
@@ -2644,6 +2671,8 @@ self: super: with self; {
 
   curve25519-donna = callPackage ../development/python-modules/curve25519-donna { };
 
+  curvefitgui = callPackage ../development/python-modules/curvefitgui { };
+
   cvelib = callPackage ../development/python-modules/cvelib { };
 
   cvss = callPackage ../development/python-modules/cvss { };
@@ -2670,6 +2699,8 @@ self: super: with self; {
 
   cyclonedx-python-lib = callPackage ../development/python-modules/cyclonedx-python-lib { };
 
+  cyclopts = callPackage ../development/python-modules/cyclopts { };
+
   cymem = callPackage ../development/python-modules/cymem { };
 
   cypari2 = callPackage ../development/python-modules/cypari2 { };
@@ -2694,6 +2725,8 @@ self: super: with self; {
 
   daff = callPackage ../development/python-modules/daff { };
 
+  dahlia = callPackage ../development/python-modules/dahlia { };
+
   daiquiri = callPackage ../development/python-modules/daiquiri { };
 
   dalle-mini = callPackage ../development/python-modules/dalle-mini { };
@@ -2708,6 +2741,8 @@ self: super: with self; {
 
   dash = callPackage ../development/python-modules/dash { };
 
+  dash-bootstrap-components = callPackage ../development/python-modules/dash-bootstrap-components { };
+
   dash-core-components = callPackage ../development/python-modules/dash-core-components { };
 
   dash-html-components = callPackage ../development/python-modules/dash-html-components { };
@@ -2924,6 +2959,8 @@ self: super: with self; {
 
   deltachat = callPackage ../development/python-modules/deltachat { };
 
+  deltachat2 = callPackage ../development/python-modules/deltachat2 { };
+
   deluge-client = callPackage ../development/python-modules/deluge-client { };
 
   demes = callPackage ../development/python-modules/demes { };
@@ -3276,8 +3313,6 @@ self: super: with self; {
 
   django-ninja = callPackage ../development/python-modules/django-ninja { };
 
-  django-nose = callPackage ../development/python-modules/django-nose { };
-
   django-oauth-toolkit = callPackage ../development/python-modules/django-oauth-toolkit { };
 
   django-otp = callPackage ../development/python-modules/django-otp { };
@@ -3318,6 +3353,8 @@ self: super: with self; {
 
   django-ranged-response = callPackage ../development/python-modules/django-ranged-response { };
 
+  django-ratelimit = callPackage ../development/python-modules/django-ratelimit { };
+
   django-raster = callPackage ../development/python-modules/django-raster { };
 
   django-redis = callPackage ../development/python-modules/django-redis { };
@@ -3362,8 +3399,6 @@ self: super: with self; {
 
   django-sites = callPackage ../development/python-modules/django-sites { };
 
-  django-sr = callPackage ../development/python-modules/django-sr { };
-
   django-statici18n = callPackage ../development/python-modules/django-statici18n { };
 
   django-storages = callPackage ../development/python-modules/django-storages { };
@@ -3466,8 +3501,6 @@ self: super: with self; {
 
   docker-pycreds = callPackage ../development/python-modules/docker-pycreds { };
 
-  docker-py = callPackage ../development/python-modules/docker-py { };
-
   dockerspawner = callPackage ../development/python-modules/dockerspawner { };
 
   docloud = callPackage ../development/python-modules/docloud { };
@@ -3576,6 +3609,8 @@ self: super: with self; {
 
   dropmqttapi = callPackage ../development/python-modules/dropmqttapi { };
 
+  dscribe  = callPackage ../development/python-modules/dscribe { };
+
   ds-store = callPackage ../development/python-modules/ds-store { };
 
   ds4drv = callPackage ../development/python-modules/ds4drv { };
@@ -4528,6 +4563,8 @@ self: super: with self; {
 
   frelatage = callPackage ../development/python-modules/frelatage { };
 
+  freud = callPackage ../development/python-modules/freud { };
+
   frida-python = callPackage ../development/python-modules/frida-python { };
 
   frigidaire = callPackage ../development/python-modules/frigidaire { };
@@ -4689,6 +4726,8 @@ self: super: with self; {
 
   generic = callPackage ../development/python-modules/generic { };
 
+  genie-partner-sdk = callPackage ../development/python-modules/genie-partner-sdk { };
+
   geniushub-client = callPackage ../development/python-modules/geniushub-client { };
 
   genome-collector = callPackage ../development/python-modules/genome-collector { };
@@ -4709,6 +4748,8 @@ self: super: with self; {
 
   geocoder = callPackage ../development/python-modules/geocoder { };
 
+  geodatasets = callPackage ../development/python-modules/geodatasets { };
+
   geographiclib = callPackage ../development/python-modules/geographiclib { };
 
   geoip2 = callPackage ../development/python-modules/geoip2 { };
@@ -4802,6 +4843,8 @@ self: super: with self; {
 
   git-filter-repo = callPackage ../development/python-modules/git-filter-repo { };
 
+  git-find-repos = callPackage ../development/python-modules/git-find-repos { };
+
   git-revise = callPackage ../development/python-modules/git-revise { };
 
   git-sweep = callPackage ../development/python-modules/git-sweep { };
@@ -4874,6 +4917,8 @@ self: super: with self; {
 
   goodwe = callPackage ../development/python-modules/goodwe { };
 
+  gophish = callPackage ../development/python-modules/gophish { };
+
   google = callPackage ../development/python-modules/google { };
 
   google-ai-generativelanguage = callPackage ../development/python-modules/google-ai-generativelanguage { };
@@ -5278,6 +5323,8 @@ self: super: with self; {
 
   hahomematic = callPackage ../development/python-modules/hahomematic { };
 
+  hakuin = callPackage ../development/python-modules/hakuin { };
+
   halo = callPackage ../development/python-modules/halo { };
 
   halohome = callPackage ../development/python-modules/halohome { };
@@ -5298,6 +5345,8 @@ self: super: with self; {
 
   hatch-jupyter-builder = callPackage ../development/python-modules/hatch-jupyter-builder { };
 
+  hatch-odoo = callPackage ../development/python-modules/hatch-odoo { };
+
   hatch-vcs = callPackage ../development/python-modules/hatch-vcs { };
 
   hatch-nodejs-version = callPackage ../development/python-modules/hatch-nodejs-version { };
@@ -5763,6 +5812,8 @@ self: super: with self; {
 
   indexed-zstd = callPackage ../development/python-modules/indexed-zstd { inherit (pkgs) zstd; };
 
+  inequality = callPackage ../development/python-modules/inequality { };
+
   infinity = callPackage ../development/python-modules/infinity { };
 
   inflect = callPackage ../development/python-modules/inflect { };
@@ -5789,6 +5840,8 @@ self: super: with self; {
 
   inkex = callPackage ../development/python-modules/inkex { };
 
+  inline-snapshot = callPackage ../development/python-modules/inline-snapshot { };
+
   inlinestyler = callPackage ../development/python-modules/inlinestyler { };
 
   inotify = callPackage ../development/python-modules/inotify { };
@@ -5965,6 +6018,8 @@ self: super: with self; {
 
   iterative-telemetry = callPackage ../development/python-modules/iterative-telemetry { };
 
+  iterfzf = callPackage ../development/python-modules/iterfzf { };
+
   iterm2 = callPackage ../development/python-modules/iterm2 { };
 
   itsdangerous = callPackage ../development/python-modules/itsdangerous { };
@@ -5975,6 +6030,8 @@ self: super: with self; {
 
   iwlib = callPackage ../development/python-modules/iwlib { };
 
+  ixia = callPackage ../development/python-modules/ixia { };
+
   j2cli = callPackage ../development/python-modules/j2cli { };
 
   jaconv = callPackage ../development/python-modules/jaconv { };
@@ -6467,6 +6524,8 @@ self: super: with self; {
 
   langchain = callPackage ../development/python-modules/langchain { };
 
+  langchain-chroma = callPackage ../development/python-modules/langchain-chroma { };
+
   langchain-community = callPackage ../development/python-modules/langchain-community { };
 
   langchain-core = callPackage ../development/python-modules/langchain-core { };
@@ -6477,6 +6536,8 @@ self: super: with self; {
 
   langdetect = callPackage ../development/python-modules/langdetect { };
 
+  langfuse = callPackage ../development/python-modules/langfuse { };
+
   langid = callPackage ../development/python-modules/langid { };
 
   langsmith = callPackage ../development/python-modules/langsmith { };
@@ -6493,10 +6554,13 @@ self: super: with self; {
 
   laszip = callPackage ../development/python-modules/laszip {
     inherit (pkgs) cmake ninja;
+    inherit (pkgs.__splicedPackages) laszip;
   };
 
   latex2mathml = callPackage ../development/python-modules/latex2mathml { };
 
+  latex2pydata = callPackage ../development/python-modules/latex2pydata { };
+
   latexcodec = callPackage ../development/python-modules/latexcodec { };
 
   latexify-py = callPackage ../development/python-modules/latexify-py { };
@@ -6680,6 +6744,11 @@ self: super: with self; {
     inherit (pkgs) libsodium;
   };
 
+  libnbd = toPythonModule (pkgs.libnbd.override {
+    buildPythonBindings = true;
+    python3 = python;
+  });
+
   libpcap = callPackage ../development/python-modules/libpcap {
     pkgsLibpcap = pkgs.libpcap; # Needs the C library
   };
@@ -6688,6 +6757,8 @@ self: super: with self; {
 
   libpyfoscam = callPackage ../development/python-modules/libpyfoscam { };
 
+  libpysal = callPackage ../development/python-modules/libpysal { };
+
   libpyvivotek = callPackage ../development/python-modules/libpyvivotek { };
 
   libpwquality = lib.pipe pkgs.libpwquality [
@@ -6939,6 +7010,8 @@ self: super: with self; {
 
   llm = callPackage ../development/python-modules/llm { };
 
+  llmx = callPackage ../development/python-modules/llmx { };
+
   llvmlite = callPackage ../development/python-modules/llvmlite {
     # llvmlite always requires a specific version of llvm.
     llvm = pkgs.llvm_14;
@@ -7002,6 +7075,8 @@ self: super: with self; {
 
   loguru = callPackage ../development/python-modules/loguru { };
 
+  loguru-logging-intercept = callPackage ../development/python-modules/loguru-logging-intercept { };
+
   logutils = callPackage ../development/python-modules/logutils {
     redis-server = pkgs.redis;
   };
@@ -7028,6 +7103,8 @@ self: super: with self; {
 
   lsprotocol = callPackage ../development/python-modules/lsprotocol { };
 
+  lsp-tree-sitter = callPackage ../development/python-modules/lsp-tree-sitter { };
+
   ltpycld2 = callPackage ../development/python-modules/ltpycld2 { };
 
   lttng = callPackage ../development/python-modules/lttng { };
@@ -7168,6 +7245,8 @@ self: super: with self; {
 
   mapbox-earcut = callPackage ../development/python-modules/mapbox-earcut { };
 
+  mapclassify = callPackage ../development/python-modules/mapclassify { };
+
   mariadb = callPackage ../development/python-modules/mariadb { };
 
   marimo = callPackage ../development/python-modules/marimo { };
@@ -7232,6 +7311,8 @@ self: super: with self; {
 
   matplotlib-sixel = callPackage ../development/python-modules/matplotlib-sixel { };
 
+  matplotlib-venn = callPackage ../development/python-modules/matplotlib-venn { };
+
   matplotx = callPackage ../development/python-modules/matplotx { };
 
   matrix-api-async = callPackage ../development/python-modules/matrix-api-async { };
@@ -7626,10 +7707,14 @@ self: super: with self; {
 
   mohawk = callPackage ../development/python-modules/mohawk { };
 
+  molbar = callPackage ../development/python-modules/molbar { };
+
   molecule = callPackage ../development/python-modules/molecule { };
 
   molecule-plugins = callPackage ../development/python-modules/molecule/plugins.nix { };
 
+  momepy = callPackage ../development/python-modules/momepy { };
+
   monai = callPackage ../development/python-modules/monai { };
 
   monai-deploy = callPackage ../development/python-modules/monai-deploy { };
@@ -7667,6 +7752,8 @@ self: super: with self; {
 
   more-properties = callPackage ../development/python-modules/more-properties { };
 
+  morecantile = callPackage ../development/python-modules/morecantile { };
+
   moreorless = callPackage ../development/python-modules/moreorless { };
 
   moretools = callPackage ../development/python-modules/moretools { };
@@ -8583,6 +8670,8 @@ self: super: with self; {
 
   names = callPackage ../development/python-modules/names { };
 
+  namex = callPackage ../development/python-modules/namex { };
+
   name-that-hash = callPackage ../development/python-modules/name-that-hash { };
 
   nameko = callPackage ../development/python-modules/nameko { };
@@ -8599,8 +8688,12 @@ self: super: with self; {
 
   natasha = callPackage ../development/python-modules/natasha { };
 
+  natural = callPackage ../development/python-modules/natural { };
+
   nomadnet = callPackage ../development/python-modules/nomadnet { };
 
+  noneprompt = callPackage ../development/python-modules/noneprompt {  };
+
   nox = callPackage ../development/python-modules/nox { };
 
   nanomsg-python = callPackage ../development/python-modules/nanomsg-python {
@@ -8859,8 +8952,6 @@ self: super: with self; {
 
   nose3 = callPackage ../development/python-modules/nose3 { };
 
-  nose-exclude = callPackage ../development/python-modules/nose-exclude { };
-
   nose-timer = callPackage ../development/python-modules/nose-timer { };
 
   nose-pattern-exclude = callPackage ../development/python-modules/nose-pattern-exclude { };
@@ -8869,8 +8960,6 @@ self: super: with self; {
 
   nose-xunitmp = callPackage ../development/python-modules/nose-xunitmp { };
 
-  nosexcover = callPackage ../development/python-modules/nosexcover { };
-
   notebook = callPackage ../development/python-modules/notebook { };
 
   notebook-shim = callPackage ../development/python-modules/notebook-shim { };
@@ -8961,6 +9050,8 @@ self: super: with self; {
 
   nxt-python = callPackage ../development/python-modules/nxt-python { };
 
+  plugp100 = callPackage ../development/python-modules/plugp100 {};
+
   python-ndn = callPackage ../development/python-modules/python-ndn { };
 
   python-nvd3 = callPackage ../development/python-modules/python-nvd3 { };
@@ -9365,6 +9456,8 @@ self: super: with self; {
 
   outcome = callPackage ../development/python-modules/outcome { };
 
+  outspin = callPackage ../development/python-modules/outspin { };
+
   ovh = callPackage ../development/python-modules/ovh { };
 
   ovmfvartool = callPackage ../development/python-modules/ovmfvartool { };
@@ -9427,6 +9520,8 @@ self: super: with self; {
 
   panphon = callPackage ../development/python-modules/panphon { };
 
+  paperbush = callPackage ../development/python-modules/paperbush { };
+
   papermill = callPackage ../development/python-modules/papermill { };
 
   openpaperwork-core = callPackage ../applications/office/paperwork/openpaperwork-core.nix { };
@@ -9926,6 +10021,8 @@ self: super: with self; {
 
   pycrdt-websocket = callPackage ../development/python-modules/pycrdt-websocket { };
 
+  pycycling = callPackage ../development/python-modules/pycycling { };
+
   pyfibaro = callPackage ../development/python-modules/pyfibaro { };
 
   pyfireservicerota = callPackage ../development/python-modules/pyfireservicerota { };
@@ -9994,6 +10091,8 @@ self: super: with self; {
 
   pynx584 = callPackage ../development/python-modules/pynx584 { };
 
+  pyogrio = callPackage ../development/python-modules/pyogrio { };
+
   pyorthanc = callPackage ../development/python-modules/pyorthanc { };
 
   pyoutbreaksnearme = callPackage ../development/python-modules/pyoutbreaksnearme { };
@@ -10012,12 +10111,16 @@ self: super: with self; {
 
   pyrender = callPackage ../development/python-modules/pyrender { };
 
+  pyreqwest-impersonate = callPackage ../development/python-modules/pyreqwest-impersonate { };
+
   pyrevolve = callPackage ../development/python-modules/pyrevolve { };
 
   pyrfxtrx = callPackage ../development/python-modules/pyrfxtrx { };
 
   pyrogram = callPackage ../development/python-modules/pyrogram { };
 
+  pyrympro = callPackage ../development/python-modules/pyrympro { };
+
   pysabnzbd = callPackage ../development/python-modules/pysabnzbd { };
 
   pysbd = callPackage ../development/python-modules/pysbd { };
@@ -10042,6 +10145,8 @@ self: super: with self; {
 
   pysolcast = callPackage ../development/python-modules/pysolcast { };
 
+  pystac = callPackage ../development/python-modules/pystac { };
+
   pysubs2 = callPackage ../development/python-modules/pysubs2 { };
 
   pysuez = callPackage ../development/python-modules/pysuez { };
@@ -10979,8 +11084,6 @@ self: super: with self; {
 
   pyfcm = callPackage ../development/python-modules/pyfcm { };
 
-  pyfftw = callPackage ../development/python-modules/pyfftw { };
-
   pyfido = callPackage ../development/python-modules/pyfido { };
 
   pyfiglet = callPackage ../development/python-modules/pyfiglet { };
@@ -11044,8 +11147,6 @@ self: super: with self; {
 
   pygeoip = callPackage ../development/python-modules/pygeoip { };
 
-  pygeos = callPackage ../development/python-modules/pygeos { };
-
   pygetwindow = callPackage ../development/python-modules/pygetwindow { };
 
   pygit2 = callPackage ../development/python-modules/pygit2 { };
@@ -11491,6 +11592,8 @@ self: super: with self; {
 
   pyopenuv = callPackage ../development/python-modules/pyopenuv { };
 
+  pyopenweathermap = callPackage ../development/python-modules/pyopenweathermap { };
+
   pyopnsense = callPackage ../development/python-modules/pyopnsense { };
 
   pyoppleio = callPackage ../development/python-modules/pyoppleio { };
@@ -12655,6 +12758,8 @@ self: super: with self; {
 
   pytube = callPackage ../development/python-modules/pytube { };
 
+  pytubefix = callPackage ../development/python-modules/pytubefix { };
+
   pytun = callPackage ../development/python-modules/pytun { };
 
   pyturbojpeg = callPackage ../development/python-modules/pyturbojpeg { };
@@ -12780,7 +12885,7 @@ self: super: with self; {
   pywizlight = callPackage ../development/python-modules/pywizlight { };
 
   pywlroots = callPackage ../development/python-modules/pywlroots {
-    wlroots = pkgs.wlroots_0_16;
+    wlroots = pkgs.wlroots_0_17;
   };
 
   pyws66i = callPackage ../development/python-modules/pyws66i { };
@@ -12883,6 +12988,8 @@ self: super: with self; {
 
   qrcode = callPackage ../development/python-modules/qrcode { };
 
+  qrcode-terminal = callPackage ../development/python-modules/qrcode-terminal { };
+
   qreactor = callPackage ../development/python-modules/qreactor { };
 
   qscintilla-qt5 = pkgs.libsForQt5.callPackage ../development/python-modules/qscintilla-qt5 {
@@ -12906,7 +13013,7 @@ self: super: with self; {
   qtconsole = callPackage ../development/python-modules/qtconsole { };
 
   qtile = callPackage ../development/python-modules/qtile {
-    wlroots = pkgs.wlroots_0_16;
+    wlroots = pkgs.wlroots_0_17;
   };
   qtile-extras = callPackage ../development/python-modules/qtile-extras { };
 
@@ -13002,6 +13109,8 @@ self: super: with self; {
 
   rapidgzip = callPackage ../development/python-modules/rapidgzip { inherit (pkgs) nasm; };
 
+  rapidocr-onnxruntime = callPackage ../development/python-modules/rapidocr-onnxruntime { };
+
   rapt-ble = callPackage ../development/python-modules/rapt-ble { };
 
   rarfile = callPackage ../development/python-modules/rarfile {
@@ -13026,6 +13135,8 @@ self: super: with self; {
 
   ray = callPackage ../development/python-modules/ray { };
 
+  raylib-python-cffi = callPackage ../development/python-modules/raylib-python-cffi {};
+
   razdel = callPackage ../development/python-modules/razdel { };
 
   rbtools = callPackage ../development/python-modules/rbtools { };
@@ -13141,6 +13252,8 @@ self: super: with self; {
 
   repeated-test = callPackage ../development/python-modules/repeated-test { };
 
+  repl-python-wakatime = callPackage ../development/python-modules/repl-python-wakatime { };
+
   repocheck = callPackage ../development/python-modules/repocheck { };
 
   reportengine = callPackage ../development/python-modules/reportengine { };
@@ -13277,6 +13390,10 @@ self: super: with self; {
 
   ring-doorbell = callPackage ../development/python-modules/ring-doorbell { };
 
+  rio-tiler = callPackage ../development/python-modules/rio-tiler { };
+
+  rioxarray = callPackage ../development/python-modules/rioxarray { };
+
   ripe-atlas-cousteau = callPackage ../development/python-modules/ripe-atlas-cousteau { };
 
   ripe-atlas-sagan = callPackage ../development/python-modules/ripe-atlas-sagan { };
@@ -13395,6 +13512,8 @@ self: super: with self; {
 
   rova = callPackage ../development/python-modules/rova { };
 
+  rowan = callPackage ../development/python-modules/rowan { };
+
   rpcq = callPackage ../development/python-modules/rpcq { };
 
   rpdb = callPackage ../development/python-modules/rpdb { };
@@ -13405,8 +13524,6 @@ self: super: with self; {
 
   rpi-gpio = callPackage ../development/python-modules/rpi-gpio { };
 
-  rpi-gpio2 = callPackage ../development/python-modules/rpi-gpio2 { };
-
   rplcd = callPackage ../development/python-modules/rplcd { };
 
   rply = callPackage ../development/python-modules/rply { };
@@ -13617,10 +13734,6 @@ self: super: with self; {
 
   scikits-odes = callPackage ../development/python-modules/scikits-odes { };
 
-  scikits-samplerate = callPackage ../development/python-modules/scikits-samplerate {
-    inherit (pkgs) libsamplerate;
-  };
-
   scikit-tda = callPackage ../development/python-modules/scikit-tda { };
 
   scipy = callPackage ../development/python-modules/scipy { };
@@ -14037,6 +14150,8 @@ self: super: with self; {
 
   slugid = callPackage ../development/python-modules/slugid { };
 
+  py-slvs = callPackage ../development/python-modules/py-slvs { };
+
   sly = callPackage ../development/python-modules/sly { };
 
   smart-meter-texas = callPackage ../development/python-modules/smart-meter-texas { };
@@ -14285,6 +14400,8 @@ self: super: with self; {
 
   sphinx-togglebutton = callPackage ../development/python-modules/sphinx-togglebutton { };
 
+  sphinxawesome-theme = callPackage ../development/python-modules/sphinxawesome-theme { };
+
   sphinxcontrib-actdiag = callPackage ../development/python-modules/sphinxcontrib-actdiag { };
 
   sphinxcontrib-apidoc = callPackage ../development/python-modules/sphinxcontrib-apidoc { };
@@ -14305,6 +14422,8 @@ self: super: with self; {
 
   sphinxcontrib-devhelp = callPackage ../development/python-modules/sphinxcontrib-devhelp { };
 
+  sphinxcontrib-ditaa = callPackage ../development/python-modules/sphinxcontrib-ditaa { };
+
   sphinxcontrib-excel-table = callPackage ../development/python-modules/sphinxcontrib-excel-table { };
 
   sphinxcontrib-fulltoc = callPackage ../development/python-modules/sphinxcontrib-fulltoc { };
@@ -14974,6 +15093,8 @@ self: super: with self; {
 
   terminaltables = callPackage ../development/python-modules/terminaltables { };
 
+  terminaltexteffects = callPackage ../development/python-modules/terminaltexteffects { };
+
   termplotlib = callPackage ../development/python-modules/termplotlib { };
 
   termstyle = callPackage ../development/python-modules/termstyle { };
@@ -15046,6 +15167,8 @@ self: super: with self; {
 
   textx = callPackage ../development/python-modules/textx { };
 
+  tf-keras = callPackage ../development/python-modules/tf-keras { };
+
   tf2onnx = callPackage ../development/python-modules/tf2onnx { };
 
   tflearn = callPackage ../development/python-modules/tflearn { };
@@ -15054,23 +15177,6 @@ self: super: with self; {
 
   tgcrypto = callPackage ../development/python-modules/tgcrypto { };
 
-  theano-pymc = callPackage ../development/python-modules/theano-pymc { };
-
-  theano = callPackage ../development/python-modules/theano rec {
-    inherit (pkgs.config) cudaSupport;
-    cudnnSupport = cudaSupport;
-  };
-
-  theanoWithCuda = self.theano.override {
-    cudaSupport = true;
-    cudnnSupport = true;
-  };
-
-  theanoWithoutCuda = self.theano.override {
-    cudaSupport = false;
-    cudnnSupport = false;
-  };
-
   thefuzz = callPackage ../development/python-modules/thefuzz { };
 
   thelogrus = callPackage ../development/python-modules/thelogrus { };
@@ -15157,6 +15263,8 @@ self: super: with self; {
 
   timm = callPackage ../development/python-modules/timm { };
 
+  timy = callPackage ../development/python-modules/timy { };
+
   tiny-cuda-nn = toPythonModule (pkgs.tiny-cuda-nn.override {
     cudaPackages = self.torch.cudaPackages;
     python3Packages = self;
@@ -15296,6 +15404,8 @@ self: super: with self; {
 
   torchsde = callPackage ../development/python-modules/torchsde { };
 
+  torchsummary = callPackage ../development/python-modules/torchsummary { };
+
   torchvision = callPackage ../development/python-modules/torchvision { };
 
   torchvision-bin = callPackage ../development/python-modules/torchvision/bin.nix {
@@ -15378,6 +15488,20 @@ self: super: with self; {
 
   tree-sitter = callPackage ../development/python-modules/tree-sitter { };
 
+  tree-sitter0_21 = callPackage ../development/python-modules/tree-sitter0_21 { };
+
+  tree-sitter-html = callPackage ../development/python-modules/tree-sitter-html { };
+
+  tree-sitter-python = callPackage ../development/python-modules/tree-sitter-python { };
+
+  tree-sitter-rust = callPackage ../development/python-modules/tree-sitter-rust { };
+
+  tree-sitter-javascript = callPackage ../development/python-modules/tree-sitter-javascript { };
+
+  tree-sitter-json = callPackage ../development/python-modules/tree-sitter-json { };
+
+  tree-sitter-languages = callPackage ../development/python-modules/tree-sitter-languages { };
+
   treelib = callPackage ../development/python-modules/treelib { };
 
   treelog = callPackage ../development/python-modules/treelog { };
@@ -15536,6 +15660,8 @@ self: super: with self; {
 
   typer = callPackage ../development/python-modules/typer { };
 
+  typer-shell = callPackage ../development/python-modules/typer-shell { };
+
   type-infer = callPackage ../development/python-modules/type-infer { };
 
   types-aiobotocore = callPackage ../development/python-modules/types-aiobotocore { };
@@ -16396,6 +16522,8 @@ self: super: with self; {
 
   uhi = callPackage ../development/python-modules/uhi { };
 
+  uiprotect = callPackage ../development/python-modules/uiprotect { };
+
   ujson = callPackage ../development/python-modules/ujson { };
 
   ukkonen = callPackage ../development/python-modules/ukkonen { };
@@ -16564,6 +16692,10 @@ self: super: with self; {
 
   utils = callPackage ../development/python-modules/utils { };
 
+  uv = toPythonModule (pkgs.uv.override {
+    python3Packages = self;
+  });
+
   uvcclient = callPackage ../development/python-modules/uvcclient { };
 
   uvicorn = callPackage ../development/python-modules/uvicorn { };
@@ -16678,6 +16810,8 @@ self: super: with self; {
 
   virtualenvwrapper = callPackage ../development/python-modules/virtualenvwrapper { };
 
+  visions = callPackage ../development/python-modules/visions { };
+
   visitor = callPackage ../development/python-modules/visitor { };
 
   vispy = callPackage ../development/python-modules/vispy { };
@@ -16694,6 +16828,8 @@ self: super: with self; {
 
   vncdo = callPackage ../development/python-modules/vncdo { };
 
+  vnoise = callPackage ../development/python-modules/vnoise { };
+
   vobject = callPackage ../development/python-modules/vobject { };
 
   volatile = callPackage ../development/python-modules/volatile { };
@@ -16702,6 +16838,8 @@ self: super: with self; {
 
   voluptuous = callPackage ../development/python-modules/voluptuous { };
 
+  voluptuous-openapi = callPackage ../development/python-modules/voluptuous-openapi { };
+
   voluptuous-serialize = callPackage ../development/python-modules/voluptuous-serialize { };
 
   voluptuous-stubs = callPackage ../development/python-modules/voluptuous-stubs { };
@@ -16828,6 +16966,8 @@ self: super: with self; {
 
   weasyprint = callPackage ../development/python-modules/weasyprint { };
 
+  weatherflow4py = callPackage ../development/python-modules/weatherflow4py { };
+
   weaviate-client = callPackage ../development/python-modules/weaviate-client { };
 
   web3 = callPackage ../development/python-modules/web3 { };
@@ -17107,6 +17247,8 @@ self: super: with self; {
 
   xmodem = callPackage ../development/python-modules/xmodem { };
 
+  xmpppy = callPackage ../development/python-modules/xmpppy { };
+
   xnatpy = callPackage ../development/python-modules/xnatpy { };
 
   xnd = callPackage ../development/python-modules/xnd { };
@@ -17205,6 +17347,8 @@ self: super: with self; {
 
   yacs = callPackage ../development/python-modules/yacs { };
 
+  ydata-profiling = callPackage ../development/python-modules/ydata-profiling { };
+
   ydiff = callPackage ../development/python-modules/ydiff { };
 
   yeelight = callPackage ../development/python-modules/yeelight { };
@@ -17345,8 +17489,6 @@ self: super: with self; {
 
   zipp = callPackage ../development/python-modules/zipp { };
 
-  zipstream = callPackage ../development/python-modules/zipstream { };
-
   zipstream-ng = callPackage ../development/python-modules/zipstream-ng { };
 
   zlib-ng = callPackage ../development/python-modules/zlib-ng {
diff --git a/pkgs/top-level/release-cross.nix b/pkgs/top-level/release-cross.nix
index d6896155c920e..4b41dc5bdcd27 100644
--- a/pkgs/top-level/release-cross.nix
+++ b/pkgs/top-level/release-cross.nix
@@ -258,6 +258,7 @@ in
 
   x86_64-freebsd = mapTestOnCross systems.examples.x86_64-freebsd common;
   x86_64-netbsd = mapTestOnCross systems.examples.x86_64-netbsd common;
+  x86_64-openbsd = mapTestOnCross systems.examples.x86_64-openbsd common;
 
   # we test `embedded` instead of `linuxCommon` because very few packages
   # successfully cross-compile to Redox so far
diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix
index a778583172b2e..d2e9e58e4ba9f 100644
--- a/pkgs/top-level/release-haskell.nix
+++ b/pkgs/top-level/release-haskell.nix
@@ -265,6 +265,7 @@ let
       # top-level packages that depend on haskellPackages
       inherit (pkgsPlatforms)
         agda
+        alex
         arion
         bench
         blucontrol
@@ -272,6 +273,8 @@ let
         cabal2nix
         cachix
         # carp broken on 2024-04-09
+        changelog-d
+        cornelis
         cedille
         client-ip-echo
         darcs
@@ -282,7 +285,10 @@ let
         dhall-lsp-server
         dhall-json
         dhall-nix
+        dhall-nixpkgs
+        dhall-yaml
         diagrams-builder
+        echidna
         elm2nix
         emanote
         fffuu
@@ -293,6 +299,7 @@ let
         gitit
         glirc
         hadolint
+        happy
         haskell-ci
         haskell-language-server
         hasura-graphql-engine
@@ -308,10 +315,12 @@ let
         hledger-web
         hlint
         hpack
+        hscolour
         icepeak
         ihaskell
         jacinda
         jl
+        json2yaml
         koka
         krank
         lambdabot
@@ -338,12 +347,13 @@ let
         ormolu
         # pakcs broken by set-extra on 2024-03-15
         pandoc
-        petrinizer
         place-cursor-at
         pinboard-notes-backup
         pretty-simple
+        purenix
         shake
         shellcheck
+        shellcheck-minimal
         sourceAndTags
         spacecookie
         spago
@@ -368,7 +378,6 @@ let
         xmobar
         xmonadctl
         xmonad-with-packages
-        yi
         zsh-git-prompt
         ;
 
@@ -378,7 +387,7 @@ let
           elm
           elm-format
           elm-instrument
-          # elmi-to-json broken by hashable-time on 2024-03-16
+          elmi-to-json
           ;
       };
 
@@ -502,28 +511,18 @@ let
       # package sets (like Cabal, jailbreak-cabal) are
       # working as expected.
       cabal-install = lib.subtractLists [
-        compilerNames.ghc981
-        compilerNames.ghc982
         compilerNames.ghc9101
       ] released;
       Cabal_3_10_3_0 = lib.subtractLists [
-        compilerNames.ghc981
-        compilerNames.ghc982
         compilerNames.ghc9101
       ] released;
       Cabal-syntax_3_10_3_0 = lib.subtractLists [
-        compilerNames.ghc981
-        compilerNames.ghc982
         compilerNames.ghc9101
       ] released;
       cabal2nix = lib.subtractLists [
-        compilerNames.ghc981
-        compilerNames.ghc982
         compilerNames.ghc9101
       ] released;
       cabal2nix-unstable = lib.subtractLists [
-        compilerNames.ghc981
-        compilerNames.ghc982
         compilerNames.ghc9101
       ] released;
       funcmp = released;
@@ -536,26 +535,18 @@ let
         compilerNames.ghc9101
       ] released;
       hoogle = lib.subtractLists [
-        compilerNames.ghc981
-        compilerNames.ghc982
         compilerNames.ghc9101
       ] released;
       hlint = lib.subtractLists [
         compilerNames.ghc902
-        compilerNames.ghc981
-        compilerNames.ghc982
         compilerNames.ghc9101
       ] released;
       hpack = lib.subtractLists [
-        compilerNames.ghc981
-        compilerNames.ghc982
         compilerNames.ghc9101
       ] released;
       hsdns = released;
       jailbreak-cabal = released;
       language-nix = lib.subtractLists [
-        compilerNames.ghc981
-        compilerNames.ghc982
         compilerNames.ghc9101
       ] released;
       large-hashable = [
@@ -563,8 +554,6 @@ let
       ];
       nix-paths = released;
       titlecase = lib.subtractLists [
-        compilerNames.ghc981
-        compilerNames.ghc982
         compilerNames.ghc9101
       ] released;
       ghc-api-compat = [
@@ -575,43 +564,30 @@ let
         compilerNames.ghc8107
       ];
       ghc-lib = lib.subtractLists [
-        compilerNames.ghc981
-        compilerNames.ghc982
         compilerNames.ghc9101
       ] released;
       ghc-lib-parser = lib.subtractLists [
-        compilerNames.ghc981
-        compilerNames.ghc982
         compilerNames.ghc9101
       ] released;
       ghc-lib-parser-ex = lib.subtractLists [
-        compilerNames.ghc981
-        compilerNames.ghc982
         compilerNames.ghc9101
       ] released;
       ghc-source-gen = [
         # Feel free to remove these as they break,
-        # ghc-source-gen currently doesn't support GHC 9.4
         compilerNames.ghc8107
         compilerNames.ghc902
         compilerNames.ghc928
       ];
-      # broken on 2024-03-16
-      # ghc-tags = lib.subtractLists [
-      #   compilerNames.ghc981
-      #   compilerNames.ghc982
-      # ] released;
+      ghc-tags = lib.subtractLists [
+        compilerNames.ghc9101
+      ] released;
       hashable = lib.subtractLists [
-        compilerNames.ghc981
-        compilerNames.ghc982
         compilerNames.ghc9101
       ] released;
       primitive = lib.subtractLists [
         compilerNames.ghc9101
       ] released;
       weeder = lib.subtractLists [
-        compilerNames.ghc981
-        compilerNames.ghc982
         compilerNames.ghc9101
       ] released;
     })
diff --git a/pkgs/top-level/release-lib.nix b/pkgs/top-level/release-lib.nix
index 9f28868956899..a1dcc3e9f3349 100644
--- a/pkgs/top-level/release-lib.nix
+++ b/pkgs/top-level/release-lib.nix
@@ -1,4 +1,5 @@
 { supportedSystems
+, system ? builtins.currentSystem
 , packageSet ? (import ../..)
 , scrubJobs ? true
 , # Attributes passed to nixpkgs. Don't build packages marked as unfree.
@@ -33,7 +34,7 @@ let
     systems
     ;
 
-  pkgs = packageSet (recursiveUpdate { system = "x86_64-linux"; config.allowUnsupportedSystem = true; } nixpkgsArgs);
+  pkgs = packageSet (recursiveUpdate { inherit system; config.allowUnsupportedSystem = true; } nixpkgsArgs);
 
   hydraJob' = if scrubJobs then hydraJob else id;
 
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index d11d1d1dbd43b..4f95c7d084ef3 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -9,6 +9,7 @@
    $ nix-build pkgs/top-level/release.nix -A coreutils.x86_64-linux
 */
 { nixpkgs ? { outPath = (import ../../lib).cleanSource ../..; revCount = 1234; shortRev = "abcdef"; revision = "0000000000000000000000000000000000000000"; }
+, system ? builtins.currentSystem
 , officialRelease ? false
   # The platform doubles for which we build Nixpkgs.
 , supportedSystems ? [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]
@@ -54,7 +55,7 @@
 
 let
   release-lib = import ./release-lib.nix {
-    inherit supportedSystems scrubJobs nixpkgsArgs;
+    inherit supportedSystems scrubJobs nixpkgsArgs system;
   };
 
   inherit (release-lib) mapTestOn pkgs;
diff --git a/pkgs/top-level/ruby-packages.nix b/pkgs/top-level/ruby-packages.nix
index 0528d45bef84e..386b8506c73ca 100644
--- a/pkgs/top-level/ruby-packages.nix
+++ b/pkgs/top-level/ruby-packages.nix
@@ -2872,10 +2872,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "185zq5r9g56sfks852992bm0xf2vm9569jyiz5jyww3vx1jply1d";
+      sha256 = "sha256-On/KnfdO5kHcHom4MCrG0D8iiD3nceeGoOnzCU5apq0=";
       type = "gem";
     };
-    version = "7.1.3.2";
+    version = "7.1.3.4";
   };
   rails-dom-testing = {
     dependencies = ["activesupport" "minitest" "nokogiri"];
@@ -3127,10 +3127,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0";
+      sha256 = "0428ady49qssmnmwnafzrjvyba8mzbridsgblv7c7kmd0vqgfn99";
       type = "gem";
     };
-    version = "3.2.6";
+    version = "3.3.0";
   };
   rmagick = {
     dependencies = ["observer" "pkg-config"];
diff --git a/pkgs/top-level/stage.nix b/pkgs/top-level/stage.nix
index 087b43c3cb145..025b6089f471b 100644
--- a/pkgs/top-level/stage.nix
+++ b/pkgs/top-level/stage.nix
@@ -49,6 +49,10 @@ in
 , # The standard environment to use for building packages.
   stdenv
 
+, # `stdenv` without a C compiler. Passing in this helps avoid infinite
+  # recursions, and may eventually replace passing in the full stdenv.
+  stdenvNoCC ? stdenv.override { cc = null; hasCC = false; }
+
 , # This is used because stdenv replacement and the stdenvCross do benefit from
   # the overridden configuration provided by the user, as opposed to the normal
   # bootstrapping stdenvs.
@@ -141,7 +145,7 @@ let
     pkgs = self.pkgsHostTarget;
     targetPackages = self.pkgsTargetTarget;
 
-    inherit stdenv;
+    inherit stdenv stdenvNoCC;
   };
 
   splice = self: super: import ./splice.nix lib self (adjacentPackages != null);